From 3260aded3d1a2a9ba2e105bc01df3704e95f58ad Mon Sep 17 00:00:00 2001 From: Walter Bender Date: Tue, 24 Sep 2024 15:02:44 -0400 Subject: [PATCH] new strings --- po/af.po | 9086 ++++++++++++++++--------------- po/agr.po | 9016 ++++++++++++++++--------------- po/am.po | 9032 ++++++++++++++++--------------- po/ar.po | 11552 +++++++++++++++++---------------------- po/ayc.po | 12490 +++++++++++++++++++++--------------------- po/bg.po | 9016 ++++++++++++++++--------------- po/bi.po | 9016 ++++++++++++++++--------------- po/bn.po | 9084 ++++++++++++++++--------------- po/br.po | 9016 ++++++++++++++++--------------- po/ca.po | 9068 ++++++++++++++++--------------- po/cs.po | 9084 ++++++++++++++++--------------- po/da.po | 9078 ++++++++++++++++--------------- po/de.po | 9748 +++++++++++++++++---------------- po/dz.po | 9016 ++++++++++++++++--------------- po/el.po | 9066 ++++++++++++++++--------------- po/en.po | 9052 ++++++++++++++++--------------- po/en_GB.po | 9058 ++++++++++++++++--------------- po/es.po | 18 +- po/fa.po | 9016 ++++++++++++++++--------------- po/ff.po | 9016 ++++++++++++++++--------------- po/fi.po | 9054 ++++++++++++++++--------------- po/fil.po | 9016 ++++++++++++++++--------------- po/fr.po | 9094 ++++++++++++++++--------------- po/gn.po | 9016 ++++++++++++++++--------------- po/gug.po | 14102 +++++++++++++++++++++--------------------------- po/ha.po | 9016 ++++++++++++++++--------------- po/he.po | 9658 +++++++++++++++++---------------- po/hi.po | 11553 ++++++++++++++++++++------------------- po/ht.po | 9016 ++++++++++++++++--------------- po/hu.po | 9016 ++++++++++++++++--------------- po/hus.po | 9064 ++++++++++++++++--------------- po/hy.po | 9016 ++++++++++++++++--------------- po/ibo.po | 11568 +++++++++++++++++---------------------- po/id.po | 9052 ++++++++++++++++--------------- po/is.po | 9016 ++++++++++++++++--------------- po/it.po | 9584 ++++++++++++++++---------------- po/ja-kana.po | 10623 ++++++++++++++++++------------------ po/ja.po | 10651 ++++++++++++++++++------------------ po/km.po | 9070 ++++++++++++++++--------------- po/kn.po | 9016 ++++++++++++++++--------------- po/ko.po | 9680 ++++++++++++++++----------------- po/kos.po | 9016 ++++++++++++++++--------------- po/mg.po | 9076 ++++++++++++++++--------------- po/mi.po | 9066 ++++++++++++++++--------------- po/mk.po | 9016 ++++++++++++++++--------------- po/ml.po | 9016 ++++++++++++++++--------------- po/mn.po | 9076 ++++++++++++++++--------------- po/mr.po | 11448 +++++++++++++++++---------------------- po/ms.po | 9016 ++++++++++++++++--------------- po/mvo.po | 9016 ++++++++++++++++--------------- po/nb.po | 9070 ++++++++++++++++--------------- po/ne.po | 9166 ++++++++++++++++--------------- po/nl.po | 9080 ++++++++++++++++--------------- po/pa.po | 9016 ++++++++++++++++--------------- po/pap.po | 9078 ++++++++++++++++--------------- po/pbs.po | 9072 ++++++++++++++++--------------- po/pl.po | 9066 ++++++++++++++++--------------- po/pt.po | 10834 ++++++++++++++++++------------------- po/quz.po | 11847 +++++++++++++++++++++++----------------- po/ro.po | 9016 ++++++++++++++++--------------- po/ru.po | 9086 ++++++++++++++++--------------- po/rw.po | 9080 ++++++++++++++++--------------- po/sd.po | 9016 ++++++++++++++++--------------- po/si.po | 9098 ++++++++++++++++--------------- po/sk.po | 9016 ++++++++++++++++--------------- po/sl.po | 9016 ++++++++++++++++--------------- po/sq.po | 9016 ++++++++++++++++--------------- po/sv.po | 9088 ++++++++++++++++--------------- po/sw.po | 9036 ++++++++++++++++--------------- po/ta.po | 11212 ++++++++++++++++---------------------- po/te.po | 12958 +++++++++++++++++++------------------------- po/th.po | 11458 +++++++++++++++++---------------------- po/tr.po | 9062 ++++++++++++++++--------------- po/tvl.po | 9016 ++++++++++++++++--------------- po/tzo.po | 9016 ++++++++++++++++--------------- po/ug.po | 9016 ++++++++++++++++--------------- po/ur.po | 9016 ++++++++++++++++--------------- po/vi.po | 9064 ++++++++++++++++--------------- po/wa.po | 9016 ++++++++++++++++--------------- po/yo.po | 9016 ++++++++++++++++--------------- po/zh_CN.po | 9084 ++++++++++++++++--------------- po/zh_TW.po | 11190 ++++++++++++++++---------------------- 82 files changed, 394230 insertions(+), 377746 deletions(-) diff --git a/po/af.po b/po/af.po index 21785f936b..9b05001172 100644 --- a/po/af.po +++ b/po/af.po @@ -2129,276 +2129,131 @@ #: js/planetInterface.js:104 #: js/planetInterface.js:104 #: js/planetInterface.js:104 -msgid "project undefined" +#: js/SaveInterface.js:59 +#: js/SaveInterface.js:61 +#: js/SaveInterface.js:93 +msgid "Music Blocks Project" msgstr "" -#: js/logo.js:61 -msgid "Not a valid pitch name" +#: js/SaveInterface.js:63 +msgid "This project was created in Music Blocks" msgstr "" -#: js/logo.js:507 -#: js/ProgramBlocks.js:258 -#: js/ProgramBlocks.js:427 -msgid "You must select a file." +#: js/SaveInterface.js:67 +msgid "Music Blocks is a Free/Libre Software application." msgstr "" -#: js/logo.js:1184 -#: js/turtles.js:118 -#: js/turtle-painter.js:1192 -#: js/turtle-painter.js:1193 -#: js/block.js:1463 -#: js/lilypond.js:757 -#: js/lilypond.js:921 -#: js/lilypond.js:959 -#: js/ActionBlocks.js:1223 -#: js/ProgramBlocks.js:1267 -msgid "start" -msgstr "begin" - -#: js/logo.js:1696 -msgid "Playback is ready." +#: js/SaveInterface.js:69 +msgid "The source code can be accessed at" msgstr "" -#: js/blocks.js:1011 -#: js/blocks.js:3427 -#: js/blocks.js:3428 -#: js/blocks.js:3653 -#: js/blocks.js:4012 -#: js/blocks.js:4205 -#: js/blocks.js:5343 -#: js/blocks.js:6474 -#: js/palette.js:527 -#: js/palette.js:536 -#: js/palette.js:545 -#: js/palette.js:554 -#: js/palette.js:1131 -#: js/palette.js:1142 -#: js/palette.js:1153 -#: js/palette.js:1164 -#: js/palette.js:1183 -#: js/rubrics.js:529 -#: js/macros.js:170 -#: js/macros.js:266 -#: js/macros.js:267 -#: js/macros.js:276 -#: js/macros.js:828 -#: js/block.js:1449 -#: js/block.js:4164 -#: js/block.js:4182 -#: js/block.js:4193 -#: js/turtledefs.js:128 -#: js/turtledefs.js:230 -#: js/ActionBlocks.js:254 -#: js/ActionBlocks.js:307 -#: js/ActionBlocks.js:617 -#: js/ActionBlocks.js:716 -#: js/ActionBlocks.js:961 -#: js/ActionBlocks.js:1049 -#: js/ActionBlocks.js:1322 -#: js/ActionBlocks.js:1325 -#: js/ActionBlocks.js:1337 -#: js/ActionBlocks.js:1404 -#: js/MeterBlocks.js:715 -#: js/MeterBlocks.js:768 -#: js/MeterBlocks.js:831 -#: js/MeterBlocks.js:892 -#: js/phrasemaker.js:4412 -#: js/musickeyboard.js:2647 -#: js/rhythmruler.js:1928 -#: js/rhythmruler.js:1935 -#: js/rhythmruler.js:2119 -#: js/rhythmruler.js:2126 -msgid "action" -msgstr "aksie" - -#: js/blocks.js:1205 -#: js/blocks.js:3380 -#: js/blocks.js:3770 -#: js/blocks.js:3801 -#: js/blocks.js:3850 -#: js/blocks.js:3885 -#: js/blocks.js:6497 -#: js/palette.js:509 -#: js/palette.js:638 -#: js/palette.js:1107 -#: js/BoxesBlocks.js:282 -#: js/BoxesBlocks.js:285 -#: js/BoxesBlocks.js:405 -#: js/BoxesBlocks.js:594 -msgid "box" -msgstr "hokkie" - -#: js/blocks.js:1680 -msgid "Consider breaking this stack into parts." +#: js/SaveInterface.js:72 +msgid "For more information, please consult the" msgstr "" -#: js/blocks.js:2408 -#: js/palette.js:653 -#: js/MediaBlocks.js:602 -msgid "open file" +#: js/SaveInterface.js:76 +#: js/turtledefs.js:795 +msgid "Music Blocks Guide" msgstr "" -#: js/blocks.js:2415 -#: js/blocks.js:2423 -#: js/activity.js:1875 -msgid "audio file" +#: js/SaveInterface.js:83 +msgid "Alternatively, open the file in Music Blocks using the Load project button." msgstr "" -#: js/blocks.js:2536 -#: js/blocks.js:3147 -#: js/block.js:3543 -msgid "on2" +#: js/SaveInterface.js:85 +msgid "Project Code" msgstr "" -#: js/blocks.js:2538 -#: js/blocks.js:3149 -#: js/block.js:3545 -msgid "off" +#: js/SaveInterface.js:87 +msgid "This code stores data about the blocks in a project." msgstr "" -#: js/blocks.js:2543 -#: js/blocks.js:3154 -#: js/palette.js:618 -#: js/block.js:3466 -#: js/BooleanBlocks.js:77 -#: js/BooleanBlocks.js:167 -#: js/BooleanBlocks.js:251 -#: js/BooleanBlocks.js:335 -#: js/BooleanBlocks.js:433 -#: js/BooleanBlocks.js:539 -#: js/BooleanBlocks.js:640 -#: js/BooleanBlocks.js:741 -#: js/BooleanBlocks.js:847 -#: js/BooleanBlocks.js:948 -#: js/BooleanBlocks.js:1033 -#: js/SensorsBlocks.js:910 -msgid "true" +#: js/SaveInterface.js:89 +msgid "Show" msgstr "" -#: js/blocks.js:2545 -#: js/blocks.js:3156 -#: js/block.js:3466 -#: js/BooleanBlocks.js:79 -#: js/BooleanBlocks.js:169 -#: js/BooleanBlocks.js:253 -#: js/BooleanBlocks.js:337 -#: js/BooleanBlocks.js:435 -#: js/BooleanBlocks.js:541 -#: js/BooleanBlocks.js:642 -#: js/BooleanBlocks.js:743 -#: js/BooleanBlocks.js:849 -#: js/BooleanBlocks.js:950 -#: js/SensorsBlocks.js:912 -msgid "false" +#: js/SaveInterface.js:91 +msgid "Hide" msgstr "" -#: js/blocks.js:3183 -#: js/palette.js:574 -#: js/MediaBlocks.js:892 -#: js/MediaBlocks.js:963 -msgid "text" -msgstr "teks" - -#: js/blocks.js:3379 -#: js/palette.js:641 -#: js/palette.js:642 -#: js/BoxesBlocks.js:514 -msgid "store in box" +#: js/SaveInterface.js:131 +#: js/SaveInterface.js:204 +#: js/SaveInterface.js:262 +#: js/SaveInterface.js:389 +#: js/SaveInterface.js:417 +#: js/activity.js:4884 +#: planet/js/ProjectStorage.js:27 +#: planet/js/GlobalPlanet.js:467 +#: planet/js/GlobalPlanet.js:469 +#: planet/js/GlobalPlanet.js:495 +#.TRANS: default project title when saving as Lilypond +msgid "My Project" msgstr "" -#: js/blocks.js:3384 -#: js/blocks.js:3824 -#: js/blocks.js:3859 -#: js/blocks.js:3894 -#: js/blocks.js:5773 -#: js/blocks.js:5794 -#: js/BoxesBlocks.js:772 -msgid "box1" +#: js/SaveInterface.js:197 +#: planet/js/SaveInterface.js:58 +msgid "No description provided" msgstr "" -#: js/blocks.js:3386 -#: js/blocks.js:3826 -#: js/blocks.js:3861 -#: js/blocks.js:3896 -#: js/blocks.js:5775 -#: js/blocks.js:5796 -#: js/BoxesBlocks.js:663 -msgid "box2" +#: js/SaveInterface.js:332 +msgid "Your recording is in progress." msgstr "" -#: js/blocks.js:4058 -#: js/palette.js:639 -#: js/palette.js:644 -#: js/palette.js:1043 -#: js/BoxesBlocks.js:591 -msgid "store in" -msgstr "stoor in" - -#: js/blocks.js:4058 -#: js/EnsembleBlocks.js:391 -#: js/EnsembleBlocks.js:402 -#: js/MediaBlocks.js:746 -#: js/ProgramBlocks.js:390 -#: js/ProgramBlocks.js:495 -#: js/ProgramBlocks.js:658 -#: js/BoxesBlocks.js:595 -#: js/PitchBlocks.js:656 -#: js/PitchBlocks.js:932 -#: js/PitchBlocks.js:1827 -#: js/ToneBlocks.js:1025 -#: js/DictBlocks.js:215 -#: js/DictBlocks.js:289 -msgid "name" +#: js/SaveInterface.js:401 +#.TRANS: File name prompt for save as Lilypond +msgid "File name" msgstr "" -#: js/blocks.js:4058 -#: js/RhythmBlocks.js:1130 -#: js/BoxesBlocks.js:75 -#: js/BoxesBlocks.js:595 -#: js/HeapBlocks.js:544 -#: js/DictBlocks.js:289 -#: js/DictBlocks.js:430 -msgid "value" +#: js/SaveInterface.js:403 +#: planet/js/StringHelper.js:39 +#.TRANS: Project title prompt for save as Lilypond +msgid "Project title" msgstr "" -#: js/blocks.js:4907 -msgid "There is no block selected." +#: js/SaveInterface.js:405 +#.TRANS: Project title prompt for save as Lilypond +msgid "Project author" msgstr "" -#: js/blocks.js:5002 -#: js/MediaBlocks.js:888 -msgid "show" -msgstr "wys" - -#: js/blocks.js:5005 -#: js/MediaBlocks.js:803 -#.TRANS: Avatar is the image used to determine the appearance of the mouse. -msgid "avatar" +#: js/SaveInterface.js:407 +#.TRANS: MIDI prompt for save as Lilypond +msgid "Include MIDI output?" msgstr "" -#: js/blocks.js:5008 -#: js/ToneBlocks.js:1010 -#: js/sampler.js:693 -#.TRANS: The sound sample that the user uploads. -msgid "sample" +#: js/SaveInterface.js:409 +#.TRANS: Guitar prompt for save as Lilypond +msgid "Include guitar tablature output?" msgstr "" -#: js/turtles.js:874 -msgid "Grid" +#: js/SaveInterface.js:411 +#.TRANS: Lilypond is a scripting language for generating sheet music +msgid "Save as Lilypond" msgstr "" -#: js/turtles.js:891 -#: js/turtledefs.js:626 -msgid "Clean" -msgstr "Maak skoon" - -#: js/turtles.js:912 -#: js/turtledefs.js:632 -msgid "Collapse" +#: js/SaveInterface.js:426 +#: js/blocks/EnsembleBlocks.js:75 +#: js/blocks/EnsembleBlocks.js:154 +#: js/blocks/EnsembleBlocks.js:216 +#: js/blocks/EnsembleBlocks.js:302 +#: js/blocks/EnsembleBlocks.js:348 +#: js/blocks/EnsembleBlocks.js:389 +#: js/blocks/EnsembleBlocks.js:441 +#: js/blocks/EnsembleBlocks.js:490 +#: js/blocks/EnsembleBlocks.js:536 +#: js/blocks/EnsembleBlocks.js:583 +#: js/blocks/EnsembleBlocks.js:637 +#: js/blocks/EnsembleBlocks.js:753 +#: js/blocks/EnsembleBlocks.js:840 +#: js/blocks/EnsembleBlocks.js:899 +#: js/blocks/EnsembleBlocks.js:942 +#: js/blocks/EnsembleBlocks.js:1212 +#: js/blocks/EnsembleBlocks.js:1280 +#.TRANS: default project author when saving as Lilypond +msgid "Mr. Mouse" msgstr "" -#: js/turtles.js:940 -msgid "Expand" +#: js/SaveInterface.js:573 +msgid "The Lilypond code is copied to clipboard. You can paste it here: " msgstr "" #: js/languagebox.js:198 @@ -2409,6933 +2264,7487 @@ msgstr "" msgid "Music Blocks is already set to this language." msgstr "" -#: js/piemenus.js:200 -#: js/musicutils.js:808 -#: js/musicutils.js:824 -#: js/phrasemaker.js:1672 -#: js/musickeyboard.js:2041 -#: js/sampler.js:544 -#.TRANS: double sharp is a music term related to pitch -msgid "double sharp" +#: js/planetInterface.js:131 +msgid "project undefined" msgstr "" -#: js/piemenus.js:201 -#: js/PitchBlocks.js:1510 -#: js/PitchActions.js:580 -#: js/musicutils.js:806 -#: js/musicutils.js:825 -#: js/phrasemaker.js:1673 -#: js/musickeyboard.js:2042 -#: js/sampler.js:545 -#.TRANS: sharp is a half-step up in pitch -#.TRANS: sharp is a music term related to pitch -msgid "sharp" +#: js/rubrics.js:523 +#: js/turtledefs.js:119 +#: js/turtledefs.js:221 +#: js/blocks/RhythmBlockPaletteBlocks.js:52 +#: js/blocks/RhythmBlockPaletteBlocks.js:234 +#: js/blocks/ProgramBlocks.js:745 +#: js/widgets/rhythmruler.js:2057 +#: js/widgets/rhythmruler.js:2064 +#: js/widgets/rhythmruler.js:2133 +#: js/widgets/rhythmruler.js:2140 +#: js/widgets/rhythmruler.js:2219 +#.TRANS: an arrangement of notes based on duration +msgid "rhythm" msgstr "" -#: js/piemenus.js:202 -#: js/musicutils.js:804 -#: js/musicutils.js:826 -#: js/phrasemaker.js:1674 -#: js/musickeyboard.js:2043 -#: js/sampler.js:546 -#.TRANS: natural is a music term related to pitch -msgid "natural" +#: js/rubrics.js:524 +#: js/turtledefs.js:121 +#: js/turtledefs.js:223 +#: js/block-verbose.js:2622 +#: js/block.js:2550 +#: js/blocks/IntervalsBlocks.js:63 +#: js/blocks/SensorsBlocks.js:178 +#: js/blocks/PitchBlocks.js:1839 +#: js/blocks/PitchBlocks.js:1853 +#: js/widgets/musickeyboard.js:1935 +#: js/widgets/phrasemaker.js:1036 +#.TRANS: pitch number +#.TRANS: pitch number +#.TRANS: we specify pitch in terms of a name and an octave. The name can be CDEFGAB or Do Re Mi Fa Sol La Ti. Octave is a number between 1 and 8. +msgid "pitch" msgstr "" -#: js/piemenus.js:203 -#: js/PitchBlocks.js:1469 -#: js/PitchActions.js:583 -#: js/musicutils.js:802 -#: js/musicutils.js:827 -#: js/phrasemaker.js:1675 -#: js/musickeyboard.js:2044 -#: js/sampler.js:547 -#.TRANS: flat is a half-step down in pitch -#.TRANS: flat is a music term related to pitch -msgid "flat" +#: js/rubrics.js:525 +#: js/turtledefs.js:123 +#: js/turtledefs.js:225 +msgid "tone" msgstr "" -#: js/piemenus.js:204 -#: js/musicutils.js:800 -#: js/musicutils.js:828 -#: js/phrasemaker.js:1676 -#: js/musickeyboard.js:2045 -#: js/sampler.js:548 -#.TRANS: double flat is a music term related to pitch -msgid "double flat" +#: js/rubrics.js:526 +#: js/lilypond.js:605 +#: js/lilypond.js:904 +#: js/lilypond.js:910 +#: js/lilypond.js:948 +msgid "mouse" msgstr "" -#: js/piemenus.js:2861 -#: js/PitchBlocks.js:1357 -#: js/musicutils.js:627 -#.TRANS: unison means the note is the same as the current note -#.TRANS: unison is a music term related to intervals -msgid "unison" +#: js/rubrics.js:527 +#: js/turtledefs.js:132 +#: js/turtledefs.js:234 +#: js/widgets/phrasemaker.js:1040 +msgid "pen" msgstr "" -#: js/piemenus.js:3015 -#: js/piemenus.js:3088 -#: js/musicutils.js:635 -#: js/musicutils.js:810 -#: js/musicutils.js:912 -#.TRANS: major is a music term related to intervals and mode -msgid "major" -msgstr "" +#: js/rubrics.js:528 +#: js/turtledefs.js:133 +#: js/turtledefs.js:235 +#: js/blocks/NumberBlocks.js:981 +#: js/blocks/PitchBlocks.js:1717 +#: js/blocks/PitchBlocks.js:1758 +msgid "number" +msgstr "syfer" -#: js/piemenus.js:3015 -#: js/piemenus.js:3088 -#: js/musicutils.js:653 -#.TRANS: modal scale for music -msgid "ionian" -msgstr "" +#: js/rubrics.js:529 +#: js/turtledefs.js:127 +#: js/turtledefs.js:229 +msgid "flow" +msgstr "Vloei" -#: js/piemenus.js:3017 -#: js/piemenus.js:3092 -#: js/musicutils.js:633 -#: js/musicutils.js:811 -#: js/musicutils.js:909 -#.TRANS: minor is a music term related to intervals and mode -msgid "minor" -msgstr "" +#: js/rubrics.js:530 +#: js/turtledefs.js:128 +#: js/turtledefs.js:230 +#: js/block-verbose.js:1609 +#: js/block-verbose.js:4559 +#: js/block-verbose.js:4577 +#: js/block-verbose.js:4588 +#: js/block.js:1573 +#: js/block.js:4483 +#: js/block.js:4501 +#: js/block.js:4512 +#: js/blocks.js:1018 +#: js/blocks.js:3491 +#: js/blocks.js:3492 +#: js/blocks.js:3717 +#: js/blocks.js:4076 +#: js/blocks.js:4269 +#: js/blocks.js:5432 +#: js/blocks.js:6563 +#: js/macros.js:170 +#: js/macros.js:266 +#: js/macros.js:267 +#: js/macros.js:276 +#: js/macros.js:828 +#: js/palette.js:527 +#: js/palette.js:536 +#: js/palette.js:545 +#: js/palette.js:554 +#: js/palette.js:1129 +#: js/palette.js:1140 +#: js/palette.js:1151 +#: js/palette.js:1162 +#: js/palette.js:1181 +#: js/blocks/ActionBlocks.js:254 +#: js/blocks/ActionBlocks.js:307 +#: js/blocks/ActionBlocks.js:617 +#: js/blocks/ActionBlocks.js:716 +#: js/blocks/ActionBlocks.js:961 +#: js/blocks/ActionBlocks.js:1049 +#: js/blocks/ActionBlocks.js:1322 +#: js/blocks/ActionBlocks.js:1325 +#: js/blocks/ActionBlocks.js:1337 +#: js/blocks/ActionBlocks.js:1404 +#: js/blocks/MeterBlocks.js:715 +#: js/blocks/MeterBlocks.js:768 +#: js/blocks/MeterBlocks.js:831 +#: js/blocks/MeterBlocks.js:892 +#: js/widgets/musickeyboard.js:2986 +#: js/widgets/phrasemaker.js:4913 +#: js/widgets/rhythmruler.js:2319 +#: js/widgets/rhythmruler.js:2326 +#: js/widgets/rhythmruler.js:2511 +#: js/widgets/rhythmruler.js:2518 +msgid "action" +msgstr "aksie" -#: js/piemenus.js:3017 -#: js/piemenus.js:3092 -#: js/musicutils.js:663 -#.TRANS: modal scale for music -msgid "aeolian" +#: js/rubrics.js:531 +#: js/turtledefs.js:136 +#: js/turtledefs.js:238 +msgid "sensors" msgstr "" -#: js/piemenus.js:3407 -msgid "Duplicate" +#: js/rubrics.js:532 +#: js/turtledefs.js:135 +#: js/turtledefs.js:237 +#: js/blocks/MediaBlocks.js:930 +msgid "media" msgstr "" -#: js/piemenus.js:3408 -#: js/turtledefs.js:534 -msgid "Extract" +#: js/rubrics.js:533 +msgid "mice" msgstr "" -#: js/piemenus.js:3409 -msgid "Move to trash" +#: js/toolbar.js:48 +#: js/toolbar.js:109 +msgid "About Music Blocks" msgstr "" -#: js/piemenus.js:3410 -#: js/timbre.js:968 -#: js/StringHelper.js:69 -msgid "Close" +#: js/toolbar.js:49 +#: js/toolbar.js:110 +#: js/toolbar.js:175 +#: js/toolbar.js:231 +#: js/turtledefs.js:445 +#: js/turtledefs.js:482 +#: js/activity.js:2660 +#: js/activity.js:2671 +#: js/activity.js:2902 +#: js/widgets/modewidget.js:77 +#: js/widgets/meterwidget.js:185 +#: js/widgets/pitchdrummatrix.js:147 +#: js/widgets/pitchdrummatrix.js:687 +#: js/widgets/pitchdrummatrix.js:689 +#: js/widgets/pitchdrummatrix.js:741 +#: js/widgets/pitchdrummatrix.js:743 +#: js/widgets/pitchdrummatrix.js:758 +#: js/widgets/pitchdrummatrix.js:760 +#: js/widgets/pitchdrummatrix.js:789 +#: js/widgets/pitchdrummatrix.js:791 +#: js/widgets/pitchstaircase.js:121 +#: js/widgets/temperament.js:610 +#: js/widgets/temperament.js:613 +#: js/widgets/temperament.js:673 +#: js/widgets/temperament.js:675 +#: js/widgets/temperament.js:2017 +#: js/widgets/temperament.js:2019 +#: js/widgets/tempo.js:84 +#: js/widgets/tempo.js:86 +#: js/widgets/timbre.js:432 +#: js/widgets/timbre.js:434 +#: js/widgets/timbre.js:465 +#: js/widgets/timbre.js:467 +#: js/widgets/timbre.js:746 +#: js/widgets/aiwidget.js:647 +#: js/widgets/aiwidget.js:654 +#: js/widgets/aiwidget.js:656 +#: js/widgets/arpeggio.js:90 +#: js/widgets/arpeggio.js:547 +#: js/widgets/arpeggio.js:549 +#: js/widgets/arpeggio.js:644 +#: js/widgets/arpeggio.js:646 +#: js/widgets/musickeyboard.js:676 +#: js/widgets/musickeyboard.js:872 +#: js/widgets/musickeyboard.js:874 +#: js/widgets/musickeyboard.js:953 +#: js/widgets/musickeyboard.js:955 +#: js/widgets/phrasemaker.js:513 +#: js/widgets/phrasemaker.js:523 +#: js/widgets/phrasemaker.js:525 +#: js/widgets/phrasemaker.js:4304 +#: js/widgets/phrasemaker.js:4528 +#: js/widgets/phrasemaker.js:4533 +#: js/widgets/phrasemaker.js:4535 +#: js/widgets/phrasemaker.js:4650 +#: js/widgets/rhythmruler.js:637 +#: js/widgets/rhythmruler.js:639 +#: js/widgets/rhythmruler.js:653 +#: js/widgets/rhythmruler.js:655 +#: js/widgets/sampler.js:162 +#: js/widgets/sampler.js:164 +#: js/widgets/sampler.js:363 +msgid "Play" msgstr "" -#: js/piemenus.js:3416 -msgid "Save stack" +#: js/toolbar.js:50 +#: js/toolbar.js:111 +#: js/toolbar.js:176 +#: js/toolbar.js:232 +#: js/turtledefs.js:451 +#: js/turtledefs.js:488 +#: js/activity.js:2679 +#: js/widgets/modewidget.js:99 +#: js/widgets/modewidget.js:101 +#: js/widgets/meterwidget.js:206 +#: js/widgets/meterwidget.js:208 +#: js/widgets/pitchdrummatrix.js:674 +#: js/widgets/pitchdrummatrix.js:676 +#: js/widgets/temperament.js:2002 +#: js/widgets/temperament.js:2004 +#: js/widgets/arpeggio.js:534 +#: js/widgets/arpeggio.js:536 +#: js/widgets/phrasemaker.js:534 +#: js/widgets/phrasemaker.js:536 +msgid "Stop" +msgstr "bokant" + +#: js/toolbar.js:51 +#: js/toolbar.js:112 +#: js/toolbar.js:177 +#: js/toolbar.js:233 +#: js/turtledefs.js:498 +msgid "Record" msgstr "" -#: js/piemenus.js:3420 -#: js/toolbar.js:60 -#: js/toolbar.js:120 -#: js/toolbar.js:185 +#: js/toolbar.js:52 +#: js/toolbar.js:53 +msgid "Full screen" +msgstr "" + +#: js/toolbar.js:54 +#: js/toolbar.js:115 +#: js/toolbar.js:180 +#: js/toolbar.js:236 +#: js/turtledefs.js:504 +msgid "Toggle Fullscreen" +msgstr "" + +#: js/toolbar.js:55 +#: js/toolbar.js:116 +#: js/toolbar.js:181 +#: js/toolbar.js:237 +#: js/turtledefs.js:510 +#: planet/js/StringHelper.js:33 +msgid "New project" +msgstr "" + +#: js/toolbar.js:56 +#: js/toolbar.js:117 +#: js/toolbar.js:182 +#: js/toolbar.js:238 +#: js/turtledefs.js:516 +msgid "Load project from file" +msgstr "" + +#: js/toolbar.js:57 +#: js/toolbar.js:118 +#: js/toolbar.js:119 +#: js/toolbar.js:183 +#: js/toolbar.js:239 +#: js/turtledefs.js:541 +#: js/turtledefs.js:550 +#: js/turtledefs.js:571 +msgid "Save project" +msgstr "" + +#: js/toolbar.js:58 +#: js/toolbar.js:77 +#: js/toolbar.js:79 +#: js/toolbar.js:138 +#: js/toolbar.js:147 +#: js/toolbar.js:149 +#: js/toolbar.js:184 +#: js/toolbar.js:202 +#: js/toolbar.js:204 #: js/toolbar.js:240 +#: js/toolbar.js:258 +#: js/toolbar.js:260 +msgid "Save project as HTML" +msgstr "" + +#: js/toolbar.js:59 +#: js/toolbar.js:120 +#: js/toolbar.js:185 +#: js/toolbar.js:241 +msgid "Find and share projects" +msgstr "" + +#: js/toolbar.js:60 +#: js/toolbar.js:121 +#: js/toolbar.js:186 +#: js/toolbar.js:242 +msgid "Offline. Sharing is unavailable" +msgstr "" + +#: js/toolbar.js:61 +#: js/toolbar.js:122 +#: js/toolbar.js:187 +#: js/toolbar.js:243 +msgid "Auxiliary menu" +msgstr "" + +#: js/toolbar.js:62 +#: js/toolbar.js:123 +#: js/toolbar.js:188 +#: js/toolbar.js:244 #: js/turtledefs.js:752 +#: js/piemenus.js:3423 msgid "Help" msgstr "Hulp" -#: js/piemenus.js:3762 -msgid "You have chosen key " +#: js/toolbar.js:63 +#: js/toolbar.js:124 +#: js/toolbar.js:189 +#: js/toolbar.js:245 +msgid "Run slowly" +msgstr "" + +#: js/toolbar.js:64 +#: js/toolbar.js:125 +#: js/toolbar.js:190 +#: js/toolbar.js:246 +#: js/turtledefs.js:682 +msgid "Run step by step" +msgstr "" + +#: js/toolbar.js:65 +#: js/toolbar.js:126 +#: js/toolbar.js:191 +#: js/toolbar.js:247 +#: js/turtledefs.js:689 +msgid "Display statistics" +msgstr "" + +#: js/toolbar.js:66 +#: js/toolbar.js:127 +#: js/toolbar.js:192 +#: js/toolbar.js:248 +msgid "Load plugin" +msgstr "" + +#: js/toolbar.js:67 +#: js/toolbar.js:128 +#: js/toolbar.js:193 +#: js/toolbar.js:249 +#: js/turtledefs.js:696 +msgid "Delete plugin" +msgstr "" + +#: js/toolbar.js:68 +#: js/toolbar.js:129 +#: js/toolbar.js:194 +#: js/toolbar.js:250 +msgid "Enable horizontal scrolling" +msgstr "" + +#: js/toolbar.js:69 +#: js/toolbar.js:130 +#: js/toolbar.js:195 +#: js/toolbar.js:251 +msgid "Disable horizontal scrolling" +msgstr "" + +#: js/toolbar.js:70 +#: js/toolbar.js:131 +#: js/toolbar.js:196 +#: js/toolbar.js:252 +#: planet/js/LocalCard.js:54 +#: planet/js/StringHelper.js:71 +msgid "Merge with current project" +msgstr "" + +#: js/toolbar.js:71 +#: js/toolbar.js:132 +msgid "Set Pitch Preview" +msgstr "" + +#: js/toolbar.js:72 +#: js/toolbar.js:133 +#: js/toolbar.js:197 +#: js/toolbar.js:253 +msgid "JavaScript Editor" +msgstr "" + +#: js/toolbar.js:73 +#: js/toolbar.js:134 +#: js/toolbar.js:198 +#: js/toolbar.js:254 +#: js/turtledefs.js:724 +msgid "Restore" +msgstr "" + +#: js/toolbar.js:74 +#: js/toolbar.js:135 +#: js/toolbar.js:199 +#: js/toolbar.js:255 +msgid "Switch to beginner mode" +msgstr "" + +#: js/toolbar.js:75 +#: js/toolbar.js:136 +#: js/toolbar.js:200 +#: js/toolbar.js:256 +msgid "Switch to advanced mode" +msgstr "" + +#: js/toolbar.js:76 +#: js/toolbar.js:137 +#: js/toolbar.js:146 +#: js/toolbar.js:201 +#: js/toolbar.js:257 +#: js/turtledefs.js:738 +msgid "Select language" +msgstr "" + +#: js/toolbar.js:78 +#: js/toolbar.js:81 +#: js/toolbar.js:140 +#: js/turtledefs.js:579 +msgid "Save mouse artwork as PNG" +msgstr "" + +#: js/toolbar.js:80 +#: js/toolbar.js:139 +#: js/turtledefs.js:575 +msgid "Save mouse artwork as SVG" +msgstr "" + +#: js/toolbar.js:82 +#: js/toolbar.js:141 +#: js/turtledefs.js:583 +msgid "Save music as WAV" +msgstr "" + +#: js/toolbar.js:83 +#: js/toolbar.js:142 +#: js/turtledefs.js:587 +msgid "Save sheet music as ABC" +msgstr "" + +#: js/toolbar.js:84 +#: js/toolbar.js:143 +#: js/turtledefs.js:591 +msgid "Save sheet music as Lilypond" +msgstr "" + +#: js/toolbar.js:85 +msgid "Save sheet music as MusicXML" +msgstr "" + +#: js/toolbar.js:86 +#: js/toolbar.js:144 +#: js/toolbar.js:152 +#: js/toolbar.js:207 +#: js/toolbar.js:263 +#: js/turtledefs.js:562 +#: js/turtledefs.js:595 +msgid "Save block artwork as SVG" +msgstr "" + +#: js/toolbar.js:87 +#: js/toolbar.js:145 +#: js/toolbar.js:153 +#: js/toolbar.js:208 +#: js/toolbar.js:264 +#: js/turtles.js:911 +msgid "Confirm" +msgstr "" + +#: js/toolbar.js:88 +#: js/toolbar.js:154 +#: js/toolbar.js:209 +#: js/toolbar.js:265 +msgid "English (United States)" +msgstr "" + +#: js/toolbar.js:89 +#: js/toolbar.js:155 +#: js/toolbar.js:210 +#: js/toolbar.js:266 +msgid "English (United Kingdom)" +msgstr "" + +#: js/toolbar.js:90 +#: js/toolbar.js:156 +#: js/toolbar.js:211 +#: js/toolbar.js:267 +msgid "日本語" +msgstr "" + +#: js/toolbar.js:91 +msgid "한국어" +msgstr "" + +#: js/toolbar.js:92 +#: js/toolbar.js:158 +#: js/toolbar.js:213 +#: js/toolbar.js:269 +msgid "español" +msgstr "" + +#: js/toolbar.js:93 +#: js/toolbar.js:159 +#: js/toolbar.js:214 +#: js/toolbar.js:270 +msgid "português" +msgstr "" + +#: js/toolbar.js:94 +#: js/toolbar.js:160 +#: js/toolbar.js:215 +#: js/toolbar.js:271 +msgid "にほんご" +msgstr "" + +#: js/toolbar.js:95 +#: js/toolbar.js:161 +#: js/toolbar.js:216 +#: js/toolbar.js:272 +msgid "中文" +msgstr "" + +#: js/toolbar.js:96 +#: js/toolbar.js:162 +#: js/toolbar.js:217 +#: js/toolbar.js:273 +msgid "ภาษาไทย" +msgstr "" + +#: js/toolbar.js:97 +#: js/toolbar.js:163 +#: js/toolbar.js:218 +#: js/toolbar.js:274 +msgid "aymara" +msgstr "" + +#: js/toolbar.js:98 +#: js/toolbar.js:164 +#: js/toolbar.js:219 +#: js/toolbar.js:275 +msgid "quechua" +msgstr "" + +#: js/toolbar.js:99 +#: js/toolbar.js:165 +#: js/toolbar.js:220 +#: js/toolbar.js:276 +msgid "guarani" +msgstr "" + +#: js/toolbar.js:100 +#: js/toolbar.js:166 +#: js/toolbar.js:221 +#: js/toolbar.js:277 +msgid "हिंदी" +msgstr "" + +#: js/toolbar.js:101 +#: js/toolbar.js:168 +#: js/toolbar.js:222 +#: js/toolbar.js:279 +msgid "igbo" +msgstr "" + +#: js/toolbar.js:102 +#: js/toolbar.js:169 +#: js/toolbar.js:223 +#: js/toolbar.js:280 +msgid "عربى" +msgstr "" + +#: js/toolbar.js:103 +#: js/toolbar.js:167 +#: js/toolbar.js:224 +#: js/toolbar.js:278 +msgid "తెలుగు" +msgstr "" + +#: js/toolbar.js:104 +#: js/toolbar.js:170 +#: js/toolbar.js:225 +#: js/toolbar.js:281 +msgid "עִברִית" +msgstr "" + +#: js/toolbar.js:113 +#: js/toolbar.js:114 +#: js/toolbar.js:178 +#: js/toolbar.js:179 +#: js/toolbar.js:234 +#: js/toolbar.js:235 +msgid "Full Screen" +msgstr "" + +#: js/toolbar.js:148 +#: js/toolbar.js:151 +#: js/toolbar.js:203 +#: js/toolbar.js:206 +#: js/toolbar.js:259 +#: js/toolbar.js:262 +#: js/turtledefs.js:558 +msgid "Save turtle artwork as PNG" +msgstr "" + +#: js/toolbar.js:150 +#: js/toolbar.js:205 +#: js/toolbar.js:261 +#: js/turtledefs.js:554 +msgid "Save turtle artwork as SVG" +msgstr "" + +#: js/toolbar.js:157 +#: js/toolbar.js:212 +#: js/toolbar.js:268 +msgid "한국인" +msgstr "" + +#: js/toolbar.js:174 +#: js/toolbar.js:230 +msgid "About Turtle Blocks" +msgstr "" + +#: js/toolbar.js:446 +#: js/toolbar.js:457 +#: js/toolbar.js:497 +msgid "Turtle Wrap Off" +msgstr "" + +#: js/toolbar.js:466 +#: js/toolbar.js:506 +msgid "Turtle Wrap On" +msgstr "" + +#: js/turtle-painter.js:1192 +#: js/turtle-painter.js:1193 +#: js/turtles.js:118 +#: js/block-verbose.js:1623 +#: js/block.js:1587 +#: js/lilypond.js:749 +#: js/lilypond.js:913 +#: js/lilypond.js:951 +#: js/logo.js:1184 +#: js/blocks/ActionBlocks.js:1223 +#: js/blocks/ProgramBlocks.js:1267 +msgid "start" +msgstr "begin" + +#: js/turtledefs.js:40 +#.TRANS: put the URL to the guide here, e.g., https://github.com/sugarlabs/turtleblocksjs/tree/master/guide/README.md +msgid "guide url" +msgstr "" + +#: js/turtledefs.js:85 +#: js/turtledefs.js:437 +msgid "Turtle Blocks is a Logo-inspired turtle that draws colorful pictures with snap-together visual-programming blocks." +msgstr "" + +#: js/turtledefs.js:118 +#: js/turtledefs.js:220 +msgid "search" +msgstr "" + +#: js/turtledefs.js:120 +#: js/turtledefs.js:222 +#: js/blocks/MeterBlocks.js:1343 +#: js/blocks/WidgetBlocks.js:522 +#.TRANS: musical meter (time signature), e.g., 4:4 +msgid "meter" +msgstr "" + +#: js/turtledefs.js:122 +#: js/turtledefs.js:224 +msgid "intervals" +msgstr "" + +#: js/turtledefs.js:124 +#: js/turtledefs.js:226 +msgid "ornament" +msgstr "" + +#: js/turtledefs.js:125 +#: js/turtledefs.js:227 +#: js/blocks/VolumeBlocks.js:362 +#: js/blocks/VolumeBlocks.js:502 +#: js/blocks/VolumeBlocks.js:545 +msgid "volume" +msgstr "" + +#: js/turtledefs.js:126 +#: js/turtledefs.js:228 +#: js/block-verbose.js:1700 +#: js/block-verbose.js:2626 +#: js/block.js:1664 +#: js/block.js:2554 +#: js/lilypond.js:732 +#: js/lilypond.js:897 +#: js/lilypond.js:941 +#: js/palette.js:577 +#: js/blocks/RhythmBlocks.js:766 +#: js/blocks/DrumBlocks.js:477 +#: js/blocks/VolumeBlocks.js:502 +#: js/widgets/phrasemaker.js:1038 +msgid "drum" +msgstr "" + +#: js/turtledefs.js:129 +#: js/turtledefs.js:231 +msgid "boxes" +msgstr "" + +#: js/turtledefs.js:130 +#: js/turtledefs.js:232 +msgid "widgets" +msgstr "" + +#: js/turtledefs.js:131 +#: js/turtledefs.js:233 +#: js/widgets/phrasemaker.js:1039 +msgid "graphics" +msgstr "" + +#: js/turtledefs.js:134 +#: js/turtledefs.js:236 +msgid "boolean" +msgstr "" + +#: js/turtledefs.js:137 +#: js/turtledefs.js:239 +#: js/blocks/HeapBlocks.js:59 +#: js/widgets/status.js:147 +msgid "heap" +msgstr "" + +#: js/turtledefs.js:138 +#: js/turtledefs.js:240 +#: js/blocks/DictBlocks.js:142 +#: js/blocks/ProgramBlocks.js:495 +msgid "dictionary" +msgstr "" + +#: js/turtledefs.js:139 +#: js/turtledefs.js:241 +msgid "ensemble" +msgstr "" + +#: js/turtledefs.js:140 +#: js/turtledefs.js:242 +msgid "extras" +msgstr "Ekstras" + +#: js/turtledefs.js:142 +#: js/turtledefs.js:244 +#.TRANS: program as in computer program +#.TRANS: program as in computer program +msgid "program" +msgstr "" + +#: js/turtledefs.js:143 +#: js/turtledefs.js:245 +msgid "my blocks" +msgstr "" + +#: js/turtledefs.js:185 +#: js/turtledefs.js:281 +msgid "artwork" +msgstr "" + +#: js/turtledefs.js:185 +#: js/turtledefs.js:281 +msgid "logic" msgstr "" -#: js/piemenus.js:3766 -msgid " for your pitch preview." +#: js/turtledefs.js:185 +#: js/turtledefs.js:281 +msgid "music" msgstr "" -#: js/palette.js:571 -msgid "grid" +#: js/turtledefs.js:187 +#: js/turtledefs.js:463 +msgid "Music Blocks is a collection of tools for exploring fundamental musical concepts in a fun way." msgstr "" -#: js/palette.js:577 -#: js/block.js:1540 -#: js/block.js:2343 -#: js/turtledefs.js:126 -#: js/turtledefs.js:228 -#: js/lilypond.js:740 -#: js/lilypond.js:905 -#: js/lilypond.js:949 -#: js/DrumBlocks.js:486 -#: js/RhythmBlocks.js:766 -#: js/VolumeBlocks.js:502 -#: js/phrasemaker.js:823 -msgid "drum" +#: js/turtledefs.js:436 +msgid "Welcome to Turtle Blocks" msgstr "" -#: js/palette.js:580 -msgid "effect" +#: js/turtledefs.js:438 +#: js/turtledefs.js:465 +#: js/turtledefs.js:774 +#: js/turtledefs.js:805 +msgid "The current version is" msgstr "" -#: js/palette.js:586 -msgid "sargam" +#: js/turtledefs.js:446 +#: js/turtledefs.js:483 +msgid "Click the run button to run the project in fast mode." msgstr "" -#: js/palette.js:589 -#: js/activity.js:1833 -#: js/RhythmBlocks.js:923 -#: js/PitchBlocks.js:442 -#: js/PitchBlocks.js:1748 -#.TRANS: a numeric mapping of the notes in an octave based on the musical mode -msgid "scale degree" +#: js/turtledefs.js:452 +msgid "Stop the turtle." msgstr "" -#: js/palette.js:592 -#: js/activity.js:1860 -msgid "mode name" +#: js/turtledefs.js:454 +#: js/turtledefs.js:491 +msgid "You can also type Alt-S to stop." msgstr "" -#: js/palette.js:595 -#: js/activity.js:1839 -msgid "invert mode" +#: js/turtledefs.js:462 +#: js/widgets/help.js:333 +msgid "Welcome to Music Blocks" msgstr "" -#: js/palette.js:598 -#: js/activity.js:1836 -msgid "voice name" +#: js/turtledefs.js:472 +#: js/widgets/help.js:334 +msgid "Meet Mr. Mouse!" msgstr "" -#: js/palette.js:601 -#: js/PitchBlocks.js:1181 -msgid "custom pitch" +#: js/turtledefs.js:473 +msgid "Mr Mouse is our Music Blocks conductor." msgstr "" -#: js/palette.js:605 -#: js/block.js:1456 -#: js/block.js:1575 -#: js/WidgetBlocks.js:218 -#: js/IntervalsBlocks.js:63 -msgid "temperament" +#: js/turtledefs.js:475 +msgid "Mr Mouse encourages you to explore Music Blocks." msgstr "" -#: js/palette.js:609 -msgid "accidental" +#: js/turtledefs.js:477 +msgid "Let us start our tour!" msgstr "" -#: js/palette.js:615 -#: js/activity.js:1866 -msgid "interval name" +#: js/turtledefs.js:489 +msgid "Stop the music (and the mice)." msgstr "" -#: js/palette.js:633 -#: js/PitchBlocks.js:405 -msgid "pitch converter" +#: js/turtledefs.js:499 +msgid "Record your project as video." msgstr "" -#: js/rubrics.js:522 -#: js/turtledefs.js:119 -#: js/turtledefs.js:221 -#: js/RhythmBlockPaletteBlocks.js:52 -#: js/RhythmBlockPaletteBlocks.js:233 -#: js/ProgramBlocks.js:745 -#: js/rhythmruler.js:1670 -#: js/rhythmruler.js:1677 -#: js/rhythmruler.js:1745 -#: js/rhythmruler.js:1752 -#: js/rhythmruler.js:1830 -#.TRANS: an arrangement of notes based on duration -msgid "rhythm" +#: js/turtledefs.js:505 +msgid "Toggle Fullscreen mode." msgstr "" -#: js/rubrics.js:523 -#: js/block.js:2339 -#: js/turtledefs.js:121 -#: js/turtledefs.js:223 -#: js/IntervalsBlocks.js:63 -#: js/PitchBlocks.js:1801 -#: js/PitchBlocks.js:1814 -#: js/SensorsBlocks.js:178 -#: js/phrasemaker.js:821 -#: js/musickeyboard.js:1653 -#.TRANS: pitch number -#.TRANS: we specify pitch in terms of a name and an octave. The name can be CDEFGAB or Do Re Mi Fa Sol La Ti. Octave is a number between 1 and 8. -msgid "pitch" +#: js/turtledefs.js:511 +msgid "Initialize a new project." msgstr "" -#: js/rubrics.js:524 -#: js/turtledefs.js:123 -#: js/turtledefs.js:225 -msgid "tone" +#: js/turtledefs.js:517 +msgid "You can also load projects from the file system." msgstr "" -#: js/rubrics.js:525 -#: js/lilypond.js:613 -#: js/lilypond.js:912 -#: js/lilypond.js:918 -#: js/lilypond.js:956 -msgid "mouse" +#: js/turtledefs.js:522 +#: planet/js/StringHelper.js:46 +msgid "Delete" msgstr "" -#: js/rubrics.js:526 -#: js/turtledefs.js:132 -#: js/turtledefs.js:234 -#: js/phrasemaker.js:825 -msgid "pen" +#: js/turtledefs.js:523 +msgid "To delete a block, just right-click on it, then you will be able to see the delete option" msgstr "" -#: js/rubrics.js:527 -#: js/turtledefs.js:133 -#: js/turtledefs.js:235 -#: js/NumberBlocks.js:905 -#: js/PitchBlocks.js:1679 -#: js/PitchBlocks.js:1720 -msgid "number" -msgstr "syfer" +#: js/turtledefs.js:528 +#: js/activity.js:2649 +#: planet/js/LocalCard.js:31 +msgid "Copy" +msgstr "Kopieer" -#: js/rubrics.js:528 -#: js/turtledefs.js:127 -#: js/turtledefs.js:229 -msgid "flow" -msgstr "Vloei" +#: js/turtledefs.js:529 +msgid "To copy a block, just right-click on it, then you will be able to see the copy option" +msgstr "" -#: js/rubrics.js:530 -#: js/turtledefs.js:136 -#: js/turtledefs.js:238 -msgid "sensors" +#: js/turtledefs.js:534 +#: js/piemenus.js:3411 +msgid "Extract" msgstr "" -#: js/rubrics.js:531 -#: js/turtledefs.js:135 -#: js/turtledefs.js:237 -#: js/MediaBlocks.js:930 -msgid "media" +#: js/turtledefs.js:535 +msgid "To extract a block, just right-click on it, then you will be able to see the extract option" msgstr "" -#: js/rubrics.js:532 -msgid "mice" +#: js/turtledefs.js:542 +#: js/turtledefs.js:552 +#: js/turtledefs.js:573 +msgid "Save your project to a file." msgstr "" -#: js/macros.js:711 -#: js/musicutils.js:783 -#: js/synthutils.js:181 -#.TRANS: animal sound effect -msgid "duck" +#: js/turtledefs.js:549 +#: js/turtledefs.js:570 +msgid "save" msgstr "" -#: js/toolbar.js:46 -#: js/toolbar.js:107 -msgid "About Music Blocks" +#: js/turtledefs.js:556 +#: js/turtledefs.js:577 +msgid "Save graphics from your project to as SVG." msgstr "" -#: js/toolbar.js:47 -#: js/toolbar.js:108 -#: js/toolbar.js:172 -#: js/toolbar.js:228 -#: js/turtledefs.js:445 -#: js/turtledefs.js:482 -#: js/activity.js:2281 -#: js/activity.js:2289 -#: js/activity.js:2520 -#: js/modewidget.js:77 -#: js/pitchstaircase.js:121 -#: js/phrasemaker.js:302 -#: js/phrasemaker.js:312 -#: js/phrasemaker.js:314 -#: js/phrasemaker.js:3901 -#: js/phrasemaker.js:4061 -#: js/phrasemaker.js:4066 -#: js/phrasemaker.js:4068 -#: js/phrasemaker.js:4183 -#: js/pitchdrummatrix.js:81 -#: js/pitchdrummatrix.js:574 -#: js/pitchdrummatrix.js:576 -#: js/pitchdrummatrix.js:628 -#: js/pitchdrummatrix.js:630 -#: js/pitchdrummatrix.js:645 -#: js/pitchdrummatrix.js:647 -#: js/pitchdrummatrix.js:674 -#: js/pitchdrummatrix.js:676 -#: js/temperament.js:477 -#: js/temperament.js:480 -#: js/temperament.js:540 -#: js/temperament.js:542 -#: js/temperament.js:1835 -#: js/temperament.js:1837 -#: js/temperament.js:1986 -#: js/temperament.js:1988 -#: js/musickeyboard.js:522 -#: js/musickeyboard.js:682 -#: js/musickeyboard.js:684 -#: js/musickeyboard.js:756 -#: js/musickeyboard.js:758 -#: js/rhythmruler.js:298 -#: js/rhythmruler.js:300 -#: js/rhythmruler.js:314 -#: js/rhythmruler.js:316 -#: js/sampler.js:96 -#: js/sampler.js:98 -#: js/sampler.js:229 -#: js/sampler.js:235 -#: js/sampler.js:237 -#: js/tempo.js:84 -#: js/tempo.js:86 -#: js/timbre.js:432 -#: js/timbre.js:434 -#: js/timbre.js:465 -#: js/timbre.js:467 -#: js/timbre.js:746 -#: js/meterwidget.js:80 -#: js/arpeggio.js:90 -#: js/arpeggio.js:547 -#: js/arpeggio.js:549 -#: js/arpeggio.js:644 -#: js/arpeggio.js:646 -msgid "Play" +#: js/turtledefs.js:560 +#: js/turtledefs.js:581 +msgid "Save graphics from your project as PNG." msgstr "" -#: js/toolbar.js:48 -#: js/toolbar.js:109 -#: js/toolbar.js:173 -#: js/toolbar.js:229 -#: js/turtledefs.js:451 -#: js/turtledefs.js:488 -#: js/activity.js:2297 -#: js/modewidget.js:99 -#: js/modewidget.js:101 -#: js/phrasemaker.js:323 -#: js/phrasemaker.js:325 -#: js/pitchdrummatrix.js:561 -#: js/pitchdrummatrix.js:563 -#: js/temperament.js:1820 -#: js/temperament.js:1822 -#: js/meterwidget.js:101 -#: js/meterwidget.js:103 -#: js/arpeggio.js:534 -#: js/arpeggio.js:536 -msgid "Stop" -msgstr "bokant" +#: js/turtledefs.js:564 +#: js/turtledefs.js:597 +msgid "Save block artwork as an SVG file." +msgstr "" -#: js/toolbar.js:49 -#: js/toolbar.js:110 -#: js/toolbar.js:174 -#: js/toolbar.js:230 -#: js/turtledefs.js:498 -msgid "Record" +#: js/turtledefs.js:585 +msgid "Save audio from your project as WAV." msgstr "" -#: js/toolbar.js:50 -#: js/toolbar.js:51 -msgid "Full screen" +#: js/turtledefs.js:589 +msgid "Save your project to as an ABC file." msgstr "" -#: js/toolbar.js:52 -#: js/toolbar.js:112 -#: js/toolbar.js:177 -#: js/toolbar.js:232 -#: js/turtledefs.js:504 -msgid "Toggle Fullscreen" +#: js/turtledefs.js:593 +msgid "Save your project to as a Lilypond file." msgstr "" -#: js/toolbar.js:53 -#: js/toolbar.js:113 -#: js/toolbar.js:178 -#: js/toolbar.js:233 -#: js/turtledefs.js:510 -#: js/StringHelper.js:33 -msgid "New project" +#: js/turtledefs.js:604 +msgid "Load samples from server" msgstr "" -#: js/toolbar.js:54 -#: js/toolbar.js:114 -#: js/toolbar.js:179 -#: js/toolbar.js:234 -#: js/turtledefs.js:516 -msgid "Load project from file" +#: js/turtledefs.js:605 +msgid "This button opens a viewer for loading example projects." msgstr "" -#: js/toolbar.js:55 -#: js/toolbar.js:115 -#: js/toolbar.js:116 -#: js/toolbar.js:180 -#: js/toolbar.js:235 -#: js/turtledefs.js:541 -#: js/turtledefs.js:550 -#: js/turtledefs.js:571 -msgid "Save project" +#: js/turtledefs.js:611 +msgid "Palette buttons" msgstr "" -#: js/toolbar.js:56 -#: js/toolbar.js:75 -#: js/toolbar.js:77 -#: js/toolbar.js:135 -#: js/toolbar.js:144 -#: js/toolbar.js:146 -#: js/toolbar.js:181 -#: js/toolbar.js:199 -#: js/toolbar.js:201 -#: js/toolbar.js:236 -#: js/toolbar.js:254 -#: js/toolbar.js:256 -msgid "Save project as HTML" +#: js/turtledefs.js:612 +msgid "This toolbar contains the palette buttons including Rhythm Pitch Tone Action and more." msgstr "" -#: js/toolbar.js:57 -#: js/toolbar.js:117 -#: js/toolbar.js:182 -#: js/toolbar.js:237 -msgid "Find and share projects" +#: js/turtledefs.js:614 +msgid "Click to show the palettes of blocks and drag blocks from the palettes onto the canvas to use them." msgstr "" -#: js/toolbar.js:58 -#: js/toolbar.js:118 -#: js/toolbar.js:183 -#: js/toolbar.js:238 -msgid "Offline. Sharing is unavailable" +#: js/turtledefs.js:620 +msgid "Cartesian/Polar" +msgstr "" + +#: js/turtledefs.js:621 +msgid "Show or hide a coordinate grid." +msgstr "" + +#: js/turtledefs.js:626 +#: js/turtles.js:902 +msgid "Clean" +msgstr "Maak skoon" + +#: js/turtledefs.js:627 +msgid "Clear the screen and return the mice to their initial positions." +msgstr "" + +#: js/turtledefs.js:632 +#: js/turtles.js:955 +msgid "Collapse" msgstr "" -#: js/toolbar.js:59 -#: js/toolbar.js:119 -#: js/toolbar.js:184 -#: js/toolbar.js:239 -msgid "Auxiliary menu" +#: js/turtledefs.js:633 +msgid "Collapse the graphics window." msgstr "" -#: js/toolbar.js:61 -#: js/toolbar.js:121 -#: js/toolbar.js:186 -#: js/toolbar.js:241 -msgid "Run slowly" +#: js/turtledefs.js:638 +#: js/activity.js:5684 +msgid "Home" msgstr "" -#: js/toolbar.js:62 -#: js/toolbar.js:122 -#: js/toolbar.js:187 -#: js/toolbar.js:242 -#: js/turtledefs.js:682 -msgid "Run step by step" +#: js/turtledefs.js:639 +msgid "Return all blocks to the center of the screen." msgstr "" -#: js/toolbar.js:63 -#: js/toolbar.js:123 -#: js/toolbar.js:188 -#: js/toolbar.js:243 -#: js/turtledefs.js:689 -msgid "Display statistics" +#: js/turtledefs.js:644 +msgid "Show/hide blocks" msgstr "" -#: js/toolbar.js:64 -#: js/toolbar.js:124 -#: js/toolbar.js:189 -#: js/toolbar.js:244 -msgid "Load plugin" +#: js/turtledefs.js:645 +msgid "Hide or show the blocks and the palettes." msgstr "" -#: js/toolbar.js:65 -#: js/toolbar.js:125 -#: js/toolbar.js:190 -#: js/toolbar.js:245 -#: js/turtledefs.js:696 -msgid "Delete plugin" +#: js/turtledefs.js:650 +msgid "Expand/collapse collapsable blocks" msgstr "" -#: js/toolbar.js:66 -#: js/toolbar.js:126 -#: js/toolbar.js:191 -#: js/toolbar.js:246 -msgid "Enable horizontal scrolling" +#: js/turtledefs.js:651 +msgid "Expand or collapse start and action stacks." msgstr "" -#: js/toolbar.js:67 -#: js/toolbar.js:127 -#: js/toolbar.js:192 -#: js/toolbar.js:247 -msgid "Disable horizontal scrolling" +#: js/turtledefs.js:658 +#: js/activity.js:5704 +msgid "Decrease block size" msgstr "" -#: js/toolbar.js:68 -#: js/toolbar.js:128 -#: js/toolbar.js:193 -#: js/toolbar.js:248 -#: js/LocalCard.js:54 -#: js/StringHelper.js:71 -msgid "Merge with current project" +#: js/turtledefs.js:659 +msgid "Decrease the size of the blocks." msgstr "" -#: js/toolbar.js:69 -#: js/toolbar.js:129 -msgid "Set Pitch Preview" +#: js/turtledefs.js:664 +#: js/activity.js:5710 +msgid "Increase block size" msgstr "" -#: js/toolbar.js:70 -#: js/toolbar.js:130 -#: js/toolbar.js:194 -#: js/toolbar.js:249 -msgid "Toggle JavaScript Editor" +#: js/turtledefs.js:665 +msgid "Increase the size of the blocks." msgstr "" -#: js/toolbar.js:71 -#: js/toolbar.js:131 -#: js/toolbar.js:195 -#: js/toolbar.js:250 -#: js/turtledefs.js:724 -msgid "Restore" +#: js/turtledefs.js:670 +msgid "Expand/collapse option toolbar" msgstr "" -#: js/toolbar.js:72 -#: js/toolbar.js:132 -#: js/toolbar.js:196 -#: js/toolbar.js:251 -msgid "Switch to beginner mode" +#: js/turtledefs.js:671 +msgid "Click this button to expand or collapse the auxillary toolbar." msgstr "" -#: js/toolbar.js:73 -#: js/toolbar.js:133 -#: js/toolbar.js:197 -#: js/toolbar.js:252 -msgid "Switch to advanced mode" +#: js/turtledefs.js:676 +msgid "Run slow" msgstr "" -#: js/toolbar.js:74 -#: js/toolbar.js:134 -#: js/toolbar.js:143 -#: js/toolbar.js:198 -#: js/toolbar.js:253 -#: js/turtledefs.js:738 -msgid "Select language" +#: js/turtledefs.js:677 +msgid "Click to run the project in slow mode." msgstr "" -#: js/toolbar.js:76 -#: js/toolbar.js:79 -#: js/toolbar.js:137 -#: js/turtledefs.js:579 -msgid "Save mouse artwork as PNG" +#: js/turtledefs.js:683 +msgid "Click to run the project step by step." msgstr "" -#: js/toolbar.js:78 -#: js/toolbar.js:136 -#: js/turtledefs.js:575 -msgid "Save mouse artwork as SVG" +#: js/turtledefs.js:690 +msgid "Display statistics about your Music project." msgstr "" -#: js/toolbar.js:80 -#: js/toolbar.js:138 -#: js/turtledefs.js:583 -msgid "Save music as WAV" +#: js/turtledefs.js:697 +msgid "Delete a selected plugin." msgstr "" -#: js/toolbar.js:81 -#: js/toolbar.js:139 -#: js/turtledefs.js:587 -msgid "Save sheet music as ABC" +#: js/turtledefs.js:704 +msgid "Enable scrolling" msgstr "" -#: js/toolbar.js:82 -#: js/toolbar.js:140 -#: js/turtledefs.js:591 -msgid "Save sheet music as Lilypond" +#: js/turtledefs.js:705 +msgid "You can scroll the blocks on the canvas." msgstr "" -#: js/toolbar.js:83 -msgid "Save sheet music as MusicXML" +#: js/turtledefs.js:714 +msgid "Wrap Turtle" msgstr "" -#: js/toolbar.js:84 -#: js/toolbar.js:141 -#: js/toolbar.js:149 -#: js/toolbar.js:204 -#: js/toolbar.js:259 -#: js/turtledefs.js:562 -#: js/turtledefs.js:595 -msgid "Save block artwork as SVG" +#: js/turtledefs.js:715 +msgid "Turn Turtle wrapping On or Off." msgstr "" -#: js/toolbar.js:85 -#: js/toolbar.js:142 -#: js/toolbar.js:150 -#: js/toolbar.js:205 -#: js/toolbar.js:260 -msgid "Confirm" +#: js/turtledefs.js:725 +msgid "Restore blocks from the trash." msgstr "" -#: js/toolbar.js:86 -#: js/toolbar.js:151 -#: js/toolbar.js:206 -#: js/toolbar.js:261 -msgid "English (United States)" +#: js/turtledefs.js:732 +msgid "Switch mode" msgstr "" -#: js/toolbar.js:87 -#: js/toolbar.js:152 -#: js/toolbar.js:207 -#: js/toolbar.js:262 -msgid "English (United Kingdom)" +#: js/turtledefs.js:733 +msgid "Switch between beginner and advance modes." msgstr "" -#: js/toolbar.js:88 -#: js/toolbar.js:153 -#: js/toolbar.js:208 -#: js/toolbar.js:263 -msgid "日本語" +#: js/turtledefs.js:739 +msgid "Select your language preference." msgstr "" -#: js/toolbar.js:89 -msgid "한국어" +#: js/turtledefs.js:745 +msgid "Keyboard shortcuts" msgstr "" -#: js/toolbar.js:90 -#: js/toolbar.js:155 -#: js/toolbar.js:210 -#: js/toolbar.js:265 -msgid "español" +#: js/turtledefs.js:746 +msgid "You can type d to create a do block and r to create a re block etc." msgstr "" -#: js/toolbar.js:91 -#: js/toolbar.js:156 -#: js/toolbar.js:211 -#: js/toolbar.js:266 -msgid "português" +#: js/turtledefs.js:753 +msgid "Show these messages." msgstr "" -#: js/toolbar.js:92 -#: js/toolbar.js:157 -#: js/toolbar.js:212 -#: js/toolbar.js:267 -msgid "にほんご" +#: js/turtledefs.js:759 +#: js/turtledefs.js:790 +#: js/widgets/help.js:335 +msgid "Guide" msgstr "" -#: js/toolbar.js:93 -#: js/toolbar.js:158 -#: js/toolbar.js:213 -#: js/toolbar.js:268 -msgid "中文" +#: js/turtledefs.js:760 +msgid "A detailed guide to Turtle Blocks is available." msgstr "" -#: js/toolbar.js:94 -#: js/toolbar.js:159 -#: js/toolbar.js:214 -#: js/toolbar.js:269 -msgid "ภาษาไทย" +#: js/turtledefs.js:764 +msgid "Turtle Blocks Guide" msgstr "" -#: js/toolbar.js:95 -#: js/toolbar.js:160 -#: js/toolbar.js:215 -#: js/toolbar.js:270 -msgid "aymara" +#: js/turtledefs.js:767 +#: js/turtledefs.js:798 +#: js/widgets/help.js:336 +msgid "About" msgstr "" -#: js/toolbar.js:96 -#: js/toolbar.js:161 -#: js/toolbar.js:216 -#: js/toolbar.js:271 -msgid "quechua" +#: js/turtledefs.js:768 +msgid "Turtle Blocks is an open source collection of tools for exploring musical concepts." msgstr "" -#: js/toolbar.js:97 -#: js/toolbar.js:162 -#: js/toolbar.js:217 -#: js/toolbar.js:272 -msgid "guarani" +#: js/turtledefs.js:770 +msgid "A full list of contributors can be found in the Turtle Blocks GitHub repository." msgstr "" -#: js/toolbar.js:98 -#: js/toolbar.js:163 -#: js/toolbar.js:218 -#: js/toolbar.js:273 -msgid "हिंदी" +#: js/turtledefs.js:772 +msgid "Turtle Blocks is licensed under the AGPL." +msgstr "" + +#: js/turtledefs.js:780 +msgid "Turtle Blocks GitHub repository" msgstr "" -#: js/toolbar.js:99 -#: js/toolbar.js:165 -#: js/toolbar.js:219 -#: js/toolbar.js:275 -msgid "igbo" +#: js/turtledefs.js:783 +#: js/turtledefs.js:814 +#: js/widgets/help.js:337 +#: js/widgets/help.js:359 +msgid "Congratulations." msgstr "" -#: js/toolbar.js:100 -#: js/toolbar.js:166 -#: js/toolbar.js:220 -#: js/toolbar.js:276 -msgid "عربى" +#: js/turtledefs.js:784 +msgid "You have finished the tour. Please enjoy Turtle Blocks!" msgstr "" -#: js/toolbar.js:101 -#: js/toolbar.js:164 -#: js/toolbar.js:221 -#: js/toolbar.js:274 -msgid "తెలుగు" +#: js/turtledefs.js:791 +msgid "A detailed guide to Music Blocks is available." msgstr "" -#: js/toolbar.js:102 -#: js/toolbar.js:167 -#: js/toolbar.js:222 -#: js/toolbar.js:277 -msgid "עִברִית" +#: js/turtledefs.js:799 +msgid "Music Blocks is an open source collection of tools for exploring musical concepts." msgstr "" -#: js/toolbar.js:111 -#: js/toolbar.js:175 -#: js/toolbar.js:176 -#: js/toolbar.js:231 -msgid "Full Screen" +#: js/turtledefs.js:801 +msgid "A full list of contributors can be found in the Music Blocks GitHub repository." msgstr "" -#: js/toolbar.js:145 -#: js/toolbar.js:148 -#: js/toolbar.js:200 -#: js/toolbar.js:203 -#: js/toolbar.js:255 -#: js/toolbar.js:258 -#: js/turtledefs.js:558 -msgid "Save turtle artwork as PNG" +#: js/turtledefs.js:803 +msgid "Music Blocks is licensed under the AGPL." msgstr "" -#: js/toolbar.js:147 -#: js/toolbar.js:202 -#: js/toolbar.js:257 -#: js/turtledefs.js:554 -msgid "Save turtle artwork as SVG" +#: js/turtledefs.js:811 +msgid "Music Blocks GitHub repository" msgstr "" -#: js/toolbar.js:154 -#: js/toolbar.js:209 -#: js/toolbar.js:264 -msgid "한국인" +#: js/turtledefs.js:815 +msgid "You have finished the tour. Please enjoy Music Blocks!" msgstr "" -#: js/toolbar.js:171 -#: js/toolbar.js:227 -msgid "About Turtle Blocks" +#: js/turtles.js:882 +msgid "Grid" msgstr "" -#: js/toolbar.js:429 -#: js/toolbar.js:440 -msgid "Turtle Wrap Off" +#: js/turtles.js:1024 +msgid "Expand" msgstr "" -#: js/toolbar.js:442 -msgid "Turtle Wrap On" +#: js/block-verbose.js:1616 +#: js/block-verbose.js:1735 +#: js/block.js:1580 +#: js/block.js:1699 +#: js/palette.js:605 +#: js/blocks/IntervalsBlocks.js:63 +#: js/blocks/WidgetBlocks.js:259 +msgid "temperament" msgstr "" -#: js/block.js:1470 +#: js/block-verbose.js:1630 +#: js/block.js:1594 msgid "matrix" msgstr "" -#: js/block.js:1477 -#: js/WidgetBlocks.js:1226 +#: js/block-verbose.js:1637 +#: js/block.js:1601 +#: js/blocks/WidgetBlocks.js:1509 #: plugins/rodi.rtp:324 msgid "status" msgstr "" -#: js/block.js:1484 +#: js/block-verbose.js:1644 +#: js/block.js:1608 msgid "drum mapper" msgstr "" -#: js/block.js:1491 +#: js/block-verbose.js:1651 +#: js/block.js:1615 msgid "ruler" msgstr "" -#: js/block.js:1498 -#: js/WidgetBlocks.js:327 +#: js/block-verbose.js:1658 +#: js/block.js:1622 +#: js/blocks/WidgetBlocks.js:397 #.TRANS: timbre is the character or quality of a musical sound msgid "timbre" msgstr "" -#: js/block.js:1505 +#: js/block-verbose.js:1665 +#: js/block.js:1629 msgid "stair" msgstr "" -#: js/block.js:1512 -#: js/WidgetBlocks.js:577 +#: js/block-verbose.js:1672 +#: js/block.js:1636 +#: js/blocks/WidgetBlocks.js:707 #.TRANS: the speed at music is should be played. msgid "tempo" msgstr "" -#: js/block.js:1519 -#: js/block.js:1582 -#: js/IntervalsBlocks.js:1268 +#: js/block-verbose.js:1679 +#: js/block-verbose.js:1742 +#: js/block.js:1643 +#: js/block.js:1706 +#: js/blocks/IntervalsBlocks.js:1464 #.TRANS: mode, e.g., Major in C Major msgid "mode" msgstr "" -#: js/block.js:1526 +#: js/block-verbose.js:1686 +#: js/block.js:1650 msgid "slider" msgstr "" -#: js/block.js:1533 -#: js/SensorsBlocks.js:1001 +#: js/block-verbose.js:1693 +#: js/block.js:1657 +#: js/blocks/SensorsBlocks.js:1001 msgid "keyboard" msgstr "sleutelbord" -#: js/block.js:1547 -#: js/WidgetBlocks.js:957 -#: js/WidgetBlocks.js:988 +#: js/block-verbose.js:1707 +#: js/block.js:1671 +#: js/blocks/WidgetBlocks.js:1190 +#: js/blocks/WidgetBlocks.js:1228 #.TRANS: widget for subdividing a measure into distinct rhythmic elements msgid "rhythm maker" msgstr "" -#: js/block.js:1554 -#: js/block.js:2182 -#: js/block.js:2236 -#: js/RhythmBlockPaletteBlocks.js:70 -#: js/RhythmBlockPaletteBlocks.js:251 -#: js/RhythmBlockPaletteBlocks.js:484 -#: js/RhythmBlockPaletteBlocks.js:553 -#: js/RhythmBlockPaletteBlocks.js:604 -#: js/RhythmBlockPaletteBlocks.js:874 -#: js/RhythmBlocks.js:33 -#: js/RhythmBlocks.js:356 -#: js/RhythmBlocks.js:766 -#: js/RhythmBlocks.js:806 -#: js/OrnamentBlocks.js:220 -#: js/OrnamentBlocks.js:312 -#: js/MeterBlocks.js:1367 -#: js/DictActions.js:85 -#: js/phrasemaker.js:731 -#: js/phrasemaker.js:2393 -#: js/phrasemaker.js:2436 -#: js/phrasemaker.js:2534 +#: js/block-verbose.js:1714 +#: js/block-verbose.js:2457 +#: js/block-verbose.js:2514 +#: js/block.js:1678 +#: js/block.js:2385 +#: js/block.js:2442 +#: js/blocks/MeterBlocks.js:1367 +#: js/blocks/OrnamentBlocks.js:220 +#: js/blocks/OrnamentBlocks.js:312 +#: js/blocks/RhythmBlocks.js:33 +#: js/blocks/RhythmBlocks.js:356 +#: js/blocks/RhythmBlocks.js:766 +#: js/blocks/RhythmBlocks.js:806 +#: js/blocks/RhythmBlockPaletteBlocks.js:70 +#: js/blocks/RhythmBlockPaletteBlocks.js:252 +#: js/blocks/RhythmBlockPaletteBlocks.js:485 +#: js/blocks/RhythmBlockPaletteBlocks.js:554 +#: js/blocks/RhythmBlockPaletteBlocks.js:605 +#: js/blocks/RhythmBlockPaletteBlocks.js:875 +#: js/turtleactions/DictActions.js:85 +#: js/widgets/phrasemaker.js:942 +#: js/widgets/phrasemaker.js:2656 +#: js/widgets/phrasemaker.js:2699 +#: js/widgets/phrasemaker.js:2810 #.TRANS: the value (e.g., 1/4 note) of the note being played. msgid "note value" msgstr "" -#: js/block.js:1561 -#: js/block.js:2110 -#: js/block.js:2133 -#: js/IntervalsBlocks.js:875 -#: js/OrnamentBlocks.js:312 +#: js/block-verbose.js:1721 +#: js/block-verbose.js:2382 +#: js/block-verbose.js:2405 +#: js/block.js:1685 +#: js/block.js:2310 +#: js/block.js:2333 +#: js/blocks/IntervalsBlocks.js:1071 +#: js/blocks/OrnamentBlocks.js:312 #.TRANS: calculate a relative step between notes based on semi-tones msgid "scalar interval" msgstr "" -#: js/block.js:1568 -#: js/RhythmBlocks.js:148 +#: js/block-verbose.js:1728 +#: js/block.js:1692 +#: js/blocks/RhythmBlocks.js:148 msgid "milliseconds" msgstr "" -#: js/block.js:2180 -#: js/block.js:2184 -#: js/block.js:2234 -#: js/block.js:2345 -#: js/ProgramBlocks.js:1273 -#: js/RhythmBlocks.js:712 -#: js/rhythmruler.js:834 -#: js/rhythmruler.js:961 +#: js/block-verbose.js:2455 +#: js/block-verbose.js:2459 +#: js/block-verbose.js:2512 +#: js/block-verbose.js:2628 +#: js/block.js:2383 +#: js/block.js:2387 +#: js/block.js:2440 +#: js/block.js:2556 +#: js/blocks/RhythmBlocks.js:712 +#: js/blocks/ProgramBlocks.js:1273 +#: js/widgets/rhythmruler.js:1183 +#: js/widgets/rhythmruler.js:1329 msgid "silence" msgstr "" -#: js/block.js:2265 -#: js/block.js:3134 -#: js/block.js:3151 -#: js/activity.js:2336 -#: js/activity.js:2387 -#: js/musicutils.js:2932 -#: js/musicutils.js:4287 +#: js/block-verbose.js:2548 +#: js/block-verbose.js:3492 +#: js/block-verbose.js:3509 +#: js/activity.js:2718 +#: js/activity.js:2769 +#: js/block.js:2476 +#: js/block.js:3416 +#: js/block.js:3433 +#: js/utils/musicutils.js:3780 +#: js/utils/musicutils.js:5273 +#.TRANS: the note names must be separated by single spaces #.TRANS: the note names must be separated by single spaces #.TRANS: the note names must be separated by single spaces msgid "ti la sol fa mi re do" msgstr "" -#: js/block.js:2333 +#: js/block-verbose.js:2616 +#: js/block.js:2544 +#.TRANS: scalar step #.TRANS: scalar step msgid "down" msgstr "" -#: js/block.js:2334 +#: js/block-verbose.js:2617 +#: js/block.js:2545 msgid "up" msgstr "" -#: js/block.js:3477 -#: js/block.js:3490 -#: js/ExtrasBlocks.js:612 +#: js/block-verbose.js:3026 +#: js/block.js:2950 +msgid "Silence block cannot be removed." +msgstr "" + +#: js/block-verbose.js:3824 +#: js/block.js:3748 +#: js/blocks.js:2607 +#: js/blocks.js:3218 +#: js/palette.js:618 +#: js/blocks/BooleanBlocks.js:77 +#: js/blocks/BooleanBlocks.js:167 +#: js/blocks/BooleanBlocks.js:251 +#: js/blocks/BooleanBlocks.js:335 +#: js/blocks/BooleanBlocks.js:433 +#: js/blocks/BooleanBlocks.js:539 +#: js/blocks/BooleanBlocks.js:640 +#: js/blocks/BooleanBlocks.js:741 +#: js/blocks/BooleanBlocks.js:847 +#: js/blocks/BooleanBlocks.js:948 +#: js/blocks/BooleanBlocks.js:1033 +#: js/blocks/SensorsBlocks.js:910 +msgid "true" +msgstr "" + +#: js/block-verbose.js:3824 +#: js/block.js:3748 +#: js/blocks.js:2609 +#: js/blocks.js:3220 +#: js/blocks/BooleanBlocks.js:79 +#: js/blocks/BooleanBlocks.js:169 +#: js/blocks/BooleanBlocks.js:253 +#: js/blocks/BooleanBlocks.js:337 +#: js/blocks/BooleanBlocks.js:435 +#: js/blocks/BooleanBlocks.js:541 +#: js/blocks/BooleanBlocks.js:642 +#: js/blocks/BooleanBlocks.js:743 +#: js/blocks/BooleanBlocks.js:849 +#: js/blocks/BooleanBlocks.js:950 +#: js/blocks/SensorsBlocks.js:912 +msgid "false" +msgstr "" + +#: js/block-verbose.js:3835 +#: js/block-verbose.js:3848 +#: js/block.js:3759 +#: js/block.js:3772 +#: js/blocks/ExtrasBlocks.js:615 msgid "Cartesian" msgstr "" -#: js/block.js:3478 -#: js/block.js:3491 -#: js/ExtrasBlocks.js:616 +#: js/block-verbose.js:3836 +#: js/block-verbose.js:3849 +#: js/block.js:3760 +#: js/block.js:3773 +#: js/blocks/ExtrasBlocks.js:619 msgid "polar" msgstr "" -#: js/block.js:3479 -#: js/block.js:3492 -#: js/ExtrasBlocks.js:620 +#: js/block-verbose.js:3837 +#: js/block-verbose.js:3850 +#: js/block.js:3761 +#: js/block.js:3774 +#: js/blocks/ExtrasBlocks.js:623 msgid "Cartesian+polar" msgstr "" -#: js/block.js:3480 -#: js/block.js:3499 -#: js/ExtrasBlocks.js:649 +#: js/block-verbose.js:3838 +#: js/block-verbose.js:3857 +#: js/block.js:3762 +#: js/block.js:3781 +#: js/blocks/ExtrasBlocks.js:652 msgid "none" msgstr "" -#: js/block.js:3493 -#: js/ExtrasBlocks.js:625 +#: js/block-verbose.js:3851 +#: js/block.js:3775 +#: js/blocks/ExtrasBlocks.js:628 msgid "treble" msgstr "" -#: js/block.js:3494 -#: js/ExtrasBlocks.js:629 +#: js/block-verbose.js:3852 +#: js/block.js:3776 +#: js/blocks/ExtrasBlocks.js:632 msgid "grand staff" msgstr "" -#: js/block.js:3495 -#: js/ExtrasBlocks.js:633 +#: js/block-verbose.js:3853 +#: js/block.js:3777 +#: js/blocks/ExtrasBlocks.js:636 msgid "mezzo-soprano" msgstr "" -#: js/block.js:3496 -#: js/ExtrasBlocks.js:637 +#: js/block-verbose.js:3854 +#: js/block.js:3778 +#: js/blocks/ExtrasBlocks.js:640 msgid "alto" msgstr "" -#: js/block.js:3497 -#: js/ExtrasBlocks.js:641 +#: js/block-verbose.js:3855 +#: js/block.js:3779 +#: js/blocks/ExtrasBlocks.js:644 msgid "tenor" msgstr "" -#: js/block.js:3498 -#: js/ExtrasBlocks.js:645 -#: js/musicutils.js:736 -#: js/synthutils.js:64 +#: js/block-verbose.js:3856 +#: js/block.js:3780 +#: js/utils/musicutils.js:1115 +#: js/utils/synthutils.js:80 +#: js/blocks/ExtrasBlocks.js:648 #.TRANS: musical instrument msgid "bass" msgstr "" -#: js/block.js:4075 +#: js/block-verbose.js:3901 +#: js/block.js:3825 +#: js/blocks.js:2600 +#: js/blocks.js:3211 +msgid "on2" +msgstr "" + +#: js/block-verbose.js:3903 +#: js/block.js:3827 +#: js/blocks.js:2602 +#: js/blocks.js:3213 +msgid "off" +msgstr "" + +#: js/block-verbose.js:4470 +#: js/block.js:4394 msgid "Not a number" msgstr "" -#: js/block.js:4082 +#: js/block-verbose.js:4477 +#: js/block.js:4401 msgid "Octave value must be between 1 and 10." msgstr "" -#: js/block.js:4090 +#: js/block-verbose.js:4485 +#: js/block.js:4409 msgid "Numbers can have at most 10 digits." msgstr "" -#: js/notation.js:353 -msgid "Lilypond cannot process pickup of " +#: js/activity.js:390 +#: js/activity.js:395 +msgid "Search for blocks" msgstr "" -#: js/turtledefs.js:40 -#.TRANS: put the URL to the guide here, e.g., https://github.com/sugarlabs/turtleblocksjs/tree/master/guide/README.md -msgid "guide url" +#: js/activity.js:1413 +msgid "Refresh your browser to change to advanced mode." msgstr "" -#: js/turtledefs.js:85 -#: js/turtledefs.js:437 -msgid "Turtle Blocks is a Logo-inspired turtle that draws colorful pictures with snap-together visual-programming blocks." +#: js/activity.js:1418 +msgid "Refresh your browser to change to beginner mode." msgstr "" -#: js/turtledefs.js:118 -#: js/turtledefs.js:220 -msgid "search" +#: js/activity.js:1477 +msgid "Catching mice" msgstr "" -#: js/turtledefs.js:120 -#: js/turtledefs.js:222 -#: js/WidgetBlocks.js:437 -#: js/MeterBlocks.js:1343 -#.TRANS: musical meter (time signature), e.g., 4:4 -msgid "meter" +#: js/activity.js:1478 +msgid "Cleaning the instruments" msgstr "" -#: js/turtledefs.js:122 -#: js/turtledefs.js:224 -msgid "intervals" +#: js/activity.js:1479 +msgid "Testing key pieces" +msgstr "" + +#: js/activity.js:1480 +msgid "Sight-reading" +msgstr "" + +#: js/activity.js:1481 +msgid "Combining math and music" +msgstr "" + +#: js/activity.js:1482 +msgid "Generating more blocks" +msgstr "" + +#: js/activity.js:1483 +msgid "Do Re Mi Fa Sol La Ti Do" +msgstr "" + +#: js/activity.js:1484 +msgid "Tuning string instruments" +msgstr "" + +#: js/activity.js:1485 +msgid "Pressing random keys" +msgstr "" + +#: js/activity.js:1663 +msgid "plugins will be removed upon restart." +msgstr "" + +#: js/activity.js:1672 +msgid "show Cartesian" +msgstr "" + +#: js/activity.js:2211 +#: js/palette.js:589 +#: js/blocks/RhythmBlocks.js:923 +#: js/blocks/PitchBlocks.js:442 +#: js/blocks/PitchBlocks.js:1786 +#.TRANS: a numeric mapping of the notes in an octave based on the musical mode +msgid "scale degree" +msgstr "" + +#: js/activity.js:2214 +#: js/palette.js:598 +msgid "voice name" +msgstr "" + +#: js/activity.js:2217 +#: js/palette.js:595 +msgid "invert mode" +msgstr "" + +#: js/activity.js:2220 +msgid "output tools" +msgstr "" + +#: js/activity.js:2223 +msgid "custom note" +msgstr "" + +#: js/activity.js:2226 +msgid "accidental name" +msgstr "" + +#: js/activity.js:2229 +#: js/blocks/PitchBlocks.js:855 +msgid "east indian solfege" +msgstr "" + +#: js/activity.js:2232 +#: js/blocks/PitchBlocks.js:869 +msgid "note name" +msgstr "" + +#: js/activity.js:2235 +#: js/blocks/IntervalsBlocks.js:94 +msgid "temperament name" +msgstr "" + +#: js/activity.js:2238 +#: js/palette.js:592 +msgid "mode name" +msgstr "" + +#: js/activity.js:2241 +msgid "chord name" +msgstr "" + +#: js/activity.js:2244 +#: js/palette.js:615 +msgid "interval name" +msgstr "" + +#: js/activity.js:2247 +msgid "filter type" +msgstr "" + +#: js/activity.js:2250 +msgid "oscillator type" +msgstr "" + +#: js/activity.js:2253 +#: js/blocks.js:2479 +#: js/blocks.js:2487 +msgid "audio file" +msgstr "" + +#: js/activity.js:2256 +#: js/blocks/DrumBlocks.js:32 +msgid "noise name" +msgstr "" + +#: js/activity.js:2259 +#: js/blocks/DrumBlocks.js:75 +msgid "drum name" +msgstr "" + +#: js/activity.js:2262 +#: js/blocks/DrumBlocks.js:119 +msgid "effects name" +msgstr "" + +#: js/activity.js:2265 +msgid "wrap mode" +msgstr "" + +#: js/activity.js:2268 +msgid "load file" +msgstr "" + +#: js/activity.js:2435 +#: js/activity.js:5851 +msgid "This block is deprecated." +msgstr "" + +#: js/activity.js:2437 +#: js/activity.js:5853 +msgid "Block cannot be found." +msgstr "" + +#: js/activity.js:2645 +msgid "Saving block artwork" +msgstr "" + +#: js/activity.js:2656 +msgid "Erase" +msgstr "" + +#: js/activity.js:2683 +#: js/activity.js:2705 +msgid "Paste" +msgstr "Plak" + +#: js/activity.js:2687 +msgid "Save block help" +msgstr "" + +#: js/activity.js:2772 +msgid "Jumping to the bottom of the page." +msgstr "" + +#: js/activity.js:2778 +msgid "Scrolling up." +msgstr "" + +#: js/activity.js:2783 +msgid "Scrolling down." +msgstr "" + +#: js/activity.js:2788 +msgid "Extracting block" +msgstr "" + +#: js/activity.js:2796 +msgid "Moving block up." +msgstr "" + +#: js/activity.js:2817 +msgid "Moving block down." +msgstr "" + +#: js/activity.js:2838 +msgid "Moving block left." +msgstr "" + +#: js/activity.js:2855 +msgid "Moving block right." +msgstr "" + +#: js/activity.js:2870 +msgid "Jump to home position." +msgstr "" + +#: js/activity.js:2897 +msgid "Hide blocks" +msgstr "" + +#: js/activity.js:4500 +msgid "Click the run button to run the project." +msgstr "" + +#: js/activity.js:5692 +msgid "Show/hide block" msgstr "" -#: js/turtledefs.js:124 -#: js/turtledefs.js:226 -msgid "ornament" +#: js/activity.js:5698 +msgid "Expand/collapse blocks" msgstr "" -#: js/turtledefs.js:125 -#: js/turtledefs.js:227 -#: js/VolumeBlocks.js:362 -#: js/VolumeBlocks.js:502 -#: js/VolumeBlocks.js:545 -msgid "volume" +#: js/activity.js:5976 +msgid "Could not parse JSON input." msgstr "" -#: js/turtledefs.js:129 -#: js/turtledefs.js:231 -msgid "boxes" +#: js/activity.js:6475 +#: js/activity.js:6580 +#: js/activity.js:6631 +msgid "Cannot load project from the file. Please check the file type." msgstr "" -#: js/turtledefs.js:130 -#: js/turtledefs.js:232 -msgid "widgets" +#: js/activity.js:6917 +msgid "Invalid parameters" msgstr "" -#: js/turtledefs.js:131 -#: js/turtledefs.js:233 -#: js/phrasemaker.js:824 -msgid "graphics" +#: js/blocks.js:1212 +#: js/blocks.js:3444 +#: js/blocks.js:3834 +#: js/blocks.js:3865 +#: js/blocks.js:3914 +#: js/blocks.js:3949 +#: js/blocks.js:6586 +#: js/palette.js:509 +#: js/palette.js:638 +#: js/palette.js:1105 +#: js/blocks/BoxesBlocks.js:282 +#: js/blocks/BoxesBlocks.js:285 +#: js/blocks/BoxesBlocks.js:405 +#: js/blocks/BoxesBlocks.js:594 +msgid "box" +msgstr "hokkie" + +#: js/blocks.js:1713 +msgid "Consider breaking this stack into parts." msgstr "" -#: js/turtledefs.js:134 -#: js/turtledefs.js:236 -msgid "boolean" +#: js/blocks.js:2472 +#: js/palette.js:653 +#: js/blocks/MediaBlocks.js:602 +msgid "open file" msgstr "" -#: js/turtledefs.js:137 -#: js/turtledefs.js:239 -#: js/HeapBlocks.js:59 -#: js/status.js:147 -msgid "heap" +#: js/blocks.js:3247 +#: js/palette.js:574 +#: js/blocks/MediaBlocks.js:892 +#: js/blocks/MediaBlocks.js:963 +msgid "text" +msgstr "teks" + +#: js/blocks.js:3443 +#: js/palette.js:641 +#: js/palette.js:642 +#: js/blocks/BoxesBlocks.js:514 +msgid "store in box" msgstr "" -#: js/turtledefs.js:138 -#: js/turtledefs.js:240 -#: js/ProgramBlocks.js:495 -#: js/DictBlocks.js:142 -msgid "dictionary" +#: js/blocks.js:3448 +#: js/blocks.js:3888 +#: js/blocks.js:3923 +#: js/blocks.js:3958 +#: js/blocks.js:5862 +#: js/blocks.js:5883 +#: js/blocks/BoxesBlocks.js:772 +msgid "box1" msgstr "" -#: js/turtledefs.js:139 -#: js/turtledefs.js:241 -msgid "ensemble" +#: js/blocks.js:3450 +#: js/blocks.js:3890 +#: js/blocks.js:3925 +#: js/blocks.js:3960 +#: js/blocks.js:5864 +#: js/blocks.js:5885 +#: js/blocks/BoxesBlocks.js:663 +msgid "box2" msgstr "" -#: js/turtledefs.js:140 -#: js/turtledefs.js:242 -msgid "extras" -msgstr "Ekstras" +#: js/blocks.js:4122 +#: js/palette.js:639 +#: js/palette.js:644 +#: js/palette.js:1041 +#: js/blocks/BoxesBlocks.js:591 +msgid "store in" +msgstr "stoor in" -#: js/turtledefs.js:142 -#: js/turtledefs.js:244 -#.TRANS: program as in computer program -#.TRANS: program as in computer program -msgid "program" +#: js/blocks.js:4122 +#: js/blocks/BoxesBlocks.js:595 +#: js/blocks/DictBlocks.js:215 +#: js/blocks/DictBlocks.js:289 +#: js/blocks/EnsembleBlocks.js:391 +#: js/blocks/EnsembleBlocks.js:402 +#: js/blocks/MediaBlocks.js:746 +#: js/blocks/PitchBlocks.js:656 +#: js/blocks/PitchBlocks.js:934 +#: js/blocks/PitchBlocks.js:1866 +#: js/blocks/ProgramBlocks.js:390 +#: js/blocks/ProgramBlocks.js:495 +#: js/blocks/ProgramBlocks.js:658 +#: js/blocks/ToneBlocks.js:1025 +msgid "name" msgstr "" -#: js/turtledefs.js:143 -#: js/turtledefs.js:245 -msgid "my blocks" +#: js/blocks.js:4122 +#: js/blocks/BoxesBlocks.js:75 +#: js/blocks/BoxesBlocks.js:595 +#: js/blocks/DictBlocks.js:289 +#: js/blocks/DictBlocks.js:430 +#: js/blocks/HeapBlocks.js:544 +#: js/blocks/RhythmBlocks.js:1130 +msgid "value" msgstr "" -#: js/turtledefs.js:185 -#: js/turtledefs.js:281 -msgid "artwork" +#: js/blocks.js:4465 +msgid "Forever loop detected inside a note value block. Unexpected things may happen." msgstr "" -#: js/turtledefs.js:185 -#: js/turtledefs.js:281 -msgid "logic" +#: js/blocks.js:4988 +msgid "There is no block selected." msgstr "" -#: js/turtledefs.js:185 -#: js/turtledefs.js:281 -msgid "music" -msgstr "" +#: js/blocks.js:5091 +#: js/blocks/MediaBlocks.js:888 +msgid "show" +msgstr "wys" -#: js/turtledefs.js:187 -#: js/turtledefs.js:463 -msgid "Music Blocks is a collection of tools for exploring fundamental musical concepts in a fun way." +#: js/blocks.js:5094 +#: js/blocks/MediaBlocks.js:803 +#.TRANS: Avatar is the image used to determine the appearance of the mouse. +msgid "avatar" msgstr "" -#: js/turtledefs.js:436 -msgid "Welcome to Turtle Blocks" +#: js/blocks.js:5097 +#: js/blocks/ToneBlocks.js:1010 +#: js/widgets/sampler.js:975 +#.TRANS: The sound sample that the user uploads. +msgid "sample" msgstr "" -#: js/turtledefs.js:438 -#: js/turtledefs.js:465 -#: js/turtledefs.js:774 -#: js/turtledefs.js:805 -msgid "The current version is" +#: js/lilypond.js:606 +msgid "brown rat" msgstr "" -#: js/turtledefs.js:446 -#: js/turtledefs.js:483 -msgid "Click the run button to run the project in fast mode." +#: js/lilypond.js:607 +msgid "mole" msgstr "" -#: js/turtledefs.js:452 -msgid "Stop the turtle." +#: js/lilypond.js:608 +msgid "chipmunk" msgstr "" -#: js/turtledefs.js:454 -#: js/turtledefs.js:491 -msgid "You can also type Alt-S to stop." +#: js/lilypond.js:609 +msgid "red squirrel" msgstr "" -#: js/turtledefs.js:462 -#: js/help.js:333 -msgid "Welcome to Music Blocks" +#: js/lilypond.js:610 +msgid "guinea pig" msgstr "" -#: js/turtledefs.js:472 -#: js/help.js:334 -msgid "Meet Mr. Mouse!" +#: js/lilypond.js:611 +msgid "capybara" msgstr "" -#: js/turtledefs.js:473 -msgid "Mr Mouse is our Music Blocks conductor." +#: js/lilypond.js:612 +msgid "coypu" msgstr "" -#: js/turtledefs.js:475 -msgid "Mr Mouse encourages you to explore Music Blocks." +#: js/lilypond.js:613 +msgid "black rat" msgstr "" -#: js/turtledefs.js:477 -msgid "Let us start our tour!" +#: js/lilypond.js:614 +msgid "grey squirrel" msgstr "" -#: js/turtledefs.js:489 -msgid "Stop the music (and the mice)." +#: js/lilypond.js:615 +msgid "flying squirrel" msgstr "" -#: js/turtledefs.js:499 -msgid "Record your project as video." +#: js/lilypond.js:616 +msgid "bat" msgstr "" -#: js/turtledefs.js:505 -msgid "Toggle Fullscreen mode." +#: js/lilypond.js:749 +#: js/lilypond.js:913 +#: js/lilypond.js:951 +#: js/blocks/ActionBlocks.js:1256 +#: js/blocks/ExtrasBlocks.js:556 +msgid "start drum" msgstr "" -#: js/turtledefs.js:511 -msgid "Initialize a new project." +#: js/logo.js:61 +msgid "Not a valid pitch name" msgstr "" -#: js/turtledefs.js:517 -msgid "You can also load projects from the file system." +#: js/logo.js:507 +#: js/blocks/ProgramBlocks.js:258 +#: js/blocks/ProgramBlocks.js:427 +msgid "You must select a file." msgstr "" -#: js/turtledefs.js:522 -#: js/StringHelper.js:46 -msgid "Delete" +#: js/logo.js:1696 +msgid "Playback is ready." msgstr "" -#: js/turtledefs.js:523 -msgid "To delete a block, just right-click on it, then you will be able to see the delete option" +#: js/macros.js:711 +#: js/utils/musicutils.js:1162 +#: js/utils/synthutils.js:202 +#.TRANS: animal sound effect +msgid "duck" msgstr "" -#: js/turtledefs.js:528 -#: js/activity.js:2270 -#: js/LocalCard.js:31 -msgid "Copy" -msgstr "Kopieer" +#: js/notation.js:353 +msgid "Lilypond cannot process pickup of " +msgstr "" -#: js/turtledefs.js:529 -msgid "To copy a block, just right-click on it, then you will be able to see the copy option" +#: js/palette.js:571 +msgid "grid" msgstr "" -#: js/turtledefs.js:535 -msgid "To extract a block, just right-click on it, then you will be able to see the extract option" +#: js/palette.js:580 +msgid "effect" msgstr "" -#: js/turtledefs.js:542 -#: js/turtledefs.js:552 -#: js/turtledefs.js:573 -msgid "Save your project to a file." +#: js/palette.js:586 +msgid "sargam" msgstr "" -#: js/turtledefs.js:549 -#: js/turtledefs.js:570 -msgid "save" +#: js/palette.js:601 +#: js/blocks/PitchBlocks.js:1209 +msgid "custom pitch" msgstr "" -#: js/turtledefs.js:556 -#: js/turtledefs.js:577 -msgid "Save graphics from your project to as SVG." +#: js/palette.js:609 +msgid "accidental" msgstr "" -#: js/turtledefs.js:560 -#: js/turtledefs.js:581 -msgid "Save graphics from your project as PNG." +#: js/palette.js:633 +#: js/blocks/PitchBlocks.js:405 +msgid "pitch converter" msgstr "" -#: js/turtledefs.js:564 -#: js/turtledefs.js:597 -msgid "Save block artwork as an SVG file." +#: js/piemenus.js:200 +#: js/utils/musicutils.js:1187 +#: js/utils/musicutils.js:1207 +#: js/widgets/musickeyboard.js:2341 +#: js/widgets/phrasemaker.js:1908 +#: js/widgets/sampler.js:810 +#.TRANS: double sharp is a music term related to pitch +msgid "double sharp" msgstr "" -#: js/turtledefs.js:585 -msgid "Save audio from your project as WAV." +#: js/piemenus.js:201 +#: js/utils/musicutils.js:1185 +#: js/utils/musicutils.js:1208 +#: js/blocks/PitchBlocks.js:1539 +#: js/turtleactions/PitchActions.js:323 +#: js/widgets/musickeyboard.js:2342 +#: js/widgets/phrasemaker.js:1909 +#: js/widgets/sampler.js:811 +#.TRANS: sharp is a music term related to pitch +#.TRANS: sharp is a half-step up in pitch +msgid "sharp" msgstr "" -#: js/turtledefs.js:589 -msgid "Save your project to as an ABC file." +#: js/piemenus.js:202 +#: js/utils/musicutils.js:1183 +#: js/utils/musicutils.js:1209 +#: js/widgets/musickeyboard.js:2343 +#: js/widgets/phrasemaker.js:1910 +#: js/widgets/sampler.js:812 +#.TRANS: natural is a music term related to pitch +msgid "natural" msgstr "" -#: js/turtledefs.js:593 -msgid "Save your project to as a Lilypond file." +#: js/piemenus.js:203 +#: js/utils/musicutils.js:1181 +#: js/utils/musicutils.js:1210 +#: js/blocks/PitchBlocks.js:1498 +#: js/turtleactions/PitchActions.js:326 +#: js/widgets/musickeyboard.js:2344 +#: js/widgets/phrasemaker.js:1911 +#: js/widgets/sampler.js:813 +#.TRANS: flat is a music term related to pitch +#.TRANS: flat is a half-step down in pitch +msgid "flat" msgstr "" -#: js/turtledefs.js:604 -msgid "Load samples from server" +#: js/piemenus.js:204 +#: js/utils/musicutils.js:1179 +#: js/utils/musicutils.js:1211 +#: js/widgets/musickeyboard.js:2345 +#: js/widgets/phrasemaker.js:1912 +#: js/widgets/sampler.js:814 +#.TRANS: double flat is a music term related to pitch +msgid "double flat" msgstr "" -#: js/turtledefs.js:605 -msgid "This button opens a viewer for loading example projects." +#: js/piemenus.js:2864 +#: js/utils/musicutils.js:1006 +#: js/blocks/PitchBlocks.js:1385 +#.TRANS: unison is a music term related to intervals +#.TRANS: unison means the note is the same as the current note +msgid "unison" msgstr "" -#: js/turtledefs.js:611 -msgid "Palette buttons" +#: js/piemenus.js:3018 +#: js/piemenus.js:3091 +#: js/utils/musicutils.js:1014 +#: js/utils/musicutils.js:1189 +#: js/utils/musicutils.js:1326 +#.TRANS: major is a music term related to intervals and mode +msgid "major" msgstr "" -#: js/turtledefs.js:612 -msgid "This toolbar contains the palette buttons including Rhythm Pitch Tone Action and more." +#: js/piemenus.js:3018 +#: js/piemenus.js:3091 +#: js/utils/musicutils.js:1032 +#.TRANS: modal scale for music +msgid "ionian" msgstr "" -#: js/turtledefs.js:614 -msgid "Click to show the palettes of blocks and drag blocks from the palettes onto the canvas to use them." +#: js/piemenus.js:3020 +#: js/piemenus.js:3095 +#: js/utils/musicutils.js:1012 +#: js/utils/musicutils.js:1190 +#: js/utils/musicutils.js:1323 +#.TRANS: minor is a music term related to intervals and mode +msgid "minor" msgstr "" -#: js/turtledefs.js:620 -msgid "Cartesian/Polar" +#: js/piemenus.js:3020 +#: js/piemenus.js:3095 +#: js/utils/musicutils.js:1042 +#.TRANS: modal scale for music +msgid "aeolian" msgstr "" -#: js/turtledefs.js:621 -msgid "Show or hide a coordinate grid." +#: js/piemenus.js:3410 +msgid "Duplicate" msgstr "" -#: js/turtledefs.js:627 -msgid "Clear the screen and return the mice to their initial positions." +#: js/piemenus.js:3412 +msgid "Move to trash" msgstr "" -#: js/turtledefs.js:633 -msgid "Collapse the graphics window." +#: js/piemenus.js:3413 +#: js/widgets/timbre.js:968 +#: planet/js/StringHelper.js:69 +msgid "Close" msgstr "" -#: js/turtledefs.js:638 -#: js/activity.js:4256 -#: js/activity.js:4256 -msgid "Home" +#: js/piemenus.js:3419 +msgid "Save stack" msgstr "" -#: js/turtledefs.js:639 -msgid "Return all blocks to the center of the screen." +#: js/piemenus.js:3449 +msgid "In order to copy a sample, you must reload the widget, import the sample again, and export it." msgstr "" -#: js/turtledefs.js:644 -msgid "Show/hide blocks" +#: js/piemenus.js:3812 +msgid "You have chosen key " msgstr "" -#: js/turtledefs.js:645 -msgid "Hide or show the blocks and the palettes." +#: js/piemenus.js:3816 +msgid " for your pitch preview." msgstr "" -#: js/turtledefs.js:650 -msgid "Expand/collapse collapsable blocks" +#: js/turtle-singer.js:1363 +#.TRANS: partials are weighted components in a harmonic series +msgid "You must have at least one Partial block inside of a Weighted-partial block" msgstr "" -#: js/turtledefs.js:651 -msgid "Expand or collapse start and action stacks." +#: js/turtle-singer.js:2077 +msgid "synth cannot play chords." msgstr "" -#: js/turtledefs.js:658 -#: js/activity.js:4265 -msgid "Decrease block size" +#: js/utils/musicutils.js:505 +#: js/utils/musicutils.js:645 +#: js/widgets/pitchdrummatrix.js:228 +#: js/widgets/musickeyboard.js:2885 +msgid "rest" msgstr "" -#: js/turtledefs.js:659 -msgid "Decrease the size of the blocks." +#: js/utils/musicutils.js:689 +msgid "Perfect unison" msgstr "" -#: js/turtledefs.js:664 -#: js/activity.js:4267 -msgid "Increase block size" +#: js/utils/musicutils.js:689 +msgid "Diminished second" msgstr "" -#: js/turtledefs.js:665 -msgid "Increase the size of the blocks." +#: js/utils/musicutils.js:690 +msgid "Minor second" msgstr "" -#: js/turtledefs.js:670 -msgid "Expand/collapse option toolbar" +#: js/utils/musicutils.js:690 +msgid "Augmented unison" msgstr "" -#: js/turtledefs.js:671 -msgid "Click this button to expand or collapse the auxillary toolbar." +#: js/utils/musicutils.js:691 +msgid "Major second" msgstr "" -#: js/turtledefs.js:676 -msgid "Run slow" +#: js/utils/musicutils.js:691 +msgid "Diminished third" msgstr "" -#: js/turtledefs.js:677 -msgid "Click to run the project in slow mode." +#: js/utils/musicutils.js:692 +msgid "Minor third" msgstr "" -#: js/turtledefs.js:683 -msgid "Click to run the project step by step." +#: js/utils/musicutils.js:692 +msgid "Augmented second" msgstr "" -#: js/turtledefs.js:690 -msgid "Display statistics about your Music project." +#: js/utils/musicutils.js:693 +msgid "Major third" msgstr "" -#: js/turtledefs.js:697 -msgid "Delete a selected plugin." +#: js/utils/musicutils.js:693 +msgid "Diminished fourth" msgstr "" -#: js/turtledefs.js:704 -msgid "Enable scrolling" +#: js/utils/musicutils.js:694 +msgid "Perfect fourth" msgstr "" -#: js/turtledefs.js:705 -msgid "You can scroll the blocks on the canvas." +#: js/utils/musicutils.js:694 +msgid "Augmented third" msgstr "" -#: js/turtledefs.js:714 -msgid "Wrap Turtle" +#: js/utils/musicutils.js:695 +msgid "Diminished fifth" msgstr "" -#: js/turtledefs.js:715 -msgid "Turn Turtle wrapping On or Off." +#: js/utils/musicutils.js:695 +msgid "Augmented fourth" msgstr "" -#: js/turtledefs.js:725 -msgid "Restore blocks from the trash." +#: js/utils/musicutils.js:696 +msgid "Perfect fifth" msgstr "" -#: js/turtledefs.js:732 -msgid "Switch mode" +#: js/utils/musicutils.js:696 +msgid "Diminished sixth" msgstr "" -#: js/turtledefs.js:733 -msgid "Switch between beginner and advance modes." +#: js/utils/musicutils.js:697 +msgid "Minor sixth" msgstr "" -#: js/turtledefs.js:739 -msgid "Select your language preference." +#: js/utils/musicutils.js:697 +msgid "Augmented fifth" msgstr "" -#: js/turtledefs.js:745 -msgid "Keyboard shortcuts" +#: js/utils/musicutils.js:698 +msgid "Major sixth" msgstr "" -#: js/turtledefs.js:746 -msgid "You can type d to create a do block and r to create a re block etc." +#: js/utils/musicutils.js:698 +msgid "Diminished seventh" msgstr "" -#: js/turtledefs.js:753 -msgid "Show these messages." +#: js/utils/musicutils.js:699 +msgid "Minor seventh" msgstr "" -#: js/turtledefs.js:759 -#: js/turtledefs.js:790 -#: js/help.js:335 -msgid "Guide" +#: js/utils/musicutils.js:699 +msgid "Augmented sixth" msgstr "" -#: js/turtledefs.js:760 -msgid "A detailed guide to Turtle Blocks is available." +#: js/utils/musicutils.js:700 +msgid "Major seventh" msgstr "" -#: js/turtledefs.js:764 -msgid "Turtle Blocks Guide" +#: js/utils/musicutils.js:700 +msgid "Diminished octave" msgstr "" -#: js/turtledefs.js:767 -#: js/turtledefs.js:798 -#: js/help.js:336 -msgid "About" +#: js/utils/musicutils.js:701 +msgid "Perfect octave" msgstr "" -#: js/turtledefs.js:768 -msgid "Turtle Blocks is an open source collection of tools for exploring musical concepts." +#: js/utils/musicutils.js:701 +msgid "Augmented seventh" msgstr "" -#: js/turtledefs.js:770 -msgid "A full list of contributors can be found in the Turtle Blocks GitHub repository." +#: js/utils/musicutils.js:702 +msgid "Minor ninth" msgstr "" -#: js/turtledefs.js:772 -msgid "Turtle Blocks is licensed under the AGPL." +#: js/utils/musicutils.js:702 +msgid "Augmented octave" msgstr "" -#: js/turtledefs.js:780 -msgid "Turtle Blocks GitHub repository" +#: js/utils/musicutils.js:703 +msgid "Major ninth" msgstr "" -#: js/turtledefs.js:783 -#: js/turtledefs.js:814 -#: js/help.js:337 -#: js/help.js:359 -msgid "Congratulations." +#: js/utils/musicutils.js:703 +msgid "Diminished tenth" msgstr "" -#: js/turtledefs.js:784 -msgid "You have finished the tour. Please enjoy Turtle Blocks!" +#: js/utils/musicutils.js:704 +msgid "Minor tenth" msgstr "" -#: js/turtledefs.js:791 -msgid "A detailed guide to Music Blocks is available." +#: js/utils/musicutils.js:704 +msgid "Augmented ninth" msgstr "" -#: js/turtledefs.js:795 -#: js/SaveInterface.js:76 -msgid "Music Blocks Guide" +#: js/utils/musicutils.js:705 +msgid "Major tenth" msgstr "" -#: js/turtledefs.js:799 -msgid "Music Blocks is an open source collection of tools for exploring musical concepts." +#: js/utils/musicutils.js:705 +msgid "Diminished eleventh" msgstr "" -#: js/turtledefs.js:801 -msgid "A full list of contributors can be found in the Music Blocks GitHub repository." +#: js/utils/musicutils.js:706 +msgid "Perfect eleventh" msgstr "" -#: js/turtledefs.js:803 -msgid "Music Blocks is licensed under the AGPL." +#: js/utils/musicutils.js:706 +msgid "Augmented tenth" msgstr "" -#: js/turtledefs.js:811 -msgid "Music Blocks GitHub repository" +#: js/utils/musicutils.js:707 +msgid "Diminished twelfth" msgstr "" -#: js/turtledefs.js:815 -msgid "You have finished the tour. Please enjoy Music Blocks!" +#: js/utils/musicutils.js:707 +msgid "Augmented eleventh" msgstr "" -#: js/activity.js:369 -msgid "Search for blocks" +#: js/utils/musicutils.js:708 +msgid "Perfect twelfth" msgstr "" -#: js/activity.js:1145 -msgid "Refresh your browser to change to advanced mode." +#: js/utils/musicutils.js:708 +msgid "Diminished thirteenth" msgstr "" -#: js/activity.js:1150 -msgid "Refresh your browser to change to beginner mode." +#: js/utils/musicutils.js:709 +msgid "Minor thirteenth" msgstr "" -#: js/activity.js:1184 -msgid "Catching mice" +#: js/utils/musicutils.js:709 +msgid "Augmented fifth, plus an octave" msgstr "" -#: js/activity.js:1185 -msgid "Cleaning the instruments" +#: js/utils/musicutils.js:710 +msgid "Major thirteenth" msgstr "" -#: js/activity.js:1186 -msgid "Testing key pieces" +#: js/utils/musicutils.js:710 +msgid "Diminished seventh, plus an octave" msgstr "" -#: js/activity.js:1187 -msgid "Sight-reading" +#: js/utils/musicutils.js:838 +#.TRANS: ordinal number. Please keep exactly one space between each number. +msgid "1st 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th" msgstr "" -#: js/activity.js:1188 -msgid "Combining math and music" +#: js/utils/musicutils.js:1008 +#: js/utils/musicutils.js:1191 +#: js/utils/musicutils.js:1325 +#.TRANS: augmented is a music term related to intervals +msgid "augmented" msgstr "" -#: js/activity.js:1189 -msgid "Generating more blocks" +#: js/utils/musicutils.js:1010 +#: js/utils/musicutils.js:1192 +#: js/utils/musicutils.js:1324 +#.TRANS: diminished is a music term related to intervals and mode +msgid "diminished" msgstr "" -#: js/activity.js:1190 -msgid "Do Re Mi Fa Sol La Ti Do" +#: js/utils/musicutils.js:1016 +#: js/utils/musicutils.js:1322 +#: js/blocks/IntervalsBlocks.js:649 +#: js/turtleactions/IntervalsActions.js:120 +#: js/turtleactions/IntervalsActions.js:124 +#.TRANS: perfect is a music term related to intervals +msgid "perfect" msgstr "" -#: js/activity.js:1191 -msgid "Tuning string instruments" +#: js/utils/musicutils.js:1018 +#.TRANS: twelve semi-tone scale for music +msgid "chromatic" msgstr "" -#: js/activity.js:1192 -msgid "Pressing random keys" +#: js/utils/musicutils.js:1019 +msgid "algerian" msgstr "" -#: js/activity.js:1351 -msgid "plugins will be removed upon restart." +#: js/utils/musicutils.js:1020 +msgid "spanish" msgstr "" -#: js/activity.js:1360 -msgid "show Cartesian" +#: js/utils/musicutils.js:1022 +#.TRANS: modal scale in music +msgid "octatonic" msgstr "" -#: js/activity.js:1842 -msgid "output tools" +#: js/utils/musicutils.js:1024 +#.TRANS: harmonic major scale in music +msgid "harmonic major" msgstr "" -#: js/activity.js:1845 -msgid "custom note" +#: js/utils/musicutils.js:1026 +#.TRANS: natural minor scales in music +msgid "natural minor" msgstr "" -#: js/activity.js:1848 -msgid "accidental name" +#: js/utils/musicutils.js:1028 +#.TRANS: harmonic minor scale in music +msgid "harmonic minor" msgstr "" -#: js/activity.js:1851 -#: js/PitchBlocks.js:855 -msgid "east indian solfege" +#: js/utils/musicutils.js:1030 +#.TRANS: melodic minor scale in music +msgid "melodic minor" msgstr "" -#: js/activity.js:1854 -#: js/PitchBlocks.js:869 -msgid "note name" +#: js/utils/musicutils.js:1034 +#.TRANS: modal scale for music +msgid "dorian" msgstr "" -#: js/activity.js:1857 -#: js/IntervalsBlocks.js:94 -msgid "temperament name" +#: js/utils/musicutils.js:1036 +#.TRANS: modal scale for music +msgid "phrygian" msgstr "" -#: js/activity.js:1863 -msgid "chord name" +#: js/utils/musicutils.js:1038 +#.TRANS: modal scale for music +msgid "lydian" msgstr "" -#: js/activity.js:1869 -msgid "filter type" +#: js/utils/musicutils.js:1040 +#.TRANS: modal scale for music +msgid "mixolydian" msgstr "" -#: js/activity.js:1872 -msgid "oscillator type" +#: js/utils/musicutils.js:1044 +#.TRANS: modal scale for music +msgid "locrian" msgstr "" -#: js/activity.js:1878 -#: js/DrumBlocks.js:32 -msgid "noise name" +#: js/utils/musicutils.js:1046 +#.TRANS: minor jazz scale for music +msgid "jazz minor" msgstr "" -#: js/activity.js:1881 -#: js/DrumBlocks.js:75 -msgid "drum name" +#: js/utils/musicutils.js:1048 +#.TRANS: bebop scale for music +msgid "bebop" msgstr "" -#: js/activity.js:1884 -#: js/DrumBlocks.js:119 -msgid "effects name" +#: js/utils/musicutils.js:1049 +msgid "arabic" msgstr "" -#: js/activity.js:1887 -msgid "wrap mode" +#: js/utils/musicutils.js:1050 +msgid "byzantine" msgstr "" -#: js/activity.js:1890 -msgid "load file" +#: js/utils/musicutils.js:1052 +#.TRANS: musical scale for music by Verdi +msgid "enigmatic" msgstr "" -#: js/activity.js:2056 -msgid "This block is deprecated." +#: js/utils/musicutils.js:1053 +msgid "ethiopian" msgstr "" -#: js/activity.js:2058 -msgid "Block cannot be found." +#: js/utils/musicutils.js:1055 +#.TRANS: Ethiopic scale for music +msgid "geez" msgstr "" -#: js/activity.js:2266 -msgid "Saving block artwork" +#: js/utils/musicutils.js:1056 +msgid "hindu" msgstr "" -#: js/activity.js:2277 -msgid "Erase" +#: js/utils/musicutils.js:1057 +msgid "hungarian" msgstr "" -#: js/activity.js:2301 -#: js/activity.js:2323 -msgid "Paste" -msgstr "Plak" +#: js/utils/musicutils.js:1059 +#.TRANS: minor Romanian scale for music +msgid "romanian minor" +msgstr "" -#: js/activity.js:2305 -msgid "Save block help" +#: js/utils/musicutils.js:1060 +msgid "spanish gypsy" msgstr "" -#: js/activity.js:2390 -msgid "Jumping to the bottom of the page." +#: js/utils/musicutils.js:1062 +#.TRANS: musical scale for Mid-Eastern music +msgid "maqam" msgstr "" -#: js/activity.js:2396 -msgid "Scrolling up." +#: js/utils/musicutils.js:1064 +#.TRANS: minor blues scale for music +msgid "minor blues" msgstr "" -#: js/activity.js:2401 -msgid "Scrolling down." +#: js/utils/musicutils.js:1066 +#.TRANS: major blues scale for music +msgid "major blues" msgstr "" -#: js/activity.js:2406 -msgid "Extracting block" +#: js/utils/musicutils.js:1067 +msgid "whole tone" msgstr "" -#: js/activity.js:2414 -msgid "Moving block up." +#: js/utils/musicutils.js:1069 +#.TRANS: pentatonic is a general term that means "five note scale". This scale is typically known as "minor pentatonic" +msgid "minor pentatonic" msgstr "" -#: js/activity.js:2435 -msgid "Moving block down." +#: js/utils/musicutils.js:1071 +#.TRANS: pentatonic is a general term that means "five note scale". This scale is typically known as "major pentatonic" +msgid "major pentatonic" msgstr "" -#: js/activity.js:2456 -msgid "Moving block left." +#: js/utils/musicutils.js:1072 +msgid "chinese" msgstr "" -#: js/activity.js:2473 -msgid "Moving block right." +#: js/utils/musicutils.js:1073 +msgid "egyptian" msgstr "" -#: js/activity.js:2488 -msgid "Jump to home position." +#: js/utils/musicutils.js:1075 +#.TRANS: https://en.wikipedia.org/wiki/Hirajoshi_scale NOTE: There are three different versions of this scale +msgid "hirajoshi" msgstr "" -#: js/activity.js:2515 -msgid "Hide blocks" +#: js/utils/musicutils.js:1076 +msgid "Japan" msgstr "" -#: js/activity.js:3389 -msgid "Click the run button to run the project." +#: js/utils/musicutils.js:1078 +#.TRANS: https://en.wikipedia.org/wiki/In_scale and https://en.wikipedia.org/wiki/Sakura_Sakura +msgid "in" msgstr "" -#: js/activity.js:3456 -#: js/SaveInterface.js:131 -#: js/SaveInterface.js:204 -#: js/SaveInterface.js:262 -#: js/SaveInterface.js:389 -#: js/SaveInterface.js:417 -#: js/ProjectStorage.js:27 -#: js/GlobalPlanet.js:467 -#: js/GlobalPlanet.js:469 -#: js/GlobalPlanet.js:495 -#.TRANS: default project title when saving as Lilypond -msgid "My Project" +#: js/utils/musicutils.js:1080 +#.TRANS: https://en.wikipedia.org/wiki/Miny%C5%8D_scale +msgid "minyo" msgstr "" -#: js/activity.js:4261 -msgid "Show/hide block" +#: js/utils/musicutils.js:1082 +#.TRANS: Italian mathematician +msgid "fibonacci" msgstr "" -#: js/activity.js:4263 -msgid "Expand/collapse blocks" +#: js/utils/musicutils.js:1083 +#: js/utils/musicutils.js:1134 +#: js/utils/musicutils.js:1177 +#: js/utils/musicutils.js:1199 +#: js/utils/synthutils.js:134 +#: js/blocks/IntervalsBlocks.js:1124 +#: js/blocks/ToneBlocks.js:946 +#: js/blocks/VolumeBlocks.js:411 +#: js/blocks/WidgetBlocks.js:399 +#: js/blocks/WidgetBlocks.js:404 +#: js/turtleactions/VolumeActions.js:218 +#: js/widgets/modewidget.js:919 +#.TRANS: customize voice +msgid "custom" msgstr "" -#: js/activity.js:4381 -msgid "Could not parse JSON input." +#: js/utils/musicutils.js:1085 +#: js/utils/musicutils.js:1531 +#: js/blocks/WidgetBlocks.js:176 +#.TRANS: highpass filter +msgid "highpass" msgstr "" -#: js/activity.js:4684 -#: js/activity.js:4771 -#: js/activity.js:4821 -msgid "Cannot load project from the file. Please check the file type." +#: js/utils/musicutils.js:1087 +#: js/utils/musicutils.js:1532 +#.TRANS: lowpass filter +msgid "lowpass" msgstr "" -#: js/activity.js:5051 -msgid "Invalid parameters" +#: js/utils/musicutils.js:1089 +#: js/utils/musicutils.js:1533 +#.TRANS: bandpass filter +msgid "bandpass" msgstr "" -#: js/turtle-singer.js:1334 -#.TRANS: partials are weighted components in a harmonic series -msgid "You must have at least one Partial block inside of a Weighted-partial block" +#: js/utils/musicutils.js:1091 +#: js/utils/musicutils.js:1534 +#.TRANS: high-shelf filter +msgid "highshelf" msgstr "" -#: js/turtle-singer.js:2048 -msgid "synth cannot play chords." +#: js/utils/musicutils.js:1093 +#: js/utils/musicutils.js:1535 +#.TRANS: low-shelf filter +msgid "lowshelf" msgstr "" -#: js/lilypond.js:614 -msgid "brown rat" +#: js/utils/musicutils.js:1095 +#: js/utils/musicutils.js:1536 +#.TRANS: notch-shelf filter +msgid "notch" msgstr "" -#: js/lilypond.js:615 -msgid "mole" +#: js/utils/musicutils.js:1097 +#: js/utils/musicutils.js:1537 +#.TRANS: all-pass filter +msgid "allpass" msgstr "" -#: js/lilypond.js:616 -msgid "chipmunk" +#: js/utils/musicutils.js:1099 +#: js/utils/musicutils.js:1538 +#.TRANS: peaking filter +msgid "peaking" msgstr "" -#: js/lilypond.js:617 -msgid "red squirrel" +#: js/utils/musicutils.js:1100 +#: js/utils/musicutils.js:1546 +#: js/utils/synthutils.js:126 +#: js/blocks/PitchBlocks.js:85 +#.TRANS: sine wave +msgid "sine" msgstr "" -#: js/lilypond.js:618 -msgid "guinea pig" +#: js/utils/musicutils.js:1101 +#: js/utils/musicutils.js:1547 +#: js/utils/synthutils.js:128 +#: js/blocks/PitchBlocks.js:39 +#.TRANS: square wave +msgid "square" msgstr "" -#: js/lilypond.js:619 -msgid "capybara" +#: js/utils/musicutils.js:1102 +#: js/utils/musicutils.js:1548 +#: js/utils/synthutils.js:132 +#: js/blocks/PitchBlocks.js:62 +#: js/blocks/ToneBlocks.js:39 +#.TRANS: triangle wave +msgid "triangle" msgstr "" -#: js/lilypond.js:620 -msgid "coypu" +#: js/utils/musicutils.js:1103 +#: js/utils/musicutils.js:1549 +#: js/utils/synthutils.js:130 +#: js/blocks/PitchBlocks.js:108 +#.TRANS: sawtooth wave +msgid "sawtooth" msgstr "" -#: js/lilypond.js:621 -msgid "black rat" +#: js/utils/musicutils.js:1105 +#: js/utils/musicutils.js:1312 +#: js/blocks/PitchBlocks.js:931 +#: js/blocks/PitchBlocks.js:937 +#: js/turtleactions/PitchActions.js:469 +#.TRANS: even numbers +#.TRANS: invert based on even or odd number or musical scale +msgid "even" msgstr "" -#: js/lilypond.js:622 -msgid "grey squirrel" +#: js/utils/musicutils.js:1107 +#: js/utils/musicutils.js:1313 +#: js/blocks/PitchBlocks.js:937 +#: js/turtleactions/PitchActions.js:471 +#.TRANS: odd numbers +msgid "odd" msgstr "" -#: js/lilypond.js:623 -msgid "flying squirrel" +#: js/utils/musicutils.js:1108 +#: js/utils/musicutils.js:1314 +#: js/blocks/PitchBlocks.js:937 +#: js/turtleactions/PitchActions.js:473 +msgid "scalar" msgstr "" -#: js/lilypond.js:624 -msgid "bat" +#: js/utils/musicutils.js:1109 +#: js/utils/synthutils.js:72 +#: js/blocks/VolumeBlocks.js:47 +#.TRANS: musical instrument +msgid "piano" msgstr "" -#: js/lilypond.js:757 -#: js/lilypond.js:921 -#: js/lilypond.js:959 -#: js/ActionBlocks.js:1256 -#: js/ExtrasBlocks.js:553 -msgid "start drum" +#: js/utils/musicutils.js:1110 +#: js/utils/synthutils.js:74 +#.TRANS: musical instrument +msgid "violin" msgstr "" -#: js/SaveInterface.js:59 -#: js/SaveInterface.js:61 -#: js/SaveInterface.js:93 -msgid "Music Blocks Project" +#: js/utils/musicutils.js:1111 +#: js/utils/synthutils.js:76 +#.TRANS: viola musical instrument +msgid "viola" msgstr "" -#: js/SaveInterface.js:63 -msgid "This project was created in Music Blocks" +#: js/utils/musicutils.js:1112 +#: js/utils/synthutils.js:114 +#.TRANS: xylophone musical instrument +msgid "xylophone" msgstr "" -#: js/SaveInterface.js:67 -msgid "Music Blocks is a Free/Libre Software application." +#: js/utils/musicutils.js:1113 +#: js/utils/synthutils.js:136 +#.TRANS: vibraphone musical instrument +msgid "vibraphone" msgstr "" -#: js/SaveInterface.js:69 -msgid "The source code can be accessed at" +#: js/utils/musicutils.js:1114 +#: js/utils/synthutils.js:78 +#.TRANS: musical instrument +msgid "cello" msgstr "" -#: js/SaveInterface.js:72 -msgid "For more information, please consult the" +#: js/utils/musicutils.js:1116 +#: js/utils/synthutils.js:82 +#.TRANS: viola musical instrument +msgid "double bass" msgstr "" -#: js/SaveInterface.js:83 -msgid "Alternatively, open the file in Music Blocks using the Load project button." +#: js/utils/musicutils.js:1117 +#: js/utils/synthutils.js:84 +#: js/widgets/rhythmruler.js:2511 +#.TRANS: musical instrument +msgid "guitar" msgstr "" -#: js/SaveInterface.js:85 -msgid "Project Code" +#: js/utils/musicutils.js:1118 +#: js/utils/synthutils.js:86 +#.TRANS: musical instrument +msgid "acoustic guitar" msgstr "" -#: js/SaveInterface.js:87 -msgid "This code stores data about the blocks in a project." +#: js/utils/musicutils.js:1119 +#: js/utils/synthutils.js:88 +#.TRANS: musical instrument +msgid "flute" msgstr "" -#: js/SaveInterface.js:89 -msgid "Show" +#: js/utils/musicutils.js:1120 +#: js/utils/synthutils.js:90 +#.TRANS: musical instrument +msgid "clarinet" msgstr "" -#: js/SaveInterface.js:91 -msgid "Hide" +#: js/utils/musicutils.js:1121 +#: js/utils/synthutils.js:92 +#.TRANS: musical instrument +msgid "saxophone" msgstr "" -#: js/SaveInterface.js:197 -#: js/SaveInterface.js:58 -msgid "No description provided" +#: js/utils/musicutils.js:1122 +#: js/utils/synthutils.js:94 +#.TRANS: musical instrument +msgid "tuba" msgstr "" -#: js/SaveInterface.js:332 -msgid "Your recording is in progress." +#: js/utils/musicutils.js:1123 +#: js/utils/synthutils.js:96 +#.TRANS: musical instrument +msgid "trumpet" msgstr "" -#: js/SaveInterface.js:401 -#.TRANS: File name prompt for save as Lilypond -msgid "File name" +#: js/utils/musicutils.js:1124 +#: js/utils/synthutils.js:98 +#.TRANS: musical instrument +msgid "oboe" msgstr "" -#: js/SaveInterface.js:403 -#: js/StringHelper.js:39 -#.TRANS: Project title prompt for save as Lilypond -msgid "Project title" +#: js/utils/musicutils.js:1125 +#: js/utils/synthutils.js:100 +#.TRANS: musical instrument +msgid "trombone" msgstr "" -#: js/SaveInterface.js:405 -#.TRANS: Project title prompt for save as Lilypond -msgid "Project author" +#: js/utils/musicutils.js:1126 +#: js/utils/synthutils.js:116 +#.TRANS: polytone synthesizer +msgid "electronic synth" msgstr "" -#: js/SaveInterface.js:407 -#.TRANS: MIDI prompt for save as Lilypond -msgid "Include MIDI output?" +#: js/utils/musicutils.js:1127 +#: js/utils/synthutils.js:118 +#.TRANS: simple monotone synthesizer +msgid "simple 1" msgstr "" -#: js/SaveInterface.js:409 -#.TRANS: Guitar prompt for save as Lilypond -msgid "Include guitar tablature output?" +#: js/utils/musicutils.js:1128 +msgid "simple 2" msgstr "" -#: js/SaveInterface.js:411 -#.TRANS: Lilypond is a scripting language for generating sheet music -msgid "Save as Lilypond" +#: js/utils/musicutils.js:1129 +msgid "simple 3" msgstr "" -#: js/SaveInterface.js:426 -#: js/EnsembleBlocks.js:75 -#: js/EnsembleBlocks.js:154 -#: js/EnsembleBlocks.js:216 -#: js/EnsembleBlocks.js:302 -#: js/EnsembleBlocks.js:348 -#: js/EnsembleBlocks.js:389 -#: js/EnsembleBlocks.js:441 -#: js/EnsembleBlocks.js:490 -#: js/EnsembleBlocks.js:536 -#: js/EnsembleBlocks.js:583 -#: js/EnsembleBlocks.js:637 -#: js/EnsembleBlocks.js:753 -#: js/EnsembleBlocks.js:840 -#: js/EnsembleBlocks.js:899 -#: js/EnsembleBlocks.js:942 -#: js/EnsembleBlocks.js:1212 -#: js/EnsembleBlocks.js:1280 -#.TRANS: default project author when saving as Lilypond -msgid "Mr. Mouse" +#: js/utils/musicutils.js:1130 +msgid "simple 4" msgstr "" -#: js/SaveInterface.js:573 -msgid "The Lilypond code is copied to clipboard. You can paste it here: " +#: js/utils/musicutils.js:1131 +#: js/utils/synthutils.js:58 +#: js/blocks/DrumBlocks.js:191 +#.TRANS: white noise synthesizer +msgid "white noise" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:50 -#: js/RhythmBlockPaletteBlocks.js:232 -#.TRANS: rhythm block -#.TRANS: translate "rhythm1" as rhythm -msgid "rhythm1" +#: js/utils/musicutils.js:1132 +#: js/utils/synthutils.js:60 +#.TRANS: brown noise synthesizer +msgid "brown noise" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:70 -#: js/RhythmBlockPaletteBlocks.js:251 -#: js/RhythmBlockPaletteBlocks.js:484 -#: js/RhythmBlockPaletteBlocks.js:553 -#: js/RhythmBlockPaletteBlocks.js:874 -msgid "number of notes" +#: js/utils/musicutils.js:1133 +#: js/utils/synthutils.js:62 +#.TRANS: pink noise synthesizer +msgid "pink noise" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:126 -msgid "polyphonic rhythm" +#: js/utils/musicutils.js:1135 +#: js/utils/synthutils.js:148 +#: js/widgets/rhythmruler.js:2057 +#: js/widgets/rhythmruler.js:2319 +#.TRANS: musical instrument +msgid "snare drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:218 -msgid "The Rhythm block is used to generate rhythm patterns." +#: js/utils/musicutils.js:1136 +#: js/utils/synthutils.js:150 +#.TRANS: musical instrument +msgid "kick drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:279 -msgid "1/64 note" +#: js/utils/musicutils.js:1137 +#: js/utils/synthutils.js:152 +#.TRANS: musical instrument +msgid "tom tom" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:303 -msgid "1/32 note" +#: js/utils/musicutils.js:1138 +#: js/utils/synthutils.js:154 +#.TRANS: musical instrument +msgid "floor tom" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:331 -msgid "1/16 note" +#: js/utils/musicutils.js:1139 +#: js/utils/synthutils.js:156 +#.TRANS: musical instrument +msgid "bass drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:359 -msgid "eighth note" +#: js/utils/musicutils.js:1140 +#: js/utils/synthutils.js:158 +#.TRANS: a drum made from an inverted cup +msgid "cup drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:387 -msgid "quarter note" +#: js/utils/musicutils.js:1141 +#: js/utils/synthutils.js:160 +#.TRANS: musical instrument +msgid "darbuka drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:415 -msgid "half note" +#: js/utils/musicutils.js:1142 +#: js/utils/synthutils.js:164 +#.TRANS: musical instrument +msgid "hi hat" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:443 -msgid "whole note" +#: js/utils/musicutils.js:1143 +#: js/utils/synthutils.js:166 +#.TRANS: a small metal bell +msgid "ride bell" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:481 -#: js/RhythmBlockPaletteBlocks.js:550 -#: js/RhythmBlockPaletteBlocks.js:601 -#.TRANS: A tuplet is a note value divided into irregular time values. -msgid "tuplet" +#: js/utils/musicutils.js:1144 +#: js/utils/synthutils.js:168 +#.TRANS: musical instrument +msgid "cow bell" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:767 -msgid "septuplet" +#: js/utils/musicutils.js:1145 +msgid "japanese drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:795 -msgid "quintuplet" +#: js/utils/musicutils.js:1146 +#: js/utils/synthutils.js:174 +#.TRANS: musical instrument +msgid "japanese bell" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:823 -msgid "triplet" +#: js/utils/musicutils.js:1147 +#: js/utils/synthutils.js:170 +#.TRANS: musical instrument +msgid "triangle bell" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:850 -msgid "simple tuplet" +#: js/utils/musicutils.js:1148 +#: js/utils/synthutils.js:172 +#.TRANS: musical instrument +msgid "finger cymbals" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:860 -msgid "Tuplets are a collection of notes that get scaled to a specific duration." +#: js/utils/musicutils.js:1149 +#: js/utils/synthutils.js:176 +#.TRANS: a musically tuned set of bells +msgid "chime" msgstr "" -#: js/WidgetBlocks.js:71 -#.TRANS: sound envelope (ADSR) -msgid "envelope" +#: js/utils/musicutils.js:1150 +#: js/utils/synthutils.js:178 +#.TRANS: a musical instrument +msgid "gong" msgstr "" -#: js/WidgetBlocks.js:79 -#.TRANS: Attack time is the time taken for initial run-up of level from nil to peak, beginning when the key is first pressed. -msgid "attack" +#: js/utils/musicutils.js:1151 +#: js/utils/synthutils.js:180 +#.TRANS: sound effect +msgid "clang" msgstr "" -#: js/WidgetBlocks.js:81 -#.TRANS: Decay time is the time taken for the subsequent run down from the attack level to the designated sustain level. -msgid "decay" +#: js/utils/musicutils.js:1152 +#: js/utils/synthutils.js:182 +#.TRANS: sound effect +msgid "crash" msgstr "" -#: js/WidgetBlocks.js:83 -#.TRANS: Sustain level is the level during the main sequence of the sound's duration, until the key is released. -msgid "sustain" +#: js/utils/musicutils.js:1153 +#: js/utils/synthutils.js:184 +#.TRANS: sound effect +msgid "bottle" msgstr "" -#: js/WidgetBlocks.js:85 -#.TRANS: Release time is the time taken for the level to decay from the sustain level to zero after the key is released. -msgid "release" +#: js/utils/musicutils.js:1154 +#: js/utils/synthutils.js:186 +#.TRANS: sound effect +msgid "clap" msgstr "" -#: js/WidgetBlocks.js:96 -msgid "Attack value should be from 0 to 100." +#: js/utils/musicutils.js:1155 +#: js/utils/synthutils.js:188 +#.TRANS: sound effect +msgid "slap" msgstr "" -#: js/WidgetBlocks.js:99 -msgid "Decay value should be from 0 to 100." +#: js/utils/musicutils.js:1156 +#: js/utils/synthutils.js:190 +#.TRANS: sound effect +msgid "splash" msgstr "" -#: js/WidgetBlocks.js:102 -msgid "Sustain value should be from 0 to 100." +#: js/utils/musicutils.js:1157 +#: js/utils/synthutils.js:192 +#.TRANS: sound effect +msgid "bubbles" msgstr "" -#: js/WidgetBlocks.js:105 -msgid "Release value should be from 0-100." +#: js/utils/musicutils.js:1158 +#: js/utils/synthutils.js:194 +#.TRANS: sound effect +msgid "raindrop" msgstr "" -#: js/WidgetBlocks.js:121 -msgid "You are adding multiple envelope blocks." +#: js/utils/musicutils.js:1159 +#: js/utils/synthutils.js:196 +#.TRANS: animal sound effect +msgid "cat" msgstr "" -#: js/WidgetBlocks.js:144 -#.TRANS: a filter removes some unwanted components from a signal -msgid "filter" +#: js/utils/musicutils.js:1160 +#: js/utils/synthutils.js:198 +#.TRANS: animal sound effect +msgid "cricket" msgstr "" -#: js/WidgetBlocks.js:149 -#: js/musicutils.js:706 -#: js/musicutils.js:1105 -#.TRANS: highpass filter -msgid "highpass" +#: js/utils/musicutils.js:1161 +#: js/utils/synthutils.js:200 +#.TRANS: animal sound effect +msgid "dog" msgstr "" -#: js/WidgetBlocks.js:152 -#: js/ToneBlocks.js:42 -#: js/timbre.js:1558 -#: js/timbre.js:1808 -#.TRANS: type of filter, e.g., lowpass, highpass, etc. -#.TRANS: there are different types (sine, triangle, square...) of oscillators. -msgid "type" +#: js/utils/musicutils.js:1163 +#: js/utils/synthutils.js:102 +#.TRANS: musical instrument +msgid "banjo" msgstr "" -#: js/WidgetBlocks.js:154 -#: js/timbre.js:1818 -#.TRANS: rolloff is the steepness of a change in frequency. -msgid "rolloff" +#: js/utils/musicutils.js:1164 +#: js/utils/synthutils.js:104 +#.TRANS: musical instrument +msgid "koto" msgstr "" -#: js/WidgetBlocks.js:155 -#: js/MediaBlocks.js:692 -#: js/temperament.js:382 -#: js/temperament.js:417 -#: js/temperament.js:477 -#: js/temperament.js:485 -#: js/temperament.js:1348 -#: js/timbre.js:1842 -msgid "frequency" +#: js/utils/musicutils.js:1165 +#: js/utils/synthutils.js:106 +#.TRANS: musical instrument +msgid "dulcimer" msgstr "" -#: js/WidgetBlocks.js:179 -#.TRANS: rolloff is the steepness of a change in frequency. -msgid "Rolloff value should be either -12, -24, -48, or -96 decibels/octave." +#: js/utils/musicutils.js:1166 +#: js/utils/synthutils.js:108 +#.TRANS: musical instrument +msgid "electric guitar" msgstr "" -#: js/WidgetBlocks.js:211 -msgid "The Temperament tool is used to define custom tuning." +#: js/utils/musicutils.js:1167 +#: js/utils/synthutils.js:110 +#.TRANS: musical instrument +msgid "bassoon" msgstr "" -#: js/WidgetBlocks.js:277 -#: js/sampler.js:329 -msgid "Upload a sample and adjust its pitch center." +#: js/utils/musicutils.js:1168 +#: js/utils/synthutils.js:112 +#.TRANS: musical instrument +msgid "celeste" msgstr "" -#: js/WidgetBlocks.js:284 -#.TRANS: the speed at music is should be played. -msgid "sampler" +#: js/utils/musicutils.js:1170 +#: js/widgets/temperament.js:787 +#.TRANS: musical temperament +msgid "equal" msgstr "" -#: js/WidgetBlocks.js:329 -#: js/WidgetBlocks.js:334 -#: js/IntervalsBlocks.js:928 -#: js/VolumeBlocks.js:411 -#: js/ToneBlocks.js:946 -#: js/VolumeActions.js:218 -#: js/musicutils.js:704 -#: js/musicutils.js:755 -#: js/musicutils.js:798 -#: js/musicutils.js:820 -#: js/musicutils.js:1136 -#: js/synthutils.js:118 -#: js/modewidget.js:919 -#.TRANS: customize voice -msgid "custom" +#: js/utils/musicutils.js:1172 +#.TRANS: musical temperament +msgid "Pythagorean" msgstr "" -#: js/WidgetBlocks.js:432 -msgid "The Meter block opens a tool to select strong beats for the meter." +#: js/utils/musicutils.js:1174 +#.TRANS: musical temperament +msgid "just intonation" msgstr "" -#: js/WidgetBlocks.js:473 -msgid "The oscilloscope block opens a tool to visualize waveforms." +#: js/utils/musicutils.js:1176 +#.TRANS: musical temperament +msgid "meantone" msgstr "" -#: js/WidgetBlocks.js:478 -msgid "oscilloscope" +#: js/utils/musicutils.js:1193 +msgid "major 7th" msgstr "" -#: js/WidgetBlocks.js:530 -msgid "The Custom mode block opens a tool to explore musical mode (the spacing of the notes in a scale)." +#: js/utils/musicutils.js:1194 +msgid "minor 7th" msgstr "" -#: js/WidgetBlocks.js:536 -#.TRANS: musical mode is the pattern of half-steps in an octave, e.g., Major or Minor modes -msgid "custom mode" +#: js/utils/musicutils.js:1195 +msgid "dominant 7th" msgstr "" -#: js/WidgetBlocks.js:570 -msgid "The Tempo block opens a metronome to visualize the beat." +#: js/utils/musicutils.js:1196 +msgid "minor-major 7th" msgstr "" -#: js/WidgetBlocks.js:617 -msgid "The Arpeggio Widget is used to compose chord sequences." +#: js/utils/musicutils.js:1197 +msgid "fully-diminished 7th" msgstr "" -#: js/WidgetBlocks.js:623 -#: js/IntervalsBlocks.js:683 -msgid "arpeggio" +#: js/utils/musicutils.js:1198 +msgid "half-diminished 7th" msgstr "" -#: js/WidgetBlocks.js:677 -msgid "The Pitch drum matrix is used to map pitches to drum sounds." +#: js/utils/musicutils.js:1557 +#: js/utils/musicutils.js:1569 +msgid "Equal (12EDO)" msgstr "" -#: js/WidgetBlocks.js:682 -#.TRANS: makes a mapping between pitches and drum sounds -msgid "pitch-drum mapper" +#: js/utils/musicutils.js:1558 +#: js/utils/musicutils.js:1570 +msgid "5-limit Just Intonation" msgstr "" -#: js/WidgetBlocks.js:724 -msgid "You must have at least one pitch block and one drum block in the matrix." +#: js/utils/musicutils.js:1559 +#: js/utils/musicutils.js:1571 +msgid "Pythagorean (3-limit JI)" msgstr "" -#: js/WidgetBlocks.js:746 -msgid "The Pitch slider tool to is used to generate pitches at selected frequencies." +#: js/utils/musicutils.js:1560 +#: js/utils/musicutils.js:1561 +#: js/utils/musicutils.js:1572 +#: js/utils/musicutils.js:1573 +msgid "Meantone" msgstr "" -#: js/WidgetBlocks.js:751 -#.TRANS: widget to generate pitches using a slider -msgid "pitch slider" +#: js/utils/musicutils.js:1574 +msgid "Custom" msgstr "" -#: js/WidgetBlocks.js:788 -msgid "chromatic keyboard" +#: js/utils/musicutils.js:5387 +#: js/utils/musicutils.js:5430 +msgid "current" msgstr "" -#: js/WidgetBlocks.js:815 -#: js/WidgetBlocks.js:874 -#.TRANS: widget to generate pitches using a slider -msgid "music keyboard" +#: js/utils/musicutils.js:5390 +#: js/utils/musicutils.js:5421 +msgid "next" msgstr "" -#: js/WidgetBlocks.js:859 -#: js/WidgetBlocks.js:866 -msgid "The Music keyboard block opens a piano keyboard that can be used to create notes." +#: js/utils/musicutils.js:5393 +#: js/utils/musicutils.js:5426 +msgid "previous" msgstr "" -#: js/WidgetBlocks.js:910 -msgid "The Pitch staircase tool to is used to generate pitches from a given ratio." +#: js/utils/synthutils.js:120 +#.TRANS: simple monotone synthesizer +msgid "simple-2" msgstr "" -#: js/WidgetBlocks.js:917 -#.TRANS: generate a progressive sequence of pitches -msgid "pitch staircase" +#: js/utils/synthutils.js:122 +#.TRANS: simple monotone synthesizer +msgid "simple-3" msgstr "" -#: js/WidgetBlocks.js:982 -msgid "The Rhythm Maker block opens a tool to create drum machines." +#: js/utils/synthutils.js:124 +#.TRANS: simple monotone synthesizer +msgid "simple-4" msgstr "" -#: js/WidgetBlocks.js:1036 -msgid "G major scale" +#: js/utils/synthutils.js:162 +#.TRANS: musical instrument +msgid "taiko" msgstr "" -#: js/WidgetBlocks.js:1064 -msgid "C major scale" +#: js/blocks/ActionBlocks.js:58 +msgid "The Return block will return a value from an action." msgstr "" -#: js/WidgetBlocks.js:1097 -msgid "The Phrase Maker block opens a tool to create musical phrases." +#: js/blocks/ActionBlocks.js:75 +msgid "return" msgstr "" -#: js/WidgetBlocks.js:1104 -#.TRANS: assigns pitch to a sequence of beats to generate a melody -msgid "phrase maker" +#: js/blocks/ActionBlocks.js:128 +msgid "The Return to URL block will return a value to a webpage." msgstr "" -#: js/WidgetBlocks.js:1168 -msgid "You must have at least one pitch block and one rhythm block in the matrix." +#: js/blocks/ActionBlocks.js:145 +msgid "return to URL" msgstr "" -#: js/WidgetBlocks.js:1220 -msgid "The Status block opens a tool for inspecting the status of Music Blocks as it is running." +#: js/blocks/ActionBlocks.js:233 +#: js/blocks/ActionBlocks.js:290 +#: js/blocks/ActionBlocks.js:501 +#: js/blocks/ActionBlocks.js:688 +msgid "The Calculate block returns a value calculated by an action." msgstr "" -#: js/IntervalsBlocks.js:45 -msgid "set temperament" +#: js/blocks/ActionBlocks.js:251 +#: js/blocks/ActionBlocks.js:517 +#: js/blocks/ActionBlocks.js:707 +msgid "calculate" msgstr "" -#: js/IntervalsBlocks.js:63 -#: js/MediaBlocks.js:746 -#: js/PitchBlocks.js:657 -#: js/PitchBlocks.js:933 -#: js/PitchBlocks.js:972 -#: js/PitchBlocks.js:1005 -#: js/PitchBlocks.js:1166 -#: js/PitchBlocks.js:1679 -#: js/PitchBlocks.js:1720 -#: js/PitchBlocks.js:1827 -#: js/ToneBlocks.js:1025 -#.TRANS: adjusts the shift up or down by one octave (twelve half-steps in the interval between two notes, one having twice or half the frequency in Hz of the other.) -msgid "octave" +#: js/blocks/ActionBlocks.js:376 +#: js/blocks/ActionBlocks.js:593 +#: js/blocks/ActionBlocks.js:942 +#: js/blocks/ActionBlocks.js:1389 +#.TRANS: do is the do something or take an action. +msgid "The Do block is used to initiate an action." msgstr "" -#: js/IntervalsBlocks.js:99 -msgid "The Temperament name block is used to select a tuning method." +#: js/blocks/ActionBlocks.js:390 +#: js/blocks/ActionBlocks.js:610 +#: js/blocks/ActionBlocks.js:959 +#: js/blocks/ActionBlocks.js:1048 +#: js/blocks/MeterBlocks.js:769 +msgid "do1" msgstr "" -#: js/IntervalsBlocks.js:161 -msgid "doubly" +#: js/blocks/ActionBlocks.js:390 +#: js/blocks/ActionBlocks.js:610 +#: js/blocks/ActionBlocks.js:959 +#: js/blocks/ActionBlocks.js:1048 +#: js/blocks/FlowBlocks.js:742 +#: js/blocks/FlowBlocks.js:822 +#: js/blocks/MeterBlocks.js:769 +msgid "do" msgstr "" -#: js/IntervalsBlocks.js:166 -msgid "The Doubly block will double the size of an interval." +#: js/blocks/ActionBlocks.js:791 +#: js/blocks/ActionBlocks.js:865 +msgid "The Arg block contains the value of an argument passed to an action." msgstr "" -#: js/IntervalsBlocks.js:262 -msgid "interval number" +#: js/blocks/ActionBlocks.js:806 +#: js/blocks/ActionBlocks.js:878 +msgid "arg" msgstr "" -#: js/IntervalsBlocks.js:330 -#.TRANS: measure the distance between two pitches in semi-tones -msgid "semi-tone interval measure" +#: js/blocks/ActionBlocks.js:836 +#: js/blocks/ActionBlocks.js:900 +#: js/blocks/ActionBlocks.js:908 +msgid "Invalid argument" msgstr "" -#: js/IntervalsBlocks.js:397 -#: js/IntervalsBlocks.js:513 -msgid "You must use two pitch blocks when measuring an interval." +#: js/blocks/ActionBlocks.js:944 +msgid "In the example, it is used with the One of block to choose a random phase." msgstr "" -#: js/IntervalsBlocks.js:439 -msgid "The Scalar interval block measures the distance between two notes in the current key and mode." +#: js/blocks/ActionBlocks.js:1019 +#: js/blocks/ActionBlocks.js:1026 +msgid "The Listen block is used to listen for an event such as a mouse click." msgstr "" -#: js/IntervalsBlocks.js:445 -#.TRANS: measure the distance between two pitches in steps of musical scale -msgid "scalar interval measure" +#: js/blocks/ActionBlocks.js:1028 +msgid "When the event happens, an action is taken." msgstr "" -#: js/IntervalsBlocks.js:592 -#: js/musicutils.js:637 -#: js/musicutils.js:908 -#.TRANS: perfect is a music term related to intervals -msgid "perfect" +#: js/blocks/ActionBlocks.js:1045 +msgid "on" msgstr "" -#: js/IntervalsBlocks.js:621 -msgid "In the figure, we add sol# to sol." +#: js/blocks/ActionBlocks.js:1048 +#: js/blocks/ActionBlocks.js:1049 +#: js/blocks/ActionBlocks.js:1153 +msgid "event" msgstr "" -#: js/IntervalsBlocks.js:627 -#: js/OrnamentBlocks.js:220 -#.TRANS: calculate a relative step between notes based on semi-tones -msgid "semi-tone interval" +#: js/blocks/ActionBlocks.js:1133 +msgid "The Broadcast block is used to trigger an event." msgstr "" -#: js/IntervalsBlocks.js:676 -msgid "The output of the example is: do, mi, sol, sol, ti, mi" +#: js/blocks/ActionBlocks.js:1151 +msgid "broadcast" msgstr "" -#: js/IntervalsBlocks.js:735 -msgid "The Chord block calculates common chords." +#: js/blocks/ActionBlocks.js:1208 +msgid "Each Start block is a separate voice." msgstr "" -#: js/IntervalsBlocks.js:737 -msgid "In the figure, we generate a C-major chord." +#: js/blocks/ActionBlocks.js:1304 +msgid "It is often used for storing a phrase of music that is repeated." msgstr "" -#: js/IntervalsBlocks.js:742 -msgid "chord" +#: js/blocks/ActionBlocks.js:1495 +msgid "define temperament" msgstr "" -#: js/IntervalsBlocks.js:794 -msgid "The Ratio Interval block calculates an interval based on a ratio." +#: js/blocks/BooleanBlocks.js:44 +msgid "The Not block is the logical not operator." msgstr "" -#: js/IntervalsBlocks.js:799 -msgid "ratio interval" +#: js/blocks/BooleanBlocks.js:62 +msgid "not" +msgstr "NIE" + +#: js/blocks/BooleanBlocks.js:134 +msgid "The And block is the logical and operator." msgstr "" -#: js/IntervalsBlocks.js:868 -msgid "In the figure, we add la to sol." +#: js/blocks/BooleanBlocks.js:152 +msgid "and" +msgstr "EN" + +#: js/blocks/BooleanBlocks.js:218 +msgid "The Or block is the logical or operator." msgstr "" -#: js/IntervalsBlocks.js:924 -#.TRANS: define a custom mode -msgid "define mode" +#: js/blocks/BooleanBlocks.js:236 +msgid "or" +msgstr "OF" + +#: js/blocks/BooleanBlocks.js:302 +msgid "The XOR block is the logical XOR operator." msgstr "" -#: js/IntervalsBlocks.js:977 -msgid "movable Do" +#: js/blocks/BooleanBlocks.js:320 +msgid "xor" msgstr "" -#: js/IntervalsBlocks.js:1028 -#.TRANS: mode length is the number of notes in the mode, e.g., 7 for major and minor scales; 12 for chromatic scales -msgid "mode length" +#: js/blocks/BooleanBlocks.js:808 +msgid "The Equal block returns True if the two numbers are equal." msgstr "" -#: js/IntervalsBlocks.js:1037 -msgid "The Mode length block is the number of notes in the current scale." +#: js/blocks/BooleanBlocks.js:909 +msgid "The Not-equal-to block returns True if the two numbers are not equal to each other." msgstr "" -#: js/IntervalsBlocks.js:1039 -msgid "Most Western scales have 7 notes." +#: js/blocks/BooleanBlocks.js:1008 +msgid "The Boolean block is used to specify true or false." msgstr "" -#: js/IntervalsBlocks.js:1088 -#.TRANS: the mode in music is 'major', 'minor', etc. -msgid "current mode" +#: js/blocks/BoxesBlocks.js:53 +#: js/blocks/BoxesBlocks.js:59 +msgid "The Add-to block is used to add to the value stored in a box." msgstr "" -#: js/IntervalsBlocks.js:1141 -#.TRANS: the key is a group of pitches with which a music composition is created -msgid "current key" +#: js/blocks/BoxesBlocks.js:61 +msgid "It can also be used with other blocks such as Color and Pen size." msgstr "" -#: js/IntervalsBlocks.js:1193 -#: js/IntervalsBlocks.js:1238 -#.TRANS: set the key and mode, e.g. C Major -msgid "set key" +#: js/blocks/BoxesBlocks.js:73 +msgid "add" msgstr "" -#: js/IntervalsBlocks.js:1247 -#: js/IntervalsBlocks.js:1253 -msgid "The Set key block is used to set the key and mode," +#: js/blocks/BoxesBlocks.js:75 +#: js/widgets/temperament.js:857 +msgid "to" msgstr "" -#: js/IntervalsBlocks.js:1253 -msgid "eg C Major" +#: js/blocks/BoxesBlocks.js:75 +#: js/blocks/BoxesBlocks.js:595 +#: js/blocks/HeapBlocks.js:544 +msgid "value1" msgstr "" -#: js/IntervalsBlocks.js:1266 -#: js/DictBlocks.js:215 -#: js/DictBlocks.js:216 -#: js/DictBlocks.js:289 -#: js/DictBlocks.js:290 -#: js/DictBlocks.js:357 -#: js/DictBlocks.js:430 -#: js/DictBlocks.js:431 -#.TRANS: key, e.g., C in C Major -msgid "key" +#: js/blocks/BoxesBlocks.js:118 +msgid "Block does not support incrementing." msgstr "" -#: js/ActionBlocks.js:58 -msgid "The Return block will return a value from an action." +#: js/blocks/BoxesBlocks.js:152 +msgid "The Add-1-to block adds one to the value stored in a box." msgstr "" -#: js/ActionBlocks.js:75 -msgid "return" +#: js/blocks/BoxesBlocks.js:163 +msgid "add 1 to" msgstr "" -#: js/ActionBlocks.js:128 -msgid "The Return to URL block will return a value to a webpage." +#: js/blocks/BoxesBlocks.js:211 +msgid "The Subtract-1-from block subtracts one from the value stored in a box." msgstr "" -#: js/ActionBlocks.js:145 -msgid "return to URL" +#: js/blocks/BoxesBlocks.js:222 +msgid "subtract 1 from" msgstr "" -#: js/ActionBlocks.js:233 -#: js/ActionBlocks.js:290 -#: js/ActionBlocks.js:501 -#: js/ActionBlocks.js:688 -msgid "The Calculate block returns a value calculated by an action." +#: js/blocks/BoxesBlocks.js:270 +#: js/blocks/BoxesBlocks.js:387 +msgid "The Box block returns the value stored in a box." msgstr "" -#: js/ActionBlocks.js:251 -#: js/ActionBlocks.js:517 -#: js/ActionBlocks.js:707 -msgid "calculate" +#: js/blocks/BoxesBlocks.js:500 +#: js/blocks/BoxesBlocks.js:576 +msgid "The Store in block will store a value in a box." msgstr "" -#: js/ActionBlocks.js:376 -#: js/ActionBlocks.js:593 -#: js/ActionBlocks.js:942 -#: js/ActionBlocks.js:1389 -#.TRANS: do is the do something or take an action. -msgid "The Do block is used to initiate an action." +#: js/blocks/BoxesBlocks.js:595 +#: js/blocks/EnsembleBlocks.js:391 +#: js/blocks/EnsembleBlocks.js:402 +msgid "name1" msgstr "" -#: js/ActionBlocks.js:390 -#: js/ActionBlocks.js:610 -#: js/ActionBlocks.js:959 -#: js/ActionBlocks.js:1048 -#: js/MeterBlocks.js:769 -msgid "do1" +#: js/blocks/BoxesBlocks.js:652 +msgid "The Box2 block returns the value stored in Box2." msgstr "" -#: js/ActionBlocks.js:390 -#: js/ActionBlocks.js:610 -#: js/ActionBlocks.js:959 -#: js/ActionBlocks.js:1048 -#: js/FlowBlocks.js:742 -#: js/FlowBlocks.js:822 -#: js/MeterBlocks.js:769 -msgid "do" +#: js/blocks/BoxesBlocks.js:703 +msgid "The Store in Box2 block is used to store a value in Box2." msgstr "" -#: js/ActionBlocks.js:791 -#: js/ActionBlocks.js:865 -msgid "The Arg block contains the value of an argument passed to an action." +#: js/blocks/BoxesBlocks.js:715 +msgid "store in box2" msgstr "" -#: js/ActionBlocks.js:806 -#: js/ActionBlocks.js:878 -msgid "arg" +#: js/blocks/BoxesBlocks.js:761 +msgid "The Box1 block returns the value stored in Box1." msgstr "" -#: js/ActionBlocks.js:836 -#: js/ActionBlocks.js:900 -#: js/ActionBlocks.js:908 -msgid "Invalid argument" +#: js/blocks/BoxesBlocks.js:812 +msgid "The Store in Box1 block is used to store a value in Box1." msgstr "" -#: js/ActionBlocks.js:944 -msgid "In the example, it is used with the One of block to choose a random phase." +#: js/blocks/BoxesBlocks.js:826 +msgid "store in box1" msgstr "" -#: js/ActionBlocks.js:1019 -#: js/ActionBlocks.js:1026 -msgid "The Listen block is used to listen for an event such as a mouse click." +#: js/blocks/DictBlocks.js:77 +msgid "show dictionary" msgstr "" -#: js/ActionBlocks.js:1028 -msgid "When the event happens, an action is taken." +#: js/blocks/DictBlocks.js:80 +#: js/blocks/DictBlocks.js:145 +#: js/blocks/DictBlocks.js:216 +#: js/blocks/DictBlocks.js:290 +#: js/blocks/ProgramBlocks.js:396 +#: js/blocks/ProgramBlocks.js:501 +#: js/blocks/ProgramBlocks.js:664 +msgid "My Dictionary" msgstr "" -#: js/ActionBlocks.js:1045 -msgid "on" +#: js/blocks/DictBlocks.js:129 +msgid "The Dictionary block returns a dictionary." msgstr "" -#: js/ActionBlocks.js:1048 -#: js/ActionBlocks.js:1049 -#: js/ActionBlocks.js:1153 -msgid "event" +#: js/blocks/DictBlocks.js:197 +#: js/blocks/DictBlocks.js:339 +msgid "The Get-dict block returns a value in the dictionary for a specified key." msgstr "" -#: js/ActionBlocks.js:1133 -msgid "The Broadcast block is used to trigger an event." +#: js/blocks/DictBlocks.js:212 +#: js/blocks/DictBlocks.js:354 +#.TRANS: retrieve a value from the dictionary with a given key +msgid "get value" msgstr "" -#: js/ActionBlocks.js:1151 -msgid "broadcast" +#: js/blocks/DictBlocks.js:215 +#: js/blocks/DictBlocks.js:216 +#: js/blocks/DictBlocks.js:289 +#: js/blocks/DictBlocks.js:290 +#: js/blocks/DictBlocks.js:357 +#: js/blocks/DictBlocks.js:430 +#: js/blocks/DictBlocks.js:431 +msgid "key2" msgstr "" -#: js/ActionBlocks.js:1208 -msgid "Each Start block is a separate voice." +#: js/blocks/DictBlocks.js:215 +#: js/blocks/DictBlocks.js:216 +#: js/blocks/DictBlocks.js:289 +#: js/blocks/DictBlocks.js:290 +#: js/blocks/DictBlocks.js:357 +#: js/blocks/DictBlocks.js:430 +#: js/blocks/DictBlocks.js:431 +#: js/blocks/IntervalsBlocks.js:1462 +#.TRANS: key, e.g., C in C Major +msgid "key" msgstr "" -#: js/ActionBlocks.js:1304 -msgid "It is often used for storing a phrase of music that is repeated." +#: js/blocks/DictBlocks.js:271 +#: js/blocks/DictBlocks.js:411 +msgid "The Set-dict block sets a value in the dictionary for a specified key." msgstr "" -#: js/ActionBlocks.js:1495 -msgid "define temperament" +#: js/blocks/DictBlocks.js:286 +#: js/blocks/DictBlocks.js:427 +#.TRANS: set a value in the dictionary for a given key +msgid "set value" msgstr "" -#: js/EnsembleBlocks.js:66 +#: js/blocks/EnsembleBlocks.js:66 msgid "mouse index heap" msgstr "" -#: js/EnsembleBlocks.js:68 +#: js/blocks/EnsembleBlocks.js:68 msgid "The Mouse index heap block returns a value in the heap at a specified location for a specified mouse." msgstr "" -#: js/EnsembleBlocks.js:77 -#: js/EnsembleBlocks.js:1080 +#: js/blocks/EnsembleBlocks.js:77 +#: js/blocks/EnsembleBlocks.js:1080 msgid "mouse name" msgstr "" -#: js/EnsembleBlocks.js:77 -#: js/EnsembleBlocks.js:92 -#: js/HeapBlocks.js:544 +#: js/blocks/EnsembleBlocks.js:77 +#: js/blocks/EnsembleBlocks.js:92 +#: js/blocks/HeapBlocks.js:544 #.TRANS: value1 is a numeric value (JAPANESE ONLY) msgid "index" msgstr "" -#: js/EnsembleBlocks.js:80 +#: js/blocks/EnsembleBlocks.js:80 msgid "turtle index heap" msgstr "" -#: js/EnsembleBlocks.js:82 +#: js/blocks/EnsembleBlocks.js:82 msgid "The Turtle index heap block returns a value in the heap at a specified location for a specified turtle." msgstr "" -#: js/EnsembleBlocks.js:90 -#: js/EnsembleBlocks.js:167 -#: js/EnsembleBlocks.js:230 -#: js/EnsembleBlocks.js:316 -#: js/EnsembleBlocks.js:362 -#: js/EnsembleBlocks.js:400 -#: js/EnsembleBlocks.js:454 -#: js/EnsembleBlocks.js:504 -#: js/EnsembleBlocks.js:550 -#: js/EnsembleBlocks.js:597 -#: js/EnsembleBlocks.js:651 -#: js/EnsembleBlocks.js:763 -#: js/EnsembleBlocks.js:854 -#: js/EnsembleBlocks.js:915 -#: js/EnsembleBlocks.js:955 -#: js/EnsembleBlocks.js:1219 -#: js/EnsembleBlocks.js:1293 +#: js/blocks/EnsembleBlocks.js:90 +#: js/blocks/EnsembleBlocks.js:167 +#: js/blocks/EnsembleBlocks.js:230 +#: js/blocks/EnsembleBlocks.js:316 +#: js/blocks/EnsembleBlocks.js:362 +#: js/blocks/EnsembleBlocks.js:400 +#: js/blocks/EnsembleBlocks.js:454 +#: js/blocks/EnsembleBlocks.js:504 +#: js/blocks/EnsembleBlocks.js:550 +#: js/blocks/EnsembleBlocks.js:597 +#: js/blocks/EnsembleBlocks.js:651 +#: js/blocks/EnsembleBlocks.js:763 +#: js/blocks/EnsembleBlocks.js:854 +#: js/blocks/EnsembleBlocks.js:915 +#: js/blocks/EnsembleBlocks.js:955 +#: js/blocks/EnsembleBlocks.js:1219 +#: js/blocks/EnsembleBlocks.js:1293 #.TRANS: Yertle is the name of a turtle. msgid "Yertle" msgstr "" -#: js/EnsembleBlocks.js:92 -#: js/EnsembleBlocks.js:1089 +#: js/blocks/EnsembleBlocks.js:92 +#: js/blocks/EnsembleBlocks.js:1089 msgid "turtle name" msgstr "" -#: js/EnsembleBlocks.js:122 -#: js/EnsembleBlocks.js:1197 -#: js/HeapBlocks.js:474 -#: js/HeapBlocks.js:572 +#: js/blocks/EnsembleBlocks.js:122 +#: js/blocks/EnsembleBlocks.js:1197 +#: js/blocks/HeapBlocks.js:474 +#: js/blocks/HeapBlocks.js:572 msgid "Index must be > 0." msgstr "" -#: js/EnsembleBlocks.js:127 -#: js/HeapBlocks.js:479 -#: js/HeapBlocks.js:577 +#: js/blocks/EnsembleBlocks.js:127 +#: js/blocks/HeapBlocks.js:479 +#: js/blocks/HeapBlocks.js:577 msgid "Maximum heap size is 1000." msgstr "" -#: js/EnsembleBlocks.js:145 +#: js/blocks/EnsembleBlocks.js:145 msgid "stop mouse" msgstr "" -#: js/EnsembleBlocks.js:147 +#: js/blocks/EnsembleBlocks.js:147 msgid "The Stop mouse block stops the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:158 +#: js/blocks/EnsembleBlocks.js:158 msgid "stop turtle" msgstr "" -#: js/EnsembleBlocks.js:160 +#: js/blocks/EnsembleBlocks.js:160 msgid "The Stop turtle block stops the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:184 -#: js/EnsembleBlocks.js:247 -#: js/EnsembleBlocks.js:413 -#: js/EnsembleBlocks.js:468 -#: js/EnsembleBlocks.js:706 -#: js/EnsembleBlocks.js:808 -#: js/EnsembleBlocks.js:870 -#: js/EnsembleBlocks.js:1190 -#: js/EnsembleBlocks.js:1253 +#: js/blocks/EnsembleBlocks.js:184 +#: js/blocks/EnsembleBlocks.js:247 +#: js/blocks/EnsembleBlocks.js:413 +#: js/blocks/EnsembleBlocks.js:468 +#: js/blocks/EnsembleBlocks.js:706 +#: js/blocks/EnsembleBlocks.js:808 +#: js/blocks/EnsembleBlocks.js:870 +#: js/blocks/EnsembleBlocks.js:1190 +#: js/blocks/EnsembleBlocks.js:1253 msgid "Cannot find mouse" msgstr "" -#: js/EnsembleBlocks.js:186 -#: js/EnsembleBlocks.js:249 -#: js/EnsembleBlocks.js:415 -#: js/EnsembleBlocks.js:470 -#: js/EnsembleBlocks.js:708 -#: js/EnsembleBlocks.js:810 -#: js/EnsembleBlocks.js:872 -#: js/EnsembleBlocks.js:1192 -#: js/EnsembleBlocks.js:1255 +#: js/blocks/EnsembleBlocks.js:186 +#: js/blocks/EnsembleBlocks.js:249 +#: js/blocks/EnsembleBlocks.js:415 +#: js/blocks/EnsembleBlocks.js:470 +#: js/blocks/EnsembleBlocks.js:708 +#: js/blocks/EnsembleBlocks.js:810 +#: js/blocks/EnsembleBlocks.js:872 +#: js/blocks/EnsembleBlocks.js:1192 +#: js/blocks/EnsembleBlocks.js:1255 msgid "Cannot find turtle" msgstr "" -#: js/EnsembleBlocks.js:206 +#: js/blocks/EnsembleBlocks.js:206 msgid "start mouse" msgstr "" -#: js/EnsembleBlocks.js:209 +#: js/blocks/EnsembleBlocks.js:209 msgid "The Start mouse block starts the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:220 +#: js/blocks/EnsembleBlocks.js:220 msgid "start turtle" msgstr "" -#: js/EnsembleBlocks.js:223 +#: js/blocks/EnsembleBlocks.js:223 msgid "The Start turtle block starts the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:256 +#: js/blocks/EnsembleBlocks.js:256 msgid "Mouse is already running." msgstr "" -#: js/EnsembleBlocks.js:258 +#: js/blocks/EnsembleBlocks.js:258 msgid "Turtle is already running." msgstr "" -#: js/EnsembleBlocks.js:282 +#: js/blocks/EnsembleBlocks.js:282 msgid "Cannot find start block" msgstr "" -#: js/EnsembleBlocks.js:292 +#: js/blocks/EnsembleBlocks.js:292 #.TRANS: pen color for this mouse msgid "mouse color" msgstr "" -#: js/EnsembleBlocks.js:294 +#: js/blocks/EnsembleBlocks.js:294 msgid "The Mouse color block returns the pen color of the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:306 +#: js/blocks/EnsembleBlocks.js:306 #.TRANS: pen color for this turtle msgid "turtle color" msgstr "" -#: js/EnsembleBlocks.js:308 +#: js/blocks/EnsembleBlocks.js:308 msgid "The Turtle color block returns the pen color of the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:338 +#: js/blocks/EnsembleBlocks.js:338 #.TRANS: heading (compass direction) for this mouse msgid "mouse heading" msgstr "" -#: js/EnsembleBlocks.js:340 +#: js/blocks/EnsembleBlocks.js:340 msgid "The Mouse heading block returns the heading of the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:352 +#: js/blocks/EnsembleBlocks.js:352 #.TRANS: heading (compass direction) for this turtle msgid "turtle heading" msgstr "" -#: js/EnsembleBlocks.js:354 +#: js/blocks/EnsembleBlocks.js:354 msgid "The Turtle heading block returns the heading of the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:384 -#: js/EnsembleBlocks.js:439 +#: js/blocks/EnsembleBlocks.js:384 +#: js/blocks/EnsembleBlocks.js:439 #.TRANS: set xy position for this mouse msgid "set mouse" msgstr "" -#: js/EnsembleBlocks.js:391 -#: js/EnsembleBlocks.js:402 -#: js/BoxesBlocks.js:595 -msgid "name1" -msgstr "" - -#: js/EnsembleBlocks.js:391 -#: js/EnsembleBlocks.js:402 -#: js/ProgramBlocks.js:881 -#: js/GraphicsBlocks.js:235 -#: js/GraphicsBlocks.js:313 -#: js/GraphicsBlocks.js:436 -#: js/GraphicsBlocks.js:487 -#: js/GraphicsBlocks.js:534 -#: js/GraphicsBlocks.js:750 +#: js/blocks/EnsembleBlocks.js:391 +#: js/blocks/EnsembleBlocks.js:402 +#: js/blocks/GraphicsBlocks.js:235 +#: js/blocks/GraphicsBlocks.js:313 +#: js/blocks/GraphicsBlocks.js:436 +#: js/blocks/GraphicsBlocks.js:487 +#: js/blocks/GraphicsBlocks.js:534 +#: js/blocks/GraphicsBlocks.js:750 +#: js/blocks/ProgramBlocks.js:881 msgid "x" msgstr "x" -#: js/EnsembleBlocks.js:391 -#: js/EnsembleBlocks.js:402 -#: js/ProgramBlocks.js:881 -#: js/GraphicsBlocks.js:149 -#: js/GraphicsBlocks.js:313 -#: js/GraphicsBlocks.js:436 -#: js/GraphicsBlocks.js:487 -#: js/GraphicsBlocks.js:534 -#: js/GraphicsBlocks.js:750 +#: js/blocks/EnsembleBlocks.js:391 +#: js/blocks/EnsembleBlocks.js:402 +#: js/blocks/GraphicsBlocks.js:149 +#: js/blocks/GraphicsBlocks.js:313 +#: js/blocks/GraphicsBlocks.js:436 +#: js/blocks/GraphicsBlocks.js:487 +#: js/blocks/GraphicsBlocks.js:534 +#: js/blocks/GraphicsBlocks.js:750 +#: js/blocks/ProgramBlocks.js:881 msgid "y" msgstr "y" -#: js/EnsembleBlocks.js:395 -#: js/EnsembleBlocks.js:452 +#: js/blocks/EnsembleBlocks.js:395 +#: js/blocks/EnsembleBlocks.js:452 #.TRANS: set xy position for this turtle msgid "set turtle" msgstr "" -#: js/EnsembleBlocks.js:433 +#: js/blocks/EnsembleBlocks.js:433 msgid "The Set mouse block sends a stack of blocks to be run by the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:446 +#: js/blocks/EnsembleBlocks.js:446 msgid "The Set turtle block sends a stack of blocks to be run by the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:480 +#: js/blocks/EnsembleBlocks.js:480 #.TRANS: y position for this mouse msgid "mouse y" msgstr "" -#: js/EnsembleBlocks.js:482 +#: js/blocks/EnsembleBlocks.js:482 msgid "The Y mouse block returns the Y position of the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:494 +#: js/blocks/EnsembleBlocks.js:494 #.TRANS: y position for this turtle msgid "turtle y" msgstr "Skilpad" -#: js/EnsembleBlocks.js:496 +#: js/blocks/EnsembleBlocks.js:496 msgid "The Y turtle block returns the Y position of the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:526 +#: js/blocks/EnsembleBlocks.js:526 #.TRANS: x position for this mouse msgid "mouse x" msgstr "" -#: js/EnsembleBlocks.js:528 +#: js/blocks/EnsembleBlocks.js:528 msgid "The X mouse block returns the X position of the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:540 +#: js/blocks/EnsembleBlocks.js:540 #.TRANS: x position for this turtle msgid "turtle x" msgstr "Skilpad" -#: js/EnsembleBlocks.js:542 +#: js/blocks/EnsembleBlocks.js:542 msgid "The X turtle block returns the X position of the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:573 +#: js/blocks/EnsembleBlocks.js:573 #.TRANS: notes played by this mouse msgid "mouse notes played" msgstr "" -#: js/EnsembleBlocks.js:575 +#: js/blocks/EnsembleBlocks.js:575 msgid "The Mouse elapse notes block returns the number of notes played by the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:587 +#: js/blocks/EnsembleBlocks.js:587 #.TRANS: notes played by this turtle msgid "turtle notes played" msgstr "" -#: js/EnsembleBlocks.js:589 +#: js/blocks/EnsembleBlocks.js:589 msgid "The Turtle elapse notes block returns the number of notes played by the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:627 +#: js/blocks/EnsembleBlocks.js:627 #.TRANS: convert current note for this turtle to piano key (1-88) msgid "mouse pitch number" msgstr "" -#: js/EnsembleBlocks.js:629 +#: js/blocks/EnsembleBlocks.js:629 msgid "The Mouse pitch block returns the current pitch number being played by the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:641 +#: js/blocks/EnsembleBlocks.js:641 #.TRANS: convert current note for this turtle to piano key (1-88) msgid "turtle pitch number" msgstr "" -#: js/EnsembleBlocks.js:643 -msgid "The Turrle pitch block returns the current pitch number being played by the specified turtle." +#: js/blocks/EnsembleBlocks.js:643 +msgid "The Turtle pitch block returns the current pitch number being played by the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:747 -#: js/EnsembleBlocks.js:819 +#: js/blocks/EnsembleBlocks.js:747 +#: js/blocks/EnsembleBlocks.js:819 #.TRANS: note value is the duration of the note played by this mouse msgid "mouse note value" msgstr "" -#: js/EnsembleBlocks.js:757 +#: js/blocks/EnsembleBlocks.js:757 #.TRANS: note value is the duration of the note played by this turtle msgid "turtle note value" msgstr "" -#: js/EnsembleBlocks.js:830 +#: js/blocks/EnsembleBlocks.js:830 #.TRANS: sync is short for synchronization msgid "mouse sync" msgstr "" -#: js/EnsembleBlocks.js:832 +#: js/blocks/EnsembleBlocks.js:832 msgid "The Mouse sync block aligns the beat count between mice." msgstr "" -#: js/EnsembleBlocks.js:844 +#: js/blocks/EnsembleBlocks.js:844 #.TRANS: sync is short for synchronization msgid "turtle sync" msgstr "" -#: js/EnsembleBlocks.js:846 +#: js/blocks/EnsembleBlocks.js:846 msgid "The Turtle sync block aligns the beat count between turtles." msgstr "" -#: js/EnsembleBlocks.js:887 +#: js/blocks/EnsembleBlocks.js:887 msgid "The Found mouse block will return true if the specified mouse can be found." msgstr "" -#: js/EnsembleBlocks.js:893 +#: js/blocks/EnsembleBlocks.js:893 msgid "found mouse" msgstr "" -#: js/EnsembleBlocks.js:903 +#: js/blocks/EnsembleBlocks.js:903 msgid "The Found turtle block will return true if the specified turtle can be found." msgstr "" -#: js/EnsembleBlocks.js:909 -msgid "found turtle" -msgstr "" - -#: js/EnsembleBlocks.js:932 -msgid "new mouse" -msgstr "" - -#: js/EnsembleBlocks.js:934 -msgid "The New mouse block will create a new mouse." -msgstr "" - -#: js/EnsembleBlocks.js:945 -msgid "new turtle" -msgstr "" - -#: js/EnsembleBlocks.js:947 -msgid "The New turtle block will create a new turtle." -msgstr "" - -#: js/EnsembleBlocks.js:1011 -msgid "set mouse color" -msgstr "" - -#: js/EnsembleBlocks.js:1014 -msgid "The Set-mouse-color block is used to set the color of a mouse." -msgstr "" - -#: js/EnsembleBlocks.js:1020 -msgid "set turtle color" -msgstr "" - -#: js/EnsembleBlocks.js:1023 -msgid "The Set-turtle-color block is used to set the color of a turtle." -msgstr "" - -#: js/EnsembleBlocks.js:1083 -msgid "The Mouse-name block returns the name of a mouse." -msgstr "" - -#: js/EnsembleBlocks.js:1092 -msgid "The Turtle-name block returns the name of a turtle." -msgstr "" - -#: js/EnsembleBlocks.js:1115 -msgid "mouse count" -msgstr "" - -#: js/EnsembleBlocks.js:1118 -msgid "The Mouse-count block returns the number of mice." -msgstr "" - -#: js/EnsembleBlocks.js:1124 -msgid "turtle count" -msgstr "" - -#: js/EnsembleBlocks.js:1127 -msgid "The Turtle-count block returns the number of turtles." -msgstr "" - -#: js/EnsembleBlocks.js:1149 -msgid "nth mouse name" -msgstr "" - -#: js/EnsembleBlocks.js:1152 -msgid "The Nth-Mouse name block returns the name of the nth mouse." -msgstr "" - -#: js/EnsembleBlocks.js:1158 -msgid "nth turtle name" -msgstr "" - -#: js/EnsembleBlocks.js:1161 -msgid "The Nth-Turtle name block returns the name of the nth turtle." -msgstr "" - -#: js/EnsembleBlocks.js:1205 -#: js/EnsembleBlocks.js:1265 -msgid "set name" -msgstr "" - -#: js/EnsembleBlocks.js:1214 -#: js/EnsembleBlocks.js:1221 -msgid "source" -msgstr "" - -#: js/EnsembleBlocks.js:1214 -#: js/EnsembleBlocks.js:1221 -msgid "target" -msgstr "" - -#: js/EnsembleBlocks.js:1271 -msgid "The Set-name block is used to name a mouse." -msgstr "" - -#: js/EnsembleBlocks.js:1284 -msgid "The Set-name block is used to name a turtle." -msgstr "" - -#: js/BooleanBlocks.js:44 -msgid "The Not block is the logical not operator." -msgstr "" - -#: js/BooleanBlocks.js:62 -msgid "not" -msgstr "NIE" - -#: js/BooleanBlocks.js:134 -msgid "The And block is the logical and operator." -msgstr "" - -#: js/BooleanBlocks.js:152 -msgid "and" -msgstr "EN" - -#: js/BooleanBlocks.js:218 -msgid "The Or block is the logical or operator." -msgstr "" - -#: js/BooleanBlocks.js:236 -msgid "or" -msgstr "OF" +#: js/blocks/EnsembleBlocks.js:909 +msgid "found turtle" +msgstr "" -#: js/BooleanBlocks.js:302 -msgid "The XOR block is the logical XOR operator." +#: js/blocks/EnsembleBlocks.js:932 +msgid "new mouse" msgstr "" -#: js/BooleanBlocks.js:320 -msgid "xor" +#: js/blocks/EnsembleBlocks.js:934 +msgid "The New mouse block will create a new mouse." msgstr "" -#: js/BooleanBlocks.js:808 -msgid "The Equal block returns True if the two numbers are equal." +#: js/blocks/EnsembleBlocks.js:945 +msgid "new turtle" msgstr "" -#: js/BooleanBlocks.js:909 -msgid "The Not-equal-to block returns True if the two numbers are not equal to each other." +#: js/blocks/EnsembleBlocks.js:947 +msgid "The New turtle block will create a new turtle." msgstr "" -#: js/BooleanBlocks.js:1008 -msgid "The Boolean block is used to specify true or false." +#: js/blocks/EnsembleBlocks.js:1011 +msgid "set mouse color" msgstr "" -#: js/MediaBlocks.js:35 -#.TRANS: right side of the screen -msgid "right (screen)" +#: js/blocks/EnsembleBlocks.js:1014 +msgid "The Set-mouse-color block is used to set the color of a mouse." msgstr "" -#: js/MediaBlocks.js:45 -#: js/MediaBlocks.js:56 -msgid "The Right block returns the position of the right of the canvas." +#: js/blocks/EnsembleBlocks.js:1020 +msgid "set turtle color" msgstr "" -#: js/MediaBlocks.js:97 -#.TRANS: left side of the screen -msgid "left (screen)" +#: js/blocks/EnsembleBlocks.js:1023 +msgid "The Set-turtle-color block is used to set the color of a turtle." msgstr "" -#: js/MediaBlocks.js:107 -#: js/MediaBlocks.js:118 -msgid "The Left block returns the position of the left of the canvas." +#: js/blocks/EnsembleBlocks.js:1083 +msgid "The Mouse-name block returns the name of a mouse." msgstr "" -#: js/MediaBlocks.js:158 -msgid "top (screen)" +#: js/blocks/EnsembleBlocks.js:1092 +msgid "The Turtle-name block returns the name of a turtle." msgstr "" -#: js/MediaBlocks.js:168 -#: js/MediaBlocks.js:179 -msgid "The Top block returns the position of the top of the canvas." +#: js/blocks/EnsembleBlocks.js:1115 +msgid "mouse count" msgstr "" -#: js/MediaBlocks.js:219 -msgid "bottom (screen)" +#: js/blocks/EnsembleBlocks.js:1118 +msgid "The Mouse-count block returns the number of mice." msgstr "" -#: js/MediaBlocks.js:229 -#: js/MediaBlocks.js:240 -msgid "The Bottom block returns the position of the bottom of the canvas." +#: js/blocks/EnsembleBlocks.js:1124 +msgid "turtle count" msgstr "" -#: js/MediaBlocks.js:282 -msgid "width" +#: js/blocks/EnsembleBlocks.js:1127 +msgid "The Turtle-count block returns the number of turtles." msgstr "" -#: js/MediaBlocks.js:291 -msgid "The Width block returns the width of the canvas." +#: js/blocks/EnsembleBlocks.js:1149 +msgid "nth mouse name" msgstr "" -#: js/MediaBlocks.js:325 -msgid "height" +#: js/blocks/EnsembleBlocks.js:1152 +msgid "The Nth-Mouse name block returns the name of the nth mouse." msgstr "" -#: js/MediaBlocks.js:334 -msgid "The Height block returns the height of the canvas." +#: js/blocks/EnsembleBlocks.js:1158 +msgid "nth turtle name" msgstr "" -#: js/MediaBlocks.js:369 -#.TRANS: stops playback of an audio recording -msgid "stop play" +#: js/blocks/EnsembleBlocks.js:1161 +msgid "The Nth-Turtle name block returns the name of the nth turtle." msgstr "" -#: js/MediaBlocks.js:404 -#.TRANS: Erases the images and text -msgid "erase media" +#: js/blocks/EnsembleBlocks.js:1205 +#: js/blocks/EnsembleBlocks.js:1265 +msgid "set name" msgstr "" -#: js/MediaBlocks.js:409 -msgid "The Erase Media block erases text and images." +#: js/blocks/EnsembleBlocks.js:1214 +#: js/blocks/EnsembleBlocks.js:1221 +msgid "source" msgstr "" -#: js/MediaBlocks.js:439 -#.TRANS: play an audio recording -msgid "play back" +#: js/blocks/EnsembleBlocks.js:1214 +#: js/blocks/EnsembleBlocks.js:1221 +msgid "target" msgstr "" -#: js/MediaBlocks.js:487 -msgid "speak" +#: js/blocks/EnsembleBlocks.js:1271 +msgid "The Set-name block is used to name a mouse." msgstr "" -#: js/MediaBlocks.js:495 -msgid "The Speak block outputs to the text-to-speech synthesizer" +#: js/blocks/EnsembleBlocks.js:1284 +msgid "The Set-name block is used to name a turtle." msgstr "" -#: js/MediaBlocks.js:546 -msgid "camera" +#: js/blocks/ExtrasBlocks.js:33 +msgid "fraction" msgstr "" -#: js/MediaBlocks.js:551 -msgid "The Camera block connects a webcam to the Show block." +#: js/blocks/ExtrasBlocks.js:36 +msgid "Convert a float to a fraction" msgstr "" -#: js/MediaBlocks.js:574 -msgid "video" +#: js/blocks/ExtrasBlocks.js:93 +msgid "save as ABC" msgstr "" -#: js/MediaBlocks.js:579 -msgid "The Video block selects video for use with the Show block." +#: js/blocks/ExtrasBlocks.js:96 +#: js/blocks/ExtrasBlocks.js:132 +#: js/blocks/ExtrasBlocks.js:168 +msgid "title" msgstr "" -#: js/MediaBlocks.js:607 -msgid "The Open file block opens a file for use with the Show block." +#: js/blocks/ExtrasBlocks.js:129 +msgid "save as Lilypond" msgstr "" -#: js/MediaBlocks.js:645 -msgid "stop media" +#: js/blocks/ExtrasBlocks.js:165 +msgid "save as SVG" msgstr "" -#: js/MediaBlocks.js:650 -msgid "The Stop media block stops audio or video playback." +#: js/blocks/ExtrasBlocks.js:216 +msgid "no background" msgstr "" -#: js/MediaBlocks.js:679 -#: js/PitchBlocks.js:1539 -#: js/phrasemaker.js:822 -#: js/musickeyboard.js:1654 -#.TRANS: a measure of frequency: one cycle per second -msgid "hertz" +#: js/blocks/ExtrasBlocks.js:219 +msgid "The No background block eliminates the background from the saved SVG output." msgstr "" -#: js/MediaBlocks.js:692 -msgid "duration (ms)" +#: js/blocks/ExtrasBlocks.js:247 +msgid "show blocks" +msgstr "Wys blokke" + +#: js/blocks/ExtrasBlocks.js:249 +msgid "The Show blocks block shows the blocks." msgstr "" -#: js/MediaBlocks.js:728 -#.TRANS: translate a note into hertz, e.g., A4 -> 440HZ -msgid "note to frequency" +#: js/blocks/ExtrasBlocks.js:274 +msgid "hide blocks" +msgstr "versteek blokke" + +#: js/blocks/ExtrasBlocks.js:276 +msgid "The Hide blocks block hides the blocks." msgstr "" -#: js/MediaBlocks.js:736 -msgid "The To frequency block converts a pitch name and octave to Hertz." +#: js/blocks/ExtrasBlocks.js:305 +#: js/blocks/ExtrasBlocks.js:338 +msgid "The Space block is used to add space between blocks." msgstr "" -#: js/MediaBlocks.js:746 -#: js/PitchBlocks.js:656 -#: js/PitchBlocks.js:932 -#: js/PitchBlocks.js:1827 -#.TRANS: name2 is name as in name of pitch (JAPANESE ONLY) -msgid "name2" +#: js/blocks/ExtrasBlocks.js:376 +msgid "wait" +msgstr "wag" + +#: js/blocks/ExtrasBlocks.js:379 +msgid "The Wait block pauses the program for a specified number of seconds." msgstr "" -#: js/MediaBlocks.js:812 -msgid "The Avatar block is used to change the appearance of the mouse." +#: js/blocks/ExtrasBlocks.js:433 +#: plugins/facebook.rtp:30 +msgid "comment" msgstr "" -#: js/MediaBlocks.js:819 -msgid "The Avatar block is used to change the appearance of the turtle." +#: js/blocks/ExtrasBlocks.js:469 +msgid "print" +msgstr "druk" + +#: js/blocks/ExtrasBlocks.js:476 +msgid "The Print block displays text at the top of the screen." msgstr "" -#: js/MediaBlocks.js:831 -#: js/MediaBlocks.js:891 -#.TRANS: a media object -msgid "size" +#: js/blocks/ExtrasBlocks.js:582 +msgid "display grid" msgstr "" -#: js/MediaBlocks.js:831 -msgid "image" +#: js/blocks/ExtrasBlocks.js:587 +msgid "The Display Grid Block changes the grid type" msgstr "" -#: js/MediaBlocks.js:880 -msgid "The Show block is used to display text or images on the canvas." +#: js/blocks/ExtrasBlocks.js:689 +#: js/blocks/ExtrasBlocks.js:708 +#: js/blocks/ExtrasBlocks.js:731 +#: js/blocks/ExtrasBlocks.js:754 +#: js/blocks/ExtrasBlocks.js:772 +#: js/blocks/ExtrasBlocks.js:791 +#: js/blocks/ExtrasBlocks.js:810 +#: js/blocks/ExtrasBlocks.js:829 +msgid "unknown" msgstr "" -#: js/MediaBlocks.js:888 -#.TRANS: show1 is show as in display an image or text on the screen. -msgid "show1" +#: js/blocks/FlowBlocks.js:41 +msgid "The Backward block runs code in reverse order (Musical retrograde)." msgstr "" -#: js/MediaBlocks.js:891 -msgid "obj" +#: js/blocks/FlowBlocks.js:48 +msgid "backward" msgstr "" -#: js/MediaBlocks.js:938 -msgid "The Media block is used to import an image." +#: js/blocks/FlowBlocks.js:124 +msgid "The Duplicate block will run each block multiple times." msgstr "" -#: js/MediaBlocks.js:973 -msgid "The Text block holds a text string." +#: js/blocks/FlowBlocks.js:136 +msgid "duplicate" msgstr "" -#: js/ProgramBlocks.js:33 -msgid "The Load-heap-from-app block loads the heap from a web page." +#: js/blocks/FlowBlocks.js:334 +msgid "The Default block is used inside of a Switch to define the default action." msgstr "" -#: js/ProgramBlocks.js:44 -#.TRANS: load the heap contents from a URL -msgid "load heap from App" +#: js/blocks/FlowBlocks.js:342 +msgid "default" msgstr "" -#: js/ProgramBlocks.js:95 -msgid "Error parsing JSON data:" +#: js/blocks/FlowBlocks.js:361 +#: js/blocks/FlowBlocks.js:418 +msgid "The Case Block must be used inside of a Switch Block." msgstr "" -#: js/ProgramBlocks.js:100 -msgid "404: Page not found" +#: js/blocks/FlowBlocks.js:389 +msgid "The Case block is used inside of a Switch to define matches." msgstr "" -#: js/ProgramBlocks.js:133 -msgid "The Save-heap-to-app block saves the heap to a web page." +#: js/blocks/FlowBlocks.js:397 +msgid "case" msgstr "" -#: js/ProgramBlocks.js:144 -#.TRANS: save the heap contents to a URL -msgid "save heap to App" +#: js/blocks/FlowBlocks.js:446 +msgid "The Switch block will run the code in the matching Case." msgstr "" -#: js/ProgramBlocks.js:189 -msgid "Cannot find a valid heap for" +#: js/blocks/FlowBlocks.js:454 +msgid "switch" msgstr "" -#: js/ProgramBlocks.js:206 -msgid "The Load-heap block loads the heap from a file." +#: js/blocks/FlowBlocks.js:595 +msgid "The Stop block will stop a loop" msgstr "" -#: js/ProgramBlocks.js:217 -#.TRANS: load the heap from a file -msgid "load heap" +#: js/blocks/FlowBlocks.js:597 +msgid "Forever, Repeat, While, or Until." msgstr "" -#: js/ProgramBlocks.js:270 -msgid "The file you selected does not contain a valid heap." +#: js/blocks/FlowBlocks.js:604 +#: js/widgets/timbre.js:417 +#: js/widgets/timbre.js:419 +#: js/widgets/musickeyboard.js:819 +#: js/widgets/musickeyboard.js:821 +#: js/widgets/phrasemaker.js:4202 +#: plugins/rodi.rtp:29 +#: plugins/rodi.rtp:73 +#: plugins/rodi.rtp:413 +msgid "stop" +msgstr "bokant" + +#: js/blocks/FlowBlocks.js:653 +msgid "The Waitfor block will wait until the condition is true." msgstr "" -#: js/ProgramBlocks.js:275 -msgid "The loadHeap block needs a loadFile block." +#: js/blocks/FlowBlocks.js:661 +msgid "wait for" msgstr "" -#: js/ProgramBlocks.js:291 -msgid "The Set-heap block loads the heap." +#: js/blocks/FlowBlocks.js:732 +msgid "The Until block will repeat until the condition is true." msgstr "" -#: js/ProgramBlocks.js:299 -#: js/HeapBlocks.js:539 -#.TRANS: load the heap from a JSON encoding -msgid "set heap" +#: js/blocks/FlowBlocks.js:740 +msgid "until" msgstr "" -#: js/ProgramBlocks.js:340 -msgid "The block you selected does not contain a valid heap." +#: js/blocks/FlowBlocks.js:742 +#: js/blocks/FlowBlocks.js:822 +msgid "do2" msgstr "" -#: js/ProgramBlocks.js:343 -msgid "The Set heap block needs a heap." +#: js/blocks/FlowBlocks.js:812 +msgid "The While block will repeat while the condition is true." msgstr "" -#: js/ProgramBlocks.js:360 -msgid "The Load-dictionary block loads a dictionary from a file." +#: js/blocks/FlowBlocks.js:820 +msgid "while" msgstr "" -#: js/ProgramBlocks.js:372 -#.TRANS: load a dictionary from a file -msgid "load dictionary" +#: js/blocks/FlowBlocks.js:903 +#: js/blocks/FlowBlocks.js:968 +#: js/blocks/FlowBlocks.js:979 +msgid "In this example if the mouse button is pressed a snare drum will play." msgstr "" -#: js/ProgramBlocks.js:390 -#: js/ProgramBlocks.js:658 -#: js/ToneBlocks.js:1025 -msgid "file" +#: js/blocks/FlowBlocks.js:925 +#: js/blocks/FlowBlocks.js:988 +msgid "if" +msgstr "as" + +#: js/blocks/FlowBlocks.js:927 +#: js/blocks/FlowBlocks.js:990 +msgid "then" +msgstr "dan" + +#: js/blocks/FlowBlocks.js:927 +msgid "else" +msgstr "andersins" + +#: js/blocks/FlowBlocks.js:1025 +msgid "The Forever block will repeat the contained blocks forever." msgstr "" -#: js/ProgramBlocks.js:396 -#: js/ProgramBlocks.js:501 -#: js/ProgramBlocks.js:664 -#: js/DictBlocks.js:80 -#: js/DictBlocks.js:145 -#: js/DictBlocks.js:216 -#: js/DictBlocks.js:290 -msgid "My Dictionary" +#: js/blocks/FlowBlocks.js:1037 +msgid "forever" +msgstr "vir altyd" + +#: js/blocks/FlowBlocks.js:1073 +msgid "The Repeat block will repeat the contained blocks." msgstr "" -#: js/ProgramBlocks.js:444 -msgid "The file you selected does not contain a valid dictionary." +#: js/blocks/FlowBlocks.js:1075 +msgid "In this example the note will be played 4 times." msgstr "" -#: js/ProgramBlocks.js:449 -msgid "The load dictionary block needs a load file block." +#: js/blocks/FlowBlocks.js:1083 +msgid "repeat" +msgstr "herhaal" + +#: js/blocks/FlowBlocks.js:1123 +msgid "duplicate factor" msgstr "" -#: js/ProgramBlocks.js:466 -msgid "The Set-dictionary block loads a dictionary." +#: js/blocks/HeapBlocks.js:49 +msgid "The Heap block returns the heap." msgstr "" -#: js/ProgramBlocks.js:477 -#.TRANS: load a dictionary from a JSON -msgid "set dictionary" +#: js/blocks/HeapBlocks.js:133 +msgid "show heap" +msgstr "wys die hoop" + +#: js/blocks/HeapBlocks.js:181 +msgid "The Heap-length block returns the length of the heap." msgstr "" -#: js/ProgramBlocks.js:546 -msgid "The block you selected does not contain a valid dictionary." +#: js/blocks/HeapBlocks.js:195 +msgid "heap length" msgstr "" -#: js/ProgramBlocks.js:550 -msgid "The set dictionary block needs a dictionary." +#: js/blocks/HeapBlocks.js:254 +msgid "The Heap-empty? block returns true if the heap is empty." msgstr "" -#: js/ProgramBlocks.js:567 -msgid "The Save-heap block saves the heap to a file." +#: js/blocks/HeapBlocks.js:268 +#.TRANS: Is the heap empty? +msgid "heap empty?" msgstr "" -#: js/ProgramBlocks.js:578 -#.TRANS: save the heap to a file -msgid "save heap" +#: js/blocks/HeapBlocks.js:317 +msgid "The Empty-heap block empties the heap." msgstr "" -#: js/ProgramBlocks.js:629 -msgid "The Save-dictionary block saves a dictionary to a file." +#: js/blocks/HeapBlocks.js:327 +#: js/blocks/HeapBlocks.js:647 +#.TRANS: empty the heap +msgid "empty heap" +msgstr "maak hoop skoon" + +#: js/blocks/HeapBlocks.js:371 +msgid "The Reverse-heap block reverses the order of the heap." msgstr "" -#: js/ProgramBlocks.js:640 -#.TRANS: save a dictionary to a file -msgid "save dictionary" +#: js/blocks/HeapBlocks.js:384 +#.TRANS: reverse the order of the heap +msgid "reverse heap" msgstr "" -#: js/ProgramBlocks.js:720 -msgid "The Open palette block opens a palette." +#: js/blocks/HeapBlocks.js:428 +msgid "The Index-heap block returns a value in the heap at a specified location." msgstr "" -#: js/ProgramBlocks.js:727 -msgid "open palette" +#: js/blocks/HeapBlocks.js:443 +#.TRANS: retrieve a value from the heap at index position in the heap +msgid "index heap" msgstr "" -#: js/ProgramBlocks.js:785 -msgid "The Delete block block removes a block." +#: js/blocks/HeapBlocks.js:523 +msgid "The Set-heap entry block sets a value in he heap at the specified location." msgstr "" -#: js/ProgramBlocks.js:797 -#.TRANS: Move this block to the trash. -msgid "delete block" +#: js/blocks/HeapBlocks.js:539 +#: js/blocks/ProgramBlocks.js:299 +#.TRANS: load the heap from a JSON encoding +msgid "set heap" msgstr "" -#: js/ProgramBlocks.js:861 -msgid "The Move block block moves a block." +#: js/blocks/HeapBlocks.js:619 +msgid "The Pop block removes the value at the top of the heap." msgstr "" -#: js/ProgramBlocks.js:869 -#.TRANS: Move the position of a block on the screen. -msgid "move block" +#: js/blocks/HeapBlocks.js:633 +#.TRANS: pop a value off the top of the heap +msgid "pop" +msgstr "haal af" + +#: js/blocks/HeapBlocks.js:680 +msgid "The Push block adds a value to the top of the heap." msgstr "" -#: js/ProgramBlocks.js:881 -#: js/ProgramBlocks.js:1048 -msgid "block number" +#: js/blocks/HeapBlocks.js:696 +#.TRANS: push a value onto the top of the heap +msgid "push" +msgstr "druk" + +#: js/blocks/IntervalsBlocks.js:45 +msgid "set temperament" msgstr "" -#: js/ProgramBlocks.js:935 -#.TRANS: Run program beginning at this block. -msgid "run block" +#: js/blocks/IntervalsBlocks.js:63 +#: js/blocks/MediaBlocks.js:746 +#: js/blocks/PitchBlocks.js:657 +#: js/blocks/PitchBlocks.js:935 +#: js/blocks/PitchBlocks.js:974 +#: js/blocks/PitchBlocks.js:1007 +#: js/blocks/PitchBlocks.js:1194 +#: js/blocks/PitchBlocks.js:1717 +#: js/blocks/PitchBlocks.js:1758 +#: js/blocks/PitchBlocks.js:1866 +#: js/blocks/ToneBlocks.js:1025 +#: js/turtleactions/IntervalsActions.js:114 +#.TRANS: adjusts the shift up or down by one octave (twelve half-steps in the interval between two notes, one having twice or half the frequency in Hz of the other.) +msgid "octave" msgstr "" -#: js/ProgramBlocks.js:1025 -msgid "The Dock block block connections two blocks." +#: js/blocks/IntervalsBlocks.js:99 +msgid "The Temperament name block is used to select a tuning method." msgstr "" -#: js/ProgramBlocks.js:1036 -#.TRANS: We can connect a block to another block. -msgid "connect blocks" +#: js/blocks/IntervalsBlocks.js:161 +msgid "doubly" msgstr "" -#: js/ProgramBlocks.js:1048 -msgid "target block" +#: js/blocks/IntervalsBlocks.js:166 +msgid "The Doubly block will double the size of an interval." msgstr "" -#: js/ProgramBlocks.js:1048 -msgid "connection number" +#: js/blocks/IntervalsBlocks.js:262 +msgid "interval number" msgstr "" -#: js/ProgramBlocks.js:1140 -msgid "The Make block block creates a new block." +#: js/blocks/IntervalsBlocks.js:317 +msgid "current interval" msgstr "" -#: js/ProgramBlocks.js:1152 -#.TRANS: Create a new block -msgid "make block" +#: js/blocks/IntervalsBlocks.js:387 +#.TRANS: measure the distance between two pitches in semi-tones +msgid "semi-tone interval measure" msgstr "" -#: js/ProgramBlocks.js:1186 -#: js/ProgramBlocks.js:1227 -#: js/RhythmBlocks.js:1128 -#: js/PitchBlocks.js:972 -#: js/PitchBlocks.js:1005 -#: js/temperament.js:340 -#: js/temperament.js:362 -#: js/temperament.js:372 -#: js/temperament.js:484 -#: js/status.js:190 -#: plugins/rodi.rtp:192 -#.TRANS: a musical note consisting of pitch and duration -msgid "note" +#: js/blocks/IntervalsBlocks.js:454 +#: js/blocks/IntervalsBlocks.js:570 +msgid "You must use two pitch blocks when measuring an interval." msgstr "" -#: js/ProgramBlocks.js:1285 -msgid "Cannot find block" +#: js/blocks/IntervalsBlocks.js:496 +msgid "The Scalar interval block measures the distance between two notes in the current key and mode." msgstr "" -#: js/ProgramBlocks.js:1304 -#: js/ProgramBlocks.js:1313 -msgid "Warning: block argument type mismatch" +#: js/blocks/IntervalsBlocks.js:502 +#.TRANS: measure the distance between two pitches in steps of musical scale +msgid "scalar interval measure" msgstr "" -#: js/ProgramBlocks.js:1347 -msgid "The Open project block is used to open a project from a web page." +#: js/blocks/IntervalsBlocks.js:678 +msgid "In the figure, we add sol# to sol." msgstr "" -#: js/ProgramBlocks.js:1357 -msgid "open project" +#: js/blocks/IntervalsBlocks.js:684 +#: js/blocks/OrnamentBlocks.js:220 +#.TRANS: calculate a relative step between notes based on semi-tones +msgid "semi-tone interval" msgstr "" -#: js/ProgramBlocks.js:1410 -msgid "Please enter a valid URL." +#: js/blocks/IntervalsBlocks.js:733 +msgid "The output of the example is: do, mi, sol, sol, ti, mi" msgstr "" -#: js/DrumBlocks.js:59 -msgid "The Noise name block is used to select a noise synthesizer." +#: js/blocks/IntervalsBlocks.js:740 +#: js/blocks/WidgetBlocks.js:768 +msgid "arpeggio" msgstr "" -#: js/DrumBlocks.js:102 -msgid "The Drum name block is used to select a drum." +#: js/blocks/IntervalsBlocks.js:931 +msgid "The Chord block calculates common chords." msgstr "" -#: js/DrumBlocks.js:146 -msgid "The Effects name block is used to select a sound effect." +#: js/blocks/IntervalsBlocks.js:933 +msgid "In the figure, we generate a C-major chord." msgstr "" -#: js/DrumBlocks.js:163 -msgid "noise" +#: js/blocks/IntervalsBlocks.js:938 +msgid "chord" msgstr "" -#: js/DrumBlocks.js:177 -msgid "The Play noise block will generate white, pink, or brown noise." +#: js/blocks/IntervalsBlocks.js:990 +msgid "The Ratio Interval block calculates an interval based on a ratio." msgstr "" -#: js/DrumBlocks.js:191 -#: js/musicutils.js:752 -#: js/synthutils.js:47 -#.TRANS: white noise synthesizer -msgid "white noise" +#: js/blocks/IntervalsBlocks.js:995 +msgid "ratio interval" msgstr "" -#: js/DrumBlocks.js:326 -msgid "Replace every instance of a pitch with a drum sound." +#: js/blocks/IntervalsBlocks.js:1064 +msgid "In the figure, we add la to sol." msgstr "" -#: js/DrumBlocks.js:337 -#.TRANS: map a pitch to a drum sound -msgid "map pitch to drum" +#: js/blocks/IntervalsBlocks.js:1120 +#.TRANS: define a custom mode +msgid "define mode" msgstr "" -#: js/DrumBlocks.js:404 -msgid "In the example above, a kick drum sound will be played instead of sol." +#: js/blocks/IntervalsBlocks.js:1173 +msgid "movable Do" msgstr "" -#: js/DrumBlocks.js:416 -#.TRANS: set the current drum sound for playback -msgid "set drum" +#: js/blocks/IntervalsBlocks.js:1224 +#.TRANS: mode length is the number of notes in the mode, e.g., 7 for major and minor scales; 12 for chromatic scales +msgid "mode length" msgstr "" -#: js/DrumBlocks.js:460 -msgid "sound effect" +#: js/blocks/IntervalsBlocks.js:1233 +msgid "The Mode length block is the number of notes in the current scale." msgstr "" -#: js/DrumBlocks.js:498 -msgid "You can use multiple Drum blocks within a Note block." +#: js/blocks/IntervalsBlocks.js:1235 +msgid "Most Western scales have 7 notes." msgstr "" -#: js/RhythmBlocks.js:182 -#: js/RhythmBlocks.js:1086 -#: js/RhythmBlocks.js:1162 -msgid "Note value must be greater than 0." +#: js/blocks/IntervalsBlocks.js:1284 +#.TRANS: the mode in music is 'major', 'minor', etc. +msgid "current mode" msgstr "" -#: js/RhythmBlocks.js:215 -#: js/RhythmBlocks.js:278 -#: js/RhythmBlocks.js:350 -#.TRANS: swing is a rhythmic variation that emphasises the offbeat -msgid "swing" +#: js/blocks/IntervalsBlocks.js:1337 +#.TRANS: the key is a group of pitches with which a music composition is created +msgid "current key" msgstr "" -#: js/RhythmBlocks.js:355 -#.TRANS: the amount to shift to the offbeat note -msgid "swing value" +#: js/blocks/IntervalsBlocks.js:1389 +#: js/blocks/IntervalsBlocks.js:1434 +#.TRANS: set the key and mode, e.g. C Major +msgid "set key" msgstr "" -#: js/RhythmBlocks.js:419 -msgid "The Skip notes block will cause notes to be skipped." +#: js/blocks/IntervalsBlocks.js:1443 +#: js/blocks/IntervalsBlocks.js:1449 +msgid "The Set key block is used to set the key and mode," msgstr "" -#: js/RhythmBlocks.js:427 -#.TRANS: substitute rests on notes being skipped -msgid "skip notes" +#: js/blocks/IntervalsBlocks.js:1449 +msgid "eg C Major" msgstr "" -#: js/RhythmBlocks.js:489 -#.TRANS: speed up note duration by some factor, e.g. convert 1/4 to 1/8 notes by using a factor of 2 -msgid "multiply note value" +#: js/blocks/MediaBlocks.js:35 +#.TRANS: right side of the screen +msgid "right (screen)" msgstr "" -#: js/RhythmBlocks.js:542 -msgid "The Tie block works on pairs of notes, combining them into one note." +#: js/blocks/MediaBlocks.js:45 +#: js/blocks/MediaBlocks.js:56 +msgid "The Right block returns the position of the right of the canvas." msgstr "" -#: js/RhythmBlocks.js:550 -#.TRANS: tie notes together into one longer note -msgid "tie" +#: js/blocks/MediaBlocks.js:97 +#.TRANS: left side of the screen +msgid "left (screen)" msgstr "" -#: js/RhythmBlocks.js:591 -#: js/RhythmBlocks.js:671 -#.TRANS: a dotted note is played for 1.5x its value, e.g., 1/8. --> 3/16 -msgid "dot" +#: js/blocks/MediaBlocks.js:107 +#: js/blocks/MediaBlocks.js:118 +msgid "The Left block returns the position of the left of the canvas." msgstr "" -#: js/RhythmBlocks.js:619 -#: js/RhythmActions.js:221 -msgid "An argument of -1 results in a note value of 0." +#: js/blocks/MediaBlocks.js:158 +msgid "top (screen)" msgstr "" -#: js/RhythmBlocks.js:661 -msgid "The Dot block extends the duration of a note by 50%." +#: js/blocks/MediaBlocks.js:168 +#: js/blocks/MediaBlocks.js:179 +msgid "The Top block returns the position of the top of the canvas." msgstr "" -#: js/RhythmBlocks.js:663 -msgid "Eg a dotted quarter note will play for 3/8 (1/4 + 1/8) of a beat." +#: js/blocks/MediaBlocks.js:219 +msgid "bottom (screen)" msgstr "" -#: js/RhythmBlocks.js:765 -#.TRANS: Japanese only: note value block for drum -msgid "note value drum" +#: js/blocks/MediaBlocks.js:229 +#: js/blocks/MediaBlocks.js:240 +msgid "The Bottom block returns the position of the bottom of the canvas." msgstr "" -#: js/RhythmBlocks.js:829 -msgid "392 hertz" +#: js/blocks/MediaBlocks.js:282 +msgid "width" msgstr "" -#: js/RhythmBlocks.js:1119 -msgid "The Note block is a container for one or more Pitch blocks." +#: js/blocks/MediaBlocks.js:291 +msgid "The Width block returns the width of the canvas." msgstr "" -#: js/RhythmBlocks.js:1121 -msgid "The Note block specifies the duration (note value) of its contents." +#: js/blocks/MediaBlocks.js:325 +msgid "height" msgstr "" -#: js/RhythmBlocks.js:1130 -msgid "value2" +#: js/blocks/MediaBlocks.js:334 +msgid "The Height block returns the height of the canvas." msgstr "" -#: js/RhythmBlocks.js:1200 -msgid "define frequency" +#: js/blocks/MediaBlocks.js:369 +#.TRANS: stops playback of an audio recording +msgid "stop play" msgstr "" -#: js/RhythmBlocks.js:1218 -#: js/temperament.js:650 -#: js/temperament.js:1421 -msgid "octave space" +#: js/blocks/MediaBlocks.js:404 +#.TRANS: Erases the images and text +msgid "erase media" msgstr "" -#: js/NumberBlocks.js:28 -msgid "The Int block returns an integer." +#: js/blocks/MediaBlocks.js:409 +msgid "The Erase Media block erases text and images." msgstr "" -#: js/NumberBlocks.js:34 -msgid "int" +#: js/blocks/MediaBlocks.js:439 +#.TRANS: play an audio recording +msgid "play back" msgstr "" -#: js/NumberBlocks.js:73 -msgid "The Mod block returns the remainder from a division." +#: js/blocks/MediaBlocks.js:487 +msgid "speak" msgstr "" -#: js/NumberBlocks.js:79 -msgid "mod" -msgstr "modulo" - -#: js/NumberBlocks.js:123 -msgid "The Power block calculates a power function." +#: js/blocks/MediaBlocks.js:495 +msgid "The Speak block outputs to the text-to-speech synthesizer" msgstr "" -#: js/NumberBlocks.js:178 -msgid "The Sqrt block returns the square root." +#: js/blocks/MediaBlocks.js:546 +msgid "camera" msgstr "" -#: js/NumberBlocks.js:184 -msgid "sqrt" +#: js/blocks/MediaBlocks.js:551 +msgid "The Camera block connects a webcam to the Show block." msgstr "" -#: js/NumberBlocks.js:230 -msgid "The Abs block returns the absolute value." +#: js/blocks/MediaBlocks.js:574 +msgid "video" msgstr "" -#: js/NumberBlocks.js:236 -msgid "abs" +#: js/blocks/MediaBlocks.js:579 +msgid "The Video block selects video for use with the Show block." msgstr "" -#: js/NumberBlocks.js:277 -msgid "The Distance block returns the distance between two points. For example, between the mouse and the center of the screen." +#: js/blocks/MediaBlocks.js:607 +msgid "The Open file block opens a file for use with the Show block." msgstr "" -#: js/NumberBlocks.js:283 -#: plugins/rodi.rtp:310 -msgid "distance" +#: js/blocks/MediaBlocks.js:645 +msgid "stop media" msgstr "" -#: js/NumberBlocks.js:343 -msgid "The Divide block is used to divide." +#: js/blocks/MediaBlocks.js:650 +msgid "The Stop media block stops audio or video playback." msgstr "" -#: js/NumberBlocks.js:411 -msgid "The Multiply block is used to multiply." +#: js/blocks/MediaBlocks.js:679 +#: js/blocks/PitchBlocks.js:1577 +#: js/widgets/musickeyboard.js:1936 +#: js/widgets/phrasemaker.js:1037 +#.TRANS: a measure of frequency: one cycle per second +msgid "hertz" msgstr "" -#: js/NumberBlocks.js:554 -msgid "The Minus block is used to subtract." +#: js/blocks/MediaBlocks.js:692 +#: js/blocks/WidgetBlocks.js:182 +#: js/widgets/temperament.js:506 +#: js/widgets/temperament.js:546 +#: js/widgets/temperament.js:610 +#: js/widgets/temperament.js:618 +#: js/widgets/temperament.js:1505 +#: js/widgets/timbre.js:1842 +msgid "frequency" msgstr "" -#: js/NumberBlocks.js:647 -msgid "The Plus block is used to add." +#: js/blocks/MediaBlocks.js:692 +msgid "duration (ms)" msgstr "" -#: js/NumberBlocks.js:773 -msgid "The One-of block returns one of two choices." +#: js/blocks/MediaBlocks.js:728 +#.TRANS: translate a note into hertz, e.g., A4 -> 440HZ +msgid "note to frequency" msgstr "" -#: js/NumberBlocks.js:780 -#: js/PitchBlocks.js:616 -msgid "one of" +#: js/blocks/MediaBlocks.js:736 +msgid "The To frequency block converts a pitch name and octave to Hertz." msgstr "" -#: js/NumberBlocks.js:782 -msgid "this" +#: js/blocks/MediaBlocks.js:746 +#: js/blocks/PitchBlocks.js:656 +#: js/blocks/PitchBlocks.js:934 +#: js/blocks/PitchBlocks.js:1866 +#.TRANS: name2 is name as in name of pitch (JAPANESE ONLY) +msgid "name2" msgstr "" -#: js/NumberBlocks.js:782 -msgid "that" +#: js/blocks/MediaBlocks.js:812 +msgid "The Avatar block is used to change the appearance of the mouse." msgstr "" -#: js/NumberBlocks.js:837 -msgid "The Random block returns a random number." +#: js/blocks/MediaBlocks.js:819 +msgid "The Avatar block is used to change the appearance of the turtle." msgstr "" -#: js/NumberBlocks.js:844 -msgid "random" -msgstr "ewekansig" +#: js/blocks/MediaBlocks.js:831 +#: js/blocks/MediaBlocks.js:891 +#.TRANS: a media object +msgid "size" +msgstr "" -#: js/NumberBlocks.js:846 -msgid "min" -msgstr "min" +#: js/blocks/MediaBlocks.js:831 +msgid "image" +msgstr "" -#: js/NumberBlocks.js:846 -msgid "max" -msgstr "maks" +#: js/blocks/MediaBlocks.js:880 +msgid "The Show block is used to display text or images on the canvas." +msgstr "" -#: js/NumberBlocks.js:910 -msgid "The Number block holds a number." +#: js/blocks/MediaBlocks.js:888 +#.TRANS: show1 is show as in display an image or text on the screen. +msgid "show1" msgstr "" -#: js/BoxesBlocks.js:53 -#: js/BoxesBlocks.js:59 -msgid "The Add-to block is used to add to the value stored in a box." +#: js/blocks/MediaBlocks.js:891 +msgid "obj" msgstr "" -#: js/BoxesBlocks.js:61 -msgid "It can also be used with other blocks such as Color and Pen size." +#: js/blocks/MediaBlocks.js:938 +msgid "The Media block is used to import an image." msgstr "" -#: js/BoxesBlocks.js:73 -msgid "add" +#: js/blocks/MediaBlocks.js:973 +msgid "The Text block holds a text string." msgstr "" -#: js/BoxesBlocks.js:75 -#: js/temperament.js:716 -msgid "to" +#: js/blocks/MeterBlocks.js:34 +#.TRANS: musical meter (time signature), e.g., 4:4 +msgid "current meter" msgstr "" -#: js/BoxesBlocks.js:75 -#: js/BoxesBlocks.js:595 -#: js/HeapBlocks.js:544 -msgid "value1" +#: js/blocks/MeterBlocks.js:85 +#.TRANS: number of beats per minute +msgid "beat factor" msgstr "" -#: js/BoxesBlocks.js:118 -msgid "Block does not support incrementing." +#: js/blocks/MeterBlocks.js:161 +msgid "The Beats per minute block returns the current beats per minute." msgstr "" -#: js/BoxesBlocks.js:152 -msgid "The Add-1-to block adds one to the value stored in a box." +#: js/blocks/MeterBlocks.js:169 +#: js/widgets/status.js:152 +#.TRANS: number of beats played per minute +msgid "beats per minute2" msgstr "" -#: js/BoxesBlocks.js:163 -msgid "add 1 to" +#: js/blocks/MeterBlocks.js:169 +#: js/blocks/MeterBlocks.js:1056 +#: js/blocks/MeterBlocks.js:1133 +#: js/blocks/MeterBlocks.js:1211 +#.TRANS: sets tempo by defining a beat and beats per minute +msgid "beats per minute" msgstr "" -#: js/BoxesBlocks.js:211 -msgid "The Subtract-1-from block subtracts one from the value stored in a box." +#: js/blocks/MeterBlocks.js:233 +#.TRANS: count of current musical measure in meter +msgid "measure count" msgstr "" -#: js/BoxesBlocks.js:222 -msgid "subtract 1 from" +#: js/blocks/MeterBlocks.js:241 +msgid "The Measure count block returns the current measure." msgstr "" -#: js/BoxesBlocks.js:270 -#: js/BoxesBlocks.js:387 -msgid "The Box block returns the value stored in a box." +#: js/blocks/MeterBlocks.js:290 +#.TRANS: count of current beat in the meter +msgid "beat count" msgstr "" -#: js/BoxesBlocks.js:500 -#: js/BoxesBlocks.js:576 -msgid "The Store in block will store a value in a box." +#: js/blocks/MeterBlocks.js:300 +#: js/blocks/MeterBlocks.js:311 +#: js/blocks/MeterBlocks.js:565 +#: js/blocks/MeterBlocks.js:576 +msgid "The Beat count block is the number of the current beat," msgstr "" -#: js/BoxesBlocks.js:652 -msgid "The Box2 block returns the value stored in Box2." +#: js/blocks/MeterBlocks.js:313 +#: js/blocks/MeterBlocks.js:578 +msgid "eg 1, 2, 3, or 4." msgstr "" -#: js/BoxesBlocks.js:703 -msgid "The Store in Box2 block is used to store a value in Box2." +#: js/blocks/MeterBlocks.js:368 +#.TRANS: count the number of notes +msgid "sum note values" msgstr "" -#: js/BoxesBlocks.js:715 -msgid "store in box2" +#: js/blocks/MeterBlocks.js:376 +#: js/blocks/MeterBlocks.js:440 +msgid "The Note counter block can be used to count the number of contained notes." msgstr "" -#: js/BoxesBlocks.js:761 -msgid "The Box1 block returns the value stored in Box1." +#: js/blocks/MeterBlocks.js:432 +#.TRANS: count the number of notes +msgid "note counter" msgstr "" -#: js/BoxesBlocks.js:812 -msgid "The Store in Box1 block is used to store a value in Box1." +#: js/blocks/MeterBlocks.js:496 +#.TRANS: number of whole notes that have been played +msgid "whole notes played" msgstr "" -#: js/BoxesBlocks.js:826 -msgid "store in box1" +#: js/blocks/MeterBlocks.js:505 +msgid "The Whole notes played block returns the total number of whole notes played." msgstr "" -#: js/HeapBlocks.js:49 -msgid "The Heap block returns the heap." +#: js/blocks/MeterBlocks.js:555 +#: js/turtleactions/DictActions.js:83 +#.TRANS: number of notes that have been played +msgid "notes played" msgstr "" -#: js/HeapBlocks.js:133 -msgid "show heap" -msgstr "wys die hoop" +#: js/blocks/MeterBlocks.js:653 +msgid "The No clock block decouples the notes from the master clock." +msgstr "" -#: js/HeapBlocks.js:181 -msgid "The Heap-length block returns the length of the heap." +#: js/blocks/MeterBlocks.js:661 +#.TRANS: don't lock notes to master clock +msgid "no clock" msgstr "" -#: js/HeapBlocks.js:195 -msgid "heap length" +#: js/blocks/MeterBlocks.js:700 +msgid "on weak beat do" msgstr "" -#: js/HeapBlocks.js:254 -msgid "The Heap-empty? block returns true if the heap is empty." +#: js/blocks/MeterBlocks.js:705 +msgid "The On-weak-beat block lets you specify actions to take on weak (off) beats." msgstr "" -#: js/HeapBlocks.js:268 -#.TRANS: Is the heap empty? -msgid "heap empty?" +#: js/blocks/MeterBlocks.js:750 +msgid "on strong beat" msgstr "" -#: js/HeapBlocks.js:317 -msgid "The Empty-heap block empties the heap." +#: js/blocks/MeterBlocks.js:758 +msgid "The On-strong-beat block lets you specify actions to take on specified beats." msgstr "" -#: js/HeapBlocks.js:327 -#: js/HeapBlocks.js:647 -#.TRANS: empty the heap -msgid "empty heap" -msgstr "maak hoop skoon" +#: js/blocks/MeterBlocks.js:769 +msgid "beat" +msgstr "" -#: js/HeapBlocks.js:371 -msgid "The Reverse-heap block reverses the order of the heap." +#: js/blocks/MeterBlocks.js:813 +msgid "on every beat do" msgstr "" -#: js/HeapBlocks.js:384 -#.TRANS: reverse the order of the heap -msgid "reverse heap" +#: js/blocks/MeterBlocks.js:821 +msgid "The On-every-beat block lets you specify actions to take on every beat." msgstr "" -#: js/HeapBlocks.js:428 -msgid "The Index-heap block returns a value in the heap at a specified location." +#: js/blocks/MeterBlocks.js:874 +msgid "on every note do" msgstr "" -#: js/HeapBlocks.js:443 -#.TRANS: retrieve a value from the heap at index position in the heap -msgid "index heap" +#: js/blocks/MeterBlocks.js:882 +msgid "The On-every-note block lets you specify actions to take on every note." msgstr "" -#: js/HeapBlocks.js:523 -msgid "The Set-heap entry block sets a value in he heap at the specified location." +#: js/blocks/MeterBlocks.js:928 +#: js/blocks/MeterBlocks.js:999 +#.TRANS: sets tempo by defining a beat and beats per minute +msgid "master beats per minute" msgstr "" -#: js/HeapBlocks.js:619 -msgid "The Pop block removes the value at the top of the heap." +#: js/blocks/MeterBlocks.js:952 +#: js/blocks/MeterBlocks.js:1078 +#: js/blocks/MeterBlocks.js:1135 +msgid "bpm" msgstr "" -#: js/HeapBlocks.js:633 -#.TRANS: pop a value off the top of the heap -msgid "pop" -msgstr "haal af" +#: js/blocks/MeterBlocks.js:952 +#: js/blocks/MeterBlocks.js:1078 +#: js/blocks/MeterBlocks.js:1135 +msgid "beat value" +msgstr "" -#: js/HeapBlocks.js:680 -msgid "The Push block adds a value to the top of the heap." +#: js/blocks/MeterBlocks.js:1024 +#: js/blocks/MeterBlocks.js:1167 +#: js/blocks/MeterBlocks.js:1241 +msgid "Beats per minute must be > 30." msgstr "" -#: js/HeapBlocks.js:696 -#.TRANS: push a value onto the top of the heap -msgid "push" -msgstr "druk" +#: js/blocks/MeterBlocks.js:1027 +#: js/blocks/MeterBlocks.js:1170 +#: js/blocks/MeterBlocks.js:1244 +msgid "Maximum beats per minute is 1000." +msgstr "" -#: js/FlowBlocks.js:41 -msgid "The Backward block runs code in reverse order (Musical retrograde)." +#: js/blocks/MeterBlocks.js:1068 +msgid "The Beats per minute block sets the number of 1/4 notes per minute." msgstr "" -#: js/FlowBlocks.js:48 -msgid "backward" +#: js/blocks/MeterBlocks.js:1279 +#.TRANS: anacrusis +msgid "pickup" msgstr "" -#: js/FlowBlocks.js:124 -msgid "The Duplicate block will run each block multiple times." +#: js/blocks/MeterBlocks.js:1367 +msgid "number of beats" msgstr "" -#: js/FlowBlocks.js:136 -msgid "duplicate" +#: js/blocks/NumberBlocks.js:28 +msgid "The Int block returns an integer." msgstr "" -#: js/FlowBlocks.js:334 -msgid "The Default block is used inside of a Switch to define the default action." +#: js/blocks/NumberBlocks.js:34 +msgid "int" msgstr "" -#: js/FlowBlocks.js:342 -msgid "default" +#: js/blocks/NumberBlocks.js:73 +msgid "The Mod block returns the remainder from a division." msgstr "" -#: js/FlowBlocks.js:361 -#: js/FlowBlocks.js:418 -msgid "The Case Block must be used inside of a Switch Block." +#: js/blocks/NumberBlocks.js:79 +msgid "mod" +msgstr "modulo" + +#: js/blocks/NumberBlocks.js:141 +msgid "The Power block calculates a power function." msgstr "" -#: js/FlowBlocks.js:389 -msgid "The Case block is used inside of a Switch to define matches." +#: js/blocks/NumberBlocks.js:196 +msgid "The Sqrt block returns the square root." msgstr "" -#: js/FlowBlocks.js:397 -msgid "case" +#: js/blocks/NumberBlocks.js:202 +msgid "sqrt" msgstr "" -#: js/FlowBlocks.js:446 -msgid "The Switch block will run the code in the matching Case." +#: js/blocks/NumberBlocks.js:248 +msgid "The Abs block returns the absolute value." msgstr "" -#: js/FlowBlocks.js:454 -msgid "switch" +#: js/blocks/NumberBlocks.js:254 +msgid "abs" msgstr "" -#: js/FlowBlocks.js:595 -msgid "The Stop block will stop a loop" +#: js/blocks/NumberBlocks.js:295 +msgid "The Distance block returns the distance between two points. For example, between the mouse and the center of the screen." msgstr "" -#: js/FlowBlocks.js:597 -msgid "Forever, Repeat, While, or Until." +#: js/blocks/NumberBlocks.js:301 +#: plugins/rodi.rtp:310 +msgid "distance" msgstr "" -#: js/FlowBlocks.js:604 -#: js/phrasemaker.js:3799 -#: js/musickeyboard.js:629 -#: js/musickeyboard.js:631 -#: js/timbre.js:417 -#: js/timbre.js:419 -#: plugins/rodi.rtp:29 -#: plugins/rodi.rtp:73 -#: plugins/rodi.rtp:413 -msgid "stop" -msgstr "bokant" +#: js/blocks/NumberBlocks.js:361 +msgid "The Divide block is used to divide." +msgstr "" -#: js/FlowBlocks.js:653 -msgid "The Waitfor block will wait until the condition is true." +#: js/blocks/NumberBlocks.js:441 +msgid "The Multiply block is used to multiply." msgstr "" -#: js/FlowBlocks.js:661 -msgid "wait for" +#: js/blocks/NumberBlocks.js:612 +msgid "The Minus block is used to subtract." msgstr "" -#: js/FlowBlocks.js:732 -msgid "The Until block will repeat until the condition is true." +#: js/blocks/NumberBlocks.js:723 +msgid "The Plus block is used to add." msgstr "" -#: js/FlowBlocks.js:740 -msgid "until" +#: js/blocks/NumberBlocks.js:849 +msgid "The One-of block returns one of two choices." msgstr "" -#: js/FlowBlocks.js:742 -#: js/FlowBlocks.js:822 -msgid "do2" +#: js/blocks/NumberBlocks.js:856 +#: js/blocks/PitchBlocks.js:616 +msgid "one of" msgstr "" -#: js/FlowBlocks.js:812 -msgid "The While block will repeat while the condition is true." +#: js/blocks/NumberBlocks.js:858 +msgid "this" msgstr "" -#: js/FlowBlocks.js:820 -msgid "while" +#: js/blocks/NumberBlocks.js:858 +msgid "that" msgstr "" -#: js/FlowBlocks.js:903 -#: js/FlowBlocks.js:968 -#: js/FlowBlocks.js:979 -msgid "In this example if the mouse button is pressed a snare drum will play." +#: js/blocks/NumberBlocks.js:913 +msgid "The Random block returns a random number." msgstr "" -#: js/FlowBlocks.js:925 -#: js/FlowBlocks.js:988 -msgid "if" -msgstr "as" +#: js/blocks/NumberBlocks.js:920 +msgid "random" +msgstr "ewekansig" -#: js/FlowBlocks.js:927 -#: js/FlowBlocks.js:990 -msgid "then" -msgstr "dan" +#: js/blocks/NumberBlocks.js:922 +msgid "min" +msgstr "min" -#: js/FlowBlocks.js:927 -msgid "else" -msgstr "andersins" +#: js/blocks/NumberBlocks.js:922 +msgid "max" +msgstr "maks" -#: js/FlowBlocks.js:1025 -msgid "The Forever block will repeat the contained blocks forever." +#: js/blocks/NumberBlocks.js:986 +msgid "The Number block holds a number." msgstr "" -#: js/FlowBlocks.js:1037 -msgid "forever" -msgstr "vir altyd" - -#: js/FlowBlocks.js:1073 -msgid "The Repeat block will repeat the contained blocks." +#: js/blocks/OrnamentBlocks.js:32 +msgid "staccato factor" msgstr "" -#: js/FlowBlocks.js:1075 -msgid "In this example the note will be played 4 times." +#: js/blocks/OrnamentBlocks.js:108 +msgid "slur factor" msgstr "" -#: js/FlowBlocks.js:1083 -msgid "repeat" -msgstr "herhaal" - -#: js/FlowBlocks.js:1123 -msgid "duplicate factor" +#: js/blocks/OrnamentBlocks.js:217 +#: js/blocks/OrnamentBlocks.js:309 +#.TRANS: the neighbor refers to a neighboring note, e.g., D is a neighbor of C +msgid "neighbor" msgstr "" -#: js/PitchBlocks.js:39 -#: js/musicutils.js:722 -#: js/musicutils.js:1117 -#: js/synthutils.js:112 -#.TRANS: square wave -msgid "square" +#: js/blocks/OrnamentBlocks.js:293 +msgid "The Neighbor block rapidly switches between neighboring pitches." msgstr "" -#: js/PitchBlocks.js:62 -#: js/ToneBlocks.js:39 -#: js/musicutils.js:723 -#: js/musicutils.js:1118 -#: js/synthutils.js:116 -#.TRANS: triangle wave -msgid "triangle" +#: js/blocks/OrnamentBlocks.js:364 +msgid "glide" msgstr "" -#: js/PitchBlocks.js:85 -#: js/musicutils.js:721 -#: js/musicutils.js:1116 -#: js/synthutils.js:110 -#.TRANS: sine wave -msgid "sine" +#: js/blocks/OrnamentBlocks.js:479 +#: js/blocks/OrnamentBlocks.js:643 +msgid "slur" msgstr "" -#: js/PitchBlocks.js:108 -#: js/musicutils.js:724 -#: js/musicutils.js:1119 -#: js/synthutils.js:114 -#.TRANS: sawtooth wave -msgid "sawtooth" +#: js/blocks/OrnamentBlocks.js:558 +#: js/blocks/OrnamentBlocks.js:710 +#.TRANS: play each note sharply detached from the others +msgid "staccato" msgstr "" -#: js/PitchBlocks.js:141 -#.TRANS: musical transposition (adjustment of pitch up or down) -msgid "transposition" +#: js/blocks/RhythmBlocks.js:182 +#: js/blocks/RhythmBlocks.js:1086 +#: js/blocks/RhythmBlocks.js:1162 +msgid "Note value must be greater than 0." msgstr "" -#: js/PitchBlocks.js:168 -#.TRANS: step down one note in current musical scale -msgid "scalar step down" +#: js/blocks/RhythmBlocks.js:215 +#: js/blocks/RhythmBlocks.js:278 +#: js/blocks/RhythmBlocks.js:350 +#.TRANS: swing is a rhythmic variation that emphasises the offbeat +msgid "swing" msgstr "" -#: js/PitchBlocks.js:172 -msgid "The Scalar step down block returns the number of semi-tones down to the previous note in the current key and mode." +#: js/blocks/RhythmBlocks.js:355 +#.TRANS: the amount to shift to the offbeat note +msgid "swing value" msgstr "" -#: js/PitchBlocks.js:190 -#.TRANS: step up one note in current musical scale -msgid "scalar step up" +#: js/blocks/RhythmBlocks.js:419 +msgid "The Skip notes block will cause notes to be skipped." msgstr "" -#: js/PitchBlocks.js:194 -msgid "The Scalar step up block returns the number of semi-tones up to the next note in the current key and mode." +#: js/blocks/RhythmBlocks.js:427 +#.TRANS: substitute rests on notes being skipped +msgid "skip notes" msgstr "" -#: js/PitchBlocks.js:212 -#.TRANS: the change measured in half-steps between the current pitch and the previous pitch -msgid "change in pitch" +#: js/blocks/RhythmBlocks.js:489 +#.TRANS: speed up note duration by some factor, e.g. convert 1/4 to 1/8 notes by using a factor of 2 +msgid "multiply note value" msgstr "" -#: js/PitchBlocks.js:216 -msgid "The Change in pitch block is the difference (in half steps) between the current pitch being played and the previous pitch played." +#: js/blocks/RhythmBlocks.js:542 +msgid "The Tie block works on pairs of notes, combining them into one note." msgstr "" -#: js/PitchBlocks.js:243 -#.TRANS: the change measured in scale-steps between the current pitch and the previous pitch -msgid "scalar change in pitch" +#: js/blocks/RhythmBlocks.js:550 +#.TRANS: tie notes together into one longer note +msgid "tie" msgstr "" -#: js/PitchBlocks.js:250 -#: js/PitchBlocks.js:432 -#: js/PitchBlocks.js:1629 -#: js/DictActions.js:89 -#: js/temperament.js:477 -#: js/temperament.js:481 -#: js/temperament.js:714 -#.TRANS: convert current note to piano key (1-88) -#.TRANS: a mapping of pitch to the 88 piano keys -msgid "pitch number" +#: js/blocks/RhythmBlocks.js:591 +#: js/blocks/RhythmBlocks.js:671 +#.TRANS: a dotted note is played for 1.5x its value, e.g., 1/8. --> 3/16 +msgid "dot" msgstr "" -#: js/PitchBlocks.js:256 -msgid "The Pitch number block is the value of the pitch of the note currently being played." +#: js/blocks/RhythmBlocks.js:619 +#: js/turtleactions/RhythmActions.js:221 +msgid "An argument of -1 results in a note value of 0." msgstr "" -#: js/PitchBlocks.js:329 -#: js/PitchBlocks.js:433 -#.TRANS: the current pitch expressed in Hertz -msgid "pitch in hertz" +#: js/blocks/RhythmBlocks.js:661 +msgid "The Dot block extends the duration of a note by 50%." msgstr "" -#: js/PitchBlocks.js:334 -msgid "The Pitch in Hertz block is the value in Hertz of the pitch of the note currently being played." +#: js/blocks/RhythmBlocks.js:663 +msgid "Eg a dotted quarter note will play for 3/8 (1/4 + 1/8) of a beat." msgstr "" -#: js/PitchBlocks.js:367 -#: js/DictActions.js:87 -msgid "current pitch" +#: js/blocks/RhythmBlocks.js:765 +#.TRANS: Japanese only: note value block for drum +msgid "note value drum" msgstr "" -#: js/PitchBlocks.js:373 -msgid "The Current Pitch block is used with the Pitch Converter block. In the example above, current pitch, sol 4, is displayed as 392 hertz." +#: js/blocks/RhythmBlocks.js:829 +msgid "392 hertz" msgstr "" -#: js/PitchBlocks.js:410 -msgid "This block converts the pitch value of the last note played into different formats such as hertz, letter name, pitch number, et al." +#: js/blocks/RhythmBlocks.js:1119 +msgid "The Note block is a container for one or more Pitch blocks." msgstr "" -#: js/PitchBlocks.js:434 -msgid "alphabet" +#: js/blocks/RhythmBlocks.js:1121 +msgid "The Note block specifies the duration (note value) of its contents." msgstr "" -#: js/PitchBlocks.js:436 -#.TRANS: Translate as "alphabet class" -msgid "letter class" +#: js/blocks/RhythmBlocks.js:1128 +#: js/blocks/PitchBlocks.js:974 +#: js/blocks/PitchBlocks.js:1007 +#: js/blocks/ProgramBlocks.js:1186 +#: js/blocks/ProgramBlocks.js:1227 +#: js/widgets/status.js:190 +#: js/widgets/temperament.js:464 +#: js/widgets/temperament.js:486 +#: js/widgets/temperament.js:496 +#: js/widgets/temperament.js:617 +#: plugins/rodi.rtp:192 +#.TRANS: a musical note consisting of pitch and duration +msgid "note" msgstr "" -#: js/PitchBlocks.js:437 -msgid "solfege class" +#: js/blocks/RhythmBlocks.js:1130 +msgid "value2" msgstr "" -#: js/PitchBlocks.js:438 -msgid "staff y" +#: js/blocks/RhythmBlocks.js:1200 +msgid "define frequency" msgstr "" -#: js/PitchBlocks.js:439 -msgid "solfege syllable" +#: js/blocks/RhythmBlocks.js:1218 +#: js/widgets/temperament.js:787 +#: js/widgets/temperament.js:1587 +msgid "octave space" msgstr "" -#: js/PitchBlocks.js:440 -msgid "pitch class" +#: js/blocks/SensorsBlocks.js:36 +msgid "The Input block prompts for keyboard input." msgstr "" -#: js/PitchBlocks.js:441 -msgid "scalar class" +#: js/blocks/SensorsBlocks.js:46 +msgid "input" msgstr "" -#: js/PitchBlocks.js:443 -msgid "nth degree" +#: js/blocks/SensorsBlocks.js:64 +msgid "Input a value" msgstr "" -#: js/PitchBlocks.js:444 -msgid "pitch to shade" +#: js/blocks/SensorsBlocks.js:126 +msgid "input value" msgstr "" -#: js/PitchBlocks.js:445 -msgid "pitch to color" +#: js/blocks/SensorsBlocks.js:131 +msgid "The Input-value block stores the input." msgstr "" -#: js/PitchBlocks.js:629 -#: js/musickeyboard.js:565 -#.TRANS: MIDI is a technical standard for electronic music -msgid "MIDI" +#: js/blocks/SensorsBlocks.js:238 +msgid "loudness" msgstr "" -#: js/PitchBlocks.js:642 -#.TRANS: set an offset associated with the numeric piano keyboard mapping -msgid "set pitch number offset" +#: js/blocks/SensorsBlocks.js:245 +msgid "The Loudness block returns the volume detected by the microphone." msgstr "" -#: js/PitchBlocks.js:645 -msgid "The Set pitch number offset block is used to set the offset for mapping pitch numbers to pitch and octave." +#: js/blocks/SensorsBlocks.js:300 +msgid "click" msgstr "" -#: js/PitchBlocks.js:679 -#.TRANS: convert piano key number (1-88) to pitch -msgid "number to pitch" +#: js/blocks/SensorsBlocks.js:306 +msgid "The Click block triggers an event if a mouse has been clicked." msgstr "" -#: js/PitchBlocks.js:682 -msgid "The Number to pitch block will convert a pitch number to a pich name." +#: js/blocks/SensorsBlocks.js:313 +msgid "The Click block triggers an event if a turtle has been clicked." msgstr "" -#: js/PitchBlocks.js:715 -#.TRANS: convert piano key number (1-88) to octave -msgid "number to octave" +#: js/blocks/SensorsBlocks.js:342 +msgid "cursor over" msgstr "" -#: js/PitchBlocks.js:717 -msgid "The Number to octave block will convert a pitch number to an octave." +#: js/blocks/SensorsBlocks.js:387 +msgid "cursor out" msgstr "" -#: js/PitchBlocks.js:726 -msgid "y to pitch" +#: js/blocks/SensorsBlocks.js:433 +msgid "cursor button down" msgstr "" -#: js/PitchBlocks.js:729 -msgid "Y to pitch block will convert a staff y position to corresponding pitch notation." +#: js/blocks/SensorsBlocks.js:477 +msgid "cursor button up" msgstr "" -#: js/PitchBlocks.js:841 -msgid "accidental selector" +#: js/blocks/SensorsBlocks.js:521 +#: js/blocks/PenBlocks.js:48 +#: plugins/rodi.rtp:219 +msgid "blue" msgstr "" -#: js/PitchBlocks.js:844 -msgid "The Accidental selector block is used to choose between double-sharp, sharp, natural, flat, and double-flat." +#: js/blocks/SensorsBlocks.js:577 +#: js/blocks/PenBlocks.js:64 +#: plugins/rodi.rtp:218 +msgid "green" msgstr "" -#: js/PitchBlocks.js:858 -msgid "Pitch can be specified in terms of ni dha pa ma ga re sa." +#: js/blocks/SensorsBlocks.js:633 +#: js/blocks/PenBlocks.js:112 +#: plugins/rodi.rtp:217 +msgid "red" msgstr "" -#: js/PitchBlocks.js:872 -msgid "Pitch can be specified in terms of C D E F G A B." +#: js/blocks/SensorsBlocks.js:638 +msgid "The Get red block returns the red component of the pixel under the mouse." msgstr "" -#: js/PitchBlocks.js:883 -msgid "solfege" +#: js/blocks/SensorsBlocks.js:644 +msgid "The Get red block returns the red component of the pixel under the turtle." msgstr "" -#: js/PitchBlocks.js:886 -msgid "Pitch can be specified in terms of do re mi fa sol la ti." +#: js/blocks/SensorsBlocks.js:685 +#: plugins/rodi.rtp:216 +msgid "pixel color" msgstr "" -#: js/PitchBlocks.js:920 -msgid "The Invert block rotates any contained notes around a target note." +#: js/blocks/SensorsBlocks.js:690 +msgid "The Get pixel block returns the color of the pixel under the mouse." msgstr "" -#: js/PitchBlocks.js:927 -#.TRANS: pitch inversion rotates a pitch around another pitch -msgid "invert" +#: js/blocks/SensorsBlocks.js:696 +msgid "The Get pixel block returns the color of the pixel under the turtle." msgstr "" -#: js/PitchBlocks.js:929 -#: js/PitchBlocks.js:935 -#: js/PitchActions.js:727 -#: js/musicutils.js:726 -#: js/musicutils.js:902 -#.TRANS: invert based on even or odd number or musical scale -#.TRANS: even numbers -msgid "even" +#: js/blocks/SensorsBlocks.js:758 +msgid "time" msgstr "" -#: js/PitchBlocks.js:935 -#: js/PitchActions.js:729 -#: js/musicutils.js:728 -#: js/musicutils.js:903 -#.TRANS: odd numbers -msgid "odd" +#: js/blocks/SensorsBlocks.js:804 +msgid "cursor y" msgstr "" -#: js/PitchBlocks.js:935 -#: js/PitchActions.js:731 -#: js/musicutils.js:729 -#: js/musicutils.js:904 -msgid "scalar" +#: js/blocks/SensorsBlocks.js:809 +msgid "The Cursor Y block returns the vertical position of the mouse." msgstr "" -#: js/PitchBlocks.js:966 -#.TRANS: pitch inversion rotates a pitch around another pitch (odd number) -msgid "invert (odd)" +#: js/blocks/SensorsBlocks.js:845 +msgid "cursor x" msgstr "" -#: js/PitchBlocks.js:999 -#.TRANS: pitch inversion rotates a pitch around another pitch (even number) -msgid "invert (even)" +#: js/blocks/SensorsBlocks.js:850 +msgid "The Cursor X block returns the horizontal position of the mouse." msgstr "" -#: js/PitchBlocks.js:1020 -#.TRANS: register is the octave of the current pitch -msgid "register" +#: js/blocks/SensorsBlocks.js:886 +msgid "mouse button" msgstr "" -#: js/PitchBlocks.js:1024 -msgid "The Register block provides an easy way to modify the register (octave) of the notes that follow it." +#: js/blocks/SensorsBlocks.js:888 +msgid "The Mouse-button block returns True if the mouse button is pressed." msgstr "" -#: js/PitchBlocks.js:1074 -msgid "The Semi-tone transposition block will shift the pitches contained inside Note blocks up (or down) by half steps." +#: js/blocks/SensorsBlocks.js:934 +msgid "to ASCII" msgstr "" -#: js/PitchBlocks.js:1076 -msgid "In the example shown above, sol is shifted up to sol#." +#: js/blocks/SensorsBlocks.js:938 +msgid "The To ASCII block converts numbers to letters." msgstr "" -#: js/PitchBlocks.js:1082 -#.TRANS: adjust the amount of shift (up or down) of a pitch -msgid "semi-tone transpose" +#: js/blocks/SensorsBlocks.js:1005 +msgid "The Keyboard block returns computer keyboard input." msgstr "" -#: js/PitchBlocks.js:1115 -msgid "The Transpose by Ratio block will shift the pitches contained inside Note blocks up (or down) by a ratio" +#: js/blocks/RhythmBlockPaletteBlocks.js:50 +#: js/blocks/RhythmBlockPaletteBlocks.js:233 +#.TRANS: rhythm block +#.TRANS: translate "rhythm1" as rhythm +msgid "rhythm1" msgstr "" -#: js/PitchBlocks.js:1121 -#.TRANS: adjust the amount of shift (up or down) of a pitch -msgid "transpose by ratio" +#: js/blocks/RhythmBlockPaletteBlocks.js:70 +#: js/blocks/RhythmBlockPaletteBlocks.js:252 +#: js/blocks/RhythmBlockPaletteBlocks.js:485 +#: js/blocks/RhythmBlockPaletteBlocks.js:554 +#: js/blocks/RhythmBlockPaletteBlocks.js:875 +msgid "number of notes" msgstr "" -#: js/PitchBlocks.js:1204 -#.TRANS: down sixth means the note is five scale degrees below current note -msgid "down sixth" +#: js/blocks/RhythmBlockPaletteBlocks.js:126 +msgid "polyphonic rhythm" msgstr "" -#: js/PitchBlocks.js:1223 -#.TRANS: down third means the note is two scale degrees below current note -msgid "down third" +#: js/blocks/RhythmBlockPaletteBlocks.js:219 +msgid "The Rhythm block is used to generate rhythm patterns." msgstr "" -#: js/PitchBlocks.js:1242 -#.TRANS: seventh means the note is the six scale degrees above current note -msgid "seventh" +#: js/blocks/RhythmBlockPaletteBlocks.js:280 +msgid "1/64 note" msgstr "" -#: js/PitchBlocks.js:1261 -#.TRANS: sixth means the note is the five scale degrees above current note -msgid "sixth" +#: js/blocks/RhythmBlockPaletteBlocks.js:304 +msgid "1/32 note" msgstr "" -#: js/PitchBlocks.js:1280 -#.TRANS: fifth means the note is the four scale degrees above current note -msgid "fifth" +#: js/blocks/RhythmBlockPaletteBlocks.js:332 +msgid "1/16 note" msgstr "" -#: js/PitchBlocks.js:1300 -#.TRANS: fourth means the note is three scale degrees above current note -msgid "fourth" +#: js/blocks/RhythmBlockPaletteBlocks.js:360 +msgid "eighth note" msgstr "" -#: js/PitchBlocks.js:1319 -#.TRANS: third means the note is two scale degrees above current note -msgid "third" +#: js/blocks/RhythmBlockPaletteBlocks.js:388 +msgid "quarter note" msgstr "" -#: js/PitchBlocks.js:1338 -#.TRANS: second means the note is one scale degree above current note -msgid "second" +#: js/blocks/RhythmBlockPaletteBlocks.js:416 +msgid "half note" msgstr "" -#: js/PitchBlocks.js:1379 -msgid "The Scalar transposition block will shift the pitches contained inside Note blocks up (or down) the scale." +#: js/blocks/RhythmBlockPaletteBlocks.js:444 +msgid "whole note" msgstr "" -#: js/PitchBlocks.js:1381 -msgid "In the example shown above, sol is shifted up to la." +#: js/blocks/RhythmBlockPaletteBlocks.js:482 +#: js/blocks/RhythmBlockPaletteBlocks.js:551 +#: js/blocks/RhythmBlockPaletteBlocks.js:602 +#.TRANS: A tuplet is a note value divided into irregular time values. +msgid "tuplet" msgstr "" -#: js/PitchBlocks.js:1388 -#.TRANS: adjust the amount of shift (up or down) of a pitch by musical scale (scalar) steps -msgid "scalar transpose" +#: js/blocks/RhythmBlockPaletteBlocks.js:768 +msgid "septuplet" msgstr "" -#: js/PitchBlocks.js:1423 -msgid "The Accidental block is used to create sharps and flats" +#: js/blocks/RhythmBlockPaletteBlocks.js:796 +msgid "quintuplet" msgstr "" -#: js/PitchBlocks.js:1430 -#.TRANS: An accidental is a modification to a pitch, e.g., sharp or flat. -msgid "accidental override" +#: js/blocks/RhythmBlockPaletteBlocks.js:824 +msgid "triplet" msgstr "" -#: js/PitchBlocks.js:1543 -msgid "The Hertz block (in combination with a Number block) will play a sound at the specified frequency." +#: js/blocks/RhythmBlockPaletteBlocks.js:851 +msgid "simple tuplet" msgstr "" -#: js/PitchBlocks.js:1633 -msgid "The Pitch Number block will play a pitch associated by its number, e.g. 0 for C and 7 for G." +#: js/blocks/RhythmBlockPaletteBlocks.js:861 +msgid "Tuplets are a collection of notes that get scaled to a specific duration." msgstr "" -#: js/PitchBlocks.js:1665 -#: js/PitchBlocks.js:1707 -#.TRANS: a numeric mapping of the notes in an octave based on the musical mode -#.TRANS: a numeric mapping of the notes in an octave based on the musical mode -msgid "nth modal pitch" +#: js/blocks/DrumBlocks.js:59 +msgid "The Noise name block is used to select a noise synthesizer." msgstr "" -#: js/PitchBlocks.js:1668 -msgid "n^th Modal Pitch takes the pattern of pitches in semitones for a mode and makes each point a degree of the mode," +#: js/blocks/DrumBlocks.js:102 +msgid "The Drum name block is used to select a drum." msgstr "" -#: js/PitchBlocks.js:1670 -msgid "starting from 1 and regardless of tonal framework (i.e. not always 8 notes in the octave)" +#: js/blocks/DrumBlocks.js:146 +msgid "The Effects name block is used to select a sound effect." msgstr "" -#: js/PitchBlocks.js:1711 -msgid "N^th Modal Pitch takes a number as an input as the n^th degree for the given mode. 0 is the first position, 1 is the second, -1 is the note before the first etc." +#: js/blocks/DrumBlocks.js:163 +msgid "noise" msgstr "" -#: js/PitchBlocks.js:1713 -msgid "The pitches change according to the mode specified without any need for respellings." +#: js/blocks/DrumBlocks.js:177 +msgid "The Play noise block will generate white, pink, or brown noise." msgstr "" -#: js/PitchBlocks.js:1752 -msgid "Scale Degree is a common convention in music. Scale Degree offers seven possible positions in the scale (1-7) and can be modified via accidentals." +#: js/blocks/DrumBlocks.js:317 +msgid "Replace every instance of a pitch with a drum sound." msgstr "" -#: js/PitchBlocks.js:1754 -msgid "Scale Degree 1 is always the first pitch in a given scale, regardless of octave." +#: js/blocks/DrumBlocks.js:328 +#.TRANS: map a pitch to a drum sound +msgid "map pitch to drum" msgstr "" -#: js/PitchBlocks.js:1776 -#.TRANS: step some number of notes in current musical scale -msgid "scalar step" +#: js/blocks/DrumBlocks.js:395 +msgid "In the example above, a kick drum sound will be played instead of sol." msgstr "" -#: js/PitchBlocks.js:1781 -msgid "The Scalar Step block (in combination with a Number block) will play the next pitch in a scale," +#: js/blocks/DrumBlocks.js:407 +#.TRANS: set the current drum sound for playback +msgid "set drum" msgstr "" -#: js/PitchBlocks.js:1783 -msgid "eg if the last note played was sol, Scalar Step 1 will play la." +#: js/blocks/DrumBlocks.js:451 +msgid "sound effect" msgstr "" -#: js/PitchBlocks.js:1818 -msgid "The Pitch block specifies the pitch name and octave of a note that together determine the frequency of the note." +#: js/blocks/DrumBlocks.js:489 +msgid "You can use multiple Drum blocks within a Note block." msgstr "" -#: js/GraphicsBlocks.js:46 -#: js/DictActions.js:77 -#: js/DictActions.js:155 -#: js/DictActions.js:189 +#: js/blocks/GraphicsBlocks.js:46 +#: js/turtleactions/DictActions.js:77 +#: js/turtleactions/DictActions.js:144 +#: js/turtleactions/DictActions.js:173 msgid "heading" msgstr "rigting" -#: js/GraphicsBlocks.js:56 +#: js/blocks/GraphicsBlocks.js:56 msgid "The Heading block returns the orientation of the mouse." msgstr "" -#: js/GraphicsBlocks.js:62 +#: js/blocks/GraphicsBlocks.js:62 msgid "The Heading block returns the orientation of the turtle." msgstr "" -#: js/GraphicsBlocks.js:133 +#: js/blocks/GraphicsBlocks.js:133 msgid "The Y block returns the vertical position of the mouse." msgstr "" -#: js/GraphicsBlocks.js:140 +#: js/blocks/GraphicsBlocks.js:140 msgid "The Y block returns the vertical position of the turtle." msgstr "" -#: js/GraphicsBlocks.js:149 +#: js/blocks/GraphicsBlocks.js:149 msgid "y3" msgstr "" -#: js/GraphicsBlocks.js:219 +#: js/blocks/GraphicsBlocks.js:219 msgid "The X block returns the horizontal position of the mouse." msgstr "" -#: js/GraphicsBlocks.js:226 +#: js/blocks/GraphicsBlocks.js:226 msgid "The X block returns the horizontal position of the turtle." msgstr "" -#: js/GraphicsBlocks.js:235 +#: js/blocks/GraphicsBlocks.js:235 msgid "x3" msgstr "" -#: js/GraphicsBlocks.js:295 +#: js/blocks/GraphicsBlocks.js:295 msgid "scroll xy" msgstr "" -#: js/GraphicsBlocks.js:303 +#: js/blocks/GraphicsBlocks.js:303 msgid "The Scroll XY block moves the canvas." msgstr "" -#: js/GraphicsBlocks.js:313 +#: js/blocks/GraphicsBlocks.js:313 msgid "x2" msgstr "" -#: js/GraphicsBlocks.js:313 +#: js/blocks/GraphicsBlocks.js:313 msgid "y2" msgstr "" -#: js/GraphicsBlocks.js:373 -#: js/temperament.js:213 -#: js/temperament.js:241 +#: js/blocks/GraphicsBlocks.js:373 +#: js/widgets/temperament.js:319 +#: js/widgets/temperament.js:347 msgid "clear" msgstr "" -#: js/GraphicsBlocks.js:426 +#: js/blocks/GraphicsBlocks.js:426 msgid "The Control-point 2 block sets the second control point for the Bezier curve." msgstr "" -#: js/GraphicsBlocks.js:433 +#: js/blocks/GraphicsBlocks.js:433 msgid "control point 2" msgstr "" -#: js/GraphicsBlocks.js:436 -#: js/GraphicsBlocks.js:487 -#: js/GraphicsBlocks.js:534 -#: js/GraphicsBlocks.js:750 +#: js/blocks/GraphicsBlocks.js:436 +#: js/blocks/GraphicsBlocks.js:487 +#: js/blocks/GraphicsBlocks.js:534 +#: js/blocks/GraphicsBlocks.js:750 msgid "x1" msgstr "" -#: js/GraphicsBlocks.js:436 -#: js/GraphicsBlocks.js:487 -#: js/GraphicsBlocks.js:534 -#: js/GraphicsBlocks.js:750 +#: js/blocks/GraphicsBlocks.js:436 +#: js/blocks/GraphicsBlocks.js:487 +#: js/blocks/GraphicsBlocks.js:534 +#: js/blocks/GraphicsBlocks.js:750 msgid "y1" msgstr "" -#: js/GraphicsBlocks.js:477 +#: js/blocks/GraphicsBlocks.js:477 msgid "The Control-point 1 block sets the first control point for the Bezier curve." msgstr "" -#: js/GraphicsBlocks.js:484 +#: js/blocks/GraphicsBlocks.js:484 msgid "control point 1" msgstr "" -#: js/GraphicsBlocks.js:527 +#: js/blocks/GraphicsBlocks.js:527 msgid "The Bezier block draws a Bezier curve." msgstr "" -#: js/GraphicsBlocks.js:531 +#: js/blocks/GraphicsBlocks.js:531 msgid "bezier" msgstr "" -#: js/GraphicsBlocks.js:592 +#: js/blocks/GraphicsBlocks.js:592 msgid "The Arc block moves the turtle in an arc." msgstr "" -#: js/GraphicsBlocks.js:600 +#: js/blocks/GraphicsBlocks.js:600 msgid "arc" msgstr "boog" -#: js/GraphicsBlocks.js:603 +#: js/blocks/GraphicsBlocks.js:603 msgid "angle" msgstr "hoek" -#: js/GraphicsBlocks.js:603 +#: js/blocks/GraphicsBlocks.js:603 msgid "radius" msgstr "radius" -#: js/GraphicsBlocks.js:620 -#: js/GraphicsBlocks.js:767 -#: js/GraphicsBlocks.js:1010 -#: js/GraphicsBlocks.js:1093 +#: js/blocks/GraphicsBlocks.js:620 +#: js/blocks/GraphicsBlocks.js:767 +#: js/blocks/GraphicsBlocks.js:1010 +#: js/blocks/GraphicsBlocks.js:1093 msgid "Value must be within -5000 to 5000 when Wrap Mode is off." msgstr "" -#: js/GraphicsBlocks.js:622 -#: js/GraphicsBlocks.js:769 -#: js/GraphicsBlocks.js:1012 -#: js/GraphicsBlocks.js:1095 +#: js/blocks/GraphicsBlocks.js:622 +#: js/blocks/GraphicsBlocks.js:769 +#: js/blocks/GraphicsBlocks.js:1012 +#: js/blocks/GraphicsBlocks.js:1095 msgid "Value must be within -20000 to 20000 when Wrap Mode is on." msgstr "" -#: js/GraphicsBlocks.js:660 +#: js/blocks/GraphicsBlocks.js:660 msgid "set heading" msgstr "stel rigting" -#: js/GraphicsBlocks.js:673 +#: js/blocks/GraphicsBlocks.js:673 msgid "The Set heading block sets the heading of the turtle." msgstr "" -#: js/GraphicsBlocks.js:733 +#: js/blocks/GraphicsBlocks.js:733 msgid "The Set XY block moves the mouse to a specific position on the screen." msgstr "" -#: js/GraphicsBlocks.js:739 +#: js/blocks/GraphicsBlocks.js:739 msgid "The Set XY block moves the turtle to a specific position on the screen." msgstr "" -#: js/GraphicsBlocks.js:747 +#: js/blocks/GraphicsBlocks.js:747 msgid "set xy" msgstr "stel xy" -#: js/GraphicsBlocks.js:819 +#: js/blocks/GraphicsBlocks.js:819 msgid "The Right block turns the mouse to the right." msgstr "" -#: js/GraphicsBlocks.js:826 +#: js/blocks/GraphicsBlocks.js:826 msgid "The Right block turns the turtle to the right." msgstr "" -#: js/GraphicsBlocks.js:835 +#: js/blocks/GraphicsBlocks.js:835 msgid "right1" msgstr "" -#: js/GraphicsBlocks.js:835 +#: js/blocks/GraphicsBlocks.js:835 #: plugins/rodi.rtp:77 #: plugins/rodi.rtp:340 #: plugins/rodi.rtp:375 msgid "right" msgstr "regs" -#: js/GraphicsBlocks.js:899 +#: js/blocks/GraphicsBlocks.js:899 msgid "The Left block turns the mouse to the left." msgstr "" -#: js/GraphicsBlocks.js:906 +#: js/blocks/GraphicsBlocks.js:906 msgid "The Left block turns the turtle to the left." msgstr "" -#: js/GraphicsBlocks.js:915 +#: js/blocks/GraphicsBlocks.js:915 msgid "left1" msgstr "" -#: js/GraphicsBlocks.js:915 +#: js/blocks/GraphicsBlocks.js:915 #: plugins/rodi.rtp:79 #: plugins/rodi.rtp:339 #: plugins/rodi.rtp:362 msgid "left" msgstr "links" -#: js/GraphicsBlocks.js:967 -#: js/temperament.js:734 -#: js/temperament.js:933 +#: js/blocks/GraphicsBlocks.js:967 +#: js/widgets/temperament.js:875 +#: js/widgets/temperament.js:1078 #: plugins/rodi.rtp:69 #: plugins/rodi.rtp:387 msgid "back" msgstr "agtertoe" -#: js/GraphicsBlocks.js:976 +#: js/blocks/GraphicsBlocks.js:976 msgid "The Back block moves the mouse backward." msgstr "" -#: js/GraphicsBlocks.js:983 +#: js/blocks/GraphicsBlocks.js:983 msgid "The Back block moves the turtle backward." msgstr "" -#: js/GraphicsBlocks.js:1050 +#: js/blocks/GraphicsBlocks.js:1050 #: plugins/rodi.rtp:71 #: plugins/rodi.rtp:400 msgid "forward" msgstr "vorentoe" -#: js/GraphicsBlocks.js:1059 +#: js/blocks/GraphicsBlocks.js:1059 msgid "The Forward block moves the mouse forward." msgstr "" -#: js/GraphicsBlocks.js:1066 +#: js/blocks/GraphicsBlocks.js:1066 msgid "The Forward block moves the turtle forward." msgstr "" -#: js/GraphicsBlocks.js:1154 -#: js/GraphicsBlocks.js:1172 +#: js/blocks/GraphicsBlocks.js:1154 +#: js/blocks/GraphicsBlocks.js:1172 msgid "wrap" msgstr "" -#: js/OrnamentBlocks.js:32 -msgid "staccato factor" -msgstr "" - -#: js/OrnamentBlocks.js:108 -msgid "slur factor" -msgstr "" - -#: js/OrnamentBlocks.js:217 -#: js/OrnamentBlocks.js:309 -#.TRANS: the neighbor refers to a neighboring note, e.g., D is a neighbor of C -msgid "neighbor" -msgstr "" - -#: js/OrnamentBlocks.js:293 -msgid "The Neighbor block rapidly switches between neighboring pitches." -msgstr "" - -#: js/OrnamentBlocks.js:364 -msgid "glide" -msgstr "" - -#: js/OrnamentBlocks.js:479 -#: js/OrnamentBlocks.js:643 -msgid "slur" -msgstr "" - -#: js/OrnamentBlocks.js:558 -#: js/OrnamentBlocks.js:710 -#.TRANS: play each note sharply detached from the others -msgid "staccato" -msgstr "" - -#: js/PenBlocks.js:24 +#: js/blocks/PenBlocks.js:30 msgid "purple" msgstr "" -#: js/PenBlocks.js:37 -#: js/SensorsBlocks.js:521 -#: plugins/rodi.rtp:219 -msgid "blue" -msgstr "" - -#: js/PenBlocks.js:50 -#: js/SensorsBlocks.js:577 -#: plugins/rodi.rtp:218 -msgid "green" -msgstr "" - -#: js/PenBlocks.js:63 +#: js/blocks/PenBlocks.js:80 msgid "yellow" msgstr "" -#: js/PenBlocks.js:76 +#: js/blocks/PenBlocks.js:96 #: plugins/nutrition.rtp:164 msgid "orange" msgstr "oranje" -#: js/PenBlocks.js:89 -#: js/SensorsBlocks.js:633 -#: plugins/rodi.rtp:217 -msgid "red" -msgstr "" - -#: js/PenBlocks.js:102 +#: js/blocks/PenBlocks.js:128 msgid "white" msgstr "" -#: js/PenBlocks.js:115 +#: js/blocks/PenBlocks.js:144 msgid "black" msgstr "" -#: js/PenBlocks.js:128 +#: js/blocks/PenBlocks.js:163 msgid "begin fill" msgstr "" -#: js/PenBlocks.js:143 +#: js/blocks/PenBlocks.js:190 msgid "end fill" msgstr "" -#: js/PenBlocks.js:159 -#: js/PenBlocks.js:386 +#: js/blocks/PenBlocks.js:212 +#: js/blocks/PenBlocks.js:560 #.TRANS: set the background color msgid "background" msgstr "" -#: js/PenBlocks.js:206 -#: js/DictActions.js:71 -#: js/DictActions.js:149 -#: js/DictActions.js:186 +#: js/blocks/PenBlocks.js:274 +#: js/turtleactions/DictActions.js:71 +#: js/turtleactions/DictActions.js:138 +#: js/turtleactions/DictActions.js:170 msgid "grey" msgstr "" -#: js/PenBlocks.js:210 +#: js/blocks/PenBlocks.js:282 msgid "The Grey block returns the current pen grey value." msgstr "" -#: js/PenBlocks.js:243 -#: js/DictActions.js:69 -#: js/DictActions.js:147 -#: js/DictActions.js:185 +#: js/blocks/PenBlocks.js:340 +#: js/turtleactions/DictActions.js:69 +#: js/turtleactions/DictActions.js:136 +#: js/turtleactions/DictActions.js:169 msgid "shade" msgstr "skadu" -#: js/PenBlocks.js:247 +#: js/blocks/PenBlocks.js:347 msgid "The Shade block returns the current pen shade value." msgstr "" -#: js/PenBlocks.js:280 -#: js/DictActions.js:67 -#: js/DictActions.js:145 -#: js/DictActions.js:184 +#: js/blocks/PenBlocks.js:405 +#: js/turtleactions/DictActions.js:67 +#: js/turtleactions/DictActions.js:134 +#: js/turtleactions/DictActions.js:168 msgid "color" msgstr "kleur" -#: js/PenBlocks.js:285 +#: js/blocks/PenBlocks.js:415 msgid "The Color block returns the current pen color." msgstr "" -#: js/PenBlocks.js:318 -#: js/DictActions.js:73 -#: js/DictActions.js:151 -#: js/DictActions.js:187 +#: js/blocks/PenBlocks.js:470 +#: js/turtleactions/DictActions.js:73 +#: js/turtleactions/DictActions.js:140 +#: js/turtleactions/DictActions.js:171 msgid "pen size" msgstr "pengrootte" -#: js/PenBlocks.js:322 +#: js/blocks/PenBlocks.js:474 msgid "The Pen size block returns the current pen size value." msgstr "" -#: js/PenBlocks.js:355 +#: js/blocks/PenBlocks.js:513 msgid "set font" msgstr "" -#: js/PenBlocks.js:358 +#: js/blocks/PenBlocks.js:518 msgid "The Set font block sets the font used by the Show block." msgstr "" -#: js/PenBlocks.js:391 +#: js/blocks/PenBlocks.js:567 msgid "The Background block sets the window background color." msgstr "" -#: js/PenBlocks.js:408 +#: js/blocks/PenBlocks.js:598 msgid "The Hollow line block creates a line with a hollow center." msgstr "" -#: js/PenBlocks.js:415 +#: js/blocks/PenBlocks.js:606 #.TRANS: draw a line logo has a hollow space down its center msgid "hollow line" msgstr "" -#: js/PenBlocks.js:462 +#: js/blocks/PenBlocks.js:675 msgid "The Fill block fills in a shape with a color." msgstr "" -#: js/PenBlocks.js:470 +#: js/blocks/PenBlocks.js:684 #.TRANS: fill in as a solid color msgid "fill" msgstr "" -#: js/PenBlocks.js:527 +#: js/blocks/PenBlocks.js:761 #.TRANS: raise up the pen so logo it does not draw when it is moved msgid "pen up" msgstr "pen op" -#: js/PenBlocks.js:532 +#: js/blocks/PenBlocks.js:768 msgid "The Pen-up block raises the pen so that it does not draw." msgstr "" -#: js/PenBlocks.js:552 +#: js/blocks/PenBlocks.js:802 #.TRANS: put down the pen so logo it draws when it is moved msgid "pen down" msgstr "pen af" -#: js/PenBlocks.js:557 +#: js/blocks/PenBlocks.js:810 msgid "The Pen-down block lowers the pen so that it draws." msgstr "" -#: js/PenBlocks.js:577 +#: js/blocks/PenBlocks.js:844 #.TRANS: set the width of the line drawn by the pen msgid "set pen size" msgstr "stel pengrootte" -#: js/PenBlocks.js:583 +#: js/blocks/PenBlocks.js:854 msgid "The Set-pen-size block changes the size of the pen." msgstr "" -#: js/PenBlocks.js:623 +#: js/blocks/PenBlocks.js:913 #.TRANS: set degree of translucence of the pen color msgid "set translucency" msgstr "" -#: js/PenBlocks.js:627 +#: js/blocks/PenBlocks.js:921 msgid "The Set translucency block changes the opacity of the pen." msgstr "" -#: js/PenBlocks.js:668 +#: js/blocks/PenBlocks.js:981 msgid "set hue" msgstr "" -#: js/PenBlocks.js:672 +#: js/blocks/PenBlocks.js:989 msgid "The Set hue block changes the color of the pen." msgstr "" -#: js/PenBlocks.js:711 +#: js/blocks/PenBlocks.js:1047 msgid "set shade" msgstr "stel skadu" -#: js/PenBlocks.js:717 +#: js/blocks/PenBlocks.js:1057 msgid "The Set-shade block changes the pen color from dark to light." msgstr "" -#: js/PenBlocks.js:757 +#: js/blocks/PenBlocks.js:1111 #.TRANS: set the level of vividness of the pen color msgid "set grey" msgstr "" -#: js/PenBlocks.js:761 +#: js/blocks/PenBlocks.js:1119 msgid "The Set grey block changes the vividness of the pen color." msgstr "" -#: js/PenBlocks.js:800 +#: js/blocks/PenBlocks.js:1172 msgid "set color" msgstr "stel kleur" -#: js/PenBlocks.js:806 +#: js/blocks/PenBlocks.js:1182 msgid "The Set-color block changes the pen color." msgstr "" -#: js/VolumeBlocks.js:35 -msgid "synth volume" -msgstr "" - -#: js/VolumeBlocks.js:39 -msgid "The Synth volume block returns the current volume of the current synthesizer." -msgstr "" - -#: js/VolumeBlocks.js:47 -#: js/musicutils.js:730 -#: js/synthutils.js:56 -#.TRANS: musical instrument -msgid "piano" -msgstr "" - -#: js/VolumeBlocks.js:105 -msgid "master volume" -msgstr "" - -#: js/VolumeBlocks.js:109 -msgid "The Master volume block returns the master volume." -msgstr "" - -#: js/VolumeBlocks.js:355 -#: js/VolumeBlocks.js:524 -msgid "set synth volume" -msgstr "" - -#: js/VolumeBlocks.js:362 -#: js/VolumeBlocks.js:545 -msgid "synth" -msgstr "" - -#: js/VolumeBlocks.js:403 -#: js/VolumeBlocks.js:577 -#: js/VolumeBlocks.js:740 -#: js/VolumeActions.js:173 -msgid "Setting volume to 0." -msgstr "" - -#: js/VolumeBlocks.js:440 -msgid "Synth not found" -msgstr "" - -#: js/VolumeBlocks.js:494 -msgid "set drum volume" -msgstr "" - -#: js/VolumeBlocks.js:530 -msgid "The Set synth volume block will change the volume of a particular synth," -msgstr "" - -#: js/VolumeBlocks.js:532 -msgid "eg guitar violin snare drum etc." -msgstr "" - -#: js/VolumeBlocks.js:534 -msgid "The default volume is 50." -msgstr "" - -#: js/VolumeBlocks.js:536 -msgid "The range is 0 for silence to 100 for full volume." -msgstr "" - -#: js/VolumeBlocks.js:597 -msgid "set panning" -msgstr "" - -#: js/VolumeBlocks.js:603 -msgid "The Set Panning block sets the panning for all synthesizers." -msgstr "" - -#: js/VolumeBlocks.js:625 -msgid "Warning: Sound is coming out from only the left or right side." -msgstr "" - -#: js/VolumeBlocks.js:647 -#: js/VolumeBlocks.js:695 -msgid "set master volume" -msgstr "" - -#: js/VolumeBlocks.js:653 -msgid "The Set master volume block sets the volume for all synthesizers." -msgstr "" - -#: js/VolumeBlocks.js:784 -msgid "The Set relative volume block changes the volume of the contained notes." -msgstr "" - -#: js/VolumeBlocks.js:791 -msgid "set relative volume" -msgstr "" - -#: js/VolumeBlocks.js:857 -msgid "decrescendo" -msgstr "" - -#: js/VolumeBlocks.js:921 -msgid "crescendo" -msgstr "" - -#: js/ToneBlocks.js:34 -msgid "oscillator" -msgstr "" - -#: js/ToneBlocks.js:44 -#: js/timbre.js:1562 -#.TRANS: Partials refers to the number of sine waves combined into the sound. -msgid "partials" -msgstr "" - -#: js/ToneBlocks.js:76 -msgid "You are adding multiple oscillator blocks." -msgstr "" - -#: js/ToneBlocks.js:144 -#: js/timbre.js:1225 -#.TRANS: a duo synthesizer combines a synth with a sequencer -msgid "duo synth" -msgstr "" - -#: js/ToneBlocks.js:149 -msgid "The Duo synth block is a duo-frequency modulator used to define a timbre." -msgstr "" - -#: js/ToneBlocks.js:157 -#: js/timbre.js:1476 -msgid "vibrato rate" -msgstr "" - -#: js/ToneBlocks.js:157 -msgid "vibrato intensity" -msgstr "" - -#: js/ToneBlocks.js:185 -#: js/timbre.js:1221 -#.TRANS: AM (amplitude modulation) synthesizer -msgid "AM synth" -msgstr "" - -#: js/ToneBlocks.js:189 -msgid "The AM synth block is an amplitude modulator used to define a timbre." -msgstr "" - -#: js/ToneBlocks.js:224 -#: js/timbre.js:1223 -#.TRANS: FM (frequency modulation) synthesizer -msgid "FM synth" -msgstr "" - -#: js/ToneBlocks.js:228 -msgid "The FM synth block is a frequency modulator used to define a timbre." +#: js/blocks/PitchBlocks.js:141 +#.TRANS: musical transposition (adjustment of pitch up or down) +msgid "transposition" msgstr "" -#: js/ToneBlocks.js:262 -msgid "partial" +#: js/blocks/PitchBlocks.js:168 +#.TRANS: step down one note in current musical scale +msgid "scalar step down" msgstr "" -#: js/ToneBlocks.js:265 -msgid "The Partial block is used to specify a weight for a specific partial harmonic." +#: js/blocks/PitchBlocks.js:172 +msgid "The Scalar step down block returns the number of semi-tones down to the previous note in the current key and mode." msgstr "" -#: js/ToneBlocks.js:284 -#.TRANS: partials are weighted components in a harmonic series -msgid "Partial weight must be between 0 and 1." +#: js/blocks/PitchBlocks.js:190 +#.TRANS: step up one note in current musical scale +msgid "scalar step up" msgstr "" -#: js/ToneBlocks.js:297 -#.TRANS: partials are weighted components in a harmonic series -msgid "Partial block should be used inside of a Weighted-partials block." +#: js/blocks/PitchBlocks.js:194 +msgid "The Scalar step up block returns the number of semi-tones up to the next note in the current key and mode." msgstr "" -#: js/ToneBlocks.js:325 -#.TRANS: partials are weighted components in a harmonic series -msgid "weighted partials" +#: js/blocks/PitchBlocks.js:212 +#.TRANS: the change measured in half-steps between the current pitch and the previous pitch +msgid "change in pitch" msgstr "" -#: js/ToneBlocks.js:383 -msgid "The Harmonic block will add harmonics to the contained notes." +#: js/blocks/PitchBlocks.js:216 +msgid "The Change in pitch block is the difference (in half steps) between the current pitch being played and the previous pitch played." msgstr "" -#: js/ToneBlocks.js:390 -#.TRANS: A harmonic is an overtone. -msgid "harmonic" +#: js/blocks/PitchBlocks.js:243 +#.TRANS: the change measured in scale-steps between the current pitch and the previous pitch +msgid "scalar change in pitch" msgstr "" -#: js/ToneBlocks.js:431 -msgid "The Distortion block adds distortion to the pitch." +#: js/blocks/PitchBlocks.js:250 +#: js/blocks/PitchBlocks.js:432 +#: js/blocks/PitchBlocks.js:1667 +#: js/turtleactions/DictActions.js:89 +#: js/widgets/temperament.js:610 +#: js/widgets/temperament.js:614 +#: js/widgets/temperament.js:855 +#.TRANS: convert current note to piano key (1-88) +#.TRANS: a mapping of pitch to the 88 piano keys +msgid "pitch number" msgstr "" -#: js/ToneBlocks.js:438 -#: js/timbre.js:2100 -#.TRANS: distortion is an alteration in the sound -msgid "distortion" +#: js/blocks/PitchBlocks.js:256 +msgid "The Pitch number block is the value of the pitch of the note currently being played." msgstr "" -#: js/ToneBlocks.js:487 -msgid "The Tremolo block adds a wavering effect." +#: js/blocks/PitchBlocks.js:329 +#: js/blocks/PitchBlocks.js:433 +#.TRANS: the current pitch expressed in Hertz +msgid "pitch in hertz" msgstr "" -#: js/ToneBlocks.js:495 -#: js/timbre.js:2092 -#.TRANS: a wavering effect in a musical tone -msgid "tremolo" +#: js/blocks/PitchBlocks.js:334 +msgid "The Pitch in Hertz block is the value in Hertz of the pitch of the note currently being played." msgstr "" -#: js/ToneBlocks.js:500 -#: js/ToneBlocks.js:569 -#: js/ToneBlocks.js:630 -#: js/ToneBlocks.js:689 -#: js/timbre.js:2134 -#: js/timbre.js:2222 -#: js/timbre.js:2317 -#: js/timbre.js:2419 -#.TRANS: rate at which tremolo wavers -msgid "rate" +#: js/blocks/PitchBlocks.js:367 +#: js/turtleactions/DictActions.js:87 +msgid "current pitch" msgstr "" -#: js/ToneBlocks.js:502 -#: js/ToneBlocks.js:630 -#: js/timbre.js:2137 -#: js/timbre.js:2328 -#.TRANS: amplitude of tremolo waver -msgid "depth" +#: js/blocks/PitchBlocks.js:373 +msgid "The Current Pitch block is used with the Pitch Converter block. In the example above, current pitch, sol 4, is displayed as 392 hertz." msgstr "" -#: js/ToneBlocks.js:559 -msgid "The Phaser block adds a sweeping sound." +#: js/blocks/PitchBlocks.js:410 +msgid "This block converts the pitch value of the last note played into different formats such as hertz, letter name, pitch number, et al." msgstr "" -#: js/ToneBlocks.js:566 -#: js/timbre.js:2098 -#.TRANS: alter the phase of the sound -msgid "phaser" +#: js/blocks/PitchBlocks.js:434 +msgid "alphabet" msgstr "" -#: js/ToneBlocks.js:569 -#: js/timbre.js:2422 -msgid "octaves" +#: js/blocks/PitchBlocks.js:436 +#.TRANS: Translate as "alphabet class" +msgid "letter class" msgstr "" -#: js/ToneBlocks.js:569 -#: js/timbre.js:2425 -msgid "base frequency" +#: js/blocks/PitchBlocks.js:437 +msgid "solfege class" msgstr "" -#: js/ToneBlocks.js:619 -msgid "The Chorus block adds a chorus effect." +#: js/blocks/PitchBlocks.js:438 +msgid "staff y" msgstr "" -#: js/ToneBlocks.js:627 -#: js/timbre.js:2096 -#.TRANS: musical effect to simulate a choral sound -msgid "chorus" +#: js/blocks/PitchBlocks.js:439 +msgid "solfege syllable" msgstr "" -#: js/ToneBlocks.js:630 -msgid "delay" +#: js/blocks/PitchBlocks.js:440 +msgid "pitch class" msgstr "" -#: js/ToneBlocks.js:678 -msgid "The Vibrato block adds a rapid, slight variation in pitch." +#: js/blocks/PitchBlocks.js:441 +msgid "scalar class" msgstr "" -#: js/ToneBlocks.js:686 -#: js/timbre.js:2094 -#.TRANS: a rapid, slight variation in pitch -msgid "vibrato" +#: js/blocks/PitchBlocks.js:443 +msgid "nth degree" msgstr "" -#: js/ToneBlocks.js:689 -#: js/timbre.js:2221 -msgid "intensity" +#: js/blocks/PitchBlocks.js:444 +msgid "pitch to shade" msgstr "" -#: js/ToneBlocks.js:733 -#.TRANS: select synthesizer -msgid "set synth" +#: js/blocks/PitchBlocks.js:445 +msgid "pitch to color" msgstr "" -#: js/ToneBlocks.js:804 -msgid "synth name" +#: js/blocks/PitchBlocks.js:629 +#: js/widgets/musickeyboard.js:735 +#.TRANS: MIDI is a technical standard for electronic music +msgid "MIDI" msgstr "" -#: js/ToneBlocks.js:842 -msgid "set default instrument" +#: js/blocks/PitchBlocks.js:642 +#.TRANS: set an offset associated with the numeric piano keyboard mapping +msgid "set pitch number offset" msgstr "" -#: js/ToneBlocks.js:895 -#: js/ToneBlocks.js:943 -#.TRANS: set the characteristics of a custom instrument -msgid "set instrument" +#: js/blocks/PitchBlocks.js:645 +msgid "The Set pitch number offset block is used to set the offset for mapping pitch numbers to pitch and octave." msgstr "" -#: js/ToneBlocks.js:898 -#: js/ToneBlocks.js:926 -#: js/ToneBlocks.js:932 -msgid "The Set instrument block selects a voice for the synthesizer," +#: js/blocks/PitchBlocks.js:679 +#.TRANS: convert piano key number (1-88) to pitch +msgid "number to pitch" msgstr "" -#: js/ToneBlocks.js:900 -#: js/ToneBlocks.js:934 -msgid "eg guitar piano violin or cello." +#: js/blocks/PitchBlocks.js:682 +msgid "The Number to pitch block will convert a pitch number to a pich name." msgstr "" -#: js/ToneBlocks.js:1015 -msgid "Import a sound file to use as an instrument and set its pitch center." +#: js/blocks/PitchBlocks.js:715 +#.TRANS: convert piano key number (1-88) to octave +msgid "number to octave" msgstr "" -#: js/ToneBlocks.js:1110 -msgid "Upload a sound file to connect with the sample block." +#: js/blocks/PitchBlocks.js:717 +msgid "The Number to octave block will convert a pitch number to an octave." msgstr "" -#: js/MeterBlocks.js:34 -#.TRANS: musical meter (time signature), e.g., 4:4 -msgid "current meter" +#: js/blocks/PitchBlocks.js:726 +msgid "y to pitch" msgstr "" -#: js/MeterBlocks.js:85 -#.TRANS: number of beats per minute -msgid "beat factor" +#: js/blocks/PitchBlocks.js:729 +msgid "Y to pitch block will convert a staff y position to corresponding pitch notation." msgstr "" -#: js/MeterBlocks.js:161 -msgid "The Beats per minute block returns the current beats per minute." +#: js/blocks/PitchBlocks.js:841 +msgid "accidental selector" msgstr "" -#: js/MeterBlocks.js:169 -#: js/status.js:152 -#.TRANS: number of beats played per minute -msgid "beats per minute2" +#: js/blocks/PitchBlocks.js:844 +msgid "The Accidental selector block is used to choose between double-sharp, sharp, natural, flat, and double-flat." msgstr "" -#: js/MeterBlocks.js:169 -#: js/MeterBlocks.js:1056 -#: js/MeterBlocks.js:1133 -#: js/MeterBlocks.js:1211 -#.TRANS: sets tempo by defining a beat and beats per minute -msgid "beats per minute" +#: js/blocks/PitchBlocks.js:858 +msgid "Pitch can be specified in terms of ni dha pa ma ga re sa." msgstr "" -#: js/MeterBlocks.js:233 -#.TRANS: count of current musical measure in meter -msgid "measure count" +#: js/blocks/PitchBlocks.js:872 +msgid "Pitch can be specified in terms of C D E F G A B." msgstr "" -#: js/MeterBlocks.js:241 -msgid "The Measure count block returns the current measure." +#: js/blocks/PitchBlocks.js:884 +msgid "solfege" msgstr "" -#: js/MeterBlocks.js:290 -#.TRANS: count of current beat in the meter -msgid "beat count" +#: js/blocks/PitchBlocks.js:887 +msgid "Pitch can be specified in terms of do re mi fa sol la ti." msgstr "" -#: js/MeterBlocks.js:300 -#: js/MeterBlocks.js:311 -#: js/MeterBlocks.js:565 -#: js/MeterBlocks.js:576 -msgid "The Beat count block is the number of the current beat," +#: js/blocks/PitchBlocks.js:922 +msgid "The Invert block rotates any contained notes around a target note." msgstr "" -#: js/MeterBlocks.js:313 -#: js/MeterBlocks.js:578 -msgid "eg 1, 2, 3, or 4." +#: js/blocks/PitchBlocks.js:929 +#.TRANS: pitch inversion rotates a pitch around another pitch +msgid "invert" msgstr "" -#: js/MeterBlocks.js:368 -#.TRANS: count the number of notes -msgid "sum note values" +#: js/blocks/PitchBlocks.js:968 +#.TRANS: pitch inversion rotates a pitch around another pitch (odd number) +msgid "invert (odd)" msgstr "" -#: js/MeterBlocks.js:376 -#: js/MeterBlocks.js:440 -msgid "The Note counter block can be used to count the number of contained notes." +#: js/blocks/PitchBlocks.js:1001 +#.TRANS: pitch inversion rotates a pitch around another pitch (even number) +msgid "invert (even)" msgstr "" -#: js/MeterBlocks.js:432 -#.TRANS: count the number of notes -msgid "note counter" +#: js/blocks/PitchBlocks.js:1022 +#.TRANS: register is the octave of the current pitch +msgid "register" msgstr "" -#: js/MeterBlocks.js:496 -#.TRANS: number of whole notes that have been played -msgid "whole notes played" +#: js/blocks/PitchBlocks.js:1026 +msgid "The Register block provides an easy way to modify the register (octave) of the notes that follow it." msgstr "" -#: js/MeterBlocks.js:505 -msgid "The Whole notes played block returns the total number of whole notes played." +#: js/blocks/PitchBlocks.js:1047 +#.TRANS: cents are units used to specify the ratio between pitches. There are 100 cents between successive notes. +msgid "50 cents" msgstr "" -#: js/MeterBlocks.js:555 -#: js/DictActions.js:83 -#.TRANS: number of notes that have been played -msgid "notes played" +#: js/blocks/PitchBlocks.js:1102 +msgid "The Semi-tone transposition block will shift the pitches contained inside Note blocks up (or down) by half steps." msgstr "" -#: js/MeterBlocks.js:653 -msgid "The No clock block decouples the notes from the master clock." +#: js/blocks/PitchBlocks.js:1104 +msgid "In the example shown above, sol is shifted up to sol#." msgstr "" -#: js/MeterBlocks.js:661 -#.TRANS: don't lock notes to master clock -msgid "no clock" +#: js/blocks/PitchBlocks.js:1110 +#.TRANS: adjust the amount of shift (up or down) of a pitch +msgid "semi-tone transpose" msgstr "" -#: js/MeterBlocks.js:700 -msgid "on weak beat do" +#: js/blocks/PitchBlocks.js:1143 +msgid "The Transpose by Ratio block will shift the pitches contained inside Note blocks up (or down) by a ratio" msgstr "" -#: js/MeterBlocks.js:705 -msgid "The On-weak-beat block lets you specify actions to take on weak (off) beats." +#: js/blocks/PitchBlocks.js:1149 +#.TRANS: adjust the amount of shift (up or down) of a pitch +msgid "transpose by ratio" msgstr "" -#: js/MeterBlocks.js:750 -msgid "on strong beat" +#: js/blocks/PitchBlocks.js:1232 +#.TRANS: down sixth means the note is five scale degrees below current note +msgid "down sixth" msgstr "" -#: js/MeterBlocks.js:758 -msgid "The On-strong-beat block lets you specify actions to take on specified beats." +#: js/blocks/PitchBlocks.js:1251 +#.TRANS: down third means the note is two scale degrees below current note +msgid "down third" msgstr "" -#: js/MeterBlocks.js:769 -msgid "beat" +#: js/blocks/PitchBlocks.js:1270 +#.TRANS: seventh means the note is the six scale degrees above current note +msgid "seventh" msgstr "" -#: js/MeterBlocks.js:813 -msgid "on every beat do" +#: js/blocks/PitchBlocks.js:1289 +#.TRANS: sixth means the note is the five scale degrees above current note +msgid "sixth" msgstr "" -#: js/MeterBlocks.js:821 -msgid "The On-every-beat block lets you specify actions to take on every beat." +#: js/blocks/PitchBlocks.js:1308 +#.TRANS: fifth means the note is the four scale degrees above current note +msgid "fifth" msgstr "" -#: js/MeterBlocks.js:874 -msgid "on every note do" +#: js/blocks/PitchBlocks.js:1328 +#.TRANS: fourth means the note is three scale degrees above current note +msgid "fourth" msgstr "" -#: js/MeterBlocks.js:882 -msgid "The On-every-note block lets you specify actions to take on every note." +#: js/blocks/PitchBlocks.js:1347 +#.TRANS: third means the note is two scale degrees above current note +msgid "third" msgstr "" -#: js/MeterBlocks.js:928 -#: js/MeterBlocks.js:999 -#.TRANS: sets tempo by defining a beat and beats per minute -msgid "master beats per minute" +#: js/blocks/PitchBlocks.js:1366 +#.TRANS: second means the note is one scale degree above current note +msgid "second" msgstr "" -#: js/MeterBlocks.js:952 -#: js/MeterBlocks.js:1078 -#: js/MeterBlocks.js:1135 -msgid "bpm" +#: js/blocks/PitchBlocks.js:1407 +msgid "The Scalar transposition block will shift the pitches contained inside Note blocks up (or down) the scale." msgstr "" -#: js/MeterBlocks.js:952 -#: js/MeterBlocks.js:1078 -#: js/MeterBlocks.js:1135 -msgid "beat value" +#: js/blocks/PitchBlocks.js:1409 +msgid "In the example shown above, sol is shifted up to la." msgstr "" -#: js/MeterBlocks.js:1024 -#: js/MeterBlocks.js:1167 -#: js/MeterBlocks.js:1241 -msgid "Beats per minute must be > 30." +#: js/blocks/PitchBlocks.js:1416 +#.TRANS: adjust the amount of shift (up or down) of a pitch by musical scale (scalar) steps +msgid "scalar transpose" msgstr "" -#: js/MeterBlocks.js:1027 -#: js/MeterBlocks.js:1170 -#: js/MeterBlocks.js:1244 -msgid "Maximum beats per minute is 1000." +#: js/blocks/PitchBlocks.js:1451 +msgid "The Accidental block is used to create sharps and flats" msgstr "" -#: js/MeterBlocks.js:1068 -msgid "The Beats per minute block sets the number of 1/4 notes per minute." +#: js/blocks/PitchBlocks.js:1458 +#.TRANS: An accidental is a modification to a pitch, e.g., sharp or flat. +msgid "accidental override" msgstr "" -#: js/MeterBlocks.js:1279 -#.TRANS: anacrusis -msgid "pickup" +#: js/blocks/PitchBlocks.js:1581 +msgid "The Hertz block (in combination with a Number block) will play a sound at the specified frequency." msgstr "" -#: js/MeterBlocks.js:1367 -msgid "number of beats" +#: js/blocks/PitchBlocks.js:1671 +msgid "The Pitch Number block will play a pitch associated by its number, e.g. 0 for C and 7 for G." msgstr "" -#: js/DictBlocks.js:77 -msgid "show dictionary" +#: js/blocks/PitchBlocks.js:1703 +#: js/blocks/PitchBlocks.js:1745 +#.TRANS: a numeric mapping of the notes in an octave based on the musical mode +#.TRANS: a numeric mapping of the notes in an octave based on the musical mode +msgid "nth modal pitch" msgstr "" -#: js/DictBlocks.js:129 -msgid "The Dictionary block returns a dictionary." +#: js/blocks/PitchBlocks.js:1706 +msgid "n^th Modal Pitch takes the pattern of pitches in semitones for a mode and makes each point a degree of the mode," msgstr "" -#: js/DictBlocks.js:197 -#: js/DictBlocks.js:339 -msgid "The Get-dict block returns a value in the dictionary for a specified key." +#: js/blocks/PitchBlocks.js:1708 +msgid "starting from 1 and regardless of tonal framework (i.e. not always 8 notes in the octave)" msgstr "" -#: js/DictBlocks.js:212 -#: js/DictBlocks.js:354 -#.TRANS: retrieve a value from the dictionary with a given key -msgid "get value" +#: js/blocks/PitchBlocks.js:1749 +msgid "N^th Modal Pitch takes a number as an input as the n^th degree for the given mode. 0 is the first position, 1 is the second, -1 is the note before the first etc." msgstr "" -#: js/DictBlocks.js:215 -#: js/DictBlocks.js:216 -#: js/DictBlocks.js:289 -#: js/DictBlocks.js:290 -#: js/DictBlocks.js:357 -#: js/DictBlocks.js:430 -#: js/DictBlocks.js:431 -msgid "key2" +#: js/blocks/PitchBlocks.js:1751 +msgid "The pitches change according to the mode specified without any need for respellings." msgstr "" -#: js/DictBlocks.js:271 -#: js/DictBlocks.js:411 -msgid "The Set-dict block sets a value in the dictionary for a specified key." +#: js/blocks/PitchBlocks.js:1790 +msgid "Scale Degree is a common convention in music. Scale Degree offers seven possible positions in the scale (1-7) and can be modified via accidentals." msgstr "" -#: js/DictBlocks.js:286 -#: js/DictBlocks.js:427 -#.TRANS: set a value in the dictionary for a given key -msgid "set value" +#: js/blocks/PitchBlocks.js:1792 +msgid "Scale Degree 1 is always the first pitch in a given scale, regardless of octave." msgstr "" -#: js/ExtrasBlocks.js:33 -msgid "fraction" +#: js/blocks/PitchBlocks.js:1814 +#.TRANS: step some number of notes in current musical scale +msgid "scalar step" msgstr "" -#: js/ExtrasBlocks.js:36 -msgid "Convert a float to a fraction" +#: js/blocks/PitchBlocks.js:1819 +msgid "The Scalar Step block (in combination with a Number block) will play the next pitch in a scale," msgstr "" -#: js/ExtrasBlocks.js:93 -msgid "save as ABC" +#: js/blocks/PitchBlocks.js:1821 +msgid "eg if the last note played was sol, Scalar Step 1 will play la." msgstr "" -#: js/ExtrasBlocks.js:96 -#: js/ExtrasBlocks.js:132 -#: js/ExtrasBlocks.js:168 -msgid "title" +#: js/blocks/PitchBlocks.js:1857 +msgid "The Pitch block specifies the pitch name and octave of a note that together determine the frequency of the note." msgstr "" -#: js/ExtrasBlocks.js:129 -msgid "save as Lilypond" +#: js/blocks/ProgramBlocks.js:33 +msgid "The Load-heap-from-app block loads the heap from a web page." msgstr "" -#: js/ExtrasBlocks.js:165 -msgid "save as SVG" +#: js/blocks/ProgramBlocks.js:44 +#.TRANS: load the heap contents from a URL +msgid "load heap from App" msgstr "" -#: js/ExtrasBlocks.js:216 -msgid "no background" +#: js/blocks/ProgramBlocks.js:95 +msgid "Error parsing JSON data:" msgstr "" -#: js/ExtrasBlocks.js:219 -msgid "The No background block eliminates the background from the saved SVG output." +#: js/blocks/ProgramBlocks.js:100 +msgid "404: Page not found" msgstr "" -#: js/ExtrasBlocks.js:247 -msgid "show blocks" -msgstr "Wys blokke" +#: js/blocks/ProgramBlocks.js:133 +msgid "The Save-heap-to-app block saves the heap to a web page." +msgstr "" -#: js/ExtrasBlocks.js:249 -msgid "The Show blocks block shows the blocks." +#: js/blocks/ProgramBlocks.js:144 +#.TRANS: save the heap contents to a URL +msgid "save heap to App" msgstr "" -#: js/ExtrasBlocks.js:274 -msgid "hide blocks" -msgstr "versteek blokke" +#: js/blocks/ProgramBlocks.js:189 +msgid "Cannot find a valid heap for" +msgstr "" -#: js/ExtrasBlocks.js:276 -msgid "The Hide blocks block hides the blocks." +#: js/blocks/ProgramBlocks.js:206 +msgid "The Load-heap block loads the heap from a file." msgstr "" -#: js/ExtrasBlocks.js:305 -#: js/ExtrasBlocks.js:335 -msgid "The Space block is used to add space between blocks." +#: js/blocks/ProgramBlocks.js:217 +#.TRANS: load the heap from a file +msgid "load heap" msgstr "" -#: js/ExtrasBlocks.js:373 -msgid "wait" -msgstr "wag" +#: js/blocks/ProgramBlocks.js:270 +msgid "The file you selected does not contain a valid heap." +msgstr "" -#: js/ExtrasBlocks.js:376 -msgid "The Wait block pauses the program for a specified number of seconds." +#: js/blocks/ProgramBlocks.js:275 +msgid "The loadHeap block needs a loadFile block." msgstr "" -#: js/ExtrasBlocks.js:430 -#: plugins/facebook.rtp:30 -msgid "comment" +#: js/blocks/ProgramBlocks.js:291 +msgid "The Set-heap block loads the heap." msgstr "" -#: js/ExtrasBlocks.js:466 -msgid "print" -msgstr "druk" +#: js/blocks/ProgramBlocks.js:340 +msgid "The block you selected does not contain a valid heap." +msgstr "" -#: js/ExtrasBlocks.js:473 -msgid "The Print block displays text at the top of the screen." +#: js/blocks/ProgramBlocks.js:343 +msgid "The Set heap block needs a heap." msgstr "" -#: js/ExtrasBlocks.js:579 -msgid "display grid" +#: js/blocks/ProgramBlocks.js:360 +msgid "The Load-dictionary block loads a dictionary from a file." msgstr "" -#: js/ExtrasBlocks.js:584 -msgid "The Display Grid Block changes the grid type" +#: js/blocks/ProgramBlocks.js:372 +#.TRANS: load a dictionary from a file +msgid "load dictionary" msgstr "" -#: js/ExtrasBlocks.js:686 -#: js/ExtrasBlocks.js:705 -#: js/ExtrasBlocks.js:728 -#: js/ExtrasBlocks.js:751 -#: js/ExtrasBlocks.js:769 -#: js/ExtrasBlocks.js:788 -#: js/ExtrasBlocks.js:807 -#: js/ExtrasBlocks.js:826 -msgid "unknown" +#: js/blocks/ProgramBlocks.js:390 +#: js/blocks/ProgramBlocks.js:658 +#: js/blocks/ToneBlocks.js:1025 +msgid "file" msgstr "" -#: js/SensorsBlocks.js:36 -msgid "The Input block prompts for keyboard input." +#: js/blocks/ProgramBlocks.js:444 +msgid "The file you selected does not contain a valid dictionary." msgstr "" -#: js/SensorsBlocks.js:46 -msgid "input" +#: js/blocks/ProgramBlocks.js:449 +msgid "The load dictionary block needs a load file block." msgstr "" -#: js/SensorsBlocks.js:64 -msgid "Input a value" +#: js/blocks/ProgramBlocks.js:466 +msgid "The Set-dictionary block loads a dictionary." msgstr "" -#: js/SensorsBlocks.js:126 -msgid "input value" +#: js/blocks/ProgramBlocks.js:477 +#.TRANS: load a dictionary from a JSON +msgid "set dictionary" msgstr "" -#: js/SensorsBlocks.js:131 -msgid "The Input-value block stores the input." +#: js/blocks/ProgramBlocks.js:546 +msgid "The block you selected does not contain a valid dictionary." msgstr "" -#: js/SensorsBlocks.js:238 -msgid "loudness" +#: js/blocks/ProgramBlocks.js:550 +msgid "The set dictionary block needs a dictionary." msgstr "" -#: js/SensorsBlocks.js:245 -msgid "The Loudness block returns the volume detected by the microphone." +#: js/blocks/ProgramBlocks.js:567 +msgid "The Save-heap block saves the heap to a file." msgstr "" -#: js/SensorsBlocks.js:300 -msgid "click" +#: js/blocks/ProgramBlocks.js:578 +#.TRANS: save the heap to a file +msgid "save heap" msgstr "" -#: js/SensorsBlocks.js:306 -msgid "The Click block triggers an event if a mouse has been clicked." +#: js/blocks/ProgramBlocks.js:629 +msgid "The Save-dictionary block saves a dictionary to a file." msgstr "" -#: js/SensorsBlocks.js:313 -msgid "The Click block triggers an event if a turtle has been clicked." +#: js/blocks/ProgramBlocks.js:640 +#.TRANS: save a dictionary to a file +msgid "save dictionary" msgstr "" -#: js/SensorsBlocks.js:342 -msgid "cursor over" +#: js/blocks/ProgramBlocks.js:720 +msgid "The Open palette block opens a palette." msgstr "" -#: js/SensorsBlocks.js:387 -msgid "cursor out" +#: js/blocks/ProgramBlocks.js:727 +msgid "open palette" msgstr "" -#: js/SensorsBlocks.js:433 -msgid "cursor button down" +#: js/blocks/ProgramBlocks.js:785 +msgid "The Delete block block removes a block." msgstr "" -#: js/SensorsBlocks.js:477 -msgid "cursor button up" +#: js/blocks/ProgramBlocks.js:797 +#.TRANS: Move this block to the trash. +msgid "delete block" msgstr "" -#: js/SensorsBlocks.js:638 -msgid "The Get red block returns the red component of the pixel under the mouse." +#: js/blocks/ProgramBlocks.js:861 +msgid "The Move block block moves a block." msgstr "" -#: js/SensorsBlocks.js:644 -msgid "The Get red block returns the red component of the pixel under the turtle." +#: js/blocks/ProgramBlocks.js:869 +#.TRANS: Move the position of a block on the screen. +msgid "move block" msgstr "" -#: js/SensorsBlocks.js:685 -#: plugins/rodi.rtp:216 -msgid "pixel color" +#: js/blocks/ProgramBlocks.js:881 +#: js/blocks/ProgramBlocks.js:1048 +msgid "block number" msgstr "" -#: js/SensorsBlocks.js:690 -msgid "The Get pixel block returns the color of the pixel under the mouse." +#: js/blocks/ProgramBlocks.js:935 +#.TRANS: Run program beginning at this block. +msgid "run block" msgstr "" -#: js/SensorsBlocks.js:696 -msgid "The Get pixel block returns the color of the pixel under the turtle." +#: js/blocks/ProgramBlocks.js:1025 +msgid "The Dock block block connections two blocks." msgstr "" -#: js/SensorsBlocks.js:758 -msgid "time" +#: js/blocks/ProgramBlocks.js:1036 +#.TRANS: We can connect a block to another block. +msgid "connect blocks" msgstr "" -#: js/SensorsBlocks.js:804 -msgid "cursor y" +#: js/blocks/ProgramBlocks.js:1048 +msgid "target block" msgstr "" -#: js/SensorsBlocks.js:809 -msgid "The Cursor Y block returns the vertical position of the mouse." +#: js/blocks/ProgramBlocks.js:1048 +msgid "connection number" msgstr "" -#: js/SensorsBlocks.js:845 -msgid "cursor x" +#: js/blocks/ProgramBlocks.js:1140 +msgid "The Make block block creates a new block." msgstr "" -#: js/SensorsBlocks.js:850 -msgid "The Cursor X block returns the horizontal position of the mouse." +#: js/blocks/ProgramBlocks.js:1152 +#.TRANS: Create a new block +msgid "make block" msgstr "" -#: js/SensorsBlocks.js:886 -msgid "mouse button" +#: js/blocks/ProgramBlocks.js:1285 +msgid "Cannot find block" msgstr "" -#: js/SensorsBlocks.js:888 -msgid "The Mouse-button block returns True if the mouse button is pressed." +#: js/blocks/ProgramBlocks.js:1304 +#: js/blocks/ProgramBlocks.js:1313 +msgid "Warning: block argument type mismatch" msgstr "" -#: js/SensorsBlocks.js:934 -msgid "to ASCII" +#: js/blocks/ProgramBlocks.js:1347 +msgid "The Open project block is used to open a project from a web page." msgstr "" -#: js/SensorsBlocks.js:938 -msgid "The To ASCII block converts numbers to letters." +#: js/blocks/ProgramBlocks.js:1357 +msgid "open project" msgstr "" -#: js/SensorsBlocks.js:1005 -msgid "The Keyboard block returns computer keyboard input." +#: js/blocks/ProgramBlocks.js:1410 +msgid "Please enter a valid URL." msgstr "" -#: js/IntervalsActions.js:216 -msgid "Adding missing pitch number 0." +#: js/blocks/ToneBlocks.js:34 +msgid "oscillator" msgstr "" -#: js/IntervalsActions.js:224 -msgid "Ignoring pitch numbers less than zero or greater than eleven." +#: js/blocks/ToneBlocks.js:42 +#: js/blocks/WidgetBlocks.js:179 +#: js/widgets/timbre.js:1558 +#: js/widgets/timbre.js:1808 +#.TRANS: there are different types (sine, triangle, square...) of oscillators. +#.TRANS: type of filter, e.g., lowpass, highpass, etc. +msgid "type" msgstr "" -#: js/IntervalsActions.js:230 -msgid "Ignoring duplicate pitch numbers." +#: js/blocks/ToneBlocks.js:44 +#: js/widgets/timbre.js:1562 +#.TRANS: Partials refers to the number of sine waves combined into the sound. +msgid "partials" msgstr "" -#: js/PitchActions.js:88 -msgid "The Scalar Step Block must be used inside of a Note Block." +#: js/blocks/ToneBlocks.js:76 +msgid "You are adding multiple oscillator blocks." msgstr "" -#: js/PitchActions.js:107 -msgid "The Scalar Step Block must be preceded by a Pitch Block." +#: js/blocks/ToneBlocks.js:144 +#: js/widgets/timbre.js:1225 +#.TRANS: a duo synthesizer combines a synth with a sequencer +msgid "duo synth" msgstr "" -#: js/DrumActions.js:231 -msgid "Noise Block: Did you mean to use a Note block?" +#: js/blocks/ToneBlocks.js:149 +msgid "The Duo synth block is a duo-frequency modulator used to define a timbre." msgstr "" -#: js/MeterActions.js:101 -#: js/MeterActions.js:139 -msgid "beats per minute must be greater than" +#: js/blocks/ToneBlocks.js:157 +#: js/widgets/timbre.js:1476 +msgid "vibrato rate" msgstr "" -#: js/MeterActions.js:111 -#: js/MeterActions.js:149 -msgid "maximum" +#: js/blocks/ToneBlocks.js:157 +msgid "vibrato intensity" msgstr "" -#: js/MeterActions.js:117 -#: js/MeterActions.js:155 -msgid "beats per minute is" +#: js/blocks/ToneBlocks.js:185 +#: js/widgets/timbre.js:1221 +#.TRANS: AM (amplitude modulation) synthesizer +msgid "AM synth" msgstr "" -#: js/ToneActions.js:134 -msgid "Vibrato intensity must be between 1 and 100." +#: js/blocks/ToneBlocks.js:189 +msgid "The AM synth block is an amplitude modulator used to define a timbre." msgstr "" -#: js/ToneActions.js:139 -msgid "Vibrato rate must be greater than 0." +#: js/blocks/ToneBlocks.js:224 +#: js/widgets/timbre.js:1223 +#.TRANS: FM (frequency modulation) synthesizer +msgid "FM synth" msgstr "" -#: js/ToneActions.js:192 -#: js/ToneActions.js:265 -#.TRANS: Depth is the intesity of the tremolo or chorus effect. -msgid "Depth is out of range." +#: js/blocks/ToneBlocks.js:228 +msgid "The FM synth block is a frequency modulator used to define a timbre." msgstr "" -#: js/ToneActions.js:301 -msgid "Distortion must be from 0 to 100." +#: js/blocks/ToneBlocks.js:262 +msgid "partial" msgstr "" -#: js/ToneActions.js:332 -#.TRANS: partials components in a harmonic series -msgid "Partial must be greater than or equal to 0." +#: js/blocks/ToneBlocks.js:265 +msgid "The Partial block is used to specify a weight for a specific partial harmonic." msgstr "" -#: js/ToneActions.js:378 -#: js/ToneActions.js:417 -#: js/ToneActions.js:456 -#: js/timbre.js:782 -msgid "Unable to use synth due to existing oscillator" +#: js/blocks/ToneBlocks.js:284 +#.TRANS: partials are weighted components in a harmonic series +msgid "Partial weight must be between 0 and 1." msgstr "" -#: js/ToneActions.js:388 -#: js/ToneActions.js:427 -msgid "The input cannot be negative." +#: js/blocks/ToneBlocks.js:297 +#.TRANS: partials are weighted components in a harmonic series +msgid "Partial block should be used inside of a Weighted-partials block." msgstr "" -#: js/DictActions.js:75 -#: js/DictActions.js:153 -#: js/DictActions.js:188 -msgid "font" +#: js/blocks/ToneBlocks.js:325 +#.TRANS: partials are weighted components in a harmonic series +msgid "weighted partials" msgstr "" -#: js/musicutils.js:363 -#: js/musicutils.js:471 -#: js/pitchdrummatrix.js:151 -#: js/musickeyboard.js:2563 -msgid "rest" +#: js/blocks/ToneBlocks.js:383 +msgid "The Harmonic block will add harmonics to the contained notes." msgstr "" -#: js/musicutils.js:565 -#.TRANS: ordinal number. Please keep exactly one space between each number. -msgid "1st 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th" +#: js/blocks/ToneBlocks.js:390 +#.TRANS: A harmonic is an overtone. +msgid "harmonic" msgstr "" -#: js/musicutils.js:629 -#: js/musicutils.js:812 -#: js/musicutils.js:911 -#.TRANS: augmented is a music term related to intervals -msgid "augmented" +#: js/blocks/ToneBlocks.js:431 +msgid "The Distortion block adds distortion to the pitch." msgstr "" -#: js/musicutils.js:631 -#: js/musicutils.js:813 -#: js/musicutils.js:910 -#.TRANS: diminished is a music term related to intervals and mode -msgid "diminished" +#: js/blocks/ToneBlocks.js:438 +#: js/widgets/timbre.js:2100 +#.TRANS: distortion is an alteration in the sound +msgid "distortion" msgstr "" -#: js/musicutils.js:639 -#.TRANS: twelve semi-tone scale for music -msgid "chromatic" +#: js/blocks/ToneBlocks.js:487 +msgid "The Tremolo block adds a wavering effect." msgstr "" -#: js/musicutils.js:640 -msgid "algerian" +#: js/blocks/ToneBlocks.js:495 +#: js/widgets/timbre.js:2092 +#.TRANS: a wavering effect in a musical tone +msgid "tremolo" msgstr "" -#: js/musicutils.js:641 -msgid "spanish" +#: js/blocks/ToneBlocks.js:500 +#: js/blocks/ToneBlocks.js:569 +#: js/blocks/ToneBlocks.js:630 +#: js/blocks/ToneBlocks.js:689 +#: js/widgets/timbre.js:2134 +#: js/widgets/timbre.js:2222 +#: js/widgets/timbre.js:2317 +#: js/widgets/timbre.js:2419 +#.TRANS: rate at which tremolo wavers +msgid "rate" msgstr "" -#: js/musicutils.js:643 -#.TRANS: modal scale in music -msgid "octatonic" +#: js/blocks/ToneBlocks.js:502 +#: js/blocks/ToneBlocks.js:630 +#: js/widgets/timbre.js:2137 +#: js/widgets/timbre.js:2328 +#.TRANS: amplitude of tremolo waver +msgid "depth" msgstr "" -#: js/musicutils.js:645 -#.TRANS: harmonic major scale in music -msgid "harmonic major" +#: js/blocks/ToneBlocks.js:559 +msgid "The Phaser block adds a sweeping sound." msgstr "" -#: js/musicutils.js:647 -#.TRANS: natural minor scales in music -msgid "natural minor" +#: js/blocks/ToneBlocks.js:566 +#: js/widgets/timbre.js:2098 +#.TRANS: alter the phase of the sound +msgid "phaser" msgstr "" -#: js/musicutils.js:649 -#.TRANS: harmonic minor scale in music -msgid "harmonic minor" +#: js/blocks/ToneBlocks.js:569 +#: js/turtleactions/IntervalsActions.js:114 +#: js/widgets/timbre.js:2422 +msgid "octaves" msgstr "" -#: js/musicutils.js:651 -#.TRANS: melodic minor scale in music -msgid "melodic minor" +#: js/blocks/ToneBlocks.js:569 +#: js/widgets/timbre.js:2425 +msgid "base frequency" msgstr "" -#: js/musicutils.js:655 -#.TRANS: modal scale for music -msgid "dorian" +#: js/blocks/ToneBlocks.js:619 +msgid "The Chorus block adds a chorus effect." msgstr "" -#: js/musicutils.js:657 -#.TRANS: modal scale for music -msgid "phrygian" +#: js/blocks/ToneBlocks.js:627 +#: js/widgets/timbre.js:2096 +#.TRANS: musical effect to simulate a choral sound +msgid "chorus" msgstr "" -#: js/musicutils.js:659 -#.TRANS: modal scale for music -msgid "lydian" +#: js/blocks/ToneBlocks.js:630 +msgid "delay" msgstr "" -#: js/musicutils.js:661 -#.TRANS: modal scale for music -msgid "mixolydian" +#: js/blocks/ToneBlocks.js:678 +msgid "The Vibrato block adds a rapid, slight variation in pitch." msgstr "" -#: js/musicutils.js:665 -#.TRANS: modal scale for music -msgid "locrian" +#: js/blocks/ToneBlocks.js:686 +#: js/widgets/timbre.js:2094 +#.TRANS: a rapid, slight variation in pitch +msgid "vibrato" msgstr "" -#: js/musicutils.js:667 -#.TRANS: minor jazz scale for music -msgid "jazz minor" +#: js/blocks/ToneBlocks.js:689 +#: js/widgets/timbre.js:2221 +msgid "intensity" msgstr "" -#: js/musicutils.js:669 -#.TRANS: bebop scale for music -msgid "bebop" +#: js/blocks/ToneBlocks.js:733 +#.TRANS: select synthesizer +msgid "set synth" msgstr "" -#: js/musicutils.js:670 -msgid "arabic" +#: js/blocks/ToneBlocks.js:804 +msgid "synth name" msgstr "" -#: js/musicutils.js:671 -msgid "byzantine" +#: js/blocks/ToneBlocks.js:842 +msgid "set default instrument" msgstr "" -#: js/musicutils.js:673 -#.TRANS: musical scale for music by Verdi -msgid "enigmatic" +#: js/blocks/ToneBlocks.js:895 +#: js/blocks/ToneBlocks.js:943 +#.TRANS: set the characteristics of a custom instrument +msgid "set instrument" msgstr "" -#: js/musicutils.js:674 -msgid "ethiopian" +#: js/blocks/ToneBlocks.js:898 +#: js/blocks/ToneBlocks.js:926 +#: js/blocks/ToneBlocks.js:932 +msgid "The Set instrument block selects a voice for the synthesizer," msgstr "" -#: js/musicutils.js:676 -#.TRANS: Ethiopic scale for music -msgid "geez" +#: js/blocks/ToneBlocks.js:900 +#: js/blocks/ToneBlocks.js:934 +msgid "eg guitar piano violin or cello." msgstr "" -#: js/musicutils.js:677 -msgid "hindu" +#: js/blocks/ToneBlocks.js:1015 +msgid "Import a sound file to use as an instrument and set its pitch center." msgstr "" -#: js/musicutils.js:678 -msgid "hungarian" +#: js/blocks/ToneBlocks.js:1110 +msgid "Upload a sound file to connect with the sample block." msgstr "" -#: js/musicutils.js:680 -#.TRANS: minor Romanian scale for music -msgid "romanian minor" +#: js/blocks/VolumeBlocks.js:35 +msgid "synth volume" msgstr "" -#: js/musicutils.js:681 -msgid "spanish gypsy" +#: js/blocks/VolumeBlocks.js:39 +msgid "The Synth volume block returns the current volume of the current synthesizer." msgstr "" -#: js/musicutils.js:683 -#.TRANS: musical scale for Mid-Eastern music -msgid "maqam" +#: js/blocks/VolumeBlocks.js:105 +msgid "master volume" msgstr "" -#: js/musicutils.js:685 -#.TRANS: minor blues scale for music -msgid "minor blues" +#: js/blocks/VolumeBlocks.js:109 +msgid "The Master volume block returns the master volume." msgstr "" -#: js/musicutils.js:687 -#.TRANS: major blues scale for music -msgid "major blues" +#: js/blocks/VolumeBlocks.js:355 +#: js/blocks/VolumeBlocks.js:524 +msgid "set synth volume" msgstr "" -#: js/musicutils.js:688 -msgid "whole tone" +#: js/blocks/VolumeBlocks.js:362 +#: js/blocks/VolumeBlocks.js:545 +msgid "synth" msgstr "" -#: js/musicutils.js:690 -#.TRANS: pentatonic is a general term that means "five note scale". This scale is typically known as "minor pentatonic" -msgid "minor pentatonic" +#: js/blocks/VolumeBlocks.js:403 +#: js/blocks/VolumeBlocks.js:577 +#: js/blocks/VolumeBlocks.js:740 +#: js/turtleactions/VolumeActions.js:173 +msgid "Setting volume to 0." msgstr "" -#: js/musicutils.js:692 -#.TRANS: pentatonic is a general term that means "five note scale". This scale is typically known as "major pentatonic" -msgid "major pentatonic" +#: js/blocks/VolumeBlocks.js:440 +msgid "Synth not found" msgstr "" -#: js/musicutils.js:693 -msgid "chinese" +#: js/blocks/VolumeBlocks.js:494 +msgid "set drum volume" msgstr "" -#: js/musicutils.js:694 -msgid "egyptian" +#: js/blocks/VolumeBlocks.js:530 +msgid "The Set synth volume block will change the volume of a particular synth," msgstr "" -#: js/musicutils.js:696 -#.TRANS: https://en.wikipedia.org/wiki/Hirajoshi_scale NOTE: There are three different versions of this scale -msgid "hirajoshi" +#: js/blocks/VolumeBlocks.js:532 +msgid "eg guitar violin snare drum etc." msgstr "" -#: js/musicutils.js:697 -msgid "Japan" +#: js/blocks/VolumeBlocks.js:534 +msgid "The default volume is 50." msgstr "" -#: js/musicutils.js:699 -#.TRANS: https://en.wikipedia.org/wiki/In_scale and https://en.wikipedia.org/wiki/Sakura_Sakura -msgid "in" +#: js/blocks/VolumeBlocks.js:536 +msgid "The range is 0 for silence to 100 for full volume." msgstr "" -#: js/musicutils.js:701 -#.TRANS: https://en.wikipedia.org/wiki/Miny%C5%8D_scale -msgid "minyo" +#: js/blocks/VolumeBlocks.js:597 +msgid "set panning" msgstr "" -#: js/musicutils.js:703 -#.TRANS: Italian mathematician -msgid "fibonacci" +#: js/blocks/VolumeBlocks.js:603 +msgid "The Set Panning block sets the panning for all synthesizers." msgstr "" -#: js/musicutils.js:708 -#: js/musicutils.js:1106 -#.TRANS: lowpass filter -msgid "lowpass" +#: js/blocks/VolumeBlocks.js:625 +msgid "Warning: Sound is coming out from only the left or right side." msgstr "" -#: js/musicutils.js:710 -#: js/musicutils.js:1107 -#.TRANS: bandpass filter -msgid "bandpass" +#: js/blocks/VolumeBlocks.js:647 +#: js/blocks/VolumeBlocks.js:695 +msgid "set master volume" msgstr "" -#: js/musicutils.js:712 -#: js/musicutils.js:1108 -#.TRANS: high-shelf filter -msgid "highshelf" +#: js/blocks/VolumeBlocks.js:653 +msgid "The Set master volume block sets the volume for all synthesizers." msgstr "" -#: js/musicutils.js:714 -#: js/musicutils.js:1109 -#.TRANS: low-shelf filter -msgid "lowshelf" +#: js/blocks/VolumeBlocks.js:784 +msgid "The Set relative volume block changes the volume of the contained notes." msgstr "" -#: js/musicutils.js:716 -#: js/musicutils.js:1110 -#.TRANS: notch-shelf filter -msgid "notch" +#: js/blocks/VolumeBlocks.js:791 +msgid "set relative volume" msgstr "" -#: js/musicutils.js:718 -#: js/musicutils.js:1111 -#.TRANS: all-pass filter -msgid "allpass" +#: js/blocks/VolumeBlocks.js:857 +msgid "decrescendo" msgstr "" -#: js/musicutils.js:720 -#: js/musicutils.js:1112 -#.TRANS: peaking filter -msgid "peaking" +#: js/blocks/VolumeBlocks.js:921 +msgid "crescendo" msgstr "" -#: js/musicutils.js:731 -#: js/synthutils.js:58 -#.TRANS: musical instrument -msgid "violin" +#: js/blocks/WidgetBlocks.js:81 +#.TRANS: sound envelope (ADSR) +msgid "envelope" msgstr "" -#: js/musicutils.js:732 -#: js/synthutils.js:60 -#.TRANS: viola musical instrument -msgid "viola" +#: js/blocks/WidgetBlocks.js:89 +#.TRANS: Attack time is the time taken for initial run-up of level from nil to peak, beginning when the key is first pressed. +msgid "attack" msgstr "" -#: js/musicutils.js:733 -#: js/synthutils.js:98 -#.TRANS: xylophone musical instrument -msgid "xylophone" +#: js/blocks/WidgetBlocks.js:91 +#.TRANS: Decay time is the time taken for the subsequent run down from the attack level to the designated sustain level. +msgid "decay" msgstr "" -#: js/musicutils.js:734 -#: js/synthutils.js:120 -#.TRANS: vibraphone musical instrument -msgid "vibraphone" +#: js/blocks/WidgetBlocks.js:93 +#.TRANS: Sustain level is the level during the main sequence of the sound's duration, until the key is released. +msgid "sustain" msgstr "" -#: js/musicutils.js:735 -#: js/synthutils.js:62 -#.TRANS: musical instrument -msgid "cello" +#: js/blocks/WidgetBlocks.js:95 +#.TRANS: Release time is the time taken for the level to decay from the sustain level to zero after the key is released. +msgid "release" msgstr "" -#: js/musicutils.js:737 -#: js/synthutils.js:66 -#.TRANS: viola musical instrument -msgid "double bass" +#: js/blocks/WidgetBlocks.js:113 +msgid "Attack value should be from 0 to 100." msgstr "" -#: js/musicutils.js:738 -#: js/synthutils.js:68 -#: js/rhythmruler.js:2119 -#.TRANS: musical instrument -msgid "guitar" +#: js/blocks/WidgetBlocks.js:116 +msgid "Decay value should be from 0 to 100." msgstr "" -#: js/musicutils.js:739 -#: js/synthutils.js:70 -#.TRANS: musical instrument -msgid "acoustic guitar" +#: js/blocks/WidgetBlocks.js:119 +msgid "Sustain value should be from 0 to 100." msgstr "" -#: js/musicutils.js:740 -#: js/synthutils.js:72 -#.TRANS: musical instrument -msgid "flute" +#: js/blocks/WidgetBlocks.js:122 +msgid "Release value should be from 0-100." msgstr "" -#: js/musicutils.js:741 -#: js/synthutils.js:74 -#.TRANS: musical instrument -msgid "clarinet" +#: js/blocks/WidgetBlocks.js:140 +msgid "You are adding multiple envelope blocks." msgstr "" -#: js/musicutils.js:742 -#: js/synthutils.js:76 -#.TRANS: musical instrument -msgid "saxophone" +#: js/blocks/WidgetBlocks.js:171 +#.TRANS: a filter removes some unwanted components from a signal +msgid "filter" msgstr "" -#: js/musicutils.js:743 -#: js/synthutils.js:78 -#.TRANS: musical instrument -msgid "tuba" +#: js/blocks/WidgetBlocks.js:181 +#: js/widgets/timbre.js:1818 +#.TRANS: rolloff is the steepness of a change in frequency. +msgid "rolloff" msgstr "" -#: js/musicutils.js:744 -#: js/synthutils.js:80 -#.TRANS: musical instrument -msgid "trumpet" +#: js/blocks/WidgetBlocks.js:213 +#.TRANS: rolloff is the steepness of a change in frequency. +msgid "Rolloff value should be either -12, -24, -48, or -96 decibels/octave." msgstr "" -#: js/musicutils.js:745 -#: js/synthutils.js:82 -#.TRANS: musical instrument -msgid "oboe" +#: js/blocks/WidgetBlocks.js:252 +msgid "The Temperament tool is used to define custom tuning." msgstr "" -#: js/musicutils.js:746 -#: js/synthutils.js:84 -#.TRANS: musical instrument -msgid "trombone" +#: js/blocks/WidgetBlocks.js:332 +#: js/blocks/WidgetBlocks.js:1573 +#: js/widgets/sampler.js:547 +msgid "Upload a sample and adjust its pitch center." msgstr "" -#: js/musicutils.js:747 -#: js/synthutils.js:100 -#.TRANS: polytone synthesizer -msgid "electronic synth" +#: js/blocks/WidgetBlocks.js:339 +#.TRANS: the speed at music is should be played. +msgid "sampler" msgstr "" -#: js/musicutils.js:748 -#: js/synthutils.js:102 -#.TRANS: simple monotone synthesizer -msgid "simple 1" +#: js/blocks/WidgetBlocks.js:517 +msgid "The Meter block opens a tool to select strong beats for the meter." msgstr "" -#: js/musicutils.js:749 -msgid "simple 2" +#: js/blocks/WidgetBlocks.js:573 +msgid "The oscilloscope block opens a tool to visualize waveforms." msgstr "" -#: js/musicutils.js:750 -msgid "simple 3" +#: js/blocks/WidgetBlocks.js:578 +msgid "oscilloscope" msgstr "" -#: js/musicutils.js:751 -msgid "simple 4" +#: js/blocks/WidgetBlocks.js:645 +msgid "The Custom mode block opens a tool to explore musical mode (the spacing of the notes in a scale)." msgstr "" -#: js/musicutils.js:753 -#: js/synthutils.js:49 -#.TRANS: brown noise synthesizer -msgid "brown noise" +#: js/blocks/WidgetBlocks.js:651 +#.TRANS: musical mode is the pattern of half-steps in an octave, e.g., Major or Minor modes +msgid "custom mode" msgstr "" -#: js/musicutils.js:754 -#: js/synthutils.js:51 -#.TRANS: pink noise synthesizer -msgid "pink noise" +#: js/blocks/WidgetBlocks.js:700 +msgid "The Tempo block opens a metronome to visualize the beat." msgstr "" -#: js/musicutils.js:756 -#: js/synthutils.js:127 -#: js/rhythmruler.js:1670 -#: js/rhythmruler.js:1928 -#.TRANS: musical instrument -msgid "snare drum" +#: js/blocks/WidgetBlocks.js:762 +msgid "The Arpeggio Widget is used to compose chord sequences." msgstr "" -#: js/musicutils.js:757 -#: js/synthutils.js:129 -#.TRANS: musical instrument -msgid "kick drum" +#: js/blocks/WidgetBlocks.js:837 +msgid "The Pitch drum matrix is used to map pitches to drum sounds." msgstr "" -#: js/musicutils.js:758 -#: js/synthutils.js:131 -#.TRANS: musical instrument -msgid "tom tom" +#: js/blocks/WidgetBlocks.js:842 +#.TRANS: makes a mapping between pitches and drum sounds +msgid "pitch-drum mapper" msgstr "" -#: js/musicutils.js:759 -#: js/synthutils.js:133 -#.TRANS: musical instrument -msgid "floor tom" +#: js/blocks/WidgetBlocks.js:891 +msgid "You must have at least one pitch block and one drum block in the matrix." msgstr "" -#: js/musicutils.js:760 -#: js/synthutils.js:135 -#.TRANS: musical instrument -msgid "bass drum" +#: js/blocks/WidgetBlocks.js:920 +msgid "The Pitch slider tool to is used to generate pitches at selected frequencies." msgstr "" -#: js/musicutils.js:761 -#: js/synthutils.js:137 -#.TRANS: a drum made from an inverted cup -msgid "cup drum" +#: js/blocks/WidgetBlocks.js:925 +#.TRANS: widget to generate pitches using a slider +msgid "pitch slider" msgstr "" -#: js/musicutils.js:762 -#: js/synthutils.js:139 -#.TRANS: musical instrument -msgid "darbuka drum" +#: js/blocks/WidgetBlocks.js:977 +msgid "chromatic keyboard" msgstr "" -#: js/musicutils.js:763 -#: js/synthutils.js:143 -#.TRANS: musical instrument -msgid "hi hat" +#: js/blocks/WidgetBlocks.js:1011 +#: js/blocks/WidgetBlocks.js:1077 +#.TRANS: widget to generate pitches using a slider +msgid "music keyboard" msgstr "" -#: js/musicutils.js:764 -#: js/synthutils.js:145 -#.TRANS: a small metal bell -msgid "ride bell" +#: js/blocks/WidgetBlocks.js:1062 +#: js/blocks/WidgetBlocks.js:1069 +msgid "The Music keyboard block opens a piano keyboard that can be used to create notes." msgstr "" -#: js/musicutils.js:765 -#: js/synthutils.js:147 -#.TRANS: musical instrument -msgid "cow bell" +#: js/blocks/WidgetBlocks.js:1128 +msgid "The Pitch staircase tool to is used to generate pitches from a given ratio." msgstr "" -#: js/musicutils.js:766 -msgid "japanese drum" +#: js/blocks/WidgetBlocks.js:1135 +#.TRANS: generate a progressive sequence of pitches +msgid "pitch staircase" msgstr "" -#: js/musicutils.js:767 -#: js/synthutils.js:153 -#.TRANS: musical instrument -msgid "japanese bell" +#: js/blocks/WidgetBlocks.js:1222 +msgid "The Rhythm Maker block opens a tool to create drum machines." msgstr "" -#: js/musicutils.js:768 -#: js/synthutils.js:149 -#.TRANS: musical instrument -msgid "triangle bell" +#: js/blocks/WidgetBlocks.js:1291 +msgid "G major scale" msgstr "" -#: js/musicutils.js:769 -#: js/synthutils.js:151 -#.TRANS: musical instrument -msgid "finger cymbals" +#: js/blocks/WidgetBlocks.js:1326 +msgid "C major scale" msgstr "" -#: js/musicutils.js:770 -#: js/synthutils.js:155 -#.TRANS: a musically tuned set of bells -msgid "chime" +#: js/blocks/WidgetBlocks.js:1366 +msgid "The Phrase Maker block opens a tool to create musical phrases." msgstr "" -#: js/musicutils.js:771 -#: js/synthutils.js:157 -#.TRANS: a musical instrument -msgid "gong" +#: js/blocks/WidgetBlocks.js:1373 +#.TRANS: assigns pitch to a sequence of beats to generate a melody +msgid "phrase maker" msgstr "" -#: js/musicutils.js:772 -#: js/synthutils.js:159 -#.TRANS: sound effect -msgid "clang" +#: js/blocks/WidgetBlocks.js:1444 +msgid "You must have at least one pitch block and one rhythm block in the matrix." msgstr "" -#: js/musicutils.js:773 -#: js/synthutils.js:161 -#.TRANS: sound effect -msgid "crash" +#: js/blocks/WidgetBlocks.js:1503 +msgid "The Status block opens a tool for inspecting the status of Music Blocks as it is running." msgstr "" -#: js/musicutils.js:774 -#: js/synthutils.js:163 -#.TRANS: sound effect -msgid "bottle" +#: js/blocks/WidgetBlocks.js:1580 +#.TRANS: AI-generated music +msgid "aimusic" msgstr "" -#: js/musicutils.js:775 -#: js/synthutils.js:165 -#.TRANS: sound effect -msgid "clap" +#: js/turtleactions/MeterActions.js:101 +#: js/turtleactions/MeterActions.js:139 +msgid "beats per minute must be greater than" msgstr "" -#: js/musicutils.js:776 -#: js/synthutils.js:167 -#.TRANS: sound effect -msgid "slap" +#: js/turtleactions/MeterActions.js:111 +#: js/turtleactions/MeterActions.js:149 +msgid "maximum" msgstr "" -#: js/musicutils.js:777 -#: js/synthutils.js:169 -#.TRANS: sound effect -msgid "splash" +#: js/turtleactions/MeterActions.js:117 +#: js/turtleactions/MeterActions.js:155 +msgid "beats per minute is" msgstr "" -#: js/musicutils.js:778 -#: js/synthutils.js:171 -#.TRANS: sound effect -msgid "bubbles" +#: js/turtleactions/DictActions.js:75 +#: js/turtleactions/DictActions.js:142 +#: js/turtleactions/DictActions.js:172 +msgid "font" msgstr "" -#: js/musicutils.js:779 -#: js/synthutils.js:173 -#.TRANS: sound effect -msgid "raindrop" +#: js/turtleactions/DictActions.js:255 +msgid "Dictionary with this name does not exist" msgstr "" -#: js/musicutils.js:780 -#: js/synthutils.js:175 -#.TRANS: animal sound effect -msgid "cat" +#: js/turtleactions/DictActions.js:259 +msgid "Key with this name does not exist in " msgstr "" -#: js/musicutils.js:781 -#: js/synthutils.js:177 -#.TRANS: animal sound effect -msgid "cricket" +#: js/turtleactions/DrumActions.js:227 +msgid "Noise Block: Did you mean to use a Note block?" msgstr "" -#: js/musicutils.js:782 -#: js/synthutils.js:179 -#.TRANS: animal sound effect -msgid "dog" +#: js/turtleactions/IntervalsActions.js:113 +msgid "one" msgstr "" -#: js/musicutils.js:784 -#: js/synthutils.js:86 -#.TRANS: musical instrument -msgid "banjo" +#: js/turtleactions/IntervalsActions.js:113 +msgid "two" msgstr "" -#: js/musicutils.js:785 -#: js/synthutils.js:88 -#.TRANS: musical instrument -msgid "koto" +#: js/turtleactions/IntervalsActions.js:113 +msgid "three" msgstr "" -#: js/musicutils.js:786 -#: js/synthutils.js:90 -#.TRANS: musical instrument -msgid "dulcimer" +#: js/turtleactions/IntervalsActions.js:113 +msgid "four" msgstr "" -#: js/musicutils.js:787 -#: js/synthutils.js:92 -#.TRANS: musical instrument -msgid "electric guitar" +#: js/turtleactions/IntervalsActions.js:113 +msgid "five" msgstr "" -#: js/musicutils.js:788 -#: js/synthutils.js:94 -#.TRANS: musical instrument -msgid "bassoon" +#: js/turtleactions/IntervalsActions.js:113 +msgid "six" msgstr "" -#: js/musicutils.js:789 -#: js/synthutils.js:96 -#.TRANS: musical instrument -msgid "celeste" +#: js/turtleactions/IntervalsActions.js:113 +msgid "seven" msgstr "" -#: js/musicutils.js:791 -#: js/musicutils.js:1123 -#: js/musicutils.js:1131 -#: js/temperament.js:650 -#.TRANS: musical temperament -msgid "equal" +#: js/turtleactions/IntervalsActions.js:113 +msgid "eight" msgstr "" -#: js/musicutils.js:793 -#: js/musicutils.js:1125 -#: js/musicutils.js:1133 -#.TRANS: musical temperament -msgid "Pythagorean" +#: js/turtleactions/IntervalsActions.js:113 +msgid "nine" msgstr "" -#: js/musicutils.js:795 -#: js/musicutils.js:1124 -#: js/musicutils.js:1132 -#.TRANS: musical temperament -msgid "just intonation" +#: js/turtleactions/IntervalsActions.js:119 +msgid "a" msgstr "" -#: js/musicutils.js:797 -#: js/musicutils.js:1126 -#: js/musicutils.js:1127 -#: js/musicutils.js:1134 -#: js/musicutils.js:1135 -#.TRANS: musical temperament -msgid "meantone" +#: js/turtleactions/IntervalsActions.js:120 +msgid "below" msgstr "" -#: js/musicutils.js:814 -msgid "major 7th" +#: js/turtleactions/IntervalsActions.js:124 +msgid "above" msgstr "" -#: js/musicutils.js:815 -msgid "minor 7th" +#: js/turtleactions/IntervalsActions.js:131 +msgid "plus" msgstr "" -#: js/musicutils.js:816 -msgid "dominant 7th" +#: js/turtleactions/IntervalsActions.js:139 +msgid " below" msgstr "" -#: js/musicutils.js:817 -msgid "minor-major 7th" +#: js/turtleactions/IntervalsActions.js:257 +msgid "Adding missing pitch number 0." msgstr "" -#: js/musicutils.js:818 -msgid "fully-diminished 7th" +#: js/turtleactions/IntervalsActions.js:265 +msgid "Ignoring pitch numbers less than zero or greater than eleven." msgstr "" -#: js/musicutils.js:819 -msgid "half-diminished 7th" +#: js/turtleactions/IntervalsActions.js:271 +msgid "Ignoring duplicate pitch numbers." msgstr "" -#: js/musicutils.js:4379 -#: js/musicutils.js:4416 -msgid "current" +#: js/turtleactions/ToneActions.js:134 +msgid "Vibrato intensity must be between 1 and 100." msgstr "" -#: js/musicutils.js:4382 -#: js/musicutils.js:4407 -msgid "next" +#: js/turtleactions/ToneActions.js:139 +msgid "Vibrato rate must be greater than 0." msgstr "" -#: js/musicutils.js:4385 -#: js/musicutils.js:4412 -msgid "previous" +#: js/turtleactions/ToneActions.js:192 +#: js/turtleactions/ToneActions.js:265 +#.TRANS: Depth is the intesity of the tremolo or chorus effect. +msgid "Depth is out of range." msgstr "" -#: js/synthutils.js:104 -#.TRANS: simple monotone synthesizer -msgid "simple-2" +#: js/turtleactions/ToneActions.js:301 +msgid "Distortion must be from 0 to 100." msgstr "" -#: js/synthutils.js:106 -#.TRANS: simple monotone synthesizer -msgid "simple-3" +#: js/turtleactions/ToneActions.js:332 +#.TRANS: partials components in a harmonic series +msgid "Partial must be greater than or equal to 0." msgstr "" -#: js/synthutils.js:108 -#.TRANS: simple monotone synthesizer -msgid "simple-4" +#: js/turtleactions/ToneActions.js:378 +#: js/turtleactions/ToneActions.js:417 +#: js/turtleactions/ToneActions.js:456 +#: js/widgets/timbre.js:782 +msgid "Unable to use synth due to existing oscillator" msgstr "" -#: js/synthutils.js:141 -#.TRANS: musical instrument -msgid "taiko" +#: js/turtleactions/ToneActions.js:388 +#: js/turtleactions/ToneActions.js:427 +msgid "The input cannot be negative." msgstr "" -#: js/modewidget.js:86 -#: js/modewidget.js:88 -#: js/modewidget.js:642 -#: js/modewidget.js:644 -#: js/modewidget.js:712 -#: js/modewidget.js:714 -#: js/temperament.js:2078 -#: js/rhythmruler.js:189 -#: js/rhythmruler.js:1410 -#: js/rhythmruler.js:1412 -#: js/rhythmruler.js:1435 -#: js/rhythmruler.js:1437 -#: js/meterwidget.js:89 -#: js/meterwidget.js:91 +#: js/widgets/modewidget.js:86 +#: js/widgets/modewidget.js:88 +#: js/widgets/modewidget.js:642 +#: js/widgets/modewidget.js:644 +#: js/widgets/modewidget.js:712 +#: js/widgets/modewidget.js:714 +#: js/widgets/meterwidget.js:194 +#: js/widgets/meterwidget.js:196 +#: js/widgets/temperament.js:2236 +#: js/widgets/rhythmruler.js:457 +#: js/widgets/rhythmruler.js:1790 +#: js/widgets/rhythmruler.js:1792 +#: js/widgets/rhythmruler.js:1816 +#: js/widgets/rhythmruler.js:1818 msgid "Play all" msgstr "" -#: js/modewidget.js:115 -#: js/pitchstaircase.js:641 -#: js/phrasemaker.js:339 -#: js/pitchdrummatrix.js:94 -#: js/pitchslider.js:125 -#: js/temperament.js:2083 -#: js/musickeyboard.js:530 -#: js/timbre.js:756 -#: js/meterwidget.js:124 -#: js/arpeggio.js:103 +#: js/widgets/modewidget.js:115 +#: js/widgets/meterwidget.js:229 +#: js/widgets/pitchdrummatrix.js:166 +#: js/widgets/pitchslider.js:125 +#: js/widgets/pitchstaircase.js:641 +#: js/widgets/temperament.js:2244 +#: js/widgets/timbre.js:756 +#: js/widgets/arpeggio.js:103 +#: js/widgets/musickeyboard.js:688 +#: js/widgets/phrasemaker.js:550 msgid "Save" msgstr "" -#: js/modewidget.js:121 -#: js/pitchstaircase.js:686 -#: js/phrasemaker.js:356 -#: js/pitchdrummatrix.js:109 -#: js/musickeyboard.js:534 -#: js/rhythmruler.js:269 -#: js/arpeggio.js:118 +#: js/widgets/modewidget.js:121 +#: js/widgets/pitchdrummatrix.js:181 +#: js/widgets/pitchstaircase.js:686 +#: js/widgets/arpeggio.js:118 +#: js/widgets/musickeyboard.js:696 +#: js/widgets/phrasemaker.js:567 +#: js/widgets/rhythmruler.js:601 #.TRANS: clear all subdivisions from the ruler. msgid "Clear" msgstr "" -#: js/modewidget.js:127 +#: js/widgets/modewidget.js:127 msgid "Rotate counter clockwise" msgstr "" -#: js/modewidget.js:133 +#: js/widgets/modewidget.js:133 msgid "Rotate clockwise" msgstr "" -#: js/modewidget.js:139 +#: js/widgets/modewidget.js:139 msgid "Invert" msgstr "" -#: js/modewidget.js:145 -#: js/pitchstaircase.js:678 -#: js/rhythmruler.js:258 -#: js/timbre.js:963 +#: js/widgets/modewidget.js:145 +#: js/widgets/pitchstaircase.js:678 +#: js/widgets/timbre.js:963 +#: js/widgets/rhythmruler.js:578 msgid "Undo" msgstr "" -#: js/modewidget.js:163 +#: js/widgets/modewidget.js:163 #.TRANS: A circle of notes represents the musical mode. msgid "Click in the circle to select notes for the mode." msgstr "" -#: js/modewidget.js:1017 -#: js/pitchstaircase.js:580 -#: js/phrasemaker.js:4855 -#: js/temperament.js:1754 -#: js/rhythmruler.js:1865 -#: js/rhythmruler.js:2081 -#: js/tempo.js:414 +#: js/widgets/modewidget.js:1017 +#: js/widgets/pitchstaircase.js:580 +#: js/widgets/temperament.js:1929 +#: js/widgets/tempo.js:414 +#: js/widgets/phrasemaker.js:5356 +#: js/widgets/rhythmruler.js:2254 +#: js/widgets/rhythmruler.js:2472 msgid "New action block generated!" msgstr "" -#: js/oscilloscope.js:79 -msgid "Zoom In" -msgstr "" - -#: js/oscilloscope.js:88 -msgid "Zoom Out" -msgstr "" - -#: js/pitchstaircase.js:624 -msgid "Play chord" -msgstr "" - -#: js/pitchstaircase.js:632 -msgid "Play scale" +#: js/widgets/meterwidget.js:275 +msgid "Reset" msgstr "" -#: js/pitchstaircase.js:696 -msgid "Click on a note to create a new step." +#: js/widgets/meterwidget.js:301 +msgid "Click in the circle to select strong beats for the meter." msgstr "" -#: js/phrasemaker.js:363 -msgid "Export" +#: js/widgets/oscilloscope.js:79 +msgid "Zoom In" msgstr "" -#: js/phrasemaker.js:370 -msgid "Sort" +#: js/widgets/oscilloscope.js:88 +msgid "Zoom Out" msgstr "" -#: js/phrasemaker.js:373 -#: js/musickeyboard.js:559 -msgid "Add note" +#: js/widgets/pitchdrummatrix.js:356 +#: js/widgets/pitchdrummatrix.js:752 +msgid "Click in the grid to map notes to drums." msgstr "" -#: js/phrasemaker.js:764 -msgid "Click on the table to add notes." +#: js/widgets/pitchslider.js:103 +msgid "Move up" msgstr "" -#: js/phrasemaker.js:2414 -#: js/phrasemaker.js:2543 -msgid "tuplet value" +#: js/widgets/pitchslider.js:114 +msgid "Move down" msgstr "" -#: js/pitchdrummatrix.js:270 -#: js/pitchdrummatrix.js:639 -msgid "Click in the grid to map notes to drums." +#: js/widgets/pitchslider.js:136 +msgid "Click on the slider to create a note block." msgstr "" -#: js/pitchslider.js:103 -msgid "Move up" +#: js/widgets/pitchstaircase.js:624 +msgid "Play chord" msgstr "" -#: js/pitchslider.js:114 -msgid "Move down" +#: js/widgets/pitchstaircase.js:632 +msgid "Play scale" msgstr "" -#: js/pitchslider.js:136 -msgid "Click on the slider to create a note block." +#: js/widgets/pitchstaircase.js:696 +msgid "Click on a note to create a new step." msgstr "" -#: js/temperament.js:215 +#: js/widgets/temperament.js:321 msgid "back to 2:1 octave space" msgstr "" -#: js/temperament.js:323 +#: js/widgets/temperament.js:447 msgid "edit" msgstr "" -#: js/temperament.js:330 -#: js/temperament.js:332 -#: js/temperament.js:1336 -#: js/temperament.js:1338 +#: js/widgets/temperament.js:454 +#: js/widgets/temperament.js:456 +#: js/widgets/temperament.js:1493 +#: js/widgets/temperament.js:1495 msgid "close" msgstr "" -#: js/temperament.js:423 -#: js/temperament.js:736 -#: js/temperament.js:743 -#: js/temperament.js:845 -#: js/temperament.js:935 -#: js/temperament.js:942 -#: js/temperament.js:1015 -#: js/temperament.js:1284 -#: js/temperament.js:1354 -#: js/temperament.js:1430 +#: js/widgets/temperament.js:552 +#: js/widgets/temperament.js:877 +#: js/widgets/temperament.js:884 +#: js/widgets/temperament.js:986 +#: js/widgets/temperament.js:1080 +#: js/widgets/temperament.js:1087 +#: js/widgets/temperament.js:1160 +#: js/widgets/temperament.js:1433 +#: js/widgets/temperament.js:1511 +#: js/widgets/temperament.js:1596 msgid "done" msgstr "" -#: js/temperament.js:477 -#: js/temperament.js:482 -#: js/temperament.js:918 +#: js/widgets/temperament.js:610 +#: js/widgets/temperament.js:615 +#: js/widgets/temperament.js:1063 msgid "ratio" msgstr "" -#: js/temperament.js:483 +#: js/widgets/temperament.js:616 msgid "interval" msgstr "" -#: js/temperament.js:611 +#: js/widgets/temperament.js:744 msgid "non scalar" msgstr "" -#: js/temperament.js:650 +#: js/widgets/temperament.js:787 msgid "ratios" msgstr "" -#: js/temperament.js:650 +#: js/widgets/temperament.js:787 msgid "arbitrary" msgstr "" -#: js/temperament.js:719 +#: js/widgets/temperament.js:860 msgid "number of divisions" msgstr "" -#: js/temperament.js:741 -#: js/temperament.js:858 -#: js/temperament.js:940 -#: js/temperament.js:1033 +#: js/widgets/temperament.js:882 +#: js/widgets/temperament.js:999 +#: js/widgets/temperament.js:1085 +#: js/widgets/temperament.js:1178 msgid "preview" msgstr "" -#: js/temperament.js:788 +#: js/widgets/temperament.js:929 msgid "The Number of divisions is too large." msgstr "" -#: js/temperament.js:921 +#: js/widgets/temperament.js:1066 msgid "recursion" msgstr "" -#: js/temperament.js:1450 +#: js/widgets/temperament.js:1616 msgid "The octave ratio has changed. This changes temperament significantly." msgstr "" -#: js/temperament.js:2087 +#: js/widgets/temperament.js:2248 msgid "Table" msgstr "" -#: js/temperament.js:2185 +#: js/widgets/temperament.js:2356 msgid "Add pitches" msgstr "" -#: js/musickeyboard.js:570 -msgid "Metronome" +#: js/widgets/tempo.js:78 +#: js/widgets/tempo.js:97 +#: js/widgets/tempo.js:99 +#: js/widgets/aiwidget.js:134 +#: js/widgets/aiwidget.js:136 +#: js/widgets/rhythmruler.js:681 +#: js/widgets/rhythmruler.js:683 +#: js/widgets/rhythmruler.js:1864 +#: js/widgets/rhythmruler.js:1866 +#: js/widgets/sampler.js:180 +#: js/widgets/sampler.js:182 +msgid "Pause" msgstr "" -#: js/musickeyboard.js:1296 -#: plugins/rodi.rtp:193 -msgid "duration" +#: js/widgets/tempo.js:113 +msgid "Save tempo" msgstr "" -#: js/musickeyboard.js:2840 -msgid "New action blocks generated!" +#: js/widgets/tempo.js:144 +msgid "speed up" msgstr "" -#: js/musickeyboard.js:2841 -msgid "New action block generated" +#: js/widgets/tempo.js:150 +msgid "slow down" msgstr "" -#: js/musickeyboard.js:2984 -#: js/musickeyboard.js:2992 -msgid "MIDI device present." +#: js/widgets/tempo.js:194 +msgid "Adjust the tempo with the buttons." msgstr "" -#: js/musickeyboard.js:2995 -msgid "No MIDI device found." +#: js/widgets/tempo.js:261 +msgid "Please enter a number between 30 and 1000" msgstr "" -#: js/musickeyboard.js:3000 -msgid "Failed to get MIDI access in browser." +#: js/widgets/tempo.js:268 +#: js/widgets/tempo.js:271 +msgid "The beats per minute must be between 30 and 1000." msgstr "" -#: js/rhythmruler.js:202 -msgid "Save rhythms" +#: js/widgets/tempo.js:287 +msgid "The beats per minute must be below 1000." msgstr "" -#: js/rhythmruler.js:222 -msgid "Save drum machine" +#: js/widgets/tempo.js:303 +msgid "The beats per minute must be above 30" msgstr "" -#: js/rhythmruler.js:263 -#.TRANS: user can tap out a rhythm by clicking on a ruler. -msgid "Tap a rhythm" +#: js/widgets/timbre.js:766 +msgid "Synthesizer" msgstr "" -#: js/rhythmruler.js:342 -#: js/rhythmruler.js:344 -#: js/rhythmruler.js:1481 -#: js/rhythmruler.js:1483 -#: js/sampler.js:110 -#: js/sampler.js:112 -#: js/tempo.js:78 -#: js/tempo.js:97 -#: js/tempo.js:99 -msgid "Pause" +#: js/widgets/timbre.js:789 +msgid "Oscillator" msgstr "" -#: js/rhythmruler.js:478 -msgid "Click on the ruler to divide it." +#: js/widgets/timbre.js:840 +msgid "Envelope" msgstr "" -#: js/rhythmruler.js:603 -#: js/rhythmruler.js:605 -#: js/rhythmruler.js:804 -#: js/rhythmruler.js:806 -#: js/rhythmruler.js:1386 -#: js/rhythmruler.js:1388 -msgid "tap a rhythm" +#: js/widgets/timbre.js:886 +#: planet/js/GlobalTag.js:50 +#.TRANS: On the Planet, we use labels to tag projects. +msgid "Effects" msgstr "" -#: js/rhythmruler.js:1084 -msgid "Maximum value of 256 has been exceeded." +#: js/widgets/timbre.js:904 +msgid "Filter" msgstr "" -#: js/sampler.js:137 -msgid "Warning: Sample is bigger than 1MB." +#: js/widgets/timbre.js:946 +msgid "Add filter" msgstr "" -#: js/sampler.js:142 -msgid "Upload failed: Sample is not a .wav file." +#: js/widgets/timbre.js:987 +msgid "Click on buttons to open the timbre design tools." msgstr "" -#: js/sampler.js:164 -msgid "A new sample block was generated." +#: js/widgets/timbre.js:1273 +msgid "harmonicity" msgstr "" -#: js/sampler.js:255 -msgid "Upload sample" +#: js/widgets/timbre.js:1340 +#: js/widgets/timbre.js:1406 +msgid "modulation index" msgstr "" -#: js/sampler.js:306 -msgid "Save sample" +#: js/widgets/timbre.js:1484 +msgid "vibrato amount" msgstr "" -#: js/sampler.js:697 -#.TRANS: The reference tone is a sound used for comparison. -msgid "reference tone" +#: js/widgets/timbre.js:1919 +msgid "Filter already present." msgstr "" -#: js/tempo.js:113 -msgid "Save tempo" +#: js/widgets/timbre.js:2322 +msgid "delay (MS)" msgstr "" -#: js/tempo.js:144 -msgid "speed up" +#: js/widgets/timbre.js:2507 +msgid "distortion amount" msgstr "" -#: js/tempo.js:150 -msgid "slow down" +#: js/widgets/aiwidget.js:180 +#: js/widgets/sampler.js:227 +msgid "Warning: Sample is bigger than 1MB." msgstr "" -#: js/tempo.js:194 -msgid "Adjust the tempo with the buttons." +#: js/widgets/aiwidget.js:539 +msgid "New start block generated" msgstr "" -#: js/tempo.js:261 -msgid "Please enter a number between 30 and 1000" +#: js/widgets/aiwidget.js:541 +msgid "MIDI loading. This may take some time depending upon the number of notes in the track" msgstr "" -#: js/tempo.js:268 -#: js/tempo.js:271 -msgid "The beats per minute must be between 30 and 1000." +#: js/widgets/aiwidget.js:551 +#: js/widgets/sampler.js:254 +msgid "Upload failed: Sample is not a .wav file." msgstr "" -#: js/tempo.js:287 -msgid "The beats per minute must be below 1000." +#: js/widgets/aiwidget.js:679 +#: js/widgets/sampler.js:432 +msgid "Save sample" msgstr "" -#: js/tempo.js:303 -msgid "The beats per minute must be above 30" +#: js/widgets/aiwidget.js:701 +msgid "AI Music" msgstr "" -#: js/timbre.js:766 -msgid "Synthesizer" +#: js/widgets/arpeggio.js:239 +msgid "Click in the grid to add steps to the arpeggio." msgstr "" -#: js/timbre.js:789 -msgid "Oscillator" +#: js/widgets/help.js:95 +#: js/widgets/help.js:125 +#: js/widgets/help.js:146 +#: js/widgets/help.js:158 +#: js/widgets/help.js:376 +#: js/widgets/help.js:391 +msgid "Take a tour" msgstr "" -#: js/timbre.js:840 -msgid "Envelope" +#: js/widgets/musickeyboard.js:725 +#: js/widgets/phrasemaker.js:584 +msgid "Add note" msgstr "" -#: js/timbre.js:886 -#: js/GlobalTag.js:50 -#.TRANS: On the Planet, we use labels to tag projects. -msgid "Effects" +#: js/widgets/musickeyboard.js:744 +msgid "Metronome" +msgstr "" + +#: js/widgets/musickeyboard.js:1549 +#: plugins/rodi.rtp:193 +msgid "duration" +msgstr "" + +#: js/widgets/musickeyboard.js:3179 +msgid "New action blocks generated" +msgstr "" + +#: js/widgets/musickeyboard.js:3180 +msgid "New action block generated" msgstr "" -#: js/timbre.js:904 -msgid "Filter" +#: js/widgets/musickeyboard.js:3365 +#: js/widgets/musickeyboard.js:3373 +msgid "MIDI device present." msgstr "" -#: js/timbre.js:946 -msgid "Add filter" +#: js/widgets/musickeyboard.js:3376 +msgid "No MIDI device found." msgstr "" -#: js/timbre.js:987 -msgid "Click on buttons to open the timbre design tools." +#: js/widgets/musickeyboard.js:3386 +msgid "Failed to get MIDI access in browser." msgstr "" -#: js/timbre.js:1273 -msgid "harmonicity" +#: js/widgets/phrasemaker.js:574 +msgid "Export" msgstr "" -#: js/timbre.js:1340 -#: js/timbre.js:1406 -msgid "modulation index" +#: js/widgets/phrasemaker.js:581 +msgid "Sort" msgstr "" -#: js/timbre.js:1484 -msgid "vibrato amount" +#: js/widgets/phrasemaker.js:975 +msgid "Click on the table to add notes." msgstr "" -#: js/timbre.js:1919 -msgid "Filter already present." +#: js/widgets/phrasemaker.js:2677 +#: js/widgets/phrasemaker.js:2819 +msgid "tuplet value" msgstr "" -#: js/timbre.js:2322 -msgid "delay (MS)" +#: js/widgets/rhythmruler.js:486 +msgid "Save rhythms" msgstr "" -#: js/timbre.js:2507 -msgid "distortion amount" +#: js/widgets/rhythmruler.js:512 +msgid "Save drum machine" msgstr "" -#: js/meterwidget.js:170 -msgid "Reset" +#: js/widgets/rhythmruler.js:589 +#.TRANS: user can tap out a rhythm by clicking on a ruler. +msgid "Tap a rhythm" msgstr "" -#: js/meterwidget.js:196 -msgid "Click in the circle to select strong beats for the meter." +#: js/widgets/rhythmruler.js:817 +msgid "Click on the ruler to divide it." msgstr "" -#: js/arpeggio.js:239 -msgid "Click in the grid to add steps to the arpeggio." +#: js/widgets/rhythmruler.js:950 +#: js/widgets/rhythmruler.js:952 +#: js/widgets/rhythmruler.js:1152 +#: js/widgets/rhythmruler.js:1154 +#: js/widgets/rhythmruler.js:1765 +#: js/widgets/rhythmruler.js:1767 +msgid "tap a rhythm" msgstr "" -#: js/ProjectStorage.js:243 -msgid "anonymous" +#: js/widgets/rhythmruler.js:1459 +msgid "Maximum value of 256 has been exceeded." msgstr "" -#: js/GlobalCard.js:68 -msgid "Share" +#: js/widgets/sampler.js:237 +msgid "Recording started..." msgstr "" -#: js/GlobalCard.js:74 -msgid "Flags" +#: js/widgets/sampler.js:245 +msgid "Recording complete..." msgstr "" -#: js/LocalCard.js:36 -msgid "View published project" +#: js/widgets/sampler.js:283 +msgid "A new sample block was generated." msgstr "" -#: js/LocalCard.js:42 -msgid "Publish project" +#: js/widgets/sampler.js:378 +msgid "Upload sample" msgstr "" -#: js/LocalCard.js:51 -msgid "Edit project" +#: js/widgets/sampler.js:399 +msgid "Warning: Your sample cannot be loaded because it is >1MB." msgstr "" -#: js/LocalCard.js:52 -msgid "Delete project" +#: js/widgets/sampler.js:448 +msgid "Toggle Mic" msgstr "" -#: js/LocalCard.js:53 -msgid "Download project" +#: js/widgets/sampler.js:458 +msgid "Playback" msgstr "" -#: js/LocalCard.js:55 -msgid "Duplicate project" +#: js/widgets/sampler.js:979 +#.TRANS: The reference tone is a sound used for comparison. +msgid "reference tone" msgstr "" -#: js/GlobalTag.js:28 +#: planet/js/GlobalTag.js:28 #.TRANS: On the Planet, we use labels to tag projects. msgid "All Projects" msgstr "" -#: js/GlobalTag.js:30 -#: js/StringHelper.js:37 +#: planet/js/GlobalTag.js:30 +#: planet/js/StringHelper.js:37 #.TRANS: On the Planet, we use labels to tag projects. msgid "My Projects" msgstr "" -#: js/GlobalTag.js:32 +#: planet/js/GlobalTag.js:32 #.TRANS: On the Planet, we use labels to tag projects. msgid "Examples" msgstr "" -#: js/GlobalTag.js:34 +#: planet/js/GlobalTag.js:34 #.TRANS: On the Planet, we use labels to tag projects. msgid "Music" msgstr "" -#: js/GlobalTag.js:36 +#: planet/js/GlobalTag.js:36 #.TRANS: On the Planet, we use labels to tag projects. msgid "Art" msgstr "" -#: js/GlobalTag.js:38 +#: planet/js/GlobalTag.js:38 #.TRANS: On the Planet, we use labels to tag projects. msgid "Math" msgstr "" -#: js/GlobalTag.js:40 +#: planet/js/GlobalTag.js:40 #.TRANS: On the Planet, we use labels to tag projects. msgid "Interactive" msgstr "" -#: js/GlobalTag.js:42 +#: planet/js/GlobalTag.js:42 #.TRANS: On the Planet, we use labels to tag projects. msgid "Design" msgstr "" -#: js/GlobalTag.js:44 +#: planet/js/GlobalTag.js:44 #.TRANS: On the Planet, we use labels to tag projects. msgid "Game" msgstr "" -#: js/GlobalTag.js:46 +#: planet/js/GlobalTag.js:46 #.TRANS: On the Planet, we use labels to tag projects. msgid "Media" msgstr "" -#: js/GlobalTag.js:48 +#: planet/js/GlobalTag.js:48 #.TRANS: On the Planet, we use labels to tag projects. msgid "Sensors" msgstr "" -#: js/GlobalTag.js:52 +#: planet/js/GlobalTag.js:52 #.TRANS: On the Planet, we use labels to tag projects. msgid "Code Snippet" msgstr "" -#: js/helper.js:149 -#: js/StringHelper.js:49 -msgid "Show more tags" +#: planet/js/LocalCard.js:36 +msgid "View published project" msgstr "" -#: js/helper.js:150 -msgid "Show fewer tags" +#: planet/js/LocalCard.js:42 +msgid "Publish project" +msgstr "" + +#: planet/js/LocalCard.js:51 +msgid "Edit project" +msgstr "" + +#: planet/js/LocalCard.js:52 +msgid "Delete project" +msgstr "" + +#: planet/js/LocalCard.js:53 +msgid "Download project" +msgstr "" + +#: planet/js/LocalCard.js:55 +msgid "Duplicate project" +msgstr "" + +#: planet/js/ProjectStorage.js:243 +msgid "anonymous" +msgstr "" + +#: planet/js/SaveInterface.js:34 +msgid "Open in Music Blocks" +msgstr "" + +#: planet/js/SaveInterface.js:35 +msgid "Open in Turtle Blocks" +msgstr "" + +#: planet/js/GlobalCard.js:68 +msgid "Share" +msgstr "" + +#: planet/js/GlobalCard.js:74 +msgid "Flags" +msgstr "" + +#: planet/js/GlobalPlanet.js:35 +msgid "No results found." +msgstr "" + +#: planet/js/GlobalPlanet.js:51 +msgid "Remix of" +msgstr "" + +#: planet/js/GlobalPlanet.js:509 +msgid "Cannot connect to server" msgstr "" -#: js/ProjectViewer.js:30 +#: planet/js/ProjectViewer.js:30 msgid "Error: Report could not be submitted. Try again later." msgstr "" -#: js/ProjectViewer.js:31 +#: planet/js/ProjectViewer.js:31 msgid "Thank you for reporting this project. A moderator will review the project shortly, to verify violation of the Sugar Labs Code of Conduct." msgstr "" -#: js/ProjectViewer.js:32 -#: js/StringHelper.js:62 -#: js/StringHelper.js:64 -#: js/StringHelper.js:68 +#: planet/js/ProjectViewer.js:32 +#: planet/js/StringHelper.js:62 +#: planet/js/StringHelper.js:64 +#: planet/js/StringHelper.js:68 msgid "Report Project" msgstr "" -#: js/ProjectViewer.js:33 -#: js/StringHelper.js:63 +#: planet/js/ProjectViewer.js:33 +#: planet/js/StringHelper.js:63 msgid "Project Reported" msgstr "" -#: js/ProjectViewer.js:34 +#: planet/js/ProjectViewer.js:34 msgid "Report description required" msgstr "" -#: js/ProjectViewer.js:35 +#: planet/js/ProjectViewer.js:35 msgid "Report description too long" msgstr "" -#: js/StringHelper.js:30 +#: planet/js/Publisher.js:30 +msgid "Feature unavailable - cannot connect to server. Reload Music Blocks to try again." +msgstr "" + +#: planet/js/Publisher.js:220 +#: planet/js/Publisher.js:237 +msgid "This field is required" +msgstr "" + +#: planet/js/Publisher.js:227 +msgid "Title too long" +msgstr "" + +#: planet/js/Publisher.js:244 +msgid "Description too long" +msgstr "" + +#: planet/js/Publisher.js:341 +msgid "Server Error" +msgstr "" + +#: planet/js/Publisher.js:341 +msgid "Try Again" +msgstr "" + +#: planet/js/StringHelper.js:30 msgid "Planet" msgstr "" -#: js/StringHelper.js:31 +#: planet/js/StringHelper.js:31 msgid "Close Planet" msgstr "" -#: js/StringHelper.js:32 +#: planet/js/StringHelper.js:32 msgid "Open project from file" msgstr "" -#: js/StringHelper.js:34 +#: planet/js/StringHelper.js:34 msgid "Local" msgstr "" -#: js/StringHelper.js:35 +#: planet/js/StringHelper.js:35 msgid "Global" msgstr "" -#: js/StringHelper.js:36 +#: planet/js/StringHelper.js:36 msgid "Search for a project" msgstr "" -#: js/StringHelper.js:38 +#: planet/js/StringHelper.js:38 msgid "Publish Project" msgstr "" -#: js/StringHelper.js:40 +#: planet/js/StringHelper.js:40 msgid "Tags (max 5)" msgstr "" -#: js/StringHelper.js:41 -#: js/StringHelper.js:61 +#: planet/js/StringHelper.js:41 +#: planet/js/StringHelper.js:61 msgid "Description" msgstr "" -#: js/StringHelper.js:42 -#: js/StringHelper.js:67 +#: planet/js/StringHelper.js:42 +#: planet/js/StringHelper.js:67 msgid "Submit" msgstr "" -#: js/StringHelper.js:43 -#: js/StringHelper.js:47 +#: planet/js/StringHelper.js:43 +#: planet/js/StringHelper.js:47 msgid "Cancel" msgstr "" -#: js/StringHelper.js:44 +#: planet/js/StringHelper.js:44 msgid "Delete \\"\\"?" msgstr "" -#: js/StringHelper.js:45 +#: planet/js/StringHelper.js:45 msgid "Permanently delete project \\"\\"?" msgstr "" -#: js/StringHelper.js:48 +#: planet/js/StringHelper.js:48 msgid "Explore Projects" msgstr "" -#: js/StringHelper.js:50 +#: planet/js/StringHelper.js:49 +#: planet/js/helper.js:149 +msgid "Show more tags" +msgstr "" + +#: planet/js/StringHelper.js:50 msgid "Most recent" msgstr "" -#: js/StringHelper.js:51 +#: planet/js/StringHelper.js:51 msgid "Most liked" msgstr "" -#: js/StringHelper.js:52 +#: planet/js/StringHelper.js:52 msgid "Most downloaded" msgstr "" -#: js/StringHelper.js:53 +#: planet/js/StringHelper.js:53 msgid "A-Z" msgstr "" -#: js/StringHelper.js:54 +#: planet/js/StringHelper.js:54 msgid "Sort by" msgstr "" -#: js/StringHelper.js:55 +#: planet/js/StringHelper.js:55 msgid "Load More Projects" msgstr "" -#: js/StringHelper.js:56 +#: planet/js/StringHelper.js:56 msgid "Last Updated" msgstr "" -#: js/StringHelper.js:57 +#: planet/js/StringHelper.js:57 msgid "Creation Date" msgstr "" -#: js/StringHelper.js:58 +#: planet/js/StringHelper.js:58 msgid "Number of Downloads:" msgstr "" -#: js/StringHelper.js:59 +#: planet/js/StringHelper.js:59 msgid "Number of Likes:" msgstr "" -#: js/StringHelper.js:60 +#: planet/js/StringHelper.js:60 msgid "Tags:" msgstr "" -#: js/StringHelper.js:65 +#: planet/js/StringHelper.js:65 msgid "Report projects which violate the Sugar Labs Code of Conduct." msgstr "" -#: js/StringHelper.js:66 +#: planet/js/StringHelper.js:66 msgid "Reason for reporting project" msgstr "" -#: js/StringHelper.js:70 +#: planet/js/StringHelper.js:70 msgid "Download as File" msgstr "" -#: js/GlobalPlanet.js:35 -msgid "No results found." -msgstr "" - -#: js/GlobalPlanet.js:51 -msgid "Remix of" -msgstr "" - -#: js/GlobalPlanet.js:509 -msgid "Cannot connect to server" -msgstr "" - -#: js/Publisher.js:30 -msgid "Feature unavailable - cannot connect to server. Reload Music Blocks to try again." -msgstr "" - -#: js/Publisher.js:218 -#: js/Publisher.js:235 -msgid "This field is required" -msgstr "" - -#: js/Publisher.js:225 -msgid "Title too long" +#: planet/js/helper.js:150 +msgid "Show fewer tags" msgstr "" -#: js/Publisher.js:242 -msgid "Description too long" +#: plugins/accelerometer.rtp:48 +msgid "motion x" msgstr "" -#: js/Publisher.js:339 -msgid "Server Error" +#: plugins/accelerometer.rtp:56 +msgid "motion y" msgstr "" -#: js/Publisher.js:339 -msgid "Try Again" +#: plugins/accelerometer.rtp:64 +msgid "motion z" msgstr "" -#: js/SaveInterface.js:34 -msgid "Open in Music Blocks" +#: plugins/facebook.rtp:27 +msgid "publish" msgstr "" -#: js/SaveInterface.js:35 -msgid "Open in Turtle Blocks" +#: plugins/maths.rtp:62 +msgid "power" msgstr "" -#: plugins/weather.rtp:68 -#: plugins/weather.rtp:97 -msgid "Days ahead must be in the range of -1 to 5." +#: plugins/maths.rtp:62 +msgid "base" msgstr "" -#: plugins/weather.rtp:122 -msgid "forecast" +#: plugins/maths.rtp:62 +msgid "exp" msgstr "" -#: plugins/weather.rtp:123 -#: plugins/weather.rtp:137 -#: plugins/weather.rtp:150 -msgid "city" +#: plugins/maths.rtp:99 +msgid "floor" msgstr "" -#: plugins/weather.rtp:124 -#: plugins/weather.rtp:138 -#: plugins/weather.rtp:151 -msgid "day" +#: plugins/maths.rtp:104 +msgid "ceiling" msgstr "" -#: plugins/weather.rtp:136 -msgid "high" +#: plugins/maths.rtp:109 +msgid "to degrees" msgstr "" -#: plugins/weather.rtp:149 -msgid "low" +#: plugins/maths.rtp:114 +msgid "to radians" msgstr "" #: plugins/nutrition.rtp:104 @@ -9458,45 +9867,6 @@ msgstr "" msgid "water" msgstr "" -#: plugins/maths.rtp:62 -#: plugins/examples.rtp:93 -msgid "power" -msgstr "" - -#: plugins/maths.rtp:62 -#: plugins/examples.rtp:93 -msgid "base" -msgstr "" - -#: plugins/maths.rtp:62 -#: plugins/examples.rtp:93 -msgid "exp" -msgstr "" - -#: plugins/maths.rtp:99 -#: plugins/examples.rtp:130 -msgid "floor" -msgstr "" - -#: plugins/maths.rtp:104 -#: plugins/examples.rtp:135 -msgid "ceiling" -msgstr "" - -#: plugins/maths.rtp:109 -#: plugins/examples.rtp:140 -msgid "to degrees" -msgstr "" - -#: plugins/maths.rtp:114 -#: plugins/examples.rtp:145 -msgid "to radians" -msgstr "" - -#: plugins/facebook.rtp:27 -msgid "publish" -msgstr "" - #: plugins/rodi.rtp:172 msgid "blink" msgstr "" @@ -9525,18 +9895,66 @@ msgstr "" msgid "move" msgstr "" -#: plugins/accelerometer.rtp:48 -msgid "motion x" +#: plugins/weather.rtp:68 +#: plugins/weather.rtp:97 +msgid "Days ahead must be in the range of -1 to 5." msgstr "" -#: plugins/accelerometer.rtp:56 -msgid "motion y" +#: plugins/weather.rtp:122 +msgid "forecast" msgstr "" -#: plugins/accelerometer.rtp:64 -msgid "motion z" +#: plugins/weather.rtp:123 +#: plugins/weather.rtp:137 +#: plugins/weather.rtp:150 +msgid "city" +msgstr "" + +#: plugins/weather.rtp:124 +#: plugins/weather.rtp:138 +#: plugins/weather.rtp:151 +msgid "day" +msgstr "" + +#: plugins/weather.rtp:136 +msgid "high" +msgstr "" + +#: plugins/weather.rtp:149 +msgid "low" msgstr "" +#: js/toolbar.js:70 + +#: js/toolbar.js:130 + +#: js/toolbar.js:194 + +#: js/toolbar.js:249 + +#~msgid "Toggle JavaScript Editor" +#~msgstr "" + +#: js/EnsembleBlocks.js:643 + +#~msgid "The Turrle pitch block returns the current pitch number being played by the specified turtle." +#~msgstr "" + +#: js/PitchActions.js:88 + +#~msgid "The Scalar Step Block must be used inside of a Note Block." +#~msgstr "" + +#: js/PitchActions.js:107 + +#~msgid "The Scalar Step Block must be preceded by a Pitch Block." +#~msgstr "" + +#: js/musickeyboard.js:2840 + +#~msgid "New action blocks generated!" +#~msgstr "" + #: js/toolbar.js:110 #: js/toolbar.js:204 @@ -9877,11 +10295,6 @@ msgstr "" #~msgid "The Time block returns the number of seconds that the program has been running." #~msgstr "" -#: js/help.js:95 - -#~msgid "Take a tour" -#~msgstr "" - #: js/GlobalCard.js:48 #~msgid "More Details" @@ -12780,11 +13193,6 @@ msgstr "" #~msgid "The save-stack button saves a stack onto a custom palette. It appears after a \"long press\" on a stack." #~msgstr "" -#: js/musicutils.js:254 - -#~msgid "Custom" -#~msgstr "" - #: js/basicblocks.js:4785 #~msgid "Rhythm" diff --git a/po/agr.po b/po/agr.po index 2313475170..a44e09274a 100644 --- a/po/agr.po +++ b/po/agr.po @@ -2126,276 +2126,131 @@ #: js/planetInterface.js:104 #: js/planetInterface.js:104 #: js/planetInterface.js:104 -msgid "project undefined" -msgstr "" - -#: js/logo.js:61 -msgid "Not a valid pitch name" -msgstr "" - -#: js/logo.js:507 -#: js/ProgramBlocks.js:258 -#: js/ProgramBlocks.js:427 -msgid "You must select a file." -msgstr "" - -#: js/logo.js:1184 -#: js/turtles.js:118 -#: js/turtle-painter.js:1192 -#: js/turtle-painter.js:1193 -#: js/block.js:1463 -#: js/lilypond.js:757 -#: js/lilypond.js:921 -#: js/lilypond.js:959 -#: js/ActionBlocks.js:1223 -#: js/ProgramBlocks.js:1267 -msgid "start" -msgstr "" - -#: js/logo.js:1696 -msgid "Playback is ready." -msgstr "" - -#: js/blocks.js:1011 -#: js/blocks.js:3427 -#: js/blocks.js:3428 -#: js/blocks.js:3653 -#: js/blocks.js:4012 -#: js/blocks.js:4205 -#: js/blocks.js:5343 -#: js/blocks.js:6474 -#: js/palette.js:527 -#: js/palette.js:536 -#: js/palette.js:545 -#: js/palette.js:554 -#: js/palette.js:1131 -#: js/palette.js:1142 -#: js/palette.js:1153 -#: js/palette.js:1164 -#: js/palette.js:1183 -#: js/rubrics.js:529 -#: js/macros.js:170 -#: js/macros.js:266 -#: js/macros.js:267 -#: js/macros.js:276 -#: js/macros.js:828 -#: js/block.js:1449 -#: js/block.js:4164 -#: js/block.js:4182 -#: js/block.js:4193 -#: js/turtledefs.js:128 -#: js/turtledefs.js:230 -#: js/ActionBlocks.js:254 -#: js/ActionBlocks.js:307 -#: js/ActionBlocks.js:617 -#: js/ActionBlocks.js:716 -#: js/ActionBlocks.js:961 -#: js/ActionBlocks.js:1049 -#: js/ActionBlocks.js:1322 -#: js/ActionBlocks.js:1325 -#: js/ActionBlocks.js:1337 -#: js/ActionBlocks.js:1404 -#: js/MeterBlocks.js:715 -#: js/MeterBlocks.js:768 -#: js/MeterBlocks.js:831 -#: js/MeterBlocks.js:892 -#: js/phrasemaker.js:4412 -#: js/musickeyboard.js:2647 -#: js/rhythmruler.js:1928 -#: js/rhythmruler.js:1935 -#: js/rhythmruler.js:2119 -#: js/rhythmruler.js:2126 -msgid "action" -msgstr "" - -#: js/blocks.js:1205 -#: js/blocks.js:3380 -#: js/blocks.js:3770 -#: js/blocks.js:3801 -#: js/blocks.js:3850 -#: js/blocks.js:3885 -#: js/blocks.js:6497 -#: js/palette.js:509 -#: js/palette.js:638 -#: js/palette.js:1107 -#: js/BoxesBlocks.js:282 -#: js/BoxesBlocks.js:285 -#: js/BoxesBlocks.js:405 -#: js/BoxesBlocks.js:594 -msgid "box" -msgstr "" - -#: js/blocks.js:1680 -msgid "Consider breaking this stack into parts." +#: js/SaveInterface.js:59 +#: js/SaveInterface.js:61 +#: js/SaveInterface.js:93 +msgid "Music Blocks Project" msgstr "" -#: js/blocks.js:2408 -#: js/palette.js:653 -#: js/MediaBlocks.js:602 -msgid "open file" +#: js/SaveInterface.js:63 +msgid "This project was created in Music Blocks" msgstr "" -#: js/blocks.js:2415 -#: js/blocks.js:2423 -#: js/activity.js:1875 -msgid "audio file" +#: js/SaveInterface.js:67 +msgid "Music Blocks is a Free/Libre Software application." msgstr "" -#: js/blocks.js:2536 -#: js/blocks.js:3147 -#: js/block.js:3543 -msgid "on2" +#: js/SaveInterface.js:69 +msgid "The source code can be accessed at" msgstr "" -#: js/blocks.js:2538 -#: js/blocks.js:3149 -#: js/block.js:3545 -msgid "off" +#: js/SaveInterface.js:72 +msgid "For more information, please consult the" msgstr "" -#: js/blocks.js:2543 -#: js/blocks.js:3154 -#: js/palette.js:618 -#: js/block.js:3466 -#: js/BooleanBlocks.js:77 -#: js/BooleanBlocks.js:167 -#: js/BooleanBlocks.js:251 -#: js/BooleanBlocks.js:335 -#: js/BooleanBlocks.js:433 -#: js/BooleanBlocks.js:539 -#: js/BooleanBlocks.js:640 -#: js/BooleanBlocks.js:741 -#: js/BooleanBlocks.js:847 -#: js/BooleanBlocks.js:948 -#: js/BooleanBlocks.js:1033 -#: js/SensorsBlocks.js:910 -msgid "true" +#: js/SaveInterface.js:76 +#: js/turtledefs.js:795 +msgid "Music Blocks Guide" msgstr "" -#: js/blocks.js:2545 -#: js/blocks.js:3156 -#: js/block.js:3466 -#: js/BooleanBlocks.js:79 -#: js/BooleanBlocks.js:169 -#: js/BooleanBlocks.js:253 -#: js/BooleanBlocks.js:337 -#: js/BooleanBlocks.js:435 -#: js/BooleanBlocks.js:541 -#: js/BooleanBlocks.js:642 -#: js/BooleanBlocks.js:743 -#: js/BooleanBlocks.js:849 -#: js/BooleanBlocks.js:950 -#: js/SensorsBlocks.js:912 -msgid "false" +#: js/SaveInterface.js:83 +msgid "Alternatively, open the file in Music Blocks using the Load project button." msgstr "" -#: js/blocks.js:3183 -#: js/palette.js:574 -#: js/MediaBlocks.js:892 -#: js/MediaBlocks.js:963 -msgid "text" +#: js/SaveInterface.js:85 +msgid "Project Code" msgstr "" -#: js/blocks.js:3379 -#: js/palette.js:641 -#: js/palette.js:642 -#: js/BoxesBlocks.js:514 -msgid "store in box" +#: js/SaveInterface.js:87 +msgid "This code stores data about the blocks in a project." msgstr "" -#: js/blocks.js:3384 -#: js/blocks.js:3824 -#: js/blocks.js:3859 -#: js/blocks.js:3894 -#: js/blocks.js:5773 -#: js/blocks.js:5794 -#: js/BoxesBlocks.js:772 -msgid "box1" +#: js/SaveInterface.js:89 +msgid "Show" msgstr "" -#: js/blocks.js:3386 -#: js/blocks.js:3826 -#: js/blocks.js:3861 -#: js/blocks.js:3896 -#: js/blocks.js:5775 -#: js/blocks.js:5796 -#: js/BoxesBlocks.js:663 -msgid "box2" +#: js/SaveInterface.js:91 +msgid "Hide" msgstr "" -#: js/blocks.js:4058 -#: js/palette.js:639 -#: js/palette.js:644 -#: js/palette.js:1043 -#: js/BoxesBlocks.js:591 -msgid "store in" +#: js/SaveInterface.js:131 +#: js/SaveInterface.js:204 +#: js/SaveInterface.js:262 +#: js/SaveInterface.js:389 +#: js/SaveInterface.js:417 +#: js/activity.js:4884 +#: planet/js/ProjectStorage.js:27 +#: planet/js/GlobalPlanet.js:467 +#: planet/js/GlobalPlanet.js:469 +#: planet/js/GlobalPlanet.js:495 +#.TRANS: default project title when saving as Lilypond +msgid "My Project" msgstr "" -#: js/blocks.js:4058 -#: js/EnsembleBlocks.js:391 -#: js/EnsembleBlocks.js:402 -#: js/MediaBlocks.js:746 -#: js/ProgramBlocks.js:390 -#: js/ProgramBlocks.js:495 -#: js/ProgramBlocks.js:658 -#: js/BoxesBlocks.js:595 -#: js/PitchBlocks.js:656 -#: js/PitchBlocks.js:932 -#: js/PitchBlocks.js:1827 -#: js/ToneBlocks.js:1025 -#: js/DictBlocks.js:215 -#: js/DictBlocks.js:289 -msgid "name" +#: js/SaveInterface.js:197 +#: planet/js/SaveInterface.js:58 +msgid "No description provided" msgstr "" -#: js/blocks.js:4058 -#: js/RhythmBlocks.js:1130 -#: js/BoxesBlocks.js:75 -#: js/BoxesBlocks.js:595 -#: js/HeapBlocks.js:544 -#: js/DictBlocks.js:289 -#: js/DictBlocks.js:430 -msgid "value" +#: js/SaveInterface.js:332 +msgid "Your recording is in progress." msgstr "" -#: js/blocks.js:4907 -msgid "There is no block selected." +#: js/SaveInterface.js:401 +#.TRANS: File name prompt for save as Lilypond +msgid "File name" msgstr "" -#: js/blocks.js:5002 -#: js/MediaBlocks.js:888 -msgid "show" +#: js/SaveInterface.js:403 +#: planet/js/StringHelper.js:39 +#.TRANS: Project title prompt for save as Lilypond +msgid "Project title" msgstr "" -#: js/blocks.js:5005 -#: js/MediaBlocks.js:803 -#.TRANS: Avatar is the image used to determine the appearance of the mouse. -msgid "avatar" +#: js/SaveInterface.js:405 +#.TRANS: Project title prompt for save as Lilypond +msgid "Project author" msgstr "" -#: js/blocks.js:5008 -#: js/ToneBlocks.js:1010 -#: js/sampler.js:693 -#.TRANS: The sound sample that the user uploads. -msgid "sample" +#: js/SaveInterface.js:407 +#.TRANS: MIDI prompt for save as Lilypond +msgid "Include MIDI output?" msgstr "" -#: js/turtles.js:874 -msgid "Grid" +#: js/SaveInterface.js:409 +#.TRANS: Guitar prompt for save as Lilypond +msgid "Include guitar tablature output?" msgstr "" -#: js/turtles.js:891 -#: js/turtledefs.js:626 -msgid "Clean" +#: js/SaveInterface.js:411 +#.TRANS: Lilypond is a scripting language for generating sheet music +msgid "Save as Lilypond" msgstr "" -#: js/turtles.js:912 -#: js/turtledefs.js:632 -msgid "Collapse" +#: js/SaveInterface.js:426 +#: js/blocks/EnsembleBlocks.js:75 +#: js/blocks/EnsembleBlocks.js:154 +#: js/blocks/EnsembleBlocks.js:216 +#: js/blocks/EnsembleBlocks.js:302 +#: js/blocks/EnsembleBlocks.js:348 +#: js/blocks/EnsembleBlocks.js:389 +#: js/blocks/EnsembleBlocks.js:441 +#: js/blocks/EnsembleBlocks.js:490 +#: js/blocks/EnsembleBlocks.js:536 +#: js/blocks/EnsembleBlocks.js:583 +#: js/blocks/EnsembleBlocks.js:637 +#: js/blocks/EnsembleBlocks.js:753 +#: js/blocks/EnsembleBlocks.js:840 +#: js/blocks/EnsembleBlocks.js:899 +#: js/blocks/EnsembleBlocks.js:942 +#: js/blocks/EnsembleBlocks.js:1212 +#: js/blocks/EnsembleBlocks.js:1280 +#.TRANS: default project author when saving as Lilypond +msgid "Mr. Mouse" msgstr "" -#: js/turtles.js:940 -msgid "Expand" +#: js/SaveInterface.js:573 +msgid "The Lilypond code is copied to clipboard. You can paste it here: " msgstr "" #: js/languagebox.js:198 @@ -2406,6933 +2261,7487 @@ msgstr "" msgid "Music Blocks is already set to this language." msgstr "" -#: js/piemenus.js:200 -#: js/musicutils.js:808 -#: js/musicutils.js:824 -#: js/phrasemaker.js:1672 -#: js/musickeyboard.js:2041 -#: js/sampler.js:544 -#.TRANS: double sharp is a music term related to pitch -msgid "double sharp" +#: js/planetInterface.js:131 +msgid "project undefined" msgstr "" -#: js/piemenus.js:201 -#: js/PitchBlocks.js:1510 -#: js/PitchActions.js:580 -#: js/musicutils.js:806 -#: js/musicutils.js:825 -#: js/phrasemaker.js:1673 -#: js/musickeyboard.js:2042 -#: js/sampler.js:545 -#.TRANS: sharp is a half-step up in pitch -#.TRANS: sharp is a music term related to pitch -msgid "sharp" +#: js/rubrics.js:523 +#: js/turtledefs.js:119 +#: js/turtledefs.js:221 +#: js/blocks/RhythmBlockPaletteBlocks.js:52 +#: js/blocks/RhythmBlockPaletteBlocks.js:234 +#: js/blocks/ProgramBlocks.js:745 +#: js/widgets/rhythmruler.js:2057 +#: js/widgets/rhythmruler.js:2064 +#: js/widgets/rhythmruler.js:2133 +#: js/widgets/rhythmruler.js:2140 +#: js/widgets/rhythmruler.js:2219 +#.TRANS: an arrangement of notes based on duration +msgid "rhythm" msgstr "" -#: js/piemenus.js:202 -#: js/musicutils.js:804 -#: js/musicutils.js:826 -#: js/phrasemaker.js:1674 -#: js/musickeyboard.js:2043 -#: js/sampler.js:546 -#.TRANS: natural is a music term related to pitch -msgid "natural" +#: js/rubrics.js:524 +#: js/turtledefs.js:121 +#: js/turtledefs.js:223 +#: js/block-verbose.js:2622 +#: js/block.js:2550 +#: js/blocks/IntervalsBlocks.js:63 +#: js/blocks/SensorsBlocks.js:178 +#: js/blocks/PitchBlocks.js:1839 +#: js/blocks/PitchBlocks.js:1853 +#: js/widgets/musickeyboard.js:1935 +#: js/widgets/phrasemaker.js:1036 +#.TRANS: pitch number +#.TRANS: pitch number +#.TRANS: we specify pitch in terms of a name and an octave. The name can be CDEFGAB or Do Re Mi Fa Sol La Ti. Octave is a number between 1 and 8. +msgid "pitch" msgstr "" -#: js/piemenus.js:203 -#: js/PitchBlocks.js:1469 -#: js/PitchActions.js:583 -#: js/musicutils.js:802 -#: js/musicutils.js:827 -#: js/phrasemaker.js:1675 -#: js/musickeyboard.js:2044 -#: js/sampler.js:547 -#.TRANS: flat is a half-step down in pitch -#.TRANS: flat is a music term related to pitch -msgid "flat" +#: js/rubrics.js:525 +#: js/turtledefs.js:123 +#: js/turtledefs.js:225 +msgid "tone" msgstr "" -#: js/piemenus.js:204 -#: js/musicutils.js:800 -#: js/musicutils.js:828 -#: js/phrasemaker.js:1676 -#: js/musickeyboard.js:2045 -#: js/sampler.js:548 -#.TRANS: double flat is a music term related to pitch -msgid "double flat" +#: js/rubrics.js:526 +#: js/lilypond.js:605 +#: js/lilypond.js:904 +#: js/lilypond.js:910 +#: js/lilypond.js:948 +msgid "mouse" msgstr "" -#: js/piemenus.js:2861 -#: js/PitchBlocks.js:1357 -#: js/musicutils.js:627 -#.TRANS: unison means the note is the same as the current note -#.TRANS: unison is a music term related to intervals -msgid "unison" +#: js/rubrics.js:527 +#: js/turtledefs.js:132 +#: js/turtledefs.js:234 +#: js/widgets/phrasemaker.js:1040 +msgid "pen" msgstr "" -#: js/piemenus.js:3015 -#: js/piemenus.js:3088 -#: js/musicutils.js:635 -#: js/musicutils.js:810 -#: js/musicutils.js:912 -#.TRANS: major is a music term related to intervals and mode -msgid "major" +#: js/rubrics.js:528 +#: js/turtledefs.js:133 +#: js/turtledefs.js:235 +#: js/blocks/NumberBlocks.js:981 +#: js/blocks/PitchBlocks.js:1717 +#: js/blocks/PitchBlocks.js:1758 +msgid "number" msgstr "" -#: js/piemenus.js:3015 -#: js/piemenus.js:3088 -#: js/musicutils.js:653 -#.TRANS: modal scale for music -msgid "ionian" +#: js/rubrics.js:529 +#: js/turtledefs.js:127 +#: js/turtledefs.js:229 +msgid "flow" msgstr "" -#: js/piemenus.js:3017 -#: js/piemenus.js:3092 -#: js/musicutils.js:633 -#: js/musicutils.js:811 -#: js/musicutils.js:909 -#.TRANS: minor is a music term related to intervals and mode -msgid "minor" +#: js/rubrics.js:530 +#: js/turtledefs.js:128 +#: js/turtledefs.js:230 +#: js/block-verbose.js:1609 +#: js/block-verbose.js:4559 +#: js/block-verbose.js:4577 +#: js/block-verbose.js:4588 +#: js/block.js:1573 +#: js/block.js:4483 +#: js/block.js:4501 +#: js/block.js:4512 +#: js/blocks.js:1018 +#: js/blocks.js:3491 +#: js/blocks.js:3492 +#: js/blocks.js:3717 +#: js/blocks.js:4076 +#: js/blocks.js:4269 +#: js/blocks.js:5432 +#: js/blocks.js:6563 +#: js/macros.js:170 +#: js/macros.js:266 +#: js/macros.js:267 +#: js/macros.js:276 +#: js/macros.js:828 +#: js/palette.js:527 +#: js/palette.js:536 +#: js/palette.js:545 +#: js/palette.js:554 +#: js/palette.js:1129 +#: js/palette.js:1140 +#: js/palette.js:1151 +#: js/palette.js:1162 +#: js/palette.js:1181 +#: js/blocks/ActionBlocks.js:254 +#: js/blocks/ActionBlocks.js:307 +#: js/blocks/ActionBlocks.js:617 +#: js/blocks/ActionBlocks.js:716 +#: js/blocks/ActionBlocks.js:961 +#: js/blocks/ActionBlocks.js:1049 +#: js/blocks/ActionBlocks.js:1322 +#: js/blocks/ActionBlocks.js:1325 +#: js/blocks/ActionBlocks.js:1337 +#: js/blocks/ActionBlocks.js:1404 +#: js/blocks/MeterBlocks.js:715 +#: js/blocks/MeterBlocks.js:768 +#: js/blocks/MeterBlocks.js:831 +#: js/blocks/MeterBlocks.js:892 +#: js/widgets/musickeyboard.js:2986 +#: js/widgets/phrasemaker.js:4913 +#: js/widgets/rhythmruler.js:2319 +#: js/widgets/rhythmruler.js:2326 +#: js/widgets/rhythmruler.js:2511 +#: js/widgets/rhythmruler.js:2518 +msgid "action" msgstr "" -#: js/piemenus.js:3017 -#: js/piemenus.js:3092 -#: js/musicutils.js:663 -#.TRANS: modal scale for music -msgid "aeolian" +#: js/rubrics.js:531 +#: js/turtledefs.js:136 +#: js/turtledefs.js:238 +msgid "sensors" msgstr "" -#: js/piemenus.js:3407 -msgid "Duplicate" +#: js/rubrics.js:532 +#: js/turtledefs.js:135 +#: js/turtledefs.js:237 +#: js/blocks/MediaBlocks.js:930 +msgid "media" msgstr "" -#: js/piemenus.js:3408 -#: js/turtledefs.js:534 -msgid "Extract" +#: js/rubrics.js:533 +msgid "mice" msgstr "" -#: js/piemenus.js:3409 -msgid "Move to trash" +#: js/toolbar.js:48 +#: js/toolbar.js:109 +msgid "About Music Blocks" msgstr "" -#: js/piemenus.js:3410 -#: js/timbre.js:968 -#: js/StringHelper.js:69 -msgid "Close" +#: js/toolbar.js:49 +#: js/toolbar.js:110 +#: js/toolbar.js:175 +#: js/toolbar.js:231 +#: js/turtledefs.js:445 +#: js/turtledefs.js:482 +#: js/activity.js:2660 +#: js/activity.js:2671 +#: js/activity.js:2902 +#: js/widgets/modewidget.js:77 +#: js/widgets/meterwidget.js:185 +#: js/widgets/pitchdrummatrix.js:147 +#: js/widgets/pitchdrummatrix.js:687 +#: js/widgets/pitchdrummatrix.js:689 +#: js/widgets/pitchdrummatrix.js:741 +#: js/widgets/pitchdrummatrix.js:743 +#: js/widgets/pitchdrummatrix.js:758 +#: js/widgets/pitchdrummatrix.js:760 +#: js/widgets/pitchdrummatrix.js:789 +#: js/widgets/pitchdrummatrix.js:791 +#: js/widgets/pitchstaircase.js:121 +#: js/widgets/temperament.js:610 +#: js/widgets/temperament.js:613 +#: js/widgets/temperament.js:673 +#: js/widgets/temperament.js:675 +#: js/widgets/temperament.js:2017 +#: js/widgets/temperament.js:2019 +#: js/widgets/tempo.js:84 +#: js/widgets/tempo.js:86 +#: js/widgets/timbre.js:432 +#: js/widgets/timbre.js:434 +#: js/widgets/timbre.js:465 +#: js/widgets/timbre.js:467 +#: js/widgets/timbre.js:746 +#: js/widgets/aiwidget.js:647 +#: js/widgets/aiwidget.js:654 +#: js/widgets/aiwidget.js:656 +#: js/widgets/arpeggio.js:90 +#: js/widgets/arpeggio.js:547 +#: js/widgets/arpeggio.js:549 +#: js/widgets/arpeggio.js:644 +#: js/widgets/arpeggio.js:646 +#: js/widgets/musickeyboard.js:676 +#: js/widgets/musickeyboard.js:872 +#: js/widgets/musickeyboard.js:874 +#: js/widgets/musickeyboard.js:953 +#: js/widgets/musickeyboard.js:955 +#: js/widgets/phrasemaker.js:513 +#: js/widgets/phrasemaker.js:523 +#: js/widgets/phrasemaker.js:525 +#: js/widgets/phrasemaker.js:4304 +#: js/widgets/phrasemaker.js:4528 +#: js/widgets/phrasemaker.js:4533 +#: js/widgets/phrasemaker.js:4535 +#: js/widgets/phrasemaker.js:4650 +#: js/widgets/rhythmruler.js:637 +#: js/widgets/rhythmruler.js:639 +#: js/widgets/rhythmruler.js:653 +#: js/widgets/rhythmruler.js:655 +#: js/widgets/sampler.js:162 +#: js/widgets/sampler.js:164 +#: js/widgets/sampler.js:363 +msgid "Play" msgstr "" -#: js/piemenus.js:3416 -msgid "Save stack" +#: js/toolbar.js:50 +#: js/toolbar.js:111 +#: js/toolbar.js:176 +#: js/toolbar.js:232 +#: js/turtledefs.js:451 +#: js/turtledefs.js:488 +#: js/activity.js:2679 +#: js/widgets/modewidget.js:99 +#: js/widgets/modewidget.js:101 +#: js/widgets/meterwidget.js:206 +#: js/widgets/meterwidget.js:208 +#: js/widgets/pitchdrummatrix.js:674 +#: js/widgets/pitchdrummatrix.js:676 +#: js/widgets/temperament.js:2002 +#: js/widgets/temperament.js:2004 +#: js/widgets/arpeggio.js:534 +#: js/widgets/arpeggio.js:536 +#: js/widgets/phrasemaker.js:534 +#: js/widgets/phrasemaker.js:536 +msgid "Stop" msgstr "" -#: js/piemenus.js:3420 -#: js/toolbar.js:60 -#: js/toolbar.js:120 -#: js/toolbar.js:185 -#: js/toolbar.js:240 -#: js/turtledefs.js:752 -msgid "Help" +#: js/toolbar.js:51 +#: js/toolbar.js:112 +#: js/toolbar.js:177 +#: js/toolbar.js:233 +#: js/turtledefs.js:498 +msgid "Record" msgstr "" -#: js/piemenus.js:3762 -msgid "You have chosen key " +#: js/toolbar.js:52 +#: js/toolbar.js:53 +msgid "Full screen" msgstr "" -#: js/piemenus.js:3766 -msgid " for your pitch preview." +#: js/toolbar.js:54 +#: js/toolbar.js:115 +#: js/toolbar.js:180 +#: js/toolbar.js:236 +#: js/turtledefs.js:504 +msgid "Toggle Fullscreen" +msgstr "" + +#: js/toolbar.js:55 +#: js/toolbar.js:116 +#: js/toolbar.js:181 +#: js/toolbar.js:237 +#: js/turtledefs.js:510 +#: planet/js/StringHelper.js:33 +msgid "New project" +msgstr "" + +#: js/toolbar.js:56 +#: js/toolbar.js:117 +#: js/toolbar.js:182 +#: js/toolbar.js:238 +#: js/turtledefs.js:516 +msgid "Load project from file" +msgstr "" + +#: js/toolbar.js:57 +#: js/toolbar.js:118 +#: js/toolbar.js:119 +#: js/toolbar.js:183 +#: js/toolbar.js:239 +#: js/turtledefs.js:541 +#: js/turtledefs.js:550 +#: js/turtledefs.js:571 +msgid "Save project" +msgstr "" + +#: js/toolbar.js:58 +#: js/toolbar.js:77 +#: js/toolbar.js:79 +#: js/toolbar.js:138 +#: js/toolbar.js:147 +#: js/toolbar.js:149 +#: js/toolbar.js:184 +#: js/toolbar.js:202 +#: js/toolbar.js:204 +#: js/toolbar.js:240 +#: js/toolbar.js:258 +#: js/toolbar.js:260 +msgid "Save project as HTML" +msgstr "" + +#: js/toolbar.js:59 +#: js/toolbar.js:120 +#: js/toolbar.js:185 +#: js/toolbar.js:241 +msgid "Find and share projects" +msgstr "" + +#: js/toolbar.js:60 +#: js/toolbar.js:121 +#: js/toolbar.js:186 +#: js/toolbar.js:242 +msgid "Offline. Sharing is unavailable" +msgstr "" + +#: js/toolbar.js:61 +#: js/toolbar.js:122 +#: js/toolbar.js:187 +#: js/toolbar.js:243 +msgid "Auxiliary menu" +msgstr "" + +#: js/toolbar.js:62 +#: js/toolbar.js:123 +#: js/toolbar.js:188 +#: js/toolbar.js:244 +#: js/turtledefs.js:752 +#: js/piemenus.js:3423 +msgid "Help" +msgstr "" + +#: js/toolbar.js:63 +#: js/toolbar.js:124 +#: js/toolbar.js:189 +#: js/toolbar.js:245 +msgid "Run slowly" +msgstr "" + +#: js/toolbar.js:64 +#: js/toolbar.js:125 +#: js/toolbar.js:190 +#: js/toolbar.js:246 +#: js/turtledefs.js:682 +msgid "Run step by step" +msgstr "" + +#: js/toolbar.js:65 +#: js/toolbar.js:126 +#: js/toolbar.js:191 +#: js/toolbar.js:247 +#: js/turtledefs.js:689 +msgid "Display statistics" +msgstr "" + +#: js/toolbar.js:66 +#: js/toolbar.js:127 +#: js/toolbar.js:192 +#: js/toolbar.js:248 +msgid "Load plugin" +msgstr "" + +#: js/toolbar.js:67 +#: js/toolbar.js:128 +#: js/toolbar.js:193 +#: js/toolbar.js:249 +#: js/turtledefs.js:696 +msgid "Delete plugin" +msgstr "" + +#: js/toolbar.js:68 +#: js/toolbar.js:129 +#: js/toolbar.js:194 +#: js/toolbar.js:250 +msgid "Enable horizontal scrolling" +msgstr "" + +#: js/toolbar.js:69 +#: js/toolbar.js:130 +#: js/toolbar.js:195 +#: js/toolbar.js:251 +msgid "Disable horizontal scrolling" +msgstr "" + +#: js/toolbar.js:70 +#: js/toolbar.js:131 +#: js/toolbar.js:196 +#: js/toolbar.js:252 +#: planet/js/LocalCard.js:54 +#: planet/js/StringHelper.js:71 +msgid "Merge with current project" +msgstr "" + +#: js/toolbar.js:71 +#: js/toolbar.js:132 +msgid "Set Pitch Preview" +msgstr "" + +#: js/toolbar.js:72 +#: js/toolbar.js:133 +#: js/toolbar.js:197 +#: js/toolbar.js:253 +msgid "JavaScript Editor" +msgstr "" + +#: js/toolbar.js:73 +#: js/toolbar.js:134 +#: js/toolbar.js:198 +#: js/toolbar.js:254 +#: js/turtledefs.js:724 +msgid "Restore" +msgstr "" + +#: js/toolbar.js:74 +#: js/toolbar.js:135 +#: js/toolbar.js:199 +#: js/toolbar.js:255 +msgid "Switch to beginner mode" +msgstr "" + +#: js/toolbar.js:75 +#: js/toolbar.js:136 +#: js/toolbar.js:200 +#: js/toolbar.js:256 +msgid "Switch to advanced mode" +msgstr "" + +#: js/toolbar.js:76 +#: js/toolbar.js:137 +#: js/toolbar.js:146 +#: js/toolbar.js:201 +#: js/toolbar.js:257 +#: js/turtledefs.js:738 +msgid "Select language" +msgstr "" + +#: js/toolbar.js:78 +#: js/toolbar.js:81 +#: js/toolbar.js:140 +#: js/turtledefs.js:579 +msgid "Save mouse artwork as PNG" +msgstr "" + +#: js/toolbar.js:80 +#: js/toolbar.js:139 +#: js/turtledefs.js:575 +msgid "Save mouse artwork as SVG" +msgstr "" + +#: js/toolbar.js:82 +#: js/toolbar.js:141 +#: js/turtledefs.js:583 +msgid "Save music as WAV" +msgstr "" + +#: js/toolbar.js:83 +#: js/toolbar.js:142 +#: js/turtledefs.js:587 +msgid "Save sheet music as ABC" +msgstr "" + +#: js/toolbar.js:84 +#: js/toolbar.js:143 +#: js/turtledefs.js:591 +msgid "Save sheet music as Lilypond" +msgstr "" + +#: js/toolbar.js:85 +msgid "Save sheet music as MusicXML" +msgstr "" + +#: js/toolbar.js:86 +#: js/toolbar.js:144 +#: js/toolbar.js:152 +#: js/toolbar.js:207 +#: js/toolbar.js:263 +#: js/turtledefs.js:562 +#: js/turtledefs.js:595 +msgid "Save block artwork as SVG" +msgstr "" + +#: js/toolbar.js:87 +#: js/toolbar.js:145 +#: js/toolbar.js:153 +#: js/toolbar.js:208 +#: js/toolbar.js:264 +#: js/turtles.js:911 +msgid "Confirm" +msgstr "" + +#: js/toolbar.js:88 +#: js/toolbar.js:154 +#: js/toolbar.js:209 +#: js/toolbar.js:265 +msgid "English (United States)" +msgstr "" + +#: js/toolbar.js:89 +#: js/toolbar.js:155 +#: js/toolbar.js:210 +#: js/toolbar.js:266 +msgid "English (United Kingdom)" +msgstr "" + +#: js/toolbar.js:90 +#: js/toolbar.js:156 +#: js/toolbar.js:211 +#: js/toolbar.js:267 +msgid "日本語" +msgstr "" + +#: js/toolbar.js:91 +msgid "한국어" +msgstr "" + +#: js/toolbar.js:92 +#: js/toolbar.js:158 +#: js/toolbar.js:213 +#: js/toolbar.js:269 +msgid "español" +msgstr "" + +#: js/toolbar.js:93 +#: js/toolbar.js:159 +#: js/toolbar.js:214 +#: js/toolbar.js:270 +msgid "português" +msgstr "" + +#: js/toolbar.js:94 +#: js/toolbar.js:160 +#: js/toolbar.js:215 +#: js/toolbar.js:271 +msgid "にほんご" +msgstr "" + +#: js/toolbar.js:95 +#: js/toolbar.js:161 +#: js/toolbar.js:216 +#: js/toolbar.js:272 +msgid "中文" +msgstr "" + +#: js/toolbar.js:96 +#: js/toolbar.js:162 +#: js/toolbar.js:217 +#: js/toolbar.js:273 +msgid "ภาษาไทย" +msgstr "" + +#: js/toolbar.js:97 +#: js/toolbar.js:163 +#: js/toolbar.js:218 +#: js/toolbar.js:274 +msgid "aymara" +msgstr "" + +#: js/toolbar.js:98 +#: js/toolbar.js:164 +#: js/toolbar.js:219 +#: js/toolbar.js:275 +msgid "quechua" +msgstr "" + +#: js/toolbar.js:99 +#: js/toolbar.js:165 +#: js/toolbar.js:220 +#: js/toolbar.js:276 +msgid "guarani" +msgstr "" + +#: js/toolbar.js:100 +#: js/toolbar.js:166 +#: js/toolbar.js:221 +#: js/toolbar.js:277 +msgid "हिंदी" +msgstr "" + +#: js/toolbar.js:101 +#: js/toolbar.js:168 +#: js/toolbar.js:222 +#: js/toolbar.js:279 +msgid "igbo" +msgstr "" + +#: js/toolbar.js:102 +#: js/toolbar.js:169 +#: js/toolbar.js:223 +#: js/toolbar.js:280 +msgid "عربى" +msgstr "" + +#: js/toolbar.js:103 +#: js/toolbar.js:167 +#: js/toolbar.js:224 +#: js/toolbar.js:278 +msgid "తెలుగు" +msgstr "" + +#: js/toolbar.js:104 +#: js/toolbar.js:170 +#: js/toolbar.js:225 +#: js/toolbar.js:281 +msgid "עִברִית" +msgstr "" + +#: js/toolbar.js:113 +#: js/toolbar.js:114 +#: js/toolbar.js:178 +#: js/toolbar.js:179 +#: js/toolbar.js:234 +#: js/toolbar.js:235 +msgid "Full Screen" +msgstr "" + +#: js/toolbar.js:148 +#: js/toolbar.js:151 +#: js/toolbar.js:203 +#: js/toolbar.js:206 +#: js/toolbar.js:259 +#: js/toolbar.js:262 +#: js/turtledefs.js:558 +msgid "Save turtle artwork as PNG" +msgstr "" + +#: js/toolbar.js:150 +#: js/toolbar.js:205 +#: js/toolbar.js:261 +#: js/turtledefs.js:554 +msgid "Save turtle artwork as SVG" +msgstr "" + +#: js/toolbar.js:157 +#: js/toolbar.js:212 +#: js/toolbar.js:268 +msgid "한국인" +msgstr "" + +#: js/toolbar.js:174 +#: js/toolbar.js:230 +msgid "About Turtle Blocks" +msgstr "" + +#: js/toolbar.js:446 +#: js/toolbar.js:457 +#: js/toolbar.js:497 +msgid "Turtle Wrap Off" +msgstr "" + +#: js/toolbar.js:466 +#: js/toolbar.js:506 +msgid "Turtle Wrap On" +msgstr "" + +#: js/turtle-painter.js:1192 +#: js/turtle-painter.js:1193 +#: js/turtles.js:118 +#: js/block-verbose.js:1623 +#: js/block.js:1587 +#: js/lilypond.js:749 +#: js/lilypond.js:913 +#: js/lilypond.js:951 +#: js/logo.js:1184 +#: js/blocks/ActionBlocks.js:1223 +#: js/blocks/ProgramBlocks.js:1267 +msgid "start" +msgstr "" + +#: js/turtledefs.js:40 +#.TRANS: put the URL to the guide here, e.g., https://github.com/sugarlabs/turtleblocksjs/tree/master/guide/README.md +msgid "guide url" +msgstr "" + +#: js/turtledefs.js:85 +#: js/turtledefs.js:437 +msgid "Turtle Blocks is a Logo-inspired turtle that draws colorful pictures with snap-together visual-programming blocks." +msgstr "" + +#: js/turtledefs.js:118 +#: js/turtledefs.js:220 +msgid "search" +msgstr "" + +#: js/turtledefs.js:120 +#: js/turtledefs.js:222 +#: js/blocks/MeterBlocks.js:1343 +#: js/blocks/WidgetBlocks.js:522 +#.TRANS: musical meter (time signature), e.g., 4:4 +msgid "meter" +msgstr "" + +#: js/turtledefs.js:122 +#: js/turtledefs.js:224 +msgid "intervals" +msgstr "" + +#: js/turtledefs.js:124 +#: js/turtledefs.js:226 +msgid "ornament" +msgstr "" + +#: js/turtledefs.js:125 +#: js/turtledefs.js:227 +#: js/blocks/VolumeBlocks.js:362 +#: js/blocks/VolumeBlocks.js:502 +#: js/blocks/VolumeBlocks.js:545 +msgid "volume" +msgstr "" + +#: js/turtledefs.js:126 +#: js/turtledefs.js:228 +#: js/block-verbose.js:1700 +#: js/block-verbose.js:2626 +#: js/block.js:1664 +#: js/block.js:2554 +#: js/lilypond.js:732 +#: js/lilypond.js:897 +#: js/lilypond.js:941 +#: js/palette.js:577 +#: js/blocks/RhythmBlocks.js:766 +#: js/blocks/DrumBlocks.js:477 +#: js/blocks/VolumeBlocks.js:502 +#: js/widgets/phrasemaker.js:1038 +msgid "drum" +msgstr "" + +#: js/turtledefs.js:129 +#: js/turtledefs.js:231 +msgid "boxes" +msgstr "" + +#: js/turtledefs.js:130 +#: js/turtledefs.js:232 +msgid "widgets" +msgstr "" + +#: js/turtledefs.js:131 +#: js/turtledefs.js:233 +#: js/widgets/phrasemaker.js:1039 +msgid "graphics" +msgstr "" + +#: js/turtledefs.js:134 +#: js/turtledefs.js:236 +msgid "boolean" +msgstr "" + +#: js/turtledefs.js:137 +#: js/turtledefs.js:239 +#: js/blocks/HeapBlocks.js:59 +#: js/widgets/status.js:147 +msgid "heap" +msgstr "" + +#: js/turtledefs.js:138 +#: js/turtledefs.js:240 +#: js/blocks/DictBlocks.js:142 +#: js/blocks/ProgramBlocks.js:495 +msgid "dictionary" +msgstr "" + +#: js/turtledefs.js:139 +#: js/turtledefs.js:241 +msgid "ensemble" +msgstr "" + +#: js/turtledefs.js:140 +#: js/turtledefs.js:242 +msgid "extras" +msgstr "" + +#: js/turtledefs.js:142 +#: js/turtledefs.js:244 +#.TRANS: program as in computer program +#.TRANS: program as in computer program +msgid "program" +msgstr "" + +#: js/turtledefs.js:143 +#: js/turtledefs.js:245 +msgid "my blocks" +msgstr "" + +#: js/turtledefs.js:185 +#: js/turtledefs.js:281 +msgid "artwork" +msgstr "" + +#: js/turtledefs.js:185 +#: js/turtledefs.js:281 +msgid "logic" +msgstr "" + +#: js/turtledefs.js:185 +#: js/turtledefs.js:281 +msgid "music" +msgstr "" + +#: js/turtledefs.js:187 +#: js/turtledefs.js:463 +msgid "Music Blocks is a collection of tools for exploring fundamental musical concepts in a fun way." +msgstr "" + +#: js/turtledefs.js:436 +msgid "Welcome to Turtle Blocks" +msgstr "" + +#: js/turtledefs.js:438 +#: js/turtledefs.js:465 +#: js/turtledefs.js:774 +#: js/turtledefs.js:805 +msgid "The current version is" +msgstr "" + +#: js/turtledefs.js:446 +#: js/turtledefs.js:483 +msgid "Click the run button to run the project in fast mode." +msgstr "" + +#: js/turtledefs.js:452 +msgid "Stop the turtle." +msgstr "" + +#: js/turtledefs.js:454 +#: js/turtledefs.js:491 +msgid "You can also type Alt-S to stop." +msgstr "" + +#: js/turtledefs.js:462 +#: js/widgets/help.js:333 +msgid "Welcome to Music Blocks" +msgstr "" + +#: js/turtledefs.js:472 +#: js/widgets/help.js:334 +msgid "Meet Mr. Mouse!" +msgstr "" + +#: js/turtledefs.js:473 +msgid "Mr Mouse is our Music Blocks conductor." +msgstr "" + +#: js/turtledefs.js:475 +msgid "Mr Mouse encourages you to explore Music Blocks." +msgstr "" + +#: js/turtledefs.js:477 +msgid "Let us start our tour!" +msgstr "" + +#: js/turtledefs.js:489 +msgid "Stop the music (and the mice)." +msgstr "" + +#: js/turtledefs.js:499 +msgid "Record your project as video." +msgstr "" + +#: js/turtledefs.js:505 +msgid "Toggle Fullscreen mode." +msgstr "" + +#: js/turtledefs.js:511 +msgid "Initialize a new project." +msgstr "" + +#: js/turtledefs.js:517 +msgid "You can also load projects from the file system." +msgstr "" + +#: js/turtledefs.js:522 +#: planet/js/StringHelper.js:46 +msgid "Delete" +msgstr "" + +#: js/turtledefs.js:523 +msgid "To delete a block, just right-click on it, then you will be able to see the delete option" +msgstr "" + +#: js/turtledefs.js:528 +#: js/activity.js:2649 +#: planet/js/LocalCard.js:31 +msgid "Copy" +msgstr "" + +#: js/turtledefs.js:529 +msgid "To copy a block, just right-click on it, then you will be able to see the copy option" +msgstr "" + +#: js/turtledefs.js:534 +#: js/piemenus.js:3411 +msgid "Extract" +msgstr "" + +#: js/turtledefs.js:535 +msgid "To extract a block, just right-click on it, then you will be able to see the extract option" +msgstr "" + +#: js/turtledefs.js:542 +#: js/turtledefs.js:552 +#: js/turtledefs.js:573 +msgid "Save your project to a file." +msgstr "" + +#: js/turtledefs.js:549 +#: js/turtledefs.js:570 +msgid "save" +msgstr "" + +#: js/turtledefs.js:556 +#: js/turtledefs.js:577 +msgid "Save graphics from your project to as SVG." +msgstr "" + +#: js/turtledefs.js:560 +#: js/turtledefs.js:581 +msgid "Save graphics from your project as PNG." +msgstr "" + +#: js/turtledefs.js:564 +#: js/turtledefs.js:597 +msgid "Save block artwork as an SVG file." +msgstr "" + +#: js/turtledefs.js:585 +msgid "Save audio from your project as WAV." +msgstr "" + +#: js/turtledefs.js:589 +msgid "Save your project to as an ABC file." +msgstr "" + +#: js/turtledefs.js:593 +msgid "Save your project to as a Lilypond file." +msgstr "" + +#: js/turtledefs.js:604 +msgid "Load samples from server" +msgstr "" + +#: js/turtledefs.js:605 +msgid "This button opens a viewer for loading example projects." +msgstr "" + +#: js/turtledefs.js:611 +msgid "Palette buttons" +msgstr "" + +#: js/turtledefs.js:612 +msgid "This toolbar contains the palette buttons including Rhythm Pitch Tone Action and more." +msgstr "" + +#: js/turtledefs.js:614 +msgid "Click to show the palettes of blocks and drag blocks from the palettes onto the canvas to use them." +msgstr "" + +#: js/turtledefs.js:620 +msgid "Cartesian/Polar" +msgstr "" + +#: js/turtledefs.js:621 +msgid "Show or hide a coordinate grid." +msgstr "" + +#: js/turtledefs.js:626 +#: js/turtles.js:902 +msgid "Clean" +msgstr "" + +#: js/turtledefs.js:627 +msgid "Clear the screen and return the mice to their initial positions." +msgstr "" + +#: js/turtledefs.js:632 +#: js/turtles.js:955 +msgid "Collapse" +msgstr "" + +#: js/turtledefs.js:633 +msgid "Collapse the graphics window." msgstr "" -#: js/palette.js:571 -msgid "grid" +#: js/turtledefs.js:638 +#: js/activity.js:5684 +msgid "Home" msgstr "" -#: js/palette.js:577 -#: js/block.js:1540 -#: js/block.js:2343 -#: js/turtledefs.js:126 -#: js/turtledefs.js:228 -#: js/lilypond.js:740 -#: js/lilypond.js:905 -#: js/lilypond.js:949 -#: js/DrumBlocks.js:486 -#: js/RhythmBlocks.js:766 -#: js/VolumeBlocks.js:502 -#: js/phrasemaker.js:823 -msgid "drum" +#: js/turtledefs.js:639 +msgid "Return all blocks to the center of the screen." msgstr "" -#: js/palette.js:580 -msgid "effect" +#: js/turtledefs.js:644 +msgid "Show/hide blocks" msgstr "" -#: js/palette.js:586 -msgid "sargam" +#: js/turtledefs.js:645 +msgid "Hide or show the blocks and the palettes." msgstr "" -#: js/palette.js:589 -#: js/activity.js:1833 -#: js/RhythmBlocks.js:923 -#: js/PitchBlocks.js:442 -#: js/PitchBlocks.js:1748 -#.TRANS: a numeric mapping of the notes in an octave based on the musical mode -msgid "scale degree" +#: js/turtledefs.js:650 +msgid "Expand/collapse collapsable blocks" msgstr "" -#: js/palette.js:592 -#: js/activity.js:1860 -msgid "mode name" +#: js/turtledefs.js:651 +msgid "Expand or collapse start and action stacks." msgstr "" -#: js/palette.js:595 -#: js/activity.js:1839 -msgid "invert mode" +#: js/turtledefs.js:658 +#: js/activity.js:5704 +msgid "Decrease block size" msgstr "" -#: js/palette.js:598 -#: js/activity.js:1836 -msgid "voice name" +#: js/turtledefs.js:659 +msgid "Decrease the size of the blocks." msgstr "" -#: js/palette.js:601 -#: js/PitchBlocks.js:1181 -msgid "custom pitch" +#: js/turtledefs.js:664 +#: js/activity.js:5710 +msgid "Increase block size" msgstr "" -#: js/palette.js:605 -#: js/block.js:1456 -#: js/block.js:1575 -#: js/WidgetBlocks.js:218 -#: js/IntervalsBlocks.js:63 -msgid "temperament" +#: js/turtledefs.js:665 +msgid "Increase the size of the blocks." msgstr "" -#: js/palette.js:609 -msgid "accidental" +#: js/turtledefs.js:670 +msgid "Expand/collapse option toolbar" msgstr "" -#: js/palette.js:615 -#: js/activity.js:1866 -msgid "interval name" +#: js/turtledefs.js:671 +msgid "Click this button to expand or collapse the auxillary toolbar." msgstr "" -#: js/palette.js:633 -#: js/PitchBlocks.js:405 -msgid "pitch converter" +#: js/turtledefs.js:676 +msgid "Run slow" msgstr "" -#: js/rubrics.js:522 -#: js/turtledefs.js:119 -#: js/turtledefs.js:221 -#: js/RhythmBlockPaletteBlocks.js:52 -#: js/RhythmBlockPaletteBlocks.js:233 -#: js/ProgramBlocks.js:745 -#: js/rhythmruler.js:1670 -#: js/rhythmruler.js:1677 -#: js/rhythmruler.js:1745 -#: js/rhythmruler.js:1752 -#: js/rhythmruler.js:1830 -#.TRANS: an arrangement of notes based on duration -msgid "rhythm" +#: js/turtledefs.js:677 +msgid "Click to run the project in slow mode." msgstr "" -#: js/rubrics.js:523 -#: js/block.js:2339 -#: js/turtledefs.js:121 -#: js/turtledefs.js:223 -#: js/IntervalsBlocks.js:63 -#: js/PitchBlocks.js:1801 -#: js/PitchBlocks.js:1814 -#: js/SensorsBlocks.js:178 -#: js/phrasemaker.js:821 -#: js/musickeyboard.js:1653 -#.TRANS: pitch number -#.TRANS: we specify pitch in terms of a name and an octave. The name can be CDEFGAB or Do Re Mi Fa Sol La Ti. Octave is a number between 1 and 8. -msgid "pitch" +#: js/turtledefs.js:683 +msgid "Click to run the project step by step." msgstr "" -#: js/rubrics.js:524 -#: js/turtledefs.js:123 -#: js/turtledefs.js:225 -msgid "tone" +#: js/turtledefs.js:690 +msgid "Display statistics about your Music project." msgstr "" -#: js/rubrics.js:525 -#: js/lilypond.js:613 -#: js/lilypond.js:912 -#: js/lilypond.js:918 -#: js/lilypond.js:956 -msgid "mouse" +#: js/turtledefs.js:697 +msgid "Delete a selected plugin." msgstr "" -#: js/rubrics.js:526 -#: js/turtledefs.js:132 -#: js/turtledefs.js:234 -#: js/phrasemaker.js:825 -msgid "pen" +#: js/turtledefs.js:704 +msgid "Enable scrolling" msgstr "" -#: js/rubrics.js:527 -#: js/turtledefs.js:133 -#: js/turtledefs.js:235 -#: js/NumberBlocks.js:905 -#: js/PitchBlocks.js:1679 -#: js/PitchBlocks.js:1720 -msgid "number" +#: js/turtledefs.js:705 +msgid "You can scroll the blocks on the canvas." msgstr "" -#: js/rubrics.js:528 -#: js/turtledefs.js:127 -#: js/turtledefs.js:229 -msgid "flow" +#: js/turtledefs.js:714 +msgid "Wrap Turtle" msgstr "" -#: js/rubrics.js:530 -#: js/turtledefs.js:136 -#: js/turtledefs.js:238 -msgid "sensors" +#: js/turtledefs.js:715 +msgid "Turn Turtle wrapping On or Off." msgstr "" -#: js/rubrics.js:531 -#: js/turtledefs.js:135 -#: js/turtledefs.js:237 -#: js/MediaBlocks.js:930 -msgid "media" +#: js/turtledefs.js:725 +msgid "Restore blocks from the trash." msgstr "" -#: js/rubrics.js:532 -msgid "mice" +#: js/turtledefs.js:732 +msgid "Switch mode" msgstr "" -#: js/macros.js:711 -#: js/musicutils.js:783 -#: js/synthutils.js:181 -#.TRANS: animal sound effect -msgid "duck" +#: js/turtledefs.js:733 +msgid "Switch between beginner and advance modes." msgstr "" -#: js/toolbar.js:46 -#: js/toolbar.js:107 -msgid "About Music Blocks" +#: js/turtledefs.js:739 +msgid "Select your language preference." msgstr "" -#: js/toolbar.js:47 -#: js/toolbar.js:108 -#: js/toolbar.js:172 -#: js/toolbar.js:228 -#: js/turtledefs.js:445 -#: js/turtledefs.js:482 -#: js/activity.js:2281 -#: js/activity.js:2289 -#: js/activity.js:2520 -#: js/modewidget.js:77 -#: js/pitchstaircase.js:121 -#: js/phrasemaker.js:302 -#: js/phrasemaker.js:312 -#: js/phrasemaker.js:314 -#: js/phrasemaker.js:3901 -#: js/phrasemaker.js:4061 -#: js/phrasemaker.js:4066 -#: js/phrasemaker.js:4068 -#: js/phrasemaker.js:4183 -#: js/pitchdrummatrix.js:81 -#: js/pitchdrummatrix.js:574 -#: js/pitchdrummatrix.js:576 -#: js/pitchdrummatrix.js:628 -#: js/pitchdrummatrix.js:630 -#: js/pitchdrummatrix.js:645 -#: js/pitchdrummatrix.js:647 -#: js/pitchdrummatrix.js:674 -#: js/pitchdrummatrix.js:676 -#: js/temperament.js:477 -#: js/temperament.js:480 -#: js/temperament.js:540 -#: js/temperament.js:542 -#: js/temperament.js:1835 -#: js/temperament.js:1837 -#: js/temperament.js:1986 -#: js/temperament.js:1988 -#: js/musickeyboard.js:522 -#: js/musickeyboard.js:682 -#: js/musickeyboard.js:684 -#: js/musickeyboard.js:756 -#: js/musickeyboard.js:758 -#: js/rhythmruler.js:298 -#: js/rhythmruler.js:300 -#: js/rhythmruler.js:314 -#: js/rhythmruler.js:316 -#: js/sampler.js:96 -#: js/sampler.js:98 -#: js/sampler.js:229 -#: js/sampler.js:235 -#: js/sampler.js:237 -#: js/tempo.js:84 -#: js/tempo.js:86 -#: js/timbre.js:432 -#: js/timbre.js:434 -#: js/timbre.js:465 -#: js/timbre.js:467 -#: js/timbre.js:746 -#: js/meterwidget.js:80 -#: js/arpeggio.js:90 -#: js/arpeggio.js:547 -#: js/arpeggio.js:549 -#: js/arpeggio.js:644 -#: js/arpeggio.js:646 -msgid "Play" +#: js/turtledefs.js:745 +msgid "Keyboard shortcuts" msgstr "" -#: js/toolbar.js:48 -#: js/toolbar.js:109 -#: js/toolbar.js:173 -#: js/toolbar.js:229 -#: js/turtledefs.js:451 -#: js/turtledefs.js:488 -#: js/activity.js:2297 -#: js/modewidget.js:99 -#: js/modewidget.js:101 -#: js/phrasemaker.js:323 -#: js/phrasemaker.js:325 -#: js/pitchdrummatrix.js:561 -#: js/pitchdrummatrix.js:563 -#: js/temperament.js:1820 -#: js/temperament.js:1822 -#: js/meterwidget.js:101 -#: js/meterwidget.js:103 -#: js/arpeggio.js:534 -#: js/arpeggio.js:536 -msgid "Stop" +#: js/turtledefs.js:746 +msgid "You can type d to create a do block and r to create a re block etc." msgstr "" -#: js/toolbar.js:49 -#: js/toolbar.js:110 -#: js/toolbar.js:174 -#: js/toolbar.js:230 -#: js/turtledefs.js:498 -msgid "Record" +#: js/turtledefs.js:753 +msgid "Show these messages." msgstr "" -#: js/toolbar.js:50 -#: js/toolbar.js:51 -msgid "Full screen" +#: js/turtledefs.js:759 +#: js/turtledefs.js:790 +#: js/widgets/help.js:335 +msgid "Guide" msgstr "" -#: js/toolbar.js:52 -#: js/toolbar.js:112 -#: js/toolbar.js:177 -#: js/toolbar.js:232 -#: js/turtledefs.js:504 -msgid "Toggle Fullscreen" +#: js/turtledefs.js:760 +msgid "A detailed guide to Turtle Blocks is available." msgstr "" -#: js/toolbar.js:53 -#: js/toolbar.js:113 -#: js/toolbar.js:178 -#: js/toolbar.js:233 -#: js/turtledefs.js:510 -#: js/StringHelper.js:33 -msgid "New project" +#: js/turtledefs.js:764 +msgid "Turtle Blocks Guide" msgstr "" -#: js/toolbar.js:54 -#: js/toolbar.js:114 -#: js/toolbar.js:179 -#: js/toolbar.js:234 -#: js/turtledefs.js:516 -msgid "Load project from file" +#: js/turtledefs.js:767 +#: js/turtledefs.js:798 +#: js/widgets/help.js:336 +msgid "About" msgstr "" -#: js/toolbar.js:55 -#: js/toolbar.js:115 -#: js/toolbar.js:116 -#: js/toolbar.js:180 -#: js/toolbar.js:235 -#: js/turtledefs.js:541 -#: js/turtledefs.js:550 -#: js/turtledefs.js:571 -msgid "Save project" +#: js/turtledefs.js:768 +msgid "Turtle Blocks is an open source collection of tools for exploring musical concepts." msgstr "" -#: js/toolbar.js:56 -#: js/toolbar.js:75 -#: js/toolbar.js:77 -#: js/toolbar.js:135 -#: js/toolbar.js:144 -#: js/toolbar.js:146 -#: js/toolbar.js:181 -#: js/toolbar.js:199 -#: js/toolbar.js:201 -#: js/toolbar.js:236 -#: js/toolbar.js:254 -#: js/toolbar.js:256 -msgid "Save project as HTML" +#: js/turtledefs.js:770 +msgid "A full list of contributors can be found in the Turtle Blocks GitHub repository." +msgstr "" + +#: js/turtledefs.js:772 +msgid "Turtle Blocks is licensed under the AGPL." +msgstr "" + +#: js/turtledefs.js:780 +msgid "Turtle Blocks GitHub repository" +msgstr "" + +#: js/turtledefs.js:783 +#: js/turtledefs.js:814 +#: js/widgets/help.js:337 +#: js/widgets/help.js:359 +msgid "Congratulations." +msgstr "" + +#: js/turtledefs.js:784 +msgid "You have finished the tour. Please enjoy Turtle Blocks!" +msgstr "" + +#: js/turtledefs.js:791 +msgid "A detailed guide to Music Blocks is available." +msgstr "" + +#: js/turtledefs.js:799 +msgid "Music Blocks is an open source collection of tools for exploring musical concepts." +msgstr "" + +#: js/turtledefs.js:801 +msgid "A full list of contributors can be found in the Music Blocks GitHub repository." +msgstr "" + +#: js/turtledefs.js:803 +msgid "Music Blocks is licensed under the AGPL." +msgstr "" + +#: js/turtledefs.js:811 +msgid "Music Blocks GitHub repository" +msgstr "" + +#: js/turtledefs.js:815 +msgid "You have finished the tour. Please enjoy Music Blocks!" +msgstr "" + +#: js/turtles.js:882 +msgid "Grid" +msgstr "" + +#: js/turtles.js:1024 +msgid "Expand" +msgstr "" + +#: js/block-verbose.js:1616 +#: js/block-verbose.js:1735 +#: js/block.js:1580 +#: js/block.js:1699 +#: js/palette.js:605 +#: js/blocks/IntervalsBlocks.js:63 +#: js/blocks/WidgetBlocks.js:259 +msgid "temperament" +msgstr "" + +#: js/block-verbose.js:1630 +#: js/block.js:1594 +msgid "matrix" msgstr "" -#: js/toolbar.js:57 -#: js/toolbar.js:117 -#: js/toolbar.js:182 -#: js/toolbar.js:237 -msgid "Find and share projects" +#: js/block-verbose.js:1637 +#: js/block.js:1601 +#: js/blocks/WidgetBlocks.js:1509 +#: plugins/rodi.rtp:324 +msgid "status" msgstr "" -#: js/toolbar.js:58 -#: js/toolbar.js:118 -#: js/toolbar.js:183 -#: js/toolbar.js:238 -msgid "Offline. Sharing is unavailable" +#: js/block-verbose.js:1644 +#: js/block.js:1608 +msgid "drum mapper" msgstr "" -#: js/toolbar.js:59 -#: js/toolbar.js:119 -#: js/toolbar.js:184 -#: js/toolbar.js:239 -msgid "Auxiliary menu" +#: js/block-verbose.js:1651 +#: js/block.js:1615 +msgid "ruler" msgstr "" -#: js/toolbar.js:61 -#: js/toolbar.js:121 -#: js/toolbar.js:186 -#: js/toolbar.js:241 -msgid "Run slowly" +#: js/block-verbose.js:1658 +#: js/block.js:1622 +#: js/blocks/WidgetBlocks.js:397 +#.TRANS: timbre is the character or quality of a musical sound +msgid "timbre" msgstr "" -#: js/toolbar.js:62 -#: js/toolbar.js:122 -#: js/toolbar.js:187 -#: js/toolbar.js:242 -#: js/turtledefs.js:682 -msgid "Run step by step" +#: js/block-verbose.js:1665 +#: js/block.js:1629 +msgid "stair" msgstr "" -#: js/toolbar.js:63 -#: js/toolbar.js:123 -#: js/toolbar.js:188 -#: js/toolbar.js:243 -#: js/turtledefs.js:689 -msgid "Display statistics" +#: js/block-verbose.js:1672 +#: js/block.js:1636 +#: js/blocks/WidgetBlocks.js:707 +#.TRANS: the speed at music is should be played. +msgid "tempo" msgstr "" -#: js/toolbar.js:64 -#: js/toolbar.js:124 -#: js/toolbar.js:189 -#: js/toolbar.js:244 -msgid "Load plugin" +#: js/block-verbose.js:1679 +#: js/block-verbose.js:1742 +#: js/block.js:1643 +#: js/block.js:1706 +#: js/blocks/IntervalsBlocks.js:1464 +#.TRANS: mode, e.g., Major in C Major +msgid "mode" msgstr "" -#: js/toolbar.js:65 -#: js/toolbar.js:125 -#: js/toolbar.js:190 -#: js/toolbar.js:245 -#: js/turtledefs.js:696 -msgid "Delete plugin" +#: js/block-verbose.js:1686 +#: js/block.js:1650 +msgid "slider" msgstr "" -#: js/toolbar.js:66 -#: js/toolbar.js:126 -#: js/toolbar.js:191 -#: js/toolbar.js:246 -msgid "Enable horizontal scrolling" +#: js/block-verbose.js:1693 +#: js/block.js:1657 +#: js/blocks/SensorsBlocks.js:1001 +msgid "keyboard" msgstr "" -#: js/toolbar.js:67 -#: js/toolbar.js:127 -#: js/toolbar.js:192 -#: js/toolbar.js:247 -msgid "Disable horizontal scrolling" +#: js/block-verbose.js:1707 +#: js/block.js:1671 +#: js/blocks/WidgetBlocks.js:1190 +#: js/blocks/WidgetBlocks.js:1228 +#.TRANS: widget for subdividing a measure into distinct rhythmic elements +msgid "rhythm maker" msgstr "" -#: js/toolbar.js:68 -#: js/toolbar.js:128 -#: js/toolbar.js:193 -#: js/toolbar.js:248 -#: js/LocalCard.js:54 -#: js/StringHelper.js:71 -msgid "Merge with current project" +#: js/block-verbose.js:1714 +#: js/block-verbose.js:2457 +#: js/block-verbose.js:2514 +#: js/block.js:1678 +#: js/block.js:2385 +#: js/block.js:2442 +#: js/blocks/MeterBlocks.js:1367 +#: js/blocks/OrnamentBlocks.js:220 +#: js/blocks/OrnamentBlocks.js:312 +#: js/blocks/RhythmBlocks.js:33 +#: js/blocks/RhythmBlocks.js:356 +#: js/blocks/RhythmBlocks.js:766 +#: js/blocks/RhythmBlocks.js:806 +#: js/blocks/RhythmBlockPaletteBlocks.js:70 +#: js/blocks/RhythmBlockPaletteBlocks.js:252 +#: js/blocks/RhythmBlockPaletteBlocks.js:485 +#: js/blocks/RhythmBlockPaletteBlocks.js:554 +#: js/blocks/RhythmBlockPaletteBlocks.js:605 +#: js/blocks/RhythmBlockPaletteBlocks.js:875 +#: js/turtleactions/DictActions.js:85 +#: js/widgets/phrasemaker.js:942 +#: js/widgets/phrasemaker.js:2656 +#: js/widgets/phrasemaker.js:2699 +#: js/widgets/phrasemaker.js:2810 +#.TRANS: the value (e.g., 1/4 note) of the note being played. +msgid "note value" msgstr "" -#: js/toolbar.js:69 -#: js/toolbar.js:129 -msgid "Set Pitch Preview" +#: js/block-verbose.js:1721 +#: js/block-verbose.js:2382 +#: js/block-verbose.js:2405 +#: js/block.js:1685 +#: js/block.js:2310 +#: js/block.js:2333 +#: js/blocks/IntervalsBlocks.js:1071 +#: js/blocks/OrnamentBlocks.js:312 +#.TRANS: calculate a relative step between notes based on semi-tones +msgid "scalar interval" msgstr "" -#: js/toolbar.js:70 -#: js/toolbar.js:130 -#: js/toolbar.js:194 -#: js/toolbar.js:249 -msgid "Toggle JavaScript Editor" +#: js/block-verbose.js:1728 +#: js/block.js:1692 +#: js/blocks/RhythmBlocks.js:148 +msgid "milliseconds" msgstr "" -#: js/toolbar.js:71 -#: js/toolbar.js:131 -#: js/toolbar.js:195 -#: js/toolbar.js:250 -#: js/turtledefs.js:724 -msgid "Restore" +#: js/block-verbose.js:2455 +#: js/block-verbose.js:2459 +#: js/block-verbose.js:2512 +#: js/block-verbose.js:2628 +#: js/block.js:2383 +#: js/block.js:2387 +#: js/block.js:2440 +#: js/block.js:2556 +#: js/blocks/RhythmBlocks.js:712 +#: js/blocks/ProgramBlocks.js:1273 +#: js/widgets/rhythmruler.js:1183 +#: js/widgets/rhythmruler.js:1329 +msgid "silence" msgstr "" -#: js/toolbar.js:72 -#: js/toolbar.js:132 -#: js/toolbar.js:196 -#: js/toolbar.js:251 -msgid "Switch to beginner mode" +#: js/block-verbose.js:2548 +#: js/block-verbose.js:3492 +#: js/block-verbose.js:3509 +#: js/activity.js:2718 +#: js/activity.js:2769 +#: js/block.js:2476 +#: js/block.js:3416 +#: js/block.js:3433 +#: js/utils/musicutils.js:3780 +#: js/utils/musicutils.js:5273 +#.TRANS: the note names must be separated by single spaces +#.TRANS: the note names must be separated by single spaces +#.TRANS: the note names must be separated by single spaces +msgid "ti la sol fa mi re do" msgstr "" -#: js/toolbar.js:73 -#: js/toolbar.js:133 -#: js/toolbar.js:197 -#: js/toolbar.js:252 -msgid "Switch to advanced mode" +#: js/block-verbose.js:2616 +#: js/block.js:2544 +#.TRANS: scalar step +#.TRANS: scalar step +msgid "down" msgstr "" -#: js/toolbar.js:74 -#: js/toolbar.js:134 -#: js/toolbar.js:143 -#: js/toolbar.js:198 -#: js/toolbar.js:253 -#: js/turtledefs.js:738 -msgid "Select language" +#: js/block-verbose.js:2617 +#: js/block.js:2545 +msgid "up" msgstr "" -#: js/toolbar.js:76 -#: js/toolbar.js:79 -#: js/toolbar.js:137 -#: js/turtledefs.js:579 -msgid "Save mouse artwork as PNG" +#: js/block-verbose.js:3026 +#: js/block.js:2950 +msgid "Silence block cannot be removed." msgstr "" -#: js/toolbar.js:78 -#: js/toolbar.js:136 -#: js/turtledefs.js:575 -msgid "Save mouse artwork as SVG" +#: js/block-verbose.js:3824 +#: js/block.js:3748 +#: js/blocks.js:2607 +#: js/blocks.js:3218 +#: js/palette.js:618 +#: js/blocks/BooleanBlocks.js:77 +#: js/blocks/BooleanBlocks.js:167 +#: js/blocks/BooleanBlocks.js:251 +#: js/blocks/BooleanBlocks.js:335 +#: js/blocks/BooleanBlocks.js:433 +#: js/blocks/BooleanBlocks.js:539 +#: js/blocks/BooleanBlocks.js:640 +#: js/blocks/BooleanBlocks.js:741 +#: js/blocks/BooleanBlocks.js:847 +#: js/blocks/BooleanBlocks.js:948 +#: js/blocks/BooleanBlocks.js:1033 +#: js/blocks/SensorsBlocks.js:910 +msgid "true" msgstr "" -#: js/toolbar.js:80 -#: js/toolbar.js:138 -#: js/turtledefs.js:583 -msgid "Save music as WAV" +#: js/block-verbose.js:3824 +#: js/block.js:3748 +#: js/blocks.js:2609 +#: js/blocks.js:3220 +#: js/blocks/BooleanBlocks.js:79 +#: js/blocks/BooleanBlocks.js:169 +#: js/blocks/BooleanBlocks.js:253 +#: js/blocks/BooleanBlocks.js:337 +#: js/blocks/BooleanBlocks.js:435 +#: js/blocks/BooleanBlocks.js:541 +#: js/blocks/BooleanBlocks.js:642 +#: js/blocks/BooleanBlocks.js:743 +#: js/blocks/BooleanBlocks.js:849 +#: js/blocks/BooleanBlocks.js:950 +#: js/blocks/SensorsBlocks.js:912 +msgid "false" msgstr "" -#: js/toolbar.js:81 -#: js/toolbar.js:139 -#: js/turtledefs.js:587 -msgid "Save sheet music as ABC" +#: js/block-verbose.js:3835 +#: js/block-verbose.js:3848 +#: js/block.js:3759 +#: js/block.js:3772 +#: js/blocks/ExtrasBlocks.js:615 +msgid "Cartesian" msgstr "" -#: js/toolbar.js:82 -#: js/toolbar.js:140 -#: js/turtledefs.js:591 -msgid "Save sheet music as Lilypond" +#: js/block-verbose.js:3836 +#: js/block-verbose.js:3849 +#: js/block.js:3760 +#: js/block.js:3773 +#: js/blocks/ExtrasBlocks.js:619 +msgid "polar" msgstr "" -#: js/toolbar.js:83 -msgid "Save sheet music as MusicXML" +#: js/block-verbose.js:3837 +#: js/block-verbose.js:3850 +#: js/block.js:3761 +#: js/block.js:3774 +#: js/blocks/ExtrasBlocks.js:623 +msgid "Cartesian+polar" msgstr "" -#: js/toolbar.js:84 -#: js/toolbar.js:141 -#: js/toolbar.js:149 -#: js/toolbar.js:204 -#: js/toolbar.js:259 -#: js/turtledefs.js:562 -#: js/turtledefs.js:595 -msgid "Save block artwork as SVG" +#: js/block-verbose.js:3838 +#: js/block-verbose.js:3857 +#: js/block.js:3762 +#: js/block.js:3781 +#: js/blocks/ExtrasBlocks.js:652 +msgid "none" msgstr "" -#: js/toolbar.js:85 -#: js/toolbar.js:142 -#: js/toolbar.js:150 -#: js/toolbar.js:205 -#: js/toolbar.js:260 -msgid "Confirm" +#: js/block-verbose.js:3851 +#: js/block.js:3775 +#: js/blocks/ExtrasBlocks.js:628 +msgid "treble" msgstr "" -#: js/toolbar.js:86 -#: js/toolbar.js:151 -#: js/toolbar.js:206 -#: js/toolbar.js:261 -msgid "English (United States)" +#: js/block-verbose.js:3852 +#: js/block.js:3776 +#: js/blocks/ExtrasBlocks.js:632 +msgid "grand staff" msgstr "" -#: js/toolbar.js:87 -#: js/toolbar.js:152 -#: js/toolbar.js:207 -#: js/toolbar.js:262 -msgid "English (United Kingdom)" +#: js/block-verbose.js:3853 +#: js/block.js:3777 +#: js/blocks/ExtrasBlocks.js:636 +msgid "mezzo-soprano" msgstr "" -#: js/toolbar.js:88 -#: js/toolbar.js:153 -#: js/toolbar.js:208 -#: js/toolbar.js:263 -msgid "日本語" +#: js/block-verbose.js:3854 +#: js/block.js:3778 +#: js/blocks/ExtrasBlocks.js:640 +msgid "alto" msgstr "" -#: js/toolbar.js:89 -msgid "한국어" +#: js/block-verbose.js:3855 +#: js/block.js:3779 +#: js/blocks/ExtrasBlocks.js:644 +msgid "tenor" msgstr "" -#: js/toolbar.js:90 -#: js/toolbar.js:155 -#: js/toolbar.js:210 -#: js/toolbar.js:265 -msgid "español" +#: js/block-verbose.js:3856 +#: js/block.js:3780 +#: js/utils/musicutils.js:1115 +#: js/utils/synthutils.js:80 +#: js/blocks/ExtrasBlocks.js:648 +#.TRANS: musical instrument +msgid "bass" msgstr "" -#: js/toolbar.js:91 -#: js/toolbar.js:156 -#: js/toolbar.js:211 -#: js/toolbar.js:266 -msgid "português" +#: js/block-verbose.js:3901 +#: js/block.js:3825 +#: js/blocks.js:2600 +#: js/blocks.js:3211 +msgid "on2" msgstr "" -#: js/toolbar.js:92 -#: js/toolbar.js:157 -#: js/toolbar.js:212 -#: js/toolbar.js:267 -msgid "にほんご" +#: js/block-verbose.js:3903 +#: js/block.js:3827 +#: js/blocks.js:2602 +#: js/blocks.js:3213 +msgid "off" msgstr "" -#: js/toolbar.js:93 -#: js/toolbar.js:158 -#: js/toolbar.js:213 -#: js/toolbar.js:268 -msgid "中文" +#: js/block-verbose.js:4470 +#: js/block.js:4394 +msgid "Not a number" msgstr "" -#: js/toolbar.js:94 -#: js/toolbar.js:159 -#: js/toolbar.js:214 -#: js/toolbar.js:269 -msgid "ภาษาไทย" +#: js/block-verbose.js:4477 +#: js/block.js:4401 +msgid "Octave value must be between 1 and 10." msgstr "" -#: js/toolbar.js:95 -#: js/toolbar.js:160 -#: js/toolbar.js:215 -#: js/toolbar.js:270 -msgid "aymara" +#: js/block-verbose.js:4485 +#: js/block.js:4409 +msgid "Numbers can have at most 10 digits." msgstr "" -#: js/toolbar.js:96 -#: js/toolbar.js:161 -#: js/toolbar.js:216 -#: js/toolbar.js:271 -msgid "quechua" +#: js/activity.js:390 +#: js/activity.js:395 +msgid "Search for blocks" msgstr "" -#: js/toolbar.js:97 -#: js/toolbar.js:162 -#: js/toolbar.js:217 -#: js/toolbar.js:272 -msgid "guarani" +#: js/activity.js:1413 +msgid "Refresh your browser to change to advanced mode." msgstr "" -#: js/toolbar.js:98 -#: js/toolbar.js:163 -#: js/toolbar.js:218 -#: js/toolbar.js:273 -msgid "हिंदी" +#: js/activity.js:1418 +msgid "Refresh your browser to change to beginner mode." msgstr "" -#: js/toolbar.js:99 -#: js/toolbar.js:165 -#: js/toolbar.js:219 -#: js/toolbar.js:275 -msgid "igbo" +#: js/activity.js:1477 +msgid "Catching mice" +msgstr "" + +#: js/activity.js:1478 +msgid "Cleaning the instruments" +msgstr "" + +#: js/activity.js:1479 +msgid "Testing key pieces" +msgstr "" + +#: js/activity.js:1480 +msgid "Sight-reading" +msgstr "" + +#: js/activity.js:1481 +msgid "Combining math and music" msgstr "" -#: js/toolbar.js:100 -#: js/toolbar.js:166 -#: js/toolbar.js:220 -#: js/toolbar.js:276 -msgid "عربى" +#: js/activity.js:1482 +msgid "Generating more blocks" msgstr "" -#: js/toolbar.js:101 -#: js/toolbar.js:164 -#: js/toolbar.js:221 -#: js/toolbar.js:274 -msgid "తెలుగు" +#: js/activity.js:1483 +msgid "Do Re Mi Fa Sol La Ti Do" msgstr "" -#: js/toolbar.js:102 -#: js/toolbar.js:167 -#: js/toolbar.js:222 -#: js/toolbar.js:277 -msgid "עִברִית" +#: js/activity.js:1484 +msgid "Tuning string instruments" msgstr "" -#: js/toolbar.js:111 -#: js/toolbar.js:175 -#: js/toolbar.js:176 -#: js/toolbar.js:231 -msgid "Full Screen" +#: js/activity.js:1485 +msgid "Pressing random keys" msgstr "" -#: js/toolbar.js:145 -#: js/toolbar.js:148 -#: js/toolbar.js:200 -#: js/toolbar.js:203 -#: js/toolbar.js:255 -#: js/toolbar.js:258 -#: js/turtledefs.js:558 -msgid "Save turtle artwork as PNG" +#: js/activity.js:1663 +msgid "plugins will be removed upon restart." msgstr "" -#: js/toolbar.js:147 -#: js/toolbar.js:202 -#: js/toolbar.js:257 -#: js/turtledefs.js:554 -msgid "Save turtle artwork as SVG" +#: js/activity.js:1672 +msgid "show Cartesian" msgstr "" -#: js/toolbar.js:154 -#: js/toolbar.js:209 -#: js/toolbar.js:264 -msgid "한국인" +#: js/activity.js:2211 +#: js/palette.js:589 +#: js/blocks/RhythmBlocks.js:923 +#: js/blocks/PitchBlocks.js:442 +#: js/blocks/PitchBlocks.js:1786 +#.TRANS: a numeric mapping of the notes in an octave based on the musical mode +msgid "scale degree" msgstr "" -#: js/toolbar.js:171 -#: js/toolbar.js:227 -msgid "About Turtle Blocks" +#: js/activity.js:2214 +#: js/palette.js:598 +msgid "voice name" msgstr "" -#: js/toolbar.js:429 -#: js/toolbar.js:440 -msgid "Turtle Wrap Off" +#: js/activity.js:2217 +#: js/palette.js:595 +msgid "invert mode" msgstr "" -#: js/toolbar.js:442 -msgid "Turtle Wrap On" +#: js/activity.js:2220 +msgid "output tools" msgstr "" -#: js/block.js:1470 -msgid "matrix" +#: js/activity.js:2223 +msgid "custom note" msgstr "" -#: js/block.js:1477 -#: js/WidgetBlocks.js:1226 -#: plugins/rodi.rtp:324 -msgid "status" +#: js/activity.js:2226 +msgid "accidental name" msgstr "" -#: js/block.js:1484 -msgid "drum mapper" +#: js/activity.js:2229 +#: js/blocks/PitchBlocks.js:855 +msgid "east indian solfege" msgstr "" -#: js/block.js:1491 -msgid "ruler" +#: js/activity.js:2232 +#: js/blocks/PitchBlocks.js:869 +msgid "note name" msgstr "" -#: js/block.js:1498 -#: js/WidgetBlocks.js:327 -#.TRANS: timbre is the character or quality of a musical sound -msgid "timbre" +#: js/activity.js:2235 +#: js/blocks/IntervalsBlocks.js:94 +msgid "temperament name" msgstr "" -#: js/block.js:1505 -msgid "stair" +#: js/activity.js:2238 +#: js/palette.js:592 +msgid "mode name" msgstr "" -#: js/block.js:1512 -#: js/WidgetBlocks.js:577 -#.TRANS: the speed at music is should be played. -msgid "tempo" +#: js/activity.js:2241 +msgid "chord name" msgstr "" -#: js/block.js:1519 -#: js/block.js:1582 -#: js/IntervalsBlocks.js:1268 -#.TRANS: mode, e.g., Major in C Major -msgid "mode" +#: js/activity.js:2244 +#: js/palette.js:615 +msgid "interval name" msgstr "" -#: js/block.js:1526 -msgid "slider" +#: js/activity.js:2247 +msgid "filter type" msgstr "" -#: js/block.js:1533 -#: js/SensorsBlocks.js:1001 -msgid "keyboard" +#: js/activity.js:2250 +msgid "oscillator type" msgstr "" -#: js/block.js:1547 -#: js/WidgetBlocks.js:957 -#: js/WidgetBlocks.js:988 -#.TRANS: widget for subdividing a measure into distinct rhythmic elements -msgid "rhythm maker" +#: js/activity.js:2253 +#: js/blocks.js:2479 +#: js/blocks.js:2487 +msgid "audio file" msgstr "" -#: js/block.js:1554 -#: js/block.js:2182 -#: js/block.js:2236 -#: js/RhythmBlockPaletteBlocks.js:70 -#: js/RhythmBlockPaletteBlocks.js:251 -#: js/RhythmBlockPaletteBlocks.js:484 -#: js/RhythmBlockPaletteBlocks.js:553 -#: js/RhythmBlockPaletteBlocks.js:604 -#: js/RhythmBlockPaletteBlocks.js:874 -#: js/RhythmBlocks.js:33 -#: js/RhythmBlocks.js:356 -#: js/RhythmBlocks.js:766 -#: js/RhythmBlocks.js:806 -#: js/OrnamentBlocks.js:220 -#: js/OrnamentBlocks.js:312 -#: js/MeterBlocks.js:1367 -#: js/DictActions.js:85 -#: js/phrasemaker.js:731 -#: js/phrasemaker.js:2393 -#: js/phrasemaker.js:2436 -#: js/phrasemaker.js:2534 -#.TRANS: the value (e.g., 1/4 note) of the note being played. -msgid "note value" +#: js/activity.js:2256 +#: js/blocks/DrumBlocks.js:32 +msgid "noise name" msgstr "" -#: js/block.js:1561 -#: js/block.js:2110 -#: js/block.js:2133 -#: js/IntervalsBlocks.js:875 -#: js/OrnamentBlocks.js:312 -#.TRANS: calculate a relative step between notes based on semi-tones -msgid "scalar interval" +#: js/activity.js:2259 +#: js/blocks/DrumBlocks.js:75 +msgid "drum name" msgstr "" -#: js/block.js:1568 -#: js/RhythmBlocks.js:148 -msgid "milliseconds" +#: js/activity.js:2262 +#: js/blocks/DrumBlocks.js:119 +msgid "effects name" msgstr "" -#: js/block.js:2180 -#: js/block.js:2184 -#: js/block.js:2234 -#: js/block.js:2345 -#: js/ProgramBlocks.js:1273 -#: js/RhythmBlocks.js:712 -#: js/rhythmruler.js:834 -#: js/rhythmruler.js:961 -msgid "silence" +#: js/activity.js:2265 +msgid "wrap mode" msgstr "" -#: js/block.js:2265 -#: js/block.js:3134 -#: js/block.js:3151 -#: js/activity.js:2336 -#: js/activity.js:2387 -#: js/musicutils.js:2932 -#: js/musicutils.js:4287 -#.TRANS: the note names must be separated by single spaces -#.TRANS: the note names must be separated by single spaces -msgid "ti la sol fa mi re do" +#: js/activity.js:2268 +msgid "load file" msgstr "" -#: js/block.js:2333 -#.TRANS: scalar step -msgid "down" +#: js/activity.js:2435 +#: js/activity.js:5851 +msgid "This block is deprecated." msgstr "" -#: js/block.js:2334 -msgid "up" +#: js/activity.js:2437 +#: js/activity.js:5853 +msgid "Block cannot be found." msgstr "" -#: js/block.js:3477 -#: js/block.js:3490 -#: js/ExtrasBlocks.js:612 -msgid "Cartesian" +#: js/activity.js:2645 +msgid "Saving block artwork" msgstr "" -#: js/block.js:3478 -#: js/block.js:3491 -#: js/ExtrasBlocks.js:616 -msgid "polar" +#: js/activity.js:2656 +msgid "Erase" msgstr "" -#: js/block.js:3479 -#: js/block.js:3492 -#: js/ExtrasBlocks.js:620 -msgid "Cartesian+polar" +#: js/activity.js:2683 +#: js/activity.js:2705 +msgid "Paste" msgstr "" -#: js/block.js:3480 -#: js/block.js:3499 -#: js/ExtrasBlocks.js:649 -msgid "none" +#: js/activity.js:2687 +msgid "Save block help" msgstr "" -#: js/block.js:3493 -#: js/ExtrasBlocks.js:625 -msgid "treble" +#: js/activity.js:2772 +msgid "Jumping to the bottom of the page." msgstr "" -#: js/block.js:3494 -#: js/ExtrasBlocks.js:629 -msgid "grand staff" +#: js/activity.js:2778 +msgid "Scrolling up." msgstr "" -#: js/block.js:3495 -#: js/ExtrasBlocks.js:633 -msgid "mezzo-soprano" +#: js/activity.js:2783 +msgid "Scrolling down." msgstr "" -#: js/block.js:3496 -#: js/ExtrasBlocks.js:637 -msgid "alto" +#: js/activity.js:2788 +msgid "Extracting block" msgstr "" -#: js/block.js:3497 -#: js/ExtrasBlocks.js:641 -msgid "tenor" +#: js/activity.js:2796 +msgid "Moving block up." msgstr "" -#: js/block.js:3498 -#: js/ExtrasBlocks.js:645 -#: js/musicutils.js:736 -#: js/synthutils.js:64 -#.TRANS: musical instrument -msgid "bass" +#: js/activity.js:2817 +msgid "Moving block down." msgstr "" -#: js/block.js:4075 -msgid "Not a number" +#: js/activity.js:2838 +msgid "Moving block left." msgstr "" -#: js/block.js:4082 -msgid "Octave value must be between 1 and 10." +#: js/activity.js:2855 +msgid "Moving block right." msgstr "" -#: js/block.js:4090 -msgid "Numbers can have at most 10 digits." +#: js/activity.js:2870 +msgid "Jump to home position." msgstr "" -#: js/notation.js:353 -msgid "Lilypond cannot process pickup of " +#: js/activity.js:2897 +msgid "Hide blocks" msgstr "" -#: js/turtledefs.js:40 -#.TRANS: put the URL to the guide here, e.g., https://github.com/sugarlabs/turtleblocksjs/tree/master/guide/README.md -msgid "guide url" +#: js/activity.js:4500 +msgid "Click the run button to run the project." msgstr "" -#: js/turtledefs.js:85 -#: js/turtledefs.js:437 -msgid "Turtle Blocks is a Logo-inspired turtle that draws colorful pictures with snap-together visual-programming blocks." +#: js/activity.js:5692 +msgid "Show/hide block" msgstr "" -#: js/turtledefs.js:118 -#: js/turtledefs.js:220 -msgid "search" +#: js/activity.js:5698 +msgid "Expand/collapse blocks" msgstr "" -#: js/turtledefs.js:120 -#: js/turtledefs.js:222 -#: js/WidgetBlocks.js:437 -#: js/MeterBlocks.js:1343 -#.TRANS: musical meter (time signature), e.g., 4:4 -msgid "meter" +#: js/activity.js:5976 +msgid "Could not parse JSON input." msgstr "" -#: js/turtledefs.js:122 -#: js/turtledefs.js:224 -msgid "intervals" +#: js/activity.js:6475 +#: js/activity.js:6580 +#: js/activity.js:6631 +msgid "Cannot load project from the file. Please check the file type." msgstr "" -#: js/turtledefs.js:124 -#: js/turtledefs.js:226 -msgid "ornament" +#: js/activity.js:6917 +msgid "Invalid parameters" msgstr "" -#: js/turtledefs.js:125 -#: js/turtledefs.js:227 -#: js/VolumeBlocks.js:362 -#: js/VolumeBlocks.js:502 -#: js/VolumeBlocks.js:545 -msgid "volume" +#: js/blocks.js:1212 +#: js/blocks.js:3444 +#: js/blocks.js:3834 +#: js/blocks.js:3865 +#: js/blocks.js:3914 +#: js/blocks.js:3949 +#: js/blocks.js:6586 +#: js/palette.js:509 +#: js/palette.js:638 +#: js/palette.js:1105 +#: js/blocks/BoxesBlocks.js:282 +#: js/blocks/BoxesBlocks.js:285 +#: js/blocks/BoxesBlocks.js:405 +#: js/blocks/BoxesBlocks.js:594 +msgid "box" msgstr "" -#: js/turtledefs.js:129 -#: js/turtledefs.js:231 -msgid "boxes" +#: js/blocks.js:1713 +msgid "Consider breaking this stack into parts." msgstr "" -#: js/turtledefs.js:130 -#: js/turtledefs.js:232 -msgid "widgets" +#: js/blocks.js:2472 +#: js/palette.js:653 +#: js/blocks/MediaBlocks.js:602 +msgid "open file" msgstr "" -#: js/turtledefs.js:131 -#: js/turtledefs.js:233 -#: js/phrasemaker.js:824 -msgid "graphics" +#: js/blocks.js:3247 +#: js/palette.js:574 +#: js/blocks/MediaBlocks.js:892 +#: js/blocks/MediaBlocks.js:963 +msgid "text" msgstr "" -#: js/turtledefs.js:134 -#: js/turtledefs.js:236 -msgid "boolean" +#: js/blocks.js:3443 +#: js/palette.js:641 +#: js/palette.js:642 +#: js/blocks/BoxesBlocks.js:514 +msgid "store in box" msgstr "" -#: js/turtledefs.js:137 -#: js/turtledefs.js:239 -#: js/HeapBlocks.js:59 -#: js/status.js:147 -msgid "heap" +#: js/blocks.js:3448 +#: js/blocks.js:3888 +#: js/blocks.js:3923 +#: js/blocks.js:3958 +#: js/blocks.js:5862 +#: js/blocks.js:5883 +#: js/blocks/BoxesBlocks.js:772 +msgid "box1" msgstr "" -#: js/turtledefs.js:138 -#: js/turtledefs.js:240 -#: js/ProgramBlocks.js:495 -#: js/DictBlocks.js:142 -msgid "dictionary" +#: js/blocks.js:3450 +#: js/blocks.js:3890 +#: js/blocks.js:3925 +#: js/blocks.js:3960 +#: js/blocks.js:5864 +#: js/blocks.js:5885 +#: js/blocks/BoxesBlocks.js:663 +msgid "box2" msgstr "" -#: js/turtledefs.js:139 -#: js/turtledefs.js:241 -msgid "ensemble" +#: js/blocks.js:4122 +#: js/palette.js:639 +#: js/palette.js:644 +#: js/palette.js:1041 +#: js/blocks/BoxesBlocks.js:591 +msgid "store in" msgstr "" -#: js/turtledefs.js:140 -#: js/turtledefs.js:242 -msgid "extras" +#: js/blocks.js:4122 +#: js/blocks/BoxesBlocks.js:595 +#: js/blocks/DictBlocks.js:215 +#: js/blocks/DictBlocks.js:289 +#: js/blocks/EnsembleBlocks.js:391 +#: js/blocks/EnsembleBlocks.js:402 +#: js/blocks/MediaBlocks.js:746 +#: js/blocks/PitchBlocks.js:656 +#: js/blocks/PitchBlocks.js:934 +#: js/blocks/PitchBlocks.js:1866 +#: js/blocks/ProgramBlocks.js:390 +#: js/blocks/ProgramBlocks.js:495 +#: js/blocks/ProgramBlocks.js:658 +#: js/blocks/ToneBlocks.js:1025 +msgid "name" msgstr "" -#: js/turtledefs.js:142 -#: js/turtledefs.js:244 -#.TRANS: program as in computer program -#.TRANS: program as in computer program -msgid "program" +#: js/blocks.js:4122 +#: js/blocks/BoxesBlocks.js:75 +#: js/blocks/BoxesBlocks.js:595 +#: js/blocks/DictBlocks.js:289 +#: js/blocks/DictBlocks.js:430 +#: js/blocks/HeapBlocks.js:544 +#: js/blocks/RhythmBlocks.js:1130 +msgid "value" msgstr "" -#: js/turtledefs.js:143 -#: js/turtledefs.js:245 -msgid "my blocks" +#: js/blocks.js:4465 +msgid "Forever loop detected inside a note value block. Unexpected things may happen." msgstr "" -#: js/turtledefs.js:185 -#: js/turtledefs.js:281 -msgid "artwork" +#: js/blocks.js:4988 +msgid "There is no block selected." msgstr "" -#: js/turtledefs.js:185 -#: js/turtledefs.js:281 -msgid "logic" +#: js/blocks.js:5091 +#: js/blocks/MediaBlocks.js:888 +msgid "show" msgstr "" -#: js/turtledefs.js:185 -#: js/turtledefs.js:281 -msgid "music" +#: js/blocks.js:5094 +#: js/blocks/MediaBlocks.js:803 +#.TRANS: Avatar is the image used to determine the appearance of the mouse. +msgid "avatar" msgstr "" -#: js/turtledefs.js:187 -#: js/turtledefs.js:463 -msgid "Music Blocks is a collection of tools for exploring fundamental musical concepts in a fun way." +#: js/blocks.js:5097 +#: js/blocks/ToneBlocks.js:1010 +#: js/widgets/sampler.js:975 +#.TRANS: The sound sample that the user uploads. +msgid "sample" msgstr "" -#: js/turtledefs.js:436 -msgid "Welcome to Turtle Blocks" +#: js/lilypond.js:606 +msgid "brown rat" msgstr "" -#: js/turtledefs.js:438 -#: js/turtledefs.js:465 -#: js/turtledefs.js:774 -#: js/turtledefs.js:805 -msgid "The current version is" +#: js/lilypond.js:607 +msgid "mole" msgstr "" -#: js/turtledefs.js:446 -#: js/turtledefs.js:483 -msgid "Click the run button to run the project in fast mode." +#: js/lilypond.js:608 +msgid "chipmunk" msgstr "" -#: js/turtledefs.js:452 -msgid "Stop the turtle." +#: js/lilypond.js:609 +msgid "red squirrel" msgstr "" -#: js/turtledefs.js:454 -#: js/turtledefs.js:491 -msgid "You can also type Alt-S to stop." +#: js/lilypond.js:610 +msgid "guinea pig" +msgstr "" + +#: js/lilypond.js:611 +msgid "capybara" msgstr "" -#: js/turtledefs.js:462 -#: js/help.js:333 -msgid "Welcome to Music Blocks" +#: js/lilypond.js:612 +msgid "coypu" msgstr "" -#: js/turtledefs.js:472 -#: js/help.js:334 -msgid "Meet Mr. Mouse!" +#: js/lilypond.js:613 +msgid "black rat" msgstr "" -#: js/turtledefs.js:473 -msgid "Mr Mouse is our Music Blocks conductor." +#: js/lilypond.js:614 +msgid "grey squirrel" msgstr "" -#: js/turtledefs.js:475 -msgid "Mr Mouse encourages you to explore Music Blocks." +#: js/lilypond.js:615 +msgid "flying squirrel" msgstr "" -#: js/turtledefs.js:477 -msgid "Let us start our tour!" +#: js/lilypond.js:616 +msgid "bat" msgstr "" -#: js/turtledefs.js:489 -msgid "Stop the music (and the mice)." +#: js/lilypond.js:749 +#: js/lilypond.js:913 +#: js/lilypond.js:951 +#: js/blocks/ActionBlocks.js:1256 +#: js/blocks/ExtrasBlocks.js:556 +msgid "start drum" msgstr "" -#: js/turtledefs.js:499 -msgid "Record your project as video." +#: js/logo.js:61 +msgid "Not a valid pitch name" msgstr "" -#: js/turtledefs.js:505 -msgid "Toggle Fullscreen mode." +#: js/logo.js:507 +#: js/blocks/ProgramBlocks.js:258 +#: js/blocks/ProgramBlocks.js:427 +msgid "You must select a file." msgstr "" -#: js/turtledefs.js:511 -msgid "Initialize a new project." +#: js/logo.js:1696 +msgid "Playback is ready." msgstr "" -#: js/turtledefs.js:517 -msgid "You can also load projects from the file system." +#: js/macros.js:711 +#: js/utils/musicutils.js:1162 +#: js/utils/synthutils.js:202 +#.TRANS: animal sound effect +msgid "duck" msgstr "" -#: js/turtledefs.js:522 -#: js/StringHelper.js:46 -msgid "Delete" +#: js/notation.js:353 +msgid "Lilypond cannot process pickup of " msgstr "" -#: js/turtledefs.js:523 -msgid "To delete a block, just right-click on it, then you will be able to see the delete option" +#: js/palette.js:571 +msgid "grid" msgstr "" -#: js/turtledefs.js:528 -#: js/activity.js:2270 -#: js/LocalCard.js:31 -msgid "Copy" +#: js/palette.js:580 +msgid "effect" msgstr "" -#: js/turtledefs.js:529 -msgid "To copy a block, just right-click on it, then you will be able to see the copy option" +#: js/palette.js:586 +msgid "sargam" msgstr "" -#: js/turtledefs.js:535 -msgid "To extract a block, just right-click on it, then you will be able to see the extract option" +#: js/palette.js:601 +#: js/blocks/PitchBlocks.js:1209 +msgid "custom pitch" msgstr "" -#: js/turtledefs.js:542 -#: js/turtledefs.js:552 -#: js/turtledefs.js:573 -msgid "Save your project to a file." +#: js/palette.js:609 +msgid "accidental" msgstr "" -#: js/turtledefs.js:549 -#: js/turtledefs.js:570 -msgid "save" +#: js/palette.js:633 +#: js/blocks/PitchBlocks.js:405 +msgid "pitch converter" msgstr "" -#: js/turtledefs.js:556 -#: js/turtledefs.js:577 -msgid "Save graphics from your project to as SVG." +#: js/piemenus.js:200 +#: js/utils/musicutils.js:1187 +#: js/utils/musicutils.js:1207 +#: js/widgets/musickeyboard.js:2341 +#: js/widgets/phrasemaker.js:1908 +#: js/widgets/sampler.js:810 +#.TRANS: double sharp is a music term related to pitch +msgid "double sharp" msgstr "" -#: js/turtledefs.js:560 -#: js/turtledefs.js:581 -msgid "Save graphics from your project as PNG." +#: js/piemenus.js:201 +#: js/utils/musicutils.js:1185 +#: js/utils/musicutils.js:1208 +#: js/blocks/PitchBlocks.js:1539 +#: js/turtleactions/PitchActions.js:323 +#: js/widgets/musickeyboard.js:2342 +#: js/widgets/phrasemaker.js:1909 +#: js/widgets/sampler.js:811 +#.TRANS: sharp is a music term related to pitch +#.TRANS: sharp is a half-step up in pitch +msgid "sharp" msgstr "" -#: js/turtledefs.js:564 -#: js/turtledefs.js:597 -msgid "Save block artwork as an SVG file." +#: js/piemenus.js:202 +#: js/utils/musicutils.js:1183 +#: js/utils/musicutils.js:1209 +#: js/widgets/musickeyboard.js:2343 +#: js/widgets/phrasemaker.js:1910 +#: js/widgets/sampler.js:812 +#.TRANS: natural is a music term related to pitch +msgid "natural" msgstr "" -#: js/turtledefs.js:585 -msgid "Save audio from your project as WAV." +#: js/piemenus.js:203 +#: js/utils/musicutils.js:1181 +#: js/utils/musicutils.js:1210 +#: js/blocks/PitchBlocks.js:1498 +#: js/turtleactions/PitchActions.js:326 +#: js/widgets/musickeyboard.js:2344 +#: js/widgets/phrasemaker.js:1911 +#: js/widgets/sampler.js:813 +#.TRANS: flat is a music term related to pitch +#.TRANS: flat is a half-step down in pitch +msgid "flat" msgstr "" -#: js/turtledefs.js:589 -msgid "Save your project to as an ABC file." +#: js/piemenus.js:204 +#: js/utils/musicutils.js:1179 +#: js/utils/musicutils.js:1211 +#: js/widgets/musickeyboard.js:2345 +#: js/widgets/phrasemaker.js:1912 +#: js/widgets/sampler.js:814 +#.TRANS: double flat is a music term related to pitch +msgid "double flat" msgstr "" -#: js/turtledefs.js:593 -msgid "Save your project to as a Lilypond file." +#: js/piemenus.js:2864 +#: js/utils/musicutils.js:1006 +#: js/blocks/PitchBlocks.js:1385 +#.TRANS: unison is a music term related to intervals +#.TRANS: unison means the note is the same as the current note +msgid "unison" msgstr "" -#: js/turtledefs.js:604 -msgid "Load samples from server" +#: js/piemenus.js:3018 +#: js/piemenus.js:3091 +#: js/utils/musicutils.js:1014 +#: js/utils/musicutils.js:1189 +#: js/utils/musicutils.js:1326 +#.TRANS: major is a music term related to intervals and mode +msgid "major" msgstr "" -#: js/turtledefs.js:605 -msgid "This button opens a viewer for loading example projects." +#: js/piemenus.js:3018 +#: js/piemenus.js:3091 +#: js/utils/musicutils.js:1032 +#.TRANS: modal scale for music +msgid "ionian" msgstr "" -#: js/turtledefs.js:611 -msgid "Palette buttons" +#: js/piemenus.js:3020 +#: js/piemenus.js:3095 +#: js/utils/musicutils.js:1012 +#: js/utils/musicutils.js:1190 +#: js/utils/musicutils.js:1323 +#.TRANS: minor is a music term related to intervals and mode +msgid "minor" msgstr "" -#: js/turtledefs.js:612 -msgid "This toolbar contains the palette buttons including Rhythm Pitch Tone Action and more." +#: js/piemenus.js:3020 +#: js/piemenus.js:3095 +#: js/utils/musicutils.js:1042 +#.TRANS: modal scale for music +msgid "aeolian" msgstr "" -#: js/turtledefs.js:614 -msgid "Click to show the palettes of blocks and drag blocks from the palettes onto the canvas to use them." +#: js/piemenus.js:3410 +msgid "Duplicate" msgstr "" -#: js/turtledefs.js:620 -msgid "Cartesian/Polar" +#: js/piemenus.js:3412 +msgid "Move to trash" msgstr "" -#: js/turtledefs.js:621 -msgid "Show or hide a coordinate grid." +#: js/piemenus.js:3413 +#: js/widgets/timbre.js:968 +#: planet/js/StringHelper.js:69 +msgid "Close" msgstr "" -#: js/turtledefs.js:627 -msgid "Clear the screen and return the mice to their initial positions." +#: js/piemenus.js:3419 +msgid "Save stack" msgstr "" -#: js/turtledefs.js:633 -msgid "Collapse the graphics window." +#: js/piemenus.js:3449 +msgid "In order to copy a sample, you must reload the widget, import the sample again, and export it." msgstr "" -#: js/turtledefs.js:638 -#: js/activity.js:4256 -#: js/activity.js:4256 -msgid "Home" +#: js/piemenus.js:3812 +msgid "You have chosen key " msgstr "" -#: js/turtledefs.js:639 -msgid "Return all blocks to the center of the screen." +#: js/piemenus.js:3816 +msgid " for your pitch preview." msgstr "" -#: js/turtledefs.js:644 -msgid "Show/hide blocks" +#: js/turtle-singer.js:1363 +#.TRANS: partials are weighted components in a harmonic series +msgid "You must have at least one Partial block inside of a Weighted-partial block" msgstr "" -#: js/turtledefs.js:645 -msgid "Hide or show the blocks and the palettes." +#: js/turtle-singer.js:2077 +msgid "synth cannot play chords." msgstr "" -#: js/turtledefs.js:650 -msgid "Expand/collapse collapsable blocks" +#: js/utils/musicutils.js:505 +#: js/utils/musicutils.js:645 +#: js/widgets/pitchdrummatrix.js:228 +#: js/widgets/musickeyboard.js:2885 +msgid "rest" msgstr "" -#: js/turtledefs.js:651 -msgid "Expand or collapse start and action stacks." +#: js/utils/musicutils.js:689 +msgid "Perfect unison" msgstr "" -#: js/turtledefs.js:658 -#: js/activity.js:4265 -msgid "Decrease block size" +#: js/utils/musicutils.js:689 +msgid "Diminished second" msgstr "" -#: js/turtledefs.js:659 -msgid "Decrease the size of the blocks." +#: js/utils/musicutils.js:690 +msgid "Minor second" msgstr "" -#: js/turtledefs.js:664 -#: js/activity.js:4267 -msgid "Increase block size" +#: js/utils/musicutils.js:690 +msgid "Augmented unison" msgstr "" -#: js/turtledefs.js:665 -msgid "Increase the size of the blocks." +#: js/utils/musicutils.js:691 +msgid "Major second" msgstr "" -#: js/turtledefs.js:670 -msgid "Expand/collapse option toolbar" +#: js/utils/musicutils.js:691 +msgid "Diminished third" msgstr "" -#: js/turtledefs.js:671 -msgid "Click this button to expand or collapse the auxillary toolbar." +#: js/utils/musicutils.js:692 +msgid "Minor third" msgstr "" -#: js/turtledefs.js:676 -msgid "Run slow" +#: js/utils/musicutils.js:692 +msgid "Augmented second" msgstr "" -#: js/turtledefs.js:677 -msgid "Click to run the project in slow mode." +#: js/utils/musicutils.js:693 +msgid "Major third" msgstr "" -#: js/turtledefs.js:683 -msgid "Click to run the project step by step." +#: js/utils/musicutils.js:693 +msgid "Diminished fourth" msgstr "" -#: js/turtledefs.js:690 -msgid "Display statistics about your Music project." +#: js/utils/musicutils.js:694 +msgid "Perfect fourth" msgstr "" -#: js/turtledefs.js:697 -msgid "Delete a selected plugin." +#: js/utils/musicutils.js:694 +msgid "Augmented third" msgstr "" -#: js/turtledefs.js:704 -msgid "Enable scrolling" +#: js/utils/musicutils.js:695 +msgid "Diminished fifth" msgstr "" -#: js/turtledefs.js:705 -msgid "You can scroll the blocks on the canvas." +#: js/utils/musicutils.js:695 +msgid "Augmented fourth" msgstr "" -#: js/turtledefs.js:714 -msgid "Wrap Turtle" +#: js/utils/musicutils.js:696 +msgid "Perfect fifth" msgstr "" -#: js/turtledefs.js:715 -msgid "Turn Turtle wrapping On or Off." +#: js/utils/musicutils.js:696 +msgid "Diminished sixth" msgstr "" -#: js/turtledefs.js:725 -msgid "Restore blocks from the trash." +#: js/utils/musicutils.js:697 +msgid "Minor sixth" msgstr "" -#: js/turtledefs.js:732 -msgid "Switch mode" +#: js/utils/musicutils.js:697 +msgid "Augmented fifth" msgstr "" -#: js/turtledefs.js:733 -msgid "Switch between beginner and advance modes." +#: js/utils/musicutils.js:698 +msgid "Major sixth" msgstr "" -#: js/turtledefs.js:739 -msgid "Select your language preference." +#: js/utils/musicutils.js:698 +msgid "Diminished seventh" msgstr "" -#: js/turtledefs.js:745 -msgid "Keyboard shortcuts" +#: js/utils/musicutils.js:699 +msgid "Minor seventh" msgstr "" -#: js/turtledefs.js:746 -msgid "You can type d to create a do block and r to create a re block etc." +#: js/utils/musicutils.js:699 +msgid "Augmented sixth" msgstr "" -#: js/turtledefs.js:753 -msgid "Show these messages." +#: js/utils/musicutils.js:700 +msgid "Major seventh" msgstr "" -#: js/turtledefs.js:759 -#: js/turtledefs.js:790 -#: js/help.js:335 -msgid "Guide" +#: js/utils/musicutils.js:700 +msgid "Diminished octave" msgstr "" -#: js/turtledefs.js:760 -msgid "A detailed guide to Turtle Blocks is available." +#: js/utils/musicutils.js:701 +msgid "Perfect octave" msgstr "" -#: js/turtledefs.js:764 -msgid "Turtle Blocks Guide" +#: js/utils/musicutils.js:701 +msgid "Augmented seventh" msgstr "" -#: js/turtledefs.js:767 -#: js/turtledefs.js:798 -#: js/help.js:336 -msgid "About" +#: js/utils/musicutils.js:702 +msgid "Minor ninth" msgstr "" -#: js/turtledefs.js:768 -msgid "Turtle Blocks is an open source collection of tools for exploring musical concepts." +#: js/utils/musicutils.js:702 +msgid "Augmented octave" msgstr "" -#: js/turtledefs.js:770 -msgid "A full list of contributors can be found in the Turtle Blocks GitHub repository." +#: js/utils/musicutils.js:703 +msgid "Major ninth" msgstr "" -#: js/turtledefs.js:772 -msgid "Turtle Blocks is licensed under the AGPL." +#: js/utils/musicutils.js:703 +msgid "Diminished tenth" msgstr "" -#: js/turtledefs.js:780 -msgid "Turtle Blocks GitHub repository" +#: js/utils/musicutils.js:704 +msgid "Minor tenth" msgstr "" -#: js/turtledefs.js:783 -#: js/turtledefs.js:814 -#: js/help.js:337 -#: js/help.js:359 -msgid "Congratulations." +#: js/utils/musicutils.js:704 +msgid "Augmented ninth" msgstr "" -#: js/turtledefs.js:784 -msgid "You have finished the tour. Please enjoy Turtle Blocks!" +#: js/utils/musicutils.js:705 +msgid "Major tenth" msgstr "" -#: js/turtledefs.js:791 -msgid "A detailed guide to Music Blocks is available." +#: js/utils/musicutils.js:705 +msgid "Diminished eleventh" msgstr "" -#: js/turtledefs.js:795 -#: js/SaveInterface.js:76 -msgid "Music Blocks Guide" +#: js/utils/musicutils.js:706 +msgid "Perfect eleventh" msgstr "" -#: js/turtledefs.js:799 -msgid "Music Blocks is an open source collection of tools for exploring musical concepts." +#: js/utils/musicutils.js:706 +msgid "Augmented tenth" msgstr "" -#: js/turtledefs.js:801 -msgid "A full list of contributors can be found in the Music Blocks GitHub repository." +#: js/utils/musicutils.js:707 +msgid "Diminished twelfth" msgstr "" -#: js/turtledefs.js:803 -msgid "Music Blocks is licensed under the AGPL." +#: js/utils/musicutils.js:707 +msgid "Augmented eleventh" msgstr "" -#: js/turtledefs.js:811 -msgid "Music Blocks GitHub repository" +#: js/utils/musicutils.js:708 +msgid "Perfect twelfth" msgstr "" -#: js/turtledefs.js:815 -msgid "You have finished the tour. Please enjoy Music Blocks!" +#: js/utils/musicutils.js:708 +msgid "Diminished thirteenth" msgstr "" -#: js/activity.js:369 -msgid "Search for blocks" +#: js/utils/musicutils.js:709 +msgid "Minor thirteenth" msgstr "" -#: js/activity.js:1145 -msgid "Refresh your browser to change to advanced mode." +#: js/utils/musicutils.js:709 +msgid "Augmented fifth, plus an octave" msgstr "" -#: js/activity.js:1150 -msgid "Refresh your browser to change to beginner mode." +#: js/utils/musicutils.js:710 +msgid "Major thirteenth" msgstr "" -#: js/activity.js:1184 -msgid "Catching mice" +#: js/utils/musicutils.js:710 +msgid "Diminished seventh, plus an octave" msgstr "" -#: js/activity.js:1185 -msgid "Cleaning the instruments" +#: js/utils/musicutils.js:838 +#.TRANS: ordinal number. Please keep exactly one space between each number. +msgid "1st 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th" msgstr "" -#: js/activity.js:1186 -msgid "Testing key pieces" +#: js/utils/musicutils.js:1008 +#: js/utils/musicutils.js:1191 +#: js/utils/musicutils.js:1325 +#.TRANS: augmented is a music term related to intervals +msgid "augmented" msgstr "" -#: js/activity.js:1187 -msgid "Sight-reading" +#: js/utils/musicutils.js:1010 +#: js/utils/musicutils.js:1192 +#: js/utils/musicutils.js:1324 +#.TRANS: diminished is a music term related to intervals and mode +msgid "diminished" msgstr "" -#: js/activity.js:1188 -msgid "Combining math and music" +#: js/utils/musicutils.js:1016 +#: js/utils/musicutils.js:1322 +#: js/blocks/IntervalsBlocks.js:649 +#: js/turtleactions/IntervalsActions.js:120 +#: js/turtleactions/IntervalsActions.js:124 +#.TRANS: perfect is a music term related to intervals +msgid "perfect" +msgstr "" + +#: js/utils/musicutils.js:1018 +#.TRANS: twelve semi-tone scale for music +msgid "chromatic" msgstr "" -#: js/activity.js:1189 -msgid "Generating more blocks" +#: js/utils/musicutils.js:1019 +msgid "algerian" msgstr "" -#: js/activity.js:1190 -msgid "Do Re Mi Fa Sol La Ti Do" +#: js/utils/musicutils.js:1020 +msgid "spanish" msgstr "" -#: js/activity.js:1191 -msgid "Tuning string instruments" +#: js/utils/musicutils.js:1022 +#.TRANS: modal scale in music +msgid "octatonic" msgstr "" -#: js/activity.js:1192 -msgid "Pressing random keys" +#: js/utils/musicutils.js:1024 +#.TRANS: harmonic major scale in music +msgid "harmonic major" msgstr "" -#: js/activity.js:1351 -msgid "plugins will be removed upon restart." +#: js/utils/musicutils.js:1026 +#.TRANS: natural minor scales in music +msgid "natural minor" msgstr "" -#: js/activity.js:1360 -msgid "show Cartesian" +#: js/utils/musicutils.js:1028 +#.TRANS: harmonic minor scale in music +msgid "harmonic minor" msgstr "" -#: js/activity.js:1842 -msgid "output tools" +#: js/utils/musicutils.js:1030 +#.TRANS: melodic minor scale in music +msgid "melodic minor" msgstr "" -#: js/activity.js:1845 -msgid "custom note" +#: js/utils/musicutils.js:1034 +#.TRANS: modal scale for music +msgid "dorian" msgstr "" -#: js/activity.js:1848 -msgid "accidental name" +#: js/utils/musicutils.js:1036 +#.TRANS: modal scale for music +msgid "phrygian" msgstr "" -#: js/activity.js:1851 -#: js/PitchBlocks.js:855 -msgid "east indian solfege" +#: js/utils/musicutils.js:1038 +#.TRANS: modal scale for music +msgid "lydian" msgstr "" -#: js/activity.js:1854 -#: js/PitchBlocks.js:869 -msgid "note name" +#: js/utils/musicutils.js:1040 +#.TRANS: modal scale for music +msgid "mixolydian" msgstr "" -#: js/activity.js:1857 -#: js/IntervalsBlocks.js:94 -msgid "temperament name" +#: js/utils/musicutils.js:1044 +#.TRANS: modal scale for music +msgid "locrian" msgstr "" -#: js/activity.js:1863 -msgid "chord name" +#: js/utils/musicutils.js:1046 +#.TRANS: minor jazz scale for music +msgid "jazz minor" msgstr "" -#: js/activity.js:1869 -msgid "filter type" +#: js/utils/musicutils.js:1048 +#.TRANS: bebop scale for music +msgid "bebop" msgstr "" -#: js/activity.js:1872 -msgid "oscillator type" +#: js/utils/musicutils.js:1049 +msgid "arabic" msgstr "" -#: js/activity.js:1878 -#: js/DrumBlocks.js:32 -msgid "noise name" +#: js/utils/musicutils.js:1050 +msgid "byzantine" msgstr "" -#: js/activity.js:1881 -#: js/DrumBlocks.js:75 -msgid "drum name" +#: js/utils/musicutils.js:1052 +#.TRANS: musical scale for music by Verdi +msgid "enigmatic" msgstr "" -#: js/activity.js:1884 -#: js/DrumBlocks.js:119 -msgid "effects name" +#: js/utils/musicutils.js:1053 +msgid "ethiopian" msgstr "" -#: js/activity.js:1887 -msgid "wrap mode" +#: js/utils/musicutils.js:1055 +#.TRANS: Ethiopic scale for music +msgid "geez" msgstr "" -#: js/activity.js:1890 -msgid "load file" +#: js/utils/musicutils.js:1056 +msgid "hindu" msgstr "" -#: js/activity.js:2056 -msgid "This block is deprecated." +#: js/utils/musicutils.js:1057 +msgid "hungarian" msgstr "" -#: js/activity.js:2058 -msgid "Block cannot be found." +#: js/utils/musicutils.js:1059 +#.TRANS: minor Romanian scale for music +msgid "romanian minor" msgstr "" -#: js/activity.js:2266 -msgid "Saving block artwork" +#: js/utils/musicutils.js:1060 +msgid "spanish gypsy" msgstr "" -#: js/activity.js:2277 -msgid "Erase" +#: js/utils/musicutils.js:1062 +#.TRANS: musical scale for Mid-Eastern music +msgid "maqam" msgstr "" -#: js/activity.js:2301 -#: js/activity.js:2323 -msgid "Paste" +#: js/utils/musicutils.js:1064 +#.TRANS: minor blues scale for music +msgid "minor blues" msgstr "" -#: js/activity.js:2305 -msgid "Save block help" +#: js/utils/musicutils.js:1066 +#.TRANS: major blues scale for music +msgid "major blues" msgstr "" -#: js/activity.js:2390 -msgid "Jumping to the bottom of the page." +#: js/utils/musicutils.js:1067 +msgid "whole tone" msgstr "" -#: js/activity.js:2396 -msgid "Scrolling up." +#: js/utils/musicutils.js:1069 +#.TRANS: pentatonic is a general term that means "five note scale". This scale is typically known as "minor pentatonic" +msgid "minor pentatonic" msgstr "" -#: js/activity.js:2401 -msgid "Scrolling down." +#: js/utils/musicutils.js:1071 +#.TRANS: pentatonic is a general term that means "five note scale". This scale is typically known as "major pentatonic" +msgid "major pentatonic" msgstr "" -#: js/activity.js:2406 -msgid "Extracting block" +#: js/utils/musicutils.js:1072 +msgid "chinese" msgstr "" -#: js/activity.js:2414 -msgid "Moving block up." +#: js/utils/musicutils.js:1073 +msgid "egyptian" msgstr "" -#: js/activity.js:2435 -msgid "Moving block down." +#: js/utils/musicutils.js:1075 +#.TRANS: https://en.wikipedia.org/wiki/Hirajoshi_scale NOTE: There are three different versions of this scale +msgid "hirajoshi" msgstr "" -#: js/activity.js:2456 -msgid "Moving block left." +#: js/utils/musicutils.js:1076 +msgid "Japan" msgstr "" -#: js/activity.js:2473 -msgid "Moving block right." +#: js/utils/musicutils.js:1078 +#.TRANS: https://en.wikipedia.org/wiki/In_scale and https://en.wikipedia.org/wiki/Sakura_Sakura +msgid "in" msgstr "" -#: js/activity.js:2488 -msgid "Jump to home position." +#: js/utils/musicutils.js:1080 +#.TRANS: https://en.wikipedia.org/wiki/Miny%C5%8D_scale +msgid "minyo" msgstr "" -#: js/activity.js:2515 -msgid "Hide blocks" +#: js/utils/musicutils.js:1082 +#.TRANS: Italian mathematician +msgid "fibonacci" msgstr "" -#: js/activity.js:3389 -msgid "Click the run button to run the project." +#: js/utils/musicutils.js:1083 +#: js/utils/musicutils.js:1134 +#: js/utils/musicutils.js:1177 +#: js/utils/musicutils.js:1199 +#: js/utils/synthutils.js:134 +#: js/blocks/IntervalsBlocks.js:1124 +#: js/blocks/ToneBlocks.js:946 +#: js/blocks/VolumeBlocks.js:411 +#: js/blocks/WidgetBlocks.js:399 +#: js/blocks/WidgetBlocks.js:404 +#: js/turtleactions/VolumeActions.js:218 +#: js/widgets/modewidget.js:919 +#.TRANS: customize voice +msgid "custom" msgstr "" -#: js/activity.js:3456 -#: js/SaveInterface.js:131 -#: js/SaveInterface.js:204 -#: js/SaveInterface.js:262 -#: js/SaveInterface.js:389 -#: js/SaveInterface.js:417 -#: js/ProjectStorage.js:27 -#: js/GlobalPlanet.js:467 -#: js/GlobalPlanet.js:469 -#: js/GlobalPlanet.js:495 -#.TRANS: default project title when saving as Lilypond -msgid "My Project" +#: js/utils/musicutils.js:1085 +#: js/utils/musicutils.js:1531 +#: js/blocks/WidgetBlocks.js:176 +#.TRANS: highpass filter +msgid "highpass" msgstr "" -#: js/activity.js:4261 -msgid "Show/hide block" +#: js/utils/musicutils.js:1087 +#: js/utils/musicutils.js:1532 +#.TRANS: lowpass filter +msgid "lowpass" msgstr "" -#: js/activity.js:4263 -msgid "Expand/collapse blocks" +#: js/utils/musicutils.js:1089 +#: js/utils/musicutils.js:1533 +#.TRANS: bandpass filter +msgid "bandpass" msgstr "" -#: js/activity.js:4381 -msgid "Could not parse JSON input." +#: js/utils/musicutils.js:1091 +#: js/utils/musicutils.js:1534 +#.TRANS: high-shelf filter +msgid "highshelf" msgstr "" -#: js/activity.js:4684 -#: js/activity.js:4771 -#: js/activity.js:4821 -msgid "Cannot load project from the file. Please check the file type." +#: js/utils/musicutils.js:1093 +#: js/utils/musicutils.js:1535 +#.TRANS: low-shelf filter +msgid "lowshelf" msgstr "" -#: js/activity.js:5051 -msgid "Invalid parameters" +#: js/utils/musicutils.js:1095 +#: js/utils/musicutils.js:1536 +#.TRANS: notch-shelf filter +msgid "notch" msgstr "" -#: js/turtle-singer.js:1334 -#.TRANS: partials are weighted components in a harmonic series -msgid "You must have at least one Partial block inside of a Weighted-partial block" +#: js/utils/musicutils.js:1097 +#: js/utils/musicutils.js:1537 +#.TRANS: all-pass filter +msgid "allpass" msgstr "" -#: js/turtle-singer.js:2048 -msgid "synth cannot play chords." +#: js/utils/musicutils.js:1099 +#: js/utils/musicutils.js:1538 +#.TRANS: peaking filter +msgid "peaking" msgstr "" -#: js/lilypond.js:614 -msgid "brown rat" +#: js/utils/musicutils.js:1100 +#: js/utils/musicutils.js:1546 +#: js/utils/synthutils.js:126 +#: js/blocks/PitchBlocks.js:85 +#.TRANS: sine wave +msgid "sine" msgstr "" -#: js/lilypond.js:615 -msgid "mole" +#: js/utils/musicutils.js:1101 +#: js/utils/musicutils.js:1547 +#: js/utils/synthutils.js:128 +#: js/blocks/PitchBlocks.js:39 +#.TRANS: square wave +msgid "square" msgstr "" -#: js/lilypond.js:616 -msgid "chipmunk" +#: js/utils/musicutils.js:1102 +#: js/utils/musicutils.js:1548 +#: js/utils/synthutils.js:132 +#: js/blocks/PitchBlocks.js:62 +#: js/blocks/ToneBlocks.js:39 +#.TRANS: triangle wave +msgid "triangle" msgstr "" -#: js/lilypond.js:617 -msgid "red squirrel" +#: js/utils/musicutils.js:1103 +#: js/utils/musicutils.js:1549 +#: js/utils/synthutils.js:130 +#: js/blocks/PitchBlocks.js:108 +#.TRANS: sawtooth wave +msgid "sawtooth" msgstr "" -#: js/lilypond.js:618 -msgid "guinea pig" +#: js/utils/musicutils.js:1105 +#: js/utils/musicutils.js:1312 +#: js/blocks/PitchBlocks.js:931 +#: js/blocks/PitchBlocks.js:937 +#: js/turtleactions/PitchActions.js:469 +#.TRANS: even numbers +#.TRANS: invert based on even or odd number or musical scale +msgid "even" msgstr "" -#: js/lilypond.js:619 -msgid "capybara" +#: js/utils/musicutils.js:1107 +#: js/utils/musicutils.js:1313 +#: js/blocks/PitchBlocks.js:937 +#: js/turtleactions/PitchActions.js:471 +#.TRANS: odd numbers +msgid "odd" msgstr "" -#: js/lilypond.js:620 -msgid "coypu" +#: js/utils/musicutils.js:1108 +#: js/utils/musicutils.js:1314 +#: js/blocks/PitchBlocks.js:937 +#: js/turtleactions/PitchActions.js:473 +msgid "scalar" msgstr "" -#: js/lilypond.js:621 -msgid "black rat" +#: js/utils/musicutils.js:1109 +#: js/utils/synthutils.js:72 +#: js/blocks/VolumeBlocks.js:47 +#.TRANS: musical instrument +msgid "piano" msgstr "" -#: js/lilypond.js:622 -msgid "grey squirrel" +#: js/utils/musicutils.js:1110 +#: js/utils/synthutils.js:74 +#.TRANS: musical instrument +msgid "violin" msgstr "" -#: js/lilypond.js:623 -msgid "flying squirrel" +#: js/utils/musicutils.js:1111 +#: js/utils/synthutils.js:76 +#.TRANS: viola musical instrument +msgid "viola" msgstr "" -#: js/lilypond.js:624 -msgid "bat" +#: js/utils/musicutils.js:1112 +#: js/utils/synthutils.js:114 +#.TRANS: xylophone musical instrument +msgid "xylophone" msgstr "" -#: js/lilypond.js:757 -#: js/lilypond.js:921 -#: js/lilypond.js:959 -#: js/ActionBlocks.js:1256 -#: js/ExtrasBlocks.js:553 -msgid "start drum" +#: js/utils/musicutils.js:1113 +#: js/utils/synthutils.js:136 +#.TRANS: vibraphone musical instrument +msgid "vibraphone" msgstr "" -#: js/SaveInterface.js:59 -#: js/SaveInterface.js:61 -#: js/SaveInterface.js:93 -msgid "Music Blocks Project" +#: js/utils/musicutils.js:1114 +#: js/utils/synthutils.js:78 +#.TRANS: musical instrument +msgid "cello" msgstr "" -#: js/SaveInterface.js:63 -msgid "This project was created in Music Blocks" +#: js/utils/musicutils.js:1116 +#: js/utils/synthutils.js:82 +#.TRANS: viola musical instrument +msgid "double bass" msgstr "" -#: js/SaveInterface.js:67 -msgid "Music Blocks is a Free/Libre Software application." +#: js/utils/musicutils.js:1117 +#: js/utils/synthutils.js:84 +#: js/widgets/rhythmruler.js:2511 +#.TRANS: musical instrument +msgid "guitar" msgstr "" -#: js/SaveInterface.js:69 -msgid "The source code can be accessed at" +#: js/utils/musicutils.js:1118 +#: js/utils/synthutils.js:86 +#.TRANS: musical instrument +msgid "acoustic guitar" msgstr "" -#: js/SaveInterface.js:72 -msgid "For more information, please consult the" +#: js/utils/musicutils.js:1119 +#: js/utils/synthutils.js:88 +#.TRANS: musical instrument +msgid "flute" msgstr "" -#: js/SaveInterface.js:83 -msgid "Alternatively, open the file in Music Blocks using the Load project button." +#: js/utils/musicutils.js:1120 +#: js/utils/synthutils.js:90 +#.TRANS: musical instrument +msgid "clarinet" msgstr "" -#: js/SaveInterface.js:85 -msgid "Project Code" +#: js/utils/musicutils.js:1121 +#: js/utils/synthutils.js:92 +#.TRANS: musical instrument +msgid "saxophone" msgstr "" -#: js/SaveInterface.js:87 -msgid "This code stores data about the blocks in a project." +#: js/utils/musicutils.js:1122 +#: js/utils/synthutils.js:94 +#.TRANS: musical instrument +msgid "tuba" msgstr "" -#: js/SaveInterface.js:89 -msgid "Show" +#: js/utils/musicutils.js:1123 +#: js/utils/synthutils.js:96 +#.TRANS: musical instrument +msgid "trumpet" msgstr "" -#: js/SaveInterface.js:91 -msgid "Hide" +#: js/utils/musicutils.js:1124 +#: js/utils/synthutils.js:98 +#.TRANS: musical instrument +msgid "oboe" msgstr "" -#: js/SaveInterface.js:197 -#: js/SaveInterface.js:58 -msgid "No description provided" +#: js/utils/musicutils.js:1125 +#: js/utils/synthutils.js:100 +#.TRANS: musical instrument +msgid "trombone" msgstr "" -#: js/SaveInterface.js:332 -msgid "Your recording is in progress." +#: js/utils/musicutils.js:1126 +#: js/utils/synthutils.js:116 +#.TRANS: polytone synthesizer +msgid "electronic synth" msgstr "" -#: js/SaveInterface.js:401 -#.TRANS: File name prompt for save as Lilypond -msgid "File name" +#: js/utils/musicutils.js:1127 +#: js/utils/synthutils.js:118 +#.TRANS: simple monotone synthesizer +msgid "simple 1" msgstr "" -#: js/SaveInterface.js:403 -#: js/StringHelper.js:39 -#.TRANS: Project title prompt for save as Lilypond -msgid "Project title" +#: js/utils/musicutils.js:1128 +msgid "simple 2" msgstr "" -#: js/SaveInterface.js:405 -#.TRANS: Project title prompt for save as Lilypond -msgid "Project author" +#: js/utils/musicutils.js:1129 +msgid "simple 3" msgstr "" -#: js/SaveInterface.js:407 -#.TRANS: MIDI prompt for save as Lilypond -msgid "Include MIDI output?" +#: js/utils/musicutils.js:1130 +msgid "simple 4" msgstr "" -#: js/SaveInterface.js:409 -#.TRANS: Guitar prompt for save as Lilypond -msgid "Include guitar tablature output?" +#: js/utils/musicutils.js:1131 +#: js/utils/synthutils.js:58 +#: js/blocks/DrumBlocks.js:191 +#.TRANS: white noise synthesizer +msgid "white noise" msgstr "" -#: js/SaveInterface.js:411 -#.TRANS: Lilypond is a scripting language for generating sheet music -msgid "Save as Lilypond" +#: js/utils/musicutils.js:1132 +#: js/utils/synthutils.js:60 +#.TRANS: brown noise synthesizer +msgid "brown noise" msgstr "" -#: js/SaveInterface.js:426 -#: js/EnsembleBlocks.js:75 -#: js/EnsembleBlocks.js:154 -#: js/EnsembleBlocks.js:216 -#: js/EnsembleBlocks.js:302 -#: js/EnsembleBlocks.js:348 -#: js/EnsembleBlocks.js:389 -#: js/EnsembleBlocks.js:441 -#: js/EnsembleBlocks.js:490 -#: js/EnsembleBlocks.js:536 -#: js/EnsembleBlocks.js:583 -#: js/EnsembleBlocks.js:637 -#: js/EnsembleBlocks.js:753 -#: js/EnsembleBlocks.js:840 -#: js/EnsembleBlocks.js:899 -#: js/EnsembleBlocks.js:942 -#: js/EnsembleBlocks.js:1212 -#: js/EnsembleBlocks.js:1280 -#.TRANS: default project author when saving as Lilypond -msgid "Mr. Mouse" +#: js/utils/musicutils.js:1133 +#: js/utils/synthutils.js:62 +#.TRANS: pink noise synthesizer +msgid "pink noise" msgstr "" -#: js/SaveInterface.js:573 -msgid "The Lilypond code is copied to clipboard. You can paste it here: " +#: js/utils/musicutils.js:1135 +#: js/utils/synthutils.js:148 +#: js/widgets/rhythmruler.js:2057 +#: js/widgets/rhythmruler.js:2319 +#.TRANS: musical instrument +msgid "snare drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:50 -#: js/RhythmBlockPaletteBlocks.js:232 -#.TRANS: rhythm block -#.TRANS: translate "rhythm1" as rhythm -msgid "rhythm1" +#: js/utils/musicutils.js:1136 +#: js/utils/synthutils.js:150 +#.TRANS: musical instrument +msgid "kick drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:70 -#: js/RhythmBlockPaletteBlocks.js:251 -#: js/RhythmBlockPaletteBlocks.js:484 -#: js/RhythmBlockPaletteBlocks.js:553 -#: js/RhythmBlockPaletteBlocks.js:874 -msgid "number of notes" +#: js/utils/musicutils.js:1137 +#: js/utils/synthutils.js:152 +#.TRANS: musical instrument +msgid "tom tom" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:126 -msgid "polyphonic rhythm" +#: js/utils/musicutils.js:1138 +#: js/utils/synthutils.js:154 +#.TRANS: musical instrument +msgid "floor tom" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:218 -msgid "The Rhythm block is used to generate rhythm patterns." +#: js/utils/musicutils.js:1139 +#: js/utils/synthutils.js:156 +#.TRANS: musical instrument +msgid "bass drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:279 -msgid "1/64 note" +#: js/utils/musicutils.js:1140 +#: js/utils/synthutils.js:158 +#.TRANS: a drum made from an inverted cup +msgid "cup drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:303 -msgid "1/32 note" +#: js/utils/musicutils.js:1141 +#: js/utils/synthutils.js:160 +#.TRANS: musical instrument +msgid "darbuka drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:331 -msgid "1/16 note" +#: js/utils/musicutils.js:1142 +#: js/utils/synthutils.js:164 +#.TRANS: musical instrument +msgid "hi hat" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:359 -msgid "eighth note" +#: js/utils/musicutils.js:1143 +#: js/utils/synthutils.js:166 +#.TRANS: a small metal bell +msgid "ride bell" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:387 -msgid "quarter note" +#: js/utils/musicutils.js:1144 +#: js/utils/synthutils.js:168 +#.TRANS: musical instrument +msgid "cow bell" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:415 -msgid "half note" +#: js/utils/musicutils.js:1145 +msgid "japanese drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:443 -msgid "whole note" +#: js/utils/musicutils.js:1146 +#: js/utils/synthutils.js:174 +#.TRANS: musical instrument +msgid "japanese bell" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:481 -#: js/RhythmBlockPaletteBlocks.js:550 -#: js/RhythmBlockPaletteBlocks.js:601 -#.TRANS: A tuplet is a note value divided into irregular time values. -msgid "tuplet" +#: js/utils/musicutils.js:1147 +#: js/utils/synthutils.js:170 +#.TRANS: musical instrument +msgid "triangle bell" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:767 -msgid "septuplet" +#: js/utils/musicutils.js:1148 +#: js/utils/synthutils.js:172 +#.TRANS: musical instrument +msgid "finger cymbals" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:795 -msgid "quintuplet" +#: js/utils/musicutils.js:1149 +#: js/utils/synthutils.js:176 +#.TRANS: a musically tuned set of bells +msgid "chime" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:823 -msgid "triplet" +#: js/utils/musicutils.js:1150 +#: js/utils/synthutils.js:178 +#.TRANS: a musical instrument +msgid "gong" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:850 -msgid "simple tuplet" +#: js/utils/musicutils.js:1151 +#: js/utils/synthutils.js:180 +#.TRANS: sound effect +msgid "clang" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:860 -msgid "Tuplets are a collection of notes that get scaled to a specific duration." +#: js/utils/musicutils.js:1152 +#: js/utils/synthutils.js:182 +#.TRANS: sound effect +msgid "crash" msgstr "" -#: js/WidgetBlocks.js:71 -#.TRANS: sound envelope (ADSR) -msgid "envelope" +#: js/utils/musicutils.js:1153 +#: js/utils/synthutils.js:184 +#.TRANS: sound effect +msgid "bottle" msgstr "" -#: js/WidgetBlocks.js:79 -#.TRANS: Attack time is the time taken for initial run-up of level from nil to peak, beginning when the key is first pressed. -msgid "attack" +#: js/utils/musicutils.js:1154 +#: js/utils/synthutils.js:186 +#.TRANS: sound effect +msgid "clap" msgstr "" -#: js/WidgetBlocks.js:81 -#.TRANS: Decay time is the time taken for the subsequent run down from the attack level to the designated sustain level. -msgid "decay" +#: js/utils/musicutils.js:1155 +#: js/utils/synthutils.js:188 +#.TRANS: sound effect +msgid "slap" msgstr "" -#: js/WidgetBlocks.js:83 -#.TRANS: Sustain level is the level during the main sequence of the sound's duration, until the key is released. -msgid "sustain" +#: js/utils/musicutils.js:1156 +#: js/utils/synthutils.js:190 +#.TRANS: sound effect +msgid "splash" msgstr "" -#: js/WidgetBlocks.js:85 -#.TRANS: Release time is the time taken for the level to decay from the sustain level to zero after the key is released. -msgid "release" +#: js/utils/musicutils.js:1157 +#: js/utils/synthutils.js:192 +#.TRANS: sound effect +msgid "bubbles" msgstr "" -#: js/WidgetBlocks.js:96 -msgid "Attack value should be from 0 to 100." +#: js/utils/musicutils.js:1158 +#: js/utils/synthutils.js:194 +#.TRANS: sound effect +msgid "raindrop" msgstr "" -#: js/WidgetBlocks.js:99 -msgid "Decay value should be from 0 to 100." +#: js/utils/musicutils.js:1159 +#: js/utils/synthutils.js:196 +#.TRANS: animal sound effect +msgid "cat" msgstr "" -#: js/WidgetBlocks.js:102 -msgid "Sustain value should be from 0 to 100." +#: js/utils/musicutils.js:1160 +#: js/utils/synthutils.js:198 +#.TRANS: animal sound effect +msgid "cricket" msgstr "" -#: js/WidgetBlocks.js:105 -msgid "Release value should be from 0-100." +#: js/utils/musicutils.js:1161 +#: js/utils/synthutils.js:200 +#.TRANS: animal sound effect +msgid "dog" msgstr "" -#: js/WidgetBlocks.js:121 -msgid "You are adding multiple envelope blocks." +#: js/utils/musicutils.js:1163 +#: js/utils/synthutils.js:102 +#.TRANS: musical instrument +msgid "banjo" msgstr "" -#: js/WidgetBlocks.js:144 -#.TRANS: a filter removes some unwanted components from a signal -msgid "filter" +#: js/utils/musicutils.js:1164 +#: js/utils/synthutils.js:104 +#.TRANS: musical instrument +msgid "koto" msgstr "" -#: js/WidgetBlocks.js:149 -#: js/musicutils.js:706 -#: js/musicutils.js:1105 -#.TRANS: highpass filter -msgid "highpass" +#: js/utils/musicutils.js:1165 +#: js/utils/synthutils.js:106 +#.TRANS: musical instrument +msgid "dulcimer" msgstr "" -#: js/WidgetBlocks.js:152 -#: js/ToneBlocks.js:42 -#: js/timbre.js:1558 -#: js/timbre.js:1808 -#.TRANS: type of filter, e.g., lowpass, highpass, etc. -#.TRANS: there are different types (sine, triangle, square...) of oscillators. -msgid "type" +#: js/utils/musicutils.js:1166 +#: js/utils/synthutils.js:108 +#.TRANS: musical instrument +msgid "electric guitar" msgstr "" -#: js/WidgetBlocks.js:154 -#: js/timbre.js:1818 -#.TRANS: rolloff is the steepness of a change in frequency. -msgid "rolloff" +#: js/utils/musicutils.js:1167 +#: js/utils/synthutils.js:110 +#.TRANS: musical instrument +msgid "bassoon" msgstr "" -#: js/WidgetBlocks.js:155 -#: js/MediaBlocks.js:692 -#: js/temperament.js:382 -#: js/temperament.js:417 -#: js/temperament.js:477 -#: js/temperament.js:485 -#: js/temperament.js:1348 -#: js/timbre.js:1842 -msgid "frequency" +#: js/utils/musicutils.js:1168 +#: js/utils/synthutils.js:112 +#.TRANS: musical instrument +msgid "celeste" msgstr "" -#: js/WidgetBlocks.js:179 -#.TRANS: rolloff is the steepness of a change in frequency. -msgid "Rolloff value should be either -12, -24, -48, or -96 decibels/octave." +#: js/utils/musicutils.js:1170 +#: js/widgets/temperament.js:787 +#.TRANS: musical temperament +msgid "equal" msgstr "" -#: js/WidgetBlocks.js:211 -msgid "The Temperament tool is used to define custom tuning." +#: js/utils/musicutils.js:1172 +#.TRANS: musical temperament +msgid "Pythagorean" msgstr "" -#: js/WidgetBlocks.js:277 -#: js/sampler.js:329 -msgid "Upload a sample and adjust its pitch center." +#: js/utils/musicutils.js:1174 +#.TRANS: musical temperament +msgid "just intonation" msgstr "" -#: js/WidgetBlocks.js:284 -#.TRANS: the speed at music is should be played. -msgid "sampler" +#: js/utils/musicutils.js:1176 +#.TRANS: musical temperament +msgid "meantone" msgstr "" -#: js/WidgetBlocks.js:329 -#: js/WidgetBlocks.js:334 -#: js/IntervalsBlocks.js:928 -#: js/VolumeBlocks.js:411 -#: js/ToneBlocks.js:946 -#: js/VolumeActions.js:218 -#: js/musicutils.js:704 -#: js/musicutils.js:755 -#: js/musicutils.js:798 -#: js/musicutils.js:820 -#: js/musicutils.js:1136 -#: js/synthutils.js:118 -#: js/modewidget.js:919 -#.TRANS: customize voice -msgid "custom" +#: js/utils/musicutils.js:1193 +msgid "major 7th" msgstr "" -#: js/WidgetBlocks.js:432 -msgid "The Meter block opens a tool to select strong beats for the meter." +#: js/utils/musicutils.js:1194 +msgid "minor 7th" msgstr "" -#: js/WidgetBlocks.js:473 -msgid "The oscilloscope block opens a tool to visualize waveforms." +#: js/utils/musicutils.js:1195 +msgid "dominant 7th" msgstr "" -#: js/WidgetBlocks.js:478 -msgid "oscilloscope" +#: js/utils/musicutils.js:1196 +msgid "minor-major 7th" msgstr "" -#: js/WidgetBlocks.js:530 -msgid "The Custom mode block opens a tool to explore musical mode (the spacing of the notes in a scale)." +#: js/utils/musicutils.js:1197 +msgid "fully-diminished 7th" msgstr "" -#: js/WidgetBlocks.js:536 -#.TRANS: musical mode is the pattern of half-steps in an octave, e.g., Major or Minor modes -msgid "custom mode" +#: js/utils/musicutils.js:1198 +msgid "half-diminished 7th" msgstr "" -#: js/WidgetBlocks.js:570 -msgid "The Tempo block opens a metronome to visualize the beat." +#: js/utils/musicutils.js:1557 +#: js/utils/musicutils.js:1569 +msgid "Equal (12EDO)" msgstr "" -#: js/WidgetBlocks.js:617 -msgid "The Arpeggio Widget is used to compose chord sequences." +#: js/utils/musicutils.js:1558 +#: js/utils/musicutils.js:1570 +msgid "5-limit Just Intonation" msgstr "" -#: js/WidgetBlocks.js:623 -#: js/IntervalsBlocks.js:683 -msgid "arpeggio" +#: js/utils/musicutils.js:1559 +#: js/utils/musicutils.js:1571 +msgid "Pythagorean (3-limit JI)" msgstr "" -#: js/WidgetBlocks.js:677 -msgid "The Pitch drum matrix is used to map pitches to drum sounds." +#: js/utils/musicutils.js:1560 +#: js/utils/musicutils.js:1561 +#: js/utils/musicutils.js:1572 +#: js/utils/musicutils.js:1573 +msgid "Meantone" msgstr "" -#: js/WidgetBlocks.js:682 -#.TRANS: makes a mapping between pitches and drum sounds -msgid "pitch-drum mapper" +#: js/utils/musicutils.js:1574 +msgid "Custom" msgstr "" -#: js/WidgetBlocks.js:724 -msgid "You must have at least one pitch block and one drum block in the matrix." +#: js/utils/musicutils.js:5387 +#: js/utils/musicutils.js:5430 +msgid "current" msgstr "" -#: js/WidgetBlocks.js:746 -msgid "The Pitch slider tool to is used to generate pitches at selected frequencies." +#: js/utils/musicutils.js:5390 +#: js/utils/musicutils.js:5421 +msgid "next" msgstr "" -#: js/WidgetBlocks.js:751 -#.TRANS: widget to generate pitches using a slider -msgid "pitch slider" +#: js/utils/musicutils.js:5393 +#: js/utils/musicutils.js:5426 +msgid "previous" msgstr "" -#: js/WidgetBlocks.js:788 -msgid "chromatic keyboard" +#: js/utils/synthutils.js:120 +#.TRANS: simple monotone synthesizer +msgid "simple-2" msgstr "" -#: js/WidgetBlocks.js:815 -#: js/WidgetBlocks.js:874 -#.TRANS: widget to generate pitches using a slider -msgid "music keyboard" +#: js/utils/synthutils.js:122 +#.TRANS: simple monotone synthesizer +msgid "simple-3" msgstr "" -#: js/WidgetBlocks.js:859 -#: js/WidgetBlocks.js:866 -msgid "The Music keyboard block opens a piano keyboard that can be used to create notes." +#: js/utils/synthutils.js:124 +#.TRANS: simple monotone synthesizer +msgid "simple-4" msgstr "" -#: js/WidgetBlocks.js:910 -msgid "The Pitch staircase tool to is used to generate pitches from a given ratio." +#: js/utils/synthutils.js:162 +#.TRANS: musical instrument +msgid "taiko" msgstr "" -#: js/WidgetBlocks.js:917 -#.TRANS: generate a progressive sequence of pitches -msgid "pitch staircase" +#: js/blocks/ActionBlocks.js:58 +msgid "The Return block will return a value from an action." msgstr "" -#: js/WidgetBlocks.js:982 -msgid "The Rhythm Maker block opens a tool to create drum machines." +#: js/blocks/ActionBlocks.js:75 +msgid "return" msgstr "" -#: js/WidgetBlocks.js:1036 -msgid "G major scale" +#: js/blocks/ActionBlocks.js:128 +msgid "The Return to URL block will return a value to a webpage." msgstr "" -#: js/WidgetBlocks.js:1064 -msgid "C major scale" +#: js/blocks/ActionBlocks.js:145 +msgid "return to URL" msgstr "" -#: js/WidgetBlocks.js:1097 -msgid "The Phrase Maker block opens a tool to create musical phrases." +#: js/blocks/ActionBlocks.js:233 +#: js/blocks/ActionBlocks.js:290 +#: js/blocks/ActionBlocks.js:501 +#: js/blocks/ActionBlocks.js:688 +msgid "The Calculate block returns a value calculated by an action." msgstr "" -#: js/WidgetBlocks.js:1104 -#.TRANS: assigns pitch to a sequence of beats to generate a melody -msgid "phrase maker" +#: js/blocks/ActionBlocks.js:251 +#: js/blocks/ActionBlocks.js:517 +#: js/blocks/ActionBlocks.js:707 +msgid "calculate" msgstr "" -#: js/WidgetBlocks.js:1168 -msgid "You must have at least one pitch block and one rhythm block in the matrix." +#: js/blocks/ActionBlocks.js:376 +#: js/blocks/ActionBlocks.js:593 +#: js/blocks/ActionBlocks.js:942 +#: js/blocks/ActionBlocks.js:1389 +#.TRANS: do is the do something or take an action. +msgid "The Do block is used to initiate an action." msgstr "" -#: js/WidgetBlocks.js:1220 -msgid "The Status block opens a tool for inspecting the status of Music Blocks as it is running." +#: js/blocks/ActionBlocks.js:390 +#: js/blocks/ActionBlocks.js:610 +#: js/blocks/ActionBlocks.js:959 +#: js/blocks/ActionBlocks.js:1048 +#: js/blocks/MeterBlocks.js:769 +msgid "do1" msgstr "" -#: js/IntervalsBlocks.js:45 -msgid "set temperament" +#: js/blocks/ActionBlocks.js:390 +#: js/blocks/ActionBlocks.js:610 +#: js/blocks/ActionBlocks.js:959 +#: js/blocks/ActionBlocks.js:1048 +#: js/blocks/FlowBlocks.js:742 +#: js/blocks/FlowBlocks.js:822 +#: js/blocks/MeterBlocks.js:769 +msgid "do" msgstr "" -#: js/IntervalsBlocks.js:63 -#: js/MediaBlocks.js:746 -#: js/PitchBlocks.js:657 -#: js/PitchBlocks.js:933 -#: js/PitchBlocks.js:972 -#: js/PitchBlocks.js:1005 -#: js/PitchBlocks.js:1166 -#: js/PitchBlocks.js:1679 -#: js/PitchBlocks.js:1720 -#: js/PitchBlocks.js:1827 -#: js/ToneBlocks.js:1025 -#.TRANS: adjusts the shift up or down by one octave (twelve half-steps in the interval between two notes, one having twice or half the frequency in Hz of the other.) -msgid "octave" +#: js/blocks/ActionBlocks.js:791 +#: js/blocks/ActionBlocks.js:865 +msgid "The Arg block contains the value of an argument passed to an action." msgstr "" -#: js/IntervalsBlocks.js:99 -msgid "The Temperament name block is used to select a tuning method." +#: js/blocks/ActionBlocks.js:806 +#: js/blocks/ActionBlocks.js:878 +msgid "arg" msgstr "" -#: js/IntervalsBlocks.js:161 -msgid "doubly" +#: js/blocks/ActionBlocks.js:836 +#: js/blocks/ActionBlocks.js:900 +#: js/blocks/ActionBlocks.js:908 +msgid "Invalid argument" msgstr "" -#: js/IntervalsBlocks.js:166 -msgid "The Doubly block will double the size of an interval." +#: js/blocks/ActionBlocks.js:944 +msgid "In the example, it is used with the One of block to choose a random phase." msgstr "" -#: js/IntervalsBlocks.js:262 -msgid "interval number" +#: js/blocks/ActionBlocks.js:1019 +#: js/blocks/ActionBlocks.js:1026 +msgid "The Listen block is used to listen for an event such as a mouse click." msgstr "" -#: js/IntervalsBlocks.js:330 -#.TRANS: measure the distance between two pitches in semi-tones -msgid "semi-tone interval measure" +#: js/blocks/ActionBlocks.js:1028 +msgid "When the event happens, an action is taken." msgstr "" -#: js/IntervalsBlocks.js:397 -#: js/IntervalsBlocks.js:513 -msgid "You must use two pitch blocks when measuring an interval." +#: js/blocks/ActionBlocks.js:1045 +msgid "on" msgstr "" -#: js/IntervalsBlocks.js:439 -msgid "The Scalar interval block measures the distance between two notes in the current key and mode." +#: js/blocks/ActionBlocks.js:1048 +#: js/blocks/ActionBlocks.js:1049 +#: js/blocks/ActionBlocks.js:1153 +msgid "event" msgstr "" -#: js/IntervalsBlocks.js:445 -#.TRANS: measure the distance between two pitches in steps of musical scale -msgid "scalar interval measure" +#: js/blocks/ActionBlocks.js:1133 +msgid "The Broadcast block is used to trigger an event." msgstr "" -#: js/IntervalsBlocks.js:592 -#: js/musicutils.js:637 -#: js/musicutils.js:908 -#.TRANS: perfect is a music term related to intervals -msgid "perfect" +#: js/blocks/ActionBlocks.js:1151 +msgid "broadcast" msgstr "" -#: js/IntervalsBlocks.js:621 -msgid "In the figure, we add sol# to sol." +#: js/blocks/ActionBlocks.js:1208 +msgid "Each Start block is a separate voice." msgstr "" -#: js/IntervalsBlocks.js:627 -#: js/OrnamentBlocks.js:220 -#.TRANS: calculate a relative step between notes based on semi-tones -msgid "semi-tone interval" +#: js/blocks/ActionBlocks.js:1304 +msgid "It is often used for storing a phrase of music that is repeated." msgstr "" -#: js/IntervalsBlocks.js:676 -msgid "The output of the example is: do, mi, sol, sol, ti, mi" +#: js/blocks/ActionBlocks.js:1495 +msgid "define temperament" msgstr "" -#: js/IntervalsBlocks.js:735 -msgid "The Chord block calculates common chords." +#: js/blocks/BooleanBlocks.js:44 +msgid "The Not block is the logical not operator." msgstr "" -#: js/IntervalsBlocks.js:737 -msgid "In the figure, we generate a C-major chord." +#: js/blocks/BooleanBlocks.js:62 +msgid "not" msgstr "" -#: js/IntervalsBlocks.js:742 -msgid "chord" +#: js/blocks/BooleanBlocks.js:134 +msgid "The And block is the logical and operator." msgstr "" -#: js/IntervalsBlocks.js:794 -msgid "The Ratio Interval block calculates an interval based on a ratio." +#: js/blocks/BooleanBlocks.js:152 +msgid "and" msgstr "" -#: js/IntervalsBlocks.js:799 -msgid "ratio interval" +#: js/blocks/BooleanBlocks.js:218 +msgid "The Or block is the logical or operator." msgstr "" -#: js/IntervalsBlocks.js:868 -msgid "In the figure, we add la to sol." +#: js/blocks/BooleanBlocks.js:236 +msgid "or" msgstr "" -#: js/IntervalsBlocks.js:924 -#.TRANS: define a custom mode -msgid "define mode" +#: js/blocks/BooleanBlocks.js:302 +msgid "The XOR block is the logical XOR operator." msgstr "" -#: js/IntervalsBlocks.js:977 -msgid "movable Do" +#: js/blocks/BooleanBlocks.js:320 +msgid "xor" msgstr "" -#: js/IntervalsBlocks.js:1028 -#.TRANS: mode length is the number of notes in the mode, e.g., 7 for major and minor scales; 12 for chromatic scales -msgid "mode length" +#: js/blocks/BooleanBlocks.js:808 +msgid "The Equal block returns True if the two numbers are equal." msgstr "" -#: js/IntervalsBlocks.js:1037 -msgid "The Mode length block is the number of notes in the current scale." +#: js/blocks/BooleanBlocks.js:909 +msgid "The Not-equal-to block returns True if the two numbers are not equal to each other." msgstr "" -#: js/IntervalsBlocks.js:1039 -msgid "Most Western scales have 7 notes." +#: js/blocks/BooleanBlocks.js:1008 +msgid "The Boolean block is used to specify true or false." msgstr "" -#: js/IntervalsBlocks.js:1088 -#.TRANS: the mode in music is 'major', 'minor', etc. -msgid "current mode" +#: js/blocks/BoxesBlocks.js:53 +#: js/blocks/BoxesBlocks.js:59 +msgid "The Add-to block is used to add to the value stored in a box." msgstr "" -#: js/IntervalsBlocks.js:1141 -#.TRANS: the key is a group of pitches with which a music composition is created -msgid "current key" +#: js/blocks/BoxesBlocks.js:61 +msgid "It can also be used with other blocks such as Color and Pen size." msgstr "" -#: js/IntervalsBlocks.js:1193 -#: js/IntervalsBlocks.js:1238 -#.TRANS: set the key and mode, e.g. C Major -msgid "set key" +#: js/blocks/BoxesBlocks.js:73 +msgid "add" msgstr "" -#: js/IntervalsBlocks.js:1247 -#: js/IntervalsBlocks.js:1253 -msgid "The Set key block is used to set the key and mode," +#: js/blocks/BoxesBlocks.js:75 +#: js/widgets/temperament.js:857 +msgid "to" msgstr "" -#: js/IntervalsBlocks.js:1253 -msgid "eg C Major" +#: js/blocks/BoxesBlocks.js:75 +#: js/blocks/BoxesBlocks.js:595 +#: js/blocks/HeapBlocks.js:544 +msgid "value1" msgstr "" -#: js/IntervalsBlocks.js:1266 -#: js/DictBlocks.js:215 -#: js/DictBlocks.js:216 -#: js/DictBlocks.js:289 -#: js/DictBlocks.js:290 -#: js/DictBlocks.js:357 -#: js/DictBlocks.js:430 -#: js/DictBlocks.js:431 -#.TRANS: key, e.g., C in C Major -msgid "key" +#: js/blocks/BoxesBlocks.js:118 +msgid "Block does not support incrementing." msgstr "" -#: js/ActionBlocks.js:58 -msgid "The Return block will return a value from an action." +#: js/blocks/BoxesBlocks.js:152 +msgid "The Add-1-to block adds one to the value stored in a box." msgstr "" -#: js/ActionBlocks.js:75 -msgid "return" +#: js/blocks/BoxesBlocks.js:163 +msgid "add 1 to" msgstr "" -#: js/ActionBlocks.js:128 -msgid "The Return to URL block will return a value to a webpage." +#: js/blocks/BoxesBlocks.js:211 +msgid "The Subtract-1-from block subtracts one from the value stored in a box." msgstr "" -#: js/ActionBlocks.js:145 -msgid "return to URL" +#: js/blocks/BoxesBlocks.js:222 +msgid "subtract 1 from" msgstr "" -#: js/ActionBlocks.js:233 -#: js/ActionBlocks.js:290 -#: js/ActionBlocks.js:501 -#: js/ActionBlocks.js:688 -msgid "The Calculate block returns a value calculated by an action." +#: js/blocks/BoxesBlocks.js:270 +#: js/blocks/BoxesBlocks.js:387 +msgid "The Box block returns the value stored in a box." msgstr "" -#: js/ActionBlocks.js:251 -#: js/ActionBlocks.js:517 -#: js/ActionBlocks.js:707 -msgid "calculate" +#: js/blocks/BoxesBlocks.js:500 +#: js/blocks/BoxesBlocks.js:576 +msgid "The Store in block will store a value in a box." msgstr "" -#: js/ActionBlocks.js:376 -#: js/ActionBlocks.js:593 -#: js/ActionBlocks.js:942 -#: js/ActionBlocks.js:1389 -#.TRANS: do is the do something or take an action. -msgid "The Do block is used to initiate an action." +#: js/blocks/BoxesBlocks.js:595 +#: js/blocks/EnsembleBlocks.js:391 +#: js/blocks/EnsembleBlocks.js:402 +msgid "name1" msgstr "" -#: js/ActionBlocks.js:390 -#: js/ActionBlocks.js:610 -#: js/ActionBlocks.js:959 -#: js/ActionBlocks.js:1048 -#: js/MeterBlocks.js:769 -msgid "do1" +#: js/blocks/BoxesBlocks.js:652 +msgid "The Box2 block returns the value stored in Box2." msgstr "" -#: js/ActionBlocks.js:390 -#: js/ActionBlocks.js:610 -#: js/ActionBlocks.js:959 -#: js/ActionBlocks.js:1048 -#: js/FlowBlocks.js:742 -#: js/FlowBlocks.js:822 -#: js/MeterBlocks.js:769 -msgid "do" +#: js/blocks/BoxesBlocks.js:703 +msgid "The Store in Box2 block is used to store a value in Box2." msgstr "" -#: js/ActionBlocks.js:791 -#: js/ActionBlocks.js:865 -msgid "The Arg block contains the value of an argument passed to an action." +#: js/blocks/BoxesBlocks.js:715 +msgid "store in box2" msgstr "" -#: js/ActionBlocks.js:806 -#: js/ActionBlocks.js:878 -msgid "arg" +#: js/blocks/BoxesBlocks.js:761 +msgid "The Box1 block returns the value stored in Box1." msgstr "" -#: js/ActionBlocks.js:836 -#: js/ActionBlocks.js:900 -#: js/ActionBlocks.js:908 -msgid "Invalid argument" +#: js/blocks/BoxesBlocks.js:812 +msgid "The Store in Box1 block is used to store a value in Box1." msgstr "" -#: js/ActionBlocks.js:944 -msgid "In the example, it is used with the One of block to choose a random phase." +#: js/blocks/BoxesBlocks.js:826 +msgid "store in box1" msgstr "" -#: js/ActionBlocks.js:1019 -#: js/ActionBlocks.js:1026 -msgid "The Listen block is used to listen for an event such as a mouse click." +#: js/blocks/DictBlocks.js:77 +msgid "show dictionary" msgstr "" -#: js/ActionBlocks.js:1028 -msgid "When the event happens, an action is taken." +#: js/blocks/DictBlocks.js:80 +#: js/blocks/DictBlocks.js:145 +#: js/blocks/DictBlocks.js:216 +#: js/blocks/DictBlocks.js:290 +#: js/blocks/ProgramBlocks.js:396 +#: js/blocks/ProgramBlocks.js:501 +#: js/blocks/ProgramBlocks.js:664 +msgid "My Dictionary" msgstr "" -#: js/ActionBlocks.js:1045 -msgid "on" +#: js/blocks/DictBlocks.js:129 +msgid "The Dictionary block returns a dictionary." msgstr "" -#: js/ActionBlocks.js:1048 -#: js/ActionBlocks.js:1049 -#: js/ActionBlocks.js:1153 -msgid "event" +#: js/blocks/DictBlocks.js:197 +#: js/blocks/DictBlocks.js:339 +msgid "The Get-dict block returns a value in the dictionary for a specified key." msgstr "" -#: js/ActionBlocks.js:1133 -msgid "The Broadcast block is used to trigger an event." +#: js/blocks/DictBlocks.js:212 +#: js/blocks/DictBlocks.js:354 +#.TRANS: retrieve a value from the dictionary with a given key +msgid "get value" msgstr "" -#: js/ActionBlocks.js:1151 -msgid "broadcast" +#: js/blocks/DictBlocks.js:215 +#: js/blocks/DictBlocks.js:216 +#: js/blocks/DictBlocks.js:289 +#: js/blocks/DictBlocks.js:290 +#: js/blocks/DictBlocks.js:357 +#: js/blocks/DictBlocks.js:430 +#: js/blocks/DictBlocks.js:431 +msgid "key2" msgstr "" -#: js/ActionBlocks.js:1208 -msgid "Each Start block is a separate voice." +#: js/blocks/DictBlocks.js:215 +#: js/blocks/DictBlocks.js:216 +#: js/blocks/DictBlocks.js:289 +#: js/blocks/DictBlocks.js:290 +#: js/blocks/DictBlocks.js:357 +#: js/blocks/DictBlocks.js:430 +#: js/blocks/DictBlocks.js:431 +#: js/blocks/IntervalsBlocks.js:1462 +#.TRANS: key, e.g., C in C Major +msgid "key" msgstr "" -#: js/ActionBlocks.js:1304 -msgid "It is often used for storing a phrase of music that is repeated." +#: js/blocks/DictBlocks.js:271 +#: js/blocks/DictBlocks.js:411 +msgid "The Set-dict block sets a value in the dictionary for a specified key." msgstr "" -#: js/ActionBlocks.js:1495 -msgid "define temperament" +#: js/blocks/DictBlocks.js:286 +#: js/blocks/DictBlocks.js:427 +#.TRANS: set a value in the dictionary for a given key +msgid "set value" msgstr "" -#: js/EnsembleBlocks.js:66 +#: js/blocks/EnsembleBlocks.js:66 msgid "mouse index heap" msgstr "" -#: js/EnsembleBlocks.js:68 +#: js/blocks/EnsembleBlocks.js:68 msgid "The Mouse index heap block returns a value in the heap at a specified location for a specified mouse." msgstr "" -#: js/EnsembleBlocks.js:77 -#: js/EnsembleBlocks.js:1080 +#: js/blocks/EnsembleBlocks.js:77 +#: js/blocks/EnsembleBlocks.js:1080 msgid "mouse name" msgstr "" -#: js/EnsembleBlocks.js:77 -#: js/EnsembleBlocks.js:92 -#: js/HeapBlocks.js:544 +#: js/blocks/EnsembleBlocks.js:77 +#: js/blocks/EnsembleBlocks.js:92 +#: js/blocks/HeapBlocks.js:544 #.TRANS: value1 is a numeric value (JAPANESE ONLY) msgid "index" msgstr "" -#: js/EnsembleBlocks.js:80 +#: js/blocks/EnsembleBlocks.js:80 msgid "turtle index heap" msgstr "" -#: js/EnsembleBlocks.js:82 +#: js/blocks/EnsembleBlocks.js:82 msgid "The Turtle index heap block returns a value in the heap at a specified location for a specified turtle." msgstr "" -#: js/EnsembleBlocks.js:90 -#: js/EnsembleBlocks.js:167 -#: js/EnsembleBlocks.js:230 -#: js/EnsembleBlocks.js:316 -#: js/EnsembleBlocks.js:362 -#: js/EnsembleBlocks.js:400 -#: js/EnsembleBlocks.js:454 -#: js/EnsembleBlocks.js:504 -#: js/EnsembleBlocks.js:550 -#: js/EnsembleBlocks.js:597 -#: js/EnsembleBlocks.js:651 -#: js/EnsembleBlocks.js:763 -#: js/EnsembleBlocks.js:854 -#: js/EnsembleBlocks.js:915 -#: js/EnsembleBlocks.js:955 -#: js/EnsembleBlocks.js:1219 -#: js/EnsembleBlocks.js:1293 +#: js/blocks/EnsembleBlocks.js:90 +#: js/blocks/EnsembleBlocks.js:167 +#: js/blocks/EnsembleBlocks.js:230 +#: js/blocks/EnsembleBlocks.js:316 +#: js/blocks/EnsembleBlocks.js:362 +#: js/blocks/EnsembleBlocks.js:400 +#: js/blocks/EnsembleBlocks.js:454 +#: js/blocks/EnsembleBlocks.js:504 +#: js/blocks/EnsembleBlocks.js:550 +#: js/blocks/EnsembleBlocks.js:597 +#: js/blocks/EnsembleBlocks.js:651 +#: js/blocks/EnsembleBlocks.js:763 +#: js/blocks/EnsembleBlocks.js:854 +#: js/blocks/EnsembleBlocks.js:915 +#: js/blocks/EnsembleBlocks.js:955 +#: js/blocks/EnsembleBlocks.js:1219 +#: js/blocks/EnsembleBlocks.js:1293 #.TRANS: Yertle is the name of a turtle. msgid "Yertle" msgstr "" -#: js/EnsembleBlocks.js:92 -#: js/EnsembleBlocks.js:1089 +#: js/blocks/EnsembleBlocks.js:92 +#: js/blocks/EnsembleBlocks.js:1089 msgid "turtle name" msgstr "" -#: js/EnsembleBlocks.js:122 -#: js/EnsembleBlocks.js:1197 -#: js/HeapBlocks.js:474 -#: js/HeapBlocks.js:572 +#: js/blocks/EnsembleBlocks.js:122 +#: js/blocks/EnsembleBlocks.js:1197 +#: js/blocks/HeapBlocks.js:474 +#: js/blocks/HeapBlocks.js:572 msgid "Index must be > 0." msgstr "" -#: js/EnsembleBlocks.js:127 -#: js/HeapBlocks.js:479 -#: js/HeapBlocks.js:577 +#: js/blocks/EnsembleBlocks.js:127 +#: js/blocks/HeapBlocks.js:479 +#: js/blocks/HeapBlocks.js:577 msgid "Maximum heap size is 1000." msgstr "" -#: js/EnsembleBlocks.js:145 +#: js/blocks/EnsembleBlocks.js:145 msgid "stop mouse" msgstr "" -#: js/EnsembleBlocks.js:147 +#: js/blocks/EnsembleBlocks.js:147 msgid "The Stop mouse block stops the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:158 +#: js/blocks/EnsembleBlocks.js:158 msgid "stop turtle" msgstr "" -#: js/EnsembleBlocks.js:160 +#: js/blocks/EnsembleBlocks.js:160 msgid "The Stop turtle block stops the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:184 -#: js/EnsembleBlocks.js:247 -#: js/EnsembleBlocks.js:413 -#: js/EnsembleBlocks.js:468 -#: js/EnsembleBlocks.js:706 -#: js/EnsembleBlocks.js:808 -#: js/EnsembleBlocks.js:870 -#: js/EnsembleBlocks.js:1190 -#: js/EnsembleBlocks.js:1253 +#: js/blocks/EnsembleBlocks.js:184 +#: js/blocks/EnsembleBlocks.js:247 +#: js/blocks/EnsembleBlocks.js:413 +#: js/blocks/EnsembleBlocks.js:468 +#: js/blocks/EnsembleBlocks.js:706 +#: js/blocks/EnsembleBlocks.js:808 +#: js/blocks/EnsembleBlocks.js:870 +#: js/blocks/EnsembleBlocks.js:1190 +#: js/blocks/EnsembleBlocks.js:1253 msgid "Cannot find mouse" msgstr "" -#: js/EnsembleBlocks.js:186 -#: js/EnsembleBlocks.js:249 -#: js/EnsembleBlocks.js:415 -#: js/EnsembleBlocks.js:470 -#: js/EnsembleBlocks.js:708 -#: js/EnsembleBlocks.js:810 -#: js/EnsembleBlocks.js:872 -#: js/EnsembleBlocks.js:1192 -#: js/EnsembleBlocks.js:1255 +#: js/blocks/EnsembleBlocks.js:186 +#: js/blocks/EnsembleBlocks.js:249 +#: js/blocks/EnsembleBlocks.js:415 +#: js/blocks/EnsembleBlocks.js:470 +#: js/blocks/EnsembleBlocks.js:708 +#: js/blocks/EnsembleBlocks.js:810 +#: js/blocks/EnsembleBlocks.js:872 +#: js/blocks/EnsembleBlocks.js:1192 +#: js/blocks/EnsembleBlocks.js:1255 msgid "Cannot find turtle" msgstr "" -#: js/EnsembleBlocks.js:206 +#: js/blocks/EnsembleBlocks.js:206 msgid "start mouse" msgstr "" -#: js/EnsembleBlocks.js:209 +#: js/blocks/EnsembleBlocks.js:209 msgid "The Start mouse block starts the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:220 +#: js/blocks/EnsembleBlocks.js:220 msgid "start turtle" msgstr "" -#: js/EnsembleBlocks.js:223 +#: js/blocks/EnsembleBlocks.js:223 msgid "The Start turtle block starts the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:256 +#: js/blocks/EnsembleBlocks.js:256 msgid "Mouse is already running." msgstr "" -#: js/EnsembleBlocks.js:258 +#: js/blocks/EnsembleBlocks.js:258 msgid "Turtle is already running." msgstr "" -#: js/EnsembleBlocks.js:282 +#: js/blocks/EnsembleBlocks.js:282 msgid "Cannot find start block" msgstr "" -#: js/EnsembleBlocks.js:292 +#: js/blocks/EnsembleBlocks.js:292 #.TRANS: pen color for this mouse msgid "mouse color" msgstr "" -#: js/EnsembleBlocks.js:294 +#: js/blocks/EnsembleBlocks.js:294 msgid "The Mouse color block returns the pen color of the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:306 +#: js/blocks/EnsembleBlocks.js:306 #.TRANS: pen color for this turtle msgid "turtle color" msgstr "" -#: js/EnsembleBlocks.js:308 +#: js/blocks/EnsembleBlocks.js:308 msgid "The Turtle color block returns the pen color of the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:338 +#: js/blocks/EnsembleBlocks.js:338 #.TRANS: heading (compass direction) for this mouse msgid "mouse heading" msgstr "" -#: js/EnsembleBlocks.js:340 +#: js/blocks/EnsembleBlocks.js:340 msgid "The Mouse heading block returns the heading of the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:352 +#: js/blocks/EnsembleBlocks.js:352 #.TRANS: heading (compass direction) for this turtle msgid "turtle heading" msgstr "" -#: js/EnsembleBlocks.js:354 +#: js/blocks/EnsembleBlocks.js:354 msgid "The Turtle heading block returns the heading of the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:384 -#: js/EnsembleBlocks.js:439 +#: js/blocks/EnsembleBlocks.js:384 +#: js/blocks/EnsembleBlocks.js:439 #.TRANS: set xy position for this mouse msgid "set mouse" msgstr "" -#: js/EnsembleBlocks.js:391 -#: js/EnsembleBlocks.js:402 -#: js/BoxesBlocks.js:595 -msgid "name1" -msgstr "" - -#: js/EnsembleBlocks.js:391 -#: js/EnsembleBlocks.js:402 -#: js/ProgramBlocks.js:881 -#: js/GraphicsBlocks.js:235 -#: js/GraphicsBlocks.js:313 -#: js/GraphicsBlocks.js:436 -#: js/GraphicsBlocks.js:487 -#: js/GraphicsBlocks.js:534 -#: js/GraphicsBlocks.js:750 +#: js/blocks/EnsembleBlocks.js:391 +#: js/blocks/EnsembleBlocks.js:402 +#: js/blocks/GraphicsBlocks.js:235 +#: js/blocks/GraphicsBlocks.js:313 +#: js/blocks/GraphicsBlocks.js:436 +#: js/blocks/GraphicsBlocks.js:487 +#: js/blocks/GraphicsBlocks.js:534 +#: js/blocks/GraphicsBlocks.js:750 +#: js/blocks/ProgramBlocks.js:881 msgid "x" msgstr "" -#: js/EnsembleBlocks.js:391 -#: js/EnsembleBlocks.js:402 -#: js/ProgramBlocks.js:881 -#: js/GraphicsBlocks.js:149 -#: js/GraphicsBlocks.js:313 -#: js/GraphicsBlocks.js:436 -#: js/GraphicsBlocks.js:487 -#: js/GraphicsBlocks.js:534 -#: js/GraphicsBlocks.js:750 +#: js/blocks/EnsembleBlocks.js:391 +#: js/blocks/EnsembleBlocks.js:402 +#: js/blocks/GraphicsBlocks.js:149 +#: js/blocks/GraphicsBlocks.js:313 +#: js/blocks/GraphicsBlocks.js:436 +#: js/blocks/GraphicsBlocks.js:487 +#: js/blocks/GraphicsBlocks.js:534 +#: js/blocks/GraphicsBlocks.js:750 +#: js/blocks/ProgramBlocks.js:881 msgid "y" msgstr "" -#: js/EnsembleBlocks.js:395 -#: js/EnsembleBlocks.js:452 +#: js/blocks/EnsembleBlocks.js:395 +#: js/blocks/EnsembleBlocks.js:452 #.TRANS: set xy position for this turtle msgid "set turtle" msgstr "" -#: js/EnsembleBlocks.js:433 +#: js/blocks/EnsembleBlocks.js:433 msgid "The Set mouse block sends a stack of blocks to be run by the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:446 +#: js/blocks/EnsembleBlocks.js:446 msgid "The Set turtle block sends a stack of blocks to be run by the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:480 +#: js/blocks/EnsembleBlocks.js:480 #.TRANS: y position for this mouse msgid "mouse y" msgstr "" -#: js/EnsembleBlocks.js:482 +#: js/blocks/EnsembleBlocks.js:482 msgid "The Y mouse block returns the Y position of the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:494 +#: js/blocks/EnsembleBlocks.js:494 #.TRANS: y position for this turtle msgid "turtle y" msgstr "" -#: js/EnsembleBlocks.js:496 +#: js/blocks/EnsembleBlocks.js:496 msgid "The Y turtle block returns the Y position of the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:526 +#: js/blocks/EnsembleBlocks.js:526 #.TRANS: x position for this mouse msgid "mouse x" msgstr "" -#: js/EnsembleBlocks.js:528 +#: js/blocks/EnsembleBlocks.js:528 msgid "The X mouse block returns the X position of the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:540 +#: js/blocks/EnsembleBlocks.js:540 #.TRANS: x position for this turtle msgid "turtle x" msgstr "" -#: js/EnsembleBlocks.js:542 +#: js/blocks/EnsembleBlocks.js:542 msgid "The X turtle block returns the X position of the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:573 +#: js/blocks/EnsembleBlocks.js:573 #.TRANS: notes played by this mouse msgid "mouse notes played" msgstr "" -#: js/EnsembleBlocks.js:575 +#: js/blocks/EnsembleBlocks.js:575 msgid "The Mouse elapse notes block returns the number of notes played by the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:587 +#: js/blocks/EnsembleBlocks.js:587 #.TRANS: notes played by this turtle msgid "turtle notes played" msgstr "" -#: js/EnsembleBlocks.js:589 +#: js/blocks/EnsembleBlocks.js:589 msgid "The Turtle elapse notes block returns the number of notes played by the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:627 +#: js/blocks/EnsembleBlocks.js:627 #.TRANS: convert current note for this turtle to piano key (1-88) msgid "mouse pitch number" msgstr "" -#: js/EnsembleBlocks.js:629 +#: js/blocks/EnsembleBlocks.js:629 msgid "The Mouse pitch block returns the current pitch number being played by the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:641 +#: js/blocks/EnsembleBlocks.js:641 #.TRANS: convert current note for this turtle to piano key (1-88) msgid "turtle pitch number" msgstr "" -#: js/EnsembleBlocks.js:643 -msgid "The Turrle pitch block returns the current pitch number being played by the specified turtle." +#: js/blocks/EnsembleBlocks.js:643 +msgid "The Turtle pitch block returns the current pitch number being played by the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:747 -#: js/EnsembleBlocks.js:819 +#: js/blocks/EnsembleBlocks.js:747 +#: js/blocks/EnsembleBlocks.js:819 #.TRANS: note value is the duration of the note played by this mouse msgid "mouse note value" msgstr "" -#: js/EnsembleBlocks.js:757 +#: js/blocks/EnsembleBlocks.js:757 #.TRANS: note value is the duration of the note played by this turtle msgid "turtle note value" msgstr "" -#: js/EnsembleBlocks.js:830 +#: js/blocks/EnsembleBlocks.js:830 #.TRANS: sync is short for synchronization msgid "mouse sync" msgstr "" -#: js/EnsembleBlocks.js:832 +#: js/blocks/EnsembleBlocks.js:832 msgid "The Mouse sync block aligns the beat count between mice." msgstr "" -#: js/EnsembleBlocks.js:844 +#: js/blocks/EnsembleBlocks.js:844 #.TRANS: sync is short for synchronization msgid "turtle sync" msgstr "" -#: js/EnsembleBlocks.js:846 +#: js/blocks/EnsembleBlocks.js:846 msgid "The Turtle sync block aligns the beat count between turtles." msgstr "" -#: js/EnsembleBlocks.js:887 +#: js/blocks/EnsembleBlocks.js:887 msgid "The Found mouse block will return true if the specified mouse can be found." msgstr "" -#: js/EnsembleBlocks.js:893 +#: js/blocks/EnsembleBlocks.js:893 msgid "found mouse" msgstr "" -#: js/EnsembleBlocks.js:903 +#: js/blocks/EnsembleBlocks.js:903 msgid "The Found turtle block will return true if the specified turtle can be found." msgstr "" -#: js/EnsembleBlocks.js:909 +#: js/blocks/EnsembleBlocks.js:909 msgid "found turtle" msgstr "" -#: js/EnsembleBlocks.js:932 +#: js/blocks/EnsembleBlocks.js:932 msgid "new mouse" msgstr "" -#: js/EnsembleBlocks.js:934 +#: js/blocks/EnsembleBlocks.js:934 msgid "The New mouse block will create a new mouse." msgstr "" -#: js/EnsembleBlocks.js:945 +#: js/blocks/EnsembleBlocks.js:945 msgid "new turtle" msgstr "" -#: js/EnsembleBlocks.js:947 +#: js/blocks/EnsembleBlocks.js:947 msgid "The New turtle block will create a new turtle." msgstr "" -#: js/EnsembleBlocks.js:1011 +#: js/blocks/EnsembleBlocks.js:1011 msgid "set mouse color" msgstr "" -#: js/EnsembleBlocks.js:1014 +#: js/blocks/EnsembleBlocks.js:1014 msgid "The Set-mouse-color block is used to set the color of a mouse." msgstr "" -#: js/EnsembleBlocks.js:1020 +#: js/blocks/EnsembleBlocks.js:1020 msgid "set turtle color" msgstr "" -#: js/EnsembleBlocks.js:1023 +#: js/blocks/EnsembleBlocks.js:1023 msgid "The Set-turtle-color block is used to set the color of a turtle." msgstr "" -#: js/EnsembleBlocks.js:1083 +#: js/blocks/EnsembleBlocks.js:1083 msgid "The Mouse-name block returns the name of a mouse." msgstr "" -#: js/EnsembleBlocks.js:1092 +#: js/blocks/EnsembleBlocks.js:1092 msgid "The Turtle-name block returns the name of a turtle." msgstr "" -#: js/EnsembleBlocks.js:1115 +#: js/blocks/EnsembleBlocks.js:1115 msgid "mouse count" msgstr "" -#: js/EnsembleBlocks.js:1118 +#: js/blocks/EnsembleBlocks.js:1118 msgid "The Mouse-count block returns the number of mice." msgstr "" -#: js/EnsembleBlocks.js:1124 +#: js/blocks/EnsembleBlocks.js:1124 msgid "turtle count" msgstr "" -#: js/EnsembleBlocks.js:1127 +#: js/blocks/EnsembleBlocks.js:1127 msgid "The Turtle-count block returns the number of turtles." msgstr "" -#: js/EnsembleBlocks.js:1149 +#: js/blocks/EnsembleBlocks.js:1149 msgid "nth mouse name" msgstr "" -#: js/EnsembleBlocks.js:1152 +#: js/blocks/EnsembleBlocks.js:1152 msgid "The Nth-Mouse name block returns the name of the nth mouse." msgstr "" -#: js/EnsembleBlocks.js:1158 +#: js/blocks/EnsembleBlocks.js:1158 msgid "nth turtle name" msgstr "" -#: js/EnsembleBlocks.js:1161 +#: js/blocks/EnsembleBlocks.js:1161 msgid "The Nth-Turtle name block returns the name of the nth turtle." msgstr "" -#: js/EnsembleBlocks.js:1205 -#: js/EnsembleBlocks.js:1265 +#: js/blocks/EnsembleBlocks.js:1205 +#: js/blocks/EnsembleBlocks.js:1265 msgid "set name" msgstr "" -#: js/EnsembleBlocks.js:1214 -#: js/EnsembleBlocks.js:1221 +#: js/blocks/EnsembleBlocks.js:1214 +#: js/blocks/EnsembleBlocks.js:1221 msgid "source" msgstr "" -#: js/EnsembleBlocks.js:1214 -#: js/EnsembleBlocks.js:1221 +#: js/blocks/EnsembleBlocks.js:1214 +#: js/blocks/EnsembleBlocks.js:1221 msgid "target" msgstr "" -#: js/EnsembleBlocks.js:1271 +#: js/blocks/EnsembleBlocks.js:1271 msgid "The Set-name block is used to name a mouse." msgstr "" -#: js/EnsembleBlocks.js:1284 +#: js/blocks/EnsembleBlocks.js:1284 msgid "The Set-name block is used to name a turtle." msgstr "" -#: js/BooleanBlocks.js:44 -msgid "The Not block is the logical not operator." -msgstr "" - -#: js/BooleanBlocks.js:62 -msgid "not" -msgstr "" - -#: js/BooleanBlocks.js:134 -msgid "The And block is the logical and operator." -msgstr "" - -#: js/BooleanBlocks.js:152 -msgid "and" -msgstr "" - -#: js/BooleanBlocks.js:218 -msgid "The Or block is the logical or operator." -msgstr "" - -#: js/BooleanBlocks.js:236 -msgid "or" -msgstr "" - -#: js/BooleanBlocks.js:302 -msgid "The XOR block is the logical XOR operator." -msgstr "" - -#: js/BooleanBlocks.js:320 -msgid "xor" -msgstr "" - -#: js/BooleanBlocks.js:808 -msgid "The Equal block returns True if the two numbers are equal." -msgstr "" - -#: js/BooleanBlocks.js:909 -msgid "The Not-equal-to block returns True if the two numbers are not equal to each other." -msgstr "" - -#: js/BooleanBlocks.js:1008 -msgid "The Boolean block is used to specify true or false." -msgstr "" - -#: js/MediaBlocks.js:35 -#.TRANS: right side of the screen -msgid "right (screen)" -msgstr "" - -#: js/MediaBlocks.js:45 -#: js/MediaBlocks.js:56 -msgid "The Right block returns the position of the right of the canvas." -msgstr "" - -#: js/MediaBlocks.js:97 -#.TRANS: left side of the screen -msgid "left (screen)" -msgstr "" - -#: js/MediaBlocks.js:107 -#: js/MediaBlocks.js:118 -msgid "The Left block returns the position of the left of the canvas." -msgstr "" - -#: js/MediaBlocks.js:158 -msgid "top (screen)" -msgstr "" - -#: js/MediaBlocks.js:168 -#: js/MediaBlocks.js:179 -msgid "The Top block returns the position of the top of the canvas." -msgstr "" - -#: js/MediaBlocks.js:219 -msgid "bottom (screen)" +#: js/blocks/ExtrasBlocks.js:33 +msgid "fraction" msgstr "" -#: js/MediaBlocks.js:229 -#: js/MediaBlocks.js:240 -msgid "The Bottom block returns the position of the bottom of the canvas." +#: js/blocks/ExtrasBlocks.js:36 +msgid "Convert a float to a fraction" msgstr "" -#: js/MediaBlocks.js:282 -msgid "width" +#: js/blocks/ExtrasBlocks.js:93 +msgid "save as ABC" msgstr "" -#: js/MediaBlocks.js:291 -msgid "The Width block returns the width of the canvas." +#: js/blocks/ExtrasBlocks.js:96 +#: js/blocks/ExtrasBlocks.js:132 +#: js/blocks/ExtrasBlocks.js:168 +msgid "title" msgstr "" -#: js/MediaBlocks.js:325 -msgid "height" +#: js/blocks/ExtrasBlocks.js:129 +msgid "save as Lilypond" msgstr "" -#: js/MediaBlocks.js:334 -msgid "The Height block returns the height of the canvas." +#: js/blocks/ExtrasBlocks.js:165 +msgid "save as SVG" msgstr "" -#: js/MediaBlocks.js:369 -#.TRANS: stops playback of an audio recording -msgid "stop play" +#: js/blocks/ExtrasBlocks.js:216 +msgid "no background" msgstr "" -#: js/MediaBlocks.js:404 -#.TRANS: Erases the images and text -msgid "erase media" +#: js/blocks/ExtrasBlocks.js:219 +msgid "The No background block eliminates the background from the saved SVG output." msgstr "" -#: js/MediaBlocks.js:409 -msgid "The Erase Media block erases text and images." +#: js/blocks/ExtrasBlocks.js:247 +msgid "show blocks" msgstr "" -#: js/MediaBlocks.js:439 -#.TRANS: play an audio recording -msgid "play back" +#: js/blocks/ExtrasBlocks.js:249 +msgid "The Show blocks block shows the blocks." msgstr "" -#: js/MediaBlocks.js:487 -msgid "speak" +#: js/blocks/ExtrasBlocks.js:274 +msgid "hide blocks" msgstr "" -#: js/MediaBlocks.js:495 -msgid "The Speak block outputs to the text-to-speech synthesizer" +#: js/blocks/ExtrasBlocks.js:276 +msgid "The Hide blocks block hides the blocks." msgstr "" -#: js/MediaBlocks.js:546 -msgid "camera" +#: js/blocks/ExtrasBlocks.js:305 +#: js/blocks/ExtrasBlocks.js:338 +msgid "The Space block is used to add space between blocks." msgstr "" -#: js/MediaBlocks.js:551 -msgid "The Camera block connects a webcam to the Show block." +#: js/blocks/ExtrasBlocks.js:376 +msgid "wait" msgstr "" -#: js/MediaBlocks.js:574 -msgid "video" +#: js/blocks/ExtrasBlocks.js:379 +msgid "The Wait block pauses the program for a specified number of seconds." msgstr "" -#: js/MediaBlocks.js:579 -msgid "The Video block selects video for use with the Show block." +#: js/blocks/ExtrasBlocks.js:433 +#: plugins/facebook.rtp:30 +msgid "comment" msgstr "" -#: js/MediaBlocks.js:607 -msgid "The Open file block opens a file for use with the Show block." +#: js/blocks/ExtrasBlocks.js:469 +msgid "print" msgstr "" -#: js/MediaBlocks.js:645 -msgid "stop media" +#: js/blocks/ExtrasBlocks.js:476 +msgid "The Print block displays text at the top of the screen." msgstr "" -#: js/MediaBlocks.js:650 -msgid "The Stop media block stops audio or video playback." +#: js/blocks/ExtrasBlocks.js:582 +msgid "display grid" msgstr "" -#: js/MediaBlocks.js:679 -#: js/PitchBlocks.js:1539 -#: js/phrasemaker.js:822 -#: js/musickeyboard.js:1654 -#.TRANS: a measure of frequency: one cycle per second -msgid "hertz" +#: js/blocks/ExtrasBlocks.js:587 +msgid "The Display Grid Block changes the grid type" msgstr "" -#: js/MediaBlocks.js:692 -msgid "duration (ms)" +#: js/blocks/ExtrasBlocks.js:689 +#: js/blocks/ExtrasBlocks.js:708 +#: js/blocks/ExtrasBlocks.js:731 +#: js/blocks/ExtrasBlocks.js:754 +#: js/blocks/ExtrasBlocks.js:772 +#: js/blocks/ExtrasBlocks.js:791 +#: js/blocks/ExtrasBlocks.js:810 +#: js/blocks/ExtrasBlocks.js:829 +msgid "unknown" msgstr "" -#: js/MediaBlocks.js:728 -#.TRANS: translate a note into hertz, e.g., A4 -> 440HZ -msgid "note to frequency" +#: js/blocks/FlowBlocks.js:41 +msgid "The Backward block runs code in reverse order (Musical retrograde)." msgstr "" -#: js/MediaBlocks.js:736 -msgid "The To frequency block converts a pitch name and octave to Hertz." +#: js/blocks/FlowBlocks.js:48 +msgid "backward" msgstr "" -#: js/MediaBlocks.js:746 -#: js/PitchBlocks.js:656 -#: js/PitchBlocks.js:932 -#: js/PitchBlocks.js:1827 -#.TRANS: name2 is name as in name of pitch (JAPANESE ONLY) -msgid "name2" +#: js/blocks/FlowBlocks.js:124 +msgid "The Duplicate block will run each block multiple times." msgstr "" -#: js/MediaBlocks.js:812 -msgid "The Avatar block is used to change the appearance of the mouse." +#: js/blocks/FlowBlocks.js:136 +msgid "duplicate" msgstr "" -#: js/MediaBlocks.js:819 -msgid "The Avatar block is used to change the appearance of the turtle." +#: js/blocks/FlowBlocks.js:334 +msgid "The Default block is used inside of a Switch to define the default action." msgstr "" -#: js/MediaBlocks.js:831 -#: js/MediaBlocks.js:891 -#.TRANS: a media object -msgid "size" +#: js/blocks/FlowBlocks.js:342 +msgid "default" msgstr "" -#: js/MediaBlocks.js:831 -msgid "image" +#: js/blocks/FlowBlocks.js:361 +#: js/blocks/FlowBlocks.js:418 +msgid "The Case Block must be used inside of a Switch Block." msgstr "" -#: js/MediaBlocks.js:880 -msgid "The Show block is used to display text or images on the canvas." +#: js/blocks/FlowBlocks.js:389 +msgid "The Case block is used inside of a Switch to define matches." msgstr "" -#: js/MediaBlocks.js:888 -#.TRANS: show1 is show as in display an image or text on the screen. -msgid "show1" +#: js/blocks/FlowBlocks.js:397 +msgid "case" msgstr "" -#: js/MediaBlocks.js:891 -msgid "obj" +#: js/blocks/FlowBlocks.js:446 +msgid "The Switch block will run the code in the matching Case." msgstr "" -#: js/MediaBlocks.js:938 -msgid "The Media block is used to import an image." +#: js/blocks/FlowBlocks.js:454 +msgid "switch" msgstr "" -#: js/MediaBlocks.js:973 -msgid "The Text block holds a text string." +#: js/blocks/FlowBlocks.js:595 +msgid "The Stop block will stop a loop" msgstr "" -#: js/ProgramBlocks.js:33 -msgid "The Load-heap-from-app block loads the heap from a web page." +#: js/blocks/FlowBlocks.js:597 +msgid "Forever, Repeat, While, or Until." msgstr "" -#: js/ProgramBlocks.js:44 -#.TRANS: load the heap contents from a URL -msgid "load heap from App" +#: js/blocks/FlowBlocks.js:604 +#: js/widgets/timbre.js:417 +#: js/widgets/timbre.js:419 +#: js/widgets/musickeyboard.js:819 +#: js/widgets/musickeyboard.js:821 +#: js/widgets/phrasemaker.js:4202 +#: plugins/rodi.rtp:29 +#: plugins/rodi.rtp:73 +#: plugins/rodi.rtp:413 +msgid "stop" msgstr "" -#: js/ProgramBlocks.js:95 -msgid "Error parsing JSON data:" +#: js/blocks/FlowBlocks.js:653 +msgid "The Waitfor block will wait until the condition is true." msgstr "" -#: js/ProgramBlocks.js:100 -msgid "404: Page not found" +#: js/blocks/FlowBlocks.js:661 +msgid "wait for" msgstr "" -#: js/ProgramBlocks.js:133 -msgid "The Save-heap-to-app block saves the heap to a web page." +#: js/blocks/FlowBlocks.js:732 +msgid "The Until block will repeat until the condition is true." msgstr "" -#: js/ProgramBlocks.js:144 -#.TRANS: save the heap contents to a URL -msgid "save heap to App" +#: js/blocks/FlowBlocks.js:740 +msgid "until" msgstr "" -#: js/ProgramBlocks.js:189 -msgid "Cannot find a valid heap for" +#: js/blocks/FlowBlocks.js:742 +#: js/blocks/FlowBlocks.js:822 +msgid "do2" msgstr "" -#: js/ProgramBlocks.js:206 -msgid "The Load-heap block loads the heap from a file." +#: js/blocks/FlowBlocks.js:812 +msgid "The While block will repeat while the condition is true." msgstr "" -#: js/ProgramBlocks.js:217 -#.TRANS: load the heap from a file -msgid "load heap" +#: js/blocks/FlowBlocks.js:820 +msgid "while" msgstr "" -#: js/ProgramBlocks.js:270 -msgid "The file you selected does not contain a valid heap." +#: js/blocks/FlowBlocks.js:903 +#: js/blocks/FlowBlocks.js:968 +#: js/blocks/FlowBlocks.js:979 +msgid "In this example if the mouse button is pressed a snare drum will play." msgstr "" -#: js/ProgramBlocks.js:275 -msgid "The loadHeap block needs a loadFile block." +#: js/blocks/FlowBlocks.js:925 +#: js/blocks/FlowBlocks.js:988 +msgid "if" msgstr "" -#: js/ProgramBlocks.js:291 -msgid "The Set-heap block loads the heap." +#: js/blocks/FlowBlocks.js:927 +#: js/blocks/FlowBlocks.js:990 +msgid "then" msgstr "" -#: js/ProgramBlocks.js:299 -#: js/HeapBlocks.js:539 -#.TRANS: load the heap from a JSON encoding -msgid "set heap" +#: js/blocks/FlowBlocks.js:927 +msgid "else" msgstr "" -#: js/ProgramBlocks.js:340 -msgid "The block you selected does not contain a valid heap." +#: js/blocks/FlowBlocks.js:1025 +msgid "The Forever block will repeat the contained blocks forever." msgstr "" -#: js/ProgramBlocks.js:343 -msgid "The Set heap block needs a heap." +#: js/blocks/FlowBlocks.js:1037 +msgid "forever" msgstr "" -#: js/ProgramBlocks.js:360 -msgid "The Load-dictionary block loads a dictionary from a file." +#: js/blocks/FlowBlocks.js:1073 +msgid "The Repeat block will repeat the contained blocks." msgstr "" -#: js/ProgramBlocks.js:372 -#.TRANS: load a dictionary from a file -msgid "load dictionary" +#: js/blocks/FlowBlocks.js:1075 +msgid "In this example the note will be played 4 times." msgstr "" -#: js/ProgramBlocks.js:390 -#: js/ProgramBlocks.js:658 -#: js/ToneBlocks.js:1025 -msgid "file" +#: js/blocks/FlowBlocks.js:1083 +msgid "repeat" msgstr "" -#: js/ProgramBlocks.js:396 -#: js/ProgramBlocks.js:501 -#: js/ProgramBlocks.js:664 -#: js/DictBlocks.js:80 -#: js/DictBlocks.js:145 -#: js/DictBlocks.js:216 -#: js/DictBlocks.js:290 -msgid "My Dictionary" +#: js/blocks/FlowBlocks.js:1123 +msgid "duplicate factor" msgstr "" -#: js/ProgramBlocks.js:444 -msgid "The file you selected does not contain a valid dictionary." +#: js/blocks/HeapBlocks.js:49 +msgid "The Heap block returns the heap." msgstr "" -#: js/ProgramBlocks.js:449 -msgid "The load dictionary block needs a load file block." +#: js/blocks/HeapBlocks.js:133 +msgid "show heap" msgstr "" -#: js/ProgramBlocks.js:466 -msgid "The Set-dictionary block loads a dictionary." +#: js/blocks/HeapBlocks.js:181 +msgid "The Heap-length block returns the length of the heap." msgstr "" -#: js/ProgramBlocks.js:477 -#.TRANS: load a dictionary from a JSON -msgid "set dictionary" +#: js/blocks/HeapBlocks.js:195 +msgid "heap length" msgstr "" -#: js/ProgramBlocks.js:546 -msgid "The block you selected does not contain a valid dictionary." +#: js/blocks/HeapBlocks.js:254 +msgid "The Heap-empty? block returns true if the heap is empty." msgstr "" -#: js/ProgramBlocks.js:550 -msgid "The set dictionary block needs a dictionary." +#: js/blocks/HeapBlocks.js:268 +#.TRANS: Is the heap empty? +msgid "heap empty?" msgstr "" -#: js/ProgramBlocks.js:567 -msgid "The Save-heap block saves the heap to a file." +#: js/blocks/HeapBlocks.js:317 +msgid "The Empty-heap block empties the heap." msgstr "" -#: js/ProgramBlocks.js:578 -#.TRANS: save the heap to a file -msgid "save heap" +#: js/blocks/HeapBlocks.js:327 +#: js/blocks/HeapBlocks.js:647 +#.TRANS: empty the heap +msgid "empty heap" msgstr "" -#: js/ProgramBlocks.js:629 -msgid "The Save-dictionary block saves a dictionary to a file." +#: js/blocks/HeapBlocks.js:371 +msgid "The Reverse-heap block reverses the order of the heap." msgstr "" -#: js/ProgramBlocks.js:640 -#.TRANS: save a dictionary to a file -msgid "save dictionary" +#: js/blocks/HeapBlocks.js:384 +#.TRANS: reverse the order of the heap +msgid "reverse heap" msgstr "" -#: js/ProgramBlocks.js:720 -msgid "The Open palette block opens a palette." +#: js/blocks/HeapBlocks.js:428 +msgid "The Index-heap block returns a value in the heap at a specified location." msgstr "" -#: js/ProgramBlocks.js:727 -msgid "open palette" +#: js/blocks/HeapBlocks.js:443 +#.TRANS: retrieve a value from the heap at index position in the heap +msgid "index heap" msgstr "" -#: js/ProgramBlocks.js:785 -msgid "The Delete block block removes a block." +#: js/blocks/HeapBlocks.js:523 +msgid "The Set-heap entry block sets a value in he heap at the specified location." msgstr "" -#: js/ProgramBlocks.js:797 -#.TRANS: Move this block to the trash. -msgid "delete block" +#: js/blocks/HeapBlocks.js:539 +#: js/blocks/ProgramBlocks.js:299 +#.TRANS: load the heap from a JSON encoding +msgid "set heap" msgstr "" -#: js/ProgramBlocks.js:861 -msgid "The Move block block moves a block." +#: js/blocks/HeapBlocks.js:619 +msgid "The Pop block removes the value at the top of the heap." msgstr "" -#: js/ProgramBlocks.js:869 -#.TRANS: Move the position of a block on the screen. -msgid "move block" +#: js/blocks/HeapBlocks.js:633 +#.TRANS: pop a value off the top of the heap +msgid "pop" msgstr "" -#: js/ProgramBlocks.js:881 -#: js/ProgramBlocks.js:1048 -msgid "block number" +#: js/blocks/HeapBlocks.js:680 +msgid "The Push block adds a value to the top of the heap." msgstr "" -#: js/ProgramBlocks.js:935 -#.TRANS: Run program beginning at this block. -msgid "run block" +#: js/blocks/HeapBlocks.js:696 +#.TRANS: push a value onto the top of the heap +msgid "push" msgstr "" -#: js/ProgramBlocks.js:1025 -msgid "The Dock block block connections two blocks." +#: js/blocks/IntervalsBlocks.js:45 +msgid "set temperament" msgstr "" -#: js/ProgramBlocks.js:1036 -#.TRANS: We can connect a block to another block. -msgid "connect blocks" +#: js/blocks/IntervalsBlocks.js:63 +#: js/blocks/MediaBlocks.js:746 +#: js/blocks/PitchBlocks.js:657 +#: js/blocks/PitchBlocks.js:935 +#: js/blocks/PitchBlocks.js:974 +#: js/blocks/PitchBlocks.js:1007 +#: js/blocks/PitchBlocks.js:1194 +#: js/blocks/PitchBlocks.js:1717 +#: js/blocks/PitchBlocks.js:1758 +#: js/blocks/PitchBlocks.js:1866 +#: js/blocks/ToneBlocks.js:1025 +#: js/turtleactions/IntervalsActions.js:114 +#.TRANS: adjusts the shift up or down by one octave (twelve half-steps in the interval between two notes, one having twice or half the frequency in Hz of the other.) +msgid "octave" msgstr "" -#: js/ProgramBlocks.js:1048 -msgid "target block" +#: js/blocks/IntervalsBlocks.js:99 +msgid "The Temperament name block is used to select a tuning method." msgstr "" -#: js/ProgramBlocks.js:1048 -msgid "connection number" +#: js/blocks/IntervalsBlocks.js:161 +msgid "doubly" msgstr "" -#: js/ProgramBlocks.js:1140 -msgid "The Make block block creates a new block." +#: js/blocks/IntervalsBlocks.js:166 +msgid "The Doubly block will double the size of an interval." msgstr "" -#: js/ProgramBlocks.js:1152 -#.TRANS: Create a new block -msgid "make block" +#: js/blocks/IntervalsBlocks.js:262 +msgid "interval number" msgstr "" -#: js/ProgramBlocks.js:1186 -#: js/ProgramBlocks.js:1227 -#: js/RhythmBlocks.js:1128 -#: js/PitchBlocks.js:972 -#: js/PitchBlocks.js:1005 -#: js/temperament.js:340 -#: js/temperament.js:362 -#: js/temperament.js:372 -#: js/temperament.js:484 -#: js/status.js:190 -#: plugins/rodi.rtp:192 -#.TRANS: a musical note consisting of pitch and duration -msgid "note" +#: js/blocks/IntervalsBlocks.js:317 +msgid "current interval" msgstr "" -#: js/ProgramBlocks.js:1285 -msgid "Cannot find block" +#: js/blocks/IntervalsBlocks.js:387 +#.TRANS: measure the distance between two pitches in semi-tones +msgid "semi-tone interval measure" msgstr "" -#: js/ProgramBlocks.js:1304 -#: js/ProgramBlocks.js:1313 -msgid "Warning: block argument type mismatch" +#: js/blocks/IntervalsBlocks.js:454 +#: js/blocks/IntervalsBlocks.js:570 +msgid "You must use two pitch blocks when measuring an interval." msgstr "" -#: js/ProgramBlocks.js:1347 -msgid "The Open project block is used to open a project from a web page." +#: js/blocks/IntervalsBlocks.js:496 +msgid "The Scalar interval block measures the distance between two notes in the current key and mode." msgstr "" -#: js/ProgramBlocks.js:1357 -msgid "open project" +#: js/blocks/IntervalsBlocks.js:502 +#.TRANS: measure the distance between two pitches in steps of musical scale +msgid "scalar interval measure" msgstr "" -#: js/ProgramBlocks.js:1410 -msgid "Please enter a valid URL." +#: js/blocks/IntervalsBlocks.js:678 +msgid "In the figure, we add sol# to sol." msgstr "" -#: js/DrumBlocks.js:59 -msgid "The Noise name block is used to select a noise synthesizer." +#: js/blocks/IntervalsBlocks.js:684 +#: js/blocks/OrnamentBlocks.js:220 +#.TRANS: calculate a relative step between notes based on semi-tones +msgid "semi-tone interval" msgstr "" -#: js/DrumBlocks.js:102 -msgid "The Drum name block is used to select a drum." +#: js/blocks/IntervalsBlocks.js:733 +msgid "The output of the example is: do, mi, sol, sol, ti, mi" msgstr "" -#: js/DrumBlocks.js:146 -msgid "The Effects name block is used to select a sound effect." +#: js/blocks/IntervalsBlocks.js:740 +#: js/blocks/WidgetBlocks.js:768 +msgid "arpeggio" msgstr "" -#: js/DrumBlocks.js:163 -msgid "noise" +#: js/blocks/IntervalsBlocks.js:931 +msgid "The Chord block calculates common chords." msgstr "" -#: js/DrumBlocks.js:177 -msgid "The Play noise block will generate white, pink, or brown noise." +#: js/blocks/IntervalsBlocks.js:933 +msgid "In the figure, we generate a C-major chord." msgstr "" -#: js/DrumBlocks.js:191 -#: js/musicutils.js:752 -#: js/synthutils.js:47 -#.TRANS: white noise synthesizer -msgid "white noise" +#: js/blocks/IntervalsBlocks.js:938 +msgid "chord" msgstr "" -#: js/DrumBlocks.js:326 -msgid "Replace every instance of a pitch with a drum sound." +#: js/blocks/IntervalsBlocks.js:990 +msgid "The Ratio Interval block calculates an interval based on a ratio." msgstr "" -#: js/DrumBlocks.js:337 -#.TRANS: map a pitch to a drum sound -msgid "map pitch to drum" +#: js/blocks/IntervalsBlocks.js:995 +msgid "ratio interval" msgstr "" -#: js/DrumBlocks.js:404 -msgid "In the example above, a kick drum sound will be played instead of sol." +#: js/blocks/IntervalsBlocks.js:1064 +msgid "In the figure, we add la to sol." msgstr "" -#: js/DrumBlocks.js:416 -#.TRANS: set the current drum sound for playback -msgid "set drum" +#: js/blocks/IntervalsBlocks.js:1120 +#.TRANS: define a custom mode +msgid "define mode" msgstr "" -#: js/DrumBlocks.js:460 -msgid "sound effect" +#: js/blocks/IntervalsBlocks.js:1173 +msgid "movable Do" msgstr "" -#: js/DrumBlocks.js:498 -msgid "You can use multiple Drum blocks within a Note block." +#: js/blocks/IntervalsBlocks.js:1224 +#.TRANS: mode length is the number of notes in the mode, e.g., 7 for major and minor scales; 12 for chromatic scales +msgid "mode length" msgstr "" -#: js/RhythmBlocks.js:182 -#: js/RhythmBlocks.js:1086 -#: js/RhythmBlocks.js:1162 -msgid "Note value must be greater than 0." +#: js/blocks/IntervalsBlocks.js:1233 +msgid "The Mode length block is the number of notes in the current scale." msgstr "" -#: js/RhythmBlocks.js:215 -#: js/RhythmBlocks.js:278 -#: js/RhythmBlocks.js:350 -#.TRANS: swing is a rhythmic variation that emphasises the offbeat -msgid "swing" +#: js/blocks/IntervalsBlocks.js:1235 +msgid "Most Western scales have 7 notes." msgstr "" -#: js/RhythmBlocks.js:355 -#.TRANS: the amount to shift to the offbeat note -msgid "swing value" +#: js/blocks/IntervalsBlocks.js:1284 +#.TRANS: the mode in music is 'major', 'minor', etc. +msgid "current mode" msgstr "" -#: js/RhythmBlocks.js:419 -msgid "The Skip notes block will cause notes to be skipped." +#: js/blocks/IntervalsBlocks.js:1337 +#.TRANS: the key is a group of pitches with which a music composition is created +msgid "current key" msgstr "" -#: js/RhythmBlocks.js:427 -#.TRANS: substitute rests on notes being skipped -msgid "skip notes" +#: js/blocks/IntervalsBlocks.js:1389 +#: js/blocks/IntervalsBlocks.js:1434 +#.TRANS: set the key and mode, e.g. C Major +msgid "set key" msgstr "" -#: js/RhythmBlocks.js:489 -#.TRANS: speed up note duration by some factor, e.g. convert 1/4 to 1/8 notes by using a factor of 2 -msgid "multiply note value" +#: js/blocks/IntervalsBlocks.js:1443 +#: js/blocks/IntervalsBlocks.js:1449 +msgid "The Set key block is used to set the key and mode," msgstr "" -#: js/RhythmBlocks.js:542 -msgid "The Tie block works on pairs of notes, combining them into one note." +#: js/blocks/IntervalsBlocks.js:1449 +msgid "eg C Major" msgstr "" -#: js/RhythmBlocks.js:550 -#.TRANS: tie notes together into one longer note -msgid "tie" +#: js/blocks/MediaBlocks.js:35 +#.TRANS: right side of the screen +msgid "right (screen)" msgstr "" -#: js/RhythmBlocks.js:591 -#: js/RhythmBlocks.js:671 -#.TRANS: a dotted note is played for 1.5x its value, e.g., 1/8. --> 3/16 -msgid "dot" +#: js/blocks/MediaBlocks.js:45 +#: js/blocks/MediaBlocks.js:56 +msgid "The Right block returns the position of the right of the canvas." msgstr "" -#: js/RhythmBlocks.js:619 -#: js/RhythmActions.js:221 -msgid "An argument of -1 results in a note value of 0." +#: js/blocks/MediaBlocks.js:97 +#.TRANS: left side of the screen +msgid "left (screen)" msgstr "" -#: js/RhythmBlocks.js:661 -msgid "The Dot block extends the duration of a note by 50%." +#: js/blocks/MediaBlocks.js:107 +#: js/blocks/MediaBlocks.js:118 +msgid "The Left block returns the position of the left of the canvas." msgstr "" -#: js/RhythmBlocks.js:663 -msgid "Eg a dotted quarter note will play for 3/8 (1/4 + 1/8) of a beat." +#: js/blocks/MediaBlocks.js:158 +msgid "top (screen)" msgstr "" -#: js/RhythmBlocks.js:765 -#.TRANS: Japanese only: note value block for drum -msgid "note value drum" +#: js/blocks/MediaBlocks.js:168 +#: js/blocks/MediaBlocks.js:179 +msgid "The Top block returns the position of the top of the canvas." msgstr "" -#: js/RhythmBlocks.js:829 -msgid "392 hertz" +#: js/blocks/MediaBlocks.js:219 +msgid "bottom (screen)" msgstr "" -#: js/RhythmBlocks.js:1119 -msgid "The Note block is a container for one or more Pitch blocks." +#: js/blocks/MediaBlocks.js:229 +#: js/blocks/MediaBlocks.js:240 +msgid "The Bottom block returns the position of the bottom of the canvas." msgstr "" -#: js/RhythmBlocks.js:1121 -msgid "The Note block specifies the duration (note value) of its contents." +#: js/blocks/MediaBlocks.js:282 +msgid "width" msgstr "" -#: js/RhythmBlocks.js:1130 -msgid "value2" +#: js/blocks/MediaBlocks.js:291 +msgid "The Width block returns the width of the canvas." msgstr "" -#: js/RhythmBlocks.js:1200 -msgid "define frequency" +#: js/blocks/MediaBlocks.js:325 +msgid "height" msgstr "" -#: js/RhythmBlocks.js:1218 -#: js/temperament.js:650 -#: js/temperament.js:1421 -msgid "octave space" +#: js/blocks/MediaBlocks.js:334 +msgid "The Height block returns the height of the canvas." msgstr "" -#: js/NumberBlocks.js:28 -msgid "The Int block returns an integer." +#: js/blocks/MediaBlocks.js:369 +#.TRANS: stops playback of an audio recording +msgid "stop play" msgstr "" -#: js/NumberBlocks.js:34 -msgid "int" +#: js/blocks/MediaBlocks.js:404 +#.TRANS: Erases the images and text +msgid "erase media" msgstr "" -#: js/NumberBlocks.js:73 -msgid "The Mod block returns the remainder from a division." +#: js/blocks/MediaBlocks.js:409 +msgid "The Erase Media block erases text and images." msgstr "" -#: js/NumberBlocks.js:79 -msgid "mod" +#: js/blocks/MediaBlocks.js:439 +#.TRANS: play an audio recording +msgid "play back" msgstr "" -#: js/NumberBlocks.js:123 -msgid "The Power block calculates a power function." +#: js/blocks/MediaBlocks.js:487 +msgid "speak" msgstr "" -#: js/NumberBlocks.js:178 -msgid "The Sqrt block returns the square root." +#: js/blocks/MediaBlocks.js:495 +msgid "The Speak block outputs to the text-to-speech synthesizer" msgstr "" -#: js/NumberBlocks.js:184 -msgid "sqrt" +#: js/blocks/MediaBlocks.js:546 +msgid "camera" msgstr "" -#: js/NumberBlocks.js:230 -msgid "The Abs block returns the absolute value." +#: js/blocks/MediaBlocks.js:551 +msgid "The Camera block connects a webcam to the Show block." msgstr "" -#: js/NumberBlocks.js:236 -msgid "abs" +#: js/blocks/MediaBlocks.js:574 +msgid "video" msgstr "" -#: js/NumberBlocks.js:277 -msgid "The Distance block returns the distance between two points. For example, between the mouse and the center of the screen." +#: js/blocks/MediaBlocks.js:579 +msgid "The Video block selects video for use with the Show block." msgstr "" -#: js/NumberBlocks.js:283 -#: plugins/rodi.rtp:310 -msgid "distance" +#: js/blocks/MediaBlocks.js:607 +msgid "The Open file block opens a file for use with the Show block." msgstr "" -#: js/NumberBlocks.js:343 -msgid "The Divide block is used to divide." +#: js/blocks/MediaBlocks.js:645 +msgid "stop media" msgstr "" -#: js/NumberBlocks.js:411 -msgid "The Multiply block is used to multiply." +#: js/blocks/MediaBlocks.js:650 +msgid "The Stop media block stops audio or video playback." msgstr "" -#: js/NumberBlocks.js:554 -msgid "The Minus block is used to subtract." +#: js/blocks/MediaBlocks.js:679 +#: js/blocks/PitchBlocks.js:1577 +#: js/widgets/musickeyboard.js:1936 +#: js/widgets/phrasemaker.js:1037 +#.TRANS: a measure of frequency: one cycle per second +msgid "hertz" msgstr "" -#: js/NumberBlocks.js:647 -msgid "The Plus block is used to add." +#: js/blocks/MediaBlocks.js:692 +#: js/blocks/WidgetBlocks.js:182 +#: js/widgets/temperament.js:506 +#: js/widgets/temperament.js:546 +#: js/widgets/temperament.js:610 +#: js/widgets/temperament.js:618 +#: js/widgets/temperament.js:1505 +#: js/widgets/timbre.js:1842 +msgid "frequency" msgstr "" -#: js/NumberBlocks.js:773 -msgid "The One-of block returns one of two choices." +#: js/blocks/MediaBlocks.js:692 +msgid "duration (ms)" msgstr "" -#: js/NumberBlocks.js:780 -#: js/PitchBlocks.js:616 -msgid "one of" +#: js/blocks/MediaBlocks.js:728 +#.TRANS: translate a note into hertz, e.g., A4 -> 440HZ +msgid "note to frequency" msgstr "" -#: js/NumberBlocks.js:782 -msgid "this" +#: js/blocks/MediaBlocks.js:736 +msgid "The To frequency block converts a pitch name and octave to Hertz." msgstr "" -#: js/NumberBlocks.js:782 -msgid "that" +#: js/blocks/MediaBlocks.js:746 +#: js/blocks/PitchBlocks.js:656 +#: js/blocks/PitchBlocks.js:934 +#: js/blocks/PitchBlocks.js:1866 +#.TRANS: name2 is name as in name of pitch (JAPANESE ONLY) +msgid "name2" msgstr "" -#: js/NumberBlocks.js:837 -msgid "The Random block returns a random number." +#: js/blocks/MediaBlocks.js:812 +msgid "The Avatar block is used to change the appearance of the mouse." msgstr "" -#: js/NumberBlocks.js:844 -msgid "random" +#: js/blocks/MediaBlocks.js:819 +msgid "The Avatar block is used to change the appearance of the turtle." msgstr "" -#: js/NumberBlocks.js:846 -msgid "min" +#: js/blocks/MediaBlocks.js:831 +#: js/blocks/MediaBlocks.js:891 +#.TRANS: a media object +msgid "size" msgstr "" -#: js/NumberBlocks.js:846 -msgid "max" +#: js/blocks/MediaBlocks.js:831 +msgid "image" msgstr "" -#: js/NumberBlocks.js:910 -msgid "The Number block holds a number." +#: js/blocks/MediaBlocks.js:880 +msgid "The Show block is used to display text or images on the canvas." msgstr "" -#: js/BoxesBlocks.js:53 -#: js/BoxesBlocks.js:59 -msgid "The Add-to block is used to add to the value stored in a box." +#: js/blocks/MediaBlocks.js:888 +#.TRANS: show1 is show as in display an image or text on the screen. +msgid "show1" msgstr "" -#: js/BoxesBlocks.js:61 -msgid "It can also be used with other blocks such as Color and Pen size." +#: js/blocks/MediaBlocks.js:891 +msgid "obj" msgstr "" -#: js/BoxesBlocks.js:73 -msgid "add" +#: js/blocks/MediaBlocks.js:938 +msgid "The Media block is used to import an image." msgstr "" -#: js/BoxesBlocks.js:75 -#: js/temperament.js:716 -msgid "to" +#: js/blocks/MediaBlocks.js:973 +msgid "The Text block holds a text string." msgstr "" -#: js/BoxesBlocks.js:75 -#: js/BoxesBlocks.js:595 -#: js/HeapBlocks.js:544 -msgid "value1" +#: js/blocks/MeterBlocks.js:34 +#.TRANS: musical meter (time signature), e.g., 4:4 +msgid "current meter" msgstr "" -#: js/BoxesBlocks.js:118 -msgid "Block does not support incrementing." +#: js/blocks/MeterBlocks.js:85 +#.TRANS: number of beats per minute +msgid "beat factor" msgstr "" -#: js/BoxesBlocks.js:152 -msgid "The Add-1-to block adds one to the value stored in a box." +#: js/blocks/MeterBlocks.js:161 +msgid "The Beats per minute block returns the current beats per minute." msgstr "" -#: js/BoxesBlocks.js:163 -msgid "add 1 to" +#: js/blocks/MeterBlocks.js:169 +#: js/widgets/status.js:152 +#.TRANS: number of beats played per minute +msgid "beats per minute2" msgstr "" -#: js/BoxesBlocks.js:211 -msgid "The Subtract-1-from block subtracts one from the value stored in a box." +#: js/blocks/MeterBlocks.js:169 +#: js/blocks/MeterBlocks.js:1056 +#: js/blocks/MeterBlocks.js:1133 +#: js/blocks/MeterBlocks.js:1211 +#.TRANS: sets tempo by defining a beat and beats per minute +msgid "beats per minute" msgstr "" -#: js/BoxesBlocks.js:222 -msgid "subtract 1 from" +#: js/blocks/MeterBlocks.js:233 +#.TRANS: count of current musical measure in meter +msgid "measure count" msgstr "" -#: js/BoxesBlocks.js:270 -#: js/BoxesBlocks.js:387 -msgid "The Box block returns the value stored in a box." +#: js/blocks/MeterBlocks.js:241 +msgid "The Measure count block returns the current measure." msgstr "" -#: js/BoxesBlocks.js:500 -#: js/BoxesBlocks.js:576 -msgid "The Store in block will store a value in a box." +#: js/blocks/MeterBlocks.js:290 +#.TRANS: count of current beat in the meter +msgid "beat count" msgstr "" -#: js/BoxesBlocks.js:652 -msgid "The Box2 block returns the value stored in Box2." +#: js/blocks/MeterBlocks.js:300 +#: js/blocks/MeterBlocks.js:311 +#: js/blocks/MeterBlocks.js:565 +#: js/blocks/MeterBlocks.js:576 +msgid "The Beat count block is the number of the current beat," msgstr "" -#: js/BoxesBlocks.js:703 -msgid "The Store in Box2 block is used to store a value in Box2." +#: js/blocks/MeterBlocks.js:313 +#: js/blocks/MeterBlocks.js:578 +msgid "eg 1, 2, 3, or 4." msgstr "" -#: js/BoxesBlocks.js:715 -msgid "store in box2" +#: js/blocks/MeterBlocks.js:368 +#.TRANS: count the number of notes +msgid "sum note values" msgstr "" -#: js/BoxesBlocks.js:761 -msgid "The Box1 block returns the value stored in Box1." +#: js/blocks/MeterBlocks.js:376 +#: js/blocks/MeterBlocks.js:440 +msgid "The Note counter block can be used to count the number of contained notes." msgstr "" -#: js/BoxesBlocks.js:812 -msgid "The Store in Box1 block is used to store a value in Box1." +#: js/blocks/MeterBlocks.js:432 +#.TRANS: count the number of notes +msgid "note counter" msgstr "" -#: js/BoxesBlocks.js:826 -msgid "store in box1" +#: js/blocks/MeterBlocks.js:496 +#.TRANS: number of whole notes that have been played +msgid "whole notes played" msgstr "" -#: js/HeapBlocks.js:49 -msgid "The Heap block returns the heap." +#: js/blocks/MeterBlocks.js:505 +msgid "The Whole notes played block returns the total number of whole notes played." msgstr "" -#: js/HeapBlocks.js:133 -msgid "show heap" +#: js/blocks/MeterBlocks.js:555 +#: js/turtleactions/DictActions.js:83 +#.TRANS: number of notes that have been played +msgid "notes played" msgstr "" -#: js/HeapBlocks.js:181 -msgid "The Heap-length block returns the length of the heap." +#: js/blocks/MeterBlocks.js:653 +msgid "The No clock block decouples the notes from the master clock." msgstr "" -#: js/HeapBlocks.js:195 -msgid "heap length" +#: js/blocks/MeterBlocks.js:661 +#.TRANS: don't lock notes to master clock +msgid "no clock" msgstr "" -#: js/HeapBlocks.js:254 -msgid "The Heap-empty? block returns true if the heap is empty." +#: js/blocks/MeterBlocks.js:700 +msgid "on weak beat do" msgstr "" -#: js/HeapBlocks.js:268 -#.TRANS: Is the heap empty? -msgid "heap empty?" +#: js/blocks/MeterBlocks.js:705 +msgid "The On-weak-beat block lets you specify actions to take on weak (off) beats." msgstr "" -#: js/HeapBlocks.js:317 -msgid "The Empty-heap block empties the heap." +#: js/blocks/MeterBlocks.js:750 +msgid "on strong beat" msgstr "" -#: js/HeapBlocks.js:327 -#: js/HeapBlocks.js:647 -#.TRANS: empty the heap -msgid "empty heap" +#: js/blocks/MeterBlocks.js:758 +msgid "The On-strong-beat block lets you specify actions to take on specified beats." msgstr "" -#: js/HeapBlocks.js:371 -msgid "The Reverse-heap block reverses the order of the heap." +#: js/blocks/MeterBlocks.js:769 +msgid "beat" msgstr "" -#: js/HeapBlocks.js:384 -#.TRANS: reverse the order of the heap -msgid "reverse heap" +#: js/blocks/MeterBlocks.js:813 +msgid "on every beat do" msgstr "" -#: js/HeapBlocks.js:428 -msgid "The Index-heap block returns a value in the heap at a specified location." +#: js/blocks/MeterBlocks.js:821 +msgid "The On-every-beat block lets you specify actions to take on every beat." msgstr "" -#: js/HeapBlocks.js:443 -#.TRANS: retrieve a value from the heap at index position in the heap -msgid "index heap" +#: js/blocks/MeterBlocks.js:874 +msgid "on every note do" msgstr "" -#: js/HeapBlocks.js:523 -msgid "The Set-heap entry block sets a value in he heap at the specified location." +#: js/blocks/MeterBlocks.js:882 +msgid "The On-every-note block lets you specify actions to take on every note." msgstr "" -#: js/HeapBlocks.js:619 -msgid "The Pop block removes the value at the top of the heap." +#: js/blocks/MeterBlocks.js:928 +#: js/blocks/MeterBlocks.js:999 +#.TRANS: sets tempo by defining a beat and beats per minute +msgid "master beats per minute" msgstr "" -#: js/HeapBlocks.js:633 -#.TRANS: pop a value off the top of the heap -msgid "pop" +#: js/blocks/MeterBlocks.js:952 +#: js/blocks/MeterBlocks.js:1078 +#: js/blocks/MeterBlocks.js:1135 +msgid "bpm" msgstr "" -#: js/HeapBlocks.js:680 -msgid "The Push block adds a value to the top of the heap." +#: js/blocks/MeterBlocks.js:952 +#: js/blocks/MeterBlocks.js:1078 +#: js/blocks/MeterBlocks.js:1135 +msgid "beat value" msgstr "" -#: js/HeapBlocks.js:696 -#.TRANS: push a value onto the top of the heap -msgid "push" +#: js/blocks/MeterBlocks.js:1024 +#: js/blocks/MeterBlocks.js:1167 +#: js/blocks/MeterBlocks.js:1241 +msgid "Beats per minute must be > 30." msgstr "" -#: js/FlowBlocks.js:41 -msgid "The Backward block runs code in reverse order (Musical retrograde)." +#: js/blocks/MeterBlocks.js:1027 +#: js/blocks/MeterBlocks.js:1170 +#: js/blocks/MeterBlocks.js:1244 +msgid "Maximum beats per minute is 1000." msgstr "" -#: js/FlowBlocks.js:48 -msgid "backward" +#: js/blocks/MeterBlocks.js:1068 +msgid "The Beats per minute block sets the number of 1/4 notes per minute." msgstr "" -#: js/FlowBlocks.js:124 -msgid "The Duplicate block will run each block multiple times." +#: js/blocks/MeterBlocks.js:1279 +#.TRANS: anacrusis +msgid "pickup" msgstr "" -#: js/FlowBlocks.js:136 -msgid "duplicate" +#: js/blocks/MeterBlocks.js:1367 +msgid "number of beats" msgstr "" -#: js/FlowBlocks.js:334 -msgid "The Default block is used inside of a Switch to define the default action." +#: js/blocks/NumberBlocks.js:28 +msgid "The Int block returns an integer." msgstr "" -#: js/FlowBlocks.js:342 -msgid "default" +#: js/blocks/NumberBlocks.js:34 +msgid "int" msgstr "" -#: js/FlowBlocks.js:361 -#: js/FlowBlocks.js:418 -msgid "The Case Block must be used inside of a Switch Block." +#: js/blocks/NumberBlocks.js:73 +msgid "The Mod block returns the remainder from a division." msgstr "" -#: js/FlowBlocks.js:389 -msgid "The Case block is used inside of a Switch to define matches." +#: js/blocks/NumberBlocks.js:79 +msgid "mod" msgstr "" -#: js/FlowBlocks.js:397 -msgid "case" +#: js/blocks/NumberBlocks.js:141 +msgid "The Power block calculates a power function." msgstr "" -#: js/FlowBlocks.js:446 -msgid "The Switch block will run the code in the matching Case." +#: js/blocks/NumberBlocks.js:196 +msgid "The Sqrt block returns the square root." msgstr "" -#: js/FlowBlocks.js:454 -msgid "switch" +#: js/blocks/NumberBlocks.js:202 +msgid "sqrt" msgstr "" -#: js/FlowBlocks.js:595 -msgid "The Stop block will stop a loop" +#: js/blocks/NumberBlocks.js:248 +msgid "The Abs block returns the absolute value." msgstr "" -#: js/FlowBlocks.js:597 -msgid "Forever, Repeat, While, or Until." +#: js/blocks/NumberBlocks.js:254 +msgid "abs" msgstr "" -#: js/FlowBlocks.js:604 -#: js/phrasemaker.js:3799 -#: js/musickeyboard.js:629 -#: js/musickeyboard.js:631 -#: js/timbre.js:417 -#: js/timbre.js:419 -#: plugins/rodi.rtp:29 -#: plugins/rodi.rtp:73 -#: plugins/rodi.rtp:413 -msgid "stop" +#: js/blocks/NumberBlocks.js:295 +msgid "The Distance block returns the distance between two points. For example, between the mouse and the center of the screen." msgstr "" -#: js/FlowBlocks.js:653 -msgid "The Waitfor block will wait until the condition is true." +#: js/blocks/NumberBlocks.js:301 +#: plugins/rodi.rtp:310 +msgid "distance" msgstr "" -#: js/FlowBlocks.js:661 -msgid "wait for" +#: js/blocks/NumberBlocks.js:361 +msgid "The Divide block is used to divide." msgstr "" -#: js/FlowBlocks.js:732 -msgid "The Until block will repeat until the condition is true." +#: js/blocks/NumberBlocks.js:441 +msgid "The Multiply block is used to multiply." msgstr "" -#: js/FlowBlocks.js:740 -msgid "until" +#: js/blocks/NumberBlocks.js:612 +msgid "The Minus block is used to subtract." msgstr "" -#: js/FlowBlocks.js:742 -#: js/FlowBlocks.js:822 -msgid "do2" +#: js/blocks/NumberBlocks.js:723 +msgid "The Plus block is used to add." msgstr "" -#: js/FlowBlocks.js:812 -msgid "The While block will repeat while the condition is true." +#: js/blocks/NumberBlocks.js:849 +msgid "The One-of block returns one of two choices." msgstr "" -#: js/FlowBlocks.js:820 -msgid "while" +#: js/blocks/NumberBlocks.js:856 +#: js/blocks/PitchBlocks.js:616 +msgid "one of" msgstr "" -#: js/FlowBlocks.js:903 -#: js/FlowBlocks.js:968 -#: js/FlowBlocks.js:979 -msgid "In this example if the mouse button is pressed a snare drum will play." +#: js/blocks/NumberBlocks.js:858 +msgid "this" msgstr "" -#: js/FlowBlocks.js:925 -#: js/FlowBlocks.js:988 -msgid "if" +#: js/blocks/NumberBlocks.js:858 +msgid "that" msgstr "" -#: js/FlowBlocks.js:927 -#: js/FlowBlocks.js:990 -msgid "then" +#: js/blocks/NumberBlocks.js:913 +msgid "The Random block returns a random number." msgstr "" -#: js/FlowBlocks.js:927 -msgid "else" +#: js/blocks/NumberBlocks.js:920 +msgid "random" msgstr "" -#: js/FlowBlocks.js:1025 -msgid "The Forever block will repeat the contained blocks forever." +#: js/blocks/NumberBlocks.js:922 +msgid "min" msgstr "" -#: js/FlowBlocks.js:1037 -msgid "forever" +#: js/blocks/NumberBlocks.js:922 +msgid "max" msgstr "" -#: js/FlowBlocks.js:1073 -msgid "The Repeat block will repeat the contained blocks." +#: js/blocks/NumberBlocks.js:986 +msgid "The Number block holds a number." msgstr "" -#: js/FlowBlocks.js:1075 -msgid "In this example the note will be played 4 times." +#: js/blocks/OrnamentBlocks.js:32 +msgid "staccato factor" msgstr "" -#: js/FlowBlocks.js:1083 -msgid "repeat" +#: js/blocks/OrnamentBlocks.js:108 +msgid "slur factor" msgstr "" -#: js/FlowBlocks.js:1123 -msgid "duplicate factor" +#: js/blocks/OrnamentBlocks.js:217 +#: js/blocks/OrnamentBlocks.js:309 +#.TRANS: the neighbor refers to a neighboring note, e.g., D is a neighbor of C +msgid "neighbor" msgstr "" -#: js/PitchBlocks.js:39 -#: js/musicutils.js:722 -#: js/musicutils.js:1117 -#: js/synthutils.js:112 -#.TRANS: square wave -msgid "square" +#: js/blocks/OrnamentBlocks.js:293 +msgid "The Neighbor block rapidly switches between neighboring pitches." msgstr "" -#: js/PitchBlocks.js:62 -#: js/ToneBlocks.js:39 -#: js/musicutils.js:723 -#: js/musicutils.js:1118 -#: js/synthutils.js:116 -#.TRANS: triangle wave -msgid "triangle" +#: js/blocks/OrnamentBlocks.js:364 +msgid "glide" msgstr "" -#: js/PitchBlocks.js:85 -#: js/musicutils.js:721 -#: js/musicutils.js:1116 -#: js/synthutils.js:110 -#.TRANS: sine wave -msgid "sine" +#: js/blocks/OrnamentBlocks.js:479 +#: js/blocks/OrnamentBlocks.js:643 +msgid "slur" msgstr "" -#: js/PitchBlocks.js:108 -#: js/musicutils.js:724 -#: js/musicutils.js:1119 -#: js/synthutils.js:114 -#.TRANS: sawtooth wave -msgid "sawtooth" +#: js/blocks/OrnamentBlocks.js:558 +#: js/blocks/OrnamentBlocks.js:710 +#.TRANS: play each note sharply detached from the others +msgid "staccato" msgstr "" -#: js/PitchBlocks.js:141 -#.TRANS: musical transposition (adjustment of pitch up or down) -msgid "transposition" +#: js/blocks/RhythmBlocks.js:182 +#: js/blocks/RhythmBlocks.js:1086 +#: js/blocks/RhythmBlocks.js:1162 +msgid "Note value must be greater than 0." msgstr "" -#: js/PitchBlocks.js:168 -#.TRANS: step down one note in current musical scale -msgid "scalar step down" +#: js/blocks/RhythmBlocks.js:215 +#: js/blocks/RhythmBlocks.js:278 +#: js/blocks/RhythmBlocks.js:350 +#.TRANS: swing is a rhythmic variation that emphasises the offbeat +msgid "swing" msgstr "" -#: js/PitchBlocks.js:172 -msgid "The Scalar step down block returns the number of semi-tones down to the previous note in the current key and mode." +#: js/blocks/RhythmBlocks.js:355 +#.TRANS: the amount to shift to the offbeat note +msgid "swing value" msgstr "" -#: js/PitchBlocks.js:190 -#.TRANS: step up one note in current musical scale -msgid "scalar step up" +#: js/blocks/RhythmBlocks.js:419 +msgid "The Skip notes block will cause notes to be skipped." msgstr "" -#: js/PitchBlocks.js:194 -msgid "The Scalar step up block returns the number of semi-tones up to the next note in the current key and mode." +#: js/blocks/RhythmBlocks.js:427 +#.TRANS: substitute rests on notes being skipped +msgid "skip notes" msgstr "" -#: js/PitchBlocks.js:212 -#.TRANS: the change measured in half-steps between the current pitch and the previous pitch -msgid "change in pitch" +#: js/blocks/RhythmBlocks.js:489 +#.TRANS: speed up note duration by some factor, e.g. convert 1/4 to 1/8 notes by using a factor of 2 +msgid "multiply note value" msgstr "" -#: js/PitchBlocks.js:216 -msgid "The Change in pitch block is the difference (in half steps) between the current pitch being played and the previous pitch played." +#: js/blocks/RhythmBlocks.js:542 +msgid "The Tie block works on pairs of notes, combining them into one note." msgstr "" -#: js/PitchBlocks.js:243 -#.TRANS: the change measured in scale-steps between the current pitch and the previous pitch -msgid "scalar change in pitch" +#: js/blocks/RhythmBlocks.js:550 +#.TRANS: tie notes together into one longer note +msgid "tie" msgstr "" -#: js/PitchBlocks.js:250 -#: js/PitchBlocks.js:432 -#: js/PitchBlocks.js:1629 -#: js/DictActions.js:89 -#: js/temperament.js:477 -#: js/temperament.js:481 -#: js/temperament.js:714 -#.TRANS: convert current note to piano key (1-88) -#.TRANS: a mapping of pitch to the 88 piano keys -msgid "pitch number" +#: js/blocks/RhythmBlocks.js:591 +#: js/blocks/RhythmBlocks.js:671 +#.TRANS: a dotted note is played for 1.5x its value, e.g., 1/8. --> 3/16 +msgid "dot" msgstr "" -#: js/PitchBlocks.js:256 -msgid "The Pitch number block is the value of the pitch of the note currently being played." +#: js/blocks/RhythmBlocks.js:619 +#: js/turtleactions/RhythmActions.js:221 +msgid "An argument of -1 results in a note value of 0." msgstr "" -#: js/PitchBlocks.js:329 -#: js/PitchBlocks.js:433 -#.TRANS: the current pitch expressed in Hertz -msgid "pitch in hertz" +#: js/blocks/RhythmBlocks.js:661 +msgid "The Dot block extends the duration of a note by 50%." msgstr "" -#: js/PitchBlocks.js:334 -msgid "The Pitch in Hertz block is the value in Hertz of the pitch of the note currently being played." +#: js/blocks/RhythmBlocks.js:663 +msgid "Eg a dotted quarter note will play for 3/8 (1/4 + 1/8) of a beat." msgstr "" -#: js/PitchBlocks.js:367 -#: js/DictActions.js:87 -msgid "current pitch" +#: js/blocks/RhythmBlocks.js:765 +#.TRANS: Japanese only: note value block for drum +msgid "note value drum" msgstr "" -#: js/PitchBlocks.js:373 -msgid "The Current Pitch block is used with the Pitch Converter block. In the example above, current pitch, sol 4, is displayed as 392 hertz." +#: js/blocks/RhythmBlocks.js:829 +msgid "392 hertz" msgstr "" -#: js/PitchBlocks.js:410 -msgid "This block converts the pitch value of the last note played into different formats such as hertz, letter name, pitch number, et al." +#: js/blocks/RhythmBlocks.js:1119 +msgid "The Note block is a container for one or more Pitch blocks." msgstr "" -#: js/PitchBlocks.js:434 -msgid "alphabet" +#: js/blocks/RhythmBlocks.js:1121 +msgid "The Note block specifies the duration (note value) of its contents." msgstr "" -#: js/PitchBlocks.js:436 -#.TRANS: Translate as "alphabet class" -msgid "letter class" +#: js/blocks/RhythmBlocks.js:1128 +#: js/blocks/PitchBlocks.js:974 +#: js/blocks/PitchBlocks.js:1007 +#: js/blocks/ProgramBlocks.js:1186 +#: js/blocks/ProgramBlocks.js:1227 +#: js/widgets/status.js:190 +#: js/widgets/temperament.js:464 +#: js/widgets/temperament.js:486 +#: js/widgets/temperament.js:496 +#: js/widgets/temperament.js:617 +#: plugins/rodi.rtp:192 +#.TRANS: a musical note consisting of pitch and duration +msgid "note" msgstr "" -#: js/PitchBlocks.js:437 -msgid "solfege class" +#: js/blocks/RhythmBlocks.js:1130 +msgid "value2" msgstr "" -#: js/PitchBlocks.js:438 -msgid "staff y" +#: js/blocks/RhythmBlocks.js:1200 +msgid "define frequency" msgstr "" -#: js/PitchBlocks.js:439 -msgid "solfege syllable" +#: js/blocks/RhythmBlocks.js:1218 +#: js/widgets/temperament.js:787 +#: js/widgets/temperament.js:1587 +msgid "octave space" msgstr "" -#: js/PitchBlocks.js:440 -msgid "pitch class" +#: js/blocks/SensorsBlocks.js:36 +msgid "The Input block prompts for keyboard input." msgstr "" -#: js/PitchBlocks.js:441 -msgid "scalar class" +#: js/blocks/SensorsBlocks.js:46 +msgid "input" msgstr "" -#: js/PitchBlocks.js:443 -msgid "nth degree" +#: js/blocks/SensorsBlocks.js:64 +msgid "Input a value" msgstr "" -#: js/PitchBlocks.js:444 -msgid "pitch to shade" +#: js/blocks/SensorsBlocks.js:126 +msgid "input value" msgstr "" -#: js/PitchBlocks.js:445 -msgid "pitch to color" +#: js/blocks/SensorsBlocks.js:131 +msgid "The Input-value block stores the input." msgstr "" -#: js/PitchBlocks.js:629 -#: js/musickeyboard.js:565 -#.TRANS: MIDI is a technical standard for electronic music -msgid "MIDI" +#: js/blocks/SensorsBlocks.js:238 +msgid "loudness" msgstr "" -#: js/PitchBlocks.js:642 -#.TRANS: set an offset associated with the numeric piano keyboard mapping -msgid "set pitch number offset" +#: js/blocks/SensorsBlocks.js:245 +msgid "The Loudness block returns the volume detected by the microphone." msgstr "" -#: js/PitchBlocks.js:645 -msgid "The Set pitch number offset block is used to set the offset for mapping pitch numbers to pitch and octave." +#: js/blocks/SensorsBlocks.js:300 +msgid "click" msgstr "" -#: js/PitchBlocks.js:679 -#.TRANS: convert piano key number (1-88) to pitch -msgid "number to pitch" +#: js/blocks/SensorsBlocks.js:306 +msgid "The Click block triggers an event if a mouse has been clicked." msgstr "" -#: js/PitchBlocks.js:682 -msgid "The Number to pitch block will convert a pitch number to a pich name." +#: js/blocks/SensorsBlocks.js:313 +msgid "The Click block triggers an event if a turtle has been clicked." msgstr "" -#: js/PitchBlocks.js:715 -#.TRANS: convert piano key number (1-88) to octave -msgid "number to octave" +#: js/blocks/SensorsBlocks.js:342 +msgid "cursor over" msgstr "" -#: js/PitchBlocks.js:717 -msgid "The Number to octave block will convert a pitch number to an octave." +#: js/blocks/SensorsBlocks.js:387 +msgid "cursor out" msgstr "" -#: js/PitchBlocks.js:726 -msgid "y to pitch" +#: js/blocks/SensorsBlocks.js:433 +msgid "cursor button down" msgstr "" -#: js/PitchBlocks.js:729 -msgid "Y to pitch block will convert a staff y position to corresponding pitch notation." +#: js/blocks/SensorsBlocks.js:477 +msgid "cursor button up" msgstr "" -#: js/PitchBlocks.js:841 -msgid "accidental selector" +#: js/blocks/SensorsBlocks.js:521 +#: js/blocks/PenBlocks.js:48 +#: plugins/rodi.rtp:219 +msgid "blue" msgstr "" -#: js/PitchBlocks.js:844 -msgid "The Accidental selector block is used to choose between double-sharp, sharp, natural, flat, and double-flat." +#: js/blocks/SensorsBlocks.js:577 +#: js/blocks/PenBlocks.js:64 +#: plugins/rodi.rtp:218 +msgid "green" msgstr "" -#: js/PitchBlocks.js:858 -msgid "Pitch can be specified in terms of ni dha pa ma ga re sa." +#: js/blocks/SensorsBlocks.js:633 +#: js/blocks/PenBlocks.js:112 +#: plugins/rodi.rtp:217 +msgid "red" msgstr "" -#: js/PitchBlocks.js:872 -msgid "Pitch can be specified in terms of C D E F G A B." +#: js/blocks/SensorsBlocks.js:638 +msgid "The Get red block returns the red component of the pixel under the mouse." msgstr "" -#: js/PitchBlocks.js:883 -msgid "solfege" +#: js/blocks/SensorsBlocks.js:644 +msgid "The Get red block returns the red component of the pixel under the turtle." msgstr "" -#: js/PitchBlocks.js:886 -msgid "Pitch can be specified in terms of do re mi fa sol la ti." +#: js/blocks/SensorsBlocks.js:685 +#: plugins/rodi.rtp:216 +msgid "pixel color" msgstr "" -#: js/PitchBlocks.js:920 -msgid "The Invert block rotates any contained notes around a target note." +#: js/blocks/SensorsBlocks.js:690 +msgid "The Get pixel block returns the color of the pixel under the mouse." msgstr "" -#: js/PitchBlocks.js:927 -#.TRANS: pitch inversion rotates a pitch around another pitch -msgid "invert" +#: js/blocks/SensorsBlocks.js:696 +msgid "The Get pixel block returns the color of the pixel under the turtle." msgstr "" -#: js/PitchBlocks.js:929 -#: js/PitchBlocks.js:935 -#: js/PitchActions.js:727 -#: js/musicutils.js:726 -#: js/musicutils.js:902 -#.TRANS: invert based on even or odd number or musical scale -#.TRANS: even numbers -msgid "even" +#: js/blocks/SensorsBlocks.js:758 +msgid "time" msgstr "" -#: js/PitchBlocks.js:935 -#: js/PitchActions.js:729 -#: js/musicutils.js:728 -#: js/musicutils.js:903 -#.TRANS: odd numbers -msgid "odd" +#: js/blocks/SensorsBlocks.js:804 +msgid "cursor y" msgstr "" -#: js/PitchBlocks.js:935 -#: js/PitchActions.js:731 -#: js/musicutils.js:729 -#: js/musicutils.js:904 -msgid "scalar" +#: js/blocks/SensorsBlocks.js:809 +msgid "The Cursor Y block returns the vertical position of the mouse." msgstr "" -#: js/PitchBlocks.js:966 -#.TRANS: pitch inversion rotates a pitch around another pitch (odd number) -msgid "invert (odd)" +#: js/blocks/SensorsBlocks.js:845 +msgid "cursor x" msgstr "" -#: js/PitchBlocks.js:999 -#.TRANS: pitch inversion rotates a pitch around another pitch (even number) -msgid "invert (even)" +#: js/blocks/SensorsBlocks.js:850 +msgid "The Cursor X block returns the horizontal position of the mouse." msgstr "" -#: js/PitchBlocks.js:1020 -#.TRANS: register is the octave of the current pitch -msgid "register" +#: js/blocks/SensorsBlocks.js:886 +msgid "mouse button" msgstr "" -#: js/PitchBlocks.js:1024 -msgid "The Register block provides an easy way to modify the register (octave) of the notes that follow it." +#: js/blocks/SensorsBlocks.js:888 +msgid "The Mouse-button block returns True if the mouse button is pressed." msgstr "" -#: js/PitchBlocks.js:1074 -msgid "The Semi-tone transposition block will shift the pitches contained inside Note blocks up (or down) by half steps." +#: js/blocks/SensorsBlocks.js:934 +msgid "to ASCII" msgstr "" -#: js/PitchBlocks.js:1076 -msgid "In the example shown above, sol is shifted up to sol#." +#: js/blocks/SensorsBlocks.js:938 +msgid "The To ASCII block converts numbers to letters." msgstr "" -#: js/PitchBlocks.js:1082 -#.TRANS: adjust the amount of shift (up or down) of a pitch -msgid "semi-tone transpose" +#: js/blocks/SensorsBlocks.js:1005 +msgid "The Keyboard block returns computer keyboard input." msgstr "" -#: js/PitchBlocks.js:1115 -msgid "The Transpose by Ratio block will shift the pitches contained inside Note blocks up (or down) by a ratio" +#: js/blocks/RhythmBlockPaletteBlocks.js:50 +#: js/blocks/RhythmBlockPaletteBlocks.js:233 +#.TRANS: rhythm block +#.TRANS: translate "rhythm1" as rhythm +msgid "rhythm1" msgstr "" -#: js/PitchBlocks.js:1121 -#.TRANS: adjust the amount of shift (up or down) of a pitch -msgid "transpose by ratio" +#: js/blocks/RhythmBlockPaletteBlocks.js:70 +#: js/blocks/RhythmBlockPaletteBlocks.js:252 +#: js/blocks/RhythmBlockPaletteBlocks.js:485 +#: js/blocks/RhythmBlockPaletteBlocks.js:554 +#: js/blocks/RhythmBlockPaletteBlocks.js:875 +msgid "number of notes" msgstr "" -#: js/PitchBlocks.js:1204 -#.TRANS: down sixth means the note is five scale degrees below current note -msgid "down sixth" +#: js/blocks/RhythmBlockPaletteBlocks.js:126 +msgid "polyphonic rhythm" msgstr "" -#: js/PitchBlocks.js:1223 -#.TRANS: down third means the note is two scale degrees below current note -msgid "down third" +#: js/blocks/RhythmBlockPaletteBlocks.js:219 +msgid "The Rhythm block is used to generate rhythm patterns." msgstr "" -#: js/PitchBlocks.js:1242 -#.TRANS: seventh means the note is the six scale degrees above current note -msgid "seventh" +#: js/blocks/RhythmBlockPaletteBlocks.js:280 +msgid "1/64 note" msgstr "" -#: js/PitchBlocks.js:1261 -#.TRANS: sixth means the note is the five scale degrees above current note -msgid "sixth" +#: js/blocks/RhythmBlockPaletteBlocks.js:304 +msgid "1/32 note" msgstr "" -#: js/PitchBlocks.js:1280 -#.TRANS: fifth means the note is the four scale degrees above current note -msgid "fifth" +#: js/blocks/RhythmBlockPaletteBlocks.js:332 +msgid "1/16 note" msgstr "" -#: js/PitchBlocks.js:1300 -#.TRANS: fourth means the note is three scale degrees above current note -msgid "fourth" +#: js/blocks/RhythmBlockPaletteBlocks.js:360 +msgid "eighth note" msgstr "" -#: js/PitchBlocks.js:1319 -#.TRANS: third means the note is two scale degrees above current note -msgid "third" +#: js/blocks/RhythmBlockPaletteBlocks.js:388 +msgid "quarter note" msgstr "" -#: js/PitchBlocks.js:1338 -#.TRANS: second means the note is one scale degree above current note -msgid "second" +#: js/blocks/RhythmBlockPaletteBlocks.js:416 +msgid "half note" msgstr "" -#: js/PitchBlocks.js:1379 -msgid "The Scalar transposition block will shift the pitches contained inside Note blocks up (or down) the scale." +#: js/blocks/RhythmBlockPaletteBlocks.js:444 +msgid "whole note" msgstr "" -#: js/PitchBlocks.js:1381 -msgid "In the example shown above, sol is shifted up to la." +#: js/blocks/RhythmBlockPaletteBlocks.js:482 +#: js/blocks/RhythmBlockPaletteBlocks.js:551 +#: js/blocks/RhythmBlockPaletteBlocks.js:602 +#.TRANS: A tuplet is a note value divided into irregular time values. +msgid "tuplet" msgstr "" -#: js/PitchBlocks.js:1388 -#.TRANS: adjust the amount of shift (up or down) of a pitch by musical scale (scalar) steps -msgid "scalar transpose" +#: js/blocks/RhythmBlockPaletteBlocks.js:768 +msgid "septuplet" msgstr "" -#: js/PitchBlocks.js:1423 -msgid "The Accidental block is used to create sharps and flats" +#: js/blocks/RhythmBlockPaletteBlocks.js:796 +msgid "quintuplet" msgstr "" -#: js/PitchBlocks.js:1430 -#.TRANS: An accidental is a modification to a pitch, e.g., sharp or flat. -msgid "accidental override" +#: js/blocks/RhythmBlockPaletteBlocks.js:824 +msgid "triplet" msgstr "" -#: js/PitchBlocks.js:1543 -msgid "The Hertz block (in combination with a Number block) will play a sound at the specified frequency." +#: js/blocks/RhythmBlockPaletteBlocks.js:851 +msgid "simple tuplet" msgstr "" -#: js/PitchBlocks.js:1633 -msgid "The Pitch Number block will play a pitch associated by its number, e.g. 0 for C and 7 for G." +#: js/blocks/RhythmBlockPaletteBlocks.js:861 +msgid "Tuplets are a collection of notes that get scaled to a specific duration." msgstr "" -#: js/PitchBlocks.js:1665 -#: js/PitchBlocks.js:1707 -#.TRANS: a numeric mapping of the notes in an octave based on the musical mode -#.TRANS: a numeric mapping of the notes in an octave based on the musical mode -msgid "nth modal pitch" +#: js/blocks/DrumBlocks.js:59 +msgid "The Noise name block is used to select a noise synthesizer." msgstr "" -#: js/PitchBlocks.js:1668 -msgid "n^th Modal Pitch takes the pattern of pitches in semitones for a mode and makes each point a degree of the mode," +#: js/blocks/DrumBlocks.js:102 +msgid "The Drum name block is used to select a drum." msgstr "" -#: js/PitchBlocks.js:1670 -msgid "starting from 1 and regardless of tonal framework (i.e. not always 8 notes in the octave)" +#: js/blocks/DrumBlocks.js:146 +msgid "The Effects name block is used to select a sound effect." msgstr "" -#: js/PitchBlocks.js:1711 -msgid "N^th Modal Pitch takes a number as an input as the n^th degree for the given mode. 0 is the first position, 1 is the second, -1 is the note before the first etc." +#: js/blocks/DrumBlocks.js:163 +msgid "noise" msgstr "" -#: js/PitchBlocks.js:1713 -msgid "The pitches change according to the mode specified without any need for respellings." +#: js/blocks/DrumBlocks.js:177 +msgid "The Play noise block will generate white, pink, or brown noise." msgstr "" -#: js/PitchBlocks.js:1752 -msgid "Scale Degree is a common convention in music. Scale Degree offers seven possible positions in the scale (1-7) and can be modified via accidentals." +#: js/blocks/DrumBlocks.js:317 +msgid "Replace every instance of a pitch with a drum sound." msgstr "" -#: js/PitchBlocks.js:1754 -msgid "Scale Degree 1 is always the first pitch in a given scale, regardless of octave." +#: js/blocks/DrumBlocks.js:328 +#.TRANS: map a pitch to a drum sound +msgid "map pitch to drum" msgstr "" -#: js/PitchBlocks.js:1776 -#.TRANS: step some number of notes in current musical scale -msgid "scalar step" +#: js/blocks/DrumBlocks.js:395 +msgid "In the example above, a kick drum sound will be played instead of sol." msgstr "" -#: js/PitchBlocks.js:1781 -msgid "The Scalar Step block (in combination with a Number block) will play the next pitch in a scale," +#: js/blocks/DrumBlocks.js:407 +#.TRANS: set the current drum sound for playback +msgid "set drum" msgstr "" -#: js/PitchBlocks.js:1783 -msgid "eg if the last note played was sol, Scalar Step 1 will play la." +#: js/blocks/DrumBlocks.js:451 +msgid "sound effect" msgstr "" -#: js/PitchBlocks.js:1818 -msgid "The Pitch block specifies the pitch name and octave of a note that together determine the frequency of the note." +#: js/blocks/DrumBlocks.js:489 +msgid "You can use multiple Drum blocks within a Note block." msgstr "" -#: js/GraphicsBlocks.js:46 -#: js/DictActions.js:77 -#: js/DictActions.js:155 -#: js/DictActions.js:189 +#: js/blocks/GraphicsBlocks.js:46 +#: js/turtleactions/DictActions.js:77 +#: js/turtleactions/DictActions.js:144 +#: js/turtleactions/DictActions.js:173 msgid "heading" msgstr "" -#: js/GraphicsBlocks.js:56 +#: js/blocks/GraphicsBlocks.js:56 msgid "The Heading block returns the orientation of the mouse." msgstr "" -#: js/GraphicsBlocks.js:62 +#: js/blocks/GraphicsBlocks.js:62 msgid "The Heading block returns the orientation of the turtle." msgstr "" -#: js/GraphicsBlocks.js:133 +#: js/blocks/GraphicsBlocks.js:133 msgid "The Y block returns the vertical position of the mouse." msgstr "" -#: js/GraphicsBlocks.js:140 +#: js/blocks/GraphicsBlocks.js:140 msgid "The Y block returns the vertical position of the turtle." msgstr "" -#: js/GraphicsBlocks.js:149 +#: js/blocks/GraphicsBlocks.js:149 msgid "y3" msgstr "" -#: js/GraphicsBlocks.js:219 +#: js/blocks/GraphicsBlocks.js:219 msgid "The X block returns the horizontal position of the mouse." msgstr "" -#: js/GraphicsBlocks.js:226 +#: js/blocks/GraphicsBlocks.js:226 msgid "The X block returns the horizontal position of the turtle." msgstr "" -#: js/GraphicsBlocks.js:235 +#: js/blocks/GraphicsBlocks.js:235 msgid "x3" msgstr "" -#: js/GraphicsBlocks.js:295 +#: js/blocks/GraphicsBlocks.js:295 msgid "scroll xy" msgstr "" -#: js/GraphicsBlocks.js:303 +#: js/blocks/GraphicsBlocks.js:303 msgid "The Scroll XY block moves the canvas." msgstr "" -#: js/GraphicsBlocks.js:313 +#: js/blocks/GraphicsBlocks.js:313 msgid "x2" msgstr "" -#: js/GraphicsBlocks.js:313 +#: js/blocks/GraphicsBlocks.js:313 msgid "y2" msgstr "" -#: js/GraphicsBlocks.js:373 -#: js/temperament.js:213 -#: js/temperament.js:241 +#: js/blocks/GraphicsBlocks.js:373 +#: js/widgets/temperament.js:319 +#: js/widgets/temperament.js:347 msgid "clear" msgstr "" -#: js/GraphicsBlocks.js:426 +#: js/blocks/GraphicsBlocks.js:426 msgid "The Control-point 2 block sets the second control point for the Bezier curve." msgstr "" -#: js/GraphicsBlocks.js:433 +#: js/blocks/GraphicsBlocks.js:433 msgid "control point 2" msgstr "" -#: js/GraphicsBlocks.js:436 -#: js/GraphicsBlocks.js:487 -#: js/GraphicsBlocks.js:534 -#: js/GraphicsBlocks.js:750 +#: js/blocks/GraphicsBlocks.js:436 +#: js/blocks/GraphicsBlocks.js:487 +#: js/blocks/GraphicsBlocks.js:534 +#: js/blocks/GraphicsBlocks.js:750 msgid "x1" msgstr "" -#: js/GraphicsBlocks.js:436 -#: js/GraphicsBlocks.js:487 -#: js/GraphicsBlocks.js:534 -#: js/GraphicsBlocks.js:750 +#: js/blocks/GraphicsBlocks.js:436 +#: js/blocks/GraphicsBlocks.js:487 +#: js/blocks/GraphicsBlocks.js:534 +#: js/blocks/GraphicsBlocks.js:750 msgid "y1" msgstr "" -#: js/GraphicsBlocks.js:477 +#: js/blocks/GraphicsBlocks.js:477 msgid "The Control-point 1 block sets the first control point for the Bezier curve." msgstr "" -#: js/GraphicsBlocks.js:484 +#: js/blocks/GraphicsBlocks.js:484 msgid "control point 1" msgstr "" -#: js/GraphicsBlocks.js:527 +#: js/blocks/GraphicsBlocks.js:527 msgid "The Bezier block draws a Bezier curve." msgstr "" -#: js/GraphicsBlocks.js:531 +#: js/blocks/GraphicsBlocks.js:531 msgid "bezier" msgstr "" -#: js/GraphicsBlocks.js:592 +#: js/blocks/GraphicsBlocks.js:592 msgid "The Arc block moves the turtle in an arc." msgstr "" -#: js/GraphicsBlocks.js:600 +#: js/blocks/GraphicsBlocks.js:600 msgid "arc" msgstr "" -#: js/GraphicsBlocks.js:603 +#: js/blocks/GraphicsBlocks.js:603 msgid "angle" msgstr "" -#: js/GraphicsBlocks.js:603 +#: js/blocks/GraphicsBlocks.js:603 msgid "radius" msgstr "" -#: js/GraphicsBlocks.js:620 -#: js/GraphicsBlocks.js:767 -#: js/GraphicsBlocks.js:1010 -#: js/GraphicsBlocks.js:1093 +#: js/blocks/GraphicsBlocks.js:620 +#: js/blocks/GraphicsBlocks.js:767 +#: js/blocks/GraphicsBlocks.js:1010 +#: js/blocks/GraphicsBlocks.js:1093 msgid "Value must be within -5000 to 5000 when Wrap Mode is off." msgstr "" -#: js/GraphicsBlocks.js:622 -#: js/GraphicsBlocks.js:769 -#: js/GraphicsBlocks.js:1012 -#: js/GraphicsBlocks.js:1095 +#: js/blocks/GraphicsBlocks.js:622 +#: js/blocks/GraphicsBlocks.js:769 +#: js/blocks/GraphicsBlocks.js:1012 +#: js/blocks/GraphicsBlocks.js:1095 msgid "Value must be within -20000 to 20000 when Wrap Mode is on." msgstr "" -#: js/GraphicsBlocks.js:660 +#: js/blocks/GraphicsBlocks.js:660 msgid "set heading" msgstr "" -#: js/GraphicsBlocks.js:673 +#: js/blocks/GraphicsBlocks.js:673 msgid "The Set heading block sets the heading of the turtle." msgstr "" -#: js/GraphicsBlocks.js:733 +#: js/blocks/GraphicsBlocks.js:733 msgid "The Set XY block moves the mouse to a specific position on the screen." msgstr "" -#: js/GraphicsBlocks.js:739 +#: js/blocks/GraphicsBlocks.js:739 msgid "The Set XY block moves the turtle to a specific position on the screen." msgstr "" -#: js/GraphicsBlocks.js:747 +#: js/blocks/GraphicsBlocks.js:747 msgid "set xy" msgstr "" -#: js/GraphicsBlocks.js:819 +#: js/blocks/GraphicsBlocks.js:819 msgid "The Right block turns the mouse to the right." msgstr "" -#: js/GraphicsBlocks.js:826 +#: js/blocks/GraphicsBlocks.js:826 msgid "The Right block turns the turtle to the right." msgstr "" -#: js/GraphicsBlocks.js:835 +#: js/blocks/GraphicsBlocks.js:835 msgid "right1" msgstr "" -#: js/GraphicsBlocks.js:835 +#: js/blocks/GraphicsBlocks.js:835 #: plugins/rodi.rtp:77 #: plugins/rodi.rtp:340 #: plugins/rodi.rtp:375 msgid "right" msgstr "" -#: js/GraphicsBlocks.js:899 +#: js/blocks/GraphicsBlocks.js:899 msgid "The Left block turns the mouse to the left." msgstr "" -#: js/GraphicsBlocks.js:906 +#: js/blocks/GraphicsBlocks.js:906 msgid "The Left block turns the turtle to the left." msgstr "" -#: js/GraphicsBlocks.js:915 +#: js/blocks/GraphicsBlocks.js:915 msgid "left1" msgstr "" -#: js/GraphicsBlocks.js:915 +#: js/blocks/GraphicsBlocks.js:915 #: plugins/rodi.rtp:79 #: plugins/rodi.rtp:339 #: plugins/rodi.rtp:362 msgid "left" msgstr "" -#: js/GraphicsBlocks.js:967 -#: js/temperament.js:734 -#: js/temperament.js:933 +#: js/blocks/GraphicsBlocks.js:967 +#: js/widgets/temperament.js:875 +#: js/widgets/temperament.js:1078 #: plugins/rodi.rtp:69 #: plugins/rodi.rtp:387 msgid "back" msgstr "" -#: js/GraphicsBlocks.js:976 +#: js/blocks/GraphicsBlocks.js:976 msgid "The Back block moves the mouse backward." msgstr "" -#: js/GraphicsBlocks.js:983 +#: js/blocks/GraphicsBlocks.js:983 msgid "The Back block moves the turtle backward." msgstr "" -#: js/GraphicsBlocks.js:1050 +#: js/blocks/GraphicsBlocks.js:1050 #: plugins/rodi.rtp:71 #: plugins/rodi.rtp:400 msgid "forward" msgstr "" -#: js/GraphicsBlocks.js:1059 +#: js/blocks/GraphicsBlocks.js:1059 msgid "The Forward block moves the mouse forward." msgstr "" -#: js/GraphicsBlocks.js:1066 +#: js/blocks/GraphicsBlocks.js:1066 msgid "The Forward block moves the turtle forward." msgstr "" -#: js/GraphicsBlocks.js:1154 -#: js/GraphicsBlocks.js:1172 +#: js/blocks/GraphicsBlocks.js:1154 +#: js/blocks/GraphicsBlocks.js:1172 msgid "wrap" msgstr "" -#: js/OrnamentBlocks.js:32 -msgid "staccato factor" -msgstr "" - -#: js/OrnamentBlocks.js:108 -msgid "slur factor" -msgstr "" - -#: js/OrnamentBlocks.js:217 -#: js/OrnamentBlocks.js:309 -#.TRANS: the neighbor refers to a neighboring note, e.g., D is a neighbor of C -msgid "neighbor" -msgstr "" - -#: js/OrnamentBlocks.js:293 -msgid "The Neighbor block rapidly switches between neighboring pitches." -msgstr "" - -#: js/OrnamentBlocks.js:364 -msgid "glide" -msgstr "" - -#: js/OrnamentBlocks.js:479 -#: js/OrnamentBlocks.js:643 -msgid "slur" -msgstr "" - -#: js/OrnamentBlocks.js:558 -#: js/OrnamentBlocks.js:710 -#.TRANS: play each note sharply detached from the others -msgid "staccato" -msgstr "" - -#: js/PenBlocks.js:24 +#: js/blocks/PenBlocks.js:30 msgid "purple" msgstr "" -#: js/PenBlocks.js:37 -#: js/SensorsBlocks.js:521 -#: plugins/rodi.rtp:219 -msgid "blue" -msgstr "" - -#: js/PenBlocks.js:50 -#: js/SensorsBlocks.js:577 -#: plugins/rodi.rtp:218 -msgid "green" -msgstr "" - -#: js/PenBlocks.js:63 +#: js/blocks/PenBlocks.js:80 msgid "yellow" msgstr "" -#: js/PenBlocks.js:76 +#: js/blocks/PenBlocks.js:96 #: plugins/nutrition.rtp:164 msgid "orange" msgstr "" -#: js/PenBlocks.js:89 -#: js/SensorsBlocks.js:633 -#: plugins/rodi.rtp:217 -msgid "red" -msgstr "" - -#: js/PenBlocks.js:102 +#: js/blocks/PenBlocks.js:128 msgid "white" msgstr "" -#: js/PenBlocks.js:115 +#: js/blocks/PenBlocks.js:144 msgid "black" msgstr "" -#: js/PenBlocks.js:128 +#: js/blocks/PenBlocks.js:163 msgid "begin fill" msgstr "" -#: js/PenBlocks.js:143 +#: js/blocks/PenBlocks.js:190 msgid "end fill" msgstr "" -#: js/PenBlocks.js:159 -#: js/PenBlocks.js:386 +#: js/blocks/PenBlocks.js:212 +#: js/blocks/PenBlocks.js:560 #.TRANS: set the background color msgid "background" msgstr "" -#: js/PenBlocks.js:206 -#: js/DictActions.js:71 -#: js/DictActions.js:149 -#: js/DictActions.js:186 +#: js/blocks/PenBlocks.js:274 +#: js/turtleactions/DictActions.js:71 +#: js/turtleactions/DictActions.js:138 +#: js/turtleactions/DictActions.js:170 msgid "grey" msgstr "" -#: js/PenBlocks.js:210 +#: js/blocks/PenBlocks.js:282 msgid "The Grey block returns the current pen grey value." msgstr "" -#: js/PenBlocks.js:243 -#: js/DictActions.js:69 -#: js/DictActions.js:147 -#: js/DictActions.js:185 +#: js/blocks/PenBlocks.js:340 +#: js/turtleactions/DictActions.js:69 +#: js/turtleactions/DictActions.js:136 +#: js/turtleactions/DictActions.js:169 msgid "shade" msgstr "" -#: js/PenBlocks.js:247 +#: js/blocks/PenBlocks.js:347 msgid "The Shade block returns the current pen shade value." msgstr "" -#: js/PenBlocks.js:280 -#: js/DictActions.js:67 -#: js/DictActions.js:145 -#: js/DictActions.js:184 +#: js/blocks/PenBlocks.js:405 +#: js/turtleactions/DictActions.js:67 +#: js/turtleactions/DictActions.js:134 +#: js/turtleactions/DictActions.js:168 msgid "color" msgstr "" -#: js/PenBlocks.js:285 +#: js/blocks/PenBlocks.js:415 msgid "The Color block returns the current pen color." msgstr "" -#: js/PenBlocks.js:318 -#: js/DictActions.js:73 -#: js/DictActions.js:151 -#: js/DictActions.js:187 +#: js/blocks/PenBlocks.js:470 +#: js/turtleactions/DictActions.js:73 +#: js/turtleactions/DictActions.js:140 +#: js/turtleactions/DictActions.js:171 msgid "pen size" msgstr "" -#: js/PenBlocks.js:322 +#: js/blocks/PenBlocks.js:474 msgid "The Pen size block returns the current pen size value." msgstr "" -#: js/PenBlocks.js:355 +#: js/blocks/PenBlocks.js:513 msgid "set font" msgstr "" -#: js/PenBlocks.js:358 +#: js/blocks/PenBlocks.js:518 msgid "The Set font block sets the font used by the Show block." msgstr "" -#: js/PenBlocks.js:391 +#: js/blocks/PenBlocks.js:567 msgid "The Background block sets the window background color." msgstr "" -#: js/PenBlocks.js:408 +#: js/blocks/PenBlocks.js:598 msgid "The Hollow line block creates a line with a hollow center." msgstr "" -#: js/PenBlocks.js:415 +#: js/blocks/PenBlocks.js:606 #.TRANS: draw a line logo has a hollow space down its center msgid "hollow line" msgstr "" -#: js/PenBlocks.js:462 +#: js/blocks/PenBlocks.js:675 msgid "The Fill block fills in a shape with a color." msgstr "" -#: js/PenBlocks.js:470 +#: js/blocks/PenBlocks.js:684 #.TRANS: fill in as a solid color msgid "fill" msgstr "" -#: js/PenBlocks.js:527 +#: js/blocks/PenBlocks.js:761 #.TRANS: raise up the pen so logo it does not draw when it is moved msgid "pen up" msgstr "" -#: js/PenBlocks.js:532 +#: js/blocks/PenBlocks.js:768 msgid "The Pen-up block raises the pen so that it does not draw." msgstr "" -#: js/PenBlocks.js:552 +#: js/blocks/PenBlocks.js:802 #.TRANS: put down the pen so logo it draws when it is moved msgid "pen down" msgstr "" -#: js/PenBlocks.js:557 +#: js/blocks/PenBlocks.js:810 msgid "The Pen-down block lowers the pen so that it draws." msgstr "" -#: js/PenBlocks.js:577 +#: js/blocks/PenBlocks.js:844 #.TRANS: set the width of the line drawn by the pen msgid "set pen size" msgstr "" -#: js/PenBlocks.js:583 +#: js/blocks/PenBlocks.js:854 msgid "The Set-pen-size block changes the size of the pen." msgstr "" -#: js/PenBlocks.js:623 +#: js/blocks/PenBlocks.js:913 #.TRANS: set degree of translucence of the pen color msgid "set translucency" msgstr "" -#: js/PenBlocks.js:627 +#: js/blocks/PenBlocks.js:921 msgid "The Set translucency block changes the opacity of the pen." msgstr "" -#: js/PenBlocks.js:668 +#: js/blocks/PenBlocks.js:981 msgid "set hue" msgstr "" -#: js/PenBlocks.js:672 +#: js/blocks/PenBlocks.js:989 msgid "The Set hue block changes the color of the pen." msgstr "" -#: js/PenBlocks.js:711 +#: js/blocks/PenBlocks.js:1047 msgid "set shade" msgstr "" -#: js/PenBlocks.js:717 +#: js/blocks/PenBlocks.js:1057 msgid "The Set-shade block changes the pen color from dark to light." msgstr "" -#: js/PenBlocks.js:757 +#: js/blocks/PenBlocks.js:1111 #.TRANS: set the level of vividness of the pen color msgid "set grey" msgstr "" -#: js/PenBlocks.js:761 +#: js/blocks/PenBlocks.js:1119 msgid "The Set grey block changes the vividness of the pen color." msgstr "" -#: js/PenBlocks.js:800 +#: js/blocks/PenBlocks.js:1172 msgid "set color" msgstr "" -#: js/PenBlocks.js:806 +#: js/blocks/PenBlocks.js:1182 msgid "The Set-color block changes the pen color." msgstr "" -#: js/VolumeBlocks.js:35 -msgid "synth volume" -msgstr "" - -#: js/VolumeBlocks.js:39 -msgid "The Synth volume block returns the current volume of the current synthesizer." -msgstr "" - -#: js/VolumeBlocks.js:47 -#: js/musicutils.js:730 -#: js/synthutils.js:56 -#.TRANS: musical instrument -msgid "piano" -msgstr "" - -#: js/VolumeBlocks.js:105 -msgid "master volume" -msgstr "" - -#: js/VolumeBlocks.js:109 -msgid "The Master volume block returns the master volume." -msgstr "" - -#: js/VolumeBlocks.js:355 -#: js/VolumeBlocks.js:524 -msgid "set synth volume" -msgstr "" - -#: js/VolumeBlocks.js:362 -#: js/VolumeBlocks.js:545 -msgid "synth" -msgstr "" - -#: js/VolumeBlocks.js:403 -#: js/VolumeBlocks.js:577 -#: js/VolumeBlocks.js:740 -#: js/VolumeActions.js:173 -msgid "Setting volume to 0." -msgstr "" - -#: js/VolumeBlocks.js:440 -msgid "Synth not found" -msgstr "" - -#: js/VolumeBlocks.js:494 -msgid "set drum volume" -msgstr "" - -#: js/VolumeBlocks.js:530 -msgid "The Set synth volume block will change the volume of a particular synth," -msgstr "" - -#: js/VolumeBlocks.js:532 -msgid "eg guitar violin snare drum etc." -msgstr "" - -#: js/VolumeBlocks.js:534 -msgid "The default volume is 50." -msgstr "" - -#: js/VolumeBlocks.js:536 -msgid "The range is 0 for silence to 100 for full volume." -msgstr "" - -#: js/VolumeBlocks.js:597 -msgid "set panning" -msgstr "" - -#: js/VolumeBlocks.js:603 -msgid "The Set Panning block sets the panning for all synthesizers." -msgstr "" - -#: js/VolumeBlocks.js:625 -msgid "Warning: Sound is coming out from only the left or right side." -msgstr "" - -#: js/VolumeBlocks.js:647 -#: js/VolumeBlocks.js:695 -msgid "set master volume" -msgstr "" - -#: js/VolumeBlocks.js:653 -msgid "The Set master volume block sets the volume for all synthesizers." -msgstr "" - -#: js/VolumeBlocks.js:784 -msgid "The Set relative volume block changes the volume of the contained notes." -msgstr "" - -#: js/VolumeBlocks.js:791 -msgid "set relative volume" -msgstr "" - -#: js/VolumeBlocks.js:857 -msgid "decrescendo" -msgstr "" - -#: js/VolumeBlocks.js:921 -msgid "crescendo" -msgstr "" - -#: js/ToneBlocks.js:34 -msgid "oscillator" -msgstr "" - -#: js/ToneBlocks.js:44 -#: js/timbre.js:1562 -#.TRANS: Partials refers to the number of sine waves combined into the sound. -msgid "partials" -msgstr "" - -#: js/ToneBlocks.js:76 -msgid "You are adding multiple oscillator blocks." -msgstr "" - -#: js/ToneBlocks.js:144 -#: js/timbre.js:1225 -#.TRANS: a duo synthesizer combines a synth with a sequencer -msgid "duo synth" -msgstr "" - -#: js/ToneBlocks.js:149 -msgid "The Duo synth block is a duo-frequency modulator used to define a timbre." -msgstr "" - -#: js/ToneBlocks.js:157 -#: js/timbre.js:1476 -msgid "vibrato rate" -msgstr "" - -#: js/ToneBlocks.js:157 -msgid "vibrato intensity" -msgstr "" - -#: js/ToneBlocks.js:185 -#: js/timbre.js:1221 -#.TRANS: AM (amplitude modulation) synthesizer -msgid "AM synth" -msgstr "" - -#: js/ToneBlocks.js:189 -msgid "The AM synth block is an amplitude modulator used to define a timbre." -msgstr "" - -#: js/ToneBlocks.js:224 -#: js/timbre.js:1223 -#.TRANS: FM (frequency modulation) synthesizer -msgid "FM synth" -msgstr "" - -#: js/ToneBlocks.js:228 -msgid "The FM synth block is a frequency modulator used to define a timbre." +#: js/blocks/PitchBlocks.js:141 +#.TRANS: musical transposition (adjustment of pitch up or down) +msgid "transposition" msgstr "" -#: js/ToneBlocks.js:262 -msgid "partial" +#: js/blocks/PitchBlocks.js:168 +#.TRANS: step down one note in current musical scale +msgid "scalar step down" msgstr "" -#: js/ToneBlocks.js:265 -msgid "The Partial block is used to specify a weight for a specific partial harmonic." +#: js/blocks/PitchBlocks.js:172 +msgid "The Scalar step down block returns the number of semi-tones down to the previous note in the current key and mode." msgstr "" -#: js/ToneBlocks.js:284 -#.TRANS: partials are weighted components in a harmonic series -msgid "Partial weight must be between 0 and 1." +#: js/blocks/PitchBlocks.js:190 +#.TRANS: step up one note in current musical scale +msgid "scalar step up" msgstr "" -#: js/ToneBlocks.js:297 -#.TRANS: partials are weighted components in a harmonic series -msgid "Partial block should be used inside of a Weighted-partials block." +#: js/blocks/PitchBlocks.js:194 +msgid "The Scalar step up block returns the number of semi-tones up to the next note in the current key and mode." msgstr "" -#: js/ToneBlocks.js:325 -#.TRANS: partials are weighted components in a harmonic series -msgid "weighted partials" +#: js/blocks/PitchBlocks.js:212 +#.TRANS: the change measured in half-steps between the current pitch and the previous pitch +msgid "change in pitch" msgstr "" -#: js/ToneBlocks.js:383 -msgid "The Harmonic block will add harmonics to the contained notes." +#: js/blocks/PitchBlocks.js:216 +msgid "The Change in pitch block is the difference (in half steps) between the current pitch being played and the previous pitch played." msgstr "" -#: js/ToneBlocks.js:390 -#.TRANS: A harmonic is an overtone. -msgid "harmonic" +#: js/blocks/PitchBlocks.js:243 +#.TRANS: the change measured in scale-steps between the current pitch and the previous pitch +msgid "scalar change in pitch" msgstr "" -#: js/ToneBlocks.js:431 -msgid "The Distortion block adds distortion to the pitch." +#: js/blocks/PitchBlocks.js:250 +#: js/blocks/PitchBlocks.js:432 +#: js/blocks/PitchBlocks.js:1667 +#: js/turtleactions/DictActions.js:89 +#: js/widgets/temperament.js:610 +#: js/widgets/temperament.js:614 +#: js/widgets/temperament.js:855 +#.TRANS: convert current note to piano key (1-88) +#.TRANS: a mapping of pitch to the 88 piano keys +msgid "pitch number" msgstr "" -#: js/ToneBlocks.js:438 -#: js/timbre.js:2100 -#.TRANS: distortion is an alteration in the sound -msgid "distortion" +#: js/blocks/PitchBlocks.js:256 +msgid "The Pitch number block is the value of the pitch of the note currently being played." msgstr "" -#: js/ToneBlocks.js:487 -msgid "The Tremolo block adds a wavering effect." +#: js/blocks/PitchBlocks.js:329 +#: js/blocks/PitchBlocks.js:433 +#.TRANS: the current pitch expressed in Hertz +msgid "pitch in hertz" msgstr "" -#: js/ToneBlocks.js:495 -#: js/timbre.js:2092 -#.TRANS: a wavering effect in a musical tone -msgid "tremolo" +#: js/blocks/PitchBlocks.js:334 +msgid "The Pitch in Hertz block is the value in Hertz of the pitch of the note currently being played." msgstr "" -#: js/ToneBlocks.js:500 -#: js/ToneBlocks.js:569 -#: js/ToneBlocks.js:630 -#: js/ToneBlocks.js:689 -#: js/timbre.js:2134 -#: js/timbre.js:2222 -#: js/timbre.js:2317 -#: js/timbre.js:2419 -#.TRANS: rate at which tremolo wavers -msgid "rate" +#: js/blocks/PitchBlocks.js:367 +#: js/turtleactions/DictActions.js:87 +msgid "current pitch" msgstr "" -#: js/ToneBlocks.js:502 -#: js/ToneBlocks.js:630 -#: js/timbre.js:2137 -#: js/timbre.js:2328 -#.TRANS: amplitude of tremolo waver -msgid "depth" +#: js/blocks/PitchBlocks.js:373 +msgid "The Current Pitch block is used with the Pitch Converter block. In the example above, current pitch, sol 4, is displayed as 392 hertz." msgstr "" -#: js/ToneBlocks.js:559 -msgid "The Phaser block adds a sweeping sound." +#: js/blocks/PitchBlocks.js:410 +msgid "This block converts the pitch value of the last note played into different formats such as hertz, letter name, pitch number, et al." msgstr "" -#: js/ToneBlocks.js:566 -#: js/timbre.js:2098 -#.TRANS: alter the phase of the sound -msgid "phaser" +#: js/blocks/PitchBlocks.js:434 +msgid "alphabet" msgstr "" -#: js/ToneBlocks.js:569 -#: js/timbre.js:2422 -msgid "octaves" +#: js/blocks/PitchBlocks.js:436 +#.TRANS: Translate as "alphabet class" +msgid "letter class" msgstr "" -#: js/ToneBlocks.js:569 -#: js/timbre.js:2425 -msgid "base frequency" +#: js/blocks/PitchBlocks.js:437 +msgid "solfege class" msgstr "" -#: js/ToneBlocks.js:619 -msgid "The Chorus block adds a chorus effect." +#: js/blocks/PitchBlocks.js:438 +msgid "staff y" msgstr "" -#: js/ToneBlocks.js:627 -#: js/timbre.js:2096 -#.TRANS: musical effect to simulate a choral sound -msgid "chorus" +#: js/blocks/PitchBlocks.js:439 +msgid "solfege syllable" msgstr "" -#: js/ToneBlocks.js:630 -msgid "delay" +#: js/blocks/PitchBlocks.js:440 +msgid "pitch class" msgstr "" -#: js/ToneBlocks.js:678 -msgid "The Vibrato block adds a rapid, slight variation in pitch." +#: js/blocks/PitchBlocks.js:441 +msgid "scalar class" msgstr "" -#: js/ToneBlocks.js:686 -#: js/timbre.js:2094 -#.TRANS: a rapid, slight variation in pitch -msgid "vibrato" +#: js/blocks/PitchBlocks.js:443 +msgid "nth degree" msgstr "" -#: js/ToneBlocks.js:689 -#: js/timbre.js:2221 -msgid "intensity" +#: js/blocks/PitchBlocks.js:444 +msgid "pitch to shade" msgstr "" -#: js/ToneBlocks.js:733 -#.TRANS: select synthesizer -msgid "set synth" +#: js/blocks/PitchBlocks.js:445 +msgid "pitch to color" msgstr "" -#: js/ToneBlocks.js:804 -msgid "synth name" +#: js/blocks/PitchBlocks.js:629 +#: js/widgets/musickeyboard.js:735 +#.TRANS: MIDI is a technical standard for electronic music +msgid "MIDI" msgstr "" -#: js/ToneBlocks.js:842 -msgid "set default instrument" +#: js/blocks/PitchBlocks.js:642 +#.TRANS: set an offset associated with the numeric piano keyboard mapping +msgid "set pitch number offset" msgstr "" -#: js/ToneBlocks.js:895 -#: js/ToneBlocks.js:943 -#.TRANS: set the characteristics of a custom instrument -msgid "set instrument" +#: js/blocks/PitchBlocks.js:645 +msgid "The Set pitch number offset block is used to set the offset for mapping pitch numbers to pitch and octave." msgstr "" -#: js/ToneBlocks.js:898 -#: js/ToneBlocks.js:926 -#: js/ToneBlocks.js:932 -msgid "The Set instrument block selects a voice for the synthesizer," +#: js/blocks/PitchBlocks.js:679 +#.TRANS: convert piano key number (1-88) to pitch +msgid "number to pitch" msgstr "" -#: js/ToneBlocks.js:900 -#: js/ToneBlocks.js:934 -msgid "eg guitar piano violin or cello." +#: js/blocks/PitchBlocks.js:682 +msgid "The Number to pitch block will convert a pitch number to a pich name." msgstr "" -#: js/ToneBlocks.js:1015 -msgid "Import a sound file to use as an instrument and set its pitch center." +#: js/blocks/PitchBlocks.js:715 +#.TRANS: convert piano key number (1-88) to octave +msgid "number to octave" msgstr "" -#: js/ToneBlocks.js:1110 -msgid "Upload a sound file to connect with the sample block." +#: js/blocks/PitchBlocks.js:717 +msgid "The Number to octave block will convert a pitch number to an octave." msgstr "" -#: js/MeterBlocks.js:34 -#.TRANS: musical meter (time signature), e.g., 4:4 -msgid "current meter" +#: js/blocks/PitchBlocks.js:726 +msgid "y to pitch" msgstr "" -#: js/MeterBlocks.js:85 -#.TRANS: number of beats per minute -msgid "beat factor" +#: js/blocks/PitchBlocks.js:729 +msgid "Y to pitch block will convert a staff y position to corresponding pitch notation." msgstr "" -#: js/MeterBlocks.js:161 -msgid "The Beats per minute block returns the current beats per minute." +#: js/blocks/PitchBlocks.js:841 +msgid "accidental selector" msgstr "" -#: js/MeterBlocks.js:169 -#: js/status.js:152 -#.TRANS: number of beats played per minute -msgid "beats per minute2" +#: js/blocks/PitchBlocks.js:844 +msgid "The Accidental selector block is used to choose between double-sharp, sharp, natural, flat, and double-flat." msgstr "" -#: js/MeterBlocks.js:169 -#: js/MeterBlocks.js:1056 -#: js/MeterBlocks.js:1133 -#: js/MeterBlocks.js:1211 -#.TRANS: sets tempo by defining a beat and beats per minute -msgid "beats per minute" +#: js/blocks/PitchBlocks.js:858 +msgid "Pitch can be specified in terms of ni dha pa ma ga re sa." msgstr "" -#: js/MeterBlocks.js:233 -#.TRANS: count of current musical measure in meter -msgid "measure count" +#: js/blocks/PitchBlocks.js:872 +msgid "Pitch can be specified in terms of C D E F G A B." msgstr "" -#: js/MeterBlocks.js:241 -msgid "The Measure count block returns the current measure." +#: js/blocks/PitchBlocks.js:884 +msgid "solfege" msgstr "" -#: js/MeterBlocks.js:290 -#.TRANS: count of current beat in the meter -msgid "beat count" +#: js/blocks/PitchBlocks.js:887 +msgid "Pitch can be specified in terms of do re mi fa sol la ti." msgstr "" -#: js/MeterBlocks.js:300 -#: js/MeterBlocks.js:311 -#: js/MeterBlocks.js:565 -#: js/MeterBlocks.js:576 -msgid "The Beat count block is the number of the current beat," +#: js/blocks/PitchBlocks.js:922 +msgid "The Invert block rotates any contained notes around a target note." msgstr "" -#: js/MeterBlocks.js:313 -#: js/MeterBlocks.js:578 -msgid "eg 1, 2, 3, or 4." +#: js/blocks/PitchBlocks.js:929 +#.TRANS: pitch inversion rotates a pitch around another pitch +msgid "invert" msgstr "" -#: js/MeterBlocks.js:368 -#.TRANS: count the number of notes -msgid "sum note values" +#: js/blocks/PitchBlocks.js:968 +#.TRANS: pitch inversion rotates a pitch around another pitch (odd number) +msgid "invert (odd)" msgstr "" -#: js/MeterBlocks.js:376 -#: js/MeterBlocks.js:440 -msgid "The Note counter block can be used to count the number of contained notes." +#: js/blocks/PitchBlocks.js:1001 +#.TRANS: pitch inversion rotates a pitch around another pitch (even number) +msgid "invert (even)" msgstr "" -#: js/MeterBlocks.js:432 -#.TRANS: count the number of notes -msgid "note counter" +#: js/blocks/PitchBlocks.js:1022 +#.TRANS: register is the octave of the current pitch +msgid "register" msgstr "" -#: js/MeterBlocks.js:496 -#.TRANS: number of whole notes that have been played -msgid "whole notes played" +#: js/blocks/PitchBlocks.js:1026 +msgid "The Register block provides an easy way to modify the register (octave) of the notes that follow it." msgstr "" -#: js/MeterBlocks.js:505 -msgid "The Whole notes played block returns the total number of whole notes played." +#: js/blocks/PitchBlocks.js:1047 +#.TRANS: cents are units used to specify the ratio between pitches. There are 100 cents between successive notes. +msgid "50 cents" msgstr "" -#: js/MeterBlocks.js:555 -#: js/DictActions.js:83 -#.TRANS: number of notes that have been played -msgid "notes played" +#: js/blocks/PitchBlocks.js:1102 +msgid "The Semi-tone transposition block will shift the pitches contained inside Note blocks up (or down) by half steps." msgstr "" -#: js/MeterBlocks.js:653 -msgid "The No clock block decouples the notes from the master clock." +#: js/blocks/PitchBlocks.js:1104 +msgid "In the example shown above, sol is shifted up to sol#." msgstr "" -#: js/MeterBlocks.js:661 -#.TRANS: don't lock notes to master clock -msgid "no clock" +#: js/blocks/PitchBlocks.js:1110 +#.TRANS: adjust the amount of shift (up or down) of a pitch +msgid "semi-tone transpose" msgstr "" -#: js/MeterBlocks.js:700 -msgid "on weak beat do" +#: js/blocks/PitchBlocks.js:1143 +msgid "The Transpose by Ratio block will shift the pitches contained inside Note blocks up (or down) by a ratio" msgstr "" -#: js/MeterBlocks.js:705 -msgid "The On-weak-beat block lets you specify actions to take on weak (off) beats." +#: js/blocks/PitchBlocks.js:1149 +#.TRANS: adjust the amount of shift (up or down) of a pitch +msgid "transpose by ratio" msgstr "" -#: js/MeterBlocks.js:750 -msgid "on strong beat" +#: js/blocks/PitchBlocks.js:1232 +#.TRANS: down sixth means the note is five scale degrees below current note +msgid "down sixth" msgstr "" -#: js/MeterBlocks.js:758 -msgid "The On-strong-beat block lets you specify actions to take on specified beats." +#: js/blocks/PitchBlocks.js:1251 +#.TRANS: down third means the note is two scale degrees below current note +msgid "down third" msgstr "" -#: js/MeterBlocks.js:769 -msgid "beat" +#: js/blocks/PitchBlocks.js:1270 +#.TRANS: seventh means the note is the six scale degrees above current note +msgid "seventh" msgstr "" -#: js/MeterBlocks.js:813 -msgid "on every beat do" +#: js/blocks/PitchBlocks.js:1289 +#.TRANS: sixth means the note is the five scale degrees above current note +msgid "sixth" msgstr "" -#: js/MeterBlocks.js:821 -msgid "The On-every-beat block lets you specify actions to take on every beat." +#: js/blocks/PitchBlocks.js:1308 +#.TRANS: fifth means the note is the four scale degrees above current note +msgid "fifth" msgstr "" -#: js/MeterBlocks.js:874 -msgid "on every note do" +#: js/blocks/PitchBlocks.js:1328 +#.TRANS: fourth means the note is three scale degrees above current note +msgid "fourth" msgstr "" -#: js/MeterBlocks.js:882 -msgid "The On-every-note block lets you specify actions to take on every note." +#: js/blocks/PitchBlocks.js:1347 +#.TRANS: third means the note is two scale degrees above current note +msgid "third" msgstr "" -#: js/MeterBlocks.js:928 -#: js/MeterBlocks.js:999 -#.TRANS: sets tempo by defining a beat and beats per minute -msgid "master beats per minute" +#: js/blocks/PitchBlocks.js:1366 +#.TRANS: second means the note is one scale degree above current note +msgid "second" msgstr "" -#: js/MeterBlocks.js:952 -#: js/MeterBlocks.js:1078 -#: js/MeterBlocks.js:1135 -msgid "bpm" +#: js/blocks/PitchBlocks.js:1407 +msgid "The Scalar transposition block will shift the pitches contained inside Note blocks up (or down) the scale." msgstr "" -#: js/MeterBlocks.js:952 -#: js/MeterBlocks.js:1078 -#: js/MeterBlocks.js:1135 -msgid "beat value" +#: js/blocks/PitchBlocks.js:1409 +msgid "In the example shown above, sol is shifted up to la." msgstr "" -#: js/MeterBlocks.js:1024 -#: js/MeterBlocks.js:1167 -#: js/MeterBlocks.js:1241 -msgid "Beats per minute must be > 30." +#: js/blocks/PitchBlocks.js:1416 +#.TRANS: adjust the amount of shift (up or down) of a pitch by musical scale (scalar) steps +msgid "scalar transpose" msgstr "" -#: js/MeterBlocks.js:1027 -#: js/MeterBlocks.js:1170 -#: js/MeterBlocks.js:1244 -msgid "Maximum beats per minute is 1000." +#: js/blocks/PitchBlocks.js:1451 +msgid "The Accidental block is used to create sharps and flats" msgstr "" -#: js/MeterBlocks.js:1068 -msgid "The Beats per minute block sets the number of 1/4 notes per minute." +#: js/blocks/PitchBlocks.js:1458 +#.TRANS: An accidental is a modification to a pitch, e.g., sharp or flat. +msgid "accidental override" msgstr "" -#: js/MeterBlocks.js:1279 -#.TRANS: anacrusis -msgid "pickup" +#: js/blocks/PitchBlocks.js:1581 +msgid "The Hertz block (in combination with a Number block) will play a sound at the specified frequency." msgstr "" -#: js/MeterBlocks.js:1367 -msgid "number of beats" +#: js/blocks/PitchBlocks.js:1671 +msgid "The Pitch Number block will play a pitch associated by its number, e.g. 0 for C and 7 for G." msgstr "" -#: js/DictBlocks.js:77 -msgid "show dictionary" +#: js/blocks/PitchBlocks.js:1703 +#: js/blocks/PitchBlocks.js:1745 +#.TRANS: a numeric mapping of the notes in an octave based on the musical mode +#.TRANS: a numeric mapping of the notes in an octave based on the musical mode +msgid "nth modal pitch" msgstr "" -#: js/DictBlocks.js:129 -msgid "The Dictionary block returns a dictionary." +#: js/blocks/PitchBlocks.js:1706 +msgid "n^th Modal Pitch takes the pattern of pitches in semitones for a mode and makes each point a degree of the mode," msgstr "" -#: js/DictBlocks.js:197 -#: js/DictBlocks.js:339 -msgid "The Get-dict block returns a value in the dictionary for a specified key." +#: js/blocks/PitchBlocks.js:1708 +msgid "starting from 1 and regardless of tonal framework (i.e. not always 8 notes in the octave)" msgstr "" -#: js/DictBlocks.js:212 -#: js/DictBlocks.js:354 -#.TRANS: retrieve a value from the dictionary with a given key -msgid "get value" +#: js/blocks/PitchBlocks.js:1749 +msgid "N^th Modal Pitch takes a number as an input as the n^th degree for the given mode. 0 is the first position, 1 is the second, -1 is the note before the first etc." msgstr "" -#: js/DictBlocks.js:215 -#: js/DictBlocks.js:216 -#: js/DictBlocks.js:289 -#: js/DictBlocks.js:290 -#: js/DictBlocks.js:357 -#: js/DictBlocks.js:430 -#: js/DictBlocks.js:431 -msgid "key2" +#: js/blocks/PitchBlocks.js:1751 +msgid "The pitches change according to the mode specified without any need for respellings." msgstr "" -#: js/DictBlocks.js:271 -#: js/DictBlocks.js:411 -msgid "The Set-dict block sets a value in the dictionary for a specified key." +#: js/blocks/PitchBlocks.js:1790 +msgid "Scale Degree is a common convention in music. Scale Degree offers seven possible positions in the scale (1-7) and can be modified via accidentals." msgstr "" -#: js/DictBlocks.js:286 -#: js/DictBlocks.js:427 -#.TRANS: set a value in the dictionary for a given key -msgid "set value" +#: js/blocks/PitchBlocks.js:1792 +msgid "Scale Degree 1 is always the first pitch in a given scale, regardless of octave." msgstr "" -#: js/ExtrasBlocks.js:33 -msgid "fraction" +#: js/blocks/PitchBlocks.js:1814 +#.TRANS: step some number of notes in current musical scale +msgid "scalar step" msgstr "" -#: js/ExtrasBlocks.js:36 -msgid "Convert a float to a fraction" +#: js/blocks/PitchBlocks.js:1819 +msgid "The Scalar Step block (in combination with a Number block) will play the next pitch in a scale," msgstr "" -#: js/ExtrasBlocks.js:93 -msgid "save as ABC" +#: js/blocks/PitchBlocks.js:1821 +msgid "eg if the last note played was sol, Scalar Step 1 will play la." msgstr "" -#: js/ExtrasBlocks.js:96 -#: js/ExtrasBlocks.js:132 -#: js/ExtrasBlocks.js:168 -msgid "title" +#: js/blocks/PitchBlocks.js:1857 +msgid "The Pitch block specifies the pitch name and octave of a note that together determine the frequency of the note." msgstr "" -#: js/ExtrasBlocks.js:129 -msgid "save as Lilypond" +#: js/blocks/ProgramBlocks.js:33 +msgid "The Load-heap-from-app block loads the heap from a web page." msgstr "" -#: js/ExtrasBlocks.js:165 -msgid "save as SVG" +#: js/blocks/ProgramBlocks.js:44 +#.TRANS: load the heap contents from a URL +msgid "load heap from App" msgstr "" -#: js/ExtrasBlocks.js:216 -msgid "no background" +#: js/blocks/ProgramBlocks.js:95 +msgid "Error parsing JSON data:" msgstr "" -#: js/ExtrasBlocks.js:219 -msgid "The No background block eliminates the background from the saved SVG output." +#: js/blocks/ProgramBlocks.js:100 +msgid "404: Page not found" msgstr "" -#: js/ExtrasBlocks.js:247 -msgid "show blocks" +#: js/blocks/ProgramBlocks.js:133 +msgid "The Save-heap-to-app block saves the heap to a web page." msgstr "" -#: js/ExtrasBlocks.js:249 -msgid "The Show blocks block shows the blocks." +#: js/blocks/ProgramBlocks.js:144 +#.TRANS: save the heap contents to a URL +msgid "save heap to App" msgstr "" -#: js/ExtrasBlocks.js:274 -msgid "hide blocks" +#: js/blocks/ProgramBlocks.js:189 +msgid "Cannot find a valid heap for" msgstr "" -#: js/ExtrasBlocks.js:276 -msgid "The Hide blocks block hides the blocks." +#: js/blocks/ProgramBlocks.js:206 +msgid "The Load-heap block loads the heap from a file." msgstr "" -#: js/ExtrasBlocks.js:305 -#: js/ExtrasBlocks.js:335 -msgid "The Space block is used to add space between blocks." +#: js/blocks/ProgramBlocks.js:217 +#.TRANS: load the heap from a file +msgid "load heap" msgstr "" -#: js/ExtrasBlocks.js:373 -msgid "wait" +#: js/blocks/ProgramBlocks.js:270 +msgid "The file you selected does not contain a valid heap." msgstr "" -#: js/ExtrasBlocks.js:376 -msgid "The Wait block pauses the program for a specified number of seconds." +#: js/blocks/ProgramBlocks.js:275 +msgid "The loadHeap block needs a loadFile block." msgstr "" -#: js/ExtrasBlocks.js:430 -#: plugins/facebook.rtp:30 -msgid "comment" +#: js/blocks/ProgramBlocks.js:291 +msgid "The Set-heap block loads the heap." msgstr "" -#: js/ExtrasBlocks.js:466 -msgid "print" +#: js/blocks/ProgramBlocks.js:340 +msgid "The block you selected does not contain a valid heap." msgstr "" -#: js/ExtrasBlocks.js:473 -msgid "The Print block displays text at the top of the screen." +#: js/blocks/ProgramBlocks.js:343 +msgid "The Set heap block needs a heap." msgstr "" -#: js/ExtrasBlocks.js:579 -msgid "display grid" +#: js/blocks/ProgramBlocks.js:360 +msgid "The Load-dictionary block loads a dictionary from a file." msgstr "" -#: js/ExtrasBlocks.js:584 -msgid "The Display Grid Block changes the grid type" +#: js/blocks/ProgramBlocks.js:372 +#.TRANS: load a dictionary from a file +msgid "load dictionary" msgstr "" -#: js/ExtrasBlocks.js:686 -#: js/ExtrasBlocks.js:705 -#: js/ExtrasBlocks.js:728 -#: js/ExtrasBlocks.js:751 -#: js/ExtrasBlocks.js:769 -#: js/ExtrasBlocks.js:788 -#: js/ExtrasBlocks.js:807 -#: js/ExtrasBlocks.js:826 -msgid "unknown" +#: js/blocks/ProgramBlocks.js:390 +#: js/blocks/ProgramBlocks.js:658 +#: js/blocks/ToneBlocks.js:1025 +msgid "file" msgstr "" -#: js/SensorsBlocks.js:36 -msgid "The Input block prompts for keyboard input." +#: js/blocks/ProgramBlocks.js:444 +msgid "The file you selected does not contain a valid dictionary." msgstr "" -#: js/SensorsBlocks.js:46 -msgid "input" +#: js/blocks/ProgramBlocks.js:449 +msgid "The load dictionary block needs a load file block." msgstr "" -#: js/SensorsBlocks.js:64 -msgid "Input a value" +#: js/blocks/ProgramBlocks.js:466 +msgid "The Set-dictionary block loads a dictionary." msgstr "" -#: js/SensorsBlocks.js:126 -msgid "input value" +#: js/blocks/ProgramBlocks.js:477 +#.TRANS: load a dictionary from a JSON +msgid "set dictionary" msgstr "" -#: js/SensorsBlocks.js:131 -msgid "The Input-value block stores the input." +#: js/blocks/ProgramBlocks.js:546 +msgid "The block you selected does not contain a valid dictionary." msgstr "" -#: js/SensorsBlocks.js:238 -msgid "loudness" +#: js/blocks/ProgramBlocks.js:550 +msgid "The set dictionary block needs a dictionary." msgstr "" -#: js/SensorsBlocks.js:245 -msgid "The Loudness block returns the volume detected by the microphone." +#: js/blocks/ProgramBlocks.js:567 +msgid "The Save-heap block saves the heap to a file." msgstr "" -#: js/SensorsBlocks.js:300 -msgid "click" +#: js/blocks/ProgramBlocks.js:578 +#.TRANS: save the heap to a file +msgid "save heap" msgstr "" -#: js/SensorsBlocks.js:306 -msgid "The Click block triggers an event if a mouse has been clicked." +#: js/blocks/ProgramBlocks.js:629 +msgid "The Save-dictionary block saves a dictionary to a file." msgstr "" -#: js/SensorsBlocks.js:313 -msgid "The Click block triggers an event if a turtle has been clicked." +#: js/blocks/ProgramBlocks.js:640 +#.TRANS: save a dictionary to a file +msgid "save dictionary" msgstr "" -#: js/SensorsBlocks.js:342 -msgid "cursor over" +#: js/blocks/ProgramBlocks.js:720 +msgid "The Open palette block opens a palette." msgstr "" -#: js/SensorsBlocks.js:387 -msgid "cursor out" +#: js/blocks/ProgramBlocks.js:727 +msgid "open palette" msgstr "" -#: js/SensorsBlocks.js:433 -msgid "cursor button down" +#: js/blocks/ProgramBlocks.js:785 +msgid "The Delete block block removes a block." msgstr "" -#: js/SensorsBlocks.js:477 -msgid "cursor button up" +#: js/blocks/ProgramBlocks.js:797 +#.TRANS: Move this block to the trash. +msgid "delete block" msgstr "" -#: js/SensorsBlocks.js:638 -msgid "The Get red block returns the red component of the pixel under the mouse." +#: js/blocks/ProgramBlocks.js:861 +msgid "The Move block block moves a block." msgstr "" -#: js/SensorsBlocks.js:644 -msgid "The Get red block returns the red component of the pixel under the turtle." +#: js/blocks/ProgramBlocks.js:869 +#.TRANS: Move the position of a block on the screen. +msgid "move block" msgstr "" -#: js/SensorsBlocks.js:685 -#: plugins/rodi.rtp:216 -msgid "pixel color" +#: js/blocks/ProgramBlocks.js:881 +#: js/blocks/ProgramBlocks.js:1048 +msgid "block number" msgstr "" -#: js/SensorsBlocks.js:690 -msgid "The Get pixel block returns the color of the pixel under the mouse." +#: js/blocks/ProgramBlocks.js:935 +#.TRANS: Run program beginning at this block. +msgid "run block" msgstr "" -#: js/SensorsBlocks.js:696 -msgid "The Get pixel block returns the color of the pixel under the turtle." +#: js/blocks/ProgramBlocks.js:1025 +msgid "The Dock block block connections two blocks." msgstr "" -#: js/SensorsBlocks.js:758 -msgid "time" +#: js/blocks/ProgramBlocks.js:1036 +#.TRANS: We can connect a block to another block. +msgid "connect blocks" msgstr "" -#: js/SensorsBlocks.js:804 -msgid "cursor y" +#: js/blocks/ProgramBlocks.js:1048 +msgid "target block" msgstr "" -#: js/SensorsBlocks.js:809 -msgid "The Cursor Y block returns the vertical position of the mouse." +#: js/blocks/ProgramBlocks.js:1048 +msgid "connection number" msgstr "" -#: js/SensorsBlocks.js:845 -msgid "cursor x" +#: js/blocks/ProgramBlocks.js:1140 +msgid "The Make block block creates a new block." msgstr "" -#: js/SensorsBlocks.js:850 -msgid "The Cursor X block returns the horizontal position of the mouse." +#: js/blocks/ProgramBlocks.js:1152 +#.TRANS: Create a new block +msgid "make block" msgstr "" -#: js/SensorsBlocks.js:886 -msgid "mouse button" +#: js/blocks/ProgramBlocks.js:1285 +msgid "Cannot find block" msgstr "" -#: js/SensorsBlocks.js:888 -msgid "The Mouse-button block returns True if the mouse button is pressed." +#: js/blocks/ProgramBlocks.js:1304 +#: js/blocks/ProgramBlocks.js:1313 +msgid "Warning: block argument type mismatch" msgstr "" -#: js/SensorsBlocks.js:934 -msgid "to ASCII" +#: js/blocks/ProgramBlocks.js:1347 +msgid "The Open project block is used to open a project from a web page." msgstr "" -#: js/SensorsBlocks.js:938 -msgid "The To ASCII block converts numbers to letters." +#: js/blocks/ProgramBlocks.js:1357 +msgid "open project" msgstr "" -#: js/SensorsBlocks.js:1005 -msgid "The Keyboard block returns computer keyboard input." +#: js/blocks/ProgramBlocks.js:1410 +msgid "Please enter a valid URL." msgstr "" -#: js/IntervalsActions.js:216 -msgid "Adding missing pitch number 0." +#: js/blocks/ToneBlocks.js:34 +msgid "oscillator" msgstr "" -#: js/IntervalsActions.js:224 -msgid "Ignoring pitch numbers less than zero or greater than eleven." +#: js/blocks/ToneBlocks.js:42 +#: js/blocks/WidgetBlocks.js:179 +#: js/widgets/timbre.js:1558 +#: js/widgets/timbre.js:1808 +#.TRANS: there are different types (sine, triangle, square...) of oscillators. +#.TRANS: type of filter, e.g., lowpass, highpass, etc. +msgid "type" msgstr "" -#: js/IntervalsActions.js:230 -msgid "Ignoring duplicate pitch numbers." +#: js/blocks/ToneBlocks.js:44 +#: js/widgets/timbre.js:1562 +#.TRANS: Partials refers to the number of sine waves combined into the sound. +msgid "partials" msgstr "" -#: js/PitchActions.js:88 -msgid "The Scalar Step Block must be used inside of a Note Block." +#: js/blocks/ToneBlocks.js:76 +msgid "You are adding multiple oscillator blocks." msgstr "" -#: js/PitchActions.js:107 -msgid "The Scalar Step Block must be preceded by a Pitch Block." +#: js/blocks/ToneBlocks.js:144 +#: js/widgets/timbre.js:1225 +#.TRANS: a duo synthesizer combines a synth with a sequencer +msgid "duo synth" msgstr "" -#: js/DrumActions.js:231 -msgid "Noise Block: Did you mean to use a Note block?" +#: js/blocks/ToneBlocks.js:149 +msgid "The Duo synth block is a duo-frequency modulator used to define a timbre." msgstr "" -#: js/MeterActions.js:101 -#: js/MeterActions.js:139 -msgid "beats per minute must be greater than" +#: js/blocks/ToneBlocks.js:157 +#: js/widgets/timbre.js:1476 +msgid "vibrato rate" msgstr "" -#: js/MeterActions.js:111 -#: js/MeterActions.js:149 -msgid "maximum" +#: js/blocks/ToneBlocks.js:157 +msgid "vibrato intensity" msgstr "" -#: js/MeterActions.js:117 -#: js/MeterActions.js:155 -msgid "beats per minute is" +#: js/blocks/ToneBlocks.js:185 +#: js/widgets/timbre.js:1221 +#.TRANS: AM (amplitude modulation) synthesizer +msgid "AM synth" msgstr "" -#: js/ToneActions.js:134 -msgid "Vibrato intensity must be between 1 and 100." +#: js/blocks/ToneBlocks.js:189 +msgid "The AM synth block is an amplitude modulator used to define a timbre." msgstr "" -#: js/ToneActions.js:139 -msgid "Vibrato rate must be greater than 0." +#: js/blocks/ToneBlocks.js:224 +#: js/widgets/timbre.js:1223 +#.TRANS: FM (frequency modulation) synthesizer +msgid "FM synth" msgstr "" -#: js/ToneActions.js:192 -#: js/ToneActions.js:265 -#.TRANS: Depth is the intesity of the tremolo or chorus effect. -msgid "Depth is out of range." +#: js/blocks/ToneBlocks.js:228 +msgid "The FM synth block is a frequency modulator used to define a timbre." msgstr "" -#: js/ToneActions.js:301 -msgid "Distortion must be from 0 to 100." +#: js/blocks/ToneBlocks.js:262 +msgid "partial" msgstr "" -#: js/ToneActions.js:332 -#.TRANS: partials components in a harmonic series -msgid "Partial must be greater than or equal to 0." +#: js/blocks/ToneBlocks.js:265 +msgid "The Partial block is used to specify a weight for a specific partial harmonic." msgstr "" -#: js/ToneActions.js:378 -#: js/ToneActions.js:417 -#: js/ToneActions.js:456 -#: js/timbre.js:782 -msgid "Unable to use synth due to existing oscillator" +#: js/blocks/ToneBlocks.js:284 +#.TRANS: partials are weighted components in a harmonic series +msgid "Partial weight must be between 0 and 1." msgstr "" -#: js/ToneActions.js:388 -#: js/ToneActions.js:427 -msgid "The input cannot be negative." +#: js/blocks/ToneBlocks.js:297 +#.TRANS: partials are weighted components in a harmonic series +msgid "Partial block should be used inside of a Weighted-partials block." msgstr "" -#: js/DictActions.js:75 -#: js/DictActions.js:153 -#: js/DictActions.js:188 -msgid "font" +#: js/blocks/ToneBlocks.js:325 +#.TRANS: partials are weighted components in a harmonic series +msgid "weighted partials" msgstr "" -#: js/musicutils.js:363 -#: js/musicutils.js:471 -#: js/pitchdrummatrix.js:151 -#: js/musickeyboard.js:2563 -msgid "rest" +#: js/blocks/ToneBlocks.js:383 +msgid "The Harmonic block will add harmonics to the contained notes." msgstr "" -#: js/musicutils.js:565 -#.TRANS: ordinal number. Please keep exactly one space between each number. -msgid "1st 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th" +#: js/blocks/ToneBlocks.js:390 +#.TRANS: A harmonic is an overtone. +msgid "harmonic" msgstr "" -#: js/musicutils.js:629 -#: js/musicutils.js:812 -#: js/musicutils.js:911 -#.TRANS: augmented is a music term related to intervals -msgid "augmented" +#: js/blocks/ToneBlocks.js:431 +msgid "The Distortion block adds distortion to the pitch." msgstr "" -#: js/musicutils.js:631 -#: js/musicutils.js:813 -#: js/musicutils.js:910 -#.TRANS: diminished is a music term related to intervals and mode -msgid "diminished" +#: js/blocks/ToneBlocks.js:438 +#: js/widgets/timbre.js:2100 +#.TRANS: distortion is an alteration in the sound +msgid "distortion" msgstr "" -#: js/musicutils.js:639 -#.TRANS: twelve semi-tone scale for music -msgid "chromatic" +#: js/blocks/ToneBlocks.js:487 +msgid "The Tremolo block adds a wavering effect." msgstr "" -#: js/musicutils.js:640 -msgid "algerian" +#: js/blocks/ToneBlocks.js:495 +#: js/widgets/timbre.js:2092 +#.TRANS: a wavering effect in a musical tone +msgid "tremolo" msgstr "" -#: js/musicutils.js:641 -msgid "spanish" +#: js/blocks/ToneBlocks.js:500 +#: js/blocks/ToneBlocks.js:569 +#: js/blocks/ToneBlocks.js:630 +#: js/blocks/ToneBlocks.js:689 +#: js/widgets/timbre.js:2134 +#: js/widgets/timbre.js:2222 +#: js/widgets/timbre.js:2317 +#: js/widgets/timbre.js:2419 +#.TRANS: rate at which tremolo wavers +msgid "rate" msgstr "" -#: js/musicutils.js:643 -#.TRANS: modal scale in music -msgid "octatonic" +#: js/blocks/ToneBlocks.js:502 +#: js/blocks/ToneBlocks.js:630 +#: js/widgets/timbre.js:2137 +#: js/widgets/timbre.js:2328 +#.TRANS: amplitude of tremolo waver +msgid "depth" msgstr "" -#: js/musicutils.js:645 -#.TRANS: harmonic major scale in music -msgid "harmonic major" +#: js/blocks/ToneBlocks.js:559 +msgid "The Phaser block adds a sweeping sound." msgstr "" -#: js/musicutils.js:647 -#.TRANS: natural minor scales in music -msgid "natural minor" +#: js/blocks/ToneBlocks.js:566 +#: js/widgets/timbre.js:2098 +#.TRANS: alter the phase of the sound +msgid "phaser" msgstr "" -#: js/musicutils.js:649 -#.TRANS: harmonic minor scale in music -msgid "harmonic minor" +#: js/blocks/ToneBlocks.js:569 +#: js/turtleactions/IntervalsActions.js:114 +#: js/widgets/timbre.js:2422 +msgid "octaves" msgstr "" -#: js/musicutils.js:651 -#.TRANS: melodic minor scale in music -msgid "melodic minor" +#: js/blocks/ToneBlocks.js:569 +#: js/widgets/timbre.js:2425 +msgid "base frequency" msgstr "" -#: js/musicutils.js:655 -#.TRANS: modal scale for music -msgid "dorian" +#: js/blocks/ToneBlocks.js:619 +msgid "The Chorus block adds a chorus effect." msgstr "" -#: js/musicutils.js:657 -#.TRANS: modal scale for music -msgid "phrygian" +#: js/blocks/ToneBlocks.js:627 +#: js/widgets/timbre.js:2096 +#.TRANS: musical effect to simulate a choral sound +msgid "chorus" msgstr "" -#: js/musicutils.js:659 -#.TRANS: modal scale for music -msgid "lydian" +#: js/blocks/ToneBlocks.js:630 +msgid "delay" msgstr "" -#: js/musicutils.js:661 -#.TRANS: modal scale for music -msgid "mixolydian" +#: js/blocks/ToneBlocks.js:678 +msgid "The Vibrato block adds a rapid, slight variation in pitch." msgstr "" -#: js/musicutils.js:665 -#.TRANS: modal scale for music -msgid "locrian" +#: js/blocks/ToneBlocks.js:686 +#: js/widgets/timbre.js:2094 +#.TRANS: a rapid, slight variation in pitch +msgid "vibrato" msgstr "" -#: js/musicutils.js:667 -#.TRANS: minor jazz scale for music -msgid "jazz minor" +#: js/blocks/ToneBlocks.js:689 +#: js/widgets/timbre.js:2221 +msgid "intensity" msgstr "" -#: js/musicutils.js:669 -#.TRANS: bebop scale for music -msgid "bebop" +#: js/blocks/ToneBlocks.js:733 +#.TRANS: select synthesizer +msgid "set synth" msgstr "" -#: js/musicutils.js:670 -msgid "arabic" +#: js/blocks/ToneBlocks.js:804 +msgid "synth name" msgstr "" -#: js/musicutils.js:671 -msgid "byzantine" +#: js/blocks/ToneBlocks.js:842 +msgid "set default instrument" msgstr "" -#: js/musicutils.js:673 -#.TRANS: musical scale for music by Verdi -msgid "enigmatic" +#: js/blocks/ToneBlocks.js:895 +#: js/blocks/ToneBlocks.js:943 +#.TRANS: set the characteristics of a custom instrument +msgid "set instrument" msgstr "" -#: js/musicutils.js:674 -msgid "ethiopian" +#: js/blocks/ToneBlocks.js:898 +#: js/blocks/ToneBlocks.js:926 +#: js/blocks/ToneBlocks.js:932 +msgid "The Set instrument block selects a voice for the synthesizer," msgstr "" -#: js/musicutils.js:676 -#.TRANS: Ethiopic scale for music -msgid "geez" +#: js/blocks/ToneBlocks.js:900 +#: js/blocks/ToneBlocks.js:934 +msgid "eg guitar piano violin or cello." msgstr "" -#: js/musicutils.js:677 -msgid "hindu" +#: js/blocks/ToneBlocks.js:1015 +msgid "Import a sound file to use as an instrument and set its pitch center." msgstr "" -#: js/musicutils.js:678 -msgid "hungarian" +#: js/blocks/ToneBlocks.js:1110 +msgid "Upload a sound file to connect with the sample block." msgstr "" -#: js/musicutils.js:680 -#.TRANS: minor Romanian scale for music -msgid "romanian minor" +#: js/blocks/VolumeBlocks.js:35 +msgid "synth volume" msgstr "" -#: js/musicutils.js:681 -msgid "spanish gypsy" +#: js/blocks/VolumeBlocks.js:39 +msgid "The Synth volume block returns the current volume of the current synthesizer." msgstr "" -#: js/musicutils.js:683 -#.TRANS: musical scale for Mid-Eastern music -msgid "maqam" +#: js/blocks/VolumeBlocks.js:105 +msgid "master volume" msgstr "" -#: js/musicutils.js:685 -#.TRANS: minor blues scale for music -msgid "minor blues" +#: js/blocks/VolumeBlocks.js:109 +msgid "The Master volume block returns the master volume." msgstr "" -#: js/musicutils.js:687 -#.TRANS: major blues scale for music -msgid "major blues" +#: js/blocks/VolumeBlocks.js:355 +#: js/blocks/VolumeBlocks.js:524 +msgid "set synth volume" msgstr "" -#: js/musicutils.js:688 -msgid "whole tone" +#: js/blocks/VolumeBlocks.js:362 +#: js/blocks/VolumeBlocks.js:545 +msgid "synth" msgstr "" -#: js/musicutils.js:690 -#.TRANS: pentatonic is a general term that means "five note scale". This scale is typically known as "minor pentatonic" -msgid "minor pentatonic" +#: js/blocks/VolumeBlocks.js:403 +#: js/blocks/VolumeBlocks.js:577 +#: js/blocks/VolumeBlocks.js:740 +#: js/turtleactions/VolumeActions.js:173 +msgid "Setting volume to 0." msgstr "" -#: js/musicutils.js:692 -#.TRANS: pentatonic is a general term that means "five note scale". This scale is typically known as "major pentatonic" -msgid "major pentatonic" +#: js/blocks/VolumeBlocks.js:440 +msgid "Synth not found" msgstr "" -#: js/musicutils.js:693 -msgid "chinese" +#: js/blocks/VolumeBlocks.js:494 +msgid "set drum volume" msgstr "" -#: js/musicutils.js:694 -msgid "egyptian" +#: js/blocks/VolumeBlocks.js:530 +msgid "The Set synth volume block will change the volume of a particular synth," msgstr "" -#: js/musicutils.js:696 -#.TRANS: https://en.wikipedia.org/wiki/Hirajoshi_scale NOTE: There are three different versions of this scale -msgid "hirajoshi" +#: js/blocks/VolumeBlocks.js:532 +msgid "eg guitar violin snare drum etc." msgstr "" -#: js/musicutils.js:697 -msgid "Japan" +#: js/blocks/VolumeBlocks.js:534 +msgid "The default volume is 50." msgstr "" -#: js/musicutils.js:699 -#.TRANS: https://en.wikipedia.org/wiki/In_scale and https://en.wikipedia.org/wiki/Sakura_Sakura -msgid "in" +#: js/blocks/VolumeBlocks.js:536 +msgid "The range is 0 for silence to 100 for full volume." msgstr "" -#: js/musicutils.js:701 -#.TRANS: https://en.wikipedia.org/wiki/Miny%C5%8D_scale -msgid "minyo" +#: js/blocks/VolumeBlocks.js:597 +msgid "set panning" msgstr "" -#: js/musicutils.js:703 -#.TRANS: Italian mathematician -msgid "fibonacci" +#: js/blocks/VolumeBlocks.js:603 +msgid "The Set Panning block sets the panning for all synthesizers." msgstr "" -#: js/musicutils.js:708 -#: js/musicutils.js:1106 -#.TRANS: lowpass filter -msgid "lowpass" +#: js/blocks/VolumeBlocks.js:625 +msgid "Warning: Sound is coming out from only the left or right side." msgstr "" -#: js/musicutils.js:710 -#: js/musicutils.js:1107 -#.TRANS: bandpass filter -msgid "bandpass" +#: js/blocks/VolumeBlocks.js:647 +#: js/blocks/VolumeBlocks.js:695 +msgid "set master volume" msgstr "" -#: js/musicutils.js:712 -#: js/musicutils.js:1108 -#.TRANS: high-shelf filter -msgid "highshelf" +#: js/blocks/VolumeBlocks.js:653 +msgid "The Set master volume block sets the volume for all synthesizers." msgstr "" -#: js/musicutils.js:714 -#: js/musicutils.js:1109 -#.TRANS: low-shelf filter -msgid "lowshelf" +#: js/blocks/VolumeBlocks.js:784 +msgid "The Set relative volume block changes the volume of the contained notes." msgstr "" -#: js/musicutils.js:716 -#: js/musicutils.js:1110 -#.TRANS: notch-shelf filter -msgid "notch" +#: js/blocks/VolumeBlocks.js:791 +msgid "set relative volume" msgstr "" -#: js/musicutils.js:718 -#: js/musicutils.js:1111 -#.TRANS: all-pass filter -msgid "allpass" +#: js/blocks/VolumeBlocks.js:857 +msgid "decrescendo" msgstr "" -#: js/musicutils.js:720 -#: js/musicutils.js:1112 -#.TRANS: peaking filter -msgid "peaking" +#: js/blocks/VolumeBlocks.js:921 +msgid "crescendo" msgstr "" -#: js/musicutils.js:731 -#: js/synthutils.js:58 -#.TRANS: musical instrument -msgid "violin" +#: js/blocks/WidgetBlocks.js:81 +#.TRANS: sound envelope (ADSR) +msgid "envelope" msgstr "" -#: js/musicutils.js:732 -#: js/synthutils.js:60 -#.TRANS: viola musical instrument -msgid "viola" +#: js/blocks/WidgetBlocks.js:89 +#.TRANS: Attack time is the time taken for initial run-up of level from nil to peak, beginning when the key is first pressed. +msgid "attack" msgstr "" -#: js/musicutils.js:733 -#: js/synthutils.js:98 -#.TRANS: xylophone musical instrument -msgid "xylophone" +#: js/blocks/WidgetBlocks.js:91 +#.TRANS: Decay time is the time taken for the subsequent run down from the attack level to the designated sustain level. +msgid "decay" msgstr "" -#: js/musicutils.js:734 -#: js/synthutils.js:120 -#.TRANS: vibraphone musical instrument -msgid "vibraphone" +#: js/blocks/WidgetBlocks.js:93 +#.TRANS: Sustain level is the level during the main sequence of the sound's duration, until the key is released. +msgid "sustain" msgstr "" -#: js/musicutils.js:735 -#: js/synthutils.js:62 -#.TRANS: musical instrument -msgid "cello" +#: js/blocks/WidgetBlocks.js:95 +#.TRANS: Release time is the time taken for the level to decay from the sustain level to zero after the key is released. +msgid "release" msgstr "" -#: js/musicutils.js:737 -#: js/synthutils.js:66 -#.TRANS: viola musical instrument -msgid "double bass" +#: js/blocks/WidgetBlocks.js:113 +msgid "Attack value should be from 0 to 100." msgstr "" -#: js/musicutils.js:738 -#: js/synthutils.js:68 -#: js/rhythmruler.js:2119 -#.TRANS: musical instrument -msgid "guitar" +#: js/blocks/WidgetBlocks.js:116 +msgid "Decay value should be from 0 to 100." msgstr "" -#: js/musicutils.js:739 -#: js/synthutils.js:70 -#.TRANS: musical instrument -msgid "acoustic guitar" +#: js/blocks/WidgetBlocks.js:119 +msgid "Sustain value should be from 0 to 100." msgstr "" -#: js/musicutils.js:740 -#: js/synthutils.js:72 -#.TRANS: musical instrument -msgid "flute" +#: js/blocks/WidgetBlocks.js:122 +msgid "Release value should be from 0-100." msgstr "" -#: js/musicutils.js:741 -#: js/synthutils.js:74 -#.TRANS: musical instrument -msgid "clarinet" +#: js/blocks/WidgetBlocks.js:140 +msgid "You are adding multiple envelope blocks." msgstr "" -#: js/musicutils.js:742 -#: js/synthutils.js:76 -#.TRANS: musical instrument -msgid "saxophone" +#: js/blocks/WidgetBlocks.js:171 +#.TRANS: a filter removes some unwanted components from a signal +msgid "filter" msgstr "" -#: js/musicutils.js:743 -#: js/synthutils.js:78 -#.TRANS: musical instrument -msgid "tuba" +#: js/blocks/WidgetBlocks.js:181 +#: js/widgets/timbre.js:1818 +#.TRANS: rolloff is the steepness of a change in frequency. +msgid "rolloff" msgstr "" -#: js/musicutils.js:744 -#: js/synthutils.js:80 -#.TRANS: musical instrument -msgid "trumpet" +#: js/blocks/WidgetBlocks.js:213 +#.TRANS: rolloff is the steepness of a change in frequency. +msgid "Rolloff value should be either -12, -24, -48, or -96 decibels/octave." msgstr "" -#: js/musicutils.js:745 -#: js/synthutils.js:82 -#.TRANS: musical instrument -msgid "oboe" +#: js/blocks/WidgetBlocks.js:252 +msgid "The Temperament tool is used to define custom tuning." msgstr "" -#: js/musicutils.js:746 -#: js/synthutils.js:84 -#.TRANS: musical instrument -msgid "trombone" +#: js/blocks/WidgetBlocks.js:332 +#: js/blocks/WidgetBlocks.js:1573 +#: js/widgets/sampler.js:547 +msgid "Upload a sample and adjust its pitch center." msgstr "" -#: js/musicutils.js:747 -#: js/synthutils.js:100 -#.TRANS: polytone synthesizer -msgid "electronic synth" +#: js/blocks/WidgetBlocks.js:339 +#.TRANS: the speed at music is should be played. +msgid "sampler" msgstr "" -#: js/musicutils.js:748 -#: js/synthutils.js:102 -#.TRANS: simple monotone synthesizer -msgid "simple 1" +#: js/blocks/WidgetBlocks.js:517 +msgid "The Meter block opens a tool to select strong beats for the meter." msgstr "" -#: js/musicutils.js:749 -msgid "simple 2" +#: js/blocks/WidgetBlocks.js:573 +msgid "The oscilloscope block opens a tool to visualize waveforms." msgstr "" -#: js/musicutils.js:750 -msgid "simple 3" +#: js/blocks/WidgetBlocks.js:578 +msgid "oscilloscope" msgstr "" -#: js/musicutils.js:751 -msgid "simple 4" +#: js/blocks/WidgetBlocks.js:645 +msgid "The Custom mode block opens a tool to explore musical mode (the spacing of the notes in a scale)." msgstr "" -#: js/musicutils.js:753 -#: js/synthutils.js:49 -#.TRANS: brown noise synthesizer -msgid "brown noise" +#: js/blocks/WidgetBlocks.js:651 +#.TRANS: musical mode is the pattern of half-steps in an octave, e.g., Major or Minor modes +msgid "custom mode" msgstr "" -#: js/musicutils.js:754 -#: js/synthutils.js:51 -#.TRANS: pink noise synthesizer -msgid "pink noise" +#: js/blocks/WidgetBlocks.js:700 +msgid "The Tempo block opens a metronome to visualize the beat." msgstr "" -#: js/musicutils.js:756 -#: js/synthutils.js:127 -#: js/rhythmruler.js:1670 -#: js/rhythmruler.js:1928 -#.TRANS: musical instrument -msgid "snare drum" +#: js/blocks/WidgetBlocks.js:762 +msgid "The Arpeggio Widget is used to compose chord sequences." msgstr "" -#: js/musicutils.js:757 -#: js/synthutils.js:129 -#.TRANS: musical instrument -msgid "kick drum" +#: js/blocks/WidgetBlocks.js:837 +msgid "The Pitch drum matrix is used to map pitches to drum sounds." msgstr "" -#: js/musicutils.js:758 -#: js/synthutils.js:131 -#.TRANS: musical instrument -msgid "tom tom" +#: js/blocks/WidgetBlocks.js:842 +#.TRANS: makes a mapping between pitches and drum sounds +msgid "pitch-drum mapper" msgstr "" -#: js/musicutils.js:759 -#: js/synthutils.js:133 -#.TRANS: musical instrument -msgid "floor tom" +#: js/blocks/WidgetBlocks.js:891 +msgid "You must have at least one pitch block and one drum block in the matrix." msgstr "" -#: js/musicutils.js:760 -#: js/synthutils.js:135 -#.TRANS: musical instrument -msgid "bass drum" +#: js/blocks/WidgetBlocks.js:920 +msgid "The Pitch slider tool to is used to generate pitches at selected frequencies." msgstr "" -#: js/musicutils.js:761 -#: js/synthutils.js:137 -#.TRANS: a drum made from an inverted cup -msgid "cup drum" +#: js/blocks/WidgetBlocks.js:925 +#.TRANS: widget to generate pitches using a slider +msgid "pitch slider" msgstr "" -#: js/musicutils.js:762 -#: js/synthutils.js:139 -#.TRANS: musical instrument -msgid "darbuka drum" +#: js/blocks/WidgetBlocks.js:977 +msgid "chromatic keyboard" msgstr "" -#: js/musicutils.js:763 -#: js/synthutils.js:143 -#.TRANS: musical instrument -msgid "hi hat" +#: js/blocks/WidgetBlocks.js:1011 +#: js/blocks/WidgetBlocks.js:1077 +#.TRANS: widget to generate pitches using a slider +msgid "music keyboard" msgstr "" -#: js/musicutils.js:764 -#: js/synthutils.js:145 -#.TRANS: a small metal bell -msgid "ride bell" +#: js/blocks/WidgetBlocks.js:1062 +#: js/blocks/WidgetBlocks.js:1069 +msgid "The Music keyboard block opens a piano keyboard that can be used to create notes." msgstr "" -#: js/musicutils.js:765 -#: js/synthutils.js:147 -#.TRANS: musical instrument -msgid "cow bell" +#: js/blocks/WidgetBlocks.js:1128 +msgid "The Pitch staircase tool to is used to generate pitches from a given ratio." msgstr "" -#: js/musicutils.js:766 -msgid "japanese drum" +#: js/blocks/WidgetBlocks.js:1135 +#.TRANS: generate a progressive sequence of pitches +msgid "pitch staircase" msgstr "" -#: js/musicutils.js:767 -#: js/synthutils.js:153 -#.TRANS: musical instrument -msgid "japanese bell" +#: js/blocks/WidgetBlocks.js:1222 +msgid "The Rhythm Maker block opens a tool to create drum machines." msgstr "" -#: js/musicutils.js:768 -#: js/synthutils.js:149 -#.TRANS: musical instrument -msgid "triangle bell" +#: js/blocks/WidgetBlocks.js:1291 +msgid "G major scale" msgstr "" -#: js/musicutils.js:769 -#: js/synthutils.js:151 -#.TRANS: musical instrument -msgid "finger cymbals" +#: js/blocks/WidgetBlocks.js:1326 +msgid "C major scale" msgstr "" -#: js/musicutils.js:770 -#: js/synthutils.js:155 -#.TRANS: a musically tuned set of bells -msgid "chime" +#: js/blocks/WidgetBlocks.js:1366 +msgid "The Phrase Maker block opens a tool to create musical phrases." msgstr "" -#: js/musicutils.js:771 -#: js/synthutils.js:157 -#.TRANS: a musical instrument -msgid "gong" +#: js/blocks/WidgetBlocks.js:1373 +#.TRANS: assigns pitch to a sequence of beats to generate a melody +msgid "phrase maker" msgstr "" -#: js/musicutils.js:772 -#: js/synthutils.js:159 -#.TRANS: sound effect -msgid "clang" +#: js/blocks/WidgetBlocks.js:1444 +msgid "You must have at least one pitch block and one rhythm block in the matrix." msgstr "" -#: js/musicutils.js:773 -#: js/synthutils.js:161 -#.TRANS: sound effect -msgid "crash" +#: js/blocks/WidgetBlocks.js:1503 +msgid "The Status block opens a tool for inspecting the status of Music Blocks as it is running." msgstr "" -#: js/musicutils.js:774 -#: js/synthutils.js:163 -#.TRANS: sound effect -msgid "bottle" +#: js/blocks/WidgetBlocks.js:1580 +#.TRANS: AI-generated music +msgid "aimusic" msgstr "" -#: js/musicutils.js:775 -#: js/synthutils.js:165 -#.TRANS: sound effect -msgid "clap" +#: js/turtleactions/MeterActions.js:101 +#: js/turtleactions/MeterActions.js:139 +msgid "beats per minute must be greater than" msgstr "" -#: js/musicutils.js:776 -#: js/synthutils.js:167 -#.TRANS: sound effect -msgid "slap" +#: js/turtleactions/MeterActions.js:111 +#: js/turtleactions/MeterActions.js:149 +msgid "maximum" msgstr "" -#: js/musicutils.js:777 -#: js/synthutils.js:169 -#.TRANS: sound effect -msgid "splash" +#: js/turtleactions/MeterActions.js:117 +#: js/turtleactions/MeterActions.js:155 +msgid "beats per minute is" msgstr "" -#: js/musicutils.js:778 -#: js/synthutils.js:171 -#.TRANS: sound effect -msgid "bubbles" +#: js/turtleactions/DictActions.js:75 +#: js/turtleactions/DictActions.js:142 +#: js/turtleactions/DictActions.js:172 +msgid "font" msgstr "" -#: js/musicutils.js:779 -#: js/synthutils.js:173 -#.TRANS: sound effect -msgid "raindrop" +#: js/turtleactions/DictActions.js:255 +msgid "Dictionary with this name does not exist" msgstr "" -#: js/musicutils.js:780 -#: js/synthutils.js:175 -#.TRANS: animal sound effect -msgid "cat" +#: js/turtleactions/DictActions.js:259 +msgid "Key with this name does not exist in " msgstr "" -#: js/musicutils.js:781 -#: js/synthutils.js:177 -#.TRANS: animal sound effect -msgid "cricket" +#: js/turtleactions/DrumActions.js:227 +msgid "Noise Block: Did you mean to use a Note block?" msgstr "" -#: js/musicutils.js:782 -#: js/synthutils.js:179 -#.TRANS: animal sound effect -msgid "dog" +#: js/turtleactions/IntervalsActions.js:113 +msgid "one" msgstr "" -#: js/musicutils.js:784 -#: js/synthutils.js:86 -#.TRANS: musical instrument -msgid "banjo" +#: js/turtleactions/IntervalsActions.js:113 +msgid "two" msgstr "" -#: js/musicutils.js:785 -#: js/synthutils.js:88 -#.TRANS: musical instrument -msgid "koto" +#: js/turtleactions/IntervalsActions.js:113 +msgid "three" msgstr "" -#: js/musicutils.js:786 -#: js/synthutils.js:90 -#.TRANS: musical instrument -msgid "dulcimer" +#: js/turtleactions/IntervalsActions.js:113 +msgid "four" msgstr "" -#: js/musicutils.js:787 -#: js/synthutils.js:92 -#.TRANS: musical instrument -msgid "electric guitar" +#: js/turtleactions/IntervalsActions.js:113 +msgid "five" msgstr "" -#: js/musicutils.js:788 -#: js/synthutils.js:94 -#.TRANS: musical instrument -msgid "bassoon" +#: js/turtleactions/IntervalsActions.js:113 +msgid "six" msgstr "" -#: js/musicutils.js:789 -#: js/synthutils.js:96 -#.TRANS: musical instrument -msgid "celeste" +#: js/turtleactions/IntervalsActions.js:113 +msgid "seven" msgstr "" -#: js/musicutils.js:791 -#: js/musicutils.js:1123 -#: js/musicutils.js:1131 -#: js/temperament.js:650 -#.TRANS: musical temperament -msgid "equal" +#: js/turtleactions/IntervalsActions.js:113 +msgid "eight" msgstr "" -#: js/musicutils.js:793 -#: js/musicutils.js:1125 -#: js/musicutils.js:1133 -#.TRANS: musical temperament -msgid "Pythagorean" +#: js/turtleactions/IntervalsActions.js:113 +msgid "nine" msgstr "" -#: js/musicutils.js:795 -#: js/musicutils.js:1124 -#: js/musicutils.js:1132 -#.TRANS: musical temperament -msgid "just intonation" +#: js/turtleactions/IntervalsActions.js:119 +msgid "a" msgstr "" -#: js/musicutils.js:797 -#: js/musicutils.js:1126 -#: js/musicutils.js:1127 -#: js/musicutils.js:1134 -#: js/musicutils.js:1135 -#.TRANS: musical temperament -msgid "meantone" +#: js/turtleactions/IntervalsActions.js:120 +msgid "below" msgstr "" -#: js/musicutils.js:814 -msgid "major 7th" +#: js/turtleactions/IntervalsActions.js:124 +msgid "above" msgstr "" -#: js/musicutils.js:815 -msgid "minor 7th" +#: js/turtleactions/IntervalsActions.js:131 +msgid "plus" msgstr "" -#: js/musicutils.js:816 -msgid "dominant 7th" +#: js/turtleactions/IntervalsActions.js:139 +msgid " below" msgstr "" -#: js/musicutils.js:817 -msgid "minor-major 7th" +#: js/turtleactions/IntervalsActions.js:257 +msgid "Adding missing pitch number 0." msgstr "" -#: js/musicutils.js:818 -msgid "fully-diminished 7th" +#: js/turtleactions/IntervalsActions.js:265 +msgid "Ignoring pitch numbers less than zero or greater than eleven." msgstr "" -#: js/musicutils.js:819 -msgid "half-diminished 7th" +#: js/turtleactions/IntervalsActions.js:271 +msgid "Ignoring duplicate pitch numbers." msgstr "" -#: js/musicutils.js:4379 -#: js/musicutils.js:4416 -msgid "current" +#: js/turtleactions/ToneActions.js:134 +msgid "Vibrato intensity must be between 1 and 100." msgstr "" -#: js/musicutils.js:4382 -#: js/musicutils.js:4407 -msgid "next" +#: js/turtleactions/ToneActions.js:139 +msgid "Vibrato rate must be greater than 0." msgstr "" -#: js/musicutils.js:4385 -#: js/musicutils.js:4412 -msgid "previous" +#: js/turtleactions/ToneActions.js:192 +#: js/turtleactions/ToneActions.js:265 +#.TRANS: Depth is the intesity of the tremolo or chorus effect. +msgid "Depth is out of range." msgstr "" -#: js/synthutils.js:104 -#.TRANS: simple monotone synthesizer -msgid "simple-2" +#: js/turtleactions/ToneActions.js:301 +msgid "Distortion must be from 0 to 100." msgstr "" -#: js/synthutils.js:106 -#.TRANS: simple monotone synthesizer -msgid "simple-3" +#: js/turtleactions/ToneActions.js:332 +#.TRANS: partials components in a harmonic series +msgid "Partial must be greater than or equal to 0." msgstr "" -#: js/synthutils.js:108 -#.TRANS: simple monotone synthesizer -msgid "simple-4" +#: js/turtleactions/ToneActions.js:378 +#: js/turtleactions/ToneActions.js:417 +#: js/turtleactions/ToneActions.js:456 +#: js/widgets/timbre.js:782 +msgid "Unable to use synth due to existing oscillator" msgstr "" -#: js/synthutils.js:141 -#.TRANS: musical instrument -msgid "taiko" +#: js/turtleactions/ToneActions.js:388 +#: js/turtleactions/ToneActions.js:427 +msgid "The input cannot be negative." msgstr "" -#: js/modewidget.js:86 -#: js/modewidget.js:88 -#: js/modewidget.js:642 -#: js/modewidget.js:644 -#: js/modewidget.js:712 -#: js/modewidget.js:714 -#: js/temperament.js:2078 -#: js/rhythmruler.js:189 -#: js/rhythmruler.js:1410 -#: js/rhythmruler.js:1412 -#: js/rhythmruler.js:1435 -#: js/rhythmruler.js:1437 -#: js/meterwidget.js:89 -#: js/meterwidget.js:91 +#: js/widgets/modewidget.js:86 +#: js/widgets/modewidget.js:88 +#: js/widgets/modewidget.js:642 +#: js/widgets/modewidget.js:644 +#: js/widgets/modewidget.js:712 +#: js/widgets/modewidget.js:714 +#: js/widgets/meterwidget.js:194 +#: js/widgets/meterwidget.js:196 +#: js/widgets/temperament.js:2236 +#: js/widgets/rhythmruler.js:457 +#: js/widgets/rhythmruler.js:1790 +#: js/widgets/rhythmruler.js:1792 +#: js/widgets/rhythmruler.js:1816 +#: js/widgets/rhythmruler.js:1818 msgid "Play all" msgstr "" -#: js/modewidget.js:115 -#: js/pitchstaircase.js:641 -#: js/phrasemaker.js:339 -#: js/pitchdrummatrix.js:94 -#: js/pitchslider.js:125 -#: js/temperament.js:2083 -#: js/musickeyboard.js:530 -#: js/timbre.js:756 -#: js/meterwidget.js:124 -#: js/arpeggio.js:103 +#: js/widgets/modewidget.js:115 +#: js/widgets/meterwidget.js:229 +#: js/widgets/pitchdrummatrix.js:166 +#: js/widgets/pitchslider.js:125 +#: js/widgets/pitchstaircase.js:641 +#: js/widgets/temperament.js:2244 +#: js/widgets/timbre.js:756 +#: js/widgets/arpeggio.js:103 +#: js/widgets/musickeyboard.js:688 +#: js/widgets/phrasemaker.js:550 msgid "Save" msgstr "" -#: js/modewidget.js:121 -#: js/pitchstaircase.js:686 -#: js/phrasemaker.js:356 -#: js/pitchdrummatrix.js:109 -#: js/musickeyboard.js:534 -#: js/rhythmruler.js:269 -#: js/arpeggio.js:118 +#: js/widgets/modewidget.js:121 +#: js/widgets/pitchdrummatrix.js:181 +#: js/widgets/pitchstaircase.js:686 +#: js/widgets/arpeggio.js:118 +#: js/widgets/musickeyboard.js:696 +#: js/widgets/phrasemaker.js:567 +#: js/widgets/rhythmruler.js:601 #.TRANS: clear all subdivisions from the ruler. msgid "Clear" msgstr "" -#: js/modewidget.js:127 +#: js/widgets/modewidget.js:127 msgid "Rotate counter clockwise" msgstr "" -#: js/modewidget.js:133 +#: js/widgets/modewidget.js:133 msgid "Rotate clockwise" msgstr "" -#: js/modewidget.js:139 +#: js/widgets/modewidget.js:139 msgid "Invert" msgstr "" -#: js/modewidget.js:145 -#: js/pitchstaircase.js:678 -#: js/rhythmruler.js:258 -#: js/timbre.js:963 +#: js/widgets/modewidget.js:145 +#: js/widgets/pitchstaircase.js:678 +#: js/widgets/timbre.js:963 +#: js/widgets/rhythmruler.js:578 msgid "Undo" msgstr "" -#: js/modewidget.js:163 +#: js/widgets/modewidget.js:163 #.TRANS: A circle of notes represents the musical mode. msgid "Click in the circle to select notes for the mode." msgstr "" -#: js/modewidget.js:1017 -#: js/pitchstaircase.js:580 -#: js/phrasemaker.js:4855 -#: js/temperament.js:1754 -#: js/rhythmruler.js:1865 -#: js/rhythmruler.js:2081 -#: js/tempo.js:414 +#: js/widgets/modewidget.js:1017 +#: js/widgets/pitchstaircase.js:580 +#: js/widgets/temperament.js:1929 +#: js/widgets/tempo.js:414 +#: js/widgets/phrasemaker.js:5356 +#: js/widgets/rhythmruler.js:2254 +#: js/widgets/rhythmruler.js:2472 msgid "New action block generated!" msgstr "" -#: js/oscilloscope.js:79 -msgid "Zoom In" -msgstr "" - -#: js/oscilloscope.js:88 -msgid "Zoom Out" -msgstr "" - -#: js/pitchstaircase.js:624 -msgid "Play chord" -msgstr "" - -#: js/pitchstaircase.js:632 -msgid "Play scale" +#: js/widgets/meterwidget.js:275 +msgid "Reset" msgstr "" -#: js/pitchstaircase.js:696 -msgid "Click on a note to create a new step." +#: js/widgets/meterwidget.js:301 +msgid "Click in the circle to select strong beats for the meter." msgstr "" -#: js/phrasemaker.js:363 -msgid "Export" +#: js/widgets/oscilloscope.js:79 +msgid "Zoom In" msgstr "" -#: js/phrasemaker.js:370 -msgid "Sort" +#: js/widgets/oscilloscope.js:88 +msgid "Zoom Out" msgstr "" -#: js/phrasemaker.js:373 -#: js/musickeyboard.js:559 -msgid "Add note" +#: js/widgets/pitchdrummatrix.js:356 +#: js/widgets/pitchdrummatrix.js:752 +msgid "Click in the grid to map notes to drums." msgstr "" -#: js/phrasemaker.js:764 -msgid "Click on the table to add notes." +#: js/widgets/pitchslider.js:103 +msgid "Move up" msgstr "" -#: js/phrasemaker.js:2414 -#: js/phrasemaker.js:2543 -msgid "tuplet value" +#: js/widgets/pitchslider.js:114 +msgid "Move down" msgstr "" -#: js/pitchdrummatrix.js:270 -#: js/pitchdrummatrix.js:639 -msgid "Click in the grid to map notes to drums." +#: js/widgets/pitchslider.js:136 +msgid "Click on the slider to create a note block." msgstr "" -#: js/pitchslider.js:103 -msgid "Move up" +#: js/widgets/pitchstaircase.js:624 +msgid "Play chord" msgstr "" -#: js/pitchslider.js:114 -msgid "Move down" +#: js/widgets/pitchstaircase.js:632 +msgid "Play scale" msgstr "" -#: js/pitchslider.js:136 -msgid "Click on the slider to create a note block." +#: js/widgets/pitchstaircase.js:696 +msgid "Click on a note to create a new step." msgstr "" -#: js/temperament.js:215 +#: js/widgets/temperament.js:321 msgid "back to 2:1 octave space" msgstr "" -#: js/temperament.js:323 +#: js/widgets/temperament.js:447 msgid "edit" msgstr "" -#: js/temperament.js:330 -#: js/temperament.js:332 -#: js/temperament.js:1336 -#: js/temperament.js:1338 +#: js/widgets/temperament.js:454 +#: js/widgets/temperament.js:456 +#: js/widgets/temperament.js:1493 +#: js/widgets/temperament.js:1495 msgid "close" msgstr "" -#: js/temperament.js:423 -#: js/temperament.js:736 -#: js/temperament.js:743 -#: js/temperament.js:845 -#: js/temperament.js:935 -#: js/temperament.js:942 -#: js/temperament.js:1015 -#: js/temperament.js:1284 -#: js/temperament.js:1354 -#: js/temperament.js:1430 +#: js/widgets/temperament.js:552 +#: js/widgets/temperament.js:877 +#: js/widgets/temperament.js:884 +#: js/widgets/temperament.js:986 +#: js/widgets/temperament.js:1080 +#: js/widgets/temperament.js:1087 +#: js/widgets/temperament.js:1160 +#: js/widgets/temperament.js:1433 +#: js/widgets/temperament.js:1511 +#: js/widgets/temperament.js:1596 msgid "done" msgstr "" -#: js/temperament.js:477 -#: js/temperament.js:482 -#: js/temperament.js:918 +#: js/widgets/temperament.js:610 +#: js/widgets/temperament.js:615 +#: js/widgets/temperament.js:1063 msgid "ratio" msgstr "" -#: js/temperament.js:483 +#: js/widgets/temperament.js:616 msgid "interval" msgstr "" -#: js/temperament.js:611 +#: js/widgets/temperament.js:744 msgid "non scalar" msgstr "" -#: js/temperament.js:650 +#: js/widgets/temperament.js:787 msgid "ratios" msgstr "" -#: js/temperament.js:650 +#: js/widgets/temperament.js:787 msgid "arbitrary" msgstr "" -#: js/temperament.js:719 +#: js/widgets/temperament.js:860 msgid "number of divisions" msgstr "" -#: js/temperament.js:741 -#: js/temperament.js:858 -#: js/temperament.js:940 -#: js/temperament.js:1033 +#: js/widgets/temperament.js:882 +#: js/widgets/temperament.js:999 +#: js/widgets/temperament.js:1085 +#: js/widgets/temperament.js:1178 msgid "preview" msgstr "" -#: js/temperament.js:788 +#: js/widgets/temperament.js:929 msgid "The Number of divisions is too large." msgstr "" -#: js/temperament.js:921 +#: js/widgets/temperament.js:1066 msgid "recursion" msgstr "" -#: js/temperament.js:1450 +#: js/widgets/temperament.js:1616 msgid "The octave ratio has changed. This changes temperament significantly." msgstr "" -#: js/temperament.js:2087 +#: js/widgets/temperament.js:2248 msgid "Table" msgstr "" -#: js/temperament.js:2185 +#: js/widgets/temperament.js:2356 msgid "Add pitches" msgstr "" -#: js/musickeyboard.js:570 -msgid "Metronome" +#: js/widgets/tempo.js:78 +#: js/widgets/tempo.js:97 +#: js/widgets/tempo.js:99 +#: js/widgets/aiwidget.js:134 +#: js/widgets/aiwidget.js:136 +#: js/widgets/rhythmruler.js:681 +#: js/widgets/rhythmruler.js:683 +#: js/widgets/rhythmruler.js:1864 +#: js/widgets/rhythmruler.js:1866 +#: js/widgets/sampler.js:180 +#: js/widgets/sampler.js:182 +msgid "Pause" msgstr "" -#: js/musickeyboard.js:1296 -#: plugins/rodi.rtp:193 -msgid "duration" +#: js/widgets/tempo.js:113 +msgid "Save tempo" msgstr "" -#: js/musickeyboard.js:2840 -msgid "New action blocks generated!" +#: js/widgets/tempo.js:144 +msgid "speed up" msgstr "" -#: js/musickeyboard.js:2841 -msgid "New action block generated" +#: js/widgets/tempo.js:150 +msgid "slow down" msgstr "" -#: js/musickeyboard.js:2984 -#: js/musickeyboard.js:2992 -msgid "MIDI device present." +#: js/widgets/tempo.js:194 +msgid "Adjust the tempo with the buttons." msgstr "" -#: js/musickeyboard.js:2995 -msgid "No MIDI device found." +#: js/widgets/tempo.js:261 +msgid "Please enter a number between 30 and 1000" msgstr "" -#: js/musickeyboard.js:3000 -msgid "Failed to get MIDI access in browser." +#: js/widgets/tempo.js:268 +#: js/widgets/tempo.js:271 +msgid "The beats per minute must be between 30 and 1000." msgstr "" -#: js/rhythmruler.js:202 -msgid "Save rhythms" +#: js/widgets/tempo.js:287 +msgid "The beats per minute must be below 1000." msgstr "" -#: js/rhythmruler.js:222 -msgid "Save drum machine" +#: js/widgets/tempo.js:303 +msgid "The beats per minute must be above 30" msgstr "" -#: js/rhythmruler.js:263 -#.TRANS: user can tap out a rhythm by clicking on a ruler. -msgid "Tap a rhythm" +#: js/widgets/timbre.js:766 +msgid "Synthesizer" msgstr "" -#: js/rhythmruler.js:342 -#: js/rhythmruler.js:344 -#: js/rhythmruler.js:1481 -#: js/rhythmruler.js:1483 -#: js/sampler.js:110 -#: js/sampler.js:112 -#: js/tempo.js:78 -#: js/tempo.js:97 -#: js/tempo.js:99 -msgid "Pause" +#: js/widgets/timbre.js:789 +msgid "Oscillator" msgstr "" -#: js/rhythmruler.js:478 -msgid "Click on the ruler to divide it." +#: js/widgets/timbre.js:840 +msgid "Envelope" msgstr "" -#: js/rhythmruler.js:603 -#: js/rhythmruler.js:605 -#: js/rhythmruler.js:804 -#: js/rhythmruler.js:806 -#: js/rhythmruler.js:1386 -#: js/rhythmruler.js:1388 -msgid "tap a rhythm" +#: js/widgets/timbre.js:886 +#: planet/js/GlobalTag.js:50 +#.TRANS: On the Planet, we use labels to tag projects. +msgid "Effects" msgstr "" -#: js/rhythmruler.js:1084 -msgid "Maximum value of 256 has been exceeded." +#: js/widgets/timbre.js:904 +msgid "Filter" msgstr "" -#: js/sampler.js:137 -msgid "Warning: Sample is bigger than 1MB." +#: js/widgets/timbre.js:946 +msgid "Add filter" msgstr "" -#: js/sampler.js:142 -msgid "Upload failed: Sample is not a .wav file." +#: js/widgets/timbre.js:987 +msgid "Click on buttons to open the timbre design tools." msgstr "" -#: js/sampler.js:164 -msgid "A new sample block was generated." +#: js/widgets/timbre.js:1273 +msgid "harmonicity" msgstr "" -#: js/sampler.js:255 -msgid "Upload sample" +#: js/widgets/timbre.js:1340 +#: js/widgets/timbre.js:1406 +msgid "modulation index" msgstr "" -#: js/sampler.js:306 -msgid "Save sample" +#: js/widgets/timbre.js:1484 +msgid "vibrato amount" msgstr "" -#: js/sampler.js:697 -#.TRANS: The reference tone is a sound used for comparison. -msgid "reference tone" +#: js/widgets/timbre.js:1919 +msgid "Filter already present." msgstr "" -#: js/tempo.js:113 -msgid "Save tempo" +#: js/widgets/timbre.js:2322 +msgid "delay (MS)" msgstr "" -#: js/tempo.js:144 -msgid "speed up" +#: js/widgets/timbre.js:2507 +msgid "distortion amount" msgstr "" -#: js/tempo.js:150 -msgid "slow down" +#: js/widgets/aiwidget.js:180 +#: js/widgets/sampler.js:227 +msgid "Warning: Sample is bigger than 1MB." msgstr "" -#: js/tempo.js:194 -msgid "Adjust the tempo with the buttons." +#: js/widgets/aiwidget.js:539 +msgid "New start block generated" msgstr "" -#: js/tempo.js:261 -msgid "Please enter a number between 30 and 1000" +#: js/widgets/aiwidget.js:541 +msgid "MIDI loading. This may take some time depending upon the number of notes in the track" msgstr "" -#: js/tempo.js:268 -#: js/tempo.js:271 -msgid "The beats per minute must be between 30 and 1000." +#: js/widgets/aiwidget.js:551 +#: js/widgets/sampler.js:254 +msgid "Upload failed: Sample is not a .wav file." msgstr "" -#: js/tempo.js:287 -msgid "The beats per minute must be below 1000." +#: js/widgets/aiwidget.js:679 +#: js/widgets/sampler.js:432 +msgid "Save sample" msgstr "" -#: js/tempo.js:303 -msgid "The beats per minute must be above 30" +#: js/widgets/aiwidget.js:701 +msgid "AI Music" msgstr "" -#: js/timbre.js:766 -msgid "Synthesizer" +#: js/widgets/arpeggio.js:239 +msgid "Click in the grid to add steps to the arpeggio." msgstr "" -#: js/timbre.js:789 -msgid "Oscillator" +#: js/widgets/help.js:95 +#: js/widgets/help.js:125 +#: js/widgets/help.js:146 +#: js/widgets/help.js:158 +#: js/widgets/help.js:376 +#: js/widgets/help.js:391 +msgid "Take a tour" msgstr "" -#: js/timbre.js:840 -msgid "Envelope" +#: js/widgets/musickeyboard.js:725 +#: js/widgets/phrasemaker.js:584 +msgid "Add note" msgstr "" -#: js/timbre.js:886 -#: js/GlobalTag.js:50 -#.TRANS: On the Planet, we use labels to tag projects. -msgid "Effects" +#: js/widgets/musickeyboard.js:744 +msgid "Metronome" +msgstr "" + +#: js/widgets/musickeyboard.js:1549 +#: plugins/rodi.rtp:193 +msgid "duration" +msgstr "" + +#: js/widgets/musickeyboard.js:3179 +msgid "New action blocks generated" +msgstr "" + +#: js/widgets/musickeyboard.js:3180 +msgid "New action block generated" msgstr "" -#: js/timbre.js:904 -msgid "Filter" +#: js/widgets/musickeyboard.js:3365 +#: js/widgets/musickeyboard.js:3373 +msgid "MIDI device present." msgstr "" -#: js/timbre.js:946 -msgid "Add filter" +#: js/widgets/musickeyboard.js:3376 +msgid "No MIDI device found." msgstr "" -#: js/timbre.js:987 -msgid "Click on buttons to open the timbre design tools." +#: js/widgets/musickeyboard.js:3386 +msgid "Failed to get MIDI access in browser." msgstr "" -#: js/timbre.js:1273 -msgid "harmonicity" +#: js/widgets/phrasemaker.js:574 +msgid "Export" msgstr "" -#: js/timbre.js:1340 -#: js/timbre.js:1406 -msgid "modulation index" +#: js/widgets/phrasemaker.js:581 +msgid "Sort" msgstr "" -#: js/timbre.js:1484 -msgid "vibrato amount" +#: js/widgets/phrasemaker.js:975 +msgid "Click on the table to add notes." msgstr "" -#: js/timbre.js:1919 -msgid "Filter already present." +#: js/widgets/phrasemaker.js:2677 +#: js/widgets/phrasemaker.js:2819 +msgid "tuplet value" msgstr "" -#: js/timbre.js:2322 -msgid "delay (MS)" +#: js/widgets/rhythmruler.js:486 +msgid "Save rhythms" msgstr "" -#: js/timbre.js:2507 -msgid "distortion amount" +#: js/widgets/rhythmruler.js:512 +msgid "Save drum machine" msgstr "" -#: js/meterwidget.js:170 -msgid "Reset" +#: js/widgets/rhythmruler.js:589 +#.TRANS: user can tap out a rhythm by clicking on a ruler. +msgid "Tap a rhythm" msgstr "" -#: js/meterwidget.js:196 -msgid "Click in the circle to select strong beats for the meter." +#: js/widgets/rhythmruler.js:817 +msgid "Click on the ruler to divide it." msgstr "" -#: js/arpeggio.js:239 -msgid "Click in the grid to add steps to the arpeggio." +#: js/widgets/rhythmruler.js:950 +#: js/widgets/rhythmruler.js:952 +#: js/widgets/rhythmruler.js:1152 +#: js/widgets/rhythmruler.js:1154 +#: js/widgets/rhythmruler.js:1765 +#: js/widgets/rhythmruler.js:1767 +msgid "tap a rhythm" msgstr "" -#: js/ProjectStorage.js:243 -msgid "anonymous" +#: js/widgets/rhythmruler.js:1459 +msgid "Maximum value of 256 has been exceeded." msgstr "" -#: js/GlobalCard.js:68 -msgid "Share" +#: js/widgets/sampler.js:237 +msgid "Recording started..." msgstr "" -#: js/GlobalCard.js:74 -msgid "Flags" +#: js/widgets/sampler.js:245 +msgid "Recording complete..." msgstr "" -#: js/LocalCard.js:36 -msgid "View published project" +#: js/widgets/sampler.js:283 +msgid "A new sample block was generated." msgstr "" -#: js/LocalCard.js:42 -msgid "Publish project" +#: js/widgets/sampler.js:378 +msgid "Upload sample" msgstr "" -#: js/LocalCard.js:51 -msgid "Edit project" +#: js/widgets/sampler.js:399 +msgid "Warning: Your sample cannot be loaded because it is >1MB." msgstr "" -#: js/LocalCard.js:52 -msgid "Delete project" +#: js/widgets/sampler.js:448 +msgid "Toggle Mic" msgstr "" -#: js/LocalCard.js:53 -msgid "Download project" +#: js/widgets/sampler.js:458 +msgid "Playback" msgstr "" -#: js/LocalCard.js:55 -msgid "Duplicate project" +#: js/widgets/sampler.js:979 +#.TRANS: The reference tone is a sound used for comparison. +msgid "reference tone" msgstr "" -#: js/GlobalTag.js:28 +#: planet/js/GlobalTag.js:28 #.TRANS: On the Planet, we use labels to tag projects. msgid "All Projects" msgstr "" -#: js/GlobalTag.js:30 -#: js/StringHelper.js:37 +#: planet/js/GlobalTag.js:30 +#: planet/js/StringHelper.js:37 #.TRANS: On the Planet, we use labels to tag projects. msgid "My Projects" msgstr "" -#: js/GlobalTag.js:32 +#: planet/js/GlobalTag.js:32 #.TRANS: On the Planet, we use labels to tag projects. msgid "Examples" msgstr "" -#: js/GlobalTag.js:34 +#: planet/js/GlobalTag.js:34 #.TRANS: On the Planet, we use labels to tag projects. msgid "Music" msgstr "" -#: js/GlobalTag.js:36 +#: planet/js/GlobalTag.js:36 #.TRANS: On the Planet, we use labels to tag projects. msgid "Art" msgstr "" -#: js/GlobalTag.js:38 +#: planet/js/GlobalTag.js:38 #.TRANS: On the Planet, we use labels to tag projects. msgid "Math" msgstr "" -#: js/GlobalTag.js:40 +#: planet/js/GlobalTag.js:40 #.TRANS: On the Planet, we use labels to tag projects. msgid "Interactive" msgstr "" -#: js/GlobalTag.js:42 +#: planet/js/GlobalTag.js:42 #.TRANS: On the Planet, we use labels to tag projects. msgid "Design" msgstr "" -#: js/GlobalTag.js:44 +#: planet/js/GlobalTag.js:44 #.TRANS: On the Planet, we use labels to tag projects. msgid "Game" msgstr "" -#: js/GlobalTag.js:46 +#: planet/js/GlobalTag.js:46 #.TRANS: On the Planet, we use labels to tag projects. msgid "Media" msgstr "" -#: js/GlobalTag.js:48 +#: planet/js/GlobalTag.js:48 #.TRANS: On the Planet, we use labels to tag projects. msgid "Sensors" msgstr "" -#: js/GlobalTag.js:52 +#: planet/js/GlobalTag.js:52 #.TRANS: On the Planet, we use labels to tag projects. msgid "Code Snippet" msgstr "" -#: js/helper.js:149 -#: js/StringHelper.js:49 -msgid "Show more tags" +#: planet/js/LocalCard.js:36 +msgid "View published project" msgstr "" -#: js/helper.js:150 -msgid "Show fewer tags" +#: planet/js/LocalCard.js:42 +msgid "Publish project" +msgstr "" + +#: planet/js/LocalCard.js:51 +msgid "Edit project" +msgstr "" + +#: planet/js/LocalCard.js:52 +msgid "Delete project" +msgstr "" + +#: planet/js/LocalCard.js:53 +msgid "Download project" +msgstr "" + +#: planet/js/LocalCard.js:55 +msgid "Duplicate project" +msgstr "" + +#: planet/js/ProjectStorage.js:243 +msgid "anonymous" +msgstr "" + +#: planet/js/SaveInterface.js:34 +msgid "Open in Music Blocks" +msgstr "" + +#: planet/js/SaveInterface.js:35 +msgid "Open in Turtle Blocks" +msgstr "" + +#: planet/js/GlobalCard.js:68 +msgid "Share" +msgstr "" + +#: planet/js/GlobalCard.js:74 +msgid "Flags" +msgstr "" + +#: planet/js/GlobalPlanet.js:35 +msgid "No results found." +msgstr "" + +#: planet/js/GlobalPlanet.js:51 +msgid "Remix of" +msgstr "" + +#: planet/js/GlobalPlanet.js:509 +msgid "Cannot connect to server" msgstr "" -#: js/ProjectViewer.js:30 +#: planet/js/ProjectViewer.js:30 msgid "Error: Report could not be submitted. Try again later." msgstr "" -#: js/ProjectViewer.js:31 +#: planet/js/ProjectViewer.js:31 msgid "Thank you for reporting this project. A moderator will review the project shortly, to verify violation of the Sugar Labs Code of Conduct." msgstr "" -#: js/ProjectViewer.js:32 -#: js/StringHelper.js:62 -#: js/StringHelper.js:64 -#: js/StringHelper.js:68 +#: planet/js/ProjectViewer.js:32 +#: planet/js/StringHelper.js:62 +#: planet/js/StringHelper.js:64 +#: planet/js/StringHelper.js:68 msgid "Report Project" msgstr "" -#: js/ProjectViewer.js:33 -#: js/StringHelper.js:63 +#: planet/js/ProjectViewer.js:33 +#: planet/js/StringHelper.js:63 msgid "Project Reported" msgstr "" -#: js/ProjectViewer.js:34 +#: planet/js/ProjectViewer.js:34 msgid "Report description required" msgstr "" -#: js/ProjectViewer.js:35 +#: planet/js/ProjectViewer.js:35 msgid "Report description too long" msgstr "" -#: js/StringHelper.js:30 +#: planet/js/Publisher.js:30 +msgid "Feature unavailable - cannot connect to server. Reload Music Blocks to try again." +msgstr "" + +#: planet/js/Publisher.js:220 +#: planet/js/Publisher.js:237 +msgid "This field is required" +msgstr "" + +#: planet/js/Publisher.js:227 +msgid "Title too long" +msgstr "" + +#: planet/js/Publisher.js:244 +msgid "Description too long" +msgstr "" + +#: planet/js/Publisher.js:341 +msgid "Server Error" +msgstr "" + +#: planet/js/Publisher.js:341 +msgid "Try Again" +msgstr "" + +#: planet/js/StringHelper.js:30 msgid "Planet" msgstr "" -#: js/StringHelper.js:31 +#: planet/js/StringHelper.js:31 msgid "Close Planet" msgstr "" -#: js/StringHelper.js:32 +#: planet/js/StringHelper.js:32 msgid "Open project from file" msgstr "" -#: js/StringHelper.js:34 +#: planet/js/StringHelper.js:34 msgid "Local" msgstr "" -#: js/StringHelper.js:35 +#: planet/js/StringHelper.js:35 msgid "Global" msgstr "" -#: js/StringHelper.js:36 +#: planet/js/StringHelper.js:36 msgid "Search for a project" msgstr "" -#: js/StringHelper.js:38 +#: planet/js/StringHelper.js:38 msgid "Publish Project" msgstr "" -#: js/StringHelper.js:40 +#: planet/js/StringHelper.js:40 msgid "Tags (max 5)" msgstr "" -#: js/StringHelper.js:41 -#: js/StringHelper.js:61 +#: planet/js/StringHelper.js:41 +#: planet/js/StringHelper.js:61 msgid "Description" msgstr "" -#: js/StringHelper.js:42 -#: js/StringHelper.js:67 +#: planet/js/StringHelper.js:42 +#: planet/js/StringHelper.js:67 msgid "Submit" msgstr "" -#: js/StringHelper.js:43 -#: js/StringHelper.js:47 +#: planet/js/StringHelper.js:43 +#: planet/js/StringHelper.js:47 msgid "Cancel" msgstr "" -#: js/StringHelper.js:44 +#: planet/js/StringHelper.js:44 msgid "Delete \\"\\"?" msgstr "" -#: js/StringHelper.js:45 +#: planet/js/StringHelper.js:45 msgid "Permanently delete project \\"\\"?" msgstr "" -#: js/StringHelper.js:48 +#: planet/js/StringHelper.js:48 msgid "Explore Projects" msgstr "" -#: js/StringHelper.js:50 +#: planet/js/StringHelper.js:49 +#: planet/js/helper.js:149 +msgid "Show more tags" +msgstr "" + +#: planet/js/StringHelper.js:50 msgid "Most recent" msgstr "" -#: js/StringHelper.js:51 +#: planet/js/StringHelper.js:51 msgid "Most liked" msgstr "" -#: js/StringHelper.js:52 +#: planet/js/StringHelper.js:52 msgid "Most downloaded" msgstr "" -#: js/StringHelper.js:53 +#: planet/js/StringHelper.js:53 msgid "A-Z" msgstr "" -#: js/StringHelper.js:54 +#: planet/js/StringHelper.js:54 msgid "Sort by" msgstr "" -#: js/StringHelper.js:55 +#: planet/js/StringHelper.js:55 msgid "Load More Projects" msgstr "" -#: js/StringHelper.js:56 +#: planet/js/StringHelper.js:56 msgid "Last Updated" msgstr "" -#: js/StringHelper.js:57 +#: planet/js/StringHelper.js:57 msgid "Creation Date" msgstr "" -#: js/StringHelper.js:58 +#: planet/js/StringHelper.js:58 msgid "Number of Downloads:" msgstr "" -#: js/StringHelper.js:59 +#: planet/js/StringHelper.js:59 msgid "Number of Likes:" msgstr "" -#: js/StringHelper.js:60 +#: planet/js/StringHelper.js:60 msgid "Tags:" msgstr "" -#: js/StringHelper.js:65 +#: planet/js/StringHelper.js:65 msgid "Report projects which violate the Sugar Labs Code of Conduct." msgstr "" -#: js/StringHelper.js:66 +#: planet/js/StringHelper.js:66 msgid "Reason for reporting project" msgstr "" -#: js/StringHelper.js:70 +#: planet/js/StringHelper.js:70 msgid "Download as File" msgstr "" -#: js/GlobalPlanet.js:35 -msgid "No results found." -msgstr "" - -#: js/GlobalPlanet.js:51 -msgid "Remix of" -msgstr "" - -#: js/GlobalPlanet.js:509 -msgid "Cannot connect to server" -msgstr "" - -#: js/Publisher.js:30 -msgid "Feature unavailable - cannot connect to server. Reload Music Blocks to try again." -msgstr "" - -#: js/Publisher.js:218 -#: js/Publisher.js:235 -msgid "This field is required" -msgstr "" - -#: js/Publisher.js:225 -msgid "Title too long" +#: planet/js/helper.js:150 +msgid "Show fewer tags" msgstr "" -#: js/Publisher.js:242 -msgid "Description too long" +#: plugins/accelerometer.rtp:48 +msgid "motion x" msgstr "" -#: js/Publisher.js:339 -msgid "Server Error" +#: plugins/accelerometer.rtp:56 +msgid "motion y" msgstr "" -#: js/Publisher.js:339 -msgid "Try Again" +#: plugins/accelerometer.rtp:64 +msgid "motion z" msgstr "" -#: js/SaveInterface.js:34 -msgid "Open in Music Blocks" +#: plugins/facebook.rtp:27 +msgid "publish" msgstr "" -#: js/SaveInterface.js:35 -msgid "Open in Turtle Blocks" +#: plugins/maths.rtp:62 +msgid "power" msgstr "" -#: plugins/weather.rtp:68 -#: plugins/weather.rtp:97 -msgid "Days ahead must be in the range of -1 to 5." +#: plugins/maths.rtp:62 +msgid "base" msgstr "" -#: plugins/weather.rtp:122 -msgid "forecast" +#: plugins/maths.rtp:62 +msgid "exp" msgstr "" -#: plugins/weather.rtp:123 -#: plugins/weather.rtp:137 -#: plugins/weather.rtp:150 -msgid "city" +#: plugins/maths.rtp:99 +msgid "floor" msgstr "" -#: plugins/weather.rtp:124 -#: plugins/weather.rtp:138 -#: plugins/weather.rtp:151 -msgid "day" +#: plugins/maths.rtp:104 +msgid "ceiling" msgstr "" -#: plugins/weather.rtp:136 -msgid "high" +#: plugins/maths.rtp:109 +msgid "to degrees" msgstr "" -#: plugins/weather.rtp:149 -msgid "low" +#: plugins/maths.rtp:114 +msgid "to radians" msgstr "" #: plugins/nutrition.rtp:104 @@ -9455,45 +9864,6 @@ msgstr "" msgid "water" msgstr "" -#: plugins/maths.rtp:62 -#: plugins/examples.rtp:93 -msgid "power" -msgstr "" - -#: plugins/maths.rtp:62 -#: plugins/examples.rtp:93 -msgid "base" -msgstr "" - -#: plugins/maths.rtp:62 -#: plugins/examples.rtp:93 -msgid "exp" -msgstr "" - -#: plugins/maths.rtp:99 -#: plugins/examples.rtp:130 -msgid "floor" -msgstr "" - -#: plugins/maths.rtp:104 -#: plugins/examples.rtp:135 -msgid "ceiling" -msgstr "" - -#: plugins/maths.rtp:109 -#: plugins/examples.rtp:140 -msgid "to degrees" -msgstr "" - -#: plugins/maths.rtp:114 -#: plugins/examples.rtp:145 -msgid "to radians" -msgstr "" - -#: plugins/facebook.rtp:27 -msgid "publish" -msgstr "" - #: plugins/rodi.rtp:172 msgid "blink" msgstr "" @@ -9522,18 +9892,66 @@ msgstr "" msgid "move" msgstr "" -#: plugins/accelerometer.rtp:48 -msgid "motion x" +#: plugins/weather.rtp:68 +#: plugins/weather.rtp:97 +msgid "Days ahead must be in the range of -1 to 5." msgstr "" -#: plugins/accelerometer.rtp:56 -msgid "motion y" +#: plugins/weather.rtp:122 +msgid "forecast" msgstr "" -#: plugins/accelerometer.rtp:64 -msgid "motion z" +#: plugins/weather.rtp:123 +#: plugins/weather.rtp:137 +#: plugins/weather.rtp:150 +msgid "city" +msgstr "" + +#: plugins/weather.rtp:124 +#: plugins/weather.rtp:138 +#: plugins/weather.rtp:151 +msgid "day" +msgstr "" + +#: plugins/weather.rtp:136 +msgid "high" +msgstr "" + +#: plugins/weather.rtp:149 +msgid "low" msgstr "" +#: js/toolbar.js:70 + +#: js/toolbar.js:130 + +#: js/toolbar.js:194 + +#: js/toolbar.js:249 + +#~msgid "Toggle JavaScript Editor" +#~msgstr "" + +#: js/EnsembleBlocks.js:643 + +#~msgid "The Turrle pitch block returns the current pitch number being played by the specified turtle." +#~msgstr "" + +#: js/PitchActions.js:88 + +#~msgid "The Scalar Step Block must be used inside of a Note Block." +#~msgstr "" + +#: js/PitchActions.js:107 + +#~msgid "The Scalar Step Block must be preceded by a Pitch Block." +#~msgstr "" + +#: js/musickeyboard.js:2840 + +#~msgid "New action blocks generated!" +#~msgstr "" + #: js/toolbar.js:110 #: js/toolbar.js:204 @@ -9874,11 +10292,6 @@ msgstr "" #~msgid "The Time block returns the number of seconds that the program has been running." #~msgstr "" -#: js/help.js:95 - -#~msgid "Take a tour" -#~msgstr "" - #: js/GlobalCard.js:48 #~msgid "More Details" @@ -12777,11 +13190,6 @@ msgstr "" #~msgid "The save-stack button saves a stack onto a custom palette. It appears after a \"long press\" on a stack." #~msgstr "" -#: js/musicutils.js:254 - -#~msgid "Custom" -#~msgstr "" - #: js/basicblocks.js:4785 #~msgid "Rhythm" diff --git a/po/am.po b/po/am.po index cf72f9fa2c..8a9d82aeee 100644 --- a/po/am.po +++ b/po/am.po @@ -2129,276 +2129,131 @@ #: js/planetInterface.js:104 #: js/planetInterface.js:104 #: js/planetInterface.js:104 -msgid "project undefined" -msgstr "" - -#: js/logo.js:61 -msgid "Not a valid pitch name" -msgstr "" - -#: js/logo.js:507 -#: js/ProgramBlocks.js:258 -#: js/ProgramBlocks.js:427 -msgid "You must select a file." -msgstr "" - -#: js/logo.js:1184 -#: js/turtles.js:118 -#: js/turtle-painter.js:1192 -#: js/turtle-painter.js:1193 -#: js/block.js:1463 -#: js/lilypond.js:757 -#: js/lilypond.js:921 -#: js/lilypond.js:959 -#: js/ActionBlocks.js:1223 -#: js/ProgramBlocks.js:1267 -msgid "start" -msgstr "ጀምር" - -#: js/logo.js:1696 -msgid "Playback is ready." -msgstr "" - -#: js/blocks.js:1011 -#: js/blocks.js:3427 -#: js/blocks.js:3428 -#: js/blocks.js:3653 -#: js/blocks.js:4012 -#: js/blocks.js:4205 -#: js/blocks.js:5343 -#: js/blocks.js:6474 -#: js/palette.js:527 -#: js/palette.js:536 -#: js/palette.js:545 -#: js/palette.js:554 -#: js/palette.js:1131 -#: js/palette.js:1142 -#: js/palette.js:1153 -#: js/palette.js:1164 -#: js/palette.js:1183 -#: js/rubrics.js:529 -#: js/macros.js:170 -#: js/macros.js:266 -#: js/macros.js:267 -#: js/macros.js:276 -#: js/macros.js:828 -#: js/block.js:1449 -#: js/block.js:4164 -#: js/block.js:4182 -#: js/block.js:4193 -#: js/turtledefs.js:128 -#: js/turtledefs.js:230 -#: js/ActionBlocks.js:254 -#: js/ActionBlocks.js:307 -#: js/ActionBlocks.js:617 -#: js/ActionBlocks.js:716 -#: js/ActionBlocks.js:961 -#: js/ActionBlocks.js:1049 -#: js/ActionBlocks.js:1322 -#: js/ActionBlocks.js:1325 -#: js/ActionBlocks.js:1337 -#: js/ActionBlocks.js:1404 -#: js/MeterBlocks.js:715 -#: js/MeterBlocks.js:768 -#: js/MeterBlocks.js:831 -#: js/MeterBlocks.js:892 -#: js/phrasemaker.js:4412 -#: js/musickeyboard.js:2647 -#: js/rhythmruler.js:1928 -#: js/rhythmruler.js:1935 -#: js/rhythmruler.js:2119 -#: js/rhythmruler.js:2126 -msgid "action" -msgstr "" - -#: js/blocks.js:1205 -#: js/blocks.js:3380 -#: js/blocks.js:3770 -#: js/blocks.js:3801 -#: js/blocks.js:3850 -#: js/blocks.js:3885 -#: js/blocks.js:6497 -#: js/palette.js:509 -#: js/palette.js:638 -#: js/palette.js:1107 -#: js/BoxesBlocks.js:282 -#: js/BoxesBlocks.js:285 -#: js/BoxesBlocks.js:405 -#: js/BoxesBlocks.js:594 -msgid "box" +#: js/SaveInterface.js:59 +#: js/SaveInterface.js:61 +#: js/SaveInterface.js:93 +msgid "Music Blocks Project" msgstr "" -#: js/blocks.js:1680 -msgid "Consider breaking this stack into parts." +#: js/SaveInterface.js:63 +msgid "This project was created in Music Blocks" msgstr "" -#: js/blocks.js:2408 -#: js/palette.js:653 -#: js/MediaBlocks.js:602 -msgid "open file" +#: js/SaveInterface.js:67 +msgid "Music Blocks is a Free/Libre Software application." msgstr "" -#: js/blocks.js:2415 -#: js/blocks.js:2423 -#: js/activity.js:1875 -msgid "audio file" +#: js/SaveInterface.js:69 +msgid "The source code can be accessed at" msgstr "" -#: js/blocks.js:2536 -#: js/blocks.js:3147 -#: js/block.js:3543 -msgid "on2" +#: js/SaveInterface.js:72 +msgid "For more information, please consult the" msgstr "" -#: js/blocks.js:2538 -#: js/blocks.js:3149 -#: js/block.js:3545 -msgid "off" +#: js/SaveInterface.js:76 +#: js/turtledefs.js:795 +msgid "Music Blocks Guide" msgstr "" -#: js/blocks.js:2543 -#: js/blocks.js:3154 -#: js/palette.js:618 -#: js/block.js:3466 -#: js/BooleanBlocks.js:77 -#: js/BooleanBlocks.js:167 -#: js/BooleanBlocks.js:251 -#: js/BooleanBlocks.js:335 -#: js/BooleanBlocks.js:433 -#: js/BooleanBlocks.js:539 -#: js/BooleanBlocks.js:640 -#: js/BooleanBlocks.js:741 -#: js/BooleanBlocks.js:847 -#: js/BooleanBlocks.js:948 -#: js/BooleanBlocks.js:1033 -#: js/SensorsBlocks.js:910 -msgid "true" +#: js/SaveInterface.js:83 +msgid "Alternatively, open the file in Music Blocks using the Load project button." msgstr "" -#: js/blocks.js:2545 -#: js/blocks.js:3156 -#: js/block.js:3466 -#: js/BooleanBlocks.js:79 -#: js/BooleanBlocks.js:169 -#: js/BooleanBlocks.js:253 -#: js/BooleanBlocks.js:337 -#: js/BooleanBlocks.js:435 -#: js/BooleanBlocks.js:541 -#: js/BooleanBlocks.js:642 -#: js/BooleanBlocks.js:743 -#: js/BooleanBlocks.js:849 -#: js/BooleanBlocks.js:950 -#: js/SensorsBlocks.js:912 -msgid "false" +#: js/SaveInterface.js:85 +msgid "Project Code" msgstr "" -#: js/blocks.js:3183 -#: js/palette.js:574 -#: js/MediaBlocks.js:892 -#: js/MediaBlocks.js:963 -msgid "text" -msgstr "ጽሑፍ" - -#: js/blocks.js:3379 -#: js/palette.js:641 -#: js/palette.js:642 -#: js/BoxesBlocks.js:514 -msgid "store in box" +#: js/SaveInterface.js:87 +msgid "This code stores data about the blocks in a project." msgstr "" -#: js/blocks.js:3384 -#: js/blocks.js:3824 -#: js/blocks.js:3859 -#: js/blocks.js:3894 -#: js/blocks.js:5773 -#: js/blocks.js:5794 -#: js/BoxesBlocks.js:772 -msgid "box1" +#: js/SaveInterface.js:89 +msgid "Show" msgstr "" -#: js/blocks.js:3386 -#: js/blocks.js:3826 -#: js/blocks.js:3861 -#: js/blocks.js:3896 -#: js/blocks.js:5775 -#: js/blocks.js:5796 -#: js/BoxesBlocks.js:663 -msgid "box2" +#: js/SaveInterface.js:91 +msgid "Hide" msgstr "" -#: js/blocks.js:4058 -#: js/palette.js:639 -#: js/palette.js:644 -#: js/palette.js:1043 -#: js/BoxesBlocks.js:591 -msgid "store in" +#: js/SaveInterface.js:131 +#: js/SaveInterface.js:204 +#: js/SaveInterface.js:262 +#: js/SaveInterface.js:389 +#: js/SaveInterface.js:417 +#: js/activity.js:4884 +#: planet/js/ProjectStorage.js:27 +#: planet/js/GlobalPlanet.js:467 +#: planet/js/GlobalPlanet.js:469 +#: planet/js/GlobalPlanet.js:495 +#.TRANS: default project title when saving as Lilypond +msgid "My Project" msgstr "" -#: js/blocks.js:4058 -#: js/EnsembleBlocks.js:391 -#: js/EnsembleBlocks.js:402 -#: js/MediaBlocks.js:746 -#: js/ProgramBlocks.js:390 -#: js/ProgramBlocks.js:495 -#: js/ProgramBlocks.js:658 -#: js/BoxesBlocks.js:595 -#: js/PitchBlocks.js:656 -#: js/PitchBlocks.js:932 -#: js/PitchBlocks.js:1827 -#: js/ToneBlocks.js:1025 -#: js/DictBlocks.js:215 -#: js/DictBlocks.js:289 -msgid "name" +#: js/SaveInterface.js:197 +#: planet/js/SaveInterface.js:58 +msgid "No description provided" msgstr "" -#: js/blocks.js:4058 -#: js/RhythmBlocks.js:1130 -#: js/BoxesBlocks.js:75 -#: js/BoxesBlocks.js:595 -#: js/HeapBlocks.js:544 -#: js/DictBlocks.js:289 -#: js/DictBlocks.js:430 -msgid "value" +#: js/SaveInterface.js:332 +msgid "Your recording is in progress." msgstr "" -#: js/blocks.js:4907 -msgid "There is no block selected." +#: js/SaveInterface.js:401 +#.TRANS: File name prompt for save as Lilypond +msgid "File name" msgstr "" -#: js/blocks.js:5002 -#: js/MediaBlocks.js:888 -msgid "show" +#: js/SaveInterface.js:403 +#: planet/js/StringHelper.js:39 +#.TRANS: Project title prompt for save as Lilypond +msgid "Project title" msgstr "" -#: js/blocks.js:5005 -#: js/MediaBlocks.js:803 -#.TRANS: Avatar is the image used to determine the appearance of the mouse. -msgid "avatar" +#: js/SaveInterface.js:405 +#.TRANS: Project title prompt for save as Lilypond +msgid "Project author" msgstr "" -#: js/blocks.js:5008 -#: js/ToneBlocks.js:1010 -#: js/sampler.js:693 -#.TRANS: The sound sample that the user uploads. -msgid "sample" +#: js/SaveInterface.js:407 +#.TRANS: MIDI prompt for save as Lilypond +msgid "Include MIDI output?" msgstr "" -#: js/turtles.js:874 -msgid "Grid" +#: js/SaveInterface.js:409 +#.TRANS: Guitar prompt for save as Lilypond +msgid "Include guitar tablature output?" msgstr "" -#: js/turtles.js:891 -#: js/turtledefs.js:626 -msgid "Clean" +#: js/SaveInterface.js:411 +#.TRANS: Lilypond is a scripting language for generating sheet music +msgid "Save as Lilypond" msgstr "" -#: js/turtles.js:912 -#: js/turtledefs.js:632 -msgid "Collapse" +#: js/SaveInterface.js:426 +#: js/blocks/EnsembleBlocks.js:75 +#: js/blocks/EnsembleBlocks.js:154 +#: js/blocks/EnsembleBlocks.js:216 +#: js/blocks/EnsembleBlocks.js:302 +#: js/blocks/EnsembleBlocks.js:348 +#: js/blocks/EnsembleBlocks.js:389 +#: js/blocks/EnsembleBlocks.js:441 +#: js/blocks/EnsembleBlocks.js:490 +#: js/blocks/EnsembleBlocks.js:536 +#: js/blocks/EnsembleBlocks.js:583 +#: js/blocks/EnsembleBlocks.js:637 +#: js/blocks/EnsembleBlocks.js:753 +#: js/blocks/EnsembleBlocks.js:840 +#: js/blocks/EnsembleBlocks.js:899 +#: js/blocks/EnsembleBlocks.js:942 +#: js/blocks/EnsembleBlocks.js:1212 +#: js/blocks/EnsembleBlocks.js:1280 +#.TRANS: default project author when saving as Lilypond +msgid "Mr. Mouse" msgstr "" -#: js/turtles.js:940 -msgid "Expand" +#: js/SaveInterface.js:573 +msgid "The Lilypond code is copied to clipboard. You can paste it here: " msgstr "" #: js/languagebox.js:198 @@ -2409,6933 +2264,7487 @@ msgstr "" msgid "Music Blocks is already set to this language." msgstr "" -#: js/piemenus.js:200 -#: js/musicutils.js:808 -#: js/musicutils.js:824 -#: js/phrasemaker.js:1672 -#: js/musickeyboard.js:2041 -#: js/sampler.js:544 -#.TRANS: double sharp is a music term related to pitch -msgid "double sharp" +#: js/planetInterface.js:131 +msgid "project undefined" msgstr "" -#: js/piemenus.js:201 -#: js/PitchBlocks.js:1510 -#: js/PitchActions.js:580 -#: js/musicutils.js:806 -#: js/musicutils.js:825 -#: js/phrasemaker.js:1673 -#: js/musickeyboard.js:2042 -#: js/sampler.js:545 -#.TRANS: sharp is a half-step up in pitch -#.TRANS: sharp is a music term related to pitch -msgid "sharp" +#: js/rubrics.js:523 +#: js/turtledefs.js:119 +#: js/turtledefs.js:221 +#: js/blocks/RhythmBlockPaletteBlocks.js:52 +#: js/blocks/RhythmBlockPaletteBlocks.js:234 +#: js/blocks/ProgramBlocks.js:745 +#: js/widgets/rhythmruler.js:2057 +#: js/widgets/rhythmruler.js:2064 +#: js/widgets/rhythmruler.js:2133 +#: js/widgets/rhythmruler.js:2140 +#: js/widgets/rhythmruler.js:2219 +#.TRANS: an arrangement of notes based on duration +msgid "rhythm" msgstr "" -#: js/piemenus.js:202 -#: js/musicutils.js:804 -#: js/musicutils.js:826 -#: js/phrasemaker.js:1674 -#: js/musickeyboard.js:2043 -#: js/sampler.js:546 -#.TRANS: natural is a music term related to pitch -msgid "natural" +#: js/rubrics.js:524 +#: js/turtledefs.js:121 +#: js/turtledefs.js:223 +#: js/block-verbose.js:2622 +#: js/block.js:2550 +#: js/blocks/IntervalsBlocks.js:63 +#: js/blocks/SensorsBlocks.js:178 +#: js/blocks/PitchBlocks.js:1839 +#: js/blocks/PitchBlocks.js:1853 +#: js/widgets/musickeyboard.js:1935 +#: js/widgets/phrasemaker.js:1036 +#.TRANS: pitch number +#.TRANS: pitch number +#.TRANS: we specify pitch in terms of a name and an octave. The name can be CDEFGAB or Do Re Mi Fa Sol La Ti. Octave is a number between 1 and 8. +msgid "pitch" msgstr "" -#: js/piemenus.js:203 -#: js/PitchBlocks.js:1469 -#: js/PitchActions.js:583 -#: js/musicutils.js:802 -#: js/musicutils.js:827 -#: js/phrasemaker.js:1675 -#: js/musickeyboard.js:2044 -#: js/sampler.js:547 -#.TRANS: flat is a half-step down in pitch -#.TRANS: flat is a music term related to pitch -msgid "flat" +#: js/rubrics.js:525 +#: js/turtledefs.js:123 +#: js/turtledefs.js:225 +msgid "tone" msgstr "" -#: js/piemenus.js:204 -#: js/musicutils.js:800 -#: js/musicutils.js:828 -#: js/phrasemaker.js:1676 -#: js/musickeyboard.js:2045 -#: js/sampler.js:548 -#.TRANS: double flat is a music term related to pitch -msgid "double flat" +#: js/rubrics.js:526 +#: js/lilypond.js:605 +#: js/lilypond.js:904 +#: js/lilypond.js:910 +#: js/lilypond.js:948 +msgid "mouse" msgstr "" -#: js/piemenus.js:2861 -#: js/PitchBlocks.js:1357 -#: js/musicutils.js:627 -#.TRANS: unison means the note is the same as the current note -#.TRANS: unison is a music term related to intervals -msgid "unison" +#: js/rubrics.js:527 +#: js/turtledefs.js:132 +#: js/turtledefs.js:234 +#: js/widgets/phrasemaker.js:1040 +msgid "pen" msgstr "" -#: js/piemenus.js:3015 -#: js/piemenus.js:3088 -#: js/musicutils.js:635 -#: js/musicutils.js:810 -#: js/musicutils.js:912 -#.TRANS: major is a music term related to intervals and mode -msgid "major" -msgstr "" +#: js/rubrics.js:528 +#: js/turtledefs.js:133 +#: js/turtledefs.js:235 +#: js/blocks/NumberBlocks.js:981 +#: js/blocks/PitchBlocks.js:1717 +#: js/blocks/PitchBlocks.js:1758 +msgid "number" +msgstr "ቁጥር" -#: js/piemenus.js:3015 -#: js/piemenus.js:3088 -#: js/musicutils.js:653 -#.TRANS: modal scale for music -msgid "ionian" +#: js/rubrics.js:529 +#: js/turtledefs.js:127 +#: js/turtledefs.js:229 +msgid "flow" msgstr "" -#: js/piemenus.js:3017 -#: js/piemenus.js:3092 -#: js/musicutils.js:633 -#: js/musicutils.js:811 -#: js/musicutils.js:909 -#.TRANS: minor is a music term related to intervals and mode -msgid "minor" +#: js/rubrics.js:530 +#: js/turtledefs.js:128 +#: js/turtledefs.js:230 +#: js/block-verbose.js:1609 +#: js/block-verbose.js:4559 +#: js/block-verbose.js:4577 +#: js/block-verbose.js:4588 +#: js/block.js:1573 +#: js/block.js:4483 +#: js/block.js:4501 +#: js/block.js:4512 +#: js/blocks.js:1018 +#: js/blocks.js:3491 +#: js/blocks.js:3492 +#: js/blocks.js:3717 +#: js/blocks.js:4076 +#: js/blocks.js:4269 +#: js/blocks.js:5432 +#: js/blocks.js:6563 +#: js/macros.js:170 +#: js/macros.js:266 +#: js/macros.js:267 +#: js/macros.js:276 +#: js/macros.js:828 +#: js/palette.js:527 +#: js/palette.js:536 +#: js/palette.js:545 +#: js/palette.js:554 +#: js/palette.js:1129 +#: js/palette.js:1140 +#: js/palette.js:1151 +#: js/palette.js:1162 +#: js/palette.js:1181 +#: js/blocks/ActionBlocks.js:254 +#: js/blocks/ActionBlocks.js:307 +#: js/blocks/ActionBlocks.js:617 +#: js/blocks/ActionBlocks.js:716 +#: js/blocks/ActionBlocks.js:961 +#: js/blocks/ActionBlocks.js:1049 +#: js/blocks/ActionBlocks.js:1322 +#: js/blocks/ActionBlocks.js:1325 +#: js/blocks/ActionBlocks.js:1337 +#: js/blocks/ActionBlocks.js:1404 +#: js/blocks/MeterBlocks.js:715 +#: js/blocks/MeterBlocks.js:768 +#: js/blocks/MeterBlocks.js:831 +#: js/blocks/MeterBlocks.js:892 +#: js/widgets/musickeyboard.js:2986 +#: js/widgets/phrasemaker.js:4913 +#: js/widgets/rhythmruler.js:2319 +#: js/widgets/rhythmruler.js:2326 +#: js/widgets/rhythmruler.js:2511 +#: js/widgets/rhythmruler.js:2518 +msgid "action" msgstr "" -#: js/piemenus.js:3017 -#: js/piemenus.js:3092 -#: js/musicutils.js:663 -#.TRANS: modal scale for music -msgid "aeolian" +#: js/rubrics.js:531 +#: js/turtledefs.js:136 +#: js/turtledefs.js:238 +msgid "sensors" msgstr "" -#: js/piemenus.js:3407 -msgid "Duplicate" +#: js/rubrics.js:532 +#: js/turtledefs.js:135 +#: js/turtledefs.js:237 +#: js/blocks/MediaBlocks.js:930 +msgid "media" msgstr "" -#: js/piemenus.js:3408 -#: js/turtledefs.js:534 -msgid "Extract" +#: js/rubrics.js:533 +msgid "mice" msgstr "" -#: js/piemenus.js:3409 -msgid "Move to trash" +#: js/toolbar.js:48 +#: js/toolbar.js:109 +msgid "About Music Blocks" msgstr "" -#: js/piemenus.js:3410 -#: js/timbre.js:968 -#: js/StringHelper.js:69 -msgid "Close" +#: js/toolbar.js:49 +#: js/toolbar.js:110 +#: js/toolbar.js:175 +#: js/toolbar.js:231 +#: js/turtledefs.js:445 +#: js/turtledefs.js:482 +#: js/activity.js:2660 +#: js/activity.js:2671 +#: js/activity.js:2902 +#: js/widgets/modewidget.js:77 +#: js/widgets/meterwidget.js:185 +#: js/widgets/pitchdrummatrix.js:147 +#: js/widgets/pitchdrummatrix.js:687 +#: js/widgets/pitchdrummatrix.js:689 +#: js/widgets/pitchdrummatrix.js:741 +#: js/widgets/pitchdrummatrix.js:743 +#: js/widgets/pitchdrummatrix.js:758 +#: js/widgets/pitchdrummatrix.js:760 +#: js/widgets/pitchdrummatrix.js:789 +#: js/widgets/pitchdrummatrix.js:791 +#: js/widgets/pitchstaircase.js:121 +#: js/widgets/temperament.js:610 +#: js/widgets/temperament.js:613 +#: js/widgets/temperament.js:673 +#: js/widgets/temperament.js:675 +#: js/widgets/temperament.js:2017 +#: js/widgets/temperament.js:2019 +#: js/widgets/tempo.js:84 +#: js/widgets/tempo.js:86 +#: js/widgets/timbre.js:432 +#: js/widgets/timbre.js:434 +#: js/widgets/timbre.js:465 +#: js/widgets/timbre.js:467 +#: js/widgets/timbre.js:746 +#: js/widgets/aiwidget.js:647 +#: js/widgets/aiwidget.js:654 +#: js/widgets/aiwidget.js:656 +#: js/widgets/arpeggio.js:90 +#: js/widgets/arpeggio.js:547 +#: js/widgets/arpeggio.js:549 +#: js/widgets/arpeggio.js:644 +#: js/widgets/arpeggio.js:646 +#: js/widgets/musickeyboard.js:676 +#: js/widgets/musickeyboard.js:872 +#: js/widgets/musickeyboard.js:874 +#: js/widgets/musickeyboard.js:953 +#: js/widgets/musickeyboard.js:955 +#: js/widgets/phrasemaker.js:513 +#: js/widgets/phrasemaker.js:523 +#: js/widgets/phrasemaker.js:525 +#: js/widgets/phrasemaker.js:4304 +#: js/widgets/phrasemaker.js:4528 +#: js/widgets/phrasemaker.js:4533 +#: js/widgets/phrasemaker.js:4535 +#: js/widgets/phrasemaker.js:4650 +#: js/widgets/rhythmruler.js:637 +#: js/widgets/rhythmruler.js:639 +#: js/widgets/rhythmruler.js:653 +#: js/widgets/rhythmruler.js:655 +#: js/widgets/sampler.js:162 +#: js/widgets/sampler.js:164 +#: js/widgets/sampler.js:363 +msgid "Play" msgstr "" -#: js/piemenus.js:3416 -msgid "Save stack" -msgstr "" +#: js/toolbar.js:50 +#: js/toolbar.js:111 +#: js/toolbar.js:176 +#: js/toolbar.js:232 +#: js/turtledefs.js:451 +#: js/turtledefs.js:488 +#: js/activity.js:2679 +#: js/widgets/modewidget.js:99 +#: js/widgets/modewidget.js:101 +#: js/widgets/meterwidget.js:206 +#: js/widgets/meterwidget.js:208 +#: js/widgets/pitchdrummatrix.js:674 +#: js/widgets/pitchdrummatrix.js:676 +#: js/widgets/temperament.js:2002 +#: js/widgets/temperament.js:2004 +#: js/widgets/arpeggio.js:534 +#: js/widgets/arpeggio.js:536 +#: js/widgets/phrasemaker.js:534 +#: js/widgets/phrasemaker.js:536 +msgid "Stop" +msgstr "ቁም ቁሚ አቁም አቁሚ" -#: js/piemenus.js:3420 -#: js/toolbar.js:60 -#: js/toolbar.js:120 -#: js/toolbar.js:185 -#: js/toolbar.js:240 -#: js/turtledefs.js:752 -msgid "Help" +#: js/toolbar.js:51 +#: js/toolbar.js:112 +#: js/toolbar.js:177 +#: js/toolbar.js:233 +#: js/turtledefs.js:498 +msgid "Record" msgstr "" -#: js/piemenus.js:3762 -msgid "You have chosen key " +#: js/toolbar.js:52 +#: js/toolbar.js:53 +msgid "Full screen" +msgstr "" + +#: js/toolbar.js:54 +#: js/toolbar.js:115 +#: js/toolbar.js:180 +#: js/toolbar.js:236 +#: js/turtledefs.js:504 +msgid "Toggle Fullscreen" +msgstr "" + +#: js/toolbar.js:55 +#: js/toolbar.js:116 +#: js/toolbar.js:181 +#: js/toolbar.js:237 +#: js/turtledefs.js:510 +#: planet/js/StringHelper.js:33 +msgid "New project" +msgstr "" + +#: js/toolbar.js:56 +#: js/toolbar.js:117 +#: js/toolbar.js:182 +#: js/toolbar.js:238 +#: js/turtledefs.js:516 +msgid "Load project from file" +msgstr "" + +#: js/toolbar.js:57 +#: js/toolbar.js:118 +#: js/toolbar.js:119 +#: js/toolbar.js:183 +#: js/toolbar.js:239 +#: js/turtledefs.js:541 +#: js/turtledefs.js:550 +#: js/turtledefs.js:571 +msgid "Save project" +msgstr "" + +#: js/toolbar.js:58 +#: js/toolbar.js:77 +#: js/toolbar.js:79 +#: js/toolbar.js:138 +#: js/toolbar.js:147 +#: js/toolbar.js:149 +#: js/toolbar.js:184 +#: js/toolbar.js:202 +#: js/toolbar.js:204 +#: js/toolbar.js:240 +#: js/toolbar.js:258 +#: js/toolbar.js:260 +msgid "Save project as HTML" +msgstr "" + +#: js/toolbar.js:59 +#: js/toolbar.js:120 +#: js/toolbar.js:185 +#: js/toolbar.js:241 +msgid "Find and share projects" +msgstr "" + +#: js/toolbar.js:60 +#: js/toolbar.js:121 +#: js/toolbar.js:186 +#: js/toolbar.js:242 +msgid "Offline. Sharing is unavailable" +msgstr "" + +#: js/toolbar.js:61 +#: js/toolbar.js:122 +#: js/toolbar.js:187 +#: js/toolbar.js:243 +msgid "Auxiliary menu" +msgstr "" + +#: js/toolbar.js:62 +#: js/toolbar.js:123 +#: js/toolbar.js:188 +#: js/toolbar.js:244 +#: js/turtledefs.js:752 +#: js/piemenus.js:3423 +msgid "Help" +msgstr "" + +#: js/toolbar.js:63 +#: js/toolbar.js:124 +#: js/toolbar.js:189 +#: js/toolbar.js:245 +msgid "Run slowly" +msgstr "" + +#: js/toolbar.js:64 +#: js/toolbar.js:125 +#: js/toolbar.js:190 +#: js/toolbar.js:246 +#: js/turtledefs.js:682 +msgid "Run step by step" +msgstr "" + +#: js/toolbar.js:65 +#: js/toolbar.js:126 +#: js/toolbar.js:191 +#: js/toolbar.js:247 +#: js/turtledefs.js:689 +msgid "Display statistics" +msgstr "" + +#: js/toolbar.js:66 +#: js/toolbar.js:127 +#: js/toolbar.js:192 +#: js/toolbar.js:248 +msgid "Load plugin" +msgstr "" + +#: js/toolbar.js:67 +#: js/toolbar.js:128 +#: js/toolbar.js:193 +#: js/toolbar.js:249 +#: js/turtledefs.js:696 +msgid "Delete plugin" +msgstr "" + +#: js/toolbar.js:68 +#: js/toolbar.js:129 +#: js/toolbar.js:194 +#: js/toolbar.js:250 +msgid "Enable horizontal scrolling" +msgstr "" + +#: js/toolbar.js:69 +#: js/toolbar.js:130 +#: js/toolbar.js:195 +#: js/toolbar.js:251 +msgid "Disable horizontal scrolling" +msgstr "" + +#: js/toolbar.js:70 +#: js/toolbar.js:131 +#: js/toolbar.js:196 +#: js/toolbar.js:252 +#: planet/js/LocalCard.js:54 +#: planet/js/StringHelper.js:71 +msgid "Merge with current project" +msgstr "" + +#: js/toolbar.js:71 +#: js/toolbar.js:132 +msgid "Set Pitch Preview" +msgstr "" + +#: js/toolbar.js:72 +#: js/toolbar.js:133 +#: js/toolbar.js:197 +#: js/toolbar.js:253 +msgid "JavaScript Editor" +msgstr "" + +#: js/toolbar.js:73 +#: js/toolbar.js:134 +#: js/toolbar.js:198 +#: js/toolbar.js:254 +#: js/turtledefs.js:724 +msgid "Restore" +msgstr "" + +#: js/toolbar.js:74 +#: js/toolbar.js:135 +#: js/toolbar.js:199 +#: js/toolbar.js:255 +msgid "Switch to beginner mode" +msgstr "" + +#: js/toolbar.js:75 +#: js/toolbar.js:136 +#: js/toolbar.js:200 +#: js/toolbar.js:256 +msgid "Switch to advanced mode" +msgstr "" + +#: js/toolbar.js:76 +#: js/toolbar.js:137 +#: js/toolbar.js:146 +#: js/toolbar.js:201 +#: js/toolbar.js:257 +#: js/turtledefs.js:738 +msgid "Select language" +msgstr "" + +#: js/toolbar.js:78 +#: js/toolbar.js:81 +#: js/toolbar.js:140 +#: js/turtledefs.js:579 +msgid "Save mouse artwork as PNG" +msgstr "" + +#: js/toolbar.js:80 +#: js/toolbar.js:139 +#: js/turtledefs.js:575 +msgid "Save mouse artwork as SVG" +msgstr "" + +#: js/toolbar.js:82 +#: js/toolbar.js:141 +#: js/turtledefs.js:583 +msgid "Save music as WAV" +msgstr "" + +#: js/toolbar.js:83 +#: js/toolbar.js:142 +#: js/turtledefs.js:587 +msgid "Save sheet music as ABC" +msgstr "" + +#: js/toolbar.js:84 +#: js/toolbar.js:143 +#: js/turtledefs.js:591 +msgid "Save sheet music as Lilypond" +msgstr "" + +#: js/toolbar.js:85 +msgid "Save sheet music as MusicXML" +msgstr "" + +#: js/toolbar.js:86 +#: js/toolbar.js:144 +#: js/toolbar.js:152 +#: js/toolbar.js:207 +#: js/toolbar.js:263 +#: js/turtledefs.js:562 +#: js/turtledefs.js:595 +msgid "Save block artwork as SVG" +msgstr "" + +#: js/toolbar.js:87 +#: js/toolbar.js:145 +#: js/toolbar.js:153 +#: js/toolbar.js:208 +#: js/toolbar.js:264 +#: js/turtles.js:911 +msgid "Confirm" +msgstr "" + +#: js/toolbar.js:88 +#: js/toolbar.js:154 +#: js/toolbar.js:209 +#: js/toolbar.js:265 +msgid "English (United States)" +msgstr "" + +#: js/toolbar.js:89 +#: js/toolbar.js:155 +#: js/toolbar.js:210 +#: js/toolbar.js:266 +msgid "English (United Kingdom)" +msgstr "" + +#: js/toolbar.js:90 +#: js/toolbar.js:156 +#: js/toolbar.js:211 +#: js/toolbar.js:267 +msgid "日本語" +msgstr "" + +#: js/toolbar.js:91 +msgid "한국어" +msgstr "" + +#: js/toolbar.js:92 +#: js/toolbar.js:158 +#: js/toolbar.js:213 +#: js/toolbar.js:269 +msgid "español" +msgstr "" + +#: js/toolbar.js:93 +#: js/toolbar.js:159 +#: js/toolbar.js:214 +#: js/toolbar.js:270 +msgid "português" +msgstr "" + +#: js/toolbar.js:94 +#: js/toolbar.js:160 +#: js/toolbar.js:215 +#: js/toolbar.js:271 +msgid "にほんご" +msgstr "" + +#: js/toolbar.js:95 +#: js/toolbar.js:161 +#: js/toolbar.js:216 +#: js/toolbar.js:272 +msgid "中文" +msgstr "" + +#: js/toolbar.js:96 +#: js/toolbar.js:162 +#: js/toolbar.js:217 +#: js/toolbar.js:273 +msgid "ภาษาไทย" +msgstr "" + +#: js/toolbar.js:97 +#: js/toolbar.js:163 +#: js/toolbar.js:218 +#: js/toolbar.js:274 +msgid "aymara" +msgstr "" + +#: js/toolbar.js:98 +#: js/toolbar.js:164 +#: js/toolbar.js:219 +#: js/toolbar.js:275 +msgid "quechua" +msgstr "" + +#: js/toolbar.js:99 +#: js/toolbar.js:165 +#: js/toolbar.js:220 +#: js/toolbar.js:276 +msgid "guarani" +msgstr "" + +#: js/toolbar.js:100 +#: js/toolbar.js:166 +#: js/toolbar.js:221 +#: js/toolbar.js:277 +msgid "हिंदी" +msgstr "" + +#: js/toolbar.js:101 +#: js/toolbar.js:168 +#: js/toolbar.js:222 +#: js/toolbar.js:279 +msgid "igbo" +msgstr "" + +#: js/toolbar.js:102 +#: js/toolbar.js:169 +#: js/toolbar.js:223 +#: js/toolbar.js:280 +msgid "عربى" +msgstr "" + +#: js/toolbar.js:103 +#: js/toolbar.js:167 +#: js/toolbar.js:224 +#: js/toolbar.js:278 +msgid "తెలుగు" +msgstr "" + +#: js/toolbar.js:104 +#: js/toolbar.js:170 +#: js/toolbar.js:225 +#: js/toolbar.js:281 +msgid "עִברִית" +msgstr "" + +#: js/toolbar.js:113 +#: js/toolbar.js:114 +#: js/toolbar.js:178 +#: js/toolbar.js:179 +#: js/toolbar.js:234 +#: js/toolbar.js:235 +msgid "Full Screen" +msgstr "" + +#: js/toolbar.js:148 +#: js/toolbar.js:151 +#: js/toolbar.js:203 +#: js/toolbar.js:206 +#: js/toolbar.js:259 +#: js/toolbar.js:262 +#: js/turtledefs.js:558 +msgid "Save turtle artwork as PNG" +msgstr "" + +#: js/toolbar.js:150 +#: js/toolbar.js:205 +#: js/toolbar.js:261 +#: js/turtledefs.js:554 +msgid "Save turtle artwork as SVG" +msgstr "" + +#: js/toolbar.js:157 +#: js/toolbar.js:212 +#: js/toolbar.js:268 +msgid "한국인" +msgstr "" + +#: js/toolbar.js:174 +#: js/toolbar.js:230 +msgid "About Turtle Blocks" +msgstr "" + +#: js/toolbar.js:446 +#: js/toolbar.js:457 +#: js/toolbar.js:497 +msgid "Turtle Wrap Off" +msgstr "" + +#: js/toolbar.js:466 +#: js/toolbar.js:506 +msgid "Turtle Wrap On" +msgstr "" + +#: js/turtle-painter.js:1192 +#: js/turtle-painter.js:1193 +#: js/turtles.js:118 +#: js/block-verbose.js:1623 +#: js/block.js:1587 +#: js/lilypond.js:749 +#: js/lilypond.js:913 +#: js/lilypond.js:951 +#: js/logo.js:1184 +#: js/blocks/ActionBlocks.js:1223 +#: js/blocks/ProgramBlocks.js:1267 +msgid "start" +msgstr "ጀምር" + +#: js/turtledefs.js:40 +#.TRANS: put the URL to the guide here, e.g., https://github.com/sugarlabs/turtleblocksjs/tree/master/guide/README.md +msgid "guide url" +msgstr "" + +#: js/turtledefs.js:85 +#: js/turtledefs.js:437 +msgid "Turtle Blocks is a Logo-inspired turtle that draws colorful pictures with snap-together visual-programming blocks." +msgstr "" + +#: js/turtledefs.js:118 +#: js/turtledefs.js:220 +msgid "search" +msgstr "" + +#: js/turtledefs.js:120 +#: js/turtledefs.js:222 +#: js/blocks/MeterBlocks.js:1343 +#: js/blocks/WidgetBlocks.js:522 +#.TRANS: musical meter (time signature), e.g., 4:4 +msgid "meter" +msgstr "" + +#: js/turtledefs.js:122 +#: js/turtledefs.js:224 +msgid "intervals" +msgstr "" + +#: js/turtledefs.js:124 +#: js/turtledefs.js:226 +msgid "ornament" +msgstr "" + +#: js/turtledefs.js:125 +#: js/turtledefs.js:227 +#: js/blocks/VolumeBlocks.js:362 +#: js/blocks/VolumeBlocks.js:502 +#: js/blocks/VolumeBlocks.js:545 +msgid "volume" +msgstr "" + +#: js/turtledefs.js:126 +#: js/turtledefs.js:228 +#: js/block-verbose.js:1700 +#: js/block-verbose.js:2626 +#: js/block.js:1664 +#: js/block.js:2554 +#: js/lilypond.js:732 +#: js/lilypond.js:897 +#: js/lilypond.js:941 +#: js/palette.js:577 +#: js/blocks/RhythmBlocks.js:766 +#: js/blocks/DrumBlocks.js:477 +#: js/blocks/VolumeBlocks.js:502 +#: js/widgets/phrasemaker.js:1038 +msgid "drum" +msgstr "" + +#: js/turtledefs.js:129 +#: js/turtledefs.js:231 +msgid "boxes" +msgstr "" + +#: js/turtledefs.js:130 +#: js/turtledefs.js:232 +msgid "widgets" +msgstr "" + +#: js/turtledefs.js:131 +#: js/turtledefs.js:233 +#: js/widgets/phrasemaker.js:1039 +msgid "graphics" +msgstr "" + +#: js/turtledefs.js:134 +#: js/turtledefs.js:236 +msgid "boolean" +msgstr "" + +#: js/turtledefs.js:137 +#: js/turtledefs.js:239 +#: js/blocks/HeapBlocks.js:59 +#: js/widgets/status.js:147 +msgid "heap" +msgstr "" + +#: js/turtledefs.js:138 +#: js/turtledefs.js:240 +#: js/blocks/DictBlocks.js:142 +#: js/blocks/ProgramBlocks.js:495 +msgid "dictionary" +msgstr "" + +#: js/turtledefs.js:139 +#: js/turtledefs.js:241 +msgid "ensemble" +msgstr "" + +#: js/turtledefs.js:140 +#: js/turtledefs.js:242 +msgid "extras" +msgstr "" + +#: js/turtledefs.js:142 +#: js/turtledefs.js:244 +#.TRANS: program as in computer program +#.TRANS: program as in computer program +msgid "program" +msgstr "" + +#: js/turtledefs.js:143 +#: js/turtledefs.js:245 +msgid "my blocks" +msgstr "" + +#: js/turtledefs.js:185 +#: js/turtledefs.js:281 +msgid "artwork" +msgstr "" + +#: js/turtledefs.js:185 +#: js/turtledefs.js:281 +msgid "logic" +msgstr "" + +#: js/turtledefs.js:185 +#: js/turtledefs.js:281 +msgid "music" +msgstr "" + +#: js/turtledefs.js:187 +#: js/turtledefs.js:463 +msgid "Music Blocks is a collection of tools for exploring fundamental musical concepts in a fun way." +msgstr "" + +#: js/turtledefs.js:436 +msgid "Welcome to Turtle Blocks" +msgstr "" + +#: js/turtledefs.js:438 +#: js/turtledefs.js:465 +#: js/turtledefs.js:774 +#: js/turtledefs.js:805 +msgid "The current version is" +msgstr "" + +#: js/turtledefs.js:446 +#: js/turtledefs.js:483 +msgid "Click the run button to run the project in fast mode." +msgstr "" + +#: js/turtledefs.js:452 +msgid "Stop the turtle." +msgstr "" + +#: js/turtledefs.js:454 +#: js/turtledefs.js:491 +msgid "You can also type Alt-S to stop." +msgstr "" + +#: js/turtledefs.js:462 +#: js/widgets/help.js:333 +msgid "Welcome to Music Blocks" +msgstr "" + +#: js/turtledefs.js:472 +#: js/widgets/help.js:334 +msgid "Meet Mr. Mouse!" +msgstr "" + +#: js/turtledefs.js:473 +msgid "Mr Mouse is our Music Blocks conductor." +msgstr "" + +#: js/turtledefs.js:475 +msgid "Mr Mouse encourages you to explore Music Blocks." +msgstr "" + +#: js/turtledefs.js:477 +msgid "Let us start our tour!" +msgstr "" + +#: js/turtledefs.js:489 +msgid "Stop the music (and the mice)." +msgstr "" + +#: js/turtledefs.js:499 +msgid "Record your project as video." +msgstr "" + +#: js/turtledefs.js:505 +msgid "Toggle Fullscreen mode." +msgstr "" + +#: js/turtledefs.js:511 +msgid "Initialize a new project." +msgstr "" + +#: js/turtledefs.js:517 +msgid "You can also load projects from the file system." +msgstr "" + +#: js/turtledefs.js:522 +#: planet/js/StringHelper.js:46 +msgid "Delete" +msgstr "" + +#: js/turtledefs.js:523 +msgid "To delete a block, just right-click on it, then you will be able to see the delete option" +msgstr "" + +#: js/turtledefs.js:528 +#: js/activity.js:2649 +#: planet/js/LocalCard.js:31 +msgid "Copy" +msgstr "" + +#: js/turtledefs.js:529 +msgid "To copy a block, just right-click on it, then you will be able to see the copy option" +msgstr "" + +#: js/turtledefs.js:534 +#: js/piemenus.js:3411 +msgid "Extract" +msgstr "" + +#: js/turtledefs.js:535 +msgid "To extract a block, just right-click on it, then you will be able to see the extract option" +msgstr "" + +#: js/turtledefs.js:542 +#: js/turtledefs.js:552 +#: js/turtledefs.js:573 +msgid "Save your project to a file." +msgstr "" + +#: js/turtledefs.js:549 +#: js/turtledefs.js:570 +msgid "save" +msgstr "" + +#: js/turtledefs.js:556 +#: js/turtledefs.js:577 +msgid "Save graphics from your project to as SVG." +msgstr "" + +#: js/turtledefs.js:560 +#: js/turtledefs.js:581 +msgid "Save graphics from your project as PNG." +msgstr "" + +#: js/turtledefs.js:564 +#: js/turtledefs.js:597 +msgid "Save block artwork as an SVG file." +msgstr "" + +#: js/turtledefs.js:585 +msgid "Save audio from your project as WAV." +msgstr "" + +#: js/turtledefs.js:589 +msgid "Save your project to as an ABC file." +msgstr "" + +#: js/turtledefs.js:593 +msgid "Save your project to as a Lilypond file." +msgstr "" + +#: js/turtledefs.js:604 +msgid "Load samples from server" +msgstr "" + +#: js/turtledefs.js:605 +msgid "This button opens a viewer for loading example projects." +msgstr "" + +#: js/turtledefs.js:611 +msgid "Palette buttons" +msgstr "" + +#: js/turtledefs.js:612 +msgid "This toolbar contains the palette buttons including Rhythm Pitch Tone Action and more." +msgstr "" + +#: js/turtledefs.js:614 +msgid "Click to show the palettes of blocks and drag blocks from the palettes onto the canvas to use them." +msgstr "" + +#: js/turtledefs.js:620 +msgid "Cartesian/Polar" +msgstr "" + +#: js/turtledefs.js:621 +msgid "Show or hide a coordinate grid." +msgstr "" + +#: js/turtledefs.js:626 +#: js/turtles.js:902 +msgid "Clean" +msgstr "" + +#: js/turtledefs.js:627 +msgid "Clear the screen and return the mice to their initial positions." +msgstr "" + +#: js/turtledefs.js:632 +#: js/turtles.js:955 +msgid "Collapse" +msgstr "" + +#: js/turtledefs.js:633 +msgid "Collapse the graphics window." +msgstr "" + +#: js/turtledefs.js:638 +#: js/activity.js:5684 +msgid "Home" +msgstr "" + +#: js/turtledefs.js:639 +msgid "Return all blocks to the center of the screen." +msgstr "" + +#: js/turtledefs.js:644 +msgid "Show/hide blocks" msgstr "" -#: js/piemenus.js:3766 -msgid " for your pitch preview." +#: js/turtledefs.js:645 +msgid "Hide or show the blocks and the palettes." msgstr "" -#: js/palette.js:571 -msgid "grid" +#: js/turtledefs.js:650 +msgid "Expand/collapse collapsable blocks" msgstr "" -#: js/palette.js:577 -#: js/block.js:1540 -#: js/block.js:2343 -#: js/turtledefs.js:126 -#: js/turtledefs.js:228 -#: js/lilypond.js:740 -#: js/lilypond.js:905 -#: js/lilypond.js:949 -#: js/DrumBlocks.js:486 -#: js/RhythmBlocks.js:766 -#: js/VolumeBlocks.js:502 -#: js/phrasemaker.js:823 -msgid "drum" +#: js/turtledefs.js:651 +msgid "Expand or collapse start and action stacks." msgstr "" -#: js/palette.js:580 -msgid "effect" +#: js/turtledefs.js:658 +#: js/activity.js:5704 +msgid "Decrease block size" msgstr "" -#: js/palette.js:586 -msgid "sargam" +#: js/turtledefs.js:659 +msgid "Decrease the size of the blocks." msgstr "" -#: js/palette.js:589 -#: js/activity.js:1833 -#: js/RhythmBlocks.js:923 -#: js/PitchBlocks.js:442 -#: js/PitchBlocks.js:1748 -#.TRANS: a numeric mapping of the notes in an octave based on the musical mode -msgid "scale degree" +#: js/turtledefs.js:664 +#: js/activity.js:5710 +msgid "Increase block size" msgstr "" -#: js/palette.js:592 -#: js/activity.js:1860 -msgid "mode name" +#: js/turtledefs.js:665 +msgid "Increase the size of the blocks." msgstr "" -#: js/palette.js:595 -#: js/activity.js:1839 -msgid "invert mode" +#: js/turtledefs.js:670 +msgid "Expand/collapse option toolbar" msgstr "" -#: js/palette.js:598 -#: js/activity.js:1836 -msgid "voice name" +#: js/turtledefs.js:671 +msgid "Click this button to expand or collapse the auxillary toolbar." msgstr "" -#: js/palette.js:601 -#: js/PitchBlocks.js:1181 -msgid "custom pitch" +#: js/turtledefs.js:676 +msgid "Run slow" msgstr "" -#: js/palette.js:605 -#: js/block.js:1456 -#: js/block.js:1575 -#: js/WidgetBlocks.js:218 -#: js/IntervalsBlocks.js:63 -msgid "temperament" +#: js/turtledefs.js:677 +msgid "Click to run the project in slow mode." msgstr "" -#: js/palette.js:609 -msgid "accidental" +#: js/turtledefs.js:683 +msgid "Click to run the project step by step." msgstr "" -#: js/palette.js:615 -#: js/activity.js:1866 -msgid "interval name" +#: js/turtledefs.js:690 +msgid "Display statistics about your Music project." msgstr "" -#: js/palette.js:633 -#: js/PitchBlocks.js:405 -msgid "pitch converter" +#: js/turtledefs.js:697 +msgid "Delete a selected plugin." msgstr "" -#: js/rubrics.js:522 -#: js/turtledefs.js:119 -#: js/turtledefs.js:221 -#: js/RhythmBlockPaletteBlocks.js:52 -#: js/RhythmBlockPaletteBlocks.js:233 -#: js/ProgramBlocks.js:745 -#: js/rhythmruler.js:1670 -#: js/rhythmruler.js:1677 -#: js/rhythmruler.js:1745 -#: js/rhythmruler.js:1752 -#: js/rhythmruler.js:1830 -#.TRANS: an arrangement of notes based on duration -msgid "rhythm" +#: js/turtledefs.js:704 +msgid "Enable scrolling" msgstr "" -#: js/rubrics.js:523 -#: js/block.js:2339 -#: js/turtledefs.js:121 -#: js/turtledefs.js:223 -#: js/IntervalsBlocks.js:63 -#: js/PitchBlocks.js:1801 -#: js/PitchBlocks.js:1814 -#: js/SensorsBlocks.js:178 -#: js/phrasemaker.js:821 -#: js/musickeyboard.js:1653 -#.TRANS: pitch number -#.TRANS: we specify pitch in terms of a name and an octave. The name can be CDEFGAB or Do Re Mi Fa Sol La Ti. Octave is a number between 1 and 8. -msgid "pitch" +#: js/turtledefs.js:705 +msgid "You can scroll the blocks on the canvas." msgstr "" -#: js/rubrics.js:524 -#: js/turtledefs.js:123 -#: js/turtledefs.js:225 -msgid "tone" +#: js/turtledefs.js:714 +msgid "Wrap Turtle" msgstr "" -#: js/rubrics.js:525 -#: js/lilypond.js:613 -#: js/lilypond.js:912 -#: js/lilypond.js:918 -#: js/lilypond.js:956 -msgid "mouse" +#: js/turtledefs.js:715 +msgid "Turn Turtle wrapping On or Off." msgstr "" -#: js/rubrics.js:526 -#: js/turtledefs.js:132 -#: js/turtledefs.js:234 -#: js/phrasemaker.js:825 -msgid "pen" +#: js/turtledefs.js:725 +msgid "Restore blocks from the trash." msgstr "" -#: js/rubrics.js:527 -#: js/turtledefs.js:133 -#: js/turtledefs.js:235 -#: js/NumberBlocks.js:905 -#: js/PitchBlocks.js:1679 -#: js/PitchBlocks.js:1720 -msgid "number" -msgstr "ቁጥር" +#: js/turtledefs.js:732 +msgid "Switch mode" +msgstr "" -#: js/rubrics.js:528 -#: js/turtledefs.js:127 -#: js/turtledefs.js:229 -msgid "flow" +#: js/turtledefs.js:733 +msgid "Switch between beginner and advance modes." msgstr "" -#: js/rubrics.js:530 -#: js/turtledefs.js:136 -#: js/turtledefs.js:238 -msgid "sensors" +#: js/turtledefs.js:739 +msgid "Select your language preference." msgstr "" -#: js/rubrics.js:531 -#: js/turtledefs.js:135 -#: js/turtledefs.js:237 -#: js/MediaBlocks.js:930 -msgid "media" +#: js/turtledefs.js:745 +msgid "Keyboard shortcuts" msgstr "" -#: js/rubrics.js:532 -msgid "mice" +#: js/turtledefs.js:746 +msgid "You can type d to create a do block and r to create a re block etc." msgstr "" -#: js/macros.js:711 -#: js/musicutils.js:783 -#: js/synthutils.js:181 -#.TRANS: animal sound effect -msgid "duck" +#: js/turtledefs.js:753 +msgid "Show these messages." msgstr "" -#: js/toolbar.js:46 -#: js/toolbar.js:107 -msgid "About Music Blocks" +#: js/turtledefs.js:759 +#: js/turtledefs.js:790 +#: js/widgets/help.js:335 +msgid "Guide" msgstr "" -#: js/toolbar.js:47 -#: js/toolbar.js:108 -#: js/toolbar.js:172 -#: js/toolbar.js:228 -#: js/turtledefs.js:445 -#: js/turtledefs.js:482 -#: js/activity.js:2281 -#: js/activity.js:2289 -#: js/activity.js:2520 -#: js/modewidget.js:77 -#: js/pitchstaircase.js:121 -#: js/phrasemaker.js:302 -#: js/phrasemaker.js:312 -#: js/phrasemaker.js:314 -#: js/phrasemaker.js:3901 -#: js/phrasemaker.js:4061 -#: js/phrasemaker.js:4066 -#: js/phrasemaker.js:4068 -#: js/phrasemaker.js:4183 -#: js/pitchdrummatrix.js:81 -#: js/pitchdrummatrix.js:574 -#: js/pitchdrummatrix.js:576 -#: js/pitchdrummatrix.js:628 -#: js/pitchdrummatrix.js:630 -#: js/pitchdrummatrix.js:645 -#: js/pitchdrummatrix.js:647 -#: js/pitchdrummatrix.js:674 -#: js/pitchdrummatrix.js:676 -#: js/temperament.js:477 -#: js/temperament.js:480 -#: js/temperament.js:540 -#: js/temperament.js:542 -#: js/temperament.js:1835 -#: js/temperament.js:1837 -#: js/temperament.js:1986 -#: js/temperament.js:1988 -#: js/musickeyboard.js:522 -#: js/musickeyboard.js:682 -#: js/musickeyboard.js:684 -#: js/musickeyboard.js:756 -#: js/musickeyboard.js:758 -#: js/rhythmruler.js:298 -#: js/rhythmruler.js:300 -#: js/rhythmruler.js:314 -#: js/rhythmruler.js:316 -#: js/sampler.js:96 -#: js/sampler.js:98 -#: js/sampler.js:229 -#: js/sampler.js:235 -#: js/sampler.js:237 -#: js/tempo.js:84 -#: js/tempo.js:86 -#: js/timbre.js:432 -#: js/timbre.js:434 -#: js/timbre.js:465 -#: js/timbre.js:467 -#: js/timbre.js:746 -#: js/meterwidget.js:80 -#: js/arpeggio.js:90 -#: js/arpeggio.js:547 -#: js/arpeggio.js:549 -#: js/arpeggio.js:644 -#: js/arpeggio.js:646 -msgid "Play" +#: js/turtledefs.js:760 +msgid "A detailed guide to Turtle Blocks is available." msgstr "" -#: js/toolbar.js:48 -#: js/toolbar.js:109 -#: js/toolbar.js:173 -#: js/toolbar.js:229 -#: js/turtledefs.js:451 -#: js/turtledefs.js:488 -#: js/activity.js:2297 -#: js/modewidget.js:99 -#: js/modewidget.js:101 -#: js/phrasemaker.js:323 -#: js/phrasemaker.js:325 -#: js/pitchdrummatrix.js:561 -#: js/pitchdrummatrix.js:563 -#: js/temperament.js:1820 -#: js/temperament.js:1822 -#: js/meterwidget.js:101 -#: js/meterwidget.js:103 -#: js/arpeggio.js:534 -#: js/arpeggio.js:536 -msgid "Stop" -msgstr "ቁም ቁሚ አቁም አቁሚ" +#: js/turtledefs.js:764 +msgid "Turtle Blocks Guide" +msgstr "" -#: js/toolbar.js:49 -#: js/toolbar.js:110 -#: js/toolbar.js:174 -#: js/toolbar.js:230 -#: js/turtledefs.js:498 -msgid "Record" +#: js/turtledefs.js:767 +#: js/turtledefs.js:798 +#: js/widgets/help.js:336 +msgid "About" msgstr "" -#: js/toolbar.js:50 -#: js/toolbar.js:51 -msgid "Full screen" +#: js/turtledefs.js:768 +msgid "Turtle Blocks is an open source collection of tools for exploring musical concepts." msgstr "" -#: js/toolbar.js:52 -#: js/toolbar.js:112 -#: js/toolbar.js:177 -#: js/toolbar.js:232 -#: js/turtledefs.js:504 -msgid "Toggle Fullscreen" +#: js/turtledefs.js:770 +msgid "A full list of contributors can be found in the Turtle Blocks GitHub repository." msgstr "" -#: js/toolbar.js:53 -#: js/toolbar.js:113 -#: js/toolbar.js:178 -#: js/toolbar.js:233 -#: js/turtledefs.js:510 -#: js/StringHelper.js:33 -msgid "New project" +#: js/turtledefs.js:772 +msgid "Turtle Blocks is licensed under the AGPL." msgstr "" -#: js/toolbar.js:54 -#: js/toolbar.js:114 -#: js/toolbar.js:179 -#: js/toolbar.js:234 -#: js/turtledefs.js:516 -msgid "Load project from file" +#: js/turtledefs.js:780 +msgid "Turtle Blocks GitHub repository" msgstr "" -#: js/toolbar.js:55 -#: js/toolbar.js:115 -#: js/toolbar.js:116 -#: js/toolbar.js:180 -#: js/toolbar.js:235 -#: js/turtledefs.js:541 -#: js/turtledefs.js:550 -#: js/turtledefs.js:571 -msgid "Save project" +#: js/turtledefs.js:783 +#: js/turtledefs.js:814 +#: js/widgets/help.js:337 +#: js/widgets/help.js:359 +msgid "Congratulations." msgstr "" -#: js/toolbar.js:56 -#: js/toolbar.js:75 -#: js/toolbar.js:77 -#: js/toolbar.js:135 -#: js/toolbar.js:144 -#: js/toolbar.js:146 -#: js/toolbar.js:181 -#: js/toolbar.js:199 -#: js/toolbar.js:201 -#: js/toolbar.js:236 -#: js/toolbar.js:254 -#: js/toolbar.js:256 -msgid "Save project as HTML" +#: js/turtledefs.js:784 +msgid "You have finished the tour. Please enjoy Turtle Blocks!" +msgstr "" + +#: js/turtledefs.js:791 +msgid "A detailed guide to Music Blocks is available." +msgstr "" + +#: js/turtledefs.js:799 +msgid "Music Blocks is an open source collection of tools for exploring musical concepts." +msgstr "" + +#: js/turtledefs.js:801 +msgid "A full list of contributors can be found in the Music Blocks GitHub repository." +msgstr "" + +#: js/turtledefs.js:803 +msgid "Music Blocks is licensed under the AGPL." +msgstr "" + +#: js/turtledefs.js:811 +msgid "Music Blocks GitHub repository" +msgstr "" + +#: js/turtledefs.js:815 +msgid "You have finished the tour. Please enjoy Music Blocks!" +msgstr "" + +#: js/turtles.js:882 +msgid "Grid" +msgstr "" + +#: js/turtles.js:1024 +msgid "Expand" +msgstr "" + +#: js/block-verbose.js:1616 +#: js/block-verbose.js:1735 +#: js/block.js:1580 +#: js/block.js:1699 +#: js/palette.js:605 +#: js/blocks/IntervalsBlocks.js:63 +#: js/blocks/WidgetBlocks.js:259 +msgid "temperament" +msgstr "" + +#: js/block-verbose.js:1630 +#: js/block.js:1594 +msgid "matrix" +msgstr "" + +#: js/block-verbose.js:1637 +#: js/block.js:1601 +#: js/blocks/WidgetBlocks.js:1509 +#: plugins/rodi.rtp:324 +msgid "status" +msgstr "" + +#: js/block-verbose.js:1644 +#: js/block.js:1608 +msgid "drum mapper" +msgstr "" + +#: js/block-verbose.js:1651 +#: js/block.js:1615 +msgid "ruler" msgstr "" -#: js/toolbar.js:57 -#: js/toolbar.js:117 -#: js/toolbar.js:182 -#: js/toolbar.js:237 -msgid "Find and share projects" +#: js/block-verbose.js:1658 +#: js/block.js:1622 +#: js/blocks/WidgetBlocks.js:397 +#.TRANS: timbre is the character or quality of a musical sound +msgid "timbre" msgstr "" -#: js/toolbar.js:58 -#: js/toolbar.js:118 -#: js/toolbar.js:183 -#: js/toolbar.js:238 -msgid "Offline. Sharing is unavailable" +#: js/block-verbose.js:1665 +#: js/block.js:1629 +msgid "stair" msgstr "" -#: js/toolbar.js:59 -#: js/toolbar.js:119 -#: js/toolbar.js:184 -#: js/toolbar.js:239 -msgid "Auxiliary menu" +#: js/block-verbose.js:1672 +#: js/block.js:1636 +#: js/blocks/WidgetBlocks.js:707 +#.TRANS: the speed at music is should be played. +msgid "tempo" msgstr "" -#: js/toolbar.js:61 -#: js/toolbar.js:121 -#: js/toolbar.js:186 -#: js/toolbar.js:241 -msgid "Run slowly" +#: js/block-verbose.js:1679 +#: js/block-verbose.js:1742 +#: js/block.js:1643 +#: js/block.js:1706 +#: js/blocks/IntervalsBlocks.js:1464 +#.TRANS: mode, e.g., Major in C Major +msgid "mode" msgstr "" -#: js/toolbar.js:62 -#: js/toolbar.js:122 -#: js/toolbar.js:187 -#: js/toolbar.js:242 -#: js/turtledefs.js:682 -msgid "Run step by step" +#: js/block-verbose.js:1686 +#: js/block.js:1650 +msgid "slider" msgstr "" -#: js/toolbar.js:63 -#: js/toolbar.js:123 -#: js/toolbar.js:188 -#: js/toolbar.js:243 -#: js/turtledefs.js:689 -msgid "Display statistics" +#: js/block-verbose.js:1693 +#: js/block.js:1657 +#: js/blocks/SensorsBlocks.js:1001 +msgid "keyboard" msgstr "" -#: js/toolbar.js:64 -#: js/toolbar.js:124 -#: js/toolbar.js:189 -#: js/toolbar.js:244 -msgid "Load plugin" +#: js/block-verbose.js:1707 +#: js/block.js:1671 +#: js/blocks/WidgetBlocks.js:1190 +#: js/blocks/WidgetBlocks.js:1228 +#.TRANS: widget for subdividing a measure into distinct rhythmic elements +msgid "rhythm maker" msgstr "" -#: js/toolbar.js:65 -#: js/toolbar.js:125 -#: js/toolbar.js:190 -#: js/toolbar.js:245 -#: js/turtledefs.js:696 -msgid "Delete plugin" +#: js/block-verbose.js:1714 +#: js/block-verbose.js:2457 +#: js/block-verbose.js:2514 +#: js/block.js:1678 +#: js/block.js:2385 +#: js/block.js:2442 +#: js/blocks/MeterBlocks.js:1367 +#: js/blocks/OrnamentBlocks.js:220 +#: js/blocks/OrnamentBlocks.js:312 +#: js/blocks/RhythmBlocks.js:33 +#: js/blocks/RhythmBlocks.js:356 +#: js/blocks/RhythmBlocks.js:766 +#: js/blocks/RhythmBlocks.js:806 +#: js/blocks/RhythmBlockPaletteBlocks.js:70 +#: js/blocks/RhythmBlockPaletteBlocks.js:252 +#: js/blocks/RhythmBlockPaletteBlocks.js:485 +#: js/blocks/RhythmBlockPaletteBlocks.js:554 +#: js/blocks/RhythmBlockPaletteBlocks.js:605 +#: js/blocks/RhythmBlockPaletteBlocks.js:875 +#: js/turtleactions/DictActions.js:85 +#: js/widgets/phrasemaker.js:942 +#: js/widgets/phrasemaker.js:2656 +#: js/widgets/phrasemaker.js:2699 +#: js/widgets/phrasemaker.js:2810 +#.TRANS: the value (e.g., 1/4 note) of the note being played. +msgid "note value" msgstr "" -#: js/toolbar.js:66 -#: js/toolbar.js:126 -#: js/toolbar.js:191 -#: js/toolbar.js:246 -msgid "Enable horizontal scrolling" +#: js/block-verbose.js:1721 +#: js/block-verbose.js:2382 +#: js/block-verbose.js:2405 +#: js/block.js:1685 +#: js/block.js:2310 +#: js/block.js:2333 +#: js/blocks/IntervalsBlocks.js:1071 +#: js/blocks/OrnamentBlocks.js:312 +#.TRANS: calculate a relative step between notes based on semi-tones +msgid "scalar interval" msgstr "" -#: js/toolbar.js:67 -#: js/toolbar.js:127 -#: js/toolbar.js:192 -#: js/toolbar.js:247 -msgid "Disable horizontal scrolling" +#: js/block-verbose.js:1728 +#: js/block.js:1692 +#: js/blocks/RhythmBlocks.js:148 +msgid "milliseconds" msgstr "" -#: js/toolbar.js:68 -#: js/toolbar.js:128 -#: js/toolbar.js:193 -#: js/toolbar.js:248 -#: js/LocalCard.js:54 -#: js/StringHelper.js:71 -msgid "Merge with current project" +#: js/block-verbose.js:2455 +#: js/block-verbose.js:2459 +#: js/block-verbose.js:2512 +#: js/block-verbose.js:2628 +#: js/block.js:2383 +#: js/block.js:2387 +#: js/block.js:2440 +#: js/block.js:2556 +#: js/blocks/RhythmBlocks.js:712 +#: js/blocks/ProgramBlocks.js:1273 +#: js/widgets/rhythmruler.js:1183 +#: js/widgets/rhythmruler.js:1329 +msgid "silence" msgstr "" -#: js/toolbar.js:69 -#: js/toolbar.js:129 -msgid "Set Pitch Preview" +#: js/block-verbose.js:2548 +#: js/block-verbose.js:3492 +#: js/block-verbose.js:3509 +#: js/activity.js:2718 +#: js/activity.js:2769 +#: js/block.js:2476 +#: js/block.js:3416 +#: js/block.js:3433 +#: js/utils/musicutils.js:3780 +#: js/utils/musicutils.js:5273 +#.TRANS: the note names must be separated by single spaces +#.TRANS: the note names must be separated by single spaces +#.TRANS: the note names must be separated by single spaces +msgid "ti la sol fa mi re do" msgstr "" -#: js/toolbar.js:70 -#: js/toolbar.js:130 -#: js/toolbar.js:194 -#: js/toolbar.js:249 -msgid "Toggle JavaScript Editor" +#: js/block-verbose.js:2616 +#: js/block.js:2544 +#.TRANS: scalar step +#.TRANS: scalar step +msgid "down" msgstr "" -#: js/toolbar.js:71 -#: js/toolbar.js:131 -#: js/toolbar.js:195 -#: js/toolbar.js:250 -#: js/turtledefs.js:724 -msgid "Restore" +#: js/block-verbose.js:2617 +#: js/block.js:2545 +msgid "up" msgstr "" -#: js/toolbar.js:72 -#: js/toolbar.js:132 -#: js/toolbar.js:196 -#: js/toolbar.js:251 -msgid "Switch to beginner mode" +#: js/block-verbose.js:3026 +#: js/block.js:2950 +msgid "Silence block cannot be removed." msgstr "" -#: js/toolbar.js:73 -#: js/toolbar.js:133 -#: js/toolbar.js:197 -#: js/toolbar.js:252 -msgid "Switch to advanced mode" +#: js/block-verbose.js:3824 +#: js/block.js:3748 +#: js/blocks.js:2607 +#: js/blocks.js:3218 +#: js/palette.js:618 +#: js/blocks/BooleanBlocks.js:77 +#: js/blocks/BooleanBlocks.js:167 +#: js/blocks/BooleanBlocks.js:251 +#: js/blocks/BooleanBlocks.js:335 +#: js/blocks/BooleanBlocks.js:433 +#: js/blocks/BooleanBlocks.js:539 +#: js/blocks/BooleanBlocks.js:640 +#: js/blocks/BooleanBlocks.js:741 +#: js/blocks/BooleanBlocks.js:847 +#: js/blocks/BooleanBlocks.js:948 +#: js/blocks/BooleanBlocks.js:1033 +#: js/blocks/SensorsBlocks.js:910 +msgid "true" msgstr "" -#: js/toolbar.js:74 -#: js/toolbar.js:134 -#: js/toolbar.js:143 -#: js/toolbar.js:198 -#: js/toolbar.js:253 -#: js/turtledefs.js:738 -msgid "Select language" +#: js/block-verbose.js:3824 +#: js/block.js:3748 +#: js/blocks.js:2609 +#: js/blocks.js:3220 +#: js/blocks/BooleanBlocks.js:79 +#: js/blocks/BooleanBlocks.js:169 +#: js/blocks/BooleanBlocks.js:253 +#: js/blocks/BooleanBlocks.js:337 +#: js/blocks/BooleanBlocks.js:435 +#: js/blocks/BooleanBlocks.js:541 +#: js/blocks/BooleanBlocks.js:642 +#: js/blocks/BooleanBlocks.js:743 +#: js/blocks/BooleanBlocks.js:849 +#: js/blocks/BooleanBlocks.js:950 +#: js/blocks/SensorsBlocks.js:912 +msgid "false" msgstr "" -#: js/toolbar.js:76 -#: js/toolbar.js:79 -#: js/toolbar.js:137 -#: js/turtledefs.js:579 -msgid "Save mouse artwork as PNG" +#: js/block-verbose.js:3835 +#: js/block-verbose.js:3848 +#: js/block.js:3759 +#: js/block.js:3772 +#: js/blocks/ExtrasBlocks.js:615 +msgid "Cartesian" msgstr "" -#: js/toolbar.js:78 -#: js/toolbar.js:136 -#: js/turtledefs.js:575 -msgid "Save mouse artwork as SVG" +#: js/block-verbose.js:3836 +#: js/block-verbose.js:3849 +#: js/block.js:3760 +#: js/block.js:3773 +#: js/blocks/ExtrasBlocks.js:619 +msgid "polar" msgstr "" -#: js/toolbar.js:80 -#: js/toolbar.js:138 -#: js/turtledefs.js:583 -msgid "Save music as WAV" +#: js/block-verbose.js:3837 +#: js/block-verbose.js:3850 +#: js/block.js:3761 +#: js/block.js:3774 +#: js/blocks/ExtrasBlocks.js:623 +msgid "Cartesian+polar" msgstr "" -#: js/toolbar.js:81 -#: js/toolbar.js:139 -#: js/turtledefs.js:587 -msgid "Save sheet music as ABC" +#: js/block-verbose.js:3838 +#: js/block-verbose.js:3857 +#: js/block.js:3762 +#: js/block.js:3781 +#: js/blocks/ExtrasBlocks.js:652 +msgid "none" msgstr "" -#: js/toolbar.js:82 -#: js/toolbar.js:140 -#: js/turtledefs.js:591 -msgid "Save sheet music as Lilypond" +#: js/block-verbose.js:3851 +#: js/block.js:3775 +#: js/blocks/ExtrasBlocks.js:628 +msgid "treble" msgstr "" -#: js/toolbar.js:83 -msgid "Save sheet music as MusicXML" +#: js/block-verbose.js:3852 +#: js/block.js:3776 +#: js/blocks/ExtrasBlocks.js:632 +msgid "grand staff" msgstr "" -#: js/toolbar.js:84 -#: js/toolbar.js:141 -#: js/toolbar.js:149 -#: js/toolbar.js:204 -#: js/toolbar.js:259 -#: js/turtledefs.js:562 -#: js/turtledefs.js:595 -msgid "Save block artwork as SVG" +#: js/block-verbose.js:3853 +#: js/block.js:3777 +#: js/blocks/ExtrasBlocks.js:636 +msgid "mezzo-soprano" msgstr "" -#: js/toolbar.js:85 -#: js/toolbar.js:142 -#: js/toolbar.js:150 -#: js/toolbar.js:205 -#: js/toolbar.js:260 -msgid "Confirm" +#: js/block-verbose.js:3854 +#: js/block.js:3778 +#: js/blocks/ExtrasBlocks.js:640 +msgid "alto" msgstr "" -#: js/toolbar.js:86 -#: js/toolbar.js:151 -#: js/toolbar.js:206 -#: js/toolbar.js:261 -msgid "English (United States)" +#: js/block-verbose.js:3855 +#: js/block.js:3779 +#: js/blocks/ExtrasBlocks.js:644 +msgid "tenor" msgstr "" -#: js/toolbar.js:87 -#: js/toolbar.js:152 -#: js/toolbar.js:207 -#: js/toolbar.js:262 -msgid "English (United Kingdom)" +#: js/block-verbose.js:3856 +#: js/block.js:3780 +#: js/utils/musicutils.js:1115 +#: js/utils/synthutils.js:80 +#: js/blocks/ExtrasBlocks.js:648 +#.TRANS: musical instrument +msgid "bass" msgstr "" -#: js/toolbar.js:88 -#: js/toolbar.js:153 -#: js/toolbar.js:208 -#: js/toolbar.js:263 -msgid "日本語" +#: js/block-verbose.js:3901 +#: js/block.js:3825 +#: js/blocks.js:2600 +#: js/blocks.js:3211 +msgid "on2" msgstr "" -#: js/toolbar.js:89 -msgid "한국어" +#: js/block-verbose.js:3903 +#: js/block.js:3827 +#: js/blocks.js:2602 +#: js/blocks.js:3213 +msgid "off" msgstr "" -#: js/toolbar.js:90 -#: js/toolbar.js:155 -#: js/toolbar.js:210 -#: js/toolbar.js:265 -msgid "español" +#: js/block-verbose.js:4470 +#: js/block.js:4394 +msgid "Not a number" msgstr "" -#: js/toolbar.js:91 -#: js/toolbar.js:156 -#: js/toolbar.js:211 -#: js/toolbar.js:266 -msgid "português" +#: js/block-verbose.js:4477 +#: js/block.js:4401 +msgid "Octave value must be between 1 and 10." msgstr "" -#: js/toolbar.js:92 -#: js/toolbar.js:157 -#: js/toolbar.js:212 -#: js/toolbar.js:267 -msgid "にほんご" +#: js/block-verbose.js:4485 +#: js/block.js:4409 +msgid "Numbers can have at most 10 digits." msgstr "" -#: js/toolbar.js:93 -#: js/toolbar.js:158 -#: js/toolbar.js:213 -#: js/toolbar.js:268 -msgid "中文" +#: js/activity.js:390 +#: js/activity.js:395 +msgid "Search for blocks" msgstr "" -#: js/toolbar.js:94 -#: js/toolbar.js:159 -#: js/toolbar.js:214 -#: js/toolbar.js:269 -msgid "ภาษาไทย" +#: js/activity.js:1413 +msgid "Refresh your browser to change to advanced mode." msgstr "" -#: js/toolbar.js:95 -#: js/toolbar.js:160 -#: js/toolbar.js:215 -#: js/toolbar.js:270 -msgid "aymara" +#: js/activity.js:1418 +msgid "Refresh your browser to change to beginner mode." msgstr "" -#: js/toolbar.js:96 -#: js/toolbar.js:161 -#: js/toolbar.js:216 -#: js/toolbar.js:271 -msgid "quechua" +#: js/activity.js:1477 +msgid "Catching mice" msgstr "" -#: js/toolbar.js:97 -#: js/toolbar.js:162 -#: js/toolbar.js:217 -#: js/toolbar.js:272 -msgid "guarani" +#: js/activity.js:1478 +msgid "Cleaning the instruments" msgstr "" -#: js/toolbar.js:98 -#: js/toolbar.js:163 -#: js/toolbar.js:218 -#: js/toolbar.js:273 -msgid "हिंदी" +#: js/activity.js:1479 +msgid "Testing key pieces" msgstr "" -#: js/toolbar.js:99 -#: js/toolbar.js:165 -#: js/toolbar.js:219 -#: js/toolbar.js:275 -msgid "igbo" +#: js/activity.js:1480 +msgid "Sight-reading" msgstr "" -#: js/toolbar.js:100 -#: js/toolbar.js:166 -#: js/toolbar.js:220 -#: js/toolbar.js:276 -msgid "عربى" +#: js/activity.js:1481 +msgid "Combining math and music" +msgstr "" + +#: js/activity.js:1482 +msgid "Generating more blocks" msgstr "" -#: js/toolbar.js:101 -#: js/toolbar.js:164 -#: js/toolbar.js:221 -#: js/toolbar.js:274 -msgid "తెలుగు" +#: js/activity.js:1483 +msgid "Do Re Mi Fa Sol La Ti Do" msgstr "" -#: js/toolbar.js:102 -#: js/toolbar.js:167 -#: js/toolbar.js:222 -#: js/toolbar.js:277 -msgid "עִברִית" +#: js/activity.js:1484 +msgid "Tuning string instruments" msgstr "" -#: js/toolbar.js:111 -#: js/toolbar.js:175 -#: js/toolbar.js:176 -#: js/toolbar.js:231 -msgid "Full Screen" +#: js/activity.js:1485 +msgid "Pressing random keys" msgstr "" -#: js/toolbar.js:145 -#: js/toolbar.js:148 -#: js/toolbar.js:200 -#: js/toolbar.js:203 -#: js/toolbar.js:255 -#: js/toolbar.js:258 -#: js/turtledefs.js:558 -msgid "Save turtle artwork as PNG" +#: js/activity.js:1663 +msgid "plugins will be removed upon restart." msgstr "" -#: js/toolbar.js:147 -#: js/toolbar.js:202 -#: js/toolbar.js:257 -#: js/turtledefs.js:554 -msgid "Save turtle artwork as SVG" +#: js/activity.js:1672 +msgid "show Cartesian" msgstr "" -#: js/toolbar.js:154 -#: js/toolbar.js:209 -#: js/toolbar.js:264 -msgid "한국인" +#: js/activity.js:2211 +#: js/palette.js:589 +#: js/blocks/RhythmBlocks.js:923 +#: js/blocks/PitchBlocks.js:442 +#: js/blocks/PitchBlocks.js:1786 +#.TRANS: a numeric mapping of the notes in an octave based on the musical mode +msgid "scale degree" msgstr "" -#: js/toolbar.js:171 -#: js/toolbar.js:227 -msgid "About Turtle Blocks" +#: js/activity.js:2214 +#: js/palette.js:598 +msgid "voice name" msgstr "" -#: js/toolbar.js:429 -#: js/toolbar.js:440 -msgid "Turtle Wrap Off" +#: js/activity.js:2217 +#: js/palette.js:595 +msgid "invert mode" msgstr "" -#: js/toolbar.js:442 -msgid "Turtle Wrap On" +#: js/activity.js:2220 +msgid "output tools" msgstr "" -#: js/block.js:1470 -msgid "matrix" +#: js/activity.js:2223 +msgid "custom note" msgstr "" -#: js/block.js:1477 -#: js/WidgetBlocks.js:1226 -#: plugins/rodi.rtp:324 -msgid "status" +#: js/activity.js:2226 +msgid "accidental name" msgstr "" -#: js/block.js:1484 -msgid "drum mapper" +#: js/activity.js:2229 +#: js/blocks/PitchBlocks.js:855 +msgid "east indian solfege" msgstr "" -#: js/block.js:1491 -msgid "ruler" +#: js/activity.js:2232 +#: js/blocks/PitchBlocks.js:869 +msgid "note name" msgstr "" -#: js/block.js:1498 -#: js/WidgetBlocks.js:327 -#.TRANS: timbre is the character or quality of a musical sound -msgid "timbre" +#: js/activity.js:2235 +#: js/blocks/IntervalsBlocks.js:94 +msgid "temperament name" msgstr "" -#: js/block.js:1505 -msgid "stair" +#: js/activity.js:2238 +#: js/palette.js:592 +msgid "mode name" msgstr "" -#: js/block.js:1512 -#: js/WidgetBlocks.js:577 -#.TRANS: the speed at music is should be played. -msgid "tempo" +#: js/activity.js:2241 +msgid "chord name" msgstr "" -#: js/block.js:1519 -#: js/block.js:1582 -#: js/IntervalsBlocks.js:1268 -#.TRANS: mode, e.g., Major in C Major -msgid "mode" +#: js/activity.js:2244 +#: js/palette.js:615 +msgid "interval name" msgstr "" -#: js/block.js:1526 -msgid "slider" +#: js/activity.js:2247 +msgid "filter type" msgstr "" -#: js/block.js:1533 -#: js/SensorsBlocks.js:1001 -msgid "keyboard" +#: js/activity.js:2250 +msgid "oscillator type" msgstr "" -#: js/block.js:1547 -#: js/WidgetBlocks.js:957 -#: js/WidgetBlocks.js:988 -#.TRANS: widget for subdividing a measure into distinct rhythmic elements -msgid "rhythm maker" +#: js/activity.js:2253 +#: js/blocks.js:2479 +#: js/blocks.js:2487 +msgid "audio file" msgstr "" -#: js/block.js:1554 -#: js/block.js:2182 -#: js/block.js:2236 -#: js/RhythmBlockPaletteBlocks.js:70 -#: js/RhythmBlockPaletteBlocks.js:251 -#: js/RhythmBlockPaletteBlocks.js:484 -#: js/RhythmBlockPaletteBlocks.js:553 -#: js/RhythmBlockPaletteBlocks.js:604 -#: js/RhythmBlockPaletteBlocks.js:874 -#: js/RhythmBlocks.js:33 -#: js/RhythmBlocks.js:356 -#: js/RhythmBlocks.js:766 -#: js/RhythmBlocks.js:806 -#: js/OrnamentBlocks.js:220 -#: js/OrnamentBlocks.js:312 -#: js/MeterBlocks.js:1367 -#: js/DictActions.js:85 -#: js/phrasemaker.js:731 -#: js/phrasemaker.js:2393 -#: js/phrasemaker.js:2436 -#: js/phrasemaker.js:2534 -#.TRANS: the value (e.g., 1/4 note) of the note being played. -msgid "note value" +#: js/activity.js:2256 +#: js/blocks/DrumBlocks.js:32 +msgid "noise name" msgstr "" -#: js/block.js:1561 -#: js/block.js:2110 -#: js/block.js:2133 -#: js/IntervalsBlocks.js:875 -#: js/OrnamentBlocks.js:312 -#.TRANS: calculate a relative step between notes based on semi-tones -msgid "scalar interval" +#: js/activity.js:2259 +#: js/blocks/DrumBlocks.js:75 +msgid "drum name" msgstr "" -#: js/block.js:1568 -#: js/RhythmBlocks.js:148 -msgid "milliseconds" +#: js/activity.js:2262 +#: js/blocks/DrumBlocks.js:119 +msgid "effects name" msgstr "" -#: js/block.js:2180 -#: js/block.js:2184 -#: js/block.js:2234 -#: js/block.js:2345 -#: js/ProgramBlocks.js:1273 -#: js/RhythmBlocks.js:712 -#: js/rhythmruler.js:834 -#: js/rhythmruler.js:961 -msgid "silence" +#: js/activity.js:2265 +msgid "wrap mode" msgstr "" -#: js/block.js:2265 -#: js/block.js:3134 -#: js/block.js:3151 -#: js/activity.js:2336 -#: js/activity.js:2387 -#: js/musicutils.js:2932 -#: js/musicutils.js:4287 -#.TRANS: the note names must be separated by single spaces -#.TRANS: the note names must be separated by single spaces -msgid "ti la sol fa mi re do" +#: js/activity.js:2268 +msgid "load file" msgstr "" -#: js/block.js:2333 -#.TRANS: scalar step -msgid "down" +#: js/activity.js:2435 +#: js/activity.js:5851 +msgid "This block is deprecated." msgstr "" -#: js/block.js:2334 -msgid "up" +#: js/activity.js:2437 +#: js/activity.js:5853 +msgid "Block cannot be found." msgstr "" -#: js/block.js:3477 -#: js/block.js:3490 -#: js/ExtrasBlocks.js:612 -msgid "Cartesian" +#: js/activity.js:2645 +msgid "Saving block artwork" msgstr "" -#: js/block.js:3478 -#: js/block.js:3491 -#: js/ExtrasBlocks.js:616 -msgid "polar" +#: js/activity.js:2656 +msgid "Erase" msgstr "" -#: js/block.js:3479 -#: js/block.js:3492 -#: js/ExtrasBlocks.js:620 -msgid "Cartesian+polar" +#: js/activity.js:2683 +#: js/activity.js:2705 +msgid "Paste" msgstr "" -#: js/block.js:3480 -#: js/block.js:3499 -#: js/ExtrasBlocks.js:649 -msgid "none" +#: js/activity.js:2687 +msgid "Save block help" msgstr "" -#: js/block.js:3493 -#: js/ExtrasBlocks.js:625 -msgid "treble" +#: js/activity.js:2772 +msgid "Jumping to the bottom of the page." msgstr "" -#: js/block.js:3494 -#: js/ExtrasBlocks.js:629 -msgid "grand staff" +#: js/activity.js:2778 +msgid "Scrolling up." msgstr "" -#: js/block.js:3495 -#: js/ExtrasBlocks.js:633 -msgid "mezzo-soprano" +#: js/activity.js:2783 +msgid "Scrolling down." msgstr "" -#: js/block.js:3496 -#: js/ExtrasBlocks.js:637 -msgid "alto" +#: js/activity.js:2788 +msgid "Extracting block" msgstr "" -#: js/block.js:3497 -#: js/ExtrasBlocks.js:641 -msgid "tenor" +#: js/activity.js:2796 +msgid "Moving block up." msgstr "" -#: js/block.js:3498 -#: js/ExtrasBlocks.js:645 -#: js/musicutils.js:736 -#: js/synthutils.js:64 -#.TRANS: musical instrument -msgid "bass" +#: js/activity.js:2817 +msgid "Moving block down." msgstr "" -#: js/block.js:4075 -msgid "Not a number" +#: js/activity.js:2838 +msgid "Moving block left." msgstr "" -#: js/block.js:4082 -msgid "Octave value must be between 1 and 10." +#: js/activity.js:2855 +msgid "Moving block right." msgstr "" -#: js/block.js:4090 -msgid "Numbers can have at most 10 digits." +#: js/activity.js:2870 +msgid "Jump to home position." msgstr "" -#: js/notation.js:353 -msgid "Lilypond cannot process pickup of " +#: js/activity.js:2897 +msgid "Hide blocks" msgstr "" -#: js/turtledefs.js:40 -#.TRANS: put the URL to the guide here, e.g., https://github.com/sugarlabs/turtleblocksjs/tree/master/guide/README.md -msgid "guide url" +#: js/activity.js:4500 +msgid "Click the run button to run the project." msgstr "" -#: js/turtledefs.js:85 -#: js/turtledefs.js:437 -msgid "Turtle Blocks is a Logo-inspired turtle that draws colorful pictures with snap-together visual-programming blocks." +#: js/activity.js:5692 +msgid "Show/hide block" msgstr "" -#: js/turtledefs.js:118 -#: js/turtledefs.js:220 -msgid "search" +#: js/activity.js:5698 +msgid "Expand/collapse blocks" msgstr "" -#: js/turtledefs.js:120 -#: js/turtledefs.js:222 -#: js/WidgetBlocks.js:437 -#: js/MeterBlocks.js:1343 -#.TRANS: musical meter (time signature), e.g., 4:4 -msgid "meter" +#: js/activity.js:5976 +msgid "Could not parse JSON input." msgstr "" -#: js/turtledefs.js:122 -#: js/turtledefs.js:224 -msgid "intervals" +#: js/activity.js:6475 +#: js/activity.js:6580 +#: js/activity.js:6631 +msgid "Cannot load project from the file. Please check the file type." msgstr "" -#: js/turtledefs.js:124 -#: js/turtledefs.js:226 -msgid "ornament" +#: js/activity.js:6917 +msgid "Invalid parameters" msgstr "" -#: js/turtledefs.js:125 -#: js/turtledefs.js:227 -#: js/VolumeBlocks.js:362 -#: js/VolumeBlocks.js:502 -#: js/VolumeBlocks.js:545 -msgid "volume" +#: js/blocks.js:1212 +#: js/blocks.js:3444 +#: js/blocks.js:3834 +#: js/blocks.js:3865 +#: js/blocks.js:3914 +#: js/blocks.js:3949 +#: js/blocks.js:6586 +#: js/palette.js:509 +#: js/palette.js:638 +#: js/palette.js:1105 +#: js/blocks/BoxesBlocks.js:282 +#: js/blocks/BoxesBlocks.js:285 +#: js/blocks/BoxesBlocks.js:405 +#: js/blocks/BoxesBlocks.js:594 +msgid "box" msgstr "" -#: js/turtledefs.js:129 -#: js/turtledefs.js:231 -msgid "boxes" +#: js/blocks.js:1713 +msgid "Consider breaking this stack into parts." msgstr "" -#: js/turtledefs.js:130 -#: js/turtledefs.js:232 -msgid "widgets" +#: js/blocks.js:2472 +#: js/palette.js:653 +#: js/blocks/MediaBlocks.js:602 +msgid "open file" msgstr "" -#: js/turtledefs.js:131 -#: js/turtledefs.js:233 -#: js/phrasemaker.js:824 -msgid "graphics" +#: js/blocks.js:3247 +#: js/palette.js:574 +#: js/blocks/MediaBlocks.js:892 +#: js/blocks/MediaBlocks.js:963 +msgid "text" +msgstr "ጽሑፍ" + +#: js/blocks.js:3443 +#: js/palette.js:641 +#: js/palette.js:642 +#: js/blocks/BoxesBlocks.js:514 +msgid "store in box" msgstr "" -#: js/turtledefs.js:134 -#: js/turtledefs.js:236 -msgid "boolean" +#: js/blocks.js:3448 +#: js/blocks.js:3888 +#: js/blocks.js:3923 +#: js/blocks.js:3958 +#: js/blocks.js:5862 +#: js/blocks.js:5883 +#: js/blocks/BoxesBlocks.js:772 +msgid "box1" msgstr "" -#: js/turtledefs.js:137 -#: js/turtledefs.js:239 -#: js/HeapBlocks.js:59 -#: js/status.js:147 -msgid "heap" +#: js/blocks.js:3450 +#: js/blocks.js:3890 +#: js/blocks.js:3925 +#: js/blocks.js:3960 +#: js/blocks.js:5864 +#: js/blocks.js:5885 +#: js/blocks/BoxesBlocks.js:663 +msgid "box2" msgstr "" -#: js/turtledefs.js:138 -#: js/turtledefs.js:240 -#: js/ProgramBlocks.js:495 -#: js/DictBlocks.js:142 -msgid "dictionary" +#: js/blocks.js:4122 +#: js/palette.js:639 +#: js/palette.js:644 +#: js/palette.js:1041 +#: js/blocks/BoxesBlocks.js:591 +msgid "store in" msgstr "" -#: js/turtledefs.js:139 -#: js/turtledefs.js:241 -msgid "ensemble" +#: js/blocks.js:4122 +#: js/blocks/BoxesBlocks.js:595 +#: js/blocks/DictBlocks.js:215 +#: js/blocks/DictBlocks.js:289 +#: js/blocks/EnsembleBlocks.js:391 +#: js/blocks/EnsembleBlocks.js:402 +#: js/blocks/MediaBlocks.js:746 +#: js/blocks/PitchBlocks.js:656 +#: js/blocks/PitchBlocks.js:934 +#: js/blocks/PitchBlocks.js:1866 +#: js/blocks/ProgramBlocks.js:390 +#: js/blocks/ProgramBlocks.js:495 +#: js/blocks/ProgramBlocks.js:658 +#: js/blocks/ToneBlocks.js:1025 +msgid "name" msgstr "" -#: js/turtledefs.js:140 -#: js/turtledefs.js:242 -msgid "extras" +#: js/blocks.js:4122 +#: js/blocks/BoxesBlocks.js:75 +#: js/blocks/BoxesBlocks.js:595 +#: js/blocks/DictBlocks.js:289 +#: js/blocks/DictBlocks.js:430 +#: js/blocks/HeapBlocks.js:544 +#: js/blocks/RhythmBlocks.js:1130 +msgid "value" msgstr "" -#: js/turtledefs.js:142 -#: js/turtledefs.js:244 -#.TRANS: program as in computer program -#.TRANS: program as in computer program -msgid "program" +#: js/blocks.js:4465 +msgid "Forever loop detected inside a note value block. Unexpected things may happen." msgstr "" -#: js/turtledefs.js:143 -#: js/turtledefs.js:245 -msgid "my blocks" +#: js/blocks.js:4988 +msgid "There is no block selected." msgstr "" -#: js/turtledefs.js:185 -#: js/turtledefs.js:281 -msgid "artwork" +#: js/blocks.js:5091 +#: js/blocks/MediaBlocks.js:888 +msgid "show" msgstr "" -#: js/turtledefs.js:185 -#: js/turtledefs.js:281 -msgid "logic" +#: js/blocks.js:5094 +#: js/blocks/MediaBlocks.js:803 +#.TRANS: Avatar is the image used to determine the appearance of the mouse. +msgid "avatar" msgstr "" -#: js/turtledefs.js:185 -#: js/turtledefs.js:281 -msgid "music" +#: js/blocks.js:5097 +#: js/blocks/ToneBlocks.js:1010 +#: js/widgets/sampler.js:975 +#.TRANS: The sound sample that the user uploads. +msgid "sample" msgstr "" -#: js/turtledefs.js:187 -#: js/turtledefs.js:463 -msgid "Music Blocks is a collection of tools for exploring fundamental musical concepts in a fun way." +#: js/lilypond.js:606 +msgid "brown rat" msgstr "" -#: js/turtledefs.js:436 -msgid "Welcome to Turtle Blocks" +#: js/lilypond.js:607 +msgid "mole" msgstr "" -#: js/turtledefs.js:438 -#: js/turtledefs.js:465 -#: js/turtledefs.js:774 -#: js/turtledefs.js:805 -msgid "The current version is" +#: js/lilypond.js:608 +msgid "chipmunk" msgstr "" -#: js/turtledefs.js:446 -#: js/turtledefs.js:483 -msgid "Click the run button to run the project in fast mode." +#: js/lilypond.js:609 +msgid "red squirrel" msgstr "" -#: js/turtledefs.js:452 -msgid "Stop the turtle." +#: js/lilypond.js:610 +msgid "guinea pig" msgstr "" -#: js/turtledefs.js:454 -#: js/turtledefs.js:491 -msgid "You can also type Alt-S to stop." +#: js/lilypond.js:611 +msgid "capybara" msgstr "" -#: js/turtledefs.js:462 -#: js/help.js:333 -msgid "Welcome to Music Blocks" +#: js/lilypond.js:612 +msgid "coypu" msgstr "" -#: js/turtledefs.js:472 -#: js/help.js:334 -msgid "Meet Mr. Mouse!" +#: js/lilypond.js:613 +msgid "black rat" +msgstr "" + +#: js/lilypond.js:614 +msgid "grey squirrel" msgstr "" -#: js/turtledefs.js:473 -msgid "Mr Mouse is our Music Blocks conductor." +#: js/lilypond.js:615 +msgid "flying squirrel" msgstr "" -#: js/turtledefs.js:475 -msgid "Mr Mouse encourages you to explore Music Blocks." +#: js/lilypond.js:616 +msgid "bat" msgstr "" -#: js/turtledefs.js:477 -msgid "Let us start our tour!" +#: js/lilypond.js:749 +#: js/lilypond.js:913 +#: js/lilypond.js:951 +#: js/blocks/ActionBlocks.js:1256 +#: js/blocks/ExtrasBlocks.js:556 +msgid "start drum" msgstr "" -#: js/turtledefs.js:489 -msgid "Stop the music (and the mice)." +#: js/logo.js:61 +msgid "Not a valid pitch name" msgstr "" -#: js/turtledefs.js:499 -msgid "Record your project as video." +#: js/logo.js:507 +#: js/blocks/ProgramBlocks.js:258 +#: js/blocks/ProgramBlocks.js:427 +msgid "You must select a file." msgstr "" -#: js/turtledefs.js:505 -msgid "Toggle Fullscreen mode." +#: js/logo.js:1696 +msgid "Playback is ready." msgstr "" -#: js/turtledefs.js:511 -msgid "Initialize a new project." +#: js/macros.js:711 +#: js/utils/musicutils.js:1162 +#: js/utils/synthutils.js:202 +#.TRANS: animal sound effect +msgid "duck" msgstr "" -#: js/turtledefs.js:517 -msgid "You can also load projects from the file system." +#: js/notation.js:353 +msgid "Lilypond cannot process pickup of " msgstr "" -#: js/turtledefs.js:522 -#: js/StringHelper.js:46 -msgid "Delete" +#: js/palette.js:571 +msgid "grid" msgstr "" -#: js/turtledefs.js:523 -msgid "To delete a block, just right-click on it, then you will be able to see the delete option" +#: js/palette.js:580 +msgid "effect" msgstr "" -#: js/turtledefs.js:528 -#: js/activity.js:2270 -#: js/LocalCard.js:31 -msgid "Copy" +#: js/palette.js:586 +msgid "sargam" msgstr "" -#: js/turtledefs.js:529 -msgid "To copy a block, just right-click on it, then you will be able to see the copy option" +#: js/palette.js:601 +#: js/blocks/PitchBlocks.js:1209 +msgid "custom pitch" msgstr "" -#: js/turtledefs.js:535 -msgid "To extract a block, just right-click on it, then you will be able to see the extract option" +#: js/palette.js:609 +msgid "accidental" msgstr "" -#: js/turtledefs.js:542 -#: js/turtledefs.js:552 -#: js/turtledefs.js:573 -msgid "Save your project to a file." +#: js/palette.js:633 +#: js/blocks/PitchBlocks.js:405 +msgid "pitch converter" msgstr "" -#: js/turtledefs.js:549 -#: js/turtledefs.js:570 -msgid "save" +#: js/piemenus.js:200 +#: js/utils/musicutils.js:1187 +#: js/utils/musicutils.js:1207 +#: js/widgets/musickeyboard.js:2341 +#: js/widgets/phrasemaker.js:1908 +#: js/widgets/sampler.js:810 +#.TRANS: double sharp is a music term related to pitch +msgid "double sharp" msgstr "" -#: js/turtledefs.js:556 -#: js/turtledefs.js:577 -msgid "Save graphics from your project to as SVG." +#: js/piemenus.js:201 +#: js/utils/musicutils.js:1185 +#: js/utils/musicutils.js:1208 +#: js/blocks/PitchBlocks.js:1539 +#: js/turtleactions/PitchActions.js:323 +#: js/widgets/musickeyboard.js:2342 +#: js/widgets/phrasemaker.js:1909 +#: js/widgets/sampler.js:811 +#.TRANS: sharp is a music term related to pitch +#.TRANS: sharp is a half-step up in pitch +msgid "sharp" msgstr "" -#: js/turtledefs.js:560 -#: js/turtledefs.js:581 -msgid "Save graphics from your project as PNG." +#: js/piemenus.js:202 +#: js/utils/musicutils.js:1183 +#: js/utils/musicutils.js:1209 +#: js/widgets/musickeyboard.js:2343 +#: js/widgets/phrasemaker.js:1910 +#: js/widgets/sampler.js:812 +#.TRANS: natural is a music term related to pitch +msgid "natural" msgstr "" -#: js/turtledefs.js:564 -#: js/turtledefs.js:597 -msgid "Save block artwork as an SVG file." +#: js/piemenus.js:203 +#: js/utils/musicutils.js:1181 +#: js/utils/musicutils.js:1210 +#: js/blocks/PitchBlocks.js:1498 +#: js/turtleactions/PitchActions.js:326 +#: js/widgets/musickeyboard.js:2344 +#: js/widgets/phrasemaker.js:1911 +#: js/widgets/sampler.js:813 +#.TRANS: flat is a music term related to pitch +#.TRANS: flat is a half-step down in pitch +msgid "flat" msgstr "" -#: js/turtledefs.js:585 -msgid "Save audio from your project as WAV." +#: js/piemenus.js:204 +#: js/utils/musicutils.js:1179 +#: js/utils/musicutils.js:1211 +#: js/widgets/musickeyboard.js:2345 +#: js/widgets/phrasemaker.js:1912 +#: js/widgets/sampler.js:814 +#.TRANS: double flat is a music term related to pitch +msgid "double flat" msgstr "" -#: js/turtledefs.js:589 -msgid "Save your project to as an ABC file." +#: js/piemenus.js:2864 +#: js/utils/musicutils.js:1006 +#: js/blocks/PitchBlocks.js:1385 +#.TRANS: unison is a music term related to intervals +#.TRANS: unison means the note is the same as the current note +msgid "unison" msgstr "" -#: js/turtledefs.js:593 -msgid "Save your project to as a Lilypond file." +#: js/piemenus.js:3018 +#: js/piemenus.js:3091 +#: js/utils/musicutils.js:1014 +#: js/utils/musicutils.js:1189 +#: js/utils/musicutils.js:1326 +#.TRANS: major is a music term related to intervals and mode +msgid "major" msgstr "" -#: js/turtledefs.js:604 -msgid "Load samples from server" +#: js/piemenus.js:3018 +#: js/piemenus.js:3091 +#: js/utils/musicutils.js:1032 +#.TRANS: modal scale for music +msgid "ionian" msgstr "" -#: js/turtledefs.js:605 -msgid "This button opens a viewer for loading example projects." +#: js/piemenus.js:3020 +#: js/piemenus.js:3095 +#: js/utils/musicutils.js:1012 +#: js/utils/musicutils.js:1190 +#: js/utils/musicutils.js:1323 +#.TRANS: minor is a music term related to intervals and mode +msgid "minor" msgstr "" -#: js/turtledefs.js:611 -msgid "Palette buttons" +#: js/piemenus.js:3020 +#: js/piemenus.js:3095 +#: js/utils/musicutils.js:1042 +#.TRANS: modal scale for music +msgid "aeolian" msgstr "" -#: js/turtledefs.js:612 -msgid "This toolbar contains the palette buttons including Rhythm Pitch Tone Action and more." +#: js/piemenus.js:3410 +msgid "Duplicate" msgstr "" -#: js/turtledefs.js:614 -msgid "Click to show the palettes of blocks and drag blocks from the palettes onto the canvas to use them." +#: js/piemenus.js:3412 +msgid "Move to trash" msgstr "" -#: js/turtledefs.js:620 -msgid "Cartesian/Polar" +#: js/piemenus.js:3413 +#: js/widgets/timbre.js:968 +#: planet/js/StringHelper.js:69 +msgid "Close" msgstr "" -#: js/turtledefs.js:621 -msgid "Show or hide a coordinate grid." +#: js/piemenus.js:3419 +msgid "Save stack" msgstr "" -#: js/turtledefs.js:627 -msgid "Clear the screen and return the mice to their initial positions." +#: js/piemenus.js:3449 +msgid "In order to copy a sample, you must reload the widget, import the sample again, and export it." msgstr "" -#: js/turtledefs.js:633 -msgid "Collapse the graphics window." +#: js/piemenus.js:3812 +msgid "You have chosen key " msgstr "" -#: js/turtledefs.js:638 -#: js/activity.js:4256 -#: js/activity.js:4256 -msgid "Home" +#: js/piemenus.js:3816 +msgid " for your pitch preview." msgstr "" -#: js/turtledefs.js:639 -msgid "Return all blocks to the center of the screen." +#: js/turtle-singer.js:1363 +#.TRANS: partials are weighted components in a harmonic series +msgid "You must have at least one Partial block inside of a Weighted-partial block" msgstr "" -#: js/turtledefs.js:644 -msgid "Show/hide blocks" +#: js/turtle-singer.js:2077 +msgid "synth cannot play chords." msgstr "" -#: js/turtledefs.js:645 -msgid "Hide or show the blocks and the palettes." +#: js/utils/musicutils.js:505 +#: js/utils/musicutils.js:645 +#: js/widgets/pitchdrummatrix.js:228 +#: js/widgets/musickeyboard.js:2885 +msgid "rest" msgstr "" -#: js/turtledefs.js:650 -msgid "Expand/collapse collapsable blocks" +#: js/utils/musicutils.js:689 +msgid "Perfect unison" msgstr "" -#: js/turtledefs.js:651 -msgid "Expand or collapse start and action stacks." +#: js/utils/musicutils.js:689 +msgid "Diminished second" msgstr "" -#: js/turtledefs.js:658 -#: js/activity.js:4265 -msgid "Decrease block size" +#: js/utils/musicutils.js:690 +msgid "Minor second" msgstr "" -#: js/turtledefs.js:659 -msgid "Decrease the size of the blocks." +#: js/utils/musicutils.js:690 +msgid "Augmented unison" msgstr "" -#: js/turtledefs.js:664 -#: js/activity.js:4267 -msgid "Increase block size" +#: js/utils/musicutils.js:691 +msgid "Major second" msgstr "" -#: js/turtledefs.js:665 -msgid "Increase the size of the blocks." +#: js/utils/musicutils.js:691 +msgid "Diminished third" msgstr "" -#: js/turtledefs.js:670 -msgid "Expand/collapse option toolbar" +#: js/utils/musicutils.js:692 +msgid "Minor third" msgstr "" -#: js/turtledefs.js:671 -msgid "Click this button to expand or collapse the auxillary toolbar." +#: js/utils/musicutils.js:692 +msgid "Augmented second" msgstr "" -#: js/turtledefs.js:676 -msgid "Run slow" +#: js/utils/musicutils.js:693 +msgid "Major third" msgstr "" -#: js/turtledefs.js:677 -msgid "Click to run the project in slow mode." +#: js/utils/musicutils.js:693 +msgid "Diminished fourth" msgstr "" -#: js/turtledefs.js:683 -msgid "Click to run the project step by step." +#: js/utils/musicutils.js:694 +msgid "Perfect fourth" msgstr "" -#: js/turtledefs.js:690 -msgid "Display statistics about your Music project." +#: js/utils/musicutils.js:694 +msgid "Augmented third" msgstr "" -#: js/turtledefs.js:697 -msgid "Delete a selected plugin." +#: js/utils/musicutils.js:695 +msgid "Diminished fifth" msgstr "" -#: js/turtledefs.js:704 -msgid "Enable scrolling" +#: js/utils/musicutils.js:695 +msgid "Augmented fourth" msgstr "" -#: js/turtledefs.js:705 -msgid "You can scroll the blocks on the canvas." +#: js/utils/musicutils.js:696 +msgid "Perfect fifth" msgstr "" -#: js/turtledefs.js:714 -msgid "Wrap Turtle" +#: js/utils/musicutils.js:696 +msgid "Diminished sixth" msgstr "" -#: js/turtledefs.js:715 -msgid "Turn Turtle wrapping On or Off." +#: js/utils/musicutils.js:697 +msgid "Minor sixth" msgstr "" -#: js/turtledefs.js:725 -msgid "Restore blocks from the trash." +#: js/utils/musicutils.js:697 +msgid "Augmented fifth" msgstr "" -#: js/turtledefs.js:732 -msgid "Switch mode" +#: js/utils/musicutils.js:698 +msgid "Major sixth" msgstr "" -#: js/turtledefs.js:733 -msgid "Switch between beginner and advance modes." +#: js/utils/musicutils.js:698 +msgid "Diminished seventh" msgstr "" -#: js/turtledefs.js:739 -msgid "Select your language preference." +#: js/utils/musicutils.js:699 +msgid "Minor seventh" msgstr "" -#: js/turtledefs.js:745 -msgid "Keyboard shortcuts" +#: js/utils/musicutils.js:699 +msgid "Augmented sixth" msgstr "" -#: js/turtledefs.js:746 -msgid "You can type d to create a do block and r to create a re block etc." +#: js/utils/musicutils.js:700 +msgid "Major seventh" msgstr "" -#: js/turtledefs.js:753 -msgid "Show these messages." +#: js/utils/musicutils.js:700 +msgid "Diminished octave" msgstr "" -#: js/turtledefs.js:759 -#: js/turtledefs.js:790 -#: js/help.js:335 -msgid "Guide" +#: js/utils/musicutils.js:701 +msgid "Perfect octave" msgstr "" -#: js/turtledefs.js:760 -msgid "A detailed guide to Turtle Blocks is available." +#: js/utils/musicutils.js:701 +msgid "Augmented seventh" msgstr "" -#: js/turtledefs.js:764 -msgid "Turtle Blocks Guide" +#: js/utils/musicutils.js:702 +msgid "Minor ninth" msgstr "" -#: js/turtledefs.js:767 -#: js/turtledefs.js:798 -#: js/help.js:336 -msgid "About" +#: js/utils/musicutils.js:702 +msgid "Augmented octave" msgstr "" -#: js/turtledefs.js:768 -msgid "Turtle Blocks is an open source collection of tools for exploring musical concepts." +#: js/utils/musicutils.js:703 +msgid "Major ninth" msgstr "" -#: js/turtledefs.js:770 -msgid "A full list of contributors can be found in the Turtle Blocks GitHub repository." +#: js/utils/musicutils.js:703 +msgid "Diminished tenth" msgstr "" -#: js/turtledefs.js:772 -msgid "Turtle Blocks is licensed under the AGPL." +#: js/utils/musicutils.js:704 +msgid "Minor tenth" msgstr "" -#: js/turtledefs.js:780 -msgid "Turtle Blocks GitHub repository" +#: js/utils/musicutils.js:704 +msgid "Augmented ninth" msgstr "" -#: js/turtledefs.js:783 -#: js/turtledefs.js:814 -#: js/help.js:337 -#: js/help.js:359 -msgid "Congratulations." +#: js/utils/musicutils.js:705 +msgid "Major tenth" msgstr "" -#: js/turtledefs.js:784 -msgid "You have finished the tour. Please enjoy Turtle Blocks!" +#: js/utils/musicutils.js:705 +msgid "Diminished eleventh" msgstr "" -#: js/turtledefs.js:791 -msgid "A detailed guide to Music Blocks is available." +#: js/utils/musicutils.js:706 +msgid "Perfect eleventh" msgstr "" -#: js/turtledefs.js:795 -#: js/SaveInterface.js:76 -msgid "Music Blocks Guide" +#: js/utils/musicutils.js:706 +msgid "Augmented tenth" msgstr "" -#: js/turtledefs.js:799 -msgid "Music Blocks is an open source collection of tools for exploring musical concepts." +#: js/utils/musicutils.js:707 +msgid "Diminished twelfth" msgstr "" -#: js/turtledefs.js:801 -msgid "A full list of contributors can be found in the Music Blocks GitHub repository." +#: js/utils/musicutils.js:707 +msgid "Augmented eleventh" msgstr "" -#: js/turtledefs.js:803 -msgid "Music Blocks is licensed under the AGPL." +#: js/utils/musicutils.js:708 +msgid "Perfect twelfth" msgstr "" -#: js/turtledefs.js:811 -msgid "Music Blocks GitHub repository" +#: js/utils/musicutils.js:708 +msgid "Diminished thirteenth" msgstr "" -#: js/turtledefs.js:815 -msgid "You have finished the tour. Please enjoy Music Blocks!" +#: js/utils/musicutils.js:709 +msgid "Minor thirteenth" msgstr "" -#: js/activity.js:369 -msgid "Search for blocks" +#: js/utils/musicutils.js:709 +msgid "Augmented fifth, plus an octave" msgstr "" -#: js/activity.js:1145 -msgid "Refresh your browser to change to advanced mode." +#: js/utils/musicutils.js:710 +msgid "Major thirteenth" msgstr "" -#: js/activity.js:1150 -msgid "Refresh your browser to change to beginner mode." +#: js/utils/musicutils.js:710 +msgid "Diminished seventh, plus an octave" msgstr "" -#: js/activity.js:1184 -msgid "Catching mice" +#: js/utils/musicutils.js:838 +#.TRANS: ordinal number. Please keep exactly one space between each number. +msgid "1st 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th" msgstr "" -#: js/activity.js:1185 -msgid "Cleaning the instruments" +#: js/utils/musicutils.js:1008 +#: js/utils/musicutils.js:1191 +#: js/utils/musicutils.js:1325 +#.TRANS: augmented is a music term related to intervals +msgid "augmented" msgstr "" -#: js/activity.js:1186 -msgid "Testing key pieces" +#: js/utils/musicutils.js:1010 +#: js/utils/musicutils.js:1192 +#: js/utils/musicutils.js:1324 +#.TRANS: diminished is a music term related to intervals and mode +msgid "diminished" msgstr "" -#: js/activity.js:1187 -msgid "Sight-reading" +#: js/utils/musicutils.js:1016 +#: js/utils/musicutils.js:1322 +#: js/blocks/IntervalsBlocks.js:649 +#: js/turtleactions/IntervalsActions.js:120 +#: js/turtleactions/IntervalsActions.js:124 +#.TRANS: perfect is a music term related to intervals +msgid "perfect" msgstr "" -#: js/activity.js:1188 -msgid "Combining math and music" +#: js/utils/musicutils.js:1018 +#.TRANS: twelve semi-tone scale for music +msgid "chromatic" msgstr "" -#: js/activity.js:1189 -msgid "Generating more blocks" +#: js/utils/musicutils.js:1019 +msgid "algerian" msgstr "" -#: js/activity.js:1190 -msgid "Do Re Mi Fa Sol La Ti Do" +#: js/utils/musicutils.js:1020 +msgid "spanish" msgstr "" -#: js/activity.js:1191 -msgid "Tuning string instruments" +#: js/utils/musicutils.js:1022 +#.TRANS: modal scale in music +msgid "octatonic" msgstr "" -#: js/activity.js:1192 -msgid "Pressing random keys" +#: js/utils/musicutils.js:1024 +#.TRANS: harmonic major scale in music +msgid "harmonic major" msgstr "" -#: js/activity.js:1351 -msgid "plugins will be removed upon restart." +#: js/utils/musicutils.js:1026 +#.TRANS: natural minor scales in music +msgid "natural minor" msgstr "" -#: js/activity.js:1360 -msgid "show Cartesian" +#: js/utils/musicutils.js:1028 +#.TRANS: harmonic minor scale in music +msgid "harmonic minor" msgstr "" -#: js/activity.js:1842 -msgid "output tools" +#: js/utils/musicutils.js:1030 +#.TRANS: melodic minor scale in music +msgid "melodic minor" msgstr "" -#: js/activity.js:1845 -msgid "custom note" +#: js/utils/musicutils.js:1034 +#.TRANS: modal scale for music +msgid "dorian" msgstr "" -#: js/activity.js:1848 -msgid "accidental name" +#: js/utils/musicutils.js:1036 +#.TRANS: modal scale for music +msgid "phrygian" msgstr "" -#: js/activity.js:1851 -#: js/PitchBlocks.js:855 -msgid "east indian solfege" +#: js/utils/musicutils.js:1038 +#.TRANS: modal scale for music +msgid "lydian" msgstr "" -#: js/activity.js:1854 -#: js/PitchBlocks.js:869 -msgid "note name" +#: js/utils/musicutils.js:1040 +#.TRANS: modal scale for music +msgid "mixolydian" msgstr "" -#: js/activity.js:1857 -#: js/IntervalsBlocks.js:94 -msgid "temperament name" +#: js/utils/musicutils.js:1044 +#.TRANS: modal scale for music +msgid "locrian" msgstr "" -#: js/activity.js:1863 -msgid "chord name" +#: js/utils/musicutils.js:1046 +#.TRANS: minor jazz scale for music +msgid "jazz minor" msgstr "" -#: js/activity.js:1869 -msgid "filter type" +#: js/utils/musicutils.js:1048 +#.TRANS: bebop scale for music +msgid "bebop" msgstr "" -#: js/activity.js:1872 -msgid "oscillator type" +#: js/utils/musicutils.js:1049 +msgid "arabic" msgstr "" -#: js/activity.js:1878 -#: js/DrumBlocks.js:32 -msgid "noise name" +#: js/utils/musicutils.js:1050 +msgid "byzantine" msgstr "" -#: js/activity.js:1881 -#: js/DrumBlocks.js:75 -msgid "drum name" +#: js/utils/musicutils.js:1052 +#.TRANS: musical scale for music by Verdi +msgid "enigmatic" msgstr "" -#: js/activity.js:1884 -#: js/DrumBlocks.js:119 -msgid "effects name" +#: js/utils/musicutils.js:1053 +msgid "ethiopian" msgstr "" -#: js/activity.js:1887 -msgid "wrap mode" +#: js/utils/musicutils.js:1055 +#.TRANS: Ethiopic scale for music +msgid "geez" msgstr "" -#: js/activity.js:1890 -msgid "load file" +#: js/utils/musicutils.js:1056 +msgid "hindu" msgstr "" -#: js/activity.js:2056 -msgid "This block is deprecated." +#: js/utils/musicutils.js:1057 +msgid "hungarian" msgstr "" -#: js/activity.js:2058 -msgid "Block cannot be found." +#: js/utils/musicutils.js:1059 +#.TRANS: minor Romanian scale for music +msgid "romanian minor" msgstr "" -#: js/activity.js:2266 -msgid "Saving block artwork" +#: js/utils/musicutils.js:1060 +msgid "spanish gypsy" msgstr "" -#: js/activity.js:2277 -msgid "Erase" +#: js/utils/musicutils.js:1062 +#.TRANS: musical scale for Mid-Eastern music +msgid "maqam" msgstr "" -#: js/activity.js:2301 -#: js/activity.js:2323 -msgid "Paste" +#: js/utils/musicutils.js:1064 +#.TRANS: minor blues scale for music +msgid "minor blues" msgstr "" -#: js/activity.js:2305 -msgid "Save block help" +#: js/utils/musicutils.js:1066 +#.TRANS: major blues scale for music +msgid "major blues" msgstr "" -#: js/activity.js:2390 -msgid "Jumping to the bottom of the page." +#: js/utils/musicutils.js:1067 +msgid "whole tone" msgstr "" -#: js/activity.js:2396 -msgid "Scrolling up." +#: js/utils/musicutils.js:1069 +#.TRANS: pentatonic is a general term that means "five note scale". This scale is typically known as "minor pentatonic" +msgid "minor pentatonic" msgstr "" -#: js/activity.js:2401 -msgid "Scrolling down." +#: js/utils/musicutils.js:1071 +#.TRANS: pentatonic is a general term that means "five note scale". This scale is typically known as "major pentatonic" +msgid "major pentatonic" msgstr "" -#: js/activity.js:2406 -msgid "Extracting block" +#: js/utils/musicutils.js:1072 +msgid "chinese" msgstr "" -#: js/activity.js:2414 -msgid "Moving block up." +#: js/utils/musicutils.js:1073 +msgid "egyptian" msgstr "" -#: js/activity.js:2435 -msgid "Moving block down." +#: js/utils/musicutils.js:1075 +#.TRANS: https://en.wikipedia.org/wiki/Hirajoshi_scale NOTE: There are three different versions of this scale +msgid "hirajoshi" msgstr "" -#: js/activity.js:2456 -msgid "Moving block left." +#: js/utils/musicutils.js:1076 +msgid "Japan" msgstr "" -#: js/activity.js:2473 -msgid "Moving block right." +#: js/utils/musicutils.js:1078 +#.TRANS: https://en.wikipedia.org/wiki/In_scale and https://en.wikipedia.org/wiki/Sakura_Sakura +msgid "in" msgstr "" -#: js/activity.js:2488 -msgid "Jump to home position." +#: js/utils/musicutils.js:1080 +#.TRANS: https://en.wikipedia.org/wiki/Miny%C5%8D_scale +msgid "minyo" msgstr "" -#: js/activity.js:2515 -msgid "Hide blocks" +#: js/utils/musicutils.js:1082 +#.TRANS: Italian mathematician +msgid "fibonacci" msgstr "" -#: js/activity.js:3389 -msgid "Click the run button to run the project." +#: js/utils/musicutils.js:1083 +#: js/utils/musicutils.js:1134 +#: js/utils/musicutils.js:1177 +#: js/utils/musicutils.js:1199 +#: js/utils/synthutils.js:134 +#: js/blocks/IntervalsBlocks.js:1124 +#: js/blocks/ToneBlocks.js:946 +#: js/blocks/VolumeBlocks.js:411 +#: js/blocks/WidgetBlocks.js:399 +#: js/blocks/WidgetBlocks.js:404 +#: js/turtleactions/VolumeActions.js:218 +#: js/widgets/modewidget.js:919 +#.TRANS: customize voice +msgid "custom" msgstr "" -#: js/activity.js:3456 -#: js/SaveInterface.js:131 -#: js/SaveInterface.js:204 -#: js/SaveInterface.js:262 -#: js/SaveInterface.js:389 -#: js/SaveInterface.js:417 -#: js/ProjectStorage.js:27 -#: js/GlobalPlanet.js:467 -#: js/GlobalPlanet.js:469 -#: js/GlobalPlanet.js:495 -#.TRANS: default project title when saving as Lilypond -msgid "My Project" +#: js/utils/musicutils.js:1085 +#: js/utils/musicutils.js:1531 +#: js/blocks/WidgetBlocks.js:176 +#.TRANS: highpass filter +msgid "highpass" msgstr "" -#: js/activity.js:4261 -msgid "Show/hide block" +#: js/utils/musicutils.js:1087 +#: js/utils/musicutils.js:1532 +#.TRANS: lowpass filter +msgid "lowpass" msgstr "" -#: js/activity.js:4263 -msgid "Expand/collapse blocks" +#: js/utils/musicutils.js:1089 +#: js/utils/musicutils.js:1533 +#.TRANS: bandpass filter +msgid "bandpass" msgstr "" -#: js/activity.js:4381 -msgid "Could not parse JSON input." +#: js/utils/musicutils.js:1091 +#: js/utils/musicutils.js:1534 +#.TRANS: high-shelf filter +msgid "highshelf" msgstr "" -#: js/activity.js:4684 -#: js/activity.js:4771 -#: js/activity.js:4821 -msgid "Cannot load project from the file. Please check the file type." +#: js/utils/musicutils.js:1093 +#: js/utils/musicutils.js:1535 +#.TRANS: low-shelf filter +msgid "lowshelf" msgstr "" -#: js/activity.js:5051 -msgid "Invalid parameters" +#: js/utils/musicutils.js:1095 +#: js/utils/musicutils.js:1536 +#.TRANS: notch-shelf filter +msgid "notch" msgstr "" -#: js/turtle-singer.js:1334 -#.TRANS: partials are weighted components in a harmonic series -msgid "You must have at least one Partial block inside of a Weighted-partial block" +#: js/utils/musicutils.js:1097 +#: js/utils/musicutils.js:1537 +#.TRANS: all-pass filter +msgid "allpass" msgstr "" -#: js/turtle-singer.js:2048 -msgid "synth cannot play chords." +#: js/utils/musicutils.js:1099 +#: js/utils/musicutils.js:1538 +#.TRANS: peaking filter +msgid "peaking" msgstr "" -#: js/lilypond.js:614 -msgid "brown rat" +#: js/utils/musicutils.js:1100 +#: js/utils/musicutils.js:1546 +#: js/utils/synthutils.js:126 +#: js/blocks/PitchBlocks.js:85 +#.TRANS: sine wave +msgid "sine" msgstr "" -#: js/lilypond.js:615 -msgid "mole" +#: js/utils/musicutils.js:1101 +#: js/utils/musicutils.js:1547 +#: js/utils/synthutils.js:128 +#: js/blocks/PitchBlocks.js:39 +#.TRANS: square wave +msgid "square" msgstr "" -#: js/lilypond.js:616 -msgid "chipmunk" +#: js/utils/musicutils.js:1102 +#: js/utils/musicutils.js:1548 +#: js/utils/synthutils.js:132 +#: js/blocks/PitchBlocks.js:62 +#: js/blocks/ToneBlocks.js:39 +#.TRANS: triangle wave +msgid "triangle" msgstr "" -#: js/lilypond.js:617 -msgid "red squirrel" +#: js/utils/musicutils.js:1103 +#: js/utils/musicutils.js:1549 +#: js/utils/synthutils.js:130 +#: js/blocks/PitchBlocks.js:108 +#.TRANS: sawtooth wave +msgid "sawtooth" msgstr "" -#: js/lilypond.js:618 -msgid "guinea pig" +#: js/utils/musicutils.js:1105 +#: js/utils/musicutils.js:1312 +#: js/blocks/PitchBlocks.js:931 +#: js/blocks/PitchBlocks.js:937 +#: js/turtleactions/PitchActions.js:469 +#.TRANS: even numbers +#.TRANS: invert based on even or odd number or musical scale +msgid "even" msgstr "" -#: js/lilypond.js:619 -msgid "capybara" +#: js/utils/musicutils.js:1107 +#: js/utils/musicutils.js:1313 +#: js/blocks/PitchBlocks.js:937 +#: js/turtleactions/PitchActions.js:471 +#.TRANS: odd numbers +msgid "odd" msgstr "" -#: js/lilypond.js:620 -msgid "coypu" +#: js/utils/musicutils.js:1108 +#: js/utils/musicutils.js:1314 +#: js/blocks/PitchBlocks.js:937 +#: js/turtleactions/PitchActions.js:473 +msgid "scalar" msgstr "" -#: js/lilypond.js:621 -msgid "black rat" +#: js/utils/musicutils.js:1109 +#: js/utils/synthutils.js:72 +#: js/blocks/VolumeBlocks.js:47 +#.TRANS: musical instrument +msgid "piano" msgstr "" -#: js/lilypond.js:622 -msgid "grey squirrel" +#: js/utils/musicutils.js:1110 +#: js/utils/synthutils.js:74 +#.TRANS: musical instrument +msgid "violin" msgstr "" -#: js/lilypond.js:623 -msgid "flying squirrel" +#: js/utils/musicutils.js:1111 +#: js/utils/synthutils.js:76 +#.TRANS: viola musical instrument +msgid "viola" msgstr "" -#: js/lilypond.js:624 -msgid "bat" +#: js/utils/musicutils.js:1112 +#: js/utils/synthutils.js:114 +#.TRANS: xylophone musical instrument +msgid "xylophone" msgstr "" -#: js/lilypond.js:757 -#: js/lilypond.js:921 -#: js/lilypond.js:959 -#: js/ActionBlocks.js:1256 -#: js/ExtrasBlocks.js:553 -msgid "start drum" +#: js/utils/musicutils.js:1113 +#: js/utils/synthutils.js:136 +#.TRANS: vibraphone musical instrument +msgid "vibraphone" msgstr "" -#: js/SaveInterface.js:59 -#: js/SaveInterface.js:61 -#: js/SaveInterface.js:93 -msgid "Music Blocks Project" +#: js/utils/musicutils.js:1114 +#: js/utils/synthutils.js:78 +#.TRANS: musical instrument +msgid "cello" msgstr "" -#: js/SaveInterface.js:63 -msgid "This project was created in Music Blocks" +#: js/utils/musicutils.js:1116 +#: js/utils/synthutils.js:82 +#.TRANS: viola musical instrument +msgid "double bass" msgstr "" -#: js/SaveInterface.js:67 -msgid "Music Blocks is a Free/Libre Software application." +#: js/utils/musicutils.js:1117 +#: js/utils/synthutils.js:84 +#: js/widgets/rhythmruler.js:2511 +#.TRANS: musical instrument +msgid "guitar" msgstr "" -#: js/SaveInterface.js:69 -msgid "The source code can be accessed at" +#: js/utils/musicutils.js:1118 +#: js/utils/synthutils.js:86 +#.TRANS: musical instrument +msgid "acoustic guitar" msgstr "" -#: js/SaveInterface.js:72 -msgid "For more information, please consult the" +#: js/utils/musicutils.js:1119 +#: js/utils/synthutils.js:88 +#.TRANS: musical instrument +msgid "flute" msgstr "" -#: js/SaveInterface.js:83 -msgid "Alternatively, open the file in Music Blocks using the Load project button." +#: js/utils/musicutils.js:1120 +#: js/utils/synthutils.js:90 +#.TRANS: musical instrument +msgid "clarinet" msgstr "" -#: js/SaveInterface.js:85 -msgid "Project Code" +#: js/utils/musicutils.js:1121 +#: js/utils/synthutils.js:92 +#.TRANS: musical instrument +msgid "saxophone" msgstr "" -#: js/SaveInterface.js:87 -msgid "This code stores data about the blocks in a project." +#: js/utils/musicutils.js:1122 +#: js/utils/synthutils.js:94 +#.TRANS: musical instrument +msgid "tuba" msgstr "" -#: js/SaveInterface.js:89 -msgid "Show" +#: js/utils/musicutils.js:1123 +#: js/utils/synthutils.js:96 +#.TRANS: musical instrument +msgid "trumpet" msgstr "" -#: js/SaveInterface.js:91 -msgid "Hide" +#: js/utils/musicutils.js:1124 +#: js/utils/synthutils.js:98 +#.TRANS: musical instrument +msgid "oboe" msgstr "" -#: js/SaveInterface.js:197 -#: js/SaveInterface.js:58 -msgid "No description provided" +#: js/utils/musicutils.js:1125 +#: js/utils/synthutils.js:100 +#.TRANS: musical instrument +msgid "trombone" msgstr "" -#: js/SaveInterface.js:332 -msgid "Your recording is in progress." +#: js/utils/musicutils.js:1126 +#: js/utils/synthutils.js:116 +#.TRANS: polytone synthesizer +msgid "electronic synth" msgstr "" -#: js/SaveInterface.js:401 -#.TRANS: File name prompt for save as Lilypond -msgid "File name" +#: js/utils/musicutils.js:1127 +#: js/utils/synthutils.js:118 +#.TRANS: simple monotone synthesizer +msgid "simple 1" msgstr "" -#: js/SaveInterface.js:403 -#: js/StringHelper.js:39 -#.TRANS: Project title prompt for save as Lilypond -msgid "Project title" +#: js/utils/musicutils.js:1128 +msgid "simple 2" msgstr "" -#: js/SaveInterface.js:405 -#.TRANS: Project title prompt for save as Lilypond -msgid "Project author" +#: js/utils/musicutils.js:1129 +msgid "simple 3" msgstr "" -#: js/SaveInterface.js:407 -#.TRANS: MIDI prompt for save as Lilypond -msgid "Include MIDI output?" +#: js/utils/musicutils.js:1130 +msgid "simple 4" msgstr "" -#: js/SaveInterface.js:409 -#.TRANS: Guitar prompt for save as Lilypond -msgid "Include guitar tablature output?" +#: js/utils/musicutils.js:1131 +#: js/utils/synthutils.js:58 +#: js/blocks/DrumBlocks.js:191 +#.TRANS: white noise synthesizer +msgid "white noise" msgstr "" -#: js/SaveInterface.js:411 -#.TRANS: Lilypond is a scripting language for generating sheet music -msgid "Save as Lilypond" +#: js/utils/musicutils.js:1132 +#: js/utils/synthutils.js:60 +#.TRANS: brown noise synthesizer +msgid "brown noise" msgstr "" -#: js/SaveInterface.js:426 -#: js/EnsembleBlocks.js:75 -#: js/EnsembleBlocks.js:154 -#: js/EnsembleBlocks.js:216 -#: js/EnsembleBlocks.js:302 -#: js/EnsembleBlocks.js:348 -#: js/EnsembleBlocks.js:389 -#: js/EnsembleBlocks.js:441 -#: js/EnsembleBlocks.js:490 -#: js/EnsembleBlocks.js:536 -#: js/EnsembleBlocks.js:583 -#: js/EnsembleBlocks.js:637 -#: js/EnsembleBlocks.js:753 -#: js/EnsembleBlocks.js:840 -#: js/EnsembleBlocks.js:899 -#: js/EnsembleBlocks.js:942 -#: js/EnsembleBlocks.js:1212 -#: js/EnsembleBlocks.js:1280 -#.TRANS: default project author when saving as Lilypond -msgid "Mr. Mouse" +#: js/utils/musicutils.js:1133 +#: js/utils/synthutils.js:62 +#.TRANS: pink noise synthesizer +msgid "pink noise" msgstr "" -#: js/SaveInterface.js:573 -msgid "The Lilypond code is copied to clipboard. You can paste it here: " +#: js/utils/musicutils.js:1135 +#: js/utils/synthutils.js:148 +#: js/widgets/rhythmruler.js:2057 +#: js/widgets/rhythmruler.js:2319 +#.TRANS: musical instrument +msgid "snare drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:50 -#: js/RhythmBlockPaletteBlocks.js:232 -#.TRANS: rhythm block -#.TRANS: translate "rhythm1" as rhythm -msgid "rhythm1" +#: js/utils/musicutils.js:1136 +#: js/utils/synthutils.js:150 +#.TRANS: musical instrument +msgid "kick drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:70 -#: js/RhythmBlockPaletteBlocks.js:251 -#: js/RhythmBlockPaletteBlocks.js:484 -#: js/RhythmBlockPaletteBlocks.js:553 -#: js/RhythmBlockPaletteBlocks.js:874 -msgid "number of notes" +#: js/utils/musicutils.js:1137 +#: js/utils/synthutils.js:152 +#.TRANS: musical instrument +msgid "tom tom" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:126 -msgid "polyphonic rhythm" +#: js/utils/musicutils.js:1138 +#: js/utils/synthutils.js:154 +#.TRANS: musical instrument +msgid "floor tom" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:218 -msgid "The Rhythm block is used to generate rhythm patterns." +#: js/utils/musicutils.js:1139 +#: js/utils/synthutils.js:156 +#.TRANS: musical instrument +msgid "bass drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:279 -msgid "1/64 note" +#: js/utils/musicutils.js:1140 +#: js/utils/synthutils.js:158 +#.TRANS: a drum made from an inverted cup +msgid "cup drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:303 -msgid "1/32 note" +#: js/utils/musicutils.js:1141 +#: js/utils/synthutils.js:160 +#.TRANS: musical instrument +msgid "darbuka drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:331 -msgid "1/16 note" +#: js/utils/musicutils.js:1142 +#: js/utils/synthutils.js:164 +#.TRANS: musical instrument +msgid "hi hat" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:359 -msgid "eighth note" +#: js/utils/musicutils.js:1143 +#: js/utils/synthutils.js:166 +#.TRANS: a small metal bell +msgid "ride bell" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:387 -msgid "quarter note" +#: js/utils/musicutils.js:1144 +#: js/utils/synthutils.js:168 +#.TRANS: musical instrument +msgid "cow bell" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:415 -msgid "half note" +#: js/utils/musicutils.js:1145 +msgid "japanese drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:443 -msgid "whole note" +#: js/utils/musicutils.js:1146 +#: js/utils/synthutils.js:174 +#.TRANS: musical instrument +msgid "japanese bell" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:481 -#: js/RhythmBlockPaletteBlocks.js:550 -#: js/RhythmBlockPaletteBlocks.js:601 -#.TRANS: A tuplet is a note value divided into irregular time values. -msgid "tuplet" +#: js/utils/musicutils.js:1147 +#: js/utils/synthutils.js:170 +#.TRANS: musical instrument +msgid "triangle bell" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:767 -msgid "septuplet" +#: js/utils/musicutils.js:1148 +#: js/utils/synthutils.js:172 +#.TRANS: musical instrument +msgid "finger cymbals" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:795 -msgid "quintuplet" +#: js/utils/musicutils.js:1149 +#: js/utils/synthutils.js:176 +#.TRANS: a musically tuned set of bells +msgid "chime" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:823 -msgid "triplet" +#: js/utils/musicutils.js:1150 +#: js/utils/synthutils.js:178 +#.TRANS: a musical instrument +msgid "gong" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:850 -msgid "simple tuplet" +#: js/utils/musicutils.js:1151 +#: js/utils/synthutils.js:180 +#.TRANS: sound effect +msgid "clang" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:860 -msgid "Tuplets are a collection of notes that get scaled to a specific duration." +#: js/utils/musicutils.js:1152 +#: js/utils/synthutils.js:182 +#.TRANS: sound effect +msgid "crash" msgstr "" -#: js/WidgetBlocks.js:71 -#.TRANS: sound envelope (ADSR) -msgid "envelope" +#: js/utils/musicutils.js:1153 +#: js/utils/synthutils.js:184 +#.TRANS: sound effect +msgid "bottle" msgstr "" -#: js/WidgetBlocks.js:79 -#.TRANS: Attack time is the time taken for initial run-up of level from nil to peak, beginning when the key is first pressed. -msgid "attack" +#: js/utils/musicutils.js:1154 +#: js/utils/synthutils.js:186 +#.TRANS: sound effect +msgid "clap" msgstr "" -#: js/WidgetBlocks.js:81 -#.TRANS: Decay time is the time taken for the subsequent run down from the attack level to the designated sustain level. -msgid "decay" +#: js/utils/musicutils.js:1155 +#: js/utils/synthutils.js:188 +#.TRANS: sound effect +msgid "slap" msgstr "" -#: js/WidgetBlocks.js:83 -#.TRANS: Sustain level is the level during the main sequence of the sound's duration, until the key is released. -msgid "sustain" +#: js/utils/musicutils.js:1156 +#: js/utils/synthutils.js:190 +#.TRANS: sound effect +msgid "splash" msgstr "" -#: js/WidgetBlocks.js:85 -#.TRANS: Release time is the time taken for the level to decay from the sustain level to zero after the key is released. -msgid "release" +#: js/utils/musicutils.js:1157 +#: js/utils/synthutils.js:192 +#.TRANS: sound effect +msgid "bubbles" msgstr "" -#: js/WidgetBlocks.js:96 -msgid "Attack value should be from 0 to 100." +#: js/utils/musicutils.js:1158 +#: js/utils/synthutils.js:194 +#.TRANS: sound effect +msgid "raindrop" msgstr "" -#: js/WidgetBlocks.js:99 -msgid "Decay value should be from 0 to 100." +#: js/utils/musicutils.js:1159 +#: js/utils/synthutils.js:196 +#.TRANS: animal sound effect +msgid "cat" msgstr "" -#: js/WidgetBlocks.js:102 -msgid "Sustain value should be from 0 to 100." +#: js/utils/musicutils.js:1160 +#: js/utils/synthutils.js:198 +#.TRANS: animal sound effect +msgid "cricket" msgstr "" -#: js/WidgetBlocks.js:105 -msgid "Release value should be from 0-100." +#: js/utils/musicutils.js:1161 +#: js/utils/synthutils.js:200 +#.TRANS: animal sound effect +msgid "dog" msgstr "" -#: js/WidgetBlocks.js:121 -msgid "You are adding multiple envelope blocks." +#: js/utils/musicutils.js:1163 +#: js/utils/synthutils.js:102 +#.TRANS: musical instrument +msgid "banjo" msgstr "" -#: js/WidgetBlocks.js:144 -#.TRANS: a filter removes some unwanted components from a signal -msgid "filter" +#: js/utils/musicutils.js:1164 +#: js/utils/synthutils.js:104 +#.TRANS: musical instrument +msgid "koto" msgstr "" -#: js/WidgetBlocks.js:149 -#: js/musicutils.js:706 -#: js/musicutils.js:1105 -#.TRANS: highpass filter -msgid "highpass" +#: js/utils/musicutils.js:1165 +#: js/utils/synthutils.js:106 +#.TRANS: musical instrument +msgid "dulcimer" msgstr "" -#: js/WidgetBlocks.js:152 -#: js/ToneBlocks.js:42 -#: js/timbre.js:1558 -#: js/timbre.js:1808 -#.TRANS: type of filter, e.g., lowpass, highpass, etc. -#.TRANS: there are different types (sine, triangle, square...) of oscillators. -msgid "type" +#: js/utils/musicutils.js:1166 +#: js/utils/synthutils.js:108 +#.TRANS: musical instrument +msgid "electric guitar" msgstr "" -#: js/WidgetBlocks.js:154 -#: js/timbre.js:1818 -#.TRANS: rolloff is the steepness of a change in frequency. -msgid "rolloff" +#: js/utils/musicutils.js:1167 +#: js/utils/synthutils.js:110 +#.TRANS: musical instrument +msgid "bassoon" msgstr "" -#: js/WidgetBlocks.js:155 -#: js/MediaBlocks.js:692 -#: js/temperament.js:382 -#: js/temperament.js:417 -#: js/temperament.js:477 -#: js/temperament.js:485 -#: js/temperament.js:1348 -#: js/timbre.js:1842 -msgid "frequency" +#: js/utils/musicutils.js:1168 +#: js/utils/synthutils.js:112 +#.TRANS: musical instrument +msgid "celeste" msgstr "" -#: js/WidgetBlocks.js:179 -#.TRANS: rolloff is the steepness of a change in frequency. -msgid "Rolloff value should be either -12, -24, -48, or -96 decibels/octave." +#: js/utils/musicutils.js:1170 +#: js/widgets/temperament.js:787 +#.TRANS: musical temperament +msgid "equal" msgstr "" -#: js/WidgetBlocks.js:211 -msgid "The Temperament tool is used to define custom tuning." +#: js/utils/musicutils.js:1172 +#.TRANS: musical temperament +msgid "Pythagorean" msgstr "" -#: js/WidgetBlocks.js:277 -#: js/sampler.js:329 -msgid "Upload a sample and adjust its pitch center." +#: js/utils/musicutils.js:1174 +#.TRANS: musical temperament +msgid "just intonation" msgstr "" -#: js/WidgetBlocks.js:284 -#.TRANS: the speed at music is should be played. -msgid "sampler" +#: js/utils/musicutils.js:1176 +#.TRANS: musical temperament +msgid "meantone" msgstr "" -#: js/WidgetBlocks.js:329 -#: js/WidgetBlocks.js:334 -#: js/IntervalsBlocks.js:928 -#: js/VolumeBlocks.js:411 -#: js/ToneBlocks.js:946 -#: js/VolumeActions.js:218 -#: js/musicutils.js:704 -#: js/musicutils.js:755 -#: js/musicutils.js:798 -#: js/musicutils.js:820 -#: js/musicutils.js:1136 -#: js/synthutils.js:118 -#: js/modewidget.js:919 -#.TRANS: customize voice -msgid "custom" +#: js/utils/musicutils.js:1193 +msgid "major 7th" msgstr "" -#: js/WidgetBlocks.js:432 -msgid "The Meter block opens a tool to select strong beats for the meter." +#: js/utils/musicutils.js:1194 +msgid "minor 7th" msgstr "" -#: js/WidgetBlocks.js:473 -msgid "The oscilloscope block opens a tool to visualize waveforms." +#: js/utils/musicutils.js:1195 +msgid "dominant 7th" msgstr "" -#: js/WidgetBlocks.js:478 -msgid "oscilloscope" +#: js/utils/musicutils.js:1196 +msgid "minor-major 7th" msgstr "" -#: js/WidgetBlocks.js:530 -msgid "The Custom mode block opens a tool to explore musical mode (the spacing of the notes in a scale)." +#: js/utils/musicutils.js:1197 +msgid "fully-diminished 7th" msgstr "" -#: js/WidgetBlocks.js:536 -#.TRANS: musical mode is the pattern of half-steps in an octave, e.g., Major or Minor modes -msgid "custom mode" +#: js/utils/musicutils.js:1198 +msgid "half-diminished 7th" msgstr "" -#: js/WidgetBlocks.js:570 -msgid "The Tempo block opens a metronome to visualize the beat." +#: js/utils/musicutils.js:1557 +#: js/utils/musicutils.js:1569 +msgid "Equal (12EDO)" msgstr "" -#: js/WidgetBlocks.js:617 -msgid "The Arpeggio Widget is used to compose chord sequences." +#: js/utils/musicutils.js:1558 +#: js/utils/musicutils.js:1570 +msgid "5-limit Just Intonation" msgstr "" -#: js/WidgetBlocks.js:623 -#: js/IntervalsBlocks.js:683 -msgid "arpeggio" +#: js/utils/musicutils.js:1559 +#: js/utils/musicutils.js:1571 +msgid "Pythagorean (3-limit JI)" msgstr "" -#: js/WidgetBlocks.js:677 -msgid "The Pitch drum matrix is used to map pitches to drum sounds." +#: js/utils/musicutils.js:1560 +#: js/utils/musicutils.js:1561 +#: js/utils/musicutils.js:1572 +#: js/utils/musicutils.js:1573 +msgid "Meantone" msgstr "" -#: js/WidgetBlocks.js:682 -#.TRANS: makes a mapping between pitches and drum sounds -msgid "pitch-drum mapper" +#: js/utils/musicutils.js:1574 +msgid "Custom" msgstr "" -#: js/WidgetBlocks.js:724 -msgid "You must have at least one pitch block and one drum block in the matrix." +#: js/utils/musicutils.js:5387 +#: js/utils/musicutils.js:5430 +msgid "current" msgstr "" -#: js/WidgetBlocks.js:746 -msgid "The Pitch slider tool to is used to generate pitches at selected frequencies." +#: js/utils/musicutils.js:5390 +#: js/utils/musicutils.js:5421 +msgid "next" msgstr "" -#: js/WidgetBlocks.js:751 -#.TRANS: widget to generate pitches using a slider -msgid "pitch slider" +#: js/utils/musicutils.js:5393 +#: js/utils/musicutils.js:5426 +msgid "previous" msgstr "" -#: js/WidgetBlocks.js:788 -msgid "chromatic keyboard" +#: js/utils/synthutils.js:120 +#.TRANS: simple monotone synthesizer +msgid "simple-2" msgstr "" -#: js/WidgetBlocks.js:815 -#: js/WidgetBlocks.js:874 -#.TRANS: widget to generate pitches using a slider -msgid "music keyboard" +#: js/utils/synthutils.js:122 +#.TRANS: simple monotone synthesizer +msgid "simple-3" msgstr "" -#: js/WidgetBlocks.js:859 -#: js/WidgetBlocks.js:866 -msgid "The Music keyboard block opens a piano keyboard that can be used to create notes." +#: js/utils/synthutils.js:124 +#.TRANS: simple monotone synthesizer +msgid "simple-4" msgstr "" -#: js/WidgetBlocks.js:910 -msgid "The Pitch staircase tool to is used to generate pitches from a given ratio." +#: js/utils/synthutils.js:162 +#.TRANS: musical instrument +msgid "taiko" msgstr "" -#: js/WidgetBlocks.js:917 -#.TRANS: generate a progressive sequence of pitches -msgid "pitch staircase" +#: js/blocks/ActionBlocks.js:58 +msgid "The Return block will return a value from an action." msgstr "" -#: js/WidgetBlocks.js:982 -msgid "The Rhythm Maker block opens a tool to create drum machines." +#: js/blocks/ActionBlocks.js:75 +msgid "return" msgstr "" -#: js/WidgetBlocks.js:1036 -msgid "G major scale" +#: js/blocks/ActionBlocks.js:128 +msgid "The Return to URL block will return a value to a webpage." msgstr "" -#: js/WidgetBlocks.js:1064 -msgid "C major scale" +#: js/blocks/ActionBlocks.js:145 +msgid "return to URL" msgstr "" -#: js/WidgetBlocks.js:1097 -msgid "The Phrase Maker block opens a tool to create musical phrases." +#: js/blocks/ActionBlocks.js:233 +#: js/blocks/ActionBlocks.js:290 +#: js/blocks/ActionBlocks.js:501 +#: js/blocks/ActionBlocks.js:688 +msgid "The Calculate block returns a value calculated by an action." msgstr "" -#: js/WidgetBlocks.js:1104 -#.TRANS: assigns pitch to a sequence of beats to generate a melody -msgid "phrase maker" +#: js/blocks/ActionBlocks.js:251 +#: js/blocks/ActionBlocks.js:517 +#: js/blocks/ActionBlocks.js:707 +msgid "calculate" msgstr "" -#: js/WidgetBlocks.js:1168 -msgid "You must have at least one pitch block and one rhythm block in the matrix." +#: js/blocks/ActionBlocks.js:376 +#: js/blocks/ActionBlocks.js:593 +#: js/blocks/ActionBlocks.js:942 +#: js/blocks/ActionBlocks.js:1389 +#.TRANS: do is the do something or take an action. +msgid "The Do block is used to initiate an action." msgstr "" -#: js/WidgetBlocks.js:1220 -msgid "The Status block opens a tool for inspecting the status of Music Blocks as it is running." +#: js/blocks/ActionBlocks.js:390 +#: js/blocks/ActionBlocks.js:610 +#: js/blocks/ActionBlocks.js:959 +#: js/blocks/ActionBlocks.js:1048 +#: js/blocks/MeterBlocks.js:769 +msgid "do1" msgstr "" -#: js/IntervalsBlocks.js:45 -msgid "set temperament" +#: js/blocks/ActionBlocks.js:390 +#: js/blocks/ActionBlocks.js:610 +#: js/blocks/ActionBlocks.js:959 +#: js/blocks/ActionBlocks.js:1048 +#: js/blocks/FlowBlocks.js:742 +#: js/blocks/FlowBlocks.js:822 +#: js/blocks/MeterBlocks.js:769 +msgid "do" msgstr "" -#: js/IntervalsBlocks.js:63 -#: js/MediaBlocks.js:746 -#: js/PitchBlocks.js:657 -#: js/PitchBlocks.js:933 -#: js/PitchBlocks.js:972 -#: js/PitchBlocks.js:1005 -#: js/PitchBlocks.js:1166 -#: js/PitchBlocks.js:1679 -#: js/PitchBlocks.js:1720 -#: js/PitchBlocks.js:1827 -#: js/ToneBlocks.js:1025 -#.TRANS: adjusts the shift up or down by one octave (twelve half-steps in the interval between two notes, one having twice or half the frequency in Hz of the other.) -msgid "octave" +#: js/blocks/ActionBlocks.js:791 +#: js/blocks/ActionBlocks.js:865 +msgid "The Arg block contains the value of an argument passed to an action." msgstr "" -#: js/IntervalsBlocks.js:99 -msgid "The Temperament name block is used to select a tuning method." +#: js/blocks/ActionBlocks.js:806 +#: js/blocks/ActionBlocks.js:878 +msgid "arg" msgstr "" -#: js/IntervalsBlocks.js:161 -msgid "doubly" +#: js/blocks/ActionBlocks.js:836 +#: js/blocks/ActionBlocks.js:900 +#: js/blocks/ActionBlocks.js:908 +msgid "Invalid argument" msgstr "" -#: js/IntervalsBlocks.js:166 -msgid "The Doubly block will double the size of an interval." +#: js/blocks/ActionBlocks.js:944 +msgid "In the example, it is used with the One of block to choose a random phase." msgstr "" -#: js/IntervalsBlocks.js:262 -msgid "interval number" +#: js/blocks/ActionBlocks.js:1019 +#: js/blocks/ActionBlocks.js:1026 +msgid "The Listen block is used to listen for an event such as a mouse click." msgstr "" -#: js/IntervalsBlocks.js:330 -#.TRANS: measure the distance between two pitches in semi-tones -msgid "semi-tone interval measure" +#: js/blocks/ActionBlocks.js:1028 +msgid "When the event happens, an action is taken." msgstr "" -#: js/IntervalsBlocks.js:397 -#: js/IntervalsBlocks.js:513 -msgid "You must use two pitch blocks when measuring an interval." +#: js/blocks/ActionBlocks.js:1045 +msgid "on" msgstr "" -#: js/IntervalsBlocks.js:439 -msgid "The Scalar interval block measures the distance between two notes in the current key and mode." +#: js/blocks/ActionBlocks.js:1048 +#: js/blocks/ActionBlocks.js:1049 +#: js/blocks/ActionBlocks.js:1153 +msgid "event" msgstr "" -#: js/IntervalsBlocks.js:445 -#.TRANS: measure the distance between two pitches in steps of musical scale -msgid "scalar interval measure" +#: js/blocks/ActionBlocks.js:1133 +msgid "The Broadcast block is used to trigger an event." msgstr "" -#: js/IntervalsBlocks.js:592 -#: js/musicutils.js:637 -#: js/musicutils.js:908 -#.TRANS: perfect is a music term related to intervals -msgid "perfect" +#: js/blocks/ActionBlocks.js:1151 +msgid "broadcast" msgstr "" -#: js/IntervalsBlocks.js:621 -msgid "In the figure, we add sol# to sol." +#: js/blocks/ActionBlocks.js:1208 +msgid "Each Start block is a separate voice." msgstr "" -#: js/IntervalsBlocks.js:627 -#: js/OrnamentBlocks.js:220 -#.TRANS: calculate a relative step between notes based on semi-tones -msgid "semi-tone interval" +#: js/blocks/ActionBlocks.js:1304 +msgid "It is often used for storing a phrase of music that is repeated." msgstr "" -#: js/IntervalsBlocks.js:676 -msgid "The output of the example is: do, mi, sol, sol, ti, mi" +#: js/blocks/ActionBlocks.js:1495 +msgid "define temperament" msgstr "" -#: js/IntervalsBlocks.js:735 -msgid "The Chord block calculates common chords." +#: js/blocks/BooleanBlocks.js:44 +msgid "The Not block is the logical not operator." msgstr "" -#: js/IntervalsBlocks.js:737 -msgid "In the figure, we generate a C-major chord." -msgstr "" +#: js/blocks/BooleanBlocks.js:62 +msgid "not" +msgstr "እንጂ" -#: js/IntervalsBlocks.js:742 -msgid "chord" +#: js/blocks/BooleanBlocks.js:134 +msgid "The And block is the logical and operator." msgstr "" -#: js/IntervalsBlocks.js:794 -msgid "The Ratio Interval block calculates an interval based on a ratio." +#: js/blocks/BooleanBlocks.js:152 +msgid "and" msgstr "" -#: js/IntervalsBlocks.js:799 -msgid "ratio interval" +#: js/blocks/BooleanBlocks.js:218 +msgid "The Or block is the logical or operator." msgstr "" -#: js/IntervalsBlocks.js:868 -msgid "In the figure, we add la to sol." +#: js/blocks/BooleanBlocks.js:236 +msgid "or" msgstr "" -#: js/IntervalsBlocks.js:924 -#.TRANS: define a custom mode -msgid "define mode" +#: js/blocks/BooleanBlocks.js:302 +msgid "The XOR block is the logical XOR operator." msgstr "" -#: js/IntervalsBlocks.js:977 -msgid "movable Do" +#: js/blocks/BooleanBlocks.js:320 +msgid "xor" msgstr "" -#: js/IntervalsBlocks.js:1028 -#.TRANS: mode length is the number of notes in the mode, e.g., 7 for major and minor scales; 12 for chromatic scales -msgid "mode length" +#: js/blocks/BooleanBlocks.js:808 +msgid "The Equal block returns True if the two numbers are equal." msgstr "" -#: js/IntervalsBlocks.js:1037 -msgid "The Mode length block is the number of notes in the current scale." +#: js/blocks/BooleanBlocks.js:909 +msgid "The Not-equal-to block returns True if the two numbers are not equal to each other." msgstr "" -#: js/IntervalsBlocks.js:1039 -msgid "Most Western scales have 7 notes." +#: js/blocks/BooleanBlocks.js:1008 +msgid "The Boolean block is used to specify true or false." msgstr "" -#: js/IntervalsBlocks.js:1088 -#.TRANS: the mode in music is 'major', 'minor', etc. -msgid "current mode" +#: js/blocks/BoxesBlocks.js:53 +#: js/blocks/BoxesBlocks.js:59 +msgid "The Add-to block is used to add to the value stored in a box." msgstr "" -#: js/IntervalsBlocks.js:1141 -#.TRANS: the key is a group of pitches with which a music composition is created -msgid "current key" +#: js/blocks/BoxesBlocks.js:61 +msgid "It can also be used with other blocks such as Color and Pen size." msgstr "" -#: js/IntervalsBlocks.js:1193 -#: js/IntervalsBlocks.js:1238 -#.TRANS: set the key and mode, e.g. C Major -msgid "set key" +#: js/blocks/BoxesBlocks.js:73 +msgid "add" msgstr "" -#: js/IntervalsBlocks.js:1247 -#: js/IntervalsBlocks.js:1253 -msgid "The Set key block is used to set the key and mode," +#: js/blocks/BoxesBlocks.js:75 +#: js/widgets/temperament.js:857 +msgid "to" msgstr "" -#: js/IntervalsBlocks.js:1253 -msgid "eg C Major" +#: js/blocks/BoxesBlocks.js:75 +#: js/blocks/BoxesBlocks.js:595 +#: js/blocks/HeapBlocks.js:544 +msgid "value1" msgstr "" -#: js/IntervalsBlocks.js:1266 -#: js/DictBlocks.js:215 -#: js/DictBlocks.js:216 -#: js/DictBlocks.js:289 -#: js/DictBlocks.js:290 -#: js/DictBlocks.js:357 -#: js/DictBlocks.js:430 -#: js/DictBlocks.js:431 -#.TRANS: key, e.g., C in C Major -msgid "key" +#: js/blocks/BoxesBlocks.js:118 +msgid "Block does not support incrementing." msgstr "" -#: js/ActionBlocks.js:58 -msgid "The Return block will return a value from an action." +#: js/blocks/BoxesBlocks.js:152 +msgid "The Add-1-to block adds one to the value stored in a box." msgstr "" -#: js/ActionBlocks.js:75 -msgid "return" +#: js/blocks/BoxesBlocks.js:163 +msgid "add 1 to" msgstr "" -#: js/ActionBlocks.js:128 -msgid "The Return to URL block will return a value to a webpage." +#: js/blocks/BoxesBlocks.js:211 +msgid "The Subtract-1-from block subtracts one from the value stored in a box." msgstr "" -#: js/ActionBlocks.js:145 -msgid "return to URL" +#: js/blocks/BoxesBlocks.js:222 +msgid "subtract 1 from" msgstr "" -#: js/ActionBlocks.js:233 -#: js/ActionBlocks.js:290 -#: js/ActionBlocks.js:501 -#: js/ActionBlocks.js:688 -msgid "The Calculate block returns a value calculated by an action." +#: js/blocks/BoxesBlocks.js:270 +#: js/blocks/BoxesBlocks.js:387 +msgid "The Box block returns the value stored in a box." msgstr "" -#: js/ActionBlocks.js:251 -#: js/ActionBlocks.js:517 -#: js/ActionBlocks.js:707 -msgid "calculate" +#: js/blocks/BoxesBlocks.js:500 +#: js/blocks/BoxesBlocks.js:576 +msgid "The Store in block will store a value in a box." msgstr "" -#: js/ActionBlocks.js:376 -#: js/ActionBlocks.js:593 -#: js/ActionBlocks.js:942 -#: js/ActionBlocks.js:1389 -#.TRANS: do is the do something or take an action. -msgid "The Do block is used to initiate an action." +#: js/blocks/BoxesBlocks.js:595 +#: js/blocks/EnsembleBlocks.js:391 +#: js/blocks/EnsembleBlocks.js:402 +msgid "name1" msgstr "" -#: js/ActionBlocks.js:390 -#: js/ActionBlocks.js:610 -#: js/ActionBlocks.js:959 -#: js/ActionBlocks.js:1048 -#: js/MeterBlocks.js:769 -msgid "do1" +#: js/blocks/BoxesBlocks.js:652 +msgid "The Box2 block returns the value stored in Box2." msgstr "" -#: js/ActionBlocks.js:390 -#: js/ActionBlocks.js:610 -#: js/ActionBlocks.js:959 -#: js/ActionBlocks.js:1048 -#: js/FlowBlocks.js:742 -#: js/FlowBlocks.js:822 -#: js/MeterBlocks.js:769 -msgid "do" +#: js/blocks/BoxesBlocks.js:703 +msgid "The Store in Box2 block is used to store a value in Box2." msgstr "" -#: js/ActionBlocks.js:791 -#: js/ActionBlocks.js:865 -msgid "The Arg block contains the value of an argument passed to an action." +#: js/blocks/BoxesBlocks.js:715 +msgid "store in box2" msgstr "" -#: js/ActionBlocks.js:806 -#: js/ActionBlocks.js:878 -msgid "arg" +#: js/blocks/BoxesBlocks.js:761 +msgid "The Box1 block returns the value stored in Box1." msgstr "" -#: js/ActionBlocks.js:836 -#: js/ActionBlocks.js:900 -#: js/ActionBlocks.js:908 -msgid "Invalid argument" +#: js/blocks/BoxesBlocks.js:812 +msgid "The Store in Box1 block is used to store a value in Box1." msgstr "" -#: js/ActionBlocks.js:944 -msgid "In the example, it is used with the One of block to choose a random phase." +#: js/blocks/BoxesBlocks.js:826 +msgid "store in box1" msgstr "" -#: js/ActionBlocks.js:1019 -#: js/ActionBlocks.js:1026 -msgid "The Listen block is used to listen for an event such as a mouse click." +#: js/blocks/DictBlocks.js:77 +msgid "show dictionary" msgstr "" -#: js/ActionBlocks.js:1028 -msgid "When the event happens, an action is taken." +#: js/blocks/DictBlocks.js:80 +#: js/blocks/DictBlocks.js:145 +#: js/blocks/DictBlocks.js:216 +#: js/blocks/DictBlocks.js:290 +#: js/blocks/ProgramBlocks.js:396 +#: js/blocks/ProgramBlocks.js:501 +#: js/blocks/ProgramBlocks.js:664 +msgid "My Dictionary" msgstr "" -#: js/ActionBlocks.js:1045 -msgid "on" +#: js/blocks/DictBlocks.js:129 +msgid "The Dictionary block returns a dictionary." msgstr "" -#: js/ActionBlocks.js:1048 -#: js/ActionBlocks.js:1049 -#: js/ActionBlocks.js:1153 -msgid "event" +#: js/blocks/DictBlocks.js:197 +#: js/blocks/DictBlocks.js:339 +msgid "The Get-dict block returns a value in the dictionary for a specified key." msgstr "" -#: js/ActionBlocks.js:1133 -msgid "The Broadcast block is used to trigger an event." +#: js/blocks/DictBlocks.js:212 +#: js/blocks/DictBlocks.js:354 +#.TRANS: retrieve a value from the dictionary with a given key +msgid "get value" msgstr "" -#: js/ActionBlocks.js:1151 -msgid "broadcast" +#: js/blocks/DictBlocks.js:215 +#: js/blocks/DictBlocks.js:216 +#: js/blocks/DictBlocks.js:289 +#: js/blocks/DictBlocks.js:290 +#: js/blocks/DictBlocks.js:357 +#: js/blocks/DictBlocks.js:430 +#: js/blocks/DictBlocks.js:431 +msgid "key2" msgstr "" -#: js/ActionBlocks.js:1208 -msgid "Each Start block is a separate voice." +#: js/blocks/DictBlocks.js:215 +#: js/blocks/DictBlocks.js:216 +#: js/blocks/DictBlocks.js:289 +#: js/blocks/DictBlocks.js:290 +#: js/blocks/DictBlocks.js:357 +#: js/blocks/DictBlocks.js:430 +#: js/blocks/DictBlocks.js:431 +#: js/blocks/IntervalsBlocks.js:1462 +#.TRANS: key, e.g., C in C Major +msgid "key" msgstr "" -#: js/ActionBlocks.js:1304 -msgid "It is often used for storing a phrase of music that is repeated." +#: js/blocks/DictBlocks.js:271 +#: js/blocks/DictBlocks.js:411 +msgid "The Set-dict block sets a value in the dictionary for a specified key." msgstr "" -#: js/ActionBlocks.js:1495 -msgid "define temperament" +#: js/blocks/DictBlocks.js:286 +#: js/blocks/DictBlocks.js:427 +#.TRANS: set a value in the dictionary for a given key +msgid "set value" msgstr "" -#: js/EnsembleBlocks.js:66 +#: js/blocks/EnsembleBlocks.js:66 msgid "mouse index heap" msgstr "" -#: js/EnsembleBlocks.js:68 +#: js/blocks/EnsembleBlocks.js:68 msgid "The Mouse index heap block returns a value in the heap at a specified location for a specified mouse." msgstr "" -#: js/EnsembleBlocks.js:77 -#: js/EnsembleBlocks.js:1080 +#: js/blocks/EnsembleBlocks.js:77 +#: js/blocks/EnsembleBlocks.js:1080 msgid "mouse name" msgstr "" -#: js/EnsembleBlocks.js:77 -#: js/EnsembleBlocks.js:92 -#: js/HeapBlocks.js:544 +#: js/blocks/EnsembleBlocks.js:77 +#: js/blocks/EnsembleBlocks.js:92 +#: js/blocks/HeapBlocks.js:544 #.TRANS: value1 is a numeric value (JAPANESE ONLY) msgid "index" msgstr "" -#: js/EnsembleBlocks.js:80 +#: js/blocks/EnsembleBlocks.js:80 msgid "turtle index heap" msgstr "" -#: js/EnsembleBlocks.js:82 +#: js/blocks/EnsembleBlocks.js:82 msgid "The Turtle index heap block returns a value in the heap at a specified location for a specified turtle." msgstr "" -#: js/EnsembleBlocks.js:90 -#: js/EnsembleBlocks.js:167 -#: js/EnsembleBlocks.js:230 -#: js/EnsembleBlocks.js:316 -#: js/EnsembleBlocks.js:362 -#: js/EnsembleBlocks.js:400 -#: js/EnsembleBlocks.js:454 -#: js/EnsembleBlocks.js:504 -#: js/EnsembleBlocks.js:550 -#: js/EnsembleBlocks.js:597 -#: js/EnsembleBlocks.js:651 -#: js/EnsembleBlocks.js:763 -#: js/EnsembleBlocks.js:854 -#: js/EnsembleBlocks.js:915 -#: js/EnsembleBlocks.js:955 -#: js/EnsembleBlocks.js:1219 -#: js/EnsembleBlocks.js:1293 +#: js/blocks/EnsembleBlocks.js:90 +#: js/blocks/EnsembleBlocks.js:167 +#: js/blocks/EnsembleBlocks.js:230 +#: js/blocks/EnsembleBlocks.js:316 +#: js/blocks/EnsembleBlocks.js:362 +#: js/blocks/EnsembleBlocks.js:400 +#: js/blocks/EnsembleBlocks.js:454 +#: js/blocks/EnsembleBlocks.js:504 +#: js/blocks/EnsembleBlocks.js:550 +#: js/blocks/EnsembleBlocks.js:597 +#: js/blocks/EnsembleBlocks.js:651 +#: js/blocks/EnsembleBlocks.js:763 +#: js/blocks/EnsembleBlocks.js:854 +#: js/blocks/EnsembleBlocks.js:915 +#: js/blocks/EnsembleBlocks.js:955 +#: js/blocks/EnsembleBlocks.js:1219 +#: js/blocks/EnsembleBlocks.js:1293 #.TRANS: Yertle is the name of a turtle. msgid "Yertle" msgstr "" -#: js/EnsembleBlocks.js:92 -#: js/EnsembleBlocks.js:1089 +#: js/blocks/EnsembleBlocks.js:92 +#: js/blocks/EnsembleBlocks.js:1089 msgid "turtle name" msgstr "" -#: js/EnsembleBlocks.js:122 -#: js/EnsembleBlocks.js:1197 -#: js/HeapBlocks.js:474 -#: js/HeapBlocks.js:572 +#: js/blocks/EnsembleBlocks.js:122 +#: js/blocks/EnsembleBlocks.js:1197 +#: js/blocks/HeapBlocks.js:474 +#: js/blocks/HeapBlocks.js:572 msgid "Index must be > 0." msgstr "" -#: js/EnsembleBlocks.js:127 -#: js/HeapBlocks.js:479 -#: js/HeapBlocks.js:577 +#: js/blocks/EnsembleBlocks.js:127 +#: js/blocks/HeapBlocks.js:479 +#: js/blocks/HeapBlocks.js:577 msgid "Maximum heap size is 1000." msgstr "" -#: js/EnsembleBlocks.js:145 +#: js/blocks/EnsembleBlocks.js:145 msgid "stop mouse" msgstr "" -#: js/EnsembleBlocks.js:147 +#: js/blocks/EnsembleBlocks.js:147 msgid "The Stop mouse block stops the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:158 +#: js/blocks/EnsembleBlocks.js:158 msgid "stop turtle" msgstr "" -#: js/EnsembleBlocks.js:160 +#: js/blocks/EnsembleBlocks.js:160 msgid "The Stop turtle block stops the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:184 -#: js/EnsembleBlocks.js:247 -#: js/EnsembleBlocks.js:413 -#: js/EnsembleBlocks.js:468 -#: js/EnsembleBlocks.js:706 -#: js/EnsembleBlocks.js:808 -#: js/EnsembleBlocks.js:870 -#: js/EnsembleBlocks.js:1190 -#: js/EnsembleBlocks.js:1253 +#: js/blocks/EnsembleBlocks.js:184 +#: js/blocks/EnsembleBlocks.js:247 +#: js/blocks/EnsembleBlocks.js:413 +#: js/blocks/EnsembleBlocks.js:468 +#: js/blocks/EnsembleBlocks.js:706 +#: js/blocks/EnsembleBlocks.js:808 +#: js/blocks/EnsembleBlocks.js:870 +#: js/blocks/EnsembleBlocks.js:1190 +#: js/blocks/EnsembleBlocks.js:1253 msgid "Cannot find mouse" msgstr "" -#: js/EnsembleBlocks.js:186 -#: js/EnsembleBlocks.js:249 -#: js/EnsembleBlocks.js:415 -#: js/EnsembleBlocks.js:470 -#: js/EnsembleBlocks.js:708 -#: js/EnsembleBlocks.js:810 -#: js/EnsembleBlocks.js:872 -#: js/EnsembleBlocks.js:1192 -#: js/EnsembleBlocks.js:1255 +#: js/blocks/EnsembleBlocks.js:186 +#: js/blocks/EnsembleBlocks.js:249 +#: js/blocks/EnsembleBlocks.js:415 +#: js/blocks/EnsembleBlocks.js:470 +#: js/blocks/EnsembleBlocks.js:708 +#: js/blocks/EnsembleBlocks.js:810 +#: js/blocks/EnsembleBlocks.js:872 +#: js/blocks/EnsembleBlocks.js:1192 +#: js/blocks/EnsembleBlocks.js:1255 msgid "Cannot find turtle" msgstr "" -#: js/EnsembleBlocks.js:206 +#: js/blocks/EnsembleBlocks.js:206 msgid "start mouse" msgstr "" -#: js/EnsembleBlocks.js:209 +#: js/blocks/EnsembleBlocks.js:209 msgid "The Start mouse block starts the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:220 +#: js/blocks/EnsembleBlocks.js:220 msgid "start turtle" msgstr "" -#: js/EnsembleBlocks.js:223 +#: js/blocks/EnsembleBlocks.js:223 msgid "The Start turtle block starts the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:256 +#: js/blocks/EnsembleBlocks.js:256 msgid "Mouse is already running." msgstr "" -#: js/EnsembleBlocks.js:258 +#: js/blocks/EnsembleBlocks.js:258 msgid "Turtle is already running." msgstr "" -#: js/EnsembleBlocks.js:282 +#: js/blocks/EnsembleBlocks.js:282 msgid "Cannot find start block" msgstr "" -#: js/EnsembleBlocks.js:292 +#: js/blocks/EnsembleBlocks.js:292 #.TRANS: pen color for this mouse msgid "mouse color" msgstr "" -#: js/EnsembleBlocks.js:294 +#: js/blocks/EnsembleBlocks.js:294 msgid "The Mouse color block returns the pen color of the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:306 +#: js/blocks/EnsembleBlocks.js:306 #.TRANS: pen color for this turtle msgid "turtle color" msgstr "" -#: js/EnsembleBlocks.js:308 +#: js/blocks/EnsembleBlocks.js:308 msgid "The Turtle color block returns the pen color of the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:338 +#: js/blocks/EnsembleBlocks.js:338 #.TRANS: heading (compass direction) for this mouse msgid "mouse heading" msgstr "" -#: js/EnsembleBlocks.js:340 +#: js/blocks/EnsembleBlocks.js:340 msgid "The Mouse heading block returns the heading of the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:352 +#: js/blocks/EnsembleBlocks.js:352 #.TRANS: heading (compass direction) for this turtle msgid "turtle heading" msgstr "" -#: js/EnsembleBlocks.js:354 +#: js/blocks/EnsembleBlocks.js:354 msgid "The Turtle heading block returns the heading of the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:384 -#: js/EnsembleBlocks.js:439 +#: js/blocks/EnsembleBlocks.js:384 +#: js/blocks/EnsembleBlocks.js:439 #.TRANS: set xy position for this mouse msgid "set mouse" msgstr "" -#: js/EnsembleBlocks.js:391 -#: js/EnsembleBlocks.js:402 -#: js/BoxesBlocks.js:595 -msgid "name1" -msgstr "" - -#: js/EnsembleBlocks.js:391 -#: js/EnsembleBlocks.js:402 -#: js/ProgramBlocks.js:881 -#: js/GraphicsBlocks.js:235 -#: js/GraphicsBlocks.js:313 -#: js/GraphicsBlocks.js:436 -#: js/GraphicsBlocks.js:487 -#: js/GraphicsBlocks.js:534 -#: js/GraphicsBlocks.js:750 +#: js/blocks/EnsembleBlocks.js:391 +#: js/blocks/EnsembleBlocks.js:402 +#: js/blocks/GraphicsBlocks.js:235 +#: js/blocks/GraphicsBlocks.js:313 +#: js/blocks/GraphicsBlocks.js:436 +#: js/blocks/GraphicsBlocks.js:487 +#: js/blocks/GraphicsBlocks.js:534 +#: js/blocks/GraphicsBlocks.js:750 +#: js/blocks/ProgramBlocks.js:881 msgid "x" msgstr "" -#: js/EnsembleBlocks.js:391 -#: js/EnsembleBlocks.js:402 -#: js/ProgramBlocks.js:881 -#: js/GraphicsBlocks.js:149 -#: js/GraphicsBlocks.js:313 -#: js/GraphicsBlocks.js:436 -#: js/GraphicsBlocks.js:487 -#: js/GraphicsBlocks.js:534 -#: js/GraphicsBlocks.js:750 +#: js/blocks/EnsembleBlocks.js:391 +#: js/blocks/EnsembleBlocks.js:402 +#: js/blocks/GraphicsBlocks.js:149 +#: js/blocks/GraphicsBlocks.js:313 +#: js/blocks/GraphicsBlocks.js:436 +#: js/blocks/GraphicsBlocks.js:487 +#: js/blocks/GraphicsBlocks.js:534 +#: js/blocks/GraphicsBlocks.js:750 +#: js/blocks/ProgramBlocks.js:881 msgid "y" msgstr "" -#: js/EnsembleBlocks.js:395 -#: js/EnsembleBlocks.js:452 +#: js/blocks/EnsembleBlocks.js:395 +#: js/blocks/EnsembleBlocks.js:452 #.TRANS: set xy position for this turtle msgid "set turtle" msgstr "" -#: js/EnsembleBlocks.js:433 +#: js/blocks/EnsembleBlocks.js:433 msgid "The Set mouse block sends a stack of blocks to be run by the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:446 +#: js/blocks/EnsembleBlocks.js:446 msgid "The Set turtle block sends a stack of blocks to be run by the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:480 +#: js/blocks/EnsembleBlocks.js:480 #.TRANS: y position for this mouse msgid "mouse y" msgstr "" -#: js/EnsembleBlocks.js:482 +#: js/blocks/EnsembleBlocks.js:482 msgid "The Y mouse block returns the Y position of the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:494 +#: js/blocks/EnsembleBlocks.js:494 #.TRANS: y position for this turtle msgid "turtle y" msgstr "" -#: js/EnsembleBlocks.js:496 +#: js/blocks/EnsembleBlocks.js:496 msgid "The Y turtle block returns the Y position of the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:526 +#: js/blocks/EnsembleBlocks.js:526 #.TRANS: x position for this mouse msgid "mouse x" msgstr "" -#: js/EnsembleBlocks.js:528 +#: js/blocks/EnsembleBlocks.js:528 msgid "The X mouse block returns the X position of the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:540 +#: js/blocks/EnsembleBlocks.js:540 #.TRANS: x position for this turtle msgid "turtle x" msgstr "" -#: js/EnsembleBlocks.js:542 +#: js/blocks/EnsembleBlocks.js:542 msgid "The X turtle block returns the X position of the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:573 +#: js/blocks/EnsembleBlocks.js:573 #.TRANS: notes played by this mouse msgid "mouse notes played" msgstr "" -#: js/EnsembleBlocks.js:575 +#: js/blocks/EnsembleBlocks.js:575 msgid "The Mouse elapse notes block returns the number of notes played by the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:587 +#: js/blocks/EnsembleBlocks.js:587 #.TRANS: notes played by this turtle msgid "turtle notes played" msgstr "" -#: js/EnsembleBlocks.js:589 +#: js/blocks/EnsembleBlocks.js:589 msgid "The Turtle elapse notes block returns the number of notes played by the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:627 +#: js/blocks/EnsembleBlocks.js:627 #.TRANS: convert current note for this turtle to piano key (1-88) msgid "mouse pitch number" msgstr "" -#: js/EnsembleBlocks.js:629 +#: js/blocks/EnsembleBlocks.js:629 msgid "The Mouse pitch block returns the current pitch number being played by the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:641 +#: js/blocks/EnsembleBlocks.js:641 #.TRANS: convert current note for this turtle to piano key (1-88) msgid "turtle pitch number" msgstr "" -#: js/EnsembleBlocks.js:643 -msgid "The Turrle pitch block returns the current pitch number being played by the specified turtle." +#: js/blocks/EnsembleBlocks.js:643 +msgid "The Turtle pitch block returns the current pitch number being played by the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:747 -#: js/EnsembleBlocks.js:819 +#: js/blocks/EnsembleBlocks.js:747 +#: js/blocks/EnsembleBlocks.js:819 #.TRANS: note value is the duration of the note played by this mouse msgid "mouse note value" msgstr "" -#: js/EnsembleBlocks.js:757 +#: js/blocks/EnsembleBlocks.js:757 #.TRANS: note value is the duration of the note played by this turtle msgid "turtle note value" msgstr "" -#: js/EnsembleBlocks.js:830 +#: js/blocks/EnsembleBlocks.js:830 #.TRANS: sync is short for synchronization msgid "mouse sync" msgstr "" -#: js/EnsembleBlocks.js:832 +#: js/blocks/EnsembleBlocks.js:832 msgid "The Mouse sync block aligns the beat count between mice." msgstr "" -#: js/EnsembleBlocks.js:844 +#: js/blocks/EnsembleBlocks.js:844 #.TRANS: sync is short for synchronization msgid "turtle sync" msgstr "" -#: js/EnsembleBlocks.js:846 +#: js/blocks/EnsembleBlocks.js:846 msgid "The Turtle sync block aligns the beat count between turtles." msgstr "" -#: js/EnsembleBlocks.js:887 +#: js/blocks/EnsembleBlocks.js:887 msgid "The Found mouse block will return true if the specified mouse can be found." msgstr "" -#: js/EnsembleBlocks.js:893 +#: js/blocks/EnsembleBlocks.js:893 msgid "found mouse" msgstr "" -#: js/EnsembleBlocks.js:903 +#: js/blocks/EnsembleBlocks.js:903 msgid "The Found turtle block will return true if the specified turtle can be found." msgstr "" -#: js/EnsembleBlocks.js:909 +#: js/blocks/EnsembleBlocks.js:909 msgid "found turtle" msgstr "" -#: js/EnsembleBlocks.js:932 +#: js/blocks/EnsembleBlocks.js:932 msgid "new mouse" msgstr "" -#: js/EnsembleBlocks.js:934 +#: js/blocks/EnsembleBlocks.js:934 msgid "The New mouse block will create a new mouse." msgstr "" -#: js/EnsembleBlocks.js:945 +#: js/blocks/EnsembleBlocks.js:945 msgid "new turtle" msgstr "" -#: js/EnsembleBlocks.js:947 +#: js/blocks/EnsembleBlocks.js:947 msgid "The New turtle block will create a new turtle." msgstr "" -#: js/EnsembleBlocks.js:1011 +#: js/blocks/EnsembleBlocks.js:1011 msgid "set mouse color" msgstr "" -#: js/EnsembleBlocks.js:1014 +#: js/blocks/EnsembleBlocks.js:1014 msgid "The Set-mouse-color block is used to set the color of a mouse." msgstr "" -#: js/EnsembleBlocks.js:1020 +#: js/blocks/EnsembleBlocks.js:1020 msgid "set turtle color" msgstr "" -#: js/EnsembleBlocks.js:1023 +#: js/blocks/EnsembleBlocks.js:1023 msgid "The Set-turtle-color block is used to set the color of a turtle." msgstr "" -#: js/EnsembleBlocks.js:1083 +#: js/blocks/EnsembleBlocks.js:1083 msgid "The Mouse-name block returns the name of a mouse." msgstr "" -#: js/EnsembleBlocks.js:1092 +#: js/blocks/EnsembleBlocks.js:1092 msgid "The Turtle-name block returns the name of a turtle." msgstr "" -#: js/EnsembleBlocks.js:1115 +#: js/blocks/EnsembleBlocks.js:1115 msgid "mouse count" msgstr "" -#: js/EnsembleBlocks.js:1118 +#: js/blocks/EnsembleBlocks.js:1118 msgid "The Mouse-count block returns the number of mice." msgstr "" -#: js/EnsembleBlocks.js:1124 +#: js/blocks/EnsembleBlocks.js:1124 msgid "turtle count" msgstr "" -#: js/EnsembleBlocks.js:1127 +#: js/blocks/EnsembleBlocks.js:1127 msgid "The Turtle-count block returns the number of turtles." msgstr "" -#: js/EnsembleBlocks.js:1149 +#: js/blocks/EnsembleBlocks.js:1149 msgid "nth mouse name" msgstr "" -#: js/EnsembleBlocks.js:1152 +#: js/blocks/EnsembleBlocks.js:1152 msgid "The Nth-Mouse name block returns the name of the nth mouse." msgstr "" -#: js/EnsembleBlocks.js:1158 +#: js/blocks/EnsembleBlocks.js:1158 msgid "nth turtle name" msgstr "" -#: js/EnsembleBlocks.js:1161 +#: js/blocks/EnsembleBlocks.js:1161 msgid "The Nth-Turtle name block returns the name of the nth turtle." msgstr "" -#: js/EnsembleBlocks.js:1205 -#: js/EnsembleBlocks.js:1265 +#: js/blocks/EnsembleBlocks.js:1205 +#: js/blocks/EnsembleBlocks.js:1265 msgid "set name" msgstr "" -#: js/EnsembleBlocks.js:1214 -#: js/EnsembleBlocks.js:1221 +#: js/blocks/EnsembleBlocks.js:1214 +#: js/blocks/EnsembleBlocks.js:1221 msgid "source" msgstr "" -#: js/EnsembleBlocks.js:1214 -#: js/EnsembleBlocks.js:1221 +#: js/blocks/EnsembleBlocks.js:1214 +#: js/blocks/EnsembleBlocks.js:1221 msgid "target" msgstr "" -#: js/EnsembleBlocks.js:1271 +#: js/blocks/EnsembleBlocks.js:1271 msgid "The Set-name block is used to name a mouse." msgstr "" -#: js/EnsembleBlocks.js:1284 +#: js/blocks/EnsembleBlocks.js:1284 msgid "The Set-name block is used to name a turtle." msgstr "" -#: js/BooleanBlocks.js:44 -msgid "The Not block is the logical not operator." -msgstr "" - -#: js/BooleanBlocks.js:62 -msgid "not" -msgstr "እንጂ" - -#: js/BooleanBlocks.js:134 -msgid "The And block is the logical and operator." -msgstr "" - -#: js/BooleanBlocks.js:152 -msgid "and" -msgstr "" - -#: js/BooleanBlocks.js:218 -msgid "The Or block is the logical or operator." -msgstr "" - -#: js/BooleanBlocks.js:236 -msgid "or" -msgstr "" - -#: js/BooleanBlocks.js:302 -msgid "The XOR block is the logical XOR operator." -msgstr "" - -#: js/BooleanBlocks.js:320 -msgid "xor" -msgstr "" - -#: js/BooleanBlocks.js:808 -msgid "The Equal block returns True if the two numbers are equal." -msgstr "" - -#: js/BooleanBlocks.js:909 -msgid "The Not-equal-to block returns True if the two numbers are not equal to each other." -msgstr "" - -#: js/BooleanBlocks.js:1008 -msgid "The Boolean block is used to specify true or false." -msgstr "" - -#: js/MediaBlocks.js:35 -#.TRANS: right side of the screen -msgid "right (screen)" -msgstr "" - -#: js/MediaBlocks.js:45 -#: js/MediaBlocks.js:56 -msgid "The Right block returns the position of the right of the canvas." -msgstr "" - -#: js/MediaBlocks.js:97 -#.TRANS: left side of the screen -msgid "left (screen)" -msgstr "" - -#: js/MediaBlocks.js:107 -#: js/MediaBlocks.js:118 -msgid "The Left block returns the position of the left of the canvas." -msgstr "" - -#: js/MediaBlocks.js:158 -msgid "top (screen)" -msgstr "" - -#: js/MediaBlocks.js:168 -#: js/MediaBlocks.js:179 -msgid "The Top block returns the position of the top of the canvas." -msgstr "" - -#: js/MediaBlocks.js:219 -msgid "bottom (screen)" +#: js/blocks/ExtrasBlocks.js:33 +msgid "fraction" msgstr "" -#: js/MediaBlocks.js:229 -#: js/MediaBlocks.js:240 -msgid "The Bottom block returns the position of the bottom of the canvas." +#: js/blocks/ExtrasBlocks.js:36 +msgid "Convert a float to a fraction" msgstr "" -#: js/MediaBlocks.js:282 -msgid "width" +#: js/blocks/ExtrasBlocks.js:93 +msgid "save as ABC" msgstr "" -#: js/MediaBlocks.js:291 -msgid "The Width block returns the width of the canvas." +#: js/blocks/ExtrasBlocks.js:96 +#: js/blocks/ExtrasBlocks.js:132 +#: js/blocks/ExtrasBlocks.js:168 +msgid "title" msgstr "" -#: js/MediaBlocks.js:325 -msgid "height" +#: js/blocks/ExtrasBlocks.js:129 +msgid "save as Lilypond" msgstr "" -#: js/MediaBlocks.js:334 -msgid "The Height block returns the height of the canvas." +#: js/blocks/ExtrasBlocks.js:165 +msgid "save as SVG" msgstr "" -#: js/MediaBlocks.js:369 -#.TRANS: stops playback of an audio recording -msgid "stop play" +#: js/blocks/ExtrasBlocks.js:216 +msgid "no background" msgstr "" -#: js/MediaBlocks.js:404 -#.TRANS: Erases the images and text -msgid "erase media" +#: js/blocks/ExtrasBlocks.js:219 +msgid "The No background block eliminates the background from the saved SVG output." msgstr "" -#: js/MediaBlocks.js:409 -msgid "The Erase Media block erases text and images." +#: js/blocks/ExtrasBlocks.js:247 +msgid "show blocks" msgstr "" -#: js/MediaBlocks.js:439 -#.TRANS: play an audio recording -msgid "play back" +#: js/blocks/ExtrasBlocks.js:249 +msgid "The Show blocks block shows the blocks." msgstr "" -#: js/MediaBlocks.js:487 -msgid "speak" +#: js/blocks/ExtrasBlocks.js:274 +msgid "hide blocks" msgstr "" -#: js/MediaBlocks.js:495 -msgid "The Speak block outputs to the text-to-speech synthesizer" +#: js/blocks/ExtrasBlocks.js:276 +msgid "The Hide blocks block hides the blocks." msgstr "" -#: js/MediaBlocks.js:546 -msgid "camera" +#: js/blocks/ExtrasBlocks.js:305 +#: js/blocks/ExtrasBlocks.js:338 +msgid "The Space block is used to add space between blocks." msgstr "" -#: js/MediaBlocks.js:551 -msgid "The Camera block connects a webcam to the Show block." +#: js/blocks/ExtrasBlocks.js:376 +msgid "wait" msgstr "" -#: js/MediaBlocks.js:574 -msgid "video" +#: js/blocks/ExtrasBlocks.js:379 +msgid "The Wait block pauses the program for a specified number of seconds." msgstr "" -#: js/MediaBlocks.js:579 -msgid "The Video block selects video for use with the Show block." +#: js/blocks/ExtrasBlocks.js:433 +#: plugins/facebook.rtp:30 +msgid "comment" msgstr "" -#: js/MediaBlocks.js:607 -msgid "The Open file block opens a file for use with the Show block." -msgstr "" +#: js/blocks/ExtrasBlocks.js:469 +msgid "print" +msgstr "አትም" -#: js/MediaBlocks.js:645 -msgid "stop media" +#: js/blocks/ExtrasBlocks.js:476 +msgid "The Print block displays text at the top of the screen." msgstr "" -#: js/MediaBlocks.js:650 -msgid "The Stop media block stops audio or video playback." +#: js/blocks/ExtrasBlocks.js:582 +msgid "display grid" msgstr "" -#: js/MediaBlocks.js:679 -#: js/PitchBlocks.js:1539 -#: js/phrasemaker.js:822 -#: js/musickeyboard.js:1654 -#.TRANS: a measure of frequency: one cycle per second -msgid "hertz" +#: js/blocks/ExtrasBlocks.js:587 +msgid "The Display Grid Block changes the grid type" msgstr "" -#: js/MediaBlocks.js:692 -msgid "duration (ms)" +#: js/blocks/ExtrasBlocks.js:689 +#: js/blocks/ExtrasBlocks.js:708 +#: js/blocks/ExtrasBlocks.js:731 +#: js/blocks/ExtrasBlocks.js:754 +#: js/blocks/ExtrasBlocks.js:772 +#: js/blocks/ExtrasBlocks.js:791 +#: js/blocks/ExtrasBlocks.js:810 +#: js/blocks/ExtrasBlocks.js:829 +msgid "unknown" msgstr "" -#: js/MediaBlocks.js:728 -#.TRANS: translate a note into hertz, e.g., A4 -> 440HZ -msgid "note to frequency" +#: js/blocks/FlowBlocks.js:41 +msgid "The Backward block runs code in reverse order (Musical retrograde)." msgstr "" -#: js/MediaBlocks.js:736 -msgid "The To frequency block converts a pitch name and octave to Hertz." +#: js/blocks/FlowBlocks.js:48 +msgid "backward" msgstr "" -#: js/MediaBlocks.js:746 -#: js/PitchBlocks.js:656 -#: js/PitchBlocks.js:932 -#: js/PitchBlocks.js:1827 -#.TRANS: name2 is name as in name of pitch (JAPANESE ONLY) -msgid "name2" +#: js/blocks/FlowBlocks.js:124 +msgid "The Duplicate block will run each block multiple times." msgstr "" -#: js/MediaBlocks.js:812 -msgid "The Avatar block is used to change the appearance of the mouse." +#: js/blocks/FlowBlocks.js:136 +msgid "duplicate" msgstr "" -#: js/MediaBlocks.js:819 -msgid "The Avatar block is used to change the appearance of the turtle." +#: js/blocks/FlowBlocks.js:334 +msgid "The Default block is used inside of a Switch to define the default action." msgstr "" -#: js/MediaBlocks.js:831 -#: js/MediaBlocks.js:891 -#.TRANS: a media object -msgid "size" +#: js/blocks/FlowBlocks.js:342 +msgid "default" msgstr "" -#: js/MediaBlocks.js:831 -msgid "image" +#: js/blocks/FlowBlocks.js:361 +#: js/blocks/FlowBlocks.js:418 +msgid "The Case Block must be used inside of a Switch Block." msgstr "" -#: js/MediaBlocks.js:880 -msgid "The Show block is used to display text or images on the canvas." +#: js/blocks/FlowBlocks.js:389 +msgid "The Case block is used inside of a Switch to define matches." msgstr "" -#: js/MediaBlocks.js:888 -#.TRANS: show1 is show as in display an image or text on the screen. -msgid "show1" +#: js/blocks/FlowBlocks.js:397 +msgid "case" msgstr "" -#: js/MediaBlocks.js:891 -msgid "obj" +#: js/blocks/FlowBlocks.js:446 +msgid "The Switch block will run the code in the matching Case." msgstr "" -#: js/MediaBlocks.js:938 -msgid "The Media block is used to import an image." +#: js/blocks/FlowBlocks.js:454 +msgid "switch" msgstr "" -#: js/MediaBlocks.js:973 -msgid "The Text block holds a text string." +#: js/blocks/FlowBlocks.js:595 +msgid "The Stop block will stop a loop" msgstr "" -#: js/ProgramBlocks.js:33 -msgid "The Load-heap-from-app block loads the heap from a web page." +#: js/blocks/FlowBlocks.js:597 +msgid "Forever, Repeat, While, or Until." msgstr "" -#: js/ProgramBlocks.js:44 -#.TRANS: load the heap contents from a URL -msgid "load heap from App" -msgstr "" +#: js/blocks/FlowBlocks.js:604 +#: js/widgets/timbre.js:417 +#: js/widgets/timbre.js:419 +#: js/widgets/musickeyboard.js:819 +#: js/widgets/musickeyboard.js:821 +#: js/widgets/phrasemaker.js:4202 +#: plugins/rodi.rtp:29 +#: plugins/rodi.rtp:73 +#: plugins/rodi.rtp:413 +msgid "stop" +msgstr "ላይኛ" -#: js/ProgramBlocks.js:95 -msgid "Error parsing JSON data:" +#: js/blocks/FlowBlocks.js:653 +msgid "The Waitfor block will wait until the condition is true." msgstr "" -#: js/ProgramBlocks.js:100 -msgid "404: Page not found" +#: js/blocks/FlowBlocks.js:661 +msgid "wait for" msgstr "" -#: js/ProgramBlocks.js:133 -msgid "The Save-heap-to-app block saves the heap to a web page." +#: js/blocks/FlowBlocks.js:732 +msgid "The Until block will repeat until the condition is true." msgstr "" -#: js/ProgramBlocks.js:144 -#.TRANS: save the heap contents to a URL -msgid "save heap to App" +#: js/blocks/FlowBlocks.js:740 +msgid "until" msgstr "" -#: js/ProgramBlocks.js:189 -msgid "Cannot find a valid heap for" +#: js/blocks/FlowBlocks.js:742 +#: js/blocks/FlowBlocks.js:822 +msgid "do2" msgstr "" -#: js/ProgramBlocks.js:206 -msgid "The Load-heap block loads the heap from a file." +#: js/blocks/FlowBlocks.js:812 +msgid "The While block will repeat while the condition is true." msgstr "" -#: js/ProgramBlocks.js:217 -#.TRANS: load the heap from a file -msgid "load heap" +#: js/blocks/FlowBlocks.js:820 +msgid "while" msgstr "" -#: js/ProgramBlocks.js:270 -msgid "The file you selected does not contain a valid heap." +#: js/blocks/FlowBlocks.js:903 +#: js/blocks/FlowBlocks.js:968 +#: js/blocks/FlowBlocks.js:979 +msgid "In this example if the mouse button is pressed a snare drum will play." msgstr "" -#: js/ProgramBlocks.js:275 -msgid "The loadHeap block needs a loadFile block." +#: js/blocks/FlowBlocks.js:925 +#: js/blocks/FlowBlocks.js:988 +msgid "if" msgstr "" -#: js/ProgramBlocks.js:291 -msgid "The Set-heap block loads the heap." +#: js/blocks/FlowBlocks.js:927 +#: js/blocks/FlowBlocks.js:990 +msgid "then" msgstr "" -#: js/ProgramBlocks.js:299 -#: js/HeapBlocks.js:539 -#.TRANS: load the heap from a JSON encoding -msgid "set heap" +#: js/blocks/FlowBlocks.js:927 +msgid "else" msgstr "" -#: js/ProgramBlocks.js:340 -msgid "The block you selected does not contain a valid heap." +#: js/blocks/FlowBlocks.js:1025 +msgid "The Forever block will repeat the contained blocks forever." msgstr "" -#: js/ProgramBlocks.js:343 -msgid "The Set heap block needs a heap." +#: js/blocks/FlowBlocks.js:1037 +msgid "forever" msgstr "" -#: js/ProgramBlocks.js:360 -msgid "The Load-dictionary block loads a dictionary from a file." +#: js/blocks/FlowBlocks.js:1073 +msgid "The Repeat block will repeat the contained blocks." msgstr "" -#: js/ProgramBlocks.js:372 -#.TRANS: load a dictionary from a file -msgid "load dictionary" +#: js/blocks/FlowBlocks.js:1075 +msgid "In this example the note will be played 4 times." msgstr "" -#: js/ProgramBlocks.js:390 -#: js/ProgramBlocks.js:658 -#: js/ToneBlocks.js:1025 -msgid "file" +#: js/blocks/FlowBlocks.js:1083 +msgid "repeat" msgstr "" -#: js/ProgramBlocks.js:396 -#: js/ProgramBlocks.js:501 -#: js/ProgramBlocks.js:664 -#: js/DictBlocks.js:80 -#: js/DictBlocks.js:145 -#: js/DictBlocks.js:216 -#: js/DictBlocks.js:290 -msgid "My Dictionary" +#: js/blocks/FlowBlocks.js:1123 +msgid "duplicate factor" msgstr "" -#: js/ProgramBlocks.js:444 -msgid "The file you selected does not contain a valid dictionary." +#: js/blocks/HeapBlocks.js:49 +msgid "The Heap block returns the heap." msgstr "" -#: js/ProgramBlocks.js:449 -msgid "The load dictionary block needs a load file block." +#: js/blocks/HeapBlocks.js:133 +msgid "show heap" msgstr "" -#: js/ProgramBlocks.js:466 -msgid "The Set-dictionary block loads a dictionary." +#: js/blocks/HeapBlocks.js:181 +msgid "The Heap-length block returns the length of the heap." msgstr "" -#: js/ProgramBlocks.js:477 -#.TRANS: load a dictionary from a JSON -msgid "set dictionary" +#: js/blocks/HeapBlocks.js:195 +msgid "heap length" msgstr "" -#: js/ProgramBlocks.js:546 -msgid "The block you selected does not contain a valid dictionary." +#: js/blocks/HeapBlocks.js:254 +msgid "The Heap-empty? block returns true if the heap is empty." msgstr "" -#: js/ProgramBlocks.js:550 -msgid "The set dictionary block needs a dictionary." +#: js/blocks/HeapBlocks.js:268 +#.TRANS: Is the heap empty? +msgid "heap empty?" msgstr "" -#: js/ProgramBlocks.js:567 -msgid "The Save-heap block saves the heap to a file." +#: js/blocks/HeapBlocks.js:317 +msgid "The Empty-heap block empties the heap." msgstr "" -#: js/ProgramBlocks.js:578 -#.TRANS: save the heap to a file -msgid "save heap" +#: js/blocks/HeapBlocks.js:327 +#: js/blocks/HeapBlocks.js:647 +#.TRANS: empty the heap +msgid "empty heap" msgstr "" -#: js/ProgramBlocks.js:629 -msgid "The Save-dictionary block saves a dictionary to a file." +#: js/blocks/HeapBlocks.js:371 +msgid "The Reverse-heap block reverses the order of the heap." msgstr "" -#: js/ProgramBlocks.js:640 -#.TRANS: save a dictionary to a file -msgid "save dictionary" +#: js/blocks/HeapBlocks.js:384 +#.TRANS: reverse the order of the heap +msgid "reverse heap" msgstr "" -#: js/ProgramBlocks.js:720 -msgid "The Open palette block opens a palette." +#: js/blocks/HeapBlocks.js:428 +msgid "The Index-heap block returns a value in the heap at a specified location." msgstr "" -#: js/ProgramBlocks.js:727 -msgid "open palette" +#: js/blocks/HeapBlocks.js:443 +#.TRANS: retrieve a value from the heap at index position in the heap +msgid "index heap" msgstr "" -#: js/ProgramBlocks.js:785 -msgid "The Delete block block removes a block." +#: js/blocks/HeapBlocks.js:523 +msgid "The Set-heap entry block sets a value in he heap at the specified location." msgstr "" -#: js/ProgramBlocks.js:797 -#.TRANS: Move this block to the trash. -msgid "delete block" +#: js/blocks/HeapBlocks.js:539 +#: js/blocks/ProgramBlocks.js:299 +#.TRANS: load the heap from a JSON encoding +msgid "set heap" msgstr "" -#: js/ProgramBlocks.js:861 -msgid "The Move block block moves a block." +#: js/blocks/HeapBlocks.js:619 +msgid "The Pop block removes the value at the top of the heap." msgstr "" -#: js/ProgramBlocks.js:869 -#.TRANS: Move the position of a block on the screen. -msgid "move block" +#: js/blocks/HeapBlocks.js:633 +#.TRANS: pop a value off the top of the heap +msgid "pop" msgstr "" -#: js/ProgramBlocks.js:881 -#: js/ProgramBlocks.js:1048 -msgid "block number" +#: js/blocks/HeapBlocks.js:680 +msgid "The Push block adds a value to the top of the heap." msgstr "" -#: js/ProgramBlocks.js:935 -#.TRANS: Run program beginning at this block. -msgid "run block" +#: js/blocks/HeapBlocks.js:696 +#.TRANS: push a value onto the top of the heap +msgid "push" msgstr "" -#: js/ProgramBlocks.js:1025 -msgid "The Dock block block connections two blocks." +#: js/blocks/IntervalsBlocks.js:45 +msgid "set temperament" msgstr "" -#: js/ProgramBlocks.js:1036 -#.TRANS: We can connect a block to another block. -msgid "connect blocks" +#: js/blocks/IntervalsBlocks.js:63 +#: js/blocks/MediaBlocks.js:746 +#: js/blocks/PitchBlocks.js:657 +#: js/blocks/PitchBlocks.js:935 +#: js/blocks/PitchBlocks.js:974 +#: js/blocks/PitchBlocks.js:1007 +#: js/blocks/PitchBlocks.js:1194 +#: js/blocks/PitchBlocks.js:1717 +#: js/blocks/PitchBlocks.js:1758 +#: js/blocks/PitchBlocks.js:1866 +#: js/blocks/ToneBlocks.js:1025 +#: js/turtleactions/IntervalsActions.js:114 +#.TRANS: adjusts the shift up or down by one octave (twelve half-steps in the interval between two notes, one having twice or half the frequency in Hz of the other.) +msgid "octave" msgstr "" -#: js/ProgramBlocks.js:1048 -msgid "target block" +#: js/blocks/IntervalsBlocks.js:99 +msgid "The Temperament name block is used to select a tuning method." msgstr "" -#: js/ProgramBlocks.js:1048 -msgid "connection number" +#: js/blocks/IntervalsBlocks.js:161 +msgid "doubly" msgstr "" -#: js/ProgramBlocks.js:1140 -msgid "The Make block block creates a new block." +#: js/blocks/IntervalsBlocks.js:166 +msgid "The Doubly block will double the size of an interval." msgstr "" -#: js/ProgramBlocks.js:1152 -#.TRANS: Create a new block -msgid "make block" +#: js/blocks/IntervalsBlocks.js:262 +msgid "interval number" msgstr "" -#: js/ProgramBlocks.js:1186 -#: js/ProgramBlocks.js:1227 -#: js/RhythmBlocks.js:1128 -#: js/PitchBlocks.js:972 -#: js/PitchBlocks.js:1005 -#: js/temperament.js:340 -#: js/temperament.js:362 -#: js/temperament.js:372 -#: js/temperament.js:484 -#: js/status.js:190 -#: plugins/rodi.rtp:192 -#.TRANS: a musical note consisting of pitch and duration -msgid "note" +#: js/blocks/IntervalsBlocks.js:317 +msgid "current interval" msgstr "" -#: js/ProgramBlocks.js:1285 -msgid "Cannot find block" +#: js/blocks/IntervalsBlocks.js:387 +#.TRANS: measure the distance between two pitches in semi-tones +msgid "semi-tone interval measure" msgstr "" -#: js/ProgramBlocks.js:1304 -#: js/ProgramBlocks.js:1313 -msgid "Warning: block argument type mismatch" +#: js/blocks/IntervalsBlocks.js:454 +#: js/blocks/IntervalsBlocks.js:570 +msgid "You must use two pitch blocks when measuring an interval." msgstr "" -#: js/ProgramBlocks.js:1347 -msgid "The Open project block is used to open a project from a web page." +#: js/blocks/IntervalsBlocks.js:496 +msgid "The Scalar interval block measures the distance between two notes in the current key and mode." msgstr "" -#: js/ProgramBlocks.js:1357 -msgid "open project" +#: js/blocks/IntervalsBlocks.js:502 +#.TRANS: measure the distance between two pitches in steps of musical scale +msgid "scalar interval measure" msgstr "" -#: js/ProgramBlocks.js:1410 -msgid "Please enter a valid URL." +#: js/blocks/IntervalsBlocks.js:678 +msgid "In the figure, we add sol# to sol." msgstr "" -#: js/DrumBlocks.js:59 -msgid "The Noise name block is used to select a noise synthesizer." +#: js/blocks/IntervalsBlocks.js:684 +#: js/blocks/OrnamentBlocks.js:220 +#.TRANS: calculate a relative step between notes based on semi-tones +msgid "semi-tone interval" msgstr "" -#: js/DrumBlocks.js:102 -msgid "The Drum name block is used to select a drum." +#: js/blocks/IntervalsBlocks.js:733 +msgid "The output of the example is: do, mi, sol, sol, ti, mi" msgstr "" -#: js/DrumBlocks.js:146 -msgid "The Effects name block is used to select a sound effect." +#: js/blocks/IntervalsBlocks.js:740 +#: js/blocks/WidgetBlocks.js:768 +msgid "arpeggio" msgstr "" -#: js/DrumBlocks.js:163 -msgid "noise" +#: js/blocks/IntervalsBlocks.js:931 +msgid "The Chord block calculates common chords." msgstr "" -#: js/DrumBlocks.js:177 -msgid "The Play noise block will generate white, pink, or brown noise." +#: js/blocks/IntervalsBlocks.js:933 +msgid "In the figure, we generate a C-major chord." msgstr "" -#: js/DrumBlocks.js:191 -#: js/musicutils.js:752 -#: js/synthutils.js:47 -#.TRANS: white noise synthesizer -msgid "white noise" +#: js/blocks/IntervalsBlocks.js:938 +msgid "chord" msgstr "" -#: js/DrumBlocks.js:326 -msgid "Replace every instance of a pitch with a drum sound." +#: js/blocks/IntervalsBlocks.js:990 +msgid "The Ratio Interval block calculates an interval based on a ratio." msgstr "" -#: js/DrumBlocks.js:337 -#.TRANS: map a pitch to a drum sound -msgid "map pitch to drum" +#: js/blocks/IntervalsBlocks.js:995 +msgid "ratio interval" msgstr "" -#: js/DrumBlocks.js:404 -msgid "In the example above, a kick drum sound will be played instead of sol." +#: js/blocks/IntervalsBlocks.js:1064 +msgid "In the figure, we add la to sol." msgstr "" -#: js/DrumBlocks.js:416 -#.TRANS: set the current drum sound for playback -msgid "set drum" +#: js/blocks/IntervalsBlocks.js:1120 +#.TRANS: define a custom mode +msgid "define mode" msgstr "" -#: js/DrumBlocks.js:460 -msgid "sound effect" +#: js/blocks/IntervalsBlocks.js:1173 +msgid "movable Do" msgstr "" -#: js/DrumBlocks.js:498 -msgid "You can use multiple Drum blocks within a Note block." +#: js/blocks/IntervalsBlocks.js:1224 +#.TRANS: mode length is the number of notes in the mode, e.g., 7 for major and minor scales; 12 for chromatic scales +msgid "mode length" msgstr "" -#: js/RhythmBlocks.js:182 -#: js/RhythmBlocks.js:1086 -#: js/RhythmBlocks.js:1162 -msgid "Note value must be greater than 0." +#: js/blocks/IntervalsBlocks.js:1233 +msgid "The Mode length block is the number of notes in the current scale." msgstr "" -#: js/RhythmBlocks.js:215 -#: js/RhythmBlocks.js:278 -#: js/RhythmBlocks.js:350 -#.TRANS: swing is a rhythmic variation that emphasises the offbeat -msgid "swing" +#: js/blocks/IntervalsBlocks.js:1235 +msgid "Most Western scales have 7 notes." msgstr "" -#: js/RhythmBlocks.js:355 -#.TRANS: the amount to shift to the offbeat note -msgid "swing value" +#: js/blocks/IntervalsBlocks.js:1284 +#.TRANS: the mode in music is 'major', 'minor', etc. +msgid "current mode" msgstr "" -#: js/RhythmBlocks.js:419 -msgid "The Skip notes block will cause notes to be skipped." +#: js/blocks/IntervalsBlocks.js:1337 +#.TRANS: the key is a group of pitches with which a music composition is created +msgid "current key" msgstr "" -#: js/RhythmBlocks.js:427 -#.TRANS: substitute rests on notes being skipped -msgid "skip notes" +#: js/blocks/IntervalsBlocks.js:1389 +#: js/blocks/IntervalsBlocks.js:1434 +#.TRANS: set the key and mode, e.g. C Major +msgid "set key" msgstr "" -#: js/RhythmBlocks.js:489 -#.TRANS: speed up note duration by some factor, e.g. convert 1/4 to 1/8 notes by using a factor of 2 -msgid "multiply note value" +#: js/blocks/IntervalsBlocks.js:1443 +#: js/blocks/IntervalsBlocks.js:1449 +msgid "The Set key block is used to set the key and mode," msgstr "" -#: js/RhythmBlocks.js:542 -msgid "The Tie block works on pairs of notes, combining them into one note." +#: js/blocks/IntervalsBlocks.js:1449 +msgid "eg C Major" msgstr "" -#: js/RhythmBlocks.js:550 -#.TRANS: tie notes together into one longer note -msgid "tie" +#: js/blocks/MediaBlocks.js:35 +#.TRANS: right side of the screen +msgid "right (screen)" msgstr "" -#: js/RhythmBlocks.js:591 -#: js/RhythmBlocks.js:671 -#.TRANS: a dotted note is played for 1.5x its value, e.g., 1/8. --> 3/16 -msgid "dot" +#: js/blocks/MediaBlocks.js:45 +#: js/blocks/MediaBlocks.js:56 +msgid "The Right block returns the position of the right of the canvas." msgstr "" -#: js/RhythmBlocks.js:619 -#: js/RhythmActions.js:221 -msgid "An argument of -1 results in a note value of 0." +#: js/blocks/MediaBlocks.js:97 +#.TRANS: left side of the screen +msgid "left (screen)" msgstr "" -#: js/RhythmBlocks.js:661 -msgid "The Dot block extends the duration of a note by 50%." +#: js/blocks/MediaBlocks.js:107 +#: js/blocks/MediaBlocks.js:118 +msgid "The Left block returns the position of the left of the canvas." msgstr "" -#: js/RhythmBlocks.js:663 -msgid "Eg a dotted quarter note will play for 3/8 (1/4 + 1/8) of a beat." +#: js/blocks/MediaBlocks.js:158 +msgid "top (screen)" msgstr "" -#: js/RhythmBlocks.js:765 -#.TRANS: Japanese only: note value block for drum -msgid "note value drum" +#: js/blocks/MediaBlocks.js:168 +#: js/blocks/MediaBlocks.js:179 +msgid "The Top block returns the position of the top of the canvas." msgstr "" -#: js/RhythmBlocks.js:829 -msgid "392 hertz" +#: js/blocks/MediaBlocks.js:219 +msgid "bottom (screen)" msgstr "" -#: js/RhythmBlocks.js:1119 -msgid "The Note block is a container for one or more Pitch blocks." +#: js/blocks/MediaBlocks.js:229 +#: js/blocks/MediaBlocks.js:240 +msgid "The Bottom block returns the position of the bottom of the canvas." msgstr "" -#: js/RhythmBlocks.js:1121 -msgid "The Note block specifies the duration (note value) of its contents." +#: js/blocks/MediaBlocks.js:282 +msgid "width" msgstr "" -#: js/RhythmBlocks.js:1130 -msgid "value2" +#: js/blocks/MediaBlocks.js:291 +msgid "The Width block returns the width of the canvas." msgstr "" -#: js/RhythmBlocks.js:1200 -msgid "define frequency" +#: js/blocks/MediaBlocks.js:325 +msgid "height" msgstr "" -#: js/RhythmBlocks.js:1218 -#: js/temperament.js:650 -#: js/temperament.js:1421 -msgid "octave space" +#: js/blocks/MediaBlocks.js:334 +msgid "The Height block returns the height of the canvas." msgstr "" -#: js/NumberBlocks.js:28 -msgid "The Int block returns an integer." +#: js/blocks/MediaBlocks.js:369 +#.TRANS: stops playback of an audio recording +msgid "stop play" msgstr "" -#: js/NumberBlocks.js:34 -msgid "int" +#: js/blocks/MediaBlocks.js:404 +#.TRANS: Erases the images and text +msgid "erase media" msgstr "" -#: js/NumberBlocks.js:73 -msgid "The Mod block returns the remainder from a division." +#: js/blocks/MediaBlocks.js:409 +msgid "The Erase Media block erases text and images." msgstr "" -#: js/NumberBlocks.js:79 -msgid "mod" +#: js/blocks/MediaBlocks.js:439 +#.TRANS: play an audio recording +msgid "play back" msgstr "" -#: js/NumberBlocks.js:123 -msgid "The Power block calculates a power function." +#: js/blocks/MediaBlocks.js:487 +msgid "speak" msgstr "" -#: js/NumberBlocks.js:178 -msgid "The Sqrt block returns the square root." +#: js/blocks/MediaBlocks.js:495 +msgid "The Speak block outputs to the text-to-speech synthesizer" msgstr "" -#: js/NumberBlocks.js:184 -msgid "sqrt" +#: js/blocks/MediaBlocks.js:546 +msgid "camera" msgstr "" -#: js/NumberBlocks.js:230 -msgid "The Abs block returns the absolute value." +#: js/blocks/MediaBlocks.js:551 +msgid "The Camera block connects a webcam to the Show block." msgstr "" -#: js/NumberBlocks.js:236 -msgid "abs" +#: js/blocks/MediaBlocks.js:574 +msgid "video" msgstr "" -#: js/NumberBlocks.js:277 -msgid "The Distance block returns the distance between two points. For example, between the mouse and the center of the screen." +#: js/blocks/MediaBlocks.js:579 +msgid "The Video block selects video for use with the Show block." msgstr "" -#: js/NumberBlocks.js:283 -#: plugins/rodi.rtp:310 -msgid "distance" +#: js/blocks/MediaBlocks.js:607 +msgid "The Open file block opens a file for use with the Show block." msgstr "" -#: js/NumberBlocks.js:343 -msgid "The Divide block is used to divide." +#: js/blocks/MediaBlocks.js:645 +msgid "stop media" msgstr "" -#: js/NumberBlocks.js:411 -msgid "The Multiply block is used to multiply." +#: js/blocks/MediaBlocks.js:650 +msgid "The Stop media block stops audio or video playback." msgstr "" -#: js/NumberBlocks.js:554 -msgid "The Minus block is used to subtract." +#: js/blocks/MediaBlocks.js:679 +#: js/blocks/PitchBlocks.js:1577 +#: js/widgets/musickeyboard.js:1936 +#: js/widgets/phrasemaker.js:1037 +#.TRANS: a measure of frequency: one cycle per second +msgid "hertz" msgstr "" -#: js/NumberBlocks.js:647 -msgid "The Plus block is used to add." +#: js/blocks/MediaBlocks.js:692 +#: js/blocks/WidgetBlocks.js:182 +#: js/widgets/temperament.js:506 +#: js/widgets/temperament.js:546 +#: js/widgets/temperament.js:610 +#: js/widgets/temperament.js:618 +#: js/widgets/temperament.js:1505 +#: js/widgets/timbre.js:1842 +msgid "frequency" msgstr "" -#: js/NumberBlocks.js:773 -msgid "The One-of block returns one of two choices." +#: js/blocks/MediaBlocks.js:692 +msgid "duration (ms)" msgstr "" -#: js/NumberBlocks.js:780 -#: js/PitchBlocks.js:616 -msgid "one of" +#: js/blocks/MediaBlocks.js:728 +#.TRANS: translate a note into hertz, e.g., A4 -> 440HZ +msgid "note to frequency" msgstr "" -#: js/NumberBlocks.js:782 -msgid "this" +#: js/blocks/MediaBlocks.js:736 +msgid "The To frequency block converts a pitch name and octave to Hertz." msgstr "" -#: js/NumberBlocks.js:782 -msgid "that" +#: js/blocks/MediaBlocks.js:746 +#: js/blocks/PitchBlocks.js:656 +#: js/blocks/PitchBlocks.js:934 +#: js/blocks/PitchBlocks.js:1866 +#.TRANS: name2 is name as in name of pitch (JAPANESE ONLY) +msgid "name2" msgstr "" -#: js/NumberBlocks.js:837 -msgid "The Random block returns a random number." +#: js/blocks/MediaBlocks.js:812 +msgid "The Avatar block is used to change the appearance of the mouse." msgstr "" -#: js/NumberBlocks.js:844 -msgid "random" +#: js/blocks/MediaBlocks.js:819 +msgid "The Avatar block is used to change the appearance of the turtle." msgstr "" -#: js/NumberBlocks.js:846 -msgid "min" +#: js/blocks/MediaBlocks.js:831 +#: js/blocks/MediaBlocks.js:891 +#.TRANS: a media object +msgid "size" msgstr "" -#: js/NumberBlocks.js:846 -msgid "max" +#: js/blocks/MediaBlocks.js:831 +msgid "image" msgstr "" -#: js/NumberBlocks.js:910 -msgid "The Number block holds a number." +#: js/blocks/MediaBlocks.js:880 +msgid "The Show block is used to display text or images on the canvas." msgstr "" -#: js/BoxesBlocks.js:53 -#: js/BoxesBlocks.js:59 -msgid "The Add-to block is used to add to the value stored in a box." +#: js/blocks/MediaBlocks.js:888 +#.TRANS: show1 is show as in display an image or text on the screen. +msgid "show1" msgstr "" -#: js/BoxesBlocks.js:61 -msgid "It can also be used with other blocks such as Color and Pen size." +#: js/blocks/MediaBlocks.js:891 +msgid "obj" msgstr "" -#: js/BoxesBlocks.js:73 -msgid "add" +#: js/blocks/MediaBlocks.js:938 +msgid "The Media block is used to import an image." msgstr "" -#: js/BoxesBlocks.js:75 -#: js/temperament.js:716 -msgid "to" +#: js/blocks/MediaBlocks.js:973 +msgid "The Text block holds a text string." msgstr "" -#: js/BoxesBlocks.js:75 -#: js/BoxesBlocks.js:595 -#: js/HeapBlocks.js:544 -msgid "value1" +#: js/blocks/MeterBlocks.js:34 +#.TRANS: musical meter (time signature), e.g., 4:4 +msgid "current meter" msgstr "" -#: js/BoxesBlocks.js:118 -msgid "Block does not support incrementing." +#: js/blocks/MeterBlocks.js:85 +#.TRANS: number of beats per minute +msgid "beat factor" msgstr "" -#: js/BoxesBlocks.js:152 -msgid "The Add-1-to block adds one to the value stored in a box." +#: js/blocks/MeterBlocks.js:161 +msgid "The Beats per minute block returns the current beats per minute." msgstr "" -#: js/BoxesBlocks.js:163 -msgid "add 1 to" +#: js/blocks/MeterBlocks.js:169 +#: js/widgets/status.js:152 +#.TRANS: number of beats played per minute +msgid "beats per minute2" msgstr "" -#: js/BoxesBlocks.js:211 -msgid "The Subtract-1-from block subtracts one from the value stored in a box." +#: js/blocks/MeterBlocks.js:169 +#: js/blocks/MeterBlocks.js:1056 +#: js/blocks/MeterBlocks.js:1133 +#: js/blocks/MeterBlocks.js:1211 +#.TRANS: sets tempo by defining a beat and beats per minute +msgid "beats per minute" msgstr "" -#: js/BoxesBlocks.js:222 -msgid "subtract 1 from" +#: js/blocks/MeterBlocks.js:233 +#.TRANS: count of current musical measure in meter +msgid "measure count" msgstr "" -#: js/BoxesBlocks.js:270 -#: js/BoxesBlocks.js:387 -msgid "The Box block returns the value stored in a box." +#: js/blocks/MeterBlocks.js:241 +msgid "The Measure count block returns the current measure." msgstr "" -#: js/BoxesBlocks.js:500 -#: js/BoxesBlocks.js:576 -msgid "The Store in block will store a value in a box." +#: js/blocks/MeterBlocks.js:290 +#.TRANS: count of current beat in the meter +msgid "beat count" msgstr "" -#: js/BoxesBlocks.js:652 -msgid "The Box2 block returns the value stored in Box2." +#: js/blocks/MeterBlocks.js:300 +#: js/blocks/MeterBlocks.js:311 +#: js/blocks/MeterBlocks.js:565 +#: js/blocks/MeterBlocks.js:576 +msgid "The Beat count block is the number of the current beat," msgstr "" -#: js/BoxesBlocks.js:703 -msgid "The Store in Box2 block is used to store a value in Box2." +#: js/blocks/MeterBlocks.js:313 +#: js/blocks/MeterBlocks.js:578 +msgid "eg 1, 2, 3, or 4." msgstr "" -#: js/BoxesBlocks.js:715 -msgid "store in box2" +#: js/blocks/MeterBlocks.js:368 +#.TRANS: count the number of notes +msgid "sum note values" msgstr "" -#: js/BoxesBlocks.js:761 -msgid "The Box1 block returns the value stored in Box1." +#: js/blocks/MeterBlocks.js:376 +#: js/blocks/MeterBlocks.js:440 +msgid "The Note counter block can be used to count the number of contained notes." msgstr "" -#: js/BoxesBlocks.js:812 -msgid "The Store in Box1 block is used to store a value in Box1." +#: js/blocks/MeterBlocks.js:432 +#.TRANS: count the number of notes +msgid "note counter" msgstr "" -#: js/BoxesBlocks.js:826 -msgid "store in box1" +#: js/blocks/MeterBlocks.js:496 +#.TRANS: number of whole notes that have been played +msgid "whole notes played" msgstr "" -#: js/HeapBlocks.js:49 -msgid "The Heap block returns the heap." +#: js/blocks/MeterBlocks.js:505 +msgid "The Whole notes played block returns the total number of whole notes played." msgstr "" -#: js/HeapBlocks.js:133 -msgid "show heap" +#: js/blocks/MeterBlocks.js:555 +#: js/turtleactions/DictActions.js:83 +#.TRANS: number of notes that have been played +msgid "notes played" msgstr "" -#: js/HeapBlocks.js:181 -msgid "The Heap-length block returns the length of the heap." +#: js/blocks/MeterBlocks.js:653 +msgid "The No clock block decouples the notes from the master clock." msgstr "" -#: js/HeapBlocks.js:195 -msgid "heap length" +#: js/blocks/MeterBlocks.js:661 +#.TRANS: don't lock notes to master clock +msgid "no clock" msgstr "" -#: js/HeapBlocks.js:254 -msgid "The Heap-empty? block returns true if the heap is empty." +#: js/blocks/MeterBlocks.js:700 +msgid "on weak beat do" msgstr "" -#: js/HeapBlocks.js:268 -#.TRANS: Is the heap empty? -msgid "heap empty?" +#: js/blocks/MeterBlocks.js:705 +msgid "The On-weak-beat block lets you specify actions to take on weak (off) beats." msgstr "" -#: js/HeapBlocks.js:317 -msgid "The Empty-heap block empties the heap." +#: js/blocks/MeterBlocks.js:750 +msgid "on strong beat" msgstr "" -#: js/HeapBlocks.js:327 -#: js/HeapBlocks.js:647 -#.TRANS: empty the heap -msgid "empty heap" +#: js/blocks/MeterBlocks.js:758 +msgid "The On-strong-beat block lets you specify actions to take on specified beats." msgstr "" -#: js/HeapBlocks.js:371 -msgid "The Reverse-heap block reverses the order of the heap." +#: js/blocks/MeterBlocks.js:769 +msgid "beat" msgstr "" -#: js/HeapBlocks.js:384 -#.TRANS: reverse the order of the heap -msgid "reverse heap" +#: js/blocks/MeterBlocks.js:813 +msgid "on every beat do" msgstr "" -#: js/HeapBlocks.js:428 -msgid "The Index-heap block returns a value in the heap at a specified location." +#: js/blocks/MeterBlocks.js:821 +msgid "The On-every-beat block lets you specify actions to take on every beat." msgstr "" -#: js/HeapBlocks.js:443 -#.TRANS: retrieve a value from the heap at index position in the heap -msgid "index heap" +#: js/blocks/MeterBlocks.js:874 +msgid "on every note do" msgstr "" -#: js/HeapBlocks.js:523 -msgid "The Set-heap entry block sets a value in he heap at the specified location." +#: js/blocks/MeterBlocks.js:882 +msgid "The On-every-note block lets you specify actions to take on every note." msgstr "" -#: js/HeapBlocks.js:619 -msgid "The Pop block removes the value at the top of the heap." +#: js/blocks/MeterBlocks.js:928 +#: js/blocks/MeterBlocks.js:999 +#.TRANS: sets tempo by defining a beat and beats per minute +msgid "master beats per minute" msgstr "" -#: js/HeapBlocks.js:633 -#.TRANS: pop a value off the top of the heap -msgid "pop" +#: js/blocks/MeterBlocks.js:952 +#: js/blocks/MeterBlocks.js:1078 +#: js/blocks/MeterBlocks.js:1135 +msgid "bpm" msgstr "" -#: js/HeapBlocks.js:680 -msgid "The Push block adds a value to the top of the heap." +#: js/blocks/MeterBlocks.js:952 +#: js/blocks/MeterBlocks.js:1078 +#: js/blocks/MeterBlocks.js:1135 +msgid "beat value" msgstr "" -#: js/HeapBlocks.js:696 -#.TRANS: push a value onto the top of the heap -msgid "push" +#: js/blocks/MeterBlocks.js:1024 +#: js/blocks/MeterBlocks.js:1167 +#: js/blocks/MeterBlocks.js:1241 +msgid "Beats per minute must be > 30." msgstr "" -#: js/FlowBlocks.js:41 -msgid "The Backward block runs code in reverse order (Musical retrograde)." +#: js/blocks/MeterBlocks.js:1027 +#: js/blocks/MeterBlocks.js:1170 +#: js/blocks/MeterBlocks.js:1244 +msgid "Maximum beats per minute is 1000." msgstr "" -#: js/FlowBlocks.js:48 -msgid "backward" +#: js/blocks/MeterBlocks.js:1068 +msgid "The Beats per minute block sets the number of 1/4 notes per minute." msgstr "" -#: js/FlowBlocks.js:124 -msgid "The Duplicate block will run each block multiple times." +#: js/blocks/MeterBlocks.js:1279 +#.TRANS: anacrusis +msgid "pickup" msgstr "" -#: js/FlowBlocks.js:136 -msgid "duplicate" +#: js/blocks/MeterBlocks.js:1367 +msgid "number of beats" msgstr "" -#: js/FlowBlocks.js:334 -msgid "The Default block is used inside of a Switch to define the default action." +#: js/blocks/NumberBlocks.js:28 +msgid "The Int block returns an integer." msgstr "" -#: js/FlowBlocks.js:342 -msgid "default" +#: js/blocks/NumberBlocks.js:34 +msgid "int" msgstr "" -#: js/FlowBlocks.js:361 -#: js/FlowBlocks.js:418 -msgid "The Case Block must be used inside of a Switch Block." +#: js/blocks/NumberBlocks.js:73 +msgid "The Mod block returns the remainder from a division." msgstr "" -#: js/FlowBlocks.js:389 -msgid "The Case block is used inside of a Switch to define matches." +#: js/blocks/NumberBlocks.js:79 +msgid "mod" msgstr "" -#: js/FlowBlocks.js:397 -msgid "case" +#: js/blocks/NumberBlocks.js:141 +msgid "The Power block calculates a power function." msgstr "" -#: js/FlowBlocks.js:446 -msgid "The Switch block will run the code in the matching Case." +#: js/blocks/NumberBlocks.js:196 +msgid "The Sqrt block returns the square root." msgstr "" -#: js/FlowBlocks.js:454 -msgid "switch" +#: js/blocks/NumberBlocks.js:202 +msgid "sqrt" msgstr "" -#: js/FlowBlocks.js:595 -msgid "The Stop block will stop a loop" +#: js/blocks/NumberBlocks.js:248 +msgid "The Abs block returns the absolute value." msgstr "" -#: js/FlowBlocks.js:597 -msgid "Forever, Repeat, While, or Until." +#: js/blocks/NumberBlocks.js:254 +msgid "abs" msgstr "" -#: js/FlowBlocks.js:604 -#: js/phrasemaker.js:3799 -#: js/musickeyboard.js:629 -#: js/musickeyboard.js:631 -#: js/timbre.js:417 -#: js/timbre.js:419 -#: plugins/rodi.rtp:29 -#: plugins/rodi.rtp:73 -#: plugins/rodi.rtp:413 -msgid "stop" -msgstr "ላይኛ" +#: js/blocks/NumberBlocks.js:295 +msgid "The Distance block returns the distance between two points. For example, between the mouse and the center of the screen." +msgstr "" -#: js/FlowBlocks.js:653 -msgid "The Waitfor block will wait until the condition is true." +#: js/blocks/NumberBlocks.js:301 +#: plugins/rodi.rtp:310 +msgid "distance" msgstr "" -#: js/FlowBlocks.js:661 -msgid "wait for" +#: js/blocks/NumberBlocks.js:361 +msgid "The Divide block is used to divide." msgstr "" -#: js/FlowBlocks.js:732 -msgid "The Until block will repeat until the condition is true." +#: js/blocks/NumberBlocks.js:441 +msgid "The Multiply block is used to multiply." msgstr "" -#: js/FlowBlocks.js:740 -msgid "until" +#: js/blocks/NumberBlocks.js:612 +msgid "The Minus block is used to subtract." msgstr "" -#: js/FlowBlocks.js:742 -#: js/FlowBlocks.js:822 -msgid "do2" +#: js/blocks/NumberBlocks.js:723 +msgid "The Plus block is used to add." msgstr "" -#: js/FlowBlocks.js:812 -msgid "The While block will repeat while the condition is true." +#: js/blocks/NumberBlocks.js:849 +msgid "The One-of block returns one of two choices." msgstr "" -#: js/FlowBlocks.js:820 -msgid "while" +#: js/blocks/NumberBlocks.js:856 +#: js/blocks/PitchBlocks.js:616 +msgid "one of" msgstr "" -#: js/FlowBlocks.js:903 -#: js/FlowBlocks.js:968 -#: js/FlowBlocks.js:979 -msgid "In this example if the mouse button is pressed a snare drum will play." +#: js/blocks/NumberBlocks.js:858 +msgid "this" msgstr "" -#: js/FlowBlocks.js:925 -#: js/FlowBlocks.js:988 -msgid "if" +#: js/blocks/NumberBlocks.js:858 +msgid "that" msgstr "" -#: js/FlowBlocks.js:927 -#: js/FlowBlocks.js:990 -msgid "then" +#: js/blocks/NumberBlocks.js:913 +msgid "The Random block returns a random number." msgstr "" -#: js/FlowBlocks.js:927 -msgid "else" +#: js/blocks/NumberBlocks.js:920 +msgid "random" msgstr "" -#: js/FlowBlocks.js:1025 -msgid "The Forever block will repeat the contained blocks forever." +#: js/blocks/NumberBlocks.js:922 +msgid "min" msgstr "" -#: js/FlowBlocks.js:1037 -msgid "forever" +#: js/blocks/NumberBlocks.js:922 +msgid "max" msgstr "" -#: js/FlowBlocks.js:1073 -msgid "The Repeat block will repeat the contained blocks." +#: js/blocks/NumberBlocks.js:986 +msgid "The Number block holds a number." msgstr "" -#: js/FlowBlocks.js:1075 -msgid "In this example the note will be played 4 times." +#: js/blocks/OrnamentBlocks.js:32 +msgid "staccato factor" msgstr "" -#: js/FlowBlocks.js:1083 -msgid "repeat" +#: js/blocks/OrnamentBlocks.js:108 +msgid "slur factor" msgstr "" -#: js/FlowBlocks.js:1123 -msgid "duplicate factor" +#: js/blocks/OrnamentBlocks.js:217 +#: js/blocks/OrnamentBlocks.js:309 +#.TRANS: the neighbor refers to a neighboring note, e.g., D is a neighbor of C +msgid "neighbor" msgstr "" -#: js/PitchBlocks.js:39 -#: js/musicutils.js:722 -#: js/musicutils.js:1117 -#: js/synthutils.js:112 -#.TRANS: square wave -msgid "square" +#: js/blocks/OrnamentBlocks.js:293 +msgid "The Neighbor block rapidly switches between neighboring pitches." msgstr "" -#: js/PitchBlocks.js:62 -#: js/ToneBlocks.js:39 -#: js/musicutils.js:723 -#: js/musicutils.js:1118 -#: js/synthutils.js:116 -#.TRANS: triangle wave -msgid "triangle" +#: js/blocks/OrnamentBlocks.js:364 +msgid "glide" msgstr "" -#: js/PitchBlocks.js:85 -#: js/musicutils.js:721 -#: js/musicutils.js:1116 -#: js/synthutils.js:110 -#.TRANS: sine wave -msgid "sine" +#: js/blocks/OrnamentBlocks.js:479 +#: js/blocks/OrnamentBlocks.js:643 +msgid "slur" msgstr "" -#: js/PitchBlocks.js:108 -#: js/musicutils.js:724 -#: js/musicutils.js:1119 -#: js/synthutils.js:114 -#.TRANS: sawtooth wave -msgid "sawtooth" +#: js/blocks/OrnamentBlocks.js:558 +#: js/blocks/OrnamentBlocks.js:710 +#.TRANS: play each note sharply detached from the others +msgid "staccato" msgstr "" -#: js/PitchBlocks.js:141 -#.TRANS: musical transposition (adjustment of pitch up or down) -msgid "transposition" +#: js/blocks/RhythmBlocks.js:182 +#: js/blocks/RhythmBlocks.js:1086 +#: js/blocks/RhythmBlocks.js:1162 +msgid "Note value must be greater than 0." msgstr "" -#: js/PitchBlocks.js:168 -#.TRANS: step down one note in current musical scale -msgid "scalar step down" +#: js/blocks/RhythmBlocks.js:215 +#: js/blocks/RhythmBlocks.js:278 +#: js/blocks/RhythmBlocks.js:350 +#.TRANS: swing is a rhythmic variation that emphasises the offbeat +msgid "swing" msgstr "" -#: js/PitchBlocks.js:172 -msgid "The Scalar step down block returns the number of semi-tones down to the previous note in the current key and mode." +#: js/blocks/RhythmBlocks.js:355 +#.TRANS: the amount to shift to the offbeat note +msgid "swing value" msgstr "" -#: js/PitchBlocks.js:190 -#.TRANS: step up one note in current musical scale -msgid "scalar step up" +#: js/blocks/RhythmBlocks.js:419 +msgid "The Skip notes block will cause notes to be skipped." msgstr "" -#: js/PitchBlocks.js:194 -msgid "The Scalar step up block returns the number of semi-tones up to the next note in the current key and mode." +#: js/blocks/RhythmBlocks.js:427 +#.TRANS: substitute rests on notes being skipped +msgid "skip notes" msgstr "" -#: js/PitchBlocks.js:212 -#.TRANS: the change measured in half-steps between the current pitch and the previous pitch -msgid "change in pitch" +#: js/blocks/RhythmBlocks.js:489 +#.TRANS: speed up note duration by some factor, e.g. convert 1/4 to 1/8 notes by using a factor of 2 +msgid "multiply note value" msgstr "" -#: js/PitchBlocks.js:216 -msgid "The Change in pitch block is the difference (in half steps) between the current pitch being played and the previous pitch played." +#: js/blocks/RhythmBlocks.js:542 +msgid "The Tie block works on pairs of notes, combining them into one note." msgstr "" -#: js/PitchBlocks.js:243 -#.TRANS: the change measured in scale-steps between the current pitch and the previous pitch -msgid "scalar change in pitch" +#: js/blocks/RhythmBlocks.js:550 +#.TRANS: tie notes together into one longer note +msgid "tie" msgstr "" -#: js/PitchBlocks.js:250 -#: js/PitchBlocks.js:432 -#: js/PitchBlocks.js:1629 -#: js/DictActions.js:89 -#: js/temperament.js:477 -#: js/temperament.js:481 -#: js/temperament.js:714 -#.TRANS: convert current note to piano key (1-88) -#.TRANS: a mapping of pitch to the 88 piano keys -msgid "pitch number" +#: js/blocks/RhythmBlocks.js:591 +#: js/blocks/RhythmBlocks.js:671 +#.TRANS: a dotted note is played for 1.5x its value, e.g., 1/8. --> 3/16 +msgid "dot" msgstr "" -#: js/PitchBlocks.js:256 -msgid "The Pitch number block is the value of the pitch of the note currently being played." +#: js/blocks/RhythmBlocks.js:619 +#: js/turtleactions/RhythmActions.js:221 +msgid "An argument of -1 results in a note value of 0." msgstr "" -#: js/PitchBlocks.js:329 -#: js/PitchBlocks.js:433 -#.TRANS: the current pitch expressed in Hertz -msgid "pitch in hertz" +#: js/blocks/RhythmBlocks.js:661 +msgid "The Dot block extends the duration of a note by 50%." msgstr "" -#: js/PitchBlocks.js:334 -msgid "The Pitch in Hertz block is the value in Hertz of the pitch of the note currently being played." +#: js/blocks/RhythmBlocks.js:663 +msgid "Eg a dotted quarter note will play for 3/8 (1/4 + 1/8) of a beat." msgstr "" -#: js/PitchBlocks.js:367 -#: js/DictActions.js:87 -msgid "current pitch" +#: js/blocks/RhythmBlocks.js:765 +#.TRANS: Japanese only: note value block for drum +msgid "note value drum" msgstr "" -#: js/PitchBlocks.js:373 -msgid "The Current Pitch block is used with the Pitch Converter block. In the example above, current pitch, sol 4, is displayed as 392 hertz." +#: js/blocks/RhythmBlocks.js:829 +msgid "392 hertz" msgstr "" -#: js/PitchBlocks.js:410 -msgid "This block converts the pitch value of the last note played into different formats such as hertz, letter name, pitch number, et al." +#: js/blocks/RhythmBlocks.js:1119 +msgid "The Note block is a container for one or more Pitch blocks." msgstr "" -#: js/PitchBlocks.js:434 -msgid "alphabet" +#: js/blocks/RhythmBlocks.js:1121 +msgid "The Note block specifies the duration (note value) of its contents." msgstr "" -#: js/PitchBlocks.js:436 -#.TRANS: Translate as "alphabet class" -msgid "letter class" +#: js/blocks/RhythmBlocks.js:1128 +#: js/blocks/PitchBlocks.js:974 +#: js/blocks/PitchBlocks.js:1007 +#: js/blocks/ProgramBlocks.js:1186 +#: js/blocks/ProgramBlocks.js:1227 +#: js/widgets/status.js:190 +#: js/widgets/temperament.js:464 +#: js/widgets/temperament.js:486 +#: js/widgets/temperament.js:496 +#: js/widgets/temperament.js:617 +#: plugins/rodi.rtp:192 +#.TRANS: a musical note consisting of pitch and duration +msgid "note" msgstr "" -#: js/PitchBlocks.js:437 -msgid "solfege class" +#: js/blocks/RhythmBlocks.js:1130 +msgid "value2" msgstr "" -#: js/PitchBlocks.js:438 -msgid "staff y" +#: js/blocks/RhythmBlocks.js:1200 +msgid "define frequency" msgstr "" -#: js/PitchBlocks.js:439 -msgid "solfege syllable" +#: js/blocks/RhythmBlocks.js:1218 +#: js/widgets/temperament.js:787 +#: js/widgets/temperament.js:1587 +msgid "octave space" msgstr "" -#: js/PitchBlocks.js:440 -msgid "pitch class" +#: js/blocks/SensorsBlocks.js:36 +msgid "The Input block prompts for keyboard input." msgstr "" -#: js/PitchBlocks.js:441 -msgid "scalar class" +#: js/blocks/SensorsBlocks.js:46 +msgid "input" msgstr "" -#: js/PitchBlocks.js:443 -msgid "nth degree" +#: js/blocks/SensorsBlocks.js:64 +msgid "Input a value" msgstr "" -#: js/PitchBlocks.js:444 -msgid "pitch to shade" +#: js/blocks/SensorsBlocks.js:126 +msgid "input value" msgstr "" -#: js/PitchBlocks.js:445 -msgid "pitch to color" +#: js/blocks/SensorsBlocks.js:131 +msgid "The Input-value block stores the input." msgstr "" -#: js/PitchBlocks.js:629 -#: js/musickeyboard.js:565 -#.TRANS: MIDI is a technical standard for electronic music -msgid "MIDI" +#: js/blocks/SensorsBlocks.js:238 +msgid "loudness" msgstr "" -#: js/PitchBlocks.js:642 -#.TRANS: set an offset associated with the numeric piano keyboard mapping -msgid "set pitch number offset" +#: js/blocks/SensorsBlocks.js:245 +msgid "The Loudness block returns the volume detected by the microphone." msgstr "" -#: js/PitchBlocks.js:645 -msgid "The Set pitch number offset block is used to set the offset for mapping pitch numbers to pitch and octave." +#: js/blocks/SensorsBlocks.js:300 +msgid "click" msgstr "" -#: js/PitchBlocks.js:679 -#.TRANS: convert piano key number (1-88) to pitch -msgid "number to pitch" +#: js/blocks/SensorsBlocks.js:306 +msgid "The Click block triggers an event if a mouse has been clicked." msgstr "" -#: js/PitchBlocks.js:682 -msgid "The Number to pitch block will convert a pitch number to a pich name." +#: js/blocks/SensorsBlocks.js:313 +msgid "The Click block triggers an event if a turtle has been clicked." msgstr "" -#: js/PitchBlocks.js:715 -#.TRANS: convert piano key number (1-88) to octave -msgid "number to octave" +#: js/blocks/SensorsBlocks.js:342 +msgid "cursor over" msgstr "" -#: js/PitchBlocks.js:717 -msgid "The Number to octave block will convert a pitch number to an octave." +#: js/blocks/SensorsBlocks.js:387 +msgid "cursor out" msgstr "" -#: js/PitchBlocks.js:726 -msgid "y to pitch" +#: js/blocks/SensorsBlocks.js:433 +msgid "cursor button down" msgstr "" -#: js/PitchBlocks.js:729 -msgid "Y to pitch block will convert a staff y position to corresponding pitch notation." +#: js/blocks/SensorsBlocks.js:477 +msgid "cursor button up" msgstr "" -#: js/PitchBlocks.js:841 -msgid "accidental selector" +#: js/blocks/SensorsBlocks.js:521 +#: js/blocks/PenBlocks.js:48 +#: plugins/rodi.rtp:219 +msgid "blue" msgstr "" -#: js/PitchBlocks.js:844 -msgid "The Accidental selector block is used to choose between double-sharp, sharp, natural, flat, and double-flat." +#: js/blocks/SensorsBlocks.js:577 +#: js/blocks/PenBlocks.js:64 +#: plugins/rodi.rtp:218 +msgid "green" msgstr "" -#: js/PitchBlocks.js:858 -msgid "Pitch can be specified in terms of ni dha pa ma ga re sa." +#: js/blocks/SensorsBlocks.js:633 +#: js/blocks/PenBlocks.js:112 +#: plugins/rodi.rtp:217 +msgid "red" msgstr "" -#: js/PitchBlocks.js:872 -msgid "Pitch can be specified in terms of C D E F G A B." +#: js/blocks/SensorsBlocks.js:638 +msgid "The Get red block returns the red component of the pixel under the mouse." msgstr "" -#: js/PitchBlocks.js:883 -msgid "solfege" +#: js/blocks/SensorsBlocks.js:644 +msgid "The Get red block returns the red component of the pixel under the turtle." msgstr "" -#: js/PitchBlocks.js:886 -msgid "Pitch can be specified in terms of do re mi fa sol la ti." +#: js/blocks/SensorsBlocks.js:685 +#: plugins/rodi.rtp:216 +msgid "pixel color" msgstr "" -#: js/PitchBlocks.js:920 -msgid "The Invert block rotates any contained notes around a target note." +#: js/blocks/SensorsBlocks.js:690 +msgid "The Get pixel block returns the color of the pixel under the mouse." msgstr "" -#: js/PitchBlocks.js:927 -#.TRANS: pitch inversion rotates a pitch around another pitch -msgid "invert" +#: js/blocks/SensorsBlocks.js:696 +msgid "The Get pixel block returns the color of the pixel under the turtle." msgstr "" -#: js/PitchBlocks.js:929 -#: js/PitchBlocks.js:935 -#: js/PitchActions.js:727 -#: js/musicutils.js:726 -#: js/musicutils.js:902 -#.TRANS: invert based on even or odd number or musical scale -#.TRANS: even numbers -msgid "even" +#: js/blocks/SensorsBlocks.js:758 +msgid "time" msgstr "" -#: js/PitchBlocks.js:935 -#: js/PitchActions.js:729 -#: js/musicutils.js:728 -#: js/musicutils.js:903 -#.TRANS: odd numbers -msgid "odd" +#: js/blocks/SensorsBlocks.js:804 +msgid "cursor y" msgstr "" -#: js/PitchBlocks.js:935 -#: js/PitchActions.js:731 -#: js/musicutils.js:729 -#: js/musicutils.js:904 -msgid "scalar" +#: js/blocks/SensorsBlocks.js:809 +msgid "The Cursor Y block returns the vertical position of the mouse." msgstr "" -#: js/PitchBlocks.js:966 -#.TRANS: pitch inversion rotates a pitch around another pitch (odd number) -msgid "invert (odd)" +#: js/blocks/SensorsBlocks.js:845 +msgid "cursor x" msgstr "" -#: js/PitchBlocks.js:999 -#.TRANS: pitch inversion rotates a pitch around another pitch (even number) -msgid "invert (even)" +#: js/blocks/SensorsBlocks.js:850 +msgid "The Cursor X block returns the horizontal position of the mouse." msgstr "" -#: js/PitchBlocks.js:1020 -#.TRANS: register is the octave of the current pitch -msgid "register" +#: js/blocks/SensorsBlocks.js:886 +msgid "mouse button" msgstr "" -#: js/PitchBlocks.js:1024 -msgid "The Register block provides an easy way to modify the register (octave) of the notes that follow it." +#: js/blocks/SensorsBlocks.js:888 +msgid "The Mouse-button block returns True if the mouse button is pressed." msgstr "" -#: js/PitchBlocks.js:1074 -msgid "The Semi-tone transposition block will shift the pitches contained inside Note blocks up (or down) by half steps." +#: js/blocks/SensorsBlocks.js:934 +msgid "to ASCII" msgstr "" -#: js/PitchBlocks.js:1076 -msgid "In the example shown above, sol is shifted up to sol#." +#: js/blocks/SensorsBlocks.js:938 +msgid "The To ASCII block converts numbers to letters." msgstr "" -#: js/PitchBlocks.js:1082 -#.TRANS: adjust the amount of shift (up or down) of a pitch -msgid "semi-tone transpose" +#: js/blocks/SensorsBlocks.js:1005 +msgid "The Keyboard block returns computer keyboard input." msgstr "" -#: js/PitchBlocks.js:1115 -msgid "The Transpose by Ratio block will shift the pitches contained inside Note blocks up (or down) by a ratio" +#: js/blocks/RhythmBlockPaletteBlocks.js:50 +#: js/blocks/RhythmBlockPaletteBlocks.js:233 +#.TRANS: rhythm block +#.TRANS: translate "rhythm1" as rhythm +msgid "rhythm1" msgstr "" -#: js/PitchBlocks.js:1121 -#.TRANS: adjust the amount of shift (up or down) of a pitch -msgid "transpose by ratio" +#: js/blocks/RhythmBlockPaletteBlocks.js:70 +#: js/blocks/RhythmBlockPaletteBlocks.js:252 +#: js/blocks/RhythmBlockPaletteBlocks.js:485 +#: js/blocks/RhythmBlockPaletteBlocks.js:554 +#: js/blocks/RhythmBlockPaletteBlocks.js:875 +msgid "number of notes" msgstr "" -#: js/PitchBlocks.js:1204 -#.TRANS: down sixth means the note is five scale degrees below current note -msgid "down sixth" +#: js/blocks/RhythmBlockPaletteBlocks.js:126 +msgid "polyphonic rhythm" msgstr "" -#: js/PitchBlocks.js:1223 -#.TRANS: down third means the note is two scale degrees below current note -msgid "down third" +#: js/blocks/RhythmBlockPaletteBlocks.js:219 +msgid "The Rhythm block is used to generate rhythm patterns." msgstr "" -#: js/PitchBlocks.js:1242 -#.TRANS: seventh means the note is the six scale degrees above current note -msgid "seventh" +#: js/blocks/RhythmBlockPaletteBlocks.js:280 +msgid "1/64 note" msgstr "" -#: js/PitchBlocks.js:1261 -#.TRANS: sixth means the note is the five scale degrees above current note -msgid "sixth" +#: js/blocks/RhythmBlockPaletteBlocks.js:304 +msgid "1/32 note" msgstr "" -#: js/PitchBlocks.js:1280 -#.TRANS: fifth means the note is the four scale degrees above current note -msgid "fifth" +#: js/blocks/RhythmBlockPaletteBlocks.js:332 +msgid "1/16 note" msgstr "" -#: js/PitchBlocks.js:1300 -#.TRANS: fourth means the note is three scale degrees above current note -msgid "fourth" +#: js/blocks/RhythmBlockPaletteBlocks.js:360 +msgid "eighth note" msgstr "" -#: js/PitchBlocks.js:1319 -#.TRANS: third means the note is two scale degrees above current note -msgid "third" +#: js/blocks/RhythmBlockPaletteBlocks.js:388 +msgid "quarter note" msgstr "" -#: js/PitchBlocks.js:1338 -#.TRANS: second means the note is one scale degree above current note -msgid "second" +#: js/blocks/RhythmBlockPaletteBlocks.js:416 +msgid "half note" msgstr "" -#: js/PitchBlocks.js:1379 -msgid "The Scalar transposition block will shift the pitches contained inside Note blocks up (or down) the scale." +#: js/blocks/RhythmBlockPaletteBlocks.js:444 +msgid "whole note" msgstr "" -#: js/PitchBlocks.js:1381 -msgid "In the example shown above, sol is shifted up to la." +#: js/blocks/RhythmBlockPaletteBlocks.js:482 +#: js/blocks/RhythmBlockPaletteBlocks.js:551 +#: js/blocks/RhythmBlockPaletteBlocks.js:602 +#.TRANS: A tuplet is a note value divided into irregular time values. +msgid "tuplet" msgstr "" -#: js/PitchBlocks.js:1388 -#.TRANS: adjust the amount of shift (up or down) of a pitch by musical scale (scalar) steps -msgid "scalar transpose" +#: js/blocks/RhythmBlockPaletteBlocks.js:768 +msgid "septuplet" msgstr "" -#: js/PitchBlocks.js:1423 -msgid "The Accidental block is used to create sharps and flats" +#: js/blocks/RhythmBlockPaletteBlocks.js:796 +msgid "quintuplet" msgstr "" -#: js/PitchBlocks.js:1430 -#.TRANS: An accidental is a modification to a pitch, e.g., sharp or flat. -msgid "accidental override" +#: js/blocks/RhythmBlockPaletteBlocks.js:824 +msgid "triplet" msgstr "" -#: js/PitchBlocks.js:1543 -msgid "The Hertz block (in combination with a Number block) will play a sound at the specified frequency." +#: js/blocks/RhythmBlockPaletteBlocks.js:851 +msgid "simple tuplet" msgstr "" -#: js/PitchBlocks.js:1633 -msgid "The Pitch Number block will play a pitch associated by its number, e.g. 0 for C and 7 for G." +#: js/blocks/RhythmBlockPaletteBlocks.js:861 +msgid "Tuplets are a collection of notes that get scaled to a specific duration." msgstr "" -#: js/PitchBlocks.js:1665 -#: js/PitchBlocks.js:1707 -#.TRANS: a numeric mapping of the notes in an octave based on the musical mode -#.TRANS: a numeric mapping of the notes in an octave based on the musical mode -msgid "nth modal pitch" +#: js/blocks/DrumBlocks.js:59 +msgid "The Noise name block is used to select a noise synthesizer." msgstr "" -#: js/PitchBlocks.js:1668 -msgid "n^th Modal Pitch takes the pattern of pitches in semitones for a mode and makes each point a degree of the mode," +#: js/blocks/DrumBlocks.js:102 +msgid "The Drum name block is used to select a drum." msgstr "" -#: js/PitchBlocks.js:1670 -msgid "starting from 1 and regardless of tonal framework (i.e. not always 8 notes in the octave)" +#: js/blocks/DrumBlocks.js:146 +msgid "The Effects name block is used to select a sound effect." msgstr "" -#: js/PitchBlocks.js:1711 -msgid "N^th Modal Pitch takes a number as an input as the n^th degree for the given mode. 0 is the first position, 1 is the second, -1 is the note before the first etc." +#: js/blocks/DrumBlocks.js:163 +msgid "noise" msgstr "" -#: js/PitchBlocks.js:1713 -msgid "The pitches change according to the mode specified without any need for respellings." +#: js/blocks/DrumBlocks.js:177 +msgid "The Play noise block will generate white, pink, or brown noise." msgstr "" -#: js/PitchBlocks.js:1752 -msgid "Scale Degree is a common convention in music. Scale Degree offers seven possible positions in the scale (1-7) and can be modified via accidentals." +#: js/blocks/DrumBlocks.js:317 +msgid "Replace every instance of a pitch with a drum sound." msgstr "" -#: js/PitchBlocks.js:1754 -msgid "Scale Degree 1 is always the first pitch in a given scale, regardless of octave." +#: js/blocks/DrumBlocks.js:328 +#.TRANS: map a pitch to a drum sound +msgid "map pitch to drum" msgstr "" -#: js/PitchBlocks.js:1776 -#.TRANS: step some number of notes in current musical scale -msgid "scalar step" +#: js/blocks/DrumBlocks.js:395 +msgid "In the example above, a kick drum sound will be played instead of sol." msgstr "" -#: js/PitchBlocks.js:1781 -msgid "The Scalar Step block (in combination with a Number block) will play the next pitch in a scale," +#: js/blocks/DrumBlocks.js:407 +#.TRANS: set the current drum sound for playback +msgid "set drum" msgstr "" -#: js/PitchBlocks.js:1783 -msgid "eg if the last note played was sol, Scalar Step 1 will play la." +#: js/blocks/DrumBlocks.js:451 +msgid "sound effect" msgstr "" -#: js/PitchBlocks.js:1818 -msgid "The Pitch block specifies the pitch name and octave of a note that together determine the frequency of the note." +#: js/blocks/DrumBlocks.js:489 +msgid "You can use multiple Drum blocks within a Note block." msgstr "" -#: js/GraphicsBlocks.js:46 -#: js/DictActions.js:77 -#: js/DictActions.js:155 -#: js/DictActions.js:189 +#: js/blocks/GraphicsBlocks.js:46 +#: js/turtleactions/DictActions.js:77 +#: js/turtleactions/DictActions.js:144 +#: js/turtleactions/DictActions.js:173 msgid "heading" msgstr "" -#: js/GraphicsBlocks.js:56 +#: js/blocks/GraphicsBlocks.js:56 msgid "The Heading block returns the orientation of the mouse." msgstr "" -#: js/GraphicsBlocks.js:62 +#: js/blocks/GraphicsBlocks.js:62 msgid "The Heading block returns the orientation of the turtle." msgstr "" -#: js/GraphicsBlocks.js:133 +#: js/blocks/GraphicsBlocks.js:133 msgid "The Y block returns the vertical position of the mouse." msgstr "" -#: js/GraphicsBlocks.js:140 +#: js/blocks/GraphicsBlocks.js:140 msgid "The Y block returns the vertical position of the turtle." msgstr "" -#: js/GraphicsBlocks.js:149 +#: js/blocks/GraphicsBlocks.js:149 msgid "y3" msgstr "" -#: js/GraphicsBlocks.js:219 +#: js/blocks/GraphicsBlocks.js:219 msgid "The X block returns the horizontal position of the mouse." msgstr "" -#: js/GraphicsBlocks.js:226 +#: js/blocks/GraphicsBlocks.js:226 msgid "The X block returns the horizontal position of the turtle." msgstr "" -#: js/GraphicsBlocks.js:235 +#: js/blocks/GraphicsBlocks.js:235 msgid "x3" msgstr "" -#: js/GraphicsBlocks.js:295 +#: js/blocks/GraphicsBlocks.js:295 msgid "scroll xy" msgstr "" -#: js/GraphicsBlocks.js:303 +#: js/blocks/GraphicsBlocks.js:303 msgid "The Scroll XY block moves the canvas." msgstr "" -#: js/GraphicsBlocks.js:313 +#: js/blocks/GraphicsBlocks.js:313 msgid "x2" msgstr "" -#: js/GraphicsBlocks.js:313 +#: js/blocks/GraphicsBlocks.js:313 msgid "y2" msgstr "" -#: js/GraphicsBlocks.js:373 -#: js/temperament.js:213 -#: js/temperament.js:241 +#: js/blocks/GraphicsBlocks.js:373 +#: js/widgets/temperament.js:319 +#: js/widgets/temperament.js:347 msgid "clear" msgstr "" -#: js/GraphicsBlocks.js:426 +#: js/blocks/GraphicsBlocks.js:426 msgid "The Control-point 2 block sets the second control point for the Bezier curve." msgstr "" -#: js/GraphicsBlocks.js:433 +#: js/blocks/GraphicsBlocks.js:433 msgid "control point 2" msgstr "" -#: js/GraphicsBlocks.js:436 -#: js/GraphicsBlocks.js:487 -#: js/GraphicsBlocks.js:534 -#: js/GraphicsBlocks.js:750 +#: js/blocks/GraphicsBlocks.js:436 +#: js/blocks/GraphicsBlocks.js:487 +#: js/blocks/GraphicsBlocks.js:534 +#: js/blocks/GraphicsBlocks.js:750 msgid "x1" msgstr "" -#: js/GraphicsBlocks.js:436 -#: js/GraphicsBlocks.js:487 -#: js/GraphicsBlocks.js:534 -#: js/GraphicsBlocks.js:750 +#: js/blocks/GraphicsBlocks.js:436 +#: js/blocks/GraphicsBlocks.js:487 +#: js/blocks/GraphicsBlocks.js:534 +#: js/blocks/GraphicsBlocks.js:750 msgid "y1" msgstr "" -#: js/GraphicsBlocks.js:477 +#: js/blocks/GraphicsBlocks.js:477 msgid "The Control-point 1 block sets the first control point for the Bezier curve." msgstr "" -#: js/GraphicsBlocks.js:484 +#: js/blocks/GraphicsBlocks.js:484 msgid "control point 1" msgstr "" -#: js/GraphicsBlocks.js:527 +#: js/blocks/GraphicsBlocks.js:527 msgid "The Bezier block draws a Bezier curve." msgstr "" -#: js/GraphicsBlocks.js:531 +#: js/blocks/GraphicsBlocks.js:531 msgid "bezier" msgstr "" -#: js/GraphicsBlocks.js:592 +#: js/blocks/GraphicsBlocks.js:592 msgid "The Arc block moves the turtle in an arc." msgstr "" -#: js/GraphicsBlocks.js:600 +#: js/blocks/GraphicsBlocks.js:600 msgid "arc" msgstr "" -#: js/GraphicsBlocks.js:603 +#: js/blocks/GraphicsBlocks.js:603 msgid "angle" msgstr "" -#: js/GraphicsBlocks.js:603 +#: js/blocks/GraphicsBlocks.js:603 msgid "radius" msgstr "" -#: js/GraphicsBlocks.js:620 -#: js/GraphicsBlocks.js:767 -#: js/GraphicsBlocks.js:1010 -#: js/GraphicsBlocks.js:1093 +#: js/blocks/GraphicsBlocks.js:620 +#: js/blocks/GraphicsBlocks.js:767 +#: js/blocks/GraphicsBlocks.js:1010 +#: js/blocks/GraphicsBlocks.js:1093 msgid "Value must be within -5000 to 5000 when Wrap Mode is off." msgstr "" -#: js/GraphicsBlocks.js:622 -#: js/GraphicsBlocks.js:769 -#: js/GraphicsBlocks.js:1012 -#: js/GraphicsBlocks.js:1095 +#: js/blocks/GraphicsBlocks.js:622 +#: js/blocks/GraphicsBlocks.js:769 +#: js/blocks/GraphicsBlocks.js:1012 +#: js/blocks/GraphicsBlocks.js:1095 msgid "Value must be within -20000 to 20000 when Wrap Mode is on." msgstr "" -#: js/GraphicsBlocks.js:660 +#: js/blocks/GraphicsBlocks.js:660 msgid "set heading" msgstr "" -#: js/GraphicsBlocks.js:673 +#: js/blocks/GraphicsBlocks.js:673 msgid "The Set heading block sets the heading of the turtle." msgstr "" -#: js/GraphicsBlocks.js:733 +#: js/blocks/GraphicsBlocks.js:733 msgid "The Set XY block moves the mouse to a specific position on the screen." msgstr "" -#: js/GraphicsBlocks.js:739 +#: js/blocks/GraphicsBlocks.js:739 msgid "The Set XY block moves the turtle to a specific position on the screen." msgstr "" -#: js/GraphicsBlocks.js:747 +#: js/blocks/GraphicsBlocks.js:747 msgid "set xy" msgstr "" -#: js/GraphicsBlocks.js:819 +#: js/blocks/GraphicsBlocks.js:819 msgid "The Right block turns the mouse to the right." msgstr "" -#: js/GraphicsBlocks.js:826 +#: js/blocks/GraphicsBlocks.js:826 msgid "The Right block turns the turtle to the right." msgstr "" -#: js/GraphicsBlocks.js:835 +#: js/blocks/GraphicsBlocks.js:835 msgid "right1" msgstr "" -#: js/GraphicsBlocks.js:835 +#: js/blocks/GraphicsBlocks.js:835 #: plugins/rodi.rtp:77 #: plugins/rodi.rtp:340 #: plugins/rodi.rtp:375 msgid "right" msgstr "ቀኝ" -#: js/GraphicsBlocks.js:899 +#: js/blocks/GraphicsBlocks.js:899 msgid "The Left block turns the mouse to the left." msgstr "" -#: js/GraphicsBlocks.js:906 +#: js/blocks/GraphicsBlocks.js:906 msgid "The Left block turns the turtle to the left." msgstr "" -#: js/GraphicsBlocks.js:915 +#: js/blocks/GraphicsBlocks.js:915 msgid "left1" msgstr "" -#: js/GraphicsBlocks.js:915 +#: js/blocks/GraphicsBlocks.js:915 #: plugins/rodi.rtp:79 #: plugins/rodi.rtp:339 #: plugins/rodi.rtp:362 msgid "left" msgstr "ግራ" -#: js/GraphicsBlocks.js:967 -#: js/temperament.js:734 -#: js/temperament.js:933 +#: js/blocks/GraphicsBlocks.js:967 +#: js/widgets/temperament.js:875 +#: js/widgets/temperament.js:1078 #: plugins/rodi.rtp:69 #: plugins/rodi.rtp:387 msgid "back" msgstr "ኋላ" -#: js/GraphicsBlocks.js:976 +#: js/blocks/GraphicsBlocks.js:976 msgid "The Back block moves the mouse backward." msgstr "" -#: js/GraphicsBlocks.js:983 +#: js/blocks/GraphicsBlocks.js:983 msgid "The Back block moves the turtle backward." msgstr "" -#: js/GraphicsBlocks.js:1050 +#: js/blocks/GraphicsBlocks.js:1050 #: plugins/rodi.rtp:71 #: plugins/rodi.rtp:400 msgid "forward" msgstr "" -#: js/GraphicsBlocks.js:1059 +#: js/blocks/GraphicsBlocks.js:1059 msgid "The Forward block moves the mouse forward." msgstr "" -#: js/GraphicsBlocks.js:1066 +#: js/blocks/GraphicsBlocks.js:1066 msgid "The Forward block moves the turtle forward." msgstr "" -#: js/GraphicsBlocks.js:1154 -#: js/GraphicsBlocks.js:1172 +#: js/blocks/GraphicsBlocks.js:1154 +#: js/blocks/GraphicsBlocks.js:1172 msgid "wrap" msgstr "" -#: js/OrnamentBlocks.js:32 -msgid "staccato factor" -msgstr "" - -#: js/OrnamentBlocks.js:108 -msgid "slur factor" -msgstr "" - -#: js/OrnamentBlocks.js:217 -#: js/OrnamentBlocks.js:309 -#.TRANS: the neighbor refers to a neighboring note, e.g., D is a neighbor of C -msgid "neighbor" -msgstr "" - -#: js/OrnamentBlocks.js:293 -msgid "The Neighbor block rapidly switches between neighboring pitches." -msgstr "" - -#: js/OrnamentBlocks.js:364 -msgid "glide" -msgstr "" - -#: js/OrnamentBlocks.js:479 -#: js/OrnamentBlocks.js:643 -msgid "slur" -msgstr "" - -#: js/OrnamentBlocks.js:558 -#: js/OrnamentBlocks.js:710 -#.TRANS: play each note sharply detached from the others -msgid "staccato" -msgstr "" - -#: js/PenBlocks.js:24 +#: js/blocks/PenBlocks.js:30 msgid "purple" msgstr "" -#: js/PenBlocks.js:37 -#: js/SensorsBlocks.js:521 -#: plugins/rodi.rtp:219 -msgid "blue" -msgstr "" - -#: js/PenBlocks.js:50 -#: js/SensorsBlocks.js:577 -#: plugins/rodi.rtp:218 -msgid "green" -msgstr "" - -#: js/PenBlocks.js:63 +#: js/blocks/PenBlocks.js:80 msgid "yellow" msgstr "" -#: js/PenBlocks.js:76 +#: js/blocks/PenBlocks.js:96 #: plugins/nutrition.rtp:164 msgid "orange" msgstr "" -#: js/PenBlocks.js:89 -#: js/SensorsBlocks.js:633 -#: plugins/rodi.rtp:217 -msgid "red" -msgstr "" - -#: js/PenBlocks.js:102 +#: js/blocks/PenBlocks.js:128 msgid "white" msgstr "" -#: js/PenBlocks.js:115 +#: js/blocks/PenBlocks.js:144 msgid "black" msgstr "" -#: js/PenBlocks.js:128 +#: js/blocks/PenBlocks.js:163 msgid "begin fill" msgstr "" -#: js/PenBlocks.js:143 +#: js/blocks/PenBlocks.js:190 msgid "end fill" msgstr "" -#: js/PenBlocks.js:159 -#: js/PenBlocks.js:386 +#: js/blocks/PenBlocks.js:212 +#: js/blocks/PenBlocks.js:560 #.TRANS: set the background color msgid "background" msgstr "" -#: js/PenBlocks.js:206 -#: js/DictActions.js:71 -#: js/DictActions.js:149 -#: js/DictActions.js:186 +#: js/blocks/PenBlocks.js:274 +#: js/turtleactions/DictActions.js:71 +#: js/turtleactions/DictActions.js:138 +#: js/turtleactions/DictActions.js:170 msgid "grey" msgstr "" -#: js/PenBlocks.js:210 +#: js/blocks/PenBlocks.js:282 msgid "The Grey block returns the current pen grey value." msgstr "" -#: js/PenBlocks.js:243 -#: js/DictActions.js:69 -#: js/DictActions.js:147 -#: js/DictActions.js:185 +#: js/blocks/PenBlocks.js:340 +#: js/turtleactions/DictActions.js:69 +#: js/turtleactions/DictActions.js:136 +#: js/turtleactions/DictActions.js:169 msgid "shade" msgstr "" -#: js/PenBlocks.js:247 +#: js/blocks/PenBlocks.js:347 msgid "The Shade block returns the current pen shade value." msgstr "" -#: js/PenBlocks.js:280 -#: js/DictActions.js:67 -#: js/DictActions.js:145 -#: js/DictActions.js:184 +#: js/blocks/PenBlocks.js:405 +#: js/turtleactions/DictActions.js:67 +#: js/turtleactions/DictActions.js:134 +#: js/turtleactions/DictActions.js:168 msgid "color" msgstr "ቀለም" -#: js/PenBlocks.js:285 +#: js/blocks/PenBlocks.js:415 msgid "The Color block returns the current pen color." msgstr "" -#: js/PenBlocks.js:318 -#: js/DictActions.js:73 -#: js/DictActions.js:151 -#: js/DictActions.js:187 +#: js/blocks/PenBlocks.js:470 +#: js/turtleactions/DictActions.js:73 +#: js/turtleactions/DictActions.js:140 +#: js/turtleactions/DictActions.js:171 msgid "pen size" msgstr "" -#: js/PenBlocks.js:322 +#: js/blocks/PenBlocks.js:474 msgid "The Pen size block returns the current pen size value." msgstr "" -#: js/PenBlocks.js:355 +#: js/blocks/PenBlocks.js:513 msgid "set font" msgstr "" -#: js/PenBlocks.js:358 +#: js/blocks/PenBlocks.js:518 msgid "The Set font block sets the font used by the Show block." msgstr "" -#: js/PenBlocks.js:391 +#: js/blocks/PenBlocks.js:567 msgid "The Background block sets the window background color." msgstr "" -#: js/PenBlocks.js:408 +#: js/blocks/PenBlocks.js:598 msgid "The Hollow line block creates a line with a hollow center." msgstr "" -#: js/PenBlocks.js:415 +#: js/blocks/PenBlocks.js:606 #.TRANS: draw a line logo has a hollow space down its center msgid "hollow line" msgstr "" -#: js/PenBlocks.js:462 +#: js/blocks/PenBlocks.js:675 msgid "The Fill block fills in a shape with a color." msgstr "" -#: js/PenBlocks.js:470 +#: js/blocks/PenBlocks.js:684 #.TRANS: fill in as a solid color msgid "fill" msgstr "" -#: js/PenBlocks.js:527 +#: js/blocks/PenBlocks.js:761 #.TRANS: raise up the pen so logo it does not draw when it is moved msgid "pen up" msgstr "" -#: js/PenBlocks.js:532 +#: js/blocks/PenBlocks.js:768 msgid "The Pen-up block raises the pen so that it does not draw." msgstr "" -#: js/PenBlocks.js:552 +#: js/blocks/PenBlocks.js:802 #.TRANS: put down the pen so logo it draws when it is moved msgid "pen down" msgstr "" -#: js/PenBlocks.js:557 +#: js/blocks/PenBlocks.js:810 msgid "The Pen-down block lowers the pen so that it draws." msgstr "" -#: js/PenBlocks.js:577 +#: js/blocks/PenBlocks.js:844 #.TRANS: set the width of the line drawn by the pen msgid "set pen size" msgstr "" -#: js/PenBlocks.js:583 +#: js/blocks/PenBlocks.js:854 msgid "The Set-pen-size block changes the size of the pen." msgstr "" -#: js/PenBlocks.js:623 +#: js/blocks/PenBlocks.js:913 #.TRANS: set degree of translucence of the pen color msgid "set translucency" msgstr "" -#: js/PenBlocks.js:627 +#: js/blocks/PenBlocks.js:921 msgid "The Set translucency block changes the opacity of the pen." msgstr "" -#: js/PenBlocks.js:668 +#: js/blocks/PenBlocks.js:981 msgid "set hue" msgstr "" -#: js/PenBlocks.js:672 +#: js/blocks/PenBlocks.js:989 msgid "The Set hue block changes the color of the pen." msgstr "" -#: js/PenBlocks.js:711 +#: js/blocks/PenBlocks.js:1047 msgid "set shade" msgstr "" -#: js/PenBlocks.js:717 +#: js/blocks/PenBlocks.js:1057 msgid "The Set-shade block changes the pen color from dark to light." msgstr "" -#: js/PenBlocks.js:757 +#: js/blocks/PenBlocks.js:1111 #.TRANS: set the level of vividness of the pen color msgid "set grey" msgstr "" -#: js/PenBlocks.js:761 +#: js/blocks/PenBlocks.js:1119 msgid "The Set grey block changes the vividness of the pen color." msgstr "" -#: js/PenBlocks.js:800 +#: js/blocks/PenBlocks.js:1172 msgid "set color" msgstr "" -#: js/PenBlocks.js:806 +#: js/blocks/PenBlocks.js:1182 msgid "The Set-color block changes the pen color." msgstr "" -#: js/VolumeBlocks.js:35 -msgid "synth volume" -msgstr "" - -#: js/VolumeBlocks.js:39 -msgid "The Synth volume block returns the current volume of the current synthesizer." -msgstr "" - -#: js/VolumeBlocks.js:47 -#: js/musicutils.js:730 -#: js/synthutils.js:56 -#.TRANS: musical instrument -msgid "piano" -msgstr "" - -#: js/VolumeBlocks.js:105 -msgid "master volume" -msgstr "" - -#: js/VolumeBlocks.js:109 -msgid "The Master volume block returns the master volume." -msgstr "" - -#: js/VolumeBlocks.js:355 -#: js/VolumeBlocks.js:524 -msgid "set synth volume" -msgstr "" - -#: js/VolumeBlocks.js:362 -#: js/VolumeBlocks.js:545 -msgid "synth" -msgstr "" - -#: js/VolumeBlocks.js:403 -#: js/VolumeBlocks.js:577 -#: js/VolumeBlocks.js:740 -#: js/VolumeActions.js:173 -msgid "Setting volume to 0." -msgstr "" - -#: js/VolumeBlocks.js:440 -msgid "Synth not found" -msgstr "" - -#: js/VolumeBlocks.js:494 -msgid "set drum volume" -msgstr "" - -#: js/VolumeBlocks.js:530 -msgid "The Set synth volume block will change the volume of a particular synth," -msgstr "" - -#: js/VolumeBlocks.js:532 -msgid "eg guitar violin snare drum etc." -msgstr "" - -#: js/VolumeBlocks.js:534 -msgid "The default volume is 50." -msgstr "" - -#: js/VolumeBlocks.js:536 -msgid "The range is 0 for silence to 100 for full volume." -msgstr "" - -#: js/VolumeBlocks.js:597 -msgid "set panning" -msgstr "" - -#: js/VolumeBlocks.js:603 -msgid "The Set Panning block sets the panning for all synthesizers." -msgstr "" - -#: js/VolumeBlocks.js:625 -msgid "Warning: Sound is coming out from only the left or right side." -msgstr "" - -#: js/VolumeBlocks.js:647 -#: js/VolumeBlocks.js:695 -msgid "set master volume" -msgstr "" - -#: js/VolumeBlocks.js:653 -msgid "The Set master volume block sets the volume for all synthesizers." -msgstr "" - -#: js/VolumeBlocks.js:784 -msgid "The Set relative volume block changes the volume of the contained notes." -msgstr "" - -#: js/VolumeBlocks.js:791 -msgid "set relative volume" -msgstr "" - -#: js/VolumeBlocks.js:857 -msgid "decrescendo" -msgstr "" - -#: js/VolumeBlocks.js:921 -msgid "crescendo" -msgstr "" - -#: js/ToneBlocks.js:34 -msgid "oscillator" -msgstr "" - -#: js/ToneBlocks.js:44 -#: js/timbre.js:1562 -#.TRANS: Partials refers to the number of sine waves combined into the sound. -msgid "partials" -msgstr "" - -#: js/ToneBlocks.js:76 -msgid "You are adding multiple oscillator blocks." -msgstr "" - -#: js/ToneBlocks.js:144 -#: js/timbre.js:1225 -#.TRANS: a duo synthesizer combines a synth with a sequencer -msgid "duo synth" -msgstr "" - -#: js/ToneBlocks.js:149 -msgid "The Duo synth block is a duo-frequency modulator used to define a timbre." -msgstr "" - -#: js/ToneBlocks.js:157 -#: js/timbre.js:1476 -msgid "vibrato rate" -msgstr "" - -#: js/ToneBlocks.js:157 -msgid "vibrato intensity" -msgstr "" - -#: js/ToneBlocks.js:185 -#: js/timbre.js:1221 -#.TRANS: AM (amplitude modulation) synthesizer -msgid "AM synth" -msgstr "" - -#: js/ToneBlocks.js:189 -msgid "The AM synth block is an amplitude modulator used to define a timbre." -msgstr "" - -#: js/ToneBlocks.js:224 -#: js/timbre.js:1223 -#.TRANS: FM (frequency modulation) synthesizer -msgid "FM synth" +#: js/blocks/PitchBlocks.js:141 +#.TRANS: musical transposition (adjustment of pitch up or down) +msgid "transposition" msgstr "" -#: js/ToneBlocks.js:228 -msgid "The FM synth block is a frequency modulator used to define a timbre." +#: js/blocks/PitchBlocks.js:168 +#.TRANS: step down one note in current musical scale +msgid "scalar step down" msgstr "" -#: js/ToneBlocks.js:262 -msgid "partial" +#: js/blocks/PitchBlocks.js:172 +msgid "The Scalar step down block returns the number of semi-tones down to the previous note in the current key and mode." msgstr "" -#: js/ToneBlocks.js:265 -msgid "The Partial block is used to specify a weight for a specific partial harmonic." +#: js/blocks/PitchBlocks.js:190 +#.TRANS: step up one note in current musical scale +msgid "scalar step up" msgstr "" -#: js/ToneBlocks.js:284 -#.TRANS: partials are weighted components in a harmonic series -msgid "Partial weight must be between 0 and 1." +#: js/blocks/PitchBlocks.js:194 +msgid "The Scalar step up block returns the number of semi-tones up to the next note in the current key and mode." msgstr "" -#: js/ToneBlocks.js:297 -#.TRANS: partials are weighted components in a harmonic series -msgid "Partial block should be used inside of a Weighted-partials block." +#: js/blocks/PitchBlocks.js:212 +#.TRANS: the change measured in half-steps between the current pitch and the previous pitch +msgid "change in pitch" msgstr "" -#: js/ToneBlocks.js:325 -#.TRANS: partials are weighted components in a harmonic series -msgid "weighted partials" +#: js/blocks/PitchBlocks.js:216 +msgid "The Change in pitch block is the difference (in half steps) between the current pitch being played and the previous pitch played." msgstr "" -#: js/ToneBlocks.js:383 -msgid "The Harmonic block will add harmonics to the contained notes." +#: js/blocks/PitchBlocks.js:243 +#.TRANS: the change measured in scale-steps between the current pitch and the previous pitch +msgid "scalar change in pitch" msgstr "" -#: js/ToneBlocks.js:390 -#.TRANS: A harmonic is an overtone. -msgid "harmonic" +#: js/blocks/PitchBlocks.js:250 +#: js/blocks/PitchBlocks.js:432 +#: js/blocks/PitchBlocks.js:1667 +#: js/turtleactions/DictActions.js:89 +#: js/widgets/temperament.js:610 +#: js/widgets/temperament.js:614 +#: js/widgets/temperament.js:855 +#.TRANS: convert current note to piano key (1-88) +#.TRANS: a mapping of pitch to the 88 piano keys +msgid "pitch number" msgstr "" -#: js/ToneBlocks.js:431 -msgid "The Distortion block adds distortion to the pitch." +#: js/blocks/PitchBlocks.js:256 +msgid "The Pitch number block is the value of the pitch of the note currently being played." msgstr "" -#: js/ToneBlocks.js:438 -#: js/timbre.js:2100 -#.TRANS: distortion is an alteration in the sound -msgid "distortion" +#: js/blocks/PitchBlocks.js:329 +#: js/blocks/PitchBlocks.js:433 +#.TRANS: the current pitch expressed in Hertz +msgid "pitch in hertz" msgstr "" -#: js/ToneBlocks.js:487 -msgid "The Tremolo block adds a wavering effect." +#: js/blocks/PitchBlocks.js:334 +msgid "The Pitch in Hertz block is the value in Hertz of the pitch of the note currently being played." msgstr "" -#: js/ToneBlocks.js:495 -#: js/timbre.js:2092 -#.TRANS: a wavering effect in a musical tone -msgid "tremolo" +#: js/blocks/PitchBlocks.js:367 +#: js/turtleactions/DictActions.js:87 +msgid "current pitch" msgstr "" -#: js/ToneBlocks.js:500 -#: js/ToneBlocks.js:569 -#: js/ToneBlocks.js:630 -#: js/ToneBlocks.js:689 -#: js/timbre.js:2134 -#: js/timbre.js:2222 -#: js/timbre.js:2317 -#: js/timbre.js:2419 -#.TRANS: rate at which tremolo wavers -msgid "rate" +#: js/blocks/PitchBlocks.js:373 +msgid "The Current Pitch block is used with the Pitch Converter block. In the example above, current pitch, sol 4, is displayed as 392 hertz." msgstr "" -#: js/ToneBlocks.js:502 -#: js/ToneBlocks.js:630 -#: js/timbre.js:2137 -#: js/timbre.js:2328 -#.TRANS: amplitude of tremolo waver -msgid "depth" +#: js/blocks/PitchBlocks.js:410 +msgid "This block converts the pitch value of the last note played into different formats such as hertz, letter name, pitch number, et al." msgstr "" -#: js/ToneBlocks.js:559 -msgid "The Phaser block adds a sweeping sound." +#: js/blocks/PitchBlocks.js:434 +msgid "alphabet" msgstr "" -#: js/ToneBlocks.js:566 -#: js/timbre.js:2098 -#.TRANS: alter the phase of the sound -msgid "phaser" +#: js/blocks/PitchBlocks.js:436 +#.TRANS: Translate as "alphabet class" +msgid "letter class" msgstr "" -#: js/ToneBlocks.js:569 -#: js/timbre.js:2422 -msgid "octaves" +#: js/blocks/PitchBlocks.js:437 +msgid "solfege class" msgstr "" -#: js/ToneBlocks.js:569 -#: js/timbre.js:2425 -msgid "base frequency" +#: js/blocks/PitchBlocks.js:438 +msgid "staff y" msgstr "" -#: js/ToneBlocks.js:619 -msgid "The Chorus block adds a chorus effect." +#: js/blocks/PitchBlocks.js:439 +msgid "solfege syllable" msgstr "" -#: js/ToneBlocks.js:627 -#: js/timbre.js:2096 -#.TRANS: musical effect to simulate a choral sound -msgid "chorus" +#: js/blocks/PitchBlocks.js:440 +msgid "pitch class" msgstr "" -#: js/ToneBlocks.js:630 -msgid "delay" +#: js/blocks/PitchBlocks.js:441 +msgid "scalar class" msgstr "" -#: js/ToneBlocks.js:678 -msgid "The Vibrato block adds a rapid, slight variation in pitch." +#: js/blocks/PitchBlocks.js:443 +msgid "nth degree" msgstr "" -#: js/ToneBlocks.js:686 -#: js/timbre.js:2094 -#.TRANS: a rapid, slight variation in pitch -msgid "vibrato" +#: js/blocks/PitchBlocks.js:444 +msgid "pitch to shade" msgstr "" -#: js/ToneBlocks.js:689 -#: js/timbre.js:2221 -msgid "intensity" +#: js/blocks/PitchBlocks.js:445 +msgid "pitch to color" msgstr "" -#: js/ToneBlocks.js:733 -#.TRANS: select synthesizer -msgid "set synth" +#: js/blocks/PitchBlocks.js:629 +#: js/widgets/musickeyboard.js:735 +#.TRANS: MIDI is a technical standard for electronic music +msgid "MIDI" msgstr "" -#: js/ToneBlocks.js:804 -msgid "synth name" +#: js/blocks/PitchBlocks.js:642 +#.TRANS: set an offset associated with the numeric piano keyboard mapping +msgid "set pitch number offset" msgstr "" -#: js/ToneBlocks.js:842 -msgid "set default instrument" +#: js/blocks/PitchBlocks.js:645 +msgid "The Set pitch number offset block is used to set the offset for mapping pitch numbers to pitch and octave." msgstr "" -#: js/ToneBlocks.js:895 -#: js/ToneBlocks.js:943 -#.TRANS: set the characteristics of a custom instrument -msgid "set instrument" +#: js/blocks/PitchBlocks.js:679 +#.TRANS: convert piano key number (1-88) to pitch +msgid "number to pitch" msgstr "" -#: js/ToneBlocks.js:898 -#: js/ToneBlocks.js:926 -#: js/ToneBlocks.js:932 -msgid "The Set instrument block selects a voice for the synthesizer," +#: js/blocks/PitchBlocks.js:682 +msgid "The Number to pitch block will convert a pitch number to a pich name." msgstr "" -#: js/ToneBlocks.js:900 -#: js/ToneBlocks.js:934 -msgid "eg guitar piano violin or cello." +#: js/blocks/PitchBlocks.js:715 +#.TRANS: convert piano key number (1-88) to octave +msgid "number to octave" msgstr "" -#: js/ToneBlocks.js:1015 -msgid "Import a sound file to use as an instrument and set its pitch center." +#: js/blocks/PitchBlocks.js:717 +msgid "The Number to octave block will convert a pitch number to an octave." msgstr "" -#: js/ToneBlocks.js:1110 -msgid "Upload a sound file to connect with the sample block." +#: js/blocks/PitchBlocks.js:726 +msgid "y to pitch" msgstr "" -#: js/MeterBlocks.js:34 -#.TRANS: musical meter (time signature), e.g., 4:4 -msgid "current meter" +#: js/blocks/PitchBlocks.js:729 +msgid "Y to pitch block will convert a staff y position to corresponding pitch notation." msgstr "" -#: js/MeterBlocks.js:85 -#.TRANS: number of beats per minute -msgid "beat factor" +#: js/blocks/PitchBlocks.js:841 +msgid "accidental selector" msgstr "" -#: js/MeterBlocks.js:161 -msgid "The Beats per minute block returns the current beats per minute." +#: js/blocks/PitchBlocks.js:844 +msgid "The Accidental selector block is used to choose between double-sharp, sharp, natural, flat, and double-flat." msgstr "" -#: js/MeterBlocks.js:169 -#: js/status.js:152 -#.TRANS: number of beats played per minute -msgid "beats per minute2" +#: js/blocks/PitchBlocks.js:858 +msgid "Pitch can be specified in terms of ni dha pa ma ga re sa." msgstr "" -#: js/MeterBlocks.js:169 -#: js/MeterBlocks.js:1056 -#: js/MeterBlocks.js:1133 -#: js/MeterBlocks.js:1211 -#.TRANS: sets tempo by defining a beat and beats per minute -msgid "beats per minute" +#: js/blocks/PitchBlocks.js:872 +msgid "Pitch can be specified in terms of C D E F G A B." msgstr "" -#: js/MeterBlocks.js:233 -#.TRANS: count of current musical measure in meter -msgid "measure count" +#: js/blocks/PitchBlocks.js:884 +msgid "solfege" msgstr "" -#: js/MeterBlocks.js:241 -msgid "The Measure count block returns the current measure." +#: js/blocks/PitchBlocks.js:887 +msgid "Pitch can be specified in terms of do re mi fa sol la ti." msgstr "" -#: js/MeterBlocks.js:290 -#.TRANS: count of current beat in the meter -msgid "beat count" +#: js/blocks/PitchBlocks.js:922 +msgid "The Invert block rotates any contained notes around a target note." msgstr "" -#: js/MeterBlocks.js:300 -#: js/MeterBlocks.js:311 -#: js/MeterBlocks.js:565 -#: js/MeterBlocks.js:576 -msgid "The Beat count block is the number of the current beat," +#: js/blocks/PitchBlocks.js:929 +#.TRANS: pitch inversion rotates a pitch around another pitch +msgid "invert" msgstr "" -#: js/MeterBlocks.js:313 -#: js/MeterBlocks.js:578 -msgid "eg 1, 2, 3, or 4." +#: js/blocks/PitchBlocks.js:968 +#.TRANS: pitch inversion rotates a pitch around another pitch (odd number) +msgid "invert (odd)" msgstr "" -#: js/MeterBlocks.js:368 -#.TRANS: count the number of notes -msgid "sum note values" +#: js/blocks/PitchBlocks.js:1001 +#.TRANS: pitch inversion rotates a pitch around another pitch (even number) +msgid "invert (even)" msgstr "" -#: js/MeterBlocks.js:376 -#: js/MeterBlocks.js:440 -msgid "The Note counter block can be used to count the number of contained notes." +#: js/blocks/PitchBlocks.js:1022 +#.TRANS: register is the octave of the current pitch +msgid "register" msgstr "" -#: js/MeterBlocks.js:432 -#.TRANS: count the number of notes -msgid "note counter" +#: js/blocks/PitchBlocks.js:1026 +msgid "The Register block provides an easy way to modify the register (octave) of the notes that follow it." msgstr "" -#: js/MeterBlocks.js:496 -#.TRANS: number of whole notes that have been played -msgid "whole notes played" +#: js/blocks/PitchBlocks.js:1047 +#.TRANS: cents are units used to specify the ratio between pitches. There are 100 cents between successive notes. +msgid "50 cents" msgstr "" -#: js/MeterBlocks.js:505 -msgid "The Whole notes played block returns the total number of whole notes played." +#: js/blocks/PitchBlocks.js:1102 +msgid "The Semi-tone transposition block will shift the pitches contained inside Note blocks up (or down) by half steps." msgstr "" -#: js/MeterBlocks.js:555 -#: js/DictActions.js:83 -#.TRANS: number of notes that have been played -msgid "notes played" +#: js/blocks/PitchBlocks.js:1104 +msgid "In the example shown above, sol is shifted up to sol#." msgstr "" -#: js/MeterBlocks.js:653 -msgid "The No clock block decouples the notes from the master clock." +#: js/blocks/PitchBlocks.js:1110 +#.TRANS: adjust the amount of shift (up or down) of a pitch +msgid "semi-tone transpose" msgstr "" -#: js/MeterBlocks.js:661 -#.TRANS: don't lock notes to master clock -msgid "no clock" +#: js/blocks/PitchBlocks.js:1143 +msgid "The Transpose by Ratio block will shift the pitches contained inside Note blocks up (or down) by a ratio" msgstr "" -#: js/MeterBlocks.js:700 -msgid "on weak beat do" +#: js/blocks/PitchBlocks.js:1149 +#.TRANS: adjust the amount of shift (up or down) of a pitch +msgid "transpose by ratio" msgstr "" -#: js/MeterBlocks.js:705 -msgid "The On-weak-beat block lets you specify actions to take on weak (off) beats." +#: js/blocks/PitchBlocks.js:1232 +#.TRANS: down sixth means the note is five scale degrees below current note +msgid "down sixth" msgstr "" -#: js/MeterBlocks.js:750 -msgid "on strong beat" +#: js/blocks/PitchBlocks.js:1251 +#.TRANS: down third means the note is two scale degrees below current note +msgid "down third" msgstr "" -#: js/MeterBlocks.js:758 -msgid "The On-strong-beat block lets you specify actions to take on specified beats." +#: js/blocks/PitchBlocks.js:1270 +#.TRANS: seventh means the note is the six scale degrees above current note +msgid "seventh" msgstr "" -#: js/MeterBlocks.js:769 -msgid "beat" +#: js/blocks/PitchBlocks.js:1289 +#.TRANS: sixth means the note is the five scale degrees above current note +msgid "sixth" msgstr "" -#: js/MeterBlocks.js:813 -msgid "on every beat do" +#: js/blocks/PitchBlocks.js:1308 +#.TRANS: fifth means the note is the four scale degrees above current note +msgid "fifth" msgstr "" -#: js/MeterBlocks.js:821 -msgid "The On-every-beat block lets you specify actions to take on every beat." +#: js/blocks/PitchBlocks.js:1328 +#.TRANS: fourth means the note is three scale degrees above current note +msgid "fourth" msgstr "" -#: js/MeterBlocks.js:874 -msgid "on every note do" +#: js/blocks/PitchBlocks.js:1347 +#.TRANS: third means the note is two scale degrees above current note +msgid "third" msgstr "" -#: js/MeterBlocks.js:882 -msgid "The On-every-note block lets you specify actions to take on every note." +#: js/blocks/PitchBlocks.js:1366 +#.TRANS: second means the note is one scale degree above current note +msgid "second" msgstr "" -#: js/MeterBlocks.js:928 -#: js/MeterBlocks.js:999 -#.TRANS: sets tempo by defining a beat and beats per minute -msgid "master beats per minute" +#: js/blocks/PitchBlocks.js:1407 +msgid "The Scalar transposition block will shift the pitches contained inside Note blocks up (or down) the scale." msgstr "" -#: js/MeterBlocks.js:952 -#: js/MeterBlocks.js:1078 -#: js/MeterBlocks.js:1135 -msgid "bpm" +#: js/blocks/PitchBlocks.js:1409 +msgid "In the example shown above, sol is shifted up to la." msgstr "" -#: js/MeterBlocks.js:952 -#: js/MeterBlocks.js:1078 -#: js/MeterBlocks.js:1135 -msgid "beat value" +#: js/blocks/PitchBlocks.js:1416 +#.TRANS: adjust the amount of shift (up or down) of a pitch by musical scale (scalar) steps +msgid "scalar transpose" msgstr "" -#: js/MeterBlocks.js:1024 -#: js/MeterBlocks.js:1167 -#: js/MeterBlocks.js:1241 -msgid "Beats per minute must be > 30." +#: js/blocks/PitchBlocks.js:1451 +msgid "The Accidental block is used to create sharps and flats" msgstr "" -#: js/MeterBlocks.js:1027 -#: js/MeterBlocks.js:1170 -#: js/MeterBlocks.js:1244 -msgid "Maximum beats per minute is 1000." +#: js/blocks/PitchBlocks.js:1458 +#.TRANS: An accidental is a modification to a pitch, e.g., sharp or flat. +msgid "accidental override" msgstr "" -#: js/MeterBlocks.js:1068 -msgid "The Beats per minute block sets the number of 1/4 notes per minute." +#: js/blocks/PitchBlocks.js:1581 +msgid "The Hertz block (in combination with a Number block) will play a sound at the specified frequency." msgstr "" -#: js/MeterBlocks.js:1279 -#.TRANS: anacrusis -msgid "pickup" +#: js/blocks/PitchBlocks.js:1671 +msgid "The Pitch Number block will play a pitch associated by its number, e.g. 0 for C and 7 for G." msgstr "" -#: js/MeterBlocks.js:1367 -msgid "number of beats" +#: js/blocks/PitchBlocks.js:1703 +#: js/blocks/PitchBlocks.js:1745 +#.TRANS: a numeric mapping of the notes in an octave based on the musical mode +#.TRANS: a numeric mapping of the notes in an octave based on the musical mode +msgid "nth modal pitch" msgstr "" -#: js/DictBlocks.js:77 -msgid "show dictionary" +#: js/blocks/PitchBlocks.js:1706 +msgid "n^th Modal Pitch takes the pattern of pitches in semitones for a mode and makes each point a degree of the mode," msgstr "" -#: js/DictBlocks.js:129 -msgid "The Dictionary block returns a dictionary." +#: js/blocks/PitchBlocks.js:1708 +msgid "starting from 1 and regardless of tonal framework (i.e. not always 8 notes in the octave)" msgstr "" -#: js/DictBlocks.js:197 -#: js/DictBlocks.js:339 -msgid "The Get-dict block returns a value in the dictionary for a specified key." +#: js/blocks/PitchBlocks.js:1749 +msgid "N^th Modal Pitch takes a number as an input as the n^th degree for the given mode. 0 is the first position, 1 is the second, -1 is the note before the first etc." msgstr "" -#: js/DictBlocks.js:212 -#: js/DictBlocks.js:354 -#.TRANS: retrieve a value from the dictionary with a given key -msgid "get value" +#: js/blocks/PitchBlocks.js:1751 +msgid "The pitches change according to the mode specified without any need for respellings." msgstr "" -#: js/DictBlocks.js:215 -#: js/DictBlocks.js:216 -#: js/DictBlocks.js:289 -#: js/DictBlocks.js:290 -#: js/DictBlocks.js:357 -#: js/DictBlocks.js:430 -#: js/DictBlocks.js:431 -msgid "key2" +#: js/blocks/PitchBlocks.js:1790 +msgid "Scale Degree is a common convention in music. Scale Degree offers seven possible positions in the scale (1-7) and can be modified via accidentals." msgstr "" -#: js/DictBlocks.js:271 -#: js/DictBlocks.js:411 -msgid "The Set-dict block sets a value in the dictionary for a specified key." +#: js/blocks/PitchBlocks.js:1792 +msgid "Scale Degree 1 is always the first pitch in a given scale, regardless of octave." msgstr "" -#: js/DictBlocks.js:286 -#: js/DictBlocks.js:427 -#.TRANS: set a value in the dictionary for a given key -msgid "set value" +#: js/blocks/PitchBlocks.js:1814 +#.TRANS: step some number of notes in current musical scale +msgid "scalar step" msgstr "" -#: js/ExtrasBlocks.js:33 -msgid "fraction" +#: js/blocks/PitchBlocks.js:1819 +msgid "The Scalar Step block (in combination with a Number block) will play the next pitch in a scale," msgstr "" -#: js/ExtrasBlocks.js:36 -msgid "Convert a float to a fraction" +#: js/blocks/PitchBlocks.js:1821 +msgid "eg if the last note played was sol, Scalar Step 1 will play la." msgstr "" -#: js/ExtrasBlocks.js:93 -msgid "save as ABC" +#: js/blocks/PitchBlocks.js:1857 +msgid "The Pitch block specifies the pitch name and octave of a note that together determine the frequency of the note." msgstr "" -#: js/ExtrasBlocks.js:96 -#: js/ExtrasBlocks.js:132 -#: js/ExtrasBlocks.js:168 -msgid "title" +#: js/blocks/ProgramBlocks.js:33 +msgid "The Load-heap-from-app block loads the heap from a web page." msgstr "" -#: js/ExtrasBlocks.js:129 -msgid "save as Lilypond" +#: js/blocks/ProgramBlocks.js:44 +#.TRANS: load the heap contents from a URL +msgid "load heap from App" msgstr "" -#: js/ExtrasBlocks.js:165 -msgid "save as SVG" +#: js/blocks/ProgramBlocks.js:95 +msgid "Error parsing JSON data:" msgstr "" -#: js/ExtrasBlocks.js:216 -msgid "no background" +#: js/blocks/ProgramBlocks.js:100 +msgid "404: Page not found" msgstr "" -#: js/ExtrasBlocks.js:219 -msgid "The No background block eliminates the background from the saved SVG output." +#: js/blocks/ProgramBlocks.js:133 +msgid "The Save-heap-to-app block saves the heap to a web page." msgstr "" -#: js/ExtrasBlocks.js:247 -msgid "show blocks" +#: js/blocks/ProgramBlocks.js:144 +#.TRANS: save the heap contents to a URL +msgid "save heap to App" msgstr "" -#: js/ExtrasBlocks.js:249 -msgid "The Show blocks block shows the blocks." +#: js/blocks/ProgramBlocks.js:189 +msgid "Cannot find a valid heap for" msgstr "" -#: js/ExtrasBlocks.js:274 -msgid "hide blocks" +#: js/blocks/ProgramBlocks.js:206 +msgid "The Load-heap block loads the heap from a file." msgstr "" -#: js/ExtrasBlocks.js:276 -msgid "The Hide blocks block hides the blocks." +#: js/blocks/ProgramBlocks.js:217 +#.TRANS: load the heap from a file +msgid "load heap" msgstr "" -#: js/ExtrasBlocks.js:305 -#: js/ExtrasBlocks.js:335 -msgid "The Space block is used to add space between blocks." +#: js/blocks/ProgramBlocks.js:270 +msgid "The file you selected does not contain a valid heap." msgstr "" -#: js/ExtrasBlocks.js:373 -msgid "wait" +#: js/blocks/ProgramBlocks.js:275 +msgid "The loadHeap block needs a loadFile block." msgstr "" -#: js/ExtrasBlocks.js:376 -msgid "The Wait block pauses the program for a specified number of seconds." +#: js/blocks/ProgramBlocks.js:291 +msgid "The Set-heap block loads the heap." msgstr "" -#: js/ExtrasBlocks.js:430 -#: plugins/facebook.rtp:30 -msgid "comment" +#: js/blocks/ProgramBlocks.js:340 +msgid "The block you selected does not contain a valid heap." msgstr "" -#: js/ExtrasBlocks.js:466 -msgid "print" -msgstr "አትም" - -#: js/ExtrasBlocks.js:473 -msgid "The Print block displays text at the top of the screen." +#: js/blocks/ProgramBlocks.js:343 +msgid "The Set heap block needs a heap." msgstr "" -#: js/ExtrasBlocks.js:579 -msgid "display grid" +#: js/blocks/ProgramBlocks.js:360 +msgid "The Load-dictionary block loads a dictionary from a file." msgstr "" -#: js/ExtrasBlocks.js:584 -msgid "The Display Grid Block changes the grid type" +#: js/blocks/ProgramBlocks.js:372 +#.TRANS: load a dictionary from a file +msgid "load dictionary" msgstr "" -#: js/ExtrasBlocks.js:686 -#: js/ExtrasBlocks.js:705 -#: js/ExtrasBlocks.js:728 -#: js/ExtrasBlocks.js:751 -#: js/ExtrasBlocks.js:769 -#: js/ExtrasBlocks.js:788 -#: js/ExtrasBlocks.js:807 -#: js/ExtrasBlocks.js:826 -msgid "unknown" +#: js/blocks/ProgramBlocks.js:390 +#: js/blocks/ProgramBlocks.js:658 +#: js/blocks/ToneBlocks.js:1025 +msgid "file" msgstr "" -#: js/SensorsBlocks.js:36 -msgid "The Input block prompts for keyboard input." +#: js/blocks/ProgramBlocks.js:444 +msgid "The file you selected does not contain a valid dictionary." msgstr "" -#: js/SensorsBlocks.js:46 -msgid "input" +#: js/blocks/ProgramBlocks.js:449 +msgid "The load dictionary block needs a load file block." msgstr "" -#: js/SensorsBlocks.js:64 -msgid "Input a value" +#: js/blocks/ProgramBlocks.js:466 +msgid "The Set-dictionary block loads a dictionary." msgstr "" -#: js/SensorsBlocks.js:126 -msgid "input value" +#: js/blocks/ProgramBlocks.js:477 +#.TRANS: load a dictionary from a JSON +msgid "set dictionary" msgstr "" -#: js/SensorsBlocks.js:131 -msgid "The Input-value block stores the input." +#: js/blocks/ProgramBlocks.js:546 +msgid "The block you selected does not contain a valid dictionary." msgstr "" -#: js/SensorsBlocks.js:238 -msgid "loudness" +#: js/blocks/ProgramBlocks.js:550 +msgid "The set dictionary block needs a dictionary." msgstr "" -#: js/SensorsBlocks.js:245 -msgid "The Loudness block returns the volume detected by the microphone." +#: js/blocks/ProgramBlocks.js:567 +msgid "The Save-heap block saves the heap to a file." msgstr "" -#: js/SensorsBlocks.js:300 -msgid "click" +#: js/blocks/ProgramBlocks.js:578 +#.TRANS: save the heap to a file +msgid "save heap" msgstr "" -#: js/SensorsBlocks.js:306 -msgid "The Click block triggers an event if a mouse has been clicked." +#: js/blocks/ProgramBlocks.js:629 +msgid "The Save-dictionary block saves a dictionary to a file." msgstr "" -#: js/SensorsBlocks.js:313 -msgid "The Click block triggers an event if a turtle has been clicked." +#: js/blocks/ProgramBlocks.js:640 +#.TRANS: save a dictionary to a file +msgid "save dictionary" msgstr "" -#: js/SensorsBlocks.js:342 -msgid "cursor over" +#: js/blocks/ProgramBlocks.js:720 +msgid "The Open palette block opens a palette." msgstr "" -#: js/SensorsBlocks.js:387 -msgid "cursor out" +#: js/blocks/ProgramBlocks.js:727 +msgid "open palette" msgstr "" -#: js/SensorsBlocks.js:433 -msgid "cursor button down" +#: js/blocks/ProgramBlocks.js:785 +msgid "The Delete block block removes a block." msgstr "" -#: js/SensorsBlocks.js:477 -msgid "cursor button up" +#: js/blocks/ProgramBlocks.js:797 +#.TRANS: Move this block to the trash. +msgid "delete block" msgstr "" -#: js/SensorsBlocks.js:638 -msgid "The Get red block returns the red component of the pixel under the mouse." +#: js/blocks/ProgramBlocks.js:861 +msgid "The Move block block moves a block." msgstr "" -#: js/SensorsBlocks.js:644 -msgid "The Get red block returns the red component of the pixel under the turtle." +#: js/blocks/ProgramBlocks.js:869 +#.TRANS: Move the position of a block on the screen. +msgid "move block" msgstr "" -#: js/SensorsBlocks.js:685 -#: plugins/rodi.rtp:216 -msgid "pixel color" +#: js/blocks/ProgramBlocks.js:881 +#: js/blocks/ProgramBlocks.js:1048 +msgid "block number" msgstr "" -#: js/SensorsBlocks.js:690 -msgid "The Get pixel block returns the color of the pixel under the mouse." +#: js/blocks/ProgramBlocks.js:935 +#.TRANS: Run program beginning at this block. +msgid "run block" msgstr "" -#: js/SensorsBlocks.js:696 -msgid "The Get pixel block returns the color of the pixel under the turtle." +#: js/blocks/ProgramBlocks.js:1025 +msgid "The Dock block block connections two blocks." msgstr "" -#: js/SensorsBlocks.js:758 -msgid "time" +#: js/blocks/ProgramBlocks.js:1036 +#.TRANS: We can connect a block to another block. +msgid "connect blocks" msgstr "" -#: js/SensorsBlocks.js:804 -msgid "cursor y" +#: js/blocks/ProgramBlocks.js:1048 +msgid "target block" msgstr "" -#: js/SensorsBlocks.js:809 -msgid "The Cursor Y block returns the vertical position of the mouse." +#: js/blocks/ProgramBlocks.js:1048 +msgid "connection number" msgstr "" -#: js/SensorsBlocks.js:845 -msgid "cursor x" +#: js/blocks/ProgramBlocks.js:1140 +msgid "The Make block block creates a new block." msgstr "" -#: js/SensorsBlocks.js:850 -msgid "The Cursor X block returns the horizontal position of the mouse." +#: js/blocks/ProgramBlocks.js:1152 +#.TRANS: Create a new block +msgid "make block" msgstr "" -#: js/SensorsBlocks.js:886 -msgid "mouse button" +#: js/blocks/ProgramBlocks.js:1285 +msgid "Cannot find block" msgstr "" -#: js/SensorsBlocks.js:888 -msgid "The Mouse-button block returns True if the mouse button is pressed." +#: js/blocks/ProgramBlocks.js:1304 +#: js/blocks/ProgramBlocks.js:1313 +msgid "Warning: block argument type mismatch" msgstr "" -#: js/SensorsBlocks.js:934 -msgid "to ASCII" +#: js/blocks/ProgramBlocks.js:1347 +msgid "The Open project block is used to open a project from a web page." msgstr "" -#: js/SensorsBlocks.js:938 -msgid "The To ASCII block converts numbers to letters." +#: js/blocks/ProgramBlocks.js:1357 +msgid "open project" msgstr "" -#: js/SensorsBlocks.js:1005 -msgid "The Keyboard block returns computer keyboard input." +#: js/blocks/ProgramBlocks.js:1410 +msgid "Please enter a valid URL." msgstr "" -#: js/IntervalsActions.js:216 -msgid "Adding missing pitch number 0." +#: js/blocks/ToneBlocks.js:34 +msgid "oscillator" msgstr "" -#: js/IntervalsActions.js:224 -msgid "Ignoring pitch numbers less than zero or greater than eleven." +#: js/blocks/ToneBlocks.js:42 +#: js/blocks/WidgetBlocks.js:179 +#: js/widgets/timbre.js:1558 +#: js/widgets/timbre.js:1808 +#.TRANS: there are different types (sine, triangle, square...) of oscillators. +#.TRANS: type of filter, e.g., lowpass, highpass, etc. +msgid "type" msgstr "" -#: js/IntervalsActions.js:230 -msgid "Ignoring duplicate pitch numbers." +#: js/blocks/ToneBlocks.js:44 +#: js/widgets/timbre.js:1562 +#.TRANS: Partials refers to the number of sine waves combined into the sound. +msgid "partials" msgstr "" -#: js/PitchActions.js:88 -msgid "The Scalar Step Block must be used inside of a Note Block." +#: js/blocks/ToneBlocks.js:76 +msgid "You are adding multiple oscillator blocks." msgstr "" -#: js/PitchActions.js:107 -msgid "The Scalar Step Block must be preceded by a Pitch Block." +#: js/blocks/ToneBlocks.js:144 +#: js/widgets/timbre.js:1225 +#.TRANS: a duo synthesizer combines a synth with a sequencer +msgid "duo synth" msgstr "" -#: js/DrumActions.js:231 -msgid "Noise Block: Did you mean to use a Note block?" +#: js/blocks/ToneBlocks.js:149 +msgid "The Duo synth block is a duo-frequency modulator used to define a timbre." msgstr "" -#: js/MeterActions.js:101 -#: js/MeterActions.js:139 -msgid "beats per minute must be greater than" +#: js/blocks/ToneBlocks.js:157 +#: js/widgets/timbre.js:1476 +msgid "vibrato rate" msgstr "" -#: js/MeterActions.js:111 -#: js/MeterActions.js:149 -msgid "maximum" +#: js/blocks/ToneBlocks.js:157 +msgid "vibrato intensity" msgstr "" -#: js/MeterActions.js:117 -#: js/MeterActions.js:155 -msgid "beats per minute is" +#: js/blocks/ToneBlocks.js:185 +#: js/widgets/timbre.js:1221 +#.TRANS: AM (amplitude modulation) synthesizer +msgid "AM synth" msgstr "" -#: js/ToneActions.js:134 -msgid "Vibrato intensity must be between 1 and 100." +#: js/blocks/ToneBlocks.js:189 +msgid "The AM synth block is an amplitude modulator used to define a timbre." msgstr "" -#: js/ToneActions.js:139 -msgid "Vibrato rate must be greater than 0." +#: js/blocks/ToneBlocks.js:224 +#: js/widgets/timbre.js:1223 +#.TRANS: FM (frequency modulation) synthesizer +msgid "FM synth" msgstr "" -#: js/ToneActions.js:192 -#: js/ToneActions.js:265 -#.TRANS: Depth is the intesity of the tremolo or chorus effect. -msgid "Depth is out of range." +#: js/blocks/ToneBlocks.js:228 +msgid "The FM synth block is a frequency modulator used to define a timbre." msgstr "" -#: js/ToneActions.js:301 -msgid "Distortion must be from 0 to 100." +#: js/blocks/ToneBlocks.js:262 +msgid "partial" msgstr "" -#: js/ToneActions.js:332 -#.TRANS: partials components in a harmonic series -msgid "Partial must be greater than or equal to 0." +#: js/blocks/ToneBlocks.js:265 +msgid "The Partial block is used to specify a weight for a specific partial harmonic." msgstr "" -#: js/ToneActions.js:378 -#: js/ToneActions.js:417 -#: js/ToneActions.js:456 -#: js/timbre.js:782 -msgid "Unable to use synth due to existing oscillator" +#: js/blocks/ToneBlocks.js:284 +#.TRANS: partials are weighted components in a harmonic series +msgid "Partial weight must be between 0 and 1." msgstr "" -#: js/ToneActions.js:388 -#: js/ToneActions.js:427 -msgid "The input cannot be negative." +#: js/blocks/ToneBlocks.js:297 +#.TRANS: partials are weighted components in a harmonic series +msgid "Partial block should be used inside of a Weighted-partials block." msgstr "" -#: js/DictActions.js:75 -#: js/DictActions.js:153 -#: js/DictActions.js:188 -msgid "font" +#: js/blocks/ToneBlocks.js:325 +#.TRANS: partials are weighted components in a harmonic series +msgid "weighted partials" msgstr "" -#: js/musicutils.js:363 -#: js/musicutils.js:471 -#: js/pitchdrummatrix.js:151 -#: js/musickeyboard.js:2563 -msgid "rest" +#: js/blocks/ToneBlocks.js:383 +msgid "The Harmonic block will add harmonics to the contained notes." msgstr "" -#: js/musicutils.js:565 -#.TRANS: ordinal number. Please keep exactly one space between each number. -msgid "1st 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th" +#: js/blocks/ToneBlocks.js:390 +#.TRANS: A harmonic is an overtone. +msgid "harmonic" msgstr "" -#: js/musicutils.js:629 -#: js/musicutils.js:812 -#: js/musicutils.js:911 -#.TRANS: augmented is a music term related to intervals -msgid "augmented" +#: js/blocks/ToneBlocks.js:431 +msgid "The Distortion block adds distortion to the pitch." msgstr "" -#: js/musicutils.js:631 -#: js/musicutils.js:813 -#: js/musicutils.js:910 -#.TRANS: diminished is a music term related to intervals and mode -msgid "diminished" +#: js/blocks/ToneBlocks.js:438 +#: js/widgets/timbre.js:2100 +#.TRANS: distortion is an alteration in the sound +msgid "distortion" msgstr "" -#: js/musicutils.js:639 -#.TRANS: twelve semi-tone scale for music -msgid "chromatic" +#: js/blocks/ToneBlocks.js:487 +msgid "The Tremolo block adds a wavering effect." msgstr "" -#: js/musicutils.js:640 -msgid "algerian" +#: js/blocks/ToneBlocks.js:495 +#: js/widgets/timbre.js:2092 +#.TRANS: a wavering effect in a musical tone +msgid "tremolo" msgstr "" -#: js/musicutils.js:641 -msgid "spanish" +#: js/blocks/ToneBlocks.js:500 +#: js/blocks/ToneBlocks.js:569 +#: js/blocks/ToneBlocks.js:630 +#: js/blocks/ToneBlocks.js:689 +#: js/widgets/timbre.js:2134 +#: js/widgets/timbre.js:2222 +#: js/widgets/timbre.js:2317 +#: js/widgets/timbre.js:2419 +#.TRANS: rate at which tremolo wavers +msgid "rate" msgstr "" -#: js/musicutils.js:643 -#.TRANS: modal scale in music -msgid "octatonic" +#: js/blocks/ToneBlocks.js:502 +#: js/blocks/ToneBlocks.js:630 +#: js/widgets/timbre.js:2137 +#: js/widgets/timbre.js:2328 +#.TRANS: amplitude of tremolo waver +msgid "depth" msgstr "" -#: js/musicutils.js:645 -#.TRANS: harmonic major scale in music -msgid "harmonic major" +#: js/blocks/ToneBlocks.js:559 +msgid "The Phaser block adds a sweeping sound." msgstr "" -#: js/musicutils.js:647 -#.TRANS: natural minor scales in music -msgid "natural minor" +#: js/blocks/ToneBlocks.js:566 +#: js/widgets/timbre.js:2098 +#.TRANS: alter the phase of the sound +msgid "phaser" msgstr "" -#: js/musicutils.js:649 -#.TRANS: harmonic minor scale in music -msgid "harmonic minor" +#: js/blocks/ToneBlocks.js:569 +#: js/turtleactions/IntervalsActions.js:114 +#: js/widgets/timbre.js:2422 +msgid "octaves" msgstr "" -#: js/musicutils.js:651 -#.TRANS: melodic minor scale in music -msgid "melodic minor" +#: js/blocks/ToneBlocks.js:569 +#: js/widgets/timbre.js:2425 +msgid "base frequency" msgstr "" -#: js/musicutils.js:655 -#.TRANS: modal scale for music -msgid "dorian" +#: js/blocks/ToneBlocks.js:619 +msgid "The Chorus block adds a chorus effect." msgstr "" -#: js/musicutils.js:657 -#.TRANS: modal scale for music -msgid "phrygian" +#: js/blocks/ToneBlocks.js:627 +#: js/widgets/timbre.js:2096 +#.TRANS: musical effect to simulate a choral sound +msgid "chorus" msgstr "" -#: js/musicutils.js:659 -#.TRANS: modal scale for music -msgid "lydian" +#: js/blocks/ToneBlocks.js:630 +msgid "delay" msgstr "" -#: js/musicutils.js:661 -#.TRANS: modal scale for music -msgid "mixolydian" +#: js/blocks/ToneBlocks.js:678 +msgid "The Vibrato block adds a rapid, slight variation in pitch." msgstr "" -#: js/musicutils.js:665 -#.TRANS: modal scale for music -msgid "locrian" +#: js/blocks/ToneBlocks.js:686 +#: js/widgets/timbre.js:2094 +#.TRANS: a rapid, slight variation in pitch +msgid "vibrato" msgstr "" -#: js/musicutils.js:667 -#.TRANS: minor jazz scale for music -msgid "jazz minor" +#: js/blocks/ToneBlocks.js:689 +#: js/widgets/timbre.js:2221 +msgid "intensity" msgstr "" -#: js/musicutils.js:669 -#.TRANS: bebop scale for music -msgid "bebop" +#: js/blocks/ToneBlocks.js:733 +#.TRANS: select synthesizer +msgid "set synth" msgstr "" -#: js/musicutils.js:670 -msgid "arabic" +#: js/blocks/ToneBlocks.js:804 +msgid "synth name" msgstr "" -#: js/musicutils.js:671 -msgid "byzantine" +#: js/blocks/ToneBlocks.js:842 +msgid "set default instrument" msgstr "" -#: js/musicutils.js:673 -#.TRANS: musical scale for music by Verdi -msgid "enigmatic" +#: js/blocks/ToneBlocks.js:895 +#: js/blocks/ToneBlocks.js:943 +#.TRANS: set the characteristics of a custom instrument +msgid "set instrument" msgstr "" -#: js/musicutils.js:674 -msgid "ethiopian" +#: js/blocks/ToneBlocks.js:898 +#: js/blocks/ToneBlocks.js:926 +#: js/blocks/ToneBlocks.js:932 +msgid "The Set instrument block selects a voice for the synthesizer," msgstr "" -#: js/musicutils.js:676 -#.TRANS: Ethiopic scale for music -msgid "geez" +#: js/blocks/ToneBlocks.js:900 +#: js/blocks/ToneBlocks.js:934 +msgid "eg guitar piano violin or cello." msgstr "" -#: js/musicutils.js:677 -msgid "hindu" +#: js/blocks/ToneBlocks.js:1015 +msgid "Import a sound file to use as an instrument and set its pitch center." msgstr "" -#: js/musicutils.js:678 -msgid "hungarian" +#: js/blocks/ToneBlocks.js:1110 +msgid "Upload a sound file to connect with the sample block." msgstr "" -#: js/musicutils.js:680 -#.TRANS: minor Romanian scale for music -msgid "romanian minor" +#: js/blocks/VolumeBlocks.js:35 +msgid "synth volume" msgstr "" -#: js/musicutils.js:681 -msgid "spanish gypsy" +#: js/blocks/VolumeBlocks.js:39 +msgid "The Synth volume block returns the current volume of the current synthesizer." msgstr "" -#: js/musicutils.js:683 -#.TRANS: musical scale for Mid-Eastern music -msgid "maqam" +#: js/blocks/VolumeBlocks.js:105 +msgid "master volume" msgstr "" -#: js/musicutils.js:685 -#.TRANS: minor blues scale for music -msgid "minor blues" +#: js/blocks/VolumeBlocks.js:109 +msgid "The Master volume block returns the master volume." msgstr "" -#: js/musicutils.js:687 -#.TRANS: major blues scale for music -msgid "major blues" +#: js/blocks/VolumeBlocks.js:355 +#: js/blocks/VolumeBlocks.js:524 +msgid "set synth volume" msgstr "" -#: js/musicutils.js:688 -msgid "whole tone" +#: js/blocks/VolumeBlocks.js:362 +#: js/blocks/VolumeBlocks.js:545 +msgid "synth" msgstr "" -#: js/musicutils.js:690 -#.TRANS: pentatonic is a general term that means "five note scale". This scale is typically known as "minor pentatonic" -msgid "minor pentatonic" +#: js/blocks/VolumeBlocks.js:403 +#: js/blocks/VolumeBlocks.js:577 +#: js/blocks/VolumeBlocks.js:740 +#: js/turtleactions/VolumeActions.js:173 +msgid "Setting volume to 0." msgstr "" -#: js/musicutils.js:692 -#.TRANS: pentatonic is a general term that means "five note scale". This scale is typically known as "major pentatonic" -msgid "major pentatonic" +#: js/blocks/VolumeBlocks.js:440 +msgid "Synth not found" msgstr "" -#: js/musicutils.js:693 -msgid "chinese" +#: js/blocks/VolumeBlocks.js:494 +msgid "set drum volume" msgstr "" -#: js/musicutils.js:694 -msgid "egyptian" +#: js/blocks/VolumeBlocks.js:530 +msgid "The Set synth volume block will change the volume of a particular synth," msgstr "" -#: js/musicutils.js:696 -#.TRANS: https://en.wikipedia.org/wiki/Hirajoshi_scale NOTE: There are three different versions of this scale -msgid "hirajoshi" +#: js/blocks/VolumeBlocks.js:532 +msgid "eg guitar violin snare drum etc." msgstr "" -#: js/musicutils.js:697 -msgid "Japan" +#: js/blocks/VolumeBlocks.js:534 +msgid "The default volume is 50." msgstr "" -#: js/musicutils.js:699 -#.TRANS: https://en.wikipedia.org/wiki/In_scale and https://en.wikipedia.org/wiki/Sakura_Sakura -msgid "in" +#: js/blocks/VolumeBlocks.js:536 +msgid "The range is 0 for silence to 100 for full volume." msgstr "" -#: js/musicutils.js:701 -#.TRANS: https://en.wikipedia.org/wiki/Miny%C5%8D_scale -msgid "minyo" +#: js/blocks/VolumeBlocks.js:597 +msgid "set panning" msgstr "" -#: js/musicutils.js:703 -#.TRANS: Italian mathematician -msgid "fibonacci" +#: js/blocks/VolumeBlocks.js:603 +msgid "The Set Panning block sets the panning for all synthesizers." msgstr "" -#: js/musicutils.js:708 -#: js/musicutils.js:1106 -#.TRANS: lowpass filter -msgid "lowpass" +#: js/blocks/VolumeBlocks.js:625 +msgid "Warning: Sound is coming out from only the left or right side." msgstr "" -#: js/musicutils.js:710 -#: js/musicutils.js:1107 -#.TRANS: bandpass filter -msgid "bandpass" +#: js/blocks/VolumeBlocks.js:647 +#: js/blocks/VolumeBlocks.js:695 +msgid "set master volume" msgstr "" -#: js/musicutils.js:712 -#: js/musicutils.js:1108 -#.TRANS: high-shelf filter -msgid "highshelf" +#: js/blocks/VolumeBlocks.js:653 +msgid "The Set master volume block sets the volume for all synthesizers." msgstr "" -#: js/musicutils.js:714 -#: js/musicutils.js:1109 -#.TRANS: low-shelf filter -msgid "lowshelf" +#: js/blocks/VolumeBlocks.js:784 +msgid "The Set relative volume block changes the volume of the contained notes." msgstr "" -#: js/musicutils.js:716 -#: js/musicutils.js:1110 -#.TRANS: notch-shelf filter -msgid "notch" +#: js/blocks/VolumeBlocks.js:791 +msgid "set relative volume" msgstr "" -#: js/musicutils.js:718 -#: js/musicutils.js:1111 -#.TRANS: all-pass filter -msgid "allpass" +#: js/blocks/VolumeBlocks.js:857 +msgid "decrescendo" msgstr "" -#: js/musicutils.js:720 -#: js/musicutils.js:1112 -#.TRANS: peaking filter -msgid "peaking" +#: js/blocks/VolumeBlocks.js:921 +msgid "crescendo" msgstr "" -#: js/musicutils.js:731 -#: js/synthutils.js:58 -#.TRANS: musical instrument -msgid "violin" +#: js/blocks/WidgetBlocks.js:81 +#.TRANS: sound envelope (ADSR) +msgid "envelope" msgstr "" -#: js/musicutils.js:732 -#: js/synthutils.js:60 -#.TRANS: viola musical instrument -msgid "viola" +#: js/blocks/WidgetBlocks.js:89 +#.TRANS: Attack time is the time taken for initial run-up of level from nil to peak, beginning when the key is first pressed. +msgid "attack" msgstr "" -#: js/musicutils.js:733 -#: js/synthutils.js:98 -#.TRANS: xylophone musical instrument -msgid "xylophone" +#: js/blocks/WidgetBlocks.js:91 +#.TRANS: Decay time is the time taken for the subsequent run down from the attack level to the designated sustain level. +msgid "decay" msgstr "" -#: js/musicutils.js:734 -#: js/synthutils.js:120 -#.TRANS: vibraphone musical instrument -msgid "vibraphone" +#: js/blocks/WidgetBlocks.js:93 +#.TRANS: Sustain level is the level during the main sequence of the sound's duration, until the key is released. +msgid "sustain" msgstr "" -#: js/musicutils.js:735 -#: js/synthutils.js:62 -#.TRANS: musical instrument -msgid "cello" +#: js/blocks/WidgetBlocks.js:95 +#.TRANS: Release time is the time taken for the level to decay from the sustain level to zero after the key is released. +msgid "release" msgstr "" -#: js/musicutils.js:737 -#: js/synthutils.js:66 -#.TRANS: viola musical instrument -msgid "double bass" +#: js/blocks/WidgetBlocks.js:113 +msgid "Attack value should be from 0 to 100." msgstr "" -#: js/musicutils.js:738 -#: js/synthutils.js:68 -#: js/rhythmruler.js:2119 -#.TRANS: musical instrument -msgid "guitar" +#: js/blocks/WidgetBlocks.js:116 +msgid "Decay value should be from 0 to 100." msgstr "" -#: js/musicutils.js:739 -#: js/synthutils.js:70 -#.TRANS: musical instrument -msgid "acoustic guitar" +#: js/blocks/WidgetBlocks.js:119 +msgid "Sustain value should be from 0 to 100." msgstr "" -#: js/musicutils.js:740 -#: js/synthutils.js:72 -#.TRANS: musical instrument -msgid "flute" +#: js/blocks/WidgetBlocks.js:122 +msgid "Release value should be from 0-100." msgstr "" -#: js/musicutils.js:741 -#: js/synthutils.js:74 -#.TRANS: musical instrument -msgid "clarinet" +#: js/blocks/WidgetBlocks.js:140 +msgid "You are adding multiple envelope blocks." msgstr "" -#: js/musicutils.js:742 -#: js/synthutils.js:76 -#.TRANS: musical instrument -msgid "saxophone" +#: js/blocks/WidgetBlocks.js:171 +#.TRANS: a filter removes some unwanted components from a signal +msgid "filter" msgstr "" -#: js/musicutils.js:743 -#: js/synthutils.js:78 -#.TRANS: musical instrument -msgid "tuba" +#: js/blocks/WidgetBlocks.js:181 +#: js/widgets/timbre.js:1818 +#.TRANS: rolloff is the steepness of a change in frequency. +msgid "rolloff" msgstr "" -#: js/musicutils.js:744 -#: js/synthutils.js:80 -#.TRANS: musical instrument -msgid "trumpet" +#: js/blocks/WidgetBlocks.js:213 +#.TRANS: rolloff is the steepness of a change in frequency. +msgid "Rolloff value should be either -12, -24, -48, or -96 decibels/octave." msgstr "" -#: js/musicutils.js:745 -#: js/synthutils.js:82 -#.TRANS: musical instrument -msgid "oboe" +#: js/blocks/WidgetBlocks.js:252 +msgid "The Temperament tool is used to define custom tuning." msgstr "" -#: js/musicutils.js:746 -#: js/synthutils.js:84 -#.TRANS: musical instrument -msgid "trombone" +#: js/blocks/WidgetBlocks.js:332 +#: js/blocks/WidgetBlocks.js:1573 +#: js/widgets/sampler.js:547 +msgid "Upload a sample and adjust its pitch center." msgstr "" -#: js/musicutils.js:747 -#: js/synthutils.js:100 -#.TRANS: polytone synthesizer -msgid "electronic synth" +#: js/blocks/WidgetBlocks.js:339 +#.TRANS: the speed at music is should be played. +msgid "sampler" msgstr "" -#: js/musicutils.js:748 -#: js/synthutils.js:102 -#.TRANS: simple monotone synthesizer -msgid "simple 1" +#: js/blocks/WidgetBlocks.js:517 +msgid "The Meter block opens a tool to select strong beats for the meter." msgstr "" -#: js/musicutils.js:749 -msgid "simple 2" +#: js/blocks/WidgetBlocks.js:573 +msgid "The oscilloscope block opens a tool to visualize waveforms." msgstr "" -#: js/musicutils.js:750 -msgid "simple 3" +#: js/blocks/WidgetBlocks.js:578 +msgid "oscilloscope" msgstr "" -#: js/musicutils.js:751 -msgid "simple 4" +#: js/blocks/WidgetBlocks.js:645 +msgid "The Custom mode block opens a tool to explore musical mode (the spacing of the notes in a scale)." msgstr "" -#: js/musicutils.js:753 -#: js/synthutils.js:49 -#.TRANS: brown noise synthesizer -msgid "brown noise" +#: js/blocks/WidgetBlocks.js:651 +#.TRANS: musical mode is the pattern of half-steps in an octave, e.g., Major or Minor modes +msgid "custom mode" msgstr "" -#: js/musicutils.js:754 -#: js/synthutils.js:51 -#.TRANS: pink noise synthesizer -msgid "pink noise" +#: js/blocks/WidgetBlocks.js:700 +msgid "The Tempo block opens a metronome to visualize the beat." msgstr "" -#: js/musicutils.js:756 -#: js/synthutils.js:127 -#: js/rhythmruler.js:1670 -#: js/rhythmruler.js:1928 -#.TRANS: musical instrument -msgid "snare drum" +#: js/blocks/WidgetBlocks.js:762 +msgid "The Arpeggio Widget is used to compose chord sequences." msgstr "" -#: js/musicutils.js:757 -#: js/synthutils.js:129 -#.TRANS: musical instrument -msgid "kick drum" +#: js/blocks/WidgetBlocks.js:837 +msgid "The Pitch drum matrix is used to map pitches to drum sounds." msgstr "" -#: js/musicutils.js:758 -#: js/synthutils.js:131 -#.TRANS: musical instrument -msgid "tom tom" +#: js/blocks/WidgetBlocks.js:842 +#.TRANS: makes a mapping between pitches and drum sounds +msgid "pitch-drum mapper" msgstr "" -#: js/musicutils.js:759 -#: js/synthutils.js:133 -#.TRANS: musical instrument -msgid "floor tom" +#: js/blocks/WidgetBlocks.js:891 +msgid "You must have at least one pitch block and one drum block in the matrix." msgstr "" -#: js/musicutils.js:760 -#: js/synthutils.js:135 -#.TRANS: musical instrument -msgid "bass drum" +#: js/blocks/WidgetBlocks.js:920 +msgid "The Pitch slider tool to is used to generate pitches at selected frequencies." msgstr "" -#: js/musicutils.js:761 -#: js/synthutils.js:137 -#.TRANS: a drum made from an inverted cup -msgid "cup drum" +#: js/blocks/WidgetBlocks.js:925 +#.TRANS: widget to generate pitches using a slider +msgid "pitch slider" msgstr "" -#: js/musicutils.js:762 -#: js/synthutils.js:139 -#.TRANS: musical instrument -msgid "darbuka drum" +#: js/blocks/WidgetBlocks.js:977 +msgid "chromatic keyboard" msgstr "" -#: js/musicutils.js:763 -#: js/synthutils.js:143 -#.TRANS: musical instrument -msgid "hi hat" +#: js/blocks/WidgetBlocks.js:1011 +#: js/blocks/WidgetBlocks.js:1077 +#.TRANS: widget to generate pitches using a slider +msgid "music keyboard" msgstr "" -#: js/musicutils.js:764 -#: js/synthutils.js:145 -#.TRANS: a small metal bell -msgid "ride bell" +#: js/blocks/WidgetBlocks.js:1062 +#: js/blocks/WidgetBlocks.js:1069 +msgid "The Music keyboard block opens a piano keyboard that can be used to create notes." msgstr "" -#: js/musicutils.js:765 -#: js/synthutils.js:147 -#.TRANS: musical instrument -msgid "cow bell" +#: js/blocks/WidgetBlocks.js:1128 +msgid "The Pitch staircase tool to is used to generate pitches from a given ratio." msgstr "" -#: js/musicutils.js:766 -msgid "japanese drum" +#: js/blocks/WidgetBlocks.js:1135 +#.TRANS: generate a progressive sequence of pitches +msgid "pitch staircase" msgstr "" -#: js/musicutils.js:767 -#: js/synthutils.js:153 -#.TRANS: musical instrument -msgid "japanese bell" +#: js/blocks/WidgetBlocks.js:1222 +msgid "The Rhythm Maker block opens a tool to create drum machines." msgstr "" -#: js/musicutils.js:768 -#: js/synthutils.js:149 -#.TRANS: musical instrument -msgid "triangle bell" +#: js/blocks/WidgetBlocks.js:1291 +msgid "G major scale" msgstr "" -#: js/musicutils.js:769 -#: js/synthutils.js:151 -#.TRANS: musical instrument -msgid "finger cymbals" +#: js/blocks/WidgetBlocks.js:1326 +msgid "C major scale" msgstr "" -#: js/musicutils.js:770 -#: js/synthutils.js:155 -#.TRANS: a musically tuned set of bells -msgid "chime" +#: js/blocks/WidgetBlocks.js:1366 +msgid "The Phrase Maker block opens a tool to create musical phrases." msgstr "" -#: js/musicutils.js:771 -#: js/synthutils.js:157 -#.TRANS: a musical instrument -msgid "gong" +#: js/blocks/WidgetBlocks.js:1373 +#.TRANS: assigns pitch to a sequence of beats to generate a melody +msgid "phrase maker" msgstr "" -#: js/musicutils.js:772 -#: js/synthutils.js:159 -#.TRANS: sound effect -msgid "clang" +#: js/blocks/WidgetBlocks.js:1444 +msgid "You must have at least one pitch block and one rhythm block in the matrix." msgstr "" -#: js/musicutils.js:773 -#: js/synthutils.js:161 -#.TRANS: sound effect -msgid "crash" +#: js/blocks/WidgetBlocks.js:1503 +msgid "The Status block opens a tool for inspecting the status of Music Blocks as it is running." msgstr "" -#: js/musicutils.js:774 -#: js/synthutils.js:163 -#.TRANS: sound effect -msgid "bottle" +#: js/blocks/WidgetBlocks.js:1580 +#.TRANS: AI-generated music +msgid "aimusic" msgstr "" -#: js/musicutils.js:775 -#: js/synthutils.js:165 -#.TRANS: sound effect -msgid "clap" +#: js/turtleactions/MeterActions.js:101 +#: js/turtleactions/MeterActions.js:139 +msgid "beats per minute must be greater than" msgstr "" -#: js/musicutils.js:776 -#: js/synthutils.js:167 -#.TRANS: sound effect -msgid "slap" +#: js/turtleactions/MeterActions.js:111 +#: js/turtleactions/MeterActions.js:149 +msgid "maximum" msgstr "" -#: js/musicutils.js:777 -#: js/synthutils.js:169 -#.TRANS: sound effect -msgid "splash" +#: js/turtleactions/MeterActions.js:117 +#: js/turtleactions/MeterActions.js:155 +msgid "beats per minute is" msgstr "" -#: js/musicutils.js:778 -#: js/synthutils.js:171 -#.TRANS: sound effect -msgid "bubbles" +#: js/turtleactions/DictActions.js:75 +#: js/turtleactions/DictActions.js:142 +#: js/turtleactions/DictActions.js:172 +msgid "font" msgstr "" -#: js/musicutils.js:779 -#: js/synthutils.js:173 -#.TRANS: sound effect -msgid "raindrop" +#: js/turtleactions/DictActions.js:255 +msgid "Dictionary with this name does not exist" msgstr "" -#: js/musicutils.js:780 -#: js/synthutils.js:175 -#.TRANS: animal sound effect -msgid "cat" +#: js/turtleactions/DictActions.js:259 +msgid "Key with this name does not exist in " msgstr "" -#: js/musicutils.js:781 -#: js/synthutils.js:177 -#.TRANS: animal sound effect -msgid "cricket" +#: js/turtleactions/DrumActions.js:227 +msgid "Noise Block: Did you mean to use a Note block?" msgstr "" -#: js/musicutils.js:782 -#: js/synthutils.js:179 -#.TRANS: animal sound effect -msgid "dog" +#: js/turtleactions/IntervalsActions.js:113 +msgid "one" msgstr "" -#: js/musicutils.js:784 -#: js/synthutils.js:86 -#.TRANS: musical instrument -msgid "banjo" +#: js/turtleactions/IntervalsActions.js:113 +msgid "two" msgstr "" -#: js/musicutils.js:785 -#: js/synthutils.js:88 -#.TRANS: musical instrument -msgid "koto" +#: js/turtleactions/IntervalsActions.js:113 +msgid "three" msgstr "" -#: js/musicutils.js:786 -#: js/synthutils.js:90 -#.TRANS: musical instrument -msgid "dulcimer" +#: js/turtleactions/IntervalsActions.js:113 +msgid "four" msgstr "" -#: js/musicutils.js:787 -#: js/synthutils.js:92 -#.TRANS: musical instrument -msgid "electric guitar" +#: js/turtleactions/IntervalsActions.js:113 +msgid "five" msgstr "" -#: js/musicutils.js:788 -#: js/synthutils.js:94 -#.TRANS: musical instrument -msgid "bassoon" +#: js/turtleactions/IntervalsActions.js:113 +msgid "six" msgstr "" -#: js/musicutils.js:789 -#: js/synthutils.js:96 -#.TRANS: musical instrument -msgid "celeste" +#: js/turtleactions/IntervalsActions.js:113 +msgid "seven" msgstr "" -#: js/musicutils.js:791 -#: js/musicutils.js:1123 -#: js/musicutils.js:1131 -#: js/temperament.js:650 -#.TRANS: musical temperament -msgid "equal" +#: js/turtleactions/IntervalsActions.js:113 +msgid "eight" msgstr "" -#: js/musicutils.js:793 -#: js/musicutils.js:1125 -#: js/musicutils.js:1133 -#.TRANS: musical temperament -msgid "Pythagorean" +#: js/turtleactions/IntervalsActions.js:113 +msgid "nine" msgstr "" -#: js/musicutils.js:795 -#: js/musicutils.js:1124 -#: js/musicutils.js:1132 -#.TRANS: musical temperament -msgid "just intonation" +#: js/turtleactions/IntervalsActions.js:119 +msgid "a" msgstr "" -#: js/musicutils.js:797 -#: js/musicutils.js:1126 -#: js/musicutils.js:1127 -#: js/musicutils.js:1134 -#: js/musicutils.js:1135 -#.TRANS: musical temperament -msgid "meantone" +#: js/turtleactions/IntervalsActions.js:120 +msgid "below" msgstr "" -#: js/musicutils.js:814 -msgid "major 7th" +#: js/turtleactions/IntervalsActions.js:124 +msgid "above" msgstr "" -#: js/musicutils.js:815 -msgid "minor 7th" +#: js/turtleactions/IntervalsActions.js:131 +msgid "plus" msgstr "" -#: js/musicutils.js:816 -msgid "dominant 7th" +#: js/turtleactions/IntervalsActions.js:139 +msgid " below" msgstr "" -#: js/musicutils.js:817 -msgid "minor-major 7th" +#: js/turtleactions/IntervalsActions.js:257 +msgid "Adding missing pitch number 0." msgstr "" -#: js/musicutils.js:818 -msgid "fully-diminished 7th" +#: js/turtleactions/IntervalsActions.js:265 +msgid "Ignoring pitch numbers less than zero or greater than eleven." msgstr "" -#: js/musicutils.js:819 -msgid "half-diminished 7th" +#: js/turtleactions/IntervalsActions.js:271 +msgid "Ignoring duplicate pitch numbers." msgstr "" -#: js/musicutils.js:4379 -#: js/musicutils.js:4416 -msgid "current" +#: js/turtleactions/ToneActions.js:134 +msgid "Vibrato intensity must be between 1 and 100." msgstr "" -#: js/musicutils.js:4382 -#: js/musicutils.js:4407 -msgid "next" +#: js/turtleactions/ToneActions.js:139 +msgid "Vibrato rate must be greater than 0." msgstr "" -#: js/musicutils.js:4385 -#: js/musicutils.js:4412 -msgid "previous" +#: js/turtleactions/ToneActions.js:192 +#: js/turtleactions/ToneActions.js:265 +#.TRANS: Depth is the intesity of the tremolo or chorus effect. +msgid "Depth is out of range." msgstr "" -#: js/synthutils.js:104 -#.TRANS: simple monotone synthesizer -msgid "simple-2" +#: js/turtleactions/ToneActions.js:301 +msgid "Distortion must be from 0 to 100." msgstr "" -#: js/synthutils.js:106 -#.TRANS: simple monotone synthesizer -msgid "simple-3" +#: js/turtleactions/ToneActions.js:332 +#.TRANS: partials components in a harmonic series +msgid "Partial must be greater than or equal to 0." msgstr "" -#: js/synthutils.js:108 -#.TRANS: simple monotone synthesizer -msgid "simple-4" +#: js/turtleactions/ToneActions.js:378 +#: js/turtleactions/ToneActions.js:417 +#: js/turtleactions/ToneActions.js:456 +#: js/widgets/timbre.js:782 +msgid "Unable to use synth due to existing oscillator" msgstr "" -#: js/synthutils.js:141 -#.TRANS: musical instrument -msgid "taiko" +#: js/turtleactions/ToneActions.js:388 +#: js/turtleactions/ToneActions.js:427 +msgid "The input cannot be negative." msgstr "" -#: js/modewidget.js:86 -#: js/modewidget.js:88 -#: js/modewidget.js:642 -#: js/modewidget.js:644 -#: js/modewidget.js:712 -#: js/modewidget.js:714 -#: js/temperament.js:2078 -#: js/rhythmruler.js:189 -#: js/rhythmruler.js:1410 -#: js/rhythmruler.js:1412 -#: js/rhythmruler.js:1435 -#: js/rhythmruler.js:1437 -#: js/meterwidget.js:89 -#: js/meterwidget.js:91 +#: js/widgets/modewidget.js:86 +#: js/widgets/modewidget.js:88 +#: js/widgets/modewidget.js:642 +#: js/widgets/modewidget.js:644 +#: js/widgets/modewidget.js:712 +#: js/widgets/modewidget.js:714 +#: js/widgets/meterwidget.js:194 +#: js/widgets/meterwidget.js:196 +#: js/widgets/temperament.js:2236 +#: js/widgets/rhythmruler.js:457 +#: js/widgets/rhythmruler.js:1790 +#: js/widgets/rhythmruler.js:1792 +#: js/widgets/rhythmruler.js:1816 +#: js/widgets/rhythmruler.js:1818 msgid "Play all" msgstr "" -#: js/modewidget.js:115 -#: js/pitchstaircase.js:641 -#: js/phrasemaker.js:339 -#: js/pitchdrummatrix.js:94 -#: js/pitchslider.js:125 -#: js/temperament.js:2083 -#: js/musickeyboard.js:530 -#: js/timbre.js:756 -#: js/meterwidget.js:124 -#: js/arpeggio.js:103 +#: js/widgets/modewidget.js:115 +#: js/widgets/meterwidget.js:229 +#: js/widgets/pitchdrummatrix.js:166 +#: js/widgets/pitchslider.js:125 +#: js/widgets/pitchstaircase.js:641 +#: js/widgets/temperament.js:2244 +#: js/widgets/timbre.js:756 +#: js/widgets/arpeggio.js:103 +#: js/widgets/musickeyboard.js:688 +#: js/widgets/phrasemaker.js:550 msgid "Save" msgstr "" -#: js/modewidget.js:121 -#: js/pitchstaircase.js:686 -#: js/phrasemaker.js:356 -#: js/pitchdrummatrix.js:109 -#: js/musickeyboard.js:534 -#: js/rhythmruler.js:269 -#: js/arpeggio.js:118 +#: js/widgets/modewidget.js:121 +#: js/widgets/pitchdrummatrix.js:181 +#: js/widgets/pitchstaircase.js:686 +#: js/widgets/arpeggio.js:118 +#: js/widgets/musickeyboard.js:696 +#: js/widgets/phrasemaker.js:567 +#: js/widgets/rhythmruler.js:601 #.TRANS: clear all subdivisions from the ruler. msgid "Clear" msgstr "" -#: js/modewidget.js:127 +#: js/widgets/modewidget.js:127 msgid "Rotate counter clockwise" msgstr "" -#: js/modewidget.js:133 +#: js/widgets/modewidget.js:133 msgid "Rotate clockwise" msgstr "" -#: js/modewidget.js:139 +#: js/widgets/modewidget.js:139 msgid "Invert" msgstr "" -#: js/modewidget.js:145 -#: js/pitchstaircase.js:678 -#: js/rhythmruler.js:258 -#: js/timbre.js:963 +#: js/widgets/modewidget.js:145 +#: js/widgets/pitchstaircase.js:678 +#: js/widgets/timbre.js:963 +#: js/widgets/rhythmruler.js:578 msgid "Undo" msgstr "" -#: js/modewidget.js:163 +#: js/widgets/modewidget.js:163 #.TRANS: A circle of notes represents the musical mode. msgid "Click in the circle to select notes for the mode." msgstr "" -#: js/modewidget.js:1017 -#: js/pitchstaircase.js:580 -#: js/phrasemaker.js:4855 -#: js/temperament.js:1754 -#: js/rhythmruler.js:1865 -#: js/rhythmruler.js:2081 -#: js/tempo.js:414 +#: js/widgets/modewidget.js:1017 +#: js/widgets/pitchstaircase.js:580 +#: js/widgets/temperament.js:1929 +#: js/widgets/tempo.js:414 +#: js/widgets/phrasemaker.js:5356 +#: js/widgets/rhythmruler.js:2254 +#: js/widgets/rhythmruler.js:2472 msgid "New action block generated!" msgstr "" -#: js/oscilloscope.js:79 -msgid "Zoom In" -msgstr "" - -#: js/oscilloscope.js:88 -msgid "Zoom Out" -msgstr "" - -#: js/pitchstaircase.js:624 -msgid "Play chord" -msgstr "" - -#: js/pitchstaircase.js:632 -msgid "Play scale" +#: js/widgets/meterwidget.js:275 +msgid "Reset" msgstr "" -#: js/pitchstaircase.js:696 -msgid "Click on a note to create a new step." +#: js/widgets/meterwidget.js:301 +msgid "Click in the circle to select strong beats for the meter." msgstr "" -#: js/phrasemaker.js:363 -msgid "Export" +#: js/widgets/oscilloscope.js:79 +msgid "Zoom In" msgstr "" -#: js/phrasemaker.js:370 -msgid "Sort" +#: js/widgets/oscilloscope.js:88 +msgid "Zoom Out" msgstr "" -#: js/phrasemaker.js:373 -#: js/musickeyboard.js:559 -msgid "Add note" +#: js/widgets/pitchdrummatrix.js:356 +#: js/widgets/pitchdrummatrix.js:752 +msgid "Click in the grid to map notes to drums." msgstr "" -#: js/phrasemaker.js:764 -msgid "Click on the table to add notes." +#: js/widgets/pitchslider.js:103 +msgid "Move up" msgstr "" -#: js/phrasemaker.js:2414 -#: js/phrasemaker.js:2543 -msgid "tuplet value" +#: js/widgets/pitchslider.js:114 +msgid "Move down" msgstr "" -#: js/pitchdrummatrix.js:270 -#: js/pitchdrummatrix.js:639 -msgid "Click in the grid to map notes to drums." +#: js/widgets/pitchslider.js:136 +msgid "Click on the slider to create a note block." msgstr "" -#: js/pitchslider.js:103 -msgid "Move up" +#: js/widgets/pitchstaircase.js:624 +msgid "Play chord" msgstr "" -#: js/pitchslider.js:114 -msgid "Move down" +#: js/widgets/pitchstaircase.js:632 +msgid "Play scale" msgstr "" -#: js/pitchslider.js:136 -msgid "Click on the slider to create a note block." +#: js/widgets/pitchstaircase.js:696 +msgid "Click on a note to create a new step." msgstr "" -#: js/temperament.js:215 +#: js/widgets/temperament.js:321 msgid "back to 2:1 octave space" msgstr "" -#: js/temperament.js:323 +#: js/widgets/temperament.js:447 msgid "edit" msgstr "" -#: js/temperament.js:330 -#: js/temperament.js:332 -#: js/temperament.js:1336 -#: js/temperament.js:1338 +#: js/widgets/temperament.js:454 +#: js/widgets/temperament.js:456 +#: js/widgets/temperament.js:1493 +#: js/widgets/temperament.js:1495 msgid "close" msgstr "" -#: js/temperament.js:423 -#: js/temperament.js:736 -#: js/temperament.js:743 -#: js/temperament.js:845 -#: js/temperament.js:935 -#: js/temperament.js:942 -#: js/temperament.js:1015 -#: js/temperament.js:1284 -#: js/temperament.js:1354 -#: js/temperament.js:1430 +#: js/widgets/temperament.js:552 +#: js/widgets/temperament.js:877 +#: js/widgets/temperament.js:884 +#: js/widgets/temperament.js:986 +#: js/widgets/temperament.js:1080 +#: js/widgets/temperament.js:1087 +#: js/widgets/temperament.js:1160 +#: js/widgets/temperament.js:1433 +#: js/widgets/temperament.js:1511 +#: js/widgets/temperament.js:1596 msgid "done" msgstr "" -#: js/temperament.js:477 -#: js/temperament.js:482 -#: js/temperament.js:918 +#: js/widgets/temperament.js:610 +#: js/widgets/temperament.js:615 +#: js/widgets/temperament.js:1063 msgid "ratio" msgstr "" -#: js/temperament.js:483 +#: js/widgets/temperament.js:616 msgid "interval" msgstr "" -#: js/temperament.js:611 +#: js/widgets/temperament.js:744 msgid "non scalar" msgstr "" -#: js/temperament.js:650 +#: js/widgets/temperament.js:787 msgid "ratios" msgstr "" -#: js/temperament.js:650 +#: js/widgets/temperament.js:787 msgid "arbitrary" msgstr "" -#: js/temperament.js:719 +#: js/widgets/temperament.js:860 msgid "number of divisions" msgstr "" -#: js/temperament.js:741 -#: js/temperament.js:858 -#: js/temperament.js:940 -#: js/temperament.js:1033 +#: js/widgets/temperament.js:882 +#: js/widgets/temperament.js:999 +#: js/widgets/temperament.js:1085 +#: js/widgets/temperament.js:1178 msgid "preview" msgstr "" -#: js/temperament.js:788 +#: js/widgets/temperament.js:929 msgid "The Number of divisions is too large." msgstr "" -#: js/temperament.js:921 +#: js/widgets/temperament.js:1066 msgid "recursion" msgstr "" -#: js/temperament.js:1450 +#: js/widgets/temperament.js:1616 msgid "The octave ratio has changed. This changes temperament significantly." msgstr "" -#: js/temperament.js:2087 +#: js/widgets/temperament.js:2248 msgid "Table" msgstr "" -#: js/temperament.js:2185 +#: js/widgets/temperament.js:2356 msgid "Add pitches" msgstr "" -#: js/musickeyboard.js:570 -msgid "Metronome" +#: js/widgets/tempo.js:78 +#: js/widgets/tempo.js:97 +#: js/widgets/tempo.js:99 +#: js/widgets/aiwidget.js:134 +#: js/widgets/aiwidget.js:136 +#: js/widgets/rhythmruler.js:681 +#: js/widgets/rhythmruler.js:683 +#: js/widgets/rhythmruler.js:1864 +#: js/widgets/rhythmruler.js:1866 +#: js/widgets/sampler.js:180 +#: js/widgets/sampler.js:182 +msgid "Pause" msgstr "" -#: js/musickeyboard.js:1296 -#: plugins/rodi.rtp:193 -msgid "duration" +#: js/widgets/tempo.js:113 +msgid "Save tempo" msgstr "" -#: js/musickeyboard.js:2840 -msgid "New action blocks generated!" +#: js/widgets/tempo.js:144 +msgid "speed up" msgstr "" -#: js/musickeyboard.js:2841 -msgid "New action block generated" +#: js/widgets/tempo.js:150 +msgid "slow down" msgstr "" -#: js/musickeyboard.js:2984 -#: js/musickeyboard.js:2992 -msgid "MIDI device present." +#: js/widgets/tempo.js:194 +msgid "Adjust the tempo with the buttons." msgstr "" -#: js/musickeyboard.js:2995 -msgid "No MIDI device found." +#: js/widgets/tempo.js:261 +msgid "Please enter a number between 30 and 1000" msgstr "" -#: js/musickeyboard.js:3000 -msgid "Failed to get MIDI access in browser." +#: js/widgets/tempo.js:268 +#: js/widgets/tempo.js:271 +msgid "The beats per minute must be between 30 and 1000." msgstr "" -#: js/rhythmruler.js:202 -msgid "Save rhythms" +#: js/widgets/tempo.js:287 +msgid "The beats per minute must be below 1000." msgstr "" -#: js/rhythmruler.js:222 -msgid "Save drum machine" +#: js/widgets/tempo.js:303 +msgid "The beats per minute must be above 30" msgstr "" -#: js/rhythmruler.js:263 -#.TRANS: user can tap out a rhythm by clicking on a ruler. -msgid "Tap a rhythm" +#: js/widgets/timbre.js:766 +msgid "Synthesizer" msgstr "" -#: js/rhythmruler.js:342 -#: js/rhythmruler.js:344 -#: js/rhythmruler.js:1481 -#: js/rhythmruler.js:1483 -#: js/sampler.js:110 -#: js/sampler.js:112 -#: js/tempo.js:78 -#: js/tempo.js:97 -#: js/tempo.js:99 -msgid "Pause" +#: js/widgets/timbre.js:789 +msgid "Oscillator" msgstr "" -#: js/rhythmruler.js:478 -msgid "Click on the ruler to divide it." +#: js/widgets/timbre.js:840 +msgid "Envelope" msgstr "" -#: js/rhythmruler.js:603 -#: js/rhythmruler.js:605 -#: js/rhythmruler.js:804 -#: js/rhythmruler.js:806 -#: js/rhythmruler.js:1386 -#: js/rhythmruler.js:1388 -msgid "tap a rhythm" +#: js/widgets/timbre.js:886 +#: planet/js/GlobalTag.js:50 +#.TRANS: On the Planet, we use labels to tag projects. +msgid "Effects" msgstr "" -#: js/rhythmruler.js:1084 -msgid "Maximum value of 256 has been exceeded." +#: js/widgets/timbre.js:904 +msgid "Filter" msgstr "" -#: js/sampler.js:137 -msgid "Warning: Sample is bigger than 1MB." +#: js/widgets/timbre.js:946 +msgid "Add filter" msgstr "" -#: js/sampler.js:142 -msgid "Upload failed: Sample is not a .wav file." +#: js/widgets/timbre.js:987 +msgid "Click on buttons to open the timbre design tools." msgstr "" -#: js/sampler.js:164 -msgid "A new sample block was generated." +#: js/widgets/timbre.js:1273 +msgid "harmonicity" msgstr "" -#: js/sampler.js:255 -msgid "Upload sample" +#: js/widgets/timbre.js:1340 +#: js/widgets/timbre.js:1406 +msgid "modulation index" msgstr "" -#: js/sampler.js:306 -msgid "Save sample" +#: js/widgets/timbre.js:1484 +msgid "vibrato amount" msgstr "" -#: js/sampler.js:697 -#.TRANS: The reference tone is a sound used for comparison. -msgid "reference tone" +#: js/widgets/timbre.js:1919 +msgid "Filter already present." msgstr "" -#: js/tempo.js:113 -msgid "Save tempo" +#: js/widgets/timbre.js:2322 +msgid "delay (MS)" msgstr "" -#: js/tempo.js:144 -msgid "speed up" +#: js/widgets/timbre.js:2507 +msgid "distortion amount" msgstr "" -#: js/tempo.js:150 -msgid "slow down" +#: js/widgets/aiwidget.js:180 +#: js/widgets/sampler.js:227 +msgid "Warning: Sample is bigger than 1MB." msgstr "" -#: js/tempo.js:194 -msgid "Adjust the tempo with the buttons." +#: js/widgets/aiwidget.js:539 +msgid "New start block generated" msgstr "" -#: js/tempo.js:261 -msgid "Please enter a number between 30 and 1000" +#: js/widgets/aiwidget.js:541 +msgid "MIDI loading. This may take some time depending upon the number of notes in the track" msgstr "" -#: js/tempo.js:268 -#: js/tempo.js:271 -msgid "The beats per minute must be between 30 and 1000." +#: js/widgets/aiwidget.js:551 +#: js/widgets/sampler.js:254 +msgid "Upload failed: Sample is not a .wav file." msgstr "" -#: js/tempo.js:287 -msgid "The beats per minute must be below 1000." +#: js/widgets/aiwidget.js:679 +#: js/widgets/sampler.js:432 +msgid "Save sample" msgstr "" -#: js/tempo.js:303 -msgid "The beats per minute must be above 30" +#: js/widgets/aiwidget.js:701 +msgid "AI Music" msgstr "" -#: js/timbre.js:766 -msgid "Synthesizer" +#: js/widgets/arpeggio.js:239 +msgid "Click in the grid to add steps to the arpeggio." msgstr "" -#: js/timbre.js:789 -msgid "Oscillator" +#: js/widgets/help.js:95 +#: js/widgets/help.js:125 +#: js/widgets/help.js:146 +#: js/widgets/help.js:158 +#: js/widgets/help.js:376 +#: js/widgets/help.js:391 +msgid "Take a tour" msgstr "" -#: js/timbre.js:840 -msgid "Envelope" +#: js/widgets/musickeyboard.js:725 +#: js/widgets/phrasemaker.js:584 +msgid "Add note" msgstr "" -#: js/timbre.js:886 -#: js/GlobalTag.js:50 -#.TRANS: On the Planet, we use labels to tag projects. -msgid "Effects" +#: js/widgets/musickeyboard.js:744 +msgid "Metronome" +msgstr "" + +#: js/widgets/musickeyboard.js:1549 +#: plugins/rodi.rtp:193 +msgid "duration" +msgstr "" + +#: js/widgets/musickeyboard.js:3179 +msgid "New action blocks generated" +msgstr "" + +#: js/widgets/musickeyboard.js:3180 +msgid "New action block generated" msgstr "" -#: js/timbre.js:904 -msgid "Filter" +#: js/widgets/musickeyboard.js:3365 +#: js/widgets/musickeyboard.js:3373 +msgid "MIDI device present." msgstr "" -#: js/timbre.js:946 -msgid "Add filter" +#: js/widgets/musickeyboard.js:3376 +msgid "No MIDI device found." msgstr "" -#: js/timbre.js:987 -msgid "Click on buttons to open the timbre design tools." +#: js/widgets/musickeyboard.js:3386 +msgid "Failed to get MIDI access in browser." msgstr "" -#: js/timbre.js:1273 -msgid "harmonicity" +#: js/widgets/phrasemaker.js:574 +msgid "Export" msgstr "" -#: js/timbre.js:1340 -#: js/timbre.js:1406 -msgid "modulation index" +#: js/widgets/phrasemaker.js:581 +msgid "Sort" msgstr "" -#: js/timbre.js:1484 -msgid "vibrato amount" +#: js/widgets/phrasemaker.js:975 +msgid "Click on the table to add notes." msgstr "" -#: js/timbre.js:1919 -msgid "Filter already present." +#: js/widgets/phrasemaker.js:2677 +#: js/widgets/phrasemaker.js:2819 +msgid "tuplet value" msgstr "" -#: js/timbre.js:2322 -msgid "delay (MS)" +#: js/widgets/rhythmruler.js:486 +msgid "Save rhythms" msgstr "" -#: js/timbre.js:2507 -msgid "distortion amount" +#: js/widgets/rhythmruler.js:512 +msgid "Save drum machine" msgstr "" -#: js/meterwidget.js:170 -msgid "Reset" +#: js/widgets/rhythmruler.js:589 +#.TRANS: user can tap out a rhythm by clicking on a ruler. +msgid "Tap a rhythm" msgstr "" -#: js/meterwidget.js:196 -msgid "Click in the circle to select strong beats for the meter." +#: js/widgets/rhythmruler.js:817 +msgid "Click on the ruler to divide it." msgstr "" -#: js/arpeggio.js:239 -msgid "Click in the grid to add steps to the arpeggio." +#: js/widgets/rhythmruler.js:950 +#: js/widgets/rhythmruler.js:952 +#: js/widgets/rhythmruler.js:1152 +#: js/widgets/rhythmruler.js:1154 +#: js/widgets/rhythmruler.js:1765 +#: js/widgets/rhythmruler.js:1767 +msgid "tap a rhythm" msgstr "" -#: js/ProjectStorage.js:243 -msgid "anonymous" +#: js/widgets/rhythmruler.js:1459 +msgid "Maximum value of 256 has been exceeded." msgstr "" -#: js/GlobalCard.js:68 -msgid "Share" +#: js/widgets/sampler.js:237 +msgid "Recording started..." msgstr "" -#: js/GlobalCard.js:74 -msgid "Flags" +#: js/widgets/sampler.js:245 +msgid "Recording complete..." msgstr "" -#: js/LocalCard.js:36 -msgid "View published project" +#: js/widgets/sampler.js:283 +msgid "A new sample block was generated." msgstr "" -#: js/LocalCard.js:42 -msgid "Publish project" +#: js/widgets/sampler.js:378 +msgid "Upload sample" msgstr "" -#: js/LocalCard.js:51 -msgid "Edit project" +#: js/widgets/sampler.js:399 +msgid "Warning: Your sample cannot be loaded because it is >1MB." msgstr "" -#: js/LocalCard.js:52 -msgid "Delete project" +#: js/widgets/sampler.js:448 +msgid "Toggle Mic" msgstr "" -#: js/LocalCard.js:53 -msgid "Download project" +#: js/widgets/sampler.js:458 +msgid "Playback" msgstr "" -#: js/LocalCard.js:55 -msgid "Duplicate project" +#: js/widgets/sampler.js:979 +#.TRANS: The reference tone is a sound used for comparison. +msgid "reference tone" msgstr "" -#: js/GlobalTag.js:28 +#: planet/js/GlobalTag.js:28 #.TRANS: On the Planet, we use labels to tag projects. msgid "All Projects" msgstr "" -#: js/GlobalTag.js:30 -#: js/StringHelper.js:37 +#: planet/js/GlobalTag.js:30 +#: planet/js/StringHelper.js:37 #.TRANS: On the Planet, we use labels to tag projects. msgid "My Projects" msgstr "" -#: js/GlobalTag.js:32 +#: planet/js/GlobalTag.js:32 #.TRANS: On the Planet, we use labels to tag projects. msgid "Examples" msgstr "" -#: js/GlobalTag.js:34 +#: planet/js/GlobalTag.js:34 #.TRANS: On the Planet, we use labels to tag projects. msgid "Music" msgstr "" -#: js/GlobalTag.js:36 +#: planet/js/GlobalTag.js:36 #.TRANS: On the Planet, we use labels to tag projects. msgid "Art" msgstr "" -#: js/GlobalTag.js:38 +#: planet/js/GlobalTag.js:38 #.TRANS: On the Planet, we use labels to tag projects. msgid "Math" msgstr "" -#: js/GlobalTag.js:40 +#: planet/js/GlobalTag.js:40 #.TRANS: On the Planet, we use labels to tag projects. msgid "Interactive" msgstr "" -#: js/GlobalTag.js:42 +#: planet/js/GlobalTag.js:42 #.TRANS: On the Planet, we use labels to tag projects. msgid "Design" msgstr "" -#: js/GlobalTag.js:44 +#: planet/js/GlobalTag.js:44 #.TRANS: On the Planet, we use labels to tag projects. msgid "Game" msgstr "" -#: js/GlobalTag.js:46 +#: planet/js/GlobalTag.js:46 #.TRANS: On the Planet, we use labels to tag projects. msgid "Media" msgstr "" -#: js/GlobalTag.js:48 +#: planet/js/GlobalTag.js:48 #.TRANS: On the Planet, we use labels to tag projects. msgid "Sensors" msgstr "" -#: js/GlobalTag.js:52 +#: planet/js/GlobalTag.js:52 #.TRANS: On the Planet, we use labels to tag projects. msgid "Code Snippet" msgstr "" -#: js/helper.js:149 -#: js/StringHelper.js:49 -msgid "Show more tags" +#: planet/js/LocalCard.js:36 +msgid "View published project" msgstr "" -#: js/helper.js:150 -msgid "Show fewer tags" +#: planet/js/LocalCard.js:42 +msgid "Publish project" +msgstr "" + +#: planet/js/LocalCard.js:51 +msgid "Edit project" +msgstr "" + +#: planet/js/LocalCard.js:52 +msgid "Delete project" +msgstr "" + +#: planet/js/LocalCard.js:53 +msgid "Download project" +msgstr "" + +#: planet/js/LocalCard.js:55 +msgid "Duplicate project" +msgstr "" + +#: planet/js/ProjectStorage.js:243 +msgid "anonymous" +msgstr "" + +#: planet/js/SaveInterface.js:34 +msgid "Open in Music Blocks" +msgstr "" + +#: planet/js/SaveInterface.js:35 +msgid "Open in Turtle Blocks" +msgstr "" + +#: planet/js/GlobalCard.js:68 +msgid "Share" +msgstr "" + +#: planet/js/GlobalCard.js:74 +msgid "Flags" +msgstr "" + +#: planet/js/GlobalPlanet.js:35 +msgid "No results found." +msgstr "" + +#: planet/js/GlobalPlanet.js:51 +msgid "Remix of" +msgstr "" + +#: planet/js/GlobalPlanet.js:509 +msgid "Cannot connect to server" msgstr "" -#: js/ProjectViewer.js:30 +#: planet/js/ProjectViewer.js:30 msgid "Error: Report could not be submitted. Try again later." msgstr "" -#: js/ProjectViewer.js:31 +#: planet/js/ProjectViewer.js:31 msgid "Thank you for reporting this project. A moderator will review the project shortly, to verify violation of the Sugar Labs Code of Conduct." msgstr "" -#: js/ProjectViewer.js:32 -#: js/StringHelper.js:62 -#: js/StringHelper.js:64 -#: js/StringHelper.js:68 +#: planet/js/ProjectViewer.js:32 +#: planet/js/StringHelper.js:62 +#: planet/js/StringHelper.js:64 +#: planet/js/StringHelper.js:68 msgid "Report Project" msgstr "" -#: js/ProjectViewer.js:33 -#: js/StringHelper.js:63 +#: planet/js/ProjectViewer.js:33 +#: planet/js/StringHelper.js:63 msgid "Project Reported" msgstr "" -#: js/ProjectViewer.js:34 +#: planet/js/ProjectViewer.js:34 msgid "Report description required" msgstr "" -#: js/ProjectViewer.js:35 +#: planet/js/ProjectViewer.js:35 msgid "Report description too long" msgstr "" -#: js/StringHelper.js:30 +#: planet/js/Publisher.js:30 +msgid "Feature unavailable - cannot connect to server. Reload Music Blocks to try again." +msgstr "" + +#: planet/js/Publisher.js:220 +#: planet/js/Publisher.js:237 +msgid "This field is required" +msgstr "" + +#: planet/js/Publisher.js:227 +msgid "Title too long" +msgstr "" + +#: planet/js/Publisher.js:244 +msgid "Description too long" +msgstr "" + +#: planet/js/Publisher.js:341 +msgid "Server Error" +msgstr "" + +#: planet/js/Publisher.js:341 +msgid "Try Again" +msgstr "" + +#: planet/js/StringHelper.js:30 msgid "Planet" msgstr "" -#: js/StringHelper.js:31 +#: planet/js/StringHelper.js:31 msgid "Close Planet" msgstr "" -#: js/StringHelper.js:32 +#: planet/js/StringHelper.js:32 msgid "Open project from file" msgstr "" -#: js/StringHelper.js:34 +#: planet/js/StringHelper.js:34 msgid "Local" msgstr "" -#: js/StringHelper.js:35 +#: planet/js/StringHelper.js:35 msgid "Global" msgstr "" -#: js/StringHelper.js:36 +#: planet/js/StringHelper.js:36 msgid "Search for a project" msgstr "" -#: js/StringHelper.js:38 +#: planet/js/StringHelper.js:38 msgid "Publish Project" msgstr "" -#: js/StringHelper.js:40 +#: planet/js/StringHelper.js:40 msgid "Tags (max 5)" msgstr "" -#: js/StringHelper.js:41 -#: js/StringHelper.js:61 +#: planet/js/StringHelper.js:41 +#: planet/js/StringHelper.js:61 msgid "Description" msgstr "" -#: js/StringHelper.js:42 -#: js/StringHelper.js:67 +#: planet/js/StringHelper.js:42 +#: planet/js/StringHelper.js:67 msgid "Submit" msgstr "" -#: js/StringHelper.js:43 -#: js/StringHelper.js:47 +#: planet/js/StringHelper.js:43 +#: planet/js/StringHelper.js:47 msgid "Cancel" msgstr "" -#: js/StringHelper.js:44 +#: planet/js/StringHelper.js:44 msgid "Delete \\"\\"?" msgstr "" -#: js/StringHelper.js:45 +#: planet/js/StringHelper.js:45 msgid "Permanently delete project \\"\\"?" msgstr "" -#: js/StringHelper.js:48 +#: planet/js/StringHelper.js:48 msgid "Explore Projects" msgstr "" -#: js/StringHelper.js:50 +#: planet/js/StringHelper.js:49 +#: planet/js/helper.js:149 +msgid "Show more tags" +msgstr "" + +#: planet/js/StringHelper.js:50 msgid "Most recent" msgstr "" -#: js/StringHelper.js:51 +#: planet/js/StringHelper.js:51 msgid "Most liked" msgstr "" -#: js/StringHelper.js:52 +#: planet/js/StringHelper.js:52 msgid "Most downloaded" msgstr "" -#: js/StringHelper.js:53 +#: planet/js/StringHelper.js:53 msgid "A-Z" msgstr "" -#: js/StringHelper.js:54 +#: planet/js/StringHelper.js:54 msgid "Sort by" msgstr "" -#: js/StringHelper.js:55 +#: planet/js/StringHelper.js:55 msgid "Load More Projects" msgstr "" -#: js/StringHelper.js:56 +#: planet/js/StringHelper.js:56 msgid "Last Updated" msgstr "" -#: js/StringHelper.js:57 +#: planet/js/StringHelper.js:57 msgid "Creation Date" msgstr "" -#: js/StringHelper.js:58 +#: planet/js/StringHelper.js:58 msgid "Number of Downloads:" msgstr "" -#: js/StringHelper.js:59 +#: planet/js/StringHelper.js:59 msgid "Number of Likes:" msgstr "" -#: js/StringHelper.js:60 +#: planet/js/StringHelper.js:60 msgid "Tags:" msgstr "" -#: js/StringHelper.js:65 +#: planet/js/StringHelper.js:65 msgid "Report projects which violate the Sugar Labs Code of Conduct." msgstr "" -#: js/StringHelper.js:66 +#: planet/js/StringHelper.js:66 msgid "Reason for reporting project" msgstr "" -#: js/StringHelper.js:70 +#: planet/js/StringHelper.js:70 msgid "Download as File" msgstr "" -#: js/GlobalPlanet.js:35 -msgid "No results found." -msgstr "" - -#: js/GlobalPlanet.js:51 -msgid "Remix of" -msgstr "" - -#: js/GlobalPlanet.js:509 -msgid "Cannot connect to server" -msgstr "" - -#: js/Publisher.js:30 -msgid "Feature unavailable - cannot connect to server. Reload Music Blocks to try again." -msgstr "" - -#: js/Publisher.js:218 -#: js/Publisher.js:235 -msgid "This field is required" -msgstr "" - -#: js/Publisher.js:225 -msgid "Title too long" +#: planet/js/helper.js:150 +msgid "Show fewer tags" msgstr "" -#: js/Publisher.js:242 -msgid "Description too long" +#: plugins/accelerometer.rtp:48 +msgid "motion x" msgstr "" -#: js/Publisher.js:339 -msgid "Server Error" +#: plugins/accelerometer.rtp:56 +msgid "motion y" msgstr "" -#: js/Publisher.js:339 -msgid "Try Again" +#: plugins/accelerometer.rtp:64 +msgid "motion z" msgstr "" -#: js/SaveInterface.js:34 -msgid "Open in Music Blocks" +#: plugins/facebook.rtp:27 +msgid "publish" msgstr "" -#: js/SaveInterface.js:35 -msgid "Open in Turtle Blocks" +#: plugins/maths.rtp:62 +msgid "power" msgstr "" -#: plugins/weather.rtp:68 -#: plugins/weather.rtp:97 -msgid "Days ahead must be in the range of -1 to 5." +#: plugins/maths.rtp:62 +msgid "base" msgstr "" -#: plugins/weather.rtp:122 -msgid "forecast" +#: plugins/maths.rtp:62 +msgid "exp" msgstr "" -#: plugins/weather.rtp:123 -#: plugins/weather.rtp:137 -#: plugins/weather.rtp:150 -msgid "city" +#: plugins/maths.rtp:99 +msgid "floor" msgstr "" -#: plugins/weather.rtp:124 -#: plugins/weather.rtp:138 -#: plugins/weather.rtp:151 -msgid "day" +#: plugins/maths.rtp:104 +msgid "ceiling" msgstr "" -#: plugins/weather.rtp:136 -msgid "high" +#: plugins/maths.rtp:109 +msgid "to degrees" msgstr "" -#: plugins/weather.rtp:149 -msgid "low" +#: plugins/maths.rtp:114 +msgid "to radians" msgstr "" #: plugins/nutrition.rtp:104 @@ -9458,45 +9867,6 @@ msgstr "" msgid "water" msgstr "" -#: plugins/maths.rtp:62 -#: plugins/examples.rtp:93 -msgid "power" -msgstr "" - -#: plugins/maths.rtp:62 -#: plugins/examples.rtp:93 -msgid "base" -msgstr "" - -#: plugins/maths.rtp:62 -#: plugins/examples.rtp:93 -msgid "exp" -msgstr "" - -#: plugins/maths.rtp:99 -#: plugins/examples.rtp:130 -msgid "floor" -msgstr "" - -#: plugins/maths.rtp:104 -#: plugins/examples.rtp:135 -msgid "ceiling" -msgstr "" - -#: plugins/maths.rtp:109 -#: plugins/examples.rtp:140 -msgid "to degrees" -msgstr "" - -#: plugins/maths.rtp:114 -#: plugins/examples.rtp:145 -msgid "to radians" -msgstr "" - -#: plugins/facebook.rtp:27 -msgid "publish" -msgstr "" - #: plugins/rodi.rtp:172 msgid "blink" msgstr "" @@ -9525,18 +9895,66 @@ msgstr "" msgid "move" msgstr "" -#: plugins/accelerometer.rtp:48 -msgid "motion x" +#: plugins/weather.rtp:68 +#: plugins/weather.rtp:97 +msgid "Days ahead must be in the range of -1 to 5." msgstr "" -#: plugins/accelerometer.rtp:56 -msgid "motion y" +#: plugins/weather.rtp:122 +msgid "forecast" msgstr "" -#: plugins/accelerometer.rtp:64 -msgid "motion z" +#: plugins/weather.rtp:123 +#: plugins/weather.rtp:137 +#: plugins/weather.rtp:150 +msgid "city" +msgstr "" + +#: plugins/weather.rtp:124 +#: plugins/weather.rtp:138 +#: plugins/weather.rtp:151 +msgid "day" +msgstr "" + +#: plugins/weather.rtp:136 +msgid "high" +msgstr "" + +#: plugins/weather.rtp:149 +msgid "low" msgstr "" +#: js/toolbar.js:70 + +#: js/toolbar.js:130 + +#: js/toolbar.js:194 + +#: js/toolbar.js:249 + +#~msgid "Toggle JavaScript Editor" +#~msgstr "" + +#: js/EnsembleBlocks.js:643 + +#~msgid "The Turrle pitch block returns the current pitch number being played by the specified turtle." +#~msgstr "" + +#: js/PitchActions.js:88 + +#~msgid "The Scalar Step Block must be used inside of a Note Block." +#~msgstr "" + +#: js/PitchActions.js:107 + +#~msgid "The Scalar Step Block must be preceded by a Pitch Block." +#~msgstr "" + +#: js/musickeyboard.js:2840 + +#~msgid "New action blocks generated!" +#~msgstr "" + #: js/toolbar.js:110 #: js/toolbar.js:204 @@ -9877,11 +10295,6 @@ msgstr "" #~msgid "The Time block returns the number of seconds that the program has been running." #~msgstr "" -#: js/help.js:95 - -#~msgid "Take a tour" -#~msgstr "" - #: js/GlobalCard.js:48 #~msgid "More Details" @@ -12780,11 +13193,6 @@ msgstr "" #~msgid "The save-stack button saves a stack onto a custom palette. It appears after a \"long press\" on a stack." #~msgstr "" -#: js/musicutils.js:254 - -#~msgid "Custom" -#~msgstr "" - #: js/basicblocks.js:4785 #~msgid "Rhythm" diff --git a/po/ar.po b/po/ar.po index da6fb597ef..58f6c8752e 100644 --- a/po/ar.po +++ b/po/ar.po @@ -16,9335 +16,7623 @@ #js/toolbar.js:230 #js/turtledefs.js:504 #js/turtledefs.js:505 -msgid: "Toggle Fullscreen" -msgstr: "تبديل ملء الشاشة" - -#: js/activity.js:443 -#: js/activity.js:443 -#: js/activity.js:445 -#: js/activity.js:453 -#: js/activity.js:472 -#: js/activity.js:472 -#: js/activity.js:475 -#: js/block.js:632 -#: js/pitchdrummatrix.js:178 -#: js/musicutils.js:37 -#: js/block.js:531 -#: js/pitchdrummatrix.js:235 -#: js/musicutils.js:40 -#: js/block.js:532 -#: js/pitchdrummatrix.js:235 -#: js/musicutils.js:40 -#: js/block.js:534 -#: js/pitchdrummatrix.js:235 -#: js/musicutils.js:40 -#: js/block.js:534 -#: js/pitchdrummatrix.js:235 -#: js/musicutils.js:40 -#: js/block.js:534 -#: js/pitchdrummatrix.js:235 -#: js/musicutils.js:40 -#: js/block.js:535 -#: js/pitchdrummatrix.js:235 -#: js/musicutils.js:43 -#: js/block.js:535 -#: js/pitchdrummatrix.js:235 -#: js/musicutils.js:43 -#: js/block.js:535 -#: js/pitchdrummatrix.js:235 -#: js/musicutils.js:43 -#: js/block.js:535 -#: js/pitchdrummatrix.js:235 -#: js/musicutils.js:43 -#: js/block.js:535 -#: js/pitchdrummatrix.js:235 -#: js/musicutils.js:43 -#: js/block.js:535 -#: js/pitchdrummatrix.js:235 -#: js/musicutils.js:43 -#: js/block.js:535 -#: js/pitchdrummatrix.js:235 -#: js/musicutils.js:43 -#: js/block.js:535 -#: js/pitchdrummatrix.js:235 -#: js/musicutils.js:43 -#: js/block.js:535 -#: js/pitchdrummatrix.js:235 -#: js/musicutils.js:43 -#: js/block.js:535 -#: js/pitchdrummatrix.js:235 -#: js/musicutils.js:43 -#: js/block.js:535 -#: js/pitchdrummatrix.js:235 -#: js/musicutils.js:43 -#: js/block.js:535 -#: js/pitchdrummatrix.js:235 -#: js/musicutils.js:43 -#: js/block.js:535 -#: js/pitchdrummatrix.js:235 -#: js/musicutils.js:43 -#: js/synthutils.js:14 -#: js/block.js:535 -#: js/pitchdrummatrix.js:235 -#: js/musicutils.js:43 -#: js/block.js:535 -#: js/pitchdrummatrix.js:235 -#: js/musicutils.js:43 -#: js/block.js:535 -#: js/pitchdrummatrix.js:235 -#: js/musicutils.js:43 -#: js/block.js:535 -#: js/pitchdrummatrix.js:235 -#: js/musicutils.js:43 -#: js/block.js:535 -#: js/pitchdrummatrix.js:235 -#: js/musicutils.js:43 -#: js/block.js:535 -#: js/pitchdrummatrix.js:235 -#: js/musicutils.js:43 -#: js/block.js:535 -#: js/pitchdrummatrix.js:235 -#: js/musicutils.js:43 -#: js/block.js:535 -#: js/pitchdrummatrix.js:235 -#: js/musicutils.js:43 -#: js/block.js:535 -#: js/pitchdrummatrix.js:235 -#: js/musicutils.js:43 -#: js/block.js:535 -#: js/pitchdrummatrix.js:235 -#: js/musicutils.js:43 -#: js/block.js:535 -#: js/pitchdrummatrix.js:235 -#: js/musicutils.js:43 -#: js/block.js:536 -#: js/pitchdrummatrix.js:235 -#: js/musicutils.js:45 -#: js/block.js:536 -#: js/pitchdrummatrix.js:235 -#: js/musicutils.js:45 -#: js/block.js:551 -#: js/pitchdrummatrix.js:235 -#: js/musicutils.js:46 -#: js/block.js:551 -#: js/pitchdrummatrix.js:235 -#: js/musicutils.js:46 -#: js/block.js:565 -#: js/pitchdrummatrix.js:235 -#: js/musicutils.js:48 -#: js/musicutils.js:57 -#: js/block.js:565 -#: js/pitchdrummatrix.js:235 -#: js/musicutils.js:48 -#: js/musicutils.js:57 -#: js/block.js:565 -#: js/pitchdrummatrix.js:235 -#: js/musicutils.js:48 -#: js/musicutils.js:57 -#: js/block.js:567 -#: js/pitchdrummatrix.js:235 -#: js/musicutils.js:48 -#: js/musicutils.js:57 -#: js/block.js:720 -#: js/block.js:3892 -#: js/block.js:3901 -#: js/block.js:3912 -#: js/activity.js:2732 -#: js/analytics.js:475 -#: js/palette.js:676 -#: js/palette.js:685 -#: js/palette.js:694 -#: js/palette.js:703 -#: js/palette.js:1978 -#: js/palette.js:1989 -#: js/palette.js:2000 -#: js/palette.js:2011 -#: js/turtledefs.js:23 -#: js/basicblocks.js:1148 -#: js/basicblocks.js:1159 -#: js/basicblocks.js:2806 -#: js/basicblocks.js:2837 -#: js/basicblocks.js:2844 -#: js/basicblocks.js:2873 -#: js/basicblocks.js:2883 -#: js/basicblocks.js:2915 -#: js/basicblocks.js:2960 -#: js/basicblocks.js:2964 -#: js/basicblocks.js:2970 -#: js/macros.js:44 -#: js/blocks.js:784 -#: js/blocks.js:2385 -#: js/blocks.js:2386 -#: js/blocks.js:2578 -#: js/blocks.js:2784 -#: js/blocks.js:2940 -#: js/blocks.js:3503 -#: js/blocks.js:4308 -#: js/block.js:720 -#: js/block.js:3892 -#: js/block.js:3901 -#: js/block.js:3912 -#: js/activity.js:2732 -#: js/analytics.js:475 -#: js/palette.js:681 -#: js/palette.js:690 -#: js/palette.js:699 -#: js/palette.js:708 -#: js/palette.js:1983 -#: js/palette.js:1994 -#: js/palette.js:2005 -#: js/palette.js:2016 -#: js/turtledefs.js:23 -#: js/basicblocks.js:1148 -#: js/basicblocks.js:1159 -#: js/basicblocks.js:1170 -#: js/basicblocks.js:2817 -#: js/basicblocks.js:2848 -#: js/basicblocks.js:2855 -#: js/basicblocks.js:2884 -#: js/basicblocks.js:2894 -#: js/basicblocks.js:2926 -#: js/basicblocks.js:2971 -#: js/basicblocks.js:2975 -#: js/basicblocks.js:2981 -#: js/macros.js:44 -#: js/blocks.js:784 -#: js/blocks.js:2385 -#: js/blocks.js:2386 -#: js/blocks.js:2578 -#: js/blocks.js:2784 -#: js/blocks.js:2940 -#: js/blocks.js:3514 -#: js/blocks.js:4319 -#: js/block.js:720 -#: js/block.js:3892 -#: js/block.js:3901 -#: js/block.js:3912 -#: js/activity.js:2732 -#: js/analytics.js:475 -#: js/palette.js:681 -#: js/palette.js:690 -#: js/palette.js:699 -#: js/palette.js:708 -#: js/palette.js:1983 -#: js/palette.js:1994 -#: js/palette.js:2005 -#: js/palette.js:2016 -#: js/turtledefs.js:23 -#: js/basicblocks.js:1148 -#: js/basicblocks.js:1159 -#: js/basicblocks.js:1170 -#: js/basicblocks.js:2817 -#: js/basicblocks.js:2848 -#: js/basicblocks.js:2855 -#: js/basicblocks.js:2884 -#: js/basicblocks.js:2894 -#: js/basicblocks.js:2926 -#: js/basicblocks.js:2971 -#: js/basicblocks.js:2975 -#: js/basicblocks.js:2981 -#: js/macros.js:44 -#: js/blocks.js:784 -#: js/blocks.js:2385 -#: js/blocks.js:2386 -#: js/blocks.js:2578 -#: js/blocks.js:2784 -#: js/blocks.js:2940 -#: js/blocks.js:3514 -#: js/blocks.js:4319 -#: js/block.js:863 -#: js/block.js:4105 -#: js/block.js:4114 -#: js/block.js:4125 -#: js/activity.js:2934 -#: js/palette.js:734 -#: js/palette.js:745 -#: js/palette.js:754 -#: js/palette.js:763 -#: js/palette.js:2076 -#: js/palette.js:2088 -#: js/palette.js:2099 -#: js/palette.js:2110 -#: js/turtledefs.js:23 -#: js/basicblocks.js:1406 -#: js/basicblocks.js:1420 -#: js/basicblocks.js:1434 -#: js/basicblocks.js:3700 -#: js/basicblocks.js:3740 -#: js/basicblocks.js:3750 -#: js/basicblocks.js:3788 -#: js/basicblocks.js:3801 -#: js/basicblocks.js:3852 -#: js/basicblocks.js:3897 -#: js/basicblocks.js:3902 -#: js/basicblocks.js:3907 -#: js/rubrics.js:475 -#: js/macros.js:44 -#: js/blocks.js:863 -#: js/blocks.js:2466 -#: js/blocks.js:2467 -#: js/blocks.js:2659 -#: js/blocks.js:2865 -#: js/blocks.js:3021 -#: js/blocks.js:3661 -#: js/blocks.js:4458 -#: js/rhythmruler.js:1138 -#: js/rhythmruler.js:1140 -#: js/rhythmruler.js:1240 -#: js/rhythmruler.js:1242 -#: js/block.js:876 -#: js/block.js:4289 -#: js/block.js:4298 -#: js/block.js:4309 -#: js/activity.js:3042 -#: js/palette.js:750 -#: js/palette.js:759 -#: js/palette.js:768 -#: js/palette.js:777 -#: js/palette.js:2057 -#: js/palette.js:2068 -#: js/palette.js:2079 -#: js/palette.js:2090 -#: js/palette.js:2100 -#: js/turtledefs.js:23 -#: js/basicblocks.js:1407 -#: js/basicblocks.js:1421 -#: js/basicblocks.js:1435 -#: js/basicblocks.js:3720 -#: js/basicblocks.js:3760 -#: js/basicblocks.js:3770 -#: js/basicblocks.js:3808 -#: js/basicblocks.js:3821 -#: js/basicblocks.js:3862 -#: js/basicblocks.js:3917 -#: js/basicblocks.js:3922 -#: js/basicblocks.js:3927 -#: js/rubrics.js:476 -#: js/macros.js:44 -#: js/blocks.js:863 -#: js/blocks.js:2475 -#: js/blocks.js:2476 -#: js/blocks.js:2668 -#: js/blocks.js:2874 -#: js/blocks.js:3030 -#: js/blocks.js:3851 -#: js/blocks.js:4668 -#: js/rhythmruler.js:1149 -#: js/rhythmruler.js:1151 -#: js/rhythmruler.js:1251 -#: js/rhythmruler.js:1253 -#: js/block.js:923 -#: js/block.js:4637 -#: js/block.js:4646 -#: js/block.js:4657 -#: js/activity.js:3061 -#: js/palette.js:737 -#: js/palette.js:746 -#: js/palette.js:755 -#: js/palette.js:764 -#: js/palette.js:2043 -#: js/palette.js:2054 -#: js/palette.js:2065 -#: js/palette.js:2076 -#: js/palette.js:2086 -#: js/turtledefs.js:23 -#: js/basicblocks.js:1445 -#: js/basicblocks.js:1459 -#: js/basicblocks.js:1473 -#: js/basicblocks.js:3776 -#: js/basicblocks.js:3816 -#: js/basicblocks.js:3826 -#: js/basicblocks.js:3864 -#: js/basicblocks.js:3877 -#: js/basicblocks.js:3918 -#: js/basicblocks.js:3973 -#: js/basicblocks.js:3978 -#: js/basicblocks.js:3983 -#: js/rubrics.js:477 -#: js/macros.js:45 -#: js/blocks.js:816 -#: js/blocks.js:2432 -#: js/blocks.js:2433 -#: js/blocks.js:2625 -#: js/blocks.js:2869 -#: js/blocks.js:3025 -#: js/blocks.js:3866 -#: js/blocks.js:4705 -#: js/rhythmruler.js:1149 -#: js/rhythmruler.js:1151 -#: js/rhythmruler.js:1251 -#: js/rhythmruler.js:1253 -#: js/block.js:923 -#: js/block.js:4823 -#: js/block.js:4832 -#: js/block.js:4843 -#: js/activity.js:3079 -#: js/palette.js:737 -#: js/palette.js:746 -#: js/palette.js:755 -#: js/palette.js:764 -#: js/palette.js:2043 -#: js/palette.js:2054 -#: js/palette.js:2065 -#: js/palette.js:2076 -#: js/palette.js:2086 -#: js/turtledefs.js:23 -#: js/basicblocks.js:1441 -#: js/basicblocks.js:1455 -#: js/basicblocks.js:1469 -#: js/basicblocks.js:3762 -#: js/basicblocks.js:3802 -#: js/basicblocks.js:3812 -#: js/basicblocks.js:3850 -#: js/basicblocks.js:3863 -#: js/basicblocks.js:3904 -#: js/basicblocks.js:3959 -#: js/basicblocks.js:3964 -#: js/basicblocks.js:3969 -#: js/rubrics.js:477 -#: js/macros.js:45 -#: js/blocks.js:816 -#: js/blocks.js:2430 -#: js/blocks.js:2431 -#: js/blocks.js:2623 -#: js/blocks.js:2867 -#: js/blocks.js:3023 -#: js/blocks.js:3864 -#: js/blocks.js:4702 -#: js/rhythmruler.js:1149 -#: js/rhythmruler.js:1151 -#: js/rhythmruler.js:1251 -#: js/rhythmruler.js:1253 -#: js/block.js:923 -#: js/block.js:4836 -#: js/block.js:4845 -#: js/block.js:4856 -#: js/activity.js:3089 -#: js/palette.js:737 -#: js/palette.js:746 -#: js/palette.js:755 -#: js/palette.js:764 -#: js/palette.js:2043 -#: js/palette.js:2054 -#: js/palette.js:2065 -#: js/palette.js:2076 -#: js/palette.js:2086 -#: js/turtledefs.js:23 -#: js/basicblocks.js:1441 -#: js/basicblocks.js:1455 -#: js/basicblocks.js:1469 -#: js/basicblocks.js:3762 -#: js/basicblocks.js:3802 -#: js/basicblocks.js:3812 -#: js/basicblocks.js:3850 -#: js/basicblocks.js:3863 -#: js/basicblocks.js:3904 -#: js/basicblocks.js:3959 -#: js/basicblocks.js:3964 -#: js/basicblocks.js:3969 -#: js/rubrics.js:477 -#: js/macros.js:45 -#: js/blocks.js:816 -#: js/blocks.js:2432 -#: js/blocks.js:2433 -#: js/blocks.js:2625 -#: js/blocks.js:2869 -#: js/blocks.js:3025 -#: js/blocks.js:3866 -#: js/blocks.js:4704 -#: js/rhythmruler.js:1149 -#: js/rhythmruler.js:1151 -#: js/rhythmruler.js:1251 -#: js/rhythmruler.js:1253 -#: js/block.js:923 -#: js/block.js:4841 -#: js/block.js:4850 -#: js/block.js:4861 -#: js/activity.js:3079 -#: js/palette.js:737 -#: js/palette.js:746 -#: js/palette.js:755 -#: js/palette.js:764 -#: js/palette.js:2043 -#: js/palette.js:2054 -#: js/palette.js:2065 -#: js/palette.js:2076 -#: js/palette.js:2086 -#: js/turtledefs.js:23 -#: js/basicblocks.js:1474 -#: js/basicblocks.js:1488 -#: js/basicblocks.js:1502 -#: js/basicblocks.js:3808 -#: js/basicblocks.js:3848 -#: js/basicblocks.js:3858 -#: js/basicblocks.js:3896 -#: js/basicblocks.js:3909 -#: js/basicblocks.js:3950 -#: js/basicblocks.js:4005 -#: js/basicblocks.js:4010 -#: js/basicblocks.js:4015 -#: js/rubrics.js:477 -#: js/macros.js:45 -#: js/blocks.js:816 -#: js/blocks.js:2433 -#: js/blocks.js:2434 -#: js/blocks.js:2626 -#: js/blocks.js:2870 -#: js/blocks.js:3026 -#: js/blocks.js:3867 -#: js/blocks.js:4705 -#: js/rhythmruler.js:1157 -#: js/rhythmruler.js:1159 -#: js/rhythmruler.js:1259 -#: js/rhythmruler.js:1261 -#: js/block.js:923 -#: js/block.js:4845 -#: js/block.js:4854 -#: js/block.js:4865 -#: js/activity.js:3083 -#: js/palette.js:765 -#: js/palette.js:774 -#: js/palette.js:783 -#: js/palette.js:792 -#: js/palette.js:2072 -#: js/palette.js:2083 -#: js/palette.js:2094 -#: js/palette.js:2105 -#: js/palette.js:2115 -#: js/turtledefs.js:25 -#: js/basicblocks.js:1474 -#: js/basicblocks.js:1488 -#: js/basicblocks.js:1502 -#: js/basicblocks.js:3808 -#: js/basicblocks.js:3848 -#: js/basicblocks.js:3858 -#: js/basicblocks.js:3896 -#: js/basicblocks.js:3909 -#: js/basicblocks.js:3950 -#: js/basicblocks.js:4005 -#: js/basicblocks.js:4010 -#: js/basicblocks.js:4015 -#: js/rubrics.js:477 -#: js/macros.js:45 -#: js/blocks.js:816 -#: js/blocks.js:2433 -#: js/blocks.js:2434 -#: js/blocks.js:2626 -#: js/blocks.js:2870 -#: js/blocks.js:3026 -#: js/blocks.js:3867 -#: js/blocks.js:4705 -#: js/rhythmruler.js:1157 -#: js/rhythmruler.js:1159 -#: js/rhythmruler.js:1259 -#: js/rhythmruler.js:1261 -#: js/block.js:923 -#: js/block.js:4845 -#: js/block.js:4854 -#: js/block.js:4865 -#: js/activity.js:3083 -#: js/palette.js:765 -#: js/palette.js:774 -#: js/palette.js:783 -#: js/palette.js:792 -#: js/palette.js:2072 -#: js/palette.js:2083 -#: js/palette.js:2094 -#: js/palette.js:2105 -#: js/palette.js:2115 -#: js/turtledefs.js:25 -#: js/basicblocks.js:1474 -#: js/basicblocks.js:1488 -#: js/basicblocks.js:1502 -#: js/basicblocks.js:3808 -#: js/basicblocks.js:3848 -#: js/basicblocks.js:3858 -#: js/basicblocks.js:3896 -#: js/basicblocks.js:3909 -#: js/basicblocks.js:3950 -#: js/basicblocks.js:4005 -#: js/basicblocks.js:4010 -#: js/basicblocks.js:4015 -#: js/rubrics.js:477 -#: js/macros.js:45 -#: js/blocks.js:816 -#: js/blocks.js:2433 -#: js/blocks.js:2434 -#: js/blocks.js:2626 -#: js/blocks.js:2870 -#: js/blocks.js:3026 -#: js/blocks.js:3867 -#: js/blocks.js:4705 -#: js/rhythmruler.js:1157 -#: js/rhythmruler.js:1159 -#: js/rhythmruler.js:1259 -#: js/rhythmruler.js:1261 -#: js/block.js:923 -#: js/block.js:4845 -#: js/block.js:4854 -#: js/block.js:4865 -#: js/activity.js:3083 -#: js/palette.js:765 -#: js/palette.js:774 -#: js/palette.js:783 -#: js/palette.js:792 -#: js/palette.js:2072 -#: js/palette.js:2083 -#: js/palette.js:2094 -#: js/palette.js:2105 -#: js/palette.js:2115 -#: js/turtledefs.js:25 -#: js/basicblocks.js:1474 -#: js/basicblocks.js:1488 -#: js/basicblocks.js:1502 -#: js/basicblocks.js:3808 -#: js/basicblocks.js:3848 -#: js/basicblocks.js:3858 -#: js/basicblocks.js:3896 -#: js/basicblocks.js:3909 -#: js/basicblocks.js:3950 -#: js/basicblocks.js:4005 -#: js/basicblocks.js:4010 -#: js/basicblocks.js:4015 -#: js/rubrics.js:477 -#: js/macros.js:45 -#: js/blocks.js:816 -#: js/blocks.js:2433 -#: js/blocks.js:2434 -#: js/blocks.js:2626 -#: js/blocks.js:2870 -#: js/blocks.js:3026 -#: js/blocks.js:3867 -#: js/blocks.js:4705 -#: js/rhythmruler.js:1157 -#: js/rhythmruler.js:1159 -#: js/rhythmruler.js:1259 -#: js/rhythmruler.js:1261 -#: js/block.js:926 -#: js/block.js:4883 -#: js/block.js:4892 -#: js/block.js:4903 -#: js/activity.js:3083 -#: js/palette.js:765 -#: js/palette.js:774 -#: js/palette.js:783 -#: js/palette.js:792 -#: js/palette.js:2075 -#: js/palette.js:2086 -#: js/palette.js:2097 -#: js/palette.js:2108 -#: js/palette.js:2118 -#: js/turtledefs.js:25 -#: js/basicblocks.js:1474 -#: js/basicblocks.js:1488 -#: js/basicblocks.js:1502 -#: js/basicblocks.js:3830 -#: js/basicblocks.js:3870 -#: js/basicblocks.js:3880 -#: js/basicblocks.js:3918 -#: js/basicblocks.js:3931 -#: js/basicblocks.js:3972 -#: js/basicblocks.js:4027 -#: js/basicblocks.js:4032 -#: js/basicblocks.js:4037 -#: js/rubrics.js:478 -#: js/macros.js:45 -#: js/blocks.js:816 -#: js/blocks.js:2437 -#: js/blocks.js:2438 -#: js/blocks.js:2630 -#: js/blocks.js:2874 -#: js/blocks.js:3030 -#: js/blocks.js:3871 -#: js/blocks.js:4724 -#: js/rhythmruler.js:1157 -#: js/rhythmruler.js:1159 -#: js/rhythmruler.js:1259 -#: js/rhythmruler.js:1261 -#: js/block.js:926 -#: js/block.js:4883 -#: js/block.js:4892 -#: js/block.js:4903 -#: js/activity.js:3078 -#: js/palette.js:765 -#: js/palette.js:774 -#: js/palette.js:783 -#: js/palette.js:792 -#: js/palette.js:2075 -#: js/palette.js:2086 -#: js/palette.js:2097 -#: js/palette.js:2108 -#: js/palette.js:2118 -#: js/turtledefs.js:25 -#: js/basicblocks.js:1475 -#: js/basicblocks.js:1489 -#: js/basicblocks.js:1503 -#: js/basicblocks.js:3832 -#: js/basicblocks.js:3872 -#: js/basicblocks.js:3882 -#: js/basicblocks.js:3920 -#: js/basicblocks.js:3933 -#: js/basicblocks.js:3974 -#: js/basicblocks.js:4029 -#: js/basicblocks.js:4034 -#: js/basicblocks.js:4039 -#: js/rubrics.js:478 -#: js/macros.js:45 -#: js/blocks.js:816 -#: js/blocks.js:2437 -#: js/blocks.js:2438 -#: js/blocks.js:2630 -#: js/blocks.js:2874 -#: js/blocks.js:3030 -#: js/blocks.js:3871 -#: js/blocks.js:4724 -#: js/rhythmruler.js:1162 -#: js/rhythmruler.js:1164 -#: js/rhythmruler.js:1272 -#: js/rhythmruler.js:1274 -#: js/block.js:1046 -#: js/block.js:5109 -#: js/block.js:5118 -#: js/block.js:5129 -#: js/activity.js:3147 -#: js/palette.js:766 -#: js/palette.js:775 -#: js/palette.js:784 -#: js/palette.js:793 -#: js/palette.js:2076 -#: js/palette.js:2087 -#: js/palette.js:2098 -#: js/palette.js:2109 -#: js/palette.js:2119 -#: js/turtledefs.js:25 -#: js/basicblocks.js:1504 -#: js/basicblocks.js:1524 -#: js/basicblocks.js:1538 -#: js/basicblocks.js:3894 -#: js/basicblocks.js:3934 -#: js/basicblocks.js:3944 -#: js/basicblocks.js:3992 -#: js/basicblocks.js:4005 -#: js/basicblocks.js:4052 -#: js/basicblocks.js:4107 -#: js/basicblocks.js:4112 -#: js/basicblocks.js:4117 -#: js/rubrics.js:478 -#: js/macros.js:45 -#: js/blocks.js:816 -#: js/blocks.js:2437 -#: js/blocks.js:2438 -#: js/blocks.js:2630 -#: js/blocks.js:2874 -#: js/blocks.js:3030 -#: js/blocks.js:3940 -#: js/blocks.js:4793 -#: js/rhythmruler.js:1162 -#: js/rhythmruler.js:1164 -#: js/rhythmruler.js:1272 -#: js/rhythmruler.js:1274 -#: js/block.js:1050 -#: js/block.js:5120 -#: js/block.js:5129 -#: js/block.js:5140 -#: js/activity.js:2267 -#: js/palette.js:766 -#: js/palette.js:775 -#: js/palette.js:784 -#: js/palette.js:793 -#: js/palette.js:2094 -#: js/palette.js:2105 -#: js/palette.js:2116 -#: js/palette.js:2127 -#: js/palette.js:2137 -#: js/turtledefs.js:25 -#: js/basicblocks.js:1514 -#: js/basicblocks.js:1534 -#: js/basicblocks.js:1548 -#: js/basicblocks.js:3942 -#: js/basicblocks.js:3982 -#: js/basicblocks.js:3992 -#: js/basicblocks.js:4040 -#: js/basicblocks.js:4053 -#: js/basicblocks.js:4100 -#: js/basicblocks.js:4155 -#: js/basicblocks.js:4160 -#: js/basicblocks.js:4165 -#: js/rubrics.js:478 -#: js/macros.js:45 -#: js/blocks.js:809 -#: js/blocks.js:2430 -#: js/blocks.js:2431 -#: js/blocks.js:2623 -#: js/blocks.js:2867 -#: js/blocks.js:3023 -#: js/blocks.js:3931 -#: js/blocks.js:4784 -#: js/rhythmruler.js:1162 -#: js/rhythmruler.js:1164 -#: js/rhythmruler.js:1272 -#: js/rhythmruler.js:1274 -#: js/block.js:1050 -#: js/block.js:5120 -#: js/block.js:5129 -#: js/block.js:5140 -#: js/activity.js:2267 -#: js/palette.js:766 -#: js/palette.js:775 -#: js/palette.js:784 -#: js/palette.js:793 -#: js/palette.js:2094 -#: js/palette.js:2105 -#: js/palette.js:2116 -#: js/palette.js:2127 -#: js/palette.js:2137 -#: js/turtledefs.js:25 -#: js/basicblocks.js:1519 -#: js/basicblocks.js:1539 -#: js/basicblocks.js:1553 -#: js/basicblocks.js:3959 -#: js/basicblocks.js:3999 -#: js/basicblocks.js:4009 -#: js/basicblocks.js:4057 -#: js/basicblocks.js:4070 -#: js/basicblocks.js:4117 -#: js/basicblocks.js:4172 -#: js/basicblocks.js:4177 -#: js/basicblocks.js:4182 -#: js/rubrics.js:478 -#: js/macros.js:45 -#: js/blocks.js:809 -#: js/blocks.js:2430 -#: js/blocks.js:2431 -#: js/blocks.js:2623 -#: js/blocks.js:2867 -#: js/blocks.js:3023 -#: js/blocks.js:3931 -#: js/blocks.js:4784 -#: js/rhythmruler.js:1162 -#: js/rhythmruler.js:1164 -#: js/rhythmruler.js:1272 -#: js/rhythmruler.js:1274 -#: js/block.js:1050 -#: js/block.js:5120 -#: js/block.js:5129 -#: js/block.js:5140 -#: js/activity.js:2267 -#: js/palette.js:766 -#: js/palette.js:775 -#: js/palette.js:784 -#: js/palette.js:793 -#: js/palette.js:2094 -#: js/palette.js:2105 -#: js/palette.js:2116 -#: js/palette.js:2127 -#: js/palette.js:2137 -#: js/turtledefs.js:25 -#: js/basicblocks.js:1519 -#: js/basicblocks.js:1539 -#: js/basicblocks.js:1553 -#: js/basicblocks.js:3959 -#: js/basicblocks.js:3999 -#: js/basicblocks.js:4009 -#: js/basicblocks.js:4057 -#: js/basicblocks.js:4070 -#: js/basicblocks.js:4117 -#: js/basicblocks.js:4172 -#: js/basicblocks.js:4177 -#: js/basicblocks.js:4182 -#: js/rubrics.js:478 -#: js/macros.js:45 -#: js/blocks.js:808 -#: js/blocks.js:2429 -#: js/blocks.js:2430 -#: js/blocks.js:2622 -#: js/blocks.js:2866 -#: js/blocks.js:3022 -#: js/blocks.js:3930 -#: js/blocks.js:4783 -#: js/rhythmruler.js:1162 -#: js/rhythmruler.js:1164 -#: js/rhythmruler.js:1272 -#: js/rhythmruler.js:1274 -#: js/block.js:1050 -#: js/block.js:5120 -#: js/block.js:5129 -#: js/block.js:5140 -#: js/activity.js:2267 -#: js/palette.js:766 -#: js/palette.js:775 -#: js/palette.js:784 -#: js/palette.js:793 -#: js/palette.js:2094 -#: js/palette.js:2105 -#: js/palette.js:2116 -#: js/palette.js:2127 -#: js/palette.js:2137 -#: js/turtledefs.js:25 -#: js/basicblocks.js:1519 -#: js/basicblocks.js:1539 -#: js/basicblocks.js:1553 -#: js/basicblocks.js:3959 -#: js/basicblocks.js:3999 -#: js/basicblocks.js:4009 -#: js/basicblocks.js:4057 -#: js/basicblocks.js:4070 -#: js/basicblocks.js:4117 -#: js/basicblocks.js:4172 -#: js/basicblocks.js:4177 -#: js/basicblocks.js:4182 -#: js/rubrics.js:478 -#: js/macros.js:45 -#: js/blocks.js:808 -#: js/blocks.js:2429 -#: js/blocks.js:2430 -#: js/blocks.js:2622 -#: js/blocks.js:2866 -#: js/blocks.js:3022 -#: js/blocks.js:3930 -#: js/blocks.js:4783 -#: js/rhythmruler.js:1162 -#: js/rhythmruler.js:1164 -#: js/rhythmruler.js:1272 -#: js/rhythmruler.js:1274 -#: js/block.js:1050 -#: js/block.js:5120 -#: js/block.js:5129 -#: js/block.js:5140 -#: js/activity.js:2267 -#: js/palette.js:766 -#: js/palette.js:775 -#: js/palette.js:784 -#: js/palette.js:793 -#: js/palette.js:2094 -#: js/palette.js:2105 -#: js/palette.js:2116 -#: js/palette.js:2127 -#: js/palette.js:2137 -#: js/turtledefs.js:25 -#: js/basicblocks.js:1526 -#: js/basicblocks.js:1546 -#: js/basicblocks.js:1560 -#: js/basicblocks.js:3966 -#: js/basicblocks.js:4006 -#: js/basicblocks.js:4016 -#: js/basicblocks.js:4064 -#: js/basicblocks.js:4077 -#: js/basicblocks.js:4124 -#: js/basicblocks.js:4179 -#: js/basicblocks.js:4184 -#: js/basicblocks.js:4189 -#: js/rubrics.js:478 -#: js/macros.js:45 -#: js/blocks.js:808 -#: js/blocks.js:2429 -#: js/blocks.js:2430 -#: js/blocks.js:2622 -#: js/blocks.js:2866 -#: js/blocks.js:3022 -#: js/blocks.js:3930 -#: js/blocks.js:4783 -#: js/rhythmruler.js:1162 -#: js/rhythmruler.js:1164 -#: js/rhythmruler.js:1272 -#: js/rhythmruler.js:1274 -#: js/block.js:1162 -#: js/block.js:5410 -#: js/block.js:5419 -#: js/block.js:5430 -#: js/activity.js:2268 -#: js/palette.js:770 -#: js/palette.js:779 -#: js/palette.js:788 -#: js/palette.js:797 -#: js/palette.js:2098 -#: js/palette.js:2109 -#: js/palette.js:2120 -#: js/palette.js:2131 -#: js/palette.js:2141 -#: js/turtledefs.js:31 -#: js/basicblocks.js:1528 -#: js/basicblocks.js:1548 -#: js/basicblocks.js:1562 -#: js/basicblocks.js:3968 -#: js/basicblocks.js:4008 -#: js/basicblocks.js:4018 -#: js/basicblocks.js:4066 -#: js/basicblocks.js:4079 -#: js/basicblocks.js:4126 -#: js/basicblocks.js:4181 -#: js/basicblocks.js:4186 -#: js/basicblocks.js:4191 -#: js/rubrics.js:478 -#: js/macros.js:45 -#: js/blocks.js:1023 -#: js/blocks.js:2839 -#: js/blocks.js:2840 -#: js/blocks.js:3054 -#: js/blocks.js:3356 -#: js/blocks.js:3549 -#: js/blocks.js:4588 -#: js/blocks.js:5446 -#: js/musickeyboard.js:369 -#: js/pitchtimematrix.js:1612 -#: js/rhythmruler.js:1171 -#: js/rhythmruler.js:1173 -#: js/rhythmruler.js:1281 -#: js/rhythmruler.js:1283 -#: js/block.js:1162 -#: js/block.js:5410 -#: js/block.js:5419 -#: js/block.js:5430 -#: js/activity.js:2268 -#: js/palette.js:770 -#: js/palette.js:779 -#: js/palette.js:788 -#: js/palette.js:797 -#: js/palette.js:2098 -#: js/palette.js:2109 -#: js/palette.js:2120 -#: js/palette.js:2131 -#: js/palette.js:2141 -#: js/turtledefs.js:35 -#: js/basicblocks.js:1528 -#: js/basicblocks.js:1548 -#: js/basicblocks.js:1562 -#: js/basicblocks.js:3968 -#: js/basicblocks.js:4008 -#: js/basicblocks.js:4018 -#: js/basicblocks.js:4066 -#: js/basicblocks.js:4079 -#: js/basicblocks.js:4126 -#: js/basicblocks.js:4181 -#: js/basicblocks.js:4186 -#: js/basicblocks.js:4191 -#: js/rubrics.js:478 -#: js/macros.js:45 -#: js/blocks.js:1023 -#: js/blocks.js:2839 -#: js/blocks.js:2840 -#: js/blocks.js:3054 -#: js/blocks.js:3356 -#: js/blocks.js:3549 -#: js/blocks.js:4588 -#: js/blocks.js:5446 -#: js/musickeyboard.js:369 -#: js/pitchtimematrix.js:1612 -#: js/rhythmruler.js:1171 -#: js/rhythmruler.js:1173 -#: js/rhythmruler.js:1281 -#: js/rhythmruler.js:1283 -#: js/block.js:1162 -#: js/block.js:5410 -#: js/block.js:5419 -#: js/block.js:5430 -#: js/activity.js:2133 -#: js/palette.js:770 -#: js/palette.js:779 -#: js/palette.js:788 -#: js/palette.js:797 -#: js/palette.js:2098 -#: js/palette.js:2109 -#: js/palette.js:2120 -#: js/palette.js:2131 -#: js/palette.js:2141 -#: js/turtledefs.js:35 -#: js/basicblocks.js:1528 -#: js/basicblocks.js:1548 -#: js/basicblocks.js:1562 -#: js/basicblocks.js:3968 -#: js/basicblocks.js:4008 -#: js/basicblocks.js:4018 -#: js/basicblocks.js:4066 -#: js/basicblocks.js:4079 -#: js/basicblocks.js:4126 -#: js/basicblocks.js:4181 -#: js/basicblocks.js:4186 -#: js/basicblocks.js:4191 -#: js/rubrics.js:478 -#: js/macros.js:45 -#: js/blocks.js:1023 -#: js/blocks.js:2839 -#: js/blocks.js:2840 -#: js/blocks.js:3054 -#: js/blocks.js:3356 -#: js/blocks.js:3549 -#: js/blocks.js:4588 -#: js/blocks.js:5446 -#: js/musickeyboard.js:369 -#: js/pitchtimematrix.js:1612 -#: js/rhythmruler.js:1171 -#: js/rhythmruler.js:1173 -#: js/rhythmruler.js:1281 -#: js/rhythmruler.js:1283 -#: js/block.js:1162 -#: js/block.js:5410 -#: js/block.js:5419 -#: js/block.js:5430 -#: js/activity.js:2133 -#: js/palette.js:770 -#: js/palette.js:779 -#: js/palette.js:788 -#: js/palette.js:797 -#: js/palette.js:2098 -#: js/palette.js:2109 -#: js/palette.js:2120 -#: js/palette.js:2131 -#: js/palette.js:2141 -#: js/turtledefs.js:35 -#: js/basicblocks.js:1528 -#: js/basicblocks.js:1548 -#: js/basicblocks.js:1562 -#: js/basicblocks.js:3968 -#: js/basicblocks.js:4008 -#: js/basicblocks.js:4018 -#: js/basicblocks.js:4066 -#: js/basicblocks.js:4079 -#: js/basicblocks.js:4126 -#: js/basicblocks.js:4181 -#: js/basicblocks.js:4186 -#: js/basicblocks.js:4191 -#: js/rubrics.js:478 -#: js/macros.js:45 -#: js/blocks.js:1023 -#: js/blocks.js:2839 -#: js/blocks.js:2840 -#: js/blocks.js:3054 -#: js/blocks.js:3356 -#: js/blocks.js:3549 -#: js/blocks.js:4588 -#: js/blocks.js:5446 -#: js/musickeyboard.js:369 -#: js/pitchtimematrix.js:1612 -#: js/rhythmruler.js:1171 -#: js/rhythmruler.js:1173 -#: js/rhythmruler.js:1281 -#: js/rhythmruler.js:1283 -#: js/block.js:1162 -#: js/block.js:5410 -#: js/block.js:5419 -#: js/block.js:5430 -#: js/activity.js:2127 -#: js/palette.js:770 -#: js/palette.js:779 -#: js/palette.js:788 -#: js/palette.js:797 -#: js/palette.js:2098 -#: js/palette.js:2109 -#: js/palette.js:2120 -#: js/palette.js:2131 -#: js/palette.js:2141 -#: js/turtledefs.js:35 -#: js/basicblocks.js:1528 -#: js/basicblocks.js:1548 -#: js/basicblocks.js:1562 -#: js/basicblocks.js:3968 -#: js/basicblocks.js:4008 -#: js/basicblocks.js:4018 -#: js/basicblocks.js:4066 -#: js/basicblocks.js:4079 -#: js/basicblocks.js:4127 -#: js/basicblocks.js:4182 -#: js/basicblocks.js:4187 -#: js/basicblocks.js:4192 -#: js/rubrics.js:478 -#: js/macros.js:45 -#: js/blocks.js:1023 -#: js/blocks.js:2849 -#: js/blocks.js:2850 -#: js/blocks.js:3064 -#: js/blocks.js:3366 -#: js/blocks.js:3559 -#: js/blocks.js:4598 -#: js/blocks.js:5455 -#: js/musickeyboard.js:369 -#: js/pitchtimematrix.js:1612 -#: js/rhythmruler.js:1171 -#: js/rhythmruler.js:1173 -#: js/rhythmruler.js:1281 -#: js/rhythmruler.js:1283 -#: js/block.js:1162 -#: js/block.js:5410 -#: js/block.js:5419 -#: js/block.js:5430 -#: js/activity.js:2127 -#: js/palette.js:770 -#: js/palette.js:779 -#: js/palette.js:788 -#: js/palette.js:797 -#: js/palette.js:2098 -#: js/palette.js:2109 -#: js/palette.js:2120 -#: js/palette.js:2131 -#: js/palette.js:2141 -#: js/turtledefs.js:35 -#: js/basicblocks.js:1527 -#: js/basicblocks.js:1547 -#: js/basicblocks.js:1561 -#: js/basicblocks.js:3967 -#: js/basicblocks.js:4007 -#: js/basicblocks.js:4017 -#: js/basicblocks.js:4065 -#: js/basicblocks.js:4078 -#: js/basicblocks.js:4126 -#: js/basicblocks.js:4181 -#: js/basicblocks.js:4186 -#: js/basicblocks.js:4191 -#: js/rubrics.js:478 -#: js/macros.js:45 -#: js/blocks.js:1023 -#: js/blocks.js:2849 -#: js/blocks.js:2850 -#: js/blocks.js:3064 -#: js/blocks.js:3366 -#: js/blocks.js:3559 -#: js/blocks.js:4598 -#: js/blocks.js:5455 -#: js/musickeyboard.js:369 -#: js/pitchtimematrix.js:1612 -#: js/rhythmruler.js:1171 -#: js/rhythmruler.js:1173 -#: js/rhythmruler.js:1281 -#: js/rhythmruler.js:1283 -#: js/block.js:1162 -#: js/block.js:5410 -#: js/block.js:5419 -#: js/block.js:5430 -#: js/activity.js:2127 -#: js/palette.js:770 -#: js/palette.js:779 -#: js/palette.js:788 -#: js/palette.js:797 -#: js/palette.js:2098 -#: js/palette.js:2109 -#: js/palette.js:2120 -#: js/palette.js:2131 -#: js/palette.js:2141 -#: js/turtledefs.js:35 -#: js/basicblocks.js:1527 -#: js/basicblocks.js:1547 -#: js/basicblocks.js:1561 -#: js/basicblocks.js:3967 -#: js/basicblocks.js:4007 -#: js/basicblocks.js:4017 -#: js/basicblocks.js:4065 -#: js/basicblocks.js:4078 -#: js/basicblocks.js:4126 -#: js/basicblocks.js:4181 -#: js/basicblocks.js:4186 -#: js/basicblocks.js:4191 -#: js/rubrics.js:478 -#: js/macros.js:45 -#: js/blocks.js:1023 -#: js/blocks.js:2849 -#: js/blocks.js:2850 -#: js/blocks.js:3064 -#: js/blocks.js:3366 -#: js/blocks.js:3559 -#: js/blocks.js:4598 -#: js/blocks.js:5455 -#: js/musickeyboard.js:369 -#: js/pitchtimematrix.js:1612 -#: js/rhythmruler.js:1171 -#: js/rhythmruler.js:1173 -#: js/rhythmruler.js:1281 -#: js/rhythmruler.js:1283 -#: js/block.js:1162 -#: js/block.js:5410 -#: js/block.js:5419 -#: js/block.js:5430 -#: js/activity.js:2127 -#: js/palette.js:770 -#: js/palette.js:779 -#: js/palette.js:788 -#: js/palette.js:797 -#: js/palette.js:2098 -#: js/palette.js:2109 -#: js/palette.js:2120 -#: js/palette.js:2131 -#: js/palette.js:2141 -#: js/turtledefs.js:35 -#: js/basicblocks.js:1527 -#: js/basicblocks.js:1547 -#: js/basicblocks.js:1561 -#: js/basicblocks.js:3967 -#: js/basicblocks.js:4007 -#: js/basicblocks.js:4017 -#: js/basicblocks.js:4065 -#: js/basicblocks.js:4078 -#: js/basicblocks.js:4126 -#: js/basicblocks.js:4181 -#: js/basicblocks.js:4186 -#: js/basicblocks.js:4191 -#: js/rubrics.js:478 -#: js/macros.js:45 -#: js/blocks.js:1023 -#: js/blocks.js:2849 -#: js/blocks.js:2850 -#: js/blocks.js:3064 -#: js/blocks.js:3366 -#: js/blocks.js:3559 -#: js/blocks.js:4598 -#: js/blocks.js:5455 -#: js/musickeyboard.js:369 -#: js/pitchtimematrix.js:1612 -#: js/rhythmruler.js:1171 -#: js/rhythmruler.js:1173 -#: js/rhythmruler.js:1281 -#: js/rhythmruler.js:1283 -#: js/block.js:1162 -#: js/block.js:5410 -#: js/block.js:5419 -#: js/block.js:5430 -#: js/activity.js:2127 -#: js/palette.js:770 -#: js/palette.js:779 -#: js/palette.js:788 -#: js/palette.js:797 -#: js/palette.js:2098 -#: js/palette.js:2109 -#: js/palette.js:2120 -#: js/palette.js:2131 -#: js/palette.js:2141 -#: js/turtledefs.js:35 -#: js/basicblocks.js:1531 -#: js/basicblocks.js:1551 -#: js/basicblocks.js:1565 -#: js/basicblocks.js:3971 -#: js/basicblocks.js:4011 -#: js/basicblocks.js:4021 -#: js/basicblocks.js:4069 -#: js/basicblocks.js:4082 -#: js/basicblocks.js:4130 -#: js/basicblocks.js:4185 -#: js/basicblocks.js:4190 -#: js/basicblocks.js:4195 -#: js/rubrics.js:478 -#: js/macros.js:45 -#: js/blocks.js:1023 -#: js/blocks.js:2849 -#: js/blocks.js:2850 -#: js/blocks.js:3064 -#: js/blocks.js:3366 -#: js/blocks.js:3559 -#: js/blocks.js:4598 -#: js/blocks.js:5455 -#: js/musickeyboard.js:369 -#: js/pitchtimematrix.js:1612 -#: js/rhythmruler.js:1171 -#: js/rhythmruler.js:1173 -#: js/rhythmruler.js:1281 -#: js/rhythmruler.js:1283 -#: js/block.js:1162 -#: js/block.js:5410 -#: js/block.js:5419 -#: js/block.js:5430 -#: js/activity.js:2127 -#: js/palette.js:770 -#: js/palette.js:779 -#: js/palette.js:788 -#: js/palette.js:797 -#: js/palette.js:2098 -#: js/palette.js:2109 -#: js/palette.js:2120 -#: js/palette.js:2131 -#: js/palette.js:2141 -#: js/turtledefs.js:35 -#: js/basicblocks.js:1531 -#: js/basicblocks.js:1551 -#: js/basicblocks.js:1565 -#: js/basicblocks.js:3971 -#: js/basicblocks.js:4011 -#: js/basicblocks.js:4021 -#: js/basicblocks.js:4069 -#: js/basicblocks.js:4082 -#: js/basicblocks.js:4130 -#: js/basicblocks.js:4185 -#: js/basicblocks.js:4190 -#: js/basicblocks.js:4195 -#: js/rubrics.js:478 -#: js/macros.js:45 -#: js/blocks.js:1023 -#: js/blocks.js:2849 -#: js/blocks.js:2850 -#: js/blocks.js:3064 -#: js/blocks.js:3366 -#: js/blocks.js:3559 -#: js/blocks.js:4598 -#: js/blocks.js:5455 -#: js/musickeyboard.js:369 -#: js/pitchtimematrix.js:1612 -#: js/rhythmruler.js:1171 -#: js/rhythmruler.js:1173 -#: js/rhythmruler.js:1281 -#: js/rhythmruler.js:1283 -#: js/block.js:1162 -#: js/block.js:5410 -#: js/block.js:5419 -#: js/block.js:5430 -#: js/activity.js:2127 -#: js/palette.js:770 -#: js/palette.js:779 -#: js/palette.js:788 -#: js/palette.js:797 -#: js/palette.js:2098 -#: js/palette.js:2109 -#: js/palette.js:2120 -#: js/palette.js:2131 -#: js/palette.js:2141 -#: js/turtledefs.js:35 -#: js/basicblocks.js:1531 -#: js/basicblocks.js:1551 -#: js/basicblocks.js:1565 -#: js/basicblocks.js:3971 -#: js/basicblocks.js:4011 -#: js/basicblocks.js:4021 -#: js/basicblocks.js:4069 -#: js/basicblocks.js:4082 -#: js/basicblocks.js:4130 -#: js/basicblocks.js:4185 -#: js/basicblocks.js:4190 -#: js/basicblocks.js:4195 -#: js/rubrics.js:478 -#: js/macros.js:45 -#: js/blocks.js:1023 -#: js/blocks.js:2849 -#: js/blocks.js:2850 -#: js/blocks.js:3064 -#: js/blocks.js:3366 -#: js/blocks.js:3559 -#: js/blocks.js:4598 -#: js/blocks.js:5455 -#: js/musickeyboard.js:369 -#: js/pitchtimematrix.js:1612 -#: js/rhythmruler.js:1171 -#: js/rhythmruler.js:1173 -#: js/rhythmruler.js:1281 -#: js/rhythmruler.js:1283 -#: js/block.js:1162 -#: js/block.js:5413 -#: js/block.js:5422 -#: js/block.js:5433 -#: js/activity.js:2127 -#: js/palette.js:770 -#: js/palette.js:779 -#: js/palette.js:788 -#: js/palette.js:797 -#: js/palette.js:2098 -#: js/palette.js:2109 -#: js/palette.js:2120 -#: js/palette.js:2131 -#: js/palette.js:2141 -#: js/turtledefs.js:35 -#: js/basicblocks.js:1537 -#: js/basicblocks.js:1557 -#: js/basicblocks.js:1571 -#: js/basicblocks.js:3977 -#: js/basicblocks.js:4017 -#: js/basicblocks.js:4027 -#: js/basicblocks.js:4075 -#: js/basicblocks.js:4088 -#: js/basicblocks.js:4136 -#: js/basicblocks.js:4191 -#: js/basicblocks.js:4196 -#: js/basicblocks.js:4201 -#: js/rubrics.js:478 -#: js/macros.js:45 -#: js/blocks.js:1023 -#: js/blocks.js:2849 -#: js/blocks.js:2850 -#: js/blocks.js:3064 -#: js/blocks.js:3366 -#: js/blocks.js:3559 -#: js/blocks.js:4598 -#: js/blocks.js:5455 -#: js/musickeyboard.js:369 -#: js/pitchtimematrix.js:1612 -#: js/rhythmruler.js:1171 -#: js/rhythmruler.js:1173 -#: js/rhythmruler.js:1281 -#: js/rhythmruler.js:1283 -#: js/block.js:1162 -#: js/block.js:5430 -#: js/block.js:5439 -#: js/block.js:5450 -#: js/activity.js:2134 -#: js/palette.js:810 -#: js/palette.js:819 -#: js/palette.js:828 -#: js/palette.js:837 -#: js/palette.js:2142 -#: js/palette.js:2153 -#: js/palette.js:2164 -#: js/palette.js:2175 -#: js/palette.js:2185 -#: js/turtledefs.js:35 -#: js/basicblocks.js:1542 -#: js/basicblocks.js:1562 -#: js/basicblocks.js:1576 -#: js/basicblocks.js:3982 -#: js/basicblocks.js:4022 -#: js/basicblocks.js:4032 -#: js/basicblocks.js:4080 -#: js/basicblocks.js:4093 -#: js/basicblocks.js:4141 -#: js/basicblocks.js:4196 -#: js/basicblocks.js:4201 -#: js/basicblocks.js:4206 -#: js/rubrics.js:478 -#: js/macros.js:45 -#: js/blocks.js:1023 -#: js/blocks.js:2849 -#: js/blocks.js:2850 -#: js/blocks.js:3064 -#: js/blocks.js:3366 -#: js/blocks.js:3559 -#: js/blocks.js:4600 -#: js/blocks.js:5457 -#: js/musickeyboard.js:369 -#: js/pitchtimematrix.js:1612 -#: js/rhythmruler.js:1176 -#: js/rhythmruler.js:1178 -#: js/rhythmruler.js:1286 -#: js/rhythmruler.js:1288 -#: js/block.js:1162 -#: js/block.js:5430 -#: js/block.js:5439 -#: js/block.js:5450 -#: js/activity.js:2134 -#: js/palette.js:810 -#: js/palette.js:819 -#: js/palette.js:828 -#: js/palette.js:837 -#: js/palette.js:2142 -#: js/palette.js:2153 -#: js/palette.js:2164 -#: js/palette.js:2175 -#: js/palette.js:2185 -#: js/turtledefs.js:35 -#: js/basicblocks.js:1542 -#: js/basicblocks.js:1562 -#: js/basicblocks.js:1576 -#: js/basicblocks.js:3982 -#: js/basicblocks.js:4022 -#: js/basicblocks.js:4032 -#: js/basicblocks.js:4080 -#: js/basicblocks.js:4093 -#: js/basicblocks.js:4141 -#: js/basicblocks.js:4196 -#: js/basicblocks.js:4201 -#: js/basicblocks.js:4206 -#: js/rubrics.js:478 -#: js/macros.js:45 -#: js/blocks.js:1023 -#: js/blocks.js:2849 -#: js/blocks.js:2850 -#: js/blocks.js:3064 -#: js/blocks.js:3366 -#: js/blocks.js:3559 -#: js/blocks.js:4600 -#: js/blocks.js:5457 -#: js/musickeyboard.js:369 -#: js/pitchtimematrix.js:1612 -#: js/rhythmruler.js:1176 -#: js/rhythmruler.js:1178 -#: js/rhythmruler.js:1286 -#: js/rhythmruler.js:1288 -#: js/block.js:1162 -#: js/block.js:5430 -#: js/block.js:5439 -#: js/block.js:5450 -#: js/activity.js:2134 -#: js/palette.js:810 -#: js/palette.js:819 -#: js/palette.js:828 -#: js/palette.js:837 -#: js/palette.js:2142 -#: js/palette.js:2153 -#: js/palette.js:2164 -#: js/palette.js:2175 -#: js/palette.js:2185 -#: js/turtledefs.js:35 -#: js/basicblocks.js:1542 -#: js/basicblocks.js:1562 -#: js/basicblocks.js:1576 -#: js/basicblocks.js:3982 -#: js/basicblocks.js:4022 -#: js/basicblocks.js:4032 -#: js/basicblocks.js:4080 -#: js/basicblocks.js:4093 -#: js/basicblocks.js:4141 -#: js/basicblocks.js:4196 -#: js/basicblocks.js:4201 -#: js/basicblocks.js:4206 -#: js/rubrics.js:478 -#: js/macros.js:45 -#: js/blocks.js:1023 -#: js/blocks.js:2849 -#: js/blocks.js:2850 -#: js/blocks.js:3064 -#: js/blocks.js:3366 -#: js/blocks.js:3559 -#: js/blocks.js:4600 -#: js/blocks.js:5457 -#: js/musickeyboard.js:369 -#: js/pitchtimematrix.js:1612 -#: js/rhythmruler.js:1176 -#: js/rhythmruler.js:1178 -#: js/rhythmruler.js:1286 -#: js/rhythmruler.js:1288 -#: js/block.js:1162 -#: js/block.js:5445 -#: js/block.js:5454 -#: js/block.js:5465 -#: js/activity.js:2137 -#: js/palette.js:810 -#: js/palette.js:819 -#: js/palette.js:828 -#: js/palette.js:837 -#: js/palette.js:2142 -#: js/palette.js:2153 -#: js/palette.js:2164 -#: js/palette.js:2175 -#: js/palette.js:2185 -#: js/turtledefs.js:35 -#: js/basicblocks.js:1553 -#: js/basicblocks.js:1573 -#: js/basicblocks.js:1587 -#: js/basicblocks.js:3993 -#: js/basicblocks.js:4033 -#: js/basicblocks.js:4043 -#: js/basicblocks.js:4091 -#: js/basicblocks.js:4104 -#: js/basicblocks.js:4152 -#: js/basicblocks.js:4207 -#: js/basicblocks.js:4212 -#: js/basicblocks.js:4217 -#: js/rubrics.js:478 -#: js/macros.js:45 -#: js/blocks.js:1023 -#: js/blocks.js:2849 -#: js/blocks.js:2850 -#: js/blocks.js:3064 -#: js/blocks.js:3366 -#: js/blocks.js:3559 -#: js/blocks.js:4600 -#: js/blocks.js:5457 -#: js/musickeyboard.js:370 -#: js/pitchtimematrix.js:1642 -#: js/rhythmruler.js:1176 -#: js/rhythmruler.js:1178 -#: js/rhythmruler.js:1286 -#: js/rhythmruler.js:1288 -#: js/block.js:1165 -#: js/block.js:5575 -#: js/block.js:5584 -#: js/block.js:5595 -#: js/activity.js:2240 -#: js/palette.js:812 -#: js/palette.js:821 -#: js/palette.js:830 -#: js/palette.js:839 -#: js/palette.js:2144 -#: js/palette.js:2155 -#: js/palette.js:2166 -#: js/palette.js:2177 -#: js/palette.js:2187 -#: js/turtledefs.js:35 -#: js/basicblocks.js:1559 -#: js/basicblocks.js:1579 -#: js/basicblocks.js:1593 -#: js/basicblocks.js:4003 -#: js/basicblocks.js:4043 -#: js/basicblocks.js:4053 -#: js/basicblocks.js:4101 -#: js/basicblocks.js:4114 -#: js/basicblocks.js:4162 -#: js/basicblocks.js:4217 -#: js/basicblocks.js:4222 -#: js/basicblocks.js:4227 -#: js/rubrics.js:478 -#: js/macros.js:45 -#: js/macros.js:46 -#: js/blocks.js:1025 -#: js/blocks.js:2860 -#: js/blocks.js:2861 -#: js/blocks.js:3075 -#: js/blocks.js:3377 -#: js/blocks.js:3570 -#: js/blocks.js:4612 -#: js/blocks.js:5477 -#: js/musickeyboard.js:375 -#: js/pitchtimematrix.js:1716 -#: js/rhythmruler.js:1176 -#: js/rhythmruler.js:1178 -#: js/rhythmruler.js:1286 -#: js/rhythmruler.js:1288 -#: js/block.js:1186 -#: js/block.js:5751 -#: js/block.js:5760 -#: js/block.js:5771 -#: js/activity.js:2363 -#: js/palette.js:816 -#: js/palette.js:825 -#: js/palette.js:834 -#: js/palette.js:843 -#: js/palette.js:2148 -#: js/palette.js:2159 -#: js/palette.js:2170 -#: js/palette.js:2181 -#: js/palette.js:2190 -#: js/turtledefs.js:35 -#: js/basicblocks.js:1572 -#: js/basicblocks.js:1592 -#: js/basicblocks.js:1606 -#: js/basicblocks.js:4069 -#: js/basicblocks.js:4079 -#: js/basicblocks.js:4127 -#: js/basicblocks.js:4140 -#: js/basicblocks.js:4184 -#: js/basicblocks.js:4207 -#: js/basicblocks.js:4262 -#: js/basicblocks.js:4267 -#: js/basicblocks.js:4272 -#: js/rubrics.js:478 -#: js/macros.js:47 -#: js/macros.js:48 -#: js/macros.js:66 -#: js/macros.js:66 -#: js/macros.js:68 -#: js/macros.js:141 -#: js/blocks.js:1034 -#: js/blocks.js:2922 -#: js/blocks.js:2923 -#: js/blocks.js:3137 -#: js/blocks.js:3442 -#: js/blocks.js:3636 -#: js/blocks.js:4680 -#: js/blocks.js:5545 -#: js/musickeyboard.js:1823 -#: js/pitchtimematrix.js:3385 -#: js/rhythmruler.js:1229 -#: js/rhythmruler.js:1231 -#: js/rhythmruler.js:1340 -#: js/rhythmruler.js:1342 -#: js/RhythmBlockPaletteBlocks.js:14 -#: js/RhythmBlockPaletteBlocks.js:177 -#: js/RhythmBlockPaletteBlocks.js:14 -#: js/RhythmBlockPaletteBlocks.js:177 -#: js/RhythmBlockPaletteBlocks.js:14 -#: js/RhythmBlockPaletteBlocks.js:177 -#: js/RhythmBlockPaletteBlocks.js:14 -#: js/RhythmBlockPaletteBlocks.js:177 -#: js/RhythmBlockPaletteBlocks.js:14 -#: js/RhythmBlockPaletteBlocks.js:170 -#: js/block.js:1436 -#: js/block.js:7910 -#: js/block.js:7931 -#: js/block.js:7948 -#: js/activity.js:2693 -#: js/palette.js:932 -#: js/palette.js:941 -#: js/palette.js:950 -#: js/palette.js:959 -#: js/palette.js:2511 -#: js/palette.js:2522 -#: js/palette.js:2533 -#: js/palette.js:2544 -#: js/palette.js:2563 -#: js/turtledefs.js:76 -#: js/rubrics.js:497 -#: js/macros.js:153 -#: js/macros.js:249 -#: js/macros.js:250 -#: js/macros.js:259 -#: js/macros.js:801 -#: js/blocks.js:1120 -#: js/blocks.js:3549 -#: js/blocks.js:3550 -#: js/blocks.js:3786 -#: js/blocks.js:4168 -#: js/blocks.js:4363 -#: js/blocks.js:5526 -#: js/blocks.js:6776 -#: js/ActionBlocks.js:99 -#: js/ActionBlocks.js:147 -#: js/ActionBlocks.js:350 -#: js/ActionBlocks.js:415 -#: js/ActionBlocks.js:569 -#: js/ActionBlocks.js:629 -#: js/ActionBlocks.js:765 -#: js/ActionBlocks.js:768 -#: js/ActionBlocks.js:773 -#: js/ActionBlocks.js:805 -#: js/MeterBlocks.js:412 -#: js/MeterBlocks.js:479 -#: js/MeterBlocks.js:568 -#: js/MeterBlocks.js:669 -#: js/musickeyboard.js:2360 -#: js/pitchtimematrix.js:4708 -#: js/rhythmruler.js:1602 -#: js/rhythmruler.js:1610 -#: js/rhythmruler.js:1911 -#: js/rhythmruler.js:1919 -#: js/block.js:1436 -#: js/block.js:8089 -#: js/block.js:8110 -#: js/block.js:8127 -#: js/activity.js:2968 -#: js/palette.js:503 -#: js/palette.js:512 -#: js/palette.js:521 -#: js/palette.js:530 -#: js/palette.js:1122 -#: js/palette.js:1133 -#: js/palette.js:1144 -#: js/palette.js:1155 -#: js/palette.js:1174 -#: js/turtledefs.js:76 -#: js/rubrics.js:497 -#: js/macros.js:153 -#: js/macros.js:249 -#: js/macros.js:250 -#: js/macros.js:259 -#: js/macros.js:801 -#: js/blocks.js:1120 -#: js/blocks.js:3572 -#: js/blocks.js:3573 -#: js/blocks.js:3809 -#: js/blocks.js:4191 -#: js/blocks.js:4382 -#: js/blocks.js:5545 -#: js/blocks.js:6795 -#: js/ActionBlocks.js:99 -#: js/ActionBlocks.js:147 -#: js/ActionBlocks.js:343 -#: js/ActionBlocks.js:408 -#: js/ActionBlocks.js:562 -#: js/ActionBlocks.js:622 -#: js/ActionBlocks.js:749 -#: js/ActionBlocks.js:752 -#: js/ActionBlocks.js:757 -#: js/ActionBlocks.js:789 -#: js/MeterBlocks.js:390 -#: js/MeterBlocks.js:419 -#: js/MeterBlocks.js:455 -#: js/MeterBlocks.js:494 -#: js/musickeyboard.js:2421 -#: js/pitchtimematrix.js:4706 -#: js/rhythmruler.js:1602 -#: js/rhythmruler.js:1610 -#: js/rhythmruler.js:1911 -#: js/rhythmruler.js:1919 -#: js/block.js:1436 -#: js/block.js:8073 -#: js/block.js:8094 -#: js/block.js:8111 -#: js/activity.js:2984 -#: js/palette.js:503 -#: js/palette.js:512 -#: js/palette.js:521 -#: js/palette.js:530 -#: js/palette.js:1122 -#: js/palette.js:1133 -#: js/palette.js:1144 -#: js/palette.js:1155 -#: js/palette.js:1174 -#: js/turtledefs.js:78 -#: js/rubrics.js:501 -#: js/macros.js:153 -#: js/macros.js:249 -#: js/macros.js:250 -#: js/macros.js:259 -#: js/macros.js:801 -#: js/blocks.js:1112 -#: js/blocks.js:3545 -#: js/blocks.js:3546 -#: js/blocks.js:3779 -#: js/blocks.js:4160 -#: js/blocks.js:4346 -#: js/blocks.js:5496 -#: js/blocks.js:6721 -#: js/ActionBlocks.js:99 -#: js/ActionBlocks.js:147 -#: js/ActionBlocks.js:343 -#: js/ActionBlocks.js:408 -#: js/ActionBlocks.js:562 -#: js/ActionBlocks.js:622 -#: js/ActionBlocks.js:750 -#: js/ActionBlocks.js:753 -#: js/ActionBlocks.js:758 -#: js/ActionBlocks.js:790 -#: js/MeterBlocks.js:396 -#: js/MeterBlocks.js:425 -#: js/MeterBlocks.js:461 -#: js/MeterBlocks.js:500 -#: js/musickeyboard.js:2495 -#: js/pitchtimematrix.js:4718 -#: js/rhythmruler.js:1602 -#: js/rhythmruler.js:1610 -#: js/rhythmruler.js:1911 -#: js/rhythmruler.js:1919 -#: js/block.js:1436 -#: js/block.js:8073 -#: js/block.js:8094 -#: js/block.js:8111 -#: js/activity.js:2984 -#: js/palette.js:503 -#: js/palette.js:512 -#: js/palette.js:521 -#: js/palette.js:530 -#: js/palette.js:1122 -#: js/palette.js:1133 -#: js/palette.js:1144 -#: js/palette.js:1155 -#: js/palette.js:1174 -#: js/turtledefs.js:78 -#: js/rubrics.js:501 -#: js/macros.js:153 -#: js/macros.js:249 -#: js/macros.js:250 -#: js/macros.js:259 -#: js/macros.js:801 -#: js/blocks.js:1112 -#: js/blocks.js:3545 -#: js/blocks.js:3546 -#: js/blocks.js:3779 -#: js/blocks.js:4160 -#: js/blocks.js:4346 -#: js/blocks.js:5496 -#: js/blocks.js:6721 -#: js/ActionBlocks.js:99 -#: js/ActionBlocks.js:147 -#: js/ActionBlocks.js:343 -#: js/ActionBlocks.js:408 -#: js/ActionBlocks.js:562 -#: js/ActionBlocks.js:622 -#: js/ActionBlocks.js:750 -#: js/ActionBlocks.js:753 -#: js/ActionBlocks.js:758 -#: js/ActionBlocks.js:790 -#: js/MeterBlocks.js:396 -#: js/MeterBlocks.js:425 -#: js/MeterBlocks.js:461 -#: js/MeterBlocks.js:500 -#: js/musickeyboard.js:2495 -#: js/pitchtimematrix.js:4718 -#: js/rhythmruler.js:1602 -#: js/rhythmruler.js:1610 -#: js/rhythmruler.js:1911 -#: js/rhythmruler.js:1919 -#: js/block.js:1436 -#: js/block.js:8073 -#: js/block.js:8094 -#: js/block.js:8111 -#: js/activity.js:2984 -#: js/palette.js:506 -#: js/palette.js:515 -#: js/palette.js:524 -#: js/palette.js:533 -#: js/palette.js:1128 -#: js/palette.js:1139 -#: js/palette.js:1150 -#: js/palette.js:1161 -#: js/palette.js:1180 -#: js/turtledefs.js:78 -#: js/rubrics.js:501 -#: js/macros.js:153 -#: js/macros.js:249 -#: js/macros.js:250 -#: js/macros.js:259 -#: js/macros.js:801 -#: js/blocks.js:1112 -#: js/blocks.js:3545 -#: js/blocks.js:3546 -#: js/blocks.js:3779 -#: js/blocks.js:4160 -#: js/blocks.js:4346 -#: js/blocks.js:5496 -#: js/blocks.js:6721 -#: js/ActionBlocks.js:99 -#: js/ActionBlocks.js:147 -#: js/ActionBlocks.js:343 -#: js/ActionBlocks.js:408 -#: js/ActionBlocks.js:562 -#: js/ActionBlocks.js:622 -#: js/ActionBlocks.js:750 -#: js/ActionBlocks.js:753 -#: js/ActionBlocks.js:758 -#: js/ActionBlocks.js:790 -#: js/MeterBlocks.js:396 -#: js/MeterBlocks.js:425 -#: js/MeterBlocks.js:461 -#: js/MeterBlocks.js:500 -#: js/musickeyboard.js:2495 -#: js/pitchtimematrix.js:4718 -#: js/rhythmruler.js:1602 -#: js/rhythmruler.js:1610 -#: js/rhythmruler.js:1911 -#: js/rhythmruler.js:1919 -#: js/block.js:1414 -#: js/block.js:4018 -#: js/block.js:4036 -#: js/block.js:4047 -#: js/activity.js:2899 -#: js/palette.js:486 -#: js/palette.js:495 -#: js/palette.js:504 -#: js/palette.js:513 -#: js/palette.js:1089 -#: js/palette.js:1100 -#: js/palette.js:1111 -#: js/palette.js:1122 -#: js/palette.js:1141 -#: js/turtledefs.js:78 -#: js/rubrics.js:501 -#: js/macros.js:170 -#: js/macros.js:266 -#: js/macros.js:267 -#: js/macros.js:276 -#: js/macros.js:828 -#: js/blocks.js:1071 -#: js/blocks.js:3210 -#: js/blocks.js:3211 -#: js/blocks.js:3428 -#: js/blocks.js:3752 -#: js/blocks.js:3932 -#: js/blocks.js:4976 -#: js/blocks.js:5845 -#: js/ActionBlocks.js:99 -#: js/ActionBlocks.js:147 -#: js/ActionBlocks.js:343 -#: js/ActionBlocks.js:408 -#: js/ActionBlocks.js:562 -#: js/ActionBlocks.js:622 -#: js/ActionBlocks.js:750 -#: js/ActionBlocks.js:753 -#: js/ActionBlocks.js:758 -#: js/ActionBlocks.js:790 -#: js/MeterBlocks.js:396 -#: js/MeterBlocks.js:426 -#: js/MeterBlocks.js:462 -#: js/MeterBlocks.js:501 -#: js/musickeyboard.js:2495 -#: js/rhythmruler.js:1874 -#: js/rhythmruler.js:1881 -#: js/rhythmruler.js:2065 -#: js/rhythmruler.js:2072 -#: js/phrasemaker.js:4226 -#: js/block.js:1414 -#: js/block.js:4020 -#: js/block.js:4038 -#: js/block.js:4049 -#: js/activity.js:2899 -#: js/palette.js:486 -#: js/palette.js:495 -#: js/palette.js:504 -#: js/palette.js:513 -#: js/palette.js:1089 -#: js/palette.js:1100 -#: js/palette.js:1111 -#: js/palette.js:1122 -#: js/palette.js:1141 -#: js/turtledefs.js:78 -#: js/rubrics.js:501 -#: js/macros.js:170 -#: js/macros.js:266 -#: js/macros.js:267 -#: js/macros.js:276 -#: js/macros.js:828 -#: js/blocks.js:1071 -#: js/blocks.js:3210 -#: js/blocks.js:3211 -#: js/blocks.js:3428 -#: js/blocks.js:3752 -#: js/blocks.js:3932 -#: js/blocks.js:4976 -#: js/blocks.js:5845 -#: js/ActionBlocks.js:99 -#: js/ActionBlocks.js:147 -#: js/ActionBlocks.js:343 -#: js/ActionBlocks.js:408 -#: js/ActionBlocks.js:562 -#: js/ActionBlocks.js:622 -#: js/ActionBlocks.js:750 -#: js/ActionBlocks.js:753 -#: js/ActionBlocks.js:758 -#: js/ActionBlocks.js:790 -#: js/MeterBlocks.js:396 -#: js/MeterBlocks.js:426 -#: js/MeterBlocks.js:462 -#: js/MeterBlocks.js:501 -#: js/musickeyboard.js:2495 -#: js/rhythmruler.js:1874 -#: js/rhythmruler.js:1881 -#: js/rhythmruler.js:2065 -#: js/rhythmruler.js:2072 -#: js/phrasemaker.js:4226 -#: js/block.js:1439 -#: js/block.js:4063 -#: js/block.js:4081 -#: js/block.js:4092 -#: js/palette.js:505 -#: js/palette.js:514 -#: js/palette.js:523 -#: js/palette.js:532 -#: js/palette.js:1125 -#: js/palette.js:1136 -#: js/palette.js:1147 -#: js/palette.js:1158 -#: js/palette.js:1177 -#: js/turtledefs.js:101 -#: js/rubrics.js:522 -#: js/macros.js:168 -#: js/macros.js:264 -#: js/macros.js:265 -#: js/macros.js:274 -#: js/macros.js:826 -#: js/blocks.js:1001 -#: js/blocks.js:3394 -#: js/blocks.js:3395 -#: js/blocks.js:3620 -#: js/blocks.js:3981 -#: js/blocks.js:4172 -#: js/blocks.js:5305 -#: js/blocks.js:6432 -#: js/ActionBlocks.js:119 -#: js/ActionBlocks.js:167 -#: js/ActionBlocks.js:364 -#: js/ActionBlocks.js:429 -#: js/ActionBlocks.js:582 -#: js/ActionBlocks.js:643 -#: js/ActionBlocks.js:772 -#: js/ActionBlocks.js:775 -#: js/ActionBlocks.js:780 -#: js/ActionBlocks.js:813 -#: js/MeterBlocks.js:416 -#: js/MeterBlocks.js:446 -#: js/MeterBlocks.js:482 -#: js/MeterBlocks.js:521 -#: js/musickeyboard.js:2564 -#: js/rhythmruler.js:1925 -#: js/rhythmruler.js:1932 -#: js/rhythmruler.js:2116 -#: js/rhythmruler.js:2123 -#: js/phrasemaker.js:4402 -#: js/planetInterface.js:101 -#: js/planetInterface.js:101 -#: js/planetInterface.js:101 -#: js/planetInterface.js:101 -#: js/planetInterface.js:102 -#: js/planetInterface.js:104 -#: js/planetInterface.js:104 -#: js/planetInterface.js:104 +#: js/SaveInterface.js:59 +#: js/SaveInterface.js:61 +#: js/SaveInterface.js:93 +msgid "Music Blocks Project" +msgstr "" + +#: js/SaveInterface.js:63 +msgid "This project was created in Music Blocks" +msgstr "" + +#: js/SaveInterface.js:67 +msgid "Music Blocks is a Free/Libre Software application." +msgstr "" + +#: js/SaveInterface.js:69 +msgid "The source code can be accessed at" +msgstr "" + +#: js/SaveInterface.js:72 +msgid "For more information, please consult the" +msgstr "" + +#: js/SaveInterface.js:76 +#: js/turtledefs.js:795 +msgid "Music Blocks Guide" +msgstr "" + +#: js/SaveInterface.js:83 +msgid "Alternatively, open the file in Music Blocks using the Load project button." +msgstr "" + +#: js/SaveInterface.js:85 +msgid "Project Code" +msgstr "" + +#: js/SaveInterface.js:87 +msgid "This code stores data about the blocks in a project." +msgstr "" + +#: js/SaveInterface.js:89 +msgid "Show" +msgstr "" + +#: js/SaveInterface.js:91 +msgid "Hide" +msgstr "" + +#: js/SaveInterface.js:131 +#: js/SaveInterface.js:204 +#: js/SaveInterface.js:262 +#: js/SaveInterface.js:389 +#: js/SaveInterface.js:417 +#: js/activity.js:4884 +#: planet/js/ProjectStorage.js:27 +#: planet/js/GlobalPlanet.js:467 +#: planet/js/GlobalPlanet.js:469 +#: planet/js/GlobalPlanet.js:495 +#.TRANS: default project title when saving as Lilypond +msgid "My Project" +msgstr "" + +#: js/SaveInterface.js:197 +#: planet/js/SaveInterface.js:58 +msgid "No description provided" +msgstr "" + +#: js/SaveInterface.js:332 +msgid "Your recording is in progress." +msgstr "" + +#: js/SaveInterface.js:401 +#.TRANS: File name prompt for save as Lilypond +msgid "File name" +msgstr "" + +#: js/SaveInterface.js:403 +#: planet/js/StringHelper.js:39 +#.TRANS: Project title prompt for save as Lilypond +msgid "Project title" +msgstr "" + +#: js/SaveInterface.js:405 +#.TRANS: Project title prompt for save as Lilypond +msgid "Project author" +msgstr "" + +#: js/SaveInterface.js:407 +#.TRANS: MIDI prompt for save as Lilypond +msgid "Include MIDI output?" +msgstr "" + +#: js/SaveInterface.js:409 +#.TRANS: Guitar prompt for save as Lilypond +msgid "Include guitar tablature output?" +msgstr "" + +#: js/SaveInterface.js:411 +#.TRANS: Lilypond is a scripting language for generating sheet music +msgid "Save as Lilypond" +msgstr "" + +#: js/SaveInterface.js:426 +#: js/blocks/EnsembleBlocks.js:75 +#: js/blocks/EnsembleBlocks.js:154 +#: js/blocks/EnsembleBlocks.js:216 +#: js/blocks/EnsembleBlocks.js:302 +#: js/blocks/EnsembleBlocks.js:348 +#: js/blocks/EnsembleBlocks.js:389 +#: js/blocks/EnsembleBlocks.js:441 +#: js/blocks/EnsembleBlocks.js:490 +#: js/blocks/EnsembleBlocks.js:536 +#: js/blocks/EnsembleBlocks.js:583 +#: js/blocks/EnsembleBlocks.js:637 +#: js/blocks/EnsembleBlocks.js:753 +#: js/blocks/EnsembleBlocks.js:840 +#: js/blocks/EnsembleBlocks.js:899 +#: js/blocks/EnsembleBlocks.js:942 +#: js/blocks/EnsembleBlocks.js:1212 +#: js/blocks/EnsembleBlocks.js:1280 +#.TRANS: default project author when saving as Lilypond +msgid "Mr. Mouse" +msgstr "" + +#: js/SaveInterface.js:573 +msgid "The Lilypond code is copied to clipboard. You can paste it here: " +msgstr "" + +#: js/languagebox.js:198 +msgid "Refresh your browser to change your language preference." +msgstr "أعد فتح الصفحة لتغير لغة التطبيق" + +#: js/languagebox.js:218 +msgid "Music Blocks is already set to this language." +msgstr "م تعيين كتل الموسيقى بالفعل على هذه اللغة" + +#: js/planetInterface.js:131 msgid "project undefined" msgstr "" -#: js/logo.js:61 -msgid "Not a valid pitch name" -msgstr "ليست نغمة صحيحة" +#: js/rubrics.js:523 +#: js/turtledefs.js:119 +#: js/turtledefs.js:221 +#: js/blocks/RhythmBlockPaletteBlocks.js:52 +#: js/blocks/RhythmBlockPaletteBlocks.js:234 +#: js/blocks/ProgramBlocks.js:745 +#: js/widgets/rhythmruler.js:2057 +#: js/widgets/rhythmruler.js:2064 +#: js/widgets/rhythmruler.js:2133 +#: js/widgets/rhythmruler.js:2140 +#: js/widgets/rhythmruler.js:2219 +#.TRANS: an arrangement of notes based on duration +msgid "rhythm" +msgstr "" -#: js/logo.js:507 -#: js/ProgramBlocks.js:258 -#: js/ProgramBlocks.js:427 -msgid "You must select a file." -msgstr "يجب عليك إختيار ملف" +#: js/rubrics.js:524 +#: js/turtledefs.js:121 +#: js/turtledefs.js:223 +#: js/block-verbose.js:2622 +#: js/block.js:2550 +#: js/blocks/IntervalsBlocks.js:63 +#: js/blocks/SensorsBlocks.js:178 +#: js/blocks/PitchBlocks.js:1839 +#: js/blocks/PitchBlocks.js:1853 +#: js/widgets/musickeyboard.js:1935 +#: js/widgets/phrasemaker.js:1036 +#.TRANS: pitch number +#.TRANS: pitch number +#.TRANS: we specify pitch in terms of a name and an octave. The name can be CDEFGAB or Do Re Mi Fa Sol La Ti. Octave is a number between 1 and 8. +msgid "pitch" +msgstr "" -#: js/logo.js:1184 -#: js/turtles.js:118 -#: js/turtle-painter.js:1192 -#: js/turtle-painter.js:1193 -#: js/block.js:1463 -#: js/lilypond.js:757 -#: js/lilypond.js:921 -#: js/lilypond.js:959 -#: js/ActionBlocks.js:1223 -#: js/ProgramBlocks.js:1267 -msgid "start" -msgstr "ابدأ" +#: js/rubrics.js:525 +#: js/turtledefs.js:123 +#: js/turtledefs.js:225 +msgid "tone" +msgstr "نبرة الصوت" -#: js/logo.js:1696 -msgid "Playback is ready." -msgstr "الإستماع مرة أخرى حاضر" +#: js/rubrics.js:526 +#: js/lilypond.js:605 +#: js/lilypond.js:904 +#: js/lilypond.js:910 +#: js/lilypond.js:948 +msgid "mouse" +msgstr "" + +#: js/rubrics.js:527 +#: js/turtledefs.js:132 +#: js/turtledefs.js:234 +#: js/widgets/phrasemaker.js:1040 +msgid "pen" +msgstr "القلم" + +#: js/rubrics.js:528 +#: js/turtledefs.js:133 +#: js/turtledefs.js:235 +#: js/blocks/NumberBlocks.js:981 +#: js/blocks/PitchBlocks.js:1717 +#: js/blocks/PitchBlocks.js:1758 +msgid "number" +msgstr "عدد" -#: js/blocks.js:1011 -#: js/blocks.js:3427 -#: js/blocks.js:3428 -#: js/blocks.js:3653 -#: js/blocks.js:4012 -#: js/blocks.js:4205 -#: js/blocks.js:5343 -#: js/blocks.js:6474 -#: js/palette.js:527 -#: js/palette.js:536 -#: js/palette.js:545 -#: js/palette.js:554 -#: js/palette.js:1131 -#: js/palette.js:1142 -#: js/palette.js:1153 -#: js/palette.js:1164 -#: js/palette.js:1183 #: js/rubrics.js:529 +#: js/turtledefs.js:127 +#: js/turtledefs.js:229 +msgid "flow" +msgstr "تدفق" + +#: js/rubrics.js:530 +#: js/turtledefs.js:128 +#: js/turtledefs.js:230 +#: js/block-verbose.js:1609 +#: js/block-verbose.js:4559 +#: js/block-verbose.js:4577 +#: js/block-verbose.js:4588 +#: js/block.js:1573 +#: js/block.js:4483 +#: js/block.js:4501 +#: js/block.js:4512 +#: js/blocks.js:1018 +#: js/blocks.js:3491 +#: js/blocks.js:3492 +#: js/blocks.js:3717 +#: js/blocks.js:4076 +#: js/blocks.js:4269 +#: js/blocks.js:5432 +#: js/blocks.js:6563 #: js/macros.js:170 #: js/macros.js:266 #: js/macros.js:267 #: js/macros.js:276 #: js/macros.js:828 -#: js/block.js:1449 -#: js/block.js:4164 -#: js/block.js:4182 -#: js/block.js:4193 -#: js/turtledefs.js:128 -#: js/turtledefs.js:230 -#: js/ActionBlocks.js:254 -#: js/ActionBlocks.js:307 -#: js/ActionBlocks.js:617 -#: js/ActionBlocks.js:716 -#: js/ActionBlocks.js:961 -#: js/ActionBlocks.js:1049 -#: js/ActionBlocks.js:1322 -#: js/ActionBlocks.js:1325 -#: js/ActionBlocks.js:1337 -#: js/ActionBlocks.js:1404 -#: js/MeterBlocks.js:715 -#: js/MeterBlocks.js:768 -#: js/MeterBlocks.js:831 -#: js/MeterBlocks.js:892 -#: js/phrasemaker.js:4412 -#: js/musickeyboard.js:2647 -#: js/rhythmruler.js:1928 -#: js/rhythmruler.js:1935 -#: js/rhythmruler.js:2119 -#: js/rhythmruler.js:2126 +#: js/palette.js:527 +#: js/palette.js:536 +#: js/palette.js:545 +#: js/palette.js:554 +#: js/palette.js:1129 +#: js/palette.js:1140 +#: js/palette.js:1151 +#: js/palette.js:1162 +#: js/palette.js:1181 +#: js/blocks/ActionBlocks.js:254 +#: js/blocks/ActionBlocks.js:307 +#: js/blocks/ActionBlocks.js:617 +#: js/blocks/ActionBlocks.js:716 +#: js/blocks/ActionBlocks.js:961 +#: js/blocks/ActionBlocks.js:1049 +#: js/blocks/ActionBlocks.js:1322 +#: js/blocks/ActionBlocks.js:1325 +#: js/blocks/ActionBlocks.js:1337 +#: js/blocks/ActionBlocks.js:1404 +#: js/blocks/MeterBlocks.js:715 +#: js/blocks/MeterBlocks.js:768 +#: js/blocks/MeterBlocks.js:831 +#: js/blocks/MeterBlocks.js:892 +#: js/widgets/musickeyboard.js:2986 +#: js/widgets/phrasemaker.js:4913 +#: js/widgets/rhythmruler.js:2319 +#: js/widgets/rhythmruler.js:2326 +#: js/widgets/rhythmruler.js:2511 +#: js/widgets/rhythmruler.js:2518 msgid "action" msgstr "الإجراء" -#: js/blocks.js:1205 -#: js/blocks.js:3380 -#: js/blocks.js:3770 -#: js/blocks.js:3801 -#: js/blocks.js:3850 -#: js/blocks.js:3885 -#: js/blocks.js:6497 -#: js/palette.js:509 -#: js/palette.js:638 -#: js/palette.js:1107 -#: js/BoxesBlocks.js:282 -#: js/BoxesBlocks.js:285 -#: js/BoxesBlocks.js:405 -#: js/BoxesBlocks.js:594 -msgid "box" -msgstr "صندوق المتغير" +#: js/rubrics.js:531 +#: js/turtledefs.js:136 +#: js/turtledefs.js:238 +msgid "sensors" +msgstr "الحسّاسات" -#: js/blocks.js:1680 -msgid "Consider breaking this stack into parts." -msgstr "فكر في تقسيم هذه البطارية إلى أجزاء" +#: js/rubrics.js:532 +#: js/turtledefs.js:135 +#: js/turtledefs.js:237 +#: js/blocks/MediaBlocks.js:930 +msgid "media" +msgstr "وسائل الإعلام" -#: js/blocks.js:2408 -#: js/palette.js:653 -#: js/MediaBlocks.js:602 -msgid "open file" -msgstr "فتح الملف" +#: js/rubrics.js:533 +msgid "mice" +msgstr "" -#: js/blocks.js:2415 -#: js/blocks.js:2423 -#: js/activity.js:1875 -msgid "audio file" -msgstr "ملف صوتي" +#: js/toolbar.js:48 +#: js/toolbar.js:109 +msgid "About Music Blocks" +msgstr "" -#: js/blocks.js:2536 -#: js/blocks.js:3147 -#: js/block.js:3543 -msgid "on2" +#: js/toolbar.js:49 +#: js/toolbar.js:110 +#: js/toolbar.js:175 +#: js/toolbar.js:231 +#: js/turtledefs.js:445 +#: js/turtledefs.js:482 +#: js/activity.js:2660 +#: js/activity.js:2671 +#: js/activity.js:2902 +#: js/widgets/modewidget.js:77 +#: js/widgets/meterwidget.js:185 +#: js/widgets/pitchdrummatrix.js:147 +#: js/widgets/pitchdrummatrix.js:687 +#: js/widgets/pitchdrummatrix.js:689 +#: js/widgets/pitchdrummatrix.js:741 +#: js/widgets/pitchdrummatrix.js:743 +#: js/widgets/pitchdrummatrix.js:758 +#: js/widgets/pitchdrummatrix.js:760 +#: js/widgets/pitchdrummatrix.js:789 +#: js/widgets/pitchdrummatrix.js:791 +#: js/widgets/pitchstaircase.js:121 +#: js/widgets/temperament.js:610 +#: js/widgets/temperament.js:613 +#: js/widgets/temperament.js:673 +#: js/widgets/temperament.js:675 +#: js/widgets/temperament.js:2017 +#: js/widgets/temperament.js:2019 +#: js/widgets/tempo.js:84 +#: js/widgets/tempo.js:86 +#: js/widgets/timbre.js:432 +#: js/widgets/timbre.js:434 +#: js/widgets/timbre.js:465 +#: js/widgets/timbre.js:467 +#: js/widgets/timbre.js:746 +#: js/widgets/aiwidget.js:647 +#: js/widgets/aiwidget.js:654 +#: js/widgets/aiwidget.js:656 +#: js/widgets/arpeggio.js:90 +#: js/widgets/arpeggio.js:547 +#: js/widgets/arpeggio.js:549 +#: js/widgets/arpeggio.js:644 +#: js/widgets/arpeggio.js:646 +#: js/widgets/musickeyboard.js:676 +#: js/widgets/musickeyboard.js:872 +#: js/widgets/musickeyboard.js:874 +#: js/widgets/musickeyboard.js:953 +#: js/widgets/musickeyboard.js:955 +#: js/widgets/phrasemaker.js:513 +#: js/widgets/phrasemaker.js:523 +#: js/widgets/phrasemaker.js:525 +#: js/widgets/phrasemaker.js:4304 +#: js/widgets/phrasemaker.js:4528 +#: js/widgets/phrasemaker.js:4533 +#: js/widgets/phrasemaker.js:4535 +#: js/widgets/phrasemaker.js:4650 +#: js/widgets/rhythmruler.js:637 +#: js/widgets/rhythmruler.js:639 +#: js/widgets/rhythmruler.js:653 +#: js/widgets/rhythmruler.js:655 +#: js/widgets/sampler.js:162 +#: js/widgets/sampler.js:164 +#: js/widgets/sampler.js:363 +msgid "Play" +msgstr "" + +#: js/toolbar.js:50 +#: js/toolbar.js:111 +#: js/toolbar.js:176 +#: js/toolbar.js:232 +#: js/turtledefs.js:451 +#: js/turtledefs.js:488 +#: js/activity.js:2679 +#: js/widgets/modewidget.js:99 +#: js/widgets/modewidget.js:101 +#: js/widgets/meterwidget.js:206 +#: js/widgets/meterwidget.js:208 +#: js/widgets/pitchdrummatrix.js:674 +#: js/widgets/pitchdrummatrix.js:676 +#: js/widgets/temperament.js:2002 +#: js/widgets/temperament.js:2004 +#: js/widgets/arpeggio.js:534 +#: js/widgets/arpeggio.js:536 +#: js/widgets/phrasemaker.js:534 +#: js/widgets/phrasemaker.js:536 +msgid "Stop" +msgstr "أوقف" + +#: js/toolbar.js:51 +#: js/toolbar.js:112 +#: js/toolbar.js:177 +#: js/toolbar.js:233 +#: js/turtledefs.js:498 +msgid "Record" +msgstr "" + +#: js/toolbar.js:52 +#: js/toolbar.js:53 +msgid "Full screen" +msgstr "" + +#: js/toolbar.js:54 +#: js/toolbar.js:115 +#: js/toolbar.js:180 +#: js/toolbar.js:236 +#: js/turtledefs.js:504 +msgid "Toggle Fullscreen" +msgstr "" + +#: js/toolbar.js:55 +#: js/toolbar.js:116 +#: js/toolbar.js:181 +#: js/toolbar.js:237 +#: js/turtledefs.js:510 +#: planet/js/StringHelper.js:33 +msgid "New project" +msgstr "" + +#: js/toolbar.js:56 +#: js/toolbar.js:117 +#: js/toolbar.js:182 +#: js/toolbar.js:238 +#: js/turtledefs.js:516 +msgid "Load project from file" +msgstr "حمل المشروع من الملف" + +#: js/toolbar.js:57 +#: js/toolbar.js:118 +#: js/toolbar.js:119 +#: js/toolbar.js:183 +#: js/toolbar.js:239 +#: js/turtledefs.js:541 +#: js/turtledefs.js:550 +#: js/turtledefs.js:571 +msgid "Save project" +msgstr "حفظ المشروع" + +#: js/toolbar.js:58 +#: js/toolbar.js:77 +#: js/toolbar.js:79 +#: js/toolbar.js:138 +#: js/toolbar.js:147 +#: js/toolbar.js:149 +#: js/toolbar.js:184 +#: js/toolbar.js:202 +#: js/toolbar.js:204 +#: js/toolbar.js:240 +#: js/toolbar.js:258 +#: js/toolbar.js:260 +msgid "Save project as HTML" +msgstr "" + +#: js/toolbar.js:59 +#: js/toolbar.js:120 +#: js/toolbar.js:185 +#: js/toolbar.js:241 +msgid "Find and share projects" +msgstr "" + +#: js/toolbar.js:60 +#: js/toolbar.js:121 +#: js/toolbar.js:186 +#: js/toolbar.js:242 +msgid "Offline. Sharing is unavailable" +msgstr "" + +#: js/toolbar.js:61 +#: js/toolbar.js:122 +#: js/toolbar.js:187 +#: js/toolbar.js:243 +msgid "Auxiliary menu" +msgstr "" + +#: js/toolbar.js:62 +#: js/toolbar.js:123 +#: js/toolbar.js:188 +#: js/toolbar.js:244 +#: js/turtledefs.js:752 +#: js/piemenus.js:3423 +msgid "Help" +msgstr "المساعدة" + +#: js/toolbar.js:63 +#: js/toolbar.js:124 +#: js/toolbar.js:189 +#: js/toolbar.js:245 +msgid "Run slowly" +msgstr "" + +#: js/toolbar.js:64 +#: js/toolbar.js:125 +#: js/toolbar.js:190 +#: js/toolbar.js:246 +#: js/turtledefs.js:682 +msgid "Run step by step" +msgstr "نفذ خطوةً خطوة" + +#: js/toolbar.js:65 +#: js/toolbar.js:126 +#: js/toolbar.js:191 +#: js/toolbar.js:247 +#: js/turtledefs.js:689 +msgid "Display statistics" +msgstr "أظهر الإحصاءات" + +#: js/toolbar.js:66 +#: js/toolbar.js:127 +#: js/toolbar.js:192 +#: js/toolbar.js:248 +msgid "Load plugin" +msgstr "" + +#: js/toolbar.js:67 +#: js/toolbar.js:128 +#: js/toolbar.js:193 +#: js/toolbar.js:249 +#: js/turtledefs.js:696 +msgid "Delete plugin" +msgstr "" + +#: js/toolbar.js:68 +#: js/toolbar.js:129 +#: js/toolbar.js:194 +#: js/toolbar.js:250 +msgid "Enable horizontal scrolling" +msgstr "" + +#: js/toolbar.js:69 +#: js/toolbar.js:130 +#: js/toolbar.js:195 +#: js/toolbar.js:251 +msgid "Disable horizontal scrolling" +msgstr "" + +#: js/toolbar.js:70 +#: js/toolbar.js:131 +#: js/toolbar.js:196 +#: js/toolbar.js:252 +#: planet/js/LocalCard.js:54 +#: planet/js/StringHelper.js:71 +msgid "Merge with current project" +msgstr "" + +#: js/toolbar.js:71 +#: js/toolbar.js:132 +msgid "Set Pitch Preview" +msgstr "" + +#: js/toolbar.js:72 +#: js/toolbar.js:133 +#: js/toolbar.js:197 +#: js/toolbar.js:253 +msgid "JavaScript Editor" +msgstr "" + +#: js/toolbar.js:73 +#: js/toolbar.js:134 +#: js/toolbar.js:198 +#: js/toolbar.js:254 +#: js/turtledefs.js:724 +msgid "Restore" +msgstr "" + +#: js/toolbar.js:74 +#: js/toolbar.js:135 +#: js/toolbar.js:199 +#: js/toolbar.js:255 +msgid "Switch to beginner mode" +msgstr "" + +#: js/toolbar.js:75 +#: js/toolbar.js:136 +#: js/toolbar.js:200 +#: js/toolbar.js:256 +msgid "Switch to advanced mode" +msgstr "" + +#: js/toolbar.js:76 +#: js/toolbar.js:137 +#: js/toolbar.js:146 +#: js/toolbar.js:201 +#: js/toolbar.js:257 +#: js/turtledefs.js:738 +msgid "Select language" +msgstr "" + +#: js/toolbar.js:78 +#: js/toolbar.js:81 +#: js/toolbar.js:140 +#: js/turtledefs.js:579 +msgid "Save mouse artwork as PNG" +msgstr "" + +#: js/toolbar.js:80 +#: js/toolbar.js:139 +#: js/turtledefs.js:575 +msgid "Save mouse artwork as SVG" +msgstr "" + +#: js/toolbar.js:82 +#: js/toolbar.js:141 +#: js/turtledefs.js:583 +msgid "Save music as WAV" +msgstr "" + +#: js/toolbar.js:83 +#: js/toolbar.js:142 +#: js/turtledefs.js:587 +msgid "Save sheet music as ABC" +msgstr "" + +#: js/toolbar.js:84 +#: js/toolbar.js:143 +#: js/turtledefs.js:591 +msgid "Save sheet music as Lilypond" +msgstr "" + +#: js/toolbar.js:85 +msgid "Save sheet music as MusicXML" +msgstr "" + +#: js/toolbar.js:86 +#: js/toolbar.js:144 +#: js/toolbar.js:152 +#: js/toolbar.js:207 +#: js/toolbar.js:263 +#: js/turtledefs.js:562 +#: js/turtledefs.js:595 +msgid "Save block artwork as SVG" +msgstr "" + +#: js/toolbar.js:87 +#: js/toolbar.js:145 +#: js/toolbar.js:153 +#: js/toolbar.js:208 +#: js/toolbar.js:264 +#: js/turtles.js:911 +msgid "Confirm" +msgstr "" + +#: js/toolbar.js:88 +#: js/toolbar.js:154 +#: js/toolbar.js:209 +#: js/toolbar.js:265 +msgid "English (United States)" +msgstr "" + +#: js/toolbar.js:89 +#: js/toolbar.js:155 +#: js/toolbar.js:210 +#: js/toolbar.js:266 +msgid "English (United Kingdom)" +msgstr "" + +#: js/toolbar.js:90 +#: js/toolbar.js:156 +#: js/toolbar.js:211 +#: js/toolbar.js:267 +msgid "日本語" +msgstr "" + +#: js/toolbar.js:91 +msgid "한국어" +msgstr "" + +#: js/toolbar.js:92 +#: js/toolbar.js:158 +#: js/toolbar.js:213 +#: js/toolbar.js:269 +msgid "español" +msgstr "" + +#: js/toolbar.js:93 +#: js/toolbar.js:159 +#: js/toolbar.js:214 +#: js/toolbar.js:270 +msgid "português" +msgstr "" + +#: js/toolbar.js:94 +#: js/toolbar.js:160 +#: js/toolbar.js:215 +#: js/toolbar.js:271 +msgid "にほんご" +msgstr "" + +#: js/toolbar.js:95 +#: js/toolbar.js:161 +#: js/toolbar.js:216 +#: js/toolbar.js:272 +msgid "中文" +msgstr "" + +#: js/toolbar.js:96 +#: js/toolbar.js:162 +#: js/toolbar.js:217 +#: js/toolbar.js:273 +msgid "ภาษาไทย" +msgstr "" + +#: js/toolbar.js:97 +#: js/toolbar.js:163 +#: js/toolbar.js:218 +#: js/toolbar.js:274 +msgid "aymara" +msgstr "" + +#: js/toolbar.js:98 +#: js/toolbar.js:164 +#: js/toolbar.js:219 +#: js/toolbar.js:275 +msgid "quechua" +msgstr "" + +#: js/toolbar.js:99 +#: js/toolbar.js:165 +#: js/toolbar.js:220 +#: js/toolbar.js:276 +msgid "guarani" +msgstr "" + +#: js/toolbar.js:100 +#: js/toolbar.js:166 +#: js/toolbar.js:221 +#: js/toolbar.js:277 +msgid "हिंदी" +msgstr "" + +#: js/toolbar.js:101 +#: js/toolbar.js:168 +#: js/toolbar.js:222 +#: js/toolbar.js:279 +msgid "igbo" +msgstr "" + +#: js/toolbar.js:102 +#: js/toolbar.js:169 +#: js/toolbar.js:223 +#: js/toolbar.js:280 +msgid "عربى" +msgstr "" + +#: js/toolbar.js:103 +#: js/toolbar.js:167 +#: js/toolbar.js:224 +#: js/toolbar.js:278 +msgid "తెలుగు" +msgstr "" + +#: js/toolbar.js:104 +#: js/toolbar.js:170 +#: js/toolbar.js:225 +#: js/toolbar.js:281 +msgid "עִברִית" +msgstr "" + +#: js/toolbar.js:113 +#: js/toolbar.js:114 +#: js/toolbar.js:178 +#: js/toolbar.js:179 +#: js/toolbar.js:234 +#: js/toolbar.js:235 +msgid "Full Screen" +msgstr "" + +#: js/toolbar.js:148 +#: js/toolbar.js:151 +#: js/toolbar.js:203 +#: js/toolbar.js:206 +#: js/toolbar.js:259 +#: js/toolbar.js:262 +#: js/turtledefs.js:558 +msgid "Save turtle artwork as PNG" +msgstr "" + +#: js/toolbar.js:150 +#: js/toolbar.js:205 +#: js/toolbar.js:261 +#: js/turtledefs.js:554 +msgid "Save turtle artwork as SVG" +msgstr "" + +#: js/toolbar.js:157 +#: js/toolbar.js:212 +#: js/toolbar.js:268 +msgid "한국인" +msgstr "" + +#: js/toolbar.js:174 +#: js/toolbar.js:230 +msgid "About Turtle Blocks" +msgstr "" + +#: js/toolbar.js:446 +#: js/toolbar.js:457 +#: js/toolbar.js:497 +msgid "Turtle Wrap Off" +msgstr "" + +#: js/toolbar.js:466 +#: js/toolbar.js:506 +msgid "Turtle Wrap On" +msgstr "" + +#: js/turtle-painter.js:1192 +#: js/turtle-painter.js:1193 +#: js/turtles.js:118 +#: js/block-verbose.js:1623 +#: js/block.js:1587 +#: js/lilypond.js:749 +#: js/lilypond.js:913 +#: js/lilypond.js:951 +#: js/logo.js:1184 +#: js/blocks/ActionBlocks.js:1223 +#: js/blocks/ProgramBlocks.js:1267 +msgid "start" +msgstr "ابدأ" + +#: js/turtledefs.js:40 +#.TRANS: put the URL to the guide here, e.g., https://github.com/sugarlabs/turtleblocksjs/tree/master/guide/README.md +msgid "guide url" +msgstr "" + +#: js/turtledefs.js:85 +#: js/turtledefs.js:437 +msgid "Turtle Blocks is a Logo-inspired turtle that draws colorful pictures with snap-together visual-programming blocks." +msgstr "" + +#: js/turtledefs.js:118 +#: js/turtledefs.js:220 +msgid "search" +msgstr "" + +#: js/turtledefs.js:120 +#: js/turtledefs.js:222 +#: js/blocks/MeterBlocks.js:1343 +#: js/blocks/WidgetBlocks.js:522 +#.TRANS: musical meter (time signature), e.g., 4:4 +msgid "meter" +msgstr "" + +#: js/turtledefs.js:122 +#: js/turtledefs.js:224 +msgid "intervals" +msgstr "" + +#: js/turtledefs.js:124 +#: js/turtledefs.js:226 +msgid "ornament" +msgstr "" + +#: js/turtledefs.js:125 +#: js/turtledefs.js:227 +#: js/blocks/VolumeBlocks.js:362 +#: js/blocks/VolumeBlocks.js:502 +#: js/blocks/VolumeBlocks.js:545 +msgid "volume" +msgstr "" + +#: js/turtledefs.js:126 +#: js/turtledefs.js:228 +#: js/block-verbose.js:1700 +#: js/block-verbose.js:2626 +#: js/block.js:1664 +#: js/block.js:2554 +#: js/lilypond.js:732 +#: js/lilypond.js:897 +#: js/lilypond.js:941 +#: js/palette.js:577 +#: js/blocks/RhythmBlocks.js:766 +#: js/blocks/DrumBlocks.js:477 +#: js/blocks/VolumeBlocks.js:502 +#: js/widgets/phrasemaker.js:1038 +msgid "drum" +msgstr "" + +#: js/turtledefs.js:129 +#: js/turtledefs.js:231 +msgid "boxes" +msgstr "" + +#: js/turtledefs.js:130 +#: js/turtledefs.js:232 +msgid "widgets" +msgstr "" + +#: js/turtledefs.js:131 +#: js/turtledefs.js:233 +#: js/widgets/phrasemaker.js:1039 +msgid "graphics" +msgstr "" + +#: js/turtledefs.js:134 +#: js/turtledefs.js:236 +msgid "boolean" +msgstr "القيمة المنطقية" + +#: js/turtledefs.js:137 +#: js/turtledefs.js:239 +#: js/blocks/HeapBlocks.js:59 +#: js/widgets/status.js:147 +msgid "heap" +msgstr "الكومة" + +#: js/turtledefs.js:138 +#: js/turtledefs.js:240 +#: js/blocks/DictBlocks.js:142 +#: js/blocks/ProgramBlocks.js:495 +msgid "dictionary" +msgstr "" + +#: js/turtledefs.js:139 +#: js/turtledefs.js:241 +msgid "ensemble" +msgstr "" + +#: js/turtledefs.js:140 +#: js/turtledefs.js:242 +msgid "extras" +msgstr "إضافات" + +#: js/turtledefs.js:142 +#: js/turtledefs.js:244 +#.TRANS: program as in computer program +#.TRANS: program as in computer program +msgid "program" +msgstr "" + +#: js/turtledefs.js:143 +#: js/turtledefs.js:245 +msgid "my blocks" +msgstr "" + +#: js/turtledefs.js:185 +#: js/turtledefs.js:281 +msgid "artwork" +msgstr "" + +#: js/turtledefs.js:185 +#: js/turtledefs.js:281 +msgid "logic" +msgstr "منطقي" + +#: js/turtledefs.js:185 +#: js/turtledefs.js:281 +msgid "music" +msgstr "" + +#: js/turtledefs.js:187 +#: js/turtledefs.js:463 +msgid "Music Blocks is a collection of tools for exploring fundamental musical concepts in a fun way." +msgstr "" + +#: js/turtledefs.js:436 +msgid "Welcome to Turtle Blocks" +msgstr "" + +#: js/turtledefs.js:438 +#: js/turtledefs.js:465 +#: js/turtledefs.js:774 +#: js/turtledefs.js:805 +msgid "The current version is" +msgstr "" + +#: js/turtledefs.js:446 +#: js/turtledefs.js:483 +msgid "Click the run button to run the project in fast mode." +msgstr "" + +#: js/turtledefs.js:452 +msgid "Stop the turtle." +msgstr "" + +#: js/turtledefs.js:454 +#: js/turtledefs.js:491 +msgid "You can also type Alt-S to stop." +msgstr "" + +#: js/turtledefs.js:462 +#: js/widgets/help.js:333 +msgid "Welcome to Music Blocks" +msgstr "" + +#: js/turtledefs.js:472 +#: js/widgets/help.js:334 +msgid "Meet Mr. Mouse!" +msgstr "" + +#: js/turtledefs.js:473 +msgid "Mr Mouse is our Music Blocks conductor." +msgstr "" + +#: js/turtledefs.js:475 +msgid "Mr Mouse encourages you to explore Music Blocks." +msgstr "" + +#: js/turtledefs.js:477 +msgid "Let us start our tour!" +msgstr "" + +#: js/turtledefs.js:489 +msgid "Stop the music (and the mice)." +msgstr "" + +#: js/turtledefs.js:499 +msgid "Record your project as video." +msgstr "" + +#: js/turtledefs.js:505 +msgid "Toggle Fullscreen mode." +msgstr "" + +#: js/turtledefs.js:511 +msgid "Initialize a new project." +msgstr "" + +#: js/turtledefs.js:517 +msgid "You can also load projects from the file system." +msgstr "يمكنك أيضاً تحميل المشاريع من نظام الملفّات." + +#: js/turtledefs.js:522 +#: planet/js/StringHelper.js:46 +msgid "Delete" +msgstr "حذف" + +#: js/turtledefs.js:523 +msgid "To delete a block, just right-click on it, then you will be able to see the delete option" +msgstr "" + +#: js/turtledefs.js:528 +#: js/activity.js:2649 +#: planet/js/LocalCard.js:31 +msgid "Copy" +msgstr "نسخ" + +#: js/turtledefs.js:529 +msgid "To copy a block, just right-click on it, then you will be able to see the copy option" +msgstr "" + +#: js/turtledefs.js:534 +#: js/piemenus.js:3411 +msgid "Extract" +msgstr "" + +#: js/turtledefs.js:535 +msgid "To extract a block, just right-click on it, then you will be able to see the extract option" msgstr "" -#: js/blocks.js:2538 -#: js/blocks.js:3149 -#: js/block.js:3545 -msgid "off" -msgstr "إيقاف" +#: js/turtledefs.js:542 +#: js/turtledefs.js:552 +#: js/turtledefs.js:573 +msgid "Save your project to a file." +msgstr "" -#: js/blocks.js:2543 -#: js/blocks.js:3154 -#: js/palette.js:618 -#: js/block.js:3466 -#: js/BooleanBlocks.js:77 -#: js/BooleanBlocks.js:167 -#: js/BooleanBlocks.js:251 -#: js/BooleanBlocks.js:335 -#: js/BooleanBlocks.js:433 -#: js/BooleanBlocks.js:539 -#: js/BooleanBlocks.js:640 -#: js/BooleanBlocks.js:741 -#: js/BooleanBlocks.js:847 -#: js/BooleanBlocks.js:948 -#: js/BooleanBlocks.js:1033 -#: js/SensorsBlocks.js:910 -msgid "true" -msgstr "صحيح" +#: js/turtledefs.js:549 +#: js/turtledefs.js:570 +msgid "save" +msgstr "" -#: js/blocks.js:2545 -#: js/blocks.js:3156 -#: js/block.js:3466 -#: js/BooleanBlocks.js:79 -#: js/BooleanBlocks.js:169 -#: js/BooleanBlocks.js:253 -#: js/BooleanBlocks.js:337 -#: js/BooleanBlocks.js:435 -#: js/BooleanBlocks.js:541 -#: js/BooleanBlocks.js:642 -#: js/BooleanBlocks.js:743 -#: js/BooleanBlocks.js:849 -#: js/BooleanBlocks.js:950 -#: js/SensorsBlocks.js:912 -msgid "false" -msgstr "خاطئ" +#: js/turtledefs.js:556 +#: js/turtledefs.js:577 +msgid "Save graphics from your project to as SVG." +msgstr "" -#: js/blocks.js:3183 -#: js/palette.js:574 -#: js/MediaBlocks.js:892 -#: js/MediaBlocks.js:963 -msgid "text" -msgstr "نص" +#: js/turtledefs.js:560 +#: js/turtledefs.js:581 +msgid "Save graphics from your project as PNG." +msgstr "" -#: js/blocks.js:3379 -#: js/palette.js:641 -#: js/palette.js:642 -#: js/BoxesBlocks.js:514 -msgid "store in box" -msgstr "موجود في الصندوق" +#: js/turtledefs.js:564 +#: js/turtledefs.js:597 +msgid "Save block artwork as an SVG file." +msgstr "" -#: js/blocks.js:3384 -#: js/blocks.js:3824 -#: js/blocks.js:3859 -#: js/blocks.js:3894 -#: js/blocks.js:5773 -#: js/blocks.js:5794 -#: js/BoxesBlocks.js:772 -msgid "box1" -msgstr "صندوق1" +#: js/turtledefs.js:585 +msgid "Save audio from your project as WAV." +msgstr "" -#: js/blocks.js:3386 -#: js/blocks.js:3826 -#: js/blocks.js:3861 -#: js/blocks.js:3896 -#: js/blocks.js:5775 -#: js/blocks.js:5796 -#: js/BoxesBlocks.js:663 -msgid "box2" -msgstr "صندوق2" +#: js/turtledefs.js:589 +msgid "Save your project to as an ABC file." +msgstr "" -#: js/blocks.js:4058 -#: js/palette.js:639 -#: js/palette.js:644 -#: js/palette.js:1043 -#: js/BoxesBlocks.js:591 -msgid "store in" -msgstr "خزن القيمة في الصندوق" +#: js/turtledefs.js:593 +msgid "Save your project to as a Lilypond file." +msgstr "" -#: js/blocks.js:4058 -#: js/EnsembleBlocks.js:391 -#: js/EnsembleBlocks.js:402 -#: js/MediaBlocks.js:746 -#: js/ProgramBlocks.js:390 -#: js/ProgramBlocks.js:495 -#: js/ProgramBlocks.js:658 -#: js/BoxesBlocks.js:595 -#: js/PitchBlocks.js:656 -#: js/PitchBlocks.js:932 -#: js/PitchBlocks.js:1827 -#: js/ToneBlocks.js:1025 -#: js/DictBlocks.js:215 -#: js/DictBlocks.js:289 -msgid "name" -msgstr "الاسم" +#: js/turtledefs.js:604 +msgid "Load samples from server" +msgstr "تحميل عينات من الخادم" -#: js/blocks.js:4058 -#: js/RhythmBlocks.js:1130 -#: js/BoxesBlocks.js:75 -#: js/BoxesBlocks.js:595 -#: js/HeapBlocks.js:544 -#: js/DictBlocks.js:289 -#: js/DictBlocks.js:430 -msgid "value" -msgstr "قيمة المتغير" +#: js/turtledefs.js:605 +msgid "This button opens a viewer for loading example projects." +msgstr "يفتح هذا الزر شاشة عرض لتحميل أمثلة على المشاريع." -#: js/blocks.js:4907 -msgid "There is no block selected." -msgstr "ليس هنالك صندوق تم إختياره" +#: js/turtledefs.js:611 +msgid "Palette buttons" +msgstr "ازرار اللوحة" -#: js/blocks.js:5002 -#: js/MediaBlocks.js:888 -msgid "show" -msgstr "نص" +#: js/turtledefs.js:612 +msgid "This toolbar contains the palette buttons including Rhythm Pitch Tone Action and more." +msgstr "" -#: js/blocks.js:5005 -#: js/MediaBlocks.js:803 -#.TRANS: Avatar is the image used to determine the appearance of the mouse. -msgid "avatar" -msgstr "الصورة" +#: js/turtledefs.js:614 +msgid "Click to show the palettes of blocks and drag blocks from the palettes onto the canvas to use them." +msgstr "" -#: js/blocks.js:5008 -#: js/ToneBlocks.js:1010 -#: js/sampler.js:693 -#.TRANS: The sound sample that the user uploads. -msgid "sample" -msgstr "النموذج" +#: js/turtledefs.js:620 +msgid "Cartesian/Polar" +msgstr "" -#: js/turtles.js:874 -msgid "Grid" -msgstr "الشبكة" +#: js/turtledefs.js:621 +msgid "Show or hide a coordinate grid." +msgstr "" -#: js/turtles.js:891 #: js/turtledefs.js:626 +#: js/turtles.js:902 msgid "Clean" msgstr "نظف" -#: js/turtles.js:912 +#: js/turtledefs.js:627 +msgid "Clear the screen and return the mice to their initial positions." +msgstr "" + #: js/turtledefs.js:632 +#: js/turtles.js:955 msgid "Collapse" msgstr "إسقاط" -#: js/turtles.js:940 -msgid "Expand" -msgstr "التوسيع" - -#: js/languagebox.js:198 -msgid "Refresh your browser to change your language preference." -msgstr "أعد فتح الصفحة لتغير لغة التطبيق" - -#: js/languagebox.js:218 -msgid "Music Blocks is already set to this language." -msgstr "م تعيين كتل الموسيقى بالفعل على هذه اللغة" - -#: js/piemenus.js:200 -#: js/musicutils.js:808 -#: js/musicutils.js:824 -#: js/phrasemaker.js:1672 -#: js/musickeyboard.js:2041 -#: js/sampler.js:544 -#.TRANS: double sharp is a music term related to pitch -msgid "double sharp" -msgstr "ثنائي حاد" +#: js/turtledefs.js:633 +msgid "Collapse the graphics window." +msgstr "" -#: js/piemenus.js:201 -#: js/PitchBlocks.js:1510 -#: js/PitchActions.js:580 -#: js/musicutils.js:806 -#: js/musicutils.js:825 -#: js/phrasemaker.js:1673 -#: js/musickeyboard.js:2042 -#: js/sampler.js:545 -#.TRANS: sharp is a half-step up in pitch -#.TRANS: sharp is a music term related to pitch -msgid "sharp" -msgstr "حاد" +#: js/turtledefs.js:638 +#: js/activity.js:5684 +msgid "Home" +msgstr "" -#: js/piemenus.js:202 -#: js/musicutils.js:804 -#: js/musicutils.js:826 -#: js/phrasemaker.js:1674 -#: js/musickeyboard.js:2043 -#: js/sampler.js:546 -#.TRANS: natural is a music term related to pitch -msgid "natural" -msgstr "طبيعي" +#: js/turtledefs.js:639 +msgid "Return all blocks to the center of the screen." +msgstr "" -#: js/piemenus.js:203 -#: js/PitchBlocks.js:1469 -#: js/PitchActions.js:583 -#: js/musicutils.js:802 -#: js/musicutils.js:827 -#: js/phrasemaker.js:1675 -#: js/musickeyboard.js:2044 -#: js/sampler.js:547 -#.TRANS: flat is a half-step down in pitch -#.TRANS: flat is a music term related to pitch -msgid "flat" -msgstr "مبسط" +#: js/turtledefs.js:644 +msgid "Show/hide blocks" +msgstr "إظهار/ إخفاء اللبنات" -#: js/piemenus.js:204 -#: js/musicutils.js:800 -#: js/musicutils.js:828 -#: js/phrasemaker.js:1676 -#: js/musickeyboard.js:2045 -#: js/sampler.js:548 -#.TRANS: double flat is a music term related to pitch -msgid "double flat" -msgstr "ثنائي مبسط" +#: js/turtledefs.js:645 +msgid "Hide or show the blocks and the palettes." +msgstr "إخفاء أو إظهار اللبنات أو اللوحات." -#: js/piemenus.js:2861 -#: js/PitchBlocks.js:1357 -#: js/musicutils.js:627 -#.TRANS: unison means the note is the same as the current note -#.TRANS: unison is a music term related to intervals -msgid "unison" +#: js/turtledefs.js:650 +msgid "Expand/collapse collapsable blocks" msgstr "" -#: js/piemenus.js:3015 -#: js/piemenus.js:3088 -#: js/musicutils.js:635 -#: js/musicutils.js:810 -#: js/musicutils.js:912 -#.TRANS: major is a music term related to intervals and mode -msgid "major" -msgstr "" +#: js/turtledefs.js:651 +msgid "Expand or collapse start and action stacks." +msgstr "قم بتوسيع أو تقليص أكوام البدء والنشاط." -#: js/piemenus.js:3015 -#: js/piemenus.js:3088 -#: js/musicutils.js:653 -#.TRANS: modal scale for music -msgid "ionian" -msgstr "" +#: js/turtledefs.js:658 +#: js/activity.js:5704 +msgid "Decrease block size" +msgstr "قلل حجم اللبنة" -#: js/piemenus.js:3017 -#: js/piemenus.js:3092 -#: js/musicutils.js:633 -#: js/musicutils.js:811 -#: js/musicutils.js:909 -#.TRANS: minor is a music term related to intervals and mode -msgid "minor" -msgstr "" +#: js/turtledefs.js:659 +msgid "Decrease the size of the blocks." +msgstr "قم بتقليل حجم اللبنات" -#: js/piemenus.js:3017 -#: js/piemenus.js:3092 -#: js/musicutils.js:663 -#.TRANS: modal scale for music -msgid "aeolian" -msgstr "" +#: js/turtledefs.js:664 +#: js/activity.js:5710 +msgid "Increase block size" +msgstr "قم بزيادة حجم اللبنات" -#: js/piemenus.js:3407 -msgid "Duplicate" -msgstr "" +#: js/turtledefs.js:665 +msgid "Increase the size of the blocks." +msgstr "زيادة حجم اللبنات" -#: js/piemenus.js:3408 -#: js/turtledefs.js:534 -msgid "Extract" -msgstr "" +#: js/turtledefs.js:670 +msgid "Expand/collapse option toolbar" +msgstr "توسيع/ تقليص شريط الأدوات" -#: js/piemenus.js:3409 -msgid "Move to trash" -msgstr "" +#: js/turtledefs.js:671 +msgid "Click this button to expand or collapse the auxillary toolbar." +msgstr "انقر على هذا الزر لتوسيع أو تقليص شريط الأدوات المساعد." -#: js/piemenus.js:3410 -#: js/timbre.js:968 -#: js/StringHelper.js:69 -msgid "Close" -msgstr "" +#: js/turtledefs.js:676 +msgid "Run slow" +msgstr "نفذ ببطء" -#: js/piemenus.js:3416 -msgid "Save stack" -msgstr "قم بتخزين الكومة" +#: js/turtledefs.js:677 +msgid "Click to run the project in slow mode." +msgstr "انقر لتنفيذ المشروع بالعرض البطيء." -#: js/piemenus.js:3420 -#: js/toolbar.js:60 -#: js/toolbar.js:120 -#: js/toolbar.js:185 -#: js/toolbar.js:240 -#: js/turtledefs.js:752 -msgid "Help" -msgstr "المساعدة" +#: js/turtledefs.js:683 +msgid "Click to run the project step by step." +msgstr "انقر لتنفيذ المشروع خطوةً خطوة." -#: js/piemenus.js:3762 -msgid "You have chosen key " -msgstr "" +#: js/turtledefs.js:690 +msgid "Display statistics about your Music project." +msgstr "اعرض الإحصائيات المتعلقة ببرنامج السلحفاة." -#: js/piemenus.js:3766 -msgid " for your pitch preview." +#: js/turtledefs.js:697 +msgid "Delete a selected plugin." msgstr "" -#: js/palette.js:571 -msgid "grid" -msgstr "" +#: js/turtledefs.js:704 +msgid "Enable scrolling" +msgstr "تفعيل التمرير" -#: js/palette.js:577 -#: js/block.js:1540 -#: js/block.js:2343 -#: js/turtledefs.js:126 -#: js/turtledefs.js:228 -#: js/lilypond.js:740 -#: js/lilypond.js:905 -#: js/lilypond.js:949 -#: js/DrumBlocks.js:486 -#: js/RhythmBlocks.js:766 -#: js/VolumeBlocks.js:502 -#: js/phrasemaker.js:823 -msgid "drum" -msgstr "" +#: js/turtledefs.js:705 +msgid "You can scroll the blocks on the canvas." +msgstr "يمكنك تمرير اللبنات على اللوحات." -#: js/palette.js:580 -msgid "effect" +#: js/turtledefs.js:714 +msgid "Wrap Turtle" msgstr "" -#: js/palette.js:586 -msgid "sargam" +#: js/turtledefs.js:715 +msgid "Turn Turtle wrapping On or Off." msgstr "" -#: js/palette.js:589 -#: js/activity.js:1833 -#: js/RhythmBlocks.js:923 -#: js/PitchBlocks.js:442 -#: js/PitchBlocks.js:1748 -#.TRANS: a numeric mapping of the notes in an octave based on the musical mode -msgid "scale degree" -msgstr "" +#: js/turtledefs.js:725 +msgid "Restore blocks from the trash." +msgstr "إعادة اللبنات من سلة المهملات." -#: js/palette.js:592 -#: js/activity.js:1860 -msgid "mode name" +#: js/turtledefs.js:732 +msgid "Switch mode" msgstr "" -#: js/palette.js:595 -#: js/activity.js:1839 -msgid "invert mode" +#: js/turtledefs.js:733 +msgid "Switch between beginner and advance modes." msgstr "" -#: js/palette.js:598 -#: js/activity.js:1836 -msgid "voice name" +#: js/turtledefs.js:739 +msgid "Select your language preference." msgstr "" -#: js/palette.js:601 -#: js/PitchBlocks.js:1181 -msgid "custom pitch" +#: js/turtledefs.js:745 +msgid "Keyboard shortcuts" msgstr "" -#: js/palette.js:605 -#: js/block.js:1456 -#: js/block.js:1575 -#: js/WidgetBlocks.js:218 -#: js/IntervalsBlocks.js:63 -msgid "temperament" +#: js/turtledefs.js:746 +msgid "You can type d to create a do block and r to create a re block etc." msgstr "" -#: js/palette.js:609 -msgid "accidental" +#: js/turtledefs.js:753 +msgid "Show these messages." +msgstr "أظهر هذه الرسائل." + +#: js/turtledefs.js:759 +#: js/turtledefs.js:790 +#: js/widgets/help.js:335 +msgid "Guide" msgstr "" -#: js/palette.js:615 -#: js/activity.js:1866 -msgid "interval name" +#: js/turtledefs.js:760 +msgid "A detailed guide to Turtle Blocks is available." msgstr "" -#: js/palette.js:633 -#: js/PitchBlocks.js:405 -msgid "pitch converter" +#: js/turtledefs.js:764 +msgid "Turtle Blocks Guide" msgstr "" -#: js/rubrics.js:522 -#: js/turtledefs.js:119 -#: js/turtledefs.js:221 -#: js/RhythmBlockPaletteBlocks.js:52 -#: js/RhythmBlockPaletteBlocks.js:233 -#: js/ProgramBlocks.js:745 -#: js/rhythmruler.js:1670 -#: js/rhythmruler.js:1677 -#: js/rhythmruler.js:1745 -#: js/rhythmruler.js:1752 -#: js/rhythmruler.js:1830 -#.TRANS: an arrangement of notes based on duration -msgid "rhythm" +#: js/turtledefs.js:767 +#: js/turtledefs.js:798 +#: js/widgets/help.js:336 +msgid "About" msgstr "" -#: js/rubrics.js:523 -#: js/block.js:2339 -#: js/turtledefs.js:121 -#: js/turtledefs.js:223 -#: js/IntervalsBlocks.js:63 -#: js/PitchBlocks.js:1801 -#: js/PitchBlocks.js:1814 -#: js/SensorsBlocks.js:178 -#: js/phrasemaker.js:821 -#: js/musickeyboard.js:1653 -#.TRANS: pitch number -#.TRANS: we specify pitch in terms of a name and an octave. The name can be CDEFGAB or Do Re Mi Fa Sol La Ti. Octave is a number between 1 and 8. -msgid "pitch" +#: js/turtledefs.js:768 +msgid "Turtle Blocks is an open source collection of tools for exploring musical concepts." msgstr "" -#: js/rubrics.js:524 -#: js/turtledefs.js:123 -#: js/turtledefs.js:225 -msgid "tone" -msgstr "نبرة الصوت" +#: js/turtledefs.js:770 +msgid "A full list of contributors can be found in the Turtle Blocks GitHub repository." +msgstr "" -#: js/rubrics.js:525 -#: js/lilypond.js:613 -#: js/lilypond.js:912 -#: js/lilypond.js:918 -#: js/lilypond.js:956 -msgid "mouse" +#: js/turtledefs.js:772 +msgid "Turtle Blocks is licensed under the AGPL." msgstr "" -#: js/rubrics.js:526 -#: js/turtledefs.js:132 -#: js/turtledefs.js:234 -#: js/phrasemaker.js:825 -msgid "pen" -msgstr "القلم" +#: js/turtledefs.js:780 +msgid "Turtle Blocks GitHub repository" +msgstr "" -#: js/rubrics.js:527 -#: js/turtledefs.js:133 -#: js/turtledefs.js:235 -#: js/NumberBlocks.js:905 -#: js/PitchBlocks.js:1679 -#: js/PitchBlocks.js:1720 -msgid "number" -msgstr "عدد" +#: js/turtledefs.js:783 +#: js/turtledefs.js:814 +#: js/widgets/help.js:337 +#: js/widgets/help.js:359 +msgid "Congratulations." +msgstr "تهانينا" -#: js/rubrics.js:528 -#: js/turtledefs.js:127 -#: js/turtledefs.js:229 -msgid "flow" -msgstr "تدفق" +#: js/turtledefs.js:784 +msgid "You have finished the tour. Please enjoy Turtle Blocks!" +msgstr "" -#: js/rubrics.js:530 -#: js/turtledefs.js:136 -#: js/turtledefs.js:238 -msgid "sensors" -msgstr "الحسّاسات" +#: js/turtledefs.js:791 +msgid "A detailed guide to Music Blocks is available." +msgstr "" -#: js/rubrics.js:531 -#: js/turtledefs.js:135 -#: js/turtledefs.js:237 -#: js/MediaBlocks.js:930 -msgid "media" -msgstr "وسائل الإعلام" +#: js/turtledefs.js:799 +msgid "Music Blocks is an open source collection of tools for exploring musical concepts." +msgstr "" -#: js/rubrics.js:532 -msgid "mice" +#: js/turtledefs.js:801 +msgid "A full list of contributors can be found in the Music Blocks GitHub repository." msgstr "" -#: js/macros.js:711 -#: js/musicutils.js:783 -#: js/synthutils.js:181 -#.TRANS: animal sound effect -msgid "duck" +#: js/turtledefs.js:803 +msgid "Music Blocks is licensed under the AGPL." msgstr "" -#: js/toolbar.js:46 -#: js/toolbar.js:107 -msgid "About Music Blocks" +#: js/turtledefs.js:811 +msgid "Music Blocks GitHub repository" msgstr "" -#: js/toolbar.js:47 -#: js/toolbar.js:108 -#: js/toolbar.js:172 -#: js/toolbar.js:228 -#: js/turtledefs.js:445 -#: js/turtledefs.js:482 -#: js/activity.js:2281 -#: js/activity.js:2289 -#: js/activity.js:2520 -#: js/modewidget.js:77 -#: js/pitchstaircase.js:121 -#: js/phrasemaker.js:302 -#: js/phrasemaker.js:312 -#: js/phrasemaker.js:314 -#: js/phrasemaker.js:3901 -#: js/phrasemaker.js:4061 -#: js/phrasemaker.js:4066 -#: js/phrasemaker.js:4068 -#: js/phrasemaker.js:4183 -#: js/pitchdrummatrix.js:81 -#: js/pitchdrummatrix.js:574 -#: js/pitchdrummatrix.js:576 -#: js/pitchdrummatrix.js:628 -#: js/pitchdrummatrix.js:630 -#: js/pitchdrummatrix.js:645 -#: js/pitchdrummatrix.js:647 -#: js/pitchdrummatrix.js:674 -#: js/pitchdrummatrix.js:676 -#: js/temperament.js:477 -#: js/temperament.js:480 -#: js/temperament.js:540 -#: js/temperament.js:542 -#: js/temperament.js:1835 -#: js/temperament.js:1837 -#: js/temperament.js:1986 -#: js/temperament.js:1988 -#: js/musickeyboard.js:522 -#: js/musickeyboard.js:682 -#: js/musickeyboard.js:684 -#: js/musickeyboard.js:756 -#: js/musickeyboard.js:758 -#: js/rhythmruler.js:298 -#: js/rhythmruler.js:300 -#: js/rhythmruler.js:314 -#: js/rhythmruler.js:316 -#: js/sampler.js:96 -#: js/sampler.js:98 -#: js/sampler.js:229 -#: js/sampler.js:235 -#: js/sampler.js:237 -#: js/tempo.js:84 -#: js/tempo.js:86 -#: js/timbre.js:432 -#: js/timbre.js:434 -#: js/timbre.js:465 -#: js/timbre.js:467 -#: js/timbre.js:746 -#: js/meterwidget.js:80 -#: js/arpeggio.js:90 -#: js/arpeggio.js:547 -#: js/arpeggio.js:549 -#: js/arpeggio.js:644 -#: js/arpeggio.js:646 -msgid "Play" +#: js/turtledefs.js:815 +msgid "You have finished the tour. Please enjoy Music Blocks!" msgstr "" -#: js/toolbar.js:48 -#: js/toolbar.js:109 -#: js/toolbar.js:173 -#: js/toolbar.js:229 -#: js/turtledefs.js:451 -#: js/turtledefs.js:488 -#: js/activity.js:2297 -#: js/modewidget.js:99 -#: js/modewidget.js:101 -#: js/phrasemaker.js:323 -#: js/phrasemaker.js:325 -#: js/pitchdrummatrix.js:561 -#: js/pitchdrummatrix.js:563 -#: js/temperament.js:1820 -#: js/temperament.js:1822 -#: js/meterwidget.js:101 -#: js/meterwidget.js:103 -#: js/arpeggio.js:534 -#: js/arpeggio.js:536 -msgid "Stop" -msgstr "أوقف" +#: js/turtles.js:882 +msgid "Grid" +msgstr "الشبكة" -#: js/toolbar.js:49 -#: js/toolbar.js:110 -#: js/toolbar.js:174 -#: js/toolbar.js:230 -#: js/turtledefs.js:498 -msgid "Record" -msgstr "" +#: js/turtles.js:1024 +msgid "Expand" +msgstr "التوسيع" -#: js/toolbar.js:50 -#: js/toolbar.js:51 -msgid "Full screen" +#: js/block-verbose.js:1616 +#: js/block-verbose.js:1735 +#: js/block.js:1580 +#: js/block.js:1699 +#: js/palette.js:605 +#: js/blocks/IntervalsBlocks.js:63 +#: js/blocks/WidgetBlocks.js:259 +msgid "temperament" msgstr "" -#: js/toolbar.js:52 -#: js/toolbar.js:112 -#: js/toolbar.js:177 -#: js/toolbar.js:232 -#: js/turtledefs.js:504 -msgid "Toggle Fullscreen" +#: js/block-verbose.js:1630 +#: js/block.js:1594 +msgid "matrix" msgstr "" -#: js/toolbar.js:53 -#: js/toolbar.js:113 -#: js/toolbar.js:178 -#: js/toolbar.js:233 -#: js/turtledefs.js:510 -#: js/StringHelper.js:33 -msgid "New project" +#: js/block-verbose.js:1637 +#: js/block.js:1601 +#: js/blocks/WidgetBlocks.js:1509 +#: plugins/rodi.rtp:324 +msgid "status" msgstr "" -#: js/toolbar.js:54 -#: js/toolbar.js:114 -#: js/toolbar.js:179 -#: js/toolbar.js:234 -#: js/turtledefs.js:516 -msgid "Load project from file" -msgstr "حمل المشروع من الملف" - -#: js/toolbar.js:55 -#: js/toolbar.js:115 -#: js/toolbar.js:116 -#: js/toolbar.js:180 -#: js/toolbar.js:235 -#: js/turtledefs.js:541 -#: js/turtledefs.js:550 -#: js/turtledefs.js:571 -msgid "Save project" -msgstr "حفظ المشروع" +#: js/block-verbose.js:1644 +#: js/block.js:1608 +msgid "drum mapper" +msgstr "" -#: js/toolbar.js:56 -#: js/toolbar.js:75 -#: js/toolbar.js:77 -#: js/toolbar.js:135 -#: js/toolbar.js:144 -#: js/toolbar.js:146 -#: js/toolbar.js:181 -#: js/toolbar.js:199 -#: js/toolbar.js:201 -#: js/toolbar.js:236 -#: js/toolbar.js:254 -#: js/toolbar.js:256 -msgid "Save project as HTML" +#: js/block-verbose.js:1651 +#: js/block.js:1615 +msgid "ruler" msgstr "" -#: js/toolbar.js:57 -#: js/toolbar.js:117 -#: js/toolbar.js:182 -#: js/toolbar.js:237 -msgid "Find and share projects" +#: js/block-verbose.js:1658 +#: js/block.js:1622 +#: js/blocks/WidgetBlocks.js:397 +#.TRANS: timbre is the character or quality of a musical sound +msgid "timbre" msgstr "" -#: js/toolbar.js:58 -#: js/toolbar.js:118 -#: js/toolbar.js:183 -#: js/toolbar.js:238 -msgid "Offline. Sharing is unavailable" +#: js/block-verbose.js:1665 +#: js/block.js:1629 +msgid "stair" msgstr "" -#: js/toolbar.js:59 -#: js/toolbar.js:119 -#: js/toolbar.js:184 -#: js/toolbar.js:239 -msgid "Auxiliary menu" +#: js/block-verbose.js:1672 +#: js/block.js:1636 +#: js/blocks/WidgetBlocks.js:707 +#.TRANS: the speed at music is should be played. +msgid "tempo" msgstr "" -#: js/toolbar.js:61 -#: js/toolbar.js:121 -#: js/toolbar.js:186 -#: js/toolbar.js:241 -msgid "Run slowly" +#: js/block-verbose.js:1679 +#: js/block-verbose.js:1742 +#: js/block.js:1643 +#: js/block.js:1706 +#: js/blocks/IntervalsBlocks.js:1464 +#.TRANS: mode, e.g., Major in C Major +msgid "mode" msgstr "" -#: js/toolbar.js:62 -#: js/toolbar.js:122 -#: js/toolbar.js:187 -#: js/toolbar.js:242 -#: js/turtledefs.js:682 -msgid "Run step by step" -msgstr "نفذ خطوةً خطوة" +#: js/block-verbose.js:1686 +#: js/block.js:1650 +msgid "slider" +msgstr "" -#: js/toolbar.js:63 -#: js/toolbar.js:123 -#: js/toolbar.js:188 -#: js/toolbar.js:243 -#: js/turtledefs.js:689 -msgid "Display statistics" -msgstr "أظهر الإحصاءات" +#: js/block-verbose.js:1693 +#: js/block.js:1657 +#: js/blocks/SensorsBlocks.js:1001 +msgid "keyboard" +msgstr "لوحة المفاتيح" -#: js/toolbar.js:64 -#: js/toolbar.js:124 -#: js/toolbar.js:189 -#: js/toolbar.js:244 -msgid "Load plugin" +#: js/block-verbose.js:1707 +#: js/block.js:1671 +#: js/blocks/WidgetBlocks.js:1190 +#: js/blocks/WidgetBlocks.js:1228 +#.TRANS: widget for subdividing a measure into distinct rhythmic elements +msgid "rhythm maker" msgstr "" -#: js/toolbar.js:65 -#: js/toolbar.js:125 -#: js/toolbar.js:190 -#: js/toolbar.js:245 -#: js/turtledefs.js:696 -msgid "Delete plugin" +#: js/block-verbose.js:1714 +#: js/block-verbose.js:2457 +#: js/block-verbose.js:2514 +#: js/block.js:1678 +#: js/block.js:2385 +#: js/block.js:2442 +#: js/blocks/MeterBlocks.js:1367 +#: js/blocks/OrnamentBlocks.js:220 +#: js/blocks/OrnamentBlocks.js:312 +#: js/blocks/RhythmBlocks.js:33 +#: js/blocks/RhythmBlocks.js:356 +#: js/blocks/RhythmBlocks.js:766 +#: js/blocks/RhythmBlocks.js:806 +#: js/blocks/RhythmBlockPaletteBlocks.js:70 +#: js/blocks/RhythmBlockPaletteBlocks.js:252 +#: js/blocks/RhythmBlockPaletteBlocks.js:485 +#: js/blocks/RhythmBlockPaletteBlocks.js:554 +#: js/blocks/RhythmBlockPaletteBlocks.js:605 +#: js/blocks/RhythmBlockPaletteBlocks.js:875 +#: js/turtleactions/DictActions.js:85 +#: js/widgets/phrasemaker.js:942 +#: js/widgets/phrasemaker.js:2656 +#: js/widgets/phrasemaker.js:2699 +#: js/widgets/phrasemaker.js:2810 +#.TRANS: the value (e.g., 1/4 note) of the note being played. +msgid "note value" msgstr "" -#: js/toolbar.js:66 -#: js/toolbar.js:126 -#: js/toolbar.js:191 -#: js/toolbar.js:246 -msgid "Enable horizontal scrolling" +#: js/block-verbose.js:1721 +#: js/block-verbose.js:2382 +#: js/block-verbose.js:2405 +#: js/block.js:1685 +#: js/block.js:2310 +#: js/block.js:2333 +#: js/blocks/IntervalsBlocks.js:1071 +#: js/blocks/OrnamentBlocks.js:312 +#.TRANS: calculate a relative step between notes based on semi-tones +msgid "scalar interval" msgstr "" -#: js/toolbar.js:67 -#: js/toolbar.js:127 -#: js/toolbar.js:192 -#: js/toolbar.js:247 -msgid "Disable horizontal scrolling" +#: js/block-verbose.js:1728 +#: js/block.js:1692 +#: js/blocks/RhythmBlocks.js:148 +msgid "milliseconds" msgstr "" -#: js/toolbar.js:68 -#: js/toolbar.js:128 -#: js/toolbar.js:193 -#: js/toolbar.js:248 -#: js/LocalCard.js:54 -#: js/StringHelper.js:71 -msgid "Merge with current project" +#: js/block-verbose.js:2455 +#: js/block-verbose.js:2459 +#: js/block-verbose.js:2512 +#: js/block-verbose.js:2628 +#: js/block.js:2383 +#: js/block.js:2387 +#: js/block.js:2440 +#: js/block.js:2556 +#: js/blocks/RhythmBlocks.js:712 +#: js/blocks/ProgramBlocks.js:1273 +#: js/widgets/rhythmruler.js:1183 +#: js/widgets/rhythmruler.js:1329 +msgid "silence" msgstr "" -#: js/toolbar.js:69 -#: js/toolbar.js:129 -msgid "Set Pitch Preview" +#: js/block-verbose.js:2548 +#: js/block-verbose.js:3492 +#: js/block-verbose.js:3509 +#: js/activity.js:2718 +#: js/activity.js:2769 +#: js/block.js:2476 +#: js/block.js:3416 +#: js/block.js:3433 +#: js/utils/musicutils.js:3780 +#: js/utils/musicutils.js:5273 +#.TRANS: the note names must be separated by single spaces +#.TRANS: the note names must be separated by single spaces +#.TRANS: the note names must be separated by single spaces +msgid "ti la sol fa mi re do" msgstr "" -#: js/toolbar.js:70 -#: js/toolbar.js:130 -#: js/toolbar.js:194 -#: js/toolbar.js:249 -msgid "Toggle JavaScript Editor" +#: js/block-verbose.js:2616 +#: js/block.js:2544 +#.TRANS: scalar step +#.TRANS: scalar step +msgid "down" msgstr "" -#: js/toolbar.js:71 -#: js/toolbar.js:131 -#: js/toolbar.js:195 -#: js/toolbar.js:250 -#: js/turtledefs.js:724 -msgid "Restore" +#: js/block-verbose.js:2617 +#: js/block.js:2545 +msgid "up" msgstr "" -#: js/toolbar.js:72 -#: js/toolbar.js:132 -#: js/toolbar.js:196 -#: js/toolbar.js:251 -msgid "Switch to beginner mode" +#: js/block-verbose.js:3026 +#: js/block.js:2950 +msgid "Silence block cannot be removed." msgstr "" -#: js/toolbar.js:73 -#: js/toolbar.js:133 -#: js/toolbar.js:197 -#: js/toolbar.js:252 -msgid "Switch to advanced mode" +#: js/block-verbose.js:3824 +#: js/block.js:3748 +#: js/blocks.js:2607 +#: js/blocks.js:3218 +#: js/palette.js:618 +#: js/blocks/BooleanBlocks.js:77 +#: js/blocks/BooleanBlocks.js:167 +#: js/blocks/BooleanBlocks.js:251 +#: js/blocks/BooleanBlocks.js:335 +#: js/blocks/BooleanBlocks.js:433 +#: js/blocks/BooleanBlocks.js:539 +#: js/blocks/BooleanBlocks.js:640 +#: js/blocks/BooleanBlocks.js:741 +#: js/blocks/BooleanBlocks.js:847 +#: js/blocks/BooleanBlocks.js:948 +#: js/blocks/BooleanBlocks.js:1033 +#: js/blocks/SensorsBlocks.js:910 +msgid "true" +msgstr "صحيح" + +#: js/block-verbose.js:3824 +#: js/block.js:3748 +#: js/blocks.js:2609 +#: js/blocks.js:3220 +#: js/blocks/BooleanBlocks.js:79 +#: js/blocks/BooleanBlocks.js:169 +#: js/blocks/BooleanBlocks.js:253 +#: js/blocks/BooleanBlocks.js:337 +#: js/blocks/BooleanBlocks.js:435 +#: js/blocks/BooleanBlocks.js:541 +#: js/blocks/BooleanBlocks.js:642 +#: js/blocks/BooleanBlocks.js:743 +#: js/blocks/BooleanBlocks.js:849 +#: js/blocks/BooleanBlocks.js:950 +#: js/blocks/SensorsBlocks.js:912 +msgid "false" +msgstr "خاطئ" + +#: js/block-verbose.js:3835 +#: js/block-verbose.js:3848 +#: js/block.js:3759 +#: js/block.js:3772 +#: js/blocks/ExtrasBlocks.js:615 +msgid "Cartesian" +msgstr "الديكارتي" + +#: js/block-verbose.js:3836 +#: js/block-verbose.js:3849 +#: js/block.js:3760 +#: js/block.js:3773 +#: js/blocks/ExtrasBlocks.js:619 +msgid "polar" msgstr "" -#: js/toolbar.js:74 -#: js/toolbar.js:134 -#: js/toolbar.js:143 -#: js/toolbar.js:198 -#: js/toolbar.js:253 -#: js/turtledefs.js:738 -msgid "Select language" +#: js/block-verbose.js:3837 +#: js/block-verbose.js:3850 +#: js/block.js:3761 +#: js/block.js:3774 +#: js/blocks/ExtrasBlocks.js:623 +msgid "Cartesian+polar" msgstr "" -#: js/toolbar.js:76 -#: js/toolbar.js:79 -#: js/toolbar.js:137 -#: js/turtledefs.js:579 -msgid "Save mouse artwork as PNG" +#: js/block-verbose.js:3838 +#: js/block-verbose.js:3857 +#: js/block.js:3762 +#: js/block.js:3781 +#: js/blocks/ExtrasBlocks.js:652 +msgid "none" msgstr "" -#: js/toolbar.js:78 -#: js/toolbar.js:136 -#: js/turtledefs.js:575 -msgid "Save mouse artwork as SVG" +#: js/block-verbose.js:3851 +#: js/block.js:3775 +#: js/blocks/ExtrasBlocks.js:628 +msgid "treble" msgstr "" -#: js/toolbar.js:80 -#: js/toolbar.js:138 -#: js/turtledefs.js:583 -msgid "Save music as WAV" +#: js/block-verbose.js:3852 +#: js/block.js:3776 +#: js/blocks/ExtrasBlocks.js:632 +msgid "grand staff" msgstr "" -#: js/toolbar.js:81 -#: js/toolbar.js:139 -#: js/turtledefs.js:587 -msgid "Save sheet music as ABC" +#: js/block-verbose.js:3853 +#: js/block.js:3777 +#: js/blocks/ExtrasBlocks.js:636 +msgid "mezzo-soprano" msgstr "" -#: js/toolbar.js:82 -#: js/toolbar.js:140 -#: js/turtledefs.js:591 -msgid "Save sheet music as Lilypond" +#: js/block-verbose.js:3854 +#: js/block.js:3778 +#: js/blocks/ExtrasBlocks.js:640 +msgid "alto" msgstr "" -#: js/toolbar.js:83 -msgid "Save sheet music as MusicXML" +#: js/block-verbose.js:3855 +#: js/block.js:3779 +#: js/blocks/ExtrasBlocks.js:644 +msgid "tenor" msgstr "" -#: js/toolbar.js:84 -#: js/toolbar.js:141 -#: js/toolbar.js:149 -#: js/toolbar.js:204 -#: js/toolbar.js:259 -#: js/turtledefs.js:562 -#: js/turtledefs.js:595 -msgid "Save block artwork as SVG" +#: js/block-verbose.js:3856 +#: js/block.js:3780 +#: js/utils/musicutils.js:1115 +#: js/utils/synthutils.js:80 +#: js/blocks/ExtrasBlocks.js:648 +#.TRANS: musical instrument +msgid "bass" msgstr "" -#: js/toolbar.js:85 -#: js/toolbar.js:142 -#: js/toolbar.js:150 -#: js/toolbar.js:205 -#: js/toolbar.js:260 -msgid "Confirm" +#: js/block-verbose.js:3901 +#: js/block.js:3825 +#: js/blocks.js:2600 +#: js/blocks.js:3211 +msgid "on2" msgstr "" -#: js/toolbar.js:86 -#: js/toolbar.js:151 -#: js/toolbar.js:206 -#: js/toolbar.js:261 -msgid "English (United States)" +#: js/block-verbose.js:3903 +#: js/block.js:3827 +#: js/blocks.js:2602 +#: js/blocks.js:3213 +msgid "off" +msgstr "إيقاف" + +#: js/block-verbose.js:4470 +#: js/block.js:4394 +msgid "Not a number" msgstr "" -#: js/toolbar.js:87 -#: js/toolbar.js:152 -#: js/toolbar.js:207 -#: js/toolbar.js:262 -msgid "English (United Kingdom)" +#: js/block-verbose.js:4477 +#: js/block.js:4401 +msgid "Octave value must be between 1 and 10." msgstr "" -#: js/toolbar.js:88 -#: js/toolbar.js:153 -#: js/toolbar.js:208 -#: js/toolbar.js:263 -msgid "日本語" +#: js/block-verbose.js:4485 +#: js/block.js:4409 +msgid "Numbers can have at most 10 digits." msgstr "" -#: js/toolbar.js:89 -msgid "한국어" +#: js/activity.js:390 +#: js/activity.js:395 +msgid "Search for blocks" msgstr "" -#: js/toolbar.js:90 -#: js/toolbar.js:155 -#: js/toolbar.js:210 -#: js/toolbar.js:265 -msgid "español" +#: js/activity.js:1413 +msgid "Refresh your browser to change to advanced mode." msgstr "" -#: js/toolbar.js:91 -#: js/toolbar.js:156 -#: js/toolbar.js:211 -#: js/toolbar.js:266 -msgid "português" +#: js/activity.js:1418 +msgid "Refresh your browser to change to beginner mode." msgstr "" -#: js/toolbar.js:92 -#: js/toolbar.js:157 -#: js/toolbar.js:212 -#: js/toolbar.js:267 -msgid "にほんご" +#: js/activity.js:1477 +msgid "Catching mice" msgstr "" -#: js/toolbar.js:93 -#: js/toolbar.js:158 -#: js/toolbar.js:213 -#: js/toolbar.js:268 -msgid "中文" +#: js/activity.js:1478 +msgid "Cleaning the instruments" msgstr "" -#: js/toolbar.js:94 -#: js/toolbar.js:159 -#: js/toolbar.js:214 -#: js/toolbar.js:269 -msgid "ภาษาไทย" +#: js/activity.js:1479 +msgid "Testing key pieces" msgstr "" -#: js/toolbar.js:95 -#: js/toolbar.js:160 -#: js/toolbar.js:215 -#: js/toolbar.js:270 -msgid "aymara" +#: js/activity.js:1480 +msgid "Sight-reading" msgstr "" -#: js/toolbar.js:96 -#: js/toolbar.js:161 -#: js/toolbar.js:216 -#: js/toolbar.js:271 -msgid "quechua" +#: js/activity.js:1481 +msgid "Combining math and music" msgstr "" -#: js/toolbar.js:97 -#: js/toolbar.js:162 -#: js/toolbar.js:217 -#: js/toolbar.js:272 -msgid "guarani" +#: js/activity.js:1482 +msgid "Generating more blocks" msgstr "" -#: js/toolbar.js:98 -#: js/toolbar.js:163 -#: js/toolbar.js:218 -#: js/toolbar.js:273 -msgid "हिंदी" +#: js/activity.js:1483 +msgid "Do Re Mi Fa Sol La Ti Do" msgstr "" -#: js/toolbar.js:99 -#: js/toolbar.js:165 -#: js/toolbar.js:219 -#: js/toolbar.js:275 -msgid "igbo" +#: js/activity.js:1484 +msgid "Tuning string instruments" msgstr "" -#: js/toolbar.js:100 -#: js/toolbar.js:166 -#: js/toolbar.js:220 -#: js/toolbar.js:276 -msgid "عربى" +#: js/activity.js:1485 +msgid "Pressing random keys" msgstr "" -#: js/toolbar.js:101 -#: js/toolbar.js:164 -#: js/toolbar.js:221 -#: js/toolbar.js:274 -msgid "తెలుగు" +#: js/activity.js:1663 +msgid "plugins will be removed upon restart." msgstr "" -#: js/toolbar.js:102 -#: js/toolbar.js:167 -#: js/toolbar.js:222 -#: js/toolbar.js:277 -msgid "עִברִית" +#: js/activity.js:1672 +msgid "show Cartesian" msgstr "" -#: js/toolbar.js:111 -#: js/toolbar.js:175 -#: js/toolbar.js:176 -#: js/toolbar.js:231 -msgid "Full Screen" +#: js/activity.js:2211 +#: js/palette.js:589 +#: js/blocks/RhythmBlocks.js:923 +#: js/blocks/PitchBlocks.js:442 +#: js/blocks/PitchBlocks.js:1786 +#.TRANS: a numeric mapping of the notes in an octave based on the musical mode +msgid "scale degree" msgstr "" -#: js/toolbar.js:145 -#: js/toolbar.js:148 -#: js/toolbar.js:200 -#: js/toolbar.js:203 -#: js/toolbar.js:255 -#: js/toolbar.js:258 -#: js/turtledefs.js:558 -msgid "Save turtle artwork as PNG" +#: js/activity.js:2214 +#: js/palette.js:598 +msgid "voice name" msgstr "" -#: js/toolbar.js:147 -#: js/toolbar.js:202 -#: js/toolbar.js:257 -#: js/turtledefs.js:554 -msgid "Save turtle artwork as SVG" +#: js/activity.js:2217 +#: js/palette.js:595 +msgid "invert mode" msgstr "" -#: js/toolbar.js:154 -#: js/toolbar.js:209 -#: js/toolbar.js:264 -msgid "한국인" +#: js/activity.js:2220 +msgid "output tools" msgstr "" -#: js/toolbar.js:171 -#: js/toolbar.js:227 -msgid "About Turtle Blocks" +#: js/activity.js:2223 +msgid "custom note" msgstr "" -#: js/toolbar.js:429 -#: js/toolbar.js:440 -msgid "Turtle Wrap Off" +#: js/activity.js:2226 +msgid "accidental name" msgstr "" -#: js/toolbar.js:442 -msgid "Turtle Wrap On" +#: js/activity.js:2229 +#: js/blocks/PitchBlocks.js:855 +msgid "east indian solfege" msgstr "" -#: js/block.js:1470 -msgid "matrix" +#: js/activity.js:2232 +#: js/blocks/PitchBlocks.js:869 +msgid "note name" msgstr "" -#: js/block.js:1477 -#: js/WidgetBlocks.js:1226 -#: plugins/rodi.rtp:324 -msgid "status" +#: js/activity.js:2235 +#: js/blocks/IntervalsBlocks.js:94 +msgid "temperament name" msgstr "" -#: js/block.js:1484 -msgid "drum mapper" +#: js/activity.js:2238 +#: js/palette.js:592 +msgid "mode name" msgstr "" -#: js/block.js:1491 -msgid "ruler" +#: js/activity.js:2241 +msgid "chord name" msgstr "" -#: js/block.js:1498 -#: js/WidgetBlocks.js:327 -#.TRANS: timbre is the character or quality of a musical sound -msgid "timbre" +#: js/activity.js:2244 +#: js/palette.js:615 +msgid "interval name" msgstr "" -#: js/block.js:1505 -msgid "stair" +#: js/activity.js:2247 +msgid "filter type" msgstr "" -#: js/block.js:1512 -#: js/WidgetBlocks.js:577 -#.TRANS: the speed at music is should be played. -msgid "tempo" +#: js/activity.js:2250 +msgid "oscillator type" msgstr "" -#: js/block.js:1519 -#: js/block.js:1582 -#: js/IntervalsBlocks.js:1268 -#.TRANS: mode, e.g., Major in C Major -msgid "mode" -msgstr "" +#: js/activity.js:2253 +#: js/blocks.js:2479 +#: js/blocks.js:2487 +msgid "audio file" +msgstr "ملف صوتي" -#: js/block.js:1526 -msgid "slider" +#: js/activity.js:2256 +#: js/blocks/DrumBlocks.js:32 +msgid "noise name" msgstr "" -#: js/block.js:1533 -#: js/SensorsBlocks.js:1001 -msgid "keyboard" -msgstr "لوحة المفاتيح" - -#: js/block.js:1547 -#: js/WidgetBlocks.js:957 -#: js/WidgetBlocks.js:988 -#.TRANS: widget for subdividing a measure into distinct rhythmic elements -msgid "rhythm maker" +#: js/activity.js:2259 +#: js/blocks/DrumBlocks.js:75 +msgid "drum name" msgstr "" -#: js/block.js:1554 -#: js/block.js:2182 -#: js/block.js:2236 -#: js/RhythmBlockPaletteBlocks.js:70 -#: js/RhythmBlockPaletteBlocks.js:251 -#: js/RhythmBlockPaletteBlocks.js:484 -#: js/RhythmBlockPaletteBlocks.js:553 -#: js/RhythmBlockPaletteBlocks.js:604 -#: js/RhythmBlockPaletteBlocks.js:874 -#: js/RhythmBlocks.js:33 -#: js/RhythmBlocks.js:356 -#: js/RhythmBlocks.js:766 -#: js/RhythmBlocks.js:806 -#: js/OrnamentBlocks.js:220 -#: js/OrnamentBlocks.js:312 -#: js/MeterBlocks.js:1367 -#: js/DictActions.js:85 -#: js/phrasemaker.js:731 -#: js/phrasemaker.js:2393 -#: js/phrasemaker.js:2436 -#: js/phrasemaker.js:2534 -#.TRANS: the value (e.g., 1/4 note) of the note being played. -msgid "note value" +#: js/activity.js:2262 +#: js/blocks/DrumBlocks.js:119 +msgid "effects name" msgstr "" -#: js/block.js:1561 -#: js/block.js:2110 -#: js/block.js:2133 -#: js/IntervalsBlocks.js:875 -#: js/OrnamentBlocks.js:312 -#.TRANS: calculate a relative step between notes based on semi-tones -msgid "scalar interval" +#: js/activity.js:2265 +msgid "wrap mode" msgstr "" -#: js/block.js:1568 -#: js/RhythmBlocks.js:148 -msgid "milliseconds" +#: js/activity.js:2268 +msgid "load file" msgstr "" -#: js/block.js:2180 -#: js/block.js:2184 -#: js/block.js:2234 -#: js/block.js:2345 -#: js/ProgramBlocks.js:1273 -#: js/RhythmBlocks.js:712 -#: js/rhythmruler.js:834 -#: js/rhythmruler.js:961 -msgid "silence" +#: js/activity.js:2435 +#: js/activity.js:5851 +msgid "This block is deprecated." msgstr "" -#: js/block.js:2265 -#: js/block.js:3134 -#: js/block.js:3151 -#: js/activity.js:2336 -#: js/activity.js:2387 -#: js/musicutils.js:2932 -#: js/musicutils.js:4287 -#.TRANS: the note names must be separated by single spaces -#.TRANS: the note names must be separated by single spaces -msgid "ti la sol fa mi re do" +#: js/activity.js:2437 +#: js/activity.js:5853 +msgid "Block cannot be found." msgstr "" -#: js/block.js:2333 -#.TRANS: scalar step -msgid "down" +#: js/activity.js:2645 +msgid "Saving block artwork" msgstr "" -#: js/block.js:2334 -msgid "up" +#: js/activity.js:2656 +msgid "Erase" msgstr "" -#: js/block.js:3477 -#: js/block.js:3490 -#: js/ExtrasBlocks.js:612 -msgid "Cartesian" -msgstr "الديكارتي" +#: js/activity.js:2683 +#: js/activity.js:2705 +msgid "Paste" +msgstr "لصق" -#: js/block.js:3478 -#: js/block.js:3491 -#: js/ExtrasBlocks.js:616 -msgid "polar" +#: js/activity.js:2687 +msgid "Save block help" msgstr "" -#: js/block.js:3479 -#: js/block.js:3492 -#: js/ExtrasBlocks.js:620 -msgid "Cartesian+polar" +#: js/activity.js:2772 +msgid "Jumping to the bottom of the page." msgstr "" -#: js/block.js:3480 -#: js/block.js:3499 -#: js/ExtrasBlocks.js:649 -msgid "none" +#: js/activity.js:2778 +msgid "Scrolling up." msgstr "" -#: js/block.js:3493 -#: js/ExtrasBlocks.js:625 -msgid "treble" +#: js/activity.js:2783 +msgid "Scrolling down." msgstr "" -#: js/block.js:3494 -#: js/ExtrasBlocks.js:629 -msgid "grand staff" +#: js/activity.js:2788 +msgid "Extracting block" msgstr "" -#: js/block.js:3495 -#: js/ExtrasBlocks.js:633 -msgid "mezzo-soprano" +#: js/activity.js:2796 +msgid "Moving block up." msgstr "" -#: js/block.js:3496 -#: js/ExtrasBlocks.js:637 -msgid "alto" +#: js/activity.js:2817 +msgid "Moving block down." msgstr "" -#: js/block.js:3497 -#: js/ExtrasBlocks.js:641 -msgid "tenor" +#: js/activity.js:2838 +msgid "Moving block left." msgstr "" -#: js/block.js:3498 -#: js/ExtrasBlocks.js:645 -#: js/musicutils.js:736 -#: js/synthutils.js:64 -#.TRANS: musical instrument -msgid "bass" +#: js/activity.js:2855 +msgid "Moving block right." msgstr "" -#: js/block.js:4075 -msgid "Not a number" +#: js/activity.js:2870 +msgid "Jump to home position." msgstr "" -#: js/block.js:4082 -msgid "Octave value must be between 1 and 10." +#: js/activity.js:2897 +msgid "Hide blocks" msgstr "" -#: js/block.js:4090 -msgid "Numbers can have at most 10 digits." +#: js/activity.js:4500 +msgid "Click the run button to run the project." msgstr "" -#: js/notation.js:353 -msgid "Lilypond cannot process pickup of " +#: js/activity.js:5692 +msgid "Show/hide block" msgstr "" -#: js/turtledefs.js:40 -#.TRANS: put the URL to the guide here, e.g., https://github.com/sugarlabs/turtleblocksjs/tree/master/guide/README.md -msgid "guide url" +#: js/activity.js:5698 +msgid "Expand/collapse blocks" msgstr "" -#: js/turtledefs.js:85 -#: js/turtledefs.js:437 -msgid "Turtle Blocks is a Logo-inspired turtle that draws colorful pictures with snap-together visual-programming blocks." +#: js/activity.js:5976 +msgid "Could not parse JSON input." msgstr "" -#: js/turtledefs.js:118 -#: js/turtledefs.js:220 -msgid "search" +#: js/activity.js:6475 +#: js/activity.js:6580 +#: js/activity.js:6631 +msgid "Cannot load project from the file. Please check the file type." msgstr "" -#: js/turtledefs.js:120 -#: js/turtledefs.js:222 -#: js/WidgetBlocks.js:437 -#: js/MeterBlocks.js:1343 -#.TRANS: musical meter (time signature), e.g., 4:4 -msgid "meter" +#: js/activity.js:6917 +msgid "Invalid parameters" msgstr "" -#: js/turtledefs.js:122 -#: js/turtledefs.js:224 -msgid "intervals" -msgstr "" +#: js/blocks.js:1212 +#: js/blocks.js:3444 +#: js/blocks.js:3834 +#: js/blocks.js:3865 +#: js/blocks.js:3914 +#: js/blocks.js:3949 +#: js/blocks.js:6586 +#: js/palette.js:509 +#: js/palette.js:638 +#: js/palette.js:1105 +#: js/blocks/BoxesBlocks.js:282 +#: js/blocks/BoxesBlocks.js:285 +#: js/blocks/BoxesBlocks.js:405 +#: js/blocks/BoxesBlocks.js:594 +msgid "box" +msgstr "صندوق المتغير" -#: js/turtledefs.js:124 -#: js/turtledefs.js:226 -msgid "ornament" -msgstr "" +#: js/blocks.js:1713 +msgid "Consider breaking this stack into parts." +msgstr "فكر في تقسيم هذه البطارية إلى أجزاء" -#: js/turtledefs.js:125 -#: js/turtledefs.js:227 -#: js/VolumeBlocks.js:362 -#: js/VolumeBlocks.js:502 -#: js/VolumeBlocks.js:545 -msgid "volume" -msgstr "" +#: js/blocks.js:2472 +#: js/palette.js:653 +#: js/blocks/MediaBlocks.js:602 +msgid "open file" +msgstr "فتح الملف" -#: js/turtledefs.js:129 -#: js/turtledefs.js:231 -msgid "boxes" -msgstr "" +#: js/blocks.js:3247 +#: js/palette.js:574 +#: js/blocks/MediaBlocks.js:892 +#: js/blocks/MediaBlocks.js:963 +msgid "text" +msgstr "نص" -#: js/turtledefs.js:130 -#: js/turtledefs.js:232 -msgid "widgets" -msgstr "" +#: js/blocks.js:3443 +#: js/palette.js:641 +#: js/palette.js:642 +#: js/blocks/BoxesBlocks.js:514 +msgid "store in box" +msgstr "موجود في الصندوق" -#: js/turtledefs.js:131 -#: js/turtledefs.js:233 -#: js/phrasemaker.js:824 -msgid "graphics" -msgstr "" +#: js/blocks.js:3448 +#: js/blocks.js:3888 +#: js/blocks.js:3923 +#: js/blocks.js:3958 +#: js/blocks.js:5862 +#: js/blocks.js:5883 +#: js/blocks/BoxesBlocks.js:772 +msgid "box1" +msgstr "صندوق1" -#: js/turtledefs.js:134 -#: js/turtledefs.js:236 -msgid "boolean" -msgstr "القيمة المنطقية" +#: js/blocks.js:3450 +#: js/blocks.js:3890 +#: js/blocks.js:3925 +#: js/blocks.js:3960 +#: js/blocks.js:5864 +#: js/blocks.js:5885 +#: js/blocks/BoxesBlocks.js:663 +msgid "box2" +msgstr "صندوق2" -#: js/turtledefs.js:137 -#: js/turtledefs.js:239 -#: js/HeapBlocks.js:59 -#: js/status.js:147 -msgid "heap" -msgstr "الكومة" +#: js/blocks.js:4122 +#: js/palette.js:639 +#: js/palette.js:644 +#: js/palette.js:1041 +#: js/blocks/BoxesBlocks.js:591 +msgid "store in" +msgstr "خزن القيمة في الصندوق" -#: js/turtledefs.js:138 -#: js/turtledefs.js:240 -#: js/ProgramBlocks.js:495 -#: js/DictBlocks.js:142 -msgid "dictionary" -msgstr "" +#: js/blocks.js:4122 +#: js/blocks/BoxesBlocks.js:595 +#: js/blocks/DictBlocks.js:215 +#: js/blocks/DictBlocks.js:289 +#: js/blocks/EnsembleBlocks.js:391 +#: js/blocks/EnsembleBlocks.js:402 +#: js/blocks/MediaBlocks.js:746 +#: js/blocks/PitchBlocks.js:656 +#: js/blocks/PitchBlocks.js:934 +#: js/blocks/PitchBlocks.js:1866 +#: js/blocks/ProgramBlocks.js:390 +#: js/blocks/ProgramBlocks.js:495 +#: js/blocks/ProgramBlocks.js:658 +#: js/blocks/ToneBlocks.js:1025 +msgid "name" +msgstr "الاسم" -#: js/turtledefs.js:139 -#: js/turtledefs.js:241 -msgid "ensemble" +#: js/blocks.js:4122 +#: js/blocks/BoxesBlocks.js:75 +#: js/blocks/BoxesBlocks.js:595 +#: js/blocks/DictBlocks.js:289 +#: js/blocks/DictBlocks.js:430 +#: js/blocks/HeapBlocks.js:544 +#: js/blocks/RhythmBlocks.js:1130 +msgid "value" +msgstr "قيمة المتغير" + +#: js/blocks.js:4465 +msgid "Forever loop detected inside a note value block. Unexpected things may happen." msgstr "" -#: js/turtledefs.js:140 -#: js/turtledefs.js:242 -msgid "extras" -msgstr "إضافات" +#: js/blocks.js:4988 +msgid "There is no block selected." +msgstr "ليس هنالك صندوق تم إختياره" -#: js/turtledefs.js:142 -#: js/turtledefs.js:244 -#.TRANS: program as in computer program -#.TRANS: program as in computer program -msgid "program" -msgstr "" +#: js/blocks.js:5091 +#: js/blocks/MediaBlocks.js:888 +msgid "show" +msgstr "نص" -#: js/turtledefs.js:143 -#: js/turtledefs.js:245 -msgid "my blocks" +#: js/blocks.js:5094 +#: js/blocks/MediaBlocks.js:803 +#.TRANS: Avatar is the image used to determine the appearance of the mouse. +msgid "avatar" +msgstr "الصورة" + +#: js/blocks.js:5097 +#: js/blocks/ToneBlocks.js:1010 +#: js/widgets/sampler.js:975 +#.TRANS: The sound sample that the user uploads. +msgid "sample" +msgstr "النموذج" + +#: js/lilypond.js:606 +msgid "brown rat" msgstr "" -#: js/turtledefs.js:185 -#: js/turtledefs.js:281 -msgid "artwork" +#: js/lilypond.js:607 +msgid "mole" msgstr "" -#: js/turtledefs.js:185 -#: js/turtledefs.js:281 -msgid "logic" -msgstr "منطقي" +#: js/lilypond.js:608 +msgid "chipmunk" +msgstr "" -#: js/turtledefs.js:185 -#: js/turtledefs.js:281 -msgid "music" +#: js/lilypond.js:609 +msgid "red squirrel" msgstr "" -#: js/turtledefs.js:187 -#: js/turtledefs.js:463 -msgid "Music Blocks is a collection of tools for exploring fundamental musical concepts in a fun way." +#: js/lilypond.js:610 +msgid "guinea pig" msgstr "" -#: js/turtledefs.js:436 -msgid "Welcome to Turtle Blocks" +#: js/lilypond.js:611 +msgid "capybara" msgstr "" -#: js/turtledefs.js:438 -#: js/turtledefs.js:465 -#: js/turtledefs.js:774 -#: js/turtledefs.js:805 -msgid "The current version is" +#: js/lilypond.js:612 +msgid "coypu" msgstr "" -#: js/turtledefs.js:446 -#: js/turtledefs.js:483 -msgid "Click the run button to run the project in fast mode." +#: js/lilypond.js:613 +msgid "black rat" msgstr "" -#: js/turtledefs.js:452 -msgid "Stop the turtle." +#: js/lilypond.js:614 +msgid "grey squirrel" msgstr "" -#: js/turtledefs.js:454 -#: js/turtledefs.js:491 -msgid "You can also type Alt-S to stop." +#: js/lilypond.js:615 +msgid "flying squirrel" msgstr "" -#: js/turtledefs.js:462 -#: js/help.js:333 -msgid "Welcome to Music Blocks" +#: js/lilypond.js:616 +msgid "bat" msgstr "" -#: js/turtledefs.js:472 -#: js/help.js:334 -msgid "Meet Mr. Mouse!" +#: js/lilypond.js:749 +#: js/lilypond.js:913 +#: js/lilypond.js:951 +#: js/blocks/ActionBlocks.js:1256 +#: js/blocks/ExtrasBlocks.js:556 +msgid "start drum" msgstr "" -#: js/turtledefs.js:473 -msgid "Mr Mouse is our Music Blocks conductor." +#: js/logo.js:61 +msgid "Not a valid pitch name" +msgstr "ليست نغمة صحيحة" + +#: js/logo.js:507 +#: js/blocks/ProgramBlocks.js:258 +#: js/blocks/ProgramBlocks.js:427 +msgid "You must select a file." +msgstr "يجب عليك إختيار ملف" + +#: js/logo.js:1696 +msgid "Playback is ready." +msgstr "الإستماع مرة أخرى حاضر" + +#: js/macros.js:711 +#: js/utils/musicutils.js:1162 +#: js/utils/synthutils.js:202 +#.TRANS: animal sound effect +msgid "duck" msgstr "" -#: js/turtledefs.js:475 -msgid "Mr Mouse encourages you to explore Music Blocks." +#: js/notation.js:353 +msgid "Lilypond cannot process pickup of " msgstr "" -#: js/turtledefs.js:477 -msgid "Let us start our tour!" +#: js/palette.js:571 +msgid "grid" msgstr "" -#: js/turtledefs.js:489 -msgid "Stop the music (and the mice)." +#: js/palette.js:580 +msgid "effect" msgstr "" -#: js/turtledefs.js:499 -msgid "Record your project as video." +#: js/palette.js:586 +msgid "sargam" msgstr "" -#: js/turtledefs.js:505 -msgid "Toggle Fullscreen mode." +#: js/palette.js:601 +#: js/blocks/PitchBlocks.js:1209 +msgid "custom pitch" msgstr "" -#: js/turtledefs.js:511 -msgid "Initialize a new project." +#: js/palette.js:609 +msgid "accidental" msgstr "" -#: js/turtledefs.js:517 -msgid "You can also load projects from the file system." -msgstr "يمكنك أيضاً تحميل المشاريع من نظام الملفّات." +#: js/palette.js:633 +#: js/blocks/PitchBlocks.js:405 +msgid "pitch converter" +msgstr "" -#: js/turtledefs.js:522 -#: js/StringHelper.js:46 -msgid "Delete" -msgstr "حذف" +#: js/piemenus.js:200 +#: js/utils/musicutils.js:1187 +#: js/utils/musicutils.js:1207 +#: js/widgets/musickeyboard.js:2341 +#: js/widgets/phrasemaker.js:1908 +#: js/widgets/sampler.js:810 +#.TRANS: double sharp is a music term related to pitch +msgid "double sharp" +msgstr "ثنائي حاد" -#: js/turtledefs.js:523 -msgid "To delete a block, just right-click on it, then you will be able to see the delete option" -msgstr "" +#: js/piemenus.js:201 +#: js/utils/musicutils.js:1185 +#: js/utils/musicutils.js:1208 +#: js/blocks/PitchBlocks.js:1539 +#: js/turtleactions/PitchActions.js:323 +#: js/widgets/musickeyboard.js:2342 +#: js/widgets/phrasemaker.js:1909 +#: js/widgets/sampler.js:811 +#.TRANS: sharp is a music term related to pitch +#.TRANS: sharp is a half-step up in pitch +msgid "sharp" +msgstr "حاد" -#: js/turtledefs.js:528 -#: js/activity.js:2270 -#: js/LocalCard.js:31 -msgid "Copy" -msgstr "نسخ" +#: js/piemenus.js:202 +#: js/utils/musicutils.js:1183 +#: js/utils/musicutils.js:1209 +#: js/widgets/musickeyboard.js:2343 +#: js/widgets/phrasemaker.js:1910 +#: js/widgets/sampler.js:812 +#.TRANS: natural is a music term related to pitch +msgid "natural" +msgstr "طبيعي" -#: js/turtledefs.js:529 -msgid "To copy a block, just right-click on it, then you will be able to see the copy option" -msgstr "" +#: js/piemenus.js:203 +#: js/utils/musicutils.js:1181 +#: js/utils/musicutils.js:1210 +#: js/blocks/PitchBlocks.js:1498 +#: js/turtleactions/PitchActions.js:326 +#: js/widgets/musickeyboard.js:2344 +#: js/widgets/phrasemaker.js:1911 +#: js/widgets/sampler.js:813 +#.TRANS: flat is a music term related to pitch +#.TRANS: flat is a half-step down in pitch +msgid "flat" +msgstr "مبسط" -#: js/turtledefs.js:535 -msgid "To extract a block, just right-click on it, then you will be able to see the extract option" -msgstr "" +#: js/piemenus.js:204 +#: js/utils/musicutils.js:1179 +#: js/utils/musicutils.js:1211 +#: js/widgets/musickeyboard.js:2345 +#: js/widgets/phrasemaker.js:1912 +#: js/widgets/sampler.js:814 +#.TRANS: double flat is a music term related to pitch +msgid "double flat" +msgstr "ثنائي مبسط" -#: js/turtledefs.js:542 -#: js/turtledefs.js:552 -#: js/turtledefs.js:573 -msgid "Save your project to a file." +#: js/piemenus.js:2864 +#: js/utils/musicutils.js:1006 +#: js/blocks/PitchBlocks.js:1385 +#.TRANS: unison is a music term related to intervals +#.TRANS: unison means the note is the same as the current note +msgid "unison" msgstr "" -#: js/turtledefs.js:549 -#: js/turtledefs.js:570 -msgid "save" +#: js/piemenus.js:3018 +#: js/piemenus.js:3091 +#: js/utils/musicutils.js:1014 +#: js/utils/musicutils.js:1189 +#: js/utils/musicutils.js:1326 +#.TRANS: major is a music term related to intervals and mode +msgid "major" msgstr "" -#: js/turtledefs.js:556 -#: js/turtledefs.js:577 -msgid "Save graphics from your project to as SVG." +#: js/piemenus.js:3018 +#: js/piemenus.js:3091 +#: js/utils/musicutils.js:1032 +#.TRANS: modal scale for music +msgid "ionian" msgstr "" -#: js/turtledefs.js:560 -#: js/turtledefs.js:581 -msgid "Save graphics from your project as PNG." +#: js/piemenus.js:3020 +#: js/piemenus.js:3095 +#: js/utils/musicutils.js:1012 +#: js/utils/musicutils.js:1190 +#: js/utils/musicutils.js:1323 +#.TRANS: minor is a music term related to intervals and mode +msgid "minor" msgstr "" -#: js/turtledefs.js:564 -#: js/turtledefs.js:597 -msgid "Save block artwork as an SVG file." +#: js/piemenus.js:3020 +#: js/piemenus.js:3095 +#: js/utils/musicutils.js:1042 +#.TRANS: modal scale for music +msgid "aeolian" msgstr "" -#: js/turtledefs.js:585 -msgid "Save audio from your project as WAV." +#: js/piemenus.js:3410 +msgid "Duplicate" msgstr "" -#: js/turtledefs.js:589 -msgid "Save your project to as an ABC file." +#: js/piemenus.js:3412 +msgid "Move to trash" msgstr "" -#: js/turtledefs.js:593 -msgid "Save your project to as a Lilypond file." +#: js/piemenus.js:3413 +#: js/widgets/timbre.js:968 +#: planet/js/StringHelper.js:69 +msgid "Close" msgstr "" -#: js/turtledefs.js:604 -msgid "Load samples from server" -msgstr "تحميل عينات من الخادم" - -#: js/turtledefs.js:605 -msgid "This button opens a viewer for loading example projects." -msgstr "يفتح هذا الزر شاشة عرض لتحميل أمثلة على المشاريع." - -#: js/turtledefs.js:611 -msgid "Palette buttons" -msgstr "ازرار اللوحة" +#: js/piemenus.js:3419 +msgid "Save stack" +msgstr "قم بتخزين الكومة" -#: js/turtledefs.js:612 -msgid "This toolbar contains the palette buttons including Rhythm Pitch Tone Action and more." +#: js/piemenus.js:3449 +msgid "In order to copy a sample, you must reload the widget, import the sample again, and export it." msgstr "" -#: js/turtledefs.js:614 -msgid "Click to show the palettes of blocks and drag blocks from the palettes onto the canvas to use them." +#: js/piemenus.js:3812 +msgid "You have chosen key " msgstr "" -#: js/turtledefs.js:620 -msgid "Cartesian/Polar" +#: js/piemenus.js:3816 +msgid " for your pitch preview." msgstr "" -#: js/turtledefs.js:621 -msgid "Show or hide a coordinate grid." +#: js/turtle-singer.js:1363 +#.TRANS: partials are weighted components in a harmonic series +msgid "You must have at least one Partial block inside of a Weighted-partial block" msgstr "" -#: js/turtledefs.js:627 -msgid "Clear the screen and return the mice to their initial positions." +#: js/turtle-singer.js:2077 +msgid "synth cannot play chords." msgstr "" -#: js/turtledefs.js:633 -msgid "Collapse the graphics window." +#: js/utils/musicutils.js:505 +#: js/utils/musicutils.js:645 +#: js/widgets/pitchdrummatrix.js:228 +#: js/widgets/musickeyboard.js:2885 +msgid "rest" msgstr "" -#: js/turtledefs.js:638 -#: js/activity.js:4256 -#: js/activity.js:4256 -msgid "Home" +#: js/utils/musicutils.js:689 +msgid "Perfect unison" msgstr "" -#: js/turtledefs.js:639 -msgid "Return all blocks to the center of the screen." +#: js/utils/musicutils.js:689 +msgid "Diminished second" msgstr "" -#: js/turtledefs.js:644 -msgid "Show/hide blocks" -msgstr "إظهار/ إخفاء اللبنات" - -#: js/turtledefs.js:645 -msgid "Hide or show the blocks and the palettes." -msgstr "إخفاء أو إظهار اللبنات أو اللوحات." - -#: js/turtledefs.js:650 -msgid "Expand/collapse collapsable blocks" +#: js/utils/musicutils.js:690 +msgid "Minor second" msgstr "" -#: js/turtledefs.js:651 -msgid "Expand or collapse start and action stacks." -msgstr "قم بتوسيع أو تقليص أكوام البدء والنشاط." - -#: js/turtledefs.js:658 -#: js/activity.js:4265 -msgid "Decrease block size" -msgstr "قلل حجم اللبنة" - -#: js/turtledefs.js:659 -msgid "Decrease the size of the blocks." -msgstr "قم بتقليل حجم اللبنات" - -#: js/turtledefs.js:664 -#: js/activity.js:4267 -msgid "Increase block size" -msgstr "قم بزيادة حجم اللبنات" - -#: js/turtledefs.js:665 -msgid "Increase the size of the blocks." -msgstr "زيادة حجم اللبنات" - -#: js/turtledefs.js:670 -msgid "Expand/collapse option toolbar" -msgstr "توسيع/ تقليص شريط الأدوات" +#: js/utils/musicutils.js:690 +msgid "Augmented unison" +msgstr "" -#: js/turtledefs.js:671 -msgid "Click this button to expand or collapse the auxillary toolbar." -msgstr "انقر على هذا الزر لتوسيع أو تقليص شريط الأدوات المساعد." +#: js/utils/musicutils.js:691 +msgid "Major second" +msgstr "" -#: js/turtledefs.js:676 -msgid "Run slow" -msgstr "نفذ ببطء" +#: js/utils/musicutils.js:691 +msgid "Diminished third" +msgstr "" -#: js/turtledefs.js:677 -msgid "Click to run the project in slow mode." -msgstr "انقر لتنفيذ المشروع بالعرض البطيء." +#: js/utils/musicutils.js:692 +msgid "Minor third" +msgstr "" -#: js/turtledefs.js:683 -msgid "Click to run the project step by step." -msgstr "انقر لتنفيذ المشروع خطوةً خطوة." +#: js/utils/musicutils.js:692 +msgid "Augmented second" +msgstr "" -#: js/turtledefs.js:690 -msgid "Display statistics about your Music project." -msgstr "اعرض الإحصائيات المتعلقة ببرنامج السلحفاة." +#: js/utils/musicutils.js:693 +msgid "Major third" +msgstr "" -#: js/turtledefs.js:697 -msgid "Delete a selected plugin." +#: js/utils/musicutils.js:693 +msgid "Diminished fourth" msgstr "" -#: js/turtledefs.js:704 -msgid "Enable scrolling" -msgstr "تفعيل التمرير" +#: js/utils/musicutils.js:694 +msgid "Perfect fourth" +msgstr "" -#: js/turtledefs.js:705 -msgid "You can scroll the blocks on the canvas." -msgstr "يمكنك تمرير اللبنات على اللوحات." +#: js/utils/musicutils.js:694 +msgid "Augmented third" +msgstr "" -#: js/turtledefs.js:714 -msgid "Wrap Turtle" +#: js/utils/musicutils.js:695 +msgid "Diminished fifth" msgstr "" -#: js/turtledefs.js:715 -msgid "Turn Turtle wrapping On or Off." +#: js/utils/musicutils.js:695 +msgid "Augmented fourth" msgstr "" -#: js/turtledefs.js:725 -msgid "Restore blocks from the trash." -msgstr "إعادة اللبنات من سلة المهملات." +#: js/utils/musicutils.js:696 +msgid "Perfect fifth" +msgstr "" -#: js/turtledefs.js:732 -msgid "Switch mode" +#: js/utils/musicutils.js:696 +msgid "Diminished sixth" msgstr "" -#: js/turtledefs.js:733 -msgid "Switch between beginner and advance modes." +#: js/utils/musicutils.js:697 +msgid "Minor sixth" msgstr "" -#: js/turtledefs.js:739 -msgid "Select your language preference." +#: js/utils/musicutils.js:697 +msgid "Augmented fifth" msgstr "" -#: js/turtledefs.js:745 -msgid "Keyboard shortcuts" +#: js/utils/musicutils.js:698 +msgid "Major sixth" msgstr "" -#: js/turtledefs.js:746 -msgid "You can type d to create a do block and r to create a re block etc." +#: js/utils/musicutils.js:698 +msgid "Diminished seventh" msgstr "" -#: js/turtledefs.js:753 -msgid "Show these messages." -msgstr "أظهر هذه الرسائل." +#: js/utils/musicutils.js:699 +msgid "Minor seventh" +msgstr "" -#: js/turtledefs.js:759 -#: js/turtledefs.js:790 -#: js/help.js:335 -msgid "Guide" +#: js/utils/musicutils.js:699 +msgid "Augmented sixth" msgstr "" -#: js/turtledefs.js:760 -msgid "A detailed guide to Turtle Blocks is available." +#: js/utils/musicutils.js:700 +msgid "Major seventh" msgstr "" -#: js/turtledefs.js:764 -msgid "Turtle Blocks Guide" +#: js/utils/musicutils.js:700 +msgid "Diminished octave" msgstr "" -#: js/turtledefs.js:767 -#: js/turtledefs.js:798 -#: js/help.js:336 -msgid "About" +#: js/utils/musicutils.js:701 +msgid "Perfect octave" msgstr "" -#: js/turtledefs.js:768 -msgid "Turtle Blocks is an open source collection of tools for exploring musical concepts." +#: js/utils/musicutils.js:701 +msgid "Augmented seventh" msgstr "" -#: js/turtledefs.js:770 -msgid "A full list of contributors can be found in the Turtle Blocks GitHub repository." +#: js/utils/musicutils.js:702 +msgid "Minor ninth" msgstr "" -#: js/turtledefs.js:772 -msgid "Turtle Blocks is licensed under the AGPL." +#: js/utils/musicutils.js:702 +msgid "Augmented octave" msgstr "" -#: js/turtledefs.js:780 -msgid "Turtle Blocks GitHub repository" +#: js/utils/musicutils.js:703 +msgid "Major ninth" msgstr "" -#: js/turtledefs.js:783 -#: js/turtledefs.js:814 -#: js/help.js:337 -#: js/help.js:359 -msgid "Congratulations." -msgstr "تهانينا" +#: js/utils/musicutils.js:703 +msgid "Diminished tenth" +msgstr "" -#: js/turtledefs.js:784 -msgid "You have finished the tour. Please enjoy Turtle Blocks!" +#: js/utils/musicutils.js:704 +msgid "Minor tenth" msgstr "" -#: js/turtledefs.js:791 -msgid "A detailed guide to Music Blocks is available." +#: js/utils/musicutils.js:704 +msgid "Augmented ninth" msgstr "" -#: js/turtledefs.js:795 -#: js/SaveInterface.js:76 -msgid "Music Blocks Guide" +#: js/utils/musicutils.js:705 +msgid "Major tenth" msgstr "" -#: js/turtledefs.js:799 -msgid "Music Blocks is an open source collection of tools for exploring musical concepts." +#: js/utils/musicutils.js:705 +msgid "Diminished eleventh" msgstr "" -#: js/turtledefs.js:801 -msgid "A full list of contributors can be found in the Music Blocks GitHub repository." +#: js/utils/musicutils.js:706 +msgid "Perfect eleventh" msgstr "" -#: js/turtledefs.js:803 -msgid "Music Blocks is licensed under the AGPL." +#: js/utils/musicutils.js:706 +msgid "Augmented tenth" msgstr "" -#: js/turtledefs.js:811 -msgid "Music Blocks GitHub repository" +#: js/utils/musicutils.js:707 +msgid "Diminished twelfth" +msgstr "" + +#: js/utils/musicutils.js:707 +msgid "Augmented eleventh" msgstr "" -#: js/turtledefs.js:815 -msgid "You have finished the tour. Please enjoy Music Blocks!" +#: js/utils/musicutils.js:708 +msgid "Perfect twelfth" msgstr "" -#: js/activity.js:369 -msgid "Search for blocks" +#: js/utils/musicutils.js:708 +msgid "Diminished thirteenth" msgstr "" -#: js/activity.js:1145 -msgid "Refresh your browser to change to advanced mode." +#: js/utils/musicutils.js:709 +msgid "Minor thirteenth" msgstr "" -#: js/activity.js:1150 -msgid "Refresh your browser to change to beginner mode." +#: js/utils/musicutils.js:709 +msgid "Augmented fifth, plus an octave" msgstr "" -#: js/activity.js:1184 -msgid "Catching mice" +#: js/utils/musicutils.js:710 +msgid "Major thirteenth" msgstr "" -#: js/activity.js:1185 -msgid "Cleaning the instruments" +#: js/utils/musicutils.js:710 +msgid "Diminished seventh, plus an octave" msgstr "" -#: js/activity.js:1186 -msgid "Testing key pieces" +#: js/utils/musicutils.js:838 +#.TRANS: ordinal number. Please keep exactly one space between each number. +msgid "1st 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th" msgstr "" -#: js/activity.js:1187 -msgid "Sight-reading" +#: js/utils/musicutils.js:1008 +#: js/utils/musicutils.js:1191 +#: js/utils/musicutils.js:1325 +#.TRANS: augmented is a music term related to intervals +msgid "augmented" msgstr "" -#: js/activity.js:1188 -msgid "Combining math and music" +#: js/utils/musicutils.js:1010 +#: js/utils/musicutils.js:1192 +#: js/utils/musicutils.js:1324 +#.TRANS: diminished is a music term related to intervals and mode +msgid "diminished" msgstr "" -#: js/activity.js:1189 -msgid "Generating more blocks" +#: js/utils/musicutils.js:1016 +#: js/utils/musicutils.js:1322 +#: js/blocks/IntervalsBlocks.js:649 +#: js/turtleactions/IntervalsActions.js:120 +#: js/turtleactions/IntervalsActions.js:124 +#.TRANS: perfect is a music term related to intervals +msgid "perfect" msgstr "" -#: js/activity.js:1190 -msgid "Do Re Mi Fa Sol La Ti Do" +#: js/utils/musicutils.js:1018 +#.TRANS: twelve semi-tone scale for music +msgid "chromatic" msgstr "" -#: js/activity.js:1191 -msgid "Tuning string instruments" +#: js/utils/musicutils.js:1019 +msgid "algerian" msgstr "" -#: js/activity.js:1192 -msgid "Pressing random keys" +#: js/utils/musicutils.js:1020 +msgid "spanish" msgstr "" -#: js/activity.js:1351 -msgid "plugins will be removed upon restart." +#: js/utils/musicutils.js:1022 +#.TRANS: modal scale in music +msgid "octatonic" msgstr "" -#: js/activity.js:1360 -msgid "show Cartesian" +#: js/utils/musicutils.js:1024 +#.TRANS: harmonic major scale in music +msgid "harmonic major" msgstr "" -#: js/activity.js:1842 -msgid "output tools" +#: js/utils/musicutils.js:1026 +#.TRANS: natural minor scales in music +msgid "natural minor" msgstr "" -#: js/activity.js:1845 -msgid "custom note" +#: js/utils/musicutils.js:1028 +#.TRANS: harmonic minor scale in music +msgid "harmonic minor" msgstr "" -#: js/activity.js:1848 -msgid "accidental name" +#: js/utils/musicutils.js:1030 +#.TRANS: melodic minor scale in music +msgid "melodic minor" msgstr "" -#: js/activity.js:1851 -#: js/PitchBlocks.js:855 -msgid "east indian solfege" +#: js/utils/musicutils.js:1034 +#.TRANS: modal scale for music +msgid "dorian" msgstr "" -#: js/activity.js:1854 -#: js/PitchBlocks.js:869 -msgid "note name" +#: js/utils/musicutils.js:1036 +#.TRANS: modal scale for music +msgid "phrygian" msgstr "" -#: js/activity.js:1857 -#: js/IntervalsBlocks.js:94 -msgid "temperament name" +#: js/utils/musicutils.js:1038 +#.TRANS: modal scale for music +msgid "lydian" msgstr "" -#: js/activity.js:1863 -msgid "chord name" +#: js/utils/musicutils.js:1040 +#.TRANS: modal scale for music +msgid "mixolydian" msgstr "" -#: js/activity.js:1869 -msgid "filter type" +#: js/utils/musicutils.js:1044 +#.TRANS: modal scale for music +msgid "locrian" msgstr "" -#: js/activity.js:1872 -msgid "oscillator type" +#: js/utils/musicutils.js:1046 +#.TRANS: minor jazz scale for music +msgid "jazz minor" msgstr "" -#: js/activity.js:1878 -#: js/DrumBlocks.js:32 -msgid "noise name" +#: js/utils/musicutils.js:1048 +#.TRANS: bebop scale for music +msgid "bebop" msgstr "" -#: js/activity.js:1881 -#: js/DrumBlocks.js:75 -msgid "drum name" +#: js/utils/musicutils.js:1049 +msgid "arabic" msgstr "" -#: js/activity.js:1884 -#: js/DrumBlocks.js:119 -msgid "effects name" +#: js/utils/musicutils.js:1050 +msgid "byzantine" msgstr "" -#: js/activity.js:1887 -msgid "wrap mode" +#: js/utils/musicutils.js:1052 +#.TRANS: musical scale for music by Verdi +msgid "enigmatic" msgstr "" -#: js/activity.js:1890 -msgid "load file" +#: js/utils/musicutils.js:1053 +msgid "ethiopian" msgstr "" -#: js/activity.js:2056 -msgid "This block is deprecated." +#: js/utils/musicutils.js:1055 +#.TRANS: Ethiopic scale for music +msgid "geez" msgstr "" -#: js/activity.js:2058 -msgid "Block cannot be found." +#: js/utils/musicutils.js:1056 +msgid "hindu" msgstr "" -#: js/activity.js:2266 -msgid "Saving block artwork" +#: js/utils/musicutils.js:1057 +msgid "hungarian" msgstr "" -#: js/activity.js:2277 -msgid "Erase" +#: js/utils/musicutils.js:1059 +#.TRANS: minor Romanian scale for music +msgid "romanian minor" msgstr "" -#: js/activity.js:2301 -#: js/activity.js:2323 -msgid "Paste" -msgstr "لصق" +#: js/utils/musicutils.js:1060 +msgid "spanish gypsy" +msgstr "" -#: js/activity.js:2305 -msgid "Save block help" +#: js/utils/musicutils.js:1062 +#.TRANS: musical scale for Mid-Eastern music +msgid "maqam" msgstr "" -#: js/activity.js:2390 -msgid "Jumping to the bottom of the page." +#: js/utils/musicutils.js:1064 +#.TRANS: minor blues scale for music +msgid "minor blues" msgstr "" -#: js/activity.js:2396 -msgid "Scrolling up." +#: js/utils/musicutils.js:1066 +#.TRANS: major blues scale for music +msgid "major blues" msgstr "" -#: js/activity.js:2401 -msgid "Scrolling down." +#: js/utils/musicutils.js:1067 +msgid "whole tone" msgstr "" -#: js/activity.js:2406 -msgid "Extracting block" +#: js/utils/musicutils.js:1069 +#.TRANS: pentatonic is a general term that means "five note scale". This scale is typically known as "minor pentatonic" +msgid "minor pentatonic" msgstr "" -#: js/activity.js:2414 -msgid "Moving block up." +#: js/utils/musicutils.js:1071 +#.TRANS: pentatonic is a general term that means "five note scale". This scale is typically known as "major pentatonic" +msgid "major pentatonic" msgstr "" -#: js/activity.js:2435 -msgid "Moving block down." +#: js/utils/musicutils.js:1072 +msgid "chinese" msgstr "" -#: js/activity.js:2456 -msgid "Moving block left." +#: js/utils/musicutils.js:1073 +msgid "egyptian" msgstr "" -#: js/activity.js:2473 -msgid "Moving block right." +#: js/utils/musicutils.js:1075 +#.TRANS: https://en.wikipedia.org/wiki/Hirajoshi_scale NOTE: There are three different versions of this scale +msgid "hirajoshi" msgstr "" -#: js/activity.js:2488 -msgid "Jump to home position." +#: js/utils/musicutils.js:1076 +msgid "Japan" msgstr "" -#: js/activity.js:2515 -msgid "Hide blocks" +#: js/utils/musicutils.js:1078 +#.TRANS: https://en.wikipedia.org/wiki/In_scale and https://en.wikipedia.org/wiki/Sakura_Sakura +msgid "in" msgstr "" -#: js/activity.js:3389 -msgid "Click the run button to run the project." +#: js/utils/musicutils.js:1080 +#.TRANS: https://en.wikipedia.org/wiki/Miny%C5%8D_scale +msgid "minyo" msgstr "" -#: js/activity.js:3456 -#: js/SaveInterface.js:131 -#: js/SaveInterface.js:204 -#: js/SaveInterface.js:262 -#: js/SaveInterface.js:389 -#: js/SaveInterface.js:417 -#: js/ProjectStorage.js:27 -#: js/GlobalPlanet.js:467 -#: js/GlobalPlanet.js:469 -#: js/GlobalPlanet.js:495 -#.TRANS: default project title when saving as Lilypond -msgid "My Project" +#: js/utils/musicutils.js:1082 +#.TRANS: Italian mathematician +msgid "fibonacci" msgstr "" -#: js/activity.js:4261 -msgid "Show/hide block" +#: js/utils/musicutils.js:1083 +#: js/utils/musicutils.js:1134 +#: js/utils/musicutils.js:1177 +#: js/utils/musicutils.js:1199 +#: js/utils/synthutils.js:134 +#: js/blocks/IntervalsBlocks.js:1124 +#: js/blocks/ToneBlocks.js:946 +#: js/blocks/VolumeBlocks.js:411 +#: js/blocks/WidgetBlocks.js:399 +#: js/blocks/WidgetBlocks.js:404 +#: js/turtleactions/VolumeActions.js:218 +#: js/widgets/modewidget.js:919 +#.TRANS: customize voice +msgid "custom" msgstr "" -#: js/activity.js:4263 -msgid "Expand/collapse blocks" +#: js/utils/musicutils.js:1085 +#: js/utils/musicutils.js:1531 +#: js/blocks/WidgetBlocks.js:176 +#.TRANS: highpass filter +msgid "highpass" msgstr "" -#: js/activity.js:4381 -msgid "Could not parse JSON input." +#: js/utils/musicutils.js:1087 +#: js/utils/musicutils.js:1532 +#.TRANS: lowpass filter +msgid "lowpass" msgstr "" -#: js/activity.js:4684 -#: js/activity.js:4771 -#: js/activity.js:4821 -msgid "Cannot load project from the file. Please check the file type." +#: js/utils/musicutils.js:1089 +#: js/utils/musicutils.js:1533 +#.TRANS: bandpass filter +msgid "bandpass" msgstr "" -#: js/activity.js:5051 -msgid "Invalid parameters" +#: js/utils/musicutils.js:1091 +#: js/utils/musicutils.js:1534 +#.TRANS: high-shelf filter +msgid "highshelf" msgstr "" -#: js/turtle-singer.js:1334 -#.TRANS: partials are weighted components in a harmonic series -msgid "You must have at least one Partial block inside of a Weighted-partial block" +#: js/utils/musicutils.js:1093 +#: js/utils/musicutils.js:1535 +#.TRANS: low-shelf filter +msgid "lowshelf" msgstr "" -#: js/turtle-singer.js:2048 -msgid "synth cannot play chords." +#: js/utils/musicutils.js:1095 +#: js/utils/musicutils.js:1536 +#.TRANS: notch-shelf filter +msgid "notch" msgstr "" -#: js/lilypond.js:614 -msgid "brown rat" +#: js/utils/musicutils.js:1097 +#: js/utils/musicutils.js:1537 +#.TRANS: all-pass filter +msgid "allpass" msgstr "" -#: js/lilypond.js:615 -msgid "mole" +#: js/utils/musicutils.js:1099 +#: js/utils/musicutils.js:1538 +#.TRANS: peaking filter +msgid "peaking" msgstr "" -#: js/lilypond.js:616 -msgid "chipmunk" +#: js/utils/musicutils.js:1100 +#: js/utils/musicutils.js:1546 +#: js/utils/synthutils.js:126 +#: js/blocks/PitchBlocks.js:85 +#.TRANS: sine wave +msgid "sine" msgstr "" -#: js/lilypond.js:617 -msgid "red squirrel" +#: js/utils/musicutils.js:1101 +#: js/utils/musicutils.js:1547 +#: js/utils/synthutils.js:128 +#: js/blocks/PitchBlocks.js:39 +#.TRANS: square wave +msgid "square" msgstr "" -#: js/lilypond.js:618 -msgid "guinea pig" +#: js/utils/musicutils.js:1102 +#: js/utils/musicutils.js:1548 +#: js/utils/synthutils.js:132 +#: js/blocks/PitchBlocks.js:62 +#: js/blocks/ToneBlocks.js:39 +#.TRANS: triangle wave +msgid "triangle" msgstr "" -#: js/lilypond.js:619 -msgid "capybara" +#: js/utils/musicutils.js:1103 +#: js/utils/musicutils.js:1549 +#: js/utils/synthutils.js:130 +#: js/blocks/PitchBlocks.js:108 +#.TRANS: sawtooth wave +msgid "sawtooth" msgstr "" -#: js/lilypond.js:620 -msgid "coypu" +#: js/utils/musicutils.js:1105 +#: js/utils/musicutils.js:1312 +#: js/blocks/PitchBlocks.js:931 +#: js/blocks/PitchBlocks.js:937 +#: js/turtleactions/PitchActions.js:469 +#.TRANS: even numbers +#.TRANS: invert based on even or odd number or musical scale +msgid "even" msgstr "" -#: js/lilypond.js:621 -msgid "black rat" +#: js/utils/musicutils.js:1107 +#: js/utils/musicutils.js:1313 +#: js/blocks/PitchBlocks.js:937 +#: js/turtleactions/PitchActions.js:471 +#.TRANS: odd numbers +msgid "odd" msgstr "" -#: js/lilypond.js:622 -msgid "grey squirrel" +#: js/utils/musicutils.js:1108 +#: js/utils/musicutils.js:1314 +#: js/blocks/PitchBlocks.js:937 +#: js/turtleactions/PitchActions.js:473 +msgid "scalar" msgstr "" -#: js/lilypond.js:623 -msgid "flying squirrel" +#: js/utils/musicutils.js:1109 +#: js/utils/synthutils.js:72 +#: js/blocks/VolumeBlocks.js:47 +#.TRANS: musical instrument +msgid "piano" msgstr "" -#: js/lilypond.js:624 -msgid "bat" +#: js/utils/musicutils.js:1110 +#: js/utils/synthutils.js:74 +#.TRANS: musical instrument +msgid "violin" msgstr "" -#: js/lilypond.js:757 -#: js/lilypond.js:921 -#: js/lilypond.js:959 -#: js/ActionBlocks.js:1256 -#: js/ExtrasBlocks.js:553 -msgid "start drum" +#: js/utils/musicutils.js:1111 +#: js/utils/synthutils.js:76 +#.TRANS: viola musical instrument +msgid "viola" msgstr "" -#: js/SaveInterface.js:59 -#: js/SaveInterface.js:61 -#: js/SaveInterface.js:93 -msgid "Music Blocks Project" +#: js/utils/musicutils.js:1112 +#: js/utils/synthutils.js:114 +#.TRANS: xylophone musical instrument +msgid "xylophone" msgstr "" -#: js/SaveInterface.js:63 -msgid "This project was created in Music Blocks" +#: js/utils/musicutils.js:1113 +#: js/utils/synthutils.js:136 +#.TRANS: vibraphone musical instrument +msgid "vibraphone" msgstr "" -#: js/SaveInterface.js:67 -msgid "Music Blocks is a Free/Libre Software application." +#: js/utils/musicutils.js:1114 +#: js/utils/synthutils.js:78 +#.TRANS: musical instrument +msgid "cello" msgstr "" -#: js/SaveInterface.js:69 -msgid "The source code can be accessed at" +#: js/utils/musicutils.js:1116 +#: js/utils/synthutils.js:82 +#.TRANS: viola musical instrument +msgid "double bass" msgstr "" -#: js/SaveInterface.js:72 -msgid "For more information, please consult the" +#: js/utils/musicutils.js:1117 +#: js/utils/synthutils.js:84 +#: js/widgets/rhythmruler.js:2511 +#.TRANS: musical instrument +msgid "guitar" msgstr "" -#: js/SaveInterface.js:83 -msgid "Alternatively, open the file in Music Blocks using the Load project button." +#: js/utils/musicutils.js:1118 +#: js/utils/synthutils.js:86 +#.TRANS: musical instrument +msgid "acoustic guitar" msgstr "" -#: js/SaveInterface.js:85 -msgid "Project Code" +#: js/utils/musicutils.js:1119 +#: js/utils/synthutils.js:88 +#.TRANS: musical instrument +msgid "flute" msgstr "" -#: js/SaveInterface.js:87 -msgid "This code stores data about the blocks in a project." +#: js/utils/musicutils.js:1120 +#: js/utils/synthutils.js:90 +#.TRANS: musical instrument +msgid "clarinet" msgstr "" -#: js/SaveInterface.js:89 -msgid "Show" +#: js/utils/musicutils.js:1121 +#: js/utils/synthutils.js:92 +#.TRANS: musical instrument +msgid "saxophone" msgstr "" -#: js/SaveInterface.js:91 -msgid "Hide" +#: js/utils/musicutils.js:1122 +#: js/utils/synthutils.js:94 +#.TRANS: musical instrument +msgid "tuba" msgstr "" -#: js/SaveInterface.js:197 -#: js/SaveInterface.js:58 -msgid "No description provided" +#: js/utils/musicutils.js:1123 +#: js/utils/synthutils.js:96 +#.TRANS: musical instrument +msgid "trumpet" msgstr "" -#: js/SaveInterface.js:332 -msgid "Your recording is in progress." +#: js/utils/musicutils.js:1124 +#: js/utils/synthutils.js:98 +#.TRANS: musical instrument +msgid "oboe" msgstr "" -#: js/SaveInterface.js:401 -#.TRANS: File name prompt for save as Lilypond -msgid "File name" +#: js/utils/musicutils.js:1125 +#: js/utils/synthutils.js:100 +#.TRANS: musical instrument +msgid "trombone" msgstr "" -#: js/SaveInterface.js:403 -#: js/StringHelper.js:39 -#.TRANS: Project title prompt for save as Lilypond -msgid "Project title" +#: js/utils/musicutils.js:1126 +#: js/utils/synthutils.js:116 +#.TRANS: polytone synthesizer +msgid "electronic synth" msgstr "" -#: js/SaveInterface.js:405 -#.TRANS: Project title prompt for save as Lilypond -msgid "Project author" +#: js/utils/musicutils.js:1127 +#: js/utils/synthutils.js:118 +#.TRANS: simple monotone synthesizer +msgid "simple 1" +msgstr "" + +#: js/utils/musicutils.js:1128 +msgid "simple 2" msgstr "" -#: js/SaveInterface.js:407 -#.TRANS: MIDI prompt for save as Lilypond -msgid "Include MIDI output?" +#: js/utils/musicutils.js:1129 +msgid "simple 3" msgstr "" -#: js/SaveInterface.js:409 -#.TRANS: Guitar prompt for save as Lilypond -msgid "Include guitar tablature output?" +#: js/utils/musicutils.js:1130 +msgid "simple 4" msgstr "" -#: js/SaveInterface.js:411 -#.TRANS: Lilypond is a scripting language for generating sheet music -msgid "Save as Lilypond" +#: js/utils/musicutils.js:1131 +#: js/utils/synthutils.js:58 +#: js/blocks/DrumBlocks.js:191 +#.TRANS: white noise synthesizer +msgid "white noise" msgstr "" -#: js/SaveInterface.js:426 -#: js/EnsembleBlocks.js:75 -#: js/EnsembleBlocks.js:154 -#: js/EnsembleBlocks.js:216 -#: js/EnsembleBlocks.js:302 -#: js/EnsembleBlocks.js:348 -#: js/EnsembleBlocks.js:389 -#: js/EnsembleBlocks.js:441 -#: js/EnsembleBlocks.js:490 -#: js/EnsembleBlocks.js:536 -#: js/EnsembleBlocks.js:583 -#: js/EnsembleBlocks.js:637 -#: js/EnsembleBlocks.js:753 -#: js/EnsembleBlocks.js:840 -#: js/EnsembleBlocks.js:899 -#: js/EnsembleBlocks.js:942 -#: js/EnsembleBlocks.js:1212 -#: js/EnsembleBlocks.js:1280 -#.TRANS: default project author when saving as Lilypond -msgid "Mr. Mouse" +#: js/utils/musicutils.js:1132 +#: js/utils/synthutils.js:60 +#.TRANS: brown noise synthesizer +msgid "brown noise" msgstr "" -#: js/SaveInterface.js:573 -msgid "The Lilypond code is copied to clipboard. You can paste it here: " +#: js/utils/musicutils.js:1133 +#: js/utils/synthutils.js:62 +#.TRANS: pink noise synthesizer +msgid "pink noise" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:50 -#: js/RhythmBlockPaletteBlocks.js:232 -#.TRANS: rhythm block -#.TRANS: translate "rhythm1" as rhythm -msgid "rhythm1" +#: js/utils/musicutils.js:1135 +#: js/utils/synthutils.js:148 +#: js/widgets/rhythmruler.js:2057 +#: js/widgets/rhythmruler.js:2319 +#.TRANS: musical instrument +msgid "snare drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:70 -#: js/RhythmBlockPaletteBlocks.js:251 -#: js/RhythmBlockPaletteBlocks.js:484 -#: js/RhythmBlockPaletteBlocks.js:553 -#: js/RhythmBlockPaletteBlocks.js:874 -msgid "number of notes" +#: js/utils/musicutils.js:1136 +#: js/utils/synthutils.js:150 +#.TRANS: musical instrument +msgid "kick drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:126 -msgid "polyphonic rhythm" +#: js/utils/musicutils.js:1137 +#: js/utils/synthutils.js:152 +#.TRANS: musical instrument +msgid "tom tom" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:218 -msgid "The Rhythm block is used to generate rhythm patterns." +#: js/utils/musicutils.js:1138 +#: js/utils/synthutils.js:154 +#.TRANS: musical instrument +msgid "floor tom" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:279 -msgid "1/64 note" +#: js/utils/musicutils.js:1139 +#: js/utils/synthutils.js:156 +#.TRANS: musical instrument +msgid "bass drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:303 -msgid "1/32 note" +#: js/utils/musicutils.js:1140 +#: js/utils/synthutils.js:158 +#.TRANS: a drum made from an inverted cup +msgid "cup drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:331 -msgid "1/16 note" +#: js/utils/musicutils.js:1141 +#: js/utils/synthutils.js:160 +#.TRANS: musical instrument +msgid "darbuka drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:359 -msgid "eighth note" +#: js/utils/musicutils.js:1142 +#: js/utils/synthutils.js:164 +#.TRANS: musical instrument +msgid "hi hat" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:387 -msgid "quarter note" +#: js/utils/musicutils.js:1143 +#: js/utils/synthutils.js:166 +#.TRANS: a small metal bell +msgid "ride bell" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:415 -msgid "half note" +#: js/utils/musicutils.js:1144 +#: js/utils/synthutils.js:168 +#.TRANS: musical instrument +msgid "cow bell" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:443 -msgid "whole note" +#: js/utils/musicutils.js:1145 +msgid "japanese drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:481 -#: js/RhythmBlockPaletteBlocks.js:550 -#: js/RhythmBlockPaletteBlocks.js:601 -#.TRANS: A tuplet is a note value divided into irregular time values. -msgid "tuplet" +#: js/utils/musicutils.js:1146 +#: js/utils/synthutils.js:174 +#.TRANS: musical instrument +msgid "japanese bell" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:767 -msgid "septuplet" +#: js/utils/musicutils.js:1147 +#: js/utils/synthutils.js:170 +#.TRANS: musical instrument +msgid "triangle bell" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:795 -msgid "quintuplet" +#: js/utils/musicutils.js:1148 +#: js/utils/synthutils.js:172 +#.TRANS: musical instrument +msgid "finger cymbals" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:823 -msgid "triplet" +#: js/utils/musicutils.js:1149 +#: js/utils/synthutils.js:176 +#.TRANS: a musically tuned set of bells +msgid "chime" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:850 -msgid "simple tuplet" +#: js/utils/musicutils.js:1150 +#: js/utils/synthutils.js:178 +#.TRANS: a musical instrument +msgid "gong" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:860 -msgid "Tuplets are a collection of notes that get scaled to a specific duration." +#: js/utils/musicutils.js:1151 +#: js/utils/synthutils.js:180 +#.TRANS: sound effect +msgid "clang" msgstr "" -#: js/WidgetBlocks.js:71 -#.TRANS: sound envelope (ADSR) -msgid "envelope" +#: js/utils/musicutils.js:1152 +#: js/utils/synthutils.js:182 +#.TRANS: sound effect +msgid "crash" msgstr "" -#: js/WidgetBlocks.js:79 -#.TRANS: Attack time is the time taken for initial run-up of level from nil to peak, beginning when the key is first pressed. -msgid "attack" +#: js/utils/musicutils.js:1153 +#: js/utils/synthutils.js:184 +#.TRANS: sound effect +msgid "bottle" msgstr "" -#: js/WidgetBlocks.js:81 -#.TRANS: Decay time is the time taken for the subsequent run down from the attack level to the designated sustain level. -msgid "decay" +#: js/utils/musicutils.js:1154 +#: js/utils/synthutils.js:186 +#.TRANS: sound effect +msgid "clap" msgstr "" -#: js/WidgetBlocks.js:83 -#.TRANS: Sustain level is the level during the main sequence of the sound's duration, until the key is released. -msgid "sustain" +#: js/utils/musicutils.js:1155 +#: js/utils/synthutils.js:188 +#.TRANS: sound effect +msgid "slap" msgstr "" -#: js/WidgetBlocks.js:85 -#.TRANS: Release time is the time taken for the level to decay from the sustain level to zero after the key is released. -msgid "release" +#: js/utils/musicutils.js:1156 +#: js/utils/synthutils.js:190 +#.TRANS: sound effect +msgid "splash" msgstr "" -#: js/WidgetBlocks.js:96 -msgid "Attack value should be from 0 to 100." +#: js/utils/musicutils.js:1157 +#: js/utils/synthutils.js:192 +#.TRANS: sound effect +msgid "bubbles" msgstr "" -#: js/WidgetBlocks.js:99 -msgid "Decay value should be from 0 to 100." +#: js/utils/musicutils.js:1158 +#: js/utils/synthutils.js:194 +#.TRANS: sound effect +msgid "raindrop" msgstr "" -#: js/WidgetBlocks.js:102 -msgid "Sustain value should be from 0 to 100." +#: js/utils/musicutils.js:1159 +#: js/utils/synthutils.js:196 +#.TRANS: animal sound effect +msgid "cat" msgstr "" -#: js/WidgetBlocks.js:105 -msgid "Release value should be from 0-100." +#: js/utils/musicutils.js:1160 +#: js/utils/synthutils.js:198 +#.TRANS: animal sound effect +msgid "cricket" msgstr "" -#: js/WidgetBlocks.js:121 -msgid "You are adding multiple envelope blocks." +#: js/utils/musicutils.js:1161 +#: js/utils/synthutils.js:200 +#.TRANS: animal sound effect +msgid "dog" msgstr "" -#: js/WidgetBlocks.js:144 -#.TRANS: a filter removes some unwanted components from a signal -msgid "filter" +#: js/utils/musicutils.js:1163 +#: js/utils/synthutils.js:102 +#.TRANS: musical instrument +msgid "banjo" msgstr "" -#: js/WidgetBlocks.js:149 -#: js/musicutils.js:706 -#: js/musicutils.js:1105 -#.TRANS: highpass filter -msgid "highpass" +#: js/utils/musicutils.js:1164 +#: js/utils/synthutils.js:104 +#.TRANS: musical instrument +msgid "koto" msgstr "" -#: js/WidgetBlocks.js:152 -#: js/ToneBlocks.js:42 -#: js/timbre.js:1558 -#: js/timbre.js:1808 -#.TRANS: type of filter, e.g., lowpass, highpass, etc. -#.TRANS: there are different types (sine, triangle, square...) of oscillators. -msgid "type" +#: js/utils/musicutils.js:1165 +#: js/utils/synthutils.js:106 +#.TRANS: musical instrument +msgid "dulcimer" msgstr "" -#: js/WidgetBlocks.js:154 -#: js/timbre.js:1818 -#.TRANS: rolloff is the steepness of a change in frequency. -msgid "rolloff" +#: js/utils/musicutils.js:1166 +#: js/utils/synthutils.js:108 +#.TRANS: musical instrument +msgid "electric guitar" msgstr "" -#: js/WidgetBlocks.js:155 -#: js/MediaBlocks.js:692 -#: js/temperament.js:382 -#: js/temperament.js:417 -#: js/temperament.js:477 -#: js/temperament.js:485 -#: js/temperament.js:1348 -#: js/timbre.js:1842 -msgid "frequency" -msgstr "التواتر" +#: js/utils/musicutils.js:1167 +#: js/utils/synthutils.js:110 +#.TRANS: musical instrument +msgid "bassoon" +msgstr "" -#: js/WidgetBlocks.js:179 -#.TRANS: rolloff is the steepness of a change in frequency. -msgid "Rolloff value should be either -12, -24, -48, or -96 decibels/octave." +#: js/utils/musicutils.js:1168 +#: js/utils/synthutils.js:112 +#.TRANS: musical instrument +msgid "celeste" msgstr "" -#: js/WidgetBlocks.js:211 -msgid "The Temperament tool is used to define custom tuning." +#: js/utils/musicutils.js:1170 +#: js/widgets/temperament.js:787 +#.TRANS: musical temperament +msgid "equal" msgstr "" -#: js/WidgetBlocks.js:277 -#: js/sampler.js:329 -msgid "Upload a sample and adjust its pitch center." +#: js/utils/musicutils.js:1172 +#.TRANS: musical temperament +msgid "Pythagorean" msgstr "" -#: js/WidgetBlocks.js:284 -#.TRANS: the speed at music is should be played. -msgid "sampler" +#: js/utils/musicutils.js:1174 +#.TRANS: musical temperament +msgid "just intonation" msgstr "" -#: js/WidgetBlocks.js:329 -#: js/WidgetBlocks.js:334 -#: js/IntervalsBlocks.js:928 -#: js/VolumeBlocks.js:411 -#: js/ToneBlocks.js:946 -#: js/VolumeActions.js:218 -#: js/musicutils.js:704 -#: js/musicutils.js:755 -#: js/musicutils.js:798 -#: js/musicutils.js:820 -#: js/musicutils.js:1136 -#: js/synthutils.js:118 -#: js/modewidget.js:919 -#.TRANS: customize voice -msgid "custom" +#: js/utils/musicutils.js:1176 +#.TRANS: musical temperament +msgid "meantone" msgstr "" -#: js/WidgetBlocks.js:432 -msgid "The Meter block opens a tool to select strong beats for the meter." +#: js/utils/musicutils.js:1193 +msgid "major 7th" msgstr "" -#: js/WidgetBlocks.js:473 -msgid "The oscilloscope block opens a tool to visualize waveforms." +#: js/utils/musicutils.js:1194 +msgid "minor 7th" msgstr "" -#: js/WidgetBlocks.js:478 -msgid "oscilloscope" +#: js/utils/musicutils.js:1195 +msgid "dominant 7th" msgstr "" -#: js/WidgetBlocks.js:530 -msgid "The Custom mode block opens a tool to explore musical mode (the spacing of the notes in a scale)." +#: js/utils/musicutils.js:1196 +msgid "minor-major 7th" msgstr "" -#: js/WidgetBlocks.js:536 -#.TRANS: musical mode is the pattern of half-steps in an octave, e.g., Major or Minor modes -msgid "custom mode" +#: js/utils/musicutils.js:1197 +msgid "fully-diminished 7th" msgstr "" -#: js/WidgetBlocks.js:570 -msgid "The Tempo block opens a metronome to visualize the beat." +#: js/utils/musicutils.js:1198 +msgid "half-diminished 7th" msgstr "" -#: js/WidgetBlocks.js:617 -msgid "The Arpeggio Widget is used to compose chord sequences." +#: js/utils/musicutils.js:1557 +#: js/utils/musicutils.js:1569 +msgid "Equal (12EDO)" msgstr "" -#: js/WidgetBlocks.js:623 -#: js/IntervalsBlocks.js:683 -msgid "arpeggio" +#: js/utils/musicutils.js:1558 +#: js/utils/musicutils.js:1570 +msgid "5-limit Just Intonation" msgstr "" -#: js/WidgetBlocks.js:677 -msgid "The Pitch drum matrix is used to map pitches to drum sounds." +#: js/utils/musicutils.js:1559 +#: js/utils/musicutils.js:1571 +msgid "Pythagorean (3-limit JI)" msgstr "" -#: js/WidgetBlocks.js:682 -#.TRANS: makes a mapping between pitches and drum sounds -msgid "pitch-drum mapper" +#: js/utils/musicutils.js:1560 +#: js/utils/musicutils.js:1561 +#: js/utils/musicutils.js:1572 +#: js/utils/musicutils.js:1573 +msgid "Meantone" msgstr "" -#: js/WidgetBlocks.js:724 -msgid "You must have at least one pitch block and one drum block in the matrix." +#: js/utils/musicutils.js:1574 +msgid "Custom" msgstr "" -#: js/WidgetBlocks.js:746 -msgid "The Pitch slider tool to is used to generate pitches at selected frequencies." +#: js/utils/musicutils.js:5387 +#: js/utils/musicutils.js:5430 +msgid "current" msgstr "" -#: js/WidgetBlocks.js:751 -#.TRANS: widget to generate pitches using a slider -msgid "pitch slider" +#: js/utils/musicutils.js:5390 +#: js/utils/musicutils.js:5421 +msgid "next" msgstr "" -#: js/WidgetBlocks.js:788 -msgid "chromatic keyboard" +#: js/utils/musicutils.js:5393 +#: js/utils/musicutils.js:5426 +msgid "previous" msgstr "" -#: js/WidgetBlocks.js:815 -#: js/WidgetBlocks.js:874 -#.TRANS: widget to generate pitches using a slider -msgid "music keyboard" +#: js/utils/synthutils.js:120 +#.TRANS: simple monotone synthesizer +msgid "simple-2" msgstr "" -#: js/WidgetBlocks.js:859 -#: js/WidgetBlocks.js:866 -msgid "The Music keyboard block opens a piano keyboard that can be used to create notes." +#: js/utils/synthutils.js:122 +#.TRANS: simple monotone synthesizer +msgid "simple-3" msgstr "" -#: js/WidgetBlocks.js:910 -msgid "The Pitch staircase tool to is used to generate pitches from a given ratio." +#: js/utils/synthutils.js:124 +#.TRANS: simple monotone synthesizer +msgid "simple-4" msgstr "" -#: js/WidgetBlocks.js:917 -#.TRANS: generate a progressive sequence of pitches -msgid "pitch staircase" +#: js/utils/synthutils.js:162 +#.TRANS: musical instrument +msgid "taiko" msgstr "" -#: js/WidgetBlocks.js:982 -msgid "The Rhythm Maker block opens a tool to create drum machines." +#: js/blocks/ActionBlocks.js:58 +msgid "The Return block will return a value from an action." msgstr "" -#: js/WidgetBlocks.js:1036 -msgid "G major scale" +#: js/blocks/ActionBlocks.js:75 +msgid "return" msgstr "" -#: js/WidgetBlocks.js:1064 -msgid "C major scale" +#: js/blocks/ActionBlocks.js:128 +msgid "The Return to URL block will return a value to a webpage." msgstr "" -#: js/WidgetBlocks.js:1097 -msgid "The Phrase Maker block opens a tool to create musical phrases." +#: js/blocks/ActionBlocks.js:145 +msgid "return to URL" msgstr "" -#: js/WidgetBlocks.js:1104 -#.TRANS: assigns pitch to a sequence of beats to generate a melody -msgid "phrase maker" +#: js/blocks/ActionBlocks.js:233 +#: js/blocks/ActionBlocks.js:290 +#: js/blocks/ActionBlocks.js:501 +#: js/blocks/ActionBlocks.js:688 +msgid "The Calculate block returns a value calculated by an action." msgstr "" -#: js/WidgetBlocks.js:1168 -msgid "You must have at least one pitch block and one rhythm block in the matrix." +#: js/blocks/ActionBlocks.js:251 +#: js/blocks/ActionBlocks.js:517 +#: js/blocks/ActionBlocks.js:707 +msgid "calculate" msgstr "" -#: js/WidgetBlocks.js:1220 -msgid "The Status block opens a tool for inspecting the status of Music Blocks as it is running." +#: js/blocks/ActionBlocks.js:376 +#: js/blocks/ActionBlocks.js:593 +#: js/blocks/ActionBlocks.js:942 +#: js/blocks/ActionBlocks.js:1389 +#.TRANS: do is the do something or take an action. +msgid "The Do block is used to initiate an action." msgstr "" -#: js/IntervalsBlocks.js:45 -msgid "set temperament" +#: js/blocks/ActionBlocks.js:390 +#: js/blocks/ActionBlocks.js:610 +#: js/blocks/ActionBlocks.js:959 +#: js/blocks/ActionBlocks.js:1048 +#: js/blocks/MeterBlocks.js:769 +msgid "do1" msgstr "" -#: js/IntervalsBlocks.js:63 -#: js/MediaBlocks.js:746 -#: js/PitchBlocks.js:657 -#: js/PitchBlocks.js:933 -#: js/PitchBlocks.js:972 -#: js/PitchBlocks.js:1005 -#: js/PitchBlocks.js:1166 -#: js/PitchBlocks.js:1679 -#: js/PitchBlocks.js:1720 -#: js/PitchBlocks.js:1827 -#: js/ToneBlocks.js:1025 -#.TRANS: adjusts the shift up or down by one octave (twelve half-steps in the interval between two notes, one having twice or half the frequency in Hz of the other.) -msgid "octave" -msgstr "اوكتاف" +#: js/blocks/ActionBlocks.js:390 +#: js/blocks/ActionBlocks.js:610 +#: js/blocks/ActionBlocks.js:959 +#: js/blocks/ActionBlocks.js:1048 +#: js/blocks/FlowBlocks.js:742 +#: js/blocks/FlowBlocks.js:822 +#: js/blocks/MeterBlocks.js:769 +msgid "do" +msgstr "أجرِ" -#: js/IntervalsBlocks.js:99 -msgid "The Temperament name block is used to select a tuning method." +#: js/blocks/ActionBlocks.js:791 +#: js/blocks/ActionBlocks.js:865 +msgid "The Arg block contains the value of an argument passed to an action." msgstr "" -#: js/IntervalsBlocks.js:161 -msgid "doubly" +#: js/blocks/ActionBlocks.js:806 +#: js/blocks/ActionBlocks.js:878 +msgid "arg" msgstr "" -#: js/IntervalsBlocks.js:166 -msgid "The Doubly block will double the size of an interval." +#: js/blocks/ActionBlocks.js:836 +#: js/blocks/ActionBlocks.js:900 +#: js/blocks/ActionBlocks.js:908 +msgid "Invalid argument" msgstr "" -#: js/IntervalsBlocks.js:262 -msgid "interval number" +#: js/blocks/ActionBlocks.js:944 +msgid "In the example, it is used with the One of block to choose a random phase." msgstr "" -#: js/IntervalsBlocks.js:330 -#.TRANS: measure the distance between two pitches in semi-tones -msgid "semi-tone interval measure" +#: js/blocks/ActionBlocks.js:1019 +#: js/blocks/ActionBlocks.js:1026 +msgid "The Listen block is used to listen for an event such as a mouse click." msgstr "" -#: js/IntervalsBlocks.js:397 -#: js/IntervalsBlocks.js:513 -msgid "You must use two pitch blocks when measuring an interval." +#: js/blocks/ActionBlocks.js:1028 +msgid "When the event happens, an action is taken." msgstr "" -#: js/IntervalsBlocks.js:439 -msgid "The Scalar interval block measures the distance between two notes in the current key and mode." +#: js/blocks/ActionBlocks.js:1045 +msgid "on" +msgstr "في" + +#: js/blocks/ActionBlocks.js:1048 +#: js/blocks/ActionBlocks.js:1049 +#: js/blocks/ActionBlocks.js:1153 +msgid "event" +msgstr "في حالة" + +#: js/blocks/ActionBlocks.js:1133 +msgid "The Broadcast block is used to trigger an event." msgstr "" -#: js/IntervalsBlocks.js:445 -#.TRANS: measure the distance between two pitches in steps of musical scale -msgid "scalar interval measure" +#: js/blocks/ActionBlocks.js:1151 +msgid "broadcast" +msgstr "بث" + +#: js/blocks/ActionBlocks.js:1208 +msgid "Each Start block is a separate voice." msgstr "" -#: js/IntervalsBlocks.js:592 -#: js/musicutils.js:637 -#: js/musicutils.js:908 -#.TRANS: perfect is a music term related to intervals -msgid "perfect" +#: js/blocks/ActionBlocks.js:1304 +msgid "It is often used for storing a phrase of music that is repeated." msgstr "" -#: js/IntervalsBlocks.js:621 -msgid "In the figure, we add sol# to sol." +#: js/blocks/ActionBlocks.js:1495 +msgid "define temperament" msgstr "" -#: js/IntervalsBlocks.js:627 -#: js/OrnamentBlocks.js:220 -#.TRANS: calculate a relative step between notes based on semi-tones -msgid "semi-tone interval" +#: js/blocks/BooleanBlocks.js:44 +msgid "The Not block is the logical not operator." msgstr "" -#: js/IntervalsBlocks.js:676 -msgid "The output of the example is: do, mi, sol, sol, ti, mi" +#: js/blocks/BooleanBlocks.js:62 +msgid "not" +msgstr "ليس" + +#: js/blocks/BooleanBlocks.js:134 +msgid "The And block is the logical and operator." msgstr "" -#: js/IntervalsBlocks.js:735 -msgid "The Chord block calculates common chords." -msgstr "" +#: js/blocks/BooleanBlocks.js:152 +msgid "and" +msgstr "و" -#: js/IntervalsBlocks.js:737 -msgid "In the figure, we generate a C-major chord." +#: js/blocks/BooleanBlocks.js:218 +msgid "The Or block is the logical or operator." msgstr "" -#: js/IntervalsBlocks.js:742 -msgid "chord" -msgstr "" +#: js/blocks/BooleanBlocks.js:236 +msgid "or" +msgstr "أو" -#: js/IntervalsBlocks.js:794 -msgid "The Ratio Interval block calculates an interval based on a ratio." +#: js/blocks/BooleanBlocks.js:302 +msgid "The XOR block is the logical XOR operator." msgstr "" -#: js/IntervalsBlocks.js:799 -msgid "ratio interval" +#: js/blocks/BooleanBlocks.js:320 +msgid "xor" msgstr "" -#: js/IntervalsBlocks.js:868 -msgid "In the figure, we add la to sol." +#: js/blocks/BooleanBlocks.js:808 +msgid "The Equal block returns True if the two numbers are equal." msgstr "" -#: js/IntervalsBlocks.js:924 -#.TRANS: define a custom mode -msgid "define mode" +#: js/blocks/BooleanBlocks.js:909 +msgid "The Not-equal-to block returns True if the two numbers are not equal to each other." msgstr "" -#: js/IntervalsBlocks.js:977 -msgid "movable Do" +#: js/blocks/BooleanBlocks.js:1008 +msgid "The Boolean block is used to specify true or false." msgstr "" -#: js/IntervalsBlocks.js:1028 -#.TRANS: mode length is the number of notes in the mode, e.g., 7 for major and minor scales; 12 for chromatic scales -msgid "mode length" +#: js/blocks/BoxesBlocks.js:53 +#: js/blocks/BoxesBlocks.js:59 +msgid "The Add-to block is used to add to the value stored in a box." msgstr "" -#: js/IntervalsBlocks.js:1037 -msgid "The Mode length block is the number of notes in the current scale." +#: js/blocks/BoxesBlocks.js:61 +msgid "It can also be used with other blocks such as Color and Pen size." msgstr "" -#: js/IntervalsBlocks.js:1039 -msgid "Most Western scales have 7 notes." -msgstr "" +#: js/blocks/BoxesBlocks.js:73 +msgid "add" +msgstr "أضف" -#: js/IntervalsBlocks.js:1088 -#.TRANS: the mode in music is 'major', 'minor', etc. -msgid "current mode" -msgstr "" +#: js/blocks/BoxesBlocks.js:75 +#: js/widgets/temperament.js:857 +msgid "to" +msgstr "إلى" -#: js/IntervalsBlocks.js:1141 -#.TRANS: the key is a group of pitches with which a music composition is created -msgid "current key" +#: js/blocks/BoxesBlocks.js:75 +#: js/blocks/BoxesBlocks.js:595 +#: js/blocks/HeapBlocks.js:544 +msgid "value1" msgstr "" -#: js/IntervalsBlocks.js:1193 -#: js/IntervalsBlocks.js:1238 -#.TRANS: set the key and mode, e.g. C Major -msgid "set key" +#: js/blocks/BoxesBlocks.js:118 +msgid "Block does not support incrementing." msgstr "" -#: js/IntervalsBlocks.js:1247 -#: js/IntervalsBlocks.js:1253 -msgid "The Set key block is used to set the key and mode," +#: js/blocks/BoxesBlocks.js:152 +msgid "The Add-1-to block adds one to the value stored in a box." msgstr "" -#: js/IntervalsBlocks.js:1253 -msgid "eg C Major" -msgstr "" +#: js/blocks/BoxesBlocks.js:163 +msgid "add 1 to" +msgstr "أضف 1 إلى" -#: js/IntervalsBlocks.js:1266 -#: js/DictBlocks.js:215 -#: js/DictBlocks.js:216 -#: js/DictBlocks.js:289 -#: js/DictBlocks.js:290 -#: js/DictBlocks.js:357 -#: js/DictBlocks.js:430 -#: js/DictBlocks.js:431 -#.TRANS: key, e.g., C in C Major -msgid "key" +#: js/blocks/BoxesBlocks.js:211 +msgid "The Subtract-1-from block subtracts one from the value stored in a box." msgstr "" -#: js/ActionBlocks.js:58 -msgid "The Return block will return a value from an action." +#: js/blocks/BoxesBlocks.js:222 +msgid "subtract 1 from" msgstr "" -#: js/ActionBlocks.js:75 -msgid "return" +#: js/blocks/BoxesBlocks.js:270 +#: js/blocks/BoxesBlocks.js:387 +msgid "The Box block returns the value stored in a box." msgstr "" -#: js/ActionBlocks.js:128 -msgid "The Return to URL block will return a value to a webpage." +#: js/blocks/BoxesBlocks.js:500 +#: js/blocks/BoxesBlocks.js:576 +msgid "The Store in block will store a value in a box." msgstr "" -#: js/ActionBlocks.js:145 -msgid "return to URL" +#: js/blocks/BoxesBlocks.js:595 +#: js/blocks/EnsembleBlocks.js:391 +#: js/blocks/EnsembleBlocks.js:402 +msgid "name1" msgstr "" -#: js/ActionBlocks.js:233 -#: js/ActionBlocks.js:290 -#: js/ActionBlocks.js:501 -#: js/ActionBlocks.js:688 -msgid "The Calculate block returns a value calculated by an action." +#: js/blocks/BoxesBlocks.js:652 +msgid "The Box2 block returns the value stored in Box2." msgstr "" -#: js/ActionBlocks.js:251 -#: js/ActionBlocks.js:517 -#: js/ActionBlocks.js:707 -msgid "calculate" +#: js/blocks/BoxesBlocks.js:703 +msgid "The Store in Box2 block is used to store a value in Box2." msgstr "" -#: js/ActionBlocks.js:376 -#: js/ActionBlocks.js:593 -#: js/ActionBlocks.js:942 -#: js/ActionBlocks.js:1389 -#.TRANS: do is the do something or take an action. -msgid "The Do block is used to initiate an action." +#: js/blocks/BoxesBlocks.js:715 +msgid "store in box2" msgstr "" -#: js/ActionBlocks.js:390 -#: js/ActionBlocks.js:610 -#: js/ActionBlocks.js:959 -#: js/ActionBlocks.js:1048 -#: js/MeterBlocks.js:769 -msgid "do1" +#: js/blocks/BoxesBlocks.js:761 +msgid "The Box1 block returns the value stored in Box1." msgstr "" -#: js/ActionBlocks.js:390 -#: js/ActionBlocks.js:610 -#: js/ActionBlocks.js:959 -#: js/ActionBlocks.js:1048 -#: js/FlowBlocks.js:742 -#: js/FlowBlocks.js:822 -#: js/MeterBlocks.js:769 -msgid "do" -msgstr "أجرِ" - -#: js/ActionBlocks.js:791 -#: js/ActionBlocks.js:865 -msgid "The Arg block contains the value of an argument passed to an action." +#: js/blocks/BoxesBlocks.js:812 +msgid "The Store in Box1 block is used to store a value in Box1." msgstr "" -#: js/ActionBlocks.js:806 -#: js/ActionBlocks.js:878 -msgid "arg" +#: js/blocks/BoxesBlocks.js:826 +msgid "store in box1" msgstr "" -#: js/ActionBlocks.js:836 -#: js/ActionBlocks.js:900 -#: js/ActionBlocks.js:908 -msgid "Invalid argument" +#: js/blocks/DictBlocks.js:77 +msgid "show dictionary" msgstr "" -#: js/ActionBlocks.js:944 -msgid "In the example, it is used with the One of block to choose a random phase." +#: js/blocks/DictBlocks.js:80 +#: js/blocks/DictBlocks.js:145 +#: js/blocks/DictBlocks.js:216 +#: js/blocks/DictBlocks.js:290 +#: js/blocks/ProgramBlocks.js:396 +#: js/blocks/ProgramBlocks.js:501 +#: js/blocks/ProgramBlocks.js:664 +msgid "My Dictionary" msgstr "" -#: js/ActionBlocks.js:1019 -#: js/ActionBlocks.js:1026 -msgid "The Listen block is used to listen for an event such as a mouse click." +#: js/blocks/DictBlocks.js:129 +msgid "The Dictionary block returns a dictionary." msgstr "" -#: js/ActionBlocks.js:1028 -msgid "When the event happens, an action is taken." +#: js/blocks/DictBlocks.js:197 +#: js/blocks/DictBlocks.js:339 +msgid "The Get-dict block returns a value in the dictionary for a specified key." msgstr "" -#: js/ActionBlocks.js:1045 -msgid "on" -msgstr "في" - -#: js/ActionBlocks.js:1048 -#: js/ActionBlocks.js:1049 -#: js/ActionBlocks.js:1153 -msgid "event" -msgstr "في حالة" - -#: js/ActionBlocks.js:1133 -msgid "The Broadcast block is used to trigger an event." +#: js/blocks/DictBlocks.js:212 +#: js/blocks/DictBlocks.js:354 +#.TRANS: retrieve a value from the dictionary with a given key +msgid "get value" msgstr "" -#: js/ActionBlocks.js:1151 -msgid "broadcast" -msgstr "بث" +#: js/blocks/DictBlocks.js:215 +#: js/blocks/DictBlocks.js:216 +#: js/blocks/DictBlocks.js:289 +#: js/blocks/DictBlocks.js:290 +#: js/blocks/DictBlocks.js:357 +#: js/blocks/DictBlocks.js:430 +#: js/blocks/DictBlocks.js:431 +msgid "key2" +msgstr "" -#: js/ActionBlocks.js:1208 -msgid "Each Start block is a separate voice." +#: js/blocks/DictBlocks.js:215 +#: js/blocks/DictBlocks.js:216 +#: js/blocks/DictBlocks.js:289 +#: js/blocks/DictBlocks.js:290 +#: js/blocks/DictBlocks.js:357 +#: js/blocks/DictBlocks.js:430 +#: js/blocks/DictBlocks.js:431 +#: js/blocks/IntervalsBlocks.js:1462 +#.TRANS: key, e.g., C in C Major +msgid "key" msgstr "" -#: js/ActionBlocks.js:1304 -msgid "It is often used for storing a phrase of music that is repeated." +#: js/blocks/DictBlocks.js:271 +#: js/blocks/DictBlocks.js:411 +msgid "The Set-dict block sets a value in the dictionary for a specified key." msgstr "" -#: js/ActionBlocks.js:1495 -msgid "define temperament" +#: js/blocks/DictBlocks.js:286 +#: js/blocks/DictBlocks.js:427 +#.TRANS: set a value in the dictionary for a given key +msgid "set value" msgstr "" -#: js/EnsembleBlocks.js:66 +#: js/blocks/EnsembleBlocks.js:66 msgid "mouse index heap" msgstr "" -#: js/EnsembleBlocks.js:68 +#: js/blocks/EnsembleBlocks.js:68 msgid "The Mouse index heap block returns a value in the heap at a specified location for a specified mouse." msgstr "" -#: js/EnsembleBlocks.js:77 -#: js/EnsembleBlocks.js:1080 +#: js/blocks/EnsembleBlocks.js:77 +#: js/blocks/EnsembleBlocks.js:1080 msgid "mouse name" msgstr "" -#: js/EnsembleBlocks.js:77 -#: js/EnsembleBlocks.js:92 -#: js/HeapBlocks.js:544 +#: js/blocks/EnsembleBlocks.js:77 +#: js/blocks/EnsembleBlocks.js:92 +#: js/blocks/HeapBlocks.js:544 #.TRANS: value1 is a numeric value (JAPANESE ONLY) msgid "index" msgstr "مؤشر" -#: js/EnsembleBlocks.js:80 +#: js/blocks/EnsembleBlocks.js:80 msgid "turtle index heap" msgstr "" -#: js/EnsembleBlocks.js:82 +#: js/blocks/EnsembleBlocks.js:82 msgid "The Turtle index heap block returns a value in the heap at a specified location for a specified turtle." msgstr "" -#: js/EnsembleBlocks.js:90 -#: js/EnsembleBlocks.js:167 -#: js/EnsembleBlocks.js:230 -#: js/EnsembleBlocks.js:316 -#: js/EnsembleBlocks.js:362 -#: js/EnsembleBlocks.js:400 -#: js/EnsembleBlocks.js:454 -#: js/EnsembleBlocks.js:504 -#: js/EnsembleBlocks.js:550 -#: js/EnsembleBlocks.js:597 -#: js/EnsembleBlocks.js:651 -#: js/EnsembleBlocks.js:763 -#: js/EnsembleBlocks.js:854 -#: js/EnsembleBlocks.js:915 -#: js/EnsembleBlocks.js:955 -#: js/EnsembleBlocks.js:1219 -#: js/EnsembleBlocks.js:1293 +#: js/blocks/EnsembleBlocks.js:90 +#: js/blocks/EnsembleBlocks.js:167 +#: js/blocks/EnsembleBlocks.js:230 +#: js/blocks/EnsembleBlocks.js:316 +#: js/blocks/EnsembleBlocks.js:362 +#: js/blocks/EnsembleBlocks.js:400 +#: js/blocks/EnsembleBlocks.js:454 +#: js/blocks/EnsembleBlocks.js:504 +#: js/blocks/EnsembleBlocks.js:550 +#: js/blocks/EnsembleBlocks.js:597 +#: js/blocks/EnsembleBlocks.js:651 +#: js/blocks/EnsembleBlocks.js:763 +#: js/blocks/EnsembleBlocks.js:854 +#: js/blocks/EnsembleBlocks.js:915 +#: js/blocks/EnsembleBlocks.js:955 +#: js/blocks/EnsembleBlocks.js:1219 +#: js/blocks/EnsembleBlocks.js:1293 #.TRANS: Yertle is the name of a turtle. msgid "Yertle" msgstr "" -#: js/EnsembleBlocks.js:92 -#: js/EnsembleBlocks.js:1089 +#: js/blocks/EnsembleBlocks.js:92 +#: js/blocks/EnsembleBlocks.js:1089 msgid "turtle name" msgstr "اسم السلحفاة" -#: js/EnsembleBlocks.js:122 -#: js/EnsembleBlocks.js:1197 -#: js/HeapBlocks.js:474 -#: js/HeapBlocks.js:572 +#: js/blocks/EnsembleBlocks.js:122 +#: js/blocks/EnsembleBlocks.js:1197 +#: js/blocks/HeapBlocks.js:474 +#: js/blocks/HeapBlocks.js:572 msgid "Index must be > 0." msgstr "" -#: js/EnsembleBlocks.js:127 -#: js/HeapBlocks.js:479 -#: js/HeapBlocks.js:577 +#: js/blocks/EnsembleBlocks.js:127 +#: js/blocks/HeapBlocks.js:479 +#: js/blocks/HeapBlocks.js:577 msgid "Maximum heap size is 1000." msgstr "" -#: js/EnsembleBlocks.js:145 +#: js/blocks/EnsembleBlocks.js:145 msgid "stop mouse" msgstr "" -#: js/EnsembleBlocks.js:147 +#: js/blocks/EnsembleBlocks.js:147 msgid "The Stop mouse block stops the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:158 +#: js/blocks/EnsembleBlocks.js:158 msgid "stop turtle" msgstr "أوقف السلحفاة" -#: js/EnsembleBlocks.js:160 +#: js/blocks/EnsembleBlocks.js:160 msgid "The Stop turtle block stops the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:184 -#: js/EnsembleBlocks.js:247 -#: js/EnsembleBlocks.js:413 -#: js/EnsembleBlocks.js:468 -#: js/EnsembleBlocks.js:706 -#: js/EnsembleBlocks.js:808 -#: js/EnsembleBlocks.js:870 -#: js/EnsembleBlocks.js:1190 -#: js/EnsembleBlocks.js:1253 +#: js/blocks/EnsembleBlocks.js:184 +#: js/blocks/EnsembleBlocks.js:247 +#: js/blocks/EnsembleBlocks.js:413 +#: js/blocks/EnsembleBlocks.js:468 +#: js/blocks/EnsembleBlocks.js:706 +#: js/blocks/EnsembleBlocks.js:808 +#: js/blocks/EnsembleBlocks.js:870 +#: js/blocks/EnsembleBlocks.js:1190 +#: js/blocks/EnsembleBlocks.js:1253 msgid "Cannot find mouse" msgstr "" -#: js/EnsembleBlocks.js:186 -#: js/EnsembleBlocks.js:249 -#: js/EnsembleBlocks.js:415 -#: js/EnsembleBlocks.js:470 -#: js/EnsembleBlocks.js:708 -#: js/EnsembleBlocks.js:810 -#: js/EnsembleBlocks.js:872 -#: js/EnsembleBlocks.js:1192 -#: js/EnsembleBlocks.js:1255 +#: js/blocks/EnsembleBlocks.js:186 +#: js/blocks/EnsembleBlocks.js:249 +#: js/blocks/EnsembleBlocks.js:415 +#: js/blocks/EnsembleBlocks.js:470 +#: js/blocks/EnsembleBlocks.js:708 +#: js/blocks/EnsembleBlocks.js:810 +#: js/blocks/EnsembleBlocks.js:872 +#: js/blocks/EnsembleBlocks.js:1192 +#: js/blocks/EnsembleBlocks.js:1255 msgid "Cannot find turtle" msgstr "" -#: js/EnsembleBlocks.js:206 +#: js/blocks/EnsembleBlocks.js:206 msgid "start mouse" msgstr "" -#: js/EnsembleBlocks.js:209 +#: js/blocks/EnsembleBlocks.js:209 msgid "The Start mouse block starts the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:220 +#: js/blocks/EnsembleBlocks.js:220 msgid "start turtle" msgstr "ابدأ السلحفاة" -#: js/EnsembleBlocks.js:223 +#: js/blocks/EnsembleBlocks.js:223 msgid "The Start turtle block starts the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:256 +#: js/blocks/EnsembleBlocks.js:256 msgid "Mouse is already running." msgstr "" -#: js/EnsembleBlocks.js:258 +#: js/blocks/EnsembleBlocks.js:258 msgid "Turtle is already running." msgstr "" -#: js/EnsembleBlocks.js:282 +#: js/blocks/EnsembleBlocks.js:282 msgid "Cannot find start block" msgstr "" -#: js/EnsembleBlocks.js:292 +#: js/blocks/EnsembleBlocks.js:292 #.TRANS: pen color for this mouse msgid "mouse color" msgstr "" -#: js/EnsembleBlocks.js:294 +#: js/blocks/EnsembleBlocks.js:294 msgid "The Mouse color block returns the pen color of the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:306 +#: js/blocks/EnsembleBlocks.js:306 #.TRANS: pen color for this turtle msgid "turtle color" msgstr "" -#: js/EnsembleBlocks.js:308 +#: js/blocks/EnsembleBlocks.js:308 msgid "The Turtle color block returns the pen color of the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:338 +#: js/blocks/EnsembleBlocks.js:338 #.TRANS: heading (compass direction) for this mouse msgid "mouse heading" msgstr "" -#: js/EnsembleBlocks.js:340 +#: js/blocks/EnsembleBlocks.js:340 msgid "The Mouse heading block returns the heading of the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:352 +#: js/blocks/EnsembleBlocks.js:352 #.TRANS: heading (compass direction) for this turtle msgid "turtle heading" msgstr "" -#: js/EnsembleBlocks.js:354 +#: js/blocks/EnsembleBlocks.js:354 msgid "The Turtle heading block returns the heading of the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:384 -#: js/EnsembleBlocks.js:439 +#: js/blocks/EnsembleBlocks.js:384 +#: js/blocks/EnsembleBlocks.js:439 #.TRANS: set xy position for this mouse msgid "set mouse" msgstr "" -#: js/EnsembleBlocks.js:391 -#: js/EnsembleBlocks.js:402 -#: js/BoxesBlocks.js:595 -msgid "name1" -msgstr "" - -#: js/EnsembleBlocks.js:391 -#: js/EnsembleBlocks.js:402 -#: js/ProgramBlocks.js:881 -#: js/GraphicsBlocks.js:235 -#: js/GraphicsBlocks.js:313 -#: js/GraphicsBlocks.js:436 -#: js/GraphicsBlocks.js:487 -#: js/GraphicsBlocks.js:534 -#: js/GraphicsBlocks.js:750 +#: js/blocks/EnsembleBlocks.js:391 +#: js/blocks/EnsembleBlocks.js:402 +#: js/blocks/GraphicsBlocks.js:235 +#: js/blocks/GraphicsBlocks.js:313 +#: js/blocks/GraphicsBlocks.js:436 +#: js/blocks/GraphicsBlocks.js:487 +#: js/blocks/GraphicsBlocks.js:534 +#: js/blocks/GraphicsBlocks.js:750 +#: js/blocks/ProgramBlocks.js:881 msgid "x" msgstr "س" -#: js/EnsembleBlocks.js:391 -#: js/EnsembleBlocks.js:402 -#: js/ProgramBlocks.js:881 -#: js/GraphicsBlocks.js:149 -#: js/GraphicsBlocks.js:313 -#: js/GraphicsBlocks.js:436 -#: js/GraphicsBlocks.js:487 -#: js/GraphicsBlocks.js:534 -#: js/GraphicsBlocks.js:750 +#: js/blocks/EnsembleBlocks.js:391 +#: js/blocks/EnsembleBlocks.js:402 +#: js/blocks/GraphicsBlocks.js:149 +#: js/blocks/GraphicsBlocks.js:313 +#: js/blocks/GraphicsBlocks.js:436 +#: js/blocks/GraphicsBlocks.js:487 +#: js/blocks/GraphicsBlocks.js:534 +#: js/blocks/GraphicsBlocks.js:750 +#: js/blocks/ProgramBlocks.js:881 msgid "y" msgstr "ص" -#: js/EnsembleBlocks.js:395 -#: js/EnsembleBlocks.js:452 +#: js/blocks/EnsembleBlocks.js:395 +#: js/blocks/EnsembleBlocks.js:452 #.TRANS: set xy position for this turtle msgid "set turtle" msgstr "" -#: js/EnsembleBlocks.js:433 +#: js/blocks/EnsembleBlocks.js:433 msgid "The Set mouse block sends a stack of blocks to be run by the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:446 +#: js/blocks/EnsembleBlocks.js:446 msgid "The Set turtle block sends a stack of blocks to be run by the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:480 +#: js/blocks/EnsembleBlocks.js:480 #.TRANS: y position for this mouse msgid "mouse y" msgstr "الفأرة ص" -#: js/EnsembleBlocks.js:482 +#: js/blocks/EnsembleBlocks.js:482 msgid "The Y mouse block returns the Y position of the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:494 +#: js/blocks/EnsembleBlocks.js:494 #.TRANS: y position for this turtle msgid "turtle y" msgstr "السلحفاة ص" -#: js/EnsembleBlocks.js:496 +#: js/blocks/EnsembleBlocks.js:496 msgid "The Y turtle block returns the Y position of the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:526 +#: js/blocks/EnsembleBlocks.js:526 #.TRANS: x position for this mouse msgid "mouse x" msgstr "الفأرة س" -#: js/EnsembleBlocks.js:528 +#: js/blocks/EnsembleBlocks.js:528 msgid "The X mouse block returns the X position of the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:540 +#: js/blocks/EnsembleBlocks.js:540 #.TRANS: x position for this turtle msgid "turtle x" msgstr "السلحفاة س" -#: js/EnsembleBlocks.js:542 +#: js/blocks/EnsembleBlocks.js:542 msgid "The X turtle block returns the X position of the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:573 +#: js/blocks/EnsembleBlocks.js:573 #.TRANS: notes played by this mouse msgid "mouse notes played" msgstr "" -#: js/EnsembleBlocks.js:575 +#: js/blocks/EnsembleBlocks.js:575 msgid "The Mouse elapse notes block returns the number of notes played by the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:587 +#: js/blocks/EnsembleBlocks.js:587 #.TRANS: notes played by this turtle msgid "turtle notes played" msgstr "" -#: js/EnsembleBlocks.js:589 +#: js/blocks/EnsembleBlocks.js:589 msgid "The Turtle elapse notes block returns the number of notes played by the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:627 +#: js/blocks/EnsembleBlocks.js:627 #.TRANS: convert current note for this turtle to piano key (1-88) msgid "mouse pitch number" msgstr "" -#: js/EnsembleBlocks.js:629 +#: js/blocks/EnsembleBlocks.js:629 msgid "The Mouse pitch block returns the current pitch number being played by the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:641 +#: js/blocks/EnsembleBlocks.js:641 #.TRANS: convert current note for this turtle to piano key (1-88) msgid "turtle pitch number" msgstr "" -#: js/EnsembleBlocks.js:643 -msgid "The Turrle pitch block returns the current pitch number being played by the specified turtle." +#: js/blocks/EnsembleBlocks.js:643 +msgid "The Turtle pitch block returns the current pitch number being played by the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:747 -#: js/EnsembleBlocks.js:819 +#: js/blocks/EnsembleBlocks.js:747 +#: js/blocks/EnsembleBlocks.js:819 #.TRANS: note value is the duration of the note played by this mouse msgid "mouse note value" msgstr "" -#: js/EnsembleBlocks.js:757 +#: js/blocks/EnsembleBlocks.js:757 #.TRANS: note value is the duration of the note played by this turtle msgid "turtle note value" msgstr "" -#: js/EnsembleBlocks.js:830 +#: js/blocks/EnsembleBlocks.js:830 #.TRANS: sync is short for synchronization msgid "mouse sync" msgstr "" -#: js/EnsembleBlocks.js:832 +#: js/blocks/EnsembleBlocks.js:832 msgid "The Mouse sync block aligns the beat count between mice." msgstr "" -#: js/EnsembleBlocks.js:844 +#: js/blocks/EnsembleBlocks.js:844 #.TRANS: sync is short for synchronization msgid "turtle sync" msgstr "" -#: js/EnsembleBlocks.js:846 +#: js/blocks/EnsembleBlocks.js:846 msgid "The Turtle sync block aligns the beat count between turtles." msgstr "" -#: js/EnsembleBlocks.js:887 +#: js/blocks/EnsembleBlocks.js:887 msgid "The Found mouse block will return true if the specified mouse can be found." msgstr "" -#: js/EnsembleBlocks.js:893 +#: js/blocks/EnsembleBlocks.js:893 msgid "found mouse" msgstr "" -#: js/EnsembleBlocks.js:903 +#: js/blocks/EnsembleBlocks.js:903 msgid "The Found turtle block will return true if the specified turtle can be found." msgstr "" -#: js/EnsembleBlocks.js:909 +#: js/blocks/EnsembleBlocks.js:909 msgid "found turtle" msgstr "" -#: js/EnsembleBlocks.js:932 +#: js/blocks/EnsembleBlocks.js:932 msgid "new mouse" msgstr "" -#: js/EnsembleBlocks.js:934 +#: js/blocks/EnsembleBlocks.js:934 msgid "The New mouse block will create a new mouse." msgstr "" -#: js/EnsembleBlocks.js:945 +#: js/blocks/EnsembleBlocks.js:945 msgid "new turtle" msgstr "" -#: js/EnsembleBlocks.js:947 +#: js/blocks/EnsembleBlocks.js:947 msgid "The New turtle block will create a new turtle." msgstr "" -#: js/EnsembleBlocks.js:1011 +#: js/blocks/EnsembleBlocks.js:1011 msgid "set mouse color" msgstr "" -#: js/EnsembleBlocks.js:1014 +#: js/blocks/EnsembleBlocks.js:1014 msgid "The Set-mouse-color block is used to set the color of a mouse." msgstr "" -#: js/EnsembleBlocks.js:1020 +#: js/blocks/EnsembleBlocks.js:1020 msgid "set turtle color" msgstr "" -#: js/EnsembleBlocks.js:1023 +#: js/blocks/EnsembleBlocks.js:1023 msgid "The Set-turtle-color block is used to set the color of a turtle." msgstr "" -#: js/EnsembleBlocks.js:1083 +#: js/blocks/EnsembleBlocks.js:1083 msgid "The Mouse-name block returns the name of a mouse." msgstr "" -#: js/EnsembleBlocks.js:1092 +#: js/blocks/EnsembleBlocks.js:1092 msgid "The Turtle-name block returns the name of a turtle." msgstr "" -#: js/EnsembleBlocks.js:1115 +#: js/blocks/EnsembleBlocks.js:1115 msgid "mouse count" msgstr "" -#: js/EnsembleBlocks.js:1118 +#: js/blocks/EnsembleBlocks.js:1118 msgid "The Mouse-count block returns the number of mice." msgstr "" -#: js/EnsembleBlocks.js:1124 +#: js/blocks/EnsembleBlocks.js:1124 msgid "turtle count" msgstr "" -#: js/EnsembleBlocks.js:1127 +#: js/blocks/EnsembleBlocks.js:1127 msgid "The Turtle-count block returns the number of turtles." msgstr "" -#: js/EnsembleBlocks.js:1149 +#: js/blocks/EnsembleBlocks.js:1149 msgid "nth mouse name" msgstr "" -#: js/EnsembleBlocks.js:1152 +#: js/blocks/EnsembleBlocks.js:1152 msgid "The Nth-Mouse name block returns the name of the nth mouse." msgstr "" -#: js/EnsembleBlocks.js:1158 +#: js/blocks/EnsembleBlocks.js:1158 msgid "nth turtle name" msgstr "" -#: js/EnsembleBlocks.js:1161 +#: js/blocks/EnsembleBlocks.js:1161 msgid "The Nth-Turtle name block returns the name of the nth turtle." msgstr "" -#: js/EnsembleBlocks.js:1205 -#: js/EnsembleBlocks.js:1265 +#: js/blocks/EnsembleBlocks.js:1205 +#: js/blocks/EnsembleBlocks.js:1265 msgid "set name" msgstr "" -#: js/EnsembleBlocks.js:1214 -#: js/EnsembleBlocks.js:1221 +#: js/blocks/EnsembleBlocks.js:1214 +#: js/blocks/EnsembleBlocks.js:1221 msgid "source" msgstr "اللغة المصدر" -#: js/EnsembleBlocks.js:1214 -#: js/EnsembleBlocks.js:1221 +#: js/blocks/EnsembleBlocks.js:1214 +#: js/blocks/EnsembleBlocks.js:1221 msgid "target" msgstr "اللغة الهدف" -#: js/EnsembleBlocks.js:1271 +#: js/blocks/EnsembleBlocks.js:1271 msgid "The Set-name block is used to name a mouse." msgstr "" -#: js/EnsembleBlocks.js:1284 +#: js/blocks/EnsembleBlocks.js:1284 msgid "The Set-name block is used to name a turtle." msgstr "" -#: js/BooleanBlocks.js:44 -msgid "The Not block is the logical not operator." -msgstr "" - -#: js/BooleanBlocks.js:62 -msgid "not" -msgstr "ليس" - -#: js/BooleanBlocks.js:134 -msgid "The And block is the logical and operator." -msgstr "" - -#: js/BooleanBlocks.js:152 -msgid "and" -msgstr "و" - -#: js/BooleanBlocks.js:218 -msgid "The Or block is the logical or operator." -msgstr "" - -#: js/BooleanBlocks.js:236 -msgid "or" -msgstr "أو" - -#: js/BooleanBlocks.js:302 -msgid "The XOR block is the logical XOR operator." -msgstr "" - -#: js/BooleanBlocks.js:320 -msgid "xor" -msgstr "" - -#: js/BooleanBlocks.js:808 -msgid "The Equal block returns True if the two numbers are equal." -msgstr "" - -#: js/BooleanBlocks.js:909 -msgid "The Not-equal-to block returns True if the two numbers are not equal to each other." -msgstr "" - -#: js/BooleanBlocks.js:1008 -msgid "The Boolean block is used to specify true or false." -msgstr "" - -#: js/MediaBlocks.js:35 -#.TRANS: right side of the screen -msgid "right (screen)" -msgstr "" - -#: js/MediaBlocks.js:45 -#: js/MediaBlocks.js:56 -msgid "The Right block returns the position of the right of the canvas." -msgstr "" - -#: js/MediaBlocks.js:97 -#.TRANS: left side of the screen -msgid "left (screen)" -msgstr "" - -#: js/MediaBlocks.js:107 -#: js/MediaBlocks.js:118 -msgid "The Left block returns the position of the left of the canvas." -msgstr "" - -#: js/MediaBlocks.js:158 -msgid "top (screen)" -msgstr "" - -#: js/MediaBlocks.js:168 -#: js/MediaBlocks.js:179 -msgid "The Top block returns the position of the top of the canvas." -msgstr "" - -#: js/MediaBlocks.js:219 -msgid "bottom (screen)" +#: js/blocks/ExtrasBlocks.js:33 +msgid "fraction" msgstr "" -#: js/MediaBlocks.js:229 -#: js/MediaBlocks.js:240 -msgid "The Bottom block returns the position of the bottom of the canvas." +#: js/blocks/ExtrasBlocks.js:36 +msgid "Convert a float to a fraction" msgstr "" -#: js/MediaBlocks.js:282 -msgid "width" +#: js/blocks/ExtrasBlocks.js:93 +msgid "save as ABC" msgstr "" -#: js/MediaBlocks.js:291 -msgid "The Width block returns the width of the canvas." -msgstr "" +#: js/blocks/ExtrasBlocks.js:96 +#: js/blocks/ExtrasBlocks.js:132 +#: js/blocks/ExtrasBlocks.js:168 +msgid "title" +msgstr "عنوان المشروع" -#: js/MediaBlocks.js:325 -msgid "height" +#: js/blocks/ExtrasBlocks.js:129 +msgid "save as Lilypond" msgstr "" -#: js/MediaBlocks.js:334 -msgid "The Height block returns the height of the canvas." +#: js/blocks/ExtrasBlocks.js:165 +msgid "save as SVG" msgstr "" -#: js/MediaBlocks.js:369 -#.TRANS: stops playback of an audio recording -msgid "stop play" -msgstr "أوقف العرض" - -#: js/MediaBlocks.js:404 -#.TRANS: Erases the images and text -msgid "erase media" -msgstr "" +#: js/blocks/ExtrasBlocks.js:216 +msgid "no background" +msgstr "بدون خلفية" -#: js/MediaBlocks.js:409 -msgid "The Erase Media block erases text and images." +#: js/blocks/ExtrasBlocks.js:219 +msgid "The No background block eliminates the background from the saved SVG output." msgstr "" -#: js/MediaBlocks.js:439 -#.TRANS: play an audio recording -msgid "play back" -msgstr "شغل" - -#: js/MediaBlocks.js:487 -msgid "speak" -msgstr "تحدّث" +#: js/blocks/ExtrasBlocks.js:247 +msgid "show blocks" +msgstr "أظهر اللبنات" -#: js/MediaBlocks.js:495 -msgid "The Speak block outputs to the text-to-speech synthesizer" +#: js/blocks/ExtrasBlocks.js:249 +msgid "The Show blocks block shows the blocks." msgstr "" -#: js/MediaBlocks.js:546 -msgid "camera" -msgstr "" +#: js/blocks/ExtrasBlocks.js:274 +msgid "hide blocks" +msgstr "قم بإخفاؤ اللبنات" -#: js/MediaBlocks.js:551 -msgid "The Camera block connects a webcam to the Show block." +#: js/blocks/ExtrasBlocks.js:276 +msgid "The Hide blocks block hides the blocks." msgstr "" -#: js/MediaBlocks.js:574 -msgid "video" +#: js/blocks/ExtrasBlocks.js:305 +#: js/blocks/ExtrasBlocks.js:338 +msgid "The Space block is used to add space between blocks." msgstr "" -#: js/MediaBlocks.js:579 -msgid "The Video block selects video for use with the Show block." -msgstr "" +#: js/blocks/ExtrasBlocks.js:376 +msgid "wait" +msgstr "انتظر" -#: js/MediaBlocks.js:607 -msgid "The Open file block opens a file for use with the Show block." +#: js/blocks/ExtrasBlocks.js:379 +msgid "The Wait block pauses the program for a specified number of seconds." msgstr "" -#: js/MediaBlocks.js:645 -msgid "stop media" -msgstr "أوقف العرض" +#: js/blocks/ExtrasBlocks.js:433 +#: plugins/facebook.rtp:30 +msgid "comment" +msgstr "تعليق" -#: js/MediaBlocks.js:650 -msgid "The Stop media block stops audio or video playback." -msgstr "" +#: js/blocks/ExtrasBlocks.js:469 +msgid "print" +msgstr "اطبع" -#: js/MediaBlocks.js:679 -#: js/PitchBlocks.js:1539 -#: js/phrasemaker.js:822 -#: js/musickeyboard.js:1654 -#.TRANS: a measure of frequency: one cycle per second -msgid "hertz" +#: js/blocks/ExtrasBlocks.js:476 +msgid "The Print block displays text at the top of the screen." msgstr "" -#: js/MediaBlocks.js:692 -msgid "duration (ms)" -msgstr "المدة الزمنية (بالميكرو ثانية)" - -#: js/MediaBlocks.js:728 -#.TRANS: translate a note into hertz, e.g., A4 -> 440HZ -msgid "note to frequency" -msgstr "النغمة إلى التردد" - -#: js/MediaBlocks.js:736 -msgid "The To frequency block converts a pitch name and octave to Hertz." +#: js/blocks/ExtrasBlocks.js:582 +msgid "display grid" msgstr "" -#: js/MediaBlocks.js:746 -#: js/PitchBlocks.js:656 -#: js/PitchBlocks.js:932 -#: js/PitchBlocks.js:1827 -#.TRANS: name2 is name as in name of pitch (JAPANESE ONLY) -msgid "name2" +#: js/blocks/ExtrasBlocks.js:587 +msgid "The Display Grid Block changes the grid type" msgstr "" -#: js/MediaBlocks.js:812 -msgid "The Avatar block is used to change the appearance of the mouse." -msgstr "" +#: js/blocks/ExtrasBlocks.js:689 +#: js/blocks/ExtrasBlocks.js:708 +#: js/blocks/ExtrasBlocks.js:731 +#: js/blocks/ExtrasBlocks.js:754 +#: js/blocks/ExtrasBlocks.js:772 +#: js/blocks/ExtrasBlocks.js:791 +#: js/blocks/ExtrasBlocks.js:810 +#: js/blocks/ExtrasBlocks.js:829 +msgid "unknown" +msgstr "المجهول" -#: js/MediaBlocks.js:819 -msgid "The Avatar block is used to change the appearance of the turtle." +#: js/blocks/FlowBlocks.js:41 +msgid "The Backward block runs code in reverse order (Musical retrograde)." msgstr "" -#: js/MediaBlocks.js:831 -#: js/MediaBlocks.js:891 -#.TRANS: a media object -msgid "size" -msgstr "الحجم" - -#: js/MediaBlocks.js:831 -msgid "image" -msgstr "الصورة" - -#: js/MediaBlocks.js:880 -msgid "The Show block is used to display text or images on the canvas." +#: js/blocks/FlowBlocks.js:48 +msgid "backward" msgstr "" -#: js/MediaBlocks.js:888 -#.TRANS: show1 is show as in display an image or text on the screen. -msgid "show1" +#: js/blocks/FlowBlocks.js:124 +msgid "The Duplicate block will run each block multiple times." msgstr "" -#: js/MediaBlocks.js:891 -msgid "obj" -msgstr "كينونة" - -#: js/MediaBlocks.js:938 -msgid "The Media block is used to import an image." +#: js/blocks/FlowBlocks.js:136 +msgid "duplicate" msgstr "" -#: js/MediaBlocks.js:973 -msgid "The Text block holds a text string." +#: js/blocks/FlowBlocks.js:334 +msgid "The Default block is used inside of a Switch to define the default action." msgstr "" -#: js/ProgramBlocks.js:33 -msgid "The Load-heap-from-app block loads the heap from a web page." +#: js/blocks/FlowBlocks.js:342 +msgid "default" msgstr "" -#: js/ProgramBlocks.js:44 -#.TRANS: load the heap contents from a URL -msgid "load heap from App" +#: js/blocks/FlowBlocks.js:361 +#: js/blocks/FlowBlocks.js:418 +msgid "The Case Block must be used inside of a Switch Block." msgstr "" -#: js/ProgramBlocks.js:95 -msgid "Error parsing JSON data:" +#: js/blocks/FlowBlocks.js:389 +msgid "The Case block is used inside of a Switch to define matches." msgstr "" -#: js/ProgramBlocks.js:100 -msgid "404: Page not found" +#: js/blocks/FlowBlocks.js:397 +msgid "case" msgstr "" -#: js/ProgramBlocks.js:133 -msgid "The Save-heap-to-app block saves the heap to a web page." +#: js/blocks/FlowBlocks.js:446 +msgid "The Switch block will run the code in the matching Case." msgstr "" -#: js/ProgramBlocks.js:144 -#.TRANS: save the heap contents to a URL -msgid "save heap to App" +#: js/blocks/FlowBlocks.js:454 +msgid "switch" msgstr "" -#: js/ProgramBlocks.js:189 -msgid "Cannot find a valid heap for" +#: js/blocks/FlowBlocks.js:595 +msgid "The Stop block will stop a loop" msgstr "" -#: js/ProgramBlocks.js:206 -msgid "The Load-heap block loads the heap from a file." +#: js/blocks/FlowBlocks.js:597 +msgid "Forever, Repeat, While, or Until." msgstr "" -#: js/ProgramBlocks.js:217 -#.TRANS: load the heap from a file -msgid "load heap" -msgstr "حمّل الكومة" +#: js/blocks/FlowBlocks.js:604 +#: js/widgets/timbre.js:417 +#: js/widgets/timbre.js:419 +#: js/widgets/musickeyboard.js:819 +#: js/widgets/musickeyboard.js:821 +#: js/widgets/phrasemaker.js:4202 +#: plugins/rodi.rtp:29 +#: plugins/rodi.rtp:73 +#: plugins/rodi.rtp:413 +msgid "stop" +msgstr "توقف" -#: js/ProgramBlocks.js:270 -msgid "The file you selected does not contain a valid heap." +#: js/blocks/FlowBlocks.js:653 +msgid "The Waitfor block will wait until the condition is true." msgstr "" -#: js/ProgramBlocks.js:275 -msgid "The loadHeap block needs a loadFile block." -msgstr "" +#: js/blocks/FlowBlocks.js:661 +msgid "wait for" +msgstr "انتظر" -#: js/ProgramBlocks.js:291 -msgid "The Set-heap block loads the heap." +#: js/blocks/FlowBlocks.js:732 +msgid "The Until block will repeat until the condition is true." msgstr "" -#: js/ProgramBlocks.js:299 -#: js/HeapBlocks.js:539 -#.TRANS: load the heap from a JSON encoding -msgid "set heap" -msgstr "حدد القيمة المدخلة إلى الكومة" +#: js/blocks/FlowBlocks.js:740 +msgid "until" +msgstr "حتى" -#: js/ProgramBlocks.js:340 -msgid "The block you selected does not contain a valid heap." +#: js/blocks/FlowBlocks.js:742 +#: js/blocks/FlowBlocks.js:822 +msgid "do2" msgstr "" -#: js/ProgramBlocks.js:343 -msgid "The Set heap block needs a heap." +#: js/blocks/FlowBlocks.js:812 +msgid "The While block will repeat while the condition is true." msgstr "" -#: js/ProgramBlocks.js:360 -msgid "The Load-dictionary block loads a dictionary from a file." -msgstr "" +#: js/blocks/FlowBlocks.js:820 +msgid "while" +msgstr "ريثما" -#: js/ProgramBlocks.js:372 -#.TRANS: load a dictionary from a file -msgid "load dictionary" +#: js/blocks/FlowBlocks.js:903 +#: js/blocks/FlowBlocks.js:968 +#: js/blocks/FlowBlocks.js:979 +msgid "In this example if the mouse button is pressed a snare drum will play." msgstr "" -#: js/ProgramBlocks.js:390 -#: js/ProgramBlocks.js:658 -#: js/ToneBlocks.js:1025 -msgid "file" -msgstr "" +#: js/blocks/FlowBlocks.js:925 +#: js/blocks/FlowBlocks.js:988 +msgid "if" +msgstr "إذا" -#: js/ProgramBlocks.js:396 -#: js/ProgramBlocks.js:501 -#: js/ProgramBlocks.js:664 -#: js/DictBlocks.js:80 -#: js/DictBlocks.js:145 -#: js/DictBlocks.js:216 -#: js/DictBlocks.js:290 -msgid "My Dictionary" -msgstr "" +#: js/blocks/FlowBlocks.js:927 +#: js/blocks/FlowBlocks.js:990 +msgid "then" +msgstr "ثم" -#: js/ProgramBlocks.js:444 -msgid "The file you selected does not contain a valid dictionary." -msgstr "" +#: js/blocks/FlowBlocks.js:927 +msgid "else" +msgstr "أخرى" -#: js/ProgramBlocks.js:449 -msgid "The load dictionary block needs a load file block." +#: js/blocks/FlowBlocks.js:1025 +msgid "The Forever block will repeat the contained blocks forever." msgstr "" -#: js/ProgramBlocks.js:466 -msgid "The Set-dictionary block loads a dictionary." -msgstr "" +#: js/blocks/FlowBlocks.js:1037 +msgid "forever" +msgstr "إلى الأبد" -#: js/ProgramBlocks.js:477 -#.TRANS: load a dictionary from a JSON -msgid "set dictionary" +#: js/blocks/FlowBlocks.js:1073 +msgid "The Repeat block will repeat the contained blocks." msgstr "" -#: js/ProgramBlocks.js:546 -msgid "The block you selected does not contain a valid dictionary." +#: js/blocks/FlowBlocks.js:1075 +msgid "In this example the note will be played 4 times." msgstr "" -#: js/ProgramBlocks.js:550 -msgid "The set dictionary block needs a dictionary." +#: js/blocks/FlowBlocks.js:1083 +msgid "repeat" +msgstr "كرر" + +#: js/blocks/FlowBlocks.js:1123 +msgid "duplicate factor" msgstr "" -#: js/ProgramBlocks.js:567 -msgid "The Save-heap block saves the heap to a file." +#: js/blocks/HeapBlocks.js:49 +msgid "The Heap block returns the heap." msgstr "" -#: js/ProgramBlocks.js:578 -#.TRANS: save the heap to a file -msgid "save heap" -msgstr "قم بتخزين الكومة" +#: js/blocks/HeapBlocks.js:133 +msgid "show heap" +msgstr "أظهر مكونات الكومة" -#: js/ProgramBlocks.js:629 -msgid "The Save-dictionary block saves a dictionary to a file." +#: js/blocks/HeapBlocks.js:181 +msgid "The Heap-length block returns the length of the heap." msgstr "" -#: js/ProgramBlocks.js:640 -#.TRANS: save a dictionary to a file -msgid "save dictionary" -msgstr "" +#: js/blocks/HeapBlocks.js:195 +msgid "heap length" +msgstr "عدد المدخلات التي تكون في الكومة" -#: js/ProgramBlocks.js:720 -msgid "The Open palette block opens a palette." +#: js/blocks/HeapBlocks.js:254 +msgid "The Heap-empty? block returns true if the heap is empty." msgstr "" -#: js/ProgramBlocks.js:727 -msgid "open palette" -msgstr "" +#: js/blocks/HeapBlocks.js:268 +#.TRANS: Is the heap empty? +msgid "heap empty?" +msgstr "هل الكومة فارغة؟" -#: js/ProgramBlocks.js:785 -msgid "The Delete block block removes a block." +#: js/blocks/HeapBlocks.js:317 +msgid "The Empty-heap block empties the heap." msgstr "" -#: js/ProgramBlocks.js:797 -#.TRANS: Move this block to the trash. -msgid "delete block" -msgstr "" +#: js/blocks/HeapBlocks.js:327 +#: js/blocks/HeapBlocks.js:647 +#.TRANS: empty the heap +msgid "empty heap" +msgstr "قم بتفريغ الكومة" -#: js/ProgramBlocks.js:861 -msgid "The Move block block moves a block." +#: js/blocks/HeapBlocks.js:371 +msgid "The Reverse-heap block reverses the order of the heap." msgstr "" -#: js/ProgramBlocks.js:869 -#.TRANS: Move the position of a block on the screen. -msgid "move block" +#: js/blocks/HeapBlocks.js:384 +#.TRANS: reverse the order of the heap +msgid "reverse heap" msgstr "" -#: js/ProgramBlocks.js:881 -#: js/ProgramBlocks.js:1048 -msgid "block number" +#: js/blocks/HeapBlocks.js:428 +msgid "The Index-heap block returns a value in the heap at a specified location." msgstr "" -#: js/ProgramBlocks.js:935 -#.TRANS: Run program beginning at this block. -msgid "run block" -msgstr "" +#: js/blocks/HeapBlocks.js:443 +#.TRANS: retrieve a value from the heap at index position in the heap +msgid "index heap" +msgstr "قيمة (مؤشر) الكومة" -#: js/ProgramBlocks.js:1025 -msgid "The Dock block block connections two blocks." +#: js/blocks/HeapBlocks.js:523 +msgid "The Set-heap entry block sets a value in he heap at the specified location." msgstr "" -#: js/ProgramBlocks.js:1036 -#.TRANS: We can connect a block to another block. -msgid "connect blocks" -msgstr "" +#: js/blocks/HeapBlocks.js:539 +#: js/blocks/ProgramBlocks.js:299 +#.TRANS: load the heap from a JSON encoding +msgid "set heap" +msgstr "حدد القيمة المدخلة إلى الكومة" -#: js/ProgramBlocks.js:1048 -msgid "target block" +#: js/blocks/HeapBlocks.js:619 +msgid "The Pop block removes the value at the top of the heap." msgstr "" -#: js/ProgramBlocks.js:1048 -msgid "connection number" +#: js/blocks/HeapBlocks.js:633 +#.TRANS: pop a value off the top of the heap +msgid "pop" +msgstr "أظهر" + +#: js/blocks/HeapBlocks.js:680 +msgid "The Push block adds a value to the top of the heap." msgstr "" -#: js/ProgramBlocks.js:1140 -msgid "The Make block block creates a new block." +#: js/blocks/HeapBlocks.js:696 +#.TRANS: push a value onto the top of the heap +msgid "push" +msgstr "ادفع قيمة إلى أعلى الكومة" + +#: js/blocks/IntervalsBlocks.js:45 +msgid "set temperament" msgstr "" -#: js/ProgramBlocks.js:1152 -#.TRANS: Create a new block -msgid "make block" +#: js/blocks/IntervalsBlocks.js:63 +#: js/blocks/MediaBlocks.js:746 +#: js/blocks/PitchBlocks.js:657 +#: js/blocks/PitchBlocks.js:935 +#: js/blocks/PitchBlocks.js:974 +#: js/blocks/PitchBlocks.js:1007 +#: js/blocks/PitchBlocks.js:1194 +#: js/blocks/PitchBlocks.js:1717 +#: js/blocks/PitchBlocks.js:1758 +#: js/blocks/PitchBlocks.js:1866 +#: js/blocks/ToneBlocks.js:1025 +#: js/turtleactions/IntervalsActions.js:114 +#.TRANS: adjusts the shift up or down by one octave (twelve half-steps in the interval between two notes, one having twice or half the frequency in Hz of the other.) +msgid "octave" +msgstr "اوكتاف" + +#: js/blocks/IntervalsBlocks.js:99 +msgid "The Temperament name block is used to select a tuning method." msgstr "" -#: js/ProgramBlocks.js:1186 -#: js/ProgramBlocks.js:1227 -#: js/RhythmBlocks.js:1128 -#: js/PitchBlocks.js:972 -#: js/PitchBlocks.js:1005 -#: js/temperament.js:340 -#: js/temperament.js:362 -#: js/temperament.js:372 -#: js/temperament.js:484 -#: js/status.js:190 -#: plugins/rodi.rtp:192 -#.TRANS: a musical note consisting of pitch and duration -msgid "note" -msgstr "ملاحظة" +#: js/blocks/IntervalsBlocks.js:161 +msgid "doubly" +msgstr "" -#: js/ProgramBlocks.js:1285 -msgid "Cannot find block" +#: js/blocks/IntervalsBlocks.js:166 +msgid "The Doubly block will double the size of an interval." msgstr "" -#: js/ProgramBlocks.js:1304 -#: js/ProgramBlocks.js:1313 -msgid "Warning: block argument type mismatch" +#: js/blocks/IntervalsBlocks.js:262 +msgid "interval number" msgstr "" -#: js/ProgramBlocks.js:1347 -msgid "The Open project block is used to open a project from a web page." +#: js/blocks/IntervalsBlocks.js:317 +msgid "current interval" msgstr "" -#: js/ProgramBlocks.js:1357 -msgid "open project" +#: js/blocks/IntervalsBlocks.js:387 +#.TRANS: measure the distance between two pitches in semi-tones +msgid "semi-tone interval measure" msgstr "" -#: js/ProgramBlocks.js:1410 -msgid "Please enter a valid URL." +#: js/blocks/IntervalsBlocks.js:454 +#: js/blocks/IntervalsBlocks.js:570 +msgid "You must use two pitch blocks when measuring an interval." msgstr "" -#: js/DrumBlocks.js:59 -msgid "The Noise name block is used to select a noise synthesizer." +#: js/blocks/IntervalsBlocks.js:496 +msgid "The Scalar interval block measures the distance between two notes in the current key and mode." msgstr "" -#: js/DrumBlocks.js:102 -msgid "The Drum name block is used to select a drum." +#: js/blocks/IntervalsBlocks.js:502 +#.TRANS: measure the distance between two pitches in steps of musical scale +msgid "scalar interval measure" msgstr "" -#: js/DrumBlocks.js:146 -msgid "The Effects name block is used to select a sound effect." +#: js/blocks/IntervalsBlocks.js:678 +msgid "In the figure, we add sol# to sol." msgstr "" -#: js/DrumBlocks.js:163 -msgid "noise" +#: js/blocks/IntervalsBlocks.js:684 +#: js/blocks/OrnamentBlocks.js:220 +#.TRANS: calculate a relative step between notes based on semi-tones +msgid "semi-tone interval" msgstr "" -#: js/DrumBlocks.js:177 -msgid "The Play noise block will generate white, pink, or brown noise." +#: js/blocks/IntervalsBlocks.js:733 +msgid "The output of the example is: do, mi, sol, sol, ti, mi" msgstr "" -#: js/DrumBlocks.js:191 -#: js/musicutils.js:752 -#: js/synthutils.js:47 -#.TRANS: white noise synthesizer -msgid "white noise" +#: js/blocks/IntervalsBlocks.js:740 +#: js/blocks/WidgetBlocks.js:768 +msgid "arpeggio" msgstr "" -#: js/DrumBlocks.js:326 -msgid "Replace every instance of a pitch with a drum sound." +#: js/blocks/IntervalsBlocks.js:931 +msgid "The Chord block calculates common chords." msgstr "" -#: js/DrumBlocks.js:337 -#.TRANS: map a pitch to a drum sound -msgid "map pitch to drum" +#: js/blocks/IntervalsBlocks.js:933 +msgid "In the figure, we generate a C-major chord." msgstr "" -#: js/DrumBlocks.js:404 -msgid "In the example above, a kick drum sound will be played instead of sol." +#: js/blocks/IntervalsBlocks.js:938 +msgid "chord" msgstr "" -#: js/DrumBlocks.js:416 -#.TRANS: set the current drum sound for playback -msgid "set drum" +#: js/blocks/IntervalsBlocks.js:990 +msgid "The Ratio Interval block calculates an interval based on a ratio." msgstr "" -#: js/DrumBlocks.js:460 -msgid "sound effect" +#: js/blocks/IntervalsBlocks.js:995 +msgid "ratio interval" msgstr "" -#: js/DrumBlocks.js:498 -msgid "You can use multiple Drum blocks within a Note block." +#: js/blocks/IntervalsBlocks.js:1064 +msgid "In the figure, we add la to sol." msgstr "" -#: js/RhythmBlocks.js:182 -#: js/RhythmBlocks.js:1086 -#: js/RhythmBlocks.js:1162 -msgid "Note value must be greater than 0." +#: js/blocks/IntervalsBlocks.js:1120 +#.TRANS: define a custom mode +msgid "define mode" msgstr "" -#: js/RhythmBlocks.js:215 -#: js/RhythmBlocks.js:278 -#: js/RhythmBlocks.js:350 -#.TRANS: swing is a rhythmic variation that emphasises the offbeat -msgid "swing" +#: js/blocks/IntervalsBlocks.js:1173 +msgid "movable Do" msgstr "" -#: js/RhythmBlocks.js:355 -#.TRANS: the amount to shift to the offbeat note -msgid "swing value" +#: js/blocks/IntervalsBlocks.js:1224 +#.TRANS: mode length is the number of notes in the mode, e.g., 7 for major and minor scales; 12 for chromatic scales +msgid "mode length" msgstr "" -#: js/RhythmBlocks.js:419 -msgid "The Skip notes block will cause notes to be skipped." +#: js/blocks/IntervalsBlocks.js:1233 +msgid "The Mode length block is the number of notes in the current scale." msgstr "" -#: js/RhythmBlocks.js:427 -#.TRANS: substitute rests on notes being skipped -msgid "skip notes" +#: js/blocks/IntervalsBlocks.js:1235 +msgid "Most Western scales have 7 notes." msgstr "" -#: js/RhythmBlocks.js:489 -#.TRANS: speed up note duration by some factor, e.g. convert 1/4 to 1/8 notes by using a factor of 2 -msgid "multiply note value" +#: js/blocks/IntervalsBlocks.js:1284 +#.TRANS: the mode in music is 'major', 'minor', etc. +msgid "current mode" msgstr "" -#: js/RhythmBlocks.js:542 -msgid "The Tie block works on pairs of notes, combining them into one note." +#: js/blocks/IntervalsBlocks.js:1337 +#.TRANS: the key is a group of pitches with which a music composition is created +msgid "current key" msgstr "" -#: js/RhythmBlocks.js:550 -#.TRANS: tie notes together into one longer note -msgid "tie" +#: js/blocks/IntervalsBlocks.js:1389 +#: js/blocks/IntervalsBlocks.js:1434 +#.TRANS: set the key and mode, e.g. C Major +msgid "set key" msgstr "" -#: js/RhythmBlocks.js:591 -#: js/RhythmBlocks.js:671 -#.TRANS: a dotted note is played for 1.5x its value, e.g., 1/8. --> 3/16 -msgid "dot" +#: js/blocks/IntervalsBlocks.js:1443 +#: js/blocks/IntervalsBlocks.js:1449 +msgid "The Set key block is used to set the key and mode," msgstr "" -#: js/RhythmBlocks.js:619 -#: js/RhythmActions.js:221 -msgid "An argument of -1 results in a note value of 0." +#: js/blocks/IntervalsBlocks.js:1449 +msgid "eg C Major" msgstr "" -#: js/RhythmBlocks.js:661 -msgid "The Dot block extends the duration of a note by 50%." +#: js/blocks/MediaBlocks.js:35 +#.TRANS: right side of the screen +msgid "right (screen)" msgstr "" -#: js/RhythmBlocks.js:663 -msgid "Eg a dotted quarter note will play for 3/8 (1/4 + 1/8) of a beat." +#: js/blocks/MediaBlocks.js:45 +#: js/blocks/MediaBlocks.js:56 +msgid "The Right block returns the position of the right of the canvas." msgstr "" -#: js/RhythmBlocks.js:765 -#.TRANS: Japanese only: note value block for drum -msgid "note value drum" +#: js/blocks/MediaBlocks.js:97 +#.TRANS: left side of the screen +msgid "left (screen)" msgstr "" -#: js/RhythmBlocks.js:829 -msgid "392 hertz" +#: js/blocks/MediaBlocks.js:107 +#: js/blocks/MediaBlocks.js:118 +msgid "The Left block returns the position of the left of the canvas." msgstr "" -#: js/RhythmBlocks.js:1119 -msgid "The Note block is a container for one or more Pitch blocks." +#: js/blocks/MediaBlocks.js:158 +msgid "top (screen)" msgstr "" -#: js/RhythmBlocks.js:1121 -msgid "The Note block specifies the duration (note value) of its contents." +#: js/blocks/MediaBlocks.js:168 +#: js/blocks/MediaBlocks.js:179 +msgid "The Top block returns the position of the top of the canvas." msgstr "" -#: js/RhythmBlocks.js:1130 -msgid "value2" +#: js/blocks/MediaBlocks.js:219 +msgid "bottom (screen)" msgstr "" -#: js/RhythmBlocks.js:1200 -msgid "define frequency" +#: js/blocks/MediaBlocks.js:229 +#: js/blocks/MediaBlocks.js:240 +msgid "The Bottom block returns the position of the bottom of the canvas." msgstr "" -#: js/RhythmBlocks.js:1218 -#: js/temperament.js:650 -#: js/temperament.js:1421 -msgid "octave space" +#: js/blocks/MediaBlocks.js:282 +msgid "width" msgstr "" -#: js/NumberBlocks.js:28 -msgid "The Int block returns an integer." +#: js/blocks/MediaBlocks.js:291 +msgid "The Width block returns the width of the canvas." msgstr "" -#: js/NumberBlocks.js:34 -msgid "int" +#: js/blocks/MediaBlocks.js:325 +msgid "height" msgstr "" -#: js/NumberBlocks.js:73 -msgid "The Mod block returns the remainder from a division." +#: js/blocks/MediaBlocks.js:334 +msgid "The Height block returns the height of the canvas." msgstr "" -#: js/NumberBlocks.js:79 -msgid "mod" -msgstr "الشكل النمطي" +#: js/blocks/MediaBlocks.js:369 +#.TRANS: stops playback of an audio recording +msgid "stop play" +msgstr "أوقف العرض" -#: js/NumberBlocks.js:123 -msgid "The Power block calculates a power function." +#: js/blocks/MediaBlocks.js:404 +#.TRANS: Erases the images and text +msgid "erase media" msgstr "" -#: js/NumberBlocks.js:178 -msgid "The Sqrt block returns the square root." +#: js/blocks/MediaBlocks.js:409 +msgid "The Erase Media block erases text and images." msgstr "" -#: js/NumberBlocks.js:184 -msgid "sqrt" -msgstr "الجذر التربيعي" +#: js/blocks/MediaBlocks.js:439 +#.TRANS: play an audio recording +msgid "play back" +msgstr "شغل" -#: js/NumberBlocks.js:230 -msgid "The Abs block returns the absolute value." -msgstr "" +#: js/blocks/MediaBlocks.js:487 +msgid "speak" +msgstr "تحدّث" -#: js/NumberBlocks.js:236 -msgid "abs" +#: js/blocks/MediaBlocks.js:495 +msgid "The Speak block outputs to the text-to-speech synthesizer" msgstr "" -#: js/NumberBlocks.js:277 -msgid "The Distance block returns the distance between two points. For example, between the mouse and the center of the screen." +#: js/blocks/MediaBlocks.js:546 +msgid "camera" msgstr "" -#: js/NumberBlocks.js:283 -#: plugins/rodi.rtp:310 -msgid "distance" +#: js/blocks/MediaBlocks.js:551 +msgid "The Camera block connects a webcam to the Show block." msgstr "" -#: js/NumberBlocks.js:343 -msgid "The Divide block is used to divide." +#: js/blocks/MediaBlocks.js:574 +msgid "video" msgstr "" -#: js/NumberBlocks.js:411 -msgid "The Multiply block is used to multiply." +#: js/blocks/MediaBlocks.js:579 +msgid "The Video block selects video for use with the Show block." msgstr "" -#: js/NumberBlocks.js:554 -msgid "The Minus block is used to subtract." +#: js/blocks/MediaBlocks.js:607 +msgid "The Open file block opens a file for use with the Show block." msgstr "" -#: js/NumberBlocks.js:647 -msgid "The Plus block is used to add." +#: js/blocks/MediaBlocks.js:645 +msgid "stop media" +msgstr "أوقف العرض" + +#: js/blocks/MediaBlocks.js:650 +msgid "The Stop media block stops audio or video playback." msgstr "" -#: js/NumberBlocks.js:773 -msgid "The One-of block returns one of two choices." +#: js/blocks/MediaBlocks.js:679 +#: js/blocks/PitchBlocks.js:1577 +#: js/widgets/musickeyboard.js:1936 +#: js/widgets/phrasemaker.js:1037 +#.TRANS: a measure of frequency: one cycle per second +msgid "hertz" msgstr "" -#: js/NumberBlocks.js:780 -#: js/PitchBlocks.js:616 -msgid "one of" -msgstr "أحد" +#: js/blocks/MediaBlocks.js:692 +#: js/blocks/WidgetBlocks.js:182 +#: js/widgets/temperament.js:506 +#: js/widgets/temperament.js:546 +#: js/widgets/temperament.js:610 +#: js/widgets/temperament.js:618 +#: js/widgets/temperament.js:1505 +#: js/widgets/timbre.js:1842 +msgid "frequency" +msgstr "التواتر" -#: js/NumberBlocks.js:782 -msgid "this" -msgstr "هذا" +#: js/blocks/MediaBlocks.js:692 +msgid "duration (ms)" +msgstr "المدة الزمنية (بالميكرو ثانية)" -#: js/NumberBlocks.js:782 -msgid "that" -msgstr "ذلك" +#: js/blocks/MediaBlocks.js:728 +#.TRANS: translate a note into hertz, e.g., A4 -> 440HZ +msgid "note to frequency" +msgstr "النغمة إلى التردد" -#: js/NumberBlocks.js:837 -msgid "The Random block returns a random number." +#: js/blocks/MediaBlocks.js:736 +msgid "The To frequency block converts a pitch name and octave to Hertz." msgstr "" -#: js/NumberBlocks.js:844 -msgid "random" -msgstr "عشوائي" - -#: js/NumberBlocks.js:846 -msgid "min" -msgstr "الأدنى" - -#: js/NumberBlocks.js:846 -msgid "max" -msgstr "القصوى" - -#: js/NumberBlocks.js:910 -msgid "The Number block holds a number." +#: js/blocks/MediaBlocks.js:746 +#: js/blocks/PitchBlocks.js:656 +#: js/blocks/PitchBlocks.js:934 +#: js/blocks/PitchBlocks.js:1866 +#.TRANS: name2 is name as in name of pitch (JAPANESE ONLY) +msgid "name2" msgstr "" -#: js/BoxesBlocks.js:53 -#: js/BoxesBlocks.js:59 -msgid "The Add-to block is used to add to the value stored in a box." +#: js/blocks/MediaBlocks.js:812 +msgid "The Avatar block is used to change the appearance of the mouse." msgstr "" -#: js/BoxesBlocks.js:61 -msgid "It can also be used with other blocks such as Color and Pen size." +#: js/blocks/MediaBlocks.js:819 +msgid "The Avatar block is used to change the appearance of the turtle." msgstr "" -#: js/BoxesBlocks.js:73 -msgid "add" -msgstr "أضف" +#: js/blocks/MediaBlocks.js:831 +#: js/blocks/MediaBlocks.js:891 +#.TRANS: a media object +msgid "size" +msgstr "الحجم" -#: js/BoxesBlocks.js:75 -#: js/temperament.js:716 -msgid "to" -msgstr "إلى" +#: js/blocks/MediaBlocks.js:831 +msgid "image" +msgstr "الصورة" -#: js/BoxesBlocks.js:75 -#: js/BoxesBlocks.js:595 -#: js/HeapBlocks.js:544 -msgid "value1" +#: js/blocks/MediaBlocks.js:880 +msgid "The Show block is used to display text or images on the canvas." msgstr "" -#: js/BoxesBlocks.js:118 -msgid "Block does not support incrementing." +#: js/blocks/MediaBlocks.js:888 +#.TRANS: show1 is show as in display an image or text on the screen. +msgid "show1" msgstr "" -#: js/BoxesBlocks.js:152 -msgid "The Add-1-to block adds one to the value stored in a box." +#: js/blocks/MediaBlocks.js:891 +msgid "obj" +msgstr "كينونة" + +#: js/blocks/MediaBlocks.js:938 +msgid "The Media block is used to import an image." msgstr "" -#: js/BoxesBlocks.js:163 -msgid "add 1 to" -msgstr "أضف 1 إلى" +#: js/blocks/MediaBlocks.js:973 +msgid "The Text block holds a text string." +msgstr "" -#: js/BoxesBlocks.js:211 -msgid "The Subtract-1-from block subtracts one from the value stored in a box." +#: js/blocks/MeterBlocks.js:34 +#.TRANS: musical meter (time signature), e.g., 4:4 +msgid "current meter" msgstr "" -#: js/BoxesBlocks.js:222 -msgid "subtract 1 from" +#: js/blocks/MeterBlocks.js:85 +#.TRANS: number of beats per minute +msgid "beat factor" msgstr "" -#: js/BoxesBlocks.js:270 -#: js/BoxesBlocks.js:387 -msgid "The Box block returns the value stored in a box." +#: js/blocks/MeterBlocks.js:161 +msgid "The Beats per minute block returns the current beats per minute." msgstr "" -#: js/BoxesBlocks.js:500 -#: js/BoxesBlocks.js:576 -msgid "The Store in block will store a value in a box." +#: js/blocks/MeterBlocks.js:169 +#: js/widgets/status.js:152 +#.TRANS: number of beats played per minute +msgid "beats per minute2" msgstr "" -#: js/BoxesBlocks.js:652 -msgid "The Box2 block returns the value stored in Box2." +#: js/blocks/MeterBlocks.js:169 +#: js/blocks/MeterBlocks.js:1056 +#: js/blocks/MeterBlocks.js:1133 +#: js/blocks/MeterBlocks.js:1211 +#.TRANS: sets tempo by defining a beat and beats per minute +msgid "beats per minute" msgstr "" -#: js/BoxesBlocks.js:703 -msgid "The Store in Box2 block is used to store a value in Box2." +#: js/blocks/MeterBlocks.js:233 +#.TRANS: count of current musical measure in meter +msgid "measure count" msgstr "" -#: js/BoxesBlocks.js:715 -msgid "store in box2" +#: js/blocks/MeterBlocks.js:241 +msgid "The Measure count block returns the current measure." msgstr "" -#: js/BoxesBlocks.js:761 -msgid "The Box1 block returns the value stored in Box1." +#: js/blocks/MeterBlocks.js:290 +#.TRANS: count of current beat in the meter +msgid "beat count" msgstr "" -#: js/BoxesBlocks.js:812 -msgid "The Store in Box1 block is used to store a value in Box1." +#: js/blocks/MeterBlocks.js:300 +#: js/blocks/MeterBlocks.js:311 +#: js/blocks/MeterBlocks.js:565 +#: js/blocks/MeterBlocks.js:576 +msgid "The Beat count block is the number of the current beat," msgstr "" -#: js/BoxesBlocks.js:826 -msgid "store in box1" +#: js/blocks/MeterBlocks.js:313 +#: js/blocks/MeterBlocks.js:578 +msgid "eg 1, 2, 3, or 4." msgstr "" -#: js/HeapBlocks.js:49 -msgid "The Heap block returns the heap." +#: js/blocks/MeterBlocks.js:368 +#.TRANS: count the number of notes +msgid "sum note values" msgstr "" -#: js/HeapBlocks.js:133 -msgid "show heap" -msgstr "أظهر مكونات الكومة" +#: js/blocks/MeterBlocks.js:376 +#: js/blocks/MeterBlocks.js:440 +msgid "The Note counter block can be used to count the number of contained notes." +msgstr "" -#: js/HeapBlocks.js:181 -msgid "The Heap-length block returns the length of the heap." +#: js/blocks/MeterBlocks.js:432 +#.TRANS: count the number of notes +msgid "note counter" msgstr "" -#: js/HeapBlocks.js:195 -msgid "heap length" -msgstr "عدد المدخلات التي تكون في الكومة" +#: js/blocks/MeterBlocks.js:496 +#.TRANS: number of whole notes that have been played +msgid "whole notes played" +msgstr "" -#: js/HeapBlocks.js:254 -msgid "The Heap-empty? block returns true if the heap is empty." +#: js/blocks/MeterBlocks.js:505 +msgid "The Whole notes played block returns the total number of whole notes played." msgstr "" -#: js/HeapBlocks.js:268 -#.TRANS: Is the heap empty? -msgid "heap empty?" -msgstr "هل الكومة فارغة؟" +#: js/blocks/MeterBlocks.js:555 +#: js/turtleactions/DictActions.js:83 +#.TRANS: number of notes that have been played +msgid "notes played" +msgstr "" -#: js/HeapBlocks.js:317 -msgid "The Empty-heap block empties the heap." +#: js/blocks/MeterBlocks.js:653 +msgid "The No clock block decouples the notes from the master clock." msgstr "" -#: js/HeapBlocks.js:327 -#: js/HeapBlocks.js:647 -#.TRANS: empty the heap -msgid "empty heap" -msgstr "قم بتفريغ الكومة" +#: js/blocks/MeterBlocks.js:661 +#.TRANS: don't lock notes to master clock +msgid "no clock" +msgstr "" -#: js/HeapBlocks.js:371 -msgid "The Reverse-heap block reverses the order of the heap." +#: js/blocks/MeterBlocks.js:700 +msgid "on weak beat do" msgstr "" -#: js/HeapBlocks.js:384 -#.TRANS: reverse the order of the heap -msgid "reverse heap" +#: js/blocks/MeterBlocks.js:705 +msgid "The On-weak-beat block lets you specify actions to take on weak (off) beats." msgstr "" -#: js/HeapBlocks.js:428 -msgid "The Index-heap block returns a value in the heap at a specified location." +#: js/blocks/MeterBlocks.js:750 +msgid "on strong beat" msgstr "" -#: js/HeapBlocks.js:443 -#.TRANS: retrieve a value from the heap at index position in the heap -msgid "index heap" -msgstr "قيمة (مؤشر) الكومة" +#: js/blocks/MeterBlocks.js:758 +msgid "The On-strong-beat block lets you specify actions to take on specified beats." +msgstr "" -#: js/HeapBlocks.js:523 -msgid "The Set-heap entry block sets a value in he heap at the specified location." +#: js/blocks/MeterBlocks.js:769 +msgid "beat" msgstr "" -#: js/HeapBlocks.js:619 -msgid "The Pop block removes the value at the top of the heap." +#: js/blocks/MeterBlocks.js:813 +msgid "on every beat do" msgstr "" -#: js/HeapBlocks.js:633 -#.TRANS: pop a value off the top of the heap -msgid "pop" -msgstr "أظهر" +#: js/blocks/MeterBlocks.js:821 +msgid "The On-every-beat block lets you specify actions to take on every beat." +msgstr "" -#: js/HeapBlocks.js:680 -msgid "The Push block adds a value to the top of the heap." +#: js/blocks/MeterBlocks.js:874 +msgid "on every note do" msgstr "" -#: js/HeapBlocks.js:696 -#.TRANS: push a value onto the top of the heap -msgid "push" -msgstr "ادفع قيمة إلى أعلى الكومة" +#: js/blocks/MeterBlocks.js:882 +msgid "The On-every-note block lets you specify actions to take on every note." +msgstr "" -#: js/FlowBlocks.js:41 -msgid "The Backward block runs code in reverse order (Musical retrograde)." +#: js/blocks/MeterBlocks.js:928 +#: js/blocks/MeterBlocks.js:999 +#.TRANS: sets tempo by defining a beat and beats per minute +msgid "master beats per minute" msgstr "" -#: js/FlowBlocks.js:48 -msgid "backward" +#: js/blocks/MeterBlocks.js:952 +#: js/blocks/MeterBlocks.js:1078 +#: js/blocks/MeterBlocks.js:1135 +msgid "bpm" msgstr "" -#: js/FlowBlocks.js:124 -msgid "The Duplicate block will run each block multiple times." +#: js/blocks/MeterBlocks.js:952 +#: js/blocks/MeterBlocks.js:1078 +#: js/blocks/MeterBlocks.js:1135 +msgid "beat value" msgstr "" -#: js/FlowBlocks.js:136 -msgid "duplicate" +#: js/blocks/MeterBlocks.js:1024 +#: js/blocks/MeterBlocks.js:1167 +#: js/blocks/MeterBlocks.js:1241 +msgid "Beats per minute must be > 30." msgstr "" -#: js/FlowBlocks.js:334 -msgid "The Default block is used inside of a Switch to define the default action." +#: js/blocks/MeterBlocks.js:1027 +#: js/blocks/MeterBlocks.js:1170 +#: js/blocks/MeterBlocks.js:1244 +msgid "Maximum beats per minute is 1000." msgstr "" -#: js/FlowBlocks.js:342 -msgid "default" +#: js/blocks/MeterBlocks.js:1068 +msgid "The Beats per minute block sets the number of 1/4 notes per minute." msgstr "" -#: js/FlowBlocks.js:361 -#: js/FlowBlocks.js:418 -msgid "The Case Block must be used inside of a Switch Block." +#: js/blocks/MeterBlocks.js:1279 +#.TRANS: anacrusis +msgid "pickup" msgstr "" -#: js/FlowBlocks.js:389 -msgid "The Case block is used inside of a Switch to define matches." +#: js/blocks/MeterBlocks.js:1367 +msgid "number of beats" msgstr "" -#: js/FlowBlocks.js:397 -msgid "case" +#: js/blocks/NumberBlocks.js:28 +msgid "The Int block returns an integer." msgstr "" -#: js/FlowBlocks.js:446 -msgid "The Switch block will run the code in the matching Case." +#: js/blocks/NumberBlocks.js:34 +msgid "int" msgstr "" -#: js/FlowBlocks.js:454 -msgid "switch" +#: js/blocks/NumberBlocks.js:73 +msgid "The Mod block returns the remainder from a division." msgstr "" -#: js/FlowBlocks.js:595 -msgid "The Stop block will stop a loop" +#: js/blocks/NumberBlocks.js:79 +msgid "mod" +msgstr "الشكل النمطي" + +#: js/blocks/NumberBlocks.js:141 +msgid "The Power block calculates a power function." msgstr "" -#: js/FlowBlocks.js:597 -msgid "Forever, Repeat, While, or Until." +#: js/blocks/NumberBlocks.js:196 +msgid "The Sqrt block returns the square root." msgstr "" -#: js/FlowBlocks.js:604 -#: js/phrasemaker.js:3799 -#: js/musickeyboard.js:629 -#: js/musickeyboard.js:631 -#: js/timbre.js:417 -#: js/timbre.js:419 -#: plugins/rodi.rtp:29 -#: plugins/rodi.rtp:73 -#: plugins/rodi.rtp:413 -msgid "stop" -msgstr "توقف" +#: js/blocks/NumberBlocks.js:202 +msgid "sqrt" +msgstr "الجذر التربيعي" -#: js/FlowBlocks.js:653 -msgid "The Waitfor block will wait until the condition is true." +#: js/blocks/NumberBlocks.js:248 +msgid "The Abs block returns the absolute value." msgstr "" -#: js/FlowBlocks.js:661 -msgid "wait for" -msgstr "انتظر" - -#: js/FlowBlocks.js:732 -msgid "The Until block will repeat until the condition is true." +#: js/blocks/NumberBlocks.js:254 +msgid "abs" msgstr "" -#: js/FlowBlocks.js:740 -msgid "until" -msgstr "حتى" +#: js/blocks/NumberBlocks.js:295 +msgid "The Distance block returns the distance between two points. For example, between the mouse and the center of the screen." +msgstr "" -#: js/FlowBlocks.js:742 -#: js/FlowBlocks.js:822 -msgid "do2" +#: js/blocks/NumberBlocks.js:301 +#: plugins/rodi.rtp:310 +msgid "distance" msgstr "" -#: js/FlowBlocks.js:812 -msgid "The While block will repeat while the condition is true." +#: js/blocks/NumberBlocks.js:361 +msgid "The Divide block is used to divide." msgstr "" -#: js/FlowBlocks.js:820 -msgid "while" -msgstr "ريثما" +#: js/blocks/NumberBlocks.js:441 +msgid "The Multiply block is used to multiply." +msgstr "" -#: js/FlowBlocks.js:903 -#: js/FlowBlocks.js:968 -#: js/FlowBlocks.js:979 -msgid "In this example if the mouse button is pressed a snare drum will play." +#: js/blocks/NumberBlocks.js:612 +msgid "The Minus block is used to subtract." msgstr "" -#: js/FlowBlocks.js:925 -#: js/FlowBlocks.js:988 -msgid "if" -msgstr "إذا" +#: js/blocks/NumberBlocks.js:723 +msgid "The Plus block is used to add." +msgstr "" -#: js/FlowBlocks.js:927 -#: js/FlowBlocks.js:990 -msgid "then" -msgstr "ثم" +#: js/blocks/NumberBlocks.js:849 +msgid "The One-of block returns one of two choices." +msgstr "" -#: js/FlowBlocks.js:927 -msgid "else" -msgstr "أخرى" +#: js/blocks/NumberBlocks.js:856 +#: js/blocks/PitchBlocks.js:616 +msgid "one of" +msgstr "أحد" -#: js/FlowBlocks.js:1025 -msgid "The Forever block will repeat the contained blocks forever." -msgstr "" +#: js/blocks/NumberBlocks.js:858 +msgid "this" +msgstr "هذا" -#: js/FlowBlocks.js:1037 -msgid "forever" -msgstr "إلى الأبد" +#: js/blocks/NumberBlocks.js:858 +msgid "that" +msgstr "ذلك" -#: js/FlowBlocks.js:1073 -msgid "The Repeat block will repeat the contained blocks." +#: js/blocks/NumberBlocks.js:913 +msgid "The Random block returns a random number." msgstr "" -#: js/FlowBlocks.js:1075 -msgid "In this example the note will be played 4 times." -msgstr "" +#: js/blocks/NumberBlocks.js:920 +msgid "random" +msgstr "عشوائي" -#: js/FlowBlocks.js:1083 -msgid "repeat" -msgstr "كرر" +#: js/blocks/NumberBlocks.js:922 +msgid "min" +msgstr "الأدنى" -#: js/FlowBlocks.js:1123 -msgid "duplicate factor" -msgstr "" +#: js/blocks/NumberBlocks.js:922 +msgid "max" +msgstr "القصوى" -#: js/PitchBlocks.js:39 -#: js/musicutils.js:722 -#: js/musicutils.js:1117 -#: js/synthutils.js:112 -#.TRANS: square wave -msgid "square" +#: js/blocks/NumberBlocks.js:986 +msgid "The Number block holds a number." msgstr "" -#: js/PitchBlocks.js:62 -#: js/ToneBlocks.js:39 -#: js/musicutils.js:723 -#: js/musicutils.js:1118 -#: js/synthutils.js:116 -#.TRANS: triangle wave -msgid "triangle" +#: js/blocks/OrnamentBlocks.js:32 +msgid "staccato factor" msgstr "" -#: js/PitchBlocks.js:85 -#: js/musicutils.js:721 -#: js/musicutils.js:1116 -#: js/synthutils.js:110 -#.TRANS: sine wave -msgid "sine" +#: js/blocks/OrnamentBlocks.js:108 +msgid "slur factor" msgstr "" -#: js/PitchBlocks.js:108 -#: js/musicutils.js:724 -#: js/musicutils.js:1119 -#: js/synthutils.js:114 -#.TRANS: sawtooth wave -msgid "sawtooth" +#: js/blocks/OrnamentBlocks.js:217 +#: js/blocks/OrnamentBlocks.js:309 +#.TRANS: the neighbor refers to a neighboring note, e.g., D is a neighbor of C +msgid "neighbor" msgstr "" -#: js/PitchBlocks.js:141 -#.TRANS: musical transposition (adjustment of pitch up or down) -msgid "transposition" +#: js/blocks/OrnamentBlocks.js:293 +msgid "The Neighbor block rapidly switches between neighboring pitches." msgstr "" -#: js/PitchBlocks.js:168 -#.TRANS: step down one note in current musical scale -msgid "scalar step down" +#: js/blocks/OrnamentBlocks.js:364 +msgid "glide" msgstr "" -#: js/PitchBlocks.js:172 -msgid "The Scalar step down block returns the number of semi-tones down to the previous note in the current key and mode." +#: js/blocks/OrnamentBlocks.js:479 +#: js/blocks/OrnamentBlocks.js:643 +msgid "slur" msgstr "" -#: js/PitchBlocks.js:190 -#.TRANS: step up one note in current musical scale -msgid "scalar step up" +#: js/blocks/OrnamentBlocks.js:558 +#: js/blocks/OrnamentBlocks.js:710 +#.TRANS: play each note sharply detached from the others +msgid "staccato" msgstr "" -#: js/PitchBlocks.js:194 -msgid "The Scalar step up block returns the number of semi-tones up to the next note in the current key and mode." +#: js/blocks/RhythmBlocks.js:182 +#: js/blocks/RhythmBlocks.js:1086 +#: js/blocks/RhythmBlocks.js:1162 +msgid "Note value must be greater than 0." msgstr "" -#: js/PitchBlocks.js:212 -#.TRANS: the change measured in half-steps between the current pitch and the previous pitch -msgid "change in pitch" +#: js/blocks/RhythmBlocks.js:215 +#: js/blocks/RhythmBlocks.js:278 +#: js/blocks/RhythmBlocks.js:350 +#.TRANS: swing is a rhythmic variation that emphasises the offbeat +msgid "swing" msgstr "" -#: js/PitchBlocks.js:216 -msgid "The Change in pitch block is the difference (in half steps) between the current pitch being played and the previous pitch played." +#: js/blocks/RhythmBlocks.js:355 +#.TRANS: the amount to shift to the offbeat note +msgid "swing value" msgstr "" -#: js/PitchBlocks.js:243 -#.TRANS: the change measured in scale-steps between the current pitch and the previous pitch -msgid "scalar change in pitch" +#: js/blocks/RhythmBlocks.js:419 +msgid "The Skip notes block will cause notes to be skipped." msgstr "" -#: js/PitchBlocks.js:250 -#: js/PitchBlocks.js:432 -#: js/PitchBlocks.js:1629 -#: js/DictActions.js:89 -#: js/temperament.js:477 -#: js/temperament.js:481 -#: js/temperament.js:714 -#.TRANS: convert current note to piano key (1-88) -#.TRANS: a mapping of pitch to the 88 piano keys -msgid "pitch number" +#: js/blocks/RhythmBlocks.js:427 +#.TRANS: substitute rests on notes being skipped +msgid "skip notes" msgstr "" -#: js/PitchBlocks.js:256 -msgid "The Pitch number block is the value of the pitch of the note currently being played." +#: js/blocks/RhythmBlocks.js:489 +#.TRANS: speed up note duration by some factor, e.g. convert 1/4 to 1/8 notes by using a factor of 2 +msgid "multiply note value" msgstr "" -#: js/PitchBlocks.js:329 -#: js/PitchBlocks.js:433 -#.TRANS: the current pitch expressed in Hertz -msgid "pitch in hertz" +#: js/blocks/RhythmBlocks.js:542 +msgid "The Tie block works on pairs of notes, combining them into one note." msgstr "" -#: js/PitchBlocks.js:334 -msgid "The Pitch in Hertz block is the value in Hertz of the pitch of the note currently being played." +#: js/blocks/RhythmBlocks.js:550 +#.TRANS: tie notes together into one longer note +msgid "tie" msgstr "" -#: js/PitchBlocks.js:367 -#: js/DictActions.js:87 -msgid "current pitch" +#: js/blocks/RhythmBlocks.js:591 +#: js/blocks/RhythmBlocks.js:671 +#.TRANS: a dotted note is played for 1.5x its value, e.g., 1/8. --> 3/16 +msgid "dot" msgstr "" -#: js/PitchBlocks.js:373 -msgid "The Current Pitch block is used with the Pitch Converter block. In the example above, current pitch, sol 4, is displayed as 392 hertz." +#: js/blocks/RhythmBlocks.js:619 +#: js/turtleactions/RhythmActions.js:221 +msgid "An argument of -1 results in a note value of 0." msgstr "" -#: js/PitchBlocks.js:410 -msgid "This block converts the pitch value of the last note played into different formats such as hertz, letter name, pitch number, et al." +#: js/blocks/RhythmBlocks.js:661 +msgid "The Dot block extends the duration of a note by 50%." msgstr "" -#: js/PitchBlocks.js:434 -msgid "alphabet" +#: js/blocks/RhythmBlocks.js:663 +msgid "Eg a dotted quarter note will play for 3/8 (1/4 + 1/8) of a beat." msgstr "" -#: js/PitchBlocks.js:436 -#.TRANS: Translate as "alphabet class" -msgid "letter class" +#: js/blocks/RhythmBlocks.js:765 +#.TRANS: Japanese only: note value block for drum +msgid "note value drum" msgstr "" -#: js/PitchBlocks.js:437 -msgid "solfege class" +#: js/blocks/RhythmBlocks.js:829 +msgid "392 hertz" msgstr "" -#: js/PitchBlocks.js:438 -msgid "staff y" +#: js/blocks/RhythmBlocks.js:1119 +msgid "The Note block is a container for one or more Pitch blocks." msgstr "" -#: js/PitchBlocks.js:439 -msgid "solfege syllable" +#: js/blocks/RhythmBlocks.js:1121 +msgid "The Note block specifies the duration (note value) of its contents." msgstr "" -#: js/PitchBlocks.js:440 -msgid "pitch class" -msgstr "" +#: js/blocks/RhythmBlocks.js:1128 +#: js/blocks/PitchBlocks.js:974 +#: js/blocks/PitchBlocks.js:1007 +#: js/blocks/ProgramBlocks.js:1186 +#: js/blocks/ProgramBlocks.js:1227 +#: js/widgets/status.js:190 +#: js/widgets/temperament.js:464 +#: js/widgets/temperament.js:486 +#: js/widgets/temperament.js:496 +#: js/widgets/temperament.js:617 +#: plugins/rodi.rtp:192 +#.TRANS: a musical note consisting of pitch and duration +msgid "note" +msgstr "ملاحظة" -#: js/PitchBlocks.js:441 -msgid "scalar class" +#: js/blocks/RhythmBlocks.js:1130 +msgid "value2" msgstr "" -#: js/PitchBlocks.js:443 -msgid "nth degree" +#: js/blocks/RhythmBlocks.js:1200 +msgid "define frequency" msgstr "" -#: js/PitchBlocks.js:444 -msgid "pitch to shade" +#: js/blocks/RhythmBlocks.js:1218 +#: js/widgets/temperament.js:787 +#: js/widgets/temperament.js:1587 +msgid "octave space" msgstr "" -#: js/PitchBlocks.js:445 -msgid "pitch to color" +#: js/blocks/SensorsBlocks.js:36 +msgid "The Input block prompts for keyboard input." msgstr "" -#: js/PitchBlocks.js:629 -#: js/musickeyboard.js:565 -#.TRANS: MIDI is a technical standard for electronic music -msgid "MIDI" +#: js/blocks/SensorsBlocks.js:46 +msgid "input" msgstr "" -#: js/PitchBlocks.js:642 -#.TRANS: set an offset associated with the numeric piano keyboard mapping -msgid "set pitch number offset" +#: js/blocks/SensorsBlocks.js:64 +msgid "Input a value" msgstr "" -#: js/PitchBlocks.js:645 -msgid "The Set pitch number offset block is used to set the offset for mapping pitch numbers to pitch and octave." +#: js/blocks/SensorsBlocks.js:126 +msgid "input value" msgstr "" -#: js/PitchBlocks.js:679 -#.TRANS: convert piano key number (1-88) to pitch -msgid "number to pitch" +#: js/blocks/SensorsBlocks.js:131 +msgid "The Input-value block stores the input." msgstr "" -#: js/PitchBlocks.js:682 -msgid "The Number to pitch block will convert a pitch number to a pich name." -msgstr "" +#: js/blocks/SensorsBlocks.js:238 +msgid "loudness" +msgstr "درجة الصوت" -#: js/PitchBlocks.js:715 -#.TRANS: convert piano key number (1-88) to octave -msgid "number to octave" +#: js/blocks/SensorsBlocks.js:245 +msgid "The Loudness block returns the volume detected by the microphone." msgstr "" -#: js/PitchBlocks.js:717 -msgid "The Number to octave block will convert a pitch number to an octave." +#: js/blocks/SensorsBlocks.js:300 +msgid "click" +msgstr "انقر" + +#: js/blocks/SensorsBlocks.js:306 +msgid "The Click block triggers an event if a mouse has been clicked." msgstr "" -#: js/PitchBlocks.js:726 -msgid "y to pitch" +#: js/blocks/SensorsBlocks.js:313 +msgid "The Click block triggers an event if a turtle has been clicked." msgstr "" -#: js/PitchBlocks.js:729 -msgid "Y to pitch block will convert a staff y position to corresponding pitch notation." +#: js/blocks/SensorsBlocks.js:342 +msgid "cursor over" msgstr "" -#: js/PitchBlocks.js:841 -msgid "accidental selector" +#: js/blocks/SensorsBlocks.js:387 +msgid "cursor out" msgstr "" -#: js/PitchBlocks.js:844 -msgid "The Accidental selector block is used to choose between double-sharp, sharp, natural, flat, and double-flat." +#: js/blocks/SensorsBlocks.js:433 +msgid "cursor button down" msgstr "" -#: js/PitchBlocks.js:858 -msgid "Pitch can be specified in terms of ni dha pa ma ga re sa." +#: js/blocks/SensorsBlocks.js:477 +msgid "cursor button up" msgstr "" -#: js/PitchBlocks.js:872 -msgid "Pitch can be specified in terms of C D E F G A B." +#: js/blocks/SensorsBlocks.js:521 +#: js/blocks/PenBlocks.js:48 +#: plugins/rodi.rtp:219 +msgid "blue" msgstr "" -#: js/PitchBlocks.js:883 -msgid "solfege" +#: js/blocks/SensorsBlocks.js:577 +#: js/blocks/PenBlocks.js:64 +#: plugins/rodi.rtp:218 +msgid "green" msgstr "" -#: js/PitchBlocks.js:886 -msgid "Pitch can be specified in terms of do re mi fa sol la ti." +#: js/blocks/SensorsBlocks.js:633 +#: js/blocks/PenBlocks.js:112 +#: plugins/rodi.rtp:217 +msgid "red" msgstr "" -#: js/PitchBlocks.js:920 -msgid "The Invert block rotates any contained notes around a target note." +#: js/blocks/SensorsBlocks.js:638 +msgid "The Get red block returns the red component of the pixel under the mouse." msgstr "" -#: js/PitchBlocks.js:927 -#.TRANS: pitch inversion rotates a pitch around another pitch -msgid "invert" +#: js/blocks/SensorsBlocks.js:644 +msgid "The Get red block returns the red component of the pixel under the turtle." msgstr "" -#: js/PitchBlocks.js:929 -#: js/PitchBlocks.js:935 -#: js/PitchActions.js:727 -#: js/musicutils.js:726 -#: js/musicutils.js:902 -#.TRANS: invert based on even or odd number or musical scale -#.TRANS: even numbers -msgid "even" +#: js/blocks/SensorsBlocks.js:685 +#: plugins/rodi.rtp:216 +msgid "pixel color" +msgstr "لون بكسل" + +#: js/blocks/SensorsBlocks.js:690 +msgid "The Get pixel block returns the color of the pixel under the mouse." msgstr "" -#: js/PitchBlocks.js:935 -#: js/PitchActions.js:729 -#: js/musicutils.js:728 -#: js/musicutils.js:903 -#.TRANS: odd numbers -msgid "odd" +#: js/blocks/SensorsBlocks.js:696 +msgid "The Get pixel block returns the color of the pixel under the turtle." msgstr "" -#: js/PitchBlocks.js:935 -#: js/PitchActions.js:731 -#: js/musicutils.js:729 -#: js/musicutils.js:904 -msgid "scalar" +#: js/blocks/SensorsBlocks.js:758 +msgid "time" +msgstr "الوقت" + +#: js/blocks/SensorsBlocks.js:804 +msgid "cursor y" msgstr "" -#: js/PitchBlocks.js:966 -#.TRANS: pitch inversion rotates a pitch around another pitch (odd number) -msgid "invert (odd)" +#: js/blocks/SensorsBlocks.js:809 +msgid "The Cursor Y block returns the vertical position of the mouse." msgstr "" -#: js/PitchBlocks.js:999 -#.TRANS: pitch inversion rotates a pitch around another pitch (even number) -msgid "invert (even)" +#: js/blocks/SensorsBlocks.js:845 +msgid "cursor x" msgstr "" -#: js/PitchBlocks.js:1020 -#.TRANS: register is the octave of the current pitch -msgid "register" +#: js/blocks/SensorsBlocks.js:850 +msgid "The Cursor X block returns the horizontal position of the mouse." msgstr "" -#: js/PitchBlocks.js:1024 -msgid "The Register block provides an easy way to modify the register (octave) of the notes that follow it." +#: js/blocks/SensorsBlocks.js:886 +msgid "mouse button" +msgstr "زر الفأرة" + +#: js/blocks/SensorsBlocks.js:888 +msgid "The Mouse-button block returns True if the mouse button is pressed." msgstr "" -#: js/PitchBlocks.js:1074 -msgid "The Semi-tone transposition block will shift the pitches contained inside Note blocks up (or down) by half steps." +#: js/blocks/SensorsBlocks.js:934 +msgid "to ASCII" msgstr "" -#: js/PitchBlocks.js:1076 -msgid "In the example shown above, sol is shifted up to sol#." +#: js/blocks/SensorsBlocks.js:938 +msgid "The To ASCII block converts numbers to letters." msgstr "" -#: js/PitchBlocks.js:1082 -#.TRANS: adjust the amount of shift (up or down) of a pitch -msgid "semi-tone transpose" +#: js/blocks/SensorsBlocks.js:1005 +msgid "The Keyboard block returns computer keyboard input." msgstr "" -#: js/PitchBlocks.js:1115 -msgid "The Transpose by Ratio block will shift the pitches contained inside Note blocks up (or down) by a ratio" +#: js/blocks/RhythmBlockPaletteBlocks.js:50 +#: js/blocks/RhythmBlockPaletteBlocks.js:233 +#.TRANS: rhythm block +#.TRANS: translate "rhythm1" as rhythm +msgid "rhythm1" msgstr "" -#: js/PitchBlocks.js:1121 -#.TRANS: adjust the amount of shift (up or down) of a pitch -msgid "transpose by ratio" +#: js/blocks/RhythmBlockPaletteBlocks.js:70 +#: js/blocks/RhythmBlockPaletteBlocks.js:252 +#: js/blocks/RhythmBlockPaletteBlocks.js:485 +#: js/blocks/RhythmBlockPaletteBlocks.js:554 +#: js/blocks/RhythmBlockPaletteBlocks.js:875 +msgid "number of notes" msgstr "" -#: js/PitchBlocks.js:1204 -#.TRANS: down sixth means the note is five scale degrees below current note -msgid "down sixth" +#: js/blocks/RhythmBlockPaletteBlocks.js:126 +msgid "polyphonic rhythm" msgstr "" -#: js/PitchBlocks.js:1223 -#.TRANS: down third means the note is two scale degrees below current note -msgid "down third" +#: js/blocks/RhythmBlockPaletteBlocks.js:219 +msgid "The Rhythm block is used to generate rhythm patterns." msgstr "" -#: js/PitchBlocks.js:1242 -#.TRANS: seventh means the note is the six scale degrees above current note -msgid "seventh" +#: js/blocks/RhythmBlockPaletteBlocks.js:280 +msgid "1/64 note" msgstr "" -#: js/PitchBlocks.js:1261 -#.TRANS: sixth means the note is the five scale degrees above current note -msgid "sixth" +#: js/blocks/RhythmBlockPaletteBlocks.js:304 +msgid "1/32 note" msgstr "" -#: js/PitchBlocks.js:1280 -#.TRANS: fifth means the note is the four scale degrees above current note -msgid "fifth" +#: js/blocks/RhythmBlockPaletteBlocks.js:332 +msgid "1/16 note" msgstr "" -#: js/PitchBlocks.js:1300 -#.TRANS: fourth means the note is three scale degrees above current note -msgid "fourth" +#: js/blocks/RhythmBlockPaletteBlocks.js:360 +msgid "eighth note" msgstr "" -#: js/PitchBlocks.js:1319 -#.TRANS: third means the note is two scale degrees above current note -msgid "third" +#: js/blocks/RhythmBlockPaletteBlocks.js:388 +msgid "quarter note" msgstr "" -#: js/PitchBlocks.js:1338 -#.TRANS: second means the note is one scale degree above current note -msgid "second" +#: js/blocks/RhythmBlockPaletteBlocks.js:416 +msgid "half note" msgstr "" -#: js/PitchBlocks.js:1379 -msgid "The Scalar transposition block will shift the pitches contained inside Note blocks up (or down) the scale." +#: js/blocks/RhythmBlockPaletteBlocks.js:444 +msgid "whole note" msgstr "" -#: js/PitchBlocks.js:1381 -msgid "In the example shown above, sol is shifted up to la." +#: js/blocks/RhythmBlockPaletteBlocks.js:482 +#: js/blocks/RhythmBlockPaletteBlocks.js:551 +#: js/blocks/RhythmBlockPaletteBlocks.js:602 +#.TRANS: A tuplet is a note value divided into irregular time values. +msgid "tuplet" msgstr "" -#: js/PitchBlocks.js:1388 -#.TRANS: adjust the amount of shift (up or down) of a pitch by musical scale (scalar) steps -msgid "scalar transpose" +#: js/blocks/RhythmBlockPaletteBlocks.js:768 +msgid "septuplet" msgstr "" -#: js/PitchBlocks.js:1423 -msgid "The Accidental block is used to create sharps and flats" +#: js/blocks/RhythmBlockPaletteBlocks.js:796 +msgid "quintuplet" msgstr "" -#: js/PitchBlocks.js:1430 -#.TRANS: An accidental is a modification to a pitch, e.g., sharp or flat. -msgid "accidental override" +#: js/blocks/RhythmBlockPaletteBlocks.js:824 +msgid "triplet" msgstr "" -#: js/PitchBlocks.js:1543 -msgid "The Hertz block (in combination with a Number block) will play a sound at the specified frequency." +#: js/blocks/RhythmBlockPaletteBlocks.js:851 +msgid "simple tuplet" msgstr "" -#: js/PitchBlocks.js:1633 -msgid "The Pitch Number block will play a pitch associated by its number, e.g. 0 for C and 7 for G." +#: js/blocks/RhythmBlockPaletteBlocks.js:861 +msgid "Tuplets are a collection of notes that get scaled to a specific duration." msgstr "" -#: js/PitchBlocks.js:1665 -#: js/PitchBlocks.js:1707 -#.TRANS: a numeric mapping of the notes in an octave based on the musical mode -#.TRANS: a numeric mapping of the notes in an octave based on the musical mode -msgid "nth modal pitch" +#: js/blocks/DrumBlocks.js:59 +msgid "The Noise name block is used to select a noise synthesizer." msgstr "" -#: js/PitchBlocks.js:1668 -msgid "n^th Modal Pitch takes the pattern of pitches in semitones for a mode and makes each point a degree of the mode," +#: js/blocks/DrumBlocks.js:102 +msgid "The Drum name block is used to select a drum." msgstr "" -#: js/PitchBlocks.js:1670 -msgid "starting from 1 and regardless of tonal framework (i.e. not always 8 notes in the octave)" +#: js/blocks/DrumBlocks.js:146 +msgid "The Effects name block is used to select a sound effect." msgstr "" -#: js/PitchBlocks.js:1711 -msgid "N^th Modal Pitch takes a number as an input as the n^th degree for the given mode. 0 is the first position, 1 is the second, -1 is the note before the first etc." +#: js/blocks/DrumBlocks.js:163 +msgid "noise" msgstr "" -#: js/PitchBlocks.js:1713 -msgid "The pitches change according to the mode specified without any need for respellings." +#: js/blocks/DrumBlocks.js:177 +msgid "The Play noise block will generate white, pink, or brown noise." msgstr "" -#: js/PitchBlocks.js:1752 -msgid "Scale Degree is a common convention in music. Scale Degree offers seven possible positions in the scale (1-7) and can be modified via accidentals." +#: js/blocks/DrumBlocks.js:317 +msgid "Replace every instance of a pitch with a drum sound." msgstr "" -#: js/PitchBlocks.js:1754 -msgid "Scale Degree 1 is always the first pitch in a given scale, regardless of octave." +#: js/blocks/DrumBlocks.js:328 +#.TRANS: map a pitch to a drum sound +msgid "map pitch to drum" msgstr "" -#: js/PitchBlocks.js:1776 -#.TRANS: step some number of notes in current musical scale -msgid "scalar step" +#: js/blocks/DrumBlocks.js:395 +msgid "In the example above, a kick drum sound will be played instead of sol." msgstr "" -#: js/PitchBlocks.js:1781 -msgid "The Scalar Step block (in combination with a Number block) will play the next pitch in a scale," +#: js/blocks/DrumBlocks.js:407 +#.TRANS: set the current drum sound for playback +msgid "set drum" msgstr "" -#: js/PitchBlocks.js:1783 -msgid "eg if the last note played was sol, Scalar Step 1 will play la." +#: js/blocks/DrumBlocks.js:451 +msgid "sound effect" msgstr "" -#: js/PitchBlocks.js:1818 -msgid "The Pitch block specifies the pitch name and octave of a note that together determine the frequency of the note." +#: js/blocks/DrumBlocks.js:489 +msgid "You can use multiple Drum blocks within a Note block." msgstr "" -#: js/GraphicsBlocks.js:46 -#: js/DictActions.js:77 -#: js/DictActions.js:155 -#: js/DictActions.js:189 +#: js/blocks/GraphicsBlocks.js:46 +#: js/turtleactions/DictActions.js:77 +#: js/turtleactions/DictActions.js:144 +#: js/turtleactions/DictActions.js:173 msgid "heading" msgstr "الترويسة" -#: js/GraphicsBlocks.js:56 +#: js/blocks/GraphicsBlocks.js:56 msgid "The Heading block returns the orientation of the mouse." msgstr "" -#: js/GraphicsBlocks.js:62 +#: js/blocks/GraphicsBlocks.js:62 msgid "The Heading block returns the orientation of the turtle." msgstr "" -#: js/GraphicsBlocks.js:133 +#: js/blocks/GraphicsBlocks.js:133 msgid "The Y block returns the vertical position of the mouse." msgstr "" -#: js/GraphicsBlocks.js:140 +#: js/blocks/GraphicsBlocks.js:140 msgid "The Y block returns the vertical position of the turtle." msgstr "" -#: js/GraphicsBlocks.js:149 +#: js/blocks/GraphicsBlocks.js:149 msgid "y3" msgstr "" -#: js/GraphicsBlocks.js:219 +#: js/blocks/GraphicsBlocks.js:219 msgid "The X block returns the horizontal position of the mouse." msgstr "" -#: js/GraphicsBlocks.js:226 +#: js/blocks/GraphicsBlocks.js:226 msgid "The X block returns the horizontal position of the turtle." msgstr "" -#: js/GraphicsBlocks.js:235 +#: js/blocks/GraphicsBlocks.js:235 msgid "x3" msgstr "" -#: js/GraphicsBlocks.js:295 +#: js/blocks/GraphicsBlocks.js:295 msgid "scroll xy" msgstr "" -#: js/GraphicsBlocks.js:303 +#: js/blocks/GraphicsBlocks.js:303 msgid "The Scroll XY block moves the canvas." msgstr "" -#: js/GraphicsBlocks.js:313 +#: js/blocks/GraphicsBlocks.js:313 msgid "x2" msgstr "" -#: js/GraphicsBlocks.js:313 +#: js/blocks/GraphicsBlocks.js:313 msgid "y2" msgstr "" -#: js/GraphicsBlocks.js:373 -#: js/temperament.js:213 -#: js/temperament.js:241 +#: js/blocks/GraphicsBlocks.js:373 +#: js/widgets/temperament.js:319 +#: js/widgets/temperament.js:347 msgid "clear" msgstr "نظف الشاشة" -#: js/GraphicsBlocks.js:426 +#: js/blocks/GraphicsBlocks.js:426 msgid "The Control-point 2 block sets the second control point for the Bezier curve." msgstr "" -#: js/GraphicsBlocks.js:433 +#: js/blocks/GraphicsBlocks.js:433 msgid "control point 2" msgstr "" -#: js/GraphicsBlocks.js:436 -#: js/GraphicsBlocks.js:487 -#: js/GraphicsBlocks.js:534 -#: js/GraphicsBlocks.js:750 +#: js/blocks/GraphicsBlocks.js:436 +#: js/blocks/GraphicsBlocks.js:487 +#: js/blocks/GraphicsBlocks.js:534 +#: js/blocks/GraphicsBlocks.js:750 msgid "x1" msgstr "" -#: js/GraphicsBlocks.js:436 -#: js/GraphicsBlocks.js:487 -#: js/GraphicsBlocks.js:534 -#: js/GraphicsBlocks.js:750 +#: js/blocks/GraphicsBlocks.js:436 +#: js/blocks/GraphicsBlocks.js:487 +#: js/blocks/GraphicsBlocks.js:534 +#: js/blocks/GraphicsBlocks.js:750 msgid "y1" msgstr "" -#: js/GraphicsBlocks.js:477 +#: js/blocks/GraphicsBlocks.js:477 msgid "The Control-point 1 block sets the first control point for the Bezier curve." msgstr "" -#: js/GraphicsBlocks.js:484 +#: js/blocks/GraphicsBlocks.js:484 msgid "control point 1" msgstr "" -#: js/GraphicsBlocks.js:527 +#: js/blocks/GraphicsBlocks.js:527 msgid "The Bezier block draws a Bezier curve." msgstr "" -#: js/GraphicsBlocks.js:531 +#: js/blocks/GraphicsBlocks.js:531 msgid "bezier" msgstr "" -#: js/GraphicsBlocks.js:592 +#: js/blocks/GraphicsBlocks.js:592 msgid "The Arc block moves the turtle in an arc." msgstr "" -#: js/GraphicsBlocks.js:600 +#: js/blocks/GraphicsBlocks.js:600 msgid "arc" msgstr "قوس" -#: js/GraphicsBlocks.js:603 +#: js/blocks/GraphicsBlocks.js:603 msgid "angle" msgstr "زاوية" -#: js/GraphicsBlocks.js:603 +#: js/blocks/GraphicsBlocks.js:603 msgid "radius" msgstr "نصف القطر" -#: js/GraphicsBlocks.js:620 -#: js/GraphicsBlocks.js:767 -#: js/GraphicsBlocks.js:1010 -#: js/GraphicsBlocks.js:1093 +#: js/blocks/GraphicsBlocks.js:620 +#: js/blocks/GraphicsBlocks.js:767 +#: js/blocks/GraphicsBlocks.js:1010 +#: js/blocks/GraphicsBlocks.js:1093 msgid "Value must be within -5000 to 5000 when Wrap Mode is off." msgstr "" -#: js/GraphicsBlocks.js:622 -#: js/GraphicsBlocks.js:769 -#: js/GraphicsBlocks.js:1012 -#: js/GraphicsBlocks.js:1095 +#: js/blocks/GraphicsBlocks.js:622 +#: js/blocks/GraphicsBlocks.js:769 +#: js/blocks/GraphicsBlocks.js:1012 +#: js/blocks/GraphicsBlocks.js:1095 msgid "Value must be within -20000 to 20000 when Wrap Mode is on." msgstr "" -#: js/GraphicsBlocks.js:660 +#: js/blocks/GraphicsBlocks.js:660 msgid "set heading" msgstr "حدد الترويسة" -#: js/GraphicsBlocks.js:673 +#: js/blocks/GraphicsBlocks.js:673 msgid "The Set heading block sets the heading of the turtle." msgstr "" -#: js/GraphicsBlocks.js:733 +#: js/blocks/GraphicsBlocks.js:733 msgid "The Set XY block moves the mouse to a specific position on the screen." msgstr "" -#: js/GraphicsBlocks.js:739 +#: js/blocks/GraphicsBlocks.js:739 msgid "The Set XY block moves the turtle to a specific position on the screen." msgstr "" -#: js/GraphicsBlocks.js:747 +#: js/blocks/GraphicsBlocks.js:747 msgid "set xy" msgstr "حدد س ص" -#: js/GraphicsBlocks.js:819 +#: js/blocks/GraphicsBlocks.js:819 msgid "The Right block turns the mouse to the right." msgstr "" -#: js/GraphicsBlocks.js:826 +#: js/blocks/GraphicsBlocks.js:826 msgid "The Right block turns the turtle to the right." msgstr "" -#: js/GraphicsBlocks.js:835 +#: js/blocks/GraphicsBlocks.js:835 msgid "right1" msgstr "" -#: js/GraphicsBlocks.js:835 +#: js/blocks/GraphicsBlocks.js:835 #: plugins/rodi.rtp:77 #: plugins/rodi.rtp:340 #: plugins/rodi.rtp:375 msgid "right" msgstr "يمين" -#: js/GraphicsBlocks.js:899 +#: js/blocks/GraphicsBlocks.js:899 msgid "The Left block turns the mouse to the left." msgstr "" -#: js/GraphicsBlocks.js:906 +#: js/blocks/GraphicsBlocks.js:906 msgid "The Left block turns the turtle to the left." msgstr "" -#: js/GraphicsBlocks.js:915 +#: js/blocks/GraphicsBlocks.js:915 msgid "left1" msgstr "" -#: js/GraphicsBlocks.js:915 +#: js/blocks/GraphicsBlocks.js:915 #: plugins/rodi.rtp:79 #: plugins/rodi.rtp:339 #: plugins/rodi.rtp:362 msgid "left" msgstr "يسار" -#: js/GraphicsBlocks.js:967 -#: js/temperament.js:734 -#: js/temperament.js:933 +#: js/blocks/GraphicsBlocks.js:967 +#: js/widgets/temperament.js:875 +#: js/widgets/temperament.js:1078 #: plugins/rodi.rtp:69 #: plugins/rodi.rtp:387 msgid "back" msgstr "رجوع" -#: js/GraphicsBlocks.js:976 +#: js/blocks/GraphicsBlocks.js:976 msgid "The Back block moves the mouse backward." msgstr "" -#: js/GraphicsBlocks.js:983 +#: js/blocks/GraphicsBlocks.js:983 msgid "The Back block moves the turtle backward." msgstr "" -#: js/GraphicsBlocks.js:1050 +#: js/blocks/GraphicsBlocks.js:1050 #: plugins/rodi.rtp:71 #: plugins/rodi.rtp:400 msgid "forward" msgstr "إلى الأمام" -#: js/GraphicsBlocks.js:1059 +#: js/blocks/GraphicsBlocks.js:1059 msgid "The Forward block moves the mouse forward." msgstr "" -#: js/GraphicsBlocks.js:1066 +#: js/blocks/GraphicsBlocks.js:1066 msgid "The Forward block moves the turtle forward." msgstr "" -#: js/GraphicsBlocks.js:1154 -#: js/GraphicsBlocks.js:1172 +#: js/blocks/GraphicsBlocks.js:1154 +#: js/blocks/GraphicsBlocks.js:1172 msgid "wrap" msgstr "" -#: js/OrnamentBlocks.js:32 -msgid "staccato factor" -msgstr "" - -#: js/OrnamentBlocks.js:108 -msgid "slur factor" -msgstr "" - -#: js/OrnamentBlocks.js:217 -#: js/OrnamentBlocks.js:309 -#.TRANS: the neighbor refers to a neighboring note, e.g., D is a neighbor of C -msgid "neighbor" -msgstr "" - -#: js/OrnamentBlocks.js:293 -msgid "The Neighbor block rapidly switches between neighboring pitches." -msgstr "" - -#: js/OrnamentBlocks.js:364 -msgid "glide" -msgstr "" - -#: js/OrnamentBlocks.js:479 -#: js/OrnamentBlocks.js:643 -msgid "slur" -msgstr "" - -#: js/OrnamentBlocks.js:558 -#: js/OrnamentBlocks.js:710 -#.TRANS: play each note sharply detached from the others -msgid "staccato" -msgstr "" - -#: js/PenBlocks.js:24 +#: js/blocks/PenBlocks.js:30 msgid "purple" msgstr "" -#: js/PenBlocks.js:37 -#: js/SensorsBlocks.js:521 -#: plugins/rodi.rtp:219 -msgid "blue" -msgstr "" - -#: js/PenBlocks.js:50 -#: js/SensorsBlocks.js:577 -#: plugins/rodi.rtp:218 -msgid "green" -msgstr "" - -#: js/PenBlocks.js:63 +#: js/blocks/PenBlocks.js:80 msgid "yellow" msgstr "" -#: js/PenBlocks.js:76 +#: js/blocks/PenBlocks.js:96 #: plugins/nutrition.rtp:164 msgid "orange" msgstr "برتقال" -#: js/PenBlocks.js:89 -#: js/SensorsBlocks.js:633 -#: plugins/rodi.rtp:217 -msgid "red" -msgstr "" - -#: js/PenBlocks.js:102 +#: js/blocks/PenBlocks.js:128 msgid "white" msgstr "" -#: js/PenBlocks.js:115 +#: js/blocks/PenBlocks.js:144 msgid "black" msgstr "" -#: js/PenBlocks.js:128 +#: js/blocks/PenBlocks.js:163 msgid "begin fill" msgstr "ابدأ بملء اللون" -#: js/PenBlocks.js:143 +#: js/blocks/PenBlocks.js:190 msgid "end fill" msgstr "أنه تعبئة اللون" -#: js/PenBlocks.js:159 -#: js/PenBlocks.js:386 +#: js/blocks/PenBlocks.js:212 +#: js/blocks/PenBlocks.js:560 #.TRANS: set the background color msgid "background" msgstr "الخلفية" -#: js/PenBlocks.js:206 -#: js/DictActions.js:71 -#: js/DictActions.js:149 -#: js/DictActions.js:186 +#: js/blocks/PenBlocks.js:274 +#: js/turtleactions/DictActions.js:71 +#: js/turtleactions/DictActions.js:138 +#: js/turtleactions/DictActions.js:170 msgid "grey" msgstr "رمادي" -#: js/PenBlocks.js:210 +#: js/blocks/PenBlocks.js:282 msgid "The Grey block returns the current pen grey value." msgstr "" -#: js/PenBlocks.js:243 -#: js/DictActions.js:69 -#: js/DictActions.js:147 -#: js/DictActions.js:185 +#: js/blocks/PenBlocks.js:340 +#: js/turtleactions/DictActions.js:69 +#: js/turtleactions/DictActions.js:136 +#: js/turtleactions/DictActions.js:169 msgid "shade" msgstr "درجة اللون" -#: js/PenBlocks.js:247 +#: js/blocks/PenBlocks.js:347 msgid "The Shade block returns the current pen shade value." msgstr "" -#: js/PenBlocks.js:280 -#: js/DictActions.js:67 -#: js/DictActions.js:145 -#: js/DictActions.js:184 +#: js/blocks/PenBlocks.js:405 +#: js/turtleactions/DictActions.js:67 +#: js/turtleactions/DictActions.js:134 +#: js/turtleactions/DictActions.js:168 msgid "color" msgstr "اللون" -#: js/PenBlocks.js:285 +#: js/blocks/PenBlocks.js:415 msgid "The Color block returns the current pen color." msgstr "" -#: js/PenBlocks.js:318 -#: js/DictActions.js:73 -#: js/DictActions.js:151 -#: js/DictActions.js:187 +#: js/blocks/PenBlocks.js:470 +#: js/turtleactions/DictActions.js:73 +#: js/turtleactions/DictActions.js:140 +#: js/turtleactions/DictActions.js:171 msgid "pen size" msgstr "حجم القلم" -#: js/PenBlocks.js:322 +#: js/blocks/PenBlocks.js:474 msgid "The Pen size block returns the current pen size value." msgstr "" -#: js/PenBlocks.js:355 +#: js/blocks/PenBlocks.js:513 msgid "set font" msgstr "" -#: js/PenBlocks.js:358 +#: js/blocks/PenBlocks.js:518 msgid "The Set font block sets the font used by the Show block." msgstr "" -#: js/PenBlocks.js:391 +#: js/blocks/PenBlocks.js:567 msgid "The Background block sets the window background color." msgstr "" -#: js/PenBlocks.js:408 +#: js/blocks/PenBlocks.js:598 msgid "The Hollow line block creates a line with a hollow center." msgstr "" -#: js/PenBlocks.js:415 +#: js/blocks/PenBlocks.js:606 #.TRANS: draw a line logo has a hollow space down its center msgid "hollow line" msgstr "" -#: js/PenBlocks.js:462 +#: js/blocks/PenBlocks.js:675 msgid "The Fill block fills in a shape with a color." msgstr "" -#: js/PenBlocks.js:470 +#: js/blocks/PenBlocks.js:684 #.TRANS: fill in as a solid color msgid "fill" msgstr "" -#: js/PenBlocks.js:527 +#: js/blocks/PenBlocks.js:761 #.TRANS: raise up the pen so logo it does not draw when it is moved msgid "pen up" msgstr "احتجز" -#: js/PenBlocks.js:532 +#: js/blocks/PenBlocks.js:768 msgid "The Pen-up block raises the pen so that it does not draw." msgstr "" -#: js/PenBlocks.js:552 +#: js/blocks/PenBlocks.js:802 #.TRANS: put down the pen so logo it draws when it is moved msgid "pen down" msgstr "احتجز" -#: js/PenBlocks.js:557 +#: js/blocks/PenBlocks.js:810 msgid "The Pen-down block lowers the pen so that it draws." msgstr "" -#: js/PenBlocks.js:577 +#: js/blocks/PenBlocks.js:844 #.TRANS: set the width of the line drawn by the pen msgid "set pen size" msgstr "اضبط حجم القلم" -#: js/PenBlocks.js:583 +#: js/blocks/PenBlocks.js:854 msgid "The Set-pen-size block changes the size of the pen." msgstr "" -#: js/PenBlocks.js:623 +#: js/blocks/PenBlocks.js:913 #.TRANS: set degree of translucence of the pen color msgid "set translucency" msgstr "" -#: js/PenBlocks.js:627 +#: js/blocks/PenBlocks.js:921 msgid "The Set translucency block changes the opacity of the pen." msgstr "" -#: js/PenBlocks.js:668 +#: js/blocks/PenBlocks.js:981 msgid "set hue" msgstr "تحديد درجة اللون" -#: js/PenBlocks.js:672 +#: js/blocks/PenBlocks.js:989 msgid "The Set hue block changes the color of the pen." msgstr "" -#: js/PenBlocks.js:711 +#: js/blocks/PenBlocks.js:1047 msgid "set shade" msgstr "حدد درجة اللون" -#: js/PenBlocks.js:717 +#: js/blocks/PenBlocks.js:1057 msgid "The Set-shade block changes the pen color from dark to light." msgstr "" -#: js/PenBlocks.js:757 +#: js/blocks/PenBlocks.js:1111 #.TRANS: set the level of vividness of the pen color msgid "set grey" msgstr "اختر الرمادي" -#: js/PenBlocks.js:761 +#: js/blocks/PenBlocks.js:1119 msgid "The Set grey block changes the vividness of the pen color." msgstr "" -#: js/PenBlocks.js:800 +#: js/blocks/PenBlocks.js:1172 msgid "set color" msgstr "حدد اللون" -#: js/PenBlocks.js:806 +#: js/blocks/PenBlocks.js:1182 msgid "The Set-color block changes the pen color." msgstr "" -#: js/VolumeBlocks.js:35 -msgid "synth volume" -msgstr "" - -#: js/VolumeBlocks.js:39 -msgid "The Synth volume block returns the current volume of the current synthesizer." -msgstr "" - -#: js/VolumeBlocks.js:47 -#: js/musicutils.js:730 -#: js/synthutils.js:56 -#.TRANS: musical instrument -msgid "piano" -msgstr "" - -#: js/VolumeBlocks.js:105 -msgid "master volume" -msgstr "" - -#: js/VolumeBlocks.js:109 -msgid "The Master volume block returns the master volume." -msgstr "" - -#: js/VolumeBlocks.js:355 -#: js/VolumeBlocks.js:524 -msgid "set synth volume" -msgstr "" - -#: js/VolumeBlocks.js:362 -#: js/VolumeBlocks.js:545 -msgid "synth" -msgstr "" - -#: js/VolumeBlocks.js:403 -#: js/VolumeBlocks.js:577 -#: js/VolumeBlocks.js:740 -#: js/VolumeActions.js:173 -msgid "Setting volume to 0." -msgstr "" - -#: js/VolumeBlocks.js:440 -msgid "Synth not found" -msgstr "" - -#: js/VolumeBlocks.js:494 -msgid "set drum volume" -msgstr "" - -#: js/VolumeBlocks.js:530 -msgid "The Set synth volume block will change the volume of a particular synth," -msgstr "" - -#: js/VolumeBlocks.js:532 -msgid "eg guitar violin snare drum etc." -msgstr "" - -#: js/VolumeBlocks.js:534 -msgid "The default volume is 50." -msgstr "" - -#: js/VolumeBlocks.js:536 -msgid "The range is 0 for silence to 100 for full volume." -msgstr "" - -#: js/VolumeBlocks.js:597 -msgid "set panning" -msgstr "" - -#: js/VolumeBlocks.js:603 -msgid "The Set Panning block sets the panning for all synthesizers." -msgstr "" - -#: js/VolumeBlocks.js:625 -msgid "Warning: Sound is coming out from only the left or right side." -msgstr "" - -#: js/VolumeBlocks.js:647 -#: js/VolumeBlocks.js:695 -msgid "set master volume" -msgstr "" - -#: js/VolumeBlocks.js:653 -msgid "The Set master volume block sets the volume for all synthesizers." -msgstr "" - -#: js/VolumeBlocks.js:784 -msgid "The Set relative volume block changes the volume of the contained notes." -msgstr "" - -#: js/VolumeBlocks.js:791 -msgid "set relative volume" -msgstr "" - -#: js/VolumeBlocks.js:857 -msgid "decrescendo" -msgstr "" - -#: js/VolumeBlocks.js:921 -msgid "crescendo" -msgstr "" - -#: js/ToneBlocks.js:34 -msgid "oscillator" -msgstr "" - -#: js/ToneBlocks.js:44 -#: js/timbre.js:1562 -#.TRANS: Partials refers to the number of sine waves combined into the sound. -msgid "partials" -msgstr "" - -#: js/ToneBlocks.js:76 -msgid "You are adding multiple oscillator blocks." -msgstr "" - -#: js/ToneBlocks.js:144 -#: js/timbre.js:1225 -#.TRANS: a duo synthesizer combines a synth with a sequencer -msgid "duo synth" -msgstr "" - -#: js/ToneBlocks.js:149 -msgid "The Duo synth block is a duo-frequency modulator used to define a timbre." -msgstr "" - -#: js/ToneBlocks.js:157 -#: js/timbre.js:1476 -msgid "vibrato rate" -msgstr "" - -#: js/ToneBlocks.js:157 -msgid "vibrato intensity" -msgstr "" - -#: js/ToneBlocks.js:185 -#: js/timbre.js:1221 -#.TRANS: AM (amplitude modulation) synthesizer -msgid "AM synth" +#: js/blocks/PitchBlocks.js:141 +#.TRANS: musical transposition (adjustment of pitch up or down) +msgid "transposition" msgstr "" -#: js/ToneBlocks.js:189 -msgid "The AM synth block is an amplitude modulator used to define a timbre." +#: js/blocks/PitchBlocks.js:168 +#.TRANS: step down one note in current musical scale +msgid "scalar step down" msgstr "" -#: js/ToneBlocks.js:224 -#: js/timbre.js:1223 -#.TRANS: FM (frequency modulation) synthesizer -msgid "FM synth" +#: js/blocks/PitchBlocks.js:172 +msgid "The Scalar step down block returns the number of semi-tones down to the previous note in the current key and mode." msgstr "" -#: js/ToneBlocks.js:228 -msgid "The FM synth block is a frequency modulator used to define a timbre." +#: js/blocks/PitchBlocks.js:190 +#.TRANS: step up one note in current musical scale +msgid "scalar step up" msgstr "" -#: js/ToneBlocks.js:262 -msgid "partial" +#: js/blocks/PitchBlocks.js:194 +msgid "The Scalar step up block returns the number of semi-tones up to the next note in the current key and mode." msgstr "" -#: js/ToneBlocks.js:265 -msgid "The Partial block is used to specify a weight for a specific partial harmonic." +#: js/blocks/PitchBlocks.js:212 +#.TRANS: the change measured in half-steps between the current pitch and the previous pitch +msgid "change in pitch" msgstr "" -#: js/ToneBlocks.js:284 -#.TRANS: partials are weighted components in a harmonic series -msgid "Partial weight must be between 0 and 1." +#: js/blocks/PitchBlocks.js:216 +msgid "The Change in pitch block is the difference (in half steps) between the current pitch being played and the previous pitch played." msgstr "" -#: js/ToneBlocks.js:297 -#.TRANS: partials are weighted components in a harmonic series -msgid "Partial block should be used inside of a Weighted-partials block." +#: js/blocks/PitchBlocks.js:243 +#.TRANS: the change measured in scale-steps between the current pitch and the previous pitch +msgid "scalar change in pitch" msgstr "" -#: js/ToneBlocks.js:325 -#.TRANS: partials are weighted components in a harmonic series -msgid "weighted partials" +#: js/blocks/PitchBlocks.js:250 +#: js/blocks/PitchBlocks.js:432 +#: js/blocks/PitchBlocks.js:1667 +#: js/turtleactions/DictActions.js:89 +#: js/widgets/temperament.js:610 +#: js/widgets/temperament.js:614 +#: js/widgets/temperament.js:855 +#.TRANS: convert current note to piano key (1-88) +#.TRANS: a mapping of pitch to the 88 piano keys +msgid "pitch number" msgstr "" -#: js/ToneBlocks.js:383 -msgid "The Harmonic block will add harmonics to the contained notes." +#: js/blocks/PitchBlocks.js:256 +msgid "The Pitch number block is the value of the pitch of the note currently being played." msgstr "" -#: js/ToneBlocks.js:390 -#.TRANS: A harmonic is an overtone. -msgid "harmonic" +#: js/blocks/PitchBlocks.js:329 +#: js/blocks/PitchBlocks.js:433 +#.TRANS: the current pitch expressed in Hertz +msgid "pitch in hertz" msgstr "" -#: js/ToneBlocks.js:431 -msgid "The Distortion block adds distortion to the pitch." +#: js/blocks/PitchBlocks.js:334 +msgid "The Pitch in Hertz block is the value in Hertz of the pitch of the note currently being played." msgstr "" -#: js/ToneBlocks.js:438 -#: js/timbre.js:2100 -#.TRANS: distortion is an alteration in the sound -msgid "distortion" +#: js/blocks/PitchBlocks.js:367 +#: js/turtleactions/DictActions.js:87 +msgid "current pitch" msgstr "" -#: js/ToneBlocks.js:487 -msgid "The Tremolo block adds a wavering effect." +#: js/blocks/PitchBlocks.js:373 +msgid "The Current Pitch block is used with the Pitch Converter block. In the example above, current pitch, sol 4, is displayed as 392 hertz." msgstr "" -#: js/ToneBlocks.js:495 -#: js/timbre.js:2092 -#.TRANS: a wavering effect in a musical tone -msgid "tremolo" +#: js/blocks/PitchBlocks.js:410 +msgid "This block converts the pitch value of the last note played into different formats such as hertz, letter name, pitch number, et al." msgstr "" -#: js/ToneBlocks.js:500 -#: js/ToneBlocks.js:569 -#: js/ToneBlocks.js:630 -#: js/ToneBlocks.js:689 -#: js/timbre.js:2134 -#: js/timbre.js:2222 -#: js/timbre.js:2317 -#: js/timbre.js:2419 -#.TRANS: rate at which tremolo wavers -msgid "rate" +#: js/blocks/PitchBlocks.js:434 +msgid "alphabet" msgstr "" -#: js/ToneBlocks.js:502 -#: js/ToneBlocks.js:630 -#: js/timbre.js:2137 -#: js/timbre.js:2328 -#.TRANS: amplitude of tremolo waver -msgid "depth" +#: js/blocks/PitchBlocks.js:436 +#.TRANS: Translate as "alphabet class" +msgid "letter class" msgstr "" -#: js/ToneBlocks.js:559 -msgid "The Phaser block adds a sweeping sound." +#: js/blocks/PitchBlocks.js:437 +msgid "solfege class" msgstr "" -#: js/ToneBlocks.js:566 -#: js/timbre.js:2098 -#.TRANS: alter the phase of the sound -msgid "phaser" +#: js/blocks/PitchBlocks.js:438 +msgid "staff y" msgstr "" -#: js/ToneBlocks.js:569 -#: js/timbre.js:2422 -msgid "octaves" +#: js/blocks/PitchBlocks.js:439 +msgid "solfege syllable" msgstr "" -#: js/ToneBlocks.js:569 -#: js/timbre.js:2425 -msgid "base frequency" +#: js/blocks/PitchBlocks.js:440 +msgid "pitch class" msgstr "" -#: js/ToneBlocks.js:619 -msgid "The Chorus block adds a chorus effect." +#: js/blocks/PitchBlocks.js:441 +msgid "scalar class" msgstr "" -#: js/ToneBlocks.js:627 -#: js/timbre.js:2096 -#.TRANS: musical effect to simulate a choral sound -msgid "chorus" +#: js/blocks/PitchBlocks.js:443 +msgid "nth degree" msgstr "" -#: js/ToneBlocks.js:630 -msgid "delay" +#: js/blocks/PitchBlocks.js:444 +msgid "pitch to shade" msgstr "" -#: js/ToneBlocks.js:678 -msgid "The Vibrato block adds a rapid, slight variation in pitch." +#: js/blocks/PitchBlocks.js:445 +msgid "pitch to color" msgstr "" -#: js/ToneBlocks.js:686 -#: js/timbre.js:2094 -#.TRANS: a rapid, slight variation in pitch -msgid "vibrato" +#: js/blocks/PitchBlocks.js:629 +#: js/widgets/musickeyboard.js:735 +#.TRANS: MIDI is a technical standard for electronic music +msgid "MIDI" msgstr "" -#: js/ToneBlocks.js:689 -#: js/timbre.js:2221 -msgid "intensity" +#: js/blocks/PitchBlocks.js:642 +#.TRANS: set an offset associated with the numeric piano keyboard mapping +msgid "set pitch number offset" msgstr "" -#: js/ToneBlocks.js:733 -#.TRANS: select synthesizer -msgid "set synth" +#: js/blocks/PitchBlocks.js:645 +msgid "The Set pitch number offset block is used to set the offset for mapping pitch numbers to pitch and octave." msgstr "" -#: js/ToneBlocks.js:804 -msgid "synth name" +#: js/blocks/PitchBlocks.js:679 +#.TRANS: convert piano key number (1-88) to pitch +msgid "number to pitch" msgstr "" -#: js/ToneBlocks.js:842 -msgid "set default instrument" +#: js/blocks/PitchBlocks.js:682 +msgid "The Number to pitch block will convert a pitch number to a pich name." msgstr "" -#: js/ToneBlocks.js:895 -#: js/ToneBlocks.js:943 -#.TRANS: set the characteristics of a custom instrument -msgid "set instrument" +#: js/blocks/PitchBlocks.js:715 +#.TRANS: convert piano key number (1-88) to octave +msgid "number to octave" msgstr "" -#: js/ToneBlocks.js:898 -#: js/ToneBlocks.js:926 -#: js/ToneBlocks.js:932 -msgid "The Set instrument block selects a voice for the synthesizer," +#: js/blocks/PitchBlocks.js:717 +msgid "The Number to octave block will convert a pitch number to an octave." msgstr "" -#: js/ToneBlocks.js:900 -#: js/ToneBlocks.js:934 -msgid "eg guitar piano violin or cello." +#: js/blocks/PitchBlocks.js:726 +msgid "y to pitch" msgstr "" -#: js/ToneBlocks.js:1015 -msgid "Import a sound file to use as an instrument and set its pitch center." +#: js/blocks/PitchBlocks.js:729 +msgid "Y to pitch block will convert a staff y position to corresponding pitch notation." msgstr "" -#: js/ToneBlocks.js:1110 -msgid "Upload a sound file to connect with the sample block." +#: js/blocks/PitchBlocks.js:841 +msgid "accidental selector" msgstr "" -#: js/MeterBlocks.js:34 -#.TRANS: musical meter (time signature), e.g., 4:4 -msgid "current meter" +#: js/blocks/PitchBlocks.js:844 +msgid "The Accidental selector block is used to choose between double-sharp, sharp, natural, flat, and double-flat." msgstr "" -#: js/MeterBlocks.js:85 -#.TRANS: number of beats per minute -msgid "beat factor" +#: js/blocks/PitchBlocks.js:858 +msgid "Pitch can be specified in terms of ni dha pa ma ga re sa." msgstr "" -#: js/MeterBlocks.js:161 -msgid "The Beats per minute block returns the current beats per minute." +#: js/blocks/PitchBlocks.js:872 +msgid "Pitch can be specified in terms of C D E F G A B." msgstr "" -#: js/MeterBlocks.js:169 -#: js/status.js:152 -#.TRANS: number of beats played per minute -msgid "beats per minute2" +#: js/blocks/PitchBlocks.js:884 +msgid "solfege" msgstr "" -#: js/MeterBlocks.js:169 -#: js/MeterBlocks.js:1056 -#: js/MeterBlocks.js:1133 -#: js/MeterBlocks.js:1211 -#.TRANS: sets tempo by defining a beat and beats per minute -msgid "beats per minute" +#: js/blocks/PitchBlocks.js:887 +msgid "Pitch can be specified in terms of do re mi fa sol la ti." msgstr "" -#: js/MeterBlocks.js:233 -#.TRANS: count of current musical measure in meter -msgid "measure count" +#: js/blocks/PitchBlocks.js:922 +msgid "The Invert block rotates any contained notes around a target note." msgstr "" -#: js/MeterBlocks.js:241 -msgid "The Measure count block returns the current measure." +#: js/blocks/PitchBlocks.js:929 +#.TRANS: pitch inversion rotates a pitch around another pitch +msgid "invert" msgstr "" -#: js/MeterBlocks.js:290 -#.TRANS: count of current beat in the meter -msgid "beat count" +#: js/blocks/PitchBlocks.js:968 +#.TRANS: pitch inversion rotates a pitch around another pitch (odd number) +msgid "invert (odd)" msgstr "" -#: js/MeterBlocks.js:300 -#: js/MeterBlocks.js:311 -#: js/MeterBlocks.js:565 -#: js/MeterBlocks.js:576 -msgid "The Beat count block is the number of the current beat," +#: js/blocks/PitchBlocks.js:1001 +#.TRANS: pitch inversion rotates a pitch around another pitch (even number) +msgid "invert (even)" msgstr "" -#: js/MeterBlocks.js:313 -#: js/MeterBlocks.js:578 -msgid "eg 1, 2, 3, or 4." +#: js/blocks/PitchBlocks.js:1022 +#.TRANS: register is the octave of the current pitch +msgid "register" msgstr "" -#: js/MeterBlocks.js:368 -#.TRANS: count the number of notes -msgid "sum note values" +#: js/blocks/PitchBlocks.js:1026 +msgid "The Register block provides an easy way to modify the register (octave) of the notes that follow it." msgstr "" -#: js/MeterBlocks.js:376 -#: js/MeterBlocks.js:440 -msgid "The Note counter block can be used to count the number of contained notes." +#: js/blocks/PitchBlocks.js:1047 +#.TRANS: cents are units used to specify the ratio between pitches. There are 100 cents between successive notes. +msgid "50 cents" msgstr "" -#: js/MeterBlocks.js:432 -#.TRANS: count the number of notes -msgid "note counter" +#: js/blocks/PitchBlocks.js:1102 +msgid "The Semi-tone transposition block will shift the pitches contained inside Note blocks up (or down) by half steps." msgstr "" -#: js/MeterBlocks.js:496 -#.TRANS: number of whole notes that have been played -msgid "whole notes played" +#: js/blocks/PitchBlocks.js:1104 +msgid "In the example shown above, sol is shifted up to sol#." msgstr "" -#: js/MeterBlocks.js:505 -msgid "The Whole notes played block returns the total number of whole notes played." +#: js/blocks/PitchBlocks.js:1110 +#.TRANS: adjust the amount of shift (up or down) of a pitch +msgid "semi-tone transpose" msgstr "" -#: js/MeterBlocks.js:555 -#: js/DictActions.js:83 -#.TRANS: number of notes that have been played -msgid "notes played" +#: js/blocks/PitchBlocks.js:1143 +msgid "The Transpose by Ratio block will shift the pitches contained inside Note blocks up (or down) by a ratio" msgstr "" -#: js/MeterBlocks.js:653 -msgid "The No clock block decouples the notes from the master clock." +#: js/blocks/PitchBlocks.js:1149 +#.TRANS: adjust the amount of shift (up or down) of a pitch +msgid "transpose by ratio" msgstr "" -#: js/MeterBlocks.js:661 -#.TRANS: don't lock notes to master clock -msgid "no clock" +#: js/blocks/PitchBlocks.js:1232 +#.TRANS: down sixth means the note is five scale degrees below current note +msgid "down sixth" msgstr "" -#: js/MeterBlocks.js:700 -msgid "on weak beat do" +#: js/blocks/PitchBlocks.js:1251 +#.TRANS: down third means the note is two scale degrees below current note +msgid "down third" msgstr "" -#: js/MeterBlocks.js:705 -msgid "The On-weak-beat block lets you specify actions to take on weak (off) beats." +#: js/blocks/PitchBlocks.js:1270 +#.TRANS: seventh means the note is the six scale degrees above current note +msgid "seventh" msgstr "" -#: js/MeterBlocks.js:750 -msgid "on strong beat" +#: js/blocks/PitchBlocks.js:1289 +#.TRANS: sixth means the note is the five scale degrees above current note +msgid "sixth" msgstr "" -#: js/MeterBlocks.js:758 -msgid "The On-strong-beat block lets you specify actions to take on specified beats." +#: js/blocks/PitchBlocks.js:1308 +#.TRANS: fifth means the note is the four scale degrees above current note +msgid "fifth" msgstr "" -#: js/MeterBlocks.js:769 -msgid "beat" +#: js/blocks/PitchBlocks.js:1328 +#.TRANS: fourth means the note is three scale degrees above current note +msgid "fourth" msgstr "" -#: js/MeterBlocks.js:813 -msgid "on every beat do" +#: js/blocks/PitchBlocks.js:1347 +#.TRANS: third means the note is two scale degrees above current note +msgid "third" msgstr "" -#: js/MeterBlocks.js:821 -msgid "The On-every-beat block lets you specify actions to take on every beat." +#: js/blocks/PitchBlocks.js:1366 +#.TRANS: second means the note is one scale degree above current note +msgid "second" msgstr "" -#: js/MeterBlocks.js:874 -msgid "on every note do" +#: js/blocks/PitchBlocks.js:1407 +msgid "The Scalar transposition block will shift the pitches contained inside Note blocks up (or down) the scale." msgstr "" -#: js/MeterBlocks.js:882 -msgid "The On-every-note block lets you specify actions to take on every note." +#: js/blocks/PitchBlocks.js:1409 +msgid "In the example shown above, sol is shifted up to la." msgstr "" -#: js/MeterBlocks.js:928 -#: js/MeterBlocks.js:999 -#.TRANS: sets tempo by defining a beat and beats per minute -msgid "master beats per minute" +#: js/blocks/PitchBlocks.js:1416 +#.TRANS: adjust the amount of shift (up or down) of a pitch by musical scale (scalar) steps +msgid "scalar transpose" msgstr "" -#: js/MeterBlocks.js:952 -#: js/MeterBlocks.js:1078 -#: js/MeterBlocks.js:1135 -msgid "bpm" +#: js/blocks/PitchBlocks.js:1451 +msgid "The Accidental block is used to create sharps and flats" msgstr "" -#: js/MeterBlocks.js:952 -#: js/MeterBlocks.js:1078 -#: js/MeterBlocks.js:1135 -msgid "beat value" +#: js/blocks/PitchBlocks.js:1458 +#.TRANS: An accidental is a modification to a pitch, e.g., sharp or flat. +msgid "accidental override" msgstr "" -#: js/MeterBlocks.js:1024 -#: js/MeterBlocks.js:1167 -#: js/MeterBlocks.js:1241 -msgid "Beats per minute must be > 30." +#: js/blocks/PitchBlocks.js:1581 +msgid "The Hertz block (in combination with a Number block) will play a sound at the specified frequency." msgstr "" -#: js/MeterBlocks.js:1027 -#: js/MeterBlocks.js:1170 -#: js/MeterBlocks.js:1244 -msgid "Maximum beats per minute is 1000." +#: js/blocks/PitchBlocks.js:1671 +msgid "The Pitch Number block will play a pitch associated by its number, e.g. 0 for C and 7 for G." msgstr "" -#: js/MeterBlocks.js:1068 -msgid "The Beats per minute block sets the number of 1/4 notes per minute." +#: js/blocks/PitchBlocks.js:1703 +#: js/blocks/PitchBlocks.js:1745 +#.TRANS: a numeric mapping of the notes in an octave based on the musical mode +#.TRANS: a numeric mapping of the notes in an octave based on the musical mode +msgid "nth modal pitch" msgstr "" -#: js/MeterBlocks.js:1279 -#.TRANS: anacrusis -msgid "pickup" +#: js/blocks/PitchBlocks.js:1706 +msgid "n^th Modal Pitch takes the pattern of pitches in semitones for a mode and makes each point a degree of the mode," msgstr "" -#: js/MeterBlocks.js:1367 -msgid "number of beats" +#: js/blocks/PitchBlocks.js:1708 +msgid "starting from 1 and regardless of tonal framework (i.e. not always 8 notes in the octave)" msgstr "" -#: js/DictBlocks.js:77 -msgid "show dictionary" +#: js/blocks/PitchBlocks.js:1749 +msgid "N^th Modal Pitch takes a number as an input as the n^th degree for the given mode. 0 is the first position, 1 is the second, -1 is the note before the first etc." msgstr "" -#: js/DictBlocks.js:129 -msgid "The Dictionary block returns a dictionary." +#: js/blocks/PitchBlocks.js:1751 +msgid "The pitches change according to the mode specified without any need for respellings." msgstr "" -#: js/DictBlocks.js:197 -#: js/DictBlocks.js:339 -msgid "The Get-dict block returns a value in the dictionary for a specified key." +#: js/blocks/PitchBlocks.js:1790 +msgid "Scale Degree is a common convention in music. Scale Degree offers seven possible positions in the scale (1-7) and can be modified via accidentals." msgstr "" -#: js/DictBlocks.js:212 -#: js/DictBlocks.js:354 -#.TRANS: retrieve a value from the dictionary with a given key -msgid "get value" +#: js/blocks/PitchBlocks.js:1792 +msgid "Scale Degree 1 is always the first pitch in a given scale, regardless of octave." msgstr "" -#: js/DictBlocks.js:215 -#: js/DictBlocks.js:216 -#: js/DictBlocks.js:289 -#: js/DictBlocks.js:290 -#: js/DictBlocks.js:357 -#: js/DictBlocks.js:430 -#: js/DictBlocks.js:431 -msgid "key2" +#: js/blocks/PitchBlocks.js:1814 +#.TRANS: step some number of notes in current musical scale +msgid "scalar step" msgstr "" -#: js/DictBlocks.js:271 -#: js/DictBlocks.js:411 -msgid "The Set-dict block sets a value in the dictionary for a specified key." +#: js/blocks/PitchBlocks.js:1819 +msgid "The Scalar Step block (in combination with a Number block) will play the next pitch in a scale," msgstr "" -#: js/DictBlocks.js:286 -#: js/DictBlocks.js:427 -#.TRANS: set a value in the dictionary for a given key -msgid "set value" +#: js/blocks/PitchBlocks.js:1821 +msgid "eg if the last note played was sol, Scalar Step 1 will play la." msgstr "" -#: js/ExtrasBlocks.js:33 -msgid "fraction" +#: js/blocks/PitchBlocks.js:1857 +msgid "The Pitch block specifies the pitch name and octave of a note that together determine the frequency of the note." msgstr "" -#: js/ExtrasBlocks.js:36 -msgid "Convert a float to a fraction" +#: js/blocks/ProgramBlocks.js:33 +msgid "The Load-heap-from-app block loads the heap from a web page." msgstr "" -#: js/ExtrasBlocks.js:93 -msgid "save as ABC" +#: js/blocks/ProgramBlocks.js:44 +#.TRANS: load the heap contents from a URL +msgid "load heap from App" msgstr "" -#: js/ExtrasBlocks.js:96 -#: js/ExtrasBlocks.js:132 -#: js/ExtrasBlocks.js:168 -msgid "title" -msgstr "عنوان المشروع" - -#: js/ExtrasBlocks.js:129 -msgid "save as Lilypond" +#: js/blocks/ProgramBlocks.js:95 +msgid "Error parsing JSON data:" msgstr "" -#: js/ExtrasBlocks.js:165 -msgid "save as SVG" +#: js/blocks/ProgramBlocks.js:100 +msgid "404: Page not found" msgstr "" -#: js/ExtrasBlocks.js:216 -msgid "no background" -msgstr "بدون خلفية" +#: js/blocks/ProgramBlocks.js:133 +msgid "The Save-heap-to-app block saves the heap to a web page." +msgstr "" -#: js/ExtrasBlocks.js:219 -msgid "The No background block eliminates the background from the saved SVG output." +#: js/blocks/ProgramBlocks.js:144 +#.TRANS: save the heap contents to a URL +msgid "save heap to App" msgstr "" -#: js/ExtrasBlocks.js:247 -msgid "show blocks" -msgstr "أظهر اللبنات" +#: js/blocks/ProgramBlocks.js:189 +msgid "Cannot find a valid heap for" +msgstr "" -#: js/ExtrasBlocks.js:249 -msgid "The Show blocks block shows the blocks." +#: js/blocks/ProgramBlocks.js:206 +msgid "The Load-heap block loads the heap from a file." msgstr "" -#: js/ExtrasBlocks.js:274 -msgid "hide blocks" -msgstr "قم بإخفاؤ اللبنات" +#: js/blocks/ProgramBlocks.js:217 +#.TRANS: load the heap from a file +msgid "load heap" +msgstr "حمّل الكومة" -#: js/ExtrasBlocks.js:276 -msgid "The Hide blocks block hides the blocks." +#: js/blocks/ProgramBlocks.js:270 +msgid "The file you selected does not contain a valid heap." msgstr "" -#: js/ExtrasBlocks.js:305 -#: js/ExtrasBlocks.js:335 -msgid "The Space block is used to add space between blocks." +#: js/blocks/ProgramBlocks.js:275 +msgid "The loadHeap block needs a loadFile block." msgstr "" -#: js/ExtrasBlocks.js:373 -msgid "wait" -msgstr "انتظر" - -#: js/ExtrasBlocks.js:376 -msgid "The Wait block pauses the program for a specified number of seconds." +#: js/blocks/ProgramBlocks.js:291 +msgid "The Set-heap block loads the heap." msgstr "" -#: js/ExtrasBlocks.js:430 -#: plugins/facebook.rtp:30 -msgid "comment" -msgstr "تعليق" - -#: js/ExtrasBlocks.js:466 -msgid "print" -msgstr "اطبع" +#: js/blocks/ProgramBlocks.js:340 +msgid "The block you selected does not contain a valid heap." +msgstr "" -#: js/ExtrasBlocks.js:473 -msgid "The Print block displays text at the top of the screen." +#: js/blocks/ProgramBlocks.js:343 +msgid "The Set heap block needs a heap." msgstr "" -#: js/ExtrasBlocks.js:579 -msgid "display grid" +#: js/blocks/ProgramBlocks.js:360 +msgid "The Load-dictionary block loads a dictionary from a file." msgstr "" -#: js/ExtrasBlocks.js:584 -msgid "The Display Grid Block changes the grid type" +#: js/blocks/ProgramBlocks.js:372 +#.TRANS: load a dictionary from a file +msgid "load dictionary" msgstr "" -#: js/ExtrasBlocks.js:686 -#: js/ExtrasBlocks.js:705 -#: js/ExtrasBlocks.js:728 -#: js/ExtrasBlocks.js:751 -#: js/ExtrasBlocks.js:769 -#: js/ExtrasBlocks.js:788 -#: js/ExtrasBlocks.js:807 -#: js/ExtrasBlocks.js:826 -msgid "unknown" -msgstr "المجهول" +#: js/blocks/ProgramBlocks.js:390 +#: js/blocks/ProgramBlocks.js:658 +#: js/blocks/ToneBlocks.js:1025 +msgid "file" +msgstr "" -#: js/SensorsBlocks.js:36 -msgid "The Input block prompts for keyboard input." +#: js/blocks/ProgramBlocks.js:444 +msgid "The file you selected does not contain a valid dictionary." msgstr "" -#: js/SensorsBlocks.js:46 -msgid "input" +#: js/blocks/ProgramBlocks.js:449 +msgid "The load dictionary block needs a load file block." msgstr "" -#: js/SensorsBlocks.js:64 -msgid "Input a value" +#: js/blocks/ProgramBlocks.js:466 +msgid "The Set-dictionary block loads a dictionary." msgstr "" -#: js/SensorsBlocks.js:126 -msgid "input value" +#: js/blocks/ProgramBlocks.js:477 +#.TRANS: load a dictionary from a JSON +msgid "set dictionary" msgstr "" -#: js/SensorsBlocks.js:131 -msgid "The Input-value block stores the input." +#: js/blocks/ProgramBlocks.js:546 +msgid "The block you selected does not contain a valid dictionary." msgstr "" -#: js/SensorsBlocks.js:238 -msgid "loudness" -msgstr "درجة الصوت" +#: js/blocks/ProgramBlocks.js:550 +msgid "The set dictionary block needs a dictionary." +msgstr "" -#: js/SensorsBlocks.js:245 -msgid "The Loudness block returns the volume detected by the microphone." +#: js/blocks/ProgramBlocks.js:567 +msgid "The Save-heap block saves the heap to a file." msgstr "" -#: js/SensorsBlocks.js:300 -msgid "click" -msgstr "انقر" +#: js/blocks/ProgramBlocks.js:578 +#.TRANS: save the heap to a file +msgid "save heap" +msgstr "قم بتخزين الكومة" -#: js/SensorsBlocks.js:306 -msgid "The Click block triggers an event if a mouse has been clicked." +#: js/blocks/ProgramBlocks.js:629 +msgid "The Save-dictionary block saves a dictionary to a file." msgstr "" -#: js/SensorsBlocks.js:313 -msgid "The Click block triggers an event if a turtle has been clicked." +#: js/blocks/ProgramBlocks.js:640 +#.TRANS: save a dictionary to a file +msgid "save dictionary" msgstr "" -#: js/SensorsBlocks.js:342 -msgid "cursor over" +#: js/blocks/ProgramBlocks.js:720 +msgid "The Open palette block opens a palette." msgstr "" -#: js/SensorsBlocks.js:387 -msgid "cursor out" +#: js/blocks/ProgramBlocks.js:727 +msgid "open palette" msgstr "" -#: js/SensorsBlocks.js:433 -msgid "cursor button down" +#: js/blocks/ProgramBlocks.js:785 +msgid "The Delete block block removes a block." msgstr "" -#: js/SensorsBlocks.js:477 -msgid "cursor button up" +#: js/blocks/ProgramBlocks.js:797 +#.TRANS: Move this block to the trash. +msgid "delete block" msgstr "" -#: js/SensorsBlocks.js:638 -msgid "The Get red block returns the red component of the pixel under the mouse." +#: js/blocks/ProgramBlocks.js:861 +msgid "The Move block block moves a block." msgstr "" -#: js/SensorsBlocks.js:644 -msgid "The Get red block returns the red component of the pixel under the turtle." +#: js/blocks/ProgramBlocks.js:869 +#.TRANS: Move the position of a block on the screen. +msgid "move block" msgstr "" -#: js/SensorsBlocks.js:685 -#: plugins/rodi.rtp:216 -msgid "pixel color" -msgstr "لون بكسل" - -#: js/SensorsBlocks.js:690 -msgid "The Get pixel block returns the color of the pixel under the mouse." +#: js/blocks/ProgramBlocks.js:881 +#: js/blocks/ProgramBlocks.js:1048 +msgid "block number" msgstr "" -#: js/SensorsBlocks.js:696 -msgid "The Get pixel block returns the color of the pixel under the turtle." +#: js/blocks/ProgramBlocks.js:935 +#.TRANS: Run program beginning at this block. +msgid "run block" msgstr "" -#: js/SensorsBlocks.js:758 -msgid "time" -msgstr "الوقت" +#: js/blocks/ProgramBlocks.js:1025 +msgid "The Dock block block connections two blocks." +msgstr "" -#: js/SensorsBlocks.js:804 -msgid "cursor y" +#: js/blocks/ProgramBlocks.js:1036 +#.TRANS: We can connect a block to another block. +msgid "connect blocks" msgstr "" -#: js/SensorsBlocks.js:809 -msgid "The Cursor Y block returns the vertical position of the mouse." +#: js/blocks/ProgramBlocks.js:1048 +msgid "target block" msgstr "" -#: js/SensorsBlocks.js:845 -msgid "cursor x" +#: js/blocks/ProgramBlocks.js:1048 +msgid "connection number" msgstr "" -#: js/SensorsBlocks.js:850 -msgid "The Cursor X block returns the horizontal position of the mouse." +#: js/blocks/ProgramBlocks.js:1140 +msgid "The Make block block creates a new block." msgstr "" -#: js/SensorsBlocks.js:886 -msgid "mouse button" -msgstr "زر الفأرة" +#: js/blocks/ProgramBlocks.js:1152 +#.TRANS: Create a new block +msgid "make block" +msgstr "" -#: js/SensorsBlocks.js:888 -msgid "The Mouse-button block returns True if the mouse button is pressed." +#: js/blocks/ProgramBlocks.js:1285 +msgid "Cannot find block" msgstr "" -#: js/SensorsBlocks.js:934 -msgid "to ASCII" +#: js/blocks/ProgramBlocks.js:1304 +#: js/blocks/ProgramBlocks.js:1313 +msgid "Warning: block argument type mismatch" msgstr "" -#: js/SensorsBlocks.js:938 -msgid "The To ASCII block converts numbers to letters." +#: js/blocks/ProgramBlocks.js:1347 +msgid "The Open project block is used to open a project from a web page." msgstr "" -#: js/SensorsBlocks.js:1005 -msgid "The Keyboard block returns computer keyboard input." +#: js/blocks/ProgramBlocks.js:1357 +msgid "open project" msgstr "" -#: js/IntervalsActions.js:216 -msgid "Adding missing pitch number 0." +#: js/blocks/ProgramBlocks.js:1410 +msgid "Please enter a valid URL." msgstr "" -#: js/IntervalsActions.js:224 -msgid "Ignoring pitch numbers less than zero or greater than eleven." +#: js/blocks/ToneBlocks.js:34 +msgid "oscillator" msgstr "" -#: js/IntervalsActions.js:230 -msgid "Ignoring duplicate pitch numbers." +#: js/blocks/ToneBlocks.js:42 +#: js/blocks/WidgetBlocks.js:179 +#: js/widgets/timbre.js:1558 +#: js/widgets/timbre.js:1808 +#.TRANS: there are different types (sine, triangle, square...) of oscillators. +#.TRANS: type of filter, e.g., lowpass, highpass, etc. +msgid "type" msgstr "" -#: js/PitchActions.js:88 -msgid "The Scalar Step Block must be used inside of a Note Block." +#: js/blocks/ToneBlocks.js:44 +#: js/widgets/timbre.js:1562 +#.TRANS: Partials refers to the number of sine waves combined into the sound. +msgid "partials" msgstr "" -#: js/PitchActions.js:107 -msgid "The Scalar Step Block must be preceded by a Pitch Block." +#: js/blocks/ToneBlocks.js:76 +msgid "You are adding multiple oscillator blocks." msgstr "" -#: js/DrumActions.js:231 -msgid "Noise Block: Did you mean to use a Note block?" +#: js/blocks/ToneBlocks.js:144 +#: js/widgets/timbre.js:1225 +#.TRANS: a duo synthesizer combines a synth with a sequencer +msgid "duo synth" msgstr "" -#: js/MeterActions.js:101 -#: js/MeterActions.js:139 -msgid "beats per minute must be greater than" +#: js/blocks/ToneBlocks.js:149 +msgid "The Duo synth block is a duo-frequency modulator used to define a timbre." msgstr "" -#: js/MeterActions.js:111 -#: js/MeterActions.js:149 -msgid "maximum" +#: js/blocks/ToneBlocks.js:157 +#: js/widgets/timbre.js:1476 +msgid "vibrato rate" msgstr "" -#: js/MeterActions.js:117 -#: js/MeterActions.js:155 -msgid "beats per minute is" +#: js/blocks/ToneBlocks.js:157 +msgid "vibrato intensity" msgstr "" -#: js/ToneActions.js:134 -msgid "Vibrato intensity must be between 1 and 100." +#: js/blocks/ToneBlocks.js:185 +#: js/widgets/timbre.js:1221 +#.TRANS: AM (amplitude modulation) synthesizer +msgid "AM synth" msgstr "" -#: js/ToneActions.js:139 -msgid "Vibrato rate must be greater than 0." +#: js/blocks/ToneBlocks.js:189 +msgid "The AM synth block is an amplitude modulator used to define a timbre." msgstr "" -#: js/ToneActions.js:192 -#: js/ToneActions.js:265 -#.TRANS: Depth is the intesity of the tremolo or chorus effect. -msgid "Depth is out of range." +#: js/blocks/ToneBlocks.js:224 +#: js/widgets/timbre.js:1223 +#.TRANS: FM (frequency modulation) synthesizer +msgid "FM synth" msgstr "" -#: js/ToneActions.js:301 -msgid "Distortion must be from 0 to 100." +#: js/blocks/ToneBlocks.js:228 +msgid "The FM synth block is a frequency modulator used to define a timbre." msgstr "" -#: js/ToneActions.js:332 -#.TRANS: partials components in a harmonic series -msgid "Partial must be greater than or equal to 0." +#: js/blocks/ToneBlocks.js:262 +msgid "partial" msgstr "" -#: js/ToneActions.js:378 -#: js/ToneActions.js:417 -#: js/ToneActions.js:456 -#: js/timbre.js:782 -msgid "Unable to use synth due to existing oscillator" +#: js/blocks/ToneBlocks.js:265 +msgid "The Partial block is used to specify a weight for a specific partial harmonic." msgstr "" -#: js/ToneActions.js:388 -#: js/ToneActions.js:427 -msgid "The input cannot be negative." +#: js/blocks/ToneBlocks.js:284 +#.TRANS: partials are weighted components in a harmonic series +msgid "Partial weight must be between 0 and 1." msgstr "" -#: js/DictActions.js:75 -#: js/DictActions.js:153 -#: js/DictActions.js:188 -msgid "font" +#: js/blocks/ToneBlocks.js:297 +#.TRANS: partials are weighted components in a harmonic series +msgid "Partial block should be used inside of a Weighted-partials block." msgstr "" -#: js/musicutils.js:363 -#: js/musicutils.js:471 -#: js/pitchdrummatrix.js:151 -#: js/musickeyboard.js:2563 -msgid "rest" +#: js/blocks/ToneBlocks.js:325 +#.TRANS: partials are weighted components in a harmonic series +msgid "weighted partials" msgstr "" -#: js/musicutils.js:565 -#.TRANS: ordinal number. Please keep exactly one space between each number. -msgid "1st 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th" +#: js/blocks/ToneBlocks.js:383 +msgid "The Harmonic block will add harmonics to the contained notes." msgstr "" -#: js/musicutils.js:629 -#: js/musicutils.js:812 -#: js/musicutils.js:911 -#.TRANS: augmented is a music term related to intervals -msgid "augmented" +#: js/blocks/ToneBlocks.js:390 +#.TRANS: A harmonic is an overtone. +msgid "harmonic" msgstr "" -#: js/musicutils.js:631 -#: js/musicutils.js:813 -#: js/musicutils.js:910 -#.TRANS: diminished is a music term related to intervals and mode -msgid "diminished" +#: js/blocks/ToneBlocks.js:431 +msgid "The Distortion block adds distortion to the pitch." msgstr "" -#: js/musicutils.js:639 -#.TRANS: twelve semi-tone scale for music -msgid "chromatic" +#: js/blocks/ToneBlocks.js:438 +#: js/widgets/timbre.js:2100 +#.TRANS: distortion is an alteration in the sound +msgid "distortion" msgstr "" -#: js/musicutils.js:640 -msgid "algerian" +#: js/blocks/ToneBlocks.js:487 +msgid "The Tremolo block adds a wavering effect." msgstr "" -#: js/musicutils.js:641 -msgid "spanish" +#: js/blocks/ToneBlocks.js:495 +#: js/widgets/timbre.js:2092 +#.TRANS: a wavering effect in a musical tone +msgid "tremolo" msgstr "" -#: js/musicutils.js:643 -#.TRANS: modal scale in music -msgid "octatonic" +#: js/blocks/ToneBlocks.js:500 +#: js/blocks/ToneBlocks.js:569 +#: js/blocks/ToneBlocks.js:630 +#: js/blocks/ToneBlocks.js:689 +#: js/widgets/timbre.js:2134 +#: js/widgets/timbre.js:2222 +#: js/widgets/timbre.js:2317 +#: js/widgets/timbre.js:2419 +#.TRANS: rate at which tremolo wavers +msgid "rate" msgstr "" -#: js/musicutils.js:645 -#.TRANS: harmonic major scale in music -msgid "harmonic major" +#: js/blocks/ToneBlocks.js:502 +#: js/blocks/ToneBlocks.js:630 +#: js/widgets/timbre.js:2137 +#: js/widgets/timbre.js:2328 +#.TRANS: amplitude of tremolo waver +msgid "depth" msgstr "" -#: js/musicutils.js:647 -#.TRANS: natural minor scales in music -msgid "natural minor" +#: js/blocks/ToneBlocks.js:559 +msgid "The Phaser block adds a sweeping sound." msgstr "" -#: js/musicutils.js:649 -#.TRANS: harmonic minor scale in music -msgid "harmonic minor" +#: js/blocks/ToneBlocks.js:566 +#: js/widgets/timbre.js:2098 +#.TRANS: alter the phase of the sound +msgid "phaser" msgstr "" -#: js/musicutils.js:651 -#.TRANS: melodic minor scale in music -msgid "melodic minor" +#: js/blocks/ToneBlocks.js:569 +#: js/turtleactions/IntervalsActions.js:114 +#: js/widgets/timbre.js:2422 +msgid "octaves" msgstr "" -#: js/musicutils.js:655 -#.TRANS: modal scale for music -msgid "dorian" +#: js/blocks/ToneBlocks.js:569 +#: js/widgets/timbre.js:2425 +msgid "base frequency" msgstr "" -#: js/musicutils.js:657 -#.TRANS: modal scale for music -msgid "phrygian" +#: js/blocks/ToneBlocks.js:619 +msgid "The Chorus block adds a chorus effect." msgstr "" -#: js/musicutils.js:659 -#.TRANS: modal scale for music -msgid "lydian" +#: js/blocks/ToneBlocks.js:627 +#: js/widgets/timbre.js:2096 +#.TRANS: musical effect to simulate a choral sound +msgid "chorus" msgstr "" -#: js/musicutils.js:661 -#.TRANS: modal scale for music -msgid "mixolydian" +#: js/blocks/ToneBlocks.js:630 +msgid "delay" msgstr "" -#: js/musicutils.js:665 -#.TRANS: modal scale for music -msgid "locrian" +#: js/blocks/ToneBlocks.js:678 +msgid "The Vibrato block adds a rapid, slight variation in pitch." msgstr "" -#: js/musicutils.js:667 -#.TRANS: minor jazz scale for music -msgid "jazz minor" +#: js/blocks/ToneBlocks.js:686 +#: js/widgets/timbre.js:2094 +#.TRANS: a rapid, slight variation in pitch +msgid "vibrato" msgstr "" -#: js/musicutils.js:669 -#.TRANS: bebop scale for music -msgid "bebop" +#: js/blocks/ToneBlocks.js:689 +#: js/widgets/timbre.js:2221 +msgid "intensity" msgstr "" -#: js/musicutils.js:670 -msgid "arabic" +#: js/blocks/ToneBlocks.js:733 +#.TRANS: select synthesizer +msgid "set synth" msgstr "" -#: js/musicutils.js:671 -msgid "byzantine" +#: js/blocks/ToneBlocks.js:804 +msgid "synth name" msgstr "" -#: js/musicutils.js:673 -#.TRANS: musical scale for music by Verdi -msgid "enigmatic" +#: js/blocks/ToneBlocks.js:842 +msgid "set default instrument" msgstr "" -#: js/musicutils.js:674 -msgid "ethiopian" +#: js/blocks/ToneBlocks.js:895 +#: js/blocks/ToneBlocks.js:943 +#.TRANS: set the characteristics of a custom instrument +msgid "set instrument" msgstr "" -#: js/musicutils.js:676 -#.TRANS: Ethiopic scale for music -msgid "geez" +#: js/blocks/ToneBlocks.js:898 +#: js/blocks/ToneBlocks.js:926 +#: js/blocks/ToneBlocks.js:932 +msgid "The Set instrument block selects a voice for the synthesizer," msgstr "" -#: js/musicutils.js:677 -msgid "hindu" +#: js/blocks/ToneBlocks.js:900 +#: js/blocks/ToneBlocks.js:934 +msgid "eg guitar piano violin or cello." msgstr "" -#: js/musicutils.js:678 -msgid "hungarian" +#: js/blocks/ToneBlocks.js:1015 +msgid "Import a sound file to use as an instrument and set its pitch center." msgstr "" -#: js/musicutils.js:680 -#.TRANS: minor Romanian scale for music -msgid "romanian minor" +#: js/blocks/ToneBlocks.js:1110 +msgid "Upload a sound file to connect with the sample block." msgstr "" -#: js/musicutils.js:681 -msgid "spanish gypsy" +#: js/blocks/VolumeBlocks.js:35 +msgid "synth volume" msgstr "" -#: js/musicutils.js:683 -#.TRANS: musical scale for Mid-Eastern music -msgid "maqam" +#: js/blocks/VolumeBlocks.js:39 +msgid "The Synth volume block returns the current volume of the current synthesizer." msgstr "" -#: js/musicutils.js:685 -#.TRANS: minor blues scale for music -msgid "minor blues" +#: js/blocks/VolumeBlocks.js:105 +msgid "master volume" msgstr "" -#: js/musicutils.js:687 -#.TRANS: major blues scale for music -msgid "major blues" +#: js/blocks/VolumeBlocks.js:109 +msgid "The Master volume block returns the master volume." msgstr "" -#: js/musicutils.js:688 -msgid "whole tone" +#: js/blocks/VolumeBlocks.js:355 +#: js/blocks/VolumeBlocks.js:524 +msgid "set synth volume" msgstr "" -#: js/musicutils.js:690 -#.TRANS: pentatonic is a general term that means "five note scale". This scale is typically known as "minor pentatonic" -msgid "minor pentatonic" +#: js/blocks/VolumeBlocks.js:362 +#: js/blocks/VolumeBlocks.js:545 +msgid "synth" msgstr "" -#: js/musicutils.js:692 -#.TRANS: pentatonic is a general term that means "five note scale". This scale is typically known as "major pentatonic" -msgid "major pentatonic" +#: js/blocks/VolumeBlocks.js:403 +#: js/blocks/VolumeBlocks.js:577 +#: js/blocks/VolumeBlocks.js:740 +#: js/turtleactions/VolumeActions.js:173 +msgid "Setting volume to 0." msgstr "" -#: js/musicutils.js:693 -msgid "chinese" +#: js/blocks/VolumeBlocks.js:440 +msgid "Synth not found" msgstr "" -#: js/musicutils.js:694 -msgid "egyptian" +#: js/blocks/VolumeBlocks.js:494 +msgid "set drum volume" msgstr "" -#: js/musicutils.js:696 -#.TRANS: https://en.wikipedia.org/wiki/Hirajoshi_scale NOTE: There are three different versions of this scale -msgid "hirajoshi" +#: js/blocks/VolumeBlocks.js:530 +msgid "The Set synth volume block will change the volume of a particular synth," msgstr "" -#: js/musicutils.js:697 -msgid "Japan" +#: js/blocks/VolumeBlocks.js:532 +msgid "eg guitar violin snare drum etc." msgstr "" -#: js/musicutils.js:699 -#.TRANS: https://en.wikipedia.org/wiki/In_scale and https://en.wikipedia.org/wiki/Sakura_Sakura -msgid "in" +#: js/blocks/VolumeBlocks.js:534 +msgid "The default volume is 50." msgstr "" -#: js/musicutils.js:701 -#.TRANS: https://en.wikipedia.org/wiki/Miny%C5%8D_scale -msgid "minyo" +#: js/blocks/VolumeBlocks.js:536 +msgid "The range is 0 for silence to 100 for full volume." msgstr "" -#: js/musicutils.js:703 -#.TRANS: Italian mathematician -msgid "fibonacci" +#: js/blocks/VolumeBlocks.js:597 +msgid "set panning" msgstr "" -#: js/musicutils.js:708 -#: js/musicutils.js:1106 -#.TRANS: lowpass filter -msgid "lowpass" +#: js/blocks/VolumeBlocks.js:603 +msgid "The Set Panning block sets the panning for all synthesizers." msgstr "" -#: js/musicutils.js:710 -#: js/musicutils.js:1107 -#.TRANS: bandpass filter -msgid "bandpass" +#: js/blocks/VolumeBlocks.js:625 +msgid "Warning: Sound is coming out from only the left or right side." msgstr "" -#: js/musicutils.js:712 -#: js/musicutils.js:1108 -#.TRANS: high-shelf filter -msgid "highshelf" +#: js/blocks/VolumeBlocks.js:647 +#: js/blocks/VolumeBlocks.js:695 +msgid "set master volume" msgstr "" -#: js/musicutils.js:714 -#: js/musicutils.js:1109 -#.TRANS: low-shelf filter -msgid "lowshelf" +#: js/blocks/VolumeBlocks.js:653 +msgid "The Set master volume block sets the volume for all synthesizers." msgstr "" -#: js/musicutils.js:716 -#: js/musicutils.js:1110 -#.TRANS: notch-shelf filter -msgid "notch" +#: js/blocks/VolumeBlocks.js:784 +msgid "The Set relative volume block changes the volume of the contained notes." msgstr "" -#: js/musicutils.js:718 -#: js/musicutils.js:1111 -#.TRANS: all-pass filter -msgid "allpass" +#: js/blocks/VolumeBlocks.js:791 +msgid "set relative volume" msgstr "" -#: js/musicutils.js:720 -#: js/musicutils.js:1112 -#.TRANS: peaking filter -msgid "peaking" +#: js/blocks/VolumeBlocks.js:857 +msgid "decrescendo" msgstr "" -#: js/musicutils.js:731 -#: js/synthutils.js:58 -#.TRANS: musical instrument -msgid "violin" +#: js/blocks/VolumeBlocks.js:921 +msgid "crescendo" msgstr "" -#: js/musicutils.js:732 -#: js/synthutils.js:60 -#.TRANS: viola musical instrument -msgid "viola" +#: js/blocks/WidgetBlocks.js:81 +#.TRANS: sound envelope (ADSR) +msgid "envelope" msgstr "" -#: js/musicutils.js:733 -#: js/synthutils.js:98 -#.TRANS: xylophone musical instrument -msgid "xylophone" +#: js/blocks/WidgetBlocks.js:89 +#.TRANS: Attack time is the time taken for initial run-up of level from nil to peak, beginning when the key is first pressed. +msgid "attack" msgstr "" -#: js/musicutils.js:734 -#: js/synthutils.js:120 -#.TRANS: vibraphone musical instrument -msgid "vibraphone" +#: js/blocks/WidgetBlocks.js:91 +#.TRANS: Decay time is the time taken for the subsequent run down from the attack level to the designated sustain level. +msgid "decay" msgstr "" -#: js/musicutils.js:735 -#: js/synthutils.js:62 -#.TRANS: musical instrument -msgid "cello" +#: js/blocks/WidgetBlocks.js:93 +#.TRANS: Sustain level is the level during the main sequence of the sound's duration, until the key is released. +msgid "sustain" msgstr "" -#: js/musicutils.js:737 -#: js/synthutils.js:66 -#.TRANS: viola musical instrument -msgid "double bass" +#: js/blocks/WidgetBlocks.js:95 +#.TRANS: Release time is the time taken for the level to decay from the sustain level to zero after the key is released. +msgid "release" msgstr "" -#: js/musicutils.js:738 -#: js/synthutils.js:68 -#: js/rhythmruler.js:2119 -#.TRANS: musical instrument -msgid "guitar" +#: js/blocks/WidgetBlocks.js:113 +msgid "Attack value should be from 0 to 100." msgstr "" -#: js/musicutils.js:739 -#: js/synthutils.js:70 -#.TRANS: musical instrument -msgid "acoustic guitar" +#: js/blocks/WidgetBlocks.js:116 +msgid "Decay value should be from 0 to 100." msgstr "" -#: js/musicutils.js:740 -#: js/synthutils.js:72 -#.TRANS: musical instrument -msgid "flute" +#: js/blocks/WidgetBlocks.js:119 +msgid "Sustain value should be from 0 to 100." msgstr "" -#: js/musicutils.js:741 -#: js/synthutils.js:74 -#.TRANS: musical instrument -msgid "clarinet" +#: js/blocks/WidgetBlocks.js:122 +msgid "Release value should be from 0-100." msgstr "" -#: js/musicutils.js:742 -#: js/synthutils.js:76 -#.TRANS: musical instrument -msgid "saxophone" +#: js/blocks/WidgetBlocks.js:140 +msgid "You are adding multiple envelope blocks." msgstr "" -#: js/musicutils.js:743 -#: js/synthutils.js:78 -#.TRANS: musical instrument -msgid "tuba" +#: js/blocks/WidgetBlocks.js:171 +#.TRANS: a filter removes some unwanted components from a signal +msgid "filter" msgstr "" -#: js/musicutils.js:744 -#: js/synthutils.js:80 -#.TRANS: musical instrument -msgid "trumpet" +#: js/blocks/WidgetBlocks.js:181 +#: js/widgets/timbre.js:1818 +#.TRANS: rolloff is the steepness of a change in frequency. +msgid "rolloff" msgstr "" -#: js/musicutils.js:745 -#: js/synthutils.js:82 -#.TRANS: musical instrument -msgid "oboe" +#: js/blocks/WidgetBlocks.js:213 +#.TRANS: rolloff is the steepness of a change in frequency. +msgid "Rolloff value should be either -12, -24, -48, or -96 decibels/octave." msgstr "" -#: js/musicutils.js:746 -#: js/synthutils.js:84 -#.TRANS: musical instrument -msgid "trombone" +#: js/blocks/WidgetBlocks.js:252 +msgid "The Temperament tool is used to define custom tuning." msgstr "" -#: js/musicutils.js:747 -#: js/synthutils.js:100 -#.TRANS: polytone synthesizer -msgid "electronic synth" +#: js/blocks/WidgetBlocks.js:332 +#: js/blocks/WidgetBlocks.js:1573 +#: js/widgets/sampler.js:547 +msgid "Upload a sample and adjust its pitch center." msgstr "" -#: js/musicutils.js:748 -#: js/synthutils.js:102 -#.TRANS: simple monotone synthesizer -msgid "simple 1" +#: js/blocks/WidgetBlocks.js:339 +#.TRANS: the speed at music is should be played. +msgid "sampler" msgstr "" -#: js/musicutils.js:749 -msgid "simple 2" +#: js/blocks/WidgetBlocks.js:517 +msgid "The Meter block opens a tool to select strong beats for the meter." msgstr "" -#: js/musicutils.js:750 -msgid "simple 3" +#: js/blocks/WidgetBlocks.js:573 +msgid "The oscilloscope block opens a tool to visualize waveforms." msgstr "" -#: js/musicutils.js:751 -msgid "simple 4" +#: js/blocks/WidgetBlocks.js:578 +msgid "oscilloscope" msgstr "" -#: js/musicutils.js:753 -#: js/synthutils.js:49 -#.TRANS: brown noise synthesizer -msgid "brown noise" +#: js/blocks/WidgetBlocks.js:645 +msgid "The Custom mode block opens a tool to explore musical mode (the spacing of the notes in a scale)." msgstr "" -#: js/musicutils.js:754 -#: js/synthutils.js:51 -#.TRANS: pink noise synthesizer -msgid "pink noise" +#: js/blocks/WidgetBlocks.js:651 +#.TRANS: musical mode is the pattern of half-steps in an octave, e.g., Major or Minor modes +msgid "custom mode" msgstr "" -#: js/musicutils.js:756 -#: js/synthutils.js:127 -#: js/rhythmruler.js:1670 -#: js/rhythmruler.js:1928 -#.TRANS: musical instrument -msgid "snare drum" +#: js/blocks/WidgetBlocks.js:700 +msgid "The Tempo block opens a metronome to visualize the beat." msgstr "" -#: js/musicutils.js:757 -#: js/synthutils.js:129 -#.TRANS: musical instrument -msgid "kick drum" +#: js/blocks/WidgetBlocks.js:762 +msgid "The Arpeggio Widget is used to compose chord sequences." msgstr "" -#: js/musicutils.js:758 -#: js/synthutils.js:131 -#.TRANS: musical instrument -msgid "tom tom" +#: js/blocks/WidgetBlocks.js:837 +msgid "The Pitch drum matrix is used to map pitches to drum sounds." msgstr "" -#: js/musicutils.js:759 -#: js/synthutils.js:133 -#.TRANS: musical instrument -msgid "floor tom" +#: js/blocks/WidgetBlocks.js:842 +#.TRANS: makes a mapping between pitches and drum sounds +msgid "pitch-drum mapper" msgstr "" -#: js/musicutils.js:760 -#: js/synthutils.js:135 -#.TRANS: musical instrument -msgid "bass drum" +#: js/blocks/WidgetBlocks.js:891 +msgid "You must have at least one pitch block and one drum block in the matrix." +msgstr "" + +#: js/blocks/WidgetBlocks.js:920 +msgid "The Pitch slider tool to is used to generate pitches at selected frequencies." msgstr "" -#: js/musicutils.js:761 -#: js/synthutils.js:137 -#.TRANS: a drum made from an inverted cup -msgid "cup drum" +#: js/blocks/WidgetBlocks.js:925 +#.TRANS: widget to generate pitches using a slider +msgid "pitch slider" msgstr "" -#: js/musicutils.js:762 -#: js/synthutils.js:139 -#.TRANS: musical instrument -msgid "darbuka drum" +#: js/blocks/WidgetBlocks.js:977 +msgid "chromatic keyboard" msgstr "" -#: js/musicutils.js:763 -#: js/synthutils.js:143 -#.TRANS: musical instrument -msgid "hi hat" +#: js/blocks/WidgetBlocks.js:1011 +#: js/blocks/WidgetBlocks.js:1077 +#.TRANS: widget to generate pitches using a slider +msgid "music keyboard" msgstr "" -#: js/musicutils.js:764 -#: js/synthutils.js:145 -#.TRANS: a small metal bell -msgid "ride bell" +#: js/blocks/WidgetBlocks.js:1062 +#: js/blocks/WidgetBlocks.js:1069 +msgid "The Music keyboard block opens a piano keyboard that can be used to create notes." msgstr "" -#: js/musicutils.js:765 -#: js/synthutils.js:147 -#.TRANS: musical instrument -msgid "cow bell" +#: js/blocks/WidgetBlocks.js:1128 +msgid "The Pitch staircase tool to is used to generate pitches from a given ratio." msgstr "" -#: js/musicutils.js:766 -msgid "japanese drum" +#: js/blocks/WidgetBlocks.js:1135 +#.TRANS: generate a progressive sequence of pitches +msgid "pitch staircase" msgstr "" -#: js/musicutils.js:767 -#: js/synthutils.js:153 -#.TRANS: musical instrument -msgid "japanese bell" +#: js/blocks/WidgetBlocks.js:1222 +msgid "The Rhythm Maker block opens a tool to create drum machines." msgstr "" -#: js/musicutils.js:768 -#: js/synthutils.js:149 -#.TRANS: musical instrument -msgid "triangle bell" +#: js/blocks/WidgetBlocks.js:1291 +msgid "G major scale" msgstr "" -#: js/musicutils.js:769 -#: js/synthutils.js:151 -#.TRANS: musical instrument -msgid "finger cymbals" +#: js/blocks/WidgetBlocks.js:1326 +msgid "C major scale" msgstr "" -#: js/musicutils.js:770 -#: js/synthutils.js:155 -#.TRANS: a musically tuned set of bells -msgid "chime" +#: js/blocks/WidgetBlocks.js:1366 +msgid "The Phrase Maker block opens a tool to create musical phrases." msgstr "" -#: js/musicutils.js:771 -#: js/synthutils.js:157 -#.TRANS: a musical instrument -msgid "gong" +#: js/blocks/WidgetBlocks.js:1373 +#.TRANS: assigns pitch to a sequence of beats to generate a melody +msgid "phrase maker" msgstr "" -#: js/musicutils.js:772 -#: js/synthutils.js:159 -#.TRANS: sound effect -msgid "clang" +#: js/blocks/WidgetBlocks.js:1444 +msgid "You must have at least one pitch block and one rhythm block in the matrix." msgstr "" -#: js/musicutils.js:773 -#: js/synthutils.js:161 -#.TRANS: sound effect -msgid "crash" +#: js/blocks/WidgetBlocks.js:1503 +msgid "The Status block opens a tool for inspecting the status of Music Blocks as it is running." msgstr "" -#: js/musicutils.js:774 -#: js/synthutils.js:163 -#.TRANS: sound effect -msgid "bottle" +#: js/blocks/WidgetBlocks.js:1580 +#.TRANS: AI-generated music +msgid "aimusic" msgstr "" -#: js/musicutils.js:775 -#: js/synthutils.js:165 -#.TRANS: sound effect -msgid "clap" +#: js/turtleactions/MeterActions.js:101 +#: js/turtleactions/MeterActions.js:139 +msgid "beats per minute must be greater than" msgstr "" -#: js/musicutils.js:776 -#: js/synthutils.js:167 -#.TRANS: sound effect -msgid "slap" +#: js/turtleactions/MeterActions.js:111 +#: js/turtleactions/MeterActions.js:149 +msgid "maximum" msgstr "" -#: js/musicutils.js:777 -#: js/synthutils.js:169 -#.TRANS: sound effect -msgid "splash" +#: js/turtleactions/MeterActions.js:117 +#: js/turtleactions/MeterActions.js:155 +msgid "beats per minute is" msgstr "" -#: js/musicutils.js:778 -#: js/synthutils.js:171 -#.TRANS: sound effect -msgid "bubbles" +#: js/turtleactions/DictActions.js:75 +#: js/turtleactions/DictActions.js:142 +#: js/turtleactions/DictActions.js:172 +msgid "font" msgstr "" -#: js/musicutils.js:779 -#: js/synthutils.js:173 -#.TRANS: sound effect -msgid "raindrop" +#: js/turtleactions/DictActions.js:255 +msgid "Dictionary with this name does not exist" msgstr "" -#: js/musicutils.js:780 -#: js/synthutils.js:175 -#.TRANS: animal sound effect -msgid "cat" +#: js/turtleactions/DictActions.js:259 +msgid "Key with this name does not exist in " msgstr "" -#: js/musicutils.js:781 -#: js/synthutils.js:177 -#.TRANS: animal sound effect -msgid "cricket" +#: js/turtleactions/DrumActions.js:227 +msgid "Noise Block: Did you mean to use a Note block?" msgstr "" -#: js/musicutils.js:782 -#: js/synthutils.js:179 -#.TRANS: animal sound effect -msgid "dog" +#: js/turtleactions/IntervalsActions.js:113 +msgid "one" msgstr "" -#: js/musicutils.js:784 -#: js/synthutils.js:86 -#.TRANS: musical instrument -msgid "banjo" +#: js/turtleactions/IntervalsActions.js:113 +msgid "two" msgstr "" -#: js/musicutils.js:785 -#: js/synthutils.js:88 -#.TRANS: musical instrument -msgid "koto" +#: js/turtleactions/IntervalsActions.js:113 +msgid "three" msgstr "" -#: js/musicutils.js:786 -#: js/synthutils.js:90 -#.TRANS: musical instrument -msgid "dulcimer" +#: js/turtleactions/IntervalsActions.js:113 +msgid "four" msgstr "" -#: js/musicutils.js:787 -#: js/synthutils.js:92 -#.TRANS: musical instrument -msgid "electric guitar" +#: js/turtleactions/IntervalsActions.js:113 +msgid "five" msgstr "" -#: js/musicutils.js:788 -#: js/synthutils.js:94 -#.TRANS: musical instrument -msgid "bassoon" +#: js/turtleactions/IntervalsActions.js:113 +msgid "six" msgstr "" -#: js/musicutils.js:789 -#: js/synthutils.js:96 -#.TRANS: musical instrument -msgid "celeste" +#: js/turtleactions/IntervalsActions.js:113 +msgid "seven" msgstr "" -#: js/musicutils.js:791 -#: js/musicutils.js:1123 -#: js/musicutils.js:1131 -#: js/temperament.js:650 -#.TRANS: musical temperament -msgid "equal" +#: js/turtleactions/IntervalsActions.js:113 +msgid "eight" msgstr "" -#: js/musicutils.js:793 -#: js/musicutils.js:1125 -#: js/musicutils.js:1133 -#.TRANS: musical temperament -msgid "Pythagorean" +#: js/turtleactions/IntervalsActions.js:113 +msgid "nine" msgstr "" -#: js/musicutils.js:795 -#: js/musicutils.js:1124 -#: js/musicutils.js:1132 -#.TRANS: musical temperament -msgid "just intonation" +#: js/turtleactions/IntervalsActions.js:119 +msgid "a" msgstr "" -#: js/musicutils.js:797 -#: js/musicutils.js:1126 -#: js/musicutils.js:1127 -#: js/musicutils.js:1134 -#: js/musicutils.js:1135 -#.TRANS: musical temperament -msgid "meantone" +#: js/turtleactions/IntervalsActions.js:120 +msgid "below" msgstr "" -#: js/musicutils.js:814 -msgid "major 7th" +#: js/turtleactions/IntervalsActions.js:124 +msgid "above" msgstr "" -#: js/musicutils.js:815 -msgid "minor 7th" +#: js/turtleactions/IntervalsActions.js:131 +msgid "plus" msgstr "" -#: js/musicutils.js:816 -msgid "dominant 7th" +#: js/turtleactions/IntervalsActions.js:139 +msgid " below" msgstr "" -#: js/musicutils.js:817 -msgid "minor-major 7th" +#: js/turtleactions/IntervalsActions.js:257 +msgid "Adding missing pitch number 0." msgstr "" -#: js/musicutils.js:818 -msgid "fully-diminished 7th" +#: js/turtleactions/IntervalsActions.js:265 +msgid "Ignoring pitch numbers less than zero or greater than eleven." msgstr "" -#: js/musicutils.js:819 -msgid "half-diminished 7th" +#: js/turtleactions/IntervalsActions.js:271 +msgid "Ignoring duplicate pitch numbers." msgstr "" -#: js/musicutils.js:4379 -#: js/musicutils.js:4416 -msgid "current" +#: js/turtleactions/ToneActions.js:134 +msgid "Vibrato intensity must be between 1 and 100." msgstr "" -#: js/musicutils.js:4382 -#: js/musicutils.js:4407 -msgid "next" +#: js/turtleactions/ToneActions.js:139 +msgid "Vibrato rate must be greater than 0." msgstr "" -#: js/musicutils.js:4385 -#: js/musicutils.js:4412 -msgid "previous" +#: js/turtleactions/ToneActions.js:192 +#: js/turtleactions/ToneActions.js:265 +#.TRANS: Depth is the intesity of the tremolo or chorus effect. +msgid "Depth is out of range." msgstr "" -#: js/synthutils.js:104 -#.TRANS: simple monotone synthesizer -msgid "simple-2" +#: js/turtleactions/ToneActions.js:301 +msgid "Distortion must be from 0 to 100." msgstr "" -#: js/synthutils.js:106 -#.TRANS: simple monotone synthesizer -msgid "simple-3" +#: js/turtleactions/ToneActions.js:332 +#.TRANS: partials components in a harmonic series +msgid "Partial must be greater than or equal to 0." msgstr "" -#: js/synthutils.js:108 -#.TRANS: simple monotone synthesizer -msgid "simple-4" +#: js/turtleactions/ToneActions.js:378 +#: js/turtleactions/ToneActions.js:417 +#: js/turtleactions/ToneActions.js:456 +#: js/widgets/timbre.js:782 +msgid "Unable to use synth due to existing oscillator" msgstr "" -#: js/synthutils.js:141 -#.TRANS: musical instrument -msgid "taiko" +#: js/turtleactions/ToneActions.js:388 +#: js/turtleactions/ToneActions.js:427 +msgid "The input cannot be negative." msgstr "" -#: js/modewidget.js:86 -#: js/modewidget.js:88 -#: js/modewidget.js:642 -#: js/modewidget.js:644 -#: js/modewidget.js:712 -#: js/modewidget.js:714 -#: js/temperament.js:2078 -#: js/rhythmruler.js:189 -#: js/rhythmruler.js:1410 -#: js/rhythmruler.js:1412 -#: js/rhythmruler.js:1435 -#: js/rhythmruler.js:1437 -#: js/meterwidget.js:89 -#: js/meterwidget.js:91 +#: js/widgets/modewidget.js:86 +#: js/widgets/modewidget.js:88 +#: js/widgets/modewidget.js:642 +#: js/widgets/modewidget.js:644 +#: js/widgets/modewidget.js:712 +#: js/widgets/modewidget.js:714 +#: js/widgets/meterwidget.js:194 +#: js/widgets/meterwidget.js:196 +#: js/widgets/temperament.js:2236 +#: js/widgets/rhythmruler.js:457 +#: js/widgets/rhythmruler.js:1790 +#: js/widgets/rhythmruler.js:1792 +#: js/widgets/rhythmruler.js:1816 +#: js/widgets/rhythmruler.js:1818 msgid "Play all" msgstr "" -#: js/modewidget.js:115 -#: js/pitchstaircase.js:641 -#: js/phrasemaker.js:339 -#: js/pitchdrummatrix.js:94 -#: js/pitchslider.js:125 -#: js/temperament.js:2083 -#: js/musickeyboard.js:530 -#: js/timbre.js:756 -#: js/meterwidget.js:124 -#: js/arpeggio.js:103 +#: js/widgets/modewidget.js:115 +#: js/widgets/meterwidget.js:229 +#: js/widgets/pitchdrummatrix.js:166 +#: js/widgets/pitchslider.js:125 +#: js/widgets/pitchstaircase.js:641 +#: js/widgets/temperament.js:2244 +#: js/widgets/timbre.js:756 +#: js/widgets/arpeggio.js:103 +#: js/widgets/musickeyboard.js:688 +#: js/widgets/phrasemaker.js:550 msgid "Save" msgstr "" -#: js/modewidget.js:121 -#: js/pitchstaircase.js:686 -#: js/phrasemaker.js:356 -#: js/pitchdrummatrix.js:109 -#: js/musickeyboard.js:534 -#: js/rhythmruler.js:269 -#: js/arpeggio.js:118 +#: js/widgets/modewidget.js:121 +#: js/widgets/pitchdrummatrix.js:181 +#: js/widgets/pitchstaircase.js:686 +#: js/widgets/arpeggio.js:118 +#: js/widgets/musickeyboard.js:696 +#: js/widgets/phrasemaker.js:567 +#: js/widgets/rhythmruler.js:601 #.TRANS: clear all subdivisions from the ruler. msgid "Clear" msgstr "" -#: js/modewidget.js:127 +#: js/widgets/modewidget.js:127 msgid "Rotate counter clockwise" msgstr "" -#: js/modewidget.js:133 +#: js/widgets/modewidget.js:133 msgid "Rotate clockwise" msgstr "" -#: js/modewidget.js:139 +#: js/widgets/modewidget.js:139 msgid "Invert" msgstr "" -#: js/modewidget.js:145 -#: js/pitchstaircase.js:678 -#: js/rhythmruler.js:258 -#: js/timbre.js:963 +#: js/widgets/modewidget.js:145 +#: js/widgets/pitchstaircase.js:678 +#: js/widgets/timbre.js:963 +#: js/widgets/rhythmruler.js:578 msgid "Undo" msgstr "إلغاء الإجراء السابق" -#: js/modewidget.js:163 +#: js/widgets/modewidget.js:163 #.TRANS: A circle of notes represents the musical mode. msgid "Click in the circle to select notes for the mode." msgstr "" -#: js/modewidget.js:1017 -#: js/pitchstaircase.js:580 -#: js/phrasemaker.js:4855 -#: js/temperament.js:1754 -#: js/rhythmruler.js:1865 -#: js/rhythmruler.js:2081 -#: js/tempo.js:414 +#: js/widgets/modewidget.js:1017 +#: js/widgets/pitchstaircase.js:580 +#: js/widgets/temperament.js:1929 +#: js/widgets/tempo.js:414 +#: js/widgets/phrasemaker.js:5356 +#: js/widgets/rhythmruler.js:2254 +#: js/widgets/rhythmruler.js:2472 msgid "New action block generated!" msgstr "" -#: js/oscilloscope.js:79 -msgid "Zoom In" -msgstr "" - -#: js/oscilloscope.js:88 -msgid "Zoom Out" -msgstr "" - -#: js/pitchstaircase.js:624 -msgid "Play chord" -msgstr "" - -#: js/pitchstaircase.js:632 -msgid "Play scale" +#: js/widgets/meterwidget.js:275 +msgid "Reset" msgstr "" -#: js/pitchstaircase.js:696 -msgid "Click on a note to create a new step." +#: js/widgets/meterwidget.js:301 +msgid "Click in the circle to select strong beats for the meter." msgstr "" -#: js/phrasemaker.js:363 -msgid "Export" +#: js/widgets/oscilloscope.js:79 +msgid "Zoom In" msgstr "" -#: js/phrasemaker.js:370 -msgid "Sort" +#: js/widgets/oscilloscope.js:88 +msgid "Zoom Out" msgstr "" -#: js/phrasemaker.js:373 -#: js/musickeyboard.js:559 -msgid "Add note" +#: js/widgets/pitchdrummatrix.js:356 +#: js/widgets/pitchdrummatrix.js:752 +msgid "Click in the grid to map notes to drums." msgstr "" -#: js/phrasemaker.js:764 -msgid "Click on the table to add notes." +#: js/widgets/pitchslider.js:103 +msgid "Move up" msgstr "" -#: js/phrasemaker.js:2414 -#: js/phrasemaker.js:2543 -msgid "tuplet value" +#: js/widgets/pitchslider.js:114 +msgid "Move down" msgstr "" -#: js/pitchdrummatrix.js:270 -#: js/pitchdrummatrix.js:639 -msgid "Click in the grid to map notes to drums." +#: js/widgets/pitchslider.js:136 +msgid "Click on the slider to create a note block." msgstr "" -#: js/pitchslider.js:103 -msgid "Move up" +#: js/widgets/pitchstaircase.js:624 +msgid "Play chord" msgstr "" -#: js/pitchslider.js:114 -msgid "Move down" +#: js/widgets/pitchstaircase.js:632 +msgid "Play scale" msgstr "" -#: js/pitchslider.js:136 -msgid "Click on the slider to create a note block." +#: js/widgets/pitchstaircase.js:696 +msgid "Click on a note to create a new step." msgstr "" -#: js/temperament.js:215 +#: js/widgets/temperament.js:321 msgid "back to 2:1 octave space" msgstr "" -#: js/temperament.js:323 +#: js/widgets/temperament.js:447 msgid "edit" msgstr "" -#: js/temperament.js:330 -#: js/temperament.js:332 -#: js/temperament.js:1336 -#: js/temperament.js:1338 +#: js/widgets/temperament.js:454 +#: js/widgets/temperament.js:456 +#: js/widgets/temperament.js:1493 +#: js/widgets/temperament.js:1495 msgid "close" msgstr "" -#: js/temperament.js:423 -#: js/temperament.js:736 -#: js/temperament.js:743 -#: js/temperament.js:845 -#: js/temperament.js:935 -#: js/temperament.js:942 -#: js/temperament.js:1015 -#: js/temperament.js:1284 -#: js/temperament.js:1354 -#: js/temperament.js:1430 +#: js/widgets/temperament.js:552 +#: js/widgets/temperament.js:877 +#: js/widgets/temperament.js:884 +#: js/widgets/temperament.js:986 +#: js/widgets/temperament.js:1080 +#: js/widgets/temperament.js:1087 +#: js/widgets/temperament.js:1160 +#: js/widgets/temperament.js:1433 +#: js/widgets/temperament.js:1511 +#: js/widgets/temperament.js:1596 msgid "done" msgstr "" -#: js/temperament.js:477 -#: js/temperament.js:482 -#: js/temperament.js:918 +#: js/widgets/temperament.js:610 +#: js/widgets/temperament.js:615 +#: js/widgets/temperament.js:1063 msgid "ratio" msgstr "" -#: js/temperament.js:483 +#: js/widgets/temperament.js:616 msgid "interval" msgstr "" -#: js/temperament.js:611 +#: js/widgets/temperament.js:744 msgid "non scalar" msgstr "" -#: js/temperament.js:650 +#: js/widgets/temperament.js:787 msgid "ratios" msgstr "" -#: js/temperament.js:650 +#: js/widgets/temperament.js:787 msgid "arbitrary" msgstr "" -#: js/temperament.js:719 +#: js/widgets/temperament.js:860 msgid "number of divisions" msgstr "" -#: js/temperament.js:741 -#: js/temperament.js:858 -#: js/temperament.js:940 -#: js/temperament.js:1033 +#: js/widgets/temperament.js:882 +#: js/widgets/temperament.js:999 +#: js/widgets/temperament.js:1085 +#: js/widgets/temperament.js:1178 msgid "preview" msgstr "" -#: js/temperament.js:788 +#: js/widgets/temperament.js:929 msgid "The Number of divisions is too large." msgstr "" -#: js/temperament.js:921 +#: js/widgets/temperament.js:1066 msgid "recursion" msgstr "" -#: js/temperament.js:1450 +#: js/widgets/temperament.js:1616 msgid "The octave ratio has changed. This changes temperament significantly." msgstr "" -#: js/temperament.js:2087 +#: js/widgets/temperament.js:2248 msgid "Table" msgstr "" -#: js/temperament.js:2185 +#: js/widgets/temperament.js:2356 msgid "Add pitches" msgstr "" -#: js/musickeyboard.js:570 -msgid "Metronome" +#: js/widgets/tempo.js:78 +#: js/widgets/tempo.js:97 +#: js/widgets/tempo.js:99 +#: js/widgets/aiwidget.js:134 +#: js/widgets/aiwidget.js:136 +#: js/widgets/rhythmruler.js:681 +#: js/widgets/rhythmruler.js:683 +#: js/widgets/rhythmruler.js:1864 +#: js/widgets/rhythmruler.js:1866 +#: js/widgets/sampler.js:180 +#: js/widgets/sampler.js:182 +msgid "Pause" msgstr "" -#: js/musickeyboard.js:1296 -#: plugins/rodi.rtp:193 -msgid "duration" -msgstr "المدة" +#: js/widgets/tempo.js:113 +msgid "Save tempo" +msgstr "" -#: js/musickeyboard.js:2840 -msgid "New action blocks generated!" +#: js/widgets/tempo.js:144 +msgid "speed up" msgstr "" -#: js/musickeyboard.js:2841 -msgid "New action block generated" +#: js/widgets/tempo.js:150 +msgid "slow down" msgstr "" -#: js/musickeyboard.js:2984 -#: js/musickeyboard.js:2992 -msgid "MIDI device present." +#: js/widgets/tempo.js:194 +msgid "Adjust the tempo with the buttons." msgstr "" -#: js/musickeyboard.js:2995 -msgid "No MIDI device found." +#: js/widgets/tempo.js:261 +msgid "Please enter a number between 30 and 1000" msgstr "" -#: js/musickeyboard.js:3000 -msgid "Failed to get MIDI access in browser." +#: js/widgets/tempo.js:268 +#: js/widgets/tempo.js:271 +msgid "The beats per minute must be between 30 and 1000." msgstr "" -#: js/rhythmruler.js:202 -msgid "Save rhythms" +#: js/widgets/tempo.js:287 +msgid "The beats per minute must be below 1000." msgstr "" -#: js/rhythmruler.js:222 -msgid "Save drum machine" +#: js/widgets/tempo.js:303 +msgid "The beats per minute must be above 30" msgstr "" -#: js/rhythmruler.js:263 -#.TRANS: user can tap out a rhythm by clicking on a ruler. -msgid "Tap a rhythm" +#: js/widgets/timbre.js:766 +msgid "Synthesizer" msgstr "" -#: js/rhythmruler.js:342 -#: js/rhythmruler.js:344 -#: js/rhythmruler.js:1481 -#: js/rhythmruler.js:1483 -#: js/sampler.js:110 -#: js/sampler.js:112 -#: js/tempo.js:78 -#: js/tempo.js:97 -#: js/tempo.js:99 -msgid "Pause" +#: js/widgets/timbre.js:789 +msgid "Oscillator" msgstr "" -#: js/rhythmruler.js:478 -msgid "Click on the ruler to divide it." +#: js/widgets/timbre.js:840 +msgid "Envelope" msgstr "" -#: js/rhythmruler.js:603 -#: js/rhythmruler.js:605 -#: js/rhythmruler.js:804 -#: js/rhythmruler.js:806 -#: js/rhythmruler.js:1386 -#: js/rhythmruler.js:1388 -msgid "tap a rhythm" +#: js/widgets/timbre.js:886 +#: planet/js/GlobalTag.js:50 +#.TRANS: On the Planet, we use labels to tag projects. +msgid "Effects" msgstr "" -#: js/rhythmruler.js:1084 -msgid "Maximum value of 256 has been exceeded." +#: js/widgets/timbre.js:904 +msgid "Filter" msgstr "" -#: js/sampler.js:137 -msgid "Warning: Sample is bigger than 1MB." +#: js/widgets/timbre.js:946 +msgid "Add filter" msgstr "" -#: js/sampler.js:142 -msgid "Upload failed: Sample is not a .wav file." +#: js/widgets/timbre.js:987 +msgid "Click on buttons to open the timbre design tools." msgstr "" -#: js/sampler.js:164 -msgid "A new sample block was generated." +#: js/widgets/timbre.js:1273 +msgid "harmonicity" msgstr "" -#: js/sampler.js:255 -msgid "Upload sample" +#: js/widgets/timbre.js:1340 +#: js/widgets/timbre.js:1406 +msgid "modulation index" msgstr "" -#: js/sampler.js:306 -msgid "Save sample" +#: js/widgets/timbre.js:1484 +msgid "vibrato amount" msgstr "" -#: js/sampler.js:697 -#.TRANS: The reference tone is a sound used for comparison. -msgid "reference tone" +#: js/widgets/timbre.js:1919 +msgid "Filter already present." msgstr "" -#: js/tempo.js:113 -msgid "Save tempo" +#: js/widgets/timbre.js:2322 +msgid "delay (MS)" msgstr "" -#: js/tempo.js:144 -msgid "speed up" +#: js/widgets/timbre.js:2507 +msgid "distortion amount" msgstr "" -#: js/tempo.js:150 -msgid "slow down" +#: js/widgets/aiwidget.js:180 +#: js/widgets/sampler.js:227 +msgid "Warning: Sample is bigger than 1MB." msgstr "" -#: js/tempo.js:194 -msgid "Adjust the tempo with the buttons." +#: js/widgets/aiwidget.js:539 +msgid "New start block generated" msgstr "" -#: js/tempo.js:261 -msgid "Please enter a number between 30 and 1000" +#: js/widgets/aiwidget.js:541 +msgid "MIDI loading. This may take some time depending upon the number of notes in the track" msgstr "" -#: js/tempo.js:268 -#: js/tempo.js:271 -msgid "The beats per minute must be between 30 and 1000." +#: js/widgets/aiwidget.js:551 +#: js/widgets/sampler.js:254 +msgid "Upload failed: Sample is not a .wav file." msgstr "" -#: js/tempo.js:287 -msgid "The beats per minute must be below 1000." +#: js/widgets/aiwidget.js:679 +#: js/widgets/sampler.js:432 +msgid "Save sample" msgstr "" -#: js/tempo.js:303 -msgid "The beats per minute must be above 30" +#: js/widgets/aiwidget.js:701 +msgid "AI Music" msgstr "" -#: js/timbre.js:766 -msgid "Synthesizer" +#: js/widgets/arpeggio.js:239 +msgid "Click in the grid to add steps to the arpeggio." msgstr "" -#: js/timbre.js:789 -msgid "Oscillator" +#: js/widgets/help.js:95 +#: js/widgets/help.js:125 +#: js/widgets/help.js:146 +#: js/widgets/help.js:158 +#: js/widgets/help.js:376 +#: js/widgets/help.js:391 +msgid "Take a tour" msgstr "" -#: js/timbre.js:840 -msgid "Envelope" +#: js/widgets/musickeyboard.js:725 +#: js/widgets/phrasemaker.js:584 +msgid "Add note" msgstr "" -#: js/timbre.js:886 -#: js/GlobalTag.js:50 -#.TRANS: On the Planet, we use labels to tag projects. -msgid "Effects" +#: js/widgets/musickeyboard.js:744 +msgid "Metronome" msgstr "" -#: js/timbre.js:904 -msgid "Filter" +#: js/widgets/musickeyboard.js:1549 +#: plugins/rodi.rtp:193 +msgid "duration" +msgstr "المدة" + +#: js/widgets/musickeyboard.js:3179 +msgid "New action blocks generated" msgstr "" -#: js/timbre.js:946 -msgid "Add filter" +#: js/widgets/musickeyboard.js:3180 +msgid "New action block generated" msgstr "" -#: js/timbre.js:987 -msgid "Click on buttons to open the timbre design tools." +#: js/widgets/musickeyboard.js:3365 +#: js/widgets/musickeyboard.js:3373 +msgid "MIDI device present." msgstr "" -#: js/timbre.js:1273 -msgid "harmonicity" +#: js/widgets/musickeyboard.js:3376 +msgid "No MIDI device found." msgstr "" -#: js/timbre.js:1340 -#: js/timbre.js:1406 -msgid "modulation index" +#: js/widgets/musickeyboard.js:3386 +msgid "Failed to get MIDI access in browser." msgstr "" -#: js/timbre.js:1484 -msgid "vibrato amount" +#: js/widgets/phrasemaker.js:574 +msgid "Export" msgstr "" -#: js/timbre.js:1919 -msgid "Filter already present." +#: js/widgets/phrasemaker.js:581 +msgid "Sort" msgstr "" -#: js/timbre.js:2322 -msgid "delay (MS)" +#: js/widgets/phrasemaker.js:975 +msgid "Click on the table to add notes." msgstr "" -#: js/timbre.js:2507 -msgid "distortion amount" +#: js/widgets/phrasemaker.js:2677 +#: js/widgets/phrasemaker.js:2819 +msgid "tuplet value" msgstr "" -#: js/meterwidget.js:170 -msgid "Reset" +#: js/widgets/rhythmruler.js:486 +msgid "Save rhythms" msgstr "" -#: js/meterwidget.js:196 -msgid "Click in the circle to select strong beats for the meter." +#: js/widgets/rhythmruler.js:512 +msgid "Save drum machine" msgstr "" -#: js/arpeggio.js:239 -msgid "Click in the grid to add steps to the arpeggio." +#: js/widgets/rhythmruler.js:589 +#.TRANS: user can tap out a rhythm by clicking on a ruler. +msgid "Tap a rhythm" msgstr "" -#: js/ProjectStorage.js:243 -msgid "anonymous" +#: js/widgets/rhythmruler.js:817 +msgid "Click on the ruler to divide it." msgstr "" -#: js/GlobalCard.js:68 -msgid "Share" +#: js/widgets/rhythmruler.js:950 +#: js/widgets/rhythmruler.js:952 +#: js/widgets/rhythmruler.js:1152 +#: js/widgets/rhythmruler.js:1154 +#: js/widgets/rhythmruler.js:1765 +#: js/widgets/rhythmruler.js:1767 +msgid "tap a rhythm" +msgstr "" + +#: js/widgets/rhythmruler.js:1459 +msgid "Maximum value of 256 has been exceeded." +msgstr "" + +#: js/widgets/sampler.js:237 +msgid "Recording started..." msgstr "" -#: js/GlobalCard.js:74 -msgid "Flags" +#: js/widgets/sampler.js:245 +msgid "Recording complete..." msgstr "" -#: js/LocalCard.js:36 -msgid "View published project" +#: js/widgets/sampler.js:283 +msgid "A new sample block was generated." msgstr "" -#: js/LocalCard.js:42 -msgid "Publish project" +#: js/widgets/sampler.js:378 +msgid "Upload sample" msgstr "" -#: js/LocalCard.js:51 -msgid "Edit project" +#: js/widgets/sampler.js:399 +msgid "Warning: Your sample cannot be loaded because it is >1MB." msgstr "" -#: js/LocalCard.js:52 -msgid "Delete project" +#: js/widgets/sampler.js:448 +msgid "Toggle Mic" msgstr "" -#: js/LocalCard.js:53 -msgid "Download project" +#: js/widgets/sampler.js:458 +msgid "Playback" msgstr "" -#: js/LocalCard.js:55 -msgid "Duplicate project" +#: js/widgets/sampler.js:979 +#.TRANS: The reference tone is a sound used for comparison. +msgid "reference tone" msgstr "" -#: js/GlobalTag.js:28 +#: planet/js/GlobalTag.js:28 #.TRANS: On the Planet, we use labels to tag projects. msgid "All Projects" msgstr "" -#: js/GlobalTag.js:30 -#: js/StringHelper.js:37 +#: planet/js/GlobalTag.js:30 +#: planet/js/StringHelper.js:37 #.TRANS: On the Planet, we use labels to tag projects. msgid "My Projects" msgstr "" -#: js/GlobalTag.js:32 +#: planet/js/GlobalTag.js:32 #.TRANS: On the Planet, we use labels to tag projects. msgid "Examples" msgstr "" -#: js/GlobalTag.js:34 +#: planet/js/GlobalTag.js:34 #.TRANS: On the Planet, we use labels to tag projects. msgid "Music" msgstr "" -#: js/GlobalTag.js:36 +#: planet/js/GlobalTag.js:36 #.TRANS: On the Planet, we use labels to tag projects. msgid "Art" msgstr "" -#: js/GlobalTag.js:38 +#: planet/js/GlobalTag.js:38 #.TRANS: On the Planet, we use labels to tag projects. msgid "Math" msgstr "" -#: js/GlobalTag.js:40 +#: planet/js/GlobalTag.js:40 #.TRANS: On the Planet, we use labels to tag projects. msgid "Interactive" msgstr "" -#: js/GlobalTag.js:42 +#: planet/js/GlobalTag.js:42 #.TRANS: On the Planet, we use labels to tag projects. msgid "Design" msgstr "" -#: js/GlobalTag.js:44 +#: planet/js/GlobalTag.js:44 #.TRANS: On the Planet, we use labels to tag projects. msgid "Game" msgstr "" -#: js/GlobalTag.js:46 +#: planet/js/GlobalTag.js:46 #.TRANS: On the Planet, we use labels to tag projects. msgid "Media" msgstr "" -#: js/GlobalTag.js:48 +#: planet/js/GlobalTag.js:48 #.TRANS: On the Planet, we use labels to tag projects. msgid "Sensors" msgstr "" -#: js/GlobalTag.js:52 +#: planet/js/GlobalTag.js:52 #.TRANS: On the Planet, we use labels to tag projects. msgid "Code Snippet" msgstr "" -#: js/helper.js:149 -#: js/StringHelper.js:49 -msgid "Show more tags" +#: planet/js/LocalCard.js:36 +msgid "View published project" msgstr "" -#: js/helper.js:150 -msgid "Show fewer tags" +#: planet/js/LocalCard.js:42 +msgid "Publish project" +msgstr "" + +#: planet/js/LocalCard.js:51 +msgid "Edit project" +msgstr "" + +#: planet/js/LocalCard.js:52 +msgid "Delete project" +msgstr "" + +#: planet/js/LocalCard.js:53 +msgid "Download project" +msgstr "" + +#: planet/js/LocalCard.js:55 +msgid "Duplicate project" +msgstr "" + +#: planet/js/ProjectStorage.js:243 +msgid "anonymous" +msgstr "" + +#: planet/js/SaveInterface.js:34 +msgid "Open in Music Blocks" +msgstr "" + +#: planet/js/SaveInterface.js:35 +msgid "Open in Turtle Blocks" +msgstr "" + +#: planet/js/GlobalCard.js:68 +msgid "Share" +msgstr "" + +#: planet/js/GlobalCard.js:74 +msgid "Flags" +msgstr "" + +#: planet/js/GlobalPlanet.js:35 +msgid "No results found." +msgstr "" + +#: planet/js/GlobalPlanet.js:51 +msgid "Remix of" msgstr "" -#: js/ProjectViewer.js:30 +#: planet/js/GlobalPlanet.js:509 +msgid "Cannot connect to server" +msgstr "" + +#: planet/js/ProjectViewer.js:30 msgid "Error: Report could not be submitted. Try again later." msgstr "" -#: js/ProjectViewer.js:31 +#: planet/js/ProjectViewer.js:31 msgid "Thank you for reporting this project. A moderator will review the project shortly, to verify violation of the Sugar Labs Code of Conduct." msgstr "" -#: js/ProjectViewer.js:32 -#: js/StringHelper.js:62 -#: js/StringHelper.js:64 -#: js/StringHelper.js:68 +#: planet/js/ProjectViewer.js:32 +#: planet/js/StringHelper.js:62 +#: planet/js/StringHelper.js:64 +#: planet/js/StringHelper.js:68 msgid "Report Project" msgstr "" -#: js/ProjectViewer.js:33 -#: js/StringHelper.js:63 +#: planet/js/ProjectViewer.js:33 +#: planet/js/StringHelper.js:63 msgid "Project Reported" msgstr "" -#: js/ProjectViewer.js:34 +#: planet/js/ProjectViewer.js:34 msgid "Report description required" msgstr "" -#: js/ProjectViewer.js:35 +#: planet/js/ProjectViewer.js:35 msgid "Report description too long" msgstr "" -#: js/StringHelper.js:30 +#: planet/js/Publisher.js:30 +msgid "Feature unavailable - cannot connect to server. Reload Music Blocks to try again." +msgstr "" + +#: planet/js/Publisher.js:220 +#: planet/js/Publisher.js:237 +msgid "This field is required" +msgstr "" + +#: planet/js/Publisher.js:227 +msgid "Title too long" +msgstr "" + +#: planet/js/Publisher.js:244 +msgid "Description too long" +msgstr "" + +#: planet/js/Publisher.js:341 +msgid "Server Error" +msgstr "" + +#: planet/js/Publisher.js:341 +msgid "Try Again" +msgstr "" + +#: planet/js/StringHelper.js:30 msgid "Planet" msgstr "كوكب" -#: js/StringHelper.js:31 +#: planet/js/StringHelper.js:31 msgid "Close Planet" msgstr "" -#: js/StringHelper.js:32 +#: planet/js/StringHelper.js:32 msgid "Open project from file" msgstr "" -#: js/StringHelper.js:34 +#: planet/js/StringHelper.js:34 msgid "Local" msgstr "" -#: js/StringHelper.js:35 +#: planet/js/StringHelper.js:35 msgid "Global" msgstr "" -#: js/StringHelper.js:36 +#: planet/js/StringHelper.js:36 msgid "Search for a project" msgstr "" -#: js/StringHelper.js:38 +#: planet/js/StringHelper.js:38 msgid "Publish Project" msgstr "" -#: js/StringHelper.js:40 +#: planet/js/StringHelper.js:40 msgid "Tags (max 5)" msgstr "" -#: js/StringHelper.js:41 -#: js/StringHelper.js:61 +#: planet/js/StringHelper.js:41 +#: planet/js/StringHelper.js:61 msgid "Description" msgstr "" -#: js/StringHelper.js:42 -#: js/StringHelper.js:67 +#: planet/js/StringHelper.js:42 +#: planet/js/StringHelper.js:67 msgid "Submit" msgstr "" -#: js/StringHelper.js:43 -#: js/StringHelper.js:47 +#: planet/js/StringHelper.js:43 +#: planet/js/StringHelper.js:47 msgid "Cancel" msgstr "" -#: js/StringHelper.js:44 +#: planet/js/StringHelper.js:44 msgid "Delete \\"\\"?" msgstr "" -#: js/StringHelper.js:45 +#: planet/js/StringHelper.js:45 msgid "Permanently delete project \\"\\"?" msgstr "" -#: js/StringHelper.js:48 +#: planet/js/StringHelper.js:48 msgid "Explore Projects" msgstr "" -#: js/StringHelper.js:50 +#: planet/js/StringHelper.js:49 +#: planet/js/helper.js:149 +msgid "Show more tags" +msgstr "" + +#: planet/js/StringHelper.js:50 msgid "Most recent" msgstr "" -#: js/StringHelper.js:51 +#: planet/js/StringHelper.js:51 msgid "Most liked" msgstr "" -#: js/StringHelper.js:52 +#: planet/js/StringHelper.js:52 msgid "Most downloaded" msgstr "" -#: js/StringHelper.js:53 +#: planet/js/StringHelper.js:53 msgid "A-Z" msgstr "" -#: js/StringHelper.js:54 +#: planet/js/StringHelper.js:54 msgid "Sort by" msgstr "" -#: js/StringHelper.js:55 +#: planet/js/StringHelper.js:55 msgid "Load More Projects" msgstr "" -#: js/StringHelper.js:56 +#: planet/js/StringHelper.js:56 msgid "Last Updated" msgstr "" -#: js/StringHelper.js:57 +#: planet/js/StringHelper.js:57 msgid "Creation Date" msgstr "" -#: js/StringHelper.js:58 +#: planet/js/StringHelper.js:58 msgid "Number of Downloads:" msgstr "" -#: js/StringHelper.js:59 +#: planet/js/StringHelper.js:59 msgid "Number of Likes:" msgstr "" -#: js/StringHelper.js:60 +#: planet/js/StringHelper.js:60 msgid "Tags:" msgstr "" -#: js/StringHelper.js:65 +#: planet/js/StringHelper.js:65 msgid "Report projects which violate the Sugar Labs Code of Conduct." msgstr "" -#: js/StringHelper.js:66 +#: planet/js/StringHelper.js:66 msgid "Reason for reporting project" msgstr "" -#: js/StringHelper.js:70 +#: planet/js/StringHelper.js:70 msgid "Download as File" msgstr "" -#: js/GlobalPlanet.js:35 -msgid "No results found." -msgstr "" - -#: js/GlobalPlanet.js:51 -msgid "Remix of" -msgstr "" - -#: js/GlobalPlanet.js:509 -msgid "Cannot connect to server" -msgstr "" - -#: js/Publisher.js:30 -msgid "Feature unavailable - cannot connect to server. Reload Music Blocks to try again." -msgstr "" - -#: js/Publisher.js:218 -#: js/Publisher.js:235 -msgid "This field is required" -msgstr "" - -#: js/Publisher.js:225 -msgid "Title too long" +#: planet/js/helper.js:150 +msgid "Show fewer tags" msgstr "" -#: js/Publisher.js:242 -msgid "Description too long" -msgstr "" +#: plugins/accelerometer.rtp:48 +msgid "motion x" +msgstr "حركة س" -#: js/Publisher.js:339 -msgid "Server Error" -msgstr "" +#: plugins/accelerometer.rtp:56 +msgid "motion y" +msgstr "pv;m w" -#: js/Publisher.js:339 -msgid "Try Again" -msgstr "" +#: plugins/accelerometer.rtp:64 +msgid "motion z" +msgstr "حركة ع" -#: js/SaveInterface.js:34 -msgid "Open in Music Blocks" -msgstr "" +#: plugins/facebook.rtp:27 +msgid "publish" +msgstr "نشر المشروع على الفيسبوك" -#: js/SaveInterface.js:35 -msgid "Open in Turtle Blocks" -msgstr "" +#: plugins/maths.rtp:62 +msgid "power" +msgstr "الأس" -#: plugins/weather.rtp:68 -#: plugins/weather.rtp:97 -msgid "Days ahead must be in the range of -1 to 5." -msgstr "" +#: plugins/maths.rtp:62 +msgid "base" +msgstr "الأساس" -#: plugins/weather.rtp:122 -msgid "forecast" -msgstr "التنبؤات الجوية" +#: plugins/maths.rtp:62 +msgid "exp" +msgstr "الأس" -#: plugins/weather.rtp:123 -#: plugins/weather.rtp:137 -#: plugins/weather.rtp:150 -msgid "city" -msgstr "مدينة" +#: plugins/maths.rtp:99 +msgid "floor" +msgstr "دالة الجزء الصحيح" -#: plugins/weather.rtp:124 -#: plugins/weather.rtp:138 -#: plugins/weather.rtp:151 -msgid "day" -msgstr "يوم" +#: plugins/maths.rtp:104 +msgid "ceiling" +msgstr "السقف" -#: plugins/weather.rtp:136 -msgid "high" -msgstr "مرتفعة" +#: plugins/maths.rtp:109 +msgid "to degrees" +msgstr "إلى درجات" -#: plugins/weather.rtp:149 -msgid "low" -msgstr "متدنية" +#: plugins/maths.rtp:114 +msgid "to radians" +msgstr "إلى النظام الدائري" #: plugins/nutrition.rtp:104 msgid "get calories" @@ -9466,45 +7754,6 @@ msgstr "ملفات تعريف الارتباط" msgid "water" msgstr "الماء" -#: plugins/maths.rtp:62 -#: plugins/examples.rtp:93 -msgid "power" -msgstr "الأس" - -#: plugins/maths.rtp:62 -#: plugins/examples.rtp:93 -msgid "base" -msgstr "الأساس" - -#: plugins/maths.rtp:62 -#: plugins/examples.rtp:93 -msgid "exp" -msgstr "الأس" - -#: plugins/maths.rtp:99 -#: plugins/examples.rtp:130 -msgid "floor" -msgstr "دالة الجزء الصحيح" - -#: plugins/maths.rtp:104 -#: plugins/examples.rtp:135 -msgid "ceiling" -msgstr "السقف" - -#: plugins/maths.rtp:109 -#: plugins/examples.rtp:140 -msgid "to degrees" -msgstr "إلى درجات" - -#: plugins/maths.rtp:114 -#: plugins/examples.rtp:145 -msgid "to radians" -msgstr "إلى النظام الدائري" - -#: plugins/facebook.rtp:27 -msgid "publish" -msgstr "نشر المشروع على الفيسبوك" - #: plugins/rodi.rtp:172 msgid "blink" msgstr "" @@ -9533,17 +7782,68 @@ msgstr "" msgid "move" msgstr "حرّك" -#: plugins/accelerometer.rtp:48 -msgid "motion x" -msgstr "حركة س" +#: plugins/weather.rtp:68 +#: plugins/weather.rtp:97 +msgid "Days ahead must be in the range of -1 to 5." +msgstr "" -#: plugins/accelerometer.rtp:56 -msgid "motion y" -msgstr "pv;m w" +#: plugins/weather.rtp:122 +msgid "forecast" +msgstr "التنبؤات الجوية" -#: plugins/accelerometer.rtp:64 -msgid "motion z" -msgstr "حركة ع" +#: plugins/weather.rtp:123 +#: plugins/weather.rtp:137 +#: plugins/weather.rtp:150 +msgid "city" +msgstr "مدينة" + +#: plugins/weather.rtp:124 +#: plugins/weather.rtp:138 +#: plugins/weather.rtp:151 +msgid "day" +msgstr "يوم" + +#: plugins/weather.rtp:136 +msgid "high" +msgstr "مرتفعة" + +#: plugins/weather.rtp:149 +msgid "low" +msgstr "متدنية" + +#~msgid ""Toggle Fullscreen" +#~msgstr ""تبديل ملء الشاشة" + +#: js/toolbar.js:70 + +#: js/toolbar.js:130 + +#: js/toolbar.js:194 + +#: js/toolbar.js:249 + +#~msgid "Toggle JavaScript Editor" +#~msgstr "" + +#: js/EnsembleBlocks.js:643 + +#~msgid "The Turrle pitch block returns the current pitch number being played by the specified turtle." +#~msgstr "" + +#: js/PitchActions.js:88 + +#~msgid "The Scalar Step Block must be used inside of a Note Block." +#~msgstr "" + +#: js/PitchActions.js:107 + +#~msgid "The Scalar Step Block must be preceded by a Pitch Block." +#~msgstr "" + +#: js/musickeyboard.js:2840 + +#~msgid "New action blocks generated!" +#~msgstr "" #: js/toolbar.js:110 @@ -9885,11 +8185,6 @@ msgstr "حركة ع" #~msgid "The Time block returns the number of seconds that the program has been running." #~msgstr "" -#: js/help.js:95 - -#~msgid "Take a tour" -#~msgstr "" - #: js/GlobalCard.js:48 #~msgid "More Details" @@ -12788,11 +11083,6 @@ msgstr "حركة ع" #~msgid "The save-stack button saves a stack onto a custom palette. It appears after a \"long press\" on a stack." #~msgstr "" -#: js/musicutils.js:254 - -#~msgid "Custom" -#~msgstr "" - #: js/basicblocks.js:4785 #~msgid "Rhythm" diff --git a/po/ayc.po b/po/ayc.po index 1dc0836269..a7ec0fd923 100644 --- a/po/ayc.po +++ b/po/ayc.po @@ -15,713 +15,153 @@ #js/toolbar.js:230 #js/turtledefs.js:504 #js/turtledefs.js:505 -msgid: "Toggle Fullscreen" -msgstr: "Ajarka pantalla sarnaqapxana" - -#: js/RhythmBlockPaletteBlocks.js:14 -#: js/RhythmBlockPaletteBlocks.js:177 -#: js/RhythmBlockPaletteBlocks.js:14 -#: js/RhythmBlockPaletteBlocks.js:177 -#: js/RhythmBlockPaletteBlocks.js:14 -#: js/RhythmBlockPaletteBlocks.js:170 -#: js/block.js:1436 -#: js/block.js:7910 -#: js/block.js:7931 -#: js/block.js:7948 -#: js/activity.js:2693 -#: js/palette.js:932 -#: js/palette.js:941 -#: js/palette.js:950 -#: js/palette.js:959 -#: js/palette.js:2511 -#: js/palette.js:2522 -#: js/palette.js:2533 -#: js/palette.js:2544 -#: js/palette.js:2563 -#: js/turtledefs.js:76 -#: js/rubrics.js:497 -#: js/macros.js:153 -#: js/macros.js:249 -#: js/macros.js:250 -#: js/macros.js:259 -#: js/macros.js:801 -#: js/blocks.js:1120 -#: js/blocks.js:3549 -#: js/blocks.js:3550 -#: js/blocks.js:3786 -#: js/blocks.js:4168 -#: js/blocks.js:4363 -#: js/blocks.js:5526 -#: js/blocks.js:6776 -#: js/ActionBlocks.js:99 -#: js/ActionBlocks.js:147 -#: js/ActionBlocks.js:350 -#: js/ActionBlocks.js:415 -#: js/ActionBlocks.js:569 -#: js/ActionBlocks.js:629 -#: js/ActionBlocks.js:765 -#: js/ActionBlocks.js:768 -#: js/ActionBlocks.js:773 -#: js/ActionBlocks.js:805 -#: js/MeterBlocks.js:412 -#: js/MeterBlocks.js:479 -#: js/MeterBlocks.js:568 -#: js/MeterBlocks.js:669 -#: js/musickeyboard.js:2360 -#: js/pitchtimematrix.js:4708 -#: js/rhythmruler.js:1602 -#: js/rhythmruler.js:1610 -#: js/rhythmruler.js:1911 -#: js/rhythmruler.js:1919 -#: js/block.js:1436 -#: js/block.js:8089 -#: js/block.js:8110 -#: js/block.js:8127 -#: js/activity.js:2968 -#: js/palette.js:503 -#: js/palette.js:512 -#: js/palette.js:521 -#: js/palette.js:530 -#: js/palette.js:1122 -#: js/palette.js:1133 -#: js/palette.js:1144 -#: js/palette.js:1155 -#: js/palette.js:1174 -#: js/turtledefs.js:76 -#: js/rubrics.js:497 -#: js/macros.js:153 -#: js/macros.js:249 -#: js/macros.js:250 -#: js/macros.js:259 -#: js/macros.js:801 -#: js/blocks.js:1120 -#: js/blocks.js:3572 -#: js/blocks.js:3573 -#: js/blocks.js:3809 -#: js/blocks.js:4191 -#: js/blocks.js:4382 -#: js/blocks.js:5545 -#: js/blocks.js:6795 -#: js/ActionBlocks.js:99 -#: js/ActionBlocks.js:147 -#: js/ActionBlocks.js:343 -#: js/ActionBlocks.js:408 -#: js/ActionBlocks.js:562 -#: js/ActionBlocks.js:622 -#: js/ActionBlocks.js:749 -#: js/ActionBlocks.js:752 -#: js/ActionBlocks.js:757 -#: js/ActionBlocks.js:789 -#: js/MeterBlocks.js:390 -#: js/MeterBlocks.js:419 -#: js/MeterBlocks.js:455 -#: js/MeterBlocks.js:494 -#: js/musickeyboard.js:2421 -#: js/pitchtimematrix.js:4706 -#: js/rhythmruler.js:1602 -#: js/rhythmruler.js:1610 -#: js/rhythmruler.js:1911 -#: js/rhythmruler.js:1919 -#: js/block.js:1436 -#: js/block.js:8073 -#: js/block.js:8094 -#: js/block.js:8111 -#: js/activity.js:2984 -#: js/palette.js:503 -#: js/palette.js:512 -#: js/palette.js:521 -#: js/palette.js:530 -#: js/palette.js:1122 -#: js/palette.js:1133 -#: js/palette.js:1144 -#: js/palette.js:1155 -#: js/palette.js:1174 -#: js/turtledefs.js:78 -#: js/rubrics.js:501 -#: js/macros.js:153 -#: js/macros.js:249 -#: js/macros.js:250 -#: js/macros.js:259 -#: js/macros.js:801 -#: js/blocks.js:1112 -#: js/blocks.js:3545 -#: js/blocks.js:3546 -#: js/blocks.js:3779 -#: js/blocks.js:4160 -#: js/blocks.js:4346 -#: js/blocks.js:5496 -#: js/blocks.js:6721 -#: js/ActionBlocks.js:99 -#: js/ActionBlocks.js:147 -#: js/ActionBlocks.js:343 -#: js/ActionBlocks.js:408 -#: js/ActionBlocks.js:562 -#: js/ActionBlocks.js:622 -#: js/ActionBlocks.js:750 -#: js/ActionBlocks.js:753 -#: js/ActionBlocks.js:758 -#: js/ActionBlocks.js:790 -#: js/MeterBlocks.js:396 -#: js/MeterBlocks.js:425 -#: js/MeterBlocks.js:461 -#: js/MeterBlocks.js:500 -#: js/musickeyboard.js:2495 -#: js/pitchtimematrix.js:4718 -#: js/rhythmruler.js:1602 -#: js/rhythmruler.js:1610 -#: js/rhythmruler.js:1911 -#: js/rhythmruler.js:1919 -#: js/block.js:1436 -#: js/block.js:8073 -#: js/block.js:8094 -#: js/block.js:8111 -#: js/activity.js:2984 -#: js/palette.js:503 -#: js/palette.js:512 -#: js/palette.js:521 -#: js/palette.js:530 -#: js/palette.js:1122 -#: js/palette.js:1133 -#: js/palette.js:1144 -#: js/palette.js:1155 -#: js/palette.js:1174 -#: js/turtledefs.js:78 -#: js/rubrics.js:501 -#: js/macros.js:153 -#: js/macros.js:249 -#: js/macros.js:250 -#: js/macros.js:259 -#: js/macros.js:801 -#: js/blocks.js:1112 -#: js/blocks.js:3545 -#: js/blocks.js:3546 -#: js/blocks.js:3779 -#: js/blocks.js:4160 -#: js/blocks.js:4346 -#: js/blocks.js:5496 -#: js/blocks.js:6721 -#: js/ActionBlocks.js:99 -#: js/ActionBlocks.js:147 -#: js/ActionBlocks.js:343 -#: js/ActionBlocks.js:408 -#: js/ActionBlocks.js:562 -#: js/ActionBlocks.js:622 -#: js/ActionBlocks.js:750 -#: js/ActionBlocks.js:753 -#: js/ActionBlocks.js:758 -#: js/ActionBlocks.js:790 -#: js/MeterBlocks.js:396 -#: js/MeterBlocks.js:425 -#: js/MeterBlocks.js:461 -#: js/MeterBlocks.js:500 -#: js/musickeyboard.js:2495 -#: js/pitchtimematrix.js:4718 -#: js/rhythmruler.js:1602 -#: js/rhythmruler.js:1610 -#: js/rhythmruler.js:1911 -#: js/rhythmruler.js:1919 -#: js/block.js:1436 -#: js/block.js:8073 -#: js/block.js:8094 -#: js/block.js:8111 -#: js/activity.js:2984 -#: js/palette.js:506 -#: js/palette.js:515 -#: js/palette.js:524 -#: js/palette.js:533 -#: js/palette.js:1128 -#: js/palette.js:1139 -#: js/palette.js:1150 -#: js/palette.js:1161 -#: js/palette.js:1180 -#: js/turtledefs.js:78 -#: js/rubrics.js:501 -#: js/macros.js:153 -#: js/macros.js:249 -#: js/macros.js:250 -#: js/macros.js:259 -#: js/macros.js:801 -#: js/blocks.js:1112 -#: js/blocks.js:3545 -#: js/blocks.js:3546 -#: js/blocks.js:3779 -#: js/blocks.js:4160 -#: js/blocks.js:4346 -#: js/blocks.js:5496 -#: js/blocks.js:6721 -#: js/ActionBlocks.js:99 -#: js/ActionBlocks.js:147 -#: js/ActionBlocks.js:343 -#: js/ActionBlocks.js:408 -#: js/ActionBlocks.js:562 -#: js/ActionBlocks.js:622 -#: js/ActionBlocks.js:750 -#: js/ActionBlocks.js:753 -#: js/ActionBlocks.js:758 -#: js/ActionBlocks.js:790 -#: js/MeterBlocks.js:396 -#: js/MeterBlocks.js:425 -#: js/MeterBlocks.js:461 -#: js/MeterBlocks.js:500 -#: js/musickeyboard.js:2495 -#: js/pitchtimematrix.js:4718 -#: js/rhythmruler.js:1602 -#: js/rhythmruler.js:1610 -#: js/rhythmruler.js:1911 -#: js/rhythmruler.js:1919 -#: js/block.js:1414 -#: js/block.js:4018 -#: js/block.js:4036 -#: js/block.js:4047 -#: js/activity.js:2899 -#: js/palette.js:486 -#: js/palette.js:495 -#: js/palette.js:504 -#: js/palette.js:513 -#: js/palette.js:1089 -#: js/palette.js:1100 -#: js/palette.js:1111 -#: js/palette.js:1122 -#: js/palette.js:1141 -#: js/turtledefs.js:78 -#: js/rubrics.js:501 -#: js/macros.js:170 -#: js/macros.js:266 -#: js/macros.js:267 -#: js/macros.js:276 -#: js/macros.js:828 -#: js/blocks.js:1071 -#: js/blocks.js:3210 -#: js/blocks.js:3211 -#: js/blocks.js:3428 -#: js/blocks.js:3752 -#: js/blocks.js:3932 -#: js/blocks.js:4976 -#: js/blocks.js:5845 -#: js/ActionBlocks.js:99 -#: js/ActionBlocks.js:147 -#: js/ActionBlocks.js:343 -#: js/ActionBlocks.js:408 -#: js/ActionBlocks.js:562 -#: js/ActionBlocks.js:622 -#: js/ActionBlocks.js:750 -#: js/ActionBlocks.js:753 -#: js/ActionBlocks.js:758 -#: js/ActionBlocks.js:790 -#: js/MeterBlocks.js:396 -#: js/MeterBlocks.js:426 -#: js/MeterBlocks.js:462 -#: js/MeterBlocks.js:501 -#: js/musickeyboard.js:2495 -#: js/rhythmruler.js:1874 -#: js/rhythmruler.js:1881 -#: js/rhythmruler.js:2065 -#: js/rhythmruler.js:2072 -#: js/phrasemaker.js:4226 -#: js/block.js:1414 -#: js/block.js:4020 -#: js/block.js:4038 -#: js/block.js:4049 -#: js/activity.js:2899 -#: js/palette.js:486 -#: js/palette.js:495 -#: js/palette.js:504 -#: js/palette.js:513 -#: js/palette.js:1089 -#: js/palette.js:1100 -#: js/palette.js:1111 -#: js/palette.js:1122 -#: js/palette.js:1141 -#: js/turtledefs.js:78 -#: js/rubrics.js:501 -#: js/macros.js:170 -#: js/macros.js:266 -#: js/macros.js:267 -#: js/macros.js:276 -#: js/macros.js:828 -#: js/blocks.js:1071 -#: js/blocks.js:3210 -#: js/blocks.js:3211 -#: js/blocks.js:3428 -#: js/blocks.js:3752 -#: js/blocks.js:3932 -#: js/blocks.js:4976 -#: js/blocks.js:5845 -#: js/ActionBlocks.js:99 -#: js/ActionBlocks.js:147 -#: js/ActionBlocks.js:343 -#: js/ActionBlocks.js:408 -#: js/ActionBlocks.js:562 -#: js/ActionBlocks.js:622 -#: js/ActionBlocks.js:750 -#: js/ActionBlocks.js:753 -#: js/ActionBlocks.js:758 -#: js/ActionBlocks.js:790 -#: js/MeterBlocks.js:396 -#: js/MeterBlocks.js:426 -#: js/MeterBlocks.js:462 -#: js/MeterBlocks.js:501 -#: js/musickeyboard.js:2495 -#: js/rhythmruler.js:1874 -#: js/rhythmruler.js:1881 -#: js/rhythmruler.js:2065 -#: js/rhythmruler.js:2072 -#: js/phrasemaker.js:4226 -#: js/block.js:1439 -#: js/block.js:4063 -#: js/block.js:4081 -#: js/block.js:4092 -#: js/palette.js:505 -#: js/palette.js:514 -#: js/palette.js:523 -#: js/palette.js:532 -#: js/palette.js:1125 -#: js/palette.js:1136 -#: js/palette.js:1147 -#: js/palette.js:1158 -#: js/palette.js:1177 -#: js/turtledefs.js:101 -#: js/rubrics.js:522 -#: js/macros.js:168 -#: js/macros.js:264 -#: js/macros.js:265 -#: js/macros.js:274 -#: js/macros.js:826 -#: js/blocks.js:1001 -#: js/blocks.js:3394 -#: js/blocks.js:3395 -#: js/blocks.js:3620 -#: js/blocks.js:3981 -#: js/blocks.js:4172 -#: js/blocks.js:5305 -#: js/blocks.js:6432 -#: js/ActionBlocks.js:119 -#: js/ActionBlocks.js:167 -#: js/ActionBlocks.js:364 -#: js/ActionBlocks.js:429 -#: js/ActionBlocks.js:582 -#: js/ActionBlocks.js:643 -#: js/ActionBlocks.js:772 -#: js/ActionBlocks.js:775 -#: js/ActionBlocks.js:780 -#: js/ActionBlocks.js:813 -#: js/MeterBlocks.js:416 -#: js/MeterBlocks.js:446 -#: js/MeterBlocks.js:482 -#: js/MeterBlocks.js:521 -#: js/musickeyboard.js:2564 -#: js/rhythmruler.js:1925 -#: js/rhythmruler.js:1932 -#: js/rhythmruler.js:2116 -#: js/rhythmruler.js:2123 -#: js/phrasemaker.js:4402 -#: js/planetInterface.js:101 -#: js/planetInterface.js:101 -#: js/planetInterface.js:101 -#: js/planetInterface.js:101 -#: js/planetInterface.js:102 -#: js/planetInterface.js:104 -#: js/planetInterface.js:104 -#: js/planetInterface.js:104 -#.TRANS: El proyecto no está definido. -msgid "project undefined" +#: js/SaveInterface.js:59 +#: js/SaveInterface.js:61 +#: js/SaveInterface.js:93 +#.TRANS: Proyecto de Bloques de Música +msgid "Music Blocks Project" msgstr "" -#: js/logo.js:61 -#.TRANS: No es un nombre de tono válido. -msgid "Not a valid pitch name" +#: js/SaveInterface.js:63 +#.TRANS: Este proyecto fue creado en Bloques de Música +msgid "This project was created in Music Blocks" msgstr "" -#: js/logo.js:507 -#: js/ProgramBlocks.js:258 -#: js/ProgramBlocks.js:427 -#.TRANS: Debe seleccionar un archivo. -msgid "You must select a file." -msgstr "Huk waqaychasqata ch’ikuy" - -#: js/logo.js:1184 -#: js/turtles.js:118 -#: js/turtle-painter.js:1192 -#: js/turtle-painter.js:1193 -#: js/block.js:1463 -#: js/lilypond.js:757 -#: js/lilypond.js:921 -#: js/lilypond.js:959 -#: js/ActionBlocks.js:1223 -#: js/ProgramBlocks.js:1267 -#.TRANS: iniciar -msgid "start" -msgstr "qallari" - -#: js/logo.js:1696 -#.TRANS: La reproducción está preparada. -msgid "Playback is ready." +#: js/SaveInterface.js:67 +#.TRANS: Bloques de Música es una aplicación de Software Libre +msgid "Music Blocks is a Free/Libre Software application." msgstr "" -#: js/blocks.js:1011 -#: js/blocks.js:3427 -#: js/blocks.js:3428 -#: js/blocks.js:3653 -#: js/blocks.js:4012 -#: js/blocks.js:4205 -#: js/blocks.js:5343 -#: js/blocks.js:6474 -#: js/palette.js:527 -#: js/palette.js:536 -#: js/palette.js:545 -#: js/palette.js:554 -#: js/palette.js:1131 -#: js/palette.js:1142 -#: js/palette.js:1153 -#: js/palette.js:1164 -#: js/palette.js:1183 -#: js/rubrics.js:529 -#: js/macros.js:170 -#: js/macros.js:266 -#: js/macros.js:267 -#: js/macros.js:276 -#: js/macros.js:828 -#: js/block.js:1449 -#: js/block.js:4164 -#: js/block.js:4182 -#: js/block.js:4193 -#: js/turtledefs.js:128 -#: js/turtledefs.js:230 -#: js/ActionBlocks.js:254 -#: js/ActionBlocks.js:307 -#: js/ActionBlocks.js:617 -#: js/ActionBlocks.js:716 -#: js/ActionBlocks.js:961 -#: js/ActionBlocks.js:1049 -#: js/ActionBlocks.js:1322 -#: js/ActionBlocks.js:1325 -#: js/ActionBlocks.js:1337 -#: js/ActionBlocks.js:1404 -#: js/MeterBlocks.js:715 -#: js/MeterBlocks.js:768 -#: js/MeterBlocks.js:831 -#: js/MeterBlocks.js:892 -#: js/phrasemaker.js:4412 -#: js/musickeyboard.js:2647 -#: js/rhythmruler.js:1928 -#: js/rhythmruler.js:1935 -#: js/rhythmruler.js:2119 -#: js/rhythmruler.js:2126 -#.TRANS: acción -msgid "action" -msgstr "ruway" - -#: js/blocks.js:1205 -#: js/blocks.js:3380 -#: js/blocks.js:3770 -#: js/blocks.js:3801 -#: js/blocks.js:3850 -#: js/blocks.js:3885 -#: js/blocks.js:6497 -#: js/palette.js:509 -#: js/palette.js:638 -#: js/palette.js:1107 -#: js/BoxesBlocks.js:282 -#: js/BoxesBlocks.js:285 -#: js/BoxesBlocks.js:405 -#: js/BoxesBlocks.js:594 -#.TRANS: caja -msgid "box" -msgstr "tawa k'uchu" - -#: js/blocks.js:1680 -#.TRANS: Considera dividir esta pila en partes. -msgid "Consider breaking this stack into parts." +#: js/SaveInterface.js:69 +#.TRANS: Se puede acceder al código fuente en +msgid "The source code can be accessed at" msgstr "" -#: js/blocks.js:2408 -#: js/palette.js:653 -#: js/MediaBlocks.js:602 -#.TRANS: abrir archivo -msgid "open file" +#: js/SaveInterface.js:72 +#.TRANS: Para más información, consulte el +msgid "For more information, please consult the" msgstr "" -#: js/blocks.js:2415 -#: js/blocks.js:2423 -#: js/activity.js:1875 -#.TRANS: archivo de audio -msgid "audio file" +#: js/SaveInterface.js:76 +#: js/turtledefs.js:795 +#.TRANS: Guía de Bloques de Música +msgid "Music Blocks Guide" msgstr "" -#: js/blocks.js:2536 -#: js/blocks.js:3147 -#: js/block.js:3543 -#.TRANS: encendido -msgid "on2" +#: js/SaveInterface.js:83 +#.TRANS: Alternativamente, abra el archivo en Bloques de Música usando el botón Cargar proyecto. +msgid "Alternatively, open the file in Music Blocks using the Load project button." msgstr "" -#: js/blocks.js:2538 -#: js/blocks.js:3149 -#: js/block.js:3545 -#.TRANS: apagado -msgid "off" +#: js/SaveInterface.js:85 +#.TRANS: Código de proyecto +msgid "Project Code" msgstr "" -#: js/blocks.js:2543 -#: js/blocks.js:3154 -#: js/palette.js:618 -#: js/block.js:3466 -#: js/BooleanBlocks.js:77 -#: js/BooleanBlocks.js:167 -#: js/BooleanBlocks.js:251 -#: js/BooleanBlocks.js:335 -#: js/BooleanBlocks.js:433 -#: js/BooleanBlocks.js:539 -#: js/BooleanBlocks.js:640 -#: js/BooleanBlocks.js:741 -#: js/BooleanBlocks.js:847 -#: js/BooleanBlocks.js:948 -#: js/BooleanBlocks.js:1033 -#: js/SensorsBlocks.js:910 -#.TRANS: verdadero -msgid "true" -msgstr "chiqaq" - -#: js/blocks.js:2545 -#: js/blocks.js:3156 -#: js/block.js:3466 -#: js/BooleanBlocks.js:79 -#: js/BooleanBlocks.js:169 -#: js/BooleanBlocks.js:253 -#: js/BooleanBlocks.js:337 -#: js/BooleanBlocks.js:435 -#: js/BooleanBlocks.js:541 -#: js/BooleanBlocks.js:642 -#: js/BooleanBlocks.js:743 -#: js/BooleanBlocks.js:849 -#: js/BooleanBlocks.js:950 -#: js/SensorsBlocks.js:912 -#.TRANS: falso -msgid "false" -msgstr "llulla" - -#: js/blocks.js:3183 -#: js/palette.js:574 -#: js/MediaBlocks.js:892 -#: js/MediaBlocks.js:963 -#.TRANS: texto -msgid "text" -msgstr "qillqa" - -#: js/blocks.js:3379 -#: js/palette.js:641 -#: js/palette.js:642 -#: js/BoxesBlocks.js:514 -#.TRANS: guardar en caja -msgid "store in box" -msgstr "tawa k’uchupi waqaychay" - -#: js/blocks.js:3384 -#: js/blocks.js:3824 -#: js/blocks.js:3859 -#: js/blocks.js:3894 -#: js/blocks.js:5773 -#: js/blocks.js:5794 -#: js/BoxesBlocks.js:772 -#.TRANS: caja1 -msgid "box1" -msgstr "caja1" +#: js/SaveInterface.js:87 +#.TRANS: Este código almacena datos sobre los bloques en un proyecto. +msgid "This code stores data about the blocks in a project." +msgstr "" -#: js/blocks.js:3386 -#: js/blocks.js:3826 -#: js/blocks.js:3861 -#: js/blocks.js:3896 -#: js/blocks.js:5775 -#: js/blocks.js:5796 -#: js/BoxesBlocks.js:663 -#.TRANS: caja2 -msgid "box2" -msgstr "caja2" +#: js/SaveInterface.js:89 +#.TRANS: Mostrar +msgid "Show" +msgstr "" -#: js/blocks.js:4058 -#: js/palette.js:639 -#: js/palette.js:644 -#: js/palette.js:1043 -#: js/BoxesBlocks.js:591 -#.TRANS: guardar en -msgid "store in" -msgstr "imapi waqaychanki" "maypi waqaychanki" +#: js/SaveInterface.js:91 +#.TRANS: Ocultar +msgid "Hide" +msgstr "" -#: js/blocks.js:4058 -#: js/EnsembleBlocks.js:391 -#: js/EnsembleBlocks.js:402 -#: js/MediaBlocks.js:746 -#: js/ProgramBlocks.js:390 -#: js/ProgramBlocks.js:495 -#: js/ProgramBlocks.js:658 -#: js/BoxesBlocks.js:595 -#: js/PitchBlocks.js:656 -#: js/PitchBlocks.js:932 -#: js/PitchBlocks.js:1827 -#: js/ToneBlocks.js:1025 -#: js/DictBlocks.js:215 -#: js/DictBlocks.js:289 -#.TRANS: nombre -msgid "name" -msgstr "suti" +#: js/SaveInterface.js:131 +#: js/SaveInterface.js:204 +#: js/SaveInterface.js:262 +#: js/SaveInterface.js:389 +#: js/SaveInterface.js:417 +#: js/activity.js:4884 +#: planet/js/ProjectStorage.js:27 +#: planet/js/GlobalPlanet.js:467 +#: planet/js/GlobalPlanet.js:469 +#: planet/js/GlobalPlanet.js:495 +#.TRANS: default project title when saving as Lilypond +#.TRANS: Mi proyecto +msgid "My Project" +msgstr "Wakichäwija" -#: js/blocks.js:4058 -#: js/RhythmBlocks.js:1130 -#: js/BoxesBlocks.js:75 -#: js/BoxesBlocks.js:595 -#: js/HeapBlocks.js:544 -#: js/DictBlocks.js:289 -#: js/DictBlocks.js:430 -#.TRANS: valor -msgid "value" -msgstr "tupu" +#: js/SaveInterface.js:197 +#: planet/js/SaveInterface.js:58 +#.TRANS: Ninguna descripción provista +msgid "No description provided" +msgstr "Ninguna descripción provista" -#: js/blocks.js:4907 -#.TRANS: No hay bloque seleccionado. -msgid "There is no block selected." +#: js/SaveInterface.js:332 +#.TRANS: Tu grabación está en curso. +msgid "Your recording is in progress." msgstr "" -#: js/blocks.js:5002 -#: js/MediaBlocks.js:888 -#.TRANS: mostrar -msgid "show" -msgstr "qhawachiy" +#: js/SaveInterface.js:401 +#.TRANS: File name prompt for save as Lilypond +#.TRANS: Nombre del archivo +msgid "File name" +msgstr "" -#: js/blocks.js:5005 -#: js/MediaBlocks.js:803 -#.TRANS: Avatar is the image used to determine the appearance of the mouse. -#.TRANS: avatar -msgid "avatar" -msgstr "siq’isqa" +#: js/SaveInterface.js:403 +#: planet/js/StringHelper.js:39 +#.TRANS: Project title prompt for save as Lilypond +#.TRANS: Título del proyecto +msgid "Project title" +msgstr "Título del proyecto" -#: js/blocks.js:5008 -#: js/ToneBlocks.js:1010 -#: js/sampler.js:693 -#.TRANS: The sound sample that the user uploads. -#.TRANS: muestra de audio -msgid "sample" +#: js/SaveInterface.js:405 +#.TRANS: Project title prompt for save as Lilypond +#.TRANS: Autor del Proyecto +msgid "Project author" msgstr "" -#: js/turtles.js:874 -#.TRANS: Cuadrícula -msgid "Grid" +#: js/SaveInterface.js:407 +#.TRANS: MIDI prompt for save as Lilypond +#.TRANS: Incluye MIDI? +msgid "Include MIDI output?" msgstr "" -#: js/turtles.js:891 -#: js/turtledefs.js:626 -#.TRANS: Limpiar -msgid "Clean" +#: js/SaveInterface.js:409 +#.TRANS: Guitar prompt for save as Lilypond +#.TRANS: Incluye tablatura de guitarra +msgid "Include guitar tablature output?" msgstr "" -#: js/turtles.js:912 -#: js/turtledefs.js:632 -#.TRANS: Contraer -msgid "Collapse" +#: js/SaveInterface.js:411 +#.TRANS: Lilypond is a scripting language for generating sheet music +#.TRANS: Guardar como lilypond +msgid "Save as Lilypond" msgstr "" -#: js/turtles.js:940 -#.TRANS: Expandir -msgid "Expand" +#: js/SaveInterface.js:426 +#: js/blocks/EnsembleBlocks.js:75 +#: js/blocks/EnsembleBlocks.js:154 +#: js/blocks/EnsembleBlocks.js:216 +#: js/blocks/EnsembleBlocks.js:302 +#: js/blocks/EnsembleBlocks.js:348 +#: js/blocks/EnsembleBlocks.js:389 +#: js/blocks/EnsembleBlocks.js:441 +#: js/blocks/EnsembleBlocks.js:490 +#: js/blocks/EnsembleBlocks.js:536 +#: js/blocks/EnsembleBlocks.js:583 +#: js/blocks/EnsembleBlocks.js:637 +#: js/blocks/EnsembleBlocks.js:753 +#: js/blocks/EnsembleBlocks.js:840 +#: js/blocks/EnsembleBlocks.js:899 +#: js/blocks/EnsembleBlocks.js:942 +#: js/blocks/EnsembleBlocks.js:1212 +#: js/blocks/EnsembleBlocks.js:1280 +#.TRANS: default project author when saving as Lilypond +#.TRANS: Sr. Ratón +msgid "Mr. Mouse" +msgstr "Tata Jithiyaña Achaku" + +#: js/SaveInterface.js:573 +#.TRANS: El código de Lilypond se copia al portapapeles. Puedes pegarlo aquí: +msgid "The Lilypond code is copied to clipboard. You can paste it here: " msgstr "" #: js/languagebox.js:198 @@ -734,318 +174,80 @@ msgstr "" msgid "Music Blocks is already set to this language." msgstr "Music Blocks ya está configurado en este idioma." -#: js/piemenus.js:200 -#: js/musicutils.js:808 -#: js/musicutils.js:824 -#: js/phrasemaker.js:1672 -#: js/musickeyboard.js:2041 -#: js/sampler.js:544 -#.TRANS: double sharp is a music term related to pitch -#.TRANS: doble agudas -msgid "double sharp" -msgstr "iskay ñañu kunka" +#: js/planetInterface.js:131 +#.TRANS: El proyecto no está definido. +msgid "project undefined" +msgstr "" -#: js/piemenus.js:201 -#: js/PitchBlocks.js:1510 -#: js/PitchActions.js:580 -#: js/musicutils.js:806 -#: js/musicutils.js:825 -#: js/phrasemaker.js:1673 -#: js/musickeyboard.js:2042 -#: js/sampler.js:545 -#.TRANS: sharp is a half-step up in pitch -#.TRANS: sharp is a music term related to pitch -#.TRANS: agudas -msgid "sharp" -msgstr "allin uyarikuy" +#: js/rubrics.js:523 +#: js/turtledefs.js:119 +#: js/turtledefs.js:221 +#: js/blocks/RhythmBlockPaletteBlocks.js:52 +#: js/blocks/RhythmBlockPaletteBlocks.js:234 +#: js/blocks/ProgramBlocks.js:745 +#: js/widgets/rhythmruler.js:2057 +#: js/widgets/rhythmruler.js:2064 +#: js/widgets/rhythmruler.js:2133 +#: js/widgets/rhythmruler.js:2140 +#: js/widgets/rhythmruler.js:2219 +#.TRANS: an arrangement of notes based on duration +#.TRANS: ritmo +msgid "rhythm" +msgstr "taki muyuchik" -#: js/piemenus.js:202 -#: js/musicutils.js:804 -#: js/musicutils.js:826 -#: js/phrasemaker.js:1674 -#: js/musickeyboard.js:2043 -#: js/sampler.js:546 -#.TRANS: natural is a music term related to pitch -#.TRANS: normal -msgid "natural" -msgstr "purum" +#: js/rubrics.js:524 +#: js/turtledefs.js:121 +#: js/turtledefs.js:223 +#: js/block-verbose.js:2622 +#: js/block.js:2550 +#: js/blocks/IntervalsBlocks.js:63 +#: js/blocks/SensorsBlocks.js:178 +#: js/blocks/PitchBlocks.js:1839 +#: js/blocks/PitchBlocks.js:1853 +#: js/widgets/musickeyboard.js:1935 +#: js/widgets/phrasemaker.js:1036 +#.TRANS: pitch number +#.TRANS: pitch number +#.TRANS: we specify pitch in terms of a name and an octave. The name can be CDEFGAB or Do Re Mi Fa Sol La Ti. Octave is a number between 1 and 8. +#.TRANS: tono +msgid "pitch" +msgstr "kunka" -#: js/piemenus.js:203 -#: js/PitchBlocks.js:1469 -#: js/PitchActions.js:583 -#: js/musicutils.js:802 -#: js/musicutils.js:827 -#: js/phrasemaker.js:1675 -#: js/musickeyboard.js:2044 -#: js/sampler.js:547 -#.TRANS: flat is a half-step down in pitch -#.TRANS: flat is a music term related to pitch -#.TRANS: planas -msgid "flat" -msgstr "pampa" - -#: js/piemenus.js:204 -#: js/musicutils.js:800 -#: js/musicutils.js:828 -#: js/phrasemaker.js:1676 -#: js/musickeyboard.js:2045 -#: js/sampler.js:548 -#.TRANS: double flat is a music term related to pitch -#.TRANS: doble planas -msgid "double flat" -msgstr "iskay t’aqlla" - -#: js/piemenus.js:2861 -#: js/PitchBlocks.js:1357 -#: js/musicutils.js:627 -#.TRANS: unison means the note is the same as the current note -#.TRANS: unison is a music term related to intervals -#.TRANS: unísono -msgid "unison" -msgstr "unísono" - -#: js/piemenus.js:3015 -#: js/piemenus.js:3088 -#: js/musicutils.js:635 -#: js/musicutils.js:810 -#: js/musicutils.js:912 -#.TRANS: major is a music term related to intervals and mode -#.TRANS: mayor -msgid "major" -msgstr "jila" - -#: js/piemenus.js:3015 -#: js/piemenus.js:3088 -#: js/musicutils.js:653 -#.TRANS: modal scale for music -#.TRANS: ionian -msgid "ionian" -msgstr "ionian" - -#: js/piemenus.js:3017 -#: js/piemenus.js:3092 -#: js/musicutils.js:633 -#: js/musicutils.js:811 -#: js/musicutils.js:909 -#.TRANS: minor is a music term related to intervals and mode -#.TRANS: menor -msgid "minor" -msgstr "sullka" - -#: js/piemenus.js:3017 -#: js/piemenus.js:3092 -#: js/musicutils.js:663 -#.TRANS: modal scale for music -#.TRANS: aeolian -msgid "aeolian" -msgstr "aeolian" - -#: js/piemenus.js:3407 -#.TRANS: Duplicar -msgid "Duplicate" -msgstr "" - -#: js/piemenus.js:3408 -#: js/turtledefs.js:534 -#.TRANS: Extraer -msgid "Extract" -msgstr "" - -#: js/piemenus.js:3409 -#.TRANS: Mover para recargar -msgid "Move to trash" -msgstr "" - -#: js/piemenus.js:3410 -#: js/timbre.js:968 -#: js/StringHelper.js:69 -#.TRANS: Cerrar -msgid "Close" -msgstr "wisq’ay" - -#: js/piemenus.js:3416 -#.TRANS: Guardar pila -msgid "Save stack" -msgstr "" - -#: js/piemenus.js:3420 -#: js/toolbar.js:60 -#: js/toolbar.js:120 -#: js/toolbar.js:185 -#: js/toolbar.js:240 -#: js/turtledefs.js:752 -#.TRANS: Ayuda -msgid "Help" -msgstr "" - -#: js/piemenus.js:3762 -#.TRANS: Ha elegido la tecla -msgid "You have chosen key " -msgstr "" - -#: js/piemenus.js:3766 -#.TRANS: para la vista previa de su tono. -msgid " for your pitch preview." -msgstr "" - -#: js/palette.js:571 -#.TRANS: cuadrícula -msgid "grid" -msgstr "" - -#: js/palette.js:577 -#: js/block.js:1540 -#: js/block.js:2343 -#: js/turtledefs.js:126 -#: js/turtledefs.js:228 -#: js/lilypond.js:740 -#: js/lilypond.js:905 -#: js/lilypond.js:949 -#: js/DrumBlocks.js:486 -#: js/RhythmBlocks.js:766 -#: js/VolumeBlocks.js:502 -#: js/phrasemaker.js:823 -#.TRANS: tambor -msgid "drum" -msgstr "tarula" - -#: js/palette.js:580 -#.TRANS: efecto -msgid "effect" -msgstr "" - -#: js/palette.js:586 -#.TRANS: -msgid "sargam" -msgstr "" - -#: js/palette.js:589 -#: js/activity.js:1833 -#: js/RhythmBlocks.js:923 -#: js/PitchBlocks.js:442 -#: js/PitchBlocks.js:1748 -#.TRANS: a numeric mapping of the notes in an octave based on the musical mode -#.TRANS: grado de escala -msgid "scale degree" -msgstr "" - -#: js/palette.js:592 -#: js/activity.js:1860 -#.TRANS: nombre de modo -msgid "mode name" -msgstr "" - -#: js/palette.js:595 -#: js/activity.js:1839 -#.TRANS: modo invertido -msgid "invert mode" -msgstr "" - -#: js/palette.js:598 -#: js/activity.js:1836 -#.TRANS: nombre de voz -msgid "voice name" -msgstr "" - -#: js/palette.js:601 -#: js/PitchBlocks.js:1181 -#.TRANS: personalizado tono -msgid "custom pitch" -msgstr "sapallanpa kunka" - -#: js/palette.js:605 -#: js/block.js:1456 -#: js/block.js:1575 -#: js/WidgetBlocks.js:218 -#: js/IntervalsBlocks.js:63 -#.TRANS: temperamento -msgid "temperament" -msgstr "munasqanman tikrakuq" - -#: js/palette.js:609 -#.TRANS: accidental -msgid "accidental" -msgstr "yanapaqnin" - -#: js/palette.js:615 -#: js/activity.js:1866 -#.TRANS: nombre de intervalo -msgid "interval name" -msgstr "" - -#: js/palette.js:633 -#: js/PitchBlocks.js:405 -#.TRANS: convertidor de tono -msgid "pitch converter" -msgstr "" - -#: js/rubrics.js:522 -#: js/turtledefs.js:119 -#: js/turtledefs.js:221 -#: js/RhythmBlockPaletteBlocks.js:52 -#: js/RhythmBlockPaletteBlocks.js:233 -#: js/ProgramBlocks.js:745 -#: js/rhythmruler.js:1670 -#: js/rhythmruler.js:1677 -#: js/rhythmruler.js:1745 -#: js/rhythmruler.js:1752 -#: js/rhythmruler.js:1830 -#.TRANS: an arrangement of notes based on duration -#.TRANS: ritmo -msgid "rhythm" -msgstr "taki muyuchik" - -#: js/rubrics.js:523 -#: js/block.js:2339 -#: js/turtledefs.js:121 -#: js/turtledefs.js:223 -#: js/IntervalsBlocks.js:63 -#: js/PitchBlocks.js:1801 -#: js/PitchBlocks.js:1814 -#: js/SensorsBlocks.js:178 -#: js/phrasemaker.js:821 -#: js/musickeyboard.js:1653 -#.TRANS: pitch number -#.TRANS: we specify pitch in terms of a name and an octave. The name can be CDEFGAB or Do Re Mi Fa Sol La Ti. Octave is a number between 1 and 8. -#.TRANS: tono -msgid "pitch" -msgstr "kunka" - -#: js/rubrics.js:524 +#: js/rubrics.js:525 #: js/turtledefs.js:123 #: js/turtledefs.js:225 #.TRANS: tono msgid "tone" msgstr "" -#: js/rubrics.js:525 -#: js/lilypond.js:613 -#: js/lilypond.js:912 -#: js/lilypond.js:918 -#: js/lilypond.js:956 +#: js/rubrics.js:526 +#: js/lilypond.js:605 +#: js/lilypond.js:904 +#: js/lilypond.js:910 +#: js/lilypond.js:948 #.TRANS: ratón msgid "mouse" msgstr "" -#: js/rubrics.js:526 +#: js/rubrics.js:527 #: js/turtledefs.js:132 #: js/turtledefs.js:234 -#: js/phrasemaker.js:825 +#: js/widgets/phrasemaker.js:1040 #.TRANS: pluma msgid "pen" msgstr "qillqana" -#: js/rubrics.js:527 +#: js/rubrics.js:528 #: js/turtledefs.js:133 #: js/turtledefs.js:235 -#: js/NumberBlocks.js:905 -#: js/PitchBlocks.js:1679 -#: js/PitchBlocks.js:1720 +#: js/blocks/NumberBlocks.js:981 +#: js/blocks/PitchBlocks.js:1717 +#: js/blocks/PitchBlocks.js:1758 #.TRANS: número msgid "number" msgstr "yupana" -#: js/rubrics.js:528 +#: js/rubrics.js:529 #: js/turtledefs.js:127 #: js/turtledefs.js:229 #.TRANS: flujo @@ -1053,177 +255,225 @@ msgid "flow" msgstr "" #: js/rubrics.js:530 +#: js/turtledefs.js:128 +#: js/turtledefs.js:230 +#: js/block-verbose.js:1609 +#: js/block-verbose.js:4559 +#: js/block-verbose.js:4577 +#: js/block-verbose.js:4588 +#: js/block.js:1573 +#: js/block.js:4483 +#: js/block.js:4501 +#: js/block.js:4512 +#: js/blocks.js:1018 +#: js/blocks.js:3491 +#: js/blocks.js:3492 +#: js/blocks.js:3717 +#: js/blocks.js:4076 +#: js/blocks.js:4269 +#: js/blocks.js:5432 +#: js/blocks.js:6563 +#: js/macros.js:170 +#: js/macros.js:266 +#: js/macros.js:267 +#: js/macros.js:276 +#: js/macros.js:828 +#: js/palette.js:527 +#: js/palette.js:536 +#: js/palette.js:545 +#: js/palette.js:554 +#: js/palette.js:1129 +#: js/palette.js:1140 +#: js/palette.js:1151 +#: js/palette.js:1162 +#: js/palette.js:1181 +#: js/blocks/ActionBlocks.js:254 +#: js/blocks/ActionBlocks.js:307 +#: js/blocks/ActionBlocks.js:617 +#: js/blocks/ActionBlocks.js:716 +#: js/blocks/ActionBlocks.js:961 +#: js/blocks/ActionBlocks.js:1049 +#: js/blocks/ActionBlocks.js:1322 +#: js/blocks/ActionBlocks.js:1325 +#: js/blocks/ActionBlocks.js:1337 +#: js/blocks/ActionBlocks.js:1404 +#: js/blocks/MeterBlocks.js:715 +#: js/blocks/MeterBlocks.js:768 +#: js/blocks/MeterBlocks.js:831 +#: js/blocks/MeterBlocks.js:892 +#: js/widgets/musickeyboard.js:2986 +#: js/widgets/phrasemaker.js:4913 +#: js/widgets/rhythmruler.js:2319 +#: js/widgets/rhythmruler.js:2326 +#: js/widgets/rhythmruler.js:2511 +#: js/widgets/rhythmruler.js:2518 +#.TRANS: acción +msgid "action" +msgstr "ruway" + +#: js/rubrics.js:531 #: js/turtledefs.js:136 #: js/turtledefs.js:238 #.TRANS: sensores msgid "sensors" msgstr "" -#: js/rubrics.js:531 +#: js/rubrics.js:532 #: js/turtledefs.js:135 #: js/turtledefs.js:237 -#: js/MediaBlocks.js:930 +#: js/blocks/MediaBlocks.js:930 #.TRANS: medios msgid "media" msgstr "" -#: js/rubrics.js:532 +#: js/rubrics.js:533 #.TRANS: ratón msgid "mice" msgstr "" -#: js/macros.js:711 -#: js/musicutils.js:783 -#: js/synthutils.js:181 -#.TRANS: animal sound effect -#.TRANS: pato -msgid "duck" -msgstr "patu" - -#: js/toolbar.js:46 -#: js/toolbar.js:107 +#: js/toolbar.js:48 +#: js/toolbar.js:109 #.TRANS: Acerca de los Bloques de Música msgid "About Music Blocks" msgstr "" -#: js/toolbar.js:47 -#: js/toolbar.js:108 -#: js/toolbar.js:172 -#: js/toolbar.js:228 +#: js/toolbar.js:49 +#: js/toolbar.js:110 +#: js/toolbar.js:175 +#: js/toolbar.js:231 #: js/turtledefs.js:445 #: js/turtledefs.js:482 -#: js/activity.js:2281 -#: js/activity.js:2289 -#: js/activity.js:2520 -#: js/modewidget.js:77 -#: js/pitchstaircase.js:121 -#: js/phrasemaker.js:302 -#: js/phrasemaker.js:312 -#: js/phrasemaker.js:314 -#: js/phrasemaker.js:3901 -#: js/phrasemaker.js:4061 -#: js/phrasemaker.js:4066 -#: js/phrasemaker.js:4068 -#: js/phrasemaker.js:4183 -#: js/pitchdrummatrix.js:81 -#: js/pitchdrummatrix.js:574 -#: js/pitchdrummatrix.js:576 -#: js/pitchdrummatrix.js:628 -#: js/pitchdrummatrix.js:630 -#: js/pitchdrummatrix.js:645 -#: js/pitchdrummatrix.js:647 -#: js/pitchdrummatrix.js:674 -#: js/pitchdrummatrix.js:676 -#: js/temperament.js:477 -#: js/temperament.js:480 -#: js/temperament.js:540 -#: js/temperament.js:542 -#: js/temperament.js:1835 -#: js/temperament.js:1837 -#: js/temperament.js:1986 -#: js/temperament.js:1988 -#: js/musickeyboard.js:522 -#: js/musickeyboard.js:682 -#: js/musickeyboard.js:684 -#: js/musickeyboard.js:756 -#: js/musickeyboard.js:758 -#: js/rhythmruler.js:298 -#: js/rhythmruler.js:300 -#: js/rhythmruler.js:314 -#: js/rhythmruler.js:316 -#: js/sampler.js:96 -#: js/sampler.js:98 -#: js/sampler.js:229 -#: js/sampler.js:235 -#: js/sampler.js:237 -#: js/tempo.js:84 -#: js/tempo.js:86 -#: js/timbre.js:432 -#: js/timbre.js:434 -#: js/timbre.js:465 -#: js/timbre.js:467 -#: js/timbre.js:746 -#: js/meterwidget.js:80 -#: js/arpeggio.js:90 -#: js/arpeggio.js:547 -#: js/arpeggio.js:549 -#: js/arpeggio.js:644 -#: js/arpeggio.js:646 +#: js/activity.js:2660 +#: js/activity.js:2671 +#: js/activity.js:2902 +#: js/widgets/modewidget.js:77 +#: js/widgets/meterwidget.js:185 +#: js/widgets/pitchdrummatrix.js:147 +#: js/widgets/pitchdrummatrix.js:687 +#: js/widgets/pitchdrummatrix.js:689 +#: js/widgets/pitchdrummatrix.js:741 +#: js/widgets/pitchdrummatrix.js:743 +#: js/widgets/pitchdrummatrix.js:758 +#: js/widgets/pitchdrummatrix.js:760 +#: js/widgets/pitchdrummatrix.js:789 +#: js/widgets/pitchdrummatrix.js:791 +#: js/widgets/pitchstaircase.js:121 +#: js/widgets/temperament.js:610 +#: js/widgets/temperament.js:613 +#: js/widgets/temperament.js:673 +#: js/widgets/temperament.js:675 +#: js/widgets/temperament.js:2017 +#: js/widgets/temperament.js:2019 +#: js/widgets/tempo.js:84 +#: js/widgets/tempo.js:86 +#: js/widgets/timbre.js:432 +#: js/widgets/timbre.js:434 +#: js/widgets/timbre.js:465 +#: js/widgets/timbre.js:467 +#: js/widgets/timbre.js:746 +#: js/widgets/aiwidget.js:647 +#: js/widgets/aiwidget.js:654 +#: js/widgets/aiwidget.js:656 +#: js/widgets/arpeggio.js:90 +#: js/widgets/arpeggio.js:547 +#: js/widgets/arpeggio.js:549 +#: js/widgets/arpeggio.js:644 +#: js/widgets/arpeggio.js:646 +#: js/widgets/musickeyboard.js:676 +#: js/widgets/musickeyboard.js:872 +#: js/widgets/musickeyboard.js:874 +#: js/widgets/musickeyboard.js:953 +#: js/widgets/musickeyboard.js:955 +#: js/widgets/phrasemaker.js:513 +#: js/widgets/phrasemaker.js:523 +#: js/widgets/phrasemaker.js:525 +#: js/widgets/phrasemaker.js:4304 +#: js/widgets/phrasemaker.js:4528 +#: js/widgets/phrasemaker.js:4533 +#: js/widgets/phrasemaker.js:4535 +#: js/widgets/phrasemaker.js:4650 +#: js/widgets/rhythmruler.js:637 +#: js/widgets/rhythmruler.js:639 +#: js/widgets/rhythmruler.js:653 +#: js/widgets/rhythmruler.js:655 +#: js/widgets/sampler.js:162 +#: js/widgets/sampler.js:164 +#: js/widgets/sampler.js:363 #.TRANS: Tocar msgid "Play" msgstr "waqachiy" -#: js/toolbar.js:48 -#: js/toolbar.js:109 -#: js/toolbar.js:173 -#: js/toolbar.js:229 +#: js/toolbar.js:50 +#: js/toolbar.js:111 +#: js/toolbar.js:176 +#: js/toolbar.js:232 #: js/turtledefs.js:451 #: js/turtledefs.js:488 -#: js/activity.js:2297 -#: js/modewidget.js:99 -#: js/modewidget.js:101 -#: js/phrasemaker.js:323 -#: js/phrasemaker.js:325 -#: js/pitchdrummatrix.js:561 -#: js/pitchdrummatrix.js:563 -#: js/temperament.js:1820 -#: js/temperament.js:1822 -#: js/meterwidget.js:101 -#: js/meterwidget.js:103 -#: js/arpeggio.js:534 -#: js/arpeggio.js:536 +#: js/activity.js:2679 +#: js/widgets/modewidget.js:99 +#: js/widgets/modewidget.js:101 +#: js/widgets/meterwidget.js:206 +#: js/widgets/meterwidget.js:208 +#: js/widgets/pitchdrummatrix.js:674 +#: js/widgets/pitchdrummatrix.js:676 +#: js/widgets/temperament.js:2002 +#: js/widgets/temperament.js:2004 +#: js/widgets/arpeggio.js:534 +#: js/widgets/arpeggio.js:536 +#: js/widgets/phrasemaker.js:534 +#: js/widgets/phrasemaker.js:536 #.TRANS: Detener msgid "Stop" msgstr "Sayachiy" -#: js/toolbar.js:49 -#: js/toolbar.js:110 -#: js/toolbar.js:174 -#: js/toolbar.js:230 +#: js/toolbar.js:51 +#: js/toolbar.js:112 +#: js/toolbar.js:177 +#: js/toolbar.js:233 #: js/turtledefs.js:498 #.TRANS: Grabar msgid "Record" msgstr "" -#: js/toolbar.js:50 -#: js/toolbar.js:51 +#: js/toolbar.js:52 +#: js/toolbar.js:53 #.TRANS: Pantalla completa msgid "Full screen" msgstr "" -#: js/toolbar.js:52 -#: js/toolbar.js:112 -#: js/toolbar.js:177 -#: js/toolbar.js:232 +#: js/toolbar.js:54 +#: js/toolbar.js:115 +#: js/toolbar.js:180 +#: js/toolbar.js:236 #: js/turtledefs.js:504 #.TRANS: Alternar pantalla completa msgid "Toggle Fullscreen" msgstr "" -#: js/toolbar.js:53 -#: js/toolbar.js:113 -#: js/toolbar.js:178 -#: js/toolbar.js:233 +#: js/toolbar.js:55 +#: js/toolbar.js:116 +#: js/toolbar.js:181 +#: js/toolbar.js:237 #: js/turtledefs.js:510 -#: js/StringHelper.js:33 +#: planet/js/StringHelper.js:33 #.TRANS: Nuevo proyecto msgid "New project" msgstr "Nuevo proyecto" -#: js/toolbar.js:54 -#: js/toolbar.js:114 -#: js/toolbar.js:179 -#: js/toolbar.js:234 +#: js/toolbar.js:56 +#: js/toolbar.js:117 +#: js/toolbar.js:182 +#: js/toolbar.js:238 #: js/turtledefs.js:516 #.TRANS: Cargar proyecto de archivo msgid "Load project from file" msgstr "" -#: js/toolbar.js:55 -#: js/toolbar.js:115 -#: js/toolbar.js:116 -#: js/toolbar.js:180 -#: js/toolbar.js:235 +#: js/toolbar.js:57 +#: js/toolbar.js:118 +#: js/toolbar.js:119 +#: js/toolbar.js:183 +#: js/toolbar.js:239 #: js/turtledefs.js:541 #: js/turtledefs.js:550 #: js/turtledefs.js:571 @@ -1231,638 +481,438 @@ msgstr "" msgid "Save project" msgstr "" -#: js/toolbar.js:56 -#: js/toolbar.js:75 +#: js/toolbar.js:58 #: js/toolbar.js:77 -#: js/toolbar.js:135 -#: js/toolbar.js:144 -#: js/toolbar.js:146 -#: js/toolbar.js:181 -#: js/toolbar.js:199 -#: js/toolbar.js:201 -#: js/toolbar.js:236 -#: js/toolbar.js:254 -#: js/toolbar.js:256 +#: js/toolbar.js:79 +#: js/toolbar.js:138 +#: js/toolbar.js:147 +#: js/toolbar.js:149 +#: js/toolbar.js:184 +#: js/toolbar.js:202 +#: js/toolbar.js:204 +#: js/toolbar.js:240 +#: js/toolbar.js:258 +#: js/toolbar.js:260 #.TRANS: Guardar como HTML msgid "Save project as HTML" msgstr "" -#: js/toolbar.js:57 -#: js/toolbar.js:117 -#: js/toolbar.js:182 -#: js/toolbar.js:237 +#: js/toolbar.js:59 +#: js/toolbar.js:120 +#: js/toolbar.js:185 +#: js/toolbar.js:241 #.TRANS: Encuentra y comparte proyectos msgid "Find and share projects" msgstr "" -#: js/toolbar.js:58 -#: js/toolbar.js:118 -#: js/toolbar.js:183 -#: js/toolbar.js:238 +#: js/toolbar.js:60 +#: js/toolbar.js:121 +#: js/toolbar.js:186 +#: js/toolbar.js:242 #.TRANS: Desconectado. Compartir no está disponible. msgid "Offline. Sharing is unavailable" msgstr "" -#: js/toolbar.js:59 -#: js/toolbar.js:119 -#: js/toolbar.js:184 -#: js/toolbar.js:239 +#: js/toolbar.js:61 +#: js/toolbar.js:122 +#: js/toolbar.js:187 +#: js/toolbar.js:243 #.TRANS: Menú auxiliar msgid "Auxiliary menu" msgstr "" -#: js/toolbar.js:61 -#: js/toolbar.js:121 -#: js/toolbar.js:186 -#: js/toolbar.js:241 +#: js/toolbar.js:62 +#: js/toolbar.js:123 +#: js/toolbar.js:188 +#: js/toolbar.js:244 +#: js/turtledefs.js:752 +#: js/piemenus.js:3423 +#.TRANS: Ayuda +msgid "Help" +msgstr "" + +#: js/toolbar.js:63 +#: js/toolbar.js:124 +#: js/toolbar.js:189 +#: js/toolbar.js:245 #.TRANS: Tocar lentamente msgid "Run slowly" msgstr "" -#: js/toolbar.js:62 -#: js/toolbar.js:122 -#: js/toolbar.js:187 -#: js/toolbar.js:242 +#: js/toolbar.js:64 +#: js/toolbar.js:125 +#: js/toolbar.js:190 +#: js/toolbar.js:246 #: js/turtledefs.js:682 #.TRANS: Ejecutar paso a paso msgid "Run step by step" msgstr "" -#: js/toolbar.js:63 -#: js/toolbar.js:123 -#: js/toolbar.js:188 -#: js/toolbar.js:243 +#: js/toolbar.js:65 +#: js/toolbar.js:126 +#: js/toolbar.js:191 +#: js/toolbar.js:247 #: js/turtledefs.js:689 #.TRANS: Analizar msgid "Display statistics" msgstr "" -#: js/toolbar.js:64 -#: js/toolbar.js:124 -#: js/toolbar.js:189 -#: js/toolbar.js:244 +#: js/toolbar.js:66 +#: js/toolbar.js:127 +#: js/toolbar.js:192 +#: js/toolbar.js:248 #.TRANS: Cargar plugin msgid "Load plugin" msgstr "" -#: js/toolbar.js:65 -#: js/toolbar.js:125 -#: js/toolbar.js:190 -#: js/toolbar.js:245 +#: js/toolbar.js:67 +#: js/toolbar.js:128 +#: js/toolbar.js:193 +#: js/toolbar.js:249 #: js/turtledefs.js:696 #.TRANS: Eliminar plugin msgid "Delete plugin" msgstr "" -#: js/toolbar.js:66 -#: js/toolbar.js:126 -#: js/toolbar.js:191 -#: js/toolbar.js:246 +#: js/toolbar.js:68 +#: js/toolbar.js:129 +#: js/toolbar.js:194 +#: js/toolbar.js:250 #.TRANS: Habilitar desplazamiento horizontal msgid "Enable horizontal scrolling" msgstr "" -#: js/toolbar.js:67 -#: js/toolbar.js:127 -#: js/toolbar.js:192 -#: js/toolbar.js:247 +#: js/toolbar.js:69 +#: js/toolbar.js:130 +#: js/toolbar.js:195 +#: js/toolbar.js:251 #.TRANS: Deshabilitar desplazamiento horizontal msgid "Disable horizontal scrolling" msgstr "" -#: js/toolbar.js:68 -#: js/toolbar.js:128 -#: js/toolbar.js:193 -#: js/toolbar.js:248 -#: js/LocalCard.js:54 -#: js/StringHelper.js:71 +#: js/toolbar.js:70 +#: js/toolbar.js:131 +#: js/toolbar.js:196 +#: js/toolbar.js:252 +#: planet/js/LocalCard.js:54 +#: planet/js/StringHelper.js:71 #.TRANS: Unir con el proyecto actual msgid "Merge with current project" msgstr "Unir con el proyecto actual" -#: js/toolbar.js:69 -#: js/toolbar.js:129 +#: js/toolbar.js:71 +#: js/toolbar.js:132 #.TRANS: Establecer vista previa de tono msgid "Set Pitch Preview" msgstr "" -#: js/toolbar.js:70 -#: js/toolbar.js:130 -#: js/toolbar.js:194 -#: js/toolbar.js:249 -#.TRANS: Alternar editor de JavaScript -msgid "Toggle JavaScript Editor" +#: js/toolbar.js:72 +#: js/toolbar.js:133 +#: js/toolbar.js:197 +#: js/toolbar.js:253 +#.TRANS: Editor de Javascript +msgid "JavaScript Editor" msgstr "" -#: js/toolbar.js:71 -#: js/toolbar.js:131 -#: js/toolbar.js:195 -#: js/toolbar.js:250 +#: js/toolbar.js:73 +#: js/toolbar.js:134 +#: js/toolbar.js:198 +#: js/toolbar.js:254 #: js/turtledefs.js:724 #.TRANS: Restaurar msgid "Restore" msgstr "" -#: js/toolbar.js:72 -#: js/toolbar.js:132 -#: js/toolbar.js:196 -#: js/toolbar.js:251 +#: js/toolbar.js:74 +#: js/toolbar.js:135 +#: js/toolbar.js:199 +#: js/toolbar.js:255 #.TRANS: Cambiar al modo principiante msgid "Switch to beginner mode" msgstr "" -#: js/toolbar.js:73 -#: js/toolbar.js:133 -#: js/toolbar.js:197 -#: js/toolbar.js:252 +#: js/toolbar.js:75 +#: js/toolbar.js:136 +#: js/toolbar.js:200 +#: js/toolbar.js:256 #.TRANS: Cambiar a modo avanzado msgid "Switch to advanced mode" msgstr "" -#: js/toolbar.js:74 -#: js/toolbar.js:134 -#: js/toolbar.js:143 -#: js/toolbar.js:198 -#: js/toolbar.js:253 +#: js/toolbar.js:76 +#: js/toolbar.js:137 +#: js/toolbar.js:146 +#: js/toolbar.js:201 +#: js/toolbar.js:257 #: js/turtledefs.js:738 #.TRANS: Seleccione el idioma msgid "Select language" msgstr "" -#: js/toolbar.js:76 -#: js/toolbar.js:79 -#: js/toolbar.js:137 +#: js/toolbar.js:78 +#: js/toolbar.js:81 +#: js/toolbar.js:140 #: js/turtledefs.js:579 #.TRANS: Guardar ilustraciones del ratón como PNG msgid "Save mouse artwork as PNG" msgstr "" -#: js/toolbar.js:78 -#: js/toolbar.js:136 +#: js/toolbar.js:80 +#: js/toolbar.js:139 #: js/turtledefs.js:575 #.TRANS: Guardar ilustraciones del ratón como SVG msgid "Save mouse artwork as SVG" msgstr "" -#: js/toolbar.js:80 -#: js/toolbar.js:138 +#: js/toolbar.js:82 +#: js/toolbar.js:141 #: js/turtledefs.js:583 #.TRANS: Guarda música como WAV msgid "Save music as WAV" msgstr "" -#: js/toolbar.js:81 -#: js/toolbar.js:139 +#: js/toolbar.js:83 +#: js/toolbar.js:142 #: js/turtledefs.js:587 #.TRANS: Guardar partituras como ABC msgid "Save sheet music as ABC" msgstr "" -#: js/toolbar.js:82 -#: js/toolbar.js:140 +#: js/toolbar.js:84 +#: js/toolbar.js:143 #: js/turtledefs.js:591 #.TRANS: Guardar partituras como Lilypond. msgid "Save sheet music as Lilypond" msgstr "" -#: js/toolbar.js:83 +#: js/toolbar.js:85 #.TRANS: Guardar partituras como MusicXML msgid "Save sheet music as MusicXML" msgstr "" -#: js/toolbar.js:84 -#: js/toolbar.js:141 -#: js/toolbar.js:149 -#: js/toolbar.js:204 -#: js/toolbar.js:259 +#: js/toolbar.js:86 +#: js/toolbar.js:144 +#: js/toolbar.js:152 +#: js/toolbar.js:207 +#: js/toolbar.js:263 #: js/turtledefs.js:562 #: js/turtledefs.js:595 #.TRANS: Guardar bloque de ilustraciones como SVG msgid "Save block artwork as SVG" msgstr "" -#: js/toolbar.js:85 -#: js/toolbar.js:142 -#: js/toolbar.js:150 -#: js/toolbar.js:205 -#: js/toolbar.js:260 +#: js/toolbar.js:87 +#: js/toolbar.js:145 +#: js/toolbar.js:153 +#: js/toolbar.js:208 +#: js/toolbar.js:264 +#: js/turtles.js:911 #.TRANS: Confirmar msgid "Confirm" msgstr "" -#: js/toolbar.js:86 -#: js/toolbar.js:151 -#: js/toolbar.js:206 -#: js/toolbar.js:261 +#: js/toolbar.js:88 +#: js/toolbar.js:154 +#: js/toolbar.js:209 +#: js/toolbar.js:265 #.TRANS: msgid "English (United States)" msgstr "" -#: js/toolbar.js:87 -#: js/toolbar.js:152 -#: js/toolbar.js:207 -#: js/toolbar.js:262 +#: js/toolbar.js:89 +#: js/toolbar.js:155 +#: js/toolbar.js:210 +#: js/toolbar.js:266 #.TRANS: msgid "English (United Kingdom)" msgstr "" -#: js/toolbar.js:88 -#: js/toolbar.js:153 -#: js/toolbar.js:208 -#: js/toolbar.js:263 +#: js/toolbar.js:90 +#: js/toolbar.js:156 +#: js/toolbar.js:211 +#: js/toolbar.js:267 #.TRANS: msgid "日本語" msgstr "" -#: js/toolbar.js:89 +#: js/toolbar.js:91 #.TRANS: msgid "한국어" msgstr "" -#: js/toolbar.js:90 -#: js/toolbar.js:155 -#: js/toolbar.js:210 -#: js/toolbar.js:265 +#: js/toolbar.js:92 +#: js/toolbar.js:158 +#: js/toolbar.js:213 +#: js/toolbar.js:269 #.TRANS: msgid "español" msgstr "" -#: js/toolbar.js:91 -#: js/toolbar.js:156 -#: js/toolbar.js:211 -#: js/toolbar.js:266 +#: js/toolbar.js:93 +#: js/toolbar.js:159 +#: js/toolbar.js:214 +#: js/toolbar.js:270 #.TRANS: msgid "português" msgstr "" -#: js/toolbar.js:92 -#: js/toolbar.js:157 -#: js/toolbar.js:212 -#: js/toolbar.js:267 -#.TRANS: -msgid "にほんご" +#: js/toolbar.js:94 +#: js/toolbar.js:160 +#: js/toolbar.js:215 +#: js/toolbar.js:271 +#.TRANS: +msgid "にほんご" msgstr "" -#: js/toolbar.js:93 -#: js/toolbar.js:158 -#: js/toolbar.js:213 -#: js/toolbar.js:268 +#: js/toolbar.js:95 +#: js/toolbar.js:161 +#: js/toolbar.js:216 +#: js/toolbar.js:272 #.TRANS: msgid "中文" msgstr "" -#: js/toolbar.js:94 -#: js/toolbar.js:159 -#: js/toolbar.js:214 -#: js/toolbar.js:269 +#: js/toolbar.js:96 +#: js/toolbar.js:162 +#: js/toolbar.js:217 +#: js/toolbar.js:273 #.TRANS: msgid "ภาษาไทย" msgstr "" -#: js/toolbar.js:95 -#: js/toolbar.js:160 -#: js/toolbar.js:215 -#: js/toolbar.js:270 +#: js/toolbar.js:97 +#: js/toolbar.js:163 +#: js/toolbar.js:218 +#: js/toolbar.js:274 #.TRANS: msgid "aymara" msgstr "" -#: js/toolbar.js:96 -#: js/toolbar.js:161 -#: js/toolbar.js:216 -#: js/toolbar.js:271 +#: js/toolbar.js:98 +#: js/toolbar.js:164 +#: js/toolbar.js:219 +#: js/toolbar.js:275 #.TRANS: msgid "quechua" msgstr "" -#: js/toolbar.js:97 -#: js/toolbar.js:162 -#: js/toolbar.js:217 -#: js/toolbar.js:272 +#: js/toolbar.js:99 +#: js/toolbar.js:165 +#: js/toolbar.js:220 +#: js/toolbar.js:276 #.TRANS: msgid "guarani" msgstr "" -#: js/toolbar.js:98 -#: js/toolbar.js:163 -#: js/toolbar.js:218 -#: js/toolbar.js:273 +#: js/toolbar.js:100 +#: js/toolbar.js:166 +#: js/toolbar.js:221 +#: js/toolbar.js:277 #.TRANS: msgid "हिंदी" msgstr "" -#: js/toolbar.js:99 -#: js/toolbar.js:165 -#: js/toolbar.js:219 -#: js/toolbar.js:275 +#: js/toolbar.js:101 +#: js/toolbar.js:168 +#: js/toolbar.js:222 +#: js/toolbar.js:279 #.TRANS: msgid "igbo" msgstr "" -#: js/toolbar.js:100 -#: js/toolbar.js:166 -#: js/toolbar.js:220 -#: js/toolbar.js:276 +#: js/toolbar.js:102 +#: js/toolbar.js:169 +#: js/toolbar.js:223 +#: js/toolbar.js:280 #.TRANS: msgid "عربى" msgstr "" -#: js/toolbar.js:101 -#: js/toolbar.js:164 -#: js/toolbar.js:221 -#: js/toolbar.js:274 +#: js/toolbar.js:103 +#: js/toolbar.js:167 +#: js/toolbar.js:224 +#: js/toolbar.js:278 +#.TRANS: msgid "తెలుగు" msgstr "" -#: js/toolbar.js:102 -#: js/toolbar.js:167 -#: js/toolbar.js:222 -#: js/toolbar.js:277 +#: js/toolbar.js:104 +#: js/toolbar.js:170 +#: js/toolbar.js:225 +#: js/toolbar.js:281 #.TRANS: msgid "עִברִית" msgstr "" -#: js/toolbar.js:111 -#: js/toolbar.js:175 -#: js/toolbar.js:176 -#: js/toolbar.js:231 +#: js/toolbar.js:113 +#: js/toolbar.js:114 +#: js/toolbar.js:178 +#: js/toolbar.js:179 +#: js/toolbar.js:234 +#: js/toolbar.js:235 #.TRANS: Pantalla completa msgid "Full Screen" msgstr "" -#: js/toolbar.js:145 #: js/toolbar.js:148 -#: js/toolbar.js:200 +#: js/toolbar.js:151 #: js/toolbar.js:203 -#: js/toolbar.js:255 -#: js/toolbar.js:258 +#: js/toolbar.js:206 +#: js/toolbar.js:259 +#: js/toolbar.js:262 #: js/turtledefs.js:558 #.TRANS: Guardar la ilustración de la tortuga como PNG msgid "Save turtle artwork as PNG" msgstr "" -#: js/toolbar.js:147 -#: js/toolbar.js:202 -#: js/toolbar.js:257 +#: js/toolbar.js:150 +#: js/toolbar.js:205 +#: js/toolbar.js:261 #: js/turtledefs.js:554 #.TRANS: Guardar la ilustración de la tortuga como SVG msgid "Save turtle artwork as SVG" msgstr "" -#: js/toolbar.js:154 -#: js/toolbar.js:209 -#: js/toolbar.js:264 +#: js/toolbar.js:157 +#: js/toolbar.js:212 +#: js/toolbar.js:268 #.TRANS: msgid "한국인" msgstr "" -#: js/toolbar.js:171 -#: js/toolbar.js:227 +#: js/toolbar.js:174 +#: js/toolbar.js:230 #.TRANS: Sobre Bloques de Tortuga msgid "About Turtle Blocks" msgstr "" -#: js/toolbar.js:429 -#: js/toolbar.js:440 +#: js/toolbar.js:446 +#: js/toolbar.js:457 +#: js/toolbar.js:497 #.TRANS: No Envolver msgid "Turtle Wrap Off" msgstr "" -#: js/toolbar.js:442 +#: js/toolbar.js:466 +#: js/toolbar.js:506 #.TRANS: Envolver msgid "Turtle Wrap On" msgstr "" -#: js/block.js:1470 -#.TRANS: matriz -msgid "matrix" -msgstr "" - -#: js/block.js:1477 -#: js/WidgetBlocks.js:1226 -#: plugins/rodi.rtp:324 -#.TRANS: estatus -msgid "status" -msgstr "kasta" - -#: js/block.js:1484 -#.TRANS: mapa del tambor -msgid "drum mapper" -msgstr "" - -#: js/block.js:1491 -#.TRANS: regla -msgid "ruler" -msgstr "" - -#: js/block.js:1498 -#: js/WidgetBlocks.js:327 -#.TRANS: timbre is the character or quality of a musical sound -#.TRANS: timbre -msgid "timbre" -msgstr "kunkariq" - -#: js/block.js:1505 -#.TRANS: escalera -msgid "stair" -msgstr "" - -#: js/block.js:1512 -#: js/WidgetBlocks.js:577 -#.TRANS: the speed at music is should be played. -#.TRANS: tempo -msgid "tempo" -msgstr "pacha" - -#: js/block.js:1519 -#: js/block.js:1582 -#: js/IntervalsBlocks.js:1268 -#.TRANS: mode, e.g., Major in C Major -#.TRANS: modo -msgid "mode" -msgstr "Tupasqa kunkakuna" - -#: js/block.js:1526 -#.TRANS: deslizador -msgid "slider" -msgstr "" - -#: js/block.js:1533 -#: js/SensorsBlocks.js:1001 -#.TRANS: teclado -msgid "keyboard" -msgstr "ñup’una taqi" - -#: js/block.js:1547 -#: js/WidgetBlocks.js:957 -#: js/WidgetBlocks.js:988 -#.TRANS: widget for subdividing a measure into distinct rhythmic elements -#.TRANS: hacer un ritmo -msgid "rhythm maker" -msgstr " kunka ruray" - -#: js/block.js:1554 -#: js/block.js:2182 -#: js/block.js:2236 -#: js/RhythmBlockPaletteBlocks.js:70 -#: js/RhythmBlockPaletteBlocks.js:251 -#: js/RhythmBlockPaletteBlocks.js:484 -#: js/RhythmBlockPaletteBlocks.js:553 -#: js/RhythmBlockPaletteBlocks.js:604 -#: js/RhythmBlockPaletteBlocks.js:874 -#: js/RhythmBlocks.js:33 -#: js/RhythmBlocks.js:356 -#: js/RhythmBlocks.js:766 -#: js/RhythmBlocks.js:806 -#: js/OrnamentBlocks.js:220 -#: js/OrnamentBlocks.js:312 -#: js/MeterBlocks.js:1367 -#: js/DictActions.js:85 -#: js/phrasemaker.js:731 -#: js/phrasemaker.js:2393 -#: js/phrasemaker.js:2436 -#: js/phrasemaker.js:2534 -#.TRANS: the value (e.g., 1/4 note) of the note being played. -#.TRANS: valor de la nota -msgid "note value" -msgstr "warurt'äwi chimpu chani" - -#: js/block.js:1561 -#: js/block.js:2110 -#: js/block.js:2133 -#: js/IntervalsBlocks.js:875 -#: js/OrnamentBlocks.js:312 -#.TRANS: calculate a relative step between notes based on semi-tones -#.TRANS: intervalo escalar -msgid "scalar interval" -msgstr "intervalo escalar" - -#: js/block.js:1568 -#: js/RhythmBlocks.js:148 -#.TRANS: milisegundos -msgid "milliseconds" -msgstr "k’ata tip" - -#: js/block.js:2180 -#: js/block.js:2184 -#: js/block.js:2234 -#: js/block.js:2345 -#: js/ProgramBlocks.js:1273 -#: js/RhythmBlocks.js:712 -#: js/rhythmruler.js:834 -#: js/rhythmruler.js:961 -#.TRANS: silencio -msgid "silence" -msgstr "ch’in" - -#: js/block.js:2265 -#: js/block.js:3134 -#: js/block.js:3151 -#: js/activity.js:2336 -#: js/activity.js:2387 -#: js/musicutils.js:2932 -#: js/musicutils.js:4287 -#.TRANS: the note names must be separated by single spaces -#.TRANS: the note names must be separated by single spaces -#.TRANS: si la sol fa mi re do -msgid "ti la sol fa mi re do" -msgstr "si la sol fa mi re do" - -#: js/block.js:2333 -#.TRANS: scalar step -#.TRANS: abajo -msgid "down" -msgstr "" - -#: js/block.js:2334 -#.TRANS: arriba -msgid "up" -msgstr "" - -#: js/block.js:3477 -#: js/block.js:3490 -#: js/ExtrasBlocks.js:612 -#.TRANS: Cartesiano -msgid "Cartesian" -msgstr "" - -#: js/block.js:3478 -#: js/block.js:3491 -#: js/ExtrasBlocks.js:616 -#.TRANS: polar -msgid "polar" -msgstr "" - -#: js/block.js:3479 -#: js/block.js:3492 -#: js/ExtrasBlocks.js:620 -#.TRANS: Cartesiano+polar -msgid "Cartesian+polar" -msgstr "" - -#: js/block.js:3480 -#: js/block.js:3499 -#: js/ExtrasBlocks.js:649 -#.TRANS: ninguno -msgid "none" -msgstr "" - -#: js/block.js:3493 -#: js/ExtrasBlocks.js:625 -#.TRANS: agudos -msgid "treble" -msgstr "" - -#: js/block.js:3494 -#: js/ExtrasBlocks.js:629 -#.TRANS: staff grande -msgid "grand staff" -msgstr "" - -#: js/block.js:3495 -#: js/ExtrasBlocks.js:633 -#.TRANS: mezzo-soprano -msgid "mezzo-soprano" -msgstr "" - -#: js/block.js:3496 -#: js/ExtrasBlocks.js:637 -#.TRANS: alto -msgid "alto" -msgstr "" - -#: js/block.js:3497 -#: js/ExtrasBlocks.js:641 -#.TRANS: tenor -msgid "tenor" -msgstr "" - -#: js/block.js:3498 -#: js/ExtrasBlocks.js:645 -#: js/musicutils.js:736 -#: js/synthutils.js:64 -#.TRANS: musical instrument -#.TRANS: bass -msgid "bass" -msgstr "aynacha ira" - -#: js/block.js:4075 -#.TRANS: no es un número -msgid "Not a number" -msgstr "" - -#: js/block.js:4082 -msgid "Octave value must be between 1 and 10." -msgstr "" - -#: js/block.js:4090 -msgid "Numbers can have at most 10 digits." -msgstr "" - -#: js/notation.js:353 -#.TRANS: Lilypond no puede procesar pickup de -msgid "Lilypond cannot process pickup of " -msgstr "" +#: js/turtle-painter.js:1192 +#: js/turtle-painter.js:1193 +#: js/turtles.js:118 +#: js/block-verbose.js:1623 +#: js/block.js:1587 +#: js/lilypond.js:749 +#: js/lilypond.js:913 +#: js/lilypond.js:951 +#: js/logo.js:1184 +#: js/blocks/ActionBlocks.js:1223 +#: js/blocks/ProgramBlocks.js:1267 +#.TRANS: iniciar +msgid "start" +msgstr "qallari" #: js/turtledefs.js:40 #.TRANS: put the URL to the guide here, e.g., https://github.com/sugarlabs/turtleblocksjs/tree/master/guide/README.md @@ -1884,8 +934,8 @@ msgstr "" #: js/turtledefs.js:120 #: js/turtledefs.js:222 -#: js/WidgetBlocks.js:437 -#: js/MeterBlocks.js:1343 +#: js/blocks/MeterBlocks.js:1343 +#: js/blocks/WidgetBlocks.js:522 #.TRANS: musical meter (time signature), e.g., 4:4 #.TRANS: metro msgid "meter" @@ -1905,17 +955,35 @@ msgstr "" #: js/turtledefs.js:125 #: js/turtledefs.js:227 -#: js/VolumeBlocks.js:362 -#: js/VolumeBlocks.js:502 -#: js/VolumeBlocks.js:545 +#: js/blocks/VolumeBlocks.js:362 +#: js/blocks/VolumeBlocks.js:502 +#: js/blocks/VolumeBlocks.js:545 #.TRANS: volumen msgid "volume" msgstr "volumen" -#: js/turtledefs.js:129 -#: js/turtledefs.js:231 -#.TRANS: cajas -msgid "boxes" +#: js/turtledefs.js:126 +#: js/turtledefs.js:228 +#: js/block-verbose.js:1700 +#: js/block-verbose.js:2626 +#: js/block.js:1664 +#: js/block.js:2554 +#: js/lilypond.js:732 +#: js/lilypond.js:897 +#: js/lilypond.js:941 +#: js/palette.js:577 +#: js/blocks/RhythmBlocks.js:766 +#: js/blocks/DrumBlocks.js:477 +#: js/blocks/VolumeBlocks.js:502 +#: js/widgets/phrasemaker.js:1038 +#.TRANS: tambor +msgid "drum" +msgstr "tarula" + +#: js/turtledefs.js:129 +#: js/turtledefs.js:231 +#.TRANS: cajas +msgid "boxes" msgstr "" #: js/turtledefs.js:130 @@ -1926,7 +994,7 @@ msgstr "" #: js/turtledefs.js:131 #: js/turtledefs.js:233 -#: js/phrasemaker.js:824 +#: js/widgets/phrasemaker.js:1039 #.TRANS: gráficos msgid "graphics" msgstr "siq’ikuna" @@ -1939,16 +1007,16 @@ msgstr "" #: js/turtledefs.js:137 #: js/turtledefs.js:239 -#: js/HeapBlocks.js:59 -#: js/status.js:147 +#: js/blocks/HeapBlocks.js:59 +#: js/widgets/status.js:147 #.TRANS: pila msgid "heap" msgstr "" #: js/turtledefs.js:138 #: js/turtledefs.js:240 -#: js/ProgramBlocks.js:495 -#: js/DictBlocks.js:142 +#: js/blocks/DictBlocks.js:142 +#: js/blocks/ProgramBlocks.js:495 #.TRANS: diccionario msgid "dictionary" msgstr "" @@ -2034,13 +1102,13 @@ msgid "You can also type Alt-S to stop." msgstr "" #: js/turtledefs.js:462 -#: js/help.js:333 +#: js/widgets/help.js:333 #.TRANS: Bienvenido a Bloques de Música msgid "Welcome to Music Blocks" msgstr "Takiy t’aqaman allin hamunki" #: js/turtledefs.js:472 -#: js/help.js:334 +#: js/widgets/help.js:334 #.TRANS: Conoce Sr. Ratón msgid "Meet Mr. Mouse!" msgstr "Wiraqucha huk’uchata riqsinki" @@ -2086,27 +1154,36 @@ msgid "You can also load projects from the file system." msgstr "" #: js/turtledefs.js:522 -#: js/StringHelper.js:46 +#: planet/js/StringHelper.js:46 #.TRANS: Borrar msgid "Delete" msgstr "Apsuña" #: js/turtledefs.js:523 +#.TRANS: Para eliminar un bloque, simplemente haz clic derecho sobre él, luego podrás ver la opción de eliminar. msgid "To delete a block, just right-click on it, then you will be able to see the delete option" msgstr "" #: js/turtledefs.js:528 -#: js/activity.js:2270 -#: js/LocalCard.js:31 +#: js/activity.js:2649 +#: planet/js/LocalCard.js:31 #.TRANS: Copiar msgid "Copy" msgstr "Apaqata" #: js/turtledefs.js:529 +#.TRANS: Para copiar un bloque, simplemente haz clic derecho sobre él, luego podrás ver la opción de copiar. msgid "To copy a block, just right-click on it, then you will be able to see the copy option" msgstr "" +#: js/turtledefs.js:534 +#: js/piemenus.js:3411 +#.TRANS: Extraer +msgid "Extract" +msgstr "" + #: js/turtledefs.js:535 +#.TRANS: Para extraer un bloque, simplemente haz clic derecho sobre él, luego podrás ver la opción de extracción. msgid "To extract a block, just right-click on it, then you will be able to see the extract option" msgstr "" @@ -2191,19 +1268,30 @@ msgstr "" msgid "Show or hide a coordinate grid." msgstr "" +#: js/turtledefs.js:626 +#: js/turtles.js:902 +#.TRANS: Limpiar +msgid "Clean" +msgstr "" + #: js/turtledefs.js:627 #.TRANS: Borre la pantalla y devuelva los ratones a sus posiciones iniciales. msgid "Clear the screen and return the mice to their initial positions." msgstr "" +#: js/turtledefs.js:632 +#: js/turtles.js:955 +#.TRANS: Contraer +msgid "Collapse" +msgstr "" + #: js/turtledefs.js:633 #.TRANS: Contraer la ventana de gráficos. msgid "Collapse the graphics window." msgstr "" #: js/turtledefs.js:638 -#: js/activity.js:4256 -#: js/activity.js:4256 +#: js/activity.js:5684 #.TRANS: Casa msgid "Home" msgstr "" @@ -2234,7 +1322,7 @@ msgid "Expand or collapse start and action stacks." msgstr "" #: js/turtledefs.js:658 -#: js/activity.js:4265 +#: js/activity.js:5704 #.TRANS: Disminuir el tamaño de los bloques msgid "Decrease block size" msgstr "" @@ -2245,7 +1333,7 @@ msgid "Decrease the size of the blocks." msgstr "" #: js/turtledefs.js:664 -#: js/activity.js:4267 +#: js/activity.js:5710 #.TRANS: Incrementar tamaño de bloques msgid "Increase block size" msgstr "" @@ -2347,7 +1435,7 @@ msgstr "" #: js/turtledefs.js:759 #: js/turtledefs.js:790 -#: js/help.js:335 +#: js/widgets/help.js:335 #.TRANS: Guía msgid "Guide" msgstr "pusaq" @@ -2364,7 +1452,7 @@ msgstr "" #: js/turtledefs.js:767 #: js/turtledefs.js:798 -#: js/help.js:336 +#: js/widgets/help.js:336 #.TRANS: Acerca msgid "About" msgstr "qayllampi" @@ -2391,8 +1479,8 @@ msgstr "" #: js/turtledefs.js:783 #: js/turtledefs.js:814 -#: js/help.js:337 -#: js/help.js:359 +#: js/widgets/help.js:337 +#: js/widgets/help.js:359 #.TRANS: Felicitaciones. msgid "Congratulations." msgstr "Jallalla" @@ -2407,12 +1495,6 @@ msgstr "" msgid "A detailed guide to Music Blocks is available." msgstr "" -#: js/turtledefs.js:795 -#: js/SaveInterface.js:76 -#.TRANS: Guía de Bloques de Música -msgid "Music Blocks Guide" -msgstr "" - #: js/turtledefs.js:799 #.TRANS: Bloques de Música es una colección de herramientas de Software Libre para explorar conceptos musicales. msgid "Music Blocks is an open source collection of tools for exploring musical concepts." @@ -2438,3586 +1520,4899 @@ msgstr "" msgid "You have finished the tour. Please enjoy Music Blocks!" msgstr "" -#: js/activity.js:369 +#: js/turtles.js:882 +#.TRANS: Cuadrícula +msgid "Grid" +msgstr "" + +#: js/turtles.js:1024 +#.TRANS: Expandir +msgid "Expand" +msgstr "" + +#: js/block-verbose.js:1616 +#: js/block-verbose.js:1735 +#: js/block.js:1580 +#: js/block.js:1699 +#: js/palette.js:605 +#: js/blocks/IntervalsBlocks.js:63 +#: js/blocks/WidgetBlocks.js:259 +#.TRANS: temperamento +msgid "temperament" +msgstr "munasqanman tikrakuq" + +#: js/block-verbose.js:1630 +#: js/block.js:1594 +#.TRANS: matriz +msgid "matrix" +msgstr "" + +#: js/block-verbose.js:1637 +#: js/block.js:1601 +#: js/blocks/WidgetBlocks.js:1509 +#: plugins/rodi.rtp:324 +#.TRANS: estatus +msgid "status" +msgstr "kasta" + +#: js/block-verbose.js:1644 +#: js/block.js:1608 +#.TRANS: mapa del tambor +msgid "drum mapper" +msgstr "" + +#: js/block-verbose.js:1651 +#: js/block.js:1615 +#.TRANS: regla +msgid "ruler" +msgstr "" + +#: js/block-verbose.js:1658 +#: js/block.js:1622 +#: js/blocks/WidgetBlocks.js:397 +#.TRANS: timbre is the character or quality of a musical sound +#.TRANS: timbre +msgid "timbre" +msgstr "kunkariq" + +#: js/block-verbose.js:1665 +#: js/block.js:1629 +#.TRANS: escalera +msgid "stair" +msgstr "" + +#: js/block-verbose.js:1672 +#: js/block.js:1636 +#: js/blocks/WidgetBlocks.js:707 +#.TRANS: the speed at music is should be played. +#.TRANS: tempo +msgid "tempo" +msgstr "pacha" + +#: js/block-verbose.js:1679 +#: js/block-verbose.js:1742 +#: js/block.js:1643 +#: js/block.js:1706 +#: js/blocks/IntervalsBlocks.js:1464 +#.TRANS: mode, e.g., Major in C Major +#.TRANS: modo +msgid "mode" +msgstr "Tupasqa kunkakuna" + +#: js/block-verbose.js:1686 +#: js/block.js:1650 +#.TRANS: deslizador +msgid "slider" +msgstr "" + +#: js/block-verbose.js:1693 +#: js/block.js:1657 +#: js/blocks/SensorsBlocks.js:1001 +#.TRANS: teclado +msgid "keyboard" +msgstr "ñup’una taqi" + +#: js/block-verbose.js:1707 +#: js/block.js:1671 +#: js/blocks/WidgetBlocks.js:1190 +#: js/blocks/WidgetBlocks.js:1228 +#.TRANS: widget for subdividing a measure into distinct rhythmic elements +#.TRANS: hacer un ritmo +msgid "rhythm maker" +msgstr " kunka ruray" + +#: js/block-verbose.js:1714 +#: js/block-verbose.js:2457 +#: js/block-verbose.js:2514 +#: js/block.js:1678 +#: js/block.js:2385 +#: js/block.js:2442 +#: js/blocks/MeterBlocks.js:1367 +#: js/blocks/OrnamentBlocks.js:220 +#: js/blocks/OrnamentBlocks.js:312 +#: js/blocks/RhythmBlocks.js:33 +#: js/blocks/RhythmBlocks.js:356 +#: js/blocks/RhythmBlocks.js:766 +#: js/blocks/RhythmBlocks.js:806 +#: js/blocks/RhythmBlockPaletteBlocks.js:70 +#: js/blocks/RhythmBlockPaletteBlocks.js:252 +#: js/blocks/RhythmBlockPaletteBlocks.js:485 +#: js/blocks/RhythmBlockPaletteBlocks.js:554 +#: js/blocks/RhythmBlockPaletteBlocks.js:605 +#: js/blocks/RhythmBlockPaletteBlocks.js:875 +#: js/turtleactions/DictActions.js:85 +#: js/widgets/phrasemaker.js:942 +#: js/widgets/phrasemaker.js:2656 +#: js/widgets/phrasemaker.js:2699 +#: js/widgets/phrasemaker.js:2810 +#.TRANS: the value (e.g., 1/4 note) of the note being played. +#.TRANS: valor de la nota +msgid "note value" +msgstr "warurt'äwi chimpu chani" + +#: js/block-verbose.js:1721 +#: js/block-verbose.js:2382 +#: js/block-verbose.js:2405 +#: js/block.js:1685 +#: js/block.js:2310 +#: js/block.js:2333 +#: js/blocks/IntervalsBlocks.js:1071 +#: js/blocks/OrnamentBlocks.js:312 +#.TRANS: calculate a relative step between notes based on semi-tones +#.TRANS: intervalo escalar +msgid "scalar interval" +msgstr "intervalo escalar" + +#: js/block-verbose.js:1728 +#: js/block.js:1692 +#: js/blocks/RhythmBlocks.js:148 +#.TRANS: milisegundos +msgid "milliseconds" +msgstr "k’ata tip" + +#: js/block-verbose.js:2455 +#: js/block-verbose.js:2459 +#: js/block-verbose.js:2512 +#: js/block-verbose.js:2628 +#: js/block.js:2383 +#: js/block.js:2387 +#: js/block.js:2440 +#: js/block.js:2556 +#: js/blocks/RhythmBlocks.js:712 +#: js/blocks/ProgramBlocks.js:1273 +#: js/widgets/rhythmruler.js:1183 +#: js/widgets/rhythmruler.js:1329 +#.TRANS: silencio +msgid "silence" +msgstr "ch’in" + +#: js/block-verbose.js:2548 +#: js/block-verbose.js:3492 +#: js/block-verbose.js:3509 +#: js/activity.js:2718 +#: js/activity.js:2769 +#: js/block.js:2476 +#: js/block.js:3416 +#: js/block.js:3433 +#: js/utils/musicutils.js:3780 +#: js/utils/musicutils.js:5273 +#.TRANS: the note names must be separated by single spaces +#.TRANS: the note names must be separated by single spaces +#.TRANS: the note names must be separated by single spaces +#.TRANS: si la sol fa mi re do +msgid "ti la sol fa mi re do" +msgstr "si la sol fa mi re do" + +#: js/block-verbose.js:2616 +#: js/block.js:2544 +#.TRANS: scalar step +#.TRANS: scalar step +#.TRANS: abajo +msgid "down" +msgstr "" + +#: js/block-verbose.js:2617 +#: js/block.js:2545 +#.TRANS: arriba +msgid "up" +msgstr "" + +#: js/block-verbose.js:3026 +#: js/block.js:2950 +#.TRANS: El bloqueo de silencio no se puede eliminar. +msgid "Silence block cannot be removed." +msgstr "" + +#: js/block-verbose.js:3824 +#: js/block.js:3748 +#: js/blocks.js:2607 +#: js/blocks.js:3218 +#: js/palette.js:618 +#: js/blocks/BooleanBlocks.js:77 +#: js/blocks/BooleanBlocks.js:167 +#: js/blocks/BooleanBlocks.js:251 +#: js/blocks/BooleanBlocks.js:335 +#: js/blocks/BooleanBlocks.js:433 +#: js/blocks/BooleanBlocks.js:539 +#: js/blocks/BooleanBlocks.js:640 +#: js/blocks/BooleanBlocks.js:741 +#: js/blocks/BooleanBlocks.js:847 +#: js/blocks/BooleanBlocks.js:948 +#: js/blocks/BooleanBlocks.js:1033 +#: js/blocks/SensorsBlocks.js:910 +#.TRANS: verdadero +msgid "true" +msgstr "chiqaq" + +#: js/block-verbose.js:3824 +#: js/block.js:3748 +#: js/blocks.js:2609 +#: js/blocks.js:3220 +#: js/blocks/BooleanBlocks.js:79 +#: js/blocks/BooleanBlocks.js:169 +#: js/blocks/BooleanBlocks.js:253 +#: js/blocks/BooleanBlocks.js:337 +#: js/blocks/BooleanBlocks.js:435 +#: js/blocks/BooleanBlocks.js:541 +#: js/blocks/BooleanBlocks.js:642 +#: js/blocks/BooleanBlocks.js:743 +#: js/blocks/BooleanBlocks.js:849 +#: js/blocks/BooleanBlocks.js:950 +#: js/blocks/SensorsBlocks.js:912 +#.TRANS: falso +msgid "false" +msgstr "llulla" + +#: js/block-verbose.js:3835 +#: js/block-verbose.js:3848 +#: js/block.js:3759 +#: js/block.js:3772 +#: js/blocks/ExtrasBlocks.js:615 +#.TRANS: Cartesiano +msgid "Cartesian" +msgstr "" + +#: js/block-verbose.js:3836 +#: js/block-verbose.js:3849 +#: js/block.js:3760 +#: js/block.js:3773 +#: js/blocks/ExtrasBlocks.js:619 +#.TRANS: polar +msgid "polar" +msgstr "" + +#: js/block-verbose.js:3837 +#: js/block-verbose.js:3850 +#: js/block.js:3761 +#: js/block.js:3774 +#: js/blocks/ExtrasBlocks.js:623 +#.TRANS: Cartesiano+polar +msgid "Cartesian+polar" +msgstr "" + +#: js/block-verbose.js:3838 +#: js/block-verbose.js:3857 +#: js/block.js:3762 +#: js/block.js:3781 +#: js/blocks/ExtrasBlocks.js:652 +#.TRANS: ninguno +msgid "none" +msgstr "" + +#: js/block-verbose.js:3851 +#: js/block.js:3775 +#: js/blocks/ExtrasBlocks.js:628 +#.TRANS: agudos +msgid "treble" +msgstr "" + +#: js/block-verbose.js:3852 +#: js/block.js:3776 +#: js/blocks/ExtrasBlocks.js:632 +#.TRANS: staff grande +msgid "grand staff" +msgstr "" + +#: js/block-verbose.js:3853 +#: js/block.js:3777 +#: js/blocks/ExtrasBlocks.js:636 +#.TRANS: mezzo-soprano +msgid "mezzo-soprano" +msgstr "" + +#: js/block-verbose.js:3854 +#: js/block.js:3778 +#: js/blocks/ExtrasBlocks.js:640 +#.TRANS: alto +msgid "alto" +msgstr "" + +#: js/block-verbose.js:3855 +#: js/block.js:3779 +#: js/blocks/ExtrasBlocks.js:644 +#.TRANS: tenor +msgid "tenor" +msgstr "" + +#: js/block-verbose.js:3856 +#: js/block.js:3780 +#: js/utils/musicutils.js:1115 +#: js/utils/synthutils.js:80 +#: js/blocks/ExtrasBlocks.js:648 +#.TRANS: musical instrument +#.TRANS: bass +msgid "bass" +msgstr "aynacha ira" + +#: js/block-verbose.js:3901 +#: js/block.js:3825 +#: js/blocks.js:2600 +#: js/blocks.js:3211 +#.TRANS: encendido +msgid "on2" +msgstr "" + +#: js/block-verbose.js:3903 +#: js/block.js:3827 +#: js/blocks.js:2602 +#: js/blocks.js:3213 +#.TRANS: apagado +msgid "off" +msgstr "" + +#: js/block-verbose.js:4470 +#: js/block.js:4394 +#.TRANS: no es un número +msgid "Not a number" +msgstr "" + +#: js/block-verbose.js:4477 +#: js/block.js:4401 +#.TRANS: El bloqueo de silencio no se puede eliminar. +msgid "Octave value must be between 1 and 10." +msgstr "" + +#: js/block-verbose.js:4485 +#: js/block.js:4409 +#.TRANS: El bloqueo de silencio no se puede eliminar. +msgid "Numbers can have at most 10 digits." +msgstr "" + +#: js/activity.js:390 +#: js/activity.js:395 #.TRANS: Buscar bloques msgid "Search for blocks" msgstr "" -#: js/activity.js:1145 +#: js/activity.js:1413 #.TRANS: Actualice su navegador para cambiar al modo avanzado. msgid "Refresh your browser to change to advanced mode." msgstr "" -#: js/activity.js:1150 +#: js/activity.js:1418 #.TRANS: Actualice su navegador para cambiar al modo principiante. msgid "Refresh your browser to change to beginner mode." msgstr "" -#: js/activity.js:1184 +#: js/activity.js:1477 #.TRANS: atrapar ratones msgid "Catching mice" msgstr "" -#: js/activity.js:1185 +#: js/activity.js:1478 #.TRANS: limpiar los instrumentos msgid "Cleaning the instruments" msgstr "" -#: js/activity.js:1186 +#: js/activity.js:1479 #.TRANS: probando piezas clave msgid "Testing key pieces" msgstr "" -#: js/activity.js:1187 +#: js/activity.js:1480 #.TRANS: lectura a primera vista msgid "Sight-reading" msgstr "" -#: js/activity.js:1188 +#: js/activity.js:1481 #.TRANS: combinando matemáticas y música msgid "Combining math and music" msgstr "" -#: js/activity.js:1189 +#: js/activity.js:1482 #.TRANS: generando más bloques msgid "Generating more blocks" msgstr "" -#: js/activity.js:1190 +#: js/activity.js:1483 #.TRANS: Do Re Mi Fa Sol La Si Do msgid "Do Re Mi Fa Sol La Ti Do" msgstr "" -#: js/activity.js:1191 +#: js/activity.js:1484 #.TRANS: afinar instrumentos de cuerda msgid "Tuning string instruments" msgstr "" -#: js/activity.js:1192 +#: js/activity.js:1485 #.TRANS: presionando teclas aleatorias msgid "Pressing random keys" msgstr "" -#: js/activity.js:1351 +#: js/activity.js:1663 #.TRANS: los plugins se eliminarán al reiniciar. msgid "plugins will be removed upon restart." msgstr "" -#: js/activity.js:1360 +#: js/activity.js:1672 #.TRANS: Mostrar Cartesiano msgid "show Cartesian" msgstr "" -#: js/activity.js:1842 +#: js/activity.js:2211 +#: js/palette.js:589 +#: js/blocks/RhythmBlocks.js:923 +#: js/blocks/PitchBlocks.js:442 +#: js/blocks/PitchBlocks.js:1786 +#.TRANS: a numeric mapping of the notes in an octave based on the musical mode +#.TRANS: grado de escala +msgid "scale degree" +msgstr "" + +#: js/activity.js:2214 +#: js/palette.js:598 +#.TRANS: nombre de voz +msgid "voice name" +msgstr "" + +#: js/activity.js:2217 +#: js/palette.js:595 +#.TRANS: modo invertido +msgid "invert mode" +msgstr "" + +#: js/activity.js:2220 #.TRANS: herramientas de producción msgid "output tools" msgstr "" -#: js/activity.js:1845 +#: js/activity.js:2223 #.TRANS: nota personalizada msgid "custom note" msgstr "" -#: js/activity.js:1848 +#: js/activity.js:2226 #.TRANS: nombre accidental msgid "accidental name" msgstr "" -#: js/activity.js:1851 -#: js/PitchBlocks.js:855 +#: js/activity.js:2229 +#: js/blocks/PitchBlocks.js:855 #.TRANS: msgid "east indian solfege" msgstr "" -#: js/activity.js:1854 -#: js/PitchBlocks.js:869 +#: js/activity.js:2232 +#: js/blocks/PitchBlocks.js:869 #.TRANS: nombre de la nota msgid "note name" msgstr "" -#: js/activity.js:1857 -#: js/IntervalsBlocks.js:94 +#: js/activity.js:2235 +#: js/blocks/IntervalsBlocks.js:94 #.TRANS: nombre de temperamento msgid "temperament name" msgstr "" -#: js/activity.js:1863 -#.TRANS: +#: js/activity.js:2238 +#: js/palette.js:592 +#.TRANS: nombre de modo +msgid "mode name" +msgstr "" + +#: js/activity.js:2241 +#.TRANS: nombre de achorde msgid "chord name" msgstr "" -#: js/activity.js:1869 +#: js/activity.js:2244 +#: js/palette.js:615 +#.TRANS: nombre de intervalo +msgid "interval name" +msgstr "" + +#: js/activity.js:2247 #.TRANS: tipo de filtro msgid "filter type" msgstr "" -#: js/activity.js:1872 +#: js/activity.js:2250 #.TRANS: tipo de oscilador msgid "oscillator type" msgstr "" -#: js/activity.js:1878 -#: js/DrumBlocks.js:32 +#: js/activity.js:2253 +#: js/blocks.js:2479 +#: js/blocks.js:2487 +#.TRANS: archivo de audio +msgid "audio file" +msgstr "" + +#: js/activity.js:2256 +#: js/blocks/DrumBlocks.js:32 #.TRANS: nombre de ruido msgid "noise name" msgstr "" -#: js/activity.js:1881 -#: js/DrumBlocks.js:75 +#: js/activity.js:2259 +#: js/blocks/DrumBlocks.js:75 #.TRANS: nombre del tambor msgid "drum name" msgstr "" -#: js/activity.js:1884 -#: js/DrumBlocks.js:119 +#: js/activity.js:2262 +#: js/blocks/DrumBlocks.js:119 #.TRANS: nombre de efectos msgid "effects name" msgstr "" -#: js/activity.js:1887 +#: js/activity.js:2265 #.TRANS: modo de envoltura msgid "wrap mode" msgstr "" -#: js/activity.js:1890 +#: js/activity.js:2268 #.TRANS: cargar archivo msgid "load file" msgstr "" -#: js/activity.js:2056 +#: js/activity.js:2435 +#: js/activity.js:5851 #.TRANS: Este bloque está en desuso. msgid "This block is deprecated." msgstr "" -#: js/activity.js:2058 +#: js/activity.js:2437 +#: js/activity.js:5853 #.TRANS: Este bloque no se puede encontrar. msgid "Block cannot be found." msgstr "" -#: js/activity.js:2266 +#: js/activity.js:2645 #.TRANS: Guardar ilustraciones de bloques msgid "Saving block artwork" msgstr "" -#: js/activity.js:2277 +#: js/activity.js:2656 #.TRANS: Borrar msgid "Erase" msgstr "" -#: js/activity.js:2301 -#: js/activity.js:2323 +#: js/activity.js:2683 +#: js/activity.js:2705 #.TRANS: Pegar msgid "Paste" msgstr "" -#: js/activity.js:2305 +#: js/activity.js:2687 #.TRANS: Guardar ayuda de bloque msgid "Save block help" msgstr "" -#: js/activity.js:2390 +#: js/activity.js:2772 #.TRANS: Saltando al final de la página msgid "Jumping to the bottom of the page." msgstr "" -#: js/activity.js:2396 +#: js/activity.js:2778 #.TRANS: Desplazarse hacia arriba msgid "Scrolling up." msgstr "" -#: js/activity.js:2401 +#: js/activity.js:2783 #.TRANS: Desplazarse hacia abajo msgid "Scrolling down." msgstr "" -#: js/activity.js:2406 +#: js/activity.js:2788 #.TRANS: Bloque de extracción msgid "Extracting block" msgstr "" -#: js/activity.js:2414 +#: js/activity.js:2796 #.TRANS: Mover bloque hacia arriba msgid "Moving block up." msgstr "" -#: js/activity.js:2435 +#: js/activity.js:2817 #.TRANS: Mover bloque hacia abajo msgid "Moving block down." msgstr "" -#: js/activity.js:2456 +#: js/activity.js:2838 #.TRANS: Mover bloque a la izquierda msgid "Moving block left." msgstr "" -#: js/activity.js:2473 +#: js/activity.js:2855 #.TRANS: Mover bloque a la derecha msgid "Moving block right." msgstr "" -#: js/activity.js:2488 +#: js/activity.js:2870 #.TRANS: Saltar a la posición inicial msgid "Jump to home position." msgstr "" -#: js/activity.js:2515 +#: js/activity.js:2897 #.TRANS: Ocultar bloques msgid "Hide blocks" msgstr "" -#: js/activity.js:3389 +#: js/activity.js:4500 #.TRANS: Haga clic en el botón ejecutar para ejecutar el proyecto. msgid "Click the run button to run the project." msgstr "" -#: js/activity.js:3456 -#: js/SaveInterface.js:131 -#: js/SaveInterface.js:204 -#: js/SaveInterface.js:262 -#: js/SaveInterface.js:389 -#: js/SaveInterface.js:417 -#: js/ProjectStorage.js:27 -#: js/GlobalPlanet.js:467 -#: js/GlobalPlanet.js:469 -#: js/GlobalPlanet.js:495 -#.TRANS: default project title when saving as Lilypond -#.TRANS: Mi proyecto -msgid "My Project" -msgstr "Wakichäwija" - -#: js/activity.js:4261 +#: js/activity.js:5692 #.TRANS: Mostrar/ocultar bloques msgid "Show/hide block" msgstr "" -#: js/activity.js:4263 +#: js/activity.js:5698 #.TRANS: Expandir / Contraer bloques msgid "Expand/collapse blocks" msgstr "" -#: js/activity.js:4381 +#: js/activity.js:5976 #.TRANS: No se pudo analizar la entrada de JSON. msgid "Could not parse JSON input." msgstr "" -#: js/activity.js:4684 -#: js/activity.js:4771 -#: js/activity.js:4821 +#: js/activity.js:6475 +#: js/activity.js:6580 +#: js/activity.js:6631 #.TRANS: No se puede cargar el proyecto desde el archivo. Compruebe el tipo de archivo. msgid "Cannot load project from the file. Please check the file type." msgstr "" -#: js/activity.js:5051 +#: js/activity.js:6917 #.TRANS: El parametro es invalido. msgid "Invalid parameters" msgstr "" -#: js/turtle-singer.js:1334 -#.TRANS: partials are weighted components in a harmonic series -#.TRANS: Debe tener al menos un bloque parcial dentro de un bloque parcial ponderado. -msgid "You must have at least one Partial block inside of a Weighted-partial block" +#: js/blocks.js:1212 +#: js/blocks.js:3444 +#: js/blocks.js:3834 +#: js/blocks.js:3865 +#: js/blocks.js:3914 +#: js/blocks.js:3949 +#: js/blocks.js:6586 +#: js/palette.js:509 +#: js/palette.js:638 +#: js/palette.js:1105 +#: js/blocks/BoxesBlocks.js:282 +#: js/blocks/BoxesBlocks.js:285 +#: js/blocks/BoxesBlocks.js:405 +#: js/blocks/BoxesBlocks.js:594 +#.TRANS: caja +msgid "box" +msgstr "tawa k'uchu" + +#: js/blocks.js:1713 +#.TRANS: Considera dividir esta pila en partes. +msgid "Consider breaking this stack into parts." msgstr "" -#: js/turtle-singer.js:2048 -#.TRANS: Synth no puede tocar acordes. -msgid "synth cannot play chords." +#: js/blocks.js:2472 +#: js/palette.js:653 +#: js/blocks/MediaBlocks.js:602 +#.TRANS: abrir archivo +msgid "open file" msgstr "" -#: js/lilypond.js:614 +#: js/blocks.js:3247 +#: js/palette.js:574 +#: js/blocks/MediaBlocks.js:892 +#: js/blocks/MediaBlocks.js:963 +#.TRANS: texto +msgid "text" +msgstr "qillqa" + +#: js/blocks.js:3443 +#: js/palette.js:641 +#: js/palette.js:642 +#: js/blocks/BoxesBlocks.js:514 +#.TRANS: guardar en caja +msgid "store in box" +msgstr "tawa k’uchupi waqaychay" + +#: js/blocks.js:3448 +#: js/blocks.js:3888 +#: js/blocks.js:3923 +#: js/blocks.js:3958 +#: js/blocks.js:5862 +#: js/blocks.js:5883 +#: js/blocks/BoxesBlocks.js:772 +#.TRANS: caja1 +msgid "box1" +msgstr "caja1" + +#: js/blocks.js:3450 +#: js/blocks.js:3890 +#: js/blocks.js:3925 +#: js/blocks.js:3960 +#: js/blocks.js:5864 +#: js/blocks.js:5885 +#: js/blocks/BoxesBlocks.js:663 +#.TRANS: caja2 +msgid "box2" +msgstr "caja2" + +#: js/blocks.js:4122 +#: js/palette.js:639 +#: js/palette.js:644 +#: js/palette.js:1041 +#: js/blocks/BoxesBlocks.js:591 +#.TRANS: guardar en +msgid "store in" +msgstr "imapi waqaychanki" "maypi waqaychanki" + +#: js/blocks.js:4122 +#: js/blocks/BoxesBlocks.js:595 +#: js/blocks/DictBlocks.js:215 +#: js/blocks/DictBlocks.js:289 +#: js/blocks/EnsembleBlocks.js:391 +#: js/blocks/EnsembleBlocks.js:402 +#: js/blocks/MediaBlocks.js:746 +#: js/blocks/PitchBlocks.js:656 +#: js/blocks/PitchBlocks.js:934 +#: js/blocks/PitchBlocks.js:1866 +#: js/blocks/ProgramBlocks.js:390 +#: js/blocks/ProgramBlocks.js:495 +#: js/blocks/ProgramBlocks.js:658 +#: js/blocks/ToneBlocks.js:1025 +#.TRANS: nombre +msgid "name" +msgstr "suti" + +#: js/blocks.js:4122 +#: js/blocks/BoxesBlocks.js:75 +#: js/blocks/BoxesBlocks.js:595 +#: js/blocks/DictBlocks.js:289 +#: js/blocks/DictBlocks.js:430 +#: js/blocks/HeapBlocks.js:544 +#: js/blocks/RhythmBlocks.js:1130 +#.TRANS: valor +msgid "value" +msgstr "tupu" + +#: js/blocks.js:4465 +#.TRANS: Se detectó un bucle indefinido dentro de un bloque de valor de nota. Pueden ocurrir cosas inesperadas. +msgid "Forever loop detected inside a note value block. Unexpected things may happen." +msgstr "" + +#: js/blocks.js:4988 +#.TRANS: No hay bloque seleccionado. +msgid "There is no block selected." +msgstr "" + +#: js/blocks.js:5091 +#: js/blocks/MediaBlocks.js:888 +#.TRANS: mostrar +msgid "show" +msgstr "qhawachiy" + +#: js/blocks.js:5094 +#: js/blocks/MediaBlocks.js:803 +#.TRANS: Avatar is the image used to determine the appearance of the mouse. +#.TRANS: avatar +msgid "avatar" +msgstr "siq’isqa" + +#: js/blocks.js:5097 +#: js/blocks/ToneBlocks.js:1010 +#: js/widgets/sampler.js:975 +#.TRANS: The sound sample that the user uploads. +#.TRANS: muestra de audio +msgid "sample" +msgstr "" + +#: js/lilypond.js:606 #.TRANS: rata marrón msgid "brown rat" msgstr "" -#: js/lilypond.js:615 +#: js/lilypond.js:607 #.TRANS: topo msgid "mole" msgstr "" -#: js/lilypond.js:616 +#: js/lilypond.js:608 #.TRANS: ardilla msgid "chipmunk" msgstr "" -#: js/lilypond.js:617 +#: js/lilypond.js:609 #.TRANS: ardilla roja msgid "red squirrel" msgstr "" -#: js/lilypond.js:618 +#: js/lilypond.js:610 #.TRANS: conejillo de indias msgid "guinea pig" msgstr "" -#: js/lilypond.js:619 +#: js/lilypond.js:611 #.TRANS: capybara msgid "capybara" msgstr "" -#: js/lilypond.js:620 +#: js/lilypond.js:612 #.TRANS: coypu msgid "coypu" msgstr "" -#: js/lilypond.js:621 +#: js/lilypond.js:613 #.TRANS: rata negra msgid "black rat" msgstr "" -#: js/lilypond.js:622 +#: js/lilypond.js:614 #.TRANS: ardilla gris msgid "grey squirrel" msgstr "" -#: js/lilypond.js:623 +#: js/lilypond.js:615 #.TRANS: ardilla voladora msgid "flying squirrel" msgstr "" -#: js/lilypond.js:624 +#: js/lilypond.js:616 #.TRANS: murciélago msgid "bat" msgstr "" -#: js/lilypond.js:757 -#: js/lilypond.js:921 -#: js/lilypond.js:959 -#: js/ActionBlocks.js:1256 -#: js/ExtrasBlocks.js:553 +#: js/lilypond.js:749 +#: js/lilypond.js:913 +#: js/lilypond.js:951 +#: js/blocks/ActionBlocks.js:1256 +#: js/blocks/ExtrasBlocks.js:556 #.TRANS: iniciar tambor msgid "start drum" msgstr "tarula qhantayaña" -#: js/SaveInterface.js:59 -#: js/SaveInterface.js:61 -#: js/SaveInterface.js:93 -#.TRANS: Proyecto de Bloques de Música -msgid "Music Blocks Project" +#: js/logo.js:61 +#.TRANS: No es un nombre de tono válido. +msgid "Not a valid pitch name" msgstr "" -#: js/SaveInterface.js:63 -#.TRANS: Este proyecto fue creado en Bloques de Música -msgid "This project was created in Music Blocks" -msgstr "" +#: js/logo.js:507 +#: js/blocks/ProgramBlocks.js:258 +#: js/blocks/ProgramBlocks.js:427 +#.TRANS: Debe seleccionar un archivo. +msgid "You must select a file." +msgstr "Huk waqaychasqata ch’ikuy" -#: js/SaveInterface.js:67 -#.TRANS: Bloques de Música es una aplicación de Software Libre -msgid "Music Blocks is a Free/Libre Software application." +#: js/logo.js:1696 +#.TRANS: La reproducción está preparada. +msgid "Playback is ready." msgstr "" -#: js/SaveInterface.js:69 -#.TRANS: Se puede acceder al código fuente en -msgid "The source code can be accessed at" -msgstr "" +#: js/macros.js:711 +#: js/utils/musicutils.js:1162 +#: js/utils/synthutils.js:202 +#.TRANS: animal sound effect +#.TRANS: pato +msgid "duck" +msgstr "patu" -#: js/SaveInterface.js:72 -#.TRANS: Para más información, consulte el -msgid "For more information, please consult the" +#: js/notation.js:353 +#.TRANS: Lilypond no puede procesar pickup de +msgid "Lilypond cannot process pickup of " msgstr "" -#: js/SaveInterface.js:83 -#.TRANS: Alternativamente, abra el archivo en Bloques de Música usando el botón Cargar proyecto. -msgid "Alternatively, open the file in Music Blocks using the Load project button." +#: js/palette.js:571 +#.TRANS: cuadrícula +msgid "grid" msgstr "" -#: js/SaveInterface.js:85 -#.TRANS: Código de proyecto -msgid "Project Code" +#: js/palette.js:580 +#.TRANS: efecto +msgid "effect" msgstr "" -#: js/SaveInterface.js:87 -#.TRANS: Este código almacena datos sobre los bloques en un proyecto. -msgid "This code stores data about the blocks in a project." +#: js/palette.js:586 +#.TRANS: +msgid "sargam" msgstr "" -#: js/SaveInterface.js:89 -#.TRANS: Mostrar -msgid "Show" -msgstr "" +#: js/palette.js:601 +#: js/blocks/PitchBlocks.js:1209 +#.TRANS: personalizado tono +msgid "custom pitch" +msgstr "sapallanpa kunka" -#: js/SaveInterface.js:91 -#.TRANS: Ocultar -msgid "Hide" +#: js/palette.js:609 +#.TRANS: accidental +msgid "accidental" +msgstr "yanapaqnin" + +#: js/palette.js:633 +#: js/blocks/PitchBlocks.js:405 +#.TRANS: convertidor de tono +msgid "pitch converter" msgstr "" -#: js/SaveInterface.js:197 -#: js/SaveInterface.js:58 -#.TRANS: Ninguna descripción provista -msgid "No description provided" -msgstr "Ninguna descripción provista" +#: js/piemenus.js:200 +#: js/utils/musicutils.js:1187 +#: js/utils/musicutils.js:1207 +#: js/widgets/musickeyboard.js:2341 +#: js/widgets/phrasemaker.js:1908 +#: js/widgets/sampler.js:810 +#.TRANS: double sharp is a music term related to pitch +#.TRANS: doble agudas +msgid "double sharp" +msgstr "iskay ñañu kunka" -#: js/SaveInterface.js:332 -#.TRANS: Tu grabación está en curso. -msgid "Your recording is in progress." +#: js/piemenus.js:201 +#: js/utils/musicutils.js:1185 +#: js/utils/musicutils.js:1208 +#: js/blocks/PitchBlocks.js:1539 +#: js/turtleactions/PitchActions.js:323 +#: js/widgets/musickeyboard.js:2342 +#: js/widgets/phrasemaker.js:1909 +#: js/widgets/sampler.js:811 +#.TRANS: sharp is a music term related to pitch +#.TRANS: sharp is a half-step up in pitch +#.TRANS: agudas +msgid "sharp" +msgstr "allin uyarikuy" + +#: js/piemenus.js:202 +#: js/utils/musicutils.js:1183 +#: js/utils/musicutils.js:1209 +#: js/widgets/musickeyboard.js:2343 +#: js/widgets/phrasemaker.js:1910 +#: js/widgets/sampler.js:812 +#.TRANS: natural is a music term related to pitch +#.TRANS: normal +msgid "natural" +msgstr "purum" + +#: js/piemenus.js:203 +#: js/utils/musicutils.js:1181 +#: js/utils/musicutils.js:1210 +#: js/blocks/PitchBlocks.js:1498 +#: js/turtleactions/PitchActions.js:326 +#: js/widgets/musickeyboard.js:2344 +#: js/widgets/phrasemaker.js:1911 +#: js/widgets/sampler.js:813 +#.TRANS: flat is a music term related to pitch +#.TRANS: flat is a half-step down in pitch +#.TRANS: planas +msgid "flat" +msgstr "pampa" + +#: js/piemenus.js:204 +#: js/utils/musicutils.js:1179 +#: js/utils/musicutils.js:1211 +#: js/widgets/musickeyboard.js:2345 +#: js/widgets/phrasemaker.js:1912 +#: js/widgets/sampler.js:814 +#.TRANS: double flat is a music term related to pitch +#.TRANS: doble planas +msgid "double flat" +msgstr "iskay t’aqlla" + +#: js/piemenus.js:2864 +#: js/utils/musicutils.js:1006 +#: js/blocks/PitchBlocks.js:1385 +#.TRANS: unison is a music term related to intervals +#.TRANS: unison means the note is the same as the current note +#.TRANS: unísono +msgid "unison" +msgstr "unísono" + +#: js/piemenus.js:3018 +#: js/piemenus.js:3091 +#: js/utils/musicutils.js:1014 +#: js/utils/musicutils.js:1189 +#: js/utils/musicutils.js:1326 +#.TRANS: major is a music term related to intervals and mode +#.TRANS: mayor +msgid "major" +msgstr "jila" + +#: js/piemenus.js:3018 +#: js/piemenus.js:3091 +#: js/utils/musicutils.js:1032 +#.TRANS: modal scale for music +#.TRANS: ionian +msgid "ionian" +msgstr "ionian" + +#: js/piemenus.js:3020 +#: js/piemenus.js:3095 +#: js/utils/musicutils.js:1012 +#: js/utils/musicutils.js:1190 +#: js/utils/musicutils.js:1323 +#.TRANS: minor is a music term related to intervals and mode +#.TRANS: menor +msgid "minor" +msgstr "sullka" + +#: js/piemenus.js:3020 +#: js/piemenus.js:3095 +#: js/utils/musicutils.js:1042 +#.TRANS: modal scale for music +#.TRANS: aeolian +msgid "aeolian" +msgstr "aeolian" + +#: js/piemenus.js:3410 +#.TRANS: Duplicar +msgid "Duplicate" msgstr "" -#: js/SaveInterface.js:401 -#.TRANS: File name prompt for save as Lilypond -#.TRANS: Nombre del archivo -msgid "File name" +#: js/piemenus.js:3412 +#.TRANS: Mover para recargar +msgid "Move to trash" msgstr "" -#: js/SaveInterface.js:403 -#: js/StringHelper.js:39 -#.TRANS: Project title prompt for save as Lilypond -#.TRANS: Título del proyecto -msgid "Project title" -msgstr "Título del proyecto" +#: js/piemenus.js:3413 +#: js/widgets/timbre.js:968 +#: planet/js/StringHelper.js:69 +#.TRANS: Cerrar +msgid "Close" +msgstr "wisq’ay" -#: js/SaveInterface.js:405 -#.TRANS: Project title prompt for save as Lilypond -#.TRANS: Autor del Proyecto -msgid "Project author" +#: js/piemenus.js:3419 +#.TRANS: Guardar pila +msgid "Save stack" msgstr "" -#: js/SaveInterface.js:407 -#.TRANS: MIDI prompt for save as Lilypond -#.TRANS: Incluye MIDI? -msgid "Include MIDI output?" +#: js/piemenus.js:3449 +#.TRANS: Se detectó un bucle indefinido dentro de un bloque de valor de nota. Pueden ocurrir cosas inesperadas. +msgid "In order to copy a sample, you must reload the widget, import the sample again, and export it." msgstr "" -#: js/SaveInterface.js:409 -#.TRANS: Guitar prompt for save as Lilypond -#.TRANS: Incluye tablatura de guitarra -msgid "Include guitar tablature output?" +#: js/piemenus.js:3812 +#.TRANS: Ha elegido la tecla +msgid "You have chosen key " msgstr "" -#: js/SaveInterface.js:411 -#.TRANS: Lilypond is a scripting language for generating sheet music -#.TRANS: Guardar como lilypond -msgid "Save as Lilypond" +#: js/piemenus.js:3816 +#.TRANS: para la vista previa de su tono. +msgid " for your pitch preview." msgstr "" -#: js/SaveInterface.js:426 -#: js/EnsembleBlocks.js:75 -#: js/EnsembleBlocks.js:154 -#: js/EnsembleBlocks.js:216 -#: js/EnsembleBlocks.js:302 -#: js/EnsembleBlocks.js:348 -#: js/EnsembleBlocks.js:389 -#: js/EnsembleBlocks.js:441 -#: js/EnsembleBlocks.js:490 -#: js/EnsembleBlocks.js:536 -#: js/EnsembleBlocks.js:583 -#: js/EnsembleBlocks.js:637 -#: js/EnsembleBlocks.js:753 -#: js/EnsembleBlocks.js:840 -#: js/EnsembleBlocks.js:899 -#: js/EnsembleBlocks.js:942 -#: js/EnsembleBlocks.js:1212 -#: js/EnsembleBlocks.js:1280 -#.TRANS: default project author when saving as Lilypond -#.TRANS: Sr. Ratón -msgid "Mr. Mouse" -msgstr "Tata Jithiyaña Achaku" +#: js/turtle-singer.js:1363 +#.TRANS: partials are weighted components in a harmonic series +#.TRANS: Debe tener al menos un bloque parcial dentro de un bloque parcial ponderado. +msgid "You must have at least one Partial block inside of a Weighted-partial block" +msgstr "" -#: js/SaveInterface.js:573 -#.TRANS: El código de Lilypond se copia al portapapeles. Puedes pegarlo aquí: -msgid "The Lilypond code is copied to clipboard. You can paste it here: " +#: js/turtle-singer.js:2077 +#.TRANS: Synth no puede tocar acordes. +msgid "synth cannot play chords." msgstr "" -#: js/RhythmBlockPaletteBlocks.js:50 -#: js/RhythmBlockPaletteBlocks.js:232 -#.TRANS: rhythm block -#.TRANS: translate "rhythm1" as rhythm -#.TRANS: ritmo -msgid "rhythm1" -msgstr "ritmo" - -#: js/RhythmBlockPaletteBlocks.js:70 -#: js/RhythmBlockPaletteBlocks.js:251 -#: js/RhythmBlockPaletteBlocks.js:484 -#: js/RhythmBlockPaletteBlocks.js:553 -#: js/RhythmBlockPaletteBlocks.js:874 -#.TRANS: número de notas -msgid "number of notes" -msgstr "Yupay waqaykuna" - -#: js/RhythmBlockPaletteBlocks.js:126 -#.TRANS: ritmo polifónico -msgid "polyphonic rhythm" -msgstr "Achka waqaykunap Munay muyuchik" - -#: js/RhythmBlockPaletteBlocks.js:218 -#.TRANS: El bloque Ritmo se utiliza para generar patrones de ritmo. -msgid "The Rhythm block is used to generate rhythm patterns." -msgstr "Munay purichiqa kinkinman hina qatipaq" - -#: js/RhythmBlockPaletteBlocks.js:279 -#.TRANS: 1/64 nota -msgid "1/64 note" -msgstr "1/64 kunka" - -#: js/RhythmBlockPaletteBlocks.js:303 -#.TRANS: 1/32 nota -msgid "1/32 note" -msgstr "Kunkaq tahasqan" - -#: js/RhythmBlockPaletteBlocks.js:331 -#.TRANS: 1/16 nota -msgid "1/16 note" -msgstr "1/6 kunka" - -#: js/RhythmBlockPaletteBlocks.js:359 -#.TRANS: 1/8 nota -msgid "eighth note" -msgstr "1/8 kunka" - -#: js/RhythmBlockPaletteBlocks.js:387 -#.TRANS: 1/4 nota -msgid "quarter note" -msgstr "1/4 kunka" - -#: js/RhythmBlockPaletteBlocks.js:415 -#.TRANS: 1/2 nota -msgid "half note" -msgstr "1/2 kunka" +#: js/utils/musicutils.js:505 +#: js/utils/musicutils.js:645 +#: js/widgets/pitchdrummatrix.js:228 +#: js/widgets/musickeyboard.js:2885 +#.TRANS: descanso +msgid "rest" +msgstr "samay" -#: js/RhythmBlockPaletteBlocks.js:443 -#.TRANS: nota completa -msgid "whole note" -msgstr "hunt’asqa kunka" +#: js/utils/musicutils.js:689 +#.TRANS: Unísono perfecto +msgid "Perfect unison" +msgstr "" -#: js/RhythmBlockPaletteBlocks.js:481 -#: js/RhythmBlockPaletteBlocks.js:550 -#: js/RhythmBlockPaletteBlocks.js:601 -#.TRANS: A tuplet is a note value divided into irregular time values. -#.TRANS: tuplet -msgid "tuplet" -msgstr "tupla chimpu" +#: js/utils/musicutils.js:689 +#.TRANS: Segundo disminuido +msgid "Diminished second" +msgstr "" -#: js/RhythmBlockPaletteBlocks.js:767 -#.TRANS: septeto -msgid "septuplet" -msgstr "Qanchikmanta" +#: js/utils/musicutils.js:690 +#.TRANS: Segundo menor +msgid "Minor second" +msgstr "" -#: js/RhythmBlockPaletteBlocks.js:795 -#.TRANS: quinteto -msgid "quintuplet" -msgstr "Phisqamanta" +#: js/utils/musicutils.js:690 +#.TRANS: Unísono aumentado +msgid "Augmented unison" +msgstr "" -#: js/RhythmBlockPaletteBlocks.js:823 -#.TRANS: trillizo -msgid "triplet" +#: js/utils/musicutils.js:691 +#.TRANS: Segundo mayor +msgid "Major second" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:850 -#.TRANS: tuplet simple -msgid "simple tuplet" -msgstr "tuplet simple" +#: js/utils/musicutils.js:691 +#.TRANS: Tercio disminuido +msgid "Diminished third" +msgstr "" -#: js/RhythmBlockPaletteBlocks.js:860 -#.TRANS: Tuplets son una colección de notas que se escalan a una duración específica. -msgid "Tuplets are a collection of notes that get scaled to a specific duration." +#: js/utils/musicutils.js:692 +#.TRANS: Tercio menor +msgid "Minor third" msgstr "" -#: js/WidgetBlocks.js:71 -#.TRANS: sound envelope (ADSR) -#.TRANS: envolventes -msgid "envelope" -msgstr "envolventes" +#: js/utils/musicutils.js:692 +#.TRANS: Segundo aumentado +msgid "Augmented second" +msgstr "" -#: js/WidgetBlocks.js:79 -#.TRANS: Attack time is the time taken for initial run-up of level from nil to peak, beginning when the key is first pressed. -#.TRANS: atacar -msgid "attack" -msgstr "atacar" +#: js/utils/musicutils.js:693 +#.TRANS: Tercio mayor +msgid "Major third" +msgstr "" -#: js/WidgetBlocks.js:81 -#.TRANS: Decay time is the time taken for the subsequent run down from the attack level to the designated sustain level. -#.TRANS: decaer -msgid "decay" -msgstr "Pisipayay" +#: js/utils/musicutils.js:693 +#.TRANS: Cuarta disminuida +msgid "Diminished fourth" +msgstr "" -#: js/WidgetBlocks.js:83 -#.TRANS: Sustain level is the level during the main sequence of the sound's duration, until the key is released. -#.TRANS: sostener -msgid "sustain" -msgstr "hap’ipay" +#: js/utils/musicutils.js:694 +#.TRANS: Cuarta perfecta +msgid "Perfect fourth" +msgstr "" -#: js/WidgetBlocks.js:85 -#.TRANS: Release time is the time taken for the level to decay from the sustain level to zero after the key is released. -#.TRANS: liberar -msgid "release" -msgstr " waqmanta ñawinchay" +#: js/utils/musicutils.js:694 +#.TRANS: Tercio aumentado +msgid "Augmented third" +msgstr "" -#: js/WidgetBlocks.js:96 -#.TRANS: El valor de atacar debe estar entre 0 y 100. -msgid "Attack value should be from 0 to 100." -msgstr "El valor de atacar debe estar entre 0 y 100." +#: js/utils/musicutils.js:695 +#.TRANS: Quinta disminuida +msgid "Diminished fifth" +msgstr "" -#: js/WidgetBlocks.js:99 -#.TRANS: El valor de decaer debe estar entre 0 y 100. -msgid "Decay value should be from 0 to 100." -msgstr "Pisipayachiyqa 0 – 100 kaman kanan" +#: js/utils/musicutils.js:695 +#.TRANS: Cuarta aumentada +msgid "Augmented fourth" +msgstr "" -#: js/WidgetBlocks.js:102 -#.TRANS: El valor de sostener debe estar entre 0 y 100. -msgid "Sustain value should be from 0 to 100." -msgstr "Hap’paypa tupuynin ch’usaqmanta pachaqkamann kanan" +#: js/utils/musicutils.js:696 +#.TRANS: Quinta perfecta +msgid "Perfect fifth" +msgstr "" -#: js/WidgetBlocks.js:105 -#.TRANS: El valor de liberar debe estar entre 0 y 100. -msgid "Release value should be from 0-100." -msgstr "Kachariya tupun kanan 0 – 100 kama" +#: js/utils/musicutils.js:696 +#.TRANS: Sexto disminuido +msgid "Diminished sixth" +msgstr "" -#: js/WidgetBlocks.js:121 -#.TRANS: Está agregando varios bloques de envolvente. -msgid "You are adding multiple envelope blocks." -msgstr "Está agregando varios bloques de envolvente." +#: js/utils/musicutils.js:697 +#.TRANS: Sexto menor +msgid "Minor sixth" +msgstr "" -#: js/WidgetBlocks.js:144 -#.TRANS: a filter removes some unwanted components from a signal -#.TRANS: filtrar -msgid "filter" -msgstr "suysuy" +#: js/utils/musicutils.js:697 +#.TRANS: Quinta aumentada +msgid "Augmented fifth" +msgstr "" -#: js/WidgetBlocks.js:149 -#: js/musicutils.js:706 -#: js/musicutils.js:1105 -#.TRANS: highpass filter -#.TRANS: highpass -msgid "highpass" +#: js/utils/musicutils.js:698 +#.TRANS: Sexto mayor +msgid "Major sixth" msgstr "" -#: js/WidgetBlocks.js:152 -#: js/ToneBlocks.js:42 -#: js/timbre.js:1558 -#: js/timbre.js:1808 -#.TRANS: type of filter, e.g., lowpass, highpass, etc. -#.TRANS: there are different types (sine, triangle, square...) of oscillators. -#.TRANS: typo -msgid "type" -msgstr "typo" +#: js/utils/musicutils.js:698 +#.TRANS: Séptimo disminuido +msgid "Diminished seventh" +msgstr "" -#: js/WidgetBlocks.js:154 -#: js/timbre.js:1818 -#.TRANS: rolloff is the steepness of a change in frequency. -#.TRANS: rodar -msgid "rolloff" -msgstr "rolloff jithtayaña" +#: js/utils/musicutils.js:699 +#.TRANS: Séptimo menor +msgid "Minor seventh" +msgstr "" -#: js/WidgetBlocks.js:155 -#: js/MediaBlocks.js:692 -#: js/temperament.js:382 -#: js/temperament.js:417 -#: js/temperament.js:477 -#: js/temperament.js:485 -#: js/temperament.js:1348 -#: js/timbre.js:1842 -#.TRANS: frecuencia -msgid "frequency" -msgstr "Kutipayaq" +#: js/utils/musicutils.js:699 +#.TRANS: Sexto aumentado +msgid "Augmented sixth" +msgstr "" -#: js/WidgetBlocks.js:179 -#.TRANS: rolloff is the steepness of a change in frequency. -#.TRANS: Roll off valor debe ser -12, -24, -48, o -96 decibelios. -msgid "Rolloff value should be either -12, -24, -48, or -96 decibels/octave." +#: js/utils/musicutils.js:700 +#.TRANS: Séptimo mayor +msgid "Major seventh" msgstr "" -#: js/WidgetBlocks.js:211 -#.TRANS: La Herramienta temperamento se utiliza para definir la afinación personalizada. -msgid "The Temperament tool is used to define custom tuning." -msgstr "La Herramienta temperamento se utiliza para definir la afinación personalizada." +#: js/utils/musicutils.js:700 +#.TRANS: Octavo disminuido +msgid "Diminished octave" +msgstr "" -#: js/WidgetBlocks.js:277 -#: js/sampler.js:329 -#.TRANS: Sube una muestra de audio y ajusta su centro de tono. -msgid "Upload a sample and adjust its pitch center." +#: js/utils/musicutils.js:701 +#.TRANS: Octavo perfecto +msgid "Perfect octave" msgstr "" -#: js/WidgetBlocks.js:284 -#.TRANS: the speed at music is should be played. -#.TRANS: muestreador de audio -msgid "sampler" +#: js/utils/musicutils.js:701 +#.TRANS: Séptimo aumentado +msgid "Augmented seventh" msgstr "" -#: js/WidgetBlocks.js:329 -#: js/WidgetBlocks.js:334 -#: js/IntervalsBlocks.js:928 -#: js/VolumeBlocks.js:411 -#: js/ToneBlocks.js:946 -#: js/VolumeActions.js:218 -#: js/musicutils.js:704 -#: js/musicutils.js:755 -#: js/musicutils.js:798 -#: js/musicutils.js:820 -#: js/musicutils.js:1136 -#: js/synthutils.js:118 -#: js/modewidget.js:919 -#.TRANS: customize voice -#.TRANS: personalizado -msgid "custom" -msgstr "Runachasqa" +#: js/utils/musicutils.js:702 +#.TRANS: Novena menor +msgid "Minor ninth" +msgstr "" -#: js/WidgetBlocks.js:432 -#.TRANS: El bloque Meter abre una herramienta para seleccionar golpes fuertes para el metro. -msgid "The Meter block opens a tool to select strong beats for the meter." +#: js/utils/musicutils.js:702 +#.TRANS: Octavo aumentado +msgid "Augmented octave" msgstr "" -#: js/WidgetBlocks.js:473 -#.TRANS: El bloque del osciloscopio abre una herramienta para visualizar formas de onda. -msgid "The oscilloscope block opens a tool to visualize waveforms." +#: js/utils/musicutils.js:703 +#.TRANS: Novena mayor +msgid "Major ninth" msgstr "" -#: js/WidgetBlocks.js:478 -#.TRANS: osciloscopio -msgid "oscilloscope" +#: js/utils/musicutils.js:703 +#.TRANS: Décima disminuida +msgid "Diminished tenth" msgstr "" -#: js/WidgetBlocks.js:530 -#.TRANS: El bloque Modo personalizado abre una herramienta para explorar el modo musical (el espaciado de las notas en una escala). -msgid "The Custom mode block opens a tool to explore musical mode (the spacing of the notes in a scale)." +#: js/utils/musicutils.js:704 +#.TRANS: Décima menor +msgid "Minor tenth" msgstr "" -#: js/WidgetBlocks.js:536 -#.TRANS: musical mode is the pattern of half-steps in an octave, e.g., Major or Minor modes -#.TRANS: modo personalizado -msgid "custom mode" -msgstr "huk hinayuq runachasqa" +#: js/utils/musicutils.js:704 +#.TRANS: Novena aumentada +msgid "Augmented ninth" +msgstr "" -#: js/WidgetBlocks.js:570 -#.TRANS: El bloque Tempo abre un metrónomo para visualizar el ritmo. -msgid "The Tempo block opens a metronome to visualize the beat." -msgstr "El bloque Tempo abre un metrónomo para visualizar el ritmo." +#: js/utils/musicutils.js:705 +#.TRANS: Décima mayor +msgid "Major tenth" +msgstr "" -#: js/WidgetBlocks.js:617 -#.TRANS: El Arpegio Widget se usa para componer secuencias de acordes. -msgid "The Arpeggio Widget is used to compose chord sequences." +#: js/utils/musicutils.js:705 +#.TRANS: Undécimo disminuido +msgid "Diminished eleventh" msgstr "" -#: js/WidgetBlocks.js:623 -#: js/IntervalsBlocks.js:683 -#.TRANS: arpegio -msgid "arpeggio" +#: js/utils/musicutils.js:706 +#.TRANS: Undécimo perfecto +msgid "Perfect eleventh" msgstr "" -#: js/WidgetBlocks.js:677 -#.TRANS: La Matriz de percusión de tono se utiliza para asignar tonos a los sonidos de tambor. -msgid "The Pitch drum matrix is used to map pitches to drum sounds." +#: js/utils/musicutils.js:706 +#.TRANS: Décima aumentada +msgid "Augmented tenth" msgstr "" -#: js/WidgetBlocks.js:682 -#.TRANS: makes a mapping between pitches and drum sounds -#.TRANS: matriz de tono en tambor -msgid "pitch-drum mapper" -msgstr "taki purihiq" +#: js/utils/musicutils.js:707 +#.TRANS: Doce disminuido +msgid "Diminished twelfth" +msgstr "" -#: js/WidgetBlocks.js:724 -#.TRANS: Debe tener al menos un bloque de tono y un bloque de tambor en la matriz. -msgid "You must have at least one pitch block and one drum block in the matrix." +#: js/utils/musicutils.js:707 +#.TRANS: Undécimo aumentado +msgid "Augmented eleventh" msgstr "" -#: js/WidgetBlocks.js:746 -#.TRANS: La Herramienta de control deslizante tono se utiliza para generar tonos en las frecuencias seleccionadas. -msgid "The Pitch slider tool to is used to generate pitches at selected frequencies." +#: js/utils/musicutils.js:708 +#.TRANS: Doce perfecto +msgid "Perfect twelfth" msgstr "" -#: js/WidgetBlocks.js:751 -#.TRANS: widget to generate pitches using a slider -#.TRANS: deslizante de tono -msgid "pitch slider" -msgstr "Kunka lluskhachik" +#: js/utils/musicutils.js:708 +#.TRANS: Decimotercero disminuido +msgid "Diminished thirteenth" +msgstr "" -#: js/WidgetBlocks.js:788 -#.TRANS: teclado cromático -msgid "chromatic keyboard" -msgstr "teclado cromático" +#: js/utils/musicutils.js:709 +#.TRANS: Doce menor +msgid "Minor thirteenth" +msgstr "" -#: js/WidgetBlocks.js:815 -#: js/WidgetBlocks.js:874 -#.TRANS: widget to generate pitches using a slider -#.TRANS: teclado musical -msgid "music keyboard" -msgstr "taki t’upuna" +#: js/utils/musicutils.js:709 +#.TRANS: Quinta aumentada, más una octava +msgid "Augmented fifth, plus an octave" +msgstr "" -#: js/WidgetBlocks.js:859 -#: js/WidgetBlocks.js:866 -#.TRANS: El bloque Teclado de música abre un teclado de piano que puede usarse para crear notas. -msgid "The Music keyboard block opens a piano keyboard that can be used to create notes." +#: js/utils/musicutils.js:710 +#.TRANS: Decimotercero mayor +msgid "Major thirteenth" msgstr "" -#: js/WidgetBlocks.js:910 -#.TRANS: La Herramienta escalera de tono se utiliza para generar tonos a partir de una relación dada. -msgid "The Pitch staircase tool to is used to generate pitches from a given ratio." +#: js/utils/musicutils.js:710 +#.TRANS: Séptimo disminuido, más una octava +msgid "Diminished seventh, plus an octave" msgstr "" -#: js/WidgetBlocks.js:917 -#.TRANS: generate a progressive sequence of pitches -#.TRANS: escalera de tono -msgid "pitch staircase" -msgstr "Kunka siqachina" +#: js/utils/musicutils.js:838 +#.TRANS: ordinal number. Please keep exactly one space between each number. +#.TRANS: 1º 2º 3º 4º 5º 6º 7º 8º 9º 10º 11º 12º +msgid "1st 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th" +msgstr "1º 2º 3º 4º 5º 6º 7º 8º 9º 10º 11º 12º" -#: js/WidgetBlocks.js:982 -#.TRANS: El bloque Hacer un ritmo abre una herramienta para crear cajas de ritmos. -msgid "The Rhythm Maker block opens a tool to create drum machines." -msgstr "" +#: js/utils/musicutils.js:1008 +#: js/utils/musicutils.js:1191 +#: js/utils/musicutils.js:1325 +#.TRANS: augmented is a music term related to intervals +#.TRANS: aumentado +msgid "augmented" +msgstr "jithxatayata" -#: js/WidgetBlocks.js:1036 -#.TRANS: escala mayor G -msgid "G major scale" -msgstr "Kuraq G wichachina" +#: js/utils/musicutils.js:1010 +#: js/utils/musicutils.js:1192 +#: js/utils/musicutils.js:1324 +#.TRANS: diminished is a music term related to intervals and mode +#.TRANS: disminuido +msgid "diminished" +msgstr "jithiqayata" -#: js/WidgetBlocks.js:1064 -#.TRANS: escala mayor C -msgid "C major scale" -msgstr "Kuraq C wichachina" +#: js/utils/musicutils.js:1016 +#: js/utils/musicutils.js:1322 +#: js/blocks/IntervalsBlocks.js:649 +#: js/turtleactions/IntervalsActions.js:120 +#: js/turtleactions/IntervalsActions.js:124 +#.TRANS: perfect is a music term related to intervals +#.TRANS: perfecto +msgid "perfect" +msgstr "allinpuni" -#: js/WidgetBlocks.js:1097 -#.TRANS: El bloque Matriz de tono y tiempo abre una herramienta para crear frases musicales. -msgid "The Phrase Maker block opens a tool to create musical phrases." -msgstr "" +#: js/utils/musicutils.js:1018 +#.TRANS: twelve semi-tone scale for music +#.TRANS: cromático +msgid "chromatic" +msgstr "cromático" -#: js/WidgetBlocks.js:1104 -#.TRANS: assigns pitch to a sequence of beats to generate a melody -#.TRANS: matriz de tono en tiempo -msgid "phrase maker" -msgstr "Kunka pachapi paqarichiq " +#: js/utils/musicutils.js:1019 +#.TRANS: argelino +msgid "algerian" +msgstr "argelino" -#: js/WidgetBlocks.js:1168 -#.TRANS: Debe tener al menos un bloque de tono y un bloque de ritmo en la matriz. -msgid "You must have at least one pitch block and one rhythm block in the matrix." +#: js/utils/musicutils.js:1020 +#.TRANS: español +msgid "spanish" +msgstr "español" + +#: js/utils/musicutils.js:1022 +#.TRANS: modal scale in music +#.TRANS: octatonic +msgid "octatonic" msgstr "" -#: js/WidgetBlocks.js:1220 -#.TRANS: El bloque Estado abre una herramienta para inspeccionar el estado de Bloques de Música mientras se ejecuta. -msgid "The Status block opens a tool for inspecting the status of Music Blocks as it is running." -msgstr "" - -#: js/IntervalsBlocks.js:45 -#.TRANS: fijar temperamento -msgid "set temperament" -msgstr "q’uñipi k’askachiy" - -#: js/IntervalsBlocks.js:63 -#: js/MediaBlocks.js:746 -#: js/PitchBlocks.js:657 -#: js/PitchBlocks.js:933 -#: js/PitchBlocks.js:972 -#: js/PitchBlocks.js:1005 -#: js/PitchBlocks.js:1166 -#: js/PitchBlocks.js:1679 -#: js/PitchBlocks.js:1720 -#: js/PitchBlocks.js:1827 -#: js/ToneBlocks.js:1025 -#.TRANS: adjusts the shift up or down by one octave (twelve half-steps in the interval between two notes, one having twice or half the frequency in Hz of the other.) -#.TRANS: octava -msgid "octave" -msgstr "pusaq pata" +#: js/utils/musicutils.js:1024 +#.TRANS: harmonic major scale in music +#.TRANS: armónico mayor +msgid "harmonic major" +msgstr "armónico mayor" -#: js/IntervalsBlocks.js:99 -#.TRANS: El bloque Nombre Temperamento se utiliza para seleccionar un método de ajuste. -msgid "The Temperament name block is used to select a tuning method." -msgstr "" +#: js/utils/musicutils.js:1026 +#.TRANS: natural minor scales in music +#.TRANS: natural menor +msgid "natural minor" +msgstr "natural menor" -#: js/IntervalsBlocks.js:161 -#.TRANS: doble -msgid "doubly" -msgstr "iskaycha" +#: js/utils/musicutils.js:1028 +#.TRANS: harmonic minor scale in music +#.TRANS: armónico menor +msgid "harmonic minor" +msgstr "armónico menor" -#: js/IntervalsBlocks.js:166 -#.TRANS: El bloque doble duplicará el tamaño de un intervalo. -msgid "The Doubly block will double the size of an interval." -msgstr "iskaycha t’aqata iskaychanqa sayayninta unaymanta" +#: js/utils/musicutils.js:1030 +#.TRANS: melodic minor scale in music +#.TRANS: melódico menor +msgid "melodic minor" +msgstr "melódico menor" -#: js/IntervalsBlocks.js:262 -#.TRANS: número de intervalo -msgid "interval number" +#: js/utils/musicutils.js:1034 +#.TRANS: modal scale for music +#.TRANS: dorio +msgid "dorian" msgstr "" -#: js/IntervalsBlocks.js:330 -#.TRANS: measure the distance between two pitches in semi-tones -#.TRANS: medida de intervalo semitono -msgid "semi-tone interval measure" -msgstr "tupuy unaymanta kuskan kunka" - -#: js/IntervalsBlocks.js:397 -#: js/IntervalsBlocks.js:513 -#.TRANS: Debe usar dos bloques de tono cuando mida un intervalo. -msgid "You must use two pitch blocks when measuring an interval." +#: js/utils/musicutils.js:1036 +#.TRANS: modal scale for music +#.TRANS: frigio +msgid "phrygian" msgstr "" -#: js/IntervalsBlocks.js:439 -#.TRANS: El bloque Intervalo escalar mide la distancia entre dos notas en la clave y el modo actuales. -msgid "The Scalar interval block measures the distance between two notes in the current key and mode." +#: js/utils/musicutils.js:1038 +#.TRANS: modal scale for music +#.TRANS: lidio +msgid "lydian" msgstr "" -#: js/IntervalsBlocks.js:445 -#.TRANS: measure the distance between two pitches in steps of musical scale -#.TRANS: medida de intervalo escalar -msgid "scalar interval measure" -msgstr "tupuy unaymanta siqaq" - -#: js/IntervalsBlocks.js:592 -#: js/musicutils.js:637 -#: js/musicutils.js:908 -#.TRANS: perfect is a music term related to intervals -#.TRANS: perfecto -msgid "perfect" -msgstr "allinpuni" +#: js/utils/musicutils.js:1040 +#.TRANS: modal scale for music +#.TRANS: mixolidio +msgid "mixolydian" +msgstr "" -#: js/IntervalsBlocks.js:621 -#.TRANS: En la figura, agregamos sol# a sol. -msgid "In the figure, we add sol# to sol." -msgstr "En la figura, agregamos sol# a sol." +#: js/utils/musicutils.js:1044 +#.TRANS: modal scale for music +#.TRANS: locrian +msgid "locrian" +msgstr "" -#: js/IntervalsBlocks.js:627 -#: js/OrnamentBlocks.js:220 -#.TRANS: calculate a relative step between notes based on semi-tones -#.TRANS: intervalo semitono -msgid "semi-tone interval" -msgstr "intervalo semitono" +#: js/utils/musicutils.js:1046 +#.TRANS: minor jazz scale for music +#.TRANS: jazz menor +msgid "jazz minor" +msgstr "jazz menor" -#: js/IntervalsBlocks.js:676 -#.TRANS: La salida del ejemplo es: do, mi, sol, sol, ti, mi -msgid "The output of the example is: do, mi, sol, sol, ti, mi" +#: js/utils/musicutils.js:1048 +#.TRANS: bebop scale for music +#.TRANS: bebop +msgid "bebop" msgstr "" -#: js/IntervalsBlocks.js:735 -#.TRANS: -msgid "The Chord block calculates common chords." -msgstr "" +#: js/utils/musicutils.js:1049 +#.TRANS: arábica +msgid "arabic" +msgstr "arábica" -#: js/IntervalsBlocks.js:737 -#.TRANS: -msgid "In the figure, we generate a C-major chord." -msgstr "" +#: js/utils/musicutils.js:1050 +#.TRANS: bizantino +msgid "byzantine" +msgstr "bizantino" -#: js/IntervalsBlocks.js:742 -#.TRANS: acorde -msgid "chord" -msgstr "tinkuq kunka" +#: js/utils/musicutils.js:1052 +#.TRANS: musical scale for music by Verdi +#.TRANS: enigmático +msgid "enigmatic" +msgstr "enigmático" -#: js/IntervalsBlocks.js:794 -#.TRANS: El bloque intervalo de razón calcula un intervalo basado en una razón" -msgid "The Ratio Interval block calculates an interval based on a ratio." -msgstr "" +#: js/utils/musicutils.js:1053 +#.TRANS: etíope +msgid "ethiopian" +msgstr "etíope" -#: js/IntervalsBlocks.js:799 -#.TRANS: intervalo de razón -msgid "ratio interval" +#: js/utils/musicutils.js:1055 +#.TRANS: Ethiopic scale for music +#.TRANS: geez +msgid "geez" msgstr "" -#: js/IntervalsBlocks.js:868 -#.TRANS: En la figura, sumamos la a sol. -msgid "In the figure, we add la to sol." -msgstr "En la figura, sumamos la a sol." +#: js/utils/musicutils.js:1056 +#.TRANS: hindú +msgid "hindu" +msgstr "hindú" -#: js/IntervalsBlocks.js:924 -#.TRANS: define a custom mode -#.TRANS: definir el modo -msgid "define mode" -msgstr "definir el modo" +#: js/utils/musicutils.js:1057 +#.TRANS: húngaro +msgid "hungarian" +msgstr "húngaro" -#: js/IntervalsBlocks.js:977 -#.TRANS: movible Do -msgid "movable Do" -msgstr "movible Do" +#: js/utils/musicutils.js:1059 +#.TRANS: minor Romanian scale for music +#.TRANS: romano menor +msgid "romanian minor" +msgstr "romano menor" -#: js/IntervalsBlocks.js:1028 -#.TRANS: mode length is the number of notes in the mode, e.g., 7 for major and minor scales; 12 for chromatic scales -#.TRANS: longitud de modo -msgid "mode length" -msgstr "Hina kay sunin" +#: js/utils/musicutils.js:1060 +#.TRANS: gitana española +msgid "spanish gypsy" +msgstr "gitana española" -#: js/IntervalsBlocks.js:1037 -#.TRANS: El bloque Longitud de modo es el número de notas en la escala actual. -msgid "The Mode length block is the number of notes in the current scale." +#: js/utils/musicutils.js:1062 +#.TRANS: musical scale for Mid-Eastern music +#.TRANS: maqam +msgid "maqam" msgstr "" -#: js/IntervalsBlocks.js:1039 -#.TRANS: La mayoría de las escalas occidentales tienen 7 notas. -msgid "Most Western scales have 7 notes." -msgstr "La mayoría de las escalas occidentales tienen 7 notas." +#: js/utils/musicutils.js:1064 +#.TRANS: minor blues scale for music +#.TRANS: blues menor +msgid "minor blues" +msgstr "blues menor" -#: js/IntervalsBlocks.js:1088 -#.TRANS: the mode in music is 'major', 'minor', etc. -#.TRANS: modo actual -msgid "current mode" -msgstr "Chaynalla kunka" +#: js/utils/musicutils.js:1066 +#.TRANS: major blues scale for music +#.TRANS: blues mayor +msgid "major blues" +msgstr "blues mayor" -#: js/IntervalsBlocks.js:1141 -#.TRANS: the key is a group of pitches with which a music composition is created -#.TRANS: clave actual -msgid "current key" -msgstr "kunan kichaq" +#: js/utils/musicutils.js:1067 +#.TRANS: tono completo +msgid "whole tone" +msgstr "tono completo" -#: js/IntervalsBlocks.js:1193 -#: js/IntervalsBlocks.js:1238 -#.TRANS: set the key and mode, e.g. C Major -#.TRANS: fijar clave -msgid "set key" -msgstr "imañanaka wakichata limt'aña" +#: js/utils/musicutils.js:1069 +#.TRANS: pentatonic is a general term that means "five note scale". This scale is typically known as "minor pentatonic" +#.TRANS: pentatonic minor +msgid "minor pentatonic" +msgstr "pentatonic minor" -#: js/IntervalsBlocks.js:1247 -#: js/IntervalsBlocks.js:1253 -#.TRANS: El bloque Fijar tecla se usa para configurar la tecla y el modo, -msgid "The Set key block is used to set the key and mode," -msgstr "El bloque Fijar tecla se usa para configurar la tecla y el modo," +#: js/utils/musicutils.js:1071 +#.TRANS: pentatonic is a general term that means "five note scale". This scale is typically known as "major pentatonic" +#.TRANS: pentatonic mayor +msgid "major pentatonic" +msgstr "pentatonic mayor" -#: js/IntervalsBlocks.js:1253 -#.TRANS: por ejemplo, C Mayor -msgid "eg C Major" -msgstr "C kuraq" +#: js/utils/musicutils.js:1072 +#.TRANS: chino +msgid "chinese" +msgstr "chino" -#: js/IntervalsBlocks.js:1266 -#: js/DictBlocks.js:215 -#: js/DictBlocks.js:216 -#: js/DictBlocks.js:289 -#: js/DictBlocks.js:290 -#: js/DictBlocks.js:357 -#: js/DictBlocks.js:430 -#: js/DictBlocks.js:431 -#.TRANS: key, e.g., C in C Major -#.TRANS: clave -msgid "key" -msgstr "kichanapaq" +#: js/utils/musicutils.js:1073 +#.TRANS: egipcio +msgid "egyptian" +msgstr "egipcio" -#: js/ActionBlocks.js:58 -#.TRANS: El bloque Volver (Return) devolverá un valor de una acción. -msgid "The Return block will return a value from an action." -msgstr "Kutiq Saya, kutichinqa huk rurayta " +#: js/utils/musicutils.js:1075 +#.TRANS: https://en.wikipedia.org/wiki/Hirajoshi_scale NOTE: There are three different versions of this scale +#.TRANS: hirajoshi +msgid "hirajoshi" +msgstr "" -#: js/ActionBlocks.js:75 -#.TRANS: retorno -msgid "return" -msgstr "kuti" +#: js/utils/musicutils.js:1076 +#.TRANS: Japón +msgid "Japan" +msgstr "Japón" -#: js/ActionBlocks.js:128 -#.TRANS: El bloque Volver a URL devolverá un valor a una página web. -msgid "The Return to URL block will return a value to a webpage." -msgstr "Kutichiq Saya URLman qupunqa huk chaninta web qhawanaman" +#: js/utils/musicutils.js:1078 +#.TRANS: https://en.wikipedia.org/wiki/In_scale and https://en.wikipedia.org/wiki/Sakura_Sakura +#.TRANS: in +msgid "in" +msgstr "in" -#: js/ActionBlocks.js:145 -#.TRANS: retorno a URL -msgid "return to URL" -msgstr "Kutichimuy URLman" +#: js/utils/musicutils.js:1080 +#.TRANS: https://en.wikipedia.org/wiki/Miny%C5%8D_scale +#.TRANS: minyo +msgid "minyo" +msgstr "minyo" -#: js/ActionBlocks.js:233 -#: js/ActionBlocks.js:290 -#: js/ActionBlocks.js:501 -#: js/ActionBlocks.js:688 -#.TRANS: El bloque Calcular devuelve un valor calculado por una acción. -msgid "The Calculate block returns a value calculated by an action." +#: js/utils/musicutils.js:1082 +#.TRANS: Italian mathematician +#.TRANS: fibonacci +msgid "fibonacci" msgstr "" -#: js/ActionBlocks.js:251 -#: js/ActionBlocks.js:517 -#: js/ActionBlocks.js:707 -#.TRANS: calcular -msgid "calculate" -msgstr "Yuyakukuy" +#: js/utils/musicutils.js:1083 +#: js/utils/musicutils.js:1134 +#: js/utils/musicutils.js:1177 +#: js/utils/musicutils.js:1199 +#: js/utils/synthutils.js:134 +#: js/blocks/IntervalsBlocks.js:1124 +#: js/blocks/ToneBlocks.js:946 +#: js/blocks/VolumeBlocks.js:411 +#: js/blocks/WidgetBlocks.js:399 +#: js/blocks/WidgetBlocks.js:404 +#: js/turtleactions/VolumeActions.js:218 +#: js/widgets/modewidget.js:919 +#.TRANS: customize voice +#.TRANS: personalizado +msgid "custom" +msgstr "Runachasqa" -#: js/ActionBlocks.js:376 -#: js/ActionBlocks.js:593 -#: js/ActionBlocks.js:942 -#: js/ActionBlocks.js:1389 -#.TRANS: do is the do something or take an action. -#.TRANS: El bloque Hacer se utiliza para iniciar una acción. -msgid "The Do block is used to initiate an action." -msgstr "El bloque Hacer se utiliza para iniciar una acción." +#: js/utils/musicutils.js:1085 +#: js/utils/musicutils.js:1531 +#: js/blocks/WidgetBlocks.js:176 +#.TRANS: highpass filter +#.TRANS: highpass +msgid "highpass" +msgstr "" -#: js/ActionBlocks.js:390 -#: js/ActionBlocks.js:610 -#: js/ActionBlocks.js:959 -#: js/ActionBlocks.js:1048 -#: js/MeterBlocks.js:769 -#.TRANS: do -msgid "do1" -msgstr "do" +#: js/utils/musicutils.js:1087 +#: js/utils/musicutils.js:1532 +#.TRANS: lowpass filter +#.TRANS: +msgid "lowpass" +msgstr "" -#: js/ActionBlocks.js:390 -#: js/ActionBlocks.js:610 -#: js/ActionBlocks.js:959 -#: js/ActionBlocks.js:1048 -#: js/FlowBlocks.js:742 -#: js/FlowBlocks.js:822 -#: js/MeterBlocks.js:769 -#.TRANS: hacer -msgid "do" -msgstr "Ruray" - -#: js/ActionBlocks.js:791 -#: js/ActionBlocks.js:865 -#.TRANS: El bloque Arg contiene el valor de un argumento pasado a una acción. -msgid "The Arg block contains the value of an argument passed to an action." +#: js/utils/musicutils.js:1089 +#: js/utils/musicutils.js:1533 +#.TRANS: bandpass filter +#.TRANS: +msgid "bandpass" msgstr "" -#: js/ActionBlocks.js:806 -#: js/ActionBlocks.js:878 -#.TRANS: arg -msgid "arg" -msgstr "ruray" - -#: js/ActionBlocks.js:836 -#: js/ActionBlocks.js:900 -#: js/ActionBlocks.js:908 -#.TRANS: argumento no válido -msgid "Invalid argument" -msgstr "Mana chaninniyuq rimay" +#: js/utils/musicutils.js:1091 +#: js/utils/musicutils.js:1534 +#.TRANS: high-shelf filter +#.TRANS: +msgid "highshelf" +msgstr "" -#: js/ActionBlocks.js:944 -msgid "In the example, it is used with the One of block to choose a random phase." +#: js/utils/musicutils.js:1093 +#: js/utils/musicutils.js:1535 +#.TRANS: low-shelf filter +#.TRANS: +msgid "lowshelf" msgstr "" -#: js/ActionBlocks.js:1019 -#: js/ActionBlocks.js:1026 -#.TRANS: El bloque de escucha se usa para escuchar un evento como un clic del ratón. -msgid "The Listen block is used to listen for an event such as a mouse click." +#: js/utils/musicutils.js:1095 +#: js/utils/musicutils.js:1536 +#.TRANS: notch-shelf filter +#.TRANS: +msgid "notch" msgstr "" -#: js/ActionBlocks.js:1028 -#.TRANS: Cuando ocurre el evento, se realiza una acción. -msgid "When the event happens, an action is taken." -msgstr "Sichus kanqa ruray, chayqa kuyukachay kanqa" +#: js/utils/musicutils.js:1097 +#: js/utils/musicutils.js:1537 +#.TRANS: all-pass filter +#.TRANS: +msgid "allpass" +msgstr "" -#: js/ActionBlocks.js:1045 -#.TRANS: cuando -msgid "on" -msgstr "on qhantayaña" +#: js/utils/musicutils.js:1099 +#: js/utils/musicutils.js:1538 +#.TRANS: peaking filter +#.TRANS: +msgid "peaking" +msgstr "" -#: js/ActionBlocks.js:1048 -#: js/ActionBlocks.js:1049 -#: js/ActionBlocks.js:1153 -#.TRANS: señal -msgid "event" -msgstr "riqsichi"" +#: js/utils/musicutils.js:1100 +#: js/utils/musicutils.js:1546 +#: js/utils/synthutils.js:126 +#: js/blocks/PitchBlocks.js:85 +#.TRANS: sine wave +#.TRANS: sine +msgid "sine" +msgstr "seno chimpu" -#: js/ActionBlocks.js:1133 -#.TRANS: El bloque Emitir se utiliza para desencadenar un evento. -msgid "The Broadcast block is used to trigger an event." -msgstr "El bloque Emitir se utiliza para desencadenar un evento." +#: js/utils/musicutils.js:1101 +#: js/utils/musicutils.js:1547 +#: js/utils/synthutils.js:128 +#: js/blocks/PitchBlocks.js:39 +#.TRANS: square wave +#.TRANS: cuadrado +msgid "square" +msgstr "tawa k’uchu" -#: js/ActionBlocks.js:1151 -#.TRANS: emitir -msgid "broadcast" -msgstr "lluqsichiy" +#: js/utils/musicutils.js:1102 +#: js/utils/musicutils.js:1548 +#: js/utils/synthutils.js:132 +#: js/blocks/PitchBlocks.js:62 +#: js/blocks/ToneBlocks.js:39 +#.TRANS: triangle wave +#.TRANS: triángulo +msgid "triangle" +msgstr "kimsa k’uchu" -#: js/ActionBlocks.js:1208 -#.TRANS: Cada bloque de inicio es una voz separada. -msgid "Each Start block is a separate voice." -msgstr "Cada bloque de inicio es una voz separada." +#: js/utils/musicutils.js:1103 +#: js/utils/musicutils.js:1549 +#: js/utils/synthutils.js:130 +#: js/blocks/PitchBlocks.js:108 +#.TRANS: sawtooth wave +#.TRANS: diente de sierra +msgid "sawtooth" +msgstr "khuchuña laka" -#: js/ActionBlocks.js:1304 -#.TRANS: A menudo se utiliza para almacenar una frase de música que se repite. -msgid "It is often used for storing a phrase of music that is repeated." -msgstr "" +#: js/utils/musicutils.js:1105 +#: js/utils/musicutils.js:1312 +#: js/blocks/PitchBlocks.js:931 +#: js/blocks/PitchBlocks.js:937 +#: js/turtleactions/PitchActions.js:469 +#.TRANS: even numbers +#.TRANS: invert based on even or odd number or musical scale +#.TRANS: par +msgid "even" +msgstr "masa" -#: js/ActionBlocks.js:1495 -#.TRANS: definir el temperamento -msgid "define temperament" -msgstr "akllay" +#: js/utils/musicutils.js:1107 +#: js/utils/musicutils.js:1313 +#: js/blocks/PitchBlocks.js:937 +#: js/turtleactions/PitchActions.js:471 +#.TRANS: odd numbers +#.TRANS: impar +msgid "odd" +msgstr "sapallan" -#: js/EnsembleBlocks.js:66 -#.TRANS: valor en la pila de ratón -msgid "mouse index heap" -msgstr "Huk’ucha /qillqa purichina" +#: js/utils/musicutils.js:1108 +#: js/utils/musicutils.js:1314 +#: js/blocks/PitchBlocks.js:937 +#: js/turtleactions/PitchActions.js:473 +#.TRANS: escalar +msgid "scalar" +msgstr "siqay" -#: js/EnsembleBlocks.js:68 -#.TRANS: El bloque de valor en la pila de ratón devuelve un valor en el almacenamiento dinámico en una ubicación específica para un mouse específico. -msgid "The Mouse index heap block returns a value in the heap at a specified location for a specified mouse." +#: js/utils/musicutils.js:1109 +#: js/utils/synthutils.js:72 +#: js/blocks/VolumeBlocks.js:47 +#.TRANS: musical instrument +#.TRANS: piano +msgid "piano" msgstr "" -#: js/EnsembleBlocks.js:77 -#: js/EnsembleBlocks.js:1080 -#.TRANS: renombrar ratón -msgid "mouse name" -msgstr "Sutichay huk’uchata" - -#: js/EnsembleBlocks.js:77 -#: js/EnsembleBlocks.js:92 -#: js/HeapBlocks.js:544 -#.TRANS: value1 is a numeric value (JAPANESE ONLY) -#.TRANS: posición en la pila -msgid "index" -msgstr "wakichatanaka" +#: js/utils/musicutils.js:1110 +#: js/utils/synthutils.js:74 +#.TRANS: musical instrument +#.TRANS: violín +msgid "violin" +msgstr "violin" -#: js/EnsembleBlocks.js:80 -#.TRANS: valor en la pila de tortuga -msgid "turtle index heap" -msgstr "" +#: js/utils/musicutils.js:1111 +#: js/utils/synthutils.js:76 +#.TRANS: viola musical instrument +#.TRANS: viola +msgid "viola" +msgstr "viola" -#: js/EnsembleBlocks.js:82 -#.TRANS: El bloque de valor en la pila de tortuga devuelve un valor en el almacenamiento dinámico en una ubicación específica para un mouse específico. -msgid "The Turtle index heap block returns a value in the heap at a specified location for a specified turtle." +#: js/utils/musicutils.js:1112 +#: js/utils/synthutils.js:114 +#.TRANS: xylophone musical instrument +#.TRANS: xilófono +msgid "xylophone" msgstr "" -#: js/EnsembleBlocks.js:90 -#: js/EnsembleBlocks.js:167 -#: js/EnsembleBlocks.js:230 -#: js/EnsembleBlocks.js:316 -#: js/EnsembleBlocks.js:362 -#: js/EnsembleBlocks.js:400 -#: js/EnsembleBlocks.js:454 -#: js/EnsembleBlocks.js:504 -#: js/EnsembleBlocks.js:550 -#: js/EnsembleBlocks.js:597 -#: js/EnsembleBlocks.js:651 -#: js/EnsembleBlocks.js:763 -#: js/EnsembleBlocks.js:854 -#: js/EnsembleBlocks.js:915 -#: js/EnsembleBlocks.js:955 -#: js/EnsembleBlocks.js:1219 -#: js/EnsembleBlocks.js:1293 -#.TRANS: Yertle is the name of a turtle. -#.TRANS: -msgid "Yertle" +#: js/utils/musicutils.js:1113 +#: js/utils/synthutils.js:136 +#.TRANS: vibraphone musical instrument +#.TRANS: vibráfono +msgid "vibraphone" msgstr "" -#: js/EnsembleBlocks.js:92 -#: js/EnsembleBlocks.js:1089 -#.TRANS: renombrar tortuga -msgid "turtle name" -msgstr "Tortuga wakichatampi mayachasiña" - -#: js/EnsembleBlocks.js:122 -#: js/EnsembleBlocks.js:1197 -#: js/HeapBlocks.js:474 -#: js/HeapBlocks.js:572 -#.TRANS: El índice debe ser > 0. -msgid "Index must be > 0." -msgstr "Wakichata > 0 chimputa jilañapawa" - -#: js/EnsembleBlocks.js:127 -#: js/HeapBlocks.js:479 -#: js/HeapBlocks.js:577 -#.TRANS: El tamaño máximo de pilas es 1000. -msgid "Maximum heap size is 1000." -msgstr "El tamaño máximo de pilas es 1000." - -#: js/EnsembleBlocks.js:145 -#.TRANS: parar ratón -msgid "stop mouse" -msgstr "jithiyaña sayt'ayaña" +#: js/utils/musicutils.js:1114 +#: js/utils/synthutils.js:78 +#.TRANS: musical instrument +#.TRANS: violonchelo +msgid "cello" +msgstr "violonchelo" -#: js/EnsembleBlocks.js:147 -#.TRANS: El bloque parar ratón parar el ratón especificado. -msgid "The Stop mouse block stops the specified mouse." -msgstr "El bloque parar ratón parar el ratón especificado." +#: js/utils/musicutils.js:1116 +#: js/utils/synthutils.js:82 +#.TRANS: viola musical instrument +#.TRANS: contrabajo +msgid "double bass" +msgstr "Viola takina waqachina" -#: js/EnsembleBlocks.js:158 -#.TRANS: detener tortuga -msgid "stop turtle" -msgstr "tortuga wakichata sayt'ayaña" +#: js/utils/musicutils.js:1117 +#: js/utils/synthutils.js:84 +#: js/widgets/rhythmruler.js:2511 +#.TRANS: musical instrument +#.TRANS: guitarra +msgid "guitar" +msgstr "guitarra" -#: js/EnsembleBlocks.js:160 -#.TRANS: El bloque parar tortuga parar el ratón especificado. -msgid "The Stop turtle block stops the specified turtle." -msgstr "" +#: js/utils/musicutils.js:1118 +#: js/utils/synthutils.js:86 +#.TRANS: musical instrument +#.TRANS: guitarra acustica +msgid "acoustic guitar" +msgstr "aswan kunkayuq guitarra" -#: js/EnsembleBlocks.js:184 -#: js/EnsembleBlocks.js:247 -#: js/EnsembleBlocks.js:413 -#: js/EnsembleBlocks.js:468 -#: js/EnsembleBlocks.js:706 -#: js/EnsembleBlocks.js:808 -#: js/EnsembleBlocks.js:870 -#: js/EnsembleBlocks.js:1190 -#: js/EnsembleBlocks.js:1253 -#.TRANS: No se puede encontrar ratón -msgid "Cannot find mouse" -msgstr "Manan huk’uchata tarikunchu" +#: js/utils/musicutils.js:1119 +#: js/utils/synthutils.js:88 +#.TRANS: musical instrument +#.TRANS: flauta +msgid "flute" +msgstr "flauta" -#: js/EnsembleBlocks.js:186 -#: js/EnsembleBlocks.js:249 -#: js/EnsembleBlocks.js:415 -#: js/EnsembleBlocks.js:470 -#: js/EnsembleBlocks.js:708 -#: js/EnsembleBlocks.js:810 -#: js/EnsembleBlocks.js:872 -#: js/EnsembleBlocks.js:1192 -#: js/EnsembleBlocks.js:1255 -#.TRANS: No se puede encontrar tortuga. -msgid "Cannot find turtle" -msgstr "No se puede encontrar tortuga." +#: js/utils/musicutils.js:1120 +#: js/utils/synthutils.js:90 +#.TRANS: musical instrument +#.TRANS: clarinete +msgid "clarinet" +msgstr "clarinete" -#: js/EnsembleBlocks.js:206 -#.TRANS: comenzar ratón -msgid "start mouse" -msgstr "jithuyaña qalltaña" +#: js/utils/musicutils.js:1121 +#: js/utils/synthutils.js:92 +#.TRANS: musical instrument +#.TRANS: saxofón +msgid "saxophone" +msgstr "saxofón" -#: js/EnsembleBlocks.js:209 -#.TRANS: El bloque comenzar ratón inicia el ratón especificado. -msgid "The Start mouse block starts the specified mouse." -msgstr "El bloque comenzar ratón inicia el ratón especificado." +#: js/utils/musicutils.js:1122 +#: js/utils/synthutils.js:94 +#.TRANS: musical instrument +#.TRANS: tuba +msgid "tuba" +msgstr "tuba" -#: js/EnsembleBlocks.js:220 -#.TRANS: iniciar tortuga -msgid "start turtle" -msgstr "tortuga wakichata qalltaña" +#: js/utils/musicutils.js:1123 +#: js/utils/synthutils.js:96 +#.TRANS: musical instrument +#.TRANS: trompeta +msgid "trumpet" +msgstr "trompeta" -#: js/EnsembleBlocks.js:223 -#.TRANS: El bloque comenzar tortuga inicia el ratón especificado. -msgid "The Start turtle block starts the specified turtle." +#: js/utils/musicutils.js:1124 +#: js/utils/synthutils.js:98 +#.TRANS: musical instrument +#.TRANS: oboe +msgid "oboe" msgstr "" -#: js/EnsembleBlocks.js:256 -#.TRANS: Ratón ya ha comenzado. -msgid "Mouse is already running." -msgstr "Huk’ucha qallarinña" - -#: js/EnsembleBlocks.js:258 -#.TRANS: Tortuga ya ha comenzado. -msgid "Turtle is already running." -msgstr "Tortuga ya ha comenzado." +#: js/utils/musicutils.js:1125 +#: js/utils/synthutils.js:100 +#.TRANS: musical instrument +#.TRANS: trombón +msgid "trombone" +msgstr "trombón" -#: js/EnsembleBlocks.js:282 -#.TRANS: No se puede encontrar el bloque de inicar. -msgid "Cannot find start block" -msgstr "Manan qallariq saya tarikunchu" +#: js/utils/musicutils.js:1126 +#: js/utils/synthutils.js:116 +#.TRANS: polytone synthesizer +#.TRANS: sintetizador electronico +msgid "electronic synth" +msgstr "sintetizador electronico" -#: js/EnsembleBlocks.js:292 -#.TRANS: pen color for this mouse -#.TRANS: color de ratón -msgid "mouse color" -msgstr "Llimp’iyniyuq huk’ucha" +#: js/utils/musicutils.js:1127 +#: js/utils/synthutils.js:118 +#.TRANS: simple monotone synthesizer +#.TRANS: simple-1 +msgid "simple 1" +msgstr "qasi-1" -#: js/EnsembleBlocks.js:294 -#.TRANS: El bloque de color del ratón devuelve el color del lápiz del ratón especificado. -msgid "The Mouse color block returns the pen color of the specified mouse." +#: js/utils/musicutils.js:1128 +#.TRANS: simple 2 +msgid "simple 2" msgstr "" -#: js/EnsembleBlocks.js:306 -#.TRANS: pen color for this turtle -#.TRANS: color de tortuga -msgid "turtle color" +#: js/utils/musicutils.js:1129 +#.TRANS: simple 3 +msgid "simple 3" msgstr "" -#: js/EnsembleBlocks.js:308 -#.TRANS: El bloque de color de la tortuga devuelve el color del lápiz de la tortuga especificado. -msgid "The Turtle color block returns the pen color of the specified turtle." +#: js/utils/musicutils.js:1130 +#.TRANS: simple 4 +msgid "simple 4" msgstr "" -#: js/EnsembleBlocks.js:338 -#.TRANS: heading (compass direction) for this mouse -#.TRANS: rumbo de ratón -msgid "mouse heading" -msgstr "jithiyaña wakichata suti" +#: js/utils/musicutils.js:1131 +#: js/utils/synthutils.js:58 +#: js/blocks/DrumBlocks.js:191 +#.TRANS: white noise synthesizer +#.TRANS: ruido blanco +msgid "white noise" +msgstr "Yuraq rakhaqaqaq" -#: js/EnsembleBlocks.js:340 -#.TRANS: El bloque de rumbo del ratón devuelve el rumbo del lápiz del ratón especificado. -msgid "The Mouse heading block returns the heading of the specified mouse." -msgstr "" +#: js/utils/musicutils.js:1132 +#: js/utils/synthutils.js:60 +#.TRANS: brown noise synthesizer +#.TRANS: ruido marrón +msgid "brown noise" +msgstr "ch’umpi chanraray" + +#: js/utils/musicutils.js:1133 +#: js/utils/synthutils.js:62 +#.TRANS: pink noise synthesizer +#.TRANS: ruido rosa +msgid "pink noise" +msgstr "rosa chanraray" + +#: js/utils/musicutils.js:1135 +#: js/utils/synthutils.js:148 +#: js/widgets/rhythmruler.js:2057 +#: js/widgets/rhythmruler.js:2319 +#.TRANS: musical instrument +#.TRANS: tambor militar pequeño +msgid "snare drum" +msgstr "wankar" + +#: js/utils/musicutils.js:1136 +#: js/utils/synthutils.js:150 +#.TRANS: musical instrument +#.TRANS: tambor de patada +msgid "kick drum" +msgstr "Hayt’ana wankar" + +#: js/utils/musicutils.js:1137 +#: js/utils/synthutils.js:152 +#.TRANS: musical instrument +#.TRANS: tom tom +msgid "tom tom" +msgstr "tum tum" + +#: js/utils/musicutils.js:1138 +#: js/utils/synthutils.js:154 +#.TRANS: musical instrument +#.TRANS: piso tom +msgid "floor tom" +msgstr "piso tom" + +#: js/utils/musicutils.js:1139 +#: js/utils/synthutils.js:156 +#.TRANS: musical instrument +#.TRANS: tambor de bajo +msgid "bass drum" +msgstr "" + +#: js/utils/musicutils.js:1140 +#: js/utils/synthutils.js:158 +#.TRANS: a drum made from an inverted cup +#.TRANS: taza de tambor +msgid "cup drum" +msgstr "qiru wankar" + +#: js/utils/musicutils.js:1141 +#: js/utils/synthutils.js:160 +#.TRANS: musical instrument +#.TRANS: darbuka +msgid "darbuka drum" +msgstr "wankar darbuka" + +#: js/utils/musicutils.js:1142 +#: js/utils/synthutils.js:164 +#.TRANS: musical instrument +#.TRANS: +msgid "hi hat" +msgstr "" + +#: js/utils/musicutils.js:1143 +#: js/utils/synthutils.js:166 +#.TRANS: a small metal bell +#.TRANS: campana de paseo +msgid "ride bell" +msgstr "puriq kampana/kalanka" + +#: js/utils/musicutils.js:1144 +#: js/utils/synthutils.js:168 +#.TRANS: musical instrument +#.TRANS: campana de vaca +msgid "cow bell" +msgstr "waka kampana/kalanka" + +#: js/utils/musicutils.js:1145 +#.TRANS: tambor japonés +msgid "japanese drum" +msgstr "tambor japonés" + +#: js/utils/musicutils.js:1146 +#: js/utils/synthutils.js:174 +#.TRANS: musical instrument +#.TRANS: campana japonesa +msgid "japanese bell" +msgstr "campana japonesa" + +#: js/utils/musicutils.js:1147 +#: js/utils/synthutils.js:170 +#.TRANS: musical instrument +#.TRANS: campana triangular +msgid "triangle bell" +msgstr "kimsa k’uchu kampana/kalanka" + +#: js/utils/musicutils.js:1148 +#: js/utils/synthutils.js:172 +#.TRANS: musical instrument +#.TRANS: castañuelas +msgid "finger cymbals" +msgstr "kastañuylas" + +#: js/utils/musicutils.js:1149 +#: js/utils/synthutils.js:176 +#.TRANS: a musically tuned set of bells +#.TRANS: campaneo +msgid "chime" +msgstr "thaya suyu" + +#: js/utils/musicutils.js:1150 +#: js/utils/synthutils.js:178 +#.TRANS: a musical instrument +#.TRANS: gong +msgid "gong" +msgstr "" + +#: js/utils/musicutils.js:1151 +#: js/utils/synthutils.js:180 +#.TRANS: sound effect +#.TRANS: estruendo +msgid "clang" +msgstr "q'iju" + +#: js/utils/musicutils.js:1152 +#: js/utils/synthutils.js:182 +#.TRANS: sound effect +#.TRANS: choque +msgid "crash" +msgstr "q'axta" + +#: js/utils/musicutils.js:1153 +#: js/utils/synthutils.js:184 +#.TRANS: sound effect +#.TRANS: botella +msgid "bottle" +msgstr "qhispillu wutilla" + +#: js/utils/musicutils.js:1154 +#: js/utils/synthutils.js:186 +#.TRANS: sound effect +#.TRANS: palmada +msgid "clap" +msgstr "t'axllirt'äwi" + +#: js/utils/musicutils.js:1155 +#: js/utils/synthutils.js:188 +#.TRANS: sound effect +#.TRANS: bofetada +msgid "slap" +msgstr "t'axlli" + +#: js/utils/musicutils.js:1156 +#: js/utils/synthutils.js:190 +#.TRANS: sound effect +#.TRANS: salpicadura +msgid "splash" +msgstr "ch'itiqiri" + +#: js/utils/musicutils.js:1157 +#: js/utils/synthutils.js:192 +#.TRANS: sound effect +#.TRANS: burbujas +msgid "bubbles" +msgstr "jupuqunaka" + +#: js/utils/musicutils.js:1158 +#: js/utils/synthutils.js:194 +#.TRANS: sound effect +#.TRANS: gota de agua +msgid "raindrop" +msgstr "gota de agua" + +#: js/utils/musicutils.js:1159 +#: js/utils/synthutils.js:196 +#.TRANS: animal sound effect +#.TRANS: gato +msgid "cat" +msgstr "phisi" + +#: js/utils/musicutils.js:1160 +#: js/utils/synthutils.js:198 +#.TRANS: animal sound effect +#.TRANS: grillo +msgid "cricket" +msgstr "jirillu" + +#: js/utils/musicutils.js:1161 +#: js/utils/synthutils.js:200 +#.TRANS: animal sound effect +#.TRANS: perro +msgid "dog" +msgstr "anuqara" + +#: js/utils/musicutils.js:1163 +#: js/utils/synthutils.js:102 +#.TRANS: musical instrument +#.TRANS: banjo +msgid "banjo" +msgstr "" + +#: js/utils/musicutils.js:1164 +#: js/utils/synthutils.js:104 +#.TRANS: musical instrument +#.TRANS: koto +msgid "koto" +msgstr "" + +#: js/utils/musicutils.js:1165 +#: js/utils/synthutils.js:106 +#.TRANS: musical instrument +#.TRANS: dulcimer +msgid "dulcimer" +msgstr "" + +#: js/utils/musicutils.js:1166 +#: js/utils/synthutils.js:108 +#.TRANS: musical instrument +#.TRANS: guitarra electrica +msgid "electric guitar" +msgstr "tawtinku phinchikilla" + +#: js/utils/musicutils.js:1167 +#: js/utils/synthutils.js:110 +#.TRANS: musical instrument +#.TRANS: fagot +msgid "bassoon" +msgstr "" + +#: js/utils/musicutils.js:1168 +#: js/utils/synthutils.js:112 +#.TRANS: musical instrument +#.TRANS: celeste +msgid "celeste" +msgstr "yuraq anqhas" + +#: js/utils/musicutils.js:1170 +#: js/widgets/temperament.js:787 +#.TRANS: musical temperament +#.TRANS: igual +msgid "equal" +msgstr "igual" + +#: js/utils/musicutils.js:1172 +#.TRANS: musical temperament +#.TRANS: Pitagórico +msgid "Pythagorean" +msgstr "" + +#: js/utils/musicutils.js:1174 +#.TRANS: musical temperament +#.TRANS: solo entonación +msgid "just intonation" +msgstr "solo entonación" + +#: js/utils/musicutils.js:1176 +#.TRANS: musical temperament +#.TRANS: +msgid "meantone" +msgstr "" + +#: js/utils/musicutils.js:1193 +#.TRANS: 7mo mayor +msgid "major 7th" +msgstr "" + +#: js/utils/musicutils.js:1194 +#.TRANS: 7mo menor +msgid "minor 7th" +msgstr "" + +#: js/utils/musicutils.js:1195 +#.TRANS: 7ma dominante +msgid "dominant 7th" +msgstr "" + +#: js/utils/musicutils.js:1196 +#.TRANS: 7mo menor-mayor +msgid "minor-major 7th" +msgstr "" + +#: js/utils/musicutils.js:1197 +#.TRANS: 7º completamente disminuido +msgid "fully-diminished 7th" +msgstr "" + +#: js/utils/musicutils.js:1198 +#.TRANS: 7º medio disminuido +msgid "half-diminished 7th" +msgstr "" + +#: js/utils/musicutils.js:1557 +#: js/utils/musicutils.js:1569 +#.TRANS: Igual (12EDO) +msgid "Equal (12EDO)" +msgstr "" + +#: js/utils/musicutils.js:1558 +#: js/utils/musicutils.js:1570 +#.TRANS: 5-Límite de entonación justa +msgid "5-limit Just Intonation" +msgstr "" + +#: js/utils/musicutils.js:1559 +#: js/utils/musicutils.js:1571 +#.TRANS: Pythagorean (3-limite EJ) +msgid "Pythagorean (3-limit JI)" +msgstr "" + +#: js/utils/musicutils.js:1560 +#: js/utils/musicutils.js:1561 +#: js/utils/musicutils.js:1572 +#: js/utils/musicutils.js:1573 +#.TRANS: +msgid "Meantone" +msgstr "" + +#: js/utils/musicutils.js:1574 +#.TRANS: Personalizado +msgid "Custom" +msgstr "" + +#: js/utils/musicutils.js:5387 +#: js/utils/musicutils.js:5430 +#.TRANS: actuales +msgid "current" +msgstr "actuales" + +#: js/utils/musicutils.js:5390 +#: js/utils/musicutils.js:5421 +#.TRANS: próximo +msgid "next" +msgstr "próximo" + +#: js/utils/musicutils.js:5393 +#: js/utils/musicutils.js:5426 +#.TRANS: anterior +msgid "previous" +msgstr "anterior" + +#: js/utils/synthutils.js:120 +#.TRANS: simple monotone synthesizer +#.TRANS: simple-2 +msgid "simple-2" +msgstr "qasi-2" + +#: js/utils/synthutils.js:122 +#.TRANS: simple monotone synthesizer +#.TRANS: simple-3 +msgid "simple-3" +msgstr "qasi-3" + +#: js/utils/synthutils.js:124 +#.TRANS: simple monotone synthesizer +#.TRANS: simple-4 +msgid "simple-4" +msgstr "qasi-4" + +#: js/utils/synthutils.js:162 +#.TRANS: musical instrument +#.TRANS: taiko +msgid "taiko" +msgstr "chakiyuq wankar" + +#: js/blocks/ActionBlocks.js:58 +#.TRANS: El bloque Volver (Return) devolverá un valor de una acción. +msgid "The Return block will return a value from an action." +msgstr "Kutiq Saya, kutichinqa huk rurayta " + +#: js/blocks/ActionBlocks.js:75 +#.TRANS: retorno +msgid "return" +msgstr "kuti" + +#: js/blocks/ActionBlocks.js:128 +#.TRANS: El bloque Volver a URL devolverá un valor a una página web. +msgid "The Return to URL block will return a value to a webpage." +msgstr "Kutichiq Saya URLman qupunqa huk chaninta web qhawanaman" + +#: js/blocks/ActionBlocks.js:145 +#.TRANS: retorno a URL +msgid "return to URL" +msgstr "Kutichimuy URLman" + +#: js/blocks/ActionBlocks.js:233 +#: js/blocks/ActionBlocks.js:290 +#: js/blocks/ActionBlocks.js:501 +#: js/blocks/ActionBlocks.js:688 +#.TRANS: El bloque Calcular devuelve un valor calculado por una acción. +msgid "The Calculate block returns a value calculated by an action." +msgstr "" + +#: js/blocks/ActionBlocks.js:251 +#: js/blocks/ActionBlocks.js:517 +#: js/blocks/ActionBlocks.js:707 +#.TRANS: calcular +msgid "calculate" +msgstr "Yuyakukuy" + +#: js/blocks/ActionBlocks.js:376 +#: js/blocks/ActionBlocks.js:593 +#: js/blocks/ActionBlocks.js:942 +#: js/blocks/ActionBlocks.js:1389 +#.TRANS: do is the do something or take an action. +#.TRANS: El bloque Hacer se utiliza para iniciar una acción. +msgid "The Do block is used to initiate an action." +msgstr "El bloque Hacer se utiliza para iniciar una acción." + +#: js/blocks/ActionBlocks.js:390 +#: js/blocks/ActionBlocks.js:610 +#: js/blocks/ActionBlocks.js:959 +#: js/blocks/ActionBlocks.js:1048 +#: js/blocks/MeterBlocks.js:769 +#.TRANS: do +msgid "do1" +msgstr "do" + +#: js/blocks/ActionBlocks.js:390 +#: js/blocks/ActionBlocks.js:610 +#: js/blocks/ActionBlocks.js:959 +#: js/blocks/ActionBlocks.js:1048 +#: js/blocks/FlowBlocks.js:742 +#: js/blocks/FlowBlocks.js:822 +#: js/blocks/MeterBlocks.js:769 +#.TRANS: hacer +msgid "do" +msgstr "Ruray" + +#: js/blocks/ActionBlocks.js:791 +#: js/blocks/ActionBlocks.js:865 +#.TRANS: El bloque Arg contiene el valor de un argumento pasado a una acción. +msgid "The Arg block contains the value of an argument passed to an action." +msgstr "" + +#: js/blocks/ActionBlocks.js:806 +#: js/blocks/ActionBlocks.js:878 +#.TRANS: arg +msgid "arg" +msgstr "ruray" + +#: js/blocks/ActionBlocks.js:836 +#: js/blocks/ActionBlocks.js:900 +#: js/blocks/ActionBlocks.js:908 +#.TRANS: argumento no válido +msgid "Invalid argument" +msgstr "Mana chaninniyuq rimay" + +#: js/blocks/ActionBlocks.js:944 +#.TRANS: En el ejemplo, se usa con el bloque Uno para elegir una fase aleatoria. +msgid "In the example, it is used with the One of block to choose a random phase." +msgstr "" + +#: js/blocks/ActionBlocks.js:1019 +#: js/blocks/ActionBlocks.js:1026 +#.TRANS: El bloque de escucha se usa para escuchar un evento como un clic del ratón. +msgid "The Listen block is used to listen for an event such as a mouse click." +msgstr "" + +#: js/blocks/ActionBlocks.js:1028 +#.TRANS: Cuando ocurre el evento, se realiza una acción. +msgid "When the event happens, an action is taken." +msgstr "Sichus kanqa ruray, chayqa kuyukachay kanqa" + +#: js/blocks/ActionBlocks.js:1045 +#.TRANS: cuando +msgid "on" +msgstr "on qhantayaña" + +#: js/blocks/ActionBlocks.js:1048 +#: js/blocks/ActionBlocks.js:1049 +#: js/blocks/ActionBlocks.js:1153 +#.TRANS: señal +msgid "event" +msgstr "riqsichi"" + +#: js/blocks/ActionBlocks.js:1133 +#.TRANS: El bloque Emitir se utiliza para desencadenar un evento. +msgid "The Broadcast block is used to trigger an event." +msgstr "El bloque Emitir se utiliza para desencadenar un evento." + +#: js/blocks/ActionBlocks.js:1151 +#.TRANS: emitir +msgid "broadcast" +msgstr "lluqsichiy" + +#: js/blocks/ActionBlocks.js:1208 +#.TRANS: Cada bloque de inicio es una voz separada. +msgid "Each Start block is a separate voice." +msgstr "Cada bloque de inicio es una voz separada." + +#: js/blocks/ActionBlocks.js:1304 +#.TRANS: A menudo se utiliza para almacenar una frase de música que se repite. +msgid "It is often used for storing a phrase of music that is repeated." +msgstr "" + +#: js/blocks/ActionBlocks.js:1495 +#.TRANS: definir el temperamento +msgid "define temperament" +msgstr "akllay" + +#: js/blocks/BooleanBlocks.js:44 +#.TRANS: El bloque No es el operador lógico no. +msgid "The Not block is the logical not operator." +msgstr "El bloque No es el operador lógico no." + +#: js/blocks/BooleanBlocks.js:62 +#.TRANS: no +msgid "not" +msgstr "mana" + +#: js/blocks/BooleanBlocks.js:134 +#.TRANS: El bloque Y es el lógico y el operador. +msgid "The And block is the logical and operator." +msgstr "El bloque Y es el lógico y el operador." + +#: js/blocks/BooleanBlocks.js:152 +#.TRANS: y +msgid "and" +msgstr "hinallataq" + +#: js/blocks/BooleanBlocks.js:218 +#.TRANS: El bloque O es el lógico o el operador. +msgid "The Or block is the logical or operator." +msgstr "El bloque O es el lógico o el operador." + +#: js/blocks/BooleanBlocks.js:236 +#.TRANS: o +msgid "or" +msgstr "utaq" + +#: js/blocks/BooleanBlocks.js:302 +#.TRANS: El bloque XOR es el lógico XOR el operador. +msgid "The XOR block is the logical XOR operator." +msgstr "El bloque XOR es el lógico XOR el operador." + +#: js/blocks/BooleanBlocks.js:320 +#.TRANS: xor +msgid "xor" +msgstr "" + +#: js/blocks/BooleanBlocks.js:808 +#.TRANS: El bloque Igual devuelve verdadero si los dos números son iguales. +msgid "The Equal block returns True if the two numbers are equal." +msgstr "El bloque Igual devuelve verdadero si los dos números son iguales." + +#: js/blocks/BooleanBlocks.js:909 +#.TRANS: El bloque No igual a devuelve Verdadero si los dos números no son iguales entre sí. +msgid "The Not-equal-to block returns True if the two numbers are not equal to each other." +msgstr "" + +#: js/blocks/BooleanBlocks.js:1008 +#.TRANS: El bloque Booleano se utiliza para especificar verdadero o falso. +msgid "The Boolean block is used to specify true or false." +msgstr "El bloque Booleano se utiliza para especificar verdadero o falso." + +#: js/blocks/BoxesBlocks.js:53 +#: js/blocks/BoxesBlocks.js:59 +#.TRANS: El bloque Agregar a se usa para agregar al valor almacenado en un cuadro. +msgid "The Add-to block is used to add to the value stored in a box." +msgstr "" + +#: js/blocks/BoxesBlocks.js:61 +#.TRANS: También se puede utilizar con otros bloques, como el color, el tamaño de la pluma. +msgid "It can also be used with other blocks such as Color and Pen size." +msgstr "" + +#: js/blocks/BoxesBlocks.js:73 +#.TRANS: sumar +msgid "add" +msgstr "yapay" + +#: js/blocks/BoxesBlocks.js:75 +#: js/widgets/temperament.js:857 +#.TRANS: para +msgid "to" +msgstr "sayay" + +#: js/blocks/BoxesBlocks.js:75 +#: js/blocks/BoxesBlocks.js:595 +#: js/blocks/HeapBlocks.js:544 +#.TRANS: valor +msgid "value1" +msgstr "chanin" + +#: js/blocks/BoxesBlocks.js:118 +#.TRANS: Bloque no soporta incremento. +msgid "Block does not support incrementing." +msgstr "" + +#: js/blocks/BoxesBlocks.js:152 +#.TRANS: El bloque Sumar-1-a agrega uno al valor almacenado en un cuadro. +msgid "The Add-1-to block adds one to the value stored in a box." +msgstr "Yapay-1 t’aqa hukta tawa k’uchu wayqaychasqaman yapan" + +#: js/blocks/BoxesBlocks.js:163 +#.TRANS: sumar 1 a +msgid "add 1 to" +msgstr "1 yapay" "hukta yapay" + +#: js/blocks/BoxesBlocks.js:211 +#.TRANS: El bloque restar-1-de resta uno al valor almacenado en un cuadro. +msgid "The Subtract-1-from block subtracts one from the value stored in a box." +msgstr "El bloque restar-1-de resta uno al valor almacenado en un cuadro." + +#: js/blocks/BoxesBlocks.js:222 +#.TRANS: restar 1 de +msgid "subtract 1 from" +msgstr "1 qichuy" "hukta qichuy" + +#: js/blocks/BoxesBlocks.js:270 +#: js/blocks/BoxesBlocks.js:387 +#.TRANS: El bloque Caja devuelve el valor almacenado en una caja . +msgid "The Box block returns the value stored in a box." +msgstr "El bloque Caja devuelve el valor almacenado en una caja ." + +#: js/blocks/BoxesBlocks.js:500 +#: js/blocks/BoxesBlocks.js:576 +#.TRANS: El bloque Guardar en caja se utiliza para almacenar un valor en una caja. +msgid "The Store in block will store a value in a box." +msgstr "El bloque Guardar en caja se utiliza para almacenar un valor en una caja." + +#: js/blocks/BoxesBlocks.js:595 +#: js/blocks/EnsembleBlocks.js:391 +#: js/blocks/EnsembleBlocks.js:402 +#.TRANS: nombre +msgid "name1" +msgstr "Suti" + +#: js/blocks/BoxesBlocks.js:652 +#.TRANS: El bloque Caja 2 devuelve el valor almacenado en caja 2. +msgid "The Box2 block returns the value stored in Box2." +msgstr "El bloque Caja 2 devuelve el valor almacenado en caja 2." + +#: js/blocks/BoxesBlocks.js:703 +#.TRANS: El bloque Guardar en caja2 se utiliza para almacenar un valor en caja2. +msgid "The Store in Box2 block is used to store a value in Box2." +msgstr "" + +#: js/blocks/BoxesBlocks.js:715 +#.TRANS: guardar en caja 2 +msgid "store in box2" +msgstr "guardar en caja 2" + +#: js/blocks/BoxesBlocks.js:761 +#.TRANS: El bloque Caja 1 devuelve el valor almacenado en caja 1. +msgid "The Box1 block returns the value stored in Box1." +msgstr "El bloque Caja 1 devuelve el valor almacenado en caja 1." + +#: js/blocks/BoxesBlocks.js:812 +#.TRANS: El bloque Guardar en caja1 se utiliza para almacenar un valor en caja1. +msgid "The Store in Box1 block is used to store a value in Box1." +msgstr "" + +#: js/blocks/BoxesBlocks.js:826 +#.TRANS: guardar en caja 1 +msgid "store in box1" +msgstr "guardar en caja 1" + +#: js/blocks/DictBlocks.js:77 +#.TRANS: mostrar diccionario +msgid "show dictionary" +msgstr "" + +#: js/blocks/DictBlocks.js:80 +#: js/blocks/DictBlocks.js:145 +#: js/blocks/DictBlocks.js:216 +#: js/blocks/DictBlocks.js:290 +#: js/blocks/ProgramBlocks.js:396 +#: js/blocks/ProgramBlocks.js:501 +#: js/blocks/ProgramBlocks.js:664 +#.TRANS: mi diccionario +msgid "My Dictionary" +msgstr "" + +#: js/blocks/DictBlocks.js:129 +#.TRANS: El bloque Diccionario devuelve un diccionario. +msgid "The Dictionary block returns a dictionary." +msgstr "" + +#: js/blocks/DictBlocks.js:197 +#: js/blocks/DictBlocks.js:339 +#.TRANS: El bloque obtener-valor devuelve un valor en el diccionario para una clave especificada. +msgid "The Get-dict block returns a value in the dictionary for a specified key." +msgstr "" -#: js/EnsembleBlocks.js:352 +#: js/blocks/DictBlocks.js:212 +#: js/blocks/DictBlocks.js:354 +#.TRANS: retrieve a value from the dictionary with a given key +#.TRANS: obtener valor +msgid "get value" +msgstr "" + +#: js/blocks/DictBlocks.js:215 +#: js/blocks/DictBlocks.js:216 +#: js/blocks/DictBlocks.js:289 +#: js/blocks/DictBlocks.js:290 +#: js/blocks/DictBlocks.js:357 +#: js/blocks/DictBlocks.js:430 +#: js/blocks/DictBlocks.js:431 +#.TRANS: clave +msgid "key2" +msgstr "" + +#: js/blocks/DictBlocks.js:215 +#: js/blocks/DictBlocks.js:216 +#: js/blocks/DictBlocks.js:289 +#: js/blocks/DictBlocks.js:290 +#: js/blocks/DictBlocks.js:357 +#: js/blocks/DictBlocks.js:430 +#: js/blocks/DictBlocks.js:431 +#: js/blocks/IntervalsBlocks.js:1462 +#.TRANS: key, e.g., C in C Major +#.TRANS: clave +msgid "key" +msgstr "kichanapaq" + +#: js/blocks/DictBlocks.js:271 +#: js/blocks/DictBlocks.js:411 +#.TRANS: El bloque valor-adjusto establece un valor en el diccionario para una clave específica. +msgid "The Set-dict block sets a value in the dictionary for a specified key." +msgstr "" + +#: js/blocks/DictBlocks.js:286 +#: js/blocks/DictBlocks.js:427 +#.TRANS: set a value in the dictionary for a given key +#.TRANS: valor ajustado +msgid "set value" +msgstr "" + +#: js/blocks/EnsembleBlocks.js:66 +#.TRANS: valor en la pila de ratón +msgid "mouse index heap" +msgstr "Huk’ucha /qillqa purichina" + +#: js/blocks/EnsembleBlocks.js:68 +#.TRANS: El bloque de valor en la pila de ratón devuelve un valor en el almacenamiento dinámico en una ubicación específica para un mouse específico. +msgid "The Mouse index heap block returns a value in the heap at a specified location for a specified mouse." +msgstr "" + +#: js/blocks/EnsembleBlocks.js:77 +#: js/blocks/EnsembleBlocks.js:1080 +#.TRANS: renombrar ratón +msgid "mouse name" +msgstr "Sutichay huk’uchata" + +#: js/blocks/EnsembleBlocks.js:77 +#: js/blocks/EnsembleBlocks.js:92 +#: js/blocks/HeapBlocks.js:544 +#.TRANS: value1 is a numeric value (JAPANESE ONLY) +#.TRANS: posición en la pila +msgid "index" +msgstr "wakichatanaka" + +#: js/blocks/EnsembleBlocks.js:80 +#.TRANS: valor en la pila de tortuga +msgid "turtle index heap" +msgstr "" + +#: js/blocks/EnsembleBlocks.js:82 +#.TRANS: El bloque de valor en la pila de tortuga devuelve un valor en el almacenamiento dinámico en una ubicación específica para un mouse específico. +msgid "The Turtle index heap block returns a value in the heap at a specified location for a specified turtle." +msgstr "" + +#: js/blocks/EnsembleBlocks.js:90 +#: js/blocks/EnsembleBlocks.js:167 +#: js/blocks/EnsembleBlocks.js:230 +#: js/blocks/EnsembleBlocks.js:316 +#: js/blocks/EnsembleBlocks.js:362 +#: js/blocks/EnsembleBlocks.js:400 +#: js/blocks/EnsembleBlocks.js:454 +#: js/blocks/EnsembleBlocks.js:504 +#: js/blocks/EnsembleBlocks.js:550 +#: js/blocks/EnsembleBlocks.js:597 +#: js/blocks/EnsembleBlocks.js:651 +#: js/blocks/EnsembleBlocks.js:763 +#: js/blocks/EnsembleBlocks.js:854 +#: js/blocks/EnsembleBlocks.js:915 +#: js/blocks/EnsembleBlocks.js:955 +#: js/blocks/EnsembleBlocks.js:1219 +#: js/blocks/EnsembleBlocks.js:1293 +#.TRANS: Yertle is the name of a turtle. +#.TRANS: +msgid "Yertle" +msgstr "" + +#: js/blocks/EnsembleBlocks.js:92 +#: js/blocks/EnsembleBlocks.js:1089 +#.TRANS: renombrar tortuga +msgid "turtle name" +msgstr "Tortuga wakichatampi mayachasiña" + +#: js/blocks/EnsembleBlocks.js:122 +#: js/blocks/EnsembleBlocks.js:1197 +#: js/blocks/HeapBlocks.js:474 +#: js/blocks/HeapBlocks.js:572 +#.TRANS: El índice debe ser > 0. +msgid "Index must be > 0." +msgstr "Wakichata > 0 chimputa jilañapawa" + +#: js/blocks/EnsembleBlocks.js:127 +#: js/blocks/HeapBlocks.js:479 +#: js/blocks/HeapBlocks.js:577 +#.TRANS: El tamaño máximo de pilas es 1000. +msgid "Maximum heap size is 1000." +msgstr "El tamaño máximo de pilas es 1000." + +#: js/blocks/EnsembleBlocks.js:145 +#.TRANS: parar ratón +msgid "stop mouse" +msgstr "jithiyaña sayt'ayaña" + +#: js/blocks/EnsembleBlocks.js:147 +#.TRANS: El bloque parar ratón parar el ratón especificado. +msgid "The Stop mouse block stops the specified mouse." +msgstr "El bloque parar ratón parar el ratón especificado." + +#: js/blocks/EnsembleBlocks.js:158 +#.TRANS: detener tortuga +msgid "stop turtle" +msgstr "tortuga wakichata sayt'ayaña" + +#: js/blocks/EnsembleBlocks.js:160 +#.TRANS: El bloque parar tortuga parar el ratón especificado. +msgid "The Stop turtle block stops the specified turtle." +msgstr "" + +#: js/blocks/EnsembleBlocks.js:184 +#: js/blocks/EnsembleBlocks.js:247 +#: js/blocks/EnsembleBlocks.js:413 +#: js/blocks/EnsembleBlocks.js:468 +#: js/blocks/EnsembleBlocks.js:706 +#: js/blocks/EnsembleBlocks.js:808 +#: js/blocks/EnsembleBlocks.js:870 +#: js/blocks/EnsembleBlocks.js:1190 +#: js/blocks/EnsembleBlocks.js:1253 +#.TRANS: No se puede encontrar ratón +msgid "Cannot find mouse" +msgstr "Manan huk’uchata tarikunchu" + +#: js/blocks/EnsembleBlocks.js:186 +#: js/blocks/EnsembleBlocks.js:249 +#: js/blocks/EnsembleBlocks.js:415 +#: js/blocks/EnsembleBlocks.js:470 +#: js/blocks/EnsembleBlocks.js:708 +#: js/blocks/EnsembleBlocks.js:810 +#: js/blocks/EnsembleBlocks.js:872 +#: js/blocks/EnsembleBlocks.js:1192 +#: js/blocks/EnsembleBlocks.js:1255 +#.TRANS: No se puede encontrar tortuga. +msgid "Cannot find turtle" +msgstr "No se puede encontrar tortuga." + +#: js/blocks/EnsembleBlocks.js:206 +#.TRANS: comenzar ratón +msgid "start mouse" +msgstr "jithuyaña qalltaña" + +#: js/blocks/EnsembleBlocks.js:209 +#.TRANS: El bloque comenzar ratón inicia el ratón especificado. +msgid "The Start mouse block starts the specified mouse." +msgstr "El bloque comenzar ratón inicia el ratón especificado." + +#: js/blocks/EnsembleBlocks.js:220 +#.TRANS: iniciar tortuga +msgid "start turtle" +msgstr "tortuga wakichata qalltaña" + +#: js/blocks/EnsembleBlocks.js:223 +#.TRANS: El bloque comenzar tortuga inicia el ratón especificado. +msgid "The Start turtle block starts the specified turtle." +msgstr "" + +#: js/blocks/EnsembleBlocks.js:256 +#.TRANS: Ratón ya ha comenzado. +msgid "Mouse is already running." +msgstr "Huk’ucha qallarinña" + +#: js/blocks/EnsembleBlocks.js:258 +#.TRANS: Tortuga ya ha comenzado. +msgid "Turtle is already running." +msgstr "Tortuga ya ha comenzado." + +#: js/blocks/EnsembleBlocks.js:282 +#.TRANS: No se puede encontrar el bloque de inicar. +msgid "Cannot find start block" +msgstr "Manan qallariq saya tarikunchu" + +#: js/blocks/EnsembleBlocks.js:292 +#.TRANS: pen color for this mouse +#.TRANS: color de ratón +msgid "mouse color" +msgstr "Llimp’iyniyuq huk’ucha" + +#: js/blocks/EnsembleBlocks.js:294 +#.TRANS: El bloque de color del ratón devuelve el color del lápiz del ratón especificado. +msgid "The Mouse color block returns the pen color of the specified mouse." +msgstr "" + +#: js/blocks/EnsembleBlocks.js:306 +#.TRANS: pen color for this turtle +#.TRANS: color de tortuga +msgid "turtle color" +msgstr "" + +#: js/blocks/EnsembleBlocks.js:308 +#.TRANS: El bloque de color de la tortuga devuelve el color del lápiz de la tortuga especificado. +msgid "The Turtle color block returns the pen color of the specified turtle." +msgstr "" + +#: js/blocks/EnsembleBlocks.js:338 +#.TRANS: heading (compass direction) for this mouse +#.TRANS: rumbo de ratón +msgid "mouse heading" +msgstr "jithiyaña wakichata suti" + +#: js/blocks/EnsembleBlocks.js:340 +#.TRANS: El bloque de rumbo del ratón devuelve el rumbo del lápiz del ratón especificado. +msgid "The Mouse heading block returns the heading of the specified mouse." +msgstr "" + +#: js/blocks/EnsembleBlocks.js:352 #.TRANS: heading (compass direction) for this turtle #.TRANS: rumbo de tortuga msgid "turtle heading" msgstr "" -#: js/EnsembleBlocks.js:354 +#: js/blocks/EnsembleBlocks.js:354 #.TRANS: El bloque de rumbo de la tortuga devuelve el rumbo del lápiz de la tortuga especificado. msgid "The Turtle heading block returns the heading of the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:384 -#: js/EnsembleBlocks.js:439 +#: js/blocks/EnsembleBlocks.js:384 +#: js/blocks/EnsembleBlocks.js:439 #.TRANS: set xy position for this mouse #.TRANS: fijar ratón msgid "set mouse" msgstr "fijar ratón" -#: js/EnsembleBlocks.js:391 -#: js/EnsembleBlocks.js:402 -#: js/BoxesBlocks.js:595 -#.TRANS: nombre -msgid "name1" -msgstr "Suti" - -#: js/EnsembleBlocks.js:391 -#: js/EnsembleBlocks.js:402 -#: js/ProgramBlocks.js:881 -#: js/GraphicsBlocks.js:235 -#: js/GraphicsBlocks.js:313 -#: js/GraphicsBlocks.js:436 -#: js/GraphicsBlocks.js:487 -#: js/GraphicsBlocks.js:534 -#: js/GraphicsBlocks.js:750 +#: js/blocks/EnsembleBlocks.js:391 +#: js/blocks/EnsembleBlocks.js:402 +#: js/blocks/GraphicsBlocks.js:235 +#: js/blocks/GraphicsBlocks.js:313 +#: js/blocks/GraphicsBlocks.js:436 +#: js/blocks/GraphicsBlocks.js:487 +#: js/blocks/GraphicsBlocks.js:534 +#: js/blocks/GraphicsBlocks.js:750 +#: js/blocks/ProgramBlocks.js:881 #.TRANS: x msgid "x" msgstr "x" -#: js/EnsembleBlocks.js:391 -#: js/EnsembleBlocks.js:402 -#: js/ProgramBlocks.js:881 -#: js/GraphicsBlocks.js:149 -#: js/GraphicsBlocks.js:313 -#: js/GraphicsBlocks.js:436 -#: js/GraphicsBlocks.js:487 -#: js/GraphicsBlocks.js:534 -#: js/GraphicsBlocks.js:750 +#: js/blocks/EnsembleBlocks.js:391 +#: js/blocks/EnsembleBlocks.js:402 +#: js/blocks/GraphicsBlocks.js:149 +#: js/blocks/GraphicsBlocks.js:313 +#: js/blocks/GraphicsBlocks.js:436 +#: js/blocks/GraphicsBlocks.js:487 +#: js/blocks/GraphicsBlocks.js:534 +#: js/blocks/GraphicsBlocks.js:750 +#: js/blocks/ProgramBlocks.js:881 #.TRANS: y msgid "y" msgstr "y" -#: js/EnsembleBlocks.js:395 -#: js/EnsembleBlocks.js:452 +#: js/blocks/EnsembleBlocks.js:395 +#: js/blocks/EnsembleBlocks.js:452 #.TRANS: set xy position for this turtle #.TRANS: fijar tortuga msgid "set turtle" msgstr "" -#: js/EnsembleBlocks.js:433 +#: js/blocks/EnsembleBlocks.js:433 #.TRANS: El bloque de ratón establecer envía una pila de bloques para que los ejecute el ratón especificado. msgid "The Set mouse block sends a stack of blocks to be run by the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:446 +#: js/blocks/EnsembleBlocks.js:446 #.TRANS: El bloque de tortuga establecer envía una pila de bloques para que los ejecute el tortuga especificado. msgid "The Set turtle block sends a stack of blocks to be run by the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:480 +#: js/blocks/EnsembleBlocks.js:480 #.TRANS: y position for this mouse #.TRANS: ratón y msgid "mouse y" msgstr "puripaq Y" -#: js/EnsembleBlocks.js:482 +#: js/blocks/EnsembleBlocks.js:482 #.TRANS: El bloque del ratón Y devuelve la posición Y del ratón especificado. msgid "The Y mouse block returns the Y position of the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:494 +#: js/blocks/EnsembleBlocks.js:494 #.TRANS: y position for this turtle #.TRANS: tortuga y msgid "turtle y" msgstr "tortuga Y wakichata" -#: js/EnsembleBlocks.js:496 +#: js/blocks/EnsembleBlocks.js:496 #.TRANS: El bloque de la tortuga Y devuelve la posición Y de la tortuga especificado. msgid "The Y turtle block returns the Y position of the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:526 +#: js/blocks/EnsembleBlocks.js:526 #.TRANS: x position for this mouse #.TRANS: ratón x msgid "mouse x" msgstr "puripaq X" -#: js/EnsembleBlocks.js:528 +#: js/blocks/EnsembleBlocks.js:528 #.TRANS: El bloque del ratón X devuelve la posición X del ratón especificado. msgid "The X mouse block returns the X position of the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:540 +#: js/blocks/EnsembleBlocks.js:540 #.TRANS: x position for this turtle #.TRANS: tortuga x msgid "turtle x" msgstr "tortuga X wakichata" -#: js/EnsembleBlocks.js:542 +#: js/blocks/EnsembleBlocks.js:542 #.TRANS: El bloque de la tortuga X devuelve la posición X de la tortuga especificado. msgid "The X turtle block returns the X position of the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:573 +#: js/blocks/EnsembleBlocks.js:573 #.TRANS: notes played by this mouse #.TRANS: notas jugadas de ratón msgid "mouse notes played" msgstr "notas jugadas de ratón" -#: js/EnsembleBlocks.js:575 +#: js/blocks/EnsembleBlocks.js:575 #.TRANS: El bloque de notas jugadas del ratón devuelve el número de notas tocadas por el ratón especificado. msgid "The Mouse elapse notes block returns the number of notes played by the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:587 +#: js/blocks/EnsembleBlocks.js:587 #.TRANS: notes played by this turtle #.TRANS: notas jugadas de tortuga msgid "turtle notes played" msgstr "" -#: js/EnsembleBlocks.js:589 +#: js/blocks/EnsembleBlocks.js:589 #.TRANS: El bloque de notas jugadas de la tortuga devuelve el número de notas tocadas por la tortuga especificado. msgid "The Turtle elapse notes block returns the number of notes played by the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:627 +#: js/blocks/EnsembleBlocks.js:627 #.TRANS: convert current note for this turtle to piano key (1-88) #.TRANS: número de tono de ratón msgid "mouse pitch number" msgstr "jithiyaña wairsu jakhu chimpu" -#: js/EnsembleBlocks.js:629 +#: js/blocks/EnsembleBlocks.js:629 #.TRANS: El bloque de tono del ratón devuelve el número de tono actual que está reproduciendo el ratón especificado. msgid "The Mouse pitch block returns the current pitch number being played by the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:641 +#: js/blocks/EnsembleBlocks.js:641 #.TRANS: convert current note for this turtle to piano key (1-88) #.TRANS: número de tono de tortuga msgid "turtle pitch number" msgstr "" -#: js/EnsembleBlocks.js:643 -#.TRANS: El bloque de tono de la tortuga devuelve el número de tono actual que está reproduciendo la tortuga especificado. -msgid "The Turrle pitch block returns the current pitch number being played by the specified turtle." +#: js/blocks/EnsembleBlocks.js:643 +#.TRANS: El bloque de tono de tortuga devuelve el número de tono actual que está tocando la tortuga especificada. +msgid "The Turtle pitch block returns the current pitch number being played by the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:747 -#: js/EnsembleBlocks.js:819 +#: js/blocks/EnsembleBlocks.js:747 +#: js/blocks/EnsembleBlocks.js:819 #.TRANS: note value is the duration of the note played by this mouse #.TRANS: valor de la nota del ratón msgid "mouse note value" msgstr "jithiyäwi wakichata qillqata chani" -#: js/EnsembleBlocks.js:757 +#: js/blocks/EnsembleBlocks.js:757 #.TRANS: note value is the duration of the note played by this turtle #.TRANS: valor de la nota de la tortuga msgid "turtle note value" msgstr "" -#: js/EnsembleBlocks.js:830 +#: js/blocks/EnsembleBlocks.js:830 #.TRANS: sync is short for synchronization #.TRANS: sincronizar msgid "mouse sync" msgstr "jithiyaña wakichata mayachaña" -#: js/EnsembleBlocks.js:832 +#: js/blocks/EnsembleBlocks.js:832 #.TRANS: El bloque sincronizar alinea el conteo de latidos entre ratones. msgid "The Mouse sync block aligns the beat count between mice." msgstr "El bloque sincronizar alinea el conteo de latidos entre ratones." -#: js/EnsembleBlocks.js:844 +#: js/blocks/EnsembleBlocks.js:844 #.TRANS: sync is short for synchronization #.TRANS: sincronizar msgid "turtle sync" msgstr "" -#: js/EnsembleBlocks.js:846 +#: js/blocks/EnsembleBlocks.js:846 #.TRANS: El bloque sincronizar alinea el conteo de latidos entre tortugas. msgid "The Turtle sync block aligns the beat count between turtles." msgstr "" -#: js/EnsembleBlocks.js:887 +#: js/blocks/EnsembleBlocks.js:887 #.TRANS: El bloque de ratón encontrado devolverá verdadero si se puede encontrar el ratón especificado. msgid "The Found mouse block will return true if the specified mouse can be found." msgstr "" -#: js/EnsembleBlocks.js:893 +#: js/blocks/EnsembleBlocks.js:893 #.TRANS: encontré el raton msgid "found mouse" msgstr "Huk’uchata tarini" -#: js/EnsembleBlocks.js:903 +#: js/blocks/EnsembleBlocks.js:903 #.TRANS: El bloque de tortuga encontrado devolverá verdadero si se puede encontrar el tortuga especificado. msgid "The Found turtle block will return true if the specified turtle can be found." msgstr "" -#: js/EnsembleBlocks.js:909 +#: js/blocks/EnsembleBlocks.js:909 #.TRANS: encontré la tortuga msgid "found turtle" msgstr "" -#: js/EnsembleBlocks.js:932 +#: js/blocks/EnsembleBlocks.js:932 #.TRANS: nuevo ratón msgid "new mouse" msgstr "Musuq huk’ucha" -#: js/EnsembleBlocks.js:934 +#: js/blocks/EnsembleBlocks.js:934 #.TRANS: El bloque nuevo ratón crea un nuevo ratón. msgid "The New mouse block will create a new mouse." msgstr "El bloque nuevo ratón crea un nuevo ratón." -#: js/EnsembleBlocks.js:945 +#: js/blocks/EnsembleBlocks.js:945 #.TRANS: nuevo tortuga msgid "new turtle" msgstr "" -#: js/EnsembleBlocks.js:947 +#: js/blocks/EnsembleBlocks.js:947 #.TRANS: El bloque nuevo ratón crea un nuevo tortuga. msgid "The New turtle block will create a new turtle." msgstr "" -#: js/EnsembleBlocks.js:1011 +#: js/blocks/EnsembleBlocks.js:1011 #.TRANS: fijar color del ratón msgid "set mouse color" msgstr "" -#: js/EnsembleBlocks.js:1014 +#: js/blocks/EnsembleBlocks.js:1014 #.TRANS: El bloque fijar color del ratón se usa para fijar el color de un ratón. msgid "The Set-mouse-color block is used to set the color of a mouse." msgstr "" -#: js/EnsembleBlocks.js:1020 +#: js/blocks/EnsembleBlocks.js:1020 #.TRANS: fijar color de la tortuga msgid "set turtle color" msgstr "" -#: js/EnsembleBlocks.js:1023 +#: js/blocks/EnsembleBlocks.js:1023 #.TRANS: El bloque fijar color de la tortuga se usa para fijar el color de una tortuga. msgid "The Set-turtle-color block is used to set the color of a turtle." msgstr "" -#: js/EnsembleBlocks.js:1083 +#: js/blocks/EnsembleBlocks.js:1083 #.TRANS: El bloque Nombre del ratón devuelve el nombre de un ratón. msgid "The Mouse-name block returns the name of a mouse." msgstr "Huk’uha sayaq kutichin huk’ucha sutiman" -#: js/EnsembleBlocks.js:1092 +#: js/blocks/EnsembleBlocks.js:1092 #.TRANS: El bloque Nombre de la tortuga devuelve el nombre de una tortuga. msgid "The Turtle-name block returns the name of a turtle." msgstr "" -#: js/EnsembleBlocks.js:1115 +#: js/blocks/EnsembleBlocks.js:1115 #.TRANS: recuento de ratones msgid "mouse count" msgstr "recuento de ratones" -#: js/EnsembleBlocks.js:1118 +#: js/blocks/EnsembleBlocks.js:1118 #.TRANS: El bloque recuento de ratones devuelve el número de ratones. msgid "The Mouse-count block returns the number of mice." msgstr "El bloque recuento de ratones devuelve el número de ratones." -#: js/EnsembleBlocks.js:1124 +#: js/blocks/EnsembleBlocks.js:1124 #.TRANS: recuento de tortuga msgid "turtle count" msgstr "" -#: js/EnsembleBlocks.js:1127 +#: js/blocks/EnsembleBlocks.js:1127 #.TRANS: El bloque recuento de tortugas devuelve el número de tortugas. -msgid "The Turtle-count block returns the number of turtles." -msgstr "" - -#: js/EnsembleBlocks.js:1149 -#.TRANS: nombre de nth ratón -msgid "nth mouse name" -msgstr "nombre de nth ratón" - -#: js/EnsembleBlocks.js:1152 -#.TRANS: El bloque de nombre Nth-ratón devuelve el nombre del enésimo ratón. -msgid "The Nth-Mouse name block returns the name of the nth mouse." -msgstr "" - -#: js/EnsembleBlocks.js:1158 -#.TRANS: nombre de nth tortuga -msgid "nth turtle name" -msgstr "" - -#: js/EnsembleBlocks.js:1161 -#.TRANS: El bloque de nombre Nth-tortuga devuelve el nombre del enésimo tortuga. -msgid "The Nth-Turtle name block returns the name of the nth turtle." -msgstr "" - -#: js/EnsembleBlocks.js:1205 -#: js/EnsembleBlocks.js:1265 -#.TRANS: fijar nombre -msgid "set name" -msgstr "Sutita tahachik" - -#: js/EnsembleBlocks.js:1214 -#: js/EnsembleBlocks.js:1221 -#.TRANS: origen -msgid "source" -msgstr "paqarina" - -#: js/EnsembleBlocks.js:1214 -#: js/EnsembleBlocks.js:1221 -#.TRANS: destino -msgid "target" -msgstr "chayana" - -#: js/EnsembleBlocks.js:1271 -#.TRANS: El bloque Fijar nombre se usa para nombrar un ratón. -msgid "The Set-name block is used to name a mouse." -msgstr "El bloque Fijar nombre se usa para nombrar un ratón." - -#: js/EnsembleBlocks.js:1284 -#.TRANS: El bloque Fijar nombre se usa para nombrar una tortuga. -msgid "The Set-name block is used to name a turtle." -msgstr "" - -#: js/BooleanBlocks.js:44 -#.TRANS: El bloque No es el operador lógico no. -msgid "The Not block is the logical not operator." -msgstr "El bloque No es el operador lógico no." - -#: js/BooleanBlocks.js:62 -#.TRANS: no -msgid "not" -msgstr "mana" - -#: js/BooleanBlocks.js:134 -#.TRANS: El bloque Y es el lógico y el operador. -msgid "The And block is the logical and operator." -msgstr "El bloque Y es el lógico y el operador." - -#: js/BooleanBlocks.js:152 -#.TRANS: y -msgid "and" -msgstr "hinallataq" - -#: js/BooleanBlocks.js:218 -#.TRANS: El bloque O es el lógico o el operador. -msgid "The Or block is the logical or operator." -msgstr "El bloque O es el lógico o el operador." - -#: js/BooleanBlocks.js:236 -#.TRANS: o -msgid "or" -msgstr "utaq" - -#: js/BooleanBlocks.js:302 -#.TRANS: El bloque XOR es el lógico XOR el operador. -msgid "The XOR block is the logical XOR operator." -msgstr "El bloque XOR es el lógico XOR el operador." - -#: js/BooleanBlocks.js:320 -#.TRANS: xor -msgid "xor" -msgstr "" - -#: js/BooleanBlocks.js:808 -#.TRANS: El bloque Igual devuelve verdadero si los dos números son iguales. -msgid "The Equal block returns True if the two numbers are equal." -msgstr "El bloque Igual devuelve verdadero si los dos números son iguales." - -#: js/BooleanBlocks.js:909 -msgid "The Not-equal-to block returns True if the two numbers are not equal to each other." -msgstr "" - -#: js/BooleanBlocks.js:1008 -#.TRANS: El bloque Booleano se utiliza para especificar verdadero o falso. -msgid "The Boolean block is used to specify true or false." -msgstr "El bloque Booleano se utiliza para especificar verdadero o falso." - -#: js/MediaBlocks.js:35 -#.TRANS: right side of the screen -#.TRANS: derecha -msgid "right (screen)" -msgstr "pantallapa pañanpi" - -#: js/MediaBlocks.js:45 -#: js/MediaBlocks.js:56 -#.TRANS: El bloque Derecha devuelve la posición de la derecha del lienzo. -msgid "The Right block returns the position of the right of the canvas." -msgstr "" - -#: js/MediaBlocks.js:97 -#.TRANS: left side of the screen -#.TRANS: izquierdo -msgid "left (screen)" -msgstr "pantallapa lluq’ínpi" - -#: js/MediaBlocks.js:107 -#: js/MediaBlocks.js:118 -#.TRANS: El bloque Izquierdo devuelve la posición de la izquierda del lienzo. -msgid "The Left block returns the position of the left of the canvas." -msgstr "" - -#: js/MediaBlocks.js:158 -#.TRANS: superior -msgid "top (screen)" -msgstr "hanan" - -#: js/MediaBlocks.js:168 -#: js/MediaBlocks.js:179 -#.TRANS: El bloque superior devuelve la posición de la parte superior del lienzo. -msgid "The Top block returns the position of the top of the canvas." +msgid "The Turtle-count block returns the number of turtles." msgstr "" -#: js/MediaBlocks.js:219 -#.TRANS: inferior -msgid "bottom (screen)" -msgstr "uran" +#: js/blocks/EnsembleBlocks.js:1149 +#.TRANS: nombre de nth ratón +msgid "nth mouse name" +msgstr "nombre de nth ratón" -#: js/MediaBlocks.js:229 -#: js/MediaBlocks.js:240 -#.TRANS: El bloque Inferior devuelve la posición de la parte inferior del lienzo. -msgid "The Bottom block returns the position of the bottom of the canvas." +#: js/blocks/EnsembleBlocks.js:1152 +#.TRANS: El bloque de nombre Nth-ratón devuelve el nombre del enésimo ratón. +msgid "The Nth-Mouse name block returns the name of the nth mouse." msgstr "" -#: js/MediaBlocks.js:282 -#.TRANS: anchura -msgid "width" -msgstr "chutariynin" +#: js/blocks/EnsembleBlocks.js:1158 +#.TRANS: nombre de nth tortuga +msgid "nth turtle name" +msgstr "" -#: js/MediaBlocks.js:291 -#.TRANS: El bloque ancho devuelve el ancho del lienzo. -msgid "The Width block returns the width of the canvas." -msgstr "chutariynin chiqasqa qillqana llikapa chutariyninta kutichin" +#: js/blocks/EnsembleBlocks.js:1161 +#.TRANS: El bloque de nombre Nth-tortuga devuelve el nombre del enésimo tortuga. +msgid "The Nth-Turtle name block returns the name of the nth turtle." +msgstr "" -#: js/MediaBlocks.js:325 -#.TRANS: altura -msgid "height" -msgstr "sayaynin" +#: js/blocks/EnsembleBlocks.js:1205 +#: js/blocks/EnsembleBlocks.js:1265 +#.TRANS: fijar nombre +msgid "set name" +msgstr "Sutita tahachik" -#: js/MediaBlocks.js:334 -#.TRANS: El bloque altura devuelve la altura del lienzo. -msgid "The Height block returns the height of the canvas." -msgstr "sayaynin chiqasqa qillqana llikapa sayayninta kutichin" +#: js/blocks/EnsembleBlocks.js:1214 +#: js/blocks/EnsembleBlocks.js:1221 +#.TRANS: origen +msgid "source" +msgstr "paqarina" -#: js/MediaBlocks.js:369 -#.TRANS: stops playback of an audio recording -#.TRANS: detener -msgid "stop play" -msgstr "sayachiy" +#: js/blocks/EnsembleBlocks.js:1214 +#: js/blocks/EnsembleBlocks.js:1221 +#.TRANS: destino +msgid "target" +msgstr "chayana" -#: js/MediaBlocks.js:404 -#.TRANS: Erases the images and text -#.TRANS: borrar medios -msgid "erase media" -msgstr "" +#: js/blocks/EnsembleBlocks.js:1271 +#.TRANS: El bloque Fijar nombre se usa para nombrar un ratón. +msgid "The Set-name block is used to name a mouse." +msgstr "El bloque Fijar nombre se usa para nombrar un ratón." -#: js/MediaBlocks.js:409 -#.TRANS: El bloque Erase Media borra texto e imágenes. -msgid "The Erase Media block erases text and images." +#: js/blocks/EnsembleBlocks.js:1284 +#.TRANS: El bloque Fijar nombre se usa para nombrar una tortuga. +msgid "The Set-name block is used to name a turtle." msgstr "" -#: js/MediaBlocks.js:439 -#.TRANS: play an audio recording -#.TRANS: reproducir -msgid "play back" -msgstr "puririchiy" +#: js/blocks/ExtrasBlocks.js:33 +#.TRANS: fracción +msgid "fraction" +msgstr "phatmi" -#: js/MediaBlocks.js:487 -#.TRANS: hablar -msgid "speak" -msgstr "rimay" +#: js/blocks/ExtrasBlocks.js:36 +#.TRANS: convertir un número racional en fracción +msgid "Convert a float to a fraction" +msgstr "convertir un número racional en fracción" -#: js/MediaBlocks.js:495 -#.TRANS: El bloque Habla emite al sintetizador de texto a voz. -msgid "The Speak block outputs to the text-to-speech synthesizer" -msgstr "Rimay chiqasqa kunkawan rimasqa pisiyachisqanmanta riman " +#: js/blocks/ExtrasBlocks.js:93 +#.TRANS: guardar como ABC +msgid "save as ABC" +msgstr "ABC hinaman waqaychay" -#: js/MediaBlocks.js:546 -#.TRANS: -msgid "camera" -msgstr "" +#: js/blocks/ExtrasBlocks.js:96 +#: js/blocks/ExtrasBlocks.js:132 +#: js/blocks/ExtrasBlocks.js:168 +#.TRANS: título +msgid "title" +msgstr "umalliq suti" -#: js/MediaBlocks.js:551 -#.TRANS: El bloque cámara conecta una cámara web al bloque mostrar. -msgid "The Camera block connects a webcam to the Show block." -msgstr "Cámarata webman hap’ichiy" +#: js/blocks/ExtrasBlocks.js:129 +#.TRANS: guardar como Lilypond +msgid "save as Lilypond" +msgstr "Lilypondtahina waqaychay" -#: js/MediaBlocks.js:574 -#.TRANS: -msgid "video" -msgstr "" +#: js/blocks/ExtrasBlocks.js:165 +#.TRANS: guardar como SVG +msgid "save as SVG" +msgstr "SVGtahina waqaychay" -#: js/MediaBlocks.js:579 -#.TRANS: El bloque video selecciona video para al bloque mostrar. -msgid "The Video block selects video for use with the Show block." -msgstr "El bloque video selecciona video para al bloque mostrar." +#: js/blocks/ExtrasBlocks.js:216 +#.TRANS: sin fondo +msgid "no background" +msgstr "Mana imayuq" -#: js/MediaBlocks.js:607 -#.TRANS: El bloque Abrir archivo abre un archivo para usar con el bloque Mostrar. -msgid "The Open file block opens a file for use with the Show block." +#: js/blocks/ExtrasBlocks.js:219 +#.TRANS: El bloque Sin fondo elimina el fondo de la salida SVG guardada. +msgid "The No background block eliminates the background from the saved SVG output." msgstr "" -#: js/MediaBlocks.js:645 -#.TRANS: detener medios -msgid "stop media" -msgstr "ruranakunata sayachiy" +#: js/blocks/ExtrasBlocks.js:247 +#.TRANS: mostrar bloques +msgid "show blocks" +msgstr " chiqaskunata qhawachiy" -#: js/MediaBlocks.js:650 -#.TRANS: El bloque detener medios detiene la reproducción de audio o video. -msgid "The Stop media block stops audio or video playback." -msgstr "El bloque detener medios detiene la reproducción de audio o video." +#: js/blocks/ExtrasBlocks.js:249 +#.TRANS: El bloque mostrar bloques muestra los bloques. +msgid "The Show blocks block shows the blocks." +msgstr "El bloque mostrar bloques muestra los bloques." -#: js/MediaBlocks.js:679 -#: js/PitchBlocks.js:1539 -#: js/phrasemaker.js:822 -#: js/musickeyboard.js:1654 -#.TRANS: a measure of frequency: one cycle per second -#.TRANS: hertz -msgid "hertz" -msgstr "hertz" +#: js/blocks/ExtrasBlocks.js:274 +#.TRANS: ocultar bloques +msgid "hide blocks" +msgstr " chiqaskunata pakay" -#: js/MediaBlocks.js:692 -#.TRANS: duración (ms) -msgid "duration (ms)" -msgstr "kawsapakuy" +#: js/blocks/ExtrasBlocks.js:276 +#.TRANS: El bloque ocultar esconde los bloques. +msgid "The Hide blocks block hides the blocks." +msgstr "El bloque ocultar esconde los bloques." -#: js/MediaBlocks.js:728 -#.TRANS: translate a note into hertz, e.g., A4 -> 440HZ -#.TRANS: nota a frecuencia -msgid "note to frequency" -msgstr "kuti kuti ruranaman huch’uy willakuy" +#: js/blocks/ExtrasBlocks.js:305 +#: js/blocks/ExtrasBlocks.js:338 +#.TRANS: El bloque Espacio se utiliza para agregar espacio entre bloques. +msgid "The Space block is used to add space between blocks." +msgstr " Qaylla chiqasqa chiqaspurakuna qayllayuq kanankupaq yapaq yapanapaq" -#: js/MediaBlocks.js:736 -#.TRANS: El bloque A frecuencia convierte un nombre de tono y una octava a Hertz. -msgid "The To frequency block converts a pitch name and octave to Hertz." +#: js/blocks/ExtrasBlocks.js:376 +#.TRANS: esperar +msgid "wait" +msgstr "suyay" + +#: js/blocks/ExtrasBlocks.js:379 +#.TRANS: El bloque Espera detiene el programa durante un número específico de segundos. +msgid "The Wait block pauses the program for a specified number of seconds." msgstr "" -#: js/MediaBlocks.js:746 -#: js/PitchBlocks.js:656 -#: js/PitchBlocks.js:932 -#: js/PitchBlocks.js:1827 -#.TRANS: name2 is name as in name of pitch (JAPANESE ONLY) -#.TRANS: nombre -msgid "name2" -msgstr "suti" +#: js/blocks/ExtrasBlocks.js:433 +#: plugins/facebook.rtp:30 +#.TRANS: comentar +msgid "comment" +msgstr "rimariy" -#: js/MediaBlocks.js:812 -#.TRANS: El bloque Avatar se usa para cambiar la apariencia del ratón. -msgid "The Avatar block is used to change the appearance of the mouse." -msgstr "" +#: js/blocks/ExtrasBlocks.js:469 +#.TRANS: imprimir +msgid "print" +msgstr "ñit'iy" -#: js/MediaBlocks.js:819 -#.TRANS: El bloque Avatar se usa para cambiar la apariencia de la tortuga. -msgid "The Avatar block is used to change the appearance of the turtle." -msgstr "" +#: js/blocks/ExtrasBlocks.js:476 +#.TRANS: El bloque Imprimir muestra texto en la parte superior de la pantalla. +msgid "The Print block displays text at the top of the screen." +msgstr "Nit’iy chiqasqa pantallapa hawanpi qillqata qhawachikun" -#: js/MediaBlocks.js:831 -#: js/MediaBlocks.js:891 -#.TRANS: a media object -#.TRANS: tamaño -msgid "size" -msgstr "sayay" +#: js/blocks/ExtrasBlocks.js:582 +#.TRANS: mostrar cuadrícula +msgid "display grid" +msgstr "mostrar cuadrícula" -#: js/MediaBlocks.js:831 -#.TRANS: imagen -msgid "image" -msgstr "rikch’aynin" +#: js/blocks/ExtrasBlocks.js:587 +#.TRANS: Mostrar el bloque de cuadrícula cambia el tipo de cuadrícula +msgid "The Display Grid Block changes the grid type" +msgstr "Mostrar el bloque de cuadrícula cambia el tipo de cuadrícula" -#: js/MediaBlocks.js:880 -#.TRANS: El bloque Mostrar se utiliza para mostrar texto o imágenes en el lienzo. -msgid "The Show block is used to display text or images on the canvas." +#: js/blocks/ExtrasBlocks.js:689 +#: js/blocks/ExtrasBlocks.js:708 +#: js/blocks/ExtrasBlocks.js:731 +#: js/blocks/ExtrasBlocks.js:754 +#: js/blocks/ExtrasBlocks.js:772 +#: js/blocks/ExtrasBlocks.js:791 +#: js/blocks/ExtrasBlocks.js:810 +#: js/blocks/ExtrasBlocks.js:829 +#.TRANS: desconocido +msgid "unknown" +msgstr "Mana riqsisqa" + +#: js/blocks/FlowBlocks.js:41 +#.TRANS: El bloque Atrás ejecuta el código en orden inverso (retrógrado en la música). +msgid "The Backward block runs code in reverse order (Musical retrograde)." msgstr "" -#: js/MediaBlocks.js:888 -#.TRANS: show1 is show as in display an image or text on the screen. -#.TRANS: mostrar -msgid "show1" -msgstr "qhawachiy" +#: js/blocks/FlowBlocks.js:48 +#.TRANS: hacia atrás +msgid "backward" +msgstr "Qhipaman" -#: js/MediaBlocks.js:891 -#.TRANS: objeto -msgid "obj" -msgstr "ima" +#: js/blocks/FlowBlocks.js:124 +#.TRANS: El bloque Duplicado ejecutará cada bloque varias veces. +msgid "The Duplicate block will run each block multiple times." +msgstr "Iskay kikinyachiq sayaq, ruranqa sapanka sayaqta achka kutita" -#: js/MediaBlocks.js:938 -#.TRANS: El bloque Medios se utiliza para importar una imagen. -msgid "The Media block is used to import an image." -msgstr "Kaqkuna chiqastaqa llimp’ita apamunapaq hap’ikun" +#: js/blocks/FlowBlocks.js:136 +#.TRANS: duplicar +msgid "duplicate" +msgstr "iskay kikiyachiy" -#: js/MediaBlocks.js:973 -#.TRANS: El bloque Texto contiene una cadena de texto. -msgid "The Text block holds a text string." -msgstr "Qillqa t’aqaqa watuchasqa qillqakuna kaqniyuqmi" +#: js/blocks/FlowBlocks.js:334 +#.TRANS: El bloque predeterminado se usa dentro de un bloque de switch para definir la acción predeterminada. +msgid "The Default block is used inside of a Switch to define the default action." +msgstr "" -#: js/ProgramBlocks.js:33 -#.TRANS: El bloque Cargar-pila-en-app carga la pila en una página web. -msgid "The Load-heap-from-app block loads the heap from a web page." +#: js/blocks/FlowBlocks.js:342 +#.TRANS: el caso de forma predeterminada +msgid "default" +msgstr "Chhaynapaq rurasqa" + +#: js/blocks/FlowBlocks.js:361 +#: js/blocks/FlowBlocks.js:418 +#.TRANS: El bloque Caso debe utilizarse dentro de un bloque de switch. +msgid "The Case Block must be used inside of a Switch Block." +msgstr "El bloque Caso debe utilizarse dentro de un bloque de switch." + +#: js/blocks/FlowBlocks.js:389 +#.TRANS: El bloque Caso se utiliza dentro de un interruptor para definir coincidencias. +msgid "The Case block is used inside of a Switch to define matches." msgstr "" -#: js/ProgramBlocks.js:44 -#.TRANS: load the heap contents from a URL -#.TRANS: cargar pila desde aplicación -msgid "load heap from App" -msgstr "App taypita kunaymana wakichaña" +#: js/blocks/FlowBlocks.js:397 +#.TRANS: caso +msgid "case" +msgstr "uka chimpu" -#: js/ProgramBlocks.js:95 -#.TRANS: Error de análisis de datos JSON. -msgid "Error parsing JSON data:" -msgstr "JSON wakichatanaka uñakipäwina pantjäwi" +#: js/blocks/FlowBlocks.js:446 +#.TRANS: El bloque Switch ejecutará el código en el caso correspondiente. +msgid "The Switch block will run the code in the matching Case." +msgstr "El bloque Switch ejecutará el código en el caso correspondiente." -#: js/ProgramBlocks.js:100 -#.TRANS: 404: Página no encontrada. -msgid "404: Page not found" -msgstr "mana tarisqa p’anqa" +#: js/blocks/FlowBlocks.js:454 +#.TRANS: switch +msgid "switch" +msgstr "tinkuchiy" -#: js/ProgramBlocks.js:133 -#.TRANS: El bloque Guardar-pila-en-app guarda la pila en una página web. -msgid "The Save-heap-to-app block saves the heap to a web page." -msgstr "El bloque Guardar-pila-en-app guarda la pila en una página web." +#: js/blocks/FlowBlocks.js:595 +#.TRANS: El bloque Parar detendrá un bucle. +msgid "The Stop block will stop a loop" +msgstr "El bloque Parar detendrá un bucle." -#: js/ProgramBlocks.js:144 -#.TRANS: save the heap contents to a URL -#.TRANS: guardar pila a aplicación -msgid "save heap to App" -msgstr "Llapanta kay qutupi waqaychana" +#: js/blocks/FlowBlocks.js:597 +#.TRANS: Por siempre, Repetir, Mientras o Hasta. +msgid "Forever, Repeat, While, or Until." +msgstr "Por siempre, Repetir, Mientras o Hasta." + +#: js/blocks/FlowBlocks.js:604 +#: js/widgets/timbre.js:417 +#: js/widgets/timbre.js:419 +#: js/widgets/musickeyboard.js:819 +#: js/widgets/musickeyboard.js:821 +#: js/widgets/phrasemaker.js:4202 +#: plugins/rodi.rtp:29 +#: plugins/rodi.rtp:73 +#: plugins/rodi.rtp:413 +#.TRANS: detener +msgid "stop" +msgstr "sayachiy" -#: js/ProgramBlocks.js:189 -#.TRANS: Pilas tortuga no contiene un montón válida para -msgid "Cannot find a valid heap for" -msgstr "Manam llapan qutupi tarikunchu" +#: js/blocks/FlowBlocks.js:653 +#.TRANS: El bloque Esperar esperará hasta que la condición sea verdadera. +msgid "The Waitfor block will wait until the condition is true." +msgstr "El bloque Esperar esperará hasta que la condición sea verdadera." -#: js/ProgramBlocks.js:206 -#.TRANS: El bloque Cargar pila carga la pila de un archivo. -msgid "The Load-heap block loads the heap from a file." -msgstr "El bloque Cargar pila carga la pila de un archivo." +#: js/blocks/FlowBlocks.js:661 +#.TRANS: esperar hasta +msgid "wait for" +msgstr "ukakama suyt’aña" -#: js/ProgramBlocks.js:217 -#.TRANS: load the heap from a file -#.TRANS: cargar pila -msgid "load heap" -msgstr "Qututa apachiy" +#: js/blocks/FlowBlocks.js:732 +#.TRANS: El bloque Hasta se repetirá hasta que la condición sea verdadera. +msgid "The Until block will repeat until the condition is true." +msgstr "El bloque Hasta se repetirá hasta que la condición sea verdadera." -#: js/ProgramBlocks.js:270 -#.TRANS: El archivo seleccionado no contiene un pila válida. -msgid "The file you selected does not contain a valid heap." -msgstr "Wakichata chhijllata yaqha wakichataniwa" +#: js/blocks/FlowBlocks.js:740 +#.TRANS: hasta +msgid "until" +msgstr "kay kama" -#: js/ProgramBlocks.js:275 -#.TRANS: El bloque Pila de carga necesita un bloque de archivo de carga. -msgid "The loadHeap block needs a loadFile block." -msgstr "wakichata siqi qhantayañataki maya qhantayaña wakichata mayi" +#: js/blocks/FlowBlocks.js:742 +#: js/blocks/FlowBlocks.js:822 +#.TRANS: hacer +msgid "do2" +msgstr "hacer" -#: js/ProgramBlocks.js:291 -#.TRANS: El bloque fijar pila carga la pila. -msgid "The Set-heap block loads the heap." -msgstr "" +#: js/blocks/FlowBlocks.js:812 +#.TRANS: El bloque Mientras se repetirá mientras la condición sea verdadera. +msgid "The While block will repeat while the condition is true." +msgstr "El bloque Mientras se repetirá mientras la condición sea verdadera." -#: js/ProgramBlocks.js:299 -#: js/HeapBlocks.js:539 -#.TRANS: load the heap from a JSON encoding -#.TRANS: fijar pila -msgid "set heap" -msgstr "Qutu kutichiy" +#: js/blocks/FlowBlocks.js:820 +#.TRANS: mientras +msgid "while" +msgstr "chaykamataq" -#: js/ProgramBlocks.js:340 -#.TRANS: El bloque que seleccionó no contiene una pila válido. -msgid "The block you selected does not contain a valid heap." +#: js/blocks/FlowBlocks.js:903 +#: js/blocks/FlowBlocks.js:968 +#: js/blocks/FlowBlocks.js:979 +#.TRANS: En este ejemplo, si se presiona el botón del mouse, se reproducirá una caja. +msgid "In this example if the mouse button is pressed a snare drum will play." msgstr "" -#: js/ProgramBlocks.js:343 -#.TRANS: El bloque fija pila necesita una pila. -msgid "The Set heap block needs a heap." -msgstr "" +#: js/blocks/FlowBlocks.js:925 +#: js/blocks/FlowBlocks.js:988 +#.TRANS: si +msgid "if" +msgstr "arí" -#: js/ProgramBlocks.js:360 -#.TRANS: El bloque Carga-diccionario carga un diccionario desde un archivo. -msgid "The Load-dictionary block loads a dictionary from a file." -msgstr "" +#: js/blocks/FlowBlocks.js:927 +#: js/blocks/FlowBlocks.js:990 +#.TRANS: entonces +msgid "then" +msgstr "chaynaqa" -#: js/ProgramBlocks.js:372 -#.TRANS: load a dictionary from a file -#.TRANS: carga diccionario -msgid "load dictionary" -msgstr "" +#: js/blocks/FlowBlocks.js:927 +#.TRANS: sino +msgid "else" +msgstr "mana chayqa" -#: js/ProgramBlocks.js:390 -#: js/ProgramBlocks.js:658 -#: js/ToneBlocks.js:1025 -#.TRANS: archivo -msgid "file" +#: js/blocks/FlowBlocks.js:1025 +#.TRANS: El bloque Por siempre repetirá los bloques contenidos para siempre. +msgid "The Forever block will repeat the contained blocks forever." msgstr "" -#: js/ProgramBlocks.js:396 -#: js/ProgramBlocks.js:501 -#: js/ProgramBlocks.js:664 -#: js/DictBlocks.js:80 -#: js/DictBlocks.js:145 -#: js/DictBlocks.js:216 -#: js/DictBlocks.js:290 -#.TRANS: mi diccionario -msgid "My Dictionary" -msgstr "" +#: js/blocks/FlowBlocks.js:1037 +#.TRANS: por siempre +msgid "forever" +msgstr "wiñaypaq" -#: js/ProgramBlocks.js:444 -#.TRANS: El archivo que seleccionó no contiene un diccionario válido. -msgid "The file you selected does not contain a valid dictionary." -msgstr "" +#: js/blocks/FlowBlocks.js:1073 +#.TRANS: El bloque Repetir repetirá los bloques contenidos. +msgid "The Repeat block will repeat the contained blocks." +msgstr "El bloque Repetir repetirá los bloques contenidos." -#: js/ProgramBlocks.js:449 -#.TRANS: El bloque de diccionario de carga necesita un bloque de archivo -msgid "The load dictionary block needs a load file block." -msgstr "" +#: js/blocks/FlowBlocks.js:1075 +#.TRANS: En este ejemplo la nota se tocará 4 veces. +msgid "In this example the note will be played 4 times." +msgstr "En este ejemplo la nota se tocará 4 veces." -#: js/ProgramBlocks.js:466 -#.TRANS: El bloque fijar diccionario carga un diccionario. -msgid "The Set-dictionary block loads a dictionary." -msgstr "" +#: js/blocks/FlowBlocks.js:1083 +#.TRANS: repetir +msgid "repeat" +msgstr "huktawan" -#: js/ProgramBlocks.js:477 -#.TRANS: load a dictionary from a JSON -#.TRANS: fijar diccionario -msgid "set dictionary" -msgstr "" +#: js/blocks/FlowBlocks.js:1123 +#.TRANS: duplicar factor +msgid "duplicate factor" +msgstr "panichiri chimpu" -#: js/ProgramBlocks.js:546 -#.TRANS: El bloque que seleccionó no contiene un diccionario válido. -msgid "The block you selected does not contain a valid dictionary." +#: js/blocks/HeapBlocks.js:49 +#.TRANS: El bloque Pila devuelve la pila. +msgid "The Heap block returns the heap." msgstr "" -#: js/ProgramBlocks.js:550 -#.TRANS: El bloque Fijar dictionario necesita un diccionario. -msgid "The set dictionary block needs a dictionary." -msgstr "" +#: js/blocks/HeapBlocks.js:133 +#.TRANS: mostrar pila +msgid "show heap" +msgstr "qutu rikuchiy" -#: js/ProgramBlocks.js:567 -#.TRANS: El bloque Guardar pila guarda la pila en un archivo. -msgid "The Save-heap block saves the heap to a file." -msgstr "El bloque Guardar pila guarda la pila en un archivo." +#: js/blocks/HeapBlocks.js:181 +#.TRANS: El bloque Longitud de la pila devuelve la longitud de la pila. +msgid "The Heap-length block returns the length of the heap." +msgstr "El bloque Longitud de la pila devuelve la longitud de la pila." -#: js/ProgramBlocks.js:578 -#.TRANS: save the heap to a file -#.TRANS: guardar pila -msgid "save heap" -msgstr "Qutupi waqaychay" +#: js/blocks/HeapBlocks.js:195 +#.TRANS: tamaño de la pila +msgid "heap length" +msgstr "qutuq sunin" -#: js/ProgramBlocks.js:629 -#.TRANS: El bloque Guardar diccionario guarda el diccionario en un archivo -msgid "The Save-dictionary block saves a dictionary to a file." -msgstr "" +#: js/blocks/HeapBlocks.js:254 +#.TRANS: El bloque Pila-vacío? devuelve verdadero si la pila está vacío. +msgid "The Heap-empty? block returns true if the heap is empty." +msgstr "El bloque Pila-vacío? devuelve verdadero si la pila está vacío." -#: js/ProgramBlocks.js:640 -#.TRANS: save a dictionary to a file -#.TRANS: guardar diccionario -msgid "save dictionary" -msgstr "" +#: js/blocks/HeapBlocks.js:268 +#.TRANS: Is the heap empty? +#.TRANS: ¿pila vacía? +msgid "heap empty?" +msgstr "Llapan qutupi mana kanchu?" -#: js/ProgramBlocks.js:720 -#.TRANS: El bloque abrir la paleta abre una paleta -msgid "The Open palette block opens a palette." -msgstr "El bloque abrir la paleta abre una paleta" +#: js/blocks/HeapBlocks.js:317 +#.TRANS: El bloque Vacío pila vacía la pila. +msgid "The Empty-heap block empties the heap." +msgstr "El bloque Vacío pila vacía la pila." -#: js/ProgramBlocks.js:727 -#.TRANS: abrir la paleta -msgid "open palette" -msgstr "llimp’ipa taqinta kichay" +#: js/blocks/HeapBlocks.js:327 +#: js/blocks/HeapBlocks.js:647 +#.TRANS: empty the heap +#.TRANS: vaciar pila +msgid "empty heap" +msgstr "ch’usaq qutu" -#: js/ProgramBlocks.js:785 -#.TRANS: El bloque eliminar bloque elimina un bloque -msgid "The Delete block block removes a block." -msgstr "El bloque eliminar bloque elimina un bloque" +#: js/blocks/HeapBlocks.js:371 +#.TRANS: El bloque Pila inversa invierte el orden de la pila. +msgid "The Reverse-heap block reverses the order of the heap." +msgstr "El bloque Pila inversa invierte el orden de la pila." -#: js/ProgramBlocks.js:797 -#.TRANS: Move this block to the trash. -#.TRANS: eliminar bloque -msgid "delete block" -msgstr "kay chiqasta chanqapuy" +#: js/blocks/HeapBlocks.js:384 +#.TRANS: reverse the order of the heap +#.TRANS: revertir la pila +msgid "reverse heap" +msgstr "Qutu tikray" -#: js/ProgramBlocks.js:861 -#.TRANS: El bloque mover bloque mueve un bloque. -msgid "The Move block block moves a block." -msgstr "El bloque mover bloque mueve un bloque." +#: js/blocks/HeapBlocks.js:428 +#.TRANS: El bloque Índice de pila devuelve un valor en la pila en una ubicación especificada. +msgid "The Index-heap block returns a value in the heap at a specified location." +msgstr "" -#: js/ProgramBlocks.js:869 -#.TRANS: Move the position of a block on the screen. -#.TRANS: mover bloque -msgid "move block" -msgstr "kay chiqasta kuyuchiy" +#: js/blocks/HeapBlocks.js:443 +#.TRANS: retrieve a value from the heap at index position in the heap +#.TRANS: valor en la pila +msgid "index heap" +msgstr "nayrïri qutu" -#: js/ProgramBlocks.js:881 -#: js/ProgramBlocks.js:1048 -#.TRANS: número de bloque -msgid "block number" -msgstr "kay chiqaspa payupaynin" +#: js/blocks/HeapBlocks.js:523 +#.TRANS: El bloque Fijar entrada de pila establece un valor en la pila en la ubicación especificada. +msgid "The Set-heap entry block sets a value in he heap at the specified location." +msgstr "" -#: js/ProgramBlocks.js:935 -#.TRANS: Run program beginning at this block. -#.TRANS: ejecutar bloque -msgid "run block" -msgstr "kay chiqasta ruray" +#: js/blocks/HeapBlocks.js:539 +#: js/blocks/ProgramBlocks.js:299 +#.TRANS: load the heap from a JSON encoding +#.TRANS: fijar pila +msgid "set heap" +msgstr "Qutu kutichiy" -#: js/ProgramBlocks.js:1025 -#.TRANS: El bloque connectar conecta dos bloques -msgid "The Dock block block connections two blocks." -msgstr "El bloque connectar conecta dos bloques" +#: js/blocks/HeapBlocks.js:619 +#.TRANS: El bloque Pop elimina el valor en la parte superior del pila. +msgid "The Pop block removes the value at the top of the heap." +msgstr "El bloque Pop elimina el valor en la parte superior del pila." -#: js/ProgramBlocks.js:1036 -#.TRANS: We can connect a block to another block. -#.TRANS: connectar block -msgid "connect blocks" -msgstr "chiqasta hap’ichiy" +#: js/blocks/HeapBlocks.js:633 +#.TRANS: pop a value off the top of the heap +#.TRANS: sacar +msgid "pop" +msgstr "hurquy" -#: js/ProgramBlocks.js:1048 -#.TRANS: bloque de destino -msgid "target block" -msgstr "mayman chiqas riq " +#: js/blocks/HeapBlocks.js:680 +#.TRANS: El bloque Push agrega un valor a la parte superior del pila. +msgid "The Push block adds a value to the top of the heap." +msgstr "El bloque Push agrega un valor a la parte superior del pila." -#: js/ProgramBlocks.js:1048 -#.TRANS: número de conexion -msgid "connection number" -msgstr "hap’ichiypa yupaynin"" +#: js/blocks/HeapBlocks.js:696 +#.TRANS: push a value onto the top of the heap +#.TRANS: apilar +msgid "push" +msgstr "tawqay" -#: js/ProgramBlocks.js:1140 -#.TRANS: El bloque crear bloque crea un bloque. -msgid "The Make block block creates a new block." -msgstr "El bloque crear bloque crea un bloque." +#: js/blocks/IntervalsBlocks.js:45 +#.TRANS: fijar temperamento +msgid "set temperament" +msgstr "q’uñipi k’askachiy" -#: js/ProgramBlocks.js:1152 -#.TRANS: Create a new block -#.TRANS: crear bloque -msgid "make block" -msgstr " chiqasta paqarichiy" +#: js/blocks/IntervalsBlocks.js:63 +#: js/blocks/MediaBlocks.js:746 +#: js/blocks/PitchBlocks.js:657 +#: js/blocks/PitchBlocks.js:935 +#: js/blocks/PitchBlocks.js:974 +#: js/blocks/PitchBlocks.js:1007 +#: js/blocks/PitchBlocks.js:1194 +#: js/blocks/PitchBlocks.js:1717 +#: js/blocks/PitchBlocks.js:1758 +#: js/blocks/PitchBlocks.js:1866 +#: js/blocks/ToneBlocks.js:1025 +#: js/turtleactions/IntervalsActions.js:114 +#.TRANS: adjusts the shift up or down by one octave (twelve half-steps in the interval between two notes, one having twice or half the frequency in Hz of the other.) +#.TRANS: octava +msgid "octave" +msgstr "pusaq pata" -#: js/ProgramBlocks.js:1186 -#: js/ProgramBlocks.js:1227 -#: js/RhythmBlocks.js:1128 -#: js/PitchBlocks.js:972 -#: js/PitchBlocks.js:1005 -#: js/temperament.js:340 -#: js/temperament.js:362 -#: js/temperament.js:372 -#: js/temperament.js:484 -#: js/status.js:190 -#: plugins/rodi.rtp:192 -#.TRANS: a musical note consisting of pitch and duration -#.TRANS: nota -msgid "note" -msgstr "kunka" +#: js/blocks/IntervalsBlocks.js:99 +#.TRANS: El bloque Nombre Temperamento se utiliza para seleccionar un método de ajuste. +msgid "The Temperament name block is used to select a tuning method." +msgstr "" -#: js/ProgramBlocks.js:1285 -#.TRANS: No se puede encontrar el bloque. -msgid "Cannot find block" -msgstr "Manam chiqas tarikunchu" +#: js/blocks/IntervalsBlocks.js:161 +#.TRANS: doble +msgid "doubly" +msgstr "iskaycha" -#: js/ProgramBlocks.js:1304 -#: js/ProgramBlocks.js:1313 -#.TRANS: Advertencia: el tipo de argumento de bloque no coincide -msgid "Warning: block argument type mismatch" +#: js/blocks/IntervalsBlocks.js:166 +#.TRANS: El bloque doble duplicará el tamaño de un intervalo. +msgid "The Doubly block will double the size of an interval." +msgstr "iskaycha t’aqata iskaychanqa sayayninta unaymanta" + +#: js/blocks/IntervalsBlocks.js:262 +#.TRANS: número de intervalo +msgid "interval number" msgstr "" -#: js/ProgramBlocks.js:1347 -#.TRANS: El bloque Abrir proyecto se utiliza para abrir un proyecto desde una página web. -msgid "The Open project block is used to open a project from a web page." +#: js/blocks/IntervalsBlocks.js:317 +#.TRANS: intervalo actua +msgid "current interval" msgstr "" -#: js/ProgramBlocks.js:1357 -#.TRANS: abierto proyecto -msgid "open project" -msgstr "rurana kichasqa" +#: js/blocks/IntervalsBlocks.js:387 +#.TRANS: measure the distance between two pitches in semi-tones +#.TRANS: medida de intervalo semitono +msgid "semi-tone interval measure" +msgstr "tupuy unaymanta kuskan kunka" -#: js/ProgramBlocks.js:1410 -#.TRANS: Por favor introduzca un URL válido. -msgid "Please enter a valid URL." -msgstr "Ama hina waliq URLta haykuchiy" +#: js/blocks/IntervalsBlocks.js:454 +#: js/blocks/IntervalsBlocks.js:570 +#.TRANS: Debe usar dos bloques de tono cuando mida un intervalo. +msgid "You must use two pitch blocks when measuring an interval." +msgstr "" -#: js/DrumBlocks.js:59 -#.TRANS: El bloque Nombre de ruido se utiliza para seleccionar un sintetizador de ruido. -msgid "The Noise name block is used to select a noise synthesizer." +#: js/blocks/IntervalsBlocks.js:496 +#.TRANS: El bloque Intervalo escalar mide la distancia entre dos notas en la clave y el modo actuales. +msgid "The Scalar interval block measures the distance between two notes in the current key and mode." msgstr "" -#: js/DrumBlocks.js:102 -#.TRANS: El bloque nombre del tambor se utiliza para seleccionar un tambor. -msgid "The Drum name block is used to select a drum." -msgstr "Tambor sayaq sutinqa, tambor akllanapaqmi" +#: js/blocks/IntervalsBlocks.js:502 +#.TRANS: measure the distance between two pitches in steps of musical scale +#.TRANS: medida de intervalo escalar +msgid "scalar interval measure" +msgstr "tupuy unaymanta siqaq" -#: js/DrumBlocks.js:146 -#.TRANS: El bloque nombre de efectos se utiliza para seleccionar un efecto de sonido. -msgid "The Effects name block is used to select a sound effect." -msgstr "El bloque nombre de efectos se utiliza para seleccionar un efecto de sonido." +#: js/blocks/IntervalsBlocks.js:678 +#.TRANS: En la figura, agregamos sol# a sol. +msgid "In the figure, we add sol# to sol." +msgstr "En la figura, agregamos sol# a sol." -#: js/DrumBlocks.js:163 -#.TRANS: ruido -msgid "noise" -msgstr "rakhaqaqaq" +#: js/blocks/IntervalsBlocks.js:684 +#: js/blocks/OrnamentBlocks.js:220 +#.TRANS: calculate a relative step between notes based on semi-tones +#.TRANS: intervalo semitono +msgid "semi-tone interval" +msgstr "intervalo semitono" -#: js/DrumBlocks.js:177 -#.TRANS: El bloque Ruido de reproducción generará ruido blanco, rosa o marrón. -msgid "The Play noise block will generate white, pink, or brown noise." +#: js/blocks/IntervalsBlocks.js:733 +#.TRANS: La salida del ejemplo es: do, mi, sol, sol, ti, mi +msgid "The output of the example is: do, mi, sol, sol, ti, mi" msgstr "" -#: js/DrumBlocks.js:191 -#: js/musicutils.js:752 -#: js/synthutils.js:47 -#.TRANS: white noise synthesizer -#.TRANS: ruido blanco -msgid "white noise" -msgstr "Yuraq rakhaqaqaq" - -#: js/DrumBlocks.js:326 -#.TRANS: Reemplace cada instancia de un tono con un sonido de tambor. -msgid "Replace every instance of a pitch with a drum sound." -msgstr "Reemplace cada instancia de un tono con un sonido de tambor." - -#: js/DrumBlocks.js:337 -#.TRANS: map a pitch to a drum sound -#.TRANS: mapa de tono al tambor -msgid "map pitch to drum" -msgstr "saywa" - -#: js/DrumBlocks.js:404 -#.TRANS: En el ejemplo anterior, se reproducirá un sonido de bombo en lugar de sol. -msgid "In the example above, a kick drum sound will be played instead of sol." +#: js/blocks/IntervalsBlocks.js:740 +#: js/blocks/WidgetBlocks.js:768 +#.TRANS: arpegio +msgid "arpeggio" msgstr "" -#: js/DrumBlocks.js:416 -#.TRANS: set the current drum sound for playback -#.TRANS: fijar tambor -msgid "set drum" -msgstr "tarula chimpuña" +#: js/blocks/IntervalsBlocks.js:931 +#.TRANS: El bloque Acordes calcula acordes comunes. +msgid "The Chord block calculates common chords." +msgstr "" -#: js/DrumBlocks.js:460 -#.TRANS: efecto de sonido -msgid "sound effect" -msgstr "t’uqyaq pantachiq" +#: js/blocks/IntervalsBlocks.js:933 +#.TRANS: En la figura generamos un acorde de C-mayor. +msgid "In the figure, we generate a C-major chord." +msgstr "" -#: js/DrumBlocks.js:498 -#.TRANS: Puede utilizar varios bloques de percusión dentro de un bloque de notas. -msgid "You can use multiple Drum blocks within a Note block." -msgstr "Sayaq uhpi atiwaqmi achka kunkakunaq takaykunanpi" +#: js/blocks/IntervalsBlocks.js:938 +#.TRANS: acorde +msgid "chord" +msgstr "tinkuq kunka" -#: js/RhythmBlocks.js:182 -#: js/RhythmBlocks.js:1086 -#: js/RhythmBlocks.js:1162 -#.TRANS: Valor de la nota debe ser mayor que 0. -msgid "Note value must be greater than 0." +#: js/blocks/IntervalsBlocks.js:990 +#.TRANS: El bloque intervalo de razón calcula un intervalo basado en una razón +msgid "The Ratio Interval block calculates an interval based on a ratio." msgstr "" -#: js/RhythmBlocks.js:215 -#: js/RhythmBlocks.js:278 -#: js/RhythmBlocks.js:350 -#.TRANS: swing is a rhythmic variation that emphasises the offbeat -#.TRANS: swing -msgid "swing" -msgstr "jiwalachi" +#: js/blocks/IntervalsBlocks.js:995 +#.TRANS: intervalo de razón +msgid "ratio interval" +msgstr "" -#: js/RhythmBlocks.js:355 -#.TRANS: the amount to shift to the offbeat note -#.TRANS: valor de swing -msgid "swing value" -msgstr "swing wakichata chanipa" +#: js/blocks/IntervalsBlocks.js:1064 +#.TRANS: En la figura, sumamos la a sol. +msgid "In the figure, we add la to sol." +msgstr "En la figura, sumamos la a sol." -#: js/RhythmBlocks.js:419 -#.TRANS: El bloque Omitir notas hará que las notas se omitan. -msgid "The Skip notes block will cause notes to be skipped." -msgstr "El bloque Omitir notas hará que las notas se omitan." +#: js/blocks/IntervalsBlocks.js:1120 +#.TRANS: define a custom mode +#.TRANS: definir el modo +msgid "define mode" +msgstr "definir el modo" -#: js/RhythmBlocks.js:427 -#.TRANS: substitute rests on notes being skipped -#.TRANS: saltar notas -msgid "skip notes" -msgstr "kunkakuna p’itay" +#: js/blocks/IntervalsBlocks.js:1173 +#.TRANS: movible Do +msgid "movable Do" +msgstr "movible Do" -#: js/RhythmBlocks.js:489 -#.TRANS: speed up note duration by some factor, e.g. convert 1/4 to 1/8 notes by using a factor of 2 -#.TRANS: ritmo multiplican -msgid "multiply note value" -msgstr "Muyuq miracchiq" +#: js/blocks/IntervalsBlocks.js:1224 +#.TRANS: mode length is the number of notes in the mode, e.g., 7 for major and minor scales; 12 for chromatic scales +#.TRANS: longitud de modo +msgid "mode length" +msgstr "Hina kay sunin" -#: js/RhythmBlocks.js:542 -#.TRANS: El bloque Atar funciona en pares de notas, combinándolas en una sola nota. -msgid "The Tie block works on pairs of notes, combining them into one note." +#: js/blocks/IntervalsBlocks.js:1233 +#.TRANS: El bloque Longitud de modo es el número de notas en la escala actual. +msgid "The Mode length block is the number of notes in the current scale." msgstr "" -#: js/RhythmBlocks.js:550 -#.TRANS: tie notes together into one longer note -#.TRANS: atar -msgid "tie" -msgstr "Watay" - -#: js/RhythmBlocks.js:591 -#: js/RhythmBlocks.js:671 -#.TRANS: a dotted note is played for 1.5x its value, e.g., 1/8. --> 3/16 -#.TRANS: punto -msgid "dot" -msgstr "Ch’iku)" +#: js/blocks/IntervalsBlocks.js:1235 +#.TRANS: La mayoría de las escalas occidentales tienen 7 notas. +msgid "Most Western scales have 7 notes." +msgstr "La mayoría de las escalas occidentales tienen 7 notas." -#: js/RhythmBlocks.js:619 -#: js/RhythmActions.js:221 -#.TRANS: Un argumento de -1 da como resultado un valor de nota de 0. -msgid "An argument of -1 results in a note value of 0." -msgstr "" +#: js/blocks/IntervalsBlocks.js:1284 +#.TRANS: the mode in music is 'major', 'minor', etc. +#.TRANS: modo actual +msgid "current mode" +msgstr "Chaynalla kunka" -#: js/RhythmBlocks.js:661 -#.TRANS: El bloque Punto extiende la duración de una nota en un 50%. -msgid "The Dot block extends the duration of a note by 50%." -msgstr "El bloque Punto extiende la duración de una nota en un 50%." +#: js/blocks/IntervalsBlocks.js:1337 +#.TRANS: the key is a group of pitches with which a music composition is created +#.TRANS: clave actual +msgid "current key" +msgstr "kunan kichaq" -#: js/RhythmBlocks.js:663 -#.TRANS: Por ejemplo, una nota de un cuarto de puntos se reproducirá a 3/8 (1/4 + 1/8) de un tiempo. -msgid "Eg a dotted quarter note will play for 3/8 (1/4 + 1/8) of a beat." -msgstr "" +#: js/blocks/IntervalsBlocks.js:1389 +#: js/blocks/IntervalsBlocks.js:1434 +#.TRANS: set the key and mode, e.g. C Major +#.TRANS: fijar clave +msgid "set key" +msgstr "imañanaka wakichata limt'aña" -#: js/RhythmBlocks.js:765 -#.TRANS: Japanese only: note value block for drum -#.TRANS: Valor de nota tambor -msgid "note value drum" -msgstr "Valor de nota tambor" +#: js/blocks/IntervalsBlocks.js:1443 +#: js/blocks/IntervalsBlocks.js:1449 +#.TRANS: El bloque Fijar tecla se usa para configurar la tecla y el modo, +msgid "The Set key block is used to set the key and mode," +msgstr "El bloque Fijar tecla se usa para configurar la tecla y el modo," -#: js/RhythmBlocks.js:829 -#.TRANS: 392 hertz -msgid "392 hertz" -msgstr "329 kaparina" +#: js/blocks/IntervalsBlocks.js:1449 +#.TRANS: por ejemplo, C Mayor +msgid "eg C Major" +msgstr "C kuraq" -#: js/RhythmBlocks.js:1119 -#.TRANS: El bloque Nota es un contenedor para uno o más bloques de tono. -msgid "The Note block is a container for one or more Pitch blocks." -msgstr "" +#: js/blocks/MediaBlocks.js:35 +#.TRANS: right side of the screen +#.TRANS: derecha +msgid "right (screen)" +msgstr "pantallapa pañanpi" -#: js/RhythmBlocks.js:1121 -#.TRANS: El bloque Notas especifica la duración (valor de la nota) de su contenido. -msgid "The Note block specifies the duration (note value) of its contents." +#: js/blocks/MediaBlocks.js:45 +#: js/blocks/MediaBlocks.js:56 +#.TRANS: El bloque Derecha devuelve la posición de la derecha del lienzo. +msgid "The Right block returns the position of the right of the canvas." msgstr "" -#: js/RhythmBlocks.js:1130 -#.TRANS: valor -msgid "value2" -msgstr "valor" +#: js/blocks/MediaBlocks.js:97 +#.TRANS: left side of the screen +#.TRANS: izquierdo +msgid "left (screen)" +msgstr "pantallapa lluq’ínpi" -#: js/RhythmBlocks.js:1200 -#.TRANS: definir frecuencia -msgid "define frequency" -msgstr "definir frecuencia" +#: js/blocks/MediaBlocks.js:107 +#: js/blocks/MediaBlocks.js:118 +#.TRANS: El bloque Izquierdo devuelve la posición de la izquierda del lienzo. +msgid "The Left block returns the position of the left of the canvas." +msgstr "" -#: js/RhythmBlocks.js:1218 -#: js/temperament.js:650 -#: js/temperament.js:1421 -#.TRANS: espacio de octava -msgid "octave space" -msgstr "pusaqpa pachan" +#: js/blocks/MediaBlocks.js:158 +#.TRANS: superior +msgid "top (screen)" +msgstr "hanan" -#: js/NumberBlocks.js:28 -#.TRANS: El bloque Int devuelve un entero. -msgid "The Int block returns an integer." -msgstr "El bloque Int devuelve un entero." +#: js/blocks/MediaBlocks.js:168 +#: js/blocks/MediaBlocks.js:179 +#.TRANS: El bloque superior devuelve la posición de la parte superior del lienzo. +msgid "The Top block returns the position of the top of the canvas." +msgstr "" -#: js/NumberBlocks.js:34 -#.TRANS: int -msgid "int" -msgstr "int chimpu" +#: js/blocks/MediaBlocks.js:219 +#.TRANS: inferior +msgid "bottom (screen)" +msgstr "uran" -#: js/NumberBlocks.js:73 -#.TRANS: El bloque Mod devuelve el resto de una división. -msgid "The Mod block returns the remainder from a division." -msgstr "El bloque Mod devuelve el resto de una división." +#: js/blocks/MediaBlocks.js:229 +#: js/blocks/MediaBlocks.js:240 +#.TRANS: El bloque Inferior devuelve la posición de la parte inferior del lienzo. +msgid "The Bottom block returns the position of the bottom of the canvas." +msgstr "" -#: js/NumberBlocks.js:79 -#.TRANS: módulo -msgid "mod" -msgstr "kunka tupachiy" +#: js/blocks/MediaBlocks.js:282 +#.TRANS: anchura +msgid "width" +msgstr "chutariynin" -#: js/NumberBlocks.js:123 -#.TRANS: El bloque de potencia calcula una función de potencia. -msgid "The Power block calculates a power function." -msgstr "El bloque de potencia calcula una función de potencia." +#: js/blocks/MediaBlocks.js:291 +#.TRANS: El bloque ancho devuelve el ancho del lienzo. +msgid "The Width block returns the width of the canvas." +msgstr "chutariynin chiqasqa qillqana llikapa chutariyninta kutichin" -#: js/NumberBlocks.js:178 -#.TRANS: El bloque Sqrt devuelve la raíz cuadrada. -msgid "The Sqrt block returns the square root." -msgstr "El bloque Sqrt devuelve la raíz cuadrada." +#: js/blocks/MediaBlocks.js:325 +#.TRANS: altura +msgid "height" +msgstr "sayaynin" -#: js/NumberBlocks.js:184 -#.TRANS: raíz -msgid "sqrt" -msgstr "saphi" +#: js/blocks/MediaBlocks.js:334 +#.TRANS: El bloque altura devuelve la altura del lienzo. +msgid "The Height block returns the height of the canvas." +msgstr "sayaynin chiqasqa qillqana llikapa sayayninta kutichin" -#: js/NumberBlocks.js:230 -#.TRANS: El bloque Abs devuelve el valor absoluto. -msgid "The Abs block returns the absolute value." -msgstr "El bloque Abs devuelve el valor absoluto." +#: js/blocks/MediaBlocks.js:369 +#.TRANS: stops playback of an audio recording +#.TRANS: detener +msgid "stop play" +msgstr "sayachiy" -#: js/NumberBlocks.js:236 -#.TRANS: abs -msgid "abs" -msgstr "abs chimpu" +#: js/blocks/MediaBlocks.js:404 +#.TRANS: Erases the images and text +#.TRANS: borrar medios +msgid "erase media" +msgstr "" -#: js/NumberBlocks.js:277 -#.TRANS: El bloque Distancia devuelve la distancia entre dos puntos. Por ejemplo, entre el ratón y el centro de la pantalla. -msgid "The Distance block returns the distance between two points. For example, between the mouse and the center of the screen." +#: js/blocks/MediaBlocks.js:409 +#.TRANS: El bloque Erase Media borra texto e imágenes. +msgid "The Erase Media block erases text and images." msgstr "" -#: js/NumberBlocks.js:283 -#: plugins/rodi.rtp:310 -#.TRANS: distancia -msgid "distance" -msgstr "karukay" +#: js/blocks/MediaBlocks.js:439 +#.TRANS: play an audio recording +#.TRANS: reproducir +msgid "play back" +msgstr "puririchiy" -#: js/NumberBlocks.js:343 -#.TRANS: El bloque División se usa para dividir. -msgid "The Divide block is used to divide." -msgstr "rakiy t’aqaqa rakinapaq apaykachakun" +#: js/blocks/MediaBlocks.js:487 +#.TRANS: hablar +msgid "speak" +msgstr "rimay" -#: js/NumberBlocks.js:411 -#.TRANS: El bloque Multiplicar se usa para multiplicar. -msgid "The Multiply block is used to multiply." -msgstr "Mirachiy t’aqaqa mirachinapaq apaykachay" +#: js/blocks/MediaBlocks.js:495 +#.TRANS: El bloque Habla emite al sintetizador de texto a voz. +msgid "The Speak block outputs to the text-to-speech synthesizer" +msgstr "Rimay chiqasqa kunkawan rimasqa pisiyachisqanmanta riman " -#: js/NumberBlocks.js:554 -#.TRANS: El bloque Minus se usa para restar. -msgid "The Minus block is used to subtract." -msgstr "Qichuy/minus t’aqaqa qichunapaq apaykachakun" +#: js/blocks/MediaBlocks.js:546 +#.TRANS: +msgid "camera" +msgstr "" -#: js/NumberBlocks.js:647 -#.TRANS: El bloque Plus se utiliza para agregar. -msgid "The Plus block is used to add." -msgstr "Plus t’aqaqa yapanapaq apaykachakun" +#: js/blocks/MediaBlocks.js:551 +#.TRANS: El bloque cámara conecta una cámara web al bloque mostrar. +msgid "The Camera block connects a webcam to the Show block." +msgstr "Cámarata webman hap’ichiy" -#: js/NumberBlocks.js:773 -#.TRANS: El bloque Uno de estos devuelve una de dos opciones. -msgid "The One-of block returns one of two choices." -msgstr "El bloque Uno de estos devuelve una de dos opciones." +#: js/blocks/MediaBlocks.js:574 +#.TRANS: +msgid "video" +msgstr "" -#: js/NumberBlocks.js:780 -#: js/PitchBlocks.js:616 -#.TRANS: uno de estos -msgid "one of" -msgstr "huk kaykunamanta" +#: js/blocks/MediaBlocks.js:579 +#.TRANS: El bloque video selecciona video para al bloque mostrar. +msgid "The Video block selects video for use with the Show block." +msgstr "El bloque video selecciona video para al bloque mostrar." -#: js/NumberBlocks.js:782 -#.TRANS: éste -msgid "this" -msgstr "kay" +#: js/blocks/MediaBlocks.js:607 +#.TRANS: El bloque Abrir archivo abre un archivo para usar con el bloque Mostrar. +msgid "The Open file block opens a file for use with the Show block." +msgstr "" -#: js/NumberBlocks.js:782 -#.TRANS: ése -msgid "that" -msgstr "chay" +#: js/blocks/MediaBlocks.js:645 +#.TRANS: detener medios +msgid "stop media" +msgstr "ruranakunata sayachiy" -#: js/NumberBlocks.js:837 -#.TRANS: El bloque Aleatorio devuelve un número aleatorio. -msgid "The Random block returns a random number." -msgstr "El bloque Aleatorio devuelve un número aleatorio." +#: js/blocks/MediaBlocks.js:650 +#.TRANS: El bloque detener medios detiene la reproducción de audio o video. +msgid "The Stop media block stops audio or video playback." +msgstr "El bloque detener medios detiene la reproducción de audio o video." -#: js/NumberBlocks.js:844 -#.TRANS: aleatorio -msgid "random" -msgstr "chaqrusqa" +#: js/blocks/MediaBlocks.js:679 +#: js/blocks/PitchBlocks.js:1577 +#: js/widgets/musickeyboard.js:1936 +#: js/widgets/phrasemaker.js:1037 +#.TRANS: a measure of frequency: one cycle per second +#.TRANS: hertz +msgid "hertz" +msgstr "hertz" -#: js/NumberBlocks.js:846 -#.TRANS: min -msgid "min" -msgstr "pisi" +#: js/blocks/MediaBlocks.js:692 +#: js/blocks/WidgetBlocks.js:182 +#: js/widgets/temperament.js:506 +#: js/widgets/temperament.js:546 +#: js/widgets/temperament.js:610 +#: js/widgets/temperament.js:618 +#: js/widgets/temperament.js:1505 +#: js/widgets/timbre.js:1842 +#.TRANS: frecuencia +msgid "frequency" +msgstr "Kutipayaq" -#: js/NumberBlocks.js:846 -#.TRANS: max -msgid "max" -msgstr "achkha" +#: js/blocks/MediaBlocks.js:692 +#.TRANS: duración (ms) +msgid "duration (ms)" +msgstr "kawsapakuy" -#: js/NumberBlocks.js:910 -#.TRANS: El bloque Numérico contiene un número. -msgid "The Number block holds a number." -msgstr "Yupay t’aqaqa huk yupayniyuq" +#: js/blocks/MediaBlocks.js:728 +#.TRANS: translate a note into hertz, e.g., A4 -> 440HZ +#.TRANS: nota a frecuencia +msgid "note to frequency" +msgstr "kuti kuti ruranaman huch’uy willakuy" -#: js/BoxesBlocks.js:53 -#: js/BoxesBlocks.js:59 -#.TRANS: El bloque Agregar a se usa para agregar al valor almacenado en un cuadro. -msgid "The Add-to block is used to add to the value stored in a box." +#: js/blocks/MediaBlocks.js:736 +#.TRANS: El bloque A frecuencia convierte un nombre de tono y una octava a Hertz. +msgid "The To frequency block converts a pitch name and octave to Hertz." msgstr "" -#: js/BoxesBlocks.js:61 -#.TRANS: También se puede utilizar con otros bloques, como el color, el tamaño de la pluma. -msgid "It can also be used with other blocks such as Color and Pen size." +#: js/blocks/MediaBlocks.js:746 +#: js/blocks/PitchBlocks.js:656 +#: js/blocks/PitchBlocks.js:934 +#: js/blocks/PitchBlocks.js:1866 +#.TRANS: name2 is name as in name of pitch (JAPANESE ONLY) +#.TRANS: nombre +msgid "name2" +msgstr "suti" + +#: js/blocks/MediaBlocks.js:812 +#.TRANS: El bloque Avatar se usa para cambiar la apariencia del ratón. +msgid "The Avatar block is used to change the appearance of the mouse." msgstr "" -#: js/BoxesBlocks.js:73 -#.TRANS: sumar -msgid "add" -msgstr "yapay" +#: js/blocks/MediaBlocks.js:819 +#.TRANS: El bloque Avatar se usa para cambiar la apariencia de la tortuga. +msgid "The Avatar block is used to change the appearance of the turtle." +msgstr "" -#: js/BoxesBlocks.js:75 -#: js/temperament.js:716 -#.TRANS: para -msgid "to" +#: js/blocks/MediaBlocks.js:831 +#: js/blocks/MediaBlocks.js:891 +#.TRANS: a media object +#.TRANS: tamaño +msgid "size" msgstr "sayay" -#: js/BoxesBlocks.js:75 -#: js/BoxesBlocks.js:595 -#: js/HeapBlocks.js:544 -#.TRANS: valor -msgid "value1" -msgstr "chanin" +#: js/blocks/MediaBlocks.js:831 +#.TRANS: imagen +msgid "image" +msgstr "rikch’aynin" -#: js/BoxesBlocks.js:118 -#.TRANS: Bloque no soporta incremento. -msgid "Block does not support incrementing." +#: js/blocks/MediaBlocks.js:880 +#.TRANS: El bloque Mostrar se utiliza para mostrar texto o imágenes en el lienzo. +msgid "The Show block is used to display text or images on the canvas." msgstr "" -#: js/BoxesBlocks.js:152 -#.TRANS: El bloque Sumar-1-a agrega uno al valor almacenado en un cuadro. -msgid "The Add-1-to block adds one to the value stored in a box." -msgstr "Yapay-1 t’aqa hukta tawa k’uchu wayqaychasqaman yapan" - -#: js/BoxesBlocks.js:163 -#.TRANS: sumar 1 a -msgid "add 1 to" -msgstr "1 yapay" "hukta yapay" +#: js/blocks/MediaBlocks.js:888 +#.TRANS: show1 is show as in display an image or text on the screen. +#.TRANS: mostrar +msgid "show1" +msgstr "qhawachiy" -#: js/BoxesBlocks.js:211 -#.TRANS: El bloque restar-1-de resta uno al valor almacenado en un cuadro. -msgid "The Subtract-1-from block subtracts one from the value stored in a box." -msgstr "El bloque restar-1-de resta uno al valor almacenado en un cuadro." +#: js/blocks/MediaBlocks.js:891 +#.TRANS: objeto +msgid "obj" +msgstr "ima" -#: js/BoxesBlocks.js:222 -#.TRANS: restar 1 de -msgid "subtract 1 from" -msgstr "1 qichuy" "hukta qichuy" +#: js/blocks/MediaBlocks.js:938 +#.TRANS: El bloque Medios se utiliza para importar una imagen. +msgid "The Media block is used to import an image." +msgstr "Kaqkuna chiqastaqa llimp’ita apamunapaq hap’ikun" -#: js/BoxesBlocks.js:270 -#: js/BoxesBlocks.js:387 -#.TRANS: El bloque Caja devuelve el valor almacenado en una caja . -msgid "The Box block returns the value stored in a box." -msgstr "El bloque Caja devuelve el valor almacenado en una caja ." +#: js/blocks/MediaBlocks.js:973 +#.TRANS: El bloque Texto contiene una cadena de texto. +msgid "The Text block holds a text string." +msgstr "Qillqa t’aqaqa watuchasqa qillqakuna kaqniyuqmi" -#: js/BoxesBlocks.js:500 -#: js/BoxesBlocks.js:576 -#.TRANS: El bloque Guardar en caja se utiliza para almacenar un valor en una caja. -msgid "The Store in block will store a value in a box." -msgstr "El bloque Guardar en caja se utiliza para almacenar un valor en una caja." +#: js/blocks/MeterBlocks.js:34 +#.TRANS: musical meter (time signature), e.g., 4:4 +#.TRANS: meter actuale +msgid "current meter" +msgstr "actualita haykuchiy" -#: js/BoxesBlocks.js:652 -#.TRANS: El bloque Caja 2 devuelve el valor almacenado en caja 2. -msgid "The Box2 block returns the value stored in Box2." -msgstr "El bloque Caja 2 devuelve el valor almacenado en caja 2." +#: js/blocks/MeterBlocks.js:85 +#.TRANS: number of beats per minute +#.TRANS: factor de ritmo +msgid "beat factor" +msgstr "p’ullpuqiy" -#: js/BoxesBlocks.js:703 -#.TRANS: El bloque Guardar en caja2 se utiliza para almacenar un valor en caja2. -msgid "The Store in Box2 block is used to store a value in Box2." +#: js/blocks/MeterBlocks.js:161 +#.TRANS: El bloque de latidos por minuto devuelve los latidos actuales por minuto. +msgid "The Beats per minute block returns the current beats per minute." msgstr "" -#: js/BoxesBlocks.js:715 -#.TRANS: guardar en caja 2 -msgid "store in box2" -msgstr "guardar en caja 2" +#: js/blocks/MeterBlocks.js:169 +#: js/widgets/status.js:152 +#.TRANS: number of beats played per minute +#.TRANS: pulsaciones por minuto +msgid "beats per minute2" +msgstr "minutupi p’ullpuqiy" -#: js/BoxesBlocks.js:761 -#.TRANS: El bloque Caja 1 devuelve el valor almacenado en caja 1. -msgid "The Box1 block returns the value stored in Box1." -msgstr "El bloque Caja 1 devuelve el valor almacenado en caja 1." +#: js/blocks/MeterBlocks.js:169 +#: js/blocks/MeterBlocks.js:1056 +#: js/blocks/MeterBlocks.js:1133 +#: js/blocks/MeterBlocks.js:1211 +#.TRANS: sets tempo by defining a beat and beats per minute +#.TRANS: pulsaciones por minuto +msgid "beats per minute" +msgstr "minutupi p’ullpuqiy" -#: js/BoxesBlocks.js:812 -#.TRANS: El bloque Guardar en caja1 se utiliza para almacenar un valor en caja1. -msgid "The Store in Box1 block is used to store a value in Box1." -msgstr "" +#: js/blocks/MeterBlocks.js:233 +#.TRANS: count of current musical measure in meter +#.TRANS: cuenta de medidas +msgid "measure count" +msgstr "tupusqakunapa yupaynin" -#: js/BoxesBlocks.js:826 -#.TRANS: guardar en caja 1 -msgid "store in box1" -msgstr "guardar en caja 1" +#: js/blocks/MeterBlocks.js:241 +#.TRANS: El bloque de conteo de medidas devuelve la medida actual. +msgid "The Measure count block returns the current measure." +msgstr "tupunakuna yupay chiqasqa kunan tupunata kutichipun" -#: js/HeapBlocks.js:49 -#.TRANS: El bloque Pila devuelve la pila. -msgid "The Heap block returns the heap." +#: js/blocks/MeterBlocks.js:290 +#.TRANS: count of current beat in the meter +#.TRANS: cuenta de latidos +msgid "beat count" +msgstr "p’ullpuqiyta yupay" + +#: js/blocks/MeterBlocks.js:300 +#: js/blocks/MeterBlocks.js:311 +#: js/blocks/MeterBlocks.js:565 +#: js/blocks/MeterBlocks.js:576 +#.TRANS: El bloque Conteo de tiempos es el número del tiempo actual, +msgid "The Beat count block is the number of the current beat," msgstr "" -#: js/HeapBlocks.js:133 -#.TRANS: mostrar pila -msgid "show heap" -msgstr "qutu rikuchiy" +#: js/blocks/MeterBlocks.js:313 +#: js/blocks/MeterBlocks.js:578 +#.TRANS: por ejemplo, 1, 2, 3, o 4. +msgid "eg 1, 2, 3, or 4." +msgstr "kanman huk, iskay, kimsa, kallanmantaq tawa" -#: js/HeapBlocks.js:181 -#.TRANS: El bloque Longitud de la pila devuelve la longitud de la pila. -msgid "The Heap-length block returns the length of the heap." -msgstr "El bloque Longitud de la pila devuelve la longitud de la pila." +#: js/blocks/MeterBlocks.js:368 +#.TRANS: count the number of notes +#.TRANS: cuenta las notas +msgid "sum note values" +msgstr "nota yupay" -#: js/HeapBlocks.js:195 -#.TRANS: tamaño de la pila -msgid "heap length" -msgstr "qutuq sunin" +#: js/blocks/MeterBlocks.js:376 +#: js/blocks/MeterBlocks.js:440 +#.TRANS: El bloque Contador de notas se puede usar para contar el número de notas contenidas. +msgid "The Note counter block can be used to count the number of contained notes." +msgstr "" -#: js/HeapBlocks.js:254 -#.TRANS: El bloque Pila-vacío? devuelve verdadero si la pila está vacío. -msgid "The Heap-empty? block returns true if the heap is empty." -msgstr "El bloque Pila-vacío? devuelve verdadero si la pila está vacío." +#: js/blocks/MeterBlocks.js:432 +#.TRANS: count the number of notes +#.TRANS: cuenta las notas +msgid "note counter" +msgstr "" -#: js/HeapBlocks.js:268 -#.TRANS: Is the heap empty? -#.TRANS: ¿pila vacía? -msgid "heap empty?" -msgstr "Llapan qutupi mana kanchu?" +#: js/blocks/MeterBlocks.js:496 +#.TRANS: number of whole notes that have been played +#.TRANS: notas completa jugadas +msgid "whole notes played" +msgstr "hunt’asqa nota pukllasqakuna" -#: js/HeapBlocks.js:317 -#.TRANS: El bloque Vacío pila vacía la pila. -msgid "The Empty-heap block empties the heap." -msgstr "El bloque Vacío pila vacía la pila." +#: js/blocks/MeterBlocks.js:505 +#.TRANS: El bloque Nota completa reproducidas devuelve el número total de notas completas reproducidas. +msgid "The Whole notes played block returns the total number of whole notes played." +msgstr "" -#: js/HeapBlocks.js:327 -#: js/HeapBlocks.js:647 -#.TRANS: empty the heap -#.TRANS: vaciar pila -msgid "empty heap" -msgstr "ch’usaq qutu" +#: js/blocks/MeterBlocks.js:555 +#: js/turtleactions/DictActions.js:83 +#.TRANS: number of notes that have been played +#.TRANS: notas jugadas +msgid "notes played" +msgstr "notakuna pukllasqakuna" -#: js/HeapBlocks.js:371 -#.TRANS: El bloque Pila inversa invierte el orden de la pila. -msgid "The Reverse-heap block reverses the order of the heap." -msgstr "El bloque Pila inversa invierte el orden de la pila." +#: js/blocks/MeterBlocks.js:653 +#.TRANS: El bloque Sin reloj desacopla las notas del reloj maestro. +msgid "The No clock block decouples the notes from the master clock." +msgstr "" -#: js/HeapBlocks.js:384 -#.TRANS: reverse the order of the heap -#.TRANS: revertir la pila -msgid "reverse heap" -msgstr "Qutu tikray" +#: js/blocks/MeterBlocks.js:661 +#.TRANS: don't lock notes to master clock +#.TRANS: sin reloj +msgid "no clock" +msgstr "mana intiwatanayuq" -#: js/HeapBlocks.js:428 -#.TRANS: El bloque Índice de pila devuelve un valor en la pila en una ubicación especificada. -msgid "The Index-heap block returns a value in the heap at a specified location." +#: js/blocks/MeterBlocks.js:700 +#.TRANS: en latido débil hacer +msgid "on weak beat do" +msgstr "mana kallpayuq p’ullpuqiypi rurana" + +#: js/blocks/MeterBlocks.js:705 +#.TRANS: El bloque En-latido-débil-hacer te permite especificar acciones a realizar en latido débiles. +msgid "The On-weak-beat block lets you specify actions to take on weak (off) beats." msgstr "" -#: js/HeapBlocks.js:443 -#.TRANS: retrieve a value from the heap at index position in the heap -#.TRANS: valor en la pila -msgid "index heap" -msgstr "nayrïri qutu" +#: js/blocks/MeterBlocks.js:750 +#.TRANS: en latido fuerte hacer +msgid "on strong beat" +msgstr "kallpayuq p’ullpuqiypi rurana" -#: js/HeapBlocks.js:523 -#.TRANS: El bloque Fijar entrada de pila establece un valor en la pila en la ubicación especificada. -msgid "The Set-heap entry block sets a value in he heap at the specified location." +#: js/blocks/MeterBlocks.js:758 +#.TRANS: El bloque En-latido-fuerte-hacer le permite especificar acciones a realizar en latido específicos. +msgid "The On-strong-beat block lets you specify actions to take on specified beats." msgstr "" -#: js/HeapBlocks.js:619 -#.TRANS: El bloque Pop elimina el valor en la parte superior del pila. -msgid "The Pop block removes the value at the top of the heap." -msgstr "El bloque Pop elimina el valor en la parte superior del pila." +#: js/blocks/MeterBlocks.js:769 +#.TRANS: latidos +msgid "beat" +msgstr "p’ullpuqiy" -#: js/HeapBlocks.js:633 -#.TRANS: pop a value off the top of the heap -#.TRANS: sacar -msgid "pop" -msgstr "hurquy" +#: js/blocks/MeterBlocks.js:813 +#.TRANS: en cado latodo hacer +msgid "on every beat do" +msgstr "en cada latodo hacer" -#: js/HeapBlocks.js:680 -#.TRANS: El bloque Push agrega un valor a la parte superior del pila. -msgid "The Push block adds a value to the top of the heap." -msgstr "El bloque Push agrega un valor a la parte superior del pila." +#: js/blocks/MeterBlocks.js:821 +#.TRANS: El bloque En-cado-latido-hacer le permite especificar acciones a realizar en cado latado. +msgid "The On-every-beat block lets you specify actions to take on every beat." +msgstr "" -#: js/HeapBlocks.js:696 -#.TRANS: push a value onto the top of the heap -#.TRANS: apilar -msgid "push" -msgstr "tawqay" +#: js/blocks/MeterBlocks.js:874 +#.TRANS: en cada nota hacer +msgid "on every note do" +msgstr "en cada nota hacer" -#: js/FlowBlocks.js:41 -#.TRANS: El bloque Atrás ejecuta el código en orden inverso (retrógrado en la música). -msgid "The Backward block runs code in reverse order (Musical retrograde)." +#: js/blocks/MeterBlocks.js:882 +#.TRANS: El bloque En-cada-nota-hacer le permite especificar acciones a realizar en cada nota. +msgid "The On-every-note block lets you specify actions to take on every note." msgstr "" -#: js/FlowBlocks.js:48 -#.TRANS: hacia atrás -msgid "backward" -msgstr "Qhipaman" +#: js/blocks/MeterBlocks.js:928 +#: js/blocks/MeterBlocks.js:999 +#.TRANS: sets tempo by defining a beat and beats per minute +#.TRANS: latidos por minuto de dominar +msgid "master beats per minute" +msgstr "minutupi p’ullpuqiy hap’iy" -#: js/FlowBlocks.js:124 -#.TRANS: El bloque Duplicado ejecutará cada bloque varias veces. -msgid "The Duplicate block will run each block multiple times." -msgstr "Iskay kikinyachiq sayaq, ruranqa sapanka sayaqta achka kutita" +#: js/blocks/MeterBlocks.js:952 +#: js/blocks/MeterBlocks.js:1078 +#: js/blocks/MeterBlocks.js:1135 +#.TRANS: lpm +msgid "bpm" +msgstr "bmp" -#: js/FlowBlocks.js:136 -#.TRANS: duplicar -msgid "duplicate" -msgstr "iskay kikiyachiy" +#: js/blocks/MeterBlocks.js:952 +#: js/blocks/MeterBlocks.js:1078 +#: js/blocks/MeterBlocks.js:1135 +#.TRANS: valor de latidos +msgid "beat value" +msgstr "p’ullpuqiypa kaqnin" -#: js/FlowBlocks.js:334 -#.TRANS: El bloque predeterminado se usa dentro de un bloque de switch para definir la acción predeterminada. -msgid "The Default block is used inside of a Switch to define the default action." +#: js/blocks/MeterBlocks.js:1024 +#: js/blocks/MeterBlocks.js:1167 +#: js/blocks/MeterBlocks.js:1241 +#.TRANS: Latidos por minuto debe ser > 30. +msgid "Beats per minute must be > 30." +msgstr "minutupi p’ullpuqiyniqa 30 kurakmi kanan" + +#: js/blocks/MeterBlocks.js:1027 +#: js/blocks/MeterBlocks.js:1170 +#: js/blocks/MeterBlocks.js:1244 +#.TRANS: Los latidos por minuto como máximo es de 1000. +msgid "Maximum beats per minute is 1000." +msgstr " minutupi p’ullpuqiyniqa may tukupunankamaqa waranqan (1000) kanan" + +#: js/blocks/MeterBlocks.js:1068 +#.TRANS: El bloque Pulsaciones por minuto establece el número de 1/4 notas por minuto. +msgid "The Beats per minute block sets the number of 1/4 notes per minute." msgstr "" -#: js/FlowBlocks.js:342 -#.TRANS: el caso de forma predeterminada -msgid "default" -msgstr "Chhaynapaq rurasqa" +#: js/blocks/MeterBlocks.js:1279 +#.TRANS: anacrusis +#.TRANS: +msgid "pickup" +msgstr "pallay" -#: js/FlowBlocks.js:361 -#: js/FlowBlocks.js:418 -#.TRANS: El bloque Caso debe utilizarse dentro de un bloque de switch. -msgid "The Case Block must be used inside of a Switch Block." -msgstr "El bloque Caso debe utilizarse dentro de un bloque de switch." +#: js/blocks/MeterBlocks.js:1367 +#.TRANS: número de latidos +msgid "number of beats" +msgstr "p’ullpuqiypa yupanan" -#: js/FlowBlocks.js:389 -#.TRANS: El bloque Caso se utiliza dentro de un interruptor para definir coincidencias. -msgid "The Case block is used inside of a Switch to define matches." -msgstr "" +#: js/blocks/NumberBlocks.js:28 +#.TRANS: El bloque Int devuelve un entero. +msgid "The Int block returns an integer." +msgstr "El bloque Int devuelve un entero." -#: js/FlowBlocks.js:397 -#.TRANS: caso -msgid "case" -msgstr "uka chimpu" +#: js/blocks/NumberBlocks.js:34 +#.TRANS: int +msgid "int" +msgstr "int chimpu" -#: js/FlowBlocks.js:446 -#.TRANS: El bloque Switch ejecutará el código en el caso correspondiente. -msgid "The Switch block will run the code in the matching Case." -msgstr "El bloque Switch ejecutará el código en el caso correspondiente." +#: js/blocks/NumberBlocks.js:73 +#.TRANS: El bloque Mod devuelve el resto de una división. +msgid "The Mod block returns the remainder from a division." +msgstr "El bloque Mod devuelve el resto de una división." -#: js/FlowBlocks.js:454 -#.TRANS: switch -msgid "switch" -msgstr "tinkuchiy" +#: js/blocks/NumberBlocks.js:79 +#.TRANS: módulo +msgid "mod" +msgstr "kunka tupachiy" -#: js/FlowBlocks.js:595 -#.TRANS: El bloque Parar detendrá un bucle. -msgid "The Stop block will stop a loop" -msgstr "El bloque Parar detendrá un bucle." +#: js/blocks/NumberBlocks.js:141 +#.TRANS: El bloque de potencia calcula una función de potencia. +msgid "The Power block calculates a power function." +msgstr "El bloque de potencia calcula una función de potencia." -#: js/FlowBlocks.js:597 -#.TRANS: Por siempre, Repetir, Mientras o Hasta. -msgid "Forever, Repeat, While, or Until." -msgstr "Por siempre, Repetir, Mientras o Hasta." +#: js/blocks/NumberBlocks.js:196 +#.TRANS: El bloque Sqrt devuelve la raíz cuadrada. +msgid "The Sqrt block returns the square root." +msgstr "El bloque Sqrt devuelve la raíz cuadrada." -#: js/FlowBlocks.js:604 -#: js/phrasemaker.js:3799 -#: js/musickeyboard.js:629 -#: js/musickeyboard.js:631 -#: js/timbre.js:417 -#: js/timbre.js:419 -#: plugins/rodi.rtp:29 -#: plugins/rodi.rtp:73 -#: plugins/rodi.rtp:413 -#.TRANS: detener -msgid "stop" -msgstr "sayachiy" +#: js/blocks/NumberBlocks.js:202 +#.TRANS: raíz +msgid "sqrt" +msgstr "saphi" -#: js/FlowBlocks.js:653 -#.TRANS: El bloque Esperar esperará hasta que la condición sea verdadera. -msgid "The Waitfor block will wait until the condition is true." -msgstr "El bloque Esperar esperará hasta que la condición sea verdadera." +#: js/blocks/NumberBlocks.js:248 +#.TRANS: El bloque Abs devuelve el valor absoluto. +msgid "The Abs block returns the absolute value." +msgstr "El bloque Abs devuelve el valor absoluto." -#: js/FlowBlocks.js:661 -#.TRANS: esperar hasta -msgid "wait for" -msgstr "ukakama suyt’aña" +#: js/blocks/NumberBlocks.js:254 +#.TRANS: abs +msgid "abs" +msgstr "abs chimpu" -#: js/FlowBlocks.js:732 -#.TRANS: El bloque Hasta se repetirá hasta que la condición sea verdadera. -msgid "The Until block will repeat until the condition is true." -msgstr "El bloque Hasta se repetirá hasta que la condición sea verdadera." +#: js/blocks/NumberBlocks.js:295 +#.TRANS: El bloque Distancia devuelve la distancia entre dos puntos. Por ejemplo, entre el ratón y el centro de la pantalla. +msgid "The Distance block returns the distance between two points. For example, between the mouse and the center of the screen." +msgstr "" -#: js/FlowBlocks.js:740 -#.TRANS: hasta -msgid "until" -msgstr "kay kama" +#: js/blocks/NumberBlocks.js:301 +#: plugins/rodi.rtp:310 +#.TRANS: distancia +msgid "distance" +msgstr "karukay" -#: js/FlowBlocks.js:742 -#: js/FlowBlocks.js:822 -#.TRANS: hacer -msgid "do2" -msgstr "hacer" +#: js/blocks/NumberBlocks.js:361 +#.TRANS: El bloque División se usa para dividir. +msgid "The Divide block is used to divide." +msgstr "rakiy t’aqaqa rakinapaq apaykachakun" -#: js/FlowBlocks.js:812 -#.TRANS: El bloque Mientras se repetirá mientras la condición sea verdadera. -msgid "The While block will repeat while the condition is true." -msgstr "El bloque Mientras se repetirá mientras la condición sea verdadera." +#: js/blocks/NumberBlocks.js:441 +#.TRANS: El bloque Multiplicar se usa para multiplicar. +msgid "The Multiply block is used to multiply." +msgstr "Mirachiy t’aqaqa mirachinapaq apaykachay" -#: js/FlowBlocks.js:820 -#.TRANS: mientras -msgid "while" -msgstr "chaykamataq" +#: js/blocks/NumberBlocks.js:612 +#.TRANS: El bloque Minus se usa para restar. +msgid "The Minus block is used to subtract." +msgstr "Qichuy/minus t’aqaqa qichunapaq apaykachakun" -#: js/FlowBlocks.js:903 -#: js/FlowBlocks.js:968 -#: js/FlowBlocks.js:979 -#.TRANS: En este ejemplo, si se presiona el botón del mouse, se reproducirá una caja. -msgid "In this example if the mouse button is pressed a snare drum will play." -msgstr "" +#: js/blocks/NumberBlocks.js:723 +#.TRANS: El bloque Plus se utiliza para agregar. +msgid "The Plus block is used to add." +msgstr "Plus t’aqaqa yapanapaq apaykachakun" -#: js/FlowBlocks.js:925 -#: js/FlowBlocks.js:988 -#.TRANS: si -msgid "if" -msgstr "arí" +#: js/blocks/NumberBlocks.js:849 +#.TRANS: El bloque Uno de estos devuelve una de dos opciones. +msgid "The One-of block returns one of two choices." +msgstr "El bloque Uno de estos devuelve una de dos opciones." -#: js/FlowBlocks.js:927 -#: js/FlowBlocks.js:990 -#.TRANS: entonces -msgid "then" -msgstr "chaynaqa" +#: js/blocks/NumberBlocks.js:856 +#: js/blocks/PitchBlocks.js:616 +#.TRANS: uno de estos +msgid "one of" +msgstr "huk kaykunamanta" -#: js/FlowBlocks.js:927 -#.TRANS: sino -msgid "else" -msgstr "mana chayqa" +#: js/blocks/NumberBlocks.js:858 +#.TRANS: éste +msgid "this" +msgstr "kay" -#: js/FlowBlocks.js:1025 -#.TRANS: El bloque Por siempre repetirá los bloques contenidos para siempre. -msgid "The Forever block will repeat the contained blocks forever." -msgstr "" +#: js/blocks/NumberBlocks.js:858 +#.TRANS: ése +msgid "that" +msgstr "chay" -#: js/FlowBlocks.js:1037 -#.TRANS: por siempre -msgid "forever" -msgstr "wiñaypaq" +#: js/blocks/NumberBlocks.js:913 +#.TRANS: El bloque Aleatorio devuelve un número aleatorio. +msgid "The Random block returns a random number." +msgstr "El bloque Aleatorio devuelve un número aleatorio." -#: js/FlowBlocks.js:1073 -#.TRANS: El bloque Repetir repetirá los bloques contenidos. -msgid "The Repeat block will repeat the contained blocks." -msgstr "El bloque Repetir repetirá los bloques contenidos." +#: js/blocks/NumberBlocks.js:920 +#.TRANS: aleatorio +msgid "random" +msgstr "chaqrusqa" -#: js/FlowBlocks.js:1075 -#.TRANS: En este ejemplo la nota se tocará 4 veces. -msgid "In this example the note will be played 4 times." -msgstr "En este ejemplo la nota se tocará 4 veces." +#: js/blocks/NumberBlocks.js:922 +#.TRANS: min +msgid "min" +msgstr "pisi" -#: js/FlowBlocks.js:1083 -#.TRANS: repetir -msgid "repeat" -msgstr "huktawan" +#: js/blocks/NumberBlocks.js:922 +#.TRANS: max +msgid "max" +msgstr "achkha" -#: js/FlowBlocks.js:1123 -#.TRANS: duplicar factor -msgid "duplicate factor" -msgstr "panichiri chimpu" +#: js/blocks/NumberBlocks.js:986 +#.TRANS: El bloque Numérico contiene un número. +msgid "The Number block holds a number." +msgstr "Yupay t’aqaqa huk yupayniyuq" -#: js/PitchBlocks.js:39 -#: js/musicutils.js:722 -#: js/musicutils.js:1117 -#: js/synthutils.js:112 -#.TRANS: square wave -#.TRANS: cuadrado -msgid "square" -msgstr "tawa k’uchu" +#: js/blocks/OrnamentBlocks.js:32 +#.TRANS: factor de staccato +msgid "staccato factor" +msgstr "staccato wakichata chimpu" -#: js/PitchBlocks.js:62 -#: js/ToneBlocks.js:39 -#: js/musicutils.js:723 -#: js/musicutils.js:1118 -#: js/synthutils.js:116 -#.TRANS: triangle wave -#.TRANS: triángulo -msgid "triangle" -msgstr "kimsa k’uchu" +#: js/blocks/OrnamentBlocks.js:108 +#.TRANS: factor de legato +msgid "slur factor" +msgstr "jist'thapiña wakichata chimpu" -#: js/PitchBlocks.js:85 -#: js/musicutils.js:721 -#: js/musicutils.js:1116 -#: js/synthutils.js:110 -#.TRANS: sine wave -#.TRANS: sine -msgid "sine" -msgstr "seno chimpu" +#: js/blocks/OrnamentBlocks.js:217 +#: js/blocks/OrnamentBlocks.js:309 +#.TRANS: the neighbor refers to a neighboring note, e.g., D is a neighbor of C +#.TRANS: vecino +msgid "neighbor" +msgstr "wasimasi" -#: js/PitchBlocks.js:108 -#: js/musicutils.js:724 -#: js/musicutils.js:1119 -#: js/synthutils.js:114 -#.TRANS: sawtooth wave -#.TRANS: diente de sierra -msgid "sawtooth" -msgstr "khuchuña laka" +#: js/blocks/OrnamentBlocks.js:293 +#.TRANS: El bloque Vecino cambia rápidamente entre los tonos vecinos. +msgid "The Neighbor block rapidly switches between neighboring pitches." +msgstr "" -#: js/PitchBlocks.js:141 -#.TRANS: musical transposition (adjustment of pitch up or down) -#.TRANS: transposición -msgid "transposition" -msgstr "haywapuynin" +#: js/blocks/OrnamentBlocks.js:364 +#.TRANS: deslizarse +msgid "glide" +msgstr "deslizarse" -#: js/PitchBlocks.js:168 -#.TRANS: step down one note in current musical scale -#.TRANS: escalar bajar -msgid "scalar step down" -msgstr "wichay uraqay" +#: js/blocks/OrnamentBlocks.js:479 +#: js/blocks/OrnamentBlocks.js:643 +#.TRANS: legato +msgid "slur" +msgstr "Jaquntäwi" -#: js/PitchBlocks.js:172 -#.TRANS: El bloque Escalar bajar devuelve el número de semitonos a la nota anterior en la tecla y modo actuales. -msgid "The Scalar step down block returns the number of semi-tones down to the previous note in the current key and mode." +#: js/blocks/OrnamentBlocks.js:558 +#: js/blocks/OrnamentBlocks.js:710 +#.TRANS: play each note sharply detached from the others +#.TRANS: staccato +msgid "staccato" +msgstr "staccato wakichata" + +#: js/blocks/RhythmBlocks.js:182 +#: js/blocks/RhythmBlocks.js:1086 +#: js/blocks/RhythmBlocks.js:1162 +#.TRANS: Valor de la nota debe ser mayor que 0. +msgid "Note value must be greater than 0." msgstr "" -#: js/PitchBlocks.js:190 -#.TRANS: step up one note in current musical scale -#.TRANS: escalar aumentar -msgid "scalar step up" -msgstr "wichay yapaykuy" +#: js/blocks/RhythmBlocks.js:215 +#: js/blocks/RhythmBlocks.js:278 +#: js/blocks/RhythmBlocks.js:350 +#.TRANS: swing is a rhythmic variation that emphasises the offbeat +#.TRANS: swing +msgid "swing" +msgstr "jiwalachi" -#: js/PitchBlocks.js:194 -#.TRANS: El bloque Escalar aumentar devuelve el número de semitonos hasta la siguiente nota en la tecla y modo actuales. -msgid "The Scalar step up block returns the number of semi-tones up to the next note in the current key and mode." -msgstr "" +#: js/blocks/RhythmBlocks.js:355 +#.TRANS: the amount to shift to the offbeat note +#.TRANS: valor de swing +msgid "swing value" +msgstr "swing wakichata chanipa" -#: js/PitchBlocks.js:212 -#.TRANS: the change measured in half-steps between the current pitch and the previous pitch -#.TRANS: cambio en tono -msgid "change in pitch" -msgstr "kunkan t’ikrasqa" +#: js/blocks/RhythmBlocks.js:419 +#.TRANS: El bloque Omitir notas hará que las notas se omitan. +msgid "The Skip notes block will cause notes to be skipped." +msgstr "El bloque Omitir notas hará que las notas se omitan." -#: js/PitchBlocks.js:216 -#.TRANS: El cambio en el bloque de tono es la diferencia (en medio pasos) entre el tono actual que se está reproduciendo y el tono anterior. -msgid "The Change in pitch block is the difference (in half steps) between the current pitch being played and the previous pitch played." +#: js/blocks/RhythmBlocks.js:427 +#.TRANS: substitute rests on notes being skipped +#.TRANS: saltar notas +msgid "skip notes" +msgstr "kunkakuna p’itay" + +#: js/blocks/RhythmBlocks.js:489 +#.TRANS: speed up note duration by some factor, e.g. convert 1/4 to 1/8 notes by using a factor of 2 +#.TRANS: ritmo multiplican +msgid "multiply note value" +msgstr "Muyuq miracchiq" + +#: js/blocks/RhythmBlocks.js:542 +#.TRANS: El bloque Atar funciona en pares de notas, combinándolas en una sola nota. +msgid "The Tie block works on pairs of notes, combining them into one note." msgstr "" -#: js/PitchBlocks.js:243 -#.TRANS: the change measured in scale-steps between the current pitch and the previous pitch -#.TRANS: cambio en tono escalar -msgid "scalar change in pitch" -msgstr "cambio en tono escalar" +#: js/blocks/RhythmBlocks.js:550 +#.TRANS: tie notes together into one longer note +#.TRANS: atar +msgid "tie" +msgstr "Watay" -#: js/PitchBlocks.js:250 -#: js/PitchBlocks.js:432 -#: js/PitchBlocks.js:1629 -#: js/DictActions.js:89 -#: js/temperament.js:477 -#: js/temperament.js:481 -#: js/temperament.js:714 -#.TRANS: convert current note to piano key (1-88) -#.TRANS: a mapping of pitch to the 88 piano keys -#.TRANS: número de tono -msgid "pitch number" -msgstr "kunkapa yupaynin" +#: js/blocks/RhythmBlocks.js:591 +#: js/blocks/RhythmBlocks.js:671 +#.TRANS: a dotted note is played for 1.5x its value, e.g., 1/8. --> 3/16 +#.TRANS: punto +msgid "dot" +msgstr "Ch’iku)" -#: js/PitchBlocks.js:256 -#.TRANS: El bloque Número de tono es el valor del tono de la nota que se está reproduciendo actualmente. -msgid "The Pitch number block is the value of the pitch of the note currently being played." +#: js/blocks/RhythmBlocks.js:619 +#: js/turtleactions/RhythmActions.js:221 +#.TRANS: Un argumento de -1 da como resultado un valor de nota de 0. +msgid "An argument of -1 results in a note value of 0." msgstr "" -#: js/PitchBlocks.js:329 -#: js/PitchBlocks.js:433 -#.TRANS: the current pitch expressed in Hertz -#.TRANS: tono en hertz -msgid "pitch in hertz" -msgstr "hertzpi kunkan" +#: js/blocks/RhythmBlocks.js:661 +#.TRANS: El bloque Punto extiende la duración de una nota en un 50%. +msgid "The Dot block extends the duration of a note by 50%." +msgstr "El bloque Punto extiende la duración de una nota en un 50%." -#: js/PitchBlocks.js:334 -#.TRANS: El bloque Tono en Hertz es el valor en hercios del tono de la nota que se está reproduciendo actualmente. -msgid "The Pitch in Hertz block is the value in Hertz of the pitch of the note currently being played." +#: js/blocks/RhythmBlocks.js:663 +#.TRANS: Por ejemplo, una nota de un cuarto de puntos se reproducirá a 3/8 (1/4 + 1/8) de un tiempo. +msgid "Eg a dotted quarter note will play for 3/8 (1/4 + 1/8) of a beat." msgstr "" -#: js/PitchBlocks.js:367 -#: js/DictActions.js:87 -#.TRANS: tono actual -msgid "current pitch" -msgstr "" +#: js/blocks/RhythmBlocks.js:765 +#.TRANS: Japanese only: note value block for drum +#.TRANS: Valor de nota tambor +msgid "note value drum" +msgstr "Valor de nota tambor" -#: js/PitchBlocks.js:373 -#.TRANS: El bloque de tono actual se utiliza con el bloque convertidor de tono. En el ejemplo anterior, el tono actual, sol 4, se muestra como 392 hercios. -msgid "The Current Pitch block is used with the Pitch Converter block. In the example above, current pitch, sol 4, is displayed as 392 hertz." -msgstr "" +#: js/blocks/RhythmBlocks.js:829 +#.TRANS: 392 hertz +msgid "392 hertz" +msgstr "329 kaparina" -#: js/PitchBlocks.js:410 -#.TRANS: Este bloque convierte el valor de tono de la última nota tocada en diferentes formatos como hertz, nombre de letra, número de tono, etc. -msgid "This block converts the pitch value of the last note played into different formats such as hertz, letter name, pitch number, et al." +#: js/blocks/RhythmBlocks.js:1119 +#.TRANS: El bloque Nota es un contenedor para uno o más bloques de tono. +msgid "The Note block is a container for one or more Pitch blocks." msgstr "" -#: js/PitchBlocks.js:434 -#.TRANS: alfabeto -msgid "alphabet" +#: js/blocks/RhythmBlocks.js:1121 +#.TRANS: El bloque Notas especifica la duración (valor de la nota) de su contenido. +msgid "The Note block specifies the duration (note value) of its contents." msgstr "" -#: js/PitchBlocks.js:436 -#.TRANS: Translate as "alphabet class" -#.TRANS: clase de alfabeto -msgid "letter class" -msgstr "" +#: js/blocks/RhythmBlocks.js:1128 +#: js/blocks/PitchBlocks.js:974 +#: js/blocks/PitchBlocks.js:1007 +#: js/blocks/ProgramBlocks.js:1186 +#: js/blocks/ProgramBlocks.js:1227 +#: js/widgets/status.js:190 +#: js/widgets/temperament.js:464 +#: js/widgets/temperament.js:486 +#: js/widgets/temperament.js:496 +#: js/widgets/temperament.js:617 +#: plugins/rodi.rtp:192 +#.TRANS: a musical note consisting of pitch and duration +#.TRANS: nota +msgid "note" +msgstr "kunka" -#: js/PitchBlocks.js:437 -#.TRANS: clase de solfege -msgid "solfege class" -msgstr "" +#: js/blocks/RhythmBlocks.js:1130 +#.TRANS: valor +msgid "value2" +msgstr "valor" -#: js/PitchBlocks.js:438 -#.TRANS: musical y -msgid "staff y" -msgstr "" +#: js/blocks/RhythmBlocks.js:1200 +#.TRANS: definir frecuencia +msgid "define frequency" +msgstr "definir frecuencia" -#: js/PitchBlocks.js:439 -#.TRANS: sílaba solfege -msgid "solfege syllable" -msgstr "" +#: js/blocks/RhythmBlocks.js:1218 +#: js/widgets/temperament.js:787 +#: js/widgets/temperament.js:1587 +#.TRANS: espacio de octava +msgid "octave space" +msgstr "pusaqpa pachan" -#: js/PitchBlocks.js:440 -#.TRANS: clase de tono -msgid "pitch class" +#: js/blocks/SensorsBlocks.js:36 +#.TRANS: El bloque de entrada solicita la entrada del teclado. +msgid "The Input block prompts for keyboard input." msgstr "" -#: js/PitchBlocks.js:441 -#.TRANS: clase de escala -msgid "scalar class" -msgstr "" +#: js/blocks/SensorsBlocks.js:46 +#.TRANS: el input +msgid "input" +msgstr "haykuna" -#: js/PitchBlocks.js:443 -#.TRANS: nth grado -msgid "nth degree" -msgstr "" +#: js/blocks/SensorsBlocks.js:64 +#.TRANS: ingrese un valor +msgid "Input a value" +msgstr "ingrese un valor" -#: js/PitchBlocks.js:444 -#.TRANS: tono a la sombra -msgid "pitch to shade" +#: js/blocks/SensorsBlocks.js:126 +#.TRANS: valor de entrada +msgid "input value" +msgstr "chaninchaqta haykuchiy" + +#: js/blocks/SensorsBlocks.js:131 +#.TRANS: El bloque de valor de entrada almacena la entrada. +msgid "The Input-value block stores the input." msgstr "" -#: js/PitchBlocks.js:445 -#.TRANS: tono a color -msgid "pitch to color" +#: js/blocks/SensorsBlocks.js:238 +#.TRANS: volumen +msgid "loudness" +msgstr "p’ulin" + +#: js/blocks/SensorsBlocks.js:245 +#.TRANS: El bloque Volumen devuelve el volumen detectado por el micrófono. +msgid "The Loudness block returns the volume detected by the microphone." msgstr "" -#: js/PitchBlocks.js:629 -#: js/musickeyboard.js:565 -#.TRANS: MIDI is a technical standard for electronic music -#.TRANS: MIDI -msgid "MIDI" -msgstr "MIDI" +#: js/blocks/SensorsBlocks.js:300 +#.TRANS: click +msgid "click" +msgstr "liq" -#: js/PitchBlocks.js:642 -#.TRANS: set an offset associated with the numeric piano keyboard mapping -#.TRANS: fijar offset del número de tono -msgid "set pitch number offset" -msgstr "kunkapa yupayninta watapuna " +#: js/blocks/SensorsBlocks.js:306 +#.TRANS: El bloque Click activa un evento si se ha hecho clic en un ratón. +msgid "The Click block triggers an event if a mouse has been clicked." +msgstr "El bloque Click activa un evento si se ha hecho clic en un mouse." -#: js/PitchBlocks.js:645 -#.TRANS: El bloque Fijar del número de tono establecido se usa para establecer el desplazamiento para asignar números de tono a tono y octava. -msgid "The Set pitch number offset block is used to set the offset for mapping pitch numbers to pitch and octave." +#: js/blocks/SensorsBlocks.js:313 +#.TRANS: El bloque Click activa un evento si se ha hecho clic en una tortuga. +msgid "The Click block triggers an event if a turtle has been clicked." msgstr "" -#: js/PitchBlocks.js:679 -#.TRANS: convert piano key number (1-88) to pitch -#.TRANS: número a tono -msgid "number to pitch" -msgstr "yupay kunkaman" +#: js/blocks/SensorsBlocks.js:342 +#.TRANS: cursor sobre +msgid "cursor over" +msgstr "cursor sobre" -#: js/PitchBlocks.js:682 -#.TRANS: El bloque Número a tono convertirá un número de tono en un nombre pich. -msgid "The Number to pitch block will convert a pitch number to a pich name." -msgstr "" +#: js/blocks/SensorsBlocks.js:387 +#.TRANS: cursor fuera +msgid "cursor out" +msgstr "cursor fuera" -#: js/PitchBlocks.js:715 -#.TRANS: convert piano key number (1-88) to octave -#.TRANS: número a octava -msgid "number to octave" -msgstr "yupay pusaq pataman" +#: js/blocks/SensorsBlocks.js:433 +#.TRANS: el botón presionado +msgid "cursor button down" +msgstr "el botón presionado" " -#: js/PitchBlocks.js:717 -#.TRANS: El bloque Número a octava convertirá un número de tono en una octava. -msgid "The Number to octave block will convert a pitch number to an octave." -msgstr "" +#: js/blocks/SensorsBlocks.js:477 +#.TRANS: el botón arriba +msgid "cursor button up" +msgstr "el botón arriba" -#: js/PitchBlocks.js:726 -#.TRANS: y para tono -msgid "y to pitch" -msgstr "" +#: js/blocks/SensorsBlocks.js:521 +#: js/blocks/PenBlocks.js:48 +#: plugins/rodi.rtp:219 +#.TRANS: azur +msgid "blue" +msgstr "Anqas" -#: js/PitchBlocks.js:729 -#.TRANS: El bloque Y a tono convertirá una posición de pentagrama y a la notación de tono correspondiente. -msgid "Y to pitch block will convert a staff y position to corresponding pitch notation." -msgstr "" +#: js/blocks/SensorsBlocks.js:577 +#: js/blocks/PenBlocks.js:64 +#: plugins/rodi.rtp:218 +#.TRANS: verde +msgid "green" +msgstr "Qunir" + +#: js/blocks/SensorsBlocks.js:633 +#: js/blocks/PenBlocks.js:112 +#: plugins/rodi.rtp:217 +#.TRANS: rojo +msgid "red" +msgstr "Puka" -#: js/PitchBlocks.js:841 -#.TRANS: selector accidental -msgid "accidental selector" +#: js/blocks/SensorsBlocks.js:638 +#.TRANS: El bloque Obtener rojo devuelve el componente rojo del píxel debajo del ratón. +msgid "The Get red block returns the red component of the pixel under the mouse." msgstr "" -#: js/PitchBlocks.js:844 -#.TRANS: El bloque Selector de accidental se usa para elegir entre doble filo, agudo, natural, plano y doble plano. -msgid "The Accidental selector block is used to choose between double-sharp, sharp, natural, flat, and double-flat." +#: js/blocks/SensorsBlocks.js:644 +#.TRANS: El bloque Obtener rojo devuelve el componente rojo del píxel debajo de la tortuga. +msgid "The Get red block returns the red component of the pixel under the turtle." msgstr "" -#: js/PitchBlocks.js:858 -#.TRANS: El tono puede especificarse en términos de ni dha pa ma ga re sa. -msgid "Pitch can be specified in terms of ni dha pa ma ga re sa." -msgstr "kunkaqa kay tukuykunapi ni dha pa ma ga re sa alayrichikun " - -#: js/PitchBlocks.js:872 -#.TRANS: El tono puede especificarse en términos de C D E F G A B. -msgid "Pitch can be specified in terms of C D E F G A B." -msgstr " kunkaqa kay tukuykunapi C D E F G A B alayrichikun " +#: js/blocks/SensorsBlocks.js:685 +#: plugins/rodi.rtp:216 +#.TRANS: color del pixel +msgid "pixel color" +msgstr " llimp’iy k’anchaypa phatmin" -#: js/PitchBlocks.js:883 -#.TRANS: -msgid "solfege" +#: js/blocks/SensorsBlocks.js:690 +#.TRANS: El bloque Obtener píxel devuelve el color del píxel debajo del ratón. +msgid "The Get pixel block returns the color of the pixel under the mouse." msgstr "" -#: js/PitchBlocks.js:886 -#.TRANS: El tono puede especificarse en términos de do re mi fa sol la si. -msgid "Pitch can be specified in terms of do re mi fa sol la ti." -msgstr " kunkaqa kay tukuykunapi do re mi fa sol la si alayrichikun " - -#: js/PitchBlocks.js:920 -#.TRANS: El bloque Invertir gira cualquier nota contenida alrededor de una nota de destino. -msgid "The Invert block rotates any contained notes around a target note." +#: js/blocks/SensorsBlocks.js:696 +#.TRANS: El bloque Obtener píxel devuelve el color del píxel debajo de la tortuga. +msgid "The Get pixel block returns the color of the pixel under the turtle." msgstr "" -#: js/PitchBlocks.js:927 -#.TRANS: pitch inversion rotates a pitch around another pitch -#.TRANS: invertir -msgid "invert" -msgstr "t’ikray" - -#: js/PitchBlocks.js:929 -#: js/PitchBlocks.js:935 -#: js/PitchActions.js:727 -#: js/musicutils.js:726 -#: js/musicutils.js:902 -#.TRANS: invert based on even or odd number or musical scale -#.TRANS: even numbers -#.TRANS: par -msgid "even" -msgstr "masa" - -#: js/PitchBlocks.js:935 -#: js/PitchActions.js:729 -#: js/musicutils.js:728 -#: js/musicutils.js:903 -#.TRANS: odd numbers -#.TRANS: impar -msgid "odd" -msgstr "sapallan" - -#: js/PitchBlocks.js:935 -#: js/PitchActions.js:731 -#: js/musicutils.js:729 -#: js/musicutils.js:904 -#.TRANS: escalar -msgid "scalar" -msgstr "siqay" +#: js/blocks/SensorsBlocks.js:758 +#.TRANS: tiempo +msgid "time" +msgstr "pacha" -#: js/PitchBlocks.js:966 -#.TRANS: pitch inversion rotates a pitch around another pitch (odd number) -#.TRANS: invertir (impar) -msgid "invert (odd)" -msgstr "t’ikray (sapallan" +#: js/blocks/SensorsBlocks.js:804 +#.TRANS: cursor y +msgid "cursor y" +msgstr "y t’uqpina" -#: js/PitchBlocks.js:999 -#.TRANS: pitch inversion rotates a pitch around another pitch (even number) -#.TRANS: invertir (par) -msgid "invert (even)" -msgstr "t’ikray (masantin)" +#: js/blocks/SensorsBlocks.js:809 +#.TRANS: El bloque Cursor Y devuelve la posición vertical del cursor. +msgid "The Cursor Y block returns the vertical position of the mouse." +msgstr "" -#: js/PitchBlocks.js:1020 -#.TRANS: register is the octave of the current pitch -#.TRANS: registro -msgid "register" -msgstr "waqaychasqa" +#: js/blocks/SensorsBlocks.js:845 +#.TRANS: cursor x +msgid "cursor x" +msgstr "t’uqpina" -#: js/PitchBlocks.js:1024 -#.TRANS: El bloque Registro proporciona una manera fácil de modificar el registro (octava) de las notas que lo siguen. -msgid "The Register block provides an easy way to modify the register (octave) of the notes that follow it." +#: js/blocks/SensorsBlocks.js:850 +#.TRANS: El bloque Cursor X devuelve la posición horizontal del ratón. +msgid "The Cursor X block returns the horizontal position of the mouse." msgstr "" -#: js/PitchBlocks.js:1074 -#.TRANS: El bloque de transposición de semitono desplazará los pasos contenidos dentro de los bloques de notas hacia arriba (o hacia abajo) medio pasos. -msgid "The Semi-tone transposition block will shift the pitches contained inside Note blocks up (or down) by half steps." -msgstr "" +#: js/blocks/SensorsBlocks.js:886 +#.TRANS: botón del ratón +msgid "mouse button" +msgstr "Huk’uchapa ñup’unan" -#: js/PitchBlocks.js:1076 -#.TRANS: En el ejemplo que se muestra arriba, sol se desplaza hasta sol#. -msgid "In the example shown above, sol is shifted up to sol#." -msgstr "wichaypi qhawachisqapi hina, solqa solkama purin" +#: js/blocks/SensorsBlocks.js:888 +#.TRANS: El bloque Botón del ratón devuelve Verdadero si se presiona el botón del ratón. +msgid "The Mouse-button block returns True if the mouse button is pressed." +msgstr "" -#: js/PitchBlocks.js:1082 -#.TRANS: adjust the amount of shift (up or down) of a pitch -#.TRANS: transposición semitono -msgid "semi-tone transpose" -msgstr "kuskan kunka Haywapuynin" +#: js/blocks/SensorsBlocks.js:934 +#.TRANS: a ASCII +msgid "to ASCII" +msgstr "ASCIIman" -#: js/PitchBlocks.js:1115 -#.TRANS: El bloque transponer por razón cambiará los tonos contenidos dentro de los bloques de notas hacia arriba (o hacia abajo) en una proporción -msgid "The Transpose by Ratio block will shift the pitches contained inside Note blocks up (or down) by a ratio" -msgstr "" +#: js/blocks/SensorsBlocks.js:938 +#.TRANS: El bloque a ASCII convierte números a letras. +msgid "The To ASCII block converts numbers to letters." +msgstr "El bloque a ASCII convierte números a letras." -#: js/PitchBlocks.js:1121 -#.TRANS: adjust the amount of shift (up or down) of a pitch -#.TRANS: transponer por razón -msgid "transpose by ratio" -msgstr "" +#: js/blocks/SensorsBlocks.js:1005 +#.TRANS: El bloque teclado devuelve entrada de teclado. +msgid "The Keyboard block returns computer keyboard input." +msgstr "El bloque teclado devuelve entrada de teclado." -#: js/PitchBlocks.js:1204 -#.TRANS: down sixth means the note is five scale degrees below current note -#.TRANS: sexto abajo -msgid "down sixth" -msgstr "uraypi suqta pata" +#: js/blocks/RhythmBlockPaletteBlocks.js:50 +#: js/blocks/RhythmBlockPaletteBlocks.js:233 +#.TRANS: rhythm block +#.TRANS: translate "rhythm1" as rhythm +#.TRANS: ritmo +msgid "rhythm1" +msgstr "ritmo" -#: js/PitchBlocks.js:1223 -#.TRANS: down third means the note is two scale degrees below current note -#.TRANS: tercero abajo -msgid "down third" -msgstr "uraypi kimsa pata" +#: js/blocks/RhythmBlockPaletteBlocks.js:70 +#: js/blocks/RhythmBlockPaletteBlocks.js:252 +#: js/blocks/RhythmBlockPaletteBlocks.js:485 +#: js/blocks/RhythmBlockPaletteBlocks.js:554 +#: js/blocks/RhythmBlockPaletteBlocks.js:875 +#.TRANS: número de notas +msgid "number of notes" +msgstr "Yupay waqaykuna" -#: js/PitchBlocks.js:1242 -#.TRANS: seventh means the note is the six scale degrees above current note -#.TRANS: séptimo -msgid "seventh" -msgstr "qanchis pata" +#: js/blocks/RhythmBlockPaletteBlocks.js:126 +#.TRANS: ritmo polifónico +msgid "polyphonic rhythm" +msgstr "Achka waqaykunap Munay muyuchik" -#: js/PitchBlocks.js:1261 -#.TRANS: sixth means the note is the five scale degrees above current note -#.TRANS: sexto -msgid "sixth" -msgstr "suqta pata" +#: js/blocks/RhythmBlockPaletteBlocks.js:219 +#.TRANS: El bloque Ritmo se utiliza para generar patrones de ritmo. +msgid "The Rhythm block is used to generate rhythm patterns." +msgstr "Munay purichiqa kinkinman hina qatipaq" -#: js/PitchBlocks.js:1280 -#.TRANS: fifth means the note is the four scale degrees above current note -#.TRANS: quinto -msgid "fifth" -msgstr "phichqa pata" +#: js/blocks/RhythmBlockPaletteBlocks.js:280 +#.TRANS: 1/64 nota +msgid "1/64 note" +msgstr "1/64 kunka" -#: js/PitchBlocks.js:1300 -#.TRANS: fourth means the note is three scale degrees above current note -#.TRANS: cuarto -msgid "fourth" -msgstr "tawa pata" +#: js/blocks/RhythmBlockPaletteBlocks.js:304 +#.TRANS: 1/32 nota +msgid "1/32 note" +msgstr "Kunkaq tahasqan" -#: js/PitchBlocks.js:1319 -#.TRANS: third means the note is two scale degrees above current note -#.TRANS: tercio -msgid "third" -msgstr "kimsa pata" +#: js/blocks/RhythmBlockPaletteBlocks.js:332 +#.TRANS: 1/16 nota +msgid "1/16 note" +msgstr "1/6 kunka" -#: js/PitchBlocks.js:1338 -#.TRANS: second means the note is one scale degree above current note -#.TRANS: segundo -msgid "second" -msgstr "iskay pata" +#: js/blocks/RhythmBlockPaletteBlocks.js:360 +#.TRANS: 1/8 nota +msgid "eighth note" +msgstr "1/8 kunka" -#: js/PitchBlocks.js:1379 -#.TRANS: El bloque Transposición escalar desplazará los tonos contenidos dentro de los bloques de notas hacia arriba (o hacia abajo) de la escala. -msgid "The Scalar transposition block will shift the pitches contained inside Note blocks up (or down) the scale." -msgstr "" +#: js/blocks/RhythmBlockPaletteBlocks.js:388 +#.TRANS: 1/4 nota +msgid "quarter note" +msgstr "1/4 kunka" -#: js/PitchBlocks.js:1381 -#.TRANS: En el ejemplo que se muestra arriba, el sol se desplaza hacia arriba a la. -msgid "In the example shown above, sol is shifted up to la." -msgstr "En el ejemplo que se muestra arriba, el sol se desplaza hacia arriba a la." +#: js/blocks/RhythmBlockPaletteBlocks.js:416 +#.TRANS: 1/2 nota +msgid "half note" +msgstr "1/2 kunka" -#: js/PitchBlocks.js:1388 -#.TRANS: adjust the amount of shift (up or down) of a pitch by musical scale (scalar) steps -#.TRANS: transposición escalar -msgid "scalar transpose" -msgstr " sayayninta tupachiy haywapuynin" +#: js/blocks/RhythmBlockPaletteBlocks.js:444 +#.TRANS: nota completa +msgid "whole note" +msgstr "hunt’asqa kunka" -#: js/PitchBlocks.js:1423 -#.TRANS: El bloque Accidental se utiliza para crear objetos punzantes y pisos. -msgid "The Accidental block is used to create sharps and flats" -msgstr "Yanapaqnin chiqasqa chhukuna hinallataq saruna imakunapas paqarichiy llamk’anam" +#: js/blocks/RhythmBlockPaletteBlocks.js:482 +#: js/blocks/RhythmBlockPaletteBlocks.js:551 +#: js/blocks/RhythmBlockPaletteBlocks.js:602 +#.TRANS: A tuplet is a note value divided into irregular time values. +#.TRANS: tuplet +msgid "tuplet" +msgstr "tupla chimpu" -#: js/PitchBlocks.js:1430 -#.TRANS: An accidental is a modification to a pitch, e.g., sharp or flat. -#.TRANS: anular accidental -msgid "accidental override" -msgstr "" +#: js/blocks/RhythmBlockPaletteBlocks.js:768 +#.TRANS: septeto +msgid "septuplet" +msgstr "Qanchikmanta" -#: js/PitchBlocks.js:1543 -#.TRANS: El bloque Hertz (en combinación con un bloque numérico) reproducirá un sonido a la frecuencia especificada. -msgid "The Hertz block (in combination with a Number block) will play a sound at the specified frequency." -msgstr "" +#: js/blocks/RhythmBlockPaletteBlocks.js:796 +#.TRANS: quinteto +msgid "quintuplet" +msgstr "Phisqamanta" -#: js/PitchBlocks.js:1633 -#.TRANS: El bloque de número de tono reproducirá un tono asociado por su número, p. 0 para C y 7 para G. -msgid "The Pitch Number block will play a pitch associated by its number, e.g. 0 for C and 7 for G." +#: js/blocks/RhythmBlockPaletteBlocks.js:824 +#.TRANS: trillizo +msgid "triplet" msgstr "" -#: js/PitchBlocks.js:1665 -#: js/PitchBlocks.js:1707 -#.TRANS: a numeric mapping of the notes in an octave based on the musical mode -#.TRANS: a numeric mapping of the notes in an octave based on the musical mode -#.TRANS: nth tono modal -msgid "nth modal pitch" -msgstr "nth tono modal" +#: js/blocks/RhythmBlockPaletteBlocks.js:851 +#.TRANS: tuplet simple +msgid "simple tuplet" +msgstr "tuplet simple" -#: js/PitchBlocks.js:1668 -#.TRANS: Nth Modal Pitch toma el patrón de tonos en semitonos para un modo y hace que cada punto sea un grado del modo, -msgid "n^th Modal Pitch takes the pattern of pitches in semitones for a mode and makes each point a degree of the mode," +#: js/blocks/RhythmBlockPaletteBlocks.js:861 +#.TRANS: Tuplets son una colección de notas que se escalan a una duración específica. +msgid "Tuplets are a collection of notes that get scaled to a specific duration." msgstr "" -#: js/PitchBlocks.js:1670 -#.TRANS: comenzando desde 1 e independientemente del marco tonal (es decir, no siempre 8 notas en la octava) -msgid "starting from 1 and regardless of tonal framework (i.e. not always 8 notes in the octave)" +#: js/blocks/DrumBlocks.js:59 +#.TRANS: El bloque Nombre de ruido se utiliza para seleccionar un sintetizador de ruido. +msgid "The Noise name block is used to select a noise synthesizer." msgstr "" -#: js/PitchBlocks.js:1711 -#.TRANS: Nth modal tono un número como entrada como el nth grado para el modo dado. 0 es la primera posición, 1 es la segunda, -1 es la nota anterior a la primera, etc. -msgid "N^th Modal Pitch takes a number as an input as the n^th degree for the given mode. 0 is the first position, 1 is the second, -1 is the note before the first etc." -msgstr "" +#: js/blocks/DrumBlocks.js:102 +#.TRANS: El bloque nombre del tambor se utiliza para seleccionar un tambor. +msgid "The Drum name block is used to select a drum." +msgstr "Tambor sayaq sutinqa, tambor akllanapaqmi" -#: js/PitchBlocks.js:1713 -#.TRANS: Los tonos cambian según el modo especificado sin necesidad de grafías. -msgid "The pitches change according to the mode specified without any need for respellings." -msgstr "" +#: js/blocks/DrumBlocks.js:146 +#.TRANS: El bloque nombre de efectos se utiliza para seleccionar un efecto de sonido. +msgid "The Effects name block is used to select a sound effect." +msgstr "El bloque nombre de efectos se utiliza para seleccionar un efecto de sonido." -#: js/PitchBlocks.js:1752 -#.TRANS: El grado de escala es una convención común en la música. El grado de ecala ofrece siete posiciones posibles en la escala (1-7) y puede modificarse mediante alteraciones. -msgid "Scale Degree is a common convention in music. Scale Degree offers seven possible positions in the scale (1-7) and can be modified via accidentals." -msgstr "" +#: js/blocks/DrumBlocks.js:163 +#.TRANS: ruido +msgid "noise" +msgstr "rakhaqaqaq" -#: js/PitchBlocks.js:1754 -#.TRANS: El grado de la escala de 1 es siempre el primer tono de una escala determinada, independientemente de la octava. -msgid "Scale Degree 1 is always the first pitch in a given scale, regardless of octave." +#: js/blocks/DrumBlocks.js:177 +#.TRANS: El bloque Ruido de reproducción generará ruido blanco, rosa o marrón. +msgid "The Play noise block will generate white, pink, or brown noise." msgstr "" -#: js/PitchBlocks.js:1776 -#.TRANS: step some number of notes in current musical scale -#.TRANS: paso escalar -msgid "scalar step" -msgstr "wichayman challqa" +#: js/blocks/DrumBlocks.js:317 +#.TRANS: Reemplace cada instancia de un tono con un sonido de tambor. +msgid "Replace every instance of a pitch with a drum sound." +msgstr "Reemplace cada instancia de un tono con un sonido de tambor." -#: js/PitchBlocks.js:1781 -#.TRANS: El bloque Paso escalar (en combinación con un bloque numérico) reproducirá el siguiente tono en una escala, -msgid "The Scalar Step block (in combination with a Number block) will play the next pitch in a scale," -msgstr "" +#: js/blocks/DrumBlocks.js:328 +#.TRANS: map a pitch to a drum sound +#.TRANS: mapa de tono al tambor +msgid "map pitch to drum" +msgstr "saywa" -#: js/PitchBlocks.js:1783 -#.TRANS: por ejemplo, si la última nota tocada fue sol, el paso escalar 1 tocará la. -msgid "eg if the last note played was sol, Scalar Step 1 will play la." +#: js/blocks/DrumBlocks.js:395 +#.TRANS: En el ejemplo anterior, se reproducirá un sonido de bombo en lugar de sol. +msgid "In the example above, a kick drum sound will be played instead of sol." msgstr "" -#: js/PitchBlocks.js:1818 -#.TRANS: The Pitch block specifies the pitch name and octave of a note that together determine the frequency of the note. -msgid "The Pitch block specifies the pitch name and octave of a note that together determine the frequency of the note." -msgstr "" +#: js/blocks/DrumBlocks.js:407 +#.TRANS: set the current drum sound for playback +#.TRANS: fijar tambor +msgid "set drum" +msgstr "tarula chimpuña" + +#: js/blocks/DrumBlocks.js:451 +#.TRANS: efecto de sonido +msgid "sound effect" +msgstr "t’uqyaq pantachiq" + +#: js/blocks/DrumBlocks.js:489 +#.TRANS: Puede utilizar varios bloques de percusión dentro de un bloque de notas. +msgid "You can use multiple Drum blocks within a Note block." +msgstr "Sayaq uhpi atiwaqmi achka kunkakunaq takaykunanpi" -#: js/GraphicsBlocks.js:46 -#: js/DictActions.js:77 -#: js/DictActions.js:155 -#: js/DictActions.js:189 +#: js/blocks/GraphicsBlocks.js:46 +#: js/turtleactions/DictActions.js:77 +#: js/turtleactions/DictActions.js:144 +#: js/turtleactions/DictActions.js:173 #.TRANS: rumbo msgid "heading" msgstr "mayman" -#: js/GraphicsBlocks.js:56 +#: js/blocks/GraphicsBlocks.js:56 #.TRANS: El bloque rumbo devuelve la orientación del ratón. msgid "The Heading block returns the orientation of the mouse." msgstr "El bloque rumbo devuelve la orientación del ratón." -#: js/GraphicsBlocks.js:62 +#: js/blocks/GraphicsBlocks.js:62 #.TRANS: El bloque rumbo devuelve la orientación de la tortuga. msgid "The Heading block returns the orientation of the turtle." msgstr "" -#: js/GraphicsBlocks.js:133 +#: js/blocks/GraphicsBlocks.js:133 #.TRANS: El bloque Y devuelve la posición horizontal del ratón. msgid "The Y block returns the vertical position of the mouse." msgstr "chiqasqa huk’ucha pampallanpi kasqanta kutichipun" -#: js/GraphicsBlocks.js:140 +#: js/blocks/GraphicsBlocks.js:140 #.TRANS: El bloque Y devuelve la posición horizontal de la tortuga. msgid "The Y block returns the vertical position of the turtle." msgstr "" -#: js/GraphicsBlocks.js:149 +#: js/blocks/GraphicsBlocks.js:149 #.TRANS: y msgid "y3" msgstr "y3" -#: js/GraphicsBlocks.js:219 +#: js/blocks/GraphicsBlocks.js:219 #.TRANS: El bloque X devuelve la posición horizontal del ratón. msgid "The X block returns the horizontal position of the mouse." msgstr "X chiqasqa huk’ucha pampallanpi kasqanta kutichipun" -#: js/GraphicsBlocks.js:226 +#: js/blocks/GraphicsBlocks.js:226 #.TRANS: El bloque X devuelve la posición horizontal de la tortuga. msgid "The X block returns the horizontal position of the turtle." msgstr "" -#: js/GraphicsBlocks.js:235 +#: js/blocks/GraphicsBlocks.js:235 #.TRANS: x msgid "x3" msgstr "x3" -#: js/GraphicsBlocks.js:295 +#: js/blocks/GraphicsBlocks.js:295 #.TRANS: desplazar xy msgid "scroll xy" msgstr "xy purichiy" -#: js/GraphicsBlocks.js:303 +#: js/blocks/GraphicsBlocks.js:303 #.TRANS: El bloque Desplazar XY mueve el lienzo. msgid "The Scroll XY block moves the canvas." msgstr "Purichiy chiqasqa XY llikata kuyuchin" -#: js/GraphicsBlocks.js:313 +#: js/blocks/GraphicsBlocks.js:313 #.TRANS: x msgid "x2" msgstr "x2" -#: js/GraphicsBlocks.js:313 +#: js/blocks/GraphicsBlocks.js:313 #.TRANS: y msgid "y2" msgstr "y2" -#: js/GraphicsBlocks.js:373 -#: js/temperament.js:213 -#: js/temperament.js:241 +#: js/blocks/GraphicsBlocks.js:373 +#: js/widgets/temperament.js:319 +#: js/widgets/temperament.js:347 #.TRANS: limpiar msgid "clear" msgstr "pichay" -#: js/GraphicsBlocks.js:426 +#: js/blocks/GraphicsBlocks.js:426 #.TRANS: El bloque Control-point 2 establece el segundo punto de control para la curva Bezier. msgid "The Control-point 2 block sets the second control point for the Bezier curve." msgstr "" -#: js/GraphicsBlocks.js:433 +#: js/blocks/GraphicsBlocks.js:433 #.TRANS: punto de control 2 msgid "control point 2" msgstr "arariwaq 2" -#: js/GraphicsBlocks.js:436 -#: js/GraphicsBlocks.js:487 -#: js/GraphicsBlocks.js:534 -#: js/GraphicsBlocks.js:750 +#: js/blocks/GraphicsBlocks.js:436 +#: js/blocks/GraphicsBlocks.js:487 +#: js/blocks/GraphicsBlocks.js:534 +#: js/blocks/GraphicsBlocks.js:750 #.TRANS: x msgid "x1" msgstr "x1" -#: js/GraphicsBlocks.js:436 -#: js/GraphicsBlocks.js:487 -#: js/GraphicsBlocks.js:534 -#: js/GraphicsBlocks.js:750 +#: js/blocks/GraphicsBlocks.js:436 +#: js/blocks/GraphicsBlocks.js:487 +#: js/blocks/GraphicsBlocks.js:534 +#: js/blocks/GraphicsBlocks.js:750 #.TRANS: y msgid "y1" msgstr "y1" -#: js/GraphicsBlocks.js:477 +#: js/blocks/GraphicsBlocks.js:477 #.TRANS: El bloque Control-point 1 establece el segundo punto de control para la curva Bezier. msgid "The Control-point 1 block sets the first control point for the Bezier curve." msgstr "" -#: js/GraphicsBlocks.js:484 +#: js/blocks/GraphicsBlocks.js:484 #.TRANS: punto de control 1 msgid "control point 1" msgstr "arariwaq 1" -#: js/GraphicsBlocks.js:527 +#: js/blocks/GraphicsBlocks.js:527 #.TRANS: El bloque bezier dibuja una curva bezier. msgid "The Bezier block draws a Bezier curve." msgstr "El bloque bezier dibuja una curva bezier." -#: js/GraphicsBlocks.js:531 +#: js/blocks/GraphicsBlocks.js:531 #.TRANS: bezier msgid "bezier" msgstr "bezier wakichata" -#: js/GraphicsBlocks.js:592 +#: js/blocks/GraphicsBlocks.js:592 +#.TRANS: El bloque Arco mueve la tortuga en un arco. msgid "The Arc block moves the turtle in an arc." msgstr "" -#: js/GraphicsBlocks.js:600 +#: js/blocks/GraphicsBlocks.js:600 #.TRANS: arco msgid "arc" msgstr "k’umu" -#: js/GraphicsBlocks.js:603 +#: js/blocks/GraphicsBlocks.js:603 #.TRANS: ángulo msgid "angle" msgstr "k'uchu" -#: js/GraphicsBlocks.js:603 +#: js/blocks/GraphicsBlocks.js:603 #.TRANS: radio msgid "radius" msgstr "illwa" -#: js/GraphicsBlocks.js:620 -#: js/GraphicsBlocks.js:767 -#: js/GraphicsBlocks.js:1010 -#: js/GraphicsBlocks.js:1093 +#: js/blocks/GraphicsBlocks.js:620 +#: js/blocks/GraphicsBlocks.js:767 +#: js/blocks/GraphicsBlocks.js:1010 +#: js/blocks/GraphicsBlocks.js:1093 +#.TRANS: El valor debe estar entre -5000 y 5000 cuando el modo Wrap está desactivado. msgid "Value must be within -5000 to 5000 when Wrap Mode is off." msgstr "" -#: js/GraphicsBlocks.js:622 -#: js/GraphicsBlocks.js:769 -#: js/GraphicsBlocks.js:1012 -#: js/GraphicsBlocks.js:1095 +#: js/blocks/GraphicsBlocks.js:622 +#: js/blocks/GraphicsBlocks.js:769 +#: js/blocks/GraphicsBlocks.js:1012 +#: js/blocks/GraphicsBlocks.js:1095 +#.TRANS: El valor debe estar entre -20000 y 20000 cuando el modo Wrap está activado. msgid "Value must be within -20000 to 20000 when Wrap Mode is on." msgstr "" -#: js/GraphicsBlocks.js:660 +#: js/blocks/GraphicsBlocks.js:660 #.TRANS: fijar rumbo msgid "set heading" msgstr "mayman rinantam churay" -#: js/GraphicsBlocks.js:673 +#: js/blocks/GraphicsBlocks.js:673 #.TRANS: El bloque fijar rumbo establece el rumbo de la tortuga. msgid "The Set heading block sets the heading of the turtle." msgstr "" -#: js/GraphicsBlocks.js:733 +#: js/blocks/GraphicsBlocks.js:733 #.TRANS: El bloque Fijar XY mueve el ratón a una posición específica en la pantalla. msgid "The Set XY block moves the mouse to a specific position on the screen." msgstr "" -#: js/GraphicsBlocks.js:739 +#: js/blocks/GraphicsBlocks.js:739 #.TRANS: El bloque Fijar XY mueve la tortuga a una posición específica en la pantalla. msgid "The Set XY block moves the turtle to a specific position on the screen." msgstr "" -#: js/GraphicsBlocks.js:747 +#: js/blocks/GraphicsBlocks.js:747 #.TRANS: fijar xy msgid "set xy" msgstr "xy nisqata churay" "xy k’askachiy" -#: js/GraphicsBlocks.js:819 +#: js/blocks/GraphicsBlocks.js:819 #.TRANS: El bloque Derecha gira el ratón hacia la derecha. msgid "The Right block turns the mouse to the right." msgstr "El bloque Derecha gira el ratón hacia la derecha." -#: js/GraphicsBlocks.js:826 +#: js/blocks/GraphicsBlocks.js:826 #.TRANS: El bloque Derecha gira la tortuga hacia la derecha. msgid "The Right block turns the turtle to the right." msgstr "" -#: js/GraphicsBlocks.js:835 +#: js/blocks/GraphicsBlocks.js:835 #.TRANS: derecha msgid "right1" msgstr "paña" -#: js/GraphicsBlocks.js:835 +#: js/blocks/GraphicsBlocks.js:835 #: plugins/rodi.rtp:77 #: plugins/rodi.rtp:340 #: plugins/rodi.rtp:375 @@ -6025,22 +6420,22 @@ msgstr "paña" msgid "right" msgstr "paña" -#: js/GraphicsBlocks.js:899 +#: js/blocks/GraphicsBlocks.js:899 #.TRANS: El bloque izquierdo gira el ratón hacia la izquierda. msgid "The Left block turns the mouse to the left." msgstr "lluq’i t’aqa huk’uchawan lluq’iman muyun" -#: js/GraphicsBlocks.js:906 +#: js/blocks/GraphicsBlocks.js:906 #.TRANS: El bloque izquierdo gira la tortuga hacia la izquierda. msgid "The Left block turns the turtle to the left." msgstr "" -#: js/GraphicsBlocks.js:915 +#: js/blocks/GraphicsBlocks.js:915 #.TRANS: izquierda msgid "left1" msgstr "lluq’i" -#: js/GraphicsBlocks.js:915 +#: js/blocks/GraphicsBlocks.js:915 #: plugins/rodi.rtp:79 #: plugins/rodi.rtp:339 #: plugins/rodi.rtp:362 @@ -6048,2972 +6443,2684 @@ msgstr "lluq’i" msgid "left" msgstr "lluq’i" -#: js/GraphicsBlocks.js:967 -#: js/temperament.js:734 -#: js/temperament.js:933 +#: js/blocks/GraphicsBlocks.js:967 +#: js/widgets/temperament.js:875 +#: js/widgets/temperament.js:1078 #: plugins/rodi.rtp:69 #: plugins/rodi.rtp:387 #.TRANS: atrás msgid "back" msgstr "qhipa" -#: js/GraphicsBlocks.js:976 +#: js/blocks/GraphicsBlocks.js:976 #.TRANS: El bloque Atrás mueve el ratón hacia atrás. msgid "The Back block moves the mouse backward." msgstr "qhipa t’aqa huk’uchawan qhipaman muyun" -#: js/GraphicsBlocks.js:983 +#: js/blocks/GraphicsBlocks.js:983 #.TRANS: El bloque Atrás mueve la tortuga hacia atrás. msgid "The Back block moves the turtle backward." msgstr "" -#: js/GraphicsBlocks.js:1050 +#: js/blocks/GraphicsBlocks.js:1050 #: plugins/rodi.rtp:71 #: plugins/rodi.rtp:400 #.TRANS: adelante msgid "forward" msgstr "ñawpaq" -#: js/GraphicsBlocks.js:1059 +#: js/blocks/GraphicsBlocks.js:1059 #.TRANS: El bloque Adelante mueve el ratón hacia adelante. msgid "The Forward block moves the mouse forward." msgstr "ñawpaq t’aqa huk’uchawan ñawpaqman muyun" -#: js/GraphicsBlocks.js:1066 +#: js/blocks/GraphicsBlocks.js:1066 #.TRANS: El bloque Adelante mueve la tortuga hacia adelante. msgid "The Forward block moves the turtle forward." msgstr "" -#: js/GraphicsBlocks.js:1154 -#: js/GraphicsBlocks.js:1172 +#: js/blocks/GraphicsBlocks.js:1154 +#: js/blocks/GraphicsBlocks.js:1172 #.TRANS: envolver msgid "wrap" msgstr "" -#: js/OrnamentBlocks.js:32 -#.TRANS: factor de staccato -msgid "staccato factor" -msgstr "staccato wakichata chimpu" - -#: js/OrnamentBlocks.js:108 -#.TRANS: factor de legato -msgid "slur factor" -msgstr "jist'thapiña wakichata chimpu" - -#: js/OrnamentBlocks.js:217 -#: js/OrnamentBlocks.js:309 -#.TRANS: the neighbor refers to a neighboring note, e.g., D is a neighbor of C -#.TRANS: vecino -msgid "neighbor" -msgstr "wasimasi" - -#: js/OrnamentBlocks.js:293 -#.TRANS: El bloque Vecino cambia rápidamente entre los tonos vecinos. -msgid "The Neighbor block rapidly switches between neighboring pitches." -msgstr "" - -#: js/OrnamentBlocks.js:364 -#.TRANS: deslizarse -msgid "glide" -msgstr "deslizarse" - -#: js/OrnamentBlocks.js:479 -#: js/OrnamentBlocks.js:643 -#.TRANS: legato -msgid "slur" -msgstr "Jaquntäwi" - -#: js/OrnamentBlocks.js:558 -#: js/OrnamentBlocks.js:710 -#.TRANS: play each note sharply detached from the others -#.TRANS: staccato -msgid "staccato" -msgstr "staccato wakichata" - -#: js/PenBlocks.js:24 +#: js/blocks/PenBlocks.js:30 #.TRANS: morado msgid "purple" msgstr "Kulli" -#: js/PenBlocks.js:37 -#: js/SensorsBlocks.js:521 -#: plugins/rodi.rtp:219 -#.TRANS: azur -msgid "blue" -msgstr "Anqas" - -#: js/PenBlocks.js:50 -#: js/SensorsBlocks.js:577 -#: plugins/rodi.rtp:218 -#.TRANS: verde -msgid "green" -msgstr "Qunir" - -#: js/PenBlocks.js:63 +#: js/blocks/PenBlocks.js:80 #.TRANS: amarillo msgid "yellow" msgstr "Q’illu" -#: js/PenBlocks.js:76 +#: js/blocks/PenBlocks.js:96 #: plugins/nutrition.rtp:164 #.TRANS: naranja msgid "orange" msgstr "q'illmu" -#: js/PenBlocks.js:89 -#: js/SensorsBlocks.js:633 -#: plugins/rodi.rtp:217 -#.TRANS: rojo -msgid "red" -msgstr "Puka" - -#: js/PenBlocks.js:102 +#: js/blocks/PenBlocks.js:128 #.TRANS: blanco msgid "white" msgstr "Yuraq" -#: js/PenBlocks.js:115 +#: js/blocks/PenBlocks.js:144 #.TRANS: negro msgid "black" msgstr "Yana" -#: js/PenBlocks.js:128 +#: js/blocks/PenBlocks.js:163 #.TRANS: iniciar relleno msgid "begin fill" msgstr "Hunt’achiyta qallariy" -#: js/PenBlocks.js:143 +#: js/blocks/PenBlocks.js:190 #.TRANS: Cargar proyecto desde archivo msgid "end fill" msgstr "pusariqta waqaychanamanta hunt’achimuy" -#: js/PenBlocks.js:159 -#: js/PenBlocks.js:386 +#: js/blocks/PenBlocks.js:212 +#: js/blocks/PenBlocks.js:560 #.TRANS: set the background color #.TRANS: rellenar pantalla msgid "background" msgstr " qhawanata hunt’achiy" -#: js/PenBlocks.js:206 -#: js/DictActions.js:71 -#: js/DictActions.js:149 -#: js/DictActions.js:186 +#: js/blocks/PenBlocks.js:274 +#: js/turtleactions/DictActions.js:71 +#: js/turtleactions/DictActions.js:138 +#: js/turtleactions/DictActions.js:170 #.TRANS: gris msgid "grey" msgstr "uqi" -#: js/PenBlocks.js:210 +#: js/blocks/PenBlocks.js:282 #.TRANS: El bloque gris devuelve el valor gris actual de la pluma. msgid "The Grey block returns the current pen grey value." msgstr "El bloque gris devuelve el valor gris actual de la pluma." -#: js/PenBlocks.js:243 -#: js/DictActions.js:69 -#: js/DictActions.js:147 -#: js/DictActions.js:185 +#: js/blocks/PenBlocks.js:340 +#: js/turtleactions/DictActions.js:69 +#: js/turtleactions/DictActions.js:136 +#: js/turtleactions/DictActions.js:169 #.TRANS: sombra msgid "shade" msgstr "llanthu" -#: js/PenBlocks.js:247 +#: js/blocks/PenBlocks.js:347 #.TRANS: El bloque sombra devuelve la sombra actual de la pluma. msgid "The Shade block returns the current pen shade value." msgstr "El bloque sombra devuelve la sombra actual de la pluma." -#: js/PenBlocks.js:280 -#: js/DictActions.js:67 -#: js/DictActions.js:145 -#: js/DictActions.js:184 +#: js/blocks/PenBlocks.js:405 +#: js/turtleactions/DictActions.js:67 +#: js/turtleactions/DictActions.js:134 +#: js/turtleactions/DictActions.js:168 #.TRANS: color msgid "color" msgstr "llimp'i" -#: js/PenBlocks.js:285 +#: js/blocks/PenBlocks.js:415 #.TRANS: El bloque color devuelve el color actual de la pluma. msgid "The Color block returns the current pen color." msgstr "sayaq llimp’i kutichin llimp’ita kunan llimp’qman" -#: js/PenBlocks.js:318 -#: js/DictActions.js:73 -#: js/DictActions.js:151 -#: js/DictActions.js:187 +#: js/blocks/PenBlocks.js:470 +#: js/turtleactions/DictActions.js:73 +#: js/turtleactions/DictActions.js:140 +#: js/turtleactions/DictActions.js:171 #.TRANS: tamaño de la pluma msgid "pen size" msgstr "Qillqanq sayayanin" -#: js/PenBlocks.js:322 +#: js/blocks/PenBlocks.js:474 #.TRANS: El bloque tamaño de la pluma devuelve el tamaño actual de la pluma. msgid "The Pen size block returns the current pen size value." msgstr "El bloque tamaño de la pluma devuelve el tamaño actual de la pluma." -#: js/PenBlocks.js:355 +#: js/blocks/PenBlocks.js:513 #.TRANS: fijar font msgid "set font" msgstr "tahachiy font" -#: js/PenBlocks.js:358 +#: js/blocks/PenBlocks.js:518 #.TRANS: El bloque fijar font establece el font utilizada por el bloque mostrar. msgid "The Set font block sets the font used by the Show block." msgstr "El bloque fijar font establece el font utilizada por el bloque mostrar." -#: js/PenBlocks.js:391 +#: js/blocks/PenBlocks.js:567 #.TRANS: El bloque Fondo establece el color de fondo de la ventana. msgid "The Background block sets the window background color." msgstr "El bloque Fondo establece el color de fondo de la ventana." -#: js/PenBlocks.js:408 +#: js/blocks/PenBlocks.js:598 #.TRANS: El bloque de línea sin relleno crea una línea con un centro hueco. msgid "The Hollow line block creates a line with a hollow center." msgstr "El bloque de línea sin relleno crea una línea con un centro hueco." -#: js/PenBlocks.js:415 +#: js/blocks/PenBlocks.js:606 #.TRANS: draw a line logo has a hollow space down its center #.TRANS: linea sin relleno msgid "hollow line" msgstr "Hunt’achina siq’i" -#: js/PenBlocks.js:462 +#: js/blocks/PenBlocks.js:675 #.TRANS: El bloque relleno rellena una forma con un color. msgid "The Fill block fills in a shape with a color." msgstr "El bloque relleno rellena una forma con un color." -#: js/PenBlocks.js:470 +#: js/blocks/PenBlocks.js:684 #.TRANS: fill in as a solid color #.TRANS: relleno msgid "fill" msgstr "Hunt’achina" -#: js/PenBlocks.js:527 +#: js/blocks/PenBlocks.js:761 #.TRANS: raise up the pen so logo it does not draw when it is moved #.TRANS: subir pluma msgid "pen up" msgstr "qillqanata uqariy" -#: js/PenBlocks.js:532 +#: js/blocks/PenBlocks.js:768 #.TRANS: El bloque Subir pluma levanta la pluma para que no dibuje. msgid "The Pen-up block raises the pen so that it does not draw." msgstr "Sayaqpi, qillqanata uqariy mana siq’inanpaq" -#: js/PenBlocks.js:552 +#: js/blocks/PenBlocks.js:802 #.TRANS: put down the pen so logo it draws when it is moved #.TRANS: bajar pluma msgid "pen down" msgstr "qillqanata urayachiy" -#: js/PenBlocks.js:557 +#: js/blocks/PenBlocks.js:810 #.TRANS: El bloque de Haciar pluma abajo baja la pluma para que dibuje. msgid "The Pen-down block lowers the pen so that it draws." msgstr "El bloque de Haciar pluma abajo baja la pluma para que dibuje." -#: js/PenBlocks.js:577 +#: js/blocks/PenBlocks.js:844 #.TRANS: set the width of the line drawn by the pen #.TRANS: fijar pluma msgid "set pen size" msgstr "Qillqanata tahachiy" -#: js/PenBlocks.js:583 +#: js/blocks/PenBlocks.js:854 #.TRANS: El bloque Fijar tamaño de la pluma de ajuste cambia el tamaño de la pluma. msgid "The Set-pen-size block changes the size of the pen." msgstr "Sayaq, qillqanaq tahachinanmi kutichin qillqaqa rakhuyanata, ñañuyachinata" -#: js/PenBlocks.js:623 +#: js/blocks/PenBlocks.js:913 #.TRANS: set degree of translucence of the pen color #.TRANS: fijar translucidez msgid "set translucency" msgstr " K’anchayninta tahachiy " -#: js/PenBlocks.js:627 -#.TRANS: El bloque fijar translucidez cambia la opacidad de la pluma. -msgid "The Set translucency block changes the opacity of the pen." -msgstr "El bloque fijar translucidez cambia la opacidad de la pluma." - -#: js/PenBlocks.js:668 -#.TRANS: fijar matiz -msgid "set hue" -msgstr " Llimp’inta tahachiy " - -#: js/PenBlocks.js:672 -#.TRANS: El bloque fijar matiz cambia la color de la pluma. -msgid "The Set hue block changes the color of the pen." -msgstr "El bloque fijar matiz cambia la color de la pluma." - -#: js/PenBlocks.js:711 -#.TRANS: fijar sombra -msgid "set shade" -msgstr " Llanthunta tahachiy " - -#: js/PenBlocks.js:717 -#.TRANS: El bloque Fijar sombra cambia el color de la pluma de oscuro a claro. -msgid "The Set-shade block changes the pen color from dark to light." -msgstr "" - -#: js/PenBlocks.js:757 -#.TRANS: set the level of vividness of the pen color -#.TRANS: fijar gris -msgid "set grey" -msgstr " Uqinta tahachiy " - -#: js/PenBlocks.js:761 -#.TRANS: El bloque fijar gris cambia la intensidad de la pluma. -msgid "The Set grey block changes the vividness of the pen color." -msgstr "El bloque fijar gris cambia la intensidad de la pluma." - -#: js/PenBlocks.js:800 -#.TRANS: fijar color -msgid "set color" -msgstr "Llinpinta tahachiy" - -#: js/PenBlocks.js:806 -#.TRANS: El bloque fijar color cambia el color de la pluma. -msgid "The Set-color block changes the pen color." -msgstr "Sayaq, tahachiy llmp’iyta qillqanaq llimp’iynita kutichin" - -#: js/VolumeBlocks.js:35 -#.TRANS: volumen del sintetizador -msgid "synth volume" -msgstr "volumen del sintetizador" - -#: js/VolumeBlocks.js:39 -#.TRANS: El bloque de volumen sintetizador devuelve el volumen actual del sintetizador actual. -msgid "The Synth volume block returns the current volume of the current synthesizer." -msgstr "" - -#: js/VolumeBlocks.js:47 -#: js/musicutils.js:730 -#: js/synthutils.js:56 -#.TRANS: musical instrument -#.TRANS: piano -msgid "piano" -msgstr "" - -#: js/VolumeBlocks.js:105 -#.TRANS: volumen maestro -msgid "master volume" -msgstr "t’uqya kamay" - -#: js/VolumeBlocks.js:109 -#.TRANS: El bloque volumen maestro devuelve nivel de volumen maestro. -msgid "The Master volume block returns the master volume." -msgstr "El bloque volumen maestro devuelve nivel de volumen maestro." - -#: js/VolumeBlocks.js:355 -#: js/VolumeBlocks.js:524 -#.TRANS: fijar volumen del sintetizador -msgid "set synth volume" -msgstr "fijar volumen del sintetizador" - -#: js/VolumeBlocks.js:362 -#: js/VolumeBlocks.js:545 -#.TRANS: sintetizador -msgid "synth" -msgstr "sintetizador" - -#: js/VolumeBlocks.js:403 -#: js/VolumeBlocks.js:577 -#: js/VolumeBlocks.js:740 -#: js/VolumeActions.js:173 -#.TRANS: Ajuste el volumen a 0 -msgid "Setting volume to 0." -msgstr "Ajuste el volumen a 0" - -#: js/VolumeBlocks.js:440 -#.TRANS: No se encuentra el sintetizador. -msgid "Synth not found" -msgstr "No se encuentra el sintetizador." - -#: js/VolumeBlocks.js:494 -#.TRANS: filar volumen del tambor -msgid "set drum volume" -msgstr "filar volumen del tambor" - -#: js/VolumeBlocks.js:530 -#.TRANS: El bloque Ajuste volumen del sintetizador cambiará el volumen de un sintetizador particular, -msgid "The Set synth volume block will change the volume of a particular synth," -msgstr "" - -#: js/VolumeBlocks.js:532 -#.TRANS: por ejemplo, guitarra, violín, tambor -msgid "eg guitar violin snare drum etc." -msgstr "por ejemplo, guitarra, violín, tambor" - -#: js/VolumeBlocks.js:534 -#.TRANS: El volumen predeterminado es 50. -msgid "The default volume is 50." -msgstr "El volumen predeterminado es 50." - -#: js/VolumeBlocks.js:536 -#.TRANS: El rango es de 0 para el silencio a 100 para el volumen completo. -msgid "The range is 0 for silence to 100 for full volume." -msgstr "El rango es de 0 para el silencio a 100 para el volumen completo." - -#: js/VolumeBlocks.js:597 -#.TRANS: establecer panorámica -msgid "set panning" -msgstr "" - -#: js/VolumeBlocks.js:603 -#.TRANS: El bloque Establecer Panorámica establece el panorama para todos los sintetizadores. -msgid "The Set Panning block sets the panning for all synthesizers." -msgstr "" - -#: js/VolumeBlocks.js:625 -#.TRANS: -msgid "Warning: Sound is coming out from only the left or right side." -msgstr "" - -#: js/VolumeBlocks.js:647 -#: js/VolumeBlocks.js:695 -#.TRANS: filar volumen maestro -msgid "set master volume" -msgstr "filar volumen maestro" - -#: js/VolumeBlocks.js:653 -#.TRANS: El bloque Ajuste volumen maestro establece el volumen para todos los sintetizadores. -msgid "The Set master volume block sets the volume for all synthesizers." -msgstr "" - -#: js/VolumeBlocks.js:784 -#.TRANS: El bloque Fijar volumen relativo cambia el volumen de las notas contenidas. -msgid "The Set relative volume block changes the volume of the contained notes." -msgstr "" - -#: js/VolumeBlocks.js:791 -#.TRANS: fijar volumen relativo -msgid "set relative volume" -msgstr "jach'ata maya k'ata arsuyaña" - -#: js/VolumeBlocks.js:857 -#.TRANS: decrescendo -msgid "decrescendo" -msgstr "decrescendo" - -#: js/VolumeBlocks.js:921 -#.TRANS: crescendo -msgid "crescendo" -msgstr "wiñachkan" - -#: js/ToneBlocks.js:34 -#.TRANS: oscilador -msgid "oscillator" -msgstr "maymikuynin" - -#: js/ToneBlocks.js:44 -#: js/timbre.js:1562 -#.TRANS: Partials refers to the number of sine waves combined into the sound. -#.TRANS: parciales -msgid "partials" -msgstr "chawakuna" - -#: js/ToneBlocks.js:76 -#.TRANS: Está agregando varios bloques de oscilador. -msgid "You are adding multiple oscillator blocks." -msgstr "maymikuqmanmi achka chiqasta yapachkan" - -#: js/ToneBlocks.js:144 -#: js/timbre.js:1225 -#.TRANS: a duo synthesizer combines a synth with a sequencer -#.TRANS: duo sintetizador -msgid "duo synth" -msgstr "iskayman pisiyachiqnin" - -#: js/ToneBlocks.js:149 -#.TRANS: El bloque Sintetizador Duo es un modulador de frecuencia doble usado para definir un timbre. -msgid "The Duo synth block is a duo-frequency modulator used to define a timbre." -msgstr "" - -#: js/ToneBlocks.js:157 -#: js/timbre.js:1476 -#.TRANS: velocidad del vibrato -msgid "vibrato rate" -msgstr "vibratupa usqhachiq" - -#: js/ToneBlocks.js:157 -#.TRANS: intensidad de vibrato -msgid "vibrato intensity" -msgstr "vibratupa kallpachaynin" - -#: js/ToneBlocks.js:185 -#: js/timbre.js:1221 -#.TRANS: AM (amplitude modulation) synthesizer -#.TRANS: AM sintetizador -msgid "AM synth" -msgstr "AM pisiyachiqnin" - -#: js/ToneBlocks.js:189 -#.TRANS: El bloque Sintetizador AM es un modulador de amplitud usado para definir un timbre. -msgid "The AM synth block is an amplitude modulator used to define a timbre." -msgstr "" - -#: js/ToneBlocks.js:224 -#: js/timbre.js:1223 -#.TRANS: FM (frequency modulation) synthesizer -#.TRANS: FM sintetizador -msgid "FM synth" -msgstr "FM pisiyachiqnin " - -#: js/ToneBlocks.js:228 -#.TRANS: El bloque Sintetizador de FM es un modulador de frecuencia utilizado para definir un timbre. -msgid "The FM synth block is a frequency modulator used to define a timbre." -msgstr "" - -#: js/ToneBlocks.js:262 -#.TRANS: parcial -msgid "partial" -msgstr "chawa" - -#: js/ToneBlocks.js:265 -msgid "The Partial block is used to specify a weight for a specific partial harmonic." -msgstr "" +#: js/blocks/PenBlocks.js:921 +#.TRANS: El bloque fijar translucidez cambia la opacidad de la pluma. +msgid "The Set translucency block changes the opacity of the pen." +msgstr "El bloque fijar translucidez cambia la opacidad de la pluma." -#: js/ToneBlocks.js:284 -#.TRANS: partials are weighted components in a harmonic series -#.TRANS: El peso parcial debe estar entre 0 y 1. -msgid "Partial weight must be between 0 and 1." -msgstr "chawapa llasayninqa chúsaqpi hinallataq huk chawpipin kanan" +#: js/blocks/PenBlocks.js:981 +#.TRANS: fijar matiz +msgid "set hue" +msgstr " Llimp’inta tahachiy " -#: js/ToneBlocks.js:297 -#.TRANS: partials are weighted components in a harmonic series -#.TRANS: El bloque Parcial debe usarse dentro de un bloque de parciales ponderados. -msgid "Partial block should be used inside of a Weighted-partials block." -msgstr "" +#: js/blocks/PenBlocks.js:989 +#.TRANS: El bloque fijar matiz cambia la color de la pluma. +msgid "The Set hue block changes the color of the pen." +msgstr "El bloque fijar matiz cambia la color de la pluma." -#: js/ToneBlocks.js:325 -#.TRANS: partials are weighted components in a harmonic series -#.TRANS: parcial ponderada -msgid "weighted partials" -msgstr "chawa chaninchasqa" +#: js/blocks/PenBlocks.js:1047 +#.TRANS: fijar sombra +msgid "set shade" +msgstr " Llanthunta tahachiy " -#: js/ToneBlocks.js:383 -#.TRANS: El bloque Armónicos agregará armónicos a las notas contenidas. -msgid "The Harmonic block will add harmonics to the contained notes." +#: js/blocks/PenBlocks.js:1057 +#.TRANS: El bloque Fijar sombra cambia el color de la pluma de oscuro a claro. +msgid "The Set-shade block changes the pen color from dark to light." msgstr "" -#: js/ToneBlocks.js:390 -#.TRANS: A harmonic is an overtone. -#.TRANS: armónico -msgid "harmonic" -msgstr "armónico" +#: js/blocks/PenBlocks.js:1111 +#.TRANS: set the level of vividness of the pen color +#.TRANS: fijar gris +msgid "set grey" +msgstr " Uqinta tahachiy " -#: js/ToneBlocks.js:431 -#.TRANS: El bloque Distorsión agrega distorsión al tono. -msgid "The Distortion block adds distortion to the pitch." -msgstr "q’iwiy chiqasqa kunkaman q’iwiyninta yapam" +#: js/blocks/PenBlocks.js:1119 +#.TRANS: El bloque fijar gris cambia la intensidad de la pluma. +msgid "The Set grey block changes the vividness of the pen color." +msgstr "El bloque fijar gris cambia la intensidad de la pluma." -#: js/ToneBlocks.js:438 -#: js/timbre.js:2100 -#.TRANS: distortion is an alteration in the sound -#.TRANS: distorsión -msgid "distortion" -msgstr "q’íwiy" +#: js/blocks/PenBlocks.js:1172 +#.TRANS: fijar color +msgid "set color" +msgstr "Llinpinta tahachiy" -#: js/ToneBlocks.js:487 -#.TRANS: El bloque Tremolo añade un efecto de vacilación. -msgid "The Tremolo block adds a wavering effect." -msgstr "Thalay chiqasqa iskayananpaq yapaykun" +#: js/blocks/PenBlocks.js:1182 +#.TRANS: El bloque fijar color cambia el color de la pluma. +msgid "The Set-color block changes the pen color." +msgstr "Sayaq, tahachiy llmp’iyta qillqanaq llimp’iynita kutichin" -#: js/ToneBlocks.js:495 -#: js/timbre.js:2092 -#.TRANS: a wavering effect in a musical tone -#.TRANS: tremolo -msgid "tremolo" -msgstr "Thalay" +#: js/blocks/PitchBlocks.js:141 +#.TRANS: musical transposition (adjustment of pitch up or down) +#.TRANS: transposición +msgid "transposition" +msgstr "haywapuynin" -#: js/ToneBlocks.js:500 -#: js/ToneBlocks.js:569 -#: js/ToneBlocks.js:630 -#: js/ToneBlocks.js:689 -#: js/timbre.js:2134 -#: js/timbre.js:2222 -#: js/timbre.js:2317 -#: js/timbre.js:2419 -#.TRANS: rate at which tremolo wavers -#.TRANS: velocidad -msgid "rate" -msgstr "utqay" +#: js/blocks/PitchBlocks.js:168 +#.TRANS: step down one note in current musical scale +#.TRANS: escalar bajar +msgid "scalar step down" +msgstr "wichay uraqay" -#: js/ToneBlocks.js:502 -#: js/ToneBlocks.js:630 -#: js/timbre.js:2137 -#: js/timbre.js:2328 -#.TRANS: amplitude of tremolo waver -#.TRANS: intensidad -msgid "depth" -msgstr "kallpa" +#: js/blocks/PitchBlocks.js:172 +#.TRANS: El bloque Escalar bajar devuelve el número de semitonos a la nota anterior en la tecla y modo actuales. +msgid "The Scalar step down block returns the number of semi-tones down to the previous note in the current key and mode." +msgstr "" -#: js/ToneBlocks.js:559 -#.TRANS: El bloque Phaser añade un sonido de barrido. -msgid "The Phaser block adds a sweeping sound." -msgstr "Phaser chiqasqa pichana kunkatan yapan" +#: js/blocks/PitchBlocks.js:190 +#.TRANS: step up one note in current musical scale +#.TRANS: escalar aumentar +msgid "scalar step up" +msgstr "wichay yapaykuy" -#: js/ToneBlocks.js:566 -#: js/timbre.js:2098 -#.TRANS: alter the phase of the sound -#.TRANS: phaser -msgid "phaser" -msgstr "phaser" +#: js/blocks/PitchBlocks.js:194 +#.TRANS: El bloque Escalar aumentar devuelve el número de semitonos hasta la siguiente nota en la tecla y modo actuales. +msgid "The Scalar step up block returns the number of semi-tones up to the next note in the current key and mode." +msgstr "" -#: js/ToneBlocks.js:569 -#: js/timbre.js:2422 -#.TRANS: octavas -msgid "octaves" -msgstr "pusaq patakuna" +#: js/blocks/PitchBlocks.js:212 +#.TRANS: the change measured in half-steps between the current pitch and the previous pitch +#.TRANS: cambio en tono +msgid "change in pitch" +msgstr "kunkan t’ikrasqa" -#: js/ToneBlocks.js:569 -#: js/timbre.js:2425 -#.TRANS: frecuencia de base -msgid "base frequency" -msgstr "tiyananpi sapakuti ruranan " +#: js/blocks/PitchBlocks.js:216 +#.TRANS: El cambio en el bloque de tono es la diferencia (en medio pasos) entre el tono actual que se está reproduciendo y el tono anterior. +msgid "The Change in pitch block is the difference (in half steps) between the current pitch being played and the previous pitch played." +msgstr "" -#: js/ToneBlocks.js:619 -#.TRANS: El bloque Chorus añade un efecto chorus. -msgid "The Chorus block adds a chorus effect." -msgstr "takich’unku chiqasqa takich’unku kayninta yapan" +#: js/blocks/PitchBlocks.js:243 +#.TRANS: the change measured in scale-steps between the current pitch and the previous pitch +#.TRANS: cambio en tono escalar +msgid "scalar change in pitch" +msgstr "cambio en tono escalar" -#: js/ToneBlocks.js:627 -#: js/timbre.js:2096 -#.TRANS: musical effect to simulate a choral sound -#.TRANS: coro -msgid "chorus" -msgstr "takich’unku" +#: js/blocks/PitchBlocks.js:250 +#: js/blocks/PitchBlocks.js:432 +#: js/blocks/PitchBlocks.js:1667 +#: js/turtleactions/DictActions.js:89 +#: js/widgets/temperament.js:610 +#: js/widgets/temperament.js:614 +#: js/widgets/temperament.js:855 +#.TRANS: convert current note to piano key (1-88) +#.TRANS: a mapping of pitch to the 88 piano keys +#.TRANS: número de tono +msgid "pitch number" +msgstr "kunkapa yupaynin" -#: js/ToneBlocks.js:630 -#.TRANS: retraso -msgid "delay" -msgstr "qhipay" +#: js/blocks/PitchBlocks.js:256 +#.TRANS: El bloque Número de tono es el valor del tono de la nota que se está reproduciendo actualmente. +msgid "The Pitch number block is the value of the pitch of the note currently being played." +msgstr "" -#: js/ToneBlocks.js:678 -#.TRANS: El bloque Vibrato agrega una variación rápida y leve en el tono. -msgid "The Vibrato block adds a rapid, slight variation in pitch." -msgstr "Khatatay chiqasqa utqay chaninchayninta hinallataq pisi kunkanta yapan" +#: js/blocks/PitchBlocks.js:329 +#: js/blocks/PitchBlocks.js:433 +#.TRANS: the current pitch expressed in Hertz +#.TRANS: tono en hertz +msgid "pitch in hertz" +msgstr "hertzpi kunkan" -#: js/ToneBlocks.js:686 -#: js/timbre.js:2094 -#.TRANS: a rapid, slight variation in pitch -#.TRANS: vibrato -msgid "vibrato" -msgstr "khatatay" +#: js/blocks/PitchBlocks.js:334 +#.TRANS: El bloque Tono en Hertz es el valor en hercios del tono de la nota que se está reproduciendo actualmente. +msgid "The Pitch in Hertz block is the value in Hertz of the pitch of the note currently being played." +msgstr "" -#: js/ToneBlocks.js:689 -#: js/timbre.js:2221 -#.TRANS: intensidad -msgid "intensity" -msgstr "kallpa" +#: js/blocks/PitchBlocks.js:367 +#: js/turtleactions/DictActions.js:87 +#.TRANS: tono actual +msgid "current pitch" +msgstr "" -#: js/ToneBlocks.js:733 -#.TRANS: select synthesizer -#.TRANS: fijar synth -msgid "set synth" -msgstr "synth watay" +#: js/blocks/PitchBlocks.js:373 +#.TRANS: El bloque de tono actual se utiliza con el bloque convertidor de tono. En el ejemplo anterior, el tono actual, sol 4, se muestra como 392 hercios. +msgid "The Current Pitch block is used with the Pitch Converter block. In the example above, current pitch, sol 4, is displayed as 392 hertz." +msgstr "" -#: js/ToneBlocks.js:804 -#.TRANS: nombre del sintetizador -msgid "synth name" -msgstr " pisiyachiqninpa sutin" +#: js/blocks/PitchBlocks.js:410 +#.TRANS: Este bloque convierte el valor de tono de la última nota tocada en diferentes formatos como hertz, nombre de letra, número de tono, etc. +msgid "This block converts the pitch value of the last note played into different formats such as hertz, letter name, pitch number, et al." +msgstr "" -#: js/ToneBlocks.js:842 -#.TRANS: fijar instrumento predeterminado -msgid "set default instrument" +#: js/blocks/PitchBlocks.js:434 +#.TRANS: alfabeto +msgid "alphabet" msgstr "" -#: js/ToneBlocks.js:895 -#: js/ToneBlocks.js:943 -#.TRANS: set the characteristics of a custom instrument -#.TRANS: fijar instrumento -msgid "set instrument" -msgstr "ruk’awita churana" +#: js/blocks/PitchBlocks.js:436 +#.TRANS: Translate as "alphabet class" +#.TRANS: clase de alfabeto +msgid "letter class" +msgstr "" -#: js/ToneBlocks.js:898 -#: js/ToneBlocks.js:926 -#: js/ToneBlocks.js:932 -#.TRANS: El bloque Fijar Instrumentos selecciona una voz para el sintetizador, -msgid "The Set instrument block selects a voice for the synthesizer," +#: js/blocks/PitchBlocks.js:437 +#.TRANS: clase de solfege +msgid "solfege class" msgstr "" -#: js/ToneBlocks.js:900 -#: js/ToneBlocks.js:934 -#.TRANS: Por ejemplo, guitarra, piano, violín o cello -msgid "eg guitar piano violin or cello." -msgstr "kitara, piyanu, wiyulin kallamanta wiyula hina" +#: js/blocks/PitchBlocks.js:438 +#.TRANS: musical y +msgid "staff y" +msgstr "" -#: js/ToneBlocks.js:1015 -#.TRANS: Importe un archivo de sonido para usarlo como instrumento y establezca su centro de tono. -msgid "Import a sound file to use as an instrument and set its pitch center." +#: js/blocks/PitchBlocks.js:439 +#.TRANS: sílaba solfege +msgid "solfege syllable" msgstr "" -#: js/ToneBlocks.js:1110 -#.TRANS: Cargue un archivo de sonido para conectarlo con el bloque de muestra. -msgid "Upload a sound file to connect with the sample block." +#: js/blocks/PitchBlocks.js:440 +#.TRANS: clase de tono +msgid "pitch class" msgstr "" -#: js/MeterBlocks.js:34 -#.TRANS: musical meter (time signature), e.g., 4:4 -#.TRANS: meter actuale -msgid "current meter" -msgstr "actualita haykuchiy" +#: js/blocks/PitchBlocks.js:441 +#.TRANS: clase de escala +msgid "scalar class" +msgstr "" -#: js/MeterBlocks.js:85 -#.TRANS: number of beats per minute -#.TRANS: factor de ritmo -msgid "beat factor" -msgstr "p’ullpuqiy" +#: js/blocks/PitchBlocks.js:443 +#.TRANS: nth grado +msgid "nth degree" +msgstr "" -#: js/MeterBlocks.js:161 -#.TRANS: El bloque de latidos por minuto devuelve los latidos actuales por minuto. -msgid "The Beats per minute block returns the current beats per minute." +#: js/blocks/PitchBlocks.js:444 +#.TRANS: tono a la sombra +msgid "pitch to shade" msgstr "" -#: js/MeterBlocks.js:169 -#: js/status.js:152 -#.TRANS: number of beats played per minute -#.TRANS: pulsaciones por minuto -msgid "beats per minute2" -msgstr "minutupi p’ullpuqiy" +#: js/blocks/PitchBlocks.js:445 +#.TRANS: tono a color +msgid "pitch to color" +msgstr "" -#: js/MeterBlocks.js:169 -#: js/MeterBlocks.js:1056 -#: js/MeterBlocks.js:1133 -#: js/MeterBlocks.js:1211 -#.TRANS: sets tempo by defining a beat and beats per minute -#.TRANS: pulsaciones por minuto -msgid "beats per minute" -msgstr "minutupi p’ullpuqiy" +#: js/blocks/PitchBlocks.js:629 +#: js/widgets/musickeyboard.js:735 +#.TRANS: MIDI is a technical standard for electronic music +#.TRANS: MIDI +msgid "MIDI" +msgstr "MIDI" -#: js/MeterBlocks.js:233 -#.TRANS: count of current musical measure in meter -#.TRANS: cuenta de medidas -msgid "measure count" -msgstr "tupusqakunapa yupaynin" +#: js/blocks/PitchBlocks.js:642 +#.TRANS: set an offset associated with the numeric piano keyboard mapping +#.TRANS: fijar offset del número de tono +msgid "set pitch number offset" +msgstr "kunkapa yupayninta watapuna " -#: js/MeterBlocks.js:241 -#.TRANS: El bloque de conteo de medidas devuelve la medida actual. -msgid "The Measure count block returns the current measure." -msgstr "tupunakuna yupay chiqasqa kunan tupunata kutichipun" +#: js/blocks/PitchBlocks.js:645 +#.TRANS: El bloque Fijar del número de tono establecido se usa para establecer el desplazamiento para asignar números de tono a tono y octava. +msgid "The Set pitch number offset block is used to set the offset for mapping pitch numbers to pitch and octave." +msgstr "" -#: js/MeterBlocks.js:290 -#.TRANS: count of current beat in the meter -#.TRANS: cuenta de latidos -msgid "beat count" -msgstr "p’ullpuqiyta yupay" +#: js/blocks/PitchBlocks.js:679 +#.TRANS: convert piano key number (1-88) to pitch +#.TRANS: número a tono +msgid "number to pitch" +msgstr "yupay kunkaman" -#: js/MeterBlocks.js:300 -#: js/MeterBlocks.js:311 -#: js/MeterBlocks.js:565 -#: js/MeterBlocks.js:576 -#.TRANS: El bloque Conteo de tiempos es el número del tiempo actual, -msgid "The Beat count block is the number of the current beat," +#: js/blocks/PitchBlocks.js:682 +#.TRANS: El bloque Número a tono convertirá un número de tono en un nombre pich. +msgid "The Number to pitch block will convert a pitch number to a pich name." +msgstr "" + +#: js/blocks/PitchBlocks.js:715 +#.TRANS: convert piano key number (1-88) to octave +#.TRANS: número a octava +msgid "number to octave" +msgstr "yupay pusaq pataman" + +#: js/blocks/PitchBlocks.js:717 +#.TRANS: El bloque Número a octava convertirá un número de tono en una octava. +msgid "The Number to octave block will convert a pitch number to an octave." msgstr "" -#: js/MeterBlocks.js:313 -#: js/MeterBlocks.js:578 -#.TRANS: por ejemplo, 1, 2, 3, o 4. -msgid "eg 1, 2, 3, or 4." -msgstr "kanman huk, iskay, kimsa, kallanmantaq tawa" +#: js/blocks/PitchBlocks.js:726 +#.TRANS: y para tono +msgid "y to pitch" +msgstr "" -#: js/MeterBlocks.js:368 -#.TRANS: count the number of notes -#.TRANS: cuenta las notas -msgid "sum note values" -msgstr "nota yupay" +#: js/blocks/PitchBlocks.js:729 +#.TRANS: El bloque Y a tono convertirá una posición de pentagrama y a la notación de tono correspondiente. +msgid "Y to pitch block will convert a staff y position to corresponding pitch notation." +msgstr "" -#: js/MeterBlocks.js:376 -#: js/MeterBlocks.js:440 -#.TRANS: El bloque Contador de notas se puede usar para contar el número de notas contenidas. -msgid "The Note counter block can be used to count the number of contained notes." +#: js/blocks/PitchBlocks.js:841 +#.TRANS: selector accidental +msgid "accidental selector" msgstr "" -#: js/MeterBlocks.js:432 -#.TRANS: count the number of notes -#.TRANS: cuenta las notas -msgid "note counter" +#: js/blocks/PitchBlocks.js:844 +#.TRANS: El bloque Selector de accidental se usa para elegir entre doble filo, agudo, natural, plano y doble plano. +msgid "The Accidental selector block is used to choose between double-sharp, sharp, natural, flat, and double-flat." msgstr "" -#: js/MeterBlocks.js:496 -#.TRANS: number of whole notes that have been played -#.TRANS: notas completa jugadas -msgid "whole notes played" -msgstr "hunt’asqa nota pukllasqakuna" +#: js/blocks/PitchBlocks.js:858 +#.TRANS: El tono puede especificarse en términos de ni dha pa ma ga re sa. +msgid "Pitch can be specified in terms of ni dha pa ma ga re sa." +msgstr "kunkaqa kay tukuykunapi ni dha pa ma ga re sa alayrichikun " -#: js/MeterBlocks.js:505 -msgid "The Whole notes played block returns the total number of whole notes played." +#: js/blocks/PitchBlocks.js:872 +#.TRANS: El tono puede especificarse en términos de C D E F G A B. +msgid "Pitch can be specified in terms of C D E F G A B." +msgstr " kunkaqa kay tukuykunapi C D E F G A B alayrichikun " + +#: js/blocks/PitchBlocks.js:884 +#.TRANS: +msgid "solfege" msgstr "" -#: js/MeterBlocks.js:555 -#: js/DictActions.js:83 -#.TRANS: number of notes that have been played -#.TRANS: notas jugadas -msgid "notes played" -msgstr "notakuna pukllasqakuna" +#: js/blocks/PitchBlocks.js:887 +#.TRANS: El tono puede especificarse en términos de do re mi fa sol la si. +msgid "Pitch can be specified in terms of do re mi fa sol la ti." +msgstr " kunkaqa kay tukuykunapi do re mi fa sol la si alayrichikun " -#: js/MeterBlocks.js:653 -msgid "The No clock block decouples the notes from the master clock." +#: js/blocks/PitchBlocks.js:922 +#.TRANS: El bloque Invertir gira cualquier nota contenida alrededor de una nota de destino. +msgid "The Invert block rotates any contained notes around a target note." msgstr "" -#: js/MeterBlocks.js:661 -#.TRANS: don't lock notes to master clock -#.TRANS: sin reloj -msgid "no clock" -msgstr "mana intiwatanayuq" +#: js/blocks/PitchBlocks.js:929 +#.TRANS: pitch inversion rotates a pitch around another pitch +#.TRANS: invertir +msgid "invert" +msgstr "t’ikray" -#: js/MeterBlocks.js:700 -#.TRANS: en latido débil hacer -msgid "on weak beat do" -msgstr "mana kallpayuq p’ullpuqiypi rurana" +#: js/blocks/PitchBlocks.js:968 +#.TRANS: pitch inversion rotates a pitch around another pitch (odd number) +#.TRANS: invertir (impar) +msgid "invert (odd)" +msgstr "t’ikray (sapallan" -#: js/MeterBlocks.js:705 -msgid "The On-weak-beat block lets you specify actions to take on weak (off) beats." +#: js/blocks/PitchBlocks.js:1001 +#.TRANS: pitch inversion rotates a pitch around another pitch (even number) +#.TRANS: invertir (par) +msgid "invert (even)" +msgstr "t’ikray (masantin)" + +#: js/blocks/PitchBlocks.js:1022 +#.TRANS: register is the octave of the current pitch +#.TRANS: registro +msgid "register" +msgstr "waqaychasqa" + +#: js/blocks/PitchBlocks.js:1026 +#.TRANS: El bloque Registro proporciona una manera fácil de modificar el registro (octava) de las notas que lo siguen. +msgid "The Register block provides an easy way to modify the register (octave) of the notes that follow it." msgstr "" -#: js/MeterBlocks.js:750 -#.TRANS: en latido fuerte hacer -msgid "on strong beat" -msgstr "kallpayuq p’ullpuqiypi rurana" +#: js/blocks/PitchBlocks.js:1047 +#.TRANS: cents are units used to specify the ratio between pitches. There are 100 cents between successive notes. +#.TRANS: +msgid "50 cents" +msgstr "" -#: js/MeterBlocks.js:758 -msgid "The On-strong-beat block lets you specify actions to take on specified beats." +#: js/blocks/PitchBlocks.js:1102 +#.TRANS: El bloque de transposición de semitono desplazará los pasos contenidos dentro de los bloques de notas hacia arriba (o hacia abajo) medio pasos. +msgid "The Semi-tone transposition block will shift the pitches contained inside Note blocks up (or down) by half steps." msgstr "" -#: js/MeterBlocks.js:769 -#.TRANS: latidos -msgid "beat" -msgstr "p’ullpuqiy" +#: js/blocks/PitchBlocks.js:1104 +#.TRANS: En el ejemplo que se muestra arriba, sol se desplaza hasta sol#. +msgid "In the example shown above, sol is shifted up to sol#." +msgstr "wichaypi qhawachisqapi hina, solqa solkama purin" -#: js/MeterBlocks.js:813 -#.TRANS: en cada latodo hacer -msgid "on every beat do" -msgstr "en cada latodo hacer" +#: js/blocks/PitchBlocks.js:1110 +#.TRANS: adjust the amount of shift (up or down) of a pitch +#.TRANS: transposición semitono +msgid "semi-tone transpose" +msgstr "kuskan kunka Haywapuynin" -#: js/MeterBlocks.js:821 -msgid "The On-every-beat block lets you specify actions to take on every beat." +#: js/blocks/PitchBlocks.js:1143 +#.TRANS: El bloque transponer por razón cambiará los tonos contenidos dentro de los bloques de notas hacia arriba (o hacia abajo) en una proporción +msgid "The Transpose by Ratio block will shift the pitches contained inside Note blocks up (or down) by a ratio" msgstr "" -#: js/MeterBlocks.js:874 -#.TRANS: en cada nota hacer -msgid "on every note do" -msgstr "en cada nota hacer" - -#: js/MeterBlocks.js:882 -msgid "The On-every-note block lets you specify actions to take on every note." +#: js/blocks/PitchBlocks.js:1149 +#.TRANS: adjust the amount of shift (up or down) of a pitch +#.TRANS: transponer por razón +msgid "transpose by ratio" msgstr "" -#: js/MeterBlocks.js:928 -#: js/MeterBlocks.js:999 -#.TRANS: sets tempo by defining a beat and beats per minute -#.TRANS: latidos por minuto de dominar -msgid "master beats per minute" -msgstr "minutupi p’ullpuqiy hap’iy" +#: js/blocks/PitchBlocks.js:1232 +#.TRANS: down sixth means the note is five scale degrees below current note +#.TRANS: sexto abajo +msgid "down sixth" +msgstr "uraypi suqta pata" -#: js/MeterBlocks.js:952 -#: js/MeterBlocks.js:1078 -#: js/MeterBlocks.js:1135 -#.TRANS: lpm -msgid "bpm" -msgstr "bmp" +#: js/blocks/PitchBlocks.js:1251 +#.TRANS: down third means the note is two scale degrees below current note +#.TRANS: tercero abajo +msgid "down third" +msgstr "uraypi kimsa pata" -#: js/MeterBlocks.js:952 -#: js/MeterBlocks.js:1078 -#: js/MeterBlocks.js:1135 -#.TRANS: valor de latidos -msgid "beat value" -msgstr "p’ullpuqiypa kaqnin" +#: js/blocks/PitchBlocks.js:1270 +#.TRANS: seventh means the note is the six scale degrees above current note +#.TRANS: séptimo +msgid "seventh" +msgstr "qanchis pata" -#: js/MeterBlocks.js:1024 -#: js/MeterBlocks.js:1167 -#: js/MeterBlocks.js:1241 -#.TRANS: Latidos por minuto debe ser > 30. -msgid "Beats per minute must be > 30." -msgstr "minutupi p’ullpuqiyniqa 30 kurakmi kanan" +#: js/blocks/PitchBlocks.js:1289 +#.TRANS: sixth means the note is the five scale degrees above current note +#.TRANS: sexto +msgid "sixth" +msgstr "suqta pata" -#: js/MeterBlocks.js:1027 -#: js/MeterBlocks.js:1170 -#: js/MeterBlocks.js:1244 -#.TRANS: Los latidos por minuto como máximo es de 1000. -msgid "Maximum beats per minute is 1000." -msgstr " minutupi p’ullpuqiyniqa may tukupunankamaqa waranqan (1000) kanan" +#: js/blocks/PitchBlocks.js:1308 +#.TRANS: fifth means the note is the four scale degrees above current note +#.TRANS: quinto +msgid "fifth" +msgstr "phichqa pata" -#: js/MeterBlocks.js:1068 -msgid "The Beats per minute block sets the number of 1/4 notes per minute." -msgstr "" +#: js/blocks/PitchBlocks.js:1328 +#.TRANS: fourth means the note is three scale degrees above current note +#.TRANS: cuarto +msgid "fourth" +msgstr "tawa pata" -#: js/MeterBlocks.js:1279 -#.TRANS: anacrusis -#.TRANS: -msgid "pickup" -msgstr "pallay" +#: js/blocks/PitchBlocks.js:1347 +#.TRANS: third means the note is two scale degrees above current note +#.TRANS: tercio +msgid "third" +msgstr "kimsa pata" -#: js/MeterBlocks.js:1367 -#.TRANS: número de latidos -msgid "number of beats" -msgstr "p’ullpuqiypa yupanan" +#: js/blocks/PitchBlocks.js:1366 +#.TRANS: second means the note is one scale degree above current note +#.TRANS: segundo +msgid "second" +msgstr "iskay pata" -#: js/DictBlocks.js:77 -#.TRANS: mostrar diccionario -msgid "show dictionary" +#: js/blocks/PitchBlocks.js:1407 +#.TRANS: El bloque Transposición escalar desplazará los tonos contenidos dentro de los bloques de notas hacia arriba (o hacia abajo) de la escala. +msgid "The Scalar transposition block will shift the pitches contained inside Note blocks up (or down) the scale." msgstr "" -#: js/DictBlocks.js:129 -#.TRANS: El bloque Diccionario devuelve un diccionario. -msgid "The Dictionary block returns a dictionary." -msgstr "" +#: js/blocks/PitchBlocks.js:1409 +#.TRANS: En el ejemplo que se muestra arriba, el sol se desplaza hacia arriba a la. +msgid "In the example shown above, sol is shifted up to la." +msgstr "En el ejemplo que se muestra arriba, el sol se desplaza hacia arriba a la." -#: js/DictBlocks.js:197 -#: js/DictBlocks.js:339 -#.TRANS: El bloque obtener-valor devuelve un valor en el diccionario para una clave especificada. -msgid "The Get-dict block returns a value in the dictionary for a specified key." -msgstr "" +#: js/blocks/PitchBlocks.js:1416 +#.TRANS: adjust the amount of shift (up or down) of a pitch by musical scale (scalar) steps +#.TRANS: transposición escalar +msgid "scalar transpose" +msgstr " sayayninta tupachiy haywapuynin" -#: js/DictBlocks.js:212 -#: js/DictBlocks.js:354 -#.TRANS: retrieve a value from the dictionary with a given key -#.TRANS: obtener valor -msgid "get value" -msgstr "" +#: js/blocks/PitchBlocks.js:1451 +#.TRANS: El bloque Accidental se utiliza para crear objetos punzantes y pisos. +msgid "The Accidental block is used to create sharps and flats" +msgstr "Yanapaqnin chiqasqa chhukuna hinallataq saruna imakunapas paqarichiy llamk’anam" -#: js/DictBlocks.js:215 -#: js/DictBlocks.js:216 -#: js/DictBlocks.js:289 -#: js/DictBlocks.js:290 -#: js/DictBlocks.js:357 -#: js/DictBlocks.js:430 -#: js/DictBlocks.js:431 -#.TRANS: clave -msgid "key2" +#: js/blocks/PitchBlocks.js:1458 +#.TRANS: An accidental is a modification to a pitch, e.g., sharp or flat. +#.TRANS: anular accidental +msgid "accidental override" msgstr "" -#: js/DictBlocks.js:271 -#: js/DictBlocks.js:411 -#.TRANS: El bloque valor-adjusto establece un valor en el diccionario para una clave específica. -msgid "The Set-dict block sets a value in the dictionary for a specified key." +#: js/blocks/PitchBlocks.js:1581 +#.TRANS: El bloque Hertz (en combinación con un bloque numérico) reproducirá un sonido a la frecuencia especificada. +msgid "The Hertz block (in combination with a Number block) will play a sound at the specified frequency." msgstr "" -#: js/DictBlocks.js:286 -#: js/DictBlocks.js:427 -#.TRANS: set a value in the dictionary for a given key -#.TRANS: valor ajustado -msgid "set value" +#: js/blocks/PitchBlocks.js:1671 +#.TRANS: El bloque de número de tono reproducirá un tono asociado por su número, p. 0 para C y 7 para G. +msgid "The Pitch Number block will play a pitch associated by its number, e.g. 0 for C and 7 for G." msgstr "" -#: js/ExtrasBlocks.js:33 -#.TRANS: fracción -msgid "fraction" -msgstr "phatmi" - -#: js/ExtrasBlocks.js:36 -#.TRANS: convertir un número racional en fracción -msgid "Convert a float to a fraction" -msgstr "convertir un número racional en fracción" - -#: js/ExtrasBlocks.js:93 -#.TRANS: guardar como ABC -msgid "save as ABC" -msgstr "ABC hinaman waqaychay" - -#: js/ExtrasBlocks.js:96 -#: js/ExtrasBlocks.js:132 -#: js/ExtrasBlocks.js:168 -#.TRANS: título -msgid "title" -msgstr "umalliq suti" +#: js/blocks/PitchBlocks.js:1703 +#: js/blocks/PitchBlocks.js:1745 +#.TRANS: a numeric mapping of the notes in an octave based on the musical mode +#.TRANS: a numeric mapping of the notes in an octave based on the musical mode +#.TRANS: nth tono modal +msgid "nth modal pitch" +msgstr "nth tono modal" -#: js/ExtrasBlocks.js:129 -#.TRANS: guardar como Lilypond -msgid "save as Lilypond" -msgstr "Lilypondtahina waqaychay" +#: js/blocks/PitchBlocks.js:1706 +#.TRANS: Nth Modal Pitch toma el patrón de tonos en semitonos para un modo y hace que cada punto sea un grado del modo, +msgid "n^th Modal Pitch takes the pattern of pitches in semitones for a mode and makes each point a degree of the mode," +msgstr "" -#: js/ExtrasBlocks.js:165 -#.TRANS: guardar como SVG -msgid "save as SVG" -msgstr "SVGtahina waqaychay" +#: js/blocks/PitchBlocks.js:1708 +#.TRANS: comenzando desde 1 e independientemente del marco tonal (es decir, no siempre 8 notas en la octava) +msgid "starting from 1 and regardless of tonal framework (i.e. not always 8 notes in the octave)" +msgstr "" -#: js/ExtrasBlocks.js:216 -#.TRANS: sin fondo -msgid "no background" -msgstr "Mana imayuq" +#: js/blocks/PitchBlocks.js:1749 +#.TRANS: Nth modal tono un número como entrada como el nth grado para el modo dado. 0 es la primera posición, 1 es la segunda, -1 es la nota anterior a la primera, etc. +msgid "N^th Modal Pitch takes a number as an input as the n^th degree for the given mode. 0 is the first position, 1 is the second, -1 is the note before the first etc." +msgstr "" -#: js/ExtrasBlocks.js:219 -#.TRANS: El bloque Sin fondo elimina el fondo de la salida SVG guardada. -msgid "The No background block eliminates the background from the saved SVG output." +#: js/blocks/PitchBlocks.js:1751 +#.TRANS: Los tonos cambian según el modo especificado sin necesidad de grafías. +msgid "The pitches change according to the mode specified without any need for respellings." msgstr "" -#: js/ExtrasBlocks.js:247 -#.TRANS: mostrar bloques -msgid "show blocks" -msgstr " chiqaskunata qhawachiy" +#: js/blocks/PitchBlocks.js:1790 +#.TRANS: El grado de escala es una convención común en la música. El grado de ecala ofrece siete posiciones posibles en la escala (1-7) y puede modificarse mediante alteraciones. +msgid "Scale Degree is a common convention in music. Scale Degree offers seven possible positions in the scale (1-7) and can be modified via accidentals." +msgstr "" -#: js/ExtrasBlocks.js:249 -#.TRANS: El bloque mostrar bloques muestra los bloques. -msgid "The Show blocks block shows the blocks." -msgstr "El bloque mostrar bloques muestra los bloques." +#: js/blocks/PitchBlocks.js:1792 +#.TRANS: El grado de la escala de 1 es siempre el primer tono de una escala determinada, independientemente de la octava. +msgid "Scale Degree 1 is always the first pitch in a given scale, regardless of octave." +msgstr "" -#: js/ExtrasBlocks.js:274 -#.TRANS: ocultar bloques -msgid "hide blocks" -msgstr " chiqaskunata pakay" +#: js/blocks/PitchBlocks.js:1814 +#.TRANS: step some number of notes in current musical scale +#.TRANS: paso escalar +msgid "scalar step" +msgstr "wichayman challqa" -#: js/ExtrasBlocks.js:276 -#.TRANS: El bloque ocultar esconde los bloques. -msgid "The Hide blocks block hides the blocks." -msgstr "El bloque ocultar esconde los bloques." +#: js/blocks/PitchBlocks.js:1819 +#.TRANS: El bloque Paso escalar (en combinación con un bloque numérico) reproducirá el siguiente tono en una escala, +msgid "The Scalar Step block (in combination with a Number block) will play the next pitch in a scale," +msgstr "" -#: js/ExtrasBlocks.js:305 -#: js/ExtrasBlocks.js:335 -#.TRANS: El bloque Espacio se utiliza para agregar espacio entre bloques. -msgid "The Space block is used to add space between blocks." -msgstr " Qaylla chiqasqa chiqaspurakuna qayllayuq kanankupaq yapaq yapanapaq" +#: js/blocks/PitchBlocks.js:1821 +#.TRANS: por ejemplo, si la última nota tocada fue sol, el paso escalar 1 tocará la. +msgid "eg if the last note played was sol, Scalar Step 1 will play la." +msgstr "" -#: js/ExtrasBlocks.js:373 -#.TRANS: esperar -msgid "wait" -msgstr "suyay" +#: js/blocks/PitchBlocks.js:1857 +#.TRANS: The Pitch block specifies the pitch name and octave of a note that together determine the frequency of the note. +msgid "The Pitch block specifies the pitch name and octave of a note that together determine the frequency of the note." +msgstr "" -#: js/ExtrasBlocks.js:376 -#.TRANS: El bloque Espera detiene el programa durante un número específico de segundos. -msgid "The Wait block pauses the program for a specified number of seconds." +#: js/blocks/ProgramBlocks.js:33 +#.TRANS: El bloque Cargar-pila-en-app carga la pila en una página web. +msgid "The Load-heap-from-app block loads the heap from a web page." msgstr "" -#: js/ExtrasBlocks.js:430 -#: plugins/facebook.rtp:30 -#.TRANS: comentar -msgid "comment" -msgstr "rimariy" +#: js/blocks/ProgramBlocks.js:44 +#.TRANS: load the heap contents from a URL +#.TRANS: cargar pila desde aplicación +msgid "load heap from App" +msgstr "App taypita kunaymana wakichaña" -#: js/ExtrasBlocks.js:466 -#.TRANS: imprimir -msgid "print" -msgstr "ñit'iy" +#: js/blocks/ProgramBlocks.js:95 +#.TRANS: Error de análisis de datos JSON. +msgid "Error parsing JSON data:" +msgstr "JSON wakichatanaka uñakipäwina pantjäwi" -#: js/ExtrasBlocks.js:473 -#.TRANS: El bloque Imprimir muestra texto en la parte superior de la pantalla. -msgid "The Print block displays text at the top of the screen." -msgstr "Nit’iy chiqasqa pantallapa hawanpi qillqata qhawachikun" +#: js/blocks/ProgramBlocks.js:100 +#.TRANS: 404: Página no encontrada. +msgid "404: Page not found" +msgstr "mana tarisqa p’anqa" -#: js/ExtrasBlocks.js:579 -#.TRANS: mostrar cuadrícula -msgid "display grid" -msgstr "mostrar cuadrícula" +#: js/blocks/ProgramBlocks.js:133 +#.TRANS: El bloque Guardar-pila-en-app guarda la pila en una página web. +msgid "The Save-heap-to-app block saves the heap to a web page." +msgstr "El bloque Guardar-pila-en-app guarda la pila en una página web." -#: js/ExtrasBlocks.js:584 -#.TRANS: Mostrar el bloque de cuadrícula cambia el tipo de cuadrícula -msgid "The Display Grid Block changes the grid type" -msgstr "Mostrar el bloque de cuadrícula cambia el tipo de cuadrícula" +#: js/blocks/ProgramBlocks.js:144 +#.TRANS: save the heap contents to a URL +#.TRANS: guardar pila a aplicación +msgid "save heap to App" +msgstr "Llapanta kay qutupi waqaychana" -#: js/ExtrasBlocks.js:686 -#: js/ExtrasBlocks.js:705 -#: js/ExtrasBlocks.js:728 -#: js/ExtrasBlocks.js:751 -#: js/ExtrasBlocks.js:769 -#: js/ExtrasBlocks.js:788 -#: js/ExtrasBlocks.js:807 -#: js/ExtrasBlocks.js:826 -#.TRANS: desconocido -msgid "unknown" -msgstr "Mana riqsisqa" +#: js/blocks/ProgramBlocks.js:189 +#.TRANS: Pilas tortuga no contiene un montón válida para +msgid "Cannot find a valid heap for" +msgstr "Manam llapan qutupi tarikunchu" -#: js/SensorsBlocks.js:36 -#.TRANS: El bloque de entrada solicita la entrada del teclado. -msgid "The Input block prompts for keyboard input." -msgstr "" +#: js/blocks/ProgramBlocks.js:206 +#.TRANS: El bloque Cargar pila carga la pila de un archivo. +msgid "The Load-heap block loads the heap from a file." +msgstr "El bloque Cargar pila carga la pila de un archivo." -#: js/SensorsBlocks.js:46 -#.TRANS: el input -msgid "input" -msgstr "haykuna" +#: js/blocks/ProgramBlocks.js:217 +#.TRANS: load the heap from a file +#.TRANS: cargar pila +msgid "load heap" +msgstr "Qututa apachiy" -#: js/SensorsBlocks.js:64 -#.TRANS: ingrese un valor -msgid "Input a value" -msgstr "ingrese un valor" +#: js/blocks/ProgramBlocks.js:270 +#.TRANS: El archivo seleccionado no contiene un pila válida. +msgid "The file you selected does not contain a valid heap." +msgstr "Wakichata chhijllata yaqha wakichataniwa" -#: js/SensorsBlocks.js:126 -#.TRANS: valor de entrada -msgid "input value" -msgstr "chaninchaqta haykuchiy" +#: js/blocks/ProgramBlocks.js:275 +#.TRANS: El bloque Pila de carga necesita un bloque de archivo de carga. +msgid "The loadHeap block needs a loadFile block." +msgstr "wakichata siqi qhantayañataki maya qhantayaña wakichata mayi" -#: js/SensorsBlocks.js:131 -#.TRANS: El bloque de valor de entrada almacena la entrada. -msgid "The Input-value block stores the input." +#: js/blocks/ProgramBlocks.js:291 +#.TRANS: El bloque fijar pila carga la pila. +msgid "The Set-heap block loads the heap." msgstr "" -#: js/SensorsBlocks.js:238 -#.TRANS: volumen -msgid "loudness" -msgstr "p’ulin" +#: js/blocks/ProgramBlocks.js:340 +#.TRANS: El bloque que seleccionó no contiene una pila válido. +msgid "The block you selected does not contain a valid heap." +msgstr "" -#: js/SensorsBlocks.js:245 -#.TRANS: El bloque Volumen devuelve el volumen detectado por el micrófono. -msgid "The Loudness block returns the volume detected by the microphone." +#: js/blocks/ProgramBlocks.js:343 +#.TRANS: El bloque fija pila necesita una pila. +msgid "The Set heap block needs a heap." msgstr "" -#: js/SensorsBlocks.js:300 -#.TRANS: click -msgid "click" -msgstr "liq" +#: js/blocks/ProgramBlocks.js:360 +#.TRANS: El bloque Carga-diccionario carga un diccionario desde un archivo. +msgid "The Load-dictionary block loads a dictionary from a file." +msgstr "" -#: js/SensorsBlocks.js:306 -#.TRANS: El bloque Click activa un evento si se ha hecho clic en un ratón. -msgid "The Click block triggers an event if a mouse has been clicked." -msgstr "El bloque Click activa un evento si se ha hecho clic en un mouse." +#: js/blocks/ProgramBlocks.js:372 +#.TRANS: load a dictionary from a file +#.TRANS: carga diccionario +msgid "load dictionary" +msgstr "" -#: js/SensorsBlocks.js:313 -#.TRANS: El bloque Click activa un evento si se ha hecho clic en una tortuga. -msgid "The Click block triggers an event if a turtle has been clicked." +#: js/blocks/ProgramBlocks.js:390 +#: js/blocks/ProgramBlocks.js:658 +#: js/blocks/ToneBlocks.js:1025 +#.TRANS: archivo +msgid "file" msgstr "" -#: js/SensorsBlocks.js:342 -#.TRANS: cursor sobre -msgid "cursor over" -msgstr "cursor sobre" +#: js/blocks/ProgramBlocks.js:444 +#.TRANS: El archivo que seleccionó no contiene un diccionario válido. +msgid "The file you selected does not contain a valid dictionary." +msgstr "" -#: js/SensorsBlocks.js:387 -#.TRANS: cursor fuera -msgid "cursor out" -msgstr "cursor fuera" +#: js/blocks/ProgramBlocks.js:449 +#.TRANS: El bloque de diccionario de carga necesita un bloque de archivo +msgid "The load dictionary block needs a load file block." +msgstr "" -#: js/SensorsBlocks.js:433 -#.TRANS: el botón presionado -msgid "cursor button down" -msgstr "el botón presionado" " +#: js/blocks/ProgramBlocks.js:466 +#.TRANS: El bloque fijar diccionario carga un diccionario. +msgid "The Set-dictionary block loads a dictionary." +msgstr "" -#: js/SensorsBlocks.js:477 -#.TRANS: el botón arriba -msgid "cursor button up" -msgstr "el botón arriba" +#: js/blocks/ProgramBlocks.js:477 +#.TRANS: load a dictionary from a JSON +#.TRANS: fijar diccionario +msgid "set dictionary" +msgstr "" -#: js/SensorsBlocks.js:638 -#.TRANS: El bloque Obtener rojo devuelve el componente rojo del píxel debajo del ratón. -msgid "The Get red block returns the red component of the pixel under the mouse." +#: js/blocks/ProgramBlocks.js:546 +#.TRANS: El bloque que seleccionó no contiene un diccionario válido. +msgid "The block you selected does not contain a valid dictionary." msgstr "" -#: js/SensorsBlocks.js:644 -#.TRANS: El bloque Obtener rojo devuelve el componente rojo del píxel debajo de la tortuga. -msgid "The Get red block returns the red component of the pixel under the turtle." +#: js/blocks/ProgramBlocks.js:550 +#.TRANS: El bloque Fijar dictionario necesita un diccionario. +msgid "The set dictionary block needs a dictionary." msgstr "" -#: js/SensorsBlocks.js:685 -#: plugins/rodi.rtp:216 -#.TRANS: color del pixel -msgid "pixel color" -msgstr " llimp’iy k’anchaypa phatmin" +#: js/blocks/ProgramBlocks.js:567 +#.TRANS: El bloque Guardar pila guarda la pila en un archivo. +msgid "The Save-heap block saves the heap to a file." +msgstr "El bloque Guardar pila guarda la pila en un archivo." -#: js/SensorsBlocks.js:690 -#.TRANS: El bloque Obtener píxel devuelve el color del píxel debajo del ratón. -msgid "The Get pixel block returns the color of the pixel under the mouse." +#: js/blocks/ProgramBlocks.js:578 +#.TRANS: save the heap to a file +#.TRANS: guardar pila +msgid "save heap" +msgstr "Qutupi waqaychay" + +#: js/blocks/ProgramBlocks.js:629 +#.TRANS: El bloque Guardar diccionario guarda el diccionario en un archivo +msgid "The Save-dictionary block saves a dictionary to a file." msgstr "" -#: js/SensorsBlocks.js:696 -#.TRANS: El bloque Obtener píxel devuelve el color del píxel debajo de la tortuga. -msgid "The Get pixel block returns the color of the pixel under the turtle." +#: js/blocks/ProgramBlocks.js:640 +#.TRANS: save a dictionary to a file +#.TRANS: guardar diccionario +msgid "save dictionary" msgstr "" -#: js/SensorsBlocks.js:758 -#.TRANS: tiempo -msgid "time" -msgstr "pacha" +#: js/blocks/ProgramBlocks.js:720 +#.TRANS: El bloque abrir la paleta abre una paleta +msgid "The Open palette block opens a palette." +msgstr "El bloque abrir la paleta abre una paleta" -#: js/SensorsBlocks.js:804 -#.TRANS: cursor y -msgid "cursor y" -msgstr "y t’uqpina" +#: js/blocks/ProgramBlocks.js:727 +#.TRANS: abrir la paleta +msgid "open palette" +msgstr "llimp’ipa taqinta kichay" -#: js/SensorsBlocks.js:809 -#.TRANS: El bloque Cursor Y devuelve la posición vertical del cursor. -msgid "The Cursor Y block returns the vertical position of the mouse." -msgstr "" +#: js/blocks/ProgramBlocks.js:785 +#.TRANS: El bloque eliminar bloque elimina un bloque +msgid "The Delete block block removes a block." +msgstr "El bloque eliminar bloque elimina un bloque" -#: js/SensorsBlocks.js:845 -#.TRANS: cursor x -msgid "cursor x" -msgstr "t’uqpina" +#: js/blocks/ProgramBlocks.js:797 +#.TRANS: Move this block to the trash. +#.TRANS: eliminar bloque +msgid "delete block" +msgstr "kay chiqasta chanqapuy" -#: js/SensorsBlocks.js:850 -#.TRANS: El bloque Cursor X devuelve la posición horizontal del ratón. -msgid "The Cursor X block returns the horizontal position of the mouse." -msgstr "" +#: js/blocks/ProgramBlocks.js:861 +#.TRANS: El bloque mover bloque mueve un bloque. +msgid "The Move block block moves a block." +msgstr "El bloque mover bloque mueve un bloque." -#: js/SensorsBlocks.js:886 -#.TRANS: botón del ratón -msgid "mouse button" -msgstr "Huk’uchapa ñup’unan" +#: js/blocks/ProgramBlocks.js:869 +#.TRANS: Move the position of a block on the screen. +#.TRANS: mover bloque +msgid "move block" +msgstr "kay chiqasta kuyuchiy" -#: js/SensorsBlocks.js:888 -#.TRANS: El bloque Botón del ratón devuelve Verdadero si se presiona el botón del ratón. -msgid "The Mouse-button block returns True if the mouse button is pressed." -msgstr "" +#: js/blocks/ProgramBlocks.js:881 +#: js/blocks/ProgramBlocks.js:1048 +#.TRANS: número de bloque +msgid "block number" +msgstr "kay chiqaspa payupaynin" -#: js/SensorsBlocks.js:934 -#.TRANS: a ASCII -msgid "to ASCII" -msgstr "ASCIIman" +#: js/blocks/ProgramBlocks.js:935 +#.TRANS: Run program beginning at this block. +#.TRANS: ejecutar bloque +msgid "run block" +msgstr "kay chiqasta ruray" -#: js/SensorsBlocks.js:938 -#.TRANS: El bloque a ASCII convierte números a letras. -msgid "The To ASCII block converts numbers to letters." -msgstr "El bloque a ASCII convierte números a letras." +#: js/blocks/ProgramBlocks.js:1025 +#.TRANS: El bloque connectar conecta dos bloques +msgid "The Dock block block connections two blocks." +msgstr "El bloque connectar conecta dos bloques" -#: js/SensorsBlocks.js:1005 -#.TRANS: El bloque teclado devuelve entrada de teclado. -msgid "The Keyboard block returns computer keyboard input." -msgstr "El bloque teclado devuelve entrada de teclado." +#: js/blocks/ProgramBlocks.js:1036 +#.TRANS: We can connect a block to another block. +#.TRANS: connectar block +msgid "connect blocks" +msgstr "chiqasta hap’ichiy" -#: js/IntervalsActions.js:216 -#.TRANS: Agregar el número de tono que falta 0. -msgid "Adding missing pitch number 0." -msgstr "Agregar el número de tono que falta 0." +#: js/blocks/ProgramBlocks.js:1048 +#.TRANS: bloque de destino +msgid "target block" +msgstr "mayman chiqas riq " + +#: js/blocks/ProgramBlocks.js:1048 +#.TRANS: número de conexion +msgid "connection number" +msgstr "hap’ichiypa yupaynin"" + +#: js/blocks/ProgramBlocks.js:1140 +#.TRANS: El bloque crear bloque crea un bloque. +msgid "The Make block block creates a new block." +msgstr "El bloque crear bloque crea un bloque." -#: js/IntervalsActions.js:224 -#.TRANS: Ignorando los números de tono menos de cero o más de once. -msgid "Ignoring pitch numbers less than zero or greater than eleven." -msgstr "" +#: js/blocks/ProgramBlocks.js:1152 +#.TRANS: Create a new block +#.TRANS: crear bloque +msgid "make block" +msgstr " chiqasta paqarichiy" -#: js/IntervalsActions.js:230 -#.TRANS: Ignorando números de tono duplicados. -msgid "Ignoring duplicate pitch numbers." -msgstr "Ignorando números de tono duplicados." +#: js/blocks/ProgramBlocks.js:1285 +#.TRANS: No se puede encontrar el bloque. +msgid "Cannot find block" +msgstr "Manam chiqas tarikunchu" -#: js/PitchActions.js:88 -#.TRANS: El bloque Paso escalar debe utilizarse dentro de un bloque de nota. -msgid "The Scalar Step Block must be used inside of a Note Block." +#: js/blocks/ProgramBlocks.js:1304 +#: js/blocks/ProgramBlocks.js:1313 +#.TRANS: Advertencia: el tipo de argumento de bloque no coincide +msgid "Warning: block argument type mismatch" msgstr "" -#: js/PitchActions.js:107 -#.TRANS: El bloque Paso escalar debe ir precedida de un bloque de tono. -msgid "The Scalar Step Block must be preceded by a Pitch Block." +#: js/blocks/ProgramBlocks.js:1347 +#.TRANS: El bloque Abrir proyecto se utiliza para abrir un proyecto desde una página web. +msgid "The Open project block is used to open a project from a web page." msgstr "" -#: js/DrumActions.js:231 -#.TRANS: Bloque de ruido: Quizás quiso decir utilizar un bloque de nota? -msgid "Noise Block: Did you mean to use a Note block?" -msgstr "Bloque de ruido: Quizás quiso decir utilizar un bloque de nota?" +#: js/blocks/ProgramBlocks.js:1357 +#.TRANS: abierto proyecto +msgid "open project" +msgstr "rurana kichasqa" -#: js/MeterActions.js:101 -#: js/MeterActions.js:139 -#.TRANS: latidos por minuto deben ser mayores que -msgid "beats per minute must be greater than" -msgstr "minutupi p’ullpuqiyqa kurak kanan" +#: js/blocks/ProgramBlocks.js:1410 +#.TRANS: Por favor introduzca un URL válido. +msgid "Please enter a valid URL." +msgstr "Ama hina waliq URLta haykuchiy" -#: js/MeterActions.js:111 -#: js/MeterActions.js:149 -#.TRANS: máximo -msgid "maximum" -msgstr "tukupunankama" +#: js/blocks/ToneBlocks.js:34 +#.TRANS: oscilador +msgid "oscillator" +msgstr "maymikuynin" -#: js/MeterActions.js:117 -#: js/MeterActions.js:155 -#.TRANS: latidos por minuto es -msgid "beats per minute is" -msgstr "minutupi p’ullpuqiyninqa" +#: js/blocks/ToneBlocks.js:42 +#: js/blocks/WidgetBlocks.js:179 +#: js/widgets/timbre.js:1558 +#: js/widgets/timbre.js:1808 +#.TRANS: there are different types (sine, triangle, square...) of oscillators. +#.TRANS: type of filter, e.g., lowpass, highpass, etc. +#.TRANS: typo +msgid "type" +msgstr "typo" -#: js/ToneActions.js:134 -#.TRANS: La intensidad del vibrato debe estar entre 1 y 100. -msgid "Vibrato intensity must be between 1 and 100." -msgstr " khatataypa kallpanqa huk hinallataq pachakpi kachkanan" +#: js/blocks/ToneBlocks.js:44 +#: js/widgets/timbre.js:1562 +#.TRANS: Partials refers to the number of sine waves combined into the sound. +#.TRANS: parciales +msgid "partials" +msgstr "chawakuna" -#: js/ToneActions.js:139 -#.TRANS: La velocidad del vibrato debe ser mayor que 0. -msgid "Vibrato rate must be greater than 0." -msgstr " khatataypa utqayninqa ch’usaqpa kurakninmi kanan" +#: js/blocks/ToneBlocks.js:76 +#.TRANS: Está agregando varios bloques de oscilador. +msgid "You are adding multiple oscillator blocks." +msgstr "maymikuqmanmi achka chiqasta yapachkan" -#: js/ToneActions.js:192 -#: js/ToneActions.js:265 -#.TRANS: Depth is the intesity of the tremolo or chorus effect. -#.TRANS: El valor de profundidad está fuera de rango. -msgid "Depth is out of range." -msgstr "ukhunchasqa chaninninqa manam t’aqanpichu kachkan" +#: js/blocks/ToneBlocks.js:144 +#: js/widgets/timbre.js:1225 +#.TRANS: a duo synthesizer combines a synth with a sequencer +#.TRANS: duo sintetizador +msgid "duo synth" +msgstr "iskayman pisiyachiqnin" -#: js/ToneActions.js:301 -#.TRANS: El valor de distorsión debe ser de 0 a 100. -msgid "Distortion must be from 0 to 100." -msgstr "q’iwisqapa chaninninqa ch’usaqmanta pachakkama kanan" +#: js/blocks/ToneBlocks.js:149 +#.TRANS: El bloque Sintetizador Duo es un modulador de frecuencia doble usado para definir un timbre. +msgid "The Duo synth block is a duo-frequency modulator used to define a timbre." +msgstr "" -#: js/ToneActions.js:332 -#.TRANS: partials components in a harmonic series -#.TRANS: Parcial debe ser mayor o igual a 0. -msgid "Partial must be greater than or equal to 0." -msgstr "chawaqa ch’usaqamanta kurakpas kikinpas kanan" +#: js/blocks/ToneBlocks.js:157 +#: js/widgets/timbre.js:1476 +#.TRANS: velocidad del vibrato +msgid "vibrato rate" +msgstr "vibratupa usqhachiq" -#: js/ToneActions.js:378 -#: js/ToneActions.js:417 -#: js/ToneActions.js:456 -#: js/timbre.js:782 -#.TRANS: No se puede usar el sintetizador debido al bloqueo del oscilador. -msgid "Unable to use synth due to existing oscillator" -msgstr "Manam pisiyachiqta hap’ikunmanchu imaraykuchus maymikuq hark’asqa kaptin" +#: js/blocks/ToneBlocks.js:157 +#.TRANS: intensidad de vibrato +msgid "vibrato intensity" +msgstr "vibratupa kallpachaynin" -#: js/ToneActions.js:388 -#: js/ToneActions.js:427 -#.TRANS: La entrada no puede ser negativa. -msgid "The input cannot be negative." -msgstr "haykunanqa manam manaqa kanmanchu" +#: js/blocks/ToneBlocks.js:185 +#: js/widgets/timbre.js:1221 +#.TRANS: AM (amplitude modulation) synthesizer +#.TRANS: AM sintetizador +msgid "AM synth" +msgstr "AM pisiyachiqnin" -#: js/DictActions.js:75 -#: js/DictActions.js:153 -#: js/DictActions.js:188 -#.TRANS: fuente -msgid "font" +#: js/blocks/ToneBlocks.js:189 +#.TRANS: El bloque Sintetizador AM es un modulador de amplitud usado para definir un timbre. +msgid "The AM synth block is an amplitude modulator used to define a timbre." msgstr "" -#: js/musicutils.js:363 -#: js/musicutils.js:471 -#: js/pitchdrummatrix.js:151 -#: js/musickeyboard.js:2563 -#.TRANS: descanso -msgid "rest" -msgstr "samay" +#: js/blocks/ToneBlocks.js:224 +#: js/widgets/timbre.js:1223 +#.TRANS: FM (frequency modulation) synthesizer +#.TRANS: FM sintetizador +msgid "FM synth" +msgstr "FM pisiyachiqnin " -#: js/musicutils.js:565 -#.TRANS: ordinal number. Please keep exactly one space between each number. -#.TRANS: 1º 2º 3º 4º 5º 6º 7º 8º 9º 10º 11º 12º -msgid "1st 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th" -msgstr "1º 2º 3º 4º 5º 6º 7º 8º 9º 10º 11º 12º" +#: js/blocks/ToneBlocks.js:228 +#.TRANS: El bloque Sintetizador de FM es un modulador de frecuencia utilizado para definir un timbre. +msgid "The FM synth block is a frequency modulator used to define a timbre." +msgstr "" -#: js/musicutils.js:629 -#: js/musicutils.js:812 -#: js/musicutils.js:911 -#.TRANS: augmented is a music term related to intervals -#.TRANS: aumentado -msgid "augmented" -msgstr "jithxatayata" +#: js/blocks/ToneBlocks.js:262 +#.TRANS: parcial +msgid "partial" +msgstr "chawa" -#: js/musicutils.js:631 -#: js/musicutils.js:813 -#: js/musicutils.js:910 -#.TRANS: diminished is a music term related to intervals and mode -#.TRANS: disminuido -msgid "diminished" -msgstr "jithiqayata" +#: js/blocks/ToneBlocks.js:265 +#.TRANS: El bloque Parcial se utiliza para especificar un peso para un armónico parcial específico. +msgid "The Partial block is used to specify a weight for a specific partial harmonic." +msgstr "" -#: js/musicutils.js:639 -#.TRANS: twelve semi-tone scale for music -#.TRANS: cromático -msgid "chromatic" -msgstr "cromático" +#: js/blocks/ToneBlocks.js:284 +#.TRANS: partials are weighted components in a harmonic series +#.TRANS: El peso parcial debe estar entre 0 y 1. +msgid "Partial weight must be between 0 and 1." +msgstr "chawapa llasayninqa chúsaqpi hinallataq huk chawpipin kanan" -#: js/musicutils.js:640 -#.TRANS: argelino -msgid "algerian" -msgstr "argelino" +#: js/blocks/ToneBlocks.js:297 +#.TRANS: partials are weighted components in a harmonic series +#.TRANS: El bloque Parcial debe usarse dentro de un bloque de parciales ponderados. +msgid "Partial block should be used inside of a Weighted-partials block." +msgstr "" -#: js/musicutils.js:641 -#.TRANS: español -msgid "spanish" -msgstr "español" +#: js/blocks/ToneBlocks.js:325 +#.TRANS: partials are weighted components in a harmonic series +#.TRANS: parcial ponderada +msgid "weighted partials" +msgstr "chawa chaninchasqa" -#: js/musicutils.js:643 -#.TRANS: modal scale in music -#.TRANS: octatonic -msgid "octatonic" +#: js/blocks/ToneBlocks.js:383 +#.TRANS: El bloque Armónicos agregará armónicos a las notas contenidas. +msgid "The Harmonic block will add harmonics to the contained notes." msgstr "" -#: js/musicutils.js:645 -#.TRANS: harmonic major scale in music -#.TRANS: armónico mayor -msgid "harmonic major" -msgstr "armónico mayor" +#: js/blocks/ToneBlocks.js:390 +#.TRANS: A harmonic is an overtone. +#.TRANS: armónico +msgid "harmonic" +msgstr "armónico" -#: js/musicutils.js:647 -#.TRANS: natural minor scales in music -#.TRANS: natural menor -msgid "natural minor" -msgstr "natural menor" +#: js/blocks/ToneBlocks.js:431 +#.TRANS: El bloque Distorsión agrega distorsión al tono. +msgid "The Distortion block adds distortion to the pitch." +msgstr "q’iwiy chiqasqa kunkaman q’iwiyninta yapam" -#: js/musicutils.js:649 -#.TRANS: harmonic minor scale in music -#.TRANS: armónico menor -msgid "harmonic minor" -msgstr "armónico menor" +#: js/blocks/ToneBlocks.js:438 +#: js/widgets/timbre.js:2100 +#.TRANS: distortion is an alteration in the sound +#.TRANS: distorsión +msgid "distortion" +msgstr "q’íwiy" -#: js/musicutils.js:651 -#.TRANS: melodic minor scale in music -#.TRANS: melódico menor -msgid "melodic minor" -msgstr "melódico menor" +#: js/blocks/ToneBlocks.js:487 +#.TRANS: El bloque Tremolo añade un efecto de vacilación. +msgid "The Tremolo block adds a wavering effect." +msgstr "Thalay chiqasqa iskayananpaq yapaykun" -#: js/musicutils.js:655 -#.TRANS: modal scale for music -#.TRANS: dorio -msgid "dorian" -msgstr "" +#: js/blocks/ToneBlocks.js:495 +#: js/widgets/timbre.js:2092 +#.TRANS: a wavering effect in a musical tone +#.TRANS: tremolo +msgid "tremolo" +msgstr "Thalay" -#: js/musicutils.js:657 -#.TRANS: modal scale for music -#.TRANS: frigio -msgid "phrygian" -msgstr "" +#: js/blocks/ToneBlocks.js:500 +#: js/blocks/ToneBlocks.js:569 +#: js/blocks/ToneBlocks.js:630 +#: js/blocks/ToneBlocks.js:689 +#: js/widgets/timbre.js:2134 +#: js/widgets/timbre.js:2222 +#: js/widgets/timbre.js:2317 +#: js/widgets/timbre.js:2419 +#.TRANS: rate at which tremolo wavers +#.TRANS: velocidad +msgid "rate" +msgstr "utqay" -#: js/musicutils.js:659 -#.TRANS: modal scale for music -#.TRANS: lidio -msgid "lydian" -msgstr "" +#: js/blocks/ToneBlocks.js:502 +#: js/blocks/ToneBlocks.js:630 +#: js/widgets/timbre.js:2137 +#: js/widgets/timbre.js:2328 +#.TRANS: amplitude of tremolo waver +#.TRANS: intensidad +msgid "depth" +msgstr "kallpa" -#: js/musicutils.js:661 -#.TRANS: modal scale for music -#.TRANS: mixolidio -msgid "mixolydian" -msgstr "" +#: js/blocks/ToneBlocks.js:559 +#.TRANS: El bloque Phaser añade un sonido de barrido. +msgid "The Phaser block adds a sweeping sound." +msgstr "Phaser chiqasqa pichana kunkatan yapan" -#: js/musicutils.js:665 -#.TRANS: modal scale for music -#.TRANS: locrian -msgid "locrian" -msgstr "" +#: js/blocks/ToneBlocks.js:566 +#: js/widgets/timbre.js:2098 +#.TRANS: alter the phase of the sound +#.TRANS: phaser +msgid "phaser" +msgstr "phaser" -#: js/musicutils.js:667 -#.TRANS: minor jazz scale for music -#.TRANS: jazz menor -msgid "jazz minor" -msgstr "jazz menor" +#: js/blocks/ToneBlocks.js:569 +#: js/turtleactions/IntervalsActions.js:114 +#: js/widgets/timbre.js:2422 +#.TRANS: octavas +msgid "octaves" +msgstr "pusaq patakuna" -#: js/musicutils.js:669 -#.TRANS: bebop scale for music -#.TRANS: bebop -msgid "bebop" -msgstr "" +#: js/blocks/ToneBlocks.js:569 +#: js/widgets/timbre.js:2425 +#.TRANS: frecuencia de base +msgid "base frequency" +msgstr "tiyananpi sapakuti ruranan " -#: js/musicutils.js:670 -#.TRANS: arábica -msgid "arabic" -msgstr "arábica" +#: js/blocks/ToneBlocks.js:619 +#.TRANS: El bloque Chorus añade un efecto chorus. +msgid "The Chorus block adds a chorus effect." +msgstr "takich’unku chiqasqa takich’unku kayninta yapan" -#: js/musicutils.js:671 -#.TRANS: bizantino -msgid "byzantine" -msgstr "bizantino" +#: js/blocks/ToneBlocks.js:627 +#: js/widgets/timbre.js:2096 +#.TRANS: musical effect to simulate a choral sound +#.TRANS: coro +msgid "chorus" +msgstr "takich’unku" -#: js/musicutils.js:673 -#.TRANS: musical scale for music by Verdi -#.TRANS: enigmático -msgid "enigmatic" -msgstr "enigmático" +#: js/blocks/ToneBlocks.js:630 +#.TRANS: retraso +msgid "delay" +msgstr "qhipay" + +#: js/blocks/ToneBlocks.js:678 +#.TRANS: El bloque Vibrato agrega una variación rápida y leve en el tono. +msgid "The Vibrato block adds a rapid, slight variation in pitch." +msgstr "Khatatay chiqasqa utqay chaninchayninta hinallataq pisi kunkanta yapan" -#: js/musicutils.js:674 -#.TRANS: etíope -msgid "ethiopian" -msgstr "etíope" +#: js/blocks/ToneBlocks.js:686 +#: js/widgets/timbre.js:2094 +#.TRANS: a rapid, slight variation in pitch +#.TRANS: vibrato +msgid "vibrato" +msgstr "khatatay" -#: js/musicutils.js:676 -#.TRANS: Ethiopic scale for music -#.TRANS: geez -msgid "geez" -msgstr "" +#: js/blocks/ToneBlocks.js:689 +#: js/widgets/timbre.js:2221 +#.TRANS: intensidad +msgid "intensity" +msgstr "kallpa" -#: js/musicutils.js:677 -#.TRANS: hindú -msgid "hindu" -msgstr "hindú" +#: js/blocks/ToneBlocks.js:733 +#.TRANS: select synthesizer +#.TRANS: fijar synth +msgid "set synth" +msgstr "synth watay" -#: js/musicutils.js:678 -#.TRANS: húngaro -msgid "hungarian" -msgstr "húngaro" +#: js/blocks/ToneBlocks.js:804 +#.TRANS: nombre del sintetizador +msgid "synth name" +msgstr " pisiyachiqninpa sutin" -#: js/musicutils.js:680 -#.TRANS: minor Romanian scale for music -#.TRANS: romano menor -msgid "romanian minor" -msgstr "romano menor" +#: js/blocks/ToneBlocks.js:842 +#.TRANS: fijar instrumento predeterminado +msgid "set default instrument" +msgstr "" -#: js/musicutils.js:681 -#.TRANS: gitana española -msgid "spanish gypsy" -msgstr "gitana española" +#: js/blocks/ToneBlocks.js:895 +#: js/blocks/ToneBlocks.js:943 +#.TRANS: set the characteristics of a custom instrument +#.TRANS: fijar instrumento +msgid "set instrument" +msgstr "ruk’awita churana" -#: js/musicutils.js:683 -#.TRANS: musical scale for Mid-Eastern music -#.TRANS: maqam -msgid "maqam" +#: js/blocks/ToneBlocks.js:898 +#: js/blocks/ToneBlocks.js:926 +#: js/blocks/ToneBlocks.js:932 +#.TRANS: El bloque Fijar Instrumentos selecciona una voz para el sintetizador, +msgid "The Set instrument block selects a voice for the synthesizer," msgstr "" -#: js/musicutils.js:685 -#.TRANS: minor blues scale for music -#.TRANS: blues menor -msgid "minor blues" -msgstr "blues menor" +#: js/blocks/ToneBlocks.js:900 +#: js/blocks/ToneBlocks.js:934 +#.TRANS: Por ejemplo, guitarra, piano, violín o cello +msgid "eg guitar piano violin or cello." +msgstr "kitara, piyanu, wiyulin kallamanta wiyula hina" -#: js/musicutils.js:687 -#.TRANS: major blues scale for music -#.TRANS: blues mayor -msgid "major blues" -msgstr "blues mayor" +#: js/blocks/ToneBlocks.js:1015 +#.TRANS: Importe un archivo de sonido para usarlo como instrumento y establezca su centro de tono. +msgid "Import a sound file to use as an instrument and set its pitch center." +msgstr "" -#: js/musicutils.js:688 -#.TRANS: tono completo -msgid "whole tone" -msgstr "tono completo" +#: js/blocks/ToneBlocks.js:1110 +#.TRANS: Cargue un archivo de sonido para conectarlo con el bloque de muestra. +msgid "Upload a sound file to connect with the sample block." +msgstr "" -#: js/musicutils.js:690 -#.TRANS: pentatonic is a general term that means "five note scale". This scale is typically known as "minor pentatonic" -#.TRANS: pentatonic minor -msgid "minor pentatonic" -msgstr "pentatonic minor" +#: js/blocks/VolumeBlocks.js:35 +#.TRANS: volumen del sintetizador +msgid "synth volume" +msgstr "volumen del sintetizador" -#: js/musicutils.js:692 -#.TRANS: pentatonic is a general term that means "five note scale". This scale is typically known as "major pentatonic" -#.TRANS: pentatonic mayor -msgid "major pentatonic" -msgstr "pentatonic mayor" +#: js/blocks/VolumeBlocks.js:39 +#.TRANS: El bloque de volumen sintetizador devuelve el volumen actual del sintetizador actual. +msgid "The Synth volume block returns the current volume of the current synthesizer." +msgstr "" -#: js/musicutils.js:693 -#.TRANS: chino -msgid "chinese" -msgstr "chino" +#: js/blocks/VolumeBlocks.js:105 +#.TRANS: volumen maestro +msgid "master volume" +msgstr "t’uqya kamay" -#: js/musicutils.js:694 -#.TRANS: egipcio -msgid "egyptian" -msgstr "egipcio" +#: js/blocks/VolumeBlocks.js:109 +#.TRANS: El bloque volumen maestro devuelve nivel de volumen maestro. +msgid "The Master volume block returns the master volume." +msgstr "El bloque volumen maestro devuelve nivel de volumen maestro." -#: js/musicutils.js:696 -#.TRANS: https://en.wikipedia.org/wiki/Hirajoshi_scale NOTE: There are three different versions of this scale -#.TRANS: hirajoshi -msgid "hirajoshi" -msgstr "" +#: js/blocks/VolumeBlocks.js:355 +#: js/blocks/VolumeBlocks.js:524 +#.TRANS: fijar volumen del sintetizador +msgid "set synth volume" +msgstr "fijar volumen del sintetizador" -#: js/musicutils.js:697 -#.TRANS: Japón -msgid "Japan" -msgstr "Japón" +#: js/blocks/VolumeBlocks.js:362 +#: js/blocks/VolumeBlocks.js:545 +#.TRANS: sintetizador +msgid "synth" +msgstr "sintetizador" -#: js/musicutils.js:699 -#.TRANS: https://en.wikipedia.org/wiki/In_scale and https://en.wikipedia.org/wiki/Sakura_Sakura -#.TRANS: in -msgid "in" -msgstr "in" +#: js/blocks/VolumeBlocks.js:403 +#: js/blocks/VolumeBlocks.js:577 +#: js/blocks/VolumeBlocks.js:740 +#: js/turtleactions/VolumeActions.js:173 +#.TRANS: Ajuste el volumen a 0 +msgid "Setting volume to 0." +msgstr "Ajuste el volumen a 0" -#: js/musicutils.js:701 -#.TRANS: https://en.wikipedia.org/wiki/Miny%C5%8D_scale -#.TRANS: minyo -msgid "minyo" -msgstr "minyo" +#: js/blocks/VolumeBlocks.js:440 +#.TRANS: No se encuentra el sintetizador. +msgid "Synth not found" +msgstr "No se encuentra el sintetizador." -#: js/musicutils.js:703 -#.TRANS: Italian mathematician -#.TRANS: fibonacci -msgid "fibonacci" -msgstr "" +#: js/blocks/VolumeBlocks.js:494 +#.TRANS: filar volumen del tambor +msgid "set drum volume" +msgstr "filar volumen del tambor" -#: js/musicutils.js:708 -#: js/musicutils.js:1106 -#.TRANS: lowpass filter -#.TRANS: -msgid "lowpass" +#: js/blocks/VolumeBlocks.js:530 +#.TRANS: El bloque Ajuste volumen del sintetizador cambiará el volumen de un sintetizador particular, +msgid "The Set synth volume block will change the volume of a particular synth," msgstr "" -#: js/musicutils.js:710 -#: js/musicutils.js:1107 -#.TRANS: bandpass filter -#.TRANS: -msgid "bandpass" -msgstr "" +#: js/blocks/VolumeBlocks.js:532 +#.TRANS: por ejemplo, guitarra, violín, tambor +msgid "eg guitar violin snare drum etc." +msgstr "por ejemplo, guitarra, violín, tambor" -#: js/musicutils.js:712 -#: js/musicutils.js:1108 -#.TRANS: high-shelf filter -#.TRANS: -msgid "highshelf" -msgstr "" +#: js/blocks/VolumeBlocks.js:534 +#.TRANS: El volumen predeterminado es 50. +msgid "The default volume is 50." +msgstr "El volumen predeterminado es 50." -#: js/musicutils.js:714 -#: js/musicutils.js:1109 -#.TRANS: low-shelf filter -#.TRANS: -msgid "lowshelf" -msgstr "" +#: js/blocks/VolumeBlocks.js:536 +#.TRANS: El rango es de 0 para el silencio a 100 para el volumen completo. +msgid "The range is 0 for silence to 100 for full volume." +msgstr "El rango es de 0 para el silencio a 100 para el volumen completo." -#: js/musicutils.js:716 -#: js/musicutils.js:1110 -#.TRANS: notch-shelf filter -#.TRANS: -msgid "notch" +#: js/blocks/VolumeBlocks.js:597 +#.TRANS: establecer panorámica +msgid "set panning" msgstr "" -#: js/musicutils.js:718 -#: js/musicutils.js:1111 -#.TRANS: all-pass filter -#.TRANS: -msgid "allpass" +#: js/blocks/VolumeBlocks.js:603 +#.TRANS: El bloque Establecer Panorámica establece el panorama para todos los sintetizadores. +msgid "The Set Panning block sets the panning for all synthesizers." msgstr "" -#: js/musicutils.js:720 -#: js/musicutils.js:1112 -#.TRANS: peaking filter -#.TRANS: -msgid "peaking" +#: js/blocks/VolumeBlocks.js:625 +#.TRANS: Advertencia: El sonido sale solo del lado izquierdo o derecho. +msgid "Warning: Sound is coming out from only the left or right side." msgstr "" -#: js/musicutils.js:731 -#: js/synthutils.js:58 -#.TRANS: musical instrument -#.TRANS: violín -msgid "violin" -msgstr "violin" - -#: js/musicutils.js:732 -#: js/synthutils.js:60 -#.TRANS: viola musical instrument -#.TRANS: viola -msgid "viola" -msgstr "viola" +#: js/blocks/VolumeBlocks.js:647 +#: js/blocks/VolumeBlocks.js:695 +#.TRANS: filar volumen maestro +msgid "set master volume" +msgstr "filar volumen maestro" -#: js/musicutils.js:733 -#: js/synthutils.js:98 -#.TRANS: xylophone musical instrument -#.TRANS: xilófono -msgid "xylophone" +#: js/blocks/VolumeBlocks.js:653 +#.TRANS: El bloque Ajuste volumen maestro establece el volumen para todos los sintetizadores. +msgid "The Set master volume block sets the volume for all synthesizers." msgstr "" -#: js/musicutils.js:734 -#: js/synthutils.js:120 -#.TRANS: vibraphone musical instrument -#.TRANS: vibráfono -msgid "vibraphone" +#: js/blocks/VolumeBlocks.js:784 +#.TRANS: El bloque Fijar volumen relativo cambia el volumen de las notas contenidas. +msgid "The Set relative volume block changes the volume of the contained notes." msgstr "" -#: js/musicutils.js:735 -#: js/synthutils.js:62 -#.TRANS: musical instrument -#.TRANS: violonchelo -msgid "cello" -msgstr "violonchelo" +#: js/blocks/VolumeBlocks.js:791 +#.TRANS: fijar volumen relativo +msgid "set relative volume" +msgstr "jach'ata maya k'ata arsuyaña" -#: js/musicutils.js:737 -#: js/synthutils.js:66 -#.TRANS: viola musical instrument -#.TRANS: contrabajo -msgid "double bass" -msgstr "Viola takina waqachina" +#: js/blocks/VolumeBlocks.js:857 +#.TRANS: decrescendo +msgid "decrescendo" +msgstr "decrescendo" -#: js/musicutils.js:738 -#: js/synthutils.js:68 -#: js/rhythmruler.js:2119 -#.TRANS: musical instrument -#.TRANS: guitarra -msgid "guitar" -msgstr "guitarra" +#: js/blocks/VolumeBlocks.js:921 +#.TRANS: crescendo +msgid "crescendo" +msgstr "wiñachkan" -#: js/musicutils.js:739 -#: js/synthutils.js:70 -#.TRANS: musical instrument -#.TRANS: guitarra acustica -msgid "acoustic guitar" -msgstr "aswan kunkayuq guitarra" +#: js/blocks/WidgetBlocks.js:81 +#.TRANS: sound envelope (ADSR) +#.TRANS: envolventes +msgid "envelope" +msgstr "envolventes" -#: js/musicutils.js:740 -#: js/synthutils.js:72 -#.TRANS: musical instrument -#.TRANS: flauta -msgid "flute" -msgstr "flauta" +#: js/blocks/WidgetBlocks.js:89 +#.TRANS: Attack time is the time taken for initial run-up of level from nil to peak, beginning when the key is first pressed. +#.TRANS: atacar +msgid "attack" +msgstr "atacar" -#: js/musicutils.js:741 -#: js/synthutils.js:74 -#.TRANS: musical instrument -#.TRANS: clarinete -msgid "clarinet" -msgstr "clarinete" +#: js/blocks/WidgetBlocks.js:91 +#.TRANS: Decay time is the time taken for the subsequent run down from the attack level to the designated sustain level. +#.TRANS: decaer +msgid "decay" +msgstr "Pisipayay" -#: js/musicutils.js:742 -#: js/synthutils.js:76 -#.TRANS: musical instrument -#.TRANS: saxofón -msgid "saxophone" -msgstr "saxofón" +#: js/blocks/WidgetBlocks.js:93 +#.TRANS: Sustain level is the level during the main sequence of the sound's duration, until the key is released. +#.TRANS: sostener +msgid "sustain" +msgstr "hap’ipay" -#: js/musicutils.js:743 -#: js/synthutils.js:78 -#.TRANS: musical instrument -#.TRANS: tuba -msgid "tuba" -msgstr "tuba" +#: js/blocks/WidgetBlocks.js:95 +#.TRANS: Release time is the time taken for the level to decay from the sustain level to zero after the key is released. +#.TRANS: liberar +msgid "release" +msgstr " waqmanta ñawinchay" + +#: js/blocks/WidgetBlocks.js:113 +#.TRANS: El valor de atacar debe estar entre 0 y 100. +msgid "Attack value should be from 0 to 100." +msgstr "El valor de atacar debe estar entre 0 y 100." + +#: js/blocks/WidgetBlocks.js:116 +#.TRANS: El valor de decaer debe estar entre 0 y 100. +msgid "Decay value should be from 0 to 100." +msgstr "Pisipayachiyqa 0 – 100 kaman kanan" -#: js/musicutils.js:744 -#: js/synthutils.js:80 -#.TRANS: musical instrument -#.TRANS: trompeta -msgid "trumpet" -msgstr "trompeta" +#: js/blocks/WidgetBlocks.js:119 +#.TRANS: El valor de sostener debe estar entre 0 y 100. +msgid "Sustain value should be from 0 to 100." +msgstr "Hap’paypa tupuynin ch’usaqmanta pachaqkamann kanan" -#: js/musicutils.js:745 -#: js/synthutils.js:82 -#.TRANS: musical instrument -#.TRANS: oboe -msgid "oboe" -msgstr "" +#: js/blocks/WidgetBlocks.js:122 +#.TRANS: El valor de liberar debe estar entre 0 y 100. +msgid "Release value should be from 0-100." +msgstr "Kachariya tupun kanan 0 – 100 kama" -#: js/musicutils.js:746 -#: js/synthutils.js:84 -#.TRANS: musical instrument -#.TRANS: trombón -msgid "trombone" -msgstr "trombón" +#: js/blocks/WidgetBlocks.js:140 +#.TRANS: Está agregando varios bloques de envolvente. +msgid "You are adding multiple envelope blocks." +msgstr "Está agregando varios bloques de envolvente." -#: js/musicutils.js:747 -#: js/synthutils.js:100 -#.TRANS: polytone synthesizer -#.TRANS: sintetizador electronico -msgid "electronic synth" -msgstr "sintetizador electronico" +#: js/blocks/WidgetBlocks.js:171 +#.TRANS: a filter removes some unwanted components from a signal +#.TRANS: filtrar +msgid "filter" +msgstr "suysuy" -#: js/musicutils.js:748 -#: js/synthutils.js:102 -#.TRANS: simple monotone synthesizer -#.TRANS: simple-1 -msgid "simple 1" -msgstr "qasi-1" +#: js/blocks/WidgetBlocks.js:181 +#: js/widgets/timbre.js:1818 +#.TRANS: rolloff is the steepness of a change in frequency. +#.TRANS: rodar +msgid "rolloff" +msgstr "rolloff jithtayaña" -#: js/musicutils.js:749 -#.TRANS: simple 2 -msgid "simple 2" +#: js/blocks/WidgetBlocks.js:213 +#.TRANS: rolloff is the steepness of a change in frequency. +#.TRANS: Roll off valor debe ser -12, -24, -48, o -96 decibelios. +msgid "Rolloff value should be either -12, -24, -48, or -96 decibels/octave." msgstr "" -#: js/musicutils.js:750 -#.TRANS: simple 3 -msgid "simple 3" +#: js/blocks/WidgetBlocks.js:252 +#.TRANS: La Herramienta temperamento se utiliza para definir la afinación personalizada. +msgid "The Temperament tool is used to define custom tuning." +msgstr "La Herramienta temperamento se utiliza para definir la afinación personalizada." + +#: js/blocks/WidgetBlocks.js:332 +#: js/blocks/WidgetBlocks.js:1573 +#: js/widgets/sampler.js:547 +#.TRANS: Sube una muestra de audio y ajusta su centro de tono. +msgid "Upload a sample and adjust its pitch center." msgstr "" -#: js/musicutils.js:751 -#.TRANS: simple 4 -msgid "simple 4" +#: js/blocks/WidgetBlocks.js:339 +#.TRANS: the speed at music is should be played. +#.TRANS: muestreador de audio +msgid "sampler" msgstr "" -#: js/musicutils.js:753 -#: js/synthutils.js:49 -#.TRANS: brown noise synthesizer -#.TRANS: ruido marrón -msgid "brown noise" -msgstr "ch’umpi chanraray" +#: js/blocks/WidgetBlocks.js:517 +#.TRANS: El bloque Meter abre una herramienta para seleccionar golpes fuertes para el metro. +msgid "The Meter block opens a tool to select strong beats for the meter." +msgstr "" -#: js/musicutils.js:754 -#: js/synthutils.js:51 -#.TRANS: pink noise synthesizer -#.TRANS: ruido rosa -msgid "pink noise" -msgstr "rosa chanraray" +#: js/blocks/WidgetBlocks.js:573 +#.TRANS: El bloque del osciloscopio abre una herramienta para visualizar formas de onda. +msgid "The oscilloscope block opens a tool to visualize waveforms." +msgstr "" -#: js/musicutils.js:756 -#: js/synthutils.js:127 -#: js/rhythmruler.js:1670 -#: js/rhythmruler.js:1928 -#.TRANS: musical instrument -#.TRANS: tambor militar pequeño -msgid "snare drum" -msgstr "wankar" +#: js/blocks/WidgetBlocks.js:578 +#.TRANS: osciloscopio +msgid "oscilloscope" +msgstr "" -#: js/musicutils.js:757 -#: js/synthutils.js:129 -#.TRANS: musical instrument -#.TRANS: tambor de patada -msgid "kick drum" -msgstr "Hayt’ana wankar" +#: js/blocks/WidgetBlocks.js:645 +#.TRANS: El bloque Modo personalizado abre una herramienta para explorar el modo musical (el espaciado de las notas en una escala). +msgid "The Custom mode block opens a tool to explore musical mode (the spacing of the notes in a scale)." +msgstr "" -#: js/musicutils.js:758 -#: js/synthutils.js:131 -#.TRANS: musical instrument -#.TRANS: tom tom -msgid "tom tom" -msgstr "tum tum" +#: js/blocks/WidgetBlocks.js:651 +#.TRANS: musical mode is the pattern of half-steps in an octave, e.g., Major or Minor modes +#.TRANS: modo personalizado +msgid "custom mode" +msgstr "huk hinayuq runachasqa" -#: js/musicutils.js:759 -#: js/synthutils.js:133 -#.TRANS: musical instrument -#.TRANS: piso tom -msgid "floor tom" -msgstr "piso tom" +#: js/blocks/WidgetBlocks.js:700 +#.TRANS: El bloque Tempo abre un metrónomo para visualizar el ritmo. +msgid "The Tempo block opens a metronome to visualize the beat." +msgstr "El bloque Tempo abre un metrónomo para visualizar el ritmo." -#: js/musicutils.js:760 -#: js/synthutils.js:135 -#.TRANS: musical instrument -#.TRANS: tambor de bajo -msgid "bass drum" +#: js/blocks/WidgetBlocks.js:762 +#.TRANS: El Arpegio Widget se usa para componer secuencias de acordes. +msgid "The Arpeggio Widget is used to compose chord sequences." msgstr "" -#: js/musicutils.js:761 -#: js/synthutils.js:137 -#.TRANS: a drum made from an inverted cup -#.TRANS: taza de tambor -msgid "cup drum" -msgstr "qiru wankar" +#: js/blocks/WidgetBlocks.js:837 +#.TRANS: La Matriz de percusión de tono se utiliza para asignar tonos a los sonidos de tambor. +msgid "The Pitch drum matrix is used to map pitches to drum sounds." +msgstr "" -#: js/musicutils.js:762 -#: js/synthutils.js:139 -#.TRANS: musical instrument -#.TRANS: darbuka -msgid "darbuka drum" -msgstr "wankar darbuka" +#: js/blocks/WidgetBlocks.js:842 +#.TRANS: makes a mapping between pitches and drum sounds +#.TRANS: matriz de tono en tambor +msgid "pitch-drum mapper" +msgstr "taki purihiq" -#: js/musicutils.js:763 -#: js/synthutils.js:143 -#.TRANS: musical instrument -#.TRANS: -msgid "hi hat" +#: js/blocks/WidgetBlocks.js:891 +#.TRANS: Debe tener al menos un bloque de tono y un bloque de tambor en la matriz. +msgid "You must have at least one pitch block and one drum block in the matrix." msgstr "" -#: js/musicutils.js:764 -#: js/synthutils.js:145 -#.TRANS: a small metal bell -#.TRANS: campana de paseo -msgid "ride bell" -msgstr "puriq kampana/kalanka" +#: js/blocks/WidgetBlocks.js:920 +#.TRANS: La Herramienta de control deslizante tono se utiliza para generar tonos en las frecuencias seleccionadas. +msgid "The Pitch slider tool to is used to generate pitches at selected frequencies." +msgstr "" -#: js/musicutils.js:765 -#: js/synthutils.js:147 -#.TRANS: musical instrument -#.TRANS: campana de vaca -msgid "cow bell" -msgstr "waka kampana/kalanka" +#: js/blocks/WidgetBlocks.js:925 +#.TRANS: widget to generate pitches using a slider +#.TRANS: deslizante de tono +msgid "pitch slider" +msgstr "Kunka lluskhachik" -#: js/musicutils.js:766 -#.TRANS: tambor japonés -msgid "japanese drum" -msgstr "tambor japonés" +#: js/blocks/WidgetBlocks.js:977 +#.TRANS: teclado cromático +msgid "chromatic keyboard" +msgstr "teclado cromático" -#: js/musicutils.js:767 -#: js/synthutils.js:153 -#.TRANS: musical instrument -#.TRANS: campana japonesa -msgid "japanese bell" -msgstr "campana japonesa" +#: js/blocks/WidgetBlocks.js:1011 +#: js/blocks/WidgetBlocks.js:1077 +#.TRANS: widget to generate pitches using a slider +#.TRANS: teclado musical +msgid "music keyboard" +msgstr "taki t’upuna" -#: js/musicutils.js:768 -#: js/synthutils.js:149 -#.TRANS: musical instrument -#.TRANS: campana triangular -msgid "triangle bell" -msgstr "kimsa k’uchu kampana/kalanka" +#: js/blocks/WidgetBlocks.js:1062 +#: js/blocks/WidgetBlocks.js:1069 +#.TRANS: El bloque Teclado de música abre un teclado de piano que puede usarse para crear notas. +msgid "The Music keyboard block opens a piano keyboard that can be used to create notes." +msgstr "" -#: js/musicutils.js:769 -#: js/synthutils.js:151 -#.TRANS: musical instrument -#.TRANS: castañuelas -msgid "finger cymbals" -msgstr "kastañuylas" +#: js/blocks/WidgetBlocks.js:1128 +#.TRANS: La Herramienta escalera de tono se utiliza para generar tonos a partir de una relación dada. +msgid "The Pitch staircase tool to is used to generate pitches from a given ratio." +msgstr "" -#: js/musicutils.js:770 -#: js/synthutils.js:155 -#.TRANS: a musically tuned set of bells -#.TRANS: campaneo -msgid "chime" -msgstr "thaya suyu" +#: js/blocks/WidgetBlocks.js:1135 +#.TRANS: generate a progressive sequence of pitches +#.TRANS: escalera de tono +msgid "pitch staircase" +msgstr "Kunka siqachina" -#: js/musicutils.js:771 -#: js/synthutils.js:157 -#.TRANS: a musical instrument -#.TRANS: gong -msgid "gong" +#: js/blocks/WidgetBlocks.js:1222 +#.TRANS: El bloque Hacer un ritmo abre una herramienta para crear cajas de ritmos. +msgid "The Rhythm Maker block opens a tool to create drum machines." msgstr "" -#: js/musicutils.js:772 -#: js/synthutils.js:159 -#.TRANS: sound effect -#.TRANS: estruendo -msgid "clang" -msgstr "q'iju" +#: js/blocks/WidgetBlocks.js:1291 +#.TRANS: escala mayor G +msgid "G major scale" +msgstr "Kuraq G wichachina" -#: js/musicutils.js:773 -#: js/synthutils.js:161 -#.TRANS: sound effect -#.TRANS: choque -msgid "crash" -msgstr "q'axta" +#: js/blocks/WidgetBlocks.js:1326 +#.TRANS: escala mayor C +msgid "C major scale" +msgstr "Kuraq C wichachina" -#: js/musicutils.js:774 -#: js/synthutils.js:163 -#.TRANS: sound effect -#.TRANS: botella -msgid "bottle" -msgstr "qhispillu wutilla" +#: js/blocks/WidgetBlocks.js:1366 +#.TRANS: El bloque Matriz de tono y tiempo abre una herramienta para crear frases musicales. +msgid "The Phrase Maker block opens a tool to create musical phrases." +msgstr "" -#: js/musicutils.js:775 -#: js/synthutils.js:165 -#.TRANS: sound effect -#.TRANS: palmada -msgid "clap" -msgstr "t'axllirt'äwi" +#: js/blocks/WidgetBlocks.js:1373 +#.TRANS: assigns pitch to a sequence of beats to generate a melody +#.TRANS: matriz de tono en tiempo +msgid "phrase maker" +msgstr "Kunka pachapi paqarichiq " -#: js/musicutils.js:776 -#: js/synthutils.js:167 -#.TRANS: sound effect -#.TRANS: bofetada -msgid "slap" -msgstr "t'axlli" +#: js/blocks/WidgetBlocks.js:1444 +#.TRANS: Debe tener al menos un bloque de tono y un bloque de ritmo en la matriz. +msgid "You must have at least one pitch block and one rhythm block in the matrix." +msgstr "" -#: js/musicutils.js:777 -#: js/synthutils.js:169 -#.TRANS: sound effect -#.TRANS: salpicadura -msgid "splash" -msgstr "ch'itiqiri" +#: js/blocks/WidgetBlocks.js:1503 +#.TRANS: El bloque Estado abre una herramienta para inspeccionar el estado de Bloques de Música mientras se ejecuta. +msgid "The Status block opens a tool for inspecting the status of Music Blocks as it is running." +msgstr "" -#: js/musicutils.js:778 -#: js/synthutils.js:171 -#.TRANS: sound effect -#.TRANS: burbujas -msgid "bubbles" -msgstr "jupuqunaka" +#: js/blocks/WidgetBlocks.js:1580 +#.TRANS: AI-generated music +#.TRANS: música ia +msgid "aimusic" +msgstr "" -#: js/musicutils.js:779 -#: js/synthutils.js:173 -#.TRANS: sound effect -#.TRANS: gota de agua -msgid "raindrop" -msgstr "gota de agua" +#: js/turtleactions/MeterActions.js:101 +#: js/turtleactions/MeterActions.js:139 +#.TRANS: latidos por minuto deben ser mayores que +msgid "beats per minute must be greater than" +msgstr "minutupi p’ullpuqiyqa kurak kanan" -#: js/musicutils.js:780 -#: js/synthutils.js:175 -#.TRANS: animal sound effect -#.TRANS: gato -msgid "cat" -msgstr "phisi" +#: js/turtleactions/MeterActions.js:111 +#: js/turtleactions/MeterActions.js:149 +#.TRANS: máximo +msgid "maximum" +msgstr "tukupunankama" -#: js/musicutils.js:781 -#: js/synthutils.js:177 -#.TRANS: animal sound effect -#.TRANS: grillo -msgid "cricket" -msgstr "jirillu" +#: js/turtleactions/MeterActions.js:117 +#: js/turtleactions/MeterActions.js:155 +#.TRANS: latidos por minuto es +msgid "beats per minute is" +msgstr "minutupi p’ullpuqiyninqa" -#: js/musicutils.js:782 -#: js/synthutils.js:179 -#.TRANS: animal sound effect -#.TRANS: perro -msgid "dog" -msgstr "anuqara" +#: js/turtleactions/DictActions.js:75 +#: js/turtleactions/DictActions.js:142 +#: js/turtleactions/DictActions.js:172 +#.TRANS: fuente +msgid "font" +msgstr "" -#: js/musicutils.js:784 -#: js/synthutils.js:86 -#.TRANS: musical instrument -#.TRANS: banjo -msgid "banjo" +#: js/turtleactions/DictActions.js:255 +#.TRANS: No existe diccionario con este nombre +msgid "Dictionary with this name does not exist" msgstr "" -#: js/musicutils.js:785 -#: js/synthutils.js:88 -#.TRANS: musical instrument -#.TRANS: koto -msgid "koto" +#: js/turtleactions/DictActions.js:259 +#.TRANS: La clave con este nombre no existe en +msgid "Key with this name does not exist in " msgstr "" -#: js/musicutils.js:786 -#: js/synthutils.js:90 -#.TRANS: musical instrument -#.TRANS: dulcimer -msgid "dulcimer" +#: js/turtleactions/DrumActions.js:227 +#.TRANS: Bloque de ruido: Quizás quiso decir utilizar un bloque de nota? +msgid "Noise Block: Did you mean to use a Note block?" +msgstr "Bloque de ruido: Quizás quiso decir utilizar un bloque de nota?" + +#: js/turtleactions/IntervalsActions.js:113 +#.TRANS: uno +msgid "one" msgstr "" -#: js/musicutils.js:787 -#: js/synthutils.js:92 -#.TRANS: musical instrument -#.TRANS: guitarra electrica -msgid "electric guitar" -msgstr "tawtinku phinchikilla" +#: js/turtleactions/IntervalsActions.js:113 +#.TRANS: dos +msgid "two" +msgstr "" -#: js/musicutils.js:788 -#: js/synthutils.js:94 -#.TRANS: musical instrument -#.TRANS: fagot -msgid "bassoon" +#: js/turtleactions/IntervalsActions.js:113 +#.TRANS: tres +msgid "three" msgstr "" -#: js/musicutils.js:789 -#: js/synthutils.js:96 -#.TRANS: musical instrument -#.TRANS: celeste -msgid "celeste" -msgstr "yuraq anqhas" +#: js/turtleactions/IntervalsActions.js:113 +#.TRANS: cuatro +msgid "four" +msgstr "" -#: js/musicutils.js:791 -#: js/musicutils.js:1123 -#: js/musicutils.js:1131 -#: js/temperament.js:650 -#.TRANS: musical temperament -#.TRANS: igual -msgid "equal" -msgstr "igual" +#: js/turtleactions/IntervalsActions.js:113 +#.TRANS: cinco +msgid "five" +msgstr "" -#: js/musicutils.js:793 -#: js/musicutils.js:1125 -#: js/musicutils.js:1133 -#.TRANS: musical temperament -#.TRANS: Pitagórico -msgid "Pythagorean" +#: js/turtleactions/IntervalsActions.js:113 +#.TRANS: seis +msgid "six" msgstr "" -#: js/musicutils.js:795 -#: js/musicutils.js:1124 -#: js/musicutils.js:1132 -#.TRANS: musical temperament -#.TRANS: solo entonación -msgid "just intonation" -msgstr "solo entonación" +#: js/turtleactions/IntervalsActions.js:113 +#.TRANS: siete +msgid "seven" +msgstr "" -#: js/musicutils.js:797 -#: js/musicutils.js:1126 -#: js/musicutils.js:1127 -#: js/musicutils.js:1134 -#: js/musicutils.js:1135 -#.TRANS: musical temperament -#.TRANS: -msgid "meantone" +#: js/turtleactions/IntervalsActions.js:113 +#.TRANS: ocho +msgid "eight" msgstr "" -#: js/musicutils.js:814 -#.TRANS: -msgid "major 7th" +#: js/turtleactions/IntervalsActions.js:113 +#.TRANS: nueve +msgid "nine" msgstr "" -#: js/musicutils.js:815 +#: js/turtleactions/IntervalsActions.js:119 #.TRANS: -msgid "minor 7th" +msgid "a" msgstr "" -#: js/musicutils.js:816 -#.TRANS: -msgid "dominant 7th" +#: js/turtleactions/IntervalsActions.js:120 +#.TRANS: abajo +msgid "below" msgstr "" -#: js/musicutils.js:817 -#.TRANS: -msgid "minor-major 7th" +#: js/turtleactions/IntervalsActions.js:124 +#.TRANS: arriba +msgid "above" msgstr "" -#: js/musicutils.js:818 -#.TRANS: -msgid "fully-diminished 7th" +#: js/turtleactions/IntervalsActions.js:131 +#.TRANS: más +msgid "plus" msgstr "" -#: js/musicutils.js:819 -#.TRANS: -msgid "half-diminished 7th" +#: js/turtleactions/IntervalsActions.js:139 +#.TRANS: abajo +msgid " below" msgstr "" -#: js/musicutils.js:4379 -#: js/musicutils.js:4416 -#.TRANS: actuales -msgid "current" -msgstr "actuales" +#: js/turtleactions/IntervalsActions.js:257 +#.TRANS: Agregar el número de tono que falta 0. +msgid "Adding missing pitch number 0." +msgstr "Agregar el número de tono que falta 0." -#: js/musicutils.js:4382 -#: js/musicutils.js:4407 -#.TRANS: próximo -msgid "next" -msgstr "próximo" +#: js/turtleactions/IntervalsActions.js:265 +#.TRANS: Ignorando los números de tono menos de cero o más de once. +msgid "Ignoring pitch numbers less than zero or greater than eleven." +msgstr "" -#: js/musicutils.js:4385 -#: js/musicutils.js:4412 -#.TRANS: anterior -msgid "previous" -msgstr "anterior" +#: js/turtleactions/IntervalsActions.js:271 +#.TRANS: Ignorando números de tono duplicados. +msgid "Ignoring duplicate pitch numbers." +msgstr "Ignorando números de tono duplicados." -#: js/synthutils.js:104 -#.TRANS: simple monotone synthesizer -#.TRANS: simple-2 -msgid "simple-2" -msgstr "qasi-2" +#: js/turtleactions/ToneActions.js:134 +#.TRANS: La intensidad del vibrato debe estar entre 1 y 100. +msgid "Vibrato intensity must be between 1 and 100." +msgstr " khatataypa kallpanqa huk hinallataq pachakpi kachkanan" -#: js/synthutils.js:106 -#.TRANS: simple monotone synthesizer -#.TRANS: simple-3 -msgid "simple-3" -msgstr "qasi-3" +#: js/turtleactions/ToneActions.js:139 +#.TRANS: La velocidad del vibrato debe ser mayor que 0. +msgid "Vibrato rate must be greater than 0." +msgstr " khatataypa utqayninqa ch’usaqpa kurakninmi kanan" -#: js/synthutils.js:108 -#.TRANS: simple monotone synthesizer -#.TRANS: simple-4 -msgid "simple-4" -msgstr "qasi-4" +#: js/turtleactions/ToneActions.js:192 +#: js/turtleactions/ToneActions.js:265 +#.TRANS: Depth is the intesity of the tremolo or chorus effect. +#.TRANS: El valor de profundidad está fuera de rango. +msgid "Depth is out of range." +msgstr "ukhunchasqa chaninninqa manam t’aqanpichu kachkan" -#: js/synthutils.js:141 -#.TRANS: musical instrument -#.TRANS: taiko -msgid "taiko" -msgstr "chakiyuq wankar" +#: js/turtleactions/ToneActions.js:301 +#.TRANS: El valor de distorsión debe ser de 0 a 100. +msgid "Distortion must be from 0 to 100." +msgstr "q’iwisqapa chaninninqa ch’usaqmanta pachakkama kanan" + +#: js/turtleactions/ToneActions.js:332 +#.TRANS: partials components in a harmonic series +#.TRANS: Parcial debe ser mayor o igual a 0. +msgid "Partial must be greater than or equal to 0." +msgstr "chawaqa ch’usaqamanta kurakpas kikinpas kanan" + +#: js/turtleactions/ToneActions.js:378 +#: js/turtleactions/ToneActions.js:417 +#: js/turtleactions/ToneActions.js:456 +#: js/widgets/timbre.js:782 +#.TRANS: No se puede usar el sintetizador debido al bloqueo del oscilador. +msgid "Unable to use synth due to existing oscillator" +msgstr "Manam pisiyachiqta hap’ikunmanchu imaraykuchus maymikuq hark’asqa kaptin" -#: js/modewidget.js:86 -#: js/modewidget.js:88 -#: js/modewidget.js:642 -#: js/modewidget.js:644 -#: js/modewidget.js:712 -#: js/modewidget.js:714 -#: js/temperament.js:2078 -#: js/rhythmruler.js:189 -#: js/rhythmruler.js:1410 -#: js/rhythmruler.js:1412 -#: js/rhythmruler.js:1435 -#: js/rhythmruler.js:1437 -#: js/meterwidget.js:89 -#: js/meterwidget.js:91 +#: js/turtleactions/ToneActions.js:388 +#: js/turtleactions/ToneActions.js:427 +#.TRANS: La entrada no puede ser negativa. +msgid "The input cannot be negative." +msgstr "haykunanqa manam manaqa kanmanchu" + +#: js/widgets/modewidget.js:86 +#: js/widgets/modewidget.js:88 +#: js/widgets/modewidget.js:642 +#: js/widgets/modewidget.js:644 +#: js/widgets/modewidget.js:712 +#: js/widgets/modewidget.js:714 +#: js/widgets/meterwidget.js:194 +#: js/widgets/meterwidget.js:196 +#: js/widgets/temperament.js:2236 +#: js/widgets/rhythmruler.js:457 +#: js/widgets/rhythmruler.js:1790 +#: js/widgets/rhythmruler.js:1792 +#: js/widgets/rhythmruler.js:1816 +#: js/widgets/rhythmruler.js:1818 #.TRANS: Jugar todo msgid "Play all" msgstr "llapanta pukllay" -#: js/modewidget.js:115 -#: js/pitchstaircase.js:641 -#: js/phrasemaker.js:339 -#: js/pitchdrummatrix.js:94 -#: js/pitchslider.js:125 -#: js/temperament.js:2083 -#: js/musickeyboard.js:530 -#: js/timbre.js:756 -#: js/meterwidget.js:124 -#: js/arpeggio.js:103 +#: js/widgets/modewidget.js:115 +#: js/widgets/meterwidget.js:229 +#: js/widgets/pitchdrummatrix.js:166 +#: js/widgets/pitchslider.js:125 +#: js/widgets/pitchstaircase.js:641 +#: js/widgets/temperament.js:2244 +#: js/widgets/timbre.js:756 +#: js/widgets/arpeggio.js:103 +#: js/widgets/musickeyboard.js:688 +#: js/widgets/phrasemaker.js:550 #.TRANS: Guardar msgid "Save" msgstr "waqaychay" -#: js/modewidget.js:121 -#: js/pitchstaircase.js:686 -#: js/phrasemaker.js:356 -#: js/pitchdrummatrix.js:109 -#: js/musickeyboard.js:534 -#: js/rhythmruler.js:269 -#: js/arpeggio.js:118 +#: js/widgets/modewidget.js:121 +#: js/widgets/pitchdrummatrix.js:181 +#: js/widgets/pitchstaircase.js:686 +#: js/widgets/arpeggio.js:118 +#: js/widgets/musickeyboard.js:696 +#: js/widgets/phrasemaker.js:567 +#: js/widgets/rhythmruler.js:601 #.TRANS: clear all subdivisions from the ruler. #.TRANS: Borrar msgid "Clear" msgstr "pichay" -#: js/modewidget.js:127 +#: js/widgets/modewidget.js:127 #.TRANS: Girar en sentido antihorario msgid "Rotate counter clockwise" msgstr "Girar en sentido antihorario" -#: js/modewidget.js:133 +#: js/widgets/modewidget.js:133 #.TRANS: Girar en sentido horario msgid "Rotate clockwise" msgstr "lluq’iman muyuy" -#: js/modewidget.js:139 +#: js/widgets/modewidget.js:139 #.TRANS: Invertir msgid "Invert" msgstr "Tikray" -#: js/modewidget.js:145 -#: js/pitchstaircase.js:678 -#: js/rhythmruler.js:258 -#: js/timbre.js:963 +#: js/widgets/modewidget.js:145 +#: js/widgets/pitchstaircase.js:678 +#: js/widgets/timbre.js:963 +#: js/widgets/rhythmruler.js:578 #.TRANS: Deshacer msgid "Undo" msgstr "paskay" -#: js/modewidget.js:163 +#: js/widgets/modewidget.js:163 #.TRANS: A circle of notes represents the musical mode. #.TRANS: Haga clic en el círculo para seleccionar notas para el modo. msgid "Click in the circle to select notes for the mode." msgstr "Haga clic en el círculo para seleccionar notas para el modo." -#: js/modewidget.js:1017 -#: js/pitchstaircase.js:580 -#: js/phrasemaker.js:4855 -#: js/temperament.js:1754 -#: js/rhythmruler.js:1865 -#: js/rhythmruler.js:2081 -#: js/tempo.js:414 +#: js/widgets/modewidget.js:1017 +#: js/widgets/pitchstaircase.js:580 +#: js/widgets/temperament.js:1929 +#: js/widgets/tempo.js:414 +#: js/widgets/phrasemaker.js:5356 +#: js/widgets/rhythmruler.js:2254 +#: js/widgets/rhythmruler.js:2472 #.TRANS: Nuevo bloque de acción creado! msgid "New action block generated!" msgstr "Nuevo bloque de acción creado!" -#: js/oscilloscope.js:79 +#: js/widgets/meterwidget.js:275 +#.TRANS: Reiniciar +msgid "Reset" +msgstr "" + +#: js/widgets/meterwidget.js:301 +#.TRANS: Haga clic en el círculo para seleccionar ritmos fuertes para el medidor. +msgid "Click in the circle to select strong beats for the meter." +msgstr "Haga clic en el círculo para seleccionar ritmos fuertes para el medidor." + +#: js/widgets/oscilloscope.js:79 #.TRANS: Hacer zoom msgid "Zoom In" msgstr "" -#: js/oscilloscope.js:88 +#: js/widgets/oscilloscope.js:88 #.TRANS: Alejar msgid "Zoom Out" msgstr "" -#: js/pitchstaircase.js:624 -#.TRANS: Tocar un acorde -msgid "Play chord" -msgstr "Tocar un acorde" - -#: js/pitchstaircase.js:632 -#.TRANS: Tocar una escala -msgid "Play scale" -msgstr "Tocar una escala" - -#: js/pitchstaircase.js:696 -#.TRANS: Haga clic en una nota para crear un nuevo paso. -msgid "Click on a note to create a new step." -msgstr "Haga clic en una nota para crear un nuevo paso." - -#: js/phrasemaker.js:363 -#.TRANS: Exportar -msgid "Export" -msgstr "hurquy" - -#: js/phrasemaker.js:370 -#.TRANS: Ordenar -msgid "Sort" -msgstr "ñiq’ichay" - -#: js/phrasemaker.js:373 -#: js/musickeyboard.js:559 -#.TRANS: Agrega una nota -msgid "Add note" -msgstr "Agrega una nota" - -#: js/phrasemaker.js:764 -#.TRANS: Haga clic en la tabla para agregar notas. -msgid "Click on the table to add notes." -msgstr "Haga clic en la tabla para agregar notas." - -#: js/phrasemaker.js:2414 -#: js/phrasemaker.js:2543 -#.TRANS: valor del tuplet -msgid "tuplet value" -msgstr "tupla chimpu chani" - -#: js/pitchdrummatrix.js:270 -#: js/pitchdrummatrix.js:639 +#: js/widgets/pitchdrummatrix.js:356 +#: js/widgets/pitchdrummatrix.js:752 #.TRANS: Haga clic en la cuadrícula para asignar notas a sonidos de tambors msgid "Click in the grid to map notes to drums." msgstr "Haga clic en la cuadrícula para asignar notas a sonidos de tambors" -#: js/pitchslider.js:103 +#: js/widgets/pitchslider.js:103 #.TRANS: Ascender msgid "Move up" msgstr "wichay" -#: js/pitchslider.js:114 +#: js/widgets/pitchslider.js:114 #.TRANS: Descender msgid "Move down" msgstr "uraqay" -#: js/pitchslider.js:136 +#: js/widgets/pitchslider.js:136 #.TRANS: Haga clic en el control deslizante para crear un bloque de notas. msgid "Click on the slider to create a note block." msgstr "Haga clic en el control deslizante para crear un bloque de notas." -#: js/temperament.js:215 +#: js/widgets/pitchstaircase.js:624 +#.TRANS: Tocar un acorde +msgid "Play chord" +msgstr "Tocar un acorde" + +#: js/widgets/pitchstaircase.js:632 +#.TRANS: Tocar una escala +msgid "Play scale" +msgstr "Tocar una escala" + +#: js/widgets/pitchstaircase.js:696 +#.TRANS: Haga clic en una nota para crear un nuevo paso. +msgid "Click on a note to create a new step." +msgstr "Haga clic en una nota para crear un nuevo paso." + +#: js/widgets/temperament.js:321 #.TRANS: volver al espacio de octava 2: 1 msgid "back to 2:1 octave space" msgstr "" -#: js/temperament.js:323 +#: js/widgets/temperament.js:447 #.TRANS: editar msgid "edit" msgstr "" -#: js/temperament.js:330 -#: js/temperament.js:332 -#: js/temperament.js:1336 -#: js/temperament.js:1338 +#: js/widgets/temperament.js:454 +#: js/widgets/temperament.js:456 +#: js/widgets/temperament.js:1493 +#: js/widgets/temperament.js:1495 #.TRANS: cerrar msgid "close" msgstr "wisq’ay" -#: js/temperament.js:423 -#: js/temperament.js:736 -#: js/temperament.js:743 -#: js/temperament.js:845 -#: js/temperament.js:935 -#: js/temperament.js:942 -#: js/temperament.js:1015 -#: js/temperament.js:1284 -#: js/temperament.js:1354 -#: js/temperament.js:1430 +#: js/widgets/temperament.js:552 +#: js/widgets/temperament.js:877 +#: js/widgets/temperament.js:884 +#: js/widgets/temperament.js:986 +#: js/widgets/temperament.js:1080 +#: js/widgets/temperament.js:1087 +#: js/widgets/temperament.js:1160 +#: js/widgets/temperament.js:1433 +#: js/widgets/temperament.js:1511 +#: js/widgets/temperament.js:1596 #.TRANS: terminado msgid "done" msgstr "" -#: js/temperament.js:477 -#: js/temperament.js:482 -#: js/temperament.js:918 +#: js/widgets/temperament.js:610 +#: js/widgets/temperament.js:615 +#: js/widgets/temperament.js:1063 #.TRANS: proporción msgid "ratio" msgstr "" -#: js/temperament.js:483 +#: js/widgets/temperament.js:616 #.TRANS: intervalo msgid "interval" msgstr "" -#: js/temperament.js:611 +#: js/widgets/temperament.js:744 #.TRANS: no escalar msgid "non scalar" -msgstr "" - -#: js/temperament.js:650 -#.TRANS: proporcións -msgid "ratios" -msgstr "" - -#: js/temperament.js:650 -#.TRANS: arbitrario -msgid "arbitrary" -msgstr "" - -#: js/temperament.js:719 -#.TRANS: número de divisiones -msgid "number of divisions" -msgstr "" - -#: js/temperament.js:741 -#: js/temperament.js:858 -#: js/temperament.js:940 -#: js/temperament.js:1033 -#.TRANS: preestreno -msgid "preview" -msgstr "" - -#: js/temperament.js:788 -msgid "The Number of divisions is too large." -msgstr "" - -#: js/temperament.js:921 -#.TRANS: recursividad -msgid "recursion" -msgstr "" - -#: js/temperament.js:1450 -#.TRANS: La proporción de octavas ha cambiado. Esto cambia el temperamento de manera significativa. -msgid "The octave ratio has changed. This changes temperament significantly." -msgstr "" - -#: js/temperament.js:2087 -#.TRANS: Tabla -msgid "Table" -msgstr "tawla" - -#: js/temperament.js:2185 -#.TRANS: añadir tonos -msgid "Add pitches" -msgstr "kunkakuna yapay" - -#: js/musickeyboard.js:570 -#.TRANS: Metrónomo -msgid "Metronome" -msgstr "" - -#: js/musickeyboard.js:1296 -#: plugins/rodi.rtp:193 -#.TRANS: duración -msgid "duration" -msgstr "unaykachiy" - -#: js/musickeyboard.js:2840 -msgid "New action blocks generated!" -msgstr "" - -#: js/musickeyboard.js:2841 -msgid "New action block generated" -msgstr "" - -#: js/musickeyboard.js:2984 -#: js/musickeyboard.js:2992 -#.TRANS: Dispositivo MIDI presente. -msgid "MIDI device present." -msgstr "" - -#: js/musickeyboard.js:2995 -#.TRANS: No se encontró ningún dispositivo MIDI. -msgid "No MIDI device found." -msgstr "" - -#: js/musickeyboard.js:3000 -#.TRANS: Error al obtener acceso MIDI en el navegador. -msgid "Failed to get MIDI access in browser." -msgstr "" - -#: js/rhythmruler.js:202 -#.TRANS: Guardar ritmos -msgid "Save rhythms" -msgstr "T’impuchisqata waqaychay" - -#: js/rhythmruler.js:222 -#.TRANS: Guardar la caja de ritmos -msgid "Save drum machine" -msgstr "tawa k’uchu t’impumusqakuna waqaychana" - -#: js/rhythmruler.js:263 -#.TRANS: user can tap out a rhythm by clicking on a ruler. -#.TRANS: Toca un ritmo -msgid "Tap a rhythm" -msgstr "Toca un ritmo" - -#: js/rhythmruler.js:342 -#: js/rhythmruler.js:344 -#: js/rhythmruler.js:1481 -#: js/rhythmruler.js:1483 -#: js/sampler.js:110 -#: js/sampler.js:112 -#: js/tempo.js:78 -#: js/tempo.js:97 -#: js/tempo.js:99 -#.TRANS: Pausa -msgid "Pause" -msgstr "sayay" - -#: js/rhythmruler.js:478 -#.TRANS: Haga clic en la regla para dividirla. -msgid "Click on the ruler to divide it." -msgstr "Haga clic en la regla para dividirla." - -#: js/rhythmruler.js:603 -#: js/rhythmruler.js:605 -#: js/rhythmruler.js:804 -#: js/rhythmruler.js:806 -#: js/rhythmruler.js:1386 -#: js/rhythmruler.js:1388 -#.TRANS: tocar un ritmo -msgid "tap a rhythm" -msgstr "maya wirsu arsuyaña" +msgstr "" -#: js/rhythmruler.js:1084 -#.TRANS: Se ha superado el valor máximo de 256. -msgid "Maximum value of 256 has been exceeded." -msgstr "Se ha superado el valor máximo de 256." +#: js/widgets/temperament.js:787 +#.TRANS: proporcións +msgid "ratios" +msgstr "" -#: js/sampler.js:137 -#.TRANS: Advertencia: la muestra es más grande que 1 MB. -msgid "Warning: Sample is bigger than 1MB." +#: js/widgets/temperament.js:787 +#.TRANS: arbitrario +msgid "arbitrary" msgstr "" -#: js/sampler.js:142 -#.TRANS: -msgid "Upload failed: Sample is not a .wav file." +#: js/widgets/temperament.js:860 +#.TRANS: número de divisiones +msgid "number of divisions" msgstr "" -#: js/sampler.js:164 -#.TRANS: Se generó un nuevo bloque de muestra de audio. -msgid "A new sample block was generated." +#: js/widgets/temperament.js:882 +#: js/widgets/temperament.js:999 +#: js/widgets/temperament.js:1085 +#: js/widgets/temperament.js:1178 +#.TRANS: preestreno +msgid "preview" msgstr "" -#: js/sampler.js:255 -#.TRANS: Subir muestra de audio -msgid "Upload sample" +#: js/widgets/temperament.js:929 +#.TRANS: El número de divisiones es demasiado grande. +msgid "The Number of divisions is too large." msgstr "" -#: js/sampler.js:306 -#.TRANS: Guardar muestra de audio -msgid "Save sample" +#: js/widgets/temperament.js:1066 +#.TRANS: recursividad +msgid "recursion" msgstr "" -#: js/sampler.js:697 -#.TRANS: The reference tone is a sound used for comparison. -#.TRANS: tono de referencia -msgid "reference tone" +#: js/widgets/temperament.js:1616 +#.TRANS: La proporción de octavas ha cambiado. Esto cambia el temperamento de manera significativa. +msgid "The octave ratio has changed. This changes temperament significantly." msgstr "" -#: js/tempo.js:113 +#: js/widgets/temperament.js:2248 +#.TRANS: Tabla +msgid "Table" +msgstr "tawla" + +#: js/widgets/temperament.js:2356 +#.TRANS: añadir tonos +msgid "Add pitches" +msgstr "kunkakuna yapay" + +#: js/widgets/tempo.js:78 +#: js/widgets/tempo.js:97 +#: js/widgets/tempo.js:99 +#: js/widgets/aiwidget.js:134 +#: js/widgets/aiwidget.js:136 +#: js/widgets/rhythmruler.js:681 +#: js/widgets/rhythmruler.js:683 +#: js/widgets/rhythmruler.js:1864 +#: js/widgets/rhythmruler.js:1866 +#: js/widgets/sampler.js:180 +#: js/widgets/sampler.js:182 +#.TRANS: Pausa +msgid "Pause" +msgstr "sayay" + +#: js/widgets/tempo.js:113 #.TRANS: Guardar tempo msgid "Save tempo" msgstr "Pacha waqaychay" -#: js/tempo.js:144 +#: js/widgets/tempo.js:144 #.TRANS: acelerar msgid "speed up" msgstr "utqhaychay" -#: js/tempo.js:150 +#: js/widgets/tempo.js:150 #.TRANS: retardar msgid "slow down" msgstr "qhipariy" -#: js/tempo.js:194 +#: js/widgets/tempo.js:194 #.TRANS: Ajusta el tempo con los botones. msgid "Adjust the tempo with the buttons." msgstr "Ajusta el tempo con los botones." -#: js/tempo.js:261 +#: js/widgets/tempo.js:261 +#.TRANS: Por favor, introduzca un número entre 30 y 1000. msgid "Please enter a number between 30 and 1000" msgstr "" -#: js/tempo.js:268 -#: js/tempo.js:271 +#: js/widgets/tempo.js:268 +#: js/widgets/tempo.js:271 #.TRANS: Los latidos por minuto deben estar entre 30 y 1000. msgid "The beats per minute must be between 30 and 1000." msgstr "Los latidos por minuto deben estar entre 30 y 1000." -#: js/tempo.js:287 +#: js/widgets/tempo.js:287 #.TRANS: Los latidos por minuto deben estar por debajo de 1000. msgid "The beats per minute must be below 1000." msgstr "" -#: js/tempo.js:303 +#: js/widgets/tempo.js:303 #.TRANS: Los latidos por minuto deben ser superiores a 30. msgid "The beats per minute must be above 30" msgstr "" -#: js/timbre.js:766 +#: js/widgets/timbre.js:766 #.TRANS: Sintetizador msgid "Synthesizer" msgstr "Huch’uyachispa tikraq" -#: js/timbre.js:789 +#: js/widgets/timbre.js:789 #.TRANS: Oscilador msgid "Oscillator" msgstr "Tikraq" -#: js/timbre.js:840 +#: js/widgets/timbre.js:840 #.TRANS: Envolvente msgid "Envelope" msgstr "patapi" -#: js/timbre.js:886 -#: js/GlobalTag.js:50 +#: js/widgets/timbre.js:886 +#: planet/js/GlobalTag.js:50 #.TRANS: On the Planet, we use labels to tag projects. #.TRANS: Efectos msgid "Effects" msgstr "Tikrasqa kunka" -#: js/timbre.js:904 +#: js/widgets/timbre.js:904 #.TRANS: Filtrar msgid "Filter" msgstr "ch’uyay" -#: js/timbre.js:946 +#: js/widgets/timbre.js:946 #.TRANS: Agregar un filtro msgid "Add filter" msgstr "Ch’uyaqta churay" -#: js/timbre.js:987 +#: js/widgets/timbre.js:987 #.TRANS: Haga clic en los botones para abrir las herramientas de diseño de timbre. msgid "Click on buttons to open the timbre design tools." msgstr "Haga clic en los botones para abrir las herramientas de diseño de timbre." -#: js/timbre.js:1273 +#: js/widgets/timbre.js:1273 #.TRANS: armonía msgid "harmonicity" msgstr "tupasqa" -#: js/timbre.js:1340 -#: js/timbre.js:1406 +#: js/widgets/timbre.js:1340 +#: js/widgets/timbre.js:1406 #.TRANS: índice de modulación msgid "modulation index" msgstr "imanas kunka tupasqa" -#: js/timbre.js:1484 +#: js/widgets/timbre.js:1484 #.TRANS: cantidad de vibrato msgid "vibrato amount" msgstr "kunkachasqa" -#: js/timbre.js:1919 +#: js/widgets/timbre.js:1919 #.TRANS: filtro ya presente msgid "Filter already present." msgstr "filtro ya presente" -#: js/timbre.js:2322 +#: js/widgets/timbre.js:2322 #.TRANS: retraso (MS) msgid "delay (MS)" msgstr "qhipariy" -#: js/timbre.js:2507 +#: js/widgets/timbre.js:2507 #.TRANS: cantidad de distorsión msgid "distortion amount" msgstr "cantidad de distorsión" -#: js/meterwidget.js:170 -#.TRANS: Reiniciar -msgid "Reset" +#: js/widgets/aiwidget.js:180 +#: js/widgets/sampler.js:227 +#.TRANS: Advertencia: la muestra es más grande que 1 MB. +msgid "Warning: Sample is bigger than 1MB." msgstr "" -#: js/meterwidget.js:196 -#.TRANS: Haga clic en el círculo para seleccionar ritmos fuertes para el medidor. -msgid "Click in the circle to select strong beats for the meter." -msgstr "Haga clic en el círculo para seleccionar ritmos fuertes para el medidor." +#: js/widgets/aiwidget.js:539 +#.TRANS: Nuevo bloque de inicio generado +msgid "New start block generated" +msgstr "" + +#: js/widgets/aiwidget.js:541 +#.TRANS: Carga MIDI. Esto puede tardar un tiempo dependiendo de la cantidad de notas en la pista. +msgid "MIDI loading. This may take some time depending upon the number of notes in the track" +msgstr "" + +#: js/widgets/aiwidget.js:551 +#: js/widgets/sampler.js:254 +#.TRANS: Error en la carga: la muestra no es un archivo .WAV. +msgid "Upload failed: Sample is not a .wav file." +msgstr "" -#: js/arpeggio.js:239 +#: js/widgets/aiwidget.js:679 +#: js/widgets/sampler.js:432 +#.TRANS: Guardar muestra de audio +msgid "Save sample" +msgstr "" + +#: js/widgets/aiwidget.js:701 +#.TRANS: Música de IA +msgid "AI Music" +msgstr "" + +#: js/widgets/arpeggio.js:239 #.TRANS: Haga clic en la cuadrícula para agregar pasos al arpegio. msgid "Click in the grid to add steps to the arpeggio." msgstr "" -#: js/ProjectStorage.js:243 -#.TRANS: anónimo -msgid "anonymous" -msgstr "anónimo" +#: js/widgets/help.js:95 +#: js/widgets/help.js:125 +#: js/widgets/help.js:146 +#: js/widgets/help.js:158 +#: js/widgets/help.js:376 +#: js/widgets/help.js:391 +#.TRANS: Hacer un recorrido +msgid "Take a tour" +msgstr "pusay" -#: js/GlobalCard.js:68 -#.TRANS: Compartir -msgid "Share" -msgstr "Apakipaña" +#: js/widgets/musickeyboard.js:725 +#: js/widgets/phrasemaker.js:584 +#.TRANS: Agrega una nota +msgid "Add note" +msgstr "Agrega una nota" -#: js/GlobalCard.js:74 -#.TRANS: Banderas -msgid "Flags" -msgstr "Banderas" +#: js/widgets/musickeyboard.js:744 +#.TRANS: Metrónomo +msgid "Metronome" +msgstr "" -#: js/LocalCard.js:36 -#.TRANS: Ver proyecto publicado -msgid "View published project" -msgstr "Ver proyecto publicado" +#: js/widgets/musickeyboard.js:1549 +#: plugins/rodi.rtp:193 +#.TRANS: duración +msgid "duration" +msgstr "unaykachiy" -#: js/LocalCard.js:42 -#.TRANS: Publicar proyecto -msgid "Publish project" -msgstr "Publicar proyecto" +#: js/widgets/musickeyboard.js:3179 +#.TRANS: Nuevo bloques de acción creado +msgid "New action blocks generated" +msgstr "" -#: js/LocalCard.js:51 -#.TRANS: Editar proyecto -msgid "Edit project" -msgstr "Editar proyecto" +#: js/widgets/musickeyboard.js:3180 +#.TRANS: Nuevo bloque de acción creado +msgid "New action block generated" +msgstr "" -#: js/LocalCard.js:52 -#.TRANS: Borrar proyecto -msgid "Delete project" -msgstr "Borrar proyecto" +#: js/widgets/musickeyboard.js:3365 +#: js/widgets/musickeyboard.js:3373 +#.TRANS: Dispositivo MIDI presente. +msgid "MIDI device present." +msgstr "" -#: js/LocalCard.js:53 -#.TRANS: Descargar proyecto -msgid "Download project" -msgstr "Descargar proyecto" +#: js/widgets/musickeyboard.js:3376 +#.TRANS: No se encontró ningún dispositivo MIDI. +msgid "No MIDI device found." +msgstr "" -#: js/LocalCard.js:55 -#.TRANS: Duplucar proyecto -msgid "Duplicate project" -msgstr "Duplucar proyecto" +#: js/widgets/musickeyboard.js:3386 +#.TRANS: Error al obtener acceso MIDI en el navegador. +msgid "Failed to get MIDI access in browser." +msgstr "" + +#: js/widgets/phrasemaker.js:574 +#.TRANS: Exportar +msgid "Export" +msgstr "hurquy" + +#: js/widgets/phrasemaker.js:581 +#.TRANS: Ordenar +msgid "Sort" +msgstr "ñiq’ichay" + +#: js/widgets/phrasemaker.js:975 +#.TRANS: Haga clic en la tabla para agregar notas. +msgid "Click on the table to add notes." +msgstr "Haga clic en la tabla para agregar notas." + +#: js/widgets/phrasemaker.js:2677 +#: js/widgets/phrasemaker.js:2819 +#.TRANS: valor del tuplet +msgid "tuplet value" +msgstr "tupla chimpu chani" -#: js/GlobalTag.js:28 +#: js/widgets/rhythmruler.js:486 +#.TRANS: Guardar ritmos +msgid "Save rhythms" +msgstr "T’impuchisqata waqaychay" + +#: js/widgets/rhythmruler.js:512 +#.TRANS: Guardar la caja de ritmos +msgid "Save drum machine" +msgstr "tawa k’uchu t’impumusqakuna waqaychana" + +#: js/widgets/rhythmruler.js:589 +#.TRANS: user can tap out a rhythm by clicking on a ruler. +#.TRANS: Toca un ritmo +msgid "Tap a rhythm" +msgstr "Toca un ritmo" + +#: js/widgets/rhythmruler.js:817 +#.TRANS: Haga clic en la regla para dividirla. +msgid "Click on the ruler to divide it." +msgstr "Haga clic en la regla para dividirla." + +#: js/widgets/rhythmruler.js:950 +#: js/widgets/rhythmruler.js:952 +#: js/widgets/rhythmruler.js:1152 +#: js/widgets/rhythmruler.js:1154 +#: js/widgets/rhythmruler.js:1765 +#: js/widgets/rhythmruler.js:1767 +#.TRANS: tocar un ritmo +msgid "tap a rhythm" +msgstr "maya wirsu arsuyaña" + +#: js/widgets/rhythmruler.js:1459 +#.TRANS: Se ha superado el valor máximo de 256. +msgid "Maximum value of 256 has been exceeded." +msgstr "Se ha superado el valor máximo de 256." + +#: js/widgets/sampler.js:237 +#.TRANS: Grabación comenzó... +msgid "Recording started..." +msgstr "" + +#: js/widgets/sampler.js:245 +#.TRANS: Grabación completa... +msgid "Recording complete..." +msgstr "" + +#: js/widgets/sampler.js:283 +#.TRANS: Se generó un nuevo bloque de muestra de audio. +msgid "A new sample block was generated." +msgstr "" + +#: js/widgets/sampler.js:378 +#.TRANS: Subir muestra de audio +msgid "Upload sample" +msgstr "" + +#: js/widgets/sampler.js:399 +#.TRANS: Advertencia: Su muestra no se puede cargar porque es >1 MB. +msgid "Warning: Your sample cannot be loaded because it is >1MB." +msgstr "" + +#: js/widgets/sampler.js:448 +#.TRANS: Alternar el micrófono +msgid "Toggle Mic" +msgstr "" + +#: js/widgets/sampler.js:458 +#.TRANS: Reproducir +msgid "Playback" +msgstr "" + +#: js/widgets/sampler.js:979 +#.TRANS: The reference tone is a sound used for comparison. +#.TRANS: tono de referencia +msgid "reference tone" +msgstr "" + +#: planet/js/GlobalTag.js:28 #.TRANS: On the Planet, we use labels to tag projects. #.TRANS: todos los proyectos msgid "All Projects" msgstr "todos los proyectos" -#: js/GlobalTag.js:30 -#: js/StringHelper.js:37 +#: planet/js/GlobalTag.js:30 +#: planet/js/StringHelper.js:37 #.TRANS: On the Planet, we use labels to tag projects. #.TRANS: Mis proyectos msgid "My Projects" msgstr "Mis proyectos" -#: js/GlobalTag.js:32 +#: planet/js/GlobalTag.js:32 #.TRANS: On the Planet, we use labels to tag projects. #.TRANS: ejemplos msgid "Examples" msgstr "ejemplos" -#: js/GlobalTag.js:34 +#: planet/js/GlobalTag.js:34 #.TRANS: On the Planet, we use labels to tag projects. #.TRANS: música msgid "Music" msgstr "música" -#: js/GlobalTag.js:36 +#: planet/js/GlobalTag.js:36 #.TRANS: On the Planet, we use labels to tag projects. #.TRANS: arte msgid "Art" msgstr "arte" -#: js/GlobalTag.js:38 +#: planet/js/GlobalTag.js:38 #.TRANS: On the Planet, we use labels to tag projects. #.TRANS: mates msgid "Math" msgstr "mates" -#: js/GlobalTag.js:40 +#: planet/js/GlobalTag.js:40 #.TRANS: On the Planet, we use labels to tag projects. #.TRANS: interactivo msgid "Interactive" msgstr "interactivo" -#: js/GlobalTag.js:42 +#: planet/js/GlobalTag.js:42 #.TRANS: On the Planet, we use labels to tag projects. #.TRANS: diseño msgid "Design" msgstr "diseño" -#: js/GlobalTag.js:44 +#: planet/js/GlobalTag.js:44 #.TRANS: On the Planet, we use labels to tag projects. #.TRANS: juego msgid "Game" msgstr "juego" -#: js/GlobalTag.js:46 +#: planet/js/GlobalTag.js:46 #.TRANS: On the Planet, we use labels to tag projects. #.TRANS: medios msgid "Media" msgstr "medios" -#: js/GlobalTag.js:48 +#: planet/js/GlobalTag.js:48 #.TRANS: On the Planet, we use labels to tag projects. #.TRANS: sensores msgid "Sensors" msgstr "sensores" -#: js/GlobalTag.js:52 +#: planet/js/GlobalTag.js:52 #.TRANS: On the Planet, we use labels to tag projects. #.TRANS: fragmento de código msgid "Code Snippet" msgstr "" -#: js/helper.js:149 -#: js/StringHelper.js:49 -#.TRANS: Mostrar más etiquetas -msgid "Show more tags" -msgstr "Mostrar más etiquetas" +#: planet/js/LocalCard.js:36 +#.TRANS: Ver proyecto publicado +msgid "View published project" +msgstr "Ver proyecto publicado" -#: js/helper.js:150 -#.TRANS: Mostrar menos etiquetas -msgid "Show fewer tags" -msgstr "Mostrar menos etiquetas" +#: planet/js/LocalCard.js:42 +#.TRANS: Publicar proyecto +msgid "Publish project" +msgstr "Publicar proyecto" + +#: planet/js/LocalCard.js:51 +#.TRANS: Editar proyecto +msgid "Edit project" +msgstr "Editar proyecto" -#: js/ProjectViewer.js:30 +#: planet/js/LocalCard.js:52 +#.TRANS: Borrar proyecto +msgid "Delete project" +msgstr "Borrar proyecto" + +#: planet/js/LocalCard.js:53 +#.TRANS: Descargar proyecto +msgid "Download project" +msgstr "Descargar proyecto" + +#: planet/js/LocalCard.js:55 +#.TRANS: Duplucar proyecto +msgid "Duplicate project" +msgstr "Duplucar proyecto" + +#: planet/js/ProjectStorage.js:243 +#.TRANS: anónimo +msgid "anonymous" +msgstr "anónimo" + +#: planet/js/SaveInterface.js:34 +#.TRANS: Abrir en Bloques de Música +msgid "Open in Music Blocks" +msgstr "Abrir en bloques de música" + +#: planet/js/SaveInterface.js:35 +#.TRANS: Abierto en TortuBloques +msgid "Open in Turtle Blocks" +msgstr "" + +#: planet/js/GlobalCard.js:68 +#.TRANS: Compartir +msgid "Share" +msgstr "Apakipaña" + +#: planet/js/GlobalCard.js:74 +#.TRANS: Banderas +msgid "Flags" +msgstr "Banderas" + +#: planet/js/GlobalPlanet.js:35 +#.TRANS: No se han encontrado resultados. +msgid "No results found." +msgstr "No se han encontrado resultados." + +#: planet/js/GlobalPlanet.js:51 +#.TRANS: Remix de +msgid "Remix of" +msgstr "Remix de" + +#: planet/js/GlobalPlanet.js:509 +#.TRANS: No es posible conectar con el servidor. +msgid "Cannot connect to server" +msgstr "No es posible conectar con el servidor." + +#: planet/js/ProjectViewer.js:30 #.TRANS: Error: No se pudo enviar el informe. Inténtalo de nuevo más tarde. msgid "Error: Report could not be submitted. Try again later." msgstr "Error: No se pudo enviar el informe. Inténtalo de nuevo más tarde." -#: js/ProjectViewer.js:31 +#: planet/js/ProjectViewer.js:31 #.TRANS: Gracias por reportar este proyecto. Un moderador revisará el proyecto en breve para verificar la violación del Código de conducta de Sugar Labs. msgid "Thank you for reporting this project. A moderator will review the project shortly, to verify violation of the Sugar Labs Code of Conduct." msgstr "Gracias por reportar este proyecto. Un moderador revisará el proyecto en breve para verificar la violación del Código de conducta de Sugar Labs." -#: js/ProjectViewer.js:32 -#: js/StringHelper.js:62 -#: js/StringHelper.js:64 -#: js/StringHelper.js:68 +#: planet/js/ProjectViewer.js:32 +#: planet/js/StringHelper.js:62 +#: planet/js/StringHelper.js:64 +#: planet/js/StringHelper.js:68 #.TRANS: Informe de proyecto msgid "Report Project" msgstr "Informe de proyecto" -#: js/ProjectViewer.js:33 -#: js/StringHelper.js:63 -#.TRANS: Proyecto informado -msgid "Project Reported" -msgstr "Proyecto informado" +#: planet/js/ProjectViewer.js:33 +#: planet/js/StringHelper.js:63 +#.TRANS: Proyecto informado +msgid "Project Reported" +msgstr "Proyecto informado" + +#: planet/js/ProjectViewer.js:34 +#.TRANS: Descripción requerida +msgid "Report description required" +msgstr "Descripción requerida" + +#: planet/js/ProjectViewer.js:35 +#.TRANS: La descripción es demasiado larga. +msgid "Report description too long" +msgstr "La descripción es demasiado larga." + +#: planet/js/Publisher.js:30 +#.TRANS: Característica no disponible: no se puede conectar al servidor. Vuelve a cargar Bloques de Música para intentarlo de nuevo. +msgid "Feature unavailable - cannot connect to server. Reload Music Blocks to try again." +msgstr "Característica no disponible: no se puede conectar al servidor. Vuelve a cargar Music Blocks para intentarlo de nuevo." + +#: planet/js/Publisher.js:220 +#: planet/js/Publisher.js:237 +#.TRANS: Este campo es requerido. +msgid "This field is required" +msgstr "Este campo es requerido." + +#: planet/js/Publisher.js:227 +#.TRANS: Título es demasiado largo. +msgid "Title too long" +msgstr "Título es demasiado largo." -#: js/ProjectViewer.js:34 -#.TRANS: Descripción requerida -msgid "Report description required" -msgstr "Descripción requerida" +#: planet/js/Publisher.js:244 +#.TRANS: La descripción es demasiado largo. +msgid "Description too long" +msgstr "La descripción es demasiado largo." -#: js/ProjectViewer.js:35 -#.TRANS: La descripción es demasiado larga. -msgid "Report description too long" -msgstr "La descripción es demasiado larga." +#: planet/js/Publisher.js:341 +#.TRANS: Error del Servidor +msgid "Server Error" +msgstr "Error del Servidor" + +#: planet/js/Publisher.js:341 +#.TRANS: Inténtalo de nuevo +msgid "Try Again" +msgstr "Inténtalo de nuevo" -#: js/StringHelper.js:30 +#: planet/js/StringHelper.js:30 #.TRANS: Planeta msgid "Planet" msgstr "Uraqi" -#: js/StringHelper.js:31 +#: planet/js/StringHelper.js:31 #.TRANS: Cerrar Planeta msgid "Close Planet" msgstr "Cerrar Planeta" -#: js/StringHelper.js:32 +#: planet/js/StringHelper.js:32 #.TRANS: Abrir proyecto desde archivo msgid "Open project from file" msgstr "Abrir proyecto desde archivo" -#: js/StringHelper.js:34 +#: planet/js/StringHelper.js:34 #.TRANS: Local msgid "Local" msgstr "" -#: js/StringHelper.js:35 +#: planet/js/StringHelper.js:35 #.TRANS: Global msgid "Global" msgstr "" -#: js/StringHelper.js:36 +#: planet/js/StringHelper.js:36 #.TRANS: Buscar un proyecto msgid "Search for a project" msgstr "Buscar un proyecto" -#: js/StringHelper.js:38 +#: planet/js/StringHelper.js:38 #.TRANS: Publicar el proyecto msgid "Publish Project" msgstr "Publicar el proyecto" -#: js/StringHelper.js:40 +#: planet/js/StringHelper.js:40 #.TRANS: Etiquetas (max 5) msgid "Tags (max 5)" msgstr "Etiquetas (max 5)" -#: js/StringHelper.js:41 -#: js/StringHelper.js:61 +#: planet/js/StringHelper.js:41 +#: planet/js/StringHelper.js:61 #.TRANS: Descripción msgid "Description" msgstr "Descripción" -#: js/StringHelper.js:42 -#: js/StringHelper.js:67 +#: planet/js/StringHelper.js:42 +#: planet/js/StringHelper.js:67 #.TRANS: Presentar msgid "Submit" msgstr "Presentar" -#: js/StringHelper.js:43 -#: js/StringHelper.js:47 +#: planet/js/StringHelper.js:43 +#: planet/js/StringHelper.js:47 #.TRANS: Cancelar msgid "Cancel" msgstr "Cancelar" -#: js/StringHelper.js:44 +#: planet/js/StringHelper.js:44 #.TRANS: Borrar \\"\\"? msgid "Delete \\"\\"?" msgstr "Borrar \\"\\"?" -#: js/StringHelper.js:45 +#: planet/js/StringHelper.js:45 #.TRANS: Eliminar permanentemente el proyecto \\"\\"? msgid "Permanently delete project \\"\\"?" msgstr "Eliminar permanentemente el proyecto \\"\\"?" -#: js/StringHelper.js:48 +#: planet/js/StringHelper.js:48 #.TRANS: Explorar proyectos msgid "Explore Projects" msgstr "Explorar proyectos" -#: js/StringHelper.js:50 +#: planet/js/StringHelper.js:49 +#: planet/js/helper.js:149 +#.TRANS: Mostrar más etiquetas +msgid "Show more tags" +msgstr "Mostrar más etiquetas" + +#: planet/js/StringHelper.js:50 #.TRANS: Más reciente msgid "Most recent" msgstr "Más reciente" -#: js/StringHelper.js:51 +#: planet/js/StringHelper.js:51 #.TRANS: Más gustado msgid "Most liked" msgstr "Más gustado" -#: js/StringHelper.js:52 +#: planet/js/StringHelper.js:52 #.TRANS: Más descargados msgid "Most downloaded" msgstr "Más descargados" -#: js/StringHelper.js:53 +#: planet/js/StringHelper.js:53 #.TRANS: A-Z msgid "A-Z" msgstr "" -#: js/StringHelper.js:54 +#: planet/js/StringHelper.js:54 #.TRANS: Ordenar por msgid "Sort by" msgstr "Ordenar por" -#: js/StringHelper.js:55 +#: planet/js/StringHelper.js:55 #.TRANS: Cargar más proyectos msgid "Load More Projects" msgstr "Cargar más proyectos" -#: js/StringHelper.js:56 +#: planet/js/StringHelper.js:56 #.TRANS: Última actualización msgid "Last Updated" msgstr "Última actualización" -#: js/StringHelper.js:57 +#: planet/js/StringHelper.js:57 #.TRANS: Fecha de creación msgid "Creation Date" msgstr "Fecha de creación" -#: js/StringHelper.js:58 +#: planet/js/StringHelper.js:58 #.TRANS: Numero de descargas: msgid "Number of Downloads:" msgstr "Numero de descargas:" -#: js/StringHelper.js:59 +#: planet/js/StringHelper.js:59 #.TRANS: Número de me gusta: msgid "Number of Likes:" msgstr "Número de me gusta:" -#: js/StringHelper.js:60 +#: planet/js/StringHelper.js:60 #.TRANS: Etiquetas: msgid "Tags:" msgstr "Etiquetas:" -#: js/StringHelper.js:65 +#: planet/js/StringHelper.js:65 #.TRANS: Reportar proyectos que violen el código de conducta de Sugar Labs. msgid "Report projects which violate the Sugar Labs Code of Conduct." msgstr "Reportar proyectos que violen el código de conducta de Sugar Labs." -#: js/StringHelper.js:66 +#: planet/js/StringHelper.js:66 #.TRANS: Razón para informar el proyecto msgid "Reason for reporting project" msgstr "Razón para informar el proyecto" -#: js/StringHelper.js:70 +#: planet/js/StringHelper.js:70 #.TRANS: Descargar como archivo msgid "Download as File" msgstr "Descargar como archivo" -#: js/GlobalPlanet.js:35 -#.TRANS: No se han encontrado resultados. -msgid "No results found." -msgstr "No se han encontrado resultados." - -#: js/GlobalPlanet.js:51 -#.TRANS: Remix de -msgid "Remix of" -msgstr "Remix de" - -#: js/GlobalPlanet.js:509 -#.TRANS: No es posible conectar con el servidor. -msgid "Cannot connect to server" -msgstr "No es posible conectar con el servidor." - -#: js/Publisher.js:30 -#.TRANS: Característica no disponible: no se puede conectar al servidor. Vuelve a cargar Bloques de Música para intentarlo de nuevo. -msgid "Feature unavailable - cannot connect to server. Reload Music Blocks to try again." -msgstr "Característica no disponible: no se puede conectar al servidor. Vuelve a cargar Music Blocks para intentarlo de nuevo." - -#: js/Publisher.js:218 -#: js/Publisher.js:235 -#.TRANS: Este campo es requerido. -msgid "This field is required" -msgstr "Este campo es requerido." - -#: js/Publisher.js:225 -#.TRANS: Título es demasiado largo. -msgid "Title too long" -msgstr "Título es demasiado largo." +#: planet/js/helper.js:150 +#.TRANS: Mostrar menos etiquetas +msgid "Show fewer tags" +msgstr "Mostrar menos etiquetas" -#: js/Publisher.js:242 -#.TRANS: La descripción es demasiado largo. -msgid "Description too long" -msgstr "La descripción es demasiado largo." +#: plugins/accelerometer.rtp:48 +#.TRANS: x del acelerómetro +msgid "motion x" +msgstr "X unxtäwi" -#: js/Publisher.js:339 -#.TRANS: Error del Servidor -msgid "Server Error" -msgstr "Error del Servidor" +#: plugins/accelerometer.rtp:56 +#.TRANS: y del acelerómetro +msgid "motion y" +msgstr "Y unxtäwi" -#: js/Publisher.js:339 -#.TRANS: Inténtalo de nuevo -msgid "Try Again" -msgstr "Inténtalo de nuevo" +#: plugins/accelerometer.rtp:64 +#.TRANS: z del acelerómetro +msgid "motion z" +msgstr "Z unxtäwi" -#: js/SaveInterface.js:34 -#.TRANS: Abrir en Bloques de Música -msgid "Open in Music Blocks" -msgstr "Abrir en bloques de música" +#: plugins/facebook.rtp:27 +#.TRANS: publicar +msgid "publish" +msgstr "Facebook taypita yatiyaña" -#: js/SaveInterface.js:35 -#.TRANS: Abierto en TortuBloques -msgid "Open in Turtle Blocks" -msgstr "" +#: plugins/maths.rtp:62 +#.TRANS: poder +msgid "power" +msgstr "kankaña" -#: plugins/weather.rtp:68 -#: plugins/weather.rtp:97 -#.TRANS: Los días siguientes deben estar en el rango de -1 a 5. -msgid "Days ahead must be in the range of -1 to 5." -msgstr "Jutiri urunakaxa -1 ukata 5 jakhu chimpunkañapawa" +#: plugins/maths.rtp:62 +#.TRANS: base +msgid "base" +msgstr "chillpa" -#: plugins/weather.rtp:122 -#.TRANS: pronóstico -msgid "forecast" -msgstr "watiqaña" +#: plugins/maths.rtp:62 +#.TRANS: exp +msgid "exp" +msgstr "exponente chimpu" -#: plugins/weather.rtp:123 -#: plugins/weather.rtp:137 -#: plugins/weather.rtp:150 -#.TRANS: ciudad -msgid "city" -msgstr "marka" +#: plugins/maths.rtp:99 +#.TRANS: piso +msgid "floor" +msgstr "uraqi" -#: plugins/weather.rtp:124 -#: plugins/weather.rtp:138 -#: plugins/weather.rtp:151 -#.TRANS: día -msgid "day" -msgstr "uru" +#: plugins/maths.rtp:104 +#.TRANS: techo +msgid "ceiling" +msgstr "pillu" -#: plugins/weather.rtp:136 -#.TRANS: alta -msgid "high" -msgstr "jach’a" +#: plugins/maths.rtp:109 +#.TRANS: a grados +msgid "to degrees" +msgstr "jukha chaniru" -#: plugins/weather.rtp:149 -#.TRANS: baja -msgid "low" -msgstr "jisk’a" +#: plugins/maths.rtp:114 +#.TRANS: a radianes +msgid "to radians" +msgstr "radianes wakichataru" #: plugins/nutrition.rtp:104 #.TRANS: obtener calorías @@ -9165,53 +9272,6 @@ msgstr "khapu t’ant’a" msgid "water" msgstr "uma" -#: plugins/maths.rtp:62 -#: plugins/examples.rtp:93 -#.TRANS: poder -msgid "power" -msgstr "kankaña" - -#: plugins/maths.rtp:62 -#: plugins/examples.rtp:93 -#.TRANS: base -msgid "base" -msgstr "chillpa" - -#: plugins/maths.rtp:62 -#: plugins/examples.rtp:93 -#.TRANS: exp -msgid "exp" -msgstr "exponente chimpu" - -#: plugins/maths.rtp:99 -#: plugins/examples.rtp:130 -#.TRANS: piso -msgid "floor" -msgstr "uraqi" - -#: plugins/maths.rtp:104 -#: plugins/examples.rtp:135 -#.TRANS: techo -msgid "ceiling" -msgstr "pillu" - -#: plugins/maths.rtp:109 -#: plugins/examples.rtp:140 -#.TRANS: a grados -msgid "to degrees" -msgstr "jukha chaniru" - -#: plugins/maths.rtp:114 -#: plugins/examples.rtp:145 -#.TRANS: a radianes -msgid "to radians" -msgstr "radianes wakichataru" - -#: plugins/facebook.rtp:27 -#.TRANS: publicar -msgid "publish" -msgstr "Facebook taypita yatiyaña" - #: plugins/rodi.rtp:172 #.TRANS: parpadear msgid "blink" @@ -9247,26 +9307,79 @@ msgstr "Surump'iyasiri qhana (Kupïxa)" msgid "move" msgstr "unxtayaña" -#: plugins/accelerometer.rtp:48 -#.TRANS: x del acelerómetro -msgid "motion x" -msgstr "X unxtäwi" +#: plugins/weather.rtp:68 +#: plugins/weather.rtp:97 +#.TRANS: Los días siguientes deben estar en el rango de -1 a 5. +msgid "Days ahead must be in the range of -1 to 5." +msgstr "Jutiri urunakaxa -1 ukata 5 jakhu chimpunkañapawa" -#: plugins/accelerometer.rtp:56 -#.TRANS: y del acelerómetro -msgid "motion y" -msgstr "Y unxtäwi" +#: plugins/weather.rtp:122 +#.TRANS: pronóstico +msgid "forecast" +msgstr "watiqaña" -#: plugins/accelerometer.rtp:64 -#.TRANS: z del acelerómetro -msgid "motion z" -msgstr "Z unxtäwi" +#: plugins/weather.rtp:123 +#: plugins/weather.rtp:137 +#: plugins/weather.rtp:150 +#.TRANS: ciudad +msgid "city" +msgstr "marka" + +#: plugins/weather.rtp:124 +#: plugins/weather.rtp:138 +#: plugins/weather.rtp:151 +#.TRANS: día +msgid "day" +msgstr "uru" + +#: plugins/weather.rtp:136 +#.TRANS: alta +msgid "high" +msgstr "jach’a" + +#: plugins/weather.rtp:149 +#.TRANS: baja +msgid "low" +msgstr "jisk’a" + +#~msgid ""Toggle Fullscreen" +#~msgstr ""Ajarka pantalla sarnaqapxana" + +#: js/toolbar.js:70 + +#: js/toolbar.js:130 + +#: js/toolbar.js:194 + +#: js/toolbar.js:249 + +#~msgid "Toggle JavaScript Editor" +#~msgstr "" + +#: js/EnsembleBlocks.js:643 + +#~msgid "The Turrle pitch block returns the current pitch number being played by the specified turtle." +#~msgstr "" + +#: js/PitchActions.js:88 + +#~msgid "The Scalar Step Block must be used inside of a Note Block." +#~msgstr "" + +#: js/PitchActions.js:107 + +#~msgid "The Scalar Step Block must be preceded by a Pitch Block." +#~msgstr "" + +#: js/musickeyboard.js:2840 + +#~msgid "New action blocks generated!" +#~msgstr "" #: js/toolbar.js:110 #: js/toolbar.js:204 -#.TRANS: Pantalla completa #~msgid "FullScreen" #~msgstr "" @@ -9277,85 +9390,71 @@ msgstr "Z unxtäwi" #: js/RhythmBlockPaletteBlocks.js:386 -#.TRANS: El bloque Tuplet se usa para generar un grupo de notas tocadas en una cantidad de tiempo condensada. #~msgid "The Tuplet block is used to generate a group of notes played in a condensed amount of time." #~msgstr "" #: js/RhythmBlockPaletteBlocks.js:601 -#.TRANS: Usar tuplets facilita la creación de grupos de notas que no se basan en una potencia de 2. #~msgid "Using tuplets makes it easy to create groups of notes that are not based on a power of 2." #~msgstr "" #: js/IntervalsBlocks.js:43 -#.TRANS: El bloque Fijar temperamento se usa para elegir el sistema de afinación usado por los Bloques de Música. #~msgid "The Set temperament block is used to choose the tuning system used by Music Blocks." #~msgstr "" #: js/IntervalsBlocks.js:175 -#.TRANS: El bloque de número de intervalo devuelve el número de pasos escalares en el intervalo actual. #~msgid "The Interval number block returns the number of scalar steps in the current interval." #~msgstr "" #: js/IntervalsBlocks.js:203 -#.TRANS: El bloque de intervalo semitono mide la distancia entre dos notas en semitonos. #~msgid "The Semi-tone interval block measures the distance between two notes in semi-tones." #~msgstr "" #: js/IntervalsBlocks.js:484 -#.TRANS: El bloque Intervalo de semitono calcula un intervalo relativo basado en la mitad de los pasos. #~msgid "The Semi-tone interval block calculates a relative interval based on half steps." #~msgstr "" #: js/IntervalsBlocks.js:522 -#.TRANS: El bloque Arpegio ejecutará cada bloque de notas varias veces, agregando una transposición basada en el acorde especificado. #~msgid "The Arpeggio block will run each note block multiple times, adding a transposition based on the specified chord." #~msgstr "" #: js/IntervalsBlocks.js:811 -#.TRANS: El bloque Intervalo escalar calcula un intervalo relativo basado en el modo actual, omitiendo todas las notas fuera del modo. #~msgid "The Scalar interval block calculates a relative interval based on the current mode, skipping all notes outside of the mode." #~msgstr "" #: js/IntervalsBlocks.js:845 -#.TRANS: El bloque Modo definir le permite definir un modo personalizado especificando números de tono. #~msgid "The Define mode block allows you define a custom mode by specifiying pitch numbers." #~msgstr "" #: js/IntervalsBlocks.js:894 -#.TRANS: Cuando Movible do es falso, los nombres de las notas de solfeo siempre están vinculados a tonos específicos, #~msgid "When Movable do is false, the solfege note names are always tied to specific pitches," #~msgstr "" #: js/IntervalsBlocks.js:896 -#.TRANS: Por ejemplo, \"do\" siempre es \"C-natural\" cuando Movible do es verdadero, los nombres de las notas del solfeo se asignan a grados de escala. \"do\" siempre es el primer grado de la escala mayor. #~msgid "eg \"do\" is always \"C-natural\" when Movable do is true, the solfege note names are assigned to scale degrees \"do\" is always the first degree of the major scale." #~msgstr "" #: js/ActionBlocks.js:750 -#.TRANS: El bloque Acción se utiliza para agrupar bloques de modo que puedan utilizarse más de una vez. #~msgid "The Action block is used to group together blocks so that they can be used more than once." #~msgstr "" #: js/BooleanBlocks.js:188 -#.TRANS: El bloque Mayor que devuelve verdadero si el número superior es mayor que el número inferior. #~msgid "The Greater-than block returns True if the top number is greater than the bottom number." #~msgstr "" #: js/BooleanBlocks.js:237 -#.TRANS: El bloque Menor que devuelve Verdadero si el número superior es menor que el número inferior. #~msgid "The Less-than block returns True if the top number is less than the bottom number." #~msgstr "" @@ -9363,7 +9462,6 @@ msgstr "Z unxtäwi" #: js/MediaBlocks.js:72 -#.TRANS: En este ejemplo, el ratón se mueve hacia la derecha hasta que alcanza el borde derecho del lienzo; luego reaparece a la izquierda del lienzo. #~msgid "In this example, the mouse moves right until it reaches the right edge of the canvas; then it reappears at the left of the canvas." #~msgstr "" @@ -9371,7 +9469,6 @@ msgstr "Z unxtäwi" #: js/MediaBlocks.js:81 -#.TRANS: En este ejemplo, la tortuga se mueve hacia la derecha hasta que alcanza el borde derecho del lienzo; luego reaparece a la izquierda del lienzo. #~msgid "In this example, the turtle moves right until it reaches the right edge of the canvas; then it reappears at the left of the canvas." #~msgstr "" @@ -9379,7 +9476,6 @@ msgstr "Z unxtäwi" #: js/MediaBlocks.js:150 -#.TRANS: En este ejemplo, el ratón se mueve hacia arriba hasta que alcanza el borde superior del lienzo; luego reaparece en la parte inferior del lienzo. #~msgid "In this example, the mouse moves upward until it reaches the top edge of the canvas; then it reappears at the bottom of the canvas." #~msgstr "" @@ -9387,19 +9483,16 @@ msgstr "Z unxtäwi" #: js/MediaBlocks.js:159 -#.TRANS: En este ejemplo, la tortuga se mueve hacia arriba hasta que alcanza el borde superior del lienzo; luego reaparece en la parte inferior del lienzo. #~msgid "In this example, the turtle moves upward until it reaches the top edge of the canvas; then it reappears at the bottom of the canvas." #~msgstr "" #: js/MediaBlocks.js:579 -#.TRANS: material de video #~msgid "video material" #~msgstr "video llamk’ana" #: js/ProgramBlocks.js:581 -#.TRANS: El bloque Ejecutar bloque ejecuta un bloque. Acepta dos tipos de argumentos: número de bloque o nombre de bloque. #~msgid "The Run block block runs a block. It accepts two types of arguments: block number or block name." #~msgstr "" @@ -9407,49 +9500,41 @@ msgstr "Z unxtäwi" #: js/DrumBlocks.js:195 -#.TRANS: El bloque Fijar tambor de ajuste seleccionará un sonido de tambor para reemplazar el tono de cualquier nota contenida. #~msgid "The Set drum block will select a drum sound to replace the pitch of any contained notes." #~msgstr "" #: js/RhythmBlocks.js:30 -#.TRANS: El bloque Valor de la Nota es el valor de la duración de la nota que se está reproduciendo actualmente. #~msgid "The Note value block is the value of the duration of the note currently being played." #~msgstr "" #: js/RhythmBlocks.js:83 -#.TRANS: El bloque Milisegundos es similar a un bloque de nota, excepto que usa el tiempo (en MS) para especificar la duración de la nota. #~msgid "The Milliseconds block is similar to a Note block except that it uses time (in MS) to specify the note duration." #~msgstr "" #: js/RhythmBlocks.js:235 -#.TRANS: El bloque Swing funciona en pares de notas (especificado por el valor de la nota), agregando cierta duración (especificada por el valor del swing) a la primera nota y tomando la misma cantidad de la segunda nota. #~msgid "The Swing block works on pairs of notes (specified by note value), adding some duration (specified by swing value) to the first note and taking the same amount from the second note." #~msgstr "" #: js/RhythmBlocks.js:335 -#.TRANS: El bloque Multiplicar de valor de nota cambia la duración de las notas al cambiar sus valores de nota. #~msgid "The Multiply note value block changes the duration of notes by changing their note values." #~msgstr "" #: js/RhythmBlocks.js:506 -#.TRANS: Un resto de la duración del valor de nota especificado se puede construir utilizando un bloque de silencio. #~msgid "A rest of the specified note value duration can be constructed using a Silence block." #~msgstr "" #: js/HeapBlocks.js:60 -#.TRANS: El bloque Mostrar pila muestra el contenido de la pila en la parte superior de la pantalla. #~msgid "The Show-heap block displays the contents of the heap at the top of the screen." #~msgstr "" #: js/FlowBlocks.js:81 -#.TRANS: La salida del ejemplo es: Sol, Sol, Sol, Sol, Re, Re, Re, Re, Sol, Sol, Sol, Sol. #~msgid "The output of the example is: Sol, Sol, Sol, Sol, Re, Re, Re, Re, Sol, Sol, Sol, Sol." #~msgstr "" @@ -9461,103 +9546,86 @@ msgstr "Z unxtäwi" #: js/FlowBlocks.js:731 -#.TRANS: Los condicionales le permiten a su programa tomar diferentes acciones dependiendo de la condición. #~msgid "Conditionals lets your program take different actions depending on the condition." #~msgstr "" #: js/FlowBlocks.js:690 -#.TRANS: En este ejemplo, si se presiona el botón del mouse, se reproducirá una caja. Si no, tocará un bombo. #~msgid "In this example if the mouse button is pressed a snare drum will play, else a kick drum will play." #~msgstr "" #: js/FlowBlocks.js:764 -#.TRANS: En este ejemplo de una caja de ritmos simple, un bombo ejecutará 1/4 de notas para siempre. #~msgid "In this example of a simple drum machine a kick drum will play 1/4 notes forever." #~msgstr "" #: js/GraphicsBlocks.js:401 -#.TRANS: El bloque Arco mueve el ratón en un arco. #~msgid "The Arc block moves the mouse in a arc." #~msgstr "El bloque Arco mueve el ratón en un arco." #: js/GraphicsBlocks.js:408 -#.TRANS: El bloque Arco mueve la tortuga en un arco. #~msgid "The Arc block moves the turtle in a arc." #~msgstr "" #: js/GraphicsBlocks.js:464 -#.TRANS: El bloque fijar rumbo establece el rumbo del ratón. #~msgid "The Set heading block sets the heading of the mouse." #~msgstr "El bloque fijar rumbo establece el rumbo del mouse." #: js/GraphicsBlocks.js:810 -#.TRANS: El bloque Envolver habilita o deshabilita el ajuste de pantalla para las acciones gráficas dentro de él. #~msgid "The Wrap block enables or disables screen wrapping for the graphics actions within it." #~msgstr "" #: js/OrnamentBlocks.js:295 -#.TRANS: El bloque Slur alarga el sostenimiento de las notas mientras mantiene el valor rítmico especificado de las notas. #~msgid "The Slur block lengthens the sustain of notes while maintaining the specified rhythmic value of the notes." #~msgstr "" #: js/OrnamentBlocks.js:324 -#.TRANS: El bloque Staccato acorta la longitud de la nota real mientras mantiene el valor rítmico especificado de las notas. #~msgid "The Staccato block shortens the length of the actual note while maintaining the specified rhythmic value of the notes." #~msgstr "" #: js/VolumeBlocks.js:592 -#.TRANS: El bloque Decrescendo disminuirá el volumen de las notas contenidas en una cantidad específica por cada nota tocada. #~msgid "The Decrescendo block will decrease the volume of the contained notes by a specified amount for every note played." #~msgstr "" #: js/VolumeBlocks.js:594 -#.TRANS: Por ejemplo, si tiene 7 notas en secuencia contenidas en un bloque de Decrescendo con un valor de 5, la nota final será un 35% menos que el volumen inicial. #~msgid "For example if you have 7 notes in sequence contained in a Decrescendo block with a value of 5 the final note will be at 35% less than the starting volume." #~msgstr "" #: js/VolumeBlocks.js:632 -#.TRANS: El bloque Crescendo aumentará el volumen de las notas contenidas en una cantidad específica por cada nota tocada. #~msgid "The Crescendo block will increase the volume of the contained notes by a specified amount for every note played." #~msgstr "" #: js/VolumeBlocks.js:634 -#.TRANS: Por ejemplo, si tiene 7 notas en secuencia contenidas en un bloque de Crescendo con un valor de 5, la nota final será un 35% más que el volumen inicial. #~msgid "For example if you have 7 notes in sequence contained in a Crescendo block with a value of 5 the final note will be at 35% more than the starting volume." #~msgstr "" #: js/ToneBlocks.js:176 -#.TRANS: El bloque Parcial se usa para especificar un peso para un armónico particular. #~msgid "The Partial block is used to specify a weight for a specific partical harmonic." #~msgstr "" #: js/ToneBlocks.js:213 -#.TRANS: El bloque Parciales ponderados se utiliza para especificar los parciales asociados con un timbre. #~msgid "The Weighted partials block is used to specify the partials associated with a timbre." #~msgstr "" #: js/ToneBlocks.js:588 -#.TRANS: El bloque fijar instrumentos predeterminado establecido cambia el instrumento predeterminado de sintetizador electrónico al instrumento de su elección. #~msgid "The set default instrument block changes the default instrument from electronic synth to the instrument of your choice." #~msgstr "" #: js/MeterBlocks.js:54 -#.TRANS: El bloque Factor de Ritmo devuelve la relación entre el valor de la nota y el valor de la nota del medidor. #~msgid "The Beat factor block returns the ratio of the note value to meter note value." #~msgstr "" @@ -9565,151 +9633,121 @@ msgstr "Z unxtäwi" #: js/MeterBlocks.js:179 -#.TRANS: En la figura, se utiliza para realizar una acción en el primer tiempo de cada compás. #~msgid "In the figure, it is used to take an action on the first beat of each measure." #~msgstr "" #: js/MeterBlocks.js:317 -#.TRANS: (De forma predeterminada, cuenta las notas de un cuarto.) #~msgid "(By default, it counts quarter notes.)" #~msgstr "kaqpuni kasqan, cuartopa notan yupay" #: js/DictBlocks.js:29 -#.TRANS: El bloque Mostrar diccionario muestra el contenido del diccionario en la parte superior de la pantalla. #~msgid "The Show-dictionary block displays the contents of the dictionary at the top of the screen." #~msgstr "" #: js/ExtrasBlocks.js:268 -#.TRANS: El bloque Comentario imprime un comentario en la parte superior de la pantalla cuando el programa se está ejecutando en modo lento. #~msgid "The Comment block prints a comment at the top of the screen when the program is running in slow mode." #~msgstr "" #: js/SensorsBlocks.js:235 -#.TRANS: El cursor sobre el bloque activa un evento cuando el cursor se mueve sobre un ratón. #~msgid "The Cursor over block triggers an event when the cursor is moved over a mouse." #~msgstr "El cursor sobre el bloque activa un evento cuando el cursor se mueve sobre un ratón." #: js/SensorsBlocks.js:242 -#.TRANS: El cursor sobre el bloque activa un evento cuando el cursor se mueve sobre una tortuga. #~msgid "The Cursor over block triggers an event when the cursor is moved over a turtle." #~msgstr "" #: js/SensorsBlocks.js:264 -#.TRANS: El bloque de salida del cursor desencadena un evento cuando el cursor se mueve fuera de un ratón. #~msgid "The Cursor out block triggers an event when the cursor is moved off of a mouse." #~msgstr "El bloque de salida del cursor desencadena un evento cuando el cursor se mueve fuera de un ratón." #: js/SensorsBlocks.js:272 -#.TRANS: El bloque de salida del cursor desencadena un evento cuando el cursor se mueve fuera de una tortuga. #~msgid "The Cursor out block triggers an event when the cursor is moved off of a turtle." #~msgstr "" #: js/SensorsBlocks.js:292 -#.TRANS: El bloque hacia abajo del botón del cursor activa un evento cuando se presiona el botón del cursor en un ratón. #~msgid "The Cursor button down block triggers an event when the curson button is press on a mouse." #~msgstr "El bloque hacia abajo del botón del cursor activa un evento cuando se presiona el botón del cursor en un ratón." #: js/SensorsBlocks.js:299 -#.TRANS: El bloque hacia abajo del botón del cursor activa un evento cuando se presiona el botón del cursor en una tortuga. #~msgid "The Cursor button down block triggers an event when the curson button is press on a turtle." #~msgstr "" #: js/SensorsBlocks.js:319 -#.TRANS: El bloque del botón del cursor hacia arriba desencadena un evento cuando se suelta el botón del cursor sobre un ratón. #~msgid "The Cursor button up block triggers an event when the cursor button is released while over a mouse." #~msgstr "El bloque del botón del cursor hacia arriba desencadena un evento cuando se suelta el botón del cursor sobre un ratón." #: js/SensorsBlocks.js:326 -#.TRANS: El bloque del botón del cursor hacia arriba desencadena un evento cuando se suelta el botón del cursor sobre una tortuga. #~msgid "The Cursor button up block triggers an event when the cursor button is released while over a turtle." #~msgstr "" #: js/SensorsBlocks.js:346 -#.TRANS: El bloque Obtener azul devuelve el componente azul del píxel debajo del ratón. #~msgid "The Get blue block returns the blue component of the pixel under the mouse." #~msgstr "" #: js/SensorsBlocks.js:352 -#.TRANS: El bloque Obtener azul devuelve el componente azul del píxel debajo de la tortuga. #~msgid "The Get blue block returns the blue component of the pixel under the turtle." #~msgstr "" #: js/SensorsBlocks.js:379 -#.TRANS: El bloque Obtener verde devuelve el componente verde del píxel debajo del ratón. #~msgid "The Get green block returns the green component of the pixel under the mouse." #~msgstr "" #: js/SensorsBlocks.js:385 -#.TRANS: El bloque Obtener verde devuelve el componente verde del píxel debajo de la tortuga. #~msgid "The Get green block returns the green component of the pixel under the turtle." #~msgstr "" #: js/SensorsBlocks.js:500 -#.TRANS: El bloque de tiempo devuelve el número de segundos que el programa se ha estado ejecutando. #~msgid "The Time block returns the number of seconds that the program has been running." #~msgstr "" -#: js/help.js:95 - -#.TRANS: Hacer un recorrido -#~msgid "Take a tour" -#~msgstr "pusay" - #: js/GlobalCard.js:48 -#.TRANS: Más detalles #~msgid "More Details" #~msgstr "Más detalles" #: js/GlobalCard.js:54 -#.TRANS: Compartir proyecto #~msgid "Share project" #~msgstr "Compartir proyecto" #: js/GlobalCard.js:60 -#.TRANS: Copiar enlace al portapapeles #~msgid "Copy link to clipboard" #~msgstr "Copiar enlace al portapapeles" #: js/GlobalCard.js:63 -#.TRANS: Ejecutar código al inicio. #~msgid "Run project on startup." #~msgstr "Ejecutar código al inicio." #: js/GlobalCard.js:64 -#.TRANS: Mostrar código al inicio. #~msgid "Show code blocks on startup." #~msgstr "Mostrar código al inicio." #: js/GlobalCard.js:65 -#.TRANS: Contraer bloques al inicio. #~msgid "Collapse code blocks on startup." #~msgstr "Contraer bloques al inicio." #: js/GlobalCard.js:70 -#.TRANS: Opciones avanzadas #~msgid "Advanced Options" #~msgstr "Opciones avanzadas" diff --git a/po/bg.po b/po/bg.po index 38811cbff2..a2dd5e7f20 100644 --- a/po/bg.po +++ b/po/bg.po @@ -2128,276 +2128,131 @@ #: js/planetInterface.js:104 #: js/planetInterface.js:104 #: js/planetInterface.js:104 -msgid "project undefined" -msgstr "" - -#: js/logo.js:61 -msgid "Not a valid pitch name" -msgstr "" - -#: js/logo.js:507 -#: js/ProgramBlocks.js:258 -#: js/ProgramBlocks.js:427 -msgid "You must select a file." -msgstr "" - -#: js/logo.js:1184 -#: js/turtles.js:118 -#: js/turtle-painter.js:1192 -#: js/turtle-painter.js:1193 -#: js/block.js:1463 -#: js/lilypond.js:757 -#: js/lilypond.js:921 -#: js/lilypond.js:959 -#: js/ActionBlocks.js:1223 -#: js/ProgramBlocks.js:1267 -msgid "start" -msgstr "" - -#: js/logo.js:1696 -msgid "Playback is ready." -msgstr "" - -#: js/blocks.js:1011 -#: js/blocks.js:3427 -#: js/blocks.js:3428 -#: js/blocks.js:3653 -#: js/blocks.js:4012 -#: js/blocks.js:4205 -#: js/blocks.js:5343 -#: js/blocks.js:6474 -#: js/palette.js:527 -#: js/palette.js:536 -#: js/palette.js:545 -#: js/palette.js:554 -#: js/palette.js:1131 -#: js/palette.js:1142 -#: js/palette.js:1153 -#: js/palette.js:1164 -#: js/palette.js:1183 -#: js/rubrics.js:529 -#: js/macros.js:170 -#: js/macros.js:266 -#: js/macros.js:267 -#: js/macros.js:276 -#: js/macros.js:828 -#: js/block.js:1449 -#: js/block.js:4164 -#: js/block.js:4182 -#: js/block.js:4193 -#: js/turtledefs.js:128 -#: js/turtledefs.js:230 -#: js/ActionBlocks.js:254 -#: js/ActionBlocks.js:307 -#: js/ActionBlocks.js:617 -#: js/ActionBlocks.js:716 -#: js/ActionBlocks.js:961 -#: js/ActionBlocks.js:1049 -#: js/ActionBlocks.js:1322 -#: js/ActionBlocks.js:1325 -#: js/ActionBlocks.js:1337 -#: js/ActionBlocks.js:1404 -#: js/MeterBlocks.js:715 -#: js/MeterBlocks.js:768 -#: js/MeterBlocks.js:831 -#: js/MeterBlocks.js:892 -#: js/phrasemaker.js:4412 -#: js/musickeyboard.js:2647 -#: js/rhythmruler.js:1928 -#: js/rhythmruler.js:1935 -#: js/rhythmruler.js:2119 -#: js/rhythmruler.js:2126 -msgid "action" -msgstr "" - -#: js/blocks.js:1205 -#: js/blocks.js:3380 -#: js/blocks.js:3770 -#: js/blocks.js:3801 -#: js/blocks.js:3850 -#: js/blocks.js:3885 -#: js/blocks.js:6497 -#: js/palette.js:509 -#: js/palette.js:638 -#: js/palette.js:1107 -#: js/BoxesBlocks.js:282 -#: js/BoxesBlocks.js:285 -#: js/BoxesBlocks.js:405 -#: js/BoxesBlocks.js:594 -msgid "box" -msgstr "" - -#: js/blocks.js:1680 -msgid "Consider breaking this stack into parts." +#: js/SaveInterface.js:59 +#: js/SaveInterface.js:61 +#: js/SaveInterface.js:93 +msgid "Music Blocks Project" msgstr "" -#: js/blocks.js:2408 -#: js/palette.js:653 -#: js/MediaBlocks.js:602 -msgid "open file" +#: js/SaveInterface.js:63 +msgid "This project was created in Music Blocks" msgstr "" -#: js/blocks.js:2415 -#: js/blocks.js:2423 -#: js/activity.js:1875 -msgid "audio file" +#: js/SaveInterface.js:67 +msgid "Music Blocks is a Free/Libre Software application." msgstr "" -#: js/blocks.js:2536 -#: js/blocks.js:3147 -#: js/block.js:3543 -msgid "on2" +#: js/SaveInterface.js:69 +msgid "The source code can be accessed at" msgstr "" -#: js/blocks.js:2538 -#: js/blocks.js:3149 -#: js/block.js:3545 -msgid "off" +#: js/SaveInterface.js:72 +msgid "For more information, please consult the" msgstr "" -#: js/blocks.js:2543 -#: js/blocks.js:3154 -#: js/palette.js:618 -#: js/block.js:3466 -#: js/BooleanBlocks.js:77 -#: js/BooleanBlocks.js:167 -#: js/BooleanBlocks.js:251 -#: js/BooleanBlocks.js:335 -#: js/BooleanBlocks.js:433 -#: js/BooleanBlocks.js:539 -#: js/BooleanBlocks.js:640 -#: js/BooleanBlocks.js:741 -#: js/BooleanBlocks.js:847 -#: js/BooleanBlocks.js:948 -#: js/BooleanBlocks.js:1033 -#: js/SensorsBlocks.js:910 -msgid "true" +#: js/SaveInterface.js:76 +#: js/turtledefs.js:795 +msgid "Music Blocks Guide" msgstr "" -#: js/blocks.js:2545 -#: js/blocks.js:3156 -#: js/block.js:3466 -#: js/BooleanBlocks.js:79 -#: js/BooleanBlocks.js:169 -#: js/BooleanBlocks.js:253 -#: js/BooleanBlocks.js:337 -#: js/BooleanBlocks.js:435 -#: js/BooleanBlocks.js:541 -#: js/BooleanBlocks.js:642 -#: js/BooleanBlocks.js:743 -#: js/BooleanBlocks.js:849 -#: js/BooleanBlocks.js:950 -#: js/SensorsBlocks.js:912 -msgid "false" +#: js/SaveInterface.js:83 +msgid "Alternatively, open the file in Music Blocks using the Load project button." msgstr "" -#: js/blocks.js:3183 -#: js/palette.js:574 -#: js/MediaBlocks.js:892 -#: js/MediaBlocks.js:963 -msgid "text" +#: js/SaveInterface.js:85 +msgid "Project Code" msgstr "" -#: js/blocks.js:3379 -#: js/palette.js:641 -#: js/palette.js:642 -#: js/BoxesBlocks.js:514 -msgid "store in box" +#: js/SaveInterface.js:87 +msgid "This code stores data about the blocks in a project." msgstr "" -#: js/blocks.js:3384 -#: js/blocks.js:3824 -#: js/blocks.js:3859 -#: js/blocks.js:3894 -#: js/blocks.js:5773 -#: js/blocks.js:5794 -#: js/BoxesBlocks.js:772 -msgid "box1" +#: js/SaveInterface.js:89 +msgid "Show" msgstr "" -#: js/blocks.js:3386 -#: js/blocks.js:3826 -#: js/blocks.js:3861 -#: js/blocks.js:3896 -#: js/blocks.js:5775 -#: js/blocks.js:5796 -#: js/BoxesBlocks.js:663 -msgid "box2" +#: js/SaveInterface.js:91 +msgid "Hide" msgstr "" -#: js/blocks.js:4058 -#: js/palette.js:639 -#: js/palette.js:644 -#: js/palette.js:1043 -#: js/BoxesBlocks.js:591 -msgid "store in" +#: js/SaveInterface.js:131 +#: js/SaveInterface.js:204 +#: js/SaveInterface.js:262 +#: js/SaveInterface.js:389 +#: js/SaveInterface.js:417 +#: js/activity.js:4884 +#: planet/js/ProjectStorage.js:27 +#: planet/js/GlobalPlanet.js:467 +#: planet/js/GlobalPlanet.js:469 +#: planet/js/GlobalPlanet.js:495 +#.TRANS: default project title when saving as Lilypond +msgid "My Project" msgstr "" -#: js/blocks.js:4058 -#: js/EnsembleBlocks.js:391 -#: js/EnsembleBlocks.js:402 -#: js/MediaBlocks.js:746 -#: js/ProgramBlocks.js:390 -#: js/ProgramBlocks.js:495 -#: js/ProgramBlocks.js:658 -#: js/BoxesBlocks.js:595 -#: js/PitchBlocks.js:656 -#: js/PitchBlocks.js:932 -#: js/PitchBlocks.js:1827 -#: js/ToneBlocks.js:1025 -#: js/DictBlocks.js:215 -#: js/DictBlocks.js:289 -msgid "name" +#: js/SaveInterface.js:197 +#: planet/js/SaveInterface.js:58 +msgid "No description provided" msgstr "" -#: js/blocks.js:4058 -#: js/RhythmBlocks.js:1130 -#: js/BoxesBlocks.js:75 -#: js/BoxesBlocks.js:595 -#: js/HeapBlocks.js:544 -#: js/DictBlocks.js:289 -#: js/DictBlocks.js:430 -msgid "value" +#: js/SaveInterface.js:332 +msgid "Your recording is in progress." msgstr "" -#: js/blocks.js:4907 -msgid "There is no block selected." +#: js/SaveInterface.js:401 +#.TRANS: File name prompt for save as Lilypond +msgid "File name" msgstr "" -#: js/blocks.js:5002 -#: js/MediaBlocks.js:888 -msgid "show" +#: js/SaveInterface.js:403 +#: planet/js/StringHelper.js:39 +#.TRANS: Project title prompt for save as Lilypond +msgid "Project title" msgstr "" -#: js/blocks.js:5005 -#: js/MediaBlocks.js:803 -#.TRANS: Avatar is the image used to determine the appearance of the mouse. -msgid "avatar" +#: js/SaveInterface.js:405 +#.TRANS: Project title prompt for save as Lilypond +msgid "Project author" msgstr "" -#: js/blocks.js:5008 -#: js/ToneBlocks.js:1010 -#: js/sampler.js:693 -#.TRANS: The sound sample that the user uploads. -msgid "sample" +#: js/SaveInterface.js:407 +#.TRANS: MIDI prompt for save as Lilypond +msgid "Include MIDI output?" msgstr "" -#: js/turtles.js:874 -msgid "Grid" +#: js/SaveInterface.js:409 +#.TRANS: Guitar prompt for save as Lilypond +msgid "Include guitar tablature output?" msgstr "" -#: js/turtles.js:891 -#: js/turtledefs.js:626 -msgid "Clean" +#: js/SaveInterface.js:411 +#.TRANS: Lilypond is a scripting language for generating sheet music +msgid "Save as Lilypond" msgstr "" -#: js/turtles.js:912 -#: js/turtledefs.js:632 -msgid "Collapse" +#: js/SaveInterface.js:426 +#: js/blocks/EnsembleBlocks.js:75 +#: js/blocks/EnsembleBlocks.js:154 +#: js/blocks/EnsembleBlocks.js:216 +#: js/blocks/EnsembleBlocks.js:302 +#: js/blocks/EnsembleBlocks.js:348 +#: js/blocks/EnsembleBlocks.js:389 +#: js/blocks/EnsembleBlocks.js:441 +#: js/blocks/EnsembleBlocks.js:490 +#: js/blocks/EnsembleBlocks.js:536 +#: js/blocks/EnsembleBlocks.js:583 +#: js/blocks/EnsembleBlocks.js:637 +#: js/blocks/EnsembleBlocks.js:753 +#: js/blocks/EnsembleBlocks.js:840 +#: js/blocks/EnsembleBlocks.js:899 +#: js/blocks/EnsembleBlocks.js:942 +#: js/blocks/EnsembleBlocks.js:1212 +#: js/blocks/EnsembleBlocks.js:1280 +#.TRANS: default project author when saving as Lilypond +msgid "Mr. Mouse" msgstr "" -#: js/turtles.js:940 -msgid "Expand" +#: js/SaveInterface.js:573 +msgid "The Lilypond code is copied to clipboard. You can paste it here: " msgstr "" #: js/languagebox.js:198 @@ -2408,6933 +2263,7487 @@ msgstr "" msgid "Music Blocks is already set to this language." msgstr "" -#: js/piemenus.js:200 -#: js/musicutils.js:808 -#: js/musicutils.js:824 -#: js/phrasemaker.js:1672 -#: js/musickeyboard.js:2041 -#: js/sampler.js:544 -#.TRANS: double sharp is a music term related to pitch -msgid "double sharp" +#: js/planetInterface.js:131 +msgid "project undefined" msgstr "" -#: js/piemenus.js:201 -#: js/PitchBlocks.js:1510 -#: js/PitchActions.js:580 -#: js/musicutils.js:806 -#: js/musicutils.js:825 -#: js/phrasemaker.js:1673 -#: js/musickeyboard.js:2042 -#: js/sampler.js:545 -#.TRANS: sharp is a half-step up in pitch -#.TRANS: sharp is a music term related to pitch -msgid "sharp" +#: js/rubrics.js:523 +#: js/turtledefs.js:119 +#: js/turtledefs.js:221 +#: js/blocks/RhythmBlockPaletteBlocks.js:52 +#: js/blocks/RhythmBlockPaletteBlocks.js:234 +#: js/blocks/ProgramBlocks.js:745 +#: js/widgets/rhythmruler.js:2057 +#: js/widgets/rhythmruler.js:2064 +#: js/widgets/rhythmruler.js:2133 +#: js/widgets/rhythmruler.js:2140 +#: js/widgets/rhythmruler.js:2219 +#.TRANS: an arrangement of notes based on duration +msgid "rhythm" msgstr "" -#: js/piemenus.js:202 -#: js/musicutils.js:804 -#: js/musicutils.js:826 -#: js/phrasemaker.js:1674 -#: js/musickeyboard.js:2043 -#: js/sampler.js:546 -#.TRANS: natural is a music term related to pitch -msgid "natural" +#: js/rubrics.js:524 +#: js/turtledefs.js:121 +#: js/turtledefs.js:223 +#: js/block-verbose.js:2622 +#: js/block.js:2550 +#: js/blocks/IntervalsBlocks.js:63 +#: js/blocks/SensorsBlocks.js:178 +#: js/blocks/PitchBlocks.js:1839 +#: js/blocks/PitchBlocks.js:1853 +#: js/widgets/musickeyboard.js:1935 +#: js/widgets/phrasemaker.js:1036 +#.TRANS: pitch number +#.TRANS: pitch number +#.TRANS: we specify pitch in terms of a name and an octave. The name can be CDEFGAB or Do Re Mi Fa Sol La Ti. Octave is a number between 1 and 8. +msgid "pitch" msgstr "" -#: js/piemenus.js:203 -#: js/PitchBlocks.js:1469 -#: js/PitchActions.js:583 -#: js/musicutils.js:802 -#: js/musicutils.js:827 -#: js/phrasemaker.js:1675 -#: js/musickeyboard.js:2044 -#: js/sampler.js:547 -#.TRANS: flat is a half-step down in pitch -#.TRANS: flat is a music term related to pitch -msgid "flat" +#: js/rubrics.js:525 +#: js/turtledefs.js:123 +#: js/turtledefs.js:225 +msgid "tone" msgstr "" -#: js/piemenus.js:204 -#: js/musicutils.js:800 -#: js/musicutils.js:828 -#: js/phrasemaker.js:1676 -#: js/musickeyboard.js:2045 -#: js/sampler.js:548 -#.TRANS: double flat is a music term related to pitch -msgid "double flat" +#: js/rubrics.js:526 +#: js/lilypond.js:605 +#: js/lilypond.js:904 +#: js/lilypond.js:910 +#: js/lilypond.js:948 +msgid "mouse" msgstr "" -#: js/piemenus.js:2861 -#: js/PitchBlocks.js:1357 -#: js/musicutils.js:627 -#.TRANS: unison means the note is the same as the current note -#.TRANS: unison is a music term related to intervals -msgid "unison" +#: js/rubrics.js:527 +#: js/turtledefs.js:132 +#: js/turtledefs.js:234 +#: js/widgets/phrasemaker.js:1040 +msgid "pen" msgstr "" -#: js/piemenus.js:3015 -#: js/piemenus.js:3088 -#: js/musicutils.js:635 -#: js/musicutils.js:810 -#: js/musicutils.js:912 -#.TRANS: major is a music term related to intervals and mode -msgid "major" +#: js/rubrics.js:528 +#: js/turtledefs.js:133 +#: js/turtledefs.js:235 +#: js/blocks/NumberBlocks.js:981 +#: js/blocks/PitchBlocks.js:1717 +#: js/blocks/PitchBlocks.js:1758 +msgid "number" msgstr "" -#: js/piemenus.js:3015 -#: js/piemenus.js:3088 -#: js/musicutils.js:653 -#.TRANS: modal scale for music -msgid "ionian" +#: js/rubrics.js:529 +#: js/turtledefs.js:127 +#: js/turtledefs.js:229 +msgid "flow" msgstr "" -#: js/piemenus.js:3017 -#: js/piemenus.js:3092 -#: js/musicutils.js:633 -#: js/musicutils.js:811 -#: js/musicutils.js:909 -#.TRANS: minor is a music term related to intervals and mode -msgid "minor" +#: js/rubrics.js:530 +#: js/turtledefs.js:128 +#: js/turtledefs.js:230 +#: js/block-verbose.js:1609 +#: js/block-verbose.js:4559 +#: js/block-verbose.js:4577 +#: js/block-verbose.js:4588 +#: js/block.js:1573 +#: js/block.js:4483 +#: js/block.js:4501 +#: js/block.js:4512 +#: js/blocks.js:1018 +#: js/blocks.js:3491 +#: js/blocks.js:3492 +#: js/blocks.js:3717 +#: js/blocks.js:4076 +#: js/blocks.js:4269 +#: js/blocks.js:5432 +#: js/blocks.js:6563 +#: js/macros.js:170 +#: js/macros.js:266 +#: js/macros.js:267 +#: js/macros.js:276 +#: js/macros.js:828 +#: js/palette.js:527 +#: js/palette.js:536 +#: js/palette.js:545 +#: js/palette.js:554 +#: js/palette.js:1129 +#: js/palette.js:1140 +#: js/palette.js:1151 +#: js/palette.js:1162 +#: js/palette.js:1181 +#: js/blocks/ActionBlocks.js:254 +#: js/blocks/ActionBlocks.js:307 +#: js/blocks/ActionBlocks.js:617 +#: js/blocks/ActionBlocks.js:716 +#: js/blocks/ActionBlocks.js:961 +#: js/blocks/ActionBlocks.js:1049 +#: js/blocks/ActionBlocks.js:1322 +#: js/blocks/ActionBlocks.js:1325 +#: js/blocks/ActionBlocks.js:1337 +#: js/blocks/ActionBlocks.js:1404 +#: js/blocks/MeterBlocks.js:715 +#: js/blocks/MeterBlocks.js:768 +#: js/blocks/MeterBlocks.js:831 +#: js/blocks/MeterBlocks.js:892 +#: js/widgets/musickeyboard.js:2986 +#: js/widgets/phrasemaker.js:4913 +#: js/widgets/rhythmruler.js:2319 +#: js/widgets/rhythmruler.js:2326 +#: js/widgets/rhythmruler.js:2511 +#: js/widgets/rhythmruler.js:2518 +msgid "action" msgstr "" -#: js/piemenus.js:3017 -#: js/piemenus.js:3092 -#: js/musicutils.js:663 -#.TRANS: modal scale for music -msgid "aeolian" +#: js/rubrics.js:531 +#: js/turtledefs.js:136 +#: js/turtledefs.js:238 +msgid "sensors" msgstr "" -#: js/piemenus.js:3407 -msgid "Duplicate" +#: js/rubrics.js:532 +#: js/turtledefs.js:135 +#: js/turtledefs.js:237 +#: js/blocks/MediaBlocks.js:930 +msgid "media" msgstr "" -#: js/piemenus.js:3408 -#: js/turtledefs.js:534 -msgid "Extract" +#: js/rubrics.js:533 +msgid "mice" msgstr "" -#: js/piemenus.js:3409 -msgid "Move to trash" +#: js/toolbar.js:48 +#: js/toolbar.js:109 +msgid "About Music Blocks" msgstr "" -#: js/piemenus.js:3410 -#: js/timbre.js:968 -#: js/StringHelper.js:69 -msgid "Close" +#: js/toolbar.js:49 +#: js/toolbar.js:110 +#: js/toolbar.js:175 +#: js/toolbar.js:231 +#: js/turtledefs.js:445 +#: js/turtledefs.js:482 +#: js/activity.js:2660 +#: js/activity.js:2671 +#: js/activity.js:2902 +#: js/widgets/modewidget.js:77 +#: js/widgets/meterwidget.js:185 +#: js/widgets/pitchdrummatrix.js:147 +#: js/widgets/pitchdrummatrix.js:687 +#: js/widgets/pitchdrummatrix.js:689 +#: js/widgets/pitchdrummatrix.js:741 +#: js/widgets/pitchdrummatrix.js:743 +#: js/widgets/pitchdrummatrix.js:758 +#: js/widgets/pitchdrummatrix.js:760 +#: js/widgets/pitchdrummatrix.js:789 +#: js/widgets/pitchdrummatrix.js:791 +#: js/widgets/pitchstaircase.js:121 +#: js/widgets/temperament.js:610 +#: js/widgets/temperament.js:613 +#: js/widgets/temperament.js:673 +#: js/widgets/temperament.js:675 +#: js/widgets/temperament.js:2017 +#: js/widgets/temperament.js:2019 +#: js/widgets/tempo.js:84 +#: js/widgets/tempo.js:86 +#: js/widgets/timbre.js:432 +#: js/widgets/timbre.js:434 +#: js/widgets/timbre.js:465 +#: js/widgets/timbre.js:467 +#: js/widgets/timbre.js:746 +#: js/widgets/aiwidget.js:647 +#: js/widgets/aiwidget.js:654 +#: js/widgets/aiwidget.js:656 +#: js/widgets/arpeggio.js:90 +#: js/widgets/arpeggio.js:547 +#: js/widgets/arpeggio.js:549 +#: js/widgets/arpeggio.js:644 +#: js/widgets/arpeggio.js:646 +#: js/widgets/musickeyboard.js:676 +#: js/widgets/musickeyboard.js:872 +#: js/widgets/musickeyboard.js:874 +#: js/widgets/musickeyboard.js:953 +#: js/widgets/musickeyboard.js:955 +#: js/widgets/phrasemaker.js:513 +#: js/widgets/phrasemaker.js:523 +#: js/widgets/phrasemaker.js:525 +#: js/widgets/phrasemaker.js:4304 +#: js/widgets/phrasemaker.js:4528 +#: js/widgets/phrasemaker.js:4533 +#: js/widgets/phrasemaker.js:4535 +#: js/widgets/phrasemaker.js:4650 +#: js/widgets/rhythmruler.js:637 +#: js/widgets/rhythmruler.js:639 +#: js/widgets/rhythmruler.js:653 +#: js/widgets/rhythmruler.js:655 +#: js/widgets/sampler.js:162 +#: js/widgets/sampler.js:164 +#: js/widgets/sampler.js:363 +msgid "Play" msgstr "" -#: js/piemenus.js:3416 -msgid "Save stack" +#: js/toolbar.js:50 +#: js/toolbar.js:111 +#: js/toolbar.js:176 +#: js/toolbar.js:232 +#: js/turtledefs.js:451 +#: js/turtledefs.js:488 +#: js/activity.js:2679 +#: js/widgets/modewidget.js:99 +#: js/widgets/modewidget.js:101 +#: js/widgets/meterwidget.js:206 +#: js/widgets/meterwidget.js:208 +#: js/widgets/pitchdrummatrix.js:674 +#: js/widgets/pitchdrummatrix.js:676 +#: js/widgets/temperament.js:2002 +#: js/widgets/temperament.js:2004 +#: js/widgets/arpeggio.js:534 +#: js/widgets/arpeggio.js:536 +#: js/widgets/phrasemaker.js:534 +#: js/widgets/phrasemaker.js:536 +msgid "Stop" msgstr "" -#: js/piemenus.js:3420 -#: js/toolbar.js:60 -#: js/toolbar.js:120 -#: js/toolbar.js:185 -#: js/toolbar.js:240 -#: js/turtledefs.js:752 -msgid "Help" +#: js/toolbar.js:51 +#: js/toolbar.js:112 +#: js/toolbar.js:177 +#: js/toolbar.js:233 +#: js/turtledefs.js:498 +msgid "Record" msgstr "" -#: js/piemenus.js:3762 -msgid "You have chosen key " +#: js/toolbar.js:52 +#: js/toolbar.js:53 +msgid "Full screen" msgstr "" -#: js/piemenus.js:3766 -msgid " for your pitch preview." +#: js/toolbar.js:54 +#: js/toolbar.js:115 +#: js/toolbar.js:180 +#: js/toolbar.js:236 +#: js/turtledefs.js:504 +msgid "Toggle Fullscreen" +msgstr "" + +#: js/toolbar.js:55 +#: js/toolbar.js:116 +#: js/toolbar.js:181 +#: js/toolbar.js:237 +#: js/turtledefs.js:510 +#: planet/js/StringHelper.js:33 +msgid "New project" +msgstr "" + +#: js/toolbar.js:56 +#: js/toolbar.js:117 +#: js/toolbar.js:182 +#: js/toolbar.js:238 +#: js/turtledefs.js:516 +msgid "Load project from file" +msgstr "" + +#: js/toolbar.js:57 +#: js/toolbar.js:118 +#: js/toolbar.js:119 +#: js/toolbar.js:183 +#: js/toolbar.js:239 +#: js/turtledefs.js:541 +#: js/turtledefs.js:550 +#: js/turtledefs.js:571 +msgid "Save project" +msgstr "" + +#: js/toolbar.js:58 +#: js/toolbar.js:77 +#: js/toolbar.js:79 +#: js/toolbar.js:138 +#: js/toolbar.js:147 +#: js/toolbar.js:149 +#: js/toolbar.js:184 +#: js/toolbar.js:202 +#: js/toolbar.js:204 +#: js/toolbar.js:240 +#: js/toolbar.js:258 +#: js/toolbar.js:260 +msgid "Save project as HTML" +msgstr "" + +#: js/toolbar.js:59 +#: js/toolbar.js:120 +#: js/toolbar.js:185 +#: js/toolbar.js:241 +msgid "Find and share projects" +msgstr "" + +#: js/toolbar.js:60 +#: js/toolbar.js:121 +#: js/toolbar.js:186 +#: js/toolbar.js:242 +msgid "Offline. Sharing is unavailable" +msgstr "" + +#: js/toolbar.js:61 +#: js/toolbar.js:122 +#: js/toolbar.js:187 +#: js/toolbar.js:243 +msgid "Auxiliary menu" +msgstr "" + +#: js/toolbar.js:62 +#: js/toolbar.js:123 +#: js/toolbar.js:188 +#: js/toolbar.js:244 +#: js/turtledefs.js:752 +#: js/piemenus.js:3423 +msgid "Help" +msgstr "" + +#: js/toolbar.js:63 +#: js/toolbar.js:124 +#: js/toolbar.js:189 +#: js/toolbar.js:245 +msgid "Run slowly" +msgstr "" + +#: js/toolbar.js:64 +#: js/toolbar.js:125 +#: js/toolbar.js:190 +#: js/toolbar.js:246 +#: js/turtledefs.js:682 +msgid "Run step by step" +msgstr "" + +#: js/toolbar.js:65 +#: js/toolbar.js:126 +#: js/toolbar.js:191 +#: js/toolbar.js:247 +#: js/turtledefs.js:689 +msgid "Display statistics" +msgstr "" + +#: js/toolbar.js:66 +#: js/toolbar.js:127 +#: js/toolbar.js:192 +#: js/toolbar.js:248 +msgid "Load plugin" +msgstr "" + +#: js/toolbar.js:67 +#: js/toolbar.js:128 +#: js/toolbar.js:193 +#: js/toolbar.js:249 +#: js/turtledefs.js:696 +msgid "Delete plugin" +msgstr "" + +#: js/toolbar.js:68 +#: js/toolbar.js:129 +#: js/toolbar.js:194 +#: js/toolbar.js:250 +msgid "Enable horizontal scrolling" +msgstr "" + +#: js/toolbar.js:69 +#: js/toolbar.js:130 +#: js/toolbar.js:195 +#: js/toolbar.js:251 +msgid "Disable horizontal scrolling" +msgstr "" + +#: js/toolbar.js:70 +#: js/toolbar.js:131 +#: js/toolbar.js:196 +#: js/toolbar.js:252 +#: planet/js/LocalCard.js:54 +#: planet/js/StringHelper.js:71 +msgid "Merge with current project" +msgstr "" + +#: js/toolbar.js:71 +#: js/toolbar.js:132 +msgid "Set Pitch Preview" +msgstr "" + +#: js/toolbar.js:72 +#: js/toolbar.js:133 +#: js/toolbar.js:197 +#: js/toolbar.js:253 +msgid "JavaScript Editor" +msgstr "" + +#: js/toolbar.js:73 +#: js/toolbar.js:134 +#: js/toolbar.js:198 +#: js/toolbar.js:254 +#: js/turtledefs.js:724 +msgid "Restore" +msgstr "" + +#: js/toolbar.js:74 +#: js/toolbar.js:135 +#: js/toolbar.js:199 +#: js/toolbar.js:255 +msgid "Switch to beginner mode" +msgstr "" + +#: js/toolbar.js:75 +#: js/toolbar.js:136 +#: js/toolbar.js:200 +#: js/toolbar.js:256 +msgid "Switch to advanced mode" +msgstr "" + +#: js/toolbar.js:76 +#: js/toolbar.js:137 +#: js/toolbar.js:146 +#: js/toolbar.js:201 +#: js/toolbar.js:257 +#: js/turtledefs.js:738 +msgid "Select language" +msgstr "" + +#: js/toolbar.js:78 +#: js/toolbar.js:81 +#: js/toolbar.js:140 +#: js/turtledefs.js:579 +msgid "Save mouse artwork as PNG" +msgstr "" + +#: js/toolbar.js:80 +#: js/toolbar.js:139 +#: js/turtledefs.js:575 +msgid "Save mouse artwork as SVG" +msgstr "" + +#: js/toolbar.js:82 +#: js/toolbar.js:141 +#: js/turtledefs.js:583 +msgid "Save music as WAV" +msgstr "" + +#: js/toolbar.js:83 +#: js/toolbar.js:142 +#: js/turtledefs.js:587 +msgid "Save sheet music as ABC" +msgstr "" + +#: js/toolbar.js:84 +#: js/toolbar.js:143 +#: js/turtledefs.js:591 +msgid "Save sheet music as Lilypond" +msgstr "" + +#: js/toolbar.js:85 +msgid "Save sheet music as MusicXML" +msgstr "" + +#: js/toolbar.js:86 +#: js/toolbar.js:144 +#: js/toolbar.js:152 +#: js/toolbar.js:207 +#: js/toolbar.js:263 +#: js/turtledefs.js:562 +#: js/turtledefs.js:595 +msgid "Save block artwork as SVG" +msgstr "" + +#: js/toolbar.js:87 +#: js/toolbar.js:145 +#: js/toolbar.js:153 +#: js/toolbar.js:208 +#: js/toolbar.js:264 +#: js/turtles.js:911 +msgid "Confirm" +msgstr "" + +#: js/toolbar.js:88 +#: js/toolbar.js:154 +#: js/toolbar.js:209 +#: js/toolbar.js:265 +msgid "English (United States)" +msgstr "" + +#: js/toolbar.js:89 +#: js/toolbar.js:155 +#: js/toolbar.js:210 +#: js/toolbar.js:266 +msgid "English (United Kingdom)" +msgstr "" + +#: js/toolbar.js:90 +#: js/toolbar.js:156 +#: js/toolbar.js:211 +#: js/toolbar.js:267 +msgid "日本語" +msgstr "" + +#: js/toolbar.js:91 +msgid "한국어" +msgstr "" + +#: js/toolbar.js:92 +#: js/toolbar.js:158 +#: js/toolbar.js:213 +#: js/toolbar.js:269 +msgid "español" +msgstr "" + +#: js/toolbar.js:93 +#: js/toolbar.js:159 +#: js/toolbar.js:214 +#: js/toolbar.js:270 +msgid "português" +msgstr "" + +#: js/toolbar.js:94 +#: js/toolbar.js:160 +#: js/toolbar.js:215 +#: js/toolbar.js:271 +msgid "にほんご" +msgstr "" + +#: js/toolbar.js:95 +#: js/toolbar.js:161 +#: js/toolbar.js:216 +#: js/toolbar.js:272 +msgid "中文" +msgstr "" + +#: js/toolbar.js:96 +#: js/toolbar.js:162 +#: js/toolbar.js:217 +#: js/toolbar.js:273 +msgid "ภาษาไทย" +msgstr "" + +#: js/toolbar.js:97 +#: js/toolbar.js:163 +#: js/toolbar.js:218 +#: js/toolbar.js:274 +msgid "aymara" +msgstr "" + +#: js/toolbar.js:98 +#: js/toolbar.js:164 +#: js/toolbar.js:219 +#: js/toolbar.js:275 +msgid "quechua" +msgstr "" + +#: js/toolbar.js:99 +#: js/toolbar.js:165 +#: js/toolbar.js:220 +#: js/toolbar.js:276 +msgid "guarani" +msgstr "" + +#: js/toolbar.js:100 +#: js/toolbar.js:166 +#: js/toolbar.js:221 +#: js/toolbar.js:277 +msgid "हिंदी" +msgstr "" + +#: js/toolbar.js:101 +#: js/toolbar.js:168 +#: js/toolbar.js:222 +#: js/toolbar.js:279 +msgid "igbo" +msgstr "" + +#: js/toolbar.js:102 +#: js/toolbar.js:169 +#: js/toolbar.js:223 +#: js/toolbar.js:280 +msgid "عربى" +msgstr "" + +#: js/toolbar.js:103 +#: js/toolbar.js:167 +#: js/toolbar.js:224 +#: js/toolbar.js:278 +msgid "తెలుగు" +msgstr "" + +#: js/toolbar.js:104 +#: js/toolbar.js:170 +#: js/toolbar.js:225 +#: js/toolbar.js:281 +msgid "עִברִית" +msgstr "" + +#: js/toolbar.js:113 +#: js/toolbar.js:114 +#: js/toolbar.js:178 +#: js/toolbar.js:179 +#: js/toolbar.js:234 +#: js/toolbar.js:235 +msgid "Full Screen" +msgstr "" + +#: js/toolbar.js:148 +#: js/toolbar.js:151 +#: js/toolbar.js:203 +#: js/toolbar.js:206 +#: js/toolbar.js:259 +#: js/toolbar.js:262 +#: js/turtledefs.js:558 +msgid "Save turtle artwork as PNG" +msgstr "" + +#: js/toolbar.js:150 +#: js/toolbar.js:205 +#: js/toolbar.js:261 +#: js/turtledefs.js:554 +msgid "Save turtle artwork as SVG" +msgstr "" + +#: js/toolbar.js:157 +#: js/toolbar.js:212 +#: js/toolbar.js:268 +msgid "한국인" +msgstr "" + +#: js/toolbar.js:174 +#: js/toolbar.js:230 +msgid "About Turtle Blocks" +msgstr "" + +#: js/toolbar.js:446 +#: js/toolbar.js:457 +#: js/toolbar.js:497 +msgid "Turtle Wrap Off" +msgstr "" + +#: js/toolbar.js:466 +#: js/toolbar.js:506 +msgid "Turtle Wrap On" +msgstr "" + +#: js/turtle-painter.js:1192 +#: js/turtle-painter.js:1193 +#: js/turtles.js:118 +#: js/block-verbose.js:1623 +#: js/block.js:1587 +#: js/lilypond.js:749 +#: js/lilypond.js:913 +#: js/lilypond.js:951 +#: js/logo.js:1184 +#: js/blocks/ActionBlocks.js:1223 +#: js/blocks/ProgramBlocks.js:1267 +msgid "start" +msgstr "" + +#: js/turtledefs.js:40 +#.TRANS: put the URL to the guide here, e.g., https://github.com/sugarlabs/turtleblocksjs/tree/master/guide/README.md +msgid "guide url" +msgstr "" + +#: js/turtledefs.js:85 +#: js/turtledefs.js:437 +msgid "Turtle Blocks is a Logo-inspired turtle that draws colorful pictures with snap-together visual-programming blocks." +msgstr "" + +#: js/turtledefs.js:118 +#: js/turtledefs.js:220 +msgid "search" +msgstr "" + +#: js/turtledefs.js:120 +#: js/turtledefs.js:222 +#: js/blocks/MeterBlocks.js:1343 +#: js/blocks/WidgetBlocks.js:522 +#.TRANS: musical meter (time signature), e.g., 4:4 +msgid "meter" +msgstr "" + +#: js/turtledefs.js:122 +#: js/turtledefs.js:224 +msgid "intervals" +msgstr "" + +#: js/turtledefs.js:124 +#: js/turtledefs.js:226 +msgid "ornament" +msgstr "" + +#: js/turtledefs.js:125 +#: js/turtledefs.js:227 +#: js/blocks/VolumeBlocks.js:362 +#: js/blocks/VolumeBlocks.js:502 +#: js/blocks/VolumeBlocks.js:545 +msgid "volume" +msgstr "" + +#: js/turtledefs.js:126 +#: js/turtledefs.js:228 +#: js/block-verbose.js:1700 +#: js/block-verbose.js:2626 +#: js/block.js:1664 +#: js/block.js:2554 +#: js/lilypond.js:732 +#: js/lilypond.js:897 +#: js/lilypond.js:941 +#: js/palette.js:577 +#: js/blocks/RhythmBlocks.js:766 +#: js/blocks/DrumBlocks.js:477 +#: js/blocks/VolumeBlocks.js:502 +#: js/widgets/phrasemaker.js:1038 +msgid "drum" +msgstr "" + +#: js/turtledefs.js:129 +#: js/turtledefs.js:231 +msgid "boxes" +msgstr "" + +#: js/turtledefs.js:130 +#: js/turtledefs.js:232 +msgid "widgets" +msgstr "" + +#: js/turtledefs.js:131 +#: js/turtledefs.js:233 +#: js/widgets/phrasemaker.js:1039 +msgid "graphics" +msgstr "" + +#: js/turtledefs.js:134 +#: js/turtledefs.js:236 +msgid "boolean" +msgstr "" + +#: js/turtledefs.js:137 +#: js/turtledefs.js:239 +#: js/blocks/HeapBlocks.js:59 +#: js/widgets/status.js:147 +msgid "heap" +msgstr "" + +#: js/turtledefs.js:138 +#: js/turtledefs.js:240 +#: js/blocks/DictBlocks.js:142 +#: js/blocks/ProgramBlocks.js:495 +msgid "dictionary" +msgstr "" + +#: js/turtledefs.js:139 +#: js/turtledefs.js:241 +msgid "ensemble" +msgstr "" + +#: js/turtledefs.js:140 +#: js/turtledefs.js:242 +msgid "extras" +msgstr "" + +#: js/turtledefs.js:142 +#: js/turtledefs.js:244 +#.TRANS: program as in computer program +#.TRANS: program as in computer program +msgid "program" +msgstr "" + +#: js/turtledefs.js:143 +#: js/turtledefs.js:245 +msgid "my blocks" +msgstr "" + +#: js/turtledefs.js:185 +#: js/turtledefs.js:281 +msgid "artwork" +msgstr "" + +#: js/turtledefs.js:185 +#: js/turtledefs.js:281 +msgid "logic" +msgstr "" + +#: js/turtledefs.js:185 +#: js/turtledefs.js:281 +msgid "music" +msgstr "" + +#: js/turtledefs.js:187 +#: js/turtledefs.js:463 +msgid "Music Blocks is a collection of tools for exploring fundamental musical concepts in a fun way." +msgstr "" + +#: js/turtledefs.js:436 +msgid "Welcome to Turtle Blocks" +msgstr "" + +#: js/turtledefs.js:438 +#: js/turtledefs.js:465 +#: js/turtledefs.js:774 +#: js/turtledefs.js:805 +msgid "The current version is" +msgstr "" + +#: js/turtledefs.js:446 +#: js/turtledefs.js:483 +msgid "Click the run button to run the project in fast mode." +msgstr "" + +#: js/turtledefs.js:452 +msgid "Stop the turtle." +msgstr "" + +#: js/turtledefs.js:454 +#: js/turtledefs.js:491 +msgid "You can also type Alt-S to stop." +msgstr "" + +#: js/turtledefs.js:462 +#: js/widgets/help.js:333 +msgid "Welcome to Music Blocks" +msgstr "" + +#: js/turtledefs.js:472 +#: js/widgets/help.js:334 +msgid "Meet Mr. Mouse!" +msgstr "" + +#: js/turtledefs.js:473 +msgid "Mr Mouse is our Music Blocks conductor." +msgstr "" + +#: js/turtledefs.js:475 +msgid "Mr Mouse encourages you to explore Music Blocks." +msgstr "" + +#: js/turtledefs.js:477 +msgid "Let us start our tour!" +msgstr "" + +#: js/turtledefs.js:489 +msgid "Stop the music (and the mice)." +msgstr "" + +#: js/turtledefs.js:499 +msgid "Record your project as video." +msgstr "" + +#: js/turtledefs.js:505 +msgid "Toggle Fullscreen mode." +msgstr "" + +#: js/turtledefs.js:511 +msgid "Initialize a new project." +msgstr "" + +#: js/turtledefs.js:517 +msgid "You can also load projects from the file system." +msgstr "" + +#: js/turtledefs.js:522 +#: planet/js/StringHelper.js:46 +msgid "Delete" +msgstr "" + +#: js/turtledefs.js:523 +msgid "To delete a block, just right-click on it, then you will be able to see the delete option" +msgstr "" + +#: js/turtledefs.js:528 +#: js/activity.js:2649 +#: planet/js/LocalCard.js:31 +msgid "Copy" +msgstr "" + +#: js/turtledefs.js:529 +msgid "To copy a block, just right-click on it, then you will be able to see the copy option" +msgstr "" + +#: js/turtledefs.js:534 +#: js/piemenus.js:3411 +msgid "Extract" +msgstr "" + +#: js/turtledefs.js:535 +msgid "To extract a block, just right-click on it, then you will be able to see the extract option" +msgstr "" + +#: js/turtledefs.js:542 +#: js/turtledefs.js:552 +#: js/turtledefs.js:573 +msgid "Save your project to a file." +msgstr "" + +#: js/turtledefs.js:549 +#: js/turtledefs.js:570 +msgid "save" +msgstr "" + +#: js/turtledefs.js:556 +#: js/turtledefs.js:577 +msgid "Save graphics from your project to as SVG." +msgstr "" + +#: js/turtledefs.js:560 +#: js/turtledefs.js:581 +msgid "Save graphics from your project as PNG." +msgstr "" + +#: js/turtledefs.js:564 +#: js/turtledefs.js:597 +msgid "Save block artwork as an SVG file." +msgstr "" + +#: js/turtledefs.js:585 +msgid "Save audio from your project as WAV." +msgstr "" + +#: js/turtledefs.js:589 +msgid "Save your project to as an ABC file." +msgstr "" + +#: js/turtledefs.js:593 +msgid "Save your project to as a Lilypond file." +msgstr "" + +#: js/turtledefs.js:604 +msgid "Load samples from server" +msgstr "" + +#: js/turtledefs.js:605 +msgid "This button opens a viewer for loading example projects." +msgstr "" + +#: js/turtledefs.js:611 +msgid "Palette buttons" +msgstr "" + +#: js/turtledefs.js:612 +msgid "This toolbar contains the palette buttons including Rhythm Pitch Tone Action and more." +msgstr "" + +#: js/turtledefs.js:614 +msgid "Click to show the palettes of blocks and drag blocks from the palettes onto the canvas to use them." +msgstr "" + +#: js/turtledefs.js:620 +msgid "Cartesian/Polar" +msgstr "" + +#: js/turtledefs.js:621 +msgid "Show or hide a coordinate grid." +msgstr "" + +#: js/turtledefs.js:626 +#: js/turtles.js:902 +msgid "Clean" +msgstr "" + +#: js/turtledefs.js:627 +msgid "Clear the screen and return the mice to their initial positions." +msgstr "" + +#: js/turtledefs.js:632 +#: js/turtles.js:955 +msgid "Collapse" +msgstr "" + +#: js/turtledefs.js:633 +msgid "Collapse the graphics window." msgstr "" -#: js/palette.js:571 -msgid "grid" +#: js/turtledefs.js:638 +#: js/activity.js:5684 +msgid "Home" msgstr "" -#: js/palette.js:577 -#: js/block.js:1540 -#: js/block.js:2343 -#: js/turtledefs.js:126 -#: js/turtledefs.js:228 -#: js/lilypond.js:740 -#: js/lilypond.js:905 -#: js/lilypond.js:949 -#: js/DrumBlocks.js:486 -#: js/RhythmBlocks.js:766 -#: js/VolumeBlocks.js:502 -#: js/phrasemaker.js:823 -msgid "drum" +#: js/turtledefs.js:639 +msgid "Return all blocks to the center of the screen." msgstr "" -#: js/palette.js:580 -msgid "effect" +#: js/turtledefs.js:644 +msgid "Show/hide blocks" msgstr "" -#: js/palette.js:586 -msgid "sargam" +#: js/turtledefs.js:645 +msgid "Hide or show the blocks and the palettes." msgstr "" -#: js/palette.js:589 -#: js/activity.js:1833 -#: js/RhythmBlocks.js:923 -#: js/PitchBlocks.js:442 -#: js/PitchBlocks.js:1748 -#.TRANS: a numeric mapping of the notes in an octave based on the musical mode -msgid "scale degree" +#: js/turtledefs.js:650 +msgid "Expand/collapse collapsable blocks" msgstr "" -#: js/palette.js:592 -#: js/activity.js:1860 -msgid "mode name" +#: js/turtledefs.js:651 +msgid "Expand or collapse start and action stacks." msgstr "" -#: js/palette.js:595 -#: js/activity.js:1839 -msgid "invert mode" +#: js/turtledefs.js:658 +#: js/activity.js:5704 +msgid "Decrease block size" msgstr "" -#: js/palette.js:598 -#: js/activity.js:1836 -msgid "voice name" +#: js/turtledefs.js:659 +msgid "Decrease the size of the blocks." msgstr "" -#: js/palette.js:601 -#: js/PitchBlocks.js:1181 -msgid "custom pitch" +#: js/turtledefs.js:664 +#: js/activity.js:5710 +msgid "Increase block size" msgstr "" -#: js/palette.js:605 -#: js/block.js:1456 -#: js/block.js:1575 -#: js/WidgetBlocks.js:218 -#: js/IntervalsBlocks.js:63 -msgid "temperament" +#: js/turtledefs.js:665 +msgid "Increase the size of the blocks." msgstr "" -#: js/palette.js:609 -msgid "accidental" +#: js/turtledefs.js:670 +msgid "Expand/collapse option toolbar" msgstr "" -#: js/palette.js:615 -#: js/activity.js:1866 -msgid "interval name" +#: js/turtledefs.js:671 +msgid "Click this button to expand or collapse the auxillary toolbar." msgstr "" -#: js/palette.js:633 -#: js/PitchBlocks.js:405 -msgid "pitch converter" +#: js/turtledefs.js:676 +msgid "Run slow" msgstr "" -#: js/rubrics.js:522 -#: js/turtledefs.js:119 -#: js/turtledefs.js:221 -#: js/RhythmBlockPaletteBlocks.js:52 -#: js/RhythmBlockPaletteBlocks.js:233 -#: js/ProgramBlocks.js:745 -#: js/rhythmruler.js:1670 -#: js/rhythmruler.js:1677 -#: js/rhythmruler.js:1745 -#: js/rhythmruler.js:1752 -#: js/rhythmruler.js:1830 -#.TRANS: an arrangement of notes based on duration -msgid "rhythm" +#: js/turtledefs.js:677 +msgid "Click to run the project in slow mode." msgstr "" -#: js/rubrics.js:523 -#: js/block.js:2339 -#: js/turtledefs.js:121 -#: js/turtledefs.js:223 -#: js/IntervalsBlocks.js:63 -#: js/PitchBlocks.js:1801 -#: js/PitchBlocks.js:1814 -#: js/SensorsBlocks.js:178 -#: js/phrasemaker.js:821 -#: js/musickeyboard.js:1653 -#.TRANS: pitch number -#.TRANS: we specify pitch in terms of a name and an octave. The name can be CDEFGAB or Do Re Mi Fa Sol La Ti. Octave is a number between 1 and 8. -msgid "pitch" +#: js/turtledefs.js:683 +msgid "Click to run the project step by step." msgstr "" -#: js/rubrics.js:524 -#: js/turtledefs.js:123 -#: js/turtledefs.js:225 -msgid "tone" +#: js/turtledefs.js:690 +msgid "Display statistics about your Music project." msgstr "" -#: js/rubrics.js:525 -#: js/lilypond.js:613 -#: js/lilypond.js:912 -#: js/lilypond.js:918 -#: js/lilypond.js:956 -msgid "mouse" +#: js/turtledefs.js:697 +msgid "Delete a selected plugin." msgstr "" -#: js/rubrics.js:526 -#: js/turtledefs.js:132 -#: js/turtledefs.js:234 -#: js/phrasemaker.js:825 -msgid "pen" +#: js/turtledefs.js:704 +msgid "Enable scrolling" msgstr "" -#: js/rubrics.js:527 -#: js/turtledefs.js:133 -#: js/turtledefs.js:235 -#: js/NumberBlocks.js:905 -#: js/PitchBlocks.js:1679 -#: js/PitchBlocks.js:1720 -msgid "number" +#: js/turtledefs.js:705 +msgid "You can scroll the blocks on the canvas." msgstr "" -#: js/rubrics.js:528 -#: js/turtledefs.js:127 -#: js/turtledefs.js:229 -msgid "flow" +#: js/turtledefs.js:714 +msgid "Wrap Turtle" msgstr "" -#: js/rubrics.js:530 -#: js/turtledefs.js:136 -#: js/turtledefs.js:238 -msgid "sensors" +#: js/turtledefs.js:715 +msgid "Turn Turtle wrapping On or Off." msgstr "" -#: js/rubrics.js:531 -#: js/turtledefs.js:135 -#: js/turtledefs.js:237 -#: js/MediaBlocks.js:930 -msgid "media" +#: js/turtledefs.js:725 +msgid "Restore blocks from the trash." msgstr "" -#: js/rubrics.js:532 -msgid "mice" +#: js/turtledefs.js:732 +msgid "Switch mode" msgstr "" -#: js/macros.js:711 -#: js/musicutils.js:783 -#: js/synthutils.js:181 -#.TRANS: animal sound effect -msgid "duck" +#: js/turtledefs.js:733 +msgid "Switch between beginner and advance modes." msgstr "" -#: js/toolbar.js:46 -#: js/toolbar.js:107 -msgid "About Music Blocks" +#: js/turtledefs.js:739 +msgid "Select your language preference." msgstr "" -#: js/toolbar.js:47 -#: js/toolbar.js:108 -#: js/toolbar.js:172 -#: js/toolbar.js:228 -#: js/turtledefs.js:445 -#: js/turtledefs.js:482 -#: js/activity.js:2281 -#: js/activity.js:2289 -#: js/activity.js:2520 -#: js/modewidget.js:77 -#: js/pitchstaircase.js:121 -#: js/phrasemaker.js:302 -#: js/phrasemaker.js:312 -#: js/phrasemaker.js:314 -#: js/phrasemaker.js:3901 -#: js/phrasemaker.js:4061 -#: js/phrasemaker.js:4066 -#: js/phrasemaker.js:4068 -#: js/phrasemaker.js:4183 -#: js/pitchdrummatrix.js:81 -#: js/pitchdrummatrix.js:574 -#: js/pitchdrummatrix.js:576 -#: js/pitchdrummatrix.js:628 -#: js/pitchdrummatrix.js:630 -#: js/pitchdrummatrix.js:645 -#: js/pitchdrummatrix.js:647 -#: js/pitchdrummatrix.js:674 -#: js/pitchdrummatrix.js:676 -#: js/temperament.js:477 -#: js/temperament.js:480 -#: js/temperament.js:540 -#: js/temperament.js:542 -#: js/temperament.js:1835 -#: js/temperament.js:1837 -#: js/temperament.js:1986 -#: js/temperament.js:1988 -#: js/musickeyboard.js:522 -#: js/musickeyboard.js:682 -#: js/musickeyboard.js:684 -#: js/musickeyboard.js:756 -#: js/musickeyboard.js:758 -#: js/rhythmruler.js:298 -#: js/rhythmruler.js:300 -#: js/rhythmruler.js:314 -#: js/rhythmruler.js:316 -#: js/sampler.js:96 -#: js/sampler.js:98 -#: js/sampler.js:229 -#: js/sampler.js:235 -#: js/sampler.js:237 -#: js/tempo.js:84 -#: js/tempo.js:86 -#: js/timbre.js:432 -#: js/timbre.js:434 -#: js/timbre.js:465 -#: js/timbre.js:467 -#: js/timbre.js:746 -#: js/meterwidget.js:80 -#: js/arpeggio.js:90 -#: js/arpeggio.js:547 -#: js/arpeggio.js:549 -#: js/arpeggio.js:644 -#: js/arpeggio.js:646 -msgid "Play" +#: js/turtledefs.js:745 +msgid "Keyboard shortcuts" msgstr "" -#: js/toolbar.js:48 -#: js/toolbar.js:109 -#: js/toolbar.js:173 -#: js/toolbar.js:229 -#: js/turtledefs.js:451 -#: js/turtledefs.js:488 -#: js/activity.js:2297 -#: js/modewidget.js:99 -#: js/modewidget.js:101 -#: js/phrasemaker.js:323 -#: js/phrasemaker.js:325 -#: js/pitchdrummatrix.js:561 -#: js/pitchdrummatrix.js:563 -#: js/temperament.js:1820 -#: js/temperament.js:1822 -#: js/meterwidget.js:101 -#: js/meterwidget.js:103 -#: js/arpeggio.js:534 -#: js/arpeggio.js:536 -msgid "Stop" +#: js/turtledefs.js:746 +msgid "You can type d to create a do block and r to create a re block etc." msgstr "" -#: js/toolbar.js:49 -#: js/toolbar.js:110 -#: js/toolbar.js:174 -#: js/toolbar.js:230 -#: js/turtledefs.js:498 -msgid "Record" +#: js/turtledefs.js:753 +msgid "Show these messages." msgstr "" -#: js/toolbar.js:50 -#: js/toolbar.js:51 -msgid "Full screen" +#: js/turtledefs.js:759 +#: js/turtledefs.js:790 +#: js/widgets/help.js:335 +msgid "Guide" msgstr "" -#: js/toolbar.js:52 -#: js/toolbar.js:112 -#: js/toolbar.js:177 -#: js/toolbar.js:232 -#: js/turtledefs.js:504 -msgid "Toggle Fullscreen" +#: js/turtledefs.js:760 +msgid "A detailed guide to Turtle Blocks is available." msgstr "" -#: js/toolbar.js:53 -#: js/toolbar.js:113 -#: js/toolbar.js:178 -#: js/toolbar.js:233 -#: js/turtledefs.js:510 -#: js/StringHelper.js:33 -msgid "New project" +#: js/turtledefs.js:764 +msgid "Turtle Blocks Guide" msgstr "" -#: js/toolbar.js:54 -#: js/toolbar.js:114 -#: js/toolbar.js:179 -#: js/toolbar.js:234 -#: js/turtledefs.js:516 -msgid "Load project from file" +#: js/turtledefs.js:767 +#: js/turtledefs.js:798 +#: js/widgets/help.js:336 +msgid "About" msgstr "" -#: js/toolbar.js:55 -#: js/toolbar.js:115 -#: js/toolbar.js:116 -#: js/toolbar.js:180 -#: js/toolbar.js:235 -#: js/turtledefs.js:541 -#: js/turtledefs.js:550 -#: js/turtledefs.js:571 -msgid "Save project" +#: js/turtledefs.js:768 +msgid "Turtle Blocks is an open source collection of tools for exploring musical concepts." msgstr "" -#: js/toolbar.js:56 -#: js/toolbar.js:75 -#: js/toolbar.js:77 -#: js/toolbar.js:135 -#: js/toolbar.js:144 -#: js/toolbar.js:146 -#: js/toolbar.js:181 -#: js/toolbar.js:199 -#: js/toolbar.js:201 -#: js/toolbar.js:236 -#: js/toolbar.js:254 -#: js/toolbar.js:256 -msgid "Save project as HTML" +#: js/turtledefs.js:770 +msgid "A full list of contributors can be found in the Turtle Blocks GitHub repository." +msgstr "" + +#: js/turtledefs.js:772 +msgid "Turtle Blocks is licensed under the AGPL." +msgstr "" + +#: js/turtledefs.js:780 +msgid "Turtle Blocks GitHub repository" +msgstr "" + +#: js/turtledefs.js:783 +#: js/turtledefs.js:814 +#: js/widgets/help.js:337 +#: js/widgets/help.js:359 +msgid "Congratulations." +msgstr "" + +#: js/turtledefs.js:784 +msgid "You have finished the tour. Please enjoy Turtle Blocks!" +msgstr "" + +#: js/turtledefs.js:791 +msgid "A detailed guide to Music Blocks is available." +msgstr "" + +#: js/turtledefs.js:799 +msgid "Music Blocks is an open source collection of tools for exploring musical concepts." +msgstr "" + +#: js/turtledefs.js:801 +msgid "A full list of contributors can be found in the Music Blocks GitHub repository." +msgstr "" + +#: js/turtledefs.js:803 +msgid "Music Blocks is licensed under the AGPL." +msgstr "" + +#: js/turtledefs.js:811 +msgid "Music Blocks GitHub repository" +msgstr "" + +#: js/turtledefs.js:815 +msgid "You have finished the tour. Please enjoy Music Blocks!" +msgstr "" + +#: js/turtles.js:882 +msgid "Grid" +msgstr "" + +#: js/turtles.js:1024 +msgid "Expand" +msgstr "" + +#: js/block-verbose.js:1616 +#: js/block-verbose.js:1735 +#: js/block.js:1580 +#: js/block.js:1699 +#: js/palette.js:605 +#: js/blocks/IntervalsBlocks.js:63 +#: js/blocks/WidgetBlocks.js:259 +msgid "temperament" +msgstr "" + +#: js/block-verbose.js:1630 +#: js/block.js:1594 +msgid "matrix" msgstr "" -#: js/toolbar.js:57 -#: js/toolbar.js:117 -#: js/toolbar.js:182 -#: js/toolbar.js:237 -msgid "Find and share projects" +#: js/block-verbose.js:1637 +#: js/block.js:1601 +#: js/blocks/WidgetBlocks.js:1509 +#: plugins/rodi.rtp:324 +msgid "status" msgstr "" -#: js/toolbar.js:58 -#: js/toolbar.js:118 -#: js/toolbar.js:183 -#: js/toolbar.js:238 -msgid "Offline. Sharing is unavailable" +#: js/block-verbose.js:1644 +#: js/block.js:1608 +msgid "drum mapper" msgstr "" -#: js/toolbar.js:59 -#: js/toolbar.js:119 -#: js/toolbar.js:184 -#: js/toolbar.js:239 -msgid "Auxiliary menu" +#: js/block-verbose.js:1651 +#: js/block.js:1615 +msgid "ruler" msgstr "" -#: js/toolbar.js:61 -#: js/toolbar.js:121 -#: js/toolbar.js:186 -#: js/toolbar.js:241 -msgid "Run slowly" +#: js/block-verbose.js:1658 +#: js/block.js:1622 +#: js/blocks/WidgetBlocks.js:397 +#.TRANS: timbre is the character or quality of a musical sound +msgid "timbre" msgstr "" -#: js/toolbar.js:62 -#: js/toolbar.js:122 -#: js/toolbar.js:187 -#: js/toolbar.js:242 -#: js/turtledefs.js:682 -msgid "Run step by step" +#: js/block-verbose.js:1665 +#: js/block.js:1629 +msgid "stair" msgstr "" -#: js/toolbar.js:63 -#: js/toolbar.js:123 -#: js/toolbar.js:188 -#: js/toolbar.js:243 -#: js/turtledefs.js:689 -msgid "Display statistics" +#: js/block-verbose.js:1672 +#: js/block.js:1636 +#: js/blocks/WidgetBlocks.js:707 +#.TRANS: the speed at music is should be played. +msgid "tempo" msgstr "" -#: js/toolbar.js:64 -#: js/toolbar.js:124 -#: js/toolbar.js:189 -#: js/toolbar.js:244 -msgid "Load plugin" +#: js/block-verbose.js:1679 +#: js/block-verbose.js:1742 +#: js/block.js:1643 +#: js/block.js:1706 +#: js/blocks/IntervalsBlocks.js:1464 +#.TRANS: mode, e.g., Major in C Major +msgid "mode" msgstr "" -#: js/toolbar.js:65 -#: js/toolbar.js:125 -#: js/toolbar.js:190 -#: js/toolbar.js:245 -#: js/turtledefs.js:696 -msgid "Delete plugin" +#: js/block-verbose.js:1686 +#: js/block.js:1650 +msgid "slider" msgstr "" -#: js/toolbar.js:66 -#: js/toolbar.js:126 -#: js/toolbar.js:191 -#: js/toolbar.js:246 -msgid "Enable horizontal scrolling" +#: js/block-verbose.js:1693 +#: js/block.js:1657 +#: js/blocks/SensorsBlocks.js:1001 +msgid "keyboard" msgstr "" -#: js/toolbar.js:67 -#: js/toolbar.js:127 -#: js/toolbar.js:192 -#: js/toolbar.js:247 -msgid "Disable horizontal scrolling" +#: js/block-verbose.js:1707 +#: js/block.js:1671 +#: js/blocks/WidgetBlocks.js:1190 +#: js/blocks/WidgetBlocks.js:1228 +#.TRANS: widget for subdividing a measure into distinct rhythmic elements +msgid "rhythm maker" msgstr "" -#: js/toolbar.js:68 -#: js/toolbar.js:128 -#: js/toolbar.js:193 -#: js/toolbar.js:248 -#: js/LocalCard.js:54 -#: js/StringHelper.js:71 -msgid "Merge with current project" +#: js/block-verbose.js:1714 +#: js/block-verbose.js:2457 +#: js/block-verbose.js:2514 +#: js/block.js:1678 +#: js/block.js:2385 +#: js/block.js:2442 +#: js/blocks/MeterBlocks.js:1367 +#: js/blocks/OrnamentBlocks.js:220 +#: js/blocks/OrnamentBlocks.js:312 +#: js/blocks/RhythmBlocks.js:33 +#: js/blocks/RhythmBlocks.js:356 +#: js/blocks/RhythmBlocks.js:766 +#: js/blocks/RhythmBlocks.js:806 +#: js/blocks/RhythmBlockPaletteBlocks.js:70 +#: js/blocks/RhythmBlockPaletteBlocks.js:252 +#: js/blocks/RhythmBlockPaletteBlocks.js:485 +#: js/blocks/RhythmBlockPaletteBlocks.js:554 +#: js/blocks/RhythmBlockPaletteBlocks.js:605 +#: js/blocks/RhythmBlockPaletteBlocks.js:875 +#: js/turtleactions/DictActions.js:85 +#: js/widgets/phrasemaker.js:942 +#: js/widgets/phrasemaker.js:2656 +#: js/widgets/phrasemaker.js:2699 +#: js/widgets/phrasemaker.js:2810 +#.TRANS: the value (e.g., 1/4 note) of the note being played. +msgid "note value" msgstr "" -#: js/toolbar.js:69 -#: js/toolbar.js:129 -msgid "Set Pitch Preview" +#: js/block-verbose.js:1721 +#: js/block-verbose.js:2382 +#: js/block-verbose.js:2405 +#: js/block.js:1685 +#: js/block.js:2310 +#: js/block.js:2333 +#: js/blocks/IntervalsBlocks.js:1071 +#: js/blocks/OrnamentBlocks.js:312 +#.TRANS: calculate a relative step between notes based on semi-tones +msgid "scalar interval" msgstr "" -#: js/toolbar.js:70 -#: js/toolbar.js:130 -#: js/toolbar.js:194 -#: js/toolbar.js:249 -msgid "Toggle JavaScript Editor" +#: js/block-verbose.js:1728 +#: js/block.js:1692 +#: js/blocks/RhythmBlocks.js:148 +msgid "milliseconds" msgstr "" -#: js/toolbar.js:71 -#: js/toolbar.js:131 -#: js/toolbar.js:195 -#: js/toolbar.js:250 -#: js/turtledefs.js:724 -msgid "Restore" +#: js/block-verbose.js:2455 +#: js/block-verbose.js:2459 +#: js/block-verbose.js:2512 +#: js/block-verbose.js:2628 +#: js/block.js:2383 +#: js/block.js:2387 +#: js/block.js:2440 +#: js/block.js:2556 +#: js/blocks/RhythmBlocks.js:712 +#: js/blocks/ProgramBlocks.js:1273 +#: js/widgets/rhythmruler.js:1183 +#: js/widgets/rhythmruler.js:1329 +msgid "silence" msgstr "" -#: js/toolbar.js:72 -#: js/toolbar.js:132 -#: js/toolbar.js:196 -#: js/toolbar.js:251 -msgid "Switch to beginner mode" +#: js/block-verbose.js:2548 +#: js/block-verbose.js:3492 +#: js/block-verbose.js:3509 +#: js/activity.js:2718 +#: js/activity.js:2769 +#: js/block.js:2476 +#: js/block.js:3416 +#: js/block.js:3433 +#: js/utils/musicutils.js:3780 +#: js/utils/musicutils.js:5273 +#.TRANS: the note names must be separated by single spaces +#.TRANS: the note names must be separated by single spaces +#.TRANS: the note names must be separated by single spaces +msgid "ti la sol fa mi re do" msgstr "" -#: js/toolbar.js:73 -#: js/toolbar.js:133 -#: js/toolbar.js:197 -#: js/toolbar.js:252 -msgid "Switch to advanced mode" +#: js/block-verbose.js:2616 +#: js/block.js:2544 +#.TRANS: scalar step +#.TRANS: scalar step +msgid "down" msgstr "" -#: js/toolbar.js:74 -#: js/toolbar.js:134 -#: js/toolbar.js:143 -#: js/toolbar.js:198 -#: js/toolbar.js:253 -#: js/turtledefs.js:738 -msgid "Select language" +#: js/block-verbose.js:2617 +#: js/block.js:2545 +msgid "up" msgstr "" -#: js/toolbar.js:76 -#: js/toolbar.js:79 -#: js/toolbar.js:137 -#: js/turtledefs.js:579 -msgid "Save mouse artwork as PNG" +#: js/block-verbose.js:3026 +#: js/block.js:2950 +msgid "Silence block cannot be removed." msgstr "" -#: js/toolbar.js:78 -#: js/toolbar.js:136 -#: js/turtledefs.js:575 -msgid "Save mouse artwork as SVG" +#: js/block-verbose.js:3824 +#: js/block.js:3748 +#: js/blocks.js:2607 +#: js/blocks.js:3218 +#: js/palette.js:618 +#: js/blocks/BooleanBlocks.js:77 +#: js/blocks/BooleanBlocks.js:167 +#: js/blocks/BooleanBlocks.js:251 +#: js/blocks/BooleanBlocks.js:335 +#: js/blocks/BooleanBlocks.js:433 +#: js/blocks/BooleanBlocks.js:539 +#: js/blocks/BooleanBlocks.js:640 +#: js/blocks/BooleanBlocks.js:741 +#: js/blocks/BooleanBlocks.js:847 +#: js/blocks/BooleanBlocks.js:948 +#: js/blocks/BooleanBlocks.js:1033 +#: js/blocks/SensorsBlocks.js:910 +msgid "true" msgstr "" -#: js/toolbar.js:80 -#: js/toolbar.js:138 -#: js/turtledefs.js:583 -msgid "Save music as WAV" +#: js/block-verbose.js:3824 +#: js/block.js:3748 +#: js/blocks.js:2609 +#: js/blocks.js:3220 +#: js/blocks/BooleanBlocks.js:79 +#: js/blocks/BooleanBlocks.js:169 +#: js/blocks/BooleanBlocks.js:253 +#: js/blocks/BooleanBlocks.js:337 +#: js/blocks/BooleanBlocks.js:435 +#: js/blocks/BooleanBlocks.js:541 +#: js/blocks/BooleanBlocks.js:642 +#: js/blocks/BooleanBlocks.js:743 +#: js/blocks/BooleanBlocks.js:849 +#: js/blocks/BooleanBlocks.js:950 +#: js/blocks/SensorsBlocks.js:912 +msgid "false" msgstr "" -#: js/toolbar.js:81 -#: js/toolbar.js:139 -#: js/turtledefs.js:587 -msgid "Save sheet music as ABC" +#: js/block-verbose.js:3835 +#: js/block-verbose.js:3848 +#: js/block.js:3759 +#: js/block.js:3772 +#: js/blocks/ExtrasBlocks.js:615 +msgid "Cartesian" msgstr "" -#: js/toolbar.js:82 -#: js/toolbar.js:140 -#: js/turtledefs.js:591 -msgid "Save sheet music as Lilypond" +#: js/block-verbose.js:3836 +#: js/block-verbose.js:3849 +#: js/block.js:3760 +#: js/block.js:3773 +#: js/blocks/ExtrasBlocks.js:619 +msgid "polar" msgstr "" -#: js/toolbar.js:83 -msgid "Save sheet music as MusicXML" +#: js/block-verbose.js:3837 +#: js/block-verbose.js:3850 +#: js/block.js:3761 +#: js/block.js:3774 +#: js/blocks/ExtrasBlocks.js:623 +msgid "Cartesian+polar" msgstr "" -#: js/toolbar.js:84 -#: js/toolbar.js:141 -#: js/toolbar.js:149 -#: js/toolbar.js:204 -#: js/toolbar.js:259 -#: js/turtledefs.js:562 -#: js/turtledefs.js:595 -msgid "Save block artwork as SVG" +#: js/block-verbose.js:3838 +#: js/block-verbose.js:3857 +#: js/block.js:3762 +#: js/block.js:3781 +#: js/blocks/ExtrasBlocks.js:652 +msgid "none" msgstr "" -#: js/toolbar.js:85 -#: js/toolbar.js:142 -#: js/toolbar.js:150 -#: js/toolbar.js:205 -#: js/toolbar.js:260 -msgid "Confirm" +#: js/block-verbose.js:3851 +#: js/block.js:3775 +#: js/blocks/ExtrasBlocks.js:628 +msgid "treble" msgstr "" -#: js/toolbar.js:86 -#: js/toolbar.js:151 -#: js/toolbar.js:206 -#: js/toolbar.js:261 -msgid "English (United States)" +#: js/block-verbose.js:3852 +#: js/block.js:3776 +#: js/blocks/ExtrasBlocks.js:632 +msgid "grand staff" msgstr "" -#: js/toolbar.js:87 -#: js/toolbar.js:152 -#: js/toolbar.js:207 -#: js/toolbar.js:262 -msgid "English (United Kingdom)" +#: js/block-verbose.js:3853 +#: js/block.js:3777 +#: js/blocks/ExtrasBlocks.js:636 +msgid "mezzo-soprano" msgstr "" -#: js/toolbar.js:88 -#: js/toolbar.js:153 -#: js/toolbar.js:208 -#: js/toolbar.js:263 -msgid "日本語" +#: js/block-verbose.js:3854 +#: js/block.js:3778 +#: js/blocks/ExtrasBlocks.js:640 +msgid "alto" msgstr "" -#: js/toolbar.js:89 -msgid "한국어" +#: js/block-verbose.js:3855 +#: js/block.js:3779 +#: js/blocks/ExtrasBlocks.js:644 +msgid "tenor" msgstr "" -#: js/toolbar.js:90 -#: js/toolbar.js:155 -#: js/toolbar.js:210 -#: js/toolbar.js:265 -msgid "español" +#: js/block-verbose.js:3856 +#: js/block.js:3780 +#: js/utils/musicutils.js:1115 +#: js/utils/synthutils.js:80 +#: js/blocks/ExtrasBlocks.js:648 +#.TRANS: musical instrument +msgid "bass" msgstr "" -#: js/toolbar.js:91 -#: js/toolbar.js:156 -#: js/toolbar.js:211 -#: js/toolbar.js:266 -msgid "português" +#: js/block-verbose.js:3901 +#: js/block.js:3825 +#: js/blocks.js:2600 +#: js/blocks.js:3211 +msgid "on2" msgstr "" -#: js/toolbar.js:92 -#: js/toolbar.js:157 -#: js/toolbar.js:212 -#: js/toolbar.js:267 -msgid "にほんご" +#: js/block-verbose.js:3903 +#: js/block.js:3827 +#: js/blocks.js:2602 +#: js/blocks.js:3213 +msgid "off" msgstr "" -#: js/toolbar.js:93 -#: js/toolbar.js:158 -#: js/toolbar.js:213 -#: js/toolbar.js:268 -msgid "中文" +#: js/block-verbose.js:4470 +#: js/block.js:4394 +msgid "Not a number" msgstr "" -#: js/toolbar.js:94 -#: js/toolbar.js:159 -#: js/toolbar.js:214 -#: js/toolbar.js:269 -msgid "ภาษาไทย" +#: js/block-verbose.js:4477 +#: js/block.js:4401 +msgid "Octave value must be between 1 and 10." msgstr "" -#: js/toolbar.js:95 -#: js/toolbar.js:160 -#: js/toolbar.js:215 -#: js/toolbar.js:270 -msgid "aymara" +#: js/block-verbose.js:4485 +#: js/block.js:4409 +msgid "Numbers can have at most 10 digits." msgstr "" -#: js/toolbar.js:96 -#: js/toolbar.js:161 -#: js/toolbar.js:216 -#: js/toolbar.js:271 -msgid "quechua" +#: js/activity.js:390 +#: js/activity.js:395 +msgid "Search for blocks" msgstr "" -#: js/toolbar.js:97 -#: js/toolbar.js:162 -#: js/toolbar.js:217 -#: js/toolbar.js:272 -msgid "guarani" +#: js/activity.js:1413 +msgid "Refresh your browser to change to advanced mode." msgstr "" -#: js/toolbar.js:98 -#: js/toolbar.js:163 -#: js/toolbar.js:218 -#: js/toolbar.js:273 -msgid "हिंदी" +#: js/activity.js:1418 +msgid "Refresh your browser to change to beginner mode." msgstr "" -#: js/toolbar.js:99 -#: js/toolbar.js:165 -#: js/toolbar.js:219 -#: js/toolbar.js:275 -msgid "igbo" +#: js/activity.js:1477 +msgid "Catching mice" +msgstr "" + +#: js/activity.js:1478 +msgid "Cleaning the instruments" +msgstr "" + +#: js/activity.js:1479 +msgid "Testing key pieces" +msgstr "" + +#: js/activity.js:1480 +msgid "Sight-reading" +msgstr "" + +#: js/activity.js:1481 +msgid "Combining math and music" msgstr "" -#: js/toolbar.js:100 -#: js/toolbar.js:166 -#: js/toolbar.js:220 -#: js/toolbar.js:276 -msgid "عربى" +#: js/activity.js:1482 +msgid "Generating more blocks" msgstr "" -#: js/toolbar.js:101 -#: js/toolbar.js:164 -#: js/toolbar.js:221 -#: js/toolbar.js:274 -msgid "తెలుగు" +#: js/activity.js:1483 +msgid "Do Re Mi Fa Sol La Ti Do" msgstr "" -#: js/toolbar.js:102 -#: js/toolbar.js:167 -#: js/toolbar.js:222 -#: js/toolbar.js:277 -msgid "עִברִית" +#: js/activity.js:1484 +msgid "Tuning string instruments" msgstr "" -#: js/toolbar.js:111 -#: js/toolbar.js:175 -#: js/toolbar.js:176 -#: js/toolbar.js:231 -msgid "Full Screen" +#: js/activity.js:1485 +msgid "Pressing random keys" msgstr "" -#: js/toolbar.js:145 -#: js/toolbar.js:148 -#: js/toolbar.js:200 -#: js/toolbar.js:203 -#: js/toolbar.js:255 -#: js/toolbar.js:258 -#: js/turtledefs.js:558 -msgid "Save turtle artwork as PNG" +#: js/activity.js:1663 +msgid "plugins will be removed upon restart." msgstr "" -#: js/toolbar.js:147 -#: js/toolbar.js:202 -#: js/toolbar.js:257 -#: js/turtledefs.js:554 -msgid "Save turtle artwork as SVG" +#: js/activity.js:1672 +msgid "show Cartesian" msgstr "" -#: js/toolbar.js:154 -#: js/toolbar.js:209 -#: js/toolbar.js:264 -msgid "한국인" +#: js/activity.js:2211 +#: js/palette.js:589 +#: js/blocks/RhythmBlocks.js:923 +#: js/blocks/PitchBlocks.js:442 +#: js/blocks/PitchBlocks.js:1786 +#.TRANS: a numeric mapping of the notes in an octave based on the musical mode +msgid "scale degree" msgstr "" -#: js/toolbar.js:171 -#: js/toolbar.js:227 -msgid "About Turtle Blocks" +#: js/activity.js:2214 +#: js/palette.js:598 +msgid "voice name" msgstr "" -#: js/toolbar.js:429 -#: js/toolbar.js:440 -msgid "Turtle Wrap Off" +#: js/activity.js:2217 +#: js/palette.js:595 +msgid "invert mode" msgstr "" -#: js/toolbar.js:442 -msgid "Turtle Wrap On" +#: js/activity.js:2220 +msgid "output tools" msgstr "" -#: js/block.js:1470 -msgid "matrix" +#: js/activity.js:2223 +msgid "custom note" msgstr "" -#: js/block.js:1477 -#: js/WidgetBlocks.js:1226 -#: plugins/rodi.rtp:324 -msgid "status" +#: js/activity.js:2226 +msgid "accidental name" msgstr "" -#: js/block.js:1484 -msgid "drum mapper" +#: js/activity.js:2229 +#: js/blocks/PitchBlocks.js:855 +msgid "east indian solfege" msgstr "" -#: js/block.js:1491 -msgid "ruler" +#: js/activity.js:2232 +#: js/blocks/PitchBlocks.js:869 +msgid "note name" msgstr "" -#: js/block.js:1498 -#: js/WidgetBlocks.js:327 -#.TRANS: timbre is the character or quality of a musical sound -msgid "timbre" +#: js/activity.js:2235 +#: js/blocks/IntervalsBlocks.js:94 +msgid "temperament name" msgstr "" -#: js/block.js:1505 -msgid "stair" +#: js/activity.js:2238 +#: js/palette.js:592 +msgid "mode name" msgstr "" -#: js/block.js:1512 -#: js/WidgetBlocks.js:577 -#.TRANS: the speed at music is should be played. -msgid "tempo" +#: js/activity.js:2241 +msgid "chord name" msgstr "" -#: js/block.js:1519 -#: js/block.js:1582 -#: js/IntervalsBlocks.js:1268 -#.TRANS: mode, e.g., Major in C Major -msgid "mode" +#: js/activity.js:2244 +#: js/palette.js:615 +msgid "interval name" msgstr "" -#: js/block.js:1526 -msgid "slider" +#: js/activity.js:2247 +msgid "filter type" msgstr "" -#: js/block.js:1533 -#: js/SensorsBlocks.js:1001 -msgid "keyboard" +#: js/activity.js:2250 +msgid "oscillator type" msgstr "" -#: js/block.js:1547 -#: js/WidgetBlocks.js:957 -#: js/WidgetBlocks.js:988 -#.TRANS: widget for subdividing a measure into distinct rhythmic elements -msgid "rhythm maker" +#: js/activity.js:2253 +#: js/blocks.js:2479 +#: js/blocks.js:2487 +msgid "audio file" msgstr "" -#: js/block.js:1554 -#: js/block.js:2182 -#: js/block.js:2236 -#: js/RhythmBlockPaletteBlocks.js:70 -#: js/RhythmBlockPaletteBlocks.js:251 -#: js/RhythmBlockPaletteBlocks.js:484 -#: js/RhythmBlockPaletteBlocks.js:553 -#: js/RhythmBlockPaletteBlocks.js:604 -#: js/RhythmBlockPaletteBlocks.js:874 -#: js/RhythmBlocks.js:33 -#: js/RhythmBlocks.js:356 -#: js/RhythmBlocks.js:766 -#: js/RhythmBlocks.js:806 -#: js/OrnamentBlocks.js:220 -#: js/OrnamentBlocks.js:312 -#: js/MeterBlocks.js:1367 -#: js/DictActions.js:85 -#: js/phrasemaker.js:731 -#: js/phrasemaker.js:2393 -#: js/phrasemaker.js:2436 -#: js/phrasemaker.js:2534 -#.TRANS: the value (e.g., 1/4 note) of the note being played. -msgid "note value" +#: js/activity.js:2256 +#: js/blocks/DrumBlocks.js:32 +msgid "noise name" msgstr "" -#: js/block.js:1561 -#: js/block.js:2110 -#: js/block.js:2133 -#: js/IntervalsBlocks.js:875 -#: js/OrnamentBlocks.js:312 -#.TRANS: calculate a relative step between notes based on semi-tones -msgid "scalar interval" +#: js/activity.js:2259 +#: js/blocks/DrumBlocks.js:75 +msgid "drum name" msgstr "" -#: js/block.js:1568 -#: js/RhythmBlocks.js:148 -msgid "milliseconds" +#: js/activity.js:2262 +#: js/blocks/DrumBlocks.js:119 +msgid "effects name" msgstr "" -#: js/block.js:2180 -#: js/block.js:2184 -#: js/block.js:2234 -#: js/block.js:2345 -#: js/ProgramBlocks.js:1273 -#: js/RhythmBlocks.js:712 -#: js/rhythmruler.js:834 -#: js/rhythmruler.js:961 -msgid "silence" +#: js/activity.js:2265 +msgid "wrap mode" msgstr "" -#: js/block.js:2265 -#: js/block.js:3134 -#: js/block.js:3151 -#: js/activity.js:2336 -#: js/activity.js:2387 -#: js/musicutils.js:2932 -#: js/musicutils.js:4287 -#.TRANS: the note names must be separated by single spaces -#.TRANS: the note names must be separated by single spaces -msgid "ti la sol fa mi re do" +#: js/activity.js:2268 +msgid "load file" msgstr "" -#: js/block.js:2333 -#.TRANS: scalar step -msgid "down" +#: js/activity.js:2435 +#: js/activity.js:5851 +msgid "This block is deprecated." msgstr "" -#: js/block.js:2334 -msgid "up" +#: js/activity.js:2437 +#: js/activity.js:5853 +msgid "Block cannot be found." msgstr "" -#: js/block.js:3477 -#: js/block.js:3490 -#: js/ExtrasBlocks.js:612 -msgid "Cartesian" +#: js/activity.js:2645 +msgid "Saving block artwork" msgstr "" -#: js/block.js:3478 -#: js/block.js:3491 -#: js/ExtrasBlocks.js:616 -msgid "polar" +#: js/activity.js:2656 +msgid "Erase" msgstr "" -#: js/block.js:3479 -#: js/block.js:3492 -#: js/ExtrasBlocks.js:620 -msgid "Cartesian+polar" +#: js/activity.js:2683 +#: js/activity.js:2705 +msgid "Paste" msgstr "" -#: js/block.js:3480 -#: js/block.js:3499 -#: js/ExtrasBlocks.js:649 -msgid "none" +#: js/activity.js:2687 +msgid "Save block help" msgstr "" -#: js/block.js:3493 -#: js/ExtrasBlocks.js:625 -msgid "treble" +#: js/activity.js:2772 +msgid "Jumping to the bottom of the page." msgstr "" -#: js/block.js:3494 -#: js/ExtrasBlocks.js:629 -msgid "grand staff" +#: js/activity.js:2778 +msgid "Scrolling up." msgstr "" -#: js/block.js:3495 -#: js/ExtrasBlocks.js:633 -msgid "mezzo-soprano" +#: js/activity.js:2783 +msgid "Scrolling down." msgstr "" -#: js/block.js:3496 -#: js/ExtrasBlocks.js:637 -msgid "alto" +#: js/activity.js:2788 +msgid "Extracting block" msgstr "" -#: js/block.js:3497 -#: js/ExtrasBlocks.js:641 -msgid "tenor" +#: js/activity.js:2796 +msgid "Moving block up." msgstr "" -#: js/block.js:3498 -#: js/ExtrasBlocks.js:645 -#: js/musicutils.js:736 -#: js/synthutils.js:64 -#.TRANS: musical instrument -msgid "bass" +#: js/activity.js:2817 +msgid "Moving block down." msgstr "" -#: js/block.js:4075 -msgid "Not a number" +#: js/activity.js:2838 +msgid "Moving block left." msgstr "" -#: js/block.js:4082 -msgid "Octave value must be between 1 and 10." +#: js/activity.js:2855 +msgid "Moving block right." msgstr "" -#: js/block.js:4090 -msgid "Numbers can have at most 10 digits." +#: js/activity.js:2870 +msgid "Jump to home position." msgstr "" -#: js/notation.js:353 -msgid "Lilypond cannot process pickup of " +#: js/activity.js:2897 +msgid "Hide blocks" msgstr "" -#: js/turtledefs.js:40 -#.TRANS: put the URL to the guide here, e.g., https://github.com/sugarlabs/turtleblocksjs/tree/master/guide/README.md -msgid "guide url" +#: js/activity.js:4500 +msgid "Click the run button to run the project." msgstr "" -#: js/turtledefs.js:85 -#: js/turtledefs.js:437 -msgid "Turtle Blocks is a Logo-inspired turtle that draws colorful pictures with snap-together visual-programming blocks." +#: js/activity.js:5692 +msgid "Show/hide block" msgstr "" -#: js/turtledefs.js:118 -#: js/turtledefs.js:220 -msgid "search" +#: js/activity.js:5698 +msgid "Expand/collapse blocks" msgstr "" -#: js/turtledefs.js:120 -#: js/turtledefs.js:222 -#: js/WidgetBlocks.js:437 -#: js/MeterBlocks.js:1343 -#.TRANS: musical meter (time signature), e.g., 4:4 -msgid "meter" +#: js/activity.js:5976 +msgid "Could not parse JSON input." msgstr "" -#: js/turtledefs.js:122 -#: js/turtledefs.js:224 -msgid "intervals" +#: js/activity.js:6475 +#: js/activity.js:6580 +#: js/activity.js:6631 +msgid "Cannot load project from the file. Please check the file type." msgstr "" -#: js/turtledefs.js:124 -#: js/turtledefs.js:226 -msgid "ornament" +#: js/activity.js:6917 +msgid "Invalid parameters" msgstr "" -#: js/turtledefs.js:125 -#: js/turtledefs.js:227 -#: js/VolumeBlocks.js:362 -#: js/VolumeBlocks.js:502 -#: js/VolumeBlocks.js:545 -msgid "volume" +#: js/blocks.js:1212 +#: js/blocks.js:3444 +#: js/blocks.js:3834 +#: js/blocks.js:3865 +#: js/blocks.js:3914 +#: js/blocks.js:3949 +#: js/blocks.js:6586 +#: js/palette.js:509 +#: js/palette.js:638 +#: js/palette.js:1105 +#: js/blocks/BoxesBlocks.js:282 +#: js/blocks/BoxesBlocks.js:285 +#: js/blocks/BoxesBlocks.js:405 +#: js/blocks/BoxesBlocks.js:594 +msgid "box" msgstr "" -#: js/turtledefs.js:129 -#: js/turtledefs.js:231 -msgid "boxes" +#: js/blocks.js:1713 +msgid "Consider breaking this stack into parts." msgstr "" -#: js/turtledefs.js:130 -#: js/turtledefs.js:232 -msgid "widgets" +#: js/blocks.js:2472 +#: js/palette.js:653 +#: js/blocks/MediaBlocks.js:602 +msgid "open file" msgstr "" -#: js/turtledefs.js:131 -#: js/turtledefs.js:233 -#: js/phrasemaker.js:824 -msgid "graphics" +#: js/blocks.js:3247 +#: js/palette.js:574 +#: js/blocks/MediaBlocks.js:892 +#: js/blocks/MediaBlocks.js:963 +msgid "text" msgstr "" -#: js/turtledefs.js:134 -#: js/turtledefs.js:236 -msgid "boolean" +#: js/blocks.js:3443 +#: js/palette.js:641 +#: js/palette.js:642 +#: js/blocks/BoxesBlocks.js:514 +msgid "store in box" msgstr "" -#: js/turtledefs.js:137 -#: js/turtledefs.js:239 -#: js/HeapBlocks.js:59 -#: js/status.js:147 -msgid "heap" +#: js/blocks.js:3448 +#: js/blocks.js:3888 +#: js/blocks.js:3923 +#: js/blocks.js:3958 +#: js/blocks.js:5862 +#: js/blocks.js:5883 +#: js/blocks/BoxesBlocks.js:772 +msgid "box1" msgstr "" -#: js/turtledefs.js:138 -#: js/turtledefs.js:240 -#: js/ProgramBlocks.js:495 -#: js/DictBlocks.js:142 -msgid "dictionary" +#: js/blocks.js:3450 +#: js/blocks.js:3890 +#: js/blocks.js:3925 +#: js/blocks.js:3960 +#: js/blocks.js:5864 +#: js/blocks.js:5885 +#: js/blocks/BoxesBlocks.js:663 +msgid "box2" msgstr "" -#: js/turtledefs.js:139 -#: js/turtledefs.js:241 -msgid "ensemble" +#: js/blocks.js:4122 +#: js/palette.js:639 +#: js/palette.js:644 +#: js/palette.js:1041 +#: js/blocks/BoxesBlocks.js:591 +msgid "store in" msgstr "" -#: js/turtledefs.js:140 -#: js/turtledefs.js:242 -msgid "extras" +#: js/blocks.js:4122 +#: js/blocks/BoxesBlocks.js:595 +#: js/blocks/DictBlocks.js:215 +#: js/blocks/DictBlocks.js:289 +#: js/blocks/EnsembleBlocks.js:391 +#: js/blocks/EnsembleBlocks.js:402 +#: js/blocks/MediaBlocks.js:746 +#: js/blocks/PitchBlocks.js:656 +#: js/blocks/PitchBlocks.js:934 +#: js/blocks/PitchBlocks.js:1866 +#: js/blocks/ProgramBlocks.js:390 +#: js/blocks/ProgramBlocks.js:495 +#: js/blocks/ProgramBlocks.js:658 +#: js/blocks/ToneBlocks.js:1025 +msgid "name" msgstr "" -#: js/turtledefs.js:142 -#: js/turtledefs.js:244 -#.TRANS: program as in computer program -#.TRANS: program as in computer program -msgid "program" +#: js/blocks.js:4122 +#: js/blocks/BoxesBlocks.js:75 +#: js/blocks/BoxesBlocks.js:595 +#: js/blocks/DictBlocks.js:289 +#: js/blocks/DictBlocks.js:430 +#: js/blocks/HeapBlocks.js:544 +#: js/blocks/RhythmBlocks.js:1130 +msgid "value" msgstr "" -#: js/turtledefs.js:143 -#: js/turtledefs.js:245 -msgid "my blocks" +#: js/blocks.js:4465 +msgid "Forever loop detected inside a note value block. Unexpected things may happen." msgstr "" -#: js/turtledefs.js:185 -#: js/turtledefs.js:281 -msgid "artwork" +#: js/blocks.js:4988 +msgid "There is no block selected." msgstr "" -#: js/turtledefs.js:185 -#: js/turtledefs.js:281 -msgid "logic" +#: js/blocks.js:5091 +#: js/blocks/MediaBlocks.js:888 +msgid "show" msgstr "" -#: js/turtledefs.js:185 -#: js/turtledefs.js:281 -msgid "music" +#: js/blocks.js:5094 +#: js/blocks/MediaBlocks.js:803 +#.TRANS: Avatar is the image used to determine the appearance of the mouse. +msgid "avatar" msgstr "" -#: js/turtledefs.js:187 -#: js/turtledefs.js:463 -msgid "Music Blocks is a collection of tools for exploring fundamental musical concepts in a fun way." +#: js/blocks.js:5097 +#: js/blocks/ToneBlocks.js:1010 +#: js/widgets/sampler.js:975 +#.TRANS: The sound sample that the user uploads. +msgid "sample" msgstr "" -#: js/turtledefs.js:436 -msgid "Welcome to Turtle Blocks" +#: js/lilypond.js:606 +msgid "brown rat" msgstr "" -#: js/turtledefs.js:438 -#: js/turtledefs.js:465 -#: js/turtledefs.js:774 -#: js/turtledefs.js:805 -msgid "The current version is" +#: js/lilypond.js:607 +msgid "mole" msgstr "" -#: js/turtledefs.js:446 -#: js/turtledefs.js:483 -msgid "Click the run button to run the project in fast mode." +#: js/lilypond.js:608 +msgid "chipmunk" msgstr "" -#: js/turtledefs.js:452 -msgid "Stop the turtle." +#: js/lilypond.js:609 +msgid "red squirrel" msgstr "" -#: js/turtledefs.js:454 -#: js/turtledefs.js:491 -msgid "You can also type Alt-S to stop." +#: js/lilypond.js:610 +msgid "guinea pig" +msgstr "" + +#: js/lilypond.js:611 +msgid "capybara" msgstr "" -#: js/turtledefs.js:462 -#: js/help.js:333 -msgid "Welcome to Music Blocks" +#: js/lilypond.js:612 +msgid "coypu" msgstr "" -#: js/turtledefs.js:472 -#: js/help.js:334 -msgid "Meet Mr. Mouse!" +#: js/lilypond.js:613 +msgid "black rat" msgstr "" -#: js/turtledefs.js:473 -msgid "Mr Mouse is our Music Blocks conductor." +#: js/lilypond.js:614 +msgid "grey squirrel" msgstr "" -#: js/turtledefs.js:475 -msgid "Mr Mouse encourages you to explore Music Blocks." +#: js/lilypond.js:615 +msgid "flying squirrel" msgstr "" -#: js/turtledefs.js:477 -msgid "Let us start our tour!" +#: js/lilypond.js:616 +msgid "bat" msgstr "" -#: js/turtledefs.js:489 -msgid "Stop the music (and the mice)." +#: js/lilypond.js:749 +#: js/lilypond.js:913 +#: js/lilypond.js:951 +#: js/blocks/ActionBlocks.js:1256 +#: js/blocks/ExtrasBlocks.js:556 +msgid "start drum" msgstr "" -#: js/turtledefs.js:499 -msgid "Record your project as video." +#: js/logo.js:61 +msgid "Not a valid pitch name" msgstr "" -#: js/turtledefs.js:505 -msgid "Toggle Fullscreen mode." +#: js/logo.js:507 +#: js/blocks/ProgramBlocks.js:258 +#: js/blocks/ProgramBlocks.js:427 +msgid "You must select a file." msgstr "" -#: js/turtledefs.js:511 -msgid "Initialize a new project." +#: js/logo.js:1696 +msgid "Playback is ready." msgstr "" -#: js/turtledefs.js:517 -msgid "You can also load projects from the file system." +#: js/macros.js:711 +#: js/utils/musicutils.js:1162 +#: js/utils/synthutils.js:202 +#.TRANS: animal sound effect +msgid "duck" msgstr "" -#: js/turtledefs.js:522 -#: js/StringHelper.js:46 -msgid "Delete" +#: js/notation.js:353 +msgid "Lilypond cannot process pickup of " msgstr "" -#: js/turtledefs.js:523 -msgid "To delete a block, just right-click on it, then you will be able to see the delete option" +#: js/palette.js:571 +msgid "grid" msgstr "" -#: js/turtledefs.js:528 -#: js/activity.js:2270 -#: js/LocalCard.js:31 -msgid "Copy" +#: js/palette.js:580 +msgid "effect" msgstr "" -#: js/turtledefs.js:529 -msgid "To copy a block, just right-click on it, then you will be able to see the copy option" +#: js/palette.js:586 +msgid "sargam" msgstr "" -#: js/turtledefs.js:535 -msgid "To extract a block, just right-click on it, then you will be able to see the extract option" +#: js/palette.js:601 +#: js/blocks/PitchBlocks.js:1209 +msgid "custom pitch" msgstr "" -#: js/turtledefs.js:542 -#: js/turtledefs.js:552 -#: js/turtledefs.js:573 -msgid "Save your project to a file." +#: js/palette.js:609 +msgid "accidental" msgstr "" -#: js/turtledefs.js:549 -#: js/turtledefs.js:570 -msgid "save" +#: js/palette.js:633 +#: js/blocks/PitchBlocks.js:405 +msgid "pitch converter" msgstr "" -#: js/turtledefs.js:556 -#: js/turtledefs.js:577 -msgid "Save graphics from your project to as SVG." +#: js/piemenus.js:200 +#: js/utils/musicutils.js:1187 +#: js/utils/musicutils.js:1207 +#: js/widgets/musickeyboard.js:2341 +#: js/widgets/phrasemaker.js:1908 +#: js/widgets/sampler.js:810 +#.TRANS: double sharp is a music term related to pitch +msgid "double sharp" msgstr "" -#: js/turtledefs.js:560 -#: js/turtledefs.js:581 -msgid "Save graphics from your project as PNG." +#: js/piemenus.js:201 +#: js/utils/musicutils.js:1185 +#: js/utils/musicutils.js:1208 +#: js/blocks/PitchBlocks.js:1539 +#: js/turtleactions/PitchActions.js:323 +#: js/widgets/musickeyboard.js:2342 +#: js/widgets/phrasemaker.js:1909 +#: js/widgets/sampler.js:811 +#.TRANS: sharp is a music term related to pitch +#.TRANS: sharp is a half-step up in pitch +msgid "sharp" msgstr "" -#: js/turtledefs.js:564 -#: js/turtledefs.js:597 -msgid "Save block artwork as an SVG file." +#: js/piemenus.js:202 +#: js/utils/musicutils.js:1183 +#: js/utils/musicutils.js:1209 +#: js/widgets/musickeyboard.js:2343 +#: js/widgets/phrasemaker.js:1910 +#: js/widgets/sampler.js:812 +#.TRANS: natural is a music term related to pitch +msgid "natural" msgstr "" -#: js/turtledefs.js:585 -msgid "Save audio from your project as WAV." +#: js/piemenus.js:203 +#: js/utils/musicutils.js:1181 +#: js/utils/musicutils.js:1210 +#: js/blocks/PitchBlocks.js:1498 +#: js/turtleactions/PitchActions.js:326 +#: js/widgets/musickeyboard.js:2344 +#: js/widgets/phrasemaker.js:1911 +#: js/widgets/sampler.js:813 +#.TRANS: flat is a music term related to pitch +#.TRANS: flat is a half-step down in pitch +msgid "flat" msgstr "" -#: js/turtledefs.js:589 -msgid "Save your project to as an ABC file." +#: js/piemenus.js:204 +#: js/utils/musicutils.js:1179 +#: js/utils/musicutils.js:1211 +#: js/widgets/musickeyboard.js:2345 +#: js/widgets/phrasemaker.js:1912 +#: js/widgets/sampler.js:814 +#.TRANS: double flat is a music term related to pitch +msgid "double flat" msgstr "" -#: js/turtledefs.js:593 -msgid "Save your project to as a Lilypond file." +#: js/piemenus.js:2864 +#: js/utils/musicutils.js:1006 +#: js/blocks/PitchBlocks.js:1385 +#.TRANS: unison is a music term related to intervals +#.TRANS: unison means the note is the same as the current note +msgid "unison" msgstr "" -#: js/turtledefs.js:604 -msgid "Load samples from server" +#: js/piemenus.js:3018 +#: js/piemenus.js:3091 +#: js/utils/musicutils.js:1014 +#: js/utils/musicutils.js:1189 +#: js/utils/musicutils.js:1326 +#.TRANS: major is a music term related to intervals and mode +msgid "major" msgstr "" -#: js/turtledefs.js:605 -msgid "This button opens a viewer for loading example projects." +#: js/piemenus.js:3018 +#: js/piemenus.js:3091 +#: js/utils/musicutils.js:1032 +#.TRANS: modal scale for music +msgid "ionian" msgstr "" -#: js/turtledefs.js:611 -msgid "Palette buttons" +#: js/piemenus.js:3020 +#: js/piemenus.js:3095 +#: js/utils/musicutils.js:1012 +#: js/utils/musicutils.js:1190 +#: js/utils/musicutils.js:1323 +#.TRANS: minor is a music term related to intervals and mode +msgid "minor" msgstr "" -#: js/turtledefs.js:612 -msgid "This toolbar contains the palette buttons including Rhythm Pitch Tone Action and more." +#: js/piemenus.js:3020 +#: js/piemenus.js:3095 +#: js/utils/musicutils.js:1042 +#.TRANS: modal scale for music +msgid "aeolian" msgstr "" -#: js/turtledefs.js:614 -msgid "Click to show the palettes of blocks and drag blocks from the palettes onto the canvas to use them." +#: js/piemenus.js:3410 +msgid "Duplicate" msgstr "" -#: js/turtledefs.js:620 -msgid "Cartesian/Polar" +#: js/piemenus.js:3412 +msgid "Move to trash" msgstr "" -#: js/turtledefs.js:621 -msgid "Show or hide a coordinate grid." +#: js/piemenus.js:3413 +#: js/widgets/timbre.js:968 +#: planet/js/StringHelper.js:69 +msgid "Close" msgstr "" -#: js/turtledefs.js:627 -msgid "Clear the screen and return the mice to their initial positions." +#: js/piemenus.js:3419 +msgid "Save stack" msgstr "" -#: js/turtledefs.js:633 -msgid "Collapse the graphics window." +#: js/piemenus.js:3449 +msgid "In order to copy a sample, you must reload the widget, import the sample again, and export it." msgstr "" -#: js/turtledefs.js:638 -#: js/activity.js:4256 -#: js/activity.js:4256 -msgid "Home" +#: js/piemenus.js:3812 +msgid "You have chosen key " msgstr "" -#: js/turtledefs.js:639 -msgid "Return all blocks to the center of the screen." +#: js/piemenus.js:3816 +msgid " for your pitch preview." msgstr "" -#: js/turtledefs.js:644 -msgid "Show/hide blocks" +#: js/turtle-singer.js:1363 +#.TRANS: partials are weighted components in a harmonic series +msgid "You must have at least one Partial block inside of a Weighted-partial block" msgstr "" -#: js/turtledefs.js:645 -msgid "Hide or show the blocks and the palettes." +#: js/turtle-singer.js:2077 +msgid "synth cannot play chords." msgstr "" -#: js/turtledefs.js:650 -msgid "Expand/collapse collapsable blocks" +#: js/utils/musicutils.js:505 +#: js/utils/musicutils.js:645 +#: js/widgets/pitchdrummatrix.js:228 +#: js/widgets/musickeyboard.js:2885 +msgid "rest" msgstr "" -#: js/turtledefs.js:651 -msgid "Expand or collapse start and action stacks." +#: js/utils/musicutils.js:689 +msgid "Perfect unison" msgstr "" -#: js/turtledefs.js:658 -#: js/activity.js:4265 -msgid "Decrease block size" +#: js/utils/musicutils.js:689 +msgid "Diminished second" msgstr "" -#: js/turtledefs.js:659 -msgid "Decrease the size of the blocks." +#: js/utils/musicutils.js:690 +msgid "Minor second" msgstr "" -#: js/turtledefs.js:664 -#: js/activity.js:4267 -msgid "Increase block size" +#: js/utils/musicutils.js:690 +msgid "Augmented unison" msgstr "" -#: js/turtledefs.js:665 -msgid "Increase the size of the blocks." +#: js/utils/musicutils.js:691 +msgid "Major second" msgstr "" -#: js/turtledefs.js:670 -msgid "Expand/collapse option toolbar" +#: js/utils/musicutils.js:691 +msgid "Diminished third" msgstr "" -#: js/turtledefs.js:671 -msgid "Click this button to expand or collapse the auxillary toolbar." +#: js/utils/musicutils.js:692 +msgid "Minor third" msgstr "" -#: js/turtledefs.js:676 -msgid "Run slow" +#: js/utils/musicutils.js:692 +msgid "Augmented second" msgstr "" -#: js/turtledefs.js:677 -msgid "Click to run the project in slow mode." +#: js/utils/musicutils.js:693 +msgid "Major third" msgstr "" -#: js/turtledefs.js:683 -msgid "Click to run the project step by step." +#: js/utils/musicutils.js:693 +msgid "Diminished fourth" msgstr "" -#: js/turtledefs.js:690 -msgid "Display statistics about your Music project." +#: js/utils/musicutils.js:694 +msgid "Perfect fourth" msgstr "" -#: js/turtledefs.js:697 -msgid "Delete a selected plugin." +#: js/utils/musicutils.js:694 +msgid "Augmented third" msgstr "" -#: js/turtledefs.js:704 -msgid "Enable scrolling" +#: js/utils/musicutils.js:695 +msgid "Diminished fifth" msgstr "" -#: js/turtledefs.js:705 -msgid "You can scroll the blocks on the canvas." +#: js/utils/musicutils.js:695 +msgid "Augmented fourth" msgstr "" -#: js/turtledefs.js:714 -msgid "Wrap Turtle" +#: js/utils/musicutils.js:696 +msgid "Perfect fifth" msgstr "" -#: js/turtledefs.js:715 -msgid "Turn Turtle wrapping On or Off." +#: js/utils/musicutils.js:696 +msgid "Diminished sixth" msgstr "" -#: js/turtledefs.js:725 -msgid "Restore blocks from the trash." +#: js/utils/musicutils.js:697 +msgid "Minor sixth" msgstr "" -#: js/turtledefs.js:732 -msgid "Switch mode" +#: js/utils/musicutils.js:697 +msgid "Augmented fifth" msgstr "" -#: js/turtledefs.js:733 -msgid "Switch between beginner and advance modes." +#: js/utils/musicutils.js:698 +msgid "Major sixth" msgstr "" -#: js/turtledefs.js:739 -msgid "Select your language preference." +#: js/utils/musicutils.js:698 +msgid "Diminished seventh" msgstr "" -#: js/turtledefs.js:745 -msgid "Keyboard shortcuts" +#: js/utils/musicutils.js:699 +msgid "Minor seventh" msgstr "" -#: js/turtledefs.js:746 -msgid "You can type d to create a do block and r to create a re block etc." +#: js/utils/musicutils.js:699 +msgid "Augmented sixth" msgstr "" -#: js/turtledefs.js:753 -msgid "Show these messages." +#: js/utils/musicutils.js:700 +msgid "Major seventh" msgstr "" -#: js/turtledefs.js:759 -#: js/turtledefs.js:790 -#: js/help.js:335 -msgid "Guide" +#: js/utils/musicutils.js:700 +msgid "Diminished octave" msgstr "" -#: js/turtledefs.js:760 -msgid "A detailed guide to Turtle Blocks is available." +#: js/utils/musicutils.js:701 +msgid "Perfect octave" msgstr "" -#: js/turtledefs.js:764 -msgid "Turtle Blocks Guide" +#: js/utils/musicutils.js:701 +msgid "Augmented seventh" msgstr "" -#: js/turtledefs.js:767 -#: js/turtledefs.js:798 -#: js/help.js:336 -msgid "About" +#: js/utils/musicutils.js:702 +msgid "Minor ninth" msgstr "" -#: js/turtledefs.js:768 -msgid "Turtle Blocks is an open source collection of tools for exploring musical concepts." +#: js/utils/musicutils.js:702 +msgid "Augmented octave" msgstr "" -#: js/turtledefs.js:770 -msgid "A full list of contributors can be found in the Turtle Blocks GitHub repository." +#: js/utils/musicutils.js:703 +msgid "Major ninth" msgstr "" -#: js/turtledefs.js:772 -msgid "Turtle Blocks is licensed under the AGPL." +#: js/utils/musicutils.js:703 +msgid "Diminished tenth" msgstr "" -#: js/turtledefs.js:780 -msgid "Turtle Blocks GitHub repository" +#: js/utils/musicutils.js:704 +msgid "Minor tenth" msgstr "" -#: js/turtledefs.js:783 -#: js/turtledefs.js:814 -#: js/help.js:337 -#: js/help.js:359 -msgid "Congratulations." +#: js/utils/musicutils.js:704 +msgid "Augmented ninth" msgstr "" -#: js/turtledefs.js:784 -msgid "You have finished the tour. Please enjoy Turtle Blocks!" +#: js/utils/musicutils.js:705 +msgid "Major tenth" msgstr "" -#: js/turtledefs.js:791 -msgid "A detailed guide to Music Blocks is available." +#: js/utils/musicutils.js:705 +msgid "Diminished eleventh" msgstr "" -#: js/turtledefs.js:795 -#: js/SaveInterface.js:76 -msgid "Music Blocks Guide" +#: js/utils/musicutils.js:706 +msgid "Perfect eleventh" msgstr "" -#: js/turtledefs.js:799 -msgid "Music Blocks is an open source collection of tools for exploring musical concepts." +#: js/utils/musicutils.js:706 +msgid "Augmented tenth" msgstr "" -#: js/turtledefs.js:801 -msgid "A full list of contributors can be found in the Music Blocks GitHub repository." +#: js/utils/musicutils.js:707 +msgid "Diminished twelfth" msgstr "" -#: js/turtledefs.js:803 -msgid "Music Blocks is licensed under the AGPL." +#: js/utils/musicutils.js:707 +msgid "Augmented eleventh" msgstr "" -#: js/turtledefs.js:811 -msgid "Music Blocks GitHub repository" +#: js/utils/musicutils.js:708 +msgid "Perfect twelfth" msgstr "" -#: js/turtledefs.js:815 -msgid "You have finished the tour. Please enjoy Music Blocks!" +#: js/utils/musicutils.js:708 +msgid "Diminished thirteenth" msgstr "" -#: js/activity.js:369 -msgid "Search for blocks" +#: js/utils/musicutils.js:709 +msgid "Minor thirteenth" msgstr "" -#: js/activity.js:1145 -msgid "Refresh your browser to change to advanced mode." +#: js/utils/musicutils.js:709 +msgid "Augmented fifth, plus an octave" msgstr "" -#: js/activity.js:1150 -msgid "Refresh your browser to change to beginner mode." +#: js/utils/musicutils.js:710 +msgid "Major thirteenth" msgstr "" -#: js/activity.js:1184 -msgid "Catching mice" +#: js/utils/musicutils.js:710 +msgid "Diminished seventh, plus an octave" msgstr "" -#: js/activity.js:1185 -msgid "Cleaning the instruments" +#: js/utils/musicutils.js:838 +#.TRANS: ordinal number. Please keep exactly one space between each number. +msgid "1st 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th" msgstr "" -#: js/activity.js:1186 -msgid "Testing key pieces" +#: js/utils/musicutils.js:1008 +#: js/utils/musicutils.js:1191 +#: js/utils/musicutils.js:1325 +#.TRANS: augmented is a music term related to intervals +msgid "augmented" msgstr "" -#: js/activity.js:1187 -msgid "Sight-reading" +#: js/utils/musicutils.js:1010 +#: js/utils/musicutils.js:1192 +#: js/utils/musicutils.js:1324 +#.TRANS: diminished is a music term related to intervals and mode +msgid "diminished" msgstr "" -#: js/activity.js:1188 -msgid "Combining math and music" +#: js/utils/musicutils.js:1016 +#: js/utils/musicutils.js:1322 +#: js/blocks/IntervalsBlocks.js:649 +#: js/turtleactions/IntervalsActions.js:120 +#: js/turtleactions/IntervalsActions.js:124 +#.TRANS: perfect is a music term related to intervals +msgid "perfect" +msgstr "" + +#: js/utils/musicutils.js:1018 +#.TRANS: twelve semi-tone scale for music +msgid "chromatic" msgstr "" -#: js/activity.js:1189 -msgid "Generating more blocks" +#: js/utils/musicutils.js:1019 +msgid "algerian" msgstr "" -#: js/activity.js:1190 -msgid "Do Re Mi Fa Sol La Ti Do" +#: js/utils/musicutils.js:1020 +msgid "spanish" msgstr "" -#: js/activity.js:1191 -msgid "Tuning string instruments" +#: js/utils/musicutils.js:1022 +#.TRANS: modal scale in music +msgid "octatonic" msgstr "" -#: js/activity.js:1192 -msgid "Pressing random keys" +#: js/utils/musicutils.js:1024 +#.TRANS: harmonic major scale in music +msgid "harmonic major" msgstr "" -#: js/activity.js:1351 -msgid "plugins will be removed upon restart." +#: js/utils/musicutils.js:1026 +#.TRANS: natural minor scales in music +msgid "natural minor" msgstr "" -#: js/activity.js:1360 -msgid "show Cartesian" +#: js/utils/musicutils.js:1028 +#.TRANS: harmonic minor scale in music +msgid "harmonic minor" msgstr "" -#: js/activity.js:1842 -msgid "output tools" +#: js/utils/musicutils.js:1030 +#.TRANS: melodic minor scale in music +msgid "melodic minor" msgstr "" -#: js/activity.js:1845 -msgid "custom note" +#: js/utils/musicutils.js:1034 +#.TRANS: modal scale for music +msgid "dorian" msgstr "" -#: js/activity.js:1848 -msgid "accidental name" +#: js/utils/musicutils.js:1036 +#.TRANS: modal scale for music +msgid "phrygian" msgstr "" -#: js/activity.js:1851 -#: js/PitchBlocks.js:855 -msgid "east indian solfege" +#: js/utils/musicutils.js:1038 +#.TRANS: modal scale for music +msgid "lydian" msgstr "" -#: js/activity.js:1854 -#: js/PitchBlocks.js:869 -msgid "note name" +#: js/utils/musicutils.js:1040 +#.TRANS: modal scale for music +msgid "mixolydian" msgstr "" -#: js/activity.js:1857 -#: js/IntervalsBlocks.js:94 -msgid "temperament name" +#: js/utils/musicutils.js:1044 +#.TRANS: modal scale for music +msgid "locrian" msgstr "" -#: js/activity.js:1863 -msgid "chord name" +#: js/utils/musicutils.js:1046 +#.TRANS: minor jazz scale for music +msgid "jazz minor" msgstr "" -#: js/activity.js:1869 -msgid "filter type" +#: js/utils/musicutils.js:1048 +#.TRANS: bebop scale for music +msgid "bebop" msgstr "" -#: js/activity.js:1872 -msgid "oscillator type" +#: js/utils/musicutils.js:1049 +msgid "arabic" msgstr "" -#: js/activity.js:1878 -#: js/DrumBlocks.js:32 -msgid "noise name" +#: js/utils/musicutils.js:1050 +msgid "byzantine" msgstr "" -#: js/activity.js:1881 -#: js/DrumBlocks.js:75 -msgid "drum name" +#: js/utils/musicutils.js:1052 +#.TRANS: musical scale for music by Verdi +msgid "enigmatic" msgstr "" -#: js/activity.js:1884 -#: js/DrumBlocks.js:119 -msgid "effects name" +#: js/utils/musicutils.js:1053 +msgid "ethiopian" msgstr "" -#: js/activity.js:1887 -msgid "wrap mode" +#: js/utils/musicutils.js:1055 +#.TRANS: Ethiopic scale for music +msgid "geez" msgstr "" -#: js/activity.js:1890 -msgid "load file" +#: js/utils/musicutils.js:1056 +msgid "hindu" msgstr "" -#: js/activity.js:2056 -msgid "This block is deprecated." +#: js/utils/musicutils.js:1057 +msgid "hungarian" msgstr "" -#: js/activity.js:2058 -msgid "Block cannot be found." +#: js/utils/musicutils.js:1059 +#.TRANS: minor Romanian scale for music +msgid "romanian minor" msgstr "" -#: js/activity.js:2266 -msgid "Saving block artwork" +#: js/utils/musicutils.js:1060 +msgid "spanish gypsy" msgstr "" -#: js/activity.js:2277 -msgid "Erase" +#: js/utils/musicutils.js:1062 +#.TRANS: musical scale for Mid-Eastern music +msgid "maqam" msgstr "" -#: js/activity.js:2301 -#: js/activity.js:2323 -msgid "Paste" +#: js/utils/musicutils.js:1064 +#.TRANS: minor blues scale for music +msgid "minor blues" msgstr "" -#: js/activity.js:2305 -msgid "Save block help" +#: js/utils/musicutils.js:1066 +#.TRANS: major blues scale for music +msgid "major blues" msgstr "" -#: js/activity.js:2390 -msgid "Jumping to the bottom of the page." +#: js/utils/musicutils.js:1067 +msgid "whole tone" msgstr "" -#: js/activity.js:2396 -msgid "Scrolling up." +#: js/utils/musicutils.js:1069 +#.TRANS: pentatonic is a general term that means "five note scale". This scale is typically known as "minor pentatonic" +msgid "minor pentatonic" msgstr "" -#: js/activity.js:2401 -msgid "Scrolling down." +#: js/utils/musicutils.js:1071 +#.TRANS: pentatonic is a general term that means "five note scale". This scale is typically known as "major pentatonic" +msgid "major pentatonic" msgstr "" -#: js/activity.js:2406 -msgid "Extracting block" +#: js/utils/musicutils.js:1072 +msgid "chinese" msgstr "" -#: js/activity.js:2414 -msgid "Moving block up." +#: js/utils/musicutils.js:1073 +msgid "egyptian" msgstr "" -#: js/activity.js:2435 -msgid "Moving block down." +#: js/utils/musicutils.js:1075 +#.TRANS: https://en.wikipedia.org/wiki/Hirajoshi_scale NOTE: There are three different versions of this scale +msgid "hirajoshi" msgstr "" -#: js/activity.js:2456 -msgid "Moving block left." +#: js/utils/musicutils.js:1076 +msgid "Japan" msgstr "" -#: js/activity.js:2473 -msgid "Moving block right." +#: js/utils/musicutils.js:1078 +#.TRANS: https://en.wikipedia.org/wiki/In_scale and https://en.wikipedia.org/wiki/Sakura_Sakura +msgid "in" msgstr "" -#: js/activity.js:2488 -msgid "Jump to home position." +#: js/utils/musicutils.js:1080 +#.TRANS: https://en.wikipedia.org/wiki/Miny%C5%8D_scale +msgid "minyo" msgstr "" -#: js/activity.js:2515 -msgid "Hide blocks" +#: js/utils/musicutils.js:1082 +#.TRANS: Italian mathematician +msgid "fibonacci" msgstr "" -#: js/activity.js:3389 -msgid "Click the run button to run the project." +#: js/utils/musicutils.js:1083 +#: js/utils/musicutils.js:1134 +#: js/utils/musicutils.js:1177 +#: js/utils/musicutils.js:1199 +#: js/utils/synthutils.js:134 +#: js/blocks/IntervalsBlocks.js:1124 +#: js/blocks/ToneBlocks.js:946 +#: js/blocks/VolumeBlocks.js:411 +#: js/blocks/WidgetBlocks.js:399 +#: js/blocks/WidgetBlocks.js:404 +#: js/turtleactions/VolumeActions.js:218 +#: js/widgets/modewidget.js:919 +#.TRANS: customize voice +msgid "custom" msgstr "" -#: js/activity.js:3456 -#: js/SaveInterface.js:131 -#: js/SaveInterface.js:204 -#: js/SaveInterface.js:262 -#: js/SaveInterface.js:389 -#: js/SaveInterface.js:417 -#: js/ProjectStorage.js:27 -#: js/GlobalPlanet.js:467 -#: js/GlobalPlanet.js:469 -#: js/GlobalPlanet.js:495 -#.TRANS: default project title when saving as Lilypond -msgid "My Project" +#: js/utils/musicutils.js:1085 +#: js/utils/musicutils.js:1531 +#: js/blocks/WidgetBlocks.js:176 +#.TRANS: highpass filter +msgid "highpass" msgstr "" -#: js/activity.js:4261 -msgid "Show/hide block" +#: js/utils/musicutils.js:1087 +#: js/utils/musicutils.js:1532 +#.TRANS: lowpass filter +msgid "lowpass" msgstr "" -#: js/activity.js:4263 -msgid "Expand/collapse blocks" +#: js/utils/musicutils.js:1089 +#: js/utils/musicutils.js:1533 +#.TRANS: bandpass filter +msgid "bandpass" msgstr "" -#: js/activity.js:4381 -msgid "Could not parse JSON input." +#: js/utils/musicutils.js:1091 +#: js/utils/musicutils.js:1534 +#.TRANS: high-shelf filter +msgid "highshelf" msgstr "" -#: js/activity.js:4684 -#: js/activity.js:4771 -#: js/activity.js:4821 -msgid "Cannot load project from the file. Please check the file type." +#: js/utils/musicutils.js:1093 +#: js/utils/musicutils.js:1535 +#.TRANS: low-shelf filter +msgid "lowshelf" msgstr "" -#: js/activity.js:5051 -msgid "Invalid parameters" +#: js/utils/musicutils.js:1095 +#: js/utils/musicutils.js:1536 +#.TRANS: notch-shelf filter +msgid "notch" msgstr "" -#: js/turtle-singer.js:1334 -#.TRANS: partials are weighted components in a harmonic series -msgid "You must have at least one Partial block inside of a Weighted-partial block" +#: js/utils/musicutils.js:1097 +#: js/utils/musicutils.js:1537 +#.TRANS: all-pass filter +msgid "allpass" msgstr "" -#: js/turtle-singer.js:2048 -msgid "synth cannot play chords." +#: js/utils/musicutils.js:1099 +#: js/utils/musicutils.js:1538 +#.TRANS: peaking filter +msgid "peaking" msgstr "" -#: js/lilypond.js:614 -msgid "brown rat" +#: js/utils/musicutils.js:1100 +#: js/utils/musicutils.js:1546 +#: js/utils/synthutils.js:126 +#: js/blocks/PitchBlocks.js:85 +#.TRANS: sine wave +msgid "sine" msgstr "" -#: js/lilypond.js:615 -msgid "mole" +#: js/utils/musicutils.js:1101 +#: js/utils/musicutils.js:1547 +#: js/utils/synthutils.js:128 +#: js/blocks/PitchBlocks.js:39 +#.TRANS: square wave +msgid "square" msgstr "" -#: js/lilypond.js:616 -msgid "chipmunk" +#: js/utils/musicutils.js:1102 +#: js/utils/musicutils.js:1548 +#: js/utils/synthutils.js:132 +#: js/blocks/PitchBlocks.js:62 +#: js/blocks/ToneBlocks.js:39 +#.TRANS: triangle wave +msgid "triangle" msgstr "" -#: js/lilypond.js:617 -msgid "red squirrel" +#: js/utils/musicutils.js:1103 +#: js/utils/musicutils.js:1549 +#: js/utils/synthutils.js:130 +#: js/blocks/PitchBlocks.js:108 +#.TRANS: sawtooth wave +msgid "sawtooth" msgstr "" -#: js/lilypond.js:618 -msgid "guinea pig" +#: js/utils/musicutils.js:1105 +#: js/utils/musicutils.js:1312 +#: js/blocks/PitchBlocks.js:931 +#: js/blocks/PitchBlocks.js:937 +#: js/turtleactions/PitchActions.js:469 +#.TRANS: even numbers +#.TRANS: invert based on even or odd number or musical scale +msgid "even" msgstr "" -#: js/lilypond.js:619 -msgid "capybara" +#: js/utils/musicutils.js:1107 +#: js/utils/musicutils.js:1313 +#: js/blocks/PitchBlocks.js:937 +#: js/turtleactions/PitchActions.js:471 +#.TRANS: odd numbers +msgid "odd" msgstr "" -#: js/lilypond.js:620 -msgid "coypu" +#: js/utils/musicutils.js:1108 +#: js/utils/musicutils.js:1314 +#: js/blocks/PitchBlocks.js:937 +#: js/turtleactions/PitchActions.js:473 +msgid "scalar" msgstr "" -#: js/lilypond.js:621 -msgid "black rat" +#: js/utils/musicutils.js:1109 +#: js/utils/synthutils.js:72 +#: js/blocks/VolumeBlocks.js:47 +#.TRANS: musical instrument +msgid "piano" msgstr "" -#: js/lilypond.js:622 -msgid "grey squirrel" +#: js/utils/musicutils.js:1110 +#: js/utils/synthutils.js:74 +#.TRANS: musical instrument +msgid "violin" msgstr "" -#: js/lilypond.js:623 -msgid "flying squirrel" +#: js/utils/musicutils.js:1111 +#: js/utils/synthutils.js:76 +#.TRANS: viola musical instrument +msgid "viola" msgstr "" -#: js/lilypond.js:624 -msgid "bat" +#: js/utils/musicutils.js:1112 +#: js/utils/synthutils.js:114 +#.TRANS: xylophone musical instrument +msgid "xylophone" msgstr "" -#: js/lilypond.js:757 -#: js/lilypond.js:921 -#: js/lilypond.js:959 -#: js/ActionBlocks.js:1256 -#: js/ExtrasBlocks.js:553 -msgid "start drum" +#: js/utils/musicutils.js:1113 +#: js/utils/synthutils.js:136 +#.TRANS: vibraphone musical instrument +msgid "vibraphone" msgstr "" -#: js/SaveInterface.js:59 -#: js/SaveInterface.js:61 -#: js/SaveInterface.js:93 -msgid "Music Blocks Project" +#: js/utils/musicutils.js:1114 +#: js/utils/synthutils.js:78 +#.TRANS: musical instrument +msgid "cello" msgstr "" -#: js/SaveInterface.js:63 -msgid "This project was created in Music Blocks" +#: js/utils/musicutils.js:1116 +#: js/utils/synthutils.js:82 +#.TRANS: viola musical instrument +msgid "double bass" msgstr "" -#: js/SaveInterface.js:67 -msgid "Music Blocks is a Free/Libre Software application." +#: js/utils/musicutils.js:1117 +#: js/utils/synthutils.js:84 +#: js/widgets/rhythmruler.js:2511 +#.TRANS: musical instrument +msgid "guitar" msgstr "" -#: js/SaveInterface.js:69 -msgid "The source code can be accessed at" +#: js/utils/musicutils.js:1118 +#: js/utils/synthutils.js:86 +#.TRANS: musical instrument +msgid "acoustic guitar" msgstr "" -#: js/SaveInterface.js:72 -msgid "For more information, please consult the" +#: js/utils/musicutils.js:1119 +#: js/utils/synthutils.js:88 +#.TRANS: musical instrument +msgid "flute" msgstr "" -#: js/SaveInterface.js:83 -msgid "Alternatively, open the file in Music Blocks using the Load project button." +#: js/utils/musicutils.js:1120 +#: js/utils/synthutils.js:90 +#.TRANS: musical instrument +msgid "clarinet" msgstr "" -#: js/SaveInterface.js:85 -msgid "Project Code" +#: js/utils/musicutils.js:1121 +#: js/utils/synthutils.js:92 +#.TRANS: musical instrument +msgid "saxophone" msgstr "" -#: js/SaveInterface.js:87 -msgid "This code stores data about the blocks in a project." +#: js/utils/musicutils.js:1122 +#: js/utils/synthutils.js:94 +#.TRANS: musical instrument +msgid "tuba" msgstr "" -#: js/SaveInterface.js:89 -msgid "Show" +#: js/utils/musicutils.js:1123 +#: js/utils/synthutils.js:96 +#.TRANS: musical instrument +msgid "trumpet" msgstr "" -#: js/SaveInterface.js:91 -msgid "Hide" +#: js/utils/musicutils.js:1124 +#: js/utils/synthutils.js:98 +#.TRANS: musical instrument +msgid "oboe" msgstr "" -#: js/SaveInterface.js:197 -#: js/SaveInterface.js:58 -msgid "No description provided" +#: js/utils/musicutils.js:1125 +#: js/utils/synthutils.js:100 +#.TRANS: musical instrument +msgid "trombone" msgstr "" -#: js/SaveInterface.js:332 -msgid "Your recording is in progress." +#: js/utils/musicutils.js:1126 +#: js/utils/synthutils.js:116 +#.TRANS: polytone synthesizer +msgid "electronic synth" msgstr "" -#: js/SaveInterface.js:401 -#.TRANS: File name prompt for save as Lilypond -msgid "File name" +#: js/utils/musicutils.js:1127 +#: js/utils/synthutils.js:118 +#.TRANS: simple monotone synthesizer +msgid "simple 1" msgstr "" -#: js/SaveInterface.js:403 -#: js/StringHelper.js:39 -#.TRANS: Project title prompt for save as Lilypond -msgid "Project title" +#: js/utils/musicutils.js:1128 +msgid "simple 2" msgstr "" -#: js/SaveInterface.js:405 -#.TRANS: Project title prompt for save as Lilypond -msgid "Project author" +#: js/utils/musicutils.js:1129 +msgid "simple 3" msgstr "" -#: js/SaveInterface.js:407 -#.TRANS: MIDI prompt for save as Lilypond -msgid "Include MIDI output?" +#: js/utils/musicutils.js:1130 +msgid "simple 4" msgstr "" -#: js/SaveInterface.js:409 -#.TRANS: Guitar prompt for save as Lilypond -msgid "Include guitar tablature output?" +#: js/utils/musicutils.js:1131 +#: js/utils/synthutils.js:58 +#: js/blocks/DrumBlocks.js:191 +#.TRANS: white noise synthesizer +msgid "white noise" msgstr "" -#: js/SaveInterface.js:411 -#.TRANS: Lilypond is a scripting language for generating sheet music -msgid "Save as Lilypond" +#: js/utils/musicutils.js:1132 +#: js/utils/synthutils.js:60 +#.TRANS: brown noise synthesizer +msgid "brown noise" msgstr "" -#: js/SaveInterface.js:426 -#: js/EnsembleBlocks.js:75 -#: js/EnsembleBlocks.js:154 -#: js/EnsembleBlocks.js:216 -#: js/EnsembleBlocks.js:302 -#: js/EnsembleBlocks.js:348 -#: js/EnsembleBlocks.js:389 -#: js/EnsembleBlocks.js:441 -#: js/EnsembleBlocks.js:490 -#: js/EnsembleBlocks.js:536 -#: js/EnsembleBlocks.js:583 -#: js/EnsembleBlocks.js:637 -#: js/EnsembleBlocks.js:753 -#: js/EnsembleBlocks.js:840 -#: js/EnsembleBlocks.js:899 -#: js/EnsembleBlocks.js:942 -#: js/EnsembleBlocks.js:1212 -#: js/EnsembleBlocks.js:1280 -#.TRANS: default project author when saving as Lilypond -msgid "Mr. Mouse" +#: js/utils/musicutils.js:1133 +#: js/utils/synthutils.js:62 +#.TRANS: pink noise synthesizer +msgid "pink noise" msgstr "" -#: js/SaveInterface.js:573 -msgid "The Lilypond code is copied to clipboard. You can paste it here: " +#: js/utils/musicutils.js:1135 +#: js/utils/synthutils.js:148 +#: js/widgets/rhythmruler.js:2057 +#: js/widgets/rhythmruler.js:2319 +#.TRANS: musical instrument +msgid "snare drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:50 -#: js/RhythmBlockPaletteBlocks.js:232 -#.TRANS: rhythm block -#.TRANS: translate "rhythm1" as rhythm -msgid "rhythm1" +#: js/utils/musicutils.js:1136 +#: js/utils/synthutils.js:150 +#.TRANS: musical instrument +msgid "kick drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:70 -#: js/RhythmBlockPaletteBlocks.js:251 -#: js/RhythmBlockPaletteBlocks.js:484 -#: js/RhythmBlockPaletteBlocks.js:553 -#: js/RhythmBlockPaletteBlocks.js:874 -msgid "number of notes" +#: js/utils/musicutils.js:1137 +#: js/utils/synthutils.js:152 +#.TRANS: musical instrument +msgid "tom tom" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:126 -msgid "polyphonic rhythm" +#: js/utils/musicutils.js:1138 +#: js/utils/synthutils.js:154 +#.TRANS: musical instrument +msgid "floor tom" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:218 -msgid "The Rhythm block is used to generate rhythm patterns." +#: js/utils/musicutils.js:1139 +#: js/utils/synthutils.js:156 +#.TRANS: musical instrument +msgid "bass drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:279 -msgid "1/64 note" +#: js/utils/musicutils.js:1140 +#: js/utils/synthutils.js:158 +#.TRANS: a drum made from an inverted cup +msgid "cup drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:303 -msgid "1/32 note" +#: js/utils/musicutils.js:1141 +#: js/utils/synthutils.js:160 +#.TRANS: musical instrument +msgid "darbuka drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:331 -msgid "1/16 note" +#: js/utils/musicutils.js:1142 +#: js/utils/synthutils.js:164 +#.TRANS: musical instrument +msgid "hi hat" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:359 -msgid "eighth note" +#: js/utils/musicutils.js:1143 +#: js/utils/synthutils.js:166 +#.TRANS: a small metal bell +msgid "ride bell" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:387 -msgid "quarter note" +#: js/utils/musicutils.js:1144 +#: js/utils/synthutils.js:168 +#.TRANS: musical instrument +msgid "cow bell" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:415 -msgid "half note" +#: js/utils/musicutils.js:1145 +msgid "japanese drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:443 -msgid "whole note" +#: js/utils/musicutils.js:1146 +#: js/utils/synthutils.js:174 +#.TRANS: musical instrument +msgid "japanese bell" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:481 -#: js/RhythmBlockPaletteBlocks.js:550 -#: js/RhythmBlockPaletteBlocks.js:601 -#.TRANS: A tuplet is a note value divided into irregular time values. -msgid "tuplet" +#: js/utils/musicutils.js:1147 +#: js/utils/synthutils.js:170 +#.TRANS: musical instrument +msgid "triangle bell" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:767 -msgid "septuplet" +#: js/utils/musicutils.js:1148 +#: js/utils/synthutils.js:172 +#.TRANS: musical instrument +msgid "finger cymbals" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:795 -msgid "quintuplet" +#: js/utils/musicutils.js:1149 +#: js/utils/synthutils.js:176 +#.TRANS: a musically tuned set of bells +msgid "chime" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:823 -msgid "triplet" +#: js/utils/musicutils.js:1150 +#: js/utils/synthutils.js:178 +#.TRANS: a musical instrument +msgid "gong" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:850 -msgid "simple tuplet" +#: js/utils/musicutils.js:1151 +#: js/utils/synthutils.js:180 +#.TRANS: sound effect +msgid "clang" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:860 -msgid "Tuplets are a collection of notes that get scaled to a specific duration." +#: js/utils/musicutils.js:1152 +#: js/utils/synthutils.js:182 +#.TRANS: sound effect +msgid "crash" msgstr "" -#: js/WidgetBlocks.js:71 -#.TRANS: sound envelope (ADSR) -msgid "envelope" +#: js/utils/musicutils.js:1153 +#: js/utils/synthutils.js:184 +#.TRANS: sound effect +msgid "bottle" msgstr "" -#: js/WidgetBlocks.js:79 -#.TRANS: Attack time is the time taken for initial run-up of level from nil to peak, beginning when the key is first pressed. -msgid "attack" +#: js/utils/musicutils.js:1154 +#: js/utils/synthutils.js:186 +#.TRANS: sound effect +msgid "clap" msgstr "" -#: js/WidgetBlocks.js:81 -#.TRANS: Decay time is the time taken for the subsequent run down from the attack level to the designated sustain level. -msgid "decay" +#: js/utils/musicutils.js:1155 +#: js/utils/synthutils.js:188 +#.TRANS: sound effect +msgid "slap" msgstr "" -#: js/WidgetBlocks.js:83 -#.TRANS: Sustain level is the level during the main sequence of the sound's duration, until the key is released. -msgid "sustain" +#: js/utils/musicutils.js:1156 +#: js/utils/synthutils.js:190 +#.TRANS: sound effect +msgid "splash" msgstr "" -#: js/WidgetBlocks.js:85 -#.TRANS: Release time is the time taken for the level to decay from the sustain level to zero after the key is released. -msgid "release" +#: js/utils/musicutils.js:1157 +#: js/utils/synthutils.js:192 +#.TRANS: sound effect +msgid "bubbles" msgstr "" -#: js/WidgetBlocks.js:96 -msgid "Attack value should be from 0 to 100." +#: js/utils/musicutils.js:1158 +#: js/utils/synthutils.js:194 +#.TRANS: sound effect +msgid "raindrop" msgstr "" -#: js/WidgetBlocks.js:99 -msgid "Decay value should be from 0 to 100." +#: js/utils/musicutils.js:1159 +#: js/utils/synthutils.js:196 +#.TRANS: animal sound effect +msgid "cat" msgstr "" -#: js/WidgetBlocks.js:102 -msgid "Sustain value should be from 0 to 100." +#: js/utils/musicutils.js:1160 +#: js/utils/synthutils.js:198 +#.TRANS: animal sound effect +msgid "cricket" msgstr "" -#: js/WidgetBlocks.js:105 -msgid "Release value should be from 0-100." +#: js/utils/musicutils.js:1161 +#: js/utils/synthutils.js:200 +#.TRANS: animal sound effect +msgid "dog" msgstr "" -#: js/WidgetBlocks.js:121 -msgid "You are adding multiple envelope blocks." +#: js/utils/musicutils.js:1163 +#: js/utils/synthutils.js:102 +#.TRANS: musical instrument +msgid "banjo" msgstr "" -#: js/WidgetBlocks.js:144 -#.TRANS: a filter removes some unwanted components from a signal -msgid "filter" +#: js/utils/musicutils.js:1164 +#: js/utils/synthutils.js:104 +#.TRANS: musical instrument +msgid "koto" msgstr "" -#: js/WidgetBlocks.js:149 -#: js/musicutils.js:706 -#: js/musicutils.js:1105 -#.TRANS: highpass filter -msgid "highpass" +#: js/utils/musicutils.js:1165 +#: js/utils/synthutils.js:106 +#.TRANS: musical instrument +msgid "dulcimer" msgstr "" -#: js/WidgetBlocks.js:152 -#: js/ToneBlocks.js:42 -#: js/timbre.js:1558 -#: js/timbre.js:1808 -#.TRANS: type of filter, e.g., lowpass, highpass, etc. -#.TRANS: there are different types (sine, triangle, square...) of oscillators. -msgid "type" +#: js/utils/musicutils.js:1166 +#: js/utils/synthutils.js:108 +#.TRANS: musical instrument +msgid "electric guitar" msgstr "" -#: js/WidgetBlocks.js:154 -#: js/timbre.js:1818 -#.TRANS: rolloff is the steepness of a change in frequency. -msgid "rolloff" +#: js/utils/musicutils.js:1167 +#: js/utils/synthutils.js:110 +#.TRANS: musical instrument +msgid "bassoon" msgstr "" -#: js/WidgetBlocks.js:155 -#: js/MediaBlocks.js:692 -#: js/temperament.js:382 -#: js/temperament.js:417 -#: js/temperament.js:477 -#: js/temperament.js:485 -#: js/temperament.js:1348 -#: js/timbre.js:1842 -msgid "frequency" +#: js/utils/musicutils.js:1168 +#: js/utils/synthutils.js:112 +#.TRANS: musical instrument +msgid "celeste" msgstr "" -#: js/WidgetBlocks.js:179 -#.TRANS: rolloff is the steepness of a change in frequency. -msgid "Rolloff value should be either -12, -24, -48, or -96 decibels/octave." +#: js/utils/musicutils.js:1170 +#: js/widgets/temperament.js:787 +#.TRANS: musical temperament +msgid "equal" msgstr "" -#: js/WidgetBlocks.js:211 -msgid "The Temperament tool is used to define custom tuning." +#: js/utils/musicutils.js:1172 +#.TRANS: musical temperament +msgid "Pythagorean" msgstr "" -#: js/WidgetBlocks.js:277 -#: js/sampler.js:329 -msgid "Upload a sample and adjust its pitch center." +#: js/utils/musicutils.js:1174 +#.TRANS: musical temperament +msgid "just intonation" msgstr "" -#: js/WidgetBlocks.js:284 -#.TRANS: the speed at music is should be played. -msgid "sampler" +#: js/utils/musicutils.js:1176 +#.TRANS: musical temperament +msgid "meantone" msgstr "" -#: js/WidgetBlocks.js:329 -#: js/WidgetBlocks.js:334 -#: js/IntervalsBlocks.js:928 -#: js/VolumeBlocks.js:411 -#: js/ToneBlocks.js:946 -#: js/VolumeActions.js:218 -#: js/musicutils.js:704 -#: js/musicutils.js:755 -#: js/musicutils.js:798 -#: js/musicutils.js:820 -#: js/musicutils.js:1136 -#: js/synthutils.js:118 -#: js/modewidget.js:919 -#.TRANS: customize voice -msgid "custom" +#: js/utils/musicutils.js:1193 +msgid "major 7th" msgstr "" -#: js/WidgetBlocks.js:432 -msgid "The Meter block opens a tool to select strong beats for the meter." +#: js/utils/musicutils.js:1194 +msgid "minor 7th" msgstr "" -#: js/WidgetBlocks.js:473 -msgid "The oscilloscope block opens a tool to visualize waveforms." +#: js/utils/musicutils.js:1195 +msgid "dominant 7th" msgstr "" -#: js/WidgetBlocks.js:478 -msgid "oscilloscope" +#: js/utils/musicutils.js:1196 +msgid "minor-major 7th" msgstr "" -#: js/WidgetBlocks.js:530 -msgid "The Custom mode block opens a tool to explore musical mode (the spacing of the notes in a scale)." +#: js/utils/musicutils.js:1197 +msgid "fully-diminished 7th" msgstr "" -#: js/WidgetBlocks.js:536 -#.TRANS: musical mode is the pattern of half-steps in an octave, e.g., Major or Minor modes -msgid "custom mode" +#: js/utils/musicutils.js:1198 +msgid "half-diminished 7th" msgstr "" -#: js/WidgetBlocks.js:570 -msgid "The Tempo block opens a metronome to visualize the beat." +#: js/utils/musicutils.js:1557 +#: js/utils/musicutils.js:1569 +msgid "Equal (12EDO)" msgstr "" -#: js/WidgetBlocks.js:617 -msgid "The Arpeggio Widget is used to compose chord sequences." +#: js/utils/musicutils.js:1558 +#: js/utils/musicutils.js:1570 +msgid "5-limit Just Intonation" msgstr "" -#: js/WidgetBlocks.js:623 -#: js/IntervalsBlocks.js:683 -msgid "arpeggio" +#: js/utils/musicutils.js:1559 +#: js/utils/musicutils.js:1571 +msgid "Pythagorean (3-limit JI)" msgstr "" -#: js/WidgetBlocks.js:677 -msgid "The Pitch drum matrix is used to map pitches to drum sounds." +#: js/utils/musicutils.js:1560 +#: js/utils/musicutils.js:1561 +#: js/utils/musicutils.js:1572 +#: js/utils/musicutils.js:1573 +msgid "Meantone" msgstr "" -#: js/WidgetBlocks.js:682 -#.TRANS: makes a mapping between pitches and drum sounds -msgid "pitch-drum mapper" +#: js/utils/musicutils.js:1574 +msgid "Custom" msgstr "" -#: js/WidgetBlocks.js:724 -msgid "You must have at least one pitch block and one drum block in the matrix." +#: js/utils/musicutils.js:5387 +#: js/utils/musicutils.js:5430 +msgid "current" msgstr "" -#: js/WidgetBlocks.js:746 -msgid "The Pitch slider tool to is used to generate pitches at selected frequencies." +#: js/utils/musicutils.js:5390 +#: js/utils/musicutils.js:5421 +msgid "next" msgstr "" -#: js/WidgetBlocks.js:751 -#.TRANS: widget to generate pitches using a slider -msgid "pitch slider" +#: js/utils/musicutils.js:5393 +#: js/utils/musicutils.js:5426 +msgid "previous" msgstr "" -#: js/WidgetBlocks.js:788 -msgid "chromatic keyboard" +#: js/utils/synthutils.js:120 +#.TRANS: simple monotone synthesizer +msgid "simple-2" msgstr "" -#: js/WidgetBlocks.js:815 -#: js/WidgetBlocks.js:874 -#.TRANS: widget to generate pitches using a slider -msgid "music keyboard" +#: js/utils/synthutils.js:122 +#.TRANS: simple monotone synthesizer +msgid "simple-3" msgstr "" -#: js/WidgetBlocks.js:859 -#: js/WidgetBlocks.js:866 -msgid "The Music keyboard block opens a piano keyboard that can be used to create notes." +#: js/utils/synthutils.js:124 +#.TRANS: simple monotone synthesizer +msgid "simple-4" msgstr "" -#: js/WidgetBlocks.js:910 -msgid "The Pitch staircase tool to is used to generate pitches from a given ratio." +#: js/utils/synthutils.js:162 +#.TRANS: musical instrument +msgid "taiko" msgstr "" -#: js/WidgetBlocks.js:917 -#.TRANS: generate a progressive sequence of pitches -msgid "pitch staircase" +#: js/blocks/ActionBlocks.js:58 +msgid "The Return block will return a value from an action." msgstr "" -#: js/WidgetBlocks.js:982 -msgid "The Rhythm Maker block opens a tool to create drum machines." +#: js/blocks/ActionBlocks.js:75 +msgid "return" msgstr "" -#: js/WidgetBlocks.js:1036 -msgid "G major scale" +#: js/blocks/ActionBlocks.js:128 +msgid "The Return to URL block will return a value to a webpage." msgstr "" -#: js/WidgetBlocks.js:1064 -msgid "C major scale" +#: js/blocks/ActionBlocks.js:145 +msgid "return to URL" msgstr "" -#: js/WidgetBlocks.js:1097 -msgid "The Phrase Maker block opens a tool to create musical phrases." +#: js/blocks/ActionBlocks.js:233 +#: js/blocks/ActionBlocks.js:290 +#: js/blocks/ActionBlocks.js:501 +#: js/blocks/ActionBlocks.js:688 +msgid "The Calculate block returns a value calculated by an action." msgstr "" -#: js/WidgetBlocks.js:1104 -#.TRANS: assigns pitch to a sequence of beats to generate a melody -msgid "phrase maker" +#: js/blocks/ActionBlocks.js:251 +#: js/blocks/ActionBlocks.js:517 +#: js/blocks/ActionBlocks.js:707 +msgid "calculate" msgstr "" -#: js/WidgetBlocks.js:1168 -msgid "You must have at least one pitch block and one rhythm block in the matrix." +#: js/blocks/ActionBlocks.js:376 +#: js/blocks/ActionBlocks.js:593 +#: js/blocks/ActionBlocks.js:942 +#: js/blocks/ActionBlocks.js:1389 +#.TRANS: do is the do something or take an action. +msgid "The Do block is used to initiate an action." msgstr "" -#: js/WidgetBlocks.js:1220 -msgid "The Status block opens a tool for inspecting the status of Music Blocks as it is running." +#: js/blocks/ActionBlocks.js:390 +#: js/blocks/ActionBlocks.js:610 +#: js/blocks/ActionBlocks.js:959 +#: js/blocks/ActionBlocks.js:1048 +#: js/blocks/MeterBlocks.js:769 +msgid "do1" msgstr "" -#: js/IntervalsBlocks.js:45 -msgid "set temperament" +#: js/blocks/ActionBlocks.js:390 +#: js/blocks/ActionBlocks.js:610 +#: js/blocks/ActionBlocks.js:959 +#: js/blocks/ActionBlocks.js:1048 +#: js/blocks/FlowBlocks.js:742 +#: js/blocks/FlowBlocks.js:822 +#: js/blocks/MeterBlocks.js:769 +msgid "do" msgstr "" -#: js/IntervalsBlocks.js:63 -#: js/MediaBlocks.js:746 -#: js/PitchBlocks.js:657 -#: js/PitchBlocks.js:933 -#: js/PitchBlocks.js:972 -#: js/PitchBlocks.js:1005 -#: js/PitchBlocks.js:1166 -#: js/PitchBlocks.js:1679 -#: js/PitchBlocks.js:1720 -#: js/PitchBlocks.js:1827 -#: js/ToneBlocks.js:1025 -#.TRANS: adjusts the shift up or down by one octave (twelve half-steps in the interval between two notes, one having twice or half the frequency in Hz of the other.) -msgid "octave" +#: js/blocks/ActionBlocks.js:791 +#: js/blocks/ActionBlocks.js:865 +msgid "The Arg block contains the value of an argument passed to an action." msgstr "" -#: js/IntervalsBlocks.js:99 -msgid "The Temperament name block is used to select a tuning method." +#: js/blocks/ActionBlocks.js:806 +#: js/blocks/ActionBlocks.js:878 +msgid "arg" msgstr "" -#: js/IntervalsBlocks.js:161 -msgid "doubly" +#: js/blocks/ActionBlocks.js:836 +#: js/blocks/ActionBlocks.js:900 +#: js/blocks/ActionBlocks.js:908 +msgid "Invalid argument" msgstr "" -#: js/IntervalsBlocks.js:166 -msgid "The Doubly block will double the size of an interval." +#: js/blocks/ActionBlocks.js:944 +msgid "In the example, it is used with the One of block to choose a random phase." msgstr "" -#: js/IntervalsBlocks.js:262 -msgid "interval number" +#: js/blocks/ActionBlocks.js:1019 +#: js/blocks/ActionBlocks.js:1026 +msgid "The Listen block is used to listen for an event such as a mouse click." msgstr "" -#: js/IntervalsBlocks.js:330 -#.TRANS: measure the distance between two pitches in semi-tones -msgid "semi-tone interval measure" +#: js/blocks/ActionBlocks.js:1028 +msgid "When the event happens, an action is taken." msgstr "" -#: js/IntervalsBlocks.js:397 -#: js/IntervalsBlocks.js:513 -msgid "You must use two pitch blocks when measuring an interval." +#: js/blocks/ActionBlocks.js:1045 +msgid "on" msgstr "" -#: js/IntervalsBlocks.js:439 -msgid "The Scalar interval block measures the distance between two notes in the current key and mode." +#: js/blocks/ActionBlocks.js:1048 +#: js/blocks/ActionBlocks.js:1049 +#: js/blocks/ActionBlocks.js:1153 +msgid "event" msgstr "" -#: js/IntervalsBlocks.js:445 -#.TRANS: measure the distance between two pitches in steps of musical scale -msgid "scalar interval measure" +#: js/blocks/ActionBlocks.js:1133 +msgid "The Broadcast block is used to trigger an event." msgstr "" -#: js/IntervalsBlocks.js:592 -#: js/musicutils.js:637 -#: js/musicutils.js:908 -#.TRANS: perfect is a music term related to intervals -msgid "perfect" +#: js/blocks/ActionBlocks.js:1151 +msgid "broadcast" msgstr "" -#: js/IntervalsBlocks.js:621 -msgid "In the figure, we add sol# to sol." +#: js/blocks/ActionBlocks.js:1208 +msgid "Each Start block is a separate voice." msgstr "" -#: js/IntervalsBlocks.js:627 -#: js/OrnamentBlocks.js:220 -#.TRANS: calculate a relative step between notes based on semi-tones -msgid "semi-tone interval" +#: js/blocks/ActionBlocks.js:1304 +msgid "It is often used for storing a phrase of music that is repeated." msgstr "" -#: js/IntervalsBlocks.js:676 -msgid "The output of the example is: do, mi, sol, sol, ti, mi" +#: js/blocks/ActionBlocks.js:1495 +msgid "define temperament" msgstr "" -#: js/IntervalsBlocks.js:735 -msgid "The Chord block calculates common chords." +#: js/blocks/BooleanBlocks.js:44 +msgid "The Not block is the logical not operator." msgstr "" -#: js/IntervalsBlocks.js:737 -msgid "In the figure, we generate a C-major chord." +#: js/blocks/BooleanBlocks.js:62 +msgid "not" msgstr "" -#: js/IntervalsBlocks.js:742 -msgid "chord" +#: js/blocks/BooleanBlocks.js:134 +msgid "The And block is the logical and operator." msgstr "" -#: js/IntervalsBlocks.js:794 -msgid "The Ratio Interval block calculates an interval based on a ratio." +#: js/blocks/BooleanBlocks.js:152 +msgid "and" msgstr "" -#: js/IntervalsBlocks.js:799 -msgid "ratio interval" +#: js/blocks/BooleanBlocks.js:218 +msgid "The Or block is the logical or operator." msgstr "" -#: js/IntervalsBlocks.js:868 -msgid "In the figure, we add la to sol." +#: js/blocks/BooleanBlocks.js:236 +msgid "or" msgstr "" -#: js/IntervalsBlocks.js:924 -#.TRANS: define a custom mode -msgid "define mode" +#: js/blocks/BooleanBlocks.js:302 +msgid "The XOR block is the logical XOR operator." msgstr "" -#: js/IntervalsBlocks.js:977 -msgid "movable Do" +#: js/blocks/BooleanBlocks.js:320 +msgid "xor" msgstr "" -#: js/IntervalsBlocks.js:1028 -#.TRANS: mode length is the number of notes in the mode, e.g., 7 for major and minor scales; 12 for chromatic scales -msgid "mode length" +#: js/blocks/BooleanBlocks.js:808 +msgid "The Equal block returns True if the two numbers are equal." msgstr "" -#: js/IntervalsBlocks.js:1037 -msgid "The Mode length block is the number of notes in the current scale." +#: js/blocks/BooleanBlocks.js:909 +msgid "The Not-equal-to block returns True if the two numbers are not equal to each other." msgstr "" -#: js/IntervalsBlocks.js:1039 -msgid "Most Western scales have 7 notes." +#: js/blocks/BooleanBlocks.js:1008 +msgid "The Boolean block is used to specify true or false." msgstr "" -#: js/IntervalsBlocks.js:1088 -#.TRANS: the mode in music is 'major', 'minor', etc. -msgid "current mode" +#: js/blocks/BoxesBlocks.js:53 +#: js/blocks/BoxesBlocks.js:59 +msgid "The Add-to block is used to add to the value stored in a box." msgstr "" -#: js/IntervalsBlocks.js:1141 -#.TRANS: the key is a group of pitches with which a music composition is created -msgid "current key" +#: js/blocks/BoxesBlocks.js:61 +msgid "It can also be used with other blocks such as Color and Pen size." msgstr "" -#: js/IntervalsBlocks.js:1193 -#: js/IntervalsBlocks.js:1238 -#.TRANS: set the key and mode, e.g. C Major -msgid "set key" +#: js/blocks/BoxesBlocks.js:73 +msgid "add" msgstr "" -#: js/IntervalsBlocks.js:1247 -#: js/IntervalsBlocks.js:1253 -msgid "The Set key block is used to set the key and mode," +#: js/blocks/BoxesBlocks.js:75 +#: js/widgets/temperament.js:857 +msgid "to" msgstr "" -#: js/IntervalsBlocks.js:1253 -msgid "eg C Major" +#: js/blocks/BoxesBlocks.js:75 +#: js/blocks/BoxesBlocks.js:595 +#: js/blocks/HeapBlocks.js:544 +msgid "value1" msgstr "" -#: js/IntervalsBlocks.js:1266 -#: js/DictBlocks.js:215 -#: js/DictBlocks.js:216 -#: js/DictBlocks.js:289 -#: js/DictBlocks.js:290 -#: js/DictBlocks.js:357 -#: js/DictBlocks.js:430 -#: js/DictBlocks.js:431 -#.TRANS: key, e.g., C in C Major -msgid "key" +#: js/blocks/BoxesBlocks.js:118 +msgid "Block does not support incrementing." msgstr "" -#: js/ActionBlocks.js:58 -msgid "The Return block will return a value from an action." +#: js/blocks/BoxesBlocks.js:152 +msgid "The Add-1-to block adds one to the value stored in a box." msgstr "" -#: js/ActionBlocks.js:75 -msgid "return" +#: js/blocks/BoxesBlocks.js:163 +msgid "add 1 to" msgstr "" -#: js/ActionBlocks.js:128 -msgid "The Return to URL block will return a value to a webpage." +#: js/blocks/BoxesBlocks.js:211 +msgid "The Subtract-1-from block subtracts one from the value stored in a box." msgstr "" -#: js/ActionBlocks.js:145 -msgid "return to URL" +#: js/blocks/BoxesBlocks.js:222 +msgid "subtract 1 from" msgstr "" -#: js/ActionBlocks.js:233 -#: js/ActionBlocks.js:290 -#: js/ActionBlocks.js:501 -#: js/ActionBlocks.js:688 -msgid "The Calculate block returns a value calculated by an action." +#: js/blocks/BoxesBlocks.js:270 +#: js/blocks/BoxesBlocks.js:387 +msgid "The Box block returns the value stored in a box." msgstr "" -#: js/ActionBlocks.js:251 -#: js/ActionBlocks.js:517 -#: js/ActionBlocks.js:707 -msgid "calculate" +#: js/blocks/BoxesBlocks.js:500 +#: js/blocks/BoxesBlocks.js:576 +msgid "The Store in block will store a value in a box." msgstr "" -#: js/ActionBlocks.js:376 -#: js/ActionBlocks.js:593 -#: js/ActionBlocks.js:942 -#: js/ActionBlocks.js:1389 -#.TRANS: do is the do something or take an action. -msgid "The Do block is used to initiate an action." +#: js/blocks/BoxesBlocks.js:595 +#: js/blocks/EnsembleBlocks.js:391 +#: js/blocks/EnsembleBlocks.js:402 +msgid "name1" msgstr "" -#: js/ActionBlocks.js:390 -#: js/ActionBlocks.js:610 -#: js/ActionBlocks.js:959 -#: js/ActionBlocks.js:1048 -#: js/MeterBlocks.js:769 -msgid "do1" +#: js/blocks/BoxesBlocks.js:652 +msgid "The Box2 block returns the value stored in Box2." msgstr "" -#: js/ActionBlocks.js:390 -#: js/ActionBlocks.js:610 -#: js/ActionBlocks.js:959 -#: js/ActionBlocks.js:1048 -#: js/FlowBlocks.js:742 -#: js/FlowBlocks.js:822 -#: js/MeterBlocks.js:769 -msgid "do" +#: js/blocks/BoxesBlocks.js:703 +msgid "The Store in Box2 block is used to store a value in Box2." msgstr "" -#: js/ActionBlocks.js:791 -#: js/ActionBlocks.js:865 -msgid "The Arg block contains the value of an argument passed to an action." +#: js/blocks/BoxesBlocks.js:715 +msgid "store in box2" msgstr "" -#: js/ActionBlocks.js:806 -#: js/ActionBlocks.js:878 -msgid "arg" +#: js/blocks/BoxesBlocks.js:761 +msgid "The Box1 block returns the value stored in Box1." msgstr "" -#: js/ActionBlocks.js:836 -#: js/ActionBlocks.js:900 -#: js/ActionBlocks.js:908 -msgid "Invalid argument" +#: js/blocks/BoxesBlocks.js:812 +msgid "The Store in Box1 block is used to store a value in Box1." msgstr "" -#: js/ActionBlocks.js:944 -msgid "In the example, it is used with the One of block to choose a random phase." +#: js/blocks/BoxesBlocks.js:826 +msgid "store in box1" msgstr "" -#: js/ActionBlocks.js:1019 -#: js/ActionBlocks.js:1026 -msgid "The Listen block is used to listen for an event such as a mouse click." +#: js/blocks/DictBlocks.js:77 +msgid "show dictionary" msgstr "" -#: js/ActionBlocks.js:1028 -msgid "When the event happens, an action is taken." +#: js/blocks/DictBlocks.js:80 +#: js/blocks/DictBlocks.js:145 +#: js/blocks/DictBlocks.js:216 +#: js/blocks/DictBlocks.js:290 +#: js/blocks/ProgramBlocks.js:396 +#: js/blocks/ProgramBlocks.js:501 +#: js/blocks/ProgramBlocks.js:664 +msgid "My Dictionary" msgstr "" -#: js/ActionBlocks.js:1045 -msgid "on" +#: js/blocks/DictBlocks.js:129 +msgid "The Dictionary block returns a dictionary." msgstr "" -#: js/ActionBlocks.js:1048 -#: js/ActionBlocks.js:1049 -#: js/ActionBlocks.js:1153 -msgid "event" +#: js/blocks/DictBlocks.js:197 +#: js/blocks/DictBlocks.js:339 +msgid "The Get-dict block returns a value in the dictionary for a specified key." msgstr "" -#: js/ActionBlocks.js:1133 -msgid "The Broadcast block is used to trigger an event." +#: js/blocks/DictBlocks.js:212 +#: js/blocks/DictBlocks.js:354 +#.TRANS: retrieve a value from the dictionary with a given key +msgid "get value" msgstr "" -#: js/ActionBlocks.js:1151 -msgid "broadcast" +#: js/blocks/DictBlocks.js:215 +#: js/blocks/DictBlocks.js:216 +#: js/blocks/DictBlocks.js:289 +#: js/blocks/DictBlocks.js:290 +#: js/blocks/DictBlocks.js:357 +#: js/blocks/DictBlocks.js:430 +#: js/blocks/DictBlocks.js:431 +msgid "key2" msgstr "" -#: js/ActionBlocks.js:1208 -msgid "Each Start block is a separate voice." +#: js/blocks/DictBlocks.js:215 +#: js/blocks/DictBlocks.js:216 +#: js/blocks/DictBlocks.js:289 +#: js/blocks/DictBlocks.js:290 +#: js/blocks/DictBlocks.js:357 +#: js/blocks/DictBlocks.js:430 +#: js/blocks/DictBlocks.js:431 +#: js/blocks/IntervalsBlocks.js:1462 +#.TRANS: key, e.g., C in C Major +msgid "key" msgstr "" -#: js/ActionBlocks.js:1304 -msgid "It is often used for storing a phrase of music that is repeated." +#: js/blocks/DictBlocks.js:271 +#: js/blocks/DictBlocks.js:411 +msgid "The Set-dict block sets a value in the dictionary for a specified key." msgstr "" -#: js/ActionBlocks.js:1495 -msgid "define temperament" +#: js/blocks/DictBlocks.js:286 +#: js/blocks/DictBlocks.js:427 +#.TRANS: set a value in the dictionary for a given key +msgid "set value" msgstr "" -#: js/EnsembleBlocks.js:66 +#: js/blocks/EnsembleBlocks.js:66 msgid "mouse index heap" msgstr "" -#: js/EnsembleBlocks.js:68 +#: js/blocks/EnsembleBlocks.js:68 msgid "The Mouse index heap block returns a value in the heap at a specified location for a specified mouse." msgstr "" -#: js/EnsembleBlocks.js:77 -#: js/EnsembleBlocks.js:1080 +#: js/blocks/EnsembleBlocks.js:77 +#: js/blocks/EnsembleBlocks.js:1080 msgid "mouse name" msgstr "" -#: js/EnsembleBlocks.js:77 -#: js/EnsembleBlocks.js:92 -#: js/HeapBlocks.js:544 +#: js/blocks/EnsembleBlocks.js:77 +#: js/blocks/EnsembleBlocks.js:92 +#: js/blocks/HeapBlocks.js:544 #.TRANS: value1 is a numeric value (JAPANESE ONLY) msgid "index" msgstr "" -#: js/EnsembleBlocks.js:80 +#: js/blocks/EnsembleBlocks.js:80 msgid "turtle index heap" msgstr "" -#: js/EnsembleBlocks.js:82 +#: js/blocks/EnsembleBlocks.js:82 msgid "The Turtle index heap block returns a value in the heap at a specified location for a specified turtle." msgstr "" -#: js/EnsembleBlocks.js:90 -#: js/EnsembleBlocks.js:167 -#: js/EnsembleBlocks.js:230 -#: js/EnsembleBlocks.js:316 -#: js/EnsembleBlocks.js:362 -#: js/EnsembleBlocks.js:400 -#: js/EnsembleBlocks.js:454 -#: js/EnsembleBlocks.js:504 -#: js/EnsembleBlocks.js:550 -#: js/EnsembleBlocks.js:597 -#: js/EnsembleBlocks.js:651 -#: js/EnsembleBlocks.js:763 -#: js/EnsembleBlocks.js:854 -#: js/EnsembleBlocks.js:915 -#: js/EnsembleBlocks.js:955 -#: js/EnsembleBlocks.js:1219 -#: js/EnsembleBlocks.js:1293 +#: js/blocks/EnsembleBlocks.js:90 +#: js/blocks/EnsembleBlocks.js:167 +#: js/blocks/EnsembleBlocks.js:230 +#: js/blocks/EnsembleBlocks.js:316 +#: js/blocks/EnsembleBlocks.js:362 +#: js/blocks/EnsembleBlocks.js:400 +#: js/blocks/EnsembleBlocks.js:454 +#: js/blocks/EnsembleBlocks.js:504 +#: js/blocks/EnsembleBlocks.js:550 +#: js/blocks/EnsembleBlocks.js:597 +#: js/blocks/EnsembleBlocks.js:651 +#: js/blocks/EnsembleBlocks.js:763 +#: js/blocks/EnsembleBlocks.js:854 +#: js/blocks/EnsembleBlocks.js:915 +#: js/blocks/EnsembleBlocks.js:955 +#: js/blocks/EnsembleBlocks.js:1219 +#: js/blocks/EnsembleBlocks.js:1293 #.TRANS: Yertle is the name of a turtle. msgid "Yertle" msgstr "" -#: js/EnsembleBlocks.js:92 -#: js/EnsembleBlocks.js:1089 +#: js/blocks/EnsembleBlocks.js:92 +#: js/blocks/EnsembleBlocks.js:1089 msgid "turtle name" msgstr "" -#: js/EnsembleBlocks.js:122 -#: js/EnsembleBlocks.js:1197 -#: js/HeapBlocks.js:474 -#: js/HeapBlocks.js:572 +#: js/blocks/EnsembleBlocks.js:122 +#: js/blocks/EnsembleBlocks.js:1197 +#: js/blocks/HeapBlocks.js:474 +#: js/blocks/HeapBlocks.js:572 msgid "Index must be > 0." msgstr "" -#: js/EnsembleBlocks.js:127 -#: js/HeapBlocks.js:479 -#: js/HeapBlocks.js:577 +#: js/blocks/EnsembleBlocks.js:127 +#: js/blocks/HeapBlocks.js:479 +#: js/blocks/HeapBlocks.js:577 msgid "Maximum heap size is 1000." msgstr "" -#: js/EnsembleBlocks.js:145 +#: js/blocks/EnsembleBlocks.js:145 msgid "stop mouse" msgstr "" -#: js/EnsembleBlocks.js:147 +#: js/blocks/EnsembleBlocks.js:147 msgid "The Stop mouse block stops the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:158 +#: js/blocks/EnsembleBlocks.js:158 msgid "stop turtle" msgstr "" -#: js/EnsembleBlocks.js:160 +#: js/blocks/EnsembleBlocks.js:160 msgid "The Stop turtle block stops the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:184 -#: js/EnsembleBlocks.js:247 -#: js/EnsembleBlocks.js:413 -#: js/EnsembleBlocks.js:468 -#: js/EnsembleBlocks.js:706 -#: js/EnsembleBlocks.js:808 -#: js/EnsembleBlocks.js:870 -#: js/EnsembleBlocks.js:1190 -#: js/EnsembleBlocks.js:1253 +#: js/blocks/EnsembleBlocks.js:184 +#: js/blocks/EnsembleBlocks.js:247 +#: js/blocks/EnsembleBlocks.js:413 +#: js/blocks/EnsembleBlocks.js:468 +#: js/blocks/EnsembleBlocks.js:706 +#: js/blocks/EnsembleBlocks.js:808 +#: js/blocks/EnsembleBlocks.js:870 +#: js/blocks/EnsembleBlocks.js:1190 +#: js/blocks/EnsembleBlocks.js:1253 msgid "Cannot find mouse" msgstr "" -#: js/EnsembleBlocks.js:186 -#: js/EnsembleBlocks.js:249 -#: js/EnsembleBlocks.js:415 -#: js/EnsembleBlocks.js:470 -#: js/EnsembleBlocks.js:708 -#: js/EnsembleBlocks.js:810 -#: js/EnsembleBlocks.js:872 -#: js/EnsembleBlocks.js:1192 -#: js/EnsembleBlocks.js:1255 +#: js/blocks/EnsembleBlocks.js:186 +#: js/blocks/EnsembleBlocks.js:249 +#: js/blocks/EnsembleBlocks.js:415 +#: js/blocks/EnsembleBlocks.js:470 +#: js/blocks/EnsembleBlocks.js:708 +#: js/blocks/EnsembleBlocks.js:810 +#: js/blocks/EnsembleBlocks.js:872 +#: js/blocks/EnsembleBlocks.js:1192 +#: js/blocks/EnsembleBlocks.js:1255 msgid "Cannot find turtle" msgstr "" -#: js/EnsembleBlocks.js:206 +#: js/blocks/EnsembleBlocks.js:206 msgid "start mouse" msgstr "" -#: js/EnsembleBlocks.js:209 +#: js/blocks/EnsembleBlocks.js:209 msgid "The Start mouse block starts the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:220 +#: js/blocks/EnsembleBlocks.js:220 msgid "start turtle" msgstr "" -#: js/EnsembleBlocks.js:223 +#: js/blocks/EnsembleBlocks.js:223 msgid "The Start turtle block starts the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:256 +#: js/blocks/EnsembleBlocks.js:256 msgid "Mouse is already running." msgstr "" -#: js/EnsembleBlocks.js:258 +#: js/blocks/EnsembleBlocks.js:258 msgid "Turtle is already running." msgstr "" -#: js/EnsembleBlocks.js:282 +#: js/blocks/EnsembleBlocks.js:282 msgid "Cannot find start block" msgstr "" -#: js/EnsembleBlocks.js:292 +#: js/blocks/EnsembleBlocks.js:292 #.TRANS: pen color for this mouse msgid "mouse color" msgstr "" -#: js/EnsembleBlocks.js:294 +#: js/blocks/EnsembleBlocks.js:294 msgid "The Mouse color block returns the pen color of the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:306 +#: js/blocks/EnsembleBlocks.js:306 #.TRANS: pen color for this turtle msgid "turtle color" msgstr "" -#: js/EnsembleBlocks.js:308 +#: js/blocks/EnsembleBlocks.js:308 msgid "The Turtle color block returns the pen color of the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:338 +#: js/blocks/EnsembleBlocks.js:338 #.TRANS: heading (compass direction) for this mouse msgid "mouse heading" msgstr "" -#: js/EnsembleBlocks.js:340 +#: js/blocks/EnsembleBlocks.js:340 msgid "The Mouse heading block returns the heading of the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:352 +#: js/blocks/EnsembleBlocks.js:352 #.TRANS: heading (compass direction) for this turtle msgid "turtle heading" msgstr "" -#: js/EnsembleBlocks.js:354 +#: js/blocks/EnsembleBlocks.js:354 msgid "The Turtle heading block returns the heading of the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:384 -#: js/EnsembleBlocks.js:439 +#: js/blocks/EnsembleBlocks.js:384 +#: js/blocks/EnsembleBlocks.js:439 #.TRANS: set xy position for this mouse msgid "set mouse" msgstr "" -#: js/EnsembleBlocks.js:391 -#: js/EnsembleBlocks.js:402 -#: js/BoxesBlocks.js:595 -msgid "name1" -msgstr "" - -#: js/EnsembleBlocks.js:391 -#: js/EnsembleBlocks.js:402 -#: js/ProgramBlocks.js:881 -#: js/GraphicsBlocks.js:235 -#: js/GraphicsBlocks.js:313 -#: js/GraphicsBlocks.js:436 -#: js/GraphicsBlocks.js:487 -#: js/GraphicsBlocks.js:534 -#: js/GraphicsBlocks.js:750 +#: js/blocks/EnsembleBlocks.js:391 +#: js/blocks/EnsembleBlocks.js:402 +#: js/blocks/GraphicsBlocks.js:235 +#: js/blocks/GraphicsBlocks.js:313 +#: js/blocks/GraphicsBlocks.js:436 +#: js/blocks/GraphicsBlocks.js:487 +#: js/blocks/GraphicsBlocks.js:534 +#: js/blocks/GraphicsBlocks.js:750 +#: js/blocks/ProgramBlocks.js:881 msgid "x" msgstr "" -#: js/EnsembleBlocks.js:391 -#: js/EnsembleBlocks.js:402 -#: js/ProgramBlocks.js:881 -#: js/GraphicsBlocks.js:149 -#: js/GraphicsBlocks.js:313 -#: js/GraphicsBlocks.js:436 -#: js/GraphicsBlocks.js:487 -#: js/GraphicsBlocks.js:534 -#: js/GraphicsBlocks.js:750 +#: js/blocks/EnsembleBlocks.js:391 +#: js/blocks/EnsembleBlocks.js:402 +#: js/blocks/GraphicsBlocks.js:149 +#: js/blocks/GraphicsBlocks.js:313 +#: js/blocks/GraphicsBlocks.js:436 +#: js/blocks/GraphicsBlocks.js:487 +#: js/blocks/GraphicsBlocks.js:534 +#: js/blocks/GraphicsBlocks.js:750 +#: js/blocks/ProgramBlocks.js:881 msgid "y" msgstr "" -#: js/EnsembleBlocks.js:395 -#: js/EnsembleBlocks.js:452 +#: js/blocks/EnsembleBlocks.js:395 +#: js/blocks/EnsembleBlocks.js:452 #.TRANS: set xy position for this turtle msgid "set turtle" msgstr "" -#: js/EnsembleBlocks.js:433 +#: js/blocks/EnsembleBlocks.js:433 msgid "The Set mouse block sends a stack of blocks to be run by the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:446 +#: js/blocks/EnsembleBlocks.js:446 msgid "The Set turtle block sends a stack of blocks to be run by the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:480 +#: js/blocks/EnsembleBlocks.js:480 #.TRANS: y position for this mouse msgid "mouse y" msgstr "" -#: js/EnsembleBlocks.js:482 +#: js/blocks/EnsembleBlocks.js:482 msgid "The Y mouse block returns the Y position of the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:494 +#: js/blocks/EnsembleBlocks.js:494 #.TRANS: y position for this turtle msgid "turtle y" msgstr "" -#: js/EnsembleBlocks.js:496 +#: js/blocks/EnsembleBlocks.js:496 msgid "The Y turtle block returns the Y position of the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:526 +#: js/blocks/EnsembleBlocks.js:526 #.TRANS: x position for this mouse msgid "mouse x" msgstr "" -#: js/EnsembleBlocks.js:528 +#: js/blocks/EnsembleBlocks.js:528 msgid "The X mouse block returns the X position of the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:540 +#: js/blocks/EnsembleBlocks.js:540 #.TRANS: x position for this turtle msgid "turtle x" msgstr "" -#: js/EnsembleBlocks.js:542 +#: js/blocks/EnsembleBlocks.js:542 msgid "The X turtle block returns the X position of the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:573 +#: js/blocks/EnsembleBlocks.js:573 #.TRANS: notes played by this mouse msgid "mouse notes played" msgstr "" -#: js/EnsembleBlocks.js:575 +#: js/blocks/EnsembleBlocks.js:575 msgid "The Mouse elapse notes block returns the number of notes played by the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:587 +#: js/blocks/EnsembleBlocks.js:587 #.TRANS: notes played by this turtle msgid "turtle notes played" msgstr "" -#: js/EnsembleBlocks.js:589 +#: js/blocks/EnsembleBlocks.js:589 msgid "The Turtle elapse notes block returns the number of notes played by the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:627 +#: js/blocks/EnsembleBlocks.js:627 #.TRANS: convert current note for this turtle to piano key (1-88) msgid "mouse pitch number" msgstr "" -#: js/EnsembleBlocks.js:629 +#: js/blocks/EnsembleBlocks.js:629 msgid "The Mouse pitch block returns the current pitch number being played by the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:641 +#: js/blocks/EnsembleBlocks.js:641 #.TRANS: convert current note for this turtle to piano key (1-88) msgid "turtle pitch number" msgstr "" -#: js/EnsembleBlocks.js:643 -msgid "The Turrle pitch block returns the current pitch number being played by the specified turtle." +#: js/blocks/EnsembleBlocks.js:643 +msgid "The Turtle pitch block returns the current pitch number being played by the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:747 -#: js/EnsembleBlocks.js:819 +#: js/blocks/EnsembleBlocks.js:747 +#: js/blocks/EnsembleBlocks.js:819 #.TRANS: note value is the duration of the note played by this mouse msgid "mouse note value" msgstr "" -#: js/EnsembleBlocks.js:757 +#: js/blocks/EnsembleBlocks.js:757 #.TRANS: note value is the duration of the note played by this turtle msgid "turtle note value" msgstr "" -#: js/EnsembleBlocks.js:830 +#: js/blocks/EnsembleBlocks.js:830 #.TRANS: sync is short for synchronization msgid "mouse sync" msgstr "" -#: js/EnsembleBlocks.js:832 +#: js/blocks/EnsembleBlocks.js:832 msgid "The Mouse sync block aligns the beat count between mice." msgstr "" -#: js/EnsembleBlocks.js:844 +#: js/blocks/EnsembleBlocks.js:844 #.TRANS: sync is short for synchronization msgid "turtle sync" msgstr "" -#: js/EnsembleBlocks.js:846 +#: js/blocks/EnsembleBlocks.js:846 msgid "The Turtle sync block aligns the beat count between turtles." msgstr "" -#: js/EnsembleBlocks.js:887 +#: js/blocks/EnsembleBlocks.js:887 msgid "The Found mouse block will return true if the specified mouse can be found." msgstr "" -#: js/EnsembleBlocks.js:893 +#: js/blocks/EnsembleBlocks.js:893 msgid "found mouse" msgstr "" -#: js/EnsembleBlocks.js:903 +#: js/blocks/EnsembleBlocks.js:903 msgid "The Found turtle block will return true if the specified turtle can be found." msgstr "" -#: js/EnsembleBlocks.js:909 +#: js/blocks/EnsembleBlocks.js:909 msgid "found turtle" msgstr "" -#: js/EnsembleBlocks.js:932 +#: js/blocks/EnsembleBlocks.js:932 msgid "new mouse" msgstr "" -#: js/EnsembleBlocks.js:934 +#: js/blocks/EnsembleBlocks.js:934 msgid "The New mouse block will create a new mouse." msgstr "" -#: js/EnsembleBlocks.js:945 +#: js/blocks/EnsembleBlocks.js:945 msgid "new turtle" msgstr "" -#: js/EnsembleBlocks.js:947 +#: js/blocks/EnsembleBlocks.js:947 msgid "The New turtle block will create a new turtle." msgstr "" -#: js/EnsembleBlocks.js:1011 +#: js/blocks/EnsembleBlocks.js:1011 msgid "set mouse color" msgstr "" -#: js/EnsembleBlocks.js:1014 +#: js/blocks/EnsembleBlocks.js:1014 msgid "The Set-mouse-color block is used to set the color of a mouse." msgstr "" -#: js/EnsembleBlocks.js:1020 +#: js/blocks/EnsembleBlocks.js:1020 msgid "set turtle color" msgstr "" -#: js/EnsembleBlocks.js:1023 +#: js/blocks/EnsembleBlocks.js:1023 msgid "The Set-turtle-color block is used to set the color of a turtle." msgstr "" -#: js/EnsembleBlocks.js:1083 +#: js/blocks/EnsembleBlocks.js:1083 msgid "The Mouse-name block returns the name of a mouse." msgstr "" -#: js/EnsembleBlocks.js:1092 +#: js/blocks/EnsembleBlocks.js:1092 msgid "The Turtle-name block returns the name of a turtle." msgstr "" -#: js/EnsembleBlocks.js:1115 +#: js/blocks/EnsembleBlocks.js:1115 msgid "mouse count" msgstr "" -#: js/EnsembleBlocks.js:1118 +#: js/blocks/EnsembleBlocks.js:1118 msgid "The Mouse-count block returns the number of mice." msgstr "" -#: js/EnsembleBlocks.js:1124 +#: js/blocks/EnsembleBlocks.js:1124 msgid "turtle count" msgstr "" -#: js/EnsembleBlocks.js:1127 +#: js/blocks/EnsembleBlocks.js:1127 msgid "The Turtle-count block returns the number of turtles." msgstr "" -#: js/EnsembleBlocks.js:1149 +#: js/blocks/EnsembleBlocks.js:1149 msgid "nth mouse name" msgstr "" -#: js/EnsembleBlocks.js:1152 +#: js/blocks/EnsembleBlocks.js:1152 msgid "The Nth-Mouse name block returns the name of the nth mouse." msgstr "" -#: js/EnsembleBlocks.js:1158 +#: js/blocks/EnsembleBlocks.js:1158 msgid "nth turtle name" msgstr "" -#: js/EnsembleBlocks.js:1161 +#: js/blocks/EnsembleBlocks.js:1161 msgid "The Nth-Turtle name block returns the name of the nth turtle." msgstr "" -#: js/EnsembleBlocks.js:1205 -#: js/EnsembleBlocks.js:1265 +#: js/blocks/EnsembleBlocks.js:1205 +#: js/blocks/EnsembleBlocks.js:1265 msgid "set name" msgstr "" -#: js/EnsembleBlocks.js:1214 -#: js/EnsembleBlocks.js:1221 +#: js/blocks/EnsembleBlocks.js:1214 +#: js/blocks/EnsembleBlocks.js:1221 msgid "source" msgstr "" -#: js/EnsembleBlocks.js:1214 -#: js/EnsembleBlocks.js:1221 +#: js/blocks/EnsembleBlocks.js:1214 +#: js/blocks/EnsembleBlocks.js:1221 msgid "target" msgstr "" -#: js/EnsembleBlocks.js:1271 +#: js/blocks/EnsembleBlocks.js:1271 msgid "The Set-name block is used to name a mouse." msgstr "" -#: js/EnsembleBlocks.js:1284 +#: js/blocks/EnsembleBlocks.js:1284 msgid "The Set-name block is used to name a turtle." msgstr "" -#: js/BooleanBlocks.js:44 -msgid "The Not block is the logical not operator." -msgstr "" - -#: js/BooleanBlocks.js:62 -msgid "not" -msgstr "" - -#: js/BooleanBlocks.js:134 -msgid "The And block is the logical and operator." -msgstr "" - -#: js/BooleanBlocks.js:152 -msgid "and" -msgstr "" - -#: js/BooleanBlocks.js:218 -msgid "The Or block is the logical or operator." -msgstr "" - -#: js/BooleanBlocks.js:236 -msgid "or" -msgstr "" - -#: js/BooleanBlocks.js:302 -msgid "The XOR block is the logical XOR operator." -msgstr "" - -#: js/BooleanBlocks.js:320 -msgid "xor" -msgstr "" - -#: js/BooleanBlocks.js:808 -msgid "The Equal block returns True if the two numbers are equal." -msgstr "" - -#: js/BooleanBlocks.js:909 -msgid "The Not-equal-to block returns True if the two numbers are not equal to each other." -msgstr "" - -#: js/BooleanBlocks.js:1008 -msgid "The Boolean block is used to specify true or false." -msgstr "" - -#: js/MediaBlocks.js:35 -#.TRANS: right side of the screen -msgid "right (screen)" -msgstr "" - -#: js/MediaBlocks.js:45 -#: js/MediaBlocks.js:56 -msgid "The Right block returns the position of the right of the canvas." -msgstr "" - -#: js/MediaBlocks.js:97 -#.TRANS: left side of the screen -msgid "left (screen)" -msgstr "" - -#: js/MediaBlocks.js:107 -#: js/MediaBlocks.js:118 -msgid "The Left block returns the position of the left of the canvas." -msgstr "" - -#: js/MediaBlocks.js:158 -msgid "top (screen)" -msgstr "" - -#: js/MediaBlocks.js:168 -#: js/MediaBlocks.js:179 -msgid "The Top block returns the position of the top of the canvas." -msgstr "" - -#: js/MediaBlocks.js:219 -msgid "bottom (screen)" +#: js/blocks/ExtrasBlocks.js:33 +msgid "fraction" msgstr "" -#: js/MediaBlocks.js:229 -#: js/MediaBlocks.js:240 -msgid "The Bottom block returns the position of the bottom of the canvas." +#: js/blocks/ExtrasBlocks.js:36 +msgid "Convert a float to a fraction" msgstr "" -#: js/MediaBlocks.js:282 -msgid "width" +#: js/blocks/ExtrasBlocks.js:93 +msgid "save as ABC" msgstr "" -#: js/MediaBlocks.js:291 -msgid "The Width block returns the width of the canvas." +#: js/blocks/ExtrasBlocks.js:96 +#: js/blocks/ExtrasBlocks.js:132 +#: js/blocks/ExtrasBlocks.js:168 +msgid "title" msgstr "" -#: js/MediaBlocks.js:325 -msgid "height" +#: js/blocks/ExtrasBlocks.js:129 +msgid "save as Lilypond" msgstr "" -#: js/MediaBlocks.js:334 -msgid "The Height block returns the height of the canvas." +#: js/blocks/ExtrasBlocks.js:165 +msgid "save as SVG" msgstr "" -#: js/MediaBlocks.js:369 -#.TRANS: stops playback of an audio recording -msgid "stop play" +#: js/blocks/ExtrasBlocks.js:216 +msgid "no background" msgstr "" -#: js/MediaBlocks.js:404 -#.TRANS: Erases the images and text -msgid "erase media" +#: js/blocks/ExtrasBlocks.js:219 +msgid "The No background block eliminates the background from the saved SVG output." msgstr "" -#: js/MediaBlocks.js:409 -msgid "The Erase Media block erases text and images." +#: js/blocks/ExtrasBlocks.js:247 +msgid "show blocks" msgstr "" -#: js/MediaBlocks.js:439 -#.TRANS: play an audio recording -msgid "play back" +#: js/blocks/ExtrasBlocks.js:249 +msgid "The Show blocks block shows the blocks." msgstr "" -#: js/MediaBlocks.js:487 -msgid "speak" +#: js/blocks/ExtrasBlocks.js:274 +msgid "hide blocks" msgstr "" -#: js/MediaBlocks.js:495 -msgid "The Speak block outputs to the text-to-speech synthesizer" +#: js/blocks/ExtrasBlocks.js:276 +msgid "The Hide blocks block hides the blocks." msgstr "" -#: js/MediaBlocks.js:546 -msgid "camera" +#: js/blocks/ExtrasBlocks.js:305 +#: js/blocks/ExtrasBlocks.js:338 +msgid "The Space block is used to add space between blocks." msgstr "" -#: js/MediaBlocks.js:551 -msgid "The Camera block connects a webcam to the Show block." +#: js/blocks/ExtrasBlocks.js:376 +msgid "wait" msgstr "" -#: js/MediaBlocks.js:574 -msgid "video" +#: js/blocks/ExtrasBlocks.js:379 +msgid "The Wait block pauses the program for a specified number of seconds." msgstr "" -#: js/MediaBlocks.js:579 -msgid "The Video block selects video for use with the Show block." +#: js/blocks/ExtrasBlocks.js:433 +#: plugins/facebook.rtp:30 +msgid "comment" msgstr "" -#: js/MediaBlocks.js:607 -msgid "The Open file block opens a file for use with the Show block." +#: js/blocks/ExtrasBlocks.js:469 +msgid "print" msgstr "" -#: js/MediaBlocks.js:645 -msgid "stop media" +#: js/blocks/ExtrasBlocks.js:476 +msgid "The Print block displays text at the top of the screen." msgstr "" -#: js/MediaBlocks.js:650 -msgid "The Stop media block stops audio or video playback." +#: js/blocks/ExtrasBlocks.js:582 +msgid "display grid" msgstr "" -#: js/MediaBlocks.js:679 -#: js/PitchBlocks.js:1539 -#: js/phrasemaker.js:822 -#: js/musickeyboard.js:1654 -#.TRANS: a measure of frequency: one cycle per second -msgid "hertz" +#: js/blocks/ExtrasBlocks.js:587 +msgid "The Display Grid Block changes the grid type" msgstr "" -#: js/MediaBlocks.js:692 -msgid "duration (ms)" +#: js/blocks/ExtrasBlocks.js:689 +#: js/blocks/ExtrasBlocks.js:708 +#: js/blocks/ExtrasBlocks.js:731 +#: js/blocks/ExtrasBlocks.js:754 +#: js/blocks/ExtrasBlocks.js:772 +#: js/blocks/ExtrasBlocks.js:791 +#: js/blocks/ExtrasBlocks.js:810 +#: js/blocks/ExtrasBlocks.js:829 +msgid "unknown" msgstr "" -#: js/MediaBlocks.js:728 -#.TRANS: translate a note into hertz, e.g., A4 -> 440HZ -msgid "note to frequency" +#: js/blocks/FlowBlocks.js:41 +msgid "The Backward block runs code in reverse order (Musical retrograde)." msgstr "" -#: js/MediaBlocks.js:736 -msgid "The To frequency block converts a pitch name and octave to Hertz." +#: js/blocks/FlowBlocks.js:48 +msgid "backward" msgstr "" -#: js/MediaBlocks.js:746 -#: js/PitchBlocks.js:656 -#: js/PitchBlocks.js:932 -#: js/PitchBlocks.js:1827 -#.TRANS: name2 is name as in name of pitch (JAPANESE ONLY) -msgid "name2" +#: js/blocks/FlowBlocks.js:124 +msgid "The Duplicate block will run each block multiple times." msgstr "" -#: js/MediaBlocks.js:812 -msgid "The Avatar block is used to change the appearance of the mouse." +#: js/blocks/FlowBlocks.js:136 +msgid "duplicate" msgstr "" -#: js/MediaBlocks.js:819 -msgid "The Avatar block is used to change the appearance of the turtle." +#: js/blocks/FlowBlocks.js:334 +msgid "The Default block is used inside of a Switch to define the default action." msgstr "" -#: js/MediaBlocks.js:831 -#: js/MediaBlocks.js:891 -#.TRANS: a media object -msgid "size" +#: js/blocks/FlowBlocks.js:342 +msgid "default" msgstr "" -#: js/MediaBlocks.js:831 -msgid "image" +#: js/blocks/FlowBlocks.js:361 +#: js/blocks/FlowBlocks.js:418 +msgid "The Case Block must be used inside of a Switch Block." msgstr "" -#: js/MediaBlocks.js:880 -msgid "The Show block is used to display text or images on the canvas." +#: js/blocks/FlowBlocks.js:389 +msgid "The Case block is used inside of a Switch to define matches." msgstr "" -#: js/MediaBlocks.js:888 -#.TRANS: show1 is show as in display an image or text on the screen. -msgid "show1" +#: js/blocks/FlowBlocks.js:397 +msgid "case" msgstr "" -#: js/MediaBlocks.js:891 -msgid "obj" +#: js/blocks/FlowBlocks.js:446 +msgid "The Switch block will run the code in the matching Case." msgstr "" -#: js/MediaBlocks.js:938 -msgid "The Media block is used to import an image." +#: js/blocks/FlowBlocks.js:454 +msgid "switch" msgstr "" -#: js/MediaBlocks.js:973 -msgid "The Text block holds a text string." +#: js/blocks/FlowBlocks.js:595 +msgid "The Stop block will stop a loop" msgstr "" -#: js/ProgramBlocks.js:33 -msgid "The Load-heap-from-app block loads the heap from a web page." +#: js/blocks/FlowBlocks.js:597 +msgid "Forever, Repeat, While, or Until." msgstr "" -#: js/ProgramBlocks.js:44 -#.TRANS: load the heap contents from a URL -msgid "load heap from App" +#: js/blocks/FlowBlocks.js:604 +#: js/widgets/timbre.js:417 +#: js/widgets/timbre.js:419 +#: js/widgets/musickeyboard.js:819 +#: js/widgets/musickeyboard.js:821 +#: js/widgets/phrasemaker.js:4202 +#: plugins/rodi.rtp:29 +#: plugins/rodi.rtp:73 +#: plugins/rodi.rtp:413 +msgid "stop" msgstr "" -#: js/ProgramBlocks.js:95 -msgid "Error parsing JSON data:" +#: js/blocks/FlowBlocks.js:653 +msgid "The Waitfor block will wait until the condition is true." msgstr "" -#: js/ProgramBlocks.js:100 -msgid "404: Page not found" +#: js/blocks/FlowBlocks.js:661 +msgid "wait for" msgstr "" -#: js/ProgramBlocks.js:133 -msgid "The Save-heap-to-app block saves the heap to a web page." +#: js/blocks/FlowBlocks.js:732 +msgid "The Until block will repeat until the condition is true." msgstr "" -#: js/ProgramBlocks.js:144 -#.TRANS: save the heap contents to a URL -msgid "save heap to App" +#: js/blocks/FlowBlocks.js:740 +msgid "until" msgstr "" -#: js/ProgramBlocks.js:189 -msgid "Cannot find a valid heap for" +#: js/blocks/FlowBlocks.js:742 +#: js/blocks/FlowBlocks.js:822 +msgid "do2" msgstr "" -#: js/ProgramBlocks.js:206 -msgid "The Load-heap block loads the heap from a file." +#: js/blocks/FlowBlocks.js:812 +msgid "The While block will repeat while the condition is true." msgstr "" -#: js/ProgramBlocks.js:217 -#.TRANS: load the heap from a file -msgid "load heap" +#: js/blocks/FlowBlocks.js:820 +msgid "while" msgstr "" -#: js/ProgramBlocks.js:270 -msgid "The file you selected does not contain a valid heap." +#: js/blocks/FlowBlocks.js:903 +#: js/blocks/FlowBlocks.js:968 +#: js/blocks/FlowBlocks.js:979 +msgid "In this example if the mouse button is pressed a snare drum will play." msgstr "" -#: js/ProgramBlocks.js:275 -msgid "The loadHeap block needs a loadFile block." +#: js/blocks/FlowBlocks.js:925 +#: js/blocks/FlowBlocks.js:988 +msgid "if" msgstr "" -#: js/ProgramBlocks.js:291 -msgid "The Set-heap block loads the heap." +#: js/blocks/FlowBlocks.js:927 +#: js/blocks/FlowBlocks.js:990 +msgid "then" msgstr "" -#: js/ProgramBlocks.js:299 -#: js/HeapBlocks.js:539 -#.TRANS: load the heap from a JSON encoding -msgid "set heap" +#: js/blocks/FlowBlocks.js:927 +msgid "else" msgstr "" -#: js/ProgramBlocks.js:340 -msgid "The block you selected does not contain a valid heap." +#: js/blocks/FlowBlocks.js:1025 +msgid "The Forever block will repeat the contained blocks forever." msgstr "" -#: js/ProgramBlocks.js:343 -msgid "The Set heap block needs a heap." +#: js/blocks/FlowBlocks.js:1037 +msgid "forever" msgstr "" -#: js/ProgramBlocks.js:360 -msgid "The Load-dictionary block loads a dictionary from a file." +#: js/blocks/FlowBlocks.js:1073 +msgid "The Repeat block will repeat the contained blocks." msgstr "" -#: js/ProgramBlocks.js:372 -#.TRANS: load a dictionary from a file -msgid "load dictionary" +#: js/blocks/FlowBlocks.js:1075 +msgid "In this example the note will be played 4 times." msgstr "" -#: js/ProgramBlocks.js:390 -#: js/ProgramBlocks.js:658 -#: js/ToneBlocks.js:1025 -msgid "file" +#: js/blocks/FlowBlocks.js:1083 +msgid "repeat" msgstr "" -#: js/ProgramBlocks.js:396 -#: js/ProgramBlocks.js:501 -#: js/ProgramBlocks.js:664 -#: js/DictBlocks.js:80 -#: js/DictBlocks.js:145 -#: js/DictBlocks.js:216 -#: js/DictBlocks.js:290 -msgid "My Dictionary" +#: js/blocks/FlowBlocks.js:1123 +msgid "duplicate factor" msgstr "" -#: js/ProgramBlocks.js:444 -msgid "The file you selected does not contain a valid dictionary." +#: js/blocks/HeapBlocks.js:49 +msgid "The Heap block returns the heap." msgstr "" -#: js/ProgramBlocks.js:449 -msgid "The load dictionary block needs a load file block." +#: js/blocks/HeapBlocks.js:133 +msgid "show heap" msgstr "" -#: js/ProgramBlocks.js:466 -msgid "The Set-dictionary block loads a dictionary." +#: js/blocks/HeapBlocks.js:181 +msgid "The Heap-length block returns the length of the heap." msgstr "" -#: js/ProgramBlocks.js:477 -#.TRANS: load a dictionary from a JSON -msgid "set dictionary" +#: js/blocks/HeapBlocks.js:195 +msgid "heap length" msgstr "" -#: js/ProgramBlocks.js:546 -msgid "The block you selected does not contain a valid dictionary." +#: js/blocks/HeapBlocks.js:254 +msgid "The Heap-empty? block returns true if the heap is empty." msgstr "" -#: js/ProgramBlocks.js:550 -msgid "The set dictionary block needs a dictionary." +#: js/blocks/HeapBlocks.js:268 +#.TRANS: Is the heap empty? +msgid "heap empty?" msgstr "" -#: js/ProgramBlocks.js:567 -msgid "The Save-heap block saves the heap to a file." +#: js/blocks/HeapBlocks.js:317 +msgid "The Empty-heap block empties the heap." msgstr "" -#: js/ProgramBlocks.js:578 -#.TRANS: save the heap to a file -msgid "save heap" +#: js/blocks/HeapBlocks.js:327 +#: js/blocks/HeapBlocks.js:647 +#.TRANS: empty the heap +msgid "empty heap" msgstr "" -#: js/ProgramBlocks.js:629 -msgid "The Save-dictionary block saves a dictionary to a file." +#: js/blocks/HeapBlocks.js:371 +msgid "The Reverse-heap block reverses the order of the heap." msgstr "" -#: js/ProgramBlocks.js:640 -#.TRANS: save a dictionary to a file -msgid "save dictionary" +#: js/blocks/HeapBlocks.js:384 +#.TRANS: reverse the order of the heap +msgid "reverse heap" msgstr "" -#: js/ProgramBlocks.js:720 -msgid "The Open palette block opens a palette." +#: js/blocks/HeapBlocks.js:428 +msgid "The Index-heap block returns a value in the heap at a specified location." msgstr "" -#: js/ProgramBlocks.js:727 -msgid "open palette" +#: js/blocks/HeapBlocks.js:443 +#.TRANS: retrieve a value from the heap at index position in the heap +msgid "index heap" msgstr "" -#: js/ProgramBlocks.js:785 -msgid "The Delete block block removes a block." +#: js/blocks/HeapBlocks.js:523 +msgid "The Set-heap entry block sets a value in he heap at the specified location." msgstr "" -#: js/ProgramBlocks.js:797 -#.TRANS: Move this block to the trash. -msgid "delete block" +#: js/blocks/HeapBlocks.js:539 +#: js/blocks/ProgramBlocks.js:299 +#.TRANS: load the heap from a JSON encoding +msgid "set heap" msgstr "" -#: js/ProgramBlocks.js:861 -msgid "The Move block block moves a block." +#: js/blocks/HeapBlocks.js:619 +msgid "The Pop block removes the value at the top of the heap." msgstr "" -#: js/ProgramBlocks.js:869 -#.TRANS: Move the position of a block on the screen. -msgid "move block" +#: js/blocks/HeapBlocks.js:633 +#.TRANS: pop a value off the top of the heap +msgid "pop" msgstr "" -#: js/ProgramBlocks.js:881 -#: js/ProgramBlocks.js:1048 -msgid "block number" +#: js/blocks/HeapBlocks.js:680 +msgid "The Push block adds a value to the top of the heap." msgstr "" -#: js/ProgramBlocks.js:935 -#.TRANS: Run program beginning at this block. -msgid "run block" +#: js/blocks/HeapBlocks.js:696 +#.TRANS: push a value onto the top of the heap +msgid "push" msgstr "" -#: js/ProgramBlocks.js:1025 -msgid "The Dock block block connections two blocks." +#: js/blocks/IntervalsBlocks.js:45 +msgid "set temperament" msgstr "" -#: js/ProgramBlocks.js:1036 -#.TRANS: We can connect a block to another block. -msgid "connect blocks" +#: js/blocks/IntervalsBlocks.js:63 +#: js/blocks/MediaBlocks.js:746 +#: js/blocks/PitchBlocks.js:657 +#: js/blocks/PitchBlocks.js:935 +#: js/blocks/PitchBlocks.js:974 +#: js/blocks/PitchBlocks.js:1007 +#: js/blocks/PitchBlocks.js:1194 +#: js/blocks/PitchBlocks.js:1717 +#: js/blocks/PitchBlocks.js:1758 +#: js/blocks/PitchBlocks.js:1866 +#: js/blocks/ToneBlocks.js:1025 +#: js/turtleactions/IntervalsActions.js:114 +#.TRANS: adjusts the shift up or down by one octave (twelve half-steps in the interval between two notes, one having twice or half the frequency in Hz of the other.) +msgid "octave" msgstr "" -#: js/ProgramBlocks.js:1048 -msgid "target block" +#: js/blocks/IntervalsBlocks.js:99 +msgid "The Temperament name block is used to select a tuning method." msgstr "" -#: js/ProgramBlocks.js:1048 -msgid "connection number" +#: js/blocks/IntervalsBlocks.js:161 +msgid "doubly" msgstr "" -#: js/ProgramBlocks.js:1140 -msgid "The Make block block creates a new block." +#: js/blocks/IntervalsBlocks.js:166 +msgid "The Doubly block will double the size of an interval." msgstr "" -#: js/ProgramBlocks.js:1152 -#.TRANS: Create a new block -msgid "make block" +#: js/blocks/IntervalsBlocks.js:262 +msgid "interval number" msgstr "" -#: js/ProgramBlocks.js:1186 -#: js/ProgramBlocks.js:1227 -#: js/RhythmBlocks.js:1128 -#: js/PitchBlocks.js:972 -#: js/PitchBlocks.js:1005 -#: js/temperament.js:340 -#: js/temperament.js:362 -#: js/temperament.js:372 -#: js/temperament.js:484 -#: js/status.js:190 -#: plugins/rodi.rtp:192 -#.TRANS: a musical note consisting of pitch and duration -msgid "note" +#: js/blocks/IntervalsBlocks.js:317 +msgid "current interval" msgstr "" -#: js/ProgramBlocks.js:1285 -msgid "Cannot find block" +#: js/blocks/IntervalsBlocks.js:387 +#.TRANS: measure the distance between two pitches in semi-tones +msgid "semi-tone interval measure" msgstr "" -#: js/ProgramBlocks.js:1304 -#: js/ProgramBlocks.js:1313 -msgid "Warning: block argument type mismatch" +#: js/blocks/IntervalsBlocks.js:454 +#: js/blocks/IntervalsBlocks.js:570 +msgid "You must use two pitch blocks when measuring an interval." msgstr "" -#: js/ProgramBlocks.js:1347 -msgid "The Open project block is used to open a project from a web page." +#: js/blocks/IntervalsBlocks.js:496 +msgid "The Scalar interval block measures the distance between two notes in the current key and mode." msgstr "" -#: js/ProgramBlocks.js:1357 -msgid "open project" +#: js/blocks/IntervalsBlocks.js:502 +#.TRANS: measure the distance between two pitches in steps of musical scale +msgid "scalar interval measure" msgstr "" -#: js/ProgramBlocks.js:1410 -msgid "Please enter a valid URL." +#: js/blocks/IntervalsBlocks.js:678 +msgid "In the figure, we add sol# to sol." msgstr "" -#: js/DrumBlocks.js:59 -msgid "The Noise name block is used to select a noise synthesizer." +#: js/blocks/IntervalsBlocks.js:684 +#: js/blocks/OrnamentBlocks.js:220 +#.TRANS: calculate a relative step between notes based on semi-tones +msgid "semi-tone interval" msgstr "" -#: js/DrumBlocks.js:102 -msgid "The Drum name block is used to select a drum." +#: js/blocks/IntervalsBlocks.js:733 +msgid "The output of the example is: do, mi, sol, sol, ti, mi" msgstr "" -#: js/DrumBlocks.js:146 -msgid "The Effects name block is used to select a sound effect." +#: js/blocks/IntervalsBlocks.js:740 +#: js/blocks/WidgetBlocks.js:768 +msgid "arpeggio" msgstr "" -#: js/DrumBlocks.js:163 -msgid "noise" +#: js/blocks/IntervalsBlocks.js:931 +msgid "The Chord block calculates common chords." msgstr "" -#: js/DrumBlocks.js:177 -msgid "The Play noise block will generate white, pink, or brown noise." +#: js/blocks/IntervalsBlocks.js:933 +msgid "In the figure, we generate a C-major chord." msgstr "" -#: js/DrumBlocks.js:191 -#: js/musicutils.js:752 -#: js/synthutils.js:47 -#.TRANS: white noise synthesizer -msgid "white noise" +#: js/blocks/IntervalsBlocks.js:938 +msgid "chord" msgstr "" -#: js/DrumBlocks.js:326 -msgid "Replace every instance of a pitch with a drum sound." +#: js/blocks/IntervalsBlocks.js:990 +msgid "The Ratio Interval block calculates an interval based on a ratio." msgstr "" -#: js/DrumBlocks.js:337 -#.TRANS: map a pitch to a drum sound -msgid "map pitch to drum" +#: js/blocks/IntervalsBlocks.js:995 +msgid "ratio interval" msgstr "" -#: js/DrumBlocks.js:404 -msgid "In the example above, a kick drum sound will be played instead of sol." +#: js/blocks/IntervalsBlocks.js:1064 +msgid "In the figure, we add la to sol." msgstr "" -#: js/DrumBlocks.js:416 -#.TRANS: set the current drum sound for playback -msgid "set drum" +#: js/blocks/IntervalsBlocks.js:1120 +#.TRANS: define a custom mode +msgid "define mode" msgstr "" -#: js/DrumBlocks.js:460 -msgid "sound effect" +#: js/blocks/IntervalsBlocks.js:1173 +msgid "movable Do" msgstr "" -#: js/DrumBlocks.js:498 -msgid "You can use multiple Drum blocks within a Note block." +#: js/blocks/IntervalsBlocks.js:1224 +#.TRANS: mode length is the number of notes in the mode, e.g., 7 for major and minor scales; 12 for chromatic scales +msgid "mode length" msgstr "" -#: js/RhythmBlocks.js:182 -#: js/RhythmBlocks.js:1086 -#: js/RhythmBlocks.js:1162 -msgid "Note value must be greater than 0." +#: js/blocks/IntervalsBlocks.js:1233 +msgid "The Mode length block is the number of notes in the current scale." msgstr "" -#: js/RhythmBlocks.js:215 -#: js/RhythmBlocks.js:278 -#: js/RhythmBlocks.js:350 -#.TRANS: swing is a rhythmic variation that emphasises the offbeat -msgid "swing" +#: js/blocks/IntervalsBlocks.js:1235 +msgid "Most Western scales have 7 notes." msgstr "" -#: js/RhythmBlocks.js:355 -#.TRANS: the amount to shift to the offbeat note -msgid "swing value" +#: js/blocks/IntervalsBlocks.js:1284 +#.TRANS: the mode in music is 'major', 'minor', etc. +msgid "current mode" msgstr "" -#: js/RhythmBlocks.js:419 -msgid "The Skip notes block will cause notes to be skipped." +#: js/blocks/IntervalsBlocks.js:1337 +#.TRANS: the key is a group of pitches with which a music composition is created +msgid "current key" msgstr "" -#: js/RhythmBlocks.js:427 -#.TRANS: substitute rests on notes being skipped -msgid "skip notes" +#: js/blocks/IntervalsBlocks.js:1389 +#: js/blocks/IntervalsBlocks.js:1434 +#.TRANS: set the key and mode, e.g. C Major +msgid "set key" msgstr "" -#: js/RhythmBlocks.js:489 -#.TRANS: speed up note duration by some factor, e.g. convert 1/4 to 1/8 notes by using a factor of 2 -msgid "multiply note value" +#: js/blocks/IntervalsBlocks.js:1443 +#: js/blocks/IntervalsBlocks.js:1449 +msgid "The Set key block is used to set the key and mode," msgstr "" -#: js/RhythmBlocks.js:542 -msgid "The Tie block works on pairs of notes, combining them into one note." +#: js/blocks/IntervalsBlocks.js:1449 +msgid "eg C Major" msgstr "" -#: js/RhythmBlocks.js:550 -#.TRANS: tie notes together into one longer note -msgid "tie" +#: js/blocks/MediaBlocks.js:35 +#.TRANS: right side of the screen +msgid "right (screen)" msgstr "" -#: js/RhythmBlocks.js:591 -#: js/RhythmBlocks.js:671 -#.TRANS: a dotted note is played for 1.5x its value, e.g., 1/8. --> 3/16 -msgid "dot" +#: js/blocks/MediaBlocks.js:45 +#: js/blocks/MediaBlocks.js:56 +msgid "The Right block returns the position of the right of the canvas." msgstr "" -#: js/RhythmBlocks.js:619 -#: js/RhythmActions.js:221 -msgid "An argument of -1 results in a note value of 0." +#: js/blocks/MediaBlocks.js:97 +#.TRANS: left side of the screen +msgid "left (screen)" msgstr "" -#: js/RhythmBlocks.js:661 -msgid "The Dot block extends the duration of a note by 50%." +#: js/blocks/MediaBlocks.js:107 +#: js/blocks/MediaBlocks.js:118 +msgid "The Left block returns the position of the left of the canvas." msgstr "" -#: js/RhythmBlocks.js:663 -msgid "Eg a dotted quarter note will play for 3/8 (1/4 + 1/8) of a beat." +#: js/blocks/MediaBlocks.js:158 +msgid "top (screen)" msgstr "" -#: js/RhythmBlocks.js:765 -#.TRANS: Japanese only: note value block for drum -msgid "note value drum" +#: js/blocks/MediaBlocks.js:168 +#: js/blocks/MediaBlocks.js:179 +msgid "The Top block returns the position of the top of the canvas." msgstr "" -#: js/RhythmBlocks.js:829 -msgid "392 hertz" +#: js/blocks/MediaBlocks.js:219 +msgid "bottom (screen)" msgstr "" -#: js/RhythmBlocks.js:1119 -msgid "The Note block is a container for one or more Pitch blocks." +#: js/blocks/MediaBlocks.js:229 +#: js/blocks/MediaBlocks.js:240 +msgid "The Bottom block returns the position of the bottom of the canvas." msgstr "" -#: js/RhythmBlocks.js:1121 -msgid "The Note block specifies the duration (note value) of its contents." +#: js/blocks/MediaBlocks.js:282 +msgid "width" msgstr "" -#: js/RhythmBlocks.js:1130 -msgid "value2" +#: js/blocks/MediaBlocks.js:291 +msgid "The Width block returns the width of the canvas." msgstr "" -#: js/RhythmBlocks.js:1200 -msgid "define frequency" +#: js/blocks/MediaBlocks.js:325 +msgid "height" msgstr "" -#: js/RhythmBlocks.js:1218 -#: js/temperament.js:650 -#: js/temperament.js:1421 -msgid "octave space" +#: js/blocks/MediaBlocks.js:334 +msgid "The Height block returns the height of the canvas." msgstr "" -#: js/NumberBlocks.js:28 -msgid "The Int block returns an integer." +#: js/blocks/MediaBlocks.js:369 +#.TRANS: stops playback of an audio recording +msgid "stop play" msgstr "" -#: js/NumberBlocks.js:34 -msgid "int" +#: js/blocks/MediaBlocks.js:404 +#.TRANS: Erases the images and text +msgid "erase media" msgstr "" -#: js/NumberBlocks.js:73 -msgid "The Mod block returns the remainder from a division." +#: js/blocks/MediaBlocks.js:409 +msgid "The Erase Media block erases text and images." msgstr "" -#: js/NumberBlocks.js:79 -msgid "mod" +#: js/blocks/MediaBlocks.js:439 +#.TRANS: play an audio recording +msgid "play back" msgstr "" -#: js/NumberBlocks.js:123 -msgid "The Power block calculates a power function." +#: js/blocks/MediaBlocks.js:487 +msgid "speak" msgstr "" -#: js/NumberBlocks.js:178 -msgid "The Sqrt block returns the square root." +#: js/blocks/MediaBlocks.js:495 +msgid "The Speak block outputs to the text-to-speech synthesizer" msgstr "" -#: js/NumberBlocks.js:184 -msgid "sqrt" +#: js/blocks/MediaBlocks.js:546 +msgid "camera" msgstr "" -#: js/NumberBlocks.js:230 -msgid "The Abs block returns the absolute value." +#: js/blocks/MediaBlocks.js:551 +msgid "The Camera block connects a webcam to the Show block." msgstr "" -#: js/NumberBlocks.js:236 -msgid "abs" +#: js/blocks/MediaBlocks.js:574 +msgid "video" msgstr "" -#: js/NumberBlocks.js:277 -msgid "The Distance block returns the distance between two points. For example, between the mouse and the center of the screen." +#: js/blocks/MediaBlocks.js:579 +msgid "The Video block selects video for use with the Show block." msgstr "" -#: js/NumberBlocks.js:283 -#: plugins/rodi.rtp:310 -msgid "distance" +#: js/blocks/MediaBlocks.js:607 +msgid "The Open file block opens a file for use with the Show block." msgstr "" -#: js/NumberBlocks.js:343 -msgid "The Divide block is used to divide." +#: js/blocks/MediaBlocks.js:645 +msgid "stop media" msgstr "" -#: js/NumberBlocks.js:411 -msgid "The Multiply block is used to multiply." +#: js/blocks/MediaBlocks.js:650 +msgid "The Stop media block stops audio or video playback." msgstr "" -#: js/NumberBlocks.js:554 -msgid "The Minus block is used to subtract." +#: js/blocks/MediaBlocks.js:679 +#: js/blocks/PitchBlocks.js:1577 +#: js/widgets/musickeyboard.js:1936 +#: js/widgets/phrasemaker.js:1037 +#.TRANS: a measure of frequency: one cycle per second +msgid "hertz" msgstr "" -#: js/NumberBlocks.js:647 -msgid "The Plus block is used to add." +#: js/blocks/MediaBlocks.js:692 +#: js/blocks/WidgetBlocks.js:182 +#: js/widgets/temperament.js:506 +#: js/widgets/temperament.js:546 +#: js/widgets/temperament.js:610 +#: js/widgets/temperament.js:618 +#: js/widgets/temperament.js:1505 +#: js/widgets/timbre.js:1842 +msgid "frequency" msgstr "" -#: js/NumberBlocks.js:773 -msgid "The One-of block returns one of two choices." +#: js/blocks/MediaBlocks.js:692 +msgid "duration (ms)" msgstr "" -#: js/NumberBlocks.js:780 -#: js/PitchBlocks.js:616 -msgid "one of" +#: js/blocks/MediaBlocks.js:728 +#.TRANS: translate a note into hertz, e.g., A4 -> 440HZ +msgid "note to frequency" msgstr "" -#: js/NumberBlocks.js:782 -msgid "this" +#: js/blocks/MediaBlocks.js:736 +msgid "The To frequency block converts a pitch name and octave to Hertz." msgstr "" -#: js/NumberBlocks.js:782 -msgid "that" +#: js/blocks/MediaBlocks.js:746 +#: js/blocks/PitchBlocks.js:656 +#: js/blocks/PitchBlocks.js:934 +#: js/blocks/PitchBlocks.js:1866 +#.TRANS: name2 is name as in name of pitch (JAPANESE ONLY) +msgid "name2" msgstr "" -#: js/NumberBlocks.js:837 -msgid "The Random block returns a random number." +#: js/blocks/MediaBlocks.js:812 +msgid "The Avatar block is used to change the appearance of the mouse." msgstr "" -#: js/NumberBlocks.js:844 -msgid "random" +#: js/blocks/MediaBlocks.js:819 +msgid "The Avatar block is used to change the appearance of the turtle." msgstr "" -#: js/NumberBlocks.js:846 -msgid "min" +#: js/blocks/MediaBlocks.js:831 +#: js/blocks/MediaBlocks.js:891 +#.TRANS: a media object +msgid "size" msgstr "" -#: js/NumberBlocks.js:846 -msgid "max" +#: js/blocks/MediaBlocks.js:831 +msgid "image" msgstr "" -#: js/NumberBlocks.js:910 -msgid "The Number block holds a number." +#: js/blocks/MediaBlocks.js:880 +msgid "The Show block is used to display text or images on the canvas." msgstr "" -#: js/BoxesBlocks.js:53 -#: js/BoxesBlocks.js:59 -msgid "The Add-to block is used to add to the value stored in a box." +#: js/blocks/MediaBlocks.js:888 +#.TRANS: show1 is show as in display an image or text on the screen. +msgid "show1" msgstr "" -#: js/BoxesBlocks.js:61 -msgid "It can also be used with other blocks such as Color and Pen size." +#: js/blocks/MediaBlocks.js:891 +msgid "obj" msgstr "" -#: js/BoxesBlocks.js:73 -msgid "add" +#: js/blocks/MediaBlocks.js:938 +msgid "The Media block is used to import an image." msgstr "" -#: js/BoxesBlocks.js:75 -#: js/temperament.js:716 -msgid "to" +#: js/blocks/MediaBlocks.js:973 +msgid "The Text block holds a text string." msgstr "" -#: js/BoxesBlocks.js:75 -#: js/BoxesBlocks.js:595 -#: js/HeapBlocks.js:544 -msgid "value1" +#: js/blocks/MeterBlocks.js:34 +#.TRANS: musical meter (time signature), e.g., 4:4 +msgid "current meter" msgstr "" -#: js/BoxesBlocks.js:118 -msgid "Block does not support incrementing." +#: js/blocks/MeterBlocks.js:85 +#.TRANS: number of beats per minute +msgid "beat factor" msgstr "" -#: js/BoxesBlocks.js:152 -msgid "The Add-1-to block adds one to the value stored in a box." +#: js/blocks/MeterBlocks.js:161 +msgid "The Beats per minute block returns the current beats per minute." msgstr "" -#: js/BoxesBlocks.js:163 -msgid "add 1 to" +#: js/blocks/MeterBlocks.js:169 +#: js/widgets/status.js:152 +#.TRANS: number of beats played per minute +msgid "beats per minute2" msgstr "" -#: js/BoxesBlocks.js:211 -msgid "The Subtract-1-from block subtracts one from the value stored in a box." +#: js/blocks/MeterBlocks.js:169 +#: js/blocks/MeterBlocks.js:1056 +#: js/blocks/MeterBlocks.js:1133 +#: js/blocks/MeterBlocks.js:1211 +#.TRANS: sets tempo by defining a beat and beats per minute +msgid "beats per minute" msgstr "" -#: js/BoxesBlocks.js:222 -msgid "subtract 1 from" +#: js/blocks/MeterBlocks.js:233 +#.TRANS: count of current musical measure in meter +msgid "measure count" msgstr "" -#: js/BoxesBlocks.js:270 -#: js/BoxesBlocks.js:387 -msgid "The Box block returns the value stored in a box." +#: js/blocks/MeterBlocks.js:241 +msgid "The Measure count block returns the current measure." msgstr "" -#: js/BoxesBlocks.js:500 -#: js/BoxesBlocks.js:576 -msgid "The Store in block will store a value in a box." +#: js/blocks/MeterBlocks.js:290 +#.TRANS: count of current beat in the meter +msgid "beat count" msgstr "" -#: js/BoxesBlocks.js:652 -msgid "The Box2 block returns the value stored in Box2." +#: js/blocks/MeterBlocks.js:300 +#: js/blocks/MeterBlocks.js:311 +#: js/blocks/MeterBlocks.js:565 +#: js/blocks/MeterBlocks.js:576 +msgid "The Beat count block is the number of the current beat," msgstr "" -#: js/BoxesBlocks.js:703 -msgid "The Store in Box2 block is used to store a value in Box2." +#: js/blocks/MeterBlocks.js:313 +#: js/blocks/MeterBlocks.js:578 +msgid "eg 1, 2, 3, or 4." msgstr "" -#: js/BoxesBlocks.js:715 -msgid "store in box2" +#: js/blocks/MeterBlocks.js:368 +#.TRANS: count the number of notes +msgid "sum note values" msgstr "" -#: js/BoxesBlocks.js:761 -msgid "The Box1 block returns the value stored in Box1." +#: js/blocks/MeterBlocks.js:376 +#: js/blocks/MeterBlocks.js:440 +msgid "The Note counter block can be used to count the number of contained notes." msgstr "" -#: js/BoxesBlocks.js:812 -msgid "The Store in Box1 block is used to store a value in Box1." +#: js/blocks/MeterBlocks.js:432 +#.TRANS: count the number of notes +msgid "note counter" msgstr "" -#: js/BoxesBlocks.js:826 -msgid "store in box1" +#: js/blocks/MeterBlocks.js:496 +#.TRANS: number of whole notes that have been played +msgid "whole notes played" msgstr "" -#: js/HeapBlocks.js:49 -msgid "The Heap block returns the heap." +#: js/blocks/MeterBlocks.js:505 +msgid "The Whole notes played block returns the total number of whole notes played." msgstr "" -#: js/HeapBlocks.js:133 -msgid "show heap" +#: js/blocks/MeterBlocks.js:555 +#: js/turtleactions/DictActions.js:83 +#.TRANS: number of notes that have been played +msgid "notes played" msgstr "" -#: js/HeapBlocks.js:181 -msgid "The Heap-length block returns the length of the heap." +#: js/blocks/MeterBlocks.js:653 +msgid "The No clock block decouples the notes from the master clock." msgstr "" -#: js/HeapBlocks.js:195 -msgid "heap length" +#: js/blocks/MeterBlocks.js:661 +#.TRANS: don't lock notes to master clock +msgid "no clock" msgstr "" -#: js/HeapBlocks.js:254 -msgid "The Heap-empty? block returns true if the heap is empty." +#: js/blocks/MeterBlocks.js:700 +msgid "on weak beat do" msgstr "" -#: js/HeapBlocks.js:268 -#.TRANS: Is the heap empty? -msgid "heap empty?" +#: js/blocks/MeterBlocks.js:705 +msgid "The On-weak-beat block lets you specify actions to take on weak (off) beats." msgstr "" -#: js/HeapBlocks.js:317 -msgid "The Empty-heap block empties the heap." +#: js/blocks/MeterBlocks.js:750 +msgid "on strong beat" msgstr "" -#: js/HeapBlocks.js:327 -#: js/HeapBlocks.js:647 -#.TRANS: empty the heap -msgid "empty heap" +#: js/blocks/MeterBlocks.js:758 +msgid "The On-strong-beat block lets you specify actions to take on specified beats." msgstr "" -#: js/HeapBlocks.js:371 -msgid "The Reverse-heap block reverses the order of the heap." +#: js/blocks/MeterBlocks.js:769 +msgid "beat" msgstr "" -#: js/HeapBlocks.js:384 -#.TRANS: reverse the order of the heap -msgid "reverse heap" +#: js/blocks/MeterBlocks.js:813 +msgid "on every beat do" msgstr "" -#: js/HeapBlocks.js:428 -msgid "The Index-heap block returns a value in the heap at a specified location." +#: js/blocks/MeterBlocks.js:821 +msgid "The On-every-beat block lets you specify actions to take on every beat." msgstr "" -#: js/HeapBlocks.js:443 -#.TRANS: retrieve a value from the heap at index position in the heap -msgid "index heap" +#: js/blocks/MeterBlocks.js:874 +msgid "on every note do" msgstr "" -#: js/HeapBlocks.js:523 -msgid "The Set-heap entry block sets a value in he heap at the specified location." +#: js/blocks/MeterBlocks.js:882 +msgid "The On-every-note block lets you specify actions to take on every note." msgstr "" -#: js/HeapBlocks.js:619 -msgid "The Pop block removes the value at the top of the heap." +#: js/blocks/MeterBlocks.js:928 +#: js/blocks/MeterBlocks.js:999 +#.TRANS: sets tempo by defining a beat and beats per minute +msgid "master beats per minute" msgstr "" -#: js/HeapBlocks.js:633 -#.TRANS: pop a value off the top of the heap -msgid "pop" +#: js/blocks/MeterBlocks.js:952 +#: js/blocks/MeterBlocks.js:1078 +#: js/blocks/MeterBlocks.js:1135 +msgid "bpm" msgstr "" -#: js/HeapBlocks.js:680 -msgid "The Push block adds a value to the top of the heap." +#: js/blocks/MeterBlocks.js:952 +#: js/blocks/MeterBlocks.js:1078 +#: js/blocks/MeterBlocks.js:1135 +msgid "beat value" msgstr "" -#: js/HeapBlocks.js:696 -#.TRANS: push a value onto the top of the heap -msgid "push" +#: js/blocks/MeterBlocks.js:1024 +#: js/blocks/MeterBlocks.js:1167 +#: js/blocks/MeterBlocks.js:1241 +msgid "Beats per minute must be > 30." msgstr "" -#: js/FlowBlocks.js:41 -msgid "The Backward block runs code in reverse order (Musical retrograde)." +#: js/blocks/MeterBlocks.js:1027 +#: js/blocks/MeterBlocks.js:1170 +#: js/blocks/MeterBlocks.js:1244 +msgid "Maximum beats per minute is 1000." msgstr "" -#: js/FlowBlocks.js:48 -msgid "backward" +#: js/blocks/MeterBlocks.js:1068 +msgid "The Beats per minute block sets the number of 1/4 notes per minute." msgstr "" -#: js/FlowBlocks.js:124 -msgid "The Duplicate block will run each block multiple times." +#: js/blocks/MeterBlocks.js:1279 +#.TRANS: anacrusis +msgid "pickup" msgstr "" -#: js/FlowBlocks.js:136 -msgid "duplicate" +#: js/blocks/MeterBlocks.js:1367 +msgid "number of beats" msgstr "" -#: js/FlowBlocks.js:334 -msgid "The Default block is used inside of a Switch to define the default action." +#: js/blocks/NumberBlocks.js:28 +msgid "The Int block returns an integer." msgstr "" -#: js/FlowBlocks.js:342 -msgid "default" +#: js/blocks/NumberBlocks.js:34 +msgid "int" msgstr "" -#: js/FlowBlocks.js:361 -#: js/FlowBlocks.js:418 -msgid "The Case Block must be used inside of a Switch Block." +#: js/blocks/NumberBlocks.js:73 +msgid "The Mod block returns the remainder from a division." msgstr "" -#: js/FlowBlocks.js:389 -msgid "The Case block is used inside of a Switch to define matches." +#: js/blocks/NumberBlocks.js:79 +msgid "mod" msgstr "" -#: js/FlowBlocks.js:397 -msgid "case" +#: js/blocks/NumberBlocks.js:141 +msgid "The Power block calculates a power function." msgstr "" -#: js/FlowBlocks.js:446 -msgid "The Switch block will run the code in the matching Case." +#: js/blocks/NumberBlocks.js:196 +msgid "The Sqrt block returns the square root." msgstr "" -#: js/FlowBlocks.js:454 -msgid "switch" +#: js/blocks/NumberBlocks.js:202 +msgid "sqrt" msgstr "" -#: js/FlowBlocks.js:595 -msgid "The Stop block will stop a loop" +#: js/blocks/NumberBlocks.js:248 +msgid "The Abs block returns the absolute value." msgstr "" -#: js/FlowBlocks.js:597 -msgid "Forever, Repeat, While, or Until." +#: js/blocks/NumberBlocks.js:254 +msgid "abs" msgstr "" -#: js/FlowBlocks.js:604 -#: js/phrasemaker.js:3799 -#: js/musickeyboard.js:629 -#: js/musickeyboard.js:631 -#: js/timbre.js:417 -#: js/timbre.js:419 -#: plugins/rodi.rtp:29 -#: plugins/rodi.rtp:73 -#: plugins/rodi.rtp:413 -msgid "stop" +#: js/blocks/NumberBlocks.js:295 +msgid "The Distance block returns the distance between two points. For example, between the mouse and the center of the screen." msgstr "" -#: js/FlowBlocks.js:653 -msgid "The Waitfor block will wait until the condition is true." +#: js/blocks/NumberBlocks.js:301 +#: plugins/rodi.rtp:310 +msgid "distance" msgstr "" -#: js/FlowBlocks.js:661 -msgid "wait for" +#: js/blocks/NumberBlocks.js:361 +msgid "The Divide block is used to divide." msgstr "" -#: js/FlowBlocks.js:732 -msgid "The Until block will repeat until the condition is true." +#: js/blocks/NumberBlocks.js:441 +msgid "The Multiply block is used to multiply." msgstr "" -#: js/FlowBlocks.js:740 -msgid "until" +#: js/blocks/NumberBlocks.js:612 +msgid "The Minus block is used to subtract." msgstr "" -#: js/FlowBlocks.js:742 -#: js/FlowBlocks.js:822 -msgid "do2" +#: js/blocks/NumberBlocks.js:723 +msgid "The Plus block is used to add." msgstr "" -#: js/FlowBlocks.js:812 -msgid "The While block will repeat while the condition is true." +#: js/blocks/NumberBlocks.js:849 +msgid "The One-of block returns one of two choices." msgstr "" -#: js/FlowBlocks.js:820 -msgid "while" +#: js/blocks/NumberBlocks.js:856 +#: js/blocks/PitchBlocks.js:616 +msgid "one of" msgstr "" -#: js/FlowBlocks.js:903 -#: js/FlowBlocks.js:968 -#: js/FlowBlocks.js:979 -msgid "In this example if the mouse button is pressed a snare drum will play." +#: js/blocks/NumberBlocks.js:858 +msgid "this" msgstr "" -#: js/FlowBlocks.js:925 -#: js/FlowBlocks.js:988 -msgid "if" +#: js/blocks/NumberBlocks.js:858 +msgid "that" msgstr "" -#: js/FlowBlocks.js:927 -#: js/FlowBlocks.js:990 -msgid "then" +#: js/blocks/NumberBlocks.js:913 +msgid "The Random block returns a random number." msgstr "" -#: js/FlowBlocks.js:927 -msgid "else" +#: js/blocks/NumberBlocks.js:920 +msgid "random" msgstr "" -#: js/FlowBlocks.js:1025 -msgid "The Forever block will repeat the contained blocks forever." +#: js/blocks/NumberBlocks.js:922 +msgid "min" msgstr "" -#: js/FlowBlocks.js:1037 -msgid "forever" +#: js/blocks/NumberBlocks.js:922 +msgid "max" msgstr "" -#: js/FlowBlocks.js:1073 -msgid "The Repeat block will repeat the contained blocks." +#: js/blocks/NumberBlocks.js:986 +msgid "The Number block holds a number." msgstr "" -#: js/FlowBlocks.js:1075 -msgid "In this example the note will be played 4 times." +#: js/blocks/OrnamentBlocks.js:32 +msgid "staccato factor" msgstr "" -#: js/FlowBlocks.js:1083 -msgid "repeat" +#: js/blocks/OrnamentBlocks.js:108 +msgid "slur factor" msgstr "" -#: js/FlowBlocks.js:1123 -msgid "duplicate factor" +#: js/blocks/OrnamentBlocks.js:217 +#: js/blocks/OrnamentBlocks.js:309 +#.TRANS: the neighbor refers to a neighboring note, e.g., D is a neighbor of C +msgid "neighbor" msgstr "" -#: js/PitchBlocks.js:39 -#: js/musicutils.js:722 -#: js/musicutils.js:1117 -#: js/synthutils.js:112 -#.TRANS: square wave -msgid "square" +#: js/blocks/OrnamentBlocks.js:293 +msgid "The Neighbor block rapidly switches between neighboring pitches." msgstr "" -#: js/PitchBlocks.js:62 -#: js/ToneBlocks.js:39 -#: js/musicutils.js:723 -#: js/musicutils.js:1118 -#: js/synthutils.js:116 -#.TRANS: triangle wave -msgid "triangle" +#: js/blocks/OrnamentBlocks.js:364 +msgid "glide" msgstr "" -#: js/PitchBlocks.js:85 -#: js/musicutils.js:721 -#: js/musicutils.js:1116 -#: js/synthutils.js:110 -#.TRANS: sine wave -msgid "sine" +#: js/blocks/OrnamentBlocks.js:479 +#: js/blocks/OrnamentBlocks.js:643 +msgid "slur" msgstr "" -#: js/PitchBlocks.js:108 -#: js/musicutils.js:724 -#: js/musicutils.js:1119 -#: js/synthutils.js:114 -#.TRANS: sawtooth wave -msgid "sawtooth" +#: js/blocks/OrnamentBlocks.js:558 +#: js/blocks/OrnamentBlocks.js:710 +#.TRANS: play each note sharply detached from the others +msgid "staccato" msgstr "" -#: js/PitchBlocks.js:141 -#.TRANS: musical transposition (adjustment of pitch up or down) -msgid "transposition" +#: js/blocks/RhythmBlocks.js:182 +#: js/blocks/RhythmBlocks.js:1086 +#: js/blocks/RhythmBlocks.js:1162 +msgid "Note value must be greater than 0." msgstr "" -#: js/PitchBlocks.js:168 -#.TRANS: step down one note in current musical scale -msgid "scalar step down" +#: js/blocks/RhythmBlocks.js:215 +#: js/blocks/RhythmBlocks.js:278 +#: js/blocks/RhythmBlocks.js:350 +#.TRANS: swing is a rhythmic variation that emphasises the offbeat +msgid "swing" msgstr "" -#: js/PitchBlocks.js:172 -msgid "The Scalar step down block returns the number of semi-tones down to the previous note in the current key and mode." +#: js/blocks/RhythmBlocks.js:355 +#.TRANS: the amount to shift to the offbeat note +msgid "swing value" msgstr "" -#: js/PitchBlocks.js:190 -#.TRANS: step up one note in current musical scale -msgid "scalar step up" +#: js/blocks/RhythmBlocks.js:419 +msgid "The Skip notes block will cause notes to be skipped." msgstr "" -#: js/PitchBlocks.js:194 -msgid "The Scalar step up block returns the number of semi-tones up to the next note in the current key and mode." +#: js/blocks/RhythmBlocks.js:427 +#.TRANS: substitute rests on notes being skipped +msgid "skip notes" msgstr "" -#: js/PitchBlocks.js:212 -#.TRANS: the change measured in half-steps between the current pitch and the previous pitch -msgid "change in pitch" +#: js/blocks/RhythmBlocks.js:489 +#.TRANS: speed up note duration by some factor, e.g. convert 1/4 to 1/8 notes by using a factor of 2 +msgid "multiply note value" msgstr "" -#: js/PitchBlocks.js:216 -msgid "The Change in pitch block is the difference (in half steps) between the current pitch being played and the previous pitch played." +#: js/blocks/RhythmBlocks.js:542 +msgid "The Tie block works on pairs of notes, combining them into one note." msgstr "" -#: js/PitchBlocks.js:243 -#.TRANS: the change measured in scale-steps between the current pitch and the previous pitch -msgid "scalar change in pitch" +#: js/blocks/RhythmBlocks.js:550 +#.TRANS: tie notes together into one longer note +msgid "tie" msgstr "" -#: js/PitchBlocks.js:250 -#: js/PitchBlocks.js:432 -#: js/PitchBlocks.js:1629 -#: js/DictActions.js:89 -#: js/temperament.js:477 -#: js/temperament.js:481 -#: js/temperament.js:714 -#.TRANS: convert current note to piano key (1-88) -#.TRANS: a mapping of pitch to the 88 piano keys -msgid "pitch number" +#: js/blocks/RhythmBlocks.js:591 +#: js/blocks/RhythmBlocks.js:671 +#.TRANS: a dotted note is played for 1.5x its value, e.g., 1/8. --> 3/16 +msgid "dot" msgstr "" -#: js/PitchBlocks.js:256 -msgid "The Pitch number block is the value of the pitch of the note currently being played." +#: js/blocks/RhythmBlocks.js:619 +#: js/turtleactions/RhythmActions.js:221 +msgid "An argument of -1 results in a note value of 0." msgstr "" -#: js/PitchBlocks.js:329 -#: js/PitchBlocks.js:433 -#.TRANS: the current pitch expressed in Hertz -msgid "pitch in hertz" +#: js/blocks/RhythmBlocks.js:661 +msgid "The Dot block extends the duration of a note by 50%." msgstr "" -#: js/PitchBlocks.js:334 -msgid "The Pitch in Hertz block is the value in Hertz of the pitch of the note currently being played." +#: js/blocks/RhythmBlocks.js:663 +msgid "Eg a dotted quarter note will play for 3/8 (1/4 + 1/8) of a beat." msgstr "" -#: js/PitchBlocks.js:367 -#: js/DictActions.js:87 -msgid "current pitch" +#: js/blocks/RhythmBlocks.js:765 +#.TRANS: Japanese only: note value block for drum +msgid "note value drum" msgstr "" -#: js/PitchBlocks.js:373 -msgid "The Current Pitch block is used with the Pitch Converter block. In the example above, current pitch, sol 4, is displayed as 392 hertz." +#: js/blocks/RhythmBlocks.js:829 +msgid "392 hertz" msgstr "" -#: js/PitchBlocks.js:410 -msgid "This block converts the pitch value of the last note played into different formats such as hertz, letter name, pitch number, et al." +#: js/blocks/RhythmBlocks.js:1119 +msgid "The Note block is a container for one or more Pitch blocks." msgstr "" -#: js/PitchBlocks.js:434 -msgid "alphabet" +#: js/blocks/RhythmBlocks.js:1121 +msgid "The Note block specifies the duration (note value) of its contents." msgstr "" -#: js/PitchBlocks.js:436 -#.TRANS: Translate as "alphabet class" -msgid "letter class" +#: js/blocks/RhythmBlocks.js:1128 +#: js/blocks/PitchBlocks.js:974 +#: js/blocks/PitchBlocks.js:1007 +#: js/blocks/ProgramBlocks.js:1186 +#: js/blocks/ProgramBlocks.js:1227 +#: js/widgets/status.js:190 +#: js/widgets/temperament.js:464 +#: js/widgets/temperament.js:486 +#: js/widgets/temperament.js:496 +#: js/widgets/temperament.js:617 +#: plugins/rodi.rtp:192 +#.TRANS: a musical note consisting of pitch and duration +msgid "note" msgstr "" -#: js/PitchBlocks.js:437 -msgid "solfege class" +#: js/blocks/RhythmBlocks.js:1130 +msgid "value2" msgstr "" -#: js/PitchBlocks.js:438 -msgid "staff y" +#: js/blocks/RhythmBlocks.js:1200 +msgid "define frequency" msgstr "" -#: js/PitchBlocks.js:439 -msgid "solfege syllable" +#: js/blocks/RhythmBlocks.js:1218 +#: js/widgets/temperament.js:787 +#: js/widgets/temperament.js:1587 +msgid "octave space" msgstr "" -#: js/PitchBlocks.js:440 -msgid "pitch class" +#: js/blocks/SensorsBlocks.js:36 +msgid "The Input block prompts for keyboard input." msgstr "" -#: js/PitchBlocks.js:441 -msgid "scalar class" +#: js/blocks/SensorsBlocks.js:46 +msgid "input" msgstr "" -#: js/PitchBlocks.js:443 -msgid "nth degree" +#: js/blocks/SensorsBlocks.js:64 +msgid "Input a value" msgstr "" -#: js/PitchBlocks.js:444 -msgid "pitch to shade" +#: js/blocks/SensorsBlocks.js:126 +msgid "input value" msgstr "" -#: js/PitchBlocks.js:445 -msgid "pitch to color" +#: js/blocks/SensorsBlocks.js:131 +msgid "The Input-value block stores the input." msgstr "" -#: js/PitchBlocks.js:629 -#: js/musickeyboard.js:565 -#.TRANS: MIDI is a technical standard for electronic music -msgid "MIDI" +#: js/blocks/SensorsBlocks.js:238 +msgid "loudness" msgstr "" -#: js/PitchBlocks.js:642 -#.TRANS: set an offset associated with the numeric piano keyboard mapping -msgid "set pitch number offset" +#: js/blocks/SensorsBlocks.js:245 +msgid "The Loudness block returns the volume detected by the microphone." msgstr "" -#: js/PitchBlocks.js:645 -msgid "The Set pitch number offset block is used to set the offset for mapping pitch numbers to pitch and octave." +#: js/blocks/SensorsBlocks.js:300 +msgid "click" msgstr "" -#: js/PitchBlocks.js:679 -#.TRANS: convert piano key number (1-88) to pitch -msgid "number to pitch" +#: js/blocks/SensorsBlocks.js:306 +msgid "The Click block triggers an event if a mouse has been clicked." msgstr "" -#: js/PitchBlocks.js:682 -msgid "The Number to pitch block will convert a pitch number to a pich name." +#: js/blocks/SensorsBlocks.js:313 +msgid "The Click block triggers an event if a turtle has been clicked." msgstr "" -#: js/PitchBlocks.js:715 -#.TRANS: convert piano key number (1-88) to octave -msgid "number to octave" +#: js/blocks/SensorsBlocks.js:342 +msgid "cursor over" msgstr "" -#: js/PitchBlocks.js:717 -msgid "The Number to octave block will convert a pitch number to an octave." +#: js/blocks/SensorsBlocks.js:387 +msgid "cursor out" msgstr "" -#: js/PitchBlocks.js:726 -msgid "y to pitch" +#: js/blocks/SensorsBlocks.js:433 +msgid "cursor button down" msgstr "" -#: js/PitchBlocks.js:729 -msgid "Y to pitch block will convert a staff y position to corresponding pitch notation." +#: js/blocks/SensorsBlocks.js:477 +msgid "cursor button up" msgstr "" -#: js/PitchBlocks.js:841 -msgid "accidental selector" +#: js/blocks/SensorsBlocks.js:521 +#: js/blocks/PenBlocks.js:48 +#: plugins/rodi.rtp:219 +msgid "blue" msgstr "" -#: js/PitchBlocks.js:844 -msgid "The Accidental selector block is used to choose between double-sharp, sharp, natural, flat, and double-flat." +#: js/blocks/SensorsBlocks.js:577 +#: js/blocks/PenBlocks.js:64 +#: plugins/rodi.rtp:218 +msgid "green" msgstr "" -#: js/PitchBlocks.js:858 -msgid "Pitch can be specified in terms of ni dha pa ma ga re sa." +#: js/blocks/SensorsBlocks.js:633 +#: js/blocks/PenBlocks.js:112 +#: plugins/rodi.rtp:217 +msgid "red" msgstr "" -#: js/PitchBlocks.js:872 -msgid "Pitch can be specified in terms of C D E F G A B." +#: js/blocks/SensorsBlocks.js:638 +msgid "The Get red block returns the red component of the pixel under the mouse." msgstr "" -#: js/PitchBlocks.js:883 -msgid "solfege" +#: js/blocks/SensorsBlocks.js:644 +msgid "The Get red block returns the red component of the pixel under the turtle." msgstr "" -#: js/PitchBlocks.js:886 -msgid "Pitch can be specified in terms of do re mi fa sol la ti." +#: js/blocks/SensorsBlocks.js:685 +#: plugins/rodi.rtp:216 +msgid "pixel color" msgstr "" -#: js/PitchBlocks.js:920 -msgid "The Invert block rotates any contained notes around a target note." +#: js/blocks/SensorsBlocks.js:690 +msgid "The Get pixel block returns the color of the pixel under the mouse." msgstr "" -#: js/PitchBlocks.js:927 -#.TRANS: pitch inversion rotates a pitch around another pitch -msgid "invert" +#: js/blocks/SensorsBlocks.js:696 +msgid "The Get pixel block returns the color of the pixel under the turtle." msgstr "" -#: js/PitchBlocks.js:929 -#: js/PitchBlocks.js:935 -#: js/PitchActions.js:727 -#: js/musicutils.js:726 -#: js/musicutils.js:902 -#.TRANS: invert based on even or odd number or musical scale -#.TRANS: even numbers -msgid "even" +#: js/blocks/SensorsBlocks.js:758 +msgid "time" msgstr "" -#: js/PitchBlocks.js:935 -#: js/PitchActions.js:729 -#: js/musicutils.js:728 -#: js/musicutils.js:903 -#.TRANS: odd numbers -msgid "odd" +#: js/blocks/SensorsBlocks.js:804 +msgid "cursor y" msgstr "" -#: js/PitchBlocks.js:935 -#: js/PitchActions.js:731 -#: js/musicutils.js:729 -#: js/musicutils.js:904 -msgid "scalar" +#: js/blocks/SensorsBlocks.js:809 +msgid "The Cursor Y block returns the vertical position of the mouse." msgstr "" -#: js/PitchBlocks.js:966 -#.TRANS: pitch inversion rotates a pitch around another pitch (odd number) -msgid "invert (odd)" +#: js/blocks/SensorsBlocks.js:845 +msgid "cursor x" msgstr "" -#: js/PitchBlocks.js:999 -#.TRANS: pitch inversion rotates a pitch around another pitch (even number) -msgid "invert (even)" +#: js/blocks/SensorsBlocks.js:850 +msgid "The Cursor X block returns the horizontal position of the mouse." msgstr "" -#: js/PitchBlocks.js:1020 -#.TRANS: register is the octave of the current pitch -msgid "register" +#: js/blocks/SensorsBlocks.js:886 +msgid "mouse button" msgstr "" -#: js/PitchBlocks.js:1024 -msgid "The Register block provides an easy way to modify the register (octave) of the notes that follow it." +#: js/blocks/SensorsBlocks.js:888 +msgid "The Mouse-button block returns True if the mouse button is pressed." msgstr "" -#: js/PitchBlocks.js:1074 -msgid "The Semi-tone transposition block will shift the pitches contained inside Note blocks up (or down) by half steps." +#: js/blocks/SensorsBlocks.js:934 +msgid "to ASCII" msgstr "" -#: js/PitchBlocks.js:1076 -msgid "In the example shown above, sol is shifted up to sol#." +#: js/blocks/SensorsBlocks.js:938 +msgid "The To ASCII block converts numbers to letters." msgstr "" -#: js/PitchBlocks.js:1082 -#.TRANS: adjust the amount of shift (up or down) of a pitch -msgid "semi-tone transpose" +#: js/blocks/SensorsBlocks.js:1005 +msgid "The Keyboard block returns computer keyboard input." msgstr "" -#: js/PitchBlocks.js:1115 -msgid "The Transpose by Ratio block will shift the pitches contained inside Note blocks up (or down) by a ratio" +#: js/blocks/RhythmBlockPaletteBlocks.js:50 +#: js/blocks/RhythmBlockPaletteBlocks.js:233 +#.TRANS: rhythm block +#.TRANS: translate "rhythm1" as rhythm +msgid "rhythm1" msgstr "" -#: js/PitchBlocks.js:1121 -#.TRANS: adjust the amount of shift (up or down) of a pitch -msgid "transpose by ratio" +#: js/blocks/RhythmBlockPaletteBlocks.js:70 +#: js/blocks/RhythmBlockPaletteBlocks.js:252 +#: js/blocks/RhythmBlockPaletteBlocks.js:485 +#: js/blocks/RhythmBlockPaletteBlocks.js:554 +#: js/blocks/RhythmBlockPaletteBlocks.js:875 +msgid "number of notes" msgstr "" -#: js/PitchBlocks.js:1204 -#.TRANS: down sixth means the note is five scale degrees below current note -msgid "down sixth" +#: js/blocks/RhythmBlockPaletteBlocks.js:126 +msgid "polyphonic rhythm" msgstr "" -#: js/PitchBlocks.js:1223 -#.TRANS: down third means the note is two scale degrees below current note -msgid "down third" +#: js/blocks/RhythmBlockPaletteBlocks.js:219 +msgid "The Rhythm block is used to generate rhythm patterns." msgstr "" -#: js/PitchBlocks.js:1242 -#.TRANS: seventh means the note is the six scale degrees above current note -msgid "seventh" +#: js/blocks/RhythmBlockPaletteBlocks.js:280 +msgid "1/64 note" msgstr "" -#: js/PitchBlocks.js:1261 -#.TRANS: sixth means the note is the five scale degrees above current note -msgid "sixth" +#: js/blocks/RhythmBlockPaletteBlocks.js:304 +msgid "1/32 note" msgstr "" -#: js/PitchBlocks.js:1280 -#.TRANS: fifth means the note is the four scale degrees above current note -msgid "fifth" +#: js/blocks/RhythmBlockPaletteBlocks.js:332 +msgid "1/16 note" msgstr "" -#: js/PitchBlocks.js:1300 -#.TRANS: fourth means the note is three scale degrees above current note -msgid "fourth" +#: js/blocks/RhythmBlockPaletteBlocks.js:360 +msgid "eighth note" msgstr "" -#: js/PitchBlocks.js:1319 -#.TRANS: third means the note is two scale degrees above current note -msgid "third" +#: js/blocks/RhythmBlockPaletteBlocks.js:388 +msgid "quarter note" msgstr "" -#: js/PitchBlocks.js:1338 -#.TRANS: second means the note is one scale degree above current note -msgid "second" +#: js/blocks/RhythmBlockPaletteBlocks.js:416 +msgid "half note" msgstr "" -#: js/PitchBlocks.js:1379 -msgid "The Scalar transposition block will shift the pitches contained inside Note blocks up (or down) the scale." +#: js/blocks/RhythmBlockPaletteBlocks.js:444 +msgid "whole note" msgstr "" -#: js/PitchBlocks.js:1381 -msgid "In the example shown above, sol is shifted up to la." +#: js/blocks/RhythmBlockPaletteBlocks.js:482 +#: js/blocks/RhythmBlockPaletteBlocks.js:551 +#: js/blocks/RhythmBlockPaletteBlocks.js:602 +#.TRANS: A tuplet is a note value divided into irregular time values. +msgid "tuplet" msgstr "" -#: js/PitchBlocks.js:1388 -#.TRANS: adjust the amount of shift (up or down) of a pitch by musical scale (scalar) steps -msgid "scalar transpose" +#: js/blocks/RhythmBlockPaletteBlocks.js:768 +msgid "septuplet" msgstr "" -#: js/PitchBlocks.js:1423 -msgid "The Accidental block is used to create sharps and flats" +#: js/blocks/RhythmBlockPaletteBlocks.js:796 +msgid "quintuplet" msgstr "" -#: js/PitchBlocks.js:1430 -#.TRANS: An accidental is a modification to a pitch, e.g., sharp or flat. -msgid "accidental override" +#: js/blocks/RhythmBlockPaletteBlocks.js:824 +msgid "triplet" msgstr "" -#: js/PitchBlocks.js:1543 -msgid "The Hertz block (in combination with a Number block) will play a sound at the specified frequency." +#: js/blocks/RhythmBlockPaletteBlocks.js:851 +msgid "simple tuplet" msgstr "" -#: js/PitchBlocks.js:1633 -msgid "The Pitch Number block will play a pitch associated by its number, e.g. 0 for C and 7 for G." +#: js/blocks/RhythmBlockPaletteBlocks.js:861 +msgid "Tuplets are a collection of notes that get scaled to a specific duration." msgstr "" -#: js/PitchBlocks.js:1665 -#: js/PitchBlocks.js:1707 -#.TRANS: a numeric mapping of the notes in an octave based on the musical mode -#.TRANS: a numeric mapping of the notes in an octave based on the musical mode -msgid "nth modal pitch" +#: js/blocks/DrumBlocks.js:59 +msgid "The Noise name block is used to select a noise synthesizer." msgstr "" -#: js/PitchBlocks.js:1668 -msgid "n^th Modal Pitch takes the pattern of pitches in semitones for a mode and makes each point a degree of the mode," +#: js/blocks/DrumBlocks.js:102 +msgid "The Drum name block is used to select a drum." msgstr "" -#: js/PitchBlocks.js:1670 -msgid "starting from 1 and regardless of tonal framework (i.e. not always 8 notes in the octave)" +#: js/blocks/DrumBlocks.js:146 +msgid "The Effects name block is used to select a sound effect." msgstr "" -#: js/PitchBlocks.js:1711 -msgid "N^th Modal Pitch takes a number as an input as the n^th degree for the given mode. 0 is the first position, 1 is the second, -1 is the note before the first etc." +#: js/blocks/DrumBlocks.js:163 +msgid "noise" msgstr "" -#: js/PitchBlocks.js:1713 -msgid "The pitches change according to the mode specified without any need for respellings." +#: js/blocks/DrumBlocks.js:177 +msgid "The Play noise block will generate white, pink, or brown noise." msgstr "" -#: js/PitchBlocks.js:1752 -msgid "Scale Degree is a common convention in music. Scale Degree offers seven possible positions in the scale (1-7) and can be modified via accidentals." +#: js/blocks/DrumBlocks.js:317 +msgid "Replace every instance of a pitch with a drum sound." msgstr "" -#: js/PitchBlocks.js:1754 -msgid "Scale Degree 1 is always the first pitch in a given scale, regardless of octave." +#: js/blocks/DrumBlocks.js:328 +#.TRANS: map a pitch to a drum sound +msgid "map pitch to drum" msgstr "" -#: js/PitchBlocks.js:1776 -#.TRANS: step some number of notes in current musical scale -msgid "scalar step" +#: js/blocks/DrumBlocks.js:395 +msgid "In the example above, a kick drum sound will be played instead of sol." msgstr "" -#: js/PitchBlocks.js:1781 -msgid "The Scalar Step block (in combination with a Number block) will play the next pitch in a scale," +#: js/blocks/DrumBlocks.js:407 +#.TRANS: set the current drum sound for playback +msgid "set drum" msgstr "" -#: js/PitchBlocks.js:1783 -msgid "eg if the last note played was sol, Scalar Step 1 will play la." +#: js/blocks/DrumBlocks.js:451 +msgid "sound effect" msgstr "" -#: js/PitchBlocks.js:1818 -msgid "The Pitch block specifies the pitch name and octave of a note that together determine the frequency of the note." +#: js/blocks/DrumBlocks.js:489 +msgid "You can use multiple Drum blocks within a Note block." msgstr "" -#: js/GraphicsBlocks.js:46 -#: js/DictActions.js:77 -#: js/DictActions.js:155 -#: js/DictActions.js:189 +#: js/blocks/GraphicsBlocks.js:46 +#: js/turtleactions/DictActions.js:77 +#: js/turtleactions/DictActions.js:144 +#: js/turtleactions/DictActions.js:173 msgid "heading" msgstr "" -#: js/GraphicsBlocks.js:56 +#: js/blocks/GraphicsBlocks.js:56 msgid "The Heading block returns the orientation of the mouse." msgstr "" -#: js/GraphicsBlocks.js:62 +#: js/blocks/GraphicsBlocks.js:62 msgid "The Heading block returns the orientation of the turtle." msgstr "" -#: js/GraphicsBlocks.js:133 +#: js/blocks/GraphicsBlocks.js:133 msgid "The Y block returns the vertical position of the mouse." msgstr "" -#: js/GraphicsBlocks.js:140 +#: js/blocks/GraphicsBlocks.js:140 msgid "The Y block returns the vertical position of the turtle." msgstr "" -#: js/GraphicsBlocks.js:149 +#: js/blocks/GraphicsBlocks.js:149 msgid "y3" msgstr "" -#: js/GraphicsBlocks.js:219 +#: js/blocks/GraphicsBlocks.js:219 msgid "The X block returns the horizontal position of the mouse." msgstr "" -#: js/GraphicsBlocks.js:226 +#: js/blocks/GraphicsBlocks.js:226 msgid "The X block returns the horizontal position of the turtle." msgstr "" -#: js/GraphicsBlocks.js:235 +#: js/blocks/GraphicsBlocks.js:235 msgid "x3" msgstr "" -#: js/GraphicsBlocks.js:295 +#: js/blocks/GraphicsBlocks.js:295 msgid "scroll xy" msgstr "" -#: js/GraphicsBlocks.js:303 +#: js/blocks/GraphicsBlocks.js:303 msgid "The Scroll XY block moves the canvas." msgstr "" -#: js/GraphicsBlocks.js:313 +#: js/blocks/GraphicsBlocks.js:313 msgid "x2" msgstr "" -#: js/GraphicsBlocks.js:313 +#: js/blocks/GraphicsBlocks.js:313 msgid "y2" msgstr "" -#: js/GraphicsBlocks.js:373 -#: js/temperament.js:213 -#: js/temperament.js:241 +#: js/blocks/GraphicsBlocks.js:373 +#: js/widgets/temperament.js:319 +#: js/widgets/temperament.js:347 msgid "clear" msgstr "" -#: js/GraphicsBlocks.js:426 +#: js/blocks/GraphicsBlocks.js:426 msgid "The Control-point 2 block sets the second control point for the Bezier curve." msgstr "" -#: js/GraphicsBlocks.js:433 +#: js/blocks/GraphicsBlocks.js:433 msgid "control point 2" msgstr "" -#: js/GraphicsBlocks.js:436 -#: js/GraphicsBlocks.js:487 -#: js/GraphicsBlocks.js:534 -#: js/GraphicsBlocks.js:750 +#: js/blocks/GraphicsBlocks.js:436 +#: js/blocks/GraphicsBlocks.js:487 +#: js/blocks/GraphicsBlocks.js:534 +#: js/blocks/GraphicsBlocks.js:750 msgid "x1" msgstr "" -#: js/GraphicsBlocks.js:436 -#: js/GraphicsBlocks.js:487 -#: js/GraphicsBlocks.js:534 -#: js/GraphicsBlocks.js:750 +#: js/blocks/GraphicsBlocks.js:436 +#: js/blocks/GraphicsBlocks.js:487 +#: js/blocks/GraphicsBlocks.js:534 +#: js/blocks/GraphicsBlocks.js:750 msgid "y1" msgstr "" -#: js/GraphicsBlocks.js:477 +#: js/blocks/GraphicsBlocks.js:477 msgid "The Control-point 1 block sets the first control point for the Bezier curve." msgstr "" -#: js/GraphicsBlocks.js:484 +#: js/blocks/GraphicsBlocks.js:484 msgid "control point 1" msgstr "" -#: js/GraphicsBlocks.js:527 +#: js/blocks/GraphicsBlocks.js:527 msgid "The Bezier block draws a Bezier curve." msgstr "" -#: js/GraphicsBlocks.js:531 +#: js/blocks/GraphicsBlocks.js:531 msgid "bezier" msgstr "" -#: js/GraphicsBlocks.js:592 +#: js/blocks/GraphicsBlocks.js:592 msgid "The Arc block moves the turtle in an arc." msgstr "" -#: js/GraphicsBlocks.js:600 +#: js/blocks/GraphicsBlocks.js:600 msgid "arc" msgstr "" -#: js/GraphicsBlocks.js:603 +#: js/blocks/GraphicsBlocks.js:603 msgid "angle" msgstr "" -#: js/GraphicsBlocks.js:603 +#: js/blocks/GraphicsBlocks.js:603 msgid "radius" msgstr "" -#: js/GraphicsBlocks.js:620 -#: js/GraphicsBlocks.js:767 -#: js/GraphicsBlocks.js:1010 -#: js/GraphicsBlocks.js:1093 +#: js/blocks/GraphicsBlocks.js:620 +#: js/blocks/GraphicsBlocks.js:767 +#: js/blocks/GraphicsBlocks.js:1010 +#: js/blocks/GraphicsBlocks.js:1093 msgid "Value must be within -5000 to 5000 when Wrap Mode is off." msgstr "" -#: js/GraphicsBlocks.js:622 -#: js/GraphicsBlocks.js:769 -#: js/GraphicsBlocks.js:1012 -#: js/GraphicsBlocks.js:1095 +#: js/blocks/GraphicsBlocks.js:622 +#: js/blocks/GraphicsBlocks.js:769 +#: js/blocks/GraphicsBlocks.js:1012 +#: js/blocks/GraphicsBlocks.js:1095 msgid "Value must be within -20000 to 20000 when Wrap Mode is on." msgstr "" -#: js/GraphicsBlocks.js:660 +#: js/blocks/GraphicsBlocks.js:660 msgid "set heading" msgstr "seth" -#: js/GraphicsBlocks.js:673 +#: js/blocks/GraphicsBlocks.js:673 msgid "The Set heading block sets the heading of the turtle." msgstr "" -#: js/GraphicsBlocks.js:733 +#: js/blocks/GraphicsBlocks.js:733 msgid "The Set XY block moves the mouse to a specific position on the screen." msgstr "" -#: js/GraphicsBlocks.js:739 +#: js/blocks/GraphicsBlocks.js:739 msgid "The Set XY block moves the turtle to a specific position on the screen." msgstr "" -#: js/GraphicsBlocks.js:747 +#: js/blocks/GraphicsBlocks.js:747 msgid "set xy" msgstr "" -#: js/GraphicsBlocks.js:819 +#: js/blocks/GraphicsBlocks.js:819 msgid "The Right block turns the mouse to the right." msgstr "" -#: js/GraphicsBlocks.js:826 +#: js/blocks/GraphicsBlocks.js:826 msgid "The Right block turns the turtle to the right." msgstr "" -#: js/GraphicsBlocks.js:835 +#: js/blocks/GraphicsBlocks.js:835 msgid "right1" msgstr "" -#: js/GraphicsBlocks.js:835 +#: js/blocks/GraphicsBlocks.js:835 #: plugins/rodi.rtp:77 #: plugins/rodi.rtp:340 #: plugins/rodi.rtp:375 msgid "right" msgstr "" -#: js/GraphicsBlocks.js:899 +#: js/blocks/GraphicsBlocks.js:899 msgid "The Left block turns the mouse to the left." msgstr "" -#: js/GraphicsBlocks.js:906 +#: js/blocks/GraphicsBlocks.js:906 msgid "The Left block turns the turtle to the left." msgstr "" -#: js/GraphicsBlocks.js:915 +#: js/blocks/GraphicsBlocks.js:915 msgid "left1" msgstr "" -#: js/GraphicsBlocks.js:915 +#: js/blocks/GraphicsBlocks.js:915 #: plugins/rodi.rtp:79 #: plugins/rodi.rtp:339 #: plugins/rodi.rtp:362 msgid "left" msgstr "" -#: js/GraphicsBlocks.js:967 -#: js/temperament.js:734 -#: js/temperament.js:933 +#: js/blocks/GraphicsBlocks.js:967 +#: js/widgets/temperament.js:875 +#: js/widgets/temperament.js:1078 #: plugins/rodi.rtp:69 #: plugins/rodi.rtp:387 msgid "back" msgstr "" -#: js/GraphicsBlocks.js:976 +#: js/blocks/GraphicsBlocks.js:976 msgid "The Back block moves the mouse backward." msgstr "" -#: js/GraphicsBlocks.js:983 +#: js/blocks/GraphicsBlocks.js:983 msgid "The Back block moves the turtle backward." msgstr "" -#: js/GraphicsBlocks.js:1050 +#: js/blocks/GraphicsBlocks.js:1050 #: plugins/rodi.rtp:71 #: plugins/rodi.rtp:400 msgid "forward" msgstr "" -#: js/GraphicsBlocks.js:1059 +#: js/blocks/GraphicsBlocks.js:1059 msgid "The Forward block moves the mouse forward." msgstr "" -#: js/GraphicsBlocks.js:1066 +#: js/blocks/GraphicsBlocks.js:1066 msgid "The Forward block moves the turtle forward." msgstr "" -#: js/GraphicsBlocks.js:1154 -#: js/GraphicsBlocks.js:1172 +#: js/blocks/GraphicsBlocks.js:1154 +#: js/blocks/GraphicsBlocks.js:1172 msgid "wrap" msgstr "" -#: js/OrnamentBlocks.js:32 -msgid "staccato factor" -msgstr "" - -#: js/OrnamentBlocks.js:108 -msgid "slur factor" -msgstr "" - -#: js/OrnamentBlocks.js:217 -#: js/OrnamentBlocks.js:309 -#.TRANS: the neighbor refers to a neighboring note, e.g., D is a neighbor of C -msgid "neighbor" -msgstr "" - -#: js/OrnamentBlocks.js:293 -msgid "The Neighbor block rapidly switches between neighboring pitches." -msgstr "" - -#: js/OrnamentBlocks.js:364 -msgid "glide" -msgstr "" - -#: js/OrnamentBlocks.js:479 -#: js/OrnamentBlocks.js:643 -msgid "slur" -msgstr "" - -#: js/OrnamentBlocks.js:558 -#: js/OrnamentBlocks.js:710 -#.TRANS: play each note sharply detached from the others -msgid "staccato" -msgstr "" - -#: js/PenBlocks.js:24 +#: js/blocks/PenBlocks.js:30 msgid "purple" msgstr "" -#: js/PenBlocks.js:37 -#: js/SensorsBlocks.js:521 -#: plugins/rodi.rtp:219 -msgid "blue" -msgstr "" - -#: js/PenBlocks.js:50 -#: js/SensorsBlocks.js:577 -#: plugins/rodi.rtp:218 -msgid "green" -msgstr "" - -#: js/PenBlocks.js:63 +#: js/blocks/PenBlocks.js:80 msgid "yellow" msgstr "" -#: js/PenBlocks.js:76 +#: js/blocks/PenBlocks.js:96 #: plugins/nutrition.rtp:164 msgid "orange" msgstr "" -#: js/PenBlocks.js:89 -#: js/SensorsBlocks.js:633 -#: plugins/rodi.rtp:217 -msgid "red" -msgstr "" - -#: js/PenBlocks.js:102 +#: js/blocks/PenBlocks.js:128 msgid "white" msgstr "" -#: js/PenBlocks.js:115 +#: js/blocks/PenBlocks.js:144 msgid "black" msgstr "" -#: js/PenBlocks.js:128 +#: js/blocks/PenBlocks.js:163 msgid "begin fill" msgstr "" -#: js/PenBlocks.js:143 +#: js/blocks/PenBlocks.js:190 msgid "end fill" msgstr "" -#: js/PenBlocks.js:159 -#: js/PenBlocks.js:386 +#: js/blocks/PenBlocks.js:212 +#: js/blocks/PenBlocks.js:560 #.TRANS: set the background color msgid "background" msgstr "" -#: js/PenBlocks.js:206 -#: js/DictActions.js:71 -#: js/DictActions.js:149 -#: js/DictActions.js:186 +#: js/blocks/PenBlocks.js:274 +#: js/turtleactions/DictActions.js:71 +#: js/turtleactions/DictActions.js:138 +#: js/turtleactions/DictActions.js:170 msgid "grey" msgstr "" -#: js/PenBlocks.js:210 +#: js/blocks/PenBlocks.js:282 msgid "The Grey block returns the current pen grey value." msgstr "" -#: js/PenBlocks.js:243 -#: js/DictActions.js:69 -#: js/DictActions.js:147 -#: js/DictActions.js:185 +#: js/blocks/PenBlocks.js:340 +#: js/turtleactions/DictActions.js:69 +#: js/turtleactions/DictActions.js:136 +#: js/turtleactions/DictActions.js:169 msgid "shade" msgstr "" -#: js/PenBlocks.js:247 +#: js/blocks/PenBlocks.js:347 msgid "The Shade block returns the current pen shade value." msgstr "" -#: js/PenBlocks.js:280 -#: js/DictActions.js:67 -#: js/DictActions.js:145 -#: js/DictActions.js:184 +#: js/blocks/PenBlocks.js:405 +#: js/turtleactions/DictActions.js:67 +#: js/turtleactions/DictActions.js:134 +#: js/turtleactions/DictActions.js:168 msgid "color" msgstr "" -#: js/PenBlocks.js:285 +#: js/blocks/PenBlocks.js:415 msgid "The Color block returns the current pen color." msgstr "" -#: js/PenBlocks.js:318 -#: js/DictActions.js:73 -#: js/DictActions.js:151 -#: js/DictActions.js:187 +#: js/blocks/PenBlocks.js:470 +#: js/turtleactions/DictActions.js:73 +#: js/turtleactions/DictActions.js:140 +#: js/turtleactions/DictActions.js:171 msgid "pen size" msgstr "" -#: js/PenBlocks.js:322 +#: js/blocks/PenBlocks.js:474 msgid "The Pen size block returns the current pen size value." msgstr "" -#: js/PenBlocks.js:355 +#: js/blocks/PenBlocks.js:513 msgid "set font" msgstr "" -#: js/PenBlocks.js:358 +#: js/blocks/PenBlocks.js:518 msgid "The Set font block sets the font used by the Show block." msgstr "" -#: js/PenBlocks.js:391 +#: js/blocks/PenBlocks.js:567 msgid "The Background block sets the window background color." msgstr "" -#: js/PenBlocks.js:408 +#: js/blocks/PenBlocks.js:598 msgid "The Hollow line block creates a line with a hollow center." msgstr "" -#: js/PenBlocks.js:415 +#: js/blocks/PenBlocks.js:606 #.TRANS: draw a line logo has a hollow space down its center msgid "hollow line" msgstr "" -#: js/PenBlocks.js:462 +#: js/blocks/PenBlocks.js:675 msgid "The Fill block fills in a shape with a color." msgstr "" -#: js/PenBlocks.js:470 +#: js/blocks/PenBlocks.js:684 #.TRANS: fill in as a solid color msgid "fill" msgstr "" -#: js/PenBlocks.js:527 +#: js/blocks/PenBlocks.js:761 #.TRANS: raise up the pen so logo it does not draw when it is moved msgid "pen up" msgstr "" -#: js/PenBlocks.js:532 +#: js/blocks/PenBlocks.js:768 msgid "The Pen-up block raises the pen so that it does not draw." msgstr "" -#: js/PenBlocks.js:552 +#: js/blocks/PenBlocks.js:802 #.TRANS: put down the pen so logo it draws when it is moved msgid "pen down" msgstr "" -#: js/PenBlocks.js:557 +#: js/blocks/PenBlocks.js:810 msgid "The Pen-down block lowers the pen so that it draws." msgstr "" -#: js/PenBlocks.js:577 +#: js/blocks/PenBlocks.js:844 #.TRANS: set the width of the line drawn by the pen msgid "set pen size" msgstr "" -#: js/PenBlocks.js:583 +#: js/blocks/PenBlocks.js:854 msgid "The Set-pen-size block changes the size of the pen." msgstr "" -#: js/PenBlocks.js:623 +#: js/blocks/PenBlocks.js:913 #.TRANS: set degree of translucence of the pen color msgid "set translucency" msgstr "" -#: js/PenBlocks.js:627 +#: js/blocks/PenBlocks.js:921 msgid "The Set translucency block changes the opacity of the pen." msgstr "" -#: js/PenBlocks.js:668 +#: js/blocks/PenBlocks.js:981 msgid "set hue" msgstr "" -#: js/PenBlocks.js:672 +#: js/blocks/PenBlocks.js:989 msgid "The Set hue block changes the color of the pen." msgstr "" -#: js/PenBlocks.js:711 +#: js/blocks/PenBlocks.js:1047 msgid "set shade" msgstr "" -#: js/PenBlocks.js:717 +#: js/blocks/PenBlocks.js:1057 msgid "The Set-shade block changes the pen color from dark to light." msgstr "" -#: js/PenBlocks.js:757 +#: js/blocks/PenBlocks.js:1111 #.TRANS: set the level of vividness of the pen color msgid "set grey" msgstr "" -#: js/PenBlocks.js:761 +#: js/blocks/PenBlocks.js:1119 msgid "The Set grey block changes the vividness of the pen color." msgstr "" -#: js/PenBlocks.js:800 +#: js/blocks/PenBlocks.js:1172 msgid "set color" msgstr "" -#: js/PenBlocks.js:806 +#: js/blocks/PenBlocks.js:1182 msgid "The Set-color block changes the pen color." msgstr "" -#: js/VolumeBlocks.js:35 -msgid "synth volume" -msgstr "" - -#: js/VolumeBlocks.js:39 -msgid "The Synth volume block returns the current volume of the current synthesizer." -msgstr "" - -#: js/VolumeBlocks.js:47 -#: js/musicutils.js:730 -#: js/synthutils.js:56 -#.TRANS: musical instrument -msgid "piano" -msgstr "" - -#: js/VolumeBlocks.js:105 -msgid "master volume" -msgstr "" - -#: js/VolumeBlocks.js:109 -msgid "The Master volume block returns the master volume." -msgstr "" - -#: js/VolumeBlocks.js:355 -#: js/VolumeBlocks.js:524 -msgid "set synth volume" -msgstr "" - -#: js/VolumeBlocks.js:362 -#: js/VolumeBlocks.js:545 -msgid "synth" -msgstr "" - -#: js/VolumeBlocks.js:403 -#: js/VolumeBlocks.js:577 -#: js/VolumeBlocks.js:740 -#: js/VolumeActions.js:173 -msgid "Setting volume to 0." -msgstr "" - -#: js/VolumeBlocks.js:440 -msgid "Synth not found" -msgstr "" - -#: js/VolumeBlocks.js:494 -msgid "set drum volume" -msgstr "" - -#: js/VolumeBlocks.js:530 -msgid "The Set synth volume block will change the volume of a particular synth," -msgstr "" - -#: js/VolumeBlocks.js:532 -msgid "eg guitar violin snare drum etc." -msgstr "" - -#: js/VolumeBlocks.js:534 -msgid "The default volume is 50." -msgstr "" - -#: js/VolumeBlocks.js:536 -msgid "The range is 0 for silence to 100 for full volume." -msgstr "" - -#: js/VolumeBlocks.js:597 -msgid "set panning" -msgstr "" - -#: js/VolumeBlocks.js:603 -msgid "The Set Panning block sets the panning for all synthesizers." -msgstr "" - -#: js/VolumeBlocks.js:625 -msgid "Warning: Sound is coming out from only the left or right side." -msgstr "" - -#: js/VolumeBlocks.js:647 -#: js/VolumeBlocks.js:695 -msgid "set master volume" -msgstr "" - -#: js/VolumeBlocks.js:653 -msgid "The Set master volume block sets the volume for all synthesizers." -msgstr "" - -#: js/VolumeBlocks.js:784 -msgid "The Set relative volume block changes the volume of the contained notes." -msgstr "" - -#: js/VolumeBlocks.js:791 -msgid "set relative volume" -msgstr "" - -#: js/VolumeBlocks.js:857 -msgid "decrescendo" -msgstr "" - -#: js/VolumeBlocks.js:921 -msgid "crescendo" -msgstr "" - -#: js/ToneBlocks.js:34 -msgid "oscillator" -msgstr "" - -#: js/ToneBlocks.js:44 -#: js/timbre.js:1562 -#.TRANS: Partials refers to the number of sine waves combined into the sound. -msgid "partials" -msgstr "" - -#: js/ToneBlocks.js:76 -msgid "You are adding multiple oscillator blocks." -msgstr "" - -#: js/ToneBlocks.js:144 -#: js/timbre.js:1225 -#.TRANS: a duo synthesizer combines a synth with a sequencer -msgid "duo synth" -msgstr "" - -#: js/ToneBlocks.js:149 -msgid "The Duo synth block is a duo-frequency modulator used to define a timbre." -msgstr "" - -#: js/ToneBlocks.js:157 -#: js/timbre.js:1476 -msgid "vibrato rate" -msgstr "" - -#: js/ToneBlocks.js:157 -msgid "vibrato intensity" -msgstr "" - -#: js/ToneBlocks.js:185 -#: js/timbre.js:1221 -#.TRANS: AM (amplitude modulation) synthesizer -msgid "AM synth" -msgstr "" - -#: js/ToneBlocks.js:189 -msgid "The AM synth block is an amplitude modulator used to define a timbre." -msgstr "" - -#: js/ToneBlocks.js:224 -#: js/timbre.js:1223 -#.TRANS: FM (frequency modulation) synthesizer -msgid "FM synth" -msgstr "" - -#: js/ToneBlocks.js:228 -msgid "The FM synth block is a frequency modulator used to define a timbre." +#: js/blocks/PitchBlocks.js:141 +#.TRANS: musical transposition (adjustment of pitch up or down) +msgid "transposition" msgstr "" -#: js/ToneBlocks.js:262 -msgid "partial" +#: js/blocks/PitchBlocks.js:168 +#.TRANS: step down one note in current musical scale +msgid "scalar step down" msgstr "" -#: js/ToneBlocks.js:265 -msgid "The Partial block is used to specify a weight for a specific partial harmonic." +#: js/blocks/PitchBlocks.js:172 +msgid "The Scalar step down block returns the number of semi-tones down to the previous note in the current key and mode." msgstr "" -#: js/ToneBlocks.js:284 -#.TRANS: partials are weighted components in a harmonic series -msgid "Partial weight must be between 0 and 1." +#: js/blocks/PitchBlocks.js:190 +#.TRANS: step up one note in current musical scale +msgid "scalar step up" msgstr "" -#: js/ToneBlocks.js:297 -#.TRANS: partials are weighted components in a harmonic series -msgid "Partial block should be used inside of a Weighted-partials block." +#: js/blocks/PitchBlocks.js:194 +msgid "The Scalar step up block returns the number of semi-tones up to the next note in the current key and mode." msgstr "" -#: js/ToneBlocks.js:325 -#.TRANS: partials are weighted components in a harmonic series -msgid "weighted partials" +#: js/blocks/PitchBlocks.js:212 +#.TRANS: the change measured in half-steps between the current pitch and the previous pitch +msgid "change in pitch" msgstr "" -#: js/ToneBlocks.js:383 -msgid "The Harmonic block will add harmonics to the contained notes." +#: js/blocks/PitchBlocks.js:216 +msgid "The Change in pitch block is the difference (in half steps) between the current pitch being played and the previous pitch played." msgstr "" -#: js/ToneBlocks.js:390 -#.TRANS: A harmonic is an overtone. -msgid "harmonic" +#: js/blocks/PitchBlocks.js:243 +#.TRANS: the change measured in scale-steps between the current pitch and the previous pitch +msgid "scalar change in pitch" msgstr "" -#: js/ToneBlocks.js:431 -msgid "The Distortion block adds distortion to the pitch." +#: js/blocks/PitchBlocks.js:250 +#: js/blocks/PitchBlocks.js:432 +#: js/blocks/PitchBlocks.js:1667 +#: js/turtleactions/DictActions.js:89 +#: js/widgets/temperament.js:610 +#: js/widgets/temperament.js:614 +#: js/widgets/temperament.js:855 +#.TRANS: convert current note to piano key (1-88) +#.TRANS: a mapping of pitch to the 88 piano keys +msgid "pitch number" msgstr "" -#: js/ToneBlocks.js:438 -#: js/timbre.js:2100 -#.TRANS: distortion is an alteration in the sound -msgid "distortion" +#: js/blocks/PitchBlocks.js:256 +msgid "The Pitch number block is the value of the pitch of the note currently being played." msgstr "" -#: js/ToneBlocks.js:487 -msgid "The Tremolo block adds a wavering effect." +#: js/blocks/PitchBlocks.js:329 +#: js/blocks/PitchBlocks.js:433 +#.TRANS: the current pitch expressed in Hertz +msgid "pitch in hertz" msgstr "" -#: js/ToneBlocks.js:495 -#: js/timbre.js:2092 -#.TRANS: a wavering effect in a musical tone -msgid "tremolo" +#: js/blocks/PitchBlocks.js:334 +msgid "The Pitch in Hertz block is the value in Hertz of the pitch of the note currently being played." msgstr "" -#: js/ToneBlocks.js:500 -#: js/ToneBlocks.js:569 -#: js/ToneBlocks.js:630 -#: js/ToneBlocks.js:689 -#: js/timbre.js:2134 -#: js/timbre.js:2222 -#: js/timbre.js:2317 -#: js/timbre.js:2419 -#.TRANS: rate at which tremolo wavers -msgid "rate" +#: js/blocks/PitchBlocks.js:367 +#: js/turtleactions/DictActions.js:87 +msgid "current pitch" msgstr "" -#: js/ToneBlocks.js:502 -#: js/ToneBlocks.js:630 -#: js/timbre.js:2137 -#: js/timbre.js:2328 -#.TRANS: amplitude of tremolo waver -msgid "depth" +#: js/blocks/PitchBlocks.js:373 +msgid "The Current Pitch block is used with the Pitch Converter block. In the example above, current pitch, sol 4, is displayed as 392 hertz." msgstr "" -#: js/ToneBlocks.js:559 -msgid "The Phaser block adds a sweeping sound." +#: js/blocks/PitchBlocks.js:410 +msgid "This block converts the pitch value of the last note played into different formats such as hertz, letter name, pitch number, et al." msgstr "" -#: js/ToneBlocks.js:566 -#: js/timbre.js:2098 -#.TRANS: alter the phase of the sound -msgid "phaser" +#: js/blocks/PitchBlocks.js:434 +msgid "alphabet" msgstr "" -#: js/ToneBlocks.js:569 -#: js/timbre.js:2422 -msgid "octaves" +#: js/blocks/PitchBlocks.js:436 +#.TRANS: Translate as "alphabet class" +msgid "letter class" msgstr "" -#: js/ToneBlocks.js:569 -#: js/timbre.js:2425 -msgid "base frequency" +#: js/blocks/PitchBlocks.js:437 +msgid "solfege class" msgstr "" -#: js/ToneBlocks.js:619 -msgid "The Chorus block adds a chorus effect." +#: js/blocks/PitchBlocks.js:438 +msgid "staff y" msgstr "" -#: js/ToneBlocks.js:627 -#: js/timbre.js:2096 -#.TRANS: musical effect to simulate a choral sound -msgid "chorus" +#: js/blocks/PitchBlocks.js:439 +msgid "solfege syllable" msgstr "" -#: js/ToneBlocks.js:630 -msgid "delay" +#: js/blocks/PitchBlocks.js:440 +msgid "pitch class" msgstr "" -#: js/ToneBlocks.js:678 -msgid "The Vibrato block adds a rapid, slight variation in pitch." +#: js/blocks/PitchBlocks.js:441 +msgid "scalar class" msgstr "" -#: js/ToneBlocks.js:686 -#: js/timbre.js:2094 -#.TRANS: a rapid, slight variation in pitch -msgid "vibrato" +#: js/blocks/PitchBlocks.js:443 +msgid "nth degree" msgstr "" -#: js/ToneBlocks.js:689 -#: js/timbre.js:2221 -msgid "intensity" +#: js/blocks/PitchBlocks.js:444 +msgid "pitch to shade" msgstr "" -#: js/ToneBlocks.js:733 -#.TRANS: select synthesizer -msgid "set synth" +#: js/blocks/PitchBlocks.js:445 +msgid "pitch to color" msgstr "" -#: js/ToneBlocks.js:804 -msgid "synth name" +#: js/blocks/PitchBlocks.js:629 +#: js/widgets/musickeyboard.js:735 +#.TRANS: MIDI is a technical standard for electronic music +msgid "MIDI" msgstr "" -#: js/ToneBlocks.js:842 -msgid "set default instrument" +#: js/blocks/PitchBlocks.js:642 +#.TRANS: set an offset associated with the numeric piano keyboard mapping +msgid "set pitch number offset" msgstr "" -#: js/ToneBlocks.js:895 -#: js/ToneBlocks.js:943 -#.TRANS: set the characteristics of a custom instrument -msgid "set instrument" +#: js/blocks/PitchBlocks.js:645 +msgid "The Set pitch number offset block is used to set the offset for mapping pitch numbers to pitch and octave." msgstr "" -#: js/ToneBlocks.js:898 -#: js/ToneBlocks.js:926 -#: js/ToneBlocks.js:932 -msgid "The Set instrument block selects a voice for the synthesizer," +#: js/blocks/PitchBlocks.js:679 +#.TRANS: convert piano key number (1-88) to pitch +msgid "number to pitch" msgstr "" -#: js/ToneBlocks.js:900 -#: js/ToneBlocks.js:934 -msgid "eg guitar piano violin or cello." +#: js/blocks/PitchBlocks.js:682 +msgid "The Number to pitch block will convert a pitch number to a pich name." msgstr "" -#: js/ToneBlocks.js:1015 -msgid "Import a sound file to use as an instrument and set its pitch center." +#: js/blocks/PitchBlocks.js:715 +#.TRANS: convert piano key number (1-88) to octave +msgid "number to octave" msgstr "" -#: js/ToneBlocks.js:1110 -msgid "Upload a sound file to connect with the sample block." +#: js/blocks/PitchBlocks.js:717 +msgid "The Number to octave block will convert a pitch number to an octave." msgstr "" -#: js/MeterBlocks.js:34 -#.TRANS: musical meter (time signature), e.g., 4:4 -msgid "current meter" +#: js/blocks/PitchBlocks.js:726 +msgid "y to pitch" msgstr "" -#: js/MeterBlocks.js:85 -#.TRANS: number of beats per minute -msgid "beat factor" +#: js/blocks/PitchBlocks.js:729 +msgid "Y to pitch block will convert a staff y position to corresponding pitch notation." msgstr "" -#: js/MeterBlocks.js:161 -msgid "The Beats per minute block returns the current beats per minute." +#: js/blocks/PitchBlocks.js:841 +msgid "accidental selector" msgstr "" -#: js/MeterBlocks.js:169 -#: js/status.js:152 -#.TRANS: number of beats played per minute -msgid "beats per minute2" +#: js/blocks/PitchBlocks.js:844 +msgid "The Accidental selector block is used to choose between double-sharp, sharp, natural, flat, and double-flat." msgstr "" -#: js/MeterBlocks.js:169 -#: js/MeterBlocks.js:1056 -#: js/MeterBlocks.js:1133 -#: js/MeterBlocks.js:1211 -#.TRANS: sets tempo by defining a beat and beats per minute -msgid "beats per minute" +#: js/blocks/PitchBlocks.js:858 +msgid "Pitch can be specified in terms of ni dha pa ma ga re sa." msgstr "" -#: js/MeterBlocks.js:233 -#.TRANS: count of current musical measure in meter -msgid "measure count" +#: js/blocks/PitchBlocks.js:872 +msgid "Pitch can be specified in terms of C D E F G A B." msgstr "" -#: js/MeterBlocks.js:241 -msgid "The Measure count block returns the current measure." +#: js/blocks/PitchBlocks.js:884 +msgid "solfege" msgstr "" -#: js/MeterBlocks.js:290 -#.TRANS: count of current beat in the meter -msgid "beat count" +#: js/blocks/PitchBlocks.js:887 +msgid "Pitch can be specified in terms of do re mi fa sol la ti." msgstr "" -#: js/MeterBlocks.js:300 -#: js/MeterBlocks.js:311 -#: js/MeterBlocks.js:565 -#: js/MeterBlocks.js:576 -msgid "The Beat count block is the number of the current beat," +#: js/blocks/PitchBlocks.js:922 +msgid "The Invert block rotates any contained notes around a target note." msgstr "" -#: js/MeterBlocks.js:313 -#: js/MeterBlocks.js:578 -msgid "eg 1, 2, 3, or 4." +#: js/blocks/PitchBlocks.js:929 +#.TRANS: pitch inversion rotates a pitch around another pitch +msgid "invert" msgstr "" -#: js/MeterBlocks.js:368 -#.TRANS: count the number of notes -msgid "sum note values" +#: js/blocks/PitchBlocks.js:968 +#.TRANS: pitch inversion rotates a pitch around another pitch (odd number) +msgid "invert (odd)" msgstr "" -#: js/MeterBlocks.js:376 -#: js/MeterBlocks.js:440 -msgid "The Note counter block can be used to count the number of contained notes." +#: js/blocks/PitchBlocks.js:1001 +#.TRANS: pitch inversion rotates a pitch around another pitch (even number) +msgid "invert (even)" msgstr "" -#: js/MeterBlocks.js:432 -#.TRANS: count the number of notes -msgid "note counter" +#: js/blocks/PitchBlocks.js:1022 +#.TRANS: register is the octave of the current pitch +msgid "register" msgstr "" -#: js/MeterBlocks.js:496 -#.TRANS: number of whole notes that have been played -msgid "whole notes played" +#: js/blocks/PitchBlocks.js:1026 +msgid "The Register block provides an easy way to modify the register (octave) of the notes that follow it." msgstr "" -#: js/MeterBlocks.js:505 -msgid "The Whole notes played block returns the total number of whole notes played." +#: js/blocks/PitchBlocks.js:1047 +#.TRANS: cents are units used to specify the ratio between pitches. There are 100 cents between successive notes. +msgid "50 cents" msgstr "" -#: js/MeterBlocks.js:555 -#: js/DictActions.js:83 -#.TRANS: number of notes that have been played -msgid "notes played" +#: js/blocks/PitchBlocks.js:1102 +msgid "The Semi-tone transposition block will shift the pitches contained inside Note blocks up (or down) by half steps." msgstr "" -#: js/MeterBlocks.js:653 -msgid "The No clock block decouples the notes from the master clock." +#: js/blocks/PitchBlocks.js:1104 +msgid "In the example shown above, sol is shifted up to sol#." msgstr "" -#: js/MeterBlocks.js:661 -#.TRANS: don't lock notes to master clock -msgid "no clock" +#: js/blocks/PitchBlocks.js:1110 +#.TRANS: adjust the amount of shift (up or down) of a pitch +msgid "semi-tone transpose" msgstr "" -#: js/MeterBlocks.js:700 -msgid "on weak beat do" +#: js/blocks/PitchBlocks.js:1143 +msgid "The Transpose by Ratio block will shift the pitches contained inside Note blocks up (or down) by a ratio" msgstr "" -#: js/MeterBlocks.js:705 -msgid "The On-weak-beat block lets you specify actions to take on weak (off) beats." +#: js/blocks/PitchBlocks.js:1149 +#.TRANS: adjust the amount of shift (up or down) of a pitch +msgid "transpose by ratio" msgstr "" -#: js/MeterBlocks.js:750 -msgid "on strong beat" +#: js/blocks/PitchBlocks.js:1232 +#.TRANS: down sixth means the note is five scale degrees below current note +msgid "down sixth" msgstr "" -#: js/MeterBlocks.js:758 -msgid "The On-strong-beat block lets you specify actions to take on specified beats." +#: js/blocks/PitchBlocks.js:1251 +#.TRANS: down third means the note is two scale degrees below current note +msgid "down third" msgstr "" -#: js/MeterBlocks.js:769 -msgid "beat" +#: js/blocks/PitchBlocks.js:1270 +#.TRANS: seventh means the note is the six scale degrees above current note +msgid "seventh" msgstr "" -#: js/MeterBlocks.js:813 -msgid "on every beat do" +#: js/blocks/PitchBlocks.js:1289 +#.TRANS: sixth means the note is the five scale degrees above current note +msgid "sixth" msgstr "" -#: js/MeterBlocks.js:821 -msgid "The On-every-beat block lets you specify actions to take on every beat." +#: js/blocks/PitchBlocks.js:1308 +#.TRANS: fifth means the note is the four scale degrees above current note +msgid "fifth" msgstr "" -#: js/MeterBlocks.js:874 -msgid "on every note do" +#: js/blocks/PitchBlocks.js:1328 +#.TRANS: fourth means the note is three scale degrees above current note +msgid "fourth" msgstr "" -#: js/MeterBlocks.js:882 -msgid "The On-every-note block lets you specify actions to take on every note." +#: js/blocks/PitchBlocks.js:1347 +#.TRANS: third means the note is two scale degrees above current note +msgid "third" msgstr "" -#: js/MeterBlocks.js:928 -#: js/MeterBlocks.js:999 -#.TRANS: sets tempo by defining a beat and beats per minute -msgid "master beats per minute" +#: js/blocks/PitchBlocks.js:1366 +#.TRANS: second means the note is one scale degree above current note +msgid "second" msgstr "" -#: js/MeterBlocks.js:952 -#: js/MeterBlocks.js:1078 -#: js/MeterBlocks.js:1135 -msgid "bpm" +#: js/blocks/PitchBlocks.js:1407 +msgid "The Scalar transposition block will shift the pitches contained inside Note blocks up (or down) the scale." msgstr "" -#: js/MeterBlocks.js:952 -#: js/MeterBlocks.js:1078 -#: js/MeterBlocks.js:1135 -msgid "beat value" +#: js/blocks/PitchBlocks.js:1409 +msgid "In the example shown above, sol is shifted up to la." msgstr "" -#: js/MeterBlocks.js:1024 -#: js/MeterBlocks.js:1167 -#: js/MeterBlocks.js:1241 -msgid "Beats per minute must be > 30." +#: js/blocks/PitchBlocks.js:1416 +#.TRANS: adjust the amount of shift (up or down) of a pitch by musical scale (scalar) steps +msgid "scalar transpose" msgstr "" -#: js/MeterBlocks.js:1027 -#: js/MeterBlocks.js:1170 -#: js/MeterBlocks.js:1244 -msgid "Maximum beats per minute is 1000." +#: js/blocks/PitchBlocks.js:1451 +msgid "The Accidental block is used to create sharps and flats" msgstr "" -#: js/MeterBlocks.js:1068 -msgid "The Beats per minute block sets the number of 1/4 notes per minute." +#: js/blocks/PitchBlocks.js:1458 +#.TRANS: An accidental is a modification to a pitch, e.g., sharp or flat. +msgid "accidental override" msgstr "" -#: js/MeterBlocks.js:1279 -#.TRANS: anacrusis -msgid "pickup" +#: js/blocks/PitchBlocks.js:1581 +msgid "The Hertz block (in combination with a Number block) will play a sound at the specified frequency." msgstr "" -#: js/MeterBlocks.js:1367 -msgid "number of beats" +#: js/blocks/PitchBlocks.js:1671 +msgid "The Pitch Number block will play a pitch associated by its number, e.g. 0 for C and 7 for G." msgstr "" -#: js/DictBlocks.js:77 -msgid "show dictionary" +#: js/blocks/PitchBlocks.js:1703 +#: js/blocks/PitchBlocks.js:1745 +#.TRANS: a numeric mapping of the notes in an octave based on the musical mode +#.TRANS: a numeric mapping of the notes in an octave based on the musical mode +msgid "nth modal pitch" msgstr "" -#: js/DictBlocks.js:129 -msgid "The Dictionary block returns a dictionary." +#: js/blocks/PitchBlocks.js:1706 +msgid "n^th Modal Pitch takes the pattern of pitches in semitones for a mode and makes each point a degree of the mode," msgstr "" -#: js/DictBlocks.js:197 -#: js/DictBlocks.js:339 -msgid "The Get-dict block returns a value in the dictionary for a specified key." +#: js/blocks/PitchBlocks.js:1708 +msgid "starting from 1 and regardless of tonal framework (i.e. not always 8 notes in the octave)" msgstr "" -#: js/DictBlocks.js:212 -#: js/DictBlocks.js:354 -#.TRANS: retrieve a value from the dictionary with a given key -msgid "get value" +#: js/blocks/PitchBlocks.js:1749 +msgid "N^th Modal Pitch takes a number as an input as the n^th degree for the given mode. 0 is the first position, 1 is the second, -1 is the note before the first etc." msgstr "" -#: js/DictBlocks.js:215 -#: js/DictBlocks.js:216 -#: js/DictBlocks.js:289 -#: js/DictBlocks.js:290 -#: js/DictBlocks.js:357 -#: js/DictBlocks.js:430 -#: js/DictBlocks.js:431 -msgid "key2" +#: js/blocks/PitchBlocks.js:1751 +msgid "The pitches change according to the mode specified without any need for respellings." msgstr "" -#: js/DictBlocks.js:271 -#: js/DictBlocks.js:411 -msgid "The Set-dict block sets a value in the dictionary for a specified key." +#: js/blocks/PitchBlocks.js:1790 +msgid "Scale Degree is a common convention in music. Scale Degree offers seven possible positions in the scale (1-7) and can be modified via accidentals." msgstr "" -#: js/DictBlocks.js:286 -#: js/DictBlocks.js:427 -#.TRANS: set a value in the dictionary for a given key -msgid "set value" +#: js/blocks/PitchBlocks.js:1792 +msgid "Scale Degree 1 is always the first pitch in a given scale, regardless of octave." msgstr "" -#: js/ExtrasBlocks.js:33 -msgid "fraction" +#: js/blocks/PitchBlocks.js:1814 +#.TRANS: step some number of notes in current musical scale +msgid "scalar step" msgstr "" -#: js/ExtrasBlocks.js:36 -msgid "Convert a float to a fraction" +#: js/blocks/PitchBlocks.js:1819 +msgid "The Scalar Step block (in combination with a Number block) will play the next pitch in a scale," msgstr "" -#: js/ExtrasBlocks.js:93 -msgid "save as ABC" +#: js/blocks/PitchBlocks.js:1821 +msgid "eg if the last note played was sol, Scalar Step 1 will play la." msgstr "" -#: js/ExtrasBlocks.js:96 -#: js/ExtrasBlocks.js:132 -#: js/ExtrasBlocks.js:168 -msgid "title" +#: js/blocks/PitchBlocks.js:1857 +msgid "The Pitch block specifies the pitch name and octave of a note that together determine the frequency of the note." msgstr "" -#: js/ExtrasBlocks.js:129 -msgid "save as Lilypond" +#: js/blocks/ProgramBlocks.js:33 +msgid "The Load-heap-from-app block loads the heap from a web page." msgstr "" -#: js/ExtrasBlocks.js:165 -msgid "save as SVG" +#: js/blocks/ProgramBlocks.js:44 +#.TRANS: load the heap contents from a URL +msgid "load heap from App" msgstr "" -#: js/ExtrasBlocks.js:216 -msgid "no background" +#: js/blocks/ProgramBlocks.js:95 +msgid "Error parsing JSON data:" msgstr "" -#: js/ExtrasBlocks.js:219 -msgid "The No background block eliminates the background from the saved SVG output." +#: js/blocks/ProgramBlocks.js:100 +msgid "404: Page not found" msgstr "" -#: js/ExtrasBlocks.js:247 -msgid "show blocks" +#: js/blocks/ProgramBlocks.js:133 +msgid "The Save-heap-to-app block saves the heap to a web page." msgstr "" -#: js/ExtrasBlocks.js:249 -msgid "The Show blocks block shows the blocks." +#: js/blocks/ProgramBlocks.js:144 +#.TRANS: save the heap contents to a URL +msgid "save heap to App" msgstr "" -#: js/ExtrasBlocks.js:274 -msgid "hide blocks" +#: js/blocks/ProgramBlocks.js:189 +msgid "Cannot find a valid heap for" msgstr "" -#: js/ExtrasBlocks.js:276 -msgid "The Hide blocks block hides the blocks." +#: js/blocks/ProgramBlocks.js:206 +msgid "The Load-heap block loads the heap from a file." msgstr "" -#: js/ExtrasBlocks.js:305 -#: js/ExtrasBlocks.js:335 -msgid "The Space block is used to add space between blocks." +#: js/blocks/ProgramBlocks.js:217 +#.TRANS: load the heap from a file +msgid "load heap" msgstr "" -#: js/ExtrasBlocks.js:373 -msgid "wait" +#: js/blocks/ProgramBlocks.js:270 +msgid "The file you selected does not contain a valid heap." msgstr "" -#: js/ExtrasBlocks.js:376 -msgid "The Wait block pauses the program for a specified number of seconds." +#: js/blocks/ProgramBlocks.js:275 +msgid "The loadHeap block needs a loadFile block." msgstr "" -#: js/ExtrasBlocks.js:430 -#: plugins/facebook.rtp:30 -msgid "comment" +#: js/blocks/ProgramBlocks.js:291 +msgid "The Set-heap block loads the heap." msgstr "" -#: js/ExtrasBlocks.js:466 -msgid "print" +#: js/blocks/ProgramBlocks.js:340 +msgid "The block you selected does not contain a valid heap." msgstr "" -#: js/ExtrasBlocks.js:473 -msgid "The Print block displays text at the top of the screen." +#: js/blocks/ProgramBlocks.js:343 +msgid "The Set heap block needs a heap." msgstr "" -#: js/ExtrasBlocks.js:579 -msgid "display grid" +#: js/blocks/ProgramBlocks.js:360 +msgid "The Load-dictionary block loads a dictionary from a file." msgstr "" -#: js/ExtrasBlocks.js:584 -msgid "The Display Grid Block changes the grid type" +#: js/blocks/ProgramBlocks.js:372 +#.TRANS: load a dictionary from a file +msgid "load dictionary" msgstr "" -#: js/ExtrasBlocks.js:686 -#: js/ExtrasBlocks.js:705 -#: js/ExtrasBlocks.js:728 -#: js/ExtrasBlocks.js:751 -#: js/ExtrasBlocks.js:769 -#: js/ExtrasBlocks.js:788 -#: js/ExtrasBlocks.js:807 -#: js/ExtrasBlocks.js:826 -msgid "unknown" +#: js/blocks/ProgramBlocks.js:390 +#: js/blocks/ProgramBlocks.js:658 +#: js/blocks/ToneBlocks.js:1025 +msgid "file" msgstr "" -#: js/SensorsBlocks.js:36 -msgid "The Input block prompts for keyboard input." +#: js/blocks/ProgramBlocks.js:444 +msgid "The file you selected does not contain a valid dictionary." msgstr "" -#: js/SensorsBlocks.js:46 -msgid "input" +#: js/blocks/ProgramBlocks.js:449 +msgid "The load dictionary block needs a load file block." msgstr "" -#: js/SensorsBlocks.js:64 -msgid "Input a value" +#: js/blocks/ProgramBlocks.js:466 +msgid "The Set-dictionary block loads a dictionary." msgstr "" -#: js/SensorsBlocks.js:126 -msgid "input value" +#: js/blocks/ProgramBlocks.js:477 +#.TRANS: load a dictionary from a JSON +msgid "set dictionary" msgstr "" -#: js/SensorsBlocks.js:131 -msgid "The Input-value block stores the input." +#: js/blocks/ProgramBlocks.js:546 +msgid "The block you selected does not contain a valid dictionary." msgstr "" -#: js/SensorsBlocks.js:238 -msgid "loudness" +#: js/blocks/ProgramBlocks.js:550 +msgid "The set dictionary block needs a dictionary." msgstr "" -#: js/SensorsBlocks.js:245 -msgid "The Loudness block returns the volume detected by the microphone." +#: js/blocks/ProgramBlocks.js:567 +msgid "The Save-heap block saves the heap to a file." msgstr "" -#: js/SensorsBlocks.js:300 -msgid "click" +#: js/blocks/ProgramBlocks.js:578 +#.TRANS: save the heap to a file +msgid "save heap" msgstr "" -#: js/SensorsBlocks.js:306 -msgid "The Click block triggers an event if a mouse has been clicked." +#: js/blocks/ProgramBlocks.js:629 +msgid "The Save-dictionary block saves a dictionary to a file." msgstr "" -#: js/SensorsBlocks.js:313 -msgid "The Click block triggers an event if a turtle has been clicked." +#: js/blocks/ProgramBlocks.js:640 +#.TRANS: save a dictionary to a file +msgid "save dictionary" msgstr "" -#: js/SensorsBlocks.js:342 -msgid "cursor over" +#: js/blocks/ProgramBlocks.js:720 +msgid "The Open palette block opens a palette." msgstr "" -#: js/SensorsBlocks.js:387 -msgid "cursor out" +#: js/blocks/ProgramBlocks.js:727 +msgid "open palette" msgstr "" -#: js/SensorsBlocks.js:433 -msgid "cursor button down" +#: js/blocks/ProgramBlocks.js:785 +msgid "The Delete block block removes a block." msgstr "" -#: js/SensorsBlocks.js:477 -msgid "cursor button up" +#: js/blocks/ProgramBlocks.js:797 +#.TRANS: Move this block to the trash. +msgid "delete block" msgstr "" -#: js/SensorsBlocks.js:638 -msgid "The Get red block returns the red component of the pixel under the mouse." +#: js/blocks/ProgramBlocks.js:861 +msgid "The Move block block moves a block." msgstr "" -#: js/SensorsBlocks.js:644 -msgid "The Get red block returns the red component of the pixel under the turtle." +#: js/blocks/ProgramBlocks.js:869 +#.TRANS: Move the position of a block on the screen. +msgid "move block" msgstr "" -#: js/SensorsBlocks.js:685 -#: plugins/rodi.rtp:216 -msgid "pixel color" +#: js/blocks/ProgramBlocks.js:881 +#: js/blocks/ProgramBlocks.js:1048 +msgid "block number" msgstr "" -#: js/SensorsBlocks.js:690 -msgid "The Get pixel block returns the color of the pixel under the mouse." +#: js/blocks/ProgramBlocks.js:935 +#.TRANS: Run program beginning at this block. +msgid "run block" msgstr "" -#: js/SensorsBlocks.js:696 -msgid "The Get pixel block returns the color of the pixel under the turtle." +#: js/blocks/ProgramBlocks.js:1025 +msgid "The Dock block block connections two blocks." msgstr "" -#: js/SensorsBlocks.js:758 -msgid "time" +#: js/blocks/ProgramBlocks.js:1036 +#.TRANS: We can connect a block to another block. +msgid "connect blocks" msgstr "" -#: js/SensorsBlocks.js:804 -msgid "cursor y" +#: js/blocks/ProgramBlocks.js:1048 +msgid "target block" msgstr "" -#: js/SensorsBlocks.js:809 -msgid "The Cursor Y block returns the vertical position of the mouse." +#: js/blocks/ProgramBlocks.js:1048 +msgid "connection number" msgstr "" -#: js/SensorsBlocks.js:845 -msgid "cursor x" +#: js/blocks/ProgramBlocks.js:1140 +msgid "The Make block block creates a new block." msgstr "" -#: js/SensorsBlocks.js:850 -msgid "The Cursor X block returns the horizontal position of the mouse." +#: js/blocks/ProgramBlocks.js:1152 +#.TRANS: Create a new block +msgid "make block" msgstr "" -#: js/SensorsBlocks.js:886 -msgid "mouse button" +#: js/blocks/ProgramBlocks.js:1285 +msgid "Cannot find block" msgstr "" -#: js/SensorsBlocks.js:888 -msgid "The Mouse-button block returns True if the mouse button is pressed." +#: js/blocks/ProgramBlocks.js:1304 +#: js/blocks/ProgramBlocks.js:1313 +msgid "Warning: block argument type mismatch" msgstr "" -#: js/SensorsBlocks.js:934 -msgid "to ASCII" +#: js/blocks/ProgramBlocks.js:1347 +msgid "The Open project block is used to open a project from a web page." msgstr "" -#: js/SensorsBlocks.js:938 -msgid "The To ASCII block converts numbers to letters." +#: js/blocks/ProgramBlocks.js:1357 +msgid "open project" msgstr "" -#: js/SensorsBlocks.js:1005 -msgid "The Keyboard block returns computer keyboard input." +#: js/blocks/ProgramBlocks.js:1410 +msgid "Please enter a valid URL." msgstr "" -#: js/IntervalsActions.js:216 -msgid "Adding missing pitch number 0." +#: js/blocks/ToneBlocks.js:34 +msgid "oscillator" msgstr "" -#: js/IntervalsActions.js:224 -msgid "Ignoring pitch numbers less than zero or greater than eleven." +#: js/blocks/ToneBlocks.js:42 +#: js/blocks/WidgetBlocks.js:179 +#: js/widgets/timbre.js:1558 +#: js/widgets/timbre.js:1808 +#.TRANS: there are different types (sine, triangle, square...) of oscillators. +#.TRANS: type of filter, e.g., lowpass, highpass, etc. +msgid "type" msgstr "" -#: js/IntervalsActions.js:230 -msgid "Ignoring duplicate pitch numbers." +#: js/blocks/ToneBlocks.js:44 +#: js/widgets/timbre.js:1562 +#.TRANS: Partials refers to the number of sine waves combined into the sound. +msgid "partials" msgstr "" -#: js/PitchActions.js:88 -msgid "The Scalar Step Block must be used inside of a Note Block." +#: js/blocks/ToneBlocks.js:76 +msgid "You are adding multiple oscillator blocks." msgstr "" -#: js/PitchActions.js:107 -msgid "The Scalar Step Block must be preceded by a Pitch Block." +#: js/blocks/ToneBlocks.js:144 +#: js/widgets/timbre.js:1225 +#.TRANS: a duo synthesizer combines a synth with a sequencer +msgid "duo synth" msgstr "" -#: js/DrumActions.js:231 -msgid "Noise Block: Did you mean to use a Note block?" +#: js/blocks/ToneBlocks.js:149 +msgid "The Duo synth block is a duo-frequency modulator used to define a timbre." msgstr "" -#: js/MeterActions.js:101 -#: js/MeterActions.js:139 -msgid "beats per minute must be greater than" +#: js/blocks/ToneBlocks.js:157 +#: js/widgets/timbre.js:1476 +msgid "vibrato rate" msgstr "" -#: js/MeterActions.js:111 -#: js/MeterActions.js:149 -msgid "maximum" +#: js/blocks/ToneBlocks.js:157 +msgid "vibrato intensity" msgstr "" -#: js/MeterActions.js:117 -#: js/MeterActions.js:155 -msgid "beats per minute is" +#: js/blocks/ToneBlocks.js:185 +#: js/widgets/timbre.js:1221 +#.TRANS: AM (amplitude modulation) synthesizer +msgid "AM synth" msgstr "" -#: js/ToneActions.js:134 -msgid "Vibrato intensity must be between 1 and 100." +#: js/blocks/ToneBlocks.js:189 +msgid "The AM synth block is an amplitude modulator used to define a timbre." msgstr "" -#: js/ToneActions.js:139 -msgid "Vibrato rate must be greater than 0." +#: js/blocks/ToneBlocks.js:224 +#: js/widgets/timbre.js:1223 +#.TRANS: FM (frequency modulation) synthesizer +msgid "FM synth" msgstr "" -#: js/ToneActions.js:192 -#: js/ToneActions.js:265 -#.TRANS: Depth is the intesity of the tremolo or chorus effect. -msgid "Depth is out of range." +#: js/blocks/ToneBlocks.js:228 +msgid "The FM synth block is a frequency modulator used to define a timbre." msgstr "" -#: js/ToneActions.js:301 -msgid "Distortion must be from 0 to 100." +#: js/blocks/ToneBlocks.js:262 +msgid "partial" msgstr "" -#: js/ToneActions.js:332 -#.TRANS: partials components in a harmonic series -msgid "Partial must be greater than or equal to 0." +#: js/blocks/ToneBlocks.js:265 +msgid "The Partial block is used to specify a weight for a specific partial harmonic." msgstr "" -#: js/ToneActions.js:378 -#: js/ToneActions.js:417 -#: js/ToneActions.js:456 -#: js/timbre.js:782 -msgid "Unable to use synth due to existing oscillator" +#: js/blocks/ToneBlocks.js:284 +#.TRANS: partials are weighted components in a harmonic series +msgid "Partial weight must be between 0 and 1." msgstr "" -#: js/ToneActions.js:388 -#: js/ToneActions.js:427 -msgid "The input cannot be negative." +#: js/blocks/ToneBlocks.js:297 +#.TRANS: partials are weighted components in a harmonic series +msgid "Partial block should be used inside of a Weighted-partials block." msgstr "" -#: js/DictActions.js:75 -#: js/DictActions.js:153 -#: js/DictActions.js:188 -msgid "font" +#: js/blocks/ToneBlocks.js:325 +#.TRANS: partials are weighted components in a harmonic series +msgid "weighted partials" msgstr "" -#: js/musicutils.js:363 -#: js/musicutils.js:471 -#: js/pitchdrummatrix.js:151 -#: js/musickeyboard.js:2563 -msgid "rest" +#: js/blocks/ToneBlocks.js:383 +msgid "The Harmonic block will add harmonics to the contained notes." msgstr "" -#: js/musicutils.js:565 -#.TRANS: ordinal number. Please keep exactly one space between each number. -msgid "1st 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th" +#: js/blocks/ToneBlocks.js:390 +#.TRANS: A harmonic is an overtone. +msgid "harmonic" msgstr "" -#: js/musicutils.js:629 -#: js/musicutils.js:812 -#: js/musicutils.js:911 -#.TRANS: augmented is a music term related to intervals -msgid "augmented" +#: js/blocks/ToneBlocks.js:431 +msgid "The Distortion block adds distortion to the pitch." msgstr "" -#: js/musicutils.js:631 -#: js/musicutils.js:813 -#: js/musicutils.js:910 -#.TRANS: diminished is a music term related to intervals and mode -msgid "diminished" +#: js/blocks/ToneBlocks.js:438 +#: js/widgets/timbre.js:2100 +#.TRANS: distortion is an alteration in the sound +msgid "distortion" msgstr "" -#: js/musicutils.js:639 -#.TRANS: twelve semi-tone scale for music -msgid "chromatic" +#: js/blocks/ToneBlocks.js:487 +msgid "The Tremolo block adds a wavering effect." msgstr "" -#: js/musicutils.js:640 -msgid "algerian" +#: js/blocks/ToneBlocks.js:495 +#: js/widgets/timbre.js:2092 +#.TRANS: a wavering effect in a musical tone +msgid "tremolo" msgstr "" -#: js/musicutils.js:641 -msgid "spanish" +#: js/blocks/ToneBlocks.js:500 +#: js/blocks/ToneBlocks.js:569 +#: js/blocks/ToneBlocks.js:630 +#: js/blocks/ToneBlocks.js:689 +#: js/widgets/timbre.js:2134 +#: js/widgets/timbre.js:2222 +#: js/widgets/timbre.js:2317 +#: js/widgets/timbre.js:2419 +#.TRANS: rate at which tremolo wavers +msgid "rate" msgstr "" -#: js/musicutils.js:643 -#.TRANS: modal scale in music -msgid "octatonic" +#: js/blocks/ToneBlocks.js:502 +#: js/blocks/ToneBlocks.js:630 +#: js/widgets/timbre.js:2137 +#: js/widgets/timbre.js:2328 +#.TRANS: amplitude of tremolo waver +msgid "depth" msgstr "" -#: js/musicutils.js:645 -#.TRANS: harmonic major scale in music -msgid "harmonic major" +#: js/blocks/ToneBlocks.js:559 +msgid "The Phaser block adds a sweeping sound." msgstr "" -#: js/musicutils.js:647 -#.TRANS: natural minor scales in music -msgid "natural minor" +#: js/blocks/ToneBlocks.js:566 +#: js/widgets/timbre.js:2098 +#.TRANS: alter the phase of the sound +msgid "phaser" msgstr "" -#: js/musicutils.js:649 -#.TRANS: harmonic minor scale in music -msgid "harmonic minor" +#: js/blocks/ToneBlocks.js:569 +#: js/turtleactions/IntervalsActions.js:114 +#: js/widgets/timbre.js:2422 +msgid "octaves" msgstr "" -#: js/musicutils.js:651 -#.TRANS: melodic minor scale in music -msgid "melodic minor" +#: js/blocks/ToneBlocks.js:569 +#: js/widgets/timbre.js:2425 +msgid "base frequency" msgstr "" -#: js/musicutils.js:655 -#.TRANS: modal scale for music -msgid "dorian" +#: js/blocks/ToneBlocks.js:619 +msgid "The Chorus block adds a chorus effect." msgstr "" -#: js/musicutils.js:657 -#.TRANS: modal scale for music -msgid "phrygian" +#: js/blocks/ToneBlocks.js:627 +#: js/widgets/timbre.js:2096 +#.TRANS: musical effect to simulate a choral sound +msgid "chorus" msgstr "" -#: js/musicutils.js:659 -#.TRANS: modal scale for music -msgid "lydian" +#: js/blocks/ToneBlocks.js:630 +msgid "delay" msgstr "" -#: js/musicutils.js:661 -#.TRANS: modal scale for music -msgid "mixolydian" +#: js/blocks/ToneBlocks.js:678 +msgid "The Vibrato block adds a rapid, slight variation in pitch." msgstr "" -#: js/musicutils.js:665 -#.TRANS: modal scale for music -msgid "locrian" +#: js/blocks/ToneBlocks.js:686 +#: js/widgets/timbre.js:2094 +#.TRANS: a rapid, slight variation in pitch +msgid "vibrato" msgstr "" -#: js/musicutils.js:667 -#.TRANS: minor jazz scale for music -msgid "jazz minor" +#: js/blocks/ToneBlocks.js:689 +#: js/widgets/timbre.js:2221 +msgid "intensity" msgstr "" -#: js/musicutils.js:669 -#.TRANS: bebop scale for music -msgid "bebop" +#: js/blocks/ToneBlocks.js:733 +#.TRANS: select synthesizer +msgid "set synth" msgstr "" -#: js/musicutils.js:670 -msgid "arabic" +#: js/blocks/ToneBlocks.js:804 +msgid "synth name" msgstr "" -#: js/musicutils.js:671 -msgid "byzantine" +#: js/blocks/ToneBlocks.js:842 +msgid "set default instrument" msgstr "" -#: js/musicutils.js:673 -#.TRANS: musical scale for music by Verdi -msgid "enigmatic" +#: js/blocks/ToneBlocks.js:895 +#: js/blocks/ToneBlocks.js:943 +#.TRANS: set the characteristics of a custom instrument +msgid "set instrument" msgstr "" -#: js/musicutils.js:674 -msgid "ethiopian" +#: js/blocks/ToneBlocks.js:898 +#: js/blocks/ToneBlocks.js:926 +#: js/blocks/ToneBlocks.js:932 +msgid "The Set instrument block selects a voice for the synthesizer," msgstr "" -#: js/musicutils.js:676 -#.TRANS: Ethiopic scale for music -msgid "geez" +#: js/blocks/ToneBlocks.js:900 +#: js/blocks/ToneBlocks.js:934 +msgid "eg guitar piano violin or cello." msgstr "" -#: js/musicutils.js:677 -msgid "hindu" +#: js/blocks/ToneBlocks.js:1015 +msgid "Import a sound file to use as an instrument and set its pitch center." msgstr "" -#: js/musicutils.js:678 -msgid "hungarian" +#: js/blocks/ToneBlocks.js:1110 +msgid "Upload a sound file to connect with the sample block." msgstr "" -#: js/musicutils.js:680 -#.TRANS: minor Romanian scale for music -msgid "romanian minor" +#: js/blocks/VolumeBlocks.js:35 +msgid "synth volume" msgstr "" -#: js/musicutils.js:681 -msgid "spanish gypsy" +#: js/blocks/VolumeBlocks.js:39 +msgid "The Synth volume block returns the current volume of the current synthesizer." msgstr "" -#: js/musicutils.js:683 -#.TRANS: musical scale for Mid-Eastern music -msgid "maqam" +#: js/blocks/VolumeBlocks.js:105 +msgid "master volume" msgstr "" -#: js/musicutils.js:685 -#.TRANS: minor blues scale for music -msgid "minor blues" +#: js/blocks/VolumeBlocks.js:109 +msgid "The Master volume block returns the master volume." msgstr "" -#: js/musicutils.js:687 -#.TRANS: major blues scale for music -msgid "major blues" +#: js/blocks/VolumeBlocks.js:355 +#: js/blocks/VolumeBlocks.js:524 +msgid "set synth volume" msgstr "" -#: js/musicutils.js:688 -msgid "whole tone" +#: js/blocks/VolumeBlocks.js:362 +#: js/blocks/VolumeBlocks.js:545 +msgid "synth" msgstr "" -#: js/musicutils.js:690 -#.TRANS: pentatonic is a general term that means "five note scale". This scale is typically known as "minor pentatonic" -msgid "minor pentatonic" +#: js/blocks/VolumeBlocks.js:403 +#: js/blocks/VolumeBlocks.js:577 +#: js/blocks/VolumeBlocks.js:740 +#: js/turtleactions/VolumeActions.js:173 +msgid "Setting volume to 0." msgstr "" -#: js/musicutils.js:692 -#.TRANS: pentatonic is a general term that means "five note scale". This scale is typically known as "major pentatonic" -msgid "major pentatonic" +#: js/blocks/VolumeBlocks.js:440 +msgid "Synth not found" msgstr "" -#: js/musicutils.js:693 -msgid "chinese" +#: js/blocks/VolumeBlocks.js:494 +msgid "set drum volume" msgstr "" -#: js/musicutils.js:694 -msgid "egyptian" +#: js/blocks/VolumeBlocks.js:530 +msgid "The Set synth volume block will change the volume of a particular synth," msgstr "" -#: js/musicutils.js:696 -#.TRANS: https://en.wikipedia.org/wiki/Hirajoshi_scale NOTE: There are three different versions of this scale -msgid "hirajoshi" +#: js/blocks/VolumeBlocks.js:532 +msgid "eg guitar violin snare drum etc." msgstr "" -#: js/musicutils.js:697 -msgid "Japan" +#: js/blocks/VolumeBlocks.js:534 +msgid "The default volume is 50." msgstr "" -#: js/musicutils.js:699 -#.TRANS: https://en.wikipedia.org/wiki/In_scale and https://en.wikipedia.org/wiki/Sakura_Sakura -msgid "in" +#: js/blocks/VolumeBlocks.js:536 +msgid "The range is 0 for silence to 100 for full volume." msgstr "" -#: js/musicutils.js:701 -#.TRANS: https://en.wikipedia.org/wiki/Miny%C5%8D_scale -msgid "minyo" +#: js/blocks/VolumeBlocks.js:597 +msgid "set panning" msgstr "" -#: js/musicutils.js:703 -#.TRANS: Italian mathematician -msgid "fibonacci" +#: js/blocks/VolumeBlocks.js:603 +msgid "The Set Panning block sets the panning for all synthesizers." msgstr "" -#: js/musicutils.js:708 -#: js/musicutils.js:1106 -#.TRANS: lowpass filter -msgid "lowpass" +#: js/blocks/VolumeBlocks.js:625 +msgid "Warning: Sound is coming out from only the left or right side." msgstr "" -#: js/musicutils.js:710 -#: js/musicutils.js:1107 -#.TRANS: bandpass filter -msgid "bandpass" +#: js/blocks/VolumeBlocks.js:647 +#: js/blocks/VolumeBlocks.js:695 +msgid "set master volume" msgstr "" -#: js/musicutils.js:712 -#: js/musicutils.js:1108 -#.TRANS: high-shelf filter -msgid "highshelf" +#: js/blocks/VolumeBlocks.js:653 +msgid "The Set master volume block sets the volume for all synthesizers." msgstr "" -#: js/musicutils.js:714 -#: js/musicutils.js:1109 -#.TRANS: low-shelf filter -msgid "lowshelf" +#: js/blocks/VolumeBlocks.js:784 +msgid "The Set relative volume block changes the volume of the contained notes." msgstr "" -#: js/musicutils.js:716 -#: js/musicutils.js:1110 -#.TRANS: notch-shelf filter -msgid "notch" +#: js/blocks/VolumeBlocks.js:791 +msgid "set relative volume" msgstr "" -#: js/musicutils.js:718 -#: js/musicutils.js:1111 -#.TRANS: all-pass filter -msgid "allpass" +#: js/blocks/VolumeBlocks.js:857 +msgid "decrescendo" msgstr "" -#: js/musicutils.js:720 -#: js/musicutils.js:1112 -#.TRANS: peaking filter -msgid "peaking" +#: js/blocks/VolumeBlocks.js:921 +msgid "crescendo" msgstr "" -#: js/musicutils.js:731 -#: js/synthutils.js:58 -#.TRANS: musical instrument -msgid "violin" +#: js/blocks/WidgetBlocks.js:81 +#.TRANS: sound envelope (ADSR) +msgid "envelope" msgstr "" -#: js/musicutils.js:732 -#: js/synthutils.js:60 -#.TRANS: viola musical instrument -msgid "viola" +#: js/blocks/WidgetBlocks.js:89 +#.TRANS: Attack time is the time taken for initial run-up of level from nil to peak, beginning when the key is first pressed. +msgid "attack" msgstr "" -#: js/musicutils.js:733 -#: js/synthutils.js:98 -#.TRANS: xylophone musical instrument -msgid "xylophone" +#: js/blocks/WidgetBlocks.js:91 +#.TRANS: Decay time is the time taken for the subsequent run down from the attack level to the designated sustain level. +msgid "decay" msgstr "" -#: js/musicutils.js:734 -#: js/synthutils.js:120 -#.TRANS: vibraphone musical instrument -msgid "vibraphone" +#: js/blocks/WidgetBlocks.js:93 +#.TRANS: Sustain level is the level during the main sequence of the sound's duration, until the key is released. +msgid "sustain" msgstr "" -#: js/musicutils.js:735 -#: js/synthutils.js:62 -#.TRANS: musical instrument -msgid "cello" +#: js/blocks/WidgetBlocks.js:95 +#.TRANS: Release time is the time taken for the level to decay from the sustain level to zero after the key is released. +msgid "release" msgstr "" -#: js/musicutils.js:737 -#: js/synthutils.js:66 -#.TRANS: viola musical instrument -msgid "double bass" +#: js/blocks/WidgetBlocks.js:113 +msgid "Attack value should be from 0 to 100." msgstr "" -#: js/musicutils.js:738 -#: js/synthutils.js:68 -#: js/rhythmruler.js:2119 -#.TRANS: musical instrument -msgid "guitar" +#: js/blocks/WidgetBlocks.js:116 +msgid "Decay value should be from 0 to 100." msgstr "" -#: js/musicutils.js:739 -#: js/synthutils.js:70 -#.TRANS: musical instrument -msgid "acoustic guitar" +#: js/blocks/WidgetBlocks.js:119 +msgid "Sustain value should be from 0 to 100." msgstr "" -#: js/musicutils.js:740 -#: js/synthutils.js:72 -#.TRANS: musical instrument -msgid "flute" +#: js/blocks/WidgetBlocks.js:122 +msgid "Release value should be from 0-100." msgstr "" -#: js/musicutils.js:741 -#: js/synthutils.js:74 -#.TRANS: musical instrument -msgid "clarinet" +#: js/blocks/WidgetBlocks.js:140 +msgid "You are adding multiple envelope blocks." msgstr "" -#: js/musicutils.js:742 -#: js/synthutils.js:76 -#.TRANS: musical instrument -msgid "saxophone" +#: js/blocks/WidgetBlocks.js:171 +#.TRANS: a filter removes some unwanted components from a signal +msgid "filter" msgstr "" -#: js/musicutils.js:743 -#: js/synthutils.js:78 -#.TRANS: musical instrument -msgid "tuba" +#: js/blocks/WidgetBlocks.js:181 +#: js/widgets/timbre.js:1818 +#.TRANS: rolloff is the steepness of a change in frequency. +msgid "rolloff" msgstr "" -#: js/musicutils.js:744 -#: js/synthutils.js:80 -#.TRANS: musical instrument -msgid "trumpet" +#: js/blocks/WidgetBlocks.js:213 +#.TRANS: rolloff is the steepness of a change in frequency. +msgid "Rolloff value should be either -12, -24, -48, or -96 decibels/octave." msgstr "" -#: js/musicutils.js:745 -#: js/synthutils.js:82 -#.TRANS: musical instrument -msgid "oboe" +#: js/blocks/WidgetBlocks.js:252 +msgid "The Temperament tool is used to define custom tuning." msgstr "" -#: js/musicutils.js:746 -#: js/synthutils.js:84 -#.TRANS: musical instrument -msgid "trombone" +#: js/blocks/WidgetBlocks.js:332 +#: js/blocks/WidgetBlocks.js:1573 +#: js/widgets/sampler.js:547 +msgid "Upload a sample and adjust its pitch center." msgstr "" -#: js/musicutils.js:747 -#: js/synthutils.js:100 -#.TRANS: polytone synthesizer -msgid "electronic synth" +#: js/blocks/WidgetBlocks.js:339 +#.TRANS: the speed at music is should be played. +msgid "sampler" msgstr "" -#: js/musicutils.js:748 -#: js/synthutils.js:102 -#.TRANS: simple monotone synthesizer -msgid "simple 1" +#: js/blocks/WidgetBlocks.js:517 +msgid "The Meter block opens a tool to select strong beats for the meter." msgstr "" -#: js/musicutils.js:749 -msgid "simple 2" +#: js/blocks/WidgetBlocks.js:573 +msgid "The oscilloscope block opens a tool to visualize waveforms." msgstr "" -#: js/musicutils.js:750 -msgid "simple 3" +#: js/blocks/WidgetBlocks.js:578 +msgid "oscilloscope" msgstr "" -#: js/musicutils.js:751 -msgid "simple 4" +#: js/blocks/WidgetBlocks.js:645 +msgid "The Custom mode block opens a tool to explore musical mode (the spacing of the notes in a scale)." msgstr "" -#: js/musicutils.js:753 -#: js/synthutils.js:49 -#.TRANS: brown noise synthesizer -msgid "brown noise" +#: js/blocks/WidgetBlocks.js:651 +#.TRANS: musical mode is the pattern of half-steps in an octave, e.g., Major or Minor modes +msgid "custom mode" msgstr "" -#: js/musicutils.js:754 -#: js/synthutils.js:51 -#.TRANS: pink noise synthesizer -msgid "pink noise" +#: js/blocks/WidgetBlocks.js:700 +msgid "The Tempo block opens a metronome to visualize the beat." msgstr "" -#: js/musicutils.js:756 -#: js/synthutils.js:127 -#: js/rhythmruler.js:1670 -#: js/rhythmruler.js:1928 -#.TRANS: musical instrument -msgid "snare drum" +#: js/blocks/WidgetBlocks.js:762 +msgid "The Arpeggio Widget is used to compose chord sequences." msgstr "" -#: js/musicutils.js:757 -#: js/synthutils.js:129 -#.TRANS: musical instrument -msgid "kick drum" +#: js/blocks/WidgetBlocks.js:837 +msgid "The Pitch drum matrix is used to map pitches to drum sounds." msgstr "" -#: js/musicutils.js:758 -#: js/synthutils.js:131 -#.TRANS: musical instrument -msgid "tom tom" +#: js/blocks/WidgetBlocks.js:842 +#.TRANS: makes a mapping between pitches and drum sounds +msgid "pitch-drum mapper" msgstr "" -#: js/musicutils.js:759 -#: js/synthutils.js:133 -#.TRANS: musical instrument -msgid "floor tom" +#: js/blocks/WidgetBlocks.js:891 +msgid "You must have at least one pitch block and one drum block in the matrix." msgstr "" -#: js/musicutils.js:760 -#: js/synthutils.js:135 -#.TRANS: musical instrument -msgid "bass drum" +#: js/blocks/WidgetBlocks.js:920 +msgid "The Pitch slider tool to is used to generate pitches at selected frequencies." msgstr "" -#: js/musicutils.js:761 -#: js/synthutils.js:137 -#.TRANS: a drum made from an inverted cup -msgid "cup drum" +#: js/blocks/WidgetBlocks.js:925 +#.TRANS: widget to generate pitches using a slider +msgid "pitch slider" msgstr "" -#: js/musicutils.js:762 -#: js/synthutils.js:139 -#.TRANS: musical instrument -msgid "darbuka drum" +#: js/blocks/WidgetBlocks.js:977 +msgid "chromatic keyboard" msgstr "" -#: js/musicutils.js:763 -#: js/synthutils.js:143 -#.TRANS: musical instrument -msgid "hi hat" +#: js/blocks/WidgetBlocks.js:1011 +#: js/blocks/WidgetBlocks.js:1077 +#.TRANS: widget to generate pitches using a slider +msgid "music keyboard" msgstr "" -#: js/musicutils.js:764 -#: js/synthutils.js:145 -#.TRANS: a small metal bell -msgid "ride bell" +#: js/blocks/WidgetBlocks.js:1062 +#: js/blocks/WidgetBlocks.js:1069 +msgid "The Music keyboard block opens a piano keyboard that can be used to create notes." msgstr "" -#: js/musicutils.js:765 -#: js/synthutils.js:147 -#.TRANS: musical instrument -msgid "cow bell" +#: js/blocks/WidgetBlocks.js:1128 +msgid "The Pitch staircase tool to is used to generate pitches from a given ratio." msgstr "" -#: js/musicutils.js:766 -msgid "japanese drum" +#: js/blocks/WidgetBlocks.js:1135 +#.TRANS: generate a progressive sequence of pitches +msgid "pitch staircase" msgstr "" -#: js/musicutils.js:767 -#: js/synthutils.js:153 -#.TRANS: musical instrument -msgid "japanese bell" +#: js/blocks/WidgetBlocks.js:1222 +msgid "The Rhythm Maker block opens a tool to create drum machines." msgstr "" -#: js/musicutils.js:768 -#: js/synthutils.js:149 -#.TRANS: musical instrument -msgid "triangle bell" +#: js/blocks/WidgetBlocks.js:1291 +msgid "G major scale" msgstr "" -#: js/musicutils.js:769 -#: js/synthutils.js:151 -#.TRANS: musical instrument -msgid "finger cymbals" +#: js/blocks/WidgetBlocks.js:1326 +msgid "C major scale" msgstr "" -#: js/musicutils.js:770 -#: js/synthutils.js:155 -#.TRANS: a musically tuned set of bells -msgid "chime" +#: js/blocks/WidgetBlocks.js:1366 +msgid "The Phrase Maker block opens a tool to create musical phrases." msgstr "" -#: js/musicutils.js:771 -#: js/synthutils.js:157 -#.TRANS: a musical instrument -msgid "gong" +#: js/blocks/WidgetBlocks.js:1373 +#.TRANS: assigns pitch to a sequence of beats to generate a melody +msgid "phrase maker" msgstr "" -#: js/musicutils.js:772 -#: js/synthutils.js:159 -#.TRANS: sound effect -msgid "clang" +#: js/blocks/WidgetBlocks.js:1444 +msgid "You must have at least one pitch block and one rhythm block in the matrix." msgstr "" -#: js/musicutils.js:773 -#: js/synthutils.js:161 -#.TRANS: sound effect -msgid "crash" +#: js/blocks/WidgetBlocks.js:1503 +msgid "The Status block opens a tool for inspecting the status of Music Blocks as it is running." msgstr "" -#: js/musicutils.js:774 -#: js/synthutils.js:163 -#.TRANS: sound effect -msgid "bottle" +#: js/blocks/WidgetBlocks.js:1580 +#.TRANS: AI-generated music +msgid "aimusic" msgstr "" -#: js/musicutils.js:775 -#: js/synthutils.js:165 -#.TRANS: sound effect -msgid "clap" +#: js/turtleactions/MeterActions.js:101 +#: js/turtleactions/MeterActions.js:139 +msgid "beats per minute must be greater than" msgstr "" -#: js/musicutils.js:776 -#: js/synthutils.js:167 -#.TRANS: sound effect -msgid "slap" +#: js/turtleactions/MeterActions.js:111 +#: js/turtleactions/MeterActions.js:149 +msgid "maximum" msgstr "" -#: js/musicutils.js:777 -#: js/synthutils.js:169 -#.TRANS: sound effect -msgid "splash" +#: js/turtleactions/MeterActions.js:117 +#: js/turtleactions/MeterActions.js:155 +msgid "beats per minute is" msgstr "" -#: js/musicutils.js:778 -#: js/synthutils.js:171 -#.TRANS: sound effect -msgid "bubbles" +#: js/turtleactions/DictActions.js:75 +#: js/turtleactions/DictActions.js:142 +#: js/turtleactions/DictActions.js:172 +msgid "font" msgstr "" -#: js/musicutils.js:779 -#: js/synthutils.js:173 -#.TRANS: sound effect -msgid "raindrop" +#: js/turtleactions/DictActions.js:255 +msgid "Dictionary with this name does not exist" msgstr "" -#: js/musicutils.js:780 -#: js/synthutils.js:175 -#.TRANS: animal sound effect -msgid "cat" +#: js/turtleactions/DictActions.js:259 +msgid "Key with this name does not exist in " msgstr "" -#: js/musicutils.js:781 -#: js/synthutils.js:177 -#.TRANS: animal sound effect -msgid "cricket" +#: js/turtleactions/DrumActions.js:227 +msgid "Noise Block: Did you mean to use a Note block?" msgstr "" -#: js/musicutils.js:782 -#: js/synthutils.js:179 -#.TRANS: animal sound effect -msgid "dog" +#: js/turtleactions/IntervalsActions.js:113 +msgid "one" msgstr "" -#: js/musicutils.js:784 -#: js/synthutils.js:86 -#.TRANS: musical instrument -msgid "banjo" +#: js/turtleactions/IntervalsActions.js:113 +msgid "two" msgstr "" -#: js/musicutils.js:785 -#: js/synthutils.js:88 -#.TRANS: musical instrument -msgid "koto" +#: js/turtleactions/IntervalsActions.js:113 +msgid "three" msgstr "" -#: js/musicutils.js:786 -#: js/synthutils.js:90 -#.TRANS: musical instrument -msgid "dulcimer" +#: js/turtleactions/IntervalsActions.js:113 +msgid "four" msgstr "" -#: js/musicutils.js:787 -#: js/synthutils.js:92 -#.TRANS: musical instrument -msgid "electric guitar" +#: js/turtleactions/IntervalsActions.js:113 +msgid "five" msgstr "" -#: js/musicutils.js:788 -#: js/synthutils.js:94 -#.TRANS: musical instrument -msgid "bassoon" +#: js/turtleactions/IntervalsActions.js:113 +msgid "six" msgstr "" -#: js/musicutils.js:789 -#: js/synthutils.js:96 -#.TRANS: musical instrument -msgid "celeste" +#: js/turtleactions/IntervalsActions.js:113 +msgid "seven" msgstr "" -#: js/musicutils.js:791 -#: js/musicutils.js:1123 -#: js/musicutils.js:1131 -#: js/temperament.js:650 -#.TRANS: musical temperament -msgid "equal" +#: js/turtleactions/IntervalsActions.js:113 +msgid "eight" msgstr "" -#: js/musicutils.js:793 -#: js/musicutils.js:1125 -#: js/musicutils.js:1133 -#.TRANS: musical temperament -msgid "Pythagorean" +#: js/turtleactions/IntervalsActions.js:113 +msgid "nine" msgstr "" -#: js/musicutils.js:795 -#: js/musicutils.js:1124 -#: js/musicutils.js:1132 -#.TRANS: musical temperament -msgid "just intonation" +#: js/turtleactions/IntervalsActions.js:119 +msgid "a" msgstr "" -#: js/musicutils.js:797 -#: js/musicutils.js:1126 -#: js/musicutils.js:1127 -#: js/musicutils.js:1134 -#: js/musicutils.js:1135 -#.TRANS: musical temperament -msgid "meantone" +#: js/turtleactions/IntervalsActions.js:120 +msgid "below" msgstr "" -#: js/musicutils.js:814 -msgid "major 7th" +#: js/turtleactions/IntervalsActions.js:124 +msgid "above" msgstr "" -#: js/musicutils.js:815 -msgid "minor 7th" +#: js/turtleactions/IntervalsActions.js:131 +msgid "plus" msgstr "" -#: js/musicutils.js:816 -msgid "dominant 7th" +#: js/turtleactions/IntervalsActions.js:139 +msgid " below" msgstr "" -#: js/musicutils.js:817 -msgid "minor-major 7th" +#: js/turtleactions/IntervalsActions.js:257 +msgid "Adding missing pitch number 0." msgstr "" -#: js/musicutils.js:818 -msgid "fully-diminished 7th" +#: js/turtleactions/IntervalsActions.js:265 +msgid "Ignoring pitch numbers less than zero or greater than eleven." msgstr "" -#: js/musicutils.js:819 -msgid "half-diminished 7th" +#: js/turtleactions/IntervalsActions.js:271 +msgid "Ignoring duplicate pitch numbers." msgstr "" -#: js/musicutils.js:4379 -#: js/musicutils.js:4416 -msgid "current" +#: js/turtleactions/ToneActions.js:134 +msgid "Vibrato intensity must be between 1 and 100." msgstr "" -#: js/musicutils.js:4382 -#: js/musicutils.js:4407 -msgid "next" +#: js/turtleactions/ToneActions.js:139 +msgid "Vibrato rate must be greater than 0." msgstr "" -#: js/musicutils.js:4385 -#: js/musicutils.js:4412 -msgid "previous" +#: js/turtleactions/ToneActions.js:192 +#: js/turtleactions/ToneActions.js:265 +#.TRANS: Depth is the intesity of the tremolo or chorus effect. +msgid "Depth is out of range." msgstr "" -#: js/synthutils.js:104 -#.TRANS: simple monotone synthesizer -msgid "simple-2" +#: js/turtleactions/ToneActions.js:301 +msgid "Distortion must be from 0 to 100." msgstr "" -#: js/synthutils.js:106 -#.TRANS: simple monotone synthesizer -msgid "simple-3" +#: js/turtleactions/ToneActions.js:332 +#.TRANS: partials components in a harmonic series +msgid "Partial must be greater than or equal to 0." msgstr "" -#: js/synthutils.js:108 -#.TRANS: simple monotone synthesizer -msgid "simple-4" +#: js/turtleactions/ToneActions.js:378 +#: js/turtleactions/ToneActions.js:417 +#: js/turtleactions/ToneActions.js:456 +#: js/widgets/timbre.js:782 +msgid "Unable to use synth due to existing oscillator" msgstr "" -#: js/synthutils.js:141 -#.TRANS: musical instrument -msgid "taiko" +#: js/turtleactions/ToneActions.js:388 +#: js/turtleactions/ToneActions.js:427 +msgid "The input cannot be negative." msgstr "" -#: js/modewidget.js:86 -#: js/modewidget.js:88 -#: js/modewidget.js:642 -#: js/modewidget.js:644 -#: js/modewidget.js:712 -#: js/modewidget.js:714 -#: js/temperament.js:2078 -#: js/rhythmruler.js:189 -#: js/rhythmruler.js:1410 -#: js/rhythmruler.js:1412 -#: js/rhythmruler.js:1435 -#: js/rhythmruler.js:1437 -#: js/meterwidget.js:89 -#: js/meterwidget.js:91 +#: js/widgets/modewidget.js:86 +#: js/widgets/modewidget.js:88 +#: js/widgets/modewidget.js:642 +#: js/widgets/modewidget.js:644 +#: js/widgets/modewidget.js:712 +#: js/widgets/modewidget.js:714 +#: js/widgets/meterwidget.js:194 +#: js/widgets/meterwidget.js:196 +#: js/widgets/temperament.js:2236 +#: js/widgets/rhythmruler.js:457 +#: js/widgets/rhythmruler.js:1790 +#: js/widgets/rhythmruler.js:1792 +#: js/widgets/rhythmruler.js:1816 +#: js/widgets/rhythmruler.js:1818 msgid "Play all" msgstr "" -#: js/modewidget.js:115 -#: js/pitchstaircase.js:641 -#: js/phrasemaker.js:339 -#: js/pitchdrummatrix.js:94 -#: js/pitchslider.js:125 -#: js/temperament.js:2083 -#: js/musickeyboard.js:530 -#: js/timbre.js:756 -#: js/meterwidget.js:124 -#: js/arpeggio.js:103 +#: js/widgets/modewidget.js:115 +#: js/widgets/meterwidget.js:229 +#: js/widgets/pitchdrummatrix.js:166 +#: js/widgets/pitchslider.js:125 +#: js/widgets/pitchstaircase.js:641 +#: js/widgets/temperament.js:2244 +#: js/widgets/timbre.js:756 +#: js/widgets/arpeggio.js:103 +#: js/widgets/musickeyboard.js:688 +#: js/widgets/phrasemaker.js:550 msgid "Save" msgstr "" -#: js/modewidget.js:121 -#: js/pitchstaircase.js:686 -#: js/phrasemaker.js:356 -#: js/pitchdrummatrix.js:109 -#: js/musickeyboard.js:534 -#: js/rhythmruler.js:269 -#: js/arpeggio.js:118 +#: js/widgets/modewidget.js:121 +#: js/widgets/pitchdrummatrix.js:181 +#: js/widgets/pitchstaircase.js:686 +#: js/widgets/arpeggio.js:118 +#: js/widgets/musickeyboard.js:696 +#: js/widgets/phrasemaker.js:567 +#: js/widgets/rhythmruler.js:601 #.TRANS: clear all subdivisions from the ruler. msgid "Clear" msgstr "" -#: js/modewidget.js:127 +#: js/widgets/modewidget.js:127 msgid "Rotate counter clockwise" msgstr "" -#: js/modewidget.js:133 +#: js/widgets/modewidget.js:133 msgid "Rotate clockwise" msgstr "" -#: js/modewidget.js:139 +#: js/widgets/modewidget.js:139 msgid "Invert" msgstr "" -#: js/modewidget.js:145 -#: js/pitchstaircase.js:678 -#: js/rhythmruler.js:258 -#: js/timbre.js:963 +#: js/widgets/modewidget.js:145 +#: js/widgets/pitchstaircase.js:678 +#: js/widgets/timbre.js:963 +#: js/widgets/rhythmruler.js:578 msgid "Undo" msgstr "" -#: js/modewidget.js:163 +#: js/widgets/modewidget.js:163 #.TRANS: A circle of notes represents the musical mode. msgid "Click in the circle to select notes for the mode." msgstr "" -#: js/modewidget.js:1017 -#: js/pitchstaircase.js:580 -#: js/phrasemaker.js:4855 -#: js/temperament.js:1754 -#: js/rhythmruler.js:1865 -#: js/rhythmruler.js:2081 -#: js/tempo.js:414 +#: js/widgets/modewidget.js:1017 +#: js/widgets/pitchstaircase.js:580 +#: js/widgets/temperament.js:1929 +#: js/widgets/tempo.js:414 +#: js/widgets/phrasemaker.js:5356 +#: js/widgets/rhythmruler.js:2254 +#: js/widgets/rhythmruler.js:2472 msgid "New action block generated!" msgstr "" -#: js/oscilloscope.js:79 -msgid "Zoom In" -msgstr "" - -#: js/oscilloscope.js:88 -msgid "Zoom Out" -msgstr "" - -#: js/pitchstaircase.js:624 -msgid "Play chord" -msgstr "" - -#: js/pitchstaircase.js:632 -msgid "Play scale" +#: js/widgets/meterwidget.js:275 +msgid "Reset" msgstr "" -#: js/pitchstaircase.js:696 -msgid "Click on a note to create a new step." +#: js/widgets/meterwidget.js:301 +msgid "Click in the circle to select strong beats for the meter." msgstr "" -#: js/phrasemaker.js:363 -msgid "Export" +#: js/widgets/oscilloscope.js:79 +msgid "Zoom In" msgstr "" -#: js/phrasemaker.js:370 -msgid "Sort" +#: js/widgets/oscilloscope.js:88 +msgid "Zoom Out" msgstr "" -#: js/phrasemaker.js:373 -#: js/musickeyboard.js:559 -msgid "Add note" +#: js/widgets/pitchdrummatrix.js:356 +#: js/widgets/pitchdrummatrix.js:752 +msgid "Click in the grid to map notes to drums." msgstr "" -#: js/phrasemaker.js:764 -msgid "Click on the table to add notes." +#: js/widgets/pitchslider.js:103 +msgid "Move up" msgstr "" -#: js/phrasemaker.js:2414 -#: js/phrasemaker.js:2543 -msgid "tuplet value" +#: js/widgets/pitchslider.js:114 +msgid "Move down" msgstr "" -#: js/pitchdrummatrix.js:270 -#: js/pitchdrummatrix.js:639 -msgid "Click in the grid to map notes to drums." +#: js/widgets/pitchslider.js:136 +msgid "Click on the slider to create a note block." msgstr "" -#: js/pitchslider.js:103 -msgid "Move up" +#: js/widgets/pitchstaircase.js:624 +msgid "Play chord" msgstr "" -#: js/pitchslider.js:114 -msgid "Move down" +#: js/widgets/pitchstaircase.js:632 +msgid "Play scale" msgstr "" -#: js/pitchslider.js:136 -msgid "Click on the slider to create a note block." +#: js/widgets/pitchstaircase.js:696 +msgid "Click on a note to create a new step." msgstr "" -#: js/temperament.js:215 +#: js/widgets/temperament.js:321 msgid "back to 2:1 octave space" msgstr "" -#: js/temperament.js:323 +#: js/widgets/temperament.js:447 msgid "edit" msgstr "" -#: js/temperament.js:330 -#: js/temperament.js:332 -#: js/temperament.js:1336 -#: js/temperament.js:1338 +#: js/widgets/temperament.js:454 +#: js/widgets/temperament.js:456 +#: js/widgets/temperament.js:1493 +#: js/widgets/temperament.js:1495 msgid "close" msgstr "" -#: js/temperament.js:423 -#: js/temperament.js:736 -#: js/temperament.js:743 -#: js/temperament.js:845 -#: js/temperament.js:935 -#: js/temperament.js:942 -#: js/temperament.js:1015 -#: js/temperament.js:1284 -#: js/temperament.js:1354 -#: js/temperament.js:1430 +#: js/widgets/temperament.js:552 +#: js/widgets/temperament.js:877 +#: js/widgets/temperament.js:884 +#: js/widgets/temperament.js:986 +#: js/widgets/temperament.js:1080 +#: js/widgets/temperament.js:1087 +#: js/widgets/temperament.js:1160 +#: js/widgets/temperament.js:1433 +#: js/widgets/temperament.js:1511 +#: js/widgets/temperament.js:1596 msgid "done" msgstr "" -#: js/temperament.js:477 -#: js/temperament.js:482 -#: js/temperament.js:918 +#: js/widgets/temperament.js:610 +#: js/widgets/temperament.js:615 +#: js/widgets/temperament.js:1063 msgid "ratio" msgstr "" -#: js/temperament.js:483 +#: js/widgets/temperament.js:616 msgid "interval" msgstr "" -#: js/temperament.js:611 +#: js/widgets/temperament.js:744 msgid "non scalar" msgstr "" -#: js/temperament.js:650 +#: js/widgets/temperament.js:787 msgid "ratios" msgstr "" -#: js/temperament.js:650 +#: js/widgets/temperament.js:787 msgid "arbitrary" msgstr "" -#: js/temperament.js:719 +#: js/widgets/temperament.js:860 msgid "number of divisions" msgstr "" -#: js/temperament.js:741 -#: js/temperament.js:858 -#: js/temperament.js:940 -#: js/temperament.js:1033 +#: js/widgets/temperament.js:882 +#: js/widgets/temperament.js:999 +#: js/widgets/temperament.js:1085 +#: js/widgets/temperament.js:1178 msgid "preview" msgstr "" -#: js/temperament.js:788 +#: js/widgets/temperament.js:929 msgid "The Number of divisions is too large." msgstr "" -#: js/temperament.js:921 +#: js/widgets/temperament.js:1066 msgid "recursion" msgstr "" -#: js/temperament.js:1450 +#: js/widgets/temperament.js:1616 msgid "The octave ratio has changed. This changes temperament significantly." msgstr "" -#: js/temperament.js:2087 +#: js/widgets/temperament.js:2248 msgid "Table" msgstr "" -#: js/temperament.js:2185 +#: js/widgets/temperament.js:2356 msgid "Add pitches" msgstr "" -#: js/musickeyboard.js:570 -msgid "Metronome" +#: js/widgets/tempo.js:78 +#: js/widgets/tempo.js:97 +#: js/widgets/tempo.js:99 +#: js/widgets/aiwidget.js:134 +#: js/widgets/aiwidget.js:136 +#: js/widgets/rhythmruler.js:681 +#: js/widgets/rhythmruler.js:683 +#: js/widgets/rhythmruler.js:1864 +#: js/widgets/rhythmruler.js:1866 +#: js/widgets/sampler.js:180 +#: js/widgets/sampler.js:182 +msgid "Pause" msgstr "" -#: js/musickeyboard.js:1296 -#: plugins/rodi.rtp:193 -msgid "duration" +#: js/widgets/tempo.js:113 +msgid "Save tempo" msgstr "" -#: js/musickeyboard.js:2840 -msgid "New action blocks generated!" +#: js/widgets/tempo.js:144 +msgid "speed up" msgstr "" -#: js/musickeyboard.js:2841 -msgid "New action block generated" +#: js/widgets/tempo.js:150 +msgid "slow down" msgstr "" -#: js/musickeyboard.js:2984 -#: js/musickeyboard.js:2992 -msgid "MIDI device present." +#: js/widgets/tempo.js:194 +msgid "Adjust the tempo with the buttons." msgstr "" -#: js/musickeyboard.js:2995 -msgid "No MIDI device found." +#: js/widgets/tempo.js:261 +msgid "Please enter a number between 30 and 1000" msgstr "" -#: js/musickeyboard.js:3000 -msgid "Failed to get MIDI access in browser." +#: js/widgets/tempo.js:268 +#: js/widgets/tempo.js:271 +msgid "The beats per minute must be between 30 and 1000." msgstr "" -#: js/rhythmruler.js:202 -msgid "Save rhythms" +#: js/widgets/tempo.js:287 +msgid "The beats per minute must be below 1000." msgstr "" -#: js/rhythmruler.js:222 -msgid "Save drum machine" +#: js/widgets/tempo.js:303 +msgid "The beats per minute must be above 30" msgstr "" -#: js/rhythmruler.js:263 -#.TRANS: user can tap out a rhythm by clicking on a ruler. -msgid "Tap a rhythm" +#: js/widgets/timbre.js:766 +msgid "Synthesizer" msgstr "" -#: js/rhythmruler.js:342 -#: js/rhythmruler.js:344 -#: js/rhythmruler.js:1481 -#: js/rhythmruler.js:1483 -#: js/sampler.js:110 -#: js/sampler.js:112 -#: js/tempo.js:78 -#: js/tempo.js:97 -#: js/tempo.js:99 -msgid "Pause" +#: js/widgets/timbre.js:789 +msgid "Oscillator" msgstr "" -#: js/rhythmruler.js:478 -msgid "Click on the ruler to divide it." +#: js/widgets/timbre.js:840 +msgid "Envelope" msgstr "" -#: js/rhythmruler.js:603 -#: js/rhythmruler.js:605 -#: js/rhythmruler.js:804 -#: js/rhythmruler.js:806 -#: js/rhythmruler.js:1386 -#: js/rhythmruler.js:1388 -msgid "tap a rhythm" +#: js/widgets/timbre.js:886 +#: planet/js/GlobalTag.js:50 +#.TRANS: On the Planet, we use labels to tag projects. +msgid "Effects" msgstr "" -#: js/rhythmruler.js:1084 -msgid "Maximum value of 256 has been exceeded." +#: js/widgets/timbre.js:904 +msgid "Filter" msgstr "" -#: js/sampler.js:137 -msgid "Warning: Sample is bigger than 1MB." +#: js/widgets/timbre.js:946 +msgid "Add filter" msgstr "" -#: js/sampler.js:142 -msgid "Upload failed: Sample is not a .wav file." +#: js/widgets/timbre.js:987 +msgid "Click on buttons to open the timbre design tools." msgstr "" -#: js/sampler.js:164 -msgid "A new sample block was generated." +#: js/widgets/timbre.js:1273 +msgid "harmonicity" msgstr "" -#: js/sampler.js:255 -msgid "Upload sample" +#: js/widgets/timbre.js:1340 +#: js/widgets/timbre.js:1406 +msgid "modulation index" msgstr "" -#: js/sampler.js:306 -msgid "Save sample" +#: js/widgets/timbre.js:1484 +msgid "vibrato amount" msgstr "" -#: js/sampler.js:697 -#.TRANS: The reference tone is a sound used for comparison. -msgid "reference tone" +#: js/widgets/timbre.js:1919 +msgid "Filter already present." msgstr "" -#: js/tempo.js:113 -msgid "Save tempo" +#: js/widgets/timbre.js:2322 +msgid "delay (MS)" msgstr "" -#: js/tempo.js:144 -msgid "speed up" +#: js/widgets/timbre.js:2507 +msgid "distortion amount" msgstr "" -#: js/tempo.js:150 -msgid "slow down" +#: js/widgets/aiwidget.js:180 +#: js/widgets/sampler.js:227 +msgid "Warning: Sample is bigger than 1MB." msgstr "" -#: js/tempo.js:194 -msgid "Adjust the tempo with the buttons." +#: js/widgets/aiwidget.js:539 +msgid "New start block generated" msgstr "" -#: js/tempo.js:261 -msgid "Please enter a number between 30 and 1000" +#: js/widgets/aiwidget.js:541 +msgid "MIDI loading. This may take some time depending upon the number of notes in the track" msgstr "" -#: js/tempo.js:268 -#: js/tempo.js:271 -msgid "The beats per minute must be between 30 and 1000." +#: js/widgets/aiwidget.js:551 +#: js/widgets/sampler.js:254 +msgid "Upload failed: Sample is not a .wav file." msgstr "" -#: js/tempo.js:287 -msgid "The beats per minute must be below 1000." +#: js/widgets/aiwidget.js:679 +#: js/widgets/sampler.js:432 +msgid "Save sample" msgstr "" -#: js/tempo.js:303 -msgid "The beats per minute must be above 30" +#: js/widgets/aiwidget.js:701 +msgid "AI Music" msgstr "" -#: js/timbre.js:766 -msgid "Synthesizer" +#: js/widgets/arpeggio.js:239 +msgid "Click in the grid to add steps to the arpeggio." msgstr "" -#: js/timbre.js:789 -msgid "Oscillator" +#: js/widgets/help.js:95 +#: js/widgets/help.js:125 +#: js/widgets/help.js:146 +#: js/widgets/help.js:158 +#: js/widgets/help.js:376 +#: js/widgets/help.js:391 +msgid "Take a tour" msgstr "" -#: js/timbre.js:840 -msgid "Envelope" +#: js/widgets/musickeyboard.js:725 +#: js/widgets/phrasemaker.js:584 +msgid "Add note" msgstr "" -#: js/timbre.js:886 -#: js/GlobalTag.js:50 -#.TRANS: On the Planet, we use labels to tag projects. -msgid "Effects" +#: js/widgets/musickeyboard.js:744 +msgid "Metronome" +msgstr "" + +#: js/widgets/musickeyboard.js:1549 +#: plugins/rodi.rtp:193 +msgid "duration" +msgstr "" + +#: js/widgets/musickeyboard.js:3179 +msgid "New action blocks generated" +msgstr "" + +#: js/widgets/musickeyboard.js:3180 +msgid "New action block generated" msgstr "" -#: js/timbre.js:904 -msgid "Filter" +#: js/widgets/musickeyboard.js:3365 +#: js/widgets/musickeyboard.js:3373 +msgid "MIDI device present." msgstr "" -#: js/timbre.js:946 -msgid "Add filter" +#: js/widgets/musickeyboard.js:3376 +msgid "No MIDI device found." msgstr "" -#: js/timbre.js:987 -msgid "Click on buttons to open the timbre design tools." +#: js/widgets/musickeyboard.js:3386 +msgid "Failed to get MIDI access in browser." msgstr "" -#: js/timbre.js:1273 -msgid "harmonicity" +#: js/widgets/phrasemaker.js:574 +msgid "Export" msgstr "" -#: js/timbre.js:1340 -#: js/timbre.js:1406 -msgid "modulation index" +#: js/widgets/phrasemaker.js:581 +msgid "Sort" msgstr "" -#: js/timbre.js:1484 -msgid "vibrato amount" +#: js/widgets/phrasemaker.js:975 +msgid "Click on the table to add notes." msgstr "" -#: js/timbre.js:1919 -msgid "Filter already present." +#: js/widgets/phrasemaker.js:2677 +#: js/widgets/phrasemaker.js:2819 +msgid "tuplet value" msgstr "" -#: js/timbre.js:2322 -msgid "delay (MS)" +#: js/widgets/rhythmruler.js:486 +msgid "Save rhythms" msgstr "" -#: js/timbre.js:2507 -msgid "distortion amount" +#: js/widgets/rhythmruler.js:512 +msgid "Save drum machine" msgstr "" -#: js/meterwidget.js:170 -msgid "Reset" +#: js/widgets/rhythmruler.js:589 +#.TRANS: user can tap out a rhythm by clicking on a ruler. +msgid "Tap a rhythm" msgstr "" -#: js/meterwidget.js:196 -msgid "Click in the circle to select strong beats for the meter." +#: js/widgets/rhythmruler.js:817 +msgid "Click on the ruler to divide it." msgstr "" -#: js/arpeggio.js:239 -msgid "Click in the grid to add steps to the arpeggio." +#: js/widgets/rhythmruler.js:950 +#: js/widgets/rhythmruler.js:952 +#: js/widgets/rhythmruler.js:1152 +#: js/widgets/rhythmruler.js:1154 +#: js/widgets/rhythmruler.js:1765 +#: js/widgets/rhythmruler.js:1767 +msgid "tap a rhythm" msgstr "" -#: js/ProjectStorage.js:243 -msgid "anonymous" +#: js/widgets/rhythmruler.js:1459 +msgid "Maximum value of 256 has been exceeded." msgstr "" -#: js/GlobalCard.js:68 -msgid "Share" +#: js/widgets/sampler.js:237 +msgid "Recording started..." msgstr "" -#: js/GlobalCard.js:74 -msgid "Flags" +#: js/widgets/sampler.js:245 +msgid "Recording complete..." msgstr "" -#: js/LocalCard.js:36 -msgid "View published project" +#: js/widgets/sampler.js:283 +msgid "A new sample block was generated." msgstr "" -#: js/LocalCard.js:42 -msgid "Publish project" +#: js/widgets/sampler.js:378 +msgid "Upload sample" msgstr "" -#: js/LocalCard.js:51 -msgid "Edit project" +#: js/widgets/sampler.js:399 +msgid "Warning: Your sample cannot be loaded because it is >1MB." msgstr "" -#: js/LocalCard.js:52 -msgid "Delete project" +#: js/widgets/sampler.js:448 +msgid "Toggle Mic" msgstr "" -#: js/LocalCard.js:53 -msgid "Download project" +#: js/widgets/sampler.js:458 +msgid "Playback" msgstr "" -#: js/LocalCard.js:55 -msgid "Duplicate project" +#: js/widgets/sampler.js:979 +#.TRANS: The reference tone is a sound used for comparison. +msgid "reference tone" msgstr "" -#: js/GlobalTag.js:28 +#: planet/js/GlobalTag.js:28 #.TRANS: On the Planet, we use labels to tag projects. msgid "All Projects" msgstr "" -#: js/GlobalTag.js:30 -#: js/StringHelper.js:37 +#: planet/js/GlobalTag.js:30 +#: planet/js/StringHelper.js:37 #.TRANS: On the Planet, we use labels to tag projects. msgid "My Projects" msgstr "" -#: js/GlobalTag.js:32 +#: planet/js/GlobalTag.js:32 #.TRANS: On the Planet, we use labels to tag projects. msgid "Examples" msgstr "" -#: js/GlobalTag.js:34 +#: planet/js/GlobalTag.js:34 #.TRANS: On the Planet, we use labels to tag projects. msgid "Music" msgstr "" -#: js/GlobalTag.js:36 +#: planet/js/GlobalTag.js:36 #.TRANS: On the Planet, we use labels to tag projects. msgid "Art" msgstr "" -#: js/GlobalTag.js:38 +#: planet/js/GlobalTag.js:38 #.TRANS: On the Planet, we use labels to tag projects. msgid "Math" msgstr "" -#: js/GlobalTag.js:40 +#: planet/js/GlobalTag.js:40 #.TRANS: On the Planet, we use labels to tag projects. msgid "Interactive" msgstr "" -#: js/GlobalTag.js:42 +#: planet/js/GlobalTag.js:42 #.TRANS: On the Planet, we use labels to tag projects. msgid "Design" msgstr "" -#: js/GlobalTag.js:44 +#: planet/js/GlobalTag.js:44 #.TRANS: On the Planet, we use labels to tag projects. msgid "Game" msgstr "" -#: js/GlobalTag.js:46 +#: planet/js/GlobalTag.js:46 #.TRANS: On the Planet, we use labels to tag projects. msgid "Media" msgstr "" -#: js/GlobalTag.js:48 +#: planet/js/GlobalTag.js:48 #.TRANS: On the Planet, we use labels to tag projects. msgid "Sensors" msgstr "" -#: js/GlobalTag.js:52 +#: planet/js/GlobalTag.js:52 #.TRANS: On the Planet, we use labels to tag projects. msgid "Code Snippet" msgstr "" -#: js/helper.js:149 -#: js/StringHelper.js:49 -msgid "Show more tags" +#: planet/js/LocalCard.js:36 +msgid "View published project" msgstr "" -#: js/helper.js:150 -msgid "Show fewer tags" +#: planet/js/LocalCard.js:42 +msgid "Publish project" +msgstr "" + +#: planet/js/LocalCard.js:51 +msgid "Edit project" +msgstr "" + +#: planet/js/LocalCard.js:52 +msgid "Delete project" +msgstr "" + +#: planet/js/LocalCard.js:53 +msgid "Download project" +msgstr "" + +#: planet/js/LocalCard.js:55 +msgid "Duplicate project" +msgstr "" + +#: planet/js/ProjectStorage.js:243 +msgid "anonymous" +msgstr "" + +#: planet/js/SaveInterface.js:34 +msgid "Open in Music Blocks" +msgstr "" + +#: planet/js/SaveInterface.js:35 +msgid "Open in Turtle Blocks" +msgstr "" + +#: planet/js/GlobalCard.js:68 +msgid "Share" +msgstr "" + +#: planet/js/GlobalCard.js:74 +msgid "Flags" +msgstr "" + +#: planet/js/GlobalPlanet.js:35 +msgid "No results found." +msgstr "" + +#: planet/js/GlobalPlanet.js:51 +msgid "Remix of" +msgstr "" + +#: planet/js/GlobalPlanet.js:509 +msgid "Cannot connect to server" msgstr "" -#: js/ProjectViewer.js:30 +#: planet/js/ProjectViewer.js:30 msgid "Error: Report could not be submitted. Try again later." msgstr "" -#: js/ProjectViewer.js:31 +#: planet/js/ProjectViewer.js:31 msgid "Thank you for reporting this project. A moderator will review the project shortly, to verify violation of the Sugar Labs Code of Conduct." msgstr "" -#: js/ProjectViewer.js:32 -#: js/StringHelper.js:62 -#: js/StringHelper.js:64 -#: js/StringHelper.js:68 +#: planet/js/ProjectViewer.js:32 +#: planet/js/StringHelper.js:62 +#: planet/js/StringHelper.js:64 +#: planet/js/StringHelper.js:68 msgid "Report Project" msgstr "" -#: js/ProjectViewer.js:33 -#: js/StringHelper.js:63 +#: planet/js/ProjectViewer.js:33 +#: planet/js/StringHelper.js:63 msgid "Project Reported" msgstr "" -#: js/ProjectViewer.js:34 +#: planet/js/ProjectViewer.js:34 msgid "Report description required" msgstr "" -#: js/ProjectViewer.js:35 +#: planet/js/ProjectViewer.js:35 msgid "Report description too long" msgstr "" -#: js/StringHelper.js:30 +#: planet/js/Publisher.js:30 +msgid "Feature unavailable - cannot connect to server. Reload Music Blocks to try again." +msgstr "" + +#: planet/js/Publisher.js:220 +#: planet/js/Publisher.js:237 +msgid "This field is required" +msgstr "" + +#: planet/js/Publisher.js:227 +msgid "Title too long" +msgstr "" + +#: planet/js/Publisher.js:244 +msgid "Description too long" +msgstr "" + +#: planet/js/Publisher.js:341 +msgid "Server Error" +msgstr "" + +#: planet/js/Publisher.js:341 +msgid "Try Again" +msgstr "" + +#: planet/js/StringHelper.js:30 msgid "Planet" msgstr "" -#: js/StringHelper.js:31 +#: planet/js/StringHelper.js:31 msgid "Close Planet" msgstr "" -#: js/StringHelper.js:32 +#: planet/js/StringHelper.js:32 msgid "Open project from file" msgstr "" -#: js/StringHelper.js:34 +#: planet/js/StringHelper.js:34 msgid "Local" msgstr "" -#: js/StringHelper.js:35 +#: planet/js/StringHelper.js:35 msgid "Global" msgstr "" -#: js/StringHelper.js:36 +#: planet/js/StringHelper.js:36 msgid "Search for a project" msgstr "" -#: js/StringHelper.js:38 +#: planet/js/StringHelper.js:38 msgid "Publish Project" msgstr "" -#: js/StringHelper.js:40 +#: planet/js/StringHelper.js:40 msgid "Tags (max 5)" msgstr "" -#: js/StringHelper.js:41 -#: js/StringHelper.js:61 +#: planet/js/StringHelper.js:41 +#: planet/js/StringHelper.js:61 msgid "Description" msgstr "" -#: js/StringHelper.js:42 -#: js/StringHelper.js:67 +#: planet/js/StringHelper.js:42 +#: planet/js/StringHelper.js:67 msgid "Submit" msgstr "" -#: js/StringHelper.js:43 -#: js/StringHelper.js:47 +#: planet/js/StringHelper.js:43 +#: planet/js/StringHelper.js:47 msgid "Cancel" msgstr "" -#: js/StringHelper.js:44 +#: planet/js/StringHelper.js:44 msgid "Delete \\"\\"?" msgstr "" -#: js/StringHelper.js:45 +#: planet/js/StringHelper.js:45 msgid "Permanently delete project \\"\\"?" msgstr "" -#: js/StringHelper.js:48 +#: planet/js/StringHelper.js:48 msgid "Explore Projects" msgstr "" -#: js/StringHelper.js:50 +#: planet/js/StringHelper.js:49 +#: planet/js/helper.js:149 +msgid "Show more tags" +msgstr "" + +#: planet/js/StringHelper.js:50 msgid "Most recent" msgstr "" -#: js/StringHelper.js:51 +#: planet/js/StringHelper.js:51 msgid "Most liked" msgstr "" -#: js/StringHelper.js:52 +#: planet/js/StringHelper.js:52 msgid "Most downloaded" msgstr "" -#: js/StringHelper.js:53 +#: planet/js/StringHelper.js:53 msgid "A-Z" msgstr "" -#: js/StringHelper.js:54 +#: planet/js/StringHelper.js:54 msgid "Sort by" msgstr "" -#: js/StringHelper.js:55 +#: planet/js/StringHelper.js:55 msgid "Load More Projects" msgstr "" -#: js/StringHelper.js:56 +#: planet/js/StringHelper.js:56 msgid "Last Updated" msgstr "" -#: js/StringHelper.js:57 +#: planet/js/StringHelper.js:57 msgid "Creation Date" msgstr "" -#: js/StringHelper.js:58 +#: planet/js/StringHelper.js:58 msgid "Number of Downloads:" msgstr "" -#: js/StringHelper.js:59 +#: planet/js/StringHelper.js:59 msgid "Number of Likes:" msgstr "" -#: js/StringHelper.js:60 +#: planet/js/StringHelper.js:60 msgid "Tags:" msgstr "" -#: js/StringHelper.js:65 +#: planet/js/StringHelper.js:65 msgid "Report projects which violate the Sugar Labs Code of Conduct." msgstr "" -#: js/StringHelper.js:66 +#: planet/js/StringHelper.js:66 msgid "Reason for reporting project" msgstr "" -#: js/StringHelper.js:70 +#: planet/js/StringHelper.js:70 msgid "Download as File" msgstr "" -#: js/GlobalPlanet.js:35 -msgid "No results found." -msgstr "" - -#: js/GlobalPlanet.js:51 -msgid "Remix of" -msgstr "" - -#: js/GlobalPlanet.js:509 -msgid "Cannot connect to server" -msgstr "" - -#: js/Publisher.js:30 -msgid "Feature unavailable - cannot connect to server. Reload Music Blocks to try again." -msgstr "" - -#: js/Publisher.js:218 -#: js/Publisher.js:235 -msgid "This field is required" -msgstr "" - -#: js/Publisher.js:225 -msgid "Title too long" +#: planet/js/helper.js:150 +msgid "Show fewer tags" msgstr "" -#: js/Publisher.js:242 -msgid "Description too long" +#: plugins/accelerometer.rtp:48 +msgid "motion x" msgstr "" -#: js/Publisher.js:339 -msgid "Server Error" +#: plugins/accelerometer.rtp:56 +msgid "motion y" msgstr "" -#: js/Publisher.js:339 -msgid "Try Again" +#: plugins/accelerometer.rtp:64 +msgid "motion z" msgstr "" -#: js/SaveInterface.js:34 -msgid "Open in Music Blocks" +#: plugins/facebook.rtp:27 +msgid "publish" msgstr "" -#: js/SaveInterface.js:35 -msgid "Open in Turtle Blocks" +#: plugins/maths.rtp:62 +msgid "power" msgstr "" -#: plugins/weather.rtp:68 -#: plugins/weather.rtp:97 -msgid "Days ahead must be in the range of -1 to 5." +#: plugins/maths.rtp:62 +msgid "base" msgstr "" -#: plugins/weather.rtp:122 -msgid "forecast" +#: plugins/maths.rtp:62 +msgid "exp" msgstr "" -#: plugins/weather.rtp:123 -#: plugins/weather.rtp:137 -#: plugins/weather.rtp:150 -msgid "city" +#: plugins/maths.rtp:99 +msgid "floor" msgstr "" -#: plugins/weather.rtp:124 -#: plugins/weather.rtp:138 -#: plugins/weather.rtp:151 -msgid "day" +#: plugins/maths.rtp:104 +msgid "ceiling" msgstr "" -#: plugins/weather.rtp:136 -msgid "high" +#: plugins/maths.rtp:109 +msgid "to degrees" msgstr "" -#: plugins/weather.rtp:149 -msgid "low" +#: plugins/maths.rtp:114 +msgid "to radians" msgstr "" #: plugins/nutrition.rtp:104 @@ -9457,45 +9866,6 @@ msgstr "" msgid "water" msgstr "" -#: plugins/maths.rtp:62 -#: plugins/examples.rtp:93 -msgid "power" -msgstr "" - -#: plugins/maths.rtp:62 -#: plugins/examples.rtp:93 -msgid "base" -msgstr "" - -#: plugins/maths.rtp:62 -#: plugins/examples.rtp:93 -msgid "exp" -msgstr "" - -#: plugins/maths.rtp:99 -#: plugins/examples.rtp:130 -msgid "floor" -msgstr "" - -#: plugins/maths.rtp:104 -#: plugins/examples.rtp:135 -msgid "ceiling" -msgstr "" - -#: plugins/maths.rtp:109 -#: plugins/examples.rtp:140 -msgid "to degrees" -msgstr "" - -#: plugins/maths.rtp:114 -#: plugins/examples.rtp:145 -msgid "to radians" -msgstr "" - -#: plugins/facebook.rtp:27 -msgid "publish" -msgstr "" - #: plugins/rodi.rtp:172 msgid "blink" msgstr "" @@ -9524,18 +9894,66 @@ msgstr "" msgid "move" msgstr "" -#: plugins/accelerometer.rtp:48 -msgid "motion x" +#: plugins/weather.rtp:68 +#: plugins/weather.rtp:97 +msgid "Days ahead must be in the range of -1 to 5." msgstr "" -#: plugins/accelerometer.rtp:56 -msgid "motion y" +#: plugins/weather.rtp:122 +msgid "forecast" msgstr "" -#: plugins/accelerometer.rtp:64 -msgid "motion z" +#: plugins/weather.rtp:123 +#: plugins/weather.rtp:137 +#: plugins/weather.rtp:150 +msgid "city" +msgstr "" + +#: plugins/weather.rtp:124 +#: plugins/weather.rtp:138 +#: plugins/weather.rtp:151 +msgid "day" +msgstr "" + +#: plugins/weather.rtp:136 +msgid "high" +msgstr "" + +#: plugins/weather.rtp:149 +msgid "low" msgstr "" +#: js/toolbar.js:70 + +#: js/toolbar.js:130 + +#: js/toolbar.js:194 + +#: js/toolbar.js:249 + +#~msgid "Toggle JavaScript Editor" +#~msgstr "" + +#: js/EnsembleBlocks.js:643 + +#~msgid "The Turrle pitch block returns the current pitch number being played by the specified turtle." +#~msgstr "" + +#: js/PitchActions.js:88 + +#~msgid "The Scalar Step Block must be used inside of a Note Block." +#~msgstr "" + +#: js/PitchActions.js:107 + +#~msgid "The Scalar Step Block must be preceded by a Pitch Block." +#~msgstr "" + +#: js/musickeyboard.js:2840 + +#~msgid "New action blocks generated!" +#~msgstr "" + #: js/toolbar.js:110 #: js/toolbar.js:204 @@ -9876,11 +10294,6 @@ msgstr "" #~msgid "The Time block returns the number of seconds that the program has been running." #~msgstr "" -#: js/help.js:95 - -#~msgid "Take a tour" -#~msgstr "" - #: js/GlobalCard.js:48 #~msgid "More Details" @@ -12779,11 +13192,6 @@ msgstr "" #~msgid "The save-stack button saves a stack onto a custom palette. It appears after a \"long press\" on a stack." #~msgstr "" -#: js/musicutils.js:254 - -#~msgid "Custom" -#~msgstr "" - #: js/basicblocks.js:4785 #~msgid "Rhythm" diff --git a/po/bi.po b/po/bi.po index 4384734584..26ee3fa9df 100644 --- a/po/bi.po +++ b/po/bi.po @@ -2129,276 +2129,131 @@ #: js/planetInterface.js:104 #: js/planetInterface.js:104 #: js/planetInterface.js:104 -msgid "project undefined" -msgstr "" - -#: js/logo.js:61 -msgid "Not a valid pitch name" -msgstr "" - -#: js/logo.js:507 -#: js/ProgramBlocks.js:258 -#: js/ProgramBlocks.js:427 -msgid "You must select a file." -msgstr "" - -#: js/logo.js:1184 -#: js/turtles.js:118 -#: js/turtle-painter.js:1192 -#: js/turtle-painter.js:1193 -#: js/block.js:1463 -#: js/lilypond.js:757 -#: js/lilypond.js:921 -#: js/lilypond.js:959 -#: js/ActionBlocks.js:1223 -#: js/ProgramBlocks.js:1267 -msgid "start" -msgstr "" - -#: js/logo.js:1696 -msgid "Playback is ready." -msgstr "" - -#: js/blocks.js:1011 -#: js/blocks.js:3427 -#: js/blocks.js:3428 -#: js/blocks.js:3653 -#: js/blocks.js:4012 -#: js/blocks.js:4205 -#: js/blocks.js:5343 -#: js/blocks.js:6474 -#: js/palette.js:527 -#: js/palette.js:536 -#: js/palette.js:545 -#: js/palette.js:554 -#: js/palette.js:1131 -#: js/palette.js:1142 -#: js/palette.js:1153 -#: js/palette.js:1164 -#: js/palette.js:1183 -#: js/rubrics.js:529 -#: js/macros.js:170 -#: js/macros.js:266 -#: js/macros.js:267 -#: js/macros.js:276 -#: js/macros.js:828 -#: js/block.js:1449 -#: js/block.js:4164 -#: js/block.js:4182 -#: js/block.js:4193 -#: js/turtledefs.js:128 -#: js/turtledefs.js:230 -#: js/ActionBlocks.js:254 -#: js/ActionBlocks.js:307 -#: js/ActionBlocks.js:617 -#: js/ActionBlocks.js:716 -#: js/ActionBlocks.js:961 -#: js/ActionBlocks.js:1049 -#: js/ActionBlocks.js:1322 -#: js/ActionBlocks.js:1325 -#: js/ActionBlocks.js:1337 -#: js/ActionBlocks.js:1404 -#: js/MeterBlocks.js:715 -#: js/MeterBlocks.js:768 -#: js/MeterBlocks.js:831 -#: js/MeterBlocks.js:892 -#: js/phrasemaker.js:4412 -#: js/musickeyboard.js:2647 -#: js/rhythmruler.js:1928 -#: js/rhythmruler.js:1935 -#: js/rhythmruler.js:2119 -#: js/rhythmruler.js:2126 -msgid "action" -msgstr "" - -#: js/blocks.js:1205 -#: js/blocks.js:3380 -#: js/blocks.js:3770 -#: js/blocks.js:3801 -#: js/blocks.js:3850 -#: js/blocks.js:3885 -#: js/blocks.js:6497 -#: js/palette.js:509 -#: js/palette.js:638 -#: js/palette.js:1107 -#: js/BoxesBlocks.js:282 -#: js/BoxesBlocks.js:285 -#: js/BoxesBlocks.js:405 -#: js/BoxesBlocks.js:594 -msgid "box" -msgstr "" - -#: js/blocks.js:1680 -msgid "Consider breaking this stack into parts." +#: js/SaveInterface.js:59 +#: js/SaveInterface.js:61 +#: js/SaveInterface.js:93 +msgid "Music Blocks Project" msgstr "" -#: js/blocks.js:2408 -#: js/palette.js:653 -#: js/MediaBlocks.js:602 -msgid "open file" +#: js/SaveInterface.js:63 +msgid "This project was created in Music Blocks" msgstr "" -#: js/blocks.js:2415 -#: js/blocks.js:2423 -#: js/activity.js:1875 -msgid "audio file" +#: js/SaveInterface.js:67 +msgid "Music Blocks is a Free/Libre Software application." msgstr "" -#: js/blocks.js:2536 -#: js/blocks.js:3147 -#: js/block.js:3543 -msgid "on2" +#: js/SaveInterface.js:69 +msgid "The source code can be accessed at" msgstr "" -#: js/blocks.js:2538 -#: js/blocks.js:3149 -#: js/block.js:3545 -msgid "off" +#: js/SaveInterface.js:72 +msgid "For more information, please consult the" msgstr "" -#: js/blocks.js:2543 -#: js/blocks.js:3154 -#: js/palette.js:618 -#: js/block.js:3466 -#: js/BooleanBlocks.js:77 -#: js/BooleanBlocks.js:167 -#: js/BooleanBlocks.js:251 -#: js/BooleanBlocks.js:335 -#: js/BooleanBlocks.js:433 -#: js/BooleanBlocks.js:539 -#: js/BooleanBlocks.js:640 -#: js/BooleanBlocks.js:741 -#: js/BooleanBlocks.js:847 -#: js/BooleanBlocks.js:948 -#: js/BooleanBlocks.js:1033 -#: js/SensorsBlocks.js:910 -msgid "true" +#: js/SaveInterface.js:76 +#: js/turtledefs.js:795 +msgid "Music Blocks Guide" msgstr "" -#: js/blocks.js:2545 -#: js/blocks.js:3156 -#: js/block.js:3466 -#: js/BooleanBlocks.js:79 -#: js/BooleanBlocks.js:169 -#: js/BooleanBlocks.js:253 -#: js/BooleanBlocks.js:337 -#: js/BooleanBlocks.js:435 -#: js/BooleanBlocks.js:541 -#: js/BooleanBlocks.js:642 -#: js/BooleanBlocks.js:743 -#: js/BooleanBlocks.js:849 -#: js/BooleanBlocks.js:950 -#: js/SensorsBlocks.js:912 -msgid "false" +#: js/SaveInterface.js:83 +msgid "Alternatively, open the file in Music Blocks using the Load project button." msgstr "" -#: js/blocks.js:3183 -#: js/palette.js:574 -#: js/MediaBlocks.js:892 -#: js/MediaBlocks.js:963 -msgid "text" +#: js/SaveInterface.js:85 +msgid "Project Code" msgstr "" -#: js/blocks.js:3379 -#: js/palette.js:641 -#: js/palette.js:642 -#: js/BoxesBlocks.js:514 -msgid "store in box" +#: js/SaveInterface.js:87 +msgid "This code stores data about the blocks in a project." msgstr "" -#: js/blocks.js:3384 -#: js/blocks.js:3824 -#: js/blocks.js:3859 -#: js/blocks.js:3894 -#: js/blocks.js:5773 -#: js/blocks.js:5794 -#: js/BoxesBlocks.js:772 -msgid "box1" +#: js/SaveInterface.js:89 +msgid "Show" msgstr "" -#: js/blocks.js:3386 -#: js/blocks.js:3826 -#: js/blocks.js:3861 -#: js/blocks.js:3896 -#: js/blocks.js:5775 -#: js/blocks.js:5796 -#: js/BoxesBlocks.js:663 -msgid "box2" +#: js/SaveInterface.js:91 +msgid "Hide" msgstr "" -#: js/blocks.js:4058 -#: js/palette.js:639 -#: js/palette.js:644 -#: js/palette.js:1043 -#: js/BoxesBlocks.js:591 -msgid "store in" +#: js/SaveInterface.js:131 +#: js/SaveInterface.js:204 +#: js/SaveInterface.js:262 +#: js/SaveInterface.js:389 +#: js/SaveInterface.js:417 +#: js/activity.js:4884 +#: planet/js/ProjectStorage.js:27 +#: planet/js/GlobalPlanet.js:467 +#: planet/js/GlobalPlanet.js:469 +#: planet/js/GlobalPlanet.js:495 +#.TRANS: default project title when saving as Lilypond +msgid "My Project" msgstr "" -#: js/blocks.js:4058 -#: js/EnsembleBlocks.js:391 -#: js/EnsembleBlocks.js:402 -#: js/MediaBlocks.js:746 -#: js/ProgramBlocks.js:390 -#: js/ProgramBlocks.js:495 -#: js/ProgramBlocks.js:658 -#: js/BoxesBlocks.js:595 -#: js/PitchBlocks.js:656 -#: js/PitchBlocks.js:932 -#: js/PitchBlocks.js:1827 -#: js/ToneBlocks.js:1025 -#: js/DictBlocks.js:215 -#: js/DictBlocks.js:289 -msgid "name" +#: js/SaveInterface.js:197 +#: planet/js/SaveInterface.js:58 +msgid "No description provided" msgstr "" -#: js/blocks.js:4058 -#: js/RhythmBlocks.js:1130 -#: js/BoxesBlocks.js:75 -#: js/BoxesBlocks.js:595 -#: js/HeapBlocks.js:544 -#: js/DictBlocks.js:289 -#: js/DictBlocks.js:430 -msgid "value" +#: js/SaveInterface.js:332 +msgid "Your recording is in progress." msgstr "" -#: js/blocks.js:4907 -msgid "There is no block selected." +#: js/SaveInterface.js:401 +#.TRANS: File name prompt for save as Lilypond +msgid "File name" msgstr "" -#: js/blocks.js:5002 -#: js/MediaBlocks.js:888 -msgid "show" +#: js/SaveInterface.js:403 +#: planet/js/StringHelper.js:39 +#.TRANS: Project title prompt for save as Lilypond +msgid "Project title" msgstr "" -#: js/blocks.js:5005 -#: js/MediaBlocks.js:803 -#.TRANS: Avatar is the image used to determine the appearance of the mouse. -msgid "avatar" +#: js/SaveInterface.js:405 +#.TRANS: Project title prompt for save as Lilypond +msgid "Project author" msgstr "" -#: js/blocks.js:5008 -#: js/ToneBlocks.js:1010 -#: js/sampler.js:693 -#.TRANS: The sound sample that the user uploads. -msgid "sample" +#: js/SaveInterface.js:407 +#.TRANS: MIDI prompt for save as Lilypond +msgid "Include MIDI output?" msgstr "" -#: js/turtles.js:874 -msgid "Grid" +#: js/SaveInterface.js:409 +#.TRANS: Guitar prompt for save as Lilypond +msgid "Include guitar tablature output?" msgstr "" -#: js/turtles.js:891 -#: js/turtledefs.js:626 -msgid "Clean" +#: js/SaveInterface.js:411 +#.TRANS: Lilypond is a scripting language for generating sheet music +msgid "Save as Lilypond" msgstr "" -#: js/turtles.js:912 -#: js/turtledefs.js:632 -msgid "Collapse" +#: js/SaveInterface.js:426 +#: js/blocks/EnsembleBlocks.js:75 +#: js/blocks/EnsembleBlocks.js:154 +#: js/blocks/EnsembleBlocks.js:216 +#: js/blocks/EnsembleBlocks.js:302 +#: js/blocks/EnsembleBlocks.js:348 +#: js/blocks/EnsembleBlocks.js:389 +#: js/blocks/EnsembleBlocks.js:441 +#: js/blocks/EnsembleBlocks.js:490 +#: js/blocks/EnsembleBlocks.js:536 +#: js/blocks/EnsembleBlocks.js:583 +#: js/blocks/EnsembleBlocks.js:637 +#: js/blocks/EnsembleBlocks.js:753 +#: js/blocks/EnsembleBlocks.js:840 +#: js/blocks/EnsembleBlocks.js:899 +#: js/blocks/EnsembleBlocks.js:942 +#: js/blocks/EnsembleBlocks.js:1212 +#: js/blocks/EnsembleBlocks.js:1280 +#.TRANS: default project author when saving as Lilypond +msgid "Mr. Mouse" msgstr "" -#: js/turtles.js:940 -msgid "Expand" +#: js/SaveInterface.js:573 +msgid "The Lilypond code is copied to clipboard. You can paste it here: " msgstr "" #: js/languagebox.js:198 @@ -2409,6933 +2264,7487 @@ msgstr "" msgid "Music Blocks is already set to this language." msgstr "" -#: js/piemenus.js:200 -#: js/musicutils.js:808 -#: js/musicutils.js:824 -#: js/phrasemaker.js:1672 -#: js/musickeyboard.js:2041 -#: js/sampler.js:544 -#.TRANS: double sharp is a music term related to pitch -msgid "double sharp" +#: js/planetInterface.js:131 +msgid "project undefined" msgstr "" -#: js/piemenus.js:201 -#: js/PitchBlocks.js:1510 -#: js/PitchActions.js:580 -#: js/musicutils.js:806 -#: js/musicutils.js:825 -#: js/phrasemaker.js:1673 -#: js/musickeyboard.js:2042 -#: js/sampler.js:545 -#.TRANS: sharp is a half-step up in pitch -#.TRANS: sharp is a music term related to pitch -msgid "sharp" +#: js/rubrics.js:523 +#: js/turtledefs.js:119 +#: js/turtledefs.js:221 +#: js/blocks/RhythmBlockPaletteBlocks.js:52 +#: js/blocks/RhythmBlockPaletteBlocks.js:234 +#: js/blocks/ProgramBlocks.js:745 +#: js/widgets/rhythmruler.js:2057 +#: js/widgets/rhythmruler.js:2064 +#: js/widgets/rhythmruler.js:2133 +#: js/widgets/rhythmruler.js:2140 +#: js/widgets/rhythmruler.js:2219 +#.TRANS: an arrangement of notes based on duration +msgid "rhythm" msgstr "" -#: js/piemenus.js:202 -#: js/musicutils.js:804 -#: js/musicutils.js:826 -#: js/phrasemaker.js:1674 -#: js/musickeyboard.js:2043 -#: js/sampler.js:546 -#.TRANS: natural is a music term related to pitch -msgid "natural" +#: js/rubrics.js:524 +#: js/turtledefs.js:121 +#: js/turtledefs.js:223 +#: js/block-verbose.js:2622 +#: js/block.js:2550 +#: js/blocks/IntervalsBlocks.js:63 +#: js/blocks/SensorsBlocks.js:178 +#: js/blocks/PitchBlocks.js:1839 +#: js/blocks/PitchBlocks.js:1853 +#: js/widgets/musickeyboard.js:1935 +#: js/widgets/phrasemaker.js:1036 +#.TRANS: pitch number +#.TRANS: pitch number +#.TRANS: we specify pitch in terms of a name and an octave. The name can be CDEFGAB or Do Re Mi Fa Sol La Ti. Octave is a number between 1 and 8. +msgid "pitch" msgstr "" -#: js/piemenus.js:203 -#: js/PitchBlocks.js:1469 -#: js/PitchActions.js:583 -#: js/musicutils.js:802 -#: js/musicutils.js:827 -#: js/phrasemaker.js:1675 -#: js/musickeyboard.js:2044 -#: js/sampler.js:547 -#.TRANS: flat is a half-step down in pitch -#.TRANS: flat is a music term related to pitch -msgid "flat" +#: js/rubrics.js:525 +#: js/turtledefs.js:123 +#: js/turtledefs.js:225 +msgid "tone" msgstr "" -#: js/piemenus.js:204 -#: js/musicutils.js:800 -#: js/musicutils.js:828 -#: js/phrasemaker.js:1676 -#: js/musickeyboard.js:2045 -#: js/sampler.js:548 -#.TRANS: double flat is a music term related to pitch -msgid "double flat" +#: js/rubrics.js:526 +#: js/lilypond.js:605 +#: js/lilypond.js:904 +#: js/lilypond.js:910 +#: js/lilypond.js:948 +msgid "mouse" msgstr "" -#: js/piemenus.js:2861 -#: js/PitchBlocks.js:1357 -#: js/musicutils.js:627 -#.TRANS: unison means the note is the same as the current note -#.TRANS: unison is a music term related to intervals -msgid "unison" +#: js/rubrics.js:527 +#: js/turtledefs.js:132 +#: js/turtledefs.js:234 +#: js/widgets/phrasemaker.js:1040 +msgid "pen" msgstr "" -#: js/piemenus.js:3015 -#: js/piemenus.js:3088 -#: js/musicutils.js:635 -#: js/musicutils.js:810 -#: js/musicutils.js:912 -#.TRANS: major is a music term related to intervals and mode -msgid "major" +#: js/rubrics.js:528 +#: js/turtledefs.js:133 +#: js/turtledefs.js:235 +#: js/blocks/NumberBlocks.js:981 +#: js/blocks/PitchBlocks.js:1717 +#: js/blocks/PitchBlocks.js:1758 +msgid "number" msgstr "" -#: js/piemenus.js:3015 -#: js/piemenus.js:3088 -#: js/musicutils.js:653 -#.TRANS: modal scale for music -msgid "ionian" +#: js/rubrics.js:529 +#: js/turtledefs.js:127 +#: js/turtledefs.js:229 +msgid "flow" msgstr "" -#: js/piemenus.js:3017 -#: js/piemenus.js:3092 -#: js/musicutils.js:633 -#: js/musicutils.js:811 -#: js/musicutils.js:909 -#.TRANS: minor is a music term related to intervals and mode -msgid "minor" +#: js/rubrics.js:530 +#: js/turtledefs.js:128 +#: js/turtledefs.js:230 +#: js/block-verbose.js:1609 +#: js/block-verbose.js:4559 +#: js/block-verbose.js:4577 +#: js/block-verbose.js:4588 +#: js/block.js:1573 +#: js/block.js:4483 +#: js/block.js:4501 +#: js/block.js:4512 +#: js/blocks.js:1018 +#: js/blocks.js:3491 +#: js/blocks.js:3492 +#: js/blocks.js:3717 +#: js/blocks.js:4076 +#: js/blocks.js:4269 +#: js/blocks.js:5432 +#: js/blocks.js:6563 +#: js/macros.js:170 +#: js/macros.js:266 +#: js/macros.js:267 +#: js/macros.js:276 +#: js/macros.js:828 +#: js/palette.js:527 +#: js/palette.js:536 +#: js/palette.js:545 +#: js/palette.js:554 +#: js/palette.js:1129 +#: js/palette.js:1140 +#: js/palette.js:1151 +#: js/palette.js:1162 +#: js/palette.js:1181 +#: js/blocks/ActionBlocks.js:254 +#: js/blocks/ActionBlocks.js:307 +#: js/blocks/ActionBlocks.js:617 +#: js/blocks/ActionBlocks.js:716 +#: js/blocks/ActionBlocks.js:961 +#: js/blocks/ActionBlocks.js:1049 +#: js/blocks/ActionBlocks.js:1322 +#: js/blocks/ActionBlocks.js:1325 +#: js/blocks/ActionBlocks.js:1337 +#: js/blocks/ActionBlocks.js:1404 +#: js/blocks/MeterBlocks.js:715 +#: js/blocks/MeterBlocks.js:768 +#: js/blocks/MeterBlocks.js:831 +#: js/blocks/MeterBlocks.js:892 +#: js/widgets/musickeyboard.js:2986 +#: js/widgets/phrasemaker.js:4913 +#: js/widgets/rhythmruler.js:2319 +#: js/widgets/rhythmruler.js:2326 +#: js/widgets/rhythmruler.js:2511 +#: js/widgets/rhythmruler.js:2518 +msgid "action" msgstr "" -#: js/piemenus.js:3017 -#: js/piemenus.js:3092 -#: js/musicutils.js:663 -#.TRANS: modal scale for music -msgid "aeolian" +#: js/rubrics.js:531 +#: js/turtledefs.js:136 +#: js/turtledefs.js:238 +msgid "sensors" msgstr "" -#: js/piemenus.js:3407 -msgid "Duplicate" +#: js/rubrics.js:532 +#: js/turtledefs.js:135 +#: js/turtledefs.js:237 +#: js/blocks/MediaBlocks.js:930 +msgid "media" msgstr "" -#: js/piemenus.js:3408 -#: js/turtledefs.js:534 -msgid "Extract" +#: js/rubrics.js:533 +msgid "mice" msgstr "" -#: js/piemenus.js:3409 -msgid "Move to trash" +#: js/toolbar.js:48 +#: js/toolbar.js:109 +msgid "About Music Blocks" msgstr "" -#: js/piemenus.js:3410 -#: js/timbre.js:968 -#: js/StringHelper.js:69 -msgid "Close" +#: js/toolbar.js:49 +#: js/toolbar.js:110 +#: js/toolbar.js:175 +#: js/toolbar.js:231 +#: js/turtledefs.js:445 +#: js/turtledefs.js:482 +#: js/activity.js:2660 +#: js/activity.js:2671 +#: js/activity.js:2902 +#: js/widgets/modewidget.js:77 +#: js/widgets/meterwidget.js:185 +#: js/widgets/pitchdrummatrix.js:147 +#: js/widgets/pitchdrummatrix.js:687 +#: js/widgets/pitchdrummatrix.js:689 +#: js/widgets/pitchdrummatrix.js:741 +#: js/widgets/pitchdrummatrix.js:743 +#: js/widgets/pitchdrummatrix.js:758 +#: js/widgets/pitchdrummatrix.js:760 +#: js/widgets/pitchdrummatrix.js:789 +#: js/widgets/pitchdrummatrix.js:791 +#: js/widgets/pitchstaircase.js:121 +#: js/widgets/temperament.js:610 +#: js/widgets/temperament.js:613 +#: js/widgets/temperament.js:673 +#: js/widgets/temperament.js:675 +#: js/widgets/temperament.js:2017 +#: js/widgets/temperament.js:2019 +#: js/widgets/tempo.js:84 +#: js/widgets/tempo.js:86 +#: js/widgets/timbre.js:432 +#: js/widgets/timbre.js:434 +#: js/widgets/timbre.js:465 +#: js/widgets/timbre.js:467 +#: js/widgets/timbre.js:746 +#: js/widgets/aiwidget.js:647 +#: js/widgets/aiwidget.js:654 +#: js/widgets/aiwidget.js:656 +#: js/widgets/arpeggio.js:90 +#: js/widgets/arpeggio.js:547 +#: js/widgets/arpeggio.js:549 +#: js/widgets/arpeggio.js:644 +#: js/widgets/arpeggio.js:646 +#: js/widgets/musickeyboard.js:676 +#: js/widgets/musickeyboard.js:872 +#: js/widgets/musickeyboard.js:874 +#: js/widgets/musickeyboard.js:953 +#: js/widgets/musickeyboard.js:955 +#: js/widgets/phrasemaker.js:513 +#: js/widgets/phrasemaker.js:523 +#: js/widgets/phrasemaker.js:525 +#: js/widgets/phrasemaker.js:4304 +#: js/widgets/phrasemaker.js:4528 +#: js/widgets/phrasemaker.js:4533 +#: js/widgets/phrasemaker.js:4535 +#: js/widgets/phrasemaker.js:4650 +#: js/widgets/rhythmruler.js:637 +#: js/widgets/rhythmruler.js:639 +#: js/widgets/rhythmruler.js:653 +#: js/widgets/rhythmruler.js:655 +#: js/widgets/sampler.js:162 +#: js/widgets/sampler.js:164 +#: js/widgets/sampler.js:363 +msgid "Play" msgstr "" -#: js/piemenus.js:3416 -msgid "Save stack" +#: js/toolbar.js:50 +#: js/toolbar.js:111 +#: js/toolbar.js:176 +#: js/toolbar.js:232 +#: js/turtledefs.js:451 +#: js/turtledefs.js:488 +#: js/activity.js:2679 +#: js/widgets/modewidget.js:99 +#: js/widgets/modewidget.js:101 +#: js/widgets/meterwidget.js:206 +#: js/widgets/meterwidget.js:208 +#: js/widgets/pitchdrummatrix.js:674 +#: js/widgets/pitchdrummatrix.js:676 +#: js/widgets/temperament.js:2002 +#: js/widgets/temperament.js:2004 +#: js/widgets/arpeggio.js:534 +#: js/widgets/arpeggio.js:536 +#: js/widgets/phrasemaker.js:534 +#: js/widgets/phrasemaker.js:536 +msgid "Stop" msgstr "" -#: js/piemenus.js:3420 -#: js/toolbar.js:60 -#: js/toolbar.js:120 -#: js/toolbar.js:185 -#: js/toolbar.js:240 -#: js/turtledefs.js:752 -msgid "Help" +#: js/toolbar.js:51 +#: js/toolbar.js:112 +#: js/toolbar.js:177 +#: js/toolbar.js:233 +#: js/turtledefs.js:498 +msgid "Record" msgstr "" -#: js/piemenus.js:3762 -msgid "You have chosen key " +#: js/toolbar.js:52 +#: js/toolbar.js:53 +msgid "Full screen" msgstr "" -#: js/piemenus.js:3766 -msgid " for your pitch preview." +#: js/toolbar.js:54 +#: js/toolbar.js:115 +#: js/toolbar.js:180 +#: js/toolbar.js:236 +#: js/turtledefs.js:504 +msgid "Toggle Fullscreen" +msgstr "" + +#: js/toolbar.js:55 +#: js/toolbar.js:116 +#: js/toolbar.js:181 +#: js/toolbar.js:237 +#: js/turtledefs.js:510 +#: planet/js/StringHelper.js:33 +msgid "New project" +msgstr "" + +#: js/toolbar.js:56 +#: js/toolbar.js:117 +#: js/toolbar.js:182 +#: js/toolbar.js:238 +#: js/turtledefs.js:516 +msgid "Load project from file" +msgstr "" + +#: js/toolbar.js:57 +#: js/toolbar.js:118 +#: js/toolbar.js:119 +#: js/toolbar.js:183 +#: js/toolbar.js:239 +#: js/turtledefs.js:541 +#: js/turtledefs.js:550 +#: js/turtledefs.js:571 +msgid "Save project" +msgstr "" + +#: js/toolbar.js:58 +#: js/toolbar.js:77 +#: js/toolbar.js:79 +#: js/toolbar.js:138 +#: js/toolbar.js:147 +#: js/toolbar.js:149 +#: js/toolbar.js:184 +#: js/toolbar.js:202 +#: js/toolbar.js:204 +#: js/toolbar.js:240 +#: js/toolbar.js:258 +#: js/toolbar.js:260 +msgid "Save project as HTML" +msgstr "" + +#: js/toolbar.js:59 +#: js/toolbar.js:120 +#: js/toolbar.js:185 +#: js/toolbar.js:241 +msgid "Find and share projects" +msgstr "" + +#: js/toolbar.js:60 +#: js/toolbar.js:121 +#: js/toolbar.js:186 +#: js/toolbar.js:242 +msgid "Offline. Sharing is unavailable" +msgstr "" + +#: js/toolbar.js:61 +#: js/toolbar.js:122 +#: js/toolbar.js:187 +#: js/toolbar.js:243 +msgid "Auxiliary menu" +msgstr "" + +#: js/toolbar.js:62 +#: js/toolbar.js:123 +#: js/toolbar.js:188 +#: js/toolbar.js:244 +#: js/turtledefs.js:752 +#: js/piemenus.js:3423 +msgid "Help" +msgstr "" + +#: js/toolbar.js:63 +#: js/toolbar.js:124 +#: js/toolbar.js:189 +#: js/toolbar.js:245 +msgid "Run slowly" +msgstr "" + +#: js/toolbar.js:64 +#: js/toolbar.js:125 +#: js/toolbar.js:190 +#: js/toolbar.js:246 +#: js/turtledefs.js:682 +msgid "Run step by step" +msgstr "" + +#: js/toolbar.js:65 +#: js/toolbar.js:126 +#: js/toolbar.js:191 +#: js/toolbar.js:247 +#: js/turtledefs.js:689 +msgid "Display statistics" +msgstr "" + +#: js/toolbar.js:66 +#: js/toolbar.js:127 +#: js/toolbar.js:192 +#: js/toolbar.js:248 +msgid "Load plugin" +msgstr "" + +#: js/toolbar.js:67 +#: js/toolbar.js:128 +#: js/toolbar.js:193 +#: js/toolbar.js:249 +#: js/turtledefs.js:696 +msgid "Delete plugin" +msgstr "" + +#: js/toolbar.js:68 +#: js/toolbar.js:129 +#: js/toolbar.js:194 +#: js/toolbar.js:250 +msgid "Enable horizontal scrolling" +msgstr "" + +#: js/toolbar.js:69 +#: js/toolbar.js:130 +#: js/toolbar.js:195 +#: js/toolbar.js:251 +msgid "Disable horizontal scrolling" +msgstr "" + +#: js/toolbar.js:70 +#: js/toolbar.js:131 +#: js/toolbar.js:196 +#: js/toolbar.js:252 +#: planet/js/LocalCard.js:54 +#: planet/js/StringHelper.js:71 +msgid "Merge with current project" +msgstr "" + +#: js/toolbar.js:71 +#: js/toolbar.js:132 +msgid "Set Pitch Preview" +msgstr "" + +#: js/toolbar.js:72 +#: js/toolbar.js:133 +#: js/toolbar.js:197 +#: js/toolbar.js:253 +msgid "JavaScript Editor" +msgstr "" + +#: js/toolbar.js:73 +#: js/toolbar.js:134 +#: js/toolbar.js:198 +#: js/toolbar.js:254 +#: js/turtledefs.js:724 +msgid "Restore" +msgstr "" + +#: js/toolbar.js:74 +#: js/toolbar.js:135 +#: js/toolbar.js:199 +#: js/toolbar.js:255 +msgid "Switch to beginner mode" +msgstr "" + +#: js/toolbar.js:75 +#: js/toolbar.js:136 +#: js/toolbar.js:200 +#: js/toolbar.js:256 +msgid "Switch to advanced mode" +msgstr "" + +#: js/toolbar.js:76 +#: js/toolbar.js:137 +#: js/toolbar.js:146 +#: js/toolbar.js:201 +#: js/toolbar.js:257 +#: js/turtledefs.js:738 +msgid "Select language" +msgstr "" + +#: js/toolbar.js:78 +#: js/toolbar.js:81 +#: js/toolbar.js:140 +#: js/turtledefs.js:579 +msgid "Save mouse artwork as PNG" +msgstr "" + +#: js/toolbar.js:80 +#: js/toolbar.js:139 +#: js/turtledefs.js:575 +msgid "Save mouse artwork as SVG" +msgstr "" + +#: js/toolbar.js:82 +#: js/toolbar.js:141 +#: js/turtledefs.js:583 +msgid "Save music as WAV" +msgstr "" + +#: js/toolbar.js:83 +#: js/toolbar.js:142 +#: js/turtledefs.js:587 +msgid "Save sheet music as ABC" +msgstr "" + +#: js/toolbar.js:84 +#: js/toolbar.js:143 +#: js/turtledefs.js:591 +msgid "Save sheet music as Lilypond" +msgstr "" + +#: js/toolbar.js:85 +msgid "Save sheet music as MusicXML" +msgstr "" + +#: js/toolbar.js:86 +#: js/toolbar.js:144 +#: js/toolbar.js:152 +#: js/toolbar.js:207 +#: js/toolbar.js:263 +#: js/turtledefs.js:562 +#: js/turtledefs.js:595 +msgid "Save block artwork as SVG" +msgstr "" + +#: js/toolbar.js:87 +#: js/toolbar.js:145 +#: js/toolbar.js:153 +#: js/toolbar.js:208 +#: js/toolbar.js:264 +#: js/turtles.js:911 +msgid "Confirm" +msgstr "" + +#: js/toolbar.js:88 +#: js/toolbar.js:154 +#: js/toolbar.js:209 +#: js/toolbar.js:265 +msgid "English (United States)" +msgstr "" + +#: js/toolbar.js:89 +#: js/toolbar.js:155 +#: js/toolbar.js:210 +#: js/toolbar.js:266 +msgid "English (United Kingdom)" +msgstr "" + +#: js/toolbar.js:90 +#: js/toolbar.js:156 +#: js/toolbar.js:211 +#: js/toolbar.js:267 +msgid "日本語" +msgstr "" + +#: js/toolbar.js:91 +msgid "한국어" +msgstr "" + +#: js/toolbar.js:92 +#: js/toolbar.js:158 +#: js/toolbar.js:213 +#: js/toolbar.js:269 +msgid "español" +msgstr "" + +#: js/toolbar.js:93 +#: js/toolbar.js:159 +#: js/toolbar.js:214 +#: js/toolbar.js:270 +msgid "português" +msgstr "" + +#: js/toolbar.js:94 +#: js/toolbar.js:160 +#: js/toolbar.js:215 +#: js/toolbar.js:271 +msgid "にほんご" +msgstr "" + +#: js/toolbar.js:95 +#: js/toolbar.js:161 +#: js/toolbar.js:216 +#: js/toolbar.js:272 +msgid "中文" +msgstr "" + +#: js/toolbar.js:96 +#: js/toolbar.js:162 +#: js/toolbar.js:217 +#: js/toolbar.js:273 +msgid "ภาษาไทย" +msgstr "" + +#: js/toolbar.js:97 +#: js/toolbar.js:163 +#: js/toolbar.js:218 +#: js/toolbar.js:274 +msgid "aymara" +msgstr "" + +#: js/toolbar.js:98 +#: js/toolbar.js:164 +#: js/toolbar.js:219 +#: js/toolbar.js:275 +msgid "quechua" +msgstr "" + +#: js/toolbar.js:99 +#: js/toolbar.js:165 +#: js/toolbar.js:220 +#: js/toolbar.js:276 +msgid "guarani" +msgstr "" + +#: js/toolbar.js:100 +#: js/toolbar.js:166 +#: js/toolbar.js:221 +#: js/toolbar.js:277 +msgid "हिंदी" +msgstr "" + +#: js/toolbar.js:101 +#: js/toolbar.js:168 +#: js/toolbar.js:222 +#: js/toolbar.js:279 +msgid "igbo" +msgstr "" + +#: js/toolbar.js:102 +#: js/toolbar.js:169 +#: js/toolbar.js:223 +#: js/toolbar.js:280 +msgid "عربى" +msgstr "" + +#: js/toolbar.js:103 +#: js/toolbar.js:167 +#: js/toolbar.js:224 +#: js/toolbar.js:278 +msgid "తెలుగు" +msgstr "" + +#: js/toolbar.js:104 +#: js/toolbar.js:170 +#: js/toolbar.js:225 +#: js/toolbar.js:281 +msgid "עִברִית" +msgstr "" + +#: js/toolbar.js:113 +#: js/toolbar.js:114 +#: js/toolbar.js:178 +#: js/toolbar.js:179 +#: js/toolbar.js:234 +#: js/toolbar.js:235 +msgid "Full Screen" +msgstr "" + +#: js/toolbar.js:148 +#: js/toolbar.js:151 +#: js/toolbar.js:203 +#: js/toolbar.js:206 +#: js/toolbar.js:259 +#: js/toolbar.js:262 +#: js/turtledefs.js:558 +msgid "Save turtle artwork as PNG" +msgstr "" + +#: js/toolbar.js:150 +#: js/toolbar.js:205 +#: js/toolbar.js:261 +#: js/turtledefs.js:554 +msgid "Save turtle artwork as SVG" +msgstr "" + +#: js/toolbar.js:157 +#: js/toolbar.js:212 +#: js/toolbar.js:268 +msgid "한국인" +msgstr "" + +#: js/toolbar.js:174 +#: js/toolbar.js:230 +msgid "About Turtle Blocks" +msgstr "" + +#: js/toolbar.js:446 +#: js/toolbar.js:457 +#: js/toolbar.js:497 +msgid "Turtle Wrap Off" +msgstr "" + +#: js/toolbar.js:466 +#: js/toolbar.js:506 +msgid "Turtle Wrap On" +msgstr "" + +#: js/turtle-painter.js:1192 +#: js/turtle-painter.js:1193 +#: js/turtles.js:118 +#: js/block-verbose.js:1623 +#: js/block.js:1587 +#: js/lilypond.js:749 +#: js/lilypond.js:913 +#: js/lilypond.js:951 +#: js/logo.js:1184 +#: js/blocks/ActionBlocks.js:1223 +#: js/blocks/ProgramBlocks.js:1267 +msgid "start" +msgstr "" + +#: js/turtledefs.js:40 +#.TRANS: put the URL to the guide here, e.g., https://github.com/sugarlabs/turtleblocksjs/tree/master/guide/README.md +msgid "guide url" +msgstr "" + +#: js/turtledefs.js:85 +#: js/turtledefs.js:437 +msgid "Turtle Blocks is a Logo-inspired turtle that draws colorful pictures with snap-together visual-programming blocks." +msgstr "" + +#: js/turtledefs.js:118 +#: js/turtledefs.js:220 +msgid "search" +msgstr "" + +#: js/turtledefs.js:120 +#: js/turtledefs.js:222 +#: js/blocks/MeterBlocks.js:1343 +#: js/blocks/WidgetBlocks.js:522 +#.TRANS: musical meter (time signature), e.g., 4:4 +msgid "meter" +msgstr "" + +#: js/turtledefs.js:122 +#: js/turtledefs.js:224 +msgid "intervals" +msgstr "" + +#: js/turtledefs.js:124 +#: js/turtledefs.js:226 +msgid "ornament" +msgstr "" + +#: js/turtledefs.js:125 +#: js/turtledefs.js:227 +#: js/blocks/VolumeBlocks.js:362 +#: js/blocks/VolumeBlocks.js:502 +#: js/blocks/VolumeBlocks.js:545 +msgid "volume" +msgstr "" + +#: js/turtledefs.js:126 +#: js/turtledefs.js:228 +#: js/block-verbose.js:1700 +#: js/block-verbose.js:2626 +#: js/block.js:1664 +#: js/block.js:2554 +#: js/lilypond.js:732 +#: js/lilypond.js:897 +#: js/lilypond.js:941 +#: js/palette.js:577 +#: js/blocks/RhythmBlocks.js:766 +#: js/blocks/DrumBlocks.js:477 +#: js/blocks/VolumeBlocks.js:502 +#: js/widgets/phrasemaker.js:1038 +msgid "drum" +msgstr "" + +#: js/turtledefs.js:129 +#: js/turtledefs.js:231 +msgid "boxes" +msgstr "" + +#: js/turtledefs.js:130 +#: js/turtledefs.js:232 +msgid "widgets" +msgstr "" + +#: js/turtledefs.js:131 +#: js/turtledefs.js:233 +#: js/widgets/phrasemaker.js:1039 +msgid "graphics" +msgstr "" + +#: js/turtledefs.js:134 +#: js/turtledefs.js:236 +msgid "boolean" +msgstr "" + +#: js/turtledefs.js:137 +#: js/turtledefs.js:239 +#: js/blocks/HeapBlocks.js:59 +#: js/widgets/status.js:147 +msgid "heap" +msgstr "" + +#: js/turtledefs.js:138 +#: js/turtledefs.js:240 +#: js/blocks/DictBlocks.js:142 +#: js/blocks/ProgramBlocks.js:495 +msgid "dictionary" +msgstr "" + +#: js/turtledefs.js:139 +#: js/turtledefs.js:241 +msgid "ensemble" +msgstr "" + +#: js/turtledefs.js:140 +#: js/turtledefs.js:242 +msgid "extras" +msgstr "" + +#: js/turtledefs.js:142 +#: js/turtledefs.js:244 +#.TRANS: program as in computer program +#.TRANS: program as in computer program +msgid "program" +msgstr "" + +#: js/turtledefs.js:143 +#: js/turtledefs.js:245 +msgid "my blocks" +msgstr "" + +#: js/turtledefs.js:185 +#: js/turtledefs.js:281 +msgid "artwork" +msgstr "" + +#: js/turtledefs.js:185 +#: js/turtledefs.js:281 +msgid "logic" +msgstr "" + +#: js/turtledefs.js:185 +#: js/turtledefs.js:281 +msgid "music" +msgstr "" + +#: js/turtledefs.js:187 +#: js/turtledefs.js:463 +msgid "Music Blocks is a collection of tools for exploring fundamental musical concepts in a fun way." +msgstr "" + +#: js/turtledefs.js:436 +msgid "Welcome to Turtle Blocks" +msgstr "" + +#: js/turtledefs.js:438 +#: js/turtledefs.js:465 +#: js/turtledefs.js:774 +#: js/turtledefs.js:805 +msgid "The current version is" +msgstr "" + +#: js/turtledefs.js:446 +#: js/turtledefs.js:483 +msgid "Click the run button to run the project in fast mode." +msgstr "" + +#: js/turtledefs.js:452 +msgid "Stop the turtle." +msgstr "" + +#: js/turtledefs.js:454 +#: js/turtledefs.js:491 +msgid "You can also type Alt-S to stop." +msgstr "" + +#: js/turtledefs.js:462 +#: js/widgets/help.js:333 +msgid "Welcome to Music Blocks" +msgstr "" + +#: js/turtledefs.js:472 +#: js/widgets/help.js:334 +msgid "Meet Mr. Mouse!" +msgstr "" + +#: js/turtledefs.js:473 +msgid "Mr Mouse is our Music Blocks conductor." +msgstr "" + +#: js/turtledefs.js:475 +msgid "Mr Mouse encourages you to explore Music Blocks." +msgstr "" + +#: js/turtledefs.js:477 +msgid "Let us start our tour!" +msgstr "" + +#: js/turtledefs.js:489 +msgid "Stop the music (and the mice)." +msgstr "" + +#: js/turtledefs.js:499 +msgid "Record your project as video." +msgstr "" + +#: js/turtledefs.js:505 +msgid "Toggle Fullscreen mode." +msgstr "" + +#: js/turtledefs.js:511 +msgid "Initialize a new project." +msgstr "" + +#: js/turtledefs.js:517 +msgid "You can also load projects from the file system." +msgstr "" + +#: js/turtledefs.js:522 +#: planet/js/StringHelper.js:46 +msgid "Delete" +msgstr "" + +#: js/turtledefs.js:523 +msgid "To delete a block, just right-click on it, then you will be able to see the delete option" +msgstr "" + +#: js/turtledefs.js:528 +#: js/activity.js:2649 +#: planet/js/LocalCard.js:31 +msgid "Copy" +msgstr "" + +#: js/turtledefs.js:529 +msgid "To copy a block, just right-click on it, then you will be able to see the copy option" +msgstr "" + +#: js/turtledefs.js:534 +#: js/piemenus.js:3411 +msgid "Extract" +msgstr "" + +#: js/turtledefs.js:535 +msgid "To extract a block, just right-click on it, then you will be able to see the extract option" +msgstr "" + +#: js/turtledefs.js:542 +#: js/turtledefs.js:552 +#: js/turtledefs.js:573 +msgid "Save your project to a file." +msgstr "" + +#: js/turtledefs.js:549 +#: js/turtledefs.js:570 +msgid "save" +msgstr "" + +#: js/turtledefs.js:556 +#: js/turtledefs.js:577 +msgid "Save graphics from your project to as SVG." +msgstr "" + +#: js/turtledefs.js:560 +#: js/turtledefs.js:581 +msgid "Save graphics from your project as PNG." +msgstr "" + +#: js/turtledefs.js:564 +#: js/turtledefs.js:597 +msgid "Save block artwork as an SVG file." +msgstr "" + +#: js/turtledefs.js:585 +msgid "Save audio from your project as WAV." +msgstr "" + +#: js/turtledefs.js:589 +msgid "Save your project to as an ABC file." +msgstr "" + +#: js/turtledefs.js:593 +msgid "Save your project to as a Lilypond file." +msgstr "" + +#: js/turtledefs.js:604 +msgid "Load samples from server" +msgstr "" + +#: js/turtledefs.js:605 +msgid "This button opens a viewer for loading example projects." +msgstr "" + +#: js/turtledefs.js:611 +msgid "Palette buttons" +msgstr "" + +#: js/turtledefs.js:612 +msgid "This toolbar contains the palette buttons including Rhythm Pitch Tone Action and more." +msgstr "" + +#: js/turtledefs.js:614 +msgid "Click to show the palettes of blocks and drag blocks from the palettes onto the canvas to use them." +msgstr "" + +#: js/turtledefs.js:620 +msgid "Cartesian/Polar" +msgstr "" + +#: js/turtledefs.js:621 +msgid "Show or hide a coordinate grid." +msgstr "" + +#: js/turtledefs.js:626 +#: js/turtles.js:902 +msgid "Clean" +msgstr "" + +#: js/turtledefs.js:627 +msgid "Clear the screen and return the mice to their initial positions." +msgstr "" + +#: js/turtledefs.js:632 +#: js/turtles.js:955 +msgid "Collapse" +msgstr "" + +#: js/turtledefs.js:633 +msgid "Collapse the graphics window." msgstr "" -#: js/palette.js:571 -msgid "grid" +#: js/turtledefs.js:638 +#: js/activity.js:5684 +msgid "Home" msgstr "" -#: js/palette.js:577 -#: js/block.js:1540 -#: js/block.js:2343 -#: js/turtledefs.js:126 -#: js/turtledefs.js:228 -#: js/lilypond.js:740 -#: js/lilypond.js:905 -#: js/lilypond.js:949 -#: js/DrumBlocks.js:486 -#: js/RhythmBlocks.js:766 -#: js/VolumeBlocks.js:502 -#: js/phrasemaker.js:823 -msgid "drum" +#: js/turtledefs.js:639 +msgid "Return all blocks to the center of the screen." msgstr "" -#: js/palette.js:580 -msgid "effect" +#: js/turtledefs.js:644 +msgid "Show/hide blocks" msgstr "" -#: js/palette.js:586 -msgid "sargam" +#: js/turtledefs.js:645 +msgid "Hide or show the blocks and the palettes." msgstr "" -#: js/palette.js:589 -#: js/activity.js:1833 -#: js/RhythmBlocks.js:923 -#: js/PitchBlocks.js:442 -#: js/PitchBlocks.js:1748 -#.TRANS: a numeric mapping of the notes in an octave based on the musical mode -msgid "scale degree" +#: js/turtledefs.js:650 +msgid "Expand/collapse collapsable blocks" msgstr "" -#: js/palette.js:592 -#: js/activity.js:1860 -msgid "mode name" +#: js/turtledefs.js:651 +msgid "Expand or collapse start and action stacks." msgstr "" -#: js/palette.js:595 -#: js/activity.js:1839 -msgid "invert mode" +#: js/turtledefs.js:658 +#: js/activity.js:5704 +msgid "Decrease block size" msgstr "" -#: js/palette.js:598 -#: js/activity.js:1836 -msgid "voice name" +#: js/turtledefs.js:659 +msgid "Decrease the size of the blocks." msgstr "" -#: js/palette.js:601 -#: js/PitchBlocks.js:1181 -msgid "custom pitch" +#: js/turtledefs.js:664 +#: js/activity.js:5710 +msgid "Increase block size" msgstr "" -#: js/palette.js:605 -#: js/block.js:1456 -#: js/block.js:1575 -#: js/WidgetBlocks.js:218 -#: js/IntervalsBlocks.js:63 -msgid "temperament" +#: js/turtledefs.js:665 +msgid "Increase the size of the blocks." msgstr "" -#: js/palette.js:609 -msgid "accidental" +#: js/turtledefs.js:670 +msgid "Expand/collapse option toolbar" msgstr "" -#: js/palette.js:615 -#: js/activity.js:1866 -msgid "interval name" +#: js/turtledefs.js:671 +msgid "Click this button to expand or collapse the auxillary toolbar." msgstr "" -#: js/palette.js:633 -#: js/PitchBlocks.js:405 -msgid "pitch converter" +#: js/turtledefs.js:676 +msgid "Run slow" msgstr "" -#: js/rubrics.js:522 -#: js/turtledefs.js:119 -#: js/turtledefs.js:221 -#: js/RhythmBlockPaletteBlocks.js:52 -#: js/RhythmBlockPaletteBlocks.js:233 -#: js/ProgramBlocks.js:745 -#: js/rhythmruler.js:1670 -#: js/rhythmruler.js:1677 -#: js/rhythmruler.js:1745 -#: js/rhythmruler.js:1752 -#: js/rhythmruler.js:1830 -#.TRANS: an arrangement of notes based on duration -msgid "rhythm" +#: js/turtledefs.js:677 +msgid "Click to run the project in slow mode." msgstr "" -#: js/rubrics.js:523 -#: js/block.js:2339 -#: js/turtledefs.js:121 -#: js/turtledefs.js:223 -#: js/IntervalsBlocks.js:63 -#: js/PitchBlocks.js:1801 -#: js/PitchBlocks.js:1814 -#: js/SensorsBlocks.js:178 -#: js/phrasemaker.js:821 -#: js/musickeyboard.js:1653 -#.TRANS: pitch number -#.TRANS: we specify pitch in terms of a name and an octave. The name can be CDEFGAB or Do Re Mi Fa Sol La Ti. Octave is a number between 1 and 8. -msgid "pitch" +#: js/turtledefs.js:683 +msgid "Click to run the project step by step." msgstr "" -#: js/rubrics.js:524 -#: js/turtledefs.js:123 -#: js/turtledefs.js:225 -msgid "tone" +#: js/turtledefs.js:690 +msgid "Display statistics about your Music project." msgstr "" -#: js/rubrics.js:525 -#: js/lilypond.js:613 -#: js/lilypond.js:912 -#: js/lilypond.js:918 -#: js/lilypond.js:956 -msgid "mouse" +#: js/turtledefs.js:697 +msgid "Delete a selected plugin." msgstr "" -#: js/rubrics.js:526 -#: js/turtledefs.js:132 -#: js/turtledefs.js:234 -#: js/phrasemaker.js:825 -msgid "pen" +#: js/turtledefs.js:704 +msgid "Enable scrolling" msgstr "" -#: js/rubrics.js:527 -#: js/turtledefs.js:133 -#: js/turtledefs.js:235 -#: js/NumberBlocks.js:905 -#: js/PitchBlocks.js:1679 -#: js/PitchBlocks.js:1720 -msgid "number" +#: js/turtledefs.js:705 +msgid "You can scroll the blocks on the canvas." msgstr "" -#: js/rubrics.js:528 -#: js/turtledefs.js:127 -#: js/turtledefs.js:229 -msgid "flow" +#: js/turtledefs.js:714 +msgid "Wrap Turtle" msgstr "" -#: js/rubrics.js:530 -#: js/turtledefs.js:136 -#: js/turtledefs.js:238 -msgid "sensors" +#: js/turtledefs.js:715 +msgid "Turn Turtle wrapping On or Off." msgstr "" -#: js/rubrics.js:531 -#: js/turtledefs.js:135 -#: js/turtledefs.js:237 -#: js/MediaBlocks.js:930 -msgid "media" +#: js/turtledefs.js:725 +msgid "Restore blocks from the trash." msgstr "" -#: js/rubrics.js:532 -msgid "mice" +#: js/turtledefs.js:732 +msgid "Switch mode" msgstr "" -#: js/macros.js:711 -#: js/musicutils.js:783 -#: js/synthutils.js:181 -#.TRANS: animal sound effect -msgid "duck" +#: js/turtledefs.js:733 +msgid "Switch between beginner and advance modes." msgstr "" -#: js/toolbar.js:46 -#: js/toolbar.js:107 -msgid "About Music Blocks" +#: js/turtledefs.js:739 +msgid "Select your language preference." msgstr "" -#: js/toolbar.js:47 -#: js/toolbar.js:108 -#: js/toolbar.js:172 -#: js/toolbar.js:228 -#: js/turtledefs.js:445 -#: js/turtledefs.js:482 -#: js/activity.js:2281 -#: js/activity.js:2289 -#: js/activity.js:2520 -#: js/modewidget.js:77 -#: js/pitchstaircase.js:121 -#: js/phrasemaker.js:302 -#: js/phrasemaker.js:312 -#: js/phrasemaker.js:314 -#: js/phrasemaker.js:3901 -#: js/phrasemaker.js:4061 -#: js/phrasemaker.js:4066 -#: js/phrasemaker.js:4068 -#: js/phrasemaker.js:4183 -#: js/pitchdrummatrix.js:81 -#: js/pitchdrummatrix.js:574 -#: js/pitchdrummatrix.js:576 -#: js/pitchdrummatrix.js:628 -#: js/pitchdrummatrix.js:630 -#: js/pitchdrummatrix.js:645 -#: js/pitchdrummatrix.js:647 -#: js/pitchdrummatrix.js:674 -#: js/pitchdrummatrix.js:676 -#: js/temperament.js:477 -#: js/temperament.js:480 -#: js/temperament.js:540 -#: js/temperament.js:542 -#: js/temperament.js:1835 -#: js/temperament.js:1837 -#: js/temperament.js:1986 -#: js/temperament.js:1988 -#: js/musickeyboard.js:522 -#: js/musickeyboard.js:682 -#: js/musickeyboard.js:684 -#: js/musickeyboard.js:756 -#: js/musickeyboard.js:758 -#: js/rhythmruler.js:298 -#: js/rhythmruler.js:300 -#: js/rhythmruler.js:314 -#: js/rhythmruler.js:316 -#: js/sampler.js:96 -#: js/sampler.js:98 -#: js/sampler.js:229 -#: js/sampler.js:235 -#: js/sampler.js:237 -#: js/tempo.js:84 -#: js/tempo.js:86 -#: js/timbre.js:432 -#: js/timbre.js:434 -#: js/timbre.js:465 -#: js/timbre.js:467 -#: js/timbre.js:746 -#: js/meterwidget.js:80 -#: js/arpeggio.js:90 -#: js/arpeggio.js:547 -#: js/arpeggio.js:549 -#: js/arpeggio.js:644 -#: js/arpeggio.js:646 -msgid "Play" +#: js/turtledefs.js:745 +msgid "Keyboard shortcuts" msgstr "" -#: js/toolbar.js:48 -#: js/toolbar.js:109 -#: js/toolbar.js:173 -#: js/toolbar.js:229 -#: js/turtledefs.js:451 -#: js/turtledefs.js:488 -#: js/activity.js:2297 -#: js/modewidget.js:99 -#: js/modewidget.js:101 -#: js/phrasemaker.js:323 -#: js/phrasemaker.js:325 -#: js/pitchdrummatrix.js:561 -#: js/pitchdrummatrix.js:563 -#: js/temperament.js:1820 -#: js/temperament.js:1822 -#: js/meterwidget.js:101 -#: js/meterwidget.js:103 -#: js/arpeggio.js:534 -#: js/arpeggio.js:536 -msgid "Stop" +#: js/turtledefs.js:746 +msgid "You can type d to create a do block and r to create a re block etc." msgstr "" -#: js/toolbar.js:49 -#: js/toolbar.js:110 -#: js/toolbar.js:174 -#: js/toolbar.js:230 -#: js/turtledefs.js:498 -msgid "Record" +#: js/turtledefs.js:753 +msgid "Show these messages." msgstr "" -#: js/toolbar.js:50 -#: js/toolbar.js:51 -msgid "Full screen" +#: js/turtledefs.js:759 +#: js/turtledefs.js:790 +#: js/widgets/help.js:335 +msgid "Guide" msgstr "" -#: js/toolbar.js:52 -#: js/toolbar.js:112 -#: js/toolbar.js:177 -#: js/toolbar.js:232 -#: js/turtledefs.js:504 -msgid "Toggle Fullscreen" +#: js/turtledefs.js:760 +msgid "A detailed guide to Turtle Blocks is available." msgstr "" -#: js/toolbar.js:53 -#: js/toolbar.js:113 -#: js/toolbar.js:178 -#: js/toolbar.js:233 -#: js/turtledefs.js:510 -#: js/StringHelper.js:33 -msgid "New project" +#: js/turtledefs.js:764 +msgid "Turtle Blocks Guide" msgstr "" -#: js/toolbar.js:54 -#: js/toolbar.js:114 -#: js/toolbar.js:179 -#: js/toolbar.js:234 -#: js/turtledefs.js:516 -msgid "Load project from file" +#: js/turtledefs.js:767 +#: js/turtledefs.js:798 +#: js/widgets/help.js:336 +msgid "About" msgstr "" -#: js/toolbar.js:55 -#: js/toolbar.js:115 -#: js/toolbar.js:116 -#: js/toolbar.js:180 -#: js/toolbar.js:235 -#: js/turtledefs.js:541 -#: js/turtledefs.js:550 -#: js/turtledefs.js:571 -msgid "Save project" +#: js/turtledefs.js:768 +msgid "Turtle Blocks is an open source collection of tools for exploring musical concepts." msgstr "" -#: js/toolbar.js:56 -#: js/toolbar.js:75 -#: js/toolbar.js:77 -#: js/toolbar.js:135 -#: js/toolbar.js:144 -#: js/toolbar.js:146 -#: js/toolbar.js:181 -#: js/toolbar.js:199 -#: js/toolbar.js:201 -#: js/toolbar.js:236 -#: js/toolbar.js:254 -#: js/toolbar.js:256 -msgid "Save project as HTML" +#: js/turtledefs.js:770 +msgid "A full list of contributors can be found in the Turtle Blocks GitHub repository." +msgstr "" + +#: js/turtledefs.js:772 +msgid "Turtle Blocks is licensed under the AGPL." +msgstr "" + +#: js/turtledefs.js:780 +msgid "Turtle Blocks GitHub repository" +msgstr "" + +#: js/turtledefs.js:783 +#: js/turtledefs.js:814 +#: js/widgets/help.js:337 +#: js/widgets/help.js:359 +msgid "Congratulations." +msgstr "" + +#: js/turtledefs.js:784 +msgid "You have finished the tour. Please enjoy Turtle Blocks!" +msgstr "" + +#: js/turtledefs.js:791 +msgid "A detailed guide to Music Blocks is available." +msgstr "" + +#: js/turtledefs.js:799 +msgid "Music Blocks is an open source collection of tools for exploring musical concepts." +msgstr "" + +#: js/turtledefs.js:801 +msgid "A full list of contributors can be found in the Music Blocks GitHub repository." +msgstr "" + +#: js/turtledefs.js:803 +msgid "Music Blocks is licensed under the AGPL." +msgstr "" + +#: js/turtledefs.js:811 +msgid "Music Blocks GitHub repository" +msgstr "" + +#: js/turtledefs.js:815 +msgid "You have finished the tour. Please enjoy Music Blocks!" +msgstr "" + +#: js/turtles.js:882 +msgid "Grid" +msgstr "" + +#: js/turtles.js:1024 +msgid "Expand" +msgstr "" + +#: js/block-verbose.js:1616 +#: js/block-verbose.js:1735 +#: js/block.js:1580 +#: js/block.js:1699 +#: js/palette.js:605 +#: js/blocks/IntervalsBlocks.js:63 +#: js/blocks/WidgetBlocks.js:259 +msgid "temperament" +msgstr "" + +#: js/block-verbose.js:1630 +#: js/block.js:1594 +msgid "matrix" msgstr "" -#: js/toolbar.js:57 -#: js/toolbar.js:117 -#: js/toolbar.js:182 -#: js/toolbar.js:237 -msgid "Find and share projects" +#: js/block-verbose.js:1637 +#: js/block.js:1601 +#: js/blocks/WidgetBlocks.js:1509 +#: plugins/rodi.rtp:324 +msgid "status" msgstr "" -#: js/toolbar.js:58 -#: js/toolbar.js:118 -#: js/toolbar.js:183 -#: js/toolbar.js:238 -msgid "Offline. Sharing is unavailable" +#: js/block-verbose.js:1644 +#: js/block.js:1608 +msgid "drum mapper" msgstr "" -#: js/toolbar.js:59 -#: js/toolbar.js:119 -#: js/toolbar.js:184 -#: js/toolbar.js:239 -msgid "Auxiliary menu" +#: js/block-verbose.js:1651 +#: js/block.js:1615 +msgid "ruler" msgstr "" -#: js/toolbar.js:61 -#: js/toolbar.js:121 -#: js/toolbar.js:186 -#: js/toolbar.js:241 -msgid "Run slowly" +#: js/block-verbose.js:1658 +#: js/block.js:1622 +#: js/blocks/WidgetBlocks.js:397 +#.TRANS: timbre is the character or quality of a musical sound +msgid "timbre" msgstr "" -#: js/toolbar.js:62 -#: js/toolbar.js:122 -#: js/toolbar.js:187 -#: js/toolbar.js:242 -#: js/turtledefs.js:682 -msgid "Run step by step" +#: js/block-verbose.js:1665 +#: js/block.js:1629 +msgid "stair" msgstr "" -#: js/toolbar.js:63 -#: js/toolbar.js:123 -#: js/toolbar.js:188 -#: js/toolbar.js:243 -#: js/turtledefs.js:689 -msgid "Display statistics" +#: js/block-verbose.js:1672 +#: js/block.js:1636 +#: js/blocks/WidgetBlocks.js:707 +#.TRANS: the speed at music is should be played. +msgid "tempo" msgstr "" -#: js/toolbar.js:64 -#: js/toolbar.js:124 -#: js/toolbar.js:189 -#: js/toolbar.js:244 -msgid "Load plugin" +#: js/block-verbose.js:1679 +#: js/block-verbose.js:1742 +#: js/block.js:1643 +#: js/block.js:1706 +#: js/blocks/IntervalsBlocks.js:1464 +#.TRANS: mode, e.g., Major in C Major +msgid "mode" msgstr "" -#: js/toolbar.js:65 -#: js/toolbar.js:125 -#: js/toolbar.js:190 -#: js/toolbar.js:245 -#: js/turtledefs.js:696 -msgid "Delete plugin" +#: js/block-verbose.js:1686 +#: js/block.js:1650 +msgid "slider" msgstr "" -#: js/toolbar.js:66 -#: js/toolbar.js:126 -#: js/toolbar.js:191 -#: js/toolbar.js:246 -msgid "Enable horizontal scrolling" +#: js/block-verbose.js:1693 +#: js/block.js:1657 +#: js/blocks/SensorsBlocks.js:1001 +msgid "keyboard" msgstr "" -#: js/toolbar.js:67 -#: js/toolbar.js:127 -#: js/toolbar.js:192 -#: js/toolbar.js:247 -msgid "Disable horizontal scrolling" +#: js/block-verbose.js:1707 +#: js/block.js:1671 +#: js/blocks/WidgetBlocks.js:1190 +#: js/blocks/WidgetBlocks.js:1228 +#.TRANS: widget for subdividing a measure into distinct rhythmic elements +msgid "rhythm maker" msgstr "" -#: js/toolbar.js:68 -#: js/toolbar.js:128 -#: js/toolbar.js:193 -#: js/toolbar.js:248 -#: js/LocalCard.js:54 -#: js/StringHelper.js:71 -msgid "Merge with current project" +#: js/block-verbose.js:1714 +#: js/block-verbose.js:2457 +#: js/block-verbose.js:2514 +#: js/block.js:1678 +#: js/block.js:2385 +#: js/block.js:2442 +#: js/blocks/MeterBlocks.js:1367 +#: js/blocks/OrnamentBlocks.js:220 +#: js/blocks/OrnamentBlocks.js:312 +#: js/blocks/RhythmBlocks.js:33 +#: js/blocks/RhythmBlocks.js:356 +#: js/blocks/RhythmBlocks.js:766 +#: js/blocks/RhythmBlocks.js:806 +#: js/blocks/RhythmBlockPaletteBlocks.js:70 +#: js/blocks/RhythmBlockPaletteBlocks.js:252 +#: js/blocks/RhythmBlockPaletteBlocks.js:485 +#: js/blocks/RhythmBlockPaletteBlocks.js:554 +#: js/blocks/RhythmBlockPaletteBlocks.js:605 +#: js/blocks/RhythmBlockPaletteBlocks.js:875 +#: js/turtleactions/DictActions.js:85 +#: js/widgets/phrasemaker.js:942 +#: js/widgets/phrasemaker.js:2656 +#: js/widgets/phrasemaker.js:2699 +#: js/widgets/phrasemaker.js:2810 +#.TRANS: the value (e.g., 1/4 note) of the note being played. +msgid "note value" msgstr "" -#: js/toolbar.js:69 -#: js/toolbar.js:129 -msgid "Set Pitch Preview" +#: js/block-verbose.js:1721 +#: js/block-verbose.js:2382 +#: js/block-verbose.js:2405 +#: js/block.js:1685 +#: js/block.js:2310 +#: js/block.js:2333 +#: js/blocks/IntervalsBlocks.js:1071 +#: js/blocks/OrnamentBlocks.js:312 +#.TRANS: calculate a relative step between notes based on semi-tones +msgid "scalar interval" msgstr "" -#: js/toolbar.js:70 -#: js/toolbar.js:130 -#: js/toolbar.js:194 -#: js/toolbar.js:249 -msgid "Toggle JavaScript Editor" +#: js/block-verbose.js:1728 +#: js/block.js:1692 +#: js/blocks/RhythmBlocks.js:148 +msgid "milliseconds" msgstr "" -#: js/toolbar.js:71 -#: js/toolbar.js:131 -#: js/toolbar.js:195 -#: js/toolbar.js:250 -#: js/turtledefs.js:724 -msgid "Restore" +#: js/block-verbose.js:2455 +#: js/block-verbose.js:2459 +#: js/block-verbose.js:2512 +#: js/block-verbose.js:2628 +#: js/block.js:2383 +#: js/block.js:2387 +#: js/block.js:2440 +#: js/block.js:2556 +#: js/blocks/RhythmBlocks.js:712 +#: js/blocks/ProgramBlocks.js:1273 +#: js/widgets/rhythmruler.js:1183 +#: js/widgets/rhythmruler.js:1329 +msgid "silence" msgstr "" -#: js/toolbar.js:72 -#: js/toolbar.js:132 -#: js/toolbar.js:196 -#: js/toolbar.js:251 -msgid "Switch to beginner mode" +#: js/block-verbose.js:2548 +#: js/block-verbose.js:3492 +#: js/block-verbose.js:3509 +#: js/activity.js:2718 +#: js/activity.js:2769 +#: js/block.js:2476 +#: js/block.js:3416 +#: js/block.js:3433 +#: js/utils/musicutils.js:3780 +#: js/utils/musicutils.js:5273 +#.TRANS: the note names must be separated by single spaces +#.TRANS: the note names must be separated by single spaces +#.TRANS: the note names must be separated by single spaces +msgid "ti la sol fa mi re do" msgstr "" -#: js/toolbar.js:73 -#: js/toolbar.js:133 -#: js/toolbar.js:197 -#: js/toolbar.js:252 -msgid "Switch to advanced mode" +#: js/block-verbose.js:2616 +#: js/block.js:2544 +#.TRANS: scalar step +#.TRANS: scalar step +msgid "down" msgstr "" -#: js/toolbar.js:74 -#: js/toolbar.js:134 -#: js/toolbar.js:143 -#: js/toolbar.js:198 -#: js/toolbar.js:253 -#: js/turtledefs.js:738 -msgid "Select language" +#: js/block-verbose.js:2617 +#: js/block.js:2545 +msgid "up" msgstr "" -#: js/toolbar.js:76 -#: js/toolbar.js:79 -#: js/toolbar.js:137 -#: js/turtledefs.js:579 -msgid "Save mouse artwork as PNG" +#: js/block-verbose.js:3026 +#: js/block.js:2950 +msgid "Silence block cannot be removed." msgstr "" -#: js/toolbar.js:78 -#: js/toolbar.js:136 -#: js/turtledefs.js:575 -msgid "Save mouse artwork as SVG" +#: js/block-verbose.js:3824 +#: js/block.js:3748 +#: js/blocks.js:2607 +#: js/blocks.js:3218 +#: js/palette.js:618 +#: js/blocks/BooleanBlocks.js:77 +#: js/blocks/BooleanBlocks.js:167 +#: js/blocks/BooleanBlocks.js:251 +#: js/blocks/BooleanBlocks.js:335 +#: js/blocks/BooleanBlocks.js:433 +#: js/blocks/BooleanBlocks.js:539 +#: js/blocks/BooleanBlocks.js:640 +#: js/blocks/BooleanBlocks.js:741 +#: js/blocks/BooleanBlocks.js:847 +#: js/blocks/BooleanBlocks.js:948 +#: js/blocks/BooleanBlocks.js:1033 +#: js/blocks/SensorsBlocks.js:910 +msgid "true" msgstr "" -#: js/toolbar.js:80 -#: js/toolbar.js:138 -#: js/turtledefs.js:583 -msgid "Save music as WAV" +#: js/block-verbose.js:3824 +#: js/block.js:3748 +#: js/blocks.js:2609 +#: js/blocks.js:3220 +#: js/blocks/BooleanBlocks.js:79 +#: js/blocks/BooleanBlocks.js:169 +#: js/blocks/BooleanBlocks.js:253 +#: js/blocks/BooleanBlocks.js:337 +#: js/blocks/BooleanBlocks.js:435 +#: js/blocks/BooleanBlocks.js:541 +#: js/blocks/BooleanBlocks.js:642 +#: js/blocks/BooleanBlocks.js:743 +#: js/blocks/BooleanBlocks.js:849 +#: js/blocks/BooleanBlocks.js:950 +#: js/blocks/SensorsBlocks.js:912 +msgid "false" msgstr "" -#: js/toolbar.js:81 -#: js/toolbar.js:139 -#: js/turtledefs.js:587 -msgid "Save sheet music as ABC" +#: js/block-verbose.js:3835 +#: js/block-verbose.js:3848 +#: js/block.js:3759 +#: js/block.js:3772 +#: js/blocks/ExtrasBlocks.js:615 +msgid "Cartesian" msgstr "" -#: js/toolbar.js:82 -#: js/toolbar.js:140 -#: js/turtledefs.js:591 -msgid "Save sheet music as Lilypond" +#: js/block-verbose.js:3836 +#: js/block-verbose.js:3849 +#: js/block.js:3760 +#: js/block.js:3773 +#: js/blocks/ExtrasBlocks.js:619 +msgid "polar" msgstr "" -#: js/toolbar.js:83 -msgid "Save sheet music as MusicXML" +#: js/block-verbose.js:3837 +#: js/block-verbose.js:3850 +#: js/block.js:3761 +#: js/block.js:3774 +#: js/blocks/ExtrasBlocks.js:623 +msgid "Cartesian+polar" msgstr "" -#: js/toolbar.js:84 -#: js/toolbar.js:141 -#: js/toolbar.js:149 -#: js/toolbar.js:204 -#: js/toolbar.js:259 -#: js/turtledefs.js:562 -#: js/turtledefs.js:595 -msgid "Save block artwork as SVG" +#: js/block-verbose.js:3838 +#: js/block-verbose.js:3857 +#: js/block.js:3762 +#: js/block.js:3781 +#: js/blocks/ExtrasBlocks.js:652 +msgid "none" msgstr "" -#: js/toolbar.js:85 -#: js/toolbar.js:142 -#: js/toolbar.js:150 -#: js/toolbar.js:205 -#: js/toolbar.js:260 -msgid "Confirm" +#: js/block-verbose.js:3851 +#: js/block.js:3775 +#: js/blocks/ExtrasBlocks.js:628 +msgid "treble" msgstr "" -#: js/toolbar.js:86 -#: js/toolbar.js:151 -#: js/toolbar.js:206 -#: js/toolbar.js:261 -msgid "English (United States)" +#: js/block-verbose.js:3852 +#: js/block.js:3776 +#: js/blocks/ExtrasBlocks.js:632 +msgid "grand staff" msgstr "" -#: js/toolbar.js:87 -#: js/toolbar.js:152 -#: js/toolbar.js:207 -#: js/toolbar.js:262 -msgid "English (United Kingdom)" +#: js/block-verbose.js:3853 +#: js/block.js:3777 +#: js/blocks/ExtrasBlocks.js:636 +msgid "mezzo-soprano" msgstr "" -#: js/toolbar.js:88 -#: js/toolbar.js:153 -#: js/toolbar.js:208 -#: js/toolbar.js:263 -msgid "日本語" +#: js/block-verbose.js:3854 +#: js/block.js:3778 +#: js/blocks/ExtrasBlocks.js:640 +msgid "alto" msgstr "" -#: js/toolbar.js:89 -msgid "한국어" +#: js/block-verbose.js:3855 +#: js/block.js:3779 +#: js/blocks/ExtrasBlocks.js:644 +msgid "tenor" msgstr "" -#: js/toolbar.js:90 -#: js/toolbar.js:155 -#: js/toolbar.js:210 -#: js/toolbar.js:265 -msgid "español" +#: js/block-verbose.js:3856 +#: js/block.js:3780 +#: js/utils/musicutils.js:1115 +#: js/utils/synthutils.js:80 +#: js/blocks/ExtrasBlocks.js:648 +#.TRANS: musical instrument +msgid "bass" msgstr "" -#: js/toolbar.js:91 -#: js/toolbar.js:156 -#: js/toolbar.js:211 -#: js/toolbar.js:266 -msgid "português" +#: js/block-verbose.js:3901 +#: js/block.js:3825 +#: js/blocks.js:2600 +#: js/blocks.js:3211 +msgid "on2" msgstr "" -#: js/toolbar.js:92 -#: js/toolbar.js:157 -#: js/toolbar.js:212 -#: js/toolbar.js:267 -msgid "にほんご" +#: js/block-verbose.js:3903 +#: js/block.js:3827 +#: js/blocks.js:2602 +#: js/blocks.js:3213 +msgid "off" msgstr "" -#: js/toolbar.js:93 -#: js/toolbar.js:158 -#: js/toolbar.js:213 -#: js/toolbar.js:268 -msgid "中文" +#: js/block-verbose.js:4470 +#: js/block.js:4394 +msgid "Not a number" msgstr "" -#: js/toolbar.js:94 -#: js/toolbar.js:159 -#: js/toolbar.js:214 -#: js/toolbar.js:269 -msgid "ภาษาไทย" +#: js/block-verbose.js:4477 +#: js/block.js:4401 +msgid "Octave value must be between 1 and 10." msgstr "" -#: js/toolbar.js:95 -#: js/toolbar.js:160 -#: js/toolbar.js:215 -#: js/toolbar.js:270 -msgid "aymara" +#: js/block-verbose.js:4485 +#: js/block.js:4409 +msgid "Numbers can have at most 10 digits." msgstr "" -#: js/toolbar.js:96 -#: js/toolbar.js:161 -#: js/toolbar.js:216 -#: js/toolbar.js:271 -msgid "quechua" +#: js/activity.js:390 +#: js/activity.js:395 +msgid "Search for blocks" msgstr "" -#: js/toolbar.js:97 -#: js/toolbar.js:162 -#: js/toolbar.js:217 -#: js/toolbar.js:272 -msgid "guarani" +#: js/activity.js:1413 +msgid "Refresh your browser to change to advanced mode." msgstr "" -#: js/toolbar.js:98 -#: js/toolbar.js:163 -#: js/toolbar.js:218 -#: js/toolbar.js:273 -msgid "हिंदी" +#: js/activity.js:1418 +msgid "Refresh your browser to change to beginner mode." msgstr "" -#: js/toolbar.js:99 -#: js/toolbar.js:165 -#: js/toolbar.js:219 -#: js/toolbar.js:275 -msgid "igbo" +#: js/activity.js:1477 +msgid "Catching mice" +msgstr "" + +#: js/activity.js:1478 +msgid "Cleaning the instruments" +msgstr "" + +#: js/activity.js:1479 +msgid "Testing key pieces" +msgstr "" + +#: js/activity.js:1480 +msgid "Sight-reading" +msgstr "" + +#: js/activity.js:1481 +msgid "Combining math and music" msgstr "" -#: js/toolbar.js:100 -#: js/toolbar.js:166 -#: js/toolbar.js:220 -#: js/toolbar.js:276 -msgid "عربى" +#: js/activity.js:1482 +msgid "Generating more blocks" msgstr "" -#: js/toolbar.js:101 -#: js/toolbar.js:164 -#: js/toolbar.js:221 -#: js/toolbar.js:274 -msgid "తెలుగు" +#: js/activity.js:1483 +msgid "Do Re Mi Fa Sol La Ti Do" msgstr "" -#: js/toolbar.js:102 -#: js/toolbar.js:167 -#: js/toolbar.js:222 -#: js/toolbar.js:277 -msgid "עִברִית" +#: js/activity.js:1484 +msgid "Tuning string instruments" msgstr "" -#: js/toolbar.js:111 -#: js/toolbar.js:175 -#: js/toolbar.js:176 -#: js/toolbar.js:231 -msgid "Full Screen" +#: js/activity.js:1485 +msgid "Pressing random keys" msgstr "" -#: js/toolbar.js:145 -#: js/toolbar.js:148 -#: js/toolbar.js:200 -#: js/toolbar.js:203 -#: js/toolbar.js:255 -#: js/toolbar.js:258 -#: js/turtledefs.js:558 -msgid "Save turtle artwork as PNG" +#: js/activity.js:1663 +msgid "plugins will be removed upon restart." msgstr "" -#: js/toolbar.js:147 -#: js/toolbar.js:202 -#: js/toolbar.js:257 -#: js/turtledefs.js:554 -msgid "Save turtle artwork as SVG" +#: js/activity.js:1672 +msgid "show Cartesian" msgstr "" -#: js/toolbar.js:154 -#: js/toolbar.js:209 -#: js/toolbar.js:264 -msgid "한국인" +#: js/activity.js:2211 +#: js/palette.js:589 +#: js/blocks/RhythmBlocks.js:923 +#: js/blocks/PitchBlocks.js:442 +#: js/blocks/PitchBlocks.js:1786 +#.TRANS: a numeric mapping of the notes in an octave based on the musical mode +msgid "scale degree" msgstr "" -#: js/toolbar.js:171 -#: js/toolbar.js:227 -msgid "About Turtle Blocks" +#: js/activity.js:2214 +#: js/palette.js:598 +msgid "voice name" msgstr "" -#: js/toolbar.js:429 -#: js/toolbar.js:440 -msgid "Turtle Wrap Off" +#: js/activity.js:2217 +#: js/palette.js:595 +msgid "invert mode" msgstr "" -#: js/toolbar.js:442 -msgid "Turtle Wrap On" +#: js/activity.js:2220 +msgid "output tools" msgstr "" -#: js/block.js:1470 -msgid "matrix" +#: js/activity.js:2223 +msgid "custom note" msgstr "" -#: js/block.js:1477 -#: js/WidgetBlocks.js:1226 -#: plugins/rodi.rtp:324 -msgid "status" +#: js/activity.js:2226 +msgid "accidental name" msgstr "" -#: js/block.js:1484 -msgid "drum mapper" +#: js/activity.js:2229 +#: js/blocks/PitchBlocks.js:855 +msgid "east indian solfege" msgstr "" -#: js/block.js:1491 -msgid "ruler" +#: js/activity.js:2232 +#: js/blocks/PitchBlocks.js:869 +msgid "note name" msgstr "" -#: js/block.js:1498 -#: js/WidgetBlocks.js:327 -#.TRANS: timbre is the character or quality of a musical sound -msgid "timbre" +#: js/activity.js:2235 +#: js/blocks/IntervalsBlocks.js:94 +msgid "temperament name" msgstr "" -#: js/block.js:1505 -msgid "stair" +#: js/activity.js:2238 +#: js/palette.js:592 +msgid "mode name" msgstr "" -#: js/block.js:1512 -#: js/WidgetBlocks.js:577 -#.TRANS: the speed at music is should be played. -msgid "tempo" +#: js/activity.js:2241 +msgid "chord name" msgstr "" -#: js/block.js:1519 -#: js/block.js:1582 -#: js/IntervalsBlocks.js:1268 -#.TRANS: mode, e.g., Major in C Major -msgid "mode" +#: js/activity.js:2244 +#: js/palette.js:615 +msgid "interval name" msgstr "" -#: js/block.js:1526 -msgid "slider" +#: js/activity.js:2247 +msgid "filter type" msgstr "" -#: js/block.js:1533 -#: js/SensorsBlocks.js:1001 -msgid "keyboard" +#: js/activity.js:2250 +msgid "oscillator type" msgstr "" -#: js/block.js:1547 -#: js/WidgetBlocks.js:957 -#: js/WidgetBlocks.js:988 -#.TRANS: widget for subdividing a measure into distinct rhythmic elements -msgid "rhythm maker" +#: js/activity.js:2253 +#: js/blocks.js:2479 +#: js/blocks.js:2487 +msgid "audio file" msgstr "" -#: js/block.js:1554 -#: js/block.js:2182 -#: js/block.js:2236 -#: js/RhythmBlockPaletteBlocks.js:70 -#: js/RhythmBlockPaletteBlocks.js:251 -#: js/RhythmBlockPaletteBlocks.js:484 -#: js/RhythmBlockPaletteBlocks.js:553 -#: js/RhythmBlockPaletteBlocks.js:604 -#: js/RhythmBlockPaletteBlocks.js:874 -#: js/RhythmBlocks.js:33 -#: js/RhythmBlocks.js:356 -#: js/RhythmBlocks.js:766 -#: js/RhythmBlocks.js:806 -#: js/OrnamentBlocks.js:220 -#: js/OrnamentBlocks.js:312 -#: js/MeterBlocks.js:1367 -#: js/DictActions.js:85 -#: js/phrasemaker.js:731 -#: js/phrasemaker.js:2393 -#: js/phrasemaker.js:2436 -#: js/phrasemaker.js:2534 -#.TRANS: the value (e.g., 1/4 note) of the note being played. -msgid "note value" +#: js/activity.js:2256 +#: js/blocks/DrumBlocks.js:32 +msgid "noise name" msgstr "" -#: js/block.js:1561 -#: js/block.js:2110 -#: js/block.js:2133 -#: js/IntervalsBlocks.js:875 -#: js/OrnamentBlocks.js:312 -#.TRANS: calculate a relative step between notes based on semi-tones -msgid "scalar interval" +#: js/activity.js:2259 +#: js/blocks/DrumBlocks.js:75 +msgid "drum name" msgstr "" -#: js/block.js:1568 -#: js/RhythmBlocks.js:148 -msgid "milliseconds" +#: js/activity.js:2262 +#: js/blocks/DrumBlocks.js:119 +msgid "effects name" msgstr "" -#: js/block.js:2180 -#: js/block.js:2184 -#: js/block.js:2234 -#: js/block.js:2345 -#: js/ProgramBlocks.js:1273 -#: js/RhythmBlocks.js:712 -#: js/rhythmruler.js:834 -#: js/rhythmruler.js:961 -msgid "silence" +#: js/activity.js:2265 +msgid "wrap mode" msgstr "" -#: js/block.js:2265 -#: js/block.js:3134 -#: js/block.js:3151 -#: js/activity.js:2336 -#: js/activity.js:2387 -#: js/musicutils.js:2932 -#: js/musicutils.js:4287 -#.TRANS: the note names must be separated by single spaces -#.TRANS: the note names must be separated by single spaces -msgid "ti la sol fa mi re do" +#: js/activity.js:2268 +msgid "load file" msgstr "" -#: js/block.js:2333 -#.TRANS: scalar step -msgid "down" +#: js/activity.js:2435 +#: js/activity.js:5851 +msgid "This block is deprecated." msgstr "" -#: js/block.js:2334 -msgid "up" +#: js/activity.js:2437 +#: js/activity.js:5853 +msgid "Block cannot be found." msgstr "" -#: js/block.js:3477 -#: js/block.js:3490 -#: js/ExtrasBlocks.js:612 -msgid "Cartesian" +#: js/activity.js:2645 +msgid "Saving block artwork" msgstr "" -#: js/block.js:3478 -#: js/block.js:3491 -#: js/ExtrasBlocks.js:616 -msgid "polar" +#: js/activity.js:2656 +msgid "Erase" msgstr "" -#: js/block.js:3479 -#: js/block.js:3492 -#: js/ExtrasBlocks.js:620 -msgid "Cartesian+polar" +#: js/activity.js:2683 +#: js/activity.js:2705 +msgid "Paste" msgstr "" -#: js/block.js:3480 -#: js/block.js:3499 -#: js/ExtrasBlocks.js:649 -msgid "none" +#: js/activity.js:2687 +msgid "Save block help" msgstr "" -#: js/block.js:3493 -#: js/ExtrasBlocks.js:625 -msgid "treble" +#: js/activity.js:2772 +msgid "Jumping to the bottom of the page." msgstr "" -#: js/block.js:3494 -#: js/ExtrasBlocks.js:629 -msgid "grand staff" +#: js/activity.js:2778 +msgid "Scrolling up." msgstr "" -#: js/block.js:3495 -#: js/ExtrasBlocks.js:633 -msgid "mezzo-soprano" +#: js/activity.js:2783 +msgid "Scrolling down." msgstr "" -#: js/block.js:3496 -#: js/ExtrasBlocks.js:637 -msgid "alto" +#: js/activity.js:2788 +msgid "Extracting block" msgstr "" -#: js/block.js:3497 -#: js/ExtrasBlocks.js:641 -msgid "tenor" +#: js/activity.js:2796 +msgid "Moving block up." msgstr "" -#: js/block.js:3498 -#: js/ExtrasBlocks.js:645 -#: js/musicutils.js:736 -#: js/synthutils.js:64 -#.TRANS: musical instrument -msgid "bass" +#: js/activity.js:2817 +msgid "Moving block down." msgstr "" -#: js/block.js:4075 -msgid "Not a number" +#: js/activity.js:2838 +msgid "Moving block left." msgstr "" -#: js/block.js:4082 -msgid "Octave value must be between 1 and 10." +#: js/activity.js:2855 +msgid "Moving block right." msgstr "" -#: js/block.js:4090 -msgid "Numbers can have at most 10 digits." +#: js/activity.js:2870 +msgid "Jump to home position." msgstr "" -#: js/notation.js:353 -msgid "Lilypond cannot process pickup of " +#: js/activity.js:2897 +msgid "Hide blocks" msgstr "" -#: js/turtledefs.js:40 -#.TRANS: put the URL to the guide here, e.g., https://github.com/sugarlabs/turtleblocksjs/tree/master/guide/README.md -msgid "guide url" +#: js/activity.js:4500 +msgid "Click the run button to run the project." msgstr "" -#: js/turtledefs.js:85 -#: js/turtledefs.js:437 -msgid "Turtle Blocks is a Logo-inspired turtle that draws colorful pictures with snap-together visual-programming blocks." +#: js/activity.js:5692 +msgid "Show/hide block" msgstr "" -#: js/turtledefs.js:118 -#: js/turtledefs.js:220 -msgid "search" +#: js/activity.js:5698 +msgid "Expand/collapse blocks" msgstr "" -#: js/turtledefs.js:120 -#: js/turtledefs.js:222 -#: js/WidgetBlocks.js:437 -#: js/MeterBlocks.js:1343 -#.TRANS: musical meter (time signature), e.g., 4:4 -msgid "meter" +#: js/activity.js:5976 +msgid "Could not parse JSON input." msgstr "" -#: js/turtledefs.js:122 -#: js/turtledefs.js:224 -msgid "intervals" +#: js/activity.js:6475 +#: js/activity.js:6580 +#: js/activity.js:6631 +msgid "Cannot load project from the file. Please check the file type." msgstr "" -#: js/turtledefs.js:124 -#: js/turtledefs.js:226 -msgid "ornament" +#: js/activity.js:6917 +msgid "Invalid parameters" msgstr "" -#: js/turtledefs.js:125 -#: js/turtledefs.js:227 -#: js/VolumeBlocks.js:362 -#: js/VolumeBlocks.js:502 -#: js/VolumeBlocks.js:545 -msgid "volume" +#: js/blocks.js:1212 +#: js/blocks.js:3444 +#: js/blocks.js:3834 +#: js/blocks.js:3865 +#: js/blocks.js:3914 +#: js/blocks.js:3949 +#: js/blocks.js:6586 +#: js/palette.js:509 +#: js/palette.js:638 +#: js/palette.js:1105 +#: js/blocks/BoxesBlocks.js:282 +#: js/blocks/BoxesBlocks.js:285 +#: js/blocks/BoxesBlocks.js:405 +#: js/blocks/BoxesBlocks.js:594 +msgid "box" msgstr "" -#: js/turtledefs.js:129 -#: js/turtledefs.js:231 -msgid "boxes" +#: js/blocks.js:1713 +msgid "Consider breaking this stack into parts." msgstr "" -#: js/turtledefs.js:130 -#: js/turtledefs.js:232 -msgid "widgets" +#: js/blocks.js:2472 +#: js/palette.js:653 +#: js/blocks/MediaBlocks.js:602 +msgid "open file" msgstr "" -#: js/turtledefs.js:131 -#: js/turtledefs.js:233 -#: js/phrasemaker.js:824 -msgid "graphics" +#: js/blocks.js:3247 +#: js/palette.js:574 +#: js/blocks/MediaBlocks.js:892 +#: js/blocks/MediaBlocks.js:963 +msgid "text" msgstr "" -#: js/turtledefs.js:134 -#: js/turtledefs.js:236 -msgid "boolean" +#: js/blocks.js:3443 +#: js/palette.js:641 +#: js/palette.js:642 +#: js/blocks/BoxesBlocks.js:514 +msgid "store in box" msgstr "" -#: js/turtledefs.js:137 -#: js/turtledefs.js:239 -#: js/HeapBlocks.js:59 -#: js/status.js:147 -msgid "heap" +#: js/blocks.js:3448 +#: js/blocks.js:3888 +#: js/blocks.js:3923 +#: js/blocks.js:3958 +#: js/blocks.js:5862 +#: js/blocks.js:5883 +#: js/blocks/BoxesBlocks.js:772 +msgid "box1" msgstr "" -#: js/turtledefs.js:138 -#: js/turtledefs.js:240 -#: js/ProgramBlocks.js:495 -#: js/DictBlocks.js:142 -msgid "dictionary" +#: js/blocks.js:3450 +#: js/blocks.js:3890 +#: js/blocks.js:3925 +#: js/blocks.js:3960 +#: js/blocks.js:5864 +#: js/blocks.js:5885 +#: js/blocks/BoxesBlocks.js:663 +msgid "box2" msgstr "" -#: js/turtledefs.js:139 -#: js/turtledefs.js:241 -msgid "ensemble" +#: js/blocks.js:4122 +#: js/palette.js:639 +#: js/palette.js:644 +#: js/palette.js:1041 +#: js/blocks/BoxesBlocks.js:591 +msgid "store in" msgstr "" -#: js/turtledefs.js:140 -#: js/turtledefs.js:242 -msgid "extras" +#: js/blocks.js:4122 +#: js/blocks/BoxesBlocks.js:595 +#: js/blocks/DictBlocks.js:215 +#: js/blocks/DictBlocks.js:289 +#: js/blocks/EnsembleBlocks.js:391 +#: js/blocks/EnsembleBlocks.js:402 +#: js/blocks/MediaBlocks.js:746 +#: js/blocks/PitchBlocks.js:656 +#: js/blocks/PitchBlocks.js:934 +#: js/blocks/PitchBlocks.js:1866 +#: js/blocks/ProgramBlocks.js:390 +#: js/blocks/ProgramBlocks.js:495 +#: js/blocks/ProgramBlocks.js:658 +#: js/blocks/ToneBlocks.js:1025 +msgid "name" msgstr "" -#: js/turtledefs.js:142 -#: js/turtledefs.js:244 -#.TRANS: program as in computer program -#.TRANS: program as in computer program -msgid "program" +#: js/blocks.js:4122 +#: js/blocks/BoxesBlocks.js:75 +#: js/blocks/BoxesBlocks.js:595 +#: js/blocks/DictBlocks.js:289 +#: js/blocks/DictBlocks.js:430 +#: js/blocks/HeapBlocks.js:544 +#: js/blocks/RhythmBlocks.js:1130 +msgid "value" msgstr "" -#: js/turtledefs.js:143 -#: js/turtledefs.js:245 -msgid "my blocks" +#: js/blocks.js:4465 +msgid "Forever loop detected inside a note value block. Unexpected things may happen." msgstr "" -#: js/turtledefs.js:185 -#: js/turtledefs.js:281 -msgid "artwork" +#: js/blocks.js:4988 +msgid "There is no block selected." msgstr "" -#: js/turtledefs.js:185 -#: js/turtledefs.js:281 -msgid "logic" +#: js/blocks.js:5091 +#: js/blocks/MediaBlocks.js:888 +msgid "show" msgstr "" -#: js/turtledefs.js:185 -#: js/turtledefs.js:281 -msgid "music" +#: js/blocks.js:5094 +#: js/blocks/MediaBlocks.js:803 +#.TRANS: Avatar is the image used to determine the appearance of the mouse. +msgid "avatar" msgstr "" -#: js/turtledefs.js:187 -#: js/turtledefs.js:463 -msgid "Music Blocks is a collection of tools for exploring fundamental musical concepts in a fun way." +#: js/blocks.js:5097 +#: js/blocks/ToneBlocks.js:1010 +#: js/widgets/sampler.js:975 +#.TRANS: The sound sample that the user uploads. +msgid "sample" msgstr "" -#: js/turtledefs.js:436 -msgid "Welcome to Turtle Blocks" +#: js/lilypond.js:606 +msgid "brown rat" msgstr "" -#: js/turtledefs.js:438 -#: js/turtledefs.js:465 -#: js/turtledefs.js:774 -#: js/turtledefs.js:805 -msgid "The current version is" +#: js/lilypond.js:607 +msgid "mole" msgstr "" -#: js/turtledefs.js:446 -#: js/turtledefs.js:483 -msgid "Click the run button to run the project in fast mode." +#: js/lilypond.js:608 +msgid "chipmunk" msgstr "" -#: js/turtledefs.js:452 -msgid "Stop the turtle." +#: js/lilypond.js:609 +msgid "red squirrel" msgstr "" -#: js/turtledefs.js:454 -#: js/turtledefs.js:491 -msgid "You can also type Alt-S to stop." +#: js/lilypond.js:610 +msgid "guinea pig" +msgstr "" + +#: js/lilypond.js:611 +msgid "capybara" msgstr "" -#: js/turtledefs.js:462 -#: js/help.js:333 -msgid "Welcome to Music Blocks" +#: js/lilypond.js:612 +msgid "coypu" msgstr "" -#: js/turtledefs.js:472 -#: js/help.js:334 -msgid "Meet Mr. Mouse!" +#: js/lilypond.js:613 +msgid "black rat" msgstr "" -#: js/turtledefs.js:473 -msgid "Mr Mouse is our Music Blocks conductor." +#: js/lilypond.js:614 +msgid "grey squirrel" msgstr "" -#: js/turtledefs.js:475 -msgid "Mr Mouse encourages you to explore Music Blocks." +#: js/lilypond.js:615 +msgid "flying squirrel" msgstr "" -#: js/turtledefs.js:477 -msgid "Let us start our tour!" +#: js/lilypond.js:616 +msgid "bat" msgstr "" -#: js/turtledefs.js:489 -msgid "Stop the music (and the mice)." +#: js/lilypond.js:749 +#: js/lilypond.js:913 +#: js/lilypond.js:951 +#: js/blocks/ActionBlocks.js:1256 +#: js/blocks/ExtrasBlocks.js:556 +msgid "start drum" msgstr "" -#: js/turtledefs.js:499 -msgid "Record your project as video." +#: js/logo.js:61 +msgid "Not a valid pitch name" msgstr "" -#: js/turtledefs.js:505 -msgid "Toggle Fullscreen mode." +#: js/logo.js:507 +#: js/blocks/ProgramBlocks.js:258 +#: js/blocks/ProgramBlocks.js:427 +msgid "You must select a file." msgstr "" -#: js/turtledefs.js:511 -msgid "Initialize a new project." +#: js/logo.js:1696 +msgid "Playback is ready." msgstr "" -#: js/turtledefs.js:517 -msgid "You can also load projects from the file system." +#: js/macros.js:711 +#: js/utils/musicutils.js:1162 +#: js/utils/synthutils.js:202 +#.TRANS: animal sound effect +msgid "duck" msgstr "" -#: js/turtledefs.js:522 -#: js/StringHelper.js:46 -msgid "Delete" +#: js/notation.js:353 +msgid "Lilypond cannot process pickup of " msgstr "" -#: js/turtledefs.js:523 -msgid "To delete a block, just right-click on it, then you will be able to see the delete option" +#: js/palette.js:571 +msgid "grid" msgstr "" -#: js/turtledefs.js:528 -#: js/activity.js:2270 -#: js/LocalCard.js:31 -msgid "Copy" +#: js/palette.js:580 +msgid "effect" msgstr "" -#: js/turtledefs.js:529 -msgid "To copy a block, just right-click on it, then you will be able to see the copy option" +#: js/palette.js:586 +msgid "sargam" msgstr "" -#: js/turtledefs.js:535 -msgid "To extract a block, just right-click on it, then you will be able to see the extract option" +#: js/palette.js:601 +#: js/blocks/PitchBlocks.js:1209 +msgid "custom pitch" msgstr "" -#: js/turtledefs.js:542 -#: js/turtledefs.js:552 -#: js/turtledefs.js:573 -msgid "Save your project to a file." +#: js/palette.js:609 +msgid "accidental" msgstr "" -#: js/turtledefs.js:549 -#: js/turtledefs.js:570 -msgid "save" +#: js/palette.js:633 +#: js/blocks/PitchBlocks.js:405 +msgid "pitch converter" msgstr "" -#: js/turtledefs.js:556 -#: js/turtledefs.js:577 -msgid "Save graphics from your project to as SVG." +#: js/piemenus.js:200 +#: js/utils/musicutils.js:1187 +#: js/utils/musicutils.js:1207 +#: js/widgets/musickeyboard.js:2341 +#: js/widgets/phrasemaker.js:1908 +#: js/widgets/sampler.js:810 +#.TRANS: double sharp is a music term related to pitch +msgid "double sharp" msgstr "" -#: js/turtledefs.js:560 -#: js/turtledefs.js:581 -msgid "Save graphics from your project as PNG." +#: js/piemenus.js:201 +#: js/utils/musicutils.js:1185 +#: js/utils/musicutils.js:1208 +#: js/blocks/PitchBlocks.js:1539 +#: js/turtleactions/PitchActions.js:323 +#: js/widgets/musickeyboard.js:2342 +#: js/widgets/phrasemaker.js:1909 +#: js/widgets/sampler.js:811 +#.TRANS: sharp is a music term related to pitch +#.TRANS: sharp is a half-step up in pitch +msgid "sharp" msgstr "" -#: js/turtledefs.js:564 -#: js/turtledefs.js:597 -msgid "Save block artwork as an SVG file." +#: js/piemenus.js:202 +#: js/utils/musicutils.js:1183 +#: js/utils/musicutils.js:1209 +#: js/widgets/musickeyboard.js:2343 +#: js/widgets/phrasemaker.js:1910 +#: js/widgets/sampler.js:812 +#.TRANS: natural is a music term related to pitch +msgid "natural" msgstr "" -#: js/turtledefs.js:585 -msgid "Save audio from your project as WAV." +#: js/piemenus.js:203 +#: js/utils/musicutils.js:1181 +#: js/utils/musicutils.js:1210 +#: js/blocks/PitchBlocks.js:1498 +#: js/turtleactions/PitchActions.js:326 +#: js/widgets/musickeyboard.js:2344 +#: js/widgets/phrasemaker.js:1911 +#: js/widgets/sampler.js:813 +#.TRANS: flat is a music term related to pitch +#.TRANS: flat is a half-step down in pitch +msgid "flat" msgstr "" -#: js/turtledefs.js:589 -msgid "Save your project to as an ABC file." +#: js/piemenus.js:204 +#: js/utils/musicutils.js:1179 +#: js/utils/musicutils.js:1211 +#: js/widgets/musickeyboard.js:2345 +#: js/widgets/phrasemaker.js:1912 +#: js/widgets/sampler.js:814 +#.TRANS: double flat is a music term related to pitch +msgid "double flat" msgstr "" -#: js/turtledefs.js:593 -msgid "Save your project to as a Lilypond file." +#: js/piemenus.js:2864 +#: js/utils/musicutils.js:1006 +#: js/blocks/PitchBlocks.js:1385 +#.TRANS: unison is a music term related to intervals +#.TRANS: unison means the note is the same as the current note +msgid "unison" msgstr "" -#: js/turtledefs.js:604 -msgid "Load samples from server" +#: js/piemenus.js:3018 +#: js/piemenus.js:3091 +#: js/utils/musicutils.js:1014 +#: js/utils/musicutils.js:1189 +#: js/utils/musicutils.js:1326 +#.TRANS: major is a music term related to intervals and mode +msgid "major" msgstr "" -#: js/turtledefs.js:605 -msgid "This button opens a viewer for loading example projects." +#: js/piemenus.js:3018 +#: js/piemenus.js:3091 +#: js/utils/musicutils.js:1032 +#.TRANS: modal scale for music +msgid "ionian" msgstr "" -#: js/turtledefs.js:611 -msgid "Palette buttons" +#: js/piemenus.js:3020 +#: js/piemenus.js:3095 +#: js/utils/musicutils.js:1012 +#: js/utils/musicutils.js:1190 +#: js/utils/musicutils.js:1323 +#.TRANS: minor is a music term related to intervals and mode +msgid "minor" msgstr "" -#: js/turtledefs.js:612 -msgid "This toolbar contains the palette buttons including Rhythm Pitch Tone Action and more." +#: js/piemenus.js:3020 +#: js/piemenus.js:3095 +#: js/utils/musicutils.js:1042 +#.TRANS: modal scale for music +msgid "aeolian" msgstr "" -#: js/turtledefs.js:614 -msgid "Click to show the palettes of blocks and drag blocks from the palettes onto the canvas to use them." +#: js/piemenus.js:3410 +msgid "Duplicate" msgstr "" -#: js/turtledefs.js:620 -msgid "Cartesian/Polar" +#: js/piemenus.js:3412 +msgid "Move to trash" msgstr "" -#: js/turtledefs.js:621 -msgid "Show or hide a coordinate grid." +#: js/piemenus.js:3413 +#: js/widgets/timbre.js:968 +#: planet/js/StringHelper.js:69 +msgid "Close" msgstr "" -#: js/turtledefs.js:627 -msgid "Clear the screen and return the mice to their initial positions." +#: js/piemenus.js:3419 +msgid "Save stack" msgstr "" -#: js/turtledefs.js:633 -msgid "Collapse the graphics window." +#: js/piemenus.js:3449 +msgid "In order to copy a sample, you must reload the widget, import the sample again, and export it." msgstr "" -#: js/turtledefs.js:638 -#: js/activity.js:4256 -#: js/activity.js:4256 -msgid "Home" +#: js/piemenus.js:3812 +msgid "You have chosen key " msgstr "" -#: js/turtledefs.js:639 -msgid "Return all blocks to the center of the screen." +#: js/piemenus.js:3816 +msgid " for your pitch preview." msgstr "" -#: js/turtledefs.js:644 -msgid "Show/hide blocks" +#: js/turtle-singer.js:1363 +#.TRANS: partials are weighted components in a harmonic series +msgid "You must have at least one Partial block inside of a Weighted-partial block" msgstr "" -#: js/turtledefs.js:645 -msgid "Hide or show the blocks and the palettes." +#: js/turtle-singer.js:2077 +msgid "synth cannot play chords." msgstr "" -#: js/turtledefs.js:650 -msgid "Expand/collapse collapsable blocks" +#: js/utils/musicutils.js:505 +#: js/utils/musicutils.js:645 +#: js/widgets/pitchdrummatrix.js:228 +#: js/widgets/musickeyboard.js:2885 +msgid "rest" msgstr "" -#: js/turtledefs.js:651 -msgid "Expand or collapse start and action stacks." +#: js/utils/musicutils.js:689 +msgid "Perfect unison" msgstr "" -#: js/turtledefs.js:658 -#: js/activity.js:4265 -msgid "Decrease block size" +#: js/utils/musicutils.js:689 +msgid "Diminished second" msgstr "" -#: js/turtledefs.js:659 -msgid "Decrease the size of the blocks." +#: js/utils/musicutils.js:690 +msgid "Minor second" msgstr "" -#: js/turtledefs.js:664 -#: js/activity.js:4267 -msgid "Increase block size" +#: js/utils/musicutils.js:690 +msgid "Augmented unison" msgstr "" -#: js/turtledefs.js:665 -msgid "Increase the size of the blocks." +#: js/utils/musicutils.js:691 +msgid "Major second" msgstr "" -#: js/turtledefs.js:670 -msgid "Expand/collapse option toolbar" +#: js/utils/musicutils.js:691 +msgid "Diminished third" msgstr "" -#: js/turtledefs.js:671 -msgid "Click this button to expand or collapse the auxillary toolbar." +#: js/utils/musicutils.js:692 +msgid "Minor third" msgstr "" -#: js/turtledefs.js:676 -msgid "Run slow" +#: js/utils/musicutils.js:692 +msgid "Augmented second" msgstr "" -#: js/turtledefs.js:677 -msgid "Click to run the project in slow mode." +#: js/utils/musicutils.js:693 +msgid "Major third" msgstr "" -#: js/turtledefs.js:683 -msgid "Click to run the project step by step." +#: js/utils/musicutils.js:693 +msgid "Diminished fourth" msgstr "" -#: js/turtledefs.js:690 -msgid "Display statistics about your Music project." +#: js/utils/musicutils.js:694 +msgid "Perfect fourth" msgstr "" -#: js/turtledefs.js:697 -msgid "Delete a selected plugin." +#: js/utils/musicutils.js:694 +msgid "Augmented third" msgstr "" -#: js/turtledefs.js:704 -msgid "Enable scrolling" +#: js/utils/musicutils.js:695 +msgid "Diminished fifth" msgstr "" -#: js/turtledefs.js:705 -msgid "You can scroll the blocks on the canvas." +#: js/utils/musicutils.js:695 +msgid "Augmented fourth" msgstr "" -#: js/turtledefs.js:714 -msgid "Wrap Turtle" +#: js/utils/musicutils.js:696 +msgid "Perfect fifth" msgstr "" -#: js/turtledefs.js:715 -msgid "Turn Turtle wrapping On or Off." +#: js/utils/musicutils.js:696 +msgid "Diminished sixth" msgstr "" -#: js/turtledefs.js:725 -msgid "Restore blocks from the trash." +#: js/utils/musicutils.js:697 +msgid "Minor sixth" msgstr "" -#: js/turtledefs.js:732 -msgid "Switch mode" +#: js/utils/musicutils.js:697 +msgid "Augmented fifth" msgstr "" -#: js/turtledefs.js:733 -msgid "Switch between beginner and advance modes." +#: js/utils/musicutils.js:698 +msgid "Major sixth" msgstr "" -#: js/turtledefs.js:739 -msgid "Select your language preference." +#: js/utils/musicutils.js:698 +msgid "Diminished seventh" msgstr "" -#: js/turtledefs.js:745 -msgid "Keyboard shortcuts" +#: js/utils/musicutils.js:699 +msgid "Minor seventh" msgstr "" -#: js/turtledefs.js:746 -msgid "You can type d to create a do block and r to create a re block etc." +#: js/utils/musicutils.js:699 +msgid "Augmented sixth" msgstr "" -#: js/turtledefs.js:753 -msgid "Show these messages." +#: js/utils/musicutils.js:700 +msgid "Major seventh" msgstr "" -#: js/turtledefs.js:759 -#: js/turtledefs.js:790 -#: js/help.js:335 -msgid "Guide" +#: js/utils/musicutils.js:700 +msgid "Diminished octave" msgstr "" -#: js/turtledefs.js:760 -msgid "A detailed guide to Turtle Blocks is available." +#: js/utils/musicutils.js:701 +msgid "Perfect octave" msgstr "" -#: js/turtledefs.js:764 -msgid "Turtle Blocks Guide" +#: js/utils/musicutils.js:701 +msgid "Augmented seventh" msgstr "" -#: js/turtledefs.js:767 -#: js/turtledefs.js:798 -#: js/help.js:336 -msgid "About" +#: js/utils/musicutils.js:702 +msgid "Minor ninth" msgstr "" -#: js/turtledefs.js:768 -msgid "Turtle Blocks is an open source collection of tools for exploring musical concepts." +#: js/utils/musicutils.js:702 +msgid "Augmented octave" msgstr "" -#: js/turtledefs.js:770 -msgid "A full list of contributors can be found in the Turtle Blocks GitHub repository." +#: js/utils/musicutils.js:703 +msgid "Major ninth" msgstr "" -#: js/turtledefs.js:772 -msgid "Turtle Blocks is licensed under the AGPL." +#: js/utils/musicutils.js:703 +msgid "Diminished tenth" msgstr "" -#: js/turtledefs.js:780 -msgid "Turtle Blocks GitHub repository" +#: js/utils/musicutils.js:704 +msgid "Minor tenth" msgstr "" -#: js/turtledefs.js:783 -#: js/turtledefs.js:814 -#: js/help.js:337 -#: js/help.js:359 -msgid "Congratulations." +#: js/utils/musicutils.js:704 +msgid "Augmented ninth" msgstr "" -#: js/turtledefs.js:784 -msgid "You have finished the tour. Please enjoy Turtle Blocks!" +#: js/utils/musicutils.js:705 +msgid "Major tenth" msgstr "" -#: js/turtledefs.js:791 -msgid "A detailed guide to Music Blocks is available." +#: js/utils/musicutils.js:705 +msgid "Diminished eleventh" msgstr "" -#: js/turtledefs.js:795 -#: js/SaveInterface.js:76 -msgid "Music Blocks Guide" +#: js/utils/musicutils.js:706 +msgid "Perfect eleventh" msgstr "" -#: js/turtledefs.js:799 -msgid "Music Blocks is an open source collection of tools for exploring musical concepts." +#: js/utils/musicutils.js:706 +msgid "Augmented tenth" msgstr "" -#: js/turtledefs.js:801 -msgid "A full list of contributors can be found in the Music Blocks GitHub repository." +#: js/utils/musicutils.js:707 +msgid "Diminished twelfth" msgstr "" -#: js/turtledefs.js:803 -msgid "Music Blocks is licensed under the AGPL." +#: js/utils/musicutils.js:707 +msgid "Augmented eleventh" msgstr "" -#: js/turtledefs.js:811 -msgid "Music Blocks GitHub repository" +#: js/utils/musicutils.js:708 +msgid "Perfect twelfth" msgstr "" -#: js/turtledefs.js:815 -msgid "You have finished the tour. Please enjoy Music Blocks!" +#: js/utils/musicutils.js:708 +msgid "Diminished thirteenth" msgstr "" -#: js/activity.js:369 -msgid "Search for blocks" +#: js/utils/musicutils.js:709 +msgid "Minor thirteenth" msgstr "" -#: js/activity.js:1145 -msgid "Refresh your browser to change to advanced mode." +#: js/utils/musicutils.js:709 +msgid "Augmented fifth, plus an octave" msgstr "" -#: js/activity.js:1150 -msgid "Refresh your browser to change to beginner mode." +#: js/utils/musicutils.js:710 +msgid "Major thirteenth" msgstr "" -#: js/activity.js:1184 -msgid "Catching mice" +#: js/utils/musicutils.js:710 +msgid "Diminished seventh, plus an octave" msgstr "" -#: js/activity.js:1185 -msgid "Cleaning the instruments" +#: js/utils/musicutils.js:838 +#.TRANS: ordinal number. Please keep exactly one space between each number. +msgid "1st 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th" msgstr "" -#: js/activity.js:1186 -msgid "Testing key pieces" +#: js/utils/musicutils.js:1008 +#: js/utils/musicutils.js:1191 +#: js/utils/musicutils.js:1325 +#.TRANS: augmented is a music term related to intervals +msgid "augmented" msgstr "" -#: js/activity.js:1187 -msgid "Sight-reading" +#: js/utils/musicutils.js:1010 +#: js/utils/musicutils.js:1192 +#: js/utils/musicutils.js:1324 +#.TRANS: diminished is a music term related to intervals and mode +msgid "diminished" msgstr "" -#: js/activity.js:1188 -msgid "Combining math and music" +#: js/utils/musicutils.js:1016 +#: js/utils/musicutils.js:1322 +#: js/blocks/IntervalsBlocks.js:649 +#: js/turtleactions/IntervalsActions.js:120 +#: js/turtleactions/IntervalsActions.js:124 +#.TRANS: perfect is a music term related to intervals +msgid "perfect" +msgstr "" + +#: js/utils/musicutils.js:1018 +#.TRANS: twelve semi-tone scale for music +msgid "chromatic" msgstr "" -#: js/activity.js:1189 -msgid "Generating more blocks" +#: js/utils/musicutils.js:1019 +msgid "algerian" msgstr "" -#: js/activity.js:1190 -msgid "Do Re Mi Fa Sol La Ti Do" +#: js/utils/musicutils.js:1020 +msgid "spanish" msgstr "" -#: js/activity.js:1191 -msgid "Tuning string instruments" +#: js/utils/musicutils.js:1022 +#.TRANS: modal scale in music +msgid "octatonic" msgstr "" -#: js/activity.js:1192 -msgid "Pressing random keys" +#: js/utils/musicutils.js:1024 +#.TRANS: harmonic major scale in music +msgid "harmonic major" msgstr "" -#: js/activity.js:1351 -msgid "plugins will be removed upon restart." +#: js/utils/musicutils.js:1026 +#.TRANS: natural minor scales in music +msgid "natural minor" msgstr "" -#: js/activity.js:1360 -msgid "show Cartesian" +#: js/utils/musicutils.js:1028 +#.TRANS: harmonic minor scale in music +msgid "harmonic minor" msgstr "" -#: js/activity.js:1842 -msgid "output tools" +#: js/utils/musicutils.js:1030 +#.TRANS: melodic minor scale in music +msgid "melodic minor" msgstr "" -#: js/activity.js:1845 -msgid "custom note" +#: js/utils/musicutils.js:1034 +#.TRANS: modal scale for music +msgid "dorian" msgstr "" -#: js/activity.js:1848 -msgid "accidental name" +#: js/utils/musicutils.js:1036 +#.TRANS: modal scale for music +msgid "phrygian" msgstr "" -#: js/activity.js:1851 -#: js/PitchBlocks.js:855 -msgid "east indian solfege" +#: js/utils/musicutils.js:1038 +#.TRANS: modal scale for music +msgid "lydian" msgstr "" -#: js/activity.js:1854 -#: js/PitchBlocks.js:869 -msgid "note name" +#: js/utils/musicutils.js:1040 +#.TRANS: modal scale for music +msgid "mixolydian" msgstr "" -#: js/activity.js:1857 -#: js/IntervalsBlocks.js:94 -msgid "temperament name" +#: js/utils/musicutils.js:1044 +#.TRANS: modal scale for music +msgid "locrian" msgstr "" -#: js/activity.js:1863 -msgid "chord name" +#: js/utils/musicutils.js:1046 +#.TRANS: minor jazz scale for music +msgid "jazz minor" msgstr "" -#: js/activity.js:1869 -msgid "filter type" +#: js/utils/musicutils.js:1048 +#.TRANS: bebop scale for music +msgid "bebop" msgstr "" -#: js/activity.js:1872 -msgid "oscillator type" +#: js/utils/musicutils.js:1049 +msgid "arabic" msgstr "" -#: js/activity.js:1878 -#: js/DrumBlocks.js:32 -msgid "noise name" +#: js/utils/musicutils.js:1050 +msgid "byzantine" msgstr "" -#: js/activity.js:1881 -#: js/DrumBlocks.js:75 -msgid "drum name" +#: js/utils/musicutils.js:1052 +#.TRANS: musical scale for music by Verdi +msgid "enigmatic" msgstr "" -#: js/activity.js:1884 -#: js/DrumBlocks.js:119 -msgid "effects name" +#: js/utils/musicutils.js:1053 +msgid "ethiopian" msgstr "" -#: js/activity.js:1887 -msgid "wrap mode" +#: js/utils/musicutils.js:1055 +#.TRANS: Ethiopic scale for music +msgid "geez" msgstr "" -#: js/activity.js:1890 -msgid "load file" +#: js/utils/musicutils.js:1056 +msgid "hindu" msgstr "" -#: js/activity.js:2056 -msgid "This block is deprecated." +#: js/utils/musicutils.js:1057 +msgid "hungarian" msgstr "" -#: js/activity.js:2058 -msgid "Block cannot be found." +#: js/utils/musicutils.js:1059 +#.TRANS: minor Romanian scale for music +msgid "romanian minor" msgstr "" -#: js/activity.js:2266 -msgid "Saving block artwork" +#: js/utils/musicutils.js:1060 +msgid "spanish gypsy" msgstr "" -#: js/activity.js:2277 -msgid "Erase" +#: js/utils/musicutils.js:1062 +#.TRANS: musical scale for Mid-Eastern music +msgid "maqam" msgstr "" -#: js/activity.js:2301 -#: js/activity.js:2323 -msgid "Paste" +#: js/utils/musicutils.js:1064 +#.TRANS: minor blues scale for music +msgid "minor blues" msgstr "" -#: js/activity.js:2305 -msgid "Save block help" +#: js/utils/musicutils.js:1066 +#.TRANS: major blues scale for music +msgid "major blues" msgstr "" -#: js/activity.js:2390 -msgid "Jumping to the bottom of the page." +#: js/utils/musicutils.js:1067 +msgid "whole tone" msgstr "" -#: js/activity.js:2396 -msgid "Scrolling up." +#: js/utils/musicutils.js:1069 +#.TRANS: pentatonic is a general term that means "five note scale". This scale is typically known as "minor pentatonic" +msgid "minor pentatonic" msgstr "" -#: js/activity.js:2401 -msgid "Scrolling down." +#: js/utils/musicutils.js:1071 +#.TRANS: pentatonic is a general term that means "five note scale". This scale is typically known as "major pentatonic" +msgid "major pentatonic" msgstr "" -#: js/activity.js:2406 -msgid "Extracting block" +#: js/utils/musicutils.js:1072 +msgid "chinese" msgstr "" -#: js/activity.js:2414 -msgid "Moving block up." +#: js/utils/musicutils.js:1073 +msgid "egyptian" msgstr "" -#: js/activity.js:2435 -msgid "Moving block down." +#: js/utils/musicutils.js:1075 +#.TRANS: https://en.wikipedia.org/wiki/Hirajoshi_scale NOTE: There are three different versions of this scale +msgid "hirajoshi" msgstr "" -#: js/activity.js:2456 -msgid "Moving block left." +#: js/utils/musicutils.js:1076 +msgid "Japan" msgstr "" -#: js/activity.js:2473 -msgid "Moving block right." +#: js/utils/musicutils.js:1078 +#.TRANS: https://en.wikipedia.org/wiki/In_scale and https://en.wikipedia.org/wiki/Sakura_Sakura +msgid "in" msgstr "" -#: js/activity.js:2488 -msgid "Jump to home position." +#: js/utils/musicutils.js:1080 +#.TRANS: https://en.wikipedia.org/wiki/Miny%C5%8D_scale +msgid "minyo" msgstr "" -#: js/activity.js:2515 -msgid "Hide blocks" +#: js/utils/musicutils.js:1082 +#.TRANS: Italian mathematician +msgid "fibonacci" msgstr "" -#: js/activity.js:3389 -msgid "Click the run button to run the project." +#: js/utils/musicutils.js:1083 +#: js/utils/musicutils.js:1134 +#: js/utils/musicutils.js:1177 +#: js/utils/musicutils.js:1199 +#: js/utils/synthutils.js:134 +#: js/blocks/IntervalsBlocks.js:1124 +#: js/blocks/ToneBlocks.js:946 +#: js/blocks/VolumeBlocks.js:411 +#: js/blocks/WidgetBlocks.js:399 +#: js/blocks/WidgetBlocks.js:404 +#: js/turtleactions/VolumeActions.js:218 +#: js/widgets/modewidget.js:919 +#.TRANS: customize voice +msgid "custom" msgstr "" -#: js/activity.js:3456 -#: js/SaveInterface.js:131 -#: js/SaveInterface.js:204 -#: js/SaveInterface.js:262 -#: js/SaveInterface.js:389 -#: js/SaveInterface.js:417 -#: js/ProjectStorage.js:27 -#: js/GlobalPlanet.js:467 -#: js/GlobalPlanet.js:469 -#: js/GlobalPlanet.js:495 -#.TRANS: default project title when saving as Lilypond -msgid "My Project" +#: js/utils/musicutils.js:1085 +#: js/utils/musicutils.js:1531 +#: js/blocks/WidgetBlocks.js:176 +#.TRANS: highpass filter +msgid "highpass" msgstr "" -#: js/activity.js:4261 -msgid "Show/hide block" +#: js/utils/musicutils.js:1087 +#: js/utils/musicutils.js:1532 +#.TRANS: lowpass filter +msgid "lowpass" msgstr "" -#: js/activity.js:4263 -msgid "Expand/collapse blocks" +#: js/utils/musicutils.js:1089 +#: js/utils/musicutils.js:1533 +#.TRANS: bandpass filter +msgid "bandpass" msgstr "" -#: js/activity.js:4381 -msgid "Could not parse JSON input." +#: js/utils/musicutils.js:1091 +#: js/utils/musicutils.js:1534 +#.TRANS: high-shelf filter +msgid "highshelf" msgstr "" -#: js/activity.js:4684 -#: js/activity.js:4771 -#: js/activity.js:4821 -msgid "Cannot load project from the file. Please check the file type." +#: js/utils/musicutils.js:1093 +#: js/utils/musicutils.js:1535 +#.TRANS: low-shelf filter +msgid "lowshelf" msgstr "" -#: js/activity.js:5051 -msgid "Invalid parameters" +#: js/utils/musicutils.js:1095 +#: js/utils/musicutils.js:1536 +#.TRANS: notch-shelf filter +msgid "notch" msgstr "" -#: js/turtle-singer.js:1334 -#.TRANS: partials are weighted components in a harmonic series -msgid "You must have at least one Partial block inside of a Weighted-partial block" +#: js/utils/musicutils.js:1097 +#: js/utils/musicutils.js:1537 +#.TRANS: all-pass filter +msgid "allpass" msgstr "" -#: js/turtle-singer.js:2048 -msgid "synth cannot play chords." +#: js/utils/musicutils.js:1099 +#: js/utils/musicutils.js:1538 +#.TRANS: peaking filter +msgid "peaking" msgstr "" -#: js/lilypond.js:614 -msgid "brown rat" +#: js/utils/musicutils.js:1100 +#: js/utils/musicutils.js:1546 +#: js/utils/synthutils.js:126 +#: js/blocks/PitchBlocks.js:85 +#.TRANS: sine wave +msgid "sine" msgstr "" -#: js/lilypond.js:615 -msgid "mole" +#: js/utils/musicutils.js:1101 +#: js/utils/musicutils.js:1547 +#: js/utils/synthutils.js:128 +#: js/blocks/PitchBlocks.js:39 +#.TRANS: square wave +msgid "square" msgstr "" -#: js/lilypond.js:616 -msgid "chipmunk" +#: js/utils/musicutils.js:1102 +#: js/utils/musicutils.js:1548 +#: js/utils/synthutils.js:132 +#: js/blocks/PitchBlocks.js:62 +#: js/blocks/ToneBlocks.js:39 +#.TRANS: triangle wave +msgid "triangle" msgstr "" -#: js/lilypond.js:617 -msgid "red squirrel" +#: js/utils/musicutils.js:1103 +#: js/utils/musicutils.js:1549 +#: js/utils/synthutils.js:130 +#: js/blocks/PitchBlocks.js:108 +#.TRANS: sawtooth wave +msgid "sawtooth" msgstr "" -#: js/lilypond.js:618 -msgid "guinea pig" +#: js/utils/musicutils.js:1105 +#: js/utils/musicutils.js:1312 +#: js/blocks/PitchBlocks.js:931 +#: js/blocks/PitchBlocks.js:937 +#: js/turtleactions/PitchActions.js:469 +#.TRANS: even numbers +#.TRANS: invert based on even or odd number or musical scale +msgid "even" msgstr "" -#: js/lilypond.js:619 -msgid "capybara" +#: js/utils/musicutils.js:1107 +#: js/utils/musicutils.js:1313 +#: js/blocks/PitchBlocks.js:937 +#: js/turtleactions/PitchActions.js:471 +#.TRANS: odd numbers +msgid "odd" msgstr "" -#: js/lilypond.js:620 -msgid "coypu" +#: js/utils/musicutils.js:1108 +#: js/utils/musicutils.js:1314 +#: js/blocks/PitchBlocks.js:937 +#: js/turtleactions/PitchActions.js:473 +msgid "scalar" msgstr "" -#: js/lilypond.js:621 -msgid "black rat" +#: js/utils/musicutils.js:1109 +#: js/utils/synthutils.js:72 +#: js/blocks/VolumeBlocks.js:47 +#.TRANS: musical instrument +msgid "piano" msgstr "" -#: js/lilypond.js:622 -msgid "grey squirrel" +#: js/utils/musicutils.js:1110 +#: js/utils/synthutils.js:74 +#.TRANS: musical instrument +msgid "violin" msgstr "" -#: js/lilypond.js:623 -msgid "flying squirrel" +#: js/utils/musicutils.js:1111 +#: js/utils/synthutils.js:76 +#.TRANS: viola musical instrument +msgid "viola" msgstr "" -#: js/lilypond.js:624 -msgid "bat" +#: js/utils/musicutils.js:1112 +#: js/utils/synthutils.js:114 +#.TRANS: xylophone musical instrument +msgid "xylophone" msgstr "" -#: js/lilypond.js:757 -#: js/lilypond.js:921 -#: js/lilypond.js:959 -#: js/ActionBlocks.js:1256 -#: js/ExtrasBlocks.js:553 -msgid "start drum" +#: js/utils/musicutils.js:1113 +#: js/utils/synthutils.js:136 +#.TRANS: vibraphone musical instrument +msgid "vibraphone" msgstr "" -#: js/SaveInterface.js:59 -#: js/SaveInterface.js:61 -#: js/SaveInterface.js:93 -msgid "Music Blocks Project" +#: js/utils/musicutils.js:1114 +#: js/utils/synthutils.js:78 +#.TRANS: musical instrument +msgid "cello" msgstr "" -#: js/SaveInterface.js:63 -msgid "This project was created in Music Blocks" +#: js/utils/musicutils.js:1116 +#: js/utils/synthutils.js:82 +#.TRANS: viola musical instrument +msgid "double bass" msgstr "" -#: js/SaveInterface.js:67 -msgid "Music Blocks is a Free/Libre Software application." +#: js/utils/musicutils.js:1117 +#: js/utils/synthutils.js:84 +#: js/widgets/rhythmruler.js:2511 +#.TRANS: musical instrument +msgid "guitar" msgstr "" -#: js/SaveInterface.js:69 -msgid "The source code can be accessed at" +#: js/utils/musicutils.js:1118 +#: js/utils/synthutils.js:86 +#.TRANS: musical instrument +msgid "acoustic guitar" msgstr "" -#: js/SaveInterface.js:72 -msgid "For more information, please consult the" +#: js/utils/musicutils.js:1119 +#: js/utils/synthutils.js:88 +#.TRANS: musical instrument +msgid "flute" msgstr "" -#: js/SaveInterface.js:83 -msgid "Alternatively, open the file in Music Blocks using the Load project button." +#: js/utils/musicutils.js:1120 +#: js/utils/synthutils.js:90 +#.TRANS: musical instrument +msgid "clarinet" msgstr "" -#: js/SaveInterface.js:85 -msgid "Project Code" +#: js/utils/musicutils.js:1121 +#: js/utils/synthutils.js:92 +#.TRANS: musical instrument +msgid "saxophone" msgstr "" -#: js/SaveInterface.js:87 -msgid "This code stores data about the blocks in a project." +#: js/utils/musicutils.js:1122 +#: js/utils/synthutils.js:94 +#.TRANS: musical instrument +msgid "tuba" msgstr "" -#: js/SaveInterface.js:89 -msgid "Show" +#: js/utils/musicutils.js:1123 +#: js/utils/synthutils.js:96 +#.TRANS: musical instrument +msgid "trumpet" msgstr "" -#: js/SaveInterface.js:91 -msgid "Hide" +#: js/utils/musicutils.js:1124 +#: js/utils/synthutils.js:98 +#.TRANS: musical instrument +msgid "oboe" msgstr "" -#: js/SaveInterface.js:197 -#: js/SaveInterface.js:58 -msgid "No description provided" +#: js/utils/musicutils.js:1125 +#: js/utils/synthutils.js:100 +#.TRANS: musical instrument +msgid "trombone" msgstr "" -#: js/SaveInterface.js:332 -msgid "Your recording is in progress." +#: js/utils/musicutils.js:1126 +#: js/utils/synthutils.js:116 +#.TRANS: polytone synthesizer +msgid "electronic synth" msgstr "" -#: js/SaveInterface.js:401 -#.TRANS: File name prompt for save as Lilypond -msgid "File name" +#: js/utils/musicutils.js:1127 +#: js/utils/synthutils.js:118 +#.TRANS: simple monotone synthesizer +msgid "simple 1" msgstr "" -#: js/SaveInterface.js:403 -#: js/StringHelper.js:39 -#.TRANS: Project title prompt for save as Lilypond -msgid "Project title" +#: js/utils/musicutils.js:1128 +msgid "simple 2" msgstr "" -#: js/SaveInterface.js:405 -#.TRANS: Project title prompt for save as Lilypond -msgid "Project author" +#: js/utils/musicutils.js:1129 +msgid "simple 3" msgstr "" -#: js/SaveInterface.js:407 -#.TRANS: MIDI prompt for save as Lilypond -msgid "Include MIDI output?" +#: js/utils/musicutils.js:1130 +msgid "simple 4" msgstr "" -#: js/SaveInterface.js:409 -#.TRANS: Guitar prompt for save as Lilypond -msgid "Include guitar tablature output?" +#: js/utils/musicutils.js:1131 +#: js/utils/synthutils.js:58 +#: js/blocks/DrumBlocks.js:191 +#.TRANS: white noise synthesizer +msgid "white noise" msgstr "" -#: js/SaveInterface.js:411 -#.TRANS: Lilypond is a scripting language for generating sheet music -msgid "Save as Lilypond" +#: js/utils/musicutils.js:1132 +#: js/utils/synthutils.js:60 +#.TRANS: brown noise synthesizer +msgid "brown noise" msgstr "" -#: js/SaveInterface.js:426 -#: js/EnsembleBlocks.js:75 -#: js/EnsembleBlocks.js:154 -#: js/EnsembleBlocks.js:216 -#: js/EnsembleBlocks.js:302 -#: js/EnsembleBlocks.js:348 -#: js/EnsembleBlocks.js:389 -#: js/EnsembleBlocks.js:441 -#: js/EnsembleBlocks.js:490 -#: js/EnsembleBlocks.js:536 -#: js/EnsembleBlocks.js:583 -#: js/EnsembleBlocks.js:637 -#: js/EnsembleBlocks.js:753 -#: js/EnsembleBlocks.js:840 -#: js/EnsembleBlocks.js:899 -#: js/EnsembleBlocks.js:942 -#: js/EnsembleBlocks.js:1212 -#: js/EnsembleBlocks.js:1280 -#.TRANS: default project author when saving as Lilypond -msgid "Mr. Mouse" +#: js/utils/musicutils.js:1133 +#: js/utils/synthutils.js:62 +#.TRANS: pink noise synthesizer +msgid "pink noise" msgstr "" -#: js/SaveInterface.js:573 -msgid "The Lilypond code is copied to clipboard. You can paste it here: " +#: js/utils/musicutils.js:1135 +#: js/utils/synthutils.js:148 +#: js/widgets/rhythmruler.js:2057 +#: js/widgets/rhythmruler.js:2319 +#.TRANS: musical instrument +msgid "snare drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:50 -#: js/RhythmBlockPaletteBlocks.js:232 -#.TRANS: rhythm block -#.TRANS: translate "rhythm1" as rhythm -msgid "rhythm1" +#: js/utils/musicutils.js:1136 +#: js/utils/synthutils.js:150 +#.TRANS: musical instrument +msgid "kick drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:70 -#: js/RhythmBlockPaletteBlocks.js:251 -#: js/RhythmBlockPaletteBlocks.js:484 -#: js/RhythmBlockPaletteBlocks.js:553 -#: js/RhythmBlockPaletteBlocks.js:874 -msgid "number of notes" +#: js/utils/musicutils.js:1137 +#: js/utils/synthutils.js:152 +#.TRANS: musical instrument +msgid "tom tom" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:126 -msgid "polyphonic rhythm" +#: js/utils/musicutils.js:1138 +#: js/utils/synthutils.js:154 +#.TRANS: musical instrument +msgid "floor tom" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:218 -msgid "The Rhythm block is used to generate rhythm patterns." +#: js/utils/musicutils.js:1139 +#: js/utils/synthutils.js:156 +#.TRANS: musical instrument +msgid "bass drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:279 -msgid "1/64 note" +#: js/utils/musicutils.js:1140 +#: js/utils/synthutils.js:158 +#.TRANS: a drum made from an inverted cup +msgid "cup drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:303 -msgid "1/32 note" +#: js/utils/musicutils.js:1141 +#: js/utils/synthutils.js:160 +#.TRANS: musical instrument +msgid "darbuka drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:331 -msgid "1/16 note" +#: js/utils/musicutils.js:1142 +#: js/utils/synthutils.js:164 +#.TRANS: musical instrument +msgid "hi hat" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:359 -msgid "eighth note" +#: js/utils/musicutils.js:1143 +#: js/utils/synthutils.js:166 +#.TRANS: a small metal bell +msgid "ride bell" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:387 -msgid "quarter note" +#: js/utils/musicutils.js:1144 +#: js/utils/synthutils.js:168 +#.TRANS: musical instrument +msgid "cow bell" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:415 -msgid "half note" +#: js/utils/musicutils.js:1145 +msgid "japanese drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:443 -msgid "whole note" +#: js/utils/musicutils.js:1146 +#: js/utils/synthutils.js:174 +#.TRANS: musical instrument +msgid "japanese bell" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:481 -#: js/RhythmBlockPaletteBlocks.js:550 -#: js/RhythmBlockPaletteBlocks.js:601 -#.TRANS: A tuplet is a note value divided into irregular time values. -msgid "tuplet" +#: js/utils/musicutils.js:1147 +#: js/utils/synthutils.js:170 +#.TRANS: musical instrument +msgid "triangle bell" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:767 -msgid "septuplet" +#: js/utils/musicutils.js:1148 +#: js/utils/synthutils.js:172 +#.TRANS: musical instrument +msgid "finger cymbals" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:795 -msgid "quintuplet" +#: js/utils/musicutils.js:1149 +#: js/utils/synthutils.js:176 +#.TRANS: a musically tuned set of bells +msgid "chime" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:823 -msgid "triplet" +#: js/utils/musicutils.js:1150 +#: js/utils/synthutils.js:178 +#.TRANS: a musical instrument +msgid "gong" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:850 -msgid "simple tuplet" +#: js/utils/musicutils.js:1151 +#: js/utils/synthutils.js:180 +#.TRANS: sound effect +msgid "clang" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:860 -msgid "Tuplets are a collection of notes that get scaled to a specific duration." +#: js/utils/musicutils.js:1152 +#: js/utils/synthutils.js:182 +#.TRANS: sound effect +msgid "crash" msgstr "" -#: js/WidgetBlocks.js:71 -#.TRANS: sound envelope (ADSR) -msgid "envelope" +#: js/utils/musicutils.js:1153 +#: js/utils/synthutils.js:184 +#.TRANS: sound effect +msgid "bottle" msgstr "" -#: js/WidgetBlocks.js:79 -#.TRANS: Attack time is the time taken for initial run-up of level from nil to peak, beginning when the key is first pressed. -msgid "attack" +#: js/utils/musicutils.js:1154 +#: js/utils/synthutils.js:186 +#.TRANS: sound effect +msgid "clap" msgstr "" -#: js/WidgetBlocks.js:81 -#.TRANS: Decay time is the time taken for the subsequent run down from the attack level to the designated sustain level. -msgid "decay" +#: js/utils/musicutils.js:1155 +#: js/utils/synthutils.js:188 +#.TRANS: sound effect +msgid "slap" msgstr "" -#: js/WidgetBlocks.js:83 -#.TRANS: Sustain level is the level during the main sequence of the sound's duration, until the key is released. -msgid "sustain" +#: js/utils/musicutils.js:1156 +#: js/utils/synthutils.js:190 +#.TRANS: sound effect +msgid "splash" msgstr "" -#: js/WidgetBlocks.js:85 -#.TRANS: Release time is the time taken for the level to decay from the sustain level to zero after the key is released. -msgid "release" +#: js/utils/musicutils.js:1157 +#: js/utils/synthutils.js:192 +#.TRANS: sound effect +msgid "bubbles" msgstr "" -#: js/WidgetBlocks.js:96 -msgid "Attack value should be from 0 to 100." +#: js/utils/musicutils.js:1158 +#: js/utils/synthutils.js:194 +#.TRANS: sound effect +msgid "raindrop" msgstr "" -#: js/WidgetBlocks.js:99 -msgid "Decay value should be from 0 to 100." +#: js/utils/musicutils.js:1159 +#: js/utils/synthutils.js:196 +#.TRANS: animal sound effect +msgid "cat" msgstr "" -#: js/WidgetBlocks.js:102 -msgid "Sustain value should be from 0 to 100." +#: js/utils/musicutils.js:1160 +#: js/utils/synthutils.js:198 +#.TRANS: animal sound effect +msgid "cricket" msgstr "" -#: js/WidgetBlocks.js:105 -msgid "Release value should be from 0-100." +#: js/utils/musicutils.js:1161 +#: js/utils/synthutils.js:200 +#.TRANS: animal sound effect +msgid "dog" msgstr "" -#: js/WidgetBlocks.js:121 -msgid "You are adding multiple envelope blocks." +#: js/utils/musicutils.js:1163 +#: js/utils/synthutils.js:102 +#.TRANS: musical instrument +msgid "banjo" msgstr "" -#: js/WidgetBlocks.js:144 -#.TRANS: a filter removes some unwanted components from a signal -msgid "filter" +#: js/utils/musicutils.js:1164 +#: js/utils/synthutils.js:104 +#.TRANS: musical instrument +msgid "koto" msgstr "" -#: js/WidgetBlocks.js:149 -#: js/musicutils.js:706 -#: js/musicutils.js:1105 -#.TRANS: highpass filter -msgid "highpass" +#: js/utils/musicutils.js:1165 +#: js/utils/synthutils.js:106 +#.TRANS: musical instrument +msgid "dulcimer" msgstr "" -#: js/WidgetBlocks.js:152 -#: js/ToneBlocks.js:42 -#: js/timbre.js:1558 -#: js/timbre.js:1808 -#.TRANS: type of filter, e.g., lowpass, highpass, etc. -#.TRANS: there are different types (sine, triangle, square...) of oscillators. -msgid "type" +#: js/utils/musicutils.js:1166 +#: js/utils/synthutils.js:108 +#.TRANS: musical instrument +msgid "electric guitar" msgstr "" -#: js/WidgetBlocks.js:154 -#: js/timbre.js:1818 -#.TRANS: rolloff is the steepness of a change in frequency. -msgid "rolloff" +#: js/utils/musicutils.js:1167 +#: js/utils/synthutils.js:110 +#.TRANS: musical instrument +msgid "bassoon" msgstr "" -#: js/WidgetBlocks.js:155 -#: js/MediaBlocks.js:692 -#: js/temperament.js:382 -#: js/temperament.js:417 -#: js/temperament.js:477 -#: js/temperament.js:485 -#: js/temperament.js:1348 -#: js/timbre.js:1842 -msgid "frequency" +#: js/utils/musicutils.js:1168 +#: js/utils/synthutils.js:112 +#.TRANS: musical instrument +msgid "celeste" msgstr "" -#: js/WidgetBlocks.js:179 -#.TRANS: rolloff is the steepness of a change in frequency. -msgid "Rolloff value should be either -12, -24, -48, or -96 decibels/octave." +#: js/utils/musicutils.js:1170 +#: js/widgets/temperament.js:787 +#.TRANS: musical temperament +msgid "equal" msgstr "" -#: js/WidgetBlocks.js:211 -msgid "The Temperament tool is used to define custom tuning." +#: js/utils/musicutils.js:1172 +#.TRANS: musical temperament +msgid "Pythagorean" msgstr "" -#: js/WidgetBlocks.js:277 -#: js/sampler.js:329 -msgid "Upload a sample and adjust its pitch center." +#: js/utils/musicutils.js:1174 +#.TRANS: musical temperament +msgid "just intonation" msgstr "" -#: js/WidgetBlocks.js:284 -#.TRANS: the speed at music is should be played. -msgid "sampler" +#: js/utils/musicutils.js:1176 +#.TRANS: musical temperament +msgid "meantone" msgstr "" -#: js/WidgetBlocks.js:329 -#: js/WidgetBlocks.js:334 -#: js/IntervalsBlocks.js:928 -#: js/VolumeBlocks.js:411 -#: js/ToneBlocks.js:946 -#: js/VolumeActions.js:218 -#: js/musicutils.js:704 -#: js/musicutils.js:755 -#: js/musicutils.js:798 -#: js/musicutils.js:820 -#: js/musicutils.js:1136 -#: js/synthutils.js:118 -#: js/modewidget.js:919 -#.TRANS: customize voice -msgid "custom" +#: js/utils/musicutils.js:1193 +msgid "major 7th" msgstr "" -#: js/WidgetBlocks.js:432 -msgid "The Meter block opens a tool to select strong beats for the meter." +#: js/utils/musicutils.js:1194 +msgid "minor 7th" msgstr "" -#: js/WidgetBlocks.js:473 -msgid "The oscilloscope block opens a tool to visualize waveforms." +#: js/utils/musicutils.js:1195 +msgid "dominant 7th" msgstr "" -#: js/WidgetBlocks.js:478 -msgid "oscilloscope" +#: js/utils/musicutils.js:1196 +msgid "minor-major 7th" msgstr "" -#: js/WidgetBlocks.js:530 -msgid "The Custom mode block opens a tool to explore musical mode (the spacing of the notes in a scale)." +#: js/utils/musicutils.js:1197 +msgid "fully-diminished 7th" msgstr "" -#: js/WidgetBlocks.js:536 -#.TRANS: musical mode is the pattern of half-steps in an octave, e.g., Major or Minor modes -msgid "custom mode" +#: js/utils/musicutils.js:1198 +msgid "half-diminished 7th" msgstr "" -#: js/WidgetBlocks.js:570 -msgid "The Tempo block opens a metronome to visualize the beat." +#: js/utils/musicutils.js:1557 +#: js/utils/musicutils.js:1569 +msgid "Equal (12EDO)" msgstr "" -#: js/WidgetBlocks.js:617 -msgid "The Arpeggio Widget is used to compose chord sequences." +#: js/utils/musicutils.js:1558 +#: js/utils/musicutils.js:1570 +msgid "5-limit Just Intonation" msgstr "" -#: js/WidgetBlocks.js:623 -#: js/IntervalsBlocks.js:683 -msgid "arpeggio" +#: js/utils/musicutils.js:1559 +#: js/utils/musicutils.js:1571 +msgid "Pythagorean (3-limit JI)" msgstr "" -#: js/WidgetBlocks.js:677 -msgid "The Pitch drum matrix is used to map pitches to drum sounds." +#: js/utils/musicutils.js:1560 +#: js/utils/musicutils.js:1561 +#: js/utils/musicutils.js:1572 +#: js/utils/musicutils.js:1573 +msgid "Meantone" msgstr "" -#: js/WidgetBlocks.js:682 -#.TRANS: makes a mapping between pitches and drum sounds -msgid "pitch-drum mapper" +#: js/utils/musicutils.js:1574 +msgid "Custom" msgstr "" -#: js/WidgetBlocks.js:724 -msgid "You must have at least one pitch block and one drum block in the matrix." +#: js/utils/musicutils.js:5387 +#: js/utils/musicutils.js:5430 +msgid "current" msgstr "" -#: js/WidgetBlocks.js:746 -msgid "The Pitch slider tool to is used to generate pitches at selected frequencies." +#: js/utils/musicutils.js:5390 +#: js/utils/musicutils.js:5421 +msgid "next" msgstr "" -#: js/WidgetBlocks.js:751 -#.TRANS: widget to generate pitches using a slider -msgid "pitch slider" +#: js/utils/musicutils.js:5393 +#: js/utils/musicutils.js:5426 +msgid "previous" msgstr "" -#: js/WidgetBlocks.js:788 -msgid "chromatic keyboard" +#: js/utils/synthutils.js:120 +#.TRANS: simple monotone synthesizer +msgid "simple-2" msgstr "" -#: js/WidgetBlocks.js:815 -#: js/WidgetBlocks.js:874 -#.TRANS: widget to generate pitches using a slider -msgid "music keyboard" +#: js/utils/synthutils.js:122 +#.TRANS: simple monotone synthesizer +msgid "simple-3" msgstr "" -#: js/WidgetBlocks.js:859 -#: js/WidgetBlocks.js:866 -msgid "The Music keyboard block opens a piano keyboard that can be used to create notes." +#: js/utils/synthutils.js:124 +#.TRANS: simple monotone synthesizer +msgid "simple-4" msgstr "" -#: js/WidgetBlocks.js:910 -msgid "The Pitch staircase tool to is used to generate pitches from a given ratio." +#: js/utils/synthutils.js:162 +#.TRANS: musical instrument +msgid "taiko" msgstr "" -#: js/WidgetBlocks.js:917 -#.TRANS: generate a progressive sequence of pitches -msgid "pitch staircase" +#: js/blocks/ActionBlocks.js:58 +msgid "The Return block will return a value from an action." msgstr "" -#: js/WidgetBlocks.js:982 -msgid "The Rhythm Maker block opens a tool to create drum machines." +#: js/blocks/ActionBlocks.js:75 +msgid "return" msgstr "" -#: js/WidgetBlocks.js:1036 -msgid "G major scale" +#: js/blocks/ActionBlocks.js:128 +msgid "The Return to URL block will return a value to a webpage." msgstr "" -#: js/WidgetBlocks.js:1064 -msgid "C major scale" +#: js/blocks/ActionBlocks.js:145 +msgid "return to URL" msgstr "" -#: js/WidgetBlocks.js:1097 -msgid "The Phrase Maker block opens a tool to create musical phrases." +#: js/blocks/ActionBlocks.js:233 +#: js/blocks/ActionBlocks.js:290 +#: js/blocks/ActionBlocks.js:501 +#: js/blocks/ActionBlocks.js:688 +msgid "The Calculate block returns a value calculated by an action." msgstr "" -#: js/WidgetBlocks.js:1104 -#.TRANS: assigns pitch to a sequence of beats to generate a melody -msgid "phrase maker" +#: js/blocks/ActionBlocks.js:251 +#: js/blocks/ActionBlocks.js:517 +#: js/blocks/ActionBlocks.js:707 +msgid "calculate" msgstr "" -#: js/WidgetBlocks.js:1168 -msgid "You must have at least one pitch block and one rhythm block in the matrix." +#: js/blocks/ActionBlocks.js:376 +#: js/blocks/ActionBlocks.js:593 +#: js/blocks/ActionBlocks.js:942 +#: js/blocks/ActionBlocks.js:1389 +#.TRANS: do is the do something or take an action. +msgid "The Do block is used to initiate an action." msgstr "" -#: js/WidgetBlocks.js:1220 -msgid "The Status block opens a tool for inspecting the status of Music Blocks as it is running." +#: js/blocks/ActionBlocks.js:390 +#: js/blocks/ActionBlocks.js:610 +#: js/blocks/ActionBlocks.js:959 +#: js/blocks/ActionBlocks.js:1048 +#: js/blocks/MeterBlocks.js:769 +msgid "do1" msgstr "" -#: js/IntervalsBlocks.js:45 -msgid "set temperament" +#: js/blocks/ActionBlocks.js:390 +#: js/blocks/ActionBlocks.js:610 +#: js/blocks/ActionBlocks.js:959 +#: js/blocks/ActionBlocks.js:1048 +#: js/blocks/FlowBlocks.js:742 +#: js/blocks/FlowBlocks.js:822 +#: js/blocks/MeterBlocks.js:769 +msgid "do" msgstr "" -#: js/IntervalsBlocks.js:63 -#: js/MediaBlocks.js:746 -#: js/PitchBlocks.js:657 -#: js/PitchBlocks.js:933 -#: js/PitchBlocks.js:972 -#: js/PitchBlocks.js:1005 -#: js/PitchBlocks.js:1166 -#: js/PitchBlocks.js:1679 -#: js/PitchBlocks.js:1720 -#: js/PitchBlocks.js:1827 -#: js/ToneBlocks.js:1025 -#.TRANS: adjusts the shift up or down by one octave (twelve half-steps in the interval between two notes, one having twice or half the frequency in Hz of the other.) -msgid "octave" +#: js/blocks/ActionBlocks.js:791 +#: js/blocks/ActionBlocks.js:865 +msgid "The Arg block contains the value of an argument passed to an action." msgstr "" -#: js/IntervalsBlocks.js:99 -msgid "The Temperament name block is used to select a tuning method." +#: js/blocks/ActionBlocks.js:806 +#: js/blocks/ActionBlocks.js:878 +msgid "arg" msgstr "" -#: js/IntervalsBlocks.js:161 -msgid "doubly" +#: js/blocks/ActionBlocks.js:836 +#: js/blocks/ActionBlocks.js:900 +#: js/blocks/ActionBlocks.js:908 +msgid "Invalid argument" msgstr "" -#: js/IntervalsBlocks.js:166 -msgid "The Doubly block will double the size of an interval." +#: js/blocks/ActionBlocks.js:944 +msgid "In the example, it is used with the One of block to choose a random phase." msgstr "" -#: js/IntervalsBlocks.js:262 -msgid "interval number" +#: js/blocks/ActionBlocks.js:1019 +#: js/blocks/ActionBlocks.js:1026 +msgid "The Listen block is used to listen for an event such as a mouse click." msgstr "" -#: js/IntervalsBlocks.js:330 -#.TRANS: measure the distance between two pitches in semi-tones -msgid "semi-tone interval measure" +#: js/blocks/ActionBlocks.js:1028 +msgid "When the event happens, an action is taken." msgstr "" -#: js/IntervalsBlocks.js:397 -#: js/IntervalsBlocks.js:513 -msgid "You must use two pitch blocks when measuring an interval." +#: js/blocks/ActionBlocks.js:1045 +msgid "on" msgstr "" -#: js/IntervalsBlocks.js:439 -msgid "The Scalar interval block measures the distance between two notes in the current key and mode." +#: js/blocks/ActionBlocks.js:1048 +#: js/blocks/ActionBlocks.js:1049 +#: js/blocks/ActionBlocks.js:1153 +msgid "event" msgstr "" -#: js/IntervalsBlocks.js:445 -#.TRANS: measure the distance between two pitches in steps of musical scale -msgid "scalar interval measure" +#: js/blocks/ActionBlocks.js:1133 +msgid "The Broadcast block is used to trigger an event." msgstr "" -#: js/IntervalsBlocks.js:592 -#: js/musicutils.js:637 -#: js/musicutils.js:908 -#.TRANS: perfect is a music term related to intervals -msgid "perfect" +#: js/blocks/ActionBlocks.js:1151 +msgid "broadcast" msgstr "" -#: js/IntervalsBlocks.js:621 -msgid "In the figure, we add sol# to sol." +#: js/blocks/ActionBlocks.js:1208 +msgid "Each Start block is a separate voice." msgstr "" -#: js/IntervalsBlocks.js:627 -#: js/OrnamentBlocks.js:220 -#.TRANS: calculate a relative step between notes based on semi-tones -msgid "semi-tone interval" +#: js/blocks/ActionBlocks.js:1304 +msgid "It is often used for storing a phrase of music that is repeated." msgstr "" -#: js/IntervalsBlocks.js:676 -msgid "The output of the example is: do, mi, sol, sol, ti, mi" +#: js/blocks/ActionBlocks.js:1495 +msgid "define temperament" msgstr "" -#: js/IntervalsBlocks.js:735 -msgid "The Chord block calculates common chords." +#: js/blocks/BooleanBlocks.js:44 +msgid "The Not block is the logical not operator." msgstr "" -#: js/IntervalsBlocks.js:737 -msgid "In the figure, we generate a C-major chord." +#: js/blocks/BooleanBlocks.js:62 +msgid "not" msgstr "" -#: js/IntervalsBlocks.js:742 -msgid "chord" +#: js/blocks/BooleanBlocks.js:134 +msgid "The And block is the logical and operator." msgstr "" -#: js/IntervalsBlocks.js:794 -msgid "The Ratio Interval block calculates an interval based on a ratio." +#: js/blocks/BooleanBlocks.js:152 +msgid "and" msgstr "" -#: js/IntervalsBlocks.js:799 -msgid "ratio interval" +#: js/blocks/BooleanBlocks.js:218 +msgid "The Or block is the logical or operator." msgstr "" -#: js/IntervalsBlocks.js:868 -msgid "In the figure, we add la to sol." +#: js/blocks/BooleanBlocks.js:236 +msgid "or" msgstr "" -#: js/IntervalsBlocks.js:924 -#.TRANS: define a custom mode -msgid "define mode" +#: js/blocks/BooleanBlocks.js:302 +msgid "The XOR block is the logical XOR operator." msgstr "" -#: js/IntervalsBlocks.js:977 -msgid "movable Do" +#: js/blocks/BooleanBlocks.js:320 +msgid "xor" msgstr "" -#: js/IntervalsBlocks.js:1028 -#.TRANS: mode length is the number of notes in the mode, e.g., 7 for major and minor scales; 12 for chromatic scales -msgid "mode length" +#: js/blocks/BooleanBlocks.js:808 +msgid "The Equal block returns True if the two numbers are equal." msgstr "" -#: js/IntervalsBlocks.js:1037 -msgid "The Mode length block is the number of notes in the current scale." +#: js/blocks/BooleanBlocks.js:909 +msgid "The Not-equal-to block returns True if the two numbers are not equal to each other." msgstr "" -#: js/IntervalsBlocks.js:1039 -msgid "Most Western scales have 7 notes." +#: js/blocks/BooleanBlocks.js:1008 +msgid "The Boolean block is used to specify true or false." msgstr "" -#: js/IntervalsBlocks.js:1088 -#.TRANS: the mode in music is 'major', 'minor', etc. -msgid "current mode" +#: js/blocks/BoxesBlocks.js:53 +#: js/blocks/BoxesBlocks.js:59 +msgid "The Add-to block is used to add to the value stored in a box." msgstr "" -#: js/IntervalsBlocks.js:1141 -#.TRANS: the key is a group of pitches with which a music composition is created -msgid "current key" +#: js/blocks/BoxesBlocks.js:61 +msgid "It can also be used with other blocks such as Color and Pen size." msgstr "" -#: js/IntervalsBlocks.js:1193 -#: js/IntervalsBlocks.js:1238 -#.TRANS: set the key and mode, e.g. C Major -msgid "set key" +#: js/blocks/BoxesBlocks.js:73 +msgid "add" msgstr "" -#: js/IntervalsBlocks.js:1247 -#: js/IntervalsBlocks.js:1253 -msgid "The Set key block is used to set the key and mode," +#: js/blocks/BoxesBlocks.js:75 +#: js/widgets/temperament.js:857 +msgid "to" msgstr "" -#: js/IntervalsBlocks.js:1253 -msgid "eg C Major" +#: js/blocks/BoxesBlocks.js:75 +#: js/blocks/BoxesBlocks.js:595 +#: js/blocks/HeapBlocks.js:544 +msgid "value1" msgstr "" -#: js/IntervalsBlocks.js:1266 -#: js/DictBlocks.js:215 -#: js/DictBlocks.js:216 -#: js/DictBlocks.js:289 -#: js/DictBlocks.js:290 -#: js/DictBlocks.js:357 -#: js/DictBlocks.js:430 -#: js/DictBlocks.js:431 -#.TRANS: key, e.g., C in C Major -msgid "key" +#: js/blocks/BoxesBlocks.js:118 +msgid "Block does not support incrementing." msgstr "" -#: js/ActionBlocks.js:58 -msgid "The Return block will return a value from an action." +#: js/blocks/BoxesBlocks.js:152 +msgid "The Add-1-to block adds one to the value stored in a box." msgstr "" -#: js/ActionBlocks.js:75 -msgid "return" +#: js/blocks/BoxesBlocks.js:163 +msgid "add 1 to" msgstr "" -#: js/ActionBlocks.js:128 -msgid "The Return to URL block will return a value to a webpage." +#: js/blocks/BoxesBlocks.js:211 +msgid "The Subtract-1-from block subtracts one from the value stored in a box." msgstr "" -#: js/ActionBlocks.js:145 -msgid "return to URL" +#: js/blocks/BoxesBlocks.js:222 +msgid "subtract 1 from" msgstr "" -#: js/ActionBlocks.js:233 -#: js/ActionBlocks.js:290 -#: js/ActionBlocks.js:501 -#: js/ActionBlocks.js:688 -msgid "The Calculate block returns a value calculated by an action." +#: js/blocks/BoxesBlocks.js:270 +#: js/blocks/BoxesBlocks.js:387 +msgid "The Box block returns the value stored in a box." msgstr "" -#: js/ActionBlocks.js:251 -#: js/ActionBlocks.js:517 -#: js/ActionBlocks.js:707 -msgid "calculate" +#: js/blocks/BoxesBlocks.js:500 +#: js/blocks/BoxesBlocks.js:576 +msgid "The Store in block will store a value in a box." msgstr "" -#: js/ActionBlocks.js:376 -#: js/ActionBlocks.js:593 -#: js/ActionBlocks.js:942 -#: js/ActionBlocks.js:1389 -#.TRANS: do is the do something or take an action. -msgid "The Do block is used to initiate an action." +#: js/blocks/BoxesBlocks.js:595 +#: js/blocks/EnsembleBlocks.js:391 +#: js/blocks/EnsembleBlocks.js:402 +msgid "name1" msgstr "" -#: js/ActionBlocks.js:390 -#: js/ActionBlocks.js:610 -#: js/ActionBlocks.js:959 -#: js/ActionBlocks.js:1048 -#: js/MeterBlocks.js:769 -msgid "do1" +#: js/blocks/BoxesBlocks.js:652 +msgid "The Box2 block returns the value stored in Box2." msgstr "" -#: js/ActionBlocks.js:390 -#: js/ActionBlocks.js:610 -#: js/ActionBlocks.js:959 -#: js/ActionBlocks.js:1048 -#: js/FlowBlocks.js:742 -#: js/FlowBlocks.js:822 -#: js/MeterBlocks.js:769 -msgid "do" +#: js/blocks/BoxesBlocks.js:703 +msgid "The Store in Box2 block is used to store a value in Box2." msgstr "" -#: js/ActionBlocks.js:791 -#: js/ActionBlocks.js:865 -msgid "The Arg block contains the value of an argument passed to an action." +#: js/blocks/BoxesBlocks.js:715 +msgid "store in box2" msgstr "" -#: js/ActionBlocks.js:806 -#: js/ActionBlocks.js:878 -msgid "arg" +#: js/blocks/BoxesBlocks.js:761 +msgid "The Box1 block returns the value stored in Box1." msgstr "" -#: js/ActionBlocks.js:836 -#: js/ActionBlocks.js:900 -#: js/ActionBlocks.js:908 -msgid "Invalid argument" +#: js/blocks/BoxesBlocks.js:812 +msgid "The Store in Box1 block is used to store a value in Box1." msgstr "" -#: js/ActionBlocks.js:944 -msgid "In the example, it is used with the One of block to choose a random phase." +#: js/blocks/BoxesBlocks.js:826 +msgid "store in box1" msgstr "" -#: js/ActionBlocks.js:1019 -#: js/ActionBlocks.js:1026 -msgid "The Listen block is used to listen for an event such as a mouse click." +#: js/blocks/DictBlocks.js:77 +msgid "show dictionary" msgstr "" -#: js/ActionBlocks.js:1028 -msgid "When the event happens, an action is taken." +#: js/blocks/DictBlocks.js:80 +#: js/blocks/DictBlocks.js:145 +#: js/blocks/DictBlocks.js:216 +#: js/blocks/DictBlocks.js:290 +#: js/blocks/ProgramBlocks.js:396 +#: js/blocks/ProgramBlocks.js:501 +#: js/blocks/ProgramBlocks.js:664 +msgid "My Dictionary" msgstr "" -#: js/ActionBlocks.js:1045 -msgid "on" +#: js/blocks/DictBlocks.js:129 +msgid "The Dictionary block returns a dictionary." msgstr "" -#: js/ActionBlocks.js:1048 -#: js/ActionBlocks.js:1049 -#: js/ActionBlocks.js:1153 -msgid "event" +#: js/blocks/DictBlocks.js:197 +#: js/blocks/DictBlocks.js:339 +msgid "The Get-dict block returns a value in the dictionary for a specified key." msgstr "" -#: js/ActionBlocks.js:1133 -msgid "The Broadcast block is used to trigger an event." +#: js/blocks/DictBlocks.js:212 +#: js/blocks/DictBlocks.js:354 +#.TRANS: retrieve a value from the dictionary with a given key +msgid "get value" msgstr "" -#: js/ActionBlocks.js:1151 -msgid "broadcast" +#: js/blocks/DictBlocks.js:215 +#: js/blocks/DictBlocks.js:216 +#: js/blocks/DictBlocks.js:289 +#: js/blocks/DictBlocks.js:290 +#: js/blocks/DictBlocks.js:357 +#: js/blocks/DictBlocks.js:430 +#: js/blocks/DictBlocks.js:431 +msgid "key2" msgstr "" -#: js/ActionBlocks.js:1208 -msgid "Each Start block is a separate voice." +#: js/blocks/DictBlocks.js:215 +#: js/blocks/DictBlocks.js:216 +#: js/blocks/DictBlocks.js:289 +#: js/blocks/DictBlocks.js:290 +#: js/blocks/DictBlocks.js:357 +#: js/blocks/DictBlocks.js:430 +#: js/blocks/DictBlocks.js:431 +#: js/blocks/IntervalsBlocks.js:1462 +#.TRANS: key, e.g., C in C Major +msgid "key" msgstr "" -#: js/ActionBlocks.js:1304 -msgid "It is often used for storing a phrase of music that is repeated." +#: js/blocks/DictBlocks.js:271 +#: js/blocks/DictBlocks.js:411 +msgid "The Set-dict block sets a value in the dictionary for a specified key." msgstr "" -#: js/ActionBlocks.js:1495 -msgid "define temperament" +#: js/blocks/DictBlocks.js:286 +#: js/blocks/DictBlocks.js:427 +#.TRANS: set a value in the dictionary for a given key +msgid "set value" msgstr "" -#: js/EnsembleBlocks.js:66 +#: js/blocks/EnsembleBlocks.js:66 msgid "mouse index heap" msgstr "" -#: js/EnsembleBlocks.js:68 +#: js/blocks/EnsembleBlocks.js:68 msgid "The Mouse index heap block returns a value in the heap at a specified location for a specified mouse." msgstr "" -#: js/EnsembleBlocks.js:77 -#: js/EnsembleBlocks.js:1080 +#: js/blocks/EnsembleBlocks.js:77 +#: js/blocks/EnsembleBlocks.js:1080 msgid "mouse name" msgstr "" -#: js/EnsembleBlocks.js:77 -#: js/EnsembleBlocks.js:92 -#: js/HeapBlocks.js:544 +#: js/blocks/EnsembleBlocks.js:77 +#: js/blocks/EnsembleBlocks.js:92 +#: js/blocks/HeapBlocks.js:544 #.TRANS: value1 is a numeric value (JAPANESE ONLY) msgid "index" msgstr "" -#: js/EnsembleBlocks.js:80 +#: js/blocks/EnsembleBlocks.js:80 msgid "turtle index heap" msgstr "" -#: js/EnsembleBlocks.js:82 +#: js/blocks/EnsembleBlocks.js:82 msgid "The Turtle index heap block returns a value in the heap at a specified location for a specified turtle." msgstr "" -#: js/EnsembleBlocks.js:90 -#: js/EnsembleBlocks.js:167 -#: js/EnsembleBlocks.js:230 -#: js/EnsembleBlocks.js:316 -#: js/EnsembleBlocks.js:362 -#: js/EnsembleBlocks.js:400 -#: js/EnsembleBlocks.js:454 -#: js/EnsembleBlocks.js:504 -#: js/EnsembleBlocks.js:550 -#: js/EnsembleBlocks.js:597 -#: js/EnsembleBlocks.js:651 -#: js/EnsembleBlocks.js:763 -#: js/EnsembleBlocks.js:854 -#: js/EnsembleBlocks.js:915 -#: js/EnsembleBlocks.js:955 -#: js/EnsembleBlocks.js:1219 -#: js/EnsembleBlocks.js:1293 +#: js/blocks/EnsembleBlocks.js:90 +#: js/blocks/EnsembleBlocks.js:167 +#: js/blocks/EnsembleBlocks.js:230 +#: js/blocks/EnsembleBlocks.js:316 +#: js/blocks/EnsembleBlocks.js:362 +#: js/blocks/EnsembleBlocks.js:400 +#: js/blocks/EnsembleBlocks.js:454 +#: js/blocks/EnsembleBlocks.js:504 +#: js/blocks/EnsembleBlocks.js:550 +#: js/blocks/EnsembleBlocks.js:597 +#: js/blocks/EnsembleBlocks.js:651 +#: js/blocks/EnsembleBlocks.js:763 +#: js/blocks/EnsembleBlocks.js:854 +#: js/blocks/EnsembleBlocks.js:915 +#: js/blocks/EnsembleBlocks.js:955 +#: js/blocks/EnsembleBlocks.js:1219 +#: js/blocks/EnsembleBlocks.js:1293 #.TRANS: Yertle is the name of a turtle. msgid "Yertle" msgstr "" -#: js/EnsembleBlocks.js:92 -#: js/EnsembleBlocks.js:1089 +#: js/blocks/EnsembleBlocks.js:92 +#: js/blocks/EnsembleBlocks.js:1089 msgid "turtle name" msgstr "" -#: js/EnsembleBlocks.js:122 -#: js/EnsembleBlocks.js:1197 -#: js/HeapBlocks.js:474 -#: js/HeapBlocks.js:572 +#: js/blocks/EnsembleBlocks.js:122 +#: js/blocks/EnsembleBlocks.js:1197 +#: js/blocks/HeapBlocks.js:474 +#: js/blocks/HeapBlocks.js:572 msgid "Index must be > 0." msgstr "" -#: js/EnsembleBlocks.js:127 -#: js/HeapBlocks.js:479 -#: js/HeapBlocks.js:577 +#: js/blocks/EnsembleBlocks.js:127 +#: js/blocks/HeapBlocks.js:479 +#: js/blocks/HeapBlocks.js:577 msgid "Maximum heap size is 1000." msgstr "" -#: js/EnsembleBlocks.js:145 +#: js/blocks/EnsembleBlocks.js:145 msgid "stop mouse" msgstr "" -#: js/EnsembleBlocks.js:147 +#: js/blocks/EnsembleBlocks.js:147 msgid "The Stop mouse block stops the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:158 +#: js/blocks/EnsembleBlocks.js:158 msgid "stop turtle" msgstr "" -#: js/EnsembleBlocks.js:160 +#: js/blocks/EnsembleBlocks.js:160 msgid "The Stop turtle block stops the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:184 -#: js/EnsembleBlocks.js:247 -#: js/EnsembleBlocks.js:413 -#: js/EnsembleBlocks.js:468 -#: js/EnsembleBlocks.js:706 -#: js/EnsembleBlocks.js:808 -#: js/EnsembleBlocks.js:870 -#: js/EnsembleBlocks.js:1190 -#: js/EnsembleBlocks.js:1253 +#: js/blocks/EnsembleBlocks.js:184 +#: js/blocks/EnsembleBlocks.js:247 +#: js/blocks/EnsembleBlocks.js:413 +#: js/blocks/EnsembleBlocks.js:468 +#: js/blocks/EnsembleBlocks.js:706 +#: js/blocks/EnsembleBlocks.js:808 +#: js/blocks/EnsembleBlocks.js:870 +#: js/blocks/EnsembleBlocks.js:1190 +#: js/blocks/EnsembleBlocks.js:1253 msgid "Cannot find mouse" msgstr "" -#: js/EnsembleBlocks.js:186 -#: js/EnsembleBlocks.js:249 -#: js/EnsembleBlocks.js:415 -#: js/EnsembleBlocks.js:470 -#: js/EnsembleBlocks.js:708 -#: js/EnsembleBlocks.js:810 -#: js/EnsembleBlocks.js:872 -#: js/EnsembleBlocks.js:1192 -#: js/EnsembleBlocks.js:1255 +#: js/blocks/EnsembleBlocks.js:186 +#: js/blocks/EnsembleBlocks.js:249 +#: js/blocks/EnsembleBlocks.js:415 +#: js/blocks/EnsembleBlocks.js:470 +#: js/blocks/EnsembleBlocks.js:708 +#: js/blocks/EnsembleBlocks.js:810 +#: js/blocks/EnsembleBlocks.js:872 +#: js/blocks/EnsembleBlocks.js:1192 +#: js/blocks/EnsembleBlocks.js:1255 msgid "Cannot find turtle" msgstr "" -#: js/EnsembleBlocks.js:206 +#: js/blocks/EnsembleBlocks.js:206 msgid "start mouse" msgstr "" -#: js/EnsembleBlocks.js:209 +#: js/blocks/EnsembleBlocks.js:209 msgid "The Start mouse block starts the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:220 +#: js/blocks/EnsembleBlocks.js:220 msgid "start turtle" msgstr "" -#: js/EnsembleBlocks.js:223 +#: js/blocks/EnsembleBlocks.js:223 msgid "The Start turtle block starts the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:256 +#: js/blocks/EnsembleBlocks.js:256 msgid "Mouse is already running." msgstr "" -#: js/EnsembleBlocks.js:258 +#: js/blocks/EnsembleBlocks.js:258 msgid "Turtle is already running." msgstr "" -#: js/EnsembleBlocks.js:282 +#: js/blocks/EnsembleBlocks.js:282 msgid "Cannot find start block" msgstr "" -#: js/EnsembleBlocks.js:292 +#: js/blocks/EnsembleBlocks.js:292 #.TRANS: pen color for this mouse msgid "mouse color" msgstr "" -#: js/EnsembleBlocks.js:294 +#: js/blocks/EnsembleBlocks.js:294 msgid "The Mouse color block returns the pen color of the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:306 +#: js/blocks/EnsembleBlocks.js:306 #.TRANS: pen color for this turtle msgid "turtle color" msgstr "" -#: js/EnsembleBlocks.js:308 +#: js/blocks/EnsembleBlocks.js:308 msgid "The Turtle color block returns the pen color of the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:338 +#: js/blocks/EnsembleBlocks.js:338 #.TRANS: heading (compass direction) for this mouse msgid "mouse heading" msgstr "" -#: js/EnsembleBlocks.js:340 +#: js/blocks/EnsembleBlocks.js:340 msgid "The Mouse heading block returns the heading of the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:352 +#: js/blocks/EnsembleBlocks.js:352 #.TRANS: heading (compass direction) for this turtle msgid "turtle heading" msgstr "" -#: js/EnsembleBlocks.js:354 +#: js/blocks/EnsembleBlocks.js:354 msgid "The Turtle heading block returns the heading of the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:384 -#: js/EnsembleBlocks.js:439 +#: js/blocks/EnsembleBlocks.js:384 +#: js/blocks/EnsembleBlocks.js:439 #.TRANS: set xy position for this mouse msgid "set mouse" msgstr "" -#: js/EnsembleBlocks.js:391 -#: js/EnsembleBlocks.js:402 -#: js/BoxesBlocks.js:595 -msgid "name1" -msgstr "" - -#: js/EnsembleBlocks.js:391 -#: js/EnsembleBlocks.js:402 -#: js/ProgramBlocks.js:881 -#: js/GraphicsBlocks.js:235 -#: js/GraphicsBlocks.js:313 -#: js/GraphicsBlocks.js:436 -#: js/GraphicsBlocks.js:487 -#: js/GraphicsBlocks.js:534 -#: js/GraphicsBlocks.js:750 +#: js/blocks/EnsembleBlocks.js:391 +#: js/blocks/EnsembleBlocks.js:402 +#: js/blocks/GraphicsBlocks.js:235 +#: js/blocks/GraphicsBlocks.js:313 +#: js/blocks/GraphicsBlocks.js:436 +#: js/blocks/GraphicsBlocks.js:487 +#: js/blocks/GraphicsBlocks.js:534 +#: js/blocks/GraphicsBlocks.js:750 +#: js/blocks/ProgramBlocks.js:881 msgid "x" msgstr "" -#: js/EnsembleBlocks.js:391 -#: js/EnsembleBlocks.js:402 -#: js/ProgramBlocks.js:881 -#: js/GraphicsBlocks.js:149 -#: js/GraphicsBlocks.js:313 -#: js/GraphicsBlocks.js:436 -#: js/GraphicsBlocks.js:487 -#: js/GraphicsBlocks.js:534 -#: js/GraphicsBlocks.js:750 +#: js/blocks/EnsembleBlocks.js:391 +#: js/blocks/EnsembleBlocks.js:402 +#: js/blocks/GraphicsBlocks.js:149 +#: js/blocks/GraphicsBlocks.js:313 +#: js/blocks/GraphicsBlocks.js:436 +#: js/blocks/GraphicsBlocks.js:487 +#: js/blocks/GraphicsBlocks.js:534 +#: js/blocks/GraphicsBlocks.js:750 +#: js/blocks/ProgramBlocks.js:881 msgid "y" msgstr "" -#: js/EnsembleBlocks.js:395 -#: js/EnsembleBlocks.js:452 +#: js/blocks/EnsembleBlocks.js:395 +#: js/blocks/EnsembleBlocks.js:452 #.TRANS: set xy position for this turtle msgid "set turtle" msgstr "" -#: js/EnsembleBlocks.js:433 +#: js/blocks/EnsembleBlocks.js:433 msgid "The Set mouse block sends a stack of blocks to be run by the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:446 +#: js/blocks/EnsembleBlocks.js:446 msgid "The Set turtle block sends a stack of blocks to be run by the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:480 +#: js/blocks/EnsembleBlocks.js:480 #.TRANS: y position for this mouse msgid "mouse y" msgstr "" -#: js/EnsembleBlocks.js:482 +#: js/blocks/EnsembleBlocks.js:482 msgid "The Y mouse block returns the Y position of the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:494 +#: js/blocks/EnsembleBlocks.js:494 #.TRANS: y position for this turtle msgid "turtle y" msgstr "" -#: js/EnsembleBlocks.js:496 +#: js/blocks/EnsembleBlocks.js:496 msgid "The Y turtle block returns the Y position of the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:526 +#: js/blocks/EnsembleBlocks.js:526 #.TRANS: x position for this mouse msgid "mouse x" msgstr "" -#: js/EnsembleBlocks.js:528 +#: js/blocks/EnsembleBlocks.js:528 msgid "The X mouse block returns the X position of the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:540 +#: js/blocks/EnsembleBlocks.js:540 #.TRANS: x position for this turtle msgid "turtle x" msgstr "" -#: js/EnsembleBlocks.js:542 +#: js/blocks/EnsembleBlocks.js:542 msgid "The X turtle block returns the X position of the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:573 +#: js/blocks/EnsembleBlocks.js:573 #.TRANS: notes played by this mouse msgid "mouse notes played" msgstr "" -#: js/EnsembleBlocks.js:575 +#: js/blocks/EnsembleBlocks.js:575 msgid "The Mouse elapse notes block returns the number of notes played by the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:587 +#: js/blocks/EnsembleBlocks.js:587 #.TRANS: notes played by this turtle msgid "turtle notes played" msgstr "" -#: js/EnsembleBlocks.js:589 +#: js/blocks/EnsembleBlocks.js:589 msgid "The Turtle elapse notes block returns the number of notes played by the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:627 +#: js/blocks/EnsembleBlocks.js:627 #.TRANS: convert current note for this turtle to piano key (1-88) msgid "mouse pitch number" msgstr "" -#: js/EnsembleBlocks.js:629 +#: js/blocks/EnsembleBlocks.js:629 msgid "The Mouse pitch block returns the current pitch number being played by the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:641 +#: js/blocks/EnsembleBlocks.js:641 #.TRANS: convert current note for this turtle to piano key (1-88) msgid "turtle pitch number" msgstr "" -#: js/EnsembleBlocks.js:643 -msgid "The Turrle pitch block returns the current pitch number being played by the specified turtle." +#: js/blocks/EnsembleBlocks.js:643 +msgid "The Turtle pitch block returns the current pitch number being played by the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:747 -#: js/EnsembleBlocks.js:819 +#: js/blocks/EnsembleBlocks.js:747 +#: js/blocks/EnsembleBlocks.js:819 #.TRANS: note value is the duration of the note played by this mouse msgid "mouse note value" msgstr "" -#: js/EnsembleBlocks.js:757 +#: js/blocks/EnsembleBlocks.js:757 #.TRANS: note value is the duration of the note played by this turtle msgid "turtle note value" msgstr "" -#: js/EnsembleBlocks.js:830 +#: js/blocks/EnsembleBlocks.js:830 #.TRANS: sync is short for synchronization msgid "mouse sync" msgstr "" -#: js/EnsembleBlocks.js:832 +#: js/blocks/EnsembleBlocks.js:832 msgid "The Mouse sync block aligns the beat count between mice." msgstr "" -#: js/EnsembleBlocks.js:844 +#: js/blocks/EnsembleBlocks.js:844 #.TRANS: sync is short for synchronization msgid "turtle sync" msgstr "" -#: js/EnsembleBlocks.js:846 +#: js/blocks/EnsembleBlocks.js:846 msgid "The Turtle sync block aligns the beat count between turtles." msgstr "" -#: js/EnsembleBlocks.js:887 +#: js/blocks/EnsembleBlocks.js:887 msgid "The Found mouse block will return true if the specified mouse can be found." msgstr "" -#: js/EnsembleBlocks.js:893 +#: js/blocks/EnsembleBlocks.js:893 msgid "found mouse" msgstr "" -#: js/EnsembleBlocks.js:903 +#: js/blocks/EnsembleBlocks.js:903 msgid "The Found turtle block will return true if the specified turtle can be found." msgstr "" -#: js/EnsembleBlocks.js:909 +#: js/blocks/EnsembleBlocks.js:909 msgid "found turtle" msgstr "" -#: js/EnsembleBlocks.js:932 +#: js/blocks/EnsembleBlocks.js:932 msgid "new mouse" msgstr "" -#: js/EnsembleBlocks.js:934 +#: js/blocks/EnsembleBlocks.js:934 msgid "The New mouse block will create a new mouse." msgstr "" -#: js/EnsembleBlocks.js:945 +#: js/blocks/EnsembleBlocks.js:945 msgid "new turtle" msgstr "" -#: js/EnsembleBlocks.js:947 +#: js/blocks/EnsembleBlocks.js:947 msgid "The New turtle block will create a new turtle." msgstr "" -#: js/EnsembleBlocks.js:1011 +#: js/blocks/EnsembleBlocks.js:1011 msgid "set mouse color" msgstr "" -#: js/EnsembleBlocks.js:1014 +#: js/blocks/EnsembleBlocks.js:1014 msgid "The Set-mouse-color block is used to set the color of a mouse." msgstr "" -#: js/EnsembleBlocks.js:1020 +#: js/blocks/EnsembleBlocks.js:1020 msgid "set turtle color" msgstr "" -#: js/EnsembleBlocks.js:1023 +#: js/blocks/EnsembleBlocks.js:1023 msgid "The Set-turtle-color block is used to set the color of a turtle." msgstr "" -#: js/EnsembleBlocks.js:1083 +#: js/blocks/EnsembleBlocks.js:1083 msgid "The Mouse-name block returns the name of a mouse." msgstr "" -#: js/EnsembleBlocks.js:1092 +#: js/blocks/EnsembleBlocks.js:1092 msgid "The Turtle-name block returns the name of a turtle." msgstr "" -#: js/EnsembleBlocks.js:1115 +#: js/blocks/EnsembleBlocks.js:1115 msgid "mouse count" msgstr "" -#: js/EnsembleBlocks.js:1118 +#: js/blocks/EnsembleBlocks.js:1118 msgid "The Mouse-count block returns the number of mice." msgstr "" -#: js/EnsembleBlocks.js:1124 +#: js/blocks/EnsembleBlocks.js:1124 msgid "turtle count" msgstr "" -#: js/EnsembleBlocks.js:1127 +#: js/blocks/EnsembleBlocks.js:1127 msgid "The Turtle-count block returns the number of turtles." msgstr "" -#: js/EnsembleBlocks.js:1149 +#: js/blocks/EnsembleBlocks.js:1149 msgid "nth mouse name" msgstr "" -#: js/EnsembleBlocks.js:1152 +#: js/blocks/EnsembleBlocks.js:1152 msgid "The Nth-Mouse name block returns the name of the nth mouse." msgstr "" -#: js/EnsembleBlocks.js:1158 +#: js/blocks/EnsembleBlocks.js:1158 msgid "nth turtle name" msgstr "" -#: js/EnsembleBlocks.js:1161 +#: js/blocks/EnsembleBlocks.js:1161 msgid "The Nth-Turtle name block returns the name of the nth turtle." msgstr "" -#: js/EnsembleBlocks.js:1205 -#: js/EnsembleBlocks.js:1265 +#: js/blocks/EnsembleBlocks.js:1205 +#: js/blocks/EnsembleBlocks.js:1265 msgid "set name" msgstr "" -#: js/EnsembleBlocks.js:1214 -#: js/EnsembleBlocks.js:1221 +#: js/blocks/EnsembleBlocks.js:1214 +#: js/blocks/EnsembleBlocks.js:1221 msgid "source" msgstr "" -#: js/EnsembleBlocks.js:1214 -#: js/EnsembleBlocks.js:1221 +#: js/blocks/EnsembleBlocks.js:1214 +#: js/blocks/EnsembleBlocks.js:1221 msgid "target" msgstr "" -#: js/EnsembleBlocks.js:1271 +#: js/blocks/EnsembleBlocks.js:1271 msgid "The Set-name block is used to name a mouse." msgstr "" -#: js/EnsembleBlocks.js:1284 +#: js/blocks/EnsembleBlocks.js:1284 msgid "The Set-name block is used to name a turtle." msgstr "" -#: js/BooleanBlocks.js:44 -msgid "The Not block is the logical not operator." -msgstr "" - -#: js/BooleanBlocks.js:62 -msgid "not" -msgstr "" - -#: js/BooleanBlocks.js:134 -msgid "The And block is the logical and operator." -msgstr "" - -#: js/BooleanBlocks.js:152 -msgid "and" -msgstr "" - -#: js/BooleanBlocks.js:218 -msgid "The Or block is the logical or operator." -msgstr "" - -#: js/BooleanBlocks.js:236 -msgid "or" -msgstr "" - -#: js/BooleanBlocks.js:302 -msgid "The XOR block is the logical XOR operator." -msgstr "" - -#: js/BooleanBlocks.js:320 -msgid "xor" -msgstr "" - -#: js/BooleanBlocks.js:808 -msgid "The Equal block returns True if the two numbers are equal." -msgstr "" - -#: js/BooleanBlocks.js:909 -msgid "The Not-equal-to block returns True if the two numbers are not equal to each other." -msgstr "" - -#: js/BooleanBlocks.js:1008 -msgid "The Boolean block is used to specify true or false." -msgstr "" - -#: js/MediaBlocks.js:35 -#.TRANS: right side of the screen -msgid "right (screen)" -msgstr "" - -#: js/MediaBlocks.js:45 -#: js/MediaBlocks.js:56 -msgid "The Right block returns the position of the right of the canvas." -msgstr "" - -#: js/MediaBlocks.js:97 -#.TRANS: left side of the screen -msgid "left (screen)" -msgstr "" - -#: js/MediaBlocks.js:107 -#: js/MediaBlocks.js:118 -msgid "The Left block returns the position of the left of the canvas." -msgstr "" - -#: js/MediaBlocks.js:158 -msgid "top (screen)" -msgstr "" - -#: js/MediaBlocks.js:168 -#: js/MediaBlocks.js:179 -msgid "The Top block returns the position of the top of the canvas." -msgstr "" - -#: js/MediaBlocks.js:219 -msgid "bottom (screen)" +#: js/blocks/ExtrasBlocks.js:33 +msgid "fraction" msgstr "" -#: js/MediaBlocks.js:229 -#: js/MediaBlocks.js:240 -msgid "The Bottom block returns the position of the bottom of the canvas." +#: js/blocks/ExtrasBlocks.js:36 +msgid "Convert a float to a fraction" msgstr "" -#: js/MediaBlocks.js:282 -msgid "width" +#: js/blocks/ExtrasBlocks.js:93 +msgid "save as ABC" msgstr "" -#: js/MediaBlocks.js:291 -msgid "The Width block returns the width of the canvas." +#: js/blocks/ExtrasBlocks.js:96 +#: js/blocks/ExtrasBlocks.js:132 +#: js/blocks/ExtrasBlocks.js:168 +msgid "title" msgstr "" -#: js/MediaBlocks.js:325 -msgid "height" +#: js/blocks/ExtrasBlocks.js:129 +msgid "save as Lilypond" msgstr "" -#: js/MediaBlocks.js:334 -msgid "The Height block returns the height of the canvas." +#: js/blocks/ExtrasBlocks.js:165 +msgid "save as SVG" msgstr "" -#: js/MediaBlocks.js:369 -#.TRANS: stops playback of an audio recording -msgid "stop play" +#: js/blocks/ExtrasBlocks.js:216 +msgid "no background" msgstr "" -#: js/MediaBlocks.js:404 -#.TRANS: Erases the images and text -msgid "erase media" +#: js/blocks/ExtrasBlocks.js:219 +msgid "The No background block eliminates the background from the saved SVG output." msgstr "" -#: js/MediaBlocks.js:409 -msgid "The Erase Media block erases text and images." +#: js/blocks/ExtrasBlocks.js:247 +msgid "show blocks" msgstr "" -#: js/MediaBlocks.js:439 -#.TRANS: play an audio recording -msgid "play back" +#: js/blocks/ExtrasBlocks.js:249 +msgid "The Show blocks block shows the blocks." msgstr "" -#: js/MediaBlocks.js:487 -msgid "speak" +#: js/blocks/ExtrasBlocks.js:274 +msgid "hide blocks" msgstr "" -#: js/MediaBlocks.js:495 -msgid "The Speak block outputs to the text-to-speech synthesizer" +#: js/blocks/ExtrasBlocks.js:276 +msgid "The Hide blocks block hides the blocks." msgstr "" -#: js/MediaBlocks.js:546 -msgid "camera" +#: js/blocks/ExtrasBlocks.js:305 +#: js/blocks/ExtrasBlocks.js:338 +msgid "The Space block is used to add space between blocks." msgstr "" -#: js/MediaBlocks.js:551 -msgid "The Camera block connects a webcam to the Show block." +#: js/blocks/ExtrasBlocks.js:376 +msgid "wait" msgstr "" -#: js/MediaBlocks.js:574 -msgid "video" +#: js/blocks/ExtrasBlocks.js:379 +msgid "The Wait block pauses the program for a specified number of seconds." msgstr "" -#: js/MediaBlocks.js:579 -msgid "The Video block selects video for use with the Show block." +#: js/blocks/ExtrasBlocks.js:433 +#: plugins/facebook.rtp:30 +msgid "comment" msgstr "" -#: js/MediaBlocks.js:607 -msgid "The Open file block opens a file for use with the Show block." +#: js/blocks/ExtrasBlocks.js:469 +msgid "print" msgstr "" -#: js/MediaBlocks.js:645 -msgid "stop media" +#: js/blocks/ExtrasBlocks.js:476 +msgid "The Print block displays text at the top of the screen." msgstr "" -#: js/MediaBlocks.js:650 -msgid "The Stop media block stops audio or video playback." +#: js/blocks/ExtrasBlocks.js:582 +msgid "display grid" msgstr "" -#: js/MediaBlocks.js:679 -#: js/PitchBlocks.js:1539 -#: js/phrasemaker.js:822 -#: js/musickeyboard.js:1654 -#.TRANS: a measure of frequency: one cycle per second -msgid "hertz" +#: js/blocks/ExtrasBlocks.js:587 +msgid "The Display Grid Block changes the grid type" msgstr "" -#: js/MediaBlocks.js:692 -msgid "duration (ms)" +#: js/blocks/ExtrasBlocks.js:689 +#: js/blocks/ExtrasBlocks.js:708 +#: js/blocks/ExtrasBlocks.js:731 +#: js/blocks/ExtrasBlocks.js:754 +#: js/blocks/ExtrasBlocks.js:772 +#: js/blocks/ExtrasBlocks.js:791 +#: js/blocks/ExtrasBlocks.js:810 +#: js/blocks/ExtrasBlocks.js:829 +msgid "unknown" msgstr "" -#: js/MediaBlocks.js:728 -#.TRANS: translate a note into hertz, e.g., A4 -> 440HZ -msgid "note to frequency" +#: js/blocks/FlowBlocks.js:41 +msgid "The Backward block runs code in reverse order (Musical retrograde)." msgstr "" -#: js/MediaBlocks.js:736 -msgid "The To frequency block converts a pitch name and octave to Hertz." +#: js/blocks/FlowBlocks.js:48 +msgid "backward" msgstr "" -#: js/MediaBlocks.js:746 -#: js/PitchBlocks.js:656 -#: js/PitchBlocks.js:932 -#: js/PitchBlocks.js:1827 -#.TRANS: name2 is name as in name of pitch (JAPANESE ONLY) -msgid "name2" +#: js/blocks/FlowBlocks.js:124 +msgid "The Duplicate block will run each block multiple times." msgstr "" -#: js/MediaBlocks.js:812 -msgid "The Avatar block is used to change the appearance of the mouse." +#: js/blocks/FlowBlocks.js:136 +msgid "duplicate" msgstr "" -#: js/MediaBlocks.js:819 -msgid "The Avatar block is used to change the appearance of the turtle." +#: js/blocks/FlowBlocks.js:334 +msgid "The Default block is used inside of a Switch to define the default action." msgstr "" -#: js/MediaBlocks.js:831 -#: js/MediaBlocks.js:891 -#.TRANS: a media object -msgid "size" +#: js/blocks/FlowBlocks.js:342 +msgid "default" msgstr "" -#: js/MediaBlocks.js:831 -msgid "image" +#: js/blocks/FlowBlocks.js:361 +#: js/blocks/FlowBlocks.js:418 +msgid "The Case Block must be used inside of a Switch Block." msgstr "" -#: js/MediaBlocks.js:880 -msgid "The Show block is used to display text or images on the canvas." +#: js/blocks/FlowBlocks.js:389 +msgid "The Case block is used inside of a Switch to define matches." msgstr "" -#: js/MediaBlocks.js:888 -#.TRANS: show1 is show as in display an image or text on the screen. -msgid "show1" +#: js/blocks/FlowBlocks.js:397 +msgid "case" msgstr "" -#: js/MediaBlocks.js:891 -msgid "obj" +#: js/blocks/FlowBlocks.js:446 +msgid "The Switch block will run the code in the matching Case." msgstr "" -#: js/MediaBlocks.js:938 -msgid "The Media block is used to import an image." +#: js/blocks/FlowBlocks.js:454 +msgid "switch" msgstr "" -#: js/MediaBlocks.js:973 -msgid "The Text block holds a text string." +#: js/blocks/FlowBlocks.js:595 +msgid "The Stop block will stop a loop" msgstr "" -#: js/ProgramBlocks.js:33 -msgid "The Load-heap-from-app block loads the heap from a web page." +#: js/blocks/FlowBlocks.js:597 +msgid "Forever, Repeat, While, or Until." msgstr "" -#: js/ProgramBlocks.js:44 -#.TRANS: load the heap contents from a URL -msgid "load heap from App" +#: js/blocks/FlowBlocks.js:604 +#: js/widgets/timbre.js:417 +#: js/widgets/timbre.js:419 +#: js/widgets/musickeyboard.js:819 +#: js/widgets/musickeyboard.js:821 +#: js/widgets/phrasemaker.js:4202 +#: plugins/rodi.rtp:29 +#: plugins/rodi.rtp:73 +#: plugins/rodi.rtp:413 +msgid "stop" msgstr "" -#: js/ProgramBlocks.js:95 -msgid "Error parsing JSON data:" +#: js/blocks/FlowBlocks.js:653 +msgid "The Waitfor block will wait until the condition is true." msgstr "" -#: js/ProgramBlocks.js:100 -msgid "404: Page not found" +#: js/blocks/FlowBlocks.js:661 +msgid "wait for" msgstr "" -#: js/ProgramBlocks.js:133 -msgid "The Save-heap-to-app block saves the heap to a web page." +#: js/blocks/FlowBlocks.js:732 +msgid "The Until block will repeat until the condition is true." msgstr "" -#: js/ProgramBlocks.js:144 -#.TRANS: save the heap contents to a URL -msgid "save heap to App" +#: js/blocks/FlowBlocks.js:740 +msgid "until" msgstr "" -#: js/ProgramBlocks.js:189 -msgid "Cannot find a valid heap for" +#: js/blocks/FlowBlocks.js:742 +#: js/blocks/FlowBlocks.js:822 +msgid "do2" msgstr "" -#: js/ProgramBlocks.js:206 -msgid "The Load-heap block loads the heap from a file." +#: js/blocks/FlowBlocks.js:812 +msgid "The While block will repeat while the condition is true." msgstr "" -#: js/ProgramBlocks.js:217 -#.TRANS: load the heap from a file -msgid "load heap" +#: js/blocks/FlowBlocks.js:820 +msgid "while" msgstr "" -#: js/ProgramBlocks.js:270 -msgid "The file you selected does not contain a valid heap." +#: js/blocks/FlowBlocks.js:903 +#: js/blocks/FlowBlocks.js:968 +#: js/blocks/FlowBlocks.js:979 +msgid "In this example if the mouse button is pressed a snare drum will play." msgstr "" -#: js/ProgramBlocks.js:275 -msgid "The loadHeap block needs a loadFile block." +#: js/blocks/FlowBlocks.js:925 +#: js/blocks/FlowBlocks.js:988 +msgid "if" msgstr "" -#: js/ProgramBlocks.js:291 -msgid "The Set-heap block loads the heap." +#: js/blocks/FlowBlocks.js:927 +#: js/blocks/FlowBlocks.js:990 +msgid "then" msgstr "" -#: js/ProgramBlocks.js:299 -#: js/HeapBlocks.js:539 -#.TRANS: load the heap from a JSON encoding -msgid "set heap" +#: js/blocks/FlowBlocks.js:927 +msgid "else" msgstr "" -#: js/ProgramBlocks.js:340 -msgid "The block you selected does not contain a valid heap." +#: js/blocks/FlowBlocks.js:1025 +msgid "The Forever block will repeat the contained blocks forever." msgstr "" -#: js/ProgramBlocks.js:343 -msgid "The Set heap block needs a heap." +#: js/blocks/FlowBlocks.js:1037 +msgid "forever" msgstr "" -#: js/ProgramBlocks.js:360 -msgid "The Load-dictionary block loads a dictionary from a file." +#: js/blocks/FlowBlocks.js:1073 +msgid "The Repeat block will repeat the contained blocks." msgstr "" -#: js/ProgramBlocks.js:372 -#.TRANS: load a dictionary from a file -msgid "load dictionary" +#: js/blocks/FlowBlocks.js:1075 +msgid "In this example the note will be played 4 times." msgstr "" -#: js/ProgramBlocks.js:390 -#: js/ProgramBlocks.js:658 -#: js/ToneBlocks.js:1025 -msgid "file" +#: js/blocks/FlowBlocks.js:1083 +msgid "repeat" msgstr "" -#: js/ProgramBlocks.js:396 -#: js/ProgramBlocks.js:501 -#: js/ProgramBlocks.js:664 -#: js/DictBlocks.js:80 -#: js/DictBlocks.js:145 -#: js/DictBlocks.js:216 -#: js/DictBlocks.js:290 -msgid "My Dictionary" +#: js/blocks/FlowBlocks.js:1123 +msgid "duplicate factor" msgstr "" -#: js/ProgramBlocks.js:444 -msgid "The file you selected does not contain a valid dictionary." +#: js/blocks/HeapBlocks.js:49 +msgid "The Heap block returns the heap." msgstr "" -#: js/ProgramBlocks.js:449 -msgid "The load dictionary block needs a load file block." +#: js/blocks/HeapBlocks.js:133 +msgid "show heap" msgstr "" -#: js/ProgramBlocks.js:466 -msgid "The Set-dictionary block loads a dictionary." +#: js/blocks/HeapBlocks.js:181 +msgid "The Heap-length block returns the length of the heap." msgstr "" -#: js/ProgramBlocks.js:477 -#.TRANS: load a dictionary from a JSON -msgid "set dictionary" +#: js/blocks/HeapBlocks.js:195 +msgid "heap length" msgstr "" -#: js/ProgramBlocks.js:546 -msgid "The block you selected does not contain a valid dictionary." +#: js/blocks/HeapBlocks.js:254 +msgid "The Heap-empty? block returns true if the heap is empty." msgstr "" -#: js/ProgramBlocks.js:550 -msgid "The set dictionary block needs a dictionary." +#: js/blocks/HeapBlocks.js:268 +#.TRANS: Is the heap empty? +msgid "heap empty?" msgstr "" -#: js/ProgramBlocks.js:567 -msgid "The Save-heap block saves the heap to a file." +#: js/blocks/HeapBlocks.js:317 +msgid "The Empty-heap block empties the heap." msgstr "" -#: js/ProgramBlocks.js:578 -#.TRANS: save the heap to a file -msgid "save heap" +#: js/blocks/HeapBlocks.js:327 +#: js/blocks/HeapBlocks.js:647 +#.TRANS: empty the heap +msgid "empty heap" msgstr "" -#: js/ProgramBlocks.js:629 -msgid "The Save-dictionary block saves a dictionary to a file." +#: js/blocks/HeapBlocks.js:371 +msgid "The Reverse-heap block reverses the order of the heap." msgstr "" -#: js/ProgramBlocks.js:640 -#.TRANS: save a dictionary to a file -msgid "save dictionary" +#: js/blocks/HeapBlocks.js:384 +#.TRANS: reverse the order of the heap +msgid "reverse heap" msgstr "" -#: js/ProgramBlocks.js:720 -msgid "The Open palette block opens a palette." +#: js/blocks/HeapBlocks.js:428 +msgid "The Index-heap block returns a value in the heap at a specified location." msgstr "" -#: js/ProgramBlocks.js:727 -msgid "open palette" +#: js/blocks/HeapBlocks.js:443 +#.TRANS: retrieve a value from the heap at index position in the heap +msgid "index heap" msgstr "" -#: js/ProgramBlocks.js:785 -msgid "The Delete block block removes a block." +#: js/blocks/HeapBlocks.js:523 +msgid "The Set-heap entry block sets a value in he heap at the specified location." msgstr "" -#: js/ProgramBlocks.js:797 -#.TRANS: Move this block to the trash. -msgid "delete block" +#: js/blocks/HeapBlocks.js:539 +#: js/blocks/ProgramBlocks.js:299 +#.TRANS: load the heap from a JSON encoding +msgid "set heap" msgstr "" -#: js/ProgramBlocks.js:861 -msgid "The Move block block moves a block." +#: js/blocks/HeapBlocks.js:619 +msgid "The Pop block removes the value at the top of the heap." msgstr "" -#: js/ProgramBlocks.js:869 -#.TRANS: Move the position of a block on the screen. -msgid "move block" +#: js/blocks/HeapBlocks.js:633 +#.TRANS: pop a value off the top of the heap +msgid "pop" msgstr "" -#: js/ProgramBlocks.js:881 -#: js/ProgramBlocks.js:1048 -msgid "block number" +#: js/blocks/HeapBlocks.js:680 +msgid "The Push block adds a value to the top of the heap." msgstr "" -#: js/ProgramBlocks.js:935 -#.TRANS: Run program beginning at this block. -msgid "run block" +#: js/blocks/HeapBlocks.js:696 +#.TRANS: push a value onto the top of the heap +msgid "push" msgstr "" -#: js/ProgramBlocks.js:1025 -msgid "The Dock block block connections two blocks." +#: js/blocks/IntervalsBlocks.js:45 +msgid "set temperament" msgstr "" -#: js/ProgramBlocks.js:1036 -#.TRANS: We can connect a block to another block. -msgid "connect blocks" +#: js/blocks/IntervalsBlocks.js:63 +#: js/blocks/MediaBlocks.js:746 +#: js/blocks/PitchBlocks.js:657 +#: js/blocks/PitchBlocks.js:935 +#: js/blocks/PitchBlocks.js:974 +#: js/blocks/PitchBlocks.js:1007 +#: js/blocks/PitchBlocks.js:1194 +#: js/blocks/PitchBlocks.js:1717 +#: js/blocks/PitchBlocks.js:1758 +#: js/blocks/PitchBlocks.js:1866 +#: js/blocks/ToneBlocks.js:1025 +#: js/turtleactions/IntervalsActions.js:114 +#.TRANS: adjusts the shift up or down by one octave (twelve half-steps in the interval between two notes, one having twice or half the frequency in Hz of the other.) +msgid "octave" msgstr "" -#: js/ProgramBlocks.js:1048 -msgid "target block" +#: js/blocks/IntervalsBlocks.js:99 +msgid "The Temperament name block is used to select a tuning method." msgstr "" -#: js/ProgramBlocks.js:1048 -msgid "connection number" +#: js/blocks/IntervalsBlocks.js:161 +msgid "doubly" msgstr "" -#: js/ProgramBlocks.js:1140 -msgid "The Make block block creates a new block." +#: js/blocks/IntervalsBlocks.js:166 +msgid "The Doubly block will double the size of an interval." msgstr "" -#: js/ProgramBlocks.js:1152 -#.TRANS: Create a new block -msgid "make block" +#: js/blocks/IntervalsBlocks.js:262 +msgid "interval number" msgstr "" -#: js/ProgramBlocks.js:1186 -#: js/ProgramBlocks.js:1227 -#: js/RhythmBlocks.js:1128 -#: js/PitchBlocks.js:972 -#: js/PitchBlocks.js:1005 -#: js/temperament.js:340 -#: js/temperament.js:362 -#: js/temperament.js:372 -#: js/temperament.js:484 -#: js/status.js:190 -#: plugins/rodi.rtp:192 -#.TRANS: a musical note consisting of pitch and duration -msgid "note" +#: js/blocks/IntervalsBlocks.js:317 +msgid "current interval" msgstr "" -#: js/ProgramBlocks.js:1285 -msgid "Cannot find block" +#: js/blocks/IntervalsBlocks.js:387 +#.TRANS: measure the distance between two pitches in semi-tones +msgid "semi-tone interval measure" msgstr "" -#: js/ProgramBlocks.js:1304 -#: js/ProgramBlocks.js:1313 -msgid "Warning: block argument type mismatch" +#: js/blocks/IntervalsBlocks.js:454 +#: js/blocks/IntervalsBlocks.js:570 +msgid "You must use two pitch blocks when measuring an interval." msgstr "" -#: js/ProgramBlocks.js:1347 -msgid "The Open project block is used to open a project from a web page." +#: js/blocks/IntervalsBlocks.js:496 +msgid "The Scalar interval block measures the distance between two notes in the current key and mode." msgstr "" -#: js/ProgramBlocks.js:1357 -msgid "open project" +#: js/blocks/IntervalsBlocks.js:502 +#.TRANS: measure the distance between two pitches in steps of musical scale +msgid "scalar interval measure" msgstr "" -#: js/ProgramBlocks.js:1410 -msgid "Please enter a valid URL." +#: js/blocks/IntervalsBlocks.js:678 +msgid "In the figure, we add sol# to sol." msgstr "" -#: js/DrumBlocks.js:59 -msgid "The Noise name block is used to select a noise synthesizer." +#: js/blocks/IntervalsBlocks.js:684 +#: js/blocks/OrnamentBlocks.js:220 +#.TRANS: calculate a relative step between notes based on semi-tones +msgid "semi-tone interval" msgstr "" -#: js/DrumBlocks.js:102 -msgid "The Drum name block is used to select a drum." +#: js/blocks/IntervalsBlocks.js:733 +msgid "The output of the example is: do, mi, sol, sol, ti, mi" msgstr "" -#: js/DrumBlocks.js:146 -msgid "The Effects name block is used to select a sound effect." +#: js/blocks/IntervalsBlocks.js:740 +#: js/blocks/WidgetBlocks.js:768 +msgid "arpeggio" msgstr "" -#: js/DrumBlocks.js:163 -msgid "noise" +#: js/blocks/IntervalsBlocks.js:931 +msgid "The Chord block calculates common chords." msgstr "" -#: js/DrumBlocks.js:177 -msgid "The Play noise block will generate white, pink, or brown noise." +#: js/blocks/IntervalsBlocks.js:933 +msgid "In the figure, we generate a C-major chord." msgstr "" -#: js/DrumBlocks.js:191 -#: js/musicutils.js:752 -#: js/synthutils.js:47 -#.TRANS: white noise synthesizer -msgid "white noise" +#: js/blocks/IntervalsBlocks.js:938 +msgid "chord" msgstr "" -#: js/DrumBlocks.js:326 -msgid "Replace every instance of a pitch with a drum sound." +#: js/blocks/IntervalsBlocks.js:990 +msgid "The Ratio Interval block calculates an interval based on a ratio." msgstr "" -#: js/DrumBlocks.js:337 -#.TRANS: map a pitch to a drum sound -msgid "map pitch to drum" +#: js/blocks/IntervalsBlocks.js:995 +msgid "ratio interval" msgstr "" -#: js/DrumBlocks.js:404 -msgid "In the example above, a kick drum sound will be played instead of sol." +#: js/blocks/IntervalsBlocks.js:1064 +msgid "In the figure, we add la to sol." msgstr "" -#: js/DrumBlocks.js:416 -#.TRANS: set the current drum sound for playback -msgid "set drum" +#: js/blocks/IntervalsBlocks.js:1120 +#.TRANS: define a custom mode +msgid "define mode" msgstr "" -#: js/DrumBlocks.js:460 -msgid "sound effect" +#: js/blocks/IntervalsBlocks.js:1173 +msgid "movable Do" msgstr "" -#: js/DrumBlocks.js:498 -msgid "You can use multiple Drum blocks within a Note block." +#: js/blocks/IntervalsBlocks.js:1224 +#.TRANS: mode length is the number of notes in the mode, e.g., 7 for major and minor scales; 12 for chromatic scales +msgid "mode length" msgstr "" -#: js/RhythmBlocks.js:182 -#: js/RhythmBlocks.js:1086 -#: js/RhythmBlocks.js:1162 -msgid "Note value must be greater than 0." +#: js/blocks/IntervalsBlocks.js:1233 +msgid "The Mode length block is the number of notes in the current scale." msgstr "" -#: js/RhythmBlocks.js:215 -#: js/RhythmBlocks.js:278 -#: js/RhythmBlocks.js:350 -#.TRANS: swing is a rhythmic variation that emphasises the offbeat -msgid "swing" +#: js/blocks/IntervalsBlocks.js:1235 +msgid "Most Western scales have 7 notes." msgstr "" -#: js/RhythmBlocks.js:355 -#.TRANS: the amount to shift to the offbeat note -msgid "swing value" +#: js/blocks/IntervalsBlocks.js:1284 +#.TRANS: the mode in music is 'major', 'minor', etc. +msgid "current mode" msgstr "" -#: js/RhythmBlocks.js:419 -msgid "The Skip notes block will cause notes to be skipped." +#: js/blocks/IntervalsBlocks.js:1337 +#.TRANS: the key is a group of pitches with which a music composition is created +msgid "current key" msgstr "" -#: js/RhythmBlocks.js:427 -#.TRANS: substitute rests on notes being skipped -msgid "skip notes" +#: js/blocks/IntervalsBlocks.js:1389 +#: js/blocks/IntervalsBlocks.js:1434 +#.TRANS: set the key and mode, e.g. C Major +msgid "set key" msgstr "" -#: js/RhythmBlocks.js:489 -#.TRANS: speed up note duration by some factor, e.g. convert 1/4 to 1/8 notes by using a factor of 2 -msgid "multiply note value" +#: js/blocks/IntervalsBlocks.js:1443 +#: js/blocks/IntervalsBlocks.js:1449 +msgid "The Set key block is used to set the key and mode," msgstr "" -#: js/RhythmBlocks.js:542 -msgid "The Tie block works on pairs of notes, combining them into one note." +#: js/blocks/IntervalsBlocks.js:1449 +msgid "eg C Major" msgstr "" -#: js/RhythmBlocks.js:550 -#.TRANS: tie notes together into one longer note -msgid "tie" +#: js/blocks/MediaBlocks.js:35 +#.TRANS: right side of the screen +msgid "right (screen)" msgstr "" -#: js/RhythmBlocks.js:591 -#: js/RhythmBlocks.js:671 -#.TRANS: a dotted note is played for 1.5x its value, e.g., 1/8. --> 3/16 -msgid "dot" +#: js/blocks/MediaBlocks.js:45 +#: js/blocks/MediaBlocks.js:56 +msgid "The Right block returns the position of the right of the canvas." msgstr "" -#: js/RhythmBlocks.js:619 -#: js/RhythmActions.js:221 -msgid "An argument of -1 results in a note value of 0." +#: js/blocks/MediaBlocks.js:97 +#.TRANS: left side of the screen +msgid "left (screen)" msgstr "" -#: js/RhythmBlocks.js:661 -msgid "The Dot block extends the duration of a note by 50%." +#: js/blocks/MediaBlocks.js:107 +#: js/blocks/MediaBlocks.js:118 +msgid "The Left block returns the position of the left of the canvas." msgstr "" -#: js/RhythmBlocks.js:663 -msgid "Eg a dotted quarter note will play for 3/8 (1/4 + 1/8) of a beat." +#: js/blocks/MediaBlocks.js:158 +msgid "top (screen)" msgstr "" -#: js/RhythmBlocks.js:765 -#.TRANS: Japanese only: note value block for drum -msgid "note value drum" +#: js/blocks/MediaBlocks.js:168 +#: js/blocks/MediaBlocks.js:179 +msgid "The Top block returns the position of the top of the canvas." msgstr "" -#: js/RhythmBlocks.js:829 -msgid "392 hertz" +#: js/blocks/MediaBlocks.js:219 +msgid "bottom (screen)" msgstr "" -#: js/RhythmBlocks.js:1119 -msgid "The Note block is a container for one or more Pitch blocks." +#: js/blocks/MediaBlocks.js:229 +#: js/blocks/MediaBlocks.js:240 +msgid "The Bottom block returns the position of the bottom of the canvas." msgstr "" -#: js/RhythmBlocks.js:1121 -msgid "The Note block specifies the duration (note value) of its contents." +#: js/blocks/MediaBlocks.js:282 +msgid "width" msgstr "" -#: js/RhythmBlocks.js:1130 -msgid "value2" +#: js/blocks/MediaBlocks.js:291 +msgid "The Width block returns the width of the canvas." msgstr "" -#: js/RhythmBlocks.js:1200 -msgid "define frequency" +#: js/blocks/MediaBlocks.js:325 +msgid "height" msgstr "" -#: js/RhythmBlocks.js:1218 -#: js/temperament.js:650 -#: js/temperament.js:1421 -msgid "octave space" +#: js/blocks/MediaBlocks.js:334 +msgid "The Height block returns the height of the canvas." msgstr "" -#: js/NumberBlocks.js:28 -msgid "The Int block returns an integer." +#: js/blocks/MediaBlocks.js:369 +#.TRANS: stops playback of an audio recording +msgid "stop play" msgstr "" -#: js/NumberBlocks.js:34 -msgid "int" +#: js/blocks/MediaBlocks.js:404 +#.TRANS: Erases the images and text +msgid "erase media" msgstr "" -#: js/NumberBlocks.js:73 -msgid "The Mod block returns the remainder from a division." +#: js/blocks/MediaBlocks.js:409 +msgid "The Erase Media block erases text and images." msgstr "" -#: js/NumberBlocks.js:79 -msgid "mod" +#: js/blocks/MediaBlocks.js:439 +#.TRANS: play an audio recording +msgid "play back" msgstr "" -#: js/NumberBlocks.js:123 -msgid "The Power block calculates a power function." +#: js/blocks/MediaBlocks.js:487 +msgid "speak" msgstr "" -#: js/NumberBlocks.js:178 -msgid "The Sqrt block returns the square root." +#: js/blocks/MediaBlocks.js:495 +msgid "The Speak block outputs to the text-to-speech synthesizer" msgstr "" -#: js/NumberBlocks.js:184 -msgid "sqrt" +#: js/blocks/MediaBlocks.js:546 +msgid "camera" msgstr "" -#: js/NumberBlocks.js:230 -msgid "The Abs block returns the absolute value." +#: js/blocks/MediaBlocks.js:551 +msgid "The Camera block connects a webcam to the Show block." msgstr "" -#: js/NumberBlocks.js:236 -msgid "abs" +#: js/blocks/MediaBlocks.js:574 +msgid "video" msgstr "" -#: js/NumberBlocks.js:277 -msgid "The Distance block returns the distance between two points. For example, between the mouse and the center of the screen." +#: js/blocks/MediaBlocks.js:579 +msgid "The Video block selects video for use with the Show block." msgstr "" -#: js/NumberBlocks.js:283 -#: plugins/rodi.rtp:310 -msgid "distance" +#: js/blocks/MediaBlocks.js:607 +msgid "The Open file block opens a file for use with the Show block." msgstr "" -#: js/NumberBlocks.js:343 -msgid "The Divide block is used to divide." +#: js/blocks/MediaBlocks.js:645 +msgid "stop media" msgstr "" -#: js/NumberBlocks.js:411 -msgid "The Multiply block is used to multiply." +#: js/blocks/MediaBlocks.js:650 +msgid "The Stop media block stops audio or video playback." msgstr "" -#: js/NumberBlocks.js:554 -msgid "The Minus block is used to subtract." +#: js/blocks/MediaBlocks.js:679 +#: js/blocks/PitchBlocks.js:1577 +#: js/widgets/musickeyboard.js:1936 +#: js/widgets/phrasemaker.js:1037 +#.TRANS: a measure of frequency: one cycle per second +msgid "hertz" msgstr "" -#: js/NumberBlocks.js:647 -msgid "The Plus block is used to add." +#: js/blocks/MediaBlocks.js:692 +#: js/blocks/WidgetBlocks.js:182 +#: js/widgets/temperament.js:506 +#: js/widgets/temperament.js:546 +#: js/widgets/temperament.js:610 +#: js/widgets/temperament.js:618 +#: js/widgets/temperament.js:1505 +#: js/widgets/timbre.js:1842 +msgid "frequency" msgstr "" -#: js/NumberBlocks.js:773 -msgid "The One-of block returns one of two choices." +#: js/blocks/MediaBlocks.js:692 +msgid "duration (ms)" msgstr "" -#: js/NumberBlocks.js:780 -#: js/PitchBlocks.js:616 -msgid "one of" +#: js/blocks/MediaBlocks.js:728 +#.TRANS: translate a note into hertz, e.g., A4 -> 440HZ +msgid "note to frequency" msgstr "" -#: js/NumberBlocks.js:782 -msgid "this" +#: js/blocks/MediaBlocks.js:736 +msgid "The To frequency block converts a pitch name and octave to Hertz." msgstr "" -#: js/NumberBlocks.js:782 -msgid "that" +#: js/blocks/MediaBlocks.js:746 +#: js/blocks/PitchBlocks.js:656 +#: js/blocks/PitchBlocks.js:934 +#: js/blocks/PitchBlocks.js:1866 +#.TRANS: name2 is name as in name of pitch (JAPANESE ONLY) +msgid "name2" msgstr "" -#: js/NumberBlocks.js:837 -msgid "The Random block returns a random number." +#: js/blocks/MediaBlocks.js:812 +msgid "The Avatar block is used to change the appearance of the mouse." msgstr "" -#: js/NumberBlocks.js:844 -msgid "random" +#: js/blocks/MediaBlocks.js:819 +msgid "The Avatar block is used to change the appearance of the turtle." msgstr "" -#: js/NumberBlocks.js:846 -msgid "min" +#: js/blocks/MediaBlocks.js:831 +#: js/blocks/MediaBlocks.js:891 +#.TRANS: a media object +msgid "size" msgstr "" -#: js/NumberBlocks.js:846 -msgid "max" +#: js/blocks/MediaBlocks.js:831 +msgid "image" msgstr "" -#: js/NumberBlocks.js:910 -msgid "The Number block holds a number." +#: js/blocks/MediaBlocks.js:880 +msgid "The Show block is used to display text or images on the canvas." msgstr "" -#: js/BoxesBlocks.js:53 -#: js/BoxesBlocks.js:59 -msgid "The Add-to block is used to add to the value stored in a box." +#: js/blocks/MediaBlocks.js:888 +#.TRANS: show1 is show as in display an image or text on the screen. +msgid "show1" msgstr "" -#: js/BoxesBlocks.js:61 -msgid "It can also be used with other blocks such as Color and Pen size." +#: js/blocks/MediaBlocks.js:891 +msgid "obj" msgstr "" -#: js/BoxesBlocks.js:73 -msgid "add" +#: js/blocks/MediaBlocks.js:938 +msgid "The Media block is used to import an image." msgstr "" -#: js/BoxesBlocks.js:75 -#: js/temperament.js:716 -msgid "to" +#: js/blocks/MediaBlocks.js:973 +msgid "The Text block holds a text string." msgstr "" -#: js/BoxesBlocks.js:75 -#: js/BoxesBlocks.js:595 -#: js/HeapBlocks.js:544 -msgid "value1" +#: js/blocks/MeterBlocks.js:34 +#.TRANS: musical meter (time signature), e.g., 4:4 +msgid "current meter" msgstr "" -#: js/BoxesBlocks.js:118 -msgid "Block does not support incrementing." +#: js/blocks/MeterBlocks.js:85 +#.TRANS: number of beats per minute +msgid "beat factor" msgstr "" -#: js/BoxesBlocks.js:152 -msgid "The Add-1-to block adds one to the value stored in a box." +#: js/blocks/MeterBlocks.js:161 +msgid "The Beats per minute block returns the current beats per minute." msgstr "" -#: js/BoxesBlocks.js:163 -msgid "add 1 to" +#: js/blocks/MeterBlocks.js:169 +#: js/widgets/status.js:152 +#.TRANS: number of beats played per minute +msgid "beats per minute2" msgstr "" -#: js/BoxesBlocks.js:211 -msgid "The Subtract-1-from block subtracts one from the value stored in a box." +#: js/blocks/MeterBlocks.js:169 +#: js/blocks/MeterBlocks.js:1056 +#: js/blocks/MeterBlocks.js:1133 +#: js/blocks/MeterBlocks.js:1211 +#.TRANS: sets tempo by defining a beat and beats per minute +msgid "beats per minute" msgstr "" -#: js/BoxesBlocks.js:222 -msgid "subtract 1 from" +#: js/blocks/MeterBlocks.js:233 +#.TRANS: count of current musical measure in meter +msgid "measure count" msgstr "" -#: js/BoxesBlocks.js:270 -#: js/BoxesBlocks.js:387 -msgid "The Box block returns the value stored in a box." +#: js/blocks/MeterBlocks.js:241 +msgid "The Measure count block returns the current measure." msgstr "" -#: js/BoxesBlocks.js:500 -#: js/BoxesBlocks.js:576 -msgid "The Store in block will store a value in a box." +#: js/blocks/MeterBlocks.js:290 +#.TRANS: count of current beat in the meter +msgid "beat count" msgstr "" -#: js/BoxesBlocks.js:652 -msgid "The Box2 block returns the value stored in Box2." +#: js/blocks/MeterBlocks.js:300 +#: js/blocks/MeterBlocks.js:311 +#: js/blocks/MeterBlocks.js:565 +#: js/blocks/MeterBlocks.js:576 +msgid "The Beat count block is the number of the current beat," msgstr "" -#: js/BoxesBlocks.js:703 -msgid "The Store in Box2 block is used to store a value in Box2." +#: js/blocks/MeterBlocks.js:313 +#: js/blocks/MeterBlocks.js:578 +msgid "eg 1, 2, 3, or 4." msgstr "" -#: js/BoxesBlocks.js:715 -msgid "store in box2" +#: js/blocks/MeterBlocks.js:368 +#.TRANS: count the number of notes +msgid "sum note values" msgstr "" -#: js/BoxesBlocks.js:761 -msgid "The Box1 block returns the value stored in Box1." +#: js/blocks/MeterBlocks.js:376 +#: js/blocks/MeterBlocks.js:440 +msgid "The Note counter block can be used to count the number of contained notes." msgstr "" -#: js/BoxesBlocks.js:812 -msgid "The Store in Box1 block is used to store a value in Box1." +#: js/blocks/MeterBlocks.js:432 +#.TRANS: count the number of notes +msgid "note counter" msgstr "" -#: js/BoxesBlocks.js:826 -msgid "store in box1" +#: js/blocks/MeterBlocks.js:496 +#.TRANS: number of whole notes that have been played +msgid "whole notes played" msgstr "" -#: js/HeapBlocks.js:49 -msgid "The Heap block returns the heap." +#: js/blocks/MeterBlocks.js:505 +msgid "The Whole notes played block returns the total number of whole notes played." msgstr "" -#: js/HeapBlocks.js:133 -msgid "show heap" +#: js/blocks/MeterBlocks.js:555 +#: js/turtleactions/DictActions.js:83 +#.TRANS: number of notes that have been played +msgid "notes played" msgstr "" -#: js/HeapBlocks.js:181 -msgid "The Heap-length block returns the length of the heap." +#: js/blocks/MeterBlocks.js:653 +msgid "The No clock block decouples the notes from the master clock." msgstr "" -#: js/HeapBlocks.js:195 -msgid "heap length" +#: js/blocks/MeterBlocks.js:661 +#.TRANS: don't lock notes to master clock +msgid "no clock" msgstr "" -#: js/HeapBlocks.js:254 -msgid "The Heap-empty? block returns true if the heap is empty." +#: js/blocks/MeterBlocks.js:700 +msgid "on weak beat do" msgstr "" -#: js/HeapBlocks.js:268 -#.TRANS: Is the heap empty? -msgid "heap empty?" +#: js/blocks/MeterBlocks.js:705 +msgid "The On-weak-beat block lets you specify actions to take on weak (off) beats." msgstr "" -#: js/HeapBlocks.js:317 -msgid "The Empty-heap block empties the heap." +#: js/blocks/MeterBlocks.js:750 +msgid "on strong beat" msgstr "" -#: js/HeapBlocks.js:327 -#: js/HeapBlocks.js:647 -#.TRANS: empty the heap -msgid "empty heap" +#: js/blocks/MeterBlocks.js:758 +msgid "The On-strong-beat block lets you specify actions to take on specified beats." msgstr "" -#: js/HeapBlocks.js:371 -msgid "The Reverse-heap block reverses the order of the heap." +#: js/blocks/MeterBlocks.js:769 +msgid "beat" msgstr "" -#: js/HeapBlocks.js:384 -#.TRANS: reverse the order of the heap -msgid "reverse heap" +#: js/blocks/MeterBlocks.js:813 +msgid "on every beat do" msgstr "" -#: js/HeapBlocks.js:428 -msgid "The Index-heap block returns a value in the heap at a specified location." +#: js/blocks/MeterBlocks.js:821 +msgid "The On-every-beat block lets you specify actions to take on every beat." msgstr "" -#: js/HeapBlocks.js:443 -#.TRANS: retrieve a value from the heap at index position in the heap -msgid "index heap" +#: js/blocks/MeterBlocks.js:874 +msgid "on every note do" msgstr "" -#: js/HeapBlocks.js:523 -msgid "The Set-heap entry block sets a value in he heap at the specified location." +#: js/blocks/MeterBlocks.js:882 +msgid "The On-every-note block lets you specify actions to take on every note." msgstr "" -#: js/HeapBlocks.js:619 -msgid "The Pop block removes the value at the top of the heap." +#: js/blocks/MeterBlocks.js:928 +#: js/blocks/MeterBlocks.js:999 +#.TRANS: sets tempo by defining a beat and beats per minute +msgid "master beats per minute" msgstr "" -#: js/HeapBlocks.js:633 -#.TRANS: pop a value off the top of the heap -msgid "pop" +#: js/blocks/MeterBlocks.js:952 +#: js/blocks/MeterBlocks.js:1078 +#: js/blocks/MeterBlocks.js:1135 +msgid "bpm" msgstr "" -#: js/HeapBlocks.js:680 -msgid "The Push block adds a value to the top of the heap." +#: js/blocks/MeterBlocks.js:952 +#: js/blocks/MeterBlocks.js:1078 +#: js/blocks/MeterBlocks.js:1135 +msgid "beat value" msgstr "" -#: js/HeapBlocks.js:696 -#.TRANS: push a value onto the top of the heap -msgid "push" +#: js/blocks/MeterBlocks.js:1024 +#: js/blocks/MeterBlocks.js:1167 +#: js/blocks/MeterBlocks.js:1241 +msgid "Beats per minute must be > 30." msgstr "" -#: js/FlowBlocks.js:41 -msgid "The Backward block runs code in reverse order (Musical retrograde)." +#: js/blocks/MeterBlocks.js:1027 +#: js/blocks/MeterBlocks.js:1170 +#: js/blocks/MeterBlocks.js:1244 +msgid "Maximum beats per minute is 1000." msgstr "" -#: js/FlowBlocks.js:48 -msgid "backward" +#: js/blocks/MeterBlocks.js:1068 +msgid "The Beats per minute block sets the number of 1/4 notes per minute." msgstr "" -#: js/FlowBlocks.js:124 -msgid "The Duplicate block will run each block multiple times." +#: js/blocks/MeterBlocks.js:1279 +#.TRANS: anacrusis +msgid "pickup" msgstr "" -#: js/FlowBlocks.js:136 -msgid "duplicate" +#: js/blocks/MeterBlocks.js:1367 +msgid "number of beats" msgstr "" -#: js/FlowBlocks.js:334 -msgid "The Default block is used inside of a Switch to define the default action." +#: js/blocks/NumberBlocks.js:28 +msgid "The Int block returns an integer." msgstr "" -#: js/FlowBlocks.js:342 -msgid "default" +#: js/blocks/NumberBlocks.js:34 +msgid "int" msgstr "" -#: js/FlowBlocks.js:361 -#: js/FlowBlocks.js:418 -msgid "The Case Block must be used inside of a Switch Block." +#: js/blocks/NumberBlocks.js:73 +msgid "The Mod block returns the remainder from a division." msgstr "" -#: js/FlowBlocks.js:389 -msgid "The Case block is used inside of a Switch to define matches." +#: js/blocks/NumberBlocks.js:79 +msgid "mod" msgstr "" -#: js/FlowBlocks.js:397 -msgid "case" +#: js/blocks/NumberBlocks.js:141 +msgid "The Power block calculates a power function." msgstr "" -#: js/FlowBlocks.js:446 -msgid "The Switch block will run the code in the matching Case." +#: js/blocks/NumberBlocks.js:196 +msgid "The Sqrt block returns the square root." msgstr "" -#: js/FlowBlocks.js:454 -msgid "switch" +#: js/blocks/NumberBlocks.js:202 +msgid "sqrt" msgstr "" -#: js/FlowBlocks.js:595 -msgid "The Stop block will stop a loop" +#: js/blocks/NumberBlocks.js:248 +msgid "The Abs block returns the absolute value." msgstr "" -#: js/FlowBlocks.js:597 -msgid "Forever, Repeat, While, or Until." +#: js/blocks/NumberBlocks.js:254 +msgid "abs" msgstr "" -#: js/FlowBlocks.js:604 -#: js/phrasemaker.js:3799 -#: js/musickeyboard.js:629 -#: js/musickeyboard.js:631 -#: js/timbre.js:417 -#: js/timbre.js:419 -#: plugins/rodi.rtp:29 -#: plugins/rodi.rtp:73 -#: plugins/rodi.rtp:413 -msgid "stop" +#: js/blocks/NumberBlocks.js:295 +msgid "The Distance block returns the distance between two points. For example, between the mouse and the center of the screen." msgstr "" -#: js/FlowBlocks.js:653 -msgid "The Waitfor block will wait until the condition is true." +#: js/blocks/NumberBlocks.js:301 +#: plugins/rodi.rtp:310 +msgid "distance" msgstr "" -#: js/FlowBlocks.js:661 -msgid "wait for" +#: js/blocks/NumberBlocks.js:361 +msgid "The Divide block is used to divide." msgstr "" -#: js/FlowBlocks.js:732 -msgid "The Until block will repeat until the condition is true." +#: js/blocks/NumberBlocks.js:441 +msgid "The Multiply block is used to multiply." msgstr "" -#: js/FlowBlocks.js:740 -msgid "until" +#: js/blocks/NumberBlocks.js:612 +msgid "The Minus block is used to subtract." msgstr "" -#: js/FlowBlocks.js:742 -#: js/FlowBlocks.js:822 -msgid "do2" +#: js/blocks/NumberBlocks.js:723 +msgid "The Plus block is used to add." msgstr "" -#: js/FlowBlocks.js:812 -msgid "The While block will repeat while the condition is true." +#: js/blocks/NumberBlocks.js:849 +msgid "The One-of block returns one of two choices." msgstr "" -#: js/FlowBlocks.js:820 -msgid "while" +#: js/blocks/NumberBlocks.js:856 +#: js/blocks/PitchBlocks.js:616 +msgid "one of" msgstr "" -#: js/FlowBlocks.js:903 -#: js/FlowBlocks.js:968 -#: js/FlowBlocks.js:979 -msgid "In this example if the mouse button is pressed a snare drum will play." +#: js/blocks/NumberBlocks.js:858 +msgid "this" msgstr "" -#: js/FlowBlocks.js:925 -#: js/FlowBlocks.js:988 -msgid "if" +#: js/blocks/NumberBlocks.js:858 +msgid "that" msgstr "" -#: js/FlowBlocks.js:927 -#: js/FlowBlocks.js:990 -msgid "then" +#: js/blocks/NumberBlocks.js:913 +msgid "The Random block returns a random number." msgstr "" -#: js/FlowBlocks.js:927 -msgid "else" +#: js/blocks/NumberBlocks.js:920 +msgid "random" msgstr "" -#: js/FlowBlocks.js:1025 -msgid "The Forever block will repeat the contained blocks forever." +#: js/blocks/NumberBlocks.js:922 +msgid "min" msgstr "" -#: js/FlowBlocks.js:1037 -msgid "forever" +#: js/blocks/NumberBlocks.js:922 +msgid "max" msgstr "" -#: js/FlowBlocks.js:1073 -msgid "The Repeat block will repeat the contained blocks." +#: js/blocks/NumberBlocks.js:986 +msgid "The Number block holds a number." msgstr "" -#: js/FlowBlocks.js:1075 -msgid "In this example the note will be played 4 times." +#: js/blocks/OrnamentBlocks.js:32 +msgid "staccato factor" msgstr "" -#: js/FlowBlocks.js:1083 -msgid "repeat" +#: js/blocks/OrnamentBlocks.js:108 +msgid "slur factor" msgstr "" -#: js/FlowBlocks.js:1123 -msgid "duplicate factor" +#: js/blocks/OrnamentBlocks.js:217 +#: js/blocks/OrnamentBlocks.js:309 +#.TRANS: the neighbor refers to a neighboring note, e.g., D is a neighbor of C +msgid "neighbor" msgstr "" -#: js/PitchBlocks.js:39 -#: js/musicutils.js:722 -#: js/musicutils.js:1117 -#: js/synthutils.js:112 -#.TRANS: square wave -msgid "square" +#: js/blocks/OrnamentBlocks.js:293 +msgid "The Neighbor block rapidly switches between neighboring pitches." msgstr "" -#: js/PitchBlocks.js:62 -#: js/ToneBlocks.js:39 -#: js/musicutils.js:723 -#: js/musicutils.js:1118 -#: js/synthutils.js:116 -#.TRANS: triangle wave -msgid "triangle" +#: js/blocks/OrnamentBlocks.js:364 +msgid "glide" msgstr "" -#: js/PitchBlocks.js:85 -#: js/musicutils.js:721 -#: js/musicutils.js:1116 -#: js/synthutils.js:110 -#.TRANS: sine wave -msgid "sine" +#: js/blocks/OrnamentBlocks.js:479 +#: js/blocks/OrnamentBlocks.js:643 +msgid "slur" msgstr "" -#: js/PitchBlocks.js:108 -#: js/musicutils.js:724 -#: js/musicutils.js:1119 -#: js/synthutils.js:114 -#.TRANS: sawtooth wave -msgid "sawtooth" +#: js/blocks/OrnamentBlocks.js:558 +#: js/blocks/OrnamentBlocks.js:710 +#.TRANS: play each note sharply detached from the others +msgid "staccato" msgstr "" -#: js/PitchBlocks.js:141 -#.TRANS: musical transposition (adjustment of pitch up or down) -msgid "transposition" +#: js/blocks/RhythmBlocks.js:182 +#: js/blocks/RhythmBlocks.js:1086 +#: js/blocks/RhythmBlocks.js:1162 +msgid "Note value must be greater than 0." msgstr "" -#: js/PitchBlocks.js:168 -#.TRANS: step down one note in current musical scale -msgid "scalar step down" +#: js/blocks/RhythmBlocks.js:215 +#: js/blocks/RhythmBlocks.js:278 +#: js/blocks/RhythmBlocks.js:350 +#.TRANS: swing is a rhythmic variation that emphasises the offbeat +msgid "swing" msgstr "" -#: js/PitchBlocks.js:172 -msgid "The Scalar step down block returns the number of semi-tones down to the previous note in the current key and mode." +#: js/blocks/RhythmBlocks.js:355 +#.TRANS: the amount to shift to the offbeat note +msgid "swing value" msgstr "" -#: js/PitchBlocks.js:190 -#.TRANS: step up one note in current musical scale -msgid "scalar step up" +#: js/blocks/RhythmBlocks.js:419 +msgid "The Skip notes block will cause notes to be skipped." msgstr "" -#: js/PitchBlocks.js:194 -msgid "The Scalar step up block returns the number of semi-tones up to the next note in the current key and mode." +#: js/blocks/RhythmBlocks.js:427 +#.TRANS: substitute rests on notes being skipped +msgid "skip notes" msgstr "" -#: js/PitchBlocks.js:212 -#.TRANS: the change measured in half-steps between the current pitch and the previous pitch -msgid "change in pitch" +#: js/blocks/RhythmBlocks.js:489 +#.TRANS: speed up note duration by some factor, e.g. convert 1/4 to 1/8 notes by using a factor of 2 +msgid "multiply note value" msgstr "" -#: js/PitchBlocks.js:216 -msgid "The Change in pitch block is the difference (in half steps) between the current pitch being played and the previous pitch played." +#: js/blocks/RhythmBlocks.js:542 +msgid "The Tie block works on pairs of notes, combining them into one note." msgstr "" -#: js/PitchBlocks.js:243 -#.TRANS: the change measured in scale-steps between the current pitch and the previous pitch -msgid "scalar change in pitch" +#: js/blocks/RhythmBlocks.js:550 +#.TRANS: tie notes together into one longer note +msgid "tie" msgstr "" -#: js/PitchBlocks.js:250 -#: js/PitchBlocks.js:432 -#: js/PitchBlocks.js:1629 -#: js/DictActions.js:89 -#: js/temperament.js:477 -#: js/temperament.js:481 -#: js/temperament.js:714 -#.TRANS: convert current note to piano key (1-88) -#.TRANS: a mapping of pitch to the 88 piano keys -msgid "pitch number" +#: js/blocks/RhythmBlocks.js:591 +#: js/blocks/RhythmBlocks.js:671 +#.TRANS: a dotted note is played for 1.5x its value, e.g., 1/8. --> 3/16 +msgid "dot" msgstr "" -#: js/PitchBlocks.js:256 -msgid "The Pitch number block is the value of the pitch of the note currently being played." +#: js/blocks/RhythmBlocks.js:619 +#: js/turtleactions/RhythmActions.js:221 +msgid "An argument of -1 results in a note value of 0." msgstr "" -#: js/PitchBlocks.js:329 -#: js/PitchBlocks.js:433 -#.TRANS: the current pitch expressed in Hertz -msgid "pitch in hertz" +#: js/blocks/RhythmBlocks.js:661 +msgid "The Dot block extends the duration of a note by 50%." msgstr "" -#: js/PitchBlocks.js:334 -msgid "The Pitch in Hertz block is the value in Hertz of the pitch of the note currently being played." +#: js/blocks/RhythmBlocks.js:663 +msgid "Eg a dotted quarter note will play for 3/8 (1/4 + 1/8) of a beat." msgstr "" -#: js/PitchBlocks.js:367 -#: js/DictActions.js:87 -msgid "current pitch" +#: js/blocks/RhythmBlocks.js:765 +#.TRANS: Japanese only: note value block for drum +msgid "note value drum" msgstr "" -#: js/PitchBlocks.js:373 -msgid "The Current Pitch block is used with the Pitch Converter block. In the example above, current pitch, sol 4, is displayed as 392 hertz." +#: js/blocks/RhythmBlocks.js:829 +msgid "392 hertz" msgstr "" -#: js/PitchBlocks.js:410 -msgid "This block converts the pitch value of the last note played into different formats such as hertz, letter name, pitch number, et al." +#: js/blocks/RhythmBlocks.js:1119 +msgid "The Note block is a container for one or more Pitch blocks." msgstr "" -#: js/PitchBlocks.js:434 -msgid "alphabet" +#: js/blocks/RhythmBlocks.js:1121 +msgid "The Note block specifies the duration (note value) of its contents." msgstr "" -#: js/PitchBlocks.js:436 -#.TRANS: Translate as "alphabet class" -msgid "letter class" +#: js/blocks/RhythmBlocks.js:1128 +#: js/blocks/PitchBlocks.js:974 +#: js/blocks/PitchBlocks.js:1007 +#: js/blocks/ProgramBlocks.js:1186 +#: js/blocks/ProgramBlocks.js:1227 +#: js/widgets/status.js:190 +#: js/widgets/temperament.js:464 +#: js/widgets/temperament.js:486 +#: js/widgets/temperament.js:496 +#: js/widgets/temperament.js:617 +#: plugins/rodi.rtp:192 +#.TRANS: a musical note consisting of pitch and duration +msgid "note" msgstr "" -#: js/PitchBlocks.js:437 -msgid "solfege class" +#: js/blocks/RhythmBlocks.js:1130 +msgid "value2" msgstr "" -#: js/PitchBlocks.js:438 -msgid "staff y" +#: js/blocks/RhythmBlocks.js:1200 +msgid "define frequency" msgstr "" -#: js/PitchBlocks.js:439 -msgid "solfege syllable" +#: js/blocks/RhythmBlocks.js:1218 +#: js/widgets/temperament.js:787 +#: js/widgets/temperament.js:1587 +msgid "octave space" msgstr "" -#: js/PitchBlocks.js:440 -msgid "pitch class" +#: js/blocks/SensorsBlocks.js:36 +msgid "The Input block prompts for keyboard input." msgstr "" -#: js/PitchBlocks.js:441 -msgid "scalar class" +#: js/blocks/SensorsBlocks.js:46 +msgid "input" msgstr "" -#: js/PitchBlocks.js:443 -msgid "nth degree" +#: js/blocks/SensorsBlocks.js:64 +msgid "Input a value" msgstr "" -#: js/PitchBlocks.js:444 -msgid "pitch to shade" +#: js/blocks/SensorsBlocks.js:126 +msgid "input value" msgstr "" -#: js/PitchBlocks.js:445 -msgid "pitch to color" +#: js/blocks/SensorsBlocks.js:131 +msgid "The Input-value block stores the input." msgstr "" -#: js/PitchBlocks.js:629 -#: js/musickeyboard.js:565 -#.TRANS: MIDI is a technical standard for electronic music -msgid "MIDI" +#: js/blocks/SensorsBlocks.js:238 +msgid "loudness" msgstr "" -#: js/PitchBlocks.js:642 -#.TRANS: set an offset associated with the numeric piano keyboard mapping -msgid "set pitch number offset" +#: js/blocks/SensorsBlocks.js:245 +msgid "The Loudness block returns the volume detected by the microphone." msgstr "" -#: js/PitchBlocks.js:645 -msgid "The Set pitch number offset block is used to set the offset for mapping pitch numbers to pitch and octave." +#: js/blocks/SensorsBlocks.js:300 +msgid "click" msgstr "" -#: js/PitchBlocks.js:679 -#.TRANS: convert piano key number (1-88) to pitch -msgid "number to pitch" +#: js/blocks/SensorsBlocks.js:306 +msgid "The Click block triggers an event if a mouse has been clicked." msgstr "" -#: js/PitchBlocks.js:682 -msgid "The Number to pitch block will convert a pitch number to a pich name." +#: js/blocks/SensorsBlocks.js:313 +msgid "The Click block triggers an event if a turtle has been clicked." msgstr "" -#: js/PitchBlocks.js:715 -#.TRANS: convert piano key number (1-88) to octave -msgid "number to octave" +#: js/blocks/SensorsBlocks.js:342 +msgid "cursor over" msgstr "" -#: js/PitchBlocks.js:717 -msgid "The Number to octave block will convert a pitch number to an octave." +#: js/blocks/SensorsBlocks.js:387 +msgid "cursor out" msgstr "" -#: js/PitchBlocks.js:726 -msgid "y to pitch" +#: js/blocks/SensorsBlocks.js:433 +msgid "cursor button down" msgstr "" -#: js/PitchBlocks.js:729 -msgid "Y to pitch block will convert a staff y position to corresponding pitch notation." +#: js/blocks/SensorsBlocks.js:477 +msgid "cursor button up" msgstr "" -#: js/PitchBlocks.js:841 -msgid "accidental selector" +#: js/blocks/SensorsBlocks.js:521 +#: js/blocks/PenBlocks.js:48 +#: plugins/rodi.rtp:219 +msgid "blue" msgstr "" -#: js/PitchBlocks.js:844 -msgid "The Accidental selector block is used to choose between double-sharp, sharp, natural, flat, and double-flat." +#: js/blocks/SensorsBlocks.js:577 +#: js/blocks/PenBlocks.js:64 +#: plugins/rodi.rtp:218 +msgid "green" msgstr "" -#: js/PitchBlocks.js:858 -msgid "Pitch can be specified in terms of ni dha pa ma ga re sa." +#: js/blocks/SensorsBlocks.js:633 +#: js/blocks/PenBlocks.js:112 +#: plugins/rodi.rtp:217 +msgid "red" msgstr "" -#: js/PitchBlocks.js:872 -msgid "Pitch can be specified in terms of C D E F G A B." +#: js/blocks/SensorsBlocks.js:638 +msgid "The Get red block returns the red component of the pixel under the mouse." msgstr "" -#: js/PitchBlocks.js:883 -msgid "solfege" +#: js/blocks/SensorsBlocks.js:644 +msgid "The Get red block returns the red component of the pixel under the turtle." msgstr "" -#: js/PitchBlocks.js:886 -msgid "Pitch can be specified in terms of do re mi fa sol la ti." +#: js/blocks/SensorsBlocks.js:685 +#: plugins/rodi.rtp:216 +msgid "pixel color" msgstr "" -#: js/PitchBlocks.js:920 -msgid "The Invert block rotates any contained notes around a target note." +#: js/blocks/SensorsBlocks.js:690 +msgid "The Get pixel block returns the color of the pixel under the mouse." msgstr "" -#: js/PitchBlocks.js:927 -#.TRANS: pitch inversion rotates a pitch around another pitch -msgid "invert" +#: js/blocks/SensorsBlocks.js:696 +msgid "The Get pixel block returns the color of the pixel under the turtle." msgstr "" -#: js/PitchBlocks.js:929 -#: js/PitchBlocks.js:935 -#: js/PitchActions.js:727 -#: js/musicutils.js:726 -#: js/musicutils.js:902 -#.TRANS: invert based on even or odd number or musical scale -#.TRANS: even numbers -msgid "even" +#: js/blocks/SensorsBlocks.js:758 +msgid "time" msgstr "" -#: js/PitchBlocks.js:935 -#: js/PitchActions.js:729 -#: js/musicutils.js:728 -#: js/musicutils.js:903 -#.TRANS: odd numbers -msgid "odd" +#: js/blocks/SensorsBlocks.js:804 +msgid "cursor y" msgstr "" -#: js/PitchBlocks.js:935 -#: js/PitchActions.js:731 -#: js/musicutils.js:729 -#: js/musicutils.js:904 -msgid "scalar" +#: js/blocks/SensorsBlocks.js:809 +msgid "The Cursor Y block returns the vertical position of the mouse." msgstr "" -#: js/PitchBlocks.js:966 -#.TRANS: pitch inversion rotates a pitch around another pitch (odd number) -msgid "invert (odd)" +#: js/blocks/SensorsBlocks.js:845 +msgid "cursor x" msgstr "" -#: js/PitchBlocks.js:999 -#.TRANS: pitch inversion rotates a pitch around another pitch (even number) -msgid "invert (even)" +#: js/blocks/SensorsBlocks.js:850 +msgid "The Cursor X block returns the horizontal position of the mouse." msgstr "" -#: js/PitchBlocks.js:1020 -#.TRANS: register is the octave of the current pitch -msgid "register" +#: js/blocks/SensorsBlocks.js:886 +msgid "mouse button" msgstr "" -#: js/PitchBlocks.js:1024 -msgid "The Register block provides an easy way to modify the register (octave) of the notes that follow it." +#: js/blocks/SensorsBlocks.js:888 +msgid "The Mouse-button block returns True if the mouse button is pressed." msgstr "" -#: js/PitchBlocks.js:1074 -msgid "The Semi-tone transposition block will shift the pitches contained inside Note blocks up (or down) by half steps." +#: js/blocks/SensorsBlocks.js:934 +msgid "to ASCII" msgstr "" -#: js/PitchBlocks.js:1076 -msgid "In the example shown above, sol is shifted up to sol#." +#: js/blocks/SensorsBlocks.js:938 +msgid "The To ASCII block converts numbers to letters." msgstr "" -#: js/PitchBlocks.js:1082 -#.TRANS: adjust the amount of shift (up or down) of a pitch -msgid "semi-tone transpose" +#: js/blocks/SensorsBlocks.js:1005 +msgid "The Keyboard block returns computer keyboard input." msgstr "" -#: js/PitchBlocks.js:1115 -msgid "The Transpose by Ratio block will shift the pitches contained inside Note blocks up (or down) by a ratio" +#: js/blocks/RhythmBlockPaletteBlocks.js:50 +#: js/blocks/RhythmBlockPaletteBlocks.js:233 +#.TRANS: rhythm block +#.TRANS: translate "rhythm1" as rhythm +msgid "rhythm1" msgstr "" -#: js/PitchBlocks.js:1121 -#.TRANS: adjust the amount of shift (up or down) of a pitch -msgid "transpose by ratio" +#: js/blocks/RhythmBlockPaletteBlocks.js:70 +#: js/blocks/RhythmBlockPaletteBlocks.js:252 +#: js/blocks/RhythmBlockPaletteBlocks.js:485 +#: js/blocks/RhythmBlockPaletteBlocks.js:554 +#: js/blocks/RhythmBlockPaletteBlocks.js:875 +msgid "number of notes" msgstr "" -#: js/PitchBlocks.js:1204 -#.TRANS: down sixth means the note is five scale degrees below current note -msgid "down sixth" +#: js/blocks/RhythmBlockPaletteBlocks.js:126 +msgid "polyphonic rhythm" msgstr "" -#: js/PitchBlocks.js:1223 -#.TRANS: down third means the note is two scale degrees below current note -msgid "down third" +#: js/blocks/RhythmBlockPaletteBlocks.js:219 +msgid "The Rhythm block is used to generate rhythm patterns." msgstr "" -#: js/PitchBlocks.js:1242 -#.TRANS: seventh means the note is the six scale degrees above current note -msgid "seventh" +#: js/blocks/RhythmBlockPaletteBlocks.js:280 +msgid "1/64 note" msgstr "" -#: js/PitchBlocks.js:1261 -#.TRANS: sixth means the note is the five scale degrees above current note -msgid "sixth" +#: js/blocks/RhythmBlockPaletteBlocks.js:304 +msgid "1/32 note" msgstr "" -#: js/PitchBlocks.js:1280 -#.TRANS: fifth means the note is the four scale degrees above current note -msgid "fifth" +#: js/blocks/RhythmBlockPaletteBlocks.js:332 +msgid "1/16 note" msgstr "" -#: js/PitchBlocks.js:1300 -#.TRANS: fourth means the note is three scale degrees above current note -msgid "fourth" +#: js/blocks/RhythmBlockPaletteBlocks.js:360 +msgid "eighth note" msgstr "" -#: js/PitchBlocks.js:1319 -#.TRANS: third means the note is two scale degrees above current note -msgid "third" +#: js/blocks/RhythmBlockPaletteBlocks.js:388 +msgid "quarter note" msgstr "" -#: js/PitchBlocks.js:1338 -#.TRANS: second means the note is one scale degree above current note -msgid "second" +#: js/blocks/RhythmBlockPaletteBlocks.js:416 +msgid "half note" msgstr "" -#: js/PitchBlocks.js:1379 -msgid "The Scalar transposition block will shift the pitches contained inside Note blocks up (or down) the scale." +#: js/blocks/RhythmBlockPaletteBlocks.js:444 +msgid "whole note" msgstr "" -#: js/PitchBlocks.js:1381 -msgid "In the example shown above, sol is shifted up to la." +#: js/blocks/RhythmBlockPaletteBlocks.js:482 +#: js/blocks/RhythmBlockPaletteBlocks.js:551 +#: js/blocks/RhythmBlockPaletteBlocks.js:602 +#.TRANS: A tuplet is a note value divided into irregular time values. +msgid "tuplet" msgstr "" -#: js/PitchBlocks.js:1388 -#.TRANS: adjust the amount of shift (up or down) of a pitch by musical scale (scalar) steps -msgid "scalar transpose" +#: js/blocks/RhythmBlockPaletteBlocks.js:768 +msgid "septuplet" msgstr "" -#: js/PitchBlocks.js:1423 -msgid "The Accidental block is used to create sharps and flats" +#: js/blocks/RhythmBlockPaletteBlocks.js:796 +msgid "quintuplet" msgstr "" -#: js/PitchBlocks.js:1430 -#.TRANS: An accidental is a modification to a pitch, e.g., sharp or flat. -msgid "accidental override" +#: js/blocks/RhythmBlockPaletteBlocks.js:824 +msgid "triplet" msgstr "" -#: js/PitchBlocks.js:1543 -msgid "The Hertz block (in combination with a Number block) will play a sound at the specified frequency." +#: js/blocks/RhythmBlockPaletteBlocks.js:851 +msgid "simple tuplet" msgstr "" -#: js/PitchBlocks.js:1633 -msgid "The Pitch Number block will play a pitch associated by its number, e.g. 0 for C and 7 for G." +#: js/blocks/RhythmBlockPaletteBlocks.js:861 +msgid "Tuplets are a collection of notes that get scaled to a specific duration." msgstr "" -#: js/PitchBlocks.js:1665 -#: js/PitchBlocks.js:1707 -#.TRANS: a numeric mapping of the notes in an octave based on the musical mode -#.TRANS: a numeric mapping of the notes in an octave based on the musical mode -msgid "nth modal pitch" +#: js/blocks/DrumBlocks.js:59 +msgid "The Noise name block is used to select a noise synthesizer." msgstr "" -#: js/PitchBlocks.js:1668 -msgid "n^th Modal Pitch takes the pattern of pitches in semitones for a mode and makes each point a degree of the mode," +#: js/blocks/DrumBlocks.js:102 +msgid "The Drum name block is used to select a drum." msgstr "" -#: js/PitchBlocks.js:1670 -msgid "starting from 1 and regardless of tonal framework (i.e. not always 8 notes in the octave)" +#: js/blocks/DrumBlocks.js:146 +msgid "The Effects name block is used to select a sound effect." msgstr "" -#: js/PitchBlocks.js:1711 -msgid "N^th Modal Pitch takes a number as an input as the n^th degree for the given mode. 0 is the first position, 1 is the second, -1 is the note before the first etc." +#: js/blocks/DrumBlocks.js:163 +msgid "noise" msgstr "" -#: js/PitchBlocks.js:1713 -msgid "The pitches change according to the mode specified without any need for respellings." +#: js/blocks/DrumBlocks.js:177 +msgid "The Play noise block will generate white, pink, or brown noise." msgstr "" -#: js/PitchBlocks.js:1752 -msgid "Scale Degree is a common convention in music. Scale Degree offers seven possible positions in the scale (1-7) and can be modified via accidentals." +#: js/blocks/DrumBlocks.js:317 +msgid "Replace every instance of a pitch with a drum sound." msgstr "" -#: js/PitchBlocks.js:1754 -msgid "Scale Degree 1 is always the first pitch in a given scale, regardless of octave." +#: js/blocks/DrumBlocks.js:328 +#.TRANS: map a pitch to a drum sound +msgid "map pitch to drum" msgstr "" -#: js/PitchBlocks.js:1776 -#.TRANS: step some number of notes in current musical scale -msgid "scalar step" +#: js/blocks/DrumBlocks.js:395 +msgid "In the example above, a kick drum sound will be played instead of sol." msgstr "" -#: js/PitchBlocks.js:1781 -msgid "The Scalar Step block (in combination with a Number block) will play the next pitch in a scale," +#: js/blocks/DrumBlocks.js:407 +#.TRANS: set the current drum sound for playback +msgid "set drum" msgstr "" -#: js/PitchBlocks.js:1783 -msgid "eg if the last note played was sol, Scalar Step 1 will play la." +#: js/blocks/DrumBlocks.js:451 +msgid "sound effect" msgstr "" -#: js/PitchBlocks.js:1818 -msgid "The Pitch block specifies the pitch name and octave of a note that together determine the frequency of the note." +#: js/blocks/DrumBlocks.js:489 +msgid "You can use multiple Drum blocks within a Note block." msgstr "" -#: js/GraphicsBlocks.js:46 -#: js/DictActions.js:77 -#: js/DictActions.js:155 -#: js/DictActions.js:189 +#: js/blocks/GraphicsBlocks.js:46 +#: js/turtleactions/DictActions.js:77 +#: js/turtleactions/DictActions.js:144 +#: js/turtleactions/DictActions.js:173 msgid "heading" msgstr "" -#: js/GraphicsBlocks.js:56 +#: js/blocks/GraphicsBlocks.js:56 msgid "The Heading block returns the orientation of the mouse." msgstr "" -#: js/GraphicsBlocks.js:62 +#: js/blocks/GraphicsBlocks.js:62 msgid "The Heading block returns the orientation of the turtle." msgstr "" -#: js/GraphicsBlocks.js:133 +#: js/blocks/GraphicsBlocks.js:133 msgid "The Y block returns the vertical position of the mouse." msgstr "" -#: js/GraphicsBlocks.js:140 +#: js/blocks/GraphicsBlocks.js:140 msgid "The Y block returns the vertical position of the turtle." msgstr "" -#: js/GraphicsBlocks.js:149 +#: js/blocks/GraphicsBlocks.js:149 msgid "y3" msgstr "" -#: js/GraphicsBlocks.js:219 +#: js/blocks/GraphicsBlocks.js:219 msgid "The X block returns the horizontal position of the mouse." msgstr "" -#: js/GraphicsBlocks.js:226 +#: js/blocks/GraphicsBlocks.js:226 msgid "The X block returns the horizontal position of the turtle." msgstr "" -#: js/GraphicsBlocks.js:235 +#: js/blocks/GraphicsBlocks.js:235 msgid "x3" msgstr "" -#: js/GraphicsBlocks.js:295 +#: js/blocks/GraphicsBlocks.js:295 msgid "scroll xy" msgstr "" -#: js/GraphicsBlocks.js:303 +#: js/blocks/GraphicsBlocks.js:303 msgid "The Scroll XY block moves the canvas." msgstr "" -#: js/GraphicsBlocks.js:313 +#: js/blocks/GraphicsBlocks.js:313 msgid "x2" msgstr "" -#: js/GraphicsBlocks.js:313 +#: js/blocks/GraphicsBlocks.js:313 msgid "y2" msgstr "" -#: js/GraphicsBlocks.js:373 -#: js/temperament.js:213 -#: js/temperament.js:241 +#: js/blocks/GraphicsBlocks.js:373 +#: js/widgets/temperament.js:319 +#: js/widgets/temperament.js:347 msgid "clear" msgstr "" -#: js/GraphicsBlocks.js:426 +#: js/blocks/GraphicsBlocks.js:426 msgid "The Control-point 2 block sets the second control point for the Bezier curve." msgstr "" -#: js/GraphicsBlocks.js:433 +#: js/blocks/GraphicsBlocks.js:433 msgid "control point 2" msgstr "" -#: js/GraphicsBlocks.js:436 -#: js/GraphicsBlocks.js:487 -#: js/GraphicsBlocks.js:534 -#: js/GraphicsBlocks.js:750 +#: js/blocks/GraphicsBlocks.js:436 +#: js/blocks/GraphicsBlocks.js:487 +#: js/blocks/GraphicsBlocks.js:534 +#: js/blocks/GraphicsBlocks.js:750 msgid "x1" msgstr "" -#: js/GraphicsBlocks.js:436 -#: js/GraphicsBlocks.js:487 -#: js/GraphicsBlocks.js:534 -#: js/GraphicsBlocks.js:750 +#: js/blocks/GraphicsBlocks.js:436 +#: js/blocks/GraphicsBlocks.js:487 +#: js/blocks/GraphicsBlocks.js:534 +#: js/blocks/GraphicsBlocks.js:750 msgid "y1" msgstr "" -#: js/GraphicsBlocks.js:477 +#: js/blocks/GraphicsBlocks.js:477 msgid "The Control-point 1 block sets the first control point for the Bezier curve." msgstr "" -#: js/GraphicsBlocks.js:484 +#: js/blocks/GraphicsBlocks.js:484 msgid "control point 1" msgstr "" -#: js/GraphicsBlocks.js:527 +#: js/blocks/GraphicsBlocks.js:527 msgid "The Bezier block draws a Bezier curve." msgstr "" -#: js/GraphicsBlocks.js:531 +#: js/blocks/GraphicsBlocks.js:531 msgid "bezier" msgstr "" -#: js/GraphicsBlocks.js:592 +#: js/blocks/GraphicsBlocks.js:592 msgid "The Arc block moves the turtle in an arc." msgstr "" -#: js/GraphicsBlocks.js:600 +#: js/blocks/GraphicsBlocks.js:600 msgid "arc" msgstr "" -#: js/GraphicsBlocks.js:603 +#: js/blocks/GraphicsBlocks.js:603 msgid "angle" msgstr "" -#: js/GraphicsBlocks.js:603 +#: js/blocks/GraphicsBlocks.js:603 msgid "radius" msgstr "" -#: js/GraphicsBlocks.js:620 -#: js/GraphicsBlocks.js:767 -#: js/GraphicsBlocks.js:1010 -#: js/GraphicsBlocks.js:1093 +#: js/blocks/GraphicsBlocks.js:620 +#: js/blocks/GraphicsBlocks.js:767 +#: js/blocks/GraphicsBlocks.js:1010 +#: js/blocks/GraphicsBlocks.js:1093 msgid "Value must be within -5000 to 5000 when Wrap Mode is off." msgstr "" -#: js/GraphicsBlocks.js:622 -#: js/GraphicsBlocks.js:769 -#: js/GraphicsBlocks.js:1012 -#: js/GraphicsBlocks.js:1095 +#: js/blocks/GraphicsBlocks.js:622 +#: js/blocks/GraphicsBlocks.js:769 +#: js/blocks/GraphicsBlocks.js:1012 +#: js/blocks/GraphicsBlocks.js:1095 msgid "Value must be within -20000 to 20000 when Wrap Mode is on." msgstr "" -#: js/GraphicsBlocks.js:660 +#: js/blocks/GraphicsBlocks.js:660 msgid "set heading" msgstr "seth" -#: js/GraphicsBlocks.js:673 +#: js/blocks/GraphicsBlocks.js:673 msgid "The Set heading block sets the heading of the turtle." msgstr "" -#: js/GraphicsBlocks.js:733 +#: js/blocks/GraphicsBlocks.js:733 msgid "The Set XY block moves the mouse to a specific position on the screen." msgstr "" -#: js/GraphicsBlocks.js:739 +#: js/blocks/GraphicsBlocks.js:739 msgid "The Set XY block moves the turtle to a specific position on the screen." msgstr "" -#: js/GraphicsBlocks.js:747 +#: js/blocks/GraphicsBlocks.js:747 msgid "set xy" msgstr "" -#: js/GraphicsBlocks.js:819 +#: js/blocks/GraphicsBlocks.js:819 msgid "The Right block turns the mouse to the right." msgstr "" -#: js/GraphicsBlocks.js:826 +#: js/blocks/GraphicsBlocks.js:826 msgid "The Right block turns the turtle to the right." msgstr "" -#: js/GraphicsBlocks.js:835 +#: js/blocks/GraphicsBlocks.js:835 msgid "right1" msgstr "" -#: js/GraphicsBlocks.js:835 +#: js/blocks/GraphicsBlocks.js:835 #: plugins/rodi.rtp:77 #: plugins/rodi.rtp:340 #: plugins/rodi.rtp:375 msgid "right" msgstr "" -#: js/GraphicsBlocks.js:899 +#: js/blocks/GraphicsBlocks.js:899 msgid "The Left block turns the mouse to the left." msgstr "" -#: js/GraphicsBlocks.js:906 +#: js/blocks/GraphicsBlocks.js:906 msgid "The Left block turns the turtle to the left." msgstr "" -#: js/GraphicsBlocks.js:915 +#: js/blocks/GraphicsBlocks.js:915 msgid "left1" msgstr "" -#: js/GraphicsBlocks.js:915 +#: js/blocks/GraphicsBlocks.js:915 #: plugins/rodi.rtp:79 #: plugins/rodi.rtp:339 #: plugins/rodi.rtp:362 msgid "left" msgstr "" -#: js/GraphicsBlocks.js:967 -#: js/temperament.js:734 -#: js/temperament.js:933 +#: js/blocks/GraphicsBlocks.js:967 +#: js/widgets/temperament.js:875 +#: js/widgets/temperament.js:1078 #: plugins/rodi.rtp:69 #: plugins/rodi.rtp:387 msgid "back" msgstr "" -#: js/GraphicsBlocks.js:976 +#: js/blocks/GraphicsBlocks.js:976 msgid "The Back block moves the mouse backward." msgstr "" -#: js/GraphicsBlocks.js:983 +#: js/blocks/GraphicsBlocks.js:983 msgid "The Back block moves the turtle backward." msgstr "" -#: js/GraphicsBlocks.js:1050 +#: js/blocks/GraphicsBlocks.js:1050 #: plugins/rodi.rtp:71 #: plugins/rodi.rtp:400 msgid "forward" msgstr "" -#: js/GraphicsBlocks.js:1059 +#: js/blocks/GraphicsBlocks.js:1059 msgid "The Forward block moves the mouse forward." msgstr "" -#: js/GraphicsBlocks.js:1066 +#: js/blocks/GraphicsBlocks.js:1066 msgid "The Forward block moves the turtle forward." msgstr "" -#: js/GraphicsBlocks.js:1154 -#: js/GraphicsBlocks.js:1172 +#: js/blocks/GraphicsBlocks.js:1154 +#: js/blocks/GraphicsBlocks.js:1172 msgid "wrap" msgstr "" -#: js/OrnamentBlocks.js:32 -msgid "staccato factor" -msgstr "" - -#: js/OrnamentBlocks.js:108 -msgid "slur factor" -msgstr "" - -#: js/OrnamentBlocks.js:217 -#: js/OrnamentBlocks.js:309 -#.TRANS: the neighbor refers to a neighboring note, e.g., D is a neighbor of C -msgid "neighbor" -msgstr "" - -#: js/OrnamentBlocks.js:293 -msgid "The Neighbor block rapidly switches between neighboring pitches." -msgstr "" - -#: js/OrnamentBlocks.js:364 -msgid "glide" -msgstr "" - -#: js/OrnamentBlocks.js:479 -#: js/OrnamentBlocks.js:643 -msgid "slur" -msgstr "" - -#: js/OrnamentBlocks.js:558 -#: js/OrnamentBlocks.js:710 -#.TRANS: play each note sharply detached from the others -msgid "staccato" -msgstr "" - -#: js/PenBlocks.js:24 +#: js/blocks/PenBlocks.js:30 msgid "purple" msgstr "" -#: js/PenBlocks.js:37 -#: js/SensorsBlocks.js:521 -#: plugins/rodi.rtp:219 -msgid "blue" -msgstr "" - -#: js/PenBlocks.js:50 -#: js/SensorsBlocks.js:577 -#: plugins/rodi.rtp:218 -msgid "green" -msgstr "" - -#: js/PenBlocks.js:63 +#: js/blocks/PenBlocks.js:80 msgid "yellow" msgstr "" -#: js/PenBlocks.js:76 +#: js/blocks/PenBlocks.js:96 #: plugins/nutrition.rtp:164 msgid "orange" msgstr "" -#: js/PenBlocks.js:89 -#: js/SensorsBlocks.js:633 -#: plugins/rodi.rtp:217 -msgid "red" -msgstr "" - -#: js/PenBlocks.js:102 +#: js/blocks/PenBlocks.js:128 msgid "white" msgstr "" -#: js/PenBlocks.js:115 +#: js/blocks/PenBlocks.js:144 msgid "black" msgstr "" -#: js/PenBlocks.js:128 +#: js/blocks/PenBlocks.js:163 msgid "begin fill" msgstr "" -#: js/PenBlocks.js:143 +#: js/blocks/PenBlocks.js:190 msgid "end fill" msgstr "" -#: js/PenBlocks.js:159 -#: js/PenBlocks.js:386 +#: js/blocks/PenBlocks.js:212 +#: js/blocks/PenBlocks.js:560 #.TRANS: set the background color msgid "background" msgstr "" -#: js/PenBlocks.js:206 -#: js/DictActions.js:71 -#: js/DictActions.js:149 -#: js/DictActions.js:186 +#: js/blocks/PenBlocks.js:274 +#: js/turtleactions/DictActions.js:71 +#: js/turtleactions/DictActions.js:138 +#: js/turtleactions/DictActions.js:170 msgid "grey" msgstr "" -#: js/PenBlocks.js:210 +#: js/blocks/PenBlocks.js:282 msgid "The Grey block returns the current pen grey value." msgstr "" -#: js/PenBlocks.js:243 -#: js/DictActions.js:69 -#: js/DictActions.js:147 -#: js/DictActions.js:185 +#: js/blocks/PenBlocks.js:340 +#: js/turtleactions/DictActions.js:69 +#: js/turtleactions/DictActions.js:136 +#: js/turtleactions/DictActions.js:169 msgid "shade" msgstr "" -#: js/PenBlocks.js:247 +#: js/blocks/PenBlocks.js:347 msgid "The Shade block returns the current pen shade value." msgstr "" -#: js/PenBlocks.js:280 -#: js/DictActions.js:67 -#: js/DictActions.js:145 -#: js/DictActions.js:184 +#: js/blocks/PenBlocks.js:405 +#: js/turtleactions/DictActions.js:67 +#: js/turtleactions/DictActions.js:134 +#: js/turtleactions/DictActions.js:168 msgid "color" msgstr "" -#: js/PenBlocks.js:285 +#: js/blocks/PenBlocks.js:415 msgid "The Color block returns the current pen color." msgstr "" -#: js/PenBlocks.js:318 -#: js/DictActions.js:73 -#: js/DictActions.js:151 -#: js/DictActions.js:187 +#: js/blocks/PenBlocks.js:470 +#: js/turtleactions/DictActions.js:73 +#: js/turtleactions/DictActions.js:140 +#: js/turtleactions/DictActions.js:171 msgid "pen size" msgstr "" -#: js/PenBlocks.js:322 +#: js/blocks/PenBlocks.js:474 msgid "The Pen size block returns the current pen size value." msgstr "" -#: js/PenBlocks.js:355 +#: js/blocks/PenBlocks.js:513 msgid "set font" msgstr "" -#: js/PenBlocks.js:358 +#: js/blocks/PenBlocks.js:518 msgid "The Set font block sets the font used by the Show block." msgstr "" -#: js/PenBlocks.js:391 +#: js/blocks/PenBlocks.js:567 msgid "The Background block sets the window background color." msgstr "" -#: js/PenBlocks.js:408 +#: js/blocks/PenBlocks.js:598 msgid "The Hollow line block creates a line with a hollow center." msgstr "" -#: js/PenBlocks.js:415 +#: js/blocks/PenBlocks.js:606 #.TRANS: draw a line logo has a hollow space down its center msgid "hollow line" msgstr "" -#: js/PenBlocks.js:462 +#: js/blocks/PenBlocks.js:675 msgid "The Fill block fills in a shape with a color." msgstr "" -#: js/PenBlocks.js:470 +#: js/blocks/PenBlocks.js:684 #.TRANS: fill in as a solid color msgid "fill" msgstr "" -#: js/PenBlocks.js:527 +#: js/blocks/PenBlocks.js:761 #.TRANS: raise up the pen so logo it does not draw when it is moved msgid "pen up" msgstr "" -#: js/PenBlocks.js:532 +#: js/blocks/PenBlocks.js:768 msgid "The Pen-up block raises the pen so that it does not draw." msgstr "" -#: js/PenBlocks.js:552 +#: js/blocks/PenBlocks.js:802 #.TRANS: put down the pen so logo it draws when it is moved msgid "pen down" msgstr "" -#: js/PenBlocks.js:557 +#: js/blocks/PenBlocks.js:810 msgid "The Pen-down block lowers the pen so that it draws." msgstr "" -#: js/PenBlocks.js:577 +#: js/blocks/PenBlocks.js:844 #.TRANS: set the width of the line drawn by the pen msgid "set pen size" msgstr "" -#: js/PenBlocks.js:583 +#: js/blocks/PenBlocks.js:854 msgid "The Set-pen-size block changes the size of the pen." msgstr "" -#: js/PenBlocks.js:623 +#: js/blocks/PenBlocks.js:913 #.TRANS: set degree of translucence of the pen color msgid "set translucency" msgstr "" -#: js/PenBlocks.js:627 +#: js/blocks/PenBlocks.js:921 msgid "The Set translucency block changes the opacity of the pen." msgstr "" -#: js/PenBlocks.js:668 +#: js/blocks/PenBlocks.js:981 msgid "set hue" msgstr "" -#: js/PenBlocks.js:672 +#: js/blocks/PenBlocks.js:989 msgid "The Set hue block changes the color of the pen." msgstr "" -#: js/PenBlocks.js:711 +#: js/blocks/PenBlocks.js:1047 msgid "set shade" msgstr "" -#: js/PenBlocks.js:717 +#: js/blocks/PenBlocks.js:1057 msgid "The Set-shade block changes the pen color from dark to light." msgstr "" -#: js/PenBlocks.js:757 +#: js/blocks/PenBlocks.js:1111 #.TRANS: set the level of vividness of the pen color msgid "set grey" msgstr "" -#: js/PenBlocks.js:761 +#: js/blocks/PenBlocks.js:1119 msgid "The Set grey block changes the vividness of the pen color." msgstr "" -#: js/PenBlocks.js:800 +#: js/blocks/PenBlocks.js:1172 msgid "set color" msgstr "" -#: js/PenBlocks.js:806 +#: js/blocks/PenBlocks.js:1182 msgid "The Set-color block changes the pen color." msgstr "" -#: js/VolumeBlocks.js:35 -msgid "synth volume" -msgstr "" - -#: js/VolumeBlocks.js:39 -msgid "The Synth volume block returns the current volume of the current synthesizer." -msgstr "" - -#: js/VolumeBlocks.js:47 -#: js/musicutils.js:730 -#: js/synthutils.js:56 -#.TRANS: musical instrument -msgid "piano" -msgstr "" - -#: js/VolumeBlocks.js:105 -msgid "master volume" -msgstr "" - -#: js/VolumeBlocks.js:109 -msgid "The Master volume block returns the master volume." -msgstr "" - -#: js/VolumeBlocks.js:355 -#: js/VolumeBlocks.js:524 -msgid "set synth volume" -msgstr "" - -#: js/VolumeBlocks.js:362 -#: js/VolumeBlocks.js:545 -msgid "synth" -msgstr "" - -#: js/VolumeBlocks.js:403 -#: js/VolumeBlocks.js:577 -#: js/VolumeBlocks.js:740 -#: js/VolumeActions.js:173 -msgid "Setting volume to 0." -msgstr "" - -#: js/VolumeBlocks.js:440 -msgid "Synth not found" -msgstr "" - -#: js/VolumeBlocks.js:494 -msgid "set drum volume" -msgstr "" - -#: js/VolumeBlocks.js:530 -msgid "The Set synth volume block will change the volume of a particular synth," -msgstr "" - -#: js/VolumeBlocks.js:532 -msgid "eg guitar violin snare drum etc." -msgstr "" - -#: js/VolumeBlocks.js:534 -msgid "The default volume is 50." -msgstr "" - -#: js/VolumeBlocks.js:536 -msgid "The range is 0 for silence to 100 for full volume." -msgstr "" - -#: js/VolumeBlocks.js:597 -msgid "set panning" -msgstr "" - -#: js/VolumeBlocks.js:603 -msgid "The Set Panning block sets the panning for all synthesizers." -msgstr "" - -#: js/VolumeBlocks.js:625 -msgid "Warning: Sound is coming out from only the left or right side." -msgstr "" - -#: js/VolumeBlocks.js:647 -#: js/VolumeBlocks.js:695 -msgid "set master volume" -msgstr "" - -#: js/VolumeBlocks.js:653 -msgid "The Set master volume block sets the volume for all synthesizers." -msgstr "" - -#: js/VolumeBlocks.js:784 -msgid "The Set relative volume block changes the volume of the contained notes." -msgstr "" - -#: js/VolumeBlocks.js:791 -msgid "set relative volume" -msgstr "" - -#: js/VolumeBlocks.js:857 -msgid "decrescendo" -msgstr "" - -#: js/VolumeBlocks.js:921 -msgid "crescendo" -msgstr "" - -#: js/ToneBlocks.js:34 -msgid "oscillator" -msgstr "" - -#: js/ToneBlocks.js:44 -#: js/timbre.js:1562 -#.TRANS: Partials refers to the number of sine waves combined into the sound. -msgid "partials" -msgstr "" - -#: js/ToneBlocks.js:76 -msgid "You are adding multiple oscillator blocks." -msgstr "" - -#: js/ToneBlocks.js:144 -#: js/timbre.js:1225 -#.TRANS: a duo synthesizer combines a synth with a sequencer -msgid "duo synth" -msgstr "" - -#: js/ToneBlocks.js:149 -msgid "The Duo synth block is a duo-frequency modulator used to define a timbre." -msgstr "" - -#: js/ToneBlocks.js:157 -#: js/timbre.js:1476 -msgid "vibrato rate" -msgstr "" - -#: js/ToneBlocks.js:157 -msgid "vibrato intensity" -msgstr "" - -#: js/ToneBlocks.js:185 -#: js/timbre.js:1221 -#.TRANS: AM (amplitude modulation) synthesizer -msgid "AM synth" -msgstr "" - -#: js/ToneBlocks.js:189 -msgid "The AM synth block is an amplitude modulator used to define a timbre." -msgstr "" - -#: js/ToneBlocks.js:224 -#: js/timbre.js:1223 -#.TRANS: FM (frequency modulation) synthesizer -msgid "FM synth" -msgstr "" - -#: js/ToneBlocks.js:228 -msgid "The FM synth block is a frequency modulator used to define a timbre." +#: js/blocks/PitchBlocks.js:141 +#.TRANS: musical transposition (adjustment of pitch up or down) +msgid "transposition" msgstr "" -#: js/ToneBlocks.js:262 -msgid "partial" +#: js/blocks/PitchBlocks.js:168 +#.TRANS: step down one note in current musical scale +msgid "scalar step down" msgstr "" -#: js/ToneBlocks.js:265 -msgid "The Partial block is used to specify a weight for a specific partial harmonic." +#: js/blocks/PitchBlocks.js:172 +msgid "The Scalar step down block returns the number of semi-tones down to the previous note in the current key and mode." msgstr "" -#: js/ToneBlocks.js:284 -#.TRANS: partials are weighted components in a harmonic series -msgid "Partial weight must be between 0 and 1." +#: js/blocks/PitchBlocks.js:190 +#.TRANS: step up one note in current musical scale +msgid "scalar step up" msgstr "" -#: js/ToneBlocks.js:297 -#.TRANS: partials are weighted components in a harmonic series -msgid "Partial block should be used inside of a Weighted-partials block." +#: js/blocks/PitchBlocks.js:194 +msgid "The Scalar step up block returns the number of semi-tones up to the next note in the current key and mode." msgstr "" -#: js/ToneBlocks.js:325 -#.TRANS: partials are weighted components in a harmonic series -msgid "weighted partials" +#: js/blocks/PitchBlocks.js:212 +#.TRANS: the change measured in half-steps between the current pitch and the previous pitch +msgid "change in pitch" msgstr "" -#: js/ToneBlocks.js:383 -msgid "The Harmonic block will add harmonics to the contained notes." +#: js/blocks/PitchBlocks.js:216 +msgid "The Change in pitch block is the difference (in half steps) between the current pitch being played and the previous pitch played." msgstr "" -#: js/ToneBlocks.js:390 -#.TRANS: A harmonic is an overtone. -msgid "harmonic" +#: js/blocks/PitchBlocks.js:243 +#.TRANS: the change measured in scale-steps between the current pitch and the previous pitch +msgid "scalar change in pitch" msgstr "" -#: js/ToneBlocks.js:431 -msgid "The Distortion block adds distortion to the pitch." +#: js/blocks/PitchBlocks.js:250 +#: js/blocks/PitchBlocks.js:432 +#: js/blocks/PitchBlocks.js:1667 +#: js/turtleactions/DictActions.js:89 +#: js/widgets/temperament.js:610 +#: js/widgets/temperament.js:614 +#: js/widgets/temperament.js:855 +#.TRANS: convert current note to piano key (1-88) +#.TRANS: a mapping of pitch to the 88 piano keys +msgid "pitch number" msgstr "" -#: js/ToneBlocks.js:438 -#: js/timbre.js:2100 -#.TRANS: distortion is an alteration in the sound -msgid "distortion" +#: js/blocks/PitchBlocks.js:256 +msgid "The Pitch number block is the value of the pitch of the note currently being played." msgstr "" -#: js/ToneBlocks.js:487 -msgid "The Tremolo block adds a wavering effect." +#: js/blocks/PitchBlocks.js:329 +#: js/blocks/PitchBlocks.js:433 +#.TRANS: the current pitch expressed in Hertz +msgid "pitch in hertz" msgstr "" -#: js/ToneBlocks.js:495 -#: js/timbre.js:2092 -#.TRANS: a wavering effect in a musical tone -msgid "tremolo" +#: js/blocks/PitchBlocks.js:334 +msgid "The Pitch in Hertz block is the value in Hertz of the pitch of the note currently being played." msgstr "" -#: js/ToneBlocks.js:500 -#: js/ToneBlocks.js:569 -#: js/ToneBlocks.js:630 -#: js/ToneBlocks.js:689 -#: js/timbre.js:2134 -#: js/timbre.js:2222 -#: js/timbre.js:2317 -#: js/timbre.js:2419 -#.TRANS: rate at which tremolo wavers -msgid "rate" +#: js/blocks/PitchBlocks.js:367 +#: js/turtleactions/DictActions.js:87 +msgid "current pitch" msgstr "" -#: js/ToneBlocks.js:502 -#: js/ToneBlocks.js:630 -#: js/timbre.js:2137 -#: js/timbre.js:2328 -#.TRANS: amplitude of tremolo waver -msgid "depth" +#: js/blocks/PitchBlocks.js:373 +msgid "The Current Pitch block is used with the Pitch Converter block. In the example above, current pitch, sol 4, is displayed as 392 hertz." msgstr "" -#: js/ToneBlocks.js:559 -msgid "The Phaser block adds a sweeping sound." +#: js/blocks/PitchBlocks.js:410 +msgid "This block converts the pitch value of the last note played into different formats such as hertz, letter name, pitch number, et al." msgstr "" -#: js/ToneBlocks.js:566 -#: js/timbre.js:2098 -#.TRANS: alter the phase of the sound -msgid "phaser" +#: js/blocks/PitchBlocks.js:434 +msgid "alphabet" msgstr "" -#: js/ToneBlocks.js:569 -#: js/timbre.js:2422 -msgid "octaves" +#: js/blocks/PitchBlocks.js:436 +#.TRANS: Translate as "alphabet class" +msgid "letter class" msgstr "" -#: js/ToneBlocks.js:569 -#: js/timbre.js:2425 -msgid "base frequency" +#: js/blocks/PitchBlocks.js:437 +msgid "solfege class" msgstr "" -#: js/ToneBlocks.js:619 -msgid "The Chorus block adds a chorus effect." +#: js/blocks/PitchBlocks.js:438 +msgid "staff y" msgstr "" -#: js/ToneBlocks.js:627 -#: js/timbre.js:2096 -#.TRANS: musical effect to simulate a choral sound -msgid "chorus" +#: js/blocks/PitchBlocks.js:439 +msgid "solfege syllable" msgstr "" -#: js/ToneBlocks.js:630 -msgid "delay" +#: js/blocks/PitchBlocks.js:440 +msgid "pitch class" msgstr "" -#: js/ToneBlocks.js:678 -msgid "The Vibrato block adds a rapid, slight variation in pitch." +#: js/blocks/PitchBlocks.js:441 +msgid "scalar class" msgstr "" -#: js/ToneBlocks.js:686 -#: js/timbre.js:2094 -#.TRANS: a rapid, slight variation in pitch -msgid "vibrato" +#: js/blocks/PitchBlocks.js:443 +msgid "nth degree" msgstr "" -#: js/ToneBlocks.js:689 -#: js/timbre.js:2221 -msgid "intensity" +#: js/blocks/PitchBlocks.js:444 +msgid "pitch to shade" msgstr "" -#: js/ToneBlocks.js:733 -#.TRANS: select synthesizer -msgid "set synth" +#: js/blocks/PitchBlocks.js:445 +msgid "pitch to color" msgstr "" -#: js/ToneBlocks.js:804 -msgid "synth name" +#: js/blocks/PitchBlocks.js:629 +#: js/widgets/musickeyboard.js:735 +#.TRANS: MIDI is a technical standard for electronic music +msgid "MIDI" msgstr "" -#: js/ToneBlocks.js:842 -msgid "set default instrument" +#: js/blocks/PitchBlocks.js:642 +#.TRANS: set an offset associated with the numeric piano keyboard mapping +msgid "set pitch number offset" msgstr "" -#: js/ToneBlocks.js:895 -#: js/ToneBlocks.js:943 -#.TRANS: set the characteristics of a custom instrument -msgid "set instrument" +#: js/blocks/PitchBlocks.js:645 +msgid "The Set pitch number offset block is used to set the offset for mapping pitch numbers to pitch and octave." msgstr "" -#: js/ToneBlocks.js:898 -#: js/ToneBlocks.js:926 -#: js/ToneBlocks.js:932 -msgid "The Set instrument block selects a voice for the synthesizer," +#: js/blocks/PitchBlocks.js:679 +#.TRANS: convert piano key number (1-88) to pitch +msgid "number to pitch" msgstr "" -#: js/ToneBlocks.js:900 -#: js/ToneBlocks.js:934 -msgid "eg guitar piano violin or cello." +#: js/blocks/PitchBlocks.js:682 +msgid "The Number to pitch block will convert a pitch number to a pich name." msgstr "" -#: js/ToneBlocks.js:1015 -msgid "Import a sound file to use as an instrument and set its pitch center." +#: js/blocks/PitchBlocks.js:715 +#.TRANS: convert piano key number (1-88) to octave +msgid "number to octave" msgstr "" -#: js/ToneBlocks.js:1110 -msgid "Upload a sound file to connect with the sample block." +#: js/blocks/PitchBlocks.js:717 +msgid "The Number to octave block will convert a pitch number to an octave." msgstr "" -#: js/MeterBlocks.js:34 -#.TRANS: musical meter (time signature), e.g., 4:4 -msgid "current meter" +#: js/blocks/PitchBlocks.js:726 +msgid "y to pitch" msgstr "" -#: js/MeterBlocks.js:85 -#.TRANS: number of beats per minute -msgid "beat factor" +#: js/blocks/PitchBlocks.js:729 +msgid "Y to pitch block will convert a staff y position to corresponding pitch notation." msgstr "" -#: js/MeterBlocks.js:161 -msgid "The Beats per minute block returns the current beats per minute." +#: js/blocks/PitchBlocks.js:841 +msgid "accidental selector" msgstr "" -#: js/MeterBlocks.js:169 -#: js/status.js:152 -#.TRANS: number of beats played per minute -msgid "beats per minute2" +#: js/blocks/PitchBlocks.js:844 +msgid "The Accidental selector block is used to choose between double-sharp, sharp, natural, flat, and double-flat." msgstr "" -#: js/MeterBlocks.js:169 -#: js/MeterBlocks.js:1056 -#: js/MeterBlocks.js:1133 -#: js/MeterBlocks.js:1211 -#.TRANS: sets tempo by defining a beat and beats per minute -msgid "beats per minute" +#: js/blocks/PitchBlocks.js:858 +msgid "Pitch can be specified in terms of ni dha pa ma ga re sa." msgstr "" -#: js/MeterBlocks.js:233 -#.TRANS: count of current musical measure in meter -msgid "measure count" +#: js/blocks/PitchBlocks.js:872 +msgid "Pitch can be specified in terms of C D E F G A B." msgstr "" -#: js/MeterBlocks.js:241 -msgid "The Measure count block returns the current measure." +#: js/blocks/PitchBlocks.js:884 +msgid "solfege" msgstr "" -#: js/MeterBlocks.js:290 -#.TRANS: count of current beat in the meter -msgid "beat count" +#: js/blocks/PitchBlocks.js:887 +msgid "Pitch can be specified in terms of do re mi fa sol la ti." msgstr "" -#: js/MeterBlocks.js:300 -#: js/MeterBlocks.js:311 -#: js/MeterBlocks.js:565 -#: js/MeterBlocks.js:576 -msgid "The Beat count block is the number of the current beat," +#: js/blocks/PitchBlocks.js:922 +msgid "The Invert block rotates any contained notes around a target note." msgstr "" -#: js/MeterBlocks.js:313 -#: js/MeterBlocks.js:578 -msgid "eg 1, 2, 3, or 4." +#: js/blocks/PitchBlocks.js:929 +#.TRANS: pitch inversion rotates a pitch around another pitch +msgid "invert" msgstr "" -#: js/MeterBlocks.js:368 -#.TRANS: count the number of notes -msgid "sum note values" +#: js/blocks/PitchBlocks.js:968 +#.TRANS: pitch inversion rotates a pitch around another pitch (odd number) +msgid "invert (odd)" msgstr "" -#: js/MeterBlocks.js:376 -#: js/MeterBlocks.js:440 -msgid "The Note counter block can be used to count the number of contained notes." +#: js/blocks/PitchBlocks.js:1001 +#.TRANS: pitch inversion rotates a pitch around another pitch (even number) +msgid "invert (even)" msgstr "" -#: js/MeterBlocks.js:432 -#.TRANS: count the number of notes -msgid "note counter" +#: js/blocks/PitchBlocks.js:1022 +#.TRANS: register is the octave of the current pitch +msgid "register" msgstr "" -#: js/MeterBlocks.js:496 -#.TRANS: number of whole notes that have been played -msgid "whole notes played" +#: js/blocks/PitchBlocks.js:1026 +msgid "The Register block provides an easy way to modify the register (octave) of the notes that follow it." msgstr "" -#: js/MeterBlocks.js:505 -msgid "The Whole notes played block returns the total number of whole notes played." +#: js/blocks/PitchBlocks.js:1047 +#.TRANS: cents are units used to specify the ratio between pitches. There are 100 cents between successive notes. +msgid "50 cents" msgstr "" -#: js/MeterBlocks.js:555 -#: js/DictActions.js:83 -#.TRANS: number of notes that have been played -msgid "notes played" +#: js/blocks/PitchBlocks.js:1102 +msgid "The Semi-tone transposition block will shift the pitches contained inside Note blocks up (or down) by half steps." msgstr "" -#: js/MeterBlocks.js:653 -msgid "The No clock block decouples the notes from the master clock." +#: js/blocks/PitchBlocks.js:1104 +msgid "In the example shown above, sol is shifted up to sol#." msgstr "" -#: js/MeterBlocks.js:661 -#.TRANS: don't lock notes to master clock -msgid "no clock" +#: js/blocks/PitchBlocks.js:1110 +#.TRANS: adjust the amount of shift (up or down) of a pitch +msgid "semi-tone transpose" msgstr "" -#: js/MeterBlocks.js:700 -msgid "on weak beat do" +#: js/blocks/PitchBlocks.js:1143 +msgid "The Transpose by Ratio block will shift the pitches contained inside Note blocks up (or down) by a ratio" msgstr "" -#: js/MeterBlocks.js:705 -msgid "The On-weak-beat block lets you specify actions to take on weak (off) beats." +#: js/blocks/PitchBlocks.js:1149 +#.TRANS: adjust the amount of shift (up or down) of a pitch +msgid "transpose by ratio" msgstr "" -#: js/MeterBlocks.js:750 -msgid "on strong beat" +#: js/blocks/PitchBlocks.js:1232 +#.TRANS: down sixth means the note is five scale degrees below current note +msgid "down sixth" msgstr "" -#: js/MeterBlocks.js:758 -msgid "The On-strong-beat block lets you specify actions to take on specified beats." +#: js/blocks/PitchBlocks.js:1251 +#.TRANS: down third means the note is two scale degrees below current note +msgid "down third" msgstr "" -#: js/MeterBlocks.js:769 -msgid "beat" +#: js/blocks/PitchBlocks.js:1270 +#.TRANS: seventh means the note is the six scale degrees above current note +msgid "seventh" msgstr "" -#: js/MeterBlocks.js:813 -msgid "on every beat do" +#: js/blocks/PitchBlocks.js:1289 +#.TRANS: sixth means the note is the five scale degrees above current note +msgid "sixth" msgstr "" -#: js/MeterBlocks.js:821 -msgid "The On-every-beat block lets you specify actions to take on every beat." +#: js/blocks/PitchBlocks.js:1308 +#.TRANS: fifth means the note is the four scale degrees above current note +msgid "fifth" msgstr "" -#: js/MeterBlocks.js:874 -msgid "on every note do" +#: js/blocks/PitchBlocks.js:1328 +#.TRANS: fourth means the note is three scale degrees above current note +msgid "fourth" msgstr "" -#: js/MeterBlocks.js:882 -msgid "The On-every-note block lets you specify actions to take on every note." +#: js/blocks/PitchBlocks.js:1347 +#.TRANS: third means the note is two scale degrees above current note +msgid "third" msgstr "" -#: js/MeterBlocks.js:928 -#: js/MeterBlocks.js:999 -#.TRANS: sets tempo by defining a beat and beats per minute -msgid "master beats per minute" +#: js/blocks/PitchBlocks.js:1366 +#.TRANS: second means the note is one scale degree above current note +msgid "second" msgstr "" -#: js/MeterBlocks.js:952 -#: js/MeterBlocks.js:1078 -#: js/MeterBlocks.js:1135 -msgid "bpm" +#: js/blocks/PitchBlocks.js:1407 +msgid "The Scalar transposition block will shift the pitches contained inside Note blocks up (or down) the scale." msgstr "" -#: js/MeterBlocks.js:952 -#: js/MeterBlocks.js:1078 -#: js/MeterBlocks.js:1135 -msgid "beat value" +#: js/blocks/PitchBlocks.js:1409 +msgid "In the example shown above, sol is shifted up to la." msgstr "" -#: js/MeterBlocks.js:1024 -#: js/MeterBlocks.js:1167 -#: js/MeterBlocks.js:1241 -msgid "Beats per minute must be > 30." +#: js/blocks/PitchBlocks.js:1416 +#.TRANS: adjust the amount of shift (up or down) of a pitch by musical scale (scalar) steps +msgid "scalar transpose" msgstr "" -#: js/MeterBlocks.js:1027 -#: js/MeterBlocks.js:1170 -#: js/MeterBlocks.js:1244 -msgid "Maximum beats per minute is 1000." +#: js/blocks/PitchBlocks.js:1451 +msgid "The Accidental block is used to create sharps and flats" msgstr "" -#: js/MeterBlocks.js:1068 -msgid "The Beats per minute block sets the number of 1/4 notes per minute." +#: js/blocks/PitchBlocks.js:1458 +#.TRANS: An accidental is a modification to a pitch, e.g., sharp or flat. +msgid "accidental override" msgstr "" -#: js/MeterBlocks.js:1279 -#.TRANS: anacrusis -msgid "pickup" +#: js/blocks/PitchBlocks.js:1581 +msgid "The Hertz block (in combination with a Number block) will play a sound at the specified frequency." msgstr "" -#: js/MeterBlocks.js:1367 -msgid "number of beats" +#: js/blocks/PitchBlocks.js:1671 +msgid "The Pitch Number block will play a pitch associated by its number, e.g. 0 for C and 7 for G." msgstr "" -#: js/DictBlocks.js:77 -msgid "show dictionary" +#: js/blocks/PitchBlocks.js:1703 +#: js/blocks/PitchBlocks.js:1745 +#.TRANS: a numeric mapping of the notes in an octave based on the musical mode +#.TRANS: a numeric mapping of the notes in an octave based on the musical mode +msgid "nth modal pitch" msgstr "" -#: js/DictBlocks.js:129 -msgid "The Dictionary block returns a dictionary." +#: js/blocks/PitchBlocks.js:1706 +msgid "n^th Modal Pitch takes the pattern of pitches in semitones for a mode and makes each point a degree of the mode," msgstr "" -#: js/DictBlocks.js:197 -#: js/DictBlocks.js:339 -msgid "The Get-dict block returns a value in the dictionary for a specified key." +#: js/blocks/PitchBlocks.js:1708 +msgid "starting from 1 and regardless of tonal framework (i.e. not always 8 notes in the octave)" msgstr "" -#: js/DictBlocks.js:212 -#: js/DictBlocks.js:354 -#.TRANS: retrieve a value from the dictionary with a given key -msgid "get value" +#: js/blocks/PitchBlocks.js:1749 +msgid "N^th Modal Pitch takes a number as an input as the n^th degree for the given mode. 0 is the first position, 1 is the second, -1 is the note before the first etc." msgstr "" -#: js/DictBlocks.js:215 -#: js/DictBlocks.js:216 -#: js/DictBlocks.js:289 -#: js/DictBlocks.js:290 -#: js/DictBlocks.js:357 -#: js/DictBlocks.js:430 -#: js/DictBlocks.js:431 -msgid "key2" +#: js/blocks/PitchBlocks.js:1751 +msgid "The pitches change according to the mode specified without any need for respellings." msgstr "" -#: js/DictBlocks.js:271 -#: js/DictBlocks.js:411 -msgid "The Set-dict block sets a value in the dictionary for a specified key." +#: js/blocks/PitchBlocks.js:1790 +msgid "Scale Degree is a common convention in music. Scale Degree offers seven possible positions in the scale (1-7) and can be modified via accidentals." msgstr "" -#: js/DictBlocks.js:286 -#: js/DictBlocks.js:427 -#.TRANS: set a value in the dictionary for a given key -msgid "set value" +#: js/blocks/PitchBlocks.js:1792 +msgid "Scale Degree 1 is always the first pitch in a given scale, regardless of octave." msgstr "" -#: js/ExtrasBlocks.js:33 -msgid "fraction" +#: js/blocks/PitchBlocks.js:1814 +#.TRANS: step some number of notes in current musical scale +msgid "scalar step" msgstr "" -#: js/ExtrasBlocks.js:36 -msgid "Convert a float to a fraction" +#: js/blocks/PitchBlocks.js:1819 +msgid "The Scalar Step block (in combination with a Number block) will play the next pitch in a scale," msgstr "" -#: js/ExtrasBlocks.js:93 -msgid "save as ABC" +#: js/blocks/PitchBlocks.js:1821 +msgid "eg if the last note played was sol, Scalar Step 1 will play la." msgstr "" -#: js/ExtrasBlocks.js:96 -#: js/ExtrasBlocks.js:132 -#: js/ExtrasBlocks.js:168 -msgid "title" +#: js/blocks/PitchBlocks.js:1857 +msgid "The Pitch block specifies the pitch name and octave of a note that together determine the frequency of the note." msgstr "" -#: js/ExtrasBlocks.js:129 -msgid "save as Lilypond" +#: js/blocks/ProgramBlocks.js:33 +msgid "The Load-heap-from-app block loads the heap from a web page." msgstr "" -#: js/ExtrasBlocks.js:165 -msgid "save as SVG" +#: js/blocks/ProgramBlocks.js:44 +#.TRANS: load the heap contents from a URL +msgid "load heap from App" msgstr "" -#: js/ExtrasBlocks.js:216 -msgid "no background" +#: js/blocks/ProgramBlocks.js:95 +msgid "Error parsing JSON data:" msgstr "" -#: js/ExtrasBlocks.js:219 -msgid "The No background block eliminates the background from the saved SVG output." +#: js/blocks/ProgramBlocks.js:100 +msgid "404: Page not found" msgstr "" -#: js/ExtrasBlocks.js:247 -msgid "show blocks" +#: js/blocks/ProgramBlocks.js:133 +msgid "The Save-heap-to-app block saves the heap to a web page." msgstr "" -#: js/ExtrasBlocks.js:249 -msgid "The Show blocks block shows the blocks." +#: js/blocks/ProgramBlocks.js:144 +#.TRANS: save the heap contents to a URL +msgid "save heap to App" msgstr "" -#: js/ExtrasBlocks.js:274 -msgid "hide blocks" +#: js/blocks/ProgramBlocks.js:189 +msgid "Cannot find a valid heap for" msgstr "" -#: js/ExtrasBlocks.js:276 -msgid "The Hide blocks block hides the blocks." +#: js/blocks/ProgramBlocks.js:206 +msgid "The Load-heap block loads the heap from a file." msgstr "" -#: js/ExtrasBlocks.js:305 -#: js/ExtrasBlocks.js:335 -msgid "The Space block is used to add space between blocks." +#: js/blocks/ProgramBlocks.js:217 +#.TRANS: load the heap from a file +msgid "load heap" msgstr "" -#: js/ExtrasBlocks.js:373 -msgid "wait" +#: js/blocks/ProgramBlocks.js:270 +msgid "The file you selected does not contain a valid heap." msgstr "" -#: js/ExtrasBlocks.js:376 -msgid "The Wait block pauses the program for a specified number of seconds." +#: js/blocks/ProgramBlocks.js:275 +msgid "The loadHeap block needs a loadFile block." msgstr "" -#: js/ExtrasBlocks.js:430 -#: plugins/facebook.rtp:30 -msgid "comment" +#: js/blocks/ProgramBlocks.js:291 +msgid "The Set-heap block loads the heap." msgstr "" -#: js/ExtrasBlocks.js:466 -msgid "print" +#: js/blocks/ProgramBlocks.js:340 +msgid "The block you selected does not contain a valid heap." msgstr "" -#: js/ExtrasBlocks.js:473 -msgid "The Print block displays text at the top of the screen." +#: js/blocks/ProgramBlocks.js:343 +msgid "The Set heap block needs a heap." msgstr "" -#: js/ExtrasBlocks.js:579 -msgid "display grid" +#: js/blocks/ProgramBlocks.js:360 +msgid "The Load-dictionary block loads a dictionary from a file." msgstr "" -#: js/ExtrasBlocks.js:584 -msgid "The Display Grid Block changes the grid type" +#: js/blocks/ProgramBlocks.js:372 +#.TRANS: load a dictionary from a file +msgid "load dictionary" msgstr "" -#: js/ExtrasBlocks.js:686 -#: js/ExtrasBlocks.js:705 -#: js/ExtrasBlocks.js:728 -#: js/ExtrasBlocks.js:751 -#: js/ExtrasBlocks.js:769 -#: js/ExtrasBlocks.js:788 -#: js/ExtrasBlocks.js:807 -#: js/ExtrasBlocks.js:826 -msgid "unknown" +#: js/blocks/ProgramBlocks.js:390 +#: js/blocks/ProgramBlocks.js:658 +#: js/blocks/ToneBlocks.js:1025 +msgid "file" msgstr "" -#: js/SensorsBlocks.js:36 -msgid "The Input block prompts for keyboard input." +#: js/blocks/ProgramBlocks.js:444 +msgid "The file you selected does not contain a valid dictionary." msgstr "" -#: js/SensorsBlocks.js:46 -msgid "input" +#: js/blocks/ProgramBlocks.js:449 +msgid "The load dictionary block needs a load file block." msgstr "" -#: js/SensorsBlocks.js:64 -msgid "Input a value" +#: js/blocks/ProgramBlocks.js:466 +msgid "The Set-dictionary block loads a dictionary." msgstr "" -#: js/SensorsBlocks.js:126 -msgid "input value" +#: js/blocks/ProgramBlocks.js:477 +#.TRANS: load a dictionary from a JSON +msgid "set dictionary" msgstr "" -#: js/SensorsBlocks.js:131 -msgid "The Input-value block stores the input." +#: js/blocks/ProgramBlocks.js:546 +msgid "The block you selected does not contain a valid dictionary." msgstr "" -#: js/SensorsBlocks.js:238 -msgid "loudness" +#: js/blocks/ProgramBlocks.js:550 +msgid "The set dictionary block needs a dictionary." msgstr "" -#: js/SensorsBlocks.js:245 -msgid "The Loudness block returns the volume detected by the microphone." +#: js/blocks/ProgramBlocks.js:567 +msgid "The Save-heap block saves the heap to a file." msgstr "" -#: js/SensorsBlocks.js:300 -msgid "click" +#: js/blocks/ProgramBlocks.js:578 +#.TRANS: save the heap to a file +msgid "save heap" msgstr "" -#: js/SensorsBlocks.js:306 -msgid "The Click block triggers an event if a mouse has been clicked." +#: js/blocks/ProgramBlocks.js:629 +msgid "The Save-dictionary block saves a dictionary to a file." msgstr "" -#: js/SensorsBlocks.js:313 -msgid "The Click block triggers an event if a turtle has been clicked." +#: js/blocks/ProgramBlocks.js:640 +#.TRANS: save a dictionary to a file +msgid "save dictionary" msgstr "" -#: js/SensorsBlocks.js:342 -msgid "cursor over" +#: js/blocks/ProgramBlocks.js:720 +msgid "The Open palette block opens a palette." msgstr "" -#: js/SensorsBlocks.js:387 -msgid "cursor out" +#: js/blocks/ProgramBlocks.js:727 +msgid "open palette" msgstr "" -#: js/SensorsBlocks.js:433 -msgid "cursor button down" +#: js/blocks/ProgramBlocks.js:785 +msgid "The Delete block block removes a block." msgstr "" -#: js/SensorsBlocks.js:477 -msgid "cursor button up" +#: js/blocks/ProgramBlocks.js:797 +#.TRANS: Move this block to the trash. +msgid "delete block" msgstr "" -#: js/SensorsBlocks.js:638 -msgid "The Get red block returns the red component of the pixel under the mouse." +#: js/blocks/ProgramBlocks.js:861 +msgid "The Move block block moves a block." msgstr "" -#: js/SensorsBlocks.js:644 -msgid "The Get red block returns the red component of the pixel under the turtle." +#: js/blocks/ProgramBlocks.js:869 +#.TRANS: Move the position of a block on the screen. +msgid "move block" msgstr "" -#: js/SensorsBlocks.js:685 -#: plugins/rodi.rtp:216 -msgid "pixel color" +#: js/blocks/ProgramBlocks.js:881 +#: js/blocks/ProgramBlocks.js:1048 +msgid "block number" msgstr "" -#: js/SensorsBlocks.js:690 -msgid "The Get pixel block returns the color of the pixel under the mouse." +#: js/blocks/ProgramBlocks.js:935 +#.TRANS: Run program beginning at this block. +msgid "run block" msgstr "" -#: js/SensorsBlocks.js:696 -msgid "The Get pixel block returns the color of the pixel under the turtle." +#: js/blocks/ProgramBlocks.js:1025 +msgid "The Dock block block connections two blocks." msgstr "" -#: js/SensorsBlocks.js:758 -msgid "time" +#: js/blocks/ProgramBlocks.js:1036 +#.TRANS: We can connect a block to another block. +msgid "connect blocks" msgstr "" -#: js/SensorsBlocks.js:804 -msgid "cursor y" +#: js/blocks/ProgramBlocks.js:1048 +msgid "target block" msgstr "" -#: js/SensorsBlocks.js:809 -msgid "The Cursor Y block returns the vertical position of the mouse." +#: js/blocks/ProgramBlocks.js:1048 +msgid "connection number" msgstr "" -#: js/SensorsBlocks.js:845 -msgid "cursor x" +#: js/blocks/ProgramBlocks.js:1140 +msgid "The Make block block creates a new block." msgstr "" -#: js/SensorsBlocks.js:850 -msgid "The Cursor X block returns the horizontal position of the mouse." +#: js/blocks/ProgramBlocks.js:1152 +#.TRANS: Create a new block +msgid "make block" msgstr "" -#: js/SensorsBlocks.js:886 -msgid "mouse button" +#: js/blocks/ProgramBlocks.js:1285 +msgid "Cannot find block" msgstr "" -#: js/SensorsBlocks.js:888 -msgid "The Mouse-button block returns True if the mouse button is pressed." +#: js/blocks/ProgramBlocks.js:1304 +#: js/blocks/ProgramBlocks.js:1313 +msgid "Warning: block argument type mismatch" msgstr "" -#: js/SensorsBlocks.js:934 -msgid "to ASCII" +#: js/blocks/ProgramBlocks.js:1347 +msgid "The Open project block is used to open a project from a web page." msgstr "" -#: js/SensorsBlocks.js:938 -msgid "The To ASCII block converts numbers to letters." +#: js/blocks/ProgramBlocks.js:1357 +msgid "open project" msgstr "" -#: js/SensorsBlocks.js:1005 -msgid "The Keyboard block returns computer keyboard input." +#: js/blocks/ProgramBlocks.js:1410 +msgid "Please enter a valid URL." msgstr "" -#: js/IntervalsActions.js:216 -msgid "Adding missing pitch number 0." +#: js/blocks/ToneBlocks.js:34 +msgid "oscillator" msgstr "" -#: js/IntervalsActions.js:224 -msgid "Ignoring pitch numbers less than zero or greater than eleven." +#: js/blocks/ToneBlocks.js:42 +#: js/blocks/WidgetBlocks.js:179 +#: js/widgets/timbre.js:1558 +#: js/widgets/timbre.js:1808 +#.TRANS: there are different types (sine, triangle, square...) of oscillators. +#.TRANS: type of filter, e.g., lowpass, highpass, etc. +msgid "type" msgstr "" -#: js/IntervalsActions.js:230 -msgid "Ignoring duplicate pitch numbers." +#: js/blocks/ToneBlocks.js:44 +#: js/widgets/timbre.js:1562 +#.TRANS: Partials refers to the number of sine waves combined into the sound. +msgid "partials" msgstr "" -#: js/PitchActions.js:88 -msgid "The Scalar Step Block must be used inside of a Note Block." +#: js/blocks/ToneBlocks.js:76 +msgid "You are adding multiple oscillator blocks." msgstr "" -#: js/PitchActions.js:107 -msgid "The Scalar Step Block must be preceded by a Pitch Block." +#: js/blocks/ToneBlocks.js:144 +#: js/widgets/timbre.js:1225 +#.TRANS: a duo synthesizer combines a synth with a sequencer +msgid "duo synth" msgstr "" -#: js/DrumActions.js:231 -msgid "Noise Block: Did you mean to use a Note block?" +#: js/blocks/ToneBlocks.js:149 +msgid "The Duo synth block is a duo-frequency modulator used to define a timbre." msgstr "" -#: js/MeterActions.js:101 -#: js/MeterActions.js:139 -msgid "beats per minute must be greater than" +#: js/blocks/ToneBlocks.js:157 +#: js/widgets/timbre.js:1476 +msgid "vibrato rate" msgstr "" -#: js/MeterActions.js:111 -#: js/MeterActions.js:149 -msgid "maximum" +#: js/blocks/ToneBlocks.js:157 +msgid "vibrato intensity" msgstr "" -#: js/MeterActions.js:117 -#: js/MeterActions.js:155 -msgid "beats per minute is" +#: js/blocks/ToneBlocks.js:185 +#: js/widgets/timbre.js:1221 +#.TRANS: AM (amplitude modulation) synthesizer +msgid "AM synth" msgstr "" -#: js/ToneActions.js:134 -msgid "Vibrato intensity must be between 1 and 100." +#: js/blocks/ToneBlocks.js:189 +msgid "The AM synth block is an amplitude modulator used to define a timbre." msgstr "" -#: js/ToneActions.js:139 -msgid "Vibrato rate must be greater than 0." +#: js/blocks/ToneBlocks.js:224 +#: js/widgets/timbre.js:1223 +#.TRANS: FM (frequency modulation) synthesizer +msgid "FM synth" msgstr "" -#: js/ToneActions.js:192 -#: js/ToneActions.js:265 -#.TRANS: Depth is the intesity of the tremolo or chorus effect. -msgid "Depth is out of range." +#: js/blocks/ToneBlocks.js:228 +msgid "The FM synth block is a frequency modulator used to define a timbre." msgstr "" -#: js/ToneActions.js:301 -msgid "Distortion must be from 0 to 100." +#: js/blocks/ToneBlocks.js:262 +msgid "partial" msgstr "" -#: js/ToneActions.js:332 -#.TRANS: partials components in a harmonic series -msgid "Partial must be greater than or equal to 0." +#: js/blocks/ToneBlocks.js:265 +msgid "The Partial block is used to specify a weight for a specific partial harmonic." msgstr "" -#: js/ToneActions.js:378 -#: js/ToneActions.js:417 -#: js/ToneActions.js:456 -#: js/timbre.js:782 -msgid "Unable to use synth due to existing oscillator" +#: js/blocks/ToneBlocks.js:284 +#.TRANS: partials are weighted components in a harmonic series +msgid "Partial weight must be between 0 and 1." msgstr "" -#: js/ToneActions.js:388 -#: js/ToneActions.js:427 -msgid "The input cannot be negative." +#: js/blocks/ToneBlocks.js:297 +#.TRANS: partials are weighted components in a harmonic series +msgid "Partial block should be used inside of a Weighted-partials block." msgstr "" -#: js/DictActions.js:75 -#: js/DictActions.js:153 -#: js/DictActions.js:188 -msgid "font" +#: js/blocks/ToneBlocks.js:325 +#.TRANS: partials are weighted components in a harmonic series +msgid "weighted partials" msgstr "" -#: js/musicutils.js:363 -#: js/musicutils.js:471 -#: js/pitchdrummatrix.js:151 -#: js/musickeyboard.js:2563 -msgid "rest" +#: js/blocks/ToneBlocks.js:383 +msgid "The Harmonic block will add harmonics to the contained notes." msgstr "" -#: js/musicutils.js:565 -#.TRANS: ordinal number. Please keep exactly one space between each number. -msgid "1st 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th" +#: js/blocks/ToneBlocks.js:390 +#.TRANS: A harmonic is an overtone. +msgid "harmonic" msgstr "" -#: js/musicutils.js:629 -#: js/musicutils.js:812 -#: js/musicutils.js:911 -#.TRANS: augmented is a music term related to intervals -msgid "augmented" +#: js/blocks/ToneBlocks.js:431 +msgid "The Distortion block adds distortion to the pitch." msgstr "" -#: js/musicutils.js:631 -#: js/musicutils.js:813 -#: js/musicutils.js:910 -#.TRANS: diminished is a music term related to intervals and mode -msgid "diminished" +#: js/blocks/ToneBlocks.js:438 +#: js/widgets/timbre.js:2100 +#.TRANS: distortion is an alteration in the sound +msgid "distortion" msgstr "" -#: js/musicutils.js:639 -#.TRANS: twelve semi-tone scale for music -msgid "chromatic" +#: js/blocks/ToneBlocks.js:487 +msgid "The Tremolo block adds a wavering effect." msgstr "" -#: js/musicutils.js:640 -msgid "algerian" +#: js/blocks/ToneBlocks.js:495 +#: js/widgets/timbre.js:2092 +#.TRANS: a wavering effect in a musical tone +msgid "tremolo" msgstr "" -#: js/musicutils.js:641 -msgid "spanish" +#: js/blocks/ToneBlocks.js:500 +#: js/blocks/ToneBlocks.js:569 +#: js/blocks/ToneBlocks.js:630 +#: js/blocks/ToneBlocks.js:689 +#: js/widgets/timbre.js:2134 +#: js/widgets/timbre.js:2222 +#: js/widgets/timbre.js:2317 +#: js/widgets/timbre.js:2419 +#.TRANS: rate at which tremolo wavers +msgid "rate" msgstr "" -#: js/musicutils.js:643 -#.TRANS: modal scale in music -msgid "octatonic" +#: js/blocks/ToneBlocks.js:502 +#: js/blocks/ToneBlocks.js:630 +#: js/widgets/timbre.js:2137 +#: js/widgets/timbre.js:2328 +#.TRANS: amplitude of tremolo waver +msgid "depth" msgstr "" -#: js/musicutils.js:645 -#.TRANS: harmonic major scale in music -msgid "harmonic major" +#: js/blocks/ToneBlocks.js:559 +msgid "The Phaser block adds a sweeping sound." msgstr "" -#: js/musicutils.js:647 -#.TRANS: natural minor scales in music -msgid "natural minor" +#: js/blocks/ToneBlocks.js:566 +#: js/widgets/timbre.js:2098 +#.TRANS: alter the phase of the sound +msgid "phaser" msgstr "" -#: js/musicutils.js:649 -#.TRANS: harmonic minor scale in music -msgid "harmonic minor" +#: js/blocks/ToneBlocks.js:569 +#: js/turtleactions/IntervalsActions.js:114 +#: js/widgets/timbre.js:2422 +msgid "octaves" msgstr "" -#: js/musicutils.js:651 -#.TRANS: melodic minor scale in music -msgid "melodic minor" +#: js/blocks/ToneBlocks.js:569 +#: js/widgets/timbre.js:2425 +msgid "base frequency" msgstr "" -#: js/musicutils.js:655 -#.TRANS: modal scale for music -msgid "dorian" +#: js/blocks/ToneBlocks.js:619 +msgid "The Chorus block adds a chorus effect." msgstr "" -#: js/musicutils.js:657 -#.TRANS: modal scale for music -msgid "phrygian" +#: js/blocks/ToneBlocks.js:627 +#: js/widgets/timbre.js:2096 +#.TRANS: musical effect to simulate a choral sound +msgid "chorus" msgstr "" -#: js/musicutils.js:659 -#.TRANS: modal scale for music -msgid "lydian" +#: js/blocks/ToneBlocks.js:630 +msgid "delay" msgstr "" -#: js/musicutils.js:661 -#.TRANS: modal scale for music -msgid "mixolydian" +#: js/blocks/ToneBlocks.js:678 +msgid "The Vibrato block adds a rapid, slight variation in pitch." msgstr "" -#: js/musicutils.js:665 -#.TRANS: modal scale for music -msgid "locrian" +#: js/blocks/ToneBlocks.js:686 +#: js/widgets/timbre.js:2094 +#.TRANS: a rapid, slight variation in pitch +msgid "vibrato" msgstr "" -#: js/musicutils.js:667 -#.TRANS: minor jazz scale for music -msgid "jazz minor" +#: js/blocks/ToneBlocks.js:689 +#: js/widgets/timbre.js:2221 +msgid "intensity" msgstr "" -#: js/musicutils.js:669 -#.TRANS: bebop scale for music -msgid "bebop" +#: js/blocks/ToneBlocks.js:733 +#.TRANS: select synthesizer +msgid "set synth" msgstr "" -#: js/musicutils.js:670 -msgid "arabic" +#: js/blocks/ToneBlocks.js:804 +msgid "synth name" msgstr "" -#: js/musicutils.js:671 -msgid "byzantine" +#: js/blocks/ToneBlocks.js:842 +msgid "set default instrument" msgstr "" -#: js/musicutils.js:673 -#.TRANS: musical scale for music by Verdi -msgid "enigmatic" +#: js/blocks/ToneBlocks.js:895 +#: js/blocks/ToneBlocks.js:943 +#.TRANS: set the characteristics of a custom instrument +msgid "set instrument" msgstr "" -#: js/musicutils.js:674 -msgid "ethiopian" +#: js/blocks/ToneBlocks.js:898 +#: js/blocks/ToneBlocks.js:926 +#: js/blocks/ToneBlocks.js:932 +msgid "The Set instrument block selects a voice for the synthesizer," msgstr "" -#: js/musicutils.js:676 -#.TRANS: Ethiopic scale for music -msgid "geez" +#: js/blocks/ToneBlocks.js:900 +#: js/blocks/ToneBlocks.js:934 +msgid "eg guitar piano violin or cello." msgstr "" -#: js/musicutils.js:677 -msgid "hindu" +#: js/blocks/ToneBlocks.js:1015 +msgid "Import a sound file to use as an instrument and set its pitch center." msgstr "" -#: js/musicutils.js:678 -msgid "hungarian" +#: js/blocks/ToneBlocks.js:1110 +msgid "Upload a sound file to connect with the sample block." msgstr "" -#: js/musicutils.js:680 -#.TRANS: minor Romanian scale for music -msgid "romanian minor" +#: js/blocks/VolumeBlocks.js:35 +msgid "synth volume" msgstr "" -#: js/musicutils.js:681 -msgid "spanish gypsy" +#: js/blocks/VolumeBlocks.js:39 +msgid "The Synth volume block returns the current volume of the current synthesizer." msgstr "" -#: js/musicutils.js:683 -#.TRANS: musical scale for Mid-Eastern music -msgid "maqam" +#: js/blocks/VolumeBlocks.js:105 +msgid "master volume" msgstr "" -#: js/musicutils.js:685 -#.TRANS: minor blues scale for music -msgid "minor blues" +#: js/blocks/VolumeBlocks.js:109 +msgid "The Master volume block returns the master volume." msgstr "" -#: js/musicutils.js:687 -#.TRANS: major blues scale for music -msgid "major blues" +#: js/blocks/VolumeBlocks.js:355 +#: js/blocks/VolumeBlocks.js:524 +msgid "set synth volume" msgstr "" -#: js/musicutils.js:688 -msgid "whole tone" +#: js/blocks/VolumeBlocks.js:362 +#: js/blocks/VolumeBlocks.js:545 +msgid "synth" msgstr "" -#: js/musicutils.js:690 -#.TRANS: pentatonic is a general term that means "five note scale". This scale is typically known as "minor pentatonic" -msgid "minor pentatonic" +#: js/blocks/VolumeBlocks.js:403 +#: js/blocks/VolumeBlocks.js:577 +#: js/blocks/VolumeBlocks.js:740 +#: js/turtleactions/VolumeActions.js:173 +msgid "Setting volume to 0." msgstr "" -#: js/musicutils.js:692 -#.TRANS: pentatonic is a general term that means "five note scale". This scale is typically known as "major pentatonic" -msgid "major pentatonic" +#: js/blocks/VolumeBlocks.js:440 +msgid "Synth not found" msgstr "" -#: js/musicutils.js:693 -msgid "chinese" +#: js/blocks/VolumeBlocks.js:494 +msgid "set drum volume" msgstr "" -#: js/musicutils.js:694 -msgid "egyptian" +#: js/blocks/VolumeBlocks.js:530 +msgid "The Set synth volume block will change the volume of a particular synth," msgstr "" -#: js/musicutils.js:696 -#.TRANS: https://en.wikipedia.org/wiki/Hirajoshi_scale NOTE: There are three different versions of this scale -msgid "hirajoshi" +#: js/blocks/VolumeBlocks.js:532 +msgid "eg guitar violin snare drum etc." msgstr "" -#: js/musicutils.js:697 -msgid "Japan" +#: js/blocks/VolumeBlocks.js:534 +msgid "The default volume is 50." msgstr "" -#: js/musicutils.js:699 -#.TRANS: https://en.wikipedia.org/wiki/In_scale and https://en.wikipedia.org/wiki/Sakura_Sakura -msgid "in" +#: js/blocks/VolumeBlocks.js:536 +msgid "The range is 0 for silence to 100 for full volume." msgstr "" -#: js/musicutils.js:701 -#.TRANS: https://en.wikipedia.org/wiki/Miny%C5%8D_scale -msgid "minyo" +#: js/blocks/VolumeBlocks.js:597 +msgid "set panning" msgstr "" -#: js/musicutils.js:703 -#.TRANS: Italian mathematician -msgid "fibonacci" +#: js/blocks/VolumeBlocks.js:603 +msgid "The Set Panning block sets the panning for all synthesizers." msgstr "" -#: js/musicutils.js:708 -#: js/musicutils.js:1106 -#.TRANS: lowpass filter -msgid "lowpass" +#: js/blocks/VolumeBlocks.js:625 +msgid "Warning: Sound is coming out from only the left or right side." msgstr "" -#: js/musicutils.js:710 -#: js/musicutils.js:1107 -#.TRANS: bandpass filter -msgid "bandpass" +#: js/blocks/VolumeBlocks.js:647 +#: js/blocks/VolumeBlocks.js:695 +msgid "set master volume" msgstr "" -#: js/musicutils.js:712 -#: js/musicutils.js:1108 -#.TRANS: high-shelf filter -msgid "highshelf" +#: js/blocks/VolumeBlocks.js:653 +msgid "The Set master volume block sets the volume for all synthesizers." msgstr "" -#: js/musicutils.js:714 -#: js/musicutils.js:1109 -#.TRANS: low-shelf filter -msgid "lowshelf" +#: js/blocks/VolumeBlocks.js:784 +msgid "The Set relative volume block changes the volume of the contained notes." msgstr "" -#: js/musicutils.js:716 -#: js/musicutils.js:1110 -#.TRANS: notch-shelf filter -msgid "notch" +#: js/blocks/VolumeBlocks.js:791 +msgid "set relative volume" msgstr "" -#: js/musicutils.js:718 -#: js/musicutils.js:1111 -#.TRANS: all-pass filter -msgid "allpass" +#: js/blocks/VolumeBlocks.js:857 +msgid "decrescendo" msgstr "" -#: js/musicutils.js:720 -#: js/musicutils.js:1112 -#.TRANS: peaking filter -msgid "peaking" +#: js/blocks/VolumeBlocks.js:921 +msgid "crescendo" msgstr "" -#: js/musicutils.js:731 -#: js/synthutils.js:58 -#.TRANS: musical instrument -msgid "violin" +#: js/blocks/WidgetBlocks.js:81 +#.TRANS: sound envelope (ADSR) +msgid "envelope" msgstr "" -#: js/musicutils.js:732 -#: js/synthutils.js:60 -#.TRANS: viola musical instrument -msgid "viola" +#: js/blocks/WidgetBlocks.js:89 +#.TRANS: Attack time is the time taken for initial run-up of level from nil to peak, beginning when the key is first pressed. +msgid "attack" msgstr "" -#: js/musicutils.js:733 -#: js/synthutils.js:98 -#.TRANS: xylophone musical instrument -msgid "xylophone" +#: js/blocks/WidgetBlocks.js:91 +#.TRANS: Decay time is the time taken for the subsequent run down from the attack level to the designated sustain level. +msgid "decay" msgstr "" -#: js/musicutils.js:734 -#: js/synthutils.js:120 -#.TRANS: vibraphone musical instrument -msgid "vibraphone" +#: js/blocks/WidgetBlocks.js:93 +#.TRANS: Sustain level is the level during the main sequence of the sound's duration, until the key is released. +msgid "sustain" msgstr "" -#: js/musicutils.js:735 -#: js/synthutils.js:62 -#.TRANS: musical instrument -msgid "cello" +#: js/blocks/WidgetBlocks.js:95 +#.TRANS: Release time is the time taken for the level to decay from the sustain level to zero after the key is released. +msgid "release" msgstr "" -#: js/musicutils.js:737 -#: js/synthutils.js:66 -#.TRANS: viola musical instrument -msgid "double bass" +#: js/blocks/WidgetBlocks.js:113 +msgid "Attack value should be from 0 to 100." msgstr "" -#: js/musicutils.js:738 -#: js/synthutils.js:68 -#: js/rhythmruler.js:2119 -#.TRANS: musical instrument -msgid "guitar" +#: js/blocks/WidgetBlocks.js:116 +msgid "Decay value should be from 0 to 100." msgstr "" -#: js/musicutils.js:739 -#: js/synthutils.js:70 -#.TRANS: musical instrument -msgid "acoustic guitar" +#: js/blocks/WidgetBlocks.js:119 +msgid "Sustain value should be from 0 to 100." msgstr "" -#: js/musicutils.js:740 -#: js/synthutils.js:72 -#.TRANS: musical instrument -msgid "flute" +#: js/blocks/WidgetBlocks.js:122 +msgid "Release value should be from 0-100." msgstr "" -#: js/musicutils.js:741 -#: js/synthutils.js:74 -#.TRANS: musical instrument -msgid "clarinet" +#: js/blocks/WidgetBlocks.js:140 +msgid "You are adding multiple envelope blocks." msgstr "" -#: js/musicutils.js:742 -#: js/synthutils.js:76 -#.TRANS: musical instrument -msgid "saxophone" +#: js/blocks/WidgetBlocks.js:171 +#.TRANS: a filter removes some unwanted components from a signal +msgid "filter" msgstr "" -#: js/musicutils.js:743 -#: js/synthutils.js:78 -#.TRANS: musical instrument -msgid "tuba" +#: js/blocks/WidgetBlocks.js:181 +#: js/widgets/timbre.js:1818 +#.TRANS: rolloff is the steepness of a change in frequency. +msgid "rolloff" msgstr "" -#: js/musicutils.js:744 -#: js/synthutils.js:80 -#.TRANS: musical instrument -msgid "trumpet" +#: js/blocks/WidgetBlocks.js:213 +#.TRANS: rolloff is the steepness of a change in frequency. +msgid "Rolloff value should be either -12, -24, -48, or -96 decibels/octave." msgstr "" -#: js/musicutils.js:745 -#: js/synthutils.js:82 -#.TRANS: musical instrument -msgid "oboe" +#: js/blocks/WidgetBlocks.js:252 +msgid "The Temperament tool is used to define custom tuning." msgstr "" -#: js/musicutils.js:746 -#: js/synthutils.js:84 -#.TRANS: musical instrument -msgid "trombone" +#: js/blocks/WidgetBlocks.js:332 +#: js/blocks/WidgetBlocks.js:1573 +#: js/widgets/sampler.js:547 +msgid "Upload a sample and adjust its pitch center." msgstr "" -#: js/musicutils.js:747 -#: js/synthutils.js:100 -#.TRANS: polytone synthesizer -msgid "electronic synth" +#: js/blocks/WidgetBlocks.js:339 +#.TRANS: the speed at music is should be played. +msgid "sampler" msgstr "" -#: js/musicutils.js:748 -#: js/synthutils.js:102 -#.TRANS: simple monotone synthesizer -msgid "simple 1" +#: js/blocks/WidgetBlocks.js:517 +msgid "The Meter block opens a tool to select strong beats for the meter." msgstr "" -#: js/musicutils.js:749 -msgid "simple 2" +#: js/blocks/WidgetBlocks.js:573 +msgid "The oscilloscope block opens a tool to visualize waveforms." msgstr "" -#: js/musicutils.js:750 -msgid "simple 3" +#: js/blocks/WidgetBlocks.js:578 +msgid "oscilloscope" msgstr "" -#: js/musicutils.js:751 -msgid "simple 4" +#: js/blocks/WidgetBlocks.js:645 +msgid "The Custom mode block opens a tool to explore musical mode (the spacing of the notes in a scale)." msgstr "" -#: js/musicutils.js:753 -#: js/synthutils.js:49 -#.TRANS: brown noise synthesizer -msgid "brown noise" +#: js/blocks/WidgetBlocks.js:651 +#.TRANS: musical mode is the pattern of half-steps in an octave, e.g., Major or Minor modes +msgid "custom mode" msgstr "" -#: js/musicutils.js:754 -#: js/synthutils.js:51 -#.TRANS: pink noise synthesizer -msgid "pink noise" +#: js/blocks/WidgetBlocks.js:700 +msgid "The Tempo block opens a metronome to visualize the beat." msgstr "" -#: js/musicutils.js:756 -#: js/synthutils.js:127 -#: js/rhythmruler.js:1670 -#: js/rhythmruler.js:1928 -#.TRANS: musical instrument -msgid "snare drum" +#: js/blocks/WidgetBlocks.js:762 +msgid "The Arpeggio Widget is used to compose chord sequences." msgstr "" -#: js/musicutils.js:757 -#: js/synthutils.js:129 -#.TRANS: musical instrument -msgid "kick drum" +#: js/blocks/WidgetBlocks.js:837 +msgid "The Pitch drum matrix is used to map pitches to drum sounds." msgstr "" -#: js/musicutils.js:758 -#: js/synthutils.js:131 -#.TRANS: musical instrument -msgid "tom tom" +#: js/blocks/WidgetBlocks.js:842 +#.TRANS: makes a mapping between pitches and drum sounds +msgid "pitch-drum mapper" msgstr "" -#: js/musicutils.js:759 -#: js/synthutils.js:133 -#.TRANS: musical instrument -msgid "floor tom" +#: js/blocks/WidgetBlocks.js:891 +msgid "You must have at least one pitch block and one drum block in the matrix." msgstr "" -#: js/musicutils.js:760 -#: js/synthutils.js:135 -#.TRANS: musical instrument -msgid "bass drum" +#: js/blocks/WidgetBlocks.js:920 +msgid "The Pitch slider tool to is used to generate pitches at selected frequencies." msgstr "" -#: js/musicutils.js:761 -#: js/synthutils.js:137 -#.TRANS: a drum made from an inverted cup -msgid "cup drum" +#: js/blocks/WidgetBlocks.js:925 +#.TRANS: widget to generate pitches using a slider +msgid "pitch slider" msgstr "" -#: js/musicutils.js:762 -#: js/synthutils.js:139 -#.TRANS: musical instrument -msgid "darbuka drum" +#: js/blocks/WidgetBlocks.js:977 +msgid "chromatic keyboard" msgstr "" -#: js/musicutils.js:763 -#: js/synthutils.js:143 -#.TRANS: musical instrument -msgid "hi hat" +#: js/blocks/WidgetBlocks.js:1011 +#: js/blocks/WidgetBlocks.js:1077 +#.TRANS: widget to generate pitches using a slider +msgid "music keyboard" msgstr "" -#: js/musicutils.js:764 -#: js/synthutils.js:145 -#.TRANS: a small metal bell -msgid "ride bell" +#: js/blocks/WidgetBlocks.js:1062 +#: js/blocks/WidgetBlocks.js:1069 +msgid "The Music keyboard block opens a piano keyboard that can be used to create notes." msgstr "" -#: js/musicutils.js:765 -#: js/synthutils.js:147 -#.TRANS: musical instrument -msgid "cow bell" +#: js/blocks/WidgetBlocks.js:1128 +msgid "The Pitch staircase tool to is used to generate pitches from a given ratio." msgstr "" -#: js/musicutils.js:766 -msgid "japanese drum" +#: js/blocks/WidgetBlocks.js:1135 +#.TRANS: generate a progressive sequence of pitches +msgid "pitch staircase" msgstr "" -#: js/musicutils.js:767 -#: js/synthutils.js:153 -#.TRANS: musical instrument -msgid "japanese bell" +#: js/blocks/WidgetBlocks.js:1222 +msgid "The Rhythm Maker block opens a tool to create drum machines." msgstr "" -#: js/musicutils.js:768 -#: js/synthutils.js:149 -#.TRANS: musical instrument -msgid "triangle bell" +#: js/blocks/WidgetBlocks.js:1291 +msgid "G major scale" msgstr "" -#: js/musicutils.js:769 -#: js/synthutils.js:151 -#.TRANS: musical instrument -msgid "finger cymbals" +#: js/blocks/WidgetBlocks.js:1326 +msgid "C major scale" msgstr "" -#: js/musicutils.js:770 -#: js/synthutils.js:155 -#.TRANS: a musically tuned set of bells -msgid "chime" +#: js/blocks/WidgetBlocks.js:1366 +msgid "The Phrase Maker block opens a tool to create musical phrases." msgstr "" -#: js/musicutils.js:771 -#: js/synthutils.js:157 -#.TRANS: a musical instrument -msgid "gong" +#: js/blocks/WidgetBlocks.js:1373 +#.TRANS: assigns pitch to a sequence of beats to generate a melody +msgid "phrase maker" msgstr "" -#: js/musicutils.js:772 -#: js/synthutils.js:159 -#.TRANS: sound effect -msgid "clang" +#: js/blocks/WidgetBlocks.js:1444 +msgid "You must have at least one pitch block and one rhythm block in the matrix." msgstr "" -#: js/musicutils.js:773 -#: js/synthutils.js:161 -#.TRANS: sound effect -msgid "crash" +#: js/blocks/WidgetBlocks.js:1503 +msgid "The Status block opens a tool for inspecting the status of Music Blocks as it is running." msgstr "" -#: js/musicutils.js:774 -#: js/synthutils.js:163 -#.TRANS: sound effect -msgid "bottle" +#: js/blocks/WidgetBlocks.js:1580 +#.TRANS: AI-generated music +msgid "aimusic" msgstr "" -#: js/musicutils.js:775 -#: js/synthutils.js:165 -#.TRANS: sound effect -msgid "clap" +#: js/turtleactions/MeterActions.js:101 +#: js/turtleactions/MeterActions.js:139 +msgid "beats per minute must be greater than" msgstr "" -#: js/musicutils.js:776 -#: js/synthutils.js:167 -#.TRANS: sound effect -msgid "slap" +#: js/turtleactions/MeterActions.js:111 +#: js/turtleactions/MeterActions.js:149 +msgid "maximum" msgstr "" -#: js/musicutils.js:777 -#: js/synthutils.js:169 -#.TRANS: sound effect -msgid "splash" +#: js/turtleactions/MeterActions.js:117 +#: js/turtleactions/MeterActions.js:155 +msgid "beats per minute is" msgstr "" -#: js/musicutils.js:778 -#: js/synthutils.js:171 -#.TRANS: sound effect -msgid "bubbles" +#: js/turtleactions/DictActions.js:75 +#: js/turtleactions/DictActions.js:142 +#: js/turtleactions/DictActions.js:172 +msgid "font" msgstr "" -#: js/musicutils.js:779 -#: js/synthutils.js:173 -#.TRANS: sound effect -msgid "raindrop" +#: js/turtleactions/DictActions.js:255 +msgid "Dictionary with this name does not exist" msgstr "" -#: js/musicutils.js:780 -#: js/synthutils.js:175 -#.TRANS: animal sound effect -msgid "cat" +#: js/turtleactions/DictActions.js:259 +msgid "Key with this name does not exist in " msgstr "" -#: js/musicutils.js:781 -#: js/synthutils.js:177 -#.TRANS: animal sound effect -msgid "cricket" +#: js/turtleactions/DrumActions.js:227 +msgid "Noise Block: Did you mean to use a Note block?" msgstr "" -#: js/musicutils.js:782 -#: js/synthutils.js:179 -#.TRANS: animal sound effect -msgid "dog" +#: js/turtleactions/IntervalsActions.js:113 +msgid "one" msgstr "" -#: js/musicutils.js:784 -#: js/synthutils.js:86 -#.TRANS: musical instrument -msgid "banjo" +#: js/turtleactions/IntervalsActions.js:113 +msgid "two" msgstr "" -#: js/musicutils.js:785 -#: js/synthutils.js:88 -#.TRANS: musical instrument -msgid "koto" +#: js/turtleactions/IntervalsActions.js:113 +msgid "three" msgstr "" -#: js/musicutils.js:786 -#: js/synthutils.js:90 -#.TRANS: musical instrument -msgid "dulcimer" +#: js/turtleactions/IntervalsActions.js:113 +msgid "four" msgstr "" -#: js/musicutils.js:787 -#: js/synthutils.js:92 -#.TRANS: musical instrument -msgid "electric guitar" +#: js/turtleactions/IntervalsActions.js:113 +msgid "five" msgstr "" -#: js/musicutils.js:788 -#: js/synthutils.js:94 -#.TRANS: musical instrument -msgid "bassoon" +#: js/turtleactions/IntervalsActions.js:113 +msgid "six" msgstr "" -#: js/musicutils.js:789 -#: js/synthutils.js:96 -#.TRANS: musical instrument -msgid "celeste" +#: js/turtleactions/IntervalsActions.js:113 +msgid "seven" msgstr "" -#: js/musicutils.js:791 -#: js/musicutils.js:1123 -#: js/musicutils.js:1131 -#: js/temperament.js:650 -#.TRANS: musical temperament -msgid "equal" +#: js/turtleactions/IntervalsActions.js:113 +msgid "eight" msgstr "" -#: js/musicutils.js:793 -#: js/musicutils.js:1125 -#: js/musicutils.js:1133 -#.TRANS: musical temperament -msgid "Pythagorean" +#: js/turtleactions/IntervalsActions.js:113 +msgid "nine" msgstr "" -#: js/musicutils.js:795 -#: js/musicutils.js:1124 -#: js/musicutils.js:1132 -#.TRANS: musical temperament -msgid "just intonation" +#: js/turtleactions/IntervalsActions.js:119 +msgid "a" msgstr "" -#: js/musicutils.js:797 -#: js/musicutils.js:1126 -#: js/musicutils.js:1127 -#: js/musicutils.js:1134 -#: js/musicutils.js:1135 -#.TRANS: musical temperament -msgid "meantone" +#: js/turtleactions/IntervalsActions.js:120 +msgid "below" msgstr "" -#: js/musicutils.js:814 -msgid "major 7th" +#: js/turtleactions/IntervalsActions.js:124 +msgid "above" msgstr "" -#: js/musicutils.js:815 -msgid "minor 7th" +#: js/turtleactions/IntervalsActions.js:131 +msgid "plus" msgstr "" -#: js/musicutils.js:816 -msgid "dominant 7th" +#: js/turtleactions/IntervalsActions.js:139 +msgid " below" msgstr "" -#: js/musicutils.js:817 -msgid "minor-major 7th" +#: js/turtleactions/IntervalsActions.js:257 +msgid "Adding missing pitch number 0." msgstr "" -#: js/musicutils.js:818 -msgid "fully-diminished 7th" +#: js/turtleactions/IntervalsActions.js:265 +msgid "Ignoring pitch numbers less than zero or greater than eleven." msgstr "" -#: js/musicutils.js:819 -msgid "half-diminished 7th" +#: js/turtleactions/IntervalsActions.js:271 +msgid "Ignoring duplicate pitch numbers." msgstr "" -#: js/musicutils.js:4379 -#: js/musicutils.js:4416 -msgid "current" +#: js/turtleactions/ToneActions.js:134 +msgid "Vibrato intensity must be between 1 and 100." msgstr "" -#: js/musicutils.js:4382 -#: js/musicutils.js:4407 -msgid "next" +#: js/turtleactions/ToneActions.js:139 +msgid "Vibrato rate must be greater than 0." msgstr "" -#: js/musicutils.js:4385 -#: js/musicutils.js:4412 -msgid "previous" +#: js/turtleactions/ToneActions.js:192 +#: js/turtleactions/ToneActions.js:265 +#.TRANS: Depth is the intesity of the tremolo or chorus effect. +msgid "Depth is out of range." msgstr "" -#: js/synthutils.js:104 -#.TRANS: simple monotone synthesizer -msgid "simple-2" +#: js/turtleactions/ToneActions.js:301 +msgid "Distortion must be from 0 to 100." msgstr "" -#: js/synthutils.js:106 -#.TRANS: simple monotone synthesizer -msgid "simple-3" +#: js/turtleactions/ToneActions.js:332 +#.TRANS: partials components in a harmonic series +msgid "Partial must be greater than or equal to 0." msgstr "" -#: js/synthutils.js:108 -#.TRANS: simple monotone synthesizer -msgid "simple-4" +#: js/turtleactions/ToneActions.js:378 +#: js/turtleactions/ToneActions.js:417 +#: js/turtleactions/ToneActions.js:456 +#: js/widgets/timbre.js:782 +msgid "Unable to use synth due to existing oscillator" msgstr "" -#: js/synthutils.js:141 -#.TRANS: musical instrument -msgid "taiko" +#: js/turtleactions/ToneActions.js:388 +#: js/turtleactions/ToneActions.js:427 +msgid "The input cannot be negative." msgstr "" -#: js/modewidget.js:86 -#: js/modewidget.js:88 -#: js/modewidget.js:642 -#: js/modewidget.js:644 -#: js/modewidget.js:712 -#: js/modewidget.js:714 -#: js/temperament.js:2078 -#: js/rhythmruler.js:189 -#: js/rhythmruler.js:1410 -#: js/rhythmruler.js:1412 -#: js/rhythmruler.js:1435 -#: js/rhythmruler.js:1437 -#: js/meterwidget.js:89 -#: js/meterwidget.js:91 +#: js/widgets/modewidget.js:86 +#: js/widgets/modewidget.js:88 +#: js/widgets/modewidget.js:642 +#: js/widgets/modewidget.js:644 +#: js/widgets/modewidget.js:712 +#: js/widgets/modewidget.js:714 +#: js/widgets/meterwidget.js:194 +#: js/widgets/meterwidget.js:196 +#: js/widgets/temperament.js:2236 +#: js/widgets/rhythmruler.js:457 +#: js/widgets/rhythmruler.js:1790 +#: js/widgets/rhythmruler.js:1792 +#: js/widgets/rhythmruler.js:1816 +#: js/widgets/rhythmruler.js:1818 msgid "Play all" msgstr "" -#: js/modewidget.js:115 -#: js/pitchstaircase.js:641 -#: js/phrasemaker.js:339 -#: js/pitchdrummatrix.js:94 -#: js/pitchslider.js:125 -#: js/temperament.js:2083 -#: js/musickeyboard.js:530 -#: js/timbre.js:756 -#: js/meterwidget.js:124 -#: js/arpeggio.js:103 +#: js/widgets/modewidget.js:115 +#: js/widgets/meterwidget.js:229 +#: js/widgets/pitchdrummatrix.js:166 +#: js/widgets/pitchslider.js:125 +#: js/widgets/pitchstaircase.js:641 +#: js/widgets/temperament.js:2244 +#: js/widgets/timbre.js:756 +#: js/widgets/arpeggio.js:103 +#: js/widgets/musickeyboard.js:688 +#: js/widgets/phrasemaker.js:550 msgid "Save" msgstr "" -#: js/modewidget.js:121 -#: js/pitchstaircase.js:686 -#: js/phrasemaker.js:356 -#: js/pitchdrummatrix.js:109 -#: js/musickeyboard.js:534 -#: js/rhythmruler.js:269 -#: js/arpeggio.js:118 +#: js/widgets/modewidget.js:121 +#: js/widgets/pitchdrummatrix.js:181 +#: js/widgets/pitchstaircase.js:686 +#: js/widgets/arpeggio.js:118 +#: js/widgets/musickeyboard.js:696 +#: js/widgets/phrasemaker.js:567 +#: js/widgets/rhythmruler.js:601 #.TRANS: clear all subdivisions from the ruler. msgid "Clear" msgstr "" -#: js/modewidget.js:127 +#: js/widgets/modewidget.js:127 msgid "Rotate counter clockwise" msgstr "" -#: js/modewidget.js:133 +#: js/widgets/modewidget.js:133 msgid "Rotate clockwise" msgstr "" -#: js/modewidget.js:139 +#: js/widgets/modewidget.js:139 msgid "Invert" msgstr "" -#: js/modewidget.js:145 -#: js/pitchstaircase.js:678 -#: js/rhythmruler.js:258 -#: js/timbre.js:963 +#: js/widgets/modewidget.js:145 +#: js/widgets/pitchstaircase.js:678 +#: js/widgets/timbre.js:963 +#: js/widgets/rhythmruler.js:578 msgid "Undo" msgstr "" -#: js/modewidget.js:163 +#: js/widgets/modewidget.js:163 #.TRANS: A circle of notes represents the musical mode. msgid "Click in the circle to select notes for the mode." msgstr "" -#: js/modewidget.js:1017 -#: js/pitchstaircase.js:580 -#: js/phrasemaker.js:4855 -#: js/temperament.js:1754 -#: js/rhythmruler.js:1865 -#: js/rhythmruler.js:2081 -#: js/tempo.js:414 +#: js/widgets/modewidget.js:1017 +#: js/widgets/pitchstaircase.js:580 +#: js/widgets/temperament.js:1929 +#: js/widgets/tempo.js:414 +#: js/widgets/phrasemaker.js:5356 +#: js/widgets/rhythmruler.js:2254 +#: js/widgets/rhythmruler.js:2472 msgid "New action block generated!" msgstr "" -#: js/oscilloscope.js:79 -msgid "Zoom In" -msgstr "" - -#: js/oscilloscope.js:88 -msgid "Zoom Out" -msgstr "" - -#: js/pitchstaircase.js:624 -msgid "Play chord" -msgstr "" - -#: js/pitchstaircase.js:632 -msgid "Play scale" +#: js/widgets/meterwidget.js:275 +msgid "Reset" msgstr "" -#: js/pitchstaircase.js:696 -msgid "Click on a note to create a new step." +#: js/widgets/meterwidget.js:301 +msgid "Click in the circle to select strong beats for the meter." msgstr "" -#: js/phrasemaker.js:363 -msgid "Export" +#: js/widgets/oscilloscope.js:79 +msgid "Zoom In" msgstr "" -#: js/phrasemaker.js:370 -msgid "Sort" +#: js/widgets/oscilloscope.js:88 +msgid "Zoom Out" msgstr "" -#: js/phrasemaker.js:373 -#: js/musickeyboard.js:559 -msgid "Add note" +#: js/widgets/pitchdrummatrix.js:356 +#: js/widgets/pitchdrummatrix.js:752 +msgid "Click in the grid to map notes to drums." msgstr "" -#: js/phrasemaker.js:764 -msgid "Click on the table to add notes." +#: js/widgets/pitchslider.js:103 +msgid "Move up" msgstr "" -#: js/phrasemaker.js:2414 -#: js/phrasemaker.js:2543 -msgid "tuplet value" +#: js/widgets/pitchslider.js:114 +msgid "Move down" msgstr "" -#: js/pitchdrummatrix.js:270 -#: js/pitchdrummatrix.js:639 -msgid "Click in the grid to map notes to drums." +#: js/widgets/pitchslider.js:136 +msgid "Click on the slider to create a note block." msgstr "" -#: js/pitchslider.js:103 -msgid "Move up" +#: js/widgets/pitchstaircase.js:624 +msgid "Play chord" msgstr "" -#: js/pitchslider.js:114 -msgid "Move down" +#: js/widgets/pitchstaircase.js:632 +msgid "Play scale" msgstr "" -#: js/pitchslider.js:136 -msgid "Click on the slider to create a note block." +#: js/widgets/pitchstaircase.js:696 +msgid "Click on a note to create a new step." msgstr "" -#: js/temperament.js:215 +#: js/widgets/temperament.js:321 msgid "back to 2:1 octave space" msgstr "" -#: js/temperament.js:323 +#: js/widgets/temperament.js:447 msgid "edit" msgstr "" -#: js/temperament.js:330 -#: js/temperament.js:332 -#: js/temperament.js:1336 -#: js/temperament.js:1338 +#: js/widgets/temperament.js:454 +#: js/widgets/temperament.js:456 +#: js/widgets/temperament.js:1493 +#: js/widgets/temperament.js:1495 msgid "close" msgstr "" -#: js/temperament.js:423 -#: js/temperament.js:736 -#: js/temperament.js:743 -#: js/temperament.js:845 -#: js/temperament.js:935 -#: js/temperament.js:942 -#: js/temperament.js:1015 -#: js/temperament.js:1284 -#: js/temperament.js:1354 -#: js/temperament.js:1430 +#: js/widgets/temperament.js:552 +#: js/widgets/temperament.js:877 +#: js/widgets/temperament.js:884 +#: js/widgets/temperament.js:986 +#: js/widgets/temperament.js:1080 +#: js/widgets/temperament.js:1087 +#: js/widgets/temperament.js:1160 +#: js/widgets/temperament.js:1433 +#: js/widgets/temperament.js:1511 +#: js/widgets/temperament.js:1596 msgid "done" msgstr "" -#: js/temperament.js:477 -#: js/temperament.js:482 -#: js/temperament.js:918 +#: js/widgets/temperament.js:610 +#: js/widgets/temperament.js:615 +#: js/widgets/temperament.js:1063 msgid "ratio" msgstr "" -#: js/temperament.js:483 +#: js/widgets/temperament.js:616 msgid "interval" msgstr "" -#: js/temperament.js:611 +#: js/widgets/temperament.js:744 msgid "non scalar" msgstr "" -#: js/temperament.js:650 +#: js/widgets/temperament.js:787 msgid "ratios" msgstr "" -#: js/temperament.js:650 +#: js/widgets/temperament.js:787 msgid "arbitrary" msgstr "" -#: js/temperament.js:719 +#: js/widgets/temperament.js:860 msgid "number of divisions" msgstr "" -#: js/temperament.js:741 -#: js/temperament.js:858 -#: js/temperament.js:940 -#: js/temperament.js:1033 +#: js/widgets/temperament.js:882 +#: js/widgets/temperament.js:999 +#: js/widgets/temperament.js:1085 +#: js/widgets/temperament.js:1178 msgid "preview" msgstr "" -#: js/temperament.js:788 +#: js/widgets/temperament.js:929 msgid "The Number of divisions is too large." msgstr "" -#: js/temperament.js:921 +#: js/widgets/temperament.js:1066 msgid "recursion" msgstr "" -#: js/temperament.js:1450 +#: js/widgets/temperament.js:1616 msgid "The octave ratio has changed. This changes temperament significantly." msgstr "" -#: js/temperament.js:2087 +#: js/widgets/temperament.js:2248 msgid "Table" msgstr "" -#: js/temperament.js:2185 +#: js/widgets/temperament.js:2356 msgid "Add pitches" msgstr "" -#: js/musickeyboard.js:570 -msgid "Metronome" +#: js/widgets/tempo.js:78 +#: js/widgets/tempo.js:97 +#: js/widgets/tempo.js:99 +#: js/widgets/aiwidget.js:134 +#: js/widgets/aiwidget.js:136 +#: js/widgets/rhythmruler.js:681 +#: js/widgets/rhythmruler.js:683 +#: js/widgets/rhythmruler.js:1864 +#: js/widgets/rhythmruler.js:1866 +#: js/widgets/sampler.js:180 +#: js/widgets/sampler.js:182 +msgid "Pause" msgstr "" -#: js/musickeyboard.js:1296 -#: plugins/rodi.rtp:193 -msgid "duration" +#: js/widgets/tempo.js:113 +msgid "Save tempo" msgstr "" -#: js/musickeyboard.js:2840 -msgid "New action blocks generated!" +#: js/widgets/tempo.js:144 +msgid "speed up" msgstr "" -#: js/musickeyboard.js:2841 -msgid "New action block generated" +#: js/widgets/tempo.js:150 +msgid "slow down" msgstr "" -#: js/musickeyboard.js:2984 -#: js/musickeyboard.js:2992 -msgid "MIDI device present." +#: js/widgets/tempo.js:194 +msgid "Adjust the tempo with the buttons." msgstr "" -#: js/musickeyboard.js:2995 -msgid "No MIDI device found." +#: js/widgets/tempo.js:261 +msgid "Please enter a number between 30 and 1000" msgstr "" -#: js/musickeyboard.js:3000 -msgid "Failed to get MIDI access in browser." +#: js/widgets/tempo.js:268 +#: js/widgets/tempo.js:271 +msgid "The beats per minute must be between 30 and 1000." msgstr "" -#: js/rhythmruler.js:202 -msgid "Save rhythms" +#: js/widgets/tempo.js:287 +msgid "The beats per minute must be below 1000." msgstr "" -#: js/rhythmruler.js:222 -msgid "Save drum machine" +#: js/widgets/tempo.js:303 +msgid "The beats per minute must be above 30" msgstr "" -#: js/rhythmruler.js:263 -#.TRANS: user can tap out a rhythm by clicking on a ruler. -msgid "Tap a rhythm" +#: js/widgets/timbre.js:766 +msgid "Synthesizer" msgstr "" -#: js/rhythmruler.js:342 -#: js/rhythmruler.js:344 -#: js/rhythmruler.js:1481 -#: js/rhythmruler.js:1483 -#: js/sampler.js:110 -#: js/sampler.js:112 -#: js/tempo.js:78 -#: js/tempo.js:97 -#: js/tempo.js:99 -msgid "Pause" +#: js/widgets/timbre.js:789 +msgid "Oscillator" msgstr "" -#: js/rhythmruler.js:478 -msgid "Click on the ruler to divide it." +#: js/widgets/timbre.js:840 +msgid "Envelope" msgstr "" -#: js/rhythmruler.js:603 -#: js/rhythmruler.js:605 -#: js/rhythmruler.js:804 -#: js/rhythmruler.js:806 -#: js/rhythmruler.js:1386 -#: js/rhythmruler.js:1388 -msgid "tap a rhythm" +#: js/widgets/timbre.js:886 +#: planet/js/GlobalTag.js:50 +#.TRANS: On the Planet, we use labels to tag projects. +msgid "Effects" msgstr "" -#: js/rhythmruler.js:1084 -msgid "Maximum value of 256 has been exceeded." +#: js/widgets/timbre.js:904 +msgid "Filter" msgstr "" -#: js/sampler.js:137 -msgid "Warning: Sample is bigger than 1MB." +#: js/widgets/timbre.js:946 +msgid "Add filter" msgstr "" -#: js/sampler.js:142 -msgid "Upload failed: Sample is not a .wav file." +#: js/widgets/timbre.js:987 +msgid "Click on buttons to open the timbre design tools." msgstr "" -#: js/sampler.js:164 -msgid "A new sample block was generated." +#: js/widgets/timbre.js:1273 +msgid "harmonicity" msgstr "" -#: js/sampler.js:255 -msgid "Upload sample" +#: js/widgets/timbre.js:1340 +#: js/widgets/timbre.js:1406 +msgid "modulation index" msgstr "" -#: js/sampler.js:306 -msgid "Save sample" +#: js/widgets/timbre.js:1484 +msgid "vibrato amount" msgstr "" -#: js/sampler.js:697 -#.TRANS: The reference tone is a sound used for comparison. -msgid "reference tone" +#: js/widgets/timbre.js:1919 +msgid "Filter already present." msgstr "" -#: js/tempo.js:113 -msgid "Save tempo" +#: js/widgets/timbre.js:2322 +msgid "delay (MS)" msgstr "" -#: js/tempo.js:144 -msgid "speed up" +#: js/widgets/timbre.js:2507 +msgid "distortion amount" msgstr "" -#: js/tempo.js:150 -msgid "slow down" +#: js/widgets/aiwidget.js:180 +#: js/widgets/sampler.js:227 +msgid "Warning: Sample is bigger than 1MB." msgstr "" -#: js/tempo.js:194 -msgid "Adjust the tempo with the buttons." +#: js/widgets/aiwidget.js:539 +msgid "New start block generated" msgstr "" -#: js/tempo.js:261 -msgid "Please enter a number between 30 and 1000" +#: js/widgets/aiwidget.js:541 +msgid "MIDI loading. This may take some time depending upon the number of notes in the track" msgstr "" -#: js/tempo.js:268 -#: js/tempo.js:271 -msgid "The beats per minute must be between 30 and 1000." +#: js/widgets/aiwidget.js:551 +#: js/widgets/sampler.js:254 +msgid "Upload failed: Sample is not a .wav file." msgstr "" -#: js/tempo.js:287 -msgid "The beats per minute must be below 1000." +#: js/widgets/aiwidget.js:679 +#: js/widgets/sampler.js:432 +msgid "Save sample" msgstr "" -#: js/tempo.js:303 -msgid "The beats per minute must be above 30" +#: js/widgets/aiwidget.js:701 +msgid "AI Music" msgstr "" -#: js/timbre.js:766 -msgid "Synthesizer" +#: js/widgets/arpeggio.js:239 +msgid "Click in the grid to add steps to the arpeggio." msgstr "" -#: js/timbre.js:789 -msgid "Oscillator" +#: js/widgets/help.js:95 +#: js/widgets/help.js:125 +#: js/widgets/help.js:146 +#: js/widgets/help.js:158 +#: js/widgets/help.js:376 +#: js/widgets/help.js:391 +msgid "Take a tour" msgstr "" -#: js/timbre.js:840 -msgid "Envelope" +#: js/widgets/musickeyboard.js:725 +#: js/widgets/phrasemaker.js:584 +msgid "Add note" msgstr "" -#: js/timbre.js:886 -#: js/GlobalTag.js:50 -#.TRANS: On the Planet, we use labels to tag projects. -msgid "Effects" +#: js/widgets/musickeyboard.js:744 +msgid "Metronome" +msgstr "" + +#: js/widgets/musickeyboard.js:1549 +#: plugins/rodi.rtp:193 +msgid "duration" +msgstr "" + +#: js/widgets/musickeyboard.js:3179 +msgid "New action blocks generated" +msgstr "" + +#: js/widgets/musickeyboard.js:3180 +msgid "New action block generated" msgstr "" -#: js/timbre.js:904 -msgid "Filter" +#: js/widgets/musickeyboard.js:3365 +#: js/widgets/musickeyboard.js:3373 +msgid "MIDI device present." msgstr "" -#: js/timbre.js:946 -msgid "Add filter" +#: js/widgets/musickeyboard.js:3376 +msgid "No MIDI device found." msgstr "" -#: js/timbre.js:987 -msgid "Click on buttons to open the timbre design tools." +#: js/widgets/musickeyboard.js:3386 +msgid "Failed to get MIDI access in browser." msgstr "" -#: js/timbre.js:1273 -msgid "harmonicity" +#: js/widgets/phrasemaker.js:574 +msgid "Export" msgstr "" -#: js/timbre.js:1340 -#: js/timbre.js:1406 -msgid "modulation index" +#: js/widgets/phrasemaker.js:581 +msgid "Sort" msgstr "" -#: js/timbre.js:1484 -msgid "vibrato amount" +#: js/widgets/phrasemaker.js:975 +msgid "Click on the table to add notes." msgstr "" -#: js/timbre.js:1919 -msgid "Filter already present." +#: js/widgets/phrasemaker.js:2677 +#: js/widgets/phrasemaker.js:2819 +msgid "tuplet value" msgstr "" -#: js/timbre.js:2322 -msgid "delay (MS)" +#: js/widgets/rhythmruler.js:486 +msgid "Save rhythms" msgstr "" -#: js/timbre.js:2507 -msgid "distortion amount" +#: js/widgets/rhythmruler.js:512 +msgid "Save drum machine" msgstr "" -#: js/meterwidget.js:170 -msgid "Reset" +#: js/widgets/rhythmruler.js:589 +#.TRANS: user can tap out a rhythm by clicking on a ruler. +msgid "Tap a rhythm" msgstr "" -#: js/meterwidget.js:196 -msgid "Click in the circle to select strong beats for the meter." +#: js/widgets/rhythmruler.js:817 +msgid "Click on the ruler to divide it." msgstr "" -#: js/arpeggio.js:239 -msgid "Click in the grid to add steps to the arpeggio." +#: js/widgets/rhythmruler.js:950 +#: js/widgets/rhythmruler.js:952 +#: js/widgets/rhythmruler.js:1152 +#: js/widgets/rhythmruler.js:1154 +#: js/widgets/rhythmruler.js:1765 +#: js/widgets/rhythmruler.js:1767 +msgid "tap a rhythm" msgstr "" -#: js/ProjectStorage.js:243 -msgid "anonymous" +#: js/widgets/rhythmruler.js:1459 +msgid "Maximum value of 256 has been exceeded." msgstr "" -#: js/GlobalCard.js:68 -msgid "Share" +#: js/widgets/sampler.js:237 +msgid "Recording started..." msgstr "" -#: js/GlobalCard.js:74 -msgid "Flags" +#: js/widgets/sampler.js:245 +msgid "Recording complete..." msgstr "" -#: js/LocalCard.js:36 -msgid "View published project" +#: js/widgets/sampler.js:283 +msgid "A new sample block was generated." msgstr "" -#: js/LocalCard.js:42 -msgid "Publish project" +#: js/widgets/sampler.js:378 +msgid "Upload sample" msgstr "" -#: js/LocalCard.js:51 -msgid "Edit project" +#: js/widgets/sampler.js:399 +msgid "Warning: Your sample cannot be loaded because it is >1MB." msgstr "" -#: js/LocalCard.js:52 -msgid "Delete project" +#: js/widgets/sampler.js:448 +msgid "Toggle Mic" msgstr "" -#: js/LocalCard.js:53 -msgid "Download project" +#: js/widgets/sampler.js:458 +msgid "Playback" msgstr "" -#: js/LocalCard.js:55 -msgid "Duplicate project" +#: js/widgets/sampler.js:979 +#.TRANS: The reference tone is a sound used for comparison. +msgid "reference tone" msgstr "" -#: js/GlobalTag.js:28 +#: planet/js/GlobalTag.js:28 #.TRANS: On the Planet, we use labels to tag projects. msgid "All Projects" msgstr "" -#: js/GlobalTag.js:30 -#: js/StringHelper.js:37 +#: planet/js/GlobalTag.js:30 +#: planet/js/StringHelper.js:37 #.TRANS: On the Planet, we use labels to tag projects. msgid "My Projects" msgstr "" -#: js/GlobalTag.js:32 +#: planet/js/GlobalTag.js:32 #.TRANS: On the Planet, we use labels to tag projects. msgid "Examples" msgstr "" -#: js/GlobalTag.js:34 +#: planet/js/GlobalTag.js:34 #.TRANS: On the Planet, we use labels to tag projects. msgid "Music" msgstr "" -#: js/GlobalTag.js:36 +#: planet/js/GlobalTag.js:36 #.TRANS: On the Planet, we use labels to tag projects. msgid "Art" msgstr "" -#: js/GlobalTag.js:38 +#: planet/js/GlobalTag.js:38 #.TRANS: On the Planet, we use labels to tag projects. msgid "Math" msgstr "" -#: js/GlobalTag.js:40 +#: planet/js/GlobalTag.js:40 #.TRANS: On the Planet, we use labels to tag projects. msgid "Interactive" msgstr "" -#: js/GlobalTag.js:42 +#: planet/js/GlobalTag.js:42 #.TRANS: On the Planet, we use labels to tag projects. msgid "Design" msgstr "" -#: js/GlobalTag.js:44 +#: planet/js/GlobalTag.js:44 #.TRANS: On the Planet, we use labels to tag projects. msgid "Game" msgstr "" -#: js/GlobalTag.js:46 +#: planet/js/GlobalTag.js:46 #.TRANS: On the Planet, we use labels to tag projects. msgid "Media" msgstr "" -#: js/GlobalTag.js:48 +#: planet/js/GlobalTag.js:48 #.TRANS: On the Planet, we use labels to tag projects. msgid "Sensors" msgstr "" -#: js/GlobalTag.js:52 +#: planet/js/GlobalTag.js:52 #.TRANS: On the Planet, we use labels to tag projects. msgid "Code Snippet" msgstr "" -#: js/helper.js:149 -#: js/StringHelper.js:49 -msgid "Show more tags" +#: planet/js/LocalCard.js:36 +msgid "View published project" msgstr "" -#: js/helper.js:150 -msgid "Show fewer tags" +#: planet/js/LocalCard.js:42 +msgid "Publish project" +msgstr "" + +#: planet/js/LocalCard.js:51 +msgid "Edit project" +msgstr "" + +#: planet/js/LocalCard.js:52 +msgid "Delete project" +msgstr "" + +#: planet/js/LocalCard.js:53 +msgid "Download project" +msgstr "" + +#: planet/js/LocalCard.js:55 +msgid "Duplicate project" +msgstr "" + +#: planet/js/ProjectStorage.js:243 +msgid "anonymous" +msgstr "" + +#: planet/js/SaveInterface.js:34 +msgid "Open in Music Blocks" +msgstr "" + +#: planet/js/SaveInterface.js:35 +msgid "Open in Turtle Blocks" +msgstr "" + +#: planet/js/GlobalCard.js:68 +msgid "Share" +msgstr "" + +#: planet/js/GlobalCard.js:74 +msgid "Flags" +msgstr "" + +#: planet/js/GlobalPlanet.js:35 +msgid "No results found." +msgstr "" + +#: planet/js/GlobalPlanet.js:51 +msgid "Remix of" +msgstr "" + +#: planet/js/GlobalPlanet.js:509 +msgid "Cannot connect to server" msgstr "" -#: js/ProjectViewer.js:30 +#: planet/js/ProjectViewer.js:30 msgid "Error: Report could not be submitted. Try again later." msgstr "" -#: js/ProjectViewer.js:31 +#: planet/js/ProjectViewer.js:31 msgid "Thank you for reporting this project. A moderator will review the project shortly, to verify violation of the Sugar Labs Code of Conduct." msgstr "" -#: js/ProjectViewer.js:32 -#: js/StringHelper.js:62 -#: js/StringHelper.js:64 -#: js/StringHelper.js:68 +#: planet/js/ProjectViewer.js:32 +#: planet/js/StringHelper.js:62 +#: planet/js/StringHelper.js:64 +#: planet/js/StringHelper.js:68 msgid "Report Project" msgstr "" -#: js/ProjectViewer.js:33 -#: js/StringHelper.js:63 +#: planet/js/ProjectViewer.js:33 +#: planet/js/StringHelper.js:63 msgid "Project Reported" msgstr "" -#: js/ProjectViewer.js:34 +#: planet/js/ProjectViewer.js:34 msgid "Report description required" msgstr "" -#: js/ProjectViewer.js:35 +#: planet/js/ProjectViewer.js:35 msgid "Report description too long" msgstr "" -#: js/StringHelper.js:30 +#: planet/js/Publisher.js:30 +msgid "Feature unavailable - cannot connect to server. Reload Music Blocks to try again." +msgstr "" + +#: planet/js/Publisher.js:220 +#: planet/js/Publisher.js:237 +msgid "This field is required" +msgstr "" + +#: planet/js/Publisher.js:227 +msgid "Title too long" +msgstr "" + +#: planet/js/Publisher.js:244 +msgid "Description too long" +msgstr "" + +#: planet/js/Publisher.js:341 +msgid "Server Error" +msgstr "" + +#: planet/js/Publisher.js:341 +msgid "Try Again" +msgstr "" + +#: planet/js/StringHelper.js:30 msgid "Planet" msgstr "" -#: js/StringHelper.js:31 +#: planet/js/StringHelper.js:31 msgid "Close Planet" msgstr "" -#: js/StringHelper.js:32 +#: planet/js/StringHelper.js:32 msgid "Open project from file" msgstr "" -#: js/StringHelper.js:34 +#: planet/js/StringHelper.js:34 msgid "Local" msgstr "" -#: js/StringHelper.js:35 +#: planet/js/StringHelper.js:35 msgid "Global" msgstr "" -#: js/StringHelper.js:36 +#: planet/js/StringHelper.js:36 msgid "Search for a project" msgstr "" -#: js/StringHelper.js:38 +#: planet/js/StringHelper.js:38 msgid "Publish Project" msgstr "" -#: js/StringHelper.js:40 +#: planet/js/StringHelper.js:40 msgid "Tags (max 5)" msgstr "" -#: js/StringHelper.js:41 -#: js/StringHelper.js:61 +#: planet/js/StringHelper.js:41 +#: planet/js/StringHelper.js:61 msgid "Description" msgstr "" -#: js/StringHelper.js:42 -#: js/StringHelper.js:67 +#: planet/js/StringHelper.js:42 +#: planet/js/StringHelper.js:67 msgid "Submit" msgstr "" -#: js/StringHelper.js:43 -#: js/StringHelper.js:47 +#: planet/js/StringHelper.js:43 +#: planet/js/StringHelper.js:47 msgid "Cancel" msgstr "" -#: js/StringHelper.js:44 +#: planet/js/StringHelper.js:44 msgid "Delete \\"\\"?" msgstr "" -#: js/StringHelper.js:45 +#: planet/js/StringHelper.js:45 msgid "Permanently delete project \\"\\"?" msgstr "" -#: js/StringHelper.js:48 +#: planet/js/StringHelper.js:48 msgid "Explore Projects" msgstr "" -#: js/StringHelper.js:50 +#: planet/js/StringHelper.js:49 +#: planet/js/helper.js:149 +msgid "Show more tags" +msgstr "" + +#: planet/js/StringHelper.js:50 msgid "Most recent" msgstr "" -#: js/StringHelper.js:51 +#: planet/js/StringHelper.js:51 msgid "Most liked" msgstr "" -#: js/StringHelper.js:52 +#: planet/js/StringHelper.js:52 msgid "Most downloaded" msgstr "" -#: js/StringHelper.js:53 +#: planet/js/StringHelper.js:53 msgid "A-Z" msgstr "" -#: js/StringHelper.js:54 +#: planet/js/StringHelper.js:54 msgid "Sort by" msgstr "" -#: js/StringHelper.js:55 +#: planet/js/StringHelper.js:55 msgid "Load More Projects" msgstr "" -#: js/StringHelper.js:56 +#: planet/js/StringHelper.js:56 msgid "Last Updated" msgstr "" -#: js/StringHelper.js:57 +#: planet/js/StringHelper.js:57 msgid "Creation Date" msgstr "" -#: js/StringHelper.js:58 +#: planet/js/StringHelper.js:58 msgid "Number of Downloads:" msgstr "" -#: js/StringHelper.js:59 +#: planet/js/StringHelper.js:59 msgid "Number of Likes:" msgstr "" -#: js/StringHelper.js:60 +#: planet/js/StringHelper.js:60 msgid "Tags:" msgstr "" -#: js/StringHelper.js:65 +#: planet/js/StringHelper.js:65 msgid "Report projects which violate the Sugar Labs Code of Conduct." msgstr "" -#: js/StringHelper.js:66 +#: planet/js/StringHelper.js:66 msgid "Reason for reporting project" msgstr "" -#: js/StringHelper.js:70 +#: planet/js/StringHelper.js:70 msgid "Download as File" msgstr "" -#: js/GlobalPlanet.js:35 -msgid "No results found." -msgstr "" - -#: js/GlobalPlanet.js:51 -msgid "Remix of" -msgstr "" - -#: js/GlobalPlanet.js:509 -msgid "Cannot connect to server" -msgstr "" - -#: js/Publisher.js:30 -msgid "Feature unavailable - cannot connect to server. Reload Music Blocks to try again." -msgstr "" - -#: js/Publisher.js:218 -#: js/Publisher.js:235 -msgid "This field is required" -msgstr "" - -#: js/Publisher.js:225 -msgid "Title too long" +#: planet/js/helper.js:150 +msgid "Show fewer tags" msgstr "" -#: js/Publisher.js:242 -msgid "Description too long" +#: plugins/accelerometer.rtp:48 +msgid "motion x" msgstr "" -#: js/Publisher.js:339 -msgid "Server Error" +#: plugins/accelerometer.rtp:56 +msgid "motion y" msgstr "" -#: js/Publisher.js:339 -msgid "Try Again" +#: plugins/accelerometer.rtp:64 +msgid "motion z" msgstr "" -#: js/SaveInterface.js:34 -msgid "Open in Music Blocks" +#: plugins/facebook.rtp:27 +msgid "publish" msgstr "" -#: js/SaveInterface.js:35 -msgid "Open in Turtle Blocks" +#: plugins/maths.rtp:62 +msgid "power" msgstr "" -#: plugins/weather.rtp:68 -#: plugins/weather.rtp:97 -msgid "Days ahead must be in the range of -1 to 5." +#: plugins/maths.rtp:62 +msgid "base" msgstr "" -#: plugins/weather.rtp:122 -msgid "forecast" +#: plugins/maths.rtp:62 +msgid "exp" msgstr "" -#: plugins/weather.rtp:123 -#: plugins/weather.rtp:137 -#: plugins/weather.rtp:150 -msgid "city" +#: plugins/maths.rtp:99 +msgid "floor" msgstr "" -#: plugins/weather.rtp:124 -#: plugins/weather.rtp:138 -#: plugins/weather.rtp:151 -msgid "day" +#: plugins/maths.rtp:104 +msgid "ceiling" msgstr "" -#: plugins/weather.rtp:136 -msgid "high" +#: plugins/maths.rtp:109 +msgid "to degrees" msgstr "" -#: plugins/weather.rtp:149 -msgid "low" +#: plugins/maths.rtp:114 +msgid "to radians" msgstr "" #: plugins/nutrition.rtp:104 @@ -9458,45 +9867,6 @@ msgstr "" msgid "water" msgstr "" -#: plugins/maths.rtp:62 -#: plugins/examples.rtp:93 -msgid "power" -msgstr "" - -#: plugins/maths.rtp:62 -#: plugins/examples.rtp:93 -msgid "base" -msgstr "" - -#: plugins/maths.rtp:62 -#: plugins/examples.rtp:93 -msgid "exp" -msgstr "" - -#: plugins/maths.rtp:99 -#: plugins/examples.rtp:130 -msgid "floor" -msgstr "" - -#: plugins/maths.rtp:104 -#: plugins/examples.rtp:135 -msgid "ceiling" -msgstr "" - -#: plugins/maths.rtp:109 -#: plugins/examples.rtp:140 -msgid "to degrees" -msgstr "" - -#: plugins/maths.rtp:114 -#: plugins/examples.rtp:145 -msgid "to radians" -msgstr "" - -#: plugins/facebook.rtp:27 -msgid "publish" -msgstr "" - #: plugins/rodi.rtp:172 msgid "blink" msgstr "" @@ -9525,18 +9895,66 @@ msgstr "" msgid "move" msgstr "" -#: plugins/accelerometer.rtp:48 -msgid "motion x" +#: plugins/weather.rtp:68 +#: plugins/weather.rtp:97 +msgid "Days ahead must be in the range of -1 to 5." msgstr "" -#: plugins/accelerometer.rtp:56 -msgid "motion y" +#: plugins/weather.rtp:122 +msgid "forecast" msgstr "" -#: plugins/accelerometer.rtp:64 -msgid "motion z" +#: plugins/weather.rtp:123 +#: plugins/weather.rtp:137 +#: plugins/weather.rtp:150 +msgid "city" +msgstr "" + +#: plugins/weather.rtp:124 +#: plugins/weather.rtp:138 +#: plugins/weather.rtp:151 +msgid "day" +msgstr "" + +#: plugins/weather.rtp:136 +msgid "high" +msgstr "" + +#: plugins/weather.rtp:149 +msgid "low" msgstr "" +#: js/toolbar.js:70 + +#: js/toolbar.js:130 + +#: js/toolbar.js:194 + +#: js/toolbar.js:249 + +#~msgid "Toggle JavaScript Editor" +#~msgstr "" + +#: js/EnsembleBlocks.js:643 + +#~msgid "The Turrle pitch block returns the current pitch number being played by the specified turtle." +#~msgstr "" + +#: js/PitchActions.js:88 + +#~msgid "The Scalar Step Block must be used inside of a Note Block." +#~msgstr "" + +#: js/PitchActions.js:107 + +#~msgid "The Scalar Step Block must be preceded by a Pitch Block." +#~msgstr "" + +#: js/musickeyboard.js:2840 + +#~msgid "New action blocks generated!" +#~msgstr "" + #: js/toolbar.js:110 #: js/toolbar.js:204 @@ -9877,11 +10295,6 @@ msgstr "" #~msgid "The Time block returns the number of seconds that the program has been running." #~msgstr "" -#: js/help.js:95 - -#~msgid "Take a tour" -#~msgstr "" - #: js/GlobalCard.js:48 #~msgid "More Details" @@ -12780,11 +13193,6 @@ msgstr "" #~msgid "The save-stack button saves a stack onto a custom palette. It appears after a \"long press\" on a stack." #~msgstr "" -#: js/musicutils.js:254 - -#~msgid "Custom" -#~msgstr "" - #: js/basicblocks.js:4785 #~msgid "Rhythm" diff --git a/po/bn.po b/po/bn.po index a9672650c3..5169bf1fad 100644 --- a/po/bn.po +++ b/po/bn.po @@ -2129,276 +2129,131 @@ #: js/planetInterface.js:104 #: js/planetInterface.js:104 #: js/planetInterface.js:104 -msgid "project undefined" -msgstr "" - -#: js/logo.js:61 -msgid "Not a valid pitch name" -msgstr "" - -#: js/logo.js:507 -#: js/ProgramBlocks.js:258 -#: js/ProgramBlocks.js:427 -msgid "You must select a file." +#: js/SaveInterface.js:59 +#: js/SaveInterface.js:61 +#: js/SaveInterface.js:93 +msgid "Music Blocks Project" msgstr "" -#: js/logo.js:1184 -#: js/turtles.js:118 -#: js/turtle-painter.js:1192 -#: js/turtle-painter.js:1193 -#: js/block.js:1463 -#: js/lilypond.js:757 -#: js/lilypond.js:921 -#: js/lilypond.js:959 -#: js/ActionBlocks.js:1223 -#: js/ProgramBlocks.js:1267 -msgid "start" -msgstr "শুরু করো" - -#: js/logo.js:1696 -msgid "Playback is ready." +#: js/SaveInterface.js:63 +msgid "This project was created in Music Blocks" msgstr "" -#: js/blocks.js:1011 -#: js/blocks.js:3427 -#: js/blocks.js:3428 -#: js/blocks.js:3653 -#: js/blocks.js:4012 -#: js/blocks.js:4205 -#: js/blocks.js:5343 -#: js/blocks.js:6474 -#: js/palette.js:527 -#: js/palette.js:536 -#: js/palette.js:545 -#: js/palette.js:554 -#: js/palette.js:1131 -#: js/palette.js:1142 -#: js/palette.js:1153 -#: js/palette.js:1164 -#: js/palette.js:1183 -#: js/rubrics.js:529 -#: js/macros.js:170 -#: js/macros.js:266 -#: js/macros.js:267 -#: js/macros.js:276 -#: js/macros.js:828 -#: js/block.js:1449 -#: js/block.js:4164 -#: js/block.js:4182 -#: js/block.js:4193 -#: js/turtledefs.js:128 -#: js/turtledefs.js:230 -#: js/ActionBlocks.js:254 -#: js/ActionBlocks.js:307 -#: js/ActionBlocks.js:617 -#: js/ActionBlocks.js:716 -#: js/ActionBlocks.js:961 -#: js/ActionBlocks.js:1049 -#: js/ActionBlocks.js:1322 -#: js/ActionBlocks.js:1325 -#: js/ActionBlocks.js:1337 -#: js/ActionBlocks.js:1404 -#: js/MeterBlocks.js:715 -#: js/MeterBlocks.js:768 -#: js/MeterBlocks.js:831 -#: js/MeterBlocks.js:892 -#: js/phrasemaker.js:4412 -#: js/musickeyboard.js:2647 -#: js/rhythmruler.js:1928 -#: js/rhythmruler.js:1935 -#: js/rhythmruler.js:2119 -#: js/rhythmruler.js:2126 -msgid "action" +#: js/SaveInterface.js:67 +msgid "Music Blocks is a Free/Libre Software application." msgstr "" -#: js/blocks.js:1205 -#: js/blocks.js:3380 -#: js/blocks.js:3770 -#: js/blocks.js:3801 -#: js/blocks.js:3850 -#: js/blocks.js:3885 -#: js/blocks.js:6497 -#: js/palette.js:509 -#: js/palette.js:638 -#: js/palette.js:1107 -#: js/BoxesBlocks.js:282 -#: js/BoxesBlocks.js:285 -#: js/BoxesBlocks.js:405 -#: js/BoxesBlocks.js:594 -msgid "box" -msgstr "বাক্স" - -#: js/blocks.js:1680 -msgid "Consider breaking this stack into parts." +#: js/SaveInterface.js:69 +msgid "The source code can be accessed at" msgstr "" -#: js/blocks.js:2408 -#: js/palette.js:653 -#: js/MediaBlocks.js:602 -msgid "open file" +#: js/SaveInterface.js:72 +msgid "For more information, please consult the" msgstr "" -#: js/blocks.js:2415 -#: js/blocks.js:2423 -#: js/activity.js:1875 -msgid "audio file" +#: js/SaveInterface.js:76 +#: js/turtledefs.js:795 +msgid "Music Blocks Guide" msgstr "" -#: js/blocks.js:2536 -#: js/blocks.js:3147 -#: js/block.js:3543 -msgid "on2" +#: js/SaveInterface.js:83 +msgid "Alternatively, open the file in Music Blocks using the Load project button." msgstr "" -#: js/blocks.js:2538 -#: js/blocks.js:3149 -#: js/block.js:3545 -msgid "off" +#: js/SaveInterface.js:85 +msgid "Project Code" msgstr "" -#: js/blocks.js:2543 -#: js/blocks.js:3154 -#: js/palette.js:618 -#: js/block.js:3466 -#: js/BooleanBlocks.js:77 -#: js/BooleanBlocks.js:167 -#: js/BooleanBlocks.js:251 -#: js/BooleanBlocks.js:335 -#: js/BooleanBlocks.js:433 -#: js/BooleanBlocks.js:539 -#: js/BooleanBlocks.js:640 -#: js/BooleanBlocks.js:741 -#: js/BooleanBlocks.js:847 -#: js/BooleanBlocks.js:948 -#: js/BooleanBlocks.js:1033 -#: js/SensorsBlocks.js:910 -msgid "true" +#: js/SaveInterface.js:87 +msgid "This code stores data about the blocks in a project." msgstr "" -#: js/blocks.js:2545 -#: js/blocks.js:3156 -#: js/block.js:3466 -#: js/BooleanBlocks.js:79 -#: js/BooleanBlocks.js:169 -#: js/BooleanBlocks.js:253 -#: js/BooleanBlocks.js:337 -#: js/BooleanBlocks.js:435 -#: js/BooleanBlocks.js:541 -#: js/BooleanBlocks.js:642 -#: js/BooleanBlocks.js:743 -#: js/BooleanBlocks.js:849 -#: js/BooleanBlocks.js:950 -#: js/SensorsBlocks.js:912 -msgid "false" +#: js/SaveInterface.js:89 +msgid "Show" msgstr "" -#: js/blocks.js:3183 -#: js/palette.js:574 -#: js/MediaBlocks.js:892 -#: js/MediaBlocks.js:963 -msgid "text" -msgstr "টেক্সট" - -#: js/blocks.js:3379 -#: js/palette.js:641 -#: js/palette.js:642 -#: js/BoxesBlocks.js:514 -msgid "store in box" +#: js/SaveInterface.js:91 +msgid "Hide" msgstr "" -#: js/blocks.js:3384 -#: js/blocks.js:3824 -#: js/blocks.js:3859 -#: js/blocks.js:3894 -#: js/blocks.js:5773 -#: js/blocks.js:5794 -#: js/BoxesBlocks.js:772 -msgid "box1" +#: js/SaveInterface.js:131 +#: js/SaveInterface.js:204 +#: js/SaveInterface.js:262 +#: js/SaveInterface.js:389 +#: js/SaveInterface.js:417 +#: js/activity.js:4884 +#: planet/js/ProjectStorage.js:27 +#: planet/js/GlobalPlanet.js:467 +#: planet/js/GlobalPlanet.js:469 +#: planet/js/GlobalPlanet.js:495 +#.TRANS: default project title when saving as Lilypond +msgid "My Project" msgstr "" -#: js/blocks.js:3386 -#: js/blocks.js:3826 -#: js/blocks.js:3861 -#: js/blocks.js:3896 -#: js/blocks.js:5775 -#: js/blocks.js:5796 -#: js/BoxesBlocks.js:663 -msgid "box2" +#: js/SaveInterface.js:197 +#: planet/js/SaveInterface.js:58 +msgid "No description provided" msgstr "" -#: js/blocks.js:4058 -#: js/palette.js:639 -#: js/palette.js:644 -#: js/palette.js:1043 -#: js/BoxesBlocks.js:591 -msgid "store in" +#: js/SaveInterface.js:332 +msgid "Your recording is in progress." msgstr "" -#: js/blocks.js:4058 -#: js/EnsembleBlocks.js:391 -#: js/EnsembleBlocks.js:402 -#: js/MediaBlocks.js:746 -#: js/ProgramBlocks.js:390 -#: js/ProgramBlocks.js:495 -#: js/ProgramBlocks.js:658 -#: js/BoxesBlocks.js:595 -#: js/PitchBlocks.js:656 -#: js/PitchBlocks.js:932 -#: js/PitchBlocks.js:1827 -#: js/ToneBlocks.js:1025 -#: js/DictBlocks.js:215 -#: js/DictBlocks.js:289 -msgid "name" +#: js/SaveInterface.js:401 +#.TRANS: File name prompt for save as Lilypond +msgid "File name" msgstr "" -#: js/blocks.js:4058 -#: js/RhythmBlocks.js:1130 -#: js/BoxesBlocks.js:75 -#: js/BoxesBlocks.js:595 -#: js/HeapBlocks.js:544 -#: js/DictBlocks.js:289 -#: js/DictBlocks.js:430 -msgid "value" +#: js/SaveInterface.js:403 +#: planet/js/StringHelper.js:39 +#.TRANS: Project title prompt for save as Lilypond +msgid "Project title" msgstr "" -#: js/blocks.js:4907 -msgid "There is no block selected." +#: js/SaveInterface.js:405 +#.TRANS: Project title prompt for save as Lilypond +msgid "Project author" msgstr "" -#: js/blocks.js:5002 -#: js/MediaBlocks.js:888 -msgid "show" +#: js/SaveInterface.js:407 +#.TRANS: MIDI prompt for save as Lilypond +msgid "Include MIDI output?" msgstr "" -#: js/blocks.js:5005 -#: js/MediaBlocks.js:803 -#.TRANS: Avatar is the image used to determine the appearance of the mouse. -msgid "avatar" +#: js/SaveInterface.js:409 +#.TRANS: Guitar prompt for save as Lilypond +msgid "Include guitar tablature output?" msgstr "" -#: js/blocks.js:5008 -#: js/ToneBlocks.js:1010 -#: js/sampler.js:693 -#.TRANS: The sound sample that the user uploads. -msgid "sample" +#: js/SaveInterface.js:411 +#.TRANS: Lilypond is a scripting language for generating sheet music +msgid "Save as Lilypond" msgstr "" -#: js/turtles.js:874 -msgid "Grid" -msgstr "ঝাঁজরি" - -#: js/turtles.js:891 -#: js/turtledefs.js:626 -msgid "Clean" -msgstr "পরিষ্কার করো" - -#: js/turtles.js:912 -#: js/turtledefs.js:632 -msgid "Collapse" +#: js/SaveInterface.js:426 +#: js/blocks/EnsembleBlocks.js:75 +#: js/blocks/EnsembleBlocks.js:154 +#: js/blocks/EnsembleBlocks.js:216 +#: js/blocks/EnsembleBlocks.js:302 +#: js/blocks/EnsembleBlocks.js:348 +#: js/blocks/EnsembleBlocks.js:389 +#: js/blocks/EnsembleBlocks.js:441 +#: js/blocks/EnsembleBlocks.js:490 +#: js/blocks/EnsembleBlocks.js:536 +#: js/blocks/EnsembleBlocks.js:583 +#: js/blocks/EnsembleBlocks.js:637 +#: js/blocks/EnsembleBlocks.js:753 +#: js/blocks/EnsembleBlocks.js:840 +#: js/blocks/EnsembleBlocks.js:899 +#: js/blocks/EnsembleBlocks.js:942 +#: js/blocks/EnsembleBlocks.js:1212 +#: js/blocks/EnsembleBlocks.js:1280 +#.TRANS: default project author when saving as Lilypond +msgid "Mr. Mouse" msgstr "" -#: js/turtles.js:940 -msgid "Expand" +#: js/SaveInterface.js:573 +msgid "The Lilypond code is copied to clipboard. You can paste it here: " msgstr "" #: js/languagebox.js:198 @@ -2409,6933 +2264,7487 @@ msgstr "" msgid "Music Blocks is already set to this language." msgstr "" -#: js/piemenus.js:200 -#: js/musicutils.js:808 -#: js/musicutils.js:824 -#: js/phrasemaker.js:1672 -#: js/musickeyboard.js:2041 -#: js/sampler.js:544 -#.TRANS: double sharp is a music term related to pitch -msgid "double sharp" +#: js/planetInterface.js:131 +msgid "project undefined" msgstr "" -#: js/piemenus.js:201 -#: js/PitchBlocks.js:1510 -#: js/PitchActions.js:580 -#: js/musicutils.js:806 -#: js/musicutils.js:825 -#: js/phrasemaker.js:1673 -#: js/musickeyboard.js:2042 -#: js/sampler.js:545 -#.TRANS: sharp is a half-step up in pitch -#.TRANS: sharp is a music term related to pitch -msgid "sharp" +#: js/rubrics.js:523 +#: js/turtledefs.js:119 +#: js/turtledefs.js:221 +#: js/blocks/RhythmBlockPaletteBlocks.js:52 +#: js/blocks/RhythmBlockPaletteBlocks.js:234 +#: js/blocks/ProgramBlocks.js:745 +#: js/widgets/rhythmruler.js:2057 +#: js/widgets/rhythmruler.js:2064 +#: js/widgets/rhythmruler.js:2133 +#: js/widgets/rhythmruler.js:2140 +#: js/widgets/rhythmruler.js:2219 +#.TRANS: an arrangement of notes based on duration +msgid "rhythm" msgstr "" -#: js/piemenus.js:202 -#: js/musicutils.js:804 -#: js/musicutils.js:826 -#: js/phrasemaker.js:1674 -#: js/musickeyboard.js:2043 -#: js/sampler.js:546 -#.TRANS: natural is a music term related to pitch -msgid "natural" +#: js/rubrics.js:524 +#: js/turtledefs.js:121 +#: js/turtledefs.js:223 +#: js/block-verbose.js:2622 +#: js/block.js:2550 +#: js/blocks/IntervalsBlocks.js:63 +#: js/blocks/SensorsBlocks.js:178 +#: js/blocks/PitchBlocks.js:1839 +#: js/blocks/PitchBlocks.js:1853 +#: js/widgets/musickeyboard.js:1935 +#: js/widgets/phrasemaker.js:1036 +#.TRANS: pitch number +#.TRANS: pitch number +#.TRANS: we specify pitch in terms of a name and an octave. The name can be CDEFGAB or Do Re Mi Fa Sol La Ti. Octave is a number between 1 and 8. +msgid "pitch" msgstr "" -#: js/piemenus.js:203 -#: js/PitchBlocks.js:1469 -#: js/PitchActions.js:583 -#: js/musicutils.js:802 -#: js/musicutils.js:827 -#: js/phrasemaker.js:1675 -#: js/musickeyboard.js:2044 -#: js/sampler.js:547 -#.TRANS: flat is a half-step down in pitch -#.TRANS: flat is a music term related to pitch -msgid "flat" +#: js/rubrics.js:525 +#: js/turtledefs.js:123 +#: js/turtledefs.js:225 +msgid "tone" msgstr "" -#: js/piemenus.js:204 -#: js/musicutils.js:800 -#: js/musicutils.js:828 -#: js/phrasemaker.js:1676 -#: js/musickeyboard.js:2045 -#: js/sampler.js:548 -#.TRANS: double flat is a music term related to pitch -msgid "double flat" +#: js/rubrics.js:526 +#: js/lilypond.js:605 +#: js/lilypond.js:904 +#: js/lilypond.js:910 +#: js/lilypond.js:948 +msgid "mouse" msgstr "" -#: js/piemenus.js:2861 -#: js/PitchBlocks.js:1357 -#: js/musicutils.js:627 -#.TRANS: unison means the note is the same as the current note -#.TRANS: unison is a music term related to intervals -msgid "unison" +#: js/rubrics.js:527 +#: js/turtledefs.js:132 +#: js/turtledefs.js:234 +#: js/widgets/phrasemaker.js:1040 +msgid "pen" msgstr "" -#: js/piemenus.js:3015 -#: js/piemenus.js:3088 -#: js/musicutils.js:635 -#: js/musicutils.js:810 -#: js/musicutils.js:912 -#.TRANS: major is a music term related to intervals and mode -msgid "major" -msgstr "" +#: js/rubrics.js:528 +#: js/turtledefs.js:133 +#: js/turtledefs.js:235 +#: js/blocks/NumberBlocks.js:981 +#: js/blocks/PitchBlocks.js:1717 +#: js/blocks/PitchBlocks.js:1758 +msgid "number" +msgstr "সংখ্যা" -#: js/piemenus.js:3015 -#: js/piemenus.js:3088 -#: js/musicutils.js:653 -#.TRANS: modal scale for music -msgid "ionian" +#: js/rubrics.js:529 +#: js/turtledefs.js:127 +#: js/turtledefs.js:229 +msgid "flow" msgstr "" -#: js/piemenus.js:3017 -#: js/piemenus.js:3092 -#: js/musicutils.js:633 -#: js/musicutils.js:811 -#: js/musicutils.js:909 -#.TRANS: minor is a music term related to intervals and mode -msgid "minor" +#: js/rubrics.js:530 +#: js/turtledefs.js:128 +#: js/turtledefs.js:230 +#: js/block-verbose.js:1609 +#: js/block-verbose.js:4559 +#: js/block-verbose.js:4577 +#: js/block-verbose.js:4588 +#: js/block.js:1573 +#: js/block.js:4483 +#: js/block.js:4501 +#: js/block.js:4512 +#: js/blocks.js:1018 +#: js/blocks.js:3491 +#: js/blocks.js:3492 +#: js/blocks.js:3717 +#: js/blocks.js:4076 +#: js/blocks.js:4269 +#: js/blocks.js:5432 +#: js/blocks.js:6563 +#: js/macros.js:170 +#: js/macros.js:266 +#: js/macros.js:267 +#: js/macros.js:276 +#: js/macros.js:828 +#: js/palette.js:527 +#: js/palette.js:536 +#: js/palette.js:545 +#: js/palette.js:554 +#: js/palette.js:1129 +#: js/palette.js:1140 +#: js/palette.js:1151 +#: js/palette.js:1162 +#: js/palette.js:1181 +#: js/blocks/ActionBlocks.js:254 +#: js/blocks/ActionBlocks.js:307 +#: js/blocks/ActionBlocks.js:617 +#: js/blocks/ActionBlocks.js:716 +#: js/blocks/ActionBlocks.js:961 +#: js/blocks/ActionBlocks.js:1049 +#: js/blocks/ActionBlocks.js:1322 +#: js/blocks/ActionBlocks.js:1325 +#: js/blocks/ActionBlocks.js:1337 +#: js/blocks/ActionBlocks.js:1404 +#: js/blocks/MeterBlocks.js:715 +#: js/blocks/MeterBlocks.js:768 +#: js/blocks/MeterBlocks.js:831 +#: js/blocks/MeterBlocks.js:892 +#: js/widgets/musickeyboard.js:2986 +#: js/widgets/phrasemaker.js:4913 +#: js/widgets/rhythmruler.js:2319 +#: js/widgets/rhythmruler.js:2326 +#: js/widgets/rhythmruler.js:2511 +#: js/widgets/rhythmruler.js:2518 +msgid "action" msgstr "" -#: js/piemenus.js:3017 -#: js/piemenus.js:3092 -#: js/musicutils.js:663 -#.TRANS: modal scale for music -msgid "aeolian" +#: js/rubrics.js:531 +#: js/turtledefs.js:136 +#: js/turtledefs.js:238 +msgid "sensors" msgstr "" -#: js/piemenus.js:3407 -msgid "Duplicate" +#: js/rubrics.js:532 +#: js/turtledefs.js:135 +#: js/turtledefs.js:237 +#: js/blocks/MediaBlocks.js:930 +msgid "media" msgstr "" -#: js/piemenus.js:3408 -#: js/turtledefs.js:534 -msgid "Extract" +#: js/rubrics.js:533 +msgid "mice" msgstr "" -#: js/piemenus.js:3409 -msgid "Move to trash" +#: js/toolbar.js:48 +#: js/toolbar.js:109 +msgid "About Music Blocks" msgstr "" -#: js/piemenus.js:3410 -#: js/timbre.js:968 -#: js/StringHelper.js:69 -msgid "Close" +#: js/toolbar.js:49 +#: js/toolbar.js:110 +#: js/toolbar.js:175 +#: js/toolbar.js:231 +#: js/turtledefs.js:445 +#: js/turtledefs.js:482 +#: js/activity.js:2660 +#: js/activity.js:2671 +#: js/activity.js:2902 +#: js/widgets/modewidget.js:77 +#: js/widgets/meterwidget.js:185 +#: js/widgets/pitchdrummatrix.js:147 +#: js/widgets/pitchdrummatrix.js:687 +#: js/widgets/pitchdrummatrix.js:689 +#: js/widgets/pitchdrummatrix.js:741 +#: js/widgets/pitchdrummatrix.js:743 +#: js/widgets/pitchdrummatrix.js:758 +#: js/widgets/pitchdrummatrix.js:760 +#: js/widgets/pitchdrummatrix.js:789 +#: js/widgets/pitchdrummatrix.js:791 +#: js/widgets/pitchstaircase.js:121 +#: js/widgets/temperament.js:610 +#: js/widgets/temperament.js:613 +#: js/widgets/temperament.js:673 +#: js/widgets/temperament.js:675 +#: js/widgets/temperament.js:2017 +#: js/widgets/temperament.js:2019 +#: js/widgets/tempo.js:84 +#: js/widgets/tempo.js:86 +#: js/widgets/timbre.js:432 +#: js/widgets/timbre.js:434 +#: js/widgets/timbre.js:465 +#: js/widgets/timbre.js:467 +#: js/widgets/timbre.js:746 +#: js/widgets/aiwidget.js:647 +#: js/widgets/aiwidget.js:654 +#: js/widgets/aiwidget.js:656 +#: js/widgets/arpeggio.js:90 +#: js/widgets/arpeggio.js:547 +#: js/widgets/arpeggio.js:549 +#: js/widgets/arpeggio.js:644 +#: js/widgets/arpeggio.js:646 +#: js/widgets/musickeyboard.js:676 +#: js/widgets/musickeyboard.js:872 +#: js/widgets/musickeyboard.js:874 +#: js/widgets/musickeyboard.js:953 +#: js/widgets/musickeyboard.js:955 +#: js/widgets/phrasemaker.js:513 +#: js/widgets/phrasemaker.js:523 +#: js/widgets/phrasemaker.js:525 +#: js/widgets/phrasemaker.js:4304 +#: js/widgets/phrasemaker.js:4528 +#: js/widgets/phrasemaker.js:4533 +#: js/widgets/phrasemaker.js:4535 +#: js/widgets/phrasemaker.js:4650 +#: js/widgets/rhythmruler.js:637 +#: js/widgets/rhythmruler.js:639 +#: js/widgets/rhythmruler.js:653 +#: js/widgets/rhythmruler.js:655 +#: js/widgets/sampler.js:162 +#: js/widgets/sampler.js:164 +#: js/widgets/sampler.js:363 +msgid "Play" msgstr "" -#: js/piemenus.js:3416 -msgid "Save stack" -msgstr "" +#: js/toolbar.js:50 +#: js/toolbar.js:111 +#: js/toolbar.js:176 +#: js/toolbar.js:232 +#: js/turtledefs.js:451 +#: js/turtledefs.js:488 +#: js/activity.js:2679 +#: js/widgets/modewidget.js:99 +#: js/widgets/modewidget.js:101 +#: js/widgets/meterwidget.js:206 +#: js/widgets/meterwidget.js:208 +#: js/widgets/pitchdrummatrix.js:674 +#: js/widgets/pitchdrummatrix.js:676 +#: js/widgets/temperament.js:2002 +#: js/widgets/temperament.js:2004 +#: js/widgets/arpeggio.js:534 +#: js/widgets/arpeggio.js:536 +#: js/widgets/phrasemaker.js:534 +#: js/widgets/phrasemaker.js:536 +msgid "Stop" +msgstr "ধাপ" -#: js/piemenus.js:3420 -#: js/toolbar.js:60 -#: js/toolbar.js:120 -#: js/toolbar.js:185 -#: js/toolbar.js:240 -#: js/turtledefs.js:752 -msgid "Help" +#: js/toolbar.js:51 +#: js/toolbar.js:112 +#: js/toolbar.js:177 +#: js/toolbar.js:233 +#: js/turtledefs.js:498 +msgid "Record" msgstr "" -#: js/piemenus.js:3762 -msgid "You have chosen key " +#: js/toolbar.js:52 +#: js/toolbar.js:53 +msgid "Full screen" +msgstr "" + +#: js/toolbar.js:54 +#: js/toolbar.js:115 +#: js/toolbar.js:180 +#: js/toolbar.js:236 +#: js/turtledefs.js:504 +msgid "Toggle Fullscreen" +msgstr "" + +#: js/toolbar.js:55 +#: js/toolbar.js:116 +#: js/toolbar.js:181 +#: js/toolbar.js:237 +#: js/turtledefs.js:510 +#: planet/js/StringHelper.js:33 +msgid "New project" +msgstr "" + +#: js/toolbar.js:56 +#: js/toolbar.js:117 +#: js/toolbar.js:182 +#: js/toolbar.js:238 +#: js/turtledefs.js:516 +msgid "Load project from file" +msgstr "" + +#: js/toolbar.js:57 +#: js/toolbar.js:118 +#: js/toolbar.js:119 +#: js/toolbar.js:183 +#: js/toolbar.js:239 +#: js/turtledefs.js:541 +#: js/turtledefs.js:550 +#: js/turtledefs.js:571 +msgid "Save project" +msgstr "" + +#: js/toolbar.js:58 +#: js/toolbar.js:77 +#: js/toolbar.js:79 +#: js/toolbar.js:138 +#: js/toolbar.js:147 +#: js/toolbar.js:149 +#: js/toolbar.js:184 +#: js/toolbar.js:202 +#: js/toolbar.js:204 +#: js/toolbar.js:240 +#: js/toolbar.js:258 +#: js/toolbar.js:260 +msgid "Save project as HTML" +msgstr "" + +#: js/toolbar.js:59 +#: js/toolbar.js:120 +#: js/toolbar.js:185 +#: js/toolbar.js:241 +msgid "Find and share projects" +msgstr "" + +#: js/toolbar.js:60 +#: js/toolbar.js:121 +#: js/toolbar.js:186 +#: js/toolbar.js:242 +msgid "Offline. Sharing is unavailable" +msgstr "" + +#: js/toolbar.js:61 +#: js/toolbar.js:122 +#: js/toolbar.js:187 +#: js/toolbar.js:243 +msgid "Auxiliary menu" +msgstr "" + +#: js/toolbar.js:62 +#: js/toolbar.js:123 +#: js/toolbar.js:188 +#: js/toolbar.js:244 +#: js/turtledefs.js:752 +#: js/piemenus.js:3423 +msgid "Help" +msgstr "" + +#: js/toolbar.js:63 +#: js/toolbar.js:124 +#: js/toolbar.js:189 +#: js/toolbar.js:245 +msgid "Run slowly" +msgstr "" + +#: js/toolbar.js:64 +#: js/toolbar.js:125 +#: js/toolbar.js:190 +#: js/toolbar.js:246 +#: js/turtledefs.js:682 +msgid "Run step by step" +msgstr "" + +#: js/toolbar.js:65 +#: js/toolbar.js:126 +#: js/toolbar.js:191 +#: js/toolbar.js:247 +#: js/turtledefs.js:689 +msgid "Display statistics" +msgstr "" + +#: js/toolbar.js:66 +#: js/toolbar.js:127 +#: js/toolbar.js:192 +#: js/toolbar.js:248 +msgid "Load plugin" +msgstr "" + +#: js/toolbar.js:67 +#: js/toolbar.js:128 +#: js/toolbar.js:193 +#: js/toolbar.js:249 +#: js/turtledefs.js:696 +msgid "Delete plugin" +msgstr "" + +#: js/toolbar.js:68 +#: js/toolbar.js:129 +#: js/toolbar.js:194 +#: js/toolbar.js:250 +msgid "Enable horizontal scrolling" +msgstr "" + +#: js/toolbar.js:69 +#: js/toolbar.js:130 +#: js/toolbar.js:195 +#: js/toolbar.js:251 +msgid "Disable horizontal scrolling" +msgstr "" + +#: js/toolbar.js:70 +#: js/toolbar.js:131 +#: js/toolbar.js:196 +#: js/toolbar.js:252 +#: planet/js/LocalCard.js:54 +#: planet/js/StringHelper.js:71 +msgid "Merge with current project" +msgstr "" + +#: js/toolbar.js:71 +#: js/toolbar.js:132 +msgid "Set Pitch Preview" +msgstr "" + +#: js/toolbar.js:72 +#: js/toolbar.js:133 +#: js/toolbar.js:197 +#: js/toolbar.js:253 +msgid "JavaScript Editor" +msgstr "" + +#: js/toolbar.js:73 +#: js/toolbar.js:134 +#: js/toolbar.js:198 +#: js/toolbar.js:254 +#: js/turtledefs.js:724 +msgid "Restore" +msgstr "" + +#: js/toolbar.js:74 +#: js/toolbar.js:135 +#: js/toolbar.js:199 +#: js/toolbar.js:255 +msgid "Switch to beginner mode" +msgstr "" + +#: js/toolbar.js:75 +#: js/toolbar.js:136 +#: js/toolbar.js:200 +#: js/toolbar.js:256 +msgid "Switch to advanced mode" +msgstr "" + +#: js/toolbar.js:76 +#: js/toolbar.js:137 +#: js/toolbar.js:146 +#: js/toolbar.js:201 +#: js/toolbar.js:257 +#: js/turtledefs.js:738 +msgid "Select language" +msgstr "" + +#: js/toolbar.js:78 +#: js/toolbar.js:81 +#: js/toolbar.js:140 +#: js/turtledefs.js:579 +msgid "Save mouse artwork as PNG" +msgstr "" + +#: js/toolbar.js:80 +#: js/toolbar.js:139 +#: js/turtledefs.js:575 +msgid "Save mouse artwork as SVG" +msgstr "" + +#: js/toolbar.js:82 +#: js/toolbar.js:141 +#: js/turtledefs.js:583 +msgid "Save music as WAV" +msgstr "" + +#: js/toolbar.js:83 +#: js/toolbar.js:142 +#: js/turtledefs.js:587 +msgid "Save sheet music as ABC" +msgstr "" + +#: js/toolbar.js:84 +#: js/toolbar.js:143 +#: js/turtledefs.js:591 +msgid "Save sheet music as Lilypond" +msgstr "" + +#: js/toolbar.js:85 +msgid "Save sheet music as MusicXML" +msgstr "" + +#: js/toolbar.js:86 +#: js/toolbar.js:144 +#: js/toolbar.js:152 +#: js/toolbar.js:207 +#: js/toolbar.js:263 +#: js/turtledefs.js:562 +#: js/turtledefs.js:595 +msgid "Save block artwork as SVG" +msgstr "" + +#: js/toolbar.js:87 +#: js/toolbar.js:145 +#: js/toolbar.js:153 +#: js/toolbar.js:208 +#: js/toolbar.js:264 +#: js/turtles.js:911 +msgid "Confirm" +msgstr "" + +#: js/toolbar.js:88 +#: js/toolbar.js:154 +#: js/toolbar.js:209 +#: js/toolbar.js:265 +msgid "English (United States)" +msgstr "" + +#: js/toolbar.js:89 +#: js/toolbar.js:155 +#: js/toolbar.js:210 +#: js/toolbar.js:266 +msgid "English (United Kingdom)" +msgstr "" + +#: js/toolbar.js:90 +#: js/toolbar.js:156 +#: js/toolbar.js:211 +#: js/toolbar.js:267 +msgid "日本語" +msgstr "" + +#: js/toolbar.js:91 +msgid "한국어" +msgstr "" + +#: js/toolbar.js:92 +#: js/toolbar.js:158 +#: js/toolbar.js:213 +#: js/toolbar.js:269 +msgid "español" +msgstr "" + +#: js/toolbar.js:93 +#: js/toolbar.js:159 +#: js/toolbar.js:214 +#: js/toolbar.js:270 +msgid "português" +msgstr "" + +#: js/toolbar.js:94 +#: js/toolbar.js:160 +#: js/toolbar.js:215 +#: js/toolbar.js:271 +msgid "にほんご" +msgstr "" + +#: js/toolbar.js:95 +#: js/toolbar.js:161 +#: js/toolbar.js:216 +#: js/toolbar.js:272 +msgid "中文" +msgstr "" + +#: js/toolbar.js:96 +#: js/toolbar.js:162 +#: js/toolbar.js:217 +#: js/toolbar.js:273 +msgid "ภาษาไทย" +msgstr "" + +#: js/toolbar.js:97 +#: js/toolbar.js:163 +#: js/toolbar.js:218 +#: js/toolbar.js:274 +msgid "aymara" +msgstr "" + +#: js/toolbar.js:98 +#: js/toolbar.js:164 +#: js/toolbar.js:219 +#: js/toolbar.js:275 +msgid "quechua" +msgstr "" + +#: js/toolbar.js:99 +#: js/toolbar.js:165 +#: js/toolbar.js:220 +#: js/toolbar.js:276 +msgid "guarani" +msgstr "" + +#: js/toolbar.js:100 +#: js/toolbar.js:166 +#: js/toolbar.js:221 +#: js/toolbar.js:277 +msgid "हिंदी" +msgstr "" + +#: js/toolbar.js:101 +#: js/toolbar.js:168 +#: js/toolbar.js:222 +#: js/toolbar.js:279 +msgid "igbo" +msgstr "" + +#: js/toolbar.js:102 +#: js/toolbar.js:169 +#: js/toolbar.js:223 +#: js/toolbar.js:280 +msgid "عربى" +msgstr "" + +#: js/toolbar.js:103 +#: js/toolbar.js:167 +#: js/toolbar.js:224 +#: js/toolbar.js:278 +msgid "తెలుగు" +msgstr "" + +#: js/toolbar.js:104 +#: js/toolbar.js:170 +#: js/toolbar.js:225 +#: js/toolbar.js:281 +msgid "עִברִית" +msgstr "" + +#: js/toolbar.js:113 +#: js/toolbar.js:114 +#: js/toolbar.js:178 +#: js/toolbar.js:179 +#: js/toolbar.js:234 +#: js/toolbar.js:235 +msgid "Full Screen" +msgstr "" + +#: js/toolbar.js:148 +#: js/toolbar.js:151 +#: js/toolbar.js:203 +#: js/toolbar.js:206 +#: js/toolbar.js:259 +#: js/toolbar.js:262 +#: js/turtledefs.js:558 +msgid "Save turtle artwork as PNG" +msgstr "" + +#: js/toolbar.js:150 +#: js/toolbar.js:205 +#: js/toolbar.js:261 +#: js/turtledefs.js:554 +msgid "Save turtle artwork as SVG" +msgstr "" + +#: js/toolbar.js:157 +#: js/toolbar.js:212 +#: js/toolbar.js:268 +msgid "한국인" +msgstr "" + +#: js/toolbar.js:174 +#: js/toolbar.js:230 +msgid "About Turtle Blocks" +msgstr "" + +#: js/toolbar.js:446 +#: js/toolbar.js:457 +#: js/toolbar.js:497 +msgid "Turtle Wrap Off" +msgstr "" + +#: js/toolbar.js:466 +#: js/toolbar.js:506 +msgid "Turtle Wrap On" +msgstr "" + +#: js/turtle-painter.js:1192 +#: js/turtle-painter.js:1193 +#: js/turtles.js:118 +#: js/block-verbose.js:1623 +#: js/block.js:1587 +#: js/lilypond.js:749 +#: js/lilypond.js:913 +#: js/lilypond.js:951 +#: js/logo.js:1184 +#: js/blocks/ActionBlocks.js:1223 +#: js/blocks/ProgramBlocks.js:1267 +msgid "start" +msgstr "শুরু করো" + +#: js/turtledefs.js:40 +#.TRANS: put the URL to the guide here, e.g., https://github.com/sugarlabs/turtleblocksjs/tree/master/guide/README.md +msgid "guide url" +msgstr "" + +#: js/turtledefs.js:85 +#: js/turtledefs.js:437 +msgid "Turtle Blocks is a Logo-inspired turtle that draws colorful pictures with snap-together visual-programming blocks." +msgstr "" + +#: js/turtledefs.js:118 +#: js/turtledefs.js:220 +msgid "search" +msgstr "" + +#: js/turtledefs.js:120 +#: js/turtledefs.js:222 +#: js/blocks/MeterBlocks.js:1343 +#: js/blocks/WidgetBlocks.js:522 +#.TRANS: musical meter (time signature), e.g., 4:4 +msgid "meter" +msgstr "" + +#: js/turtledefs.js:122 +#: js/turtledefs.js:224 +msgid "intervals" +msgstr "" + +#: js/turtledefs.js:124 +#: js/turtledefs.js:226 +msgid "ornament" +msgstr "" + +#: js/turtledefs.js:125 +#: js/turtledefs.js:227 +#: js/blocks/VolumeBlocks.js:362 +#: js/blocks/VolumeBlocks.js:502 +#: js/blocks/VolumeBlocks.js:545 +msgid "volume" +msgstr "" + +#: js/turtledefs.js:126 +#: js/turtledefs.js:228 +#: js/block-verbose.js:1700 +#: js/block-verbose.js:2626 +#: js/block.js:1664 +#: js/block.js:2554 +#: js/lilypond.js:732 +#: js/lilypond.js:897 +#: js/lilypond.js:941 +#: js/palette.js:577 +#: js/blocks/RhythmBlocks.js:766 +#: js/blocks/DrumBlocks.js:477 +#: js/blocks/VolumeBlocks.js:502 +#: js/widgets/phrasemaker.js:1038 +msgid "drum" +msgstr "" + +#: js/turtledefs.js:129 +#: js/turtledefs.js:231 +msgid "boxes" +msgstr "" + +#: js/turtledefs.js:130 +#: js/turtledefs.js:232 +msgid "widgets" +msgstr "" + +#: js/turtledefs.js:131 +#: js/turtledefs.js:233 +#: js/widgets/phrasemaker.js:1039 +msgid "graphics" +msgstr "" + +#: js/turtledefs.js:134 +#: js/turtledefs.js:236 +msgid "boolean" +msgstr "" + +#: js/turtledefs.js:137 +#: js/turtledefs.js:239 +#: js/blocks/HeapBlocks.js:59 +#: js/widgets/status.js:147 +msgid "heap" +msgstr "" + +#: js/turtledefs.js:138 +#: js/turtledefs.js:240 +#: js/blocks/DictBlocks.js:142 +#: js/blocks/ProgramBlocks.js:495 +msgid "dictionary" +msgstr "" + +#: js/turtledefs.js:139 +#: js/turtledefs.js:241 +msgid "ensemble" +msgstr "" + +#: js/turtledefs.js:140 +#: js/turtledefs.js:242 +msgid "extras" +msgstr "" + +#: js/turtledefs.js:142 +#: js/turtledefs.js:244 +#.TRANS: program as in computer program +#.TRANS: program as in computer program +msgid "program" +msgstr "" + +#: js/turtledefs.js:143 +#: js/turtledefs.js:245 +msgid "my blocks" msgstr "" -#: js/piemenus.js:3766 -msgid " for your pitch preview." +#: js/turtledefs.js:185 +#: js/turtledefs.js:281 +msgid "artwork" msgstr "" -#: js/palette.js:571 -msgid "grid" -msgstr "ঝাঁজরি" +#: js/turtledefs.js:185 +#: js/turtledefs.js:281 +msgid "logic" +msgstr "" -#: js/palette.js:577 -#: js/block.js:1540 -#: js/block.js:2343 -#: js/turtledefs.js:126 -#: js/turtledefs.js:228 -#: js/lilypond.js:740 -#: js/lilypond.js:905 -#: js/lilypond.js:949 -#: js/DrumBlocks.js:486 -#: js/RhythmBlocks.js:766 -#: js/VolumeBlocks.js:502 -#: js/phrasemaker.js:823 -msgid "drum" +#: js/turtledefs.js:185 +#: js/turtledefs.js:281 +msgid "music" msgstr "" -#: js/palette.js:580 -msgid "effect" +#: js/turtledefs.js:187 +#: js/turtledefs.js:463 +msgid "Music Blocks is a collection of tools for exploring fundamental musical concepts in a fun way." msgstr "" -#: js/palette.js:586 -msgid "sargam" +#: js/turtledefs.js:436 +msgid "Welcome to Turtle Blocks" msgstr "" -#: js/palette.js:589 -#: js/activity.js:1833 -#: js/RhythmBlocks.js:923 -#: js/PitchBlocks.js:442 -#: js/PitchBlocks.js:1748 -#.TRANS: a numeric mapping of the notes in an octave based on the musical mode -msgid "scale degree" +#: js/turtledefs.js:438 +#: js/turtledefs.js:465 +#: js/turtledefs.js:774 +#: js/turtledefs.js:805 +msgid "The current version is" msgstr "" -#: js/palette.js:592 -#: js/activity.js:1860 -msgid "mode name" +#: js/turtledefs.js:446 +#: js/turtledefs.js:483 +msgid "Click the run button to run the project in fast mode." msgstr "" -#: js/palette.js:595 -#: js/activity.js:1839 -msgid "invert mode" +#: js/turtledefs.js:452 +msgid "Stop the turtle." msgstr "" -#: js/palette.js:598 -#: js/activity.js:1836 -msgid "voice name" +#: js/turtledefs.js:454 +#: js/turtledefs.js:491 +msgid "You can also type Alt-S to stop." msgstr "" -#: js/palette.js:601 -#: js/PitchBlocks.js:1181 -msgid "custom pitch" +#: js/turtledefs.js:462 +#: js/widgets/help.js:333 +msgid "Welcome to Music Blocks" msgstr "" -#: js/palette.js:605 -#: js/block.js:1456 -#: js/block.js:1575 -#: js/WidgetBlocks.js:218 -#: js/IntervalsBlocks.js:63 -msgid "temperament" +#: js/turtledefs.js:472 +#: js/widgets/help.js:334 +msgid "Meet Mr. Mouse!" msgstr "" -#: js/palette.js:609 -msgid "accidental" +#: js/turtledefs.js:473 +msgid "Mr Mouse is our Music Blocks conductor." msgstr "" -#: js/palette.js:615 -#: js/activity.js:1866 -msgid "interval name" +#: js/turtledefs.js:475 +msgid "Mr Mouse encourages you to explore Music Blocks." msgstr "" -#: js/palette.js:633 -#: js/PitchBlocks.js:405 -msgid "pitch converter" +#: js/turtledefs.js:477 +msgid "Let us start our tour!" msgstr "" -#: js/rubrics.js:522 -#: js/turtledefs.js:119 -#: js/turtledefs.js:221 -#: js/RhythmBlockPaletteBlocks.js:52 -#: js/RhythmBlockPaletteBlocks.js:233 -#: js/ProgramBlocks.js:745 -#: js/rhythmruler.js:1670 -#: js/rhythmruler.js:1677 -#: js/rhythmruler.js:1745 -#: js/rhythmruler.js:1752 -#: js/rhythmruler.js:1830 -#.TRANS: an arrangement of notes based on duration -msgid "rhythm" +#: js/turtledefs.js:489 +msgid "Stop the music (and the mice)." msgstr "" -#: js/rubrics.js:523 -#: js/block.js:2339 -#: js/turtledefs.js:121 -#: js/turtledefs.js:223 -#: js/IntervalsBlocks.js:63 -#: js/PitchBlocks.js:1801 -#: js/PitchBlocks.js:1814 -#: js/SensorsBlocks.js:178 -#: js/phrasemaker.js:821 -#: js/musickeyboard.js:1653 -#.TRANS: pitch number -#.TRANS: we specify pitch in terms of a name and an octave. The name can be CDEFGAB or Do Re Mi Fa Sol La Ti. Octave is a number between 1 and 8. -msgid "pitch" +#: js/turtledefs.js:499 +msgid "Record your project as video." msgstr "" -#: js/rubrics.js:524 -#: js/turtledefs.js:123 -#: js/turtledefs.js:225 -msgid "tone" +#: js/turtledefs.js:505 +msgid "Toggle Fullscreen mode." msgstr "" -#: js/rubrics.js:525 -#: js/lilypond.js:613 -#: js/lilypond.js:912 -#: js/lilypond.js:918 -#: js/lilypond.js:956 -msgid "mouse" +#: js/turtledefs.js:511 +msgid "Initialize a new project." msgstr "" -#: js/rubrics.js:526 -#: js/turtledefs.js:132 -#: js/turtledefs.js:234 -#: js/phrasemaker.js:825 -msgid "pen" +#: js/turtledefs.js:517 +msgid "You can also load projects from the file system." msgstr "" -#: js/rubrics.js:527 -#: js/turtledefs.js:133 -#: js/turtledefs.js:235 -#: js/NumberBlocks.js:905 -#: js/PitchBlocks.js:1679 -#: js/PitchBlocks.js:1720 -msgid "number" -msgstr "সংখ্যা" +#: js/turtledefs.js:522 +#: planet/js/StringHelper.js:46 +msgid "Delete" +msgstr "" -#: js/rubrics.js:528 -#: js/turtledefs.js:127 -#: js/turtledefs.js:229 -msgid "flow" +#: js/turtledefs.js:523 +msgid "To delete a block, just right-click on it, then you will be able to see the delete option" msgstr "" -#: js/rubrics.js:530 -#: js/turtledefs.js:136 -#: js/turtledefs.js:238 -msgid "sensors" +#: js/turtledefs.js:528 +#: js/activity.js:2649 +#: planet/js/LocalCard.js:31 +msgid "Copy" msgstr "" -#: js/rubrics.js:531 -#: js/turtledefs.js:135 -#: js/turtledefs.js:237 -#: js/MediaBlocks.js:930 -msgid "media" +#: js/turtledefs.js:529 +msgid "To copy a block, just right-click on it, then you will be able to see the copy option" msgstr "" -#: js/rubrics.js:532 -msgid "mice" +#: js/turtledefs.js:534 +#: js/piemenus.js:3411 +msgid "Extract" msgstr "" -#: js/macros.js:711 -#: js/musicutils.js:783 -#: js/synthutils.js:181 -#.TRANS: animal sound effect -msgid "duck" +#: js/turtledefs.js:535 +msgid "To extract a block, just right-click on it, then you will be able to see the extract option" msgstr "" -#: js/toolbar.js:46 -#: js/toolbar.js:107 -msgid "About Music Blocks" +#: js/turtledefs.js:542 +#: js/turtledefs.js:552 +#: js/turtledefs.js:573 +msgid "Save your project to a file." msgstr "" -#: js/toolbar.js:47 -#: js/toolbar.js:108 -#: js/toolbar.js:172 -#: js/toolbar.js:228 -#: js/turtledefs.js:445 -#: js/turtledefs.js:482 -#: js/activity.js:2281 -#: js/activity.js:2289 -#: js/activity.js:2520 -#: js/modewidget.js:77 -#: js/pitchstaircase.js:121 -#: js/phrasemaker.js:302 -#: js/phrasemaker.js:312 -#: js/phrasemaker.js:314 -#: js/phrasemaker.js:3901 -#: js/phrasemaker.js:4061 -#: js/phrasemaker.js:4066 -#: js/phrasemaker.js:4068 -#: js/phrasemaker.js:4183 -#: js/pitchdrummatrix.js:81 -#: js/pitchdrummatrix.js:574 -#: js/pitchdrummatrix.js:576 -#: js/pitchdrummatrix.js:628 -#: js/pitchdrummatrix.js:630 -#: js/pitchdrummatrix.js:645 -#: js/pitchdrummatrix.js:647 -#: js/pitchdrummatrix.js:674 -#: js/pitchdrummatrix.js:676 -#: js/temperament.js:477 -#: js/temperament.js:480 -#: js/temperament.js:540 -#: js/temperament.js:542 -#: js/temperament.js:1835 -#: js/temperament.js:1837 -#: js/temperament.js:1986 -#: js/temperament.js:1988 -#: js/musickeyboard.js:522 -#: js/musickeyboard.js:682 -#: js/musickeyboard.js:684 -#: js/musickeyboard.js:756 -#: js/musickeyboard.js:758 -#: js/rhythmruler.js:298 -#: js/rhythmruler.js:300 -#: js/rhythmruler.js:314 -#: js/rhythmruler.js:316 -#: js/sampler.js:96 -#: js/sampler.js:98 -#: js/sampler.js:229 -#: js/sampler.js:235 -#: js/sampler.js:237 -#: js/tempo.js:84 -#: js/tempo.js:86 -#: js/timbre.js:432 -#: js/timbre.js:434 -#: js/timbre.js:465 -#: js/timbre.js:467 -#: js/timbre.js:746 -#: js/meterwidget.js:80 -#: js/arpeggio.js:90 -#: js/arpeggio.js:547 -#: js/arpeggio.js:549 -#: js/arpeggio.js:644 -#: js/arpeggio.js:646 -msgid "Play" +#: js/turtledefs.js:549 +#: js/turtledefs.js:570 +msgid "save" msgstr "" -#: js/toolbar.js:48 -#: js/toolbar.js:109 -#: js/toolbar.js:173 -#: js/toolbar.js:229 -#: js/turtledefs.js:451 -#: js/turtledefs.js:488 -#: js/activity.js:2297 -#: js/modewidget.js:99 -#: js/modewidget.js:101 -#: js/phrasemaker.js:323 -#: js/phrasemaker.js:325 -#: js/pitchdrummatrix.js:561 -#: js/pitchdrummatrix.js:563 -#: js/temperament.js:1820 -#: js/temperament.js:1822 -#: js/meterwidget.js:101 -#: js/meterwidget.js:103 -#: js/arpeggio.js:534 -#: js/arpeggio.js:536 -msgid "Stop" -msgstr "ধাপ" +#: js/turtledefs.js:556 +#: js/turtledefs.js:577 +msgid "Save graphics from your project to as SVG." +msgstr "" -#: js/toolbar.js:49 -#: js/toolbar.js:110 -#: js/toolbar.js:174 -#: js/toolbar.js:230 -#: js/turtledefs.js:498 -msgid "Record" +#: js/turtledefs.js:560 +#: js/turtledefs.js:581 +msgid "Save graphics from your project as PNG." msgstr "" -#: js/toolbar.js:50 -#: js/toolbar.js:51 -msgid "Full screen" +#: js/turtledefs.js:564 +#: js/turtledefs.js:597 +msgid "Save block artwork as an SVG file." msgstr "" -#: js/toolbar.js:52 -#: js/toolbar.js:112 -#: js/toolbar.js:177 -#: js/toolbar.js:232 -#: js/turtledefs.js:504 -msgid "Toggle Fullscreen" +#: js/turtledefs.js:585 +msgid "Save audio from your project as WAV." msgstr "" -#: js/toolbar.js:53 -#: js/toolbar.js:113 -#: js/toolbar.js:178 -#: js/toolbar.js:233 -#: js/turtledefs.js:510 -#: js/StringHelper.js:33 -msgid "New project" +#: js/turtledefs.js:589 +msgid "Save your project to as an ABC file." msgstr "" -#: js/toolbar.js:54 -#: js/toolbar.js:114 -#: js/toolbar.js:179 -#: js/toolbar.js:234 -#: js/turtledefs.js:516 -msgid "Load project from file" +#: js/turtledefs.js:593 +msgid "Save your project to as a Lilypond file." msgstr "" -#: js/toolbar.js:55 -#: js/toolbar.js:115 -#: js/toolbar.js:116 -#: js/toolbar.js:180 -#: js/toolbar.js:235 -#: js/turtledefs.js:541 -#: js/turtledefs.js:550 -#: js/turtledefs.js:571 -msgid "Save project" +#: js/turtledefs.js:604 +msgid "Load samples from server" msgstr "" -#: js/toolbar.js:56 -#: js/toolbar.js:75 -#: js/toolbar.js:77 -#: js/toolbar.js:135 -#: js/toolbar.js:144 -#: js/toolbar.js:146 -#: js/toolbar.js:181 -#: js/toolbar.js:199 -#: js/toolbar.js:201 -#: js/toolbar.js:236 -#: js/toolbar.js:254 -#: js/toolbar.js:256 -msgid "Save project as HTML" +#: js/turtledefs.js:605 +msgid "This button opens a viewer for loading example projects." msgstr "" -#: js/toolbar.js:57 -#: js/toolbar.js:117 -#: js/toolbar.js:182 -#: js/toolbar.js:237 -msgid "Find and share projects" +#: js/turtledefs.js:611 +msgid "Palette buttons" msgstr "" -#: js/toolbar.js:58 -#: js/toolbar.js:118 -#: js/toolbar.js:183 -#: js/toolbar.js:238 -msgid "Offline. Sharing is unavailable" +#: js/turtledefs.js:612 +msgid "This toolbar contains the palette buttons including Rhythm Pitch Tone Action and more." +msgstr "" + +#: js/turtledefs.js:614 +msgid "Click to show the palettes of blocks and drag blocks from the palettes onto the canvas to use them." +msgstr "" + +#: js/turtledefs.js:620 +msgid "Cartesian/Polar" +msgstr "" + +#: js/turtledefs.js:621 +msgid "Show or hide a coordinate grid." +msgstr "" + +#: js/turtledefs.js:626 +#: js/turtles.js:902 +msgid "Clean" +msgstr "পরিষ্কার করো" + +#: js/turtledefs.js:627 +msgid "Clear the screen and return the mice to their initial positions." msgstr "" -#: js/toolbar.js:59 -#: js/toolbar.js:119 -#: js/toolbar.js:184 -#: js/toolbar.js:239 -msgid "Auxiliary menu" +#: js/turtledefs.js:632 +#: js/turtles.js:955 +msgid "Collapse" msgstr "" -#: js/toolbar.js:61 -#: js/toolbar.js:121 -#: js/toolbar.js:186 -#: js/toolbar.js:241 -msgid "Run slowly" +#: js/turtledefs.js:633 +msgid "Collapse the graphics window." msgstr "" -#: js/toolbar.js:62 -#: js/toolbar.js:122 -#: js/toolbar.js:187 -#: js/toolbar.js:242 -#: js/turtledefs.js:682 -msgid "Run step by step" +#: js/turtledefs.js:638 +#: js/activity.js:5684 +msgid "Home" msgstr "" -#: js/toolbar.js:63 -#: js/toolbar.js:123 -#: js/toolbar.js:188 -#: js/toolbar.js:243 -#: js/turtledefs.js:689 -msgid "Display statistics" +#: js/turtledefs.js:639 +msgid "Return all blocks to the center of the screen." msgstr "" -#: js/toolbar.js:64 -#: js/toolbar.js:124 -#: js/toolbar.js:189 -#: js/toolbar.js:244 -msgid "Load plugin" +#: js/turtledefs.js:644 +msgid "Show/hide blocks" msgstr "" -#: js/toolbar.js:65 -#: js/toolbar.js:125 -#: js/toolbar.js:190 -#: js/toolbar.js:245 -#: js/turtledefs.js:696 -msgid "Delete plugin" +#: js/turtledefs.js:645 +msgid "Hide or show the blocks and the palettes." msgstr "" -#: js/toolbar.js:66 -#: js/toolbar.js:126 -#: js/toolbar.js:191 -#: js/toolbar.js:246 -msgid "Enable horizontal scrolling" +#: js/turtledefs.js:650 +msgid "Expand/collapse collapsable blocks" msgstr "" -#: js/toolbar.js:67 -#: js/toolbar.js:127 -#: js/toolbar.js:192 -#: js/toolbar.js:247 -msgid "Disable horizontal scrolling" +#: js/turtledefs.js:651 +msgid "Expand or collapse start and action stacks." msgstr "" -#: js/toolbar.js:68 -#: js/toolbar.js:128 -#: js/toolbar.js:193 -#: js/toolbar.js:248 -#: js/LocalCard.js:54 -#: js/StringHelper.js:71 -msgid "Merge with current project" +#: js/turtledefs.js:658 +#: js/activity.js:5704 +msgid "Decrease block size" msgstr "" -#: js/toolbar.js:69 -#: js/toolbar.js:129 -msgid "Set Pitch Preview" +#: js/turtledefs.js:659 +msgid "Decrease the size of the blocks." msgstr "" -#: js/toolbar.js:70 -#: js/toolbar.js:130 -#: js/toolbar.js:194 -#: js/toolbar.js:249 -msgid "Toggle JavaScript Editor" +#: js/turtledefs.js:664 +#: js/activity.js:5710 +msgid "Increase block size" msgstr "" -#: js/toolbar.js:71 -#: js/toolbar.js:131 -#: js/toolbar.js:195 -#: js/toolbar.js:250 -#: js/turtledefs.js:724 -msgid "Restore" +#: js/turtledefs.js:665 +msgid "Increase the size of the blocks." msgstr "" -#: js/toolbar.js:72 -#: js/toolbar.js:132 -#: js/toolbar.js:196 -#: js/toolbar.js:251 -msgid "Switch to beginner mode" +#: js/turtledefs.js:670 +msgid "Expand/collapse option toolbar" msgstr "" -#: js/toolbar.js:73 -#: js/toolbar.js:133 -#: js/toolbar.js:197 -#: js/toolbar.js:252 -msgid "Switch to advanced mode" +#: js/turtledefs.js:671 +msgid "Click this button to expand or collapse the auxillary toolbar." msgstr "" -#: js/toolbar.js:74 -#: js/toolbar.js:134 -#: js/toolbar.js:143 -#: js/toolbar.js:198 -#: js/toolbar.js:253 -#: js/turtledefs.js:738 -msgid "Select language" +#: js/turtledefs.js:676 +msgid "Run slow" msgstr "" -#: js/toolbar.js:76 -#: js/toolbar.js:79 -#: js/toolbar.js:137 -#: js/turtledefs.js:579 -msgid "Save mouse artwork as PNG" +#: js/turtledefs.js:677 +msgid "Click to run the project in slow mode." msgstr "" -#: js/toolbar.js:78 -#: js/toolbar.js:136 -#: js/turtledefs.js:575 -msgid "Save mouse artwork as SVG" +#: js/turtledefs.js:683 +msgid "Click to run the project step by step." msgstr "" -#: js/toolbar.js:80 -#: js/toolbar.js:138 -#: js/turtledefs.js:583 -msgid "Save music as WAV" +#: js/turtledefs.js:690 +msgid "Display statistics about your Music project." msgstr "" -#: js/toolbar.js:81 -#: js/toolbar.js:139 -#: js/turtledefs.js:587 -msgid "Save sheet music as ABC" +#: js/turtledefs.js:697 +msgid "Delete a selected plugin." msgstr "" -#: js/toolbar.js:82 -#: js/toolbar.js:140 -#: js/turtledefs.js:591 -msgid "Save sheet music as Lilypond" +#: js/turtledefs.js:704 +msgid "Enable scrolling" msgstr "" -#: js/toolbar.js:83 -msgid "Save sheet music as MusicXML" +#: js/turtledefs.js:705 +msgid "You can scroll the blocks on the canvas." msgstr "" -#: js/toolbar.js:84 -#: js/toolbar.js:141 -#: js/toolbar.js:149 -#: js/toolbar.js:204 -#: js/toolbar.js:259 -#: js/turtledefs.js:562 -#: js/turtledefs.js:595 -msgid "Save block artwork as SVG" +#: js/turtledefs.js:714 +msgid "Wrap Turtle" msgstr "" -#: js/toolbar.js:85 -#: js/toolbar.js:142 -#: js/toolbar.js:150 -#: js/toolbar.js:205 -#: js/toolbar.js:260 -msgid "Confirm" +#: js/turtledefs.js:715 +msgid "Turn Turtle wrapping On or Off." msgstr "" -#: js/toolbar.js:86 -#: js/toolbar.js:151 -#: js/toolbar.js:206 -#: js/toolbar.js:261 -msgid "English (United States)" +#: js/turtledefs.js:725 +msgid "Restore blocks from the trash." msgstr "" -#: js/toolbar.js:87 -#: js/toolbar.js:152 -#: js/toolbar.js:207 -#: js/toolbar.js:262 -msgid "English (United Kingdom)" +#: js/turtledefs.js:732 +msgid "Switch mode" msgstr "" -#: js/toolbar.js:88 -#: js/toolbar.js:153 -#: js/toolbar.js:208 -#: js/toolbar.js:263 -msgid "日本語" +#: js/turtledefs.js:733 +msgid "Switch between beginner and advance modes." msgstr "" -#: js/toolbar.js:89 -msgid "한국어" +#: js/turtledefs.js:739 +msgid "Select your language preference." msgstr "" -#: js/toolbar.js:90 -#: js/toolbar.js:155 -#: js/toolbar.js:210 -#: js/toolbar.js:265 -msgid "español" +#: js/turtledefs.js:745 +msgid "Keyboard shortcuts" msgstr "" -#: js/toolbar.js:91 -#: js/toolbar.js:156 -#: js/toolbar.js:211 -#: js/toolbar.js:266 -msgid "português" +#: js/turtledefs.js:746 +msgid "You can type d to create a do block and r to create a re block etc." msgstr "" -#: js/toolbar.js:92 -#: js/toolbar.js:157 -#: js/toolbar.js:212 -#: js/toolbar.js:267 -msgid "にほんご" +#: js/turtledefs.js:753 +msgid "Show these messages." msgstr "" -#: js/toolbar.js:93 -#: js/toolbar.js:158 -#: js/toolbar.js:213 -#: js/toolbar.js:268 -msgid "中文" +#: js/turtledefs.js:759 +#: js/turtledefs.js:790 +#: js/widgets/help.js:335 +msgid "Guide" msgstr "" -#: js/toolbar.js:94 -#: js/toolbar.js:159 -#: js/toolbar.js:214 -#: js/toolbar.js:269 -msgid "ภาษาไทย" +#: js/turtledefs.js:760 +msgid "A detailed guide to Turtle Blocks is available." msgstr "" -#: js/toolbar.js:95 -#: js/toolbar.js:160 -#: js/toolbar.js:215 -#: js/toolbar.js:270 -msgid "aymara" +#: js/turtledefs.js:764 +msgid "Turtle Blocks Guide" msgstr "" -#: js/toolbar.js:96 -#: js/toolbar.js:161 -#: js/toolbar.js:216 -#: js/toolbar.js:271 -msgid "quechua" +#: js/turtledefs.js:767 +#: js/turtledefs.js:798 +#: js/widgets/help.js:336 +msgid "About" msgstr "" -#: js/toolbar.js:97 -#: js/toolbar.js:162 -#: js/toolbar.js:217 -#: js/toolbar.js:272 -msgid "guarani" +#: js/turtledefs.js:768 +msgid "Turtle Blocks is an open source collection of tools for exploring musical concepts." msgstr "" -#: js/toolbar.js:98 -#: js/toolbar.js:163 -#: js/toolbar.js:218 -#: js/toolbar.js:273 -msgid "हिंदी" +#: js/turtledefs.js:770 +msgid "A full list of contributors can be found in the Turtle Blocks GitHub repository." +msgstr "" + +#: js/turtledefs.js:772 +msgid "Turtle Blocks is licensed under the AGPL." msgstr "" -#: js/toolbar.js:99 -#: js/toolbar.js:165 -#: js/toolbar.js:219 -#: js/toolbar.js:275 -msgid "igbo" +#: js/turtledefs.js:780 +msgid "Turtle Blocks GitHub repository" msgstr "" -#: js/toolbar.js:100 -#: js/toolbar.js:166 -#: js/toolbar.js:220 -#: js/toolbar.js:276 -msgid "عربى" +#: js/turtledefs.js:783 +#: js/turtledefs.js:814 +#: js/widgets/help.js:337 +#: js/widgets/help.js:359 +msgid "Congratulations." msgstr "" -#: js/toolbar.js:101 -#: js/toolbar.js:164 -#: js/toolbar.js:221 -#: js/toolbar.js:274 -msgid "తెలుగు" +#: js/turtledefs.js:784 +msgid "You have finished the tour. Please enjoy Turtle Blocks!" msgstr "" -#: js/toolbar.js:102 -#: js/toolbar.js:167 -#: js/toolbar.js:222 -#: js/toolbar.js:277 -msgid "עִברִית" +#: js/turtledefs.js:791 +msgid "A detailed guide to Music Blocks is available." msgstr "" -#: js/toolbar.js:111 -#: js/toolbar.js:175 -#: js/toolbar.js:176 -#: js/toolbar.js:231 -msgid "Full Screen" +#: js/turtledefs.js:799 +msgid "Music Blocks is an open source collection of tools for exploring musical concepts." msgstr "" -#: js/toolbar.js:145 -#: js/toolbar.js:148 -#: js/toolbar.js:200 -#: js/toolbar.js:203 -#: js/toolbar.js:255 -#: js/toolbar.js:258 -#: js/turtledefs.js:558 -msgid "Save turtle artwork as PNG" +#: js/turtledefs.js:801 +msgid "A full list of contributors can be found in the Music Blocks GitHub repository." msgstr "" -#: js/toolbar.js:147 -#: js/toolbar.js:202 -#: js/toolbar.js:257 -#: js/turtledefs.js:554 -msgid "Save turtle artwork as SVG" +#: js/turtledefs.js:803 +msgid "Music Blocks is licensed under the AGPL." msgstr "" -#: js/toolbar.js:154 -#: js/toolbar.js:209 -#: js/toolbar.js:264 -msgid "한국인" +#: js/turtledefs.js:811 +msgid "Music Blocks GitHub repository" msgstr "" -#: js/toolbar.js:171 -#: js/toolbar.js:227 -msgid "About Turtle Blocks" +#: js/turtledefs.js:815 +msgid "You have finished the tour. Please enjoy Music Blocks!" msgstr "" -#: js/toolbar.js:429 -#: js/toolbar.js:440 -msgid "Turtle Wrap Off" +#: js/turtles.js:882 +msgid "Grid" +msgstr "ঝাঁজরি" + +#: js/turtles.js:1024 +msgid "Expand" msgstr "" -#: js/toolbar.js:442 -msgid "Turtle Wrap On" +#: js/block-verbose.js:1616 +#: js/block-verbose.js:1735 +#: js/block.js:1580 +#: js/block.js:1699 +#: js/palette.js:605 +#: js/blocks/IntervalsBlocks.js:63 +#: js/blocks/WidgetBlocks.js:259 +msgid "temperament" msgstr "" -#: js/block.js:1470 +#: js/block-verbose.js:1630 +#: js/block.js:1594 msgid "matrix" msgstr "" -#: js/block.js:1477 -#: js/WidgetBlocks.js:1226 +#: js/block-verbose.js:1637 +#: js/block.js:1601 +#: js/blocks/WidgetBlocks.js:1509 #: plugins/rodi.rtp:324 msgid "status" msgstr "" -#: js/block.js:1484 +#: js/block-verbose.js:1644 +#: js/block.js:1608 msgid "drum mapper" msgstr "" -#: js/block.js:1491 +#: js/block-verbose.js:1651 +#: js/block.js:1615 msgid "ruler" msgstr "" -#: js/block.js:1498 -#: js/WidgetBlocks.js:327 +#: js/block-verbose.js:1658 +#: js/block.js:1622 +#: js/blocks/WidgetBlocks.js:397 #.TRANS: timbre is the character or quality of a musical sound msgid "timbre" msgstr "" -#: js/block.js:1505 +#: js/block-verbose.js:1665 +#: js/block.js:1629 msgid "stair" msgstr "" -#: js/block.js:1512 -#: js/WidgetBlocks.js:577 +#: js/block-verbose.js:1672 +#: js/block.js:1636 +#: js/blocks/WidgetBlocks.js:707 #.TRANS: the speed at music is should be played. msgid "tempo" msgstr "" -#: js/block.js:1519 -#: js/block.js:1582 -#: js/IntervalsBlocks.js:1268 +#: js/block-verbose.js:1679 +#: js/block-verbose.js:1742 +#: js/block.js:1643 +#: js/block.js:1706 +#: js/blocks/IntervalsBlocks.js:1464 #.TRANS: mode, e.g., Major in C Major msgid "mode" msgstr "" -#: js/block.js:1526 +#: js/block-verbose.js:1686 +#: js/block.js:1650 msgid "slider" msgstr "" -#: js/block.js:1533 -#: js/SensorsBlocks.js:1001 +#: js/block-verbose.js:1693 +#: js/block.js:1657 +#: js/blocks/SensorsBlocks.js:1001 msgid "keyboard" msgstr "কী-বোর্ড" -#: js/block.js:1547 -#: js/WidgetBlocks.js:957 -#: js/WidgetBlocks.js:988 +#: js/block-verbose.js:1707 +#: js/block.js:1671 +#: js/blocks/WidgetBlocks.js:1190 +#: js/blocks/WidgetBlocks.js:1228 #.TRANS: widget for subdividing a measure into distinct rhythmic elements msgid "rhythm maker" msgstr "" -#: js/block.js:1554 -#: js/block.js:2182 -#: js/block.js:2236 -#: js/RhythmBlockPaletteBlocks.js:70 -#: js/RhythmBlockPaletteBlocks.js:251 -#: js/RhythmBlockPaletteBlocks.js:484 -#: js/RhythmBlockPaletteBlocks.js:553 -#: js/RhythmBlockPaletteBlocks.js:604 -#: js/RhythmBlockPaletteBlocks.js:874 -#: js/RhythmBlocks.js:33 -#: js/RhythmBlocks.js:356 -#: js/RhythmBlocks.js:766 -#: js/RhythmBlocks.js:806 -#: js/OrnamentBlocks.js:220 -#: js/OrnamentBlocks.js:312 -#: js/MeterBlocks.js:1367 -#: js/DictActions.js:85 -#: js/phrasemaker.js:731 -#: js/phrasemaker.js:2393 -#: js/phrasemaker.js:2436 -#: js/phrasemaker.js:2534 +#: js/block-verbose.js:1714 +#: js/block-verbose.js:2457 +#: js/block-verbose.js:2514 +#: js/block.js:1678 +#: js/block.js:2385 +#: js/block.js:2442 +#: js/blocks/MeterBlocks.js:1367 +#: js/blocks/OrnamentBlocks.js:220 +#: js/blocks/OrnamentBlocks.js:312 +#: js/blocks/RhythmBlocks.js:33 +#: js/blocks/RhythmBlocks.js:356 +#: js/blocks/RhythmBlocks.js:766 +#: js/blocks/RhythmBlocks.js:806 +#: js/blocks/RhythmBlockPaletteBlocks.js:70 +#: js/blocks/RhythmBlockPaletteBlocks.js:252 +#: js/blocks/RhythmBlockPaletteBlocks.js:485 +#: js/blocks/RhythmBlockPaletteBlocks.js:554 +#: js/blocks/RhythmBlockPaletteBlocks.js:605 +#: js/blocks/RhythmBlockPaletteBlocks.js:875 +#: js/turtleactions/DictActions.js:85 +#: js/widgets/phrasemaker.js:942 +#: js/widgets/phrasemaker.js:2656 +#: js/widgets/phrasemaker.js:2699 +#: js/widgets/phrasemaker.js:2810 #.TRANS: the value (e.g., 1/4 note) of the note being played. msgid "note value" msgstr "" -#: js/block.js:1561 -#: js/block.js:2110 -#: js/block.js:2133 -#: js/IntervalsBlocks.js:875 -#: js/OrnamentBlocks.js:312 +#: js/block-verbose.js:1721 +#: js/block-verbose.js:2382 +#: js/block-verbose.js:2405 +#: js/block.js:1685 +#: js/block.js:2310 +#: js/block.js:2333 +#: js/blocks/IntervalsBlocks.js:1071 +#: js/blocks/OrnamentBlocks.js:312 #.TRANS: calculate a relative step between notes based on semi-tones msgid "scalar interval" msgstr "" -#: js/block.js:1568 -#: js/RhythmBlocks.js:148 +#: js/block-verbose.js:1728 +#: js/block.js:1692 +#: js/blocks/RhythmBlocks.js:148 msgid "milliseconds" msgstr "" -#: js/block.js:2180 -#: js/block.js:2184 -#: js/block.js:2234 -#: js/block.js:2345 -#: js/ProgramBlocks.js:1273 -#: js/RhythmBlocks.js:712 -#: js/rhythmruler.js:834 -#: js/rhythmruler.js:961 +#: js/block-verbose.js:2455 +#: js/block-verbose.js:2459 +#: js/block-verbose.js:2512 +#: js/block-verbose.js:2628 +#: js/block.js:2383 +#: js/block.js:2387 +#: js/block.js:2440 +#: js/block.js:2556 +#: js/blocks/RhythmBlocks.js:712 +#: js/blocks/ProgramBlocks.js:1273 +#: js/widgets/rhythmruler.js:1183 +#: js/widgets/rhythmruler.js:1329 msgid "silence" msgstr "" -#: js/block.js:2265 -#: js/block.js:3134 -#: js/block.js:3151 -#: js/activity.js:2336 -#: js/activity.js:2387 -#: js/musicutils.js:2932 -#: js/musicutils.js:4287 +#: js/block-verbose.js:2548 +#: js/block-verbose.js:3492 +#: js/block-verbose.js:3509 +#: js/activity.js:2718 +#: js/activity.js:2769 +#: js/block.js:2476 +#: js/block.js:3416 +#: js/block.js:3433 +#: js/utils/musicutils.js:3780 +#: js/utils/musicutils.js:5273 +#.TRANS: the note names must be separated by single spaces #.TRANS: the note names must be separated by single spaces #.TRANS: the note names must be separated by single spaces msgid "ti la sol fa mi re do" msgstr "" -#: js/block.js:2333 +#: js/block-verbose.js:2616 +#: js/block.js:2544 +#.TRANS: scalar step #.TRANS: scalar step msgid "down" msgstr "" -#: js/block.js:2334 +#: js/block-verbose.js:2617 +#: js/block.js:2545 msgid "up" msgstr "" -#: js/block.js:3477 -#: js/block.js:3490 -#: js/ExtrasBlocks.js:612 +#: js/block-verbose.js:3026 +#: js/block.js:2950 +msgid "Silence block cannot be removed." +msgstr "" + +#: js/block-verbose.js:3824 +#: js/block.js:3748 +#: js/blocks.js:2607 +#: js/blocks.js:3218 +#: js/palette.js:618 +#: js/blocks/BooleanBlocks.js:77 +#: js/blocks/BooleanBlocks.js:167 +#: js/blocks/BooleanBlocks.js:251 +#: js/blocks/BooleanBlocks.js:335 +#: js/blocks/BooleanBlocks.js:433 +#: js/blocks/BooleanBlocks.js:539 +#: js/blocks/BooleanBlocks.js:640 +#: js/blocks/BooleanBlocks.js:741 +#: js/blocks/BooleanBlocks.js:847 +#: js/blocks/BooleanBlocks.js:948 +#: js/blocks/BooleanBlocks.js:1033 +#: js/blocks/SensorsBlocks.js:910 +msgid "true" +msgstr "" + +#: js/block-verbose.js:3824 +#: js/block.js:3748 +#: js/blocks.js:2609 +#: js/blocks.js:3220 +#: js/blocks/BooleanBlocks.js:79 +#: js/blocks/BooleanBlocks.js:169 +#: js/blocks/BooleanBlocks.js:253 +#: js/blocks/BooleanBlocks.js:337 +#: js/blocks/BooleanBlocks.js:435 +#: js/blocks/BooleanBlocks.js:541 +#: js/blocks/BooleanBlocks.js:642 +#: js/blocks/BooleanBlocks.js:743 +#: js/blocks/BooleanBlocks.js:849 +#: js/blocks/BooleanBlocks.js:950 +#: js/blocks/SensorsBlocks.js:912 +msgid "false" +msgstr "" + +#: js/block-verbose.js:3835 +#: js/block-verbose.js:3848 +#: js/block.js:3759 +#: js/block.js:3772 +#: js/blocks/ExtrasBlocks.js:615 msgid "Cartesian" msgstr "" -#: js/block.js:3478 -#: js/block.js:3491 -#: js/ExtrasBlocks.js:616 +#: js/block-verbose.js:3836 +#: js/block-verbose.js:3849 +#: js/block.js:3760 +#: js/block.js:3773 +#: js/blocks/ExtrasBlocks.js:619 msgid "polar" msgstr "" -#: js/block.js:3479 -#: js/block.js:3492 -#: js/ExtrasBlocks.js:620 +#: js/block-verbose.js:3837 +#: js/block-verbose.js:3850 +#: js/block.js:3761 +#: js/block.js:3774 +#: js/blocks/ExtrasBlocks.js:623 msgid "Cartesian+polar" msgstr "" -#: js/block.js:3480 -#: js/block.js:3499 -#: js/ExtrasBlocks.js:649 +#: js/block-verbose.js:3838 +#: js/block-verbose.js:3857 +#: js/block.js:3762 +#: js/block.js:3781 +#: js/blocks/ExtrasBlocks.js:652 msgid "none" msgstr "" -#: js/block.js:3493 -#: js/ExtrasBlocks.js:625 +#: js/block-verbose.js:3851 +#: js/block.js:3775 +#: js/blocks/ExtrasBlocks.js:628 msgid "treble" msgstr "" -#: js/block.js:3494 -#: js/ExtrasBlocks.js:629 +#: js/block-verbose.js:3852 +#: js/block.js:3776 +#: js/blocks/ExtrasBlocks.js:632 msgid "grand staff" msgstr "" -#: js/block.js:3495 -#: js/ExtrasBlocks.js:633 +#: js/block-verbose.js:3853 +#: js/block.js:3777 +#: js/blocks/ExtrasBlocks.js:636 msgid "mezzo-soprano" msgstr "" -#: js/block.js:3496 -#: js/ExtrasBlocks.js:637 +#: js/block-verbose.js:3854 +#: js/block.js:3778 +#: js/blocks/ExtrasBlocks.js:640 msgid "alto" msgstr "" -#: js/block.js:3497 -#: js/ExtrasBlocks.js:641 +#: js/block-verbose.js:3855 +#: js/block.js:3779 +#: js/blocks/ExtrasBlocks.js:644 msgid "tenor" msgstr "" -#: js/block.js:3498 -#: js/ExtrasBlocks.js:645 -#: js/musicutils.js:736 -#: js/synthutils.js:64 +#: js/block-verbose.js:3856 +#: js/block.js:3780 +#: js/utils/musicutils.js:1115 +#: js/utils/synthutils.js:80 +#: js/blocks/ExtrasBlocks.js:648 #.TRANS: musical instrument msgid "bass" msgstr "" -#: js/block.js:4075 +#: js/block-verbose.js:3901 +#: js/block.js:3825 +#: js/blocks.js:2600 +#: js/blocks.js:3211 +msgid "on2" +msgstr "" + +#: js/block-verbose.js:3903 +#: js/block.js:3827 +#: js/blocks.js:2602 +#: js/blocks.js:3213 +msgid "off" +msgstr "" + +#: js/block-verbose.js:4470 +#: js/block.js:4394 msgid "Not a number" msgstr "" -#: js/block.js:4082 +#: js/block-verbose.js:4477 +#: js/block.js:4401 msgid "Octave value must be between 1 and 10." msgstr "" -#: js/block.js:4090 +#: js/block-verbose.js:4485 +#: js/block.js:4409 msgid "Numbers can have at most 10 digits." msgstr "" -#: js/notation.js:353 -msgid "Lilypond cannot process pickup of " +#: js/activity.js:390 +#: js/activity.js:395 +msgid "Search for blocks" msgstr "" -#: js/turtledefs.js:40 -#.TRANS: put the URL to the guide here, e.g., https://github.com/sugarlabs/turtleblocksjs/tree/master/guide/README.md -msgid "guide url" +#: js/activity.js:1413 +msgid "Refresh your browser to change to advanced mode." msgstr "" -#: js/turtledefs.js:85 -#: js/turtledefs.js:437 -msgid "Turtle Blocks is a Logo-inspired turtle that draws colorful pictures with snap-together visual-programming blocks." +#: js/activity.js:1418 +msgid "Refresh your browser to change to beginner mode." msgstr "" -#: js/turtledefs.js:118 -#: js/turtledefs.js:220 -msgid "search" +#: js/activity.js:1477 +msgid "Catching mice" msgstr "" -#: js/turtledefs.js:120 -#: js/turtledefs.js:222 -#: js/WidgetBlocks.js:437 -#: js/MeterBlocks.js:1343 -#.TRANS: musical meter (time signature), e.g., 4:4 -msgid "meter" +#: js/activity.js:1478 +msgid "Cleaning the instruments" +msgstr "" + +#: js/activity.js:1479 +msgid "Testing key pieces" +msgstr "" + +#: js/activity.js:1480 +msgid "Sight-reading" +msgstr "" + +#: js/activity.js:1481 +msgid "Combining math and music" +msgstr "" + +#: js/activity.js:1482 +msgid "Generating more blocks" +msgstr "" + +#: js/activity.js:1483 +msgid "Do Re Mi Fa Sol La Ti Do" +msgstr "" + +#: js/activity.js:1484 +msgid "Tuning string instruments" +msgstr "" + +#: js/activity.js:1485 +msgid "Pressing random keys" +msgstr "" + +#: js/activity.js:1663 +msgid "plugins will be removed upon restart." +msgstr "" + +#: js/activity.js:1672 +msgid "show Cartesian" +msgstr "" + +#: js/activity.js:2211 +#: js/palette.js:589 +#: js/blocks/RhythmBlocks.js:923 +#: js/blocks/PitchBlocks.js:442 +#: js/blocks/PitchBlocks.js:1786 +#.TRANS: a numeric mapping of the notes in an octave based on the musical mode +msgid "scale degree" +msgstr "" + +#: js/activity.js:2214 +#: js/palette.js:598 +msgid "voice name" +msgstr "" + +#: js/activity.js:2217 +#: js/palette.js:595 +msgid "invert mode" +msgstr "" + +#: js/activity.js:2220 +msgid "output tools" +msgstr "" + +#: js/activity.js:2223 +msgid "custom note" +msgstr "" + +#: js/activity.js:2226 +msgid "accidental name" +msgstr "" + +#: js/activity.js:2229 +#: js/blocks/PitchBlocks.js:855 +msgid "east indian solfege" +msgstr "" + +#: js/activity.js:2232 +#: js/blocks/PitchBlocks.js:869 +msgid "note name" +msgstr "" + +#: js/activity.js:2235 +#: js/blocks/IntervalsBlocks.js:94 +msgid "temperament name" +msgstr "" + +#: js/activity.js:2238 +#: js/palette.js:592 +msgid "mode name" +msgstr "" + +#: js/activity.js:2241 +msgid "chord name" +msgstr "" + +#: js/activity.js:2244 +#: js/palette.js:615 +msgid "interval name" +msgstr "" + +#: js/activity.js:2247 +msgid "filter type" +msgstr "" + +#: js/activity.js:2250 +msgid "oscillator type" +msgstr "" + +#: js/activity.js:2253 +#: js/blocks.js:2479 +#: js/blocks.js:2487 +msgid "audio file" +msgstr "" + +#: js/activity.js:2256 +#: js/blocks/DrumBlocks.js:32 +msgid "noise name" +msgstr "" + +#: js/activity.js:2259 +#: js/blocks/DrumBlocks.js:75 +msgid "drum name" +msgstr "" + +#: js/activity.js:2262 +#: js/blocks/DrumBlocks.js:119 +msgid "effects name" +msgstr "" + +#: js/activity.js:2265 +msgid "wrap mode" +msgstr "" + +#: js/activity.js:2268 +msgid "load file" +msgstr "" + +#: js/activity.js:2435 +#: js/activity.js:5851 +msgid "This block is deprecated." +msgstr "" + +#: js/activity.js:2437 +#: js/activity.js:5853 +msgid "Block cannot be found." +msgstr "" + +#: js/activity.js:2645 +msgid "Saving block artwork" +msgstr "" + +#: js/activity.js:2656 +msgid "Erase" +msgstr "" + +#: js/activity.js:2683 +#: js/activity.js:2705 +msgid "Paste" +msgstr "" + +#: js/activity.js:2687 +msgid "Save block help" +msgstr "" + +#: js/activity.js:2772 +msgid "Jumping to the bottom of the page." +msgstr "" + +#: js/activity.js:2778 +msgid "Scrolling up." +msgstr "" + +#: js/activity.js:2783 +msgid "Scrolling down." +msgstr "" + +#: js/activity.js:2788 +msgid "Extracting block" +msgstr "" + +#: js/activity.js:2796 +msgid "Moving block up." +msgstr "" + +#: js/activity.js:2817 +msgid "Moving block down." +msgstr "" + +#: js/activity.js:2838 +msgid "Moving block left." +msgstr "" + +#: js/activity.js:2855 +msgid "Moving block right." +msgstr "" + +#: js/activity.js:2870 +msgid "Jump to home position." +msgstr "" + +#: js/activity.js:2897 +msgid "Hide blocks" msgstr "" -#: js/turtledefs.js:122 -#: js/turtledefs.js:224 -msgid "intervals" +#: js/activity.js:4500 +msgid "Click the run button to run the project." msgstr "" -#: js/turtledefs.js:124 -#: js/turtledefs.js:226 -msgid "ornament" +#: js/activity.js:5692 +msgid "Show/hide block" msgstr "" -#: js/turtledefs.js:125 -#: js/turtledefs.js:227 -#: js/VolumeBlocks.js:362 -#: js/VolumeBlocks.js:502 -#: js/VolumeBlocks.js:545 -msgid "volume" +#: js/activity.js:5698 +msgid "Expand/collapse blocks" msgstr "" -#: js/turtledefs.js:129 -#: js/turtledefs.js:231 -msgid "boxes" +#: js/activity.js:5976 +msgid "Could not parse JSON input." msgstr "" -#: js/turtledefs.js:130 -#: js/turtledefs.js:232 -msgid "widgets" +#: js/activity.js:6475 +#: js/activity.js:6580 +#: js/activity.js:6631 +msgid "Cannot load project from the file. Please check the file type." msgstr "" -#: js/turtledefs.js:131 -#: js/turtledefs.js:233 -#: js/phrasemaker.js:824 -msgid "graphics" +#: js/activity.js:6917 +msgid "Invalid parameters" msgstr "" -#: js/turtledefs.js:134 -#: js/turtledefs.js:236 -msgid "boolean" -msgstr "" +#: js/blocks.js:1212 +#: js/blocks.js:3444 +#: js/blocks.js:3834 +#: js/blocks.js:3865 +#: js/blocks.js:3914 +#: js/blocks.js:3949 +#: js/blocks.js:6586 +#: js/palette.js:509 +#: js/palette.js:638 +#: js/palette.js:1105 +#: js/blocks/BoxesBlocks.js:282 +#: js/blocks/BoxesBlocks.js:285 +#: js/blocks/BoxesBlocks.js:405 +#: js/blocks/BoxesBlocks.js:594 +msgid "box" +msgstr "বাক্স" -#: js/turtledefs.js:137 -#: js/turtledefs.js:239 -#: js/HeapBlocks.js:59 -#: js/status.js:147 -msgid "heap" +#: js/blocks.js:1713 +msgid "Consider breaking this stack into parts." msgstr "" -#: js/turtledefs.js:138 -#: js/turtledefs.js:240 -#: js/ProgramBlocks.js:495 -#: js/DictBlocks.js:142 -msgid "dictionary" +#: js/blocks.js:2472 +#: js/palette.js:653 +#: js/blocks/MediaBlocks.js:602 +msgid "open file" msgstr "" -#: js/turtledefs.js:139 -#: js/turtledefs.js:241 -msgid "ensemble" +#: js/blocks.js:3247 +#: js/palette.js:574 +#: js/blocks/MediaBlocks.js:892 +#: js/blocks/MediaBlocks.js:963 +msgid "text" +msgstr "টেক্সট" + +#: js/blocks.js:3443 +#: js/palette.js:641 +#: js/palette.js:642 +#: js/blocks/BoxesBlocks.js:514 +msgid "store in box" msgstr "" -#: js/turtledefs.js:140 -#: js/turtledefs.js:242 -msgid "extras" +#: js/blocks.js:3448 +#: js/blocks.js:3888 +#: js/blocks.js:3923 +#: js/blocks.js:3958 +#: js/blocks.js:5862 +#: js/blocks.js:5883 +#: js/blocks/BoxesBlocks.js:772 +msgid "box1" msgstr "" -#: js/turtledefs.js:142 -#: js/turtledefs.js:244 -#.TRANS: program as in computer program -#.TRANS: program as in computer program -msgid "program" +#: js/blocks.js:3450 +#: js/blocks.js:3890 +#: js/blocks.js:3925 +#: js/blocks.js:3960 +#: js/blocks.js:5864 +#: js/blocks.js:5885 +#: js/blocks/BoxesBlocks.js:663 +msgid "box2" msgstr "" -#: js/turtledefs.js:143 -#: js/turtledefs.js:245 -msgid "my blocks" +#: js/blocks.js:4122 +#: js/palette.js:639 +#: js/palette.js:644 +#: js/palette.js:1041 +#: js/blocks/BoxesBlocks.js:591 +msgid "store in" msgstr "" -#: js/turtledefs.js:185 -#: js/turtledefs.js:281 -msgid "artwork" +#: js/blocks.js:4122 +#: js/blocks/BoxesBlocks.js:595 +#: js/blocks/DictBlocks.js:215 +#: js/blocks/DictBlocks.js:289 +#: js/blocks/EnsembleBlocks.js:391 +#: js/blocks/EnsembleBlocks.js:402 +#: js/blocks/MediaBlocks.js:746 +#: js/blocks/PitchBlocks.js:656 +#: js/blocks/PitchBlocks.js:934 +#: js/blocks/PitchBlocks.js:1866 +#: js/blocks/ProgramBlocks.js:390 +#: js/blocks/ProgramBlocks.js:495 +#: js/blocks/ProgramBlocks.js:658 +#: js/blocks/ToneBlocks.js:1025 +msgid "name" msgstr "" -#: js/turtledefs.js:185 -#: js/turtledefs.js:281 -msgid "logic" +#: js/blocks.js:4122 +#: js/blocks/BoxesBlocks.js:75 +#: js/blocks/BoxesBlocks.js:595 +#: js/blocks/DictBlocks.js:289 +#: js/blocks/DictBlocks.js:430 +#: js/blocks/HeapBlocks.js:544 +#: js/blocks/RhythmBlocks.js:1130 +msgid "value" msgstr "" -#: js/turtledefs.js:185 -#: js/turtledefs.js:281 -msgid "music" +#: js/blocks.js:4465 +msgid "Forever loop detected inside a note value block. Unexpected things may happen." msgstr "" -#: js/turtledefs.js:187 -#: js/turtledefs.js:463 -msgid "Music Blocks is a collection of tools for exploring fundamental musical concepts in a fun way." +#: js/blocks.js:4988 +msgid "There is no block selected." msgstr "" -#: js/turtledefs.js:436 -msgid "Welcome to Turtle Blocks" +#: js/blocks.js:5091 +#: js/blocks/MediaBlocks.js:888 +msgid "show" msgstr "" -#: js/turtledefs.js:438 -#: js/turtledefs.js:465 -#: js/turtledefs.js:774 -#: js/turtledefs.js:805 -msgid "The current version is" +#: js/blocks.js:5094 +#: js/blocks/MediaBlocks.js:803 +#.TRANS: Avatar is the image used to determine the appearance of the mouse. +msgid "avatar" msgstr "" -#: js/turtledefs.js:446 -#: js/turtledefs.js:483 -msgid "Click the run button to run the project in fast mode." +#: js/blocks.js:5097 +#: js/blocks/ToneBlocks.js:1010 +#: js/widgets/sampler.js:975 +#.TRANS: The sound sample that the user uploads. +msgid "sample" msgstr "" -#: js/turtledefs.js:452 -msgid "Stop the turtle." +#: js/lilypond.js:606 +msgid "brown rat" msgstr "" -#: js/turtledefs.js:454 -#: js/turtledefs.js:491 -msgid "You can also type Alt-S to stop." +#: js/lilypond.js:607 +msgid "mole" msgstr "" -#: js/turtledefs.js:462 -#: js/help.js:333 -msgid "Welcome to Music Blocks" +#: js/lilypond.js:608 +msgid "chipmunk" msgstr "" -#: js/turtledefs.js:472 -#: js/help.js:334 -msgid "Meet Mr. Mouse!" +#: js/lilypond.js:609 +msgid "red squirrel" msgstr "" -#: js/turtledefs.js:473 -msgid "Mr Mouse is our Music Blocks conductor." +#: js/lilypond.js:610 +msgid "guinea pig" msgstr "" -#: js/turtledefs.js:475 -msgid "Mr Mouse encourages you to explore Music Blocks." +#: js/lilypond.js:611 +msgid "capybara" msgstr "" -#: js/turtledefs.js:477 -msgid "Let us start our tour!" +#: js/lilypond.js:612 +msgid "coypu" msgstr "" -#: js/turtledefs.js:489 -msgid "Stop the music (and the mice)." +#: js/lilypond.js:613 +msgid "black rat" msgstr "" -#: js/turtledefs.js:499 -msgid "Record your project as video." +#: js/lilypond.js:614 +msgid "grey squirrel" msgstr "" -#: js/turtledefs.js:505 -msgid "Toggle Fullscreen mode." +#: js/lilypond.js:615 +msgid "flying squirrel" msgstr "" -#: js/turtledefs.js:511 -msgid "Initialize a new project." +#: js/lilypond.js:616 +msgid "bat" msgstr "" -#: js/turtledefs.js:517 -msgid "You can also load projects from the file system." +#: js/lilypond.js:749 +#: js/lilypond.js:913 +#: js/lilypond.js:951 +#: js/blocks/ActionBlocks.js:1256 +#: js/blocks/ExtrasBlocks.js:556 +msgid "start drum" msgstr "" -#: js/turtledefs.js:522 -#: js/StringHelper.js:46 -msgid "Delete" +#: js/logo.js:61 +msgid "Not a valid pitch name" msgstr "" -#: js/turtledefs.js:523 -msgid "To delete a block, just right-click on it, then you will be able to see the delete option" +#: js/logo.js:507 +#: js/blocks/ProgramBlocks.js:258 +#: js/blocks/ProgramBlocks.js:427 +msgid "You must select a file." msgstr "" -#: js/turtledefs.js:528 -#: js/activity.js:2270 -#: js/LocalCard.js:31 -msgid "Copy" +#: js/logo.js:1696 +msgid "Playback is ready." msgstr "" -#: js/turtledefs.js:529 -msgid "To copy a block, just right-click on it, then you will be able to see the copy option" +#: js/macros.js:711 +#: js/utils/musicutils.js:1162 +#: js/utils/synthutils.js:202 +#.TRANS: animal sound effect +msgid "duck" msgstr "" -#: js/turtledefs.js:535 -msgid "To extract a block, just right-click on it, then you will be able to see the extract option" +#: js/notation.js:353 +msgid "Lilypond cannot process pickup of " msgstr "" -#: js/turtledefs.js:542 -#: js/turtledefs.js:552 -#: js/turtledefs.js:573 -msgid "Save your project to a file." +#: js/palette.js:571 +msgid "grid" +msgstr "ঝাঁজরি" + +#: js/palette.js:580 +msgid "effect" msgstr "" -#: js/turtledefs.js:549 -#: js/turtledefs.js:570 -msgid "save" +#: js/palette.js:586 +msgid "sargam" msgstr "" -#: js/turtledefs.js:556 -#: js/turtledefs.js:577 -msgid "Save graphics from your project to as SVG." +#: js/palette.js:601 +#: js/blocks/PitchBlocks.js:1209 +msgid "custom pitch" msgstr "" -#: js/turtledefs.js:560 -#: js/turtledefs.js:581 -msgid "Save graphics from your project as PNG." +#: js/palette.js:609 +msgid "accidental" msgstr "" -#: js/turtledefs.js:564 -#: js/turtledefs.js:597 -msgid "Save block artwork as an SVG file." +#: js/palette.js:633 +#: js/blocks/PitchBlocks.js:405 +msgid "pitch converter" msgstr "" -#: js/turtledefs.js:585 -msgid "Save audio from your project as WAV." +#: js/piemenus.js:200 +#: js/utils/musicutils.js:1187 +#: js/utils/musicutils.js:1207 +#: js/widgets/musickeyboard.js:2341 +#: js/widgets/phrasemaker.js:1908 +#: js/widgets/sampler.js:810 +#.TRANS: double sharp is a music term related to pitch +msgid "double sharp" msgstr "" -#: js/turtledefs.js:589 -msgid "Save your project to as an ABC file." +#: js/piemenus.js:201 +#: js/utils/musicutils.js:1185 +#: js/utils/musicutils.js:1208 +#: js/blocks/PitchBlocks.js:1539 +#: js/turtleactions/PitchActions.js:323 +#: js/widgets/musickeyboard.js:2342 +#: js/widgets/phrasemaker.js:1909 +#: js/widgets/sampler.js:811 +#.TRANS: sharp is a music term related to pitch +#.TRANS: sharp is a half-step up in pitch +msgid "sharp" msgstr "" -#: js/turtledefs.js:593 -msgid "Save your project to as a Lilypond file." +#: js/piemenus.js:202 +#: js/utils/musicutils.js:1183 +#: js/utils/musicutils.js:1209 +#: js/widgets/musickeyboard.js:2343 +#: js/widgets/phrasemaker.js:1910 +#: js/widgets/sampler.js:812 +#.TRANS: natural is a music term related to pitch +msgid "natural" msgstr "" -#: js/turtledefs.js:604 -msgid "Load samples from server" +#: js/piemenus.js:203 +#: js/utils/musicutils.js:1181 +#: js/utils/musicutils.js:1210 +#: js/blocks/PitchBlocks.js:1498 +#: js/turtleactions/PitchActions.js:326 +#: js/widgets/musickeyboard.js:2344 +#: js/widgets/phrasemaker.js:1911 +#: js/widgets/sampler.js:813 +#.TRANS: flat is a music term related to pitch +#.TRANS: flat is a half-step down in pitch +msgid "flat" msgstr "" -#: js/turtledefs.js:605 -msgid "This button opens a viewer for loading example projects." +#: js/piemenus.js:204 +#: js/utils/musicutils.js:1179 +#: js/utils/musicutils.js:1211 +#: js/widgets/musickeyboard.js:2345 +#: js/widgets/phrasemaker.js:1912 +#: js/widgets/sampler.js:814 +#.TRANS: double flat is a music term related to pitch +msgid "double flat" msgstr "" -#: js/turtledefs.js:611 -msgid "Palette buttons" +#: js/piemenus.js:2864 +#: js/utils/musicutils.js:1006 +#: js/blocks/PitchBlocks.js:1385 +#.TRANS: unison is a music term related to intervals +#.TRANS: unison means the note is the same as the current note +msgid "unison" msgstr "" -#: js/turtledefs.js:612 -msgid "This toolbar contains the palette buttons including Rhythm Pitch Tone Action and more." +#: js/piemenus.js:3018 +#: js/piemenus.js:3091 +#: js/utils/musicutils.js:1014 +#: js/utils/musicutils.js:1189 +#: js/utils/musicutils.js:1326 +#.TRANS: major is a music term related to intervals and mode +msgid "major" msgstr "" -#: js/turtledefs.js:614 -msgid "Click to show the palettes of blocks and drag blocks from the palettes onto the canvas to use them." +#: js/piemenus.js:3018 +#: js/piemenus.js:3091 +#: js/utils/musicutils.js:1032 +#.TRANS: modal scale for music +msgid "ionian" msgstr "" -#: js/turtledefs.js:620 -msgid "Cartesian/Polar" +#: js/piemenus.js:3020 +#: js/piemenus.js:3095 +#: js/utils/musicutils.js:1012 +#: js/utils/musicutils.js:1190 +#: js/utils/musicutils.js:1323 +#.TRANS: minor is a music term related to intervals and mode +msgid "minor" msgstr "" -#: js/turtledefs.js:621 -msgid "Show or hide a coordinate grid." +#: js/piemenus.js:3020 +#: js/piemenus.js:3095 +#: js/utils/musicutils.js:1042 +#.TRANS: modal scale for music +msgid "aeolian" msgstr "" -#: js/turtledefs.js:627 -msgid "Clear the screen and return the mice to their initial positions." +#: js/piemenus.js:3410 +msgid "Duplicate" msgstr "" -#: js/turtledefs.js:633 -msgid "Collapse the graphics window." +#: js/piemenus.js:3412 +msgid "Move to trash" msgstr "" -#: js/turtledefs.js:638 -#: js/activity.js:4256 -#: js/activity.js:4256 -msgid "Home" +#: js/piemenus.js:3413 +#: js/widgets/timbre.js:968 +#: planet/js/StringHelper.js:69 +msgid "Close" msgstr "" -#: js/turtledefs.js:639 -msgid "Return all blocks to the center of the screen." +#: js/piemenus.js:3419 +msgid "Save stack" msgstr "" -#: js/turtledefs.js:644 -msgid "Show/hide blocks" +#: js/piemenus.js:3449 +msgid "In order to copy a sample, you must reload the widget, import the sample again, and export it." msgstr "" -#: js/turtledefs.js:645 -msgid "Hide or show the blocks and the palettes." +#: js/piemenus.js:3812 +msgid "You have chosen key " +msgstr "" + +#: js/piemenus.js:3816 +msgid " for your pitch preview." msgstr "" -#: js/turtledefs.js:650 -msgid "Expand/collapse collapsable blocks" +#: js/turtle-singer.js:1363 +#.TRANS: partials are weighted components in a harmonic series +msgid "You must have at least one Partial block inside of a Weighted-partial block" msgstr "" -#: js/turtledefs.js:651 -msgid "Expand or collapse start and action stacks." +#: js/turtle-singer.js:2077 +msgid "synth cannot play chords." msgstr "" -#: js/turtledefs.js:658 -#: js/activity.js:4265 -msgid "Decrease block size" +#: js/utils/musicutils.js:505 +#: js/utils/musicutils.js:645 +#: js/widgets/pitchdrummatrix.js:228 +#: js/widgets/musickeyboard.js:2885 +msgid "rest" msgstr "" -#: js/turtledefs.js:659 -msgid "Decrease the size of the blocks." +#: js/utils/musicutils.js:689 +msgid "Perfect unison" msgstr "" -#: js/turtledefs.js:664 -#: js/activity.js:4267 -msgid "Increase block size" +#: js/utils/musicutils.js:689 +msgid "Diminished second" msgstr "" -#: js/turtledefs.js:665 -msgid "Increase the size of the blocks." +#: js/utils/musicutils.js:690 +msgid "Minor second" msgstr "" -#: js/turtledefs.js:670 -msgid "Expand/collapse option toolbar" +#: js/utils/musicutils.js:690 +msgid "Augmented unison" msgstr "" -#: js/turtledefs.js:671 -msgid "Click this button to expand or collapse the auxillary toolbar." +#: js/utils/musicutils.js:691 +msgid "Major second" msgstr "" -#: js/turtledefs.js:676 -msgid "Run slow" +#: js/utils/musicutils.js:691 +msgid "Diminished third" msgstr "" -#: js/turtledefs.js:677 -msgid "Click to run the project in slow mode." +#: js/utils/musicutils.js:692 +msgid "Minor third" msgstr "" -#: js/turtledefs.js:683 -msgid "Click to run the project step by step." +#: js/utils/musicutils.js:692 +msgid "Augmented second" msgstr "" -#: js/turtledefs.js:690 -msgid "Display statistics about your Music project." +#: js/utils/musicutils.js:693 +msgid "Major third" msgstr "" -#: js/turtledefs.js:697 -msgid "Delete a selected plugin." +#: js/utils/musicutils.js:693 +msgid "Diminished fourth" msgstr "" -#: js/turtledefs.js:704 -msgid "Enable scrolling" +#: js/utils/musicutils.js:694 +msgid "Perfect fourth" msgstr "" -#: js/turtledefs.js:705 -msgid "You can scroll the blocks on the canvas." +#: js/utils/musicutils.js:694 +msgid "Augmented third" msgstr "" -#: js/turtledefs.js:714 -msgid "Wrap Turtle" +#: js/utils/musicutils.js:695 +msgid "Diminished fifth" msgstr "" -#: js/turtledefs.js:715 -msgid "Turn Turtle wrapping On or Off." +#: js/utils/musicutils.js:695 +msgid "Augmented fourth" msgstr "" -#: js/turtledefs.js:725 -msgid "Restore blocks from the trash." +#: js/utils/musicutils.js:696 +msgid "Perfect fifth" msgstr "" -#: js/turtledefs.js:732 -msgid "Switch mode" +#: js/utils/musicutils.js:696 +msgid "Diminished sixth" msgstr "" -#: js/turtledefs.js:733 -msgid "Switch between beginner and advance modes." +#: js/utils/musicutils.js:697 +msgid "Minor sixth" msgstr "" -#: js/turtledefs.js:739 -msgid "Select your language preference." +#: js/utils/musicutils.js:697 +msgid "Augmented fifth" msgstr "" -#: js/turtledefs.js:745 -msgid "Keyboard shortcuts" +#: js/utils/musicutils.js:698 +msgid "Major sixth" msgstr "" -#: js/turtledefs.js:746 -msgid "You can type d to create a do block and r to create a re block etc." +#: js/utils/musicutils.js:698 +msgid "Diminished seventh" msgstr "" -#: js/turtledefs.js:753 -msgid "Show these messages." +#: js/utils/musicutils.js:699 +msgid "Minor seventh" msgstr "" -#: js/turtledefs.js:759 -#: js/turtledefs.js:790 -#: js/help.js:335 -msgid "Guide" +#: js/utils/musicutils.js:699 +msgid "Augmented sixth" msgstr "" -#: js/turtledefs.js:760 -msgid "A detailed guide to Turtle Blocks is available." +#: js/utils/musicutils.js:700 +msgid "Major seventh" msgstr "" -#: js/turtledefs.js:764 -msgid "Turtle Blocks Guide" +#: js/utils/musicutils.js:700 +msgid "Diminished octave" msgstr "" -#: js/turtledefs.js:767 -#: js/turtledefs.js:798 -#: js/help.js:336 -msgid "About" +#: js/utils/musicutils.js:701 +msgid "Perfect octave" msgstr "" -#: js/turtledefs.js:768 -msgid "Turtle Blocks is an open source collection of tools for exploring musical concepts." +#: js/utils/musicutils.js:701 +msgid "Augmented seventh" msgstr "" -#: js/turtledefs.js:770 -msgid "A full list of contributors can be found in the Turtle Blocks GitHub repository." +#: js/utils/musicutils.js:702 +msgid "Minor ninth" msgstr "" -#: js/turtledefs.js:772 -msgid "Turtle Blocks is licensed under the AGPL." +#: js/utils/musicutils.js:702 +msgid "Augmented octave" msgstr "" -#: js/turtledefs.js:780 -msgid "Turtle Blocks GitHub repository" +#: js/utils/musicutils.js:703 +msgid "Major ninth" msgstr "" -#: js/turtledefs.js:783 -#: js/turtledefs.js:814 -#: js/help.js:337 -#: js/help.js:359 -msgid "Congratulations." +#: js/utils/musicutils.js:703 +msgid "Diminished tenth" msgstr "" -#: js/turtledefs.js:784 -msgid "You have finished the tour. Please enjoy Turtle Blocks!" +#: js/utils/musicutils.js:704 +msgid "Minor tenth" msgstr "" -#: js/turtledefs.js:791 -msgid "A detailed guide to Music Blocks is available." +#: js/utils/musicutils.js:704 +msgid "Augmented ninth" msgstr "" -#: js/turtledefs.js:795 -#: js/SaveInterface.js:76 -msgid "Music Blocks Guide" +#: js/utils/musicutils.js:705 +msgid "Major tenth" msgstr "" -#: js/turtledefs.js:799 -msgid "Music Blocks is an open source collection of tools for exploring musical concepts." +#: js/utils/musicutils.js:705 +msgid "Diminished eleventh" msgstr "" -#: js/turtledefs.js:801 -msgid "A full list of contributors can be found in the Music Blocks GitHub repository." +#: js/utils/musicutils.js:706 +msgid "Perfect eleventh" msgstr "" -#: js/turtledefs.js:803 -msgid "Music Blocks is licensed under the AGPL." +#: js/utils/musicutils.js:706 +msgid "Augmented tenth" msgstr "" -#: js/turtledefs.js:811 -msgid "Music Blocks GitHub repository" +#: js/utils/musicutils.js:707 +msgid "Diminished twelfth" msgstr "" -#: js/turtledefs.js:815 -msgid "You have finished the tour. Please enjoy Music Blocks!" +#: js/utils/musicutils.js:707 +msgid "Augmented eleventh" msgstr "" -#: js/activity.js:369 -msgid "Search for blocks" +#: js/utils/musicutils.js:708 +msgid "Perfect twelfth" msgstr "" -#: js/activity.js:1145 -msgid "Refresh your browser to change to advanced mode." +#: js/utils/musicutils.js:708 +msgid "Diminished thirteenth" msgstr "" -#: js/activity.js:1150 -msgid "Refresh your browser to change to beginner mode." +#: js/utils/musicutils.js:709 +msgid "Minor thirteenth" msgstr "" -#: js/activity.js:1184 -msgid "Catching mice" +#: js/utils/musicutils.js:709 +msgid "Augmented fifth, plus an octave" msgstr "" -#: js/activity.js:1185 -msgid "Cleaning the instruments" +#: js/utils/musicutils.js:710 +msgid "Major thirteenth" msgstr "" -#: js/activity.js:1186 -msgid "Testing key pieces" +#: js/utils/musicutils.js:710 +msgid "Diminished seventh, plus an octave" msgstr "" -#: js/activity.js:1187 -msgid "Sight-reading" +#: js/utils/musicutils.js:838 +#.TRANS: ordinal number. Please keep exactly one space between each number. +msgid "1st 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th" msgstr "" -#: js/activity.js:1188 -msgid "Combining math and music" +#: js/utils/musicutils.js:1008 +#: js/utils/musicutils.js:1191 +#: js/utils/musicutils.js:1325 +#.TRANS: augmented is a music term related to intervals +msgid "augmented" msgstr "" -#: js/activity.js:1189 -msgid "Generating more blocks" +#: js/utils/musicutils.js:1010 +#: js/utils/musicutils.js:1192 +#: js/utils/musicutils.js:1324 +#.TRANS: diminished is a music term related to intervals and mode +msgid "diminished" msgstr "" -#: js/activity.js:1190 -msgid "Do Re Mi Fa Sol La Ti Do" +#: js/utils/musicutils.js:1016 +#: js/utils/musicutils.js:1322 +#: js/blocks/IntervalsBlocks.js:649 +#: js/turtleactions/IntervalsActions.js:120 +#: js/turtleactions/IntervalsActions.js:124 +#.TRANS: perfect is a music term related to intervals +msgid "perfect" msgstr "" -#: js/activity.js:1191 -msgid "Tuning string instruments" +#: js/utils/musicutils.js:1018 +#.TRANS: twelve semi-tone scale for music +msgid "chromatic" msgstr "" -#: js/activity.js:1192 -msgid "Pressing random keys" +#: js/utils/musicutils.js:1019 +msgid "algerian" msgstr "" -#: js/activity.js:1351 -msgid "plugins will be removed upon restart." +#: js/utils/musicutils.js:1020 +msgid "spanish" msgstr "" -#: js/activity.js:1360 -msgid "show Cartesian" +#: js/utils/musicutils.js:1022 +#.TRANS: modal scale in music +msgid "octatonic" msgstr "" -#: js/activity.js:1842 -msgid "output tools" +#: js/utils/musicutils.js:1024 +#.TRANS: harmonic major scale in music +msgid "harmonic major" msgstr "" -#: js/activity.js:1845 -msgid "custom note" +#: js/utils/musicutils.js:1026 +#.TRANS: natural minor scales in music +msgid "natural minor" msgstr "" -#: js/activity.js:1848 -msgid "accidental name" +#: js/utils/musicutils.js:1028 +#.TRANS: harmonic minor scale in music +msgid "harmonic minor" msgstr "" -#: js/activity.js:1851 -#: js/PitchBlocks.js:855 -msgid "east indian solfege" +#: js/utils/musicutils.js:1030 +#.TRANS: melodic minor scale in music +msgid "melodic minor" msgstr "" -#: js/activity.js:1854 -#: js/PitchBlocks.js:869 -msgid "note name" +#: js/utils/musicutils.js:1034 +#.TRANS: modal scale for music +msgid "dorian" msgstr "" -#: js/activity.js:1857 -#: js/IntervalsBlocks.js:94 -msgid "temperament name" +#: js/utils/musicutils.js:1036 +#.TRANS: modal scale for music +msgid "phrygian" msgstr "" -#: js/activity.js:1863 -msgid "chord name" +#: js/utils/musicutils.js:1038 +#.TRANS: modal scale for music +msgid "lydian" msgstr "" -#: js/activity.js:1869 -msgid "filter type" +#: js/utils/musicutils.js:1040 +#.TRANS: modal scale for music +msgid "mixolydian" msgstr "" -#: js/activity.js:1872 -msgid "oscillator type" +#: js/utils/musicutils.js:1044 +#.TRANS: modal scale for music +msgid "locrian" msgstr "" -#: js/activity.js:1878 -#: js/DrumBlocks.js:32 -msgid "noise name" +#: js/utils/musicutils.js:1046 +#.TRANS: minor jazz scale for music +msgid "jazz minor" msgstr "" -#: js/activity.js:1881 -#: js/DrumBlocks.js:75 -msgid "drum name" +#: js/utils/musicutils.js:1048 +#.TRANS: bebop scale for music +msgid "bebop" msgstr "" -#: js/activity.js:1884 -#: js/DrumBlocks.js:119 -msgid "effects name" +#: js/utils/musicutils.js:1049 +msgid "arabic" msgstr "" -#: js/activity.js:1887 -msgid "wrap mode" +#: js/utils/musicutils.js:1050 +msgid "byzantine" msgstr "" -#: js/activity.js:1890 -msgid "load file" +#: js/utils/musicutils.js:1052 +#.TRANS: musical scale for music by Verdi +msgid "enigmatic" msgstr "" -#: js/activity.js:2056 -msgid "This block is deprecated." +#: js/utils/musicutils.js:1053 +msgid "ethiopian" msgstr "" -#: js/activity.js:2058 -msgid "Block cannot be found." +#: js/utils/musicutils.js:1055 +#.TRANS: Ethiopic scale for music +msgid "geez" msgstr "" -#: js/activity.js:2266 -msgid "Saving block artwork" +#: js/utils/musicutils.js:1056 +msgid "hindu" msgstr "" -#: js/activity.js:2277 -msgid "Erase" +#: js/utils/musicutils.js:1057 +msgid "hungarian" msgstr "" -#: js/activity.js:2301 -#: js/activity.js:2323 -msgid "Paste" +#: js/utils/musicutils.js:1059 +#.TRANS: minor Romanian scale for music +msgid "romanian minor" msgstr "" -#: js/activity.js:2305 -msgid "Save block help" +#: js/utils/musicutils.js:1060 +msgid "spanish gypsy" msgstr "" -#: js/activity.js:2390 -msgid "Jumping to the bottom of the page." +#: js/utils/musicutils.js:1062 +#.TRANS: musical scale for Mid-Eastern music +msgid "maqam" msgstr "" -#: js/activity.js:2396 -msgid "Scrolling up." +#: js/utils/musicutils.js:1064 +#.TRANS: minor blues scale for music +msgid "minor blues" msgstr "" -#: js/activity.js:2401 -msgid "Scrolling down." +#: js/utils/musicutils.js:1066 +#.TRANS: major blues scale for music +msgid "major blues" msgstr "" -#: js/activity.js:2406 -msgid "Extracting block" +#: js/utils/musicutils.js:1067 +msgid "whole tone" msgstr "" -#: js/activity.js:2414 -msgid "Moving block up." +#: js/utils/musicutils.js:1069 +#.TRANS: pentatonic is a general term that means "five note scale". This scale is typically known as "minor pentatonic" +msgid "minor pentatonic" msgstr "" -#: js/activity.js:2435 -msgid "Moving block down." +#: js/utils/musicutils.js:1071 +#.TRANS: pentatonic is a general term that means "five note scale". This scale is typically known as "major pentatonic" +msgid "major pentatonic" msgstr "" -#: js/activity.js:2456 -msgid "Moving block left." +#: js/utils/musicutils.js:1072 +msgid "chinese" msgstr "" -#: js/activity.js:2473 -msgid "Moving block right." +#: js/utils/musicutils.js:1073 +msgid "egyptian" msgstr "" -#: js/activity.js:2488 -msgid "Jump to home position." +#: js/utils/musicutils.js:1075 +#.TRANS: https://en.wikipedia.org/wiki/Hirajoshi_scale NOTE: There are three different versions of this scale +msgid "hirajoshi" msgstr "" -#: js/activity.js:2515 -msgid "Hide blocks" +#: js/utils/musicutils.js:1076 +msgid "Japan" msgstr "" -#: js/activity.js:3389 -msgid "Click the run button to run the project." +#: js/utils/musicutils.js:1078 +#.TRANS: https://en.wikipedia.org/wiki/In_scale and https://en.wikipedia.org/wiki/Sakura_Sakura +msgid "in" msgstr "" -#: js/activity.js:3456 -#: js/SaveInterface.js:131 -#: js/SaveInterface.js:204 -#: js/SaveInterface.js:262 -#: js/SaveInterface.js:389 -#: js/SaveInterface.js:417 -#: js/ProjectStorage.js:27 -#: js/GlobalPlanet.js:467 -#: js/GlobalPlanet.js:469 -#: js/GlobalPlanet.js:495 -#.TRANS: default project title when saving as Lilypond -msgid "My Project" +#: js/utils/musicutils.js:1080 +#.TRANS: https://en.wikipedia.org/wiki/Miny%C5%8D_scale +msgid "minyo" msgstr "" -#: js/activity.js:4261 -msgid "Show/hide block" +#: js/utils/musicutils.js:1082 +#.TRANS: Italian mathematician +msgid "fibonacci" msgstr "" -#: js/activity.js:4263 -msgid "Expand/collapse blocks" +#: js/utils/musicutils.js:1083 +#: js/utils/musicutils.js:1134 +#: js/utils/musicutils.js:1177 +#: js/utils/musicutils.js:1199 +#: js/utils/synthutils.js:134 +#: js/blocks/IntervalsBlocks.js:1124 +#: js/blocks/ToneBlocks.js:946 +#: js/blocks/VolumeBlocks.js:411 +#: js/blocks/WidgetBlocks.js:399 +#: js/blocks/WidgetBlocks.js:404 +#: js/turtleactions/VolumeActions.js:218 +#: js/widgets/modewidget.js:919 +#.TRANS: customize voice +msgid "custom" msgstr "" -#: js/activity.js:4381 -msgid "Could not parse JSON input." +#: js/utils/musicutils.js:1085 +#: js/utils/musicutils.js:1531 +#: js/blocks/WidgetBlocks.js:176 +#.TRANS: highpass filter +msgid "highpass" msgstr "" -#: js/activity.js:4684 -#: js/activity.js:4771 -#: js/activity.js:4821 -msgid "Cannot load project from the file. Please check the file type." +#: js/utils/musicutils.js:1087 +#: js/utils/musicutils.js:1532 +#.TRANS: lowpass filter +msgid "lowpass" msgstr "" -#: js/activity.js:5051 -msgid "Invalid parameters" +#: js/utils/musicutils.js:1089 +#: js/utils/musicutils.js:1533 +#.TRANS: bandpass filter +msgid "bandpass" msgstr "" -#: js/turtle-singer.js:1334 -#.TRANS: partials are weighted components in a harmonic series -msgid "You must have at least one Partial block inside of a Weighted-partial block" +#: js/utils/musicutils.js:1091 +#: js/utils/musicutils.js:1534 +#.TRANS: high-shelf filter +msgid "highshelf" msgstr "" -#: js/turtle-singer.js:2048 -msgid "synth cannot play chords." +#: js/utils/musicutils.js:1093 +#: js/utils/musicutils.js:1535 +#.TRANS: low-shelf filter +msgid "lowshelf" msgstr "" -#: js/lilypond.js:614 -msgid "brown rat" +#: js/utils/musicutils.js:1095 +#: js/utils/musicutils.js:1536 +#.TRANS: notch-shelf filter +msgid "notch" msgstr "" -#: js/lilypond.js:615 -msgid "mole" +#: js/utils/musicutils.js:1097 +#: js/utils/musicutils.js:1537 +#.TRANS: all-pass filter +msgid "allpass" msgstr "" -#: js/lilypond.js:616 -msgid "chipmunk" +#: js/utils/musicutils.js:1099 +#: js/utils/musicutils.js:1538 +#.TRANS: peaking filter +msgid "peaking" msgstr "" -#: js/lilypond.js:617 -msgid "red squirrel" +#: js/utils/musicutils.js:1100 +#: js/utils/musicutils.js:1546 +#: js/utils/synthutils.js:126 +#: js/blocks/PitchBlocks.js:85 +#.TRANS: sine wave +msgid "sine" msgstr "" -#: js/lilypond.js:618 -msgid "guinea pig" +#: js/utils/musicutils.js:1101 +#: js/utils/musicutils.js:1547 +#: js/utils/synthutils.js:128 +#: js/blocks/PitchBlocks.js:39 +#.TRANS: square wave +msgid "square" msgstr "" -#: js/lilypond.js:619 -msgid "capybara" +#: js/utils/musicutils.js:1102 +#: js/utils/musicutils.js:1548 +#: js/utils/synthutils.js:132 +#: js/blocks/PitchBlocks.js:62 +#: js/blocks/ToneBlocks.js:39 +#.TRANS: triangle wave +msgid "triangle" msgstr "" -#: js/lilypond.js:620 -msgid "coypu" +#: js/utils/musicutils.js:1103 +#: js/utils/musicutils.js:1549 +#: js/utils/synthutils.js:130 +#: js/blocks/PitchBlocks.js:108 +#.TRANS: sawtooth wave +msgid "sawtooth" msgstr "" -#: js/lilypond.js:621 -msgid "black rat" +#: js/utils/musicutils.js:1105 +#: js/utils/musicutils.js:1312 +#: js/blocks/PitchBlocks.js:931 +#: js/blocks/PitchBlocks.js:937 +#: js/turtleactions/PitchActions.js:469 +#.TRANS: even numbers +#.TRANS: invert based on even or odd number or musical scale +msgid "even" msgstr "" -#: js/lilypond.js:622 -msgid "grey squirrel" +#: js/utils/musicutils.js:1107 +#: js/utils/musicutils.js:1313 +#: js/blocks/PitchBlocks.js:937 +#: js/turtleactions/PitchActions.js:471 +#.TRANS: odd numbers +msgid "odd" msgstr "" -#: js/lilypond.js:623 -msgid "flying squirrel" +#: js/utils/musicutils.js:1108 +#: js/utils/musicutils.js:1314 +#: js/blocks/PitchBlocks.js:937 +#: js/turtleactions/PitchActions.js:473 +msgid "scalar" msgstr "" -#: js/lilypond.js:624 -msgid "bat" +#: js/utils/musicutils.js:1109 +#: js/utils/synthutils.js:72 +#: js/blocks/VolumeBlocks.js:47 +#.TRANS: musical instrument +msgid "piano" msgstr "" -#: js/lilypond.js:757 -#: js/lilypond.js:921 -#: js/lilypond.js:959 -#: js/ActionBlocks.js:1256 -#: js/ExtrasBlocks.js:553 -msgid "start drum" +#: js/utils/musicutils.js:1110 +#: js/utils/synthutils.js:74 +#.TRANS: musical instrument +msgid "violin" msgstr "" -#: js/SaveInterface.js:59 -#: js/SaveInterface.js:61 -#: js/SaveInterface.js:93 -msgid "Music Blocks Project" +#: js/utils/musicutils.js:1111 +#: js/utils/synthutils.js:76 +#.TRANS: viola musical instrument +msgid "viola" msgstr "" -#: js/SaveInterface.js:63 -msgid "This project was created in Music Blocks" +#: js/utils/musicutils.js:1112 +#: js/utils/synthutils.js:114 +#.TRANS: xylophone musical instrument +msgid "xylophone" msgstr "" -#: js/SaveInterface.js:67 -msgid "Music Blocks is a Free/Libre Software application." +#: js/utils/musicutils.js:1113 +#: js/utils/synthutils.js:136 +#.TRANS: vibraphone musical instrument +msgid "vibraphone" msgstr "" -#: js/SaveInterface.js:69 -msgid "The source code can be accessed at" +#: js/utils/musicutils.js:1114 +#: js/utils/synthutils.js:78 +#.TRANS: musical instrument +msgid "cello" msgstr "" -#: js/SaveInterface.js:72 -msgid "For more information, please consult the" +#: js/utils/musicutils.js:1116 +#: js/utils/synthutils.js:82 +#.TRANS: viola musical instrument +msgid "double bass" msgstr "" -#: js/SaveInterface.js:83 -msgid "Alternatively, open the file in Music Blocks using the Load project button." +#: js/utils/musicutils.js:1117 +#: js/utils/synthutils.js:84 +#: js/widgets/rhythmruler.js:2511 +#.TRANS: musical instrument +msgid "guitar" msgstr "" -#: js/SaveInterface.js:85 -msgid "Project Code" +#: js/utils/musicutils.js:1118 +#: js/utils/synthutils.js:86 +#.TRANS: musical instrument +msgid "acoustic guitar" msgstr "" -#: js/SaveInterface.js:87 -msgid "This code stores data about the blocks in a project." +#: js/utils/musicutils.js:1119 +#: js/utils/synthutils.js:88 +#.TRANS: musical instrument +msgid "flute" msgstr "" -#: js/SaveInterface.js:89 -msgid "Show" +#: js/utils/musicutils.js:1120 +#: js/utils/synthutils.js:90 +#.TRANS: musical instrument +msgid "clarinet" msgstr "" -#: js/SaveInterface.js:91 -msgid "Hide" +#: js/utils/musicutils.js:1121 +#: js/utils/synthutils.js:92 +#.TRANS: musical instrument +msgid "saxophone" msgstr "" -#: js/SaveInterface.js:197 -#: js/SaveInterface.js:58 -msgid "No description provided" +#: js/utils/musicutils.js:1122 +#: js/utils/synthutils.js:94 +#.TRANS: musical instrument +msgid "tuba" msgstr "" -#: js/SaveInterface.js:332 -msgid "Your recording is in progress." +#: js/utils/musicutils.js:1123 +#: js/utils/synthutils.js:96 +#.TRANS: musical instrument +msgid "trumpet" msgstr "" -#: js/SaveInterface.js:401 -#.TRANS: File name prompt for save as Lilypond -msgid "File name" +#: js/utils/musicutils.js:1124 +#: js/utils/synthutils.js:98 +#.TRANS: musical instrument +msgid "oboe" msgstr "" -#: js/SaveInterface.js:403 -#: js/StringHelper.js:39 -#.TRANS: Project title prompt for save as Lilypond -msgid "Project title" +#: js/utils/musicutils.js:1125 +#: js/utils/synthutils.js:100 +#.TRANS: musical instrument +msgid "trombone" msgstr "" -#: js/SaveInterface.js:405 -#.TRANS: Project title prompt for save as Lilypond -msgid "Project author" +#: js/utils/musicutils.js:1126 +#: js/utils/synthutils.js:116 +#.TRANS: polytone synthesizer +msgid "electronic synth" msgstr "" -#: js/SaveInterface.js:407 -#.TRANS: MIDI prompt for save as Lilypond -msgid "Include MIDI output?" +#: js/utils/musicutils.js:1127 +#: js/utils/synthutils.js:118 +#.TRANS: simple monotone synthesizer +msgid "simple 1" msgstr "" -#: js/SaveInterface.js:409 -#.TRANS: Guitar prompt for save as Lilypond -msgid "Include guitar tablature output?" +#: js/utils/musicutils.js:1128 +msgid "simple 2" msgstr "" -#: js/SaveInterface.js:411 -#.TRANS: Lilypond is a scripting language for generating sheet music -msgid "Save as Lilypond" +#: js/utils/musicutils.js:1129 +msgid "simple 3" msgstr "" -#: js/SaveInterface.js:426 -#: js/EnsembleBlocks.js:75 -#: js/EnsembleBlocks.js:154 -#: js/EnsembleBlocks.js:216 -#: js/EnsembleBlocks.js:302 -#: js/EnsembleBlocks.js:348 -#: js/EnsembleBlocks.js:389 -#: js/EnsembleBlocks.js:441 -#: js/EnsembleBlocks.js:490 -#: js/EnsembleBlocks.js:536 -#: js/EnsembleBlocks.js:583 -#: js/EnsembleBlocks.js:637 -#: js/EnsembleBlocks.js:753 -#: js/EnsembleBlocks.js:840 -#: js/EnsembleBlocks.js:899 -#: js/EnsembleBlocks.js:942 -#: js/EnsembleBlocks.js:1212 -#: js/EnsembleBlocks.js:1280 -#.TRANS: default project author when saving as Lilypond -msgid "Mr. Mouse" +#: js/utils/musicutils.js:1130 +msgid "simple 4" msgstr "" -#: js/SaveInterface.js:573 -msgid "The Lilypond code is copied to clipboard. You can paste it here: " +#: js/utils/musicutils.js:1131 +#: js/utils/synthutils.js:58 +#: js/blocks/DrumBlocks.js:191 +#.TRANS: white noise synthesizer +msgid "white noise" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:50 -#: js/RhythmBlockPaletteBlocks.js:232 -#.TRANS: rhythm block -#.TRANS: translate "rhythm1" as rhythm -msgid "rhythm1" +#: js/utils/musicutils.js:1132 +#: js/utils/synthutils.js:60 +#.TRANS: brown noise synthesizer +msgid "brown noise" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:70 -#: js/RhythmBlockPaletteBlocks.js:251 -#: js/RhythmBlockPaletteBlocks.js:484 -#: js/RhythmBlockPaletteBlocks.js:553 -#: js/RhythmBlockPaletteBlocks.js:874 -msgid "number of notes" +#: js/utils/musicutils.js:1133 +#: js/utils/synthutils.js:62 +#.TRANS: pink noise synthesizer +msgid "pink noise" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:126 -msgid "polyphonic rhythm" +#: js/utils/musicutils.js:1135 +#: js/utils/synthutils.js:148 +#: js/widgets/rhythmruler.js:2057 +#: js/widgets/rhythmruler.js:2319 +#.TRANS: musical instrument +msgid "snare drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:218 -msgid "The Rhythm block is used to generate rhythm patterns." +#: js/utils/musicutils.js:1136 +#: js/utils/synthutils.js:150 +#.TRANS: musical instrument +msgid "kick drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:279 -msgid "1/64 note" +#: js/utils/musicutils.js:1137 +#: js/utils/synthutils.js:152 +#.TRANS: musical instrument +msgid "tom tom" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:303 -msgid "1/32 note" +#: js/utils/musicutils.js:1138 +#: js/utils/synthutils.js:154 +#.TRANS: musical instrument +msgid "floor tom" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:331 -msgid "1/16 note" +#: js/utils/musicutils.js:1139 +#: js/utils/synthutils.js:156 +#.TRANS: musical instrument +msgid "bass drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:359 -msgid "eighth note" +#: js/utils/musicutils.js:1140 +#: js/utils/synthutils.js:158 +#.TRANS: a drum made from an inverted cup +msgid "cup drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:387 -msgid "quarter note" +#: js/utils/musicutils.js:1141 +#: js/utils/synthutils.js:160 +#.TRANS: musical instrument +msgid "darbuka drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:415 -msgid "half note" +#: js/utils/musicutils.js:1142 +#: js/utils/synthutils.js:164 +#.TRANS: musical instrument +msgid "hi hat" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:443 -msgid "whole note" +#: js/utils/musicutils.js:1143 +#: js/utils/synthutils.js:166 +#.TRANS: a small metal bell +msgid "ride bell" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:481 -#: js/RhythmBlockPaletteBlocks.js:550 -#: js/RhythmBlockPaletteBlocks.js:601 -#.TRANS: A tuplet is a note value divided into irregular time values. -msgid "tuplet" +#: js/utils/musicutils.js:1144 +#: js/utils/synthutils.js:168 +#.TRANS: musical instrument +msgid "cow bell" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:767 -msgid "septuplet" +#: js/utils/musicutils.js:1145 +msgid "japanese drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:795 -msgid "quintuplet" +#: js/utils/musicutils.js:1146 +#: js/utils/synthutils.js:174 +#.TRANS: musical instrument +msgid "japanese bell" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:823 -msgid "triplet" +#: js/utils/musicutils.js:1147 +#: js/utils/synthutils.js:170 +#.TRANS: musical instrument +msgid "triangle bell" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:850 -msgid "simple tuplet" +#: js/utils/musicutils.js:1148 +#: js/utils/synthutils.js:172 +#.TRANS: musical instrument +msgid "finger cymbals" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:860 -msgid "Tuplets are a collection of notes that get scaled to a specific duration." +#: js/utils/musicutils.js:1149 +#: js/utils/synthutils.js:176 +#.TRANS: a musically tuned set of bells +msgid "chime" msgstr "" -#: js/WidgetBlocks.js:71 -#.TRANS: sound envelope (ADSR) -msgid "envelope" +#: js/utils/musicutils.js:1150 +#: js/utils/synthutils.js:178 +#.TRANS: a musical instrument +msgid "gong" msgstr "" -#: js/WidgetBlocks.js:79 -#.TRANS: Attack time is the time taken for initial run-up of level from nil to peak, beginning when the key is first pressed. -msgid "attack" +#: js/utils/musicutils.js:1151 +#: js/utils/synthutils.js:180 +#.TRANS: sound effect +msgid "clang" msgstr "" -#: js/WidgetBlocks.js:81 -#.TRANS: Decay time is the time taken for the subsequent run down from the attack level to the designated sustain level. -msgid "decay" +#: js/utils/musicutils.js:1152 +#: js/utils/synthutils.js:182 +#.TRANS: sound effect +msgid "crash" msgstr "" -#: js/WidgetBlocks.js:83 -#.TRANS: Sustain level is the level during the main sequence of the sound's duration, until the key is released. -msgid "sustain" +#: js/utils/musicutils.js:1153 +#: js/utils/synthutils.js:184 +#.TRANS: sound effect +msgid "bottle" msgstr "" -#: js/WidgetBlocks.js:85 -#.TRANS: Release time is the time taken for the level to decay from the sustain level to zero after the key is released. -msgid "release" +#: js/utils/musicutils.js:1154 +#: js/utils/synthutils.js:186 +#.TRANS: sound effect +msgid "clap" msgstr "" -#: js/WidgetBlocks.js:96 -msgid "Attack value should be from 0 to 100." +#: js/utils/musicutils.js:1155 +#: js/utils/synthutils.js:188 +#.TRANS: sound effect +msgid "slap" msgstr "" -#: js/WidgetBlocks.js:99 -msgid "Decay value should be from 0 to 100." +#: js/utils/musicutils.js:1156 +#: js/utils/synthutils.js:190 +#.TRANS: sound effect +msgid "splash" msgstr "" -#: js/WidgetBlocks.js:102 -msgid "Sustain value should be from 0 to 100." +#: js/utils/musicutils.js:1157 +#: js/utils/synthutils.js:192 +#.TRANS: sound effect +msgid "bubbles" msgstr "" -#: js/WidgetBlocks.js:105 -msgid "Release value should be from 0-100." +#: js/utils/musicutils.js:1158 +#: js/utils/synthutils.js:194 +#.TRANS: sound effect +msgid "raindrop" msgstr "" -#: js/WidgetBlocks.js:121 -msgid "You are adding multiple envelope blocks." +#: js/utils/musicutils.js:1159 +#: js/utils/synthutils.js:196 +#.TRANS: animal sound effect +msgid "cat" msgstr "" -#: js/WidgetBlocks.js:144 -#.TRANS: a filter removes some unwanted components from a signal -msgid "filter" +#: js/utils/musicutils.js:1160 +#: js/utils/synthutils.js:198 +#.TRANS: animal sound effect +msgid "cricket" msgstr "" -#: js/WidgetBlocks.js:149 -#: js/musicutils.js:706 -#: js/musicutils.js:1105 -#.TRANS: highpass filter -msgid "highpass" +#: js/utils/musicutils.js:1161 +#: js/utils/synthutils.js:200 +#.TRANS: animal sound effect +msgid "dog" msgstr "" -#: js/WidgetBlocks.js:152 -#: js/ToneBlocks.js:42 -#: js/timbre.js:1558 -#: js/timbre.js:1808 -#.TRANS: type of filter, e.g., lowpass, highpass, etc. -#.TRANS: there are different types (sine, triangle, square...) of oscillators. -msgid "type" +#: js/utils/musicutils.js:1163 +#: js/utils/synthutils.js:102 +#.TRANS: musical instrument +msgid "banjo" msgstr "" -#: js/WidgetBlocks.js:154 -#: js/timbre.js:1818 -#.TRANS: rolloff is the steepness of a change in frequency. -msgid "rolloff" +#: js/utils/musicutils.js:1164 +#: js/utils/synthutils.js:104 +#.TRANS: musical instrument +msgid "koto" msgstr "" -#: js/WidgetBlocks.js:155 -#: js/MediaBlocks.js:692 -#: js/temperament.js:382 -#: js/temperament.js:417 -#: js/temperament.js:477 -#: js/temperament.js:485 -#: js/temperament.js:1348 -#: js/timbre.js:1842 -msgid "frequency" +#: js/utils/musicutils.js:1165 +#: js/utils/synthutils.js:106 +#.TRANS: musical instrument +msgid "dulcimer" msgstr "" -#: js/WidgetBlocks.js:179 -#.TRANS: rolloff is the steepness of a change in frequency. -msgid "Rolloff value should be either -12, -24, -48, or -96 decibels/octave." +#: js/utils/musicutils.js:1166 +#: js/utils/synthutils.js:108 +#.TRANS: musical instrument +msgid "electric guitar" msgstr "" -#: js/WidgetBlocks.js:211 -msgid "The Temperament tool is used to define custom tuning." +#: js/utils/musicutils.js:1167 +#: js/utils/synthutils.js:110 +#.TRANS: musical instrument +msgid "bassoon" msgstr "" -#: js/WidgetBlocks.js:277 -#: js/sampler.js:329 -msgid "Upload a sample and adjust its pitch center." +#: js/utils/musicutils.js:1168 +#: js/utils/synthutils.js:112 +#.TRANS: musical instrument +msgid "celeste" msgstr "" -#: js/WidgetBlocks.js:284 -#.TRANS: the speed at music is should be played. -msgid "sampler" +#: js/utils/musicutils.js:1170 +#: js/widgets/temperament.js:787 +#.TRANS: musical temperament +msgid "equal" msgstr "" -#: js/WidgetBlocks.js:329 -#: js/WidgetBlocks.js:334 -#: js/IntervalsBlocks.js:928 -#: js/VolumeBlocks.js:411 -#: js/ToneBlocks.js:946 -#: js/VolumeActions.js:218 -#: js/musicutils.js:704 -#: js/musicutils.js:755 -#: js/musicutils.js:798 -#: js/musicutils.js:820 -#: js/musicutils.js:1136 -#: js/synthutils.js:118 -#: js/modewidget.js:919 -#.TRANS: customize voice -msgid "custom" +#: js/utils/musicutils.js:1172 +#.TRANS: musical temperament +msgid "Pythagorean" msgstr "" -#: js/WidgetBlocks.js:432 -msgid "The Meter block opens a tool to select strong beats for the meter." +#: js/utils/musicutils.js:1174 +#.TRANS: musical temperament +msgid "just intonation" msgstr "" -#: js/WidgetBlocks.js:473 -msgid "The oscilloscope block opens a tool to visualize waveforms." +#: js/utils/musicutils.js:1176 +#.TRANS: musical temperament +msgid "meantone" msgstr "" -#: js/WidgetBlocks.js:478 -msgid "oscilloscope" +#: js/utils/musicutils.js:1193 +msgid "major 7th" msgstr "" -#: js/WidgetBlocks.js:530 -msgid "The Custom mode block opens a tool to explore musical mode (the spacing of the notes in a scale)." +#: js/utils/musicutils.js:1194 +msgid "minor 7th" msgstr "" -#: js/WidgetBlocks.js:536 -#.TRANS: musical mode is the pattern of half-steps in an octave, e.g., Major or Minor modes -msgid "custom mode" +#: js/utils/musicutils.js:1195 +msgid "dominant 7th" msgstr "" -#: js/WidgetBlocks.js:570 -msgid "The Tempo block opens a metronome to visualize the beat." +#: js/utils/musicutils.js:1196 +msgid "minor-major 7th" msgstr "" -#: js/WidgetBlocks.js:617 -msgid "The Arpeggio Widget is used to compose chord sequences." +#: js/utils/musicutils.js:1197 +msgid "fully-diminished 7th" msgstr "" -#: js/WidgetBlocks.js:623 -#: js/IntervalsBlocks.js:683 -msgid "arpeggio" +#: js/utils/musicutils.js:1198 +msgid "half-diminished 7th" msgstr "" -#: js/WidgetBlocks.js:677 -msgid "The Pitch drum matrix is used to map pitches to drum sounds." +#: js/utils/musicutils.js:1557 +#: js/utils/musicutils.js:1569 +msgid "Equal (12EDO)" msgstr "" -#: js/WidgetBlocks.js:682 -#.TRANS: makes a mapping between pitches and drum sounds -msgid "pitch-drum mapper" +#: js/utils/musicutils.js:1558 +#: js/utils/musicutils.js:1570 +msgid "5-limit Just Intonation" msgstr "" -#: js/WidgetBlocks.js:724 -msgid "You must have at least one pitch block and one drum block in the matrix." +#: js/utils/musicutils.js:1559 +#: js/utils/musicutils.js:1571 +msgid "Pythagorean (3-limit JI)" msgstr "" -#: js/WidgetBlocks.js:746 -msgid "The Pitch slider tool to is used to generate pitches at selected frequencies." +#: js/utils/musicutils.js:1560 +#: js/utils/musicutils.js:1561 +#: js/utils/musicutils.js:1572 +#: js/utils/musicutils.js:1573 +msgid "Meantone" msgstr "" -#: js/WidgetBlocks.js:751 -#.TRANS: widget to generate pitches using a slider -msgid "pitch slider" +#: js/utils/musicutils.js:1574 +msgid "Custom" msgstr "" -#: js/WidgetBlocks.js:788 -msgid "chromatic keyboard" +#: js/utils/musicutils.js:5387 +#: js/utils/musicutils.js:5430 +msgid "current" msgstr "" -#: js/WidgetBlocks.js:815 -#: js/WidgetBlocks.js:874 -#.TRANS: widget to generate pitches using a slider -msgid "music keyboard" +#: js/utils/musicutils.js:5390 +#: js/utils/musicutils.js:5421 +msgid "next" msgstr "" -#: js/WidgetBlocks.js:859 -#: js/WidgetBlocks.js:866 -msgid "The Music keyboard block opens a piano keyboard that can be used to create notes." +#: js/utils/musicutils.js:5393 +#: js/utils/musicutils.js:5426 +msgid "previous" msgstr "" -#: js/WidgetBlocks.js:910 -msgid "The Pitch staircase tool to is used to generate pitches from a given ratio." +#: js/utils/synthutils.js:120 +#.TRANS: simple monotone synthesizer +msgid "simple-2" msgstr "" -#: js/WidgetBlocks.js:917 -#.TRANS: generate a progressive sequence of pitches -msgid "pitch staircase" +#: js/utils/synthutils.js:122 +#.TRANS: simple monotone synthesizer +msgid "simple-3" msgstr "" -#: js/WidgetBlocks.js:982 -msgid "The Rhythm Maker block opens a tool to create drum machines." +#: js/utils/synthutils.js:124 +#.TRANS: simple monotone synthesizer +msgid "simple-4" msgstr "" -#: js/WidgetBlocks.js:1036 -msgid "G major scale" +#: js/utils/synthutils.js:162 +#.TRANS: musical instrument +msgid "taiko" msgstr "" -#: js/WidgetBlocks.js:1064 -msgid "C major scale" +#: js/blocks/ActionBlocks.js:58 +msgid "The Return block will return a value from an action." msgstr "" -#: js/WidgetBlocks.js:1097 -msgid "The Phrase Maker block opens a tool to create musical phrases." +#: js/blocks/ActionBlocks.js:75 +msgid "return" msgstr "" -#: js/WidgetBlocks.js:1104 -#.TRANS: assigns pitch to a sequence of beats to generate a melody -msgid "phrase maker" +#: js/blocks/ActionBlocks.js:128 +msgid "The Return to URL block will return a value to a webpage." msgstr "" -#: js/WidgetBlocks.js:1168 -msgid "You must have at least one pitch block and one rhythm block in the matrix." +#: js/blocks/ActionBlocks.js:145 +msgid "return to URL" msgstr "" -#: js/WidgetBlocks.js:1220 -msgid "The Status block opens a tool for inspecting the status of Music Blocks as it is running." +#: js/blocks/ActionBlocks.js:233 +#: js/blocks/ActionBlocks.js:290 +#: js/blocks/ActionBlocks.js:501 +#: js/blocks/ActionBlocks.js:688 +msgid "The Calculate block returns a value calculated by an action." msgstr "" -#: js/IntervalsBlocks.js:45 -msgid "set temperament" +#: js/blocks/ActionBlocks.js:251 +#: js/blocks/ActionBlocks.js:517 +#: js/blocks/ActionBlocks.js:707 +msgid "calculate" msgstr "" -#: js/IntervalsBlocks.js:63 -#: js/MediaBlocks.js:746 -#: js/PitchBlocks.js:657 -#: js/PitchBlocks.js:933 -#: js/PitchBlocks.js:972 -#: js/PitchBlocks.js:1005 -#: js/PitchBlocks.js:1166 -#: js/PitchBlocks.js:1679 -#: js/PitchBlocks.js:1720 -#: js/PitchBlocks.js:1827 -#: js/ToneBlocks.js:1025 -#.TRANS: adjusts the shift up or down by one octave (twelve half-steps in the interval between two notes, one having twice or half the frequency in Hz of the other.) -msgid "octave" +#: js/blocks/ActionBlocks.js:376 +#: js/blocks/ActionBlocks.js:593 +#: js/blocks/ActionBlocks.js:942 +#: js/blocks/ActionBlocks.js:1389 +#.TRANS: do is the do something or take an action. +msgid "The Do block is used to initiate an action." msgstr "" -#: js/IntervalsBlocks.js:99 -msgid "The Temperament name block is used to select a tuning method." +#: js/blocks/ActionBlocks.js:390 +#: js/blocks/ActionBlocks.js:610 +#: js/blocks/ActionBlocks.js:959 +#: js/blocks/ActionBlocks.js:1048 +#: js/blocks/MeterBlocks.js:769 +msgid "do1" msgstr "" -#: js/IntervalsBlocks.js:161 -msgid "doubly" +#: js/blocks/ActionBlocks.js:390 +#: js/blocks/ActionBlocks.js:610 +#: js/blocks/ActionBlocks.js:959 +#: js/blocks/ActionBlocks.js:1048 +#: js/blocks/FlowBlocks.js:742 +#: js/blocks/FlowBlocks.js:822 +#: js/blocks/MeterBlocks.js:769 +msgid "do" msgstr "" -#: js/IntervalsBlocks.js:166 -msgid "The Doubly block will double the size of an interval." +#: js/blocks/ActionBlocks.js:791 +#: js/blocks/ActionBlocks.js:865 +msgid "The Arg block contains the value of an argument passed to an action." msgstr "" -#: js/IntervalsBlocks.js:262 -msgid "interval number" +#: js/blocks/ActionBlocks.js:806 +#: js/blocks/ActionBlocks.js:878 +msgid "arg" msgstr "" -#: js/IntervalsBlocks.js:330 -#.TRANS: measure the distance between two pitches in semi-tones -msgid "semi-tone interval measure" +#: js/blocks/ActionBlocks.js:836 +#: js/blocks/ActionBlocks.js:900 +#: js/blocks/ActionBlocks.js:908 +msgid "Invalid argument" msgstr "" -#: js/IntervalsBlocks.js:397 -#: js/IntervalsBlocks.js:513 -msgid "You must use two pitch blocks when measuring an interval." +#: js/blocks/ActionBlocks.js:944 +msgid "In the example, it is used with the One of block to choose a random phase." msgstr "" -#: js/IntervalsBlocks.js:439 -msgid "The Scalar interval block measures the distance between two notes in the current key and mode." +#: js/blocks/ActionBlocks.js:1019 +#: js/blocks/ActionBlocks.js:1026 +msgid "The Listen block is used to listen for an event such as a mouse click." msgstr "" -#: js/IntervalsBlocks.js:445 -#.TRANS: measure the distance between two pitches in steps of musical scale -msgid "scalar interval measure" +#: js/blocks/ActionBlocks.js:1028 +msgid "When the event happens, an action is taken." msgstr "" -#: js/IntervalsBlocks.js:592 -#: js/musicutils.js:637 -#: js/musicutils.js:908 -#.TRANS: perfect is a music term related to intervals -msgid "perfect" +#: js/blocks/ActionBlocks.js:1045 +msgid "on" msgstr "" -#: js/IntervalsBlocks.js:621 -msgid "In the figure, we add sol# to sol." +#: js/blocks/ActionBlocks.js:1048 +#: js/blocks/ActionBlocks.js:1049 +#: js/blocks/ActionBlocks.js:1153 +msgid "event" msgstr "" -#: js/IntervalsBlocks.js:627 -#: js/OrnamentBlocks.js:220 -#.TRANS: calculate a relative step between notes based on semi-tones -msgid "semi-tone interval" +#: js/blocks/ActionBlocks.js:1133 +msgid "The Broadcast block is used to trigger an event." msgstr "" -#: js/IntervalsBlocks.js:676 -msgid "The output of the example is: do, mi, sol, sol, ti, mi" +#: js/blocks/ActionBlocks.js:1151 +msgid "broadcast" msgstr "" -#: js/IntervalsBlocks.js:735 -msgid "The Chord block calculates common chords." +#: js/blocks/ActionBlocks.js:1208 +msgid "Each Start block is a separate voice." msgstr "" -#: js/IntervalsBlocks.js:737 -msgid "In the figure, we generate a C-major chord." +#: js/blocks/ActionBlocks.js:1304 +msgid "It is often used for storing a phrase of music that is repeated." msgstr "" -#: js/IntervalsBlocks.js:742 -msgid "chord" +#: js/blocks/ActionBlocks.js:1495 +msgid "define temperament" msgstr "" -#: js/IntervalsBlocks.js:794 -msgid "The Ratio Interval block calculates an interval based on a ratio." +#: js/blocks/BooleanBlocks.js:44 +msgid "The Not block is the logical not operator." msgstr "" -#: js/IntervalsBlocks.js:799 -msgid "ratio interval" +#: js/blocks/BooleanBlocks.js:62 +msgid "not" +msgstr "NOT" + +#: js/blocks/BooleanBlocks.js:134 +msgid "The And block is the logical and operator." msgstr "" -#: js/IntervalsBlocks.js:868 -msgid "In the figure, we add la to sol." +#: js/blocks/BooleanBlocks.js:152 +msgid "and" +msgstr "AND" + +#: js/blocks/BooleanBlocks.js:218 +msgid "The Or block is the logical or operator." msgstr "" -#: js/IntervalsBlocks.js:924 -#.TRANS: define a custom mode -msgid "define mode" +#: js/blocks/BooleanBlocks.js:236 +msgid "or" +msgstr "OR" + +#: js/blocks/BooleanBlocks.js:302 +msgid "The XOR block is the logical XOR operator." msgstr "" -#: js/IntervalsBlocks.js:977 -msgid "movable Do" +#: js/blocks/BooleanBlocks.js:320 +msgid "xor" msgstr "" -#: js/IntervalsBlocks.js:1028 -#.TRANS: mode length is the number of notes in the mode, e.g., 7 for major and minor scales; 12 for chromatic scales -msgid "mode length" +#: js/blocks/BooleanBlocks.js:808 +msgid "The Equal block returns True if the two numbers are equal." msgstr "" -#: js/IntervalsBlocks.js:1037 -msgid "The Mode length block is the number of notes in the current scale." +#: js/blocks/BooleanBlocks.js:909 +msgid "The Not-equal-to block returns True if the two numbers are not equal to each other." msgstr "" -#: js/IntervalsBlocks.js:1039 -msgid "Most Western scales have 7 notes." +#: js/blocks/BooleanBlocks.js:1008 +msgid "The Boolean block is used to specify true or false." msgstr "" -#: js/IntervalsBlocks.js:1088 -#.TRANS: the mode in music is 'major', 'minor', etc. -msgid "current mode" +#: js/blocks/BoxesBlocks.js:53 +#: js/blocks/BoxesBlocks.js:59 +msgid "The Add-to block is used to add to the value stored in a box." msgstr "" -#: js/IntervalsBlocks.js:1141 -#.TRANS: the key is a group of pitches with which a music composition is created -msgid "current key" +#: js/blocks/BoxesBlocks.js:61 +msgid "It can also be used with other blocks such as Color and Pen size." msgstr "" -#: js/IntervalsBlocks.js:1193 -#: js/IntervalsBlocks.js:1238 -#.TRANS: set the key and mode, e.g. C Major -msgid "set key" +#: js/blocks/BoxesBlocks.js:73 +msgid "add" msgstr "" -#: js/IntervalsBlocks.js:1247 -#: js/IntervalsBlocks.js:1253 -msgid "The Set key block is used to set the key and mode," +#: js/blocks/BoxesBlocks.js:75 +#: js/widgets/temperament.js:857 +msgid "to" msgstr "" -#: js/IntervalsBlocks.js:1253 -msgid "eg C Major" +#: js/blocks/BoxesBlocks.js:75 +#: js/blocks/BoxesBlocks.js:595 +#: js/blocks/HeapBlocks.js:544 +msgid "value1" msgstr "" -#: js/IntervalsBlocks.js:1266 -#: js/DictBlocks.js:215 -#: js/DictBlocks.js:216 -#: js/DictBlocks.js:289 -#: js/DictBlocks.js:290 -#: js/DictBlocks.js:357 -#: js/DictBlocks.js:430 -#: js/DictBlocks.js:431 -#.TRANS: key, e.g., C in C Major -msgid "key" +#: js/blocks/BoxesBlocks.js:118 +msgid "Block does not support incrementing." msgstr "" -#: js/ActionBlocks.js:58 -msgid "The Return block will return a value from an action." +#: js/blocks/BoxesBlocks.js:152 +msgid "The Add-1-to block adds one to the value stored in a box." msgstr "" -#: js/ActionBlocks.js:75 -msgid "return" +#: js/blocks/BoxesBlocks.js:163 +msgid "add 1 to" msgstr "" -#: js/ActionBlocks.js:128 -msgid "The Return to URL block will return a value to a webpage." +#: js/blocks/BoxesBlocks.js:211 +msgid "The Subtract-1-from block subtracts one from the value stored in a box." msgstr "" -#: js/ActionBlocks.js:145 -msgid "return to URL" +#: js/blocks/BoxesBlocks.js:222 +msgid "subtract 1 from" msgstr "" -#: js/ActionBlocks.js:233 -#: js/ActionBlocks.js:290 -#: js/ActionBlocks.js:501 -#: js/ActionBlocks.js:688 -msgid "The Calculate block returns a value calculated by an action." +#: js/blocks/BoxesBlocks.js:270 +#: js/blocks/BoxesBlocks.js:387 +msgid "The Box block returns the value stored in a box." msgstr "" -#: js/ActionBlocks.js:251 -#: js/ActionBlocks.js:517 -#: js/ActionBlocks.js:707 -msgid "calculate" +#: js/blocks/BoxesBlocks.js:500 +#: js/blocks/BoxesBlocks.js:576 +msgid "The Store in block will store a value in a box." msgstr "" -#: js/ActionBlocks.js:376 -#: js/ActionBlocks.js:593 -#: js/ActionBlocks.js:942 -#: js/ActionBlocks.js:1389 -#.TRANS: do is the do something or take an action. -msgid "The Do block is used to initiate an action." +#: js/blocks/BoxesBlocks.js:595 +#: js/blocks/EnsembleBlocks.js:391 +#: js/blocks/EnsembleBlocks.js:402 +msgid "name1" msgstr "" -#: js/ActionBlocks.js:390 -#: js/ActionBlocks.js:610 -#: js/ActionBlocks.js:959 -#: js/ActionBlocks.js:1048 -#: js/MeterBlocks.js:769 -msgid "do1" +#: js/blocks/BoxesBlocks.js:652 +msgid "The Box2 block returns the value stored in Box2." msgstr "" -#: js/ActionBlocks.js:390 -#: js/ActionBlocks.js:610 -#: js/ActionBlocks.js:959 -#: js/ActionBlocks.js:1048 -#: js/FlowBlocks.js:742 -#: js/FlowBlocks.js:822 -#: js/MeterBlocks.js:769 -msgid "do" +#: js/blocks/BoxesBlocks.js:703 +msgid "The Store in Box2 block is used to store a value in Box2." msgstr "" -#: js/ActionBlocks.js:791 -#: js/ActionBlocks.js:865 -msgid "The Arg block contains the value of an argument passed to an action." +#: js/blocks/BoxesBlocks.js:715 +msgid "store in box2" msgstr "" -#: js/ActionBlocks.js:806 -#: js/ActionBlocks.js:878 -msgid "arg" +#: js/blocks/BoxesBlocks.js:761 +msgid "The Box1 block returns the value stored in Box1." msgstr "" -#: js/ActionBlocks.js:836 -#: js/ActionBlocks.js:900 -#: js/ActionBlocks.js:908 -msgid "Invalid argument" +#: js/blocks/BoxesBlocks.js:812 +msgid "The Store in Box1 block is used to store a value in Box1." msgstr "" -#: js/ActionBlocks.js:944 -msgid "In the example, it is used with the One of block to choose a random phase." +#: js/blocks/BoxesBlocks.js:826 +msgid "store in box1" msgstr "" -#: js/ActionBlocks.js:1019 -#: js/ActionBlocks.js:1026 -msgid "The Listen block is used to listen for an event such as a mouse click." +#: js/blocks/DictBlocks.js:77 +msgid "show dictionary" msgstr "" -#: js/ActionBlocks.js:1028 -msgid "When the event happens, an action is taken." +#: js/blocks/DictBlocks.js:80 +#: js/blocks/DictBlocks.js:145 +#: js/blocks/DictBlocks.js:216 +#: js/blocks/DictBlocks.js:290 +#: js/blocks/ProgramBlocks.js:396 +#: js/blocks/ProgramBlocks.js:501 +#: js/blocks/ProgramBlocks.js:664 +msgid "My Dictionary" msgstr "" -#: js/ActionBlocks.js:1045 -msgid "on" +#: js/blocks/DictBlocks.js:129 +msgid "The Dictionary block returns a dictionary." msgstr "" -#: js/ActionBlocks.js:1048 -#: js/ActionBlocks.js:1049 -#: js/ActionBlocks.js:1153 -msgid "event" +#: js/blocks/DictBlocks.js:197 +#: js/blocks/DictBlocks.js:339 +msgid "The Get-dict block returns a value in the dictionary for a specified key." msgstr "" -#: js/ActionBlocks.js:1133 -msgid "The Broadcast block is used to trigger an event." +#: js/blocks/DictBlocks.js:212 +#: js/blocks/DictBlocks.js:354 +#.TRANS: retrieve a value from the dictionary with a given key +msgid "get value" msgstr "" -#: js/ActionBlocks.js:1151 -msgid "broadcast" +#: js/blocks/DictBlocks.js:215 +#: js/blocks/DictBlocks.js:216 +#: js/blocks/DictBlocks.js:289 +#: js/blocks/DictBlocks.js:290 +#: js/blocks/DictBlocks.js:357 +#: js/blocks/DictBlocks.js:430 +#: js/blocks/DictBlocks.js:431 +msgid "key2" msgstr "" -#: js/ActionBlocks.js:1208 -msgid "Each Start block is a separate voice." +#: js/blocks/DictBlocks.js:215 +#: js/blocks/DictBlocks.js:216 +#: js/blocks/DictBlocks.js:289 +#: js/blocks/DictBlocks.js:290 +#: js/blocks/DictBlocks.js:357 +#: js/blocks/DictBlocks.js:430 +#: js/blocks/DictBlocks.js:431 +#: js/blocks/IntervalsBlocks.js:1462 +#.TRANS: key, e.g., C in C Major +msgid "key" msgstr "" -#: js/ActionBlocks.js:1304 -msgid "It is often used for storing a phrase of music that is repeated." +#: js/blocks/DictBlocks.js:271 +#: js/blocks/DictBlocks.js:411 +msgid "The Set-dict block sets a value in the dictionary for a specified key." msgstr "" -#: js/ActionBlocks.js:1495 -msgid "define temperament" +#: js/blocks/DictBlocks.js:286 +#: js/blocks/DictBlocks.js:427 +#.TRANS: set a value in the dictionary for a given key +msgid "set value" msgstr "" -#: js/EnsembleBlocks.js:66 +#: js/blocks/EnsembleBlocks.js:66 msgid "mouse index heap" msgstr "" -#: js/EnsembleBlocks.js:68 +#: js/blocks/EnsembleBlocks.js:68 msgid "The Mouse index heap block returns a value in the heap at a specified location for a specified mouse." msgstr "" -#: js/EnsembleBlocks.js:77 -#: js/EnsembleBlocks.js:1080 +#: js/blocks/EnsembleBlocks.js:77 +#: js/blocks/EnsembleBlocks.js:1080 msgid "mouse name" msgstr "" -#: js/EnsembleBlocks.js:77 -#: js/EnsembleBlocks.js:92 -#: js/HeapBlocks.js:544 +#: js/blocks/EnsembleBlocks.js:77 +#: js/blocks/EnsembleBlocks.js:92 +#: js/blocks/HeapBlocks.js:544 #.TRANS: value1 is a numeric value (JAPANESE ONLY) msgid "index" msgstr "" -#: js/EnsembleBlocks.js:80 +#: js/blocks/EnsembleBlocks.js:80 msgid "turtle index heap" msgstr "" -#: js/EnsembleBlocks.js:82 +#: js/blocks/EnsembleBlocks.js:82 msgid "The Turtle index heap block returns a value in the heap at a specified location for a specified turtle." msgstr "" -#: js/EnsembleBlocks.js:90 -#: js/EnsembleBlocks.js:167 -#: js/EnsembleBlocks.js:230 -#: js/EnsembleBlocks.js:316 -#: js/EnsembleBlocks.js:362 -#: js/EnsembleBlocks.js:400 -#: js/EnsembleBlocks.js:454 -#: js/EnsembleBlocks.js:504 -#: js/EnsembleBlocks.js:550 -#: js/EnsembleBlocks.js:597 -#: js/EnsembleBlocks.js:651 -#: js/EnsembleBlocks.js:763 -#: js/EnsembleBlocks.js:854 -#: js/EnsembleBlocks.js:915 -#: js/EnsembleBlocks.js:955 -#: js/EnsembleBlocks.js:1219 -#: js/EnsembleBlocks.js:1293 +#: js/blocks/EnsembleBlocks.js:90 +#: js/blocks/EnsembleBlocks.js:167 +#: js/blocks/EnsembleBlocks.js:230 +#: js/blocks/EnsembleBlocks.js:316 +#: js/blocks/EnsembleBlocks.js:362 +#: js/blocks/EnsembleBlocks.js:400 +#: js/blocks/EnsembleBlocks.js:454 +#: js/blocks/EnsembleBlocks.js:504 +#: js/blocks/EnsembleBlocks.js:550 +#: js/blocks/EnsembleBlocks.js:597 +#: js/blocks/EnsembleBlocks.js:651 +#: js/blocks/EnsembleBlocks.js:763 +#: js/blocks/EnsembleBlocks.js:854 +#: js/blocks/EnsembleBlocks.js:915 +#: js/blocks/EnsembleBlocks.js:955 +#: js/blocks/EnsembleBlocks.js:1219 +#: js/blocks/EnsembleBlocks.js:1293 #.TRANS: Yertle is the name of a turtle. msgid "Yertle" msgstr "" -#: js/EnsembleBlocks.js:92 -#: js/EnsembleBlocks.js:1089 +#: js/blocks/EnsembleBlocks.js:92 +#: js/blocks/EnsembleBlocks.js:1089 msgid "turtle name" msgstr "" -#: js/EnsembleBlocks.js:122 -#: js/EnsembleBlocks.js:1197 -#: js/HeapBlocks.js:474 -#: js/HeapBlocks.js:572 +#: js/blocks/EnsembleBlocks.js:122 +#: js/blocks/EnsembleBlocks.js:1197 +#: js/blocks/HeapBlocks.js:474 +#: js/blocks/HeapBlocks.js:572 msgid "Index must be > 0." msgstr "" -#: js/EnsembleBlocks.js:127 -#: js/HeapBlocks.js:479 -#: js/HeapBlocks.js:577 +#: js/blocks/EnsembleBlocks.js:127 +#: js/blocks/HeapBlocks.js:479 +#: js/blocks/HeapBlocks.js:577 msgid "Maximum heap size is 1000." msgstr "" -#: js/EnsembleBlocks.js:145 +#: js/blocks/EnsembleBlocks.js:145 msgid "stop mouse" msgstr "" -#: js/EnsembleBlocks.js:147 +#: js/blocks/EnsembleBlocks.js:147 msgid "The Stop mouse block stops the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:158 +#: js/blocks/EnsembleBlocks.js:158 msgid "stop turtle" msgstr "" -#: js/EnsembleBlocks.js:160 +#: js/blocks/EnsembleBlocks.js:160 msgid "The Stop turtle block stops the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:184 -#: js/EnsembleBlocks.js:247 -#: js/EnsembleBlocks.js:413 -#: js/EnsembleBlocks.js:468 -#: js/EnsembleBlocks.js:706 -#: js/EnsembleBlocks.js:808 -#: js/EnsembleBlocks.js:870 -#: js/EnsembleBlocks.js:1190 -#: js/EnsembleBlocks.js:1253 +#: js/blocks/EnsembleBlocks.js:184 +#: js/blocks/EnsembleBlocks.js:247 +#: js/blocks/EnsembleBlocks.js:413 +#: js/blocks/EnsembleBlocks.js:468 +#: js/blocks/EnsembleBlocks.js:706 +#: js/blocks/EnsembleBlocks.js:808 +#: js/blocks/EnsembleBlocks.js:870 +#: js/blocks/EnsembleBlocks.js:1190 +#: js/blocks/EnsembleBlocks.js:1253 msgid "Cannot find mouse" msgstr "" -#: js/EnsembleBlocks.js:186 -#: js/EnsembleBlocks.js:249 -#: js/EnsembleBlocks.js:415 -#: js/EnsembleBlocks.js:470 -#: js/EnsembleBlocks.js:708 -#: js/EnsembleBlocks.js:810 -#: js/EnsembleBlocks.js:872 -#: js/EnsembleBlocks.js:1192 -#: js/EnsembleBlocks.js:1255 +#: js/blocks/EnsembleBlocks.js:186 +#: js/blocks/EnsembleBlocks.js:249 +#: js/blocks/EnsembleBlocks.js:415 +#: js/blocks/EnsembleBlocks.js:470 +#: js/blocks/EnsembleBlocks.js:708 +#: js/blocks/EnsembleBlocks.js:810 +#: js/blocks/EnsembleBlocks.js:872 +#: js/blocks/EnsembleBlocks.js:1192 +#: js/blocks/EnsembleBlocks.js:1255 msgid "Cannot find turtle" msgstr "" -#: js/EnsembleBlocks.js:206 +#: js/blocks/EnsembleBlocks.js:206 msgid "start mouse" msgstr "" -#: js/EnsembleBlocks.js:209 +#: js/blocks/EnsembleBlocks.js:209 msgid "The Start mouse block starts the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:220 +#: js/blocks/EnsembleBlocks.js:220 msgid "start turtle" msgstr "" -#: js/EnsembleBlocks.js:223 +#: js/blocks/EnsembleBlocks.js:223 msgid "The Start turtle block starts the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:256 +#: js/blocks/EnsembleBlocks.js:256 msgid "Mouse is already running." msgstr "" -#: js/EnsembleBlocks.js:258 +#: js/blocks/EnsembleBlocks.js:258 msgid "Turtle is already running." msgstr "" -#: js/EnsembleBlocks.js:282 +#: js/blocks/EnsembleBlocks.js:282 msgid "Cannot find start block" msgstr "" -#: js/EnsembleBlocks.js:292 +#: js/blocks/EnsembleBlocks.js:292 #.TRANS: pen color for this mouse msgid "mouse color" msgstr "" -#: js/EnsembleBlocks.js:294 +#: js/blocks/EnsembleBlocks.js:294 msgid "The Mouse color block returns the pen color of the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:306 +#: js/blocks/EnsembleBlocks.js:306 #.TRANS: pen color for this turtle msgid "turtle color" msgstr "" -#: js/EnsembleBlocks.js:308 +#: js/blocks/EnsembleBlocks.js:308 msgid "The Turtle color block returns the pen color of the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:338 +#: js/blocks/EnsembleBlocks.js:338 #.TRANS: heading (compass direction) for this mouse msgid "mouse heading" msgstr "" -#: js/EnsembleBlocks.js:340 +#: js/blocks/EnsembleBlocks.js:340 msgid "The Mouse heading block returns the heading of the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:352 +#: js/blocks/EnsembleBlocks.js:352 #.TRANS: heading (compass direction) for this turtle msgid "turtle heading" msgstr "" -#: js/EnsembleBlocks.js:354 +#: js/blocks/EnsembleBlocks.js:354 msgid "The Turtle heading block returns the heading of the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:384 -#: js/EnsembleBlocks.js:439 +#: js/blocks/EnsembleBlocks.js:384 +#: js/blocks/EnsembleBlocks.js:439 #.TRANS: set xy position for this mouse msgid "set mouse" msgstr "" -#: js/EnsembleBlocks.js:391 -#: js/EnsembleBlocks.js:402 -#: js/BoxesBlocks.js:595 -msgid "name1" -msgstr "" - -#: js/EnsembleBlocks.js:391 -#: js/EnsembleBlocks.js:402 -#: js/ProgramBlocks.js:881 -#: js/GraphicsBlocks.js:235 -#: js/GraphicsBlocks.js:313 -#: js/GraphicsBlocks.js:436 -#: js/GraphicsBlocks.js:487 -#: js/GraphicsBlocks.js:534 -#: js/GraphicsBlocks.js:750 +#: js/blocks/EnsembleBlocks.js:391 +#: js/blocks/EnsembleBlocks.js:402 +#: js/blocks/GraphicsBlocks.js:235 +#: js/blocks/GraphicsBlocks.js:313 +#: js/blocks/GraphicsBlocks.js:436 +#: js/blocks/GraphicsBlocks.js:487 +#: js/blocks/GraphicsBlocks.js:534 +#: js/blocks/GraphicsBlocks.js:750 +#: js/blocks/ProgramBlocks.js:881 msgid "x" msgstr "x" -#: js/EnsembleBlocks.js:391 -#: js/EnsembleBlocks.js:402 -#: js/ProgramBlocks.js:881 -#: js/GraphicsBlocks.js:149 -#: js/GraphicsBlocks.js:313 -#: js/GraphicsBlocks.js:436 -#: js/GraphicsBlocks.js:487 -#: js/GraphicsBlocks.js:534 -#: js/GraphicsBlocks.js:750 +#: js/blocks/EnsembleBlocks.js:391 +#: js/blocks/EnsembleBlocks.js:402 +#: js/blocks/GraphicsBlocks.js:149 +#: js/blocks/GraphicsBlocks.js:313 +#: js/blocks/GraphicsBlocks.js:436 +#: js/blocks/GraphicsBlocks.js:487 +#: js/blocks/GraphicsBlocks.js:534 +#: js/blocks/GraphicsBlocks.js:750 +#: js/blocks/ProgramBlocks.js:881 msgid "y" msgstr "y" -#: js/EnsembleBlocks.js:395 -#: js/EnsembleBlocks.js:452 +#: js/blocks/EnsembleBlocks.js:395 +#: js/blocks/EnsembleBlocks.js:452 #.TRANS: set xy position for this turtle msgid "set turtle" msgstr "" -#: js/EnsembleBlocks.js:433 +#: js/blocks/EnsembleBlocks.js:433 msgid "The Set mouse block sends a stack of blocks to be run by the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:446 +#: js/blocks/EnsembleBlocks.js:446 msgid "The Set turtle block sends a stack of blocks to be run by the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:480 +#: js/blocks/EnsembleBlocks.js:480 #.TRANS: y position for this mouse msgid "mouse y" msgstr "" -#: js/EnsembleBlocks.js:482 +#: js/blocks/EnsembleBlocks.js:482 msgid "The Y mouse block returns the Y position of the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:494 +#: js/blocks/EnsembleBlocks.js:494 #.TRANS: y position for this turtle msgid "turtle y" msgstr "" -#: js/EnsembleBlocks.js:496 +#: js/blocks/EnsembleBlocks.js:496 msgid "The Y turtle block returns the Y position of the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:526 +#: js/blocks/EnsembleBlocks.js:526 #.TRANS: x position for this mouse msgid "mouse x" msgstr "" -#: js/EnsembleBlocks.js:528 +#: js/blocks/EnsembleBlocks.js:528 msgid "The X mouse block returns the X position of the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:540 +#: js/blocks/EnsembleBlocks.js:540 #.TRANS: x position for this turtle msgid "turtle x" msgstr "" -#: js/EnsembleBlocks.js:542 +#: js/blocks/EnsembleBlocks.js:542 msgid "The X turtle block returns the X position of the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:573 +#: js/blocks/EnsembleBlocks.js:573 #.TRANS: notes played by this mouse msgid "mouse notes played" msgstr "" -#: js/EnsembleBlocks.js:575 +#: js/blocks/EnsembleBlocks.js:575 msgid "The Mouse elapse notes block returns the number of notes played by the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:587 +#: js/blocks/EnsembleBlocks.js:587 #.TRANS: notes played by this turtle msgid "turtle notes played" msgstr "" -#: js/EnsembleBlocks.js:589 +#: js/blocks/EnsembleBlocks.js:589 msgid "The Turtle elapse notes block returns the number of notes played by the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:627 +#: js/blocks/EnsembleBlocks.js:627 #.TRANS: convert current note for this turtle to piano key (1-88) msgid "mouse pitch number" msgstr "" -#: js/EnsembleBlocks.js:629 +#: js/blocks/EnsembleBlocks.js:629 msgid "The Mouse pitch block returns the current pitch number being played by the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:641 +#: js/blocks/EnsembleBlocks.js:641 #.TRANS: convert current note for this turtle to piano key (1-88) msgid "turtle pitch number" msgstr "" -#: js/EnsembleBlocks.js:643 -msgid "The Turrle pitch block returns the current pitch number being played by the specified turtle." +#: js/blocks/EnsembleBlocks.js:643 +msgid "The Turtle pitch block returns the current pitch number being played by the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:747 -#: js/EnsembleBlocks.js:819 +#: js/blocks/EnsembleBlocks.js:747 +#: js/blocks/EnsembleBlocks.js:819 #.TRANS: note value is the duration of the note played by this mouse msgid "mouse note value" msgstr "" -#: js/EnsembleBlocks.js:757 +#: js/blocks/EnsembleBlocks.js:757 #.TRANS: note value is the duration of the note played by this turtle msgid "turtle note value" msgstr "" -#: js/EnsembleBlocks.js:830 +#: js/blocks/EnsembleBlocks.js:830 #.TRANS: sync is short for synchronization msgid "mouse sync" msgstr "" -#: js/EnsembleBlocks.js:832 +#: js/blocks/EnsembleBlocks.js:832 msgid "The Mouse sync block aligns the beat count between mice." msgstr "" -#: js/EnsembleBlocks.js:844 +#: js/blocks/EnsembleBlocks.js:844 #.TRANS: sync is short for synchronization msgid "turtle sync" msgstr "" -#: js/EnsembleBlocks.js:846 +#: js/blocks/EnsembleBlocks.js:846 msgid "The Turtle sync block aligns the beat count between turtles." msgstr "" -#: js/EnsembleBlocks.js:887 +#: js/blocks/EnsembleBlocks.js:887 msgid "The Found mouse block will return true if the specified mouse can be found." msgstr "" -#: js/EnsembleBlocks.js:893 +#: js/blocks/EnsembleBlocks.js:893 msgid "found mouse" msgstr "" -#: js/EnsembleBlocks.js:903 +#: js/blocks/EnsembleBlocks.js:903 msgid "The Found turtle block will return true if the specified turtle can be found." msgstr "" -#: js/EnsembleBlocks.js:909 -msgid "found turtle" -msgstr "" - -#: js/EnsembleBlocks.js:932 -msgid "new mouse" -msgstr "" - -#: js/EnsembleBlocks.js:934 -msgid "The New mouse block will create a new mouse." -msgstr "" - -#: js/EnsembleBlocks.js:945 -msgid "new turtle" -msgstr "" - -#: js/EnsembleBlocks.js:947 -msgid "The New turtle block will create a new turtle." -msgstr "" - -#: js/EnsembleBlocks.js:1011 -msgid "set mouse color" -msgstr "" - -#: js/EnsembleBlocks.js:1014 -msgid "The Set-mouse-color block is used to set the color of a mouse." -msgstr "" - -#: js/EnsembleBlocks.js:1020 -msgid "set turtle color" -msgstr "" - -#: js/EnsembleBlocks.js:1023 -msgid "The Set-turtle-color block is used to set the color of a turtle." -msgstr "" - -#: js/EnsembleBlocks.js:1083 -msgid "The Mouse-name block returns the name of a mouse." -msgstr "" - -#: js/EnsembleBlocks.js:1092 -msgid "The Turtle-name block returns the name of a turtle." -msgstr "" - -#: js/EnsembleBlocks.js:1115 -msgid "mouse count" -msgstr "" - -#: js/EnsembleBlocks.js:1118 -msgid "The Mouse-count block returns the number of mice." -msgstr "" - -#: js/EnsembleBlocks.js:1124 -msgid "turtle count" -msgstr "" - -#: js/EnsembleBlocks.js:1127 -msgid "The Turtle-count block returns the number of turtles." -msgstr "" - -#: js/EnsembleBlocks.js:1149 -msgid "nth mouse name" -msgstr "" - -#: js/EnsembleBlocks.js:1152 -msgid "The Nth-Mouse name block returns the name of the nth mouse." -msgstr "" - -#: js/EnsembleBlocks.js:1158 -msgid "nth turtle name" -msgstr "" - -#: js/EnsembleBlocks.js:1161 -msgid "The Nth-Turtle name block returns the name of the nth turtle." -msgstr "" - -#: js/EnsembleBlocks.js:1205 -#: js/EnsembleBlocks.js:1265 -msgid "set name" -msgstr "" - -#: js/EnsembleBlocks.js:1214 -#: js/EnsembleBlocks.js:1221 -msgid "source" -msgstr "" - -#: js/EnsembleBlocks.js:1214 -#: js/EnsembleBlocks.js:1221 -msgid "target" -msgstr "" - -#: js/EnsembleBlocks.js:1271 -msgid "The Set-name block is used to name a mouse." -msgstr "" - -#: js/EnsembleBlocks.js:1284 -msgid "The Set-name block is used to name a turtle." -msgstr "" - -#: js/BooleanBlocks.js:44 -msgid "The Not block is the logical not operator." -msgstr "" - -#: js/BooleanBlocks.js:62 -msgid "not" -msgstr "NOT" - -#: js/BooleanBlocks.js:134 -msgid "The And block is the logical and operator." -msgstr "" - -#: js/BooleanBlocks.js:152 -msgid "and" -msgstr "AND" - -#: js/BooleanBlocks.js:218 -msgid "The Or block is the logical or operator." -msgstr "" - -#: js/BooleanBlocks.js:236 -msgid "or" -msgstr "OR" +#: js/blocks/EnsembleBlocks.js:909 +msgid "found turtle" +msgstr "" -#: js/BooleanBlocks.js:302 -msgid "The XOR block is the logical XOR operator." +#: js/blocks/EnsembleBlocks.js:932 +msgid "new mouse" msgstr "" -#: js/BooleanBlocks.js:320 -msgid "xor" +#: js/blocks/EnsembleBlocks.js:934 +msgid "The New mouse block will create a new mouse." msgstr "" -#: js/BooleanBlocks.js:808 -msgid "The Equal block returns True if the two numbers are equal." +#: js/blocks/EnsembleBlocks.js:945 +msgid "new turtle" msgstr "" -#: js/BooleanBlocks.js:909 -msgid "The Not-equal-to block returns True if the two numbers are not equal to each other." +#: js/blocks/EnsembleBlocks.js:947 +msgid "The New turtle block will create a new turtle." msgstr "" -#: js/BooleanBlocks.js:1008 -msgid "The Boolean block is used to specify true or false." +#: js/blocks/EnsembleBlocks.js:1011 +msgid "set mouse color" msgstr "" -#: js/MediaBlocks.js:35 -#.TRANS: right side of the screen -msgid "right (screen)" +#: js/blocks/EnsembleBlocks.js:1014 +msgid "The Set-mouse-color block is used to set the color of a mouse." msgstr "" -#: js/MediaBlocks.js:45 -#: js/MediaBlocks.js:56 -msgid "The Right block returns the position of the right of the canvas." +#: js/blocks/EnsembleBlocks.js:1020 +msgid "set turtle color" msgstr "" -#: js/MediaBlocks.js:97 -#.TRANS: left side of the screen -msgid "left (screen)" +#: js/blocks/EnsembleBlocks.js:1023 +msgid "The Set-turtle-color block is used to set the color of a turtle." msgstr "" -#: js/MediaBlocks.js:107 -#: js/MediaBlocks.js:118 -msgid "The Left block returns the position of the left of the canvas." +#: js/blocks/EnsembleBlocks.js:1083 +msgid "The Mouse-name block returns the name of a mouse." msgstr "" -#: js/MediaBlocks.js:158 -msgid "top (screen)" +#: js/blocks/EnsembleBlocks.js:1092 +msgid "The Turtle-name block returns the name of a turtle." msgstr "" -#: js/MediaBlocks.js:168 -#: js/MediaBlocks.js:179 -msgid "The Top block returns the position of the top of the canvas." +#: js/blocks/EnsembleBlocks.js:1115 +msgid "mouse count" msgstr "" -#: js/MediaBlocks.js:219 -msgid "bottom (screen)" +#: js/blocks/EnsembleBlocks.js:1118 +msgid "The Mouse-count block returns the number of mice." msgstr "" -#: js/MediaBlocks.js:229 -#: js/MediaBlocks.js:240 -msgid "The Bottom block returns the position of the bottom of the canvas." +#: js/blocks/EnsembleBlocks.js:1124 +msgid "turtle count" msgstr "" -#: js/MediaBlocks.js:282 -msgid "width" +#: js/blocks/EnsembleBlocks.js:1127 +msgid "The Turtle-count block returns the number of turtles." msgstr "" -#: js/MediaBlocks.js:291 -msgid "The Width block returns the width of the canvas." +#: js/blocks/EnsembleBlocks.js:1149 +msgid "nth mouse name" msgstr "" -#: js/MediaBlocks.js:325 -msgid "height" +#: js/blocks/EnsembleBlocks.js:1152 +msgid "The Nth-Mouse name block returns the name of the nth mouse." msgstr "" -#: js/MediaBlocks.js:334 -msgid "The Height block returns the height of the canvas." +#: js/blocks/EnsembleBlocks.js:1158 +msgid "nth turtle name" msgstr "" -#: js/MediaBlocks.js:369 -#.TRANS: stops playback of an audio recording -msgid "stop play" +#: js/blocks/EnsembleBlocks.js:1161 +msgid "The Nth-Turtle name block returns the name of the nth turtle." msgstr "" -#: js/MediaBlocks.js:404 -#.TRANS: Erases the images and text -msgid "erase media" +#: js/blocks/EnsembleBlocks.js:1205 +#: js/blocks/EnsembleBlocks.js:1265 +msgid "set name" msgstr "" -#: js/MediaBlocks.js:409 -msgid "The Erase Media block erases text and images." +#: js/blocks/EnsembleBlocks.js:1214 +#: js/blocks/EnsembleBlocks.js:1221 +msgid "source" msgstr "" -#: js/MediaBlocks.js:439 -#.TRANS: play an audio recording -msgid "play back" +#: js/blocks/EnsembleBlocks.js:1214 +#: js/blocks/EnsembleBlocks.js:1221 +msgid "target" msgstr "" -#: js/MediaBlocks.js:487 -msgid "speak" +#: js/blocks/EnsembleBlocks.js:1271 +msgid "The Set-name block is used to name a mouse." msgstr "" -#: js/MediaBlocks.js:495 -msgid "The Speak block outputs to the text-to-speech synthesizer" +#: js/blocks/EnsembleBlocks.js:1284 +msgid "The Set-name block is used to name a turtle." msgstr "" -#: js/MediaBlocks.js:546 -msgid "camera" +#: js/blocks/ExtrasBlocks.js:33 +msgid "fraction" msgstr "" -#: js/MediaBlocks.js:551 -msgid "The Camera block connects a webcam to the Show block." +#: js/blocks/ExtrasBlocks.js:36 +msgid "Convert a float to a fraction" msgstr "" -#: js/MediaBlocks.js:574 -msgid "video" +#: js/blocks/ExtrasBlocks.js:93 +msgid "save as ABC" msgstr "" -#: js/MediaBlocks.js:579 -msgid "The Video block selects video for use with the Show block." +#: js/blocks/ExtrasBlocks.js:96 +#: js/blocks/ExtrasBlocks.js:132 +#: js/blocks/ExtrasBlocks.js:168 +msgid "title" msgstr "" -#: js/MediaBlocks.js:607 -msgid "The Open file block opens a file for use with the Show block." +#: js/blocks/ExtrasBlocks.js:129 +msgid "save as Lilypond" msgstr "" -#: js/MediaBlocks.js:645 -msgid "stop media" +#: js/blocks/ExtrasBlocks.js:165 +msgid "save as SVG" msgstr "" -#: js/MediaBlocks.js:650 -msgid "The Stop media block stops audio or video playback." +#: js/blocks/ExtrasBlocks.js:216 +msgid "no background" msgstr "" -#: js/MediaBlocks.js:679 -#: js/PitchBlocks.js:1539 -#: js/phrasemaker.js:822 -#: js/musickeyboard.js:1654 -#.TRANS: a measure of frequency: one cycle per second -msgid "hertz" +#: js/blocks/ExtrasBlocks.js:219 +msgid "The No background block eliminates the background from the saved SVG output." msgstr "" -#: js/MediaBlocks.js:692 -msgid "duration (ms)" +#: js/blocks/ExtrasBlocks.js:247 +msgid "show blocks" +msgstr "ব্লক দেখাও" + +#: js/blocks/ExtrasBlocks.js:249 +msgid "The Show blocks block shows the blocks." msgstr "" -#: js/MediaBlocks.js:728 -#.TRANS: translate a note into hertz, e.g., A4 -> 440HZ -msgid "note to frequency" +#: js/blocks/ExtrasBlocks.js:274 +msgid "hide blocks" +msgstr "ব্লক লুকিয়ে রাখো" + +#: js/blocks/ExtrasBlocks.js:276 +msgid "The Hide blocks block hides the blocks." msgstr "" -#: js/MediaBlocks.js:736 -msgid "The To frequency block converts a pitch name and octave to Hertz." +#: js/blocks/ExtrasBlocks.js:305 +#: js/blocks/ExtrasBlocks.js:338 +msgid "The Space block is used to add space between blocks." msgstr "" -#: js/MediaBlocks.js:746 -#: js/PitchBlocks.js:656 -#: js/PitchBlocks.js:932 -#: js/PitchBlocks.js:1827 -#.TRANS: name2 is name as in name of pitch (JAPANESE ONLY) -msgid "name2" +#: js/blocks/ExtrasBlocks.js:376 +msgid "wait" +msgstr "অপেক্ষা করো" + +#: js/blocks/ExtrasBlocks.js:379 +msgid "The Wait block pauses the program for a specified number of seconds." msgstr "" -#: js/MediaBlocks.js:812 -msgid "The Avatar block is used to change the appearance of the mouse." +#: js/blocks/ExtrasBlocks.js:433 +#: plugins/facebook.rtp:30 +msgid "comment" msgstr "" -#: js/MediaBlocks.js:819 -msgid "The Avatar block is used to change the appearance of the turtle." +#: js/blocks/ExtrasBlocks.js:469 +msgid "print" +msgstr "মুদ্রণ করো" + +#: js/blocks/ExtrasBlocks.js:476 +msgid "The Print block displays text at the top of the screen." msgstr "" -#: js/MediaBlocks.js:831 -#: js/MediaBlocks.js:891 -#.TRANS: a media object -msgid "size" +#: js/blocks/ExtrasBlocks.js:582 +msgid "display grid" msgstr "" -#: js/MediaBlocks.js:831 -msgid "image" +#: js/blocks/ExtrasBlocks.js:587 +msgid "The Display Grid Block changes the grid type" msgstr "" -#: js/MediaBlocks.js:880 -msgid "The Show block is used to display text or images on the canvas." +#: js/blocks/ExtrasBlocks.js:689 +#: js/blocks/ExtrasBlocks.js:708 +#: js/blocks/ExtrasBlocks.js:731 +#: js/blocks/ExtrasBlocks.js:754 +#: js/blocks/ExtrasBlocks.js:772 +#: js/blocks/ExtrasBlocks.js:791 +#: js/blocks/ExtrasBlocks.js:810 +#: js/blocks/ExtrasBlocks.js:829 +msgid "unknown" msgstr "" -#: js/MediaBlocks.js:888 -#.TRANS: show1 is show as in display an image or text on the screen. -msgid "show1" +#: js/blocks/FlowBlocks.js:41 +msgid "The Backward block runs code in reverse order (Musical retrograde)." msgstr "" -#: js/MediaBlocks.js:891 -msgid "obj" +#: js/blocks/FlowBlocks.js:48 +msgid "backward" msgstr "" -#: js/MediaBlocks.js:938 -msgid "The Media block is used to import an image." +#: js/blocks/FlowBlocks.js:124 +msgid "The Duplicate block will run each block multiple times." msgstr "" -#: js/MediaBlocks.js:973 -msgid "The Text block holds a text string." +#: js/blocks/FlowBlocks.js:136 +msgid "duplicate" msgstr "" -#: js/ProgramBlocks.js:33 -msgid "The Load-heap-from-app block loads the heap from a web page." +#: js/blocks/FlowBlocks.js:334 +msgid "The Default block is used inside of a Switch to define the default action." msgstr "" -#: js/ProgramBlocks.js:44 -#.TRANS: load the heap contents from a URL -msgid "load heap from App" +#: js/blocks/FlowBlocks.js:342 +msgid "default" msgstr "" -#: js/ProgramBlocks.js:95 -msgid "Error parsing JSON data:" +#: js/blocks/FlowBlocks.js:361 +#: js/blocks/FlowBlocks.js:418 +msgid "The Case Block must be used inside of a Switch Block." msgstr "" -#: js/ProgramBlocks.js:100 -msgid "404: Page not found" +#: js/blocks/FlowBlocks.js:389 +msgid "The Case block is used inside of a Switch to define matches." msgstr "" -#: js/ProgramBlocks.js:133 -msgid "The Save-heap-to-app block saves the heap to a web page." +#: js/blocks/FlowBlocks.js:397 +msgid "case" msgstr "" -#: js/ProgramBlocks.js:144 -#.TRANS: save the heap contents to a URL -msgid "save heap to App" +#: js/blocks/FlowBlocks.js:446 +msgid "The Switch block will run the code in the matching Case." msgstr "" -#: js/ProgramBlocks.js:189 -msgid "Cannot find a valid heap for" +#: js/blocks/FlowBlocks.js:454 +msgid "switch" msgstr "" -#: js/ProgramBlocks.js:206 -msgid "The Load-heap block loads the heap from a file." +#: js/blocks/FlowBlocks.js:595 +msgid "The Stop block will stop a loop" msgstr "" -#: js/ProgramBlocks.js:217 -#.TRANS: load the heap from a file -msgid "load heap" +#: js/blocks/FlowBlocks.js:597 +msgid "Forever, Repeat, While, or Until." msgstr "" -#: js/ProgramBlocks.js:270 -msgid "The file you selected does not contain a valid heap." +#: js/blocks/FlowBlocks.js:604 +#: js/widgets/timbre.js:417 +#: js/widgets/timbre.js:419 +#: js/widgets/musickeyboard.js:819 +#: js/widgets/musickeyboard.js:821 +#: js/widgets/phrasemaker.js:4202 +#: plugins/rodi.rtp:29 +#: plugins/rodi.rtp:73 +#: plugins/rodi.rtp:413 +msgid "stop" +msgstr "ধাপ" + +#: js/blocks/FlowBlocks.js:653 +msgid "The Waitfor block will wait until the condition is true." msgstr "" -#: js/ProgramBlocks.js:275 -msgid "The loadHeap block needs a loadFile block." +#: js/blocks/FlowBlocks.js:661 +msgid "wait for" msgstr "" -#: js/ProgramBlocks.js:291 -msgid "The Set-heap block loads the heap." +#: js/blocks/FlowBlocks.js:732 +msgid "The Until block will repeat until the condition is true." msgstr "" -#: js/ProgramBlocks.js:299 -#: js/HeapBlocks.js:539 -#.TRANS: load the heap from a JSON encoding -msgid "set heap" +#: js/blocks/FlowBlocks.js:740 +msgid "until" msgstr "" -#: js/ProgramBlocks.js:340 -msgid "The block you selected does not contain a valid heap." +#: js/blocks/FlowBlocks.js:742 +#: js/blocks/FlowBlocks.js:822 +msgid "do2" msgstr "" -#: js/ProgramBlocks.js:343 -msgid "The Set heap block needs a heap." +#: js/blocks/FlowBlocks.js:812 +msgid "The While block will repeat while the condition is true." msgstr "" -#: js/ProgramBlocks.js:360 -msgid "The Load-dictionary block loads a dictionary from a file." +#: js/blocks/FlowBlocks.js:820 +msgid "while" msgstr "" -#: js/ProgramBlocks.js:372 -#.TRANS: load a dictionary from a file -msgid "load dictionary" +#: js/blocks/FlowBlocks.js:903 +#: js/blocks/FlowBlocks.js:968 +#: js/blocks/FlowBlocks.js:979 +msgid "In this example if the mouse button is pressed a snare drum will play." msgstr "" -#: js/ProgramBlocks.js:390 -#: js/ProgramBlocks.js:658 -#: js/ToneBlocks.js:1025 -msgid "file" +#: js/blocks/FlowBlocks.js:925 +#: js/blocks/FlowBlocks.js:988 +msgid "if" +msgstr "if" + +#: js/blocks/FlowBlocks.js:927 +#: js/blocks/FlowBlocks.js:990 +msgid "then" +msgstr "then" + +#: js/blocks/FlowBlocks.js:927 +msgid "else" +msgstr "else" + +#: js/blocks/FlowBlocks.js:1025 +msgid "The Forever block will repeat the contained blocks forever." msgstr "" -#: js/ProgramBlocks.js:396 -#: js/ProgramBlocks.js:501 -#: js/ProgramBlocks.js:664 -#: js/DictBlocks.js:80 -#: js/DictBlocks.js:145 -#: js/DictBlocks.js:216 -#: js/DictBlocks.js:290 -msgid "My Dictionary" +#: js/blocks/FlowBlocks.js:1037 +msgid "forever" +msgstr "চিরদিন" + +#: js/blocks/FlowBlocks.js:1073 +msgid "The Repeat block will repeat the contained blocks." msgstr "" -#: js/ProgramBlocks.js:444 -msgid "The file you selected does not contain a valid dictionary." +#: js/blocks/FlowBlocks.js:1075 +msgid "In this example the note will be played 4 times." msgstr "" -#: js/ProgramBlocks.js:449 -msgid "The load dictionary block needs a load file block." +#: js/blocks/FlowBlocks.js:1083 +msgid "repeat" +msgstr "পুনরায় করো" + +#: js/blocks/FlowBlocks.js:1123 +msgid "duplicate factor" msgstr "" -#: js/ProgramBlocks.js:466 -msgid "The Set-dictionary block loads a dictionary." +#: js/blocks/HeapBlocks.js:49 +msgid "The Heap block returns the heap." msgstr "" -#: js/ProgramBlocks.js:477 -#.TRANS: load a dictionary from a JSON -msgid "set dictionary" +#: js/blocks/HeapBlocks.js:133 +msgid "show heap" +msgstr "heap দেখাও" + +#: js/blocks/HeapBlocks.js:181 +msgid "The Heap-length block returns the length of the heap." msgstr "" -#: js/ProgramBlocks.js:546 -msgid "The block you selected does not contain a valid dictionary." +#: js/blocks/HeapBlocks.js:195 +msgid "heap length" msgstr "" -#: js/ProgramBlocks.js:550 -msgid "The set dictionary block needs a dictionary." +#: js/blocks/HeapBlocks.js:254 +msgid "The Heap-empty? block returns true if the heap is empty." msgstr "" -#: js/ProgramBlocks.js:567 -msgid "The Save-heap block saves the heap to a file." +#: js/blocks/HeapBlocks.js:268 +#.TRANS: Is the heap empty? +msgid "heap empty?" msgstr "" -#: js/ProgramBlocks.js:578 -#.TRANS: save the heap to a file -msgid "save heap" +#: js/blocks/HeapBlocks.js:317 +msgid "The Empty-heap block empties the heap." msgstr "" -#: js/ProgramBlocks.js:629 -msgid "The Save-dictionary block saves a dictionary to a file." +#: js/blocks/HeapBlocks.js:327 +#: js/blocks/HeapBlocks.js:647 +#.TRANS: empty the heap +msgid "empty heap" +msgstr "খালি heap" + +#: js/blocks/HeapBlocks.js:371 +msgid "The Reverse-heap block reverses the order of the heap." msgstr "" -#: js/ProgramBlocks.js:640 -#.TRANS: save a dictionary to a file -msgid "save dictionary" +#: js/blocks/HeapBlocks.js:384 +#.TRANS: reverse the order of the heap +msgid "reverse heap" msgstr "" -#: js/ProgramBlocks.js:720 -msgid "The Open palette block opens a palette." +#: js/blocks/HeapBlocks.js:428 +msgid "The Index-heap block returns a value in the heap at a specified location." msgstr "" -#: js/ProgramBlocks.js:727 -msgid "open palette" +#: js/blocks/HeapBlocks.js:443 +#.TRANS: retrieve a value from the heap at index position in the heap +msgid "index heap" msgstr "" -#: js/ProgramBlocks.js:785 -msgid "The Delete block block removes a block." +#: js/blocks/HeapBlocks.js:523 +msgid "The Set-heap entry block sets a value in he heap at the specified location." msgstr "" -#: js/ProgramBlocks.js:797 -#.TRANS: Move this block to the trash. -msgid "delete block" +#: js/blocks/HeapBlocks.js:539 +#: js/blocks/ProgramBlocks.js:299 +#.TRANS: load the heap from a JSON encoding +msgid "set heap" msgstr "" -#: js/ProgramBlocks.js:861 -msgid "The Move block block moves a block." +#: js/blocks/HeapBlocks.js:619 +msgid "The Pop block removes the value at the top of the heap." msgstr "" -#: js/ProgramBlocks.js:869 -#.TRANS: Move the position of a block on the screen. -msgid "move block" +#: js/blocks/HeapBlocks.js:633 +#.TRANS: pop a value off the top of the heap +msgid "pop" +msgstr "বের করো" + +#: js/blocks/HeapBlocks.js:680 +msgid "The Push block adds a value to the top of the heap." msgstr "" -#: js/ProgramBlocks.js:881 -#: js/ProgramBlocks.js:1048 -msgid "block number" +#: js/blocks/HeapBlocks.js:696 +#.TRANS: push a value onto the top of the heap +msgid "push" +msgstr "প্রবেশ করাও" + +#: js/blocks/IntervalsBlocks.js:45 +msgid "set temperament" msgstr "" -#: js/ProgramBlocks.js:935 -#.TRANS: Run program beginning at this block. -msgid "run block" +#: js/blocks/IntervalsBlocks.js:63 +#: js/blocks/MediaBlocks.js:746 +#: js/blocks/PitchBlocks.js:657 +#: js/blocks/PitchBlocks.js:935 +#: js/blocks/PitchBlocks.js:974 +#: js/blocks/PitchBlocks.js:1007 +#: js/blocks/PitchBlocks.js:1194 +#: js/blocks/PitchBlocks.js:1717 +#: js/blocks/PitchBlocks.js:1758 +#: js/blocks/PitchBlocks.js:1866 +#: js/blocks/ToneBlocks.js:1025 +#: js/turtleactions/IntervalsActions.js:114 +#.TRANS: adjusts the shift up or down by one octave (twelve half-steps in the interval between two notes, one having twice or half the frequency in Hz of the other.) +msgid "octave" msgstr "" -#: js/ProgramBlocks.js:1025 -msgid "The Dock block block connections two blocks." +#: js/blocks/IntervalsBlocks.js:99 +msgid "The Temperament name block is used to select a tuning method." msgstr "" -#: js/ProgramBlocks.js:1036 -#.TRANS: We can connect a block to another block. -msgid "connect blocks" +#: js/blocks/IntervalsBlocks.js:161 +msgid "doubly" msgstr "" -#: js/ProgramBlocks.js:1048 -msgid "target block" +#: js/blocks/IntervalsBlocks.js:166 +msgid "The Doubly block will double the size of an interval." msgstr "" -#: js/ProgramBlocks.js:1048 -msgid "connection number" +#: js/blocks/IntervalsBlocks.js:262 +msgid "interval number" msgstr "" -#: js/ProgramBlocks.js:1140 -msgid "The Make block block creates a new block." +#: js/blocks/IntervalsBlocks.js:317 +msgid "current interval" msgstr "" -#: js/ProgramBlocks.js:1152 -#.TRANS: Create a new block -msgid "make block" +#: js/blocks/IntervalsBlocks.js:387 +#.TRANS: measure the distance between two pitches in semi-tones +msgid "semi-tone interval measure" msgstr "" -#: js/ProgramBlocks.js:1186 -#: js/ProgramBlocks.js:1227 -#: js/RhythmBlocks.js:1128 -#: js/PitchBlocks.js:972 -#: js/PitchBlocks.js:1005 -#: js/temperament.js:340 -#: js/temperament.js:362 -#: js/temperament.js:372 -#: js/temperament.js:484 -#: js/status.js:190 -#: plugins/rodi.rtp:192 -#.TRANS: a musical note consisting of pitch and duration -msgid "note" +#: js/blocks/IntervalsBlocks.js:454 +#: js/blocks/IntervalsBlocks.js:570 +msgid "You must use two pitch blocks when measuring an interval." msgstr "" -#: js/ProgramBlocks.js:1285 -msgid "Cannot find block" +#: js/blocks/IntervalsBlocks.js:496 +msgid "The Scalar interval block measures the distance between two notes in the current key and mode." msgstr "" -#: js/ProgramBlocks.js:1304 -#: js/ProgramBlocks.js:1313 -msgid "Warning: block argument type mismatch" +#: js/blocks/IntervalsBlocks.js:502 +#.TRANS: measure the distance between two pitches in steps of musical scale +msgid "scalar interval measure" msgstr "" -#: js/ProgramBlocks.js:1347 -msgid "The Open project block is used to open a project from a web page." +#: js/blocks/IntervalsBlocks.js:678 +msgid "In the figure, we add sol# to sol." msgstr "" -#: js/ProgramBlocks.js:1357 -msgid "open project" +#: js/blocks/IntervalsBlocks.js:684 +#: js/blocks/OrnamentBlocks.js:220 +#.TRANS: calculate a relative step between notes based on semi-tones +msgid "semi-tone interval" msgstr "" -#: js/ProgramBlocks.js:1410 -msgid "Please enter a valid URL." +#: js/blocks/IntervalsBlocks.js:733 +msgid "The output of the example is: do, mi, sol, sol, ti, mi" msgstr "" -#: js/DrumBlocks.js:59 -msgid "The Noise name block is used to select a noise synthesizer." +#: js/blocks/IntervalsBlocks.js:740 +#: js/blocks/WidgetBlocks.js:768 +msgid "arpeggio" msgstr "" -#: js/DrumBlocks.js:102 -msgid "The Drum name block is used to select a drum." +#: js/blocks/IntervalsBlocks.js:931 +msgid "The Chord block calculates common chords." msgstr "" -#: js/DrumBlocks.js:146 -msgid "The Effects name block is used to select a sound effect." +#: js/blocks/IntervalsBlocks.js:933 +msgid "In the figure, we generate a C-major chord." msgstr "" -#: js/DrumBlocks.js:163 -msgid "noise" +#: js/blocks/IntervalsBlocks.js:938 +msgid "chord" msgstr "" -#: js/DrumBlocks.js:177 -msgid "The Play noise block will generate white, pink, or brown noise." +#: js/blocks/IntervalsBlocks.js:990 +msgid "The Ratio Interval block calculates an interval based on a ratio." msgstr "" -#: js/DrumBlocks.js:191 -#: js/musicutils.js:752 -#: js/synthutils.js:47 -#.TRANS: white noise synthesizer -msgid "white noise" +#: js/blocks/IntervalsBlocks.js:995 +msgid "ratio interval" msgstr "" -#: js/DrumBlocks.js:326 -msgid "Replace every instance of a pitch with a drum sound." +#: js/blocks/IntervalsBlocks.js:1064 +msgid "In the figure, we add la to sol." msgstr "" -#: js/DrumBlocks.js:337 -#.TRANS: map a pitch to a drum sound -msgid "map pitch to drum" +#: js/blocks/IntervalsBlocks.js:1120 +#.TRANS: define a custom mode +msgid "define mode" msgstr "" -#: js/DrumBlocks.js:404 -msgid "In the example above, a kick drum sound will be played instead of sol." +#: js/blocks/IntervalsBlocks.js:1173 +msgid "movable Do" msgstr "" -#: js/DrumBlocks.js:416 -#.TRANS: set the current drum sound for playback -msgid "set drum" +#: js/blocks/IntervalsBlocks.js:1224 +#.TRANS: mode length is the number of notes in the mode, e.g., 7 for major and minor scales; 12 for chromatic scales +msgid "mode length" msgstr "" -#: js/DrumBlocks.js:460 -msgid "sound effect" +#: js/blocks/IntervalsBlocks.js:1233 +msgid "The Mode length block is the number of notes in the current scale." msgstr "" -#: js/DrumBlocks.js:498 -msgid "You can use multiple Drum blocks within a Note block." +#: js/blocks/IntervalsBlocks.js:1235 +msgid "Most Western scales have 7 notes." msgstr "" -#: js/RhythmBlocks.js:182 -#: js/RhythmBlocks.js:1086 -#: js/RhythmBlocks.js:1162 -msgid "Note value must be greater than 0." +#: js/blocks/IntervalsBlocks.js:1284 +#.TRANS: the mode in music is 'major', 'minor', etc. +msgid "current mode" msgstr "" -#: js/RhythmBlocks.js:215 -#: js/RhythmBlocks.js:278 -#: js/RhythmBlocks.js:350 -#.TRANS: swing is a rhythmic variation that emphasises the offbeat -msgid "swing" +#: js/blocks/IntervalsBlocks.js:1337 +#.TRANS: the key is a group of pitches with which a music composition is created +msgid "current key" msgstr "" -#: js/RhythmBlocks.js:355 -#.TRANS: the amount to shift to the offbeat note -msgid "swing value" +#: js/blocks/IntervalsBlocks.js:1389 +#: js/blocks/IntervalsBlocks.js:1434 +#.TRANS: set the key and mode, e.g. C Major +msgid "set key" msgstr "" -#: js/RhythmBlocks.js:419 -msgid "The Skip notes block will cause notes to be skipped." +#: js/blocks/IntervalsBlocks.js:1443 +#: js/blocks/IntervalsBlocks.js:1449 +msgid "The Set key block is used to set the key and mode," msgstr "" -#: js/RhythmBlocks.js:427 -#.TRANS: substitute rests on notes being skipped -msgid "skip notes" +#: js/blocks/IntervalsBlocks.js:1449 +msgid "eg C Major" msgstr "" -#: js/RhythmBlocks.js:489 -#.TRANS: speed up note duration by some factor, e.g. convert 1/4 to 1/8 notes by using a factor of 2 -msgid "multiply note value" +#: js/blocks/MediaBlocks.js:35 +#.TRANS: right side of the screen +msgid "right (screen)" msgstr "" -#: js/RhythmBlocks.js:542 -msgid "The Tie block works on pairs of notes, combining them into one note." +#: js/blocks/MediaBlocks.js:45 +#: js/blocks/MediaBlocks.js:56 +msgid "The Right block returns the position of the right of the canvas." msgstr "" -#: js/RhythmBlocks.js:550 -#.TRANS: tie notes together into one longer note -msgid "tie" +#: js/blocks/MediaBlocks.js:97 +#.TRANS: left side of the screen +msgid "left (screen)" msgstr "" -#: js/RhythmBlocks.js:591 -#: js/RhythmBlocks.js:671 -#.TRANS: a dotted note is played for 1.5x its value, e.g., 1/8. --> 3/16 -msgid "dot" +#: js/blocks/MediaBlocks.js:107 +#: js/blocks/MediaBlocks.js:118 +msgid "The Left block returns the position of the left of the canvas." msgstr "" -#: js/RhythmBlocks.js:619 -#: js/RhythmActions.js:221 -msgid "An argument of -1 results in a note value of 0." +#: js/blocks/MediaBlocks.js:158 +msgid "top (screen)" msgstr "" -#: js/RhythmBlocks.js:661 -msgid "The Dot block extends the duration of a note by 50%." +#: js/blocks/MediaBlocks.js:168 +#: js/blocks/MediaBlocks.js:179 +msgid "The Top block returns the position of the top of the canvas." msgstr "" -#: js/RhythmBlocks.js:663 -msgid "Eg a dotted quarter note will play for 3/8 (1/4 + 1/8) of a beat." +#: js/blocks/MediaBlocks.js:219 +msgid "bottom (screen)" msgstr "" -#: js/RhythmBlocks.js:765 -#.TRANS: Japanese only: note value block for drum -msgid "note value drum" +#: js/blocks/MediaBlocks.js:229 +#: js/blocks/MediaBlocks.js:240 +msgid "The Bottom block returns the position of the bottom of the canvas." msgstr "" -#: js/RhythmBlocks.js:829 -msgid "392 hertz" +#: js/blocks/MediaBlocks.js:282 +msgid "width" msgstr "" -#: js/RhythmBlocks.js:1119 -msgid "The Note block is a container for one or more Pitch blocks." +#: js/blocks/MediaBlocks.js:291 +msgid "The Width block returns the width of the canvas." msgstr "" -#: js/RhythmBlocks.js:1121 -msgid "The Note block specifies the duration (note value) of its contents." +#: js/blocks/MediaBlocks.js:325 +msgid "height" msgstr "" -#: js/RhythmBlocks.js:1130 -msgid "value2" +#: js/blocks/MediaBlocks.js:334 +msgid "The Height block returns the height of the canvas." msgstr "" -#: js/RhythmBlocks.js:1200 -msgid "define frequency" +#: js/blocks/MediaBlocks.js:369 +#.TRANS: stops playback of an audio recording +msgid "stop play" msgstr "" -#: js/RhythmBlocks.js:1218 -#: js/temperament.js:650 -#: js/temperament.js:1421 -msgid "octave space" +#: js/blocks/MediaBlocks.js:404 +#.TRANS: Erases the images and text +msgid "erase media" msgstr "" -#: js/NumberBlocks.js:28 -msgid "The Int block returns an integer." +#: js/blocks/MediaBlocks.js:409 +msgid "The Erase Media block erases text and images." msgstr "" -#: js/NumberBlocks.js:34 -msgid "int" +#: js/blocks/MediaBlocks.js:439 +#.TRANS: play an audio recording +msgid "play back" msgstr "" -#: js/NumberBlocks.js:73 -msgid "The Mod block returns the remainder from a division." +#: js/blocks/MediaBlocks.js:487 +msgid "speak" msgstr "" -#: js/NumberBlocks.js:79 -msgid "mod" -msgstr "মোড" - -#: js/NumberBlocks.js:123 -msgid "The Power block calculates a power function." +#: js/blocks/MediaBlocks.js:495 +msgid "The Speak block outputs to the text-to-speech synthesizer" msgstr "" -#: js/NumberBlocks.js:178 -msgid "The Sqrt block returns the square root." +#: js/blocks/MediaBlocks.js:546 +msgid "camera" msgstr "" -#: js/NumberBlocks.js:184 -msgid "sqrt" +#: js/blocks/MediaBlocks.js:551 +msgid "The Camera block connects a webcam to the Show block." msgstr "" -#: js/NumberBlocks.js:230 -msgid "The Abs block returns the absolute value." +#: js/blocks/MediaBlocks.js:574 +msgid "video" msgstr "" -#: js/NumberBlocks.js:236 -msgid "abs" +#: js/blocks/MediaBlocks.js:579 +msgid "The Video block selects video for use with the Show block." msgstr "" -#: js/NumberBlocks.js:277 -msgid "The Distance block returns the distance between two points. For example, between the mouse and the center of the screen." +#: js/blocks/MediaBlocks.js:607 +msgid "The Open file block opens a file for use with the Show block." msgstr "" -#: js/NumberBlocks.js:283 -#: plugins/rodi.rtp:310 -msgid "distance" +#: js/blocks/MediaBlocks.js:645 +msgid "stop media" msgstr "" -#: js/NumberBlocks.js:343 -msgid "The Divide block is used to divide." +#: js/blocks/MediaBlocks.js:650 +msgid "The Stop media block stops audio or video playback." msgstr "" -#: js/NumberBlocks.js:411 -msgid "The Multiply block is used to multiply." +#: js/blocks/MediaBlocks.js:679 +#: js/blocks/PitchBlocks.js:1577 +#: js/widgets/musickeyboard.js:1936 +#: js/widgets/phrasemaker.js:1037 +#.TRANS: a measure of frequency: one cycle per second +msgid "hertz" msgstr "" -#: js/NumberBlocks.js:554 -msgid "The Minus block is used to subtract." +#: js/blocks/MediaBlocks.js:692 +#: js/blocks/WidgetBlocks.js:182 +#: js/widgets/temperament.js:506 +#: js/widgets/temperament.js:546 +#: js/widgets/temperament.js:610 +#: js/widgets/temperament.js:618 +#: js/widgets/temperament.js:1505 +#: js/widgets/timbre.js:1842 +msgid "frequency" msgstr "" -#: js/NumberBlocks.js:647 -msgid "The Plus block is used to add." +#: js/blocks/MediaBlocks.js:692 +msgid "duration (ms)" msgstr "" -#: js/NumberBlocks.js:773 -msgid "The One-of block returns one of two choices." +#: js/blocks/MediaBlocks.js:728 +#.TRANS: translate a note into hertz, e.g., A4 -> 440HZ +msgid "note to frequency" msgstr "" -#: js/NumberBlocks.js:780 -#: js/PitchBlocks.js:616 -msgid "one of" +#: js/blocks/MediaBlocks.js:736 +msgid "The To frequency block converts a pitch name and octave to Hertz." msgstr "" -#: js/NumberBlocks.js:782 -msgid "this" +#: js/blocks/MediaBlocks.js:746 +#: js/blocks/PitchBlocks.js:656 +#: js/blocks/PitchBlocks.js:934 +#: js/blocks/PitchBlocks.js:1866 +#.TRANS: name2 is name as in name of pitch (JAPANESE ONLY) +msgid "name2" msgstr "" -#: js/NumberBlocks.js:782 -msgid "that" +#: js/blocks/MediaBlocks.js:812 +msgid "The Avatar block is used to change the appearance of the mouse." msgstr "" -#: js/NumberBlocks.js:837 -msgid "The Random block returns a random number." +#: js/blocks/MediaBlocks.js:819 +msgid "The Avatar block is used to change the appearance of the turtle." msgstr "" -#: js/NumberBlocks.js:844 -msgid "random" -msgstr "র‍্যান্ডম" +#: js/blocks/MediaBlocks.js:831 +#: js/blocks/MediaBlocks.js:891 +#.TRANS: a media object +msgid "size" +msgstr "" -#: js/NumberBlocks.js:846 -msgid "min" -msgstr "নূন্যতম" +#: js/blocks/MediaBlocks.js:831 +msgid "image" +msgstr "" -#: js/NumberBlocks.js:846 -msgid "max" -msgstr "সর্বোচ্চ" +#: js/blocks/MediaBlocks.js:880 +msgid "The Show block is used to display text or images on the canvas." +msgstr "" -#: js/NumberBlocks.js:910 -msgid "The Number block holds a number." +#: js/blocks/MediaBlocks.js:888 +#.TRANS: show1 is show as in display an image or text on the screen. +msgid "show1" msgstr "" -#: js/BoxesBlocks.js:53 -#: js/BoxesBlocks.js:59 -msgid "The Add-to block is used to add to the value stored in a box." +#: js/blocks/MediaBlocks.js:891 +msgid "obj" msgstr "" -#: js/BoxesBlocks.js:61 -msgid "It can also be used with other blocks such as Color and Pen size." +#: js/blocks/MediaBlocks.js:938 +msgid "The Media block is used to import an image." msgstr "" -#: js/BoxesBlocks.js:73 -msgid "add" +#: js/blocks/MediaBlocks.js:973 +msgid "The Text block holds a text string." msgstr "" -#: js/BoxesBlocks.js:75 -#: js/temperament.js:716 -msgid "to" +#: js/blocks/MeterBlocks.js:34 +#.TRANS: musical meter (time signature), e.g., 4:4 +msgid "current meter" msgstr "" -#: js/BoxesBlocks.js:75 -#: js/BoxesBlocks.js:595 -#: js/HeapBlocks.js:544 -msgid "value1" +#: js/blocks/MeterBlocks.js:85 +#.TRANS: number of beats per minute +msgid "beat factor" msgstr "" -#: js/BoxesBlocks.js:118 -msgid "Block does not support incrementing." +#: js/blocks/MeterBlocks.js:161 +msgid "The Beats per minute block returns the current beats per minute." msgstr "" -#: js/BoxesBlocks.js:152 -msgid "The Add-1-to block adds one to the value stored in a box." +#: js/blocks/MeterBlocks.js:169 +#: js/widgets/status.js:152 +#.TRANS: number of beats played per minute +msgid "beats per minute2" msgstr "" -#: js/BoxesBlocks.js:163 -msgid "add 1 to" +#: js/blocks/MeterBlocks.js:169 +#: js/blocks/MeterBlocks.js:1056 +#: js/blocks/MeterBlocks.js:1133 +#: js/blocks/MeterBlocks.js:1211 +#.TRANS: sets tempo by defining a beat and beats per minute +msgid "beats per minute" msgstr "" -#: js/BoxesBlocks.js:211 -msgid "The Subtract-1-from block subtracts one from the value stored in a box." +#: js/blocks/MeterBlocks.js:233 +#.TRANS: count of current musical measure in meter +msgid "measure count" msgstr "" -#: js/BoxesBlocks.js:222 -msgid "subtract 1 from" +#: js/blocks/MeterBlocks.js:241 +msgid "The Measure count block returns the current measure." msgstr "" -#: js/BoxesBlocks.js:270 -#: js/BoxesBlocks.js:387 -msgid "The Box block returns the value stored in a box." +#: js/blocks/MeterBlocks.js:290 +#.TRANS: count of current beat in the meter +msgid "beat count" msgstr "" -#: js/BoxesBlocks.js:500 -#: js/BoxesBlocks.js:576 -msgid "The Store in block will store a value in a box." +#: js/blocks/MeterBlocks.js:300 +#: js/blocks/MeterBlocks.js:311 +#: js/blocks/MeterBlocks.js:565 +#: js/blocks/MeterBlocks.js:576 +msgid "The Beat count block is the number of the current beat," msgstr "" -#: js/BoxesBlocks.js:652 -msgid "The Box2 block returns the value stored in Box2." +#: js/blocks/MeterBlocks.js:313 +#: js/blocks/MeterBlocks.js:578 +msgid "eg 1, 2, 3, or 4." msgstr "" -#: js/BoxesBlocks.js:703 -msgid "The Store in Box2 block is used to store a value in Box2." +#: js/blocks/MeterBlocks.js:368 +#.TRANS: count the number of notes +msgid "sum note values" msgstr "" -#: js/BoxesBlocks.js:715 -msgid "store in box2" +#: js/blocks/MeterBlocks.js:376 +#: js/blocks/MeterBlocks.js:440 +msgid "The Note counter block can be used to count the number of contained notes." msgstr "" -#: js/BoxesBlocks.js:761 -msgid "The Box1 block returns the value stored in Box1." +#: js/blocks/MeterBlocks.js:432 +#.TRANS: count the number of notes +msgid "note counter" msgstr "" -#: js/BoxesBlocks.js:812 -msgid "The Store in Box1 block is used to store a value in Box1." +#: js/blocks/MeterBlocks.js:496 +#.TRANS: number of whole notes that have been played +msgid "whole notes played" msgstr "" -#: js/BoxesBlocks.js:826 -msgid "store in box1" +#: js/blocks/MeterBlocks.js:505 +msgid "The Whole notes played block returns the total number of whole notes played." msgstr "" -#: js/HeapBlocks.js:49 -msgid "The Heap block returns the heap." +#: js/blocks/MeterBlocks.js:555 +#: js/turtleactions/DictActions.js:83 +#.TRANS: number of notes that have been played +msgid "notes played" msgstr "" -#: js/HeapBlocks.js:133 -msgid "show heap" -msgstr "heap দেখাও" +#: js/blocks/MeterBlocks.js:653 +msgid "The No clock block decouples the notes from the master clock." +msgstr "" -#: js/HeapBlocks.js:181 -msgid "The Heap-length block returns the length of the heap." +#: js/blocks/MeterBlocks.js:661 +#.TRANS: don't lock notes to master clock +msgid "no clock" msgstr "" -#: js/HeapBlocks.js:195 -msgid "heap length" +#: js/blocks/MeterBlocks.js:700 +msgid "on weak beat do" msgstr "" -#: js/HeapBlocks.js:254 -msgid "The Heap-empty? block returns true if the heap is empty." +#: js/blocks/MeterBlocks.js:705 +msgid "The On-weak-beat block lets you specify actions to take on weak (off) beats." msgstr "" -#: js/HeapBlocks.js:268 -#.TRANS: Is the heap empty? -msgid "heap empty?" +#: js/blocks/MeterBlocks.js:750 +msgid "on strong beat" msgstr "" -#: js/HeapBlocks.js:317 -msgid "The Empty-heap block empties the heap." +#: js/blocks/MeterBlocks.js:758 +msgid "The On-strong-beat block lets you specify actions to take on specified beats." msgstr "" -#: js/HeapBlocks.js:327 -#: js/HeapBlocks.js:647 -#.TRANS: empty the heap -msgid "empty heap" -msgstr "খালি heap" +#: js/blocks/MeterBlocks.js:769 +msgid "beat" +msgstr "" -#: js/HeapBlocks.js:371 -msgid "The Reverse-heap block reverses the order of the heap." +#: js/blocks/MeterBlocks.js:813 +msgid "on every beat do" msgstr "" -#: js/HeapBlocks.js:384 -#.TRANS: reverse the order of the heap -msgid "reverse heap" +#: js/blocks/MeterBlocks.js:821 +msgid "The On-every-beat block lets you specify actions to take on every beat." msgstr "" -#: js/HeapBlocks.js:428 -msgid "The Index-heap block returns a value in the heap at a specified location." +#: js/blocks/MeterBlocks.js:874 +msgid "on every note do" msgstr "" -#: js/HeapBlocks.js:443 -#.TRANS: retrieve a value from the heap at index position in the heap -msgid "index heap" +#: js/blocks/MeterBlocks.js:882 +msgid "The On-every-note block lets you specify actions to take on every note." msgstr "" -#: js/HeapBlocks.js:523 -msgid "The Set-heap entry block sets a value in he heap at the specified location." +#: js/blocks/MeterBlocks.js:928 +#: js/blocks/MeterBlocks.js:999 +#.TRANS: sets tempo by defining a beat and beats per minute +msgid "master beats per minute" msgstr "" -#: js/HeapBlocks.js:619 -msgid "The Pop block removes the value at the top of the heap." +#: js/blocks/MeterBlocks.js:952 +#: js/blocks/MeterBlocks.js:1078 +#: js/blocks/MeterBlocks.js:1135 +msgid "bpm" msgstr "" -#: js/HeapBlocks.js:633 -#.TRANS: pop a value off the top of the heap -msgid "pop" -msgstr "বের করো" +#: js/blocks/MeterBlocks.js:952 +#: js/blocks/MeterBlocks.js:1078 +#: js/blocks/MeterBlocks.js:1135 +msgid "beat value" +msgstr "" -#: js/HeapBlocks.js:680 -msgid "The Push block adds a value to the top of the heap." +#: js/blocks/MeterBlocks.js:1024 +#: js/blocks/MeterBlocks.js:1167 +#: js/blocks/MeterBlocks.js:1241 +msgid "Beats per minute must be > 30." msgstr "" -#: js/HeapBlocks.js:696 -#.TRANS: push a value onto the top of the heap -msgid "push" -msgstr "প্রবেশ করাও" +#: js/blocks/MeterBlocks.js:1027 +#: js/blocks/MeterBlocks.js:1170 +#: js/blocks/MeterBlocks.js:1244 +msgid "Maximum beats per minute is 1000." +msgstr "" -#: js/FlowBlocks.js:41 -msgid "The Backward block runs code in reverse order (Musical retrograde)." +#: js/blocks/MeterBlocks.js:1068 +msgid "The Beats per minute block sets the number of 1/4 notes per minute." msgstr "" -#: js/FlowBlocks.js:48 -msgid "backward" +#: js/blocks/MeterBlocks.js:1279 +#.TRANS: anacrusis +msgid "pickup" msgstr "" -#: js/FlowBlocks.js:124 -msgid "The Duplicate block will run each block multiple times." +#: js/blocks/MeterBlocks.js:1367 +msgid "number of beats" msgstr "" -#: js/FlowBlocks.js:136 -msgid "duplicate" +#: js/blocks/NumberBlocks.js:28 +msgid "The Int block returns an integer." msgstr "" -#: js/FlowBlocks.js:334 -msgid "The Default block is used inside of a Switch to define the default action." +#: js/blocks/NumberBlocks.js:34 +msgid "int" msgstr "" -#: js/FlowBlocks.js:342 -msgid "default" +#: js/blocks/NumberBlocks.js:73 +msgid "The Mod block returns the remainder from a division." msgstr "" -#: js/FlowBlocks.js:361 -#: js/FlowBlocks.js:418 -msgid "The Case Block must be used inside of a Switch Block." +#: js/blocks/NumberBlocks.js:79 +msgid "mod" +msgstr "মোড" + +#: js/blocks/NumberBlocks.js:141 +msgid "The Power block calculates a power function." msgstr "" -#: js/FlowBlocks.js:389 -msgid "The Case block is used inside of a Switch to define matches." +#: js/blocks/NumberBlocks.js:196 +msgid "The Sqrt block returns the square root." msgstr "" -#: js/FlowBlocks.js:397 -msgid "case" +#: js/blocks/NumberBlocks.js:202 +msgid "sqrt" msgstr "" -#: js/FlowBlocks.js:446 -msgid "The Switch block will run the code in the matching Case." +#: js/blocks/NumberBlocks.js:248 +msgid "The Abs block returns the absolute value." msgstr "" -#: js/FlowBlocks.js:454 -msgid "switch" +#: js/blocks/NumberBlocks.js:254 +msgid "abs" msgstr "" -#: js/FlowBlocks.js:595 -msgid "The Stop block will stop a loop" +#: js/blocks/NumberBlocks.js:295 +msgid "The Distance block returns the distance between two points. For example, between the mouse and the center of the screen." msgstr "" -#: js/FlowBlocks.js:597 -msgid "Forever, Repeat, While, or Until." +#: js/blocks/NumberBlocks.js:301 +#: plugins/rodi.rtp:310 +msgid "distance" msgstr "" -#: js/FlowBlocks.js:604 -#: js/phrasemaker.js:3799 -#: js/musickeyboard.js:629 -#: js/musickeyboard.js:631 -#: js/timbre.js:417 -#: js/timbre.js:419 -#: plugins/rodi.rtp:29 -#: plugins/rodi.rtp:73 -#: plugins/rodi.rtp:413 -msgid "stop" -msgstr "ধাপ" +#: js/blocks/NumberBlocks.js:361 +msgid "The Divide block is used to divide." +msgstr "" -#: js/FlowBlocks.js:653 -msgid "The Waitfor block will wait until the condition is true." +#: js/blocks/NumberBlocks.js:441 +msgid "The Multiply block is used to multiply." msgstr "" -#: js/FlowBlocks.js:661 -msgid "wait for" +#: js/blocks/NumberBlocks.js:612 +msgid "The Minus block is used to subtract." msgstr "" -#: js/FlowBlocks.js:732 -msgid "The Until block will repeat until the condition is true." +#: js/blocks/NumberBlocks.js:723 +msgid "The Plus block is used to add." msgstr "" -#: js/FlowBlocks.js:740 -msgid "until" +#: js/blocks/NumberBlocks.js:849 +msgid "The One-of block returns one of two choices." msgstr "" -#: js/FlowBlocks.js:742 -#: js/FlowBlocks.js:822 -msgid "do2" +#: js/blocks/NumberBlocks.js:856 +#: js/blocks/PitchBlocks.js:616 +msgid "one of" msgstr "" -#: js/FlowBlocks.js:812 -msgid "The While block will repeat while the condition is true." +#: js/blocks/NumberBlocks.js:858 +msgid "this" msgstr "" -#: js/FlowBlocks.js:820 -msgid "while" +#: js/blocks/NumberBlocks.js:858 +msgid "that" msgstr "" -#: js/FlowBlocks.js:903 -#: js/FlowBlocks.js:968 -#: js/FlowBlocks.js:979 -msgid "In this example if the mouse button is pressed a snare drum will play." +#: js/blocks/NumberBlocks.js:913 +msgid "The Random block returns a random number." msgstr "" -#: js/FlowBlocks.js:925 -#: js/FlowBlocks.js:988 -msgid "if" -msgstr "if" +#: js/blocks/NumberBlocks.js:920 +msgid "random" +msgstr "র‍্যান্ডম" -#: js/FlowBlocks.js:927 -#: js/FlowBlocks.js:990 -msgid "then" -msgstr "then" +#: js/blocks/NumberBlocks.js:922 +msgid "min" +msgstr "নূন্যতম" -#: js/FlowBlocks.js:927 -msgid "else" -msgstr "else" +#: js/blocks/NumberBlocks.js:922 +msgid "max" +msgstr "সর্বোচ্চ" -#: js/FlowBlocks.js:1025 -msgid "The Forever block will repeat the contained blocks forever." +#: js/blocks/NumberBlocks.js:986 +msgid "The Number block holds a number." msgstr "" -#: js/FlowBlocks.js:1037 -msgid "forever" -msgstr "চিরদিন" - -#: js/FlowBlocks.js:1073 -msgid "The Repeat block will repeat the contained blocks." +#: js/blocks/OrnamentBlocks.js:32 +msgid "staccato factor" msgstr "" -#: js/FlowBlocks.js:1075 -msgid "In this example the note will be played 4 times." +#: js/blocks/OrnamentBlocks.js:108 +msgid "slur factor" msgstr "" -#: js/FlowBlocks.js:1083 -msgid "repeat" -msgstr "পুনরায় করো" - -#: js/FlowBlocks.js:1123 -msgid "duplicate factor" +#: js/blocks/OrnamentBlocks.js:217 +#: js/blocks/OrnamentBlocks.js:309 +#.TRANS: the neighbor refers to a neighboring note, e.g., D is a neighbor of C +msgid "neighbor" msgstr "" -#: js/PitchBlocks.js:39 -#: js/musicutils.js:722 -#: js/musicutils.js:1117 -#: js/synthutils.js:112 -#.TRANS: square wave -msgid "square" +#: js/blocks/OrnamentBlocks.js:293 +msgid "The Neighbor block rapidly switches between neighboring pitches." msgstr "" -#: js/PitchBlocks.js:62 -#: js/ToneBlocks.js:39 -#: js/musicutils.js:723 -#: js/musicutils.js:1118 -#: js/synthutils.js:116 -#.TRANS: triangle wave -msgid "triangle" +#: js/blocks/OrnamentBlocks.js:364 +msgid "glide" msgstr "" -#: js/PitchBlocks.js:85 -#: js/musicutils.js:721 -#: js/musicutils.js:1116 -#: js/synthutils.js:110 -#.TRANS: sine wave -msgid "sine" +#: js/blocks/OrnamentBlocks.js:479 +#: js/blocks/OrnamentBlocks.js:643 +msgid "slur" msgstr "" -#: js/PitchBlocks.js:108 -#: js/musicutils.js:724 -#: js/musicutils.js:1119 -#: js/synthutils.js:114 -#.TRANS: sawtooth wave -msgid "sawtooth" +#: js/blocks/OrnamentBlocks.js:558 +#: js/blocks/OrnamentBlocks.js:710 +#.TRANS: play each note sharply detached from the others +msgid "staccato" msgstr "" -#: js/PitchBlocks.js:141 -#.TRANS: musical transposition (adjustment of pitch up or down) -msgid "transposition" +#: js/blocks/RhythmBlocks.js:182 +#: js/blocks/RhythmBlocks.js:1086 +#: js/blocks/RhythmBlocks.js:1162 +msgid "Note value must be greater than 0." msgstr "" -#: js/PitchBlocks.js:168 -#.TRANS: step down one note in current musical scale -msgid "scalar step down" +#: js/blocks/RhythmBlocks.js:215 +#: js/blocks/RhythmBlocks.js:278 +#: js/blocks/RhythmBlocks.js:350 +#.TRANS: swing is a rhythmic variation that emphasises the offbeat +msgid "swing" msgstr "" -#: js/PitchBlocks.js:172 -msgid "The Scalar step down block returns the number of semi-tones down to the previous note in the current key and mode." +#: js/blocks/RhythmBlocks.js:355 +#.TRANS: the amount to shift to the offbeat note +msgid "swing value" msgstr "" -#: js/PitchBlocks.js:190 -#.TRANS: step up one note in current musical scale -msgid "scalar step up" +#: js/blocks/RhythmBlocks.js:419 +msgid "The Skip notes block will cause notes to be skipped." msgstr "" -#: js/PitchBlocks.js:194 -msgid "The Scalar step up block returns the number of semi-tones up to the next note in the current key and mode." +#: js/blocks/RhythmBlocks.js:427 +#.TRANS: substitute rests on notes being skipped +msgid "skip notes" msgstr "" -#: js/PitchBlocks.js:212 -#.TRANS: the change measured in half-steps between the current pitch and the previous pitch -msgid "change in pitch" +#: js/blocks/RhythmBlocks.js:489 +#.TRANS: speed up note duration by some factor, e.g. convert 1/4 to 1/8 notes by using a factor of 2 +msgid "multiply note value" msgstr "" -#: js/PitchBlocks.js:216 -msgid "The Change in pitch block is the difference (in half steps) between the current pitch being played and the previous pitch played." +#: js/blocks/RhythmBlocks.js:542 +msgid "The Tie block works on pairs of notes, combining them into one note." msgstr "" -#: js/PitchBlocks.js:243 -#.TRANS: the change measured in scale-steps between the current pitch and the previous pitch -msgid "scalar change in pitch" +#: js/blocks/RhythmBlocks.js:550 +#.TRANS: tie notes together into one longer note +msgid "tie" msgstr "" -#: js/PitchBlocks.js:250 -#: js/PitchBlocks.js:432 -#: js/PitchBlocks.js:1629 -#: js/DictActions.js:89 -#: js/temperament.js:477 -#: js/temperament.js:481 -#: js/temperament.js:714 -#.TRANS: convert current note to piano key (1-88) -#.TRANS: a mapping of pitch to the 88 piano keys -msgid "pitch number" +#: js/blocks/RhythmBlocks.js:591 +#: js/blocks/RhythmBlocks.js:671 +#.TRANS: a dotted note is played for 1.5x its value, e.g., 1/8. --> 3/16 +msgid "dot" msgstr "" -#: js/PitchBlocks.js:256 -msgid "The Pitch number block is the value of the pitch of the note currently being played." +#: js/blocks/RhythmBlocks.js:619 +#: js/turtleactions/RhythmActions.js:221 +msgid "An argument of -1 results in a note value of 0." msgstr "" -#: js/PitchBlocks.js:329 -#: js/PitchBlocks.js:433 -#.TRANS: the current pitch expressed in Hertz -msgid "pitch in hertz" +#: js/blocks/RhythmBlocks.js:661 +msgid "The Dot block extends the duration of a note by 50%." msgstr "" -#: js/PitchBlocks.js:334 -msgid "The Pitch in Hertz block is the value in Hertz of the pitch of the note currently being played." +#: js/blocks/RhythmBlocks.js:663 +msgid "Eg a dotted quarter note will play for 3/8 (1/4 + 1/8) of a beat." msgstr "" -#: js/PitchBlocks.js:367 -#: js/DictActions.js:87 -msgid "current pitch" +#: js/blocks/RhythmBlocks.js:765 +#.TRANS: Japanese only: note value block for drum +msgid "note value drum" msgstr "" -#: js/PitchBlocks.js:373 -msgid "The Current Pitch block is used with the Pitch Converter block. In the example above, current pitch, sol 4, is displayed as 392 hertz." +#: js/blocks/RhythmBlocks.js:829 +msgid "392 hertz" msgstr "" -#: js/PitchBlocks.js:410 -msgid "This block converts the pitch value of the last note played into different formats such as hertz, letter name, pitch number, et al." +#: js/blocks/RhythmBlocks.js:1119 +msgid "The Note block is a container for one or more Pitch blocks." msgstr "" -#: js/PitchBlocks.js:434 -msgid "alphabet" +#: js/blocks/RhythmBlocks.js:1121 +msgid "The Note block specifies the duration (note value) of its contents." msgstr "" -#: js/PitchBlocks.js:436 -#.TRANS: Translate as "alphabet class" -msgid "letter class" +#: js/blocks/RhythmBlocks.js:1128 +#: js/blocks/PitchBlocks.js:974 +#: js/blocks/PitchBlocks.js:1007 +#: js/blocks/ProgramBlocks.js:1186 +#: js/blocks/ProgramBlocks.js:1227 +#: js/widgets/status.js:190 +#: js/widgets/temperament.js:464 +#: js/widgets/temperament.js:486 +#: js/widgets/temperament.js:496 +#: js/widgets/temperament.js:617 +#: plugins/rodi.rtp:192 +#.TRANS: a musical note consisting of pitch and duration +msgid "note" msgstr "" -#: js/PitchBlocks.js:437 -msgid "solfege class" +#: js/blocks/RhythmBlocks.js:1130 +msgid "value2" msgstr "" -#: js/PitchBlocks.js:438 -msgid "staff y" +#: js/blocks/RhythmBlocks.js:1200 +msgid "define frequency" msgstr "" -#: js/PitchBlocks.js:439 -msgid "solfege syllable" +#: js/blocks/RhythmBlocks.js:1218 +#: js/widgets/temperament.js:787 +#: js/widgets/temperament.js:1587 +msgid "octave space" msgstr "" -#: js/PitchBlocks.js:440 -msgid "pitch class" +#: js/blocks/SensorsBlocks.js:36 +msgid "The Input block prompts for keyboard input." msgstr "" -#: js/PitchBlocks.js:441 -msgid "scalar class" +#: js/blocks/SensorsBlocks.js:46 +msgid "input" msgstr "" -#: js/PitchBlocks.js:443 -msgid "nth degree" +#: js/blocks/SensorsBlocks.js:64 +msgid "Input a value" msgstr "" -#: js/PitchBlocks.js:444 -msgid "pitch to shade" +#: js/blocks/SensorsBlocks.js:126 +msgid "input value" msgstr "" -#: js/PitchBlocks.js:445 -msgid "pitch to color" +#: js/blocks/SensorsBlocks.js:131 +msgid "The Input-value block stores the input." msgstr "" -#: js/PitchBlocks.js:629 -#: js/musickeyboard.js:565 -#.TRANS: MIDI is a technical standard for electronic music -msgid "MIDI" +#: js/blocks/SensorsBlocks.js:238 +msgid "loudness" msgstr "" -#: js/PitchBlocks.js:642 -#.TRANS: set an offset associated with the numeric piano keyboard mapping -msgid "set pitch number offset" +#: js/blocks/SensorsBlocks.js:245 +msgid "The Loudness block returns the volume detected by the microphone." msgstr "" -#: js/PitchBlocks.js:645 -msgid "The Set pitch number offset block is used to set the offset for mapping pitch numbers to pitch and octave." +#: js/blocks/SensorsBlocks.js:300 +msgid "click" msgstr "" -#: js/PitchBlocks.js:679 -#.TRANS: convert piano key number (1-88) to pitch -msgid "number to pitch" +#: js/blocks/SensorsBlocks.js:306 +msgid "The Click block triggers an event if a mouse has been clicked." msgstr "" -#: js/PitchBlocks.js:682 -msgid "The Number to pitch block will convert a pitch number to a pich name." +#: js/blocks/SensorsBlocks.js:313 +msgid "The Click block triggers an event if a turtle has been clicked." msgstr "" -#: js/PitchBlocks.js:715 -#.TRANS: convert piano key number (1-88) to octave -msgid "number to octave" +#: js/blocks/SensorsBlocks.js:342 +msgid "cursor over" msgstr "" -#: js/PitchBlocks.js:717 -msgid "The Number to octave block will convert a pitch number to an octave." +#: js/blocks/SensorsBlocks.js:387 +msgid "cursor out" msgstr "" -#: js/PitchBlocks.js:726 -msgid "y to pitch" +#: js/blocks/SensorsBlocks.js:433 +msgid "cursor button down" msgstr "" -#: js/PitchBlocks.js:729 -msgid "Y to pitch block will convert a staff y position to corresponding pitch notation." +#: js/blocks/SensorsBlocks.js:477 +msgid "cursor button up" msgstr "" -#: js/PitchBlocks.js:841 -msgid "accidental selector" +#: js/blocks/SensorsBlocks.js:521 +#: js/blocks/PenBlocks.js:48 +#: plugins/rodi.rtp:219 +msgid "blue" msgstr "" -#: js/PitchBlocks.js:844 -msgid "The Accidental selector block is used to choose between double-sharp, sharp, natural, flat, and double-flat." +#: js/blocks/SensorsBlocks.js:577 +#: js/blocks/PenBlocks.js:64 +#: plugins/rodi.rtp:218 +msgid "green" msgstr "" -#: js/PitchBlocks.js:858 -msgid "Pitch can be specified in terms of ni dha pa ma ga re sa." +#: js/blocks/SensorsBlocks.js:633 +#: js/blocks/PenBlocks.js:112 +#: plugins/rodi.rtp:217 +msgid "red" msgstr "" -#: js/PitchBlocks.js:872 -msgid "Pitch can be specified in terms of C D E F G A B." +#: js/blocks/SensorsBlocks.js:638 +msgid "The Get red block returns the red component of the pixel under the mouse." msgstr "" -#: js/PitchBlocks.js:883 -msgid "solfege" +#: js/blocks/SensorsBlocks.js:644 +msgid "The Get red block returns the red component of the pixel under the turtle." msgstr "" -#: js/PitchBlocks.js:886 -msgid "Pitch can be specified in terms of do re mi fa sol la ti." +#: js/blocks/SensorsBlocks.js:685 +#: plugins/rodi.rtp:216 +msgid "pixel color" msgstr "" -#: js/PitchBlocks.js:920 -msgid "The Invert block rotates any contained notes around a target note." +#: js/blocks/SensorsBlocks.js:690 +msgid "The Get pixel block returns the color of the pixel under the mouse." msgstr "" -#: js/PitchBlocks.js:927 -#.TRANS: pitch inversion rotates a pitch around another pitch -msgid "invert" +#: js/blocks/SensorsBlocks.js:696 +msgid "The Get pixel block returns the color of the pixel under the turtle." msgstr "" -#: js/PitchBlocks.js:929 -#: js/PitchBlocks.js:935 -#: js/PitchActions.js:727 -#: js/musicutils.js:726 -#: js/musicutils.js:902 -#.TRANS: invert based on even or odd number or musical scale -#.TRANS: even numbers -msgid "even" +#: js/blocks/SensorsBlocks.js:758 +msgid "time" msgstr "" -#: js/PitchBlocks.js:935 -#: js/PitchActions.js:729 -#: js/musicutils.js:728 -#: js/musicutils.js:903 -#.TRANS: odd numbers -msgid "odd" +#: js/blocks/SensorsBlocks.js:804 +msgid "cursor y" msgstr "" -#: js/PitchBlocks.js:935 -#: js/PitchActions.js:731 -#: js/musicutils.js:729 -#: js/musicutils.js:904 -msgid "scalar" +#: js/blocks/SensorsBlocks.js:809 +msgid "The Cursor Y block returns the vertical position of the mouse." msgstr "" -#: js/PitchBlocks.js:966 -#.TRANS: pitch inversion rotates a pitch around another pitch (odd number) -msgid "invert (odd)" +#: js/blocks/SensorsBlocks.js:845 +msgid "cursor x" msgstr "" -#: js/PitchBlocks.js:999 -#.TRANS: pitch inversion rotates a pitch around another pitch (even number) -msgid "invert (even)" +#: js/blocks/SensorsBlocks.js:850 +msgid "The Cursor X block returns the horizontal position of the mouse." msgstr "" -#: js/PitchBlocks.js:1020 -#.TRANS: register is the octave of the current pitch -msgid "register" +#: js/blocks/SensorsBlocks.js:886 +msgid "mouse button" msgstr "" -#: js/PitchBlocks.js:1024 -msgid "The Register block provides an easy way to modify the register (octave) of the notes that follow it." +#: js/blocks/SensorsBlocks.js:888 +msgid "The Mouse-button block returns True if the mouse button is pressed." msgstr "" -#: js/PitchBlocks.js:1074 -msgid "The Semi-tone transposition block will shift the pitches contained inside Note blocks up (or down) by half steps." +#: js/blocks/SensorsBlocks.js:934 +msgid "to ASCII" msgstr "" -#: js/PitchBlocks.js:1076 -msgid "In the example shown above, sol is shifted up to sol#." +#: js/blocks/SensorsBlocks.js:938 +msgid "The To ASCII block converts numbers to letters." msgstr "" -#: js/PitchBlocks.js:1082 -#.TRANS: adjust the amount of shift (up or down) of a pitch -msgid "semi-tone transpose" +#: js/blocks/SensorsBlocks.js:1005 +msgid "The Keyboard block returns computer keyboard input." msgstr "" -#: js/PitchBlocks.js:1115 -msgid "The Transpose by Ratio block will shift the pitches contained inside Note blocks up (or down) by a ratio" +#: js/blocks/RhythmBlockPaletteBlocks.js:50 +#: js/blocks/RhythmBlockPaletteBlocks.js:233 +#.TRANS: rhythm block +#.TRANS: translate "rhythm1" as rhythm +msgid "rhythm1" msgstr "" -#: js/PitchBlocks.js:1121 -#.TRANS: adjust the amount of shift (up or down) of a pitch -msgid "transpose by ratio" +#: js/blocks/RhythmBlockPaletteBlocks.js:70 +#: js/blocks/RhythmBlockPaletteBlocks.js:252 +#: js/blocks/RhythmBlockPaletteBlocks.js:485 +#: js/blocks/RhythmBlockPaletteBlocks.js:554 +#: js/blocks/RhythmBlockPaletteBlocks.js:875 +msgid "number of notes" msgstr "" -#: js/PitchBlocks.js:1204 -#.TRANS: down sixth means the note is five scale degrees below current note -msgid "down sixth" +#: js/blocks/RhythmBlockPaletteBlocks.js:126 +msgid "polyphonic rhythm" msgstr "" -#: js/PitchBlocks.js:1223 -#.TRANS: down third means the note is two scale degrees below current note -msgid "down third" +#: js/blocks/RhythmBlockPaletteBlocks.js:219 +msgid "The Rhythm block is used to generate rhythm patterns." msgstr "" -#: js/PitchBlocks.js:1242 -#.TRANS: seventh means the note is the six scale degrees above current note -msgid "seventh" +#: js/blocks/RhythmBlockPaletteBlocks.js:280 +msgid "1/64 note" msgstr "" -#: js/PitchBlocks.js:1261 -#.TRANS: sixth means the note is the five scale degrees above current note -msgid "sixth" +#: js/blocks/RhythmBlockPaletteBlocks.js:304 +msgid "1/32 note" msgstr "" -#: js/PitchBlocks.js:1280 -#.TRANS: fifth means the note is the four scale degrees above current note -msgid "fifth" +#: js/blocks/RhythmBlockPaletteBlocks.js:332 +msgid "1/16 note" msgstr "" -#: js/PitchBlocks.js:1300 -#.TRANS: fourth means the note is three scale degrees above current note -msgid "fourth" +#: js/blocks/RhythmBlockPaletteBlocks.js:360 +msgid "eighth note" msgstr "" -#: js/PitchBlocks.js:1319 -#.TRANS: third means the note is two scale degrees above current note -msgid "third" +#: js/blocks/RhythmBlockPaletteBlocks.js:388 +msgid "quarter note" msgstr "" -#: js/PitchBlocks.js:1338 -#.TRANS: second means the note is one scale degree above current note -msgid "second" +#: js/blocks/RhythmBlockPaletteBlocks.js:416 +msgid "half note" msgstr "" -#: js/PitchBlocks.js:1379 -msgid "The Scalar transposition block will shift the pitches contained inside Note blocks up (or down) the scale." +#: js/blocks/RhythmBlockPaletteBlocks.js:444 +msgid "whole note" msgstr "" -#: js/PitchBlocks.js:1381 -msgid "In the example shown above, sol is shifted up to la." +#: js/blocks/RhythmBlockPaletteBlocks.js:482 +#: js/blocks/RhythmBlockPaletteBlocks.js:551 +#: js/blocks/RhythmBlockPaletteBlocks.js:602 +#.TRANS: A tuplet is a note value divided into irregular time values. +msgid "tuplet" msgstr "" -#: js/PitchBlocks.js:1388 -#.TRANS: adjust the amount of shift (up or down) of a pitch by musical scale (scalar) steps -msgid "scalar transpose" +#: js/blocks/RhythmBlockPaletteBlocks.js:768 +msgid "septuplet" msgstr "" -#: js/PitchBlocks.js:1423 -msgid "The Accidental block is used to create sharps and flats" +#: js/blocks/RhythmBlockPaletteBlocks.js:796 +msgid "quintuplet" msgstr "" -#: js/PitchBlocks.js:1430 -#.TRANS: An accidental is a modification to a pitch, e.g., sharp or flat. -msgid "accidental override" +#: js/blocks/RhythmBlockPaletteBlocks.js:824 +msgid "triplet" msgstr "" -#: js/PitchBlocks.js:1543 -msgid "The Hertz block (in combination with a Number block) will play a sound at the specified frequency." +#: js/blocks/RhythmBlockPaletteBlocks.js:851 +msgid "simple tuplet" msgstr "" -#: js/PitchBlocks.js:1633 -msgid "The Pitch Number block will play a pitch associated by its number, e.g. 0 for C and 7 for G." +#: js/blocks/RhythmBlockPaletteBlocks.js:861 +msgid "Tuplets are a collection of notes that get scaled to a specific duration." msgstr "" -#: js/PitchBlocks.js:1665 -#: js/PitchBlocks.js:1707 -#.TRANS: a numeric mapping of the notes in an octave based on the musical mode -#.TRANS: a numeric mapping of the notes in an octave based on the musical mode -msgid "nth modal pitch" +#: js/blocks/DrumBlocks.js:59 +msgid "The Noise name block is used to select a noise synthesizer." msgstr "" -#: js/PitchBlocks.js:1668 -msgid "n^th Modal Pitch takes the pattern of pitches in semitones for a mode and makes each point a degree of the mode," +#: js/blocks/DrumBlocks.js:102 +msgid "The Drum name block is used to select a drum." msgstr "" -#: js/PitchBlocks.js:1670 -msgid "starting from 1 and regardless of tonal framework (i.e. not always 8 notes in the octave)" +#: js/blocks/DrumBlocks.js:146 +msgid "The Effects name block is used to select a sound effect." msgstr "" -#: js/PitchBlocks.js:1711 -msgid "N^th Modal Pitch takes a number as an input as the n^th degree for the given mode. 0 is the first position, 1 is the second, -1 is the note before the first etc." +#: js/blocks/DrumBlocks.js:163 +msgid "noise" msgstr "" -#: js/PitchBlocks.js:1713 -msgid "The pitches change according to the mode specified without any need for respellings." +#: js/blocks/DrumBlocks.js:177 +msgid "The Play noise block will generate white, pink, or brown noise." msgstr "" -#: js/PitchBlocks.js:1752 -msgid "Scale Degree is a common convention in music. Scale Degree offers seven possible positions in the scale (1-7) and can be modified via accidentals." +#: js/blocks/DrumBlocks.js:317 +msgid "Replace every instance of a pitch with a drum sound." msgstr "" -#: js/PitchBlocks.js:1754 -msgid "Scale Degree 1 is always the first pitch in a given scale, regardless of octave." +#: js/blocks/DrumBlocks.js:328 +#.TRANS: map a pitch to a drum sound +msgid "map pitch to drum" msgstr "" -#: js/PitchBlocks.js:1776 -#.TRANS: step some number of notes in current musical scale -msgid "scalar step" +#: js/blocks/DrumBlocks.js:395 +msgid "In the example above, a kick drum sound will be played instead of sol." msgstr "" -#: js/PitchBlocks.js:1781 -msgid "The Scalar Step block (in combination with a Number block) will play the next pitch in a scale," +#: js/blocks/DrumBlocks.js:407 +#.TRANS: set the current drum sound for playback +msgid "set drum" msgstr "" -#: js/PitchBlocks.js:1783 -msgid "eg if the last note played was sol, Scalar Step 1 will play la." +#: js/blocks/DrumBlocks.js:451 +msgid "sound effect" msgstr "" -#: js/PitchBlocks.js:1818 -msgid "The Pitch block specifies the pitch name and octave of a note that together determine the frequency of the note." +#: js/blocks/DrumBlocks.js:489 +msgid "You can use multiple Drum blocks within a Note block." msgstr "" -#: js/GraphicsBlocks.js:46 -#: js/DictActions.js:77 -#: js/DictActions.js:155 -#: js/DictActions.js:189 +#: js/blocks/GraphicsBlocks.js:46 +#: js/turtleactions/DictActions.js:77 +#: js/turtleactions/DictActions.js:144 +#: js/turtleactions/DictActions.js:173 msgid "heading" msgstr "শিরোনাম" -#: js/GraphicsBlocks.js:56 +#: js/blocks/GraphicsBlocks.js:56 msgid "The Heading block returns the orientation of the mouse." msgstr "" -#: js/GraphicsBlocks.js:62 +#: js/blocks/GraphicsBlocks.js:62 msgid "The Heading block returns the orientation of the turtle." msgstr "" -#: js/GraphicsBlocks.js:133 +#: js/blocks/GraphicsBlocks.js:133 msgid "The Y block returns the vertical position of the mouse." msgstr "" -#: js/GraphicsBlocks.js:140 +#: js/blocks/GraphicsBlocks.js:140 msgid "The Y block returns the vertical position of the turtle." msgstr "" -#: js/GraphicsBlocks.js:149 +#: js/blocks/GraphicsBlocks.js:149 msgid "y3" msgstr "" -#: js/GraphicsBlocks.js:219 +#: js/blocks/GraphicsBlocks.js:219 msgid "The X block returns the horizontal position of the mouse." msgstr "" -#: js/GraphicsBlocks.js:226 +#: js/blocks/GraphicsBlocks.js:226 msgid "The X block returns the horizontal position of the turtle." msgstr "" -#: js/GraphicsBlocks.js:235 +#: js/blocks/GraphicsBlocks.js:235 msgid "x3" msgstr "" -#: js/GraphicsBlocks.js:295 +#: js/blocks/GraphicsBlocks.js:295 msgid "scroll xy" msgstr "" -#: js/GraphicsBlocks.js:303 +#: js/blocks/GraphicsBlocks.js:303 msgid "The Scroll XY block moves the canvas." msgstr "" -#: js/GraphicsBlocks.js:313 +#: js/blocks/GraphicsBlocks.js:313 msgid "x2" msgstr "" -#: js/GraphicsBlocks.js:313 +#: js/blocks/GraphicsBlocks.js:313 msgid "y2" msgstr "" -#: js/GraphicsBlocks.js:373 -#: js/temperament.js:213 -#: js/temperament.js:241 +#: js/blocks/GraphicsBlocks.js:373 +#: js/widgets/temperament.js:319 +#: js/widgets/temperament.js:347 msgid "clear" msgstr "" -#: js/GraphicsBlocks.js:426 +#: js/blocks/GraphicsBlocks.js:426 msgid "The Control-point 2 block sets the second control point for the Bezier curve." msgstr "" -#: js/GraphicsBlocks.js:433 +#: js/blocks/GraphicsBlocks.js:433 msgid "control point 2" msgstr "" -#: js/GraphicsBlocks.js:436 -#: js/GraphicsBlocks.js:487 -#: js/GraphicsBlocks.js:534 -#: js/GraphicsBlocks.js:750 +#: js/blocks/GraphicsBlocks.js:436 +#: js/blocks/GraphicsBlocks.js:487 +#: js/blocks/GraphicsBlocks.js:534 +#: js/blocks/GraphicsBlocks.js:750 msgid "x1" msgstr "" -#: js/GraphicsBlocks.js:436 -#: js/GraphicsBlocks.js:487 -#: js/GraphicsBlocks.js:534 -#: js/GraphicsBlocks.js:750 +#: js/blocks/GraphicsBlocks.js:436 +#: js/blocks/GraphicsBlocks.js:487 +#: js/blocks/GraphicsBlocks.js:534 +#: js/blocks/GraphicsBlocks.js:750 msgid "y1" msgstr "" -#: js/GraphicsBlocks.js:477 +#: js/blocks/GraphicsBlocks.js:477 msgid "The Control-point 1 block sets the first control point for the Bezier curve." msgstr "" -#: js/GraphicsBlocks.js:484 +#: js/blocks/GraphicsBlocks.js:484 msgid "control point 1" msgstr "" -#: js/GraphicsBlocks.js:527 +#: js/blocks/GraphicsBlocks.js:527 msgid "The Bezier block draws a Bezier curve." msgstr "" -#: js/GraphicsBlocks.js:531 +#: js/blocks/GraphicsBlocks.js:531 msgid "bezier" msgstr "" -#: js/GraphicsBlocks.js:592 +#: js/blocks/GraphicsBlocks.js:592 msgid "The Arc block moves the turtle in an arc." msgstr "" -#: js/GraphicsBlocks.js:600 +#: js/blocks/GraphicsBlocks.js:600 msgid "arc" msgstr "চাপ" -#: js/GraphicsBlocks.js:603 +#: js/blocks/GraphicsBlocks.js:603 msgid "angle" msgstr "কোণ" -#: js/GraphicsBlocks.js:603 +#: js/blocks/GraphicsBlocks.js:603 msgid "radius" msgstr "ব্যাসার্ধ" -#: js/GraphicsBlocks.js:620 -#: js/GraphicsBlocks.js:767 -#: js/GraphicsBlocks.js:1010 -#: js/GraphicsBlocks.js:1093 +#: js/blocks/GraphicsBlocks.js:620 +#: js/blocks/GraphicsBlocks.js:767 +#: js/blocks/GraphicsBlocks.js:1010 +#: js/blocks/GraphicsBlocks.js:1093 msgid "Value must be within -5000 to 5000 when Wrap Mode is off." msgstr "" -#: js/GraphicsBlocks.js:622 -#: js/GraphicsBlocks.js:769 -#: js/GraphicsBlocks.js:1012 -#: js/GraphicsBlocks.js:1095 +#: js/blocks/GraphicsBlocks.js:622 +#: js/blocks/GraphicsBlocks.js:769 +#: js/blocks/GraphicsBlocks.js:1012 +#: js/blocks/GraphicsBlocks.js:1095 msgid "Value must be within -20000 to 20000 when Wrap Mode is on." msgstr "" -#: js/GraphicsBlocks.js:660 +#: js/blocks/GraphicsBlocks.js:660 msgid "set heading" msgstr "শিরনাম নির্ধারণ" -#: js/GraphicsBlocks.js:673 +#: js/blocks/GraphicsBlocks.js:673 msgid "The Set heading block sets the heading of the turtle." msgstr "" -#: js/GraphicsBlocks.js:733 +#: js/blocks/GraphicsBlocks.js:733 msgid "The Set XY block moves the mouse to a specific position on the screen." msgstr "" -#: js/GraphicsBlocks.js:739 +#: js/blocks/GraphicsBlocks.js:739 msgid "The Set XY block moves the turtle to a specific position on the screen." msgstr "" -#: js/GraphicsBlocks.js:747 +#: js/blocks/GraphicsBlocks.js:747 msgid "set xy" msgstr "xy নির্ধারণ করো" -#: js/GraphicsBlocks.js:819 +#: js/blocks/GraphicsBlocks.js:819 msgid "The Right block turns the mouse to the right." msgstr "" -#: js/GraphicsBlocks.js:826 +#: js/blocks/GraphicsBlocks.js:826 msgid "The Right block turns the turtle to the right." msgstr "" -#: js/GraphicsBlocks.js:835 +#: js/blocks/GraphicsBlocks.js:835 msgid "right1" msgstr "" -#: js/GraphicsBlocks.js:835 +#: js/blocks/GraphicsBlocks.js:835 #: plugins/rodi.rtp:77 #: plugins/rodi.rtp:340 #: plugins/rodi.rtp:375 msgid "right" msgstr "ডানে যাও" -#: js/GraphicsBlocks.js:899 +#: js/blocks/GraphicsBlocks.js:899 msgid "The Left block turns the mouse to the left." msgstr "" -#: js/GraphicsBlocks.js:906 +#: js/blocks/GraphicsBlocks.js:906 msgid "The Left block turns the turtle to the left." msgstr "" -#: js/GraphicsBlocks.js:915 +#: js/blocks/GraphicsBlocks.js:915 msgid "left1" msgstr "" -#: js/GraphicsBlocks.js:915 +#: js/blocks/GraphicsBlocks.js:915 #: plugins/rodi.rtp:79 #: plugins/rodi.rtp:339 #: plugins/rodi.rtp:362 msgid "left" msgstr "বামে যাও" -#: js/GraphicsBlocks.js:967 -#: js/temperament.js:734 -#: js/temperament.js:933 +#: js/blocks/GraphicsBlocks.js:967 +#: js/widgets/temperament.js:875 +#: js/widgets/temperament.js:1078 #: plugins/rodi.rtp:69 #: plugins/rodi.rtp:387 msgid "back" msgstr "পেছনে" -#: js/GraphicsBlocks.js:976 +#: js/blocks/GraphicsBlocks.js:976 msgid "The Back block moves the mouse backward." msgstr "" -#: js/GraphicsBlocks.js:983 +#: js/blocks/GraphicsBlocks.js:983 msgid "The Back block moves the turtle backward." msgstr "" -#: js/GraphicsBlocks.js:1050 +#: js/blocks/GraphicsBlocks.js:1050 #: plugins/rodi.rtp:71 #: plugins/rodi.rtp:400 msgid "forward" msgstr "সামনে যাও" -#: js/GraphicsBlocks.js:1059 +#: js/blocks/GraphicsBlocks.js:1059 msgid "The Forward block moves the mouse forward." msgstr "" -#: js/GraphicsBlocks.js:1066 +#: js/blocks/GraphicsBlocks.js:1066 msgid "The Forward block moves the turtle forward." msgstr "" -#: js/GraphicsBlocks.js:1154 -#: js/GraphicsBlocks.js:1172 +#: js/blocks/GraphicsBlocks.js:1154 +#: js/blocks/GraphicsBlocks.js:1172 msgid "wrap" msgstr "" -#: js/OrnamentBlocks.js:32 -msgid "staccato factor" -msgstr "" - -#: js/OrnamentBlocks.js:108 -msgid "slur factor" -msgstr "" - -#: js/OrnamentBlocks.js:217 -#: js/OrnamentBlocks.js:309 -#.TRANS: the neighbor refers to a neighboring note, e.g., D is a neighbor of C -msgid "neighbor" -msgstr "" - -#: js/OrnamentBlocks.js:293 -msgid "The Neighbor block rapidly switches between neighboring pitches." -msgstr "" - -#: js/OrnamentBlocks.js:364 -msgid "glide" -msgstr "" - -#: js/OrnamentBlocks.js:479 -#: js/OrnamentBlocks.js:643 -msgid "slur" -msgstr "" - -#: js/OrnamentBlocks.js:558 -#: js/OrnamentBlocks.js:710 -#.TRANS: play each note sharply detached from the others -msgid "staccato" -msgstr "" - -#: js/PenBlocks.js:24 +#: js/blocks/PenBlocks.js:30 msgid "purple" msgstr "" -#: js/PenBlocks.js:37 -#: js/SensorsBlocks.js:521 -#: plugins/rodi.rtp:219 -msgid "blue" -msgstr "" - -#: js/PenBlocks.js:50 -#: js/SensorsBlocks.js:577 -#: plugins/rodi.rtp:218 -msgid "green" -msgstr "" - -#: js/PenBlocks.js:63 +#: js/blocks/PenBlocks.js:80 msgid "yellow" msgstr "" -#: js/PenBlocks.js:76 +#: js/blocks/PenBlocks.js:96 #: plugins/nutrition.rtp:164 msgid "orange" msgstr "" -#: js/PenBlocks.js:89 -#: js/SensorsBlocks.js:633 -#: plugins/rodi.rtp:217 -msgid "red" -msgstr "" - -#: js/PenBlocks.js:102 +#: js/blocks/PenBlocks.js:128 msgid "white" msgstr "" -#: js/PenBlocks.js:115 +#: js/blocks/PenBlocks.js:144 msgid "black" msgstr "" -#: js/PenBlocks.js:128 +#: js/blocks/PenBlocks.js:163 msgid "begin fill" msgstr "" -#: js/PenBlocks.js:143 +#: js/blocks/PenBlocks.js:190 msgid "end fill" msgstr "" -#: js/PenBlocks.js:159 -#: js/PenBlocks.js:386 +#: js/blocks/PenBlocks.js:212 +#: js/blocks/PenBlocks.js:560 #.TRANS: set the background color msgid "background" msgstr "" -#: js/PenBlocks.js:206 -#: js/DictActions.js:71 -#: js/DictActions.js:149 -#: js/DictActions.js:186 +#: js/blocks/PenBlocks.js:274 +#: js/turtleactions/DictActions.js:71 +#: js/turtleactions/DictActions.js:138 +#: js/turtleactions/DictActions.js:170 msgid "grey" msgstr "" -#: js/PenBlocks.js:210 +#: js/blocks/PenBlocks.js:282 msgid "The Grey block returns the current pen grey value." msgstr "" -#: js/PenBlocks.js:243 -#: js/DictActions.js:69 -#: js/DictActions.js:147 -#: js/DictActions.js:185 +#: js/blocks/PenBlocks.js:340 +#: js/turtleactions/DictActions.js:69 +#: js/turtleactions/DictActions.js:136 +#: js/turtleactions/DictActions.js:169 msgid "shade" msgstr "ছায়া" -#: js/PenBlocks.js:247 +#: js/blocks/PenBlocks.js:347 msgid "The Shade block returns the current pen shade value." msgstr "" -#: js/PenBlocks.js:280 -#: js/DictActions.js:67 -#: js/DictActions.js:145 -#: js/DictActions.js:184 +#: js/blocks/PenBlocks.js:405 +#: js/turtleactions/DictActions.js:67 +#: js/turtleactions/DictActions.js:134 +#: js/turtleactions/DictActions.js:168 msgid "color" msgstr "রং" -#: js/PenBlocks.js:285 +#: js/blocks/PenBlocks.js:415 msgid "The Color block returns the current pen color." msgstr "" -#: js/PenBlocks.js:318 -#: js/DictActions.js:73 -#: js/DictActions.js:151 -#: js/DictActions.js:187 +#: js/blocks/PenBlocks.js:470 +#: js/turtleactions/DictActions.js:73 +#: js/turtleactions/DictActions.js:140 +#: js/turtleactions/DictActions.js:171 msgid "pen size" msgstr "কলমের আকার" -#: js/PenBlocks.js:322 +#: js/blocks/PenBlocks.js:474 msgid "The Pen size block returns the current pen size value." msgstr "" -#: js/PenBlocks.js:355 +#: js/blocks/PenBlocks.js:513 msgid "set font" msgstr "" -#: js/PenBlocks.js:358 +#: js/blocks/PenBlocks.js:518 msgid "The Set font block sets the font used by the Show block." msgstr "" -#: js/PenBlocks.js:391 +#: js/blocks/PenBlocks.js:567 msgid "The Background block sets the window background color." msgstr "" -#: js/PenBlocks.js:408 +#: js/blocks/PenBlocks.js:598 msgid "The Hollow line block creates a line with a hollow center." msgstr "" -#: js/PenBlocks.js:415 +#: js/blocks/PenBlocks.js:606 #.TRANS: draw a line logo has a hollow space down its center msgid "hollow line" msgstr "" -#: js/PenBlocks.js:462 +#: js/blocks/PenBlocks.js:675 msgid "The Fill block fills in a shape with a color." msgstr "" -#: js/PenBlocks.js:470 +#: js/blocks/PenBlocks.js:684 #.TRANS: fill in as a solid color msgid "fill" msgstr "" -#: js/PenBlocks.js:527 +#: js/blocks/PenBlocks.js:761 #.TRANS: raise up the pen so logo it does not draw when it is moved msgid "pen up" msgstr "কলম ওঠাও" -#: js/PenBlocks.js:532 +#: js/blocks/PenBlocks.js:768 msgid "The Pen-up block raises the pen so that it does not draw." msgstr "" -#: js/PenBlocks.js:552 +#: js/blocks/PenBlocks.js:802 #.TRANS: put down the pen so logo it draws when it is moved msgid "pen down" msgstr "কলম নামাও" -#: js/PenBlocks.js:557 +#: js/blocks/PenBlocks.js:810 msgid "The Pen-down block lowers the pen so that it draws." msgstr "" -#: js/PenBlocks.js:577 +#: js/blocks/PenBlocks.js:844 #.TRANS: set the width of the line drawn by the pen msgid "set pen size" msgstr "কলমের আকার নির্ধারণ করো" -#: js/PenBlocks.js:583 +#: js/blocks/PenBlocks.js:854 msgid "The Set-pen-size block changes the size of the pen." msgstr "" -#: js/PenBlocks.js:623 +#: js/blocks/PenBlocks.js:913 #.TRANS: set degree of translucence of the pen color msgid "set translucency" msgstr "" -#: js/PenBlocks.js:627 +#: js/blocks/PenBlocks.js:921 msgid "The Set translucency block changes the opacity of the pen." msgstr "" -#: js/PenBlocks.js:668 +#: js/blocks/PenBlocks.js:981 msgid "set hue" msgstr "" -#: js/PenBlocks.js:672 +#: js/blocks/PenBlocks.js:989 msgid "The Set hue block changes the color of the pen." msgstr "" -#: js/PenBlocks.js:711 +#: js/blocks/PenBlocks.js:1047 msgid "set shade" msgstr "ছায়া নির্ধারণ করো" -#: js/PenBlocks.js:717 +#: js/blocks/PenBlocks.js:1057 msgid "The Set-shade block changes the pen color from dark to light." msgstr "" -#: js/PenBlocks.js:757 +#: js/blocks/PenBlocks.js:1111 #.TRANS: set the level of vividness of the pen color msgid "set grey" msgstr "" -#: js/PenBlocks.js:761 +#: js/blocks/PenBlocks.js:1119 msgid "The Set grey block changes the vividness of the pen color." msgstr "" -#: js/PenBlocks.js:800 +#: js/blocks/PenBlocks.js:1172 msgid "set color" msgstr "রং নির্ধারণ করো" -#: js/PenBlocks.js:806 +#: js/blocks/PenBlocks.js:1182 msgid "The Set-color block changes the pen color." msgstr "" -#: js/VolumeBlocks.js:35 -msgid "synth volume" -msgstr "" - -#: js/VolumeBlocks.js:39 -msgid "The Synth volume block returns the current volume of the current synthesizer." -msgstr "" - -#: js/VolumeBlocks.js:47 -#: js/musicutils.js:730 -#: js/synthutils.js:56 -#.TRANS: musical instrument -msgid "piano" -msgstr "" - -#: js/VolumeBlocks.js:105 -msgid "master volume" -msgstr "" - -#: js/VolumeBlocks.js:109 -msgid "The Master volume block returns the master volume." -msgstr "" - -#: js/VolumeBlocks.js:355 -#: js/VolumeBlocks.js:524 -msgid "set synth volume" -msgstr "" - -#: js/VolumeBlocks.js:362 -#: js/VolumeBlocks.js:545 -msgid "synth" -msgstr "" - -#: js/VolumeBlocks.js:403 -#: js/VolumeBlocks.js:577 -#: js/VolumeBlocks.js:740 -#: js/VolumeActions.js:173 -msgid "Setting volume to 0." -msgstr "" - -#: js/VolumeBlocks.js:440 -msgid "Synth not found" -msgstr "" - -#: js/VolumeBlocks.js:494 -msgid "set drum volume" -msgstr "" - -#: js/VolumeBlocks.js:530 -msgid "The Set synth volume block will change the volume of a particular synth," -msgstr "" - -#: js/VolumeBlocks.js:532 -msgid "eg guitar violin snare drum etc." -msgstr "" - -#: js/VolumeBlocks.js:534 -msgid "The default volume is 50." -msgstr "" - -#: js/VolumeBlocks.js:536 -msgid "The range is 0 for silence to 100 for full volume." -msgstr "" - -#: js/VolumeBlocks.js:597 -msgid "set panning" -msgstr "" - -#: js/VolumeBlocks.js:603 -msgid "The Set Panning block sets the panning for all synthesizers." -msgstr "" - -#: js/VolumeBlocks.js:625 -msgid "Warning: Sound is coming out from only the left or right side." -msgstr "" - -#: js/VolumeBlocks.js:647 -#: js/VolumeBlocks.js:695 -msgid "set master volume" -msgstr "" - -#: js/VolumeBlocks.js:653 -msgid "The Set master volume block sets the volume for all synthesizers." -msgstr "" - -#: js/VolumeBlocks.js:784 -msgid "The Set relative volume block changes the volume of the contained notes." -msgstr "" - -#: js/VolumeBlocks.js:791 -msgid "set relative volume" -msgstr "" - -#: js/VolumeBlocks.js:857 -msgid "decrescendo" -msgstr "" - -#: js/VolumeBlocks.js:921 -msgid "crescendo" -msgstr "" - -#: js/ToneBlocks.js:34 -msgid "oscillator" -msgstr "" - -#: js/ToneBlocks.js:44 -#: js/timbre.js:1562 -#.TRANS: Partials refers to the number of sine waves combined into the sound. -msgid "partials" -msgstr "" - -#: js/ToneBlocks.js:76 -msgid "You are adding multiple oscillator blocks." -msgstr "" - -#: js/ToneBlocks.js:144 -#: js/timbre.js:1225 -#.TRANS: a duo synthesizer combines a synth with a sequencer -msgid "duo synth" -msgstr "" - -#: js/ToneBlocks.js:149 -msgid "The Duo synth block is a duo-frequency modulator used to define a timbre." -msgstr "" - -#: js/ToneBlocks.js:157 -#: js/timbre.js:1476 -msgid "vibrato rate" -msgstr "" - -#: js/ToneBlocks.js:157 -msgid "vibrato intensity" -msgstr "" - -#: js/ToneBlocks.js:185 -#: js/timbre.js:1221 -#.TRANS: AM (amplitude modulation) synthesizer -msgid "AM synth" -msgstr "" - -#: js/ToneBlocks.js:189 -msgid "The AM synth block is an amplitude modulator used to define a timbre." -msgstr "" - -#: js/ToneBlocks.js:224 -#: js/timbre.js:1223 -#.TRANS: FM (frequency modulation) synthesizer -msgid "FM synth" -msgstr "" - -#: js/ToneBlocks.js:228 -msgid "The FM synth block is a frequency modulator used to define a timbre." +#: js/blocks/PitchBlocks.js:141 +#.TRANS: musical transposition (adjustment of pitch up or down) +msgid "transposition" msgstr "" -#: js/ToneBlocks.js:262 -msgid "partial" +#: js/blocks/PitchBlocks.js:168 +#.TRANS: step down one note in current musical scale +msgid "scalar step down" msgstr "" -#: js/ToneBlocks.js:265 -msgid "The Partial block is used to specify a weight for a specific partial harmonic." +#: js/blocks/PitchBlocks.js:172 +msgid "The Scalar step down block returns the number of semi-tones down to the previous note in the current key and mode." msgstr "" -#: js/ToneBlocks.js:284 -#.TRANS: partials are weighted components in a harmonic series -msgid "Partial weight must be between 0 and 1." +#: js/blocks/PitchBlocks.js:190 +#.TRANS: step up one note in current musical scale +msgid "scalar step up" msgstr "" -#: js/ToneBlocks.js:297 -#.TRANS: partials are weighted components in a harmonic series -msgid "Partial block should be used inside of a Weighted-partials block." +#: js/blocks/PitchBlocks.js:194 +msgid "The Scalar step up block returns the number of semi-tones up to the next note in the current key and mode." msgstr "" -#: js/ToneBlocks.js:325 -#.TRANS: partials are weighted components in a harmonic series -msgid "weighted partials" +#: js/blocks/PitchBlocks.js:212 +#.TRANS: the change measured in half-steps between the current pitch and the previous pitch +msgid "change in pitch" msgstr "" -#: js/ToneBlocks.js:383 -msgid "The Harmonic block will add harmonics to the contained notes." +#: js/blocks/PitchBlocks.js:216 +msgid "The Change in pitch block is the difference (in half steps) between the current pitch being played and the previous pitch played." msgstr "" -#: js/ToneBlocks.js:390 -#.TRANS: A harmonic is an overtone. -msgid "harmonic" +#: js/blocks/PitchBlocks.js:243 +#.TRANS: the change measured in scale-steps between the current pitch and the previous pitch +msgid "scalar change in pitch" msgstr "" -#: js/ToneBlocks.js:431 -msgid "The Distortion block adds distortion to the pitch." +#: js/blocks/PitchBlocks.js:250 +#: js/blocks/PitchBlocks.js:432 +#: js/blocks/PitchBlocks.js:1667 +#: js/turtleactions/DictActions.js:89 +#: js/widgets/temperament.js:610 +#: js/widgets/temperament.js:614 +#: js/widgets/temperament.js:855 +#.TRANS: convert current note to piano key (1-88) +#.TRANS: a mapping of pitch to the 88 piano keys +msgid "pitch number" msgstr "" -#: js/ToneBlocks.js:438 -#: js/timbre.js:2100 -#.TRANS: distortion is an alteration in the sound -msgid "distortion" +#: js/blocks/PitchBlocks.js:256 +msgid "The Pitch number block is the value of the pitch of the note currently being played." msgstr "" -#: js/ToneBlocks.js:487 -msgid "The Tremolo block adds a wavering effect." +#: js/blocks/PitchBlocks.js:329 +#: js/blocks/PitchBlocks.js:433 +#.TRANS: the current pitch expressed in Hertz +msgid "pitch in hertz" msgstr "" -#: js/ToneBlocks.js:495 -#: js/timbre.js:2092 -#.TRANS: a wavering effect in a musical tone -msgid "tremolo" +#: js/blocks/PitchBlocks.js:334 +msgid "The Pitch in Hertz block is the value in Hertz of the pitch of the note currently being played." msgstr "" -#: js/ToneBlocks.js:500 -#: js/ToneBlocks.js:569 -#: js/ToneBlocks.js:630 -#: js/ToneBlocks.js:689 -#: js/timbre.js:2134 -#: js/timbre.js:2222 -#: js/timbre.js:2317 -#: js/timbre.js:2419 -#.TRANS: rate at which tremolo wavers -msgid "rate" +#: js/blocks/PitchBlocks.js:367 +#: js/turtleactions/DictActions.js:87 +msgid "current pitch" msgstr "" -#: js/ToneBlocks.js:502 -#: js/ToneBlocks.js:630 -#: js/timbre.js:2137 -#: js/timbre.js:2328 -#.TRANS: amplitude of tremolo waver -msgid "depth" +#: js/blocks/PitchBlocks.js:373 +msgid "The Current Pitch block is used with the Pitch Converter block. In the example above, current pitch, sol 4, is displayed as 392 hertz." msgstr "" -#: js/ToneBlocks.js:559 -msgid "The Phaser block adds a sweeping sound." +#: js/blocks/PitchBlocks.js:410 +msgid "This block converts the pitch value of the last note played into different formats such as hertz, letter name, pitch number, et al." msgstr "" -#: js/ToneBlocks.js:566 -#: js/timbre.js:2098 -#.TRANS: alter the phase of the sound -msgid "phaser" +#: js/blocks/PitchBlocks.js:434 +msgid "alphabet" msgstr "" -#: js/ToneBlocks.js:569 -#: js/timbre.js:2422 -msgid "octaves" +#: js/blocks/PitchBlocks.js:436 +#.TRANS: Translate as "alphabet class" +msgid "letter class" msgstr "" -#: js/ToneBlocks.js:569 -#: js/timbre.js:2425 -msgid "base frequency" +#: js/blocks/PitchBlocks.js:437 +msgid "solfege class" msgstr "" -#: js/ToneBlocks.js:619 -msgid "The Chorus block adds a chorus effect." +#: js/blocks/PitchBlocks.js:438 +msgid "staff y" msgstr "" -#: js/ToneBlocks.js:627 -#: js/timbre.js:2096 -#.TRANS: musical effect to simulate a choral sound -msgid "chorus" +#: js/blocks/PitchBlocks.js:439 +msgid "solfege syllable" msgstr "" -#: js/ToneBlocks.js:630 -msgid "delay" +#: js/blocks/PitchBlocks.js:440 +msgid "pitch class" msgstr "" -#: js/ToneBlocks.js:678 -msgid "The Vibrato block adds a rapid, slight variation in pitch." +#: js/blocks/PitchBlocks.js:441 +msgid "scalar class" msgstr "" -#: js/ToneBlocks.js:686 -#: js/timbre.js:2094 -#.TRANS: a rapid, slight variation in pitch -msgid "vibrato" +#: js/blocks/PitchBlocks.js:443 +msgid "nth degree" msgstr "" -#: js/ToneBlocks.js:689 -#: js/timbre.js:2221 -msgid "intensity" +#: js/blocks/PitchBlocks.js:444 +msgid "pitch to shade" msgstr "" -#: js/ToneBlocks.js:733 -#.TRANS: select synthesizer -msgid "set synth" +#: js/blocks/PitchBlocks.js:445 +msgid "pitch to color" msgstr "" -#: js/ToneBlocks.js:804 -msgid "synth name" +#: js/blocks/PitchBlocks.js:629 +#: js/widgets/musickeyboard.js:735 +#.TRANS: MIDI is a technical standard for electronic music +msgid "MIDI" msgstr "" -#: js/ToneBlocks.js:842 -msgid "set default instrument" +#: js/blocks/PitchBlocks.js:642 +#.TRANS: set an offset associated with the numeric piano keyboard mapping +msgid "set pitch number offset" msgstr "" -#: js/ToneBlocks.js:895 -#: js/ToneBlocks.js:943 -#.TRANS: set the characteristics of a custom instrument -msgid "set instrument" +#: js/blocks/PitchBlocks.js:645 +msgid "The Set pitch number offset block is used to set the offset for mapping pitch numbers to pitch and octave." msgstr "" -#: js/ToneBlocks.js:898 -#: js/ToneBlocks.js:926 -#: js/ToneBlocks.js:932 -msgid "The Set instrument block selects a voice for the synthesizer," +#: js/blocks/PitchBlocks.js:679 +#.TRANS: convert piano key number (1-88) to pitch +msgid "number to pitch" msgstr "" -#: js/ToneBlocks.js:900 -#: js/ToneBlocks.js:934 -msgid "eg guitar piano violin or cello." +#: js/blocks/PitchBlocks.js:682 +msgid "The Number to pitch block will convert a pitch number to a pich name." msgstr "" -#: js/ToneBlocks.js:1015 -msgid "Import a sound file to use as an instrument and set its pitch center." +#: js/blocks/PitchBlocks.js:715 +#.TRANS: convert piano key number (1-88) to octave +msgid "number to octave" msgstr "" -#: js/ToneBlocks.js:1110 -msgid "Upload a sound file to connect with the sample block." +#: js/blocks/PitchBlocks.js:717 +msgid "The Number to octave block will convert a pitch number to an octave." msgstr "" -#: js/MeterBlocks.js:34 -#.TRANS: musical meter (time signature), e.g., 4:4 -msgid "current meter" +#: js/blocks/PitchBlocks.js:726 +msgid "y to pitch" msgstr "" -#: js/MeterBlocks.js:85 -#.TRANS: number of beats per minute -msgid "beat factor" +#: js/blocks/PitchBlocks.js:729 +msgid "Y to pitch block will convert a staff y position to corresponding pitch notation." msgstr "" -#: js/MeterBlocks.js:161 -msgid "The Beats per minute block returns the current beats per minute." +#: js/blocks/PitchBlocks.js:841 +msgid "accidental selector" msgstr "" -#: js/MeterBlocks.js:169 -#: js/status.js:152 -#.TRANS: number of beats played per minute -msgid "beats per minute2" +#: js/blocks/PitchBlocks.js:844 +msgid "The Accidental selector block is used to choose between double-sharp, sharp, natural, flat, and double-flat." msgstr "" -#: js/MeterBlocks.js:169 -#: js/MeterBlocks.js:1056 -#: js/MeterBlocks.js:1133 -#: js/MeterBlocks.js:1211 -#.TRANS: sets tempo by defining a beat and beats per minute -msgid "beats per minute" +#: js/blocks/PitchBlocks.js:858 +msgid "Pitch can be specified in terms of ni dha pa ma ga re sa." msgstr "" -#: js/MeterBlocks.js:233 -#.TRANS: count of current musical measure in meter -msgid "measure count" +#: js/blocks/PitchBlocks.js:872 +msgid "Pitch can be specified in terms of C D E F G A B." msgstr "" -#: js/MeterBlocks.js:241 -msgid "The Measure count block returns the current measure." +#: js/blocks/PitchBlocks.js:884 +msgid "solfege" msgstr "" -#: js/MeterBlocks.js:290 -#.TRANS: count of current beat in the meter -msgid "beat count" +#: js/blocks/PitchBlocks.js:887 +msgid "Pitch can be specified in terms of do re mi fa sol la ti." msgstr "" -#: js/MeterBlocks.js:300 -#: js/MeterBlocks.js:311 -#: js/MeterBlocks.js:565 -#: js/MeterBlocks.js:576 -msgid "The Beat count block is the number of the current beat," +#: js/blocks/PitchBlocks.js:922 +msgid "The Invert block rotates any contained notes around a target note." msgstr "" -#: js/MeterBlocks.js:313 -#: js/MeterBlocks.js:578 -msgid "eg 1, 2, 3, or 4." +#: js/blocks/PitchBlocks.js:929 +#.TRANS: pitch inversion rotates a pitch around another pitch +msgid "invert" msgstr "" -#: js/MeterBlocks.js:368 -#.TRANS: count the number of notes -msgid "sum note values" +#: js/blocks/PitchBlocks.js:968 +#.TRANS: pitch inversion rotates a pitch around another pitch (odd number) +msgid "invert (odd)" msgstr "" -#: js/MeterBlocks.js:376 -#: js/MeterBlocks.js:440 -msgid "The Note counter block can be used to count the number of contained notes." +#: js/blocks/PitchBlocks.js:1001 +#.TRANS: pitch inversion rotates a pitch around another pitch (even number) +msgid "invert (even)" msgstr "" -#: js/MeterBlocks.js:432 -#.TRANS: count the number of notes -msgid "note counter" +#: js/blocks/PitchBlocks.js:1022 +#.TRANS: register is the octave of the current pitch +msgid "register" msgstr "" -#: js/MeterBlocks.js:496 -#.TRANS: number of whole notes that have been played -msgid "whole notes played" +#: js/blocks/PitchBlocks.js:1026 +msgid "The Register block provides an easy way to modify the register (octave) of the notes that follow it." msgstr "" -#: js/MeterBlocks.js:505 -msgid "The Whole notes played block returns the total number of whole notes played." +#: js/blocks/PitchBlocks.js:1047 +#.TRANS: cents are units used to specify the ratio between pitches. There are 100 cents between successive notes. +msgid "50 cents" msgstr "" -#: js/MeterBlocks.js:555 -#: js/DictActions.js:83 -#.TRANS: number of notes that have been played -msgid "notes played" +#: js/blocks/PitchBlocks.js:1102 +msgid "The Semi-tone transposition block will shift the pitches contained inside Note blocks up (or down) by half steps." msgstr "" -#: js/MeterBlocks.js:653 -msgid "The No clock block decouples the notes from the master clock." +#: js/blocks/PitchBlocks.js:1104 +msgid "In the example shown above, sol is shifted up to sol#." msgstr "" -#: js/MeterBlocks.js:661 -#.TRANS: don't lock notes to master clock -msgid "no clock" +#: js/blocks/PitchBlocks.js:1110 +#.TRANS: adjust the amount of shift (up or down) of a pitch +msgid "semi-tone transpose" msgstr "" -#: js/MeterBlocks.js:700 -msgid "on weak beat do" +#: js/blocks/PitchBlocks.js:1143 +msgid "The Transpose by Ratio block will shift the pitches contained inside Note blocks up (or down) by a ratio" msgstr "" -#: js/MeterBlocks.js:705 -msgid "The On-weak-beat block lets you specify actions to take on weak (off) beats." +#: js/blocks/PitchBlocks.js:1149 +#.TRANS: adjust the amount of shift (up or down) of a pitch +msgid "transpose by ratio" msgstr "" -#: js/MeterBlocks.js:750 -msgid "on strong beat" +#: js/blocks/PitchBlocks.js:1232 +#.TRANS: down sixth means the note is five scale degrees below current note +msgid "down sixth" msgstr "" -#: js/MeterBlocks.js:758 -msgid "The On-strong-beat block lets you specify actions to take on specified beats." +#: js/blocks/PitchBlocks.js:1251 +#.TRANS: down third means the note is two scale degrees below current note +msgid "down third" msgstr "" -#: js/MeterBlocks.js:769 -msgid "beat" +#: js/blocks/PitchBlocks.js:1270 +#.TRANS: seventh means the note is the six scale degrees above current note +msgid "seventh" msgstr "" -#: js/MeterBlocks.js:813 -msgid "on every beat do" +#: js/blocks/PitchBlocks.js:1289 +#.TRANS: sixth means the note is the five scale degrees above current note +msgid "sixth" msgstr "" -#: js/MeterBlocks.js:821 -msgid "The On-every-beat block lets you specify actions to take on every beat." +#: js/blocks/PitchBlocks.js:1308 +#.TRANS: fifth means the note is the four scale degrees above current note +msgid "fifth" msgstr "" -#: js/MeterBlocks.js:874 -msgid "on every note do" +#: js/blocks/PitchBlocks.js:1328 +#.TRANS: fourth means the note is three scale degrees above current note +msgid "fourth" msgstr "" -#: js/MeterBlocks.js:882 -msgid "The On-every-note block lets you specify actions to take on every note." +#: js/blocks/PitchBlocks.js:1347 +#.TRANS: third means the note is two scale degrees above current note +msgid "third" msgstr "" -#: js/MeterBlocks.js:928 -#: js/MeterBlocks.js:999 -#.TRANS: sets tempo by defining a beat and beats per minute -msgid "master beats per minute" +#: js/blocks/PitchBlocks.js:1366 +#.TRANS: second means the note is one scale degree above current note +msgid "second" msgstr "" -#: js/MeterBlocks.js:952 -#: js/MeterBlocks.js:1078 -#: js/MeterBlocks.js:1135 -msgid "bpm" +#: js/blocks/PitchBlocks.js:1407 +msgid "The Scalar transposition block will shift the pitches contained inside Note blocks up (or down) the scale." msgstr "" -#: js/MeterBlocks.js:952 -#: js/MeterBlocks.js:1078 -#: js/MeterBlocks.js:1135 -msgid "beat value" +#: js/blocks/PitchBlocks.js:1409 +msgid "In the example shown above, sol is shifted up to la." msgstr "" -#: js/MeterBlocks.js:1024 -#: js/MeterBlocks.js:1167 -#: js/MeterBlocks.js:1241 -msgid "Beats per minute must be > 30." +#: js/blocks/PitchBlocks.js:1416 +#.TRANS: adjust the amount of shift (up or down) of a pitch by musical scale (scalar) steps +msgid "scalar transpose" msgstr "" -#: js/MeterBlocks.js:1027 -#: js/MeterBlocks.js:1170 -#: js/MeterBlocks.js:1244 -msgid "Maximum beats per minute is 1000." +#: js/blocks/PitchBlocks.js:1451 +msgid "The Accidental block is used to create sharps and flats" msgstr "" -#: js/MeterBlocks.js:1068 -msgid "The Beats per minute block sets the number of 1/4 notes per minute." +#: js/blocks/PitchBlocks.js:1458 +#.TRANS: An accidental is a modification to a pitch, e.g., sharp or flat. +msgid "accidental override" msgstr "" -#: js/MeterBlocks.js:1279 -#.TRANS: anacrusis -msgid "pickup" +#: js/blocks/PitchBlocks.js:1581 +msgid "The Hertz block (in combination with a Number block) will play a sound at the specified frequency." msgstr "" -#: js/MeterBlocks.js:1367 -msgid "number of beats" +#: js/blocks/PitchBlocks.js:1671 +msgid "The Pitch Number block will play a pitch associated by its number, e.g. 0 for C and 7 for G." msgstr "" -#: js/DictBlocks.js:77 -msgid "show dictionary" +#: js/blocks/PitchBlocks.js:1703 +#: js/blocks/PitchBlocks.js:1745 +#.TRANS: a numeric mapping of the notes in an octave based on the musical mode +#.TRANS: a numeric mapping of the notes in an octave based on the musical mode +msgid "nth modal pitch" msgstr "" -#: js/DictBlocks.js:129 -msgid "The Dictionary block returns a dictionary." +#: js/blocks/PitchBlocks.js:1706 +msgid "n^th Modal Pitch takes the pattern of pitches in semitones for a mode and makes each point a degree of the mode," msgstr "" -#: js/DictBlocks.js:197 -#: js/DictBlocks.js:339 -msgid "The Get-dict block returns a value in the dictionary for a specified key." +#: js/blocks/PitchBlocks.js:1708 +msgid "starting from 1 and regardless of tonal framework (i.e. not always 8 notes in the octave)" msgstr "" -#: js/DictBlocks.js:212 -#: js/DictBlocks.js:354 -#.TRANS: retrieve a value from the dictionary with a given key -msgid "get value" +#: js/blocks/PitchBlocks.js:1749 +msgid "N^th Modal Pitch takes a number as an input as the n^th degree for the given mode. 0 is the first position, 1 is the second, -1 is the note before the first etc." msgstr "" -#: js/DictBlocks.js:215 -#: js/DictBlocks.js:216 -#: js/DictBlocks.js:289 -#: js/DictBlocks.js:290 -#: js/DictBlocks.js:357 -#: js/DictBlocks.js:430 -#: js/DictBlocks.js:431 -msgid "key2" +#: js/blocks/PitchBlocks.js:1751 +msgid "The pitches change according to the mode specified without any need for respellings." msgstr "" -#: js/DictBlocks.js:271 -#: js/DictBlocks.js:411 -msgid "The Set-dict block sets a value in the dictionary for a specified key." +#: js/blocks/PitchBlocks.js:1790 +msgid "Scale Degree is a common convention in music. Scale Degree offers seven possible positions in the scale (1-7) and can be modified via accidentals." msgstr "" -#: js/DictBlocks.js:286 -#: js/DictBlocks.js:427 -#.TRANS: set a value in the dictionary for a given key -msgid "set value" +#: js/blocks/PitchBlocks.js:1792 +msgid "Scale Degree 1 is always the first pitch in a given scale, regardless of octave." msgstr "" -#: js/ExtrasBlocks.js:33 -msgid "fraction" +#: js/blocks/PitchBlocks.js:1814 +#.TRANS: step some number of notes in current musical scale +msgid "scalar step" msgstr "" -#: js/ExtrasBlocks.js:36 -msgid "Convert a float to a fraction" +#: js/blocks/PitchBlocks.js:1819 +msgid "The Scalar Step block (in combination with a Number block) will play the next pitch in a scale," msgstr "" -#: js/ExtrasBlocks.js:93 -msgid "save as ABC" +#: js/blocks/PitchBlocks.js:1821 +msgid "eg if the last note played was sol, Scalar Step 1 will play la." msgstr "" -#: js/ExtrasBlocks.js:96 -#: js/ExtrasBlocks.js:132 -#: js/ExtrasBlocks.js:168 -msgid "title" +#: js/blocks/PitchBlocks.js:1857 +msgid "The Pitch block specifies the pitch name and octave of a note that together determine the frequency of the note." msgstr "" -#: js/ExtrasBlocks.js:129 -msgid "save as Lilypond" +#: js/blocks/ProgramBlocks.js:33 +msgid "The Load-heap-from-app block loads the heap from a web page." msgstr "" -#: js/ExtrasBlocks.js:165 -msgid "save as SVG" +#: js/blocks/ProgramBlocks.js:44 +#.TRANS: load the heap contents from a URL +msgid "load heap from App" msgstr "" -#: js/ExtrasBlocks.js:216 -msgid "no background" +#: js/blocks/ProgramBlocks.js:95 +msgid "Error parsing JSON data:" msgstr "" -#: js/ExtrasBlocks.js:219 -msgid "The No background block eliminates the background from the saved SVG output." +#: js/blocks/ProgramBlocks.js:100 +msgid "404: Page not found" msgstr "" -#: js/ExtrasBlocks.js:247 -msgid "show blocks" -msgstr "ব্লক দেখাও" +#: js/blocks/ProgramBlocks.js:133 +msgid "The Save-heap-to-app block saves the heap to a web page." +msgstr "" -#: js/ExtrasBlocks.js:249 -msgid "The Show blocks block shows the blocks." +#: js/blocks/ProgramBlocks.js:144 +#.TRANS: save the heap contents to a URL +msgid "save heap to App" msgstr "" -#: js/ExtrasBlocks.js:274 -msgid "hide blocks" -msgstr "ব্লক লুকিয়ে রাখো" +#: js/blocks/ProgramBlocks.js:189 +msgid "Cannot find a valid heap for" +msgstr "" -#: js/ExtrasBlocks.js:276 -msgid "The Hide blocks block hides the blocks." +#: js/blocks/ProgramBlocks.js:206 +msgid "The Load-heap block loads the heap from a file." msgstr "" -#: js/ExtrasBlocks.js:305 -#: js/ExtrasBlocks.js:335 -msgid "The Space block is used to add space between blocks." +#: js/blocks/ProgramBlocks.js:217 +#.TRANS: load the heap from a file +msgid "load heap" msgstr "" -#: js/ExtrasBlocks.js:373 -msgid "wait" -msgstr "অপেক্ষা করো" +#: js/blocks/ProgramBlocks.js:270 +msgid "The file you selected does not contain a valid heap." +msgstr "" -#: js/ExtrasBlocks.js:376 -msgid "The Wait block pauses the program for a specified number of seconds." +#: js/blocks/ProgramBlocks.js:275 +msgid "The loadHeap block needs a loadFile block." msgstr "" -#: js/ExtrasBlocks.js:430 -#: plugins/facebook.rtp:30 -msgid "comment" +#: js/blocks/ProgramBlocks.js:291 +msgid "The Set-heap block loads the heap." msgstr "" -#: js/ExtrasBlocks.js:466 -msgid "print" -msgstr "মুদ্রণ করো" +#: js/blocks/ProgramBlocks.js:340 +msgid "The block you selected does not contain a valid heap." +msgstr "" -#: js/ExtrasBlocks.js:473 -msgid "The Print block displays text at the top of the screen." +#: js/blocks/ProgramBlocks.js:343 +msgid "The Set heap block needs a heap." msgstr "" -#: js/ExtrasBlocks.js:579 -msgid "display grid" +#: js/blocks/ProgramBlocks.js:360 +msgid "The Load-dictionary block loads a dictionary from a file." msgstr "" -#: js/ExtrasBlocks.js:584 -msgid "The Display Grid Block changes the grid type" +#: js/blocks/ProgramBlocks.js:372 +#.TRANS: load a dictionary from a file +msgid "load dictionary" msgstr "" -#: js/ExtrasBlocks.js:686 -#: js/ExtrasBlocks.js:705 -#: js/ExtrasBlocks.js:728 -#: js/ExtrasBlocks.js:751 -#: js/ExtrasBlocks.js:769 -#: js/ExtrasBlocks.js:788 -#: js/ExtrasBlocks.js:807 -#: js/ExtrasBlocks.js:826 -msgid "unknown" +#: js/blocks/ProgramBlocks.js:390 +#: js/blocks/ProgramBlocks.js:658 +#: js/blocks/ToneBlocks.js:1025 +msgid "file" msgstr "" -#: js/SensorsBlocks.js:36 -msgid "The Input block prompts for keyboard input." +#: js/blocks/ProgramBlocks.js:444 +msgid "The file you selected does not contain a valid dictionary." msgstr "" -#: js/SensorsBlocks.js:46 -msgid "input" +#: js/blocks/ProgramBlocks.js:449 +msgid "The load dictionary block needs a load file block." msgstr "" -#: js/SensorsBlocks.js:64 -msgid "Input a value" +#: js/blocks/ProgramBlocks.js:466 +msgid "The Set-dictionary block loads a dictionary." msgstr "" -#: js/SensorsBlocks.js:126 -msgid "input value" +#: js/blocks/ProgramBlocks.js:477 +#.TRANS: load a dictionary from a JSON +msgid "set dictionary" msgstr "" -#: js/SensorsBlocks.js:131 -msgid "The Input-value block stores the input." +#: js/blocks/ProgramBlocks.js:546 +msgid "The block you selected does not contain a valid dictionary." msgstr "" -#: js/SensorsBlocks.js:238 -msgid "loudness" +#: js/blocks/ProgramBlocks.js:550 +msgid "The set dictionary block needs a dictionary." msgstr "" -#: js/SensorsBlocks.js:245 -msgid "The Loudness block returns the volume detected by the microphone." +#: js/blocks/ProgramBlocks.js:567 +msgid "The Save-heap block saves the heap to a file." msgstr "" -#: js/SensorsBlocks.js:300 -msgid "click" +#: js/blocks/ProgramBlocks.js:578 +#.TRANS: save the heap to a file +msgid "save heap" msgstr "" -#: js/SensorsBlocks.js:306 -msgid "The Click block triggers an event if a mouse has been clicked." +#: js/blocks/ProgramBlocks.js:629 +msgid "The Save-dictionary block saves a dictionary to a file." msgstr "" -#: js/SensorsBlocks.js:313 -msgid "The Click block triggers an event if a turtle has been clicked." +#: js/blocks/ProgramBlocks.js:640 +#.TRANS: save a dictionary to a file +msgid "save dictionary" msgstr "" -#: js/SensorsBlocks.js:342 -msgid "cursor over" +#: js/blocks/ProgramBlocks.js:720 +msgid "The Open palette block opens a palette." msgstr "" -#: js/SensorsBlocks.js:387 -msgid "cursor out" +#: js/blocks/ProgramBlocks.js:727 +msgid "open palette" msgstr "" -#: js/SensorsBlocks.js:433 -msgid "cursor button down" +#: js/blocks/ProgramBlocks.js:785 +msgid "The Delete block block removes a block." msgstr "" -#: js/SensorsBlocks.js:477 -msgid "cursor button up" +#: js/blocks/ProgramBlocks.js:797 +#.TRANS: Move this block to the trash. +msgid "delete block" msgstr "" -#: js/SensorsBlocks.js:638 -msgid "The Get red block returns the red component of the pixel under the mouse." +#: js/blocks/ProgramBlocks.js:861 +msgid "The Move block block moves a block." msgstr "" -#: js/SensorsBlocks.js:644 -msgid "The Get red block returns the red component of the pixel under the turtle." +#: js/blocks/ProgramBlocks.js:869 +#.TRANS: Move the position of a block on the screen. +msgid "move block" msgstr "" -#: js/SensorsBlocks.js:685 -#: plugins/rodi.rtp:216 -msgid "pixel color" +#: js/blocks/ProgramBlocks.js:881 +#: js/blocks/ProgramBlocks.js:1048 +msgid "block number" msgstr "" -#: js/SensorsBlocks.js:690 -msgid "The Get pixel block returns the color of the pixel under the mouse." +#: js/blocks/ProgramBlocks.js:935 +#.TRANS: Run program beginning at this block. +msgid "run block" msgstr "" -#: js/SensorsBlocks.js:696 -msgid "The Get pixel block returns the color of the pixel under the turtle." +#: js/blocks/ProgramBlocks.js:1025 +msgid "The Dock block block connections two blocks." msgstr "" -#: js/SensorsBlocks.js:758 -msgid "time" +#: js/blocks/ProgramBlocks.js:1036 +#.TRANS: We can connect a block to another block. +msgid "connect blocks" msgstr "" -#: js/SensorsBlocks.js:804 -msgid "cursor y" +#: js/blocks/ProgramBlocks.js:1048 +msgid "target block" msgstr "" -#: js/SensorsBlocks.js:809 -msgid "The Cursor Y block returns the vertical position of the mouse." +#: js/blocks/ProgramBlocks.js:1048 +msgid "connection number" msgstr "" -#: js/SensorsBlocks.js:845 -msgid "cursor x" +#: js/blocks/ProgramBlocks.js:1140 +msgid "The Make block block creates a new block." msgstr "" -#: js/SensorsBlocks.js:850 -msgid "The Cursor X block returns the horizontal position of the mouse." +#: js/blocks/ProgramBlocks.js:1152 +#.TRANS: Create a new block +msgid "make block" msgstr "" -#: js/SensorsBlocks.js:886 -msgid "mouse button" +#: js/blocks/ProgramBlocks.js:1285 +msgid "Cannot find block" msgstr "" -#: js/SensorsBlocks.js:888 -msgid "The Mouse-button block returns True if the mouse button is pressed." +#: js/blocks/ProgramBlocks.js:1304 +#: js/blocks/ProgramBlocks.js:1313 +msgid "Warning: block argument type mismatch" msgstr "" -#: js/SensorsBlocks.js:934 -msgid "to ASCII" +#: js/blocks/ProgramBlocks.js:1347 +msgid "The Open project block is used to open a project from a web page." msgstr "" -#: js/SensorsBlocks.js:938 -msgid "The To ASCII block converts numbers to letters." +#: js/blocks/ProgramBlocks.js:1357 +msgid "open project" msgstr "" -#: js/SensorsBlocks.js:1005 -msgid "The Keyboard block returns computer keyboard input." +#: js/blocks/ProgramBlocks.js:1410 +msgid "Please enter a valid URL." msgstr "" -#: js/IntervalsActions.js:216 -msgid "Adding missing pitch number 0." +#: js/blocks/ToneBlocks.js:34 +msgid "oscillator" msgstr "" -#: js/IntervalsActions.js:224 -msgid "Ignoring pitch numbers less than zero or greater than eleven." +#: js/blocks/ToneBlocks.js:42 +#: js/blocks/WidgetBlocks.js:179 +#: js/widgets/timbre.js:1558 +#: js/widgets/timbre.js:1808 +#.TRANS: there are different types (sine, triangle, square...) of oscillators. +#.TRANS: type of filter, e.g., lowpass, highpass, etc. +msgid "type" msgstr "" -#: js/IntervalsActions.js:230 -msgid "Ignoring duplicate pitch numbers." +#: js/blocks/ToneBlocks.js:44 +#: js/widgets/timbre.js:1562 +#.TRANS: Partials refers to the number of sine waves combined into the sound. +msgid "partials" msgstr "" -#: js/PitchActions.js:88 -msgid "The Scalar Step Block must be used inside of a Note Block." +#: js/blocks/ToneBlocks.js:76 +msgid "You are adding multiple oscillator blocks." msgstr "" -#: js/PitchActions.js:107 -msgid "The Scalar Step Block must be preceded by a Pitch Block." +#: js/blocks/ToneBlocks.js:144 +#: js/widgets/timbre.js:1225 +#.TRANS: a duo synthesizer combines a synth with a sequencer +msgid "duo synth" msgstr "" -#: js/DrumActions.js:231 -msgid "Noise Block: Did you mean to use a Note block?" +#: js/blocks/ToneBlocks.js:149 +msgid "The Duo synth block is a duo-frequency modulator used to define a timbre." msgstr "" -#: js/MeterActions.js:101 -#: js/MeterActions.js:139 -msgid "beats per minute must be greater than" +#: js/blocks/ToneBlocks.js:157 +#: js/widgets/timbre.js:1476 +msgid "vibrato rate" msgstr "" -#: js/MeterActions.js:111 -#: js/MeterActions.js:149 -msgid "maximum" +#: js/blocks/ToneBlocks.js:157 +msgid "vibrato intensity" msgstr "" -#: js/MeterActions.js:117 -#: js/MeterActions.js:155 -msgid "beats per minute is" +#: js/blocks/ToneBlocks.js:185 +#: js/widgets/timbre.js:1221 +#.TRANS: AM (amplitude modulation) synthesizer +msgid "AM synth" msgstr "" -#: js/ToneActions.js:134 -msgid "Vibrato intensity must be between 1 and 100." +#: js/blocks/ToneBlocks.js:189 +msgid "The AM synth block is an amplitude modulator used to define a timbre." msgstr "" -#: js/ToneActions.js:139 -msgid "Vibrato rate must be greater than 0." +#: js/blocks/ToneBlocks.js:224 +#: js/widgets/timbre.js:1223 +#.TRANS: FM (frequency modulation) synthesizer +msgid "FM synth" msgstr "" -#: js/ToneActions.js:192 -#: js/ToneActions.js:265 -#.TRANS: Depth is the intesity of the tremolo or chorus effect. -msgid "Depth is out of range." +#: js/blocks/ToneBlocks.js:228 +msgid "The FM synth block is a frequency modulator used to define a timbre." msgstr "" -#: js/ToneActions.js:301 -msgid "Distortion must be from 0 to 100." +#: js/blocks/ToneBlocks.js:262 +msgid "partial" msgstr "" -#: js/ToneActions.js:332 -#.TRANS: partials components in a harmonic series -msgid "Partial must be greater than or equal to 0." +#: js/blocks/ToneBlocks.js:265 +msgid "The Partial block is used to specify a weight for a specific partial harmonic." msgstr "" -#: js/ToneActions.js:378 -#: js/ToneActions.js:417 -#: js/ToneActions.js:456 -#: js/timbre.js:782 -msgid "Unable to use synth due to existing oscillator" +#: js/blocks/ToneBlocks.js:284 +#.TRANS: partials are weighted components in a harmonic series +msgid "Partial weight must be between 0 and 1." msgstr "" -#: js/ToneActions.js:388 -#: js/ToneActions.js:427 -msgid "The input cannot be negative." +#: js/blocks/ToneBlocks.js:297 +#.TRANS: partials are weighted components in a harmonic series +msgid "Partial block should be used inside of a Weighted-partials block." msgstr "" -#: js/DictActions.js:75 -#: js/DictActions.js:153 -#: js/DictActions.js:188 -msgid "font" +#: js/blocks/ToneBlocks.js:325 +#.TRANS: partials are weighted components in a harmonic series +msgid "weighted partials" msgstr "" -#: js/musicutils.js:363 -#: js/musicutils.js:471 -#: js/pitchdrummatrix.js:151 -#: js/musickeyboard.js:2563 -msgid "rest" +#: js/blocks/ToneBlocks.js:383 +msgid "The Harmonic block will add harmonics to the contained notes." msgstr "" -#: js/musicutils.js:565 -#.TRANS: ordinal number. Please keep exactly one space between each number. -msgid "1st 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th" +#: js/blocks/ToneBlocks.js:390 +#.TRANS: A harmonic is an overtone. +msgid "harmonic" msgstr "" -#: js/musicutils.js:629 -#: js/musicutils.js:812 -#: js/musicutils.js:911 -#.TRANS: augmented is a music term related to intervals -msgid "augmented" +#: js/blocks/ToneBlocks.js:431 +msgid "The Distortion block adds distortion to the pitch." msgstr "" -#: js/musicutils.js:631 -#: js/musicutils.js:813 -#: js/musicutils.js:910 -#.TRANS: diminished is a music term related to intervals and mode -msgid "diminished" +#: js/blocks/ToneBlocks.js:438 +#: js/widgets/timbre.js:2100 +#.TRANS: distortion is an alteration in the sound +msgid "distortion" msgstr "" -#: js/musicutils.js:639 -#.TRANS: twelve semi-tone scale for music -msgid "chromatic" +#: js/blocks/ToneBlocks.js:487 +msgid "The Tremolo block adds a wavering effect." msgstr "" -#: js/musicutils.js:640 -msgid "algerian" +#: js/blocks/ToneBlocks.js:495 +#: js/widgets/timbre.js:2092 +#.TRANS: a wavering effect in a musical tone +msgid "tremolo" msgstr "" -#: js/musicutils.js:641 -msgid "spanish" +#: js/blocks/ToneBlocks.js:500 +#: js/blocks/ToneBlocks.js:569 +#: js/blocks/ToneBlocks.js:630 +#: js/blocks/ToneBlocks.js:689 +#: js/widgets/timbre.js:2134 +#: js/widgets/timbre.js:2222 +#: js/widgets/timbre.js:2317 +#: js/widgets/timbre.js:2419 +#.TRANS: rate at which tremolo wavers +msgid "rate" msgstr "" -#: js/musicutils.js:643 -#.TRANS: modal scale in music -msgid "octatonic" +#: js/blocks/ToneBlocks.js:502 +#: js/blocks/ToneBlocks.js:630 +#: js/widgets/timbre.js:2137 +#: js/widgets/timbre.js:2328 +#.TRANS: amplitude of tremolo waver +msgid "depth" msgstr "" -#: js/musicutils.js:645 -#.TRANS: harmonic major scale in music -msgid "harmonic major" +#: js/blocks/ToneBlocks.js:559 +msgid "The Phaser block adds a sweeping sound." msgstr "" -#: js/musicutils.js:647 -#.TRANS: natural minor scales in music -msgid "natural minor" +#: js/blocks/ToneBlocks.js:566 +#: js/widgets/timbre.js:2098 +#.TRANS: alter the phase of the sound +msgid "phaser" msgstr "" -#: js/musicutils.js:649 -#.TRANS: harmonic minor scale in music -msgid "harmonic minor" +#: js/blocks/ToneBlocks.js:569 +#: js/turtleactions/IntervalsActions.js:114 +#: js/widgets/timbre.js:2422 +msgid "octaves" msgstr "" -#: js/musicutils.js:651 -#.TRANS: melodic minor scale in music -msgid "melodic minor" +#: js/blocks/ToneBlocks.js:569 +#: js/widgets/timbre.js:2425 +msgid "base frequency" msgstr "" -#: js/musicutils.js:655 -#.TRANS: modal scale for music -msgid "dorian" +#: js/blocks/ToneBlocks.js:619 +msgid "The Chorus block adds a chorus effect." msgstr "" -#: js/musicutils.js:657 -#.TRANS: modal scale for music -msgid "phrygian" +#: js/blocks/ToneBlocks.js:627 +#: js/widgets/timbre.js:2096 +#.TRANS: musical effect to simulate a choral sound +msgid "chorus" msgstr "" -#: js/musicutils.js:659 -#.TRANS: modal scale for music -msgid "lydian" +#: js/blocks/ToneBlocks.js:630 +msgid "delay" msgstr "" -#: js/musicutils.js:661 -#.TRANS: modal scale for music -msgid "mixolydian" +#: js/blocks/ToneBlocks.js:678 +msgid "The Vibrato block adds a rapid, slight variation in pitch." msgstr "" -#: js/musicutils.js:665 -#.TRANS: modal scale for music -msgid "locrian" +#: js/blocks/ToneBlocks.js:686 +#: js/widgets/timbre.js:2094 +#.TRANS: a rapid, slight variation in pitch +msgid "vibrato" msgstr "" -#: js/musicutils.js:667 -#.TRANS: minor jazz scale for music -msgid "jazz minor" +#: js/blocks/ToneBlocks.js:689 +#: js/widgets/timbre.js:2221 +msgid "intensity" msgstr "" -#: js/musicutils.js:669 -#.TRANS: bebop scale for music -msgid "bebop" +#: js/blocks/ToneBlocks.js:733 +#.TRANS: select synthesizer +msgid "set synth" msgstr "" -#: js/musicutils.js:670 -msgid "arabic" +#: js/blocks/ToneBlocks.js:804 +msgid "synth name" msgstr "" -#: js/musicutils.js:671 -msgid "byzantine" +#: js/blocks/ToneBlocks.js:842 +msgid "set default instrument" msgstr "" -#: js/musicutils.js:673 -#.TRANS: musical scale for music by Verdi -msgid "enigmatic" +#: js/blocks/ToneBlocks.js:895 +#: js/blocks/ToneBlocks.js:943 +#.TRANS: set the characteristics of a custom instrument +msgid "set instrument" msgstr "" -#: js/musicutils.js:674 -msgid "ethiopian" +#: js/blocks/ToneBlocks.js:898 +#: js/blocks/ToneBlocks.js:926 +#: js/blocks/ToneBlocks.js:932 +msgid "The Set instrument block selects a voice for the synthesizer," msgstr "" -#: js/musicutils.js:676 -#.TRANS: Ethiopic scale for music -msgid "geez" +#: js/blocks/ToneBlocks.js:900 +#: js/blocks/ToneBlocks.js:934 +msgid "eg guitar piano violin or cello." msgstr "" -#: js/musicutils.js:677 -msgid "hindu" +#: js/blocks/ToneBlocks.js:1015 +msgid "Import a sound file to use as an instrument and set its pitch center." msgstr "" -#: js/musicutils.js:678 -msgid "hungarian" +#: js/blocks/ToneBlocks.js:1110 +msgid "Upload a sound file to connect with the sample block." msgstr "" -#: js/musicutils.js:680 -#.TRANS: minor Romanian scale for music -msgid "romanian minor" +#: js/blocks/VolumeBlocks.js:35 +msgid "synth volume" msgstr "" -#: js/musicutils.js:681 -msgid "spanish gypsy" +#: js/blocks/VolumeBlocks.js:39 +msgid "The Synth volume block returns the current volume of the current synthesizer." msgstr "" -#: js/musicutils.js:683 -#.TRANS: musical scale for Mid-Eastern music -msgid "maqam" +#: js/blocks/VolumeBlocks.js:105 +msgid "master volume" msgstr "" -#: js/musicutils.js:685 -#.TRANS: minor blues scale for music -msgid "minor blues" +#: js/blocks/VolumeBlocks.js:109 +msgid "The Master volume block returns the master volume." msgstr "" -#: js/musicutils.js:687 -#.TRANS: major blues scale for music -msgid "major blues" +#: js/blocks/VolumeBlocks.js:355 +#: js/blocks/VolumeBlocks.js:524 +msgid "set synth volume" msgstr "" -#: js/musicutils.js:688 -msgid "whole tone" +#: js/blocks/VolumeBlocks.js:362 +#: js/blocks/VolumeBlocks.js:545 +msgid "synth" msgstr "" -#: js/musicutils.js:690 -#.TRANS: pentatonic is a general term that means "five note scale". This scale is typically known as "minor pentatonic" -msgid "minor pentatonic" +#: js/blocks/VolumeBlocks.js:403 +#: js/blocks/VolumeBlocks.js:577 +#: js/blocks/VolumeBlocks.js:740 +#: js/turtleactions/VolumeActions.js:173 +msgid "Setting volume to 0." msgstr "" -#: js/musicutils.js:692 -#.TRANS: pentatonic is a general term that means "five note scale". This scale is typically known as "major pentatonic" -msgid "major pentatonic" +#: js/blocks/VolumeBlocks.js:440 +msgid "Synth not found" msgstr "" -#: js/musicutils.js:693 -msgid "chinese" +#: js/blocks/VolumeBlocks.js:494 +msgid "set drum volume" msgstr "" -#: js/musicutils.js:694 -msgid "egyptian" +#: js/blocks/VolumeBlocks.js:530 +msgid "The Set synth volume block will change the volume of a particular synth," msgstr "" -#: js/musicutils.js:696 -#.TRANS: https://en.wikipedia.org/wiki/Hirajoshi_scale NOTE: There are three different versions of this scale -msgid "hirajoshi" +#: js/blocks/VolumeBlocks.js:532 +msgid "eg guitar violin snare drum etc." msgstr "" -#: js/musicutils.js:697 -msgid "Japan" +#: js/blocks/VolumeBlocks.js:534 +msgid "The default volume is 50." msgstr "" -#: js/musicutils.js:699 -#.TRANS: https://en.wikipedia.org/wiki/In_scale and https://en.wikipedia.org/wiki/Sakura_Sakura -msgid "in" +#: js/blocks/VolumeBlocks.js:536 +msgid "The range is 0 for silence to 100 for full volume." msgstr "" -#: js/musicutils.js:701 -#.TRANS: https://en.wikipedia.org/wiki/Miny%C5%8D_scale -msgid "minyo" +#: js/blocks/VolumeBlocks.js:597 +msgid "set panning" msgstr "" -#: js/musicutils.js:703 -#.TRANS: Italian mathematician -msgid "fibonacci" +#: js/blocks/VolumeBlocks.js:603 +msgid "The Set Panning block sets the panning for all synthesizers." msgstr "" -#: js/musicutils.js:708 -#: js/musicutils.js:1106 -#.TRANS: lowpass filter -msgid "lowpass" +#: js/blocks/VolumeBlocks.js:625 +msgid "Warning: Sound is coming out from only the left or right side." msgstr "" -#: js/musicutils.js:710 -#: js/musicutils.js:1107 -#.TRANS: bandpass filter -msgid "bandpass" +#: js/blocks/VolumeBlocks.js:647 +#: js/blocks/VolumeBlocks.js:695 +msgid "set master volume" msgstr "" -#: js/musicutils.js:712 -#: js/musicutils.js:1108 -#.TRANS: high-shelf filter -msgid "highshelf" +#: js/blocks/VolumeBlocks.js:653 +msgid "The Set master volume block sets the volume for all synthesizers." msgstr "" -#: js/musicutils.js:714 -#: js/musicutils.js:1109 -#.TRANS: low-shelf filter -msgid "lowshelf" +#: js/blocks/VolumeBlocks.js:784 +msgid "The Set relative volume block changes the volume of the contained notes." msgstr "" -#: js/musicutils.js:716 -#: js/musicutils.js:1110 -#.TRANS: notch-shelf filter -msgid "notch" +#: js/blocks/VolumeBlocks.js:791 +msgid "set relative volume" msgstr "" -#: js/musicutils.js:718 -#: js/musicutils.js:1111 -#.TRANS: all-pass filter -msgid "allpass" +#: js/blocks/VolumeBlocks.js:857 +msgid "decrescendo" msgstr "" -#: js/musicutils.js:720 -#: js/musicutils.js:1112 -#.TRANS: peaking filter -msgid "peaking" +#: js/blocks/VolumeBlocks.js:921 +msgid "crescendo" msgstr "" -#: js/musicutils.js:731 -#: js/synthutils.js:58 -#.TRANS: musical instrument -msgid "violin" +#: js/blocks/WidgetBlocks.js:81 +#.TRANS: sound envelope (ADSR) +msgid "envelope" msgstr "" -#: js/musicutils.js:732 -#: js/synthutils.js:60 -#.TRANS: viola musical instrument -msgid "viola" +#: js/blocks/WidgetBlocks.js:89 +#.TRANS: Attack time is the time taken for initial run-up of level from nil to peak, beginning when the key is first pressed. +msgid "attack" msgstr "" -#: js/musicutils.js:733 -#: js/synthutils.js:98 -#.TRANS: xylophone musical instrument -msgid "xylophone" +#: js/blocks/WidgetBlocks.js:91 +#.TRANS: Decay time is the time taken for the subsequent run down from the attack level to the designated sustain level. +msgid "decay" msgstr "" -#: js/musicutils.js:734 -#: js/synthutils.js:120 -#.TRANS: vibraphone musical instrument -msgid "vibraphone" +#: js/blocks/WidgetBlocks.js:93 +#.TRANS: Sustain level is the level during the main sequence of the sound's duration, until the key is released. +msgid "sustain" msgstr "" -#: js/musicutils.js:735 -#: js/synthutils.js:62 -#.TRANS: musical instrument -msgid "cello" +#: js/blocks/WidgetBlocks.js:95 +#.TRANS: Release time is the time taken for the level to decay from the sustain level to zero after the key is released. +msgid "release" msgstr "" -#: js/musicutils.js:737 -#: js/synthutils.js:66 -#.TRANS: viola musical instrument -msgid "double bass" +#: js/blocks/WidgetBlocks.js:113 +msgid "Attack value should be from 0 to 100." msgstr "" -#: js/musicutils.js:738 -#: js/synthutils.js:68 -#: js/rhythmruler.js:2119 -#.TRANS: musical instrument -msgid "guitar" +#: js/blocks/WidgetBlocks.js:116 +msgid "Decay value should be from 0 to 100." msgstr "" -#: js/musicutils.js:739 -#: js/synthutils.js:70 -#.TRANS: musical instrument -msgid "acoustic guitar" +#: js/blocks/WidgetBlocks.js:119 +msgid "Sustain value should be from 0 to 100." msgstr "" -#: js/musicutils.js:740 -#: js/synthutils.js:72 -#.TRANS: musical instrument -msgid "flute" +#: js/blocks/WidgetBlocks.js:122 +msgid "Release value should be from 0-100." msgstr "" -#: js/musicutils.js:741 -#: js/synthutils.js:74 -#.TRANS: musical instrument -msgid "clarinet" +#: js/blocks/WidgetBlocks.js:140 +msgid "You are adding multiple envelope blocks." msgstr "" -#: js/musicutils.js:742 -#: js/synthutils.js:76 -#.TRANS: musical instrument -msgid "saxophone" +#: js/blocks/WidgetBlocks.js:171 +#.TRANS: a filter removes some unwanted components from a signal +msgid "filter" msgstr "" -#: js/musicutils.js:743 -#: js/synthutils.js:78 -#.TRANS: musical instrument -msgid "tuba" +#: js/blocks/WidgetBlocks.js:181 +#: js/widgets/timbre.js:1818 +#.TRANS: rolloff is the steepness of a change in frequency. +msgid "rolloff" msgstr "" -#: js/musicutils.js:744 -#: js/synthutils.js:80 -#.TRANS: musical instrument -msgid "trumpet" +#: js/blocks/WidgetBlocks.js:213 +#.TRANS: rolloff is the steepness of a change in frequency. +msgid "Rolloff value should be either -12, -24, -48, or -96 decibels/octave." msgstr "" -#: js/musicutils.js:745 -#: js/synthutils.js:82 -#.TRANS: musical instrument -msgid "oboe" +#: js/blocks/WidgetBlocks.js:252 +msgid "The Temperament tool is used to define custom tuning." msgstr "" -#: js/musicutils.js:746 -#: js/synthutils.js:84 -#.TRANS: musical instrument -msgid "trombone" +#: js/blocks/WidgetBlocks.js:332 +#: js/blocks/WidgetBlocks.js:1573 +#: js/widgets/sampler.js:547 +msgid "Upload a sample and adjust its pitch center." msgstr "" -#: js/musicutils.js:747 -#: js/synthutils.js:100 -#.TRANS: polytone synthesizer -msgid "electronic synth" +#: js/blocks/WidgetBlocks.js:339 +#.TRANS: the speed at music is should be played. +msgid "sampler" msgstr "" -#: js/musicutils.js:748 -#: js/synthutils.js:102 -#.TRANS: simple monotone synthesizer -msgid "simple 1" +#: js/blocks/WidgetBlocks.js:517 +msgid "The Meter block opens a tool to select strong beats for the meter." msgstr "" -#: js/musicutils.js:749 -msgid "simple 2" +#: js/blocks/WidgetBlocks.js:573 +msgid "The oscilloscope block opens a tool to visualize waveforms." msgstr "" -#: js/musicutils.js:750 -msgid "simple 3" +#: js/blocks/WidgetBlocks.js:578 +msgid "oscilloscope" msgstr "" -#: js/musicutils.js:751 -msgid "simple 4" +#: js/blocks/WidgetBlocks.js:645 +msgid "The Custom mode block opens a tool to explore musical mode (the spacing of the notes in a scale)." msgstr "" -#: js/musicutils.js:753 -#: js/synthutils.js:49 -#.TRANS: brown noise synthesizer -msgid "brown noise" +#: js/blocks/WidgetBlocks.js:651 +#.TRANS: musical mode is the pattern of half-steps in an octave, e.g., Major or Minor modes +msgid "custom mode" msgstr "" -#: js/musicutils.js:754 -#: js/synthutils.js:51 -#.TRANS: pink noise synthesizer -msgid "pink noise" +#: js/blocks/WidgetBlocks.js:700 +msgid "The Tempo block opens a metronome to visualize the beat." msgstr "" -#: js/musicutils.js:756 -#: js/synthutils.js:127 -#: js/rhythmruler.js:1670 -#: js/rhythmruler.js:1928 -#.TRANS: musical instrument -msgid "snare drum" +#: js/blocks/WidgetBlocks.js:762 +msgid "The Arpeggio Widget is used to compose chord sequences." msgstr "" -#: js/musicutils.js:757 -#: js/synthutils.js:129 -#.TRANS: musical instrument -msgid "kick drum" +#: js/blocks/WidgetBlocks.js:837 +msgid "The Pitch drum matrix is used to map pitches to drum sounds." msgstr "" -#: js/musicutils.js:758 -#: js/synthutils.js:131 -#.TRANS: musical instrument -msgid "tom tom" +#: js/blocks/WidgetBlocks.js:842 +#.TRANS: makes a mapping between pitches and drum sounds +msgid "pitch-drum mapper" msgstr "" -#: js/musicutils.js:759 -#: js/synthutils.js:133 -#.TRANS: musical instrument -msgid "floor tom" +#: js/blocks/WidgetBlocks.js:891 +msgid "You must have at least one pitch block and one drum block in the matrix." msgstr "" -#: js/musicutils.js:760 -#: js/synthutils.js:135 -#.TRANS: musical instrument -msgid "bass drum" +#: js/blocks/WidgetBlocks.js:920 +msgid "The Pitch slider tool to is used to generate pitches at selected frequencies." msgstr "" -#: js/musicutils.js:761 -#: js/synthutils.js:137 -#.TRANS: a drum made from an inverted cup -msgid "cup drum" +#: js/blocks/WidgetBlocks.js:925 +#.TRANS: widget to generate pitches using a slider +msgid "pitch slider" msgstr "" -#: js/musicutils.js:762 -#: js/synthutils.js:139 -#.TRANS: musical instrument -msgid "darbuka drum" +#: js/blocks/WidgetBlocks.js:977 +msgid "chromatic keyboard" msgstr "" -#: js/musicutils.js:763 -#: js/synthutils.js:143 -#.TRANS: musical instrument -msgid "hi hat" +#: js/blocks/WidgetBlocks.js:1011 +#: js/blocks/WidgetBlocks.js:1077 +#.TRANS: widget to generate pitches using a slider +msgid "music keyboard" msgstr "" -#: js/musicutils.js:764 -#: js/synthutils.js:145 -#.TRANS: a small metal bell -msgid "ride bell" +#: js/blocks/WidgetBlocks.js:1062 +#: js/blocks/WidgetBlocks.js:1069 +msgid "The Music keyboard block opens a piano keyboard that can be used to create notes." msgstr "" -#: js/musicutils.js:765 -#: js/synthutils.js:147 -#.TRANS: musical instrument -msgid "cow bell" +#: js/blocks/WidgetBlocks.js:1128 +msgid "The Pitch staircase tool to is used to generate pitches from a given ratio." msgstr "" -#: js/musicutils.js:766 -msgid "japanese drum" +#: js/blocks/WidgetBlocks.js:1135 +#.TRANS: generate a progressive sequence of pitches +msgid "pitch staircase" msgstr "" -#: js/musicutils.js:767 -#: js/synthutils.js:153 -#.TRANS: musical instrument -msgid "japanese bell" +#: js/blocks/WidgetBlocks.js:1222 +msgid "The Rhythm Maker block opens a tool to create drum machines." msgstr "" -#: js/musicutils.js:768 -#: js/synthutils.js:149 -#.TRANS: musical instrument -msgid "triangle bell" +#: js/blocks/WidgetBlocks.js:1291 +msgid "G major scale" msgstr "" -#: js/musicutils.js:769 -#: js/synthutils.js:151 -#.TRANS: musical instrument -msgid "finger cymbals" +#: js/blocks/WidgetBlocks.js:1326 +msgid "C major scale" msgstr "" -#: js/musicutils.js:770 -#: js/synthutils.js:155 -#.TRANS: a musically tuned set of bells -msgid "chime" +#: js/blocks/WidgetBlocks.js:1366 +msgid "The Phrase Maker block opens a tool to create musical phrases." msgstr "" -#: js/musicutils.js:771 -#: js/synthutils.js:157 -#.TRANS: a musical instrument -msgid "gong" +#: js/blocks/WidgetBlocks.js:1373 +#.TRANS: assigns pitch to a sequence of beats to generate a melody +msgid "phrase maker" msgstr "" -#: js/musicutils.js:772 -#: js/synthutils.js:159 -#.TRANS: sound effect -msgid "clang" +#: js/blocks/WidgetBlocks.js:1444 +msgid "You must have at least one pitch block and one rhythm block in the matrix." msgstr "" -#: js/musicutils.js:773 -#: js/synthutils.js:161 -#.TRANS: sound effect -msgid "crash" +#: js/blocks/WidgetBlocks.js:1503 +msgid "The Status block opens a tool for inspecting the status of Music Blocks as it is running." msgstr "" -#: js/musicutils.js:774 -#: js/synthutils.js:163 -#.TRANS: sound effect -msgid "bottle" +#: js/blocks/WidgetBlocks.js:1580 +#.TRANS: AI-generated music +msgid "aimusic" msgstr "" -#: js/musicutils.js:775 -#: js/synthutils.js:165 -#.TRANS: sound effect -msgid "clap" +#: js/turtleactions/MeterActions.js:101 +#: js/turtleactions/MeterActions.js:139 +msgid "beats per minute must be greater than" msgstr "" -#: js/musicutils.js:776 -#: js/synthutils.js:167 -#.TRANS: sound effect -msgid "slap" +#: js/turtleactions/MeterActions.js:111 +#: js/turtleactions/MeterActions.js:149 +msgid "maximum" msgstr "" -#: js/musicutils.js:777 -#: js/synthutils.js:169 -#.TRANS: sound effect -msgid "splash" +#: js/turtleactions/MeterActions.js:117 +#: js/turtleactions/MeterActions.js:155 +msgid "beats per minute is" msgstr "" -#: js/musicutils.js:778 -#: js/synthutils.js:171 -#.TRANS: sound effect -msgid "bubbles" +#: js/turtleactions/DictActions.js:75 +#: js/turtleactions/DictActions.js:142 +#: js/turtleactions/DictActions.js:172 +msgid "font" msgstr "" -#: js/musicutils.js:779 -#: js/synthutils.js:173 -#.TRANS: sound effect -msgid "raindrop" +#: js/turtleactions/DictActions.js:255 +msgid "Dictionary with this name does not exist" msgstr "" -#: js/musicutils.js:780 -#: js/synthutils.js:175 -#.TRANS: animal sound effect -msgid "cat" +#: js/turtleactions/DictActions.js:259 +msgid "Key with this name does not exist in " msgstr "" -#: js/musicutils.js:781 -#: js/synthutils.js:177 -#.TRANS: animal sound effect -msgid "cricket" +#: js/turtleactions/DrumActions.js:227 +msgid "Noise Block: Did you mean to use a Note block?" msgstr "" -#: js/musicutils.js:782 -#: js/synthutils.js:179 -#.TRANS: animal sound effect -msgid "dog" +#: js/turtleactions/IntervalsActions.js:113 +msgid "one" msgstr "" -#: js/musicutils.js:784 -#: js/synthutils.js:86 -#.TRANS: musical instrument -msgid "banjo" +#: js/turtleactions/IntervalsActions.js:113 +msgid "two" msgstr "" -#: js/musicutils.js:785 -#: js/synthutils.js:88 -#.TRANS: musical instrument -msgid "koto" +#: js/turtleactions/IntervalsActions.js:113 +msgid "three" msgstr "" -#: js/musicutils.js:786 -#: js/synthutils.js:90 -#.TRANS: musical instrument -msgid "dulcimer" +#: js/turtleactions/IntervalsActions.js:113 +msgid "four" msgstr "" -#: js/musicutils.js:787 -#: js/synthutils.js:92 -#.TRANS: musical instrument -msgid "electric guitar" +#: js/turtleactions/IntervalsActions.js:113 +msgid "five" msgstr "" -#: js/musicutils.js:788 -#: js/synthutils.js:94 -#.TRANS: musical instrument -msgid "bassoon" +#: js/turtleactions/IntervalsActions.js:113 +msgid "six" msgstr "" -#: js/musicutils.js:789 -#: js/synthutils.js:96 -#.TRANS: musical instrument -msgid "celeste" +#: js/turtleactions/IntervalsActions.js:113 +msgid "seven" msgstr "" -#: js/musicutils.js:791 -#: js/musicutils.js:1123 -#: js/musicutils.js:1131 -#: js/temperament.js:650 -#.TRANS: musical temperament -msgid "equal" +#: js/turtleactions/IntervalsActions.js:113 +msgid "eight" msgstr "" -#: js/musicutils.js:793 -#: js/musicutils.js:1125 -#: js/musicutils.js:1133 -#.TRANS: musical temperament -msgid "Pythagorean" +#: js/turtleactions/IntervalsActions.js:113 +msgid "nine" msgstr "" -#: js/musicutils.js:795 -#: js/musicutils.js:1124 -#: js/musicutils.js:1132 -#.TRANS: musical temperament -msgid "just intonation" +#: js/turtleactions/IntervalsActions.js:119 +msgid "a" msgstr "" -#: js/musicutils.js:797 -#: js/musicutils.js:1126 -#: js/musicutils.js:1127 -#: js/musicutils.js:1134 -#: js/musicutils.js:1135 -#.TRANS: musical temperament -msgid "meantone" +#: js/turtleactions/IntervalsActions.js:120 +msgid "below" msgstr "" -#: js/musicutils.js:814 -msgid "major 7th" +#: js/turtleactions/IntervalsActions.js:124 +msgid "above" msgstr "" -#: js/musicutils.js:815 -msgid "minor 7th" +#: js/turtleactions/IntervalsActions.js:131 +msgid "plus" msgstr "" -#: js/musicutils.js:816 -msgid "dominant 7th" +#: js/turtleactions/IntervalsActions.js:139 +msgid " below" msgstr "" -#: js/musicutils.js:817 -msgid "minor-major 7th" +#: js/turtleactions/IntervalsActions.js:257 +msgid "Adding missing pitch number 0." msgstr "" -#: js/musicutils.js:818 -msgid "fully-diminished 7th" +#: js/turtleactions/IntervalsActions.js:265 +msgid "Ignoring pitch numbers less than zero or greater than eleven." msgstr "" -#: js/musicutils.js:819 -msgid "half-diminished 7th" +#: js/turtleactions/IntervalsActions.js:271 +msgid "Ignoring duplicate pitch numbers." msgstr "" -#: js/musicutils.js:4379 -#: js/musicutils.js:4416 -msgid "current" +#: js/turtleactions/ToneActions.js:134 +msgid "Vibrato intensity must be between 1 and 100." msgstr "" -#: js/musicutils.js:4382 -#: js/musicutils.js:4407 -msgid "next" +#: js/turtleactions/ToneActions.js:139 +msgid "Vibrato rate must be greater than 0." msgstr "" -#: js/musicutils.js:4385 -#: js/musicutils.js:4412 -msgid "previous" +#: js/turtleactions/ToneActions.js:192 +#: js/turtleactions/ToneActions.js:265 +#.TRANS: Depth is the intesity of the tremolo or chorus effect. +msgid "Depth is out of range." msgstr "" -#: js/synthutils.js:104 -#.TRANS: simple monotone synthesizer -msgid "simple-2" +#: js/turtleactions/ToneActions.js:301 +msgid "Distortion must be from 0 to 100." msgstr "" -#: js/synthutils.js:106 -#.TRANS: simple monotone synthesizer -msgid "simple-3" +#: js/turtleactions/ToneActions.js:332 +#.TRANS: partials components in a harmonic series +msgid "Partial must be greater than or equal to 0." msgstr "" -#: js/synthutils.js:108 -#.TRANS: simple monotone synthesizer -msgid "simple-4" +#: js/turtleactions/ToneActions.js:378 +#: js/turtleactions/ToneActions.js:417 +#: js/turtleactions/ToneActions.js:456 +#: js/widgets/timbre.js:782 +msgid "Unable to use synth due to existing oscillator" msgstr "" -#: js/synthutils.js:141 -#.TRANS: musical instrument -msgid "taiko" +#: js/turtleactions/ToneActions.js:388 +#: js/turtleactions/ToneActions.js:427 +msgid "The input cannot be negative." msgstr "" -#: js/modewidget.js:86 -#: js/modewidget.js:88 -#: js/modewidget.js:642 -#: js/modewidget.js:644 -#: js/modewidget.js:712 -#: js/modewidget.js:714 -#: js/temperament.js:2078 -#: js/rhythmruler.js:189 -#: js/rhythmruler.js:1410 -#: js/rhythmruler.js:1412 -#: js/rhythmruler.js:1435 -#: js/rhythmruler.js:1437 -#: js/meterwidget.js:89 -#: js/meterwidget.js:91 +#: js/widgets/modewidget.js:86 +#: js/widgets/modewidget.js:88 +#: js/widgets/modewidget.js:642 +#: js/widgets/modewidget.js:644 +#: js/widgets/modewidget.js:712 +#: js/widgets/modewidget.js:714 +#: js/widgets/meterwidget.js:194 +#: js/widgets/meterwidget.js:196 +#: js/widgets/temperament.js:2236 +#: js/widgets/rhythmruler.js:457 +#: js/widgets/rhythmruler.js:1790 +#: js/widgets/rhythmruler.js:1792 +#: js/widgets/rhythmruler.js:1816 +#: js/widgets/rhythmruler.js:1818 msgid "Play all" msgstr "" -#: js/modewidget.js:115 -#: js/pitchstaircase.js:641 -#: js/phrasemaker.js:339 -#: js/pitchdrummatrix.js:94 -#: js/pitchslider.js:125 -#: js/temperament.js:2083 -#: js/musickeyboard.js:530 -#: js/timbre.js:756 -#: js/meterwidget.js:124 -#: js/arpeggio.js:103 +#: js/widgets/modewidget.js:115 +#: js/widgets/meterwidget.js:229 +#: js/widgets/pitchdrummatrix.js:166 +#: js/widgets/pitchslider.js:125 +#: js/widgets/pitchstaircase.js:641 +#: js/widgets/temperament.js:2244 +#: js/widgets/timbre.js:756 +#: js/widgets/arpeggio.js:103 +#: js/widgets/musickeyboard.js:688 +#: js/widgets/phrasemaker.js:550 msgid "Save" msgstr "" -#: js/modewidget.js:121 -#: js/pitchstaircase.js:686 -#: js/phrasemaker.js:356 -#: js/pitchdrummatrix.js:109 -#: js/musickeyboard.js:534 -#: js/rhythmruler.js:269 -#: js/arpeggio.js:118 +#: js/widgets/modewidget.js:121 +#: js/widgets/pitchdrummatrix.js:181 +#: js/widgets/pitchstaircase.js:686 +#: js/widgets/arpeggio.js:118 +#: js/widgets/musickeyboard.js:696 +#: js/widgets/phrasemaker.js:567 +#: js/widgets/rhythmruler.js:601 #.TRANS: clear all subdivisions from the ruler. msgid "Clear" msgstr "" -#: js/modewidget.js:127 +#: js/widgets/modewidget.js:127 msgid "Rotate counter clockwise" msgstr "" -#: js/modewidget.js:133 +#: js/widgets/modewidget.js:133 msgid "Rotate clockwise" msgstr "" -#: js/modewidget.js:139 +#: js/widgets/modewidget.js:139 msgid "Invert" msgstr "" -#: js/modewidget.js:145 -#: js/pitchstaircase.js:678 -#: js/rhythmruler.js:258 -#: js/timbre.js:963 +#: js/widgets/modewidget.js:145 +#: js/widgets/pitchstaircase.js:678 +#: js/widgets/timbre.js:963 +#: js/widgets/rhythmruler.js:578 msgid "Undo" msgstr "" -#: js/modewidget.js:163 +#: js/widgets/modewidget.js:163 #.TRANS: A circle of notes represents the musical mode. msgid "Click in the circle to select notes for the mode." msgstr "" -#: js/modewidget.js:1017 -#: js/pitchstaircase.js:580 -#: js/phrasemaker.js:4855 -#: js/temperament.js:1754 -#: js/rhythmruler.js:1865 -#: js/rhythmruler.js:2081 -#: js/tempo.js:414 +#: js/widgets/modewidget.js:1017 +#: js/widgets/pitchstaircase.js:580 +#: js/widgets/temperament.js:1929 +#: js/widgets/tempo.js:414 +#: js/widgets/phrasemaker.js:5356 +#: js/widgets/rhythmruler.js:2254 +#: js/widgets/rhythmruler.js:2472 msgid "New action block generated!" msgstr "" -#: js/oscilloscope.js:79 -msgid "Zoom In" -msgstr "" - -#: js/oscilloscope.js:88 -msgid "Zoom Out" -msgstr "" - -#: js/pitchstaircase.js:624 -msgid "Play chord" -msgstr "" - -#: js/pitchstaircase.js:632 -msgid "Play scale" +#: js/widgets/meterwidget.js:275 +msgid "Reset" msgstr "" -#: js/pitchstaircase.js:696 -msgid "Click on a note to create a new step." +#: js/widgets/meterwidget.js:301 +msgid "Click in the circle to select strong beats for the meter." msgstr "" -#: js/phrasemaker.js:363 -msgid "Export" +#: js/widgets/oscilloscope.js:79 +msgid "Zoom In" msgstr "" -#: js/phrasemaker.js:370 -msgid "Sort" +#: js/widgets/oscilloscope.js:88 +msgid "Zoom Out" msgstr "" -#: js/phrasemaker.js:373 -#: js/musickeyboard.js:559 -msgid "Add note" +#: js/widgets/pitchdrummatrix.js:356 +#: js/widgets/pitchdrummatrix.js:752 +msgid "Click in the grid to map notes to drums." msgstr "" -#: js/phrasemaker.js:764 -msgid "Click on the table to add notes." +#: js/widgets/pitchslider.js:103 +msgid "Move up" msgstr "" -#: js/phrasemaker.js:2414 -#: js/phrasemaker.js:2543 -msgid "tuplet value" +#: js/widgets/pitchslider.js:114 +msgid "Move down" msgstr "" -#: js/pitchdrummatrix.js:270 -#: js/pitchdrummatrix.js:639 -msgid "Click in the grid to map notes to drums." +#: js/widgets/pitchslider.js:136 +msgid "Click on the slider to create a note block." msgstr "" -#: js/pitchslider.js:103 -msgid "Move up" +#: js/widgets/pitchstaircase.js:624 +msgid "Play chord" msgstr "" -#: js/pitchslider.js:114 -msgid "Move down" +#: js/widgets/pitchstaircase.js:632 +msgid "Play scale" msgstr "" -#: js/pitchslider.js:136 -msgid "Click on the slider to create a note block." +#: js/widgets/pitchstaircase.js:696 +msgid "Click on a note to create a new step." msgstr "" -#: js/temperament.js:215 +#: js/widgets/temperament.js:321 msgid "back to 2:1 octave space" msgstr "" -#: js/temperament.js:323 +#: js/widgets/temperament.js:447 msgid "edit" msgstr "" -#: js/temperament.js:330 -#: js/temperament.js:332 -#: js/temperament.js:1336 -#: js/temperament.js:1338 +#: js/widgets/temperament.js:454 +#: js/widgets/temperament.js:456 +#: js/widgets/temperament.js:1493 +#: js/widgets/temperament.js:1495 msgid "close" msgstr "" -#: js/temperament.js:423 -#: js/temperament.js:736 -#: js/temperament.js:743 -#: js/temperament.js:845 -#: js/temperament.js:935 -#: js/temperament.js:942 -#: js/temperament.js:1015 -#: js/temperament.js:1284 -#: js/temperament.js:1354 -#: js/temperament.js:1430 +#: js/widgets/temperament.js:552 +#: js/widgets/temperament.js:877 +#: js/widgets/temperament.js:884 +#: js/widgets/temperament.js:986 +#: js/widgets/temperament.js:1080 +#: js/widgets/temperament.js:1087 +#: js/widgets/temperament.js:1160 +#: js/widgets/temperament.js:1433 +#: js/widgets/temperament.js:1511 +#: js/widgets/temperament.js:1596 msgid "done" msgstr "" -#: js/temperament.js:477 -#: js/temperament.js:482 -#: js/temperament.js:918 +#: js/widgets/temperament.js:610 +#: js/widgets/temperament.js:615 +#: js/widgets/temperament.js:1063 msgid "ratio" msgstr "" -#: js/temperament.js:483 +#: js/widgets/temperament.js:616 msgid "interval" msgstr "" -#: js/temperament.js:611 +#: js/widgets/temperament.js:744 msgid "non scalar" msgstr "" -#: js/temperament.js:650 +#: js/widgets/temperament.js:787 msgid "ratios" msgstr "" -#: js/temperament.js:650 +#: js/widgets/temperament.js:787 msgid "arbitrary" msgstr "" -#: js/temperament.js:719 +#: js/widgets/temperament.js:860 msgid "number of divisions" msgstr "" -#: js/temperament.js:741 -#: js/temperament.js:858 -#: js/temperament.js:940 -#: js/temperament.js:1033 +#: js/widgets/temperament.js:882 +#: js/widgets/temperament.js:999 +#: js/widgets/temperament.js:1085 +#: js/widgets/temperament.js:1178 msgid "preview" msgstr "" -#: js/temperament.js:788 +#: js/widgets/temperament.js:929 msgid "The Number of divisions is too large." msgstr "" -#: js/temperament.js:921 +#: js/widgets/temperament.js:1066 msgid "recursion" msgstr "" -#: js/temperament.js:1450 +#: js/widgets/temperament.js:1616 msgid "The octave ratio has changed. This changes temperament significantly." msgstr "" -#: js/temperament.js:2087 +#: js/widgets/temperament.js:2248 msgid "Table" msgstr "" -#: js/temperament.js:2185 +#: js/widgets/temperament.js:2356 msgid "Add pitches" msgstr "" -#: js/musickeyboard.js:570 -msgid "Metronome" +#: js/widgets/tempo.js:78 +#: js/widgets/tempo.js:97 +#: js/widgets/tempo.js:99 +#: js/widgets/aiwidget.js:134 +#: js/widgets/aiwidget.js:136 +#: js/widgets/rhythmruler.js:681 +#: js/widgets/rhythmruler.js:683 +#: js/widgets/rhythmruler.js:1864 +#: js/widgets/rhythmruler.js:1866 +#: js/widgets/sampler.js:180 +#: js/widgets/sampler.js:182 +msgid "Pause" msgstr "" -#: js/musickeyboard.js:1296 -#: plugins/rodi.rtp:193 -msgid "duration" +#: js/widgets/tempo.js:113 +msgid "Save tempo" msgstr "" -#: js/musickeyboard.js:2840 -msgid "New action blocks generated!" +#: js/widgets/tempo.js:144 +msgid "speed up" msgstr "" -#: js/musickeyboard.js:2841 -msgid "New action block generated" +#: js/widgets/tempo.js:150 +msgid "slow down" msgstr "" -#: js/musickeyboard.js:2984 -#: js/musickeyboard.js:2992 -msgid "MIDI device present." +#: js/widgets/tempo.js:194 +msgid "Adjust the tempo with the buttons." msgstr "" -#: js/musickeyboard.js:2995 -msgid "No MIDI device found." +#: js/widgets/tempo.js:261 +msgid "Please enter a number between 30 and 1000" msgstr "" -#: js/musickeyboard.js:3000 -msgid "Failed to get MIDI access in browser." +#: js/widgets/tempo.js:268 +#: js/widgets/tempo.js:271 +msgid "The beats per minute must be between 30 and 1000." msgstr "" -#: js/rhythmruler.js:202 -msgid "Save rhythms" +#: js/widgets/tempo.js:287 +msgid "The beats per minute must be below 1000." msgstr "" -#: js/rhythmruler.js:222 -msgid "Save drum machine" +#: js/widgets/tempo.js:303 +msgid "The beats per minute must be above 30" msgstr "" -#: js/rhythmruler.js:263 -#.TRANS: user can tap out a rhythm by clicking on a ruler. -msgid "Tap a rhythm" +#: js/widgets/timbre.js:766 +msgid "Synthesizer" msgstr "" -#: js/rhythmruler.js:342 -#: js/rhythmruler.js:344 -#: js/rhythmruler.js:1481 -#: js/rhythmruler.js:1483 -#: js/sampler.js:110 -#: js/sampler.js:112 -#: js/tempo.js:78 -#: js/tempo.js:97 -#: js/tempo.js:99 -msgid "Pause" +#: js/widgets/timbre.js:789 +msgid "Oscillator" msgstr "" -#: js/rhythmruler.js:478 -msgid "Click on the ruler to divide it." +#: js/widgets/timbre.js:840 +msgid "Envelope" msgstr "" -#: js/rhythmruler.js:603 -#: js/rhythmruler.js:605 -#: js/rhythmruler.js:804 -#: js/rhythmruler.js:806 -#: js/rhythmruler.js:1386 -#: js/rhythmruler.js:1388 -msgid "tap a rhythm" +#: js/widgets/timbre.js:886 +#: planet/js/GlobalTag.js:50 +#.TRANS: On the Planet, we use labels to tag projects. +msgid "Effects" msgstr "" -#: js/rhythmruler.js:1084 -msgid "Maximum value of 256 has been exceeded." +#: js/widgets/timbre.js:904 +msgid "Filter" msgstr "" -#: js/sampler.js:137 -msgid "Warning: Sample is bigger than 1MB." +#: js/widgets/timbre.js:946 +msgid "Add filter" msgstr "" -#: js/sampler.js:142 -msgid "Upload failed: Sample is not a .wav file." +#: js/widgets/timbre.js:987 +msgid "Click on buttons to open the timbre design tools." msgstr "" -#: js/sampler.js:164 -msgid "A new sample block was generated." +#: js/widgets/timbre.js:1273 +msgid "harmonicity" msgstr "" -#: js/sampler.js:255 -msgid "Upload sample" +#: js/widgets/timbre.js:1340 +#: js/widgets/timbre.js:1406 +msgid "modulation index" msgstr "" -#: js/sampler.js:306 -msgid "Save sample" +#: js/widgets/timbre.js:1484 +msgid "vibrato amount" msgstr "" -#: js/sampler.js:697 -#.TRANS: The reference tone is a sound used for comparison. -msgid "reference tone" +#: js/widgets/timbre.js:1919 +msgid "Filter already present." msgstr "" -#: js/tempo.js:113 -msgid "Save tempo" +#: js/widgets/timbre.js:2322 +msgid "delay (MS)" msgstr "" -#: js/tempo.js:144 -msgid "speed up" +#: js/widgets/timbre.js:2507 +msgid "distortion amount" msgstr "" -#: js/tempo.js:150 -msgid "slow down" +#: js/widgets/aiwidget.js:180 +#: js/widgets/sampler.js:227 +msgid "Warning: Sample is bigger than 1MB." msgstr "" -#: js/tempo.js:194 -msgid "Adjust the tempo with the buttons." +#: js/widgets/aiwidget.js:539 +msgid "New start block generated" msgstr "" -#: js/tempo.js:261 -msgid "Please enter a number between 30 and 1000" +#: js/widgets/aiwidget.js:541 +msgid "MIDI loading. This may take some time depending upon the number of notes in the track" msgstr "" -#: js/tempo.js:268 -#: js/tempo.js:271 -msgid "The beats per minute must be between 30 and 1000." +#: js/widgets/aiwidget.js:551 +#: js/widgets/sampler.js:254 +msgid "Upload failed: Sample is not a .wav file." msgstr "" -#: js/tempo.js:287 -msgid "The beats per minute must be below 1000." +#: js/widgets/aiwidget.js:679 +#: js/widgets/sampler.js:432 +msgid "Save sample" msgstr "" -#: js/tempo.js:303 -msgid "The beats per minute must be above 30" +#: js/widgets/aiwidget.js:701 +msgid "AI Music" msgstr "" -#: js/timbre.js:766 -msgid "Synthesizer" +#: js/widgets/arpeggio.js:239 +msgid "Click in the grid to add steps to the arpeggio." msgstr "" -#: js/timbre.js:789 -msgid "Oscillator" +#: js/widgets/help.js:95 +#: js/widgets/help.js:125 +#: js/widgets/help.js:146 +#: js/widgets/help.js:158 +#: js/widgets/help.js:376 +#: js/widgets/help.js:391 +msgid "Take a tour" msgstr "" -#: js/timbre.js:840 -msgid "Envelope" +#: js/widgets/musickeyboard.js:725 +#: js/widgets/phrasemaker.js:584 +msgid "Add note" msgstr "" -#: js/timbre.js:886 -#: js/GlobalTag.js:50 -#.TRANS: On the Planet, we use labels to tag projects. -msgid "Effects" +#: js/widgets/musickeyboard.js:744 +msgid "Metronome" +msgstr "" + +#: js/widgets/musickeyboard.js:1549 +#: plugins/rodi.rtp:193 +msgid "duration" +msgstr "" + +#: js/widgets/musickeyboard.js:3179 +msgid "New action blocks generated" +msgstr "" + +#: js/widgets/musickeyboard.js:3180 +msgid "New action block generated" msgstr "" -#: js/timbre.js:904 -msgid "Filter" +#: js/widgets/musickeyboard.js:3365 +#: js/widgets/musickeyboard.js:3373 +msgid "MIDI device present." msgstr "" -#: js/timbre.js:946 -msgid "Add filter" +#: js/widgets/musickeyboard.js:3376 +msgid "No MIDI device found." msgstr "" -#: js/timbre.js:987 -msgid "Click on buttons to open the timbre design tools." +#: js/widgets/musickeyboard.js:3386 +msgid "Failed to get MIDI access in browser." msgstr "" -#: js/timbre.js:1273 -msgid "harmonicity" +#: js/widgets/phrasemaker.js:574 +msgid "Export" msgstr "" -#: js/timbre.js:1340 -#: js/timbre.js:1406 -msgid "modulation index" +#: js/widgets/phrasemaker.js:581 +msgid "Sort" msgstr "" -#: js/timbre.js:1484 -msgid "vibrato amount" +#: js/widgets/phrasemaker.js:975 +msgid "Click on the table to add notes." msgstr "" -#: js/timbre.js:1919 -msgid "Filter already present." +#: js/widgets/phrasemaker.js:2677 +#: js/widgets/phrasemaker.js:2819 +msgid "tuplet value" msgstr "" -#: js/timbre.js:2322 -msgid "delay (MS)" +#: js/widgets/rhythmruler.js:486 +msgid "Save rhythms" msgstr "" -#: js/timbre.js:2507 -msgid "distortion amount" +#: js/widgets/rhythmruler.js:512 +msgid "Save drum machine" msgstr "" -#: js/meterwidget.js:170 -msgid "Reset" +#: js/widgets/rhythmruler.js:589 +#.TRANS: user can tap out a rhythm by clicking on a ruler. +msgid "Tap a rhythm" msgstr "" -#: js/meterwidget.js:196 -msgid "Click in the circle to select strong beats for the meter." +#: js/widgets/rhythmruler.js:817 +msgid "Click on the ruler to divide it." msgstr "" -#: js/arpeggio.js:239 -msgid "Click in the grid to add steps to the arpeggio." +#: js/widgets/rhythmruler.js:950 +#: js/widgets/rhythmruler.js:952 +#: js/widgets/rhythmruler.js:1152 +#: js/widgets/rhythmruler.js:1154 +#: js/widgets/rhythmruler.js:1765 +#: js/widgets/rhythmruler.js:1767 +msgid "tap a rhythm" msgstr "" -#: js/ProjectStorage.js:243 -msgid "anonymous" +#: js/widgets/rhythmruler.js:1459 +msgid "Maximum value of 256 has been exceeded." msgstr "" -#: js/GlobalCard.js:68 -msgid "Share" +#: js/widgets/sampler.js:237 +msgid "Recording started..." msgstr "" -#: js/GlobalCard.js:74 -msgid "Flags" +#: js/widgets/sampler.js:245 +msgid "Recording complete..." msgstr "" -#: js/LocalCard.js:36 -msgid "View published project" +#: js/widgets/sampler.js:283 +msgid "A new sample block was generated." msgstr "" -#: js/LocalCard.js:42 -msgid "Publish project" +#: js/widgets/sampler.js:378 +msgid "Upload sample" msgstr "" -#: js/LocalCard.js:51 -msgid "Edit project" +#: js/widgets/sampler.js:399 +msgid "Warning: Your sample cannot be loaded because it is >1MB." msgstr "" -#: js/LocalCard.js:52 -msgid "Delete project" +#: js/widgets/sampler.js:448 +msgid "Toggle Mic" msgstr "" -#: js/LocalCard.js:53 -msgid "Download project" +#: js/widgets/sampler.js:458 +msgid "Playback" msgstr "" -#: js/LocalCard.js:55 -msgid "Duplicate project" +#: js/widgets/sampler.js:979 +#.TRANS: The reference tone is a sound used for comparison. +msgid "reference tone" msgstr "" -#: js/GlobalTag.js:28 +#: planet/js/GlobalTag.js:28 #.TRANS: On the Planet, we use labels to tag projects. msgid "All Projects" msgstr "" -#: js/GlobalTag.js:30 -#: js/StringHelper.js:37 +#: planet/js/GlobalTag.js:30 +#: planet/js/StringHelper.js:37 #.TRANS: On the Planet, we use labels to tag projects. msgid "My Projects" msgstr "" -#: js/GlobalTag.js:32 +#: planet/js/GlobalTag.js:32 #.TRANS: On the Planet, we use labels to tag projects. msgid "Examples" msgstr "" -#: js/GlobalTag.js:34 +#: planet/js/GlobalTag.js:34 #.TRANS: On the Planet, we use labels to tag projects. msgid "Music" msgstr "" -#: js/GlobalTag.js:36 +#: planet/js/GlobalTag.js:36 #.TRANS: On the Planet, we use labels to tag projects. msgid "Art" msgstr "" -#: js/GlobalTag.js:38 +#: planet/js/GlobalTag.js:38 #.TRANS: On the Planet, we use labels to tag projects. msgid "Math" msgstr "" -#: js/GlobalTag.js:40 +#: planet/js/GlobalTag.js:40 #.TRANS: On the Planet, we use labels to tag projects. msgid "Interactive" msgstr "" -#: js/GlobalTag.js:42 +#: planet/js/GlobalTag.js:42 #.TRANS: On the Planet, we use labels to tag projects. msgid "Design" msgstr "" -#: js/GlobalTag.js:44 +#: planet/js/GlobalTag.js:44 #.TRANS: On the Planet, we use labels to tag projects. msgid "Game" msgstr "" -#: js/GlobalTag.js:46 +#: planet/js/GlobalTag.js:46 #.TRANS: On the Planet, we use labels to tag projects. msgid "Media" msgstr "" -#: js/GlobalTag.js:48 +#: planet/js/GlobalTag.js:48 #.TRANS: On the Planet, we use labels to tag projects. msgid "Sensors" msgstr "" -#: js/GlobalTag.js:52 +#: planet/js/GlobalTag.js:52 #.TRANS: On the Planet, we use labels to tag projects. msgid "Code Snippet" msgstr "" -#: js/helper.js:149 -#: js/StringHelper.js:49 -msgid "Show more tags" +#: planet/js/LocalCard.js:36 +msgid "View published project" msgstr "" -#: js/helper.js:150 -msgid "Show fewer tags" +#: planet/js/LocalCard.js:42 +msgid "Publish project" +msgstr "" + +#: planet/js/LocalCard.js:51 +msgid "Edit project" +msgstr "" + +#: planet/js/LocalCard.js:52 +msgid "Delete project" +msgstr "" + +#: planet/js/LocalCard.js:53 +msgid "Download project" +msgstr "" + +#: planet/js/LocalCard.js:55 +msgid "Duplicate project" +msgstr "" + +#: planet/js/ProjectStorage.js:243 +msgid "anonymous" +msgstr "" + +#: planet/js/SaveInterface.js:34 +msgid "Open in Music Blocks" +msgstr "" + +#: planet/js/SaveInterface.js:35 +msgid "Open in Turtle Blocks" +msgstr "" + +#: planet/js/GlobalCard.js:68 +msgid "Share" +msgstr "" + +#: planet/js/GlobalCard.js:74 +msgid "Flags" +msgstr "" + +#: planet/js/GlobalPlanet.js:35 +msgid "No results found." +msgstr "" + +#: planet/js/GlobalPlanet.js:51 +msgid "Remix of" +msgstr "" + +#: planet/js/GlobalPlanet.js:509 +msgid "Cannot connect to server" msgstr "" -#: js/ProjectViewer.js:30 +#: planet/js/ProjectViewer.js:30 msgid "Error: Report could not be submitted. Try again later." msgstr "" -#: js/ProjectViewer.js:31 +#: planet/js/ProjectViewer.js:31 msgid "Thank you for reporting this project. A moderator will review the project shortly, to verify violation of the Sugar Labs Code of Conduct." msgstr "" -#: js/ProjectViewer.js:32 -#: js/StringHelper.js:62 -#: js/StringHelper.js:64 -#: js/StringHelper.js:68 +#: planet/js/ProjectViewer.js:32 +#: planet/js/StringHelper.js:62 +#: planet/js/StringHelper.js:64 +#: planet/js/StringHelper.js:68 msgid "Report Project" msgstr "" -#: js/ProjectViewer.js:33 -#: js/StringHelper.js:63 +#: planet/js/ProjectViewer.js:33 +#: planet/js/StringHelper.js:63 msgid "Project Reported" msgstr "" -#: js/ProjectViewer.js:34 +#: planet/js/ProjectViewer.js:34 msgid "Report description required" msgstr "" -#: js/ProjectViewer.js:35 +#: planet/js/ProjectViewer.js:35 msgid "Report description too long" msgstr "" -#: js/StringHelper.js:30 +#: planet/js/Publisher.js:30 +msgid "Feature unavailable - cannot connect to server. Reload Music Blocks to try again." +msgstr "" + +#: planet/js/Publisher.js:220 +#: planet/js/Publisher.js:237 +msgid "This field is required" +msgstr "" + +#: planet/js/Publisher.js:227 +msgid "Title too long" +msgstr "" + +#: planet/js/Publisher.js:244 +msgid "Description too long" +msgstr "" + +#: planet/js/Publisher.js:341 +msgid "Server Error" +msgstr "" + +#: planet/js/Publisher.js:341 +msgid "Try Again" +msgstr "" + +#: planet/js/StringHelper.js:30 msgid "Planet" msgstr "" -#: js/StringHelper.js:31 +#: planet/js/StringHelper.js:31 msgid "Close Planet" msgstr "" -#: js/StringHelper.js:32 +#: planet/js/StringHelper.js:32 msgid "Open project from file" msgstr "" -#: js/StringHelper.js:34 +#: planet/js/StringHelper.js:34 msgid "Local" msgstr "" -#: js/StringHelper.js:35 +#: planet/js/StringHelper.js:35 msgid "Global" msgstr "" -#: js/StringHelper.js:36 +#: planet/js/StringHelper.js:36 msgid "Search for a project" msgstr "" -#: js/StringHelper.js:38 +#: planet/js/StringHelper.js:38 msgid "Publish Project" msgstr "" -#: js/StringHelper.js:40 +#: planet/js/StringHelper.js:40 msgid "Tags (max 5)" msgstr "" -#: js/StringHelper.js:41 -#: js/StringHelper.js:61 +#: planet/js/StringHelper.js:41 +#: planet/js/StringHelper.js:61 msgid "Description" msgstr "" -#: js/StringHelper.js:42 -#: js/StringHelper.js:67 +#: planet/js/StringHelper.js:42 +#: planet/js/StringHelper.js:67 msgid "Submit" msgstr "" -#: js/StringHelper.js:43 -#: js/StringHelper.js:47 +#: planet/js/StringHelper.js:43 +#: planet/js/StringHelper.js:47 msgid "Cancel" msgstr "" -#: js/StringHelper.js:44 +#: planet/js/StringHelper.js:44 msgid "Delete \\"\\"?" msgstr "" -#: js/StringHelper.js:45 +#: planet/js/StringHelper.js:45 msgid "Permanently delete project \\"\\"?" msgstr "" -#: js/StringHelper.js:48 +#: planet/js/StringHelper.js:48 msgid "Explore Projects" msgstr "" -#: js/StringHelper.js:50 +#: planet/js/StringHelper.js:49 +#: planet/js/helper.js:149 +msgid "Show more tags" +msgstr "" + +#: planet/js/StringHelper.js:50 msgid "Most recent" msgstr "" -#: js/StringHelper.js:51 +#: planet/js/StringHelper.js:51 msgid "Most liked" msgstr "" -#: js/StringHelper.js:52 +#: planet/js/StringHelper.js:52 msgid "Most downloaded" msgstr "" -#: js/StringHelper.js:53 +#: planet/js/StringHelper.js:53 msgid "A-Z" msgstr "" -#: js/StringHelper.js:54 +#: planet/js/StringHelper.js:54 msgid "Sort by" msgstr "" -#: js/StringHelper.js:55 +#: planet/js/StringHelper.js:55 msgid "Load More Projects" msgstr "" -#: js/StringHelper.js:56 +#: planet/js/StringHelper.js:56 msgid "Last Updated" msgstr "" -#: js/StringHelper.js:57 +#: planet/js/StringHelper.js:57 msgid "Creation Date" msgstr "" -#: js/StringHelper.js:58 +#: planet/js/StringHelper.js:58 msgid "Number of Downloads:" msgstr "" -#: js/StringHelper.js:59 +#: planet/js/StringHelper.js:59 msgid "Number of Likes:" msgstr "" -#: js/StringHelper.js:60 +#: planet/js/StringHelper.js:60 msgid "Tags:" msgstr "" -#: js/StringHelper.js:65 +#: planet/js/StringHelper.js:65 msgid "Report projects which violate the Sugar Labs Code of Conduct." msgstr "" -#: js/StringHelper.js:66 +#: planet/js/StringHelper.js:66 msgid "Reason for reporting project" msgstr "" -#: js/StringHelper.js:70 +#: planet/js/StringHelper.js:70 msgid "Download as File" msgstr "" -#: js/GlobalPlanet.js:35 -msgid "No results found." -msgstr "" - -#: js/GlobalPlanet.js:51 -msgid "Remix of" -msgstr "" - -#: js/GlobalPlanet.js:509 -msgid "Cannot connect to server" -msgstr "" - -#: js/Publisher.js:30 -msgid "Feature unavailable - cannot connect to server. Reload Music Blocks to try again." -msgstr "" - -#: js/Publisher.js:218 -#: js/Publisher.js:235 -msgid "This field is required" -msgstr "" - -#: js/Publisher.js:225 -msgid "Title too long" +#: planet/js/helper.js:150 +msgid "Show fewer tags" msgstr "" -#: js/Publisher.js:242 -msgid "Description too long" +#: plugins/accelerometer.rtp:48 +msgid "motion x" msgstr "" -#: js/Publisher.js:339 -msgid "Server Error" +#: plugins/accelerometer.rtp:56 +msgid "motion y" msgstr "" -#: js/Publisher.js:339 -msgid "Try Again" +#: plugins/accelerometer.rtp:64 +msgid "motion z" msgstr "" -#: js/SaveInterface.js:34 -msgid "Open in Music Blocks" +#: plugins/facebook.rtp:27 +msgid "publish" msgstr "" -#: js/SaveInterface.js:35 -msgid "Open in Turtle Blocks" +#: plugins/maths.rtp:62 +msgid "power" msgstr "" -#: plugins/weather.rtp:68 -#: plugins/weather.rtp:97 -msgid "Days ahead must be in the range of -1 to 5." +#: plugins/maths.rtp:62 +msgid "base" msgstr "" -#: plugins/weather.rtp:122 -msgid "forecast" +#: plugins/maths.rtp:62 +msgid "exp" msgstr "" -#: plugins/weather.rtp:123 -#: plugins/weather.rtp:137 -#: plugins/weather.rtp:150 -msgid "city" +#: plugins/maths.rtp:99 +msgid "floor" msgstr "" -#: plugins/weather.rtp:124 -#: plugins/weather.rtp:138 -#: plugins/weather.rtp:151 -msgid "day" +#: plugins/maths.rtp:104 +msgid "ceiling" msgstr "" -#: plugins/weather.rtp:136 -msgid "high" +#: plugins/maths.rtp:109 +msgid "to degrees" msgstr "" -#: plugins/weather.rtp:149 -msgid "low" +#: plugins/maths.rtp:114 +msgid "to radians" msgstr "" #: plugins/nutrition.rtp:104 @@ -9458,45 +9867,6 @@ msgstr "" msgid "water" msgstr "" -#: plugins/maths.rtp:62 -#: plugins/examples.rtp:93 -msgid "power" -msgstr "" - -#: plugins/maths.rtp:62 -#: plugins/examples.rtp:93 -msgid "base" -msgstr "" - -#: plugins/maths.rtp:62 -#: plugins/examples.rtp:93 -msgid "exp" -msgstr "" - -#: plugins/maths.rtp:99 -#: plugins/examples.rtp:130 -msgid "floor" -msgstr "" - -#: plugins/maths.rtp:104 -#: plugins/examples.rtp:135 -msgid "ceiling" -msgstr "" - -#: plugins/maths.rtp:109 -#: plugins/examples.rtp:140 -msgid "to degrees" -msgstr "" - -#: plugins/maths.rtp:114 -#: plugins/examples.rtp:145 -msgid "to radians" -msgstr "" - -#: plugins/facebook.rtp:27 -msgid "publish" -msgstr "" - #: plugins/rodi.rtp:172 msgid "blink" msgstr "" @@ -9525,18 +9895,66 @@ msgstr "" msgid "move" msgstr "" -#: plugins/accelerometer.rtp:48 -msgid "motion x" +#: plugins/weather.rtp:68 +#: plugins/weather.rtp:97 +msgid "Days ahead must be in the range of -1 to 5." msgstr "" -#: plugins/accelerometer.rtp:56 -msgid "motion y" +#: plugins/weather.rtp:122 +msgid "forecast" msgstr "" -#: plugins/accelerometer.rtp:64 -msgid "motion z" +#: plugins/weather.rtp:123 +#: plugins/weather.rtp:137 +#: plugins/weather.rtp:150 +msgid "city" +msgstr "" + +#: plugins/weather.rtp:124 +#: plugins/weather.rtp:138 +#: plugins/weather.rtp:151 +msgid "day" +msgstr "" + +#: plugins/weather.rtp:136 +msgid "high" +msgstr "" + +#: plugins/weather.rtp:149 +msgid "low" msgstr "" +#: js/toolbar.js:70 + +#: js/toolbar.js:130 + +#: js/toolbar.js:194 + +#: js/toolbar.js:249 + +#~msgid "Toggle JavaScript Editor" +#~msgstr "" + +#: js/EnsembleBlocks.js:643 + +#~msgid "The Turrle pitch block returns the current pitch number being played by the specified turtle." +#~msgstr "" + +#: js/PitchActions.js:88 + +#~msgid "The Scalar Step Block must be used inside of a Note Block." +#~msgstr "" + +#: js/PitchActions.js:107 + +#~msgid "The Scalar Step Block must be preceded by a Pitch Block." +#~msgstr "" + +#: js/musickeyboard.js:2840 + +#~msgid "New action blocks generated!" +#~msgstr "" + #: js/toolbar.js:110 #: js/toolbar.js:204 @@ -9877,11 +10295,6 @@ msgstr "" #~msgid "The Time block returns the number of seconds that the program has been running." #~msgstr "" -#: js/help.js:95 - -#~msgid "Take a tour" -#~msgstr "" - #: js/GlobalCard.js:48 #~msgid "More Details" @@ -12780,11 +13193,6 @@ msgstr "" #~msgid "The save-stack button saves a stack onto a custom palette. It appears after a \"long press\" on a stack." #~msgstr "" -#: js/musicutils.js:254 - -#~msgid "Custom" -#~msgstr "" - #: js/basicblocks.js:4785 #~msgid "Rhythm" diff --git a/po/br.po b/po/br.po index a268ad0b09..c5a5e0b9c6 100644 --- a/po/br.po +++ b/po/br.po @@ -2128,276 +2128,131 @@ #: js/planetInterface.js:104 #: js/planetInterface.js:104 #: js/planetInterface.js:104 -msgid "project undefined" -msgstr "" - -#: js/logo.js:61 -msgid "Not a valid pitch name" -msgstr "" - -#: js/logo.js:507 -#: js/ProgramBlocks.js:258 -#: js/ProgramBlocks.js:427 -msgid "You must select a file." -msgstr "" - -#: js/logo.js:1184 -#: js/turtles.js:118 -#: js/turtle-painter.js:1192 -#: js/turtle-painter.js:1193 -#: js/block.js:1463 -#: js/lilypond.js:757 -#: js/lilypond.js:921 -#: js/lilypond.js:959 -#: js/ActionBlocks.js:1223 -#: js/ProgramBlocks.js:1267 -msgid "start" -msgstr "" - -#: js/logo.js:1696 -msgid "Playback is ready." -msgstr "" - -#: js/blocks.js:1011 -#: js/blocks.js:3427 -#: js/blocks.js:3428 -#: js/blocks.js:3653 -#: js/blocks.js:4012 -#: js/blocks.js:4205 -#: js/blocks.js:5343 -#: js/blocks.js:6474 -#: js/palette.js:527 -#: js/palette.js:536 -#: js/palette.js:545 -#: js/palette.js:554 -#: js/palette.js:1131 -#: js/palette.js:1142 -#: js/palette.js:1153 -#: js/palette.js:1164 -#: js/palette.js:1183 -#: js/rubrics.js:529 -#: js/macros.js:170 -#: js/macros.js:266 -#: js/macros.js:267 -#: js/macros.js:276 -#: js/macros.js:828 -#: js/block.js:1449 -#: js/block.js:4164 -#: js/block.js:4182 -#: js/block.js:4193 -#: js/turtledefs.js:128 -#: js/turtledefs.js:230 -#: js/ActionBlocks.js:254 -#: js/ActionBlocks.js:307 -#: js/ActionBlocks.js:617 -#: js/ActionBlocks.js:716 -#: js/ActionBlocks.js:961 -#: js/ActionBlocks.js:1049 -#: js/ActionBlocks.js:1322 -#: js/ActionBlocks.js:1325 -#: js/ActionBlocks.js:1337 -#: js/ActionBlocks.js:1404 -#: js/MeterBlocks.js:715 -#: js/MeterBlocks.js:768 -#: js/MeterBlocks.js:831 -#: js/MeterBlocks.js:892 -#: js/phrasemaker.js:4412 -#: js/musickeyboard.js:2647 -#: js/rhythmruler.js:1928 -#: js/rhythmruler.js:1935 -#: js/rhythmruler.js:2119 -#: js/rhythmruler.js:2126 -msgid "action" -msgstr "" - -#: js/blocks.js:1205 -#: js/blocks.js:3380 -#: js/blocks.js:3770 -#: js/blocks.js:3801 -#: js/blocks.js:3850 -#: js/blocks.js:3885 -#: js/blocks.js:6497 -#: js/palette.js:509 -#: js/palette.js:638 -#: js/palette.js:1107 -#: js/BoxesBlocks.js:282 -#: js/BoxesBlocks.js:285 -#: js/BoxesBlocks.js:405 -#: js/BoxesBlocks.js:594 -msgid "box" -msgstr "" - -#: js/blocks.js:1680 -msgid "Consider breaking this stack into parts." +#: js/SaveInterface.js:59 +#: js/SaveInterface.js:61 +#: js/SaveInterface.js:93 +msgid "Music Blocks Project" msgstr "" -#: js/blocks.js:2408 -#: js/palette.js:653 -#: js/MediaBlocks.js:602 -msgid "open file" +#: js/SaveInterface.js:63 +msgid "This project was created in Music Blocks" msgstr "" -#: js/blocks.js:2415 -#: js/blocks.js:2423 -#: js/activity.js:1875 -msgid "audio file" +#: js/SaveInterface.js:67 +msgid "Music Blocks is a Free/Libre Software application." msgstr "" -#: js/blocks.js:2536 -#: js/blocks.js:3147 -#: js/block.js:3543 -msgid "on2" +#: js/SaveInterface.js:69 +msgid "The source code can be accessed at" msgstr "" -#: js/blocks.js:2538 -#: js/blocks.js:3149 -#: js/block.js:3545 -msgid "off" +#: js/SaveInterface.js:72 +msgid "For more information, please consult the" msgstr "" -#: js/blocks.js:2543 -#: js/blocks.js:3154 -#: js/palette.js:618 -#: js/block.js:3466 -#: js/BooleanBlocks.js:77 -#: js/BooleanBlocks.js:167 -#: js/BooleanBlocks.js:251 -#: js/BooleanBlocks.js:335 -#: js/BooleanBlocks.js:433 -#: js/BooleanBlocks.js:539 -#: js/BooleanBlocks.js:640 -#: js/BooleanBlocks.js:741 -#: js/BooleanBlocks.js:847 -#: js/BooleanBlocks.js:948 -#: js/BooleanBlocks.js:1033 -#: js/SensorsBlocks.js:910 -msgid "true" +#: js/SaveInterface.js:76 +#: js/turtledefs.js:795 +msgid "Music Blocks Guide" msgstr "" -#: js/blocks.js:2545 -#: js/blocks.js:3156 -#: js/block.js:3466 -#: js/BooleanBlocks.js:79 -#: js/BooleanBlocks.js:169 -#: js/BooleanBlocks.js:253 -#: js/BooleanBlocks.js:337 -#: js/BooleanBlocks.js:435 -#: js/BooleanBlocks.js:541 -#: js/BooleanBlocks.js:642 -#: js/BooleanBlocks.js:743 -#: js/BooleanBlocks.js:849 -#: js/BooleanBlocks.js:950 -#: js/SensorsBlocks.js:912 -msgid "false" +#: js/SaveInterface.js:83 +msgid "Alternatively, open the file in Music Blocks using the Load project button." msgstr "" -#: js/blocks.js:3183 -#: js/palette.js:574 -#: js/MediaBlocks.js:892 -#: js/MediaBlocks.js:963 -msgid "text" +#: js/SaveInterface.js:85 +msgid "Project Code" msgstr "" -#: js/blocks.js:3379 -#: js/palette.js:641 -#: js/palette.js:642 -#: js/BoxesBlocks.js:514 -msgid "store in box" +#: js/SaveInterface.js:87 +msgid "This code stores data about the blocks in a project." msgstr "" -#: js/blocks.js:3384 -#: js/blocks.js:3824 -#: js/blocks.js:3859 -#: js/blocks.js:3894 -#: js/blocks.js:5773 -#: js/blocks.js:5794 -#: js/BoxesBlocks.js:772 -msgid "box1" +#: js/SaveInterface.js:89 +msgid "Show" msgstr "" -#: js/blocks.js:3386 -#: js/blocks.js:3826 -#: js/blocks.js:3861 -#: js/blocks.js:3896 -#: js/blocks.js:5775 -#: js/blocks.js:5796 -#: js/BoxesBlocks.js:663 -msgid "box2" +#: js/SaveInterface.js:91 +msgid "Hide" msgstr "" -#: js/blocks.js:4058 -#: js/palette.js:639 -#: js/palette.js:644 -#: js/palette.js:1043 -#: js/BoxesBlocks.js:591 -msgid "store in" +#: js/SaveInterface.js:131 +#: js/SaveInterface.js:204 +#: js/SaveInterface.js:262 +#: js/SaveInterface.js:389 +#: js/SaveInterface.js:417 +#: js/activity.js:4884 +#: planet/js/ProjectStorage.js:27 +#: planet/js/GlobalPlanet.js:467 +#: planet/js/GlobalPlanet.js:469 +#: planet/js/GlobalPlanet.js:495 +#.TRANS: default project title when saving as Lilypond +msgid "My Project" msgstr "" -#: js/blocks.js:4058 -#: js/EnsembleBlocks.js:391 -#: js/EnsembleBlocks.js:402 -#: js/MediaBlocks.js:746 -#: js/ProgramBlocks.js:390 -#: js/ProgramBlocks.js:495 -#: js/ProgramBlocks.js:658 -#: js/BoxesBlocks.js:595 -#: js/PitchBlocks.js:656 -#: js/PitchBlocks.js:932 -#: js/PitchBlocks.js:1827 -#: js/ToneBlocks.js:1025 -#: js/DictBlocks.js:215 -#: js/DictBlocks.js:289 -msgid "name" +#: js/SaveInterface.js:197 +#: planet/js/SaveInterface.js:58 +msgid "No description provided" msgstr "" -#: js/blocks.js:4058 -#: js/RhythmBlocks.js:1130 -#: js/BoxesBlocks.js:75 -#: js/BoxesBlocks.js:595 -#: js/HeapBlocks.js:544 -#: js/DictBlocks.js:289 -#: js/DictBlocks.js:430 -msgid "value" +#: js/SaveInterface.js:332 +msgid "Your recording is in progress." msgstr "" -#: js/blocks.js:4907 -msgid "There is no block selected." +#: js/SaveInterface.js:401 +#.TRANS: File name prompt for save as Lilypond +msgid "File name" msgstr "" -#: js/blocks.js:5002 -#: js/MediaBlocks.js:888 -msgid "show" +#: js/SaveInterface.js:403 +#: planet/js/StringHelper.js:39 +#.TRANS: Project title prompt for save as Lilypond +msgid "Project title" msgstr "" -#: js/blocks.js:5005 -#: js/MediaBlocks.js:803 -#.TRANS: Avatar is the image used to determine the appearance of the mouse. -msgid "avatar" +#: js/SaveInterface.js:405 +#.TRANS: Project title prompt for save as Lilypond +msgid "Project author" msgstr "" -#: js/blocks.js:5008 -#: js/ToneBlocks.js:1010 -#: js/sampler.js:693 -#.TRANS: The sound sample that the user uploads. -msgid "sample" +#: js/SaveInterface.js:407 +#.TRANS: MIDI prompt for save as Lilypond +msgid "Include MIDI output?" msgstr "" -#: js/turtles.js:874 -msgid "Grid" +#: js/SaveInterface.js:409 +#.TRANS: Guitar prompt for save as Lilypond +msgid "Include guitar tablature output?" msgstr "" -#: js/turtles.js:891 -#: js/turtledefs.js:626 -msgid "Clean" +#: js/SaveInterface.js:411 +#.TRANS: Lilypond is a scripting language for generating sheet music +msgid "Save as Lilypond" msgstr "" -#: js/turtles.js:912 -#: js/turtledefs.js:632 -msgid "Collapse" +#: js/SaveInterface.js:426 +#: js/blocks/EnsembleBlocks.js:75 +#: js/blocks/EnsembleBlocks.js:154 +#: js/blocks/EnsembleBlocks.js:216 +#: js/blocks/EnsembleBlocks.js:302 +#: js/blocks/EnsembleBlocks.js:348 +#: js/blocks/EnsembleBlocks.js:389 +#: js/blocks/EnsembleBlocks.js:441 +#: js/blocks/EnsembleBlocks.js:490 +#: js/blocks/EnsembleBlocks.js:536 +#: js/blocks/EnsembleBlocks.js:583 +#: js/blocks/EnsembleBlocks.js:637 +#: js/blocks/EnsembleBlocks.js:753 +#: js/blocks/EnsembleBlocks.js:840 +#: js/blocks/EnsembleBlocks.js:899 +#: js/blocks/EnsembleBlocks.js:942 +#: js/blocks/EnsembleBlocks.js:1212 +#: js/blocks/EnsembleBlocks.js:1280 +#.TRANS: default project author when saving as Lilypond +msgid "Mr. Mouse" msgstr "" -#: js/turtles.js:940 -msgid "Expand" +#: js/SaveInterface.js:573 +msgid "The Lilypond code is copied to clipboard. You can paste it here: " msgstr "" #: js/languagebox.js:198 @@ -2408,6933 +2263,7487 @@ msgstr "" msgid "Music Blocks is already set to this language." msgstr "" -#: js/piemenus.js:200 -#: js/musicutils.js:808 -#: js/musicutils.js:824 -#: js/phrasemaker.js:1672 -#: js/musickeyboard.js:2041 -#: js/sampler.js:544 -#.TRANS: double sharp is a music term related to pitch -msgid "double sharp" +#: js/planetInterface.js:131 +msgid "project undefined" msgstr "" -#: js/piemenus.js:201 -#: js/PitchBlocks.js:1510 -#: js/PitchActions.js:580 -#: js/musicutils.js:806 -#: js/musicutils.js:825 -#: js/phrasemaker.js:1673 -#: js/musickeyboard.js:2042 -#: js/sampler.js:545 -#.TRANS: sharp is a half-step up in pitch -#.TRANS: sharp is a music term related to pitch -msgid "sharp" +#: js/rubrics.js:523 +#: js/turtledefs.js:119 +#: js/turtledefs.js:221 +#: js/blocks/RhythmBlockPaletteBlocks.js:52 +#: js/blocks/RhythmBlockPaletteBlocks.js:234 +#: js/blocks/ProgramBlocks.js:745 +#: js/widgets/rhythmruler.js:2057 +#: js/widgets/rhythmruler.js:2064 +#: js/widgets/rhythmruler.js:2133 +#: js/widgets/rhythmruler.js:2140 +#: js/widgets/rhythmruler.js:2219 +#.TRANS: an arrangement of notes based on duration +msgid "rhythm" msgstr "" -#: js/piemenus.js:202 -#: js/musicutils.js:804 -#: js/musicutils.js:826 -#: js/phrasemaker.js:1674 -#: js/musickeyboard.js:2043 -#: js/sampler.js:546 -#.TRANS: natural is a music term related to pitch -msgid "natural" +#: js/rubrics.js:524 +#: js/turtledefs.js:121 +#: js/turtledefs.js:223 +#: js/block-verbose.js:2622 +#: js/block.js:2550 +#: js/blocks/IntervalsBlocks.js:63 +#: js/blocks/SensorsBlocks.js:178 +#: js/blocks/PitchBlocks.js:1839 +#: js/blocks/PitchBlocks.js:1853 +#: js/widgets/musickeyboard.js:1935 +#: js/widgets/phrasemaker.js:1036 +#.TRANS: pitch number +#.TRANS: pitch number +#.TRANS: we specify pitch in terms of a name and an octave. The name can be CDEFGAB or Do Re Mi Fa Sol La Ti. Octave is a number between 1 and 8. +msgid "pitch" msgstr "" -#: js/piemenus.js:203 -#: js/PitchBlocks.js:1469 -#: js/PitchActions.js:583 -#: js/musicutils.js:802 -#: js/musicutils.js:827 -#: js/phrasemaker.js:1675 -#: js/musickeyboard.js:2044 -#: js/sampler.js:547 -#.TRANS: flat is a half-step down in pitch -#.TRANS: flat is a music term related to pitch -msgid "flat" +#: js/rubrics.js:525 +#: js/turtledefs.js:123 +#: js/turtledefs.js:225 +msgid "tone" msgstr "" -#: js/piemenus.js:204 -#: js/musicutils.js:800 -#: js/musicutils.js:828 -#: js/phrasemaker.js:1676 -#: js/musickeyboard.js:2045 -#: js/sampler.js:548 -#.TRANS: double flat is a music term related to pitch -msgid "double flat" +#: js/rubrics.js:526 +#: js/lilypond.js:605 +#: js/lilypond.js:904 +#: js/lilypond.js:910 +#: js/lilypond.js:948 +msgid "mouse" msgstr "" -#: js/piemenus.js:2861 -#: js/PitchBlocks.js:1357 -#: js/musicutils.js:627 -#.TRANS: unison means the note is the same as the current note -#.TRANS: unison is a music term related to intervals -msgid "unison" +#: js/rubrics.js:527 +#: js/turtledefs.js:132 +#: js/turtledefs.js:234 +#: js/widgets/phrasemaker.js:1040 +msgid "pen" msgstr "" -#: js/piemenus.js:3015 -#: js/piemenus.js:3088 -#: js/musicutils.js:635 -#: js/musicutils.js:810 -#: js/musicutils.js:912 -#.TRANS: major is a music term related to intervals and mode -msgid "major" +#: js/rubrics.js:528 +#: js/turtledefs.js:133 +#: js/turtledefs.js:235 +#: js/blocks/NumberBlocks.js:981 +#: js/blocks/PitchBlocks.js:1717 +#: js/blocks/PitchBlocks.js:1758 +msgid "number" msgstr "" -#: js/piemenus.js:3015 -#: js/piemenus.js:3088 -#: js/musicutils.js:653 -#.TRANS: modal scale for music -msgid "ionian" +#: js/rubrics.js:529 +#: js/turtledefs.js:127 +#: js/turtledefs.js:229 +msgid "flow" msgstr "" -#: js/piemenus.js:3017 -#: js/piemenus.js:3092 -#: js/musicutils.js:633 -#: js/musicutils.js:811 -#: js/musicutils.js:909 -#.TRANS: minor is a music term related to intervals and mode -msgid "minor" +#: js/rubrics.js:530 +#: js/turtledefs.js:128 +#: js/turtledefs.js:230 +#: js/block-verbose.js:1609 +#: js/block-verbose.js:4559 +#: js/block-verbose.js:4577 +#: js/block-verbose.js:4588 +#: js/block.js:1573 +#: js/block.js:4483 +#: js/block.js:4501 +#: js/block.js:4512 +#: js/blocks.js:1018 +#: js/blocks.js:3491 +#: js/blocks.js:3492 +#: js/blocks.js:3717 +#: js/blocks.js:4076 +#: js/blocks.js:4269 +#: js/blocks.js:5432 +#: js/blocks.js:6563 +#: js/macros.js:170 +#: js/macros.js:266 +#: js/macros.js:267 +#: js/macros.js:276 +#: js/macros.js:828 +#: js/palette.js:527 +#: js/palette.js:536 +#: js/palette.js:545 +#: js/palette.js:554 +#: js/palette.js:1129 +#: js/palette.js:1140 +#: js/palette.js:1151 +#: js/palette.js:1162 +#: js/palette.js:1181 +#: js/blocks/ActionBlocks.js:254 +#: js/blocks/ActionBlocks.js:307 +#: js/blocks/ActionBlocks.js:617 +#: js/blocks/ActionBlocks.js:716 +#: js/blocks/ActionBlocks.js:961 +#: js/blocks/ActionBlocks.js:1049 +#: js/blocks/ActionBlocks.js:1322 +#: js/blocks/ActionBlocks.js:1325 +#: js/blocks/ActionBlocks.js:1337 +#: js/blocks/ActionBlocks.js:1404 +#: js/blocks/MeterBlocks.js:715 +#: js/blocks/MeterBlocks.js:768 +#: js/blocks/MeterBlocks.js:831 +#: js/blocks/MeterBlocks.js:892 +#: js/widgets/musickeyboard.js:2986 +#: js/widgets/phrasemaker.js:4913 +#: js/widgets/rhythmruler.js:2319 +#: js/widgets/rhythmruler.js:2326 +#: js/widgets/rhythmruler.js:2511 +#: js/widgets/rhythmruler.js:2518 +msgid "action" msgstr "" -#: js/piemenus.js:3017 -#: js/piemenus.js:3092 -#: js/musicutils.js:663 -#.TRANS: modal scale for music -msgid "aeolian" +#: js/rubrics.js:531 +#: js/turtledefs.js:136 +#: js/turtledefs.js:238 +msgid "sensors" msgstr "" -#: js/piemenus.js:3407 -msgid "Duplicate" +#: js/rubrics.js:532 +#: js/turtledefs.js:135 +#: js/turtledefs.js:237 +#: js/blocks/MediaBlocks.js:930 +msgid "media" msgstr "" -#: js/piemenus.js:3408 -#: js/turtledefs.js:534 -msgid "Extract" +#: js/rubrics.js:533 +msgid "mice" msgstr "" -#: js/piemenus.js:3409 -msgid "Move to trash" +#: js/toolbar.js:48 +#: js/toolbar.js:109 +msgid "About Music Blocks" msgstr "" -#: js/piemenus.js:3410 -#: js/timbre.js:968 -#: js/StringHelper.js:69 -msgid "Close" +#: js/toolbar.js:49 +#: js/toolbar.js:110 +#: js/toolbar.js:175 +#: js/toolbar.js:231 +#: js/turtledefs.js:445 +#: js/turtledefs.js:482 +#: js/activity.js:2660 +#: js/activity.js:2671 +#: js/activity.js:2902 +#: js/widgets/modewidget.js:77 +#: js/widgets/meterwidget.js:185 +#: js/widgets/pitchdrummatrix.js:147 +#: js/widgets/pitchdrummatrix.js:687 +#: js/widgets/pitchdrummatrix.js:689 +#: js/widgets/pitchdrummatrix.js:741 +#: js/widgets/pitchdrummatrix.js:743 +#: js/widgets/pitchdrummatrix.js:758 +#: js/widgets/pitchdrummatrix.js:760 +#: js/widgets/pitchdrummatrix.js:789 +#: js/widgets/pitchdrummatrix.js:791 +#: js/widgets/pitchstaircase.js:121 +#: js/widgets/temperament.js:610 +#: js/widgets/temperament.js:613 +#: js/widgets/temperament.js:673 +#: js/widgets/temperament.js:675 +#: js/widgets/temperament.js:2017 +#: js/widgets/temperament.js:2019 +#: js/widgets/tempo.js:84 +#: js/widgets/tempo.js:86 +#: js/widgets/timbre.js:432 +#: js/widgets/timbre.js:434 +#: js/widgets/timbre.js:465 +#: js/widgets/timbre.js:467 +#: js/widgets/timbre.js:746 +#: js/widgets/aiwidget.js:647 +#: js/widgets/aiwidget.js:654 +#: js/widgets/aiwidget.js:656 +#: js/widgets/arpeggio.js:90 +#: js/widgets/arpeggio.js:547 +#: js/widgets/arpeggio.js:549 +#: js/widgets/arpeggio.js:644 +#: js/widgets/arpeggio.js:646 +#: js/widgets/musickeyboard.js:676 +#: js/widgets/musickeyboard.js:872 +#: js/widgets/musickeyboard.js:874 +#: js/widgets/musickeyboard.js:953 +#: js/widgets/musickeyboard.js:955 +#: js/widgets/phrasemaker.js:513 +#: js/widgets/phrasemaker.js:523 +#: js/widgets/phrasemaker.js:525 +#: js/widgets/phrasemaker.js:4304 +#: js/widgets/phrasemaker.js:4528 +#: js/widgets/phrasemaker.js:4533 +#: js/widgets/phrasemaker.js:4535 +#: js/widgets/phrasemaker.js:4650 +#: js/widgets/rhythmruler.js:637 +#: js/widgets/rhythmruler.js:639 +#: js/widgets/rhythmruler.js:653 +#: js/widgets/rhythmruler.js:655 +#: js/widgets/sampler.js:162 +#: js/widgets/sampler.js:164 +#: js/widgets/sampler.js:363 +msgid "Play" msgstr "" -#: js/piemenus.js:3416 -msgid "Save stack" +#: js/toolbar.js:50 +#: js/toolbar.js:111 +#: js/toolbar.js:176 +#: js/toolbar.js:232 +#: js/turtledefs.js:451 +#: js/turtledefs.js:488 +#: js/activity.js:2679 +#: js/widgets/modewidget.js:99 +#: js/widgets/modewidget.js:101 +#: js/widgets/meterwidget.js:206 +#: js/widgets/meterwidget.js:208 +#: js/widgets/pitchdrummatrix.js:674 +#: js/widgets/pitchdrummatrix.js:676 +#: js/widgets/temperament.js:2002 +#: js/widgets/temperament.js:2004 +#: js/widgets/arpeggio.js:534 +#: js/widgets/arpeggio.js:536 +#: js/widgets/phrasemaker.js:534 +#: js/widgets/phrasemaker.js:536 +msgid "Stop" msgstr "" -#: js/piemenus.js:3420 -#: js/toolbar.js:60 -#: js/toolbar.js:120 -#: js/toolbar.js:185 -#: js/toolbar.js:240 -#: js/turtledefs.js:752 -msgid "Help" +#: js/toolbar.js:51 +#: js/toolbar.js:112 +#: js/toolbar.js:177 +#: js/toolbar.js:233 +#: js/turtledefs.js:498 +msgid "Record" msgstr "" -#: js/piemenus.js:3762 -msgid "You have chosen key " +#: js/toolbar.js:52 +#: js/toolbar.js:53 +msgid "Full screen" msgstr "" -#: js/piemenus.js:3766 -msgid " for your pitch preview." +#: js/toolbar.js:54 +#: js/toolbar.js:115 +#: js/toolbar.js:180 +#: js/toolbar.js:236 +#: js/turtledefs.js:504 +msgid "Toggle Fullscreen" +msgstr "" + +#: js/toolbar.js:55 +#: js/toolbar.js:116 +#: js/toolbar.js:181 +#: js/toolbar.js:237 +#: js/turtledefs.js:510 +#: planet/js/StringHelper.js:33 +msgid "New project" +msgstr "" + +#: js/toolbar.js:56 +#: js/toolbar.js:117 +#: js/toolbar.js:182 +#: js/toolbar.js:238 +#: js/turtledefs.js:516 +msgid "Load project from file" +msgstr "" + +#: js/toolbar.js:57 +#: js/toolbar.js:118 +#: js/toolbar.js:119 +#: js/toolbar.js:183 +#: js/toolbar.js:239 +#: js/turtledefs.js:541 +#: js/turtledefs.js:550 +#: js/turtledefs.js:571 +msgid "Save project" +msgstr "" + +#: js/toolbar.js:58 +#: js/toolbar.js:77 +#: js/toolbar.js:79 +#: js/toolbar.js:138 +#: js/toolbar.js:147 +#: js/toolbar.js:149 +#: js/toolbar.js:184 +#: js/toolbar.js:202 +#: js/toolbar.js:204 +#: js/toolbar.js:240 +#: js/toolbar.js:258 +#: js/toolbar.js:260 +msgid "Save project as HTML" +msgstr "" + +#: js/toolbar.js:59 +#: js/toolbar.js:120 +#: js/toolbar.js:185 +#: js/toolbar.js:241 +msgid "Find and share projects" +msgstr "" + +#: js/toolbar.js:60 +#: js/toolbar.js:121 +#: js/toolbar.js:186 +#: js/toolbar.js:242 +msgid "Offline. Sharing is unavailable" +msgstr "" + +#: js/toolbar.js:61 +#: js/toolbar.js:122 +#: js/toolbar.js:187 +#: js/toolbar.js:243 +msgid "Auxiliary menu" +msgstr "" + +#: js/toolbar.js:62 +#: js/toolbar.js:123 +#: js/toolbar.js:188 +#: js/toolbar.js:244 +#: js/turtledefs.js:752 +#: js/piemenus.js:3423 +msgid "Help" +msgstr "" + +#: js/toolbar.js:63 +#: js/toolbar.js:124 +#: js/toolbar.js:189 +#: js/toolbar.js:245 +msgid "Run slowly" +msgstr "" + +#: js/toolbar.js:64 +#: js/toolbar.js:125 +#: js/toolbar.js:190 +#: js/toolbar.js:246 +#: js/turtledefs.js:682 +msgid "Run step by step" +msgstr "" + +#: js/toolbar.js:65 +#: js/toolbar.js:126 +#: js/toolbar.js:191 +#: js/toolbar.js:247 +#: js/turtledefs.js:689 +msgid "Display statistics" +msgstr "" + +#: js/toolbar.js:66 +#: js/toolbar.js:127 +#: js/toolbar.js:192 +#: js/toolbar.js:248 +msgid "Load plugin" +msgstr "" + +#: js/toolbar.js:67 +#: js/toolbar.js:128 +#: js/toolbar.js:193 +#: js/toolbar.js:249 +#: js/turtledefs.js:696 +msgid "Delete plugin" +msgstr "" + +#: js/toolbar.js:68 +#: js/toolbar.js:129 +#: js/toolbar.js:194 +#: js/toolbar.js:250 +msgid "Enable horizontal scrolling" +msgstr "" + +#: js/toolbar.js:69 +#: js/toolbar.js:130 +#: js/toolbar.js:195 +#: js/toolbar.js:251 +msgid "Disable horizontal scrolling" +msgstr "" + +#: js/toolbar.js:70 +#: js/toolbar.js:131 +#: js/toolbar.js:196 +#: js/toolbar.js:252 +#: planet/js/LocalCard.js:54 +#: planet/js/StringHelper.js:71 +msgid "Merge with current project" +msgstr "" + +#: js/toolbar.js:71 +#: js/toolbar.js:132 +msgid "Set Pitch Preview" +msgstr "" + +#: js/toolbar.js:72 +#: js/toolbar.js:133 +#: js/toolbar.js:197 +#: js/toolbar.js:253 +msgid "JavaScript Editor" +msgstr "" + +#: js/toolbar.js:73 +#: js/toolbar.js:134 +#: js/toolbar.js:198 +#: js/toolbar.js:254 +#: js/turtledefs.js:724 +msgid "Restore" +msgstr "" + +#: js/toolbar.js:74 +#: js/toolbar.js:135 +#: js/toolbar.js:199 +#: js/toolbar.js:255 +msgid "Switch to beginner mode" +msgstr "" + +#: js/toolbar.js:75 +#: js/toolbar.js:136 +#: js/toolbar.js:200 +#: js/toolbar.js:256 +msgid "Switch to advanced mode" +msgstr "" + +#: js/toolbar.js:76 +#: js/toolbar.js:137 +#: js/toolbar.js:146 +#: js/toolbar.js:201 +#: js/toolbar.js:257 +#: js/turtledefs.js:738 +msgid "Select language" +msgstr "" + +#: js/toolbar.js:78 +#: js/toolbar.js:81 +#: js/toolbar.js:140 +#: js/turtledefs.js:579 +msgid "Save mouse artwork as PNG" +msgstr "" + +#: js/toolbar.js:80 +#: js/toolbar.js:139 +#: js/turtledefs.js:575 +msgid "Save mouse artwork as SVG" +msgstr "" + +#: js/toolbar.js:82 +#: js/toolbar.js:141 +#: js/turtledefs.js:583 +msgid "Save music as WAV" +msgstr "" + +#: js/toolbar.js:83 +#: js/toolbar.js:142 +#: js/turtledefs.js:587 +msgid "Save sheet music as ABC" +msgstr "" + +#: js/toolbar.js:84 +#: js/toolbar.js:143 +#: js/turtledefs.js:591 +msgid "Save sheet music as Lilypond" +msgstr "" + +#: js/toolbar.js:85 +msgid "Save sheet music as MusicXML" +msgstr "" + +#: js/toolbar.js:86 +#: js/toolbar.js:144 +#: js/toolbar.js:152 +#: js/toolbar.js:207 +#: js/toolbar.js:263 +#: js/turtledefs.js:562 +#: js/turtledefs.js:595 +msgid "Save block artwork as SVG" +msgstr "" + +#: js/toolbar.js:87 +#: js/toolbar.js:145 +#: js/toolbar.js:153 +#: js/toolbar.js:208 +#: js/toolbar.js:264 +#: js/turtles.js:911 +msgid "Confirm" +msgstr "" + +#: js/toolbar.js:88 +#: js/toolbar.js:154 +#: js/toolbar.js:209 +#: js/toolbar.js:265 +msgid "English (United States)" +msgstr "" + +#: js/toolbar.js:89 +#: js/toolbar.js:155 +#: js/toolbar.js:210 +#: js/toolbar.js:266 +msgid "English (United Kingdom)" +msgstr "" + +#: js/toolbar.js:90 +#: js/toolbar.js:156 +#: js/toolbar.js:211 +#: js/toolbar.js:267 +msgid "日本語" +msgstr "" + +#: js/toolbar.js:91 +msgid "한국어" +msgstr "" + +#: js/toolbar.js:92 +#: js/toolbar.js:158 +#: js/toolbar.js:213 +#: js/toolbar.js:269 +msgid "español" +msgstr "" + +#: js/toolbar.js:93 +#: js/toolbar.js:159 +#: js/toolbar.js:214 +#: js/toolbar.js:270 +msgid "português" +msgstr "" + +#: js/toolbar.js:94 +#: js/toolbar.js:160 +#: js/toolbar.js:215 +#: js/toolbar.js:271 +msgid "にほんご" +msgstr "" + +#: js/toolbar.js:95 +#: js/toolbar.js:161 +#: js/toolbar.js:216 +#: js/toolbar.js:272 +msgid "中文" +msgstr "" + +#: js/toolbar.js:96 +#: js/toolbar.js:162 +#: js/toolbar.js:217 +#: js/toolbar.js:273 +msgid "ภาษาไทย" +msgstr "" + +#: js/toolbar.js:97 +#: js/toolbar.js:163 +#: js/toolbar.js:218 +#: js/toolbar.js:274 +msgid "aymara" +msgstr "" + +#: js/toolbar.js:98 +#: js/toolbar.js:164 +#: js/toolbar.js:219 +#: js/toolbar.js:275 +msgid "quechua" +msgstr "" + +#: js/toolbar.js:99 +#: js/toolbar.js:165 +#: js/toolbar.js:220 +#: js/toolbar.js:276 +msgid "guarani" +msgstr "" + +#: js/toolbar.js:100 +#: js/toolbar.js:166 +#: js/toolbar.js:221 +#: js/toolbar.js:277 +msgid "हिंदी" +msgstr "" + +#: js/toolbar.js:101 +#: js/toolbar.js:168 +#: js/toolbar.js:222 +#: js/toolbar.js:279 +msgid "igbo" +msgstr "" + +#: js/toolbar.js:102 +#: js/toolbar.js:169 +#: js/toolbar.js:223 +#: js/toolbar.js:280 +msgid "عربى" +msgstr "" + +#: js/toolbar.js:103 +#: js/toolbar.js:167 +#: js/toolbar.js:224 +#: js/toolbar.js:278 +msgid "తెలుగు" +msgstr "" + +#: js/toolbar.js:104 +#: js/toolbar.js:170 +#: js/toolbar.js:225 +#: js/toolbar.js:281 +msgid "עִברִית" +msgstr "" + +#: js/toolbar.js:113 +#: js/toolbar.js:114 +#: js/toolbar.js:178 +#: js/toolbar.js:179 +#: js/toolbar.js:234 +#: js/toolbar.js:235 +msgid "Full Screen" +msgstr "" + +#: js/toolbar.js:148 +#: js/toolbar.js:151 +#: js/toolbar.js:203 +#: js/toolbar.js:206 +#: js/toolbar.js:259 +#: js/toolbar.js:262 +#: js/turtledefs.js:558 +msgid "Save turtle artwork as PNG" +msgstr "" + +#: js/toolbar.js:150 +#: js/toolbar.js:205 +#: js/toolbar.js:261 +#: js/turtledefs.js:554 +msgid "Save turtle artwork as SVG" +msgstr "" + +#: js/toolbar.js:157 +#: js/toolbar.js:212 +#: js/toolbar.js:268 +msgid "한국인" +msgstr "" + +#: js/toolbar.js:174 +#: js/toolbar.js:230 +msgid "About Turtle Blocks" +msgstr "" + +#: js/toolbar.js:446 +#: js/toolbar.js:457 +#: js/toolbar.js:497 +msgid "Turtle Wrap Off" +msgstr "" + +#: js/toolbar.js:466 +#: js/toolbar.js:506 +msgid "Turtle Wrap On" +msgstr "" + +#: js/turtle-painter.js:1192 +#: js/turtle-painter.js:1193 +#: js/turtles.js:118 +#: js/block-verbose.js:1623 +#: js/block.js:1587 +#: js/lilypond.js:749 +#: js/lilypond.js:913 +#: js/lilypond.js:951 +#: js/logo.js:1184 +#: js/blocks/ActionBlocks.js:1223 +#: js/blocks/ProgramBlocks.js:1267 +msgid "start" +msgstr "" + +#: js/turtledefs.js:40 +#.TRANS: put the URL to the guide here, e.g., https://github.com/sugarlabs/turtleblocksjs/tree/master/guide/README.md +msgid "guide url" +msgstr "" + +#: js/turtledefs.js:85 +#: js/turtledefs.js:437 +msgid "Turtle Blocks is a Logo-inspired turtle that draws colorful pictures with snap-together visual-programming blocks." +msgstr "" + +#: js/turtledefs.js:118 +#: js/turtledefs.js:220 +msgid "search" +msgstr "" + +#: js/turtledefs.js:120 +#: js/turtledefs.js:222 +#: js/blocks/MeterBlocks.js:1343 +#: js/blocks/WidgetBlocks.js:522 +#.TRANS: musical meter (time signature), e.g., 4:4 +msgid "meter" +msgstr "" + +#: js/turtledefs.js:122 +#: js/turtledefs.js:224 +msgid "intervals" +msgstr "" + +#: js/turtledefs.js:124 +#: js/turtledefs.js:226 +msgid "ornament" +msgstr "" + +#: js/turtledefs.js:125 +#: js/turtledefs.js:227 +#: js/blocks/VolumeBlocks.js:362 +#: js/blocks/VolumeBlocks.js:502 +#: js/blocks/VolumeBlocks.js:545 +msgid "volume" +msgstr "" + +#: js/turtledefs.js:126 +#: js/turtledefs.js:228 +#: js/block-verbose.js:1700 +#: js/block-verbose.js:2626 +#: js/block.js:1664 +#: js/block.js:2554 +#: js/lilypond.js:732 +#: js/lilypond.js:897 +#: js/lilypond.js:941 +#: js/palette.js:577 +#: js/blocks/RhythmBlocks.js:766 +#: js/blocks/DrumBlocks.js:477 +#: js/blocks/VolumeBlocks.js:502 +#: js/widgets/phrasemaker.js:1038 +msgid "drum" +msgstr "" + +#: js/turtledefs.js:129 +#: js/turtledefs.js:231 +msgid "boxes" +msgstr "" + +#: js/turtledefs.js:130 +#: js/turtledefs.js:232 +msgid "widgets" +msgstr "" + +#: js/turtledefs.js:131 +#: js/turtledefs.js:233 +#: js/widgets/phrasemaker.js:1039 +msgid "graphics" +msgstr "" + +#: js/turtledefs.js:134 +#: js/turtledefs.js:236 +msgid "boolean" +msgstr "" + +#: js/turtledefs.js:137 +#: js/turtledefs.js:239 +#: js/blocks/HeapBlocks.js:59 +#: js/widgets/status.js:147 +msgid "heap" +msgstr "" + +#: js/turtledefs.js:138 +#: js/turtledefs.js:240 +#: js/blocks/DictBlocks.js:142 +#: js/blocks/ProgramBlocks.js:495 +msgid "dictionary" +msgstr "" + +#: js/turtledefs.js:139 +#: js/turtledefs.js:241 +msgid "ensemble" +msgstr "" + +#: js/turtledefs.js:140 +#: js/turtledefs.js:242 +msgid "extras" +msgstr "" + +#: js/turtledefs.js:142 +#: js/turtledefs.js:244 +#.TRANS: program as in computer program +#.TRANS: program as in computer program +msgid "program" +msgstr "" + +#: js/turtledefs.js:143 +#: js/turtledefs.js:245 +msgid "my blocks" +msgstr "" + +#: js/turtledefs.js:185 +#: js/turtledefs.js:281 +msgid "artwork" +msgstr "" + +#: js/turtledefs.js:185 +#: js/turtledefs.js:281 +msgid "logic" +msgstr "" + +#: js/turtledefs.js:185 +#: js/turtledefs.js:281 +msgid "music" +msgstr "" + +#: js/turtledefs.js:187 +#: js/turtledefs.js:463 +msgid "Music Blocks is a collection of tools for exploring fundamental musical concepts in a fun way." +msgstr "" + +#: js/turtledefs.js:436 +msgid "Welcome to Turtle Blocks" +msgstr "" + +#: js/turtledefs.js:438 +#: js/turtledefs.js:465 +#: js/turtledefs.js:774 +#: js/turtledefs.js:805 +msgid "The current version is" +msgstr "" + +#: js/turtledefs.js:446 +#: js/turtledefs.js:483 +msgid "Click the run button to run the project in fast mode." +msgstr "" + +#: js/turtledefs.js:452 +msgid "Stop the turtle." +msgstr "" + +#: js/turtledefs.js:454 +#: js/turtledefs.js:491 +msgid "You can also type Alt-S to stop." +msgstr "" + +#: js/turtledefs.js:462 +#: js/widgets/help.js:333 +msgid "Welcome to Music Blocks" +msgstr "" + +#: js/turtledefs.js:472 +#: js/widgets/help.js:334 +msgid "Meet Mr. Mouse!" +msgstr "" + +#: js/turtledefs.js:473 +msgid "Mr Mouse is our Music Blocks conductor." +msgstr "" + +#: js/turtledefs.js:475 +msgid "Mr Mouse encourages you to explore Music Blocks." +msgstr "" + +#: js/turtledefs.js:477 +msgid "Let us start our tour!" +msgstr "" + +#: js/turtledefs.js:489 +msgid "Stop the music (and the mice)." +msgstr "" + +#: js/turtledefs.js:499 +msgid "Record your project as video." +msgstr "" + +#: js/turtledefs.js:505 +msgid "Toggle Fullscreen mode." +msgstr "" + +#: js/turtledefs.js:511 +msgid "Initialize a new project." +msgstr "" + +#: js/turtledefs.js:517 +msgid "You can also load projects from the file system." +msgstr "" + +#: js/turtledefs.js:522 +#: planet/js/StringHelper.js:46 +msgid "Delete" +msgstr "" + +#: js/turtledefs.js:523 +msgid "To delete a block, just right-click on it, then you will be able to see the delete option" +msgstr "" + +#: js/turtledefs.js:528 +#: js/activity.js:2649 +#: planet/js/LocalCard.js:31 +msgid "Copy" +msgstr "" + +#: js/turtledefs.js:529 +msgid "To copy a block, just right-click on it, then you will be able to see the copy option" +msgstr "" + +#: js/turtledefs.js:534 +#: js/piemenus.js:3411 +msgid "Extract" +msgstr "" + +#: js/turtledefs.js:535 +msgid "To extract a block, just right-click on it, then you will be able to see the extract option" +msgstr "" + +#: js/turtledefs.js:542 +#: js/turtledefs.js:552 +#: js/turtledefs.js:573 +msgid "Save your project to a file." +msgstr "" + +#: js/turtledefs.js:549 +#: js/turtledefs.js:570 +msgid "save" +msgstr "" + +#: js/turtledefs.js:556 +#: js/turtledefs.js:577 +msgid "Save graphics from your project to as SVG." +msgstr "" + +#: js/turtledefs.js:560 +#: js/turtledefs.js:581 +msgid "Save graphics from your project as PNG." +msgstr "" + +#: js/turtledefs.js:564 +#: js/turtledefs.js:597 +msgid "Save block artwork as an SVG file." +msgstr "" + +#: js/turtledefs.js:585 +msgid "Save audio from your project as WAV." +msgstr "" + +#: js/turtledefs.js:589 +msgid "Save your project to as an ABC file." +msgstr "" + +#: js/turtledefs.js:593 +msgid "Save your project to as a Lilypond file." +msgstr "" + +#: js/turtledefs.js:604 +msgid "Load samples from server" +msgstr "" + +#: js/turtledefs.js:605 +msgid "This button opens a viewer for loading example projects." +msgstr "" + +#: js/turtledefs.js:611 +msgid "Palette buttons" +msgstr "" + +#: js/turtledefs.js:612 +msgid "This toolbar contains the palette buttons including Rhythm Pitch Tone Action and more." +msgstr "" + +#: js/turtledefs.js:614 +msgid "Click to show the palettes of blocks and drag blocks from the palettes onto the canvas to use them." +msgstr "" + +#: js/turtledefs.js:620 +msgid "Cartesian/Polar" +msgstr "" + +#: js/turtledefs.js:621 +msgid "Show or hide a coordinate grid." +msgstr "" + +#: js/turtledefs.js:626 +#: js/turtles.js:902 +msgid "Clean" +msgstr "" + +#: js/turtledefs.js:627 +msgid "Clear the screen and return the mice to their initial positions." +msgstr "" + +#: js/turtledefs.js:632 +#: js/turtles.js:955 +msgid "Collapse" +msgstr "" + +#: js/turtledefs.js:633 +msgid "Collapse the graphics window." msgstr "" -#: js/palette.js:571 -msgid "grid" +#: js/turtledefs.js:638 +#: js/activity.js:5684 +msgid "Home" msgstr "" -#: js/palette.js:577 -#: js/block.js:1540 -#: js/block.js:2343 -#: js/turtledefs.js:126 -#: js/turtledefs.js:228 -#: js/lilypond.js:740 -#: js/lilypond.js:905 -#: js/lilypond.js:949 -#: js/DrumBlocks.js:486 -#: js/RhythmBlocks.js:766 -#: js/VolumeBlocks.js:502 -#: js/phrasemaker.js:823 -msgid "drum" +#: js/turtledefs.js:639 +msgid "Return all blocks to the center of the screen." msgstr "" -#: js/palette.js:580 -msgid "effect" +#: js/turtledefs.js:644 +msgid "Show/hide blocks" msgstr "" -#: js/palette.js:586 -msgid "sargam" +#: js/turtledefs.js:645 +msgid "Hide or show the blocks and the palettes." msgstr "" -#: js/palette.js:589 -#: js/activity.js:1833 -#: js/RhythmBlocks.js:923 -#: js/PitchBlocks.js:442 -#: js/PitchBlocks.js:1748 -#.TRANS: a numeric mapping of the notes in an octave based on the musical mode -msgid "scale degree" +#: js/turtledefs.js:650 +msgid "Expand/collapse collapsable blocks" msgstr "" -#: js/palette.js:592 -#: js/activity.js:1860 -msgid "mode name" +#: js/turtledefs.js:651 +msgid "Expand or collapse start and action stacks." msgstr "" -#: js/palette.js:595 -#: js/activity.js:1839 -msgid "invert mode" +#: js/turtledefs.js:658 +#: js/activity.js:5704 +msgid "Decrease block size" msgstr "" -#: js/palette.js:598 -#: js/activity.js:1836 -msgid "voice name" +#: js/turtledefs.js:659 +msgid "Decrease the size of the blocks." msgstr "" -#: js/palette.js:601 -#: js/PitchBlocks.js:1181 -msgid "custom pitch" +#: js/turtledefs.js:664 +#: js/activity.js:5710 +msgid "Increase block size" msgstr "" -#: js/palette.js:605 -#: js/block.js:1456 -#: js/block.js:1575 -#: js/WidgetBlocks.js:218 -#: js/IntervalsBlocks.js:63 -msgid "temperament" +#: js/turtledefs.js:665 +msgid "Increase the size of the blocks." msgstr "" -#: js/palette.js:609 -msgid "accidental" +#: js/turtledefs.js:670 +msgid "Expand/collapse option toolbar" msgstr "" -#: js/palette.js:615 -#: js/activity.js:1866 -msgid "interval name" +#: js/turtledefs.js:671 +msgid "Click this button to expand or collapse the auxillary toolbar." msgstr "" -#: js/palette.js:633 -#: js/PitchBlocks.js:405 -msgid "pitch converter" +#: js/turtledefs.js:676 +msgid "Run slow" msgstr "" -#: js/rubrics.js:522 -#: js/turtledefs.js:119 -#: js/turtledefs.js:221 -#: js/RhythmBlockPaletteBlocks.js:52 -#: js/RhythmBlockPaletteBlocks.js:233 -#: js/ProgramBlocks.js:745 -#: js/rhythmruler.js:1670 -#: js/rhythmruler.js:1677 -#: js/rhythmruler.js:1745 -#: js/rhythmruler.js:1752 -#: js/rhythmruler.js:1830 -#.TRANS: an arrangement of notes based on duration -msgid "rhythm" +#: js/turtledefs.js:677 +msgid "Click to run the project in slow mode." msgstr "" -#: js/rubrics.js:523 -#: js/block.js:2339 -#: js/turtledefs.js:121 -#: js/turtledefs.js:223 -#: js/IntervalsBlocks.js:63 -#: js/PitchBlocks.js:1801 -#: js/PitchBlocks.js:1814 -#: js/SensorsBlocks.js:178 -#: js/phrasemaker.js:821 -#: js/musickeyboard.js:1653 -#.TRANS: pitch number -#.TRANS: we specify pitch in terms of a name and an octave. The name can be CDEFGAB or Do Re Mi Fa Sol La Ti. Octave is a number between 1 and 8. -msgid "pitch" +#: js/turtledefs.js:683 +msgid "Click to run the project step by step." msgstr "" -#: js/rubrics.js:524 -#: js/turtledefs.js:123 -#: js/turtledefs.js:225 -msgid "tone" +#: js/turtledefs.js:690 +msgid "Display statistics about your Music project." msgstr "" -#: js/rubrics.js:525 -#: js/lilypond.js:613 -#: js/lilypond.js:912 -#: js/lilypond.js:918 -#: js/lilypond.js:956 -msgid "mouse" +#: js/turtledefs.js:697 +msgid "Delete a selected plugin." msgstr "" -#: js/rubrics.js:526 -#: js/turtledefs.js:132 -#: js/turtledefs.js:234 -#: js/phrasemaker.js:825 -msgid "pen" +#: js/turtledefs.js:704 +msgid "Enable scrolling" msgstr "" -#: js/rubrics.js:527 -#: js/turtledefs.js:133 -#: js/turtledefs.js:235 -#: js/NumberBlocks.js:905 -#: js/PitchBlocks.js:1679 -#: js/PitchBlocks.js:1720 -msgid "number" +#: js/turtledefs.js:705 +msgid "You can scroll the blocks on the canvas." msgstr "" -#: js/rubrics.js:528 -#: js/turtledefs.js:127 -#: js/turtledefs.js:229 -msgid "flow" +#: js/turtledefs.js:714 +msgid "Wrap Turtle" msgstr "" -#: js/rubrics.js:530 -#: js/turtledefs.js:136 -#: js/turtledefs.js:238 -msgid "sensors" +#: js/turtledefs.js:715 +msgid "Turn Turtle wrapping On or Off." msgstr "" -#: js/rubrics.js:531 -#: js/turtledefs.js:135 -#: js/turtledefs.js:237 -#: js/MediaBlocks.js:930 -msgid "media" +#: js/turtledefs.js:725 +msgid "Restore blocks from the trash." msgstr "" -#: js/rubrics.js:532 -msgid "mice" +#: js/turtledefs.js:732 +msgid "Switch mode" msgstr "" -#: js/macros.js:711 -#: js/musicutils.js:783 -#: js/synthutils.js:181 -#.TRANS: animal sound effect -msgid "duck" +#: js/turtledefs.js:733 +msgid "Switch between beginner and advance modes." msgstr "" -#: js/toolbar.js:46 -#: js/toolbar.js:107 -msgid "About Music Blocks" +#: js/turtledefs.js:739 +msgid "Select your language preference." msgstr "" -#: js/toolbar.js:47 -#: js/toolbar.js:108 -#: js/toolbar.js:172 -#: js/toolbar.js:228 -#: js/turtledefs.js:445 -#: js/turtledefs.js:482 -#: js/activity.js:2281 -#: js/activity.js:2289 -#: js/activity.js:2520 -#: js/modewidget.js:77 -#: js/pitchstaircase.js:121 -#: js/phrasemaker.js:302 -#: js/phrasemaker.js:312 -#: js/phrasemaker.js:314 -#: js/phrasemaker.js:3901 -#: js/phrasemaker.js:4061 -#: js/phrasemaker.js:4066 -#: js/phrasemaker.js:4068 -#: js/phrasemaker.js:4183 -#: js/pitchdrummatrix.js:81 -#: js/pitchdrummatrix.js:574 -#: js/pitchdrummatrix.js:576 -#: js/pitchdrummatrix.js:628 -#: js/pitchdrummatrix.js:630 -#: js/pitchdrummatrix.js:645 -#: js/pitchdrummatrix.js:647 -#: js/pitchdrummatrix.js:674 -#: js/pitchdrummatrix.js:676 -#: js/temperament.js:477 -#: js/temperament.js:480 -#: js/temperament.js:540 -#: js/temperament.js:542 -#: js/temperament.js:1835 -#: js/temperament.js:1837 -#: js/temperament.js:1986 -#: js/temperament.js:1988 -#: js/musickeyboard.js:522 -#: js/musickeyboard.js:682 -#: js/musickeyboard.js:684 -#: js/musickeyboard.js:756 -#: js/musickeyboard.js:758 -#: js/rhythmruler.js:298 -#: js/rhythmruler.js:300 -#: js/rhythmruler.js:314 -#: js/rhythmruler.js:316 -#: js/sampler.js:96 -#: js/sampler.js:98 -#: js/sampler.js:229 -#: js/sampler.js:235 -#: js/sampler.js:237 -#: js/tempo.js:84 -#: js/tempo.js:86 -#: js/timbre.js:432 -#: js/timbre.js:434 -#: js/timbre.js:465 -#: js/timbre.js:467 -#: js/timbre.js:746 -#: js/meterwidget.js:80 -#: js/arpeggio.js:90 -#: js/arpeggio.js:547 -#: js/arpeggio.js:549 -#: js/arpeggio.js:644 -#: js/arpeggio.js:646 -msgid "Play" +#: js/turtledefs.js:745 +msgid "Keyboard shortcuts" msgstr "" -#: js/toolbar.js:48 -#: js/toolbar.js:109 -#: js/toolbar.js:173 -#: js/toolbar.js:229 -#: js/turtledefs.js:451 -#: js/turtledefs.js:488 -#: js/activity.js:2297 -#: js/modewidget.js:99 -#: js/modewidget.js:101 -#: js/phrasemaker.js:323 -#: js/phrasemaker.js:325 -#: js/pitchdrummatrix.js:561 -#: js/pitchdrummatrix.js:563 -#: js/temperament.js:1820 -#: js/temperament.js:1822 -#: js/meterwidget.js:101 -#: js/meterwidget.js:103 -#: js/arpeggio.js:534 -#: js/arpeggio.js:536 -msgid "Stop" +#: js/turtledefs.js:746 +msgid "You can type d to create a do block and r to create a re block etc." msgstr "" -#: js/toolbar.js:49 -#: js/toolbar.js:110 -#: js/toolbar.js:174 -#: js/toolbar.js:230 -#: js/turtledefs.js:498 -msgid "Record" +#: js/turtledefs.js:753 +msgid "Show these messages." msgstr "" -#: js/toolbar.js:50 -#: js/toolbar.js:51 -msgid "Full screen" +#: js/turtledefs.js:759 +#: js/turtledefs.js:790 +#: js/widgets/help.js:335 +msgid "Guide" msgstr "" -#: js/toolbar.js:52 -#: js/toolbar.js:112 -#: js/toolbar.js:177 -#: js/toolbar.js:232 -#: js/turtledefs.js:504 -msgid "Toggle Fullscreen" +#: js/turtledefs.js:760 +msgid "A detailed guide to Turtle Blocks is available." msgstr "" -#: js/toolbar.js:53 -#: js/toolbar.js:113 -#: js/toolbar.js:178 -#: js/toolbar.js:233 -#: js/turtledefs.js:510 -#: js/StringHelper.js:33 -msgid "New project" +#: js/turtledefs.js:764 +msgid "Turtle Blocks Guide" msgstr "" -#: js/toolbar.js:54 -#: js/toolbar.js:114 -#: js/toolbar.js:179 -#: js/toolbar.js:234 -#: js/turtledefs.js:516 -msgid "Load project from file" +#: js/turtledefs.js:767 +#: js/turtledefs.js:798 +#: js/widgets/help.js:336 +msgid "About" msgstr "" -#: js/toolbar.js:55 -#: js/toolbar.js:115 -#: js/toolbar.js:116 -#: js/toolbar.js:180 -#: js/toolbar.js:235 -#: js/turtledefs.js:541 -#: js/turtledefs.js:550 -#: js/turtledefs.js:571 -msgid "Save project" +#: js/turtledefs.js:768 +msgid "Turtle Blocks is an open source collection of tools for exploring musical concepts." msgstr "" -#: js/toolbar.js:56 -#: js/toolbar.js:75 -#: js/toolbar.js:77 -#: js/toolbar.js:135 -#: js/toolbar.js:144 -#: js/toolbar.js:146 -#: js/toolbar.js:181 -#: js/toolbar.js:199 -#: js/toolbar.js:201 -#: js/toolbar.js:236 -#: js/toolbar.js:254 -#: js/toolbar.js:256 -msgid "Save project as HTML" +#: js/turtledefs.js:770 +msgid "A full list of contributors can be found in the Turtle Blocks GitHub repository." +msgstr "" + +#: js/turtledefs.js:772 +msgid "Turtle Blocks is licensed under the AGPL." +msgstr "" + +#: js/turtledefs.js:780 +msgid "Turtle Blocks GitHub repository" +msgstr "" + +#: js/turtledefs.js:783 +#: js/turtledefs.js:814 +#: js/widgets/help.js:337 +#: js/widgets/help.js:359 +msgid "Congratulations." +msgstr "" + +#: js/turtledefs.js:784 +msgid "You have finished the tour. Please enjoy Turtle Blocks!" +msgstr "" + +#: js/turtledefs.js:791 +msgid "A detailed guide to Music Blocks is available." +msgstr "" + +#: js/turtledefs.js:799 +msgid "Music Blocks is an open source collection of tools for exploring musical concepts." +msgstr "" + +#: js/turtledefs.js:801 +msgid "A full list of contributors can be found in the Music Blocks GitHub repository." +msgstr "" + +#: js/turtledefs.js:803 +msgid "Music Blocks is licensed under the AGPL." +msgstr "" + +#: js/turtledefs.js:811 +msgid "Music Blocks GitHub repository" +msgstr "" + +#: js/turtledefs.js:815 +msgid "You have finished the tour. Please enjoy Music Blocks!" +msgstr "" + +#: js/turtles.js:882 +msgid "Grid" +msgstr "" + +#: js/turtles.js:1024 +msgid "Expand" +msgstr "" + +#: js/block-verbose.js:1616 +#: js/block-verbose.js:1735 +#: js/block.js:1580 +#: js/block.js:1699 +#: js/palette.js:605 +#: js/blocks/IntervalsBlocks.js:63 +#: js/blocks/WidgetBlocks.js:259 +msgid "temperament" +msgstr "" + +#: js/block-verbose.js:1630 +#: js/block.js:1594 +msgid "matrix" msgstr "" -#: js/toolbar.js:57 -#: js/toolbar.js:117 -#: js/toolbar.js:182 -#: js/toolbar.js:237 -msgid "Find and share projects" +#: js/block-verbose.js:1637 +#: js/block.js:1601 +#: js/blocks/WidgetBlocks.js:1509 +#: plugins/rodi.rtp:324 +msgid "status" msgstr "" -#: js/toolbar.js:58 -#: js/toolbar.js:118 -#: js/toolbar.js:183 -#: js/toolbar.js:238 -msgid "Offline. Sharing is unavailable" +#: js/block-verbose.js:1644 +#: js/block.js:1608 +msgid "drum mapper" msgstr "" -#: js/toolbar.js:59 -#: js/toolbar.js:119 -#: js/toolbar.js:184 -#: js/toolbar.js:239 -msgid "Auxiliary menu" +#: js/block-verbose.js:1651 +#: js/block.js:1615 +msgid "ruler" msgstr "" -#: js/toolbar.js:61 -#: js/toolbar.js:121 -#: js/toolbar.js:186 -#: js/toolbar.js:241 -msgid "Run slowly" +#: js/block-verbose.js:1658 +#: js/block.js:1622 +#: js/blocks/WidgetBlocks.js:397 +#.TRANS: timbre is the character or quality of a musical sound +msgid "timbre" msgstr "" -#: js/toolbar.js:62 -#: js/toolbar.js:122 -#: js/toolbar.js:187 -#: js/toolbar.js:242 -#: js/turtledefs.js:682 -msgid "Run step by step" +#: js/block-verbose.js:1665 +#: js/block.js:1629 +msgid "stair" msgstr "" -#: js/toolbar.js:63 -#: js/toolbar.js:123 -#: js/toolbar.js:188 -#: js/toolbar.js:243 -#: js/turtledefs.js:689 -msgid "Display statistics" +#: js/block-verbose.js:1672 +#: js/block.js:1636 +#: js/blocks/WidgetBlocks.js:707 +#.TRANS: the speed at music is should be played. +msgid "tempo" msgstr "" -#: js/toolbar.js:64 -#: js/toolbar.js:124 -#: js/toolbar.js:189 -#: js/toolbar.js:244 -msgid "Load plugin" +#: js/block-verbose.js:1679 +#: js/block-verbose.js:1742 +#: js/block.js:1643 +#: js/block.js:1706 +#: js/blocks/IntervalsBlocks.js:1464 +#.TRANS: mode, e.g., Major in C Major +msgid "mode" msgstr "" -#: js/toolbar.js:65 -#: js/toolbar.js:125 -#: js/toolbar.js:190 -#: js/toolbar.js:245 -#: js/turtledefs.js:696 -msgid "Delete plugin" +#: js/block-verbose.js:1686 +#: js/block.js:1650 +msgid "slider" msgstr "" -#: js/toolbar.js:66 -#: js/toolbar.js:126 -#: js/toolbar.js:191 -#: js/toolbar.js:246 -msgid "Enable horizontal scrolling" +#: js/block-verbose.js:1693 +#: js/block.js:1657 +#: js/blocks/SensorsBlocks.js:1001 +msgid "keyboard" msgstr "" -#: js/toolbar.js:67 -#: js/toolbar.js:127 -#: js/toolbar.js:192 -#: js/toolbar.js:247 -msgid "Disable horizontal scrolling" +#: js/block-verbose.js:1707 +#: js/block.js:1671 +#: js/blocks/WidgetBlocks.js:1190 +#: js/blocks/WidgetBlocks.js:1228 +#.TRANS: widget for subdividing a measure into distinct rhythmic elements +msgid "rhythm maker" msgstr "" -#: js/toolbar.js:68 -#: js/toolbar.js:128 -#: js/toolbar.js:193 -#: js/toolbar.js:248 -#: js/LocalCard.js:54 -#: js/StringHelper.js:71 -msgid "Merge with current project" +#: js/block-verbose.js:1714 +#: js/block-verbose.js:2457 +#: js/block-verbose.js:2514 +#: js/block.js:1678 +#: js/block.js:2385 +#: js/block.js:2442 +#: js/blocks/MeterBlocks.js:1367 +#: js/blocks/OrnamentBlocks.js:220 +#: js/blocks/OrnamentBlocks.js:312 +#: js/blocks/RhythmBlocks.js:33 +#: js/blocks/RhythmBlocks.js:356 +#: js/blocks/RhythmBlocks.js:766 +#: js/blocks/RhythmBlocks.js:806 +#: js/blocks/RhythmBlockPaletteBlocks.js:70 +#: js/blocks/RhythmBlockPaletteBlocks.js:252 +#: js/blocks/RhythmBlockPaletteBlocks.js:485 +#: js/blocks/RhythmBlockPaletteBlocks.js:554 +#: js/blocks/RhythmBlockPaletteBlocks.js:605 +#: js/blocks/RhythmBlockPaletteBlocks.js:875 +#: js/turtleactions/DictActions.js:85 +#: js/widgets/phrasemaker.js:942 +#: js/widgets/phrasemaker.js:2656 +#: js/widgets/phrasemaker.js:2699 +#: js/widgets/phrasemaker.js:2810 +#.TRANS: the value (e.g., 1/4 note) of the note being played. +msgid "note value" msgstr "" -#: js/toolbar.js:69 -#: js/toolbar.js:129 -msgid "Set Pitch Preview" +#: js/block-verbose.js:1721 +#: js/block-verbose.js:2382 +#: js/block-verbose.js:2405 +#: js/block.js:1685 +#: js/block.js:2310 +#: js/block.js:2333 +#: js/blocks/IntervalsBlocks.js:1071 +#: js/blocks/OrnamentBlocks.js:312 +#.TRANS: calculate a relative step between notes based on semi-tones +msgid "scalar interval" msgstr "" -#: js/toolbar.js:70 -#: js/toolbar.js:130 -#: js/toolbar.js:194 -#: js/toolbar.js:249 -msgid "Toggle JavaScript Editor" +#: js/block-verbose.js:1728 +#: js/block.js:1692 +#: js/blocks/RhythmBlocks.js:148 +msgid "milliseconds" msgstr "" -#: js/toolbar.js:71 -#: js/toolbar.js:131 -#: js/toolbar.js:195 -#: js/toolbar.js:250 -#: js/turtledefs.js:724 -msgid "Restore" +#: js/block-verbose.js:2455 +#: js/block-verbose.js:2459 +#: js/block-verbose.js:2512 +#: js/block-verbose.js:2628 +#: js/block.js:2383 +#: js/block.js:2387 +#: js/block.js:2440 +#: js/block.js:2556 +#: js/blocks/RhythmBlocks.js:712 +#: js/blocks/ProgramBlocks.js:1273 +#: js/widgets/rhythmruler.js:1183 +#: js/widgets/rhythmruler.js:1329 +msgid "silence" msgstr "" -#: js/toolbar.js:72 -#: js/toolbar.js:132 -#: js/toolbar.js:196 -#: js/toolbar.js:251 -msgid "Switch to beginner mode" +#: js/block-verbose.js:2548 +#: js/block-verbose.js:3492 +#: js/block-verbose.js:3509 +#: js/activity.js:2718 +#: js/activity.js:2769 +#: js/block.js:2476 +#: js/block.js:3416 +#: js/block.js:3433 +#: js/utils/musicutils.js:3780 +#: js/utils/musicutils.js:5273 +#.TRANS: the note names must be separated by single spaces +#.TRANS: the note names must be separated by single spaces +#.TRANS: the note names must be separated by single spaces +msgid "ti la sol fa mi re do" msgstr "" -#: js/toolbar.js:73 -#: js/toolbar.js:133 -#: js/toolbar.js:197 -#: js/toolbar.js:252 -msgid "Switch to advanced mode" +#: js/block-verbose.js:2616 +#: js/block.js:2544 +#.TRANS: scalar step +#.TRANS: scalar step +msgid "down" msgstr "" -#: js/toolbar.js:74 -#: js/toolbar.js:134 -#: js/toolbar.js:143 -#: js/toolbar.js:198 -#: js/toolbar.js:253 -#: js/turtledefs.js:738 -msgid "Select language" +#: js/block-verbose.js:2617 +#: js/block.js:2545 +msgid "up" msgstr "" -#: js/toolbar.js:76 -#: js/toolbar.js:79 -#: js/toolbar.js:137 -#: js/turtledefs.js:579 -msgid "Save mouse artwork as PNG" +#: js/block-verbose.js:3026 +#: js/block.js:2950 +msgid "Silence block cannot be removed." msgstr "" -#: js/toolbar.js:78 -#: js/toolbar.js:136 -#: js/turtledefs.js:575 -msgid "Save mouse artwork as SVG" +#: js/block-verbose.js:3824 +#: js/block.js:3748 +#: js/blocks.js:2607 +#: js/blocks.js:3218 +#: js/palette.js:618 +#: js/blocks/BooleanBlocks.js:77 +#: js/blocks/BooleanBlocks.js:167 +#: js/blocks/BooleanBlocks.js:251 +#: js/blocks/BooleanBlocks.js:335 +#: js/blocks/BooleanBlocks.js:433 +#: js/blocks/BooleanBlocks.js:539 +#: js/blocks/BooleanBlocks.js:640 +#: js/blocks/BooleanBlocks.js:741 +#: js/blocks/BooleanBlocks.js:847 +#: js/blocks/BooleanBlocks.js:948 +#: js/blocks/BooleanBlocks.js:1033 +#: js/blocks/SensorsBlocks.js:910 +msgid "true" msgstr "" -#: js/toolbar.js:80 -#: js/toolbar.js:138 -#: js/turtledefs.js:583 -msgid "Save music as WAV" +#: js/block-verbose.js:3824 +#: js/block.js:3748 +#: js/blocks.js:2609 +#: js/blocks.js:3220 +#: js/blocks/BooleanBlocks.js:79 +#: js/blocks/BooleanBlocks.js:169 +#: js/blocks/BooleanBlocks.js:253 +#: js/blocks/BooleanBlocks.js:337 +#: js/blocks/BooleanBlocks.js:435 +#: js/blocks/BooleanBlocks.js:541 +#: js/blocks/BooleanBlocks.js:642 +#: js/blocks/BooleanBlocks.js:743 +#: js/blocks/BooleanBlocks.js:849 +#: js/blocks/BooleanBlocks.js:950 +#: js/blocks/SensorsBlocks.js:912 +msgid "false" msgstr "" -#: js/toolbar.js:81 -#: js/toolbar.js:139 -#: js/turtledefs.js:587 -msgid "Save sheet music as ABC" +#: js/block-verbose.js:3835 +#: js/block-verbose.js:3848 +#: js/block.js:3759 +#: js/block.js:3772 +#: js/blocks/ExtrasBlocks.js:615 +msgid "Cartesian" msgstr "" -#: js/toolbar.js:82 -#: js/toolbar.js:140 -#: js/turtledefs.js:591 -msgid "Save sheet music as Lilypond" +#: js/block-verbose.js:3836 +#: js/block-verbose.js:3849 +#: js/block.js:3760 +#: js/block.js:3773 +#: js/blocks/ExtrasBlocks.js:619 +msgid "polar" msgstr "" -#: js/toolbar.js:83 -msgid "Save sheet music as MusicXML" +#: js/block-verbose.js:3837 +#: js/block-verbose.js:3850 +#: js/block.js:3761 +#: js/block.js:3774 +#: js/blocks/ExtrasBlocks.js:623 +msgid "Cartesian+polar" msgstr "" -#: js/toolbar.js:84 -#: js/toolbar.js:141 -#: js/toolbar.js:149 -#: js/toolbar.js:204 -#: js/toolbar.js:259 -#: js/turtledefs.js:562 -#: js/turtledefs.js:595 -msgid "Save block artwork as SVG" +#: js/block-verbose.js:3838 +#: js/block-verbose.js:3857 +#: js/block.js:3762 +#: js/block.js:3781 +#: js/blocks/ExtrasBlocks.js:652 +msgid "none" msgstr "" -#: js/toolbar.js:85 -#: js/toolbar.js:142 -#: js/toolbar.js:150 -#: js/toolbar.js:205 -#: js/toolbar.js:260 -msgid "Confirm" +#: js/block-verbose.js:3851 +#: js/block.js:3775 +#: js/blocks/ExtrasBlocks.js:628 +msgid "treble" msgstr "" -#: js/toolbar.js:86 -#: js/toolbar.js:151 -#: js/toolbar.js:206 -#: js/toolbar.js:261 -msgid "English (United States)" +#: js/block-verbose.js:3852 +#: js/block.js:3776 +#: js/blocks/ExtrasBlocks.js:632 +msgid "grand staff" msgstr "" -#: js/toolbar.js:87 -#: js/toolbar.js:152 -#: js/toolbar.js:207 -#: js/toolbar.js:262 -msgid "English (United Kingdom)" +#: js/block-verbose.js:3853 +#: js/block.js:3777 +#: js/blocks/ExtrasBlocks.js:636 +msgid "mezzo-soprano" msgstr "" -#: js/toolbar.js:88 -#: js/toolbar.js:153 -#: js/toolbar.js:208 -#: js/toolbar.js:263 -msgid "日本語" +#: js/block-verbose.js:3854 +#: js/block.js:3778 +#: js/blocks/ExtrasBlocks.js:640 +msgid "alto" msgstr "" -#: js/toolbar.js:89 -msgid "한국어" +#: js/block-verbose.js:3855 +#: js/block.js:3779 +#: js/blocks/ExtrasBlocks.js:644 +msgid "tenor" msgstr "" -#: js/toolbar.js:90 -#: js/toolbar.js:155 -#: js/toolbar.js:210 -#: js/toolbar.js:265 -msgid "español" +#: js/block-verbose.js:3856 +#: js/block.js:3780 +#: js/utils/musicutils.js:1115 +#: js/utils/synthutils.js:80 +#: js/blocks/ExtrasBlocks.js:648 +#.TRANS: musical instrument +msgid "bass" msgstr "" -#: js/toolbar.js:91 -#: js/toolbar.js:156 -#: js/toolbar.js:211 -#: js/toolbar.js:266 -msgid "português" +#: js/block-verbose.js:3901 +#: js/block.js:3825 +#: js/blocks.js:2600 +#: js/blocks.js:3211 +msgid "on2" msgstr "" -#: js/toolbar.js:92 -#: js/toolbar.js:157 -#: js/toolbar.js:212 -#: js/toolbar.js:267 -msgid "にほんご" +#: js/block-verbose.js:3903 +#: js/block.js:3827 +#: js/blocks.js:2602 +#: js/blocks.js:3213 +msgid "off" msgstr "" -#: js/toolbar.js:93 -#: js/toolbar.js:158 -#: js/toolbar.js:213 -#: js/toolbar.js:268 -msgid "中文" +#: js/block-verbose.js:4470 +#: js/block.js:4394 +msgid "Not a number" msgstr "" -#: js/toolbar.js:94 -#: js/toolbar.js:159 -#: js/toolbar.js:214 -#: js/toolbar.js:269 -msgid "ภาษาไทย" +#: js/block-verbose.js:4477 +#: js/block.js:4401 +msgid "Octave value must be between 1 and 10." msgstr "" -#: js/toolbar.js:95 -#: js/toolbar.js:160 -#: js/toolbar.js:215 -#: js/toolbar.js:270 -msgid "aymara" +#: js/block-verbose.js:4485 +#: js/block.js:4409 +msgid "Numbers can have at most 10 digits." msgstr "" -#: js/toolbar.js:96 -#: js/toolbar.js:161 -#: js/toolbar.js:216 -#: js/toolbar.js:271 -msgid "quechua" +#: js/activity.js:390 +#: js/activity.js:395 +msgid "Search for blocks" msgstr "" -#: js/toolbar.js:97 -#: js/toolbar.js:162 -#: js/toolbar.js:217 -#: js/toolbar.js:272 -msgid "guarani" +#: js/activity.js:1413 +msgid "Refresh your browser to change to advanced mode." msgstr "" -#: js/toolbar.js:98 -#: js/toolbar.js:163 -#: js/toolbar.js:218 -#: js/toolbar.js:273 -msgid "हिंदी" +#: js/activity.js:1418 +msgid "Refresh your browser to change to beginner mode." msgstr "" -#: js/toolbar.js:99 -#: js/toolbar.js:165 -#: js/toolbar.js:219 -#: js/toolbar.js:275 -msgid "igbo" +#: js/activity.js:1477 +msgid "Catching mice" +msgstr "" + +#: js/activity.js:1478 +msgid "Cleaning the instruments" +msgstr "" + +#: js/activity.js:1479 +msgid "Testing key pieces" +msgstr "" + +#: js/activity.js:1480 +msgid "Sight-reading" +msgstr "" + +#: js/activity.js:1481 +msgid "Combining math and music" msgstr "" -#: js/toolbar.js:100 -#: js/toolbar.js:166 -#: js/toolbar.js:220 -#: js/toolbar.js:276 -msgid "عربى" +#: js/activity.js:1482 +msgid "Generating more blocks" msgstr "" -#: js/toolbar.js:101 -#: js/toolbar.js:164 -#: js/toolbar.js:221 -#: js/toolbar.js:274 -msgid "తెలుగు" +#: js/activity.js:1483 +msgid "Do Re Mi Fa Sol La Ti Do" msgstr "" -#: js/toolbar.js:102 -#: js/toolbar.js:167 -#: js/toolbar.js:222 -#: js/toolbar.js:277 -msgid "עִברִית" +#: js/activity.js:1484 +msgid "Tuning string instruments" msgstr "" -#: js/toolbar.js:111 -#: js/toolbar.js:175 -#: js/toolbar.js:176 -#: js/toolbar.js:231 -msgid "Full Screen" +#: js/activity.js:1485 +msgid "Pressing random keys" msgstr "" -#: js/toolbar.js:145 -#: js/toolbar.js:148 -#: js/toolbar.js:200 -#: js/toolbar.js:203 -#: js/toolbar.js:255 -#: js/toolbar.js:258 -#: js/turtledefs.js:558 -msgid "Save turtle artwork as PNG" +#: js/activity.js:1663 +msgid "plugins will be removed upon restart." msgstr "" -#: js/toolbar.js:147 -#: js/toolbar.js:202 -#: js/toolbar.js:257 -#: js/turtledefs.js:554 -msgid "Save turtle artwork as SVG" +#: js/activity.js:1672 +msgid "show Cartesian" msgstr "" -#: js/toolbar.js:154 -#: js/toolbar.js:209 -#: js/toolbar.js:264 -msgid "한국인" +#: js/activity.js:2211 +#: js/palette.js:589 +#: js/blocks/RhythmBlocks.js:923 +#: js/blocks/PitchBlocks.js:442 +#: js/blocks/PitchBlocks.js:1786 +#.TRANS: a numeric mapping of the notes in an octave based on the musical mode +msgid "scale degree" msgstr "" -#: js/toolbar.js:171 -#: js/toolbar.js:227 -msgid "About Turtle Blocks" +#: js/activity.js:2214 +#: js/palette.js:598 +msgid "voice name" msgstr "" -#: js/toolbar.js:429 -#: js/toolbar.js:440 -msgid "Turtle Wrap Off" +#: js/activity.js:2217 +#: js/palette.js:595 +msgid "invert mode" msgstr "" -#: js/toolbar.js:442 -msgid "Turtle Wrap On" +#: js/activity.js:2220 +msgid "output tools" msgstr "" -#: js/block.js:1470 -msgid "matrix" +#: js/activity.js:2223 +msgid "custom note" msgstr "" -#: js/block.js:1477 -#: js/WidgetBlocks.js:1226 -#: plugins/rodi.rtp:324 -msgid "status" +#: js/activity.js:2226 +msgid "accidental name" msgstr "" -#: js/block.js:1484 -msgid "drum mapper" +#: js/activity.js:2229 +#: js/blocks/PitchBlocks.js:855 +msgid "east indian solfege" msgstr "" -#: js/block.js:1491 -msgid "ruler" +#: js/activity.js:2232 +#: js/blocks/PitchBlocks.js:869 +msgid "note name" msgstr "" -#: js/block.js:1498 -#: js/WidgetBlocks.js:327 -#.TRANS: timbre is the character or quality of a musical sound -msgid "timbre" +#: js/activity.js:2235 +#: js/blocks/IntervalsBlocks.js:94 +msgid "temperament name" msgstr "" -#: js/block.js:1505 -msgid "stair" +#: js/activity.js:2238 +#: js/palette.js:592 +msgid "mode name" msgstr "" -#: js/block.js:1512 -#: js/WidgetBlocks.js:577 -#.TRANS: the speed at music is should be played. -msgid "tempo" +#: js/activity.js:2241 +msgid "chord name" msgstr "" -#: js/block.js:1519 -#: js/block.js:1582 -#: js/IntervalsBlocks.js:1268 -#.TRANS: mode, e.g., Major in C Major -msgid "mode" +#: js/activity.js:2244 +#: js/palette.js:615 +msgid "interval name" msgstr "" -#: js/block.js:1526 -msgid "slider" +#: js/activity.js:2247 +msgid "filter type" msgstr "" -#: js/block.js:1533 -#: js/SensorsBlocks.js:1001 -msgid "keyboard" +#: js/activity.js:2250 +msgid "oscillator type" msgstr "" -#: js/block.js:1547 -#: js/WidgetBlocks.js:957 -#: js/WidgetBlocks.js:988 -#.TRANS: widget for subdividing a measure into distinct rhythmic elements -msgid "rhythm maker" +#: js/activity.js:2253 +#: js/blocks.js:2479 +#: js/blocks.js:2487 +msgid "audio file" msgstr "" -#: js/block.js:1554 -#: js/block.js:2182 -#: js/block.js:2236 -#: js/RhythmBlockPaletteBlocks.js:70 -#: js/RhythmBlockPaletteBlocks.js:251 -#: js/RhythmBlockPaletteBlocks.js:484 -#: js/RhythmBlockPaletteBlocks.js:553 -#: js/RhythmBlockPaletteBlocks.js:604 -#: js/RhythmBlockPaletteBlocks.js:874 -#: js/RhythmBlocks.js:33 -#: js/RhythmBlocks.js:356 -#: js/RhythmBlocks.js:766 -#: js/RhythmBlocks.js:806 -#: js/OrnamentBlocks.js:220 -#: js/OrnamentBlocks.js:312 -#: js/MeterBlocks.js:1367 -#: js/DictActions.js:85 -#: js/phrasemaker.js:731 -#: js/phrasemaker.js:2393 -#: js/phrasemaker.js:2436 -#: js/phrasemaker.js:2534 -#.TRANS: the value (e.g., 1/4 note) of the note being played. -msgid "note value" +#: js/activity.js:2256 +#: js/blocks/DrumBlocks.js:32 +msgid "noise name" msgstr "" -#: js/block.js:1561 -#: js/block.js:2110 -#: js/block.js:2133 -#: js/IntervalsBlocks.js:875 -#: js/OrnamentBlocks.js:312 -#.TRANS: calculate a relative step between notes based on semi-tones -msgid "scalar interval" +#: js/activity.js:2259 +#: js/blocks/DrumBlocks.js:75 +msgid "drum name" msgstr "" -#: js/block.js:1568 -#: js/RhythmBlocks.js:148 -msgid "milliseconds" +#: js/activity.js:2262 +#: js/blocks/DrumBlocks.js:119 +msgid "effects name" msgstr "" -#: js/block.js:2180 -#: js/block.js:2184 -#: js/block.js:2234 -#: js/block.js:2345 -#: js/ProgramBlocks.js:1273 -#: js/RhythmBlocks.js:712 -#: js/rhythmruler.js:834 -#: js/rhythmruler.js:961 -msgid "silence" +#: js/activity.js:2265 +msgid "wrap mode" msgstr "" -#: js/block.js:2265 -#: js/block.js:3134 -#: js/block.js:3151 -#: js/activity.js:2336 -#: js/activity.js:2387 -#: js/musicutils.js:2932 -#: js/musicutils.js:4287 -#.TRANS: the note names must be separated by single spaces -#.TRANS: the note names must be separated by single spaces -msgid "ti la sol fa mi re do" +#: js/activity.js:2268 +msgid "load file" msgstr "" -#: js/block.js:2333 -#.TRANS: scalar step -msgid "down" +#: js/activity.js:2435 +#: js/activity.js:5851 +msgid "This block is deprecated." msgstr "" -#: js/block.js:2334 -msgid "up" +#: js/activity.js:2437 +#: js/activity.js:5853 +msgid "Block cannot be found." msgstr "" -#: js/block.js:3477 -#: js/block.js:3490 -#: js/ExtrasBlocks.js:612 -msgid "Cartesian" +#: js/activity.js:2645 +msgid "Saving block artwork" msgstr "" -#: js/block.js:3478 -#: js/block.js:3491 -#: js/ExtrasBlocks.js:616 -msgid "polar" +#: js/activity.js:2656 +msgid "Erase" msgstr "" -#: js/block.js:3479 -#: js/block.js:3492 -#: js/ExtrasBlocks.js:620 -msgid "Cartesian+polar" +#: js/activity.js:2683 +#: js/activity.js:2705 +msgid "Paste" msgstr "" -#: js/block.js:3480 -#: js/block.js:3499 -#: js/ExtrasBlocks.js:649 -msgid "none" +#: js/activity.js:2687 +msgid "Save block help" msgstr "" -#: js/block.js:3493 -#: js/ExtrasBlocks.js:625 -msgid "treble" +#: js/activity.js:2772 +msgid "Jumping to the bottom of the page." msgstr "" -#: js/block.js:3494 -#: js/ExtrasBlocks.js:629 -msgid "grand staff" +#: js/activity.js:2778 +msgid "Scrolling up." msgstr "" -#: js/block.js:3495 -#: js/ExtrasBlocks.js:633 -msgid "mezzo-soprano" +#: js/activity.js:2783 +msgid "Scrolling down." msgstr "" -#: js/block.js:3496 -#: js/ExtrasBlocks.js:637 -msgid "alto" +#: js/activity.js:2788 +msgid "Extracting block" msgstr "" -#: js/block.js:3497 -#: js/ExtrasBlocks.js:641 -msgid "tenor" +#: js/activity.js:2796 +msgid "Moving block up." msgstr "" -#: js/block.js:3498 -#: js/ExtrasBlocks.js:645 -#: js/musicutils.js:736 -#: js/synthutils.js:64 -#.TRANS: musical instrument -msgid "bass" +#: js/activity.js:2817 +msgid "Moving block down." msgstr "" -#: js/block.js:4075 -msgid "Not a number" +#: js/activity.js:2838 +msgid "Moving block left." msgstr "" -#: js/block.js:4082 -msgid "Octave value must be between 1 and 10." +#: js/activity.js:2855 +msgid "Moving block right." msgstr "" -#: js/block.js:4090 -msgid "Numbers can have at most 10 digits." +#: js/activity.js:2870 +msgid "Jump to home position." msgstr "" -#: js/notation.js:353 -msgid "Lilypond cannot process pickup of " +#: js/activity.js:2897 +msgid "Hide blocks" msgstr "" -#: js/turtledefs.js:40 -#.TRANS: put the URL to the guide here, e.g., https://github.com/sugarlabs/turtleblocksjs/tree/master/guide/README.md -msgid "guide url" +#: js/activity.js:4500 +msgid "Click the run button to run the project." msgstr "" -#: js/turtledefs.js:85 -#: js/turtledefs.js:437 -msgid "Turtle Blocks is a Logo-inspired turtle that draws colorful pictures with snap-together visual-programming blocks." +#: js/activity.js:5692 +msgid "Show/hide block" msgstr "" -#: js/turtledefs.js:118 -#: js/turtledefs.js:220 -msgid "search" +#: js/activity.js:5698 +msgid "Expand/collapse blocks" msgstr "" -#: js/turtledefs.js:120 -#: js/turtledefs.js:222 -#: js/WidgetBlocks.js:437 -#: js/MeterBlocks.js:1343 -#.TRANS: musical meter (time signature), e.g., 4:4 -msgid "meter" +#: js/activity.js:5976 +msgid "Could not parse JSON input." msgstr "" -#: js/turtledefs.js:122 -#: js/turtledefs.js:224 -msgid "intervals" +#: js/activity.js:6475 +#: js/activity.js:6580 +#: js/activity.js:6631 +msgid "Cannot load project from the file. Please check the file type." msgstr "" -#: js/turtledefs.js:124 -#: js/turtledefs.js:226 -msgid "ornament" +#: js/activity.js:6917 +msgid "Invalid parameters" msgstr "" -#: js/turtledefs.js:125 -#: js/turtledefs.js:227 -#: js/VolumeBlocks.js:362 -#: js/VolumeBlocks.js:502 -#: js/VolumeBlocks.js:545 -msgid "volume" +#: js/blocks.js:1212 +#: js/blocks.js:3444 +#: js/blocks.js:3834 +#: js/blocks.js:3865 +#: js/blocks.js:3914 +#: js/blocks.js:3949 +#: js/blocks.js:6586 +#: js/palette.js:509 +#: js/palette.js:638 +#: js/palette.js:1105 +#: js/blocks/BoxesBlocks.js:282 +#: js/blocks/BoxesBlocks.js:285 +#: js/blocks/BoxesBlocks.js:405 +#: js/blocks/BoxesBlocks.js:594 +msgid "box" msgstr "" -#: js/turtledefs.js:129 -#: js/turtledefs.js:231 -msgid "boxes" +#: js/blocks.js:1713 +msgid "Consider breaking this stack into parts." msgstr "" -#: js/turtledefs.js:130 -#: js/turtledefs.js:232 -msgid "widgets" +#: js/blocks.js:2472 +#: js/palette.js:653 +#: js/blocks/MediaBlocks.js:602 +msgid "open file" msgstr "" -#: js/turtledefs.js:131 -#: js/turtledefs.js:233 -#: js/phrasemaker.js:824 -msgid "graphics" +#: js/blocks.js:3247 +#: js/palette.js:574 +#: js/blocks/MediaBlocks.js:892 +#: js/blocks/MediaBlocks.js:963 +msgid "text" msgstr "" -#: js/turtledefs.js:134 -#: js/turtledefs.js:236 -msgid "boolean" +#: js/blocks.js:3443 +#: js/palette.js:641 +#: js/palette.js:642 +#: js/blocks/BoxesBlocks.js:514 +msgid "store in box" msgstr "" -#: js/turtledefs.js:137 -#: js/turtledefs.js:239 -#: js/HeapBlocks.js:59 -#: js/status.js:147 -msgid "heap" +#: js/blocks.js:3448 +#: js/blocks.js:3888 +#: js/blocks.js:3923 +#: js/blocks.js:3958 +#: js/blocks.js:5862 +#: js/blocks.js:5883 +#: js/blocks/BoxesBlocks.js:772 +msgid "box1" msgstr "" -#: js/turtledefs.js:138 -#: js/turtledefs.js:240 -#: js/ProgramBlocks.js:495 -#: js/DictBlocks.js:142 -msgid "dictionary" +#: js/blocks.js:3450 +#: js/blocks.js:3890 +#: js/blocks.js:3925 +#: js/blocks.js:3960 +#: js/blocks.js:5864 +#: js/blocks.js:5885 +#: js/blocks/BoxesBlocks.js:663 +msgid "box2" msgstr "" -#: js/turtledefs.js:139 -#: js/turtledefs.js:241 -msgid "ensemble" +#: js/blocks.js:4122 +#: js/palette.js:639 +#: js/palette.js:644 +#: js/palette.js:1041 +#: js/blocks/BoxesBlocks.js:591 +msgid "store in" msgstr "" -#: js/turtledefs.js:140 -#: js/turtledefs.js:242 -msgid "extras" +#: js/blocks.js:4122 +#: js/blocks/BoxesBlocks.js:595 +#: js/blocks/DictBlocks.js:215 +#: js/blocks/DictBlocks.js:289 +#: js/blocks/EnsembleBlocks.js:391 +#: js/blocks/EnsembleBlocks.js:402 +#: js/blocks/MediaBlocks.js:746 +#: js/blocks/PitchBlocks.js:656 +#: js/blocks/PitchBlocks.js:934 +#: js/blocks/PitchBlocks.js:1866 +#: js/blocks/ProgramBlocks.js:390 +#: js/blocks/ProgramBlocks.js:495 +#: js/blocks/ProgramBlocks.js:658 +#: js/blocks/ToneBlocks.js:1025 +msgid "name" msgstr "" -#: js/turtledefs.js:142 -#: js/turtledefs.js:244 -#.TRANS: program as in computer program -#.TRANS: program as in computer program -msgid "program" +#: js/blocks.js:4122 +#: js/blocks/BoxesBlocks.js:75 +#: js/blocks/BoxesBlocks.js:595 +#: js/blocks/DictBlocks.js:289 +#: js/blocks/DictBlocks.js:430 +#: js/blocks/HeapBlocks.js:544 +#: js/blocks/RhythmBlocks.js:1130 +msgid "value" msgstr "" -#: js/turtledefs.js:143 -#: js/turtledefs.js:245 -msgid "my blocks" +#: js/blocks.js:4465 +msgid "Forever loop detected inside a note value block. Unexpected things may happen." msgstr "" -#: js/turtledefs.js:185 -#: js/turtledefs.js:281 -msgid "artwork" +#: js/blocks.js:4988 +msgid "There is no block selected." msgstr "" -#: js/turtledefs.js:185 -#: js/turtledefs.js:281 -msgid "logic" +#: js/blocks.js:5091 +#: js/blocks/MediaBlocks.js:888 +msgid "show" msgstr "" -#: js/turtledefs.js:185 -#: js/turtledefs.js:281 -msgid "music" +#: js/blocks.js:5094 +#: js/blocks/MediaBlocks.js:803 +#.TRANS: Avatar is the image used to determine the appearance of the mouse. +msgid "avatar" msgstr "" -#: js/turtledefs.js:187 -#: js/turtledefs.js:463 -msgid "Music Blocks is a collection of tools for exploring fundamental musical concepts in a fun way." +#: js/blocks.js:5097 +#: js/blocks/ToneBlocks.js:1010 +#: js/widgets/sampler.js:975 +#.TRANS: The sound sample that the user uploads. +msgid "sample" msgstr "" -#: js/turtledefs.js:436 -msgid "Welcome to Turtle Blocks" +#: js/lilypond.js:606 +msgid "brown rat" msgstr "" -#: js/turtledefs.js:438 -#: js/turtledefs.js:465 -#: js/turtledefs.js:774 -#: js/turtledefs.js:805 -msgid "The current version is" +#: js/lilypond.js:607 +msgid "mole" msgstr "" -#: js/turtledefs.js:446 -#: js/turtledefs.js:483 -msgid "Click the run button to run the project in fast mode." +#: js/lilypond.js:608 +msgid "chipmunk" msgstr "" -#: js/turtledefs.js:452 -msgid "Stop the turtle." +#: js/lilypond.js:609 +msgid "red squirrel" msgstr "" -#: js/turtledefs.js:454 -#: js/turtledefs.js:491 -msgid "You can also type Alt-S to stop." +#: js/lilypond.js:610 +msgid "guinea pig" +msgstr "" + +#: js/lilypond.js:611 +msgid "capybara" msgstr "" -#: js/turtledefs.js:462 -#: js/help.js:333 -msgid "Welcome to Music Blocks" +#: js/lilypond.js:612 +msgid "coypu" msgstr "" -#: js/turtledefs.js:472 -#: js/help.js:334 -msgid "Meet Mr. Mouse!" +#: js/lilypond.js:613 +msgid "black rat" msgstr "" -#: js/turtledefs.js:473 -msgid "Mr Mouse is our Music Blocks conductor." +#: js/lilypond.js:614 +msgid "grey squirrel" msgstr "" -#: js/turtledefs.js:475 -msgid "Mr Mouse encourages you to explore Music Blocks." +#: js/lilypond.js:615 +msgid "flying squirrel" msgstr "" -#: js/turtledefs.js:477 -msgid "Let us start our tour!" +#: js/lilypond.js:616 +msgid "bat" msgstr "" -#: js/turtledefs.js:489 -msgid "Stop the music (and the mice)." +#: js/lilypond.js:749 +#: js/lilypond.js:913 +#: js/lilypond.js:951 +#: js/blocks/ActionBlocks.js:1256 +#: js/blocks/ExtrasBlocks.js:556 +msgid "start drum" msgstr "" -#: js/turtledefs.js:499 -msgid "Record your project as video." +#: js/logo.js:61 +msgid "Not a valid pitch name" msgstr "" -#: js/turtledefs.js:505 -msgid "Toggle Fullscreen mode." +#: js/logo.js:507 +#: js/blocks/ProgramBlocks.js:258 +#: js/blocks/ProgramBlocks.js:427 +msgid "You must select a file." msgstr "" -#: js/turtledefs.js:511 -msgid "Initialize a new project." +#: js/logo.js:1696 +msgid "Playback is ready." msgstr "" -#: js/turtledefs.js:517 -msgid "You can also load projects from the file system." +#: js/macros.js:711 +#: js/utils/musicutils.js:1162 +#: js/utils/synthutils.js:202 +#.TRANS: animal sound effect +msgid "duck" msgstr "" -#: js/turtledefs.js:522 -#: js/StringHelper.js:46 -msgid "Delete" +#: js/notation.js:353 +msgid "Lilypond cannot process pickup of " msgstr "" -#: js/turtledefs.js:523 -msgid "To delete a block, just right-click on it, then you will be able to see the delete option" +#: js/palette.js:571 +msgid "grid" msgstr "" -#: js/turtledefs.js:528 -#: js/activity.js:2270 -#: js/LocalCard.js:31 -msgid "Copy" +#: js/palette.js:580 +msgid "effect" msgstr "" -#: js/turtledefs.js:529 -msgid "To copy a block, just right-click on it, then you will be able to see the copy option" +#: js/palette.js:586 +msgid "sargam" msgstr "" -#: js/turtledefs.js:535 -msgid "To extract a block, just right-click on it, then you will be able to see the extract option" +#: js/palette.js:601 +#: js/blocks/PitchBlocks.js:1209 +msgid "custom pitch" msgstr "" -#: js/turtledefs.js:542 -#: js/turtledefs.js:552 -#: js/turtledefs.js:573 -msgid "Save your project to a file." +#: js/palette.js:609 +msgid "accidental" msgstr "" -#: js/turtledefs.js:549 -#: js/turtledefs.js:570 -msgid "save" +#: js/palette.js:633 +#: js/blocks/PitchBlocks.js:405 +msgid "pitch converter" msgstr "" -#: js/turtledefs.js:556 -#: js/turtledefs.js:577 -msgid "Save graphics from your project to as SVG." +#: js/piemenus.js:200 +#: js/utils/musicutils.js:1187 +#: js/utils/musicutils.js:1207 +#: js/widgets/musickeyboard.js:2341 +#: js/widgets/phrasemaker.js:1908 +#: js/widgets/sampler.js:810 +#.TRANS: double sharp is a music term related to pitch +msgid "double sharp" msgstr "" -#: js/turtledefs.js:560 -#: js/turtledefs.js:581 -msgid "Save graphics from your project as PNG." +#: js/piemenus.js:201 +#: js/utils/musicutils.js:1185 +#: js/utils/musicutils.js:1208 +#: js/blocks/PitchBlocks.js:1539 +#: js/turtleactions/PitchActions.js:323 +#: js/widgets/musickeyboard.js:2342 +#: js/widgets/phrasemaker.js:1909 +#: js/widgets/sampler.js:811 +#.TRANS: sharp is a music term related to pitch +#.TRANS: sharp is a half-step up in pitch +msgid "sharp" msgstr "" -#: js/turtledefs.js:564 -#: js/turtledefs.js:597 -msgid "Save block artwork as an SVG file." +#: js/piemenus.js:202 +#: js/utils/musicutils.js:1183 +#: js/utils/musicutils.js:1209 +#: js/widgets/musickeyboard.js:2343 +#: js/widgets/phrasemaker.js:1910 +#: js/widgets/sampler.js:812 +#.TRANS: natural is a music term related to pitch +msgid "natural" msgstr "" -#: js/turtledefs.js:585 -msgid "Save audio from your project as WAV." +#: js/piemenus.js:203 +#: js/utils/musicutils.js:1181 +#: js/utils/musicutils.js:1210 +#: js/blocks/PitchBlocks.js:1498 +#: js/turtleactions/PitchActions.js:326 +#: js/widgets/musickeyboard.js:2344 +#: js/widgets/phrasemaker.js:1911 +#: js/widgets/sampler.js:813 +#.TRANS: flat is a music term related to pitch +#.TRANS: flat is a half-step down in pitch +msgid "flat" msgstr "" -#: js/turtledefs.js:589 -msgid "Save your project to as an ABC file." +#: js/piemenus.js:204 +#: js/utils/musicutils.js:1179 +#: js/utils/musicutils.js:1211 +#: js/widgets/musickeyboard.js:2345 +#: js/widgets/phrasemaker.js:1912 +#: js/widgets/sampler.js:814 +#.TRANS: double flat is a music term related to pitch +msgid "double flat" msgstr "" -#: js/turtledefs.js:593 -msgid "Save your project to as a Lilypond file." +#: js/piemenus.js:2864 +#: js/utils/musicutils.js:1006 +#: js/blocks/PitchBlocks.js:1385 +#.TRANS: unison is a music term related to intervals +#.TRANS: unison means the note is the same as the current note +msgid "unison" msgstr "" -#: js/turtledefs.js:604 -msgid "Load samples from server" +#: js/piemenus.js:3018 +#: js/piemenus.js:3091 +#: js/utils/musicutils.js:1014 +#: js/utils/musicutils.js:1189 +#: js/utils/musicutils.js:1326 +#.TRANS: major is a music term related to intervals and mode +msgid "major" msgstr "" -#: js/turtledefs.js:605 -msgid "This button opens a viewer for loading example projects." +#: js/piemenus.js:3018 +#: js/piemenus.js:3091 +#: js/utils/musicutils.js:1032 +#.TRANS: modal scale for music +msgid "ionian" msgstr "" -#: js/turtledefs.js:611 -msgid "Palette buttons" +#: js/piemenus.js:3020 +#: js/piemenus.js:3095 +#: js/utils/musicutils.js:1012 +#: js/utils/musicutils.js:1190 +#: js/utils/musicutils.js:1323 +#.TRANS: minor is a music term related to intervals and mode +msgid "minor" msgstr "" -#: js/turtledefs.js:612 -msgid "This toolbar contains the palette buttons including Rhythm Pitch Tone Action and more." +#: js/piemenus.js:3020 +#: js/piemenus.js:3095 +#: js/utils/musicutils.js:1042 +#.TRANS: modal scale for music +msgid "aeolian" msgstr "" -#: js/turtledefs.js:614 -msgid "Click to show the palettes of blocks and drag blocks from the palettes onto the canvas to use them." +#: js/piemenus.js:3410 +msgid "Duplicate" msgstr "" -#: js/turtledefs.js:620 -msgid "Cartesian/Polar" +#: js/piemenus.js:3412 +msgid "Move to trash" msgstr "" -#: js/turtledefs.js:621 -msgid "Show or hide a coordinate grid." +#: js/piemenus.js:3413 +#: js/widgets/timbre.js:968 +#: planet/js/StringHelper.js:69 +msgid "Close" msgstr "" -#: js/turtledefs.js:627 -msgid "Clear the screen and return the mice to their initial positions." +#: js/piemenus.js:3419 +msgid "Save stack" msgstr "" -#: js/turtledefs.js:633 -msgid "Collapse the graphics window." +#: js/piemenus.js:3449 +msgid "In order to copy a sample, you must reload the widget, import the sample again, and export it." msgstr "" -#: js/turtledefs.js:638 -#: js/activity.js:4256 -#: js/activity.js:4256 -msgid "Home" +#: js/piemenus.js:3812 +msgid "You have chosen key " msgstr "" -#: js/turtledefs.js:639 -msgid "Return all blocks to the center of the screen." +#: js/piemenus.js:3816 +msgid " for your pitch preview." msgstr "" -#: js/turtledefs.js:644 -msgid "Show/hide blocks" +#: js/turtle-singer.js:1363 +#.TRANS: partials are weighted components in a harmonic series +msgid "You must have at least one Partial block inside of a Weighted-partial block" msgstr "" -#: js/turtledefs.js:645 -msgid "Hide or show the blocks and the palettes." +#: js/turtle-singer.js:2077 +msgid "synth cannot play chords." msgstr "" -#: js/turtledefs.js:650 -msgid "Expand/collapse collapsable blocks" +#: js/utils/musicutils.js:505 +#: js/utils/musicutils.js:645 +#: js/widgets/pitchdrummatrix.js:228 +#: js/widgets/musickeyboard.js:2885 +msgid "rest" msgstr "" -#: js/turtledefs.js:651 -msgid "Expand or collapse start and action stacks." +#: js/utils/musicutils.js:689 +msgid "Perfect unison" msgstr "" -#: js/turtledefs.js:658 -#: js/activity.js:4265 -msgid "Decrease block size" +#: js/utils/musicutils.js:689 +msgid "Diminished second" msgstr "" -#: js/turtledefs.js:659 -msgid "Decrease the size of the blocks." +#: js/utils/musicutils.js:690 +msgid "Minor second" msgstr "" -#: js/turtledefs.js:664 -#: js/activity.js:4267 -msgid "Increase block size" +#: js/utils/musicutils.js:690 +msgid "Augmented unison" msgstr "" -#: js/turtledefs.js:665 -msgid "Increase the size of the blocks." +#: js/utils/musicutils.js:691 +msgid "Major second" msgstr "" -#: js/turtledefs.js:670 -msgid "Expand/collapse option toolbar" +#: js/utils/musicutils.js:691 +msgid "Diminished third" msgstr "" -#: js/turtledefs.js:671 -msgid "Click this button to expand or collapse the auxillary toolbar." +#: js/utils/musicutils.js:692 +msgid "Minor third" msgstr "" -#: js/turtledefs.js:676 -msgid "Run slow" +#: js/utils/musicutils.js:692 +msgid "Augmented second" msgstr "" -#: js/turtledefs.js:677 -msgid "Click to run the project in slow mode." +#: js/utils/musicutils.js:693 +msgid "Major third" msgstr "" -#: js/turtledefs.js:683 -msgid "Click to run the project step by step." +#: js/utils/musicutils.js:693 +msgid "Diminished fourth" msgstr "" -#: js/turtledefs.js:690 -msgid "Display statistics about your Music project." +#: js/utils/musicutils.js:694 +msgid "Perfect fourth" msgstr "" -#: js/turtledefs.js:697 -msgid "Delete a selected plugin." +#: js/utils/musicutils.js:694 +msgid "Augmented third" msgstr "" -#: js/turtledefs.js:704 -msgid "Enable scrolling" +#: js/utils/musicutils.js:695 +msgid "Diminished fifth" msgstr "" -#: js/turtledefs.js:705 -msgid "You can scroll the blocks on the canvas." +#: js/utils/musicutils.js:695 +msgid "Augmented fourth" msgstr "" -#: js/turtledefs.js:714 -msgid "Wrap Turtle" +#: js/utils/musicutils.js:696 +msgid "Perfect fifth" msgstr "" -#: js/turtledefs.js:715 -msgid "Turn Turtle wrapping On or Off." +#: js/utils/musicutils.js:696 +msgid "Diminished sixth" msgstr "" -#: js/turtledefs.js:725 -msgid "Restore blocks from the trash." +#: js/utils/musicutils.js:697 +msgid "Minor sixth" msgstr "" -#: js/turtledefs.js:732 -msgid "Switch mode" +#: js/utils/musicutils.js:697 +msgid "Augmented fifth" msgstr "" -#: js/turtledefs.js:733 -msgid "Switch between beginner and advance modes." +#: js/utils/musicutils.js:698 +msgid "Major sixth" msgstr "" -#: js/turtledefs.js:739 -msgid "Select your language preference." +#: js/utils/musicutils.js:698 +msgid "Diminished seventh" msgstr "" -#: js/turtledefs.js:745 -msgid "Keyboard shortcuts" +#: js/utils/musicutils.js:699 +msgid "Minor seventh" msgstr "" -#: js/turtledefs.js:746 -msgid "You can type d to create a do block and r to create a re block etc." +#: js/utils/musicutils.js:699 +msgid "Augmented sixth" msgstr "" -#: js/turtledefs.js:753 -msgid "Show these messages." +#: js/utils/musicutils.js:700 +msgid "Major seventh" msgstr "" -#: js/turtledefs.js:759 -#: js/turtledefs.js:790 -#: js/help.js:335 -msgid "Guide" +#: js/utils/musicutils.js:700 +msgid "Diminished octave" msgstr "" -#: js/turtledefs.js:760 -msgid "A detailed guide to Turtle Blocks is available." +#: js/utils/musicutils.js:701 +msgid "Perfect octave" msgstr "" -#: js/turtledefs.js:764 -msgid "Turtle Blocks Guide" +#: js/utils/musicutils.js:701 +msgid "Augmented seventh" msgstr "" -#: js/turtledefs.js:767 -#: js/turtledefs.js:798 -#: js/help.js:336 -msgid "About" +#: js/utils/musicutils.js:702 +msgid "Minor ninth" msgstr "" -#: js/turtledefs.js:768 -msgid "Turtle Blocks is an open source collection of tools for exploring musical concepts." +#: js/utils/musicutils.js:702 +msgid "Augmented octave" msgstr "" -#: js/turtledefs.js:770 -msgid "A full list of contributors can be found in the Turtle Blocks GitHub repository." +#: js/utils/musicutils.js:703 +msgid "Major ninth" msgstr "" -#: js/turtledefs.js:772 -msgid "Turtle Blocks is licensed under the AGPL." +#: js/utils/musicutils.js:703 +msgid "Diminished tenth" msgstr "" -#: js/turtledefs.js:780 -msgid "Turtle Blocks GitHub repository" +#: js/utils/musicutils.js:704 +msgid "Minor tenth" msgstr "" -#: js/turtledefs.js:783 -#: js/turtledefs.js:814 -#: js/help.js:337 -#: js/help.js:359 -msgid "Congratulations." +#: js/utils/musicutils.js:704 +msgid "Augmented ninth" msgstr "" -#: js/turtledefs.js:784 -msgid "You have finished the tour. Please enjoy Turtle Blocks!" +#: js/utils/musicutils.js:705 +msgid "Major tenth" msgstr "" -#: js/turtledefs.js:791 -msgid "A detailed guide to Music Blocks is available." +#: js/utils/musicutils.js:705 +msgid "Diminished eleventh" msgstr "" -#: js/turtledefs.js:795 -#: js/SaveInterface.js:76 -msgid "Music Blocks Guide" +#: js/utils/musicutils.js:706 +msgid "Perfect eleventh" msgstr "" -#: js/turtledefs.js:799 -msgid "Music Blocks is an open source collection of tools for exploring musical concepts." +#: js/utils/musicutils.js:706 +msgid "Augmented tenth" msgstr "" -#: js/turtledefs.js:801 -msgid "A full list of contributors can be found in the Music Blocks GitHub repository." +#: js/utils/musicutils.js:707 +msgid "Diminished twelfth" msgstr "" -#: js/turtledefs.js:803 -msgid "Music Blocks is licensed under the AGPL." +#: js/utils/musicutils.js:707 +msgid "Augmented eleventh" msgstr "" -#: js/turtledefs.js:811 -msgid "Music Blocks GitHub repository" +#: js/utils/musicutils.js:708 +msgid "Perfect twelfth" msgstr "" -#: js/turtledefs.js:815 -msgid "You have finished the tour. Please enjoy Music Blocks!" +#: js/utils/musicutils.js:708 +msgid "Diminished thirteenth" msgstr "" -#: js/activity.js:369 -msgid "Search for blocks" +#: js/utils/musicutils.js:709 +msgid "Minor thirteenth" msgstr "" -#: js/activity.js:1145 -msgid "Refresh your browser to change to advanced mode." +#: js/utils/musicutils.js:709 +msgid "Augmented fifth, plus an octave" msgstr "" -#: js/activity.js:1150 -msgid "Refresh your browser to change to beginner mode." +#: js/utils/musicutils.js:710 +msgid "Major thirteenth" msgstr "" -#: js/activity.js:1184 -msgid "Catching mice" +#: js/utils/musicutils.js:710 +msgid "Diminished seventh, plus an octave" msgstr "" -#: js/activity.js:1185 -msgid "Cleaning the instruments" +#: js/utils/musicutils.js:838 +#.TRANS: ordinal number. Please keep exactly one space between each number. +msgid "1st 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th" msgstr "" -#: js/activity.js:1186 -msgid "Testing key pieces" +#: js/utils/musicutils.js:1008 +#: js/utils/musicutils.js:1191 +#: js/utils/musicutils.js:1325 +#.TRANS: augmented is a music term related to intervals +msgid "augmented" msgstr "" -#: js/activity.js:1187 -msgid "Sight-reading" +#: js/utils/musicutils.js:1010 +#: js/utils/musicutils.js:1192 +#: js/utils/musicutils.js:1324 +#.TRANS: diminished is a music term related to intervals and mode +msgid "diminished" msgstr "" -#: js/activity.js:1188 -msgid "Combining math and music" +#: js/utils/musicutils.js:1016 +#: js/utils/musicutils.js:1322 +#: js/blocks/IntervalsBlocks.js:649 +#: js/turtleactions/IntervalsActions.js:120 +#: js/turtleactions/IntervalsActions.js:124 +#.TRANS: perfect is a music term related to intervals +msgid "perfect" +msgstr "" + +#: js/utils/musicutils.js:1018 +#.TRANS: twelve semi-tone scale for music +msgid "chromatic" msgstr "" -#: js/activity.js:1189 -msgid "Generating more blocks" +#: js/utils/musicutils.js:1019 +msgid "algerian" msgstr "" -#: js/activity.js:1190 -msgid "Do Re Mi Fa Sol La Ti Do" +#: js/utils/musicutils.js:1020 +msgid "spanish" msgstr "" -#: js/activity.js:1191 -msgid "Tuning string instruments" +#: js/utils/musicutils.js:1022 +#.TRANS: modal scale in music +msgid "octatonic" msgstr "" -#: js/activity.js:1192 -msgid "Pressing random keys" +#: js/utils/musicutils.js:1024 +#.TRANS: harmonic major scale in music +msgid "harmonic major" msgstr "" -#: js/activity.js:1351 -msgid "plugins will be removed upon restart." +#: js/utils/musicutils.js:1026 +#.TRANS: natural minor scales in music +msgid "natural minor" msgstr "" -#: js/activity.js:1360 -msgid "show Cartesian" +#: js/utils/musicutils.js:1028 +#.TRANS: harmonic minor scale in music +msgid "harmonic minor" msgstr "" -#: js/activity.js:1842 -msgid "output tools" +#: js/utils/musicutils.js:1030 +#.TRANS: melodic minor scale in music +msgid "melodic minor" msgstr "" -#: js/activity.js:1845 -msgid "custom note" +#: js/utils/musicutils.js:1034 +#.TRANS: modal scale for music +msgid "dorian" msgstr "" -#: js/activity.js:1848 -msgid "accidental name" +#: js/utils/musicutils.js:1036 +#.TRANS: modal scale for music +msgid "phrygian" msgstr "" -#: js/activity.js:1851 -#: js/PitchBlocks.js:855 -msgid "east indian solfege" +#: js/utils/musicutils.js:1038 +#.TRANS: modal scale for music +msgid "lydian" msgstr "" -#: js/activity.js:1854 -#: js/PitchBlocks.js:869 -msgid "note name" +#: js/utils/musicutils.js:1040 +#.TRANS: modal scale for music +msgid "mixolydian" msgstr "" -#: js/activity.js:1857 -#: js/IntervalsBlocks.js:94 -msgid "temperament name" +#: js/utils/musicutils.js:1044 +#.TRANS: modal scale for music +msgid "locrian" msgstr "" -#: js/activity.js:1863 -msgid "chord name" +#: js/utils/musicutils.js:1046 +#.TRANS: minor jazz scale for music +msgid "jazz minor" msgstr "" -#: js/activity.js:1869 -msgid "filter type" +#: js/utils/musicutils.js:1048 +#.TRANS: bebop scale for music +msgid "bebop" msgstr "" -#: js/activity.js:1872 -msgid "oscillator type" +#: js/utils/musicutils.js:1049 +msgid "arabic" msgstr "" -#: js/activity.js:1878 -#: js/DrumBlocks.js:32 -msgid "noise name" +#: js/utils/musicutils.js:1050 +msgid "byzantine" msgstr "" -#: js/activity.js:1881 -#: js/DrumBlocks.js:75 -msgid "drum name" +#: js/utils/musicutils.js:1052 +#.TRANS: musical scale for music by Verdi +msgid "enigmatic" msgstr "" -#: js/activity.js:1884 -#: js/DrumBlocks.js:119 -msgid "effects name" +#: js/utils/musicutils.js:1053 +msgid "ethiopian" msgstr "" -#: js/activity.js:1887 -msgid "wrap mode" +#: js/utils/musicutils.js:1055 +#.TRANS: Ethiopic scale for music +msgid "geez" msgstr "" -#: js/activity.js:1890 -msgid "load file" +#: js/utils/musicutils.js:1056 +msgid "hindu" msgstr "" -#: js/activity.js:2056 -msgid "This block is deprecated." +#: js/utils/musicutils.js:1057 +msgid "hungarian" msgstr "" -#: js/activity.js:2058 -msgid "Block cannot be found." +#: js/utils/musicutils.js:1059 +#.TRANS: minor Romanian scale for music +msgid "romanian minor" msgstr "" -#: js/activity.js:2266 -msgid "Saving block artwork" +#: js/utils/musicutils.js:1060 +msgid "spanish gypsy" msgstr "" -#: js/activity.js:2277 -msgid "Erase" +#: js/utils/musicutils.js:1062 +#.TRANS: musical scale for Mid-Eastern music +msgid "maqam" msgstr "" -#: js/activity.js:2301 -#: js/activity.js:2323 -msgid "Paste" +#: js/utils/musicutils.js:1064 +#.TRANS: minor blues scale for music +msgid "minor blues" msgstr "" -#: js/activity.js:2305 -msgid "Save block help" +#: js/utils/musicutils.js:1066 +#.TRANS: major blues scale for music +msgid "major blues" msgstr "" -#: js/activity.js:2390 -msgid "Jumping to the bottom of the page." +#: js/utils/musicutils.js:1067 +msgid "whole tone" msgstr "" -#: js/activity.js:2396 -msgid "Scrolling up." +#: js/utils/musicutils.js:1069 +#.TRANS: pentatonic is a general term that means "five note scale". This scale is typically known as "minor pentatonic" +msgid "minor pentatonic" msgstr "" -#: js/activity.js:2401 -msgid "Scrolling down." +#: js/utils/musicutils.js:1071 +#.TRANS: pentatonic is a general term that means "five note scale". This scale is typically known as "major pentatonic" +msgid "major pentatonic" msgstr "" -#: js/activity.js:2406 -msgid "Extracting block" +#: js/utils/musicutils.js:1072 +msgid "chinese" msgstr "" -#: js/activity.js:2414 -msgid "Moving block up." +#: js/utils/musicutils.js:1073 +msgid "egyptian" msgstr "" -#: js/activity.js:2435 -msgid "Moving block down." +#: js/utils/musicutils.js:1075 +#.TRANS: https://en.wikipedia.org/wiki/Hirajoshi_scale NOTE: There are three different versions of this scale +msgid "hirajoshi" msgstr "" -#: js/activity.js:2456 -msgid "Moving block left." +#: js/utils/musicutils.js:1076 +msgid "Japan" msgstr "" -#: js/activity.js:2473 -msgid "Moving block right." +#: js/utils/musicutils.js:1078 +#.TRANS: https://en.wikipedia.org/wiki/In_scale and https://en.wikipedia.org/wiki/Sakura_Sakura +msgid "in" msgstr "" -#: js/activity.js:2488 -msgid "Jump to home position." +#: js/utils/musicutils.js:1080 +#.TRANS: https://en.wikipedia.org/wiki/Miny%C5%8D_scale +msgid "minyo" msgstr "" -#: js/activity.js:2515 -msgid "Hide blocks" +#: js/utils/musicutils.js:1082 +#.TRANS: Italian mathematician +msgid "fibonacci" msgstr "" -#: js/activity.js:3389 -msgid "Click the run button to run the project." +#: js/utils/musicutils.js:1083 +#: js/utils/musicutils.js:1134 +#: js/utils/musicutils.js:1177 +#: js/utils/musicutils.js:1199 +#: js/utils/synthutils.js:134 +#: js/blocks/IntervalsBlocks.js:1124 +#: js/blocks/ToneBlocks.js:946 +#: js/blocks/VolumeBlocks.js:411 +#: js/blocks/WidgetBlocks.js:399 +#: js/blocks/WidgetBlocks.js:404 +#: js/turtleactions/VolumeActions.js:218 +#: js/widgets/modewidget.js:919 +#.TRANS: customize voice +msgid "custom" msgstr "" -#: js/activity.js:3456 -#: js/SaveInterface.js:131 -#: js/SaveInterface.js:204 -#: js/SaveInterface.js:262 -#: js/SaveInterface.js:389 -#: js/SaveInterface.js:417 -#: js/ProjectStorage.js:27 -#: js/GlobalPlanet.js:467 -#: js/GlobalPlanet.js:469 -#: js/GlobalPlanet.js:495 -#.TRANS: default project title when saving as Lilypond -msgid "My Project" +#: js/utils/musicutils.js:1085 +#: js/utils/musicutils.js:1531 +#: js/blocks/WidgetBlocks.js:176 +#.TRANS: highpass filter +msgid "highpass" msgstr "" -#: js/activity.js:4261 -msgid "Show/hide block" +#: js/utils/musicutils.js:1087 +#: js/utils/musicutils.js:1532 +#.TRANS: lowpass filter +msgid "lowpass" msgstr "" -#: js/activity.js:4263 -msgid "Expand/collapse blocks" +#: js/utils/musicutils.js:1089 +#: js/utils/musicutils.js:1533 +#.TRANS: bandpass filter +msgid "bandpass" msgstr "" -#: js/activity.js:4381 -msgid "Could not parse JSON input." +#: js/utils/musicutils.js:1091 +#: js/utils/musicutils.js:1534 +#.TRANS: high-shelf filter +msgid "highshelf" msgstr "" -#: js/activity.js:4684 -#: js/activity.js:4771 -#: js/activity.js:4821 -msgid "Cannot load project from the file. Please check the file type." +#: js/utils/musicutils.js:1093 +#: js/utils/musicutils.js:1535 +#.TRANS: low-shelf filter +msgid "lowshelf" msgstr "" -#: js/activity.js:5051 -msgid "Invalid parameters" +#: js/utils/musicutils.js:1095 +#: js/utils/musicutils.js:1536 +#.TRANS: notch-shelf filter +msgid "notch" msgstr "" -#: js/turtle-singer.js:1334 -#.TRANS: partials are weighted components in a harmonic series -msgid "You must have at least one Partial block inside of a Weighted-partial block" +#: js/utils/musicutils.js:1097 +#: js/utils/musicutils.js:1537 +#.TRANS: all-pass filter +msgid "allpass" msgstr "" -#: js/turtle-singer.js:2048 -msgid "synth cannot play chords." +#: js/utils/musicutils.js:1099 +#: js/utils/musicutils.js:1538 +#.TRANS: peaking filter +msgid "peaking" msgstr "" -#: js/lilypond.js:614 -msgid "brown rat" +#: js/utils/musicutils.js:1100 +#: js/utils/musicutils.js:1546 +#: js/utils/synthutils.js:126 +#: js/blocks/PitchBlocks.js:85 +#.TRANS: sine wave +msgid "sine" msgstr "" -#: js/lilypond.js:615 -msgid "mole" +#: js/utils/musicutils.js:1101 +#: js/utils/musicutils.js:1547 +#: js/utils/synthutils.js:128 +#: js/blocks/PitchBlocks.js:39 +#.TRANS: square wave +msgid "square" msgstr "" -#: js/lilypond.js:616 -msgid "chipmunk" +#: js/utils/musicutils.js:1102 +#: js/utils/musicutils.js:1548 +#: js/utils/synthutils.js:132 +#: js/blocks/PitchBlocks.js:62 +#: js/blocks/ToneBlocks.js:39 +#.TRANS: triangle wave +msgid "triangle" msgstr "" -#: js/lilypond.js:617 -msgid "red squirrel" +#: js/utils/musicutils.js:1103 +#: js/utils/musicutils.js:1549 +#: js/utils/synthutils.js:130 +#: js/blocks/PitchBlocks.js:108 +#.TRANS: sawtooth wave +msgid "sawtooth" msgstr "" -#: js/lilypond.js:618 -msgid "guinea pig" +#: js/utils/musicutils.js:1105 +#: js/utils/musicutils.js:1312 +#: js/blocks/PitchBlocks.js:931 +#: js/blocks/PitchBlocks.js:937 +#: js/turtleactions/PitchActions.js:469 +#.TRANS: even numbers +#.TRANS: invert based on even or odd number or musical scale +msgid "even" msgstr "" -#: js/lilypond.js:619 -msgid "capybara" +#: js/utils/musicutils.js:1107 +#: js/utils/musicutils.js:1313 +#: js/blocks/PitchBlocks.js:937 +#: js/turtleactions/PitchActions.js:471 +#.TRANS: odd numbers +msgid "odd" msgstr "" -#: js/lilypond.js:620 -msgid "coypu" +#: js/utils/musicutils.js:1108 +#: js/utils/musicutils.js:1314 +#: js/blocks/PitchBlocks.js:937 +#: js/turtleactions/PitchActions.js:473 +msgid "scalar" msgstr "" -#: js/lilypond.js:621 -msgid "black rat" +#: js/utils/musicutils.js:1109 +#: js/utils/synthutils.js:72 +#: js/blocks/VolumeBlocks.js:47 +#.TRANS: musical instrument +msgid "piano" msgstr "" -#: js/lilypond.js:622 -msgid "grey squirrel" +#: js/utils/musicutils.js:1110 +#: js/utils/synthutils.js:74 +#.TRANS: musical instrument +msgid "violin" msgstr "" -#: js/lilypond.js:623 -msgid "flying squirrel" +#: js/utils/musicutils.js:1111 +#: js/utils/synthutils.js:76 +#.TRANS: viola musical instrument +msgid "viola" msgstr "" -#: js/lilypond.js:624 -msgid "bat" +#: js/utils/musicutils.js:1112 +#: js/utils/synthutils.js:114 +#.TRANS: xylophone musical instrument +msgid "xylophone" msgstr "" -#: js/lilypond.js:757 -#: js/lilypond.js:921 -#: js/lilypond.js:959 -#: js/ActionBlocks.js:1256 -#: js/ExtrasBlocks.js:553 -msgid "start drum" +#: js/utils/musicutils.js:1113 +#: js/utils/synthutils.js:136 +#.TRANS: vibraphone musical instrument +msgid "vibraphone" msgstr "" -#: js/SaveInterface.js:59 -#: js/SaveInterface.js:61 -#: js/SaveInterface.js:93 -msgid "Music Blocks Project" +#: js/utils/musicutils.js:1114 +#: js/utils/synthutils.js:78 +#.TRANS: musical instrument +msgid "cello" msgstr "" -#: js/SaveInterface.js:63 -msgid "This project was created in Music Blocks" +#: js/utils/musicutils.js:1116 +#: js/utils/synthutils.js:82 +#.TRANS: viola musical instrument +msgid "double bass" msgstr "" -#: js/SaveInterface.js:67 -msgid "Music Blocks is a Free/Libre Software application." +#: js/utils/musicutils.js:1117 +#: js/utils/synthutils.js:84 +#: js/widgets/rhythmruler.js:2511 +#.TRANS: musical instrument +msgid "guitar" msgstr "" -#: js/SaveInterface.js:69 -msgid "The source code can be accessed at" +#: js/utils/musicutils.js:1118 +#: js/utils/synthutils.js:86 +#.TRANS: musical instrument +msgid "acoustic guitar" msgstr "" -#: js/SaveInterface.js:72 -msgid "For more information, please consult the" +#: js/utils/musicutils.js:1119 +#: js/utils/synthutils.js:88 +#.TRANS: musical instrument +msgid "flute" msgstr "" -#: js/SaveInterface.js:83 -msgid "Alternatively, open the file in Music Blocks using the Load project button." +#: js/utils/musicutils.js:1120 +#: js/utils/synthutils.js:90 +#.TRANS: musical instrument +msgid "clarinet" msgstr "" -#: js/SaveInterface.js:85 -msgid "Project Code" +#: js/utils/musicutils.js:1121 +#: js/utils/synthutils.js:92 +#.TRANS: musical instrument +msgid "saxophone" msgstr "" -#: js/SaveInterface.js:87 -msgid "This code stores data about the blocks in a project." +#: js/utils/musicutils.js:1122 +#: js/utils/synthutils.js:94 +#.TRANS: musical instrument +msgid "tuba" msgstr "" -#: js/SaveInterface.js:89 -msgid "Show" +#: js/utils/musicutils.js:1123 +#: js/utils/synthutils.js:96 +#.TRANS: musical instrument +msgid "trumpet" msgstr "" -#: js/SaveInterface.js:91 -msgid "Hide" +#: js/utils/musicutils.js:1124 +#: js/utils/synthutils.js:98 +#.TRANS: musical instrument +msgid "oboe" msgstr "" -#: js/SaveInterface.js:197 -#: js/SaveInterface.js:58 -msgid "No description provided" +#: js/utils/musicutils.js:1125 +#: js/utils/synthutils.js:100 +#.TRANS: musical instrument +msgid "trombone" msgstr "" -#: js/SaveInterface.js:332 -msgid "Your recording is in progress." +#: js/utils/musicutils.js:1126 +#: js/utils/synthutils.js:116 +#.TRANS: polytone synthesizer +msgid "electronic synth" msgstr "" -#: js/SaveInterface.js:401 -#.TRANS: File name prompt for save as Lilypond -msgid "File name" +#: js/utils/musicutils.js:1127 +#: js/utils/synthutils.js:118 +#.TRANS: simple monotone synthesizer +msgid "simple 1" msgstr "" -#: js/SaveInterface.js:403 -#: js/StringHelper.js:39 -#.TRANS: Project title prompt for save as Lilypond -msgid "Project title" +#: js/utils/musicutils.js:1128 +msgid "simple 2" msgstr "" -#: js/SaveInterface.js:405 -#.TRANS: Project title prompt for save as Lilypond -msgid "Project author" +#: js/utils/musicutils.js:1129 +msgid "simple 3" msgstr "" -#: js/SaveInterface.js:407 -#.TRANS: MIDI prompt for save as Lilypond -msgid "Include MIDI output?" +#: js/utils/musicutils.js:1130 +msgid "simple 4" msgstr "" -#: js/SaveInterface.js:409 -#.TRANS: Guitar prompt for save as Lilypond -msgid "Include guitar tablature output?" +#: js/utils/musicutils.js:1131 +#: js/utils/synthutils.js:58 +#: js/blocks/DrumBlocks.js:191 +#.TRANS: white noise synthesizer +msgid "white noise" msgstr "" -#: js/SaveInterface.js:411 -#.TRANS: Lilypond is a scripting language for generating sheet music -msgid "Save as Lilypond" +#: js/utils/musicutils.js:1132 +#: js/utils/synthutils.js:60 +#.TRANS: brown noise synthesizer +msgid "brown noise" msgstr "" -#: js/SaveInterface.js:426 -#: js/EnsembleBlocks.js:75 -#: js/EnsembleBlocks.js:154 -#: js/EnsembleBlocks.js:216 -#: js/EnsembleBlocks.js:302 -#: js/EnsembleBlocks.js:348 -#: js/EnsembleBlocks.js:389 -#: js/EnsembleBlocks.js:441 -#: js/EnsembleBlocks.js:490 -#: js/EnsembleBlocks.js:536 -#: js/EnsembleBlocks.js:583 -#: js/EnsembleBlocks.js:637 -#: js/EnsembleBlocks.js:753 -#: js/EnsembleBlocks.js:840 -#: js/EnsembleBlocks.js:899 -#: js/EnsembleBlocks.js:942 -#: js/EnsembleBlocks.js:1212 -#: js/EnsembleBlocks.js:1280 -#.TRANS: default project author when saving as Lilypond -msgid "Mr. Mouse" +#: js/utils/musicutils.js:1133 +#: js/utils/synthutils.js:62 +#.TRANS: pink noise synthesizer +msgid "pink noise" msgstr "" -#: js/SaveInterface.js:573 -msgid "The Lilypond code is copied to clipboard. You can paste it here: " +#: js/utils/musicutils.js:1135 +#: js/utils/synthutils.js:148 +#: js/widgets/rhythmruler.js:2057 +#: js/widgets/rhythmruler.js:2319 +#.TRANS: musical instrument +msgid "snare drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:50 -#: js/RhythmBlockPaletteBlocks.js:232 -#.TRANS: rhythm block -#.TRANS: translate "rhythm1" as rhythm -msgid "rhythm1" +#: js/utils/musicutils.js:1136 +#: js/utils/synthutils.js:150 +#.TRANS: musical instrument +msgid "kick drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:70 -#: js/RhythmBlockPaletteBlocks.js:251 -#: js/RhythmBlockPaletteBlocks.js:484 -#: js/RhythmBlockPaletteBlocks.js:553 -#: js/RhythmBlockPaletteBlocks.js:874 -msgid "number of notes" +#: js/utils/musicutils.js:1137 +#: js/utils/synthutils.js:152 +#.TRANS: musical instrument +msgid "tom tom" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:126 -msgid "polyphonic rhythm" +#: js/utils/musicutils.js:1138 +#: js/utils/synthutils.js:154 +#.TRANS: musical instrument +msgid "floor tom" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:218 -msgid "The Rhythm block is used to generate rhythm patterns." +#: js/utils/musicutils.js:1139 +#: js/utils/synthutils.js:156 +#.TRANS: musical instrument +msgid "bass drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:279 -msgid "1/64 note" +#: js/utils/musicutils.js:1140 +#: js/utils/synthutils.js:158 +#.TRANS: a drum made from an inverted cup +msgid "cup drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:303 -msgid "1/32 note" +#: js/utils/musicutils.js:1141 +#: js/utils/synthutils.js:160 +#.TRANS: musical instrument +msgid "darbuka drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:331 -msgid "1/16 note" +#: js/utils/musicutils.js:1142 +#: js/utils/synthutils.js:164 +#.TRANS: musical instrument +msgid "hi hat" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:359 -msgid "eighth note" +#: js/utils/musicutils.js:1143 +#: js/utils/synthutils.js:166 +#.TRANS: a small metal bell +msgid "ride bell" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:387 -msgid "quarter note" +#: js/utils/musicutils.js:1144 +#: js/utils/synthutils.js:168 +#.TRANS: musical instrument +msgid "cow bell" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:415 -msgid "half note" +#: js/utils/musicutils.js:1145 +msgid "japanese drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:443 -msgid "whole note" +#: js/utils/musicutils.js:1146 +#: js/utils/synthutils.js:174 +#.TRANS: musical instrument +msgid "japanese bell" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:481 -#: js/RhythmBlockPaletteBlocks.js:550 -#: js/RhythmBlockPaletteBlocks.js:601 -#.TRANS: A tuplet is a note value divided into irregular time values. -msgid "tuplet" +#: js/utils/musicutils.js:1147 +#: js/utils/synthutils.js:170 +#.TRANS: musical instrument +msgid "triangle bell" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:767 -msgid "septuplet" +#: js/utils/musicutils.js:1148 +#: js/utils/synthutils.js:172 +#.TRANS: musical instrument +msgid "finger cymbals" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:795 -msgid "quintuplet" +#: js/utils/musicutils.js:1149 +#: js/utils/synthutils.js:176 +#.TRANS: a musically tuned set of bells +msgid "chime" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:823 -msgid "triplet" +#: js/utils/musicutils.js:1150 +#: js/utils/synthutils.js:178 +#.TRANS: a musical instrument +msgid "gong" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:850 -msgid "simple tuplet" +#: js/utils/musicutils.js:1151 +#: js/utils/synthutils.js:180 +#.TRANS: sound effect +msgid "clang" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:860 -msgid "Tuplets are a collection of notes that get scaled to a specific duration." +#: js/utils/musicutils.js:1152 +#: js/utils/synthutils.js:182 +#.TRANS: sound effect +msgid "crash" msgstr "" -#: js/WidgetBlocks.js:71 -#.TRANS: sound envelope (ADSR) -msgid "envelope" +#: js/utils/musicutils.js:1153 +#: js/utils/synthutils.js:184 +#.TRANS: sound effect +msgid "bottle" msgstr "" -#: js/WidgetBlocks.js:79 -#.TRANS: Attack time is the time taken for initial run-up of level from nil to peak, beginning when the key is first pressed. -msgid "attack" +#: js/utils/musicutils.js:1154 +#: js/utils/synthutils.js:186 +#.TRANS: sound effect +msgid "clap" msgstr "" -#: js/WidgetBlocks.js:81 -#.TRANS: Decay time is the time taken for the subsequent run down from the attack level to the designated sustain level. -msgid "decay" +#: js/utils/musicutils.js:1155 +#: js/utils/synthutils.js:188 +#.TRANS: sound effect +msgid "slap" msgstr "" -#: js/WidgetBlocks.js:83 -#.TRANS: Sustain level is the level during the main sequence of the sound's duration, until the key is released. -msgid "sustain" +#: js/utils/musicutils.js:1156 +#: js/utils/synthutils.js:190 +#.TRANS: sound effect +msgid "splash" msgstr "" -#: js/WidgetBlocks.js:85 -#.TRANS: Release time is the time taken for the level to decay from the sustain level to zero after the key is released. -msgid "release" +#: js/utils/musicutils.js:1157 +#: js/utils/synthutils.js:192 +#.TRANS: sound effect +msgid "bubbles" msgstr "" -#: js/WidgetBlocks.js:96 -msgid "Attack value should be from 0 to 100." +#: js/utils/musicutils.js:1158 +#: js/utils/synthutils.js:194 +#.TRANS: sound effect +msgid "raindrop" msgstr "" -#: js/WidgetBlocks.js:99 -msgid "Decay value should be from 0 to 100." +#: js/utils/musicutils.js:1159 +#: js/utils/synthutils.js:196 +#.TRANS: animal sound effect +msgid "cat" msgstr "" -#: js/WidgetBlocks.js:102 -msgid "Sustain value should be from 0 to 100." +#: js/utils/musicutils.js:1160 +#: js/utils/synthutils.js:198 +#.TRANS: animal sound effect +msgid "cricket" msgstr "" -#: js/WidgetBlocks.js:105 -msgid "Release value should be from 0-100." +#: js/utils/musicutils.js:1161 +#: js/utils/synthutils.js:200 +#.TRANS: animal sound effect +msgid "dog" msgstr "" -#: js/WidgetBlocks.js:121 -msgid "You are adding multiple envelope blocks." +#: js/utils/musicutils.js:1163 +#: js/utils/synthutils.js:102 +#.TRANS: musical instrument +msgid "banjo" msgstr "" -#: js/WidgetBlocks.js:144 -#.TRANS: a filter removes some unwanted components from a signal -msgid "filter" +#: js/utils/musicutils.js:1164 +#: js/utils/synthutils.js:104 +#.TRANS: musical instrument +msgid "koto" msgstr "" -#: js/WidgetBlocks.js:149 -#: js/musicutils.js:706 -#: js/musicutils.js:1105 -#.TRANS: highpass filter -msgid "highpass" +#: js/utils/musicutils.js:1165 +#: js/utils/synthutils.js:106 +#.TRANS: musical instrument +msgid "dulcimer" msgstr "" -#: js/WidgetBlocks.js:152 -#: js/ToneBlocks.js:42 -#: js/timbre.js:1558 -#: js/timbre.js:1808 -#.TRANS: type of filter, e.g., lowpass, highpass, etc. -#.TRANS: there are different types (sine, triangle, square...) of oscillators. -msgid "type" +#: js/utils/musicutils.js:1166 +#: js/utils/synthutils.js:108 +#.TRANS: musical instrument +msgid "electric guitar" msgstr "" -#: js/WidgetBlocks.js:154 -#: js/timbre.js:1818 -#.TRANS: rolloff is the steepness of a change in frequency. -msgid "rolloff" +#: js/utils/musicutils.js:1167 +#: js/utils/synthutils.js:110 +#.TRANS: musical instrument +msgid "bassoon" msgstr "" -#: js/WidgetBlocks.js:155 -#: js/MediaBlocks.js:692 -#: js/temperament.js:382 -#: js/temperament.js:417 -#: js/temperament.js:477 -#: js/temperament.js:485 -#: js/temperament.js:1348 -#: js/timbre.js:1842 -msgid "frequency" +#: js/utils/musicutils.js:1168 +#: js/utils/synthutils.js:112 +#.TRANS: musical instrument +msgid "celeste" msgstr "" -#: js/WidgetBlocks.js:179 -#.TRANS: rolloff is the steepness of a change in frequency. -msgid "Rolloff value should be either -12, -24, -48, or -96 decibels/octave." +#: js/utils/musicutils.js:1170 +#: js/widgets/temperament.js:787 +#.TRANS: musical temperament +msgid "equal" msgstr "" -#: js/WidgetBlocks.js:211 -msgid "The Temperament tool is used to define custom tuning." +#: js/utils/musicutils.js:1172 +#.TRANS: musical temperament +msgid "Pythagorean" msgstr "" -#: js/WidgetBlocks.js:277 -#: js/sampler.js:329 -msgid "Upload a sample and adjust its pitch center." +#: js/utils/musicutils.js:1174 +#.TRANS: musical temperament +msgid "just intonation" msgstr "" -#: js/WidgetBlocks.js:284 -#.TRANS: the speed at music is should be played. -msgid "sampler" +#: js/utils/musicutils.js:1176 +#.TRANS: musical temperament +msgid "meantone" msgstr "" -#: js/WidgetBlocks.js:329 -#: js/WidgetBlocks.js:334 -#: js/IntervalsBlocks.js:928 -#: js/VolumeBlocks.js:411 -#: js/ToneBlocks.js:946 -#: js/VolumeActions.js:218 -#: js/musicutils.js:704 -#: js/musicutils.js:755 -#: js/musicutils.js:798 -#: js/musicutils.js:820 -#: js/musicutils.js:1136 -#: js/synthutils.js:118 -#: js/modewidget.js:919 -#.TRANS: customize voice -msgid "custom" +#: js/utils/musicutils.js:1193 +msgid "major 7th" msgstr "" -#: js/WidgetBlocks.js:432 -msgid "The Meter block opens a tool to select strong beats for the meter." +#: js/utils/musicutils.js:1194 +msgid "minor 7th" msgstr "" -#: js/WidgetBlocks.js:473 -msgid "The oscilloscope block opens a tool to visualize waveforms." +#: js/utils/musicutils.js:1195 +msgid "dominant 7th" msgstr "" -#: js/WidgetBlocks.js:478 -msgid "oscilloscope" +#: js/utils/musicutils.js:1196 +msgid "minor-major 7th" msgstr "" -#: js/WidgetBlocks.js:530 -msgid "The Custom mode block opens a tool to explore musical mode (the spacing of the notes in a scale)." +#: js/utils/musicutils.js:1197 +msgid "fully-diminished 7th" msgstr "" -#: js/WidgetBlocks.js:536 -#.TRANS: musical mode is the pattern of half-steps in an octave, e.g., Major or Minor modes -msgid "custom mode" +#: js/utils/musicutils.js:1198 +msgid "half-diminished 7th" msgstr "" -#: js/WidgetBlocks.js:570 -msgid "The Tempo block opens a metronome to visualize the beat." +#: js/utils/musicutils.js:1557 +#: js/utils/musicutils.js:1569 +msgid "Equal (12EDO)" msgstr "" -#: js/WidgetBlocks.js:617 -msgid "The Arpeggio Widget is used to compose chord sequences." +#: js/utils/musicutils.js:1558 +#: js/utils/musicutils.js:1570 +msgid "5-limit Just Intonation" msgstr "" -#: js/WidgetBlocks.js:623 -#: js/IntervalsBlocks.js:683 -msgid "arpeggio" +#: js/utils/musicutils.js:1559 +#: js/utils/musicutils.js:1571 +msgid "Pythagorean (3-limit JI)" msgstr "" -#: js/WidgetBlocks.js:677 -msgid "The Pitch drum matrix is used to map pitches to drum sounds." +#: js/utils/musicutils.js:1560 +#: js/utils/musicutils.js:1561 +#: js/utils/musicutils.js:1572 +#: js/utils/musicutils.js:1573 +msgid "Meantone" msgstr "" -#: js/WidgetBlocks.js:682 -#.TRANS: makes a mapping between pitches and drum sounds -msgid "pitch-drum mapper" +#: js/utils/musicutils.js:1574 +msgid "Custom" msgstr "" -#: js/WidgetBlocks.js:724 -msgid "You must have at least one pitch block and one drum block in the matrix." +#: js/utils/musicutils.js:5387 +#: js/utils/musicutils.js:5430 +msgid "current" msgstr "" -#: js/WidgetBlocks.js:746 -msgid "The Pitch slider tool to is used to generate pitches at selected frequencies." +#: js/utils/musicutils.js:5390 +#: js/utils/musicutils.js:5421 +msgid "next" msgstr "" -#: js/WidgetBlocks.js:751 -#.TRANS: widget to generate pitches using a slider -msgid "pitch slider" +#: js/utils/musicutils.js:5393 +#: js/utils/musicutils.js:5426 +msgid "previous" msgstr "" -#: js/WidgetBlocks.js:788 -msgid "chromatic keyboard" +#: js/utils/synthutils.js:120 +#.TRANS: simple monotone synthesizer +msgid "simple-2" msgstr "" -#: js/WidgetBlocks.js:815 -#: js/WidgetBlocks.js:874 -#.TRANS: widget to generate pitches using a slider -msgid "music keyboard" +#: js/utils/synthutils.js:122 +#.TRANS: simple monotone synthesizer +msgid "simple-3" msgstr "" -#: js/WidgetBlocks.js:859 -#: js/WidgetBlocks.js:866 -msgid "The Music keyboard block opens a piano keyboard that can be used to create notes." +#: js/utils/synthutils.js:124 +#.TRANS: simple monotone synthesizer +msgid "simple-4" msgstr "" -#: js/WidgetBlocks.js:910 -msgid "The Pitch staircase tool to is used to generate pitches from a given ratio." +#: js/utils/synthutils.js:162 +#.TRANS: musical instrument +msgid "taiko" msgstr "" -#: js/WidgetBlocks.js:917 -#.TRANS: generate a progressive sequence of pitches -msgid "pitch staircase" +#: js/blocks/ActionBlocks.js:58 +msgid "The Return block will return a value from an action." msgstr "" -#: js/WidgetBlocks.js:982 -msgid "The Rhythm Maker block opens a tool to create drum machines." +#: js/blocks/ActionBlocks.js:75 +msgid "return" msgstr "" -#: js/WidgetBlocks.js:1036 -msgid "G major scale" +#: js/blocks/ActionBlocks.js:128 +msgid "The Return to URL block will return a value to a webpage." msgstr "" -#: js/WidgetBlocks.js:1064 -msgid "C major scale" +#: js/blocks/ActionBlocks.js:145 +msgid "return to URL" msgstr "" -#: js/WidgetBlocks.js:1097 -msgid "The Phrase Maker block opens a tool to create musical phrases." +#: js/blocks/ActionBlocks.js:233 +#: js/blocks/ActionBlocks.js:290 +#: js/blocks/ActionBlocks.js:501 +#: js/blocks/ActionBlocks.js:688 +msgid "The Calculate block returns a value calculated by an action." msgstr "" -#: js/WidgetBlocks.js:1104 -#.TRANS: assigns pitch to a sequence of beats to generate a melody -msgid "phrase maker" +#: js/blocks/ActionBlocks.js:251 +#: js/blocks/ActionBlocks.js:517 +#: js/blocks/ActionBlocks.js:707 +msgid "calculate" msgstr "" -#: js/WidgetBlocks.js:1168 -msgid "You must have at least one pitch block and one rhythm block in the matrix." +#: js/blocks/ActionBlocks.js:376 +#: js/blocks/ActionBlocks.js:593 +#: js/blocks/ActionBlocks.js:942 +#: js/blocks/ActionBlocks.js:1389 +#.TRANS: do is the do something or take an action. +msgid "The Do block is used to initiate an action." msgstr "" -#: js/WidgetBlocks.js:1220 -msgid "The Status block opens a tool for inspecting the status of Music Blocks as it is running." +#: js/blocks/ActionBlocks.js:390 +#: js/blocks/ActionBlocks.js:610 +#: js/blocks/ActionBlocks.js:959 +#: js/blocks/ActionBlocks.js:1048 +#: js/blocks/MeterBlocks.js:769 +msgid "do1" msgstr "" -#: js/IntervalsBlocks.js:45 -msgid "set temperament" +#: js/blocks/ActionBlocks.js:390 +#: js/blocks/ActionBlocks.js:610 +#: js/blocks/ActionBlocks.js:959 +#: js/blocks/ActionBlocks.js:1048 +#: js/blocks/FlowBlocks.js:742 +#: js/blocks/FlowBlocks.js:822 +#: js/blocks/MeterBlocks.js:769 +msgid "do" msgstr "" -#: js/IntervalsBlocks.js:63 -#: js/MediaBlocks.js:746 -#: js/PitchBlocks.js:657 -#: js/PitchBlocks.js:933 -#: js/PitchBlocks.js:972 -#: js/PitchBlocks.js:1005 -#: js/PitchBlocks.js:1166 -#: js/PitchBlocks.js:1679 -#: js/PitchBlocks.js:1720 -#: js/PitchBlocks.js:1827 -#: js/ToneBlocks.js:1025 -#.TRANS: adjusts the shift up or down by one octave (twelve half-steps in the interval between two notes, one having twice or half the frequency in Hz of the other.) -msgid "octave" +#: js/blocks/ActionBlocks.js:791 +#: js/blocks/ActionBlocks.js:865 +msgid "The Arg block contains the value of an argument passed to an action." msgstr "" -#: js/IntervalsBlocks.js:99 -msgid "The Temperament name block is used to select a tuning method." +#: js/blocks/ActionBlocks.js:806 +#: js/blocks/ActionBlocks.js:878 +msgid "arg" msgstr "" -#: js/IntervalsBlocks.js:161 -msgid "doubly" +#: js/blocks/ActionBlocks.js:836 +#: js/blocks/ActionBlocks.js:900 +#: js/blocks/ActionBlocks.js:908 +msgid "Invalid argument" msgstr "" -#: js/IntervalsBlocks.js:166 -msgid "The Doubly block will double the size of an interval." +#: js/blocks/ActionBlocks.js:944 +msgid "In the example, it is used with the One of block to choose a random phase." msgstr "" -#: js/IntervalsBlocks.js:262 -msgid "interval number" +#: js/blocks/ActionBlocks.js:1019 +#: js/blocks/ActionBlocks.js:1026 +msgid "The Listen block is used to listen for an event such as a mouse click." msgstr "" -#: js/IntervalsBlocks.js:330 -#.TRANS: measure the distance between two pitches in semi-tones -msgid "semi-tone interval measure" +#: js/blocks/ActionBlocks.js:1028 +msgid "When the event happens, an action is taken." msgstr "" -#: js/IntervalsBlocks.js:397 -#: js/IntervalsBlocks.js:513 -msgid "You must use two pitch blocks when measuring an interval." +#: js/blocks/ActionBlocks.js:1045 +msgid "on" msgstr "" -#: js/IntervalsBlocks.js:439 -msgid "The Scalar interval block measures the distance between two notes in the current key and mode." +#: js/blocks/ActionBlocks.js:1048 +#: js/blocks/ActionBlocks.js:1049 +#: js/blocks/ActionBlocks.js:1153 +msgid "event" msgstr "" -#: js/IntervalsBlocks.js:445 -#.TRANS: measure the distance between two pitches in steps of musical scale -msgid "scalar interval measure" +#: js/blocks/ActionBlocks.js:1133 +msgid "The Broadcast block is used to trigger an event." msgstr "" -#: js/IntervalsBlocks.js:592 -#: js/musicutils.js:637 -#: js/musicutils.js:908 -#.TRANS: perfect is a music term related to intervals -msgid "perfect" +#: js/blocks/ActionBlocks.js:1151 +msgid "broadcast" msgstr "" -#: js/IntervalsBlocks.js:621 -msgid "In the figure, we add sol# to sol." +#: js/blocks/ActionBlocks.js:1208 +msgid "Each Start block is a separate voice." msgstr "" -#: js/IntervalsBlocks.js:627 -#: js/OrnamentBlocks.js:220 -#.TRANS: calculate a relative step between notes based on semi-tones -msgid "semi-tone interval" +#: js/blocks/ActionBlocks.js:1304 +msgid "It is often used for storing a phrase of music that is repeated." msgstr "" -#: js/IntervalsBlocks.js:676 -msgid "The output of the example is: do, mi, sol, sol, ti, mi" +#: js/blocks/ActionBlocks.js:1495 +msgid "define temperament" msgstr "" -#: js/IntervalsBlocks.js:735 -msgid "The Chord block calculates common chords." +#: js/blocks/BooleanBlocks.js:44 +msgid "The Not block is the logical not operator." msgstr "" -#: js/IntervalsBlocks.js:737 -msgid "In the figure, we generate a C-major chord." +#: js/blocks/BooleanBlocks.js:62 +msgid "not" msgstr "" -#: js/IntervalsBlocks.js:742 -msgid "chord" +#: js/blocks/BooleanBlocks.js:134 +msgid "The And block is the logical and operator." msgstr "" -#: js/IntervalsBlocks.js:794 -msgid "The Ratio Interval block calculates an interval based on a ratio." +#: js/blocks/BooleanBlocks.js:152 +msgid "and" msgstr "" -#: js/IntervalsBlocks.js:799 -msgid "ratio interval" +#: js/blocks/BooleanBlocks.js:218 +msgid "The Or block is the logical or operator." msgstr "" -#: js/IntervalsBlocks.js:868 -msgid "In the figure, we add la to sol." +#: js/blocks/BooleanBlocks.js:236 +msgid "or" msgstr "" -#: js/IntervalsBlocks.js:924 -#.TRANS: define a custom mode -msgid "define mode" +#: js/blocks/BooleanBlocks.js:302 +msgid "The XOR block is the logical XOR operator." msgstr "" -#: js/IntervalsBlocks.js:977 -msgid "movable Do" +#: js/blocks/BooleanBlocks.js:320 +msgid "xor" msgstr "" -#: js/IntervalsBlocks.js:1028 -#.TRANS: mode length is the number of notes in the mode, e.g., 7 for major and minor scales; 12 for chromatic scales -msgid "mode length" +#: js/blocks/BooleanBlocks.js:808 +msgid "The Equal block returns True if the two numbers are equal." msgstr "" -#: js/IntervalsBlocks.js:1037 -msgid "The Mode length block is the number of notes in the current scale." +#: js/blocks/BooleanBlocks.js:909 +msgid "The Not-equal-to block returns True if the two numbers are not equal to each other." msgstr "" -#: js/IntervalsBlocks.js:1039 -msgid "Most Western scales have 7 notes." +#: js/blocks/BooleanBlocks.js:1008 +msgid "The Boolean block is used to specify true or false." msgstr "" -#: js/IntervalsBlocks.js:1088 -#.TRANS: the mode in music is 'major', 'minor', etc. -msgid "current mode" +#: js/blocks/BoxesBlocks.js:53 +#: js/blocks/BoxesBlocks.js:59 +msgid "The Add-to block is used to add to the value stored in a box." msgstr "" -#: js/IntervalsBlocks.js:1141 -#.TRANS: the key is a group of pitches with which a music composition is created -msgid "current key" +#: js/blocks/BoxesBlocks.js:61 +msgid "It can also be used with other blocks such as Color and Pen size." msgstr "" -#: js/IntervalsBlocks.js:1193 -#: js/IntervalsBlocks.js:1238 -#.TRANS: set the key and mode, e.g. C Major -msgid "set key" +#: js/blocks/BoxesBlocks.js:73 +msgid "add" msgstr "" -#: js/IntervalsBlocks.js:1247 -#: js/IntervalsBlocks.js:1253 -msgid "The Set key block is used to set the key and mode," +#: js/blocks/BoxesBlocks.js:75 +#: js/widgets/temperament.js:857 +msgid "to" msgstr "" -#: js/IntervalsBlocks.js:1253 -msgid "eg C Major" +#: js/blocks/BoxesBlocks.js:75 +#: js/blocks/BoxesBlocks.js:595 +#: js/blocks/HeapBlocks.js:544 +msgid "value1" msgstr "" -#: js/IntervalsBlocks.js:1266 -#: js/DictBlocks.js:215 -#: js/DictBlocks.js:216 -#: js/DictBlocks.js:289 -#: js/DictBlocks.js:290 -#: js/DictBlocks.js:357 -#: js/DictBlocks.js:430 -#: js/DictBlocks.js:431 -#.TRANS: key, e.g., C in C Major -msgid "key" +#: js/blocks/BoxesBlocks.js:118 +msgid "Block does not support incrementing." msgstr "" -#: js/ActionBlocks.js:58 -msgid "The Return block will return a value from an action." +#: js/blocks/BoxesBlocks.js:152 +msgid "The Add-1-to block adds one to the value stored in a box." msgstr "" -#: js/ActionBlocks.js:75 -msgid "return" +#: js/blocks/BoxesBlocks.js:163 +msgid "add 1 to" msgstr "" -#: js/ActionBlocks.js:128 -msgid "The Return to URL block will return a value to a webpage." +#: js/blocks/BoxesBlocks.js:211 +msgid "The Subtract-1-from block subtracts one from the value stored in a box." msgstr "" -#: js/ActionBlocks.js:145 -msgid "return to URL" +#: js/blocks/BoxesBlocks.js:222 +msgid "subtract 1 from" msgstr "" -#: js/ActionBlocks.js:233 -#: js/ActionBlocks.js:290 -#: js/ActionBlocks.js:501 -#: js/ActionBlocks.js:688 -msgid "The Calculate block returns a value calculated by an action." +#: js/blocks/BoxesBlocks.js:270 +#: js/blocks/BoxesBlocks.js:387 +msgid "The Box block returns the value stored in a box." msgstr "" -#: js/ActionBlocks.js:251 -#: js/ActionBlocks.js:517 -#: js/ActionBlocks.js:707 -msgid "calculate" +#: js/blocks/BoxesBlocks.js:500 +#: js/blocks/BoxesBlocks.js:576 +msgid "The Store in block will store a value in a box." msgstr "" -#: js/ActionBlocks.js:376 -#: js/ActionBlocks.js:593 -#: js/ActionBlocks.js:942 -#: js/ActionBlocks.js:1389 -#.TRANS: do is the do something or take an action. -msgid "The Do block is used to initiate an action." +#: js/blocks/BoxesBlocks.js:595 +#: js/blocks/EnsembleBlocks.js:391 +#: js/blocks/EnsembleBlocks.js:402 +msgid "name1" msgstr "" -#: js/ActionBlocks.js:390 -#: js/ActionBlocks.js:610 -#: js/ActionBlocks.js:959 -#: js/ActionBlocks.js:1048 -#: js/MeterBlocks.js:769 -msgid "do1" +#: js/blocks/BoxesBlocks.js:652 +msgid "The Box2 block returns the value stored in Box2." msgstr "" -#: js/ActionBlocks.js:390 -#: js/ActionBlocks.js:610 -#: js/ActionBlocks.js:959 -#: js/ActionBlocks.js:1048 -#: js/FlowBlocks.js:742 -#: js/FlowBlocks.js:822 -#: js/MeterBlocks.js:769 -msgid "do" +#: js/blocks/BoxesBlocks.js:703 +msgid "The Store in Box2 block is used to store a value in Box2." msgstr "" -#: js/ActionBlocks.js:791 -#: js/ActionBlocks.js:865 -msgid "The Arg block contains the value of an argument passed to an action." +#: js/blocks/BoxesBlocks.js:715 +msgid "store in box2" msgstr "" -#: js/ActionBlocks.js:806 -#: js/ActionBlocks.js:878 -msgid "arg" +#: js/blocks/BoxesBlocks.js:761 +msgid "The Box1 block returns the value stored in Box1." msgstr "" -#: js/ActionBlocks.js:836 -#: js/ActionBlocks.js:900 -#: js/ActionBlocks.js:908 -msgid "Invalid argument" +#: js/blocks/BoxesBlocks.js:812 +msgid "The Store in Box1 block is used to store a value in Box1." msgstr "" -#: js/ActionBlocks.js:944 -msgid "In the example, it is used with the One of block to choose a random phase." +#: js/blocks/BoxesBlocks.js:826 +msgid "store in box1" msgstr "" -#: js/ActionBlocks.js:1019 -#: js/ActionBlocks.js:1026 -msgid "The Listen block is used to listen for an event such as a mouse click." +#: js/blocks/DictBlocks.js:77 +msgid "show dictionary" msgstr "" -#: js/ActionBlocks.js:1028 -msgid "When the event happens, an action is taken." +#: js/blocks/DictBlocks.js:80 +#: js/blocks/DictBlocks.js:145 +#: js/blocks/DictBlocks.js:216 +#: js/blocks/DictBlocks.js:290 +#: js/blocks/ProgramBlocks.js:396 +#: js/blocks/ProgramBlocks.js:501 +#: js/blocks/ProgramBlocks.js:664 +msgid "My Dictionary" msgstr "" -#: js/ActionBlocks.js:1045 -msgid "on" +#: js/blocks/DictBlocks.js:129 +msgid "The Dictionary block returns a dictionary." msgstr "" -#: js/ActionBlocks.js:1048 -#: js/ActionBlocks.js:1049 -#: js/ActionBlocks.js:1153 -msgid "event" +#: js/blocks/DictBlocks.js:197 +#: js/blocks/DictBlocks.js:339 +msgid "The Get-dict block returns a value in the dictionary for a specified key." msgstr "" -#: js/ActionBlocks.js:1133 -msgid "The Broadcast block is used to trigger an event." +#: js/blocks/DictBlocks.js:212 +#: js/blocks/DictBlocks.js:354 +#.TRANS: retrieve a value from the dictionary with a given key +msgid "get value" msgstr "" -#: js/ActionBlocks.js:1151 -msgid "broadcast" +#: js/blocks/DictBlocks.js:215 +#: js/blocks/DictBlocks.js:216 +#: js/blocks/DictBlocks.js:289 +#: js/blocks/DictBlocks.js:290 +#: js/blocks/DictBlocks.js:357 +#: js/blocks/DictBlocks.js:430 +#: js/blocks/DictBlocks.js:431 +msgid "key2" msgstr "" -#: js/ActionBlocks.js:1208 -msgid "Each Start block is a separate voice." +#: js/blocks/DictBlocks.js:215 +#: js/blocks/DictBlocks.js:216 +#: js/blocks/DictBlocks.js:289 +#: js/blocks/DictBlocks.js:290 +#: js/blocks/DictBlocks.js:357 +#: js/blocks/DictBlocks.js:430 +#: js/blocks/DictBlocks.js:431 +#: js/blocks/IntervalsBlocks.js:1462 +#.TRANS: key, e.g., C in C Major +msgid "key" msgstr "" -#: js/ActionBlocks.js:1304 -msgid "It is often used for storing a phrase of music that is repeated." +#: js/blocks/DictBlocks.js:271 +#: js/blocks/DictBlocks.js:411 +msgid "The Set-dict block sets a value in the dictionary for a specified key." msgstr "" -#: js/ActionBlocks.js:1495 -msgid "define temperament" +#: js/blocks/DictBlocks.js:286 +#: js/blocks/DictBlocks.js:427 +#.TRANS: set a value in the dictionary for a given key +msgid "set value" msgstr "" -#: js/EnsembleBlocks.js:66 +#: js/blocks/EnsembleBlocks.js:66 msgid "mouse index heap" msgstr "" -#: js/EnsembleBlocks.js:68 +#: js/blocks/EnsembleBlocks.js:68 msgid "The Mouse index heap block returns a value in the heap at a specified location for a specified mouse." msgstr "" -#: js/EnsembleBlocks.js:77 -#: js/EnsembleBlocks.js:1080 +#: js/blocks/EnsembleBlocks.js:77 +#: js/blocks/EnsembleBlocks.js:1080 msgid "mouse name" msgstr "" -#: js/EnsembleBlocks.js:77 -#: js/EnsembleBlocks.js:92 -#: js/HeapBlocks.js:544 +#: js/blocks/EnsembleBlocks.js:77 +#: js/blocks/EnsembleBlocks.js:92 +#: js/blocks/HeapBlocks.js:544 #.TRANS: value1 is a numeric value (JAPANESE ONLY) msgid "index" msgstr "" -#: js/EnsembleBlocks.js:80 +#: js/blocks/EnsembleBlocks.js:80 msgid "turtle index heap" msgstr "" -#: js/EnsembleBlocks.js:82 +#: js/blocks/EnsembleBlocks.js:82 msgid "The Turtle index heap block returns a value in the heap at a specified location for a specified turtle." msgstr "" -#: js/EnsembleBlocks.js:90 -#: js/EnsembleBlocks.js:167 -#: js/EnsembleBlocks.js:230 -#: js/EnsembleBlocks.js:316 -#: js/EnsembleBlocks.js:362 -#: js/EnsembleBlocks.js:400 -#: js/EnsembleBlocks.js:454 -#: js/EnsembleBlocks.js:504 -#: js/EnsembleBlocks.js:550 -#: js/EnsembleBlocks.js:597 -#: js/EnsembleBlocks.js:651 -#: js/EnsembleBlocks.js:763 -#: js/EnsembleBlocks.js:854 -#: js/EnsembleBlocks.js:915 -#: js/EnsembleBlocks.js:955 -#: js/EnsembleBlocks.js:1219 -#: js/EnsembleBlocks.js:1293 +#: js/blocks/EnsembleBlocks.js:90 +#: js/blocks/EnsembleBlocks.js:167 +#: js/blocks/EnsembleBlocks.js:230 +#: js/blocks/EnsembleBlocks.js:316 +#: js/blocks/EnsembleBlocks.js:362 +#: js/blocks/EnsembleBlocks.js:400 +#: js/blocks/EnsembleBlocks.js:454 +#: js/blocks/EnsembleBlocks.js:504 +#: js/blocks/EnsembleBlocks.js:550 +#: js/blocks/EnsembleBlocks.js:597 +#: js/blocks/EnsembleBlocks.js:651 +#: js/blocks/EnsembleBlocks.js:763 +#: js/blocks/EnsembleBlocks.js:854 +#: js/blocks/EnsembleBlocks.js:915 +#: js/blocks/EnsembleBlocks.js:955 +#: js/blocks/EnsembleBlocks.js:1219 +#: js/blocks/EnsembleBlocks.js:1293 #.TRANS: Yertle is the name of a turtle. msgid "Yertle" msgstr "" -#: js/EnsembleBlocks.js:92 -#: js/EnsembleBlocks.js:1089 +#: js/blocks/EnsembleBlocks.js:92 +#: js/blocks/EnsembleBlocks.js:1089 msgid "turtle name" msgstr "" -#: js/EnsembleBlocks.js:122 -#: js/EnsembleBlocks.js:1197 -#: js/HeapBlocks.js:474 -#: js/HeapBlocks.js:572 +#: js/blocks/EnsembleBlocks.js:122 +#: js/blocks/EnsembleBlocks.js:1197 +#: js/blocks/HeapBlocks.js:474 +#: js/blocks/HeapBlocks.js:572 msgid "Index must be > 0." msgstr "" -#: js/EnsembleBlocks.js:127 -#: js/HeapBlocks.js:479 -#: js/HeapBlocks.js:577 +#: js/blocks/EnsembleBlocks.js:127 +#: js/blocks/HeapBlocks.js:479 +#: js/blocks/HeapBlocks.js:577 msgid "Maximum heap size is 1000." msgstr "" -#: js/EnsembleBlocks.js:145 +#: js/blocks/EnsembleBlocks.js:145 msgid "stop mouse" msgstr "" -#: js/EnsembleBlocks.js:147 +#: js/blocks/EnsembleBlocks.js:147 msgid "The Stop mouse block stops the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:158 +#: js/blocks/EnsembleBlocks.js:158 msgid "stop turtle" msgstr "" -#: js/EnsembleBlocks.js:160 +#: js/blocks/EnsembleBlocks.js:160 msgid "The Stop turtle block stops the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:184 -#: js/EnsembleBlocks.js:247 -#: js/EnsembleBlocks.js:413 -#: js/EnsembleBlocks.js:468 -#: js/EnsembleBlocks.js:706 -#: js/EnsembleBlocks.js:808 -#: js/EnsembleBlocks.js:870 -#: js/EnsembleBlocks.js:1190 -#: js/EnsembleBlocks.js:1253 +#: js/blocks/EnsembleBlocks.js:184 +#: js/blocks/EnsembleBlocks.js:247 +#: js/blocks/EnsembleBlocks.js:413 +#: js/blocks/EnsembleBlocks.js:468 +#: js/blocks/EnsembleBlocks.js:706 +#: js/blocks/EnsembleBlocks.js:808 +#: js/blocks/EnsembleBlocks.js:870 +#: js/blocks/EnsembleBlocks.js:1190 +#: js/blocks/EnsembleBlocks.js:1253 msgid "Cannot find mouse" msgstr "" -#: js/EnsembleBlocks.js:186 -#: js/EnsembleBlocks.js:249 -#: js/EnsembleBlocks.js:415 -#: js/EnsembleBlocks.js:470 -#: js/EnsembleBlocks.js:708 -#: js/EnsembleBlocks.js:810 -#: js/EnsembleBlocks.js:872 -#: js/EnsembleBlocks.js:1192 -#: js/EnsembleBlocks.js:1255 +#: js/blocks/EnsembleBlocks.js:186 +#: js/blocks/EnsembleBlocks.js:249 +#: js/blocks/EnsembleBlocks.js:415 +#: js/blocks/EnsembleBlocks.js:470 +#: js/blocks/EnsembleBlocks.js:708 +#: js/blocks/EnsembleBlocks.js:810 +#: js/blocks/EnsembleBlocks.js:872 +#: js/blocks/EnsembleBlocks.js:1192 +#: js/blocks/EnsembleBlocks.js:1255 msgid "Cannot find turtle" msgstr "" -#: js/EnsembleBlocks.js:206 +#: js/blocks/EnsembleBlocks.js:206 msgid "start mouse" msgstr "" -#: js/EnsembleBlocks.js:209 +#: js/blocks/EnsembleBlocks.js:209 msgid "The Start mouse block starts the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:220 +#: js/blocks/EnsembleBlocks.js:220 msgid "start turtle" msgstr "" -#: js/EnsembleBlocks.js:223 +#: js/blocks/EnsembleBlocks.js:223 msgid "The Start turtle block starts the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:256 +#: js/blocks/EnsembleBlocks.js:256 msgid "Mouse is already running." msgstr "" -#: js/EnsembleBlocks.js:258 +#: js/blocks/EnsembleBlocks.js:258 msgid "Turtle is already running." msgstr "" -#: js/EnsembleBlocks.js:282 +#: js/blocks/EnsembleBlocks.js:282 msgid "Cannot find start block" msgstr "" -#: js/EnsembleBlocks.js:292 +#: js/blocks/EnsembleBlocks.js:292 #.TRANS: pen color for this mouse msgid "mouse color" msgstr "" -#: js/EnsembleBlocks.js:294 +#: js/blocks/EnsembleBlocks.js:294 msgid "The Mouse color block returns the pen color of the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:306 +#: js/blocks/EnsembleBlocks.js:306 #.TRANS: pen color for this turtle msgid "turtle color" msgstr "" -#: js/EnsembleBlocks.js:308 +#: js/blocks/EnsembleBlocks.js:308 msgid "The Turtle color block returns the pen color of the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:338 +#: js/blocks/EnsembleBlocks.js:338 #.TRANS: heading (compass direction) for this mouse msgid "mouse heading" msgstr "" -#: js/EnsembleBlocks.js:340 +#: js/blocks/EnsembleBlocks.js:340 msgid "The Mouse heading block returns the heading of the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:352 +#: js/blocks/EnsembleBlocks.js:352 #.TRANS: heading (compass direction) for this turtle msgid "turtle heading" msgstr "" -#: js/EnsembleBlocks.js:354 +#: js/blocks/EnsembleBlocks.js:354 msgid "The Turtle heading block returns the heading of the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:384 -#: js/EnsembleBlocks.js:439 +#: js/blocks/EnsembleBlocks.js:384 +#: js/blocks/EnsembleBlocks.js:439 #.TRANS: set xy position for this mouse msgid "set mouse" msgstr "" -#: js/EnsembleBlocks.js:391 -#: js/EnsembleBlocks.js:402 -#: js/BoxesBlocks.js:595 -msgid "name1" -msgstr "" - -#: js/EnsembleBlocks.js:391 -#: js/EnsembleBlocks.js:402 -#: js/ProgramBlocks.js:881 -#: js/GraphicsBlocks.js:235 -#: js/GraphicsBlocks.js:313 -#: js/GraphicsBlocks.js:436 -#: js/GraphicsBlocks.js:487 -#: js/GraphicsBlocks.js:534 -#: js/GraphicsBlocks.js:750 +#: js/blocks/EnsembleBlocks.js:391 +#: js/blocks/EnsembleBlocks.js:402 +#: js/blocks/GraphicsBlocks.js:235 +#: js/blocks/GraphicsBlocks.js:313 +#: js/blocks/GraphicsBlocks.js:436 +#: js/blocks/GraphicsBlocks.js:487 +#: js/blocks/GraphicsBlocks.js:534 +#: js/blocks/GraphicsBlocks.js:750 +#: js/blocks/ProgramBlocks.js:881 msgid "x" msgstr "" -#: js/EnsembleBlocks.js:391 -#: js/EnsembleBlocks.js:402 -#: js/ProgramBlocks.js:881 -#: js/GraphicsBlocks.js:149 -#: js/GraphicsBlocks.js:313 -#: js/GraphicsBlocks.js:436 -#: js/GraphicsBlocks.js:487 -#: js/GraphicsBlocks.js:534 -#: js/GraphicsBlocks.js:750 +#: js/blocks/EnsembleBlocks.js:391 +#: js/blocks/EnsembleBlocks.js:402 +#: js/blocks/GraphicsBlocks.js:149 +#: js/blocks/GraphicsBlocks.js:313 +#: js/blocks/GraphicsBlocks.js:436 +#: js/blocks/GraphicsBlocks.js:487 +#: js/blocks/GraphicsBlocks.js:534 +#: js/blocks/GraphicsBlocks.js:750 +#: js/blocks/ProgramBlocks.js:881 msgid "y" msgstr "" -#: js/EnsembleBlocks.js:395 -#: js/EnsembleBlocks.js:452 +#: js/blocks/EnsembleBlocks.js:395 +#: js/blocks/EnsembleBlocks.js:452 #.TRANS: set xy position for this turtle msgid "set turtle" msgstr "" -#: js/EnsembleBlocks.js:433 +#: js/blocks/EnsembleBlocks.js:433 msgid "The Set mouse block sends a stack of blocks to be run by the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:446 +#: js/blocks/EnsembleBlocks.js:446 msgid "The Set turtle block sends a stack of blocks to be run by the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:480 +#: js/blocks/EnsembleBlocks.js:480 #.TRANS: y position for this mouse msgid "mouse y" msgstr "" -#: js/EnsembleBlocks.js:482 +#: js/blocks/EnsembleBlocks.js:482 msgid "The Y mouse block returns the Y position of the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:494 +#: js/blocks/EnsembleBlocks.js:494 #.TRANS: y position for this turtle msgid "turtle y" msgstr "" -#: js/EnsembleBlocks.js:496 +#: js/blocks/EnsembleBlocks.js:496 msgid "The Y turtle block returns the Y position of the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:526 +#: js/blocks/EnsembleBlocks.js:526 #.TRANS: x position for this mouse msgid "mouse x" msgstr "" -#: js/EnsembleBlocks.js:528 +#: js/blocks/EnsembleBlocks.js:528 msgid "The X mouse block returns the X position of the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:540 +#: js/blocks/EnsembleBlocks.js:540 #.TRANS: x position for this turtle msgid "turtle x" msgstr "" -#: js/EnsembleBlocks.js:542 +#: js/blocks/EnsembleBlocks.js:542 msgid "The X turtle block returns the X position of the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:573 +#: js/blocks/EnsembleBlocks.js:573 #.TRANS: notes played by this mouse msgid "mouse notes played" msgstr "" -#: js/EnsembleBlocks.js:575 +#: js/blocks/EnsembleBlocks.js:575 msgid "The Mouse elapse notes block returns the number of notes played by the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:587 +#: js/blocks/EnsembleBlocks.js:587 #.TRANS: notes played by this turtle msgid "turtle notes played" msgstr "" -#: js/EnsembleBlocks.js:589 +#: js/blocks/EnsembleBlocks.js:589 msgid "The Turtle elapse notes block returns the number of notes played by the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:627 +#: js/blocks/EnsembleBlocks.js:627 #.TRANS: convert current note for this turtle to piano key (1-88) msgid "mouse pitch number" msgstr "" -#: js/EnsembleBlocks.js:629 +#: js/blocks/EnsembleBlocks.js:629 msgid "The Mouse pitch block returns the current pitch number being played by the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:641 +#: js/blocks/EnsembleBlocks.js:641 #.TRANS: convert current note for this turtle to piano key (1-88) msgid "turtle pitch number" msgstr "" -#: js/EnsembleBlocks.js:643 -msgid "The Turrle pitch block returns the current pitch number being played by the specified turtle." +#: js/blocks/EnsembleBlocks.js:643 +msgid "The Turtle pitch block returns the current pitch number being played by the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:747 -#: js/EnsembleBlocks.js:819 +#: js/blocks/EnsembleBlocks.js:747 +#: js/blocks/EnsembleBlocks.js:819 #.TRANS: note value is the duration of the note played by this mouse msgid "mouse note value" msgstr "" -#: js/EnsembleBlocks.js:757 +#: js/blocks/EnsembleBlocks.js:757 #.TRANS: note value is the duration of the note played by this turtle msgid "turtle note value" msgstr "" -#: js/EnsembleBlocks.js:830 +#: js/blocks/EnsembleBlocks.js:830 #.TRANS: sync is short for synchronization msgid "mouse sync" msgstr "" -#: js/EnsembleBlocks.js:832 +#: js/blocks/EnsembleBlocks.js:832 msgid "The Mouse sync block aligns the beat count between mice." msgstr "" -#: js/EnsembleBlocks.js:844 +#: js/blocks/EnsembleBlocks.js:844 #.TRANS: sync is short for synchronization msgid "turtle sync" msgstr "" -#: js/EnsembleBlocks.js:846 +#: js/blocks/EnsembleBlocks.js:846 msgid "The Turtle sync block aligns the beat count between turtles." msgstr "" -#: js/EnsembleBlocks.js:887 +#: js/blocks/EnsembleBlocks.js:887 msgid "The Found mouse block will return true if the specified mouse can be found." msgstr "" -#: js/EnsembleBlocks.js:893 +#: js/blocks/EnsembleBlocks.js:893 msgid "found mouse" msgstr "" -#: js/EnsembleBlocks.js:903 +#: js/blocks/EnsembleBlocks.js:903 msgid "The Found turtle block will return true if the specified turtle can be found." msgstr "" -#: js/EnsembleBlocks.js:909 +#: js/blocks/EnsembleBlocks.js:909 msgid "found turtle" msgstr "" -#: js/EnsembleBlocks.js:932 +#: js/blocks/EnsembleBlocks.js:932 msgid "new mouse" msgstr "" -#: js/EnsembleBlocks.js:934 +#: js/blocks/EnsembleBlocks.js:934 msgid "The New mouse block will create a new mouse." msgstr "" -#: js/EnsembleBlocks.js:945 +#: js/blocks/EnsembleBlocks.js:945 msgid "new turtle" msgstr "" -#: js/EnsembleBlocks.js:947 +#: js/blocks/EnsembleBlocks.js:947 msgid "The New turtle block will create a new turtle." msgstr "" -#: js/EnsembleBlocks.js:1011 +#: js/blocks/EnsembleBlocks.js:1011 msgid "set mouse color" msgstr "" -#: js/EnsembleBlocks.js:1014 +#: js/blocks/EnsembleBlocks.js:1014 msgid "The Set-mouse-color block is used to set the color of a mouse." msgstr "" -#: js/EnsembleBlocks.js:1020 +#: js/blocks/EnsembleBlocks.js:1020 msgid "set turtle color" msgstr "" -#: js/EnsembleBlocks.js:1023 +#: js/blocks/EnsembleBlocks.js:1023 msgid "The Set-turtle-color block is used to set the color of a turtle." msgstr "" -#: js/EnsembleBlocks.js:1083 +#: js/blocks/EnsembleBlocks.js:1083 msgid "The Mouse-name block returns the name of a mouse." msgstr "" -#: js/EnsembleBlocks.js:1092 +#: js/blocks/EnsembleBlocks.js:1092 msgid "The Turtle-name block returns the name of a turtle." msgstr "" -#: js/EnsembleBlocks.js:1115 +#: js/blocks/EnsembleBlocks.js:1115 msgid "mouse count" msgstr "" -#: js/EnsembleBlocks.js:1118 +#: js/blocks/EnsembleBlocks.js:1118 msgid "The Mouse-count block returns the number of mice." msgstr "" -#: js/EnsembleBlocks.js:1124 +#: js/blocks/EnsembleBlocks.js:1124 msgid "turtle count" msgstr "" -#: js/EnsembleBlocks.js:1127 +#: js/blocks/EnsembleBlocks.js:1127 msgid "The Turtle-count block returns the number of turtles." msgstr "" -#: js/EnsembleBlocks.js:1149 +#: js/blocks/EnsembleBlocks.js:1149 msgid "nth mouse name" msgstr "" -#: js/EnsembleBlocks.js:1152 +#: js/blocks/EnsembleBlocks.js:1152 msgid "The Nth-Mouse name block returns the name of the nth mouse." msgstr "" -#: js/EnsembleBlocks.js:1158 +#: js/blocks/EnsembleBlocks.js:1158 msgid "nth turtle name" msgstr "" -#: js/EnsembleBlocks.js:1161 +#: js/blocks/EnsembleBlocks.js:1161 msgid "The Nth-Turtle name block returns the name of the nth turtle." msgstr "" -#: js/EnsembleBlocks.js:1205 -#: js/EnsembleBlocks.js:1265 +#: js/blocks/EnsembleBlocks.js:1205 +#: js/blocks/EnsembleBlocks.js:1265 msgid "set name" msgstr "" -#: js/EnsembleBlocks.js:1214 -#: js/EnsembleBlocks.js:1221 +#: js/blocks/EnsembleBlocks.js:1214 +#: js/blocks/EnsembleBlocks.js:1221 msgid "source" msgstr "" -#: js/EnsembleBlocks.js:1214 -#: js/EnsembleBlocks.js:1221 +#: js/blocks/EnsembleBlocks.js:1214 +#: js/blocks/EnsembleBlocks.js:1221 msgid "target" msgstr "" -#: js/EnsembleBlocks.js:1271 +#: js/blocks/EnsembleBlocks.js:1271 msgid "The Set-name block is used to name a mouse." msgstr "" -#: js/EnsembleBlocks.js:1284 +#: js/blocks/EnsembleBlocks.js:1284 msgid "The Set-name block is used to name a turtle." msgstr "" -#: js/BooleanBlocks.js:44 -msgid "The Not block is the logical not operator." -msgstr "" - -#: js/BooleanBlocks.js:62 -msgid "not" -msgstr "" - -#: js/BooleanBlocks.js:134 -msgid "The And block is the logical and operator." -msgstr "" - -#: js/BooleanBlocks.js:152 -msgid "and" -msgstr "" - -#: js/BooleanBlocks.js:218 -msgid "The Or block is the logical or operator." -msgstr "" - -#: js/BooleanBlocks.js:236 -msgid "or" -msgstr "" - -#: js/BooleanBlocks.js:302 -msgid "The XOR block is the logical XOR operator." -msgstr "" - -#: js/BooleanBlocks.js:320 -msgid "xor" -msgstr "" - -#: js/BooleanBlocks.js:808 -msgid "The Equal block returns True if the two numbers are equal." -msgstr "" - -#: js/BooleanBlocks.js:909 -msgid "The Not-equal-to block returns True if the two numbers are not equal to each other." -msgstr "" - -#: js/BooleanBlocks.js:1008 -msgid "The Boolean block is used to specify true or false." -msgstr "" - -#: js/MediaBlocks.js:35 -#.TRANS: right side of the screen -msgid "right (screen)" -msgstr "" - -#: js/MediaBlocks.js:45 -#: js/MediaBlocks.js:56 -msgid "The Right block returns the position of the right of the canvas." -msgstr "" - -#: js/MediaBlocks.js:97 -#.TRANS: left side of the screen -msgid "left (screen)" -msgstr "" - -#: js/MediaBlocks.js:107 -#: js/MediaBlocks.js:118 -msgid "The Left block returns the position of the left of the canvas." -msgstr "" - -#: js/MediaBlocks.js:158 -msgid "top (screen)" -msgstr "" - -#: js/MediaBlocks.js:168 -#: js/MediaBlocks.js:179 -msgid "The Top block returns the position of the top of the canvas." -msgstr "" - -#: js/MediaBlocks.js:219 -msgid "bottom (screen)" +#: js/blocks/ExtrasBlocks.js:33 +msgid "fraction" msgstr "" -#: js/MediaBlocks.js:229 -#: js/MediaBlocks.js:240 -msgid "The Bottom block returns the position of the bottom of the canvas." +#: js/blocks/ExtrasBlocks.js:36 +msgid "Convert a float to a fraction" msgstr "" -#: js/MediaBlocks.js:282 -msgid "width" +#: js/blocks/ExtrasBlocks.js:93 +msgid "save as ABC" msgstr "" -#: js/MediaBlocks.js:291 -msgid "The Width block returns the width of the canvas." +#: js/blocks/ExtrasBlocks.js:96 +#: js/blocks/ExtrasBlocks.js:132 +#: js/blocks/ExtrasBlocks.js:168 +msgid "title" msgstr "" -#: js/MediaBlocks.js:325 -msgid "height" +#: js/blocks/ExtrasBlocks.js:129 +msgid "save as Lilypond" msgstr "" -#: js/MediaBlocks.js:334 -msgid "The Height block returns the height of the canvas." +#: js/blocks/ExtrasBlocks.js:165 +msgid "save as SVG" msgstr "" -#: js/MediaBlocks.js:369 -#.TRANS: stops playback of an audio recording -msgid "stop play" +#: js/blocks/ExtrasBlocks.js:216 +msgid "no background" msgstr "" -#: js/MediaBlocks.js:404 -#.TRANS: Erases the images and text -msgid "erase media" +#: js/blocks/ExtrasBlocks.js:219 +msgid "The No background block eliminates the background from the saved SVG output." msgstr "" -#: js/MediaBlocks.js:409 -msgid "The Erase Media block erases text and images." +#: js/blocks/ExtrasBlocks.js:247 +msgid "show blocks" msgstr "" -#: js/MediaBlocks.js:439 -#.TRANS: play an audio recording -msgid "play back" +#: js/blocks/ExtrasBlocks.js:249 +msgid "The Show blocks block shows the blocks." msgstr "" -#: js/MediaBlocks.js:487 -msgid "speak" +#: js/blocks/ExtrasBlocks.js:274 +msgid "hide blocks" msgstr "" -#: js/MediaBlocks.js:495 -msgid "The Speak block outputs to the text-to-speech synthesizer" +#: js/blocks/ExtrasBlocks.js:276 +msgid "The Hide blocks block hides the blocks." msgstr "" -#: js/MediaBlocks.js:546 -msgid "camera" +#: js/blocks/ExtrasBlocks.js:305 +#: js/blocks/ExtrasBlocks.js:338 +msgid "The Space block is used to add space between blocks." msgstr "" -#: js/MediaBlocks.js:551 -msgid "The Camera block connects a webcam to the Show block." +#: js/blocks/ExtrasBlocks.js:376 +msgid "wait" msgstr "" -#: js/MediaBlocks.js:574 -msgid "video" +#: js/blocks/ExtrasBlocks.js:379 +msgid "The Wait block pauses the program for a specified number of seconds." msgstr "" -#: js/MediaBlocks.js:579 -msgid "The Video block selects video for use with the Show block." +#: js/blocks/ExtrasBlocks.js:433 +#: plugins/facebook.rtp:30 +msgid "comment" msgstr "" -#: js/MediaBlocks.js:607 -msgid "The Open file block opens a file for use with the Show block." +#: js/blocks/ExtrasBlocks.js:469 +msgid "print" msgstr "" -#: js/MediaBlocks.js:645 -msgid "stop media" +#: js/blocks/ExtrasBlocks.js:476 +msgid "The Print block displays text at the top of the screen." msgstr "" -#: js/MediaBlocks.js:650 -msgid "The Stop media block stops audio or video playback." +#: js/blocks/ExtrasBlocks.js:582 +msgid "display grid" msgstr "" -#: js/MediaBlocks.js:679 -#: js/PitchBlocks.js:1539 -#: js/phrasemaker.js:822 -#: js/musickeyboard.js:1654 -#.TRANS: a measure of frequency: one cycle per second -msgid "hertz" +#: js/blocks/ExtrasBlocks.js:587 +msgid "The Display Grid Block changes the grid type" msgstr "" -#: js/MediaBlocks.js:692 -msgid "duration (ms)" +#: js/blocks/ExtrasBlocks.js:689 +#: js/blocks/ExtrasBlocks.js:708 +#: js/blocks/ExtrasBlocks.js:731 +#: js/blocks/ExtrasBlocks.js:754 +#: js/blocks/ExtrasBlocks.js:772 +#: js/blocks/ExtrasBlocks.js:791 +#: js/blocks/ExtrasBlocks.js:810 +#: js/blocks/ExtrasBlocks.js:829 +msgid "unknown" msgstr "" -#: js/MediaBlocks.js:728 -#.TRANS: translate a note into hertz, e.g., A4 -> 440HZ -msgid "note to frequency" +#: js/blocks/FlowBlocks.js:41 +msgid "The Backward block runs code in reverse order (Musical retrograde)." msgstr "" -#: js/MediaBlocks.js:736 -msgid "The To frequency block converts a pitch name and octave to Hertz." +#: js/blocks/FlowBlocks.js:48 +msgid "backward" msgstr "" -#: js/MediaBlocks.js:746 -#: js/PitchBlocks.js:656 -#: js/PitchBlocks.js:932 -#: js/PitchBlocks.js:1827 -#.TRANS: name2 is name as in name of pitch (JAPANESE ONLY) -msgid "name2" +#: js/blocks/FlowBlocks.js:124 +msgid "The Duplicate block will run each block multiple times." msgstr "" -#: js/MediaBlocks.js:812 -msgid "The Avatar block is used to change the appearance of the mouse." +#: js/blocks/FlowBlocks.js:136 +msgid "duplicate" msgstr "" -#: js/MediaBlocks.js:819 -msgid "The Avatar block is used to change the appearance of the turtle." +#: js/blocks/FlowBlocks.js:334 +msgid "The Default block is used inside of a Switch to define the default action." msgstr "" -#: js/MediaBlocks.js:831 -#: js/MediaBlocks.js:891 -#.TRANS: a media object -msgid "size" +#: js/blocks/FlowBlocks.js:342 +msgid "default" msgstr "" -#: js/MediaBlocks.js:831 -msgid "image" +#: js/blocks/FlowBlocks.js:361 +#: js/blocks/FlowBlocks.js:418 +msgid "The Case Block must be used inside of a Switch Block." msgstr "" -#: js/MediaBlocks.js:880 -msgid "The Show block is used to display text or images on the canvas." +#: js/blocks/FlowBlocks.js:389 +msgid "The Case block is used inside of a Switch to define matches." msgstr "" -#: js/MediaBlocks.js:888 -#.TRANS: show1 is show as in display an image or text on the screen. -msgid "show1" +#: js/blocks/FlowBlocks.js:397 +msgid "case" msgstr "" -#: js/MediaBlocks.js:891 -msgid "obj" +#: js/blocks/FlowBlocks.js:446 +msgid "The Switch block will run the code in the matching Case." msgstr "" -#: js/MediaBlocks.js:938 -msgid "The Media block is used to import an image." +#: js/blocks/FlowBlocks.js:454 +msgid "switch" msgstr "" -#: js/MediaBlocks.js:973 -msgid "The Text block holds a text string." +#: js/blocks/FlowBlocks.js:595 +msgid "The Stop block will stop a loop" msgstr "" -#: js/ProgramBlocks.js:33 -msgid "The Load-heap-from-app block loads the heap from a web page." +#: js/blocks/FlowBlocks.js:597 +msgid "Forever, Repeat, While, or Until." msgstr "" -#: js/ProgramBlocks.js:44 -#.TRANS: load the heap contents from a URL -msgid "load heap from App" +#: js/blocks/FlowBlocks.js:604 +#: js/widgets/timbre.js:417 +#: js/widgets/timbre.js:419 +#: js/widgets/musickeyboard.js:819 +#: js/widgets/musickeyboard.js:821 +#: js/widgets/phrasemaker.js:4202 +#: plugins/rodi.rtp:29 +#: plugins/rodi.rtp:73 +#: plugins/rodi.rtp:413 +msgid "stop" msgstr "" -#: js/ProgramBlocks.js:95 -msgid "Error parsing JSON data:" +#: js/blocks/FlowBlocks.js:653 +msgid "The Waitfor block will wait until the condition is true." msgstr "" -#: js/ProgramBlocks.js:100 -msgid "404: Page not found" +#: js/blocks/FlowBlocks.js:661 +msgid "wait for" msgstr "" -#: js/ProgramBlocks.js:133 -msgid "The Save-heap-to-app block saves the heap to a web page." +#: js/blocks/FlowBlocks.js:732 +msgid "The Until block will repeat until the condition is true." msgstr "" -#: js/ProgramBlocks.js:144 -#.TRANS: save the heap contents to a URL -msgid "save heap to App" +#: js/blocks/FlowBlocks.js:740 +msgid "until" msgstr "" -#: js/ProgramBlocks.js:189 -msgid "Cannot find a valid heap for" +#: js/blocks/FlowBlocks.js:742 +#: js/blocks/FlowBlocks.js:822 +msgid "do2" msgstr "" -#: js/ProgramBlocks.js:206 -msgid "The Load-heap block loads the heap from a file." +#: js/blocks/FlowBlocks.js:812 +msgid "The While block will repeat while the condition is true." msgstr "" -#: js/ProgramBlocks.js:217 -#.TRANS: load the heap from a file -msgid "load heap" +#: js/blocks/FlowBlocks.js:820 +msgid "while" msgstr "" -#: js/ProgramBlocks.js:270 -msgid "The file you selected does not contain a valid heap." +#: js/blocks/FlowBlocks.js:903 +#: js/blocks/FlowBlocks.js:968 +#: js/blocks/FlowBlocks.js:979 +msgid "In this example if the mouse button is pressed a snare drum will play." msgstr "" -#: js/ProgramBlocks.js:275 -msgid "The loadHeap block needs a loadFile block." +#: js/blocks/FlowBlocks.js:925 +#: js/blocks/FlowBlocks.js:988 +msgid "if" msgstr "" -#: js/ProgramBlocks.js:291 -msgid "The Set-heap block loads the heap." +#: js/blocks/FlowBlocks.js:927 +#: js/blocks/FlowBlocks.js:990 +msgid "then" msgstr "" -#: js/ProgramBlocks.js:299 -#: js/HeapBlocks.js:539 -#.TRANS: load the heap from a JSON encoding -msgid "set heap" +#: js/blocks/FlowBlocks.js:927 +msgid "else" msgstr "" -#: js/ProgramBlocks.js:340 -msgid "The block you selected does not contain a valid heap." +#: js/blocks/FlowBlocks.js:1025 +msgid "The Forever block will repeat the contained blocks forever." msgstr "" -#: js/ProgramBlocks.js:343 -msgid "The Set heap block needs a heap." +#: js/blocks/FlowBlocks.js:1037 +msgid "forever" msgstr "" -#: js/ProgramBlocks.js:360 -msgid "The Load-dictionary block loads a dictionary from a file." +#: js/blocks/FlowBlocks.js:1073 +msgid "The Repeat block will repeat the contained blocks." msgstr "" -#: js/ProgramBlocks.js:372 -#.TRANS: load a dictionary from a file -msgid "load dictionary" +#: js/blocks/FlowBlocks.js:1075 +msgid "In this example the note will be played 4 times." msgstr "" -#: js/ProgramBlocks.js:390 -#: js/ProgramBlocks.js:658 -#: js/ToneBlocks.js:1025 -msgid "file" +#: js/blocks/FlowBlocks.js:1083 +msgid "repeat" msgstr "" -#: js/ProgramBlocks.js:396 -#: js/ProgramBlocks.js:501 -#: js/ProgramBlocks.js:664 -#: js/DictBlocks.js:80 -#: js/DictBlocks.js:145 -#: js/DictBlocks.js:216 -#: js/DictBlocks.js:290 -msgid "My Dictionary" +#: js/blocks/FlowBlocks.js:1123 +msgid "duplicate factor" msgstr "" -#: js/ProgramBlocks.js:444 -msgid "The file you selected does not contain a valid dictionary." +#: js/blocks/HeapBlocks.js:49 +msgid "The Heap block returns the heap." msgstr "" -#: js/ProgramBlocks.js:449 -msgid "The load dictionary block needs a load file block." +#: js/blocks/HeapBlocks.js:133 +msgid "show heap" msgstr "" -#: js/ProgramBlocks.js:466 -msgid "The Set-dictionary block loads a dictionary." +#: js/blocks/HeapBlocks.js:181 +msgid "The Heap-length block returns the length of the heap." msgstr "" -#: js/ProgramBlocks.js:477 -#.TRANS: load a dictionary from a JSON -msgid "set dictionary" +#: js/blocks/HeapBlocks.js:195 +msgid "heap length" msgstr "" -#: js/ProgramBlocks.js:546 -msgid "The block you selected does not contain a valid dictionary." +#: js/blocks/HeapBlocks.js:254 +msgid "The Heap-empty? block returns true if the heap is empty." msgstr "" -#: js/ProgramBlocks.js:550 -msgid "The set dictionary block needs a dictionary." +#: js/blocks/HeapBlocks.js:268 +#.TRANS: Is the heap empty? +msgid "heap empty?" msgstr "" -#: js/ProgramBlocks.js:567 -msgid "The Save-heap block saves the heap to a file." +#: js/blocks/HeapBlocks.js:317 +msgid "The Empty-heap block empties the heap." msgstr "" -#: js/ProgramBlocks.js:578 -#.TRANS: save the heap to a file -msgid "save heap" +#: js/blocks/HeapBlocks.js:327 +#: js/blocks/HeapBlocks.js:647 +#.TRANS: empty the heap +msgid "empty heap" msgstr "" -#: js/ProgramBlocks.js:629 -msgid "The Save-dictionary block saves a dictionary to a file." +#: js/blocks/HeapBlocks.js:371 +msgid "The Reverse-heap block reverses the order of the heap." msgstr "" -#: js/ProgramBlocks.js:640 -#.TRANS: save a dictionary to a file -msgid "save dictionary" +#: js/blocks/HeapBlocks.js:384 +#.TRANS: reverse the order of the heap +msgid "reverse heap" msgstr "" -#: js/ProgramBlocks.js:720 -msgid "The Open palette block opens a palette." +#: js/blocks/HeapBlocks.js:428 +msgid "The Index-heap block returns a value in the heap at a specified location." msgstr "" -#: js/ProgramBlocks.js:727 -msgid "open palette" +#: js/blocks/HeapBlocks.js:443 +#.TRANS: retrieve a value from the heap at index position in the heap +msgid "index heap" msgstr "" -#: js/ProgramBlocks.js:785 -msgid "The Delete block block removes a block." +#: js/blocks/HeapBlocks.js:523 +msgid "The Set-heap entry block sets a value in he heap at the specified location." msgstr "" -#: js/ProgramBlocks.js:797 -#.TRANS: Move this block to the trash. -msgid "delete block" +#: js/blocks/HeapBlocks.js:539 +#: js/blocks/ProgramBlocks.js:299 +#.TRANS: load the heap from a JSON encoding +msgid "set heap" msgstr "" -#: js/ProgramBlocks.js:861 -msgid "The Move block block moves a block." +#: js/blocks/HeapBlocks.js:619 +msgid "The Pop block removes the value at the top of the heap." msgstr "" -#: js/ProgramBlocks.js:869 -#.TRANS: Move the position of a block on the screen. -msgid "move block" +#: js/blocks/HeapBlocks.js:633 +#.TRANS: pop a value off the top of the heap +msgid "pop" msgstr "" -#: js/ProgramBlocks.js:881 -#: js/ProgramBlocks.js:1048 -msgid "block number" +#: js/blocks/HeapBlocks.js:680 +msgid "The Push block adds a value to the top of the heap." msgstr "" -#: js/ProgramBlocks.js:935 -#.TRANS: Run program beginning at this block. -msgid "run block" +#: js/blocks/HeapBlocks.js:696 +#.TRANS: push a value onto the top of the heap +msgid "push" msgstr "" -#: js/ProgramBlocks.js:1025 -msgid "The Dock block block connections two blocks." +#: js/blocks/IntervalsBlocks.js:45 +msgid "set temperament" msgstr "" -#: js/ProgramBlocks.js:1036 -#.TRANS: We can connect a block to another block. -msgid "connect blocks" +#: js/blocks/IntervalsBlocks.js:63 +#: js/blocks/MediaBlocks.js:746 +#: js/blocks/PitchBlocks.js:657 +#: js/blocks/PitchBlocks.js:935 +#: js/blocks/PitchBlocks.js:974 +#: js/blocks/PitchBlocks.js:1007 +#: js/blocks/PitchBlocks.js:1194 +#: js/blocks/PitchBlocks.js:1717 +#: js/blocks/PitchBlocks.js:1758 +#: js/blocks/PitchBlocks.js:1866 +#: js/blocks/ToneBlocks.js:1025 +#: js/turtleactions/IntervalsActions.js:114 +#.TRANS: adjusts the shift up or down by one octave (twelve half-steps in the interval between two notes, one having twice or half the frequency in Hz of the other.) +msgid "octave" msgstr "" -#: js/ProgramBlocks.js:1048 -msgid "target block" +#: js/blocks/IntervalsBlocks.js:99 +msgid "The Temperament name block is used to select a tuning method." msgstr "" -#: js/ProgramBlocks.js:1048 -msgid "connection number" +#: js/blocks/IntervalsBlocks.js:161 +msgid "doubly" msgstr "" -#: js/ProgramBlocks.js:1140 -msgid "The Make block block creates a new block." +#: js/blocks/IntervalsBlocks.js:166 +msgid "The Doubly block will double the size of an interval." msgstr "" -#: js/ProgramBlocks.js:1152 -#.TRANS: Create a new block -msgid "make block" +#: js/blocks/IntervalsBlocks.js:262 +msgid "interval number" msgstr "" -#: js/ProgramBlocks.js:1186 -#: js/ProgramBlocks.js:1227 -#: js/RhythmBlocks.js:1128 -#: js/PitchBlocks.js:972 -#: js/PitchBlocks.js:1005 -#: js/temperament.js:340 -#: js/temperament.js:362 -#: js/temperament.js:372 -#: js/temperament.js:484 -#: js/status.js:190 -#: plugins/rodi.rtp:192 -#.TRANS: a musical note consisting of pitch and duration -msgid "note" +#: js/blocks/IntervalsBlocks.js:317 +msgid "current interval" msgstr "" -#: js/ProgramBlocks.js:1285 -msgid "Cannot find block" +#: js/blocks/IntervalsBlocks.js:387 +#.TRANS: measure the distance between two pitches in semi-tones +msgid "semi-tone interval measure" msgstr "" -#: js/ProgramBlocks.js:1304 -#: js/ProgramBlocks.js:1313 -msgid "Warning: block argument type mismatch" +#: js/blocks/IntervalsBlocks.js:454 +#: js/blocks/IntervalsBlocks.js:570 +msgid "You must use two pitch blocks when measuring an interval." msgstr "" -#: js/ProgramBlocks.js:1347 -msgid "The Open project block is used to open a project from a web page." +#: js/blocks/IntervalsBlocks.js:496 +msgid "The Scalar interval block measures the distance between two notes in the current key and mode." msgstr "" -#: js/ProgramBlocks.js:1357 -msgid "open project" +#: js/blocks/IntervalsBlocks.js:502 +#.TRANS: measure the distance between two pitches in steps of musical scale +msgid "scalar interval measure" msgstr "" -#: js/ProgramBlocks.js:1410 -msgid "Please enter a valid URL." +#: js/blocks/IntervalsBlocks.js:678 +msgid "In the figure, we add sol# to sol." msgstr "" -#: js/DrumBlocks.js:59 -msgid "The Noise name block is used to select a noise synthesizer." +#: js/blocks/IntervalsBlocks.js:684 +#: js/blocks/OrnamentBlocks.js:220 +#.TRANS: calculate a relative step between notes based on semi-tones +msgid "semi-tone interval" msgstr "" -#: js/DrumBlocks.js:102 -msgid "The Drum name block is used to select a drum." +#: js/blocks/IntervalsBlocks.js:733 +msgid "The output of the example is: do, mi, sol, sol, ti, mi" msgstr "" -#: js/DrumBlocks.js:146 -msgid "The Effects name block is used to select a sound effect." +#: js/blocks/IntervalsBlocks.js:740 +#: js/blocks/WidgetBlocks.js:768 +msgid "arpeggio" msgstr "" -#: js/DrumBlocks.js:163 -msgid "noise" +#: js/blocks/IntervalsBlocks.js:931 +msgid "The Chord block calculates common chords." msgstr "" -#: js/DrumBlocks.js:177 -msgid "The Play noise block will generate white, pink, or brown noise." +#: js/blocks/IntervalsBlocks.js:933 +msgid "In the figure, we generate a C-major chord." msgstr "" -#: js/DrumBlocks.js:191 -#: js/musicutils.js:752 -#: js/synthutils.js:47 -#.TRANS: white noise synthesizer -msgid "white noise" +#: js/blocks/IntervalsBlocks.js:938 +msgid "chord" msgstr "" -#: js/DrumBlocks.js:326 -msgid "Replace every instance of a pitch with a drum sound." +#: js/blocks/IntervalsBlocks.js:990 +msgid "The Ratio Interval block calculates an interval based on a ratio." msgstr "" -#: js/DrumBlocks.js:337 -#.TRANS: map a pitch to a drum sound -msgid "map pitch to drum" +#: js/blocks/IntervalsBlocks.js:995 +msgid "ratio interval" msgstr "" -#: js/DrumBlocks.js:404 -msgid "In the example above, a kick drum sound will be played instead of sol." +#: js/blocks/IntervalsBlocks.js:1064 +msgid "In the figure, we add la to sol." msgstr "" -#: js/DrumBlocks.js:416 -#.TRANS: set the current drum sound for playback -msgid "set drum" +#: js/blocks/IntervalsBlocks.js:1120 +#.TRANS: define a custom mode +msgid "define mode" msgstr "" -#: js/DrumBlocks.js:460 -msgid "sound effect" +#: js/blocks/IntervalsBlocks.js:1173 +msgid "movable Do" msgstr "" -#: js/DrumBlocks.js:498 -msgid "You can use multiple Drum blocks within a Note block." +#: js/blocks/IntervalsBlocks.js:1224 +#.TRANS: mode length is the number of notes in the mode, e.g., 7 for major and minor scales; 12 for chromatic scales +msgid "mode length" msgstr "" -#: js/RhythmBlocks.js:182 -#: js/RhythmBlocks.js:1086 -#: js/RhythmBlocks.js:1162 -msgid "Note value must be greater than 0." +#: js/blocks/IntervalsBlocks.js:1233 +msgid "The Mode length block is the number of notes in the current scale." msgstr "" -#: js/RhythmBlocks.js:215 -#: js/RhythmBlocks.js:278 -#: js/RhythmBlocks.js:350 -#.TRANS: swing is a rhythmic variation that emphasises the offbeat -msgid "swing" +#: js/blocks/IntervalsBlocks.js:1235 +msgid "Most Western scales have 7 notes." msgstr "" -#: js/RhythmBlocks.js:355 -#.TRANS: the amount to shift to the offbeat note -msgid "swing value" +#: js/blocks/IntervalsBlocks.js:1284 +#.TRANS: the mode in music is 'major', 'minor', etc. +msgid "current mode" msgstr "" -#: js/RhythmBlocks.js:419 -msgid "The Skip notes block will cause notes to be skipped." +#: js/blocks/IntervalsBlocks.js:1337 +#.TRANS: the key is a group of pitches with which a music composition is created +msgid "current key" msgstr "" -#: js/RhythmBlocks.js:427 -#.TRANS: substitute rests on notes being skipped -msgid "skip notes" +#: js/blocks/IntervalsBlocks.js:1389 +#: js/blocks/IntervalsBlocks.js:1434 +#.TRANS: set the key and mode, e.g. C Major +msgid "set key" msgstr "" -#: js/RhythmBlocks.js:489 -#.TRANS: speed up note duration by some factor, e.g. convert 1/4 to 1/8 notes by using a factor of 2 -msgid "multiply note value" +#: js/blocks/IntervalsBlocks.js:1443 +#: js/blocks/IntervalsBlocks.js:1449 +msgid "The Set key block is used to set the key and mode," msgstr "" -#: js/RhythmBlocks.js:542 -msgid "The Tie block works on pairs of notes, combining them into one note." +#: js/blocks/IntervalsBlocks.js:1449 +msgid "eg C Major" msgstr "" -#: js/RhythmBlocks.js:550 -#.TRANS: tie notes together into one longer note -msgid "tie" +#: js/blocks/MediaBlocks.js:35 +#.TRANS: right side of the screen +msgid "right (screen)" msgstr "" -#: js/RhythmBlocks.js:591 -#: js/RhythmBlocks.js:671 -#.TRANS: a dotted note is played for 1.5x its value, e.g., 1/8. --> 3/16 -msgid "dot" +#: js/blocks/MediaBlocks.js:45 +#: js/blocks/MediaBlocks.js:56 +msgid "The Right block returns the position of the right of the canvas." msgstr "" -#: js/RhythmBlocks.js:619 -#: js/RhythmActions.js:221 -msgid "An argument of -1 results in a note value of 0." +#: js/blocks/MediaBlocks.js:97 +#.TRANS: left side of the screen +msgid "left (screen)" msgstr "" -#: js/RhythmBlocks.js:661 -msgid "The Dot block extends the duration of a note by 50%." +#: js/blocks/MediaBlocks.js:107 +#: js/blocks/MediaBlocks.js:118 +msgid "The Left block returns the position of the left of the canvas." msgstr "" -#: js/RhythmBlocks.js:663 -msgid "Eg a dotted quarter note will play for 3/8 (1/4 + 1/8) of a beat." +#: js/blocks/MediaBlocks.js:158 +msgid "top (screen)" msgstr "" -#: js/RhythmBlocks.js:765 -#.TRANS: Japanese only: note value block for drum -msgid "note value drum" +#: js/blocks/MediaBlocks.js:168 +#: js/blocks/MediaBlocks.js:179 +msgid "The Top block returns the position of the top of the canvas." msgstr "" -#: js/RhythmBlocks.js:829 -msgid "392 hertz" +#: js/blocks/MediaBlocks.js:219 +msgid "bottom (screen)" msgstr "" -#: js/RhythmBlocks.js:1119 -msgid "The Note block is a container for one or more Pitch blocks." +#: js/blocks/MediaBlocks.js:229 +#: js/blocks/MediaBlocks.js:240 +msgid "The Bottom block returns the position of the bottom of the canvas." msgstr "" -#: js/RhythmBlocks.js:1121 -msgid "The Note block specifies the duration (note value) of its contents." +#: js/blocks/MediaBlocks.js:282 +msgid "width" msgstr "" -#: js/RhythmBlocks.js:1130 -msgid "value2" +#: js/blocks/MediaBlocks.js:291 +msgid "The Width block returns the width of the canvas." msgstr "" -#: js/RhythmBlocks.js:1200 -msgid "define frequency" +#: js/blocks/MediaBlocks.js:325 +msgid "height" msgstr "" -#: js/RhythmBlocks.js:1218 -#: js/temperament.js:650 -#: js/temperament.js:1421 -msgid "octave space" +#: js/blocks/MediaBlocks.js:334 +msgid "The Height block returns the height of the canvas." msgstr "" -#: js/NumberBlocks.js:28 -msgid "The Int block returns an integer." +#: js/blocks/MediaBlocks.js:369 +#.TRANS: stops playback of an audio recording +msgid "stop play" msgstr "" -#: js/NumberBlocks.js:34 -msgid "int" +#: js/blocks/MediaBlocks.js:404 +#.TRANS: Erases the images and text +msgid "erase media" msgstr "" -#: js/NumberBlocks.js:73 -msgid "The Mod block returns the remainder from a division." +#: js/blocks/MediaBlocks.js:409 +msgid "The Erase Media block erases text and images." msgstr "" -#: js/NumberBlocks.js:79 -msgid "mod" +#: js/blocks/MediaBlocks.js:439 +#.TRANS: play an audio recording +msgid "play back" msgstr "" -#: js/NumberBlocks.js:123 -msgid "The Power block calculates a power function." +#: js/blocks/MediaBlocks.js:487 +msgid "speak" msgstr "" -#: js/NumberBlocks.js:178 -msgid "The Sqrt block returns the square root." +#: js/blocks/MediaBlocks.js:495 +msgid "The Speak block outputs to the text-to-speech synthesizer" msgstr "" -#: js/NumberBlocks.js:184 -msgid "sqrt" +#: js/blocks/MediaBlocks.js:546 +msgid "camera" msgstr "" -#: js/NumberBlocks.js:230 -msgid "The Abs block returns the absolute value." +#: js/blocks/MediaBlocks.js:551 +msgid "The Camera block connects a webcam to the Show block." msgstr "" -#: js/NumberBlocks.js:236 -msgid "abs" +#: js/blocks/MediaBlocks.js:574 +msgid "video" msgstr "" -#: js/NumberBlocks.js:277 -msgid "The Distance block returns the distance between two points. For example, between the mouse and the center of the screen." +#: js/blocks/MediaBlocks.js:579 +msgid "The Video block selects video for use with the Show block." msgstr "" -#: js/NumberBlocks.js:283 -#: plugins/rodi.rtp:310 -msgid "distance" +#: js/blocks/MediaBlocks.js:607 +msgid "The Open file block opens a file for use with the Show block." msgstr "" -#: js/NumberBlocks.js:343 -msgid "The Divide block is used to divide." +#: js/blocks/MediaBlocks.js:645 +msgid "stop media" msgstr "" -#: js/NumberBlocks.js:411 -msgid "The Multiply block is used to multiply." +#: js/blocks/MediaBlocks.js:650 +msgid "The Stop media block stops audio or video playback." msgstr "" -#: js/NumberBlocks.js:554 -msgid "The Minus block is used to subtract." +#: js/blocks/MediaBlocks.js:679 +#: js/blocks/PitchBlocks.js:1577 +#: js/widgets/musickeyboard.js:1936 +#: js/widgets/phrasemaker.js:1037 +#.TRANS: a measure of frequency: one cycle per second +msgid "hertz" msgstr "" -#: js/NumberBlocks.js:647 -msgid "The Plus block is used to add." +#: js/blocks/MediaBlocks.js:692 +#: js/blocks/WidgetBlocks.js:182 +#: js/widgets/temperament.js:506 +#: js/widgets/temperament.js:546 +#: js/widgets/temperament.js:610 +#: js/widgets/temperament.js:618 +#: js/widgets/temperament.js:1505 +#: js/widgets/timbre.js:1842 +msgid "frequency" msgstr "" -#: js/NumberBlocks.js:773 -msgid "The One-of block returns one of two choices." +#: js/blocks/MediaBlocks.js:692 +msgid "duration (ms)" msgstr "" -#: js/NumberBlocks.js:780 -#: js/PitchBlocks.js:616 -msgid "one of" +#: js/blocks/MediaBlocks.js:728 +#.TRANS: translate a note into hertz, e.g., A4 -> 440HZ +msgid "note to frequency" msgstr "" -#: js/NumberBlocks.js:782 -msgid "this" +#: js/blocks/MediaBlocks.js:736 +msgid "The To frequency block converts a pitch name and octave to Hertz." msgstr "" -#: js/NumberBlocks.js:782 -msgid "that" +#: js/blocks/MediaBlocks.js:746 +#: js/blocks/PitchBlocks.js:656 +#: js/blocks/PitchBlocks.js:934 +#: js/blocks/PitchBlocks.js:1866 +#.TRANS: name2 is name as in name of pitch (JAPANESE ONLY) +msgid "name2" msgstr "" -#: js/NumberBlocks.js:837 -msgid "The Random block returns a random number." +#: js/blocks/MediaBlocks.js:812 +msgid "The Avatar block is used to change the appearance of the mouse." msgstr "" -#: js/NumberBlocks.js:844 -msgid "random" +#: js/blocks/MediaBlocks.js:819 +msgid "The Avatar block is used to change the appearance of the turtle." msgstr "" -#: js/NumberBlocks.js:846 -msgid "min" +#: js/blocks/MediaBlocks.js:831 +#: js/blocks/MediaBlocks.js:891 +#.TRANS: a media object +msgid "size" msgstr "" -#: js/NumberBlocks.js:846 -msgid "max" +#: js/blocks/MediaBlocks.js:831 +msgid "image" msgstr "" -#: js/NumberBlocks.js:910 -msgid "The Number block holds a number." +#: js/blocks/MediaBlocks.js:880 +msgid "The Show block is used to display text or images on the canvas." msgstr "" -#: js/BoxesBlocks.js:53 -#: js/BoxesBlocks.js:59 -msgid "The Add-to block is used to add to the value stored in a box." +#: js/blocks/MediaBlocks.js:888 +#.TRANS: show1 is show as in display an image or text on the screen. +msgid "show1" msgstr "" -#: js/BoxesBlocks.js:61 -msgid "It can also be used with other blocks such as Color and Pen size." +#: js/blocks/MediaBlocks.js:891 +msgid "obj" msgstr "" -#: js/BoxesBlocks.js:73 -msgid "add" +#: js/blocks/MediaBlocks.js:938 +msgid "The Media block is used to import an image." msgstr "" -#: js/BoxesBlocks.js:75 -#: js/temperament.js:716 -msgid "to" +#: js/blocks/MediaBlocks.js:973 +msgid "The Text block holds a text string." msgstr "" -#: js/BoxesBlocks.js:75 -#: js/BoxesBlocks.js:595 -#: js/HeapBlocks.js:544 -msgid "value1" +#: js/blocks/MeterBlocks.js:34 +#.TRANS: musical meter (time signature), e.g., 4:4 +msgid "current meter" msgstr "" -#: js/BoxesBlocks.js:118 -msgid "Block does not support incrementing." +#: js/blocks/MeterBlocks.js:85 +#.TRANS: number of beats per minute +msgid "beat factor" msgstr "" -#: js/BoxesBlocks.js:152 -msgid "The Add-1-to block adds one to the value stored in a box." +#: js/blocks/MeterBlocks.js:161 +msgid "The Beats per minute block returns the current beats per minute." msgstr "" -#: js/BoxesBlocks.js:163 -msgid "add 1 to" +#: js/blocks/MeterBlocks.js:169 +#: js/widgets/status.js:152 +#.TRANS: number of beats played per minute +msgid "beats per minute2" msgstr "" -#: js/BoxesBlocks.js:211 -msgid "The Subtract-1-from block subtracts one from the value stored in a box." +#: js/blocks/MeterBlocks.js:169 +#: js/blocks/MeterBlocks.js:1056 +#: js/blocks/MeterBlocks.js:1133 +#: js/blocks/MeterBlocks.js:1211 +#.TRANS: sets tempo by defining a beat and beats per minute +msgid "beats per minute" msgstr "" -#: js/BoxesBlocks.js:222 -msgid "subtract 1 from" +#: js/blocks/MeterBlocks.js:233 +#.TRANS: count of current musical measure in meter +msgid "measure count" msgstr "" -#: js/BoxesBlocks.js:270 -#: js/BoxesBlocks.js:387 -msgid "The Box block returns the value stored in a box." +#: js/blocks/MeterBlocks.js:241 +msgid "The Measure count block returns the current measure." msgstr "" -#: js/BoxesBlocks.js:500 -#: js/BoxesBlocks.js:576 -msgid "The Store in block will store a value in a box." +#: js/blocks/MeterBlocks.js:290 +#.TRANS: count of current beat in the meter +msgid "beat count" msgstr "" -#: js/BoxesBlocks.js:652 -msgid "The Box2 block returns the value stored in Box2." +#: js/blocks/MeterBlocks.js:300 +#: js/blocks/MeterBlocks.js:311 +#: js/blocks/MeterBlocks.js:565 +#: js/blocks/MeterBlocks.js:576 +msgid "The Beat count block is the number of the current beat," msgstr "" -#: js/BoxesBlocks.js:703 -msgid "The Store in Box2 block is used to store a value in Box2." +#: js/blocks/MeterBlocks.js:313 +#: js/blocks/MeterBlocks.js:578 +msgid "eg 1, 2, 3, or 4." msgstr "" -#: js/BoxesBlocks.js:715 -msgid "store in box2" +#: js/blocks/MeterBlocks.js:368 +#.TRANS: count the number of notes +msgid "sum note values" msgstr "" -#: js/BoxesBlocks.js:761 -msgid "The Box1 block returns the value stored in Box1." +#: js/blocks/MeterBlocks.js:376 +#: js/blocks/MeterBlocks.js:440 +msgid "The Note counter block can be used to count the number of contained notes." msgstr "" -#: js/BoxesBlocks.js:812 -msgid "The Store in Box1 block is used to store a value in Box1." +#: js/blocks/MeterBlocks.js:432 +#.TRANS: count the number of notes +msgid "note counter" msgstr "" -#: js/BoxesBlocks.js:826 -msgid "store in box1" +#: js/blocks/MeterBlocks.js:496 +#.TRANS: number of whole notes that have been played +msgid "whole notes played" msgstr "" -#: js/HeapBlocks.js:49 -msgid "The Heap block returns the heap." +#: js/blocks/MeterBlocks.js:505 +msgid "The Whole notes played block returns the total number of whole notes played." msgstr "" -#: js/HeapBlocks.js:133 -msgid "show heap" +#: js/blocks/MeterBlocks.js:555 +#: js/turtleactions/DictActions.js:83 +#.TRANS: number of notes that have been played +msgid "notes played" msgstr "" -#: js/HeapBlocks.js:181 -msgid "The Heap-length block returns the length of the heap." +#: js/blocks/MeterBlocks.js:653 +msgid "The No clock block decouples the notes from the master clock." msgstr "" -#: js/HeapBlocks.js:195 -msgid "heap length" +#: js/blocks/MeterBlocks.js:661 +#.TRANS: don't lock notes to master clock +msgid "no clock" msgstr "" -#: js/HeapBlocks.js:254 -msgid "The Heap-empty? block returns true if the heap is empty." +#: js/blocks/MeterBlocks.js:700 +msgid "on weak beat do" msgstr "" -#: js/HeapBlocks.js:268 -#.TRANS: Is the heap empty? -msgid "heap empty?" +#: js/blocks/MeterBlocks.js:705 +msgid "The On-weak-beat block lets you specify actions to take on weak (off) beats." msgstr "" -#: js/HeapBlocks.js:317 -msgid "The Empty-heap block empties the heap." +#: js/blocks/MeterBlocks.js:750 +msgid "on strong beat" msgstr "" -#: js/HeapBlocks.js:327 -#: js/HeapBlocks.js:647 -#.TRANS: empty the heap -msgid "empty heap" +#: js/blocks/MeterBlocks.js:758 +msgid "The On-strong-beat block lets you specify actions to take on specified beats." msgstr "" -#: js/HeapBlocks.js:371 -msgid "The Reverse-heap block reverses the order of the heap." +#: js/blocks/MeterBlocks.js:769 +msgid "beat" msgstr "" -#: js/HeapBlocks.js:384 -#.TRANS: reverse the order of the heap -msgid "reverse heap" +#: js/blocks/MeterBlocks.js:813 +msgid "on every beat do" msgstr "" -#: js/HeapBlocks.js:428 -msgid "The Index-heap block returns a value in the heap at a specified location." +#: js/blocks/MeterBlocks.js:821 +msgid "The On-every-beat block lets you specify actions to take on every beat." msgstr "" -#: js/HeapBlocks.js:443 -#.TRANS: retrieve a value from the heap at index position in the heap -msgid "index heap" +#: js/blocks/MeterBlocks.js:874 +msgid "on every note do" msgstr "" -#: js/HeapBlocks.js:523 -msgid "The Set-heap entry block sets a value in he heap at the specified location." +#: js/blocks/MeterBlocks.js:882 +msgid "The On-every-note block lets you specify actions to take on every note." msgstr "" -#: js/HeapBlocks.js:619 -msgid "The Pop block removes the value at the top of the heap." +#: js/blocks/MeterBlocks.js:928 +#: js/blocks/MeterBlocks.js:999 +#.TRANS: sets tempo by defining a beat and beats per minute +msgid "master beats per minute" msgstr "" -#: js/HeapBlocks.js:633 -#.TRANS: pop a value off the top of the heap -msgid "pop" +#: js/blocks/MeterBlocks.js:952 +#: js/blocks/MeterBlocks.js:1078 +#: js/blocks/MeterBlocks.js:1135 +msgid "bpm" msgstr "" -#: js/HeapBlocks.js:680 -msgid "The Push block adds a value to the top of the heap." +#: js/blocks/MeterBlocks.js:952 +#: js/blocks/MeterBlocks.js:1078 +#: js/blocks/MeterBlocks.js:1135 +msgid "beat value" msgstr "" -#: js/HeapBlocks.js:696 -#.TRANS: push a value onto the top of the heap -msgid "push" +#: js/blocks/MeterBlocks.js:1024 +#: js/blocks/MeterBlocks.js:1167 +#: js/blocks/MeterBlocks.js:1241 +msgid "Beats per minute must be > 30." msgstr "" -#: js/FlowBlocks.js:41 -msgid "The Backward block runs code in reverse order (Musical retrograde)." +#: js/blocks/MeterBlocks.js:1027 +#: js/blocks/MeterBlocks.js:1170 +#: js/blocks/MeterBlocks.js:1244 +msgid "Maximum beats per minute is 1000." msgstr "" -#: js/FlowBlocks.js:48 -msgid "backward" +#: js/blocks/MeterBlocks.js:1068 +msgid "The Beats per minute block sets the number of 1/4 notes per minute." msgstr "" -#: js/FlowBlocks.js:124 -msgid "The Duplicate block will run each block multiple times." +#: js/blocks/MeterBlocks.js:1279 +#.TRANS: anacrusis +msgid "pickup" msgstr "" -#: js/FlowBlocks.js:136 -msgid "duplicate" +#: js/blocks/MeterBlocks.js:1367 +msgid "number of beats" msgstr "" -#: js/FlowBlocks.js:334 -msgid "The Default block is used inside of a Switch to define the default action." +#: js/blocks/NumberBlocks.js:28 +msgid "The Int block returns an integer." msgstr "" -#: js/FlowBlocks.js:342 -msgid "default" +#: js/blocks/NumberBlocks.js:34 +msgid "int" msgstr "" -#: js/FlowBlocks.js:361 -#: js/FlowBlocks.js:418 -msgid "The Case Block must be used inside of a Switch Block." +#: js/blocks/NumberBlocks.js:73 +msgid "The Mod block returns the remainder from a division." msgstr "" -#: js/FlowBlocks.js:389 -msgid "The Case block is used inside of a Switch to define matches." +#: js/blocks/NumberBlocks.js:79 +msgid "mod" msgstr "" -#: js/FlowBlocks.js:397 -msgid "case" +#: js/blocks/NumberBlocks.js:141 +msgid "The Power block calculates a power function." msgstr "" -#: js/FlowBlocks.js:446 -msgid "The Switch block will run the code in the matching Case." +#: js/blocks/NumberBlocks.js:196 +msgid "The Sqrt block returns the square root." msgstr "" -#: js/FlowBlocks.js:454 -msgid "switch" +#: js/blocks/NumberBlocks.js:202 +msgid "sqrt" msgstr "" -#: js/FlowBlocks.js:595 -msgid "The Stop block will stop a loop" +#: js/blocks/NumberBlocks.js:248 +msgid "The Abs block returns the absolute value." msgstr "" -#: js/FlowBlocks.js:597 -msgid "Forever, Repeat, While, or Until." +#: js/blocks/NumberBlocks.js:254 +msgid "abs" msgstr "" -#: js/FlowBlocks.js:604 -#: js/phrasemaker.js:3799 -#: js/musickeyboard.js:629 -#: js/musickeyboard.js:631 -#: js/timbre.js:417 -#: js/timbre.js:419 -#: plugins/rodi.rtp:29 -#: plugins/rodi.rtp:73 -#: plugins/rodi.rtp:413 -msgid "stop" +#: js/blocks/NumberBlocks.js:295 +msgid "The Distance block returns the distance between two points. For example, between the mouse and the center of the screen." msgstr "" -#: js/FlowBlocks.js:653 -msgid "The Waitfor block will wait until the condition is true." +#: js/blocks/NumberBlocks.js:301 +#: plugins/rodi.rtp:310 +msgid "distance" msgstr "" -#: js/FlowBlocks.js:661 -msgid "wait for" +#: js/blocks/NumberBlocks.js:361 +msgid "The Divide block is used to divide." msgstr "" -#: js/FlowBlocks.js:732 -msgid "The Until block will repeat until the condition is true." +#: js/blocks/NumberBlocks.js:441 +msgid "The Multiply block is used to multiply." msgstr "" -#: js/FlowBlocks.js:740 -msgid "until" +#: js/blocks/NumberBlocks.js:612 +msgid "The Minus block is used to subtract." msgstr "" -#: js/FlowBlocks.js:742 -#: js/FlowBlocks.js:822 -msgid "do2" +#: js/blocks/NumberBlocks.js:723 +msgid "The Plus block is used to add." msgstr "" -#: js/FlowBlocks.js:812 -msgid "The While block will repeat while the condition is true." +#: js/blocks/NumberBlocks.js:849 +msgid "The One-of block returns one of two choices." msgstr "" -#: js/FlowBlocks.js:820 -msgid "while" +#: js/blocks/NumberBlocks.js:856 +#: js/blocks/PitchBlocks.js:616 +msgid "one of" msgstr "" -#: js/FlowBlocks.js:903 -#: js/FlowBlocks.js:968 -#: js/FlowBlocks.js:979 -msgid "In this example if the mouse button is pressed a snare drum will play." +#: js/blocks/NumberBlocks.js:858 +msgid "this" msgstr "" -#: js/FlowBlocks.js:925 -#: js/FlowBlocks.js:988 -msgid "if" +#: js/blocks/NumberBlocks.js:858 +msgid "that" msgstr "" -#: js/FlowBlocks.js:927 -#: js/FlowBlocks.js:990 -msgid "then" +#: js/blocks/NumberBlocks.js:913 +msgid "The Random block returns a random number." msgstr "" -#: js/FlowBlocks.js:927 -msgid "else" +#: js/blocks/NumberBlocks.js:920 +msgid "random" msgstr "" -#: js/FlowBlocks.js:1025 -msgid "The Forever block will repeat the contained blocks forever." +#: js/blocks/NumberBlocks.js:922 +msgid "min" msgstr "" -#: js/FlowBlocks.js:1037 -msgid "forever" +#: js/blocks/NumberBlocks.js:922 +msgid "max" msgstr "" -#: js/FlowBlocks.js:1073 -msgid "The Repeat block will repeat the contained blocks." +#: js/blocks/NumberBlocks.js:986 +msgid "The Number block holds a number." msgstr "" -#: js/FlowBlocks.js:1075 -msgid "In this example the note will be played 4 times." +#: js/blocks/OrnamentBlocks.js:32 +msgid "staccato factor" msgstr "" -#: js/FlowBlocks.js:1083 -msgid "repeat" +#: js/blocks/OrnamentBlocks.js:108 +msgid "slur factor" msgstr "" -#: js/FlowBlocks.js:1123 -msgid "duplicate factor" +#: js/blocks/OrnamentBlocks.js:217 +#: js/blocks/OrnamentBlocks.js:309 +#.TRANS: the neighbor refers to a neighboring note, e.g., D is a neighbor of C +msgid "neighbor" msgstr "" -#: js/PitchBlocks.js:39 -#: js/musicutils.js:722 -#: js/musicutils.js:1117 -#: js/synthutils.js:112 -#.TRANS: square wave -msgid "square" +#: js/blocks/OrnamentBlocks.js:293 +msgid "The Neighbor block rapidly switches between neighboring pitches." msgstr "" -#: js/PitchBlocks.js:62 -#: js/ToneBlocks.js:39 -#: js/musicutils.js:723 -#: js/musicutils.js:1118 -#: js/synthutils.js:116 -#.TRANS: triangle wave -msgid "triangle" +#: js/blocks/OrnamentBlocks.js:364 +msgid "glide" msgstr "" -#: js/PitchBlocks.js:85 -#: js/musicutils.js:721 -#: js/musicutils.js:1116 -#: js/synthutils.js:110 -#.TRANS: sine wave -msgid "sine" +#: js/blocks/OrnamentBlocks.js:479 +#: js/blocks/OrnamentBlocks.js:643 +msgid "slur" msgstr "" -#: js/PitchBlocks.js:108 -#: js/musicutils.js:724 -#: js/musicutils.js:1119 -#: js/synthutils.js:114 -#.TRANS: sawtooth wave -msgid "sawtooth" +#: js/blocks/OrnamentBlocks.js:558 +#: js/blocks/OrnamentBlocks.js:710 +#.TRANS: play each note sharply detached from the others +msgid "staccato" msgstr "" -#: js/PitchBlocks.js:141 -#.TRANS: musical transposition (adjustment of pitch up or down) -msgid "transposition" +#: js/blocks/RhythmBlocks.js:182 +#: js/blocks/RhythmBlocks.js:1086 +#: js/blocks/RhythmBlocks.js:1162 +msgid "Note value must be greater than 0." msgstr "" -#: js/PitchBlocks.js:168 -#.TRANS: step down one note in current musical scale -msgid "scalar step down" +#: js/blocks/RhythmBlocks.js:215 +#: js/blocks/RhythmBlocks.js:278 +#: js/blocks/RhythmBlocks.js:350 +#.TRANS: swing is a rhythmic variation that emphasises the offbeat +msgid "swing" msgstr "" -#: js/PitchBlocks.js:172 -msgid "The Scalar step down block returns the number of semi-tones down to the previous note in the current key and mode." +#: js/blocks/RhythmBlocks.js:355 +#.TRANS: the amount to shift to the offbeat note +msgid "swing value" msgstr "" -#: js/PitchBlocks.js:190 -#.TRANS: step up one note in current musical scale -msgid "scalar step up" +#: js/blocks/RhythmBlocks.js:419 +msgid "The Skip notes block will cause notes to be skipped." msgstr "" -#: js/PitchBlocks.js:194 -msgid "The Scalar step up block returns the number of semi-tones up to the next note in the current key and mode." +#: js/blocks/RhythmBlocks.js:427 +#.TRANS: substitute rests on notes being skipped +msgid "skip notes" msgstr "" -#: js/PitchBlocks.js:212 -#.TRANS: the change measured in half-steps between the current pitch and the previous pitch -msgid "change in pitch" +#: js/blocks/RhythmBlocks.js:489 +#.TRANS: speed up note duration by some factor, e.g. convert 1/4 to 1/8 notes by using a factor of 2 +msgid "multiply note value" msgstr "" -#: js/PitchBlocks.js:216 -msgid "The Change in pitch block is the difference (in half steps) between the current pitch being played and the previous pitch played." +#: js/blocks/RhythmBlocks.js:542 +msgid "The Tie block works on pairs of notes, combining them into one note." msgstr "" -#: js/PitchBlocks.js:243 -#.TRANS: the change measured in scale-steps between the current pitch and the previous pitch -msgid "scalar change in pitch" +#: js/blocks/RhythmBlocks.js:550 +#.TRANS: tie notes together into one longer note +msgid "tie" msgstr "" -#: js/PitchBlocks.js:250 -#: js/PitchBlocks.js:432 -#: js/PitchBlocks.js:1629 -#: js/DictActions.js:89 -#: js/temperament.js:477 -#: js/temperament.js:481 -#: js/temperament.js:714 -#.TRANS: convert current note to piano key (1-88) -#.TRANS: a mapping of pitch to the 88 piano keys -msgid "pitch number" +#: js/blocks/RhythmBlocks.js:591 +#: js/blocks/RhythmBlocks.js:671 +#.TRANS: a dotted note is played for 1.5x its value, e.g., 1/8. --> 3/16 +msgid "dot" msgstr "" -#: js/PitchBlocks.js:256 -msgid "The Pitch number block is the value of the pitch of the note currently being played." +#: js/blocks/RhythmBlocks.js:619 +#: js/turtleactions/RhythmActions.js:221 +msgid "An argument of -1 results in a note value of 0." msgstr "" -#: js/PitchBlocks.js:329 -#: js/PitchBlocks.js:433 -#.TRANS: the current pitch expressed in Hertz -msgid "pitch in hertz" +#: js/blocks/RhythmBlocks.js:661 +msgid "The Dot block extends the duration of a note by 50%." msgstr "" -#: js/PitchBlocks.js:334 -msgid "The Pitch in Hertz block is the value in Hertz of the pitch of the note currently being played." +#: js/blocks/RhythmBlocks.js:663 +msgid "Eg a dotted quarter note will play for 3/8 (1/4 + 1/8) of a beat." msgstr "" -#: js/PitchBlocks.js:367 -#: js/DictActions.js:87 -msgid "current pitch" +#: js/blocks/RhythmBlocks.js:765 +#.TRANS: Japanese only: note value block for drum +msgid "note value drum" msgstr "" -#: js/PitchBlocks.js:373 -msgid "The Current Pitch block is used with the Pitch Converter block. In the example above, current pitch, sol 4, is displayed as 392 hertz." +#: js/blocks/RhythmBlocks.js:829 +msgid "392 hertz" msgstr "" -#: js/PitchBlocks.js:410 -msgid "This block converts the pitch value of the last note played into different formats such as hertz, letter name, pitch number, et al." +#: js/blocks/RhythmBlocks.js:1119 +msgid "The Note block is a container for one or more Pitch blocks." msgstr "" -#: js/PitchBlocks.js:434 -msgid "alphabet" +#: js/blocks/RhythmBlocks.js:1121 +msgid "The Note block specifies the duration (note value) of its contents." msgstr "" -#: js/PitchBlocks.js:436 -#.TRANS: Translate as "alphabet class" -msgid "letter class" +#: js/blocks/RhythmBlocks.js:1128 +#: js/blocks/PitchBlocks.js:974 +#: js/blocks/PitchBlocks.js:1007 +#: js/blocks/ProgramBlocks.js:1186 +#: js/blocks/ProgramBlocks.js:1227 +#: js/widgets/status.js:190 +#: js/widgets/temperament.js:464 +#: js/widgets/temperament.js:486 +#: js/widgets/temperament.js:496 +#: js/widgets/temperament.js:617 +#: plugins/rodi.rtp:192 +#.TRANS: a musical note consisting of pitch and duration +msgid "note" msgstr "" -#: js/PitchBlocks.js:437 -msgid "solfege class" +#: js/blocks/RhythmBlocks.js:1130 +msgid "value2" msgstr "" -#: js/PitchBlocks.js:438 -msgid "staff y" +#: js/blocks/RhythmBlocks.js:1200 +msgid "define frequency" msgstr "" -#: js/PitchBlocks.js:439 -msgid "solfege syllable" +#: js/blocks/RhythmBlocks.js:1218 +#: js/widgets/temperament.js:787 +#: js/widgets/temperament.js:1587 +msgid "octave space" msgstr "" -#: js/PitchBlocks.js:440 -msgid "pitch class" +#: js/blocks/SensorsBlocks.js:36 +msgid "The Input block prompts for keyboard input." msgstr "" -#: js/PitchBlocks.js:441 -msgid "scalar class" +#: js/blocks/SensorsBlocks.js:46 +msgid "input" msgstr "" -#: js/PitchBlocks.js:443 -msgid "nth degree" +#: js/blocks/SensorsBlocks.js:64 +msgid "Input a value" msgstr "" -#: js/PitchBlocks.js:444 -msgid "pitch to shade" +#: js/blocks/SensorsBlocks.js:126 +msgid "input value" msgstr "" -#: js/PitchBlocks.js:445 -msgid "pitch to color" +#: js/blocks/SensorsBlocks.js:131 +msgid "The Input-value block stores the input." msgstr "" -#: js/PitchBlocks.js:629 -#: js/musickeyboard.js:565 -#.TRANS: MIDI is a technical standard for electronic music -msgid "MIDI" +#: js/blocks/SensorsBlocks.js:238 +msgid "loudness" msgstr "" -#: js/PitchBlocks.js:642 -#.TRANS: set an offset associated with the numeric piano keyboard mapping -msgid "set pitch number offset" +#: js/blocks/SensorsBlocks.js:245 +msgid "The Loudness block returns the volume detected by the microphone." msgstr "" -#: js/PitchBlocks.js:645 -msgid "The Set pitch number offset block is used to set the offset for mapping pitch numbers to pitch and octave." +#: js/blocks/SensorsBlocks.js:300 +msgid "click" msgstr "" -#: js/PitchBlocks.js:679 -#.TRANS: convert piano key number (1-88) to pitch -msgid "number to pitch" +#: js/blocks/SensorsBlocks.js:306 +msgid "The Click block triggers an event if a mouse has been clicked." msgstr "" -#: js/PitchBlocks.js:682 -msgid "The Number to pitch block will convert a pitch number to a pich name." +#: js/blocks/SensorsBlocks.js:313 +msgid "The Click block triggers an event if a turtle has been clicked." msgstr "" -#: js/PitchBlocks.js:715 -#.TRANS: convert piano key number (1-88) to octave -msgid "number to octave" +#: js/blocks/SensorsBlocks.js:342 +msgid "cursor over" msgstr "" -#: js/PitchBlocks.js:717 -msgid "The Number to octave block will convert a pitch number to an octave." +#: js/blocks/SensorsBlocks.js:387 +msgid "cursor out" msgstr "" -#: js/PitchBlocks.js:726 -msgid "y to pitch" +#: js/blocks/SensorsBlocks.js:433 +msgid "cursor button down" msgstr "" -#: js/PitchBlocks.js:729 -msgid "Y to pitch block will convert a staff y position to corresponding pitch notation." +#: js/blocks/SensorsBlocks.js:477 +msgid "cursor button up" msgstr "" -#: js/PitchBlocks.js:841 -msgid "accidental selector" +#: js/blocks/SensorsBlocks.js:521 +#: js/blocks/PenBlocks.js:48 +#: plugins/rodi.rtp:219 +msgid "blue" msgstr "" -#: js/PitchBlocks.js:844 -msgid "The Accidental selector block is used to choose between double-sharp, sharp, natural, flat, and double-flat." +#: js/blocks/SensorsBlocks.js:577 +#: js/blocks/PenBlocks.js:64 +#: plugins/rodi.rtp:218 +msgid "green" msgstr "" -#: js/PitchBlocks.js:858 -msgid "Pitch can be specified in terms of ni dha pa ma ga re sa." +#: js/blocks/SensorsBlocks.js:633 +#: js/blocks/PenBlocks.js:112 +#: plugins/rodi.rtp:217 +msgid "red" msgstr "" -#: js/PitchBlocks.js:872 -msgid "Pitch can be specified in terms of C D E F G A B." +#: js/blocks/SensorsBlocks.js:638 +msgid "The Get red block returns the red component of the pixel under the mouse." msgstr "" -#: js/PitchBlocks.js:883 -msgid "solfege" +#: js/blocks/SensorsBlocks.js:644 +msgid "The Get red block returns the red component of the pixel under the turtle." msgstr "" -#: js/PitchBlocks.js:886 -msgid "Pitch can be specified in terms of do re mi fa sol la ti." +#: js/blocks/SensorsBlocks.js:685 +#: plugins/rodi.rtp:216 +msgid "pixel color" msgstr "" -#: js/PitchBlocks.js:920 -msgid "The Invert block rotates any contained notes around a target note." +#: js/blocks/SensorsBlocks.js:690 +msgid "The Get pixel block returns the color of the pixel under the mouse." msgstr "" -#: js/PitchBlocks.js:927 -#.TRANS: pitch inversion rotates a pitch around another pitch -msgid "invert" +#: js/blocks/SensorsBlocks.js:696 +msgid "The Get pixel block returns the color of the pixel under the turtle." msgstr "" -#: js/PitchBlocks.js:929 -#: js/PitchBlocks.js:935 -#: js/PitchActions.js:727 -#: js/musicutils.js:726 -#: js/musicutils.js:902 -#.TRANS: invert based on even or odd number or musical scale -#.TRANS: even numbers -msgid "even" +#: js/blocks/SensorsBlocks.js:758 +msgid "time" msgstr "" -#: js/PitchBlocks.js:935 -#: js/PitchActions.js:729 -#: js/musicutils.js:728 -#: js/musicutils.js:903 -#.TRANS: odd numbers -msgid "odd" +#: js/blocks/SensorsBlocks.js:804 +msgid "cursor y" msgstr "" -#: js/PitchBlocks.js:935 -#: js/PitchActions.js:731 -#: js/musicutils.js:729 -#: js/musicutils.js:904 -msgid "scalar" +#: js/blocks/SensorsBlocks.js:809 +msgid "The Cursor Y block returns the vertical position of the mouse." msgstr "" -#: js/PitchBlocks.js:966 -#.TRANS: pitch inversion rotates a pitch around another pitch (odd number) -msgid "invert (odd)" +#: js/blocks/SensorsBlocks.js:845 +msgid "cursor x" msgstr "" -#: js/PitchBlocks.js:999 -#.TRANS: pitch inversion rotates a pitch around another pitch (even number) -msgid "invert (even)" +#: js/blocks/SensorsBlocks.js:850 +msgid "The Cursor X block returns the horizontal position of the mouse." msgstr "" -#: js/PitchBlocks.js:1020 -#.TRANS: register is the octave of the current pitch -msgid "register" +#: js/blocks/SensorsBlocks.js:886 +msgid "mouse button" msgstr "" -#: js/PitchBlocks.js:1024 -msgid "The Register block provides an easy way to modify the register (octave) of the notes that follow it." +#: js/blocks/SensorsBlocks.js:888 +msgid "The Mouse-button block returns True if the mouse button is pressed." msgstr "" -#: js/PitchBlocks.js:1074 -msgid "The Semi-tone transposition block will shift the pitches contained inside Note blocks up (or down) by half steps." +#: js/blocks/SensorsBlocks.js:934 +msgid "to ASCII" msgstr "" -#: js/PitchBlocks.js:1076 -msgid "In the example shown above, sol is shifted up to sol#." +#: js/blocks/SensorsBlocks.js:938 +msgid "The To ASCII block converts numbers to letters." msgstr "" -#: js/PitchBlocks.js:1082 -#.TRANS: adjust the amount of shift (up or down) of a pitch -msgid "semi-tone transpose" +#: js/blocks/SensorsBlocks.js:1005 +msgid "The Keyboard block returns computer keyboard input." msgstr "" -#: js/PitchBlocks.js:1115 -msgid "The Transpose by Ratio block will shift the pitches contained inside Note blocks up (or down) by a ratio" +#: js/blocks/RhythmBlockPaletteBlocks.js:50 +#: js/blocks/RhythmBlockPaletteBlocks.js:233 +#.TRANS: rhythm block +#.TRANS: translate "rhythm1" as rhythm +msgid "rhythm1" msgstr "" -#: js/PitchBlocks.js:1121 -#.TRANS: adjust the amount of shift (up or down) of a pitch -msgid "transpose by ratio" +#: js/blocks/RhythmBlockPaletteBlocks.js:70 +#: js/blocks/RhythmBlockPaletteBlocks.js:252 +#: js/blocks/RhythmBlockPaletteBlocks.js:485 +#: js/blocks/RhythmBlockPaletteBlocks.js:554 +#: js/blocks/RhythmBlockPaletteBlocks.js:875 +msgid "number of notes" msgstr "" -#: js/PitchBlocks.js:1204 -#.TRANS: down sixth means the note is five scale degrees below current note -msgid "down sixth" +#: js/blocks/RhythmBlockPaletteBlocks.js:126 +msgid "polyphonic rhythm" msgstr "" -#: js/PitchBlocks.js:1223 -#.TRANS: down third means the note is two scale degrees below current note -msgid "down third" +#: js/blocks/RhythmBlockPaletteBlocks.js:219 +msgid "The Rhythm block is used to generate rhythm patterns." msgstr "" -#: js/PitchBlocks.js:1242 -#.TRANS: seventh means the note is the six scale degrees above current note -msgid "seventh" +#: js/blocks/RhythmBlockPaletteBlocks.js:280 +msgid "1/64 note" msgstr "" -#: js/PitchBlocks.js:1261 -#.TRANS: sixth means the note is the five scale degrees above current note -msgid "sixth" +#: js/blocks/RhythmBlockPaletteBlocks.js:304 +msgid "1/32 note" msgstr "" -#: js/PitchBlocks.js:1280 -#.TRANS: fifth means the note is the four scale degrees above current note -msgid "fifth" +#: js/blocks/RhythmBlockPaletteBlocks.js:332 +msgid "1/16 note" msgstr "" -#: js/PitchBlocks.js:1300 -#.TRANS: fourth means the note is three scale degrees above current note -msgid "fourth" +#: js/blocks/RhythmBlockPaletteBlocks.js:360 +msgid "eighth note" msgstr "" -#: js/PitchBlocks.js:1319 -#.TRANS: third means the note is two scale degrees above current note -msgid "third" +#: js/blocks/RhythmBlockPaletteBlocks.js:388 +msgid "quarter note" msgstr "" -#: js/PitchBlocks.js:1338 -#.TRANS: second means the note is one scale degree above current note -msgid "second" +#: js/blocks/RhythmBlockPaletteBlocks.js:416 +msgid "half note" msgstr "" -#: js/PitchBlocks.js:1379 -msgid "The Scalar transposition block will shift the pitches contained inside Note blocks up (or down) the scale." +#: js/blocks/RhythmBlockPaletteBlocks.js:444 +msgid "whole note" msgstr "" -#: js/PitchBlocks.js:1381 -msgid "In the example shown above, sol is shifted up to la." +#: js/blocks/RhythmBlockPaletteBlocks.js:482 +#: js/blocks/RhythmBlockPaletteBlocks.js:551 +#: js/blocks/RhythmBlockPaletteBlocks.js:602 +#.TRANS: A tuplet is a note value divided into irregular time values. +msgid "tuplet" msgstr "" -#: js/PitchBlocks.js:1388 -#.TRANS: adjust the amount of shift (up or down) of a pitch by musical scale (scalar) steps -msgid "scalar transpose" +#: js/blocks/RhythmBlockPaletteBlocks.js:768 +msgid "septuplet" msgstr "" -#: js/PitchBlocks.js:1423 -msgid "The Accidental block is used to create sharps and flats" +#: js/blocks/RhythmBlockPaletteBlocks.js:796 +msgid "quintuplet" msgstr "" -#: js/PitchBlocks.js:1430 -#.TRANS: An accidental is a modification to a pitch, e.g., sharp or flat. -msgid "accidental override" +#: js/blocks/RhythmBlockPaletteBlocks.js:824 +msgid "triplet" msgstr "" -#: js/PitchBlocks.js:1543 -msgid "The Hertz block (in combination with a Number block) will play a sound at the specified frequency." +#: js/blocks/RhythmBlockPaletteBlocks.js:851 +msgid "simple tuplet" msgstr "" -#: js/PitchBlocks.js:1633 -msgid "The Pitch Number block will play a pitch associated by its number, e.g. 0 for C and 7 for G." +#: js/blocks/RhythmBlockPaletteBlocks.js:861 +msgid "Tuplets are a collection of notes that get scaled to a specific duration." msgstr "" -#: js/PitchBlocks.js:1665 -#: js/PitchBlocks.js:1707 -#.TRANS: a numeric mapping of the notes in an octave based on the musical mode -#.TRANS: a numeric mapping of the notes in an octave based on the musical mode -msgid "nth modal pitch" +#: js/blocks/DrumBlocks.js:59 +msgid "The Noise name block is used to select a noise synthesizer." msgstr "" -#: js/PitchBlocks.js:1668 -msgid "n^th Modal Pitch takes the pattern of pitches in semitones for a mode and makes each point a degree of the mode," +#: js/blocks/DrumBlocks.js:102 +msgid "The Drum name block is used to select a drum." msgstr "" -#: js/PitchBlocks.js:1670 -msgid "starting from 1 and regardless of tonal framework (i.e. not always 8 notes in the octave)" +#: js/blocks/DrumBlocks.js:146 +msgid "The Effects name block is used to select a sound effect." msgstr "" -#: js/PitchBlocks.js:1711 -msgid "N^th Modal Pitch takes a number as an input as the n^th degree for the given mode. 0 is the first position, 1 is the second, -1 is the note before the first etc." +#: js/blocks/DrumBlocks.js:163 +msgid "noise" msgstr "" -#: js/PitchBlocks.js:1713 -msgid "The pitches change according to the mode specified without any need for respellings." +#: js/blocks/DrumBlocks.js:177 +msgid "The Play noise block will generate white, pink, or brown noise." msgstr "" -#: js/PitchBlocks.js:1752 -msgid "Scale Degree is a common convention in music. Scale Degree offers seven possible positions in the scale (1-7) and can be modified via accidentals." +#: js/blocks/DrumBlocks.js:317 +msgid "Replace every instance of a pitch with a drum sound." msgstr "" -#: js/PitchBlocks.js:1754 -msgid "Scale Degree 1 is always the first pitch in a given scale, regardless of octave." +#: js/blocks/DrumBlocks.js:328 +#.TRANS: map a pitch to a drum sound +msgid "map pitch to drum" msgstr "" -#: js/PitchBlocks.js:1776 -#.TRANS: step some number of notes in current musical scale -msgid "scalar step" +#: js/blocks/DrumBlocks.js:395 +msgid "In the example above, a kick drum sound will be played instead of sol." msgstr "" -#: js/PitchBlocks.js:1781 -msgid "The Scalar Step block (in combination with a Number block) will play the next pitch in a scale," +#: js/blocks/DrumBlocks.js:407 +#.TRANS: set the current drum sound for playback +msgid "set drum" msgstr "" -#: js/PitchBlocks.js:1783 -msgid "eg if the last note played was sol, Scalar Step 1 will play la." +#: js/blocks/DrumBlocks.js:451 +msgid "sound effect" msgstr "" -#: js/PitchBlocks.js:1818 -msgid "The Pitch block specifies the pitch name and octave of a note that together determine the frequency of the note." +#: js/blocks/DrumBlocks.js:489 +msgid "You can use multiple Drum blocks within a Note block." msgstr "" -#: js/GraphicsBlocks.js:46 -#: js/DictActions.js:77 -#: js/DictActions.js:155 -#: js/DictActions.js:189 +#: js/blocks/GraphicsBlocks.js:46 +#: js/turtleactions/DictActions.js:77 +#: js/turtleactions/DictActions.js:144 +#: js/turtleactions/DictActions.js:173 msgid "heading" msgstr "" -#: js/GraphicsBlocks.js:56 +#: js/blocks/GraphicsBlocks.js:56 msgid "The Heading block returns the orientation of the mouse." msgstr "" -#: js/GraphicsBlocks.js:62 +#: js/blocks/GraphicsBlocks.js:62 msgid "The Heading block returns the orientation of the turtle." msgstr "" -#: js/GraphicsBlocks.js:133 +#: js/blocks/GraphicsBlocks.js:133 msgid "The Y block returns the vertical position of the mouse." msgstr "" -#: js/GraphicsBlocks.js:140 +#: js/blocks/GraphicsBlocks.js:140 msgid "The Y block returns the vertical position of the turtle." msgstr "" -#: js/GraphicsBlocks.js:149 +#: js/blocks/GraphicsBlocks.js:149 msgid "y3" msgstr "" -#: js/GraphicsBlocks.js:219 +#: js/blocks/GraphicsBlocks.js:219 msgid "The X block returns the horizontal position of the mouse." msgstr "" -#: js/GraphicsBlocks.js:226 +#: js/blocks/GraphicsBlocks.js:226 msgid "The X block returns the horizontal position of the turtle." msgstr "" -#: js/GraphicsBlocks.js:235 +#: js/blocks/GraphicsBlocks.js:235 msgid "x3" msgstr "" -#: js/GraphicsBlocks.js:295 +#: js/blocks/GraphicsBlocks.js:295 msgid "scroll xy" msgstr "" -#: js/GraphicsBlocks.js:303 +#: js/blocks/GraphicsBlocks.js:303 msgid "The Scroll XY block moves the canvas." msgstr "" -#: js/GraphicsBlocks.js:313 +#: js/blocks/GraphicsBlocks.js:313 msgid "x2" msgstr "" -#: js/GraphicsBlocks.js:313 +#: js/blocks/GraphicsBlocks.js:313 msgid "y2" msgstr "" -#: js/GraphicsBlocks.js:373 -#: js/temperament.js:213 -#: js/temperament.js:241 +#: js/blocks/GraphicsBlocks.js:373 +#: js/widgets/temperament.js:319 +#: js/widgets/temperament.js:347 msgid "clear" msgstr "" -#: js/GraphicsBlocks.js:426 +#: js/blocks/GraphicsBlocks.js:426 msgid "The Control-point 2 block sets the second control point for the Bezier curve." msgstr "" -#: js/GraphicsBlocks.js:433 +#: js/blocks/GraphicsBlocks.js:433 msgid "control point 2" msgstr "" -#: js/GraphicsBlocks.js:436 -#: js/GraphicsBlocks.js:487 -#: js/GraphicsBlocks.js:534 -#: js/GraphicsBlocks.js:750 +#: js/blocks/GraphicsBlocks.js:436 +#: js/blocks/GraphicsBlocks.js:487 +#: js/blocks/GraphicsBlocks.js:534 +#: js/blocks/GraphicsBlocks.js:750 msgid "x1" msgstr "" -#: js/GraphicsBlocks.js:436 -#: js/GraphicsBlocks.js:487 -#: js/GraphicsBlocks.js:534 -#: js/GraphicsBlocks.js:750 +#: js/blocks/GraphicsBlocks.js:436 +#: js/blocks/GraphicsBlocks.js:487 +#: js/blocks/GraphicsBlocks.js:534 +#: js/blocks/GraphicsBlocks.js:750 msgid "y1" msgstr "" -#: js/GraphicsBlocks.js:477 +#: js/blocks/GraphicsBlocks.js:477 msgid "The Control-point 1 block sets the first control point for the Bezier curve." msgstr "" -#: js/GraphicsBlocks.js:484 +#: js/blocks/GraphicsBlocks.js:484 msgid "control point 1" msgstr "" -#: js/GraphicsBlocks.js:527 +#: js/blocks/GraphicsBlocks.js:527 msgid "The Bezier block draws a Bezier curve." msgstr "" -#: js/GraphicsBlocks.js:531 +#: js/blocks/GraphicsBlocks.js:531 msgid "bezier" msgstr "" -#: js/GraphicsBlocks.js:592 +#: js/blocks/GraphicsBlocks.js:592 msgid "The Arc block moves the turtle in an arc." msgstr "" -#: js/GraphicsBlocks.js:600 +#: js/blocks/GraphicsBlocks.js:600 msgid "arc" msgstr "" -#: js/GraphicsBlocks.js:603 +#: js/blocks/GraphicsBlocks.js:603 msgid "angle" msgstr "" -#: js/GraphicsBlocks.js:603 +#: js/blocks/GraphicsBlocks.js:603 msgid "radius" msgstr "" -#: js/GraphicsBlocks.js:620 -#: js/GraphicsBlocks.js:767 -#: js/GraphicsBlocks.js:1010 -#: js/GraphicsBlocks.js:1093 +#: js/blocks/GraphicsBlocks.js:620 +#: js/blocks/GraphicsBlocks.js:767 +#: js/blocks/GraphicsBlocks.js:1010 +#: js/blocks/GraphicsBlocks.js:1093 msgid "Value must be within -5000 to 5000 when Wrap Mode is off." msgstr "" -#: js/GraphicsBlocks.js:622 -#: js/GraphicsBlocks.js:769 -#: js/GraphicsBlocks.js:1012 -#: js/GraphicsBlocks.js:1095 +#: js/blocks/GraphicsBlocks.js:622 +#: js/blocks/GraphicsBlocks.js:769 +#: js/blocks/GraphicsBlocks.js:1012 +#: js/blocks/GraphicsBlocks.js:1095 msgid "Value must be within -20000 to 20000 when Wrap Mode is on." msgstr "" -#: js/GraphicsBlocks.js:660 +#: js/blocks/GraphicsBlocks.js:660 msgid "set heading" msgstr "" -#: js/GraphicsBlocks.js:673 +#: js/blocks/GraphicsBlocks.js:673 msgid "The Set heading block sets the heading of the turtle." msgstr "" -#: js/GraphicsBlocks.js:733 +#: js/blocks/GraphicsBlocks.js:733 msgid "The Set XY block moves the mouse to a specific position on the screen." msgstr "" -#: js/GraphicsBlocks.js:739 +#: js/blocks/GraphicsBlocks.js:739 msgid "The Set XY block moves the turtle to a specific position on the screen." msgstr "" -#: js/GraphicsBlocks.js:747 +#: js/blocks/GraphicsBlocks.js:747 msgid "set xy" msgstr "" -#: js/GraphicsBlocks.js:819 +#: js/blocks/GraphicsBlocks.js:819 msgid "The Right block turns the mouse to the right." msgstr "" -#: js/GraphicsBlocks.js:826 +#: js/blocks/GraphicsBlocks.js:826 msgid "The Right block turns the turtle to the right." msgstr "" -#: js/GraphicsBlocks.js:835 +#: js/blocks/GraphicsBlocks.js:835 msgid "right1" msgstr "" -#: js/GraphicsBlocks.js:835 +#: js/blocks/GraphicsBlocks.js:835 #: plugins/rodi.rtp:77 #: plugins/rodi.rtp:340 #: plugins/rodi.rtp:375 msgid "right" msgstr "" -#: js/GraphicsBlocks.js:899 +#: js/blocks/GraphicsBlocks.js:899 msgid "The Left block turns the mouse to the left." msgstr "" -#: js/GraphicsBlocks.js:906 +#: js/blocks/GraphicsBlocks.js:906 msgid "The Left block turns the turtle to the left." msgstr "" -#: js/GraphicsBlocks.js:915 +#: js/blocks/GraphicsBlocks.js:915 msgid "left1" msgstr "" -#: js/GraphicsBlocks.js:915 +#: js/blocks/GraphicsBlocks.js:915 #: plugins/rodi.rtp:79 #: plugins/rodi.rtp:339 #: plugins/rodi.rtp:362 msgid "left" msgstr "" -#: js/GraphicsBlocks.js:967 -#: js/temperament.js:734 -#: js/temperament.js:933 +#: js/blocks/GraphicsBlocks.js:967 +#: js/widgets/temperament.js:875 +#: js/widgets/temperament.js:1078 #: plugins/rodi.rtp:69 #: plugins/rodi.rtp:387 msgid "back" msgstr "" -#: js/GraphicsBlocks.js:976 +#: js/blocks/GraphicsBlocks.js:976 msgid "The Back block moves the mouse backward." msgstr "" -#: js/GraphicsBlocks.js:983 +#: js/blocks/GraphicsBlocks.js:983 msgid "The Back block moves the turtle backward." msgstr "" -#: js/GraphicsBlocks.js:1050 +#: js/blocks/GraphicsBlocks.js:1050 #: plugins/rodi.rtp:71 #: plugins/rodi.rtp:400 msgid "forward" msgstr "" -#: js/GraphicsBlocks.js:1059 +#: js/blocks/GraphicsBlocks.js:1059 msgid "The Forward block moves the mouse forward." msgstr "" -#: js/GraphicsBlocks.js:1066 +#: js/blocks/GraphicsBlocks.js:1066 msgid "The Forward block moves the turtle forward." msgstr "" -#: js/GraphicsBlocks.js:1154 -#: js/GraphicsBlocks.js:1172 +#: js/blocks/GraphicsBlocks.js:1154 +#: js/blocks/GraphicsBlocks.js:1172 msgid "wrap" msgstr "" -#: js/OrnamentBlocks.js:32 -msgid "staccato factor" -msgstr "" - -#: js/OrnamentBlocks.js:108 -msgid "slur factor" -msgstr "" - -#: js/OrnamentBlocks.js:217 -#: js/OrnamentBlocks.js:309 -#.TRANS: the neighbor refers to a neighboring note, e.g., D is a neighbor of C -msgid "neighbor" -msgstr "" - -#: js/OrnamentBlocks.js:293 -msgid "The Neighbor block rapidly switches between neighboring pitches." -msgstr "" - -#: js/OrnamentBlocks.js:364 -msgid "glide" -msgstr "" - -#: js/OrnamentBlocks.js:479 -#: js/OrnamentBlocks.js:643 -msgid "slur" -msgstr "" - -#: js/OrnamentBlocks.js:558 -#: js/OrnamentBlocks.js:710 -#.TRANS: play each note sharply detached from the others -msgid "staccato" -msgstr "" - -#: js/PenBlocks.js:24 +#: js/blocks/PenBlocks.js:30 msgid "purple" msgstr "" -#: js/PenBlocks.js:37 -#: js/SensorsBlocks.js:521 -#: plugins/rodi.rtp:219 -msgid "blue" -msgstr "" - -#: js/PenBlocks.js:50 -#: js/SensorsBlocks.js:577 -#: plugins/rodi.rtp:218 -msgid "green" -msgstr "" - -#: js/PenBlocks.js:63 +#: js/blocks/PenBlocks.js:80 msgid "yellow" msgstr "" -#: js/PenBlocks.js:76 +#: js/blocks/PenBlocks.js:96 #: plugins/nutrition.rtp:164 msgid "orange" msgstr "" -#: js/PenBlocks.js:89 -#: js/SensorsBlocks.js:633 -#: plugins/rodi.rtp:217 -msgid "red" -msgstr "" - -#: js/PenBlocks.js:102 +#: js/blocks/PenBlocks.js:128 msgid "white" msgstr "" -#: js/PenBlocks.js:115 +#: js/blocks/PenBlocks.js:144 msgid "black" msgstr "" -#: js/PenBlocks.js:128 +#: js/blocks/PenBlocks.js:163 msgid "begin fill" msgstr "" -#: js/PenBlocks.js:143 +#: js/blocks/PenBlocks.js:190 msgid "end fill" msgstr "" -#: js/PenBlocks.js:159 -#: js/PenBlocks.js:386 +#: js/blocks/PenBlocks.js:212 +#: js/blocks/PenBlocks.js:560 #.TRANS: set the background color msgid "background" msgstr "" -#: js/PenBlocks.js:206 -#: js/DictActions.js:71 -#: js/DictActions.js:149 -#: js/DictActions.js:186 +#: js/blocks/PenBlocks.js:274 +#: js/turtleactions/DictActions.js:71 +#: js/turtleactions/DictActions.js:138 +#: js/turtleactions/DictActions.js:170 msgid "grey" msgstr "" -#: js/PenBlocks.js:210 +#: js/blocks/PenBlocks.js:282 msgid "The Grey block returns the current pen grey value." msgstr "" -#: js/PenBlocks.js:243 -#: js/DictActions.js:69 -#: js/DictActions.js:147 -#: js/DictActions.js:185 +#: js/blocks/PenBlocks.js:340 +#: js/turtleactions/DictActions.js:69 +#: js/turtleactions/DictActions.js:136 +#: js/turtleactions/DictActions.js:169 msgid "shade" msgstr "" -#: js/PenBlocks.js:247 +#: js/blocks/PenBlocks.js:347 msgid "The Shade block returns the current pen shade value." msgstr "" -#: js/PenBlocks.js:280 -#: js/DictActions.js:67 -#: js/DictActions.js:145 -#: js/DictActions.js:184 +#: js/blocks/PenBlocks.js:405 +#: js/turtleactions/DictActions.js:67 +#: js/turtleactions/DictActions.js:134 +#: js/turtleactions/DictActions.js:168 msgid "color" msgstr "" -#: js/PenBlocks.js:285 +#: js/blocks/PenBlocks.js:415 msgid "The Color block returns the current pen color." msgstr "" -#: js/PenBlocks.js:318 -#: js/DictActions.js:73 -#: js/DictActions.js:151 -#: js/DictActions.js:187 +#: js/blocks/PenBlocks.js:470 +#: js/turtleactions/DictActions.js:73 +#: js/turtleactions/DictActions.js:140 +#: js/turtleactions/DictActions.js:171 msgid "pen size" msgstr "" -#: js/PenBlocks.js:322 +#: js/blocks/PenBlocks.js:474 msgid "The Pen size block returns the current pen size value." msgstr "" -#: js/PenBlocks.js:355 +#: js/blocks/PenBlocks.js:513 msgid "set font" msgstr "" -#: js/PenBlocks.js:358 +#: js/blocks/PenBlocks.js:518 msgid "The Set font block sets the font used by the Show block." msgstr "" -#: js/PenBlocks.js:391 +#: js/blocks/PenBlocks.js:567 msgid "The Background block sets the window background color." msgstr "" -#: js/PenBlocks.js:408 +#: js/blocks/PenBlocks.js:598 msgid "The Hollow line block creates a line with a hollow center." msgstr "" -#: js/PenBlocks.js:415 +#: js/blocks/PenBlocks.js:606 #.TRANS: draw a line logo has a hollow space down its center msgid "hollow line" msgstr "" -#: js/PenBlocks.js:462 +#: js/blocks/PenBlocks.js:675 msgid "The Fill block fills in a shape with a color." msgstr "" -#: js/PenBlocks.js:470 +#: js/blocks/PenBlocks.js:684 #.TRANS: fill in as a solid color msgid "fill" msgstr "" -#: js/PenBlocks.js:527 +#: js/blocks/PenBlocks.js:761 #.TRANS: raise up the pen so logo it does not draw when it is moved msgid "pen up" msgstr "" -#: js/PenBlocks.js:532 +#: js/blocks/PenBlocks.js:768 msgid "The Pen-up block raises the pen so that it does not draw." msgstr "" -#: js/PenBlocks.js:552 +#: js/blocks/PenBlocks.js:802 #.TRANS: put down the pen so logo it draws when it is moved msgid "pen down" msgstr "" -#: js/PenBlocks.js:557 +#: js/blocks/PenBlocks.js:810 msgid "The Pen-down block lowers the pen so that it draws." msgstr "" -#: js/PenBlocks.js:577 +#: js/blocks/PenBlocks.js:844 #.TRANS: set the width of the line drawn by the pen msgid "set pen size" msgstr "" -#: js/PenBlocks.js:583 +#: js/blocks/PenBlocks.js:854 msgid "The Set-pen-size block changes the size of the pen." msgstr "" -#: js/PenBlocks.js:623 +#: js/blocks/PenBlocks.js:913 #.TRANS: set degree of translucence of the pen color msgid "set translucency" msgstr "" -#: js/PenBlocks.js:627 +#: js/blocks/PenBlocks.js:921 msgid "The Set translucency block changes the opacity of the pen." msgstr "" -#: js/PenBlocks.js:668 +#: js/blocks/PenBlocks.js:981 msgid "set hue" msgstr "" -#: js/PenBlocks.js:672 +#: js/blocks/PenBlocks.js:989 msgid "The Set hue block changes the color of the pen." msgstr "" -#: js/PenBlocks.js:711 +#: js/blocks/PenBlocks.js:1047 msgid "set shade" msgstr "" -#: js/PenBlocks.js:717 +#: js/blocks/PenBlocks.js:1057 msgid "The Set-shade block changes the pen color from dark to light." msgstr "" -#: js/PenBlocks.js:757 +#: js/blocks/PenBlocks.js:1111 #.TRANS: set the level of vividness of the pen color msgid "set grey" msgstr "" -#: js/PenBlocks.js:761 +#: js/blocks/PenBlocks.js:1119 msgid "The Set grey block changes the vividness of the pen color." msgstr "" -#: js/PenBlocks.js:800 +#: js/blocks/PenBlocks.js:1172 msgid "set color" msgstr "" -#: js/PenBlocks.js:806 +#: js/blocks/PenBlocks.js:1182 msgid "The Set-color block changes the pen color." msgstr "" -#: js/VolumeBlocks.js:35 -msgid "synth volume" -msgstr "" - -#: js/VolumeBlocks.js:39 -msgid "The Synth volume block returns the current volume of the current synthesizer." -msgstr "" - -#: js/VolumeBlocks.js:47 -#: js/musicutils.js:730 -#: js/synthutils.js:56 -#.TRANS: musical instrument -msgid "piano" -msgstr "" - -#: js/VolumeBlocks.js:105 -msgid "master volume" -msgstr "" - -#: js/VolumeBlocks.js:109 -msgid "The Master volume block returns the master volume." -msgstr "" - -#: js/VolumeBlocks.js:355 -#: js/VolumeBlocks.js:524 -msgid "set synth volume" -msgstr "" - -#: js/VolumeBlocks.js:362 -#: js/VolumeBlocks.js:545 -msgid "synth" -msgstr "" - -#: js/VolumeBlocks.js:403 -#: js/VolumeBlocks.js:577 -#: js/VolumeBlocks.js:740 -#: js/VolumeActions.js:173 -msgid "Setting volume to 0." -msgstr "" - -#: js/VolumeBlocks.js:440 -msgid "Synth not found" -msgstr "" - -#: js/VolumeBlocks.js:494 -msgid "set drum volume" -msgstr "" - -#: js/VolumeBlocks.js:530 -msgid "The Set synth volume block will change the volume of a particular synth," -msgstr "" - -#: js/VolumeBlocks.js:532 -msgid "eg guitar violin snare drum etc." -msgstr "" - -#: js/VolumeBlocks.js:534 -msgid "The default volume is 50." -msgstr "" - -#: js/VolumeBlocks.js:536 -msgid "The range is 0 for silence to 100 for full volume." -msgstr "" - -#: js/VolumeBlocks.js:597 -msgid "set panning" -msgstr "" - -#: js/VolumeBlocks.js:603 -msgid "The Set Panning block sets the panning for all synthesizers." -msgstr "" - -#: js/VolumeBlocks.js:625 -msgid "Warning: Sound is coming out from only the left or right side." -msgstr "" - -#: js/VolumeBlocks.js:647 -#: js/VolumeBlocks.js:695 -msgid "set master volume" -msgstr "" - -#: js/VolumeBlocks.js:653 -msgid "The Set master volume block sets the volume for all synthesizers." -msgstr "" - -#: js/VolumeBlocks.js:784 -msgid "The Set relative volume block changes the volume of the contained notes." -msgstr "" - -#: js/VolumeBlocks.js:791 -msgid "set relative volume" -msgstr "" - -#: js/VolumeBlocks.js:857 -msgid "decrescendo" -msgstr "" - -#: js/VolumeBlocks.js:921 -msgid "crescendo" -msgstr "" - -#: js/ToneBlocks.js:34 -msgid "oscillator" -msgstr "" - -#: js/ToneBlocks.js:44 -#: js/timbre.js:1562 -#.TRANS: Partials refers to the number of sine waves combined into the sound. -msgid "partials" -msgstr "" - -#: js/ToneBlocks.js:76 -msgid "You are adding multiple oscillator blocks." -msgstr "" - -#: js/ToneBlocks.js:144 -#: js/timbre.js:1225 -#.TRANS: a duo synthesizer combines a synth with a sequencer -msgid "duo synth" -msgstr "" - -#: js/ToneBlocks.js:149 -msgid "The Duo synth block is a duo-frequency modulator used to define a timbre." -msgstr "" - -#: js/ToneBlocks.js:157 -#: js/timbre.js:1476 -msgid "vibrato rate" -msgstr "" - -#: js/ToneBlocks.js:157 -msgid "vibrato intensity" -msgstr "" - -#: js/ToneBlocks.js:185 -#: js/timbre.js:1221 -#.TRANS: AM (amplitude modulation) synthesizer -msgid "AM synth" -msgstr "" - -#: js/ToneBlocks.js:189 -msgid "The AM synth block is an amplitude modulator used to define a timbre." -msgstr "" - -#: js/ToneBlocks.js:224 -#: js/timbre.js:1223 -#.TRANS: FM (frequency modulation) synthesizer -msgid "FM synth" -msgstr "" - -#: js/ToneBlocks.js:228 -msgid "The FM synth block is a frequency modulator used to define a timbre." +#: js/blocks/PitchBlocks.js:141 +#.TRANS: musical transposition (adjustment of pitch up or down) +msgid "transposition" msgstr "" -#: js/ToneBlocks.js:262 -msgid "partial" +#: js/blocks/PitchBlocks.js:168 +#.TRANS: step down one note in current musical scale +msgid "scalar step down" msgstr "" -#: js/ToneBlocks.js:265 -msgid "The Partial block is used to specify a weight for a specific partial harmonic." +#: js/blocks/PitchBlocks.js:172 +msgid "The Scalar step down block returns the number of semi-tones down to the previous note in the current key and mode." msgstr "" -#: js/ToneBlocks.js:284 -#.TRANS: partials are weighted components in a harmonic series -msgid "Partial weight must be between 0 and 1." +#: js/blocks/PitchBlocks.js:190 +#.TRANS: step up one note in current musical scale +msgid "scalar step up" msgstr "" -#: js/ToneBlocks.js:297 -#.TRANS: partials are weighted components in a harmonic series -msgid "Partial block should be used inside of a Weighted-partials block." +#: js/blocks/PitchBlocks.js:194 +msgid "The Scalar step up block returns the number of semi-tones up to the next note in the current key and mode." msgstr "" -#: js/ToneBlocks.js:325 -#.TRANS: partials are weighted components in a harmonic series -msgid "weighted partials" +#: js/blocks/PitchBlocks.js:212 +#.TRANS: the change measured in half-steps between the current pitch and the previous pitch +msgid "change in pitch" msgstr "" -#: js/ToneBlocks.js:383 -msgid "The Harmonic block will add harmonics to the contained notes." +#: js/blocks/PitchBlocks.js:216 +msgid "The Change in pitch block is the difference (in half steps) between the current pitch being played and the previous pitch played." msgstr "" -#: js/ToneBlocks.js:390 -#.TRANS: A harmonic is an overtone. -msgid "harmonic" +#: js/blocks/PitchBlocks.js:243 +#.TRANS: the change measured in scale-steps between the current pitch and the previous pitch +msgid "scalar change in pitch" msgstr "" -#: js/ToneBlocks.js:431 -msgid "The Distortion block adds distortion to the pitch." +#: js/blocks/PitchBlocks.js:250 +#: js/blocks/PitchBlocks.js:432 +#: js/blocks/PitchBlocks.js:1667 +#: js/turtleactions/DictActions.js:89 +#: js/widgets/temperament.js:610 +#: js/widgets/temperament.js:614 +#: js/widgets/temperament.js:855 +#.TRANS: convert current note to piano key (1-88) +#.TRANS: a mapping of pitch to the 88 piano keys +msgid "pitch number" msgstr "" -#: js/ToneBlocks.js:438 -#: js/timbre.js:2100 -#.TRANS: distortion is an alteration in the sound -msgid "distortion" +#: js/blocks/PitchBlocks.js:256 +msgid "The Pitch number block is the value of the pitch of the note currently being played." msgstr "" -#: js/ToneBlocks.js:487 -msgid "The Tremolo block adds a wavering effect." +#: js/blocks/PitchBlocks.js:329 +#: js/blocks/PitchBlocks.js:433 +#.TRANS: the current pitch expressed in Hertz +msgid "pitch in hertz" msgstr "" -#: js/ToneBlocks.js:495 -#: js/timbre.js:2092 -#.TRANS: a wavering effect in a musical tone -msgid "tremolo" +#: js/blocks/PitchBlocks.js:334 +msgid "The Pitch in Hertz block is the value in Hertz of the pitch of the note currently being played." msgstr "" -#: js/ToneBlocks.js:500 -#: js/ToneBlocks.js:569 -#: js/ToneBlocks.js:630 -#: js/ToneBlocks.js:689 -#: js/timbre.js:2134 -#: js/timbre.js:2222 -#: js/timbre.js:2317 -#: js/timbre.js:2419 -#.TRANS: rate at which tremolo wavers -msgid "rate" +#: js/blocks/PitchBlocks.js:367 +#: js/turtleactions/DictActions.js:87 +msgid "current pitch" msgstr "" -#: js/ToneBlocks.js:502 -#: js/ToneBlocks.js:630 -#: js/timbre.js:2137 -#: js/timbre.js:2328 -#.TRANS: amplitude of tremolo waver -msgid "depth" +#: js/blocks/PitchBlocks.js:373 +msgid "The Current Pitch block is used with the Pitch Converter block. In the example above, current pitch, sol 4, is displayed as 392 hertz." msgstr "" -#: js/ToneBlocks.js:559 -msgid "The Phaser block adds a sweeping sound." +#: js/blocks/PitchBlocks.js:410 +msgid "This block converts the pitch value of the last note played into different formats such as hertz, letter name, pitch number, et al." msgstr "" -#: js/ToneBlocks.js:566 -#: js/timbre.js:2098 -#.TRANS: alter the phase of the sound -msgid "phaser" +#: js/blocks/PitchBlocks.js:434 +msgid "alphabet" msgstr "" -#: js/ToneBlocks.js:569 -#: js/timbre.js:2422 -msgid "octaves" +#: js/blocks/PitchBlocks.js:436 +#.TRANS: Translate as "alphabet class" +msgid "letter class" msgstr "" -#: js/ToneBlocks.js:569 -#: js/timbre.js:2425 -msgid "base frequency" +#: js/blocks/PitchBlocks.js:437 +msgid "solfege class" msgstr "" -#: js/ToneBlocks.js:619 -msgid "The Chorus block adds a chorus effect." +#: js/blocks/PitchBlocks.js:438 +msgid "staff y" msgstr "" -#: js/ToneBlocks.js:627 -#: js/timbre.js:2096 -#.TRANS: musical effect to simulate a choral sound -msgid "chorus" +#: js/blocks/PitchBlocks.js:439 +msgid "solfege syllable" msgstr "" -#: js/ToneBlocks.js:630 -msgid "delay" +#: js/blocks/PitchBlocks.js:440 +msgid "pitch class" msgstr "" -#: js/ToneBlocks.js:678 -msgid "The Vibrato block adds a rapid, slight variation in pitch." +#: js/blocks/PitchBlocks.js:441 +msgid "scalar class" msgstr "" -#: js/ToneBlocks.js:686 -#: js/timbre.js:2094 -#.TRANS: a rapid, slight variation in pitch -msgid "vibrato" +#: js/blocks/PitchBlocks.js:443 +msgid "nth degree" msgstr "" -#: js/ToneBlocks.js:689 -#: js/timbre.js:2221 -msgid "intensity" +#: js/blocks/PitchBlocks.js:444 +msgid "pitch to shade" msgstr "" -#: js/ToneBlocks.js:733 -#.TRANS: select synthesizer -msgid "set synth" +#: js/blocks/PitchBlocks.js:445 +msgid "pitch to color" msgstr "" -#: js/ToneBlocks.js:804 -msgid "synth name" +#: js/blocks/PitchBlocks.js:629 +#: js/widgets/musickeyboard.js:735 +#.TRANS: MIDI is a technical standard for electronic music +msgid "MIDI" msgstr "" -#: js/ToneBlocks.js:842 -msgid "set default instrument" +#: js/blocks/PitchBlocks.js:642 +#.TRANS: set an offset associated with the numeric piano keyboard mapping +msgid "set pitch number offset" msgstr "" -#: js/ToneBlocks.js:895 -#: js/ToneBlocks.js:943 -#.TRANS: set the characteristics of a custom instrument -msgid "set instrument" +#: js/blocks/PitchBlocks.js:645 +msgid "The Set pitch number offset block is used to set the offset for mapping pitch numbers to pitch and octave." msgstr "" -#: js/ToneBlocks.js:898 -#: js/ToneBlocks.js:926 -#: js/ToneBlocks.js:932 -msgid "The Set instrument block selects a voice for the synthesizer," +#: js/blocks/PitchBlocks.js:679 +#.TRANS: convert piano key number (1-88) to pitch +msgid "number to pitch" msgstr "" -#: js/ToneBlocks.js:900 -#: js/ToneBlocks.js:934 -msgid "eg guitar piano violin or cello." +#: js/blocks/PitchBlocks.js:682 +msgid "The Number to pitch block will convert a pitch number to a pich name." msgstr "" -#: js/ToneBlocks.js:1015 -msgid "Import a sound file to use as an instrument and set its pitch center." +#: js/blocks/PitchBlocks.js:715 +#.TRANS: convert piano key number (1-88) to octave +msgid "number to octave" msgstr "" -#: js/ToneBlocks.js:1110 -msgid "Upload a sound file to connect with the sample block." +#: js/blocks/PitchBlocks.js:717 +msgid "The Number to octave block will convert a pitch number to an octave." msgstr "" -#: js/MeterBlocks.js:34 -#.TRANS: musical meter (time signature), e.g., 4:4 -msgid "current meter" +#: js/blocks/PitchBlocks.js:726 +msgid "y to pitch" msgstr "" -#: js/MeterBlocks.js:85 -#.TRANS: number of beats per minute -msgid "beat factor" +#: js/blocks/PitchBlocks.js:729 +msgid "Y to pitch block will convert a staff y position to corresponding pitch notation." msgstr "" -#: js/MeterBlocks.js:161 -msgid "The Beats per minute block returns the current beats per minute." +#: js/blocks/PitchBlocks.js:841 +msgid "accidental selector" msgstr "" -#: js/MeterBlocks.js:169 -#: js/status.js:152 -#.TRANS: number of beats played per minute -msgid "beats per minute2" +#: js/blocks/PitchBlocks.js:844 +msgid "The Accidental selector block is used to choose between double-sharp, sharp, natural, flat, and double-flat." msgstr "" -#: js/MeterBlocks.js:169 -#: js/MeterBlocks.js:1056 -#: js/MeterBlocks.js:1133 -#: js/MeterBlocks.js:1211 -#.TRANS: sets tempo by defining a beat and beats per minute -msgid "beats per minute" +#: js/blocks/PitchBlocks.js:858 +msgid "Pitch can be specified in terms of ni dha pa ma ga re sa." msgstr "" -#: js/MeterBlocks.js:233 -#.TRANS: count of current musical measure in meter -msgid "measure count" +#: js/blocks/PitchBlocks.js:872 +msgid "Pitch can be specified in terms of C D E F G A B." msgstr "" -#: js/MeterBlocks.js:241 -msgid "The Measure count block returns the current measure." +#: js/blocks/PitchBlocks.js:884 +msgid "solfege" msgstr "" -#: js/MeterBlocks.js:290 -#.TRANS: count of current beat in the meter -msgid "beat count" +#: js/blocks/PitchBlocks.js:887 +msgid "Pitch can be specified in terms of do re mi fa sol la ti." msgstr "" -#: js/MeterBlocks.js:300 -#: js/MeterBlocks.js:311 -#: js/MeterBlocks.js:565 -#: js/MeterBlocks.js:576 -msgid "The Beat count block is the number of the current beat," +#: js/blocks/PitchBlocks.js:922 +msgid "The Invert block rotates any contained notes around a target note." msgstr "" -#: js/MeterBlocks.js:313 -#: js/MeterBlocks.js:578 -msgid "eg 1, 2, 3, or 4." +#: js/blocks/PitchBlocks.js:929 +#.TRANS: pitch inversion rotates a pitch around another pitch +msgid "invert" msgstr "" -#: js/MeterBlocks.js:368 -#.TRANS: count the number of notes -msgid "sum note values" +#: js/blocks/PitchBlocks.js:968 +#.TRANS: pitch inversion rotates a pitch around another pitch (odd number) +msgid "invert (odd)" msgstr "" -#: js/MeterBlocks.js:376 -#: js/MeterBlocks.js:440 -msgid "The Note counter block can be used to count the number of contained notes." +#: js/blocks/PitchBlocks.js:1001 +#.TRANS: pitch inversion rotates a pitch around another pitch (even number) +msgid "invert (even)" msgstr "" -#: js/MeterBlocks.js:432 -#.TRANS: count the number of notes -msgid "note counter" +#: js/blocks/PitchBlocks.js:1022 +#.TRANS: register is the octave of the current pitch +msgid "register" msgstr "" -#: js/MeterBlocks.js:496 -#.TRANS: number of whole notes that have been played -msgid "whole notes played" +#: js/blocks/PitchBlocks.js:1026 +msgid "The Register block provides an easy way to modify the register (octave) of the notes that follow it." msgstr "" -#: js/MeterBlocks.js:505 -msgid "The Whole notes played block returns the total number of whole notes played." +#: js/blocks/PitchBlocks.js:1047 +#.TRANS: cents are units used to specify the ratio between pitches. There are 100 cents between successive notes. +msgid "50 cents" msgstr "" -#: js/MeterBlocks.js:555 -#: js/DictActions.js:83 -#.TRANS: number of notes that have been played -msgid "notes played" +#: js/blocks/PitchBlocks.js:1102 +msgid "The Semi-tone transposition block will shift the pitches contained inside Note blocks up (or down) by half steps." msgstr "" -#: js/MeterBlocks.js:653 -msgid "The No clock block decouples the notes from the master clock." +#: js/blocks/PitchBlocks.js:1104 +msgid "In the example shown above, sol is shifted up to sol#." msgstr "" -#: js/MeterBlocks.js:661 -#.TRANS: don't lock notes to master clock -msgid "no clock" +#: js/blocks/PitchBlocks.js:1110 +#.TRANS: adjust the amount of shift (up or down) of a pitch +msgid "semi-tone transpose" msgstr "" -#: js/MeterBlocks.js:700 -msgid "on weak beat do" +#: js/blocks/PitchBlocks.js:1143 +msgid "The Transpose by Ratio block will shift the pitches contained inside Note blocks up (or down) by a ratio" msgstr "" -#: js/MeterBlocks.js:705 -msgid "The On-weak-beat block lets you specify actions to take on weak (off) beats." +#: js/blocks/PitchBlocks.js:1149 +#.TRANS: adjust the amount of shift (up or down) of a pitch +msgid "transpose by ratio" msgstr "" -#: js/MeterBlocks.js:750 -msgid "on strong beat" +#: js/blocks/PitchBlocks.js:1232 +#.TRANS: down sixth means the note is five scale degrees below current note +msgid "down sixth" msgstr "" -#: js/MeterBlocks.js:758 -msgid "The On-strong-beat block lets you specify actions to take on specified beats." +#: js/blocks/PitchBlocks.js:1251 +#.TRANS: down third means the note is two scale degrees below current note +msgid "down third" msgstr "" -#: js/MeterBlocks.js:769 -msgid "beat" +#: js/blocks/PitchBlocks.js:1270 +#.TRANS: seventh means the note is the six scale degrees above current note +msgid "seventh" msgstr "" -#: js/MeterBlocks.js:813 -msgid "on every beat do" +#: js/blocks/PitchBlocks.js:1289 +#.TRANS: sixth means the note is the five scale degrees above current note +msgid "sixth" msgstr "" -#: js/MeterBlocks.js:821 -msgid "The On-every-beat block lets you specify actions to take on every beat." +#: js/blocks/PitchBlocks.js:1308 +#.TRANS: fifth means the note is the four scale degrees above current note +msgid "fifth" msgstr "" -#: js/MeterBlocks.js:874 -msgid "on every note do" +#: js/blocks/PitchBlocks.js:1328 +#.TRANS: fourth means the note is three scale degrees above current note +msgid "fourth" msgstr "" -#: js/MeterBlocks.js:882 -msgid "The On-every-note block lets you specify actions to take on every note." +#: js/blocks/PitchBlocks.js:1347 +#.TRANS: third means the note is two scale degrees above current note +msgid "third" msgstr "" -#: js/MeterBlocks.js:928 -#: js/MeterBlocks.js:999 -#.TRANS: sets tempo by defining a beat and beats per minute -msgid "master beats per minute" +#: js/blocks/PitchBlocks.js:1366 +#.TRANS: second means the note is one scale degree above current note +msgid "second" msgstr "" -#: js/MeterBlocks.js:952 -#: js/MeterBlocks.js:1078 -#: js/MeterBlocks.js:1135 -msgid "bpm" +#: js/blocks/PitchBlocks.js:1407 +msgid "The Scalar transposition block will shift the pitches contained inside Note blocks up (or down) the scale." msgstr "" -#: js/MeterBlocks.js:952 -#: js/MeterBlocks.js:1078 -#: js/MeterBlocks.js:1135 -msgid "beat value" +#: js/blocks/PitchBlocks.js:1409 +msgid "In the example shown above, sol is shifted up to la." msgstr "" -#: js/MeterBlocks.js:1024 -#: js/MeterBlocks.js:1167 -#: js/MeterBlocks.js:1241 -msgid "Beats per minute must be > 30." +#: js/blocks/PitchBlocks.js:1416 +#.TRANS: adjust the amount of shift (up or down) of a pitch by musical scale (scalar) steps +msgid "scalar transpose" msgstr "" -#: js/MeterBlocks.js:1027 -#: js/MeterBlocks.js:1170 -#: js/MeterBlocks.js:1244 -msgid "Maximum beats per minute is 1000." +#: js/blocks/PitchBlocks.js:1451 +msgid "The Accidental block is used to create sharps and flats" msgstr "" -#: js/MeterBlocks.js:1068 -msgid "The Beats per minute block sets the number of 1/4 notes per minute." +#: js/blocks/PitchBlocks.js:1458 +#.TRANS: An accidental is a modification to a pitch, e.g., sharp or flat. +msgid "accidental override" msgstr "" -#: js/MeterBlocks.js:1279 -#.TRANS: anacrusis -msgid "pickup" +#: js/blocks/PitchBlocks.js:1581 +msgid "The Hertz block (in combination with a Number block) will play a sound at the specified frequency." msgstr "" -#: js/MeterBlocks.js:1367 -msgid "number of beats" +#: js/blocks/PitchBlocks.js:1671 +msgid "The Pitch Number block will play a pitch associated by its number, e.g. 0 for C and 7 for G." msgstr "" -#: js/DictBlocks.js:77 -msgid "show dictionary" +#: js/blocks/PitchBlocks.js:1703 +#: js/blocks/PitchBlocks.js:1745 +#.TRANS: a numeric mapping of the notes in an octave based on the musical mode +#.TRANS: a numeric mapping of the notes in an octave based on the musical mode +msgid "nth modal pitch" msgstr "" -#: js/DictBlocks.js:129 -msgid "The Dictionary block returns a dictionary." +#: js/blocks/PitchBlocks.js:1706 +msgid "n^th Modal Pitch takes the pattern of pitches in semitones for a mode and makes each point a degree of the mode," msgstr "" -#: js/DictBlocks.js:197 -#: js/DictBlocks.js:339 -msgid "The Get-dict block returns a value in the dictionary for a specified key." +#: js/blocks/PitchBlocks.js:1708 +msgid "starting from 1 and regardless of tonal framework (i.e. not always 8 notes in the octave)" msgstr "" -#: js/DictBlocks.js:212 -#: js/DictBlocks.js:354 -#.TRANS: retrieve a value from the dictionary with a given key -msgid "get value" +#: js/blocks/PitchBlocks.js:1749 +msgid "N^th Modal Pitch takes a number as an input as the n^th degree for the given mode. 0 is the first position, 1 is the second, -1 is the note before the first etc." msgstr "" -#: js/DictBlocks.js:215 -#: js/DictBlocks.js:216 -#: js/DictBlocks.js:289 -#: js/DictBlocks.js:290 -#: js/DictBlocks.js:357 -#: js/DictBlocks.js:430 -#: js/DictBlocks.js:431 -msgid "key2" +#: js/blocks/PitchBlocks.js:1751 +msgid "The pitches change according to the mode specified without any need for respellings." msgstr "" -#: js/DictBlocks.js:271 -#: js/DictBlocks.js:411 -msgid "The Set-dict block sets a value in the dictionary for a specified key." +#: js/blocks/PitchBlocks.js:1790 +msgid "Scale Degree is a common convention in music. Scale Degree offers seven possible positions in the scale (1-7) and can be modified via accidentals." msgstr "" -#: js/DictBlocks.js:286 -#: js/DictBlocks.js:427 -#.TRANS: set a value in the dictionary for a given key -msgid "set value" +#: js/blocks/PitchBlocks.js:1792 +msgid "Scale Degree 1 is always the first pitch in a given scale, regardless of octave." msgstr "" -#: js/ExtrasBlocks.js:33 -msgid "fraction" +#: js/blocks/PitchBlocks.js:1814 +#.TRANS: step some number of notes in current musical scale +msgid "scalar step" msgstr "" -#: js/ExtrasBlocks.js:36 -msgid "Convert a float to a fraction" +#: js/blocks/PitchBlocks.js:1819 +msgid "The Scalar Step block (in combination with a Number block) will play the next pitch in a scale," msgstr "" -#: js/ExtrasBlocks.js:93 -msgid "save as ABC" +#: js/blocks/PitchBlocks.js:1821 +msgid "eg if the last note played was sol, Scalar Step 1 will play la." msgstr "" -#: js/ExtrasBlocks.js:96 -#: js/ExtrasBlocks.js:132 -#: js/ExtrasBlocks.js:168 -msgid "title" +#: js/blocks/PitchBlocks.js:1857 +msgid "The Pitch block specifies the pitch name and octave of a note that together determine the frequency of the note." msgstr "" -#: js/ExtrasBlocks.js:129 -msgid "save as Lilypond" +#: js/blocks/ProgramBlocks.js:33 +msgid "The Load-heap-from-app block loads the heap from a web page." msgstr "" -#: js/ExtrasBlocks.js:165 -msgid "save as SVG" +#: js/blocks/ProgramBlocks.js:44 +#.TRANS: load the heap contents from a URL +msgid "load heap from App" msgstr "" -#: js/ExtrasBlocks.js:216 -msgid "no background" +#: js/blocks/ProgramBlocks.js:95 +msgid "Error parsing JSON data:" msgstr "" -#: js/ExtrasBlocks.js:219 -msgid "The No background block eliminates the background from the saved SVG output." +#: js/blocks/ProgramBlocks.js:100 +msgid "404: Page not found" msgstr "" -#: js/ExtrasBlocks.js:247 -msgid "show blocks" +#: js/blocks/ProgramBlocks.js:133 +msgid "The Save-heap-to-app block saves the heap to a web page." msgstr "" -#: js/ExtrasBlocks.js:249 -msgid "The Show blocks block shows the blocks." +#: js/blocks/ProgramBlocks.js:144 +#.TRANS: save the heap contents to a URL +msgid "save heap to App" msgstr "" -#: js/ExtrasBlocks.js:274 -msgid "hide blocks" +#: js/blocks/ProgramBlocks.js:189 +msgid "Cannot find a valid heap for" msgstr "" -#: js/ExtrasBlocks.js:276 -msgid "The Hide blocks block hides the blocks." +#: js/blocks/ProgramBlocks.js:206 +msgid "The Load-heap block loads the heap from a file." msgstr "" -#: js/ExtrasBlocks.js:305 -#: js/ExtrasBlocks.js:335 -msgid "The Space block is used to add space between blocks." +#: js/blocks/ProgramBlocks.js:217 +#.TRANS: load the heap from a file +msgid "load heap" msgstr "" -#: js/ExtrasBlocks.js:373 -msgid "wait" +#: js/blocks/ProgramBlocks.js:270 +msgid "The file you selected does not contain a valid heap." msgstr "" -#: js/ExtrasBlocks.js:376 -msgid "The Wait block pauses the program for a specified number of seconds." +#: js/blocks/ProgramBlocks.js:275 +msgid "The loadHeap block needs a loadFile block." msgstr "" -#: js/ExtrasBlocks.js:430 -#: plugins/facebook.rtp:30 -msgid "comment" +#: js/blocks/ProgramBlocks.js:291 +msgid "The Set-heap block loads the heap." msgstr "" -#: js/ExtrasBlocks.js:466 -msgid "print" +#: js/blocks/ProgramBlocks.js:340 +msgid "The block you selected does not contain a valid heap." msgstr "" -#: js/ExtrasBlocks.js:473 -msgid "The Print block displays text at the top of the screen." +#: js/blocks/ProgramBlocks.js:343 +msgid "The Set heap block needs a heap." msgstr "" -#: js/ExtrasBlocks.js:579 -msgid "display grid" +#: js/blocks/ProgramBlocks.js:360 +msgid "The Load-dictionary block loads a dictionary from a file." msgstr "" -#: js/ExtrasBlocks.js:584 -msgid "The Display Grid Block changes the grid type" +#: js/blocks/ProgramBlocks.js:372 +#.TRANS: load a dictionary from a file +msgid "load dictionary" msgstr "" -#: js/ExtrasBlocks.js:686 -#: js/ExtrasBlocks.js:705 -#: js/ExtrasBlocks.js:728 -#: js/ExtrasBlocks.js:751 -#: js/ExtrasBlocks.js:769 -#: js/ExtrasBlocks.js:788 -#: js/ExtrasBlocks.js:807 -#: js/ExtrasBlocks.js:826 -msgid "unknown" +#: js/blocks/ProgramBlocks.js:390 +#: js/blocks/ProgramBlocks.js:658 +#: js/blocks/ToneBlocks.js:1025 +msgid "file" msgstr "" -#: js/SensorsBlocks.js:36 -msgid "The Input block prompts for keyboard input." +#: js/blocks/ProgramBlocks.js:444 +msgid "The file you selected does not contain a valid dictionary." msgstr "" -#: js/SensorsBlocks.js:46 -msgid "input" +#: js/blocks/ProgramBlocks.js:449 +msgid "The load dictionary block needs a load file block." msgstr "" -#: js/SensorsBlocks.js:64 -msgid "Input a value" +#: js/blocks/ProgramBlocks.js:466 +msgid "The Set-dictionary block loads a dictionary." msgstr "" -#: js/SensorsBlocks.js:126 -msgid "input value" +#: js/blocks/ProgramBlocks.js:477 +#.TRANS: load a dictionary from a JSON +msgid "set dictionary" msgstr "" -#: js/SensorsBlocks.js:131 -msgid "The Input-value block stores the input." +#: js/blocks/ProgramBlocks.js:546 +msgid "The block you selected does not contain a valid dictionary." msgstr "" -#: js/SensorsBlocks.js:238 -msgid "loudness" +#: js/blocks/ProgramBlocks.js:550 +msgid "The set dictionary block needs a dictionary." msgstr "" -#: js/SensorsBlocks.js:245 -msgid "The Loudness block returns the volume detected by the microphone." +#: js/blocks/ProgramBlocks.js:567 +msgid "The Save-heap block saves the heap to a file." msgstr "" -#: js/SensorsBlocks.js:300 -msgid "click" +#: js/blocks/ProgramBlocks.js:578 +#.TRANS: save the heap to a file +msgid "save heap" msgstr "" -#: js/SensorsBlocks.js:306 -msgid "The Click block triggers an event if a mouse has been clicked." +#: js/blocks/ProgramBlocks.js:629 +msgid "The Save-dictionary block saves a dictionary to a file." msgstr "" -#: js/SensorsBlocks.js:313 -msgid "The Click block triggers an event if a turtle has been clicked." +#: js/blocks/ProgramBlocks.js:640 +#.TRANS: save a dictionary to a file +msgid "save dictionary" msgstr "" -#: js/SensorsBlocks.js:342 -msgid "cursor over" +#: js/blocks/ProgramBlocks.js:720 +msgid "The Open palette block opens a palette." msgstr "" -#: js/SensorsBlocks.js:387 -msgid "cursor out" +#: js/blocks/ProgramBlocks.js:727 +msgid "open palette" msgstr "" -#: js/SensorsBlocks.js:433 -msgid "cursor button down" +#: js/blocks/ProgramBlocks.js:785 +msgid "The Delete block block removes a block." msgstr "" -#: js/SensorsBlocks.js:477 -msgid "cursor button up" +#: js/blocks/ProgramBlocks.js:797 +#.TRANS: Move this block to the trash. +msgid "delete block" msgstr "" -#: js/SensorsBlocks.js:638 -msgid "The Get red block returns the red component of the pixel under the mouse." +#: js/blocks/ProgramBlocks.js:861 +msgid "The Move block block moves a block." msgstr "" -#: js/SensorsBlocks.js:644 -msgid "The Get red block returns the red component of the pixel under the turtle." +#: js/blocks/ProgramBlocks.js:869 +#.TRANS: Move the position of a block on the screen. +msgid "move block" msgstr "" -#: js/SensorsBlocks.js:685 -#: plugins/rodi.rtp:216 -msgid "pixel color" +#: js/blocks/ProgramBlocks.js:881 +#: js/blocks/ProgramBlocks.js:1048 +msgid "block number" msgstr "" -#: js/SensorsBlocks.js:690 -msgid "The Get pixel block returns the color of the pixel under the mouse." +#: js/blocks/ProgramBlocks.js:935 +#.TRANS: Run program beginning at this block. +msgid "run block" msgstr "" -#: js/SensorsBlocks.js:696 -msgid "The Get pixel block returns the color of the pixel under the turtle." +#: js/blocks/ProgramBlocks.js:1025 +msgid "The Dock block block connections two blocks." msgstr "" -#: js/SensorsBlocks.js:758 -msgid "time" +#: js/blocks/ProgramBlocks.js:1036 +#.TRANS: We can connect a block to another block. +msgid "connect blocks" msgstr "" -#: js/SensorsBlocks.js:804 -msgid "cursor y" +#: js/blocks/ProgramBlocks.js:1048 +msgid "target block" msgstr "" -#: js/SensorsBlocks.js:809 -msgid "The Cursor Y block returns the vertical position of the mouse." +#: js/blocks/ProgramBlocks.js:1048 +msgid "connection number" msgstr "" -#: js/SensorsBlocks.js:845 -msgid "cursor x" +#: js/blocks/ProgramBlocks.js:1140 +msgid "The Make block block creates a new block." msgstr "" -#: js/SensorsBlocks.js:850 -msgid "The Cursor X block returns the horizontal position of the mouse." +#: js/blocks/ProgramBlocks.js:1152 +#.TRANS: Create a new block +msgid "make block" msgstr "" -#: js/SensorsBlocks.js:886 -msgid "mouse button" +#: js/blocks/ProgramBlocks.js:1285 +msgid "Cannot find block" msgstr "" -#: js/SensorsBlocks.js:888 -msgid "The Mouse-button block returns True if the mouse button is pressed." +#: js/blocks/ProgramBlocks.js:1304 +#: js/blocks/ProgramBlocks.js:1313 +msgid "Warning: block argument type mismatch" msgstr "" -#: js/SensorsBlocks.js:934 -msgid "to ASCII" +#: js/blocks/ProgramBlocks.js:1347 +msgid "The Open project block is used to open a project from a web page." msgstr "" -#: js/SensorsBlocks.js:938 -msgid "The To ASCII block converts numbers to letters." +#: js/blocks/ProgramBlocks.js:1357 +msgid "open project" msgstr "" -#: js/SensorsBlocks.js:1005 -msgid "The Keyboard block returns computer keyboard input." +#: js/blocks/ProgramBlocks.js:1410 +msgid "Please enter a valid URL." msgstr "" -#: js/IntervalsActions.js:216 -msgid "Adding missing pitch number 0." +#: js/blocks/ToneBlocks.js:34 +msgid "oscillator" msgstr "" -#: js/IntervalsActions.js:224 -msgid "Ignoring pitch numbers less than zero or greater than eleven." +#: js/blocks/ToneBlocks.js:42 +#: js/blocks/WidgetBlocks.js:179 +#: js/widgets/timbre.js:1558 +#: js/widgets/timbre.js:1808 +#.TRANS: there are different types (sine, triangle, square...) of oscillators. +#.TRANS: type of filter, e.g., lowpass, highpass, etc. +msgid "type" msgstr "" -#: js/IntervalsActions.js:230 -msgid "Ignoring duplicate pitch numbers." +#: js/blocks/ToneBlocks.js:44 +#: js/widgets/timbre.js:1562 +#.TRANS: Partials refers to the number of sine waves combined into the sound. +msgid "partials" msgstr "" -#: js/PitchActions.js:88 -msgid "The Scalar Step Block must be used inside of a Note Block." +#: js/blocks/ToneBlocks.js:76 +msgid "You are adding multiple oscillator blocks." msgstr "" -#: js/PitchActions.js:107 -msgid "The Scalar Step Block must be preceded by a Pitch Block." +#: js/blocks/ToneBlocks.js:144 +#: js/widgets/timbre.js:1225 +#.TRANS: a duo synthesizer combines a synth with a sequencer +msgid "duo synth" msgstr "" -#: js/DrumActions.js:231 -msgid "Noise Block: Did you mean to use a Note block?" +#: js/blocks/ToneBlocks.js:149 +msgid "The Duo synth block is a duo-frequency modulator used to define a timbre." msgstr "" -#: js/MeterActions.js:101 -#: js/MeterActions.js:139 -msgid "beats per minute must be greater than" +#: js/blocks/ToneBlocks.js:157 +#: js/widgets/timbre.js:1476 +msgid "vibrato rate" msgstr "" -#: js/MeterActions.js:111 -#: js/MeterActions.js:149 -msgid "maximum" +#: js/blocks/ToneBlocks.js:157 +msgid "vibrato intensity" msgstr "" -#: js/MeterActions.js:117 -#: js/MeterActions.js:155 -msgid "beats per minute is" +#: js/blocks/ToneBlocks.js:185 +#: js/widgets/timbre.js:1221 +#.TRANS: AM (amplitude modulation) synthesizer +msgid "AM synth" msgstr "" -#: js/ToneActions.js:134 -msgid "Vibrato intensity must be between 1 and 100." +#: js/blocks/ToneBlocks.js:189 +msgid "The AM synth block is an amplitude modulator used to define a timbre." msgstr "" -#: js/ToneActions.js:139 -msgid "Vibrato rate must be greater than 0." +#: js/blocks/ToneBlocks.js:224 +#: js/widgets/timbre.js:1223 +#.TRANS: FM (frequency modulation) synthesizer +msgid "FM synth" msgstr "" -#: js/ToneActions.js:192 -#: js/ToneActions.js:265 -#.TRANS: Depth is the intesity of the tremolo or chorus effect. -msgid "Depth is out of range." +#: js/blocks/ToneBlocks.js:228 +msgid "The FM synth block is a frequency modulator used to define a timbre." msgstr "" -#: js/ToneActions.js:301 -msgid "Distortion must be from 0 to 100." +#: js/blocks/ToneBlocks.js:262 +msgid "partial" msgstr "" -#: js/ToneActions.js:332 -#.TRANS: partials components in a harmonic series -msgid "Partial must be greater than or equal to 0." +#: js/blocks/ToneBlocks.js:265 +msgid "The Partial block is used to specify a weight for a specific partial harmonic." msgstr "" -#: js/ToneActions.js:378 -#: js/ToneActions.js:417 -#: js/ToneActions.js:456 -#: js/timbre.js:782 -msgid "Unable to use synth due to existing oscillator" +#: js/blocks/ToneBlocks.js:284 +#.TRANS: partials are weighted components in a harmonic series +msgid "Partial weight must be between 0 and 1." msgstr "" -#: js/ToneActions.js:388 -#: js/ToneActions.js:427 -msgid "The input cannot be negative." +#: js/blocks/ToneBlocks.js:297 +#.TRANS: partials are weighted components in a harmonic series +msgid "Partial block should be used inside of a Weighted-partials block." msgstr "" -#: js/DictActions.js:75 -#: js/DictActions.js:153 -#: js/DictActions.js:188 -msgid "font" +#: js/blocks/ToneBlocks.js:325 +#.TRANS: partials are weighted components in a harmonic series +msgid "weighted partials" msgstr "" -#: js/musicutils.js:363 -#: js/musicutils.js:471 -#: js/pitchdrummatrix.js:151 -#: js/musickeyboard.js:2563 -msgid "rest" +#: js/blocks/ToneBlocks.js:383 +msgid "The Harmonic block will add harmonics to the contained notes." msgstr "" -#: js/musicutils.js:565 -#.TRANS: ordinal number. Please keep exactly one space between each number. -msgid "1st 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th" +#: js/blocks/ToneBlocks.js:390 +#.TRANS: A harmonic is an overtone. +msgid "harmonic" msgstr "" -#: js/musicutils.js:629 -#: js/musicutils.js:812 -#: js/musicutils.js:911 -#.TRANS: augmented is a music term related to intervals -msgid "augmented" +#: js/blocks/ToneBlocks.js:431 +msgid "The Distortion block adds distortion to the pitch." msgstr "" -#: js/musicutils.js:631 -#: js/musicutils.js:813 -#: js/musicutils.js:910 -#.TRANS: diminished is a music term related to intervals and mode -msgid "diminished" +#: js/blocks/ToneBlocks.js:438 +#: js/widgets/timbre.js:2100 +#.TRANS: distortion is an alteration in the sound +msgid "distortion" msgstr "" -#: js/musicutils.js:639 -#.TRANS: twelve semi-tone scale for music -msgid "chromatic" +#: js/blocks/ToneBlocks.js:487 +msgid "The Tremolo block adds a wavering effect." msgstr "" -#: js/musicutils.js:640 -msgid "algerian" +#: js/blocks/ToneBlocks.js:495 +#: js/widgets/timbre.js:2092 +#.TRANS: a wavering effect in a musical tone +msgid "tremolo" msgstr "" -#: js/musicutils.js:641 -msgid "spanish" +#: js/blocks/ToneBlocks.js:500 +#: js/blocks/ToneBlocks.js:569 +#: js/blocks/ToneBlocks.js:630 +#: js/blocks/ToneBlocks.js:689 +#: js/widgets/timbre.js:2134 +#: js/widgets/timbre.js:2222 +#: js/widgets/timbre.js:2317 +#: js/widgets/timbre.js:2419 +#.TRANS: rate at which tremolo wavers +msgid "rate" msgstr "" -#: js/musicutils.js:643 -#.TRANS: modal scale in music -msgid "octatonic" +#: js/blocks/ToneBlocks.js:502 +#: js/blocks/ToneBlocks.js:630 +#: js/widgets/timbre.js:2137 +#: js/widgets/timbre.js:2328 +#.TRANS: amplitude of tremolo waver +msgid "depth" msgstr "" -#: js/musicutils.js:645 -#.TRANS: harmonic major scale in music -msgid "harmonic major" +#: js/blocks/ToneBlocks.js:559 +msgid "The Phaser block adds a sweeping sound." msgstr "" -#: js/musicutils.js:647 -#.TRANS: natural minor scales in music -msgid "natural minor" +#: js/blocks/ToneBlocks.js:566 +#: js/widgets/timbre.js:2098 +#.TRANS: alter the phase of the sound +msgid "phaser" msgstr "" -#: js/musicutils.js:649 -#.TRANS: harmonic minor scale in music -msgid "harmonic minor" +#: js/blocks/ToneBlocks.js:569 +#: js/turtleactions/IntervalsActions.js:114 +#: js/widgets/timbre.js:2422 +msgid "octaves" msgstr "" -#: js/musicutils.js:651 -#.TRANS: melodic minor scale in music -msgid "melodic minor" +#: js/blocks/ToneBlocks.js:569 +#: js/widgets/timbre.js:2425 +msgid "base frequency" msgstr "" -#: js/musicutils.js:655 -#.TRANS: modal scale for music -msgid "dorian" +#: js/blocks/ToneBlocks.js:619 +msgid "The Chorus block adds a chorus effect." msgstr "" -#: js/musicutils.js:657 -#.TRANS: modal scale for music -msgid "phrygian" +#: js/blocks/ToneBlocks.js:627 +#: js/widgets/timbre.js:2096 +#.TRANS: musical effect to simulate a choral sound +msgid "chorus" msgstr "" -#: js/musicutils.js:659 -#.TRANS: modal scale for music -msgid "lydian" +#: js/blocks/ToneBlocks.js:630 +msgid "delay" msgstr "" -#: js/musicutils.js:661 -#.TRANS: modal scale for music -msgid "mixolydian" +#: js/blocks/ToneBlocks.js:678 +msgid "The Vibrato block adds a rapid, slight variation in pitch." msgstr "" -#: js/musicutils.js:665 -#.TRANS: modal scale for music -msgid "locrian" +#: js/blocks/ToneBlocks.js:686 +#: js/widgets/timbre.js:2094 +#.TRANS: a rapid, slight variation in pitch +msgid "vibrato" msgstr "" -#: js/musicutils.js:667 -#.TRANS: minor jazz scale for music -msgid "jazz minor" +#: js/blocks/ToneBlocks.js:689 +#: js/widgets/timbre.js:2221 +msgid "intensity" msgstr "" -#: js/musicutils.js:669 -#.TRANS: bebop scale for music -msgid "bebop" +#: js/blocks/ToneBlocks.js:733 +#.TRANS: select synthesizer +msgid "set synth" msgstr "" -#: js/musicutils.js:670 -msgid "arabic" +#: js/blocks/ToneBlocks.js:804 +msgid "synth name" msgstr "" -#: js/musicutils.js:671 -msgid "byzantine" +#: js/blocks/ToneBlocks.js:842 +msgid "set default instrument" msgstr "" -#: js/musicutils.js:673 -#.TRANS: musical scale for music by Verdi -msgid "enigmatic" +#: js/blocks/ToneBlocks.js:895 +#: js/blocks/ToneBlocks.js:943 +#.TRANS: set the characteristics of a custom instrument +msgid "set instrument" msgstr "" -#: js/musicutils.js:674 -msgid "ethiopian" +#: js/blocks/ToneBlocks.js:898 +#: js/blocks/ToneBlocks.js:926 +#: js/blocks/ToneBlocks.js:932 +msgid "The Set instrument block selects a voice for the synthesizer," msgstr "" -#: js/musicutils.js:676 -#.TRANS: Ethiopic scale for music -msgid "geez" +#: js/blocks/ToneBlocks.js:900 +#: js/blocks/ToneBlocks.js:934 +msgid "eg guitar piano violin or cello." msgstr "" -#: js/musicutils.js:677 -msgid "hindu" +#: js/blocks/ToneBlocks.js:1015 +msgid "Import a sound file to use as an instrument and set its pitch center." msgstr "" -#: js/musicutils.js:678 -msgid "hungarian" +#: js/blocks/ToneBlocks.js:1110 +msgid "Upload a sound file to connect with the sample block." msgstr "" -#: js/musicutils.js:680 -#.TRANS: minor Romanian scale for music -msgid "romanian minor" +#: js/blocks/VolumeBlocks.js:35 +msgid "synth volume" msgstr "" -#: js/musicutils.js:681 -msgid "spanish gypsy" +#: js/blocks/VolumeBlocks.js:39 +msgid "The Synth volume block returns the current volume of the current synthesizer." msgstr "" -#: js/musicutils.js:683 -#.TRANS: musical scale for Mid-Eastern music -msgid "maqam" +#: js/blocks/VolumeBlocks.js:105 +msgid "master volume" msgstr "" -#: js/musicutils.js:685 -#.TRANS: minor blues scale for music -msgid "minor blues" +#: js/blocks/VolumeBlocks.js:109 +msgid "The Master volume block returns the master volume." msgstr "" -#: js/musicutils.js:687 -#.TRANS: major blues scale for music -msgid "major blues" +#: js/blocks/VolumeBlocks.js:355 +#: js/blocks/VolumeBlocks.js:524 +msgid "set synth volume" msgstr "" -#: js/musicutils.js:688 -msgid "whole tone" +#: js/blocks/VolumeBlocks.js:362 +#: js/blocks/VolumeBlocks.js:545 +msgid "synth" msgstr "" -#: js/musicutils.js:690 -#.TRANS: pentatonic is a general term that means "five note scale". This scale is typically known as "minor pentatonic" -msgid "minor pentatonic" +#: js/blocks/VolumeBlocks.js:403 +#: js/blocks/VolumeBlocks.js:577 +#: js/blocks/VolumeBlocks.js:740 +#: js/turtleactions/VolumeActions.js:173 +msgid "Setting volume to 0." msgstr "" -#: js/musicutils.js:692 -#.TRANS: pentatonic is a general term that means "five note scale". This scale is typically known as "major pentatonic" -msgid "major pentatonic" +#: js/blocks/VolumeBlocks.js:440 +msgid "Synth not found" msgstr "" -#: js/musicutils.js:693 -msgid "chinese" +#: js/blocks/VolumeBlocks.js:494 +msgid "set drum volume" msgstr "" -#: js/musicutils.js:694 -msgid "egyptian" +#: js/blocks/VolumeBlocks.js:530 +msgid "The Set synth volume block will change the volume of a particular synth," msgstr "" -#: js/musicutils.js:696 -#.TRANS: https://en.wikipedia.org/wiki/Hirajoshi_scale NOTE: There are three different versions of this scale -msgid "hirajoshi" +#: js/blocks/VolumeBlocks.js:532 +msgid "eg guitar violin snare drum etc." msgstr "" -#: js/musicutils.js:697 -msgid "Japan" +#: js/blocks/VolumeBlocks.js:534 +msgid "The default volume is 50." msgstr "" -#: js/musicutils.js:699 -#.TRANS: https://en.wikipedia.org/wiki/In_scale and https://en.wikipedia.org/wiki/Sakura_Sakura -msgid "in" +#: js/blocks/VolumeBlocks.js:536 +msgid "The range is 0 for silence to 100 for full volume." msgstr "" -#: js/musicutils.js:701 -#.TRANS: https://en.wikipedia.org/wiki/Miny%C5%8D_scale -msgid "minyo" +#: js/blocks/VolumeBlocks.js:597 +msgid "set panning" msgstr "" -#: js/musicutils.js:703 -#.TRANS: Italian mathematician -msgid "fibonacci" +#: js/blocks/VolumeBlocks.js:603 +msgid "The Set Panning block sets the panning for all synthesizers." msgstr "" -#: js/musicutils.js:708 -#: js/musicutils.js:1106 -#.TRANS: lowpass filter -msgid "lowpass" +#: js/blocks/VolumeBlocks.js:625 +msgid "Warning: Sound is coming out from only the left or right side." msgstr "" -#: js/musicutils.js:710 -#: js/musicutils.js:1107 -#.TRANS: bandpass filter -msgid "bandpass" +#: js/blocks/VolumeBlocks.js:647 +#: js/blocks/VolumeBlocks.js:695 +msgid "set master volume" msgstr "" -#: js/musicutils.js:712 -#: js/musicutils.js:1108 -#.TRANS: high-shelf filter -msgid "highshelf" +#: js/blocks/VolumeBlocks.js:653 +msgid "The Set master volume block sets the volume for all synthesizers." msgstr "" -#: js/musicutils.js:714 -#: js/musicutils.js:1109 -#.TRANS: low-shelf filter -msgid "lowshelf" +#: js/blocks/VolumeBlocks.js:784 +msgid "The Set relative volume block changes the volume of the contained notes." msgstr "" -#: js/musicutils.js:716 -#: js/musicutils.js:1110 -#.TRANS: notch-shelf filter -msgid "notch" +#: js/blocks/VolumeBlocks.js:791 +msgid "set relative volume" msgstr "" -#: js/musicutils.js:718 -#: js/musicutils.js:1111 -#.TRANS: all-pass filter -msgid "allpass" +#: js/blocks/VolumeBlocks.js:857 +msgid "decrescendo" msgstr "" -#: js/musicutils.js:720 -#: js/musicutils.js:1112 -#.TRANS: peaking filter -msgid "peaking" +#: js/blocks/VolumeBlocks.js:921 +msgid "crescendo" msgstr "" -#: js/musicutils.js:731 -#: js/synthutils.js:58 -#.TRANS: musical instrument -msgid "violin" +#: js/blocks/WidgetBlocks.js:81 +#.TRANS: sound envelope (ADSR) +msgid "envelope" msgstr "" -#: js/musicutils.js:732 -#: js/synthutils.js:60 -#.TRANS: viola musical instrument -msgid "viola" +#: js/blocks/WidgetBlocks.js:89 +#.TRANS: Attack time is the time taken for initial run-up of level from nil to peak, beginning when the key is first pressed. +msgid "attack" msgstr "" -#: js/musicutils.js:733 -#: js/synthutils.js:98 -#.TRANS: xylophone musical instrument -msgid "xylophone" +#: js/blocks/WidgetBlocks.js:91 +#.TRANS: Decay time is the time taken for the subsequent run down from the attack level to the designated sustain level. +msgid "decay" msgstr "" -#: js/musicutils.js:734 -#: js/synthutils.js:120 -#.TRANS: vibraphone musical instrument -msgid "vibraphone" +#: js/blocks/WidgetBlocks.js:93 +#.TRANS: Sustain level is the level during the main sequence of the sound's duration, until the key is released. +msgid "sustain" msgstr "" -#: js/musicutils.js:735 -#: js/synthutils.js:62 -#.TRANS: musical instrument -msgid "cello" +#: js/blocks/WidgetBlocks.js:95 +#.TRANS: Release time is the time taken for the level to decay from the sustain level to zero after the key is released. +msgid "release" msgstr "" -#: js/musicutils.js:737 -#: js/synthutils.js:66 -#.TRANS: viola musical instrument -msgid "double bass" +#: js/blocks/WidgetBlocks.js:113 +msgid "Attack value should be from 0 to 100." msgstr "" -#: js/musicutils.js:738 -#: js/synthutils.js:68 -#: js/rhythmruler.js:2119 -#.TRANS: musical instrument -msgid "guitar" +#: js/blocks/WidgetBlocks.js:116 +msgid "Decay value should be from 0 to 100." msgstr "" -#: js/musicutils.js:739 -#: js/synthutils.js:70 -#.TRANS: musical instrument -msgid "acoustic guitar" +#: js/blocks/WidgetBlocks.js:119 +msgid "Sustain value should be from 0 to 100." msgstr "" -#: js/musicutils.js:740 -#: js/synthutils.js:72 -#.TRANS: musical instrument -msgid "flute" +#: js/blocks/WidgetBlocks.js:122 +msgid "Release value should be from 0-100." msgstr "" -#: js/musicutils.js:741 -#: js/synthutils.js:74 -#.TRANS: musical instrument -msgid "clarinet" +#: js/blocks/WidgetBlocks.js:140 +msgid "You are adding multiple envelope blocks." msgstr "" -#: js/musicutils.js:742 -#: js/synthutils.js:76 -#.TRANS: musical instrument -msgid "saxophone" +#: js/blocks/WidgetBlocks.js:171 +#.TRANS: a filter removes some unwanted components from a signal +msgid "filter" msgstr "" -#: js/musicutils.js:743 -#: js/synthutils.js:78 -#.TRANS: musical instrument -msgid "tuba" +#: js/blocks/WidgetBlocks.js:181 +#: js/widgets/timbre.js:1818 +#.TRANS: rolloff is the steepness of a change in frequency. +msgid "rolloff" msgstr "" -#: js/musicutils.js:744 -#: js/synthutils.js:80 -#.TRANS: musical instrument -msgid "trumpet" +#: js/blocks/WidgetBlocks.js:213 +#.TRANS: rolloff is the steepness of a change in frequency. +msgid "Rolloff value should be either -12, -24, -48, or -96 decibels/octave." msgstr "" -#: js/musicutils.js:745 -#: js/synthutils.js:82 -#.TRANS: musical instrument -msgid "oboe" +#: js/blocks/WidgetBlocks.js:252 +msgid "The Temperament tool is used to define custom tuning." msgstr "" -#: js/musicutils.js:746 -#: js/synthutils.js:84 -#.TRANS: musical instrument -msgid "trombone" +#: js/blocks/WidgetBlocks.js:332 +#: js/blocks/WidgetBlocks.js:1573 +#: js/widgets/sampler.js:547 +msgid "Upload a sample and adjust its pitch center." msgstr "" -#: js/musicutils.js:747 -#: js/synthutils.js:100 -#.TRANS: polytone synthesizer -msgid "electronic synth" +#: js/blocks/WidgetBlocks.js:339 +#.TRANS: the speed at music is should be played. +msgid "sampler" msgstr "" -#: js/musicutils.js:748 -#: js/synthutils.js:102 -#.TRANS: simple monotone synthesizer -msgid "simple 1" +#: js/blocks/WidgetBlocks.js:517 +msgid "The Meter block opens a tool to select strong beats for the meter." msgstr "" -#: js/musicutils.js:749 -msgid "simple 2" +#: js/blocks/WidgetBlocks.js:573 +msgid "The oscilloscope block opens a tool to visualize waveforms." msgstr "" -#: js/musicutils.js:750 -msgid "simple 3" +#: js/blocks/WidgetBlocks.js:578 +msgid "oscilloscope" msgstr "" -#: js/musicutils.js:751 -msgid "simple 4" +#: js/blocks/WidgetBlocks.js:645 +msgid "The Custom mode block opens a tool to explore musical mode (the spacing of the notes in a scale)." msgstr "" -#: js/musicutils.js:753 -#: js/synthutils.js:49 -#.TRANS: brown noise synthesizer -msgid "brown noise" +#: js/blocks/WidgetBlocks.js:651 +#.TRANS: musical mode is the pattern of half-steps in an octave, e.g., Major or Minor modes +msgid "custom mode" msgstr "" -#: js/musicutils.js:754 -#: js/synthutils.js:51 -#.TRANS: pink noise synthesizer -msgid "pink noise" +#: js/blocks/WidgetBlocks.js:700 +msgid "The Tempo block opens a metronome to visualize the beat." msgstr "" -#: js/musicutils.js:756 -#: js/synthutils.js:127 -#: js/rhythmruler.js:1670 -#: js/rhythmruler.js:1928 -#.TRANS: musical instrument -msgid "snare drum" +#: js/blocks/WidgetBlocks.js:762 +msgid "The Arpeggio Widget is used to compose chord sequences." msgstr "" -#: js/musicutils.js:757 -#: js/synthutils.js:129 -#.TRANS: musical instrument -msgid "kick drum" +#: js/blocks/WidgetBlocks.js:837 +msgid "The Pitch drum matrix is used to map pitches to drum sounds." msgstr "" -#: js/musicutils.js:758 -#: js/synthutils.js:131 -#.TRANS: musical instrument -msgid "tom tom" +#: js/blocks/WidgetBlocks.js:842 +#.TRANS: makes a mapping between pitches and drum sounds +msgid "pitch-drum mapper" msgstr "" -#: js/musicutils.js:759 -#: js/synthutils.js:133 -#.TRANS: musical instrument -msgid "floor tom" +#: js/blocks/WidgetBlocks.js:891 +msgid "You must have at least one pitch block and one drum block in the matrix." msgstr "" -#: js/musicutils.js:760 -#: js/synthutils.js:135 -#.TRANS: musical instrument -msgid "bass drum" +#: js/blocks/WidgetBlocks.js:920 +msgid "The Pitch slider tool to is used to generate pitches at selected frequencies." msgstr "" -#: js/musicutils.js:761 -#: js/synthutils.js:137 -#.TRANS: a drum made from an inverted cup -msgid "cup drum" +#: js/blocks/WidgetBlocks.js:925 +#.TRANS: widget to generate pitches using a slider +msgid "pitch slider" msgstr "" -#: js/musicutils.js:762 -#: js/synthutils.js:139 -#.TRANS: musical instrument -msgid "darbuka drum" +#: js/blocks/WidgetBlocks.js:977 +msgid "chromatic keyboard" msgstr "" -#: js/musicutils.js:763 -#: js/synthutils.js:143 -#.TRANS: musical instrument -msgid "hi hat" +#: js/blocks/WidgetBlocks.js:1011 +#: js/blocks/WidgetBlocks.js:1077 +#.TRANS: widget to generate pitches using a slider +msgid "music keyboard" msgstr "" -#: js/musicutils.js:764 -#: js/synthutils.js:145 -#.TRANS: a small metal bell -msgid "ride bell" +#: js/blocks/WidgetBlocks.js:1062 +#: js/blocks/WidgetBlocks.js:1069 +msgid "The Music keyboard block opens a piano keyboard that can be used to create notes." msgstr "" -#: js/musicutils.js:765 -#: js/synthutils.js:147 -#.TRANS: musical instrument -msgid "cow bell" +#: js/blocks/WidgetBlocks.js:1128 +msgid "The Pitch staircase tool to is used to generate pitches from a given ratio." msgstr "" -#: js/musicutils.js:766 -msgid "japanese drum" +#: js/blocks/WidgetBlocks.js:1135 +#.TRANS: generate a progressive sequence of pitches +msgid "pitch staircase" msgstr "" -#: js/musicutils.js:767 -#: js/synthutils.js:153 -#.TRANS: musical instrument -msgid "japanese bell" +#: js/blocks/WidgetBlocks.js:1222 +msgid "The Rhythm Maker block opens a tool to create drum machines." msgstr "" -#: js/musicutils.js:768 -#: js/synthutils.js:149 -#.TRANS: musical instrument -msgid "triangle bell" +#: js/blocks/WidgetBlocks.js:1291 +msgid "G major scale" msgstr "" -#: js/musicutils.js:769 -#: js/synthutils.js:151 -#.TRANS: musical instrument -msgid "finger cymbals" +#: js/blocks/WidgetBlocks.js:1326 +msgid "C major scale" msgstr "" -#: js/musicutils.js:770 -#: js/synthutils.js:155 -#.TRANS: a musically tuned set of bells -msgid "chime" +#: js/blocks/WidgetBlocks.js:1366 +msgid "The Phrase Maker block opens a tool to create musical phrases." msgstr "" -#: js/musicutils.js:771 -#: js/synthutils.js:157 -#.TRANS: a musical instrument -msgid "gong" +#: js/blocks/WidgetBlocks.js:1373 +#.TRANS: assigns pitch to a sequence of beats to generate a melody +msgid "phrase maker" msgstr "" -#: js/musicutils.js:772 -#: js/synthutils.js:159 -#.TRANS: sound effect -msgid "clang" +#: js/blocks/WidgetBlocks.js:1444 +msgid "You must have at least one pitch block and one rhythm block in the matrix." msgstr "" -#: js/musicutils.js:773 -#: js/synthutils.js:161 -#.TRANS: sound effect -msgid "crash" +#: js/blocks/WidgetBlocks.js:1503 +msgid "The Status block opens a tool for inspecting the status of Music Blocks as it is running." msgstr "" -#: js/musicutils.js:774 -#: js/synthutils.js:163 -#.TRANS: sound effect -msgid "bottle" +#: js/blocks/WidgetBlocks.js:1580 +#.TRANS: AI-generated music +msgid "aimusic" msgstr "" -#: js/musicutils.js:775 -#: js/synthutils.js:165 -#.TRANS: sound effect -msgid "clap" +#: js/turtleactions/MeterActions.js:101 +#: js/turtleactions/MeterActions.js:139 +msgid "beats per minute must be greater than" msgstr "" -#: js/musicutils.js:776 -#: js/synthutils.js:167 -#.TRANS: sound effect -msgid "slap" +#: js/turtleactions/MeterActions.js:111 +#: js/turtleactions/MeterActions.js:149 +msgid "maximum" msgstr "" -#: js/musicutils.js:777 -#: js/synthutils.js:169 -#.TRANS: sound effect -msgid "splash" +#: js/turtleactions/MeterActions.js:117 +#: js/turtleactions/MeterActions.js:155 +msgid "beats per minute is" msgstr "" -#: js/musicutils.js:778 -#: js/synthutils.js:171 -#.TRANS: sound effect -msgid "bubbles" +#: js/turtleactions/DictActions.js:75 +#: js/turtleactions/DictActions.js:142 +#: js/turtleactions/DictActions.js:172 +msgid "font" msgstr "" -#: js/musicutils.js:779 -#: js/synthutils.js:173 -#.TRANS: sound effect -msgid "raindrop" +#: js/turtleactions/DictActions.js:255 +msgid "Dictionary with this name does not exist" msgstr "" -#: js/musicutils.js:780 -#: js/synthutils.js:175 -#.TRANS: animal sound effect -msgid "cat" +#: js/turtleactions/DictActions.js:259 +msgid "Key with this name does not exist in " msgstr "" -#: js/musicutils.js:781 -#: js/synthutils.js:177 -#.TRANS: animal sound effect -msgid "cricket" +#: js/turtleactions/DrumActions.js:227 +msgid "Noise Block: Did you mean to use a Note block?" msgstr "" -#: js/musicutils.js:782 -#: js/synthutils.js:179 -#.TRANS: animal sound effect -msgid "dog" +#: js/turtleactions/IntervalsActions.js:113 +msgid "one" msgstr "" -#: js/musicutils.js:784 -#: js/synthutils.js:86 -#.TRANS: musical instrument -msgid "banjo" +#: js/turtleactions/IntervalsActions.js:113 +msgid "two" msgstr "" -#: js/musicutils.js:785 -#: js/synthutils.js:88 -#.TRANS: musical instrument -msgid "koto" +#: js/turtleactions/IntervalsActions.js:113 +msgid "three" msgstr "" -#: js/musicutils.js:786 -#: js/synthutils.js:90 -#.TRANS: musical instrument -msgid "dulcimer" +#: js/turtleactions/IntervalsActions.js:113 +msgid "four" msgstr "" -#: js/musicutils.js:787 -#: js/synthutils.js:92 -#.TRANS: musical instrument -msgid "electric guitar" +#: js/turtleactions/IntervalsActions.js:113 +msgid "five" msgstr "" -#: js/musicutils.js:788 -#: js/synthutils.js:94 -#.TRANS: musical instrument -msgid "bassoon" +#: js/turtleactions/IntervalsActions.js:113 +msgid "six" msgstr "" -#: js/musicutils.js:789 -#: js/synthutils.js:96 -#.TRANS: musical instrument -msgid "celeste" +#: js/turtleactions/IntervalsActions.js:113 +msgid "seven" msgstr "" -#: js/musicutils.js:791 -#: js/musicutils.js:1123 -#: js/musicutils.js:1131 -#: js/temperament.js:650 -#.TRANS: musical temperament -msgid "equal" +#: js/turtleactions/IntervalsActions.js:113 +msgid "eight" msgstr "" -#: js/musicutils.js:793 -#: js/musicutils.js:1125 -#: js/musicutils.js:1133 -#.TRANS: musical temperament -msgid "Pythagorean" +#: js/turtleactions/IntervalsActions.js:113 +msgid "nine" msgstr "" -#: js/musicutils.js:795 -#: js/musicutils.js:1124 -#: js/musicutils.js:1132 -#.TRANS: musical temperament -msgid "just intonation" +#: js/turtleactions/IntervalsActions.js:119 +msgid "a" msgstr "" -#: js/musicutils.js:797 -#: js/musicutils.js:1126 -#: js/musicutils.js:1127 -#: js/musicutils.js:1134 -#: js/musicutils.js:1135 -#.TRANS: musical temperament -msgid "meantone" +#: js/turtleactions/IntervalsActions.js:120 +msgid "below" msgstr "" -#: js/musicutils.js:814 -msgid "major 7th" +#: js/turtleactions/IntervalsActions.js:124 +msgid "above" msgstr "" -#: js/musicutils.js:815 -msgid "minor 7th" +#: js/turtleactions/IntervalsActions.js:131 +msgid "plus" msgstr "" -#: js/musicutils.js:816 -msgid "dominant 7th" +#: js/turtleactions/IntervalsActions.js:139 +msgid " below" msgstr "" -#: js/musicutils.js:817 -msgid "minor-major 7th" +#: js/turtleactions/IntervalsActions.js:257 +msgid "Adding missing pitch number 0." msgstr "" -#: js/musicutils.js:818 -msgid "fully-diminished 7th" +#: js/turtleactions/IntervalsActions.js:265 +msgid "Ignoring pitch numbers less than zero or greater than eleven." msgstr "" -#: js/musicutils.js:819 -msgid "half-diminished 7th" +#: js/turtleactions/IntervalsActions.js:271 +msgid "Ignoring duplicate pitch numbers." msgstr "" -#: js/musicutils.js:4379 -#: js/musicutils.js:4416 -msgid "current" +#: js/turtleactions/ToneActions.js:134 +msgid "Vibrato intensity must be between 1 and 100." msgstr "" -#: js/musicutils.js:4382 -#: js/musicutils.js:4407 -msgid "next" +#: js/turtleactions/ToneActions.js:139 +msgid "Vibrato rate must be greater than 0." msgstr "" -#: js/musicutils.js:4385 -#: js/musicutils.js:4412 -msgid "previous" +#: js/turtleactions/ToneActions.js:192 +#: js/turtleactions/ToneActions.js:265 +#.TRANS: Depth is the intesity of the tremolo or chorus effect. +msgid "Depth is out of range." msgstr "" -#: js/synthutils.js:104 -#.TRANS: simple monotone synthesizer -msgid "simple-2" +#: js/turtleactions/ToneActions.js:301 +msgid "Distortion must be from 0 to 100." msgstr "" -#: js/synthutils.js:106 -#.TRANS: simple monotone synthesizer -msgid "simple-3" +#: js/turtleactions/ToneActions.js:332 +#.TRANS: partials components in a harmonic series +msgid "Partial must be greater than or equal to 0." msgstr "" -#: js/synthutils.js:108 -#.TRANS: simple monotone synthesizer -msgid "simple-4" +#: js/turtleactions/ToneActions.js:378 +#: js/turtleactions/ToneActions.js:417 +#: js/turtleactions/ToneActions.js:456 +#: js/widgets/timbre.js:782 +msgid "Unable to use synth due to existing oscillator" msgstr "" -#: js/synthutils.js:141 -#.TRANS: musical instrument -msgid "taiko" +#: js/turtleactions/ToneActions.js:388 +#: js/turtleactions/ToneActions.js:427 +msgid "The input cannot be negative." msgstr "" -#: js/modewidget.js:86 -#: js/modewidget.js:88 -#: js/modewidget.js:642 -#: js/modewidget.js:644 -#: js/modewidget.js:712 -#: js/modewidget.js:714 -#: js/temperament.js:2078 -#: js/rhythmruler.js:189 -#: js/rhythmruler.js:1410 -#: js/rhythmruler.js:1412 -#: js/rhythmruler.js:1435 -#: js/rhythmruler.js:1437 -#: js/meterwidget.js:89 -#: js/meterwidget.js:91 +#: js/widgets/modewidget.js:86 +#: js/widgets/modewidget.js:88 +#: js/widgets/modewidget.js:642 +#: js/widgets/modewidget.js:644 +#: js/widgets/modewidget.js:712 +#: js/widgets/modewidget.js:714 +#: js/widgets/meterwidget.js:194 +#: js/widgets/meterwidget.js:196 +#: js/widgets/temperament.js:2236 +#: js/widgets/rhythmruler.js:457 +#: js/widgets/rhythmruler.js:1790 +#: js/widgets/rhythmruler.js:1792 +#: js/widgets/rhythmruler.js:1816 +#: js/widgets/rhythmruler.js:1818 msgid "Play all" msgstr "" -#: js/modewidget.js:115 -#: js/pitchstaircase.js:641 -#: js/phrasemaker.js:339 -#: js/pitchdrummatrix.js:94 -#: js/pitchslider.js:125 -#: js/temperament.js:2083 -#: js/musickeyboard.js:530 -#: js/timbre.js:756 -#: js/meterwidget.js:124 -#: js/arpeggio.js:103 +#: js/widgets/modewidget.js:115 +#: js/widgets/meterwidget.js:229 +#: js/widgets/pitchdrummatrix.js:166 +#: js/widgets/pitchslider.js:125 +#: js/widgets/pitchstaircase.js:641 +#: js/widgets/temperament.js:2244 +#: js/widgets/timbre.js:756 +#: js/widgets/arpeggio.js:103 +#: js/widgets/musickeyboard.js:688 +#: js/widgets/phrasemaker.js:550 msgid "Save" msgstr "" -#: js/modewidget.js:121 -#: js/pitchstaircase.js:686 -#: js/phrasemaker.js:356 -#: js/pitchdrummatrix.js:109 -#: js/musickeyboard.js:534 -#: js/rhythmruler.js:269 -#: js/arpeggio.js:118 +#: js/widgets/modewidget.js:121 +#: js/widgets/pitchdrummatrix.js:181 +#: js/widgets/pitchstaircase.js:686 +#: js/widgets/arpeggio.js:118 +#: js/widgets/musickeyboard.js:696 +#: js/widgets/phrasemaker.js:567 +#: js/widgets/rhythmruler.js:601 #.TRANS: clear all subdivisions from the ruler. msgid "Clear" msgstr "" -#: js/modewidget.js:127 +#: js/widgets/modewidget.js:127 msgid "Rotate counter clockwise" msgstr "" -#: js/modewidget.js:133 +#: js/widgets/modewidget.js:133 msgid "Rotate clockwise" msgstr "" -#: js/modewidget.js:139 +#: js/widgets/modewidget.js:139 msgid "Invert" msgstr "" -#: js/modewidget.js:145 -#: js/pitchstaircase.js:678 -#: js/rhythmruler.js:258 -#: js/timbre.js:963 +#: js/widgets/modewidget.js:145 +#: js/widgets/pitchstaircase.js:678 +#: js/widgets/timbre.js:963 +#: js/widgets/rhythmruler.js:578 msgid "Undo" msgstr "" -#: js/modewidget.js:163 +#: js/widgets/modewidget.js:163 #.TRANS: A circle of notes represents the musical mode. msgid "Click in the circle to select notes for the mode." msgstr "" -#: js/modewidget.js:1017 -#: js/pitchstaircase.js:580 -#: js/phrasemaker.js:4855 -#: js/temperament.js:1754 -#: js/rhythmruler.js:1865 -#: js/rhythmruler.js:2081 -#: js/tempo.js:414 +#: js/widgets/modewidget.js:1017 +#: js/widgets/pitchstaircase.js:580 +#: js/widgets/temperament.js:1929 +#: js/widgets/tempo.js:414 +#: js/widgets/phrasemaker.js:5356 +#: js/widgets/rhythmruler.js:2254 +#: js/widgets/rhythmruler.js:2472 msgid "New action block generated!" msgstr "" -#: js/oscilloscope.js:79 -msgid "Zoom In" -msgstr "" - -#: js/oscilloscope.js:88 -msgid "Zoom Out" -msgstr "" - -#: js/pitchstaircase.js:624 -msgid "Play chord" -msgstr "" - -#: js/pitchstaircase.js:632 -msgid "Play scale" +#: js/widgets/meterwidget.js:275 +msgid "Reset" msgstr "" -#: js/pitchstaircase.js:696 -msgid "Click on a note to create a new step." +#: js/widgets/meterwidget.js:301 +msgid "Click in the circle to select strong beats for the meter." msgstr "" -#: js/phrasemaker.js:363 -msgid "Export" +#: js/widgets/oscilloscope.js:79 +msgid "Zoom In" msgstr "" -#: js/phrasemaker.js:370 -msgid "Sort" +#: js/widgets/oscilloscope.js:88 +msgid "Zoom Out" msgstr "" -#: js/phrasemaker.js:373 -#: js/musickeyboard.js:559 -msgid "Add note" +#: js/widgets/pitchdrummatrix.js:356 +#: js/widgets/pitchdrummatrix.js:752 +msgid "Click in the grid to map notes to drums." msgstr "" -#: js/phrasemaker.js:764 -msgid "Click on the table to add notes." +#: js/widgets/pitchslider.js:103 +msgid "Move up" msgstr "" -#: js/phrasemaker.js:2414 -#: js/phrasemaker.js:2543 -msgid "tuplet value" +#: js/widgets/pitchslider.js:114 +msgid "Move down" msgstr "" -#: js/pitchdrummatrix.js:270 -#: js/pitchdrummatrix.js:639 -msgid "Click in the grid to map notes to drums." +#: js/widgets/pitchslider.js:136 +msgid "Click on the slider to create a note block." msgstr "" -#: js/pitchslider.js:103 -msgid "Move up" +#: js/widgets/pitchstaircase.js:624 +msgid "Play chord" msgstr "" -#: js/pitchslider.js:114 -msgid "Move down" +#: js/widgets/pitchstaircase.js:632 +msgid "Play scale" msgstr "" -#: js/pitchslider.js:136 -msgid "Click on the slider to create a note block." +#: js/widgets/pitchstaircase.js:696 +msgid "Click on a note to create a new step." msgstr "" -#: js/temperament.js:215 +#: js/widgets/temperament.js:321 msgid "back to 2:1 octave space" msgstr "" -#: js/temperament.js:323 +#: js/widgets/temperament.js:447 msgid "edit" msgstr "" -#: js/temperament.js:330 -#: js/temperament.js:332 -#: js/temperament.js:1336 -#: js/temperament.js:1338 +#: js/widgets/temperament.js:454 +#: js/widgets/temperament.js:456 +#: js/widgets/temperament.js:1493 +#: js/widgets/temperament.js:1495 msgid "close" msgstr "" -#: js/temperament.js:423 -#: js/temperament.js:736 -#: js/temperament.js:743 -#: js/temperament.js:845 -#: js/temperament.js:935 -#: js/temperament.js:942 -#: js/temperament.js:1015 -#: js/temperament.js:1284 -#: js/temperament.js:1354 -#: js/temperament.js:1430 +#: js/widgets/temperament.js:552 +#: js/widgets/temperament.js:877 +#: js/widgets/temperament.js:884 +#: js/widgets/temperament.js:986 +#: js/widgets/temperament.js:1080 +#: js/widgets/temperament.js:1087 +#: js/widgets/temperament.js:1160 +#: js/widgets/temperament.js:1433 +#: js/widgets/temperament.js:1511 +#: js/widgets/temperament.js:1596 msgid "done" msgstr "" -#: js/temperament.js:477 -#: js/temperament.js:482 -#: js/temperament.js:918 +#: js/widgets/temperament.js:610 +#: js/widgets/temperament.js:615 +#: js/widgets/temperament.js:1063 msgid "ratio" msgstr "" -#: js/temperament.js:483 +#: js/widgets/temperament.js:616 msgid "interval" msgstr "" -#: js/temperament.js:611 +#: js/widgets/temperament.js:744 msgid "non scalar" msgstr "" -#: js/temperament.js:650 +#: js/widgets/temperament.js:787 msgid "ratios" msgstr "" -#: js/temperament.js:650 +#: js/widgets/temperament.js:787 msgid "arbitrary" msgstr "" -#: js/temperament.js:719 +#: js/widgets/temperament.js:860 msgid "number of divisions" msgstr "" -#: js/temperament.js:741 -#: js/temperament.js:858 -#: js/temperament.js:940 -#: js/temperament.js:1033 +#: js/widgets/temperament.js:882 +#: js/widgets/temperament.js:999 +#: js/widgets/temperament.js:1085 +#: js/widgets/temperament.js:1178 msgid "preview" msgstr "" -#: js/temperament.js:788 +#: js/widgets/temperament.js:929 msgid "The Number of divisions is too large." msgstr "" -#: js/temperament.js:921 +#: js/widgets/temperament.js:1066 msgid "recursion" msgstr "" -#: js/temperament.js:1450 +#: js/widgets/temperament.js:1616 msgid "The octave ratio has changed. This changes temperament significantly." msgstr "" -#: js/temperament.js:2087 +#: js/widgets/temperament.js:2248 msgid "Table" msgstr "" -#: js/temperament.js:2185 +#: js/widgets/temperament.js:2356 msgid "Add pitches" msgstr "" -#: js/musickeyboard.js:570 -msgid "Metronome" +#: js/widgets/tempo.js:78 +#: js/widgets/tempo.js:97 +#: js/widgets/tempo.js:99 +#: js/widgets/aiwidget.js:134 +#: js/widgets/aiwidget.js:136 +#: js/widgets/rhythmruler.js:681 +#: js/widgets/rhythmruler.js:683 +#: js/widgets/rhythmruler.js:1864 +#: js/widgets/rhythmruler.js:1866 +#: js/widgets/sampler.js:180 +#: js/widgets/sampler.js:182 +msgid "Pause" msgstr "" -#: js/musickeyboard.js:1296 -#: plugins/rodi.rtp:193 -msgid "duration" +#: js/widgets/tempo.js:113 +msgid "Save tempo" msgstr "" -#: js/musickeyboard.js:2840 -msgid "New action blocks generated!" +#: js/widgets/tempo.js:144 +msgid "speed up" msgstr "" -#: js/musickeyboard.js:2841 -msgid "New action block generated" +#: js/widgets/tempo.js:150 +msgid "slow down" msgstr "" -#: js/musickeyboard.js:2984 -#: js/musickeyboard.js:2992 -msgid "MIDI device present." +#: js/widgets/tempo.js:194 +msgid "Adjust the tempo with the buttons." msgstr "" -#: js/musickeyboard.js:2995 -msgid "No MIDI device found." +#: js/widgets/tempo.js:261 +msgid "Please enter a number between 30 and 1000" msgstr "" -#: js/musickeyboard.js:3000 -msgid "Failed to get MIDI access in browser." +#: js/widgets/tempo.js:268 +#: js/widgets/tempo.js:271 +msgid "The beats per minute must be between 30 and 1000." msgstr "" -#: js/rhythmruler.js:202 -msgid "Save rhythms" +#: js/widgets/tempo.js:287 +msgid "The beats per minute must be below 1000." msgstr "" -#: js/rhythmruler.js:222 -msgid "Save drum machine" +#: js/widgets/tempo.js:303 +msgid "The beats per minute must be above 30" msgstr "" -#: js/rhythmruler.js:263 -#.TRANS: user can tap out a rhythm by clicking on a ruler. -msgid "Tap a rhythm" +#: js/widgets/timbre.js:766 +msgid "Synthesizer" msgstr "" -#: js/rhythmruler.js:342 -#: js/rhythmruler.js:344 -#: js/rhythmruler.js:1481 -#: js/rhythmruler.js:1483 -#: js/sampler.js:110 -#: js/sampler.js:112 -#: js/tempo.js:78 -#: js/tempo.js:97 -#: js/tempo.js:99 -msgid "Pause" +#: js/widgets/timbre.js:789 +msgid "Oscillator" msgstr "" -#: js/rhythmruler.js:478 -msgid "Click on the ruler to divide it." +#: js/widgets/timbre.js:840 +msgid "Envelope" msgstr "" -#: js/rhythmruler.js:603 -#: js/rhythmruler.js:605 -#: js/rhythmruler.js:804 -#: js/rhythmruler.js:806 -#: js/rhythmruler.js:1386 -#: js/rhythmruler.js:1388 -msgid "tap a rhythm" +#: js/widgets/timbre.js:886 +#: planet/js/GlobalTag.js:50 +#.TRANS: On the Planet, we use labels to tag projects. +msgid "Effects" msgstr "" -#: js/rhythmruler.js:1084 -msgid "Maximum value of 256 has been exceeded." +#: js/widgets/timbre.js:904 +msgid "Filter" msgstr "" -#: js/sampler.js:137 -msgid "Warning: Sample is bigger than 1MB." +#: js/widgets/timbre.js:946 +msgid "Add filter" msgstr "" -#: js/sampler.js:142 -msgid "Upload failed: Sample is not a .wav file." +#: js/widgets/timbre.js:987 +msgid "Click on buttons to open the timbre design tools." msgstr "" -#: js/sampler.js:164 -msgid "A new sample block was generated." +#: js/widgets/timbre.js:1273 +msgid "harmonicity" msgstr "" -#: js/sampler.js:255 -msgid "Upload sample" +#: js/widgets/timbre.js:1340 +#: js/widgets/timbre.js:1406 +msgid "modulation index" msgstr "" -#: js/sampler.js:306 -msgid "Save sample" +#: js/widgets/timbre.js:1484 +msgid "vibrato amount" msgstr "" -#: js/sampler.js:697 -#.TRANS: The reference tone is a sound used for comparison. -msgid "reference tone" +#: js/widgets/timbre.js:1919 +msgid "Filter already present." msgstr "" -#: js/tempo.js:113 -msgid "Save tempo" +#: js/widgets/timbre.js:2322 +msgid "delay (MS)" msgstr "" -#: js/tempo.js:144 -msgid "speed up" +#: js/widgets/timbre.js:2507 +msgid "distortion amount" msgstr "" -#: js/tempo.js:150 -msgid "slow down" +#: js/widgets/aiwidget.js:180 +#: js/widgets/sampler.js:227 +msgid "Warning: Sample is bigger than 1MB." msgstr "" -#: js/tempo.js:194 -msgid "Adjust the tempo with the buttons." +#: js/widgets/aiwidget.js:539 +msgid "New start block generated" msgstr "" -#: js/tempo.js:261 -msgid "Please enter a number between 30 and 1000" +#: js/widgets/aiwidget.js:541 +msgid "MIDI loading. This may take some time depending upon the number of notes in the track" msgstr "" -#: js/tempo.js:268 -#: js/tempo.js:271 -msgid "The beats per minute must be between 30 and 1000." +#: js/widgets/aiwidget.js:551 +#: js/widgets/sampler.js:254 +msgid "Upload failed: Sample is not a .wav file." msgstr "" -#: js/tempo.js:287 -msgid "The beats per minute must be below 1000." +#: js/widgets/aiwidget.js:679 +#: js/widgets/sampler.js:432 +msgid "Save sample" msgstr "" -#: js/tempo.js:303 -msgid "The beats per minute must be above 30" +#: js/widgets/aiwidget.js:701 +msgid "AI Music" msgstr "" -#: js/timbre.js:766 -msgid "Synthesizer" +#: js/widgets/arpeggio.js:239 +msgid "Click in the grid to add steps to the arpeggio." msgstr "" -#: js/timbre.js:789 -msgid "Oscillator" +#: js/widgets/help.js:95 +#: js/widgets/help.js:125 +#: js/widgets/help.js:146 +#: js/widgets/help.js:158 +#: js/widgets/help.js:376 +#: js/widgets/help.js:391 +msgid "Take a tour" msgstr "" -#: js/timbre.js:840 -msgid "Envelope" +#: js/widgets/musickeyboard.js:725 +#: js/widgets/phrasemaker.js:584 +msgid "Add note" msgstr "" -#: js/timbre.js:886 -#: js/GlobalTag.js:50 -#.TRANS: On the Planet, we use labels to tag projects. -msgid "Effects" +#: js/widgets/musickeyboard.js:744 +msgid "Metronome" +msgstr "" + +#: js/widgets/musickeyboard.js:1549 +#: plugins/rodi.rtp:193 +msgid "duration" +msgstr "" + +#: js/widgets/musickeyboard.js:3179 +msgid "New action blocks generated" +msgstr "" + +#: js/widgets/musickeyboard.js:3180 +msgid "New action block generated" msgstr "" -#: js/timbre.js:904 -msgid "Filter" +#: js/widgets/musickeyboard.js:3365 +#: js/widgets/musickeyboard.js:3373 +msgid "MIDI device present." msgstr "" -#: js/timbre.js:946 -msgid "Add filter" +#: js/widgets/musickeyboard.js:3376 +msgid "No MIDI device found." msgstr "" -#: js/timbre.js:987 -msgid "Click on buttons to open the timbre design tools." +#: js/widgets/musickeyboard.js:3386 +msgid "Failed to get MIDI access in browser." msgstr "" -#: js/timbre.js:1273 -msgid "harmonicity" +#: js/widgets/phrasemaker.js:574 +msgid "Export" msgstr "" -#: js/timbre.js:1340 -#: js/timbre.js:1406 -msgid "modulation index" +#: js/widgets/phrasemaker.js:581 +msgid "Sort" msgstr "" -#: js/timbre.js:1484 -msgid "vibrato amount" +#: js/widgets/phrasemaker.js:975 +msgid "Click on the table to add notes." msgstr "" -#: js/timbre.js:1919 -msgid "Filter already present." +#: js/widgets/phrasemaker.js:2677 +#: js/widgets/phrasemaker.js:2819 +msgid "tuplet value" msgstr "" -#: js/timbre.js:2322 -msgid "delay (MS)" +#: js/widgets/rhythmruler.js:486 +msgid "Save rhythms" msgstr "" -#: js/timbre.js:2507 -msgid "distortion amount" +#: js/widgets/rhythmruler.js:512 +msgid "Save drum machine" msgstr "" -#: js/meterwidget.js:170 -msgid "Reset" +#: js/widgets/rhythmruler.js:589 +#.TRANS: user can tap out a rhythm by clicking on a ruler. +msgid "Tap a rhythm" msgstr "" -#: js/meterwidget.js:196 -msgid "Click in the circle to select strong beats for the meter." +#: js/widgets/rhythmruler.js:817 +msgid "Click on the ruler to divide it." msgstr "" -#: js/arpeggio.js:239 -msgid "Click in the grid to add steps to the arpeggio." +#: js/widgets/rhythmruler.js:950 +#: js/widgets/rhythmruler.js:952 +#: js/widgets/rhythmruler.js:1152 +#: js/widgets/rhythmruler.js:1154 +#: js/widgets/rhythmruler.js:1765 +#: js/widgets/rhythmruler.js:1767 +msgid "tap a rhythm" msgstr "" -#: js/ProjectStorage.js:243 -msgid "anonymous" +#: js/widgets/rhythmruler.js:1459 +msgid "Maximum value of 256 has been exceeded." msgstr "" -#: js/GlobalCard.js:68 -msgid "Share" +#: js/widgets/sampler.js:237 +msgid "Recording started..." msgstr "" -#: js/GlobalCard.js:74 -msgid "Flags" +#: js/widgets/sampler.js:245 +msgid "Recording complete..." msgstr "" -#: js/LocalCard.js:36 -msgid "View published project" +#: js/widgets/sampler.js:283 +msgid "A new sample block was generated." msgstr "" -#: js/LocalCard.js:42 -msgid "Publish project" +#: js/widgets/sampler.js:378 +msgid "Upload sample" msgstr "" -#: js/LocalCard.js:51 -msgid "Edit project" +#: js/widgets/sampler.js:399 +msgid "Warning: Your sample cannot be loaded because it is >1MB." msgstr "" -#: js/LocalCard.js:52 -msgid "Delete project" +#: js/widgets/sampler.js:448 +msgid "Toggle Mic" msgstr "" -#: js/LocalCard.js:53 -msgid "Download project" +#: js/widgets/sampler.js:458 +msgid "Playback" msgstr "" -#: js/LocalCard.js:55 -msgid "Duplicate project" +#: js/widgets/sampler.js:979 +#.TRANS: The reference tone is a sound used for comparison. +msgid "reference tone" msgstr "" -#: js/GlobalTag.js:28 +#: planet/js/GlobalTag.js:28 #.TRANS: On the Planet, we use labels to tag projects. msgid "All Projects" msgstr "" -#: js/GlobalTag.js:30 -#: js/StringHelper.js:37 +#: planet/js/GlobalTag.js:30 +#: planet/js/StringHelper.js:37 #.TRANS: On the Planet, we use labels to tag projects. msgid "My Projects" msgstr "" -#: js/GlobalTag.js:32 +#: planet/js/GlobalTag.js:32 #.TRANS: On the Planet, we use labels to tag projects. msgid "Examples" msgstr "" -#: js/GlobalTag.js:34 +#: planet/js/GlobalTag.js:34 #.TRANS: On the Planet, we use labels to tag projects. msgid "Music" msgstr "" -#: js/GlobalTag.js:36 +#: planet/js/GlobalTag.js:36 #.TRANS: On the Planet, we use labels to tag projects. msgid "Art" msgstr "" -#: js/GlobalTag.js:38 +#: planet/js/GlobalTag.js:38 #.TRANS: On the Planet, we use labels to tag projects. msgid "Math" msgstr "" -#: js/GlobalTag.js:40 +#: planet/js/GlobalTag.js:40 #.TRANS: On the Planet, we use labels to tag projects. msgid "Interactive" msgstr "" -#: js/GlobalTag.js:42 +#: planet/js/GlobalTag.js:42 #.TRANS: On the Planet, we use labels to tag projects. msgid "Design" msgstr "" -#: js/GlobalTag.js:44 +#: planet/js/GlobalTag.js:44 #.TRANS: On the Planet, we use labels to tag projects. msgid "Game" msgstr "" -#: js/GlobalTag.js:46 +#: planet/js/GlobalTag.js:46 #.TRANS: On the Planet, we use labels to tag projects. msgid "Media" msgstr "" -#: js/GlobalTag.js:48 +#: planet/js/GlobalTag.js:48 #.TRANS: On the Planet, we use labels to tag projects. msgid "Sensors" msgstr "" -#: js/GlobalTag.js:52 +#: planet/js/GlobalTag.js:52 #.TRANS: On the Planet, we use labels to tag projects. msgid "Code Snippet" msgstr "" -#: js/helper.js:149 -#: js/StringHelper.js:49 -msgid "Show more tags" +#: planet/js/LocalCard.js:36 +msgid "View published project" msgstr "" -#: js/helper.js:150 -msgid "Show fewer tags" +#: planet/js/LocalCard.js:42 +msgid "Publish project" +msgstr "" + +#: planet/js/LocalCard.js:51 +msgid "Edit project" +msgstr "" + +#: planet/js/LocalCard.js:52 +msgid "Delete project" +msgstr "" + +#: planet/js/LocalCard.js:53 +msgid "Download project" +msgstr "" + +#: planet/js/LocalCard.js:55 +msgid "Duplicate project" +msgstr "" + +#: planet/js/ProjectStorage.js:243 +msgid "anonymous" +msgstr "" + +#: planet/js/SaveInterface.js:34 +msgid "Open in Music Blocks" +msgstr "" + +#: planet/js/SaveInterface.js:35 +msgid "Open in Turtle Blocks" +msgstr "" + +#: planet/js/GlobalCard.js:68 +msgid "Share" +msgstr "" + +#: planet/js/GlobalCard.js:74 +msgid "Flags" +msgstr "" + +#: planet/js/GlobalPlanet.js:35 +msgid "No results found." +msgstr "" + +#: planet/js/GlobalPlanet.js:51 +msgid "Remix of" +msgstr "" + +#: planet/js/GlobalPlanet.js:509 +msgid "Cannot connect to server" msgstr "" -#: js/ProjectViewer.js:30 +#: planet/js/ProjectViewer.js:30 msgid "Error: Report could not be submitted. Try again later." msgstr "" -#: js/ProjectViewer.js:31 +#: planet/js/ProjectViewer.js:31 msgid "Thank you for reporting this project. A moderator will review the project shortly, to verify violation of the Sugar Labs Code of Conduct." msgstr "" -#: js/ProjectViewer.js:32 -#: js/StringHelper.js:62 -#: js/StringHelper.js:64 -#: js/StringHelper.js:68 +#: planet/js/ProjectViewer.js:32 +#: planet/js/StringHelper.js:62 +#: planet/js/StringHelper.js:64 +#: planet/js/StringHelper.js:68 msgid "Report Project" msgstr "" -#: js/ProjectViewer.js:33 -#: js/StringHelper.js:63 +#: planet/js/ProjectViewer.js:33 +#: planet/js/StringHelper.js:63 msgid "Project Reported" msgstr "" -#: js/ProjectViewer.js:34 +#: planet/js/ProjectViewer.js:34 msgid "Report description required" msgstr "" -#: js/ProjectViewer.js:35 +#: planet/js/ProjectViewer.js:35 msgid "Report description too long" msgstr "" -#: js/StringHelper.js:30 +#: planet/js/Publisher.js:30 +msgid "Feature unavailable - cannot connect to server. Reload Music Blocks to try again." +msgstr "" + +#: planet/js/Publisher.js:220 +#: planet/js/Publisher.js:237 +msgid "This field is required" +msgstr "" + +#: planet/js/Publisher.js:227 +msgid "Title too long" +msgstr "" + +#: planet/js/Publisher.js:244 +msgid "Description too long" +msgstr "" + +#: planet/js/Publisher.js:341 +msgid "Server Error" +msgstr "" + +#: planet/js/Publisher.js:341 +msgid "Try Again" +msgstr "" + +#: planet/js/StringHelper.js:30 msgid "Planet" msgstr "" -#: js/StringHelper.js:31 +#: planet/js/StringHelper.js:31 msgid "Close Planet" msgstr "" -#: js/StringHelper.js:32 +#: planet/js/StringHelper.js:32 msgid "Open project from file" msgstr "" -#: js/StringHelper.js:34 +#: planet/js/StringHelper.js:34 msgid "Local" msgstr "" -#: js/StringHelper.js:35 +#: planet/js/StringHelper.js:35 msgid "Global" msgstr "" -#: js/StringHelper.js:36 +#: planet/js/StringHelper.js:36 msgid "Search for a project" msgstr "" -#: js/StringHelper.js:38 +#: planet/js/StringHelper.js:38 msgid "Publish Project" msgstr "" -#: js/StringHelper.js:40 +#: planet/js/StringHelper.js:40 msgid "Tags (max 5)" msgstr "" -#: js/StringHelper.js:41 -#: js/StringHelper.js:61 +#: planet/js/StringHelper.js:41 +#: planet/js/StringHelper.js:61 msgid "Description" msgstr "" -#: js/StringHelper.js:42 -#: js/StringHelper.js:67 +#: planet/js/StringHelper.js:42 +#: planet/js/StringHelper.js:67 msgid "Submit" msgstr "" -#: js/StringHelper.js:43 -#: js/StringHelper.js:47 +#: planet/js/StringHelper.js:43 +#: planet/js/StringHelper.js:47 msgid "Cancel" msgstr "" -#: js/StringHelper.js:44 +#: planet/js/StringHelper.js:44 msgid "Delete \\"\\"?" msgstr "" -#: js/StringHelper.js:45 +#: planet/js/StringHelper.js:45 msgid "Permanently delete project \\"\\"?" msgstr "" -#: js/StringHelper.js:48 +#: planet/js/StringHelper.js:48 msgid "Explore Projects" msgstr "" -#: js/StringHelper.js:50 +#: planet/js/StringHelper.js:49 +#: planet/js/helper.js:149 +msgid "Show more tags" +msgstr "" + +#: planet/js/StringHelper.js:50 msgid "Most recent" msgstr "" -#: js/StringHelper.js:51 +#: planet/js/StringHelper.js:51 msgid "Most liked" msgstr "" -#: js/StringHelper.js:52 +#: planet/js/StringHelper.js:52 msgid "Most downloaded" msgstr "" -#: js/StringHelper.js:53 +#: planet/js/StringHelper.js:53 msgid "A-Z" msgstr "" -#: js/StringHelper.js:54 +#: planet/js/StringHelper.js:54 msgid "Sort by" msgstr "" -#: js/StringHelper.js:55 +#: planet/js/StringHelper.js:55 msgid "Load More Projects" msgstr "" -#: js/StringHelper.js:56 +#: planet/js/StringHelper.js:56 msgid "Last Updated" msgstr "" -#: js/StringHelper.js:57 +#: planet/js/StringHelper.js:57 msgid "Creation Date" msgstr "" -#: js/StringHelper.js:58 +#: planet/js/StringHelper.js:58 msgid "Number of Downloads:" msgstr "" -#: js/StringHelper.js:59 +#: planet/js/StringHelper.js:59 msgid "Number of Likes:" msgstr "" -#: js/StringHelper.js:60 +#: planet/js/StringHelper.js:60 msgid "Tags:" msgstr "" -#: js/StringHelper.js:65 +#: planet/js/StringHelper.js:65 msgid "Report projects which violate the Sugar Labs Code of Conduct." msgstr "" -#: js/StringHelper.js:66 +#: planet/js/StringHelper.js:66 msgid "Reason for reporting project" msgstr "" -#: js/StringHelper.js:70 +#: planet/js/StringHelper.js:70 msgid "Download as File" msgstr "" -#: js/GlobalPlanet.js:35 -msgid "No results found." -msgstr "" - -#: js/GlobalPlanet.js:51 -msgid "Remix of" -msgstr "" - -#: js/GlobalPlanet.js:509 -msgid "Cannot connect to server" -msgstr "" - -#: js/Publisher.js:30 -msgid "Feature unavailable - cannot connect to server. Reload Music Blocks to try again." -msgstr "" - -#: js/Publisher.js:218 -#: js/Publisher.js:235 -msgid "This field is required" -msgstr "" - -#: js/Publisher.js:225 -msgid "Title too long" +#: planet/js/helper.js:150 +msgid "Show fewer tags" msgstr "" -#: js/Publisher.js:242 -msgid "Description too long" +#: plugins/accelerometer.rtp:48 +msgid "motion x" msgstr "" -#: js/Publisher.js:339 -msgid "Server Error" +#: plugins/accelerometer.rtp:56 +msgid "motion y" msgstr "" -#: js/Publisher.js:339 -msgid "Try Again" +#: plugins/accelerometer.rtp:64 +msgid "motion z" msgstr "" -#: js/SaveInterface.js:34 -msgid "Open in Music Blocks" +#: plugins/facebook.rtp:27 +msgid "publish" msgstr "" -#: js/SaveInterface.js:35 -msgid "Open in Turtle Blocks" +#: plugins/maths.rtp:62 +msgid "power" msgstr "" -#: plugins/weather.rtp:68 -#: plugins/weather.rtp:97 -msgid "Days ahead must be in the range of -1 to 5." +#: plugins/maths.rtp:62 +msgid "base" msgstr "" -#: plugins/weather.rtp:122 -msgid "forecast" +#: plugins/maths.rtp:62 +msgid "exp" msgstr "" -#: plugins/weather.rtp:123 -#: plugins/weather.rtp:137 -#: plugins/weather.rtp:150 -msgid "city" +#: plugins/maths.rtp:99 +msgid "floor" msgstr "" -#: plugins/weather.rtp:124 -#: plugins/weather.rtp:138 -#: plugins/weather.rtp:151 -msgid "day" +#: plugins/maths.rtp:104 +msgid "ceiling" msgstr "" -#: plugins/weather.rtp:136 -msgid "high" +#: plugins/maths.rtp:109 +msgid "to degrees" msgstr "" -#: plugins/weather.rtp:149 -msgid "low" +#: plugins/maths.rtp:114 +msgid "to radians" msgstr "" #: plugins/nutrition.rtp:104 @@ -9457,45 +9866,6 @@ msgstr "" msgid "water" msgstr "" -#: plugins/maths.rtp:62 -#: plugins/examples.rtp:93 -msgid "power" -msgstr "" - -#: plugins/maths.rtp:62 -#: plugins/examples.rtp:93 -msgid "base" -msgstr "" - -#: plugins/maths.rtp:62 -#: plugins/examples.rtp:93 -msgid "exp" -msgstr "" - -#: plugins/maths.rtp:99 -#: plugins/examples.rtp:130 -msgid "floor" -msgstr "" - -#: plugins/maths.rtp:104 -#: plugins/examples.rtp:135 -msgid "ceiling" -msgstr "" - -#: plugins/maths.rtp:109 -#: plugins/examples.rtp:140 -msgid "to degrees" -msgstr "" - -#: plugins/maths.rtp:114 -#: plugins/examples.rtp:145 -msgid "to radians" -msgstr "" - -#: plugins/facebook.rtp:27 -msgid "publish" -msgstr "" - #: plugins/rodi.rtp:172 msgid "blink" msgstr "" @@ -9524,18 +9894,66 @@ msgstr "" msgid "move" msgstr "" -#: plugins/accelerometer.rtp:48 -msgid "motion x" +#: plugins/weather.rtp:68 +#: plugins/weather.rtp:97 +msgid "Days ahead must be in the range of -1 to 5." msgstr "" -#: plugins/accelerometer.rtp:56 -msgid "motion y" +#: plugins/weather.rtp:122 +msgid "forecast" msgstr "" -#: plugins/accelerometer.rtp:64 -msgid "motion z" +#: plugins/weather.rtp:123 +#: plugins/weather.rtp:137 +#: plugins/weather.rtp:150 +msgid "city" +msgstr "" + +#: plugins/weather.rtp:124 +#: plugins/weather.rtp:138 +#: plugins/weather.rtp:151 +msgid "day" +msgstr "" + +#: plugins/weather.rtp:136 +msgid "high" +msgstr "" + +#: plugins/weather.rtp:149 +msgid "low" msgstr "" +#: js/toolbar.js:70 + +#: js/toolbar.js:130 + +#: js/toolbar.js:194 + +#: js/toolbar.js:249 + +#~msgid "Toggle JavaScript Editor" +#~msgstr "" + +#: js/EnsembleBlocks.js:643 + +#~msgid "The Turrle pitch block returns the current pitch number being played by the specified turtle." +#~msgstr "" + +#: js/PitchActions.js:88 + +#~msgid "The Scalar Step Block must be used inside of a Note Block." +#~msgstr "" + +#: js/PitchActions.js:107 + +#~msgid "The Scalar Step Block must be preceded by a Pitch Block." +#~msgstr "" + +#: js/musickeyboard.js:2840 + +#~msgid "New action blocks generated!" +#~msgstr "" + #: js/toolbar.js:110 #: js/toolbar.js:204 @@ -9876,11 +10294,6 @@ msgstr "" #~msgid "The Time block returns the number of seconds that the program has been running." #~msgstr "" -#: js/help.js:95 - -#~msgid "Take a tour" -#~msgstr "" - #: js/GlobalCard.js:48 #~msgid "More Details" @@ -12779,11 +13192,6 @@ msgstr "" #~msgid "The save-stack button saves a stack onto a custom palette. It appears after a \"long press\" on a stack." #~msgstr "" -#: js/musicutils.js:254 - -#~msgid "Custom" -#~msgstr "" - #: js/basicblocks.js:4785 #~msgid "Rhythm" diff --git a/po/ca.po b/po/ca.po index 182b4323d3..41b12dff5a 100644 --- a/po/ca.po +++ b/po/ca.po @@ -2129,276 +2129,131 @@ #: js/planetInterface.js:104 #: js/planetInterface.js:104 #: js/planetInterface.js:104 -msgid "project undefined" -msgstr "" - -#: js/logo.js:61 -msgid "Not a valid pitch name" -msgstr "" - -#: js/logo.js:507 -#: js/ProgramBlocks.js:258 -#: js/ProgramBlocks.js:427 -msgid "You must select a file." -msgstr "" - -#: js/logo.js:1184 -#: js/turtles.js:118 -#: js/turtle-painter.js:1192 -#: js/turtle-painter.js:1193 -#: js/block.js:1463 -#: js/lilypond.js:757 -#: js/lilypond.js:921 -#: js/lilypond.js:959 -#: js/ActionBlocks.js:1223 -#: js/ProgramBlocks.js:1267 -msgid "start" -msgstr "començar" - -#: js/logo.js:1696 -msgid "Playback is ready." +#: js/SaveInterface.js:59 +#: js/SaveInterface.js:61 +#: js/SaveInterface.js:93 +msgid "Music Blocks Project" msgstr "" -#: js/blocks.js:1011 -#: js/blocks.js:3427 -#: js/blocks.js:3428 -#: js/blocks.js:3653 -#: js/blocks.js:4012 -#: js/blocks.js:4205 -#: js/blocks.js:5343 -#: js/blocks.js:6474 -#: js/palette.js:527 -#: js/palette.js:536 -#: js/palette.js:545 -#: js/palette.js:554 -#: js/palette.js:1131 -#: js/palette.js:1142 -#: js/palette.js:1153 -#: js/palette.js:1164 -#: js/palette.js:1183 -#: js/rubrics.js:529 -#: js/macros.js:170 -#: js/macros.js:266 -#: js/macros.js:267 -#: js/macros.js:276 -#: js/macros.js:828 -#: js/block.js:1449 -#: js/block.js:4164 -#: js/block.js:4182 -#: js/block.js:4193 -#: js/turtledefs.js:128 -#: js/turtledefs.js:230 -#: js/ActionBlocks.js:254 -#: js/ActionBlocks.js:307 -#: js/ActionBlocks.js:617 -#: js/ActionBlocks.js:716 -#: js/ActionBlocks.js:961 -#: js/ActionBlocks.js:1049 -#: js/ActionBlocks.js:1322 -#: js/ActionBlocks.js:1325 -#: js/ActionBlocks.js:1337 -#: js/ActionBlocks.js:1404 -#: js/MeterBlocks.js:715 -#: js/MeterBlocks.js:768 -#: js/MeterBlocks.js:831 -#: js/MeterBlocks.js:892 -#: js/phrasemaker.js:4412 -#: js/musickeyboard.js:2647 -#: js/rhythmruler.js:1928 -#: js/rhythmruler.js:1935 -#: js/rhythmruler.js:2119 -#: js/rhythmruler.js:2126 -msgid "action" +#: js/SaveInterface.js:63 +msgid "This project was created in Music Blocks" msgstr "" -#: js/blocks.js:1205 -#: js/blocks.js:3380 -#: js/blocks.js:3770 -#: js/blocks.js:3801 -#: js/blocks.js:3850 -#: js/blocks.js:3885 -#: js/blocks.js:6497 -#: js/palette.js:509 -#: js/palette.js:638 -#: js/palette.js:1107 -#: js/BoxesBlocks.js:282 -#: js/BoxesBlocks.js:285 -#: js/BoxesBlocks.js:405 -#: js/BoxesBlocks.js:594 -msgid "box" -msgstr "caixa" - -#: js/blocks.js:1680 -msgid "Consider breaking this stack into parts." +#: js/SaveInterface.js:67 +msgid "Music Blocks is a Free/Libre Software application." msgstr "" -#: js/blocks.js:2408 -#: js/palette.js:653 -#: js/MediaBlocks.js:602 -msgid "open file" +#: js/SaveInterface.js:69 +msgid "The source code can be accessed at" msgstr "" -#: js/blocks.js:2415 -#: js/blocks.js:2423 -#: js/activity.js:1875 -msgid "audio file" +#: js/SaveInterface.js:72 +msgid "For more information, please consult the" msgstr "" -#: js/blocks.js:2536 -#: js/blocks.js:3147 -#: js/block.js:3543 -msgid "on2" +#: js/SaveInterface.js:76 +#: js/turtledefs.js:795 +msgid "Music Blocks Guide" msgstr "" -#: js/blocks.js:2538 -#: js/blocks.js:3149 -#: js/block.js:3545 -msgid "off" +#: js/SaveInterface.js:83 +msgid "Alternatively, open the file in Music Blocks using the Load project button." msgstr "" -#: js/blocks.js:2543 -#: js/blocks.js:3154 -#: js/palette.js:618 -#: js/block.js:3466 -#: js/BooleanBlocks.js:77 -#: js/BooleanBlocks.js:167 -#: js/BooleanBlocks.js:251 -#: js/BooleanBlocks.js:335 -#: js/BooleanBlocks.js:433 -#: js/BooleanBlocks.js:539 -#: js/BooleanBlocks.js:640 -#: js/BooleanBlocks.js:741 -#: js/BooleanBlocks.js:847 -#: js/BooleanBlocks.js:948 -#: js/BooleanBlocks.js:1033 -#: js/SensorsBlocks.js:910 -msgid "true" +#: js/SaveInterface.js:85 +msgid "Project Code" msgstr "" -#: js/blocks.js:2545 -#: js/blocks.js:3156 -#: js/block.js:3466 -#: js/BooleanBlocks.js:79 -#: js/BooleanBlocks.js:169 -#: js/BooleanBlocks.js:253 -#: js/BooleanBlocks.js:337 -#: js/BooleanBlocks.js:435 -#: js/BooleanBlocks.js:541 -#: js/BooleanBlocks.js:642 -#: js/BooleanBlocks.js:743 -#: js/BooleanBlocks.js:849 -#: js/BooleanBlocks.js:950 -#: js/SensorsBlocks.js:912 -msgid "false" +#: js/SaveInterface.js:87 +msgid "This code stores data about the blocks in a project." msgstr "" -#: js/blocks.js:3183 -#: js/palette.js:574 -#: js/MediaBlocks.js:892 -#: js/MediaBlocks.js:963 -msgid "text" -msgstr "text" - -#: js/blocks.js:3379 -#: js/palette.js:641 -#: js/palette.js:642 -#: js/BoxesBlocks.js:514 -msgid "store in box" +#: js/SaveInterface.js:89 +msgid "Show" msgstr "" -#: js/blocks.js:3384 -#: js/blocks.js:3824 -#: js/blocks.js:3859 -#: js/blocks.js:3894 -#: js/blocks.js:5773 -#: js/blocks.js:5794 -#: js/BoxesBlocks.js:772 -msgid "box1" +#: js/SaveInterface.js:91 +msgid "Hide" msgstr "" -#: js/blocks.js:3386 -#: js/blocks.js:3826 -#: js/blocks.js:3861 -#: js/blocks.js:3896 -#: js/blocks.js:5775 -#: js/blocks.js:5796 -#: js/BoxesBlocks.js:663 -msgid "box2" +#: js/SaveInterface.js:131 +#: js/SaveInterface.js:204 +#: js/SaveInterface.js:262 +#: js/SaveInterface.js:389 +#: js/SaveInterface.js:417 +#: js/activity.js:4884 +#: planet/js/ProjectStorage.js:27 +#: planet/js/GlobalPlanet.js:467 +#: planet/js/GlobalPlanet.js:469 +#: planet/js/GlobalPlanet.js:495 +#.TRANS: default project title when saving as Lilypond +msgid "My Project" msgstr "" -#: js/blocks.js:4058 -#: js/palette.js:639 -#: js/palette.js:644 -#: js/palette.js:1043 -#: js/BoxesBlocks.js:591 -msgid "store in" +#: js/SaveInterface.js:197 +#: planet/js/SaveInterface.js:58 +msgid "No description provided" msgstr "" -#: js/blocks.js:4058 -#: js/EnsembleBlocks.js:391 -#: js/EnsembleBlocks.js:402 -#: js/MediaBlocks.js:746 -#: js/ProgramBlocks.js:390 -#: js/ProgramBlocks.js:495 -#: js/ProgramBlocks.js:658 -#: js/BoxesBlocks.js:595 -#: js/PitchBlocks.js:656 -#: js/PitchBlocks.js:932 -#: js/PitchBlocks.js:1827 -#: js/ToneBlocks.js:1025 -#: js/DictBlocks.js:215 -#: js/DictBlocks.js:289 -msgid "name" +#: js/SaveInterface.js:332 +msgid "Your recording is in progress." msgstr "" -#: js/blocks.js:4058 -#: js/RhythmBlocks.js:1130 -#: js/BoxesBlocks.js:75 -#: js/BoxesBlocks.js:595 -#: js/HeapBlocks.js:544 -#: js/DictBlocks.js:289 -#: js/DictBlocks.js:430 -msgid "value" +#: js/SaveInterface.js:401 +#.TRANS: File name prompt for save as Lilypond +msgid "File name" msgstr "" -#: js/blocks.js:4907 -msgid "There is no block selected." +#: js/SaveInterface.js:403 +#: planet/js/StringHelper.js:39 +#.TRANS: Project title prompt for save as Lilypond +msgid "Project title" msgstr "" -#: js/blocks.js:5002 -#: js/MediaBlocks.js:888 -msgid "show" +#: js/SaveInterface.js:405 +#.TRANS: Project title prompt for save as Lilypond +msgid "Project author" msgstr "" -#: js/blocks.js:5005 -#: js/MediaBlocks.js:803 -#.TRANS: Avatar is the image used to determine the appearance of the mouse. -msgid "avatar" +#: js/SaveInterface.js:407 +#.TRANS: MIDI prompt for save as Lilypond +msgid "Include MIDI output?" msgstr "" -#: js/blocks.js:5008 -#: js/ToneBlocks.js:1010 -#: js/sampler.js:693 -#.TRANS: The sound sample that the user uploads. -msgid "sample" +#: js/SaveInterface.js:409 +#.TRANS: Guitar prompt for save as Lilypond +msgid "Include guitar tablature output?" msgstr "" -#: js/turtles.js:874 -msgid "Grid" +#: js/SaveInterface.js:411 +#.TRANS: Lilypond is a scripting language for generating sheet music +msgid "Save as Lilypond" msgstr "" -#: js/turtles.js:891 -#: js/turtledefs.js:626 -msgid "Clean" -msgstr "netejar" - -#: js/turtles.js:912 -#: js/turtledefs.js:632 -msgid "Collapse" +#: js/SaveInterface.js:426 +#: js/blocks/EnsembleBlocks.js:75 +#: js/blocks/EnsembleBlocks.js:154 +#: js/blocks/EnsembleBlocks.js:216 +#: js/blocks/EnsembleBlocks.js:302 +#: js/blocks/EnsembleBlocks.js:348 +#: js/blocks/EnsembleBlocks.js:389 +#: js/blocks/EnsembleBlocks.js:441 +#: js/blocks/EnsembleBlocks.js:490 +#: js/blocks/EnsembleBlocks.js:536 +#: js/blocks/EnsembleBlocks.js:583 +#: js/blocks/EnsembleBlocks.js:637 +#: js/blocks/EnsembleBlocks.js:753 +#: js/blocks/EnsembleBlocks.js:840 +#: js/blocks/EnsembleBlocks.js:899 +#: js/blocks/EnsembleBlocks.js:942 +#: js/blocks/EnsembleBlocks.js:1212 +#: js/blocks/EnsembleBlocks.js:1280 +#.TRANS: default project author when saving as Lilypond +msgid "Mr. Mouse" msgstr "" -#: js/turtles.js:940 -msgid "Expand" +#: js/SaveInterface.js:573 +msgid "The Lilypond code is copied to clipboard. You can paste it here: " msgstr "" #: js/languagebox.js:198 @@ -2409,6933 +2264,7487 @@ msgstr "" msgid "Music Blocks is already set to this language." msgstr "" -#: js/piemenus.js:200 -#: js/musicutils.js:808 -#: js/musicutils.js:824 -#: js/phrasemaker.js:1672 -#: js/musickeyboard.js:2041 -#: js/sampler.js:544 -#.TRANS: double sharp is a music term related to pitch -msgid "double sharp" +#: js/planetInterface.js:131 +msgid "project undefined" msgstr "" -#: js/piemenus.js:201 -#: js/PitchBlocks.js:1510 -#: js/PitchActions.js:580 -#: js/musicutils.js:806 -#: js/musicutils.js:825 -#: js/phrasemaker.js:1673 -#: js/musickeyboard.js:2042 -#: js/sampler.js:545 -#.TRANS: sharp is a half-step up in pitch -#.TRANS: sharp is a music term related to pitch -msgid "sharp" +#: js/rubrics.js:523 +#: js/turtledefs.js:119 +#: js/turtledefs.js:221 +#: js/blocks/RhythmBlockPaletteBlocks.js:52 +#: js/blocks/RhythmBlockPaletteBlocks.js:234 +#: js/blocks/ProgramBlocks.js:745 +#: js/widgets/rhythmruler.js:2057 +#: js/widgets/rhythmruler.js:2064 +#: js/widgets/rhythmruler.js:2133 +#: js/widgets/rhythmruler.js:2140 +#: js/widgets/rhythmruler.js:2219 +#.TRANS: an arrangement of notes based on duration +msgid "rhythm" msgstr "" -#: js/piemenus.js:202 -#: js/musicutils.js:804 -#: js/musicutils.js:826 -#: js/phrasemaker.js:1674 -#: js/musickeyboard.js:2043 -#: js/sampler.js:546 -#.TRANS: natural is a music term related to pitch -msgid "natural" +#: js/rubrics.js:524 +#: js/turtledefs.js:121 +#: js/turtledefs.js:223 +#: js/block-verbose.js:2622 +#: js/block.js:2550 +#: js/blocks/IntervalsBlocks.js:63 +#: js/blocks/SensorsBlocks.js:178 +#: js/blocks/PitchBlocks.js:1839 +#: js/blocks/PitchBlocks.js:1853 +#: js/widgets/musickeyboard.js:1935 +#: js/widgets/phrasemaker.js:1036 +#.TRANS: pitch number +#.TRANS: pitch number +#.TRANS: we specify pitch in terms of a name and an octave. The name can be CDEFGAB or Do Re Mi Fa Sol La Ti. Octave is a number between 1 and 8. +msgid "pitch" msgstr "" -#: js/piemenus.js:203 -#: js/PitchBlocks.js:1469 -#: js/PitchActions.js:583 -#: js/musicutils.js:802 -#: js/musicutils.js:827 -#: js/phrasemaker.js:1675 -#: js/musickeyboard.js:2044 -#: js/sampler.js:547 -#.TRANS: flat is a half-step down in pitch -#.TRANS: flat is a music term related to pitch -msgid "flat" +#: js/rubrics.js:525 +#: js/turtledefs.js:123 +#: js/turtledefs.js:225 +msgid "tone" msgstr "" -#: js/piemenus.js:204 -#: js/musicutils.js:800 -#: js/musicutils.js:828 -#: js/phrasemaker.js:1676 -#: js/musickeyboard.js:2045 -#: js/sampler.js:548 -#.TRANS: double flat is a music term related to pitch -msgid "double flat" +#: js/rubrics.js:526 +#: js/lilypond.js:605 +#: js/lilypond.js:904 +#: js/lilypond.js:910 +#: js/lilypond.js:948 +msgid "mouse" msgstr "" -#: js/piemenus.js:2861 -#: js/PitchBlocks.js:1357 -#: js/musicutils.js:627 -#.TRANS: unison means the note is the same as the current note -#.TRANS: unison is a music term related to intervals -msgid "unison" +#: js/rubrics.js:527 +#: js/turtledefs.js:132 +#: js/turtledefs.js:234 +#: js/widgets/phrasemaker.js:1040 +msgid "pen" msgstr "" -#: js/piemenus.js:3015 -#: js/piemenus.js:3088 -#: js/musicutils.js:635 -#: js/musicutils.js:810 -#: js/musicutils.js:912 -#.TRANS: major is a music term related to intervals and mode -msgid "major" -msgstr "" +#: js/rubrics.js:528 +#: js/turtledefs.js:133 +#: js/turtledefs.js:235 +#: js/blocks/NumberBlocks.js:981 +#: js/blocks/PitchBlocks.js:1717 +#: js/blocks/PitchBlocks.js:1758 +msgid "number" +msgstr "nombre" -#: js/piemenus.js:3015 -#: js/piemenus.js:3088 -#: js/musicutils.js:653 -#.TRANS: modal scale for music -msgid "ionian" +#: js/rubrics.js:529 +#: js/turtledefs.js:127 +#: js/turtledefs.js:229 +msgid "flow" msgstr "" -#: js/piemenus.js:3017 -#: js/piemenus.js:3092 -#: js/musicutils.js:633 -#: js/musicutils.js:811 -#: js/musicutils.js:909 -#.TRANS: minor is a music term related to intervals and mode -msgid "minor" +#: js/rubrics.js:530 +#: js/turtledefs.js:128 +#: js/turtledefs.js:230 +#: js/block-verbose.js:1609 +#: js/block-verbose.js:4559 +#: js/block-verbose.js:4577 +#: js/block-verbose.js:4588 +#: js/block.js:1573 +#: js/block.js:4483 +#: js/block.js:4501 +#: js/block.js:4512 +#: js/blocks.js:1018 +#: js/blocks.js:3491 +#: js/blocks.js:3492 +#: js/blocks.js:3717 +#: js/blocks.js:4076 +#: js/blocks.js:4269 +#: js/blocks.js:5432 +#: js/blocks.js:6563 +#: js/macros.js:170 +#: js/macros.js:266 +#: js/macros.js:267 +#: js/macros.js:276 +#: js/macros.js:828 +#: js/palette.js:527 +#: js/palette.js:536 +#: js/palette.js:545 +#: js/palette.js:554 +#: js/palette.js:1129 +#: js/palette.js:1140 +#: js/palette.js:1151 +#: js/palette.js:1162 +#: js/palette.js:1181 +#: js/blocks/ActionBlocks.js:254 +#: js/blocks/ActionBlocks.js:307 +#: js/blocks/ActionBlocks.js:617 +#: js/blocks/ActionBlocks.js:716 +#: js/blocks/ActionBlocks.js:961 +#: js/blocks/ActionBlocks.js:1049 +#: js/blocks/ActionBlocks.js:1322 +#: js/blocks/ActionBlocks.js:1325 +#: js/blocks/ActionBlocks.js:1337 +#: js/blocks/ActionBlocks.js:1404 +#: js/blocks/MeterBlocks.js:715 +#: js/blocks/MeterBlocks.js:768 +#: js/blocks/MeterBlocks.js:831 +#: js/blocks/MeterBlocks.js:892 +#: js/widgets/musickeyboard.js:2986 +#: js/widgets/phrasemaker.js:4913 +#: js/widgets/rhythmruler.js:2319 +#: js/widgets/rhythmruler.js:2326 +#: js/widgets/rhythmruler.js:2511 +#: js/widgets/rhythmruler.js:2518 +msgid "action" msgstr "" -#: js/piemenus.js:3017 -#: js/piemenus.js:3092 -#: js/musicutils.js:663 -#.TRANS: modal scale for music -msgid "aeolian" +#: js/rubrics.js:531 +#: js/turtledefs.js:136 +#: js/turtledefs.js:238 +msgid "sensors" msgstr "" -#: js/piemenus.js:3407 -msgid "Duplicate" +#: js/rubrics.js:532 +#: js/turtledefs.js:135 +#: js/turtledefs.js:237 +#: js/blocks/MediaBlocks.js:930 +msgid "media" msgstr "" -#: js/piemenus.js:3408 -#: js/turtledefs.js:534 -msgid "Extract" +#: js/rubrics.js:533 +msgid "mice" msgstr "" -#: js/piemenus.js:3409 -msgid "Move to trash" +#: js/toolbar.js:48 +#: js/toolbar.js:109 +msgid "About Music Blocks" msgstr "" -#: js/piemenus.js:3410 -#: js/timbre.js:968 -#: js/StringHelper.js:69 -msgid "Close" +#: js/toolbar.js:49 +#: js/toolbar.js:110 +#: js/toolbar.js:175 +#: js/toolbar.js:231 +#: js/turtledefs.js:445 +#: js/turtledefs.js:482 +#: js/activity.js:2660 +#: js/activity.js:2671 +#: js/activity.js:2902 +#: js/widgets/modewidget.js:77 +#: js/widgets/meterwidget.js:185 +#: js/widgets/pitchdrummatrix.js:147 +#: js/widgets/pitchdrummatrix.js:687 +#: js/widgets/pitchdrummatrix.js:689 +#: js/widgets/pitchdrummatrix.js:741 +#: js/widgets/pitchdrummatrix.js:743 +#: js/widgets/pitchdrummatrix.js:758 +#: js/widgets/pitchdrummatrix.js:760 +#: js/widgets/pitchdrummatrix.js:789 +#: js/widgets/pitchdrummatrix.js:791 +#: js/widgets/pitchstaircase.js:121 +#: js/widgets/temperament.js:610 +#: js/widgets/temperament.js:613 +#: js/widgets/temperament.js:673 +#: js/widgets/temperament.js:675 +#: js/widgets/temperament.js:2017 +#: js/widgets/temperament.js:2019 +#: js/widgets/tempo.js:84 +#: js/widgets/tempo.js:86 +#: js/widgets/timbre.js:432 +#: js/widgets/timbre.js:434 +#: js/widgets/timbre.js:465 +#: js/widgets/timbre.js:467 +#: js/widgets/timbre.js:746 +#: js/widgets/aiwidget.js:647 +#: js/widgets/aiwidget.js:654 +#: js/widgets/aiwidget.js:656 +#: js/widgets/arpeggio.js:90 +#: js/widgets/arpeggio.js:547 +#: js/widgets/arpeggio.js:549 +#: js/widgets/arpeggio.js:644 +#: js/widgets/arpeggio.js:646 +#: js/widgets/musickeyboard.js:676 +#: js/widgets/musickeyboard.js:872 +#: js/widgets/musickeyboard.js:874 +#: js/widgets/musickeyboard.js:953 +#: js/widgets/musickeyboard.js:955 +#: js/widgets/phrasemaker.js:513 +#: js/widgets/phrasemaker.js:523 +#: js/widgets/phrasemaker.js:525 +#: js/widgets/phrasemaker.js:4304 +#: js/widgets/phrasemaker.js:4528 +#: js/widgets/phrasemaker.js:4533 +#: js/widgets/phrasemaker.js:4535 +#: js/widgets/phrasemaker.js:4650 +#: js/widgets/rhythmruler.js:637 +#: js/widgets/rhythmruler.js:639 +#: js/widgets/rhythmruler.js:653 +#: js/widgets/rhythmruler.js:655 +#: js/widgets/sampler.js:162 +#: js/widgets/sampler.js:164 +#: js/widgets/sampler.js:363 +msgid "Play" msgstr "" -#: js/piemenus.js:3416 -msgid "Save stack" +#: js/toolbar.js:50 +#: js/toolbar.js:111 +#: js/toolbar.js:176 +#: js/toolbar.js:232 +#: js/turtledefs.js:451 +#: js/turtledefs.js:488 +#: js/activity.js:2679 +#: js/widgets/modewidget.js:99 +#: js/widgets/modewidget.js:101 +#: js/widgets/meterwidget.js:206 +#: js/widgets/meterwidget.js:208 +#: js/widgets/pitchdrummatrix.js:674 +#: js/widgets/pitchdrummatrix.js:676 +#: js/widgets/temperament.js:2002 +#: js/widgets/temperament.js:2004 +#: js/widgets/arpeggio.js:534 +#: js/widgets/arpeggio.js:536 +#: js/widgets/phrasemaker.js:534 +#: js/widgets/phrasemaker.js:536 +msgid "Stop" msgstr "" -#: js/piemenus.js:3420 -#: js/toolbar.js:60 -#: js/toolbar.js:120 -#: js/toolbar.js:185 -#: js/toolbar.js:240 -#: js/turtledefs.js:752 -msgid "Help" +#: js/toolbar.js:51 +#: js/toolbar.js:112 +#: js/toolbar.js:177 +#: js/toolbar.js:233 +#: js/turtledefs.js:498 +msgid "Record" msgstr "" -#: js/piemenus.js:3762 -msgid "You have chosen key " -msgstr "" +#: js/toolbar.js:52 +#: js/toolbar.js:53 +msgid "Full screen" +msgstr "" + +#: js/toolbar.js:54 +#: js/toolbar.js:115 +#: js/toolbar.js:180 +#: js/toolbar.js:236 +#: js/turtledefs.js:504 +msgid "Toggle Fullscreen" +msgstr "" + +#: js/toolbar.js:55 +#: js/toolbar.js:116 +#: js/toolbar.js:181 +#: js/toolbar.js:237 +#: js/turtledefs.js:510 +#: planet/js/StringHelper.js:33 +msgid "New project" +msgstr "" + +#: js/toolbar.js:56 +#: js/toolbar.js:117 +#: js/toolbar.js:182 +#: js/toolbar.js:238 +#: js/turtledefs.js:516 +msgid "Load project from file" +msgstr "" + +#: js/toolbar.js:57 +#: js/toolbar.js:118 +#: js/toolbar.js:119 +#: js/toolbar.js:183 +#: js/toolbar.js:239 +#: js/turtledefs.js:541 +#: js/turtledefs.js:550 +#: js/turtledefs.js:571 +msgid "Save project" +msgstr "" + +#: js/toolbar.js:58 +#: js/toolbar.js:77 +#: js/toolbar.js:79 +#: js/toolbar.js:138 +#: js/toolbar.js:147 +#: js/toolbar.js:149 +#: js/toolbar.js:184 +#: js/toolbar.js:202 +#: js/toolbar.js:204 +#: js/toolbar.js:240 +#: js/toolbar.js:258 +#: js/toolbar.js:260 +msgid "Save project as HTML" +msgstr "" + +#: js/toolbar.js:59 +#: js/toolbar.js:120 +#: js/toolbar.js:185 +#: js/toolbar.js:241 +msgid "Find and share projects" +msgstr "" + +#: js/toolbar.js:60 +#: js/toolbar.js:121 +#: js/toolbar.js:186 +#: js/toolbar.js:242 +msgid "Offline. Sharing is unavailable" +msgstr "" + +#: js/toolbar.js:61 +#: js/toolbar.js:122 +#: js/toolbar.js:187 +#: js/toolbar.js:243 +msgid "Auxiliary menu" +msgstr "" + +#: js/toolbar.js:62 +#: js/toolbar.js:123 +#: js/toolbar.js:188 +#: js/toolbar.js:244 +#: js/turtledefs.js:752 +#: js/piemenus.js:3423 +msgid "Help" +msgstr "" + +#: js/toolbar.js:63 +#: js/toolbar.js:124 +#: js/toolbar.js:189 +#: js/toolbar.js:245 +msgid "Run slowly" +msgstr "" + +#: js/toolbar.js:64 +#: js/toolbar.js:125 +#: js/toolbar.js:190 +#: js/toolbar.js:246 +#: js/turtledefs.js:682 +msgid "Run step by step" +msgstr "" + +#: js/toolbar.js:65 +#: js/toolbar.js:126 +#: js/toolbar.js:191 +#: js/toolbar.js:247 +#: js/turtledefs.js:689 +msgid "Display statistics" +msgstr "" + +#: js/toolbar.js:66 +#: js/toolbar.js:127 +#: js/toolbar.js:192 +#: js/toolbar.js:248 +msgid "Load plugin" +msgstr "" + +#: js/toolbar.js:67 +#: js/toolbar.js:128 +#: js/toolbar.js:193 +#: js/toolbar.js:249 +#: js/turtledefs.js:696 +msgid "Delete plugin" +msgstr "" + +#: js/toolbar.js:68 +#: js/toolbar.js:129 +#: js/toolbar.js:194 +#: js/toolbar.js:250 +msgid "Enable horizontal scrolling" +msgstr "" + +#: js/toolbar.js:69 +#: js/toolbar.js:130 +#: js/toolbar.js:195 +#: js/toolbar.js:251 +msgid "Disable horizontal scrolling" +msgstr "" + +#: js/toolbar.js:70 +#: js/toolbar.js:131 +#: js/toolbar.js:196 +#: js/toolbar.js:252 +#: planet/js/LocalCard.js:54 +#: planet/js/StringHelper.js:71 +msgid "Merge with current project" +msgstr "" + +#: js/toolbar.js:71 +#: js/toolbar.js:132 +msgid "Set Pitch Preview" +msgstr "" + +#: js/toolbar.js:72 +#: js/toolbar.js:133 +#: js/toolbar.js:197 +#: js/toolbar.js:253 +msgid "JavaScript Editor" +msgstr "" + +#: js/toolbar.js:73 +#: js/toolbar.js:134 +#: js/toolbar.js:198 +#: js/toolbar.js:254 +#: js/turtledefs.js:724 +msgid "Restore" +msgstr "" + +#: js/toolbar.js:74 +#: js/toolbar.js:135 +#: js/toolbar.js:199 +#: js/toolbar.js:255 +msgid "Switch to beginner mode" +msgstr "" + +#: js/toolbar.js:75 +#: js/toolbar.js:136 +#: js/toolbar.js:200 +#: js/toolbar.js:256 +msgid "Switch to advanced mode" +msgstr "" + +#: js/toolbar.js:76 +#: js/toolbar.js:137 +#: js/toolbar.js:146 +#: js/toolbar.js:201 +#: js/toolbar.js:257 +#: js/turtledefs.js:738 +msgid "Select language" +msgstr "" + +#: js/toolbar.js:78 +#: js/toolbar.js:81 +#: js/toolbar.js:140 +#: js/turtledefs.js:579 +msgid "Save mouse artwork as PNG" +msgstr "" + +#: js/toolbar.js:80 +#: js/toolbar.js:139 +#: js/turtledefs.js:575 +msgid "Save mouse artwork as SVG" +msgstr "" + +#: js/toolbar.js:82 +#: js/toolbar.js:141 +#: js/turtledefs.js:583 +msgid "Save music as WAV" +msgstr "" + +#: js/toolbar.js:83 +#: js/toolbar.js:142 +#: js/turtledefs.js:587 +msgid "Save sheet music as ABC" +msgstr "" + +#: js/toolbar.js:84 +#: js/toolbar.js:143 +#: js/turtledefs.js:591 +msgid "Save sheet music as Lilypond" +msgstr "" + +#: js/toolbar.js:85 +msgid "Save sheet music as MusicXML" +msgstr "" + +#: js/toolbar.js:86 +#: js/toolbar.js:144 +#: js/toolbar.js:152 +#: js/toolbar.js:207 +#: js/toolbar.js:263 +#: js/turtledefs.js:562 +#: js/turtledefs.js:595 +msgid "Save block artwork as SVG" +msgstr "" + +#: js/toolbar.js:87 +#: js/toolbar.js:145 +#: js/toolbar.js:153 +#: js/toolbar.js:208 +#: js/toolbar.js:264 +#: js/turtles.js:911 +msgid "Confirm" +msgstr "" + +#: js/toolbar.js:88 +#: js/toolbar.js:154 +#: js/toolbar.js:209 +#: js/toolbar.js:265 +msgid "English (United States)" +msgstr "" + +#: js/toolbar.js:89 +#: js/toolbar.js:155 +#: js/toolbar.js:210 +#: js/toolbar.js:266 +msgid "English (United Kingdom)" +msgstr "" + +#: js/toolbar.js:90 +#: js/toolbar.js:156 +#: js/toolbar.js:211 +#: js/toolbar.js:267 +msgid "日本語" +msgstr "" + +#: js/toolbar.js:91 +msgid "한국어" +msgstr "" + +#: js/toolbar.js:92 +#: js/toolbar.js:158 +#: js/toolbar.js:213 +#: js/toolbar.js:269 +msgid "español" +msgstr "" + +#: js/toolbar.js:93 +#: js/toolbar.js:159 +#: js/toolbar.js:214 +#: js/toolbar.js:270 +msgid "português" +msgstr "" + +#: js/toolbar.js:94 +#: js/toolbar.js:160 +#: js/toolbar.js:215 +#: js/toolbar.js:271 +msgid "にほんご" +msgstr "" + +#: js/toolbar.js:95 +#: js/toolbar.js:161 +#: js/toolbar.js:216 +#: js/toolbar.js:272 +msgid "中文" +msgstr "" + +#: js/toolbar.js:96 +#: js/toolbar.js:162 +#: js/toolbar.js:217 +#: js/toolbar.js:273 +msgid "ภาษาไทย" +msgstr "" + +#: js/toolbar.js:97 +#: js/toolbar.js:163 +#: js/toolbar.js:218 +#: js/toolbar.js:274 +msgid "aymara" +msgstr "" + +#: js/toolbar.js:98 +#: js/toolbar.js:164 +#: js/toolbar.js:219 +#: js/toolbar.js:275 +msgid "quechua" +msgstr "" + +#: js/toolbar.js:99 +#: js/toolbar.js:165 +#: js/toolbar.js:220 +#: js/toolbar.js:276 +msgid "guarani" +msgstr "" + +#: js/toolbar.js:100 +#: js/toolbar.js:166 +#: js/toolbar.js:221 +#: js/toolbar.js:277 +msgid "हिंदी" +msgstr "" + +#: js/toolbar.js:101 +#: js/toolbar.js:168 +#: js/toolbar.js:222 +#: js/toolbar.js:279 +msgid "igbo" +msgstr "" + +#: js/toolbar.js:102 +#: js/toolbar.js:169 +#: js/toolbar.js:223 +#: js/toolbar.js:280 +msgid "عربى" +msgstr "" + +#: js/toolbar.js:103 +#: js/toolbar.js:167 +#: js/toolbar.js:224 +#: js/toolbar.js:278 +msgid "తెలుగు" +msgstr "" + +#: js/toolbar.js:104 +#: js/toolbar.js:170 +#: js/toolbar.js:225 +#: js/toolbar.js:281 +msgid "עִברִית" +msgstr "" + +#: js/toolbar.js:113 +#: js/toolbar.js:114 +#: js/toolbar.js:178 +#: js/toolbar.js:179 +#: js/toolbar.js:234 +#: js/toolbar.js:235 +msgid "Full Screen" +msgstr "" + +#: js/toolbar.js:148 +#: js/toolbar.js:151 +#: js/toolbar.js:203 +#: js/toolbar.js:206 +#: js/toolbar.js:259 +#: js/toolbar.js:262 +#: js/turtledefs.js:558 +msgid "Save turtle artwork as PNG" +msgstr "" + +#: js/toolbar.js:150 +#: js/toolbar.js:205 +#: js/toolbar.js:261 +#: js/turtledefs.js:554 +msgid "Save turtle artwork as SVG" +msgstr "" + +#: js/toolbar.js:157 +#: js/toolbar.js:212 +#: js/toolbar.js:268 +msgid "한국인" +msgstr "" + +#: js/toolbar.js:174 +#: js/toolbar.js:230 +msgid "About Turtle Blocks" +msgstr "" + +#: js/toolbar.js:446 +#: js/toolbar.js:457 +#: js/toolbar.js:497 +msgid "Turtle Wrap Off" +msgstr "" + +#: js/toolbar.js:466 +#: js/toolbar.js:506 +msgid "Turtle Wrap On" +msgstr "" + +#: js/turtle-painter.js:1192 +#: js/turtle-painter.js:1193 +#: js/turtles.js:118 +#: js/block-verbose.js:1623 +#: js/block.js:1587 +#: js/lilypond.js:749 +#: js/lilypond.js:913 +#: js/lilypond.js:951 +#: js/logo.js:1184 +#: js/blocks/ActionBlocks.js:1223 +#: js/blocks/ProgramBlocks.js:1267 +msgid "start" +msgstr "començar" + +#: js/turtledefs.js:40 +#.TRANS: put the URL to the guide here, e.g., https://github.com/sugarlabs/turtleblocksjs/tree/master/guide/README.md +msgid "guide url" +msgstr "" + +#: js/turtledefs.js:85 +#: js/turtledefs.js:437 +msgid "Turtle Blocks is a Logo-inspired turtle that draws colorful pictures with snap-together visual-programming blocks." +msgstr "" + +#: js/turtledefs.js:118 +#: js/turtledefs.js:220 +msgid "search" +msgstr "" + +#: js/turtledefs.js:120 +#: js/turtledefs.js:222 +#: js/blocks/MeterBlocks.js:1343 +#: js/blocks/WidgetBlocks.js:522 +#.TRANS: musical meter (time signature), e.g., 4:4 +msgid "meter" +msgstr "" + +#: js/turtledefs.js:122 +#: js/turtledefs.js:224 +msgid "intervals" +msgstr "" + +#: js/turtledefs.js:124 +#: js/turtledefs.js:226 +msgid "ornament" +msgstr "" + +#: js/turtledefs.js:125 +#: js/turtledefs.js:227 +#: js/blocks/VolumeBlocks.js:362 +#: js/blocks/VolumeBlocks.js:502 +#: js/blocks/VolumeBlocks.js:545 +msgid "volume" +msgstr "" + +#: js/turtledefs.js:126 +#: js/turtledefs.js:228 +#: js/block-verbose.js:1700 +#: js/block-verbose.js:2626 +#: js/block.js:1664 +#: js/block.js:2554 +#: js/lilypond.js:732 +#: js/lilypond.js:897 +#: js/lilypond.js:941 +#: js/palette.js:577 +#: js/blocks/RhythmBlocks.js:766 +#: js/blocks/DrumBlocks.js:477 +#: js/blocks/VolumeBlocks.js:502 +#: js/widgets/phrasemaker.js:1038 +msgid "drum" +msgstr "" + +#: js/turtledefs.js:129 +#: js/turtledefs.js:231 +msgid "boxes" +msgstr "" + +#: js/turtledefs.js:130 +#: js/turtledefs.js:232 +msgid "widgets" +msgstr "" + +#: js/turtledefs.js:131 +#: js/turtledefs.js:233 +#: js/widgets/phrasemaker.js:1039 +msgid "graphics" +msgstr "" + +#: js/turtledefs.js:134 +#: js/turtledefs.js:236 +msgid "boolean" +msgstr "" + +#: js/turtledefs.js:137 +#: js/turtledefs.js:239 +#: js/blocks/HeapBlocks.js:59 +#: js/widgets/status.js:147 +msgid "heap" +msgstr "" + +#: js/turtledefs.js:138 +#: js/turtledefs.js:240 +#: js/blocks/DictBlocks.js:142 +#: js/blocks/ProgramBlocks.js:495 +msgid "dictionary" +msgstr "" + +#: js/turtledefs.js:139 +#: js/turtledefs.js:241 +msgid "ensemble" +msgstr "" + +#: js/turtledefs.js:140 +#: js/turtledefs.js:242 +msgid "extras" +msgstr "" + +#: js/turtledefs.js:142 +#: js/turtledefs.js:244 +#.TRANS: program as in computer program +#.TRANS: program as in computer program +msgid "program" +msgstr "" + +#: js/turtledefs.js:143 +#: js/turtledefs.js:245 +msgid "my blocks" +msgstr "" + +#: js/turtledefs.js:185 +#: js/turtledefs.js:281 +msgid "artwork" +msgstr "" + +#: js/turtledefs.js:185 +#: js/turtledefs.js:281 +msgid "logic" +msgstr "" + +#: js/turtledefs.js:185 +#: js/turtledefs.js:281 +msgid "music" +msgstr "" + +#: js/turtledefs.js:187 +#: js/turtledefs.js:463 +msgid "Music Blocks is a collection of tools for exploring fundamental musical concepts in a fun way." +msgstr "" + +#: js/turtledefs.js:436 +msgid "Welcome to Turtle Blocks" +msgstr "" + +#: js/turtledefs.js:438 +#: js/turtledefs.js:465 +#: js/turtledefs.js:774 +#: js/turtledefs.js:805 +msgid "The current version is" +msgstr "" + +#: js/turtledefs.js:446 +#: js/turtledefs.js:483 +msgid "Click the run button to run the project in fast mode." +msgstr "" + +#: js/turtledefs.js:452 +msgid "Stop the turtle." +msgstr "" + +#: js/turtledefs.js:454 +#: js/turtledefs.js:491 +msgid "You can also type Alt-S to stop." +msgstr "" + +#: js/turtledefs.js:462 +#: js/widgets/help.js:333 +msgid "Welcome to Music Blocks" +msgstr "" + +#: js/turtledefs.js:472 +#: js/widgets/help.js:334 +msgid "Meet Mr. Mouse!" +msgstr "" + +#: js/turtledefs.js:473 +msgid "Mr Mouse is our Music Blocks conductor." +msgstr "" + +#: js/turtledefs.js:475 +msgid "Mr Mouse encourages you to explore Music Blocks." +msgstr "" + +#: js/turtledefs.js:477 +msgid "Let us start our tour!" +msgstr "" + +#: js/turtledefs.js:489 +msgid "Stop the music (and the mice)." +msgstr "" + +#: js/turtledefs.js:499 +msgid "Record your project as video." +msgstr "" + +#: js/turtledefs.js:505 +msgid "Toggle Fullscreen mode." +msgstr "" + +#: js/turtledefs.js:511 +msgid "Initialize a new project." +msgstr "" + +#: js/turtledefs.js:517 +msgid "You can also load projects from the file system." +msgstr "" + +#: js/turtledefs.js:522 +#: planet/js/StringHelper.js:46 +msgid "Delete" +msgstr "" + +#: js/turtledefs.js:523 +msgid "To delete a block, just right-click on it, then you will be able to see the delete option" +msgstr "" + +#: js/turtledefs.js:528 +#: js/activity.js:2649 +#: planet/js/LocalCard.js:31 +msgid "Copy" +msgstr "" + +#: js/turtledefs.js:529 +msgid "To copy a block, just right-click on it, then you will be able to see the copy option" +msgstr "" + +#: js/turtledefs.js:534 +#: js/piemenus.js:3411 +msgid "Extract" +msgstr "" + +#: js/turtledefs.js:535 +msgid "To extract a block, just right-click on it, then you will be able to see the extract option" +msgstr "" + +#: js/turtledefs.js:542 +#: js/turtledefs.js:552 +#: js/turtledefs.js:573 +msgid "Save your project to a file." +msgstr "" + +#: js/turtledefs.js:549 +#: js/turtledefs.js:570 +msgid "save" +msgstr "" + +#: js/turtledefs.js:556 +#: js/turtledefs.js:577 +msgid "Save graphics from your project to as SVG." +msgstr "" + +#: js/turtledefs.js:560 +#: js/turtledefs.js:581 +msgid "Save graphics from your project as PNG." +msgstr "" + +#: js/turtledefs.js:564 +#: js/turtledefs.js:597 +msgid "Save block artwork as an SVG file." +msgstr "" + +#: js/turtledefs.js:585 +msgid "Save audio from your project as WAV." +msgstr "" + +#: js/turtledefs.js:589 +msgid "Save your project to as an ABC file." +msgstr "" + +#: js/turtledefs.js:593 +msgid "Save your project to as a Lilypond file." +msgstr "" + +#: js/turtledefs.js:604 +msgid "Load samples from server" +msgstr "" + +#: js/turtledefs.js:605 +msgid "This button opens a viewer for loading example projects." +msgstr "" + +#: js/turtledefs.js:611 +msgid "Palette buttons" +msgstr "" + +#: js/turtledefs.js:612 +msgid "This toolbar contains the palette buttons including Rhythm Pitch Tone Action and more." +msgstr "" + +#: js/turtledefs.js:614 +msgid "Click to show the palettes of blocks and drag blocks from the palettes onto the canvas to use them." +msgstr "" + +#: js/turtledefs.js:620 +msgid "Cartesian/Polar" +msgstr "" + +#: js/turtledefs.js:621 +msgid "Show or hide a coordinate grid." +msgstr "" + +#: js/turtledefs.js:626 +#: js/turtles.js:902 +msgid "Clean" +msgstr "netejar" + +#: js/turtledefs.js:627 +msgid "Clear the screen and return the mice to their initial positions." +msgstr "" + +#: js/turtledefs.js:632 +#: js/turtles.js:955 +msgid "Collapse" +msgstr "" + +#: js/turtledefs.js:633 +msgid "Collapse the graphics window." +msgstr "" + +#: js/turtledefs.js:638 +#: js/activity.js:5684 +msgid "Home" +msgstr "" + +#: js/turtledefs.js:639 +msgid "Return all blocks to the center of the screen." +msgstr "" + +#: js/turtledefs.js:644 +msgid "Show/hide blocks" +msgstr "" + +#: js/turtledefs.js:645 +msgid "Hide or show the blocks and the palettes." +msgstr "" + +#: js/turtledefs.js:650 +msgid "Expand/collapse collapsable blocks" +msgstr "" + +#: js/turtledefs.js:651 +msgid "Expand or collapse start and action stacks." +msgstr "" + +#: js/turtledefs.js:658 +#: js/activity.js:5704 +msgid "Decrease block size" +msgstr "" + +#: js/turtledefs.js:659 +msgid "Decrease the size of the blocks." +msgstr "" + +#: js/turtledefs.js:664 +#: js/activity.js:5710 +msgid "Increase block size" +msgstr "" + +#: js/turtledefs.js:665 +msgid "Increase the size of the blocks." +msgstr "" + +#: js/turtledefs.js:670 +msgid "Expand/collapse option toolbar" +msgstr "" + +#: js/turtledefs.js:671 +msgid "Click this button to expand or collapse the auxillary toolbar." +msgstr "" -#: js/piemenus.js:3766 -msgid " for your pitch preview." +#: js/turtledefs.js:676 +msgid "Run slow" msgstr "" -#: js/palette.js:571 -msgid "grid" +#: js/turtledefs.js:677 +msgid "Click to run the project in slow mode." msgstr "" -#: js/palette.js:577 -#: js/block.js:1540 -#: js/block.js:2343 -#: js/turtledefs.js:126 -#: js/turtledefs.js:228 -#: js/lilypond.js:740 -#: js/lilypond.js:905 -#: js/lilypond.js:949 -#: js/DrumBlocks.js:486 -#: js/RhythmBlocks.js:766 -#: js/VolumeBlocks.js:502 -#: js/phrasemaker.js:823 -msgid "drum" +#: js/turtledefs.js:683 +msgid "Click to run the project step by step." msgstr "" -#: js/palette.js:580 -msgid "effect" +#: js/turtledefs.js:690 +msgid "Display statistics about your Music project." msgstr "" -#: js/palette.js:586 -msgid "sargam" +#: js/turtledefs.js:697 +msgid "Delete a selected plugin." msgstr "" -#: js/palette.js:589 -#: js/activity.js:1833 -#: js/RhythmBlocks.js:923 -#: js/PitchBlocks.js:442 -#: js/PitchBlocks.js:1748 -#.TRANS: a numeric mapping of the notes in an octave based on the musical mode -msgid "scale degree" +#: js/turtledefs.js:704 +msgid "Enable scrolling" msgstr "" -#: js/palette.js:592 -#: js/activity.js:1860 -msgid "mode name" +#: js/turtledefs.js:705 +msgid "You can scroll the blocks on the canvas." msgstr "" -#: js/palette.js:595 -#: js/activity.js:1839 -msgid "invert mode" +#: js/turtledefs.js:714 +msgid "Wrap Turtle" msgstr "" -#: js/palette.js:598 -#: js/activity.js:1836 -msgid "voice name" +#: js/turtledefs.js:715 +msgid "Turn Turtle wrapping On or Off." msgstr "" -#: js/palette.js:601 -#: js/PitchBlocks.js:1181 -msgid "custom pitch" +#: js/turtledefs.js:725 +msgid "Restore blocks from the trash." msgstr "" -#: js/palette.js:605 -#: js/block.js:1456 -#: js/block.js:1575 -#: js/WidgetBlocks.js:218 -#: js/IntervalsBlocks.js:63 -msgid "temperament" +#: js/turtledefs.js:732 +msgid "Switch mode" msgstr "" -#: js/palette.js:609 -msgid "accidental" +#: js/turtledefs.js:733 +msgid "Switch between beginner and advance modes." msgstr "" -#: js/palette.js:615 -#: js/activity.js:1866 -msgid "interval name" +#: js/turtledefs.js:739 +msgid "Select your language preference." msgstr "" -#: js/palette.js:633 -#: js/PitchBlocks.js:405 -msgid "pitch converter" +#: js/turtledefs.js:745 +msgid "Keyboard shortcuts" msgstr "" -#: js/rubrics.js:522 -#: js/turtledefs.js:119 -#: js/turtledefs.js:221 -#: js/RhythmBlockPaletteBlocks.js:52 -#: js/RhythmBlockPaletteBlocks.js:233 -#: js/ProgramBlocks.js:745 -#: js/rhythmruler.js:1670 -#: js/rhythmruler.js:1677 -#: js/rhythmruler.js:1745 -#: js/rhythmruler.js:1752 -#: js/rhythmruler.js:1830 -#.TRANS: an arrangement of notes based on duration -msgid "rhythm" +#: js/turtledefs.js:746 +msgid "You can type d to create a do block and r to create a re block etc." msgstr "" -#: js/rubrics.js:523 -#: js/block.js:2339 -#: js/turtledefs.js:121 -#: js/turtledefs.js:223 -#: js/IntervalsBlocks.js:63 -#: js/PitchBlocks.js:1801 -#: js/PitchBlocks.js:1814 -#: js/SensorsBlocks.js:178 -#: js/phrasemaker.js:821 -#: js/musickeyboard.js:1653 -#.TRANS: pitch number -#.TRANS: we specify pitch in terms of a name and an octave. The name can be CDEFGAB or Do Re Mi Fa Sol La Ti. Octave is a number between 1 and 8. -msgid "pitch" +#: js/turtledefs.js:753 +msgid "Show these messages." msgstr "" -#: js/rubrics.js:524 -#: js/turtledefs.js:123 -#: js/turtledefs.js:225 -msgid "tone" +#: js/turtledefs.js:759 +#: js/turtledefs.js:790 +#: js/widgets/help.js:335 +msgid "Guide" msgstr "" -#: js/rubrics.js:525 -#: js/lilypond.js:613 -#: js/lilypond.js:912 -#: js/lilypond.js:918 -#: js/lilypond.js:956 -msgid "mouse" +#: js/turtledefs.js:760 +msgid "A detailed guide to Turtle Blocks is available." msgstr "" -#: js/rubrics.js:526 -#: js/turtledefs.js:132 -#: js/turtledefs.js:234 -#: js/phrasemaker.js:825 -msgid "pen" +#: js/turtledefs.js:764 +msgid "Turtle Blocks Guide" msgstr "" -#: js/rubrics.js:527 -#: js/turtledefs.js:133 -#: js/turtledefs.js:235 -#: js/NumberBlocks.js:905 -#: js/PitchBlocks.js:1679 -#: js/PitchBlocks.js:1720 -msgid "number" -msgstr "nombre" +#: js/turtledefs.js:767 +#: js/turtledefs.js:798 +#: js/widgets/help.js:336 +msgid "About" +msgstr "" -#: js/rubrics.js:528 -#: js/turtledefs.js:127 -#: js/turtledefs.js:229 -msgid "flow" +#: js/turtledefs.js:768 +msgid "Turtle Blocks is an open source collection of tools for exploring musical concepts." msgstr "" -#: js/rubrics.js:530 -#: js/turtledefs.js:136 -#: js/turtledefs.js:238 -msgid "sensors" +#: js/turtledefs.js:770 +msgid "A full list of contributors can be found in the Turtle Blocks GitHub repository." msgstr "" -#: js/rubrics.js:531 -#: js/turtledefs.js:135 -#: js/turtledefs.js:237 -#: js/MediaBlocks.js:930 -msgid "media" +#: js/turtledefs.js:772 +msgid "Turtle Blocks is licensed under the AGPL." msgstr "" -#: js/rubrics.js:532 -msgid "mice" +#: js/turtledefs.js:780 +msgid "Turtle Blocks GitHub repository" msgstr "" -#: js/macros.js:711 -#: js/musicutils.js:783 -#: js/synthutils.js:181 -#.TRANS: animal sound effect -msgid "duck" +#: js/turtledefs.js:783 +#: js/turtledefs.js:814 +#: js/widgets/help.js:337 +#: js/widgets/help.js:359 +msgid "Congratulations." msgstr "" -#: js/toolbar.js:46 -#: js/toolbar.js:107 -msgid "About Music Blocks" +#: js/turtledefs.js:784 +msgid "You have finished the tour. Please enjoy Turtle Blocks!" msgstr "" -#: js/toolbar.js:47 -#: js/toolbar.js:108 -#: js/toolbar.js:172 -#: js/toolbar.js:228 -#: js/turtledefs.js:445 -#: js/turtledefs.js:482 -#: js/activity.js:2281 -#: js/activity.js:2289 -#: js/activity.js:2520 -#: js/modewidget.js:77 -#: js/pitchstaircase.js:121 -#: js/phrasemaker.js:302 -#: js/phrasemaker.js:312 -#: js/phrasemaker.js:314 -#: js/phrasemaker.js:3901 -#: js/phrasemaker.js:4061 -#: js/phrasemaker.js:4066 -#: js/phrasemaker.js:4068 -#: js/phrasemaker.js:4183 -#: js/pitchdrummatrix.js:81 -#: js/pitchdrummatrix.js:574 -#: js/pitchdrummatrix.js:576 -#: js/pitchdrummatrix.js:628 -#: js/pitchdrummatrix.js:630 -#: js/pitchdrummatrix.js:645 -#: js/pitchdrummatrix.js:647 -#: js/pitchdrummatrix.js:674 -#: js/pitchdrummatrix.js:676 -#: js/temperament.js:477 -#: js/temperament.js:480 -#: js/temperament.js:540 -#: js/temperament.js:542 -#: js/temperament.js:1835 -#: js/temperament.js:1837 -#: js/temperament.js:1986 -#: js/temperament.js:1988 -#: js/musickeyboard.js:522 -#: js/musickeyboard.js:682 -#: js/musickeyboard.js:684 -#: js/musickeyboard.js:756 -#: js/musickeyboard.js:758 -#: js/rhythmruler.js:298 -#: js/rhythmruler.js:300 -#: js/rhythmruler.js:314 -#: js/rhythmruler.js:316 -#: js/sampler.js:96 -#: js/sampler.js:98 -#: js/sampler.js:229 -#: js/sampler.js:235 -#: js/sampler.js:237 -#: js/tempo.js:84 -#: js/tempo.js:86 -#: js/timbre.js:432 -#: js/timbre.js:434 -#: js/timbre.js:465 -#: js/timbre.js:467 -#: js/timbre.js:746 -#: js/meterwidget.js:80 -#: js/arpeggio.js:90 -#: js/arpeggio.js:547 -#: js/arpeggio.js:549 -#: js/arpeggio.js:644 -#: js/arpeggio.js:646 -msgid "Play" +#: js/turtledefs.js:791 +msgid "A detailed guide to Music Blocks is available." msgstr "" -#: js/toolbar.js:48 -#: js/toolbar.js:109 -#: js/toolbar.js:173 -#: js/toolbar.js:229 -#: js/turtledefs.js:451 -#: js/turtledefs.js:488 -#: js/activity.js:2297 -#: js/modewidget.js:99 -#: js/modewidget.js:101 -#: js/phrasemaker.js:323 -#: js/phrasemaker.js:325 -#: js/pitchdrummatrix.js:561 -#: js/pitchdrummatrix.js:563 -#: js/temperament.js:1820 -#: js/temperament.js:1822 -#: js/meterwidget.js:101 -#: js/meterwidget.js:103 -#: js/arpeggio.js:534 -#: js/arpeggio.js:536 -msgid "Stop" +#: js/turtledefs.js:799 +msgid "Music Blocks is an open source collection of tools for exploring musical concepts." msgstr "" -#: js/toolbar.js:49 -#: js/toolbar.js:110 -#: js/toolbar.js:174 -#: js/toolbar.js:230 -#: js/turtledefs.js:498 -msgid "Record" +#: js/turtledefs.js:801 +msgid "A full list of contributors can be found in the Music Blocks GitHub repository." msgstr "" -#: js/toolbar.js:50 -#: js/toolbar.js:51 -msgid "Full screen" +#: js/turtledefs.js:803 +msgid "Music Blocks is licensed under the AGPL." msgstr "" -#: js/toolbar.js:52 -#: js/toolbar.js:112 -#: js/toolbar.js:177 -#: js/toolbar.js:232 -#: js/turtledefs.js:504 -msgid "Toggle Fullscreen" +#: js/turtledefs.js:811 +msgid "Music Blocks GitHub repository" msgstr "" -#: js/toolbar.js:53 -#: js/toolbar.js:113 -#: js/toolbar.js:178 -#: js/toolbar.js:233 -#: js/turtledefs.js:510 -#: js/StringHelper.js:33 -msgid "New project" +#: js/turtledefs.js:815 +msgid "You have finished the tour. Please enjoy Music Blocks!" msgstr "" -#: js/toolbar.js:54 -#: js/toolbar.js:114 -#: js/toolbar.js:179 -#: js/toolbar.js:234 -#: js/turtledefs.js:516 -msgid "Load project from file" +#: js/turtles.js:882 +msgid "Grid" msgstr "" -#: js/toolbar.js:55 -#: js/toolbar.js:115 -#: js/toolbar.js:116 -#: js/toolbar.js:180 -#: js/toolbar.js:235 -#: js/turtledefs.js:541 -#: js/turtledefs.js:550 -#: js/turtledefs.js:571 -msgid "Save project" +#: js/turtles.js:1024 +msgid "Expand" msgstr "" -#: js/toolbar.js:56 -#: js/toolbar.js:75 -#: js/toolbar.js:77 -#: js/toolbar.js:135 -#: js/toolbar.js:144 -#: js/toolbar.js:146 -#: js/toolbar.js:181 -#: js/toolbar.js:199 -#: js/toolbar.js:201 -#: js/toolbar.js:236 -#: js/toolbar.js:254 -#: js/toolbar.js:256 -msgid "Save project as HTML" +#: js/block-verbose.js:1616 +#: js/block-verbose.js:1735 +#: js/block.js:1580 +#: js/block.js:1699 +#: js/palette.js:605 +#: js/blocks/IntervalsBlocks.js:63 +#: js/blocks/WidgetBlocks.js:259 +msgid "temperament" msgstr "" -#: js/toolbar.js:57 -#: js/toolbar.js:117 -#: js/toolbar.js:182 -#: js/toolbar.js:237 -msgid "Find and share projects" +#: js/block-verbose.js:1630 +#: js/block.js:1594 +msgid "matrix" msgstr "" -#: js/toolbar.js:58 -#: js/toolbar.js:118 -#: js/toolbar.js:183 -#: js/toolbar.js:238 -msgid "Offline. Sharing is unavailable" +#: js/block-verbose.js:1637 +#: js/block.js:1601 +#: js/blocks/WidgetBlocks.js:1509 +#: plugins/rodi.rtp:324 +msgid "status" msgstr "" -#: js/toolbar.js:59 -#: js/toolbar.js:119 -#: js/toolbar.js:184 -#: js/toolbar.js:239 -msgid "Auxiliary menu" +#: js/block-verbose.js:1644 +#: js/block.js:1608 +msgid "drum mapper" msgstr "" -#: js/toolbar.js:61 -#: js/toolbar.js:121 -#: js/toolbar.js:186 -#: js/toolbar.js:241 -msgid "Run slowly" +#: js/block-verbose.js:1651 +#: js/block.js:1615 +msgid "ruler" msgstr "" -#: js/toolbar.js:62 -#: js/toolbar.js:122 -#: js/toolbar.js:187 -#: js/toolbar.js:242 -#: js/turtledefs.js:682 -msgid "Run step by step" +#: js/block-verbose.js:1658 +#: js/block.js:1622 +#: js/blocks/WidgetBlocks.js:397 +#.TRANS: timbre is the character or quality of a musical sound +msgid "timbre" msgstr "" -#: js/toolbar.js:63 -#: js/toolbar.js:123 -#: js/toolbar.js:188 -#: js/toolbar.js:243 -#: js/turtledefs.js:689 -msgid "Display statistics" +#: js/block-verbose.js:1665 +#: js/block.js:1629 +msgid "stair" +msgstr "" + +#: js/block-verbose.js:1672 +#: js/block.js:1636 +#: js/blocks/WidgetBlocks.js:707 +#.TRANS: the speed at music is should be played. +msgid "tempo" +msgstr "" + +#: js/block-verbose.js:1679 +#: js/block-verbose.js:1742 +#: js/block.js:1643 +#: js/block.js:1706 +#: js/blocks/IntervalsBlocks.js:1464 +#.TRANS: mode, e.g., Major in C Major +msgid "mode" +msgstr "" + +#: js/block-verbose.js:1686 +#: js/block.js:1650 +msgid "slider" +msgstr "" + +#: js/block-verbose.js:1693 +#: js/block.js:1657 +#: js/blocks/SensorsBlocks.js:1001 +msgid "keyboard" +msgstr "teclat" + +#: js/block-verbose.js:1707 +#: js/block.js:1671 +#: js/blocks/WidgetBlocks.js:1190 +#: js/blocks/WidgetBlocks.js:1228 +#.TRANS: widget for subdividing a measure into distinct rhythmic elements +msgid "rhythm maker" msgstr "" -#: js/toolbar.js:64 -#: js/toolbar.js:124 -#: js/toolbar.js:189 -#: js/toolbar.js:244 -msgid "Load plugin" +#: js/block-verbose.js:1714 +#: js/block-verbose.js:2457 +#: js/block-verbose.js:2514 +#: js/block.js:1678 +#: js/block.js:2385 +#: js/block.js:2442 +#: js/blocks/MeterBlocks.js:1367 +#: js/blocks/OrnamentBlocks.js:220 +#: js/blocks/OrnamentBlocks.js:312 +#: js/blocks/RhythmBlocks.js:33 +#: js/blocks/RhythmBlocks.js:356 +#: js/blocks/RhythmBlocks.js:766 +#: js/blocks/RhythmBlocks.js:806 +#: js/blocks/RhythmBlockPaletteBlocks.js:70 +#: js/blocks/RhythmBlockPaletteBlocks.js:252 +#: js/blocks/RhythmBlockPaletteBlocks.js:485 +#: js/blocks/RhythmBlockPaletteBlocks.js:554 +#: js/blocks/RhythmBlockPaletteBlocks.js:605 +#: js/blocks/RhythmBlockPaletteBlocks.js:875 +#: js/turtleactions/DictActions.js:85 +#: js/widgets/phrasemaker.js:942 +#: js/widgets/phrasemaker.js:2656 +#: js/widgets/phrasemaker.js:2699 +#: js/widgets/phrasemaker.js:2810 +#.TRANS: the value (e.g., 1/4 note) of the note being played. +msgid "note value" msgstr "" -#: js/toolbar.js:65 -#: js/toolbar.js:125 -#: js/toolbar.js:190 -#: js/toolbar.js:245 -#: js/turtledefs.js:696 -msgid "Delete plugin" +#: js/block-verbose.js:1721 +#: js/block-verbose.js:2382 +#: js/block-verbose.js:2405 +#: js/block.js:1685 +#: js/block.js:2310 +#: js/block.js:2333 +#: js/blocks/IntervalsBlocks.js:1071 +#: js/blocks/OrnamentBlocks.js:312 +#.TRANS: calculate a relative step between notes based on semi-tones +msgid "scalar interval" msgstr "" -#: js/toolbar.js:66 -#: js/toolbar.js:126 -#: js/toolbar.js:191 -#: js/toolbar.js:246 -msgid "Enable horizontal scrolling" +#: js/block-verbose.js:1728 +#: js/block.js:1692 +#: js/blocks/RhythmBlocks.js:148 +msgid "milliseconds" msgstr "" -#: js/toolbar.js:67 -#: js/toolbar.js:127 -#: js/toolbar.js:192 -#: js/toolbar.js:247 -msgid "Disable horizontal scrolling" +#: js/block-verbose.js:2455 +#: js/block-verbose.js:2459 +#: js/block-verbose.js:2512 +#: js/block-verbose.js:2628 +#: js/block.js:2383 +#: js/block.js:2387 +#: js/block.js:2440 +#: js/block.js:2556 +#: js/blocks/RhythmBlocks.js:712 +#: js/blocks/ProgramBlocks.js:1273 +#: js/widgets/rhythmruler.js:1183 +#: js/widgets/rhythmruler.js:1329 +msgid "silence" msgstr "" -#: js/toolbar.js:68 -#: js/toolbar.js:128 -#: js/toolbar.js:193 -#: js/toolbar.js:248 -#: js/LocalCard.js:54 -#: js/StringHelper.js:71 -msgid "Merge with current project" +#: js/block-verbose.js:2548 +#: js/block-verbose.js:3492 +#: js/block-verbose.js:3509 +#: js/activity.js:2718 +#: js/activity.js:2769 +#: js/block.js:2476 +#: js/block.js:3416 +#: js/block.js:3433 +#: js/utils/musicutils.js:3780 +#: js/utils/musicutils.js:5273 +#.TRANS: the note names must be separated by single spaces +#.TRANS: the note names must be separated by single spaces +#.TRANS: the note names must be separated by single spaces +msgid "ti la sol fa mi re do" msgstr "" -#: js/toolbar.js:69 -#: js/toolbar.js:129 -msgid "Set Pitch Preview" +#: js/block-verbose.js:2616 +#: js/block.js:2544 +#.TRANS: scalar step +#.TRANS: scalar step +msgid "down" msgstr "" -#: js/toolbar.js:70 -#: js/toolbar.js:130 -#: js/toolbar.js:194 -#: js/toolbar.js:249 -msgid "Toggle JavaScript Editor" +#: js/block-verbose.js:2617 +#: js/block.js:2545 +msgid "up" msgstr "" -#: js/toolbar.js:71 -#: js/toolbar.js:131 -#: js/toolbar.js:195 -#: js/toolbar.js:250 -#: js/turtledefs.js:724 -msgid "Restore" +#: js/block-verbose.js:3026 +#: js/block.js:2950 +msgid "Silence block cannot be removed." msgstr "" -#: js/toolbar.js:72 -#: js/toolbar.js:132 -#: js/toolbar.js:196 -#: js/toolbar.js:251 -msgid "Switch to beginner mode" +#: js/block-verbose.js:3824 +#: js/block.js:3748 +#: js/blocks.js:2607 +#: js/blocks.js:3218 +#: js/palette.js:618 +#: js/blocks/BooleanBlocks.js:77 +#: js/blocks/BooleanBlocks.js:167 +#: js/blocks/BooleanBlocks.js:251 +#: js/blocks/BooleanBlocks.js:335 +#: js/blocks/BooleanBlocks.js:433 +#: js/blocks/BooleanBlocks.js:539 +#: js/blocks/BooleanBlocks.js:640 +#: js/blocks/BooleanBlocks.js:741 +#: js/blocks/BooleanBlocks.js:847 +#: js/blocks/BooleanBlocks.js:948 +#: js/blocks/BooleanBlocks.js:1033 +#: js/blocks/SensorsBlocks.js:910 +msgid "true" msgstr "" -#: js/toolbar.js:73 -#: js/toolbar.js:133 -#: js/toolbar.js:197 -#: js/toolbar.js:252 -msgid "Switch to advanced mode" +#: js/block-verbose.js:3824 +#: js/block.js:3748 +#: js/blocks.js:2609 +#: js/blocks.js:3220 +#: js/blocks/BooleanBlocks.js:79 +#: js/blocks/BooleanBlocks.js:169 +#: js/blocks/BooleanBlocks.js:253 +#: js/blocks/BooleanBlocks.js:337 +#: js/blocks/BooleanBlocks.js:435 +#: js/blocks/BooleanBlocks.js:541 +#: js/blocks/BooleanBlocks.js:642 +#: js/blocks/BooleanBlocks.js:743 +#: js/blocks/BooleanBlocks.js:849 +#: js/blocks/BooleanBlocks.js:950 +#: js/blocks/SensorsBlocks.js:912 +msgid "false" msgstr "" -#: js/toolbar.js:74 -#: js/toolbar.js:134 -#: js/toolbar.js:143 -#: js/toolbar.js:198 -#: js/toolbar.js:253 -#: js/turtledefs.js:738 -msgid "Select language" +#: js/block-verbose.js:3835 +#: js/block-verbose.js:3848 +#: js/block.js:3759 +#: js/block.js:3772 +#: js/blocks/ExtrasBlocks.js:615 +msgid "Cartesian" msgstr "" -#: js/toolbar.js:76 -#: js/toolbar.js:79 -#: js/toolbar.js:137 -#: js/turtledefs.js:579 -msgid "Save mouse artwork as PNG" +#: js/block-verbose.js:3836 +#: js/block-verbose.js:3849 +#: js/block.js:3760 +#: js/block.js:3773 +#: js/blocks/ExtrasBlocks.js:619 +msgid "polar" msgstr "" -#: js/toolbar.js:78 -#: js/toolbar.js:136 -#: js/turtledefs.js:575 -msgid "Save mouse artwork as SVG" +#: js/block-verbose.js:3837 +#: js/block-verbose.js:3850 +#: js/block.js:3761 +#: js/block.js:3774 +#: js/blocks/ExtrasBlocks.js:623 +msgid "Cartesian+polar" msgstr "" -#: js/toolbar.js:80 -#: js/toolbar.js:138 -#: js/turtledefs.js:583 -msgid "Save music as WAV" +#: js/block-verbose.js:3838 +#: js/block-verbose.js:3857 +#: js/block.js:3762 +#: js/block.js:3781 +#: js/blocks/ExtrasBlocks.js:652 +msgid "none" msgstr "" -#: js/toolbar.js:81 -#: js/toolbar.js:139 -#: js/turtledefs.js:587 -msgid "Save sheet music as ABC" +#: js/block-verbose.js:3851 +#: js/block.js:3775 +#: js/blocks/ExtrasBlocks.js:628 +msgid "treble" msgstr "" -#: js/toolbar.js:82 -#: js/toolbar.js:140 -#: js/turtledefs.js:591 -msgid "Save sheet music as Lilypond" +#: js/block-verbose.js:3852 +#: js/block.js:3776 +#: js/blocks/ExtrasBlocks.js:632 +msgid "grand staff" msgstr "" -#: js/toolbar.js:83 -msgid "Save sheet music as MusicXML" +#: js/block-verbose.js:3853 +#: js/block.js:3777 +#: js/blocks/ExtrasBlocks.js:636 +msgid "mezzo-soprano" msgstr "" -#: js/toolbar.js:84 -#: js/toolbar.js:141 -#: js/toolbar.js:149 -#: js/toolbar.js:204 -#: js/toolbar.js:259 -#: js/turtledefs.js:562 -#: js/turtledefs.js:595 -msgid "Save block artwork as SVG" +#: js/block-verbose.js:3854 +#: js/block.js:3778 +#: js/blocks/ExtrasBlocks.js:640 +msgid "alto" msgstr "" -#: js/toolbar.js:85 -#: js/toolbar.js:142 -#: js/toolbar.js:150 -#: js/toolbar.js:205 -#: js/toolbar.js:260 -msgid "Confirm" +#: js/block-verbose.js:3855 +#: js/block.js:3779 +#: js/blocks/ExtrasBlocks.js:644 +msgid "tenor" msgstr "" -#: js/toolbar.js:86 -#: js/toolbar.js:151 -#: js/toolbar.js:206 -#: js/toolbar.js:261 -msgid "English (United States)" +#: js/block-verbose.js:3856 +#: js/block.js:3780 +#: js/utils/musicutils.js:1115 +#: js/utils/synthutils.js:80 +#: js/blocks/ExtrasBlocks.js:648 +#.TRANS: musical instrument +msgid "bass" msgstr "" -#: js/toolbar.js:87 -#: js/toolbar.js:152 -#: js/toolbar.js:207 -#: js/toolbar.js:262 -msgid "English (United Kingdom)" +#: js/block-verbose.js:3901 +#: js/block.js:3825 +#: js/blocks.js:2600 +#: js/blocks.js:3211 +msgid "on2" msgstr "" -#: js/toolbar.js:88 -#: js/toolbar.js:153 -#: js/toolbar.js:208 -#: js/toolbar.js:263 -msgid "日本語" +#: js/block-verbose.js:3903 +#: js/block.js:3827 +#: js/blocks.js:2602 +#: js/blocks.js:3213 +msgid "off" msgstr "" -#: js/toolbar.js:89 -msgid "한국어" +#: js/block-verbose.js:4470 +#: js/block.js:4394 +msgid "Not a number" msgstr "" -#: js/toolbar.js:90 -#: js/toolbar.js:155 -#: js/toolbar.js:210 -#: js/toolbar.js:265 -msgid "español" +#: js/block-verbose.js:4477 +#: js/block.js:4401 +msgid "Octave value must be between 1 and 10." msgstr "" -#: js/toolbar.js:91 -#: js/toolbar.js:156 -#: js/toolbar.js:211 -#: js/toolbar.js:266 -msgid "português" +#: js/block-verbose.js:4485 +#: js/block.js:4409 +msgid "Numbers can have at most 10 digits." msgstr "" -#: js/toolbar.js:92 -#: js/toolbar.js:157 -#: js/toolbar.js:212 -#: js/toolbar.js:267 -msgid "にほんご" +#: js/activity.js:390 +#: js/activity.js:395 +msgid "Search for blocks" msgstr "" -#: js/toolbar.js:93 -#: js/toolbar.js:158 -#: js/toolbar.js:213 -#: js/toolbar.js:268 -msgid "中文" +#: js/activity.js:1413 +msgid "Refresh your browser to change to advanced mode." msgstr "" -#: js/toolbar.js:94 -#: js/toolbar.js:159 -#: js/toolbar.js:214 -#: js/toolbar.js:269 -msgid "ภาษาไทย" +#: js/activity.js:1418 +msgid "Refresh your browser to change to beginner mode." msgstr "" -#: js/toolbar.js:95 -#: js/toolbar.js:160 -#: js/toolbar.js:215 -#: js/toolbar.js:270 -msgid "aymara" +#: js/activity.js:1477 +msgid "Catching mice" msgstr "" -#: js/toolbar.js:96 -#: js/toolbar.js:161 -#: js/toolbar.js:216 -#: js/toolbar.js:271 -msgid "quechua" +#: js/activity.js:1478 +msgid "Cleaning the instruments" msgstr "" -#: js/toolbar.js:97 -#: js/toolbar.js:162 -#: js/toolbar.js:217 -#: js/toolbar.js:272 -msgid "guarani" +#: js/activity.js:1479 +msgid "Testing key pieces" msgstr "" -#: js/toolbar.js:98 -#: js/toolbar.js:163 -#: js/toolbar.js:218 -#: js/toolbar.js:273 -msgid "हिंदी" +#: js/activity.js:1480 +msgid "Sight-reading" msgstr "" -#: js/toolbar.js:99 -#: js/toolbar.js:165 -#: js/toolbar.js:219 -#: js/toolbar.js:275 -msgid "igbo" +#: js/activity.js:1481 +msgid "Combining math and music" msgstr "" -#: js/toolbar.js:100 -#: js/toolbar.js:166 -#: js/toolbar.js:220 -#: js/toolbar.js:276 -msgid "عربى" +#: js/activity.js:1482 +msgid "Generating more blocks" msgstr "" -#: js/toolbar.js:101 -#: js/toolbar.js:164 -#: js/toolbar.js:221 -#: js/toolbar.js:274 -msgid "తెలుగు" +#: js/activity.js:1483 +msgid "Do Re Mi Fa Sol La Ti Do" msgstr "" -#: js/toolbar.js:102 -#: js/toolbar.js:167 -#: js/toolbar.js:222 -#: js/toolbar.js:277 -msgid "עִברִית" +#: js/activity.js:1484 +msgid "Tuning string instruments" msgstr "" -#: js/toolbar.js:111 -#: js/toolbar.js:175 -#: js/toolbar.js:176 -#: js/toolbar.js:231 -msgid "Full Screen" +#: js/activity.js:1485 +msgid "Pressing random keys" msgstr "" -#: js/toolbar.js:145 -#: js/toolbar.js:148 -#: js/toolbar.js:200 -#: js/toolbar.js:203 -#: js/toolbar.js:255 -#: js/toolbar.js:258 -#: js/turtledefs.js:558 -msgid "Save turtle artwork as PNG" +#: js/activity.js:1663 +msgid "plugins will be removed upon restart." msgstr "" -#: js/toolbar.js:147 -#: js/toolbar.js:202 -#: js/toolbar.js:257 -#: js/turtledefs.js:554 -msgid "Save turtle artwork as SVG" +#: js/activity.js:1672 +msgid "show Cartesian" msgstr "" -#: js/toolbar.js:154 -#: js/toolbar.js:209 -#: js/toolbar.js:264 -msgid "한국인" +#: js/activity.js:2211 +#: js/palette.js:589 +#: js/blocks/RhythmBlocks.js:923 +#: js/blocks/PitchBlocks.js:442 +#: js/blocks/PitchBlocks.js:1786 +#.TRANS: a numeric mapping of the notes in an octave based on the musical mode +msgid "scale degree" msgstr "" -#: js/toolbar.js:171 -#: js/toolbar.js:227 -msgid "About Turtle Blocks" +#: js/activity.js:2214 +#: js/palette.js:598 +msgid "voice name" msgstr "" -#: js/toolbar.js:429 -#: js/toolbar.js:440 -msgid "Turtle Wrap Off" +#: js/activity.js:2217 +#: js/palette.js:595 +msgid "invert mode" msgstr "" -#: js/toolbar.js:442 -msgid "Turtle Wrap On" +#: js/activity.js:2220 +msgid "output tools" msgstr "" -#: js/block.js:1470 -msgid "matrix" +#: js/activity.js:2223 +msgid "custom note" msgstr "" -#: js/block.js:1477 -#: js/WidgetBlocks.js:1226 -#: plugins/rodi.rtp:324 -msgid "status" +#: js/activity.js:2226 +msgid "accidental name" msgstr "" -#: js/block.js:1484 -msgid "drum mapper" +#: js/activity.js:2229 +#: js/blocks/PitchBlocks.js:855 +msgid "east indian solfege" msgstr "" -#: js/block.js:1491 -msgid "ruler" +#: js/activity.js:2232 +#: js/blocks/PitchBlocks.js:869 +msgid "note name" msgstr "" -#: js/block.js:1498 -#: js/WidgetBlocks.js:327 -#.TRANS: timbre is the character or quality of a musical sound -msgid "timbre" +#: js/activity.js:2235 +#: js/blocks/IntervalsBlocks.js:94 +msgid "temperament name" msgstr "" -#: js/block.js:1505 -msgid "stair" +#: js/activity.js:2238 +#: js/palette.js:592 +msgid "mode name" msgstr "" -#: js/block.js:1512 -#: js/WidgetBlocks.js:577 -#.TRANS: the speed at music is should be played. -msgid "tempo" +#: js/activity.js:2241 +msgid "chord name" msgstr "" -#: js/block.js:1519 -#: js/block.js:1582 -#: js/IntervalsBlocks.js:1268 -#.TRANS: mode, e.g., Major in C Major -msgid "mode" +#: js/activity.js:2244 +#: js/palette.js:615 +msgid "interval name" msgstr "" -#: js/block.js:1526 -msgid "slider" +#: js/activity.js:2247 +msgid "filter type" msgstr "" -#: js/block.js:1533 -#: js/SensorsBlocks.js:1001 -msgid "keyboard" -msgstr "teclat" - -#: js/block.js:1547 -#: js/WidgetBlocks.js:957 -#: js/WidgetBlocks.js:988 -#.TRANS: widget for subdividing a measure into distinct rhythmic elements -msgid "rhythm maker" +#: js/activity.js:2250 +msgid "oscillator type" msgstr "" -#: js/block.js:1554 -#: js/block.js:2182 -#: js/block.js:2236 -#: js/RhythmBlockPaletteBlocks.js:70 -#: js/RhythmBlockPaletteBlocks.js:251 -#: js/RhythmBlockPaletteBlocks.js:484 -#: js/RhythmBlockPaletteBlocks.js:553 -#: js/RhythmBlockPaletteBlocks.js:604 -#: js/RhythmBlockPaletteBlocks.js:874 -#: js/RhythmBlocks.js:33 -#: js/RhythmBlocks.js:356 -#: js/RhythmBlocks.js:766 -#: js/RhythmBlocks.js:806 -#: js/OrnamentBlocks.js:220 -#: js/OrnamentBlocks.js:312 -#: js/MeterBlocks.js:1367 -#: js/DictActions.js:85 -#: js/phrasemaker.js:731 -#: js/phrasemaker.js:2393 -#: js/phrasemaker.js:2436 -#: js/phrasemaker.js:2534 -#.TRANS: the value (e.g., 1/4 note) of the note being played. -msgid "note value" +#: js/activity.js:2253 +#: js/blocks.js:2479 +#: js/blocks.js:2487 +msgid "audio file" msgstr "" -#: js/block.js:1561 -#: js/block.js:2110 -#: js/block.js:2133 -#: js/IntervalsBlocks.js:875 -#: js/OrnamentBlocks.js:312 -#.TRANS: calculate a relative step between notes based on semi-tones -msgid "scalar interval" +#: js/activity.js:2256 +#: js/blocks/DrumBlocks.js:32 +msgid "noise name" msgstr "" -#: js/block.js:1568 -#: js/RhythmBlocks.js:148 -msgid "milliseconds" +#: js/activity.js:2259 +#: js/blocks/DrumBlocks.js:75 +msgid "drum name" msgstr "" -#: js/block.js:2180 -#: js/block.js:2184 -#: js/block.js:2234 -#: js/block.js:2345 -#: js/ProgramBlocks.js:1273 -#: js/RhythmBlocks.js:712 -#: js/rhythmruler.js:834 -#: js/rhythmruler.js:961 -msgid "silence" +#: js/activity.js:2262 +#: js/blocks/DrumBlocks.js:119 +msgid "effects name" msgstr "" -#: js/block.js:2265 -#: js/block.js:3134 -#: js/block.js:3151 -#: js/activity.js:2336 -#: js/activity.js:2387 -#: js/musicutils.js:2932 -#: js/musicutils.js:4287 -#.TRANS: the note names must be separated by single spaces -#.TRANS: the note names must be separated by single spaces -msgid "ti la sol fa mi re do" +#: js/activity.js:2265 +msgid "wrap mode" msgstr "" -#: js/block.js:2333 -#.TRANS: scalar step -msgid "down" +#: js/activity.js:2268 +msgid "load file" msgstr "" -#: js/block.js:2334 -msgid "up" +#: js/activity.js:2435 +#: js/activity.js:5851 +msgid "This block is deprecated." msgstr "" -#: js/block.js:3477 -#: js/block.js:3490 -#: js/ExtrasBlocks.js:612 -msgid "Cartesian" +#: js/activity.js:2437 +#: js/activity.js:5853 +msgid "Block cannot be found." msgstr "" -#: js/block.js:3478 -#: js/block.js:3491 -#: js/ExtrasBlocks.js:616 -msgid "polar" +#: js/activity.js:2645 +msgid "Saving block artwork" msgstr "" -#: js/block.js:3479 -#: js/block.js:3492 -#: js/ExtrasBlocks.js:620 -msgid "Cartesian+polar" +#: js/activity.js:2656 +msgid "Erase" msgstr "" -#: js/block.js:3480 -#: js/block.js:3499 -#: js/ExtrasBlocks.js:649 -msgid "none" +#: js/activity.js:2683 +#: js/activity.js:2705 +msgid "Paste" msgstr "" -#: js/block.js:3493 -#: js/ExtrasBlocks.js:625 -msgid "treble" +#: js/activity.js:2687 +msgid "Save block help" msgstr "" -#: js/block.js:3494 -#: js/ExtrasBlocks.js:629 -msgid "grand staff" +#: js/activity.js:2772 +msgid "Jumping to the bottom of the page." msgstr "" -#: js/block.js:3495 -#: js/ExtrasBlocks.js:633 -msgid "mezzo-soprano" +#: js/activity.js:2778 +msgid "Scrolling up." msgstr "" -#: js/block.js:3496 -#: js/ExtrasBlocks.js:637 -msgid "alto" +#: js/activity.js:2783 +msgid "Scrolling down." msgstr "" -#: js/block.js:3497 -#: js/ExtrasBlocks.js:641 -msgid "tenor" +#: js/activity.js:2788 +msgid "Extracting block" msgstr "" -#: js/block.js:3498 -#: js/ExtrasBlocks.js:645 -#: js/musicutils.js:736 -#: js/synthutils.js:64 -#.TRANS: musical instrument -msgid "bass" +#: js/activity.js:2796 +msgid "Moving block up." msgstr "" -#: js/block.js:4075 -msgid "Not a number" +#: js/activity.js:2817 +msgid "Moving block down." msgstr "" -#: js/block.js:4082 -msgid "Octave value must be between 1 and 10." +#: js/activity.js:2838 +msgid "Moving block left." msgstr "" -#: js/block.js:4090 -msgid "Numbers can have at most 10 digits." +#: js/activity.js:2855 +msgid "Moving block right." msgstr "" -#: js/notation.js:353 -msgid "Lilypond cannot process pickup of " +#: js/activity.js:2870 +msgid "Jump to home position." msgstr "" -#: js/turtledefs.js:40 -#.TRANS: put the URL to the guide here, e.g., https://github.com/sugarlabs/turtleblocksjs/tree/master/guide/README.md -msgid "guide url" +#: js/activity.js:2897 +msgid "Hide blocks" msgstr "" -#: js/turtledefs.js:85 -#: js/turtledefs.js:437 -msgid "Turtle Blocks is a Logo-inspired turtle that draws colorful pictures with snap-together visual-programming blocks." +#: js/activity.js:4500 +msgid "Click the run button to run the project." msgstr "" -#: js/turtledefs.js:118 -#: js/turtledefs.js:220 -msgid "search" +#: js/activity.js:5692 +msgid "Show/hide block" msgstr "" -#: js/turtledefs.js:120 -#: js/turtledefs.js:222 -#: js/WidgetBlocks.js:437 -#: js/MeterBlocks.js:1343 -#.TRANS: musical meter (time signature), e.g., 4:4 -msgid "meter" +#: js/activity.js:5698 +msgid "Expand/collapse blocks" msgstr "" -#: js/turtledefs.js:122 -#: js/turtledefs.js:224 -msgid "intervals" +#: js/activity.js:5976 +msgid "Could not parse JSON input." msgstr "" -#: js/turtledefs.js:124 -#: js/turtledefs.js:226 -msgid "ornament" +#: js/activity.js:6475 +#: js/activity.js:6580 +#: js/activity.js:6631 +msgid "Cannot load project from the file. Please check the file type." msgstr "" -#: js/turtledefs.js:125 -#: js/turtledefs.js:227 -#: js/VolumeBlocks.js:362 -#: js/VolumeBlocks.js:502 -#: js/VolumeBlocks.js:545 -msgid "volume" +#: js/activity.js:6917 +msgid "Invalid parameters" msgstr "" -#: js/turtledefs.js:129 -#: js/turtledefs.js:231 -msgid "boxes" +#: js/blocks.js:1212 +#: js/blocks.js:3444 +#: js/blocks.js:3834 +#: js/blocks.js:3865 +#: js/blocks.js:3914 +#: js/blocks.js:3949 +#: js/blocks.js:6586 +#: js/palette.js:509 +#: js/palette.js:638 +#: js/palette.js:1105 +#: js/blocks/BoxesBlocks.js:282 +#: js/blocks/BoxesBlocks.js:285 +#: js/blocks/BoxesBlocks.js:405 +#: js/blocks/BoxesBlocks.js:594 +msgid "box" +msgstr "caixa" + +#: js/blocks.js:1713 +msgid "Consider breaking this stack into parts." msgstr "" -#: js/turtledefs.js:130 -#: js/turtledefs.js:232 -msgid "widgets" +#: js/blocks.js:2472 +#: js/palette.js:653 +#: js/blocks/MediaBlocks.js:602 +msgid "open file" msgstr "" -#: js/turtledefs.js:131 -#: js/turtledefs.js:233 -#: js/phrasemaker.js:824 -msgid "graphics" +#: js/blocks.js:3247 +#: js/palette.js:574 +#: js/blocks/MediaBlocks.js:892 +#: js/blocks/MediaBlocks.js:963 +msgid "text" +msgstr "text" + +#: js/blocks.js:3443 +#: js/palette.js:641 +#: js/palette.js:642 +#: js/blocks/BoxesBlocks.js:514 +msgid "store in box" msgstr "" -#: js/turtledefs.js:134 -#: js/turtledefs.js:236 -msgid "boolean" +#: js/blocks.js:3448 +#: js/blocks.js:3888 +#: js/blocks.js:3923 +#: js/blocks.js:3958 +#: js/blocks.js:5862 +#: js/blocks.js:5883 +#: js/blocks/BoxesBlocks.js:772 +msgid "box1" msgstr "" -#: js/turtledefs.js:137 -#: js/turtledefs.js:239 -#: js/HeapBlocks.js:59 -#: js/status.js:147 -msgid "heap" +#: js/blocks.js:3450 +#: js/blocks.js:3890 +#: js/blocks.js:3925 +#: js/blocks.js:3960 +#: js/blocks.js:5864 +#: js/blocks.js:5885 +#: js/blocks/BoxesBlocks.js:663 +msgid "box2" msgstr "" -#: js/turtledefs.js:138 -#: js/turtledefs.js:240 -#: js/ProgramBlocks.js:495 -#: js/DictBlocks.js:142 -msgid "dictionary" +#: js/blocks.js:4122 +#: js/palette.js:639 +#: js/palette.js:644 +#: js/palette.js:1041 +#: js/blocks/BoxesBlocks.js:591 +msgid "store in" msgstr "" -#: js/turtledefs.js:139 -#: js/turtledefs.js:241 -msgid "ensemble" +#: js/blocks.js:4122 +#: js/blocks/BoxesBlocks.js:595 +#: js/blocks/DictBlocks.js:215 +#: js/blocks/DictBlocks.js:289 +#: js/blocks/EnsembleBlocks.js:391 +#: js/blocks/EnsembleBlocks.js:402 +#: js/blocks/MediaBlocks.js:746 +#: js/blocks/PitchBlocks.js:656 +#: js/blocks/PitchBlocks.js:934 +#: js/blocks/PitchBlocks.js:1866 +#: js/blocks/ProgramBlocks.js:390 +#: js/blocks/ProgramBlocks.js:495 +#: js/blocks/ProgramBlocks.js:658 +#: js/blocks/ToneBlocks.js:1025 +msgid "name" msgstr "" -#: js/turtledefs.js:140 -#: js/turtledefs.js:242 -msgid "extras" +#: js/blocks.js:4122 +#: js/blocks/BoxesBlocks.js:75 +#: js/blocks/BoxesBlocks.js:595 +#: js/blocks/DictBlocks.js:289 +#: js/blocks/DictBlocks.js:430 +#: js/blocks/HeapBlocks.js:544 +#: js/blocks/RhythmBlocks.js:1130 +msgid "value" msgstr "" -#: js/turtledefs.js:142 -#: js/turtledefs.js:244 -#.TRANS: program as in computer program -#.TRANS: program as in computer program -msgid "program" +#: js/blocks.js:4465 +msgid "Forever loop detected inside a note value block. Unexpected things may happen." msgstr "" -#: js/turtledefs.js:143 -#: js/turtledefs.js:245 -msgid "my blocks" +#: js/blocks.js:4988 +msgid "There is no block selected." msgstr "" -#: js/turtledefs.js:185 -#: js/turtledefs.js:281 -msgid "artwork" +#: js/blocks.js:5091 +#: js/blocks/MediaBlocks.js:888 +msgid "show" msgstr "" -#: js/turtledefs.js:185 -#: js/turtledefs.js:281 -msgid "logic" +#: js/blocks.js:5094 +#: js/blocks/MediaBlocks.js:803 +#.TRANS: Avatar is the image used to determine the appearance of the mouse. +msgid "avatar" msgstr "" -#: js/turtledefs.js:185 -#: js/turtledefs.js:281 -msgid "music" +#: js/blocks.js:5097 +#: js/blocks/ToneBlocks.js:1010 +#: js/widgets/sampler.js:975 +#.TRANS: The sound sample that the user uploads. +msgid "sample" msgstr "" -#: js/turtledefs.js:187 -#: js/turtledefs.js:463 -msgid "Music Blocks is a collection of tools for exploring fundamental musical concepts in a fun way." +#: js/lilypond.js:606 +msgid "brown rat" msgstr "" -#: js/turtledefs.js:436 -msgid "Welcome to Turtle Blocks" +#: js/lilypond.js:607 +msgid "mole" msgstr "" -#: js/turtledefs.js:438 -#: js/turtledefs.js:465 -#: js/turtledefs.js:774 -#: js/turtledefs.js:805 -msgid "The current version is" +#: js/lilypond.js:608 +msgid "chipmunk" msgstr "" -#: js/turtledefs.js:446 -#: js/turtledefs.js:483 -msgid "Click the run button to run the project in fast mode." +#: js/lilypond.js:609 +msgid "red squirrel" msgstr "" -#: js/turtledefs.js:452 -msgid "Stop the turtle." +#: js/lilypond.js:610 +msgid "guinea pig" msgstr "" -#: js/turtledefs.js:454 -#: js/turtledefs.js:491 -msgid "You can also type Alt-S to stop." +#: js/lilypond.js:611 +msgid "capybara" msgstr "" -#: js/turtledefs.js:462 -#: js/help.js:333 -msgid "Welcome to Music Blocks" +#: js/lilypond.js:612 +msgid "coypu" msgstr "" -#: js/turtledefs.js:472 -#: js/help.js:334 -msgid "Meet Mr. Mouse!" +#: js/lilypond.js:613 +msgid "black rat" msgstr "" -#: js/turtledefs.js:473 -msgid "Mr Mouse is our Music Blocks conductor." +#: js/lilypond.js:614 +msgid "grey squirrel" msgstr "" -#: js/turtledefs.js:475 -msgid "Mr Mouse encourages you to explore Music Blocks." +#: js/lilypond.js:615 +msgid "flying squirrel" msgstr "" -#: js/turtledefs.js:477 -msgid "Let us start our tour!" +#: js/lilypond.js:616 +msgid "bat" msgstr "" -#: js/turtledefs.js:489 -msgid "Stop the music (and the mice)." +#: js/lilypond.js:749 +#: js/lilypond.js:913 +#: js/lilypond.js:951 +#: js/blocks/ActionBlocks.js:1256 +#: js/blocks/ExtrasBlocks.js:556 +msgid "start drum" msgstr "" -#: js/turtledefs.js:499 -msgid "Record your project as video." +#: js/logo.js:61 +msgid "Not a valid pitch name" msgstr "" -#: js/turtledefs.js:505 -msgid "Toggle Fullscreen mode." +#: js/logo.js:507 +#: js/blocks/ProgramBlocks.js:258 +#: js/blocks/ProgramBlocks.js:427 +msgid "You must select a file." msgstr "" -#: js/turtledefs.js:511 -msgid "Initialize a new project." +#: js/logo.js:1696 +msgid "Playback is ready." msgstr "" -#: js/turtledefs.js:517 -msgid "You can also load projects from the file system." +#: js/macros.js:711 +#: js/utils/musicutils.js:1162 +#: js/utils/synthutils.js:202 +#.TRANS: animal sound effect +msgid "duck" msgstr "" -#: js/turtledefs.js:522 -#: js/StringHelper.js:46 -msgid "Delete" +#: js/notation.js:353 +msgid "Lilypond cannot process pickup of " msgstr "" -#: js/turtledefs.js:523 -msgid "To delete a block, just right-click on it, then you will be able to see the delete option" +#: js/palette.js:571 +msgid "grid" msgstr "" -#: js/turtledefs.js:528 -#: js/activity.js:2270 -#: js/LocalCard.js:31 -msgid "Copy" +#: js/palette.js:580 +msgid "effect" msgstr "" -#: js/turtledefs.js:529 -msgid "To copy a block, just right-click on it, then you will be able to see the copy option" +#: js/palette.js:586 +msgid "sargam" msgstr "" -#: js/turtledefs.js:535 -msgid "To extract a block, just right-click on it, then you will be able to see the extract option" +#: js/palette.js:601 +#: js/blocks/PitchBlocks.js:1209 +msgid "custom pitch" msgstr "" -#: js/turtledefs.js:542 -#: js/turtledefs.js:552 -#: js/turtledefs.js:573 -msgid "Save your project to a file." +#: js/palette.js:609 +msgid "accidental" msgstr "" -#: js/turtledefs.js:549 -#: js/turtledefs.js:570 -msgid "save" +#: js/palette.js:633 +#: js/blocks/PitchBlocks.js:405 +msgid "pitch converter" msgstr "" -#: js/turtledefs.js:556 -#: js/turtledefs.js:577 -msgid "Save graphics from your project to as SVG." +#: js/piemenus.js:200 +#: js/utils/musicutils.js:1187 +#: js/utils/musicutils.js:1207 +#: js/widgets/musickeyboard.js:2341 +#: js/widgets/phrasemaker.js:1908 +#: js/widgets/sampler.js:810 +#.TRANS: double sharp is a music term related to pitch +msgid "double sharp" msgstr "" -#: js/turtledefs.js:560 -#: js/turtledefs.js:581 -msgid "Save graphics from your project as PNG." +#: js/piemenus.js:201 +#: js/utils/musicutils.js:1185 +#: js/utils/musicutils.js:1208 +#: js/blocks/PitchBlocks.js:1539 +#: js/turtleactions/PitchActions.js:323 +#: js/widgets/musickeyboard.js:2342 +#: js/widgets/phrasemaker.js:1909 +#: js/widgets/sampler.js:811 +#.TRANS: sharp is a music term related to pitch +#.TRANS: sharp is a half-step up in pitch +msgid "sharp" msgstr "" -#: js/turtledefs.js:564 -#: js/turtledefs.js:597 -msgid "Save block artwork as an SVG file." +#: js/piemenus.js:202 +#: js/utils/musicutils.js:1183 +#: js/utils/musicutils.js:1209 +#: js/widgets/musickeyboard.js:2343 +#: js/widgets/phrasemaker.js:1910 +#: js/widgets/sampler.js:812 +#.TRANS: natural is a music term related to pitch +msgid "natural" msgstr "" -#: js/turtledefs.js:585 -msgid "Save audio from your project as WAV." +#: js/piemenus.js:203 +#: js/utils/musicutils.js:1181 +#: js/utils/musicutils.js:1210 +#: js/blocks/PitchBlocks.js:1498 +#: js/turtleactions/PitchActions.js:326 +#: js/widgets/musickeyboard.js:2344 +#: js/widgets/phrasemaker.js:1911 +#: js/widgets/sampler.js:813 +#.TRANS: flat is a music term related to pitch +#.TRANS: flat is a half-step down in pitch +msgid "flat" msgstr "" -#: js/turtledefs.js:589 -msgid "Save your project to as an ABC file." +#: js/piemenus.js:204 +#: js/utils/musicutils.js:1179 +#: js/utils/musicutils.js:1211 +#: js/widgets/musickeyboard.js:2345 +#: js/widgets/phrasemaker.js:1912 +#: js/widgets/sampler.js:814 +#.TRANS: double flat is a music term related to pitch +msgid "double flat" msgstr "" -#: js/turtledefs.js:593 -msgid "Save your project to as a Lilypond file." +#: js/piemenus.js:2864 +#: js/utils/musicutils.js:1006 +#: js/blocks/PitchBlocks.js:1385 +#.TRANS: unison is a music term related to intervals +#.TRANS: unison means the note is the same as the current note +msgid "unison" msgstr "" -#: js/turtledefs.js:604 -msgid "Load samples from server" +#: js/piemenus.js:3018 +#: js/piemenus.js:3091 +#: js/utils/musicutils.js:1014 +#: js/utils/musicutils.js:1189 +#: js/utils/musicutils.js:1326 +#.TRANS: major is a music term related to intervals and mode +msgid "major" msgstr "" -#: js/turtledefs.js:605 -msgid "This button opens a viewer for loading example projects." +#: js/piemenus.js:3018 +#: js/piemenus.js:3091 +#: js/utils/musicutils.js:1032 +#.TRANS: modal scale for music +msgid "ionian" msgstr "" -#: js/turtledefs.js:611 -msgid "Palette buttons" +#: js/piemenus.js:3020 +#: js/piemenus.js:3095 +#: js/utils/musicutils.js:1012 +#: js/utils/musicutils.js:1190 +#: js/utils/musicutils.js:1323 +#.TRANS: minor is a music term related to intervals and mode +msgid "minor" msgstr "" -#: js/turtledefs.js:612 -msgid "This toolbar contains the palette buttons including Rhythm Pitch Tone Action and more." +#: js/piemenus.js:3020 +#: js/piemenus.js:3095 +#: js/utils/musicutils.js:1042 +#.TRANS: modal scale for music +msgid "aeolian" msgstr "" -#: js/turtledefs.js:614 -msgid "Click to show the palettes of blocks and drag blocks from the palettes onto the canvas to use them." +#: js/piemenus.js:3410 +msgid "Duplicate" msgstr "" -#: js/turtledefs.js:620 -msgid "Cartesian/Polar" +#: js/piemenus.js:3412 +msgid "Move to trash" msgstr "" -#: js/turtledefs.js:621 -msgid "Show or hide a coordinate grid." +#: js/piemenus.js:3413 +#: js/widgets/timbre.js:968 +#: planet/js/StringHelper.js:69 +msgid "Close" msgstr "" -#: js/turtledefs.js:627 -msgid "Clear the screen and return the mice to their initial positions." +#: js/piemenus.js:3419 +msgid "Save stack" msgstr "" -#: js/turtledefs.js:633 -msgid "Collapse the graphics window." +#: js/piemenus.js:3449 +msgid "In order to copy a sample, you must reload the widget, import the sample again, and export it." msgstr "" -#: js/turtledefs.js:638 -#: js/activity.js:4256 -#: js/activity.js:4256 -msgid "Home" +#: js/piemenus.js:3812 +msgid "You have chosen key " msgstr "" -#: js/turtledefs.js:639 -msgid "Return all blocks to the center of the screen." +#: js/piemenus.js:3816 +msgid " for your pitch preview." msgstr "" -#: js/turtledefs.js:644 -msgid "Show/hide blocks" +#: js/turtle-singer.js:1363 +#.TRANS: partials are weighted components in a harmonic series +msgid "You must have at least one Partial block inside of a Weighted-partial block" msgstr "" -#: js/turtledefs.js:645 -msgid "Hide or show the blocks and the palettes." +#: js/turtle-singer.js:2077 +msgid "synth cannot play chords." msgstr "" -#: js/turtledefs.js:650 -msgid "Expand/collapse collapsable blocks" +#: js/utils/musicutils.js:505 +#: js/utils/musicutils.js:645 +#: js/widgets/pitchdrummatrix.js:228 +#: js/widgets/musickeyboard.js:2885 +msgid "rest" msgstr "" -#: js/turtledefs.js:651 -msgid "Expand or collapse start and action stacks." +#: js/utils/musicutils.js:689 +msgid "Perfect unison" msgstr "" -#: js/turtledefs.js:658 -#: js/activity.js:4265 -msgid "Decrease block size" +#: js/utils/musicutils.js:689 +msgid "Diminished second" msgstr "" -#: js/turtledefs.js:659 -msgid "Decrease the size of the blocks." +#: js/utils/musicutils.js:690 +msgid "Minor second" msgstr "" -#: js/turtledefs.js:664 -#: js/activity.js:4267 -msgid "Increase block size" +#: js/utils/musicutils.js:690 +msgid "Augmented unison" msgstr "" -#: js/turtledefs.js:665 -msgid "Increase the size of the blocks." +#: js/utils/musicutils.js:691 +msgid "Major second" msgstr "" -#: js/turtledefs.js:670 -msgid "Expand/collapse option toolbar" +#: js/utils/musicutils.js:691 +msgid "Diminished third" msgstr "" -#: js/turtledefs.js:671 -msgid "Click this button to expand or collapse the auxillary toolbar." +#: js/utils/musicutils.js:692 +msgid "Minor third" msgstr "" -#: js/turtledefs.js:676 -msgid "Run slow" +#: js/utils/musicutils.js:692 +msgid "Augmented second" msgstr "" -#: js/turtledefs.js:677 -msgid "Click to run the project in slow mode." +#: js/utils/musicutils.js:693 +msgid "Major third" msgstr "" -#: js/turtledefs.js:683 -msgid "Click to run the project step by step." +#: js/utils/musicutils.js:693 +msgid "Diminished fourth" msgstr "" -#: js/turtledefs.js:690 -msgid "Display statistics about your Music project." +#: js/utils/musicutils.js:694 +msgid "Perfect fourth" msgstr "" -#: js/turtledefs.js:697 -msgid "Delete a selected plugin." +#: js/utils/musicutils.js:694 +msgid "Augmented third" msgstr "" -#: js/turtledefs.js:704 -msgid "Enable scrolling" +#: js/utils/musicutils.js:695 +msgid "Diminished fifth" msgstr "" -#: js/turtledefs.js:705 -msgid "You can scroll the blocks on the canvas." +#: js/utils/musicutils.js:695 +msgid "Augmented fourth" msgstr "" -#: js/turtledefs.js:714 -msgid "Wrap Turtle" +#: js/utils/musicutils.js:696 +msgid "Perfect fifth" msgstr "" -#: js/turtledefs.js:715 -msgid "Turn Turtle wrapping On or Off." +#: js/utils/musicutils.js:696 +msgid "Diminished sixth" msgstr "" -#: js/turtledefs.js:725 -msgid "Restore blocks from the trash." +#: js/utils/musicutils.js:697 +msgid "Minor sixth" msgstr "" -#: js/turtledefs.js:732 -msgid "Switch mode" +#: js/utils/musicutils.js:697 +msgid "Augmented fifth" msgstr "" -#: js/turtledefs.js:733 -msgid "Switch between beginner and advance modes." +#: js/utils/musicutils.js:698 +msgid "Major sixth" msgstr "" -#: js/turtledefs.js:739 -msgid "Select your language preference." +#: js/utils/musicutils.js:698 +msgid "Diminished seventh" msgstr "" -#: js/turtledefs.js:745 -msgid "Keyboard shortcuts" +#: js/utils/musicutils.js:699 +msgid "Minor seventh" msgstr "" -#: js/turtledefs.js:746 -msgid "You can type d to create a do block and r to create a re block etc." +#: js/utils/musicutils.js:699 +msgid "Augmented sixth" msgstr "" -#: js/turtledefs.js:753 -msgid "Show these messages." +#: js/utils/musicutils.js:700 +msgid "Major seventh" msgstr "" -#: js/turtledefs.js:759 -#: js/turtledefs.js:790 -#: js/help.js:335 -msgid "Guide" +#: js/utils/musicutils.js:700 +msgid "Diminished octave" msgstr "" -#: js/turtledefs.js:760 -msgid "A detailed guide to Turtle Blocks is available." +#: js/utils/musicutils.js:701 +msgid "Perfect octave" msgstr "" -#: js/turtledefs.js:764 -msgid "Turtle Blocks Guide" +#: js/utils/musicutils.js:701 +msgid "Augmented seventh" msgstr "" -#: js/turtledefs.js:767 -#: js/turtledefs.js:798 -#: js/help.js:336 -msgid "About" +#: js/utils/musicutils.js:702 +msgid "Minor ninth" msgstr "" -#: js/turtledefs.js:768 -msgid "Turtle Blocks is an open source collection of tools for exploring musical concepts." +#: js/utils/musicutils.js:702 +msgid "Augmented octave" msgstr "" -#: js/turtledefs.js:770 -msgid "A full list of contributors can be found in the Turtle Blocks GitHub repository." +#: js/utils/musicutils.js:703 +msgid "Major ninth" msgstr "" -#: js/turtledefs.js:772 -msgid "Turtle Blocks is licensed under the AGPL." +#: js/utils/musicutils.js:703 +msgid "Diminished tenth" msgstr "" -#: js/turtledefs.js:780 -msgid "Turtle Blocks GitHub repository" +#: js/utils/musicutils.js:704 +msgid "Minor tenth" msgstr "" -#: js/turtledefs.js:783 -#: js/turtledefs.js:814 -#: js/help.js:337 -#: js/help.js:359 -msgid "Congratulations." +#: js/utils/musicutils.js:704 +msgid "Augmented ninth" msgstr "" -#: js/turtledefs.js:784 -msgid "You have finished the tour. Please enjoy Turtle Blocks!" +#: js/utils/musicutils.js:705 +msgid "Major tenth" msgstr "" -#: js/turtledefs.js:791 -msgid "A detailed guide to Music Blocks is available." +#: js/utils/musicutils.js:705 +msgid "Diminished eleventh" msgstr "" -#: js/turtledefs.js:795 -#: js/SaveInterface.js:76 -msgid "Music Blocks Guide" +#: js/utils/musicutils.js:706 +msgid "Perfect eleventh" msgstr "" -#: js/turtledefs.js:799 -msgid "Music Blocks is an open source collection of tools for exploring musical concepts." +#: js/utils/musicutils.js:706 +msgid "Augmented tenth" msgstr "" -#: js/turtledefs.js:801 -msgid "A full list of contributors can be found in the Music Blocks GitHub repository." +#: js/utils/musicutils.js:707 +msgid "Diminished twelfth" msgstr "" -#: js/turtledefs.js:803 -msgid "Music Blocks is licensed under the AGPL." +#: js/utils/musicutils.js:707 +msgid "Augmented eleventh" msgstr "" -#: js/turtledefs.js:811 -msgid "Music Blocks GitHub repository" +#: js/utils/musicutils.js:708 +msgid "Perfect twelfth" msgstr "" -#: js/turtledefs.js:815 -msgid "You have finished the tour. Please enjoy Music Blocks!" +#: js/utils/musicutils.js:708 +msgid "Diminished thirteenth" msgstr "" -#: js/activity.js:369 -msgid "Search for blocks" +#: js/utils/musicutils.js:709 +msgid "Minor thirteenth" msgstr "" -#: js/activity.js:1145 -msgid "Refresh your browser to change to advanced mode." +#: js/utils/musicutils.js:709 +msgid "Augmented fifth, plus an octave" msgstr "" -#: js/activity.js:1150 -msgid "Refresh your browser to change to beginner mode." +#: js/utils/musicutils.js:710 +msgid "Major thirteenth" msgstr "" -#: js/activity.js:1184 -msgid "Catching mice" +#: js/utils/musicutils.js:710 +msgid "Diminished seventh, plus an octave" msgstr "" -#: js/activity.js:1185 -msgid "Cleaning the instruments" +#: js/utils/musicutils.js:838 +#.TRANS: ordinal number. Please keep exactly one space between each number. +msgid "1st 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th" msgstr "" -#: js/activity.js:1186 -msgid "Testing key pieces" +#: js/utils/musicutils.js:1008 +#: js/utils/musicutils.js:1191 +#: js/utils/musicutils.js:1325 +#.TRANS: augmented is a music term related to intervals +msgid "augmented" msgstr "" -#: js/activity.js:1187 -msgid "Sight-reading" +#: js/utils/musicutils.js:1010 +#: js/utils/musicutils.js:1192 +#: js/utils/musicutils.js:1324 +#.TRANS: diminished is a music term related to intervals and mode +msgid "diminished" msgstr "" -#: js/activity.js:1188 -msgid "Combining math and music" +#: js/utils/musicutils.js:1016 +#: js/utils/musicutils.js:1322 +#: js/blocks/IntervalsBlocks.js:649 +#: js/turtleactions/IntervalsActions.js:120 +#: js/turtleactions/IntervalsActions.js:124 +#.TRANS: perfect is a music term related to intervals +msgid "perfect" msgstr "" -#: js/activity.js:1189 -msgid "Generating more blocks" +#: js/utils/musicutils.js:1018 +#.TRANS: twelve semi-tone scale for music +msgid "chromatic" msgstr "" -#: js/activity.js:1190 -msgid "Do Re Mi Fa Sol La Ti Do" +#: js/utils/musicutils.js:1019 +msgid "algerian" msgstr "" -#: js/activity.js:1191 -msgid "Tuning string instruments" +#: js/utils/musicutils.js:1020 +msgid "spanish" msgstr "" -#: js/activity.js:1192 -msgid "Pressing random keys" +#: js/utils/musicutils.js:1022 +#.TRANS: modal scale in music +msgid "octatonic" msgstr "" -#: js/activity.js:1351 -msgid "plugins will be removed upon restart." +#: js/utils/musicutils.js:1024 +#.TRANS: harmonic major scale in music +msgid "harmonic major" msgstr "" -#: js/activity.js:1360 -msgid "show Cartesian" +#: js/utils/musicutils.js:1026 +#.TRANS: natural minor scales in music +msgid "natural minor" msgstr "" -#: js/activity.js:1842 -msgid "output tools" +#: js/utils/musicutils.js:1028 +#.TRANS: harmonic minor scale in music +msgid "harmonic minor" msgstr "" -#: js/activity.js:1845 -msgid "custom note" +#: js/utils/musicutils.js:1030 +#.TRANS: melodic minor scale in music +msgid "melodic minor" msgstr "" -#: js/activity.js:1848 -msgid "accidental name" +#: js/utils/musicutils.js:1034 +#.TRANS: modal scale for music +msgid "dorian" msgstr "" -#: js/activity.js:1851 -#: js/PitchBlocks.js:855 -msgid "east indian solfege" +#: js/utils/musicutils.js:1036 +#.TRANS: modal scale for music +msgid "phrygian" msgstr "" -#: js/activity.js:1854 -#: js/PitchBlocks.js:869 -msgid "note name" +#: js/utils/musicutils.js:1038 +#.TRANS: modal scale for music +msgid "lydian" msgstr "" -#: js/activity.js:1857 -#: js/IntervalsBlocks.js:94 -msgid "temperament name" +#: js/utils/musicutils.js:1040 +#.TRANS: modal scale for music +msgid "mixolydian" msgstr "" -#: js/activity.js:1863 -msgid "chord name" +#: js/utils/musicutils.js:1044 +#.TRANS: modal scale for music +msgid "locrian" msgstr "" -#: js/activity.js:1869 -msgid "filter type" +#: js/utils/musicutils.js:1046 +#.TRANS: minor jazz scale for music +msgid "jazz minor" msgstr "" -#: js/activity.js:1872 -msgid "oscillator type" +#: js/utils/musicutils.js:1048 +#.TRANS: bebop scale for music +msgid "bebop" msgstr "" -#: js/activity.js:1878 -#: js/DrumBlocks.js:32 -msgid "noise name" +#: js/utils/musicutils.js:1049 +msgid "arabic" msgstr "" -#: js/activity.js:1881 -#: js/DrumBlocks.js:75 -msgid "drum name" +#: js/utils/musicutils.js:1050 +msgid "byzantine" msgstr "" -#: js/activity.js:1884 -#: js/DrumBlocks.js:119 -msgid "effects name" +#: js/utils/musicutils.js:1052 +#.TRANS: musical scale for music by Verdi +msgid "enigmatic" msgstr "" -#: js/activity.js:1887 -msgid "wrap mode" +#: js/utils/musicutils.js:1053 +msgid "ethiopian" msgstr "" -#: js/activity.js:1890 -msgid "load file" +#: js/utils/musicutils.js:1055 +#.TRANS: Ethiopic scale for music +msgid "geez" msgstr "" -#: js/activity.js:2056 -msgid "This block is deprecated." +#: js/utils/musicutils.js:1056 +msgid "hindu" msgstr "" -#: js/activity.js:2058 -msgid "Block cannot be found." +#: js/utils/musicutils.js:1057 +msgid "hungarian" msgstr "" -#: js/activity.js:2266 -msgid "Saving block artwork" +#: js/utils/musicutils.js:1059 +#.TRANS: minor Romanian scale for music +msgid "romanian minor" msgstr "" -#: js/activity.js:2277 -msgid "Erase" +#: js/utils/musicutils.js:1060 +msgid "spanish gypsy" msgstr "" -#: js/activity.js:2301 -#: js/activity.js:2323 -msgid "Paste" +#: js/utils/musicutils.js:1062 +#.TRANS: musical scale for Mid-Eastern music +msgid "maqam" msgstr "" -#: js/activity.js:2305 -msgid "Save block help" +#: js/utils/musicutils.js:1064 +#.TRANS: minor blues scale for music +msgid "minor blues" msgstr "" -#: js/activity.js:2390 -msgid "Jumping to the bottom of the page." +#: js/utils/musicutils.js:1066 +#.TRANS: major blues scale for music +msgid "major blues" msgstr "" -#: js/activity.js:2396 -msgid "Scrolling up." +#: js/utils/musicutils.js:1067 +msgid "whole tone" msgstr "" -#: js/activity.js:2401 -msgid "Scrolling down." +#: js/utils/musicutils.js:1069 +#.TRANS: pentatonic is a general term that means "five note scale". This scale is typically known as "minor pentatonic" +msgid "minor pentatonic" msgstr "" -#: js/activity.js:2406 -msgid "Extracting block" +#: js/utils/musicutils.js:1071 +#.TRANS: pentatonic is a general term that means "five note scale". This scale is typically known as "major pentatonic" +msgid "major pentatonic" msgstr "" -#: js/activity.js:2414 -msgid "Moving block up." +#: js/utils/musicutils.js:1072 +msgid "chinese" msgstr "" -#: js/activity.js:2435 -msgid "Moving block down." +#: js/utils/musicutils.js:1073 +msgid "egyptian" msgstr "" -#: js/activity.js:2456 -msgid "Moving block left." +#: js/utils/musicutils.js:1075 +#.TRANS: https://en.wikipedia.org/wiki/Hirajoshi_scale NOTE: There are three different versions of this scale +msgid "hirajoshi" msgstr "" -#: js/activity.js:2473 -msgid "Moving block right." +#: js/utils/musicutils.js:1076 +msgid "Japan" msgstr "" -#: js/activity.js:2488 -msgid "Jump to home position." +#: js/utils/musicutils.js:1078 +#.TRANS: https://en.wikipedia.org/wiki/In_scale and https://en.wikipedia.org/wiki/Sakura_Sakura +msgid "in" msgstr "" -#: js/activity.js:2515 -msgid "Hide blocks" +#: js/utils/musicutils.js:1080 +#.TRANS: https://en.wikipedia.org/wiki/Miny%C5%8D_scale +msgid "minyo" msgstr "" -#: js/activity.js:3389 -msgid "Click the run button to run the project." +#: js/utils/musicutils.js:1082 +#.TRANS: Italian mathematician +msgid "fibonacci" msgstr "" -#: js/activity.js:3456 -#: js/SaveInterface.js:131 -#: js/SaveInterface.js:204 -#: js/SaveInterface.js:262 -#: js/SaveInterface.js:389 -#: js/SaveInterface.js:417 -#: js/ProjectStorage.js:27 -#: js/GlobalPlanet.js:467 -#: js/GlobalPlanet.js:469 -#: js/GlobalPlanet.js:495 -#.TRANS: default project title when saving as Lilypond -msgid "My Project" +#: js/utils/musicutils.js:1083 +#: js/utils/musicutils.js:1134 +#: js/utils/musicutils.js:1177 +#: js/utils/musicutils.js:1199 +#: js/utils/synthutils.js:134 +#: js/blocks/IntervalsBlocks.js:1124 +#: js/blocks/ToneBlocks.js:946 +#: js/blocks/VolumeBlocks.js:411 +#: js/blocks/WidgetBlocks.js:399 +#: js/blocks/WidgetBlocks.js:404 +#: js/turtleactions/VolumeActions.js:218 +#: js/widgets/modewidget.js:919 +#.TRANS: customize voice +msgid "custom" msgstr "" -#: js/activity.js:4261 -msgid "Show/hide block" +#: js/utils/musicutils.js:1085 +#: js/utils/musicutils.js:1531 +#: js/blocks/WidgetBlocks.js:176 +#.TRANS: highpass filter +msgid "highpass" msgstr "" -#: js/activity.js:4263 -msgid "Expand/collapse blocks" +#: js/utils/musicutils.js:1087 +#: js/utils/musicutils.js:1532 +#.TRANS: lowpass filter +msgid "lowpass" msgstr "" -#: js/activity.js:4381 -msgid "Could not parse JSON input." +#: js/utils/musicutils.js:1089 +#: js/utils/musicutils.js:1533 +#.TRANS: bandpass filter +msgid "bandpass" msgstr "" -#: js/activity.js:4684 -#: js/activity.js:4771 -#: js/activity.js:4821 -msgid "Cannot load project from the file. Please check the file type." +#: js/utils/musicutils.js:1091 +#: js/utils/musicutils.js:1534 +#.TRANS: high-shelf filter +msgid "highshelf" msgstr "" -#: js/activity.js:5051 -msgid "Invalid parameters" +#: js/utils/musicutils.js:1093 +#: js/utils/musicutils.js:1535 +#.TRANS: low-shelf filter +msgid "lowshelf" msgstr "" -#: js/turtle-singer.js:1334 -#.TRANS: partials are weighted components in a harmonic series -msgid "You must have at least one Partial block inside of a Weighted-partial block" +#: js/utils/musicutils.js:1095 +#: js/utils/musicutils.js:1536 +#.TRANS: notch-shelf filter +msgid "notch" msgstr "" -#: js/turtle-singer.js:2048 -msgid "synth cannot play chords." +#: js/utils/musicutils.js:1097 +#: js/utils/musicutils.js:1537 +#.TRANS: all-pass filter +msgid "allpass" msgstr "" -#: js/lilypond.js:614 -msgid "brown rat" +#: js/utils/musicutils.js:1099 +#: js/utils/musicutils.js:1538 +#.TRANS: peaking filter +msgid "peaking" msgstr "" -#: js/lilypond.js:615 -msgid "mole" +#: js/utils/musicutils.js:1100 +#: js/utils/musicutils.js:1546 +#: js/utils/synthutils.js:126 +#: js/blocks/PitchBlocks.js:85 +#.TRANS: sine wave +msgid "sine" msgstr "" -#: js/lilypond.js:616 -msgid "chipmunk" +#: js/utils/musicutils.js:1101 +#: js/utils/musicutils.js:1547 +#: js/utils/synthutils.js:128 +#: js/blocks/PitchBlocks.js:39 +#.TRANS: square wave +msgid "square" msgstr "" -#: js/lilypond.js:617 -msgid "red squirrel" +#: js/utils/musicutils.js:1102 +#: js/utils/musicutils.js:1548 +#: js/utils/synthutils.js:132 +#: js/blocks/PitchBlocks.js:62 +#: js/blocks/ToneBlocks.js:39 +#.TRANS: triangle wave +msgid "triangle" msgstr "" -#: js/lilypond.js:618 -msgid "guinea pig" +#: js/utils/musicutils.js:1103 +#: js/utils/musicutils.js:1549 +#: js/utils/synthutils.js:130 +#: js/blocks/PitchBlocks.js:108 +#.TRANS: sawtooth wave +msgid "sawtooth" msgstr "" -#: js/lilypond.js:619 -msgid "capybara" +#: js/utils/musicutils.js:1105 +#: js/utils/musicutils.js:1312 +#: js/blocks/PitchBlocks.js:931 +#: js/blocks/PitchBlocks.js:937 +#: js/turtleactions/PitchActions.js:469 +#.TRANS: even numbers +#.TRANS: invert based on even or odd number or musical scale +msgid "even" msgstr "" -#: js/lilypond.js:620 -msgid "coypu" +#: js/utils/musicutils.js:1107 +#: js/utils/musicutils.js:1313 +#: js/blocks/PitchBlocks.js:937 +#: js/turtleactions/PitchActions.js:471 +#.TRANS: odd numbers +msgid "odd" msgstr "" -#: js/lilypond.js:621 -msgid "black rat" +#: js/utils/musicutils.js:1108 +#: js/utils/musicutils.js:1314 +#: js/blocks/PitchBlocks.js:937 +#: js/turtleactions/PitchActions.js:473 +msgid "scalar" msgstr "" -#: js/lilypond.js:622 -msgid "grey squirrel" +#: js/utils/musicutils.js:1109 +#: js/utils/synthutils.js:72 +#: js/blocks/VolumeBlocks.js:47 +#.TRANS: musical instrument +msgid "piano" msgstr "" -#: js/lilypond.js:623 -msgid "flying squirrel" +#: js/utils/musicutils.js:1110 +#: js/utils/synthutils.js:74 +#.TRANS: musical instrument +msgid "violin" msgstr "" -#: js/lilypond.js:624 -msgid "bat" +#: js/utils/musicutils.js:1111 +#: js/utils/synthutils.js:76 +#.TRANS: viola musical instrument +msgid "viola" msgstr "" -#: js/lilypond.js:757 -#: js/lilypond.js:921 -#: js/lilypond.js:959 -#: js/ActionBlocks.js:1256 -#: js/ExtrasBlocks.js:553 -msgid "start drum" +#: js/utils/musicutils.js:1112 +#: js/utils/synthutils.js:114 +#.TRANS: xylophone musical instrument +msgid "xylophone" msgstr "" -#: js/SaveInterface.js:59 -#: js/SaveInterface.js:61 -#: js/SaveInterface.js:93 -msgid "Music Blocks Project" +#: js/utils/musicutils.js:1113 +#: js/utils/synthutils.js:136 +#.TRANS: vibraphone musical instrument +msgid "vibraphone" msgstr "" -#: js/SaveInterface.js:63 -msgid "This project was created in Music Blocks" +#: js/utils/musicutils.js:1114 +#: js/utils/synthutils.js:78 +#.TRANS: musical instrument +msgid "cello" msgstr "" -#: js/SaveInterface.js:67 -msgid "Music Blocks is a Free/Libre Software application." +#: js/utils/musicutils.js:1116 +#: js/utils/synthutils.js:82 +#.TRANS: viola musical instrument +msgid "double bass" msgstr "" -#: js/SaveInterface.js:69 -msgid "The source code can be accessed at" +#: js/utils/musicutils.js:1117 +#: js/utils/synthutils.js:84 +#: js/widgets/rhythmruler.js:2511 +#.TRANS: musical instrument +msgid "guitar" msgstr "" -#: js/SaveInterface.js:72 -msgid "For more information, please consult the" +#: js/utils/musicutils.js:1118 +#: js/utils/synthutils.js:86 +#.TRANS: musical instrument +msgid "acoustic guitar" msgstr "" -#: js/SaveInterface.js:83 -msgid "Alternatively, open the file in Music Blocks using the Load project button." +#: js/utils/musicutils.js:1119 +#: js/utils/synthutils.js:88 +#.TRANS: musical instrument +msgid "flute" msgstr "" -#: js/SaveInterface.js:85 -msgid "Project Code" +#: js/utils/musicutils.js:1120 +#: js/utils/synthutils.js:90 +#.TRANS: musical instrument +msgid "clarinet" msgstr "" -#: js/SaveInterface.js:87 -msgid "This code stores data about the blocks in a project." +#: js/utils/musicutils.js:1121 +#: js/utils/synthutils.js:92 +#.TRANS: musical instrument +msgid "saxophone" msgstr "" -#: js/SaveInterface.js:89 -msgid "Show" +#: js/utils/musicutils.js:1122 +#: js/utils/synthutils.js:94 +#.TRANS: musical instrument +msgid "tuba" msgstr "" -#: js/SaveInterface.js:91 -msgid "Hide" +#: js/utils/musicutils.js:1123 +#: js/utils/synthutils.js:96 +#.TRANS: musical instrument +msgid "trumpet" msgstr "" -#: js/SaveInterface.js:197 -#: js/SaveInterface.js:58 -msgid "No description provided" +#: js/utils/musicutils.js:1124 +#: js/utils/synthutils.js:98 +#.TRANS: musical instrument +msgid "oboe" msgstr "" -#: js/SaveInterface.js:332 -msgid "Your recording is in progress." +#: js/utils/musicutils.js:1125 +#: js/utils/synthutils.js:100 +#.TRANS: musical instrument +msgid "trombone" msgstr "" -#: js/SaveInterface.js:401 -#.TRANS: File name prompt for save as Lilypond -msgid "File name" +#: js/utils/musicutils.js:1126 +#: js/utils/synthutils.js:116 +#.TRANS: polytone synthesizer +msgid "electronic synth" msgstr "" -#: js/SaveInterface.js:403 -#: js/StringHelper.js:39 -#.TRANS: Project title prompt for save as Lilypond -msgid "Project title" +#: js/utils/musicutils.js:1127 +#: js/utils/synthutils.js:118 +#.TRANS: simple monotone synthesizer +msgid "simple 1" msgstr "" -#: js/SaveInterface.js:405 -#.TRANS: Project title prompt for save as Lilypond -msgid "Project author" +#: js/utils/musicutils.js:1128 +msgid "simple 2" msgstr "" -#: js/SaveInterface.js:407 -#.TRANS: MIDI prompt for save as Lilypond -msgid "Include MIDI output?" +#: js/utils/musicutils.js:1129 +msgid "simple 3" msgstr "" -#: js/SaveInterface.js:409 -#.TRANS: Guitar prompt for save as Lilypond -msgid "Include guitar tablature output?" +#: js/utils/musicutils.js:1130 +msgid "simple 4" msgstr "" -#: js/SaveInterface.js:411 -#.TRANS: Lilypond is a scripting language for generating sheet music -msgid "Save as Lilypond" +#: js/utils/musicutils.js:1131 +#: js/utils/synthutils.js:58 +#: js/blocks/DrumBlocks.js:191 +#.TRANS: white noise synthesizer +msgid "white noise" msgstr "" -#: js/SaveInterface.js:426 -#: js/EnsembleBlocks.js:75 -#: js/EnsembleBlocks.js:154 -#: js/EnsembleBlocks.js:216 -#: js/EnsembleBlocks.js:302 -#: js/EnsembleBlocks.js:348 -#: js/EnsembleBlocks.js:389 -#: js/EnsembleBlocks.js:441 -#: js/EnsembleBlocks.js:490 -#: js/EnsembleBlocks.js:536 -#: js/EnsembleBlocks.js:583 -#: js/EnsembleBlocks.js:637 -#: js/EnsembleBlocks.js:753 -#: js/EnsembleBlocks.js:840 -#: js/EnsembleBlocks.js:899 -#: js/EnsembleBlocks.js:942 -#: js/EnsembleBlocks.js:1212 -#: js/EnsembleBlocks.js:1280 -#.TRANS: default project author when saving as Lilypond -msgid "Mr. Mouse" +#: js/utils/musicutils.js:1132 +#: js/utils/synthutils.js:60 +#.TRANS: brown noise synthesizer +msgid "brown noise" msgstr "" -#: js/SaveInterface.js:573 -msgid "The Lilypond code is copied to clipboard. You can paste it here: " +#: js/utils/musicutils.js:1133 +#: js/utils/synthutils.js:62 +#.TRANS: pink noise synthesizer +msgid "pink noise" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:50 -#: js/RhythmBlockPaletteBlocks.js:232 -#.TRANS: rhythm block -#.TRANS: translate "rhythm1" as rhythm -msgid "rhythm1" +#: js/utils/musicutils.js:1135 +#: js/utils/synthutils.js:148 +#: js/widgets/rhythmruler.js:2057 +#: js/widgets/rhythmruler.js:2319 +#.TRANS: musical instrument +msgid "snare drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:70 -#: js/RhythmBlockPaletteBlocks.js:251 -#: js/RhythmBlockPaletteBlocks.js:484 -#: js/RhythmBlockPaletteBlocks.js:553 -#: js/RhythmBlockPaletteBlocks.js:874 -msgid "number of notes" +#: js/utils/musicutils.js:1136 +#: js/utils/synthutils.js:150 +#.TRANS: musical instrument +msgid "kick drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:126 -msgid "polyphonic rhythm" +#: js/utils/musicutils.js:1137 +#: js/utils/synthutils.js:152 +#.TRANS: musical instrument +msgid "tom tom" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:218 -msgid "The Rhythm block is used to generate rhythm patterns." +#: js/utils/musicutils.js:1138 +#: js/utils/synthutils.js:154 +#.TRANS: musical instrument +msgid "floor tom" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:279 -msgid "1/64 note" +#: js/utils/musicutils.js:1139 +#: js/utils/synthutils.js:156 +#.TRANS: musical instrument +msgid "bass drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:303 -msgid "1/32 note" +#: js/utils/musicutils.js:1140 +#: js/utils/synthutils.js:158 +#.TRANS: a drum made from an inverted cup +msgid "cup drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:331 -msgid "1/16 note" +#: js/utils/musicutils.js:1141 +#: js/utils/synthutils.js:160 +#.TRANS: musical instrument +msgid "darbuka drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:359 -msgid "eighth note" +#: js/utils/musicutils.js:1142 +#: js/utils/synthutils.js:164 +#.TRANS: musical instrument +msgid "hi hat" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:387 -msgid "quarter note" +#: js/utils/musicutils.js:1143 +#: js/utils/synthutils.js:166 +#.TRANS: a small metal bell +msgid "ride bell" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:415 -msgid "half note" +#: js/utils/musicutils.js:1144 +#: js/utils/synthutils.js:168 +#.TRANS: musical instrument +msgid "cow bell" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:443 -msgid "whole note" +#: js/utils/musicutils.js:1145 +msgid "japanese drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:481 -#: js/RhythmBlockPaletteBlocks.js:550 -#: js/RhythmBlockPaletteBlocks.js:601 -#.TRANS: A tuplet is a note value divided into irregular time values. -msgid "tuplet" +#: js/utils/musicutils.js:1146 +#: js/utils/synthutils.js:174 +#.TRANS: musical instrument +msgid "japanese bell" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:767 -msgid "septuplet" +#: js/utils/musicutils.js:1147 +#: js/utils/synthutils.js:170 +#.TRANS: musical instrument +msgid "triangle bell" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:795 -msgid "quintuplet" +#: js/utils/musicutils.js:1148 +#: js/utils/synthutils.js:172 +#.TRANS: musical instrument +msgid "finger cymbals" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:823 -msgid "triplet" +#: js/utils/musicutils.js:1149 +#: js/utils/synthutils.js:176 +#.TRANS: a musically tuned set of bells +msgid "chime" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:850 -msgid "simple tuplet" +#: js/utils/musicutils.js:1150 +#: js/utils/synthutils.js:178 +#.TRANS: a musical instrument +msgid "gong" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:860 -msgid "Tuplets are a collection of notes that get scaled to a specific duration." +#: js/utils/musicutils.js:1151 +#: js/utils/synthutils.js:180 +#.TRANS: sound effect +msgid "clang" msgstr "" -#: js/WidgetBlocks.js:71 -#.TRANS: sound envelope (ADSR) -msgid "envelope" +#: js/utils/musicutils.js:1152 +#: js/utils/synthutils.js:182 +#.TRANS: sound effect +msgid "crash" msgstr "" -#: js/WidgetBlocks.js:79 -#.TRANS: Attack time is the time taken for initial run-up of level from nil to peak, beginning when the key is first pressed. -msgid "attack" +#: js/utils/musicutils.js:1153 +#: js/utils/synthutils.js:184 +#.TRANS: sound effect +msgid "bottle" msgstr "" -#: js/WidgetBlocks.js:81 -#.TRANS: Decay time is the time taken for the subsequent run down from the attack level to the designated sustain level. -msgid "decay" +#: js/utils/musicutils.js:1154 +#: js/utils/synthutils.js:186 +#.TRANS: sound effect +msgid "clap" msgstr "" -#: js/WidgetBlocks.js:83 -#.TRANS: Sustain level is the level during the main sequence of the sound's duration, until the key is released. -msgid "sustain" +#: js/utils/musicutils.js:1155 +#: js/utils/synthutils.js:188 +#.TRANS: sound effect +msgid "slap" msgstr "" -#: js/WidgetBlocks.js:85 -#.TRANS: Release time is the time taken for the level to decay from the sustain level to zero after the key is released. -msgid "release" +#: js/utils/musicutils.js:1156 +#: js/utils/synthutils.js:190 +#.TRANS: sound effect +msgid "splash" msgstr "" -#: js/WidgetBlocks.js:96 -msgid "Attack value should be from 0 to 100." +#: js/utils/musicutils.js:1157 +#: js/utils/synthutils.js:192 +#.TRANS: sound effect +msgid "bubbles" msgstr "" -#: js/WidgetBlocks.js:99 -msgid "Decay value should be from 0 to 100." +#: js/utils/musicutils.js:1158 +#: js/utils/synthutils.js:194 +#.TRANS: sound effect +msgid "raindrop" msgstr "" -#: js/WidgetBlocks.js:102 -msgid "Sustain value should be from 0 to 100." +#: js/utils/musicutils.js:1159 +#: js/utils/synthutils.js:196 +#.TRANS: animal sound effect +msgid "cat" msgstr "" -#: js/WidgetBlocks.js:105 -msgid "Release value should be from 0-100." +#: js/utils/musicutils.js:1160 +#: js/utils/synthutils.js:198 +#.TRANS: animal sound effect +msgid "cricket" msgstr "" -#: js/WidgetBlocks.js:121 -msgid "You are adding multiple envelope blocks." +#: js/utils/musicutils.js:1161 +#: js/utils/synthutils.js:200 +#.TRANS: animal sound effect +msgid "dog" msgstr "" -#: js/WidgetBlocks.js:144 -#.TRANS: a filter removes some unwanted components from a signal -msgid "filter" +#: js/utils/musicutils.js:1163 +#: js/utils/synthutils.js:102 +#.TRANS: musical instrument +msgid "banjo" msgstr "" -#: js/WidgetBlocks.js:149 -#: js/musicutils.js:706 -#: js/musicutils.js:1105 -#.TRANS: highpass filter -msgid "highpass" +#: js/utils/musicutils.js:1164 +#: js/utils/synthutils.js:104 +#.TRANS: musical instrument +msgid "koto" msgstr "" -#: js/WidgetBlocks.js:152 -#: js/ToneBlocks.js:42 -#: js/timbre.js:1558 -#: js/timbre.js:1808 -#.TRANS: type of filter, e.g., lowpass, highpass, etc. -#.TRANS: there are different types (sine, triangle, square...) of oscillators. -msgid "type" +#: js/utils/musicutils.js:1165 +#: js/utils/synthutils.js:106 +#.TRANS: musical instrument +msgid "dulcimer" msgstr "" -#: js/WidgetBlocks.js:154 -#: js/timbre.js:1818 -#.TRANS: rolloff is the steepness of a change in frequency. -msgid "rolloff" +#: js/utils/musicutils.js:1166 +#: js/utils/synthutils.js:108 +#.TRANS: musical instrument +msgid "electric guitar" msgstr "" -#: js/WidgetBlocks.js:155 -#: js/MediaBlocks.js:692 -#: js/temperament.js:382 -#: js/temperament.js:417 -#: js/temperament.js:477 -#: js/temperament.js:485 -#: js/temperament.js:1348 -#: js/timbre.js:1842 -msgid "frequency" +#: js/utils/musicutils.js:1167 +#: js/utils/synthutils.js:110 +#.TRANS: musical instrument +msgid "bassoon" msgstr "" -#: js/WidgetBlocks.js:179 -#.TRANS: rolloff is the steepness of a change in frequency. -msgid "Rolloff value should be either -12, -24, -48, or -96 decibels/octave." +#: js/utils/musicutils.js:1168 +#: js/utils/synthutils.js:112 +#.TRANS: musical instrument +msgid "celeste" msgstr "" -#: js/WidgetBlocks.js:211 -msgid "The Temperament tool is used to define custom tuning." +#: js/utils/musicutils.js:1170 +#: js/widgets/temperament.js:787 +#.TRANS: musical temperament +msgid "equal" msgstr "" -#: js/WidgetBlocks.js:277 -#: js/sampler.js:329 -msgid "Upload a sample and adjust its pitch center." +#: js/utils/musicutils.js:1172 +#.TRANS: musical temperament +msgid "Pythagorean" msgstr "" -#: js/WidgetBlocks.js:284 -#.TRANS: the speed at music is should be played. -msgid "sampler" +#: js/utils/musicutils.js:1174 +#.TRANS: musical temperament +msgid "just intonation" msgstr "" -#: js/WidgetBlocks.js:329 -#: js/WidgetBlocks.js:334 -#: js/IntervalsBlocks.js:928 -#: js/VolumeBlocks.js:411 -#: js/ToneBlocks.js:946 -#: js/VolumeActions.js:218 -#: js/musicutils.js:704 -#: js/musicutils.js:755 -#: js/musicutils.js:798 -#: js/musicutils.js:820 -#: js/musicutils.js:1136 -#: js/synthutils.js:118 -#: js/modewidget.js:919 -#.TRANS: customize voice -msgid "custom" +#: js/utils/musicutils.js:1176 +#.TRANS: musical temperament +msgid "meantone" msgstr "" -#: js/WidgetBlocks.js:432 -msgid "The Meter block opens a tool to select strong beats for the meter." +#: js/utils/musicutils.js:1193 +msgid "major 7th" msgstr "" -#: js/WidgetBlocks.js:473 -msgid "The oscilloscope block opens a tool to visualize waveforms." +#: js/utils/musicutils.js:1194 +msgid "minor 7th" msgstr "" -#: js/WidgetBlocks.js:478 -msgid "oscilloscope" +#: js/utils/musicutils.js:1195 +msgid "dominant 7th" msgstr "" -#: js/WidgetBlocks.js:530 -msgid "The Custom mode block opens a tool to explore musical mode (the spacing of the notes in a scale)." +#: js/utils/musicutils.js:1196 +msgid "minor-major 7th" msgstr "" -#: js/WidgetBlocks.js:536 -#.TRANS: musical mode is the pattern of half-steps in an octave, e.g., Major or Minor modes -msgid "custom mode" +#: js/utils/musicutils.js:1197 +msgid "fully-diminished 7th" msgstr "" -#: js/WidgetBlocks.js:570 -msgid "The Tempo block opens a metronome to visualize the beat." +#: js/utils/musicutils.js:1198 +msgid "half-diminished 7th" msgstr "" -#: js/WidgetBlocks.js:617 -msgid "The Arpeggio Widget is used to compose chord sequences." +#: js/utils/musicutils.js:1557 +#: js/utils/musicutils.js:1569 +msgid "Equal (12EDO)" msgstr "" -#: js/WidgetBlocks.js:623 -#: js/IntervalsBlocks.js:683 -msgid "arpeggio" +#: js/utils/musicutils.js:1558 +#: js/utils/musicutils.js:1570 +msgid "5-limit Just Intonation" msgstr "" -#: js/WidgetBlocks.js:677 -msgid "The Pitch drum matrix is used to map pitches to drum sounds." +#: js/utils/musicutils.js:1559 +#: js/utils/musicutils.js:1571 +msgid "Pythagorean (3-limit JI)" msgstr "" -#: js/WidgetBlocks.js:682 -#.TRANS: makes a mapping between pitches and drum sounds -msgid "pitch-drum mapper" +#: js/utils/musicutils.js:1560 +#: js/utils/musicutils.js:1561 +#: js/utils/musicutils.js:1572 +#: js/utils/musicutils.js:1573 +msgid "Meantone" msgstr "" -#: js/WidgetBlocks.js:724 -msgid "You must have at least one pitch block and one drum block in the matrix." +#: js/utils/musicutils.js:1574 +msgid "Custom" msgstr "" -#: js/WidgetBlocks.js:746 -msgid "The Pitch slider tool to is used to generate pitches at selected frequencies." +#: js/utils/musicutils.js:5387 +#: js/utils/musicutils.js:5430 +msgid "current" msgstr "" -#: js/WidgetBlocks.js:751 -#.TRANS: widget to generate pitches using a slider -msgid "pitch slider" +#: js/utils/musicutils.js:5390 +#: js/utils/musicutils.js:5421 +msgid "next" msgstr "" -#: js/WidgetBlocks.js:788 -msgid "chromatic keyboard" +#: js/utils/musicutils.js:5393 +#: js/utils/musicutils.js:5426 +msgid "previous" msgstr "" -#: js/WidgetBlocks.js:815 -#: js/WidgetBlocks.js:874 -#.TRANS: widget to generate pitches using a slider -msgid "music keyboard" +#: js/utils/synthutils.js:120 +#.TRANS: simple monotone synthesizer +msgid "simple-2" msgstr "" -#: js/WidgetBlocks.js:859 -#: js/WidgetBlocks.js:866 -msgid "The Music keyboard block opens a piano keyboard that can be used to create notes." +#: js/utils/synthutils.js:122 +#.TRANS: simple monotone synthesizer +msgid "simple-3" msgstr "" -#: js/WidgetBlocks.js:910 -msgid "The Pitch staircase tool to is used to generate pitches from a given ratio." +#: js/utils/synthutils.js:124 +#.TRANS: simple monotone synthesizer +msgid "simple-4" msgstr "" -#: js/WidgetBlocks.js:917 -#.TRANS: generate a progressive sequence of pitches -msgid "pitch staircase" +#: js/utils/synthutils.js:162 +#.TRANS: musical instrument +msgid "taiko" msgstr "" -#: js/WidgetBlocks.js:982 -msgid "The Rhythm Maker block opens a tool to create drum machines." +#: js/blocks/ActionBlocks.js:58 +msgid "The Return block will return a value from an action." msgstr "" -#: js/WidgetBlocks.js:1036 -msgid "G major scale" +#: js/blocks/ActionBlocks.js:75 +msgid "return" msgstr "" -#: js/WidgetBlocks.js:1064 -msgid "C major scale" +#: js/blocks/ActionBlocks.js:128 +msgid "The Return to URL block will return a value to a webpage." msgstr "" -#: js/WidgetBlocks.js:1097 -msgid "The Phrase Maker block opens a tool to create musical phrases." +#: js/blocks/ActionBlocks.js:145 +msgid "return to URL" msgstr "" -#: js/WidgetBlocks.js:1104 -#.TRANS: assigns pitch to a sequence of beats to generate a melody -msgid "phrase maker" +#: js/blocks/ActionBlocks.js:233 +#: js/blocks/ActionBlocks.js:290 +#: js/blocks/ActionBlocks.js:501 +#: js/blocks/ActionBlocks.js:688 +msgid "The Calculate block returns a value calculated by an action." msgstr "" -#: js/WidgetBlocks.js:1168 -msgid "You must have at least one pitch block and one rhythm block in the matrix." +#: js/blocks/ActionBlocks.js:251 +#: js/blocks/ActionBlocks.js:517 +#: js/blocks/ActionBlocks.js:707 +msgid "calculate" msgstr "" -#: js/WidgetBlocks.js:1220 -msgid "The Status block opens a tool for inspecting the status of Music Blocks as it is running." +#: js/blocks/ActionBlocks.js:376 +#: js/blocks/ActionBlocks.js:593 +#: js/blocks/ActionBlocks.js:942 +#: js/blocks/ActionBlocks.js:1389 +#.TRANS: do is the do something or take an action. +msgid "The Do block is used to initiate an action." msgstr "" -#: js/IntervalsBlocks.js:45 -msgid "set temperament" +#: js/blocks/ActionBlocks.js:390 +#: js/blocks/ActionBlocks.js:610 +#: js/blocks/ActionBlocks.js:959 +#: js/blocks/ActionBlocks.js:1048 +#: js/blocks/MeterBlocks.js:769 +msgid "do1" msgstr "" -#: js/IntervalsBlocks.js:63 -#: js/MediaBlocks.js:746 -#: js/PitchBlocks.js:657 -#: js/PitchBlocks.js:933 -#: js/PitchBlocks.js:972 -#: js/PitchBlocks.js:1005 -#: js/PitchBlocks.js:1166 -#: js/PitchBlocks.js:1679 -#: js/PitchBlocks.js:1720 -#: js/PitchBlocks.js:1827 -#: js/ToneBlocks.js:1025 -#.TRANS: adjusts the shift up or down by one octave (twelve half-steps in the interval between two notes, one having twice or half the frequency in Hz of the other.) -msgid "octave" +#: js/blocks/ActionBlocks.js:390 +#: js/blocks/ActionBlocks.js:610 +#: js/blocks/ActionBlocks.js:959 +#: js/blocks/ActionBlocks.js:1048 +#: js/blocks/FlowBlocks.js:742 +#: js/blocks/FlowBlocks.js:822 +#: js/blocks/MeterBlocks.js:769 +msgid "do" msgstr "" -#: js/IntervalsBlocks.js:99 -msgid "The Temperament name block is used to select a tuning method." +#: js/blocks/ActionBlocks.js:791 +#: js/blocks/ActionBlocks.js:865 +msgid "The Arg block contains the value of an argument passed to an action." msgstr "" -#: js/IntervalsBlocks.js:161 -msgid "doubly" +#: js/blocks/ActionBlocks.js:806 +#: js/blocks/ActionBlocks.js:878 +msgid "arg" msgstr "" -#: js/IntervalsBlocks.js:166 -msgid "The Doubly block will double the size of an interval." +#: js/blocks/ActionBlocks.js:836 +#: js/blocks/ActionBlocks.js:900 +#: js/blocks/ActionBlocks.js:908 +msgid "Invalid argument" msgstr "" -#: js/IntervalsBlocks.js:262 -msgid "interval number" +#: js/blocks/ActionBlocks.js:944 +msgid "In the example, it is used with the One of block to choose a random phase." msgstr "" -#: js/IntervalsBlocks.js:330 -#.TRANS: measure the distance between two pitches in semi-tones -msgid "semi-tone interval measure" +#: js/blocks/ActionBlocks.js:1019 +#: js/blocks/ActionBlocks.js:1026 +msgid "The Listen block is used to listen for an event such as a mouse click." msgstr "" -#: js/IntervalsBlocks.js:397 -#: js/IntervalsBlocks.js:513 -msgid "You must use two pitch blocks when measuring an interval." +#: js/blocks/ActionBlocks.js:1028 +msgid "When the event happens, an action is taken." msgstr "" -#: js/IntervalsBlocks.js:439 -msgid "The Scalar interval block measures the distance between two notes in the current key and mode." +#: js/blocks/ActionBlocks.js:1045 +msgid "on" msgstr "" -#: js/IntervalsBlocks.js:445 -#.TRANS: measure the distance between two pitches in steps of musical scale -msgid "scalar interval measure" +#: js/blocks/ActionBlocks.js:1048 +#: js/blocks/ActionBlocks.js:1049 +#: js/blocks/ActionBlocks.js:1153 +msgid "event" msgstr "" -#: js/IntervalsBlocks.js:592 -#: js/musicutils.js:637 -#: js/musicutils.js:908 -#.TRANS: perfect is a music term related to intervals -msgid "perfect" +#: js/blocks/ActionBlocks.js:1133 +msgid "The Broadcast block is used to trigger an event." msgstr "" -#: js/IntervalsBlocks.js:621 -msgid "In the figure, we add sol# to sol." +#: js/blocks/ActionBlocks.js:1151 +msgid "broadcast" msgstr "" -#: js/IntervalsBlocks.js:627 -#: js/OrnamentBlocks.js:220 -#.TRANS: calculate a relative step between notes based on semi-tones -msgid "semi-tone interval" +#: js/blocks/ActionBlocks.js:1208 +msgid "Each Start block is a separate voice." msgstr "" -#: js/IntervalsBlocks.js:676 -msgid "The output of the example is: do, mi, sol, sol, ti, mi" +#: js/blocks/ActionBlocks.js:1304 +msgid "It is often used for storing a phrase of music that is repeated." msgstr "" -#: js/IntervalsBlocks.js:735 -msgid "The Chord block calculates common chords." +#: js/blocks/ActionBlocks.js:1495 +msgid "define temperament" msgstr "" -#: js/IntervalsBlocks.js:737 -msgid "In the figure, we generate a C-major chord." +#: js/blocks/BooleanBlocks.js:44 +msgid "The Not block is the logical not operator." msgstr "" -#: js/IntervalsBlocks.js:742 -msgid "chord" -msgstr "" +#: js/blocks/BooleanBlocks.js:62 +msgid "not" +msgstr "no" -#: js/IntervalsBlocks.js:794 -msgid "The Ratio Interval block calculates an interval based on a ratio." +#: js/blocks/BooleanBlocks.js:134 +msgid "The And block is the logical and operator." msgstr "" -#: js/IntervalsBlocks.js:799 -msgid "ratio interval" -msgstr "" +#: js/blocks/BooleanBlocks.js:152 +msgid "and" +msgstr "i" -#: js/IntervalsBlocks.js:868 -msgid "In the figure, we add la to sol." +#: js/blocks/BooleanBlocks.js:218 +msgid "The Or block is the logical or operator." msgstr "" -#: js/IntervalsBlocks.js:924 -#.TRANS: define a custom mode -msgid "define mode" +#: js/blocks/BooleanBlocks.js:236 +msgid "or" +msgstr "o" + +#: js/blocks/BooleanBlocks.js:302 +msgid "The XOR block is the logical XOR operator." msgstr "" -#: js/IntervalsBlocks.js:977 -msgid "movable Do" +#: js/blocks/BooleanBlocks.js:320 +msgid "xor" msgstr "" -#: js/IntervalsBlocks.js:1028 -#.TRANS: mode length is the number of notes in the mode, e.g., 7 for major and minor scales; 12 for chromatic scales -msgid "mode length" +#: js/blocks/BooleanBlocks.js:808 +msgid "The Equal block returns True if the two numbers are equal." msgstr "" -#: js/IntervalsBlocks.js:1037 -msgid "The Mode length block is the number of notes in the current scale." +#: js/blocks/BooleanBlocks.js:909 +msgid "The Not-equal-to block returns True if the two numbers are not equal to each other." msgstr "" -#: js/IntervalsBlocks.js:1039 -msgid "Most Western scales have 7 notes." +#: js/blocks/BooleanBlocks.js:1008 +msgid "The Boolean block is used to specify true or false." msgstr "" -#: js/IntervalsBlocks.js:1088 -#.TRANS: the mode in music is 'major', 'minor', etc. -msgid "current mode" +#: js/blocks/BoxesBlocks.js:53 +#: js/blocks/BoxesBlocks.js:59 +msgid "The Add-to block is used to add to the value stored in a box." msgstr "" -#: js/IntervalsBlocks.js:1141 -#.TRANS: the key is a group of pitches with which a music composition is created -msgid "current key" +#: js/blocks/BoxesBlocks.js:61 +msgid "It can also be used with other blocks such as Color and Pen size." msgstr "" -#: js/IntervalsBlocks.js:1193 -#: js/IntervalsBlocks.js:1238 -#.TRANS: set the key and mode, e.g. C Major -msgid "set key" +#: js/blocks/BoxesBlocks.js:73 +msgid "add" msgstr "" -#: js/IntervalsBlocks.js:1247 -#: js/IntervalsBlocks.js:1253 -msgid "The Set key block is used to set the key and mode," +#: js/blocks/BoxesBlocks.js:75 +#: js/widgets/temperament.js:857 +msgid "to" msgstr "" -#: js/IntervalsBlocks.js:1253 -msgid "eg C Major" +#: js/blocks/BoxesBlocks.js:75 +#: js/blocks/BoxesBlocks.js:595 +#: js/blocks/HeapBlocks.js:544 +msgid "value1" msgstr "" -#: js/IntervalsBlocks.js:1266 -#: js/DictBlocks.js:215 -#: js/DictBlocks.js:216 -#: js/DictBlocks.js:289 -#: js/DictBlocks.js:290 -#: js/DictBlocks.js:357 -#: js/DictBlocks.js:430 -#: js/DictBlocks.js:431 -#.TRANS: key, e.g., C in C Major -msgid "key" +#: js/blocks/BoxesBlocks.js:118 +msgid "Block does not support incrementing." msgstr "" -#: js/ActionBlocks.js:58 -msgid "The Return block will return a value from an action." +#: js/blocks/BoxesBlocks.js:152 +msgid "The Add-1-to block adds one to the value stored in a box." msgstr "" -#: js/ActionBlocks.js:75 -msgid "return" +#: js/blocks/BoxesBlocks.js:163 +msgid "add 1 to" msgstr "" -#: js/ActionBlocks.js:128 -msgid "The Return to URL block will return a value to a webpage." +#: js/blocks/BoxesBlocks.js:211 +msgid "The Subtract-1-from block subtracts one from the value stored in a box." msgstr "" -#: js/ActionBlocks.js:145 -msgid "return to URL" +#: js/blocks/BoxesBlocks.js:222 +msgid "subtract 1 from" msgstr "" -#: js/ActionBlocks.js:233 -#: js/ActionBlocks.js:290 -#: js/ActionBlocks.js:501 -#: js/ActionBlocks.js:688 -msgid "The Calculate block returns a value calculated by an action." +#: js/blocks/BoxesBlocks.js:270 +#: js/blocks/BoxesBlocks.js:387 +msgid "The Box block returns the value stored in a box." msgstr "" -#: js/ActionBlocks.js:251 -#: js/ActionBlocks.js:517 -#: js/ActionBlocks.js:707 -msgid "calculate" +#: js/blocks/BoxesBlocks.js:500 +#: js/blocks/BoxesBlocks.js:576 +msgid "The Store in block will store a value in a box." msgstr "" -#: js/ActionBlocks.js:376 -#: js/ActionBlocks.js:593 -#: js/ActionBlocks.js:942 -#: js/ActionBlocks.js:1389 -#.TRANS: do is the do something or take an action. -msgid "The Do block is used to initiate an action." +#: js/blocks/BoxesBlocks.js:595 +#: js/blocks/EnsembleBlocks.js:391 +#: js/blocks/EnsembleBlocks.js:402 +msgid "name1" msgstr "" -#: js/ActionBlocks.js:390 -#: js/ActionBlocks.js:610 -#: js/ActionBlocks.js:959 -#: js/ActionBlocks.js:1048 -#: js/MeterBlocks.js:769 -msgid "do1" +#: js/blocks/BoxesBlocks.js:652 +msgid "The Box2 block returns the value stored in Box2." msgstr "" -#: js/ActionBlocks.js:390 -#: js/ActionBlocks.js:610 -#: js/ActionBlocks.js:959 -#: js/ActionBlocks.js:1048 -#: js/FlowBlocks.js:742 -#: js/FlowBlocks.js:822 -#: js/MeterBlocks.js:769 -msgid "do" +#: js/blocks/BoxesBlocks.js:703 +msgid "The Store in Box2 block is used to store a value in Box2." msgstr "" -#: js/ActionBlocks.js:791 -#: js/ActionBlocks.js:865 -msgid "The Arg block contains the value of an argument passed to an action." +#: js/blocks/BoxesBlocks.js:715 +msgid "store in box2" msgstr "" -#: js/ActionBlocks.js:806 -#: js/ActionBlocks.js:878 -msgid "arg" +#: js/blocks/BoxesBlocks.js:761 +msgid "The Box1 block returns the value stored in Box1." msgstr "" -#: js/ActionBlocks.js:836 -#: js/ActionBlocks.js:900 -#: js/ActionBlocks.js:908 -msgid "Invalid argument" +#: js/blocks/BoxesBlocks.js:812 +msgid "The Store in Box1 block is used to store a value in Box1." msgstr "" -#: js/ActionBlocks.js:944 -msgid "In the example, it is used with the One of block to choose a random phase." +#: js/blocks/BoxesBlocks.js:826 +msgid "store in box1" msgstr "" -#: js/ActionBlocks.js:1019 -#: js/ActionBlocks.js:1026 -msgid "The Listen block is used to listen for an event such as a mouse click." +#: js/blocks/DictBlocks.js:77 +msgid "show dictionary" msgstr "" -#: js/ActionBlocks.js:1028 -msgid "When the event happens, an action is taken." +#: js/blocks/DictBlocks.js:80 +#: js/blocks/DictBlocks.js:145 +#: js/blocks/DictBlocks.js:216 +#: js/blocks/DictBlocks.js:290 +#: js/blocks/ProgramBlocks.js:396 +#: js/blocks/ProgramBlocks.js:501 +#: js/blocks/ProgramBlocks.js:664 +msgid "My Dictionary" msgstr "" -#: js/ActionBlocks.js:1045 -msgid "on" +#: js/blocks/DictBlocks.js:129 +msgid "The Dictionary block returns a dictionary." msgstr "" -#: js/ActionBlocks.js:1048 -#: js/ActionBlocks.js:1049 -#: js/ActionBlocks.js:1153 -msgid "event" +#: js/blocks/DictBlocks.js:197 +#: js/blocks/DictBlocks.js:339 +msgid "The Get-dict block returns a value in the dictionary for a specified key." msgstr "" -#: js/ActionBlocks.js:1133 -msgid "The Broadcast block is used to trigger an event." +#: js/blocks/DictBlocks.js:212 +#: js/blocks/DictBlocks.js:354 +#.TRANS: retrieve a value from the dictionary with a given key +msgid "get value" msgstr "" -#: js/ActionBlocks.js:1151 -msgid "broadcast" +#: js/blocks/DictBlocks.js:215 +#: js/blocks/DictBlocks.js:216 +#: js/blocks/DictBlocks.js:289 +#: js/blocks/DictBlocks.js:290 +#: js/blocks/DictBlocks.js:357 +#: js/blocks/DictBlocks.js:430 +#: js/blocks/DictBlocks.js:431 +msgid "key2" msgstr "" -#: js/ActionBlocks.js:1208 -msgid "Each Start block is a separate voice." +#: js/blocks/DictBlocks.js:215 +#: js/blocks/DictBlocks.js:216 +#: js/blocks/DictBlocks.js:289 +#: js/blocks/DictBlocks.js:290 +#: js/blocks/DictBlocks.js:357 +#: js/blocks/DictBlocks.js:430 +#: js/blocks/DictBlocks.js:431 +#: js/blocks/IntervalsBlocks.js:1462 +#.TRANS: key, e.g., C in C Major +msgid "key" msgstr "" -#: js/ActionBlocks.js:1304 -msgid "It is often used for storing a phrase of music that is repeated." +#: js/blocks/DictBlocks.js:271 +#: js/blocks/DictBlocks.js:411 +msgid "The Set-dict block sets a value in the dictionary for a specified key." msgstr "" -#: js/ActionBlocks.js:1495 -msgid "define temperament" +#: js/blocks/DictBlocks.js:286 +#: js/blocks/DictBlocks.js:427 +#.TRANS: set a value in the dictionary for a given key +msgid "set value" msgstr "" -#: js/EnsembleBlocks.js:66 +#: js/blocks/EnsembleBlocks.js:66 msgid "mouse index heap" msgstr "" -#: js/EnsembleBlocks.js:68 +#: js/blocks/EnsembleBlocks.js:68 msgid "The Mouse index heap block returns a value in the heap at a specified location for a specified mouse." msgstr "" -#: js/EnsembleBlocks.js:77 -#: js/EnsembleBlocks.js:1080 +#: js/blocks/EnsembleBlocks.js:77 +#: js/blocks/EnsembleBlocks.js:1080 msgid "mouse name" msgstr "" -#: js/EnsembleBlocks.js:77 -#: js/EnsembleBlocks.js:92 -#: js/HeapBlocks.js:544 +#: js/blocks/EnsembleBlocks.js:77 +#: js/blocks/EnsembleBlocks.js:92 +#: js/blocks/HeapBlocks.js:544 #.TRANS: value1 is a numeric value (JAPANESE ONLY) msgid "index" msgstr "" -#: js/EnsembleBlocks.js:80 +#: js/blocks/EnsembleBlocks.js:80 msgid "turtle index heap" msgstr "" -#: js/EnsembleBlocks.js:82 +#: js/blocks/EnsembleBlocks.js:82 msgid "The Turtle index heap block returns a value in the heap at a specified location for a specified turtle." msgstr "" -#: js/EnsembleBlocks.js:90 -#: js/EnsembleBlocks.js:167 -#: js/EnsembleBlocks.js:230 -#: js/EnsembleBlocks.js:316 -#: js/EnsembleBlocks.js:362 -#: js/EnsembleBlocks.js:400 -#: js/EnsembleBlocks.js:454 -#: js/EnsembleBlocks.js:504 -#: js/EnsembleBlocks.js:550 -#: js/EnsembleBlocks.js:597 -#: js/EnsembleBlocks.js:651 -#: js/EnsembleBlocks.js:763 -#: js/EnsembleBlocks.js:854 -#: js/EnsembleBlocks.js:915 -#: js/EnsembleBlocks.js:955 -#: js/EnsembleBlocks.js:1219 -#: js/EnsembleBlocks.js:1293 +#: js/blocks/EnsembleBlocks.js:90 +#: js/blocks/EnsembleBlocks.js:167 +#: js/blocks/EnsembleBlocks.js:230 +#: js/blocks/EnsembleBlocks.js:316 +#: js/blocks/EnsembleBlocks.js:362 +#: js/blocks/EnsembleBlocks.js:400 +#: js/blocks/EnsembleBlocks.js:454 +#: js/blocks/EnsembleBlocks.js:504 +#: js/blocks/EnsembleBlocks.js:550 +#: js/blocks/EnsembleBlocks.js:597 +#: js/blocks/EnsembleBlocks.js:651 +#: js/blocks/EnsembleBlocks.js:763 +#: js/blocks/EnsembleBlocks.js:854 +#: js/blocks/EnsembleBlocks.js:915 +#: js/blocks/EnsembleBlocks.js:955 +#: js/blocks/EnsembleBlocks.js:1219 +#: js/blocks/EnsembleBlocks.js:1293 #.TRANS: Yertle is the name of a turtle. msgid "Yertle" msgstr "" -#: js/EnsembleBlocks.js:92 -#: js/EnsembleBlocks.js:1089 +#: js/blocks/EnsembleBlocks.js:92 +#: js/blocks/EnsembleBlocks.js:1089 msgid "turtle name" msgstr "" -#: js/EnsembleBlocks.js:122 -#: js/EnsembleBlocks.js:1197 -#: js/HeapBlocks.js:474 -#: js/HeapBlocks.js:572 +#: js/blocks/EnsembleBlocks.js:122 +#: js/blocks/EnsembleBlocks.js:1197 +#: js/blocks/HeapBlocks.js:474 +#: js/blocks/HeapBlocks.js:572 msgid "Index must be > 0." msgstr "" -#: js/EnsembleBlocks.js:127 -#: js/HeapBlocks.js:479 -#: js/HeapBlocks.js:577 +#: js/blocks/EnsembleBlocks.js:127 +#: js/blocks/HeapBlocks.js:479 +#: js/blocks/HeapBlocks.js:577 msgid "Maximum heap size is 1000." msgstr "" -#: js/EnsembleBlocks.js:145 +#: js/blocks/EnsembleBlocks.js:145 msgid "stop mouse" msgstr "" -#: js/EnsembleBlocks.js:147 +#: js/blocks/EnsembleBlocks.js:147 msgid "The Stop mouse block stops the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:158 +#: js/blocks/EnsembleBlocks.js:158 msgid "stop turtle" msgstr "" -#: js/EnsembleBlocks.js:160 +#: js/blocks/EnsembleBlocks.js:160 msgid "The Stop turtle block stops the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:184 -#: js/EnsembleBlocks.js:247 -#: js/EnsembleBlocks.js:413 -#: js/EnsembleBlocks.js:468 -#: js/EnsembleBlocks.js:706 -#: js/EnsembleBlocks.js:808 -#: js/EnsembleBlocks.js:870 -#: js/EnsembleBlocks.js:1190 -#: js/EnsembleBlocks.js:1253 +#: js/blocks/EnsembleBlocks.js:184 +#: js/blocks/EnsembleBlocks.js:247 +#: js/blocks/EnsembleBlocks.js:413 +#: js/blocks/EnsembleBlocks.js:468 +#: js/blocks/EnsembleBlocks.js:706 +#: js/blocks/EnsembleBlocks.js:808 +#: js/blocks/EnsembleBlocks.js:870 +#: js/blocks/EnsembleBlocks.js:1190 +#: js/blocks/EnsembleBlocks.js:1253 msgid "Cannot find mouse" msgstr "" -#: js/EnsembleBlocks.js:186 -#: js/EnsembleBlocks.js:249 -#: js/EnsembleBlocks.js:415 -#: js/EnsembleBlocks.js:470 -#: js/EnsembleBlocks.js:708 -#: js/EnsembleBlocks.js:810 -#: js/EnsembleBlocks.js:872 -#: js/EnsembleBlocks.js:1192 -#: js/EnsembleBlocks.js:1255 +#: js/blocks/EnsembleBlocks.js:186 +#: js/blocks/EnsembleBlocks.js:249 +#: js/blocks/EnsembleBlocks.js:415 +#: js/blocks/EnsembleBlocks.js:470 +#: js/blocks/EnsembleBlocks.js:708 +#: js/blocks/EnsembleBlocks.js:810 +#: js/blocks/EnsembleBlocks.js:872 +#: js/blocks/EnsembleBlocks.js:1192 +#: js/blocks/EnsembleBlocks.js:1255 msgid "Cannot find turtle" msgstr "" -#: js/EnsembleBlocks.js:206 +#: js/blocks/EnsembleBlocks.js:206 msgid "start mouse" msgstr "" -#: js/EnsembleBlocks.js:209 +#: js/blocks/EnsembleBlocks.js:209 msgid "The Start mouse block starts the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:220 +#: js/blocks/EnsembleBlocks.js:220 msgid "start turtle" msgstr "" -#: js/EnsembleBlocks.js:223 +#: js/blocks/EnsembleBlocks.js:223 msgid "The Start turtle block starts the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:256 +#: js/blocks/EnsembleBlocks.js:256 msgid "Mouse is already running." msgstr "" -#: js/EnsembleBlocks.js:258 +#: js/blocks/EnsembleBlocks.js:258 msgid "Turtle is already running." msgstr "" -#: js/EnsembleBlocks.js:282 +#: js/blocks/EnsembleBlocks.js:282 msgid "Cannot find start block" msgstr "" -#: js/EnsembleBlocks.js:292 +#: js/blocks/EnsembleBlocks.js:292 #.TRANS: pen color for this mouse msgid "mouse color" msgstr "" -#: js/EnsembleBlocks.js:294 +#: js/blocks/EnsembleBlocks.js:294 msgid "The Mouse color block returns the pen color of the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:306 +#: js/blocks/EnsembleBlocks.js:306 #.TRANS: pen color for this turtle msgid "turtle color" msgstr "" -#: js/EnsembleBlocks.js:308 +#: js/blocks/EnsembleBlocks.js:308 msgid "The Turtle color block returns the pen color of the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:338 +#: js/blocks/EnsembleBlocks.js:338 #.TRANS: heading (compass direction) for this mouse msgid "mouse heading" msgstr "" -#: js/EnsembleBlocks.js:340 +#: js/blocks/EnsembleBlocks.js:340 msgid "The Mouse heading block returns the heading of the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:352 +#: js/blocks/EnsembleBlocks.js:352 #.TRANS: heading (compass direction) for this turtle msgid "turtle heading" msgstr "" -#: js/EnsembleBlocks.js:354 +#: js/blocks/EnsembleBlocks.js:354 msgid "The Turtle heading block returns the heading of the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:384 -#: js/EnsembleBlocks.js:439 +#: js/blocks/EnsembleBlocks.js:384 +#: js/blocks/EnsembleBlocks.js:439 #.TRANS: set xy position for this mouse msgid "set mouse" msgstr "" -#: js/EnsembleBlocks.js:391 -#: js/EnsembleBlocks.js:402 -#: js/BoxesBlocks.js:595 -msgid "name1" -msgstr "" - -#: js/EnsembleBlocks.js:391 -#: js/EnsembleBlocks.js:402 -#: js/ProgramBlocks.js:881 -#: js/GraphicsBlocks.js:235 -#: js/GraphicsBlocks.js:313 -#: js/GraphicsBlocks.js:436 -#: js/GraphicsBlocks.js:487 -#: js/GraphicsBlocks.js:534 -#: js/GraphicsBlocks.js:750 +#: js/blocks/EnsembleBlocks.js:391 +#: js/blocks/EnsembleBlocks.js:402 +#: js/blocks/GraphicsBlocks.js:235 +#: js/blocks/GraphicsBlocks.js:313 +#: js/blocks/GraphicsBlocks.js:436 +#: js/blocks/GraphicsBlocks.js:487 +#: js/blocks/GraphicsBlocks.js:534 +#: js/blocks/GraphicsBlocks.js:750 +#: js/blocks/ProgramBlocks.js:881 msgid "x" msgstr "x" -#: js/EnsembleBlocks.js:391 -#: js/EnsembleBlocks.js:402 -#: js/ProgramBlocks.js:881 -#: js/GraphicsBlocks.js:149 -#: js/GraphicsBlocks.js:313 -#: js/GraphicsBlocks.js:436 -#: js/GraphicsBlocks.js:487 -#: js/GraphicsBlocks.js:534 -#: js/GraphicsBlocks.js:750 +#: js/blocks/EnsembleBlocks.js:391 +#: js/blocks/EnsembleBlocks.js:402 +#: js/blocks/GraphicsBlocks.js:149 +#: js/blocks/GraphicsBlocks.js:313 +#: js/blocks/GraphicsBlocks.js:436 +#: js/blocks/GraphicsBlocks.js:487 +#: js/blocks/GraphicsBlocks.js:534 +#: js/blocks/GraphicsBlocks.js:750 +#: js/blocks/ProgramBlocks.js:881 msgid "y" msgstr "" -#: js/EnsembleBlocks.js:395 -#: js/EnsembleBlocks.js:452 +#: js/blocks/EnsembleBlocks.js:395 +#: js/blocks/EnsembleBlocks.js:452 #.TRANS: set xy position for this turtle msgid "set turtle" msgstr "" -#: js/EnsembleBlocks.js:433 +#: js/blocks/EnsembleBlocks.js:433 msgid "The Set mouse block sends a stack of blocks to be run by the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:446 +#: js/blocks/EnsembleBlocks.js:446 msgid "The Set turtle block sends a stack of blocks to be run by the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:480 +#: js/blocks/EnsembleBlocks.js:480 #.TRANS: y position for this mouse msgid "mouse y" msgstr "" -#: js/EnsembleBlocks.js:482 +#: js/blocks/EnsembleBlocks.js:482 msgid "The Y mouse block returns the Y position of the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:494 +#: js/blocks/EnsembleBlocks.js:494 #.TRANS: y position for this turtle msgid "turtle y" msgstr "" -#: js/EnsembleBlocks.js:496 +#: js/blocks/EnsembleBlocks.js:496 msgid "The Y turtle block returns the Y position of the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:526 +#: js/blocks/EnsembleBlocks.js:526 #.TRANS: x position for this mouse msgid "mouse x" msgstr "" -#: js/EnsembleBlocks.js:528 +#: js/blocks/EnsembleBlocks.js:528 msgid "The X mouse block returns the X position of the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:540 +#: js/blocks/EnsembleBlocks.js:540 #.TRANS: x position for this turtle msgid "turtle x" msgstr "" -#: js/EnsembleBlocks.js:542 +#: js/blocks/EnsembleBlocks.js:542 msgid "The X turtle block returns the X position of the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:573 +#: js/blocks/EnsembleBlocks.js:573 #.TRANS: notes played by this mouse msgid "mouse notes played" msgstr "" -#: js/EnsembleBlocks.js:575 +#: js/blocks/EnsembleBlocks.js:575 msgid "The Mouse elapse notes block returns the number of notes played by the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:587 +#: js/blocks/EnsembleBlocks.js:587 #.TRANS: notes played by this turtle msgid "turtle notes played" msgstr "" -#: js/EnsembleBlocks.js:589 +#: js/blocks/EnsembleBlocks.js:589 msgid "The Turtle elapse notes block returns the number of notes played by the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:627 +#: js/blocks/EnsembleBlocks.js:627 #.TRANS: convert current note for this turtle to piano key (1-88) msgid "mouse pitch number" msgstr "" -#: js/EnsembleBlocks.js:629 +#: js/blocks/EnsembleBlocks.js:629 msgid "The Mouse pitch block returns the current pitch number being played by the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:641 +#: js/blocks/EnsembleBlocks.js:641 #.TRANS: convert current note for this turtle to piano key (1-88) msgid "turtle pitch number" msgstr "" -#: js/EnsembleBlocks.js:643 -msgid "The Turrle pitch block returns the current pitch number being played by the specified turtle." +#: js/blocks/EnsembleBlocks.js:643 +msgid "The Turtle pitch block returns the current pitch number being played by the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:747 -#: js/EnsembleBlocks.js:819 +#: js/blocks/EnsembleBlocks.js:747 +#: js/blocks/EnsembleBlocks.js:819 #.TRANS: note value is the duration of the note played by this mouse msgid "mouse note value" msgstr "" -#: js/EnsembleBlocks.js:757 +#: js/blocks/EnsembleBlocks.js:757 #.TRANS: note value is the duration of the note played by this turtle msgid "turtle note value" msgstr "" -#: js/EnsembleBlocks.js:830 +#: js/blocks/EnsembleBlocks.js:830 #.TRANS: sync is short for synchronization msgid "mouse sync" msgstr "" -#: js/EnsembleBlocks.js:832 +#: js/blocks/EnsembleBlocks.js:832 msgid "The Mouse sync block aligns the beat count between mice." msgstr "" -#: js/EnsembleBlocks.js:844 +#: js/blocks/EnsembleBlocks.js:844 #.TRANS: sync is short for synchronization msgid "turtle sync" msgstr "" -#: js/EnsembleBlocks.js:846 +#: js/blocks/EnsembleBlocks.js:846 msgid "The Turtle sync block aligns the beat count between turtles." msgstr "" -#: js/EnsembleBlocks.js:887 +#: js/blocks/EnsembleBlocks.js:887 msgid "The Found mouse block will return true if the specified mouse can be found." msgstr "" -#: js/EnsembleBlocks.js:893 +#: js/blocks/EnsembleBlocks.js:893 msgid "found mouse" msgstr "" -#: js/EnsembleBlocks.js:903 +#: js/blocks/EnsembleBlocks.js:903 msgid "The Found turtle block will return true if the specified turtle can be found." msgstr "" -#: js/EnsembleBlocks.js:909 +#: js/blocks/EnsembleBlocks.js:909 msgid "found turtle" msgstr "" -#: js/EnsembleBlocks.js:932 +#: js/blocks/EnsembleBlocks.js:932 msgid "new mouse" msgstr "" -#: js/EnsembleBlocks.js:934 +#: js/blocks/EnsembleBlocks.js:934 msgid "The New mouse block will create a new mouse." msgstr "" -#: js/EnsembleBlocks.js:945 +#: js/blocks/EnsembleBlocks.js:945 msgid "new turtle" msgstr "" -#: js/EnsembleBlocks.js:947 +#: js/blocks/EnsembleBlocks.js:947 msgid "The New turtle block will create a new turtle." msgstr "" -#: js/EnsembleBlocks.js:1011 +#: js/blocks/EnsembleBlocks.js:1011 msgid "set mouse color" msgstr "" -#: js/EnsembleBlocks.js:1014 +#: js/blocks/EnsembleBlocks.js:1014 msgid "The Set-mouse-color block is used to set the color of a mouse." msgstr "" -#: js/EnsembleBlocks.js:1020 +#: js/blocks/EnsembleBlocks.js:1020 msgid "set turtle color" msgstr "" -#: js/EnsembleBlocks.js:1023 +#: js/blocks/EnsembleBlocks.js:1023 msgid "The Set-turtle-color block is used to set the color of a turtle." msgstr "" -#: js/EnsembleBlocks.js:1083 +#: js/blocks/EnsembleBlocks.js:1083 msgid "The Mouse-name block returns the name of a mouse." msgstr "" -#: js/EnsembleBlocks.js:1092 +#: js/blocks/EnsembleBlocks.js:1092 msgid "The Turtle-name block returns the name of a turtle." msgstr "" -#: js/EnsembleBlocks.js:1115 +#: js/blocks/EnsembleBlocks.js:1115 msgid "mouse count" msgstr "" -#: js/EnsembleBlocks.js:1118 +#: js/blocks/EnsembleBlocks.js:1118 msgid "The Mouse-count block returns the number of mice." msgstr "" -#: js/EnsembleBlocks.js:1124 +#: js/blocks/EnsembleBlocks.js:1124 msgid "turtle count" msgstr "" -#: js/EnsembleBlocks.js:1127 +#: js/blocks/EnsembleBlocks.js:1127 msgid "The Turtle-count block returns the number of turtles." msgstr "" -#: js/EnsembleBlocks.js:1149 +#: js/blocks/EnsembleBlocks.js:1149 msgid "nth mouse name" msgstr "" -#: js/EnsembleBlocks.js:1152 +#: js/blocks/EnsembleBlocks.js:1152 msgid "The Nth-Mouse name block returns the name of the nth mouse." msgstr "" -#: js/EnsembleBlocks.js:1158 +#: js/blocks/EnsembleBlocks.js:1158 msgid "nth turtle name" msgstr "" -#: js/EnsembleBlocks.js:1161 +#: js/blocks/EnsembleBlocks.js:1161 msgid "The Nth-Turtle name block returns the name of the nth turtle." msgstr "" -#: js/EnsembleBlocks.js:1205 -#: js/EnsembleBlocks.js:1265 +#: js/blocks/EnsembleBlocks.js:1205 +#: js/blocks/EnsembleBlocks.js:1265 msgid "set name" msgstr "" -#: js/EnsembleBlocks.js:1214 -#: js/EnsembleBlocks.js:1221 +#: js/blocks/EnsembleBlocks.js:1214 +#: js/blocks/EnsembleBlocks.js:1221 msgid "source" msgstr "" -#: js/EnsembleBlocks.js:1214 -#: js/EnsembleBlocks.js:1221 +#: js/blocks/EnsembleBlocks.js:1214 +#: js/blocks/EnsembleBlocks.js:1221 msgid "target" msgstr "" -#: js/EnsembleBlocks.js:1271 +#: js/blocks/EnsembleBlocks.js:1271 msgid "The Set-name block is used to name a mouse." msgstr "" -#: js/EnsembleBlocks.js:1284 +#: js/blocks/EnsembleBlocks.js:1284 msgid "The Set-name block is used to name a turtle." msgstr "" -#: js/BooleanBlocks.js:44 -msgid "The Not block is the logical not operator." -msgstr "" - -#: js/BooleanBlocks.js:62 -msgid "not" -msgstr "no" - -#: js/BooleanBlocks.js:134 -msgid "The And block is the logical and operator." -msgstr "" - -#: js/BooleanBlocks.js:152 -msgid "and" -msgstr "i" - -#: js/BooleanBlocks.js:218 -msgid "The Or block is the logical or operator." -msgstr "" - -#: js/BooleanBlocks.js:236 -msgid "or" -msgstr "o" - -#: js/BooleanBlocks.js:302 -msgid "The XOR block is the logical XOR operator." -msgstr "" - -#: js/BooleanBlocks.js:320 -msgid "xor" -msgstr "" - -#: js/BooleanBlocks.js:808 -msgid "The Equal block returns True if the two numbers are equal." -msgstr "" - -#: js/BooleanBlocks.js:909 -msgid "The Not-equal-to block returns True if the two numbers are not equal to each other." -msgstr "" - -#: js/BooleanBlocks.js:1008 -msgid "The Boolean block is used to specify true or false." -msgstr "" - -#: js/MediaBlocks.js:35 -#.TRANS: right side of the screen -msgid "right (screen)" -msgstr "" - -#: js/MediaBlocks.js:45 -#: js/MediaBlocks.js:56 -msgid "The Right block returns the position of the right of the canvas." -msgstr "" - -#: js/MediaBlocks.js:97 -#.TRANS: left side of the screen -msgid "left (screen)" -msgstr "" - -#: js/MediaBlocks.js:107 -#: js/MediaBlocks.js:118 -msgid "The Left block returns the position of the left of the canvas." -msgstr "" - -#: js/MediaBlocks.js:158 -msgid "top (screen)" +#: js/blocks/ExtrasBlocks.js:33 +msgid "fraction" msgstr "" -#: js/MediaBlocks.js:168 -#: js/MediaBlocks.js:179 -msgid "The Top block returns the position of the top of the canvas." +#: js/blocks/ExtrasBlocks.js:36 +msgid "Convert a float to a fraction" msgstr "" -#: js/MediaBlocks.js:219 -msgid "bottom (screen)" +#: js/blocks/ExtrasBlocks.js:93 +msgid "save as ABC" msgstr "" -#: js/MediaBlocks.js:229 -#: js/MediaBlocks.js:240 -msgid "The Bottom block returns the position of the bottom of the canvas." +#: js/blocks/ExtrasBlocks.js:96 +#: js/blocks/ExtrasBlocks.js:132 +#: js/blocks/ExtrasBlocks.js:168 +msgid "title" msgstr "" -#: js/MediaBlocks.js:282 -msgid "width" +#: js/blocks/ExtrasBlocks.js:129 +msgid "save as Lilypond" msgstr "" -#: js/MediaBlocks.js:291 -msgid "The Width block returns the width of the canvas." +#: js/blocks/ExtrasBlocks.js:165 +msgid "save as SVG" msgstr "" -#: js/MediaBlocks.js:325 -msgid "height" +#: js/blocks/ExtrasBlocks.js:216 +msgid "no background" msgstr "" -#: js/MediaBlocks.js:334 -msgid "The Height block returns the height of the canvas." +#: js/blocks/ExtrasBlocks.js:219 +msgid "The No background block eliminates the background from the saved SVG output." msgstr "" -#: js/MediaBlocks.js:369 -#.TRANS: stops playback of an audio recording -msgid "stop play" +#: js/blocks/ExtrasBlocks.js:247 +msgid "show blocks" msgstr "" -#: js/MediaBlocks.js:404 -#.TRANS: Erases the images and text -msgid "erase media" +#: js/blocks/ExtrasBlocks.js:249 +msgid "The Show blocks block shows the blocks." msgstr "" -#: js/MediaBlocks.js:409 -msgid "The Erase Media block erases text and images." +#: js/blocks/ExtrasBlocks.js:274 +msgid "hide blocks" msgstr "" -#: js/MediaBlocks.js:439 -#.TRANS: play an audio recording -msgid "play back" +#: js/blocks/ExtrasBlocks.js:276 +msgid "The Hide blocks block hides the blocks." msgstr "" -#: js/MediaBlocks.js:487 -msgid "speak" +#: js/blocks/ExtrasBlocks.js:305 +#: js/blocks/ExtrasBlocks.js:338 +msgid "The Space block is used to add space between blocks." msgstr "" -#: js/MediaBlocks.js:495 -msgid "The Speak block outputs to the text-to-speech synthesizer" -msgstr "" +#: js/blocks/ExtrasBlocks.js:376 +msgid "wait" +msgstr "esperar" -#: js/MediaBlocks.js:546 -msgid "camera" +#: js/blocks/ExtrasBlocks.js:379 +msgid "The Wait block pauses the program for a specified number of seconds." msgstr "" -#: js/MediaBlocks.js:551 -msgid "The Camera block connects a webcam to the Show block." +#: js/blocks/ExtrasBlocks.js:433 +#: plugins/facebook.rtp:30 +msgid "comment" msgstr "" -#: js/MediaBlocks.js:574 -msgid "video" -msgstr "" +#: js/blocks/ExtrasBlocks.js:469 +msgid "print" +msgstr "imprimir" -#: js/MediaBlocks.js:579 -msgid "The Video block selects video for use with the Show block." +#: js/blocks/ExtrasBlocks.js:476 +msgid "The Print block displays text at the top of the screen." msgstr "" -#: js/MediaBlocks.js:607 -msgid "The Open file block opens a file for use with the Show block." +#: js/blocks/ExtrasBlocks.js:582 +msgid "display grid" msgstr "" -#: js/MediaBlocks.js:645 -msgid "stop media" +#: js/blocks/ExtrasBlocks.js:587 +msgid "The Display Grid Block changes the grid type" msgstr "" -#: js/MediaBlocks.js:650 -msgid "The Stop media block stops audio or video playback." +#: js/blocks/ExtrasBlocks.js:689 +#: js/blocks/ExtrasBlocks.js:708 +#: js/blocks/ExtrasBlocks.js:731 +#: js/blocks/ExtrasBlocks.js:754 +#: js/blocks/ExtrasBlocks.js:772 +#: js/blocks/ExtrasBlocks.js:791 +#: js/blocks/ExtrasBlocks.js:810 +#: js/blocks/ExtrasBlocks.js:829 +msgid "unknown" msgstr "" -#: js/MediaBlocks.js:679 -#: js/PitchBlocks.js:1539 -#: js/phrasemaker.js:822 -#: js/musickeyboard.js:1654 -#.TRANS: a measure of frequency: one cycle per second -msgid "hertz" +#: js/blocks/FlowBlocks.js:41 +msgid "The Backward block runs code in reverse order (Musical retrograde)." msgstr "" -#: js/MediaBlocks.js:692 -msgid "duration (ms)" +#: js/blocks/FlowBlocks.js:48 +msgid "backward" msgstr "" -#: js/MediaBlocks.js:728 -#.TRANS: translate a note into hertz, e.g., A4 -> 440HZ -msgid "note to frequency" +#: js/blocks/FlowBlocks.js:124 +msgid "The Duplicate block will run each block multiple times." msgstr "" -#: js/MediaBlocks.js:736 -msgid "The To frequency block converts a pitch name and octave to Hertz." +#: js/blocks/FlowBlocks.js:136 +msgid "duplicate" msgstr "" -#: js/MediaBlocks.js:746 -#: js/PitchBlocks.js:656 -#: js/PitchBlocks.js:932 -#: js/PitchBlocks.js:1827 -#.TRANS: name2 is name as in name of pitch (JAPANESE ONLY) -msgid "name2" +#: js/blocks/FlowBlocks.js:334 +msgid "The Default block is used inside of a Switch to define the default action." msgstr "" -#: js/MediaBlocks.js:812 -msgid "The Avatar block is used to change the appearance of the mouse." +#: js/blocks/FlowBlocks.js:342 +msgid "default" msgstr "" -#: js/MediaBlocks.js:819 -msgid "The Avatar block is used to change the appearance of the turtle." +#: js/blocks/FlowBlocks.js:361 +#: js/blocks/FlowBlocks.js:418 +msgid "The Case Block must be used inside of a Switch Block." msgstr "" -#: js/MediaBlocks.js:831 -#: js/MediaBlocks.js:891 -#.TRANS: a media object -msgid "size" +#: js/blocks/FlowBlocks.js:389 +msgid "The Case block is used inside of a Switch to define matches." msgstr "" -#: js/MediaBlocks.js:831 -msgid "image" +#: js/blocks/FlowBlocks.js:397 +msgid "case" msgstr "" -#: js/MediaBlocks.js:880 -msgid "The Show block is used to display text or images on the canvas." +#: js/blocks/FlowBlocks.js:446 +msgid "The Switch block will run the code in the matching Case." msgstr "" -#: js/MediaBlocks.js:888 -#.TRANS: show1 is show as in display an image or text on the screen. -msgid "show1" +#: js/blocks/FlowBlocks.js:454 +msgid "switch" msgstr "" -#: js/MediaBlocks.js:891 -msgid "obj" +#: js/blocks/FlowBlocks.js:595 +msgid "The Stop block will stop a loop" msgstr "" -#: js/MediaBlocks.js:938 -msgid "The Media block is used to import an image." +#: js/blocks/FlowBlocks.js:597 +msgid "Forever, Repeat, While, or Until." msgstr "" -#: js/MediaBlocks.js:973 -msgid "The Text block holds a text string." +#: js/blocks/FlowBlocks.js:604 +#: js/widgets/timbre.js:417 +#: js/widgets/timbre.js:419 +#: js/widgets/musickeyboard.js:819 +#: js/widgets/musickeyboard.js:821 +#: js/widgets/phrasemaker.js:4202 +#: plugins/rodi.rtp:29 +#: plugins/rodi.rtp:73 +#: plugins/rodi.rtp:413 +msgid "stop" msgstr "" -#: js/ProgramBlocks.js:33 -msgid "The Load-heap-from-app block loads the heap from a web page." +#: js/blocks/FlowBlocks.js:653 +msgid "The Waitfor block will wait until the condition is true." msgstr "" -#: js/ProgramBlocks.js:44 -#.TRANS: load the heap contents from a URL -msgid "load heap from App" +#: js/blocks/FlowBlocks.js:661 +msgid "wait for" msgstr "" -#: js/ProgramBlocks.js:95 -msgid "Error parsing JSON data:" +#: js/blocks/FlowBlocks.js:732 +msgid "The Until block will repeat until the condition is true." msgstr "" -#: js/ProgramBlocks.js:100 -msgid "404: Page not found" +#: js/blocks/FlowBlocks.js:740 +msgid "until" msgstr "" -#: js/ProgramBlocks.js:133 -msgid "The Save-heap-to-app block saves the heap to a web page." +#: js/blocks/FlowBlocks.js:742 +#: js/blocks/FlowBlocks.js:822 +msgid "do2" msgstr "" -#: js/ProgramBlocks.js:144 -#.TRANS: save the heap contents to a URL -msgid "save heap to App" +#: js/blocks/FlowBlocks.js:812 +msgid "The While block will repeat while the condition is true." msgstr "" -#: js/ProgramBlocks.js:189 -msgid "Cannot find a valid heap for" +#: js/blocks/FlowBlocks.js:820 +msgid "while" msgstr "" -#: js/ProgramBlocks.js:206 -msgid "The Load-heap block loads the heap from a file." +#: js/blocks/FlowBlocks.js:903 +#: js/blocks/FlowBlocks.js:968 +#: js/blocks/FlowBlocks.js:979 +msgid "In this example if the mouse button is pressed a snare drum will play." msgstr "" -#: js/ProgramBlocks.js:217 -#.TRANS: load the heap from a file -msgid "load heap" -msgstr "" +#: js/blocks/FlowBlocks.js:925 +#: js/blocks/FlowBlocks.js:988 +msgid "if" +msgstr "si" -#: js/ProgramBlocks.js:270 -msgid "The file you selected does not contain a valid heap." +#: js/blocks/FlowBlocks.js:927 +#: js/blocks/FlowBlocks.js:990 +msgid "then" msgstr "" -#: js/ProgramBlocks.js:275 -msgid "The loadHeap block needs a loadFile block." -msgstr "" +#: js/blocks/FlowBlocks.js:927 +msgid "else" +msgstr "sinó" -#: js/ProgramBlocks.js:291 -msgid "The Set-heap block loads the heap." +#: js/blocks/FlowBlocks.js:1025 +msgid "The Forever block will repeat the contained blocks forever." msgstr "" -#: js/ProgramBlocks.js:299 -#: js/HeapBlocks.js:539 -#.TRANS: load the heap from a JSON encoding -msgid "set heap" -msgstr "" +#: js/blocks/FlowBlocks.js:1037 +msgid "forever" +msgstr "per sempre" -#: js/ProgramBlocks.js:340 -msgid "The block you selected does not contain a valid heap." +#: js/blocks/FlowBlocks.js:1073 +msgid "The Repeat block will repeat the contained blocks." msgstr "" -#: js/ProgramBlocks.js:343 -msgid "The Set heap block needs a heap." +#: js/blocks/FlowBlocks.js:1075 +msgid "In this example the note will be played 4 times." msgstr "" -#: js/ProgramBlocks.js:360 -msgid "The Load-dictionary block loads a dictionary from a file." -msgstr "" +#: js/blocks/FlowBlocks.js:1083 +msgid "repeat" +msgstr "repetir" -#: js/ProgramBlocks.js:372 -#.TRANS: load a dictionary from a file -msgid "load dictionary" +#: js/blocks/FlowBlocks.js:1123 +msgid "duplicate factor" msgstr "" -#: js/ProgramBlocks.js:390 -#: js/ProgramBlocks.js:658 -#: js/ToneBlocks.js:1025 -msgid "file" +#: js/blocks/HeapBlocks.js:49 +msgid "The Heap block returns the heap." msgstr "" -#: js/ProgramBlocks.js:396 -#: js/ProgramBlocks.js:501 -#: js/ProgramBlocks.js:664 -#: js/DictBlocks.js:80 -#: js/DictBlocks.js:145 -#: js/DictBlocks.js:216 -#: js/DictBlocks.js:290 -msgid "My Dictionary" -msgstr "" +#: js/blocks/HeapBlocks.js:133 +msgid "show heap" +msgstr "mostrar la pila" -#: js/ProgramBlocks.js:444 -msgid "The file you selected does not contain a valid dictionary." +#: js/blocks/HeapBlocks.js:181 +msgid "The Heap-length block returns the length of the heap." msgstr "" -#: js/ProgramBlocks.js:449 -msgid "The load dictionary block needs a load file block." +#: js/blocks/HeapBlocks.js:195 +msgid "heap length" msgstr "" -#: js/ProgramBlocks.js:466 -msgid "The Set-dictionary block loads a dictionary." +#: js/blocks/HeapBlocks.js:254 +msgid "The Heap-empty? block returns true if the heap is empty." msgstr "" -#: js/ProgramBlocks.js:477 -#.TRANS: load a dictionary from a JSON -msgid "set dictionary" +#: js/blocks/HeapBlocks.js:268 +#.TRANS: Is the heap empty? +msgid "heap empty?" msgstr "" -#: js/ProgramBlocks.js:546 -msgid "The block you selected does not contain a valid dictionary." +#: js/blocks/HeapBlocks.js:317 +msgid "The Empty-heap block empties the heap." msgstr "" -#: js/ProgramBlocks.js:550 -msgid "The set dictionary block needs a dictionary." -msgstr "" +#: js/blocks/HeapBlocks.js:327 +#: js/blocks/HeapBlocks.js:647 +#.TRANS: empty the heap +msgid "empty heap" +msgstr "buidar la pila" -#: js/ProgramBlocks.js:567 -msgid "The Save-heap block saves the heap to a file." +#: js/blocks/HeapBlocks.js:371 +msgid "The Reverse-heap block reverses the order of the heap." msgstr "" -#: js/ProgramBlocks.js:578 -#.TRANS: save the heap to a file -msgid "save heap" +#: js/blocks/HeapBlocks.js:384 +#.TRANS: reverse the order of the heap +msgid "reverse heap" msgstr "" -#: js/ProgramBlocks.js:629 -msgid "The Save-dictionary block saves a dictionary to a file." +#: js/blocks/HeapBlocks.js:428 +msgid "The Index-heap block returns a value in the heap at a specified location." msgstr "" -#: js/ProgramBlocks.js:640 -#.TRANS: save a dictionary to a file -msgid "save dictionary" +#: js/blocks/HeapBlocks.js:443 +#.TRANS: retrieve a value from the heap at index position in the heap +msgid "index heap" msgstr "" -#: js/ProgramBlocks.js:720 -msgid "The Open palette block opens a palette." +#: js/blocks/HeapBlocks.js:523 +msgid "The Set-heap entry block sets a value in he heap at the specified location." msgstr "" -#: js/ProgramBlocks.js:727 -msgid "open palette" +#: js/blocks/HeapBlocks.js:539 +#: js/blocks/ProgramBlocks.js:299 +#.TRANS: load the heap from a JSON encoding +msgid "set heap" msgstr "" -#: js/ProgramBlocks.js:785 -msgid "The Delete block block removes a block." +#: js/blocks/HeapBlocks.js:619 +msgid "The Pop block removes the value at the top of the heap." msgstr "" -#: js/ProgramBlocks.js:797 -#.TRANS: Move this block to the trash. -msgid "delete block" -msgstr "" +#: js/blocks/HeapBlocks.js:633 +#.TRANS: pop a value off the top of the heap +msgid "pop" +msgstr "treure" -#: js/ProgramBlocks.js:861 -msgid "The Move block block moves a block." +#: js/blocks/HeapBlocks.js:680 +msgid "The Push block adds a value to the top of the heap." msgstr "" -#: js/ProgramBlocks.js:869 -#.TRANS: Move the position of a block on the screen. -msgid "move block" +#: js/blocks/HeapBlocks.js:696 +#.TRANS: push a value onto the top of the heap +msgid "push" msgstr "" -#: js/ProgramBlocks.js:881 -#: js/ProgramBlocks.js:1048 -msgid "block number" +#: js/blocks/IntervalsBlocks.js:45 +msgid "set temperament" msgstr "" -#: js/ProgramBlocks.js:935 -#.TRANS: Run program beginning at this block. -msgid "run block" +#: js/blocks/IntervalsBlocks.js:63 +#: js/blocks/MediaBlocks.js:746 +#: js/blocks/PitchBlocks.js:657 +#: js/blocks/PitchBlocks.js:935 +#: js/blocks/PitchBlocks.js:974 +#: js/blocks/PitchBlocks.js:1007 +#: js/blocks/PitchBlocks.js:1194 +#: js/blocks/PitchBlocks.js:1717 +#: js/blocks/PitchBlocks.js:1758 +#: js/blocks/PitchBlocks.js:1866 +#: js/blocks/ToneBlocks.js:1025 +#: js/turtleactions/IntervalsActions.js:114 +#.TRANS: adjusts the shift up or down by one octave (twelve half-steps in the interval between two notes, one having twice or half the frequency in Hz of the other.) +msgid "octave" msgstr "" -#: js/ProgramBlocks.js:1025 -msgid "The Dock block block connections two blocks." +#: js/blocks/IntervalsBlocks.js:99 +msgid "The Temperament name block is used to select a tuning method." msgstr "" -#: js/ProgramBlocks.js:1036 -#.TRANS: We can connect a block to another block. -msgid "connect blocks" +#: js/blocks/IntervalsBlocks.js:161 +msgid "doubly" msgstr "" -#: js/ProgramBlocks.js:1048 -msgid "target block" +#: js/blocks/IntervalsBlocks.js:166 +msgid "The Doubly block will double the size of an interval." msgstr "" -#: js/ProgramBlocks.js:1048 -msgid "connection number" +#: js/blocks/IntervalsBlocks.js:262 +msgid "interval number" msgstr "" -#: js/ProgramBlocks.js:1140 -msgid "The Make block block creates a new block." +#: js/blocks/IntervalsBlocks.js:317 +msgid "current interval" msgstr "" -#: js/ProgramBlocks.js:1152 -#.TRANS: Create a new block -msgid "make block" +#: js/blocks/IntervalsBlocks.js:387 +#.TRANS: measure the distance between two pitches in semi-tones +msgid "semi-tone interval measure" msgstr "" -#: js/ProgramBlocks.js:1186 -#: js/ProgramBlocks.js:1227 -#: js/RhythmBlocks.js:1128 -#: js/PitchBlocks.js:972 -#: js/PitchBlocks.js:1005 -#: js/temperament.js:340 -#: js/temperament.js:362 -#: js/temperament.js:372 -#: js/temperament.js:484 -#: js/status.js:190 -#: plugins/rodi.rtp:192 -#.TRANS: a musical note consisting of pitch and duration -msgid "note" +#: js/blocks/IntervalsBlocks.js:454 +#: js/blocks/IntervalsBlocks.js:570 +msgid "You must use two pitch blocks when measuring an interval." msgstr "" -#: js/ProgramBlocks.js:1285 -msgid "Cannot find block" +#: js/blocks/IntervalsBlocks.js:496 +msgid "The Scalar interval block measures the distance between two notes in the current key and mode." msgstr "" -#: js/ProgramBlocks.js:1304 -#: js/ProgramBlocks.js:1313 -msgid "Warning: block argument type mismatch" +#: js/blocks/IntervalsBlocks.js:502 +#.TRANS: measure the distance between two pitches in steps of musical scale +msgid "scalar interval measure" msgstr "" -#: js/ProgramBlocks.js:1347 -msgid "The Open project block is used to open a project from a web page." +#: js/blocks/IntervalsBlocks.js:678 +msgid "In the figure, we add sol# to sol." msgstr "" -#: js/ProgramBlocks.js:1357 -msgid "open project" +#: js/blocks/IntervalsBlocks.js:684 +#: js/blocks/OrnamentBlocks.js:220 +#.TRANS: calculate a relative step between notes based on semi-tones +msgid "semi-tone interval" msgstr "" -#: js/ProgramBlocks.js:1410 -msgid "Please enter a valid URL." +#: js/blocks/IntervalsBlocks.js:733 +msgid "The output of the example is: do, mi, sol, sol, ti, mi" msgstr "" -#: js/DrumBlocks.js:59 -msgid "The Noise name block is used to select a noise synthesizer." +#: js/blocks/IntervalsBlocks.js:740 +#: js/blocks/WidgetBlocks.js:768 +msgid "arpeggio" msgstr "" -#: js/DrumBlocks.js:102 -msgid "The Drum name block is used to select a drum." +#: js/blocks/IntervalsBlocks.js:931 +msgid "The Chord block calculates common chords." msgstr "" -#: js/DrumBlocks.js:146 -msgid "The Effects name block is used to select a sound effect." +#: js/blocks/IntervalsBlocks.js:933 +msgid "In the figure, we generate a C-major chord." msgstr "" -#: js/DrumBlocks.js:163 -msgid "noise" +#: js/blocks/IntervalsBlocks.js:938 +msgid "chord" msgstr "" -#: js/DrumBlocks.js:177 -msgid "The Play noise block will generate white, pink, or brown noise." +#: js/blocks/IntervalsBlocks.js:990 +msgid "The Ratio Interval block calculates an interval based on a ratio." msgstr "" -#: js/DrumBlocks.js:191 -#: js/musicutils.js:752 -#: js/synthutils.js:47 -#.TRANS: white noise synthesizer -msgid "white noise" +#: js/blocks/IntervalsBlocks.js:995 +msgid "ratio interval" msgstr "" -#: js/DrumBlocks.js:326 -msgid "Replace every instance of a pitch with a drum sound." +#: js/blocks/IntervalsBlocks.js:1064 +msgid "In the figure, we add la to sol." msgstr "" -#: js/DrumBlocks.js:337 -#.TRANS: map a pitch to a drum sound -msgid "map pitch to drum" +#: js/blocks/IntervalsBlocks.js:1120 +#.TRANS: define a custom mode +msgid "define mode" msgstr "" -#: js/DrumBlocks.js:404 -msgid "In the example above, a kick drum sound will be played instead of sol." +#: js/blocks/IntervalsBlocks.js:1173 +msgid "movable Do" msgstr "" -#: js/DrumBlocks.js:416 -#.TRANS: set the current drum sound for playback -msgid "set drum" +#: js/blocks/IntervalsBlocks.js:1224 +#.TRANS: mode length is the number of notes in the mode, e.g., 7 for major and minor scales; 12 for chromatic scales +msgid "mode length" msgstr "" -#: js/DrumBlocks.js:460 -msgid "sound effect" +#: js/blocks/IntervalsBlocks.js:1233 +msgid "The Mode length block is the number of notes in the current scale." msgstr "" -#: js/DrumBlocks.js:498 -msgid "You can use multiple Drum blocks within a Note block." +#: js/blocks/IntervalsBlocks.js:1235 +msgid "Most Western scales have 7 notes." msgstr "" -#: js/RhythmBlocks.js:182 -#: js/RhythmBlocks.js:1086 -#: js/RhythmBlocks.js:1162 -msgid "Note value must be greater than 0." +#: js/blocks/IntervalsBlocks.js:1284 +#.TRANS: the mode in music is 'major', 'minor', etc. +msgid "current mode" msgstr "" -#: js/RhythmBlocks.js:215 -#: js/RhythmBlocks.js:278 -#: js/RhythmBlocks.js:350 -#.TRANS: swing is a rhythmic variation that emphasises the offbeat -msgid "swing" +#: js/blocks/IntervalsBlocks.js:1337 +#.TRANS: the key is a group of pitches with which a music composition is created +msgid "current key" msgstr "" -#: js/RhythmBlocks.js:355 -#.TRANS: the amount to shift to the offbeat note -msgid "swing value" +#: js/blocks/IntervalsBlocks.js:1389 +#: js/blocks/IntervalsBlocks.js:1434 +#.TRANS: set the key and mode, e.g. C Major +msgid "set key" msgstr "" -#: js/RhythmBlocks.js:419 -msgid "The Skip notes block will cause notes to be skipped." +#: js/blocks/IntervalsBlocks.js:1443 +#: js/blocks/IntervalsBlocks.js:1449 +msgid "The Set key block is used to set the key and mode," msgstr "" -#: js/RhythmBlocks.js:427 -#.TRANS: substitute rests on notes being skipped -msgid "skip notes" +#: js/blocks/IntervalsBlocks.js:1449 +msgid "eg C Major" msgstr "" -#: js/RhythmBlocks.js:489 -#.TRANS: speed up note duration by some factor, e.g. convert 1/4 to 1/8 notes by using a factor of 2 -msgid "multiply note value" +#: js/blocks/MediaBlocks.js:35 +#.TRANS: right side of the screen +msgid "right (screen)" msgstr "" -#: js/RhythmBlocks.js:542 -msgid "The Tie block works on pairs of notes, combining them into one note." +#: js/blocks/MediaBlocks.js:45 +#: js/blocks/MediaBlocks.js:56 +msgid "The Right block returns the position of the right of the canvas." msgstr "" -#: js/RhythmBlocks.js:550 -#.TRANS: tie notes together into one longer note -msgid "tie" +#: js/blocks/MediaBlocks.js:97 +#.TRANS: left side of the screen +msgid "left (screen)" msgstr "" -#: js/RhythmBlocks.js:591 -#: js/RhythmBlocks.js:671 -#.TRANS: a dotted note is played for 1.5x its value, e.g., 1/8. --> 3/16 -msgid "dot" +#: js/blocks/MediaBlocks.js:107 +#: js/blocks/MediaBlocks.js:118 +msgid "The Left block returns the position of the left of the canvas." msgstr "" -#: js/RhythmBlocks.js:619 -#: js/RhythmActions.js:221 -msgid "An argument of -1 results in a note value of 0." +#: js/blocks/MediaBlocks.js:158 +msgid "top (screen)" msgstr "" -#: js/RhythmBlocks.js:661 -msgid "The Dot block extends the duration of a note by 50%." +#: js/blocks/MediaBlocks.js:168 +#: js/blocks/MediaBlocks.js:179 +msgid "The Top block returns the position of the top of the canvas." msgstr "" -#: js/RhythmBlocks.js:663 -msgid "Eg a dotted quarter note will play for 3/8 (1/4 + 1/8) of a beat." +#: js/blocks/MediaBlocks.js:219 +msgid "bottom (screen)" msgstr "" -#: js/RhythmBlocks.js:765 -#.TRANS: Japanese only: note value block for drum -msgid "note value drum" +#: js/blocks/MediaBlocks.js:229 +#: js/blocks/MediaBlocks.js:240 +msgid "The Bottom block returns the position of the bottom of the canvas." msgstr "" -#: js/RhythmBlocks.js:829 -msgid "392 hertz" +#: js/blocks/MediaBlocks.js:282 +msgid "width" msgstr "" -#: js/RhythmBlocks.js:1119 -msgid "The Note block is a container for one or more Pitch blocks." +#: js/blocks/MediaBlocks.js:291 +msgid "The Width block returns the width of the canvas." msgstr "" -#: js/RhythmBlocks.js:1121 -msgid "The Note block specifies the duration (note value) of its contents." +#: js/blocks/MediaBlocks.js:325 +msgid "height" msgstr "" -#: js/RhythmBlocks.js:1130 -msgid "value2" +#: js/blocks/MediaBlocks.js:334 +msgid "The Height block returns the height of the canvas." msgstr "" -#: js/RhythmBlocks.js:1200 -msgid "define frequency" +#: js/blocks/MediaBlocks.js:369 +#.TRANS: stops playback of an audio recording +msgid "stop play" msgstr "" -#: js/RhythmBlocks.js:1218 -#: js/temperament.js:650 -#: js/temperament.js:1421 -msgid "octave space" +#: js/blocks/MediaBlocks.js:404 +#.TRANS: Erases the images and text +msgid "erase media" msgstr "" -#: js/NumberBlocks.js:28 -msgid "The Int block returns an integer." +#: js/blocks/MediaBlocks.js:409 +msgid "The Erase Media block erases text and images." msgstr "" -#: js/NumberBlocks.js:34 -msgid "int" +#: js/blocks/MediaBlocks.js:439 +#.TRANS: play an audio recording +msgid "play back" msgstr "" -#: js/NumberBlocks.js:73 -msgid "The Mod block returns the remainder from a division." +#: js/blocks/MediaBlocks.js:487 +msgid "speak" msgstr "" -#: js/NumberBlocks.js:79 -msgid "mod" +#: js/blocks/MediaBlocks.js:495 +msgid "The Speak block outputs to the text-to-speech synthesizer" msgstr "" -#: js/NumberBlocks.js:123 -msgid "The Power block calculates a power function." +#: js/blocks/MediaBlocks.js:546 +msgid "camera" msgstr "" -#: js/NumberBlocks.js:178 -msgid "The Sqrt block returns the square root." +#: js/blocks/MediaBlocks.js:551 +msgid "The Camera block connects a webcam to the Show block." msgstr "" -#: js/NumberBlocks.js:184 -msgid "sqrt" +#: js/blocks/MediaBlocks.js:574 +msgid "video" msgstr "" -#: js/NumberBlocks.js:230 -msgid "The Abs block returns the absolute value." +#: js/blocks/MediaBlocks.js:579 +msgid "The Video block selects video for use with the Show block." msgstr "" -#: js/NumberBlocks.js:236 -msgid "abs" +#: js/blocks/MediaBlocks.js:607 +msgid "The Open file block opens a file for use with the Show block." msgstr "" -#: js/NumberBlocks.js:277 -msgid "The Distance block returns the distance between two points. For example, between the mouse and the center of the screen." +#: js/blocks/MediaBlocks.js:645 +msgid "stop media" msgstr "" -#: js/NumberBlocks.js:283 -#: plugins/rodi.rtp:310 -msgid "distance" +#: js/blocks/MediaBlocks.js:650 +msgid "The Stop media block stops audio or video playback." msgstr "" -#: js/NumberBlocks.js:343 -msgid "The Divide block is used to divide." +#: js/blocks/MediaBlocks.js:679 +#: js/blocks/PitchBlocks.js:1577 +#: js/widgets/musickeyboard.js:1936 +#: js/widgets/phrasemaker.js:1037 +#.TRANS: a measure of frequency: one cycle per second +msgid "hertz" msgstr "" -#: js/NumberBlocks.js:411 -msgid "The Multiply block is used to multiply." +#: js/blocks/MediaBlocks.js:692 +#: js/blocks/WidgetBlocks.js:182 +#: js/widgets/temperament.js:506 +#: js/widgets/temperament.js:546 +#: js/widgets/temperament.js:610 +#: js/widgets/temperament.js:618 +#: js/widgets/temperament.js:1505 +#: js/widgets/timbre.js:1842 +msgid "frequency" msgstr "" -#: js/NumberBlocks.js:554 -msgid "The Minus block is used to subtract." +#: js/blocks/MediaBlocks.js:692 +msgid "duration (ms)" msgstr "" -#: js/NumberBlocks.js:647 -msgid "The Plus block is used to add." +#: js/blocks/MediaBlocks.js:728 +#.TRANS: translate a note into hertz, e.g., A4 -> 440HZ +msgid "note to frequency" msgstr "" -#: js/NumberBlocks.js:773 -msgid "The One-of block returns one of two choices." +#: js/blocks/MediaBlocks.js:736 +msgid "The To frequency block converts a pitch name and octave to Hertz." msgstr "" -#: js/NumberBlocks.js:780 -#: js/PitchBlocks.js:616 -msgid "one of" +#: js/blocks/MediaBlocks.js:746 +#: js/blocks/PitchBlocks.js:656 +#: js/blocks/PitchBlocks.js:934 +#: js/blocks/PitchBlocks.js:1866 +#.TRANS: name2 is name as in name of pitch (JAPANESE ONLY) +msgid "name2" msgstr "" -#: js/NumberBlocks.js:782 -msgid "this" +#: js/blocks/MediaBlocks.js:812 +msgid "The Avatar block is used to change the appearance of the mouse." msgstr "" -#: js/NumberBlocks.js:782 -msgid "that" +#: js/blocks/MediaBlocks.js:819 +msgid "The Avatar block is used to change the appearance of the turtle." msgstr "" -#: js/NumberBlocks.js:837 -msgid "The Random block returns a random number." +#: js/blocks/MediaBlocks.js:831 +#: js/blocks/MediaBlocks.js:891 +#.TRANS: a media object +msgid "size" msgstr "" -#: js/NumberBlocks.js:844 -msgid "random" -msgstr "aleatori" - -#: js/NumberBlocks.js:846 -msgid "min" -msgstr "mínim" +#: js/blocks/MediaBlocks.js:831 +msgid "image" +msgstr "" -#: js/NumberBlocks.js:846 -msgid "max" -msgstr "màxim" +#: js/blocks/MediaBlocks.js:880 +msgid "The Show block is used to display text or images on the canvas." +msgstr "" -#: js/NumberBlocks.js:910 -msgid "The Number block holds a number." +#: js/blocks/MediaBlocks.js:888 +#.TRANS: show1 is show as in display an image or text on the screen. +msgid "show1" msgstr "" -#: js/BoxesBlocks.js:53 -#: js/BoxesBlocks.js:59 -msgid "The Add-to block is used to add to the value stored in a box." +#: js/blocks/MediaBlocks.js:891 +msgid "obj" msgstr "" -#: js/BoxesBlocks.js:61 -msgid "It can also be used with other blocks such as Color and Pen size." +#: js/blocks/MediaBlocks.js:938 +msgid "The Media block is used to import an image." msgstr "" -#: js/BoxesBlocks.js:73 -msgid "add" +#: js/blocks/MediaBlocks.js:973 +msgid "The Text block holds a text string." msgstr "" -#: js/BoxesBlocks.js:75 -#: js/temperament.js:716 -msgid "to" +#: js/blocks/MeterBlocks.js:34 +#.TRANS: musical meter (time signature), e.g., 4:4 +msgid "current meter" msgstr "" -#: js/BoxesBlocks.js:75 -#: js/BoxesBlocks.js:595 -#: js/HeapBlocks.js:544 -msgid "value1" +#: js/blocks/MeterBlocks.js:85 +#.TRANS: number of beats per minute +msgid "beat factor" msgstr "" -#: js/BoxesBlocks.js:118 -msgid "Block does not support incrementing." +#: js/blocks/MeterBlocks.js:161 +msgid "The Beats per minute block returns the current beats per minute." msgstr "" -#: js/BoxesBlocks.js:152 -msgid "The Add-1-to block adds one to the value stored in a box." +#: js/blocks/MeterBlocks.js:169 +#: js/widgets/status.js:152 +#.TRANS: number of beats played per minute +msgid "beats per minute2" msgstr "" -#: js/BoxesBlocks.js:163 -msgid "add 1 to" +#: js/blocks/MeterBlocks.js:169 +#: js/blocks/MeterBlocks.js:1056 +#: js/blocks/MeterBlocks.js:1133 +#: js/blocks/MeterBlocks.js:1211 +#.TRANS: sets tempo by defining a beat and beats per minute +msgid "beats per minute" msgstr "" -#: js/BoxesBlocks.js:211 -msgid "The Subtract-1-from block subtracts one from the value stored in a box." +#: js/blocks/MeterBlocks.js:233 +#.TRANS: count of current musical measure in meter +msgid "measure count" msgstr "" -#: js/BoxesBlocks.js:222 -msgid "subtract 1 from" +#: js/blocks/MeterBlocks.js:241 +msgid "The Measure count block returns the current measure." msgstr "" -#: js/BoxesBlocks.js:270 -#: js/BoxesBlocks.js:387 -msgid "The Box block returns the value stored in a box." +#: js/blocks/MeterBlocks.js:290 +#.TRANS: count of current beat in the meter +msgid "beat count" msgstr "" -#: js/BoxesBlocks.js:500 -#: js/BoxesBlocks.js:576 -msgid "The Store in block will store a value in a box." +#: js/blocks/MeterBlocks.js:300 +#: js/blocks/MeterBlocks.js:311 +#: js/blocks/MeterBlocks.js:565 +#: js/blocks/MeterBlocks.js:576 +msgid "The Beat count block is the number of the current beat," msgstr "" -#: js/BoxesBlocks.js:652 -msgid "The Box2 block returns the value stored in Box2." +#: js/blocks/MeterBlocks.js:313 +#: js/blocks/MeterBlocks.js:578 +msgid "eg 1, 2, 3, or 4." msgstr "" -#: js/BoxesBlocks.js:703 -msgid "The Store in Box2 block is used to store a value in Box2." +#: js/blocks/MeterBlocks.js:368 +#.TRANS: count the number of notes +msgid "sum note values" msgstr "" -#: js/BoxesBlocks.js:715 -msgid "store in box2" +#: js/blocks/MeterBlocks.js:376 +#: js/blocks/MeterBlocks.js:440 +msgid "The Note counter block can be used to count the number of contained notes." msgstr "" -#: js/BoxesBlocks.js:761 -msgid "The Box1 block returns the value stored in Box1." +#: js/blocks/MeterBlocks.js:432 +#.TRANS: count the number of notes +msgid "note counter" msgstr "" -#: js/BoxesBlocks.js:812 -msgid "The Store in Box1 block is used to store a value in Box1." +#: js/blocks/MeterBlocks.js:496 +#.TRANS: number of whole notes that have been played +msgid "whole notes played" msgstr "" -#: js/BoxesBlocks.js:826 -msgid "store in box1" +#: js/blocks/MeterBlocks.js:505 +msgid "The Whole notes played block returns the total number of whole notes played." msgstr "" -#: js/HeapBlocks.js:49 -msgid "The Heap block returns the heap." +#: js/blocks/MeterBlocks.js:555 +#: js/turtleactions/DictActions.js:83 +#.TRANS: number of notes that have been played +msgid "notes played" msgstr "" -#: js/HeapBlocks.js:133 -msgid "show heap" -msgstr "mostrar la pila" +#: js/blocks/MeterBlocks.js:653 +msgid "The No clock block decouples the notes from the master clock." +msgstr "" -#: js/HeapBlocks.js:181 -msgid "The Heap-length block returns the length of the heap." +#: js/blocks/MeterBlocks.js:661 +#.TRANS: don't lock notes to master clock +msgid "no clock" msgstr "" -#: js/HeapBlocks.js:195 -msgid "heap length" +#: js/blocks/MeterBlocks.js:700 +msgid "on weak beat do" msgstr "" -#: js/HeapBlocks.js:254 -msgid "The Heap-empty? block returns true if the heap is empty." +#: js/blocks/MeterBlocks.js:705 +msgid "The On-weak-beat block lets you specify actions to take on weak (off) beats." msgstr "" -#: js/HeapBlocks.js:268 -#.TRANS: Is the heap empty? -msgid "heap empty?" +#: js/blocks/MeterBlocks.js:750 +msgid "on strong beat" msgstr "" -#: js/HeapBlocks.js:317 -msgid "The Empty-heap block empties the heap." +#: js/blocks/MeterBlocks.js:758 +msgid "The On-strong-beat block lets you specify actions to take on specified beats." msgstr "" -#: js/HeapBlocks.js:327 -#: js/HeapBlocks.js:647 -#.TRANS: empty the heap -msgid "empty heap" -msgstr "buidar la pila" +#: js/blocks/MeterBlocks.js:769 +msgid "beat" +msgstr "" -#: js/HeapBlocks.js:371 -msgid "The Reverse-heap block reverses the order of the heap." +#: js/blocks/MeterBlocks.js:813 +msgid "on every beat do" msgstr "" -#: js/HeapBlocks.js:384 -#.TRANS: reverse the order of the heap -msgid "reverse heap" +#: js/blocks/MeterBlocks.js:821 +msgid "The On-every-beat block lets you specify actions to take on every beat." msgstr "" -#: js/HeapBlocks.js:428 -msgid "The Index-heap block returns a value in the heap at a specified location." +#: js/blocks/MeterBlocks.js:874 +msgid "on every note do" msgstr "" -#: js/HeapBlocks.js:443 -#.TRANS: retrieve a value from the heap at index position in the heap -msgid "index heap" +#: js/blocks/MeterBlocks.js:882 +msgid "The On-every-note block lets you specify actions to take on every note." msgstr "" -#: js/HeapBlocks.js:523 -msgid "The Set-heap entry block sets a value in he heap at the specified location." +#: js/blocks/MeterBlocks.js:928 +#: js/blocks/MeterBlocks.js:999 +#.TRANS: sets tempo by defining a beat and beats per minute +msgid "master beats per minute" msgstr "" -#: js/HeapBlocks.js:619 -msgid "The Pop block removes the value at the top of the heap." +#: js/blocks/MeterBlocks.js:952 +#: js/blocks/MeterBlocks.js:1078 +#: js/blocks/MeterBlocks.js:1135 +msgid "bpm" msgstr "" -#: js/HeapBlocks.js:633 -#.TRANS: pop a value off the top of the heap -msgid "pop" -msgstr "treure" - -#: js/HeapBlocks.js:680 -msgid "The Push block adds a value to the top of the heap." +#: js/blocks/MeterBlocks.js:952 +#: js/blocks/MeterBlocks.js:1078 +#: js/blocks/MeterBlocks.js:1135 +msgid "beat value" msgstr "" -#: js/HeapBlocks.js:696 -#.TRANS: push a value onto the top of the heap -msgid "push" +#: js/blocks/MeterBlocks.js:1024 +#: js/blocks/MeterBlocks.js:1167 +#: js/blocks/MeterBlocks.js:1241 +msgid "Beats per minute must be > 30." msgstr "" -#: js/FlowBlocks.js:41 -msgid "The Backward block runs code in reverse order (Musical retrograde)." +#: js/blocks/MeterBlocks.js:1027 +#: js/blocks/MeterBlocks.js:1170 +#: js/blocks/MeterBlocks.js:1244 +msgid "Maximum beats per minute is 1000." msgstr "" -#: js/FlowBlocks.js:48 -msgid "backward" +#: js/blocks/MeterBlocks.js:1068 +msgid "The Beats per minute block sets the number of 1/4 notes per minute." msgstr "" -#: js/FlowBlocks.js:124 -msgid "The Duplicate block will run each block multiple times." +#: js/blocks/MeterBlocks.js:1279 +#.TRANS: anacrusis +msgid "pickup" msgstr "" -#: js/FlowBlocks.js:136 -msgid "duplicate" +#: js/blocks/MeterBlocks.js:1367 +msgid "number of beats" msgstr "" -#: js/FlowBlocks.js:334 -msgid "The Default block is used inside of a Switch to define the default action." +#: js/blocks/NumberBlocks.js:28 +msgid "The Int block returns an integer." msgstr "" -#: js/FlowBlocks.js:342 -msgid "default" +#: js/blocks/NumberBlocks.js:34 +msgid "int" msgstr "" -#: js/FlowBlocks.js:361 -#: js/FlowBlocks.js:418 -msgid "The Case Block must be used inside of a Switch Block." +#: js/blocks/NumberBlocks.js:73 +msgid "The Mod block returns the remainder from a division." msgstr "" -#: js/FlowBlocks.js:389 -msgid "The Case block is used inside of a Switch to define matches." +#: js/blocks/NumberBlocks.js:79 +msgid "mod" msgstr "" -#: js/FlowBlocks.js:397 -msgid "case" +#: js/blocks/NumberBlocks.js:141 +msgid "The Power block calculates a power function." msgstr "" -#: js/FlowBlocks.js:446 -msgid "The Switch block will run the code in the matching Case." +#: js/blocks/NumberBlocks.js:196 +msgid "The Sqrt block returns the square root." msgstr "" -#: js/FlowBlocks.js:454 -msgid "switch" +#: js/blocks/NumberBlocks.js:202 +msgid "sqrt" msgstr "" -#: js/FlowBlocks.js:595 -msgid "The Stop block will stop a loop" +#: js/blocks/NumberBlocks.js:248 +msgid "The Abs block returns the absolute value." msgstr "" -#: js/FlowBlocks.js:597 -msgid "Forever, Repeat, While, or Until." +#: js/blocks/NumberBlocks.js:254 +msgid "abs" msgstr "" -#: js/FlowBlocks.js:604 -#: js/phrasemaker.js:3799 -#: js/musickeyboard.js:629 -#: js/musickeyboard.js:631 -#: js/timbre.js:417 -#: js/timbre.js:419 -#: plugins/rodi.rtp:29 -#: plugins/rodi.rtp:73 -#: plugins/rodi.rtp:413 -msgid "stop" +#: js/blocks/NumberBlocks.js:295 +msgid "The Distance block returns the distance between two points. For example, between the mouse and the center of the screen." msgstr "" -#: js/FlowBlocks.js:653 -msgid "The Waitfor block will wait until the condition is true." +#: js/blocks/NumberBlocks.js:301 +#: plugins/rodi.rtp:310 +msgid "distance" msgstr "" -#: js/FlowBlocks.js:661 -msgid "wait for" +#: js/blocks/NumberBlocks.js:361 +msgid "The Divide block is used to divide." msgstr "" -#: js/FlowBlocks.js:732 -msgid "The Until block will repeat until the condition is true." +#: js/blocks/NumberBlocks.js:441 +msgid "The Multiply block is used to multiply." msgstr "" -#: js/FlowBlocks.js:740 -msgid "until" +#: js/blocks/NumberBlocks.js:612 +msgid "The Minus block is used to subtract." msgstr "" -#: js/FlowBlocks.js:742 -#: js/FlowBlocks.js:822 -msgid "do2" +#: js/blocks/NumberBlocks.js:723 +msgid "The Plus block is used to add." msgstr "" -#: js/FlowBlocks.js:812 -msgid "The While block will repeat while the condition is true." +#: js/blocks/NumberBlocks.js:849 +msgid "The One-of block returns one of two choices." msgstr "" -#: js/FlowBlocks.js:820 -msgid "while" +#: js/blocks/NumberBlocks.js:856 +#: js/blocks/PitchBlocks.js:616 +msgid "one of" msgstr "" -#: js/FlowBlocks.js:903 -#: js/FlowBlocks.js:968 -#: js/FlowBlocks.js:979 -msgid "In this example if the mouse button is pressed a snare drum will play." +#: js/blocks/NumberBlocks.js:858 +msgid "this" msgstr "" -#: js/FlowBlocks.js:925 -#: js/FlowBlocks.js:988 -msgid "if" -msgstr "si" +#: js/blocks/NumberBlocks.js:858 +msgid "that" +msgstr "" -#: js/FlowBlocks.js:927 -#: js/FlowBlocks.js:990 -msgid "then" +#: js/blocks/NumberBlocks.js:913 +msgid "The Random block returns a random number." msgstr "" -#: js/FlowBlocks.js:927 -msgid "else" -msgstr "sinó" +#: js/blocks/NumberBlocks.js:920 +msgid "random" +msgstr "aleatori" -#: js/FlowBlocks.js:1025 -msgid "The Forever block will repeat the contained blocks forever." -msgstr "" +#: js/blocks/NumberBlocks.js:922 +msgid "min" +msgstr "mínim" -#: js/FlowBlocks.js:1037 -msgid "forever" -msgstr "per sempre" +#: js/blocks/NumberBlocks.js:922 +msgid "max" +msgstr "màxim" -#: js/FlowBlocks.js:1073 -msgid "The Repeat block will repeat the contained blocks." +#: js/blocks/NumberBlocks.js:986 +msgid "The Number block holds a number." msgstr "" -#: js/FlowBlocks.js:1075 -msgid "In this example the note will be played 4 times." +#: js/blocks/OrnamentBlocks.js:32 +msgid "staccato factor" msgstr "" -#: js/FlowBlocks.js:1083 -msgid "repeat" -msgstr "repetir" +#: js/blocks/OrnamentBlocks.js:108 +msgid "slur factor" +msgstr "" -#: js/FlowBlocks.js:1123 -msgid "duplicate factor" +#: js/blocks/OrnamentBlocks.js:217 +#: js/blocks/OrnamentBlocks.js:309 +#.TRANS: the neighbor refers to a neighboring note, e.g., D is a neighbor of C +msgid "neighbor" msgstr "" -#: js/PitchBlocks.js:39 -#: js/musicutils.js:722 -#: js/musicutils.js:1117 -#: js/synthutils.js:112 -#.TRANS: square wave -msgid "square" +#: js/blocks/OrnamentBlocks.js:293 +msgid "The Neighbor block rapidly switches between neighboring pitches." msgstr "" -#: js/PitchBlocks.js:62 -#: js/ToneBlocks.js:39 -#: js/musicutils.js:723 -#: js/musicutils.js:1118 -#: js/synthutils.js:116 -#.TRANS: triangle wave -msgid "triangle" +#: js/blocks/OrnamentBlocks.js:364 +msgid "glide" msgstr "" -#: js/PitchBlocks.js:85 -#: js/musicutils.js:721 -#: js/musicutils.js:1116 -#: js/synthutils.js:110 -#.TRANS: sine wave -msgid "sine" +#: js/blocks/OrnamentBlocks.js:479 +#: js/blocks/OrnamentBlocks.js:643 +msgid "slur" msgstr "" -#: js/PitchBlocks.js:108 -#: js/musicutils.js:724 -#: js/musicutils.js:1119 -#: js/synthutils.js:114 -#.TRANS: sawtooth wave -msgid "sawtooth" +#: js/blocks/OrnamentBlocks.js:558 +#: js/blocks/OrnamentBlocks.js:710 +#.TRANS: play each note sharply detached from the others +msgid "staccato" msgstr "" -#: js/PitchBlocks.js:141 -#.TRANS: musical transposition (adjustment of pitch up or down) -msgid "transposition" +#: js/blocks/RhythmBlocks.js:182 +#: js/blocks/RhythmBlocks.js:1086 +#: js/blocks/RhythmBlocks.js:1162 +msgid "Note value must be greater than 0." msgstr "" -#: js/PitchBlocks.js:168 -#.TRANS: step down one note in current musical scale -msgid "scalar step down" +#: js/blocks/RhythmBlocks.js:215 +#: js/blocks/RhythmBlocks.js:278 +#: js/blocks/RhythmBlocks.js:350 +#.TRANS: swing is a rhythmic variation that emphasises the offbeat +msgid "swing" msgstr "" -#: js/PitchBlocks.js:172 -msgid "The Scalar step down block returns the number of semi-tones down to the previous note in the current key and mode." +#: js/blocks/RhythmBlocks.js:355 +#.TRANS: the amount to shift to the offbeat note +msgid "swing value" msgstr "" -#: js/PitchBlocks.js:190 -#.TRANS: step up one note in current musical scale -msgid "scalar step up" +#: js/blocks/RhythmBlocks.js:419 +msgid "The Skip notes block will cause notes to be skipped." msgstr "" -#: js/PitchBlocks.js:194 -msgid "The Scalar step up block returns the number of semi-tones up to the next note in the current key and mode." +#: js/blocks/RhythmBlocks.js:427 +#.TRANS: substitute rests on notes being skipped +msgid "skip notes" msgstr "" -#: js/PitchBlocks.js:212 -#.TRANS: the change measured in half-steps between the current pitch and the previous pitch -msgid "change in pitch" +#: js/blocks/RhythmBlocks.js:489 +#.TRANS: speed up note duration by some factor, e.g. convert 1/4 to 1/8 notes by using a factor of 2 +msgid "multiply note value" msgstr "" -#: js/PitchBlocks.js:216 -msgid "The Change in pitch block is the difference (in half steps) between the current pitch being played and the previous pitch played." +#: js/blocks/RhythmBlocks.js:542 +msgid "The Tie block works on pairs of notes, combining them into one note." msgstr "" -#: js/PitchBlocks.js:243 -#.TRANS: the change measured in scale-steps between the current pitch and the previous pitch -msgid "scalar change in pitch" +#: js/blocks/RhythmBlocks.js:550 +#.TRANS: tie notes together into one longer note +msgid "tie" msgstr "" -#: js/PitchBlocks.js:250 -#: js/PitchBlocks.js:432 -#: js/PitchBlocks.js:1629 -#: js/DictActions.js:89 -#: js/temperament.js:477 -#: js/temperament.js:481 -#: js/temperament.js:714 -#.TRANS: convert current note to piano key (1-88) -#.TRANS: a mapping of pitch to the 88 piano keys -msgid "pitch number" +#: js/blocks/RhythmBlocks.js:591 +#: js/blocks/RhythmBlocks.js:671 +#.TRANS: a dotted note is played for 1.5x its value, e.g., 1/8. --> 3/16 +msgid "dot" msgstr "" -#: js/PitchBlocks.js:256 -msgid "The Pitch number block is the value of the pitch of the note currently being played." +#: js/blocks/RhythmBlocks.js:619 +#: js/turtleactions/RhythmActions.js:221 +msgid "An argument of -1 results in a note value of 0." msgstr "" -#: js/PitchBlocks.js:329 -#: js/PitchBlocks.js:433 -#.TRANS: the current pitch expressed in Hertz -msgid "pitch in hertz" +#: js/blocks/RhythmBlocks.js:661 +msgid "The Dot block extends the duration of a note by 50%." msgstr "" -#: js/PitchBlocks.js:334 -msgid "The Pitch in Hertz block is the value in Hertz of the pitch of the note currently being played." +#: js/blocks/RhythmBlocks.js:663 +msgid "Eg a dotted quarter note will play for 3/8 (1/4 + 1/8) of a beat." msgstr "" -#: js/PitchBlocks.js:367 -#: js/DictActions.js:87 -msgid "current pitch" +#: js/blocks/RhythmBlocks.js:765 +#.TRANS: Japanese only: note value block for drum +msgid "note value drum" msgstr "" -#: js/PitchBlocks.js:373 -msgid "The Current Pitch block is used with the Pitch Converter block. In the example above, current pitch, sol 4, is displayed as 392 hertz." +#: js/blocks/RhythmBlocks.js:829 +msgid "392 hertz" msgstr "" -#: js/PitchBlocks.js:410 -msgid "This block converts the pitch value of the last note played into different formats such as hertz, letter name, pitch number, et al." +#: js/blocks/RhythmBlocks.js:1119 +msgid "The Note block is a container for one or more Pitch blocks." msgstr "" -#: js/PitchBlocks.js:434 -msgid "alphabet" +#: js/blocks/RhythmBlocks.js:1121 +msgid "The Note block specifies the duration (note value) of its contents." msgstr "" -#: js/PitchBlocks.js:436 -#.TRANS: Translate as "alphabet class" -msgid "letter class" +#: js/blocks/RhythmBlocks.js:1128 +#: js/blocks/PitchBlocks.js:974 +#: js/blocks/PitchBlocks.js:1007 +#: js/blocks/ProgramBlocks.js:1186 +#: js/blocks/ProgramBlocks.js:1227 +#: js/widgets/status.js:190 +#: js/widgets/temperament.js:464 +#: js/widgets/temperament.js:486 +#: js/widgets/temperament.js:496 +#: js/widgets/temperament.js:617 +#: plugins/rodi.rtp:192 +#.TRANS: a musical note consisting of pitch and duration +msgid "note" msgstr "" -#: js/PitchBlocks.js:437 -msgid "solfege class" +#: js/blocks/RhythmBlocks.js:1130 +msgid "value2" msgstr "" -#: js/PitchBlocks.js:438 -msgid "staff y" +#: js/blocks/RhythmBlocks.js:1200 +msgid "define frequency" msgstr "" -#: js/PitchBlocks.js:439 -msgid "solfege syllable" +#: js/blocks/RhythmBlocks.js:1218 +#: js/widgets/temperament.js:787 +#: js/widgets/temperament.js:1587 +msgid "octave space" msgstr "" -#: js/PitchBlocks.js:440 -msgid "pitch class" +#: js/blocks/SensorsBlocks.js:36 +msgid "The Input block prompts for keyboard input." msgstr "" -#: js/PitchBlocks.js:441 -msgid "scalar class" +#: js/blocks/SensorsBlocks.js:46 +msgid "input" msgstr "" -#: js/PitchBlocks.js:443 -msgid "nth degree" +#: js/blocks/SensorsBlocks.js:64 +msgid "Input a value" msgstr "" -#: js/PitchBlocks.js:444 -msgid "pitch to shade" +#: js/blocks/SensorsBlocks.js:126 +msgid "input value" msgstr "" -#: js/PitchBlocks.js:445 -msgid "pitch to color" +#: js/blocks/SensorsBlocks.js:131 +msgid "The Input-value block stores the input." msgstr "" -#: js/PitchBlocks.js:629 -#: js/musickeyboard.js:565 -#.TRANS: MIDI is a technical standard for electronic music -msgid "MIDI" +#: js/blocks/SensorsBlocks.js:238 +msgid "loudness" msgstr "" -#: js/PitchBlocks.js:642 -#.TRANS: set an offset associated with the numeric piano keyboard mapping -msgid "set pitch number offset" +#: js/blocks/SensorsBlocks.js:245 +msgid "The Loudness block returns the volume detected by the microphone." msgstr "" -#: js/PitchBlocks.js:645 -msgid "The Set pitch number offset block is used to set the offset for mapping pitch numbers to pitch and octave." +#: js/blocks/SensorsBlocks.js:300 +msgid "click" msgstr "" -#: js/PitchBlocks.js:679 -#.TRANS: convert piano key number (1-88) to pitch -msgid "number to pitch" +#: js/blocks/SensorsBlocks.js:306 +msgid "The Click block triggers an event if a mouse has been clicked." msgstr "" -#: js/PitchBlocks.js:682 -msgid "The Number to pitch block will convert a pitch number to a pich name." +#: js/blocks/SensorsBlocks.js:313 +msgid "The Click block triggers an event if a turtle has been clicked." msgstr "" -#: js/PitchBlocks.js:715 -#.TRANS: convert piano key number (1-88) to octave -msgid "number to octave" +#: js/blocks/SensorsBlocks.js:342 +msgid "cursor over" msgstr "" -#: js/PitchBlocks.js:717 -msgid "The Number to octave block will convert a pitch number to an octave." +#: js/blocks/SensorsBlocks.js:387 +msgid "cursor out" msgstr "" -#: js/PitchBlocks.js:726 -msgid "y to pitch" +#: js/blocks/SensorsBlocks.js:433 +msgid "cursor button down" msgstr "" -#: js/PitchBlocks.js:729 -msgid "Y to pitch block will convert a staff y position to corresponding pitch notation." +#: js/blocks/SensorsBlocks.js:477 +msgid "cursor button up" msgstr "" -#: js/PitchBlocks.js:841 -msgid "accidental selector" +#: js/blocks/SensorsBlocks.js:521 +#: js/blocks/PenBlocks.js:48 +#: plugins/rodi.rtp:219 +msgid "blue" msgstr "" -#: js/PitchBlocks.js:844 -msgid "The Accidental selector block is used to choose between double-sharp, sharp, natural, flat, and double-flat." +#: js/blocks/SensorsBlocks.js:577 +#: js/blocks/PenBlocks.js:64 +#: plugins/rodi.rtp:218 +msgid "green" msgstr "" -#: js/PitchBlocks.js:858 -msgid "Pitch can be specified in terms of ni dha pa ma ga re sa." +#: js/blocks/SensorsBlocks.js:633 +#: js/blocks/PenBlocks.js:112 +#: plugins/rodi.rtp:217 +msgid "red" msgstr "" -#: js/PitchBlocks.js:872 -msgid "Pitch can be specified in terms of C D E F G A B." +#: js/blocks/SensorsBlocks.js:638 +msgid "The Get red block returns the red component of the pixel under the mouse." msgstr "" -#: js/PitchBlocks.js:883 -msgid "solfege" +#: js/blocks/SensorsBlocks.js:644 +msgid "The Get red block returns the red component of the pixel under the turtle." msgstr "" -#: js/PitchBlocks.js:886 -msgid "Pitch can be specified in terms of do re mi fa sol la ti." +#: js/blocks/SensorsBlocks.js:685 +#: plugins/rodi.rtp:216 +msgid "pixel color" msgstr "" -#: js/PitchBlocks.js:920 -msgid "The Invert block rotates any contained notes around a target note." +#: js/blocks/SensorsBlocks.js:690 +msgid "The Get pixel block returns the color of the pixel under the mouse." msgstr "" -#: js/PitchBlocks.js:927 -#.TRANS: pitch inversion rotates a pitch around another pitch -msgid "invert" +#: js/blocks/SensorsBlocks.js:696 +msgid "The Get pixel block returns the color of the pixel under the turtle." msgstr "" -#: js/PitchBlocks.js:929 -#: js/PitchBlocks.js:935 -#: js/PitchActions.js:727 -#: js/musicutils.js:726 -#: js/musicutils.js:902 -#.TRANS: invert based on even or odd number or musical scale -#.TRANS: even numbers -msgid "even" +#: js/blocks/SensorsBlocks.js:758 +msgid "time" msgstr "" -#: js/PitchBlocks.js:935 -#: js/PitchActions.js:729 -#: js/musicutils.js:728 -#: js/musicutils.js:903 -#.TRANS: odd numbers -msgid "odd" +#: js/blocks/SensorsBlocks.js:804 +msgid "cursor y" msgstr "" -#: js/PitchBlocks.js:935 -#: js/PitchActions.js:731 -#: js/musicutils.js:729 -#: js/musicutils.js:904 -msgid "scalar" +#: js/blocks/SensorsBlocks.js:809 +msgid "The Cursor Y block returns the vertical position of the mouse." msgstr "" -#: js/PitchBlocks.js:966 -#.TRANS: pitch inversion rotates a pitch around another pitch (odd number) -msgid "invert (odd)" +#: js/blocks/SensorsBlocks.js:845 +msgid "cursor x" msgstr "" -#: js/PitchBlocks.js:999 -#.TRANS: pitch inversion rotates a pitch around another pitch (even number) -msgid "invert (even)" +#: js/blocks/SensorsBlocks.js:850 +msgid "The Cursor X block returns the horizontal position of the mouse." msgstr "" -#: js/PitchBlocks.js:1020 -#.TRANS: register is the octave of the current pitch -msgid "register" +#: js/blocks/SensorsBlocks.js:886 +msgid "mouse button" msgstr "" -#: js/PitchBlocks.js:1024 -msgid "The Register block provides an easy way to modify the register (octave) of the notes that follow it." +#: js/blocks/SensorsBlocks.js:888 +msgid "The Mouse-button block returns True if the mouse button is pressed." msgstr "" -#: js/PitchBlocks.js:1074 -msgid "The Semi-tone transposition block will shift the pitches contained inside Note blocks up (or down) by half steps." +#: js/blocks/SensorsBlocks.js:934 +msgid "to ASCII" msgstr "" -#: js/PitchBlocks.js:1076 -msgid "In the example shown above, sol is shifted up to sol#." +#: js/blocks/SensorsBlocks.js:938 +msgid "The To ASCII block converts numbers to letters." msgstr "" -#: js/PitchBlocks.js:1082 -#.TRANS: adjust the amount of shift (up or down) of a pitch -msgid "semi-tone transpose" +#: js/blocks/SensorsBlocks.js:1005 +msgid "The Keyboard block returns computer keyboard input." msgstr "" -#: js/PitchBlocks.js:1115 -msgid "The Transpose by Ratio block will shift the pitches contained inside Note blocks up (or down) by a ratio" +#: js/blocks/RhythmBlockPaletteBlocks.js:50 +#: js/blocks/RhythmBlockPaletteBlocks.js:233 +#.TRANS: rhythm block +#.TRANS: translate "rhythm1" as rhythm +msgid "rhythm1" msgstr "" -#: js/PitchBlocks.js:1121 -#.TRANS: adjust the amount of shift (up or down) of a pitch -msgid "transpose by ratio" +#: js/blocks/RhythmBlockPaletteBlocks.js:70 +#: js/blocks/RhythmBlockPaletteBlocks.js:252 +#: js/blocks/RhythmBlockPaletteBlocks.js:485 +#: js/blocks/RhythmBlockPaletteBlocks.js:554 +#: js/blocks/RhythmBlockPaletteBlocks.js:875 +msgid "number of notes" msgstr "" -#: js/PitchBlocks.js:1204 -#.TRANS: down sixth means the note is five scale degrees below current note -msgid "down sixth" +#: js/blocks/RhythmBlockPaletteBlocks.js:126 +msgid "polyphonic rhythm" msgstr "" -#: js/PitchBlocks.js:1223 -#.TRANS: down third means the note is two scale degrees below current note -msgid "down third" +#: js/blocks/RhythmBlockPaletteBlocks.js:219 +msgid "The Rhythm block is used to generate rhythm patterns." msgstr "" -#: js/PitchBlocks.js:1242 -#.TRANS: seventh means the note is the six scale degrees above current note -msgid "seventh" +#: js/blocks/RhythmBlockPaletteBlocks.js:280 +msgid "1/64 note" msgstr "" -#: js/PitchBlocks.js:1261 -#.TRANS: sixth means the note is the five scale degrees above current note -msgid "sixth" +#: js/blocks/RhythmBlockPaletteBlocks.js:304 +msgid "1/32 note" msgstr "" -#: js/PitchBlocks.js:1280 -#.TRANS: fifth means the note is the four scale degrees above current note -msgid "fifth" +#: js/blocks/RhythmBlockPaletteBlocks.js:332 +msgid "1/16 note" msgstr "" -#: js/PitchBlocks.js:1300 -#.TRANS: fourth means the note is three scale degrees above current note -msgid "fourth" +#: js/blocks/RhythmBlockPaletteBlocks.js:360 +msgid "eighth note" msgstr "" -#: js/PitchBlocks.js:1319 -#.TRANS: third means the note is two scale degrees above current note -msgid "third" +#: js/blocks/RhythmBlockPaletteBlocks.js:388 +msgid "quarter note" msgstr "" -#: js/PitchBlocks.js:1338 -#.TRANS: second means the note is one scale degree above current note -msgid "second" +#: js/blocks/RhythmBlockPaletteBlocks.js:416 +msgid "half note" msgstr "" -#: js/PitchBlocks.js:1379 -msgid "The Scalar transposition block will shift the pitches contained inside Note blocks up (or down) the scale." +#: js/blocks/RhythmBlockPaletteBlocks.js:444 +msgid "whole note" msgstr "" -#: js/PitchBlocks.js:1381 -msgid "In the example shown above, sol is shifted up to la." +#: js/blocks/RhythmBlockPaletteBlocks.js:482 +#: js/blocks/RhythmBlockPaletteBlocks.js:551 +#: js/blocks/RhythmBlockPaletteBlocks.js:602 +#.TRANS: A tuplet is a note value divided into irregular time values. +msgid "tuplet" msgstr "" -#: js/PitchBlocks.js:1388 -#.TRANS: adjust the amount of shift (up or down) of a pitch by musical scale (scalar) steps -msgid "scalar transpose" +#: js/blocks/RhythmBlockPaletteBlocks.js:768 +msgid "septuplet" msgstr "" -#: js/PitchBlocks.js:1423 -msgid "The Accidental block is used to create sharps and flats" +#: js/blocks/RhythmBlockPaletteBlocks.js:796 +msgid "quintuplet" msgstr "" -#: js/PitchBlocks.js:1430 -#.TRANS: An accidental is a modification to a pitch, e.g., sharp or flat. -msgid "accidental override" +#: js/blocks/RhythmBlockPaletteBlocks.js:824 +msgid "triplet" msgstr "" -#: js/PitchBlocks.js:1543 -msgid "The Hertz block (in combination with a Number block) will play a sound at the specified frequency." +#: js/blocks/RhythmBlockPaletteBlocks.js:851 +msgid "simple tuplet" msgstr "" -#: js/PitchBlocks.js:1633 -msgid "The Pitch Number block will play a pitch associated by its number, e.g. 0 for C and 7 for G." +#: js/blocks/RhythmBlockPaletteBlocks.js:861 +msgid "Tuplets are a collection of notes that get scaled to a specific duration." msgstr "" -#: js/PitchBlocks.js:1665 -#: js/PitchBlocks.js:1707 -#.TRANS: a numeric mapping of the notes in an octave based on the musical mode -#.TRANS: a numeric mapping of the notes in an octave based on the musical mode -msgid "nth modal pitch" +#: js/blocks/DrumBlocks.js:59 +msgid "The Noise name block is used to select a noise synthesizer." msgstr "" -#: js/PitchBlocks.js:1668 -msgid "n^th Modal Pitch takes the pattern of pitches in semitones for a mode and makes each point a degree of the mode," +#: js/blocks/DrumBlocks.js:102 +msgid "The Drum name block is used to select a drum." msgstr "" -#: js/PitchBlocks.js:1670 -msgid "starting from 1 and regardless of tonal framework (i.e. not always 8 notes in the octave)" +#: js/blocks/DrumBlocks.js:146 +msgid "The Effects name block is used to select a sound effect." msgstr "" -#: js/PitchBlocks.js:1711 -msgid "N^th Modal Pitch takes a number as an input as the n^th degree for the given mode. 0 is the first position, 1 is the second, -1 is the note before the first etc." +#: js/blocks/DrumBlocks.js:163 +msgid "noise" msgstr "" -#: js/PitchBlocks.js:1713 -msgid "The pitches change according to the mode specified without any need for respellings." +#: js/blocks/DrumBlocks.js:177 +msgid "The Play noise block will generate white, pink, or brown noise." msgstr "" -#: js/PitchBlocks.js:1752 -msgid "Scale Degree is a common convention in music. Scale Degree offers seven possible positions in the scale (1-7) and can be modified via accidentals." +#: js/blocks/DrumBlocks.js:317 +msgid "Replace every instance of a pitch with a drum sound." msgstr "" -#: js/PitchBlocks.js:1754 -msgid "Scale Degree 1 is always the first pitch in a given scale, regardless of octave." +#: js/blocks/DrumBlocks.js:328 +#.TRANS: map a pitch to a drum sound +msgid "map pitch to drum" msgstr "" -#: js/PitchBlocks.js:1776 -#.TRANS: step some number of notes in current musical scale -msgid "scalar step" +#: js/blocks/DrumBlocks.js:395 +msgid "In the example above, a kick drum sound will be played instead of sol." msgstr "" -#: js/PitchBlocks.js:1781 -msgid "The Scalar Step block (in combination with a Number block) will play the next pitch in a scale," +#: js/blocks/DrumBlocks.js:407 +#.TRANS: set the current drum sound for playback +msgid "set drum" msgstr "" -#: js/PitchBlocks.js:1783 -msgid "eg if the last note played was sol, Scalar Step 1 will play la." +#: js/blocks/DrumBlocks.js:451 +msgid "sound effect" msgstr "" -#: js/PitchBlocks.js:1818 -msgid "The Pitch block specifies the pitch name and octave of a note that together determine the frequency of the note." +#: js/blocks/DrumBlocks.js:489 +msgid "You can use multiple Drum blocks within a Note block." msgstr "" -#: js/GraphicsBlocks.js:46 -#: js/DictActions.js:77 -#: js/DictActions.js:155 -#: js/DictActions.js:189 +#: js/blocks/GraphicsBlocks.js:46 +#: js/turtleactions/DictActions.js:77 +#: js/turtleactions/DictActions.js:144 +#: js/turtleactions/DictActions.js:173 msgid "heading" msgstr "" -#: js/GraphicsBlocks.js:56 +#: js/blocks/GraphicsBlocks.js:56 msgid "The Heading block returns the orientation of the mouse." msgstr "" -#: js/GraphicsBlocks.js:62 +#: js/blocks/GraphicsBlocks.js:62 msgid "The Heading block returns the orientation of the turtle." msgstr "" -#: js/GraphicsBlocks.js:133 +#: js/blocks/GraphicsBlocks.js:133 msgid "The Y block returns the vertical position of the mouse." msgstr "" -#: js/GraphicsBlocks.js:140 +#: js/blocks/GraphicsBlocks.js:140 msgid "The Y block returns the vertical position of the turtle." msgstr "" -#: js/GraphicsBlocks.js:149 +#: js/blocks/GraphicsBlocks.js:149 msgid "y3" msgstr "" -#: js/GraphicsBlocks.js:219 +#: js/blocks/GraphicsBlocks.js:219 msgid "The X block returns the horizontal position of the mouse." msgstr "" -#: js/GraphicsBlocks.js:226 +#: js/blocks/GraphicsBlocks.js:226 msgid "The X block returns the horizontal position of the turtle." msgstr "" -#: js/GraphicsBlocks.js:235 +#: js/blocks/GraphicsBlocks.js:235 msgid "x3" msgstr "" -#: js/GraphicsBlocks.js:295 +#: js/blocks/GraphicsBlocks.js:295 msgid "scroll xy" msgstr "" -#: js/GraphicsBlocks.js:303 +#: js/blocks/GraphicsBlocks.js:303 msgid "The Scroll XY block moves the canvas." msgstr "" -#: js/GraphicsBlocks.js:313 +#: js/blocks/GraphicsBlocks.js:313 msgid "x2" msgstr "" -#: js/GraphicsBlocks.js:313 +#: js/blocks/GraphicsBlocks.js:313 msgid "y2" msgstr "" -#: js/GraphicsBlocks.js:373 -#: js/temperament.js:213 -#: js/temperament.js:241 +#: js/blocks/GraphicsBlocks.js:373 +#: js/widgets/temperament.js:319 +#: js/widgets/temperament.js:347 msgid "clear" msgstr "" -#: js/GraphicsBlocks.js:426 +#: js/blocks/GraphicsBlocks.js:426 msgid "The Control-point 2 block sets the second control point for the Bezier curve." msgstr "" -#: js/GraphicsBlocks.js:433 +#: js/blocks/GraphicsBlocks.js:433 msgid "control point 2" msgstr "" -#: js/GraphicsBlocks.js:436 -#: js/GraphicsBlocks.js:487 -#: js/GraphicsBlocks.js:534 -#: js/GraphicsBlocks.js:750 +#: js/blocks/GraphicsBlocks.js:436 +#: js/blocks/GraphicsBlocks.js:487 +#: js/blocks/GraphicsBlocks.js:534 +#: js/blocks/GraphicsBlocks.js:750 msgid "x1" msgstr "" -#: js/GraphicsBlocks.js:436 -#: js/GraphicsBlocks.js:487 -#: js/GraphicsBlocks.js:534 -#: js/GraphicsBlocks.js:750 +#: js/blocks/GraphicsBlocks.js:436 +#: js/blocks/GraphicsBlocks.js:487 +#: js/blocks/GraphicsBlocks.js:534 +#: js/blocks/GraphicsBlocks.js:750 msgid "y1" msgstr "" -#: js/GraphicsBlocks.js:477 +#: js/blocks/GraphicsBlocks.js:477 msgid "The Control-point 1 block sets the first control point for the Bezier curve." msgstr "" -#: js/GraphicsBlocks.js:484 +#: js/blocks/GraphicsBlocks.js:484 msgid "control point 1" msgstr "" -#: js/GraphicsBlocks.js:527 +#: js/blocks/GraphicsBlocks.js:527 msgid "The Bezier block draws a Bezier curve." msgstr "" -#: js/GraphicsBlocks.js:531 +#: js/blocks/GraphicsBlocks.js:531 msgid "bezier" msgstr "" -#: js/GraphicsBlocks.js:592 +#: js/blocks/GraphicsBlocks.js:592 msgid "The Arc block moves the turtle in an arc." msgstr "" -#: js/GraphicsBlocks.js:600 +#: js/blocks/GraphicsBlocks.js:600 msgid "arc" msgstr "arc" -#: js/GraphicsBlocks.js:603 +#: js/blocks/GraphicsBlocks.js:603 msgid "angle" msgstr "angle" -#: js/GraphicsBlocks.js:603 +#: js/blocks/GraphicsBlocks.js:603 msgid "radius" msgstr "" -#: js/GraphicsBlocks.js:620 -#: js/GraphicsBlocks.js:767 -#: js/GraphicsBlocks.js:1010 -#: js/GraphicsBlocks.js:1093 +#: js/blocks/GraphicsBlocks.js:620 +#: js/blocks/GraphicsBlocks.js:767 +#: js/blocks/GraphicsBlocks.js:1010 +#: js/blocks/GraphicsBlocks.js:1093 msgid "Value must be within -5000 to 5000 when Wrap Mode is off." msgstr "" -#: js/GraphicsBlocks.js:622 -#: js/GraphicsBlocks.js:769 -#: js/GraphicsBlocks.js:1012 -#: js/GraphicsBlocks.js:1095 +#: js/blocks/GraphicsBlocks.js:622 +#: js/blocks/GraphicsBlocks.js:769 +#: js/blocks/GraphicsBlocks.js:1012 +#: js/blocks/GraphicsBlocks.js:1095 msgid "Value must be within -20000 to 20000 when Wrap Mode is on." msgstr "" -#: js/GraphicsBlocks.js:660 +#: js/blocks/GraphicsBlocks.js:660 msgid "set heading" msgstr "seth" -#: js/GraphicsBlocks.js:673 +#: js/blocks/GraphicsBlocks.js:673 msgid "The Set heading block sets the heading of the turtle." msgstr "" -#: js/GraphicsBlocks.js:733 +#: js/blocks/GraphicsBlocks.js:733 msgid "The Set XY block moves the mouse to a specific position on the screen." msgstr "" -#: js/GraphicsBlocks.js:739 +#: js/blocks/GraphicsBlocks.js:739 msgid "The Set XY block moves the turtle to a specific position on the screen." msgstr "" -#: js/GraphicsBlocks.js:747 +#: js/blocks/GraphicsBlocks.js:747 msgid "set xy" msgstr "" -#: js/GraphicsBlocks.js:819 +#: js/blocks/GraphicsBlocks.js:819 msgid "The Right block turns the mouse to the right." msgstr "" -#: js/GraphicsBlocks.js:826 +#: js/blocks/GraphicsBlocks.js:826 msgid "The Right block turns the turtle to the right." msgstr "" -#: js/GraphicsBlocks.js:835 +#: js/blocks/GraphicsBlocks.js:835 msgid "right1" msgstr "" -#: js/GraphicsBlocks.js:835 +#: js/blocks/GraphicsBlocks.js:835 #: plugins/rodi.rtp:77 #: plugins/rodi.rtp:340 #: plugins/rodi.rtp:375 msgid "right" msgstr "dreta" -#: js/GraphicsBlocks.js:899 +#: js/blocks/GraphicsBlocks.js:899 msgid "The Left block turns the mouse to the left." msgstr "" -#: js/GraphicsBlocks.js:906 +#: js/blocks/GraphicsBlocks.js:906 msgid "The Left block turns the turtle to the left." msgstr "" -#: js/GraphicsBlocks.js:915 +#: js/blocks/GraphicsBlocks.js:915 msgid "left1" msgstr "" -#: js/GraphicsBlocks.js:915 +#: js/blocks/GraphicsBlocks.js:915 #: plugins/rodi.rtp:79 #: plugins/rodi.rtp:339 #: plugins/rodi.rtp:362 msgid "left" msgstr "esquerra" -#: js/GraphicsBlocks.js:967 -#: js/temperament.js:734 -#: js/temperament.js:933 +#: js/blocks/GraphicsBlocks.js:967 +#: js/widgets/temperament.js:875 +#: js/widgets/temperament.js:1078 #: plugins/rodi.rtp:69 #: plugins/rodi.rtp:387 msgid "back" msgstr "enrere" -#: js/GraphicsBlocks.js:976 +#: js/blocks/GraphicsBlocks.js:976 msgid "The Back block moves the mouse backward." msgstr "" -#: js/GraphicsBlocks.js:983 +#: js/blocks/GraphicsBlocks.js:983 msgid "The Back block moves the turtle backward." msgstr "" -#: js/GraphicsBlocks.js:1050 +#: js/blocks/GraphicsBlocks.js:1050 #: plugins/rodi.rtp:71 #: plugins/rodi.rtp:400 msgid "forward" msgstr "endavant" -#: js/GraphicsBlocks.js:1059 +#: js/blocks/GraphicsBlocks.js:1059 msgid "The Forward block moves the mouse forward." msgstr "" -#: js/GraphicsBlocks.js:1066 +#: js/blocks/GraphicsBlocks.js:1066 msgid "The Forward block moves the turtle forward." msgstr "" -#: js/GraphicsBlocks.js:1154 -#: js/GraphicsBlocks.js:1172 +#: js/blocks/GraphicsBlocks.js:1154 +#: js/blocks/GraphicsBlocks.js:1172 msgid "wrap" msgstr "" -#: js/OrnamentBlocks.js:32 -msgid "staccato factor" -msgstr "" - -#: js/OrnamentBlocks.js:108 -msgid "slur factor" -msgstr "" - -#: js/OrnamentBlocks.js:217 -#: js/OrnamentBlocks.js:309 -#.TRANS: the neighbor refers to a neighboring note, e.g., D is a neighbor of C -msgid "neighbor" -msgstr "" - -#: js/OrnamentBlocks.js:293 -msgid "The Neighbor block rapidly switches between neighboring pitches." -msgstr "" - -#: js/OrnamentBlocks.js:364 -msgid "glide" -msgstr "" - -#: js/OrnamentBlocks.js:479 -#: js/OrnamentBlocks.js:643 -msgid "slur" -msgstr "" - -#: js/OrnamentBlocks.js:558 -#: js/OrnamentBlocks.js:710 -#.TRANS: play each note sharply detached from the others -msgid "staccato" -msgstr "" - -#: js/PenBlocks.js:24 +#: js/blocks/PenBlocks.js:30 msgid "purple" msgstr "" -#: js/PenBlocks.js:37 -#: js/SensorsBlocks.js:521 -#: plugins/rodi.rtp:219 -msgid "blue" -msgstr "" - -#: js/PenBlocks.js:50 -#: js/SensorsBlocks.js:577 -#: plugins/rodi.rtp:218 -msgid "green" -msgstr "" - -#: js/PenBlocks.js:63 +#: js/blocks/PenBlocks.js:80 msgid "yellow" msgstr "" -#: js/PenBlocks.js:76 +#: js/blocks/PenBlocks.js:96 #: plugins/nutrition.rtp:164 msgid "orange" msgstr "" -#: js/PenBlocks.js:89 -#: js/SensorsBlocks.js:633 -#: plugins/rodi.rtp:217 -msgid "red" -msgstr "" - -#: js/PenBlocks.js:102 +#: js/blocks/PenBlocks.js:128 msgid "white" msgstr "" -#: js/PenBlocks.js:115 +#: js/blocks/PenBlocks.js:144 msgid "black" msgstr "" -#: js/PenBlocks.js:128 +#: js/blocks/PenBlocks.js:163 msgid "begin fill" msgstr "" -#: js/PenBlocks.js:143 +#: js/blocks/PenBlocks.js:190 msgid "end fill" msgstr "" -#: js/PenBlocks.js:159 -#: js/PenBlocks.js:386 +#: js/blocks/PenBlocks.js:212 +#: js/blocks/PenBlocks.js:560 #.TRANS: set the background color msgid "background" msgstr "" -#: js/PenBlocks.js:206 -#: js/DictActions.js:71 -#: js/DictActions.js:149 -#: js/DictActions.js:186 +#: js/blocks/PenBlocks.js:274 +#: js/turtleactions/DictActions.js:71 +#: js/turtleactions/DictActions.js:138 +#: js/turtleactions/DictActions.js:170 msgid "grey" msgstr "" -#: js/PenBlocks.js:210 +#: js/blocks/PenBlocks.js:282 msgid "The Grey block returns the current pen grey value." msgstr "" -#: js/PenBlocks.js:243 -#: js/DictActions.js:69 -#: js/DictActions.js:147 -#: js/DictActions.js:185 +#: js/blocks/PenBlocks.js:340 +#: js/turtleactions/DictActions.js:69 +#: js/turtleactions/DictActions.js:136 +#: js/turtleactions/DictActions.js:169 msgid "shade" msgstr "tonalitat" -#: js/PenBlocks.js:247 +#: js/blocks/PenBlocks.js:347 msgid "The Shade block returns the current pen shade value." msgstr "" -#: js/PenBlocks.js:280 -#: js/DictActions.js:67 -#: js/DictActions.js:145 -#: js/DictActions.js:184 +#: js/blocks/PenBlocks.js:405 +#: js/turtleactions/DictActions.js:67 +#: js/turtleactions/DictActions.js:134 +#: js/turtleactions/DictActions.js:168 msgid "color" msgstr "color" -#: js/PenBlocks.js:285 +#: js/blocks/PenBlocks.js:415 msgid "The Color block returns the current pen color." msgstr "" -#: js/PenBlocks.js:318 -#: js/DictActions.js:73 -#: js/DictActions.js:151 -#: js/DictActions.js:187 +#: js/blocks/PenBlocks.js:470 +#: js/turtleactions/DictActions.js:73 +#: js/turtleactions/DictActions.js:140 +#: js/turtleactions/DictActions.js:171 msgid "pen size" msgstr "" -#: js/PenBlocks.js:322 +#: js/blocks/PenBlocks.js:474 msgid "The Pen size block returns the current pen size value." msgstr "" -#: js/PenBlocks.js:355 +#: js/blocks/PenBlocks.js:513 msgid "set font" msgstr "" -#: js/PenBlocks.js:358 +#: js/blocks/PenBlocks.js:518 msgid "The Set font block sets the font used by the Show block." msgstr "" -#: js/PenBlocks.js:391 +#: js/blocks/PenBlocks.js:567 msgid "The Background block sets the window background color." msgstr "" -#: js/PenBlocks.js:408 +#: js/blocks/PenBlocks.js:598 msgid "The Hollow line block creates a line with a hollow center." msgstr "" -#: js/PenBlocks.js:415 +#: js/blocks/PenBlocks.js:606 #.TRANS: draw a line logo has a hollow space down its center msgid "hollow line" msgstr "" -#: js/PenBlocks.js:462 +#: js/blocks/PenBlocks.js:675 msgid "The Fill block fills in a shape with a color." msgstr "" -#: js/PenBlocks.js:470 +#: js/blocks/PenBlocks.js:684 #.TRANS: fill in as a solid color msgid "fill" msgstr "" -#: js/PenBlocks.js:527 +#: js/blocks/PenBlocks.js:761 #.TRANS: raise up the pen so logo it does not draw when it is moved msgid "pen up" msgstr "" -#: js/PenBlocks.js:532 +#: js/blocks/PenBlocks.js:768 msgid "The Pen-up block raises the pen so that it does not draw." msgstr "" -#: js/PenBlocks.js:552 +#: js/blocks/PenBlocks.js:802 #.TRANS: put down the pen so logo it draws when it is moved msgid "pen down" msgstr "" -#: js/PenBlocks.js:557 +#: js/blocks/PenBlocks.js:810 msgid "The Pen-down block lowers the pen so that it draws." msgstr "" -#: js/PenBlocks.js:577 +#: js/blocks/PenBlocks.js:844 #.TRANS: set the width of the line drawn by the pen msgid "set pen size" msgstr "" -#: js/PenBlocks.js:583 +#: js/blocks/PenBlocks.js:854 msgid "The Set-pen-size block changes the size of the pen." msgstr "" -#: js/PenBlocks.js:623 +#: js/blocks/PenBlocks.js:913 #.TRANS: set degree of translucence of the pen color msgid "set translucency" msgstr "" -#: js/PenBlocks.js:627 +#: js/blocks/PenBlocks.js:921 msgid "The Set translucency block changes the opacity of the pen." msgstr "" -#: js/PenBlocks.js:668 +#: js/blocks/PenBlocks.js:981 msgid "set hue" msgstr "" -#: js/PenBlocks.js:672 +#: js/blocks/PenBlocks.js:989 msgid "The Set hue block changes the color of the pen." msgstr "" -#: js/PenBlocks.js:711 +#: js/blocks/PenBlocks.js:1047 msgid "set shade" msgstr "" -#: js/PenBlocks.js:717 +#: js/blocks/PenBlocks.js:1057 msgid "The Set-shade block changes the pen color from dark to light." msgstr "" -#: js/PenBlocks.js:757 +#: js/blocks/PenBlocks.js:1111 #.TRANS: set the level of vividness of the pen color msgid "set grey" msgstr "" -#: js/PenBlocks.js:761 +#: js/blocks/PenBlocks.js:1119 msgid "The Set grey block changes the vividness of the pen color." msgstr "" -#: js/PenBlocks.js:800 +#: js/blocks/PenBlocks.js:1172 msgid "set color" msgstr "" -#: js/PenBlocks.js:806 +#: js/blocks/PenBlocks.js:1182 msgid "The Set-color block changes the pen color." msgstr "" -#: js/VolumeBlocks.js:35 -msgid "synth volume" -msgstr "" - -#: js/VolumeBlocks.js:39 -msgid "The Synth volume block returns the current volume of the current synthesizer." -msgstr "" - -#: js/VolumeBlocks.js:47 -#: js/musicutils.js:730 -#: js/synthutils.js:56 -#.TRANS: musical instrument -msgid "piano" -msgstr "" - -#: js/VolumeBlocks.js:105 -msgid "master volume" -msgstr "" - -#: js/VolumeBlocks.js:109 -msgid "The Master volume block returns the master volume." -msgstr "" - -#: js/VolumeBlocks.js:355 -#: js/VolumeBlocks.js:524 -msgid "set synth volume" -msgstr "" - -#: js/VolumeBlocks.js:362 -#: js/VolumeBlocks.js:545 -msgid "synth" -msgstr "" - -#: js/VolumeBlocks.js:403 -#: js/VolumeBlocks.js:577 -#: js/VolumeBlocks.js:740 -#: js/VolumeActions.js:173 -msgid "Setting volume to 0." -msgstr "" - -#: js/VolumeBlocks.js:440 -msgid "Synth not found" -msgstr "" - -#: js/VolumeBlocks.js:494 -msgid "set drum volume" -msgstr "" - -#: js/VolumeBlocks.js:530 -msgid "The Set synth volume block will change the volume of a particular synth," -msgstr "" - -#: js/VolumeBlocks.js:532 -msgid "eg guitar violin snare drum etc." -msgstr "" - -#: js/VolumeBlocks.js:534 -msgid "The default volume is 50." -msgstr "" - -#: js/VolumeBlocks.js:536 -msgid "The range is 0 for silence to 100 for full volume." -msgstr "" - -#: js/VolumeBlocks.js:597 -msgid "set panning" -msgstr "" - -#: js/VolumeBlocks.js:603 -msgid "The Set Panning block sets the panning for all synthesizers." -msgstr "" - -#: js/VolumeBlocks.js:625 -msgid "Warning: Sound is coming out from only the left or right side." -msgstr "" - -#: js/VolumeBlocks.js:647 -#: js/VolumeBlocks.js:695 -msgid "set master volume" -msgstr "" - -#: js/VolumeBlocks.js:653 -msgid "The Set master volume block sets the volume for all synthesizers." -msgstr "" - -#: js/VolumeBlocks.js:784 -msgid "The Set relative volume block changes the volume of the contained notes." -msgstr "" - -#: js/VolumeBlocks.js:791 -msgid "set relative volume" -msgstr "" - -#: js/VolumeBlocks.js:857 -msgid "decrescendo" -msgstr "" - -#: js/VolumeBlocks.js:921 -msgid "crescendo" -msgstr "" - -#: js/ToneBlocks.js:34 -msgid "oscillator" -msgstr "" - -#: js/ToneBlocks.js:44 -#: js/timbre.js:1562 -#.TRANS: Partials refers to the number of sine waves combined into the sound. -msgid "partials" -msgstr "" - -#: js/ToneBlocks.js:76 -msgid "You are adding multiple oscillator blocks." -msgstr "" - -#: js/ToneBlocks.js:144 -#: js/timbre.js:1225 -#.TRANS: a duo synthesizer combines a synth with a sequencer -msgid "duo synth" -msgstr "" - -#: js/ToneBlocks.js:149 -msgid "The Duo synth block is a duo-frequency modulator used to define a timbre." -msgstr "" - -#: js/ToneBlocks.js:157 -#: js/timbre.js:1476 -msgid "vibrato rate" -msgstr "" - -#: js/ToneBlocks.js:157 -msgid "vibrato intensity" -msgstr "" - -#: js/ToneBlocks.js:185 -#: js/timbre.js:1221 -#.TRANS: AM (amplitude modulation) synthesizer -msgid "AM synth" -msgstr "" - -#: js/ToneBlocks.js:189 -msgid "The AM synth block is an amplitude modulator used to define a timbre." -msgstr "" - -#: js/ToneBlocks.js:224 -#: js/timbre.js:1223 -#.TRANS: FM (frequency modulation) synthesizer -msgid "FM synth" +#: js/blocks/PitchBlocks.js:141 +#.TRANS: musical transposition (adjustment of pitch up or down) +msgid "transposition" msgstr "" -#: js/ToneBlocks.js:228 -msgid "The FM synth block is a frequency modulator used to define a timbre." +#: js/blocks/PitchBlocks.js:168 +#.TRANS: step down one note in current musical scale +msgid "scalar step down" msgstr "" -#: js/ToneBlocks.js:262 -msgid "partial" +#: js/blocks/PitchBlocks.js:172 +msgid "The Scalar step down block returns the number of semi-tones down to the previous note in the current key and mode." msgstr "" -#: js/ToneBlocks.js:265 -msgid "The Partial block is used to specify a weight for a specific partial harmonic." +#: js/blocks/PitchBlocks.js:190 +#.TRANS: step up one note in current musical scale +msgid "scalar step up" msgstr "" -#: js/ToneBlocks.js:284 -#.TRANS: partials are weighted components in a harmonic series -msgid "Partial weight must be between 0 and 1." +#: js/blocks/PitchBlocks.js:194 +msgid "The Scalar step up block returns the number of semi-tones up to the next note in the current key and mode." msgstr "" -#: js/ToneBlocks.js:297 -#.TRANS: partials are weighted components in a harmonic series -msgid "Partial block should be used inside of a Weighted-partials block." +#: js/blocks/PitchBlocks.js:212 +#.TRANS: the change measured in half-steps between the current pitch and the previous pitch +msgid "change in pitch" msgstr "" -#: js/ToneBlocks.js:325 -#.TRANS: partials are weighted components in a harmonic series -msgid "weighted partials" +#: js/blocks/PitchBlocks.js:216 +msgid "The Change in pitch block is the difference (in half steps) between the current pitch being played and the previous pitch played." msgstr "" -#: js/ToneBlocks.js:383 -msgid "The Harmonic block will add harmonics to the contained notes." +#: js/blocks/PitchBlocks.js:243 +#.TRANS: the change measured in scale-steps between the current pitch and the previous pitch +msgid "scalar change in pitch" msgstr "" -#: js/ToneBlocks.js:390 -#.TRANS: A harmonic is an overtone. -msgid "harmonic" +#: js/blocks/PitchBlocks.js:250 +#: js/blocks/PitchBlocks.js:432 +#: js/blocks/PitchBlocks.js:1667 +#: js/turtleactions/DictActions.js:89 +#: js/widgets/temperament.js:610 +#: js/widgets/temperament.js:614 +#: js/widgets/temperament.js:855 +#.TRANS: convert current note to piano key (1-88) +#.TRANS: a mapping of pitch to the 88 piano keys +msgid "pitch number" msgstr "" -#: js/ToneBlocks.js:431 -msgid "The Distortion block adds distortion to the pitch." +#: js/blocks/PitchBlocks.js:256 +msgid "The Pitch number block is the value of the pitch of the note currently being played." msgstr "" -#: js/ToneBlocks.js:438 -#: js/timbre.js:2100 -#.TRANS: distortion is an alteration in the sound -msgid "distortion" +#: js/blocks/PitchBlocks.js:329 +#: js/blocks/PitchBlocks.js:433 +#.TRANS: the current pitch expressed in Hertz +msgid "pitch in hertz" msgstr "" -#: js/ToneBlocks.js:487 -msgid "The Tremolo block adds a wavering effect." +#: js/blocks/PitchBlocks.js:334 +msgid "The Pitch in Hertz block is the value in Hertz of the pitch of the note currently being played." msgstr "" -#: js/ToneBlocks.js:495 -#: js/timbre.js:2092 -#.TRANS: a wavering effect in a musical tone -msgid "tremolo" +#: js/blocks/PitchBlocks.js:367 +#: js/turtleactions/DictActions.js:87 +msgid "current pitch" msgstr "" -#: js/ToneBlocks.js:500 -#: js/ToneBlocks.js:569 -#: js/ToneBlocks.js:630 -#: js/ToneBlocks.js:689 -#: js/timbre.js:2134 -#: js/timbre.js:2222 -#: js/timbre.js:2317 -#: js/timbre.js:2419 -#.TRANS: rate at which tremolo wavers -msgid "rate" +#: js/blocks/PitchBlocks.js:373 +msgid "The Current Pitch block is used with the Pitch Converter block. In the example above, current pitch, sol 4, is displayed as 392 hertz." msgstr "" -#: js/ToneBlocks.js:502 -#: js/ToneBlocks.js:630 -#: js/timbre.js:2137 -#: js/timbre.js:2328 -#.TRANS: amplitude of tremolo waver -msgid "depth" +#: js/blocks/PitchBlocks.js:410 +msgid "This block converts the pitch value of the last note played into different formats such as hertz, letter name, pitch number, et al." msgstr "" -#: js/ToneBlocks.js:559 -msgid "The Phaser block adds a sweeping sound." +#: js/blocks/PitchBlocks.js:434 +msgid "alphabet" msgstr "" -#: js/ToneBlocks.js:566 -#: js/timbre.js:2098 -#.TRANS: alter the phase of the sound -msgid "phaser" +#: js/blocks/PitchBlocks.js:436 +#.TRANS: Translate as "alphabet class" +msgid "letter class" msgstr "" -#: js/ToneBlocks.js:569 -#: js/timbre.js:2422 -msgid "octaves" +#: js/blocks/PitchBlocks.js:437 +msgid "solfege class" msgstr "" -#: js/ToneBlocks.js:569 -#: js/timbre.js:2425 -msgid "base frequency" +#: js/blocks/PitchBlocks.js:438 +msgid "staff y" msgstr "" -#: js/ToneBlocks.js:619 -msgid "The Chorus block adds a chorus effect." +#: js/blocks/PitchBlocks.js:439 +msgid "solfege syllable" msgstr "" -#: js/ToneBlocks.js:627 -#: js/timbre.js:2096 -#.TRANS: musical effect to simulate a choral sound -msgid "chorus" +#: js/blocks/PitchBlocks.js:440 +msgid "pitch class" msgstr "" -#: js/ToneBlocks.js:630 -msgid "delay" +#: js/blocks/PitchBlocks.js:441 +msgid "scalar class" msgstr "" -#: js/ToneBlocks.js:678 -msgid "The Vibrato block adds a rapid, slight variation in pitch." +#: js/blocks/PitchBlocks.js:443 +msgid "nth degree" msgstr "" -#: js/ToneBlocks.js:686 -#: js/timbre.js:2094 -#.TRANS: a rapid, slight variation in pitch -msgid "vibrato" +#: js/blocks/PitchBlocks.js:444 +msgid "pitch to shade" msgstr "" -#: js/ToneBlocks.js:689 -#: js/timbre.js:2221 -msgid "intensity" +#: js/blocks/PitchBlocks.js:445 +msgid "pitch to color" msgstr "" -#: js/ToneBlocks.js:733 -#.TRANS: select synthesizer -msgid "set synth" +#: js/blocks/PitchBlocks.js:629 +#: js/widgets/musickeyboard.js:735 +#.TRANS: MIDI is a technical standard for electronic music +msgid "MIDI" msgstr "" -#: js/ToneBlocks.js:804 -msgid "synth name" +#: js/blocks/PitchBlocks.js:642 +#.TRANS: set an offset associated with the numeric piano keyboard mapping +msgid "set pitch number offset" msgstr "" -#: js/ToneBlocks.js:842 -msgid "set default instrument" +#: js/blocks/PitchBlocks.js:645 +msgid "The Set pitch number offset block is used to set the offset for mapping pitch numbers to pitch and octave." msgstr "" -#: js/ToneBlocks.js:895 -#: js/ToneBlocks.js:943 -#.TRANS: set the characteristics of a custom instrument -msgid "set instrument" +#: js/blocks/PitchBlocks.js:679 +#.TRANS: convert piano key number (1-88) to pitch +msgid "number to pitch" msgstr "" -#: js/ToneBlocks.js:898 -#: js/ToneBlocks.js:926 -#: js/ToneBlocks.js:932 -msgid "The Set instrument block selects a voice for the synthesizer," +#: js/blocks/PitchBlocks.js:682 +msgid "The Number to pitch block will convert a pitch number to a pich name." msgstr "" -#: js/ToneBlocks.js:900 -#: js/ToneBlocks.js:934 -msgid "eg guitar piano violin or cello." +#: js/blocks/PitchBlocks.js:715 +#.TRANS: convert piano key number (1-88) to octave +msgid "number to octave" msgstr "" -#: js/ToneBlocks.js:1015 -msgid "Import a sound file to use as an instrument and set its pitch center." +#: js/blocks/PitchBlocks.js:717 +msgid "The Number to octave block will convert a pitch number to an octave." msgstr "" -#: js/ToneBlocks.js:1110 -msgid "Upload a sound file to connect with the sample block." +#: js/blocks/PitchBlocks.js:726 +msgid "y to pitch" msgstr "" -#: js/MeterBlocks.js:34 -#.TRANS: musical meter (time signature), e.g., 4:4 -msgid "current meter" +#: js/blocks/PitchBlocks.js:729 +msgid "Y to pitch block will convert a staff y position to corresponding pitch notation." msgstr "" -#: js/MeterBlocks.js:85 -#.TRANS: number of beats per minute -msgid "beat factor" +#: js/blocks/PitchBlocks.js:841 +msgid "accidental selector" msgstr "" -#: js/MeterBlocks.js:161 -msgid "The Beats per minute block returns the current beats per minute." +#: js/blocks/PitchBlocks.js:844 +msgid "The Accidental selector block is used to choose between double-sharp, sharp, natural, flat, and double-flat." msgstr "" -#: js/MeterBlocks.js:169 -#: js/status.js:152 -#.TRANS: number of beats played per minute -msgid "beats per minute2" +#: js/blocks/PitchBlocks.js:858 +msgid "Pitch can be specified in terms of ni dha pa ma ga re sa." msgstr "" -#: js/MeterBlocks.js:169 -#: js/MeterBlocks.js:1056 -#: js/MeterBlocks.js:1133 -#: js/MeterBlocks.js:1211 -#.TRANS: sets tempo by defining a beat and beats per minute -msgid "beats per minute" +#: js/blocks/PitchBlocks.js:872 +msgid "Pitch can be specified in terms of C D E F G A B." msgstr "" -#: js/MeterBlocks.js:233 -#.TRANS: count of current musical measure in meter -msgid "measure count" +#: js/blocks/PitchBlocks.js:884 +msgid "solfege" msgstr "" -#: js/MeterBlocks.js:241 -msgid "The Measure count block returns the current measure." +#: js/blocks/PitchBlocks.js:887 +msgid "Pitch can be specified in terms of do re mi fa sol la ti." msgstr "" -#: js/MeterBlocks.js:290 -#.TRANS: count of current beat in the meter -msgid "beat count" +#: js/blocks/PitchBlocks.js:922 +msgid "The Invert block rotates any contained notes around a target note." msgstr "" -#: js/MeterBlocks.js:300 -#: js/MeterBlocks.js:311 -#: js/MeterBlocks.js:565 -#: js/MeterBlocks.js:576 -msgid "The Beat count block is the number of the current beat," +#: js/blocks/PitchBlocks.js:929 +#.TRANS: pitch inversion rotates a pitch around another pitch +msgid "invert" msgstr "" -#: js/MeterBlocks.js:313 -#: js/MeterBlocks.js:578 -msgid "eg 1, 2, 3, or 4." +#: js/blocks/PitchBlocks.js:968 +#.TRANS: pitch inversion rotates a pitch around another pitch (odd number) +msgid "invert (odd)" msgstr "" -#: js/MeterBlocks.js:368 -#.TRANS: count the number of notes -msgid "sum note values" +#: js/blocks/PitchBlocks.js:1001 +#.TRANS: pitch inversion rotates a pitch around another pitch (even number) +msgid "invert (even)" msgstr "" -#: js/MeterBlocks.js:376 -#: js/MeterBlocks.js:440 -msgid "The Note counter block can be used to count the number of contained notes." +#: js/blocks/PitchBlocks.js:1022 +#.TRANS: register is the octave of the current pitch +msgid "register" msgstr "" -#: js/MeterBlocks.js:432 -#.TRANS: count the number of notes -msgid "note counter" +#: js/blocks/PitchBlocks.js:1026 +msgid "The Register block provides an easy way to modify the register (octave) of the notes that follow it." msgstr "" -#: js/MeterBlocks.js:496 -#.TRANS: number of whole notes that have been played -msgid "whole notes played" +#: js/blocks/PitchBlocks.js:1047 +#.TRANS: cents are units used to specify the ratio between pitches. There are 100 cents between successive notes. +msgid "50 cents" msgstr "" -#: js/MeterBlocks.js:505 -msgid "The Whole notes played block returns the total number of whole notes played." +#: js/blocks/PitchBlocks.js:1102 +msgid "The Semi-tone transposition block will shift the pitches contained inside Note blocks up (or down) by half steps." msgstr "" -#: js/MeterBlocks.js:555 -#: js/DictActions.js:83 -#.TRANS: number of notes that have been played -msgid "notes played" +#: js/blocks/PitchBlocks.js:1104 +msgid "In the example shown above, sol is shifted up to sol#." msgstr "" -#: js/MeterBlocks.js:653 -msgid "The No clock block decouples the notes from the master clock." +#: js/blocks/PitchBlocks.js:1110 +#.TRANS: adjust the amount of shift (up or down) of a pitch +msgid "semi-tone transpose" msgstr "" -#: js/MeterBlocks.js:661 -#.TRANS: don't lock notes to master clock -msgid "no clock" +#: js/blocks/PitchBlocks.js:1143 +msgid "The Transpose by Ratio block will shift the pitches contained inside Note blocks up (or down) by a ratio" msgstr "" -#: js/MeterBlocks.js:700 -msgid "on weak beat do" +#: js/blocks/PitchBlocks.js:1149 +#.TRANS: adjust the amount of shift (up or down) of a pitch +msgid "transpose by ratio" msgstr "" -#: js/MeterBlocks.js:705 -msgid "The On-weak-beat block lets you specify actions to take on weak (off) beats." +#: js/blocks/PitchBlocks.js:1232 +#.TRANS: down sixth means the note is five scale degrees below current note +msgid "down sixth" msgstr "" -#: js/MeterBlocks.js:750 -msgid "on strong beat" +#: js/blocks/PitchBlocks.js:1251 +#.TRANS: down third means the note is two scale degrees below current note +msgid "down third" msgstr "" -#: js/MeterBlocks.js:758 -msgid "The On-strong-beat block lets you specify actions to take on specified beats." +#: js/blocks/PitchBlocks.js:1270 +#.TRANS: seventh means the note is the six scale degrees above current note +msgid "seventh" msgstr "" -#: js/MeterBlocks.js:769 -msgid "beat" +#: js/blocks/PitchBlocks.js:1289 +#.TRANS: sixth means the note is the five scale degrees above current note +msgid "sixth" msgstr "" -#: js/MeterBlocks.js:813 -msgid "on every beat do" +#: js/blocks/PitchBlocks.js:1308 +#.TRANS: fifth means the note is the four scale degrees above current note +msgid "fifth" msgstr "" -#: js/MeterBlocks.js:821 -msgid "The On-every-beat block lets you specify actions to take on every beat." +#: js/blocks/PitchBlocks.js:1328 +#.TRANS: fourth means the note is three scale degrees above current note +msgid "fourth" msgstr "" -#: js/MeterBlocks.js:874 -msgid "on every note do" +#: js/blocks/PitchBlocks.js:1347 +#.TRANS: third means the note is two scale degrees above current note +msgid "third" msgstr "" -#: js/MeterBlocks.js:882 -msgid "The On-every-note block lets you specify actions to take on every note." +#: js/blocks/PitchBlocks.js:1366 +#.TRANS: second means the note is one scale degree above current note +msgid "second" msgstr "" -#: js/MeterBlocks.js:928 -#: js/MeterBlocks.js:999 -#.TRANS: sets tempo by defining a beat and beats per minute -msgid "master beats per minute" +#: js/blocks/PitchBlocks.js:1407 +msgid "The Scalar transposition block will shift the pitches contained inside Note blocks up (or down) the scale." msgstr "" -#: js/MeterBlocks.js:952 -#: js/MeterBlocks.js:1078 -#: js/MeterBlocks.js:1135 -msgid "bpm" +#: js/blocks/PitchBlocks.js:1409 +msgid "In the example shown above, sol is shifted up to la." msgstr "" -#: js/MeterBlocks.js:952 -#: js/MeterBlocks.js:1078 -#: js/MeterBlocks.js:1135 -msgid "beat value" +#: js/blocks/PitchBlocks.js:1416 +#.TRANS: adjust the amount of shift (up or down) of a pitch by musical scale (scalar) steps +msgid "scalar transpose" msgstr "" -#: js/MeterBlocks.js:1024 -#: js/MeterBlocks.js:1167 -#: js/MeterBlocks.js:1241 -msgid "Beats per minute must be > 30." +#: js/blocks/PitchBlocks.js:1451 +msgid "The Accidental block is used to create sharps and flats" msgstr "" -#: js/MeterBlocks.js:1027 -#: js/MeterBlocks.js:1170 -#: js/MeterBlocks.js:1244 -msgid "Maximum beats per minute is 1000." +#: js/blocks/PitchBlocks.js:1458 +#.TRANS: An accidental is a modification to a pitch, e.g., sharp or flat. +msgid "accidental override" msgstr "" -#: js/MeterBlocks.js:1068 -msgid "The Beats per minute block sets the number of 1/4 notes per minute." +#: js/blocks/PitchBlocks.js:1581 +msgid "The Hertz block (in combination with a Number block) will play a sound at the specified frequency." msgstr "" -#: js/MeterBlocks.js:1279 -#.TRANS: anacrusis -msgid "pickup" +#: js/blocks/PitchBlocks.js:1671 +msgid "The Pitch Number block will play a pitch associated by its number, e.g. 0 for C and 7 for G." msgstr "" -#: js/MeterBlocks.js:1367 -msgid "number of beats" +#: js/blocks/PitchBlocks.js:1703 +#: js/blocks/PitchBlocks.js:1745 +#.TRANS: a numeric mapping of the notes in an octave based on the musical mode +#.TRANS: a numeric mapping of the notes in an octave based on the musical mode +msgid "nth modal pitch" msgstr "" -#: js/DictBlocks.js:77 -msgid "show dictionary" +#: js/blocks/PitchBlocks.js:1706 +msgid "n^th Modal Pitch takes the pattern of pitches in semitones for a mode and makes each point a degree of the mode," msgstr "" -#: js/DictBlocks.js:129 -msgid "The Dictionary block returns a dictionary." +#: js/blocks/PitchBlocks.js:1708 +msgid "starting from 1 and regardless of tonal framework (i.e. not always 8 notes in the octave)" msgstr "" -#: js/DictBlocks.js:197 -#: js/DictBlocks.js:339 -msgid "The Get-dict block returns a value in the dictionary for a specified key." +#: js/blocks/PitchBlocks.js:1749 +msgid "N^th Modal Pitch takes a number as an input as the n^th degree for the given mode. 0 is the first position, 1 is the second, -1 is the note before the first etc." msgstr "" -#: js/DictBlocks.js:212 -#: js/DictBlocks.js:354 -#.TRANS: retrieve a value from the dictionary with a given key -msgid "get value" +#: js/blocks/PitchBlocks.js:1751 +msgid "The pitches change according to the mode specified without any need for respellings." msgstr "" -#: js/DictBlocks.js:215 -#: js/DictBlocks.js:216 -#: js/DictBlocks.js:289 -#: js/DictBlocks.js:290 -#: js/DictBlocks.js:357 -#: js/DictBlocks.js:430 -#: js/DictBlocks.js:431 -msgid "key2" +#: js/blocks/PitchBlocks.js:1790 +msgid "Scale Degree is a common convention in music. Scale Degree offers seven possible positions in the scale (1-7) and can be modified via accidentals." msgstr "" -#: js/DictBlocks.js:271 -#: js/DictBlocks.js:411 -msgid "The Set-dict block sets a value in the dictionary for a specified key." +#: js/blocks/PitchBlocks.js:1792 +msgid "Scale Degree 1 is always the first pitch in a given scale, regardless of octave." msgstr "" -#: js/DictBlocks.js:286 -#: js/DictBlocks.js:427 -#.TRANS: set a value in the dictionary for a given key -msgid "set value" +#: js/blocks/PitchBlocks.js:1814 +#.TRANS: step some number of notes in current musical scale +msgid "scalar step" msgstr "" -#: js/ExtrasBlocks.js:33 -msgid "fraction" +#: js/blocks/PitchBlocks.js:1819 +msgid "The Scalar Step block (in combination with a Number block) will play the next pitch in a scale," msgstr "" -#: js/ExtrasBlocks.js:36 -msgid "Convert a float to a fraction" +#: js/blocks/PitchBlocks.js:1821 +msgid "eg if the last note played was sol, Scalar Step 1 will play la." msgstr "" -#: js/ExtrasBlocks.js:93 -msgid "save as ABC" +#: js/blocks/PitchBlocks.js:1857 +msgid "The Pitch block specifies the pitch name and octave of a note that together determine the frequency of the note." msgstr "" -#: js/ExtrasBlocks.js:96 -#: js/ExtrasBlocks.js:132 -#: js/ExtrasBlocks.js:168 -msgid "title" +#: js/blocks/ProgramBlocks.js:33 +msgid "The Load-heap-from-app block loads the heap from a web page." msgstr "" -#: js/ExtrasBlocks.js:129 -msgid "save as Lilypond" +#: js/blocks/ProgramBlocks.js:44 +#.TRANS: load the heap contents from a URL +msgid "load heap from App" msgstr "" -#: js/ExtrasBlocks.js:165 -msgid "save as SVG" +#: js/blocks/ProgramBlocks.js:95 +msgid "Error parsing JSON data:" msgstr "" -#: js/ExtrasBlocks.js:216 -msgid "no background" +#: js/blocks/ProgramBlocks.js:100 +msgid "404: Page not found" msgstr "" -#: js/ExtrasBlocks.js:219 -msgid "The No background block eliminates the background from the saved SVG output." +#: js/blocks/ProgramBlocks.js:133 +msgid "The Save-heap-to-app block saves the heap to a web page." msgstr "" -#: js/ExtrasBlocks.js:247 -msgid "show blocks" +#: js/blocks/ProgramBlocks.js:144 +#.TRANS: save the heap contents to a URL +msgid "save heap to App" msgstr "" -#: js/ExtrasBlocks.js:249 -msgid "The Show blocks block shows the blocks." +#: js/blocks/ProgramBlocks.js:189 +msgid "Cannot find a valid heap for" msgstr "" -#: js/ExtrasBlocks.js:274 -msgid "hide blocks" +#: js/blocks/ProgramBlocks.js:206 +msgid "The Load-heap block loads the heap from a file." msgstr "" -#: js/ExtrasBlocks.js:276 -msgid "The Hide blocks block hides the blocks." +#: js/blocks/ProgramBlocks.js:217 +#.TRANS: load the heap from a file +msgid "load heap" msgstr "" -#: js/ExtrasBlocks.js:305 -#: js/ExtrasBlocks.js:335 -msgid "The Space block is used to add space between blocks." +#: js/blocks/ProgramBlocks.js:270 +msgid "The file you selected does not contain a valid heap." msgstr "" -#: js/ExtrasBlocks.js:373 -msgid "wait" -msgstr "esperar" - -#: js/ExtrasBlocks.js:376 -msgid "The Wait block pauses the program for a specified number of seconds." +#: js/blocks/ProgramBlocks.js:275 +msgid "The loadHeap block needs a loadFile block." msgstr "" -#: js/ExtrasBlocks.js:430 -#: plugins/facebook.rtp:30 -msgid "comment" +#: js/blocks/ProgramBlocks.js:291 +msgid "The Set-heap block loads the heap." msgstr "" -#: js/ExtrasBlocks.js:466 -msgid "print" -msgstr "imprimir" +#: js/blocks/ProgramBlocks.js:340 +msgid "The block you selected does not contain a valid heap." +msgstr "" -#: js/ExtrasBlocks.js:473 -msgid "The Print block displays text at the top of the screen." +#: js/blocks/ProgramBlocks.js:343 +msgid "The Set heap block needs a heap." msgstr "" -#: js/ExtrasBlocks.js:579 -msgid "display grid" +#: js/blocks/ProgramBlocks.js:360 +msgid "The Load-dictionary block loads a dictionary from a file." msgstr "" -#: js/ExtrasBlocks.js:584 -msgid "The Display Grid Block changes the grid type" +#: js/blocks/ProgramBlocks.js:372 +#.TRANS: load a dictionary from a file +msgid "load dictionary" msgstr "" -#: js/ExtrasBlocks.js:686 -#: js/ExtrasBlocks.js:705 -#: js/ExtrasBlocks.js:728 -#: js/ExtrasBlocks.js:751 -#: js/ExtrasBlocks.js:769 -#: js/ExtrasBlocks.js:788 -#: js/ExtrasBlocks.js:807 -#: js/ExtrasBlocks.js:826 -msgid "unknown" +#: js/blocks/ProgramBlocks.js:390 +#: js/blocks/ProgramBlocks.js:658 +#: js/blocks/ToneBlocks.js:1025 +msgid "file" msgstr "" -#: js/SensorsBlocks.js:36 -msgid "The Input block prompts for keyboard input." +#: js/blocks/ProgramBlocks.js:444 +msgid "The file you selected does not contain a valid dictionary." msgstr "" -#: js/SensorsBlocks.js:46 -msgid "input" +#: js/blocks/ProgramBlocks.js:449 +msgid "The load dictionary block needs a load file block." msgstr "" -#: js/SensorsBlocks.js:64 -msgid "Input a value" +#: js/blocks/ProgramBlocks.js:466 +msgid "The Set-dictionary block loads a dictionary." msgstr "" -#: js/SensorsBlocks.js:126 -msgid "input value" +#: js/blocks/ProgramBlocks.js:477 +#.TRANS: load a dictionary from a JSON +msgid "set dictionary" msgstr "" -#: js/SensorsBlocks.js:131 -msgid "The Input-value block stores the input." +#: js/blocks/ProgramBlocks.js:546 +msgid "The block you selected does not contain a valid dictionary." msgstr "" -#: js/SensorsBlocks.js:238 -msgid "loudness" +#: js/blocks/ProgramBlocks.js:550 +msgid "The set dictionary block needs a dictionary." msgstr "" -#: js/SensorsBlocks.js:245 -msgid "The Loudness block returns the volume detected by the microphone." +#: js/blocks/ProgramBlocks.js:567 +msgid "The Save-heap block saves the heap to a file." msgstr "" -#: js/SensorsBlocks.js:300 -msgid "click" +#: js/blocks/ProgramBlocks.js:578 +#.TRANS: save the heap to a file +msgid "save heap" msgstr "" -#: js/SensorsBlocks.js:306 -msgid "The Click block triggers an event if a mouse has been clicked." +#: js/blocks/ProgramBlocks.js:629 +msgid "The Save-dictionary block saves a dictionary to a file." msgstr "" -#: js/SensorsBlocks.js:313 -msgid "The Click block triggers an event if a turtle has been clicked." +#: js/blocks/ProgramBlocks.js:640 +#.TRANS: save a dictionary to a file +msgid "save dictionary" msgstr "" -#: js/SensorsBlocks.js:342 -msgid "cursor over" +#: js/blocks/ProgramBlocks.js:720 +msgid "The Open palette block opens a palette." msgstr "" -#: js/SensorsBlocks.js:387 -msgid "cursor out" +#: js/blocks/ProgramBlocks.js:727 +msgid "open palette" msgstr "" -#: js/SensorsBlocks.js:433 -msgid "cursor button down" +#: js/blocks/ProgramBlocks.js:785 +msgid "The Delete block block removes a block." msgstr "" -#: js/SensorsBlocks.js:477 -msgid "cursor button up" +#: js/blocks/ProgramBlocks.js:797 +#.TRANS: Move this block to the trash. +msgid "delete block" msgstr "" -#: js/SensorsBlocks.js:638 -msgid "The Get red block returns the red component of the pixel under the mouse." +#: js/blocks/ProgramBlocks.js:861 +msgid "The Move block block moves a block." msgstr "" -#: js/SensorsBlocks.js:644 -msgid "The Get red block returns the red component of the pixel under the turtle." +#: js/blocks/ProgramBlocks.js:869 +#.TRANS: Move the position of a block on the screen. +msgid "move block" msgstr "" -#: js/SensorsBlocks.js:685 -#: plugins/rodi.rtp:216 -msgid "pixel color" +#: js/blocks/ProgramBlocks.js:881 +#: js/blocks/ProgramBlocks.js:1048 +msgid "block number" msgstr "" -#: js/SensorsBlocks.js:690 -msgid "The Get pixel block returns the color of the pixel under the mouse." +#: js/blocks/ProgramBlocks.js:935 +#.TRANS: Run program beginning at this block. +msgid "run block" msgstr "" -#: js/SensorsBlocks.js:696 -msgid "The Get pixel block returns the color of the pixel under the turtle." +#: js/blocks/ProgramBlocks.js:1025 +msgid "The Dock block block connections two blocks." msgstr "" -#: js/SensorsBlocks.js:758 -msgid "time" +#: js/blocks/ProgramBlocks.js:1036 +#.TRANS: We can connect a block to another block. +msgid "connect blocks" msgstr "" -#: js/SensorsBlocks.js:804 -msgid "cursor y" +#: js/blocks/ProgramBlocks.js:1048 +msgid "target block" msgstr "" -#: js/SensorsBlocks.js:809 -msgid "The Cursor Y block returns the vertical position of the mouse." +#: js/blocks/ProgramBlocks.js:1048 +msgid "connection number" msgstr "" -#: js/SensorsBlocks.js:845 -msgid "cursor x" +#: js/blocks/ProgramBlocks.js:1140 +msgid "The Make block block creates a new block." msgstr "" -#: js/SensorsBlocks.js:850 -msgid "The Cursor X block returns the horizontal position of the mouse." +#: js/blocks/ProgramBlocks.js:1152 +#.TRANS: Create a new block +msgid "make block" msgstr "" -#: js/SensorsBlocks.js:886 -msgid "mouse button" +#: js/blocks/ProgramBlocks.js:1285 +msgid "Cannot find block" msgstr "" -#: js/SensorsBlocks.js:888 -msgid "The Mouse-button block returns True if the mouse button is pressed." +#: js/blocks/ProgramBlocks.js:1304 +#: js/blocks/ProgramBlocks.js:1313 +msgid "Warning: block argument type mismatch" msgstr "" -#: js/SensorsBlocks.js:934 -msgid "to ASCII" +#: js/blocks/ProgramBlocks.js:1347 +msgid "The Open project block is used to open a project from a web page." msgstr "" -#: js/SensorsBlocks.js:938 -msgid "The To ASCII block converts numbers to letters." +#: js/blocks/ProgramBlocks.js:1357 +msgid "open project" msgstr "" -#: js/SensorsBlocks.js:1005 -msgid "The Keyboard block returns computer keyboard input." +#: js/blocks/ProgramBlocks.js:1410 +msgid "Please enter a valid URL." msgstr "" -#: js/IntervalsActions.js:216 -msgid "Adding missing pitch number 0." +#: js/blocks/ToneBlocks.js:34 +msgid "oscillator" msgstr "" -#: js/IntervalsActions.js:224 -msgid "Ignoring pitch numbers less than zero or greater than eleven." +#: js/blocks/ToneBlocks.js:42 +#: js/blocks/WidgetBlocks.js:179 +#: js/widgets/timbre.js:1558 +#: js/widgets/timbre.js:1808 +#.TRANS: there are different types (sine, triangle, square...) of oscillators. +#.TRANS: type of filter, e.g., lowpass, highpass, etc. +msgid "type" msgstr "" -#: js/IntervalsActions.js:230 -msgid "Ignoring duplicate pitch numbers." +#: js/blocks/ToneBlocks.js:44 +#: js/widgets/timbre.js:1562 +#.TRANS: Partials refers to the number of sine waves combined into the sound. +msgid "partials" msgstr "" -#: js/PitchActions.js:88 -msgid "The Scalar Step Block must be used inside of a Note Block." +#: js/blocks/ToneBlocks.js:76 +msgid "You are adding multiple oscillator blocks." msgstr "" -#: js/PitchActions.js:107 -msgid "The Scalar Step Block must be preceded by a Pitch Block." +#: js/blocks/ToneBlocks.js:144 +#: js/widgets/timbre.js:1225 +#.TRANS: a duo synthesizer combines a synth with a sequencer +msgid "duo synth" msgstr "" -#: js/DrumActions.js:231 -msgid "Noise Block: Did you mean to use a Note block?" +#: js/blocks/ToneBlocks.js:149 +msgid "The Duo synth block is a duo-frequency modulator used to define a timbre." msgstr "" -#: js/MeterActions.js:101 -#: js/MeterActions.js:139 -msgid "beats per minute must be greater than" +#: js/blocks/ToneBlocks.js:157 +#: js/widgets/timbre.js:1476 +msgid "vibrato rate" msgstr "" -#: js/MeterActions.js:111 -#: js/MeterActions.js:149 -msgid "maximum" +#: js/blocks/ToneBlocks.js:157 +msgid "vibrato intensity" msgstr "" -#: js/MeterActions.js:117 -#: js/MeterActions.js:155 -msgid "beats per minute is" +#: js/blocks/ToneBlocks.js:185 +#: js/widgets/timbre.js:1221 +#.TRANS: AM (amplitude modulation) synthesizer +msgid "AM synth" msgstr "" -#: js/ToneActions.js:134 -msgid "Vibrato intensity must be between 1 and 100." +#: js/blocks/ToneBlocks.js:189 +msgid "The AM synth block is an amplitude modulator used to define a timbre." msgstr "" -#: js/ToneActions.js:139 -msgid "Vibrato rate must be greater than 0." +#: js/blocks/ToneBlocks.js:224 +#: js/widgets/timbre.js:1223 +#.TRANS: FM (frequency modulation) synthesizer +msgid "FM synth" msgstr "" -#: js/ToneActions.js:192 -#: js/ToneActions.js:265 -#.TRANS: Depth is the intesity of the tremolo or chorus effect. -msgid "Depth is out of range." +#: js/blocks/ToneBlocks.js:228 +msgid "The FM synth block is a frequency modulator used to define a timbre." msgstr "" -#: js/ToneActions.js:301 -msgid "Distortion must be from 0 to 100." +#: js/blocks/ToneBlocks.js:262 +msgid "partial" msgstr "" -#: js/ToneActions.js:332 -#.TRANS: partials components in a harmonic series -msgid "Partial must be greater than or equal to 0." +#: js/blocks/ToneBlocks.js:265 +msgid "The Partial block is used to specify a weight for a specific partial harmonic." msgstr "" -#: js/ToneActions.js:378 -#: js/ToneActions.js:417 -#: js/ToneActions.js:456 -#: js/timbre.js:782 -msgid "Unable to use synth due to existing oscillator" +#: js/blocks/ToneBlocks.js:284 +#.TRANS: partials are weighted components in a harmonic series +msgid "Partial weight must be between 0 and 1." msgstr "" -#: js/ToneActions.js:388 -#: js/ToneActions.js:427 -msgid "The input cannot be negative." +#: js/blocks/ToneBlocks.js:297 +#.TRANS: partials are weighted components in a harmonic series +msgid "Partial block should be used inside of a Weighted-partials block." msgstr "" -#: js/DictActions.js:75 -#: js/DictActions.js:153 -#: js/DictActions.js:188 -msgid "font" +#: js/blocks/ToneBlocks.js:325 +#.TRANS: partials are weighted components in a harmonic series +msgid "weighted partials" msgstr "" -#: js/musicutils.js:363 -#: js/musicutils.js:471 -#: js/pitchdrummatrix.js:151 -#: js/musickeyboard.js:2563 -msgid "rest" +#: js/blocks/ToneBlocks.js:383 +msgid "The Harmonic block will add harmonics to the contained notes." msgstr "" -#: js/musicutils.js:565 -#.TRANS: ordinal number. Please keep exactly one space between each number. -msgid "1st 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th" +#: js/blocks/ToneBlocks.js:390 +#.TRANS: A harmonic is an overtone. +msgid "harmonic" msgstr "" -#: js/musicutils.js:629 -#: js/musicutils.js:812 -#: js/musicutils.js:911 -#.TRANS: augmented is a music term related to intervals -msgid "augmented" +#: js/blocks/ToneBlocks.js:431 +msgid "The Distortion block adds distortion to the pitch." msgstr "" -#: js/musicutils.js:631 -#: js/musicutils.js:813 -#: js/musicutils.js:910 -#.TRANS: diminished is a music term related to intervals and mode -msgid "diminished" +#: js/blocks/ToneBlocks.js:438 +#: js/widgets/timbre.js:2100 +#.TRANS: distortion is an alteration in the sound +msgid "distortion" msgstr "" -#: js/musicutils.js:639 -#.TRANS: twelve semi-tone scale for music -msgid "chromatic" +#: js/blocks/ToneBlocks.js:487 +msgid "The Tremolo block adds a wavering effect." msgstr "" -#: js/musicutils.js:640 -msgid "algerian" +#: js/blocks/ToneBlocks.js:495 +#: js/widgets/timbre.js:2092 +#.TRANS: a wavering effect in a musical tone +msgid "tremolo" msgstr "" -#: js/musicutils.js:641 -msgid "spanish" +#: js/blocks/ToneBlocks.js:500 +#: js/blocks/ToneBlocks.js:569 +#: js/blocks/ToneBlocks.js:630 +#: js/blocks/ToneBlocks.js:689 +#: js/widgets/timbre.js:2134 +#: js/widgets/timbre.js:2222 +#: js/widgets/timbre.js:2317 +#: js/widgets/timbre.js:2419 +#.TRANS: rate at which tremolo wavers +msgid "rate" msgstr "" -#: js/musicutils.js:643 -#.TRANS: modal scale in music -msgid "octatonic" +#: js/blocks/ToneBlocks.js:502 +#: js/blocks/ToneBlocks.js:630 +#: js/widgets/timbre.js:2137 +#: js/widgets/timbre.js:2328 +#.TRANS: amplitude of tremolo waver +msgid "depth" msgstr "" -#: js/musicutils.js:645 -#.TRANS: harmonic major scale in music -msgid "harmonic major" +#: js/blocks/ToneBlocks.js:559 +msgid "The Phaser block adds a sweeping sound." msgstr "" -#: js/musicutils.js:647 -#.TRANS: natural minor scales in music -msgid "natural minor" +#: js/blocks/ToneBlocks.js:566 +#: js/widgets/timbre.js:2098 +#.TRANS: alter the phase of the sound +msgid "phaser" msgstr "" -#: js/musicutils.js:649 -#.TRANS: harmonic minor scale in music -msgid "harmonic minor" +#: js/blocks/ToneBlocks.js:569 +#: js/turtleactions/IntervalsActions.js:114 +#: js/widgets/timbre.js:2422 +msgid "octaves" msgstr "" -#: js/musicutils.js:651 -#.TRANS: melodic minor scale in music -msgid "melodic minor" +#: js/blocks/ToneBlocks.js:569 +#: js/widgets/timbre.js:2425 +msgid "base frequency" msgstr "" -#: js/musicutils.js:655 -#.TRANS: modal scale for music -msgid "dorian" +#: js/blocks/ToneBlocks.js:619 +msgid "The Chorus block adds a chorus effect." msgstr "" -#: js/musicutils.js:657 -#.TRANS: modal scale for music -msgid "phrygian" +#: js/blocks/ToneBlocks.js:627 +#: js/widgets/timbre.js:2096 +#.TRANS: musical effect to simulate a choral sound +msgid "chorus" msgstr "" -#: js/musicutils.js:659 -#.TRANS: modal scale for music -msgid "lydian" +#: js/blocks/ToneBlocks.js:630 +msgid "delay" msgstr "" -#: js/musicutils.js:661 -#.TRANS: modal scale for music -msgid "mixolydian" +#: js/blocks/ToneBlocks.js:678 +msgid "The Vibrato block adds a rapid, slight variation in pitch." msgstr "" -#: js/musicutils.js:665 -#.TRANS: modal scale for music -msgid "locrian" +#: js/blocks/ToneBlocks.js:686 +#: js/widgets/timbre.js:2094 +#.TRANS: a rapid, slight variation in pitch +msgid "vibrato" msgstr "" -#: js/musicutils.js:667 -#.TRANS: minor jazz scale for music -msgid "jazz minor" +#: js/blocks/ToneBlocks.js:689 +#: js/widgets/timbre.js:2221 +msgid "intensity" msgstr "" -#: js/musicutils.js:669 -#.TRANS: bebop scale for music -msgid "bebop" +#: js/blocks/ToneBlocks.js:733 +#.TRANS: select synthesizer +msgid "set synth" msgstr "" -#: js/musicutils.js:670 -msgid "arabic" +#: js/blocks/ToneBlocks.js:804 +msgid "synth name" msgstr "" -#: js/musicutils.js:671 -msgid "byzantine" +#: js/blocks/ToneBlocks.js:842 +msgid "set default instrument" msgstr "" -#: js/musicutils.js:673 -#.TRANS: musical scale for music by Verdi -msgid "enigmatic" +#: js/blocks/ToneBlocks.js:895 +#: js/blocks/ToneBlocks.js:943 +#.TRANS: set the characteristics of a custom instrument +msgid "set instrument" msgstr "" -#: js/musicutils.js:674 -msgid "ethiopian" +#: js/blocks/ToneBlocks.js:898 +#: js/blocks/ToneBlocks.js:926 +#: js/blocks/ToneBlocks.js:932 +msgid "The Set instrument block selects a voice for the synthesizer," msgstr "" -#: js/musicutils.js:676 -#.TRANS: Ethiopic scale for music -msgid "geez" +#: js/blocks/ToneBlocks.js:900 +#: js/blocks/ToneBlocks.js:934 +msgid "eg guitar piano violin or cello." msgstr "" -#: js/musicutils.js:677 -msgid "hindu" +#: js/blocks/ToneBlocks.js:1015 +msgid "Import a sound file to use as an instrument and set its pitch center." msgstr "" -#: js/musicutils.js:678 -msgid "hungarian" +#: js/blocks/ToneBlocks.js:1110 +msgid "Upload a sound file to connect with the sample block." msgstr "" -#: js/musicutils.js:680 -#.TRANS: minor Romanian scale for music -msgid "romanian minor" +#: js/blocks/VolumeBlocks.js:35 +msgid "synth volume" msgstr "" -#: js/musicutils.js:681 -msgid "spanish gypsy" +#: js/blocks/VolumeBlocks.js:39 +msgid "The Synth volume block returns the current volume of the current synthesizer." msgstr "" -#: js/musicutils.js:683 -#.TRANS: musical scale for Mid-Eastern music -msgid "maqam" +#: js/blocks/VolumeBlocks.js:105 +msgid "master volume" msgstr "" -#: js/musicutils.js:685 -#.TRANS: minor blues scale for music -msgid "minor blues" +#: js/blocks/VolumeBlocks.js:109 +msgid "The Master volume block returns the master volume." msgstr "" -#: js/musicutils.js:687 -#.TRANS: major blues scale for music -msgid "major blues" +#: js/blocks/VolumeBlocks.js:355 +#: js/blocks/VolumeBlocks.js:524 +msgid "set synth volume" msgstr "" -#: js/musicutils.js:688 -msgid "whole tone" +#: js/blocks/VolumeBlocks.js:362 +#: js/blocks/VolumeBlocks.js:545 +msgid "synth" msgstr "" -#: js/musicutils.js:690 -#.TRANS: pentatonic is a general term that means "five note scale". This scale is typically known as "minor pentatonic" -msgid "minor pentatonic" +#: js/blocks/VolumeBlocks.js:403 +#: js/blocks/VolumeBlocks.js:577 +#: js/blocks/VolumeBlocks.js:740 +#: js/turtleactions/VolumeActions.js:173 +msgid "Setting volume to 0." msgstr "" -#: js/musicutils.js:692 -#.TRANS: pentatonic is a general term that means "five note scale". This scale is typically known as "major pentatonic" -msgid "major pentatonic" +#: js/blocks/VolumeBlocks.js:440 +msgid "Synth not found" msgstr "" -#: js/musicutils.js:693 -msgid "chinese" +#: js/blocks/VolumeBlocks.js:494 +msgid "set drum volume" msgstr "" -#: js/musicutils.js:694 -msgid "egyptian" +#: js/blocks/VolumeBlocks.js:530 +msgid "The Set synth volume block will change the volume of a particular synth," msgstr "" -#: js/musicutils.js:696 -#.TRANS: https://en.wikipedia.org/wiki/Hirajoshi_scale NOTE: There are three different versions of this scale -msgid "hirajoshi" +#: js/blocks/VolumeBlocks.js:532 +msgid "eg guitar violin snare drum etc." msgstr "" -#: js/musicutils.js:697 -msgid "Japan" +#: js/blocks/VolumeBlocks.js:534 +msgid "The default volume is 50." msgstr "" -#: js/musicutils.js:699 -#.TRANS: https://en.wikipedia.org/wiki/In_scale and https://en.wikipedia.org/wiki/Sakura_Sakura -msgid "in" +#: js/blocks/VolumeBlocks.js:536 +msgid "The range is 0 for silence to 100 for full volume." msgstr "" -#: js/musicutils.js:701 -#.TRANS: https://en.wikipedia.org/wiki/Miny%C5%8D_scale -msgid "minyo" +#: js/blocks/VolumeBlocks.js:597 +msgid "set panning" msgstr "" -#: js/musicutils.js:703 -#.TRANS: Italian mathematician -msgid "fibonacci" +#: js/blocks/VolumeBlocks.js:603 +msgid "The Set Panning block sets the panning for all synthesizers." msgstr "" -#: js/musicutils.js:708 -#: js/musicutils.js:1106 -#.TRANS: lowpass filter -msgid "lowpass" +#: js/blocks/VolumeBlocks.js:625 +msgid "Warning: Sound is coming out from only the left or right side." msgstr "" -#: js/musicutils.js:710 -#: js/musicutils.js:1107 -#.TRANS: bandpass filter -msgid "bandpass" +#: js/blocks/VolumeBlocks.js:647 +#: js/blocks/VolumeBlocks.js:695 +msgid "set master volume" msgstr "" -#: js/musicutils.js:712 -#: js/musicutils.js:1108 -#.TRANS: high-shelf filter -msgid "highshelf" +#: js/blocks/VolumeBlocks.js:653 +msgid "The Set master volume block sets the volume for all synthesizers." msgstr "" -#: js/musicutils.js:714 -#: js/musicutils.js:1109 -#.TRANS: low-shelf filter -msgid "lowshelf" +#: js/blocks/VolumeBlocks.js:784 +msgid "The Set relative volume block changes the volume of the contained notes." msgstr "" -#: js/musicutils.js:716 -#: js/musicutils.js:1110 -#.TRANS: notch-shelf filter -msgid "notch" +#: js/blocks/VolumeBlocks.js:791 +msgid "set relative volume" msgstr "" -#: js/musicutils.js:718 -#: js/musicutils.js:1111 -#.TRANS: all-pass filter -msgid "allpass" +#: js/blocks/VolumeBlocks.js:857 +msgid "decrescendo" msgstr "" -#: js/musicutils.js:720 -#: js/musicutils.js:1112 -#.TRANS: peaking filter -msgid "peaking" +#: js/blocks/VolumeBlocks.js:921 +msgid "crescendo" msgstr "" -#: js/musicutils.js:731 -#: js/synthutils.js:58 -#.TRANS: musical instrument -msgid "violin" +#: js/blocks/WidgetBlocks.js:81 +#.TRANS: sound envelope (ADSR) +msgid "envelope" msgstr "" -#: js/musicutils.js:732 -#: js/synthutils.js:60 -#.TRANS: viola musical instrument -msgid "viola" +#: js/blocks/WidgetBlocks.js:89 +#.TRANS: Attack time is the time taken for initial run-up of level from nil to peak, beginning when the key is first pressed. +msgid "attack" msgstr "" -#: js/musicutils.js:733 -#: js/synthutils.js:98 -#.TRANS: xylophone musical instrument -msgid "xylophone" +#: js/blocks/WidgetBlocks.js:91 +#.TRANS: Decay time is the time taken for the subsequent run down from the attack level to the designated sustain level. +msgid "decay" msgstr "" -#: js/musicutils.js:734 -#: js/synthutils.js:120 -#.TRANS: vibraphone musical instrument -msgid "vibraphone" +#: js/blocks/WidgetBlocks.js:93 +#.TRANS: Sustain level is the level during the main sequence of the sound's duration, until the key is released. +msgid "sustain" msgstr "" -#: js/musicutils.js:735 -#: js/synthutils.js:62 -#.TRANS: musical instrument -msgid "cello" +#: js/blocks/WidgetBlocks.js:95 +#.TRANS: Release time is the time taken for the level to decay from the sustain level to zero after the key is released. +msgid "release" msgstr "" -#: js/musicutils.js:737 -#: js/synthutils.js:66 -#.TRANS: viola musical instrument -msgid "double bass" +#: js/blocks/WidgetBlocks.js:113 +msgid "Attack value should be from 0 to 100." msgstr "" -#: js/musicutils.js:738 -#: js/synthutils.js:68 -#: js/rhythmruler.js:2119 -#.TRANS: musical instrument -msgid "guitar" +#: js/blocks/WidgetBlocks.js:116 +msgid "Decay value should be from 0 to 100." msgstr "" -#: js/musicutils.js:739 -#: js/synthutils.js:70 -#.TRANS: musical instrument -msgid "acoustic guitar" +#: js/blocks/WidgetBlocks.js:119 +msgid "Sustain value should be from 0 to 100." msgstr "" -#: js/musicutils.js:740 -#: js/synthutils.js:72 -#.TRANS: musical instrument -msgid "flute" +#: js/blocks/WidgetBlocks.js:122 +msgid "Release value should be from 0-100." msgstr "" -#: js/musicutils.js:741 -#: js/synthutils.js:74 -#.TRANS: musical instrument -msgid "clarinet" +#: js/blocks/WidgetBlocks.js:140 +msgid "You are adding multiple envelope blocks." msgstr "" -#: js/musicutils.js:742 -#: js/synthutils.js:76 -#.TRANS: musical instrument -msgid "saxophone" +#: js/blocks/WidgetBlocks.js:171 +#.TRANS: a filter removes some unwanted components from a signal +msgid "filter" msgstr "" -#: js/musicutils.js:743 -#: js/synthutils.js:78 -#.TRANS: musical instrument -msgid "tuba" +#: js/blocks/WidgetBlocks.js:181 +#: js/widgets/timbre.js:1818 +#.TRANS: rolloff is the steepness of a change in frequency. +msgid "rolloff" msgstr "" -#: js/musicutils.js:744 -#: js/synthutils.js:80 -#.TRANS: musical instrument -msgid "trumpet" +#: js/blocks/WidgetBlocks.js:213 +#.TRANS: rolloff is the steepness of a change in frequency. +msgid "Rolloff value should be either -12, -24, -48, or -96 decibels/octave." msgstr "" -#: js/musicutils.js:745 -#: js/synthutils.js:82 -#.TRANS: musical instrument -msgid "oboe" +#: js/blocks/WidgetBlocks.js:252 +msgid "The Temperament tool is used to define custom tuning." msgstr "" -#: js/musicutils.js:746 -#: js/synthutils.js:84 -#.TRANS: musical instrument -msgid "trombone" +#: js/blocks/WidgetBlocks.js:332 +#: js/blocks/WidgetBlocks.js:1573 +#: js/widgets/sampler.js:547 +msgid "Upload a sample and adjust its pitch center." msgstr "" -#: js/musicutils.js:747 -#: js/synthutils.js:100 -#.TRANS: polytone synthesizer -msgid "electronic synth" +#: js/blocks/WidgetBlocks.js:339 +#.TRANS: the speed at music is should be played. +msgid "sampler" msgstr "" -#: js/musicutils.js:748 -#: js/synthutils.js:102 -#.TRANS: simple monotone synthesizer -msgid "simple 1" +#: js/blocks/WidgetBlocks.js:517 +msgid "The Meter block opens a tool to select strong beats for the meter." msgstr "" -#: js/musicutils.js:749 -msgid "simple 2" +#: js/blocks/WidgetBlocks.js:573 +msgid "The oscilloscope block opens a tool to visualize waveforms." msgstr "" -#: js/musicutils.js:750 -msgid "simple 3" +#: js/blocks/WidgetBlocks.js:578 +msgid "oscilloscope" msgstr "" -#: js/musicutils.js:751 -msgid "simple 4" +#: js/blocks/WidgetBlocks.js:645 +msgid "The Custom mode block opens a tool to explore musical mode (the spacing of the notes in a scale)." msgstr "" -#: js/musicutils.js:753 -#: js/synthutils.js:49 -#.TRANS: brown noise synthesizer -msgid "brown noise" +#: js/blocks/WidgetBlocks.js:651 +#.TRANS: musical mode is the pattern of half-steps in an octave, e.g., Major or Minor modes +msgid "custom mode" msgstr "" -#: js/musicutils.js:754 -#: js/synthutils.js:51 -#.TRANS: pink noise synthesizer -msgid "pink noise" +#: js/blocks/WidgetBlocks.js:700 +msgid "The Tempo block opens a metronome to visualize the beat." msgstr "" -#: js/musicutils.js:756 -#: js/synthutils.js:127 -#: js/rhythmruler.js:1670 -#: js/rhythmruler.js:1928 -#.TRANS: musical instrument -msgid "snare drum" +#: js/blocks/WidgetBlocks.js:762 +msgid "The Arpeggio Widget is used to compose chord sequences." msgstr "" -#: js/musicutils.js:757 -#: js/synthutils.js:129 -#.TRANS: musical instrument -msgid "kick drum" +#: js/blocks/WidgetBlocks.js:837 +msgid "The Pitch drum matrix is used to map pitches to drum sounds." msgstr "" -#: js/musicutils.js:758 -#: js/synthutils.js:131 -#.TRANS: musical instrument -msgid "tom tom" +#: js/blocks/WidgetBlocks.js:842 +#.TRANS: makes a mapping between pitches and drum sounds +msgid "pitch-drum mapper" msgstr "" -#: js/musicutils.js:759 -#: js/synthutils.js:133 -#.TRANS: musical instrument -msgid "floor tom" +#: js/blocks/WidgetBlocks.js:891 +msgid "You must have at least one pitch block and one drum block in the matrix." msgstr "" -#: js/musicutils.js:760 -#: js/synthutils.js:135 -#.TRANS: musical instrument -msgid "bass drum" +#: js/blocks/WidgetBlocks.js:920 +msgid "The Pitch slider tool to is used to generate pitches at selected frequencies." msgstr "" -#: js/musicutils.js:761 -#: js/synthutils.js:137 -#.TRANS: a drum made from an inverted cup -msgid "cup drum" +#: js/blocks/WidgetBlocks.js:925 +#.TRANS: widget to generate pitches using a slider +msgid "pitch slider" msgstr "" -#: js/musicutils.js:762 -#: js/synthutils.js:139 -#.TRANS: musical instrument -msgid "darbuka drum" +#: js/blocks/WidgetBlocks.js:977 +msgid "chromatic keyboard" msgstr "" -#: js/musicutils.js:763 -#: js/synthutils.js:143 -#.TRANS: musical instrument -msgid "hi hat" +#: js/blocks/WidgetBlocks.js:1011 +#: js/blocks/WidgetBlocks.js:1077 +#.TRANS: widget to generate pitches using a slider +msgid "music keyboard" msgstr "" -#: js/musicutils.js:764 -#: js/synthutils.js:145 -#.TRANS: a small metal bell -msgid "ride bell" +#: js/blocks/WidgetBlocks.js:1062 +#: js/blocks/WidgetBlocks.js:1069 +msgid "The Music keyboard block opens a piano keyboard that can be used to create notes." msgstr "" -#: js/musicutils.js:765 -#: js/synthutils.js:147 -#.TRANS: musical instrument -msgid "cow bell" +#: js/blocks/WidgetBlocks.js:1128 +msgid "The Pitch staircase tool to is used to generate pitches from a given ratio." msgstr "" -#: js/musicutils.js:766 -msgid "japanese drum" +#: js/blocks/WidgetBlocks.js:1135 +#.TRANS: generate a progressive sequence of pitches +msgid "pitch staircase" msgstr "" -#: js/musicutils.js:767 -#: js/synthutils.js:153 -#.TRANS: musical instrument -msgid "japanese bell" +#: js/blocks/WidgetBlocks.js:1222 +msgid "The Rhythm Maker block opens a tool to create drum machines." msgstr "" -#: js/musicutils.js:768 -#: js/synthutils.js:149 -#.TRANS: musical instrument -msgid "triangle bell" +#: js/blocks/WidgetBlocks.js:1291 +msgid "G major scale" msgstr "" -#: js/musicutils.js:769 -#: js/synthutils.js:151 -#.TRANS: musical instrument -msgid "finger cymbals" +#: js/blocks/WidgetBlocks.js:1326 +msgid "C major scale" msgstr "" -#: js/musicutils.js:770 -#: js/synthutils.js:155 -#.TRANS: a musically tuned set of bells -msgid "chime" +#: js/blocks/WidgetBlocks.js:1366 +msgid "The Phrase Maker block opens a tool to create musical phrases." msgstr "" -#: js/musicutils.js:771 -#: js/synthutils.js:157 -#.TRANS: a musical instrument -msgid "gong" +#: js/blocks/WidgetBlocks.js:1373 +#.TRANS: assigns pitch to a sequence of beats to generate a melody +msgid "phrase maker" msgstr "" -#: js/musicutils.js:772 -#: js/synthutils.js:159 -#.TRANS: sound effect -msgid "clang" +#: js/blocks/WidgetBlocks.js:1444 +msgid "You must have at least one pitch block and one rhythm block in the matrix." msgstr "" -#: js/musicutils.js:773 -#: js/synthutils.js:161 -#.TRANS: sound effect -msgid "crash" +#: js/blocks/WidgetBlocks.js:1503 +msgid "The Status block opens a tool for inspecting the status of Music Blocks as it is running." msgstr "" -#: js/musicutils.js:774 -#: js/synthutils.js:163 -#.TRANS: sound effect -msgid "bottle" +#: js/blocks/WidgetBlocks.js:1580 +#.TRANS: AI-generated music +msgid "aimusic" msgstr "" -#: js/musicutils.js:775 -#: js/synthutils.js:165 -#.TRANS: sound effect -msgid "clap" +#: js/turtleactions/MeterActions.js:101 +#: js/turtleactions/MeterActions.js:139 +msgid "beats per minute must be greater than" msgstr "" -#: js/musicutils.js:776 -#: js/synthutils.js:167 -#.TRANS: sound effect -msgid "slap" +#: js/turtleactions/MeterActions.js:111 +#: js/turtleactions/MeterActions.js:149 +msgid "maximum" msgstr "" -#: js/musicutils.js:777 -#: js/synthutils.js:169 -#.TRANS: sound effect -msgid "splash" +#: js/turtleactions/MeterActions.js:117 +#: js/turtleactions/MeterActions.js:155 +msgid "beats per minute is" msgstr "" -#: js/musicutils.js:778 -#: js/synthutils.js:171 -#.TRANS: sound effect -msgid "bubbles" +#: js/turtleactions/DictActions.js:75 +#: js/turtleactions/DictActions.js:142 +#: js/turtleactions/DictActions.js:172 +msgid "font" msgstr "" -#: js/musicutils.js:779 -#: js/synthutils.js:173 -#.TRANS: sound effect -msgid "raindrop" +#: js/turtleactions/DictActions.js:255 +msgid "Dictionary with this name does not exist" msgstr "" -#: js/musicutils.js:780 -#: js/synthutils.js:175 -#.TRANS: animal sound effect -msgid "cat" +#: js/turtleactions/DictActions.js:259 +msgid "Key with this name does not exist in " msgstr "" -#: js/musicutils.js:781 -#: js/synthutils.js:177 -#.TRANS: animal sound effect -msgid "cricket" +#: js/turtleactions/DrumActions.js:227 +msgid "Noise Block: Did you mean to use a Note block?" msgstr "" -#: js/musicutils.js:782 -#: js/synthutils.js:179 -#.TRANS: animal sound effect -msgid "dog" +#: js/turtleactions/IntervalsActions.js:113 +msgid "one" msgstr "" -#: js/musicutils.js:784 -#: js/synthutils.js:86 -#.TRANS: musical instrument -msgid "banjo" +#: js/turtleactions/IntervalsActions.js:113 +msgid "two" msgstr "" -#: js/musicutils.js:785 -#: js/synthutils.js:88 -#.TRANS: musical instrument -msgid "koto" +#: js/turtleactions/IntervalsActions.js:113 +msgid "three" msgstr "" -#: js/musicutils.js:786 -#: js/synthutils.js:90 -#.TRANS: musical instrument -msgid "dulcimer" +#: js/turtleactions/IntervalsActions.js:113 +msgid "four" msgstr "" -#: js/musicutils.js:787 -#: js/synthutils.js:92 -#.TRANS: musical instrument -msgid "electric guitar" +#: js/turtleactions/IntervalsActions.js:113 +msgid "five" msgstr "" -#: js/musicutils.js:788 -#: js/synthutils.js:94 -#.TRANS: musical instrument -msgid "bassoon" +#: js/turtleactions/IntervalsActions.js:113 +msgid "six" msgstr "" -#: js/musicutils.js:789 -#: js/synthutils.js:96 -#.TRANS: musical instrument -msgid "celeste" +#: js/turtleactions/IntervalsActions.js:113 +msgid "seven" msgstr "" -#: js/musicutils.js:791 -#: js/musicutils.js:1123 -#: js/musicutils.js:1131 -#: js/temperament.js:650 -#.TRANS: musical temperament -msgid "equal" +#: js/turtleactions/IntervalsActions.js:113 +msgid "eight" msgstr "" -#: js/musicutils.js:793 -#: js/musicutils.js:1125 -#: js/musicutils.js:1133 -#.TRANS: musical temperament -msgid "Pythagorean" +#: js/turtleactions/IntervalsActions.js:113 +msgid "nine" msgstr "" -#: js/musicutils.js:795 -#: js/musicutils.js:1124 -#: js/musicutils.js:1132 -#.TRANS: musical temperament -msgid "just intonation" +#: js/turtleactions/IntervalsActions.js:119 +msgid "a" msgstr "" -#: js/musicutils.js:797 -#: js/musicutils.js:1126 -#: js/musicutils.js:1127 -#: js/musicutils.js:1134 -#: js/musicutils.js:1135 -#.TRANS: musical temperament -msgid "meantone" +#: js/turtleactions/IntervalsActions.js:120 +msgid "below" msgstr "" -#: js/musicutils.js:814 -msgid "major 7th" +#: js/turtleactions/IntervalsActions.js:124 +msgid "above" msgstr "" -#: js/musicutils.js:815 -msgid "minor 7th" +#: js/turtleactions/IntervalsActions.js:131 +msgid "plus" msgstr "" -#: js/musicutils.js:816 -msgid "dominant 7th" +#: js/turtleactions/IntervalsActions.js:139 +msgid " below" msgstr "" -#: js/musicutils.js:817 -msgid "minor-major 7th" +#: js/turtleactions/IntervalsActions.js:257 +msgid "Adding missing pitch number 0." msgstr "" -#: js/musicutils.js:818 -msgid "fully-diminished 7th" +#: js/turtleactions/IntervalsActions.js:265 +msgid "Ignoring pitch numbers less than zero or greater than eleven." msgstr "" -#: js/musicutils.js:819 -msgid "half-diminished 7th" +#: js/turtleactions/IntervalsActions.js:271 +msgid "Ignoring duplicate pitch numbers." msgstr "" -#: js/musicutils.js:4379 -#: js/musicutils.js:4416 -msgid "current" +#: js/turtleactions/ToneActions.js:134 +msgid "Vibrato intensity must be between 1 and 100." msgstr "" -#: js/musicutils.js:4382 -#: js/musicutils.js:4407 -msgid "next" +#: js/turtleactions/ToneActions.js:139 +msgid "Vibrato rate must be greater than 0." msgstr "" -#: js/musicutils.js:4385 -#: js/musicutils.js:4412 -msgid "previous" +#: js/turtleactions/ToneActions.js:192 +#: js/turtleactions/ToneActions.js:265 +#.TRANS: Depth is the intesity of the tremolo or chorus effect. +msgid "Depth is out of range." msgstr "" -#: js/synthutils.js:104 -#.TRANS: simple monotone synthesizer -msgid "simple-2" +#: js/turtleactions/ToneActions.js:301 +msgid "Distortion must be from 0 to 100." msgstr "" -#: js/synthutils.js:106 -#.TRANS: simple monotone synthesizer -msgid "simple-3" +#: js/turtleactions/ToneActions.js:332 +#.TRANS: partials components in a harmonic series +msgid "Partial must be greater than or equal to 0." msgstr "" -#: js/synthutils.js:108 -#.TRANS: simple monotone synthesizer -msgid "simple-4" +#: js/turtleactions/ToneActions.js:378 +#: js/turtleactions/ToneActions.js:417 +#: js/turtleactions/ToneActions.js:456 +#: js/widgets/timbre.js:782 +msgid "Unable to use synth due to existing oscillator" msgstr "" -#: js/synthutils.js:141 -#.TRANS: musical instrument -msgid "taiko" +#: js/turtleactions/ToneActions.js:388 +#: js/turtleactions/ToneActions.js:427 +msgid "The input cannot be negative." msgstr "" -#: js/modewidget.js:86 -#: js/modewidget.js:88 -#: js/modewidget.js:642 -#: js/modewidget.js:644 -#: js/modewidget.js:712 -#: js/modewidget.js:714 -#: js/temperament.js:2078 -#: js/rhythmruler.js:189 -#: js/rhythmruler.js:1410 -#: js/rhythmruler.js:1412 -#: js/rhythmruler.js:1435 -#: js/rhythmruler.js:1437 -#: js/meterwidget.js:89 -#: js/meterwidget.js:91 +#: js/widgets/modewidget.js:86 +#: js/widgets/modewidget.js:88 +#: js/widgets/modewidget.js:642 +#: js/widgets/modewidget.js:644 +#: js/widgets/modewidget.js:712 +#: js/widgets/modewidget.js:714 +#: js/widgets/meterwidget.js:194 +#: js/widgets/meterwidget.js:196 +#: js/widgets/temperament.js:2236 +#: js/widgets/rhythmruler.js:457 +#: js/widgets/rhythmruler.js:1790 +#: js/widgets/rhythmruler.js:1792 +#: js/widgets/rhythmruler.js:1816 +#: js/widgets/rhythmruler.js:1818 msgid "Play all" msgstr "" -#: js/modewidget.js:115 -#: js/pitchstaircase.js:641 -#: js/phrasemaker.js:339 -#: js/pitchdrummatrix.js:94 -#: js/pitchslider.js:125 -#: js/temperament.js:2083 -#: js/musickeyboard.js:530 -#: js/timbre.js:756 -#: js/meterwidget.js:124 -#: js/arpeggio.js:103 +#: js/widgets/modewidget.js:115 +#: js/widgets/meterwidget.js:229 +#: js/widgets/pitchdrummatrix.js:166 +#: js/widgets/pitchslider.js:125 +#: js/widgets/pitchstaircase.js:641 +#: js/widgets/temperament.js:2244 +#: js/widgets/timbre.js:756 +#: js/widgets/arpeggio.js:103 +#: js/widgets/musickeyboard.js:688 +#: js/widgets/phrasemaker.js:550 msgid "Save" msgstr "" -#: js/modewidget.js:121 -#: js/pitchstaircase.js:686 -#: js/phrasemaker.js:356 -#: js/pitchdrummatrix.js:109 -#: js/musickeyboard.js:534 -#: js/rhythmruler.js:269 -#: js/arpeggio.js:118 +#: js/widgets/modewidget.js:121 +#: js/widgets/pitchdrummatrix.js:181 +#: js/widgets/pitchstaircase.js:686 +#: js/widgets/arpeggio.js:118 +#: js/widgets/musickeyboard.js:696 +#: js/widgets/phrasemaker.js:567 +#: js/widgets/rhythmruler.js:601 #.TRANS: clear all subdivisions from the ruler. msgid "Clear" msgstr "" -#: js/modewidget.js:127 +#: js/widgets/modewidget.js:127 msgid "Rotate counter clockwise" msgstr "" -#: js/modewidget.js:133 +#: js/widgets/modewidget.js:133 msgid "Rotate clockwise" msgstr "" -#: js/modewidget.js:139 +#: js/widgets/modewidget.js:139 msgid "Invert" msgstr "" -#: js/modewidget.js:145 -#: js/pitchstaircase.js:678 -#: js/rhythmruler.js:258 -#: js/timbre.js:963 +#: js/widgets/modewidget.js:145 +#: js/widgets/pitchstaircase.js:678 +#: js/widgets/timbre.js:963 +#: js/widgets/rhythmruler.js:578 msgid "Undo" msgstr "" -#: js/modewidget.js:163 +#: js/widgets/modewidget.js:163 #.TRANS: A circle of notes represents the musical mode. msgid "Click in the circle to select notes for the mode." msgstr "" -#: js/modewidget.js:1017 -#: js/pitchstaircase.js:580 -#: js/phrasemaker.js:4855 -#: js/temperament.js:1754 -#: js/rhythmruler.js:1865 -#: js/rhythmruler.js:2081 -#: js/tempo.js:414 +#: js/widgets/modewidget.js:1017 +#: js/widgets/pitchstaircase.js:580 +#: js/widgets/temperament.js:1929 +#: js/widgets/tempo.js:414 +#: js/widgets/phrasemaker.js:5356 +#: js/widgets/rhythmruler.js:2254 +#: js/widgets/rhythmruler.js:2472 msgid "New action block generated!" msgstr "" -#: js/oscilloscope.js:79 -msgid "Zoom In" -msgstr "" - -#: js/oscilloscope.js:88 -msgid "Zoom Out" -msgstr "" - -#: js/pitchstaircase.js:624 -msgid "Play chord" -msgstr "" - -#: js/pitchstaircase.js:632 -msgid "Play scale" +#: js/widgets/meterwidget.js:275 +msgid "Reset" msgstr "" -#: js/pitchstaircase.js:696 -msgid "Click on a note to create a new step." +#: js/widgets/meterwidget.js:301 +msgid "Click in the circle to select strong beats for the meter." msgstr "" -#: js/phrasemaker.js:363 -msgid "Export" +#: js/widgets/oscilloscope.js:79 +msgid "Zoom In" msgstr "" -#: js/phrasemaker.js:370 -msgid "Sort" +#: js/widgets/oscilloscope.js:88 +msgid "Zoom Out" msgstr "" -#: js/phrasemaker.js:373 -#: js/musickeyboard.js:559 -msgid "Add note" +#: js/widgets/pitchdrummatrix.js:356 +#: js/widgets/pitchdrummatrix.js:752 +msgid "Click in the grid to map notes to drums." msgstr "" -#: js/phrasemaker.js:764 -msgid "Click on the table to add notes." +#: js/widgets/pitchslider.js:103 +msgid "Move up" msgstr "" -#: js/phrasemaker.js:2414 -#: js/phrasemaker.js:2543 -msgid "tuplet value" +#: js/widgets/pitchslider.js:114 +msgid "Move down" msgstr "" -#: js/pitchdrummatrix.js:270 -#: js/pitchdrummatrix.js:639 -msgid "Click in the grid to map notes to drums." +#: js/widgets/pitchslider.js:136 +msgid "Click on the slider to create a note block." msgstr "" -#: js/pitchslider.js:103 -msgid "Move up" +#: js/widgets/pitchstaircase.js:624 +msgid "Play chord" msgstr "" -#: js/pitchslider.js:114 -msgid "Move down" +#: js/widgets/pitchstaircase.js:632 +msgid "Play scale" msgstr "" -#: js/pitchslider.js:136 -msgid "Click on the slider to create a note block." +#: js/widgets/pitchstaircase.js:696 +msgid "Click on a note to create a new step." msgstr "" -#: js/temperament.js:215 +#: js/widgets/temperament.js:321 msgid "back to 2:1 octave space" msgstr "" -#: js/temperament.js:323 +#: js/widgets/temperament.js:447 msgid "edit" msgstr "" -#: js/temperament.js:330 -#: js/temperament.js:332 -#: js/temperament.js:1336 -#: js/temperament.js:1338 +#: js/widgets/temperament.js:454 +#: js/widgets/temperament.js:456 +#: js/widgets/temperament.js:1493 +#: js/widgets/temperament.js:1495 msgid "close" msgstr "" -#: js/temperament.js:423 -#: js/temperament.js:736 -#: js/temperament.js:743 -#: js/temperament.js:845 -#: js/temperament.js:935 -#: js/temperament.js:942 -#: js/temperament.js:1015 -#: js/temperament.js:1284 -#: js/temperament.js:1354 -#: js/temperament.js:1430 +#: js/widgets/temperament.js:552 +#: js/widgets/temperament.js:877 +#: js/widgets/temperament.js:884 +#: js/widgets/temperament.js:986 +#: js/widgets/temperament.js:1080 +#: js/widgets/temperament.js:1087 +#: js/widgets/temperament.js:1160 +#: js/widgets/temperament.js:1433 +#: js/widgets/temperament.js:1511 +#: js/widgets/temperament.js:1596 msgid "done" msgstr "" -#: js/temperament.js:477 -#: js/temperament.js:482 -#: js/temperament.js:918 +#: js/widgets/temperament.js:610 +#: js/widgets/temperament.js:615 +#: js/widgets/temperament.js:1063 msgid "ratio" msgstr "" -#: js/temperament.js:483 +#: js/widgets/temperament.js:616 msgid "interval" msgstr "" -#: js/temperament.js:611 +#: js/widgets/temperament.js:744 msgid "non scalar" msgstr "" -#: js/temperament.js:650 +#: js/widgets/temperament.js:787 msgid "ratios" msgstr "" -#: js/temperament.js:650 +#: js/widgets/temperament.js:787 msgid "arbitrary" msgstr "" -#: js/temperament.js:719 +#: js/widgets/temperament.js:860 msgid "number of divisions" msgstr "" -#: js/temperament.js:741 -#: js/temperament.js:858 -#: js/temperament.js:940 -#: js/temperament.js:1033 +#: js/widgets/temperament.js:882 +#: js/widgets/temperament.js:999 +#: js/widgets/temperament.js:1085 +#: js/widgets/temperament.js:1178 msgid "preview" msgstr "" -#: js/temperament.js:788 +#: js/widgets/temperament.js:929 msgid "The Number of divisions is too large." msgstr "" -#: js/temperament.js:921 +#: js/widgets/temperament.js:1066 msgid "recursion" msgstr "" -#: js/temperament.js:1450 +#: js/widgets/temperament.js:1616 msgid "The octave ratio has changed. This changes temperament significantly." msgstr "" -#: js/temperament.js:2087 +#: js/widgets/temperament.js:2248 msgid "Table" msgstr "" -#: js/temperament.js:2185 +#: js/widgets/temperament.js:2356 msgid "Add pitches" msgstr "" -#: js/musickeyboard.js:570 -msgid "Metronome" +#: js/widgets/tempo.js:78 +#: js/widgets/tempo.js:97 +#: js/widgets/tempo.js:99 +#: js/widgets/aiwidget.js:134 +#: js/widgets/aiwidget.js:136 +#: js/widgets/rhythmruler.js:681 +#: js/widgets/rhythmruler.js:683 +#: js/widgets/rhythmruler.js:1864 +#: js/widgets/rhythmruler.js:1866 +#: js/widgets/sampler.js:180 +#: js/widgets/sampler.js:182 +msgid "Pause" msgstr "" -#: js/musickeyboard.js:1296 -#: plugins/rodi.rtp:193 -msgid "duration" +#: js/widgets/tempo.js:113 +msgid "Save tempo" msgstr "" -#: js/musickeyboard.js:2840 -msgid "New action blocks generated!" +#: js/widgets/tempo.js:144 +msgid "speed up" msgstr "" -#: js/musickeyboard.js:2841 -msgid "New action block generated" +#: js/widgets/tempo.js:150 +msgid "slow down" msgstr "" -#: js/musickeyboard.js:2984 -#: js/musickeyboard.js:2992 -msgid "MIDI device present." +#: js/widgets/tempo.js:194 +msgid "Adjust the tempo with the buttons." msgstr "" -#: js/musickeyboard.js:2995 -msgid "No MIDI device found." +#: js/widgets/tempo.js:261 +msgid "Please enter a number between 30 and 1000" msgstr "" -#: js/musickeyboard.js:3000 -msgid "Failed to get MIDI access in browser." +#: js/widgets/tempo.js:268 +#: js/widgets/tempo.js:271 +msgid "The beats per minute must be between 30 and 1000." msgstr "" -#: js/rhythmruler.js:202 -msgid "Save rhythms" +#: js/widgets/tempo.js:287 +msgid "The beats per minute must be below 1000." msgstr "" -#: js/rhythmruler.js:222 -msgid "Save drum machine" +#: js/widgets/tempo.js:303 +msgid "The beats per minute must be above 30" msgstr "" -#: js/rhythmruler.js:263 -#.TRANS: user can tap out a rhythm by clicking on a ruler. -msgid "Tap a rhythm" +#: js/widgets/timbre.js:766 +msgid "Synthesizer" msgstr "" -#: js/rhythmruler.js:342 -#: js/rhythmruler.js:344 -#: js/rhythmruler.js:1481 -#: js/rhythmruler.js:1483 -#: js/sampler.js:110 -#: js/sampler.js:112 -#: js/tempo.js:78 -#: js/tempo.js:97 -#: js/tempo.js:99 -msgid "Pause" +#: js/widgets/timbre.js:789 +msgid "Oscillator" msgstr "" -#: js/rhythmruler.js:478 -msgid "Click on the ruler to divide it." +#: js/widgets/timbre.js:840 +msgid "Envelope" msgstr "" -#: js/rhythmruler.js:603 -#: js/rhythmruler.js:605 -#: js/rhythmruler.js:804 -#: js/rhythmruler.js:806 -#: js/rhythmruler.js:1386 -#: js/rhythmruler.js:1388 -msgid "tap a rhythm" +#: js/widgets/timbre.js:886 +#: planet/js/GlobalTag.js:50 +#.TRANS: On the Planet, we use labels to tag projects. +msgid "Effects" msgstr "" -#: js/rhythmruler.js:1084 -msgid "Maximum value of 256 has been exceeded." +#: js/widgets/timbre.js:904 +msgid "Filter" msgstr "" -#: js/sampler.js:137 -msgid "Warning: Sample is bigger than 1MB." +#: js/widgets/timbre.js:946 +msgid "Add filter" msgstr "" -#: js/sampler.js:142 -msgid "Upload failed: Sample is not a .wav file." +#: js/widgets/timbre.js:987 +msgid "Click on buttons to open the timbre design tools." msgstr "" -#: js/sampler.js:164 -msgid "A new sample block was generated." +#: js/widgets/timbre.js:1273 +msgid "harmonicity" msgstr "" -#: js/sampler.js:255 -msgid "Upload sample" +#: js/widgets/timbre.js:1340 +#: js/widgets/timbre.js:1406 +msgid "modulation index" msgstr "" -#: js/sampler.js:306 -msgid "Save sample" +#: js/widgets/timbre.js:1484 +msgid "vibrato amount" msgstr "" -#: js/sampler.js:697 -#.TRANS: The reference tone is a sound used for comparison. -msgid "reference tone" +#: js/widgets/timbre.js:1919 +msgid "Filter already present." msgstr "" -#: js/tempo.js:113 -msgid "Save tempo" +#: js/widgets/timbre.js:2322 +msgid "delay (MS)" msgstr "" -#: js/tempo.js:144 -msgid "speed up" +#: js/widgets/timbre.js:2507 +msgid "distortion amount" msgstr "" -#: js/tempo.js:150 -msgid "slow down" +#: js/widgets/aiwidget.js:180 +#: js/widgets/sampler.js:227 +msgid "Warning: Sample is bigger than 1MB." msgstr "" -#: js/tempo.js:194 -msgid "Adjust the tempo with the buttons." +#: js/widgets/aiwidget.js:539 +msgid "New start block generated" msgstr "" -#: js/tempo.js:261 -msgid "Please enter a number between 30 and 1000" +#: js/widgets/aiwidget.js:541 +msgid "MIDI loading. This may take some time depending upon the number of notes in the track" msgstr "" -#: js/tempo.js:268 -#: js/tempo.js:271 -msgid "The beats per minute must be between 30 and 1000." +#: js/widgets/aiwidget.js:551 +#: js/widgets/sampler.js:254 +msgid "Upload failed: Sample is not a .wav file." msgstr "" -#: js/tempo.js:287 -msgid "The beats per minute must be below 1000." +#: js/widgets/aiwidget.js:679 +#: js/widgets/sampler.js:432 +msgid "Save sample" msgstr "" -#: js/tempo.js:303 -msgid "The beats per minute must be above 30" +#: js/widgets/aiwidget.js:701 +msgid "AI Music" msgstr "" -#: js/timbre.js:766 -msgid "Synthesizer" +#: js/widgets/arpeggio.js:239 +msgid "Click in the grid to add steps to the arpeggio." msgstr "" -#: js/timbre.js:789 -msgid "Oscillator" +#: js/widgets/help.js:95 +#: js/widgets/help.js:125 +#: js/widgets/help.js:146 +#: js/widgets/help.js:158 +#: js/widgets/help.js:376 +#: js/widgets/help.js:391 +msgid "Take a tour" msgstr "" -#: js/timbre.js:840 -msgid "Envelope" +#: js/widgets/musickeyboard.js:725 +#: js/widgets/phrasemaker.js:584 +msgid "Add note" msgstr "" -#: js/timbre.js:886 -#: js/GlobalTag.js:50 -#.TRANS: On the Planet, we use labels to tag projects. -msgid "Effects" +#: js/widgets/musickeyboard.js:744 +msgid "Metronome" +msgstr "" + +#: js/widgets/musickeyboard.js:1549 +#: plugins/rodi.rtp:193 +msgid "duration" +msgstr "" + +#: js/widgets/musickeyboard.js:3179 +msgid "New action blocks generated" +msgstr "" + +#: js/widgets/musickeyboard.js:3180 +msgid "New action block generated" msgstr "" -#: js/timbre.js:904 -msgid "Filter" +#: js/widgets/musickeyboard.js:3365 +#: js/widgets/musickeyboard.js:3373 +msgid "MIDI device present." msgstr "" -#: js/timbre.js:946 -msgid "Add filter" +#: js/widgets/musickeyboard.js:3376 +msgid "No MIDI device found." msgstr "" -#: js/timbre.js:987 -msgid "Click on buttons to open the timbre design tools." +#: js/widgets/musickeyboard.js:3386 +msgid "Failed to get MIDI access in browser." msgstr "" -#: js/timbre.js:1273 -msgid "harmonicity" +#: js/widgets/phrasemaker.js:574 +msgid "Export" msgstr "" -#: js/timbre.js:1340 -#: js/timbre.js:1406 -msgid "modulation index" +#: js/widgets/phrasemaker.js:581 +msgid "Sort" msgstr "" -#: js/timbre.js:1484 -msgid "vibrato amount" +#: js/widgets/phrasemaker.js:975 +msgid "Click on the table to add notes." msgstr "" -#: js/timbre.js:1919 -msgid "Filter already present." +#: js/widgets/phrasemaker.js:2677 +#: js/widgets/phrasemaker.js:2819 +msgid "tuplet value" msgstr "" -#: js/timbre.js:2322 -msgid "delay (MS)" +#: js/widgets/rhythmruler.js:486 +msgid "Save rhythms" msgstr "" -#: js/timbre.js:2507 -msgid "distortion amount" +#: js/widgets/rhythmruler.js:512 +msgid "Save drum machine" msgstr "" -#: js/meterwidget.js:170 -msgid "Reset" +#: js/widgets/rhythmruler.js:589 +#.TRANS: user can tap out a rhythm by clicking on a ruler. +msgid "Tap a rhythm" msgstr "" -#: js/meterwidget.js:196 -msgid "Click in the circle to select strong beats for the meter." +#: js/widgets/rhythmruler.js:817 +msgid "Click on the ruler to divide it." msgstr "" -#: js/arpeggio.js:239 -msgid "Click in the grid to add steps to the arpeggio." +#: js/widgets/rhythmruler.js:950 +#: js/widgets/rhythmruler.js:952 +#: js/widgets/rhythmruler.js:1152 +#: js/widgets/rhythmruler.js:1154 +#: js/widgets/rhythmruler.js:1765 +#: js/widgets/rhythmruler.js:1767 +msgid "tap a rhythm" msgstr "" -#: js/ProjectStorage.js:243 -msgid "anonymous" +#: js/widgets/rhythmruler.js:1459 +msgid "Maximum value of 256 has been exceeded." msgstr "" -#: js/GlobalCard.js:68 -msgid "Share" +#: js/widgets/sampler.js:237 +msgid "Recording started..." msgstr "" -#: js/GlobalCard.js:74 -msgid "Flags" +#: js/widgets/sampler.js:245 +msgid "Recording complete..." msgstr "" -#: js/LocalCard.js:36 -msgid "View published project" +#: js/widgets/sampler.js:283 +msgid "A new sample block was generated." msgstr "" -#: js/LocalCard.js:42 -msgid "Publish project" +#: js/widgets/sampler.js:378 +msgid "Upload sample" msgstr "" -#: js/LocalCard.js:51 -msgid "Edit project" +#: js/widgets/sampler.js:399 +msgid "Warning: Your sample cannot be loaded because it is >1MB." msgstr "" -#: js/LocalCard.js:52 -msgid "Delete project" +#: js/widgets/sampler.js:448 +msgid "Toggle Mic" msgstr "" -#: js/LocalCard.js:53 -msgid "Download project" +#: js/widgets/sampler.js:458 +msgid "Playback" msgstr "" -#: js/LocalCard.js:55 -msgid "Duplicate project" +#: js/widgets/sampler.js:979 +#.TRANS: The reference tone is a sound used for comparison. +msgid "reference tone" msgstr "" -#: js/GlobalTag.js:28 +#: planet/js/GlobalTag.js:28 #.TRANS: On the Planet, we use labels to tag projects. msgid "All Projects" msgstr "" -#: js/GlobalTag.js:30 -#: js/StringHelper.js:37 +#: planet/js/GlobalTag.js:30 +#: planet/js/StringHelper.js:37 #.TRANS: On the Planet, we use labels to tag projects. msgid "My Projects" msgstr "" -#: js/GlobalTag.js:32 +#: planet/js/GlobalTag.js:32 #.TRANS: On the Planet, we use labels to tag projects. msgid "Examples" msgstr "" -#: js/GlobalTag.js:34 +#: planet/js/GlobalTag.js:34 #.TRANS: On the Planet, we use labels to tag projects. msgid "Music" msgstr "" -#: js/GlobalTag.js:36 +#: planet/js/GlobalTag.js:36 #.TRANS: On the Planet, we use labels to tag projects. msgid "Art" msgstr "" -#: js/GlobalTag.js:38 +#: planet/js/GlobalTag.js:38 #.TRANS: On the Planet, we use labels to tag projects. msgid "Math" msgstr "" -#: js/GlobalTag.js:40 +#: planet/js/GlobalTag.js:40 #.TRANS: On the Planet, we use labels to tag projects. msgid "Interactive" msgstr "" -#: js/GlobalTag.js:42 +#: planet/js/GlobalTag.js:42 #.TRANS: On the Planet, we use labels to tag projects. msgid "Design" msgstr "" -#: js/GlobalTag.js:44 +#: planet/js/GlobalTag.js:44 #.TRANS: On the Planet, we use labels to tag projects. msgid "Game" msgstr "" -#: js/GlobalTag.js:46 +#: planet/js/GlobalTag.js:46 #.TRANS: On the Planet, we use labels to tag projects. msgid "Media" msgstr "" -#: js/GlobalTag.js:48 +#: planet/js/GlobalTag.js:48 #.TRANS: On the Planet, we use labels to tag projects. msgid "Sensors" msgstr "" -#: js/GlobalTag.js:52 +#: planet/js/GlobalTag.js:52 #.TRANS: On the Planet, we use labels to tag projects. msgid "Code Snippet" msgstr "" -#: js/helper.js:149 -#: js/StringHelper.js:49 -msgid "Show more tags" +#: planet/js/LocalCard.js:36 +msgid "View published project" msgstr "" -#: js/helper.js:150 -msgid "Show fewer tags" +#: planet/js/LocalCard.js:42 +msgid "Publish project" +msgstr "" + +#: planet/js/LocalCard.js:51 +msgid "Edit project" +msgstr "" + +#: planet/js/LocalCard.js:52 +msgid "Delete project" +msgstr "" + +#: planet/js/LocalCard.js:53 +msgid "Download project" +msgstr "" + +#: planet/js/LocalCard.js:55 +msgid "Duplicate project" +msgstr "" + +#: planet/js/ProjectStorage.js:243 +msgid "anonymous" +msgstr "" + +#: planet/js/SaveInterface.js:34 +msgid "Open in Music Blocks" +msgstr "" + +#: planet/js/SaveInterface.js:35 +msgid "Open in Turtle Blocks" +msgstr "" + +#: planet/js/GlobalCard.js:68 +msgid "Share" +msgstr "" + +#: planet/js/GlobalCard.js:74 +msgid "Flags" +msgstr "" + +#: planet/js/GlobalPlanet.js:35 +msgid "No results found." +msgstr "" + +#: planet/js/GlobalPlanet.js:51 +msgid "Remix of" +msgstr "" + +#: planet/js/GlobalPlanet.js:509 +msgid "Cannot connect to server" msgstr "" -#: js/ProjectViewer.js:30 +#: planet/js/ProjectViewer.js:30 msgid "Error: Report could not be submitted. Try again later." msgstr "" -#: js/ProjectViewer.js:31 +#: planet/js/ProjectViewer.js:31 msgid "Thank you for reporting this project. A moderator will review the project shortly, to verify violation of the Sugar Labs Code of Conduct." msgstr "" -#: js/ProjectViewer.js:32 -#: js/StringHelper.js:62 -#: js/StringHelper.js:64 -#: js/StringHelper.js:68 +#: planet/js/ProjectViewer.js:32 +#: planet/js/StringHelper.js:62 +#: planet/js/StringHelper.js:64 +#: planet/js/StringHelper.js:68 msgid "Report Project" msgstr "" -#: js/ProjectViewer.js:33 -#: js/StringHelper.js:63 +#: planet/js/ProjectViewer.js:33 +#: planet/js/StringHelper.js:63 msgid "Project Reported" msgstr "" -#: js/ProjectViewer.js:34 +#: planet/js/ProjectViewer.js:34 msgid "Report description required" msgstr "" -#: js/ProjectViewer.js:35 +#: planet/js/ProjectViewer.js:35 msgid "Report description too long" msgstr "" -#: js/StringHelper.js:30 +#: planet/js/Publisher.js:30 +msgid "Feature unavailable - cannot connect to server. Reload Music Blocks to try again." +msgstr "" + +#: planet/js/Publisher.js:220 +#: planet/js/Publisher.js:237 +msgid "This field is required" +msgstr "" + +#: planet/js/Publisher.js:227 +msgid "Title too long" +msgstr "" + +#: planet/js/Publisher.js:244 +msgid "Description too long" +msgstr "" + +#: planet/js/Publisher.js:341 +msgid "Server Error" +msgstr "" + +#: planet/js/Publisher.js:341 +msgid "Try Again" +msgstr "" + +#: planet/js/StringHelper.js:30 msgid "Planet" msgstr "" -#: js/StringHelper.js:31 +#: planet/js/StringHelper.js:31 msgid "Close Planet" msgstr "" -#: js/StringHelper.js:32 +#: planet/js/StringHelper.js:32 msgid "Open project from file" msgstr "" -#: js/StringHelper.js:34 +#: planet/js/StringHelper.js:34 msgid "Local" msgstr "" -#: js/StringHelper.js:35 +#: planet/js/StringHelper.js:35 msgid "Global" msgstr "" -#: js/StringHelper.js:36 +#: planet/js/StringHelper.js:36 msgid "Search for a project" msgstr "" -#: js/StringHelper.js:38 +#: planet/js/StringHelper.js:38 msgid "Publish Project" msgstr "" -#: js/StringHelper.js:40 +#: planet/js/StringHelper.js:40 msgid "Tags (max 5)" msgstr "" -#: js/StringHelper.js:41 -#: js/StringHelper.js:61 +#: planet/js/StringHelper.js:41 +#: planet/js/StringHelper.js:61 msgid "Description" msgstr "" -#: js/StringHelper.js:42 -#: js/StringHelper.js:67 +#: planet/js/StringHelper.js:42 +#: planet/js/StringHelper.js:67 msgid "Submit" msgstr "" -#: js/StringHelper.js:43 -#: js/StringHelper.js:47 +#: planet/js/StringHelper.js:43 +#: planet/js/StringHelper.js:47 msgid "Cancel" msgstr "" -#: js/StringHelper.js:44 +#: planet/js/StringHelper.js:44 msgid "Delete \\"\\"?" msgstr "" -#: js/StringHelper.js:45 +#: planet/js/StringHelper.js:45 msgid "Permanently delete project \\"\\"?" msgstr "" -#: js/StringHelper.js:48 +#: planet/js/StringHelper.js:48 msgid "Explore Projects" msgstr "" -#: js/StringHelper.js:50 +#: planet/js/StringHelper.js:49 +#: planet/js/helper.js:149 +msgid "Show more tags" +msgstr "" + +#: planet/js/StringHelper.js:50 msgid "Most recent" msgstr "" -#: js/StringHelper.js:51 +#: planet/js/StringHelper.js:51 msgid "Most liked" msgstr "" -#: js/StringHelper.js:52 +#: planet/js/StringHelper.js:52 msgid "Most downloaded" msgstr "" -#: js/StringHelper.js:53 +#: planet/js/StringHelper.js:53 msgid "A-Z" msgstr "" -#: js/StringHelper.js:54 +#: planet/js/StringHelper.js:54 msgid "Sort by" msgstr "" -#: js/StringHelper.js:55 +#: planet/js/StringHelper.js:55 msgid "Load More Projects" msgstr "" -#: js/StringHelper.js:56 +#: planet/js/StringHelper.js:56 msgid "Last Updated" msgstr "" -#: js/StringHelper.js:57 +#: planet/js/StringHelper.js:57 msgid "Creation Date" msgstr "" -#: js/StringHelper.js:58 +#: planet/js/StringHelper.js:58 msgid "Number of Downloads:" msgstr "" -#: js/StringHelper.js:59 +#: planet/js/StringHelper.js:59 msgid "Number of Likes:" msgstr "" -#: js/StringHelper.js:60 +#: planet/js/StringHelper.js:60 msgid "Tags:" msgstr "" -#: js/StringHelper.js:65 +#: planet/js/StringHelper.js:65 msgid "Report projects which violate the Sugar Labs Code of Conduct." msgstr "" -#: js/StringHelper.js:66 +#: planet/js/StringHelper.js:66 msgid "Reason for reporting project" msgstr "" -#: js/StringHelper.js:70 +#: planet/js/StringHelper.js:70 msgid "Download as File" msgstr "" -#: js/GlobalPlanet.js:35 -msgid "No results found." -msgstr "" - -#: js/GlobalPlanet.js:51 -msgid "Remix of" -msgstr "" - -#: js/GlobalPlanet.js:509 -msgid "Cannot connect to server" -msgstr "" - -#: js/Publisher.js:30 -msgid "Feature unavailable - cannot connect to server. Reload Music Blocks to try again." -msgstr "" - -#: js/Publisher.js:218 -#: js/Publisher.js:235 -msgid "This field is required" -msgstr "" - -#: js/Publisher.js:225 -msgid "Title too long" +#: planet/js/helper.js:150 +msgid "Show fewer tags" msgstr "" -#: js/Publisher.js:242 -msgid "Description too long" +#: plugins/accelerometer.rtp:48 +msgid "motion x" msgstr "" -#: js/Publisher.js:339 -msgid "Server Error" +#: plugins/accelerometer.rtp:56 +msgid "motion y" msgstr "" -#: js/Publisher.js:339 -msgid "Try Again" +#: plugins/accelerometer.rtp:64 +msgid "motion z" msgstr "" -#: js/SaveInterface.js:34 -msgid "Open in Music Blocks" +#: plugins/facebook.rtp:27 +msgid "publish" msgstr "" -#: js/SaveInterface.js:35 -msgid "Open in Turtle Blocks" +#: plugins/maths.rtp:62 +msgid "power" msgstr "" -#: plugins/weather.rtp:68 -#: plugins/weather.rtp:97 -msgid "Days ahead must be in the range of -1 to 5." +#: plugins/maths.rtp:62 +msgid "base" msgstr "" -#: plugins/weather.rtp:122 -msgid "forecast" +#: plugins/maths.rtp:62 +msgid "exp" msgstr "" -#: plugins/weather.rtp:123 -#: plugins/weather.rtp:137 -#: plugins/weather.rtp:150 -msgid "city" +#: plugins/maths.rtp:99 +msgid "floor" msgstr "" -#: plugins/weather.rtp:124 -#: plugins/weather.rtp:138 -#: plugins/weather.rtp:151 -msgid "day" +#: plugins/maths.rtp:104 +msgid "ceiling" msgstr "" -#: plugins/weather.rtp:136 -msgid "high" +#: plugins/maths.rtp:109 +msgid "to degrees" msgstr "" -#: plugins/weather.rtp:149 -msgid "low" +#: plugins/maths.rtp:114 +msgid "to radians" msgstr "" #: plugins/nutrition.rtp:104 @@ -9458,45 +9867,6 @@ msgstr "" msgid "water" msgstr "" -#: plugins/maths.rtp:62 -#: plugins/examples.rtp:93 -msgid "power" -msgstr "" - -#: plugins/maths.rtp:62 -#: plugins/examples.rtp:93 -msgid "base" -msgstr "" - -#: plugins/maths.rtp:62 -#: plugins/examples.rtp:93 -msgid "exp" -msgstr "" - -#: plugins/maths.rtp:99 -#: plugins/examples.rtp:130 -msgid "floor" -msgstr "" - -#: plugins/maths.rtp:104 -#: plugins/examples.rtp:135 -msgid "ceiling" -msgstr "" - -#: plugins/maths.rtp:109 -#: plugins/examples.rtp:140 -msgid "to degrees" -msgstr "" - -#: plugins/maths.rtp:114 -#: plugins/examples.rtp:145 -msgid "to radians" -msgstr "" - -#: plugins/facebook.rtp:27 -msgid "publish" -msgstr "" - #: plugins/rodi.rtp:172 msgid "blink" msgstr "" @@ -9525,18 +9895,66 @@ msgstr "" msgid "move" msgstr "" -#: plugins/accelerometer.rtp:48 -msgid "motion x" +#: plugins/weather.rtp:68 +#: plugins/weather.rtp:97 +msgid "Days ahead must be in the range of -1 to 5." msgstr "" -#: plugins/accelerometer.rtp:56 -msgid "motion y" +#: plugins/weather.rtp:122 +msgid "forecast" msgstr "" -#: plugins/accelerometer.rtp:64 -msgid "motion z" +#: plugins/weather.rtp:123 +#: plugins/weather.rtp:137 +#: plugins/weather.rtp:150 +msgid "city" +msgstr "" + +#: plugins/weather.rtp:124 +#: plugins/weather.rtp:138 +#: plugins/weather.rtp:151 +msgid "day" +msgstr "" + +#: plugins/weather.rtp:136 +msgid "high" +msgstr "" + +#: plugins/weather.rtp:149 +msgid "low" msgstr "" +#: js/toolbar.js:70 + +#: js/toolbar.js:130 + +#: js/toolbar.js:194 + +#: js/toolbar.js:249 + +#~msgid "Toggle JavaScript Editor" +#~msgstr "" + +#: js/EnsembleBlocks.js:643 + +#~msgid "The Turrle pitch block returns the current pitch number being played by the specified turtle." +#~msgstr "" + +#: js/PitchActions.js:88 + +#~msgid "The Scalar Step Block must be used inside of a Note Block." +#~msgstr "" + +#: js/PitchActions.js:107 + +#~msgid "The Scalar Step Block must be preceded by a Pitch Block." +#~msgstr "" + +#: js/musickeyboard.js:2840 + +#~msgid "New action blocks generated!" +#~msgstr "" + #: js/toolbar.js:110 #: js/toolbar.js:204 @@ -9877,11 +10295,6 @@ msgstr "" #~msgid "The Time block returns the number of seconds that the program has been running." #~msgstr "" -#: js/help.js:95 - -#~msgid "Take a tour" -#~msgstr "" - #: js/GlobalCard.js:48 #~msgid "More Details" @@ -12780,11 +13193,6 @@ msgstr "" #~msgid "The save-stack button saves a stack onto a custom palette. It appears after a \"long press\" on a stack." #~msgstr "" -#: js/musicutils.js:254 - -#~msgid "Custom" -#~msgstr "" - #: js/basicblocks.js:4785 #~msgid "Rhythm" diff --git a/po/cs.po b/po/cs.po index 0ef3b3ab14..c3498262b2 100644 --- a/po/cs.po +++ b/po/cs.po @@ -2129,276 +2129,131 @@ #: js/planetInterface.js:104 #: js/planetInterface.js:104 #: js/planetInterface.js:104 -msgid "project undefined" -msgstr "" - -#: js/logo.js:61 -msgid "Not a valid pitch name" +#: js/SaveInterface.js:59 +#: js/SaveInterface.js:61 +#: js/SaveInterface.js:93 +msgid "Music Blocks Project" msgstr "" -#: js/logo.js:507 -#: js/ProgramBlocks.js:258 -#: js/ProgramBlocks.js:427 -msgid "You must select a file." +#: js/SaveInterface.js:63 +msgid "This project was created in Music Blocks" msgstr "" -#: js/logo.js:1184 -#: js/turtles.js:118 -#: js/turtle-painter.js:1192 -#: js/turtle-painter.js:1193 -#: js/block.js:1463 -#: js/lilypond.js:757 -#: js/lilypond.js:921 -#: js/lilypond.js:959 -#: js/ActionBlocks.js:1223 -#: js/ProgramBlocks.js:1267 -msgid "start" -msgstr "spustit" - -#: js/logo.js:1696 -msgid "Playback is ready." +#: js/SaveInterface.js:67 +msgid "Music Blocks is a Free/Libre Software application." msgstr "" -#: js/blocks.js:1011 -#: js/blocks.js:3427 -#: js/blocks.js:3428 -#: js/blocks.js:3653 -#: js/blocks.js:4012 -#: js/blocks.js:4205 -#: js/blocks.js:5343 -#: js/blocks.js:6474 -#: js/palette.js:527 -#: js/palette.js:536 -#: js/palette.js:545 -#: js/palette.js:554 -#: js/palette.js:1131 -#: js/palette.js:1142 -#: js/palette.js:1153 -#: js/palette.js:1164 -#: js/palette.js:1183 -#: js/rubrics.js:529 -#: js/macros.js:170 -#: js/macros.js:266 -#: js/macros.js:267 -#: js/macros.js:276 -#: js/macros.js:828 -#: js/block.js:1449 -#: js/block.js:4164 -#: js/block.js:4182 -#: js/block.js:4193 -#: js/turtledefs.js:128 -#: js/turtledefs.js:230 -#: js/ActionBlocks.js:254 -#: js/ActionBlocks.js:307 -#: js/ActionBlocks.js:617 -#: js/ActionBlocks.js:716 -#: js/ActionBlocks.js:961 -#: js/ActionBlocks.js:1049 -#: js/ActionBlocks.js:1322 -#: js/ActionBlocks.js:1325 -#: js/ActionBlocks.js:1337 -#: js/ActionBlocks.js:1404 -#: js/MeterBlocks.js:715 -#: js/MeterBlocks.js:768 -#: js/MeterBlocks.js:831 -#: js/MeterBlocks.js:892 -#: js/phrasemaker.js:4412 -#: js/musickeyboard.js:2647 -#: js/rhythmruler.js:1928 -#: js/rhythmruler.js:1935 -#: js/rhythmruler.js:2119 -#: js/rhythmruler.js:2126 -msgid "action" +#: js/SaveInterface.js:69 +msgid "The source code can be accessed at" msgstr "" -#: js/blocks.js:1205 -#: js/blocks.js:3380 -#: js/blocks.js:3770 -#: js/blocks.js:3801 -#: js/blocks.js:3850 -#: js/blocks.js:3885 -#: js/blocks.js:6497 -#: js/palette.js:509 -#: js/palette.js:638 -#: js/palette.js:1107 -#: js/BoxesBlocks.js:282 -#: js/BoxesBlocks.js:285 -#: js/BoxesBlocks.js:405 -#: js/BoxesBlocks.js:594 -msgid "box" -msgstr "schránka" - -#: js/blocks.js:1680 -msgid "Consider breaking this stack into parts." +#: js/SaveInterface.js:72 +msgid "For more information, please consult the" msgstr "" -#: js/blocks.js:2408 -#: js/palette.js:653 -#: js/MediaBlocks.js:602 -msgid "open file" +#: js/SaveInterface.js:76 +#: js/turtledefs.js:795 +msgid "Music Blocks Guide" msgstr "" -#: js/blocks.js:2415 -#: js/blocks.js:2423 -#: js/activity.js:1875 -msgid "audio file" +#: js/SaveInterface.js:83 +msgid "Alternatively, open the file in Music Blocks using the Load project button." msgstr "" -#: js/blocks.js:2536 -#: js/blocks.js:3147 -#: js/block.js:3543 -msgid "on2" +#: js/SaveInterface.js:85 +msgid "Project Code" msgstr "" -#: js/blocks.js:2538 -#: js/blocks.js:3149 -#: js/block.js:3545 -msgid "off" +#: js/SaveInterface.js:87 +msgid "This code stores data about the blocks in a project." msgstr "" -#: js/blocks.js:2543 -#: js/blocks.js:3154 -#: js/palette.js:618 -#: js/block.js:3466 -#: js/BooleanBlocks.js:77 -#: js/BooleanBlocks.js:167 -#: js/BooleanBlocks.js:251 -#: js/BooleanBlocks.js:335 -#: js/BooleanBlocks.js:433 -#: js/BooleanBlocks.js:539 -#: js/BooleanBlocks.js:640 -#: js/BooleanBlocks.js:741 -#: js/BooleanBlocks.js:847 -#: js/BooleanBlocks.js:948 -#: js/BooleanBlocks.js:1033 -#: js/SensorsBlocks.js:910 -msgid "true" +#: js/SaveInterface.js:89 +msgid "Show" msgstr "" -#: js/blocks.js:2545 -#: js/blocks.js:3156 -#: js/block.js:3466 -#: js/BooleanBlocks.js:79 -#: js/BooleanBlocks.js:169 -#: js/BooleanBlocks.js:253 -#: js/BooleanBlocks.js:337 -#: js/BooleanBlocks.js:435 -#: js/BooleanBlocks.js:541 -#: js/BooleanBlocks.js:642 -#: js/BooleanBlocks.js:743 -#: js/BooleanBlocks.js:849 -#: js/BooleanBlocks.js:950 -#: js/SensorsBlocks.js:912 -msgid "false" +#: js/SaveInterface.js:91 +msgid "Hide" msgstr "" -#: js/blocks.js:3183 -#: js/palette.js:574 -#: js/MediaBlocks.js:892 -#: js/MediaBlocks.js:963 -msgid "text" -msgstr "text" - -#: js/blocks.js:3379 -#: js/palette.js:641 -#: js/palette.js:642 -#: js/BoxesBlocks.js:514 -msgid "store in box" +#: js/SaveInterface.js:131 +#: js/SaveInterface.js:204 +#: js/SaveInterface.js:262 +#: js/SaveInterface.js:389 +#: js/SaveInterface.js:417 +#: js/activity.js:4884 +#: planet/js/ProjectStorage.js:27 +#: planet/js/GlobalPlanet.js:467 +#: planet/js/GlobalPlanet.js:469 +#: planet/js/GlobalPlanet.js:495 +#.TRANS: default project title when saving as Lilypond +msgid "My Project" msgstr "" -#: js/blocks.js:3384 -#: js/blocks.js:3824 -#: js/blocks.js:3859 -#: js/blocks.js:3894 -#: js/blocks.js:5773 -#: js/blocks.js:5794 -#: js/BoxesBlocks.js:772 -msgid "box1" +#: js/SaveInterface.js:197 +#: planet/js/SaveInterface.js:58 +msgid "No description provided" msgstr "" -#: js/blocks.js:3386 -#: js/blocks.js:3826 -#: js/blocks.js:3861 -#: js/blocks.js:3896 -#: js/blocks.js:5775 -#: js/blocks.js:5796 -#: js/BoxesBlocks.js:663 -msgid "box2" +#: js/SaveInterface.js:332 +msgid "Your recording is in progress." msgstr "" -#: js/blocks.js:4058 -#: js/palette.js:639 -#: js/palette.js:644 -#: js/palette.js:1043 -#: js/BoxesBlocks.js:591 -msgid "store in" +#: js/SaveInterface.js:401 +#.TRANS: File name prompt for save as Lilypond +msgid "File name" msgstr "" -#: js/blocks.js:4058 -#: js/EnsembleBlocks.js:391 -#: js/EnsembleBlocks.js:402 -#: js/MediaBlocks.js:746 -#: js/ProgramBlocks.js:390 -#: js/ProgramBlocks.js:495 -#: js/ProgramBlocks.js:658 -#: js/BoxesBlocks.js:595 -#: js/PitchBlocks.js:656 -#: js/PitchBlocks.js:932 -#: js/PitchBlocks.js:1827 -#: js/ToneBlocks.js:1025 -#: js/DictBlocks.js:215 -#: js/DictBlocks.js:289 -msgid "name" +#: js/SaveInterface.js:403 +#: planet/js/StringHelper.js:39 +#.TRANS: Project title prompt for save as Lilypond +msgid "Project title" msgstr "" -#: js/blocks.js:4058 -#: js/RhythmBlocks.js:1130 -#: js/BoxesBlocks.js:75 -#: js/BoxesBlocks.js:595 -#: js/HeapBlocks.js:544 -#: js/DictBlocks.js:289 -#: js/DictBlocks.js:430 -msgid "value" -msgstr "hodnota" - -#: js/blocks.js:4907 -msgid "There is no block selected." +#: js/SaveInterface.js:405 +#.TRANS: Project title prompt for save as Lilypond +msgid "Project author" msgstr "" -#: js/blocks.js:5002 -#: js/MediaBlocks.js:888 -msgid "show" -msgstr "ukázat" - -#: js/blocks.js:5005 -#: js/MediaBlocks.js:803 -#.TRANS: Avatar is the image used to determine the appearance of the mouse. -msgid "avatar" +#: js/SaveInterface.js:407 +#.TRANS: MIDI prompt for save as Lilypond +msgid "Include MIDI output?" msgstr "" -#: js/blocks.js:5008 -#: js/ToneBlocks.js:1010 -#: js/sampler.js:693 -#.TRANS: The sound sample that the user uploads. -msgid "sample" +#: js/SaveInterface.js:409 +#.TRANS: Guitar prompt for save as Lilypond +msgid "Include guitar tablature output?" msgstr "" -#: js/turtles.js:874 -msgid "Grid" +#: js/SaveInterface.js:411 +#.TRANS: Lilypond is a scripting language for generating sheet music +msgid "Save as Lilypond" msgstr "" -#: js/turtles.js:891 -#: js/turtledefs.js:626 -msgid "Clean" -msgstr "Smazat" - -#: js/turtles.js:912 -#: js/turtledefs.js:632 -msgid "Collapse" +#: js/SaveInterface.js:426 +#: js/blocks/EnsembleBlocks.js:75 +#: js/blocks/EnsembleBlocks.js:154 +#: js/blocks/EnsembleBlocks.js:216 +#: js/blocks/EnsembleBlocks.js:302 +#: js/blocks/EnsembleBlocks.js:348 +#: js/blocks/EnsembleBlocks.js:389 +#: js/blocks/EnsembleBlocks.js:441 +#: js/blocks/EnsembleBlocks.js:490 +#: js/blocks/EnsembleBlocks.js:536 +#: js/blocks/EnsembleBlocks.js:583 +#: js/blocks/EnsembleBlocks.js:637 +#: js/blocks/EnsembleBlocks.js:753 +#: js/blocks/EnsembleBlocks.js:840 +#: js/blocks/EnsembleBlocks.js:899 +#: js/blocks/EnsembleBlocks.js:942 +#: js/blocks/EnsembleBlocks.js:1212 +#: js/blocks/EnsembleBlocks.js:1280 +#.TRANS: default project author when saving as Lilypond +msgid "Mr. Mouse" msgstr "" -#: js/turtles.js:940 -msgid "Expand" +#: js/SaveInterface.js:573 +msgid "The Lilypond code is copied to clipboard. You can paste it here: " msgstr "" #: js/languagebox.js:198 @@ -2409,6933 +2264,7487 @@ msgstr "" msgid "Music Blocks is already set to this language." msgstr "" -#: js/piemenus.js:200 -#: js/musicutils.js:808 -#: js/musicutils.js:824 -#: js/phrasemaker.js:1672 -#: js/musickeyboard.js:2041 -#: js/sampler.js:544 -#.TRANS: double sharp is a music term related to pitch -msgid "double sharp" +#: js/planetInterface.js:131 +msgid "project undefined" msgstr "" -#: js/piemenus.js:201 -#: js/PitchBlocks.js:1510 -#: js/PitchActions.js:580 -#: js/musicutils.js:806 -#: js/musicutils.js:825 -#: js/phrasemaker.js:1673 -#: js/musickeyboard.js:2042 -#: js/sampler.js:545 -#.TRANS: sharp is a half-step up in pitch -#.TRANS: sharp is a music term related to pitch -msgid "sharp" +#: js/rubrics.js:523 +#: js/turtledefs.js:119 +#: js/turtledefs.js:221 +#: js/blocks/RhythmBlockPaletteBlocks.js:52 +#: js/blocks/RhythmBlockPaletteBlocks.js:234 +#: js/blocks/ProgramBlocks.js:745 +#: js/widgets/rhythmruler.js:2057 +#: js/widgets/rhythmruler.js:2064 +#: js/widgets/rhythmruler.js:2133 +#: js/widgets/rhythmruler.js:2140 +#: js/widgets/rhythmruler.js:2219 +#.TRANS: an arrangement of notes based on duration +msgid "rhythm" msgstr "" -#: js/piemenus.js:202 -#: js/musicutils.js:804 -#: js/musicutils.js:826 -#: js/phrasemaker.js:1674 -#: js/musickeyboard.js:2043 -#: js/sampler.js:546 -#.TRANS: natural is a music term related to pitch -msgid "natural" +#: js/rubrics.js:524 +#: js/turtledefs.js:121 +#: js/turtledefs.js:223 +#: js/block-verbose.js:2622 +#: js/block.js:2550 +#: js/blocks/IntervalsBlocks.js:63 +#: js/blocks/SensorsBlocks.js:178 +#: js/blocks/PitchBlocks.js:1839 +#: js/blocks/PitchBlocks.js:1853 +#: js/widgets/musickeyboard.js:1935 +#: js/widgets/phrasemaker.js:1036 +#.TRANS: pitch number +#.TRANS: pitch number +#.TRANS: we specify pitch in terms of a name and an octave. The name can be CDEFGAB or Do Re Mi Fa Sol La Ti. Octave is a number between 1 and 8. +msgid "pitch" msgstr "" -#: js/piemenus.js:203 -#: js/PitchBlocks.js:1469 -#: js/PitchActions.js:583 -#: js/musicutils.js:802 -#: js/musicutils.js:827 -#: js/phrasemaker.js:1675 -#: js/musickeyboard.js:2044 -#: js/sampler.js:547 -#.TRANS: flat is a half-step down in pitch -#.TRANS: flat is a music term related to pitch -msgid "flat" +#: js/rubrics.js:525 +#: js/turtledefs.js:123 +#: js/turtledefs.js:225 +msgid "tone" msgstr "" -#: js/piemenus.js:204 -#: js/musicutils.js:800 -#: js/musicutils.js:828 -#: js/phrasemaker.js:1676 -#: js/musickeyboard.js:2045 -#: js/sampler.js:548 -#.TRANS: double flat is a music term related to pitch -msgid "double flat" +#: js/rubrics.js:526 +#: js/lilypond.js:605 +#: js/lilypond.js:904 +#: js/lilypond.js:910 +#: js/lilypond.js:948 +msgid "mouse" msgstr "" -#: js/piemenus.js:2861 -#: js/PitchBlocks.js:1357 -#: js/musicutils.js:627 -#.TRANS: unison means the note is the same as the current note -#.TRANS: unison is a music term related to intervals -msgid "unison" +#: js/rubrics.js:527 +#: js/turtledefs.js:132 +#: js/turtledefs.js:234 +#: js/widgets/phrasemaker.js:1040 +msgid "pen" msgstr "" -#: js/piemenus.js:3015 -#: js/piemenus.js:3088 -#: js/musicutils.js:635 -#: js/musicutils.js:810 -#: js/musicutils.js:912 -#.TRANS: major is a music term related to intervals and mode -msgid "major" -msgstr "" +#: js/rubrics.js:528 +#: js/turtledefs.js:133 +#: js/turtledefs.js:235 +#: js/blocks/NumberBlocks.js:981 +#: js/blocks/PitchBlocks.js:1717 +#: js/blocks/PitchBlocks.js:1758 +msgid "number" +msgstr "číslo" -#: js/piemenus.js:3015 -#: js/piemenus.js:3088 -#: js/musicutils.js:653 -#.TRANS: modal scale for music -msgid "ionian" +#: js/rubrics.js:529 +#: js/turtledefs.js:127 +#: js/turtledefs.js:229 +msgid "flow" msgstr "" -#: js/piemenus.js:3017 -#: js/piemenus.js:3092 -#: js/musicutils.js:633 -#: js/musicutils.js:811 -#: js/musicutils.js:909 -#.TRANS: minor is a music term related to intervals and mode -msgid "minor" +#: js/rubrics.js:530 +#: js/turtledefs.js:128 +#: js/turtledefs.js:230 +#: js/block-verbose.js:1609 +#: js/block-verbose.js:4559 +#: js/block-verbose.js:4577 +#: js/block-verbose.js:4588 +#: js/block.js:1573 +#: js/block.js:4483 +#: js/block.js:4501 +#: js/block.js:4512 +#: js/blocks.js:1018 +#: js/blocks.js:3491 +#: js/blocks.js:3492 +#: js/blocks.js:3717 +#: js/blocks.js:4076 +#: js/blocks.js:4269 +#: js/blocks.js:5432 +#: js/blocks.js:6563 +#: js/macros.js:170 +#: js/macros.js:266 +#: js/macros.js:267 +#: js/macros.js:276 +#: js/macros.js:828 +#: js/palette.js:527 +#: js/palette.js:536 +#: js/palette.js:545 +#: js/palette.js:554 +#: js/palette.js:1129 +#: js/palette.js:1140 +#: js/palette.js:1151 +#: js/palette.js:1162 +#: js/palette.js:1181 +#: js/blocks/ActionBlocks.js:254 +#: js/blocks/ActionBlocks.js:307 +#: js/blocks/ActionBlocks.js:617 +#: js/blocks/ActionBlocks.js:716 +#: js/blocks/ActionBlocks.js:961 +#: js/blocks/ActionBlocks.js:1049 +#: js/blocks/ActionBlocks.js:1322 +#: js/blocks/ActionBlocks.js:1325 +#: js/blocks/ActionBlocks.js:1337 +#: js/blocks/ActionBlocks.js:1404 +#: js/blocks/MeterBlocks.js:715 +#: js/blocks/MeterBlocks.js:768 +#: js/blocks/MeterBlocks.js:831 +#: js/blocks/MeterBlocks.js:892 +#: js/widgets/musickeyboard.js:2986 +#: js/widgets/phrasemaker.js:4913 +#: js/widgets/rhythmruler.js:2319 +#: js/widgets/rhythmruler.js:2326 +#: js/widgets/rhythmruler.js:2511 +#: js/widgets/rhythmruler.js:2518 +msgid "action" msgstr "" -#: js/piemenus.js:3017 -#: js/piemenus.js:3092 -#: js/musicutils.js:663 -#.TRANS: modal scale for music -msgid "aeolian" +#: js/rubrics.js:531 +#: js/turtledefs.js:136 +#: js/turtledefs.js:238 +msgid "sensors" msgstr "" -#: js/piemenus.js:3407 -msgid "Duplicate" +#: js/rubrics.js:532 +#: js/turtledefs.js:135 +#: js/turtledefs.js:237 +#: js/blocks/MediaBlocks.js:930 +msgid "media" msgstr "" -#: js/piemenus.js:3408 -#: js/turtledefs.js:534 -msgid "Extract" +#: js/rubrics.js:533 +msgid "mice" msgstr "" -#: js/piemenus.js:3409 -msgid "Move to trash" +#: js/toolbar.js:48 +#: js/toolbar.js:109 +msgid "About Music Blocks" msgstr "" -#: js/piemenus.js:3410 -#: js/timbre.js:968 -#: js/StringHelper.js:69 -msgid "Close" +#: js/toolbar.js:49 +#: js/toolbar.js:110 +#: js/toolbar.js:175 +#: js/toolbar.js:231 +#: js/turtledefs.js:445 +#: js/turtledefs.js:482 +#: js/activity.js:2660 +#: js/activity.js:2671 +#: js/activity.js:2902 +#: js/widgets/modewidget.js:77 +#: js/widgets/meterwidget.js:185 +#: js/widgets/pitchdrummatrix.js:147 +#: js/widgets/pitchdrummatrix.js:687 +#: js/widgets/pitchdrummatrix.js:689 +#: js/widgets/pitchdrummatrix.js:741 +#: js/widgets/pitchdrummatrix.js:743 +#: js/widgets/pitchdrummatrix.js:758 +#: js/widgets/pitchdrummatrix.js:760 +#: js/widgets/pitchdrummatrix.js:789 +#: js/widgets/pitchdrummatrix.js:791 +#: js/widgets/pitchstaircase.js:121 +#: js/widgets/temperament.js:610 +#: js/widgets/temperament.js:613 +#: js/widgets/temperament.js:673 +#: js/widgets/temperament.js:675 +#: js/widgets/temperament.js:2017 +#: js/widgets/temperament.js:2019 +#: js/widgets/tempo.js:84 +#: js/widgets/tempo.js:86 +#: js/widgets/timbre.js:432 +#: js/widgets/timbre.js:434 +#: js/widgets/timbre.js:465 +#: js/widgets/timbre.js:467 +#: js/widgets/timbre.js:746 +#: js/widgets/aiwidget.js:647 +#: js/widgets/aiwidget.js:654 +#: js/widgets/aiwidget.js:656 +#: js/widgets/arpeggio.js:90 +#: js/widgets/arpeggio.js:547 +#: js/widgets/arpeggio.js:549 +#: js/widgets/arpeggio.js:644 +#: js/widgets/arpeggio.js:646 +#: js/widgets/musickeyboard.js:676 +#: js/widgets/musickeyboard.js:872 +#: js/widgets/musickeyboard.js:874 +#: js/widgets/musickeyboard.js:953 +#: js/widgets/musickeyboard.js:955 +#: js/widgets/phrasemaker.js:513 +#: js/widgets/phrasemaker.js:523 +#: js/widgets/phrasemaker.js:525 +#: js/widgets/phrasemaker.js:4304 +#: js/widgets/phrasemaker.js:4528 +#: js/widgets/phrasemaker.js:4533 +#: js/widgets/phrasemaker.js:4535 +#: js/widgets/phrasemaker.js:4650 +#: js/widgets/rhythmruler.js:637 +#: js/widgets/rhythmruler.js:639 +#: js/widgets/rhythmruler.js:653 +#: js/widgets/rhythmruler.js:655 +#: js/widgets/sampler.js:162 +#: js/widgets/sampler.js:164 +#: js/widgets/sampler.js:363 +msgid "Play" msgstr "" -#: js/piemenus.js:3416 -msgid "Save stack" -msgstr "" +#: js/toolbar.js:50 +#: js/toolbar.js:111 +#: js/toolbar.js:176 +#: js/toolbar.js:232 +#: js/turtledefs.js:451 +#: js/turtledefs.js:488 +#: js/activity.js:2679 +#: js/widgets/modewidget.js:99 +#: js/widgets/modewidget.js:101 +#: js/widgets/meterwidget.js:206 +#: js/widgets/meterwidget.js:208 +#: js/widgets/pitchdrummatrix.js:674 +#: js/widgets/pitchdrummatrix.js:676 +#: js/widgets/temperament.js:2002 +#: js/widgets/temperament.js:2004 +#: js/widgets/arpeggio.js:534 +#: js/widgets/arpeggio.js:536 +#: js/widgets/phrasemaker.js:534 +#: js/widgets/phrasemaker.js:536 +msgid "Stop" +msgstr "Krok" -#: js/piemenus.js:3420 -#: js/toolbar.js:60 -#: js/toolbar.js:120 -#: js/toolbar.js:185 -#: js/toolbar.js:240 -#: js/turtledefs.js:752 -msgid "Help" +#: js/toolbar.js:51 +#: js/toolbar.js:112 +#: js/toolbar.js:177 +#: js/toolbar.js:233 +#: js/turtledefs.js:498 +msgid "Record" msgstr "" -#: js/piemenus.js:3762 -msgid "You have chosen key " +#: js/toolbar.js:52 +#: js/toolbar.js:53 +msgid "Full screen" +msgstr "" + +#: js/toolbar.js:54 +#: js/toolbar.js:115 +#: js/toolbar.js:180 +#: js/toolbar.js:236 +#: js/turtledefs.js:504 +msgid "Toggle Fullscreen" +msgstr "" + +#: js/toolbar.js:55 +#: js/toolbar.js:116 +#: js/toolbar.js:181 +#: js/toolbar.js:237 +#: js/turtledefs.js:510 +#: planet/js/StringHelper.js:33 +msgid "New project" +msgstr "" + +#: js/toolbar.js:56 +#: js/toolbar.js:117 +#: js/toolbar.js:182 +#: js/toolbar.js:238 +#: js/turtledefs.js:516 +msgid "Load project from file" +msgstr "" + +#: js/toolbar.js:57 +#: js/toolbar.js:118 +#: js/toolbar.js:119 +#: js/toolbar.js:183 +#: js/toolbar.js:239 +#: js/turtledefs.js:541 +#: js/turtledefs.js:550 +#: js/turtledefs.js:571 +msgid "Save project" +msgstr "" + +#: js/toolbar.js:58 +#: js/toolbar.js:77 +#: js/toolbar.js:79 +#: js/toolbar.js:138 +#: js/toolbar.js:147 +#: js/toolbar.js:149 +#: js/toolbar.js:184 +#: js/toolbar.js:202 +#: js/toolbar.js:204 +#: js/toolbar.js:240 +#: js/toolbar.js:258 +#: js/toolbar.js:260 +msgid "Save project as HTML" +msgstr "" + +#: js/toolbar.js:59 +#: js/toolbar.js:120 +#: js/toolbar.js:185 +#: js/toolbar.js:241 +msgid "Find and share projects" +msgstr "" + +#: js/toolbar.js:60 +#: js/toolbar.js:121 +#: js/toolbar.js:186 +#: js/toolbar.js:242 +msgid "Offline. Sharing is unavailable" +msgstr "" + +#: js/toolbar.js:61 +#: js/toolbar.js:122 +#: js/toolbar.js:187 +#: js/toolbar.js:243 +msgid "Auxiliary menu" +msgstr "" + +#: js/toolbar.js:62 +#: js/toolbar.js:123 +#: js/toolbar.js:188 +#: js/toolbar.js:244 +#: js/turtledefs.js:752 +#: js/piemenus.js:3423 +msgid "Help" +msgstr "" + +#: js/toolbar.js:63 +#: js/toolbar.js:124 +#: js/toolbar.js:189 +#: js/toolbar.js:245 +msgid "Run slowly" +msgstr "" + +#: js/toolbar.js:64 +#: js/toolbar.js:125 +#: js/toolbar.js:190 +#: js/toolbar.js:246 +#: js/turtledefs.js:682 +msgid "Run step by step" +msgstr "" + +#: js/toolbar.js:65 +#: js/toolbar.js:126 +#: js/toolbar.js:191 +#: js/toolbar.js:247 +#: js/turtledefs.js:689 +msgid "Display statistics" +msgstr "" + +#: js/toolbar.js:66 +#: js/toolbar.js:127 +#: js/toolbar.js:192 +#: js/toolbar.js:248 +msgid "Load plugin" +msgstr "" + +#: js/toolbar.js:67 +#: js/toolbar.js:128 +#: js/toolbar.js:193 +#: js/toolbar.js:249 +#: js/turtledefs.js:696 +msgid "Delete plugin" +msgstr "" + +#: js/toolbar.js:68 +#: js/toolbar.js:129 +#: js/toolbar.js:194 +#: js/toolbar.js:250 +msgid "Enable horizontal scrolling" +msgstr "" + +#: js/toolbar.js:69 +#: js/toolbar.js:130 +#: js/toolbar.js:195 +#: js/toolbar.js:251 +msgid "Disable horizontal scrolling" +msgstr "" + +#: js/toolbar.js:70 +#: js/toolbar.js:131 +#: js/toolbar.js:196 +#: js/toolbar.js:252 +#: planet/js/LocalCard.js:54 +#: planet/js/StringHelper.js:71 +msgid "Merge with current project" +msgstr "" + +#: js/toolbar.js:71 +#: js/toolbar.js:132 +msgid "Set Pitch Preview" +msgstr "" + +#: js/toolbar.js:72 +#: js/toolbar.js:133 +#: js/toolbar.js:197 +#: js/toolbar.js:253 +msgid "JavaScript Editor" +msgstr "" + +#: js/toolbar.js:73 +#: js/toolbar.js:134 +#: js/toolbar.js:198 +#: js/toolbar.js:254 +#: js/turtledefs.js:724 +msgid "Restore" +msgstr "" + +#: js/toolbar.js:74 +#: js/toolbar.js:135 +#: js/toolbar.js:199 +#: js/toolbar.js:255 +msgid "Switch to beginner mode" +msgstr "" + +#: js/toolbar.js:75 +#: js/toolbar.js:136 +#: js/toolbar.js:200 +#: js/toolbar.js:256 +msgid "Switch to advanced mode" +msgstr "" + +#: js/toolbar.js:76 +#: js/toolbar.js:137 +#: js/toolbar.js:146 +#: js/toolbar.js:201 +#: js/toolbar.js:257 +#: js/turtledefs.js:738 +msgid "Select language" +msgstr "" + +#: js/toolbar.js:78 +#: js/toolbar.js:81 +#: js/toolbar.js:140 +#: js/turtledefs.js:579 +msgid "Save mouse artwork as PNG" +msgstr "" + +#: js/toolbar.js:80 +#: js/toolbar.js:139 +#: js/turtledefs.js:575 +msgid "Save mouse artwork as SVG" +msgstr "" + +#: js/toolbar.js:82 +#: js/toolbar.js:141 +#: js/turtledefs.js:583 +msgid "Save music as WAV" +msgstr "" + +#: js/toolbar.js:83 +#: js/toolbar.js:142 +#: js/turtledefs.js:587 +msgid "Save sheet music as ABC" +msgstr "" + +#: js/toolbar.js:84 +#: js/toolbar.js:143 +#: js/turtledefs.js:591 +msgid "Save sheet music as Lilypond" +msgstr "" + +#: js/toolbar.js:85 +msgid "Save sheet music as MusicXML" +msgstr "" + +#: js/toolbar.js:86 +#: js/toolbar.js:144 +#: js/toolbar.js:152 +#: js/toolbar.js:207 +#: js/toolbar.js:263 +#: js/turtledefs.js:562 +#: js/turtledefs.js:595 +msgid "Save block artwork as SVG" +msgstr "" + +#: js/toolbar.js:87 +#: js/toolbar.js:145 +#: js/toolbar.js:153 +#: js/toolbar.js:208 +#: js/toolbar.js:264 +#: js/turtles.js:911 +msgid "Confirm" +msgstr "" + +#: js/toolbar.js:88 +#: js/toolbar.js:154 +#: js/toolbar.js:209 +#: js/toolbar.js:265 +msgid "English (United States)" +msgstr "" + +#: js/toolbar.js:89 +#: js/toolbar.js:155 +#: js/toolbar.js:210 +#: js/toolbar.js:266 +msgid "English (United Kingdom)" +msgstr "" + +#: js/toolbar.js:90 +#: js/toolbar.js:156 +#: js/toolbar.js:211 +#: js/toolbar.js:267 +msgid "日本語" +msgstr "" + +#: js/toolbar.js:91 +msgid "한국어" +msgstr "" + +#: js/toolbar.js:92 +#: js/toolbar.js:158 +#: js/toolbar.js:213 +#: js/toolbar.js:269 +msgid "español" +msgstr "" + +#: js/toolbar.js:93 +#: js/toolbar.js:159 +#: js/toolbar.js:214 +#: js/toolbar.js:270 +msgid "português" +msgstr "" + +#: js/toolbar.js:94 +#: js/toolbar.js:160 +#: js/toolbar.js:215 +#: js/toolbar.js:271 +msgid "にほんご" +msgstr "" + +#: js/toolbar.js:95 +#: js/toolbar.js:161 +#: js/toolbar.js:216 +#: js/toolbar.js:272 +msgid "中文" +msgstr "" + +#: js/toolbar.js:96 +#: js/toolbar.js:162 +#: js/toolbar.js:217 +#: js/toolbar.js:273 +msgid "ภาษาไทย" +msgstr "" + +#: js/toolbar.js:97 +#: js/toolbar.js:163 +#: js/toolbar.js:218 +#: js/toolbar.js:274 +msgid "aymara" +msgstr "" + +#: js/toolbar.js:98 +#: js/toolbar.js:164 +#: js/toolbar.js:219 +#: js/toolbar.js:275 +msgid "quechua" +msgstr "" + +#: js/toolbar.js:99 +#: js/toolbar.js:165 +#: js/toolbar.js:220 +#: js/toolbar.js:276 +msgid "guarani" +msgstr "" + +#: js/toolbar.js:100 +#: js/toolbar.js:166 +#: js/toolbar.js:221 +#: js/toolbar.js:277 +msgid "हिंदी" +msgstr "" + +#: js/toolbar.js:101 +#: js/toolbar.js:168 +#: js/toolbar.js:222 +#: js/toolbar.js:279 +msgid "igbo" +msgstr "" + +#: js/toolbar.js:102 +#: js/toolbar.js:169 +#: js/toolbar.js:223 +#: js/toolbar.js:280 +msgid "عربى" +msgstr "" + +#: js/toolbar.js:103 +#: js/toolbar.js:167 +#: js/toolbar.js:224 +#: js/toolbar.js:278 +msgid "తెలుగు" +msgstr "" + +#: js/toolbar.js:104 +#: js/toolbar.js:170 +#: js/toolbar.js:225 +#: js/toolbar.js:281 +msgid "עִברִית" +msgstr "" + +#: js/toolbar.js:113 +#: js/toolbar.js:114 +#: js/toolbar.js:178 +#: js/toolbar.js:179 +#: js/toolbar.js:234 +#: js/toolbar.js:235 +msgid "Full Screen" +msgstr "" + +#: js/toolbar.js:148 +#: js/toolbar.js:151 +#: js/toolbar.js:203 +#: js/toolbar.js:206 +#: js/toolbar.js:259 +#: js/toolbar.js:262 +#: js/turtledefs.js:558 +msgid "Save turtle artwork as PNG" +msgstr "" + +#: js/toolbar.js:150 +#: js/toolbar.js:205 +#: js/toolbar.js:261 +#: js/turtledefs.js:554 +msgid "Save turtle artwork as SVG" +msgstr "" + +#: js/toolbar.js:157 +#: js/toolbar.js:212 +#: js/toolbar.js:268 +msgid "한국인" +msgstr "" + +#: js/toolbar.js:174 +#: js/toolbar.js:230 +msgid "About Turtle Blocks" +msgstr "" + +#: js/toolbar.js:446 +#: js/toolbar.js:457 +#: js/toolbar.js:497 +msgid "Turtle Wrap Off" +msgstr "" + +#: js/toolbar.js:466 +#: js/toolbar.js:506 +msgid "Turtle Wrap On" +msgstr "" + +#: js/turtle-painter.js:1192 +#: js/turtle-painter.js:1193 +#: js/turtles.js:118 +#: js/block-verbose.js:1623 +#: js/block.js:1587 +#: js/lilypond.js:749 +#: js/lilypond.js:913 +#: js/lilypond.js:951 +#: js/logo.js:1184 +#: js/blocks/ActionBlocks.js:1223 +#: js/blocks/ProgramBlocks.js:1267 +msgid "start" +msgstr "spustit" + +#: js/turtledefs.js:40 +#.TRANS: put the URL to the guide here, e.g., https://github.com/sugarlabs/turtleblocksjs/tree/master/guide/README.md +msgid "guide url" +msgstr "" + +#: js/turtledefs.js:85 +#: js/turtledefs.js:437 +msgid "Turtle Blocks is a Logo-inspired turtle that draws colorful pictures with snap-together visual-programming blocks." +msgstr "" + +#: js/turtledefs.js:118 +#: js/turtledefs.js:220 +msgid "search" +msgstr "" + +#: js/turtledefs.js:120 +#: js/turtledefs.js:222 +#: js/blocks/MeterBlocks.js:1343 +#: js/blocks/WidgetBlocks.js:522 +#.TRANS: musical meter (time signature), e.g., 4:4 +msgid "meter" +msgstr "" + +#: js/turtledefs.js:122 +#: js/turtledefs.js:224 +msgid "intervals" +msgstr "" + +#: js/turtledefs.js:124 +#: js/turtledefs.js:226 +msgid "ornament" +msgstr "" + +#: js/turtledefs.js:125 +#: js/turtledefs.js:227 +#: js/blocks/VolumeBlocks.js:362 +#: js/blocks/VolumeBlocks.js:502 +#: js/blocks/VolumeBlocks.js:545 +msgid "volume" +msgstr "" + +#: js/turtledefs.js:126 +#: js/turtledefs.js:228 +#: js/block-verbose.js:1700 +#: js/block-verbose.js:2626 +#: js/block.js:1664 +#: js/block.js:2554 +#: js/lilypond.js:732 +#: js/lilypond.js:897 +#: js/lilypond.js:941 +#: js/palette.js:577 +#: js/blocks/RhythmBlocks.js:766 +#: js/blocks/DrumBlocks.js:477 +#: js/blocks/VolumeBlocks.js:502 +#: js/widgets/phrasemaker.js:1038 +msgid "drum" +msgstr "" + +#: js/turtledefs.js:129 +#: js/turtledefs.js:231 +msgid "boxes" +msgstr "" + +#: js/turtledefs.js:130 +#: js/turtledefs.js:232 +msgid "widgets" +msgstr "" + +#: js/turtledefs.js:131 +#: js/turtledefs.js:233 +#: js/widgets/phrasemaker.js:1039 +msgid "graphics" +msgstr "" + +#: js/turtledefs.js:134 +#: js/turtledefs.js:236 +msgid "boolean" +msgstr "" + +#: js/turtledefs.js:137 +#: js/turtledefs.js:239 +#: js/blocks/HeapBlocks.js:59 +#: js/widgets/status.js:147 +msgid "heap" +msgstr "" + +#: js/turtledefs.js:138 +#: js/turtledefs.js:240 +#: js/blocks/DictBlocks.js:142 +#: js/blocks/ProgramBlocks.js:495 +msgid "dictionary" +msgstr "" + +#: js/turtledefs.js:139 +#: js/turtledefs.js:241 +msgid "ensemble" +msgstr "" + +#: js/turtledefs.js:140 +#: js/turtledefs.js:242 +msgid "extras" +msgstr "" + +#: js/turtledefs.js:142 +#: js/turtledefs.js:244 +#.TRANS: program as in computer program +#.TRANS: program as in computer program +msgid "program" +msgstr "" + +#: js/turtledefs.js:143 +#: js/turtledefs.js:245 +msgid "my blocks" msgstr "" -#: js/piemenus.js:3766 -msgid " for your pitch preview." +#: js/turtledefs.js:185 +#: js/turtledefs.js:281 +msgid "artwork" msgstr "" -#: js/palette.js:571 -msgid "grid" +#: js/turtledefs.js:185 +#: js/turtledefs.js:281 +msgid "logic" msgstr "" -#: js/palette.js:577 -#: js/block.js:1540 -#: js/block.js:2343 -#: js/turtledefs.js:126 -#: js/turtledefs.js:228 -#: js/lilypond.js:740 -#: js/lilypond.js:905 -#: js/lilypond.js:949 -#: js/DrumBlocks.js:486 -#: js/RhythmBlocks.js:766 -#: js/VolumeBlocks.js:502 -#: js/phrasemaker.js:823 -msgid "drum" +#: js/turtledefs.js:185 +#: js/turtledefs.js:281 +msgid "music" msgstr "" -#: js/palette.js:580 -msgid "effect" +#: js/turtledefs.js:187 +#: js/turtledefs.js:463 +msgid "Music Blocks is a collection of tools for exploring fundamental musical concepts in a fun way." msgstr "" -#: js/palette.js:586 -msgid "sargam" +#: js/turtledefs.js:436 +msgid "Welcome to Turtle Blocks" msgstr "" -#: js/palette.js:589 -#: js/activity.js:1833 -#: js/RhythmBlocks.js:923 -#: js/PitchBlocks.js:442 -#: js/PitchBlocks.js:1748 -#.TRANS: a numeric mapping of the notes in an octave based on the musical mode -msgid "scale degree" +#: js/turtledefs.js:438 +#: js/turtledefs.js:465 +#: js/turtledefs.js:774 +#: js/turtledefs.js:805 +msgid "The current version is" msgstr "" -#: js/palette.js:592 -#: js/activity.js:1860 -msgid "mode name" +#: js/turtledefs.js:446 +#: js/turtledefs.js:483 +msgid "Click the run button to run the project in fast mode." msgstr "" -#: js/palette.js:595 -#: js/activity.js:1839 -msgid "invert mode" +#: js/turtledefs.js:452 +msgid "Stop the turtle." msgstr "" -#: js/palette.js:598 -#: js/activity.js:1836 -msgid "voice name" +#: js/turtledefs.js:454 +#: js/turtledefs.js:491 +msgid "You can also type Alt-S to stop." msgstr "" -#: js/palette.js:601 -#: js/PitchBlocks.js:1181 -msgid "custom pitch" +#: js/turtledefs.js:462 +#: js/widgets/help.js:333 +msgid "Welcome to Music Blocks" msgstr "" -#: js/palette.js:605 -#: js/block.js:1456 -#: js/block.js:1575 -#: js/WidgetBlocks.js:218 -#: js/IntervalsBlocks.js:63 -msgid "temperament" +#: js/turtledefs.js:472 +#: js/widgets/help.js:334 +msgid "Meet Mr. Mouse!" msgstr "" -#: js/palette.js:609 -msgid "accidental" +#: js/turtledefs.js:473 +msgid "Mr Mouse is our Music Blocks conductor." msgstr "" -#: js/palette.js:615 -#: js/activity.js:1866 -msgid "interval name" +#: js/turtledefs.js:475 +msgid "Mr Mouse encourages you to explore Music Blocks." msgstr "" -#: js/palette.js:633 -#: js/PitchBlocks.js:405 -msgid "pitch converter" +#: js/turtledefs.js:477 +msgid "Let us start our tour!" msgstr "" -#: js/rubrics.js:522 -#: js/turtledefs.js:119 -#: js/turtledefs.js:221 -#: js/RhythmBlockPaletteBlocks.js:52 -#: js/RhythmBlockPaletteBlocks.js:233 -#: js/ProgramBlocks.js:745 -#: js/rhythmruler.js:1670 -#: js/rhythmruler.js:1677 -#: js/rhythmruler.js:1745 -#: js/rhythmruler.js:1752 -#: js/rhythmruler.js:1830 -#.TRANS: an arrangement of notes based on duration -msgid "rhythm" +#: js/turtledefs.js:489 +msgid "Stop the music (and the mice)." msgstr "" -#: js/rubrics.js:523 -#: js/block.js:2339 -#: js/turtledefs.js:121 -#: js/turtledefs.js:223 -#: js/IntervalsBlocks.js:63 -#: js/PitchBlocks.js:1801 -#: js/PitchBlocks.js:1814 -#: js/SensorsBlocks.js:178 -#: js/phrasemaker.js:821 -#: js/musickeyboard.js:1653 -#.TRANS: pitch number -#.TRANS: we specify pitch in terms of a name and an octave. The name can be CDEFGAB or Do Re Mi Fa Sol La Ti. Octave is a number between 1 and 8. -msgid "pitch" +#: js/turtledefs.js:499 +msgid "Record your project as video." msgstr "" -#: js/rubrics.js:524 -#: js/turtledefs.js:123 -#: js/turtledefs.js:225 -msgid "tone" +#: js/turtledefs.js:505 +msgid "Toggle Fullscreen mode." msgstr "" -#: js/rubrics.js:525 -#: js/lilypond.js:613 -#: js/lilypond.js:912 -#: js/lilypond.js:918 -#: js/lilypond.js:956 -msgid "mouse" +#: js/turtledefs.js:511 +msgid "Initialize a new project." msgstr "" -#: js/rubrics.js:526 -#: js/turtledefs.js:132 -#: js/turtledefs.js:234 -#: js/phrasemaker.js:825 -msgid "pen" +#: js/turtledefs.js:517 +msgid "You can also load projects from the file system." msgstr "" -#: js/rubrics.js:527 -#: js/turtledefs.js:133 -#: js/turtledefs.js:235 -#: js/NumberBlocks.js:905 -#: js/PitchBlocks.js:1679 -#: js/PitchBlocks.js:1720 -msgid "number" -msgstr "číslo" +#: js/turtledefs.js:522 +#: planet/js/StringHelper.js:46 +msgid "Delete" +msgstr "" -#: js/rubrics.js:528 -#: js/turtledefs.js:127 -#: js/turtledefs.js:229 -msgid "flow" +#: js/turtledefs.js:523 +msgid "To delete a block, just right-click on it, then you will be able to see the delete option" msgstr "" -#: js/rubrics.js:530 -#: js/turtledefs.js:136 -#: js/turtledefs.js:238 -msgid "sensors" +#: js/turtledefs.js:528 +#: js/activity.js:2649 +#: planet/js/LocalCard.js:31 +msgid "Copy" +msgstr "Kopírovat" + +#: js/turtledefs.js:529 +msgid "To copy a block, just right-click on it, then you will be able to see the copy option" msgstr "" -#: js/rubrics.js:531 -#: js/turtledefs.js:135 -#: js/turtledefs.js:237 -#: js/MediaBlocks.js:930 -msgid "media" +#: js/turtledefs.js:534 +#: js/piemenus.js:3411 +msgid "Extract" msgstr "" -#: js/rubrics.js:532 -msgid "mice" +#: js/turtledefs.js:535 +msgid "To extract a block, just right-click on it, then you will be able to see the extract option" msgstr "" -#: js/macros.js:711 -#: js/musicutils.js:783 -#: js/synthutils.js:181 -#.TRANS: animal sound effect -msgid "duck" +#: js/turtledefs.js:542 +#: js/turtledefs.js:552 +#: js/turtledefs.js:573 +msgid "Save your project to a file." msgstr "" -#: js/toolbar.js:46 -#: js/toolbar.js:107 -msgid "About Music Blocks" +#: js/turtledefs.js:549 +#: js/turtledefs.js:570 +msgid "save" msgstr "" -#: js/toolbar.js:47 -#: js/toolbar.js:108 -#: js/toolbar.js:172 -#: js/toolbar.js:228 -#: js/turtledefs.js:445 -#: js/turtledefs.js:482 -#: js/activity.js:2281 -#: js/activity.js:2289 -#: js/activity.js:2520 -#: js/modewidget.js:77 -#: js/pitchstaircase.js:121 -#: js/phrasemaker.js:302 -#: js/phrasemaker.js:312 -#: js/phrasemaker.js:314 -#: js/phrasemaker.js:3901 -#: js/phrasemaker.js:4061 -#: js/phrasemaker.js:4066 -#: js/phrasemaker.js:4068 -#: js/phrasemaker.js:4183 -#: js/pitchdrummatrix.js:81 -#: js/pitchdrummatrix.js:574 -#: js/pitchdrummatrix.js:576 -#: js/pitchdrummatrix.js:628 -#: js/pitchdrummatrix.js:630 -#: js/pitchdrummatrix.js:645 -#: js/pitchdrummatrix.js:647 -#: js/pitchdrummatrix.js:674 -#: js/pitchdrummatrix.js:676 -#: js/temperament.js:477 -#: js/temperament.js:480 -#: js/temperament.js:540 -#: js/temperament.js:542 -#: js/temperament.js:1835 -#: js/temperament.js:1837 -#: js/temperament.js:1986 -#: js/temperament.js:1988 -#: js/musickeyboard.js:522 -#: js/musickeyboard.js:682 -#: js/musickeyboard.js:684 -#: js/musickeyboard.js:756 -#: js/musickeyboard.js:758 -#: js/rhythmruler.js:298 -#: js/rhythmruler.js:300 -#: js/rhythmruler.js:314 -#: js/rhythmruler.js:316 -#: js/sampler.js:96 -#: js/sampler.js:98 -#: js/sampler.js:229 -#: js/sampler.js:235 -#: js/sampler.js:237 -#: js/tempo.js:84 -#: js/tempo.js:86 -#: js/timbre.js:432 -#: js/timbre.js:434 -#: js/timbre.js:465 -#: js/timbre.js:467 -#: js/timbre.js:746 -#: js/meterwidget.js:80 -#: js/arpeggio.js:90 -#: js/arpeggio.js:547 -#: js/arpeggio.js:549 -#: js/arpeggio.js:644 -#: js/arpeggio.js:646 -msgid "Play" +#: js/turtledefs.js:556 +#: js/turtledefs.js:577 +msgid "Save graphics from your project to as SVG." msgstr "" -#: js/toolbar.js:48 -#: js/toolbar.js:109 -#: js/toolbar.js:173 -#: js/toolbar.js:229 -#: js/turtledefs.js:451 -#: js/turtledefs.js:488 -#: js/activity.js:2297 -#: js/modewidget.js:99 -#: js/modewidget.js:101 -#: js/phrasemaker.js:323 -#: js/phrasemaker.js:325 -#: js/pitchdrummatrix.js:561 -#: js/pitchdrummatrix.js:563 -#: js/temperament.js:1820 -#: js/temperament.js:1822 -#: js/meterwidget.js:101 -#: js/meterwidget.js:103 -#: js/arpeggio.js:534 -#: js/arpeggio.js:536 -msgid "Stop" -msgstr "Krok" +#: js/turtledefs.js:560 +#: js/turtledefs.js:581 +msgid "Save graphics from your project as PNG." +msgstr "" -#: js/toolbar.js:49 -#: js/toolbar.js:110 -#: js/toolbar.js:174 -#: js/toolbar.js:230 -#: js/turtledefs.js:498 -msgid "Record" +#: js/turtledefs.js:564 +#: js/turtledefs.js:597 +msgid "Save block artwork as an SVG file." msgstr "" -#: js/toolbar.js:50 -#: js/toolbar.js:51 -msgid "Full screen" +#: js/turtledefs.js:585 +msgid "Save audio from your project as WAV." msgstr "" -#: js/toolbar.js:52 -#: js/toolbar.js:112 -#: js/toolbar.js:177 -#: js/toolbar.js:232 -#: js/turtledefs.js:504 -msgid "Toggle Fullscreen" +#: js/turtledefs.js:589 +msgid "Save your project to as an ABC file." msgstr "" -#: js/toolbar.js:53 -#: js/toolbar.js:113 -#: js/toolbar.js:178 -#: js/toolbar.js:233 -#: js/turtledefs.js:510 -#: js/StringHelper.js:33 -msgid "New project" +#: js/turtledefs.js:593 +msgid "Save your project to as a Lilypond file." msgstr "" -#: js/toolbar.js:54 -#: js/toolbar.js:114 -#: js/toolbar.js:179 -#: js/toolbar.js:234 -#: js/turtledefs.js:516 -msgid "Load project from file" +#: js/turtledefs.js:604 +msgid "Load samples from server" msgstr "" -#: js/toolbar.js:55 -#: js/toolbar.js:115 -#: js/toolbar.js:116 -#: js/toolbar.js:180 -#: js/toolbar.js:235 -#: js/turtledefs.js:541 -#: js/turtledefs.js:550 -#: js/turtledefs.js:571 -msgid "Save project" +#: js/turtledefs.js:605 +msgid "This button opens a viewer for loading example projects." msgstr "" -#: js/toolbar.js:56 -#: js/toolbar.js:75 -#: js/toolbar.js:77 -#: js/toolbar.js:135 -#: js/toolbar.js:144 -#: js/toolbar.js:146 -#: js/toolbar.js:181 -#: js/toolbar.js:199 -#: js/toolbar.js:201 -#: js/toolbar.js:236 -#: js/toolbar.js:254 -#: js/toolbar.js:256 -msgid "Save project as HTML" +#: js/turtledefs.js:611 +msgid "Palette buttons" msgstr "" -#: js/toolbar.js:57 -#: js/toolbar.js:117 -#: js/toolbar.js:182 -#: js/toolbar.js:237 -msgid "Find and share projects" +#: js/turtledefs.js:612 +msgid "This toolbar contains the palette buttons including Rhythm Pitch Tone Action and more." msgstr "" -#: js/toolbar.js:58 -#: js/toolbar.js:118 -#: js/toolbar.js:183 -#: js/toolbar.js:238 -msgid "Offline. Sharing is unavailable" +#: js/turtledefs.js:614 +msgid "Click to show the palettes of blocks and drag blocks from the palettes onto the canvas to use them." +msgstr "" + +#: js/turtledefs.js:620 +msgid "Cartesian/Polar" +msgstr "" + +#: js/turtledefs.js:621 +msgid "Show or hide a coordinate grid." +msgstr "" + +#: js/turtledefs.js:626 +#: js/turtles.js:902 +msgid "Clean" +msgstr "Smazat" + +#: js/turtledefs.js:627 +msgid "Clear the screen and return the mice to their initial positions." msgstr "" -#: js/toolbar.js:59 -#: js/toolbar.js:119 -#: js/toolbar.js:184 -#: js/toolbar.js:239 -msgid "Auxiliary menu" +#: js/turtledefs.js:632 +#: js/turtles.js:955 +msgid "Collapse" msgstr "" -#: js/toolbar.js:61 -#: js/toolbar.js:121 -#: js/toolbar.js:186 -#: js/toolbar.js:241 -msgid "Run slowly" +#: js/turtledefs.js:633 +msgid "Collapse the graphics window." msgstr "" -#: js/toolbar.js:62 -#: js/toolbar.js:122 -#: js/toolbar.js:187 -#: js/toolbar.js:242 -#: js/turtledefs.js:682 -msgid "Run step by step" +#: js/turtledefs.js:638 +#: js/activity.js:5684 +msgid "Home" msgstr "" -#: js/toolbar.js:63 -#: js/toolbar.js:123 -#: js/toolbar.js:188 -#: js/toolbar.js:243 -#: js/turtledefs.js:689 -msgid "Display statistics" +#: js/turtledefs.js:639 +msgid "Return all blocks to the center of the screen." msgstr "" -#: js/toolbar.js:64 -#: js/toolbar.js:124 -#: js/toolbar.js:189 -#: js/toolbar.js:244 -msgid "Load plugin" +#: js/turtledefs.js:644 +msgid "Show/hide blocks" msgstr "" -#: js/toolbar.js:65 -#: js/toolbar.js:125 -#: js/toolbar.js:190 -#: js/toolbar.js:245 -#: js/turtledefs.js:696 -msgid "Delete plugin" +#: js/turtledefs.js:645 +msgid "Hide or show the blocks and the palettes." msgstr "" -#: js/toolbar.js:66 -#: js/toolbar.js:126 -#: js/toolbar.js:191 -#: js/toolbar.js:246 -msgid "Enable horizontal scrolling" +#: js/turtledefs.js:650 +msgid "Expand/collapse collapsable blocks" msgstr "" -#: js/toolbar.js:67 -#: js/toolbar.js:127 -#: js/toolbar.js:192 -#: js/toolbar.js:247 -msgid "Disable horizontal scrolling" +#: js/turtledefs.js:651 +msgid "Expand or collapse start and action stacks." msgstr "" -#: js/toolbar.js:68 -#: js/toolbar.js:128 -#: js/toolbar.js:193 -#: js/toolbar.js:248 -#: js/LocalCard.js:54 -#: js/StringHelper.js:71 -msgid "Merge with current project" +#: js/turtledefs.js:658 +#: js/activity.js:5704 +msgid "Decrease block size" msgstr "" -#: js/toolbar.js:69 -#: js/toolbar.js:129 -msgid "Set Pitch Preview" +#: js/turtledefs.js:659 +msgid "Decrease the size of the blocks." msgstr "" -#: js/toolbar.js:70 -#: js/toolbar.js:130 -#: js/toolbar.js:194 -#: js/toolbar.js:249 -msgid "Toggle JavaScript Editor" +#: js/turtledefs.js:664 +#: js/activity.js:5710 +msgid "Increase block size" msgstr "" -#: js/toolbar.js:71 -#: js/toolbar.js:131 -#: js/toolbar.js:195 -#: js/toolbar.js:250 -#: js/turtledefs.js:724 -msgid "Restore" +#: js/turtledefs.js:665 +msgid "Increase the size of the blocks." msgstr "" -#: js/toolbar.js:72 -#: js/toolbar.js:132 -#: js/toolbar.js:196 -#: js/toolbar.js:251 -msgid "Switch to beginner mode" +#: js/turtledefs.js:670 +msgid "Expand/collapse option toolbar" msgstr "" -#: js/toolbar.js:73 -#: js/toolbar.js:133 -#: js/toolbar.js:197 -#: js/toolbar.js:252 -msgid "Switch to advanced mode" +#: js/turtledefs.js:671 +msgid "Click this button to expand or collapse the auxillary toolbar." msgstr "" -#: js/toolbar.js:74 -#: js/toolbar.js:134 -#: js/toolbar.js:143 -#: js/toolbar.js:198 -#: js/toolbar.js:253 -#: js/turtledefs.js:738 -msgid "Select language" +#: js/turtledefs.js:676 +msgid "Run slow" msgstr "" -#: js/toolbar.js:76 -#: js/toolbar.js:79 -#: js/toolbar.js:137 -#: js/turtledefs.js:579 -msgid "Save mouse artwork as PNG" +#: js/turtledefs.js:677 +msgid "Click to run the project in slow mode." msgstr "" -#: js/toolbar.js:78 -#: js/toolbar.js:136 -#: js/turtledefs.js:575 -msgid "Save mouse artwork as SVG" +#: js/turtledefs.js:683 +msgid "Click to run the project step by step." msgstr "" -#: js/toolbar.js:80 -#: js/toolbar.js:138 -#: js/turtledefs.js:583 -msgid "Save music as WAV" +#: js/turtledefs.js:690 +msgid "Display statistics about your Music project." msgstr "" -#: js/toolbar.js:81 -#: js/toolbar.js:139 -#: js/turtledefs.js:587 -msgid "Save sheet music as ABC" +#: js/turtledefs.js:697 +msgid "Delete a selected plugin." msgstr "" -#: js/toolbar.js:82 -#: js/toolbar.js:140 -#: js/turtledefs.js:591 -msgid "Save sheet music as Lilypond" +#: js/turtledefs.js:704 +msgid "Enable scrolling" msgstr "" -#: js/toolbar.js:83 -msgid "Save sheet music as MusicXML" +#: js/turtledefs.js:705 +msgid "You can scroll the blocks on the canvas." msgstr "" -#: js/toolbar.js:84 -#: js/toolbar.js:141 -#: js/toolbar.js:149 -#: js/toolbar.js:204 -#: js/toolbar.js:259 -#: js/turtledefs.js:562 -#: js/turtledefs.js:595 -msgid "Save block artwork as SVG" +#: js/turtledefs.js:714 +msgid "Wrap Turtle" msgstr "" -#: js/toolbar.js:85 -#: js/toolbar.js:142 -#: js/toolbar.js:150 -#: js/toolbar.js:205 -#: js/toolbar.js:260 -msgid "Confirm" +#: js/turtledefs.js:715 +msgid "Turn Turtle wrapping On or Off." msgstr "" -#: js/toolbar.js:86 -#: js/toolbar.js:151 -#: js/toolbar.js:206 -#: js/toolbar.js:261 -msgid "English (United States)" +#: js/turtledefs.js:725 +msgid "Restore blocks from the trash." msgstr "" -#: js/toolbar.js:87 -#: js/toolbar.js:152 -#: js/toolbar.js:207 -#: js/toolbar.js:262 -msgid "English (United Kingdom)" +#: js/turtledefs.js:732 +msgid "Switch mode" msgstr "" -#: js/toolbar.js:88 -#: js/toolbar.js:153 -#: js/toolbar.js:208 -#: js/toolbar.js:263 -msgid "日本語" +#: js/turtledefs.js:733 +msgid "Switch between beginner and advance modes." msgstr "" -#: js/toolbar.js:89 -msgid "한국어" +#: js/turtledefs.js:739 +msgid "Select your language preference." msgstr "" -#: js/toolbar.js:90 -#: js/toolbar.js:155 -#: js/toolbar.js:210 -#: js/toolbar.js:265 -msgid "español" +#: js/turtledefs.js:745 +msgid "Keyboard shortcuts" msgstr "" -#: js/toolbar.js:91 -#: js/toolbar.js:156 -#: js/toolbar.js:211 -#: js/toolbar.js:266 -msgid "português" +#: js/turtledefs.js:746 +msgid "You can type d to create a do block and r to create a re block etc." msgstr "" -#: js/toolbar.js:92 -#: js/toolbar.js:157 -#: js/toolbar.js:212 -#: js/toolbar.js:267 -msgid "にほんご" +#: js/turtledefs.js:753 +msgid "Show these messages." msgstr "" -#: js/toolbar.js:93 -#: js/toolbar.js:158 -#: js/toolbar.js:213 -#: js/toolbar.js:268 -msgid "中文" +#: js/turtledefs.js:759 +#: js/turtledefs.js:790 +#: js/widgets/help.js:335 +msgid "Guide" msgstr "" -#: js/toolbar.js:94 -#: js/toolbar.js:159 -#: js/toolbar.js:214 -#: js/toolbar.js:269 -msgid "ภาษาไทย" +#: js/turtledefs.js:760 +msgid "A detailed guide to Turtle Blocks is available." msgstr "" -#: js/toolbar.js:95 -#: js/toolbar.js:160 -#: js/toolbar.js:215 -#: js/toolbar.js:270 -msgid "aymara" +#: js/turtledefs.js:764 +msgid "Turtle Blocks Guide" msgstr "" -#: js/toolbar.js:96 -#: js/toolbar.js:161 -#: js/toolbar.js:216 -#: js/toolbar.js:271 -msgid "quechua" +#: js/turtledefs.js:767 +#: js/turtledefs.js:798 +#: js/widgets/help.js:336 +msgid "About" msgstr "" -#: js/toolbar.js:97 -#: js/toolbar.js:162 -#: js/toolbar.js:217 -#: js/toolbar.js:272 -msgid "guarani" +#: js/turtledefs.js:768 +msgid "Turtle Blocks is an open source collection of tools for exploring musical concepts." msgstr "" -#: js/toolbar.js:98 -#: js/toolbar.js:163 -#: js/toolbar.js:218 -#: js/toolbar.js:273 -msgid "हिंदी" +#: js/turtledefs.js:770 +msgid "A full list of contributors can be found in the Turtle Blocks GitHub repository." +msgstr "" + +#: js/turtledefs.js:772 +msgid "Turtle Blocks is licensed under the AGPL." msgstr "" -#: js/toolbar.js:99 -#: js/toolbar.js:165 -#: js/toolbar.js:219 -#: js/toolbar.js:275 -msgid "igbo" +#: js/turtledefs.js:780 +msgid "Turtle Blocks GitHub repository" msgstr "" -#: js/toolbar.js:100 -#: js/toolbar.js:166 -#: js/toolbar.js:220 -#: js/toolbar.js:276 -msgid "عربى" +#: js/turtledefs.js:783 +#: js/turtledefs.js:814 +#: js/widgets/help.js:337 +#: js/widgets/help.js:359 +msgid "Congratulations." msgstr "" -#: js/toolbar.js:101 -#: js/toolbar.js:164 -#: js/toolbar.js:221 -#: js/toolbar.js:274 -msgid "తెలుగు" +#: js/turtledefs.js:784 +msgid "You have finished the tour. Please enjoy Turtle Blocks!" msgstr "" -#: js/toolbar.js:102 -#: js/toolbar.js:167 -#: js/toolbar.js:222 -#: js/toolbar.js:277 -msgid "עִברִית" +#: js/turtledefs.js:791 +msgid "A detailed guide to Music Blocks is available." msgstr "" -#: js/toolbar.js:111 -#: js/toolbar.js:175 -#: js/toolbar.js:176 -#: js/toolbar.js:231 -msgid "Full Screen" +#: js/turtledefs.js:799 +msgid "Music Blocks is an open source collection of tools for exploring musical concepts." msgstr "" -#: js/toolbar.js:145 -#: js/toolbar.js:148 -#: js/toolbar.js:200 -#: js/toolbar.js:203 -#: js/toolbar.js:255 -#: js/toolbar.js:258 -#: js/turtledefs.js:558 -msgid "Save turtle artwork as PNG" +#: js/turtledefs.js:801 +msgid "A full list of contributors can be found in the Music Blocks GitHub repository." msgstr "" -#: js/toolbar.js:147 -#: js/toolbar.js:202 -#: js/toolbar.js:257 -#: js/turtledefs.js:554 -msgid "Save turtle artwork as SVG" +#: js/turtledefs.js:803 +msgid "Music Blocks is licensed under the AGPL." msgstr "" -#: js/toolbar.js:154 -#: js/toolbar.js:209 -#: js/toolbar.js:264 -msgid "한국인" +#: js/turtledefs.js:811 +msgid "Music Blocks GitHub repository" msgstr "" -#: js/toolbar.js:171 -#: js/toolbar.js:227 -msgid "About Turtle Blocks" +#: js/turtledefs.js:815 +msgid "You have finished the tour. Please enjoy Music Blocks!" msgstr "" -#: js/toolbar.js:429 -#: js/toolbar.js:440 -msgid "Turtle Wrap Off" +#: js/turtles.js:882 +msgid "Grid" msgstr "" -#: js/toolbar.js:442 -msgid "Turtle Wrap On" +#: js/turtles.js:1024 +msgid "Expand" +msgstr "" + +#: js/block-verbose.js:1616 +#: js/block-verbose.js:1735 +#: js/block.js:1580 +#: js/block.js:1699 +#: js/palette.js:605 +#: js/blocks/IntervalsBlocks.js:63 +#: js/blocks/WidgetBlocks.js:259 +msgid "temperament" msgstr "" -#: js/block.js:1470 +#: js/block-verbose.js:1630 +#: js/block.js:1594 msgid "matrix" msgstr "" -#: js/block.js:1477 -#: js/WidgetBlocks.js:1226 +#: js/block-verbose.js:1637 +#: js/block.js:1601 +#: js/blocks/WidgetBlocks.js:1509 #: plugins/rodi.rtp:324 msgid "status" msgstr "" -#: js/block.js:1484 +#: js/block-verbose.js:1644 +#: js/block.js:1608 msgid "drum mapper" msgstr "" -#: js/block.js:1491 +#: js/block-verbose.js:1651 +#: js/block.js:1615 msgid "ruler" msgstr "" -#: js/block.js:1498 -#: js/WidgetBlocks.js:327 +#: js/block-verbose.js:1658 +#: js/block.js:1622 +#: js/blocks/WidgetBlocks.js:397 #.TRANS: timbre is the character or quality of a musical sound msgid "timbre" msgstr "" -#: js/block.js:1505 +#: js/block-verbose.js:1665 +#: js/block.js:1629 msgid "stair" msgstr "" -#: js/block.js:1512 -#: js/WidgetBlocks.js:577 +#: js/block-verbose.js:1672 +#: js/block.js:1636 +#: js/blocks/WidgetBlocks.js:707 #.TRANS: the speed at music is should be played. msgid "tempo" msgstr "" -#: js/block.js:1519 -#: js/block.js:1582 -#: js/IntervalsBlocks.js:1268 +#: js/block-verbose.js:1679 +#: js/block-verbose.js:1742 +#: js/block.js:1643 +#: js/block.js:1706 +#: js/blocks/IntervalsBlocks.js:1464 #.TRANS: mode, e.g., Major in C Major msgid "mode" msgstr "" -#: js/block.js:1526 +#: js/block-verbose.js:1686 +#: js/block.js:1650 msgid "slider" msgstr "" -#: js/block.js:1533 -#: js/SensorsBlocks.js:1001 +#: js/block-verbose.js:1693 +#: js/block.js:1657 +#: js/blocks/SensorsBlocks.js:1001 msgid "keyboard" msgstr "klávesnice" -#: js/block.js:1547 -#: js/WidgetBlocks.js:957 -#: js/WidgetBlocks.js:988 +#: js/block-verbose.js:1707 +#: js/block.js:1671 +#: js/blocks/WidgetBlocks.js:1190 +#: js/blocks/WidgetBlocks.js:1228 #.TRANS: widget for subdividing a measure into distinct rhythmic elements msgid "rhythm maker" msgstr "" -#: js/block.js:1554 -#: js/block.js:2182 -#: js/block.js:2236 -#: js/RhythmBlockPaletteBlocks.js:70 -#: js/RhythmBlockPaletteBlocks.js:251 -#: js/RhythmBlockPaletteBlocks.js:484 -#: js/RhythmBlockPaletteBlocks.js:553 -#: js/RhythmBlockPaletteBlocks.js:604 -#: js/RhythmBlockPaletteBlocks.js:874 -#: js/RhythmBlocks.js:33 -#: js/RhythmBlocks.js:356 -#: js/RhythmBlocks.js:766 -#: js/RhythmBlocks.js:806 -#: js/OrnamentBlocks.js:220 -#: js/OrnamentBlocks.js:312 -#: js/MeterBlocks.js:1367 -#: js/DictActions.js:85 -#: js/phrasemaker.js:731 -#: js/phrasemaker.js:2393 -#: js/phrasemaker.js:2436 -#: js/phrasemaker.js:2534 +#: js/block-verbose.js:1714 +#: js/block-verbose.js:2457 +#: js/block-verbose.js:2514 +#: js/block.js:1678 +#: js/block.js:2385 +#: js/block.js:2442 +#: js/blocks/MeterBlocks.js:1367 +#: js/blocks/OrnamentBlocks.js:220 +#: js/blocks/OrnamentBlocks.js:312 +#: js/blocks/RhythmBlocks.js:33 +#: js/blocks/RhythmBlocks.js:356 +#: js/blocks/RhythmBlocks.js:766 +#: js/blocks/RhythmBlocks.js:806 +#: js/blocks/RhythmBlockPaletteBlocks.js:70 +#: js/blocks/RhythmBlockPaletteBlocks.js:252 +#: js/blocks/RhythmBlockPaletteBlocks.js:485 +#: js/blocks/RhythmBlockPaletteBlocks.js:554 +#: js/blocks/RhythmBlockPaletteBlocks.js:605 +#: js/blocks/RhythmBlockPaletteBlocks.js:875 +#: js/turtleactions/DictActions.js:85 +#: js/widgets/phrasemaker.js:942 +#: js/widgets/phrasemaker.js:2656 +#: js/widgets/phrasemaker.js:2699 +#: js/widgets/phrasemaker.js:2810 #.TRANS: the value (e.g., 1/4 note) of the note being played. msgid "note value" msgstr "" -#: js/block.js:1561 -#: js/block.js:2110 -#: js/block.js:2133 -#: js/IntervalsBlocks.js:875 -#: js/OrnamentBlocks.js:312 +#: js/block-verbose.js:1721 +#: js/block-verbose.js:2382 +#: js/block-verbose.js:2405 +#: js/block.js:1685 +#: js/block.js:2310 +#: js/block.js:2333 +#: js/blocks/IntervalsBlocks.js:1071 +#: js/blocks/OrnamentBlocks.js:312 #.TRANS: calculate a relative step between notes based on semi-tones msgid "scalar interval" msgstr "" -#: js/block.js:1568 -#: js/RhythmBlocks.js:148 +#: js/block-verbose.js:1728 +#: js/block.js:1692 +#: js/blocks/RhythmBlocks.js:148 msgid "milliseconds" msgstr "" -#: js/block.js:2180 -#: js/block.js:2184 -#: js/block.js:2234 -#: js/block.js:2345 -#: js/ProgramBlocks.js:1273 -#: js/RhythmBlocks.js:712 -#: js/rhythmruler.js:834 -#: js/rhythmruler.js:961 +#: js/block-verbose.js:2455 +#: js/block-verbose.js:2459 +#: js/block-verbose.js:2512 +#: js/block-verbose.js:2628 +#: js/block.js:2383 +#: js/block.js:2387 +#: js/block.js:2440 +#: js/block.js:2556 +#: js/blocks/RhythmBlocks.js:712 +#: js/blocks/ProgramBlocks.js:1273 +#: js/widgets/rhythmruler.js:1183 +#: js/widgets/rhythmruler.js:1329 msgid "silence" msgstr "" -#: js/block.js:2265 -#: js/block.js:3134 -#: js/block.js:3151 -#: js/activity.js:2336 -#: js/activity.js:2387 -#: js/musicutils.js:2932 -#: js/musicutils.js:4287 +#: js/block-verbose.js:2548 +#: js/block-verbose.js:3492 +#: js/block-verbose.js:3509 +#: js/activity.js:2718 +#: js/activity.js:2769 +#: js/block.js:2476 +#: js/block.js:3416 +#: js/block.js:3433 +#: js/utils/musicutils.js:3780 +#: js/utils/musicutils.js:5273 +#.TRANS: the note names must be separated by single spaces #.TRANS: the note names must be separated by single spaces #.TRANS: the note names must be separated by single spaces msgid "ti la sol fa mi re do" msgstr "" -#: js/block.js:2333 +#: js/block-verbose.js:2616 +#: js/block.js:2544 +#.TRANS: scalar step #.TRANS: scalar step msgid "down" msgstr "" -#: js/block.js:2334 +#: js/block-verbose.js:2617 +#: js/block.js:2545 msgid "up" msgstr "" -#: js/block.js:3477 -#: js/block.js:3490 -#: js/ExtrasBlocks.js:612 +#: js/block-verbose.js:3026 +#: js/block.js:2950 +msgid "Silence block cannot be removed." +msgstr "" + +#: js/block-verbose.js:3824 +#: js/block.js:3748 +#: js/blocks.js:2607 +#: js/blocks.js:3218 +#: js/palette.js:618 +#: js/blocks/BooleanBlocks.js:77 +#: js/blocks/BooleanBlocks.js:167 +#: js/blocks/BooleanBlocks.js:251 +#: js/blocks/BooleanBlocks.js:335 +#: js/blocks/BooleanBlocks.js:433 +#: js/blocks/BooleanBlocks.js:539 +#: js/blocks/BooleanBlocks.js:640 +#: js/blocks/BooleanBlocks.js:741 +#: js/blocks/BooleanBlocks.js:847 +#: js/blocks/BooleanBlocks.js:948 +#: js/blocks/BooleanBlocks.js:1033 +#: js/blocks/SensorsBlocks.js:910 +msgid "true" +msgstr "" + +#: js/block-verbose.js:3824 +#: js/block.js:3748 +#: js/blocks.js:2609 +#: js/blocks.js:3220 +#: js/blocks/BooleanBlocks.js:79 +#: js/blocks/BooleanBlocks.js:169 +#: js/blocks/BooleanBlocks.js:253 +#: js/blocks/BooleanBlocks.js:337 +#: js/blocks/BooleanBlocks.js:435 +#: js/blocks/BooleanBlocks.js:541 +#: js/blocks/BooleanBlocks.js:642 +#: js/blocks/BooleanBlocks.js:743 +#: js/blocks/BooleanBlocks.js:849 +#: js/blocks/BooleanBlocks.js:950 +#: js/blocks/SensorsBlocks.js:912 +msgid "false" +msgstr "" + +#: js/block-verbose.js:3835 +#: js/block-verbose.js:3848 +#: js/block.js:3759 +#: js/block.js:3772 +#: js/blocks/ExtrasBlocks.js:615 msgid "Cartesian" msgstr "" -#: js/block.js:3478 -#: js/block.js:3491 -#: js/ExtrasBlocks.js:616 +#: js/block-verbose.js:3836 +#: js/block-verbose.js:3849 +#: js/block.js:3760 +#: js/block.js:3773 +#: js/blocks/ExtrasBlocks.js:619 msgid "polar" msgstr "" -#: js/block.js:3479 -#: js/block.js:3492 -#: js/ExtrasBlocks.js:620 +#: js/block-verbose.js:3837 +#: js/block-verbose.js:3850 +#: js/block.js:3761 +#: js/block.js:3774 +#: js/blocks/ExtrasBlocks.js:623 msgid "Cartesian+polar" msgstr "" -#: js/block.js:3480 -#: js/block.js:3499 -#: js/ExtrasBlocks.js:649 +#: js/block-verbose.js:3838 +#: js/block-verbose.js:3857 +#: js/block.js:3762 +#: js/block.js:3781 +#: js/blocks/ExtrasBlocks.js:652 msgid "none" msgstr "" -#: js/block.js:3493 -#: js/ExtrasBlocks.js:625 +#: js/block-verbose.js:3851 +#: js/block.js:3775 +#: js/blocks/ExtrasBlocks.js:628 msgid "treble" msgstr "" -#: js/block.js:3494 -#: js/ExtrasBlocks.js:629 +#: js/block-verbose.js:3852 +#: js/block.js:3776 +#: js/blocks/ExtrasBlocks.js:632 msgid "grand staff" msgstr "" -#: js/block.js:3495 -#: js/ExtrasBlocks.js:633 +#: js/block-verbose.js:3853 +#: js/block.js:3777 +#: js/blocks/ExtrasBlocks.js:636 msgid "mezzo-soprano" msgstr "" -#: js/block.js:3496 -#: js/ExtrasBlocks.js:637 +#: js/block-verbose.js:3854 +#: js/block.js:3778 +#: js/blocks/ExtrasBlocks.js:640 msgid "alto" msgstr "" -#: js/block.js:3497 -#: js/ExtrasBlocks.js:641 +#: js/block-verbose.js:3855 +#: js/block.js:3779 +#: js/blocks/ExtrasBlocks.js:644 msgid "tenor" msgstr "" -#: js/block.js:3498 -#: js/ExtrasBlocks.js:645 -#: js/musicutils.js:736 -#: js/synthutils.js:64 +#: js/block-verbose.js:3856 +#: js/block.js:3780 +#: js/utils/musicutils.js:1115 +#: js/utils/synthutils.js:80 +#: js/blocks/ExtrasBlocks.js:648 #.TRANS: musical instrument msgid "bass" msgstr "" -#: js/block.js:4075 +#: js/block-verbose.js:3901 +#: js/block.js:3825 +#: js/blocks.js:2600 +#: js/blocks.js:3211 +msgid "on2" +msgstr "" + +#: js/block-verbose.js:3903 +#: js/block.js:3827 +#: js/blocks.js:2602 +#: js/blocks.js:3213 +msgid "off" +msgstr "" + +#: js/block-verbose.js:4470 +#: js/block.js:4394 msgid "Not a number" msgstr "" -#: js/block.js:4082 +#: js/block-verbose.js:4477 +#: js/block.js:4401 msgid "Octave value must be between 1 and 10." msgstr "" -#: js/block.js:4090 +#: js/block-verbose.js:4485 +#: js/block.js:4409 msgid "Numbers can have at most 10 digits." msgstr "" -#: js/notation.js:353 -msgid "Lilypond cannot process pickup of " +#: js/activity.js:390 +#: js/activity.js:395 +msgid "Search for blocks" msgstr "" -#: js/turtledefs.js:40 -#.TRANS: put the URL to the guide here, e.g., https://github.com/sugarlabs/turtleblocksjs/tree/master/guide/README.md -msgid "guide url" +#: js/activity.js:1413 +msgid "Refresh your browser to change to advanced mode." msgstr "" -#: js/turtledefs.js:85 -#: js/turtledefs.js:437 -msgid "Turtle Blocks is a Logo-inspired turtle that draws colorful pictures with snap-together visual-programming blocks." +#: js/activity.js:1418 +msgid "Refresh your browser to change to beginner mode." msgstr "" -#: js/turtledefs.js:118 -#: js/turtledefs.js:220 -msgid "search" +#: js/activity.js:1477 +msgid "Catching mice" msgstr "" -#: js/turtledefs.js:120 -#: js/turtledefs.js:222 -#: js/WidgetBlocks.js:437 -#: js/MeterBlocks.js:1343 -#.TRANS: musical meter (time signature), e.g., 4:4 -msgid "meter" +#: js/activity.js:1478 +msgid "Cleaning the instruments" msgstr "" -#: js/turtledefs.js:122 -#: js/turtledefs.js:224 -msgid "intervals" +#: js/activity.js:1479 +msgid "Testing key pieces" +msgstr "" + +#: js/activity.js:1480 +msgid "Sight-reading" +msgstr "" + +#: js/activity.js:1481 +msgid "Combining math and music" +msgstr "" + +#: js/activity.js:1482 +msgid "Generating more blocks" +msgstr "" + +#: js/activity.js:1483 +msgid "Do Re Mi Fa Sol La Ti Do" +msgstr "" + +#: js/activity.js:1484 +msgid "Tuning string instruments" +msgstr "" + +#: js/activity.js:1485 +msgid "Pressing random keys" +msgstr "" + +#: js/activity.js:1663 +msgid "plugins will be removed upon restart." +msgstr "" + +#: js/activity.js:1672 +msgid "show Cartesian" +msgstr "" + +#: js/activity.js:2211 +#: js/palette.js:589 +#: js/blocks/RhythmBlocks.js:923 +#: js/blocks/PitchBlocks.js:442 +#: js/blocks/PitchBlocks.js:1786 +#.TRANS: a numeric mapping of the notes in an octave based on the musical mode +msgid "scale degree" +msgstr "" + +#: js/activity.js:2214 +#: js/palette.js:598 +msgid "voice name" +msgstr "" + +#: js/activity.js:2217 +#: js/palette.js:595 +msgid "invert mode" +msgstr "" + +#: js/activity.js:2220 +msgid "output tools" +msgstr "" + +#: js/activity.js:2223 +msgid "custom note" +msgstr "" + +#: js/activity.js:2226 +msgid "accidental name" +msgstr "" + +#: js/activity.js:2229 +#: js/blocks/PitchBlocks.js:855 +msgid "east indian solfege" +msgstr "" + +#: js/activity.js:2232 +#: js/blocks/PitchBlocks.js:869 +msgid "note name" +msgstr "" + +#: js/activity.js:2235 +#: js/blocks/IntervalsBlocks.js:94 +msgid "temperament name" +msgstr "" + +#: js/activity.js:2238 +#: js/palette.js:592 +msgid "mode name" +msgstr "" + +#: js/activity.js:2241 +msgid "chord name" +msgstr "" + +#: js/activity.js:2244 +#: js/palette.js:615 +msgid "interval name" +msgstr "" + +#: js/activity.js:2247 +msgid "filter type" +msgstr "" + +#: js/activity.js:2250 +msgid "oscillator type" +msgstr "" + +#: js/activity.js:2253 +#: js/blocks.js:2479 +#: js/blocks.js:2487 +msgid "audio file" +msgstr "" + +#: js/activity.js:2256 +#: js/blocks/DrumBlocks.js:32 +msgid "noise name" +msgstr "" + +#: js/activity.js:2259 +#: js/blocks/DrumBlocks.js:75 +msgid "drum name" +msgstr "" + +#: js/activity.js:2262 +#: js/blocks/DrumBlocks.js:119 +msgid "effects name" +msgstr "" + +#: js/activity.js:2265 +msgid "wrap mode" +msgstr "" + +#: js/activity.js:2268 +msgid "load file" +msgstr "" + +#: js/activity.js:2435 +#: js/activity.js:5851 +msgid "This block is deprecated." +msgstr "" + +#: js/activity.js:2437 +#: js/activity.js:5853 +msgid "Block cannot be found." +msgstr "" + +#: js/activity.js:2645 +msgid "Saving block artwork" +msgstr "" + +#: js/activity.js:2656 +msgid "Erase" +msgstr "" + +#: js/activity.js:2683 +#: js/activity.js:2705 +msgid "Paste" +msgstr "Vložit" + +#: js/activity.js:2687 +msgid "Save block help" +msgstr "" + +#: js/activity.js:2772 +msgid "Jumping to the bottom of the page." +msgstr "" + +#: js/activity.js:2778 +msgid "Scrolling up." +msgstr "" + +#: js/activity.js:2783 +msgid "Scrolling down." +msgstr "" + +#: js/activity.js:2788 +msgid "Extracting block" +msgstr "" + +#: js/activity.js:2796 +msgid "Moving block up." +msgstr "" + +#: js/activity.js:2817 +msgid "Moving block down." +msgstr "" + +#: js/activity.js:2838 +msgid "Moving block left." +msgstr "" + +#: js/activity.js:2855 +msgid "Moving block right." +msgstr "" + +#: js/activity.js:2870 +msgid "Jump to home position." +msgstr "" + +#: js/activity.js:2897 +msgid "Hide blocks" +msgstr "" + +#: js/activity.js:4500 +msgid "Click the run button to run the project." msgstr "" -#: js/turtledefs.js:124 -#: js/turtledefs.js:226 -msgid "ornament" +#: js/activity.js:5692 +msgid "Show/hide block" msgstr "" -#: js/turtledefs.js:125 -#: js/turtledefs.js:227 -#: js/VolumeBlocks.js:362 -#: js/VolumeBlocks.js:502 -#: js/VolumeBlocks.js:545 -msgid "volume" +#: js/activity.js:5698 +msgid "Expand/collapse blocks" msgstr "" -#: js/turtledefs.js:129 -#: js/turtledefs.js:231 -msgid "boxes" +#: js/activity.js:5976 +msgid "Could not parse JSON input." msgstr "" -#: js/turtledefs.js:130 -#: js/turtledefs.js:232 -msgid "widgets" +#: js/activity.js:6475 +#: js/activity.js:6580 +#: js/activity.js:6631 +msgid "Cannot load project from the file. Please check the file type." msgstr "" -#: js/turtledefs.js:131 -#: js/turtledefs.js:233 -#: js/phrasemaker.js:824 -msgid "graphics" +#: js/activity.js:6917 +msgid "Invalid parameters" msgstr "" -#: js/turtledefs.js:134 -#: js/turtledefs.js:236 -msgid "boolean" +#: js/blocks.js:1212 +#: js/blocks.js:3444 +#: js/blocks.js:3834 +#: js/blocks.js:3865 +#: js/blocks.js:3914 +#: js/blocks.js:3949 +#: js/blocks.js:6586 +#: js/palette.js:509 +#: js/palette.js:638 +#: js/palette.js:1105 +#: js/blocks/BoxesBlocks.js:282 +#: js/blocks/BoxesBlocks.js:285 +#: js/blocks/BoxesBlocks.js:405 +#: js/blocks/BoxesBlocks.js:594 +msgid "box" +msgstr "schránka" + +#: js/blocks.js:1713 +msgid "Consider breaking this stack into parts." msgstr "" -#: js/turtledefs.js:137 -#: js/turtledefs.js:239 -#: js/HeapBlocks.js:59 -#: js/status.js:147 -msgid "heap" +#: js/blocks.js:2472 +#: js/palette.js:653 +#: js/blocks/MediaBlocks.js:602 +msgid "open file" msgstr "" -#: js/turtledefs.js:138 -#: js/turtledefs.js:240 -#: js/ProgramBlocks.js:495 -#: js/DictBlocks.js:142 -msgid "dictionary" +#: js/blocks.js:3247 +#: js/palette.js:574 +#: js/blocks/MediaBlocks.js:892 +#: js/blocks/MediaBlocks.js:963 +msgid "text" +msgstr "text" + +#: js/blocks.js:3443 +#: js/palette.js:641 +#: js/palette.js:642 +#: js/blocks/BoxesBlocks.js:514 +msgid "store in box" msgstr "" -#: js/turtledefs.js:139 -#: js/turtledefs.js:241 -msgid "ensemble" +#: js/blocks.js:3448 +#: js/blocks.js:3888 +#: js/blocks.js:3923 +#: js/blocks.js:3958 +#: js/blocks.js:5862 +#: js/blocks.js:5883 +#: js/blocks/BoxesBlocks.js:772 +msgid "box1" msgstr "" -#: js/turtledefs.js:140 -#: js/turtledefs.js:242 -msgid "extras" +#: js/blocks.js:3450 +#: js/blocks.js:3890 +#: js/blocks.js:3925 +#: js/blocks.js:3960 +#: js/blocks.js:5864 +#: js/blocks.js:5885 +#: js/blocks/BoxesBlocks.js:663 +msgid "box2" msgstr "" -#: js/turtledefs.js:142 -#: js/turtledefs.js:244 -#.TRANS: program as in computer program -#.TRANS: program as in computer program -msgid "program" +#: js/blocks.js:4122 +#: js/palette.js:639 +#: js/palette.js:644 +#: js/palette.js:1041 +#: js/blocks/BoxesBlocks.js:591 +msgid "store in" msgstr "" -#: js/turtledefs.js:143 -#: js/turtledefs.js:245 -msgid "my blocks" +#: js/blocks.js:4122 +#: js/blocks/BoxesBlocks.js:595 +#: js/blocks/DictBlocks.js:215 +#: js/blocks/DictBlocks.js:289 +#: js/blocks/EnsembleBlocks.js:391 +#: js/blocks/EnsembleBlocks.js:402 +#: js/blocks/MediaBlocks.js:746 +#: js/blocks/PitchBlocks.js:656 +#: js/blocks/PitchBlocks.js:934 +#: js/blocks/PitchBlocks.js:1866 +#: js/blocks/ProgramBlocks.js:390 +#: js/blocks/ProgramBlocks.js:495 +#: js/blocks/ProgramBlocks.js:658 +#: js/blocks/ToneBlocks.js:1025 +msgid "name" msgstr "" -#: js/turtledefs.js:185 -#: js/turtledefs.js:281 -msgid "artwork" +#: js/blocks.js:4122 +#: js/blocks/BoxesBlocks.js:75 +#: js/blocks/BoxesBlocks.js:595 +#: js/blocks/DictBlocks.js:289 +#: js/blocks/DictBlocks.js:430 +#: js/blocks/HeapBlocks.js:544 +#: js/blocks/RhythmBlocks.js:1130 +msgid "value" +msgstr "hodnota" + +#: js/blocks.js:4465 +msgid "Forever loop detected inside a note value block. Unexpected things may happen." msgstr "" -#: js/turtledefs.js:185 -#: js/turtledefs.js:281 -msgid "logic" +#: js/blocks.js:4988 +msgid "There is no block selected." msgstr "" -#: js/turtledefs.js:185 -#: js/turtledefs.js:281 -msgid "music" +#: js/blocks.js:5091 +#: js/blocks/MediaBlocks.js:888 +msgid "show" +msgstr "ukázat" + +#: js/blocks.js:5094 +#: js/blocks/MediaBlocks.js:803 +#.TRANS: Avatar is the image used to determine the appearance of the mouse. +msgid "avatar" msgstr "" -#: js/turtledefs.js:187 -#: js/turtledefs.js:463 -msgid "Music Blocks is a collection of tools for exploring fundamental musical concepts in a fun way." +#: js/blocks.js:5097 +#: js/blocks/ToneBlocks.js:1010 +#: js/widgets/sampler.js:975 +#.TRANS: The sound sample that the user uploads. +msgid "sample" msgstr "" -#: js/turtledefs.js:436 -msgid "Welcome to Turtle Blocks" +#: js/lilypond.js:606 +msgid "brown rat" msgstr "" -#: js/turtledefs.js:438 -#: js/turtledefs.js:465 -#: js/turtledefs.js:774 -#: js/turtledefs.js:805 -msgid "The current version is" +#: js/lilypond.js:607 +msgid "mole" msgstr "" -#: js/turtledefs.js:446 -#: js/turtledefs.js:483 -msgid "Click the run button to run the project in fast mode." +#: js/lilypond.js:608 +msgid "chipmunk" msgstr "" -#: js/turtledefs.js:452 -msgid "Stop the turtle." +#: js/lilypond.js:609 +msgid "red squirrel" msgstr "" -#: js/turtledefs.js:454 -#: js/turtledefs.js:491 -msgid "You can also type Alt-S to stop." +#: js/lilypond.js:610 +msgid "guinea pig" msgstr "" -#: js/turtledefs.js:462 -#: js/help.js:333 -msgid "Welcome to Music Blocks" +#: js/lilypond.js:611 +msgid "capybara" msgstr "" -#: js/turtledefs.js:472 -#: js/help.js:334 -msgid "Meet Mr. Mouse!" +#: js/lilypond.js:612 +msgid "coypu" msgstr "" -#: js/turtledefs.js:473 -msgid "Mr Mouse is our Music Blocks conductor." +#: js/lilypond.js:613 +msgid "black rat" msgstr "" -#: js/turtledefs.js:475 -msgid "Mr Mouse encourages you to explore Music Blocks." +#: js/lilypond.js:614 +msgid "grey squirrel" msgstr "" -#: js/turtledefs.js:477 -msgid "Let us start our tour!" +#: js/lilypond.js:615 +msgid "flying squirrel" msgstr "" -#: js/turtledefs.js:489 -msgid "Stop the music (and the mice)." +#: js/lilypond.js:616 +msgid "bat" msgstr "" -#: js/turtledefs.js:499 -msgid "Record your project as video." +#: js/lilypond.js:749 +#: js/lilypond.js:913 +#: js/lilypond.js:951 +#: js/blocks/ActionBlocks.js:1256 +#: js/blocks/ExtrasBlocks.js:556 +msgid "start drum" msgstr "" -#: js/turtledefs.js:505 -msgid "Toggle Fullscreen mode." +#: js/logo.js:61 +msgid "Not a valid pitch name" msgstr "" -#: js/turtledefs.js:511 -msgid "Initialize a new project." +#: js/logo.js:507 +#: js/blocks/ProgramBlocks.js:258 +#: js/blocks/ProgramBlocks.js:427 +msgid "You must select a file." msgstr "" -#: js/turtledefs.js:517 -msgid "You can also load projects from the file system." +#: js/logo.js:1696 +msgid "Playback is ready." msgstr "" -#: js/turtledefs.js:522 -#: js/StringHelper.js:46 -msgid "Delete" +#: js/macros.js:711 +#: js/utils/musicutils.js:1162 +#: js/utils/synthutils.js:202 +#.TRANS: animal sound effect +msgid "duck" msgstr "" -#: js/turtledefs.js:523 -msgid "To delete a block, just right-click on it, then you will be able to see the delete option" +#: js/notation.js:353 +msgid "Lilypond cannot process pickup of " msgstr "" -#: js/turtledefs.js:528 -#: js/activity.js:2270 -#: js/LocalCard.js:31 -msgid "Copy" -msgstr "Kopírovat" +#: js/palette.js:571 +msgid "grid" +msgstr "" -#: js/turtledefs.js:529 -msgid "To copy a block, just right-click on it, then you will be able to see the copy option" +#: js/palette.js:580 +msgid "effect" msgstr "" -#: js/turtledefs.js:535 -msgid "To extract a block, just right-click on it, then you will be able to see the extract option" +#: js/palette.js:586 +msgid "sargam" msgstr "" -#: js/turtledefs.js:542 -#: js/turtledefs.js:552 -#: js/turtledefs.js:573 -msgid "Save your project to a file." +#: js/palette.js:601 +#: js/blocks/PitchBlocks.js:1209 +msgid "custom pitch" msgstr "" -#: js/turtledefs.js:549 -#: js/turtledefs.js:570 -msgid "save" +#: js/palette.js:609 +msgid "accidental" msgstr "" -#: js/turtledefs.js:556 -#: js/turtledefs.js:577 -msgid "Save graphics from your project to as SVG." +#: js/palette.js:633 +#: js/blocks/PitchBlocks.js:405 +msgid "pitch converter" msgstr "" -#: js/turtledefs.js:560 -#: js/turtledefs.js:581 -msgid "Save graphics from your project as PNG." +#: js/piemenus.js:200 +#: js/utils/musicutils.js:1187 +#: js/utils/musicutils.js:1207 +#: js/widgets/musickeyboard.js:2341 +#: js/widgets/phrasemaker.js:1908 +#: js/widgets/sampler.js:810 +#.TRANS: double sharp is a music term related to pitch +msgid "double sharp" msgstr "" -#: js/turtledefs.js:564 -#: js/turtledefs.js:597 -msgid "Save block artwork as an SVG file." +#: js/piemenus.js:201 +#: js/utils/musicutils.js:1185 +#: js/utils/musicutils.js:1208 +#: js/blocks/PitchBlocks.js:1539 +#: js/turtleactions/PitchActions.js:323 +#: js/widgets/musickeyboard.js:2342 +#: js/widgets/phrasemaker.js:1909 +#: js/widgets/sampler.js:811 +#.TRANS: sharp is a music term related to pitch +#.TRANS: sharp is a half-step up in pitch +msgid "sharp" msgstr "" -#: js/turtledefs.js:585 -msgid "Save audio from your project as WAV." +#: js/piemenus.js:202 +#: js/utils/musicutils.js:1183 +#: js/utils/musicutils.js:1209 +#: js/widgets/musickeyboard.js:2343 +#: js/widgets/phrasemaker.js:1910 +#: js/widgets/sampler.js:812 +#.TRANS: natural is a music term related to pitch +msgid "natural" msgstr "" -#: js/turtledefs.js:589 -msgid "Save your project to as an ABC file." +#: js/piemenus.js:203 +#: js/utils/musicutils.js:1181 +#: js/utils/musicutils.js:1210 +#: js/blocks/PitchBlocks.js:1498 +#: js/turtleactions/PitchActions.js:326 +#: js/widgets/musickeyboard.js:2344 +#: js/widgets/phrasemaker.js:1911 +#: js/widgets/sampler.js:813 +#.TRANS: flat is a music term related to pitch +#.TRANS: flat is a half-step down in pitch +msgid "flat" msgstr "" -#: js/turtledefs.js:593 -msgid "Save your project to as a Lilypond file." +#: js/piemenus.js:204 +#: js/utils/musicutils.js:1179 +#: js/utils/musicutils.js:1211 +#: js/widgets/musickeyboard.js:2345 +#: js/widgets/phrasemaker.js:1912 +#: js/widgets/sampler.js:814 +#.TRANS: double flat is a music term related to pitch +msgid "double flat" msgstr "" -#: js/turtledefs.js:604 -msgid "Load samples from server" +#: js/piemenus.js:2864 +#: js/utils/musicutils.js:1006 +#: js/blocks/PitchBlocks.js:1385 +#.TRANS: unison is a music term related to intervals +#.TRANS: unison means the note is the same as the current note +msgid "unison" msgstr "" -#: js/turtledefs.js:605 -msgid "This button opens a viewer for loading example projects." +#: js/piemenus.js:3018 +#: js/piemenus.js:3091 +#: js/utils/musicutils.js:1014 +#: js/utils/musicutils.js:1189 +#: js/utils/musicutils.js:1326 +#.TRANS: major is a music term related to intervals and mode +msgid "major" msgstr "" -#: js/turtledefs.js:611 -msgid "Palette buttons" +#: js/piemenus.js:3018 +#: js/piemenus.js:3091 +#: js/utils/musicutils.js:1032 +#.TRANS: modal scale for music +msgid "ionian" msgstr "" -#: js/turtledefs.js:612 -msgid "This toolbar contains the palette buttons including Rhythm Pitch Tone Action and more." +#: js/piemenus.js:3020 +#: js/piemenus.js:3095 +#: js/utils/musicutils.js:1012 +#: js/utils/musicutils.js:1190 +#: js/utils/musicutils.js:1323 +#.TRANS: minor is a music term related to intervals and mode +msgid "minor" msgstr "" -#: js/turtledefs.js:614 -msgid "Click to show the palettes of blocks and drag blocks from the palettes onto the canvas to use them." +#: js/piemenus.js:3020 +#: js/piemenus.js:3095 +#: js/utils/musicutils.js:1042 +#.TRANS: modal scale for music +msgid "aeolian" msgstr "" -#: js/turtledefs.js:620 -msgid "Cartesian/Polar" +#: js/piemenus.js:3410 +msgid "Duplicate" msgstr "" -#: js/turtledefs.js:621 -msgid "Show or hide a coordinate grid." +#: js/piemenus.js:3412 +msgid "Move to trash" msgstr "" -#: js/turtledefs.js:627 -msgid "Clear the screen and return the mice to their initial positions." +#: js/piemenus.js:3413 +#: js/widgets/timbre.js:968 +#: planet/js/StringHelper.js:69 +msgid "Close" msgstr "" -#: js/turtledefs.js:633 -msgid "Collapse the graphics window." +#: js/piemenus.js:3419 +msgid "Save stack" msgstr "" -#: js/turtledefs.js:638 -#: js/activity.js:4256 -#: js/activity.js:4256 -msgid "Home" +#: js/piemenus.js:3449 +msgid "In order to copy a sample, you must reload the widget, import the sample again, and export it." msgstr "" -#: js/turtledefs.js:639 -msgid "Return all blocks to the center of the screen." +#: js/piemenus.js:3812 +msgid "You have chosen key " msgstr "" -#: js/turtledefs.js:644 -msgid "Show/hide blocks" +#: js/piemenus.js:3816 +msgid " for your pitch preview." msgstr "" -#: js/turtledefs.js:645 -msgid "Hide or show the blocks and the palettes." +#: js/turtle-singer.js:1363 +#.TRANS: partials are weighted components in a harmonic series +msgid "You must have at least one Partial block inside of a Weighted-partial block" msgstr "" -#: js/turtledefs.js:650 -msgid "Expand/collapse collapsable blocks" +#: js/turtle-singer.js:2077 +msgid "synth cannot play chords." msgstr "" -#: js/turtledefs.js:651 -msgid "Expand or collapse start and action stacks." +#: js/utils/musicutils.js:505 +#: js/utils/musicutils.js:645 +#: js/widgets/pitchdrummatrix.js:228 +#: js/widgets/musickeyboard.js:2885 +msgid "rest" msgstr "" -#: js/turtledefs.js:658 -#: js/activity.js:4265 -msgid "Decrease block size" +#: js/utils/musicutils.js:689 +msgid "Perfect unison" msgstr "" -#: js/turtledefs.js:659 -msgid "Decrease the size of the blocks." +#: js/utils/musicutils.js:689 +msgid "Diminished second" msgstr "" -#: js/turtledefs.js:664 -#: js/activity.js:4267 -msgid "Increase block size" +#: js/utils/musicutils.js:690 +msgid "Minor second" msgstr "" -#: js/turtledefs.js:665 -msgid "Increase the size of the blocks." +#: js/utils/musicutils.js:690 +msgid "Augmented unison" msgstr "" -#: js/turtledefs.js:670 -msgid "Expand/collapse option toolbar" +#: js/utils/musicutils.js:691 +msgid "Major second" msgstr "" -#: js/turtledefs.js:671 -msgid "Click this button to expand or collapse the auxillary toolbar." +#: js/utils/musicutils.js:691 +msgid "Diminished third" msgstr "" -#: js/turtledefs.js:676 -msgid "Run slow" +#: js/utils/musicutils.js:692 +msgid "Minor third" msgstr "" -#: js/turtledefs.js:677 -msgid "Click to run the project in slow mode." +#: js/utils/musicutils.js:692 +msgid "Augmented second" msgstr "" -#: js/turtledefs.js:683 -msgid "Click to run the project step by step." +#: js/utils/musicutils.js:693 +msgid "Major third" msgstr "" -#: js/turtledefs.js:690 -msgid "Display statistics about your Music project." +#: js/utils/musicutils.js:693 +msgid "Diminished fourth" msgstr "" -#: js/turtledefs.js:697 -msgid "Delete a selected plugin." +#: js/utils/musicutils.js:694 +msgid "Perfect fourth" msgstr "" -#: js/turtledefs.js:704 -msgid "Enable scrolling" +#: js/utils/musicutils.js:694 +msgid "Augmented third" msgstr "" -#: js/turtledefs.js:705 -msgid "You can scroll the blocks on the canvas." +#: js/utils/musicutils.js:695 +msgid "Diminished fifth" msgstr "" -#: js/turtledefs.js:714 -msgid "Wrap Turtle" +#: js/utils/musicutils.js:695 +msgid "Augmented fourth" msgstr "" -#: js/turtledefs.js:715 -msgid "Turn Turtle wrapping On or Off." +#: js/utils/musicutils.js:696 +msgid "Perfect fifth" msgstr "" -#: js/turtledefs.js:725 -msgid "Restore blocks from the trash." +#: js/utils/musicutils.js:696 +msgid "Diminished sixth" msgstr "" -#: js/turtledefs.js:732 -msgid "Switch mode" +#: js/utils/musicutils.js:697 +msgid "Minor sixth" msgstr "" -#: js/turtledefs.js:733 -msgid "Switch between beginner and advance modes." +#: js/utils/musicutils.js:697 +msgid "Augmented fifth" msgstr "" -#: js/turtledefs.js:739 -msgid "Select your language preference." +#: js/utils/musicutils.js:698 +msgid "Major sixth" msgstr "" -#: js/turtledefs.js:745 -msgid "Keyboard shortcuts" +#: js/utils/musicutils.js:698 +msgid "Diminished seventh" msgstr "" -#: js/turtledefs.js:746 -msgid "You can type d to create a do block and r to create a re block etc." +#: js/utils/musicutils.js:699 +msgid "Minor seventh" msgstr "" -#: js/turtledefs.js:753 -msgid "Show these messages." +#: js/utils/musicutils.js:699 +msgid "Augmented sixth" msgstr "" -#: js/turtledefs.js:759 -#: js/turtledefs.js:790 -#: js/help.js:335 -msgid "Guide" +#: js/utils/musicutils.js:700 +msgid "Major seventh" msgstr "" -#: js/turtledefs.js:760 -msgid "A detailed guide to Turtle Blocks is available." +#: js/utils/musicutils.js:700 +msgid "Diminished octave" msgstr "" -#: js/turtledefs.js:764 -msgid "Turtle Blocks Guide" +#: js/utils/musicutils.js:701 +msgid "Perfect octave" msgstr "" -#: js/turtledefs.js:767 -#: js/turtledefs.js:798 -#: js/help.js:336 -msgid "About" +#: js/utils/musicutils.js:701 +msgid "Augmented seventh" msgstr "" -#: js/turtledefs.js:768 -msgid "Turtle Blocks is an open source collection of tools for exploring musical concepts." +#: js/utils/musicutils.js:702 +msgid "Minor ninth" msgstr "" -#: js/turtledefs.js:770 -msgid "A full list of contributors can be found in the Turtle Blocks GitHub repository." +#: js/utils/musicutils.js:702 +msgid "Augmented octave" msgstr "" -#: js/turtledefs.js:772 -msgid "Turtle Blocks is licensed under the AGPL." +#: js/utils/musicutils.js:703 +msgid "Major ninth" msgstr "" -#: js/turtledefs.js:780 -msgid "Turtle Blocks GitHub repository" +#: js/utils/musicutils.js:703 +msgid "Diminished tenth" msgstr "" -#: js/turtledefs.js:783 -#: js/turtledefs.js:814 -#: js/help.js:337 -#: js/help.js:359 -msgid "Congratulations." +#: js/utils/musicutils.js:704 +msgid "Minor tenth" msgstr "" -#: js/turtledefs.js:784 -msgid "You have finished the tour. Please enjoy Turtle Blocks!" +#: js/utils/musicutils.js:704 +msgid "Augmented ninth" msgstr "" -#: js/turtledefs.js:791 -msgid "A detailed guide to Music Blocks is available." +#: js/utils/musicutils.js:705 +msgid "Major tenth" msgstr "" -#: js/turtledefs.js:795 -#: js/SaveInterface.js:76 -msgid "Music Blocks Guide" +#: js/utils/musicutils.js:705 +msgid "Diminished eleventh" msgstr "" -#: js/turtledefs.js:799 -msgid "Music Blocks is an open source collection of tools for exploring musical concepts." +#: js/utils/musicutils.js:706 +msgid "Perfect eleventh" msgstr "" -#: js/turtledefs.js:801 -msgid "A full list of contributors can be found in the Music Blocks GitHub repository." +#: js/utils/musicutils.js:706 +msgid "Augmented tenth" msgstr "" -#: js/turtledefs.js:803 -msgid "Music Blocks is licensed under the AGPL." +#: js/utils/musicutils.js:707 +msgid "Diminished twelfth" msgstr "" -#: js/turtledefs.js:811 -msgid "Music Blocks GitHub repository" +#: js/utils/musicutils.js:707 +msgid "Augmented eleventh" msgstr "" -#: js/turtledefs.js:815 -msgid "You have finished the tour. Please enjoy Music Blocks!" +#: js/utils/musicutils.js:708 +msgid "Perfect twelfth" msgstr "" -#: js/activity.js:369 -msgid "Search for blocks" +#: js/utils/musicutils.js:708 +msgid "Diminished thirteenth" msgstr "" -#: js/activity.js:1145 -msgid "Refresh your browser to change to advanced mode." +#: js/utils/musicutils.js:709 +msgid "Minor thirteenth" msgstr "" -#: js/activity.js:1150 -msgid "Refresh your browser to change to beginner mode." +#: js/utils/musicutils.js:709 +msgid "Augmented fifth, plus an octave" msgstr "" -#: js/activity.js:1184 -msgid "Catching mice" +#: js/utils/musicutils.js:710 +msgid "Major thirteenth" msgstr "" -#: js/activity.js:1185 -msgid "Cleaning the instruments" +#: js/utils/musicutils.js:710 +msgid "Diminished seventh, plus an octave" msgstr "" -#: js/activity.js:1186 -msgid "Testing key pieces" +#: js/utils/musicutils.js:838 +#.TRANS: ordinal number. Please keep exactly one space between each number. +msgid "1st 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th" msgstr "" -#: js/activity.js:1187 -msgid "Sight-reading" +#: js/utils/musicutils.js:1008 +#: js/utils/musicutils.js:1191 +#: js/utils/musicutils.js:1325 +#.TRANS: augmented is a music term related to intervals +msgid "augmented" msgstr "" -#: js/activity.js:1188 -msgid "Combining math and music" +#: js/utils/musicutils.js:1010 +#: js/utils/musicutils.js:1192 +#: js/utils/musicutils.js:1324 +#.TRANS: diminished is a music term related to intervals and mode +msgid "diminished" msgstr "" -#: js/activity.js:1189 -msgid "Generating more blocks" +#: js/utils/musicutils.js:1016 +#: js/utils/musicutils.js:1322 +#: js/blocks/IntervalsBlocks.js:649 +#: js/turtleactions/IntervalsActions.js:120 +#: js/turtleactions/IntervalsActions.js:124 +#.TRANS: perfect is a music term related to intervals +msgid "perfect" msgstr "" -#: js/activity.js:1190 -msgid "Do Re Mi Fa Sol La Ti Do" +#: js/utils/musicutils.js:1018 +#.TRANS: twelve semi-tone scale for music +msgid "chromatic" msgstr "" -#: js/activity.js:1191 -msgid "Tuning string instruments" +#: js/utils/musicutils.js:1019 +msgid "algerian" msgstr "" -#: js/activity.js:1192 -msgid "Pressing random keys" +#: js/utils/musicutils.js:1020 +msgid "spanish" msgstr "" -#: js/activity.js:1351 -msgid "plugins will be removed upon restart." +#: js/utils/musicutils.js:1022 +#.TRANS: modal scale in music +msgid "octatonic" msgstr "" -#: js/activity.js:1360 -msgid "show Cartesian" +#: js/utils/musicutils.js:1024 +#.TRANS: harmonic major scale in music +msgid "harmonic major" msgstr "" -#: js/activity.js:1842 -msgid "output tools" +#: js/utils/musicutils.js:1026 +#.TRANS: natural minor scales in music +msgid "natural minor" msgstr "" -#: js/activity.js:1845 -msgid "custom note" +#: js/utils/musicutils.js:1028 +#.TRANS: harmonic minor scale in music +msgid "harmonic minor" msgstr "" -#: js/activity.js:1848 -msgid "accidental name" +#: js/utils/musicutils.js:1030 +#.TRANS: melodic minor scale in music +msgid "melodic minor" msgstr "" -#: js/activity.js:1851 -#: js/PitchBlocks.js:855 -msgid "east indian solfege" +#: js/utils/musicutils.js:1034 +#.TRANS: modal scale for music +msgid "dorian" msgstr "" -#: js/activity.js:1854 -#: js/PitchBlocks.js:869 -msgid "note name" +#: js/utils/musicutils.js:1036 +#.TRANS: modal scale for music +msgid "phrygian" msgstr "" -#: js/activity.js:1857 -#: js/IntervalsBlocks.js:94 -msgid "temperament name" +#: js/utils/musicutils.js:1038 +#.TRANS: modal scale for music +msgid "lydian" msgstr "" -#: js/activity.js:1863 -msgid "chord name" +#: js/utils/musicutils.js:1040 +#.TRANS: modal scale for music +msgid "mixolydian" msgstr "" -#: js/activity.js:1869 -msgid "filter type" +#: js/utils/musicutils.js:1044 +#.TRANS: modal scale for music +msgid "locrian" msgstr "" -#: js/activity.js:1872 -msgid "oscillator type" +#: js/utils/musicutils.js:1046 +#.TRANS: minor jazz scale for music +msgid "jazz minor" msgstr "" -#: js/activity.js:1878 -#: js/DrumBlocks.js:32 -msgid "noise name" +#: js/utils/musicutils.js:1048 +#.TRANS: bebop scale for music +msgid "bebop" msgstr "" -#: js/activity.js:1881 -#: js/DrumBlocks.js:75 -msgid "drum name" +#: js/utils/musicutils.js:1049 +msgid "arabic" msgstr "" -#: js/activity.js:1884 -#: js/DrumBlocks.js:119 -msgid "effects name" +#: js/utils/musicutils.js:1050 +msgid "byzantine" msgstr "" -#: js/activity.js:1887 -msgid "wrap mode" +#: js/utils/musicutils.js:1052 +#.TRANS: musical scale for music by Verdi +msgid "enigmatic" msgstr "" -#: js/activity.js:1890 -msgid "load file" +#: js/utils/musicutils.js:1053 +msgid "ethiopian" msgstr "" -#: js/activity.js:2056 -msgid "This block is deprecated." +#: js/utils/musicutils.js:1055 +#.TRANS: Ethiopic scale for music +msgid "geez" msgstr "" -#: js/activity.js:2058 -msgid "Block cannot be found." +#: js/utils/musicutils.js:1056 +msgid "hindu" msgstr "" -#: js/activity.js:2266 -msgid "Saving block artwork" +#: js/utils/musicutils.js:1057 +msgid "hungarian" msgstr "" -#: js/activity.js:2277 -msgid "Erase" +#: js/utils/musicutils.js:1059 +#.TRANS: minor Romanian scale for music +msgid "romanian minor" msgstr "" -#: js/activity.js:2301 -#: js/activity.js:2323 -msgid "Paste" -msgstr "Vložit" - -#: js/activity.js:2305 -msgid "Save block help" +#: js/utils/musicutils.js:1060 +msgid "spanish gypsy" msgstr "" -#: js/activity.js:2390 -msgid "Jumping to the bottom of the page." +#: js/utils/musicutils.js:1062 +#.TRANS: musical scale for Mid-Eastern music +msgid "maqam" msgstr "" -#: js/activity.js:2396 -msgid "Scrolling up." +#: js/utils/musicutils.js:1064 +#.TRANS: minor blues scale for music +msgid "minor blues" msgstr "" -#: js/activity.js:2401 -msgid "Scrolling down." +#: js/utils/musicutils.js:1066 +#.TRANS: major blues scale for music +msgid "major blues" msgstr "" -#: js/activity.js:2406 -msgid "Extracting block" +#: js/utils/musicutils.js:1067 +msgid "whole tone" msgstr "" -#: js/activity.js:2414 -msgid "Moving block up." +#: js/utils/musicutils.js:1069 +#.TRANS: pentatonic is a general term that means "five note scale". This scale is typically known as "minor pentatonic" +msgid "minor pentatonic" msgstr "" -#: js/activity.js:2435 -msgid "Moving block down." +#: js/utils/musicutils.js:1071 +#.TRANS: pentatonic is a general term that means "five note scale". This scale is typically known as "major pentatonic" +msgid "major pentatonic" msgstr "" -#: js/activity.js:2456 -msgid "Moving block left." +#: js/utils/musicutils.js:1072 +msgid "chinese" msgstr "" -#: js/activity.js:2473 -msgid "Moving block right." +#: js/utils/musicutils.js:1073 +msgid "egyptian" msgstr "" -#: js/activity.js:2488 -msgid "Jump to home position." +#: js/utils/musicutils.js:1075 +#.TRANS: https://en.wikipedia.org/wiki/Hirajoshi_scale NOTE: There are three different versions of this scale +msgid "hirajoshi" msgstr "" -#: js/activity.js:2515 -msgid "Hide blocks" +#: js/utils/musicutils.js:1076 +msgid "Japan" msgstr "" -#: js/activity.js:3389 -msgid "Click the run button to run the project." +#: js/utils/musicutils.js:1078 +#.TRANS: https://en.wikipedia.org/wiki/In_scale and https://en.wikipedia.org/wiki/Sakura_Sakura +msgid "in" msgstr "" -#: js/activity.js:3456 -#: js/SaveInterface.js:131 -#: js/SaveInterface.js:204 -#: js/SaveInterface.js:262 -#: js/SaveInterface.js:389 -#: js/SaveInterface.js:417 -#: js/ProjectStorage.js:27 -#: js/GlobalPlanet.js:467 -#: js/GlobalPlanet.js:469 -#: js/GlobalPlanet.js:495 -#.TRANS: default project title when saving as Lilypond -msgid "My Project" +#: js/utils/musicutils.js:1080 +#.TRANS: https://en.wikipedia.org/wiki/Miny%C5%8D_scale +msgid "minyo" msgstr "" -#: js/activity.js:4261 -msgid "Show/hide block" +#: js/utils/musicutils.js:1082 +#.TRANS: Italian mathematician +msgid "fibonacci" msgstr "" -#: js/activity.js:4263 -msgid "Expand/collapse blocks" +#: js/utils/musicutils.js:1083 +#: js/utils/musicutils.js:1134 +#: js/utils/musicutils.js:1177 +#: js/utils/musicutils.js:1199 +#: js/utils/synthutils.js:134 +#: js/blocks/IntervalsBlocks.js:1124 +#: js/blocks/ToneBlocks.js:946 +#: js/blocks/VolumeBlocks.js:411 +#: js/blocks/WidgetBlocks.js:399 +#: js/blocks/WidgetBlocks.js:404 +#: js/turtleactions/VolumeActions.js:218 +#: js/widgets/modewidget.js:919 +#.TRANS: customize voice +msgid "custom" msgstr "" -#: js/activity.js:4381 -msgid "Could not parse JSON input." +#: js/utils/musicutils.js:1085 +#: js/utils/musicutils.js:1531 +#: js/blocks/WidgetBlocks.js:176 +#.TRANS: highpass filter +msgid "highpass" msgstr "" -#: js/activity.js:4684 -#: js/activity.js:4771 -#: js/activity.js:4821 -msgid "Cannot load project from the file. Please check the file type." +#: js/utils/musicutils.js:1087 +#: js/utils/musicutils.js:1532 +#.TRANS: lowpass filter +msgid "lowpass" msgstr "" -#: js/activity.js:5051 -msgid "Invalid parameters" +#: js/utils/musicutils.js:1089 +#: js/utils/musicutils.js:1533 +#.TRANS: bandpass filter +msgid "bandpass" msgstr "" -#: js/turtle-singer.js:1334 -#.TRANS: partials are weighted components in a harmonic series -msgid "You must have at least one Partial block inside of a Weighted-partial block" +#: js/utils/musicutils.js:1091 +#: js/utils/musicutils.js:1534 +#.TRANS: high-shelf filter +msgid "highshelf" msgstr "" -#: js/turtle-singer.js:2048 -msgid "synth cannot play chords." +#: js/utils/musicutils.js:1093 +#: js/utils/musicutils.js:1535 +#.TRANS: low-shelf filter +msgid "lowshelf" msgstr "" -#: js/lilypond.js:614 -msgid "brown rat" +#: js/utils/musicutils.js:1095 +#: js/utils/musicutils.js:1536 +#.TRANS: notch-shelf filter +msgid "notch" msgstr "" -#: js/lilypond.js:615 -msgid "mole" +#: js/utils/musicutils.js:1097 +#: js/utils/musicutils.js:1537 +#.TRANS: all-pass filter +msgid "allpass" msgstr "" -#: js/lilypond.js:616 -msgid "chipmunk" +#: js/utils/musicutils.js:1099 +#: js/utils/musicutils.js:1538 +#.TRANS: peaking filter +msgid "peaking" msgstr "" -#: js/lilypond.js:617 -msgid "red squirrel" +#: js/utils/musicutils.js:1100 +#: js/utils/musicutils.js:1546 +#: js/utils/synthutils.js:126 +#: js/blocks/PitchBlocks.js:85 +#.TRANS: sine wave +msgid "sine" msgstr "" -#: js/lilypond.js:618 -msgid "guinea pig" +#: js/utils/musicutils.js:1101 +#: js/utils/musicutils.js:1547 +#: js/utils/synthutils.js:128 +#: js/blocks/PitchBlocks.js:39 +#.TRANS: square wave +msgid "square" msgstr "" -#: js/lilypond.js:619 -msgid "capybara" +#: js/utils/musicutils.js:1102 +#: js/utils/musicutils.js:1548 +#: js/utils/synthutils.js:132 +#: js/blocks/PitchBlocks.js:62 +#: js/blocks/ToneBlocks.js:39 +#.TRANS: triangle wave +msgid "triangle" msgstr "" -#: js/lilypond.js:620 -msgid "coypu" +#: js/utils/musicutils.js:1103 +#: js/utils/musicutils.js:1549 +#: js/utils/synthutils.js:130 +#: js/blocks/PitchBlocks.js:108 +#.TRANS: sawtooth wave +msgid "sawtooth" msgstr "" -#: js/lilypond.js:621 -msgid "black rat" +#: js/utils/musicutils.js:1105 +#: js/utils/musicutils.js:1312 +#: js/blocks/PitchBlocks.js:931 +#: js/blocks/PitchBlocks.js:937 +#: js/turtleactions/PitchActions.js:469 +#.TRANS: even numbers +#.TRANS: invert based on even or odd number or musical scale +msgid "even" msgstr "" -#: js/lilypond.js:622 -msgid "grey squirrel" +#: js/utils/musicutils.js:1107 +#: js/utils/musicutils.js:1313 +#: js/blocks/PitchBlocks.js:937 +#: js/turtleactions/PitchActions.js:471 +#.TRANS: odd numbers +msgid "odd" msgstr "" -#: js/lilypond.js:623 -msgid "flying squirrel" +#: js/utils/musicutils.js:1108 +#: js/utils/musicutils.js:1314 +#: js/blocks/PitchBlocks.js:937 +#: js/turtleactions/PitchActions.js:473 +msgid "scalar" msgstr "" -#: js/lilypond.js:624 -msgid "bat" +#: js/utils/musicutils.js:1109 +#: js/utils/synthutils.js:72 +#: js/blocks/VolumeBlocks.js:47 +#.TRANS: musical instrument +msgid "piano" msgstr "" -#: js/lilypond.js:757 -#: js/lilypond.js:921 -#: js/lilypond.js:959 -#: js/ActionBlocks.js:1256 -#: js/ExtrasBlocks.js:553 -msgid "start drum" +#: js/utils/musicutils.js:1110 +#: js/utils/synthutils.js:74 +#.TRANS: musical instrument +msgid "violin" msgstr "" -#: js/SaveInterface.js:59 -#: js/SaveInterface.js:61 -#: js/SaveInterface.js:93 -msgid "Music Blocks Project" +#: js/utils/musicutils.js:1111 +#: js/utils/synthutils.js:76 +#.TRANS: viola musical instrument +msgid "viola" msgstr "" -#: js/SaveInterface.js:63 -msgid "This project was created in Music Blocks" +#: js/utils/musicutils.js:1112 +#: js/utils/synthutils.js:114 +#.TRANS: xylophone musical instrument +msgid "xylophone" msgstr "" -#: js/SaveInterface.js:67 -msgid "Music Blocks is a Free/Libre Software application." +#: js/utils/musicutils.js:1113 +#: js/utils/synthutils.js:136 +#.TRANS: vibraphone musical instrument +msgid "vibraphone" msgstr "" -#: js/SaveInterface.js:69 -msgid "The source code can be accessed at" +#: js/utils/musicutils.js:1114 +#: js/utils/synthutils.js:78 +#.TRANS: musical instrument +msgid "cello" msgstr "" -#: js/SaveInterface.js:72 -msgid "For more information, please consult the" +#: js/utils/musicutils.js:1116 +#: js/utils/synthutils.js:82 +#.TRANS: viola musical instrument +msgid "double bass" msgstr "" -#: js/SaveInterface.js:83 -msgid "Alternatively, open the file in Music Blocks using the Load project button." +#: js/utils/musicutils.js:1117 +#: js/utils/synthutils.js:84 +#: js/widgets/rhythmruler.js:2511 +#.TRANS: musical instrument +msgid "guitar" msgstr "" -#: js/SaveInterface.js:85 -msgid "Project Code" +#: js/utils/musicutils.js:1118 +#: js/utils/synthutils.js:86 +#.TRANS: musical instrument +msgid "acoustic guitar" msgstr "" -#: js/SaveInterface.js:87 -msgid "This code stores data about the blocks in a project." +#: js/utils/musicutils.js:1119 +#: js/utils/synthutils.js:88 +#.TRANS: musical instrument +msgid "flute" msgstr "" -#: js/SaveInterface.js:89 -msgid "Show" +#: js/utils/musicutils.js:1120 +#: js/utils/synthutils.js:90 +#.TRANS: musical instrument +msgid "clarinet" msgstr "" -#: js/SaveInterface.js:91 -msgid "Hide" +#: js/utils/musicutils.js:1121 +#: js/utils/synthutils.js:92 +#.TRANS: musical instrument +msgid "saxophone" msgstr "" -#: js/SaveInterface.js:197 -#: js/SaveInterface.js:58 -msgid "No description provided" +#: js/utils/musicutils.js:1122 +#: js/utils/synthutils.js:94 +#.TRANS: musical instrument +msgid "tuba" msgstr "" -#: js/SaveInterface.js:332 -msgid "Your recording is in progress." +#: js/utils/musicutils.js:1123 +#: js/utils/synthutils.js:96 +#.TRANS: musical instrument +msgid "trumpet" msgstr "" -#: js/SaveInterface.js:401 -#.TRANS: File name prompt for save as Lilypond -msgid "File name" +#: js/utils/musicutils.js:1124 +#: js/utils/synthutils.js:98 +#.TRANS: musical instrument +msgid "oboe" msgstr "" -#: js/SaveInterface.js:403 -#: js/StringHelper.js:39 -#.TRANS: Project title prompt for save as Lilypond -msgid "Project title" +#: js/utils/musicutils.js:1125 +#: js/utils/synthutils.js:100 +#.TRANS: musical instrument +msgid "trombone" msgstr "" -#: js/SaveInterface.js:405 -#.TRANS: Project title prompt for save as Lilypond -msgid "Project author" +#: js/utils/musicutils.js:1126 +#: js/utils/synthutils.js:116 +#.TRANS: polytone synthesizer +msgid "electronic synth" msgstr "" -#: js/SaveInterface.js:407 -#.TRANS: MIDI prompt for save as Lilypond -msgid "Include MIDI output?" +#: js/utils/musicutils.js:1127 +#: js/utils/synthutils.js:118 +#.TRANS: simple monotone synthesizer +msgid "simple 1" msgstr "" -#: js/SaveInterface.js:409 -#.TRANS: Guitar prompt for save as Lilypond -msgid "Include guitar tablature output?" +#: js/utils/musicutils.js:1128 +msgid "simple 2" msgstr "" -#: js/SaveInterface.js:411 -#.TRANS: Lilypond is a scripting language for generating sheet music -msgid "Save as Lilypond" +#: js/utils/musicutils.js:1129 +msgid "simple 3" msgstr "" -#: js/SaveInterface.js:426 -#: js/EnsembleBlocks.js:75 -#: js/EnsembleBlocks.js:154 -#: js/EnsembleBlocks.js:216 -#: js/EnsembleBlocks.js:302 -#: js/EnsembleBlocks.js:348 -#: js/EnsembleBlocks.js:389 -#: js/EnsembleBlocks.js:441 -#: js/EnsembleBlocks.js:490 -#: js/EnsembleBlocks.js:536 -#: js/EnsembleBlocks.js:583 -#: js/EnsembleBlocks.js:637 -#: js/EnsembleBlocks.js:753 -#: js/EnsembleBlocks.js:840 -#: js/EnsembleBlocks.js:899 -#: js/EnsembleBlocks.js:942 -#: js/EnsembleBlocks.js:1212 -#: js/EnsembleBlocks.js:1280 -#.TRANS: default project author when saving as Lilypond -msgid "Mr. Mouse" +#: js/utils/musicutils.js:1130 +msgid "simple 4" msgstr "" -#: js/SaveInterface.js:573 -msgid "The Lilypond code is copied to clipboard. You can paste it here: " +#: js/utils/musicutils.js:1131 +#: js/utils/synthutils.js:58 +#: js/blocks/DrumBlocks.js:191 +#.TRANS: white noise synthesizer +msgid "white noise" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:50 -#: js/RhythmBlockPaletteBlocks.js:232 -#.TRANS: rhythm block -#.TRANS: translate "rhythm1" as rhythm -msgid "rhythm1" +#: js/utils/musicutils.js:1132 +#: js/utils/synthutils.js:60 +#.TRANS: brown noise synthesizer +msgid "brown noise" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:70 -#: js/RhythmBlockPaletteBlocks.js:251 -#: js/RhythmBlockPaletteBlocks.js:484 -#: js/RhythmBlockPaletteBlocks.js:553 -#: js/RhythmBlockPaletteBlocks.js:874 -msgid "number of notes" +#: js/utils/musicutils.js:1133 +#: js/utils/synthutils.js:62 +#.TRANS: pink noise synthesizer +msgid "pink noise" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:126 -msgid "polyphonic rhythm" +#: js/utils/musicutils.js:1135 +#: js/utils/synthutils.js:148 +#: js/widgets/rhythmruler.js:2057 +#: js/widgets/rhythmruler.js:2319 +#.TRANS: musical instrument +msgid "snare drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:218 -msgid "The Rhythm block is used to generate rhythm patterns." +#: js/utils/musicutils.js:1136 +#: js/utils/synthutils.js:150 +#.TRANS: musical instrument +msgid "kick drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:279 -msgid "1/64 note" +#: js/utils/musicutils.js:1137 +#: js/utils/synthutils.js:152 +#.TRANS: musical instrument +msgid "tom tom" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:303 -msgid "1/32 note" +#: js/utils/musicutils.js:1138 +#: js/utils/synthutils.js:154 +#.TRANS: musical instrument +msgid "floor tom" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:331 -msgid "1/16 note" +#: js/utils/musicutils.js:1139 +#: js/utils/synthutils.js:156 +#.TRANS: musical instrument +msgid "bass drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:359 -msgid "eighth note" +#: js/utils/musicutils.js:1140 +#: js/utils/synthutils.js:158 +#.TRANS: a drum made from an inverted cup +msgid "cup drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:387 -msgid "quarter note" +#: js/utils/musicutils.js:1141 +#: js/utils/synthutils.js:160 +#.TRANS: musical instrument +msgid "darbuka drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:415 -msgid "half note" +#: js/utils/musicutils.js:1142 +#: js/utils/synthutils.js:164 +#.TRANS: musical instrument +msgid "hi hat" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:443 -msgid "whole note" +#: js/utils/musicutils.js:1143 +#: js/utils/synthutils.js:166 +#.TRANS: a small metal bell +msgid "ride bell" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:481 -#: js/RhythmBlockPaletteBlocks.js:550 -#: js/RhythmBlockPaletteBlocks.js:601 -#.TRANS: A tuplet is a note value divided into irregular time values. -msgid "tuplet" +#: js/utils/musicutils.js:1144 +#: js/utils/synthutils.js:168 +#.TRANS: musical instrument +msgid "cow bell" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:767 -msgid "septuplet" +#: js/utils/musicutils.js:1145 +msgid "japanese drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:795 -msgid "quintuplet" +#: js/utils/musicutils.js:1146 +#: js/utils/synthutils.js:174 +#.TRANS: musical instrument +msgid "japanese bell" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:823 -msgid "triplet" +#: js/utils/musicutils.js:1147 +#: js/utils/synthutils.js:170 +#.TRANS: musical instrument +msgid "triangle bell" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:850 -msgid "simple tuplet" +#: js/utils/musicutils.js:1148 +#: js/utils/synthutils.js:172 +#.TRANS: musical instrument +msgid "finger cymbals" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:860 -msgid "Tuplets are a collection of notes that get scaled to a specific duration." +#: js/utils/musicutils.js:1149 +#: js/utils/synthutils.js:176 +#.TRANS: a musically tuned set of bells +msgid "chime" msgstr "" -#: js/WidgetBlocks.js:71 -#.TRANS: sound envelope (ADSR) -msgid "envelope" +#: js/utils/musicutils.js:1150 +#: js/utils/synthutils.js:178 +#.TRANS: a musical instrument +msgid "gong" msgstr "" -#: js/WidgetBlocks.js:79 -#.TRANS: Attack time is the time taken for initial run-up of level from nil to peak, beginning when the key is first pressed. -msgid "attack" +#: js/utils/musicutils.js:1151 +#: js/utils/synthutils.js:180 +#.TRANS: sound effect +msgid "clang" msgstr "" -#: js/WidgetBlocks.js:81 -#.TRANS: Decay time is the time taken for the subsequent run down from the attack level to the designated sustain level. -msgid "decay" +#: js/utils/musicutils.js:1152 +#: js/utils/synthutils.js:182 +#.TRANS: sound effect +msgid "crash" msgstr "" -#: js/WidgetBlocks.js:83 -#.TRANS: Sustain level is the level during the main sequence of the sound's duration, until the key is released. -msgid "sustain" +#: js/utils/musicutils.js:1153 +#: js/utils/synthutils.js:184 +#.TRANS: sound effect +msgid "bottle" msgstr "" -#: js/WidgetBlocks.js:85 -#.TRANS: Release time is the time taken for the level to decay from the sustain level to zero after the key is released. -msgid "release" +#: js/utils/musicutils.js:1154 +#: js/utils/synthutils.js:186 +#.TRANS: sound effect +msgid "clap" msgstr "" -#: js/WidgetBlocks.js:96 -msgid "Attack value should be from 0 to 100." +#: js/utils/musicutils.js:1155 +#: js/utils/synthutils.js:188 +#.TRANS: sound effect +msgid "slap" msgstr "" -#: js/WidgetBlocks.js:99 -msgid "Decay value should be from 0 to 100." +#: js/utils/musicutils.js:1156 +#: js/utils/synthutils.js:190 +#.TRANS: sound effect +msgid "splash" msgstr "" -#: js/WidgetBlocks.js:102 -msgid "Sustain value should be from 0 to 100." +#: js/utils/musicutils.js:1157 +#: js/utils/synthutils.js:192 +#.TRANS: sound effect +msgid "bubbles" msgstr "" -#: js/WidgetBlocks.js:105 -msgid "Release value should be from 0-100." +#: js/utils/musicutils.js:1158 +#: js/utils/synthutils.js:194 +#.TRANS: sound effect +msgid "raindrop" msgstr "" -#: js/WidgetBlocks.js:121 -msgid "You are adding multiple envelope blocks." +#: js/utils/musicutils.js:1159 +#: js/utils/synthutils.js:196 +#.TRANS: animal sound effect +msgid "cat" msgstr "" -#: js/WidgetBlocks.js:144 -#.TRANS: a filter removes some unwanted components from a signal -msgid "filter" +#: js/utils/musicutils.js:1160 +#: js/utils/synthutils.js:198 +#.TRANS: animal sound effect +msgid "cricket" msgstr "" -#: js/WidgetBlocks.js:149 -#: js/musicutils.js:706 -#: js/musicutils.js:1105 -#.TRANS: highpass filter -msgid "highpass" +#: js/utils/musicutils.js:1161 +#: js/utils/synthutils.js:200 +#.TRANS: animal sound effect +msgid "dog" msgstr "" -#: js/WidgetBlocks.js:152 -#: js/ToneBlocks.js:42 -#: js/timbre.js:1558 -#: js/timbre.js:1808 -#.TRANS: type of filter, e.g., lowpass, highpass, etc. -#.TRANS: there are different types (sine, triangle, square...) of oscillators. -msgid "type" +#: js/utils/musicutils.js:1163 +#: js/utils/synthutils.js:102 +#.TRANS: musical instrument +msgid "banjo" msgstr "" -#: js/WidgetBlocks.js:154 -#: js/timbre.js:1818 -#.TRANS: rolloff is the steepness of a change in frequency. -msgid "rolloff" +#: js/utils/musicutils.js:1164 +#: js/utils/synthutils.js:104 +#.TRANS: musical instrument +msgid "koto" msgstr "" -#: js/WidgetBlocks.js:155 -#: js/MediaBlocks.js:692 -#: js/temperament.js:382 -#: js/temperament.js:417 -#: js/temperament.js:477 -#: js/temperament.js:485 -#: js/temperament.js:1348 -#: js/timbre.js:1842 -msgid "frequency" +#: js/utils/musicutils.js:1165 +#: js/utils/synthutils.js:106 +#.TRANS: musical instrument +msgid "dulcimer" msgstr "" -#: js/WidgetBlocks.js:179 -#.TRANS: rolloff is the steepness of a change in frequency. -msgid "Rolloff value should be either -12, -24, -48, or -96 decibels/octave." +#: js/utils/musicutils.js:1166 +#: js/utils/synthutils.js:108 +#.TRANS: musical instrument +msgid "electric guitar" msgstr "" -#: js/WidgetBlocks.js:211 -msgid "The Temperament tool is used to define custom tuning." +#: js/utils/musicutils.js:1167 +#: js/utils/synthutils.js:110 +#.TRANS: musical instrument +msgid "bassoon" msgstr "" -#: js/WidgetBlocks.js:277 -#: js/sampler.js:329 -msgid "Upload a sample and adjust its pitch center." +#: js/utils/musicutils.js:1168 +#: js/utils/synthutils.js:112 +#.TRANS: musical instrument +msgid "celeste" msgstr "" -#: js/WidgetBlocks.js:284 -#.TRANS: the speed at music is should be played. -msgid "sampler" +#: js/utils/musicutils.js:1170 +#: js/widgets/temperament.js:787 +#.TRANS: musical temperament +msgid "equal" msgstr "" -#: js/WidgetBlocks.js:329 -#: js/WidgetBlocks.js:334 -#: js/IntervalsBlocks.js:928 -#: js/VolumeBlocks.js:411 -#: js/ToneBlocks.js:946 -#: js/VolumeActions.js:218 -#: js/musicutils.js:704 -#: js/musicutils.js:755 -#: js/musicutils.js:798 -#: js/musicutils.js:820 -#: js/musicutils.js:1136 -#: js/synthutils.js:118 -#: js/modewidget.js:919 -#.TRANS: customize voice -msgid "custom" +#: js/utils/musicutils.js:1172 +#.TRANS: musical temperament +msgid "Pythagorean" msgstr "" -#: js/WidgetBlocks.js:432 -msgid "The Meter block opens a tool to select strong beats for the meter." +#: js/utils/musicutils.js:1174 +#.TRANS: musical temperament +msgid "just intonation" msgstr "" -#: js/WidgetBlocks.js:473 -msgid "The oscilloscope block opens a tool to visualize waveforms." +#: js/utils/musicutils.js:1176 +#.TRANS: musical temperament +msgid "meantone" msgstr "" -#: js/WidgetBlocks.js:478 -msgid "oscilloscope" +#: js/utils/musicutils.js:1193 +msgid "major 7th" msgstr "" -#: js/WidgetBlocks.js:530 -msgid "The Custom mode block opens a tool to explore musical mode (the spacing of the notes in a scale)." +#: js/utils/musicutils.js:1194 +msgid "minor 7th" msgstr "" -#: js/WidgetBlocks.js:536 -#.TRANS: musical mode is the pattern of half-steps in an octave, e.g., Major or Minor modes -msgid "custom mode" +#: js/utils/musicutils.js:1195 +msgid "dominant 7th" msgstr "" -#: js/WidgetBlocks.js:570 -msgid "The Tempo block opens a metronome to visualize the beat." +#: js/utils/musicutils.js:1196 +msgid "minor-major 7th" msgstr "" -#: js/WidgetBlocks.js:617 -msgid "The Arpeggio Widget is used to compose chord sequences." +#: js/utils/musicutils.js:1197 +msgid "fully-diminished 7th" msgstr "" -#: js/WidgetBlocks.js:623 -#: js/IntervalsBlocks.js:683 -msgid "arpeggio" +#: js/utils/musicutils.js:1198 +msgid "half-diminished 7th" msgstr "" -#: js/WidgetBlocks.js:677 -msgid "The Pitch drum matrix is used to map pitches to drum sounds." +#: js/utils/musicutils.js:1557 +#: js/utils/musicutils.js:1569 +msgid "Equal (12EDO)" msgstr "" -#: js/WidgetBlocks.js:682 -#.TRANS: makes a mapping between pitches and drum sounds -msgid "pitch-drum mapper" +#: js/utils/musicutils.js:1558 +#: js/utils/musicutils.js:1570 +msgid "5-limit Just Intonation" msgstr "" -#: js/WidgetBlocks.js:724 -msgid "You must have at least one pitch block and one drum block in the matrix." +#: js/utils/musicutils.js:1559 +#: js/utils/musicutils.js:1571 +msgid "Pythagorean (3-limit JI)" msgstr "" -#: js/WidgetBlocks.js:746 -msgid "The Pitch slider tool to is used to generate pitches at selected frequencies." +#: js/utils/musicutils.js:1560 +#: js/utils/musicutils.js:1561 +#: js/utils/musicutils.js:1572 +#: js/utils/musicutils.js:1573 +msgid "Meantone" msgstr "" -#: js/WidgetBlocks.js:751 -#.TRANS: widget to generate pitches using a slider -msgid "pitch slider" +#: js/utils/musicutils.js:1574 +msgid "Custom" msgstr "" -#: js/WidgetBlocks.js:788 -msgid "chromatic keyboard" +#: js/utils/musicutils.js:5387 +#: js/utils/musicutils.js:5430 +msgid "current" msgstr "" -#: js/WidgetBlocks.js:815 -#: js/WidgetBlocks.js:874 -#.TRANS: widget to generate pitches using a slider -msgid "music keyboard" +#: js/utils/musicutils.js:5390 +#: js/utils/musicutils.js:5421 +msgid "next" msgstr "" -#: js/WidgetBlocks.js:859 -#: js/WidgetBlocks.js:866 -msgid "The Music keyboard block opens a piano keyboard that can be used to create notes." +#: js/utils/musicutils.js:5393 +#: js/utils/musicutils.js:5426 +msgid "previous" msgstr "" -#: js/WidgetBlocks.js:910 -msgid "The Pitch staircase tool to is used to generate pitches from a given ratio." +#: js/utils/synthutils.js:120 +#.TRANS: simple monotone synthesizer +msgid "simple-2" msgstr "" -#: js/WidgetBlocks.js:917 -#.TRANS: generate a progressive sequence of pitches -msgid "pitch staircase" +#: js/utils/synthutils.js:122 +#.TRANS: simple monotone synthesizer +msgid "simple-3" msgstr "" -#: js/WidgetBlocks.js:982 -msgid "The Rhythm Maker block opens a tool to create drum machines." +#: js/utils/synthutils.js:124 +#.TRANS: simple monotone synthesizer +msgid "simple-4" msgstr "" -#: js/WidgetBlocks.js:1036 -msgid "G major scale" +#: js/utils/synthutils.js:162 +#.TRANS: musical instrument +msgid "taiko" msgstr "" -#: js/WidgetBlocks.js:1064 -msgid "C major scale" +#: js/blocks/ActionBlocks.js:58 +msgid "The Return block will return a value from an action." msgstr "" -#: js/WidgetBlocks.js:1097 -msgid "The Phrase Maker block opens a tool to create musical phrases." +#: js/blocks/ActionBlocks.js:75 +msgid "return" msgstr "" -#: js/WidgetBlocks.js:1104 -#.TRANS: assigns pitch to a sequence of beats to generate a melody -msgid "phrase maker" +#: js/blocks/ActionBlocks.js:128 +msgid "The Return to URL block will return a value to a webpage." msgstr "" -#: js/WidgetBlocks.js:1168 -msgid "You must have at least one pitch block and one rhythm block in the matrix." +#: js/blocks/ActionBlocks.js:145 +msgid "return to URL" msgstr "" -#: js/WidgetBlocks.js:1220 -msgid "The Status block opens a tool for inspecting the status of Music Blocks as it is running." +#: js/blocks/ActionBlocks.js:233 +#: js/blocks/ActionBlocks.js:290 +#: js/blocks/ActionBlocks.js:501 +#: js/blocks/ActionBlocks.js:688 +msgid "The Calculate block returns a value calculated by an action." msgstr "" -#: js/IntervalsBlocks.js:45 -msgid "set temperament" +#: js/blocks/ActionBlocks.js:251 +#: js/blocks/ActionBlocks.js:517 +#: js/blocks/ActionBlocks.js:707 +msgid "calculate" msgstr "" -#: js/IntervalsBlocks.js:63 -#: js/MediaBlocks.js:746 -#: js/PitchBlocks.js:657 -#: js/PitchBlocks.js:933 -#: js/PitchBlocks.js:972 -#: js/PitchBlocks.js:1005 -#: js/PitchBlocks.js:1166 -#: js/PitchBlocks.js:1679 -#: js/PitchBlocks.js:1720 -#: js/PitchBlocks.js:1827 -#: js/ToneBlocks.js:1025 -#.TRANS: adjusts the shift up or down by one octave (twelve half-steps in the interval between two notes, one having twice or half the frequency in Hz of the other.) -msgid "octave" +#: js/blocks/ActionBlocks.js:376 +#: js/blocks/ActionBlocks.js:593 +#: js/blocks/ActionBlocks.js:942 +#: js/blocks/ActionBlocks.js:1389 +#.TRANS: do is the do something or take an action. +msgid "The Do block is used to initiate an action." msgstr "" -#: js/IntervalsBlocks.js:99 -msgid "The Temperament name block is used to select a tuning method." +#: js/blocks/ActionBlocks.js:390 +#: js/blocks/ActionBlocks.js:610 +#: js/blocks/ActionBlocks.js:959 +#: js/blocks/ActionBlocks.js:1048 +#: js/blocks/MeterBlocks.js:769 +msgid "do1" msgstr "" -#: js/IntervalsBlocks.js:161 -msgid "doubly" +#: js/blocks/ActionBlocks.js:390 +#: js/blocks/ActionBlocks.js:610 +#: js/blocks/ActionBlocks.js:959 +#: js/blocks/ActionBlocks.js:1048 +#: js/blocks/FlowBlocks.js:742 +#: js/blocks/FlowBlocks.js:822 +#: js/blocks/MeterBlocks.js:769 +msgid "do" msgstr "" -#: js/IntervalsBlocks.js:166 -msgid "The Doubly block will double the size of an interval." +#: js/blocks/ActionBlocks.js:791 +#: js/blocks/ActionBlocks.js:865 +msgid "The Arg block contains the value of an argument passed to an action." msgstr "" -#: js/IntervalsBlocks.js:262 -msgid "interval number" +#: js/blocks/ActionBlocks.js:806 +#: js/blocks/ActionBlocks.js:878 +msgid "arg" msgstr "" -#: js/IntervalsBlocks.js:330 -#.TRANS: measure the distance between two pitches in semi-tones -msgid "semi-tone interval measure" +#: js/blocks/ActionBlocks.js:836 +#: js/blocks/ActionBlocks.js:900 +#: js/blocks/ActionBlocks.js:908 +msgid "Invalid argument" msgstr "" -#: js/IntervalsBlocks.js:397 -#: js/IntervalsBlocks.js:513 -msgid "You must use two pitch blocks when measuring an interval." +#: js/blocks/ActionBlocks.js:944 +msgid "In the example, it is used with the One of block to choose a random phase." msgstr "" -#: js/IntervalsBlocks.js:439 -msgid "The Scalar interval block measures the distance between two notes in the current key and mode." +#: js/blocks/ActionBlocks.js:1019 +#: js/blocks/ActionBlocks.js:1026 +msgid "The Listen block is used to listen for an event such as a mouse click." msgstr "" -#: js/IntervalsBlocks.js:445 -#.TRANS: measure the distance between two pitches in steps of musical scale -msgid "scalar interval measure" +#: js/blocks/ActionBlocks.js:1028 +msgid "When the event happens, an action is taken." msgstr "" -#: js/IntervalsBlocks.js:592 -#: js/musicutils.js:637 -#: js/musicutils.js:908 -#.TRANS: perfect is a music term related to intervals -msgid "perfect" +#: js/blocks/ActionBlocks.js:1045 +msgid "on" msgstr "" -#: js/IntervalsBlocks.js:621 -msgid "In the figure, we add sol# to sol." +#: js/blocks/ActionBlocks.js:1048 +#: js/blocks/ActionBlocks.js:1049 +#: js/blocks/ActionBlocks.js:1153 +msgid "event" msgstr "" -#: js/IntervalsBlocks.js:627 -#: js/OrnamentBlocks.js:220 -#.TRANS: calculate a relative step between notes based on semi-tones -msgid "semi-tone interval" +#: js/blocks/ActionBlocks.js:1133 +msgid "The Broadcast block is used to trigger an event." msgstr "" -#: js/IntervalsBlocks.js:676 -msgid "The output of the example is: do, mi, sol, sol, ti, mi" +#: js/blocks/ActionBlocks.js:1151 +msgid "broadcast" msgstr "" -#: js/IntervalsBlocks.js:735 -msgid "The Chord block calculates common chords." +#: js/blocks/ActionBlocks.js:1208 +msgid "Each Start block is a separate voice." msgstr "" -#: js/IntervalsBlocks.js:737 -msgid "In the figure, we generate a C-major chord." +#: js/blocks/ActionBlocks.js:1304 +msgid "It is often used for storing a phrase of music that is repeated." msgstr "" -#: js/IntervalsBlocks.js:742 -msgid "chord" +#: js/blocks/ActionBlocks.js:1495 +msgid "define temperament" msgstr "" -#: js/IntervalsBlocks.js:794 -msgid "The Ratio Interval block calculates an interval based on a ratio." +#: js/blocks/BooleanBlocks.js:44 +msgid "The Not block is the logical not operator." msgstr "" -#: js/IntervalsBlocks.js:799 -msgid "ratio interval" +#: js/blocks/BooleanBlocks.js:62 +msgid "not" +msgstr "ne" + +#: js/blocks/BooleanBlocks.js:134 +msgid "The And block is the logical and operator." msgstr "" -#: js/IntervalsBlocks.js:868 -msgid "In the figure, we add la to sol." +#: js/blocks/BooleanBlocks.js:152 +msgid "and" +msgstr "a" + +#: js/blocks/BooleanBlocks.js:218 +msgid "The Or block is the logical or operator." msgstr "" -#: js/IntervalsBlocks.js:924 -#.TRANS: define a custom mode -msgid "define mode" +#: js/blocks/BooleanBlocks.js:236 +msgid "or" +msgstr "nebo" + +#: js/blocks/BooleanBlocks.js:302 +msgid "The XOR block is the logical XOR operator." msgstr "" -#: js/IntervalsBlocks.js:977 -msgid "movable Do" +#: js/blocks/BooleanBlocks.js:320 +msgid "xor" msgstr "" -#: js/IntervalsBlocks.js:1028 -#.TRANS: mode length is the number of notes in the mode, e.g., 7 for major and minor scales; 12 for chromatic scales -msgid "mode length" +#: js/blocks/BooleanBlocks.js:808 +msgid "The Equal block returns True if the two numbers are equal." msgstr "" -#: js/IntervalsBlocks.js:1037 -msgid "The Mode length block is the number of notes in the current scale." +#: js/blocks/BooleanBlocks.js:909 +msgid "The Not-equal-to block returns True if the two numbers are not equal to each other." msgstr "" -#: js/IntervalsBlocks.js:1039 -msgid "Most Western scales have 7 notes." +#: js/blocks/BooleanBlocks.js:1008 +msgid "The Boolean block is used to specify true or false." msgstr "" -#: js/IntervalsBlocks.js:1088 -#.TRANS: the mode in music is 'major', 'minor', etc. -msgid "current mode" +#: js/blocks/BoxesBlocks.js:53 +#: js/blocks/BoxesBlocks.js:59 +msgid "The Add-to block is used to add to the value stored in a box." msgstr "" -#: js/IntervalsBlocks.js:1141 -#.TRANS: the key is a group of pitches with which a music composition is created -msgid "current key" +#: js/blocks/BoxesBlocks.js:61 +msgid "It can also be used with other blocks such as Color and Pen size." msgstr "" -#: js/IntervalsBlocks.js:1193 -#: js/IntervalsBlocks.js:1238 -#.TRANS: set the key and mode, e.g. C Major -msgid "set key" +#: js/blocks/BoxesBlocks.js:73 +msgid "add" msgstr "" -#: js/IntervalsBlocks.js:1247 -#: js/IntervalsBlocks.js:1253 -msgid "The Set key block is used to set the key and mode," +#: js/blocks/BoxesBlocks.js:75 +#: js/widgets/temperament.js:857 +msgid "to" msgstr "" -#: js/IntervalsBlocks.js:1253 -msgid "eg C Major" +#: js/blocks/BoxesBlocks.js:75 +#: js/blocks/BoxesBlocks.js:595 +#: js/blocks/HeapBlocks.js:544 +msgid "value1" msgstr "" -#: js/IntervalsBlocks.js:1266 -#: js/DictBlocks.js:215 -#: js/DictBlocks.js:216 -#: js/DictBlocks.js:289 -#: js/DictBlocks.js:290 -#: js/DictBlocks.js:357 -#: js/DictBlocks.js:430 -#: js/DictBlocks.js:431 -#.TRANS: key, e.g., C in C Major -msgid "key" +#: js/blocks/BoxesBlocks.js:118 +msgid "Block does not support incrementing." msgstr "" -#: js/ActionBlocks.js:58 -msgid "The Return block will return a value from an action." +#: js/blocks/BoxesBlocks.js:152 +msgid "The Add-1-to block adds one to the value stored in a box." msgstr "" -#: js/ActionBlocks.js:75 -msgid "return" +#: js/blocks/BoxesBlocks.js:163 +msgid "add 1 to" msgstr "" -#: js/ActionBlocks.js:128 -msgid "The Return to URL block will return a value to a webpage." +#: js/blocks/BoxesBlocks.js:211 +msgid "The Subtract-1-from block subtracts one from the value stored in a box." msgstr "" -#: js/ActionBlocks.js:145 -msgid "return to URL" +#: js/blocks/BoxesBlocks.js:222 +msgid "subtract 1 from" msgstr "" -#: js/ActionBlocks.js:233 -#: js/ActionBlocks.js:290 -#: js/ActionBlocks.js:501 -#: js/ActionBlocks.js:688 -msgid "The Calculate block returns a value calculated by an action." +#: js/blocks/BoxesBlocks.js:270 +#: js/blocks/BoxesBlocks.js:387 +msgid "The Box block returns the value stored in a box." msgstr "" -#: js/ActionBlocks.js:251 -#: js/ActionBlocks.js:517 -#: js/ActionBlocks.js:707 -msgid "calculate" +#: js/blocks/BoxesBlocks.js:500 +#: js/blocks/BoxesBlocks.js:576 +msgid "The Store in block will store a value in a box." msgstr "" -#: js/ActionBlocks.js:376 -#: js/ActionBlocks.js:593 -#: js/ActionBlocks.js:942 -#: js/ActionBlocks.js:1389 -#.TRANS: do is the do something or take an action. -msgid "The Do block is used to initiate an action." +#: js/blocks/BoxesBlocks.js:595 +#: js/blocks/EnsembleBlocks.js:391 +#: js/blocks/EnsembleBlocks.js:402 +msgid "name1" msgstr "" -#: js/ActionBlocks.js:390 -#: js/ActionBlocks.js:610 -#: js/ActionBlocks.js:959 -#: js/ActionBlocks.js:1048 -#: js/MeterBlocks.js:769 -msgid "do1" +#: js/blocks/BoxesBlocks.js:652 +msgid "The Box2 block returns the value stored in Box2." msgstr "" -#: js/ActionBlocks.js:390 -#: js/ActionBlocks.js:610 -#: js/ActionBlocks.js:959 -#: js/ActionBlocks.js:1048 -#: js/FlowBlocks.js:742 -#: js/FlowBlocks.js:822 -#: js/MeterBlocks.js:769 -msgid "do" +#: js/blocks/BoxesBlocks.js:703 +msgid "The Store in Box2 block is used to store a value in Box2." msgstr "" -#: js/ActionBlocks.js:791 -#: js/ActionBlocks.js:865 -msgid "The Arg block contains the value of an argument passed to an action." +#: js/blocks/BoxesBlocks.js:715 +msgid "store in box2" msgstr "" -#: js/ActionBlocks.js:806 -#: js/ActionBlocks.js:878 -msgid "arg" +#: js/blocks/BoxesBlocks.js:761 +msgid "The Box1 block returns the value stored in Box1." msgstr "" -#: js/ActionBlocks.js:836 -#: js/ActionBlocks.js:900 -#: js/ActionBlocks.js:908 -msgid "Invalid argument" +#: js/blocks/BoxesBlocks.js:812 +msgid "The Store in Box1 block is used to store a value in Box1." msgstr "" -#: js/ActionBlocks.js:944 -msgid "In the example, it is used with the One of block to choose a random phase." +#: js/blocks/BoxesBlocks.js:826 +msgid "store in box1" msgstr "" -#: js/ActionBlocks.js:1019 -#: js/ActionBlocks.js:1026 -msgid "The Listen block is used to listen for an event such as a mouse click." +#: js/blocks/DictBlocks.js:77 +msgid "show dictionary" msgstr "" -#: js/ActionBlocks.js:1028 -msgid "When the event happens, an action is taken." +#: js/blocks/DictBlocks.js:80 +#: js/blocks/DictBlocks.js:145 +#: js/blocks/DictBlocks.js:216 +#: js/blocks/DictBlocks.js:290 +#: js/blocks/ProgramBlocks.js:396 +#: js/blocks/ProgramBlocks.js:501 +#: js/blocks/ProgramBlocks.js:664 +msgid "My Dictionary" msgstr "" -#: js/ActionBlocks.js:1045 -msgid "on" +#: js/blocks/DictBlocks.js:129 +msgid "The Dictionary block returns a dictionary." msgstr "" -#: js/ActionBlocks.js:1048 -#: js/ActionBlocks.js:1049 -#: js/ActionBlocks.js:1153 -msgid "event" +#: js/blocks/DictBlocks.js:197 +#: js/blocks/DictBlocks.js:339 +msgid "The Get-dict block returns a value in the dictionary for a specified key." msgstr "" -#: js/ActionBlocks.js:1133 -msgid "The Broadcast block is used to trigger an event." +#: js/blocks/DictBlocks.js:212 +#: js/blocks/DictBlocks.js:354 +#.TRANS: retrieve a value from the dictionary with a given key +msgid "get value" msgstr "" -#: js/ActionBlocks.js:1151 -msgid "broadcast" +#: js/blocks/DictBlocks.js:215 +#: js/blocks/DictBlocks.js:216 +#: js/blocks/DictBlocks.js:289 +#: js/blocks/DictBlocks.js:290 +#: js/blocks/DictBlocks.js:357 +#: js/blocks/DictBlocks.js:430 +#: js/blocks/DictBlocks.js:431 +msgid "key2" msgstr "" -#: js/ActionBlocks.js:1208 -msgid "Each Start block is a separate voice." +#: js/blocks/DictBlocks.js:215 +#: js/blocks/DictBlocks.js:216 +#: js/blocks/DictBlocks.js:289 +#: js/blocks/DictBlocks.js:290 +#: js/blocks/DictBlocks.js:357 +#: js/blocks/DictBlocks.js:430 +#: js/blocks/DictBlocks.js:431 +#: js/blocks/IntervalsBlocks.js:1462 +#.TRANS: key, e.g., C in C Major +msgid "key" msgstr "" -#: js/ActionBlocks.js:1304 -msgid "It is often used for storing a phrase of music that is repeated." +#: js/blocks/DictBlocks.js:271 +#: js/blocks/DictBlocks.js:411 +msgid "The Set-dict block sets a value in the dictionary for a specified key." msgstr "" -#: js/ActionBlocks.js:1495 -msgid "define temperament" +#: js/blocks/DictBlocks.js:286 +#: js/blocks/DictBlocks.js:427 +#.TRANS: set a value in the dictionary for a given key +msgid "set value" msgstr "" -#: js/EnsembleBlocks.js:66 +#: js/blocks/EnsembleBlocks.js:66 msgid "mouse index heap" msgstr "" -#: js/EnsembleBlocks.js:68 +#: js/blocks/EnsembleBlocks.js:68 msgid "The Mouse index heap block returns a value in the heap at a specified location for a specified mouse." msgstr "" -#: js/EnsembleBlocks.js:77 -#: js/EnsembleBlocks.js:1080 +#: js/blocks/EnsembleBlocks.js:77 +#: js/blocks/EnsembleBlocks.js:1080 msgid "mouse name" msgstr "" -#: js/EnsembleBlocks.js:77 -#: js/EnsembleBlocks.js:92 -#: js/HeapBlocks.js:544 +#: js/blocks/EnsembleBlocks.js:77 +#: js/blocks/EnsembleBlocks.js:92 +#: js/blocks/HeapBlocks.js:544 #.TRANS: value1 is a numeric value (JAPANESE ONLY) msgid "index" msgstr "" -#: js/EnsembleBlocks.js:80 +#: js/blocks/EnsembleBlocks.js:80 msgid "turtle index heap" msgstr "" -#: js/EnsembleBlocks.js:82 +#: js/blocks/EnsembleBlocks.js:82 msgid "The Turtle index heap block returns a value in the heap at a specified location for a specified turtle." msgstr "" -#: js/EnsembleBlocks.js:90 -#: js/EnsembleBlocks.js:167 -#: js/EnsembleBlocks.js:230 -#: js/EnsembleBlocks.js:316 -#: js/EnsembleBlocks.js:362 -#: js/EnsembleBlocks.js:400 -#: js/EnsembleBlocks.js:454 -#: js/EnsembleBlocks.js:504 -#: js/EnsembleBlocks.js:550 -#: js/EnsembleBlocks.js:597 -#: js/EnsembleBlocks.js:651 -#: js/EnsembleBlocks.js:763 -#: js/EnsembleBlocks.js:854 -#: js/EnsembleBlocks.js:915 -#: js/EnsembleBlocks.js:955 -#: js/EnsembleBlocks.js:1219 -#: js/EnsembleBlocks.js:1293 +#: js/blocks/EnsembleBlocks.js:90 +#: js/blocks/EnsembleBlocks.js:167 +#: js/blocks/EnsembleBlocks.js:230 +#: js/blocks/EnsembleBlocks.js:316 +#: js/blocks/EnsembleBlocks.js:362 +#: js/blocks/EnsembleBlocks.js:400 +#: js/blocks/EnsembleBlocks.js:454 +#: js/blocks/EnsembleBlocks.js:504 +#: js/blocks/EnsembleBlocks.js:550 +#: js/blocks/EnsembleBlocks.js:597 +#: js/blocks/EnsembleBlocks.js:651 +#: js/blocks/EnsembleBlocks.js:763 +#: js/blocks/EnsembleBlocks.js:854 +#: js/blocks/EnsembleBlocks.js:915 +#: js/blocks/EnsembleBlocks.js:955 +#: js/blocks/EnsembleBlocks.js:1219 +#: js/blocks/EnsembleBlocks.js:1293 #.TRANS: Yertle is the name of a turtle. msgid "Yertle" msgstr "" -#: js/EnsembleBlocks.js:92 -#: js/EnsembleBlocks.js:1089 +#: js/blocks/EnsembleBlocks.js:92 +#: js/blocks/EnsembleBlocks.js:1089 msgid "turtle name" msgstr "" -#: js/EnsembleBlocks.js:122 -#: js/EnsembleBlocks.js:1197 -#: js/HeapBlocks.js:474 -#: js/HeapBlocks.js:572 +#: js/blocks/EnsembleBlocks.js:122 +#: js/blocks/EnsembleBlocks.js:1197 +#: js/blocks/HeapBlocks.js:474 +#: js/blocks/HeapBlocks.js:572 msgid "Index must be > 0." msgstr "" -#: js/EnsembleBlocks.js:127 -#: js/HeapBlocks.js:479 -#: js/HeapBlocks.js:577 +#: js/blocks/EnsembleBlocks.js:127 +#: js/blocks/HeapBlocks.js:479 +#: js/blocks/HeapBlocks.js:577 msgid "Maximum heap size is 1000." msgstr "" -#: js/EnsembleBlocks.js:145 +#: js/blocks/EnsembleBlocks.js:145 msgid "stop mouse" msgstr "" -#: js/EnsembleBlocks.js:147 +#: js/blocks/EnsembleBlocks.js:147 msgid "The Stop mouse block stops the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:158 +#: js/blocks/EnsembleBlocks.js:158 msgid "stop turtle" msgstr "" -#: js/EnsembleBlocks.js:160 +#: js/blocks/EnsembleBlocks.js:160 msgid "The Stop turtle block stops the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:184 -#: js/EnsembleBlocks.js:247 -#: js/EnsembleBlocks.js:413 -#: js/EnsembleBlocks.js:468 -#: js/EnsembleBlocks.js:706 -#: js/EnsembleBlocks.js:808 -#: js/EnsembleBlocks.js:870 -#: js/EnsembleBlocks.js:1190 -#: js/EnsembleBlocks.js:1253 +#: js/blocks/EnsembleBlocks.js:184 +#: js/blocks/EnsembleBlocks.js:247 +#: js/blocks/EnsembleBlocks.js:413 +#: js/blocks/EnsembleBlocks.js:468 +#: js/blocks/EnsembleBlocks.js:706 +#: js/blocks/EnsembleBlocks.js:808 +#: js/blocks/EnsembleBlocks.js:870 +#: js/blocks/EnsembleBlocks.js:1190 +#: js/blocks/EnsembleBlocks.js:1253 msgid "Cannot find mouse" msgstr "" -#: js/EnsembleBlocks.js:186 -#: js/EnsembleBlocks.js:249 -#: js/EnsembleBlocks.js:415 -#: js/EnsembleBlocks.js:470 -#: js/EnsembleBlocks.js:708 -#: js/EnsembleBlocks.js:810 -#: js/EnsembleBlocks.js:872 -#: js/EnsembleBlocks.js:1192 -#: js/EnsembleBlocks.js:1255 +#: js/blocks/EnsembleBlocks.js:186 +#: js/blocks/EnsembleBlocks.js:249 +#: js/blocks/EnsembleBlocks.js:415 +#: js/blocks/EnsembleBlocks.js:470 +#: js/blocks/EnsembleBlocks.js:708 +#: js/blocks/EnsembleBlocks.js:810 +#: js/blocks/EnsembleBlocks.js:872 +#: js/blocks/EnsembleBlocks.js:1192 +#: js/blocks/EnsembleBlocks.js:1255 msgid "Cannot find turtle" msgstr "" -#: js/EnsembleBlocks.js:206 +#: js/blocks/EnsembleBlocks.js:206 msgid "start mouse" msgstr "" -#: js/EnsembleBlocks.js:209 +#: js/blocks/EnsembleBlocks.js:209 msgid "The Start mouse block starts the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:220 +#: js/blocks/EnsembleBlocks.js:220 msgid "start turtle" msgstr "" -#: js/EnsembleBlocks.js:223 +#: js/blocks/EnsembleBlocks.js:223 msgid "The Start turtle block starts the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:256 +#: js/blocks/EnsembleBlocks.js:256 msgid "Mouse is already running." msgstr "" -#: js/EnsembleBlocks.js:258 +#: js/blocks/EnsembleBlocks.js:258 msgid "Turtle is already running." msgstr "" -#: js/EnsembleBlocks.js:282 +#: js/blocks/EnsembleBlocks.js:282 msgid "Cannot find start block" msgstr "" -#: js/EnsembleBlocks.js:292 +#: js/blocks/EnsembleBlocks.js:292 #.TRANS: pen color for this mouse msgid "mouse color" msgstr "" -#: js/EnsembleBlocks.js:294 +#: js/blocks/EnsembleBlocks.js:294 msgid "The Mouse color block returns the pen color of the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:306 +#: js/blocks/EnsembleBlocks.js:306 #.TRANS: pen color for this turtle msgid "turtle color" msgstr "" -#: js/EnsembleBlocks.js:308 +#: js/blocks/EnsembleBlocks.js:308 msgid "The Turtle color block returns the pen color of the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:338 +#: js/blocks/EnsembleBlocks.js:338 #.TRANS: heading (compass direction) for this mouse msgid "mouse heading" msgstr "" -#: js/EnsembleBlocks.js:340 +#: js/blocks/EnsembleBlocks.js:340 msgid "The Mouse heading block returns the heading of the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:352 +#: js/blocks/EnsembleBlocks.js:352 #.TRANS: heading (compass direction) for this turtle msgid "turtle heading" msgstr "" -#: js/EnsembleBlocks.js:354 +#: js/blocks/EnsembleBlocks.js:354 msgid "The Turtle heading block returns the heading of the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:384 -#: js/EnsembleBlocks.js:439 +#: js/blocks/EnsembleBlocks.js:384 +#: js/blocks/EnsembleBlocks.js:439 #.TRANS: set xy position for this mouse msgid "set mouse" msgstr "" -#: js/EnsembleBlocks.js:391 -#: js/EnsembleBlocks.js:402 -#: js/BoxesBlocks.js:595 -msgid "name1" -msgstr "" - -#: js/EnsembleBlocks.js:391 -#: js/EnsembleBlocks.js:402 -#: js/ProgramBlocks.js:881 -#: js/GraphicsBlocks.js:235 -#: js/GraphicsBlocks.js:313 -#: js/GraphicsBlocks.js:436 -#: js/GraphicsBlocks.js:487 -#: js/GraphicsBlocks.js:534 -#: js/GraphicsBlocks.js:750 +#: js/blocks/EnsembleBlocks.js:391 +#: js/blocks/EnsembleBlocks.js:402 +#: js/blocks/GraphicsBlocks.js:235 +#: js/blocks/GraphicsBlocks.js:313 +#: js/blocks/GraphicsBlocks.js:436 +#: js/blocks/GraphicsBlocks.js:487 +#: js/blocks/GraphicsBlocks.js:534 +#: js/blocks/GraphicsBlocks.js:750 +#: js/blocks/ProgramBlocks.js:881 msgid "x" msgstr "x" -#: js/EnsembleBlocks.js:391 -#: js/EnsembleBlocks.js:402 -#: js/ProgramBlocks.js:881 -#: js/GraphicsBlocks.js:149 -#: js/GraphicsBlocks.js:313 -#: js/GraphicsBlocks.js:436 -#: js/GraphicsBlocks.js:487 -#: js/GraphicsBlocks.js:534 -#: js/GraphicsBlocks.js:750 +#: js/blocks/EnsembleBlocks.js:391 +#: js/blocks/EnsembleBlocks.js:402 +#: js/blocks/GraphicsBlocks.js:149 +#: js/blocks/GraphicsBlocks.js:313 +#: js/blocks/GraphicsBlocks.js:436 +#: js/blocks/GraphicsBlocks.js:487 +#: js/blocks/GraphicsBlocks.js:534 +#: js/blocks/GraphicsBlocks.js:750 +#: js/blocks/ProgramBlocks.js:881 msgid "y" msgstr "y" -#: js/EnsembleBlocks.js:395 -#: js/EnsembleBlocks.js:452 +#: js/blocks/EnsembleBlocks.js:395 +#: js/blocks/EnsembleBlocks.js:452 #.TRANS: set xy position for this turtle msgid "set turtle" msgstr "" -#: js/EnsembleBlocks.js:433 +#: js/blocks/EnsembleBlocks.js:433 msgid "The Set mouse block sends a stack of blocks to be run by the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:446 +#: js/blocks/EnsembleBlocks.js:446 msgid "The Set turtle block sends a stack of blocks to be run by the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:480 +#: js/blocks/EnsembleBlocks.js:480 #.TRANS: y position for this mouse msgid "mouse y" msgstr "" -#: js/EnsembleBlocks.js:482 +#: js/blocks/EnsembleBlocks.js:482 msgid "The Y mouse block returns the Y position of the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:494 +#: js/blocks/EnsembleBlocks.js:494 #.TRANS: y position for this turtle msgid "turtle y" msgstr "" -#: js/EnsembleBlocks.js:496 +#: js/blocks/EnsembleBlocks.js:496 msgid "The Y turtle block returns the Y position of the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:526 +#: js/blocks/EnsembleBlocks.js:526 #.TRANS: x position for this mouse msgid "mouse x" msgstr "" -#: js/EnsembleBlocks.js:528 +#: js/blocks/EnsembleBlocks.js:528 msgid "The X mouse block returns the X position of the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:540 +#: js/blocks/EnsembleBlocks.js:540 #.TRANS: x position for this turtle msgid "turtle x" msgstr "" -#: js/EnsembleBlocks.js:542 +#: js/blocks/EnsembleBlocks.js:542 msgid "The X turtle block returns the X position of the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:573 +#: js/blocks/EnsembleBlocks.js:573 #.TRANS: notes played by this mouse msgid "mouse notes played" msgstr "" -#: js/EnsembleBlocks.js:575 +#: js/blocks/EnsembleBlocks.js:575 msgid "The Mouse elapse notes block returns the number of notes played by the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:587 +#: js/blocks/EnsembleBlocks.js:587 #.TRANS: notes played by this turtle msgid "turtle notes played" msgstr "" -#: js/EnsembleBlocks.js:589 +#: js/blocks/EnsembleBlocks.js:589 msgid "The Turtle elapse notes block returns the number of notes played by the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:627 +#: js/blocks/EnsembleBlocks.js:627 #.TRANS: convert current note for this turtle to piano key (1-88) msgid "mouse pitch number" msgstr "" -#: js/EnsembleBlocks.js:629 +#: js/blocks/EnsembleBlocks.js:629 msgid "The Mouse pitch block returns the current pitch number being played by the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:641 +#: js/blocks/EnsembleBlocks.js:641 #.TRANS: convert current note for this turtle to piano key (1-88) msgid "turtle pitch number" msgstr "" -#: js/EnsembleBlocks.js:643 -msgid "The Turrle pitch block returns the current pitch number being played by the specified turtle." +#: js/blocks/EnsembleBlocks.js:643 +msgid "The Turtle pitch block returns the current pitch number being played by the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:747 -#: js/EnsembleBlocks.js:819 +#: js/blocks/EnsembleBlocks.js:747 +#: js/blocks/EnsembleBlocks.js:819 #.TRANS: note value is the duration of the note played by this mouse msgid "mouse note value" msgstr "" -#: js/EnsembleBlocks.js:757 +#: js/blocks/EnsembleBlocks.js:757 #.TRANS: note value is the duration of the note played by this turtle msgid "turtle note value" msgstr "" -#: js/EnsembleBlocks.js:830 +#: js/blocks/EnsembleBlocks.js:830 #.TRANS: sync is short for synchronization msgid "mouse sync" msgstr "" -#: js/EnsembleBlocks.js:832 +#: js/blocks/EnsembleBlocks.js:832 msgid "The Mouse sync block aligns the beat count between mice." msgstr "" -#: js/EnsembleBlocks.js:844 +#: js/blocks/EnsembleBlocks.js:844 #.TRANS: sync is short for synchronization msgid "turtle sync" msgstr "" -#: js/EnsembleBlocks.js:846 +#: js/blocks/EnsembleBlocks.js:846 msgid "The Turtle sync block aligns the beat count between turtles." msgstr "" -#: js/EnsembleBlocks.js:887 +#: js/blocks/EnsembleBlocks.js:887 msgid "The Found mouse block will return true if the specified mouse can be found." -msgstr "" - -#: js/EnsembleBlocks.js:893 -msgid "found mouse" -msgstr "" - -#: js/EnsembleBlocks.js:903 -msgid "The Found turtle block will return true if the specified turtle can be found." -msgstr "" - -#: js/EnsembleBlocks.js:909 -msgid "found turtle" -msgstr "" - -#: js/EnsembleBlocks.js:932 -msgid "new mouse" -msgstr "" - -#: js/EnsembleBlocks.js:934 -msgid "The New mouse block will create a new mouse." -msgstr "" - -#: js/EnsembleBlocks.js:945 -msgid "new turtle" -msgstr "" - -#: js/EnsembleBlocks.js:947 -msgid "The New turtle block will create a new turtle." -msgstr "" - -#: js/EnsembleBlocks.js:1011 -msgid "set mouse color" -msgstr "" - -#: js/EnsembleBlocks.js:1014 -msgid "The Set-mouse-color block is used to set the color of a mouse." -msgstr "" - -#: js/EnsembleBlocks.js:1020 -msgid "set turtle color" -msgstr "" - -#: js/EnsembleBlocks.js:1023 -msgid "The Set-turtle-color block is used to set the color of a turtle." -msgstr "" - -#: js/EnsembleBlocks.js:1083 -msgid "The Mouse-name block returns the name of a mouse." -msgstr "" - -#: js/EnsembleBlocks.js:1092 -msgid "The Turtle-name block returns the name of a turtle." -msgstr "" - -#: js/EnsembleBlocks.js:1115 -msgid "mouse count" -msgstr "" - -#: js/EnsembleBlocks.js:1118 -msgid "The Mouse-count block returns the number of mice." -msgstr "" - -#: js/EnsembleBlocks.js:1124 -msgid "turtle count" -msgstr "" - -#: js/EnsembleBlocks.js:1127 -msgid "The Turtle-count block returns the number of turtles." -msgstr "" - -#: js/EnsembleBlocks.js:1149 -msgid "nth mouse name" -msgstr "" - -#: js/EnsembleBlocks.js:1152 -msgid "The Nth-Mouse name block returns the name of the nth mouse." -msgstr "" - -#: js/EnsembleBlocks.js:1158 -msgid "nth turtle name" -msgstr "" - -#: js/EnsembleBlocks.js:1161 -msgid "The Nth-Turtle name block returns the name of the nth turtle." -msgstr "" - -#: js/EnsembleBlocks.js:1205 -#: js/EnsembleBlocks.js:1265 -msgid "set name" -msgstr "" - -#: js/EnsembleBlocks.js:1214 -#: js/EnsembleBlocks.js:1221 -msgid "source" -msgstr "" - -#: js/EnsembleBlocks.js:1214 -#: js/EnsembleBlocks.js:1221 -msgid "target" -msgstr "" - -#: js/EnsembleBlocks.js:1271 -msgid "The Set-name block is used to name a mouse." -msgstr "" - -#: js/EnsembleBlocks.js:1284 -msgid "The Set-name block is used to name a turtle." -msgstr "" - -#: js/BooleanBlocks.js:44 -msgid "The Not block is the logical not operator." -msgstr "" - -#: js/BooleanBlocks.js:62 -msgid "not" -msgstr "ne" +msgstr "" -#: js/BooleanBlocks.js:134 -msgid "The And block is the logical and operator." +#: js/blocks/EnsembleBlocks.js:893 +msgid "found mouse" msgstr "" -#: js/BooleanBlocks.js:152 -msgid "and" -msgstr "a" +#: js/blocks/EnsembleBlocks.js:903 +msgid "The Found turtle block will return true if the specified turtle can be found." +msgstr "" -#: js/BooleanBlocks.js:218 -msgid "The Or block is the logical or operator." +#: js/blocks/EnsembleBlocks.js:909 +msgid "found turtle" msgstr "" -#: js/BooleanBlocks.js:236 -msgid "or" -msgstr "nebo" +#: js/blocks/EnsembleBlocks.js:932 +msgid "new mouse" +msgstr "" -#: js/BooleanBlocks.js:302 -msgid "The XOR block is the logical XOR operator." +#: js/blocks/EnsembleBlocks.js:934 +msgid "The New mouse block will create a new mouse." msgstr "" -#: js/BooleanBlocks.js:320 -msgid "xor" +#: js/blocks/EnsembleBlocks.js:945 +msgid "new turtle" msgstr "" -#: js/BooleanBlocks.js:808 -msgid "The Equal block returns True if the two numbers are equal." +#: js/blocks/EnsembleBlocks.js:947 +msgid "The New turtle block will create a new turtle." msgstr "" -#: js/BooleanBlocks.js:909 -msgid "The Not-equal-to block returns True if the two numbers are not equal to each other." +#: js/blocks/EnsembleBlocks.js:1011 +msgid "set mouse color" msgstr "" -#: js/BooleanBlocks.js:1008 -msgid "The Boolean block is used to specify true or false." +#: js/blocks/EnsembleBlocks.js:1014 +msgid "The Set-mouse-color block is used to set the color of a mouse." msgstr "" -#: js/MediaBlocks.js:35 -#.TRANS: right side of the screen -msgid "right (screen)" +#: js/blocks/EnsembleBlocks.js:1020 +msgid "set turtle color" msgstr "" -#: js/MediaBlocks.js:45 -#: js/MediaBlocks.js:56 -msgid "The Right block returns the position of the right of the canvas." +#: js/blocks/EnsembleBlocks.js:1023 +msgid "The Set-turtle-color block is used to set the color of a turtle." msgstr "" -#: js/MediaBlocks.js:97 -#.TRANS: left side of the screen -msgid "left (screen)" +#: js/blocks/EnsembleBlocks.js:1083 +msgid "The Mouse-name block returns the name of a mouse." msgstr "" -#: js/MediaBlocks.js:107 -#: js/MediaBlocks.js:118 -msgid "The Left block returns the position of the left of the canvas." +#: js/blocks/EnsembleBlocks.js:1092 +msgid "The Turtle-name block returns the name of a turtle." msgstr "" -#: js/MediaBlocks.js:158 -msgid "top (screen)" +#: js/blocks/EnsembleBlocks.js:1115 +msgid "mouse count" msgstr "" -#: js/MediaBlocks.js:168 -#: js/MediaBlocks.js:179 -msgid "The Top block returns the position of the top of the canvas." +#: js/blocks/EnsembleBlocks.js:1118 +msgid "The Mouse-count block returns the number of mice." msgstr "" -#: js/MediaBlocks.js:219 -msgid "bottom (screen)" +#: js/blocks/EnsembleBlocks.js:1124 +msgid "turtle count" msgstr "" -#: js/MediaBlocks.js:229 -#: js/MediaBlocks.js:240 -msgid "The Bottom block returns the position of the bottom of the canvas." +#: js/blocks/EnsembleBlocks.js:1127 +msgid "The Turtle-count block returns the number of turtles." msgstr "" -#: js/MediaBlocks.js:282 -msgid "width" +#: js/blocks/EnsembleBlocks.js:1149 +msgid "nth mouse name" msgstr "" -#: js/MediaBlocks.js:291 -msgid "The Width block returns the width of the canvas." +#: js/blocks/EnsembleBlocks.js:1152 +msgid "The Nth-Mouse name block returns the name of the nth mouse." msgstr "" -#: js/MediaBlocks.js:325 -msgid "height" +#: js/blocks/EnsembleBlocks.js:1158 +msgid "nth turtle name" msgstr "" -#: js/MediaBlocks.js:334 -msgid "The Height block returns the height of the canvas." +#: js/blocks/EnsembleBlocks.js:1161 +msgid "The Nth-Turtle name block returns the name of the nth turtle." msgstr "" -#: js/MediaBlocks.js:369 -#.TRANS: stops playback of an audio recording -msgid "stop play" +#: js/blocks/EnsembleBlocks.js:1205 +#: js/blocks/EnsembleBlocks.js:1265 +msgid "set name" msgstr "" -#: js/MediaBlocks.js:404 -#.TRANS: Erases the images and text -msgid "erase media" +#: js/blocks/EnsembleBlocks.js:1214 +#: js/blocks/EnsembleBlocks.js:1221 +msgid "source" msgstr "" -#: js/MediaBlocks.js:409 -msgid "The Erase Media block erases text and images." +#: js/blocks/EnsembleBlocks.js:1214 +#: js/blocks/EnsembleBlocks.js:1221 +msgid "target" msgstr "" -#: js/MediaBlocks.js:439 -#.TRANS: play an audio recording -msgid "play back" +#: js/blocks/EnsembleBlocks.js:1271 +msgid "The Set-name block is used to name a mouse." msgstr "" -#: js/MediaBlocks.js:487 -msgid "speak" +#: js/blocks/EnsembleBlocks.js:1284 +msgid "The Set-name block is used to name a turtle." msgstr "" -#: js/MediaBlocks.js:495 -msgid "The Speak block outputs to the text-to-speech synthesizer" +#: js/blocks/ExtrasBlocks.js:33 +msgid "fraction" msgstr "" -#: js/MediaBlocks.js:546 -msgid "camera" +#: js/blocks/ExtrasBlocks.js:36 +msgid "Convert a float to a fraction" msgstr "" -#: js/MediaBlocks.js:551 -msgid "The Camera block connects a webcam to the Show block." +#: js/blocks/ExtrasBlocks.js:93 +msgid "save as ABC" msgstr "" -#: js/MediaBlocks.js:574 -msgid "video" +#: js/blocks/ExtrasBlocks.js:96 +#: js/blocks/ExtrasBlocks.js:132 +#: js/blocks/ExtrasBlocks.js:168 +msgid "title" msgstr "" -#: js/MediaBlocks.js:579 -msgid "The Video block selects video for use with the Show block." +#: js/blocks/ExtrasBlocks.js:129 +msgid "save as Lilypond" msgstr "" -#: js/MediaBlocks.js:607 -msgid "The Open file block opens a file for use with the Show block." +#: js/blocks/ExtrasBlocks.js:165 +msgid "save as SVG" msgstr "" -#: js/MediaBlocks.js:645 -msgid "stop media" +#: js/blocks/ExtrasBlocks.js:216 +msgid "no background" msgstr "" -#: js/MediaBlocks.js:650 -msgid "The Stop media block stops audio or video playback." +#: js/blocks/ExtrasBlocks.js:219 +msgid "The No background block eliminates the background from the saved SVG output." msgstr "" -#: js/MediaBlocks.js:679 -#: js/PitchBlocks.js:1539 -#: js/phrasemaker.js:822 -#: js/musickeyboard.js:1654 -#.TRANS: a measure of frequency: one cycle per second -msgid "hertz" +#: js/blocks/ExtrasBlocks.js:247 +msgid "show blocks" +msgstr "zobrazit bloky" + +#: js/blocks/ExtrasBlocks.js:249 +msgid "The Show blocks block shows the blocks." msgstr "" -#: js/MediaBlocks.js:692 -msgid "duration (ms)" +#: js/blocks/ExtrasBlocks.js:274 +msgid "hide blocks" +msgstr "skrýt bloky" + +#: js/blocks/ExtrasBlocks.js:276 +msgid "The Hide blocks block hides the blocks." msgstr "" -#: js/MediaBlocks.js:728 -#.TRANS: translate a note into hertz, e.g., A4 -> 440HZ -msgid "note to frequency" +#: js/blocks/ExtrasBlocks.js:305 +#: js/blocks/ExtrasBlocks.js:338 +msgid "The Space block is used to add space between blocks." msgstr "" -#: js/MediaBlocks.js:736 -msgid "The To frequency block converts a pitch name and octave to Hertz." +#: js/blocks/ExtrasBlocks.js:376 +msgid "wait" +msgstr "čekat" + +#: js/blocks/ExtrasBlocks.js:379 +msgid "The Wait block pauses the program for a specified number of seconds." msgstr "" -#: js/MediaBlocks.js:746 -#: js/PitchBlocks.js:656 -#: js/PitchBlocks.js:932 -#: js/PitchBlocks.js:1827 -#.TRANS: name2 is name as in name of pitch (JAPANESE ONLY) -msgid "name2" +#: js/blocks/ExtrasBlocks.js:433 +#: plugins/facebook.rtp:30 +msgid "comment" msgstr "" -#: js/MediaBlocks.js:812 -msgid "The Avatar block is used to change the appearance of the mouse." +#: js/blocks/ExtrasBlocks.js:469 +msgid "print" +msgstr "tisknout" + +#: js/blocks/ExtrasBlocks.js:476 +msgid "The Print block displays text at the top of the screen." msgstr "" -#: js/MediaBlocks.js:819 -msgid "The Avatar block is used to change the appearance of the turtle." +#: js/blocks/ExtrasBlocks.js:582 +msgid "display grid" msgstr "" -#: js/MediaBlocks.js:831 -#: js/MediaBlocks.js:891 -#.TRANS: a media object -msgid "size" +#: js/blocks/ExtrasBlocks.js:587 +msgid "The Display Grid Block changes the grid type" msgstr "" -#: js/MediaBlocks.js:831 -msgid "image" +#: js/blocks/ExtrasBlocks.js:689 +#: js/blocks/ExtrasBlocks.js:708 +#: js/blocks/ExtrasBlocks.js:731 +#: js/blocks/ExtrasBlocks.js:754 +#: js/blocks/ExtrasBlocks.js:772 +#: js/blocks/ExtrasBlocks.js:791 +#: js/blocks/ExtrasBlocks.js:810 +#: js/blocks/ExtrasBlocks.js:829 +msgid "unknown" msgstr "" -#: js/MediaBlocks.js:880 -msgid "The Show block is used to display text or images on the canvas." +#: js/blocks/FlowBlocks.js:41 +msgid "The Backward block runs code in reverse order (Musical retrograde)." msgstr "" -#: js/MediaBlocks.js:888 -#.TRANS: show1 is show as in display an image or text on the screen. -msgid "show1" +#: js/blocks/FlowBlocks.js:48 +msgid "backward" msgstr "" -#: js/MediaBlocks.js:891 -msgid "obj" +#: js/blocks/FlowBlocks.js:124 +msgid "The Duplicate block will run each block multiple times." msgstr "" -#: js/MediaBlocks.js:938 -msgid "The Media block is used to import an image." +#: js/blocks/FlowBlocks.js:136 +msgid "duplicate" msgstr "" -#: js/MediaBlocks.js:973 -msgid "The Text block holds a text string." +#: js/blocks/FlowBlocks.js:334 +msgid "The Default block is used inside of a Switch to define the default action." msgstr "" -#: js/ProgramBlocks.js:33 -msgid "The Load-heap-from-app block loads the heap from a web page." +#: js/blocks/FlowBlocks.js:342 +msgid "default" msgstr "" -#: js/ProgramBlocks.js:44 -#.TRANS: load the heap contents from a URL -msgid "load heap from App" +#: js/blocks/FlowBlocks.js:361 +#: js/blocks/FlowBlocks.js:418 +msgid "The Case Block must be used inside of a Switch Block." msgstr "" -#: js/ProgramBlocks.js:95 -msgid "Error parsing JSON data:" +#: js/blocks/FlowBlocks.js:389 +msgid "The Case block is used inside of a Switch to define matches." msgstr "" -#: js/ProgramBlocks.js:100 -msgid "404: Page not found" +#: js/blocks/FlowBlocks.js:397 +msgid "case" msgstr "" -#: js/ProgramBlocks.js:133 -msgid "The Save-heap-to-app block saves the heap to a web page." +#: js/blocks/FlowBlocks.js:446 +msgid "The Switch block will run the code in the matching Case." msgstr "" -#: js/ProgramBlocks.js:144 -#.TRANS: save the heap contents to a URL -msgid "save heap to App" +#: js/blocks/FlowBlocks.js:454 +msgid "switch" msgstr "" -#: js/ProgramBlocks.js:189 -msgid "Cannot find a valid heap for" +#: js/blocks/FlowBlocks.js:595 +msgid "The Stop block will stop a loop" msgstr "" -#: js/ProgramBlocks.js:206 -msgid "The Load-heap block loads the heap from a file." +#: js/blocks/FlowBlocks.js:597 +msgid "Forever, Repeat, While, or Until." msgstr "" -#: js/ProgramBlocks.js:217 -#.TRANS: load the heap from a file -msgid "load heap" +#: js/blocks/FlowBlocks.js:604 +#: js/widgets/timbre.js:417 +#: js/widgets/timbre.js:419 +#: js/widgets/musickeyboard.js:819 +#: js/widgets/musickeyboard.js:821 +#: js/widgets/phrasemaker.js:4202 +#: plugins/rodi.rtp:29 +#: plugins/rodi.rtp:73 +#: plugins/rodi.rtp:413 +msgid "stop" +msgstr "Krok" + +#: js/blocks/FlowBlocks.js:653 +msgid "The Waitfor block will wait until the condition is true." msgstr "" -#: js/ProgramBlocks.js:270 -msgid "The file you selected does not contain a valid heap." +#: js/blocks/FlowBlocks.js:661 +msgid "wait for" msgstr "" -#: js/ProgramBlocks.js:275 -msgid "The loadHeap block needs a loadFile block." +#: js/blocks/FlowBlocks.js:732 +msgid "The Until block will repeat until the condition is true." msgstr "" -#: js/ProgramBlocks.js:291 -msgid "The Set-heap block loads the heap." +#: js/blocks/FlowBlocks.js:740 +msgid "until" msgstr "" -#: js/ProgramBlocks.js:299 -#: js/HeapBlocks.js:539 -#.TRANS: load the heap from a JSON encoding -msgid "set heap" +#: js/blocks/FlowBlocks.js:742 +#: js/blocks/FlowBlocks.js:822 +msgid "do2" msgstr "" -#: js/ProgramBlocks.js:340 -msgid "The block you selected does not contain a valid heap." +#: js/blocks/FlowBlocks.js:812 +msgid "The While block will repeat while the condition is true." msgstr "" -#: js/ProgramBlocks.js:343 -msgid "The Set heap block needs a heap." +#: js/blocks/FlowBlocks.js:820 +msgid "while" msgstr "" -#: js/ProgramBlocks.js:360 -msgid "The Load-dictionary block loads a dictionary from a file." +#: js/blocks/FlowBlocks.js:903 +#: js/blocks/FlowBlocks.js:968 +#: js/blocks/FlowBlocks.js:979 +msgid "In this example if the mouse button is pressed a snare drum will play." msgstr "" -#: js/ProgramBlocks.js:372 -#.TRANS: load a dictionary from a file -msgid "load dictionary" +#: js/blocks/FlowBlocks.js:925 +#: js/blocks/FlowBlocks.js:988 +msgid "if" +msgstr "jestli" + +#: js/blocks/FlowBlocks.js:927 +#: js/blocks/FlowBlocks.js:990 +msgid "then" +msgstr "potom" + +#: js/blocks/FlowBlocks.js:927 +msgid "else" +msgstr "jinak" + +#: js/blocks/FlowBlocks.js:1025 +msgid "The Forever block will repeat the contained blocks forever." msgstr "" -#: js/ProgramBlocks.js:390 -#: js/ProgramBlocks.js:658 -#: js/ToneBlocks.js:1025 -msgid "file" +#: js/blocks/FlowBlocks.js:1037 +msgid "forever" +msgstr "navždy" + +#: js/blocks/FlowBlocks.js:1073 +msgid "The Repeat block will repeat the contained blocks." msgstr "" -#: js/ProgramBlocks.js:396 -#: js/ProgramBlocks.js:501 -#: js/ProgramBlocks.js:664 -#: js/DictBlocks.js:80 -#: js/DictBlocks.js:145 -#: js/DictBlocks.js:216 -#: js/DictBlocks.js:290 -msgid "My Dictionary" +#: js/blocks/FlowBlocks.js:1075 +msgid "In this example the note will be played 4 times." msgstr "" -#: js/ProgramBlocks.js:444 -msgid "The file you selected does not contain a valid dictionary." +#: js/blocks/FlowBlocks.js:1083 +msgid "repeat" +msgstr "opakovat" + +#: js/blocks/FlowBlocks.js:1123 +msgid "duplicate factor" msgstr "" -#: js/ProgramBlocks.js:449 -msgid "The load dictionary block needs a load file block." +#: js/blocks/HeapBlocks.js:49 +msgid "The Heap block returns the heap." msgstr "" -#: js/ProgramBlocks.js:466 -msgid "The Set-dictionary block loads a dictionary." +#: js/blocks/HeapBlocks.js:133 +msgid "show heap" msgstr "" -#: js/ProgramBlocks.js:477 -#.TRANS: load a dictionary from a JSON -msgid "set dictionary" +#: js/blocks/HeapBlocks.js:181 +msgid "The Heap-length block returns the length of the heap." msgstr "" -#: js/ProgramBlocks.js:546 -msgid "The block you selected does not contain a valid dictionary." +#: js/blocks/HeapBlocks.js:195 +msgid "heap length" msgstr "" -#: js/ProgramBlocks.js:550 -msgid "The set dictionary block needs a dictionary." +#: js/blocks/HeapBlocks.js:254 +msgid "The Heap-empty? block returns true if the heap is empty." msgstr "" -#: js/ProgramBlocks.js:567 -msgid "The Save-heap block saves the heap to a file." +#: js/blocks/HeapBlocks.js:268 +#.TRANS: Is the heap empty? +msgid "heap empty?" msgstr "" -#: js/ProgramBlocks.js:578 -#.TRANS: save the heap to a file -msgid "save heap" +#: js/blocks/HeapBlocks.js:317 +msgid "The Empty-heap block empties the heap." msgstr "" -#: js/ProgramBlocks.js:629 -msgid "The Save-dictionary block saves a dictionary to a file." +#: js/blocks/HeapBlocks.js:327 +#: js/blocks/HeapBlocks.js:647 +#.TRANS: empty the heap +msgid "empty heap" msgstr "" -#: js/ProgramBlocks.js:640 -#.TRANS: save a dictionary to a file -msgid "save dictionary" +#: js/blocks/HeapBlocks.js:371 +msgid "The Reverse-heap block reverses the order of the heap." msgstr "" -#: js/ProgramBlocks.js:720 -msgid "The Open palette block opens a palette." +#: js/blocks/HeapBlocks.js:384 +#.TRANS: reverse the order of the heap +msgid "reverse heap" msgstr "" -#: js/ProgramBlocks.js:727 -msgid "open palette" +#: js/blocks/HeapBlocks.js:428 +msgid "The Index-heap block returns a value in the heap at a specified location." msgstr "" -#: js/ProgramBlocks.js:785 -msgid "The Delete block block removes a block." +#: js/blocks/HeapBlocks.js:443 +#.TRANS: retrieve a value from the heap at index position in the heap +msgid "index heap" msgstr "" -#: js/ProgramBlocks.js:797 -#.TRANS: Move this block to the trash. -msgid "delete block" +#: js/blocks/HeapBlocks.js:523 +msgid "The Set-heap entry block sets a value in he heap at the specified location." msgstr "" -#: js/ProgramBlocks.js:861 -msgid "The Move block block moves a block." +#: js/blocks/HeapBlocks.js:539 +#: js/blocks/ProgramBlocks.js:299 +#.TRANS: load the heap from a JSON encoding +msgid "set heap" msgstr "" -#: js/ProgramBlocks.js:869 -#.TRANS: Move the position of a block on the screen. -msgid "move block" +#: js/blocks/HeapBlocks.js:619 +msgid "The Pop block removes the value at the top of the heap." msgstr "" -#: js/ProgramBlocks.js:881 -#: js/ProgramBlocks.js:1048 -msgid "block number" +#: js/blocks/HeapBlocks.js:633 +#.TRANS: pop a value off the top of the heap +msgid "pop" +msgstr "bouchnout" + +#: js/blocks/HeapBlocks.js:680 +msgid "The Push block adds a value to the top of the heap." msgstr "" -#: js/ProgramBlocks.js:935 -#.TRANS: Run program beginning at this block. -msgid "run block" +#: js/blocks/HeapBlocks.js:696 +#.TRANS: push a value onto the top of the heap +msgid "push" +msgstr "tlačit" + +#: js/blocks/IntervalsBlocks.js:45 +msgid "set temperament" msgstr "" -#: js/ProgramBlocks.js:1025 -msgid "The Dock block block connections two blocks." +#: js/blocks/IntervalsBlocks.js:63 +#: js/blocks/MediaBlocks.js:746 +#: js/blocks/PitchBlocks.js:657 +#: js/blocks/PitchBlocks.js:935 +#: js/blocks/PitchBlocks.js:974 +#: js/blocks/PitchBlocks.js:1007 +#: js/blocks/PitchBlocks.js:1194 +#: js/blocks/PitchBlocks.js:1717 +#: js/blocks/PitchBlocks.js:1758 +#: js/blocks/PitchBlocks.js:1866 +#: js/blocks/ToneBlocks.js:1025 +#: js/turtleactions/IntervalsActions.js:114 +#.TRANS: adjusts the shift up or down by one octave (twelve half-steps in the interval between two notes, one having twice or half the frequency in Hz of the other.) +msgid "octave" msgstr "" -#: js/ProgramBlocks.js:1036 -#.TRANS: We can connect a block to another block. -msgid "connect blocks" +#: js/blocks/IntervalsBlocks.js:99 +msgid "The Temperament name block is used to select a tuning method." msgstr "" -#: js/ProgramBlocks.js:1048 -msgid "target block" +#: js/blocks/IntervalsBlocks.js:161 +msgid "doubly" msgstr "" -#: js/ProgramBlocks.js:1048 -msgid "connection number" +#: js/blocks/IntervalsBlocks.js:166 +msgid "The Doubly block will double the size of an interval." msgstr "" -#: js/ProgramBlocks.js:1140 -msgid "The Make block block creates a new block." +#: js/blocks/IntervalsBlocks.js:262 +msgid "interval number" msgstr "" -#: js/ProgramBlocks.js:1152 -#.TRANS: Create a new block -msgid "make block" +#: js/blocks/IntervalsBlocks.js:317 +msgid "current interval" msgstr "" -#: js/ProgramBlocks.js:1186 -#: js/ProgramBlocks.js:1227 -#: js/RhythmBlocks.js:1128 -#: js/PitchBlocks.js:972 -#: js/PitchBlocks.js:1005 -#: js/temperament.js:340 -#: js/temperament.js:362 -#: js/temperament.js:372 -#: js/temperament.js:484 -#: js/status.js:190 -#: plugins/rodi.rtp:192 -#.TRANS: a musical note consisting of pitch and duration -msgid "note" +#: js/blocks/IntervalsBlocks.js:387 +#.TRANS: measure the distance between two pitches in semi-tones +msgid "semi-tone interval measure" msgstr "" -#: js/ProgramBlocks.js:1285 -msgid "Cannot find block" +#: js/blocks/IntervalsBlocks.js:454 +#: js/blocks/IntervalsBlocks.js:570 +msgid "You must use two pitch blocks when measuring an interval." msgstr "" -#: js/ProgramBlocks.js:1304 -#: js/ProgramBlocks.js:1313 -msgid "Warning: block argument type mismatch" +#: js/blocks/IntervalsBlocks.js:496 +msgid "The Scalar interval block measures the distance between two notes in the current key and mode." msgstr "" -#: js/ProgramBlocks.js:1347 -msgid "The Open project block is used to open a project from a web page." +#: js/blocks/IntervalsBlocks.js:502 +#.TRANS: measure the distance between two pitches in steps of musical scale +msgid "scalar interval measure" msgstr "" -#: js/ProgramBlocks.js:1357 -msgid "open project" +#: js/blocks/IntervalsBlocks.js:678 +msgid "In the figure, we add sol# to sol." msgstr "" -#: js/ProgramBlocks.js:1410 -msgid "Please enter a valid URL." +#: js/blocks/IntervalsBlocks.js:684 +#: js/blocks/OrnamentBlocks.js:220 +#.TRANS: calculate a relative step between notes based on semi-tones +msgid "semi-tone interval" msgstr "" -#: js/DrumBlocks.js:59 -msgid "The Noise name block is used to select a noise synthesizer." +#: js/blocks/IntervalsBlocks.js:733 +msgid "The output of the example is: do, mi, sol, sol, ti, mi" msgstr "" -#: js/DrumBlocks.js:102 -msgid "The Drum name block is used to select a drum." +#: js/blocks/IntervalsBlocks.js:740 +#: js/blocks/WidgetBlocks.js:768 +msgid "arpeggio" msgstr "" -#: js/DrumBlocks.js:146 -msgid "The Effects name block is used to select a sound effect." +#: js/blocks/IntervalsBlocks.js:931 +msgid "The Chord block calculates common chords." msgstr "" -#: js/DrumBlocks.js:163 -msgid "noise" +#: js/blocks/IntervalsBlocks.js:933 +msgid "In the figure, we generate a C-major chord." msgstr "" -#: js/DrumBlocks.js:177 -msgid "The Play noise block will generate white, pink, or brown noise." +#: js/blocks/IntervalsBlocks.js:938 +msgid "chord" msgstr "" -#: js/DrumBlocks.js:191 -#: js/musicutils.js:752 -#: js/synthutils.js:47 -#.TRANS: white noise synthesizer -msgid "white noise" +#: js/blocks/IntervalsBlocks.js:990 +msgid "The Ratio Interval block calculates an interval based on a ratio." msgstr "" -#: js/DrumBlocks.js:326 -msgid "Replace every instance of a pitch with a drum sound." +#: js/blocks/IntervalsBlocks.js:995 +msgid "ratio interval" msgstr "" -#: js/DrumBlocks.js:337 -#.TRANS: map a pitch to a drum sound -msgid "map pitch to drum" +#: js/blocks/IntervalsBlocks.js:1064 +msgid "In the figure, we add la to sol." msgstr "" -#: js/DrumBlocks.js:404 -msgid "In the example above, a kick drum sound will be played instead of sol." +#: js/blocks/IntervalsBlocks.js:1120 +#.TRANS: define a custom mode +msgid "define mode" msgstr "" -#: js/DrumBlocks.js:416 -#.TRANS: set the current drum sound for playback -msgid "set drum" +#: js/blocks/IntervalsBlocks.js:1173 +msgid "movable Do" msgstr "" -#: js/DrumBlocks.js:460 -msgid "sound effect" +#: js/blocks/IntervalsBlocks.js:1224 +#.TRANS: mode length is the number of notes in the mode, e.g., 7 for major and minor scales; 12 for chromatic scales +msgid "mode length" msgstr "" -#: js/DrumBlocks.js:498 -msgid "You can use multiple Drum blocks within a Note block." +#: js/blocks/IntervalsBlocks.js:1233 +msgid "The Mode length block is the number of notes in the current scale." msgstr "" -#: js/RhythmBlocks.js:182 -#: js/RhythmBlocks.js:1086 -#: js/RhythmBlocks.js:1162 -msgid "Note value must be greater than 0." +#: js/blocks/IntervalsBlocks.js:1235 +msgid "Most Western scales have 7 notes." msgstr "" -#: js/RhythmBlocks.js:215 -#: js/RhythmBlocks.js:278 -#: js/RhythmBlocks.js:350 -#.TRANS: swing is a rhythmic variation that emphasises the offbeat -msgid "swing" +#: js/blocks/IntervalsBlocks.js:1284 +#.TRANS: the mode in music is 'major', 'minor', etc. +msgid "current mode" msgstr "" -#: js/RhythmBlocks.js:355 -#.TRANS: the amount to shift to the offbeat note -msgid "swing value" +#: js/blocks/IntervalsBlocks.js:1337 +#.TRANS: the key is a group of pitches with which a music composition is created +msgid "current key" msgstr "" -#: js/RhythmBlocks.js:419 -msgid "The Skip notes block will cause notes to be skipped." +#: js/blocks/IntervalsBlocks.js:1389 +#: js/blocks/IntervalsBlocks.js:1434 +#.TRANS: set the key and mode, e.g. C Major +msgid "set key" msgstr "" -#: js/RhythmBlocks.js:427 -#.TRANS: substitute rests on notes being skipped -msgid "skip notes" +#: js/blocks/IntervalsBlocks.js:1443 +#: js/blocks/IntervalsBlocks.js:1449 +msgid "The Set key block is used to set the key and mode," msgstr "" -#: js/RhythmBlocks.js:489 -#.TRANS: speed up note duration by some factor, e.g. convert 1/4 to 1/8 notes by using a factor of 2 -msgid "multiply note value" +#: js/blocks/IntervalsBlocks.js:1449 +msgid "eg C Major" msgstr "" -#: js/RhythmBlocks.js:542 -msgid "The Tie block works on pairs of notes, combining them into one note." +#: js/blocks/MediaBlocks.js:35 +#.TRANS: right side of the screen +msgid "right (screen)" msgstr "" -#: js/RhythmBlocks.js:550 -#.TRANS: tie notes together into one longer note -msgid "tie" +#: js/blocks/MediaBlocks.js:45 +#: js/blocks/MediaBlocks.js:56 +msgid "The Right block returns the position of the right of the canvas." msgstr "" -#: js/RhythmBlocks.js:591 -#: js/RhythmBlocks.js:671 -#.TRANS: a dotted note is played for 1.5x its value, e.g., 1/8. --> 3/16 -msgid "dot" +#: js/blocks/MediaBlocks.js:97 +#.TRANS: left side of the screen +msgid "left (screen)" msgstr "" -#: js/RhythmBlocks.js:619 -#: js/RhythmActions.js:221 -msgid "An argument of -1 results in a note value of 0." +#: js/blocks/MediaBlocks.js:107 +#: js/blocks/MediaBlocks.js:118 +msgid "The Left block returns the position of the left of the canvas." msgstr "" -#: js/RhythmBlocks.js:661 -msgid "The Dot block extends the duration of a note by 50%." +#: js/blocks/MediaBlocks.js:158 +msgid "top (screen)" msgstr "" -#: js/RhythmBlocks.js:663 -msgid "Eg a dotted quarter note will play for 3/8 (1/4 + 1/8) of a beat." +#: js/blocks/MediaBlocks.js:168 +#: js/blocks/MediaBlocks.js:179 +msgid "The Top block returns the position of the top of the canvas." msgstr "" -#: js/RhythmBlocks.js:765 -#.TRANS: Japanese only: note value block for drum -msgid "note value drum" +#: js/blocks/MediaBlocks.js:219 +msgid "bottom (screen)" msgstr "" -#: js/RhythmBlocks.js:829 -msgid "392 hertz" +#: js/blocks/MediaBlocks.js:229 +#: js/blocks/MediaBlocks.js:240 +msgid "The Bottom block returns the position of the bottom of the canvas." msgstr "" -#: js/RhythmBlocks.js:1119 -msgid "The Note block is a container for one or more Pitch blocks." +#: js/blocks/MediaBlocks.js:282 +msgid "width" msgstr "" -#: js/RhythmBlocks.js:1121 -msgid "The Note block specifies the duration (note value) of its contents." +#: js/blocks/MediaBlocks.js:291 +msgid "The Width block returns the width of the canvas." msgstr "" -#: js/RhythmBlocks.js:1130 -msgid "value2" +#: js/blocks/MediaBlocks.js:325 +msgid "height" msgstr "" -#: js/RhythmBlocks.js:1200 -msgid "define frequency" +#: js/blocks/MediaBlocks.js:334 +msgid "The Height block returns the height of the canvas." msgstr "" -#: js/RhythmBlocks.js:1218 -#: js/temperament.js:650 -#: js/temperament.js:1421 -msgid "octave space" +#: js/blocks/MediaBlocks.js:369 +#.TRANS: stops playback of an audio recording +msgid "stop play" msgstr "" -#: js/NumberBlocks.js:28 -msgid "The Int block returns an integer." +#: js/blocks/MediaBlocks.js:404 +#.TRANS: Erases the images and text +msgid "erase media" msgstr "" -#: js/NumberBlocks.js:34 -msgid "int" +#: js/blocks/MediaBlocks.js:409 +msgid "The Erase Media block erases text and images." msgstr "" -#: js/NumberBlocks.js:73 -msgid "The Mod block returns the remainder from a division." +#: js/blocks/MediaBlocks.js:439 +#.TRANS: play an audio recording +msgid "play back" msgstr "" -#: js/NumberBlocks.js:79 -msgid "mod" -msgstr "mód" +#: js/blocks/MediaBlocks.js:487 +msgid "speak" +msgstr "" -#: js/NumberBlocks.js:123 -msgid "The Power block calculates a power function." +#: js/blocks/MediaBlocks.js:495 +msgid "The Speak block outputs to the text-to-speech synthesizer" msgstr "" -#: js/NumberBlocks.js:178 -msgid "The Sqrt block returns the square root." +#: js/blocks/MediaBlocks.js:546 +msgid "camera" msgstr "" -#: js/NumberBlocks.js:184 -msgid "sqrt" +#: js/blocks/MediaBlocks.js:551 +msgid "The Camera block connects a webcam to the Show block." msgstr "" -#: js/NumberBlocks.js:230 -msgid "The Abs block returns the absolute value." +#: js/blocks/MediaBlocks.js:574 +msgid "video" msgstr "" -#: js/NumberBlocks.js:236 -msgid "abs" +#: js/blocks/MediaBlocks.js:579 +msgid "The Video block selects video for use with the Show block." msgstr "" -#: js/NumberBlocks.js:277 -msgid "The Distance block returns the distance between two points. For example, between the mouse and the center of the screen." +#: js/blocks/MediaBlocks.js:607 +msgid "The Open file block opens a file for use with the Show block." msgstr "" -#: js/NumberBlocks.js:283 -#: plugins/rodi.rtp:310 -msgid "distance" +#: js/blocks/MediaBlocks.js:645 +msgid "stop media" msgstr "" -#: js/NumberBlocks.js:343 -msgid "The Divide block is used to divide." +#: js/blocks/MediaBlocks.js:650 +msgid "The Stop media block stops audio or video playback." msgstr "" -#: js/NumberBlocks.js:411 -msgid "The Multiply block is used to multiply." +#: js/blocks/MediaBlocks.js:679 +#: js/blocks/PitchBlocks.js:1577 +#: js/widgets/musickeyboard.js:1936 +#: js/widgets/phrasemaker.js:1037 +#.TRANS: a measure of frequency: one cycle per second +msgid "hertz" msgstr "" -#: js/NumberBlocks.js:554 -msgid "The Minus block is used to subtract." +#: js/blocks/MediaBlocks.js:692 +#: js/blocks/WidgetBlocks.js:182 +#: js/widgets/temperament.js:506 +#: js/widgets/temperament.js:546 +#: js/widgets/temperament.js:610 +#: js/widgets/temperament.js:618 +#: js/widgets/temperament.js:1505 +#: js/widgets/timbre.js:1842 +msgid "frequency" msgstr "" -#: js/NumberBlocks.js:647 -msgid "The Plus block is used to add." +#: js/blocks/MediaBlocks.js:692 +msgid "duration (ms)" msgstr "" -#: js/NumberBlocks.js:773 -msgid "The One-of block returns one of two choices." +#: js/blocks/MediaBlocks.js:728 +#.TRANS: translate a note into hertz, e.g., A4 -> 440HZ +msgid "note to frequency" msgstr "" -#: js/NumberBlocks.js:780 -#: js/PitchBlocks.js:616 -msgid "one of" +#: js/blocks/MediaBlocks.js:736 +msgid "The To frequency block converts a pitch name and octave to Hertz." msgstr "" -#: js/NumberBlocks.js:782 -msgid "this" +#: js/blocks/MediaBlocks.js:746 +#: js/blocks/PitchBlocks.js:656 +#: js/blocks/PitchBlocks.js:934 +#: js/blocks/PitchBlocks.js:1866 +#.TRANS: name2 is name as in name of pitch (JAPANESE ONLY) +msgid "name2" msgstr "" -#: js/NumberBlocks.js:782 -msgid "that" +#: js/blocks/MediaBlocks.js:812 +msgid "The Avatar block is used to change the appearance of the mouse." msgstr "" -#: js/NumberBlocks.js:837 -msgid "The Random block returns a random number." +#: js/blocks/MediaBlocks.js:819 +msgid "The Avatar block is used to change the appearance of the turtle." msgstr "" -#: js/NumberBlocks.js:844 -msgid "random" -msgstr "náhodný" +#: js/blocks/MediaBlocks.js:831 +#: js/blocks/MediaBlocks.js:891 +#.TRANS: a media object +msgid "size" +msgstr "" -#: js/NumberBlocks.js:846 -msgid "min" -msgstr "min" +#: js/blocks/MediaBlocks.js:831 +msgid "image" +msgstr "" -#: js/NumberBlocks.js:846 -msgid "max" -msgstr "max" +#: js/blocks/MediaBlocks.js:880 +msgid "The Show block is used to display text or images on the canvas." +msgstr "" -#: js/NumberBlocks.js:910 -msgid "The Number block holds a number." +#: js/blocks/MediaBlocks.js:888 +#.TRANS: show1 is show as in display an image or text on the screen. +msgid "show1" msgstr "" -#: js/BoxesBlocks.js:53 -#: js/BoxesBlocks.js:59 -msgid "The Add-to block is used to add to the value stored in a box." +#: js/blocks/MediaBlocks.js:891 +msgid "obj" msgstr "" -#: js/BoxesBlocks.js:61 -msgid "It can also be used with other blocks such as Color and Pen size." +#: js/blocks/MediaBlocks.js:938 +msgid "The Media block is used to import an image." msgstr "" -#: js/BoxesBlocks.js:73 -msgid "add" +#: js/blocks/MediaBlocks.js:973 +msgid "The Text block holds a text string." msgstr "" -#: js/BoxesBlocks.js:75 -#: js/temperament.js:716 -msgid "to" +#: js/blocks/MeterBlocks.js:34 +#.TRANS: musical meter (time signature), e.g., 4:4 +msgid "current meter" msgstr "" -#: js/BoxesBlocks.js:75 -#: js/BoxesBlocks.js:595 -#: js/HeapBlocks.js:544 -msgid "value1" +#: js/blocks/MeterBlocks.js:85 +#.TRANS: number of beats per minute +msgid "beat factor" msgstr "" -#: js/BoxesBlocks.js:118 -msgid "Block does not support incrementing." +#: js/blocks/MeterBlocks.js:161 +msgid "The Beats per minute block returns the current beats per minute." msgstr "" -#: js/BoxesBlocks.js:152 -msgid "The Add-1-to block adds one to the value stored in a box." +#: js/blocks/MeterBlocks.js:169 +#: js/widgets/status.js:152 +#.TRANS: number of beats played per minute +msgid "beats per minute2" msgstr "" -#: js/BoxesBlocks.js:163 -msgid "add 1 to" +#: js/blocks/MeterBlocks.js:169 +#: js/blocks/MeterBlocks.js:1056 +#: js/blocks/MeterBlocks.js:1133 +#: js/blocks/MeterBlocks.js:1211 +#.TRANS: sets tempo by defining a beat and beats per minute +msgid "beats per minute" msgstr "" -#: js/BoxesBlocks.js:211 -msgid "The Subtract-1-from block subtracts one from the value stored in a box." +#: js/blocks/MeterBlocks.js:233 +#.TRANS: count of current musical measure in meter +msgid "measure count" msgstr "" -#: js/BoxesBlocks.js:222 -msgid "subtract 1 from" +#: js/blocks/MeterBlocks.js:241 +msgid "The Measure count block returns the current measure." msgstr "" -#: js/BoxesBlocks.js:270 -#: js/BoxesBlocks.js:387 -msgid "The Box block returns the value stored in a box." +#: js/blocks/MeterBlocks.js:290 +#.TRANS: count of current beat in the meter +msgid "beat count" msgstr "" -#: js/BoxesBlocks.js:500 -#: js/BoxesBlocks.js:576 -msgid "The Store in block will store a value in a box." +#: js/blocks/MeterBlocks.js:300 +#: js/blocks/MeterBlocks.js:311 +#: js/blocks/MeterBlocks.js:565 +#: js/blocks/MeterBlocks.js:576 +msgid "The Beat count block is the number of the current beat," msgstr "" -#: js/BoxesBlocks.js:652 -msgid "The Box2 block returns the value stored in Box2." +#: js/blocks/MeterBlocks.js:313 +#: js/blocks/MeterBlocks.js:578 +msgid "eg 1, 2, 3, or 4." msgstr "" -#: js/BoxesBlocks.js:703 -msgid "The Store in Box2 block is used to store a value in Box2." +#: js/blocks/MeterBlocks.js:368 +#.TRANS: count the number of notes +msgid "sum note values" msgstr "" -#: js/BoxesBlocks.js:715 -msgid "store in box2" +#: js/blocks/MeterBlocks.js:376 +#: js/blocks/MeterBlocks.js:440 +msgid "The Note counter block can be used to count the number of contained notes." msgstr "" -#: js/BoxesBlocks.js:761 -msgid "The Box1 block returns the value stored in Box1." +#: js/blocks/MeterBlocks.js:432 +#.TRANS: count the number of notes +msgid "note counter" msgstr "" -#: js/BoxesBlocks.js:812 -msgid "The Store in Box1 block is used to store a value in Box1." +#: js/blocks/MeterBlocks.js:496 +#.TRANS: number of whole notes that have been played +msgid "whole notes played" msgstr "" -#: js/BoxesBlocks.js:826 -msgid "store in box1" +#: js/blocks/MeterBlocks.js:505 +msgid "The Whole notes played block returns the total number of whole notes played." msgstr "" -#: js/HeapBlocks.js:49 -msgid "The Heap block returns the heap." +#: js/blocks/MeterBlocks.js:555 +#: js/turtleactions/DictActions.js:83 +#.TRANS: number of notes that have been played +msgid "notes played" msgstr "" -#: js/HeapBlocks.js:133 -msgid "show heap" +#: js/blocks/MeterBlocks.js:653 +msgid "The No clock block decouples the notes from the master clock." msgstr "" -#: js/HeapBlocks.js:181 -msgid "The Heap-length block returns the length of the heap." +#: js/blocks/MeterBlocks.js:661 +#.TRANS: don't lock notes to master clock +msgid "no clock" msgstr "" -#: js/HeapBlocks.js:195 -msgid "heap length" +#: js/blocks/MeterBlocks.js:700 +msgid "on weak beat do" msgstr "" -#: js/HeapBlocks.js:254 -msgid "The Heap-empty? block returns true if the heap is empty." +#: js/blocks/MeterBlocks.js:705 +msgid "The On-weak-beat block lets you specify actions to take on weak (off) beats." msgstr "" -#: js/HeapBlocks.js:268 -#.TRANS: Is the heap empty? -msgid "heap empty?" +#: js/blocks/MeterBlocks.js:750 +msgid "on strong beat" msgstr "" -#: js/HeapBlocks.js:317 -msgid "The Empty-heap block empties the heap." +#: js/blocks/MeterBlocks.js:758 +msgid "The On-strong-beat block lets you specify actions to take on specified beats." msgstr "" -#: js/HeapBlocks.js:327 -#: js/HeapBlocks.js:647 -#.TRANS: empty the heap -msgid "empty heap" +#: js/blocks/MeterBlocks.js:769 +msgid "beat" msgstr "" -#: js/HeapBlocks.js:371 -msgid "The Reverse-heap block reverses the order of the heap." +#: js/blocks/MeterBlocks.js:813 +msgid "on every beat do" msgstr "" -#: js/HeapBlocks.js:384 -#.TRANS: reverse the order of the heap -msgid "reverse heap" +#: js/blocks/MeterBlocks.js:821 +msgid "The On-every-beat block lets you specify actions to take on every beat." msgstr "" -#: js/HeapBlocks.js:428 -msgid "The Index-heap block returns a value in the heap at a specified location." +#: js/blocks/MeterBlocks.js:874 +msgid "on every note do" msgstr "" -#: js/HeapBlocks.js:443 -#.TRANS: retrieve a value from the heap at index position in the heap -msgid "index heap" +#: js/blocks/MeterBlocks.js:882 +msgid "The On-every-note block lets you specify actions to take on every note." msgstr "" -#: js/HeapBlocks.js:523 -msgid "The Set-heap entry block sets a value in he heap at the specified location." +#: js/blocks/MeterBlocks.js:928 +#: js/blocks/MeterBlocks.js:999 +#.TRANS: sets tempo by defining a beat and beats per minute +msgid "master beats per minute" msgstr "" -#: js/HeapBlocks.js:619 -msgid "The Pop block removes the value at the top of the heap." +#: js/blocks/MeterBlocks.js:952 +#: js/blocks/MeterBlocks.js:1078 +#: js/blocks/MeterBlocks.js:1135 +msgid "bpm" msgstr "" -#: js/HeapBlocks.js:633 -#.TRANS: pop a value off the top of the heap -msgid "pop" -msgstr "bouchnout" +#: js/blocks/MeterBlocks.js:952 +#: js/blocks/MeterBlocks.js:1078 +#: js/blocks/MeterBlocks.js:1135 +msgid "beat value" +msgstr "" -#: js/HeapBlocks.js:680 -msgid "The Push block adds a value to the top of the heap." +#: js/blocks/MeterBlocks.js:1024 +#: js/blocks/MeterBlocks.js:1167 +#: js/blocks/MeterBlocks.js:1241 +msgid "Beats per minute must be > 30." msgstr "" -#: js/HeapBlocks.js:696 -#.TRANS: push a value onto the top of the heap -msgid "push" -msgstr "tlačit" +#: js/blocks/MeterBlocks.js:1027 +#: js/blocks/MeterBlocks.js:1170 +#: js/blocks/MeterBlocks.js:1244 +msgid "Maximum beats per minute is 1000." +msgstr "" -#: js/FlowBlocks.js:41 -msgid "The Backward block runs code in reverse order (Musical retrograde)." +#: js/blocks/MeterBlocks.js:1068 +msgid "The Beats per minute block sets the number of 1/4 notes per minute." msgstr "" -#: js/FlowBlocks.js:48 -msgid "backward" +#: js/blocks/MeterBlocks.js:1279 +#.TRANS: anacrusis +msgid "pickup" msgstr "" -#: js/FlowBlocks.js:124 -msgid "The Duplicate block will run each block multiple times." +#: js/blocks/MeterBlocks.js:1367 +msgid "number of beats" msgstr "" -#: js/FlowBlocks.js:136 -msgid "duplicate" +#: js/blocks/NumberBlocks.js:28 +msgid "The Int block returns an integer." msgstr "" -#: js/FlowBlocks.js:334 -msgid "The Default block is used inside of a Switch to define the default action." +#: js/blocks/NumberBlocks.js:34 +msgid "int" msgstr "" -#: js/FlowBlocks.js:342 -msgid "default" +#: js/blocks/NumberBlocks.js:73 +msgid "The Mod block returns the remainder from a division." msgstr "" -#: js/FlowBlocks.js:361 -#: js/FlowBlocks.js:418 -msgid "The Case Block must be used inside of a Switch Block." +#: js/blocks/NumberBlocks.js:79 +msgid "mod" +msgstr "mód" + +#: js/blocks/NumberBlocks.js:141 +msgid "The Power block calculates a power function." msgstr "" -#: js/FlowBlocks.js:389 -msgid "The Case block is used inside of a Switch to define matches." +#: js/blocks/NumberBlocks.js:196 +msgid "The Sqrt block returns the square root." msgstr "" -#: js/FlowBlocks.js:397 -msgid "case" +#: js/blocks/NumberBlocks.js:202 +msgid "sqrt" msgstr "" -#: js/FlowBlocks.js:446 -msgid "The Switch block will run the code in the matching Case." +#: js/blocks/NumberBlocks.js:248 +msgid "The Abs block returns the absolute value." msgstr "" -#: js/FlowBlocks.js:454 -msgid "switch" +#: js/blocks/NumberBlocks.js:254 +msgid "abs" msgstr "" -#: js/FlowBlocks.js:595 -msgid "The Stop block will stop a loop" +#: js/blocks/NumberBlocks.js:295 +msgid "The Distance block returns the distance between two points. For example, between the mouse and the center of the screen." msgstr "" -#: js/FlowBlocks.js:597 -msgid "Forever, Repeat, While, or Until." +#: js/blocks/NumberBlocks.js:301 +#: plugins/rodi.rtp:310 +msgid "distance" msgstr "" -#: js/FlowBlocks.js:604 -#: js/phrasemaker.js:3799 -#: js/musickeyboard.js:629 -#: js/musickeyboard.js:631 -#: js/timbre.js:417 -#: js/timbre.js:419 -#: plugins/rodi.rtp:29 -#: plugins/rodi.rtp:73 -#: plugins/rodi.rtp:413 -msgid "stop" -msgstr "Krok" +#: js/blocks/NumberBlocks.js:361 +msgid "The Divide block is used to divide." +msgstr "" -#: js/FlowBlocks.js:653 -msgid "The Waitfor block will wait until the condition is true." +#: js/blocks/NumberBlocks.js:441 +msgid "The Multiply block is used to multiply." msgstr "" -#: js/FlowBlocks.js:661 -msgid "wait for" +#: js/blocks/NumberBlocks.js:612 +msgid "The Minus block is used to subtract." msgstr "" -#: js/FlowBlocks.js:732 -msgid "The Until block will repeat until the condition is true." +#: js/blocks/NumberBlocks.js:723 +msgid "The Plus block is used to add." msgstr "" -#: js/FlowBlocks.js:740 -msgid "until" +#: js/blocks/NumberBlocks.js:849 +msgid "The One-of block returns one of two choices." msgstr "" -#: js/FlowBlocks.js:742 -#: js/FlowBlocks.js:822 -msgid "do2" +#: js/blocks/NumberBlocks.js:856 +#: js/blocks/PitchBlocks.js:616 +msgid "one of" msgstr "" -#: js/FlowBlocks.js:812 -msgid "The While block will repeat while the condition is true." +#: js/blocks/NumberBlocks.js:858 +msgid "this" msgstr "" -#: js/FlowBlocks.js:820 -msgid "while" +#: js/blocks/NumberBlocks.js:858 +msgid "that" msgstr "" -#: js/FlowBlocks.js:903 -#: js/FlowBlocks.js:968 -#: js/FlowBlocks.js:979 -msgid "In this example if the mouse button is pressed a snare drum will play." +#: js/blocks/NumberBlocks.js:913 +msgid "The Random block returns a random number." msgstr "" -#: js/FlowBlocks.js:925 -#: js/FlowBlocks.js:988 -msgid "if" -msgstr "jestli" +#: js/blocks/NumberBlocks.js:920 +msgid "random" +msgstr "náhodný" -#: js/FlowBlocks.js:927 -#: js/FlowBlocks.js:990 -msgid "then" -msgstr "potom" +#: js/blocks/NumberBlocks.js:922 +msgid "min" +msgstr "min" -#: js/FlowBlocks.js:927 -msgid "else" -msgstr "jinak" +#: js/blocks/NumberBlocks.js:922 +msgid "max" +msgstr "max" -#: js/FlowBlocks.js:1025 -msgid "The Forever block will repeat the contained blocks forever." +#: js/blocks/NumberBlocks.js:986 +msgid "The Number block holds a number." msgstr "" -#: js/FlowBlocks.js:1037 -msgid "forever" -msgstr "navždy" - -#: js/FlowBlocks.js:1073 -msgid "The Repeat block will repeat the contained blocks." +#: js/blocks/OrnamentBlocks.js:32 +msgid "staccato factor" msgstr "" -#: js/FlowBlocks.js:1075 -msgid "In this example the note will be played 4 times." +#: js/blocks/OrnamentBlocks.js:108 +msgid "slur factor" msgstr "" -#: js/FlowBlocks.js:1083 -msgid "repeat" -msgstr "opakovat" - -#: js/FlowBlocks.js:1123 -msgid "duplicate factor" +#: js/blocks/OrnamentBlocks.js:217 +#: js/blocks/OrnamentBlocks.js:309 +#.TRANS: the neighbor refers to a neighboring note, e.g., D is a neighbor of C +msgid "neighbor" msgstr "" -#: js/PitchBlocks.js:39 -#: js/musicutils.js:722 -#: js/musicutils.js:1117 -#: js/synthutils.js:112 -#.TRANS: square wave -msgid "square" +#: js/blocks/OrnamentBlocks.js:293 +msgid "The Neighbor block rapidly switches between neighboring pitches." msgstr "" -#: js/PitchBlocks.js:62 -#: js/ToneBlocks.js:39 -#: js/musicutils.js:723 -#: js/musicutils.js:1118 -#: js/synthutils.js:116 -#.TRANS: triangle wave -msgid "triangle" +#: js/blocks/OrnamentBlocks.js:364 +msgid "glide" msgstr "" -#: js/PitchBlocks.js:85 -#: js/musicutils.js:721 -#: js/musicutils.js:1116 -#: js/synthutils.js:110 -#.TRANS: sine wave -msgid "sine" +#: js/blocks/OrnamentBlocks.js:479 +#: js/blocks/OrnamentBlocks.js:643 +msgid "slur" msgstr "" -#: js/PitchBlocks.js:108 -#: js/musicutils.js:724 -#: js/musicutils.js:1119 -#: js/synthutils.js:114 -#.TRANS: sawtooth wave -msgid "sawtooth" +#: js/blocks/OrnamentBlocks.js:558 +#: js/blocks/OrnamentBlocks.js:710 +#.TRANS: play each note sharply detached from the others +msgid "staccato" msgstr "" -#: js/PitchBlocks.js:141 -#.TRANS: musical transposition (adjustment of pitch up or down) -msgid "transposition" +#: js/blocks/RhythmBlocks.js:182 +#: js/blocks/RhythmBlocks.js:1086 +#: js/blocks/RhythmBlocks.js:1162 +msgid "Note value must be greater than 0." msgstr "" -#: js/PitchBlocks.js:168 -#.TRANS: step down one note in current musical scale -msgid "scalar step down" +#: js/blocks/RhythmBlocks.js:215 +#: js/blocks/RhythmBlocks.js:278 +#: js/blocks/RhythmBlocks.js:350 +#.TRANS: swing is a rhythmic variation that emphasises the offbeat +msgid "swing" msgstr "" -#: js/PitchBlocks.js:172 -msgid "The Scalar step down block returns the number of semi-tones down to the previous note in the current key and mode." +#: js/blocks/RhythmBlocks.js:355 +#.TRANS: the amount to shift to the offbeat note +msgid "swing value" msgstr "" -#: js/PitchBlocks.js:190 -#.TRANS: step up one note in current musical scale -msgid "scalar step up" +#: js/blocks/RhythmBlocks.js:419 +msgid "The Skip notes block will cause notes to be skipped." msgstr "" -#: js/PitchBlocks.js:194 -msgid "The Scalar step up block returns the number of semi-tones up to the next note in the current key and mode." +#: js/blocks/RhythmBlocks.js:427 +#.TRANS: substitute rests on notes being skipped +msgid "skip notes" msgstr "" -#: js/PitchBlocks.js:212 -#.TRANS: the change measured in half-steps between the current pitch and the previous pitch -msgid "change in pitch" +#: js/blocks/RhythmBlocks.js:489 +#.TRANS: speed up note duration by some factor, e.g. convert 1/4 to 1/8 notes by using a factor of 2 +msgid "multiply note value" msgstr "" -#: js/PitchBlocks.js:216 -msgid "The Change in pitch block is the difference (in half steps) between the current pitch being played and the previous pitch played." +#: js/blocks/RhythmBlocks.js:542 +msgid "The Tie block works on pairs of notes, combining them into one note." msgstr "" -#: js/PitchBlocks.js:243 -#.TRANS: the change measured in scale-steps between the current pitch and the previous pitch -msgid "scalar change in pitch" +#: js/blocks/RhythmBlocks.js:550 +#.TRANS: tie notes together into one longer note +msgid "tie" msgstr "" -#: js/PitchBlocks.js:250 -#: js/PitchBlocks.js:432 -#: js/PitchBlocks.js:1629 -#: js/DictActions.js:89 -#: js/temperament.js:477 -#: js/temperament.js:481 -#: js/temperament.js:714 -#.TRANS: convert current note to piano key (1-88) -#.TRANS: a mapping of pitch to the 88 piano keys -msgid "pitch number" +#: js/blocks/RhythmBlocks.js:591 +#: js/blocks/RhythmBlocks.js:671 +#.TRANS: a dotted note is played for 1.5x its value, e.g., 1/8. --> 3/16 +msgid "dot" msgstr "" -#: js/PitchBlocks.js:256 -msgid "The Pitch number block is the value of the pitch of the note currently being played." +#: js/blocks/RhythmBlocks.js:619 +#: js/turtleactions/RhythmActions.js:221 +msgid "An argument of -1 results in a note value of 0." msgstr "" -#: js/PitchBlocks.js:329 -#: js/PitchBlocks.js:433 -#.TRANS: the current pitch expressed in Hertz -msgid "pitch in hertz" +#: js/blocks/RhythmBlocks.js:661 +msgid "The Dot block extends the duration of a note by 50%." msgstr "" -#: js/PitchBlocks.js:334 -msgid "The Pitch in Hertz block is the value in Hertz of the pitch of the note currently being played." +#: js/blocks/RhythmBlocks.js:663 +msgid "Eg a dotted quarter note will play for 3/8 (1/4 + 1/8) of a beat." msgstr "" -#: js/PitchBlocks.js:367 -#: js/DictActions.js:87 -msgid "current pitch" +#: js/blocks/RhythmBlocks.js:765 +#.TRANS: Japanese only: note value block for drum +msgid "note value drum" msgstr "" -#: js/PitchBlocks.js:373 -msgid "The Current Pitch block is used with the Pitch Converter block. In the example above, current pitch, sol 4, is displayed as 392 hertz." +#: js/blocks/RhythmBlocks.js:829 +msgid "392 hertz" msgstr "" -#: js/PitchBlocks.js:410 -msgid "This block converts the pitch value of the last note played into different formats such as hertz, letter name, pitch number, et al." +#: js/blocks/RhythmBlocks.js:1119 +msgid "The Note block is a container for one or more Pitch blocks." msgstr "" -#: js/PitchBlocks.js:434 -msgid "alphabet" +#: js/blocks/RhythmBlocks.js:1121 +msgid "The Note block specifies the duration (note value) of its contents." msgstr "" -#: js/PitchBlocks.js:436 -#.TRANS: Translate as "alphabet class" -msgid "letter class" +#: js/blocks/RhythmBlocks.js:1128 +#: js/blocks/PitchBlocks.js:974 +#: js/blocks/PitchBlocks.js:1007 +#: js/blocks/ProgramBlocks.js:1186 +#: js/blocks/ProgramBlocks.js:1227 +#: js/widgets/status.js:190 +#: js/widgets/temperament.js:464 +#: js/widgets/temperament.js:486 +#: js/widgets/temperament.js:496 +#: js/widgets/temperament.js:617 +#: plugins/rodi.rtp:192 +#.TRANS: a musical note consisting of pitch and duration +msgid "note" msgstr "" -#: js/PitchBlocks.js:437 -msgid "solfege class" +#: js/blocks/RhythmBlocks.js:1130 +msgid "value2" msgstr "" -#: js/PitchBlocks.js:438 -msgid "staff y" +#: js/blocks/RhythmBlocks.js:1200 +msgid "define frequency" msgstr "" -#: js/PitchBlocks.js:439 -msgid "solfege syllable" +#: js/blocks/RhythmBlocks.js:1218 +#: js/widgets/temperament.js:787 +#: js/widgets/temperament.js:1587 +msgid "octave space" msgstr "" -#: js/PitchBlocks.js:440 -msgid "pitch class" +#: js/blocks/SensorsBlocks.js:36 +msgid "The Input block prompts for keyboard input." msgstr "" -#: js/PitchBlocks.js:441 -msgid "scalar class" +#: js/blocks/SensorsBlocks.js:46 +msgid "input" msgstr "" -#: js/PitchBlocks.js:443 -msgid "nth degree" +#: js/blocks/SensorsBlocks.js:64 +msgid "Input a value" msgstr "" -#: js/PitchBlocks.js:444 -msgid "pitch to shade" +#: js/blocks/SensorsBlocks.js:126 +msgid "input value" msgstr "" -#: js/PitchBlocks.js:445 -msgid "pitch to color" +#: js/blocks/SensorsBlocks.js:131 +msgid "The Input-value block stores the input." msgstr "" -#: js/PitchBlocks.js:629 -#: js/musickeyboard.js:565 -#.TRANS: MIDI is a technical standard for electronic music -msgid "MIDI" +#: js/blocks/SensorsBlocks.js:238 +msgid "loudness" msgstr "" -#: js/PitchBlocks.js:642 -#.TRANS: set an offset associated with the numeric piano keyboard mapping -msgid "set pitch number offset" +#: js/blocks/SensorsBlocks.js:245 +msgid "The Loudness block returns the volume detected by the microphone." msgstr "" -#: js/PitchBlocks.js:645 -msgid "The Set pitch number offset block is used to set the offset for mapping pitch numbers to pitch and octave." +#: js/blocks/SensorsBlocks.js:300 +msgid "click" msgstr "" -#: js/PitchBlocks.js:679 -#.TRANS: convert piano key number (1-88) to pitch -msgid "number to pitch" +#: js/blocks/SensorsBlocks.js:306 +msgid "The Click block triggers an event if a mouse has been clicked." msgstr "" -#: js/PitchBlocks.js:682 -msgid "The Number to pitch block will convert a pitch number to a pich name." +#: js/blocks/SensorsBlocks.js:313 +msgid "The Click block triggers an event if a turtle has been clicked." msgstr "" -#: js/PitchBlocks.js:715 -#.TRANS: convert piano key number (1-88) to octave -msgid "number to octave" +#: js/blocks/SensorsBlocks.js:342 +msgid "cursor over" msgstr "" -#: js/PitchBlocks.js:717 -msgid "The Number to octave block will convert a pitch number to an octave." +#: js/blocks/SensorsBlocks.js:387 +msgid "cursor out" msgstr "" -#: js/PitchBlocks.js:726 -msgid "y to pitch" +#: js/blocks/SensorsBlocks.js:433 +msgid "cursor button down" msgstr "" -#: js/PitchBlocks.js:729 -msgid "Y to pitch block will convert a staff y position to corresponding pitch notation." +#: js/blocks/SensorsBlocks.js:477 +msgid "cursor button up" msgstr "" -#: js/PitchBlocks.js:841 -msgid "accidental selector" +#: js/blocks/SensorsBlocks.js:521 +#: js/blocks/PenBlocks.js:48 +#: plugins/rodi.rtp:219 +msgid "blue" msgstr "" -#: js/PitchBlocks.js:844 -msgid "The Accidental selector block is used to choose between double-sharp, sharp, natural, flat, and double-flat." +#: js/blocks/SensorsBlocks.js:577 +#: js/blocks/PenBlocks.js:64 +#: plugins/rodi.rtp:218 +msgid "green" msgstr "" -#: js/PitchBlocks.js:858 -msgid "Pitch can be specified in terms of ni dha pa ma ga re sa." +#: js/blocks/SensorsBlocks.js:633 +#: js/blocks/PenBlocks.js:112 +#: plugins/rodi.rtp:217 +msgid "red" msgstr "" -#: js/PitchBlocks.js:872 -msgid "Pitch can be specified in terms of C D E F G A B." +#: js/blocks/SensorsBlocks.js:638 +msgid "The Get red block returns the red component of the pixel under the mouse." msgstr "" -#: js/PitchBlocks.js:883 -msgid "solfege" +#: js/blocks/SensorsBlocks.js:644 +msgid "The Get red block returns the red component of the pixel under the turtle." msgstr "" -#: js/PitchBlocks.js:886 -msgid "Pitch can be specified in terms of do re mi fa sol la ti." +#: js/blocks/SensorsBlocks.js:685 +#: plugins/rodi.rtp:216 +msgid "pixel color" msgstr "" -#: js/PitchBlocks.js:920 -msgid "The Invert block rotates any contained notes around a target note." +#: js/blocks/SensorsBlocks.js:690 +msgid "The Get pixel block returns the color of the pixel under the mouse." msgstr "" -#: js/PitchBlocks.js:927 -#.TRANS: pitch inversion rotates a pitch around another pitch -msgid "invert" +#: js/blocks/SensorsBlocks.js:696 +msgid "The Get pixel block returns the color of the pixel under the turtle." msgstr "" -#: js/PitchBlocks.js:929 -#: js/PitchBlocks.js:935 -#: js/PitchActions.js:727 -#: js/musicutils.js:726 -#: js/musicutils.js:902 -#.TRANS: invert based on even or odd number or musical scale -#.TRANS: even numbers -msgid "even" +#: js/blocks/SensorsBlocks.js:758 +msgid "time" msgstr "" -#: js/PitchBlocks.js:935 -#: js/PitchActions.js:729 -#: js/musicutils.js:728 -#: js/musicutils.js:903 -#.TRANS: odd numbers -msgid "odd" +#: js/blocks/SensorsBlocks.js:804 +msgid "cursor y" msgstr "" -#: js/PitchBlocks.js:935 -#: js/PitchActions.js:731 -#: js/musicutils.js:729 -#: js/musicutils.js:904 -msgid "scalar" +#: js/blocks/SensorsBlocks.js:809 +msgid "The Cursor Y block returns the vertical position of the mouse." msgstr "" -#: js/PitchBlocks.js:966 -#.TRANS: pitch inversion rotates a pitch around another pitch (odd number) -msgid "invert (odd)" +#: js/blocks/SensorsBlocks.js:845 +msgid "cursor x" msgstr "" -#: js/PitchBlocks.js:999 -#.TRANS: pitch inversion rotates a pitch around another pitch (even number) -msgid "invert (even)" +#: js/blocks/SensorsBlocks.js:850 +msgid "The Cursor X block returns the horizontal position of the mouse." msgstr "" -#: js/PitchBlocks.js:1020 -#.TRANS: register is the octave of the current pitch -msgid "register" +#: js/blocks/SensorsBlocks.js:886 +msgid "mouse button" msgstr "" -#: js/PitchBlocks.js:1024 -msgid "The Register block provides an easy way to modify the register (octave) of the notes that follow it." +#: js/blocks/SensorsBlocks.js:888 +msgid "The Mouse-button block returns True if the mouse button is pressed." msgstr "" -#: js/PitchBlocks.js:1074 -msgid "The Semi-tone transposition block will shift the pitches contained inside Note blocks up (or down) by half steps." +#: js/blocks/SensorsBlocks.js:934 +msgid "to ASCII" msgstr "" -#: js/PitchBlocks.js:1076 -msgid "In the example shown above, sol is shifted up to sol#." +#: js/blocks/SensorsBlocks.js:938 +msgid "The To ASCII block converts numbers to letters." msgstr "" -#: js/PitchBlocks.js:1082 -#.TRANS: adjust the amount of shift (up or down) of a pitch -msgid "semi-tone transpose" +#: js/blocks/SensorsBlocks.js:1005 +msgid "The Keyboard block returns computer keyboard input." msgstr "" -#: js/PitchBlocks.js:1115 -msgid "The Transpose by Ratio block will shift the pitches contained inside Note blocks up (or down) by a ratio" +#: js/blocks/RhythmBlockPaletteBlocks.js:50 +#: js/blocks/RhythmBlockPaletteBlocks.js:233 +#.TRANS: rhythm block +#.TRANS: translate "rhythm1" as rhythm +msgid "rhythm1" msgstr "" -#: js/PitchBlocks.js:1121 -#.TRANS: adjust the amount of shift (up or down) of a pitch -msgid "transpose by ratio" +#: js/blocks/RhythmBlockPaletteBlocks.js:70 +#: js/blocks/RhythmBlockPaletteBlocks.js:252 +#: js/blocks/RhythmBlockPaletteBlocks.js:485 +#: js/blocks/RhythmBlockPaletteBlocks.js:554 +#: js/blocks/RhythmBlockPaletteBlocks.js:875 +msgid "number of notes" msgstr "" -#: js/PitchBlocks.js:1204 -#.TRANS: down sixth means the note is five scale degrees below current note -msgid "down sixth" +#: js/blocks/RhythmBlockPaletteBlocks.js:126 +msgid "polyphonic rhythm" msgstr "" -#: js/PitchBlocks.js:1223 -#.TRANS: down third means the note is two scale degrees below current note -msgid "down third" +#: js/blocks/RhythmBlockPaletteBlocks.js:219 +msgid "The Rhythm block is used to generate rhythm patterns." msgstr "" -#: js/PitchBlocks.js:1242 -#.TRANS: seventh means the note is the six scale degrees above current note -msgid "seventh" +#: js/blocks/RhythmBlockPaletteBlocks.js:280 +msgid "1/64 note" msgstr "" -#: js/PitchBlocks.js:1261 -#.TRANS: sixth means the note is the five scale degrees above current note -msgid "sixth" +#: js/blocks/RhythmBlockPaletteBlocks.js:304 +msgid "1/32 note" msgstr "" -#: js/PitchBlocks.js:1280 -#.TRANS: fifth means the note is the four scale degrees above current note -msgid "fifth" +#: js/blocks/RhythmBlockPaletteBlocks.js:332 +msgid "1/16 note" msgstr "" -#: js/PitchBlocks.js:1300 -#.TRANS: fourth means the note is three scale degrees above current note -msgid "fourth" +#: js/blocks/RhythmBlockPaletteBlocks.js:360 +msgid "eighth note" msgstr "" -#: js/PitchBlocks.js:1319 -#.TRANS: third means the note is two scale degrees above current note -msgid "third" +#: js/blocks/RhythmBlockPaletteBlocks.js:388 +msgid "quarter note" msgstr "" -#: js/PitchBlocks.js:1338 -#.TRANS: second means the note is one scale degree above current note -msgid "second" +#: js/blocks/RhythmBlockPaletteBlocks.js:416 +msgid "half note" msgstr "" -#: js/PitchBlocks.js:1379 -msgid "The Scalar transposition block will shift the pitches contained inside Note blocks up (or down) the scale." +#: js/blocks/RhythmBlockPaletteBlocks.js:444 +msgid "whole note" msgstr "" -#: js/PitchBlocks.js:1381 -msgid "In the example shown above, sol is shifted up to la." +#: js/blocks/RhythmBlockPaletteBlocks.js:482 +#: js/blocks/RhythmBlockPaletteBlocks.js:551 +#: js/blocks/RhythmBlockPaletteBlocks.js:602 +#.TRANS: A tuplet is a note value divided into irregular time values. +msgid "tuplet" msgstr "" -#: js/PitchBlocks.js:1388 -#.TRANS: adjust the amount of shift (up or down) of a pitch by musical scale (scalar) steps -msgid "scalar transpose" +#: js/blocks/RhythmBlockPaletteBlocks.js:768 +msgid "septuplet" msgstr "" -#: js/PitchBlocks.js:1423 -msgid "The Accidental block is used to create sharps and flats" +#: js/blocks/RhythmBlockPaletteBlocks.js:796 +msgid "quintuplet" msgstr "" -#: js/PitchBlocks.js:1430 -#.TRANS: An accidental is a modification to a pitch, e.g., sharp or flat. -msgid "accidental override" +#: js/blocks/RhythmBlockPaletteBlocks.js:824 +msgid "triplet" msgstr "" -#: js/PitchBlocks.js:1543 -msgid "The Hertz block (in combination with a Number block) will play a sound at the specified frequency." +#: js/blocks/RhythmBlockPaletteBlocks.js:851 +msgid "simple tuplet" msgstr "" -#: js/PitchBlocks.js:1633 -msgid "The Pitch Number block will play a pitch associated by its number, e.g. 0 for C and 7 for G." +#: js/blocks/RhythmBlockPaletteBlocks.js:861 +msgid "Tuplets are a collection of notes that get scaled to a specific duration." msgstr "" -#: js/PitchBlocks.js:1665 -#: js/PitchBlocks.js:1707 -#.TRANS: a numeric mapping of the notes in an octave based on the musical mode -#.TRANS: a numeric mapping of the notes in an octave based on the musical mode -msgid "nth modal pitch" +#: js/blocks/DrumBlocks.js:59 +msgid "The Noise name block is used to select a noise synthesizer." msgstr "" -#: js/PitchBlocks.js:1668 -msgid "n^th Modal Pitch takes the pattern of pitches in semitones for a mode and makes each point a degree of the mode," +#: js/blocks/DrumBlocks.js:102 +msgid "The Drum name block is used to select a drum." msgstr "" -#: js/PitchBlocks.js:1670 -msgid "starting from 1 and regardless of tonal framework (i.e. not always 8 notes in the octave)" +#: js/blocks/DrumBlocks.js:146 +msgid "The Effects name block is used to select a sound effect." msgstr "" -#: js/PitchBlocks.js:1711 -msgid "N^th Modal Pitch takes a number as an input as the n^th degree for the given mode. 0 is the first position, 1 is the second, -1 is the note before the first etc." +#: js/blocks/DrumBlocks.js:163 +msgid "noise" msgstr "" -#: js/PitchBlocks.js:1713 -msgid "The pitches change according to the mode specified without any need for respellings." +#: js/blocks/DrumBlocks.js:177 +msgid "The Play noise block will generate white, pink, or brown noise." msgstr "" -#: js/PitchBlocks.js:1752 -msgid "Scale Degree is a common convention in music. Scale Degree offers seven possible positions in the scale (1-7) and can be modified via accidentals." +#: js/blocks/DrumBlocks.js:317 +msgid "Replace every instance of a pitch with a drum sound." msgstr "" -#: js/PitchBlocks.js:1754 -msgid "Scale Degree 1 is always the first pitch in a given scale, regardless of octave." +#: js/blocks/DrumBlocks.js:328 +#.TRANS: map a pitch to a drum sound +msgid "map pitch to drum" msgstr "" -#: js/PitchBlocks.js:1776 -#.TRANS: step some number of notes in current musical scale -msgid "scalar step" +#: js/blocks/DrumBlocks.js:395 +msgid "In the example above, a kick drum sound will be played instead of sol." msgstr "" -#: js/PitchBlocks.js:1781 -msgid "The Scalar Step block (in combination with a Number block) will play the next pitch in a scale," +#: js/blocks/DrumBlocks.js:407 +#.TRANS: set the current drum sound for playback +msgid "set drum" msgstr "" -#: js/PitchBlocks.js:1783 -msgid "eg if the last note played was sol, Scalar Step 1 will play la." +#: js/blocks/DrumBlocks.js:451 +msgid "sound effect" msgstr "" -#: js/PitchBlocks.js:1818 -msgid "The Pitch block specifies the pitch name and octave of a note that together determine the frequency of the note." +#: js/blocks/DrumBlocks.js:489 +msgid "You can use multiple Drum blocks within a Note block." msgstr "" -#: js/GraphicsBlocks.js:46 -#: js/DictActions.js:77 -#: js/DictActions.js:155 -#: js/DictActions.js:189 +#: js/blocks/GraphicsBlocks.js:46 +#: js/turtleactions/DictActions.js:77 +#: js/turtleactions/DictActions.js:144 +#: js/turtleactions/DictActions.js:173 msgid "heading" msgstr "nadpis" -#: js/GraphicsBlocks.js:56 +#: js/blocks/GraphicsBlocks.js:56 msgid "The Heading block returns the orientation of the mouse." msgstr "" -#: js/GraphicsBlocks.js:62 +#: js/blocks/GraphicsBlocks.js:62 msgid "The Heading block returns the orientation of the turtle." msgstr "" -#: js/GraphicsBlocks.js:133 +#: js/blocks/GraphicsBlocks.js:133 msgid "The Y block returns the vertical position of the mouse." msgstr "" -#: js/GraphicsBlocks.js:140 +#: js/blocks/GraphicsBlocks.js:140 msgid "The Y block returns the vertical position of the turtle." msgstr "" -#: js/GraphicsBlocks.js:149 +#: js/blocks/GraphicsBlocks.js:149 msgid "y3" msgstr "" -#: js/GraphicsBlocks.js:219 +#: js/blocks/GraphicsBlocks.js:219 msgid "The X block returns the horizontal position of the mouse." msgstr "" -#: js/GraphicsBlocks.js:226 +#: js/blocks/GraphicsBlocks.js:226 msgid "The X block returns the horizontal position of the turtle." msgstr "" -#: js/GraphicsBlocks.js:235 +#: js/blocks/GraphicsBlocks.js:235 msgid "x3" msgstr "" -#: js/GraphicsBlocks.js:295 +#: js/blocks/GraphicsBlocks.js:295 msgid "scroll xy" msgstr "" -#: js/GraphicsBlocks.js:303 +#: js/blocks/GraphicsBlocks.js:303 msgid "The Scroll XY block moves the canvas." msgstr "" -#: js/GraphicsBlocks.js:313 +#: js/blocks/GraphicsBlocks.js:313 msgid "x2" msgstr "" -#: js/GraphicsBlocks.js:313 +#: js/blocks/GraphicsBlocks.js:313 msgid "y2" msgstr "" -#: js/GraphicsBlocks.js:373 -#: js/temperament.js:213 -#: js/temperament.js:241 +#: js/blocks/GraphicsBlocks.js:373 +#: js/widgets/temperament.js:319 +#: js/widgets/temperament.js:347 msgid "clear" msgstr "" -#: js/GraphicsBlocks.js:426 +#: js/blocks/GraphicsBlocks.js:426 msgid "The Control-point 2 block sets the second control point for the Bezier curve." msgstr "" -#: js/GraphicsBlocks.js:433 +#: js/blocks/GraphicsBlocks.js:433 msgid "control point 2" msgstr "" -#: js/GraphicsBlocks.js:436 -#: js/GraphicsBlocks.js:487 -#: js/GraphicsBlocks.js:534 -#: js/GraphicsBlocks.js:750 +#: js/blocks/GraphicsBlocks.js:436 +#: js/blocks/GraphicsBlocks.js:487 +#: js/blocks/GraphicsBlocks.js:534 +#: js/blocks/GraphicsBlocks.js:750 msgid "x1" msgstr "" -#: js/GraphicsBlocks.js:436 -#: js/GraphicsBlocks.js:487 -#: js/GraphicsBlocks.js:534 -#: js/GraphicsBlocks.js:750 +#: js/blocks/GraphicsBlocks.js:436 +#: js/blocks/GraphicsBlocks.js:487 +#: js/blocks/GraphicsBlocks.js:534 +#: js/blocks/GraphicsBlocks.js:750 msgid "y1" msgstr "" -#: js/GraphicsBlocks.js:477 +#: js/blocks/GraphicsBlocks.js:477 msgid "The Control-point 1 block sets the first control point for the Bezier curve." msgstr "" -#: js/GraphicsBlocks.js:484 +#: js/blocks/GraphicsBlocks.js:484 msgid "control point 1" msgstr "" -#: js/GraphicsBlocks.js:527 +#: js/blocks/GraphicsBlocks.js:527 msgid "The Bezier block draws a Bezier curve." msgstr "" -#: js/GraphicsBlocks.js:531 +#: js/blocks/GraphicsBlocks.js:531 msgid "bezier" msgstr "" -#: js/GraphicsBlocks.js:592 +#: js/blocks/GraphicsBlocks.js:592 msgid "The Arc block moves the turtle in an arc." msgstr "" -#: js/GraphicsBlocks.js:600 +#: js/blocks/GraphicsBlocks.js:600 msgid "arc" msgstr "oblouk" -#: js/GraphicsBlocks.js:603 +#: js/blocks/GraphicsBlocks.js:603 msgid "angle" msgstr "roh" -#: js/GraphicsBlocks.js:603 +#: js/blocks/GraphicsBlocks.js:603 msgid "radius" msgstr "poloměr" -#: js/GraphicsBlocks.js:620 -#: js/GraphicsBlocks.js:767 -#: js/GraphicsBlocks.js:1010 -#: js/GraphicsBlocks.js:1093 +#: js/blocks/GraphicsBlocks.js:620 +#: js/blocks/GraphicsBlocks.js:767 +#: js/blocks/GraphicsBlocks.js:1010 +#: js/blocks/GraphicsBlocks.js:1093 msgid "Value must be within -5000 to 5000 when Wrap Mode is off." msgstr "" -#: js/GraphicsBlocks.js:622 -#: js/GraphicsBlocks.js:769 -#: js/GraphicsBlocks.js:1012 -#: js/GraphicsBlocks.js:1095 +#: js/blocks/GraphicsBlocks.js:622 +#: js/blocks/GraphicsBlocks.js:769 +#: js/blocks/GraphicsBlocks.js:1012 +#: js/blocks/GraphicsBlocks.js:1095 msgid "Value must be within -20000 to 20000 when Wrap Mode is on." msgstr "" -#: js/GraphicsBlocks.js:660 +#: js/blocks/GraphicsBlocks.js:660 msgid "set heading" msgstr "nastavit záhlaví" -#: js/GraphicsBlocks.js:673 +#: js/blocks/GraphicsBlocks.js:673 msgid "The Set heading block sets the heading of the turtle." msgstr "" -#: js/GraphicsBlocks.js:733 +#: js/blocks/GraphicsBlocks.js:733 msgid "The Set XY block moves the mouse to a specific position on the screen." msgstr "" -#: js/GraphicsBlocks.js:739 +#: js/blocks/GraphicsBlocks.js:739 msgid "The Set XY block moves the turtle to a specific position on the screen." msgstr "" -#: js/GraphicsBlocks.js:747 +#: js/blocks/GraphicsBlocks.js:747 msgid "set xy" msgstr "nastavit xy" -#: js/GraphicsBlocks.js:819 +#: js/blocks/GraphicsBlocks.js:819 msgid "The Right block turns the mouse to the right." msgstr "" -#: js/GraphicsBlocks.js:826 +#: js/blocks/GraphicsBlocks.js:826 msgid "The Right block turns the turtle to the right." msgstr "" -#: js/GraphicsBlocks.js:835 +#: js/blocks/GraphicsBlocks.js:835 msgid "right1" msgstr "" -#: js/GraphicsBlocks.js:835 +#: js/blocks/GraphicsBlocks.js:835 #: plugins/rodi.rtp:77 #: plugins/rodi.rtp:340 #: plugins/rodi.rtp:375 msgid "right" msgstr "vpravo" -#: js/GraphicsBlocks.js:899 +#: js/blocks/GraphicsBlocks.js:899 msgid "The Left block turns the mouse to the left." msgstr "" -#: js/GraphicsBlocks.js:906 +#: js/blocks/GraphicsBlocks.js:906 msgid "The Left block turns the turtle to the left." msgstr "" -#: js/GraphicsBlocks.js:915 +#: js/blocks/GraphicsBlocks.js:915 msgid "left1" msgstr "" -#: js/GraphicsBlocks.js:915 +#: js/blocks/GraphicsBlocks.js:915 #: plugins/rodi.rtp:79 #: plugins/rodi.rtp:339 #: plugins/rodi.rtp:362 msgid "left" msgstr "vlevo" -#: js/GraphicsBlocks.js:967 -#: js/temperament.js:734 -#: js/temperament.js:933 +#: js/blocks/GraphicsBlocks.js:967 +#: js/widgets/temperament.js:875 +#: js/widgets/temperament.js:1078 #: plugins/rodi.rtp:69 #: plugins/rodi.rtp:387 msgid "back" msgstr "zpět" -#: js/GraphicsBlocks.js:976 +#: js/blocks/GraphicsBlocks.js:976 msgid "The Back block moves the mouse backward." msgstr "" -#: js/GraphicsBlocks.js:983 +#: js/blocks/GraphicsBlocks.js:983 msgid "The Back block moves the turtle backward." msgstr "" -#: js/GraphicsBlocks.js:1050 +#: js/blocks/GraphicsBlocks.js:1050 #: plugins/rodi.rtp:71 #: plugins/rodi.rtp:400 msgid "forward" msgstr "vpřed" -#: js/GraphicsBlocks.js:1059 +#: js/blocks/GraphicsBlocks.js:1059 msgid "The Forward block moves the mouse forward." msgstr "" -#: js/GraphicsBlocks.js:1066 +#: js/blocks/GraphicsBlocks.js:1066 msgid "The Forward block moves the turtle forward." msgstr "" -#: js/GraphicsBlocks.js:1154 -#: js/GraphicsBlocks.js:1172 +#: js/blocks/GraphicsBlocks.js:1154 +#: js/blocks/GraphicsBlocks.js:1172 msgid "wrap" msgstr "" -#: js/OrnamentBlocks.js:32 -msgid "staccato factor" -msgstr "" - -#: js/OrnamentBlocks.js:108 -msgid "slur factor" -msgstr "" - -#: js/OrnamentBlocks.js:217 -#: js/OrnamentBlocks.js:309 -#.TRANS: the neighbor refers to a neighboring note, e.g., D is a neighbor of C -msgid "neighbor" -msgstr "" - -#: js/OrnamentBlocks.js:293 -msgid "The Neighbor block rapidly switches between neighboring pitches." -msgstr "" - -#: js/OrnamentBlocks.js:364 -msgid "glide" -msgstr "" - -#: js/OrnamentBlocks.js:479 -#: js/OrnamentBlocks.js:643 -msgid "slur" -msgstr "" - -#: js/OrnamentBlocks.js:558 -#: js/OrnamentBlocks.js:710 -#.TRANS: play each note sharply detached from the others -msgid "staccato" -msgstr "" - -#: js/PenBlocks.js:24 +#: js/blocks/PenBlocks.js:30 msgid "purple" msgstr "" -#: js/PenBlocks.js:37 -#: js/SensorsBlocks.js:521 -#: plugins/rodi.rtp:219 -msgid "blue" -msgstr "" - -#: js/PenBlocks.js:50 -#: js/SensorsBlocks.js:577 -#: plugins/rodi.rtp:218 -msgid "green" -msgstr "" - -#: js/PenBlocks.js:63 +#: js/blocks/PenBlocks.js:80 msgid "yellow" msgstr "" -#: js/PenBlocks.js:76 +#: js/blocks/PenBlocks.js:96 #: plugins/nutrition.rtp:164 msgid "orange" msgstr "" -#: js/PenBlocks.js:89 -#: js/SensorsBlocks.js:633 -#: plugins/rodi.rtp:217 -msgid "red" -msgstr "" - -#: js/PenBlocks.js:102 +#: js/blocks/PenBlocks.js:128 msgid "white" msgstr "" -#: js/PenBlocks.js:115 +#: js/blocks/PenBlocks.js:144 msgid "black" msgstr "" -#: js/PenBlocks.js:128 +#: js/blocks/PenBlocks.js:163 msgid "begin fill" msgstr "" -#: js/PenBlocks.js:143 +#: js/blocks/PenBlocks.js:190 msgid "end fill" msgstr "" -#: js/PenBlocks.js:159 -#: js/PenBlocks.js:386 +#: js/blocks/PenBlocks.js:212 +#: js/blocks/PenBlocks.js:560 #.TRANS: set the background color msgid "background" msgstr "" -#: js/PenBlocks.js:206 -#: js/DictActions.js:71 -#: js/DictActions.js:149 -#: js/DictActions.js:186 +#: js/blocks/PenBlocks.js:274 +#: js/turtleactions/DictActions.js:71 +#: js/turtleactions/DictActions.js:138 +#: js/turtleactions/DictActions.js:170 msgid "grey" msgstr "" -#: js/PenBlocks.js:210 +#: js/blocks/PenBlocks.js:282 msgid "The Grey block returns the current pen grey value." msgstr "" -#: js/PenBlocks.js:243 -#: js/DictActions.js:69 -#: js/DictActions.js:147 -#: js/DictActions.js:185 +#: js/blocks/PenBlocks.js:340 +#: js/turtleactions/DictActions.js:69 +#: js/turtleactions/DictActions.js:136 +#: js/turtleactions/DictActions.js:169 msgid "shade" msgstr "odstín" -#: js/PenBlocks.js:247 +#: js/blocks/PenBlocks.js:347 msgid "The Shade block returns the current pen shade value." msgstr "" -#: js/PenBlocks.js:280 -#: js/DictActions.js:67 -#: js/DictActions.js:145 -#: js/DictActions.js:184 +#: js/blocks/PenBlocks.js:405 +#: js/turtleactions/DictActions.js:67 +#: js/turtleactions/DictActions.js:134 +#: js/turtleactions/DictActions.js:168 msgid "color" msgstr "barva" -#: js/PenBlocks.js:285 +#: js/blocks/PenBlocks.js:415 msgid "The Color block returns the current pen color." msgstr "" -#: js/PenBlocks.js:318 -#: js/DictActions.js:73 -#: js/DictActions.js:151 -#: js/DictActions.js:187 +#: js/blocks/PenBlocks.js:470 +#: js/turtleactions/DictActions.js:73 +#: js/turtleactions/DictActions.js:140 +#: js/turtleactions/DictActions.js:171 msgid "pen size" msgstr "velikost pera" -#: js/PenBlocks.js:322 +#: js/blocks/PenBlocks.js:474 msgid "The Pen size block returns the current pen size value." msgstr "" -#: js/PenBlocks.js:355 +#: js/blocks/PenBlocks.js:513 msgid "set font" msgstr "" -#: js/PenBlocks.js:358 +#: js/blocks/PenBlocks.js:518 msgid "The Set font block sets the font used by the Show block." msgstr "" -#: js/PenBlocks.js:391 +#: js/blocks/PenBlocks.js:567 msgid "The Background block sets the window background color." msgstr "" -#: js/PenBlocks.js:408 +#: js/blocks/PenBlocks.js:598 msgid "The Hollow line block creates a line with a hollow center." msgstr "" -#: js/PenBlocks.js:415 +#: js/blocks/PenBlocks.js:606 #.TRANS: draw a line logo has a hollow space down its center msgid "hollow line" msgstr "" -#: js/PenBlocks.js:462 +#: js/blocks/PenBlocks.js:675 msgid "The Fill block fills in a shape with a color." msgstr "" -#: js/PenBlocks.js:470 +#: js/blocks/PenBlocks.js:684 #.TRANS: fill in as a solid color msgid "fill" msgstr "" -#: js/PenBlocks.js:527 +#: js/blocks/PenBlocks.js:761 #.TRANS: raise up the pen so logo it does not draw when it is moved msgid "pen up" msgstr "zapnout pero" -#: js/PenBlocks.js:532 +#: js/blocks/PenBlocks.js:768 msgid "The Pen-up block raises the pen so that it does not draw." msgstr "" -#: js/PenBlocks.js:552 +#: js/blocks/PenBlocks.js:802 #.TRANS: put down the pen so logo it draws when it is moved msgid "pen down" msgstr "vypnout pero" -#: js/PenBlocks.js:557 +#: js/blocks/PenBlocks.js:810 msgid "The Pen-down block lowers the pen so that it draws." msgstr "" -#: js/PenBlocks.js:577 +#: js/blocks/PenBlocks.js:844 #.TRANS: set the width of the line drawn by the pen msgid "set pen size" msgstr "nastavit velikost pera" -#: js/PenBlocks.js:583 +#: js/blocks/PenBlocks.js:854 msgid "The Set-pen-size block changes the size of the pen." msgstr "" -#: js/PenBlocks.js:623 +#: js/blocks/PenBlocks.js:913 #.TRANS: set degree of translucence of the pen color msgid "set translucency" msgstr "" -#: js/PenBlocks.js:627 +#: js/blocks/PenBlocks.js:921 msgid "The Set translucency block changes the opacity of the pen." msgstr "" -#: js/PenBlocks.js:668 +#: js/blocks/PenBlocks.js:981 msgid "set hue" msgstr "" -#: js/PenBlocks.js:672 +#: js/blocks/PenBlocks.js:989 msgid "The Set hue block changes the color of the pen." msgstr "" -#: js/PenBlocks.js:711 +#: js/blocks/PenBlocks.js:1047 msgid "set shade" msgstr "nastavit odstín" -#: js/PenBlocks.js:717 +#: js/blocks/PenBlocks.js:1057 msgid "The Set-shade block changes the pen color from dark to light." msgstr "" -#: js/PenBlocks.js:757 +#: js/blocks/PenBlocks.js:1111 #.TRANS: set the level of vividness of the pen color msgid "set grey" msgstr "" -#: js/PenBlocks.js:761 +#: js/blocks/PenBlocks.js:1119 msgid "The Set grey block changes the vividness of the pen color." msgstr "" -#: js/PenBlocks.js:800 +#: js/blocks/PenBlocks.js:1172 msgid "set color" msgstr "nastavit barvu" -#: js/PenBlocks.js:806 +#: js/blocks/PenBlocks.js:1182 msgid "The Set-color block changes the pen color." msgstr "" -#: js/VolumeBlocks.js:35 -msgid "synth volume" -msgstr "" - -#: js/VolumeBlocks.js:39 -msgid "The Synth volume block returns the current volume of the current synthesizer." -msgstr "" - -#: js/VolumeBlocks.js:47 -#: js/musicutils.js:730 -#: js/synthutils.js:56 -#.TRANS: musical instrument -msgid "piano" -msgstr "" - -#: js/VolumeBlocks.js:105 -msgid "master volume" -msgstr "" - -#: js/VolumeBlocks.js:109 -msgid "The Master volume block returns the master volume." -msgstr "" - -#: js/VolumeBlocks.js:355 -#: js/VolumeBlocks.js:524 -msgid "set synth volume" -msgstr "" - -#: js/VolumeBlocks.js:362 -#: js/VolumeBlocks.js:545 -msgid "synth" -msgstr "" - -#: js/VolumeBlocks.js:403 -#: js/VolumeBlocks.js:577 -#: js/VolumeBlocks.js:740 -#: js/VolumeActions.js:173 -msgid "Setting volume to 0." -msgstr "" - -#: js/VolumeBlocks.js:440 -msgid "Synth not found" -msgstr "" - -#: js/VolumeBlocks.js:494 -msgid "set drum volume" -msgstr "" - -#: js/VolumeBlocks.js:530 -msgid "The Set synth volume block will change the volume of a particular synth," -msgstr "" - -#: js/VolumeBlocks.js:532 -msgid "eg guitar violin snare drum etc." -msgstr "" - -#: js/VolumeBlocks.js:534 -msgid "The default volume is 50." -msgstr "" - -#: js/VolumeBlocks.js:536 -msgid "The range is 0 for silence to 100 for full volume." -msgstr "" - -#: js/VolumeBlocks.js:597 -msgid "set panning" -msgstr "" - -#: js/VolumeBlocks.js:603 -msgid "The Set Panning block sets the panning for all synthesizers." -msgstr "" - -#: js/VolumeBlocks.js:625 -msgid "Warning: Sound is coming out from only the left or right side." -msgstr "" - -#: js/VolumeBlocks.js:647 -#: js/VolumeBlocks.js:695 -msgid "set master volume" -msgstr "" - -#: js/VolumeBlocks.js:653 -msgid "The Set master volume block sets the volume for all synthesizers." -msgstr "" - -#: js/VolumeBlocks.js:784 -msgid "The Set relative volume block changes the volume of the contained notes." -msgstr "" - -#: js/VolumeBlocks.js:791 -msgid "set relative volume" -msgstr "" - -#: js/VolumeBlocks.js:857 -msgid "decrescendo" -msgstr "" - -#: js/VolumeBlocks.js:921 -msgid "crescendo" -msgstr "" - -#: js/ToneBlocks.js:34 -msgid "oscillator" -msgstr "" - -#: js/ToneBlocks.js:44 -#: js/timbre.js:1562 -#.TRANS: Partials refers to the number of sine waves combined into the sound. -msgid "partials" -msgstr "" - -#: js/ToneBlocks.js:76 -msgid "You are adding multiple oscillator blocks." -msgstr "" - -#: js/ToneBlocks.js:144 -#: js/timbre.js:1225 -#.TRANS: a duo synthesizer combines a synth with a sequencer -msgid "duo synth" -msgstr "" - -#: js/ToneBlocks.js:149 -msgid "The Duo synth block is a duo-frequency modulator used to define a timbre." -msgstr "" - -#: js/ToneBlocks.js:157 -#: js/timbre.js:1476 -msgid "vibrato rate" -msgstr "" - -#: js/ToneBlocks.js:157 -msgid "vibrato intensity" -msgstr "" - -#: js/ToneBlocks.js:185 -#: js/timbre.js:1221 -#.TRANS: AM (amplitude modulation) synthesizer -msgid "AM synth" -msgstr "" - -#: js/ToneBlocks.js:189 -msgid "The AM synth block is an amplitude modulator used to define a timbre." -msgstr "" - -#: js/ToneBlocks.js:224 -#: js/timbre.js:1223 -#.TRANS: FM (frequency modulation) synthesizer -msgid "FM synth" -msgstr "" - -#: js/ToneBlocks.js:228 -msgid "The FM synth block is a frequency modulator used to define a timbre." +#: js/blocks/PitchBlocks.js:141 +#.TRANS: musical transposition (adjustment of pitch up or down) +msgid "transposition" msgstr "" -#: js/ToneBlocks.js:262 -msgid "partial" +#: js/blocks/PitchBlocks.js:168 +#.TRANS: step down one note in current musical scale +msgid "scalar step down" msgstr "" -#: js/ToneBlocks.js:265 -msgid "The Partial block is used to specify a weight for a specific partial harmonic." +#: js/blocks/PitchBlocks.js:172 +msgid "The Scalar step down block returns the number of semi-tones down to the previous note in the current key and mode." msgstr "" -#: js/ToneBlocks.js:284 -#.TRANS: partials are weighted components in a harmonic series -msgid "Partial weight must be between 0 and 1." +#: js/blocks/PitchBlocks.js:190 +#.TRANS: step up one note in current musical scale +msgid "scalar step up" msgstr "" -#: js/ToneBlocks.js:297 -#.TRANS: partials are weighted components in a harmonic series -msgid "Partial block should be used inside of a Weighted-partials block." +#: js/blocks/PitchBlocks.js:194 +msgid "The Scalar step up block returns the number of semi-tones up to the next note in the current key and mode." msgstr "" -#: js/ToneBlocks.js:325 -#.TRANS: partials are weighted components in a harmonic series -msgid "weighted partials" +#: js/blocks/PitchBlocks.js:212 +#.TRANS: the change measured in half-steps between the current pitch and the previous pitch +msgid "change in pitch" msgstr "" -#: js/ToneBlocks.js:383 -msgid "The Harmonic block will add harmonics to the contained notes." +#: js/blocks/PitchBlocks.js:216 +msgid "The Change in pitch block is the difference (in half steps) between the current pitch being played and the previous pitch played." msgstr "" -#: js/ToneBlocks.js:390 -#.TRANS: A harmonic is an overtone. -msgid "harmonic" +#: js/blocks/PitchBlocks.js:243 +#.TRANS: the change measured in scale-steps between the current pitch and the previous pitch +msgid "scalar change in pitch" msgstr "" -#: js/ToneBlocks.js:431 -msgid "The Distortion block adds distortion to the pitch." +#: js/blocks/PitchBlocks.js:250 +#: js/blocks/PitchBlocks.js:432 +#: js/blocks/PitchBlocks.js:1667 +#: js/turtleactions/DictActions.js:89 +#: js/widgets/temperament.js:610 +#: js/widgets/temperament.js:614 +#: js/widgets/temperament.js:855 +#.TRANS: convert current note to piano key (1-88) +#.TRANS: a mapping of pitch to the 88 piano keys +msgid "pitch number" msgstr "" -#: js/ToneBlocks.js:438 -#: js/timbre.js:2100 -#.TRANS: distortion is an alteration in the sound -msgid "distortion" +#: js/blocks/PitchBlocks.js:256 +msgid "The Pitch number block is the value of the pitch of the note currently being played." msgstr "" -#: js/ToneBlocks.js:487 -msgid "The Tremolo block adds a wavering effect." +#: js/blocks/PitchBlocks.js:329 +#: js/blocks/PitchBlocks.js:433 +#.TRANS: the current pitch expressed in Hertz +msgid "pitch in hertz" msgstr "" -#: js/ToneBlocks.js:495 -#: js/timbre.js:2092 -#.TRANS: a wavering effect in a musical tone -msgid "tremolo" +#: js/blocks/PitchBlocks.js:334 +msgid "The Pitch in Hertz block is the value in Hertz of the pitch of the note currently being played." msgstr "" -#: js/ToneBlocks.js:500 -#: js/ToneBlocks.js:569 -#: js/ToneBlocks.js:630 -#: js/ToneBlocks.js:689 -#: js/timbre.js:2134 -#: js/timbre.js:2222 -#: js/timbre.js:2317 -#: js/timbre.js:2419 -#.TRANS: rate at which tremolo wavers -msgid "rate" +#: js/blocks/PitchBlocks.js:367 +#: js/turtleactions/DictActions.js:87 +msgid "current pitch" msgstr "" -#: js/ToneBlocks.js:502 -#: js/ToneBlocks.js:630 -#: js/timbre.js:2137 -#: js/timbre.js:2328 -#.TRANS: amplitude of tremolo waver -msgid "depth" +#: js/blocks/PitchBlocks.js:373 +msgid "The Current Pitch block is used with the Pitch Converter block. In the example above, current pitch, sol 4, is displayed as 392 hertz." msgstr "" -#: js/ToneBlocks.js:559 -msgid "The Phaser block adds a sweeping sound." +#: js/blocks/PitchBlocks.js:410 +msgid "This block converts the pitch value of the last note played into different formats such as hertz, letter name, pitch number, et al." msgstr "" -#: js/ToneBlocks.js:566 -#: js/timbre.js:2098 -#.TRANS: alter the phase of the sound -msgid "phaser" +#: js/blocks/PitchBlocks.js:434 +msgid "alphabet" msgstr "" -#: js/ToneBlocks.js:569 -#: js/timbre.js:2422 -msgid "octaves" +#: js/blocks/PitchBlocks.js:436 +#.TRANS: Translate as "alphabet class" +msgid "letter class" msgstr "" -#: js/ToneBlocks.js:569 -#: js/timbre.js:2425 -msgid "base frequency" +#: js/blocks/PitchBlocks.js:437 +msgid "solfege class" msgstr "" -#: js/ToneBlocks.js:619 -msgid "The Chorus block adds a chorus effect." +#: js/blocks/PitchBlocks.js:438 +msgid "staff y" msgstr "" -#: js/ToneBlocks.js:627 -#: js/timbre.js:2096 -#.TRANS: musical effect to simulate a choral sound -msgid "chorus" +#: js/blocks/PitchBlocks.js:439 +msgid "solfege syllable" msgstr "" -#: js/ToneBlocks.js:630 -msgid "delay" +#: js/blocks/PitchBlocks.js:440 +msgid "pitch class" msgstr "" -#: js/ToneBlocks.js:678 -msgid "The Vibrato block adds a rapid, slight variation in pitch." +#: js/blocks/PitchBlocks.js:441 +msgid "scalar class" msgstr "" -#: js/ToneBlocks.js:686 -#: js/timbre.js:2094 -#.TRANS: a rapid, slight variation in pitch -msgid "vibrato" +#: js/blocks/PitchBlocks.js:443 +msgid "nth degree" msgstr "" -#: js/ToneBlocks.js:689 -#: js/timbre.js:2221 -msgid "intensity" +#: js/blocks/PitchBlocks.js:444 +msgid "pitch to shade" msgstr "" -#: js/ToneBlocks.js:733 -#.TRANS: select synthesizer -msgid "set synth" +#: js/blocks/PitchBlocks.js:445 +msgid "pitch to color" msgstr "" -#: js/ToneBlocks.js:804 -msgid "synth name" +#: js/blocks/PitchBlocks.js:629 +#: js/widgets/musickeyboard.js:735 +#.TRANS: MIDI is a technical standard for electronic music +msgid "MIDI" msgstr "" -#: js/ToneBlocks.js:842 -msgid "set default instrument" +#: js/blocks/PitchBlocks.js:642 +#.TRANS: set an offset associated with the numeric piano keyboard mapping +msgid "set pitch number offset" msgstr "" -#: js/ToneBlocks.js:895 -#: js/ToneBlocks.js:943 -#.TRANS: set the characteristics of a custom instrument -msgid "set instrument" +#: js/blocks/PitchBlocks.js:645 +msgid "The Set pitch number offset block is used to set the offset for mapping pitch numbers to pitch and octave." msgstr "" -#: js/ToneBlocks.js:898 -#: js/ToneBlocks.js:926 -#: js/ToneBlocks.js:932 -msgid "The Set instrument block selects a voice for the synthesizer," +#: js/blocks/PitchBlocks.js:679 +#.TRANS: convert piano key number (1-88) to pitch +msgid "number to pitch" msgstr "" -#: js/ToneBlocks.js:900 -#: js/ToneBlocks.js:934 -msgid "eg guitar piano violin or cello." +#: js/blocks/PitchBlocks.js:682 +msgid "The Number to pitch block will convert a pitch number to a pich name." msgstr "" -#: js/ToneBlocks.js:1015 -msgid "Import a sound file to use as an instrument and set its pitch center." +#: js/blocks/PitchBlocks.js:715 +#.TRANS: convert piano key number (1-88) to octave +msgid "number to octave" msgstr "" -#: js/ToneBlocks.js:1110 -msgid "Upload a sound file to connect with the sample block." +#: js/blocks/PitchBlocks.js:717 +msgid "The Number to octave block will convert a pitch number to an octave." msgstr "" -#: js/MeterBlocks.js:34 -#.TRANS: musical meter (time signature), e.g., 4:4 -msgid "current meter" +#: js/blocks/PitchBlocks.js:726 +msgid "y to pitch" msgstr "" -#: js/MeterBlocks.js:85 -#.TRANS: number of beats per minute -msgid "beat factor" +#: js/blocks/PitchBlocks.js:729 +msgid "Y to pitch block will convert a staff y position to corresponding pitch notation." msgstr "" -#: js/MeterBlocks.js:161 -msgid "The Beats per minute block returns the current beats per minute." +#: js/blocks/PitchBlocks.js:841 +msgid "accidental selector" msgstr "" -#: js/MeterBlocks.js:169 -#: js/status.js:152 -#.TRANS: number of beats played per minute -msgid "beats per minute2" +#: js/blocks/PitchBlocks.js:844 +msgid "The Accidental selector block is used to choose between double-sharp, sharp, natural, flat, and double-flat." msgstr "" -#: js/MeterBlocks.js:169 -#: js/MeterBlocks.js:1056 -#: js/MeterBlocks.js:1133 -#: js/MeterBlocks.js:1211 -#.TRANS: sets tempo by defining a beat and beats per minute -msgid "beats per minute" +#: js/blocks/PitchBlocks.js:858 +msgid "Pitch can be specified in terms of ni dha pa ma ga re sa." msgstr "" -#: js/MeterBlocks.js:233 -#.TRANS: count of current musical measure in meter -msgid "measure count" +#: js/blocks/PitchBlocks.js:872 +msgid "Pitch can be specified in terms of C D E F G A B." msgstr "" -#: js/MeterBlocks.js:241 -msgid "The Measure count block returns the current measure." +#: js/blocks/PitchBlocks.js:884 +msgid "solfege" msgstr "" -#: js/MeterBlocks.js:290 -#.TRANS: count of current beat in the meter -msgid "beat count" +#: js/blocks/PitchBlocks.js:887 +msgid "Pitch can be specified in terms of do re mi fa sol la ti." msgstr "" -#: js/MeterBlocks.js:300 -#: js/MeterBlocks.js:311 -#: js/MeterBlocks.js:565 -#: js/MeterBlocks.js:576 -msgid "The Beat count block is the number of the current beat," +#: js/blocks/PitchBlocks.js:922 +msgid "The Invert block rotates any contained notes around a target note." msgstr "" -#: js/MeterBlocks.js:313 -#: js/MeterBlocks.js:578 -msgid "eg 1, 2, 3, or 4." +#: js/blocks/PitchBlocks.js:929 +#.TRANS: pitch inversion rotates a pitch around another pitch +msgid "invert" msgstr "" -#: js/MeterBlocks.js:368 -#.TRANS: count the number of notes -msgid "sum note values" +#: js/blocks/PitchBlocks.js:968 +#.TRANS: pitch inversion rotates a pitch around another pitch (odd number) +msgid "invert (odd)" msgstr "" -#: js/MeterBlocks.js:376 -#: js/MeterBlocks.js:440 -msgid "The Note counter block can be used to count the number of contained notes." +#: js/blocks/PitchBlocks.js:1001 +#.TRANS: pitch inversion rotates a pitch around another pitch (even number) +msgid "invert (even)" msgstr "" -#: js/MeterBlocks.js:432 -#.TRANS: count the number of notes -msgid "note counter" +#: js/blocks/PitchBlocks.js:1022 +#.TRANS: register is the octave of the current pitch +msgid "register" msgstr "" -#: js/MeterBlocks.js:496 -#.TRANS: number of whole notes that have been played -msgid "whole notes played" +#: js/blocks/PitchBlocks.js:1026 +msgid "The Register block provides an easy way to modify the register (octave) of the notes that follow it." msgstr "" -#: js/MeterBlocks.js:505 -msgid "The Whole notes played block returns the total number of whole notes played." +#: js/blocks/PitchBlocks.js:1047 +#.TRANS: cents are units used to specify the ratio between pitches. There are 100 cents between successive notes. +msgid "50 cents" msgstr "" -#: js/MeterBlocks.js:555 -#: js/DictActions.js:83 -#.TRANS: number of notes that have been played -msgid "notes played" +#: js/blocks/PitchBlocks.js:1102 +msgid "The Semi-tone transposition block will shift the pitches contained inside Note blocks up (or down) by half steps." msgstr "" -#: js/MeterBlocks.js:653 -msgid "The No clock block decouples the notes from the master clock." +#: js/blocks/PitchBlocks.js:1104 +msgid "In the example shown above, sol is shifted up to sol#." msgstr "" -#: js/MeterBlocks.js:661 -#.TRANS: don't lock notes to master clock -msgid "no clock" +#: js/blocks/PitchBlocks.js:1110 +#.TRANS: adjust the amount of shift (up or down) of a pitch +msgid "semi-tone transpose" msgstr "" -#: js/MeterBlocks.js:700 -msgid "on weak beat do" +#: js/blocks/PitchBlocks.js:1143 +msgid "The Transpose by Ratio block will shift the pitches contained inside Note blocks up (or down) by a ratio" msgstr "" -#: js/MeterBlocks.js:705 -msgid "The On-weak-beat block lets you specify actions to take on weak (off) beats." +#: js/blocks/PitchBlocks.js:1149 +#.TRANS: adjust the amount of shift (up or down) of a pitch +msgid "transpose by ratio" msgstr "" -#: js/MeterBlocks.js:750 -msgid "on strong beat" +#: js/blocks/PitchBlocks.js:1232 +#.TRANS: down sixth means the note is five scale degrees below current note +msgid "down sixth" msgstr "" -#: js/MeterBlocks.js:758 -msgid "The On-strong-beat block lets you specify actions to take on specified beats." +#: js/blocks/PitchBlocks.js:1251 +#.TRANS: down third means the note is two scale degrees below current note +msgid "down third" msgstr "" -#: js/MeterBlocks.js:769 -msgid "beat" +#: js/blocks/PitchBlocks.js:1270 +#.TRANS: seventh means the note is the six scale degrees above current note +msgid "seventh" msgstr "" -#: js/MeterBlocks.js:813 -msgid "on every beat do" +#: js/blocks/PitchBlocks.js:1289 +#.TRANS: sixth means the note is the five scale degrees above current note +msgid "sixth" msgstr "" -#: js/MeterBlocks.js:821 -msgid "The On-every-beat block lets you specify actions to take on every beat." +#: js/blocks/PitchBlocks.js:1308 +#.TRANS: fifth means the note is the four scale degrees above current note +msgid "fifth" msgstr "" -#: js/MeterBlocks.js:874 -msgid "on every note do" +#: js/blocks/PitchBlocks.js:1328 +#.TRANS: fourth means the note is three scale degrees above current note +msgid "fourth" msgstr "" -#: js/MeterBlocks.js:882 -msgid "The On-every-note block lets you specify actions to take on every note." +#: js/blocks/PitchBlocks.js:1347 +#.TRANS: third means the note is two scale degrees above current note +msgid "third" msgstr "" -#: js/MeterBlocks.js:928 -#: js/MeterBlocks.js:999 -#.TRANS: sets tempo by defining a beat and beats per minute -msgid "master beats per minute" +#: js/blocks/PitchBlocks.js:1366 +#.TRANS: second means the note is one scale degree above current note +msgid "second" msgstr "" -#: js/MeterBlocks.js:952 -#: js/MeterBlocks.js:1078 -#: js/MeterBlocks.js:1135 -msgid "bpm" +#: js/blocks/PitchBlocks.js:1407 +msgid "The Scalar transposition block will shift the pitches contained inside Note blocks up (or down) the scale." msgstr "" -#: js/MeterBlocks.js:952 -#: js/MeterBlocks.js:1078 -#: js/MeterBlocks.js:1135 -msgid "beat value" +#: js/blocks/PitchBlocks.js:1409 +msgid "In the example shown above, sol is shifted up to la." msgstr "" -#: js/MeterBlocks.js:1024 -#: js/MeterBlocks.js:1167 -#: js/MeterBlocks.js:1241 -msgid "Beats per minute must be > 30." +#: js/blocks/PitchBlocks.js:1416 +#.TRANS: adjust the amount of shift (up or down) of a pitch by musical scale (scalar) steps +msgid "scalar transpose" msgstr "" -#: js/MeterBlocks.js:1027 -#: js/MeterBlocks.js:1170 -#: js/MeterBlocks.js:1244 -msgid "Maximum beats per minute is 1000." +#: js/blocks/PitchBlocks.js:1451 +msgid "The Accidental block is used to create sharps and flats" msgstr "" -#: js/MeterBlocks.js:1068 -msgid "The Beats per minute block sets the number of 1/4 notes per minute." +#: js/blocks/PitchBlocks.js:1458 +#.TRANS: An accidental is a modification to a pitch, e.g., sharp or flat. +msgid "accidental override" msgstr "" -#: js/MeterBlocks.js:1279 -#.TRANS: anacrusis -msgid "pickup" +#: js/blocks/PitchBlocks.js:1581 +msgid "The Hertz block (in combination with a Number block) will play a sound at the specified frequency." msgstr "" -#: js/MeterBlocks.js:1367 -msgid "number of beats" +#: js/blocks/PitchBlocks.js:1671 +msgid "The Pitch Number block will play a pitch associated by its number, e.g. 0 for C and 7 for G." msgstr "" -#: js/DictBlocks.js:77 -msgid "show dictionary" +#: js/blocks/PitchBlocks.js:1703 +#: js/blocks/PitchBlocks.js:1745 +#.TRANS: a numeric mapping of the notes in an octave based on the musical mode +#.TRANS: a numeric mapping of the notes in an octave based on the musical mode +msgid "nth modal pitch" msgstr "" -#: js/DictBlocks.js:129 -msgid "The Dictionary block returns a dictionary." +#: js/blocks/PitchBlocks.js:1706 +msgid "n^th Modal Pitch takes the pattern of pitches in semitones for a mode and makes each point a degree of the mode," msgstr "" -#: js/DictBlocks.js:197 -#: js/DictBlocks.js:339 -msgid "The Get-dict block returns a value in the dictionary for a specified key." +#: js/blocks/PitchBlocks.js:1708 +msgid "starting from 1 and regardless of tonal framework (i.e. not always 8 notes in the octave)" msgstr "" -#: js/DictBlocks.js:212 -#: js/DictBlocks.js:354 -#.TRANS: retrieve a value from the dictionary with a given key -msgid "get value" +#: js/blocks/PitchBlocks.js:1749 +msgid "N^th Modal Pitch takes a number as an input as the n^th degree for the given mode. 0 is the first position, 1 is the second, -1 is the note before the first etc." msgstr "" -#: js/DictBlocks.js:215 -#: js/DictBlocks.js:216 -#: js/DictBlocks.js:289 -#: js/DictBlocks.js:290 -#: js/DictBlocks.js:357 -#: js/DictBlocks.js:430 -#: js/DictBlocks.js:431 -msgid "key2" +#: js/blocks/PitchBlocks.js:1751 +msgid "The pitches change according to the mode specified without any need for respellings." msgstr "" -#: js/DictBlocks.js:271 -#: js/DictBlocks.js:411 -msgid "The Set-dict block sets a value in the dictionary for a specified key." +#: js/blocks/PitchBlocks.js:1790 +msgid "Scale Degree is a common convention in music. Scale Degree offers seven possible positions in the scale (1-7) and can be modified via accidentals." msgstr "" -#: js/DictBlocks.js:286 -#: js/DictBlocks.js:427 -#.TRANS: set a value in the dictionary for a given key -msgid "set value" +#: js/blocks/PitchBlocks.js:1792 +msgid "Scale Degree 1 is always the first pitch in a given scale, regardless of octave." msgstr "" -#: js/ExtrasBlocks.js:33 -msgid "fraction" +#: js/blocks/PitchBlocks.js:1814 +#.TRANS: step some number of notes in current musical scale +msgid "scalar step" msgstr "" -#: js/ExtrasBlocks.js:36 -msgid "Convert a float to a fraction" +#: js/blocks/PitchBlocks.js:1819 +msgid "The Scalar Step block (in combination with a Number block) will play the next pitch in a scale," msgstr "" -#: js/ExtrasBlocks.js:93 -msgid "save as ABC" +#: js/blocks/PitchBlocks.js:1821 +msgid "eg if the last note played was sol, Scalar Step 1 will play la." msgstr "" -#: js/ExtrasBlocks.js:96 -#: js/ExtrasBlocks.js:132 -#: js/ExtrasBlocks.js:168 -msgid "title" +#: js/blocks/PitchBlocks.js:1857 +msgid "The Pitch block specifies the pitch name and octave of a note that together determine the frequency of the note." msgstr "" -#: js/ExtrasBlocks.js:129 -msgid "save as Lilypond" +#: js/blocks/ProgramBlocks.js:33 +msgid "The Load-heap-from-app block loads the heap from a web page." msgstr "" -#: js/ExtrasBlocks.js:165 -msgid "save as SVG" +#: js/blocks/ProgramBlocks.js:44 +#.TRANS: load the heap contents from a URL +msgid "load heap from App" msgstr "" -#: js/ExtrasBlocks.js:216 -msgid "no background" +#: js/blocks/ProgramBlocks.js:95 +msgid "Error parsing JSON data:" msgstr "" -#: js/ExtrasBlocks.js:219 -msgid "The No background block eliminates the background from the saved SVG output." +#: js/blocks/ProgramBlocks.js:100 +msgid "404: Page not found" msgstr "" -#: js/ExtrasBlocks.js:247 -msgid "show blocks" -msgstr "zobrazit bloky" +#: js/blocks/ProgramBlocks.js:133 +msgid "The Save-heap-to-app block saves the heap to a web page." +msgstr "" -#: js/ExtrasBlocks.js:249 -msgid "The Show blocks block shows the blocks." +#: js/blocks/ProgramBlocks.js:144 +#.TRANS: save the heap contents to a URL +msgid "save heap to App" msgstr "" -#: js/ExtrasBlocks.js:274 -msgid "hide blocks" -msgstr "skrýt bloky" +#: js/blocks/ProgramBlocks.js:189 +msgid "Cannot find a valid heap for" +msgstr "" -#: js/ExtrasBlocks.js:276 -msgid "The Hide blocks block hides the blocks." +#: js/blocks/ProgramBlocks.js:206 +msgid "The Load-heap block loads the heap from a file." msgstr "" -#: js/ExtrasBlocks.js:305 -#: js/ExtrasBlocks.js:335 -msgid "The Space block is used to add space between blocks." +#: js/blocks/ProgramBlocks.js:217 +#.TRANS: load the heap from a file +msgid "load heap" msgstr "" -#: js/ExtrasBlocks.js:373 -msgid "wait" -msgstr "čekat" +#: js/blocks/ProgramBlocks.js:270 +msgid "The file you selected does not contain a valid heap." +msgstr "" -#: js/ExtrasBlocks.js:376 -msgid "The Wait block pauses the program for a specified number of seconds." +#: js/blocks/ProgramBlocks.js:275 +msgid "The loadHeap block needs a loadFile block." msgstr "" -#: js/ExtrasBlocks.js:430 -#: plugins/facebook.rtp:30 -msgid "comment" +#: js/blocks/ProgramBlocks.js:291 +msgid "The Set-heap block loads the heap." msgstr "" -#: js/ExtrasBlocks.js:466 -msgid "print" -msgstr "tisknout" +#: js/blocks/ProgramBlocks.js:340 +msgid "The block you selected does not contain a valid heap." +msgstr "" -#: js/ExtrasBlocks.js:473 -msgid "The Print block displays text at the top of the screen." +#: js/blocks/ProgramBlocks.js:343 +msgid "The Set heap block needs a heap." msgstr "" -#: js/ExtrasBlocks.js:579 -msgid "display grid" +#: js/blocks/ProgramBlocks.js:360 +msgid "The Load-dictionary block loads a dictionary from a file." msgstr "" -#: js/ExtrasBlocks.js:584 -msgid "The Display Grid Block changes the grid type" +#: js/blocks/ProgramBlocks.js:372 +#.TRANS: load a dictionary from a file +msgid "load dictionary" msgstr "" -#: js/ExtrasBlocks.js:686 -#: js/ExtrasBlocks.js:705 -#: js/ExtrasBlocks.js:728 -#: js/ExtrasBlocks.js:751 -#: js/ExtrasBlocks.js:769 -#: js/ExtrasBlocks.js:788 -#: js/ExtrasBlocks.js:807 -#: js/ExtrasBlocks.js:826 -msgid "unknown" +#: js/blocks/ProgramBlocks.js:390 +#: js/blocks/ProgramBlocks.js:658 +#: js/blocks/ToneBlocks.js:1025 +msgid "file" msgstr "" -#: js/SensorsBlocks.js:36 -msgid "The Input block prompts for keyboard input." +#: js/blocks/ProgramBlocks.js:444 +msgid "The file you selected does not contain a valid dictionary." msgstr "" -#: js/SensorsBlocks.js:46 -msgid "input" +#: js/blocks/ProgramBlocks.js:449 +msgid "The load dictionary block needs a load file block." msgstr "" -#: js/SensorsBlocks.js:64 -msgid "Input a value" +#: js/blocks/ProgramBlocks.js:466 +msgid "The Set-dictionary block loads a dictionary." msgstr "" -#: js/SensorsBlocks.js:126 -msgid "input value" +#: js/blocks/ProgramBlocks.js:477 +#.TRANS: load a dictionary from a JSON +msgid "set dictionary" msgstr "" -#: js/SensorsBlocks.js:131 -msgid "The Input-value block stores the input." +#: js/blocks/ProgramBlocks.js:546 +msgid "The block you selected does not contain a valid dictionary." msgstr "" -#: js/SensorsBlocks.js:238 -msgid "loudness" +#: js/blocks/ProgramBlocks.js:550 +msgid "The set dictionary block needs a dictionary." msgstr "" -#: js/SensorsBlocks.js:245 -msgid "The Loudness block returns the volume detected by the microphone." +#: js/blocks/ProgramBlocks.js:567 +msgid "The Save-heap block saves the heap to a file." msgstr "" -#: js/SensorsBlocks.js:300 -msgid "click" +#: js/blocks/ProgramBlocks.js:578 +#.TRANS: save the heap to a file +msgid "save heap" msgstr "" -#: js/SensorsBlocks.js:306 -msgid "The Click block triggers an event if a mouse has been clicked." +#: js/blocks/ProgramBlocks.js:629 +msgid "The Save-dictionary block saves a dictionary to a file." msgstr "" -#: js/SensorsBlocks.js:313 -msgid "The Click block triggers an event if a turtle has been clicked." +#: js/blocks/ProgramBlocks.js:640 +#.TRANS: save a dictionary to a file +msgid "save dictionary" msgstr "" -#: js/SensorsBlocks.js:342 -msgid "cursor over" +#: js/blocks/ProgramBlocks.js:720 +msgid "The Open palette block opens a palette." msgstr "" -#: js/SensorsBlocks.js:387 -msgid "cursor out" +#: js/blocks/ProgramBlocks.js:727 +msgid "open palette" msgstr "" -#: js/SensorsBlocks.js:433 -msgid "cursor button down" +#: js/blocks/ProgramBlocks.js:785 +msgid "The Delete block block removes a block." msgstr "" -#: js/SensorsBlocks.js:477 -msgid "cursor button up" +#: js/blocks/ProgramBlocks.js:797 +#.TRANS: Move this block to the trash. +msgid "delete block" msgstr "" -#: js/SensorsBlocks.js:638 -msgid "The Get red block returns the red component of the pixel under the mouse." +#: js/blocks/ProgramBlocks.js:861 +msgid "The Move block block moves a block." msgstr "" -#: js/SensorsBlocks.js:644 -msgid "The Get red block returns the red component of the pixel under the turtle." +#: js/blocks/ProgramBlocks.js:869 +#.TRANS: Move the position of a block on the screen. +msgid "move block" msgstr "" -#: js/SensorsBlocks.js:685 -#: plugins/rodi.rtp:216 -msgid "pixel color" +#: js/blocks/ProgramBlocks.js:881 +#: js/blocks/ProgramBlocks.js:1048 +msgid "block number" msgstr "" -#: js/SensorsBlocks.js:690 -msgid "The Get pixel block returns the color of the pixel under the mouse." +#: js/blocks/ProgramBlocks.js:935 +#.TRANS: Run program beginning at this block. +msgid "run block" msgstr "" -#: js/SensorsBlocks.js:696 -msgid "The Get pixel block returns the color of the pixel under the turtle." +#: js/blocks/ProgramBlocks.js:1025 +msgid "The Dock block block connections two blocks." msgstr "" -#: js/SensorsBlocks.js:758 -msgid "time" +#: js/blocks/ProgramBlocks.js:1036 +#.TRANS: We can connect a block to another block. +msgid "connect blocks" msgstr "" -#: js/SensorsBlocks.js:804 -msgid "cursor y" +#: js/blocks/ProgramBlocks.js:1048 +msgid "target block" msgstr "" -#: js/SensorsBlocks.js:809 -msgid "The Cursor Y block returns the vertical position of the mouse." +#: js/blocks/ProgramBlocks.js:1048 +msgid "connection number" msgstr "" -#: js/SensorsBlocks.js:845 -msgid "cursor x" +#: js/blocks/ProgramBlocks.js:1140 +msgid "The Make block block creates a new block." msgstr "" -#: js/SensorsBlocks.js:850 -msgid "The Cursor X block returns the horizontal position of the mouse." +#: js/blocks/ProgramBlocks.js:1152 +#.TRANS: Create a new block +msgid "make block" msgstr "" -#: js/SensorsBlocks.js:886 -msgid "mouse button" +#: js/blocks/ProgramBlocks.js:1285 +msgid "Cannot find block" msgstr "" -#: js/SensorsBlocks.js:888 -msgid "The Mouse-button block returns True if the mouse button is pressed." +#: js/blocks/ProgramBlocks.js:1304 +#: js/blocks/ProgramBlocks.js:1313 +msgid "Warning: block argument type mismatch" msgstr "" -#: js/SensorsBlocks.js:934 -msgid "to ASCII" +#: js/blocks/ProgramBlocks.js:1347 +msgid "The Open project block is used to open a project from a web page." msgstr "" -#: js/SensorsBlocks.js:938 -msgid "The To ASCII block converts numbers to letters." +#: js/blocks/ProgramBlocks.js:1357 +msgid "open project" msgstr "" -#: js/SensorsBlocks.js:1005 -msgid "The Keyboard block returns computer keyboard input." +#: js/blocks/ProgramBlocks.js:1410 +msgid "Please enter a valid URL." msgstr "" -#: js/IntervalsActions.js:216 -msgid "Adding missing pitch number 0." +#: js/blocks/ToneBlocks.js:34 +msgid "oscillator" msgstr "" -#: js/IntervalsActions.js:224 -msgid "Ignoring pitch numbers less than zero or greater than eleven." +#: js/blocks/ToneBlocks.js:42 +#: js/blocks/WidgetBlocks.js:179 +#: js/widgets/timbre.js:1558 +#: js/widgets/timbre.js:1808 +#.TRANS: there are different types (sine, triangle, square...) of oscillators. +#.TRANS: type of filter, e.g., lowpass, highpass, etc. +msgid "type" msgstr "" -#: js/IntervalsActions.js:230 -msgid "Ignoring duplicate pitch numbers." +#: js/blocks/ToneBlocks.js:44 +#: js/widgets/timbre.js:1562 +#.TRANS: Partials refers to the number of sine waves combined into the sound. +msgid "partials" msgstr "" -#: js/PitchActions.js:88 -msgid "The Scalar Step Block must be used inside of a Note Block." +#: js/blocks/ToneBlocks.js:76 +msgid "You are adding multiple oscillator blocks." msgstr "" -#: js/PitchActions.js:107 -msgid "The Scalar Step Block must be preceded by a Pitch Block." +#: js/blocks/ToneBlocks.js:144 +#: js/widgets/timbre.js:1225 +#.TRANS: a duo synthesizer combines a synth with a sequencer +msgid "duo synth" msgstr "" -#: js/DrumActions.js:231 -msgid "Noise Block: Did you mean to use a Note block?" +#: js/blocks/ToneBlocks.js:149 +msgid "The Duo synth block is a duo-frequency modulator used to define a timbre." msgstr "" -#: js/MeterActions.js:101 -#: js/MeterActions.js:139 -msgid "beats per minute must be greater than" +#: js/blocks/ToneBlocks.js:157 +#: js/widgets/timbre.js:1476 +msgid "vibrato rate" msgstr "" -#: js/MeterActions.js:111 -#: js/MeterActions.js:149 -msgid "maximum" +#: js/blocks/ToneBlocks.js:157 +msgid "vibrato intensity" msgstr "" -#: js/MeterActions.js:117 -#: js/MeterActions.js:155 -msgid "beats per minute is" +#: js/blocks/ToneBlocks.js:185 +#: js/widgets/timbre.js:1221 +#.TRANS: AM (amplitude modulation) synthesizer +msgid "AM synth" msgstr "" -#: js/ToneActions.js:134 -msgid "Vibrato intensity must be between 1 and 100." +#: js/blocks/ToneBlocks.js:189 +msgid "The AM synth block is an amplitude modulator used to define a timbre." msgstr "" -#: js/ToneActions.js:139 -msgid "Vibrato rate must be greater than 0." +#: js/blocks/ToneBlocks.js:224 +#: js/widgets/timbre.js:1223 +#.TRANS: FM (frequency modulation) synthesizer +msgid "FM synth" msgstr "" -#: js/ToneActions.js:192 -#: js/ToneActions.js:265 -#.TRANS: Depth is the intesity of the tremolo or chorus effect. -msgid "Depth is out of range." +#: js/blocks/ToneBlocks.js:228 +msgid "The FM synth block is a frequency modulator used to define a timbre." msgstr "" -#: js/ToneActions.js:301 -msgid "Distortion must be from 0 to 100." +#: js/blocks/ToneBlocks.js:262 +msgid "partial" msgstr "" -#: js/ToneActions.js:332 -#.TRANS: partials components in a harmonic series -msgid "Partial must be greater than or equal to 0." +#: js/blocks/ToneBlocks.js:265 +msgid "The Partial block is used to specify a weight for a specific partial harmonic." msgstr "" -#: js/ToneActions.js:378 -#: js/ToneActions.js:417 -#: js/ToneActions.js:456 -#: js/timbre.js:782 -msgid "Unable to use synth due to existing oscillator" +#: js/blocks/ToneBlocks.js:284 +#.TRANS: partials are weighted components in a harmonic series +msgid "Partial weight must be between 0 and 1." msgstr "" -#: js/ToneActions.js:388 -#: js/ToneActions.js:427 -msgid "The input cannot be negative." +#: js/blocks/ToneBlocks.js:297 +#.TRANS: partials are weighted components in a harmonic series +msgid "Partial block should be used inside of a Weighted-partials block." msgstr "" -#: js/DictActions.js:75 -#: js/DictActions.js:153 -#: js/DictActions.js:188 -msgid "font" +#: js/blocks/ToneBlocks.js:325 +#.TRANS: partials are weighted components in a harmonic series +msgid "weighted partials" msgstr "" -#: js/musicutils.js:363 -#: js/musicutils.js:471 -#: js/pitchdrummatrix.js:151 -#: js/musickeyboard.js:2563 -msgid "rest" +#: js/blocks/ToneBlocks.js:383 +msgid "The Harmonic block will add harmonics to the contained notes." msgstr "" -#: js/musicutils.js:565 -#.TRANS: ordinal number. Please keep exactly one space between each number. -msgid "1st 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th" +#: js/blocks/ToneBlocks.js:390 +#.TRANS: A harmonic is an overtone. +msgid "harmonic" msgstr "" -#: js/musicutils.js:629 -#: js/musicutils.js:812 -#: js/musicutils.js:911 -#.TRANS: augmented is a music term related to intervals -msgid "augmented" +#: js/blocks/ToneBlocks.js:431 +msgid "The Distortion block adds distortion to the pitch." msgstr "" -#: js/musicutils.js:631 -#: js/musicutils.js:813 -#: js/musicutils.js:910 -#.TRANS: diminished is a music term related to intervals and mode -msgid "diminished" +#: js/blocks/ToneBlocks.js:438 +#: js/widgets/timbre.js:2100 +#.TRANS: distortion is an alteration in the sound +msgid "distortion" msgstr "" -#: js/musicutils.js:639 -#.TRANS: twelve semi-tone scale for music -msgid "chromatic" +#: js/blocks/ToneBlocks.js:487 +msgid "The Tremolo block adds a wavering effect." msgstr "" -#: js/musicutils.js:640 -msgid "algerian" +#: js/blocks/ToneBlocks.js:495 +#: js/widgets/timbre.js:2092 +#.TRANS: a wavering effect in a musical tone +msgid "tremolo" msgstr "" -#: js/musicutils.js:641 -msgid "spanish" +#: js/blocks/ToneBlocks.js:500 +#: js/blocks/ToneBlocks.js:569 +#: js/blocks/ToneBlocks.js:630 +#: js/blocks/ToneBlocks.js:689 +#: js/widgets/timbre.js:2134 +#: js/widgets/timbre.js:2222 +#: js/widgets/timbre.js:2317 +#: js/widgets/timbre.js:2419 +#.TRANS: rate at which tremolo wavers +msgid "rate" msgstr "" -#: js/musicutils.js:643 -#.TRANS: modal scale in music -msgid "octatonic" +#: js/blocks/ToneBlocks.js:502 +#: js/blocks/ToneBlocks.js:630 +#: js/widgets/timbre.js:2137 +#: js/widgets/timbre.js:2328 +#.TRANS: amplitude of tremolo waver +msgid "depth" msgstr "" -#: js/musicutils.js:645 -#.TRANS: harmonic major scale in music -msgid "harmonic major" +#: js/blocks/ToneBlocks.js:559 +msgid "The Phaser block adds a sweeping sound." msgstr "" -#: js/musicutils.js:647 -#.TRANS: natural minor scales in music -msgid "natural minor" +#: js/blocks/ToneBlocks.js:566 +#: js/widgets/timbre.js:2098 +#.TRANS: alter the phase of the sound +msgid "phaser" msgstr "" -#: js/musicutils.js:649 -#.TRANS: harmonic minor scale in music -msgid "harmonic minor" +#: js/blocks/ToneBlocks.js:569 +#: js/turtleactions/IntervalsActions.js:114 +#: js/widgets/timbre.js:2422 +msgid "octaves" msgstr "" -#: js/musicutils.js:651 -#.TRANS: melodic minor scale in music -msgid "melodic minor" +#: js/blocks/ToneBlocks.js:569 +#: js/widgets/timbre.js:2425 +msgid "base frequency" msgstr "" -#: js/musicutils.js:655 -#.TRANS: modal scale for music -msgid "dorian" +#: js/blocks/ToneBlocks.js:619 +msgid "The Chorus block adds a chorus effect." msgstr "" -#: js/musicutils.js:657 -#.TRANS: modal scale for music -msgid "phrygian" +#: js/blocks/ToneBlocks.js:627 +#: js/widgets/timbre.js:2096 +#.TRANS: musical effect to simulate a choral sound +msgid "chorus" msgstr "" -#: js/musicutils.js:659 -#.TRANS: modal scale for music -msgid "lydian" +#: js/blocks/ToneBlocks.js:630 +msgid "delay" msgstr "" -#: js/musicutils.js:661 -#.TRANS: modal scale for music -msgid "mixolydian" +#: js/blocks/ToneBlocks.js:678 +msgid "The Vibrato block adds a rapid, slight variation in pitch." msgstr "" -#: js/musicutils.js:665 -#.TRANS: modal scale for music -msgid "locrian" +#: js/blocks/ToneBlocks.js:686 +#: js/widgets/timbre.js:2094 +#.TRANS: a rapid, slight variation in pitch +msgid "vibrato" msgstr "" -#: js/musicutils.js:667 -#.TRANS: minor jazz scale for music -msgid "jazz minor" +#: js/blocks/ToneBlocks.js:689 +#: js/widgets/timbre.js:2221 +msgid "intensity" msgstr "" -#: js/musicutils.js:669 -#.TRANS: bebop scale for music -msgid "bebop" +#: js/blocks/ToneBlocks.js:733 +#.TRANS: select synthesizer +msgid "set synth" msgstr "" -#: js/musicutils.js:670 -msgid "arabic" +#: js/blocks/ToneBlocks.js:804 +msgid "synth name" msgstr "" -#: js/musicutils.js:671 -msgid "byzantine" +#: js/blocks/ToneBlocks.js:842 +msgid "set default instrument" msgstr "" -#: js/musicutils.js:673 -#.TRANS: musical scale for music by Verdi -msgid "enigmatic" +#: js/blocks/ToneBlocks.js:895 +#: js/blocks/ToneBlocks.js:943 +#.TRANS: set the characteristics of a custom instrument +msgid "set instrument" msgstr "" -#: js/musicutils.js:674 -msgid "ethiopian" +#: js/blocks/ToneBlocks.js:898 +#: js/blocks/ToneBlocks.js:926 +#: js/blocks/ToneBlocks.js:932 +msgid "The Set instrument block selects a voice for the synthesizer," msgstr "" -#: js/musicutils.js:676 -#.TRANS: Ethiopic scale for music -msgid "geez" +#: js/blocks/ToneBlocks.js:900 +#: js/blocks/ToneBlocks.js:934 +msgid "eg guitar piano violin or cello." msgstr "" -#: js/musicutils.js:677 -msgid "hindu" +#: js/blocks/ToneBlocks.js:1015 +msgid "Import a sound file to use as an instrument and set its pitch center." msgstr "" -#: js/musicutils.js:678 -msgid "hungarian" +#: js/blocks/ToneBlocks.js:1110 +msgid "Upload a sound file to connect with the sample block." msgstr "" -#: js/musicutils.js:680 -#.TRANS: minor Romanian scale for music -msgid "romanian minor" +#: js/blocks/VolumeBlocks.js:35 +msgid "synth volume" msgstr "" -#: js/musicutils.js:681 -msgid "spanish gypsy" +#: js/blocks/VolumeBlocks.js:39 +msgid "The Synth volume block returns the current volume of the current synthesizer." msgstr "" -#: js/musicutils.js:683 -#.TRANS: musical scale for Mid-Eastern music -msgid "maqam" +#: js/blocks/VolumeBlocks.js:105 +msgid "master volume" msgstr "" -#: js/musicutils.js:685 -#.TRANS: minor blues scale for music -msgid "minor blues" +#: js/blocks/VolumeBlocks.js:109 +msgid "The Master volume block returns the master volume." msgstr "" -#: js/musicutils.js:687 -#.TRANS: major blues scale for music -msgid "major blues" +#: js/blocks/VolumeBlocks.js:355 +#: js/blocks/VolumeBlocks.js:524 +msgid "set synth volume" msgstr "" -#: js/musicutils.js:688 -msgid "whole tone" +#: js/blocks/VolumeBlocks.js:362 +#: js/blocks/VolumeBlocks.js:545 +msgid "synth" msgstr "" -#: js/musicutils.js:690 -#.TRANS: pentatonic is a general term that means "five note scale". This scale is typically known as "minor pentatonic" -msgid "minor pentatonic" +#: js/blocks/VolumeBlocks.js:403 +#: js/blocks/VolumeBlocks.js:577 +#: js/blocks/VolumeBlocks.js:740 +#: js/turtleactions/VolumeActions.js:173 +msgid "Setting volume to 0." msgstr "" -#: js/musicutils.js:692 -#.TRANS: pentatonic is a general term that means "five note scale". This scale is typically known as "major pentatonic" -msgid "major pentatonic" +#: js/blocks/VolumeBlocks.js:440 +msgid "Synth not found" msgstr "" -#: js/musicutils.js:693 -msgid "chinese" +#: js/blocks/VolumeBlocks.js:494 +msgid "set drum volume" msgstr "" -#: js/musicutils.js:694 -msgid "egyptian" +#: js/blocks/VolumeBlocks.js:530 +msgid "The Set synth volume block will change the volume of a particular synth," msgstr "" -#: js/musicutils.js:696 -#.TRANS: https://en.wikipedia.org/wiki/Hirajoshi_scale NOTE: There are three different versions of this scale -msgid "hirajoshi" +#: js/blocks/VolumeBlocks.js:532 +msgid "eg guitar violin snare drum etc." msgstr "" -#: js/musicutils.js:697 -msgid "Japan" +#: js/blocks/VolumeBlocks.js:534 +msgid "The default volume is 50." msgstr "" -#: js/musicutils.js:699 -#.TRANS: https://en.wikipedia.org/wiki/In_scale and https://en.wikipedia.org/wiki/Sakura_Sakura -msgid "in" +#: js/blocks/VolumeBlocks.js:536 +msgid "The range is 0 for silence to 100 for full volume." msgstr "" -#: js/musicutils.js:701 -#.TRANS: https://en.wikipedia.org/wiki/Miny%C5%8D_scale -msgid "minyo" +#: js/blocks/VolumeBlocks.js:597 +msgid "set panning" msgstr "" -#: js/musicutils.js:703 -#.TRANS: Italian mathematician -msgid "fibonacci" +#: js/blocks/VolumeBlocks.js:603 +msgid "The Set Panning block sets the panning for all synthesizers." msgstr "" -#: js/musicutils.js:708 -#: js/musicutils.js:1106 -#.TRANS: lowpass filter -msgid "lowpass" +#: js/blocks/VolumeBlocks.js:625 +msgid "Warning: Sound is coming out from only the left or right side." msgstr "" -#: js/musicutils.js:710 -#: js/musicutils.js:1107 -#.TRANS: bandpass filter -msgid "bandpass" +#: js/blocks/VolumeBlocks.js:647 +#: js/blocks/VolumeBlocks.js:695 +msgid "set master volume" msgstr "" -#: js/musicutils.js:712 -#: js/musicutils.js:1108 -#.TRANS: high-shelf filter -msgid "highshelf" +#: js/blocks/VolumeBlocks.js:653 +msgid "The Set master volume block sets the volume for all synthesizers." msgstr "" -#: js/musicutils.js:714 -#: js/musicutils.js:1109 -#.TRANS: low-shelf filter -msgid "lowshelf" +#: js/blocks/VolumeBlocks.js:784 +msgid "The Set relative volume block changes the volume of the contained notes." msgstr "" -#: js/musicutils.js:716 -#: js/musicutils.js:1110 -#.TRANS: notch-shelf filter -msgid "notch" +#: js/blocks/VolumeBlocks.js:791 +msgid "set relative volume" msgstr "" -#: js/musicutils.js:718 -#: js/musicutils.js:1111 -#.TRANS: all-pass filter -msgid "allpass" +#: js/blocks/VolumeBlocks.js:857 +msgid "decrescendo" msgstr "" -#: js/musicutils.js:720 -#: js/musicutils.js:1112 -#.TRANS: peaking filter -msgid "peaking" +#: js/blocks/VolumeBlocks.js:921 +msgid "crescendo" msgstr "" -#: js/musicutils.js:731 -#: js/synthutils.js:58 -#.TRANS: musical instrument -msgid "violin" +#: js/blocks/WidgetBlocks.js:81 +#.TRANS: sound envelope (ADSR) +msgid "envelope" msgstr "" -#: js/musicutils.js:732 -#: js/synthutils.js:60 -#.TRANS: viola musical instrument -msgid "viola" +#: js/blocks/WidgetBlocks.js:89 +#.TRANS: Attack time is the time taken for initial run-up of level from nil to peak, beginning when the key is first pressed. +msgid "attack" msgstr "" -#: js/musicutils.js:733 -#: js/synthutils.js:98 -#.TRANS: xylophone musical instrument -msgid "xylophone" +#: js/blocks/WidgetBlocks.js:91 +#.TRANS: Decay time is the time taken for the subsequent run down from the attack level to the designated sustain level. +msgid "decay" msgstr "" -#: js/musicutils.js:734 -#: js/synthutils.js:120 -#.TRANS: vibraphone musical instrument -msgid "vibraphone" +#: js/blocks/WidgetBlocks.js:93 +#.TRANS: Sustain level is the level during the main sequence of the sound's duration, until the key is released. +msgid "sustain" msgstr "" -#: js/musicutils.js:735 -#: js/synthutils.js:62 -#.TRANS: musical instrument -msgid "cello" +#: js/blocks/WidgetBlocks.js:95 +#.TRANS: Release time is the time taken for the level to decay from the sustain level to zero after the key is released. +msgid "release" msgstr "" -#: js/musicutils.js:737 -#: js/synthutils.js:66 -#.TRANS: viola musical instrument -msgid "double bass" +#: js/blocks/WidgetBlocks.js:113 +msgid "Attack value should be from 0 to 100." msgstr "" -#: js/musicutils.js:738 -#: js/synthutils.js:68 -#: js/rhythmruler.js:2119 -#.TRANS: musical instrument -msgid "guitar" +#: js/blocks/WidgetBlocks.js:116 +msgid "Decay value should be from 0 to 100." msgstr "" -#: js/musicutils.js:739 -#: js/synthutils.js:70 -#.TRANS: musical instrument -msgid "acoustic guitar" +#: js/blocks/WidgetBlocks.js:119 +msgid "Sustain value should be from 0 to 100." msgstr "" -#: js/musicutils.js:740 -#: js/synthutils.js:72 -#.TRANS: musical instrument -msgid "flute" +#: js/blocks/WidgetBlocks.js:122 +msgid "Release value should be from 0-100." msgstr "" -#: js/musicutils.js:741 -#: js/synthutils.js:74 -#.TRANS: musical instrument -msgid "clarinet" +#: js/blocks/WidgetBlocks.js:140 +msgid "You are adding multiple envelope blocks." msgstr "" -#: js/musicutils.js:742 -#: js/synthutils.js:76 -#.TRANS: musical instrument -msgid "saxophone" +#: js/blocks/WidgetBlocks.js:171 +#.TRANS: a filter removes some unwanted components from a signal +msgid "filter" msgstr "" -#: js/musicutils.js:743 -#: js/synthutils.js:78 -#.TRANS: musical instrument -msgid "tuba" +#: js/blocks/WidgetBlocks.js:181 +#: js/widgets/timbre.js:1818 +#.TRANS: rolloff is the steepness of a change in frequency. +msgid "rolloff" msgstr "" -#: js/musicutils.js:744 -#: js/synthutils.js:80 -#.TRANS: musical instrument -msgid "trumpet" +#: js/blocks/WidgetBlocks.js:213 +#.TRANS: rolloff is the steepness of a change in frequency. +msgid "Rolloff value should be either -12, -24, -48, or -96 decibels/octave." msgstr "" -#: js/musicutils.js:745 -#: js/synthutils.js:82 -#.TRANS: musical instrument -msgid "oboe" +#: js/blocks/WidgetBlocks.js:252 +msgid "The Temperament tool is used to define custom tuning." msgstr "" -#: js/musicutils.js:746 -#: js/synthutils.js:84 -#.TRANS: musical instrument -msgid "trombone" +#: js/blocks/WidgetBlocks.js:332 +#: js/blocks/WidgetBlocks.js:1573 +#: js/widgets/sampler.js:547 +msgid "Upload a sample and adjust its pitch center." msgstr "" -#: js/musicutils.js:747 -#: js/synthutils.js:100 -#.TRANS: polytone synthesizer -msgid "electronic synth" +#: js/blocks/WidgetBlocks.js:339 +#.TRANS: the speed at music is should be played. +msgid "sampler" msgstr "" -#: js/musicutils.js:748 -#: js/synthutils.js:102 -#.TRANS: simple monotone synthesizer -msgid "simple 1" +#: js/blocks/WidgetBlocks.js:517 +msgid "The Meter block opens a tool to select strong beats for the meter." msgstr "" -#: js/musicutils.js:749 -msgid "simple 2" +#: js/blocks/WidgetBlocks.js:573 +msgid "The oscilloscope block opens a tool to visualize waveforms." msgstr "" -#: js/musicutils.js:750 -msgid "simple 3" +#: js/blocks/WidgetBlocks.js:578 +msgid "oscilloscope" msgstr "" -#: js/musicutils.js:751 -msgid "simple 4" +#: js/blocks/WidgetBlocks.js:645 +msgid "The Custom mode block opens a tool to explore musical mode (the spacing of the notes in a scale)." msgstr "" -#: js/musicutils.js:753 -#: js/synthutils.js:49 -#.TRANS: brown noise synthesizer -msgid "brown noise" +#: js/blocks/WidgetBlocks.js:651 +#.TRANS: musical mode is the pattern of half-steps in an octave, e.g., Major or Minor modes +msgid "custom mode" msgstr "" -#: js/musicutils.js:754 -#: js/synthutils.js:51 -#.TRANS: pink noise synthesizer -msgid "pink noise" +#: js/blocks/WidgetBlocks.js:700 +msgid "The Tempo block opens a metronome to visualize the beat." msgstr "" -#: js/musicutils.js:756 -#: js/synthutils.js:127 -#: js/rhythmruler.js:1670 -#: js/rhythmruler.js:1928 -#.TRANS: musical instrument -msgid "snare drum" +#: js/blocks/WidgetBlocks.js:762 +msgid "The Arpeggio Widget is used to compose chord sequences." msgstr "" -#: js/musicutils.js:757 -#: js/synthutils.js:129 -#.TRANS: musical instrument -msgid "kick drum" +#: js/blocks/WidgetBlocks.js:837 +msgid "The Pitch drum matrix is used to map pitches to drum sounds." msgstr "" -#: js/musicutils.js:758 -#: js/synthutils.js:131 -#.TRANS: musical instrument -msgid "tom tom" +#: js/blocks/WidgetBlocks.js:842 +#.TRANS: makes a mapping between pitches and drum sounds +msgid "pitch-drum mapper" msgstr "" -#: js/musicutils.js:759 -#: js/synthutils.js:133 -#.TRANS: musical instrument -msgid "floor tom" +#: js/blocks/WidgetBlocks.js:891 +msgid "You must have at least one pitch block and one drum block in the matrix." msgstr "" -#: js/musicutils.js:760 -#: js/synthutils.js:135 -#.TRANS: musical instrument -msgid "bass drum" +#: js/blocks/WidgetBlocks.js:920 +msgid "The Pitch slider tool to is used to generate pitches at selected frequencies." msgstr "" -#: js/musicutils.js:761 -#: js/synthutils.js:137 -#.TRANS: a drum made from an inverted cup -msgid "cup drum" +#: js/blocks/WidgetBlocks.js:925 +#.TRANS: widget to generate pitches using a slider +msgid "pitch slider" msgstr "" -#: js/musicutils.js:762 -#: js/synthutils.js:139 -#.TRANS: musical instrument -msgid "darbuka drum" +#: js/blocks/WidgetBlocks.js:977 +msgid "chromatic keyboard" msgstr "" -#: js/musicutils.js:763 -#: js/synthutils.js:143 -#.TRANS: musical instrument -msgid "hi hat" +#: js/blocks/WidgetBlocks.js:1011 +#: js/blocks/WidgetBlocks.js:1077 +#.TRANS: widget to generate pitches using a slider +msgid "music keyboard" msgstr "" -#: js/musicutils.js:764 -#: js/synthutils.js:145 -#.TRANS: a small metal bell -msgid "ride bell" +#: js/blocks/WidgetBlocks.js:1062 +#: js/blocks/WidgetBlocks.js:1069 +msgid "The Music keyboard block opens a piano keyboard that can be used to create notes." msgstr "" -#: js/musicutils.js:765 -#: js/synthutils.js:147 -#.TRANS: musical instrument -msgid "cow bell" +#: js/blocks/WidgetBlocks.js:1128 +msgid "The Pitch staircase tool to is used to generate pitches from a given ratio." msgstr "" -#: js/musicutils.js:766 -msgid "japanese drum" +#: js/blocks/WidgetBlocks.js:1135 +#.TRANS: generate a progressive sequence of pitches +msgid "pitch staircase" msgstr "" -#: js/musicutils.js:767 -#: js/synthutils.js:153 -#.TRANS: musical instrument -msgid "japanese bell" +#: js/blocks/WidgetBlocks.js:1222 +msgid "The Rhythm Maker block opens a tool to create drum machines." msgstr "" -#: js/musicutils.js:768 -#: js/synthutils.js:149 -#.TRANS: musical instrument -msgid "triangle bell" +#: js/blocks/WidgetBlocks.js:1291 +msgid "G major scale" msgstr "" -#: js/musicutils.js:769 -#: js/synthutils.js:151 -#.TRANS: musical instrument -msgid "finger cymbals" +#: js/blocks/WidgetBlocks.js:1326 +msgid "C major scale" msgstr "" -#: js/musicutils.js:770 -#: js/synthutils.js:155 -#.TRANS: a musically tuned set of bells -msgid "chime" +#: js/blocks/WidgetBlocks.js:1366 +msgid "The Phrase Maker block opens a tool to create musical phrases." msgstr "" -#: js/musicutils.js:771 -#: js/synthutils.js:157 -#.TRANS: a musical instrument -msgid "gong" +#: js/blocks/WidgetBlocks.js:1373 +#.TRANS: assigns pitch to a sequence of beats to generate a melody +msgid "phrase maker" msgstr "" -#: js/musicutils.js:772 -#: js/synthutils.js:159 -#.TRANS: sound effect -msgid "clang" +#: js/blocks/WidgetBlocks.js:1444 +msgid "You must have at least one pitch block and one rhythm block in the matrix." msgstr "" -#: js/musicutils.js:773 -#: js/synthutils.js:161 -#.TRANS: sound effect -msgid "crash" +#: js/blocks/WidgetBlocks.js:1503 +msgid "The Status block opens a tool for inspecting the status of Music Blocks as it is running." msgstr "" -#: js/musicutils.js:774 -#: js/synthutils.js:163 -#.TRANS: sound effect -msgid "bottle" +#: js/blocks/WidgetBlocks.js:1580 +#.TRANS: AI-generated music +msgid "aimusic" msgstr "" -#: js/musicutils.js:775 -#: js/synthutils.js:165 -#.TRANS: sound effect -msgid "clap" +#: js/turtleactions/MeterActions.js:101 +#: js/turtleactions/MeterActions.js:139 +msgid "beats per minute must be greater than" msgstr "" -#: js/musicutils.js:776 -#: js/synthutils.js:167 -#.TRANS: sound effect -msgid "slap" +#: js/turtleactions/MeterActions.js:111 +#: js/turtleactions/MeterActions.js:149 +msgid "maximum" msgstr "" -#: js/musicutils.js:777 -#: js/synthutils.js:169 -#.TRANS: sound effect -msgid "splash" +#: js/turtleactions/MeterActions.js:117 +#: js/turtleactions/MeterActions.js:155 +msgid "beats per minute is" msgstr "" -#: js/musicutils.js:778 -#: js/synthutils.js:171 -#.TRANS: sound effect -msgid "bubbles" +#: js/turtleactions/DictActions.js:75 +#: js/turtleactions/DictActions.js:142 +#: js/turtleactions/DictActions.js:172 +msgid "font" msgstr "" -#: js/musicutils.js:779 -#: js/synthutils.js:173 -#.TRANS: sound effect -msgid "raindrop" +#: js/turtleactions/DictActions.js:255 +msgid "Dictionary with this name does not exist" msgstr "" -#: js/musicutils.js:780 -#: js/synthutils.js:175 -#.TRANS: animal sound effect -msgid "cat" +#: js/turtleactions/DictActions.js:259 +msgid "Key with this name does not exist in " msgstr "" -#: js/musicutils.js:781 -#: js/synthutils.js:177 -#.TRANS: animal sound effect -msgid "cricket" +#: js/turtleactions/DrumActions.js:227 +msgid "Noise Block: Did you mean to use a Note block?" msgstr "" -#: js/musicutils.js:782 -#: js/synthutils.js:179 -#.TRANS: animal sound effect -msgid "dog" +#: js/turtleactions/IntervalsActions.js:113 +msgid "one" msgstr "" -#: js/musicutils.js:784 -#: js/synthutils.js:86 -#.TRANS: musical instrument -msgid "banjo" +#: js/turtleactions/IntervalsActions.js:113 +msgid "two" msgstr "" -#: js/musicutils.js:785 -#: js/synthutils.js:88 -#.TRANS: musical instrument -msgid "koto" +#: js/turtleactions/IntervalsActions.js:113 +msgid "three" msgstr "" -#: js/musicutils.js:786 -#: js/synthutils.js:90 -#.TRANS: musical instrument -msgid "dulcimer" +#: js/turtleactions/IntervalsActions.js:113 +msgid "four" msgstr "" -#: js/musicutils.js:787 -#: js/synthutils.js:92 -#.TRANS: musical instrument -msgid "electric guitar" +#: js/turtleactions/IntervalsActions.js:113 +msgid "five" msgstr "" -#: js/musicutils.js:788 -#: js/synthutils.js:94 -#.TRANS: musical instrument -msgid "bassoon" +#: js/turtleactions/IntervalsActions.js:113 +msgid "six" msgstr "" -#: js/musicutils.js:789 -#: js/synthutils.js:96 -#.TRANS: musical instrument -msgid "celeste" +#: js/turtleactions/IntervalsActions.js:113 +msgid "seven" msgstr "" -#: js/musicutils.js:791 -#: js/musicutils.js:1123 -#: js/musicutils.js:1131 -#: js/temperament.js:650 -#.TRANS: musical temperament -msgid "equal" +#: js/turtleactions/IntervalsActions.js:113 +msgid "eight" msgstr "" -#: js/musicutils.js:793 -#: js/musicutils.js:1125 -#: js/musicutils.js:1133 -#.TRANS: musical temperament -msgid "Pythagorean" +#: js/turtleactions/IntervalsActions.js:113 +msgid "nine" msgstr "" -#: js/musicutils.js:795 -#: js/musicutils.js:1124 -#: js/musicutils.js:1132 -#.TRANS: musical temperament -msgid "just intonation" +#: js/turtleactions/IntervalsActions.js:119 +msgid "a" msgstr "" -#: js/musicutils.js:797 -#: js/musicutils.js:1126 -#: js/musicutils.js:1127 -#: js/musicutils.js:1134 -#: js/musicutils.js:1135 -#.TRANS: musical temperament -msgid "meantone" +#: js/turtleactions/IntervalsActions.js:120 +msgid "below" msgstr "" -#: js/musicutils.js:814 -msgid "major 7th" +#: js/turtleactions/IntervalsActions.js:124 +msgid "above" msgstr "" -#: js/musicutils.js:815 -msgid "minor 7th" +#: js/turtleactions/IntervalsActions.js:131 +msgid "plus" msgstr "" -#: js/musicutils.js:816 -msgid "dominant 7th" +#: js/turtleactions/IntervalsActions.js:139 +msgid " below" msgstr "" -#: js/musicutils.js:817 -msgid "minor-major 7th" +#: js/turtleactions/IntervalsActions.js:257 +msgid "Adding missing pitch number 0." msgstr "" -#: js/musicutils.js:818 -msgid "fully-diminished 7th" +#: js/turtleactions/IntervalsActions.js:265 +msgid "Ignoring pitch numbers less than zero or greater than eleven." msgstr "" -#: js/musicutils.js:819 -msgid "half-diminished 7th" +#: js/turtleactions/IntervalsActions.js:271 +msgid "Ignoring duplicate pitch numbers." msgstr "" -#: js/musicutils.js:4379 -#: js/musicutils.js:4416 -msgid "current" +#: js/turtleactions/ToneActions.js:134 +msgid "Vibrato intensity must be between 1 and 100." msgstr "" -#: js/musicutils.js:4382 -#: js/musicutils.js:4407 -msgid "next" +#: js/turtleactions/ToneActions.js:139 +msgid "Vibrato rate must be greater than 0." msgstr "" -#: js/musicutils.js:4385 -#: js/musicutils.js:4412 -msgid "previous" +#: js/turtleactions/ToneActions.js:192 +#: js/turtleactions/ToneActions.js:265 +#.TRANS: Depth is the intesity of the tremolo or chorus effect. +msgid "Depth is out of range." msgstr "" -#: js/synthutils.js:104 -#.TRANS: simple monotone synthesizer -msgid "simple-2" +#: js/turtleactions/ToneActions.js:301 +msgid "Distortion must be from 0 to 100." msgstr "" -#: js/synthutils.js:106 -#.TRANS: simple monotone synthesizer -msgid "simple-3" +#: js/turtleactions/ToneActions.js:332 +#.TRANS: partials components in a harmonic series +msgid "Partial must be greater than or equal to 0." msgstr "" -#: js/synthutils.js:108 -#.TRANS: simple monotone synthesizer -msgid "simple-4" +#: js/turtleactions/ToneActions.js:378 +#: js/turtleactions/ToneActions.js:417 +#: js/turtleactions/ToneActions.js:456 +#: js/widgets/timbre.js:782 +msgid "Unable to use synth due to existing oscillator" msgstr "" -#: js/synthutils.js:141 -#.TRANS: musical instrument -msgid "taiko" +#: js/turtleactions/ToneActions.js:388 +#: js/turtleactions/ToneActions.js:427 +msgid "The input cannot be negative." msgstr "" -#: js/modewidget.js:86 -#: js/modewidget.js:88 -#: js/modewidget.js:642 -#: js/modewidget.js:644 -#: js/modewidget.js:712 -#: js/modewidget.js:714 -#: js/temperament.js:2078 -#: js/rhythmruler.js:189 -#: js/rhythmruler.js:1410 -#: js/rhythmruler.js:1412 -#: js/rhythmruler.js:1435 -#: js/rhythmruler.js:1437 -#: js/meterwidget.js:89 -#: js/meterwidget.js:91 +#: js/widgets/modewidget.js:86 +#: js/widgets/modewidget.js:88 +#: js/widgets/modewidget.js:642 +#: js/widgets/modewidget.js:644 +#: js/widgets/modewidget.js:712 +#: js/widgets/modewidget.js:714 +#: js/widgets/meterwidget.js:194 +#: js/widgets/meterwidget.js:196 +#: js/widgets/temperament.js:2236 +#: js/widgets/rhythmruler.js:457 +#: js/widgets/rhythmruler.js:1790 +#: js/widgets/rhythmruler.js:1792 +#: js/widgets/rhythmruler.js:1816 +#: js/widgets/rhythmruler.js:1818 msgid "Play all" msgstr "" -#: js/modewidget.js:115 -#: js/pitchstaircase.js:641 -#: js/phrasemaker.js:339 -#: js/pitchdrummatrix.js:94 -#: js/pitchslider.js:125 -#: js/temperament.js:2083 -#: js/musickeyboard.js:530 -#: js/timbre.js:756 -#: js/meterwidget.js:124 -#: js/arpeggio.js:103 +#: js/widgets/modewidget.js:115 +#: js/widgets/meterwidget.js:229 +#: js/widgets/pitchdrummatrix.js:166 +#: js/widgets/pitchslider.js:125 +#: js/widgets/pitchstaircase.js:641 +#: js/widgets/temperament.js:2244 +#: js/widgets/timbre.js:756 +#: js/widgets/arpeggio.js:103 +#: js/widgets/musickeyboard.js:688 +#: js/widgets/phrasemaker.js:550 msgid "Save" msgstr "" -#: js/modewidget.js:121 -#: js/pitchstaircase.js:686 -#: js/phrasemaker.js:356 -#: js/pitchdrummatrix.js:109 -#: js/musickeyboard.js:534 -#: js/rhythmruler.js:269 -#: js/arpeggio.js:118 +#: js/widgets/modewidget.js:121 +#: js/widgets/pitchdrummatrix.js:181 +#: js/widgets/pitchstaircase.js:686 +#: js/widgets/arpeggio.js:118 +#: js/widgets/musickeyboard.js:696 +#: js/widgets/phrasemaker.js:567 +#: js/widgets/rhythmruler.js:601 #.TRANS: clear all subdivisions from the ruler. msgid "Clear" msgstr "" -#: js/modewidget.js:127 +#: js/widgets/modewidget.js:127 msgid "Rotate counter clockwise" msgstr "" -#: js/modewidget.js:133 +#: js/widgets/modewidget.js:133 msgid "Rotate clockwise" msgstr "" -#: js/modewidget.js:139 +#: js/widgets/modewidget.js:139 msgid "Invert" msgstr "" -#: js/modewidget.js:145 -#: js/pitchstaircase.js:678 -#: js/rhythmruler.js:258 -#: js/timbre.js:963 +#: js/widgets/modewidget.js:145 +#: js/widgets/pitchstaircase.js:678 +#: js/widgets/timbre.js:963 +#: js/widgets/rhythmruler.js:578 msgid "Undo" msgstr "" -#: js/modewidget.js:163 +#: js/widgets/modewidget.js:163 #.TRANS: A circle of notes represents the musical mode. msgid "Click in the circle to select notes for the mode." msgstr "" -#: js/modewidget.js:1017 -#: js/pitchstaircase.js:580 -#: js/phrasemaker.js:4855 -#: js/temperament.js:1754 -#: js/rhythmruler.js:1865 -#: js/rhythmruler.js:2081 -#: js/tempo.js:414 +#: js/widgets/modewidget.js:1017 +#: js/widgets/pitchstaircase.js:580 +#: js/widgets/temperament.js:1929 +#: js/widgets/tempo.js:414 +#: js/widgets/phrasemaker.js:5356 +#: js/widgets/rhythmruler.js:2254 +#: js/widgets/rhythmruler.js:2472 msgid "New action block generated!" msgstr "" -#: js/oscilloscope.js:79 -msgid "Zoom In" -msgstr "" - -#: js/oscilloscope.js:88 -msgid "Zoom Out" -msgstr "" - -#: js/pitchstaircase.js:624 -msgid "Play chord" -msgstr "" - -#: js/pitchstaircase.js:632 -msgid "Play scale" +#: js/widgets/meterwidget.js:275 +msgid "Reset" msgstr "" -#: js/pitchstaircase.js:696 -msgid "Click on a note to create a new step." +#: js/widgets/meterwidget.js:301 +msgid "Click in the circle to select strong beats for the meter." msgstr "" -#: js/phrasemaker.js:363 -msgid "Export" +#: js/widgets/oscilloscope.js:79 +msgid "Zoom In" msgstr "" -#: js/phrasemaker.js:370 -msgid "Sort" +#: js/widgets/oscilloscope.js:88 +msgid "Zoom Out" msgstr "" -#: js/phrasemaker.js:373 -#: js/musickeyboard.js:559 -msgid "Add note" +#: js/widgets/pitchdrummatrix.js:356 +#: js/widgets/pitchdrummatrix.js:752 +msgid "Click in the grid to map notes to drums." msgstr "" -#: js/phrasemaker.js:764 -msgid "Click on the table to add notes." +#: js/widgets/pitchslider.js:103 +msgid "Move up" msgstr "" -#: js/phrasemaker.js:2414 -#: js/phrasemaker.js:2543 -msgid "tuplet value" +#: js/widgets/pitchslider.js:114 +msgid "Move down" msgstr "" -#: js/pitchdrummatrix.js:270 -#: js/pitchdrummatrix.js:639 -msgid "Click in the grid to map notes to drums." +#: js/widgets/pitchslider.js:136 +msgid "Click on the slider to create a note block." msgstr "" -#: js/pitchslider.js:103 -msgid "Move up" +#: js/widgets/pitchstaircase.js:624 +msgid "Play chord" msgstr "" -#: js/pitchslider.js:114 -msgid "Move down" +#: js/widgets/pitchstaircase.js:632 +msgid "Play scale" msgstr "" -#: js/pitchslider.js:136 -msgid "Click on the slider to create a note block." +#: js/widgets/pitchstaircase.js:696 +msgid "Click on a note to create a new step." msgstr "" -#: js/temperament.js:215 +#: js/widgets/temperament.js:321 msgid "back to 2:1 octave space" msgstr "" -#: js/temperament.js:323 +#: js/widgets/temperament.js:447 msgid "edit" msgstr "" -#: js/temperament.js:330 -#: js/temperament.js:332 -#: js/temperament.js:1336 -#: js/temperament.js:1338 +#: js/widgets/temperament.js:454 +#: js/widgets/temperament.js:456 +#: js/widgets/temperament.js:1493 +#: js/widgets/temperament.js:1495 msgid "close" msgstr "" -#: js/temperament.js:423 -#: js/temperament.js:736 -#: js/temperament.js:743 -#: js/temperament.js:845 -#: js/temperament.js:935 -#: js/temperament.js:942 -#: js/temperament.js:1015 -#: js/temperament.js:1284 -#: js/temperament.js:1354 -#: js/temperament.js:1430 +#: js/widgets/temperament.js:552 +#: js/widgets/temperament.js:877 +#: js/widgets/temperament.js:884 +#: js/widgets/temperament.js:986 +#: js/widgets/temperament.js:1080 +#: js/widgets/temperament.js:1087 +#: js/widgets/temperament.js:1160 +#: js/widgets/temperament.js:1433 +#: js/widgets/temperament.js:1511 +#: js/widgets/temperament.js:1596 msgid "done" msgstr "" -#: js/temperament.js:477 -#: js/temperament.js:482 -#: js/temperament.js:918 +#: js/widgets/temperament.js:610 +#: js/widgets/temperament.js:615 +#: js/widgets/temperament.js:1063 msgid "ratio" msgstr "" -#: js/temperament.js:483 +#: js/widgets/temperament.js:616 msgid "interval" msgstr "" -#: js/temperament.js:611 +#: js/widgets/temperament.js:744 msgid "non scalar" msgstr "" -#: js/temperament.js:650 +#: js/widgets/temperament.js:787 msgid "ratios" msgstr "" -#: js/temperament.js:650 +#: js/widgets/temperament.js:787 msgid "arbitrary" msgstr "" -#: js/temperament.js:719 +#: js/widgets/temperament.js:860 msgid "number of divisions" msgstr "" -#: js/temperament.js:741 -#: js/temperament.js:858 -#: js/temperament.js:940 -#: js/temperament.js:1033 +#: js/widgets/temperament.js:882 +#: js/widgets/temperament.js:999 +#: js/widgets/temperament.js:1085 +#: js/widgets/temperament.js:1178 msgid "preview" msgstr "" -#: js/temperament.js:788 +#: js/widgets/temperament.js:929 msgid "The Number of divisions is too large." msgstr "" -#: js/temperament.js:921 +#: js/widgets/temperament.js:1066 msgid "recursion" msgstr "" -#: js/temperament.js:1450 +#: js/widgets/temperament.js:1616 msgid "The octave ratio has changed. This changes temperament significantly." msgstr "" -#: js/temperament.js:2087 +#: js/widgets/temperament.js:2248 msgid "Table" msgstr "" -#: js/temperament.js:2185 +#: js/widgets/temperament.js:2356 msgid "Add pitches" msgstr "" -#: js/musickeyboard.js:570 -msgid "Metronome" +#: js/widgets/tempo.js:78 +#: js/widgets/tempo.js:97 +#: js/widgets/tempo.js:99 +#: js/widgets/aiwidget.js:134 +#: js/widgets/aiwidget.js:136 +#: js/widgets/rhythmruler.js:681 +#: js/widgets/rhythmruler.js:683 +#: js/widgets/rhythmruler.js:1864 +#: js/widgets/rhythmruler.js:1866 +#: js/widgets/sampler.js:180 +#: js/widgets/sampler.js:182 +msgid "Pause" msgstr "" -#: js/musickeyboard.js:1296 -#: plugins/rodi.rtp:193 -msgid "duration" +#: js/widgets/tempo.js:113 +msgid "Save tempo" msgstr "" -#: js/musickeyboard.js:2840 -msgid "New action blocks generated!" +#: js/widgets/tempo.js:144 +msgid "speed up" msgstr "" -#: js/musickeyboard.js:2841 -msgid "New action block generated" +#: js/widgets/tempo.js:150 +msgid "slow down" msgstr "" -#: js/musickeyboard.js:2984 -#: js/musickeyboard.js:2992 -msgid "MIDI device present." +#: js/widgets/tempo.js:194 +msgid "Adjust the tempo with the buttons." msgstr "" -#: js/musickeyboard.js:2995 -msgid "No MIDI device found." +#: js/widgets/tempo.js:261 +msgid "Please enter a number between 30 and 1000" msgstr "" -#: js/musickeyboard.js:3000 -msgid "Failed to get MIDI access in browser." +#: js/widgets/tempo.js:268 +#: js/widgets/tempo.js:271 +msgid "The beats per minute must be between 30 and 1000." msgstr "" -#: js/rhythmruler.js:202 -msgid "Save rhythms" +#: js/widgets/tempo.js:287 +msgid "The beats per minute must be below 1000." msgstr "" -#: js/rhythmruler.js:222 -msgid "Save drum machine" +#: js/widgets/tempo.js:303 +msgid "The beats per minute must be above 30" msgstr "" -#: js/rhythmruler.js:263 -#.TRANS: user can tap out a rhythm by clicking on a ruler. -msgid "Tap a rhythm" +#: js/widgets/timbre.js:766 +msgid "Synthesizer" msgstr "" -#: js/rhythmruler.js:342 -#: js/rhythmruler.js:344 -#: js/rhythmruler.js:1481 -#: js/rhythmruler.js:1483 -#: js/sampler.js:110 -#: js/sampler.js:112 -#: js/tempo.js:78 -#: js/tempo.js:97 -#: js/tempo.js:99 -msgid "Pause" +#: js/widgets/timbre.js:789 +msgid "Oscillator" msgstr "" -#: js/rhythmruler.js:478 -msgid "Click on the ruler to divide it." +#: js/widgets/timbre.js:840 +msgid "Envelope" msgstr "" -#: js/rhythmruler.js:603 -#: js/rhythmruler.js:605 -#: js/rhythmruler.js:804 -#: js/rhythmruler.js:806 -#: js/rhythmruler.js:1386 -#: js/rhythmruler.js:1388 -msgid "tap a rhythm" +#: js/widgets/timbre.js:886 +#: planet/js/GlobalTag.js:50 +#.TRANS: On the Planet, we use labels to tag projects. +msgid "Effects" msgstr "" -#: js/rhythmruler.js:1084 -msgid "Maximum value of 256 has been exceeded." +#: js/widgets/timbre.js:904 +msgid "Filter" msgstr "" -#: js/sampler.js:137 -msgid "Warning: Sample is bigger than 1MB." +#: js/widgets/timbre.js:946 +msgid "Add filter" msgstr "" -#: js/sampler.js:142 -msgid "Upload failed: Sample is not a .wav file." +#: js/widgets/timbre.js:987 +msgid "Click on buttons to open the timbre design tools." msgstr "" -#: js/sampler.js:164 -msgid "A new sample block was generated." +#: js/widgets/timbre.js:1273 +msgid "harmonicity" msgstr "" -#: js/sampler.js:255 -msgid "Upload sample" +#: js/widgets/timbre.js:1340 +#: js/widgets/timbre.js:1406 +msgid "modulation index" msgstr "" -#: js/sampler.js:306 -msgid "Save sample" +#: js/widgets/timbre.js:1484 +msgid "vibrato amount" msgstr "" -#: js/sampler.js:697 -#.TRANS: The reference tone is a sound used for comparison. -msgid "reference tone" +#: js/widgets/timbre.js:1919 +msgid "Filter already present." msgstr "" -#: js/tempo.js:113 -msgid "Save tempo" +#: js/widgets/timbre.js:2322 +msgid "delay (MS)" msgstr "" -#: js/tempo.js:144 -msgid "speed up" +#: js/widgets/timbre.js:2507 +msgid "distortion amount" msgstr "" -#: js/tempo.js:150 -msgid "slow down" +#: js/widgets/aiwidget.js:180 +#: js/widgets/sampler.js:227 +msgid "Warning: Sample is bigger than 1MB." msgstr "" -#: js/tempo.js:194 -msgid "Adjust the tempo with the buttons." +#: js/widgets/aiwidget.js:539 +msgid "New start block generated" msgstr "" -#: js/tempo.js:261 -msgid "Please enter a number between 30 and 1000" +#: js/widgets/aiwidget.js:541 +msgid "MIDI loading. This may take some time depending upon the number of notes in the track" msgstr "" -#: js/tempo.js:268 -#: js/tempo.js:271 -msgid "The beats per minute must be between 30 and 1000." +#: js/widgets/aiwidget.js:551 +#: js/widgets/sampler.js:254 +msgid "Upload failed: Sample is not a .wav file." msgstr "" -#: js/tempo.js:287 -msgid "The beats per minute must be below 1000." +#: js/widgets/aiwidget.js:679 +#: js/widgets/sampler.js:432 +msgid "Save sample" msgstr "" -#: js/tempo.js:303 -msgid "The beats per minute must be above 30" +#: js/widgets/aiwidget.js:701 +msgid "AI Music" msgstr "" -#: js/timbre.js:766 -msgid "Synthesizer" +#: js/widgets/arpeggio.js:239 +msgid "Click in the grid to add steps to the arpeggio." msgstr "" -#: js/timbre.js:789 -msgid "Oscillator" +#: js/widgets/help.js:95 +#: js/widgets/help.js:125 +#: js/widgets/help.js:146 +#: js/widgets/help.js:158 +#: js/widgets/help.js:376 +#: js/widgets/help.js:391 +msgid "Take a tour" msgstr "" -#: js/timbre.js:840 -msgid "Envelope" +#: js/widgets/musickeyboard.js:725 +#: js/widgets/phrasemaker.js:584 +msgid "Add note" msgstr "" -#: js/timbre.js:886 -#: js/GlobalTag.js:50 -#.TRANS: On the Planet, we use labels to tag projects. -msgid "Effects" +#: js/widgets/musickeyboard.js:744 +msgid "Metronome" +msgstr "" + +#: js/widgets/musickeyboard.js:1549 +#: plugins/rodi.rtp:193 +msgid "duration" +msgstr "" + +#: js/widgets/musickeyboard.js:3179 +msgid "New action blocks generated" +msgstr "" + +#: js/widgets/musickeyboard.js:3180 +msgid "New action block generated" msgstr "" -#: js/timbre.js:904 -msgid "Filter" +#: js/widgets/musickeyboard.js:3365 +#: js/widgets/musickeyboard.js:3373 +msgid "MIDI device present." msgstr "" -#: js/timbre.js:946 -msgid "Add filter" +#: js/widgets/musickeyboard.js:3376 +msgid "No MIDI device found." msgstr "" -#: js/timbre.js:987 -msgid "Click on buttons to open the timbre design tools." +#: js/widgets/musickeyboard.js:3386 +msgid "Failed to get MIDI access in browser." msgstr "" -#: js/timbre.js:1273 -msgid "harmonicity" +#: js/widgets/phrasemaker.js:574 +msgid "Export" msgstr "" -#: js/timbre.js:1340 -#: js/timbre.js:1406 -msgid "modulation index" +#: js/widgets/phrasemaker.js:581 +msgid "Sort" msgstr "" -#: js/timbre.js:1484 -msgid "vibrato amount" +#: js/widgets/phrasemaker.js:975 +msgid "Click on the table to add notes." msgstr "" -#: js/timbre.js:1919 -msgid "Filter already present." +#: js/widgets/phrasemaker.js:2677 +#: js/widgets/phrasemaker.js:2819 +msgid "tuplet value" msgstr "" -#: js/timbre.js:2322 -msgid "delay (MS)" +#: js/widgets/rhythmruler.js:486 +msgid "Save rhythms" msgstr "" -#: js/timbre.js:2507 -msgid "distortion amount" +#: js/widgets/rhythmruler.js:512 +msgid "Save drum machine" msgstr "" -#: js/meterwidget.js:170 -msgid "Reset" +#: js/widgets/rhythmruler.js:589 +#.TRANS: user can tap out a rhythm by clicking on a ruler. +msgid "Tap a rhythm" msgstr "" -#: js/meterwidget.js:196 -msgid "Click in the circle to select strong beats for the meter." +#: js/widgets/rhythmruler.js:817 +msgid "Click on the ruler to divide it." msgstr "" -#: js/arpeggio.js:239 -msgid "Click in the grid to add steps to the arpeggio." +#: js/widgets/rhythmruler.js:950 +#: js/widgets/rhythmruler.js:952 +#: js/widgets/rhythmruler.js:1152 +#: js/widgets/rhythmruler.js:1154 +#: js/widgets/rhythmruler.js:1765 +#: js/widgets/rhythmruler.js:1767 +msgid "tap a rhythm" msgstr "" -#: js/ProjectStorage.js:243 -msgid "anonymous" +#: js/widgets/rhythmruler.js:1459 +msgid "Maximum value of 256 has been exceeded." msgstr "" -#: js/GlobalCard.js:68 -msgid "Share" +#: js/widgets/sampler.js:237 +msgid "Recording started..." msgstr "" -#: js/GlobalCard.js:74 -msgid "Flags" +#: js/widgets/sampler.js:245 +msgid "Recording complete..." msgstr "" -#: js/LocalCard.js:36 -msgid "View published project" +#: js/widgets/sampler.js:283 +msgid "A new sample block was generated." msgstr "" -#: js/LocalCard.js:42 -msgid "Publish project" +#: js/widgets/sampler.js:378 +msgid "Upload sample" msgstr "" -#: js/LocalCard.js:51 -msgid "Edit project" +#: js/widgets/sampler.js:399 +msgid "Warning: Your sample cannot be loaded because it is >1MB." msgstr "" -#: js/LocalCard.js:52 -msgid "Delete project" +#: js/widgets/sampler.js:448 +msgid "Toggle Mic" msgstr "" -#: js/LocalCard.js:53 -msgid "Download project" +#: js/widgets/sampler.js:458 +msgid "Playback" msgstr "" -#: js/LocalCard.js:55 -msgid "Duplicate project" +#: js/widgets/sampler.js:979 +#.TRANS: The reference tone is a sound used for comparison. +msgid "reference tone" msgstr "" -#: js/GlobalTag.js:28 +#: planet/js/GlobalTag.js:28 #.TRANS: On the Planet, we use labels to tag projects. msgid "All Projects" msgstr "" -#: js/GlobalTag.js:30 -#: js/StringHelper.js:37 +#: planet/js/GlobalTag.js:30 +#: planet/js/StringHelper.js:37 #.TRANS: On the Planet, we use labels to tag projects. msgid "My Projects" msgstr "" -#: js/GlobalTag.js:32 +#: planet/js/GlobalTag.js:32 #.TRANS: On the Planet, we use labels to tag projects. msgid "Examples" msgstr "" -#: js/GlobalTag.js:34 +#: planet/js/GlobalTag.js:34 #.TRANS: On the Planet, we use labels to tag projects. msgid "Music" msgstr "" -#: js/GlobalTag.js:36 +#: planet/js/GlobalTag.js:36 #.TRANS: On the Planet, we use labels to tag projects. msgid "Art" msgstr "" -#: js/GlobalTag.js:38 +#: planet/js/GlobalTag.js:38 #.TRANS: On the Planet, we use labels to tag projects. msgid "Math" msgstr "" -#: js/GlobalTag.js:40 +#: planet/js/GlobalTag.js:40 #.TRANS: On the Planet, we use labels to tag projects. msgid "Interactive" msgstr "" -#: js/GlobalTag.js:42 +#: planet/js/GlobalTag.js:42 #.TRANS: On the Planet, we use labels to tag projects. msgid "Design" msgstr "" -#: js/GlobalTag.js:44 +#: planet/js/GlobalTag.js:44 #.TRANS: On the Planet, we use labels to tag projects. msgid "Game" msgstr "" -#: js/GlobalTag.js:46 +#: planet/js/GlobalTag.js:46 #.TRANS: On the Planet, we use labels to tag projects. msgid "Media" msgstr "" -#: js/GlobalTag.js:48 +#: planet/js/GlobalTag.js:48 #.TRANS: On the Planet, we use labels to tag projects. msgid "Sensors" msgstr "" -#: js/GlobalTag.js:52 +#: planet/js/GlobalTag.js:52 #.TRANS: On the Planet, we use labels to tag projects. msgid "Code Snippet" msgstr "" -#: js/helper.js:149 -#: js/StringHelper.js:49 -msgid "Show more tags" +#: planet/js/LocalCard.js:36 +msgid "View published project" msgstr "" -#: js/helper.js:150 -msgid "Show fewer tags" +#: planet/js/LocalCard.js:42 +msgid "Publish project" +msgstr "" + +#: planet/js/LocalCard.js:51 +msgid "Edit project" +msgstr "" + +#: planet/js/LocalCard.js:52 +msgid "Delete project" +msgstr "" + +#: planet/js/LocalCard.js:53 +msgid "Download project" +msgstr "" + +#: planet/js/LocalCard.js:55 +msgid "Duplicate project" +msgstr "" + +#: planet/js/ProjectStorage.js:243 +msgid "anonymous" +msgstr "" + +#: planet/js/SaveInterface.js:34 +msgid "Open in Music Blocks" +msgstr "" + +#: planet/js/SaveInterface.js:35 +msgid "Open in Turtle Blocks" +msgstr "" + +#: planet/js/GlobalCard.js:68 +msgid "Share" +msgstr "" + +#: planet/js/GlobalCard.js:74 +msgid "Flags" +msgstr "" + +#: planet/js/GlobalPlanet.js:35 +msgid "No results found." +msgstr "" + +#: planet/js/GlobalPlanet.js:51 +msgid "Remix of" +msgstr "" + +#: planet/js/GlobalPlanet.js:509 +msgid "Cannot connect to server" msgstr "" -#: js/ProjectViewer.js:30 +#: planet/js/ProjectViewer.js:30 msgid "Error: Report could not be submitted. Try again later." msgstr "" -#: js/ProjectViewer.js:31 +#: planet/js/ProjectViewer.js:31 msgid "Thank you for reporting this project. A moderator will review the project shortly, to verify violation of the Sugar Labs Code of Conduct." msgstr "" -#: js/ProjectViewer.js:32 -#: js/StringHelper.js:62 -#: js/StringHelper.js:64 -#: js/StringHelper.js:68 +#: planet/js/ProjectViewer.js:32 +#: planet/js/StringHelper.js:62 +#: planet/js/StringHelper.js:64 +#: planet/js/StringHelper.js:68 msgid "Report Project" msgstr "" -#: js/ProjectViewer.js:33 -#: js/StringHelper.js:63 +#: planet/js/ProjectViewer.js:33 +#: planet/js/StringHelper.js:63 msgid "Project Reported" msgstr "" -#: js/ProjectViewer.js:34 +#: planet/js/ProjectViewer.js:34 msgid "Report description required" msgstr "" -#: js/ProjectViewer.js:35 +#: planet/js/ProjectViewer.js:35 msgid "Report description too long" msgstr "" -#: js/StringHelper.js:30 +#: planet/js/Publisher.js:30 +msgid "Feature unavailable - cannot connect to server. Reload Music Blocks to try again." +msgstr "" + +#: planet/js/Publisher.js:220 +#: planet/js/Publisher.js:237 +msgid "This field is required" +msgstr "" + +#: planet/js/Publisher.js:227 +msgid "Title too long" +msgstr "" + +#: planet/js/Publisher.js:244 +msgid "Description too long" +msgstr "" + +#: planet/js/Publisher.js:341 +msgid "Server Error" +msgstr "" + +#: planet/js/Publisher.js:341 +msgid "Try Again" +msgstr "" + +#: planet/js/StringHelper.js:30 msgid "Planet" msgstr "" -#: js/StringHelper.js:31 +#: planet/js/StringHelper.js:31 msgid "Close Planet" msgstr "" -#: js/StringHelper.js:32 +#: planet/js/StringHelper.js:32 msgid "Open project from file" msgstr "" -#: js/StringHelper.js:34 +#: planet/js/StringHelper.js:34 msgid "Local" msgstr "" -#: js/StringHelper.js:35 +#: planet/js/StringHelper.js:35 msgid "Global" msgstr "" -#: js/StringHelper.js:36 +#: planet/js/StringHelper.js:36 msgid "Search for a project" msgstr "" -#: js/StringHelper.js:38 +#: planet/js/StringHelper.js:38 msgid "Publish Project" msgstr "" -#: js/StringHelper.js:40 +#: planet/js/StringHelper.js:40 msgid "Tags (max 5)" msgstr "" -#: js/StringHelper.js:41 -#: js/StringHelper.js:61 +#: planet/js/StringHelper.js:41 +#: planet/js/StringHelper.js:61 msgid "Description" msgstr "" -#: js/StringHelper.js:42 -#: js/StringHelper.js:67 +#: planet/js/StringHelper.js:42 +#: planet/js/StringHelper.js:67 msgid "Submit" msgstr "" -#: js/StringHelper.js:43 -#: js/StringHelper.js:47 +#: planet/js/StringHelper.js:43 +#: planet/js/StringHelper.js:47 msgid "Cancel" msgstr "" -#: js/StringHelper.js:44 +#: planet/js/StringHelper.js:44 msgid "Delete \\"\\"?" msgstr "" -#: js/StringHelper.js:45 +#: planet/js/StringHelper.js:45 msgid "Permanently delete project \\"\\"?" msgstr "" -#: js/StringHelper.js:48 +#: planet/js/StringHelper.js:48 msgid "Explore Projects" msgstr "" -#: js/StringHelper.js:50 +#: planet/js/StringHelper.js:49 +#: planet/js/helper.js:149 +msgid "Show more tags" +msgstr "" + +#: planet/js/StringHelper.js:50 msgid "Most recent" msgstr "" -#: js/StringHelper.js:51 +#: planet/js/StringHelper.js:51 msgid "Most liked" msgstr "" -#: js/StringHelper.js:52 +#: planet/js/StringHelper.js:52 msgid "Most downloaded" msgstr "" -#: js/StringHelper.js:53 +#: planet/js/StringHelper.js:53 msgid "A-Z" msgstr "" -#: js/StringHelper.js:54 +#: planet/js/StringHelper.js:54 msgid "Sort by" msgstr "" -#: js/StringHelper.js:55 +#: planet/js/StringHelper.js:55 msgid "Load More Projects" msgstr "" -#: js/StringHelper.js:56 +#: planet/js/StringHelper.js:56 msgid "Last Updated" msgstr "" -#: js/StringHelper.js:57 +#: planet/js/StringHelper.js:57 msgid "Creation Date" msgstr "" -#: js/StringHelper.js:58 +#: planet/js/StringHelper.js:58 msgid "Number of Downloads:" msgstr "" -#: js/StringHelper.js:59 +#: planet/js/StringHelper.js:59 msgid "Number of Likes:" msgstr "" -#: js/StringHelper.js:60 +#: planet/js/StringHelper.js:60 msgid "Tags:" msgstr "" -#: js/StringHelper.js:65 +#: planet/js/StringHelper.js:65 msgid "Report projects which violate the Sugar Labs Code of Conduct." msgstr "" -#: js/StringHelper.js:66 +#: planet/js/StringHelper.js:66 msgid "Reason for reporting project" msgstr "" -#: js/StringHelper.js:70 +#: planet/js/StringHelper.js:70 msgid "Download as File" msgstr "" -#: js/GlobalPlanet.js:35 -msgid "No results found." -msgstr "" - -#: js/GlobalPlanet.js:51 -msgid "Remix of" -msgstr "" - -#: js/GlobalPlanet.js:509 -msgid "Cannot connect to server" -msgstr "" - -#: js/Publisher.js:30 -msgid "Feature unavailable - cannot connect to server. Reload Music Blocks to try again." -msgstr "" - -#: js/Publisher.js:218 -#: js/Publisher.js:235 -msgid "This field is required" -msgstr "" - -#: js/Publisher.js:225 -msgid "Title too long" +#: planet/js/helper.js:150 +msgid "Show fewer tags" msgstr "" -#: js/Publisher.js:242 -msgid "Description too long" +#: plugins/accelerometer.rtp:48 +msgid "motion x" msgstr "" -#: js/Publisher.js:339 -msgid "Server Error" +#: plugins/accelerometer.rtp:56 +msgid "motion y" msgstr "" -#: js/Publisher.js:339 -msgid "Try Again" +#: plugins/accelerometer.rtp:64 +msgid "motion z" msgstr "" -#: js/SaveInterface.js:34 -msgid "Open in Music Blocks" +#: plugins/facebook.rtp:27 +msgid "publish" msgstr "" -#: js/SaveInterface.js:35 -msgid "Open in Turtle Blocks" +#: plugins/maths.rtp:62 +msgid "power" msgstr "" -#: plugins/weather.rtp:68 -#: plugins/weather.rtp:97 -msgid "Days ahead must be in the range of -1 to 5." +#: plugins/maths.rtp:62 +msgid "base" msgstr "" -#: plugins/weather.rtp:122 -msgid "forecast" +#: plugins/maths.rtp:62 +msgid "exp" msgstr "" -#: plugins/weather.rtp:123 -#: plugins/weather.rtp:137 -#: plugins/weather.rtp:150 -msgid "city" +#: plugins/maths.rtp:99 +msgid "floor" msgstr "" -#: plugins/weather.rtp:124 -#: plugins/weather.rtp:138 -#: plugins/weather.rtp:151 -msgid "day" +#: plugins/maths.rtp:104 +msgid "ceiling" msgstr "" -#: plugins/weather.rtp:136 -msgid "high" +#: plugins/maths.rtp:109 +msgid "to degrees" msgstr "" -#: plugins/weather.rtp:149 -msgid "low" +#: plugins/maths.rtp:114 +msgid "to radians" msgstr "" #: plugins/nutrition.rtp:104 @@ -9458,45 +9867,6 @@ msgstr "" msgid "water" msgstr "" -#: plugins/maths.rtp:62 -#: plugins/examples.rtp:93 -msgid "power" -msgstr "" - -#: plugins/maths.rtp:62 -#: plugins/examples.rtp:93 -msgid "base" -msgstr "" - -#: plugins/maths.rtp:62 -#: plugins/examples.rtp:93 -msgid "exp" -msgstr "" - -#: plugins/maths.rtp:99 -#: plugins/examples.rtp:130 -msgid "floor" -msgstr "" - -#: plugins/maths.rtp:104 -#: plugins/examples.rtp:135 -msgid "ceiling" -msgstr "" - -#: plugins/maths.rtp:109 -#: plugins/examples.rtp:140 -msgid "to degrees" -msgstr "" - -#: plugins/maths.rtp:114 -#: plugins/examples.rtp:145 -msgid "to radians" -msgstr "" - -#: plugins/facebook.rtp:27 -msgid "publish" -msgstr "" - #: plugins/rodi.rtp:172 msgid "blink" msgstr "" @@ -9525,18 +9895,66 @@ msgstr "" msgid "move" msgstr "" -#: plugins/accelerometer.rtp:48 -msgid "motion x" +#: plugins/weather.rtp:68 +#: plugins/weather.rtp:97 +msgid "Days ahead must be in the range of -1 to 5." msgstr "" -#: plugins/accelerometer.rtp:56 -msgid "motion y" +#: plugins/weather.rtp:122 +msgid "forecast" msgstr "" -#: plugins/accelerometer.rtp:64 -msgid "motion z" +#: plugins/weather.rtp:123 +#: plugins/weather.rtp:137 +#: plugins/weather.rtp:150 +msgid "city" +msgstr "" + +#: plugins/weather.rtp:124 +#: plugins/weather.rtp:138 +#: plugins/weather.rtp:151 +msgid "day" +msgstr "" + +#: plugins/weather.rtp:136 +msgid "high" +msgstr "" + +#: plugins/weather.rtp:149 +msgid "low" msgstr "" +#: js/toolbar.js:70 + +#: js/toolbar.js:130 + +#: js/toolbar.js:194 + +#: js/toolbar.js:249 + +#~msgid "Toggle JavaScript Editor" +#~msgstr "" + +#: js/EnsembleBlocks.js:643 + +#~msgid "The Turrle pitch block returns the current pitch number being played by the specified turtle." +#~msgstr "" + +#: js/PitchActions.js:88 + +#~msgid "The Scalar Step Block must be used inside of a Note Block." +#~msgstr "" + +#: js/PitchActions.js:107 + +#~msgid "The Scalar Step Block must be preceded by a Pitch Block." +#~msgstr "" + +#: js/musickeyboard.js:2840 + +#~msgid "New action blocks generated!" +#~msgstr "" + #: js/toolbar.js:110 #: js/toolbar.js:204 @@ -9877,11 +10295,6 @@ msgstr "" #~msgid "The Time block returns the number of seconds that the program has been running." #~msgstr "" -#: js/help.js:95 - -#~msgid "Take a tour" -#~msgstr "" - #: js/GlobalCard.js:48 #~msgid "More Details" @@ -12780,11 +13193,6 @@ msgstr "" #~msgid "The save-stack button saves a stack onto a custom palette. It appears after a \"long press\" on a stack." #~msgstr "" -#: js/musicutils.js:254 - -#~msgid "Custom" -#~msgstr "" - #: js/basicblocks.js:4785 #~msgid "Rhythm" diff --git a/po/da.po b/po/da.po index 9db7bddd0a..201f6c4c2f 100644 --- a/po/da.po +++ b/po/da.po @@ -2129,276 +2129,131 @@ #: js/planetInterface.js:104 #: js/planetInterface.js:104 #: js/planetInterface.js:104 -msgid "project undefined" +#: js/SaveInterface.js:59 +#: js/SaveInterface.js:61 +#: js/SaveInterface.js:93 +msgid "Music Blocks Project" msgstr "" -#: js/logo.js:61 -msgid "Not a valid pitch name" +#: js/SaveInterface.js:63 +msgid "This project was created in Music Blocks" msgstr "" -#: js/logo.js:507 -#: js/ProgramBlocks.js:258 -#: js/ProgramBlocks.js:427 -msgid "You must select a file." +#: js/SaveInterface.js:67 +msgid "Music Blocks is a Free/Libre Software application." msgstr "" -#: js/logo.js:1184 -#: js/turtles.js:118 -#: js/turtle-painter.js:1192 -#: js/turtle-painter.js:1193 -#: js/block.js:1463 -#: js/lilypond.js:757 -#: js/lilypond.js:921 -#: js/lilypond.js:959 -#: js/ActionBlocks.js:1223 -#: js/ProgramBlocks.js:1267 -msgid "start" -msgstr "start" - -#: js/logo.js:1696 -msgid "Playback is ready." +#: js/SaveInterface.js:69 +msgid "The source code can be accessed at" msgstr "" -#: js/blocks.js:1011 -#: js/blocks.js:3427 -#: js/blocks.js:3428 -#: js/blocks.js:3653 -#: js/blocks.js:4012 -#: js/blocks.js:4205 -#: js/blocks.js:5343 -#: js/blocks.js:6474 -#: js/palette.js:527 -#: js/palette.js:536 -#: js/palette.js:545 -#: js/palette.js:554 -#: js/palette.js:1131 -#: js/palette.js:1142 -#: js/palette.js:1153 -#: js/palette.js:1164 -#: js/palette.js:1183 -#: js/rubrics.js:529 -#: js/macros.js:170 -#: js/macros.js:266 -#: js/macros.js:267 -#: js/macros.js:276 -#: js/macros.js:828 -#: js/block.js:1449 -#: js/block.js:4164 -#: js/block.js:4182 -#: js/block.js:4193 -#: js/turtledefs.js:128 -#: js/turtledefs.js:230 -#: js/ActionBlocks.js:254 -#: js/ActionBlocks.js:307 -#: js/ActionBlocks.js:617 -#: js/ActionBlocks.js:716 -#: js/ActionBlocks.js:961 -#: js/ActionBlocks.js:1049 -#: js/ActionBlocks.js:1322 -#: js/ActionBlocks.js:1325 -#: js/ActionBlocks.js:1337 -#: js/ActionBlocks.js:1404 -#: js/MeterBlocks.js:715 -#: js/MeterBlocks.js:768 -#: js/MeterBlocks.js:831 -#: js/MeterBlocks.js:892 -#: js/phrasemaker.js:4412 -#: js/musickeyboard.js:2647 -#: js/rhythmruler.js:1928 -#: js/rhythmruler.js:1935 -#: js/rhythmruler.js:2119 -#: js/rhythmruler.js:2126 -msgid "action" -msgstr "handling" - -#: js/blocks.js:1205 -#: js/blocks.js:3380 -#: js/blocks.js:3770 -#: js/blocks.js:3801 -#: js/blocks.js:3850 -#: js/blocks.js:3885 -#: js/blocks.js:6497 -#: js/palette.js:509 -#: js/palette.js:638 -#: js/palette.js:1107 -#: js/BoxesBlocks.js:282 -#: js/BoxesBlocks.js:285 -#: js/BoxesBlocks.js:405 -#: js/BoxesBlocks.js:594 -msgid "box" -msgstr "boks" - -#: js/blocks.js:1680 -msgid "Consider breaking this stack into parts." +#: js/SaveInterface.js:72 +msgid "For more information, please consult the" msgstr "" -#: js/blocks.js:2408 -#: js/palette.js:653 -#: js/MediaBlocks.js:602 -msgid "open file" +#: js/SaveInterface.js:76 +#: js/turtledefs.js:795 +msgid "Music Blocks Guide" msgstr "" -#: js/blocks.js:2415 -#: js/blocks.js:2423 -#: js/activity.js:1875 -msgid "audio file" +#: js/SaveInterface.js:83 +msgid "Alternatively, open the file in Music Blocks using the Load project button." msgstr "" -#: js/blocks.js:2536 -#: js/blocks.js:3147 -#: js/block.js:3543 -msgid "on2" +#: js/SaveInterface.js:85 +msgid "Project Code" msgstr "" -#: js/blocks.js:2538 -#: js/blocks.js:3149 -#: js/block.js:3545 -msgid "off" +#: js/SaveInterface.js:87 +msgid "This code stores data about the blocks in a project." msgstr "" -#: js/blocks.js:2543 -#: js/blocks.js:3154 -#: js/palette.js:618 -#: js/block.js:3466 -#: js/BooleanBlocks.js:77 -#: js/BooleanBlocks.js:167 -#: js/BooleanBlocks.js:251 -#: js/BooleanBlocks.js:335 -#: js/BooleanBlocks.js:433 -#: js/BooleanBlocks.js:539 -#: js/BooleanBlocks.js:640 -#: js/BooleanBlocks.js:741 -#: js/BooleanBlocks.js:847 -#: js/BooleanBlocks.js:948 -#: js/BooleanBlocks.js:1033 -#: js/SensorsBlocks.js:910 -msgid "true" +#: js/SaveInterface.js:89 +msgid "Show" msgstr "" -#: js/blocks.js:2545 -#: js/blocks.js:3156 -#: js/block.js:3466 -#: js/BooleanBlocks.js:79 -#: js/BooleanBlocks.js:169 -#: js/BooleanBlocks.js:253 -#: js/BooleanBlocks.js:337 -#: js/BooleanBlocks.js:435 -#: js/BooleanBlocks.js:541 -#: js/BooleanBlocks.js:642 -#: js/BooleanBlocks.js:743 -#: js/BooleanBlocks.js:849 -#: js/BooleanBlocks.js:950 -#: js/SensorsBlocks.js:912 -msgid "false" +#: js/SaveInterface.js:91 +msgid "Hide" msgstr "" -#: js/blocks.js:3183 -#: js/palette.js:574 -#: js/MediaBlocks.js:892 -#: js/MediaBlocks.js:963 -msgid "text" -msgstr "tekst" - -#: js/blocks.js:3379 -#: js/palette.js:641 -#: js/palette.js:642 -#: js/BoxesBlocks.js:514 -msgid "store in box" +#: js/SaveInterface.js:131 +#: js/SaveInterface.js:204 +#: js/SaveInterface.js:262 +#: js/SaveInterface.js:389 +#: js/SaveInterface.js:417 +#: js/activity.js:4884 +#: planet/js/ProjectStorage.js:27 +#: planet/js/GlobalPlanet.js:467 +#: planet/js/GlobalPlanet.js:469 +#: planet/js/GlobalPlanet.js:495 +#.TRANS: default project title when saving as Lilypond +msgid "My Project" msgstr "" -#: js/blocks.js:3384 -#: js/blocks.js:3824 -#: js/blocks.js:3859 -#: js/blocks.js:3894 -#: js/blocks.js:5773 -#: js/blocks.js:5794 -#: js/BoxesBlocks.js:772 -msgid "box1" +#: js/SaveInterface.js:197 +#: planet/js/SaveInterface.js:58 +msgid "No description provided" msgstr "" -#: js/blocks.js:3386 -#: js/blocks.js:3826 -#: js/blocks.js:3861 -#: js/blocks.js:3896 -#: js/blocks.js:5775 -#: js/blocks.js:5796 -#: js/BoxesBlocks.js:663 -msgid "box2" +#: js/SaveInterface.js:332 +msgid "Your recording is in progress." msgstr "" -#: js/blocks.js:4058 -#: js/palette.js:639 -#: js/palette.js:644 -#: js/palette.js:1043 -#: js/BoxesBlocks.js:591 -msgid "store in" -msgstr "gem i" - -#: js/blocks.js:4058 -#: js/EnsembleBlocks.js:391 -#: js/EnsembleBlocks.js:402 -#: js/MediaBlocks.js:746 -#: js/ProgramBlocks.js:390 -#: js/ProgramBlocks.js:495 -#: js/ProgramBlocks.js:658 -#: js/BoxesBlocks.js:595 -#: js/PitchBlocks.js:656 -#: js/PitchBlocks.js:932 -#: js/PitchBlocks.js:1827 -#: js/ToneBlocks.js:1025 -#: js/DictBlocks.js:215 -#: js/DictBlocks.js:289 -msgid "name" +#: js/SaveInterface.js:401 +#.TRANS: File name prompt for save as Lilypond +msgid "File name" msgstr "" -#: js/blocks.js:4058 -#: js/RhythmBlocks.js:1130 -#: js/BoxesBlocks.js:75 -#: js/BoxesBlocks.js:595 -#: js/HeapBlocks.js:544 -#: js/DictBlocks.js:289 -#: js/DictBlocks.js:430 -msgid "value" -msgstr "værdi" - -#: js/blocks.js:4907 -msgid "There is no block selected." +#: js/SaveInterface.js:403 +#: planet/js/StringHelper.js:39 +#.TRANS: Project title prompt for save as Lilypond +msgid "Project title" msgstr "" -#: js/blocks.js:5002 -#: js/MediaBlocks.js:888 -msgid "show" -msgstr "vis" - -#: js/blocks.js:5005 -#: js/MediaBlocks.js:803 -#.TRANS: Avatar is the image used to determine the appearance of the mouse. -msgid "avatar" +#: js/SaveInterface.js:405 +#.TRANS: Project title prompt for save as Lilypond +msgid "Project author" msgstr "" -#: js/blocks.js:5008 -#: js/ToneBlocks.js:1010 -#: js/sampler.js:693 -#.TRANS: The sound sample that the user uploads. -msgid "sample" +#: js/SaveInterface.js:407 +#.TRANS: MIDI prompt for save as Lilypond +msgid "Include MIDI output?" msgstr "" -#: js/turtles.js:874 -msgid "Grid" +#: js/SaveInterface.js:409 +#.TRANS: Guitar prompt for save as Lilypond +msgid "Include guitar tablature output?" msgstr "" -#: js/turtles.js:891 -#: js/turtledefs.js:626 -msgid "Clean" -msgstr "Rens" +#: js/SaveInterface.js:411 +#.TRANS: Lilypond is a scripting language for generating sheet music +msgid "Save as Lilypond" +msgstr "" -#: js/turtles.js:912 -#: js/turtledefs.js:632 -msgid "Collapse" +#: js/SaveInterface.js:426 +#: js/blocks/EnsembleBlocks.js:75 +#: js/blocks/EnsembleBlocks.js:154 +#: js/blocks/EnsembleBlocks.js:216 +#: js/blocks/EnsembleBlocks.js:302 +#: js/blocks/EnsembleBlocks.js:348 +#: js/blocks/EnsembleBlocks.js:389 +#: js/blocks/EnsembleBlocks.js:441 +#: js/blocks/EnsembleBlocks.js:490 +#: js/blocks/EnsembleBlocks.js:536 +#: js/blocks/EnsembleBlocks.js:583 +#: js/blocks/EnsembleBlocks.js:637 +#: js/blocks/EnsembleBlocks.js:753 +#: js/blocks/EnsembleBlocks.js:840 +#: js/blocks/EnsembleBlocks.js:899 +#: js/blocks/EnsembleBlocks.js:942 +#: js/blocks/EnsembleBlocks.js:1212 +#: js/blocks/EnsembleBlocks.js:1280 +#.TRANS: default project author when saving as Lilypond +msgid "Mr. Mouse" msgstr "" -#: js/turtles.js:940 -msgid "Expand" +#: js/SaveInterface.js:573 +msgid "The Lilypond code is copied to clipboard. You can paste it here: " msgstr "" #: js/languagebox.js:198 @@ -2409,6933 +2264,7487 @@ msgstr "" msgid "Music Blocks is already set to this language." msgstr "" -#: js/piemenus.js:200 -#: js/musicutils.js:808 -#: js/musicutils.js:824 -#: js/phrasemaker.js:1672 -#: js/musickeyboard.js:2041 -#: js/sampler.js:544 -#.TRANS: double sharp is a music term related to pitch -msgid "double sharp" +#: js/planetInterface.js:131 +msgid "project undefined" msgstr "" -#: js/piemenus.js:201 -#: js/PitchBlocks.js:1510 -#: js/PitchActions.js:580 -#: js/musicutils.js:806 -#: js/musicutils.js:825 -#: js/phrasemaker.js:1673 -#: js/musickeyboard.js:2042 -#: js/sampler.js:545 -#.TRANS: sharp is a half-step up in pitch -#.TRANS: sharp is a music term related to pitch -msgid "sharp" +#: js/rubrics.js:523 +#: js/turtledefs.js:119 +#: js/turtledefs.js:221 +#: js/blocks/RhythmBlockPaletteBlocks.js:52 +#: js/blocks/RhythmBlockPaletteBlocks.js:234 +#: js/blocks/ProgramBlocks.js:745 +#: js/widgets/rhythmruler.js:2057 +#: js/widgets/rhythmruler.js:2064 +#: js/widgets/rhythmruler.js:2133 +#: js/widgets/rhythmruler.js:2140 +#: js/widgets/rhythmruler.js:2219 +#.TRANS: an arrangement of notes based on duration +msgid "rhythm" msgstr "" -#: js/piemenus.js:202 -#: js/musicutils.js:804 -#: js/musicutils.js:826 -#: js/phrasemaker.js:1674 -#: js/musickeyboard.js:2043 -#: js/sampler.js:546 -#.TRANS: natural is a music term related to pitch -msgid "natural" +#: js/rubrics.js:524 +#: js/turtledefs.js:121 +#: js/turtledefs.js:223 +#: js/block-verbose.js:2622 +#: js/block.js:2550 +#: js/blocks/IntervalsBlocks.js:63 +#: js/blocks/SensorsBlocks.js:178 +#: js/blocks/PitchBlocks.js:1839 +#: js/blocks/PitchBlocks.js:1853 +#: js/widgets/musickeyboard.js:1935 +#: js/widgets/phrasemaker.js:1036 +#.TRANS: pitch number +#.TRANS: pitch number +#.TRANS: we specify pitch in terms of a name and an octave. The name can be CDEFGAB or Do Re Mi Fa Sol La Ti. Octave is a number between 1 and 8. +msgid "pitch" msgstr "" -#: js/piemenus.js:203 -#: js/PitchBlocks.js:1469 -#: js/PitchActions.js:583 -#: js/musicutils.js:802 -#: js/musicutils.js:827 -#: js/phrasemaker.js:1675 -#: js/musickeyboard.js:2044 -#: js/sampler.js:547 -#.TRANS: flat is a half-step down in pitch -#.TRANS: flat is a music term related to pitch -msgid "flat" +#: js/rubrics.js:525 +#: js/turtledefs.js:123 +#: js/turtledefs.js:225 +msgid "tone" msgstr "" -#: js/piemenus.js:204 -#: js/musicutils.js:800 -#: js/musicutils.js:828 -#: js/phrasemaker.js:1676 -#: js/musickeyboard.js:2045 -#: js/sampler.js:548 -#.TRANS: double flat is a music term related to pitch -msgid "double flat" +#: js/rubrics.js:526 +#: js/lilypond.js:605 +#: js/lilypond.js:904 +#: js/lilypond.js:910 +#: js/lilypond.js:948 +msgid "mouse" msgstr "" -#: js/piemenus.js:2861 -#: js/PitchBlocks.js:1357 -#: js/musicutils.js:627 -#.TRANS: unison means the note is the same as the current note -#.TRANS: unison is a music term related to intervals -msgid "unison" -msgstr "" +#: js/rubrics.js:527 +#: js/turtledefs.js:132 +#: js/turtledefs.js:234 +#: js/widgets/phrasemaker.js:1040 +msgid "pen" +msgstr "pen" -#: js/piemenus.js:3015 -#: js/piemenus.js:3088 -#: js/musicutils.js:635 -#: js/musicutils.js:810 -#: js/musicutils.js:912 -#.TRANS: major is a music term related to intervals and mode -msgid "major" -msgstr "" +#: js/rubrics.js:528 +#: js/turtledefs.js:133 +#: js/turtledefs.js:235 +#: js/blocks/NumberBlocks.js:981 +#: js/blocks/PitchBlocks.js:1717 +#: js/blocks/PitchBlocks.js:1758 +msgid "number" +msgstr "tal" -#: js/piemenus.js:3015 -#: js/piemenus.js:3088 -#: js/musicutils.js:653 -#.TRANS: modal scale for music -msgid "ionian" -msgstr "" +#: js/rubrics.js:529 +#: js/turtledefs.js:127 +#: js/turtledefs.js:229 +msgid "flow" +msgstr "flyd" -#: js/piemenus.js:3017 -#: js/piemenus.js:3092 -#: js/musicutils.js:633 -#: js/musicutils.js:811 -#: js/musicutils.js:909 -#.TRANS: minor is a music term related to intervals and mode -msgid "minor" -msgstr "" +#: js/rubrics.js:530 +#: js/turtledefs.js:128 +#: js/turtledefs.js:230 +#: js/block-verbose.js:1609 +#: js/block-verbose.js:4559 +#: js/block-verbose.js:4577 +#: js/block-verbose.js:4588 +#: js/block.js:1573 +#: js/block.js:4483 +#: js/block.js:4501 +#: js/block.js:4512 +#: js/blocks.js:1018 +#: js/blocks.js:3491 +#: js/blocks.js:3492 +#: js/blocks.js:3717 +#: js/blocks.js:4076 +#: js/blocks.js:4269 +#: js/blocks.js:5432 +#: js/blocks.js:6563 +#: js/macros.js:170 +#: js/macros.js:266 +#: js/macros.js:267 +#: js/macros.js:276 +#: js/macros.js:828 +#: js/palette.js:527 +#: js/palette.js:536 +#: js/palette.js:545 +#: js/palette.js:554 +#: js/palette.js:1129 +#: js/palette.js:1140 +#: js/palette.js:1151 +#: js/palette.js:1162 +#: js/palette.js:1181 +#: js/blocks/ActionBlocks.js:254 +#: js/blocks/ActionBlocks.js:307 +#: js/blocks/ActionBlocks.js:617 +#: js/blocks/ActionBlocks.js:716 +#: js/blocks/ActionBlocks.js:961 +#: js/blocks/ActionBlocks.js:1049 +#: js/blocks/ActionBlocks.js:1322 +#: js/blocks/ActionBlocks.js:1325 +#: js/blocks/ActionBlocks.js:1337 +#: js/blocks/ActionBlocks.js:1404 +#: js/blocks/MeterBlocks.js:715 +#: js/blocks/MeterBlocks.js:768 +#: js/blocks/MeterBlocks.js:831 +#: js/blocks/MeterBlocks.js:892 +#: js/widgets/musickeyboard.js:2986 +#: js/widgets/phrasemaker.js:4913 +#: js/widgets/rhythmruler.js:2319 +#: js/widgets/rhythmruler.js:2326 +#: js/widgets/rhythmruler.js:2511 +#: js/widgets/rhythmruler.js:2518 +msgid "action" +msgstr "handling" -#: js/piemenus.js:3017 -#: js/piemenus.js:3092 -#: js/musicutils.js:663 -#.TRANS: modal scale for music -msgid "aeolian" +#: js/rubrics.js:531 +#: js/turtledefs.js:136 +#: js/turtledefs.js:238 +msgid "sensors" msgstr "" -#: js/piemenus.js:3407 -msgid "Duplicate" -msgstr "" +#: js/rubrics.js:532 +#: js/turtledefs.js:135 +#: js/turtledefs.js:237 +#: js/blocks/MediaBlocks.js:930 +msgid "media" +msgstr "medie" -#: js/piemenus.js:3408 -#: js/turtledefs.js:534 -msgid "Extract" +#: js/rubrics.js:533 +msgid "mice" msgstr "" -#: js/piemenus.js:3409 -msgid "Move to trash" +#: js/toolbar.js:48 +#: js/toolbar.js:109 +msgid "About Music Blocks" msgstr "" -#: js/piemenus.js:3410 -#: js/timbre.js:968 -#: js/StringHelper.js:69 -msgid "Close" +#: js/toolbar.js:49 +#: js/toolbar.js:110 +#: js/toolbar.js:175 +#: js/toolbar.js:231 +#: js/turtledefs.js:445 +#: js/turtledefs.js:482 +#: js/activity.js:2660 +#: js/activity.js:2671 +#: js/activity.js:2902 +#: js/widgets/modewidget.js:77 +#: js/widgets/meterwidget.js:185 +#: js/widgets/pitchdrummatrix.js:147 +#: js/widgets/pitchdrummatrix.js:687 +#: js/widgets/pitchdrummatrix.js:689 +#: js/widgets/pitchdrummatrix.js:741 +#: js/widgets/pitchdrummatrix.js:743 +#: js/widgets/pitchdrummatrix.js:758 +#: js/widgets/pitchdrummatrix.js:760 +#: js/widgets/pitchdrummatrix.js:789 +#: js/widgets/pitchdrummatrix.js:791 +#: js/widgets/pitchstaircase.js:121 +#: js/widgets/temperament.js:610 +#: js/widgets/temperament.js:613 +#: js/widgets/temperament.js:673 +#: js/widgets/temperament.js:675 +#: js/widgets/temperament.js:2017 +#: js/widgets/temperament.js:2019 +#: js/widgets/tempo.js:84 +#: js/widgets/tempo.js:86 +#: js/widgets/timbre.js:432 +#: js/widgets/timbre.js:434 +#: js/widgets/timbre.js:465 +#: js/widgets/timbre.js:467 +#: js/widgets/timbre.js:746 +#: js/widgets/aiwidget.js:647 +#: js/widgets/aiwidget.js:654 +#: js/widgets/aiwidget.js:656 +#: js/widgets/arpeggio.js:90 +#: js/widgets/arpeggio.js:547 +#: js/widgets/arpeggio.js:549 +#: js/widgets/arpeggio.js:644 +#: js/widgets/arpeggio.js:646 +#: js/widgets/musickeyboard.js:676 +#: js/widgets/musickeyboard.js:872 +#: js/widgets/musickeyboard.js:874 +#: js/widgets/musickeyboard.js:953 +#: js/widgets/musickeyboard.js:955 +#: js/widgets/phrasemaker.js:513 +#: js/widgets/phrasemaker.js:523 +#: js/widgets/phrasemaker.js:525 +#: js/widgets/phrasemaker.js:4304 +#: js/widgets/phrasemaker.js:4528 +#: js/widgets/phrasemaker.js:4533 +#: js/widgets/phrasemaker.js:4535 +#: js/widgets/phrasemaker.js:4650 +#: js/widgets/rhythmruler.js:637 +#: js/widgets/rhythmruler.js:639 +#: js/widgets/rhythmruler.js:653 +#: js/widgets/rhythmruler.js:655 +#: js/widgets/sampler.js:162 +#: js/widgets/sampler.js:164 +#: js/widgets/sampler.js:363 +msgid "Play" msgstr "" -#: js/piemenus.js:3416 -msgid "Save stack" -msgstr "Gem stak" +#: js/toolbar.js:50 +#: js/toolbar.js:111 +#: js/toolbar.js:176 +#: js/toolbar.js:232 +#: js/turtledefs.js:451 +#: js/turtledefs.js:488 +#: js/activity.js:2679 +#: js/widgets/modewidget.js:99 +#: js/widgets/modewidget.js:101 +#: js/widgets/meterwidget.js:206 +#: js/widgets/meterwidget.js:208 +#: js/widgets/pitchdrummatrix.js:674 +#: js/widgets/pitchdrummatrix.js:676 +#: js/widgets/temperament.js:2002 +#: js/widgets/temperament.js:2004 +#: js/widgets/arpeggio.js:534 +#: js/widgets/arpeggio.js:536 +#: js/widgets/phrasemaker.js:534 +#: js/widgets/phrasemaker.js:536 +msgid "Stop" +msgstr "Stop" -#: js/piemenus.js:3420 -#: js/toolbar.js:60 -#: js/toolbar.js:120 -#: js/toolbar.js:185 +#: js/toolbar.js:51 +#: js/toolbar.js:112 +#: js/toolbar.js:177 +#: js/toolbar.js:233 +#: js/turtledefs.js:498 +msgid "Record" +msgstr "" + +#: js/toolbar.js:52 +#: js/toolbar.js:53 +msgid "Full screen" +msgstr "" + +#: js/toolbar.js:54 +#: js/toolbar.js:115 +#: js/toolbar.js:180 +#: js/toolbar.js:236 +#: js/turtledefs.js:504 +msgid "Toggle Fullscreen" +msgstr "" + +#: js/toolbar.js:55 +#: js/toolbar.js:116 +#: js/toolbar.js:181 +#: js/toolbar.js:237 +#: js/turtledefs.js:510 +#: planet/js/StringHelper.js:33 +msgid "New project" +msgstr "" + +#: js/toolbar.js:56 +#: js/toolbar.js:117 +#: js/toolbar.js:182 +#: js/toolbar.js:238 +#: js/turtledefs.js:516 +msgid "Load project from file" +msgstr "" + +#: js/toolbar.js:57 +#: js/toolbar.js:118 +#: js/toolbar.js:119 +#: js/toolbar.js:183 +#: js/toolbar.js:239 +#: js/turtledefs.js:541 +#: js/turtledefs.js:550 +#: js/turtledefs.js:571 +msgid "Save project" +msgstr "" + +#: js/toolbar.js:58 +#: js/toolbar.js:77 +#: js/toolbar.js:79 +#: js/toolbar.js:138 +#: js/toolbar.js:147 +#: js/toolbar.js:149 +#: js/toolbar.js:184 +#: js/toolbar.js:202 +#: js/toolbar.js:204 #: js/toolbar.js:240 +#: js/toolbar.js:258 +#: js/toolbar.js:260 +msgid "Save project as HTML" +msgstr "" + +#: js/toolbar.js:59 +#: js/toolbar.js:120 +#: js/toolbar.js:185 +#: js/toolbar.js:241 +msgid "Find and share projects" +msgstr "" + +#: js/toolbar.js:60 +#: js/toolbar.js:121 +#: js/toolbar.js:186 +#: js/toolbar.js:242 +msgid "Offline. Sharing is unavailable" +msgstr "" + +#: js/toolbar.js:61 +#: js/toolbar.js:122 +#: js/toolbar.js:187 +#: js/toolbar.js:243 +msgid "Auxiliary menu" +msgstr "" + +#: js/toolbar.js:62 +#: js/toolbar.js:123 +#: js/toolbar.js:188 +#: js/toolbar.js:244 #: js/turtledefs.js:752 +#: js/piemenus.js:3423 msgid "Help" msgstr "Hjælp" -#: js/piemenus.js:3762 -msgid "You have chosen key " +#: js/toolbar.js:63 +#: js/toolbar.js:124 +#: js/toolbar.js:189 +#: js/toolbar.js:245 +msgid "Run slowly" +msgstr "" + +#: js/toolbar.js:64 +#: js/toolbar.js:125 +#: js/toolbar.js:190 +#: js/toolbar.js:246 +#: js/turtledefs.js:682 +msgid "Run step by step" +msgstr "" + +#: js/toolbar.js:65 +#: js/toolbar.js:126 +#: js/toolbar.js:191 +#: js/toolbar.js:247 +#: js/turtledefs.js:689 +msgid "Display statistics" +msgstr "" + +#: js/toolbar.js:66 +#: js/toolbar.js:127 +#: js/toolbar.js:192 +#: js/toolbar.js:248 +msgid "Load plugin" +msgstr "" + +#: js/toolbar.js:67 +#: js/toolbar.js:128 +#: js/toolbar.js:193 +#: js/toolbar.js:249 +#: js/turtledefs.js:696 +msgid "Delete plugin" +msgstr "" + +#: js/toolbar.js:68 +#: js/toolbar.js:129 +#: js/toolbar.js:194 +#: js/toolbar.js:250 +msgid "Enable horizontal scrolling" +msgstr "" + +#: js/toolbar.js:69 +#: js/toolbar.js:130 +#: js/toolbar.js:195 +#: js/toolbar.js:251 +msgid "Disable horizontal scrolling" +msgstr "" + +#: js/toolbar.js:70 +#: js/toolbar.js:131 +#: js/toolbar.js:196 +#: js/toolbar.js:252 +#: planet/js/LocalCard.js:54 +#: planet/js/StringHelper.js:71 +msgid "Merge with current project" +msgstr "" + +#: js/toolbar.js:71 +#: js/toolbar.js:132 +msgid "Set Pitch Preview" +msgstr "" + +#: js/toolbar.js:72 +#: js/toolbar.js:133 +#: js/toolbar.js:197 +#: js/toolbar.js:253 +msgid "JavaScript Editor" +msgstr "" + +#: js/toolbar.js:73 +#: js/toolbar.js:134 +#: js/toolbar.js:198 +#: js/toolbar.js:254 +#: js/turtledefs.js:724 +msgid "Restore" +msgstr "" + +#: js/toolbar.js:74 +#: js/toolbar.js:135 +#: js/toolbar.js:199 +#: js/toolbar.js:255 +msgid "Switch to beginner mode" +msgstr "" + +#: js/toolbar.js:75 +#: js/toolbar.js:136 +#: js/toolbar.js:200 +#: js/toolbar.js:256 +msgid "Switch to advanced mode" +msgstr "" + +#: js/toolbar.js:76 +#: js/toolbar.js:137 +#: js/toolbar.js:146 +#: js/toolbar.js:201 +#: js/toolbar.js:257 +#: js/turtledefs.js:738 +msgid "Select language" +msgstr "" + +#: js/toolbar.js:78 +#: js/toolbar.js:81 +#: js/toolbar.js:140 +#: js/turtledefs.js:579 +msgid "Save mouse artwork as PNG" +msgstr "" + +#: js/toolbar.js:80 +#: js/toolbar.js:139 +#: js/turtledefs.js:575 +msgid "Save mouse artwork as SVG" +msgstr "" + +#: js/toolbar.js:82 +#: js/toolbar.js:141 +#: js/turtledefs.js:583 +msgid "Save music as WAV" +msgstr "" + +#: js/toolbar.js:83 +#: js/toolbar.js:142 +#: js/turtledefs.js:587 +msgid "Save sheet music as ABC" +msgstr "" + +#: js/toolbar.js:84 +#: js/toolbar.js:143 +#: js/turtledefs.js:591 +msgid "Save sheet music as Lilypond" +msgstr "" + +#: js/toolbar.js:85 +msgid "Save sheet music as MusicXML" +msgstr "" + +#: js/toolbar.js:86 +#: js/toolbar.js:144 +#: js/toolbar.js:152 +#: js/toolbar.js:207 +#: js/toolbar.js:263 +#: js/turtledefs.js:562 +#: js/turtledefs.js:595 +msgid "Save block artwork as SVG" +msgstr "" + +#: js/toolbar.js:87 +#: js/toolbar.js:145 +#: js/toolbar.js:153 +#: js/toolbar.js:208 +#: js/toolbar.js:264 +#: js/turtles.js:911 +msgid "Confirm" +msgstr "" + +#: js/toolbar.js:88 +#: js/toolbar.js:154 +#: js/toolbar.js:209 +#: js/toolbar.js:265 +msgid "English (United States)" +msgstr "" + +#: js/toolbar.js:89 +#: js/toolbar.js:155 +#: js/toolbar.js:210 +#: js/toolbar.js:266 +msgid "English (United Kingdom)" +msgstr "" + +#: js/toolbar.js:90 +#: js/toolbar.js:156 +#: js/toolbar.js:211 +#: js/toolbar.js:267 +msgid "日本語" +msgstr "" + +#: js/toolbar.js:91 +msgid "한국어" +msgstr "" + +#: js/toolbar.js:92 +#: js/toolbar.js:158 +#: js/toolbar.js:213 +#: js/toolbar.js:269 +msgid "español" +msgstr "" + +#: js/toolbar.js:93 +#: js/toolbar.js:159 +#: js/toolbar.js:214 +#: js/toolbar.js:270 +msgid "português" +msgstr "" + +#: js/toolbar.js:94 +#: js/toolbar.js:160 +#: js/toolbar.js:215 +#: js/toolbar.js:271 +msgid "にほんご" +msgstr "" + +#: js/toolbar.js:95 +#: js/toolbar.js:161 +#: js/toolbar.js:216 +#: js/toolbar.js:272 +msgid "中文" +msgstr "" + +#: js/toolbar.js:96 +#: js/toolbar.js:162 +#: js/toolbar.js:217 +#: js/toolbar.js:273 +msgid "ภาษาไทย" +msgstr "" + +#: js/toolbar.js:97 +#: js/toolbar.js:163 +#: js/toolbar.js:218 +#: js/toolbar.js:274 +msgid "aymara" +msgstr "" + +#: js/toolbar.js:98 +#: js/toolbar.js:164 +#: js/toolbar.js:219 +#: js/toolbar.js:275 +msgid "quechua" +msgstr "" + +#: js/toolbar.js:99 +#: js/toolbar.js:165 +#: js/toolbar.js:220 +#: js/toolbar.js:276 +msgid "guarani" +msgstr "" + +#: js/toolbar.js:100 +#: js/toolbar.js:166 +#: js/toolbar.js:221 +#: js/toolbar.js:277 +msgid "हिंदी" +msgstr "" + +#: js/toolbar.js:101 +#: js/toolbar.js:168 +#: js/toolbar.js:222 +#: js/toolbar.js:279 +msgid "igbo" +msgstr "" + +#: js/toolbar.js:102 +#: js/toolbar.js:169 +#: js/toolbar.js:223 +#: js/toolbar.js:280 +msgid "عربى" +msgstr "" + +#: js/toolbar.js:103 +#: js/toolbar.js:167 +#: js/toolbar.js:224 +#: js/toolbar.js:278 +msgid "తెలుగు" +msgstr "" + +#: js/toolbar.js:104 +#: js/toolbar.js:170 +#: js/toolbar.js:225 +#: js/toolbar.js:281 +msgid "עִברִית" +msgstr "" + +#: js/toolbar.js:113 +#: js/toolbar.js:114 +#: js/toolbar.js:178 +#: js/toolbar.js:179 +#: js/toolbar.js:234 +#: js/toolbar.js:235 +msgid "Full Screen" +msgstr "" + +#: js/toolbar.js:148 +#: js/toolbar.js:151 +#: js/toolbar.js:203 +#: js/toolbar.js:206 +#: js/toolbar.js:259 +#: js/toolbar.js:262 +#: js/turtledefs.js:558 +msgid "Save turtle artwork as PNG" +msgstr "" + +#: js/toolbar.js:150 +#: js/toolbar.js:205 +#: js/toolbar.js:261 +#: js/turtledefs.js:554 +msgid "Save turtle artwork as SVG" +msgstr "" + +#: js/toolbar.js:157 +#: js/toolbar.js:212 +#: js/toolbar.js:268 +msgid "한국인" +msgstr "" + +#: js/toolbar.js:174 +#: js/toolbar.js:230 +msgid "About Turtle Blocks" +msgstr "" + +#: js/toolbar.js:446 +#: js/toolbar.js:457 +#: js/toolbar.js:497 +msgid "Turtle Wrap Off" +msgstr "" + +#: js/toolbar.js:466 +#: js/toolbar.js:506 +msgid "Turtle Wrap On" +msgstr "" + +#: js/turtle-painter.js:1192 +#: js/turtle-painter.js:1193 +#: js/turtles.js:118 +#: js/block-verbose.js:1623 +#: js/block.js:1587 +#: js/lilypond.js:749 +#: js/lilypond.js:913 +#: js/lilypond.js:951 +#: js/logo.js:1184 +#: js/blocks/ActionBlocks.js:1223 +#: js/blocks/ProgramBlocks.js:1267 +msgid "start" +msgstr "start" + +#: js/turtledefs.js:40 +#.TRANS: put the URL to the guide here, e.g., https://github.com/sugarlabs/turtleblocksjs/tree/master/guide/README.md +msgid "guide url" +msgstr "" + +#: js/turtledefs.js:85 +#: js/turtledefs.js:437 +msgid "Turtle Blocks is a Logo-inspired turtle that draws colorful pictures with snap-together visual-programming blocks." +msgstr "" + +#: js/turtledefs.js:118 +#: js/turtledefs.js:220 +msgid "search" +msgstr "" + +#: js/turtledefs.js:120 +#: js/turtledefs.js:222 +#: js/blocks/MeterBlocks.js:1343 +#: js/blocks/WidgetBlocks.js:522 +#.TRANS: musical meter (time signature), e.g., 4:4 +msgid "meter" +msgstr "" + +#: js/turtledefs.js:122 +#: js/turtledefs.js:224 +msgid "intervals" +msgstr "" + +#: js/turtledefs.js:124 +#: js/turtledefs.js:226 +msgid "ornament" +msgstr "" + +#: js/turtledefs.js:125 +#: js/turtledefs.js:227 +#: js/blocks/VolumeBlocks.js:362 +#: js/blocks/VolumeBlocks.js:502 +#: js/blocks/VolumeBlocks.js:545 +msgid "volume" +msgstr "" + +#: js/turtledefs.js:126 +#: js/turtledefs.js:228 +#: js/block-verbose.js:1700 +#: js/block-verbose.js:2626 +#: js/block.js:1664 +#: js/block.js:2554 +#: js/lilypond.js:732 +#: js/lilypond.js:897 +#: js/lilypond.js:941 +#: js/palette.js:577 +#: js/blocks/RhythmBlocks.js:766 +#: js/blocks/DrumBlocks.js:477 +#: js/blocks/VolumeBlocks.js:502 +#: js/widgets/phrasemaker.js:1038 +msgid "drum" +msgstr "" + +#: js/turtledefs.js:129 +#: js/turtledefs.js:231 +msgid "boxes" +msgstr "" + +#: js/turtledefs.js:130 +#: js/turtledefs.js:232 +msgid "widgets" +msgstr "" + +#: js/turtledefs.js:131 +#: js/turtledefs.js:233 +#: js/widgets/phrasemaker.js:1039 +msgid "graphics" +msgstr "" + +#: js/turtledefs.js:134 +#: js/turtledefs.js:236 +msgid "boolean" +msgstr "" + +#: js/turtledefs.js:137 +#: js/turtledefs.js:239 +#: js/blocks/HeapBlocks.js:59 +#: js/widgets/status.js:147 +msgid "heap" +msgstr "" + +#: js/turtledefs.js:138 +#: js/turtledefs.js:240 +#: js/blocks/DictBlocks.js:142 +#: js/blocks/ProgramBlocks.js:495 +msgid "dictionary" +msgstr "" + +#: js/turtledefs.js:139 +#: js/turtledefs.js:241 +msgid "ensemble" +msgstr "" + +#: js/turtledefs.js:140 +#: js/turtledefs.js:242 +msgid "extras" +msgstr "ekstramateriale" + +#: js/turtledefs.js:142 +#: js/turtledefs.js:244 +#.TRANS: program as in computer program +#.TRANS: program as in computer program +msgid "program" msgstr "" -#: js/piemenus.js:3766 -msgid " for your pitch preview." +#: js/turtledefs.js:143 +#: js/turtledefs.js:245 +msgid "my blocks" msgstr "" -#: js/palette.js:571 -msgid "grid" +#: js/turtledefs.js:185 +#: js/turtledefs.js:281 +msgid "artwork" msgstr "" -#: js/palette.js:577 -#: js/block.js:1540 -#: js/block.js:2343 -#: js/turtledefs.js:126 -#: js/turtledefs.js:228 -#: js/lilypond.js:740 -#: js/lilypond.js:905 -#: js/lilypond.js:949 -#: js/DrumBlocks.js:486 -#: js/RhythmBlocks.js:766 -#: js/VolumeBlocks.js:502 -#: js/phrasemaker.js:823 -msgid "drum" +#: js/turtledefs.js:185 +#: js/turtledefs.js:281 +msgid "logic" msgstr "" -#: js/palette.js:580 -msgid "effect" +#: js/turtledefs.js:185 +#: js/turtledefs.js:281 +msgid "music" msgstr "" -#: js/palette.js:586 -msgid "sargam" +#: js/turtledefs.js:187 +#: js/turtledefs.js:463 +msgid "Music Blocks is a collection of tools for exploring fundamental musical concepts in a fun way." msgstr "" -#: js/palette.js:589 -#: js/activity.js:1833 -#: js/RhythmBlocks.js:923 -#: js/PitchBlocks.js:442 -#: js/PitchBlocks.js:1748 -#.TRANS: a numeric mapping of the notes in an octave based on the musical mode -msgid "scale degree" +#: js/turtledefs.js:436 +msgid "Welcome to Turtle Blocks" msgstr "" -#: js/palette.js:592 -#: js/activity.js:1860 -msgid "mode name" +#: js/turtledefs.js:438 +#: js/turtledefs.js:465 +#: js/turtledefs.js:774 +#: js/turtledefs.js:805 +msgid "The current version is" msgstr "" -#: js/palette.js:595 -#: js/activity.js:1839 -msgid "invert mode" +#: js/turtledefs.js:446 +#: js/turtledefs.js:483 +msgid "Click the run button to run the project in fast mode." msgstr "" -#: js/palette.js:598 -#: js/activity.js:1836 -msgid "voice name" +#: js/turtledefs.js:452 +msgid "Stop the turtle." msgstr "" -#: js/palette.js:601 -#: js/PitchBlocks.js:1181 -msgid "custom pitch" +#: js/turtledefs.js:454 +#: js/turtledefs.js:491 +msgid "You can also type Alt-S to stop." msgstr "" -#: js/palette.js:605 -#: js/block.js:1456 -#: js/block.js:1575 -#: js/WidgetBlocks.js:218 -#: js/IntervalsBlocks.js:63 -msgid "temperament" +#: js/turtledefs.js:462 +#: js/widgets/help.js:333 +msgid "Welcome to Music Blocks" msgstr "" -#: js/palette.js:609 -msgid "accidental" +#: js/turtledefs.js:472 +#: js/widgets/help.js:334 +msgid "Meet Mr. Mouse!" msgstr "" -#: js/palette.js:615 -#: js/activity.js:1866 -msgid "interval name" +#: js/turtledefs.js:473 +msgid "Mr Mouse is our Music Blocks conductor." msgstr "" -#: js/palette.js:633 -#: js/PitchBlocks.js:405 -msgid "pitch converter" +#: js/turtledefs.js:475 +msgid "Mr Mouse encourages you to explore Music Blocks." msgstr "" -#: js/rubrics.js:522 -#: js/turtledefs.js:119 -#: js/turtledefs.js:221 -#: js/RhythmBlockPaletteBlocks.js:52 -#: js/RhythmBlockPaletteBlocks.js:233 -#: js/ProgramBlocks.js:745 -#: js/rhythmruler.js:1670 -#: js/rhythmruler.js:1677 -#: js/rhythmruler.js:1745 -#: js/rhythmruler.js:1752 -#: js/rhythmruler.js:1830 -#.TRANS: an arrangement of notes based on duration -msgid "rhythm" +#: js/turtledefs.js:477 +msgid "Let us start our tour!" msgstr "" -#: js/rubrics.js:523 -#: js/block.js:2339 -#: js/turtledefs.js:121 -#: js/turtledefs.js:223 -#: js/IntervalsBlocks.js:63 -#: js/PitchBlocks.js:1801 -#: js/PitchBlocks.js:1814 -#: js/SensorsBlocks.js:178 -#: js/phrasemaker.js:821 -#: js/musickeyboard.js:1653 -#.TRANS: pitch number -#.TRANS: we specify pitch in terms of a name and an octave. The name can be CDEFGAB or Do Re Mi Fa Sol La Ti. Octave is a number between 1 and 8. -msgid "pitch" +#: js/turtledefs.js:489 +msgid "Stop the music (and the mice)." msgstr "" -#: js/rubrics.js:524 -#: js/turtledefs.js:123 -#: js/turtledefs.js:225 -msgid "tone" +#: js/turtledefs.js:499 +msgid "Record your project as video." msgstr "" -#: js/rubrics.js:525 -#: js/lilypond.js:613 -#: js/lilypond.js:912 -#: js/lilypond.js:918 -#: js/lilypond.js:956 -msgid "mouse" +#: js/turtledefs.js:505 +msgid "Toggle Fullscreen mode." msgstr "" -#: js/rubrics.js:526 -#: js/turtledefs.js:132 -#: js/turtledefs.js:234 -#: js/phrasemaker.js:825 -msgid "pen" -msgstr "pen" +#: js/turtledefs.js:511 +msgid "Initialize a new project." +msgstr "" -#: js/rubrics.js:527 -#: js/turtledefs.js:133 -#: js/turtledefs.js:235 -#: js/NumberBlocks.js:905 -#: js/PitchBlocks.js:1679 -#: js/PitchBlocks.js:1720 -msgid "number" -msgstr "tal" +#: js/turtledefs.js:517 +msgid "You can also load projects from the file system." +msgstr "" -#: js/rubrics.js:528 -#: js/turtledefs.js:127 -#: js/turtledefs.js:229 -msgid "flow" -msgstr "flyd" +#: js/turtledefs.js:522 +#: planet/js/StringHelper.js:46 +msgid "Delete" +msgstr "" -#: js/rubrics.js:530 -#: js/turtledefs.js:136 -#: js/turtledefs.js:238 -msgid "sensors" +#: js/turtledefs.js:523 +msgid "To delete a block, just right-click on it, then you will be able to see the delete option" msgstr "" -#: js/rubrics.js:531 -#: js/turtledefs.js:135 -#: js/turtledefs.js:237 -#: js/MediaBlocks.js:930 -msgid "media" -msgstr "medie" +#: js/turtledefs.js:528 +#: js/activity.js:2649 +#: planet/js/LocalCard.js:31 +msgid "Copy" +msgstr "Kopiér" -#: js/rubrics.js:532 -msgid "mice" +#: js/turtledefs.js:529 +msgid "To copy a block, just right-click on it, then you will be able to see the copy option" msgstr "" -#: js/macros.js:711 -#: js/musicutils.js:783 -#: js/synthutils.js:181 -#.TRANS: animal sound effect -msgid "duck" +#: js/turtledefs.js:534 +#: js/piemenus.js:3411 +msgid "Extract" msgstr "" -#: js/toolbar.js:46 -#: js/toolbar.js:107 -msgid "About Music Blocks" +#: js/turtledefs.js:535 +msgid "To extract a block, just right-click on it, then you will be able to see the extract option" msgstr "" -#: js/toolbar.js:47 -#: js/toolbar.js:108 -#: js/toolbar.js:172 -#: js/toolbar.js:228 -#: js/turtledefs.js:445 -#: js/turtledefs.js:482 -#: js/activity.js:2281 -#: js/activity.js:2289 -#: js/activity.js:2520 -#: js/modewidget.js:77 -#: js/pitchstaircase.js:121 -#: js/phrasemaker.js:302 -#: js/phrasemaker.js:312 -#: js/phrasemaker.js:314 -#: js/phrasemaker.js:3901 -#: js/phrasemaker.js:4061 -#: js/phrasemaker.js:4066 -#: js/phrasemaker.js:4068 -#: js/phrasemaker.js:4183 -#: js/pitchdrummatrix.js:81 -#: js/pitchdrummatrix.js:574 -#: js/pitchdrummatrix.js:576 -#: js/pitchdrummatrix.js:628 -#: js/pitchdrummatrix.js:630 -#: js/pitchdrummatrix.js:645 -#: js/pitchdrummatrix.js:647 -#: js/pitchdrummatrix.js:674 -#: js/pitchdrummatrix.js:676 -#: js/temperament.js:477 -#: js/temperament.js:480 -#: js/temperament.js:540 -#: js/temperament.js:542 -#: js/temperament.js:1835 -#: js/temperament.js:1837 -#: js/temperament.js:1986 -#: js/temperament.js:1988 -#: js/musickeyboard.js:522 -#: js/musickeyboard.js:682 -#: js/musickeyboard.js:684 -#: js/musickeyboard.js:756 -#: js/musickeyboard.js:758 -#: js/rhythmruler.js:298 -#: js/rhythmruler.js:300 -#: js/rhythmruler.js:314 -#: js/rhythmruler.js:316 -#: js/sampler.js:96 -#: js/sampler.js:98 -#: js/sampler.js:229 -#: js/sampler.js:235 -#: js/sampler.js:237 -#: js/tempo.js:84 -#: js/tempo.js:86 -#: js/timbre.js:432 -#: js/timbre.js:434 -#: js/timbre.js:465 -#: js/timbre.js:467 -#: js/timbre.js:746 -#: js/meterwidget.js:80 -#: js/arpeggio.js:90 -#: js/arpeggio.js:547 -#: js/arpeggio.js:549 -#: js/arpeggio.js:644 -#: js/arpeggio.js:646 -msgid "Play" +#: js/turtledefs.js:542 +#: js/turtledefs.js:552 +#: js/turtledefs.js:573 +msgid "Save your project to a file." msgstr "" -#: js/toolbar.js:48 -#: js/toolbar.js:109 -#: js/toolbar.js:173 -#: js/toolbar.js:229 -#: js/turtledefs.js:451 -#: js/turtledefs.js:488 -#: js/activity.js:2297 -#: js/modewidget.js:99 -#: js/modewidget.js:101 -#: js/phrasemaker.js:323 -#: js/phrasemaker.js:325 -#: js/pitchdrummatrix.js:561 -#: js/pitchdrummatrix.js:563 -#: js/temperament.js:1820 -#: js/temperament.js:1822 -#: js/meterwidget.js:101 -#: js/meterwidget.js:103 -#: js/arpeggio.js:534 -#: js/arpeggio.js:536 -msgid "Stop" -msgstr "Stop" +#: js/turtledefs.js:549 +#: js/turtledefs.js:570 +msgid "save" +msgstr "" -#: js/toolbar.js:49 -#: js/toolbar.js:110 -#: js/toolbar.js:174 -#: js/toolbar.js:230 -#: js/turtledefs.js:498 -msgid "Record" +#: js/turtledefs.js:556 +#: js/turtledefs.js:577 +msgid "Save graphics from your project to as SVG." msgstr "" -#: js/toolbar.js:50 -#: js/toolbar.js:51 -msgid "Full screen" +#: js/turtledefs.js:560 +#: js/turtledefs.js:581 +msgid "Save graphics from your project as PNG." msgstr "" -#: js/toolbar.js:52 -#: js/toolbar.js:112 -#: js/toolbar.js:177 -#: js/toolbar.js:232 -#: js/turtledefs.js:504 -msgid "Toggle Fullscreen" +#: js/turtledefs.js:564 +#: js/turtledefs.js:597 +msgid "Save block artwork as an SVG file." msgstr "" -#: js/toolbar.js:53 -#: js/toolbar.js:113 -#: js/toolbar.js:178 -#: js/toolbar.js:233 -#: js/turtledefs.js:510 -#: js/StringHelper.js:33 -msgid "New project" +#: js/turtledefs.js:585 +msgid "Save audio from your project as WAV." msgstr "" -#: js/toolbar.js:54 -#: js/toolbar.js:114 -#: js/toolbar.js:179 -#: js/toolbar.js:234 -#: js/turtledefs.js:516 -msgid "Load project from file" +#: js/turtledefs.js:589 +msgid "Save your project to as an ABC file." msgstr "" -#: js/toolbar.js:55 -#: js/toolbar.js:115 -#: js/toolbar.js:116 -#: js/toolbar.js:180 -#: js/toolbar.js:235 -#: js/turtledefs.js:541 -#: js/turtledefs.js:550 -#: js/turtledefs.js:571 -msgid "Save project" +#: js/turtledefs.js:593 +msgid "Save your project to as a Lilypond file." msgstr "" -#: js/toolbar.js:56 -#: js/toolbar.js:75 -#: js/toolbar.js:77 -#: js/toolbar.js:135 -#: js/toolbar.js:144 -#: js/toolbar.js:146 -#: js/toolbar.js:181 -#: js/toolbar.js:199 -#: js/toolbar.js:201 -#: js/toolbar.js:236 -#: js/toolbar.js:254 -#: js/toolbar.js:256 -msgid "Save project as HTML" +#: js/turtledefs.js:604 +msgid "Load samples from server" +msgstr "" + +#: js/turtledefs.js:605 +msgid "This button opens a viewer for loading example projects." +msgstr "" + +#: js/turtledefs.js:611 +msgid "Palette buttons" +msgstr "" + +#: js/turtledefs.js:612 +msgid "This toolbar contains the palette buttons including Rhythm Pitch Tone Action and more." +msgstr "" + +#: js/turtledefs.js:614 +msgid "Click to show the palettes of blocks and drag blocks from the palettes onto the canvas to use them." +msgstr "" + +#: js/turtledefs.js:620 +msgid "Cartesian/Polar" msgstr "" -#: js/toolbar.js:57 -#: js/toolbar.js:117 -#: js/toolbar.js:182 -#: js/toolbar.js:237 -msgid "Find and share projects" +#: js/turtledefs.js:621 +msgid "Show or hide a coordinate grid." msgstr "" -#: js/toolbar.js:58 -#: js/toolbar.js:118 -#: js/toolbar.js:183 -#: js/toolbar.js:238 -msgid "Offline. Sharing is unavailable" +#: js/turtledefs.js:626 +#: js/turtles.js:902 +msgid "Clean" +msgstr "Rens" + +#: js/turtledefs.js:627 +msgid "Clear the screen and return the mice to their initial positions." msgstr "" -#: js/toolbar.js:59 -#: js/toolbar.js:119 -#: js/toolbar.js:184 -#: js/toolbar.js:239 -msgid "Auxiliary menu" +#: js/turtledefs.js:632 +#: js/turtles.js:955 +msgid "Collapse" msgstr "" -#: js/toolbar.js:61 -#: js/toolbar.js:121 -#: js/toolbar.js:186 -#: js/toolbar.js:241 -msgid "Run slowly" +#: js/turtledefs.js:633 +msgid "Collapse the graphics window." msgstr "" -#: js/toolbar.js:62 -#: js/toolbar.js:122 -#: js/toolbar.js:187 -#: js/toolbar.js:242 -#: js/turtledefs.js:682 -msgid "Run step by step" +#: js/turtledefs.js:638 +#: js/activity.js:5684 +msgid "Home" msgstr "" -#: js/toolbar.js:63 -#: js/toolbar.js:123 -#: js/toolbar.js:188 -#: js/toolbar.js:243 -#: js/turtledefs.js:689 -msgid "Display statistics" +#: js/turtledefs.js:639 +msgid "Return all blocks to the center of the screen." msgstr "" -#: js/toolbar.js:64 -#: js/toolbar.js:124 -#: js/toolbar.js:189 -#: js/toolbar.js:244 -msgid "Load plugin" +#: js/turtledefs.js:644 +msgid "Show/hide blocks" +msgstr "Vis/skjul blokke" + +#: js/turtledefs.js:645 +msgid "Hide or show the blocks and the palettes." msgstr "" -#: js/toolbar.js:65 -#: js/toolbar.js:125 -#: js/toolbar.js:190 -#: js/toolbar.js:245 -#: js/turtledefs.js:696 -msgid "Delete plugin" +#: js/turtledefs.js:650 +msgid "Expand/collapse collapsable blocks" msgstr "" -#: js/toolbar.js:66 -#: js/toolbar.js:126 -#: js/toolbar.js:191 -#: js/toolbar.js:246 -msgid "Enable horizontal scrolling" +#: js/turtledefs.js:651 +msgid "Expand or collapse start and action stacks." msgstr "" -#: js/toolbar.js:67 -#: js/toolbar.js:127 -#: js/toolbar.js:192 -#: js/toolbar.js:247 -msgid "Disable horizontal scrolling" +#: js/turtledefs.js:658 +#: js/activity.js:5704 +msgid "Decrease block size" msgstr "" -#: js/toolbar.js:68 -#: js/toolbar.js:128 -#: js/toolbar.js:193 -#: js/toolbar.js:248 -#: js/LocalCard.js:54 -#: js/StringHelper.js:71 -msgid "Merge with current project" +#: js/turtledefs.js:659 +msgid "Decrease the size of the blocks." msgstr "" -#: js/toolbar.js:69 -#: js/toolbar.js:129 -msgid "Set Pitch Preview" +#: js/turtledefs.js:664 +#: js/activity.js:5710 +msgid "Increase block size" msgstr "" -#: js/toolbar.js:70 -#: js/toolbar.js:130 -#: js/toolbar.js:194 -#: js/toolbar.js:249 -msgid "Toggle JavaScript Editor" +#: js/turtledefs.js:665 +msgid "Increase the size of the blocks." msgstr "" -#: js/toolbar.js:71 -#: js/toolbar.js:131 -#: js/toolbar.js:195 -#: js/toolbar.js:250 -#: js/turtledefs.js:724 -msgid "Restore" +#: js/turtledefs.js:670 +msgid "Expand/collapse option toolbar" msgstr "" -#: js/toolbar.js:72 -#: js/toolbar.js:132 -#: js/toolbar.js:196 -#: js/toolbar.js:251 -msgid "Switch to beginner mode" +#: js/turtledefs.js:671 +msgid "Click this button to expand or collapse the auxillary toolbar." msgstr "" -#: js/toolbar.js:73 -#: js/toolbar.js:133 -#: js/toolbar.js:197 -#: js/toolbar.js:252 -msgid "Switch to advanced mode" +#: js/turtledefs.js:676 +msgid "Run slow" msgstr "" -#: js/toolbar.js:74 -#: js/toolbar.js:134 -#: js/toolbar.js:143 -#: js/toolbar.js:198 -#: js/toolbar.js:253 -#: js/turtledefs.js:738 -msgid "Select language" +#: js/turtledefs.js:677 +msgid "Click to run the project in slow mode." msgstr "" -#: js/toolbar.js:76 -#: js/toolbar.js:79 -#: js/toolbar.js:137 -#: js/turtledefs.js:579 -msgid "Save mouse artwork as PNG" +#: js/turtledefs.js:683 +msgid "Click to run the project step by step." msgstr "" -#: js/toolbar.js:78 -#: js/toolbar.js:136 -#: js/turtledefs.js:575 -msgid "Save mouse artwork as SVG" +#: js/turtledefs.js:690 +msgid "Display statistics about your Music project." msgstr "" -#: js/toolbar.js:80 -#: js/toolbar.js:138 -#: js/turtledefs.js:583 -msgid "Save music as WAV" +#: js/turtledefs.js:697 +msgid "Delete a selected plugin." msgstr "" -#: js/toolbar.js:81 -#: js/toolbar.js:139 -#: js/turtledefs.js:587 -msgid "Save sheet music as ABC" +#: js/turtledefs.js:704 +msgid "Enable scrolling" msgstr "" -#: js/toolbar.js:82 -#: js/toolbar.js:140 -#: js/turtledefs.js:591 -msgid "Save sheet music as Lilypond" +#: js/turtledefs.js:705 +msgid "You can scroll the blocks on the canvas." msgstr "" -#: js/toolbar.js:83 -msgid "Save sheet music as MusicXML" +#: js/turtledefs.js:714 +msgid "Wrap Turtle" msgstr "" -#: js/toolbar.js:84 -#: js/toolbar.js:141 -#: js/toolbar.js:149 -#: js/toolbar.js:204 -#: js/toolbar.js:259 -#: js/turtledefs.js:562 -#: js/turtledefs.js:595 -msgid "Save block artwork as SVG" +#: js/turtledefs.js:715 +msgid "Turn Turtle wrapping On or Off." msgstr "" -#: js/toolbar.js:85 -#: js/toolbar.js:142 -#: js/toolbar.js:150 -#: js/toolbar.js:205 -#: js/toolbar.js:260 -msgid "Confirm" +#: js/turtledefs.js:725 +msgid "Restore blocks from the trash." msgstr "" -#: js/toolbar.js:86 -#: js/toolbar.js:151 -#: js/toolbar.js:206 -#: js/toolbar.js:261 -msgid "English (United States)" +#: js/turtledefs.js:732 +msgid "Switch mode" msgstr "" -#: js/toolbar.js:87 -#: js/toolbar.js:152 -#: js/toolbar.js:207 -#: js/toolbar.js:262 -msgid "English (United Kingdom)" +#: js/turtledefs.js:733 +msgid "Switch between beginner and advance modes." msgstr "" -#: js/toolbar.js:88 -#: js/toolbar.js:153 -#: js/toolbar.js:208 -#: js/toolbar.js:263 -msgid "日本語" +#: js/turtledefs.js:739 +msgid "Select your language preference." msgstr "" -#: js/toolbar.js:89 -msgid "한국어" +#: js/turtledefs.js:745 +msgid "Keyboard shortcuts" msgstr "" -#: js/toolbar.js:90 -#: js/toolbar.js:155 -#: js/toolbar.js:210 -#: js/toolbar.js:265 -msgid "español" +#: js/turtledefs.js:746 +msgid "You can type d to create a do block and r to create a re block etc." msgstr "" -#: js/toolbar.js:91 -#: js/toolbar.js:156 -#: js/toolbar.js:211 -#: js/toolbar.js:266 -msgid "português" +#: js/turtledefs.js:753 +msgid "Show these messages." msgstr "" -#: js/toolbar.js:92 -#: js/toolbar.js:157 -#: js/toolbar.js:212 -#: js/toolbar.js:267 -msgid "にほんご" +#: js/turtledefs.js:759 +#: js/turtledefs.js:790 +#: js/widgets/help.js:335 +msgid "Guide" msgstr "" -#: js/toolbar.js:93 -#: js/toolbar.js:158 -#: js/toolbar.js:213 -#: js/toolbar.js:268 -msgid "中文" +#: js/turtledefs.js:760 +msgid "A detailed guide to Turtle Blocks is available." msgstr "" -#: js/toolbar.js:94 -#: js/toolbar.js:159 -#: js/toolbar.js:214 -#: js/toolbar.js:269 -msgid "ภาษาไทย" +#: js/turtledefs.js:764 +msgid "Turtle Blocks Guide" msgstr "" -#: js/toolbar.js:95 -#: js/toolbar.js:160 -#: js/toolbar.js:215 -#: js/toolbar.js:270 -msgid "aymara" +#: js/turtledefs.js:767 +#: js/turtledefs.js:798 +#: js/widgets/help.js:336 +msgid "About" +msgstr "" + +#: js/turtledefs.js:768 +msgid "Turtle Blocks is an open source collection of tools for exploring musical concepts." msgstr "" -#: js/toolbar.js:96 -#: js/toolbar.js:161 -#: js/toolbar.js:216 -#: js/toolbar.js:271 -msgid "quechua" +#: js/turtledefs.js:770 +msgid "A full list of contributors can be found in the Turtle Blocks GitHub repository." msgstr "" -#: js/toolbar.js:97 -#: js/toolbar.js:162 -#: js/toolbar.js:217 -#: js/toolbar.js:272 -msgid "guarani" +#: js/turtledefs.js:772 +msgid "Turtle Blocks is licensed under the AGPL." msgstr "" -#: js/toolbar.js:98 -#: js/toolbar.js:163 -#: js/toolbar.js:218 -#: js/toolbar.js:273 -msgid "हिंदी" +#: js/turtledefs.js:780 +msgid "Turtle Blocks GitHub repository" msgstr "" -#: js/toolbar.js:99 -#: js/toolbar.js:165 -#: js/toolbar.js:219 -#: js/toolbar.js:275 -msgid "igbo" +#: js/turtledefs.js:783 +#: js/turtledefs.js:814 +#: js/widgets/help.js:337 +#: js/widgets/help.js:359 +msgid "Congratulations." msgstr "" -#: js/toolbar.js:100 -#: js/toolbar.js:166 -#: js/toolbar.js:220 -#: js/toolbar.js:276 -msgid "عربى" +#: js/turtledefs.js:784 +msgid "You have finished the tour. Please enjoy Turtle Blocks!" msgstr "" -#: js/toolbar.js:101 -#: js/toolbar.js:164 -#: js/toolbar.js:221 -#: js/toolbar.js:274 -msgid "తెలుగు" +#: js/turtledefs.js:791 +msgid "A detailed guide to Music Blocks is available." msgstr "" -#: js/toolbar.js:102 -#: js/toolbar.js:167 -#: js/toolbar.js:222 -#: js/toolbar.js:277 -msgid "עִברִית" +#: js/turtledefs.js:799 +msgid "Music Blocks is an open source collection of tools for exploring musical concepts." msgstr "" -#: js/toolbar.js:111 -#: js/toolbar.js:175 -#: js/toolbar.js:176 -#: js/toolbar.js:231 -msgid "Full Screen" +#: js/turtledefs.js:801 +msgid "A full list of contributors can be found in the Music Blocks GitHub repository." msgstr "" -#: js/toolbar.js:145 -#: js/toolbar.js:148 -#: js/toolbar.js:200 -#: js/toolbar.js:203 -#: js/toolbar.js:255 -#: js/toolbar.js:258 -#: js/turtledefs.js:558 -msgid "Save turtle artwork as PNG" +#: js/turtledefs.js:803 +msgid "Music Blocks is licensed under the AGPL." msgstr "" -#: js/toolbar.js:147 -#: js/toolbar.js:202 -#: js/toolbar.js:257 -#: js/turtledefs.js:554 -msgid "Save turtle artwork as SVG" +#: js/turtledefs.js:811 +msgid "Music Blocks GitHub repository" msgstr "" -#: js/toolbar.js:154 -#: js/toolbar.js:209 -#: js/toolbar.js:264 -msgid "한국인" +#: js/turtledefs.js:815 +msgid "You have finished the tour. Please enjoy Music Blocks!" msgstr "" -#: js/toolbar.js:171 -#: js/toolbar.js:227 -msgid "About Turtle Blocks" +#: js/turtles.js:882 +msgid "Grid" msgstr "" -#: js/toolbar.js:429 -#: js/toolbar.js:440 -msgid "Turtle Wrap Off" +#: js/turtles.js:1024 +msgid "Expand" msgstr "" -#: js/toolbar.js:442 -msgid "Turtle Wrap On" +#: js/block-verbose.js:1616 +#: js/block-verbose.js:1735 +#: js/block.js:1580 +#: js/block.js:1699 +#: js/palette.js:605 +#: js/blocks/IntervalsBlocks.js:63 +#: js/blocks/WidgetBlocks.js:259 +msgid "temperament" msgstr "" -#: js/block.js:1470 +#: js/block-verbose.js:1630 +#: js/block.js:1594 msgid "matrix" msgstr "" -#: js/block.js:1477 -#: js/WidgetBlocks.js:1226 +#: js/block-verbose.js:1637 +#: js/block.js:1601 +#: js/blocks/WidgetBlocks.js:1509 #: plugins/rodi.rtp:324 msgid "status" msgstr "" -#: js/block.js:1484 +#: js/block-verbose.js:1644 +#: js/block.js:1608 msgid "drum mapper" msgstr "" -#: js/block.js:1491 +#: js/block-verbose.js:1651 +#: js/block.js:1615 msgid "ruler" msgstr "" -#: js/block.js:1498 -#: js/WidgetBlocks.js:327 +#: js/block-verbose.js:1658 +#: js/block.js:1622 +#: js/blocks/WidgetBlocks.js:397 #.TRANS: timbre is the character or quality of a musical sound msgid "timbre" msgstr "" -#: js/block.js:1505 +#: js/block-verbose.js:1665 +#: js/block.js:1629 msgid "stair" msgstr "" -#: js/block.js:1512 -#: js/WidgetBlocks.js:577 +#: js/block-verbose.js:1672 +#: js/block.js:1636 +#: js/blocks/WidgetBlocks.js:707 #.TRANS: the speed at music is should be played. msgid "tempo" msgstr "" -#: js/block.js:1519 -#: js/block.js:1582 -#: js/IntervalsBlocks.js:1268 +#: js/block-verbose.js:1679 +#: js/block-verbose.js:1742 +#: js/block.js:1643 +#: js/block.js:1706 +#: js/blocks/IntervalsBlocks.js:1464 #.TRANS: mode, e.g., Major in C Major msgid "mode" msgstr "" -#: js/block.js:1526 +#: js/block-verbose.js:1686 +#: js/block.js:1650 msgid "slider" msgstr "" -#: js/block.js:1533 -#: js/SensorsBlocks.js:1001 +#: js/block-verbose.js:1693 +#: js/block.js:1657 +#: js/blocks/SensorsBlocks.js:1001 msgid "keyboard" msgstr "tastatur" -#: js/block.js:1547 -#: js/WidgetBlocks.js:957 -#: js/WidgetBlocks.js:988 +#: js/block-verbose.js:1707 +#: js/block.js:1671 +#: js/blocks/WidgetBlocks.js:1190 +#: js/blocks/WidgetBlocks.js:1228 #.TRANS: widget for subdividing a measure into distinct rhythmic elements msgid "rhythm maker" msgstr "" -#: js/block.js:1554 -#: js/block.js:2182 -#: js/block.js:2236 -#: js/RhythmBlockPaletteBlocks.js:70 -#: js/RhythmBlockPaletteBlocks.js:251 -#: js/RhythmBlockPaletteBlocks.js:484 -#: js/RhythmBlockPaletteBlocks.js:553 -#: js/RhythmBlockPaletteBlocks.js:604 -#: js/RhythmBlockPaletteBlocks.js:874 -#: js/RhythmBlocks.js:33 -#: js/RhythmBlocks.js:356 -#: js/RhythmBlocks.js:766 -#: js/RhythmBlocks.js:806 -#: js/OrnamentBlocks.js:220 -#: js/OrnamentBlocks.js:312 -#: js/MeterBlocks.js:1367 -#: js/DictActions.js:85 -#: js/phrasemaker.js:731 -#: js/phrasemaker.js:2393 -#: js/phrasemaker.js:2436 -#: js/phrasemaker.js:2534 +#: js/block-verbose.js:1714 +#: js/block-verbose.js:2457 +#: js/block-verbose.js:2514 +#: js/block.js:1678 +#: js/block.js:2385 +#: js/block.js:2442 +#: js/blocks/MeterBlocks.js:1367 +#: js/blocks/OrnamentBlocks.js:220 +#: js/blocks/OrnamentBlocks.js:312 +#: js/blocks/RhythmBlocks.js:33 +#: js/blocks/RhythmBlocks.js:356 +#: js/blocks/RhythmBlocks.js:766 +#: js/blocks/RhythmBlocks.js:806 +#: js/blocks/RhythmBlockPaletteBlocks.js:70 +#: js/blocks/RhythmBlockPaletteBlocks.js:252 +#: js/blocks/RhythmBlockPaletteBlocks.js:485 +#: js/blocks/RhythmBlockPaletteBlocks.js:554 +#: js/blocks/RhythmBlockPaletteBlocks.js:605 +#: js/blocks/RhythmBlockPaletteBlocks.js:875 +#: js/turtleactions/DictActions.js:85 +#: js/widgets/phrasemaker.js:942 +#: js/widgets/phrasemaker.js:2656 +#: js/widgets/phrasemaker.js:2699 +#: js/widgets/phrasemaker.js:2810 #.TRANS: the value (e.g., 1/4 note) of the note being played. msgid "note value" msgstr "" -#: js/block.js:1561 -#: js/block.js:2110 -#: js/block.js:2133 -#: js/IntervalsBlocks.js:875 -#: js/OrnamentBlocks.js:312 +#: js/block-verbose.js:1721 +#: js/block-verbose.js:2382 +#: js/block-verbose.js:2405 +#: js/block.js:1685 +#: js/block.js:2310 +#: js/block.js:2333 +#: js/blocks/IntervalsBlocks.js:1071 +#: js/blocks/OrnamentBlocks.js:312 #.TRANS: calculate a relative step between notes based on semi-tones msgid "scalar interval" msgstr "" -#: js/block.js:1568 -#: js/RhythmBlocks.js:148 +#: js/block-verbose.js:1728 +#: js/block.js:1692 +#: js/blocks/RhythmBlocks.js:148 msgid "milliseconds" msgstr "" -#: js/block.js:2180 -#: js/block.js:2184 -#: js/block.js:2234 -#: js/block.js:2345 -#: js/ProgramBlocks.js:1273 -#: js/RhythmBlocks.js:712 -#: js/rhythmruler.js:834 -#: js/rhythmruler.js:961 +#: js/block-verbose.js:2455 +#: js/block-verbose.js:2459 +#: js/block-verbose.js:2512 +#: js/block-verbose.js:2628 +#: js/block.js:2383 +#: js/block.js:2387 +#: js/block.js:2440 +#: js/block.js:2556 +#: js/blocks/RhythmBlocks.js:712 +#: js/blocks/ProgramBlocks.js:1273 +#: js/widgets/rhythmruler.js:1183 +#: js/widgets/rhythmruler.js:1329 msgid "silence" msgstr "" -#: js/block.js:2265 -#: js/block.js:3134 -#: js/block.js:3151 -#: js/activity.js:2336 -#: js/activity.js:2387 -#: js/musicutils.js:2932 -#: js/musicutils.js:4287 +#: js/block-verbose.js:2548 +#: js/block-verbose.js:3492 +#: js/block-verbose.js:3509 +#: js/activity.js:2718 +#: js/activity.js:2769 +#: js/block.js:2476 +#: js/block.js:3416 +#: js/block.js:3433 +#: js/utils/musicutils.js:3780 +#: js/utils/musicutils.js:5273 +#.TRANS: the note names must be separated by single spaces #.TRANS: the note names must be separated by single spaces #.TRANS: the note names must be separated by single spaces msgid "ti la sol fa mi re do" msgstr "" -#: js/block.js:2333 +#: js/block-verbose.js:2616 +#: js/block.js:2544 +#.TRANS: scalar step #.TRANS: scalar step msgid "down" msgstr "" -#: js/block.js:2334 +#: js/block-verbose.js:2617 +#: js/block.js:2545 msgid "up" msgstr "" -#: js/block.js:3477 -#: js/block.js:3490 -#: js/ExtrasBlocks.js:612 +#: js/block-verbose.js:3026 +#: js/block.js:2950 +msgid "Silence block cannot be removed." +msgstr "" + +#: js/block-verbose.js:3824 +#: js/block.js:3748 +#: js/blocks.js:2607 +#: js/blocks.js:3218 +#: js/palette.js:618 +#: js/blocks/BooleanBlocks.js:77 +#: js/blocks/BooleanBlocks.js:167 +#: js/blocks/BooleanBlocks.js:251 +#: js/blocks/BooleanBlocks.js:335 +#: js/blocks/BooleanBlocks.js:433 +#: js/blocks/BooleanBlocks.js:539 +#: js/blocks/BooleanBlocks.js:640 +#: js/blocks/BooleanBlocks.js:741 +#: js/blocks/BooleanBlocks.js:847 +#: js/blocks/BooleanBlocks.js:948 +#: js/blocks/BooleanBlocks.js:1033 +#: js/blocks/SensorsBlocks.js:910 +msgid "true" +msgstr "" + +#: js/block-verbose.js:3824 +#: js/block.js:3748 +#: js/blocks.js:2609 +#: js/blocks.js:3220 +#: js/blocks/BooleanBlocks.js:79 +#: js/blocks/BooleanBlocks.js:169 +#: js/blocks/BooleanBlocks.js:253 +#: js/blocks/BooleanBlocks.js:337 +#: js/blocks/BooleanBlocks.js:435 +#: js/blocks/BooleanBlocks.js:541 +#: js/blocks/BooleanBlocks.js:642 +#: js/blocks/BooleanBlocks.js:743 +#: js/blocks/BooleanBlocks.js:849 +#: js/blocks/BooleanBlocks.js:950 +#: js/blocks/SensorsBlocks.js:912 +msgid "false" +msgstr "" + +#: js/block-verbose.js:3835 +#: js/block-verbose.js:3848 +#: js/block.js:3759 +#: js/block.js:3772 +#: js/blocks/ExtrasBlocks.js:615 msgid "Cartesian" msgstr "Kartesisk" -#: js/block.js:3478 -#: js/block.js:3491 -#: js/ExtrasBlocks.js:616 +#: js/block-verbose.js:3836 +#: js/block-verbose.js:3849 +#: js/block.js:3760 +#: js/block.js:3773 +#: js/blocks/ExtrasBlocks.js:619 msgid "polar" msgstr "" -#: js/block.js:3479 -#: js/block.js:3492 -#: js/ExtrasBlocks.js:620 +#: js/block-verbose.js:3837 +#: js/block-verbose.js:3850 +#: js/block.js:3761 +#: js/block.js:3774 +#: js/blocks/ExtrasBlocks.js:623 msgid "Cartesian+polar" msgstr "" -#: js/block.js:3480 -#: js/block.js:3499 -#: js/ExtrasBlocks.js:649 +#: js/block-verbose.js:3838 +#: js/block-verbose.js:3857 +#: js/block.js:3762 +#: js/block.js:3781 +#: js/blocks/ExtrasBlocks.js:652 msgid "none" msgstr "" -#: js/block.js:3493 -#: js/ExtrasBlocks.js:625 +#: js/block-verbose.js:3851 +#: js/block.js:3775 +#: js/blocks/ExtrasBlocks.js:628 msgid "treble" msgstr "" -#: js/block.js:3494 -#: js/ExtrasBlocks.js:629 +#: js/block-verbose.js:3852 +#: js/block.js:3776 +#: js/blocks/ExtrasBlocks.js:632 msgid "grand staff" msgstr "" -#: js/block.js:3495 -#: js/ExtrasBlocks.js:633 +#: js/block-verbose.js:3853 +#: js/block.js:3777 +#: js/blocks/ExtrasBlocks.js:636 msgid "mezzo-soprano" msgstr "" -#: js/block.js:3496 -#: js/ExtrasBlocks.js:637 +#: js/block-verbose.js:3854 +#: js/block.js:3778 +#: js/blocks/ExtrasBlocks.js:640 msgid "alto" msgstr "" -#: js/block.js:3497 -#: js/ExtrasBlocks.js:641 +#: js/block-verbose.js:3855 +#: js/block.js:3779 +#: js/blocks/ExtrasBlocks.js:644 msgid "tenor" msgstr "" -#: js/block.js:3498 -#: js/ExtrasBlocks.js:645 -#: js/musicutils.js:736 -#: js/synthutils.js:64 +#: js/block-verbose.js:3856 +#: js/block.js:3780 +#: js/utils/musicutils.js:1115 +#: js/utils/synthutils.js:80 +#: js/blocks/ExtrasBlocks.js:648 #.TRANS: musical instrument msgid "bass" msgstr "" -#: js/block.js:4075 +#: js/block-verbose.js:3901 +#: js/block.js:3825 +#: js/blocks.js:2600 +#: js/blocks.js:3211 +msgid "on2" +msgstr "" + +#: js/block-verbose.js:3903 +#: js/block.js:3827 +#: js/blocks.js:2602 +#: js/blocks.js:3213 +msgid "off" +msgstr "" + +#: js/block-verbose.js:4470 +#: js/block.js:4394 msgid "Not a number" msgstr "" -#: js/block.js:4082 -msgid "Octave value must be between 1 and 10." +#: js/block-verbose.js:4477 +#: js/block.js:4401 +msgid "Octave value must be between 1 and 10." +msgstr "" + +#: js/block-verbose.js:4485 +#: js/block.js:4409 +msgid "Numbers can have at most 10 digits." +msgstr "" + +#: js/activity.js:390 +#: js/activity.js:395 +msgid "Search for blocks" +msgstr "" + +#: js/activity.js:1413 +msgid "Refresh your browser to change to advanced mode." +msgstr "" + +#: js/activity.js:1418 +msgid "Refresh your browser to change to beginner mode." +msgstr "" + +#: js/activity.js:1477 +msgid "Catching mice" +msgstr "" + +#: js/activity.js:1478 +msgid "Cleaning the instruments" +msgstr "" + +#: js/activity.js:1479 +msgid "Testing key pieces" +msgstr "" + +#: js/activity.js:1480 +msgid "Sight-reading" +msgstr "" + +#: js/activity.js:1481 +msgid "Combining math and music" +msgstr "" + +#: js/activity.js:1482 +msgid "Generating more blocks" +msgstr "" + +#: js/activity.js:1483 +msgid "Do Re Mi Fa Sol La Ti Do" +msgstr "" + +#: js/activity.js:1484 +msgid "Tuning string instruments" +msgstr "" + +#: js/activity.js:1485 +msgid "Pressing random keys" +msgstr "" + +#: js/activity.js:1663 +msgid "plugins will be removed upon restart." +msgstr "" + +#: js/activity.js:1672 +msgid "show Cartesian" +msgstr "" + +#: js/activity.js:2211 +#: js/palette.js:589 +#: js/blocks/RhythmBlocks.js:923 +#: js/blocks/PitchBlocks.js:442 +#: js/blocks/PitchBlocks.js:1786 +#.TRANS: a numeric mapping of the notes in an octave based on the musical mode +msgid "scale degree" +msgstr "" + +#: js/activity.js:2214 +#: js/palette.js:598 +msgid "voice name" +msgstr "" + +#: js/activity.js:2217 +#: js/palette.js:595 +msgid "invert mode" +msgstr "" + +#: js/activity.js:2220 +msgid "output tools" +msgstr "" + +#: js/activity.js:2223 +msgid "custom note" +msgstr "" + +#: js/activity.js:2226 +msgid "accidental name" +msgstr "" + +#: js/activity.js:2229 +#: js/blocks/PitchBlocks.js:855 +msgid "east indian solfege" +msgstr "" + +#: js/activity.js:2232 +#: js/blocks/PitchBlocks.js:869 +msgid "note name" +msgstr "" + +#: js/activity.js:2235 +#: js/blocks/IntervalsBlocks.js:94 +msgid "temperament name" +msgstr "" + +#: js/activity.js:2238 +#: js/palette.js:592 +msgid "mode name" +msgstr "" + +#: js/activity.js:2241 +msgid "chord name" +msgstr "" + +#: js/activity.js:2244 +#: js/palette.js:615 +msgid "interval name" +msgstr "" + +#: js/activity.js:2247 +msgid "filter type" +msgstr "" + +#: js/activity.js:2250 +msgid "oscillator type" +msgstr "" + +#: js/activity.js:2253 +#: js/blocks.js:2479 +#: js/blocks.js:2487 +msgid "audio file" +msgstr "" + +#: js/activity.js:2256 +#: js/blocks/DrumBlocks.js:32 +msgid "noise name" +msgstr "" + +#: js/activity.js:2259 +#: js/blocks/DrumBlocks.js:75 +msgid "drum name" +msgstr "" + +#: js/activity.js:2262 +#: js/blocks/DrumBlocks.js:119 +msgid "effects name" +msgstr "" + +#: js/activity.js:2265 +msgid "wrap mode" +msgstr "" + +#: js/activity.js:2268 +msgid "load file" +msgstr "" + +#: js/activity.js:2435 +#: js/activity.js:5851 +msgid "This block is deprecated." +msgstr "" + +#: js/activity.js:2437 +#: js/activity.js:5853 +msgid "Block cannot be found." +msgstr "" + +#: js/activity.js:2645 +msgid "Saving block artwork" +msgstr "" + +#: js/activity.js:2656 +msgid "Erase" +msgstr "" + +#: js/activity.js:2683 +#: js/activity.js:2705 +msgid "Paste" +msgstr "Indsæt" + +#: js/activity.js:2687 +msgid "Save block help" +msgstr "" + +#: js/activity.js:2772 +msgid "Jumping to the bottom of the page." +msgstr "" + +#: js/activity.js:2778 +msgid "Scrolling up." +msgstr "" + +#: js/activity.js:2783 +msgid "Scrolling down." +msgstr "" + +#: js/activity.js:2788 +msgid "Extracting block" +msgstr "" + +#: js/activity.js:2796 +msgid "Moving block up." +msgstr "" + +#: js/activity.js:2817 +msgid "Moving block down." msgstr "" -#: js/block.js:4090 -msgid "Numbers can have at most 10 digits." +#: js/activity.js:2838 +msgid "Moving block left." msgstr "" -#: js/notation.js:353 -msgid "Lilypond cannot process pickup of " +#: js/activity.js:2855 +msgid "Moving block right." msgstr "" -#: js/turtledefs.js:40 -#.TRANS: put the URL to the guide here, e.g., https://github.com/sugarlabs/turtleblocksjs/tree/master/guide/README.md -msgid "guide url" +#: js/activity.js:2870 +msgid "Jump to home position." msgstr "" -#: js/turtledefs.js:85 -#: js/turtledefs.js:437 -msgid "Turtle Blocks is a Logo-inspired turtle that draws colorful pictures with snap-together visual-programming blocks." +#: js/activity.js:2897 +msgid "Hide blocks" msgstr "" -#: js/turtledefs.js:118 -#: js/turtledefs.js:220 -msgid "search" +#: js/activity.js:4500 +msgid "Click the run button to run the project." msgstr "" -#: js/turtledefs.js:120 -#: js/turtledefs.js:222 -#: js/WidgetBlocks.js:437 -#: js/MeterBlocks.js:1343 -#.TRANS: musical meter (time signature), e.g., 4:4 -msgid "meter" +#: js/activity.js:5692 +msgid "Show/hide block" msgstr "" -#: js/turtledefs.js:122 -#: js/turtledefs.js:224 -msgid "intervals" +#: js/activity.js:5698 +msgid "Expand/collapse blocks" msgstr "" -#: js/turtledefs.js:124 -#: js/turtledefs.js:226 -msgid "ornament" +#: js/activity.js:5976 +msgid "Could not parse JSON input." msgstr "" -#: js/turtledefs.js:125 -#: js/turtledefs.js:227 -#: js/VolumeBlocks.js:362 -#: js/VolumeBlocks.js:502 -#: js/VolumeBlocks.js:545 -msgid "volume" +#: js/activity.js:6475 +#: js/activity.js:6580 +#: js/activity.js:6631 +msgid "Cannot load project from the file. Please check the file type." msgstr "" -#: js/turtledefs.js:129 -#: js/turtledefs.js:231 -msgid "boxes" +#: js/activity.js:6917 +msgid "Invalid parameters" msgstr "" -#: js/turtledefs.js:130 -#: js/turtledefs.js:232 -msgid "widgets" +#: js/blocks.js:1212 +#: js/blocks.js:3444 +#: js/blocks.js:3834 +#: js/blocks.js:3865 +#: js/blocks.js:3914 +#: js/blocks.js:3949 +#: js/blocks.js:6586 +#: js/palette.js:509 +#: js/palette.js:638 +#: js/palette.js:1105 +#: js/blocks/BoxesBlocks.js:282 +#: js/blocks/BoxesBlocks.js:285 +#: js/blocks/BoxesBlocks.js:405 +#: js/blocks/BoxesBlocks.js:594 +msgid "box" +msgstr "boks" + +#: js/blocks.js:1713 +msgid "Consider breaking this stack into parts." msgstr "" -#: js/turtledefs.js:131 -#: js/turtledefs.js:233 -#: js/phrasemaker.js:824 -msgid "graphics" +#: js/blocks.js:2472 +#: js/palette.js:653 +#: js/blocks/MediaBlocks.js:602 +msgid "open file" msgstr "" -#: js/turtledefs.js:134 -#: js/turtledefs.js:236 -msgid "boolean" +#: js/blocks.js:3247 +#: js/palette.js:574 +#: js/blocks/MediaBlocks.js:892 +#: js/blocks/MediaBlocks.js:963 +msgid "text" +msgstr "tekst" + +#: js/blocks.js:3443 +#: js/palette.js:641 +#: js/palette.js:642 +#: js/blocks/BoxesBlocks.js:514 +msgid "store in box" msgstr "" -#: js/turtledefs.js:137 -#: js/turtledefs.js:239 -#: js/HeapBlocks.js:59 -#: js/status.js:147 -msgid "heap" +#: js/blocks.js:3448 +#: js/blocks.js:3888 +#: js/blocks.js:3923 +#: js/blocks.js:3958 +#: js/blocks.js:5862 +#: js/blocks.js:5883 +#: js/blocks/BoxesBlocks.js:772 +msgid "box1" msgstr "" -#: js/turtledefs.js:138 -#: js/turtledefs.js:240 -#: js/ProgramBlocks.js:495 -#: js/DictBlocks.js:142 -msgid "dictionary" +#: js/blocks.js:3450 +#: js/blocks.js:3890 +#: js/blocks.js:3925 +#: js/blocks.js:3960 +#: js/blocks.js:5864 +#: js/blocks.js:5885 +#: js/blocks/BoxesBlocks.js:663 +msgid "box2" msgstr "" -#: js/turtledefs.js:139 -#: js/turtledefs.js:241 -msgid "ensemble" +#: js/blocks.js:4122 +#: js/palette.js:639 +#: js/palette.js:644 +#: js/palette.js:1041 +#: js/blocks/BoxesBlocks.js:591 +msgid "store in" +msgstr "gem i" + +#: js/blocks.js:4122 +#: js/blocks/BoxesBlocks.js:595 +#: js/blocks/DictBlocks.js:215 +#: js/blocks/DictBlocks.js:289 +#: js/blocks/EnsembleBlocks.js:391 +#: js/blocks/EnsembleBlocks.js:402 +#: js/blocks/MediaBlocks.js:746 +#: js/blocks/PitchBlocks.js:656 +#: js/blocks/PitchBlocks.js:934 +#: js/blocks/PitchBlocks.js:1866 +#: js/blocks/ProgramBlocks.js:390 +#: js/blocks/ProgramBlocks.js:495 +#: js/blocks/ProgramBlocks.js:658 +#: js/blocks/ToneBlocks.js:1025 +msgid "name" msgstr "" -#: js/turtledefs.js:140 -#: js/turtledefs.js:242 -msgid "extras" -msgstr "ekstramateriale" +#: js/blocks.js:4122 +#: js/blocks/BoxesBlocks.js:75 +#: js/blocks/BoxesBlocks.js:595 +#: js/blocks/DictBlocks.js:289 +#: js/blocks/DictBlocks.js:430 +#: js/blocks/HeapBlocks.js:544 +#: js/blocks/RhythmBlocks.js:1130 +msgid "value" +msgstr "værdi" -#: js/turtledefs.js:142 -#: js/turtledefs.js:244 -#.TRANS: program as in computer program -#.TRANS: program as in computer program -msgid "program" +#: js/blocks.js:4465 +msgid "Forever loop detected inside a note value block. Unexpected things may happen." msgstr "" -#: js/turtledefs.js:143 -#: js/turtledefs.js:245 -msgid "my blocks" +#: js/blocks.js:4988 +msgid "There is no block selected." msgstr "" -#: js/turtledefs.js:185 -#: js/turtledefs.js:281 -msgid "artwork" +#: js/blocks.js:5091 +#: js/blocks/MediaBlocks.js:888 +msgid "show" +msgstr "vis" + +#: js/blocks.js:5094 +#: js/blocks/MediaBlocks.js:803 +#.TRANS: Avatar is the image used to determine the appearance of the mouse. +msgid "avatar" msgstr "" -#: js/turtledefs.js:185 -#: js/turtledefs.js:281 -msgid "logic" +#: js/blocks.js:5097 +#: js/blocks/ToneBlocks.js:1010 +#: js/widgets/sampler.js:975 +#.TRANS: The sound sample that the user uploads. +msgid "sample" msgstr "" -#: js/turtledefs.js:185 -#: js/turtledefs.js:281 -msgid "music" +#: js/lilypond.js:606 +msgid "brown rat" msgstr "" -#: js/turtledefs.js:187 -#: js/turtledefs.js:463 -msgid "Music Blocks is a collection of tools for exploring fundamental musical concepts in a fun way." +#: js/lilypond.js:607 +msgid "mole" msgstr "" -#: js/turtledefs.js:436 -msgid "Welcome to Turtle Blocks" +#: js/lilypond.js:608 +msgid "chipmunk" msgstr "" -#: js/turtledefs.js:438 -#: js/turtledefs.js:465 -#: js/turtledefs.js:774 -#: js/turtledefs.js:805 -msgid "The current version is" +#: js/lilypond.js:609 +msgid "red squirrel" msgstr "" -#: js/turtledefs.js:446 -#: js/turtledefs.js:483 -msgid "Click the run button to run the project in fast mode." +#: js/lilypond.js:610 +msgid "guinea pig" msgstr "" -#: js/turtledefs.js:452 -msgid "Stop the turtle." +#: js/lilypond.js:611 +msgid "capybara" msgstr "" -#: js/turtledefs.js:454 -#: js/turtledefs.js:491 -msgid "You can also type Alt-S to stop." +#: js/lilypond.js:612 +msgid "coypu" msgstr "" -#: js/turtledefs.js:462 -#: js/help.js:333 -msgid "Welcome to Music Blocks" +#: js/lilypond.js:613 +msgid "black rat" msgstr "" -#: js/turtledefs.js:472 -#: js/help.js:334 -msgid "Meet Mr. Mouse!" +#: js/lilypond.js:614 +msgid "grey squirrel" msgstr "" -#: js/turtledefs.js:473 -msgid "Mr Mouse is our Music Blocks conductor." +#: js/lilypond.js:615 +msgid "flying squirrel" msgstr "" -#: js/turtledefs.js:475 -msgid "Mr Mouse encourages you to explore Music Blocks." +#: js/lilypond.js:616 +msgid "bat" msgstr "" -#: js/turtledefs.js:477 -msgid "Let us start our tour!" +#: js/lilypond.js:749 +#: js/lilypond.js:913 +#: js/lilypond.js:951 +#: js/blocks/ActionBlocks.js:1256 +#: js/blocks/ExtrasBlocks.js:556 +msgid "start drum" msgstr "" -#: js/turtledefs.js:489 -msgid "Stop the music (and the mice)." +#: js/logo.js:61 +msgid "Not a valid pitch name" msgstr "" -#: js/turtledefs.js:499 -msgid "Record your project as video." +#: js/logo.js:507 +#: js/blocks/ProgramBlocks.js:258 +#: js/blocks/ProgramBlocks.js:427 +msgid "You must select a file." msgstr "" -#: js/turtledefs.js:505 -msgid "Toggle Fullscreen mode." +#: js/logo.js:1696 +msgid "Playback is ready." msgstr "" -#: js/turtledefs.js:511 -msgid "Initialize a new project." +#: js/macros.js:711 +#: js/utils/musicutils.js:1162 +#: js/utils/synthutils.js:202 +#.TRANS: animal sound effect +msgid "duck" msgstr "" -#: js/turtledefs.js:517 -msgid "You can also load projects from the file system." +#: js/notation.js:353 +msgid "Lilypond cannot process pickup of " msgstr "" -#: js/turtledefs.js:522 -#: js/StringHelper.js:46 -msgid "Delete" +#: js/palette.js:571 +msgid "grid" msgstr "" -#: js/turtledefs.js:523 -msgid "To delete a block, just right-click on it, then you will be able to see the delete option" +#: js/palette.js:580 +msgid "effect" msgstr "" -#: js/turtledefs.js:528 -#: js/activity.js:2270 -#: js/LocalCard.js:31 -msgid "Copy" -msgstr "Kopiér" +#: js/palette.js:586 +msgid "sargam" +msgstr "" -#: js/turtledefs.js:529 -msgid "To copy a block, just right-click on it, then you will be able to see the copy option" +#: js/palette.js:601 +#: js/blocks/PitchBlocks.js:1209 +msgid "custom pitch" msgstr "" -#: js/turtledefs.js:535 -msgid "To extract a block, just right-click on it, then you will be able to see the extract option" +#: js/palette.js:609 +msgid "accidental" msgstr "" -#: js/turtledefs.js:542 -#: js/turtledefs.js:552 -#: js/turtledefs.js:573 -msgid "Save your project to a file." +#: js/palette.js:633 +#: js/blocks/PitchBlocks.js:405 +msgid "pitch converter" msgstr "" -#: js/turtledefs.js:549 -#: js/turtledefs.js:570 -msgid "save" +#: js/piemenus.js:200 +#: js/utils/musicutils.js:1187 +#: js/utils/musicutils.js:1207 +#: js/widgets/musickeyboard.js:2341 +#: js/widgets/phrasemaker.js:1908 +#: js/widgets/sampler.js:810 +#.TRANS: double sharp is a music term related to pitch +msgid "double sharp" msgstr "" -#: js/turtledefs.js:556 -#: js/turtledefs.js:577 -msgid "Save graphics from your project to as SVG." +#: js/piemenus.js:201 +#: js/utils/musicutils.js:1185 +#: js/utils/musicutils.js:1208 +#: js/blocks/PitchBlocks.js:1539 +#: js/turtleactions/PitchActions.js:323 +#: js/widgets/musickeyboard.js:2342 +#: js/widgets/phrasemaker.js:1909 +#: js/widgets/sampler.js:811 +#.TRANS: sharp is a music term related to pitch +#.TRANS: sharp is a half-step up in pitch +msgid "sharp" msgstr "" -#: js/turtledefs.js:560 -#: js/turtledefs.js:581 -msgid "Save graphics from your project as PNG." +#: js/piemenus.js:202 +#: js/utils/musicutils.js:1183 +#: js/utils/musicutils.js:1209 +#: js/widgets/musickeyboard.js:2343 +#: js/widgets/phrasemaker.js:1910 +#: js/widgets/sampler.js:812 +#.TRANS: natural is a music term related to pitch +msgid "natural" msgstr "" -#: js/turtledefs.js:564 -#: js/turtledefs.js:597 -msgid "Save block artwork as an SVG file." +#: js/piemenus.js:203 +#: js/utils/musicutils.js:1181 +#: js/utils/musicutils.js:1210 +#: js/blocks/PitchBlocks.js:1498 +#: js/turtleactions/PitchActions.js:326 +#: js/widgets/musickeyboard.js:2344 +#: js/widgets/phrasemaker.js:1911 +#: js/widgets/sampler.js:813 +#.TRANS: flat is a music term related to pitch +#.TRANS: flat is a half-step down in pitch +msgid "flat" msgstr "" -#: js/turtledefs.js:585 -msgid "Save audio from your project as WAV." +#: js/piemenus.js:204 +#: js/utils/musicutils.js:1179 +#: js/utils/musicutils.js:1211 +#: js/widgets/musickeyboard.js:2345 +#: js/widgets/phrasemaker.js:1912 +#: js/widgets/sampler.js:814 +#.TRANS: double flat is a music term related to pitch +msgid "double flat" msgstr "" -#: js/turtledefs.js:589 -msgid "Save your project to as an ABC file." +#: js/piemenus.js:2864 +#: js/utils/musicutils.js:1006 +#: js/blocks/PitchBlocks.js:1385 +#.TRANS: unison is a music term related to intervals +#.TRANS: unison means the note is the same as the current note +msgid "unison" msgstr "" -#: js/turtledefs.js:593 -msgid "Save your project to as a Lilypond file." +#: js/piemenus.js:3018 +#: js/piemenus.js:3091 +#: js/utils/musicutils.js:1014 +#: js/utils/musicutils.js:1189 +#: js/utils/musicutils.js:1326 +#.TRANS: major is a music term related to intervals and mode +msgid "major" msgstr "" -#: js/turtledefs.js:604 -msgid "Load samples from server" +#: js/piemenus.js:3018 +#: js/piemenus.js:3091 +#: js/utils/musicutils.js:1032 +#.TRANS: modal scale for music +msgid "ionian" msgstr "" -#: js/turtledefs.js:605 -msgid "This button opens a viewer for loading example projects." +#: js/piemenus.js:3020 +#: js/piemenus.js:3095 +#: js/utils/musicutils.js:1012 +#: js/utils/musicutils.js:1190 +#: js/utils/musicutils.js:1323 +#.TRANS: minor is a music term related to intervals and mode +msgid "minor" msgstr "" -#: js/turtledefs.js:611 -msgid "Palette buttons" +#: js/piemenus.js:3020 +#: js/piemenus.js:3095 +#: js/utils/musicutils.js:1042 +#.TRANS: modal scale for music +msgid "aeolian" msgstr "" -#: js/turtledefs.js:612 -msgid "This toolbar contains the palette buttons including Rhythm Pitch Tone Action and more." +#: js/piemenus.js:3410 +msgid "Duplicate" msgstr "" -#: js/turtledefs.js:614 -msgid "Click to show the palettes of blocks and drag blocks from the palettes onto the canvas to use them." +#: js/piemenus.js:3412 +msgid "Move to trash" msgstr "" -#: js/turtledefs.js:620 -msgid "Cartesian/Polar" +#: js/piemenus.js:3413 +#: js/widgets/timbre.js:968 +#: planet/js/StringHelper.js:69 +msgid "Close" msgstr "" -#: js/turtledefs.js:621 -msgid "Show or hide a coordinate grid." -msgstr "" +#: js/piemenus.js:3419 +msgid "Save stack" +msgstr "Gem stak" -#: js/turtledefs.js:627 -msgid "Clear the screen and return the mice to their initial positions." +#: js/piemenus.js:3449 +msgid "In order to copy a sample, you must reload the widget, import the sample again, and export it." msgstr "" -#: js/turtledefs.js:633 -msgid "Collapse the graphics window." +#: js/piemenus.js:3812 +msgid "You have chosen key " msgstr "" -#: js/turtledefs.js:638 -#: js/activity.js:4256 -#: js/activity.js:4256 -msgid "Home" +#: js/piemenus.js:3816 +msgid " for your pitch preview." msgstr "" -#: js/turtledefs.js:639 -msgid "Return all blocks to the center of the screen." +#: js/turtle-singer.js:1363 +#.TRANS: partials are weighted components in a harmonic series +msgid "You must have at least one Partial block inside of a Weighted-partial block" msgstr "" -#: js/turtledefs.js:644 -msgid "Show/hide blocks" -msgstr "Vis/skjul blokke" +#: js/turtle-singer.js:2077 +msgid "synth cannot play chords." +msgstr "" -#: js/turtledefs.js:645 -msgid "Hide or show the blocks and the palettes." +#: js/utils/musicutils.js:505 +#: js/utils/musicutils.js:645 +#: js/widgets/pitchdrummatrix.js:228 +#: js/widgets/musickeyboard.js:2885 +msgid "rest" msgstr "" -#: js/turtledefs.js:650 -msgid "Expand/collapse collapsable blocks" +#: js/utils/musicutils.js:689 +msgid "Perfect unison" msgstr "" -#: js/turtledefs.js:651 -msgid "Expand or collapse start and action stacks." +#: js/utils/musicutils.js:689 +msgid "Diminished second" msgstr "" -#: js/turtledefs.js:658 -#: js/activity.js:4265 -msgid "Decrease block size" +#: js/utils/musicutils.js:690 +msgid "Minor second" msgstr "" -#: js/turtledefs.js:659 -msgid "Decrease the size of the blocks." +#: js/utils/musicutils.js:690 +msgid "Augmented unison" msgstr "" -#: js/turtledefs.js:664 -#: js/activity.js:4267 -msgid "Increase block size" +#: js/utils/musicutils.js:691 +msgid "Major second" msgstr "" -#: js/turtledefs.js:665 -msgid "Increase the size of the blocks." +#: js/utils/musicutils.js:691 +msgid "Diminished third" msgstr "" -#: js/turtledefs.js:670 -msgid "Expand/collapse option toolbar" +#: js/utils/musicutils.js:692 +msgid "Minor third" msgstr "" -#: js/turtledefs.js:671 -msgid "Click this button to expand or collapse the auxillary toolbar." +#: js/utils/musicutils.js:692 +msgid "Augmented second" msgstr "" -#: js/turtledefs.js:676 -msgid "Run slow" +#: js/utils/musicutils.js:693 +msgid "Major third" msgstr "" -#: js/turtledefs.js:677 -msgid "Click to run the project in slow mode." +#: js/utils/musicutils.js:693 +msgid "Diminished fourth" msgstr "" -#: js/turtledefs.js:683 -msgid "Click to run the project step by step." +#: js/utils/musicutils.js:694 +msgid "Perfect fourth" msgstr "" -#: js/turtledefs.js:690 -msgid "Display statistics about your Music project." +#: js/utils/musicutils.js:694 +msgid "Augmented third" msgstr "" -#: js/turtledefs.js:697 -msgid "Delete a selected plugin." +#: js/utils/musicutils.js:695 +msgid "Diminished fifth" msgstr "" -#: js/turtledefs.js:704 -msgid "Enable scrolling" +#: js/utils/musicutils.js:695 +msgid "Augmented fourth" msgstr "" -#: js/turtledefs.js:705 -msgid "You can scroll the blocks on the canvas." +#: js/utils/musicutils.js:696 +msgid "Perfect fifth" msgstr "" -#: js/turtledefs.js:714 -msgid "Wrap Turtle" +#: js/utils/musicutils.js:696 +msgid "Diminished sixth" msgstr "" -#: js/turtledefs.js:715 -msgid "Turn Turtle wrapping On or Off." +#: js/utils/musicutils.js:697 +msgid "Minor sixth" msgstr "" -#: js/turtledefs.js:725 -msgid "Restore blocks from the trash." +#: js/utils/musicutils.js:697 +msgid "Augmented fifth" msgstr "" -#: js/turtledefs.js:732 -msgid "Switch mode" +#: js/utils/musicutils.js:698 +msgid "Major sixth" msgstr "" -#: js/turtledefs.js:733 -msgid "Switch between beginner and advance modes." +#: js/utils/musicutils.js:698 +msgid "Diminished seventh" msgstr "" -#: js/turtledefs.js:739 -msgid "Select your language preference." +#: js/utils/musicutils.js:699 +msgid "Minor seventh" msgstr "" -#: js/turtledefs.js:745 -msgid "Keyboard shortcuts" +#: js/utils/musicutils.js:699 +msgid "Augmented sixth" msgstr "" -#: js/turtledefs.js:746 -msgid "You can type d to create a do block and r to create a re block etc." +#: js/utils/musicutils.js:700 +msgid "Major seventh" msgstr "" -#: js/turtledefs.js:753 -msgid "Show these messages." +#: js/utils/musicutils.js:700 +msgid "Diminished octave" msgstr "" -#: js/turtledefs.js:759 -#: js/turtledefs.js:790 -#: js/help.js:335 -msgid "Guide" +#: js/utils/musicutils.js:701 +msgid "Perfect octave" msgstr "" -#: js/turtledefs.js:760 -msgid "A detailed guide to Turtle Blocks is available." +#: js/utils/musicutils.js:701 +msgid "Augmented seventh" msgstr "" -#: js/turtledefs.js:764 -msgid "Turtle Blocks Guide" +#: js/utils/musicutils.js:702 +msgid "Minor ninth" msgstr "" -#: js/turtledefs.js:767 -#: js/turtledefs.js:798 -#: js/help.js:336 -msgid "About" +#: js/utils/musicutils.js:702 +msgid "Augmented octave" msgstr "" -#: js/turtledefs.js:768 -msgid "Turtle Blocks is an open source collection of tools for exploring musical concepts." +#: js/utils/musicutils.js:703 +msgid "Major ninth" msgstr "" -#: js/turtledefs.js:770 -msgid "A full list of contributors can be found in the Turtle Blocks GitHub repository." +#: js/utils/musicutils.js:703 +msgid "Diminished tenth" msgstr "" -#: js/turtledefs.js:772 -msgid "Turtle Blocks is licensed under the AGPL." +#: js/utils/musicutils.js:704 +msgid "Minor tenth" msgstr "" -#: js/turtledefs.js:780 -msgid "Turtle Blocks GitHub repository" +#: js/utils/musicutils.js:704 +msgid "Augmented ninth" msgstr "" -#: js/turtledefs.js:783 -#: js/turtledefs.js:814 -#: js/help.js:337 -#: js/help.js:359 -msgid "Congratulations." +#: js/utils/musicutils.js:705 +msgid "Major tenth" msgstr "" -#: js/turtledefs.js:784 -msgid "You have finished the tour. Please enjoy Turtle Blocks!" +#: js/utils/musicutils.js:705 +msgid "Diminished eleventh" msgstr "" -#: js/turtledefs.js:791 -msgid "A detailed guide to Music Blocks is available." +#: js/utils/musicutils.js:706 +msgid "Perfect eleventh" msgstr "" -#: js/turtledefs.js:795 -#: js/SaveInterface.js:76 -msgid "Music Blocks Guide" +#: js/utils/musicutils.js:706 +msgid "Augmented tenth" msgstr "" -#: js/turtledefs.js:799 -msgid "Music Blocks is an open source collection of tools for exploring musical concepts." +#: js/utils/musicutils.js:707 +msgid "Diminished twelfth" msgstr "" -#: js/turtledefs.js:801 -msgid "A full list of contributors can be found in the Music Blocks GitHub repository." +#: js/utils/musicutils.js:707 +msgid "Augmented eleventh" msgstr "" -#: js/turtledefs.js:803 -msgid "Music Blocks is licensed under the AGPL." +#: js/utils/musicutils.js:708 +msgid "Perfect twelfth" msgstr "" -#: js/turtledefs.js:811 -msgid "Music Blocks GitHub repository" +#: js/utils/musicutils.js:708 +msgid "Diminished thirteenth" msgstr "" -#: js/turtledefs.js:815 -msgid "You have finished the tour. Please enjoy Music Blocks!" +#: js/utils/musicutils.js:709 +msgid "Minor thirteenth" msgstr "" -#: js/activity.js:369 -msgid "Search for blocks" +#: js/utils/musicutils.js:709 +msgid "Augmented fifth, plus an octave" msgstr "" -#: js/activity.js:1145 -msgid "Refresh your browser to change to advanced mode." +#: js/utils/musicutils.js:710 +msgid "Major thirteenth" msgstr "" -#: js/activity.js:1150 -msgid "Refresh your browser to change to beginner mode." +#: js/utils/musicutils.js:710 +msgid "Diminished seventh, plus an octave" msgstr "" -#: js/activity.js:1184 -msgid "Catching mice" +#: js/utils/musicutils.js:838 +#.TRANS: ordinal number. Please keep exactly one space between each number. +msgid "1st 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th" msgstr "" -#: js/activity.js:1185 -msgid "Cleaning the instruments" +#: js/utils/musicutils.js:1008 +#: js/utils/musicutils.js:1191 +#: js/utils/musicutils.js:1325 +#.TRANS: augmented is a music term related to intervals +msgid "augmented" msgstr "" -#: js/activity.js:1186 -msgid "Testing key pieces" +#: js/utils/musicutils.js:1010 +#: js/utils/musicutils.js:1192 +#: js/utils/musicutils.js:1324 +#.TRANS: diminished is a music term related to intervals and mode +msgid "diminished" msgstr "" -#: js/activity.js:1187 -msgid "Sight-reading" +#: js/utils/musicutils.js:1016 +#: js/utils/musicutils.js:1322 +#: js/blocks/IntervalsBlocks.js:649 +#: js/turtleactions/IntervalsActions.js:120 +#: js/turtleactions/IntervalsActions.js:124 +#.TRANS: perfect is a music term related to intervals +msgid "perfect" msgstr "" -#: js/activity.js:1188 -msgid "Combining math and music" +#: js/utils/musicutils.js:1018 +#.TRANS: twelve semi-tone scale for music +msgid "chromatic" msgstr "" -#: js/activity.js:1189 -msgid "Generating more blocks" +#: js/utils/musicutils.js:1019 +msgid "algerian" msgstr "" -#: js/activity.js:1190 -msgid "Do Re Mi Fa Sol La Ti Do" +#: js/utils/musicutils.js:1020 +msgid "spanish" msgstr "" -#: js/activity.js:1191 -msgid "Tuning string instruments" +#: js/utils/musicutils.js:1022 +#.TRANS: modal scale in music +msgid "octatonic" msgstr "" -#: js/activity.js:1192 -msgid "Pressing random keys" +#: js/utils/musicutils.js:1024 +#.TRANS: harmonic major scale in music +msgid "harmonic major" msgstr "" -#: js/activity.js:1351 -msgid "plugins will be removed upon restart." +#: js/utils/musicutils.js:1026 +#.TRANS: natural minor scales in music +msgid "natural minor" msgstr "" -#: js/activity.js:1360 -msgid "show Cartesian" +#: js/utils/musicutils.js:1028 +#.TRANS: harmonic minor scale in music +msgid "harmonic minor" msgstr "" -#: js/activity.js:1842 -msgid "output tools" +#: js/utils/musicutils.js:1030 +#.TRANS: melodic minor scale in music +msgid "melodic minor" msgstr "" -#: js/activity.js:1845 -msgid "custom note" +#: js/utils/musicutils.js:1034 +#.TRANS: modal scale for music +msgid "dorian" msgstr "" -#: js/activity.js:1848 -msgid "accidental name" +#: js/utils/musicutils.js:1036 +#.TRANS: modal scale for music +msgid "phrygian" msgstr "" -#: js/activity.js:1851 -#: js/PitchBlocks.js:855 -msgid "east indian solfege" +#: js/utils/musicutils.js:1038 +#.TRANS: modal scale for music +msgid "lydian" msgstr "" -#: js/activity.js:1854 -#: js/PitchBlocks.js:869 -msgid "note name" +#: js/utils/musicutils.js:1040 +#.TRANS: modal scale for music +msgid "mixolydian" msgstr "" -#: js/activity.js:1857 -#: js/IntervalsBlocks.js:94 -msgid "temperament name" +#: js/utils/musicutils.js:1044 +#.TRANS: modal scale for music +msgid "locrian" msgstr "" -#: js/activity.js:1863 -msgid "chord name" +#: js/utils/musicutils.js:1046 +#.TRANS: minor jazz scale for music +msgid "jazz minor" msgstr "" -#: js/activity.js:1869 -msgid "filter type" +#: js/utils/musicutils.js:1048 +#.TRANS: bebop scale for music +msgid "bebop" msgstr "" -#: js/activity.js:1872 -msgid "oscillator type" +#: js/utils/musicutils.js:1049 +msgid "arabic" msgstr "" -#: js/activity.js:1878 -#: js/DrumBlocks.js:32 -msgid "noise name" +#: js/utils/musicutils.js:1050 +msgid "byzantine" msgstr "" -#: js/activity.js:1881 -#: js/DrumBlocks.js:75 -msgid "drum name" +#: js/utils/musicutils.js:1052 +#.TRANS: musical scale for music by Verdi +msgid "enigmatic" msgstr "" -#: js/activity.js:1884 -#: js/DrumBlocks.js:119 -msgid "effects name" +#: js/utils/musicutils.js:1053 +msgid "ethiopian" msgstr "" -#: js/activity.js:1887 -msgid "wrap mode" +#: js/utils/musicutils.js:1055 +#.TRANS: Ethiopic scale for music +msgid "geez" msgstr "" -#: js/activity.js:1890 -msgid "load file" +#: js/utils/musicutils.js:1056 +msgid "hindu" msgstr "" -#: js/activity.js:2056 -msgid "This block is deprecated." +#: js/utils/musicutils.js:1057 +msgid "hungarian" msgstr "" -#: js/activity.js:2058 -msgid "Block cannot be found." +#: js/utils/musicutils.js:1059 +#.TRANS: minor Romanian scale for music +msgid "romanian minor" msgstr "" -#: js/activity.js:2266 -msgid "Saving block artwork" +#: js/utils/musicutils.js:1060 +msgid "spanish gypsy" msgstr "" -#: js/activity.js:2277 -msgid "Erase" +#: js/utils/musicutils.js:1062 +#.TRANS: musical scale for Mid-Eastern music +msgid "maqam" msgstr "" -#: js/activity.js:2301 -#: js/activity.js:2323 -msgid "Paste" -msgstr "Indsæt" +#: js/utils/musicutils.js:1064 +#.TRANS: minor blues scale for music +msgid "minor blues" +msgstr "" -#: js/activity.js:2305 -msgid "Save block help" +#: js/utils/musicutils.js:1066 +#.TRANS: major blues scale for music +msgid "major blues" msgstr "" -#: js/activity.js:2390 -msgid "Jumping to the bottom of the page." +#: js/utils/musicutils.js:1067 +msgid "whole tone" msgstr "" -#: js/activity.js:2396 -msgid "Scrolling up." +#: js/utils/musicutils.js:1069 +#.TRANS: pentatonic is a general term that means "five note scale". This scale is typically known as "minor pentatonic" +msgid "minor pentatonic" msgstr "" -#: js/activity.js:2401 -msgid "Scrolling down." +#: js/utils/musicutils.js:1071 +#.TRANS: pentatonic is a general term that means "five note scale". This scale is typically known as "major pentatonic" +msgid "major pentatonic" msgstr "" -#: js/activity.js:2406 -msgid "Extracting block" +#: js/utils/musicutils.js:1072 +msgid "chinese" msgstr "" -#: js/activity.js:2414 -msgid "Moving block up." +#: js/utils/musicutils.js:1073 +msgid "egyptian" msgstr "" -#: js/activity.js:2435 -msgid "Moving block down." +#: js/utils/musicutils.js:1075 +#.TRANS: https://en.wikipedia.org/wiki/Hirajoshi_scale NOTE: There are three different versions of this scale +msgid "hirajoshi" msgstr "" -#: js/activity.js:2456 -msgid "Moving block left." +#: js/utils/musicutils.js:1076 +msgid "Japan" msgstr "" -#: js/activity.js:2473 -msgid "Moving block right." +#: js/utils/musicutils.js:1078 +#.TRANS: https://en.wikipedia.org/wiki/In_scale and https://en.wikipedia.org/wiki/Sakura_Sakura +msgid "in" msgstr "" -#: js/activity.js:2488 -msgid "Jump to home position." +#: js/utils/musicutils.js:1080 +#.TRANS: https://en.wikipedia.org/wiki/Miny%C5%8D_scale +msgid "minyo" msgstr "" -#: js/activity.js:2515 -msgid "Hide blocks" +#: js/utils/musicutils.js:1082 +#.TRANS: Italian mathematician +msgid "fibonacci" msgstr "" -#: js/activity.js:3389 -msgid "Click the run button to run the project." +#: js/utils/musicutils.js:1083 +#: js/utils/musicutils.js:1134 +#: js/utils/musicutils.js:1177 +#: js/utils/musicutils.js:1199 +#: js/utils/synthutils.js:134 +#: js/blocks/IntervalsBlocks.js:1124 +#: js/blocks/ToneBlocks.js:946 +#: js/blocks/VolumeBlocks.js:411 +#: js/blocks/WidgetBlocks.js:399 +#: js/blocks/WidgetBlocks.js:404 +#: js/turtleactions/VolumeActions.js:218 +#: js/widgets/modewidget.js:919 +#.TRANS: customize voice +msgid "custom" msgstr "" -#: js/activity.js:3456 -#: js/SaveInterface.js:131 -#: js/SaveInterface.js:204 -#: js/SaveInterface.js:262 -#: js/SaveInterface.js:389 -#: js/SaveInterface.js:417 -#: js/ProjectStorage.js:27 -#: js/GlobalPlanet.js:467 -#: js/GlobalPlanet.js:469 -#: js/GlobalPlanet.js:495 -#.TRANS: default project title when saving as Lilypond -msgid "My Project" +#: js/utils/musicutils.js:1085 +#: js/utils/musicutils.js:1531 +#: js/blocks/WidgetBlocks.js:176 +#.TRANS: highpass filter +msgid "highpass" msgstr "" -#: js/activity.js:4261 -msgid "Show/hide block" +#: js/utils/musicutils.js:1087 +#: js/utils/musicutils.js:1532 +#.TRANS: lowpass filter +msgid "lowpass" msgstr "" -#: js/activity.js:4263 -msgid "Expand/collapse blocks" +#: js/utils/musicutils.js:1089 +#: js/utils/musicutils.js:1533 +#.TRANS: bandpass filter +msgid "bandpass" msgstr "" -#: js/activity.js:4381 -msgid "Could not parse JSON input." +#: js/utils/musicutils.js:1091 +#: js/utils/musicutils.js:1534 +#.TRANS: high-shelf filter +msgid "highshelf" msgstr "" -#: js/activity.js:4684 -#: js/activity.js:4771 -#: js/activity.js:4821 -msgid "Cannot load project from the file. Please check the file type." +#: js/utils/musicutils.js:1093 +#: js/utils/musicutils.js:1535 +#.TRANS: low-shelf filter +msgid "lowshelf" msgstr "" -#: js/activity.js:5051 -msgid "Invalid parameters" +#: js/utils/musicutils.js:1095 +#: js/utils/musicutils.js:1536 +#.TRANS: notch-shelf filter +msgid "notch" msgstr "" -#: js/turtle-singer.js:1334 -#.TRANS: partials are weighted components in a harmonic series -msgid "You must have at least one Partial block inside of a Weighted-partial block" +#: js/utils/musicutils.js:1097 +#: js/utils/musicutils.js:1537 +#.TRANS: all-pass filter +msgid "allpass" msgstr "" -#: js/turtle-singer.js:2048 -msgid "synth cannot play chords." +#: js/utils/musicutils.js:1099 +#: js/utils/musicutils.js:1538 +#.TRANS: peaking filter +msgid "peaking" msgstr "" -#: js/lilypond.js:614 -msgid "brown rat" +#: js/utils/musicutils.js:1100 +#: js/utils/musicutils.js:1546 +#: js/utils/synthutils.js:126 +#: js/blocks/PitchBlocks.js:85 +#.TRANS: sine wave +msgid "sine" msgstr "" -#: js/lilypond.js:615 -msgid "mole" +#: js/utils/musicutils.js:1101 +#: js/utils/musicutils.js:1547 +#: js/utils/synthutils.js:128 +#: js/blocks/PitchBlocks.js:39 +#.TRANS: square wave +msgid "square" msgstr "" -#: js/lilypond.js:616 -msgid "chipmunk" +#: js/utils/musicutils.js:1102 +#: js/utils/musicutils.js:1548 +#: js/utils/synthutils.js:132 +#: js/blocks/PitchBlocks.js:62 +#: js/blocks/ToneBlocks.js:39 +#.TRANS: triangle wave +msgid "triangle" msgstr "" -#: js/lilypond.js:617 -msgid "red squirrel" +#: js/utils/musicutils.js:1103 +#: js/utils/musicutils.js:1549 +#: js/utils/synthutils.js:130 +#: js/blocks/PitchBlocks.js:108 +#.TRANS: sawtooth wave +msgid "sawtooth" msgstr "" -#: js/lilypond.js:618 -msgid "guinea pig" +#: js/utils/musicutils.js:1105 +#: js/utils/musicutils.js:1312 +#: js/blocks/PitchBlocks.js:931 +#: js/blocks/PitchBlocks.js:937 +#: js/turtleactions/PitchActions.js:469 +#.TRANS: even numbers +#.TRANS: invert based on even or odd number or musical scale +msgid "even" msgstr "" -#: js/lilypond.js:619 -msgid "capybara" +#: js/utils/musicutils.js:1107 +#: js/utils/musicutils.js:1313 +#: js/blocks/PitchBlocks.js:937 +#: js/turtleactions/PitchActions.js:471 +#.TRANS: odd numbers +msgid "odd" msgstr "" -#: js/lilypond.js:620 -msgid "coypu" +#: js/utils/musicutils.js:1108 +#: js/utils/musicutils.js:1314 +#: js/blocks/PitchBlocks.js:937 +#: js/turtleactions/PitchActions.js:473 +msgid "scalar" msgstr "" -#: js/lilypond.js:621 -msgid "black rat" +#: js/utils/musicutils.js:1109 +#: js/utils/synthutils.js:72 +#: js/blocks/VolumeBlocks.js:47 +#.TRANS: musical instrument +msgid "piano" msgstr "" -#: js/lilypond.js:622 -msgid "grey squirrel" +#: js/utils/musicutils.js:1110 +#: js/utils/synthutils.js:74 +#.TRANS: musical instrument +msgid "violin" msgstr "" -#: js/lilypond.js:623 -msgid "flying squirrel" +#: js/utils/musicutils.js:1111 +#: js/utils/synthutils.js:76 +#.TRANS: viola musical instrument +msgid "viola" msgstr "" -#: js/lilypond.js:624 -msgid "bat" +#: js/utils/musicutils.js:1112 +#: js/utils/synthutils.js:114 +#.TRANS: xylophone musical instrument +msgid "xylophone" msgstr "" -#: js/lilypond.js:757 -#: js/lilypond.js:921 -#: js/lilypond.js:959 -#: js/ActionBlocks.js:1256 -#: js/ExtrasBlocks.js:553 -msgid "start drum" +#: js/utils/musicutils.js:1113 +#: js/utils/synthutils.js:136 +#.TRANS: vibraphone musical instrument +msgid "vibraphone" msgstr "" -#: js/SaveInterface.js:59 -#: js/SaveInterface.js:61 -#: js/SaveInterface.js:93 -msgid "Music Blocks Project" +#: js/utils/musicutils.js:1114 +#: js/utils/synthutils.js:78 +#.TRANS: musical instrument +msgid "cello" msgstr "" -#: js/SaveInterface.js:63 -msgid "This project was created in Music Blocks" +#: js/utils/musicutils.js:1116 +#: js/utils/synthutils.js:82 +#.TRANS: viola musical instrument +msgid "double bass" msgstr "" -#: js/SaveInterface.js:67 -msgid "Music Blocks is a Free/Libre Software application." +#: js/utils/musicutils.js:1117 +#: js/utils/synthutils.js:84 +#: js/widgets/rhythmruler.js:2511 +#.TRANS: musical instrument +msgid "guitar" msgstr "" -#: js/SaveInterface.js:69 -msgid "The source code can be accessed at" +#: js/utils/musicutils.js:1118 +#: js/utils/synthutils.js:86 +#.TRANS: musical instrument +msgid "acoustic guitar" msgstr "" -#: js/SaveInterface.js:72 -msgid "For more information, please consult the" +#: js/utils/musicutils.js:1119 +#: js/utils/synthutils.js:88 +#.TRANS: musical instrument +msgid "flute" msgstr "" -#: js/SaveInterface.js:83 -msgid "Alternatively, open the file in Music Blocks using the Load project button." +#: js/utils/musicutils.js:1120 +#: js/utils/synthutils.js:90 +#.TRANS: musical instrument +msgid "clarinet" msgstr "" -#: js/SaveInterface.js:85 -msgid "Project Code" +#: js/utils/musicutils.js:1121 +#: js/utils/synthutils.js:92 +#.TRANS: musical instrument +msgid "saxophone" msgstr "" -#: js/SaveInterface.js:87 -msgid "This code stores data about the blocks in a project." +#: js/utils/musicutils.js:1122 +#: js/utils/synthutils.js:94 +#.TRANS: musical instrument +msgid "tuba" msgstr "" -#: js/SaveInterface.js:89 -msgid "Show" +#: js/utils/musicutils.js:1123 +#: js/utils/synthutils.js:96 +#.TRANS: musical instrument +msgid "trumpet" msgstr "" -#: js/SaveInterface.js:91 -msgid "Hide" +#: js/utils/musicutils.js:1124 +#: js/utils/synthutils.js:98 +#.TRANS: musical instrument +msgid "oboe" msgstr "" -#: js/SaveInterface.js:197 -#: js/SaveInterface.js:58 -msgid "No description provided" +#: js/utils/musicutils.js:1125 +#: js/utils/synthutils.js:100 +#.TRANS: musical instrument +msgid "trombone" msgstr "" -#: js/SaveInterface.js:332 -msgid "Your recording is in progress." +#: js/utils/musicutils.js:1126 +#: js/utils/synthutils.js:116 +#.TRANS: polytone synthesizer +msgid "electronic synth" msgstr "" -#: js/SaveInterface.js:401 -#.TRANS: File name prompt for save as Lilypond -msgid "File name" +#: js/utils/musicutils.js:1127 +#: js/utils/synthutils.js:118 +#.TRANS: simple monotone synthesizer +msgid "simple 1" msgstr "" -#: js/SaveInterface.js:403 -#: js/StringHelper.js:39 -#.TRANS: Project title prompt for save as Lilypond -msgid "Project title" +#: js/utils/musicutils.js:1128 +msgid "simple 2" msgstr "" -#: js/SaveInterface.js:405 -#.TRANS: Project title prompt for save as Lilypond -msgid "Project author" +#: js/utils/musicutils.js:1129 +msgid "simple 3" msgstr "" -#: js/SaveInterface.js:407 -#.TRANS: MIDI prompt for save as Lilypond -msgid "Include MIDI output?" +#: js/utils/musicutils.js:1130 +msgid "simple 4" msgstr "" -#: js/SaveInterface.js:409 -#.TRANS: Guitar prompt for save as Lilypond -msgid "Include guitar tablature output?" +#: js/utils/musicutils.js:1131 +#: js/utils/synthutils.js:58 +#: js/blocks/DrumBlocks.js:191 +#.TRANS: white noise synthesizer +msgid "white noise" msgstr "" -#: js/SaveInterface.js:411 -#.TRANS: Lilypond is a scripting language for generating sheet music -msgid "Save as Lilypond" +#: js/utils/musicutils.js:1132 +#: js/utils/synthutils.js:60 +#.TRANS: brown noise synthesizer +msgid "brown noise" msgstr "" -#: js/SaveInterface.js:426 -#: js/EnsembleBlocks.js:75 -#: js/EnsembleBlocks.js:154 -#: js/EnsembleBlocks.js:216 -#: js/EnsembleBlocks.js:302 -#: js/EnsembleBlocks.js:348 -#: js/EnsembleBlocks.js:389 -#: js/EnsembleBlocks.js:441 -#: js/EnsembleBlocks.js:490 -#: js/EnsembleBlocks.js:536 -#: js/EnsembleBlocks.js:583 -#: js/EnsembleBlocks.js:637 -#: js/EnsembleBlocks.js:753 -#: js/EnsembleBlocks.js:840 -#: js/EnsembleBlocks.js:899 -#: js/EnsembleBlocks.js:942 -#: js/EnsembleBlocks.js:1212 -#: js/EnsembleBlocks.js:1280 -#.TRANS: default project author when saving as Lilypond -msgid "Mr. Mouse" +#: js/utils/musicutils.js:1133 +#: js/utils/synthutils.js:62 +#.TRANS: pink noise synthesizer +msgid "pink noise" msgstr "" -#: js/SaveInterface.js:573 -msgid "The Lilypond code is copied to clipboard. You can paste it here: " +#: js/utils/musicutils.js:1135 +#: js/utils/synthutils.js:148 +#: js/widgets/rhythmruler.js:2057 +#: js/widgets/rhythmruler.js:2319 +#.TRANS: musical instrument +msgid "snare drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:50 -#: js/RhythmBlockPaletteBlocks.js:232 -#.TRANS: rhythm block -#.TRANS: translate "rhythm1" as rhythm -msgid "rhythm1" +#: js/utils/musicutils.js:1136 +#: js/utils/synthutils.js:150 +#.TRANS: musical instrument +msgid "kick drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:70 -#: js/RhythmBlockPaletteBlocks.js:251 -#: js/RhythmBlockPaletteBlocks.js:484 -#: js/RhythmBlockPaletteBlocks.js:553 -#: js/RhythmBlockPaletteBlocks.js:874 -msgid "number of notes" +#: js/utils/musicutils.js:1137 +#: js/utils/synthutils.js:152 +#.TRANS: musical instrument +msgid "tom tom" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:126 -msgid "polyphonic rhythm" +#: js/utils/musicutils.js:1138 +#: js/utils/synthutils.js:154 +#.TRANS: musical instrument +msgid "floor tom" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:218 -msgid "The Rhythm block is used to generate rhythm patterns." +#: js/utils/musicutils.js:1139 +#: js/utils/synthutils.js:156 +#.TRANS: musical instrument +msgid "bass drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:279 -msgid "1/64 note" +#: js/utils/musicutils.js:1140 +#: js/utils/synthutils.js:158 +#.TRANS: a drum made from an inverted cup +msgid "cup drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:303 -msgid "1/32 note" +#: js/utils/musicutils.js:1141 +#: js/utils/synthutils.js:160 +#.TRANS: musical instrument +msgid "darbuka drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:331 -msgid "1/16 note" +#: js/utils/musicutils.js:1142 +#: js/utils/synthutils.js:164 +#.TRANS: musical instrument +msgid "hi hat" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:359 -msgid "eighth note" +#: js/utils/musicutils.js:1143 +#: js/utils/synthutils.js:166 +#.TRANS: a small metal bell +msgid "ride bell" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:387 -msgid "quarter note" +#: js/utils/musicutils.js:1144 +#: js/utils/synthutils.js:168 +#.TRANS: musical instrument +msgid "cow bell" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:415 -msgid "half note" +#: js/utils/musicutils.js:1145 +msgid "japanese drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:443 -msgid "whole note" +#: js/utils/musicutils.js:1146 +#: js/utils/synthutils.js:174 +#.TRANS: musical instrument +msgid "japanese bell" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:481 -#: js/RhythmBlockPaletteBlocks.js:550 -#: js/RhythmBlockPaletteBlocks.js:601 -#.TRANS: A tuplet is a note value divided into irregular time values. -msgid "tuplet" +#: js/utils/musicutils.js:1147 +#: js/utils/synthutils.js:170 +#.TRANS: musical instrument +msgid "triangle bell" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:767 -msgid "septuplet" +#: js/utils/musicutils.js:1148 +#: js/utils/synthutils.js:172 +#.TRANS: musical instrument +msgid "finger cymbals" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:795 -msgid "quintuplet" +#: js/utils/musicutils.js:1149 +#: js/utils/synthutils.js:176 +#.TRANS: a musically tuned set of bells +msgid "chime" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:823 -msgid "triplet" +#: js/utils/musicutils.js:1150 +#: js/utils/synthutils.js:178 +#.TRANS: a musical instrument +msgid "gong" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:850 -msgid "simple tuplet" +#: js/utils/musicutils.js:1151 +#: js/utils/synthutils.js:180 +#.TRANS: sound effect +msgid "clang" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:860 -msgid "Tuplets are a collection of notes that get scaled to a specific duration." +#: js/utils/musicutils.js:1152 +#: js/utils/synthutils.js:182 +#.TRANS: sound effect +msgid "crash" msgstr "" -#: js/WidgetBlocks.js:71 -#.TRANS: sound envelope (ADSR) -msgid "envelope" +#: js/utils/musicutils.js:1153 +#: js/utils/synthutils.js:184 +#.TRANS: sound effect +msgid "bottle" msgstr "" -#: js/WidgetBlocks.js:79 -#.TRANS: Attack time is the time taken for initial run-up of level from nil to peak, beginning when the key is first pressed. -msgid "attack" +#: js/utils/musicutils.js:1154 +#: js/utils/synthutils.js:186 +#.TRANS: sound effect +msgid "clap" msgstr "" -#: js/WidgetBlocks.js:81 -#.TRANS: Decay time is the time taken for the subsequent run down from the attack level to the designated sustain level. -msgid "decay" +#: js/utils/musicutils.js:1155 +#: js/utils/synthutils.js:188 +#.TRANS: sound effect +msgid "slap" msgstr "" -#: js/WidgetBlocks.js:83 -#.TRANS: Sustain level is the level during the main sequence of the sound's duration, until the key is released. -msgid "sustain" +#: js/utils/musicutils.js:1156 +#: js/utils/synthutils.js:190 +#.TRANS: sound effect +msgid "splash" msgstr "" -#: js/WidgetBlocks.js:85 -#.TRANS: Release time is the time taken for the level to decay from the sustain level to zero after the key is released. -msgid "release" +#: js/utils/musicutils.js:1157 +#: js/utils/synthutils.js:192 +#.TRANS: sound effect +msgid "bubbles" msgstr "" -#: js/WidgetBlocks.js:96 -msgid "Attack value should be from 0 to 100." +#: js/utils/musicutils.js:1158 +#: js/utils/synthutils.js:194 +#.TRANS: sound effect +msgid "raindrop" msgstr "" -#: js/WidgetBlocks.js:99 -msgid "Decay value should be from 0 to 100." +#: js/utils/musicutils.js:1159 +#: js/utils/synthutils.js:196 +#.TRANS: animal sound effect +msgid "cat" msgstr "" -#: js/WidgetBlocks.js:102 -msgid "Sustain value should be from 0 to 100." +#: js/utils/musicutils.js:1160 +#: js/utils/synthutils.js:198 +#.TRANS: animal sound effect +msgid "cricket" msgstr "" -#: js/WidgetBlocks.js:105 -msgid "Release value should be from 0-100." +#: js/utils/musicutils.js:1161 +#: js/utils/synthutils.js:200 +#.TRANS: animal sound effect +msgid "dog" msgstr "" -#: js/WidgetBlocks.js:121 -msgid "You are adding multiple envelope blocks." +#: js/utils/musicutils.js:1163 +#: js/utils/synthutils.js:102 +#.TRANS: musical instrument +msgid "banjo" msgstr "" -#: js/WidgetBlocks.js:144 -#.TRANS: a filter removes some unwanted components from a signal -msgid "filter" +#: js/utils/musicutils.js:1164 +#: js/utils/synthutils.js:104 +#.TRANS: musical instrument +msgid "koto" msgstr "" -#: js/WidgetBlocks.js:149 -#: js/musicutils.js:706 -#: js/musicutils.js:1105 -#.TRANS: highpass filter -msgid "highpass" +#: js/utils/musicutils.js:1165 +#: js/utils/synthutils.js:106 +#.TRANS: musical instrument +msgid "dulcimer" msgstr "" -#: js/WidgetBlocks.js:152 -#: js/ToneBlocks.js:42 -#: js/timbre.js:1558 -#: js/timbre.js:1808 -#.TRANS: type of filter, e.g., lowpass, highpass, etc. -#.TRANS: there are different types (sine, triangle, square...) of oscillators. -msgid "type" +#: js/utils/musicutils.js:1166 +#: js/utils/synthutils.js:108 +#.TRANS: musical instrument +msgid "electric guitar" msgstr "" -#: js/WidgetBlocks.js:154 -#: js/timbre.js:1818 -#.TRANS: rolloff is the steepness of a change in frequency. -msgid "rolloff" +#: js/utils/musicutils.js:1167 +#: js/utils/synthutils.js:110 +#.TRANS: musical instrument +msgid "bassoon" msgstr "" -#: js/WidgetBlocks.js:155 -#: js/MediaBlocks.js:692 -#: js/temperament.js:382 -#: js/temperament.js:417 -#: js/temperament.js:477 -#: js/temperament.js:485 -#: js/temperament.js:1348 -#: js/timbre.js:1842 -msgid "frequency" +#: js/utils/musicutils.js:1168 +#: js/utils/synthutils.js:112 +#.TRANS: musical instrument +msgid "celeste" msgstr "" -#: js/WidgetBlocks.js:179 -#.TRANS: rolloff is the steepness of a change in frequency. -msgid "Rolloff value should be either -12, -24, -48, or -96 decibels/octave." +#: js/utils/musicutils.js:1170 +#: js/widgets/temperament.js:787 +#.TRANS: musical temperament +msgid "equal" msgstr "" -#: js/WidgetBlocks.js:211 -msgid "The Temperament tool is used to define custom tuning." +#: js/utils/musicutils.js:1172 +#.TRANS: musical temperament +msgid "Pythagorean" msgstr "" -#: js/WidgetBlocks.js:277 -#: js/sampler.js:329 -msgid "Upload a sample and adjust its pitch center." +#: js/utils/musicutils.js:1174 +#.TRANS: musical temperament +msgid "just intonation" msgstr "" -#: js/WidgetBlocks.js:284 -#.TRANS: the speed at music is should be played. -msgid "sampler" +#: js/utils/musicutils.js:1176 +#.TRANS: musical temperament +msgid "meantone" msgstr "" -#: js/WidgetBlocks.js:329 -#: js/WidgetBlocks.js:334 -#: js/IntervalsBlocks.js:928 -#: js/VolumeBlocks.js:411 -#: js/ToneBlocks.js:946 -#: js/VolumeActions.js:218 -#: js/musicutils.js:704 -#: js/musicutils.js:755 -#: js/musicutils.js:798 -#: js/musicutils.js:820 -#: js/musicutils.js:1136 -#: js/synthutils.js:118 -#: js/modewidget.js:919 -#.TRANS: customize voice -msgid "custom" +#: js/utils/musicutils.js:1193 +msgid "major 7th" msgstr "" -#: js/WidgetBlocks.js:432 -msgid "The Meter block opens a tool to select strong beats for the meter." +#: js/utils/musicutils.js:1194 +msgid "minor 7th" msgstr "" -#: js/WidgetBlocks.js:473 -msgid "The oscilloscope block opens a tool to visualize waveforms." +#: js/utils/musicutils.js:1195 +msgid "dominant 7th" msgstr "" -#: js/WidgetBlocks.js:478 -msgid "oscilloscope" +#: js/utils/musicutils.js:1196 +msgid "minor-major 7th" msgstr "" -#: js/WidgetBlocks.js:530 -msgid "The Custom mode block opens a tool to explore musical mode (the spacing of the notes in a scale)." +#: js/utils/musicutils.js:1197 +msgid "fully-diminished 7th" msgstr "" -#: js/WidgetBlocks.js:536 -#.TRANS: musical mode is the pattern of half-steps in an octave, e.g., Major or Minor modes -msgid "custom mode" +#: js/utils/musicutils.js:1198 +msgid "half-diminished 7th" msgstr "" -#: js/WidgetBlocks.js:570 -msgid "The Tempo block opens a metronome to visualize the beat." +#: js/utils/musicutils.js:1557 +#: js/utils/musicutils.js:1569 +msgid "Equal (12EDO)" msgstr "" -#: js/WidgetBlocks.js:617 -msgid "The Arpeggio Widget is used to compose chord sequences." +#: js/utils/musicutils.js:1558 +#: js/utils/musicutils.js:1570 +msgid "5-limit Just Intonation" msgstr "" -#: js/WidgetBlocks.js:623 -#: js/IntervalsBlocks.js:683 -msgid "arpeggio" +#: js/utils/musicutils.js:1559 +#: js/utils/musicutils.js:1571 +msgid "Pythagorean (3-limit JI)" msgstr "" -#: js/WidgetBlocks.js:677 -msgid "The Pitch drum matrix is used to map pitches to drum sounds." +#: js/utils/musicutils.js:1560 +#: js/utils/musicutils.js:1561 +#: js/utils/musicutils.js:1572 +#: js/utils/musicutils.js:1573 +msgid "Meantone" msgstr "" -#: js/WidgetBlocks.js:682 -#.TRANS: makes a mapping between pitches and drum sounds -msgid "pitch-drum mapper" +#: js/utils/musicutils.js:1574 +msgid "Custom" msgstr "" -#: js/WidgetBlocks.js:724 -msgid "You must have at least one pitch block and one drum block in the matrix." +#: js/utils/musicutils.js:5387 +#: js/utils/musicutils.js:5430 +msgid "current" msgstr "" -#: js/WidgetBlocks.js:746 -msgid "The Pitch slider tool to is used to generate pitches at selected frequencies." +#: js/utils/musicutils.js:5390 +#: js/utils/musicutils.js:5421 +msgid "next" msgstr "" -#: js/WidgetBlocks.js:751 -#.TRANS: widget to generate pitches using a slider -msgid "pitch slider" +#: js/utils/musicutils.js:5393 +#: js/utils/musicutils.js:5426 +msgid "previous" msgstr "" -#: js/WidgetBlocks.js:788 -msgid "chromatic keyboard" +#: js/utils/synthutils.js:120 +#.TRANS: simple monotone synthesizer +msgid "simple-2" msgstr "" -#: js/WidgetBlocks.js:815 -#: js/WidgetBlocks.js:874 -#.TRANS: widget to generate pitches using a slider -msgid "music keyboard" +#: js/utils/synthutils.js:122 +#.TRANS: simple monotone synthesizer +msgid "simple-3" msgstr "" -#: js/WidgetBlocks.js:859 -#: js/WidgetBlocks.js:866 -msgid "The Music keyboard block opens a piano keyboard that can be used to create notes." +#: js/utils/synthutils.js:124 +#.TRANS: simple monotone synthesizer +msgid "simple-4" msgstr "" -#: js/WidgetBlocks.js:910 -msgid "The Pitch staircase tool to is used to generate pitches from a given ratio." +#: js/utils/synthutils.js:162 +#.TRANS: musical instrument +msgid "taiko" msgstr "" -#: js/WidgetBlocks.js:917 -#.TRANS: generate a progressive sequence of pitches -msgid "pitch staircase" +#: js/blocks/ActionBlocks.js:58 +msgid "The Return block will return a value from an action." msgstr "" -#: js/WidgetBlocks.js:982 -msgid "The Rhythm Maker block opens a tool to create drum machines." +#: js/blocks/ActionBlocks.js:75 +msgid "return" msgstr "" -#: js/WidgetBlocks.js:1036 -msgid "G major scale" +#: js/blocks/ActionBlocks.js:128 +msgid "The Return to URL block will return a value to a webpage." msgstr "" -#: js/WidgetBlocks.js:1064 -msgid "C major scale" +#: js/blocks/ActionBlocks.js:145 +msgid "return to URL" msgstr "" -#: js/WidgetBlocks.js:1097 -msgid "The Phrase Maker block opens a tool to create musical phrases." +#: js/blocks/ActionBlocks.js:233 +#: js/blocks/ActionBlocks.js:290 +#: js/blocks/ActionBlocks.js:501 +#: js/blocks/ActionBlocks.js:688 +msgid "The Calculate block returns a value calculated by an action." msgstr "" -#: js/WidgetBlocks.js:1104 -#.TRANS: assigns pitch to a sequence of beats to generate a melody -msgid "phrase maker" +#: js/blocks/ActionBlocks.js:251 +#: js/blocks/ActionBlocks.js:517 +#: js/blocks/ActionBlocks.js:707 +msgid "calculate" msgstr "" -#: js/WidgetBlocks.js:1168 -msgid "You must have at least one pitch block and one rhythm block in the matrix." +#: js/blocks/ActionBlocks.js:376 +#: js/blocks/ActionBlocks.js:593 +#: js/blocks/ActionBlocks.js:942 +#: js/blocks/ActionBlocks.js:1389 +#.TRANS: do is the do something or take an action. +msgid "The Do block is used to initiate an action." msgstr "" -#: js/WidgetBlocks.js:1220 -msgid "The Status block opens a tool for inspecting the status of Music Blocks as it is running." +#: js/blocks/ActionBlocks.js:390 +#: js/blocks/ActionBlocks.js:610 +#: js/blocks/ActionBlocks.js:959 +#: js/blocks/ActionBlocks.js:1048 +#: js/blocks/MeterBlocks.js:769 +msgid "do1" msgstr "" -#: js/IntervalsBlocks.js:45 -msgid "set temperament" +#: js/blocks/ActionBlocks.js:390 +#: js/blocks/ActionBlocks.js:610 +#: js/blocks/ActionBlocks.js:959 +#: js/blocks/ActionBlocks.js:1048 +#: js/blocks/FlowBlocks.js:742 +#: js/blocks/FlowBlocks.js:822 +#: js/blocks/MeterBlocks.js:769 +msgid "do" msgstr "" -#: js/IntervalsBlocks.js:63 -#: js/MediaBlocks.js:746 -#: js/PitchBlocks.js:657 -#: js/PitchBlocks.js:933 -#: js/PitchBlocks.js:972 -#: js/PitchBlocks.js:1005 -#: js/PitchBlocks.js:1166 -#: js/PitchBlocks.js:1679 -#: js/PitchBlocks.js:1720 -#: js/PitchBlocks.js:1827 -#: js/ToneBlocks.js:1025 -#.TRANS: adjusts the shift up or down by one octave (twelve half-steps in the interval between two notes, one having twice or half the frequency in Hz of the other.) -msgid "octave" +#: js/blocks/ActionBlocks.js:791 +#: js/blocks/ActionBlocks.js:865 +msgid "The Arg block contains the value of an argument passed to an action." msgstr "" -#: js/IntervalsBlocks.js:99 -msgid "The Temperament name block is used to select a tuning method." +#: js/blocks/ActionBlocks.js:806 +#: js/blocks/ActionBlocks.js:878 +msgid "arg" msgstr "" -#: js/IntervalsBlocks.js:161 -msgid "doubly" +#: js/blocks/ActionBlocks.js:836 +#: js/blocks/ActionBlocks.js:900 +#: js/blocks/ActionBlocks.js:908 +msgid "Invalid argument" msgstr "" -#: js/IntervalsBlocks.js:166 -msgid "The Doubly block will double the size of an interval." +#: js/blocks/ActionBlocks.js:944 +msgid "In the example, it is used with the One of block to choose a random phase." msgstr "" -#: js/IntervalsBlocks.js:262 -msgid "interval number" +#: js/blocks/ActionBlocks.js:1019 +#: js/blocks/ActionBlocks.js:1026 +msgid "The Listen block is used to listen for an event such as a mouse click." msgstr "" -#: js/IntervalsBlocks.js:330 -#.TRANS: measure the distance between two pitches in semi-tones -msgid "semi-tone interval measure" +#: js/blocks/ActionBlocks.js:1028 +msgid "When the event happens, an action is taken." msgstr "" -#: js/IntervalsBlocks.js:397 -#: js/IntervalsBlocks.js:513 -msgid "You must use two pitch blocks when measuring an interval." +#: js/blocks/ActionBlocks.js:1045 +msgid "on" msgstr "" -#: js/IntervalsBlocks.js:439 -msgid "The Scalar interval block measures the distance between two notes in the current key and mode." +#: js/blocks/ActionBlocks.js:1048 +#: js/blocks/ActionBlocks.js:1049 +#: js/blocks/ActionBlocks.js:1153 +msgid "event" msgstr "" -#: js/IntervalsBlocks.js:445 -#.TRANS: measure the distance between two pitches in steps of musical scale -msgid "scalar interval measure" +#: js/blocks/ActionBlocks.js:1133 +msgid "The Broadcast block is used to trigger an event." msgstr "" -#: js/IntervalsBlocks.js:592 -#: js/musicutils.js:637 -#: js/musicutils.js:908 -#.TRANS: perfect is a music term related to intervals -msgid "perfect" +#: js/blocks/ActionBlocks.js:1151 +msgid "broadcast" msgstr "" -#: js/IntervalsBlocks.js:621 -msgid "In the figure, we add sol# to sol." +#: js/blocks/ActionBlocks.js:1208 +msgid "Each Start block is a separate voice." msgstr "" -#: js/IntervalsBlocks.js:627 -#: js/OrnamentBlocks.js:220 -#.TRANS: calculate a relative step between notes based on semi-tones -msgid "semi-tone interval" +#: js/blocks/ActionBlocks.js:1304 +msgid "It is often used for storing a phrase of music that is repeated." msgstr "" -#: js/IntervalsBlocks.js:676 -msgid "The output of the example is: do, mi, sol, sol, ti, mi" +#: js/blocks/ActionBlocks.js:1495 +msgid "define temperament" msgstr "" -#: js/IntervalsBlocks.js:735 -msgid "The Chord block calculates common chords." +#: js/blocks/BooleanBlocks.js:44 +msgid "The Not block is the logical not operator." msgstr "" -#: js/IntervalsBlocks.js:737 -msgid "In the figure, we generate a C-major chord." -msgstr "" +#: js/blocks/BooleanBlocks.js:62 +msgid "not" +msgstr "ikke" -#: js/IntervalsBlocks.js:742 -msgid "chord" +#: js/blocks/BooleanBlocks.js:134 +msgid "The And block is the logical and operator." msgstr "" -#: js/IntervalsBlocks.js:794 -msgid "The Ratio Interval block calculates an interval based on a ratio." -msgstr "" +#: js/blocks/BooleanBlocks.js:152 +msgid "and" +msgstr "og" -#: js/IntervalsBlocks.js:799 -msgid "ratio interval" +#: js/blocks/BooleanBlocks.js:218 +msgid "The Or block is the logical or operator." msgstr "" -#: js/IntervalsBlocks.js:868 -msgid "In the figure, we add la to sol." -msgstr "" +#: js/blocks/BooleanBlocks.js:236 +msgid "or" +msgstr "eller" -#: js/IntervalsBlocks.js:924 -#.TRANS: define a custom mode -msgid "define mode" +#: js/blocks/BooleanBlocks.js:302 +msgid "The XOR block is the logical XOR operator." msgstr "" -#: js/IntervalsBlocks.js:977 -msgid "movable Do" +#: js/blocks/BooleanBlocks.js:320 +msgid "xor" msgstr "" -#: js/IntervalsBlocks.js:1028 -#.TRANS: mode length is the number of notes in the mode, e.g., 7 for major and minor scales; 12 for chromatic scales -msgid "mode length" +#: js/blocks/BooleanBlocks.js:808 +msgid "The Equal block returns True if the two numbers are equal." msgstr "" -#: js/IntervalsBlocks.js:1037 -msgid "The Mode length block is the number of notes in the current scale." +#: js/blocks/BooleanBlocks.js:909 +msgid "The Not-equal-to block returns True if the two numbers are not equal to each other." msgstr "" -#: js/IntervalsBlocks.js:1039 -msgid "Most Western scales have 7 notes." +#: js/blocks/BooleanBlocks.js:1008 +msgid "The Boolean block is used to specify true or false." msgstr "" -#: js/IntervalsBlocks.js:1088 -#.TRANS: the mode in music is 'major', 'minor', etc. -msgid "current mode" +#: js/blocks/BoxesBlocks.js:53 +#: js/blocks/BoxesBlocks.js:59 +msgid "The Add-to block is used to add to the value stored in a box." msgstr "" -#: js/IntervalsBlocks.js:1141 -#.TRANS: the key is a group of pitches with which a music composition is created -msgid "current key" +#: js/blocks/BoxesBlocks.js:61 +msgid "It can also be used with other blocks such as Color and Pen size." msgstr "" -#: js/IntervalsBlocks.js:1193 -#: js/IntervalsBlocks.js:1238 -#.TRANS: set the key and mode, e.g. C Major -msgid "set key" +#: js/blocks/BoxesBlocks.js:73 +msgid "add" msgstr "" -#: js/IntervalsBlocks.js:1247 -#: js/IntervalsBlocks.js:1253 -msgid "The Set key block is used to set the key and mode," +#: js/blocks/BoxesBlocks.js:75 +#: js/widgets/temperament.js:857 +msgid "to" msgstr "" -#: js/IntervalsBlocks.js:1253 -msgid "eg C Major" +#: js/blocks/BoxesBlocks.js:75 +#: js/blocks/BoxesBlocks.js:595 +#: js/blocks/HeapBlocks.js:544 +msgid "value1" msgstr "" -#: js/IntervalsBlocks.js:1266 -#: js/DictBlocks.js:215 -#: js/DictBlocks.js:216 -#: js/DictBlocks.js:289 -#: js/DictBlocks.js:290 -#: js/DictBlocks.js:357 -#: js/DictBlocks.js:430 -#: js/DictBlocks.js:431 -#.TRANS: key, e.g., C in C Major -msgid "key" +#: js/blocks/BoxesBlocks.js:118 +msgid "Block does not support incrementing." msgstr "" -#: js/ActionBlocks.js:58 -msgid "The Return block will return a value from an action." +#: js/blocks/BoxesBlocks.js:152 +msgid "The Add-1-to block adds one to the value stored in a box." msgstr "" -#: js/ActionBlocks.js:75 -msgid "return" +#: js/blocks/BoxesBlocks.js:163 +msgid "add 1 to" msgstr "" -#: js/ActionBlocks.js:128 -msgid "The Return to URL block will return a value to a webpage." +#: js/blocks/BoxesBlocks.js:211 +msgid "The Subtract-1-from block subtracts one from the value stored in a box." msgstr "" -#: js/ActionBlocks.js:145 -msgid "return to URL" +#: js/blocks/BoxesBlocks.js:222 +msgid "subtract 1 from" msgstr "" -#: js/ActionBlocks.js:233 -#: js/ActionBlocks.js:290 -#: js/ActionBlocks.js:501 -#: js/ActionBlocks.js:688 -msgid "The Calculate block returns a value calculated by an action." +#: js/blocks/BoxesBlocks.js:270 +#: js/blocks/BoxesBlocks.js:387 +msgid "The Box block returns the value stored in a box." msgstr "" -#: js/ActionBlocks.js:251 -#: js/ActionBlocks.js:517 -#: js/ActionBlocks.js:707 -msgid "calculate" +#: js/blocks/BoxesBlocks.js:500 +#: js/blocks/BoxesBlocks.js:576 +msgid "The Store in block will store a value in a box." msgstr "" -#: js/ActionBlocks.js:376 -#: js/ActionBlocks.js:593 -#: js/ActionBlocks.js:942 -#: js/ActionBlocks.js:1389 -#.TRANS: do is the do something or take an action. -msgid "The Do block is used to initiate an action." +#: js/blocks/BoxesBlocks.js:595 +#: js/blocks/EnsembleBlocks.js:391 +#: js/blocks/EnsembleBlocks.js:402 +msgid "name1" msgstr "" -#: js/ActionBlocks.js:390 -#: js/ActionBlocks.js:610 -#: js/ActionBlocks.js:959 -#: js/ActionBlocks.js:1048 -#: js/MeterBlocks.js:769 -msgid "do1" +#: js/blocks/BoxesBlocks.js:652 +msgid "The Box2 block returns the value stored in Box2." msgstr "" -#: js/ActionBlocks.js:390 -#: js/ActionBlocks.js:610 -#: js/ActionBlocks.js:959 -#: js/ActionBlocks.js:1048 -#: js/FlowBlocks.js:742 -#: js/FlowBlocks.js:822 -#: js/MeterBlocks.js:769 -msgid "do" +#: js/blocks/BoxesBlocks.js:703 +msgid "The Store in Box2 block is used to store a value in Box2." msgstr "" -#: js/ActionBlocks.js:791 -#: js/ActionBlocks.js:865 -msgid "The Arg block contains the value of an argument passed to an action." +#: js/blocks/BoxesBlocks.js:715 +msgid "store in box2" msgstr "" -#: js/ActionBlocks.js:806 -#: js/ActionBlocks.js:878 -msgid "arg" +#: js/blocks/BoxesBlocks.js:761 +msgid "The Box1 block returns the value stored in Box1." msgstr "" -#: js/ActionBlocks.js:836 -#: js/ActionBlocks.js:900 -#: js/ActionBlocks.js:908 -msgid "Invalid argument" +#: js/blocks/BoxesBlocks.js:812 +msgid "The Store in Box1 block is used to store a value in Box1." msgstr "" -#: js/ActionBlocks.js:944 -msgid "In the example, it is used with the One of block to choose a random phase." +#: js/blocks/BoxesBlocks.js:826 +msgid "store in box1" msgstr "" -#: js/ActionBlocks.js:1019 -#: js/ActionBlocks.js:1026 -msgid "The Listen block is used to listen for an event such as a mouse click." +#: js/blocks/DictBlocks.js:77 +msgid "show dictionary" msgstr "" -#: js/ActionBlocks.js:1028 -msgid "When the event happens, an action is taken." +#: js/blocks/DictBlocks.js:80 +#: js/blocks/DictBlocks.js:145 +#: js/blocks/DictBlocks.js:216 +#: js/blocks/DictBlocks.js:290 +#: js/blocks/ProgramBlocks.js:396 +#: js/blocks/ProgramBlocks.js:501 +#: js/blocks/ProgramBlocks.js:664 +msgid "My Dictionary" msgstr "" -#: js/ActionBlocks.js:1045 -msgid "on" +#: js/blocks/DictBlocks.js:129 +msgid "The Dictionary block returns a dictionary." msgstr "" -#: js/ActionBlocks.js:1048 -#: js/ActionBlocks.js:1049 -#: js/ActionBlocks.js:1153 -msgid "event" +#: js/blocks/DictBlocks.js:197 +#: js/blocks/DictBlocks.js:339 +msgid "The Get-dict block returns a value in the dictionary for a specified key." msgstr "" -#: js/ActionBlocks.js:1133 -msgid "The Broadcast block is used to trigger an event." +#: js/blocks/DictBlocks.js:212 +#: js/blocks/DictBlocks.js:354 +#.TRANS: retrieve a value from the dictionary with a given key +msgid "get value" msgstr "" -#: js/ActionBlocks.js:1151 -msgid "broadcast" +#: js/blocks/DictBlocks.js:215 +#: js/blocks/DictBlocks.js:216 +#: js/blocks/DictBlocks.js:289 +#: js/blocks/DictBlocks.js:290 +#: js/blocks/DictBlocks.js:357 +#: js/blocks/DictBlocks.js:430 +#: js/blocks/DictBlocks.js:431 +msgid "key2" msgstr "" -#: js/ActionBlocks.js:1208 -msgid "Each Start block is a separate voice." +#: js/blocks/DictBlocks.js:215 +#: js/blocks/DictBlocks.js:216 +#: js/blocks/DictBlocks.js:289 +#: js/blocks/DictBlocks.js:290 +#: js/blocks/DictBlocks.js:357 +#: js/blocks/DictBlocks.js:430 +#: js/blocks/DictBlocks.js:431 +#: js/blocks/IntervalsBlocks.js:1462 +#.TRANS: key, e.g., C in C Major +msgid "key" msgstr "" -#: js/ActionBlocks.js:1304 -msgid "It is often used for storing a phrase of music that is repeated." +#: js/blocks/DictBlocks.js:271 +#: js/blocks/DictBlocks.js:411 +msgid "The Set-dict block sets a value in the dictionary for a specified key." msgstr "" -#: js/ActionBlocks.js:1495 -msgid "define temperament" +#: js/blocks/DictBlocks.js:286 +#: js/blocks/DictBlocks.js:427 +#.TRANS: set a value in the dictionary for a given key +msgid "set value" msgstr "" -#: js/EnsembleBlocks.js:66 +#: js/blocks/EnsembleBlocks.js:66 msgid "mouse index heap" msgstr "" -#: js/EnsembleBlocks.js:68 +#: js/blocks/EnsembleBlocks.js:68 msgid "The Mouse index heap block returns a value in the heap at a specified location for a specified mouse." msgstr "" -#: js/EnsembleBlocks.js:77 -#: js/EnsembleBlocks.js:1080 +#: js/blocks/EnsembleBlocks.js:77 +#: js/blocks/EnsembleBlocks.js:1080 msgid "mouse name" msgstr "" -#: js/EnsembleBlocks.js:77 -#: js/EnsembleBlocks.js:92 -#: js/HeapBlocks.js:544 +#: js/blocks/EnsembleBlocks.js:77 +#: js/blocks/EnsembleBlocks.js:92 +#: js/blocks/HeapBlocks.js:544 #.TRANS: value1 is a numeric value (JAPANESE ONLY) msgid "index" msgstr "" -#: js/EnsembleBlocks.js:80 +#: js/blocks/EnsembleBlocks.js:80 msgid "turtle index heap" msgstr "" -#: js/EnsembleBlocks.js:82 +#: js/blocks/EnsembleBlocks.js:82 msgid "The Turtle index heap block returns a value in the heap at a specified location for a specified turtle." msgstr "" -#: js/EnsembleBlocks.js:90 -#: js/EnsembleBlocks.js:167 -#: js/EnsembleBlocks.js:230 -#: js/EnsembleBlocks.js:316 -#: js/EnsembleBlocks.js:362 -#: js/EnsembleBlocks.js:400 -#: js/EnsembleBlocks.js:454 -#: js/EnsembleBlocks.js:504 -#: js/EnsembleBlocks.js:550 -#: js/EnsembleBlocks.js:597 -#: js/EnsembleBlocks.js:651 -#: js/EnsembleBlocks.js:763 -#: js/EnsembleBlocks.js:854 -#: js/EnsembleBlocks.js:915 -#: js/EnsembleBlocks.js:955 -#: js/EnsembleBlocks.js:1219 -#: js/EnsembleBlocks.js:1293 +#: js/blocks/EnsembleBlocks.js:90 +#: js/blocks/EnsembleBlocks.js:167 +#: js/blocks/EnsembleBlocks.js:230 +#: js/blocks/EnsembleBlocks.js:316 +#: js/blocks/EnsembleBlocks.js:362 +#: js/blocks/EnsembleBlocks.js:400 +#: js/blocks/EnsembleBlocks.js:454 +#: js/blocks/EnsembleBlocks.js:504 +#: js/blocks/EnsembleBlocks.js:550 +#: js/blocks/EnsembleBlocks.js:597 +#: js/blocks/EnsembleBlocks.js:651 +#: js/blocks/EnsembleBlocks.js:763 +#: js/blocks/EnsembleBlocks.js:854 +#: js/blocks/EnsembleBlocks.js:915 +#: js/blocks/EnsembleBlocks.js:955 +#: js/blocks/EnsembleBlocks.js:1219 +#: js/blocks/EnsembleBlocks.js:1293 #.TRANS: Yertle is the name of a turtle. msgid "Yertle" msgstr "" -#: js/EnsembleBlocks.js:92 -#: js/EnsembleBlocks.js:1089 +#: js/blocks/EnsembleBlocks.js:92 +#: js/blocks/EnsembleBlocks.js:1089 msgid "turtle name" msgstr "" -#: js/EnsembleBlocks.js:122 -#: js/EnsembleBlocks.js:1197 -#: js/HeapBlocks.js:474 -#: js/HeapBlocks.js:572 +#: js/blocks/EnsembleBlocks.js:122 +#: js/blocks/EnsembleBlocks.js:1197 +#: js/blocks/HeapBlocks.js:474 +#: js/blocks/HeapBlocks.js:572 msgid "Index must be > 0." msgstr "" -#: js/EnsembleBlocks.js:127 -#: js/HeapBlocks.js:479 -#: js/HeapBlocks.js:577 +#: js/blocks/EnsembleBlocks.js:127 +#: js/blocks/HeapBlocks.js:479 +#: js/blocks/HeapBlocks.js:577 msgid "Maximum heap size is 1000." msgstr "" -#: js/EnsembleBlocks.js:145 +#: js/blocks/EnsembleBlocks.js:145 msgid "stop mouse" msgstr "" -#: js/EnsembleBlocks.js:147 +#: js/blocks/EnsembleBlocks.js:147 msgid "The Stop mouse block stops the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:158 +#: js/blocks/EnsembleBlocks.js:158 msgid "stop turtle" msgstr "" -#: js/EnsembleBlocks.js:160 +#: js/blocks/EnsembleBlocks.js:160 msgid "The Stop turtle block stops the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:184 -#: js/EnsembleBlocks.js:247 -#: js/EnsembleBlocks.js:413 -#: js/EnsembleBlocks.js:468 -#: js/EnsembleBlocks.js:706 -#: js/EnsembleBlocks.js:808 -#: js/EnsembleBlocks.js:870 -#: js/EnsembleBlocks.js:1190 -#: js/EnsembleBlocks.js:1253 +#: js/blocks/EnsembleBlocks.js:184 +#: js/blocks/EnsembleBlocks.js:247 +#: js/blocks/EnsembleBlocks.js:413 +#: js/blocks/EnsembleBlocks.js:468 +#: js/blocks/EnsembleBlocks.js:706 +#: js/blocks/EnsembleBlocks.js:808 +#: js/blocks/EnsembleBlocks.js:870 +#: js/blocks/EnsembleBlocks.js:1190 +#: js/blocks/EnsembleBlocks.js:1253 msgid "Cannot find mouse" msgstr "" -#: js/EnsembleBlocks.js:186 -#: js/EnsembleBlocks.js:249 -#: js/EnsembleBlocks.js:415 -#: js/EnsembleBlocks.js:470 -#: js/EnsembleBlocks.js:708 -#: js/EnsembleBlocks.js:810 -#: js/EnsembleBlocks.js:872 -#: js/EnsembleBlocks.js:1192 -#: js/EnsembleBlocks.js:1255 +#: js/blocks/EnsembleBlocks.js:186 +#: js/blocks/EnsembleBlocks.js:249 +#: js/blocks/EnsembleBlocks.js:415 +#: js/blocks/EnsembleBlocks.js:470 +#: js/blocks/EnsembleBlocks.js:708 +#: js/blocks/EnsembleBlocks.js:810 +#: js/blocks/EnsembleBlocks.js:872 +#: js/blocks/EnsembleBlocks.js:1192 +#: js/blocks/EnsembleBlocks.js:1255 msgid "Cannot find turtle" msgstr "" -#: js/EnsembleBlocks.js:206 +#: js/blocks/EnsembleBlocks.js:206 msgid "start mouse" msgstr "" -#: js/EnsembleBlocks.js:209 +#: js/blocks/EnsembleBlocks.js:209 msgid "The Start mouse block starts the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:220 +#: js/blocks/EnsembleBlocks.js:220 msgid "start turtle" msgstr "" -#: js/EnsembleBlocks.js:223 +#: js/blocks/EnsembleBlocks.js:223 msgid "The Start turtle block starts the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:256 +#: js/blocks/EnsembleBlocks.js:256 msgid "Mouse is already running." msgstr "" -#: js/EnsembleBlocks.js:258 +#: js/blocks/EnsembleBlocks.js:258 msgid "Turtle is already running." msgstr "" -#: js/EnsembleBlocks.js:282 +#: js/blocks/EnsembleBlocks.js:282 msgid "Cannot find start block" msgstr "" -#: js/EnsembleBlocks.js:292 +#: js/blocks/EnsembleBlocks.js:292 #.TRANS: pen color for this mouse msgid "mouse color" msgstr "" -#: js/EnsembleBlocks.js:294 +#: js/blocks/EnsembleBlocks.js:294 msgid "The Mouse color block returns the pen color of the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:306 +#: js/blocks/EnsembleBlocks.js:306 #.TRANS: pen color for this turtle msgid "turtle color" msgstr "" -#: js/EnsembleBlocks.js:308 +#: js/blocks/EnsembleBlocks.js:308 msgid "The Turtle color block returns the pen color of the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:338 +#: js/blocks/EnsembleBlocks.js:338 #.TRANS: heading (compass direction) for this mouse msgid "mouse heading" msgstr "" -#: js/EnsembleBlocks.js:340 +#: js/blocks/EnsembleBlocks.js:340 msgid "The Mouse heading block returns the heading of the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:352 +#: js/blocks/EnsembleBlocks.js:352 #.TRANS: heading (compass direction) for this turtle msgid "turtle heading" msgstr "" -#: js/EnsembleBlocks.js:354 +#: js/blocks/EnsembleBlocks.js:354 msgid "The Turtle heading block returns the heading of the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:384 -#: js/EnsembleBlocks.js:439 +#: js/blocks/EnsembleBlocks.js:384 +#: js/blocks/EnsembleBlocks.js:439 #.TRANS: set xy position for this mouse msgid "set mouse" msgstr "" -#: js/EnsembleBlocks.js:391 -#: js/EnsembleBlocks.js:402 -#: js/BoxesBlocks.js:595 -msgid "name1" -msgstr "" - -#: js/EnsembleBlocks.js:391 -#: js/EnsembleBlocks.js:402 -#: js/ProgramBlocks.js:881 -#: js/GraphicsBlocks.js:235 -#: js/GraphicsBlocks.js:313 -#: js/GraphicsBlocks.js:436 -#: js/GraphicsBlocks.js:487 -#: js/GraphicsBlocks.js:534 -#: js/GraphicsBlocks.js:750 +#: js/blocks/EnsembleBlocks.js:391 +#: js/blocks/EnsembleBlocks.js:402 +#: js/blocks/GraphicsBlocks.js:235 +#: js/blocks/GraphicsBlocks.js:313 +#: js/blocks/GraphicsBlocks.js:436 +#: js/blocks/GraphicsBlocks.js:487 +#: js/blocks/GraphicsBlocks.js:534 +#: js/blocks/GraphicsBlocks.js:750 +#: js/blocks/ProgramBlocks.js:881 msgid "x" msgstr "x" -#: js/EnsembleBlocks.js:391 -#: js/EnsembleBlocks.js:402 -#: js/ProgramBlocks.js:881 -#: js/GraphicsBlocks.js:149 -#: js/GraphicsBlocks.js:313 -#: js/GraphicsBlocks.js:436 -#: js/GraphicsBlocks.js:487 -#: js/GraphicsBlocks.js:534 -#: js/GraphicsBlocks.js:750 +#: js/blocks/EnsembleBlocks.js:391 +#: js/blocks/EnsembleBlocks.js:402 +#: js/blocks/GraphicsBlocks.js:149 +#: js/blocks/GraphicsBlocks.js:313 +#: js/blocks/GraphicsBlocks.js:436 +#: js/blocks/GraphicsBlocks.js:487 +#: js/blocks/GraphicsBlocks.js:534 +#: js/blocks/GraphicsBlocks.js:750 +#: js/blocks/ProgramBlocks.js:881 msgid "y" msgstr "y" -#: js/EnsembleBlocks.js:395 -#: js/EnsembleBlocks.js:452 +#: js/blocks/EnsembleBlocks.js:395 +#: js/blocks/EnsembleBlocks.js:452 #.TRANS: set xy position for this turtle msgid "set turtle" msgstr "" -#: js/EnsembleBlocks.js:433 +#: js/blocks/EnsembleBlocks.js:433 msgid "The Set mouse block sends a stack of blocks to be run by the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:446 +#: js/blocks/EnsembleBlocks.js:446 msgid "The Set turtle block sends a stack of blocks to be run by the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:480 +#: js/blocks/EnsembleBlocks.js:480 #.TRANS: y position for this mouse msgid "mouse y" msgstr "mus y" -#: js/EnsembleBlocks.js:482 +#: js/blocks/EnsembleBlocks.js:482 msgid "The Y mouse block returns the Y position of the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:494 +#: js/blocks/EnsembleBlocks.js:494 #.TRANS: y position for this turtle msgid "turtle y" msgstr "skildpadde y" -#: js/EnsembleBlocks.js:496 +#: js/blocks/EnsembleBlocks.js:496 msgid "The Y turtle block returns the Y position of the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:526 +#: js/blocks/EnsembleBlocks.js:526 #.TRANS: x position for this mouse msgid "mouse x" msgstr "mus x" -#: js/EnsembleBlocks.js:528 +#: js/blocks/EnsembleBlocks.js:528 msgid "The X mouse block returns the X position of the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:540 +#: js/blocks/EnsembleBlocks.js:540 #.TRANS: x position for this turtle msgid "turtle x" msgstr "skildpadde x" -#: js/EnsembleBlocks.js:542 +#: js/blocks/EnsembleBlocks.js:542 msgid "The X turtle block returns the X position of the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:573 +#: js/blocks/EnsembleBlocks.js:573 #.TRANS: notes played by this mouse msgid "mouse notes played" msgstr "" -#: js/EnsembleBlocks.js:575 +#: js/blocks/EnsembleBlocks.js:575 msgid "The Mouse elapse notes block returns the number of notes played by the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:587 +#: js/blocks/EnsembleBlocks.js:587 #.TRANS: notes played by this turtle msgid "turtle notes played" msgstr "" -#: js/EnsembleBlocks.js:589 +#: js/blocks/EnsembleBlocks.js:589 msgid "The Turtle elapse notes block returns the number of notes played by the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:627 +#: js/blocks/EnsembleBlocks.js:627 #.TRANS: convert current note for this turtle to piano key (1-88) msgid "mouse pitch number" msgstr "" -#: js/EnsembleBlocks.js:629 +#: js/blocks/EnsembleBlocks.js:629 msgid "The Mouse pitch block returns the current pitch number being played by the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:641 +#: js/blocks/EnsembleBlocks.js:641 #.TRANS: convert current note for this turtle to piano key (1-88) msgid "turtle pitch number" msgstr "" -#: js/EnsembleBlocks.js:643 -msgid "The Turrle pitch block returns the current pitch number being played by the specified turtle." +#: js/blocks/EnsembleBlocks.js:643 +msgid "The Turtle pitch block returns the current pitch number being played by the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:747 -#: js/EnsembleBlocks.js:819 +#: js/blocks/EnsembleBlocks.js:747 +#: js/blocks/EnsembleBlocks.js:819 #.TRANS: note value is the duration of the note played by this mouse msgid "mouse note value" msgstr "" -#: js/EnsembleBlocks.js:757 +#: js/blocks/EnsembleBlocks.js:757 #.TRANS: note value is the duration of the note played by this turtle msgid "turtle note value" msgstr "" -#: js/EnsembleBlocks.js:830 +#: js/blocks/EnsembleBlocks.js:830 #.TRANS: sync is short for synchronization msgid "mouse sync" msgstr "" -#: js/EnsembleBlocks.js:832 +#: js/blocks/EnsembleBlocks.js:832 msgid "The Mouse sync block aligns the beat count between mice." msgstr "" -#: js/EnsembleBlocks.js:844 +#: js/blocks/EnsembleBlocks.js:844 #.TRANS: sync is short for synchronization msgid "turtle sync" msgstr "" -#: js/EnsembleBlocks.js:846 +#: js/blocks/EnsembleBlocks.js:846 msgid "The Turtle sync block aligns the beat count between turtles." msgstr "" -#: js/EnsembleBlocks.js:887 +#: js/blocks/EnsembleBlocks.js:887 msgid "The Found mouse block will return true if the specified mouse can be found." msgstr "" -#: js/EnsembleBlocks.js:893 +#: js/blocks/EnsembleBlocks.js:893 msgid "found mouse" msgstr "" -#: js/EnsembleBlocks.js:903 +#: js/blocks/EnsembleBlocks.js:903 msgid "The Found turtle block will return true if the specified turtle can be found." msgstr "" -#: js/EnsembleBlocks.js:909 +#: js/blocks/EnsembleBlocks.js:909 msgid "found turtle" msgstr "" -#: js/EnsembleBlocks.js:932 +#: js/blocks/EnsembleBlocks.js:932 msgid "new mouse" msgstr "" -#: js/EnsembleBlocks.js:934 +#: js/blocks/EnsembleBlocks.js:934 msgid "The New mouse block will create a new mouse." msgstr "" -#: js/EnsembleBlocks.js:945 +#: js/blocks/EnsembleBlocks.js:945 msgid "new turtle" msgstr "" -#: js/EnsembleBlocks.js:947 +#: js/blocks/EnsembleBlocks.js:947 msgid "The New turtle block will create a new turtle." msgstr "" -#: js/EnsembleBlocks.js:1011 +#: js/blocks/EnsembleBlocks.js:1011 msgid "set mouse color" msgstr "" -#: js/EnsembleBlocks.js:1014 +#: js/blocks/EnsembleBlocks.js:1014 msgid "The Set-mouse-color block is used to set the color of a mouse." msgstr "" -#: js/EnsembleBlocks.js:1020 +#: js/blocks/EnsembleBlocks.js:1020 msgid "set turtle color" msgstr "" -#: js/EnsembleBlocks.js:1023 +#: js/blocks/EnsembleBlocks.js:1023 msgid "The Set-turtle-color block is used to set the color of a turtle." msgstr "" -#: js/EnsembleBlocks.js:1083 +#: js/blocks/EnsembleBlocks.js:1083 msgid "The Mouse-name block returns the name of a mouse." msgstr "" -#: js/EnsembleBlocks.js:1092 +#: js/blocks/EnsembleBlocks.js:1092 msgid "The Turtle-name block returns the name of a turtle." msgstr "" -#: js/EnsembleBlocks.js:1115 +#: js/blocks/EnsembleBlocks.js:1115 msgid "mouse count" msgstr "" -#: js/EnsembleBlocks.js:1118 +#: js/blocks/EnsembleBlocks.js:1118 msgid "The Mouse-count block returns the number of mice." msgstr "" -#: js/EnsembleBlocks.js:1124 +#: js/blocks/EnsembleBlocks.js:1124 msgid "turtle count" msgstr "" -#: js/EnsembleBlocks.js:1127 +#: js/blocks/EnsembleBlocks.js:1127 msgid "The Turtle-count block returns the number of turtles." msgstr "" -#: js/EnsembleBlocks.js:1149 +#: js/blocks/EnsembleBlocks.js:1149 msgid "nth mouse name" msgstr "" -#: js/EnsembleBlocks.js:1152 +#: js/blocks/EnsembleBlocks.js:1152 msgid "The Nth-Mouse name block returns the name of the nth mouse." msgstr "" -#: js/EnsembleBlocks.js:1158 +#: js/blocks/EnsembleBlocks.js:1158 msgid "nth turtle name" msgstr "" -#: js/EnsembleBlocks.js:1161 -msgid "The Nth-Turtle name block returns the name of the nth turtle." -msgstr "" - -#: js/EnsembleBlocks.js:1205 -#: js/EnsembleBlocks.js:1265 -msgid "set name" -msgstr "" - -#: js/EnsembleBlocks.js:1214 -#: js/EnsembleBlocks.js:1221 -msgid "source" -msgstr "" - -#: js/EnsembleBlocks.js:1214 -#: js/EnsembleBlocks.js:1221 -msgid "target" -msgstr "" - -#: js/EnsembleBlocks.js:1271 -msgid "The Set-name block is used to name a mouse." -msgstr "" - -#: js/EnsembleBlocks.js:1284 -msgid "The Set-name block is used to name a turtle." -msgstr "" - -#: js/BooleanBlocks.js:44 -msgid "The Not block is the logical not operator." -msgstr "" - -#: js/BooleanBlocks.js:62 -msgid "not" -msgstr "ikke" - -#: js/BooleanBlocks.js:134 -msgid "The And block is the logical and operator." -msgstr "" - -#: js/BooleanBlocks.js:152 -msgid "and" -msgstr "og" - -#: js/BooleanBlocks.js:218 -msgid "The Or block is the logical or operator." -msgstr "" - -#: js/BooleanBlocks.js:236 -msgid "or" -msgstr "eller" - -#: js/BooleanBlocks.js:302 -msgid "The XOR block is the logical XOR operator." -msgstr "" - -#: js/BooleanBlocks.js:320 -msgid "xor" -msgstr "" - -#: js/BooleanBlocks.js:808 -msgid "The Equal block returns True if the two numbers are equal." -msgstr "" - -#: js/BooleanBlocks.js:909 -msgid "The Not-equal-to block returns True if the two numbers are not equal to each other." -msgstr "" - -#: js/BooleanBlocks.js:1008 -msgid "The Boolean block is used to specify true or false." -msgstr "" - -#: js/MediaBlocks.js:35 -#.TRANS: right side of the screen -msgid "right (screen)" -msgstr "" - -#: js/MediaBlocks.js:45 -#: js/MediaBlocks.js:56 -msgid "The Right block returns the position of the right of the canvas." +#: js/blocks/EnsembleBlocks.js:1161 +msgid "The Nth-Turtle name block returns the name of the nth turtle." msgstr "" -#: js/MediaBlocks.js:97 -#.TRANS: left side of the screen -msgid "left (screen)" +#: js/blocks/EnsembleBlocks.js:1205 +#: js/blocks/EnsembleBlocks.js:1265 +msgid "set name" msgstr "" -#: js/MediaBlocks.js:107 -#: js/MediaBlocks.js:118 -msgid "The Left block returns the position of the left of the canvas." +#: js/blocks/EnsembleBlocks.js:1214 +#: js/blocks/EnsembleBlocks.js:1221 +msgid "source" msgstr "" -#: js/MediaBlocks.js:158 -msgid "top (screen)" +#: js/blocks/EnsembleBlocks.js:1214 +#: js/blocks/EnsembleBlocks.js:1221 +msgid "target" msgstr "" -#: js/MediaBlocks.js:168 -#: js/MediaBlocks.js:179 -msgid "The Top block returns the position of the top of the canvas." +#: js/blocks/EnsembleBlocks.js:1271 +msgid "The Set-name block is used to name a mouse." msgstr "" -#: js/MediaBlocks.js:219 -msgid "bottom (screen)" +#: js/blocks/EnsembleBlocks.js:1284 +msgid "The Set-name block is used to name a turtle." msgstr "" -#: js/MediaBlocks.js:229 -#: js/MediaBlocks.js:240 -msgid "The Bottom block returns the position of the bottom of the canvas." +#: js/blocks/ExtrasBlocks.js:33 +msgid "fraction" msgstr "" -#: js/MediaBlocks.js:282 -msgid "width" +#: js/blocks/ExtrasBlocks.js:36 +msgid "Convert a float to a fraction" msgstr "" -#: js/MediaBlocks.js:291 -msgid "The Width block returns the width of the canvas." +#: js/blocks/ExtrasBlocks.js:93 +msgid "save as ABC" msgstr "" -#: js/MediaBlocks.js:325 -msgid "height" +#: js/blocks/ExtrasBlocks.js:96 +#: js/blocks/ExtrasBlocks.js:132 +#: js/blocks/ExtrasBlocks.js:168 +msgid "title" msgstr "" -#: js/MediaBlocks.js:334 -msgid "The Height block returns the height of the canvas." +#: js/blocks/ExtrasBlocks.js:129 +msgid "save as Lilypond" msgstr "" -#: js/MediaBlocks.js:369 -#.TRANS: stops playback of an audio recording -msgid "stop play" +#: js/blocks/ExtrasBlocks.js:165 +msgid "save as SVG" msgstr "" -#: js/MediaBlocks.js:404 -#.TRANS: Erases the images and text -msgid "erase media" +#: js/blocks/ExtrasBlocks.js:216 +msgid "no background" msgstr "" -#: js/MediaBlocks.js:409 -msgid "The Erase Media block erases text and images." +#: js/blocks/ExtrasBlocks.js:219 +msgid "The No background block eliminates the background from the saved SVG output." msgstr "" -#: js/MediaBlocks.js:439 -#.TRANS: play an audio recording -msgid "play back" +#: js/blocks/ExtrasBlocks.js:247 +msgid "show blocks" +msgstr "vis blokke" + +#: js/blocks/ExtrasBlocks.js:249 +msgid "The Show blocks block shows the blocks." msgstr "" -#: js/MediaBlocks.js:487 -msgid "speak" -msgstr "tal" +#: js/blocks/ExtrasBlocks.js:274 +msgid "hide blocks" +msgstr "skjul blokke" -#: js/MediaBlocks.js:495 -msgid "The Speak block outputs to the text-to-speech synthesizer" +#: js/blocks/ExtrasBlocks.js:276 +msgid "The Hide blocks block hides the blocks." msgstr "" -#: js/MediaBlocks.js:546 -msgid "camera" +#: js/blocks/ExtrasBlocks.js:305 +#: js/blocks/ExtrasBlocks.js:338 +msgid "The Space block is used to add space between blocks." msgstr "" -#: js/MediaBlocks.js:551 -msgid "The Camera block connects a webcam to the Show block." -msgstr "" +#: js/blocks/ExtrasBlocks.js:376 +msgid "wait" +msgstr "vent" -#: js/MediaBlocks.js:574 -msgid "video" +#: js/blocks/ExtrasBlocks.js:379 +msgid "The Wait block pauses the program for a specified number of seconds." msgstr "" -#: js/MediaBlocks.js:579 -msgid "The Video block selects video for use with the Show block." -msgstr "" +#: js/blocks/ExtrasBlocks.js:433 +#: plugins/facebook.rtp:30 +msgid "comment" +msgstr "kommentar" -#: js/MediaBlocks.js:607 -msgid "The Open file block opens a file for use with the Show block." -msgstr "" +#: js/blocks/ExtrasBlocks.js:469 +msgid "print" +msgstr "udskriv" -#: js/MediaBlocks.js:645 -msgid "stop media" +#: js/blocks/ExtrasBlocks.js:476 +msgid "The Print block displays text at the top of the screen." msgstr "" -#: js/MediaBlocks.js:650 -msgid "The Stop media block stops audio or video playback." +#: js/blocks/ExtrasBlocks.js:582 +msgid "display grid" msgstr "" -#: js/MediaBlocks.js:679 -#: js/PitchBlocks.js:1539 -#: js/phrasemaker.js:822 -#: js/musickeyboard.js:1654 -#.TRANS: a measure of frequency: one cycle per second -msgid "hertz" +#: js/blocks/ExtrasBlocks.js:587 +msgid "The Display Grid Block changes the grid type" msgstr "" -#: js/MediaBlocks.js:692 -msgid "duration (ms)" +#: js/blocks/ExtrasBlocks.js:689 +#: js/blocks/ExtrasBlocks.js:708 +#: js/blocks/ExtrasBlocks.js:731 +#: js/blocks/ExtrasBlocks.js:754 +#: js/blocks/ExtrasBlocks.js:772 +#: js/blocks/ExtrasBlocks.js:791 +#: js/blocks/ExtrasBlocks.js:810 +#: js/blocks/ExtrasBlocks.js:829 +msgid "unknown" msgstr "" -#: js/MediaBlocks.js:728 -#.TRANS: translate a note into hertz, e.g., A4 -> 440HZ -msgid "note to frequency" +#: js/blocks/FlowBlocks.js:41 +msgid "The Backward block runs code in reverse order (Musical retrograde)." msgstr "" -#: js/MediaBlocks.js:736 -msgid "The To frequency block converts a pitch name and octave to Hertz." +#: js/blocks/FlowBlocks.js:48 +msgid "backward" msgstr "" -#: js/MediaBlocks.js:746 -#: js/PitchBlocks.js:656 -#: js/PitchBlocks.js:932 -#: js/PitchBlocks.js:1827 -#.TRANS: name2 is name as in name of pitch (JAPANESE ONLY) -msgid "name2" +#: js/blocks/FlowBlocks.js:124 +msgid "The Duplicate block will run each block multiple times." msgstr "" -#: js/MediaBlocks.js:812 -msgid "The Avatar block is used to change the appearance of the mouse." +#: js/blocks/FlowBlocks.js:136 +msgid "duplicate" msgstr "" -#: js/MediaBlocks.js:819 -msgid "The Avatar block is used to change the appearance of the turtle." +#: js/blocks/FlowBlocks.js:334 +msgid "The Default block is used inside of a Switch to define the default action." msgstr "" -#: js/MediaBlocks.js:831 -#: js/MediaBlocks.js:891 -#.TRANS: a media object -msgid "size" +#: js/blocks/FlowBlocks.js:342 +msgid "default" msgstr "" -#: js/MediaBlocks.js:831 -msgid "image" -msgstr "billede" - -#: js/MediaBlocks.js:880 -msgid "The Show block is used to display text or images on the canvas." +#: js/blocks/FlowBlocks.js:361 +#: js/blocks/FlowBlocks.js:418 +msgid "The Case Block must be used inside of a Switch Block." msgstr "" -#: js/MediaBlocks.js:888 -#.TRANS: show1 is show as in display an image or text on the screen. -msgid "show1" +#: js/blocks/FlowBlocks.js:389 +msgid "The Case block is used inside of a Switch to define matches." msgstr "" -#: js/MediaBlocks.js:891 -msgid "obj" +#: js/blocks/FlowBlocks.js:397 +msgid "case" msgstr "" -#: js/MediaBlocks.js:938 -msgid "The Media block is used to import an image." +#: js/blocks/FlowBlocks.js:446 +msgid "The Switch block will run the code in the matching Case." msgstr "" -#: js/MediaBlocks.js:973 -msgid "The Text block holds a text string." +#: js/blocks/FlowBlocks.js:454 +msgid "switch" msgstr "" -#: js/ProgramBlocks.js:33 -msgid "The Load-heap-from-app block loads the heap from a web page." +#: js/blocks/FlowBlocks.js:595 +msgid "The Stop block will stop a loop" msgstr "" -#: js/ProgramBlocks.js:44 -#.TRANS: load the heap contents from a URL -msgid "load heap from App" +#: js/blocks/FlowBlocks.js:597 +msgid "Forever, Repeat, While, or Until." msgstr "" -#: js/ProgramBlocks.js:95 -msgid "Error parsing JSON data:" -msgstr "" +#: js/blocks/FlowBlocks.js:604 +#: js/widgets/timbre.js:417 +#: js/widgets/timbre.js:419 +#: js/widgets/musickeyboard.js:819 +#: js/widgets/musickeyboard.js:821 +#: js/widgets/phrasemaker.js:4202 +#: plugins/rodi.rtp:29 +#: plugins/rodi.rtp:73 +#: plugins/rodi.rtp:413 +msgid "stop" +msgstr "stop" -#: js/ProgramBlocks.js:100 -msgid "404: Page not found" +#: js/blocks/FlowBlocks.js:653 +msgid "The Waitfor block will wait until the condition is true." msgstr "" -#: js/ProgramBlocks.js:133 -msgid "The Save-heap-to-app block saves the heap to a web page." +#: js/blocks/FlowBlocks.js:661 +msgid "wait for" msgstr "" -#: js/ProgramBlocks.js:144 -#.TRANS: save the heap contents to a URL -msgid "save heap to App" +#: js/blocks/FlowBlocks.js:732 +msgid "The Until block will repeat until the condition is true." msgstr "" -#: js/ProgramBlocks.js:189 -msgid "Cannot find a valid heap for" -msgstr "" +#: js/blocks/FlowBlocks.js:740 +msgid "until" +msgstr "indtil" -#: js/ProgramBlocks.js:206 -msgid "The Load-heap block loads the heap from a file." +#: js/blocks/FlowBlocks.js:742 +#: js/blocks/FlowBlocks.js:822 +msgid "do2" msgstr "" -#: js/ProgramBlocks.js:217 -#.TRANS: load the heap from a file -msgid "load heap" +#: js/blocks/FlowBlocks.js:812 +msgid "The While block will repeat while the condition is true." msgstr "" -#: js/ProgramBlocks.js:270 -msgid "The file you selected does not contain a valid heap." -msgstr "" +#: js/blocks/FlowBlocks.js:820 +msgid "while" +msgstr "mens" -#: js/ProgramBlocks.js:275 -msgid "The loadHeap block needs a loadFile block." +#: js/blocks/FlowBlocks.js:903 +#: js/blocks/FlowBlocks.js:968 +#: js/blocks/FlowBlocks.js:979 +msgid "In this example if the mouse button is pressed a snare drum will play." msgstr "" -#: js/ProgramBlocks.js:291 -msgid "The Set-heap block loads the heap." -msgstr "" +#: js/blocks/FlowBlocks.js:925 +#: js/blocks/FlowBlocks.js:988 +msgid "if" +msgstr "hvis" -#: js/ProgramBlocks.js:299 -#: js/HeapBlocks.js:539 -#.TRANS: load the heap from a JSON encoding -msgid "set heap" -msgstr "" +#: js/blocks/FlowBlocks.js:927 +#: js/blocks/FlowBlocks.js:990 +msgid "then" +msgstr "så" -#: js/ProgramBlocks.js:340 -msgid "The block you selected does not contain a valid heap." -msgstr "" +#: js/blocks/FlowBlocks.js:927 +msgid "else" +msgstr "ellers" -#: js/ProgramBlocks.js:343 -msgid "The Set heap block needs a heap." +#: js/blocks/FlowBlocks.js:1025 +msgid "The Forever block will repeat the contained blocks forever." msgstr "" -#: js/ProgramBlocks.js:360 -msgid "The Load-dictionary block loads a dictionary from a file." -msgstr "" +#: js/blocks/FlowBlocks.js:1037 +msgid "forever" +msgstr "for evigt" -#: js/ProgramBlocks.js:372 -#.TRANS: load a dictionary from a file -msgid "load dictionary" +#: js/blocks/FlowBlocks.js:1073 +msgid "The Repeat block will repeat the contained blocks." msgstr "" -#: js/ProgramBlocks.js:390 -#: js/ProgramBlocks.js:658 -#: js/ToneBlocks.js:1025 -msgid "file" +#: js/blocks/FlowBlocks.js:1075 +msgid "In this example the note will be played 4 times." msgstr "" -#: js/ProgramBlocks.js:396 -#: js/ProgramBlocks.js:501 -#: js/ProgramBlocks.js:664 -#: js/DictBlocks.js:80 -#: js/DictBlocks.js:145 -#: js/DictBlocks.js:216 -#: js/DictBlocks.js:290 -msgid "My Dictionary" -msgstr "" +#: js/blocks/FlowBlocks.js:1083 +msgid "repeat" +msgstr "gentag" -#: js/ProgramBlocks.js:444 -msgid "The file you selected does not contain a valid dictionary." +#: js/blocks/FlowBlocks.js:1123 +msgid "duplicate factor" msgstr "" -#: js/ProgramBlocks.js:449 -msgid "The load dictionary block needs a load file block." +#: js/blocks/HeapBlocks.js:49 +msgid "The Heap block returns the heap." msgstr "" -#: js/ProgramBlocks.js:466 -msgid "The Set-dictionary block loads a dictionary." -msgstr "" +#: js/blocks/HeapBlocks.js:133 +msgid "show heap" +msgstr "vis hób" -#: js/ProgramBlocks.js:477 -#.TRANS: load a dictionary from a JSON -msgid "set dictionary" +#: js/blocks/HeapBlocks.js:181 +msgid "The Heap-length block returns the length of the heap." msgstr "" -#: js/ProgramBlocks.js:546 -msgid "The block you selected does not contain a valid dictionary." +#: js/blocks/HeapBlocks.js:195 +msgid "heap length" msgstr "" -#: js/ProgramBlocks.js:550 -msgid "The set dictionary block needs a dictionary." +#: js/blocks/HeapBlocks.js:254 +msgid "The Heap-empty? block returns true if the heap is empty." msgstr "" -#: js/ProgramBlocks.js:567 -msgid "The Save-heap block saves the heap to a file." +#: js/blocks/HeapBlocks.js:268 +#.TRANS: Is the heap empty? +msgid "heap empty?" msgstr "" -#: js/ProgramBlocks.js:578 -#.TRANS: save the heap to a file -msgid "save heap" +#: js/blocks/HeapBlocks.js:317 +msgid "The Empty-heap block empties the heap." msgstr "" -#: js/ProgramBlocks.js:629 -msgid "The Save-dictionary block saves a dictionary to a file." +#: js/blocks/HeapBlocks.js:327 +#: js/blocks/HeapBlocks.js:647 +#.TRANS: empty the heap +msgid "empty heap" +msgstr "tom hób" + +#: js/blocks/HeapBlocks.js:371 +msgid "The Reverse-heap block reverses the order of the heap." msgstr "" -#: js/ProgramBlocks.js:640 -#.TRANS: save a dictionary to a file -msgid "save dictionary" +#: js/blocks/HeapBlocks.js:384 +#.TRANS: reverse the order of the heap +msgid "reverse heap" msgstr "" -#: js/ProgramBlocks.js:720 -msgid "The Open palette block opens a palette." +#: js/blocks/HeapBlocks.js:428 +msgid "The Index-heap block returns a value in the heap at a specified location." msgstr "" -#: js/ProgramBlocks.js:727 -msgid "open palette" +#: js/blocks/HeapBlocks.js:443 +#.TRANS: retrieve a value from the heap at index position in the heap +msgid "index heap" msgstr "" -#: js/ProgramBlocks.js:785 -msgid "The Delete block block removes a block." +#: js/blocks/HeapBlocks.js:523 +msgid "The Set-heap entry block sets a value in he heap at the specified location." msgstr "" -#: js/ProgramBlocks.js:797 -#.TRANS: Move this block to the trash. -msgid "delete block" +#: js/blocks/HeapBlocks.js:539 +#: js/blocks/ProgramBlocks.js:299 +#.TRANS: load the heap from a JSON encoding +msgid "set heap" msgstr "" -#: js/ProgramBlocks.js:861 -msgid "The Move block block moves a block." +#: js/blocks/HeapBlocks.js:619 +msgid "The Pop block removes the value at the top of the heap." msgstr "" -#: js/ProgramBlocks.js:869 -#.TRANS: Move the position of a block on the screen. -msgid "move block" +#: js/blocks/HeapBlocks.js:633 +#.TRANS: pop a value off the top of the heap +msgid "pop" +msgstr "pop" + +#: js/blocks/HeapBlocks.js:680 +msgid "The Push block adds a value to the top of the heap." msgstr "" -#: js/ProgramBlocks.js:881 -#: js/ProgramBlocks.js:1048 -msgid "block number" +#: js/blocks/HeapBlocks.js:696 +#.TRANS: push a value onto the top of the heap +msgid "push" +msgstr "skub" + +#: js/blocks/IntervalsBlocks.js:45 +msgid "set temperament" msgstr "" -#: js/ProgramBlocks.js:935 -#.TRANS: Run program beginning at this block. -msgid "run block" +#: js/blocks/IntervalsBlocks.js:63 +#: js/blocks/MediaBlocks.js:746 +#: js/blocks/PitchBlocks.js:657 +#: js/blocks/PitchBlocks.js:935 +#: js/blocks/PitchBlocks.js:974 +#: js/blocks/PitchBlocks.js:1007 +#: js/blocks/PitchBlocks.js:1194 +#: js/blocks/PitchBlocks.js:1717 +#: js/blocks/PitchBlocks.js:1758 +#: js/blocks/PitchBlocks.js:1866 +#: js/blocks/ToneBlocks.js:1025 +#: js/turtleactions/IntervalsActions.js:114 +#.TRANS: adjusts the shift up or down by one octave (twelve half-steps in the interval between two notes, one having twice or half the frequency in Hz of the other.) +msgid "octave" msgstr "" -#: js/ProgramBlocks.js:1025 -msgid "The Dock block block connections two blocks." +#: js/blocks/IntervalsBlocks.js:99 +msgid "The Temperament name block is used to select a tuning method." msgstr "" -#: js/ProgramBlocks.js:1036 -#.TRANS: We can connect a block to another block. -msgid "connect blocks" +#: js/blocks/IntervalsBlocks.js:161 +msgid "doubly" msgstr "" -#: js/ProgramBlocks.js:1048 -msgid "target block" +#: js/blocks/IntervalsBlocks.js:166 +msgid "The Doubly block will double the size of an interval." msgstr "" -#: js/ProgramBlocks.js:1048 -msgid "connection number" +#: js/blocks/IntervalsBlocks.js:262 +msgid "interval number" msgstr "" -#: js/ProgramBlocks.js:1140 -msgid "The Make block block creates a new block." +#: js/blocks/IntervalsBlocks.js:317 +msgid "current interval" msgstr "" -#: js/ProgramBlocks.js:1152 -#.TRANS: Create a new block -msgid "make block" +#: js/blocks/IntervalsBlocks.js:387 +#.TRANS: measure the distance between two pitches in semi-tones +msgid "semi-tone interval measure" msgstr "" -#: js/ProgramBlocks.js:1186 -#: js/ProgramBlocks.js:1227 -#: js/RhythmBlocks.js:1128 -#: js/PitchBlocks.js:972 -#: js/PitchBlocks.js:1005 -#: js/temperament.js:340 -#: js/temperament.js:362 -#: js/temperament.js:372 -#: js/temperament.js:484 -#: js/status.js:190 -#: plugins/rodi.rtp:192 -#.TRANS: a musical note consisting of pitch and duration -msgid "note" +#: js/blocks/IntervalsBlocks.js:454 +#: js/blocks/IntervalsBlocks.js:570 +msgid "You must use two pitch blocks when measuring an interval." msgstr "" -#: js/ProgramBlocks.js:1285 -msgid "Cannot find block" +#: js/blocks/IntervalsBlocks.js:496 +msgid "The Scalar interval block measures the distance between two notes in the current key and mode." msgstr "" -#: js/ProgramBlocks.js:1304 -#: js/ProgramBlocks.js:1313 -msgid "Warning: block argument type mismatch" +#: js/blocks/IntervalsBlocks.js:502 +#.TRANS: measure the distance between two pitches in steps of musical scale +msgid "scalar interval measure" msgstr "" -#: js/ProgramBlocks.js:1347 -msgid "The Open project block is used to open a project from a web page." +#: js/blocks/IntervalsBlocks.js:678 +msgid "In the figure, we add sol# to sol." msgstr "" -#: js/ProgramBlocks.js:1357 -msgid "open project" +#: js/blocks/IntervalsBlocks.js:684 +#: js/blocks/OrnamentBlocks.js:220 +#.TRANS: calculate a relative step between notes based on semi-tones +msgid "semi-tone interval" msgstr "" -#: js/ProgramBlocks.js:1410 -msgid "Please enter a valid URL." +#: js/blocks/IntervalsBlocks.js:733 +msgid "The output of the example is: do, mi, sol, sol, ti, mi" msgstr "" -#: js/DrumBlocks.js:59 -msgid "The Noise name block is used to select a noise synthesizer." +#: js/blocks/IntervalsBlocks.js:740 +#: js/blocks/WidgetBlocks.js:768 +msgid "arpeggio" msgstr "" -#: js/DrumBlocks.js:102 -msgid "The Drum name block is used to select a drum." +#: js/blocks/IntervalsBlocks.js:931 +msgid "The Chord block calculates common chords." msgstr "" -#: js/DrumBlocks.js:146 -msgid "The Effects name block is used to select a sound effect." +#: js/blocks/IntervalsBlocks.js:933 +msgid "In the figure, we generate a C-major chord." msgstr "" -#: js/DrumBlocks.js:163 -msgid "noise" +#: js/blocks/IntervalsBlocks.js:938 +msgid "chord" msgstr "" -#: js/DrumBlocks.js:177 -msgid "The Play noise block will generate white, pink, or brown noise." +#: js/blocks/IntervalsBlocks.js:990 +msgid "The Ratio Interval block calculates an interval based on a ratio." msgstr "" -#: js/DrumBlocks.js:191 -#: js/musicutils.js:752 -#: js/synthutils.js:47 -#.TRANS: white noise synthesizer -msgid "white noise" +#: js/blocks/IntervalsBlocks.js:995 +msgid "ratio interval" msgstr "" -#: js/DrumBlocks.js:326 -msgid "Replace every instance of a pitch with a drum sound." +#: js/blocks/IntervalsBlocks.js:1064 +msgid "In the figure, we add la to sol." msgstr "" -#: js/DrumBlocks.js:337 -#.TRANS: map a pitch to a drum sound -msgid "map pitch to drum" +#: js/blocks/IntervalsBlocks.js:1120 +#.TRANS: define a custom mode +msgid "define mode" msgstr "" -#: js/DrumBlocks.js:404 -msgid "In the example above, a kick drum sound will be played instead of sol." +#: js/blocks/IntervalsBlocks.js:1173 +msgid "movable Do" msgstr "" -#: js/DrumBlocks.js:416 -#.TRANS: set the current drum sound for playback -msgid "set drum" +#: js/blocks/IntervalsBlocks.js:1224 +#.TRANS: mode length is the number of notes in the mode, e.g., 7 for major and minor scales; 12 for chromatic scales +msgid "mode length" msgstr "" -#: js/DrumBlocks.js:460 -msgid "sound effect" +#: js/blocks/IntervalsBlocks.js:1233 +msgid "The Mode length block is the number of notes in the current scale." msgstr "" -#: js/DrumBlocks.js:498 -msgid "You can use multiple Drum blocks within a Note block." +#: js/blocks/IntervalsBlocks.js:1235 +msgid "Most Western scales have 7 notes." msgstr "" -#: js/RhythmBlocks.js:182 -#: js/RhythmBlocks.js:1086 -#: js/RhythmBlocks.js:1162 -msgid "Note value must be greater than 0." +#: js/blocks/IntervalsBlocks.js:1284 +#.TRANS: the mode in music is 'major', 'minor', etc. +msgid "current mode" msgstr "" -#: js/RhythmBlocks.js:215 -#: js/RhythmBlocks.js:278 -#: js/RhythmBlocks.js:350 -#.TRANS: swing is a rhythmic variation that emphasises the offbeat -msgid "swing" +#: js/blocks/IntervalsBlocks.js:1337 +#.TRANS: the key is a group of pitches with which a music composition is created +msgid "current key" msgstr "" -#: js/RhythmBlocks.js:355 -#.TRANS: the amount to shift to the offbeat note -msgid "swing value" +#: js/blocks/IntervalsBlocks.js:1389 +#: js/blocks/IntervalsBlocks.js:1434 +#.TRANS: set the key and mode, e.g. C Major +msgid "set key" msgstr "" -#: js/RhythmBlocks.js:419 -msgid "The Skip notes block will cause notes to be skipped." +#: js/blocks/IntervalsBlocks.js:1443 +#: js/blocks/IntervalsBlocks.js:1449 +msgid "The Set key block is used to set the key and mode," msgstr "" -#: js/RhythmBlocks.js:427 -#.TRANS: substitute rests on notes being skipped -msgid "skip notes" +#: js/blocks/IntervalsBlocks.js:1449 +msgid "eg C Major" msgstr "" -#: js/RhythmBlocks.js:489 -#.TRANS: speed up note duration by some factor, e.g. convert 1/4 to 1/8 notes by using a factor of 2 -msgid "multiply note value" +#: js/blocks/MediaBlocks.js:35 +#.TRANS: right side of the screen +msgid "right (screen)" msgstr "" -#: js/RhythmBlocks.js:542 -msgid "The Tie block works on pairs of notes, combining them into one note." +#: js/blocks/MediaBlocks.js:45 +#: js/blocks/MediaBlocks.js:56 +msgid "The Right block returns the position of the right of the canvas." msgstr "" -#: js/RhythmBlocks.js:550 -#.TRANS: tie notes together into one longer note -msgid "tie" +#: js/blocks/MediaBlocks.js:97 +#.TRANS: left side of the screen +msgid "left (screen)" msgstr "" -#: js/RhythmBlocks.js:591 -#: js/RhythmBlocks.js:671 -#.TRANS: a dotted note is played for 1.5x its value, e.g., 1/8. --> 3/16 -msgid "dot" +#: js/blocks/MediaBlocks.js:107 +#: js/blocks/MediaBlocks.js:118 +msgid "The Left block returns the position of the left of the canvas." msgstr "" -#: js/RhythmBlocks.js:619 -#: js/RhythmActions.js:221 -msgid "An argument of -1 results in a note value of 0." +#: js/blocks/MediaBlocks.js:158 +msgid "top (screen)" msgstr "" -#: js/RhythmBlocks.js:661 -msgid "The Dot block extends the duration of a note by 50%." +#: js/blocks/MediaBlocks.js:168 +#: js/blocks/MediaBlocks.js:179 +msgid "The Top block returns the position of the top of the canvas." msgstr "" -#: js/RhythmBlocks.js:663 -msgid "Eg a dotted quarter note will play for 3/8 (1/4 + 1/8) of a beat." +#: js/blocks/MediaBlocks.js:219 +msgid "bottom (screen)" msgstr "" -#: js/RhythmBlocks.js:765 -#.TRANS: Japanese only: note value block for drum -msgid "note value drum" +#: js/blocks/MediaBlocks.js:229 +#: js/blocks/MediaBlocks.js:240 +msgid "The Bottom block returns the position of the bottom of the canvas." msgstr "" -#: js/RhythmBlocks.js:829 -msgid "392 hertz" +#: js/blocks/MediaBlocks.js:282 +msgid "width" msgstr "" -#: js/RhythmBlocks.js:1119 -msgid "The Note block is a container for one or more Pitch blocks." +#: js/blocks/MediaBlocks.js:291 +msgid "The Width block returns the width of the canvas." msgstr "" -#: js/RhythmBlocks.js:1121 -msgid "The Note block specifies the duration (note value) of its contents." +#: js/blocks/MediaBlocks.js:325 +msgid "height" msgstr "" -#: js/RhythmBlocks.js:1130 -msgid "value2" +#: js/blocks/MediaBlocks.js:334 +msgid "The Height block returns the height of the canvas." msgstr "" -#: js/RhythmBlocks.js:1200 -msgid "define frequency" +#: js/blocks/MediaBlocks.js:369 +#.TRANS: stops playback of an audio recording +msgid "stop play" msgstr "" -#: js/RhythmBlocks.js:1218 -#: js/temperament.js:650 -#: js/temperament.js:1421 -msgid "octave space" +#: js/blocks/MediaBlocks.js:404 +#.TRANS: Erases the images and text +msgid "erase media" msgstr "" -#: js/NumberBlocks.js:28 -msgid "The Int block returns an integer." +#: js/blocks/MediaBlocks.js:409 +msgid "The Erase Media block erases text and images." msgstr "" -#: js/NumberBlocks.js:34 -msgid "int" +#: js/blocks/MediaBlocks.js:439 +#.TRANS: play an audio recording +msgid "play back" msgstr "" -#: js/NumberBlocks.js:73 -msgid "The Mod block returns the remainder from a division." -msgstr "" +#: js/blocks/MediaBlocks.js:487 +msgid "speak" +msgstr "tal" -#: js/NumberBlocks.js:79 -msgid "mod" -msgstr "mod" +#: js/blocks/MediaBlocks.js:495 +msgid "The Speak block outputs to the text-to-speech synthesizer" +msgstr "" -#: js/NumberBlocks.js:123 -msgid "The Power block calculates a power function." +#: js/blocks/MediaBlocks.js:546 +msgid "camera" msgstr "" -#: js/NumberBlocks.js:178 -msgid "The Sqrt block returns the square root." +#: js/blocks/MediaBlocks.js:551 +msgid "The Camera block connects a webcam to the Show block." msgstr "" -#: js/NumberBlocks.js:184 -msgid "sqrt" +#: js/blocks/MediaBlocks.js:574 +msgid "video" msgstr "" -#: js/NumberBlocks.js:230 -msgid "The Abs block returns the absolute value." +#: js/blocks/MediaBlocks.js:579 +msgid "The Video block selects video for use with the Show block." msgstr "" -#: js/NumberBlocks.js:236 -msgid "abs" +#: js/blocks/MediaBlocks.js:607 +msgid "The Open file block opens a file for use with the Show block." msgstr "" -#: js/NumberBlocks.js:277 -msgid "The Distance block returns the distance between two points. For example, between the mouse and the center of the screen." +#: js/blocks/MediaBlocks.js:645 +msgid "stop media" msgstr "" -#: js/NumberBlocks.js:283 -#: plugins/rodi.rtp:310 -msgid "distance" +#: js/blocks/MediaBlocks.js:650 +msgid "The Stop media block stops audio or video playback." msgstr "" -#: js/NumberBlocks.js:343 -msgid "The Divide block is used to divide." +#: js/blocks/MediaBlocks.js:679 +#: js/blocks/PitchBlocks.js:1577 +#: js/widgets/musickeyboard.js:1936 +#: js/widgets/phrasemaker.js:1037 +#.TRANS: a measure of frequency: one cycle per second +msgid "hertz" msgstr "" -#: js/NumberBlocks.js:411 -msgid "The Multiply block is used to multiply." +#: js/blocks/MediaBlocks.js:692 +#: js/blocks/WidgetBlocks.js:182 +#: js/widgets/temperament.js:506 +#: js/widgets/temperament.js:546 +#: js/widgets/temperament.js:610 +#: js/widgets/temperament.js:618 +#: js/widgets/temperament.js:1505 +#: js/widgets/timbre.js:1842 +msgid "frequency" msgstr "" -#: js/NumberBlocks.js:554 -msgid "The Minus block is used to subtract." +#: js/blocks/MediaBlocks.js:692 +msgid "duration (ms)" msgstr "" -#: js/NumberBlocks.js:647 -msgid "The Plus block is used to add." +#: js/blocks/MediaBlocks.js:728 +#.TRANS: translate a note into hertz, e.g., A4 -> 440HZ +msgid "note to frequency" msgstr "" -#: js/NumberBlocks.js:773 -msgid "The One-of block returns one of two choices." +#: js/blocks/MediaBlocks.js:736 +msgid "The To frequency block converts a pitch name and octave to Hertz." msgstr "" -#: js/NumberBlocks.js:780 -#: js/PitchBlocks.js:616 -msgid "one of" +#: js/blocks/MediaBlocks.js:746 +#: js/blocks/PitchBlocks.js:656 +#: js/blocks/PitchBlocks.js:934 +#: js/blocks/PitchBlocks.js:1866 +#.TRANS: name2 is name as in name of pitch (JAPANESE ONLY) +msgid "name2" msgstr "" -#: js/NumberBlocks.js:782 -msgid "this" +#: js/blocks/MediaBlocks.js:812 +msgid "The Avatar block is used to change the appearance of the mouse." msgstr "" -#: js/NumberBlocks.js:782 -msgid "that" +#: js/blocks/MediaBlocks.js:819 +msgid "The Avatar block is used to change the appearance of the turtle." msgstr "" -#: js/NumberBlocks.js:837 -msgid "The Random block returns a random number." +#: js/blocks/MediaBlocks.js:831 +#: js/blocks/MediaBlocks.js:891 +#.TRANS: a media object +msgid "size" msgstr "" -#: js/NumberBlocks.js:844 -msgid "random" -msgstr "tilfældig" +#: js/blocks/MediaBlocks.js:831 +msgid "image" +msgstr "billede" -#: js/NumberBlocks.js:846 -msgid "min" -msgstr "min" +#: js/blocks/MediaBlocks.js:880 +msgid "The Show block is used to display text or images on the canvas." +msgstr "" -#: js/NumberBlocks.js:846 -msgid "max" -msgstr "max" +#: js/blocks/MediaBlocks.js:888 +#.TRANS: show1 is show as in display an image or text on the screen. +msgid "show1" +msgstr "" -#: js/NumberBlocks.js:910 -msgid "The Number block holds a number." +#: js/blocks/MediaBlocks.js:891 +msgid "obj" msgstr "" -#: js/BoxesBlocks.js:53 -#: js/BoxesBlocks.js:59 -msgid "The Add-to block is used to add to the value stored in a box." +#: js/blocks/MediaBlocks.js:938 +msgid "The Media block is used to import an image." msgstr "" -#: js/BoxesBlocks.js:61 -msgid "It can also be used with other blocks such as Color and Pen size." +#: js/blocks/MediaBlocks.js:973 +msgid "The Text block holds a text string." msgstr "" -#: js/BoxesBlocks.js:73 -msgid "add" +#: js/blocks/MeterBlocks.js:34 +#.TRANS: musical meter (time signature), e.g., 4:4 +msgid "current meter" msgstr "" -#: js/BoxesBlocks.js:75 -#: js/temperament.js:716 -msgid "to" +#: js/blocks/MeterBlocks.js:85 +#.TRANS: number of beats per minute +msgid "beat factor" msgstr "" -#: js/BoxesBlocks.js:75 -#: js/BoxesBlocks.js:595 -#: js/HeapBlocks.js:544 -msgid "value1" +#: js/blocks/MeterBlocks.js:161 +msgid "The Beats per minute block returns the current beats per minute." msgstr "" -#: js/BoxesBlocks.js:118 -msgid "Block does not support incrementing." +#: js/blocks/MeterBlocks.js:169 +#: js/widgets/status.js:152 +#.TRANS: number of beats played per minute +msgid "beats per minute2" msgstr "" -#: js/BoxesBlocks.js:152 -msgid "The Add-1-to block adds one to the value stored in a box." +#: js/blocks/MeterBlocks.js:169 +#: js/blocks/MeterBlocks.js:1056 +#: js/blocks/MeterBlocks.js:1133 +#: js/blocks/MeterBlocks.js:1211 +#.TRANS: sets tempo by defining a beat and beats per minute +msgid "beats per minute" msgstr "" -#: js/BoxesBlocks.js:163 -msgid "add 1 to" +#: js/blocks/MeterBlocks.js:233 +#.TRANS: count of current musical measure in meter +msgid "measure count" msgstr "" -#: js/BoxesBlocks.js:211 -msgid "The Subtract-1-from block subtracts one from the value stored in a box." +#: js/blocks/MeterBlocks.js:241 +msgid "The Measure count block returns the current measure." msgstr "" -#: js/BoxesBlocks.js:222 -msgid "subtract 1 from" +#: js/blocks/MeterBlocks.js:290 +#.TRANS: count of current beat in the meter +msgid "beat count" msgstr "" -#: js/BoxesBlocks.js:270 -#: js/BoxesBlocks.js:387 -msgid "The Box block returns the value stored in a box." +#: js/blocks/MeterBlocks.js:300 +#: js/blocks/MeterBlocks.js:311 +#: js/blocks/MeterBlocks.js:565 +#: js/blocks/MeterBlocks.js:576 +msgid "The Beat count block is the number of the current beat," msgstr "" -#: js/BoxesBlocks.js:500 -#: js/BoxesBlocks.js:576 -msgid "The Store in block will store a value in a box." +#: js/blocks/MeterBlocks.js:313 +#: js/blocks/MeterBlocks.js:578 +msgid "eg 1, 2, 3, or 4." msgstr "" -#: js/BoxesBlocks.js:652 -msgid "The Box2 block returns the value stored in Box2." +#: js/blocks/MeterBlocks.js:368 +#.TRANS: count the number of notes +msgid "sum note values" msgstr "" -#: js/BoxesBlocks.js:703 -msgid "The Store in Box2 block is used to store a value in Box2." +#: js/blocks/MeterBlocks.js:376 +#: js/blocks/MeterBlocks.js:440 +msgid "The Note counter block can be used to count the number of contained notes." msgstr "" -#: js/BoxesBlocks.js:715 -msgid "store in box2" +#: js/blocks/MeterBlocks.js:432 +#.TRANS: count the number of notes +msgid "note counter" msgstr "" -#: js/BoxesBlocks.js:761 -msgid "The Box1 block returns the value stored in Box1." +#: js/blocks/MeterBlocks.js:496 +#.TRANS: number of whole notes that have been played +msgid "whole notes played" msgstr "" -#: js/BoxesBlocks.js:812 -msgid "The Store in Box1 block is used to store a value in Box1." +#: js/blocks/MeterBlocks.js:505 +msgid "The Whole notes played block returns the total number of whole notes played." msgstr "" -#: js/BoxesBlocks.js:826 -msgid "store in box1" +#: js/blocks/MeterBlocks.js:555 +#: js/turtleactions/DictActions.js:83 +#.TRANS: number of notes that have been played +msgid "notes played" msgstr "" -#: js/HeapBlocks.js:49 -msgid "The Heap block returns the heap." +#: js/blocks/MeterBlocks.js:653 +msgid "The No clock block decouples the notes from the master clock." msgstr "" -#: js/HeapBlocks.js:133 -msgid "show heap" -msgstr "vis hób" +#: js/blocks/MeterBlocks.js:661 +#.TRANS: don't lock notes to master clock +msgid "no clock" +msgstr "" -#: js/HeapBlocks.js:181 -msgid "The Heap-length block returns the length of the heap." +#: js/blocks/MeterBlocks.js:700 +msgid "on weak beat do" msgstr "" -#: js/HeapBlocks.js:195 -msgid "heap length" +#: js/blocks/MeterBlocks.js:705 +msgid "The On-weak-beat block lets you specify actions to take on weak (off) beats." msgstr "" -#: js/HeapBlocks.js:254 -msgid "The Heap-empty? block returns true if the heap is empty." +#: js/blocks/MeterBlocks.js:750 +msgid "on strong beat" msgstr "" -#: js/HeapBlocks.js:268 -#.TRANS: Is the heap empty? -msgid "heap empty?" +#: js/blocks/MeterBlocks.js:758 +msgid "The On-strong-beat block lets you specify actions to take on specified beats." msgstr "" -#: js/HeapBlocks.js:317 -msgid "The Empty-heap block empties the heap." +#: js/blocks/MeterBlocks.js:769 +msgid "beat" msgstr "" -#: js/HeapBlocks.js:327 -#: js/HeapBlocks.js:647 -#.TRANS: empty the heap -msgid "empty heap" -msgstr "tom hób" +#: js/blocks/MeterBlocks.js:813 +msgid "on every beat do" +msgstr "" -#: js/HeapBlocks.js:371 -msgid "The Reverse-heap block reverses the order of the heap." +#: js/blocks/MeterBlocks.js:821 +msgid "The On-every-beat block lets you specify actions to take on every beat." msgstr "" -#: js/HeapBlocks.js:384 -#.TRANS: reverse the order of the heap -msgid "reverse heap" +#: js/blocks/MeterBlocks.js:874 +msgid "on every note do" msgstr "" -#: js/HeapBlocks.js:428 -msgid "The Index-heap block returns a value in the heap at a specified location." +#: js/blocks/MeterBlocks.js:882 +msgid "The On-every-note block lets you specify actions to take on every note." msgstr "" -#: js/HeapBlocks.js:443 -#.TRANS: retrieve a value from the heap at index position in the heap -msgid "index heap" +#: js/blocks/MeterBlocks.js:928 +#: js/blocks/MeterBlocks.js:999 +#.TRANS: sets tempo by defining a beat and beats per minute +msgid "master beats per minute" msgstr "" -#: js/HeapBlocks.js:523 -msgid "The Set-heap entry block sets a value in he heap at the specified location." +#: js/blocks/MeterBlocks.js:952 +#: js/blocks/MeterBlocks.js:1078 +#: js/blocks/MeterBlocks.js:1135 +msgid "bpm" msgstr "" -#: js/HeapBlocks.js:619 -msgid "The Pop block removes the value at the top of the heap." +#: js/blocks/MeterBlocks.js:952 +#: js/blocks/MeterBlocks.js:1078 +#: js/blocks/MeterBlocks.js:1135 +msgid "beat value" msgstr "" -#: js/HeapBlocks.js:633 -#.TRANS: pop a value off the top of the heap -msgid "pop" -msgstr "pop" +#: js/blocks/MeterBlocks.js:1024 +#: js/blocks/MeterBlocks.js:1167 +#: js/blocks/MeterBlocks.js:1241 +msgid "Beats per minute must be > 30." +msgstr "" -#: js/HeapBlocks.js:680 -msgid "The Push block adds a value to the top of the heap." +#: js/blocks/MeterBlocks.js:1027 +#: js/blocks/MeterBlocks.js:1170 +#: js/blocks/MeterBlocks.js:1244 +msgid "Maximum beats per minute is 1000." msgstr "" -#: js/HeapBlocks.js:696 -#.TRANS: push a value onto the top of the heap -msgid "push" -msgstr "skub" +#: js/blocks/MeterBlocks.js:1068 +msgid "The Beats per minute block sets the number of 1/4 notes per minute." +msgstr "" -#: js/FlowBlocks.js:41 -msgid "The Backward block runs code in reverse order (Musical retrograde)." +#: js/blocks/MeterBlocks.js:1279 +#.TRANS: anacrusis +msgid "pickup" msgstr "" -#: js/FlowBlocks.js:48 -msgid "backward" +#: js/blocks/MeterBlocks.js:1367 +msgid "number of beats" msgstr "" -#: js/FlowBlocks.js:124 -msgid "The Duplicate block will run each block multiple times." +#: js/blocks/NumberBlocks.js:28 +msgid "The Int block returns an integer." msgstr "" -#: js/FlowBlocks.js:136 -msgid "duplicate" +#: js/blocks/NumberBlocks.js:34 +msgid "int" msgstr "" -#: js/FlowBlocks.js:334 -msgid "The Default block is used inside of a Switch to define the default action." +#: js/blocks/NumberBlocks.js:73 +msgid "The Mod block returns the remainder from a division." +msgstr "" + +#: js/blocks/NumberBlocks.js:79 +msgid "mod" +msgstr "mod" + +#: js/blocks/NumberBlocks.js:141 +msgid "The Power block calculates a power function." msgstr "" -#: js/FlowBlocks.js:342 -msgid "default" +#: js/blocks/NumberBlocks.js:196 +msgid "The Sqrt block returns the square root." msgstr "" -#: js/FlowBlocks.js:361 -#: js/FlowBlocks.js:418 -msgid "The Case Block must be used inside of a Switch Block." +#: js/blocks/NumberBlocks.js:202 +msgid "sqrt" msgstr "" -#: js/FlowBlocks.js:389 -msgid "The Case block is used inside of a Switch to define matches." +#: js/blocks/NumberBlocks.js:248 +msgid "The Abs block returns the absolute value." msgstr "" -#: js/FlowBlocks.js:397 -msgid "case" +#: js/blocks/NumberBlocks.js:254 +msgid "abs" msgstr "" -#: js/FlowBlocks.js:446 -msgid "The Switch block will run the code in the matching Case." +#: js/blocks/NumberBlocks.js:295 +msgid "The Distance block returns the distance between two points. For example, between the mouse and the center of the screen." msgstr "" -#: js/FlowBlocks.js:454 -msgid "switch" +#: js/blocks/NumberBlocks.js:301 +#: plugins/rodi.rtp:310 +msgid "distance" msgstr "" -#: js/FlowBlocks.js:595 -msgid "The Stop block will stop a loop" +#: js/blocks/NumberBlocks.js:361 +msgid "The Divide block is used to divide." msgstr "" -#: js/FlowBlocks.js:597 -msgid "Forever, Repeat, While, or Until." +#: js/blocks/NumberBlocks.js:441 +msgid "The Multiply block is used to multiply." msgstr "" -#: js/FlowBlocks.js:604 -#: js/phrasemaker.js:3799 -#: js/musickeyboard.js:629 -#: js/musickeyboard.js:631 -#: js/timbre.js:417 -#: js/timbre.js:419 -#: plugins/rodi.rtp:29 -#: plugins/rodi.rtp:73 -#: plugins/rodi.rtp:413 -msgid "stop" -msgstr "stop" - -#: js/FlowBlocks.js:653 -msgid "The Waitfor block will wait until the condition is true." +#: js/blocks/NumberBlocks.js:612 +msgid "The Minus block is used to subtract." msgstr "" -#: js/FlowBlocks.js:661 -msgid "wait for" +#: js/blocks/NumberBlocks.js:723 +msgid "The Plus block is used to add." msgstr "" -#: js/FlowBlocks.js:732 -msgid "The Until block will repeat until the condition is true." +#: js/blocks/NumberBlocks.js:849 +msgid "The One-of block returns one of two choices." msgstr "" -#: js/FlowBlocks.js:740 -msgid "until" -msgstr "indtil" - -#: js/FlowBlocks.js:742 -#: js/FlowBlocks.js:822 -msgid "do2" +#: js/blocks/NumberBlocks.js:856 +#: js/blocks/PitchBlocks.js:616 +msgid "one of" msgstr "" -#: js/FlowBlocks.js:812 -msgid "The While block will repeat while the condition is true." +#: js/blocks/NumberBlocks.js:858 +msgid "this" msgstr "" -#: js/FlowBlocks.js:820 -msgid "while" -msgstr "mens" +#: js/blocks/NumberBlocks.js:858 +msgid "that" +msgstr "" -#: js/FlowBlocks.js:903 -#: js/FlowBlocks.js:968 -#: js/FlowBlocks.js:979 -msgid "In this example if the mouse button is pressed a snare drum will play." +#: js/blocks/NumberBlocks.js:913 +msgid "The Random block returns a random number." msgstr "" -#: js/FlowBlocks.js:925 -#: js/FlowBlocks.js:988 -msgid "if" -msgstr "hvis" +#: js/blocks/NumberBlocks.js:920 +msgid "random" +msgstr "tilfældig" -#: js/FlowBlocks.js:927 -#: js/FlowBlocks.js:990 -msgid "then" -msgstr "så" +#: js/blocks/NumberBlocks.js:922 +msgid "min" +msgstr "min" -#: js/FlowBlocks.js:927 -msgid "else" -msgstr "ellers" +#: js/blocks/NumberBlocks.js:922 +msgid "max" +msgstr "max" -#: js/FlowBlocks.js:1025 -msgid "The Forever block will repeat the contained blocks forever." +#: js/blocks/NumberBlocks.js:986 +msgid "The Number block holds a number." msgstr "" -#: js/FlowBlocks.js:1037 -msgid "forever" -msgstr "for evigt" - -#: js/FlowBlocks.js:1073 -msgid "The Repeat block will repeat the contained blocks." +#: js/blocks/OrnamentBlocks.js:32 +msgid "staccato factor" msgstr "" -#: js/FlowBlocks.js:1075 -msgid "In this example the note will be played 4 times." +#: js/blocks/OrnamentBlocks.js:108 +msgid "slur factor" msgstr "" -#: js/FlowBlocks.js:1083 -msgid "repeat" -msgstr "gentag" - -#: js/FlowBlocks.js:1123 -msgid "duplicate factor" +#: js/blocks/OrnamentBlocks.js:217 +#: js/blocks/OrnamentBlocks.js:309 +#.TRANS: the neighbor refers to a neighboring note, e.g., D is a neighbor of C +msgid "neighbor" msgstr "" -#: js/PitchBlocks.js:39 -#: js/musicutils.js:722 -#: js/musicutils.js:1117 -#: js/synthutils.js:112 -#.TRANS: square wave -msgid "square" +#: js/blocks/OrnamentBlocks.js:293 +msgid "The Neighbor block rapidly switches between neighboring pitches." msgstr "" -#: js/PitchBlocks.js:62 -#: js/ToneBlocks.js:39 -#: js/musicutils.js:723 -#: js/musicutils.js:1118 -#: js/synthutils.js:116 -#.TRANS: triangle wave -msgid "triangle" +#: js/blocks/OrnamentBlocks.js:364 +msgid "glide" msgstr "" -#: js/PitchBlocks.js:85 -#: js/musicutils.js:721 -#: js/musicutils.js:1116 -#: js/synthutils.js:110 -#.TRANS: sine wave -msgid "sine" +#: js/blocks/OrnamentBlocks.js:479 +#: js/blocks/OrnamentBlocks.js:643 +msgid "slur" msgstr "" -#: js/PitchBlocks.js:108 -#: js/musicutils.js:724 -#: js/musicutils.js:1119 -#: js/synthutils.js:114 -#.TRANS: sawtooth wave -msgid "sawtooth" +#: js/blocks/OrnamentBlocks.js:558 +#: js/blocks/OrnamentBlocks.js:710 +#.TRANS: play each note sharply detached from the others +msgid "staccato" msgstr "" -#: js/PitchBlocks.js:141 -#.TRANS: musical transposition (adjustment of pitch up or down) -msgid "transposition" +#: js/blocks/RhythmBlocks.js:182 +#: js/blocks/RhythmBlocks.js:1086 +#: js/blocks/RhythmBlocks.js:1162 +msgid "Note value must be greater than 0." msgstr "" -#: js/PitchBlocks.js:168 -#.TRANS: step down one note in current musical scale -msgid "scalar step down" +#: js/blocks/RhythmBlocks.js:215 +#: js/blocks/RhythmBlocks.js:278 +#: js/blocks/RhythmBlocks.js:350 +#.TRANS: swing is a rhythmic variation that emphasises the offbeat +msgid "swing" msgstr "" -#: js/PitchBlocks.js:172 -msgid "The Scalar step down block returns the number of semi-tones down to the previous note in the current key and mode." +#: js/blocks/RhythmBlocks.js:355 +#.TRANS: the amount to shift to the offbeat note +msgid "swing value" msgstr "" -#: js/PitchBlocks.js:190 -#.TRANS: step up one note in current musical scale -msgid "scalar step up" +#: js/blocks/RhythmBlocks.js:419 +msgid "The Skip notes block will cause notes to be skipped." msgstr "" -#: js/PitchBlocks.js:194 -msgid "The Scalar step up block returns the number of semi-tones up to the next note in the current key and mode." +#: js/blocks/RhythmBlocks.js:427 +#.TRANS: substitute rests on notes being skipped +msgid "skip notes" msgstr "" -#: js/PitchBlocks.js:212 -#.TRANS: the change measured in half-steps between the current pitch and the previous pitch -msgid "change in pitch" +#: js/blocks/RhythmBlocks.js:489 +#.TRANS: speed up note duration by some factor, e.g. convert 1/4 to 1/8 notes by using a factor of 2 +msgid "multiply note value" msgstr "" -#: js/PitchBlocks.js:216 -msgid "The Change in pitch block is the difference (in half steps) between the current pitch being played and the previous pitch played." +#: js/blocks/RhythmBlocks.js:542 +msgid "The Tie block works on pairs of notes, combining them into one note." msgstr "" -#: js/PitchBlocks.js:243 -#.TRANS: the change measured in scale-steps between the current pitch and the previous pitch -msgid "scalar change in pitch" +#: js/blocks/RhythmBlocks.js:550 +#.TRANS: tie notes together into one longer note +msgid "tie" msgstr "" -#: js/PitchBlocks.js:250 -#: js/PitchBlocks.js:432 -#: js/PitchBlocks.js:1629 -#: js/DictActions.js:89 -#: js/temperament.js:477 -#: js/temperament.js:481 -#: js/temperament.js:714 -#.TRANS: convert current note to piano key (1-88) -#.TRANS: a mapping of pitch to the 88 piano keys -msgid "pitch number" +#: js/blocks/RhythmBlocks.js:591 +#: js/blocks/RhythmBlocks.js:671 +#.TRANS: a dotted note is played for 1.5x its value, e.g., 1/8. --> 3/16 +msgid "dot" msgstr "" -#: js/PitchBlocks.js:256 -msgid "The Pitch number block is the value of the pitch of the note currently being played." +#: js/blocks/RhythmBlocks.js:619 +#: js/turtleactions/RhythmActions.js:221 +msgid "An argument of -1 results in a note value of 0." msgstr "" -#: js/PitchBlocks.js:329 -#: js/PitchBlocks.js:433 -#.TRANS: the current pitch expressed in Hertz -msgid "pitch in hertz" +#: js/blocks/RhythmBlocks.js:661 +msgid "The Dot block extends the duration of a note by 50%." msgstr "" -#: js/PitchBlocks.js:334 -msgid "The Pitch in Hertz block is the value in Hertz of the pitch of the note currently being played." +#: js/blocks/RhythmBlocks.js:663 +msgid "Eg a dotted quarter note will play for 3/8 (1/4 + 1/8) of a beat." msgstr "" -#: js/PitchBlocks.js:367 -#: js/DictActions.js:87 -msgid "current pitch" +#: js/blocks/RhythmBlocks.js:765 +#.TRANS: Japanese only: note value block for drum +msgid "note value drum" msgstr "" -#: js/PitchBlocks.js:373 -msgid "The Current Pitch block is used with the Pitch Converter block. In the example above, current pitch, sol 4, is displayed as 392 hertz." +#: js/blocks/RhythmBlocks.js:829 +msgid "392 hertz" msgstr "" -#: js/PitchBlocks.js:410 -msgid "This block converts the pitch value of the last note played into different formats such as hertz, letter name, pitch number, et al." +#: js/blocks/RhythmBlocks.js:1119 +msgid "The Note block is a container for one or more Pitch blocks." msgstr "" -#: js/PitchBlocks.js:434 -msgid "alphabet" +#: js/blocks/RhythmBlocks.js:1121 +msgid "The Note block specifies the duration (note value) of its contents." msgstr "" -#: js/PitchBlocks.js:436 -#.TRANS: Translate as "alphabet class" -msgid "letter class" +#: js/blocks/RhythmBlocks.js:1128 +#: js/blocks/PitchBlocks.js:974 +#: js/blocks/PitchBlocks.js:1007 +#: js/blocks/ProgramBlocks.js:1186 +#: js/blocks/ProgramBlocks.js:1227 +#: js/widgets/status.js:190 +#: js/widgets/temperament.js:464 +#: js/widgets/temperament.js:486 +#: js/widgets/temperament.js:496 +#: js/widgets/temperament.js:617 +#: plugins/rodi.rtp:192 +#.TRANS: a musical note consisting of pitch and duration +msgid "note" msgstr "" -#: js/PitchBlocks.js:437 -msgid "solfege class" +#: js/blocks/RhythmBlocks.js:1130 +msgid "value2" msgstr "" -#: js/PitchBlocks.js:438 -msgid "staff y" +#: js/blocks/RhythmBlocks.js:1200 +msgid "define frequency" msgstr "" -#: js/PitchBlocks.js:439 -msgid "solfege syllable" +#: js/blocks/RhythmBlocks.js:1218 +#: js/widgets/temperament.js:787 +#: js/widgets/temperament.js:1587 +msgid "octave space" msgstr "" -#: js/PitchBlocks.js:440 -msgid "pitch class" +#: js/blocks/SensorsBlocks.js:36 +msgid "The Input block prompts for keyboard input." msgstr "" -#: js/PitchBlocks.js:441 -msgid "scalar class" +#: js/blocks/SensorsBlocks.js:46 +msgid "input" msgstr "" -#: js/PitchBlocks.js:443 -msgid "nth degree" +#: js/blocks/SensorsBlocks.js:64 +msgid "Input a value" msgstr "" -#: js/PitchBlocks.js:444 -msgid "pitch to shade" +#: js/blocks/SensorsBlocks.js:126 +msgid "input value" msgstr "" -#: js/PitchBlocks.js:445 -msgid "pitch to color" +#: js/blocks/SensorsBlocks.js:131 +msgid "The Input-value block stores the input." msgstr "" -#: js/PitchBlocks.js:629 -#: js/musickeyboard.js:565 -#.TRANS: MIDI is a technical standard for electronic music -msgid "MIDI" -msgstr "" +#: js/blocks/SensorsBlocks.js:238 +msgid "loudness" +msgstr "lydstyrke" -#: js/PitchBlocks.js:642 -#.TRANS: set an offset associated with the numeric piano keyboard mapping -msgid "set pitch number offset" +#: js/blocks/SensorsBlocks.js:245 +msgid "The Loudness block returns the volume detected by the microphone." msgstr "" -#: js/PitchBlocks.js:645 -msgid "The Set pitch number offset block is used to set the offset for mapping pitch numbers to pitch and octave." +#: js/blocks/SensorsBlocks.js:300 +msgid "click" msgstr "" -#: js/PitchBlocks.js:679 -#.TRANS: convert piano key number (1-88) to pitch -msgid "number to pitch" +#: js/blocks/SensorsBlocks.js:306 +msgid "The Click block triggers an event if a mouse has been clicked." msgstr "" -#: js/PitchBlocks.js:682 -msgid "The Number to pitch block will convert a pitch number to a pich name." +#: js/blocks/SensorsBlocks.js:313 +msgid "The Click block triggers an event if a turtle has been clicked." msgstr "" -#: js/PitchBlocks.js:715 -#.TRANS: convert piano key number (1-88) to octave -msgid "number to octave" +#: js/blocks/SensorsBlocks.js:342 +msgid "cursor over" msgstr "" -#: js/PitchBlocks.js:717 -msgid "The Number to octave block will convert a pitch number to an octave." +#: js/blocks/SensorsBlocks.js:387 +msgid "cursor out" msgstr "" -#: js/PitchBlocks.js:726 -msgid "y to pitch" +#: js/blocks/SensorsBlocks.js:433 +msgid "cursor button down" msgstr "" -#: js/PitchBlocks.js:729 -msgid "Y to pitch block will convert a staff y position to corresponding pitch notation." +#: js/blocks/SensorsBlocks.js:477 +msgid "cursor button up" msgstr "" -#: js/PitchBlocks.js:841 -msgid "accidental selector" +#: js/blocks/SensorsBlocks.js:521 +#: js/blocks/PenBlocks.js:48 +#: plugins/rodi.rtp:219 +msgid "blue" msgstr "" -#: js/PitchBlocks.js:844 -msgid "The Accidental selector block is used to choose between double-sharp, sharp, natural, flat, and double-flat." +#: js/blocks/SensorsBlocks.js:577 +#: js/blocks/PenBlocks.js:64 +#: plugins/rodi.rtp:218 +msgid "green" msgstr "" -#: js/PitchBlocks.js:858 -msgid "Pitch can be specified in terms of ni dha pa ma ga re sa." +#: js/blocks/SensorsBlocks.js:633 +#: js/blocks/PenBlocks.js:112 +#: plugins/rodi.rtp:217 +msgid "red" msgstr "" -#: js/PitchBlocks.js:872 -msgid "Pitch can be specified in terms of C D E F G A B." +#: js/blocks/SensorsBlocks.js:638 +msgid "The Get red block returns the red component of the pixel under the mouse." msgstr "" -#: js/PitchBlocks.js:883 -msgid "solfege" +#: js/blocks/SensorsBlocks.js:644 +msgid "The Get red block returns the red component of the pixel under the turtle." msgstr "" -#: js/PitchBlocks.js:886 -msgid "Pitch can be specified in terms of do re mi fa sol la ti." +#: js/blocks/SensorsBlocks.js:685 +#: plugins/rodi.rtp:216 +msgid "pixel color" msgstr "" -#: js/PitchBlocks.js:920 -msgid "The Invert block rotates any contained notes around a target note." +#: js/blocks/SensorsBlocks.js:690 +msgid "The Get pixel block returns the color of the pixel under the mouse." msgstr "" -#: js/PitchBlocks.js:927 -#.TRANS: pitch inversion rotates a pitch around another pitch -msgid "invert" +#: js/blocks/SensorsBlocks.js:696 +msgid "The Get pixel block returns the color of the pixel under the turtle." msgstr "" -#: js/PitchBlocks.js:929 -#: js/PitchBlocks.js:935 -#: js/PitchActions.js:727 -#: js/musicutils.js:726 -#: js/musicutils.js:902 -#.TRANS: invert based on even or odd number or musical scale -#.TRANS: even numbers -msgid "even" -msgstr "" +#: js/blocks/SensorsBlocks.js:758 +msgid "time" +msgstr "tid" -#: js/PitchBlocks.js:935 -#: js/PitchActions.js:729 -#: js/musicutils.js:728 -#: js/musicutils.js:903 -#.TRANS: odd numbers -msgid "odd" +#: js/blocks/SensorsBlocks.js:804 +msgid "cursor y" msgstr "" -#: js/PitchBlocks.js:935 -#: js/PitchActions.js:731 -#: js/musicutils.js:729 -#: js/musicutils.js:904 -msgid "scalar" +#: js/blocks/SensorsBlocks.js:809 +msgid "The Cursor Y block returns the vertical position of the mouse." msgstr "" -#: js/PitchBlocks.js:966 -#.TRANS: pitch inversion rotates a pitch around another pitch (odd number) -msgid "invert (odd)" +#: js/blocks/SensorsBlocks.js:845 +msgid "cursor x" msgstr "" -#: js/PitchBlocks.js:999 -#.TRANS: pitch inversion rotates a pitch around another pitch (even number) -msgid "invert (even)" +#: js/blocks/SensorsBlocks.js:850 +msgid "The Cursor X block returns the horizontal position of the mouse." msgstr "" -#: js/PitchBlocks.js:1020 -#.TRANS: register is the octave of the current pitch -msgid "register" +#: js/blocks/SensorsBlocks.js:886 +msgid "mouse button" msgstr "" -#: js/PitchBlocks.js:1024 -msgid "The Register block provides an easy way to modify the register (octave) of the notes that follow it." +#: js/blocks/SensorsBlocks.js:888 +msgid "The Mouse-button block returns True if the mouse button is pressed." msgstr "" -#: js/PitchBlocks.js:1074 -msgid "The Semi-tone transposition block will shift the pitches contained inside Note blocks up (or down) by half steps." +#: js/blocks/SensorsBlocks.js:934 +msgid "to ASCII" msgstr "" -#: js/PitchBlocks.js:1076 -msgid "In the example shown above, sol is shifted up to sol#." +#: js/blocks/SensorsBlocks.js:938 +msgid "The To ASCII block converts numbers to letters." msgstr "" -#: js/PitchBlocks.js:1082 -#.TRANS: adjust the amount of shift (up or down) of a pitch -msgid "semi-tone transpose" +#: js/blocks/SensorsBlocks.js:1005 +msgid "The Keyboard block returns computer keyboard input." msgstr "" -#: js/PitchBlocks.js:1115 -msgid "The Transpose by Ratio block will shift the pitches contained inside Note blocks up (or down) by a ratio" +#: js/blocks/RhythmBlockPaletteBlocks.js:50 +#: js/blocks/RhythmBlockPaletteBlocks.js:233 +#.TRANS: rhythm block +#.TRANS: translate "rhythm1" as rhythm +msgid "rhythm1" msgstr "" -#: js/PitchBlocks.js:1121 -#.TRANS: adjust the amount of shift (up or down) of a pitch -msgid "transpose by ratio" +#: js/blocks/RhythmBlockPaletteBlocks.js:70 +#: js/blocks/RhythmBlockPaletteBlocks.js:252 +#: js/blocks/RhythmBlockPaletteBlocks.js:485 +#: js/blocks/RhythmBlockPaletteBlocks.js:554 +#: js/blocks/RhythmBlockPaletteBlocks.js:875 +msgid "number of notes" msgstr "" -#: js/PitchBlocks.js:1204 -#.TRANS: down sixth means the note is five scale degrees below current note -msgid "down sixth" +#: js/blocks/RhythmBlockPaletteBlocks.js:126 +msgid "polyphonic rhythm" msgstr "" -#: js/PitchBlocks.js:1223 -#.TRANS: down third means the note is two scale degrees below current note -msgid "down third" +#: js/blocks/RhythmBlockPaletteBlocks.js:219 +msgid "The Rhythm block is used to generate rhythm patterns." msgstr "" -#: js/PitchBlocks.js:1242 -#.TRANS: seventh means the note is the six scale degrees above current note -msgid "seventh" +#: js/blocks/RhythmBlockPaletteBlocks.js:280 +msgid "1/64 note" msgstr "" -#: js/PitchBlocks.js:1261 -#.TRANS: sixth means the note is the five scale degrees above current note -msgid "sixth" +#: js/blocks/RhythmBlockPaletteBlocks.js:304 +msgid "1/32 note" msgstr "" -#: js/PitchBlocks.js:1280 -#.TRANS: fifth means the note is the four scale degrees above current note -msgid "fifth" +#: js/blocks/RhythmBlockPaletteBlocks.js:332 +msgid "1/16 note" msgstr "" -#: js/PitchBlocks.js:1300 -#.TRANS: fourth means the note is three scale degrees above current note -msgid "fourth" +#: js/blocks/RhythmBlockPaletteBlocks.js:360 +msgid "eighth note" msgstr "" -#: js/PitchBlocks.js:1319 -#.TRANS: third means the note is two scale degrees above current note -msgid "third" +#: js/blocks/RhythmBlockPaletteBlocks.js:388 +msgid "quarter note" msgstr "" -#: js/PitchBlocks.js:1338 -#.TRANS: second means the note is one scale degree above current note -msgid "second" +#: js/blocks/RhythmBlockPaletteBlocks.js:416 +msgid "half note" msgstr "" -#: js/PitchBlocks.js:1379 -msgid "The Scalar transposition block will shift the pitches contained inside Note blocks up (or down) the scale." +#: js/blocks/RhythmBlockPaletteBlocks.js:444 +msgid "whole note" msgstr "" -#: js/PitchBlocks.js:1381 -msgid "In the example shown above, sol is shifted up to la." +#: js/blocks/RhythmBlockPaletteBlocks.js:482 +#: js/blocks/RhythmBlockPaletteBlocks.js:551 +#: js/blocks/RhythmBlockPaletteBlocks.js:602 +#.TRANS: A tuplet is a note value divided into irregular time values. +msgid "tuplet" msgstr "" -#: js/PitchBlocks.js:1388 -#.TRANS: adjust the amount of shift (up or down) of a pitch by musical scale (scalar) steps -msgid "scalar transpose" +#: js/blocks/RhythmBlockPaletteBlocks.js:768 +msgid "septuplet" msgstr "" -#: js/PitchBlocks.js:1423 -msgid "The Accidental block is used to create sharps and flats" +#: js/blocks/RhythmBlockPaletteBlocks.js:796 +msgid "quintuplet" msgstr "" -#: js/PitchBlocks.js:1430 -#.TRANS: An accidental is a modification to a pitch, e.g., sharp or flat. -msgid "accidental override" +#: js/blocks/RhythmBlockPaletteBlocks.js:824 +msgid "triplet" msgstr "" -#: js/PitchBlocks.js:1543 -msgid "The Hertz block (in combination with a Number block) will play a sound at the specified frequency." +#: js/blocks/RhythmBlockPaletteBlocks.js:851 +msgid "simple tuplet" msgstr "" -#: js/PitchBlocks.js:1633 -msgid "The Pitch Number block will play a pitch associated by its number, e.g. 0 for C and 7 for G." +#: js/blocks/RhythmBlockPaletteBlocks.js:861 +msgid "Tuplets are a collection of notes that get scaled to a specific duration." msgstr "" -#: js/PitchBlocks.js:1665 -#: js/PitchBlocks.js:1707 -#.TRANS: a numeric mapping of the notes in an octave based on the musical mode -#.TRANS: a numeric mapping of the notes in an octave based on the musical mode -msgid "nth modal pitch" +#: js/blocks/DrumBlocks.js:59 +msgid "The Noise name block is used to select a noise synthesizer." msgstr "" -#: js/PitchBlocks.js:1668 -msgid "n^th Modal Pitch takes the pattern of pitches in semitones for a mode and makes each point a degree of the mode," +#: js/blocks/DrumBlocks.js:102 +msgid "The Drum name block is used to select a drum." msgstr "" -#: js/PitchBlocks.js:1670 -msgid "starting from 1 and regardless of tonal framework (i.e. not always 8 notes in the octave)" +#: js/blocks/DrumBlocks.js:146 +msgid "The Effects name block is used to select a sound effect." msgstr "" -#: js/PitchBlocks.js:1711 -msgid "N^th Modal Pitch takes a number as an input as the n^th degree for the given mode. 0 is the first position, 1 is the second, -1 is the note before the first etc." +#: js/blocks/DrumBlocks.js:163 +msgid "noise" msgstr "" -#: js/PitchBlocks.js:1713 -msgid "The pitches change according to the mode specified without any need for respellings." +#: js/blocks/DrumBlocks.js:177 +msgid "The Play noise block will generate white, pink, or brown noise." msgstr "" -#: js/PitchBlocks.js:1752 -msgid "Scale Degree is a common convention in music. Scale Degree offers seven possible positions in the scale (1-7) and can be modified via accidentals." +#: js/blocks/DrumBlocks.js:317 +msgid "Replace every instance of a pitch with a drum sound." msgstr "" -#: js/PitchBlocks.js:1754 -msgid "Scale Degree 1 is always the first pitch in a given scale, regardless of octave." +#: js/blocks/DrumBlocks.js:328 +#.TRANS: map a pitch to a drum sound +msgid "map pitch to drum" msgstr "" -#: js/PitchBlocks.js:1776 -#.TRANS: step some number of notes in current musical scale -msgid "scalar step" +#: js/blocks/DrumBlocks.js:395 +msgid "In the example above, a kick drum sound will be played instead of sol." msgstr "" -#: js/PitchBlocks.js:1781 -msgid "The Scalar Step block (in combination with a Number block) will play the next pitch in a scale," +#: js/blocks/DrumBlocks.js:407 +#.TRANS: set the current drum sound for playback +msgid "set drum" msgstr "" -#: js/PitchBlocks.js:1783 -msgid "eg if the last note played was sol, Scalar Step 1 will play la." +#: js/blocks/DrumBlocks.js:451 +msgid "sound effect" msgstr "" -#: js/PitchBlocks.js:1818 -msgid "The Pitch block specifies the pitch name and octave of a note that together determine the frequency of the note." +#: js/blocks/DrumBlocks.js:489 +msgid "You can use multiple Drum blocks within a Note block." msgstr "" -#: js/GraphicsBlocks.js:46 -#: js/DictActions.js:77 -#: js/DictActions.js:155 -#: js/DictActions.js:189 +#: js/blocks/GraphicsBlocks.js:46 +#: js/turtleactions/DictActions.js:77 +#: js/turtleactions/DictActions.js:144 +#: js/turtleactions/DictActions.js:173 msgid "heading" msgstr "bevæger sig mod" -#: js/GraphicsBlocks.js:56 +#: js/blocks/GraphicsBlocks.js:56 msgid "The Heading block returns the orientation of the mouse." msgstr "" -#: js/GraphicsBlocks.js:62 +#: js/blocks/GraphicsBlocks.js:62 msgid "The Heading block returns the orientation of the turtle." msgstr "" -#: js/GraphicsBlocks.js:133 +#: js/blocks/GraphicsBlocks.js:133 msgid "The Y block returns the vertical position of the mouse." msgstr "" -#: js/GraphicsBlocks.js:140 +#: js/blocks/GraphicsBlocks.js:140 msgid "The Y block returns the vertical position of the turtle." msgstr "" -#: js/GraphicsBlocks.js:149 +#: js/blocks/GraphicsBlocks.js:149 msgid "y3" msgstr "" -#: js/GraphicsBlocks.js:219 +#: js/blocks/GraphicsBlocks.js:219 msgid "The X block returns the horizontal position of the mouse." msgstr "" -#: js/GraphicsBlocks.js:226 +#: js/blocks/GraphicsBlocks.js:226 msgid "The X block returns the horizontal position of the turtle." msgstr "" -#: js/GraphicsBlocks.js:235 +#: js/blocks/GraphicsBlocks.js:235 msgid "x3" msgstr "" -#: js/GraphicsBlocks.js:295 +#: js/blocks/GraphicsBlocks.js:295 msgid "scroll xy" msgstr "" -#: js/GraphicsBlocks.js:303 +#: js/blocks/GraphicsBlocks.js:303 msgid "The Scroll XY block moves the canvas." msgstr "" -#: js/GraphicsBlocks.js:313 +#: js/blocks/GraphicsBlocks.js:313 msgid "x2" msgstr "" -#: js/GraphicsBlocks.js:313 +#: js/blocks/GraphicsBlocks.js:313 msgid "y2" msgstr "" -#: js/GraphicsBlocks.js:373 -#: js/temperament.js:213 -#: js/temperament.js:241 +#: js/blocks/GraphicsBlocks.js:373 +#: js/widgets/temperament.js:319 +#: js/widgets/temperament.js:347 msgid "clear" msgstr "" -#: js/GraphicsBlocks.js:426 +#: js/blocks/GraphicsBlocks.js:426 msgid "The Control-point 2 block sets the second control point for the Bezier curve." msgstr "" -#: js/GraphicsBlocks.js:433 +#: js/blocks/GraphicsBlocks.js:433 msgid "control point 2" msgstr "" -#: js/GraphicsBlocks.js:436 -#: js/GraphicsBlocks.js:487 -#: js/GraphicsBlocks.js:534 -#: js/GraphicsBlocks.js:750 +#: js/blocks/GraphicsBlocks.js:436 +#: js/blocks/GraphicsBlocks.js:487 +#: js/blocks/GraphicsBlocks.js:534 +#: js/blocks/GraphicsBlocks.js:750 msgid "x1" msgstr "" -#: js/GraphicsBlocks.js:436 -#: js/GraphicsBlocks.js:487 -#: js/GraphicsBlocks.js:534 -#: js/GraphicsBlocks.js:750 +#: js/blocks/GraphicsBlocks.js:436 +#: js/blocks/GraphicsBlocks.js:487 +#: js/blocks/GraphicsBlocks.js:534 +#: js/blocks/GraphicsBlocks.js:750 msgid "y1" msgstr "" -#: js/GraphicsBlocks.js:477 +#: js/blocks/GraphicsBlocks.js:477 msgid "The Control-point 1 block sets the first control point for the Bezier curve." msgstr "" -#: js/GraphicsBlocks.js:484 +#: js/blocks/GraphicsBlocks.js:484 msgid "control point 1" msgstr "" -#: js/GraphicsBlocks.js:527 +#: js/blocks/GraphicsBlocks.js:527 msgid "The Bezier block draws a Bezier curve." msgstr "" -#: js/GraphicsBlocks.js:531 +#: js/blocks/GraphicsBlocks.js:531 msgid "bezier" msgstr "" -#: js/GraphicsBlocks.js:592 +#: js/blocks/GraphicsBlocks.js:592 msgid "The Arc block moves the turtle in an arc." msgstr "" -#: js/GraphicsBlocks.js:600 +#: js/blocks/GraphicsBlocks.js:600 msgid "arc" msgstr "arc" -#: js/GraphicsBlocks.js:603 +#: js/blocks/GraphicsBlocks.js:603 msgid "angle" msgstr "vinkel" -#: js/GraphicsBlocks.js:603 +#: js/blocks/GraphicsBlocks.js:603 msgid "radius" msgstr "radius" -#: js/GraphicsBlocks.js:620 -#: js/GraphicsBlocks.js:767 -#: js/GraphicsBlocks.js:1010 -#: js/GraphicsBlocks.js:1093 +#: js/blocks/GraphicsBlocks.js:620 +#: js/blocks/GraphicsBlocks.js:767 +#: js/blocks/GraphicsBlocks.js:1010 +#: js/blocks/GraphicsBlocks.js:1093 msgid "Value must be within -5000 to 5000 when Wrap Mode is off." msgstr "" -#: js/GraphicsBlocks.js:622 -#: js/GraphicsBlocks.js:769 -#: js/GraphicsBlocks.js:1012 -#: js/GraphicsBlocks.js:1095 +#: js/blocks/GraphicsBlocks.js:622 +#: js/blocks/GraphicsBlocks.js:769 +#: js/blocks/GraphicsBlocks.js:1012 +#: js/blocks/GraphicsBlocks.js:1095 msgid "Value must be within -20000 to 20000 when Wrap Mode is on." msgstr "" -#: js/GraphicsBlocks.js:660 +#: js/blocks/GraphicsBlocks.js:660 msgid "set heading" msgstr "indstil retning" -#: js/GraphicsBlocks.js:673 +#: js/blocks/GraphicsBlocks.js:673 msgid "The Set heading block sets the heading of the turtle." msgstr "" -#: js/GraphicsBlocks.js:733 +#: js/blocks/GraphicsBlocks.js:733 msgid "The Set XY block moves the mouse to a specific position on the screen." msgstr "" -#: js/GraphicsBlocks.js:739 +#: js/blocks/GraphicsBlocks.js:739 msgid "The Set XY block moves the turtle to a specific position on the screen." msgstr "" -#: js/GraphicsBlocks.js:747 +#: js/blocks/GraphicsBlocks.js:747 msgid "set xy" msgstr "indstil xy" -#: js/GraphicsBlocks.js:819 +#: js/blocks/GraphicsBlocks.js:819 msgid "The Right block turns the mouse to the right." msgstr "" -#: js/GraphicsBlocks.js:826 +#: js/blocks/GraphicsBlocks.js:826 msgid "The Right block turns the turtle to the right." msgstr "" -#: js/GraphicsBlocks.js:835 +#: js/blocks/GraphicsBlocks.js:835 msgid "right1" msgstr "" -#: js/GraphicsBlocks.js:835 +#: js/blocks/GraphicsBlocks.js:835 #: plugins/rodi.rtp:77 #: plugins/rodi.rtp:340 #: plugins/rodi.rtp:375 msgid "right" msgstr "højre" -#: js/GraphicsBlocks.js:899 +#: js/blocks/GraphicsBlocks.js:899 msgid "The Left block turns the mouse to the left." msgstr "" -#: js/GraphicsBlocks.js:906 +#: js/blocks/GraphicsBlocks.js:906 msgid "The Left block turns the turtle to the left." msgstr "" -#: js/GraphicsBlocks.js:915 +#: js/blocks/GraphicsBlocks.js:915 msgid "left1" msgstr "" -#: js/GraphicsBlocks.js:915 +#: js/blocks/GraphicsBlocks.js:915 #: plugins/rodi.rtp:79 #: plugins/rodi.rtp:339 #: plugins/rodi.rtp:362 msgid "left" msgstr "venstre" -#: js/GraphicsBlocks.js:967 -#: js/temperament.js:734 -#: js/temperament.js:933 +#: js/blocks/GraphicsBlocks.js:967 +#: js/widgets/temperament.js:875 +#: js/widgets/temperament.js:1078 #: plugins/rodi.rtp:69 #: plugins/rodi.rtp:387 msgid "back" msgstr "tilbage" -#: js/GraphicsBlocks.js:976 +#: js/blocks/GraphicsBlocks.js:976 msgid "The Back block moves the mouse backward." msgstr "" -#: js/GraphicsBlocks.js:983 +#: js/blocks/GraphicsBlocks.js:983 msgid "The Back block moves the turtle backward." msgstr "" -#: js/GraphicsBlocks.js:1050 +#: js/blocks/GraphicsBlocks.js:1050 #: plugins/rodi.rtp:71 #: plugins/rodi.rtp:400 msgid "forward" msgstr "fremad" -#: js/GraphicsBlocks.js:1059 +#: js/blocks/GraphicsBlocks.js:1059 msgid "The Forward block moves the mouse forward." msgstr "" -#: js/GraphicsBlocks.js:1066 +#: js/blocks/GraphicsBlocks.js:1066 msgid "The Forward block moves the turtle forward." msgstr "" -#: js/GraphicsBlocks.js:1154 -#: js/GraphicsBlocks.js:1172 +#: js/blocks/GraphicsBlocks.js:1154 +#: js/blocks/GraphicsBlocks.js:1172 msgid "wrap" msgstr "" -#: js/OrnamentBlocks.js:32 -msgid "staccato factor" -msgstr "" - -#: js/OrnamentBlocks.js:108 -msgid "slur factor" -msgstr "" - -#: js/OrnamentBlocks.js:217 -#: js/OrnamentBlocks.js:309 -#.TRANS: the neighbor refers to a neighboring note, e.g., D is a neighbor of C -msgid "neighbor" -msgstr "" - -#: js/OrnamentBlocks.js:293 -msgid "The Neighbor block rapidly switches between neighboring pitches." -msgstr "" - -#: js/OrnamentBlocks.js:364 -msgid "glide" -msgstr "" - -#: js/OrnamentBlocks.js:479 -#: js/OrnamentBlocks.js:643 -msgid "slur" -msgstr "" - -#: js/OrnamentBlocks.js:558 -#: js/OrnamentBlocks.js:710 -#.TRANS: play each note sharply detached from the others -msgid "staccato" -msgstr "" - -#: js/PenBlocks.js:24 +#: js/blocks/PenBlocks.js:30 msgid "purple" msgstr "" -#: js/PenBlocks.js:37 -#: js/SensorsBlocks.js:521 -#: plugins/rodi.rtp:219 -msgid "blue" -msgstr "" - -#: js/PenBlocks.js:50 -#: js/SensorsBlocks.js:577 -#: plugins/rodi.rtp:218 -msgid "green" -msgstr "" - -#: js/PenBlocks.js:63 +#: js/blocks/PenBlocks.js:80 msgid "yellow" msgstr "" -#: js/PenBlocks.js:76 +#: js/blocks/PenBlocks.js:96 #: plugins/nutrition.rtp:164 msgid "orange" msgstr "orange" -#: js/PenBlocks.js:89 -#: js/SensorsBlocks.js:633 -#: plugins/rodi.rtp:217 -msgid "red" -msgstr "" - -#: js/PenBlocks.js:102 +#: js/blocks/PenBlocks.js:128 msgid "white" msgstr "" -#: js/PenBlocks.js:115 +#: js/blocks/PenBlocks.js:144 msgid "black" msgstr "" -#: js/PenBlocks.js:128 +#: js/blocks/PenBlocks.js:163 msgid "begin fill" msgstr "" -#: js/PenBlocks.js:143 +#: js/blocks/PenBlocks.js:190 msgid "end fill" msgstr "slut udfyld" -#: js/PenBlocks.js:159 -#: js/PenBlocks.js:386 +#: js/blocks/PenBlocks.js:212 +#: js/blocks/PenBlocks.js:560 #.TRANS: set the background color msgid "background" msgstr "" -#: js/PenBlocks.js:206 -#: js/DictActions.js:71 -#: js/DictActions.js:149 -#: js/DictActions.js:186 +#: js/blocks/PenBlocks.js:274 +#: js/turtleactions/DictActions.js:71 +#: js/turtleactions/DictActions.js:138 +#: js/turtleactions/DictActions.js:170 msgid "grey" msgstr "" -#: js/PenBlocks.js:210 +#: js/blocks/PenBlocks.js:282 msgid "The Grey block returns the current pen grey value." msgstr "" -#: js/PenBlocks.js:243 -#: js/DictActions.js:69 -#: js/DictActions.js:147 -#: js/DictActions.js:185 +#: js/blocks/PenBlocks.js:340 +#: js/turtleactions/DictActions.js:69 +#: js/turtleactions/DictActions.js:136 +#: js/turtleactions/DictActions.js:169 msgid "shade" msgstr "skygge" -#: js/PenBlocks.js:247 +#: js/blocks/PenBlocks.js:347 msgid "The Shade block returns the current pen shade value." msgstr "" -#: js/PenBlocks.js:280 -#: js/DictActions.js:67 -#: js/DictActions.js:145 -#: js/DictActions.js:184 +#: js/blocks/PenBlocks.js:405 +#: js/turtleactions/DictActions.js:67 +#: js/turtleactions/DictActions.js:134 +#: js/turtleactions/DictActions.js:168 msgid "color" msgstr "farve" -#: js/PenBlocks.js:285 +#: js/blocks/PenBlocks.js:415 msgid "The Color block returns the current pen color." msgstr "" -#: js/PenBlocks.js:318 -#: js/DictActions.js:73 -#: js/DictActions.js:151 -#: js/DictActions.js:187 +#: js/blocks/PenBlocks.js:470 +#: js/turtleactions/DictActions.js:73 +#: js/turtleactions/DictActions.js:140 +#: js/turtleactions/DictActions.js:171 msgid "pen size" msgstr "størrelse pen" -#: js/PenBlocks.js:322 +#: js/blocks/PenBlocks.js:474 msgid "The Pen size block returns the current pen size value." msgstr "" -#: js/PenBlocks.js:355 +#: js/blocks/PenBlocks.js:513 msgid "set font" msgstr "" -#: js/PenBlocks.js:358 +#: js/blocks/PenBlocks.js:518 msgid "The Set font block sets the font used by the Show block." msgstr "" -#: js/PenBlocks.js:391 +#: js/blocks/PenBlocks.js:567 msgid "The Background block sets the window background color." msgstr "" -#: js/PenBlocks.js:408 +#: js/blocks/PenBlocks.js:598 msgid "The Hollow line block creates a line with a hollow center." msgstr "" -#: js/PenBlocks.js:415 +#: js/blocks/PenBlocks.js:606 #.TRANS: draw a line logo has a hollow space down its center msgid "hollow line" msgstr "" -#: js/PenBlocks.js:462 +#: js/blocks/PenBlocks.js:675 msgid "The Fill block fills in a shape with a color." msgstr "" -#: js/PenBlocks.js:470 +#: js/blocks/PenBlocks.js:684 #.TRANS: fill in as a solid color msgid "fill" msgstr "" -#: js/PenBlocks.js:527 +#: js/blocks/PenBlocks.js:761 #.TRANS: raise up the pen so logo it does not draw when it is moved msgid "pen up" msgstr "pen oppe" -#: js/PenBlocks.js:532 +#: js/blocks/PenBlocks.js:768 msgid "The Pen-up block raises the pen so that it does not draw." msgstr "" -#: js/PenBlocks.js:552 +#: js/blocks/PenBlocks.js:802 #.TRANS: put down the pen so logo it draws when it is moved msgid "pen down" msgstr "pen nede" -#: js/PenBlocks.js:557 +#: js/blocks/PenBlocks.js:810 msgid "The Pen-down block lowers the pen so that it draws." msgstr "" -#: js/PenBlocks.js:577 +#: js/blocks/PenBlocks.js:844 #.TRANS: set the width of the line drawn by the pen msgid "set pen size" msgstr "indstil størrelse på pen" -#: js/PenBlocks.js:583 +#: js/blocks/PenBlocks.js:854 msgid "The Set-pen-size block changes the size of the pen." msgstr "" -#: js/PenBlocks.js:623 +#: js/blocks/PenBlocks.js:913 #.TRANS: set degree of translucence of the pen color msgid "set translucency" msgstr "" -#: js/PenBlocks.js:627 +#: js/blocks/PenBlocks.js:921 msgid "The Set translucency block changes the opacity of the pen." msgstr "" -#: js/PenBlocks.js:668 +#: js/blocks/PenBlocks.js:981 msgid "set hue" msgstr "" -#: js/PenBlocks.js:672 +#: js/blocks/PenBlocks.js:989 msgid "The Set hue block changes the color of the pen." msgstr "" -#: js/PenBlocks.js:711 +#: js/blocks/PenBlocks.js:1047 msgid "set shade" msgstr "indstil skygge" -#: js/PenBlocks.js:717 +#: js/blocks/PenBlocks.js:1057 msgid "The Set-shade block changes the pen color from dark to light." msgstr "" -#: js/PenBlocks.js:757 +#: js/blocks/PenBlocks.js:1111 #.TRANS: set the level of vividness of the pen color msgid "set grey" msgstr "" -#: js/PenBlocks.js:761 +#: js/blocks/PenBlocks.js:1119 msgid "The Set grey block changes the vividness of the pen color." msgstr "" -#: js/PenBlocks.js:800 +#: js/blocks/PenBlocks.js:1172 msgid "set color" msgstr "indstil farve" -#: js/PenBlocks.js:806 +#: js/blocks/PenBlocks.js:1182 msgid "The Set-color block changes the pen color." msgstr "" -#: js/VolumeBlocks.js:35 -msgid "synth volume" -msgstr "" - -#: js/VolumeBlocks.js:39 -msgid "The Synth volume block returns the current volume of the current synthesizer." -msgstr "" - -#: js/VolumeBlocks.js:47 -#: js/musicutils.js:730 -#: js/synthutils.js:56 -#.TRANS: musical instrument -msgid "piano" -msgstr "" - -#: js/VolumeBlocks.js:105 -msgid "master volume" -msgstr "" - -#: js/VolumeBlocks.js:109 -msgid "The Master volume block returns the master volume." -msgstr "" - -#: js/VolumeBlocks.js:355 -#: js/VolumeBlocks.js:524 -msgid "set synth volume" -msgstr "" - -#: js/VolumeBlocks.js:362 -#: js/VolumeBlocks.js:545 -msgid "synth" -msgstr "" - -#: js/VolumeBlocks.js:403 -#: js/VolumeBlocks.js:577 -#: js/VolumeBlocks.js:740 -#: js/VolumeActions.js:173 -msgid "Setting volume to 0." -msgstr "" - -#: js/VolumeBlocks.js:440 -msgid "Synth not found" -msgstr "" - -#: js/VolumeBlocks.js:494 -msgid "set drum volume" -msgstr "" - -#: js/VolumeBlocks.js:530 -msgid "The Set synth volume block will change the volume of a particular synth," -msgstr "" - -#: js/VolumeBlocks.js:532 -msgid "eg guitar violin snare drum etc." -msgstr "" - -#: js/VolumeBlocks.js:534 -msgid "The default volume is 50." -msgstr "" - -#: js/VolumeBlocks.js:536 -msgid "The range is 0 for silence to 100 for full volume." -msgstr "" - -#: js/VolumeBlocks.js:597 -msgid "set panning" -msgstr "" - -#: js/VolumeBlocks.js:603 -msgid "The Set Panning block sets the panning for all synthesizers." -msgstr "" - -#: js/VolumeBlocks.js:625 -msgid "Warning: Sound is coming out from only the left or right side." -msgstr "" - -#: js/VolumeBlocks.js:647 -#: js/VolumeBlocks.js:695 -msgid "set master volume" -msgstr "" - -#: js/VolumeBlocks.js:653 -msgid "The Set master volume block sets the volume for all synthesizers." -msgstr "" - -#: js/VolumeBlocks.js:784 -msgid "The Set relative volume block changes the volume of the contained notes." -msgstr "" - -#: js/VolumeBlocks.js:791 -msgid "set relative volume" -msgstr "" - -#: js/VolumeBlocks.js:857 -msgid "decrescendo" -msgstr "" - -#: js/VolumeBlocks.js:921 -msgid "crescendo" -msgstr "" - -#: js/ToneBlocks.js:34 -msgid "oscillator" -msgstr "" - -#: js/ToneBlocks.js:44 -#: js/timbre.js:1562 -#.TRANS: Partials refers to the number of sine waves combined into the sound. -msgid "partials" -msgstr "" - -#: js/ToneBlocks.js:76 -msgid "You are adding multiple oscillator blocks." -msgstr "" - -#: js/ToneBlocks.js:144 -#: js/timbre.js:1225 -#.TRANS: a duo synthesizer combines a synth with a sequencer -msgid "duo synth" -msgstr "" - -#: js/ToneBlocks.js:149 -msgid "The Duo synth block is a duo-frequency modulator used to define a timbre." -msgstr "" - -#: js/ToneBlocks.js:157 -#: js/timbre.js:1476 -msgid "vibrato rate" -msgstr "" - -#: js/ToneBlocks.js:157 -msgid "vibrato intensity" -msgstr "" - -#: js/ToneBlocks.js:185 -#: js/timbre.js:1221 -#.TRANS: AM (amplitude modulation) synthesizer -msgid "AM synth" -msgstr "" - -#: js/ToneBlocks.js:189 -msgid "The AM synth block is an amplitude modulator used to define a timbre." -msgstr "" - -#: js/ToneBlocks.js:224 -#: js/timbre.js:1223 -#.TRANS: FM (frequency modulation) synthesizer -msgid "FM synth" +#: js/blocks/PitchBlocks.js:141 +#.TRANS: musical transposition (adjustment of pitch up or down) +msgid "transposition" msgstr "" -#: js/ToneBlocks.js:228 -msgid "The FM synth block is a frequency modulator used to define a timbre." +#: js/blocks/PitchBlocks.js:168 +#.TRANS: step down one note in current musical scale +msgid "scalar step down" msgstr "" -#: js/ToneBlocks.js:262 -msgid "partial" +#: js/blocks/PitchBlocks.js:172 +msgid "The Scalar step down block returns the number of semi-tones down to the previous note in the current key and mode." msgstr "" -#: js/ToneBlocks.js:265 -msgid "The Partial block is used to specify a weight for a specific partial harmonic." +#: js/blocks/PitchBlocks.js:190 +#.TRANS: step up one note in current musical scale +msgid "scalar step up" msgstr "" -#: js/ToneBlocks.js:284 -#.TRANS: partials are weighted components in a harmonic series -msgid "Partial weight must be between 0 and 1." +#: js/blocks/PitchBlocks.js:194 +msgid "The Scalar step up block returns the number of semi-tones up to the next note in the current key and mode." msgstr "" -#: js/ToneBlocks.js:297 -#.TRANS: partials are weighted components in a harmonic series -msgid "Partial block should be used inside of a Weighted-partials block." +#: js/blocks/PitchBlocks.js:212 +#.TRANS: the change measured in half-steps between the current pitch and the previous pitch +msgid "change in pitch" msgstr "" -#: js/ToneBlocks.js:325 -#.TRANS: partials are weighted components in a harmonic series -msgid "weighted partials" +#: js/blocks/PitchBlocks.js:216 +msgid "The Change in pitch block is the difference (in half steps) between the current pitch being played and the previous pitch played." msgstr "" -#: js/ToneBlocks.js:383 -msgid "The Harmonic block will add harmonics to the contained notes." +#: js/blocks/PitchBlocks.js:243 +#.TRANS: the change measured in scale-steps between the current pitch and the previous pitch +msgid "scalar change in pitch" msgstr "" -#: js/ToneBlocks.js:390 -#.TRANS: A harmonic is an overtone. -msgid "harmonic" +#: js/blocks/PitchBlocks.js:250 +#: js/blocks/PitchBlocks.js:432 +#: js/blocks/PitchBlocks.js:1667 +#: js/turtleactions/DictActions.js:89 +#: js/widgets/temperament.js:610 +#: js/widgets/temperament.js:614 +#: js/widgets/temperament.js:855 +#.TRANS: convert current note to piano key (1-88) +#.TRANS: a mapping of pitch to the 88 piano keys +msgid "pitch number" msgstr "" -#: js/ToneBlocks.js:431 -msgid "The Distortion block adds distortion to the pitch." +#: js/blocks/PitchBlocks.js:256 +msgid "The Pitch number block is the value of the pitch of the note currently being played." msgstr "" -#: js/ToneBlocks.js:438 -#: js/timbre.js:2100 -#.TRANS: distortion is an alteration in the sound -msgid "distortion" +#: js/blocks/PitchBlocks.js:329 +#: js/blocks/PitchBlocks.js:433 +#.TRANS: the current pitch expressed in Hertz +msgid "pitch in hertz" msgstr "" -#: js/ToneBlocks.js:487 -msgid "The Tremolo block adds a wavering effect." +#: js/blocks/PitchBlocks.js:334 +msgid "The Pitch in Hertz block is the value in Hertz of the pitch of the note currently being played." msgstr "" -#: js/ToneBlocks.js:495 -#: js/timbre.js:2092 -#.TRANS: a wavering effect in a musical tone -msgid "tremolo" +#: js/blocks/PitchBlocks.js:367 +#: js/turtleactions/DictActions.js:87 +msgid "current pitch" msgstr "" -#: js/ToneBlocks.js:500 -#: js/ToneBlocks.js:569 -#: js/ToneBlocks.js:630 -#: js/ToneBlocks.js:689 -#: js/timbre.js:2134 -#: js/timbre.js:2222 -#: js/timbre.js:2317 -#: js/timbre.js:2419 -#.TRANS: rate at which tremolo wavers -msgid "rate" +#: js/blocks/PitchBlocks.js:373 +msgid "The Current Pitch block is used with the Pitch Converter block. In the example above, current pitch, sol 4, is displayed as 392 hertz." msgstr "" -#: js/ToneBlocks.js:502 -#: js/ToneBlocks.js:630 -#: js/timbre.js:2137 -#: js/timbre.js:2328 -#.TRANS: amplitude of tremolo waver -msgid "depth" +#: js/blocks/PitchBlocks.js:410 +msgid "This block converts the pitch value of the last note played into different formats such as hertz, letter name, pitch number, et al." msgstr "" -#: js/ToneBlocks.js:559 -msgid "The Phaser block adds a sweeping sound." +#: js/blocks/PitchBlocks.js:434 +msgid "alphabet" msgstr "" -#: js/ToneBlocks.js:566 -#: js/timbre.js:2098 -#.TRANS: alter the phase of the sound -msgid "phaser" +#: js/blocks/PitchBlocks.js:436 +#.TRANS: Translate as "alphabet class" +msgid "letter class" msgstr "" -#: js/ToneBlocks.js:569 -#: js/timbre.js:2422 -msgid "octaves" +#: js/blocks/PitchBlocks.js:437 +msgid "solfege class" msgstr "" -#: js/ToneBlocks.js:569 -#: js/timbre.js:2425 -msgid "base frequency" +#: js/blocks/PitchBlocks.js:438 +msgid "staff y" msgstr "" -#: js/ToneBlocks.js:619 -msgid "The Chorus block adds a chorus effect." +#: js/blocks/PitchBlocks.js:439 +msgid "solfege syllable" msgstr "" -#: js/ToneBlocks.js:627 -#: js/timbre.js:2096 -#.TRANS: musical effect to simulate a choral sound -msgid "chorus" +#: js/blocks/PitchBlocks.js:440 +msgid "pitch class" msgstr "" -#: js/ToneBlocks.js:630 -msgid "delay" +#: js/blocks/PitchBlocks.js:441 +msgid "scalar class" msgstr "" -#: js/ToneBlocks.js:678 -msgid "The Vibrato block adds a rapid, slight variation in pitch." +#: js/blocks/PitchBlocks.js:443 +msgid "nth degree" msgstr "" -#: js/ToneBlocks.js:686 -#: js/timbre.js:2094 -#.TRANS: a rapid, slight variation in pitch -msgid "vibrato" +#: js/blocks/PitchBlocks.js:444 +msgid "pitch to shade" msgstr "" -#: js/ToneBlocks.js:689 -#: js/timbre.js:2221 -msgid "intensity" +#: js/blocks/PitchBlocks.js:445 +msgid "pitch to color" msgstr "" -#: js/ToneBlocks.js:733 -#.TRANS: select synthesizer -msgid "set synth" +#: js/blocks/PitchBlocks.js:629 +#: js/widgets/musickeyboard.js:735 +#.TRANS: MIDI is a technical standard for electronic music +msgid "MIDI" msgstr "" -#: js/ToneBlocks.js:804 -msgid "synth name" +#: js/blocks/PitchBlocks.js:642 +#.TRANS: set an offset associated with the numeric piano keyboard mapping +msgid "set pitch number offset" msgstr "" -#: js/ToneBlocks.js:842 -msgid "set default instrument" +#: js/blocks/PitchBlocks.js:645 +msgid "The Set pitch number offset block is used to set the offset for mapping pitch numbers to pitch and octave." msgstr "" -#: js/ToneBlocks.js:895 -#: js/ToneBlocks.js:943 -#.TRANS: set the characteristics of a custom instrument -msgid "set instrument" +#: js/blocks/PitchBlocks.js:679 +#.TRANS: convert piano key number (1-88) to pitch +msgid "number to pitch" msgstr "" -#: js/ToneBlocks.js:898 -#: js/ToneBlocks.js:926 -#: js/ToneBlocks.js:932 -msgid "The Set instrument block selects a voice for the synthesizer," +#: js/blocks/PitchBlocks.js:682 +msgid "The Number to pitch block will convert a pitch number to a pich name." msgstr "" -#: js/ToneBlocks.js:900 -#: js/ToneBlocks.js:934 -msgid "eg guitar piano violin or cello." +#: js/blocks/PitchBlocks.js:715 +#.TRANS: convert piano key number (1-88) to octave +msgid "number to octave" msgstr "" -#: js/ToneBlocks.js:1015 -msgid "Import a sound file to use as an instrument and set its pitch center." +#: js/blocks/PitchBlocks.js:717 +msgid "The Number to octave block will convert a pitch number to an octave." msgstr "" -#: js/ToneBlocks.js:1110 -msgid "Upload a sound file to connect with the sample block." +#: js/blocks/PitchBlocks.js:726 +msgid "y to pitch" msgstr "" -#: js/MeterBlocks.js:34 -#.TRANS: musical meter (time signature), e.g., 4:4 -msgid "current meter" +#: js/blocks/PitchBlocks.js:729 +msgid "Y to pitch block will convert a staff y position to corresponding pitch notation." msgstr "" -#: js/MeterBlocks.js:85 -#.TRANS: number of beats per minute -msgid "beat factor" +#: js/blocks/PitchBlocks.js:841 +msgid "accidental selector" msgstr "" -#: js/MeterBlocks.js:161 -msgid "The Beats per minute block returns the current beats per minute." +#: js/blocks/PitchBlocks.js:844 +msgid "The Accidental selector block is used to choose between double-sharp, sharp, natural, flat, and double-flat." msgstr "" -#: js/MeterBlocks.js:169 -#: js/status.js:152 -#.TRANS: number of beats played per minute -msgid "beats per minute2" +#: js/blocks/PitchBlocks.js:858 +msgid "Pitch can be specified in terms of ni dha pa ma ga re sa." msgstr "" -#: js/MeterBlocks.js:169 -#: js/MeterBlocks.js:1056 -#: js/MeterBlocks.js:1133 -#: js/MeterBlocks.js:1211 -#.TRANS: sets tempo by defining a beat and beats per minute -msgid "beats per minute" +#: js/blocks/PitchBlocks.js:872 +msgid "Pitch can be specified in terms of C D E F G A B." msgstr "" -#: js/MeterBlocks.js:233 -#.TRANS: count of current musical measure in meter -msgid "measure count" +#: js/blocks/PitchBlocks.js:884 +msgid "solfege" msgstr "" -#: js/MeterBlocks.js:241 -msgid "The Measure count block returns the current measure." +#: js/blocks/PitchBlocks.js:887 +msgid "Pitch can be specified in terms of do re mi fa sol la ti." msgstr "" -#: js/MeterBlocks.js:290 -#.TRANS: count of current beat in the meter -msgid "beat count" +#: js/blocks/PitchBlocks.js:922 +msgid "The Invert block rotates any contained notes around a target note." msgstr "" -#: js/MeterBlocks.js:300 -#: js/MeterBlocks.js:311 -#: js/MeterBlocks.js:565 -#: js/MeterBlocks.js:576 -msgid "The Beat count block is the number of the current beat," +#: js/blocks/PitchBlocks.js:929 +#.TRANS: pitch inversion rotates a pitch around another pitch +msgid "invert" msgstr "" -#: js/MeterBlocks.js:313 -#: js/MeterBlocks.js:578 -msgid "eg 1, 2, 3, or 4." +#: js/blocks/PitchBlocks.js:968 +#.TRANS: pitch inversion rotates a pitch around another pitch (odd number) +msgid "invert (odd)" msgstr "" -#: js/MeterBlocks.js:368 -#.TRANS: count the number of notes -msgid "sum note values" +#: js/blocks/PitchBlocks.js:1001 +#.TRANS: pitch inversion rotates a pitch around another pitch (even number) +msgid "invert (even)" msgstr "" -#: js/MeterBlocks.js:376 -#: js/MeterBlocks.js:440 -msgid "The Note counter block can be used to count the number of contained notes." +#: js/blocks/PitchBlocks.js:1022 +#.TRANS: register is the octave of the current pitch +msgid "register" msgstr "" -#: js/MeterBlocks.js:432 -#.TRANS: count the number of notes -msgid "note counter" +#: js/blocks/PitchBlocks.js:1026 +msgid "The Register block provides an easy way to modify the register (octave) of the notes that follow it." msgstr "" -#: js/MeterBlocks.js:496 -#.TRANS: number of whole notes that have been played -msgid "whole notes played" +#: js/blocks/PitchBlocks.js:1047 +#.TRANS: cents are units used to specify the ratio between pitches. There are 100 cents between successive notes. +msgid "50 cents" msgstr "" -#: js/MeterBlocks.js:505 -msgid "The Whole notes played block returns the total number of whole notes played." +#: js/blocks/PitchBlocks.js:1102 +msgid "The Semi-tone transposition block will shift the pitches contained inside Note blocks up (or down) by half steps." msgstr "" -#: js/MeterBlocks.js:555 -#: js/DictActions.js:83 -#.TRANS: number of notes that have been played -msgid "notes played" +#: js/blocks/PitchBlocks.js:1104 +msgid "In the example shown above, sol is shifted up to sol#." msgstr "" -#: js/MeterBlocks.js:653 -msgid "The No clock block decouples the notes from the master clock." +#: js/blocks/PitchBlocks.js:1110 +#.TRANS: adjust the amount of shift (up or down) of a pitch +msgid "semi-tone transpose" msgstr "" -#: js/MeterBlocks.js:661 -#.TRANS: don't lock notes to master clock -msgid "no clock" +#: js/blocks/PitchBlocks.js:1143 +msgid "The Transpose by Ratio block will shift the pitches contained inside Note blocks up (or down) by a ratio" msgstr "" -#: js/MeterBlocks.js:700 -msgid "on weak beat do" +#: js/blocks/PitchBlocks.js:1149 +#.TRANS: adjust the amount of shift (up or down) of a pitch +msgid "transpose by ratio" msgstr "" -#: js/MeterBlocks.js:705 -msgid "The On-weak-beat block lets you specify actions to take on weak (off) beats." +#: js/blocks/PitchBlocks.js:1232 +#.TRANS: down sixth means the note is five scale degrees below current note +msgid "down sixth" msgstr "" -#: js/MeterBlocks.js:750 -msgid "on strong beat" +#: js/blocks/PitchBlocks.js:1251 +#.TRANS: down third means the note is two scale degrees below current note +msgid "down third" msgstr "" -#: js/MeterBlocks.js:758 -msgid "The On-strong-beat block lets you specify actions to take on specified beats." +#: js/blocks/PitchBlocks.js:1270 +#.TRANS: seventh means the note is the six scale degrees above current note +msgid "seventh" msgstr "" -#: js/MeterBlocks.js:769 -msgid "beat" +#: js/blocks/PitchBlocks.js:1289 +#.TRANS: sixth means the note is the five scale degrees above current note +msgid "sixth" msgstr "" -#: js/MeterBlocks.js:813 -msgid "on every beat do" +#: js/blocks/PitchBlocks.js:1308 +#.TRANS: fifth means the note is the four scale degrees above current note +msgid "fifth" msgstr "" -#: js/MeterBlocks.js:821 -msgid "The On-every-beat block lets you specify actions to take on every beat." +#: js/blocks/PitchBlocks.js:1328 +#.TRANS: fourth means the note is three scale degrees above current note +msgid "fourth" msgstr "" -#: js/MeterBlocks.js:874 -msgid "on every note do" +#: js/blocks/PitchBlocks.js:1347 +#.TRANS: third means the note is two scale degrees above current note +msgid "third" msgstr "" -#: js/MeterBlocks.js:882 -msgid "The On-every-note block lets you specify actions to take on every note." +#: js/blocks/PitchBlocks.js:1366 +#.TRANS: second means the note is one scale degree above current note +msgid "second" msgstr "" -#: js/MeterBlocks.js:928 -#: js/MeterBlocks.js:999 -#.TRANS: sets tempo by defining a beat and beats per minute -msgid "master beats per minute" +#: js/blocks/PitchBlocks.js:1407 +msgid "The Scalar transposition block will shift the pitches contained inside Note blocks up (or down) the scale." msgstr "" -#: js/MeterBlocks.js:952 -#: js/MeterBlocks.js:1078 -#: js/MeterBlocks.js:1135 -msgid "bpm" +#: js/blocks/PitchBlocks.js:1409 +msgid "In the example shown above, sol is shifted up to la." msgstr "" -#: js/MeterBlocks.js:952 -#: js/MeterBlocks.js:1078 -#: js/MeterBlocks.js:1135 -msgid "beat value" +#: js/blocks/PitchBlocks.js:1416 +#.TRANS: adjust the amount of shift (up or down) of a pitch by musical scale (scalar) steps +msgid "scalar transpose" msgstr "" -#: js/MeterBlocks.js:1024 -#: js/MeterBlocks.js:1167 -#: js/MeterBlocks.js:1241 -msgid "Beats per minute must be > 30." +#: js/blocks/PitchBlocks.js:1451 +msgid "The Accidental block is used to create sharps and flats" msgstr "" -#: js/MeterBlocks.js:1027 -#: js/MeterBlocks.js:1170 -#: js/MeterBlocks.js:1244 -msgid "Maximum beats per minute is 1000." +#: js/blocks/PitchBlocks.js:1458 +#.TRANS: An accidental is a modification to a pitch, e.g., sharp or flat. +msgid "accidental override" msgstr "" -#: js/MeterBlocks.js:1068 -msgid "The Beats per minute block sets the number of 1/4 notes per minute." +#: js/blocks/PitchBlocks.js:1581 +msgid "The Hertz block (in combination with a Number block) will play a sound at the specified frequency." msgstr "" -#: js/MeterBlocks.js:1279 -#.TRANS: anacrusis -msgid "pickup" +#: js/blocks/PitchBlocks.js:1671 +msgid "The Pitch Number block will play a pitch associated by its number, e.g. 0 for C and 7 for G." msgstr "" -#: js/MeterBlocks.js:1367 -msgid "number of beats" +#: js/blocks/PitchBlocks.js:1703 +#: js/blocks/PitchBlocks.js:1745 +#.TRANS: a numeric mapping of the notes in an octave based on the musical mode +#.TRANS: a numeric mapping of the notes in an octave based on the musical mode +msgid "nth modal pitch" msgstr "" -#: js/DictBlocks.js:77 -msgid "show dictionary" +#: js/blocks/PitchBlocks.js:1706 +msgid "n^th Modal Pitch takes the pattern of pitches in semitones for a mode and makes each point a degree of the mode," msgstr "" -#: js/DictBlocks.js:129 -msgid "The Dictionary block returns a dictionary." +#: js/blocks/PitchBlocks.js:1708 +msgid "starting from 1 and regardless of tonal framework (i.e. not always 8 notes in the octave)" msgstr "" -#: js/DictBlocks.js:197 -#: js/DictBlocks.js:339 -msgid "The Get-dict block returns a value in the dictionary for a specified key." +#: js/blocks/PitchBlocks.js:1749 +msgid "N^th Modal Pitch takes a number as an input as the n^th degree for the given mode. 0 is the first position, 1 is the second, -1 is the note before the first etc." msgstr "" -#: js/DictBlocks.js:212 -#: js/DictBlocks.js:354 -#.TRANS: retrieve a value from the dictionary with a given key -msgid "get value" +#: js/blocks/PitchBlocks.js:1751 +msgid "The pitches change according to the mode specified without any need for respellings." msgstr "" -#: js/DictBlocks.js:215 -#: js/DictBlocks.js:216 -#: js/DictBlocks.js:289 -#: js/DictBlocks.js:290 -#: js/DictBlocks.js:357 -#: js/DictBlocks.js:430 -#: js/DictBlocks.js:431 -msgid "key2" +#: js/blocks/PitchBlocks.js:1790 +msgid "Scale Degree is a common convention in music. Scale Degree offers seven possible positions in the scale (1-7) and can be modified via accidentals." msgstr "" -#: js/DictBlocks.js:271 -#: js/DictBlocks.js:411 -msgid "The Set-dict block sets a value in the dictionary for a specified key." +#: js/blocks/PitchBlocks.js:1792 +msgid "Scale Degree 1 is always the first pitch in a given scale, regardless of octave." msgstr "" -#: js/DictBlocks.js:286 -#: js/DictBlocks.js:427 -#.TRANS: set a value in the dictionary for a given key -msgid "set value" +#: js/blocks/PitchBlocks.js:1814 +#.TRANS: step some number of notes in current musical scale +msgid "scalar step" msgstr "" -#: js/ExtrasBlocks.js:33 -msgid "fraction" +#: js/blocks/PitchBlocks.js:1819 +msgid "The Scalar Step block (in combination with a Number block) will play the next pitch in a scale," msgstr "" -#: js/ExtrasBlocks.js:36 -msgid "Convert a float to a fraction" +#: js/blocks/PitchBlocks.js:1821 +msgid "eg if the last note played was sol, Scalar Step 1 will play la." msgstr "" -#: js/ExtrasBlocks.js:93 -msgid "save as ABC" +#: js/blocks/PitchBlocks.js:1857 +msgid "The Pitch block specifies the pitch name and octave of a note that together determine the frequency of the note." msgstr "" -#: js/ExtrasBlocks.js:96 -#: js/ExtrasBlocks.js:132 -#: js/ExtrasBlocks.js:168 -msgid "title" +#: js/blocks/ProgramBlocks.js:33 +msgid "The Load-heap-from-app block loads the heap from a web page." msgstr "" -#: js/ExtrasBlocks.js:129 -msgid "save as Lilypond" +#: js/blocks/ProgramBlocks.js:44 +#.TRANS: load the heap contents from a URL +msgid "load heap from App" msgstr "" -#: js/ExtrasBlocks.js:165 -msgid "save as SVG" +#: js/blocks/ProgramBlocks.js:95 +msgid "Error parsing JSON data:" msgstr "" -#: js/ExtrasBlocks.js:216 -msgid "no background" +#: js/blocks/ProgramBlocks.js:100 +msgid "404: Page not found" msgstr "" -#: js/ExtrasBlocks.js:219 -msgid "The No background block eliminates the background from the saved SVG output." +#: js/blocks/ProgramBlocks.js:133 +msgid "The Save-heap-to-app block saves the heap to a web page." msgstr "" -#: js/ExtrasBlocks.js:247 -msgid "show blocks" -msgstr "vis blokke" - -#: js/ExtrasBlocks.js:249 -msgid "The Show blocks block shows the blocks." +#: js/blocks/ProgramBlocks.js:144 +#.TRANS: save the heap contents to a URL +msgid "save heap to App" msgstr "" -#: js/ExtrasBlocks.js:274 -msgid "hide blocks" -msgstr "skjul blokke" - -#: js/ExtrasBlocks.js:276 -msgid "The Hide blocks block hides the blocks." +#: js/blocks/ProgramBlocks.js:189 +msgid "Cannot find a valid heap for" msgstr "" -#: js/ExtrasBlocks.js:305 -#: js/ExtrasBlocks.js:335 -msgid "The Space block is used to add space between blocks." +#: js/blocks/ProgramBlocks.js:206 +msgid "The Load-heap block loads the heap from a file." msgstr "" -#: js/ExtrasBlocks.js:373 -msgid "wait" -msgstr "vent" +#: js/blocks/ProgramBlocks.js:217 +#.TRANS: load the heap from a file +msgid "load heap" +msgstr "" -#: js/ExtrasBlocks.js:376 -msgid "The Wait block pauses the program for a specified number of seconds." +#: js/blocks/ProgramBlocks.js:270 +msgid "The file you selected does not contain a valid heap." msgstr "" -#: js/ExtrasBlocks.js:430 -#: plugins/facebook.rtp:30 -msgid "comment" -msgstr "kommentar" +#: js/blocks/ProgramBlocks.js:275 +msgid "The loadHeap block needs a loadFile block." +msgstr "" -#: js/ExtrasBlocks.js:466 -msgid "print" -msgstr "udskriv" +#: js/blocks/ProgramBlocks.js:291 +msgid "The Set-heap block loads the heap." +msgstr "" -#: js/ExtrasBlocks.js:473 -msgid "The Print block displays text at the top of the screen." +#: js/blocks/ProgramBlocks.js:340 +msgid "The block you selected does not contain a valid heap." msgstr "" -#: js/ExtrasBlocks.js:579 -msgid "display grid" +#: js/blocks/ProgramBlocks.js:343 +msgid "The Set heap block needs a heap." msgstr "" -#: js/ExtrasBlocks.js:584 -msgid "The Display Grid Block changes the grid type" +#: js/blocks/ProgramBlocks.js:360 +msgid "The Load-dictionary block loads a dictionary from a file." msgstr "" -#: js/ExtrasBlocks.js:686 -#: js/ExtrasBlocks.js:705 -#: js/ExtrasBlocks.js:728 -#: js/ExtrasBlocks.js:751 -#: js/ExtrasBlocks.js:769 -#: js/ExtrasBlocks.js:788 -#: js/ExtrasBlocks.js:807 -#: js/ExtrasBlocks.js:826 -msgid "unknown" +#: js/blocks/ProgramBlocks.js:372 +#.TRANS: load a dictionary from a file +msgid "load dictionary" msgstr "" -#: js/SensorsBlocks.js:36 -msgid "The Input block prompts for keyboard input." +#: js/blocks/ProgramBlocks.js:390 +#: js/blocks/ProgramBlocks.js:658 +#: js/blocks/ToneBlocks.js:1025 +msgid "file" msgstr "" -#: js/SensorsBlocks.js:46 -msgid "input" +#: js/blocks/ProgramBlocks.js:444 +msgid "The file you selected does not contain a valid dictionary." msgstr "" -#: js/SensorsBlocks.js:64 -msgid "Input a value" +#: js/blocks/ProgramBlocks.js:449 +msgid "The load dictionary block needs a load file block." msgstr "" -#: js/SensorsBlocks.js:126 -msgid "input value" +#: js/blocks/ProgramBlocks.js:466 +msgid "The Set-dictionary block loads a dictionary." msgstr "" -#: js/SensorsBlocks.js:131 -msgid "The Input-value block stores the input." +#: js/blocks/ProgramBlocks.js:477 +#.TRANS: load a dictionary from a JSON +msgid "set dictionary" msgstr "" -#: js/SensorsBlocks.js:238 -msgid "loudness" -msgstr "lydstyrke" +#: js/blocks/ProgramBlocks.js:546 +msgid "The block you selected does not contain a valid dictionary." +msgstr "" -#: js/SensorsBlocks.js:245 -msgid "The Loudness block returns the volume detected by the microphone." +#: js/blocks/ProgramBlocks.js:550 +msgid "The set dictionary block needs a dictionary." msgstr "" -#: js/SensorsBlocks.js:300 -msgid "click" +#: js/blocks/ProgramBlocks.js:567 +msgid "The Save-heap block saves the heap to a file." msgstr "" -#: js/SensorsBlocks.js:306 -msgid "The Click block triggers an event if a mouse has been clicked." +#: js/blocks/ProgramBlocks.js:578 +#.TRANS: save the heap to a file +msgid "save heap" msgstr "" -#: js/SensorsBlocks.js:313 -msgid "The Click block triggers an event if a turtle has been clicked." +#: js/blocks/ProgramBlocks.js:629 +msgid "The Save-dictionary block saves a dictionary to a file." msgstr "" -#: js/SensorsBlocks.js:342 -msgid "cursor over" +#: js/blocks/ProgramBlocks.js:640 +#.TRANS: save a dictionary to a file +msgid "save dictionary" msgstr "" -#: js/SensorsBlocks.js:387 -msgid "cursor out" +#: js/blocks/ProgramBlocks.js:720 +msgid "The Open palette block opens a palette." msgstr "" -#: js/SensorsBlocks.js:433 -msgid "cursor button down" +#: js/blocks/ProgramBlocks.js:727 +msgid "open palette" msgstr "" -#: js/SensorsBlocks.js:477 -msgid "cursor button up" +#: js/blocks/ProgramBlocks.js:785 +msgid "The Delete block block removes a block." msgstr "" -#: js/SensorsBlocks.js:638 -msgid "The Get red block returns the red component of the pixel under the mouse." +#: js/blocks/ProgramBlocks.js:797 +#.TRANS: Move this block to the trash. +msgid "delete block" msgstr "" -#: js/SensorsBlocks.js:644 -msgid "The Get red block returns the red component of the pixel under the turtle." +#: js/blocks/ProgramBlocks.js:861 +msgid "The Move block block moves a block." msgstr "" -#: js/SensorsBlocks.js:685 -#: plugins/rodi.rtp:216 -msgid "pixel color" +#: js/blocks/ProgramBlocks.js:869 +#.TRANS: Move the position of a block on the screen. +msgid "move block" msgstr "" -#: js/SensorsBlocks.js:690 -msgid "The Get pixel block returns the color of the pixel under the mouse." +#: js/blocks/ProgramBlocks.js:881 +#: js/blocks/ProgramBlocks.js:1048 +msgid "block number" msgstr "" -#: js/SensorsBlocks.js:696 -msgid "The Get pixel block returns the color of the pixel under the turtle." +#: js/blocks/ProgramBlocks.js:935 +#.TRANS: Run program beginning at this block. +msgid "run block" msgstr "" -#: js/SensorsBlocks.js:758 -msgid "time" -msgstr "tid" +#: js/blocks/ProgramBlocks.js:1025 +msgid "The Dock block block connections two blocks." +msgstr "" -#: js/SensorsBlocks.js:804 -msgid "cursor y" +#: js/blocks/ProgramBlocks.js:1036 +#.TRANS: We can connect a block to another block. +msgid "connect blocks" msgstr "" -#: js/SensorsBlocks.js:809 -msgid "The Cursor Y block returns the vertical position of the mouse." +#: js/blocks/ProgramBlocks.js:1048 +msgid "target block" msgstr "" -#: js/SensorsBlocks.js:845 -msgid "cursor x" +#: js/blocks/ProgramBlocks.js:1048 +msgid "connection number" msgstr "" -#: js/SensorsBlocks.js:850 -msgid "The Cursor X block returns the horizontal position of the mouse." +#: js/blocks/ProgramBlocks.js:1140 +msgid "The Make block block creates a new block." msgstr "" -#: js/SensorsBlocks.js:886 -msgid "mouse button" +#: js/blocks/ProgramBlocks.js:1152 +#.TRANS: Create a new block +msgid "make block" msgstr "" -#: js/SensorsBlocks.js:888 -msgid "The Mouse-button block returns True if the mouse button is pressed." +#: js/blocks/ProgramBlocks.js:1285 +msgid "Cannot find block" msgstr "" -#: js/SensorsBlocks.js:934 -msgid "to ASCII" +#: js/blocks/ProgramBlocks.js:1304 +#: js/blocks/ProgramBlocks.js:1313 +msgid "Warning: block argument type mismatch" msgstr "" -#: js/SensorsBlocks.js:938 -msgid "The To ASCII block converts numbers to letters." +#: js/blocks/ProgramBlocks.js:1347 +msgid "The Open project block is used to open a project from a web page." msgstr "" -#: js/SensorsBlocks.js:1005 -msgid "The Keyboard block returns computer keyboard input." +#: js/blocks/ProgramBlocks.js:1357 +msgid "open project" msgstr "" -#: js/IntervalsActions.js:216 -msgid "Adding missing pitch number 0." +#: js/blocks/ProgramBlocks.js:1410 +msgid "Please enter a valid URL." msgstr "" -#: js/IntervalsActions.js:224 -msgid "Ignoring pitch numbers less than zero or greater than eleven." +#: js/blocks/ToneBlocks.js:34 +msgid "oscillator" msgstr "" -#: js/IntervalsActions.js:230 -msgid "Ignoring duplicate pitch numbers." +#: js/blocks/ToneBlocks.js:42 +#: js/blocks/WidgetBlocks.js:179 +#: js/widgets/timbre.js:1558 +#: js/widgets/timbre.js:1808 +#.TRANS: there are different types (sine, triangle, square...) of oscillators. +#.TRANS: type of filter, e.g., lowpass, highpass, etc. +msgid "type" msgstr "" -#: js/PitchActions.js:88 -msgid "The Scalar Step Block must be used inside of a Note Block." +#: js/blocks/ToneBlocks.js:44 +#: js/widgets/timbre.js:1562 +#.TRANS: Partials refers to the number of sine waves combined into the sound. +msgid "partials" msgstr "" -#: js/PitchActions.js:107 -msgid "The Scalar Step Block must be preceded by a Pitch Block." +#: js/blocks/ToneBlocks.js:76 +msgid "You are adding multiple oscillator blocks." msgstr "" -#: js/DrumActions.js:231 -msgid "Noise Block: Did you mean to use a Note block?" +#: js/blocks/ToneBlocks.js:144 +#: js/widgets/timbre.js:1225 +#.TRANS: a duo synthesizer combines a synth with a sequencer +msgid "duo synth" msgstr "" -#: js/MeterActions.js:101 -#: js/MeterActions.js:139 -msgid "beats per minute must be greater than" +#: js/blocks/ToneBlocks.js:149 +msgid "The Duo synth block is a duo-frequency modulator used to define a timbre." msgstr "" -#: js/MeterActions.js:111 -#: js/MeterActions.js:149 -msgid "maximum" +#: js/blocks/ToneBlocks.js:157 +#: js/widgets/timbre.js:1476 +msgid "vibrato rate" msgstr "" -#: js/MeterActions.js:117 -#: js/MeterActions.js:155 -msgid "beats per minute is" +#: js/blocks/ToneBlocks.js:157 +msgid "vibrato intensity" msgstr "" -#: js/ToneActions.js:134 -msgid "Vibrato intensity must be between 1 and 100." +#: js/blocks/ToneBlocks.js:185 +#: js/widgets/timbre.js:1221 +#.TRANS: AM (amplitude modulation) synthesizer +msgid "AM synth" msgstr "" -#: js/ToneActions.js:139 -msgid "Vibrato rate must be greater than 0." +#: js/blocks/ToneBlocks.js:189 +msgid "The AM synth block is an amplitude modulator used to define a timbre." msgstr "" -#: js/ToneActions.js:192 -#: js/ToneActions.js:265 -#.TRANS: Depth is the intesity of the tremolo or chorus effect. -msgid "Depth is out of range." +#: js/blocks/ToneBlocks.js:224 +#: js/widgets/timbre.js:1223 +#.TRANS: FM (frequency modulation) synthesizer +msgid "FM synth" msgstr "" -#: js/ToneActions.js:301 -msgid "Distortion must be from 0 to 100." +#: js/blocks/ToneBlocks.js:228 +msgid "The FM synth block is a frequency modulator used to define a timbre." msgstr "" -#: js/ToneActions.js:332 -#.TRANS: partials components in a harmonic series -msgid "Partial must be greater than or equal to 0." +#: js/blocks/ToneBlocks.js:262 +msgid "partial" msgstr "" -#: js/ToneActions.js:378 -#: js/ToneActions.js:417 -#: js/ToneActions.js:456 -#: js/timbre.js:782 -msgid "Unable to use synth due to existing oscillator" +#: js/blocks/ToneBlocks.js:265 +msgid "The Partial block is used to specify a weight for a specific partial harmonic." msgstr "" -#: js/ToneActions.js:388 -#: js/ToneActions.js:427 -msgid "The input cannot be negative." +#: js/blocks/ToneBlocks.js:284 +#.TRANS: partials are weighted components in a harmonic series +msgid "Partial weight must be between 0 and 1." msgstr "" -#: js/DictActions.js:75 -#: js/DictActions.js:153 -#: js/DictActions.js:188 -msgid "font" +#: js/blocks/ToneBlocks.js:297 +#.TRANS: partials are weighted components in a harmonic series +msgid "Partial block should be used inside of a Weighted-partials block." msgstr "" -#: js/musicutils.js:363 -#: js/musicutils.js:471 -#: js/pitchdrummatrix.js:151 -#: js/musickeyboard.js:2563 -msgid "rest" +#: js/blocks/ToneBlocks.js:325 +#.TRANS: partials are weighted components in a harmonic series +msgid "weighted partials" msgstr "" -#: js/musicutils.js:565 -#.TRANS: ordinal number. Please keep exactly one space between each number. -msgid "1st 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th" +#: js/blocks/ToneBlocks.js:383 +msgid "The Harmonic block will add harmonics to the contained notes." msgstr "" -#: js/musicutils.js:629 -#: js/musicutils.js:812 -#: js/musicutils.js:911 -#.TRANS: augmented is a music term related to intervals -msgid "augmented" +#: js/blocks/ToneBlocks.js:390 +#.TRANS: A harmonic is an overtone. +msgid "harmonic" msgstr "" -#: js/musicutils.js:631 -#: js/musicutils.js:813 -#: js/musicutils.js:910 -#.TRANS: diminished is a music term related to intervals and mode -msgid "diminished" +#: js/blocks/ToneBlocks.js:431 +msgid "The Distortion block adds distortion to the pitch." msgstr "" -#: js/musicutils.js:639 -#.TRANS: twelve semi-tone scale for music -msgid "chromatic" +#: js/blocks/ToneBlocks.js:438 +#: js/widgets/timbre.js:2100 +#.TRANS: distortion is an alteration in the sound +msgid "distortion" msgstr "" -#: js/musicutils.js:640 -msgid "algerian" +#: js/blocks/ToneBlocks.js:487 +msgid "The Tremolo block adds a wavering effect." msgstr "" -#: js/musicutils.js:641 -msgid "spanish" +#: js/blocks/ToneBlocks.js:495 +#: js/widgets/timbre.js:2092 +#.TRANS: a wavering effect in a musical tone +msgid "tremolo" msgstr "" -#: js/musicutils.js:643 -#.TRANS: modal scale in music -msgid "octatonic" +#: js/blocks/ToneBlocks.js:500 +#: js/blocks/ToneBlocks.js:569 +#: js/blocks/ToneBlocks.js:630 +#: js/blocks/ToneBlocks.js:689 +#: js/widgets/timbre.js:2134 +#: js/widgets/timbre.js:2222 +#: js/widgets/timbre.js:2317 +#: js/widgets/timbre.js:2419 +#.TRANS: rate at which tremolo wavers +msgid "rate" msgstr "" -#: js/musicutils.js:645 -#.TRANS: harmonic major scale in music -msgid "harmonic major" +#: js/blocks/ToneBlocks.js:502 +#: js/blocks/ToneBlocks.js:630 +#: js/widgets/timbre.js:2137 +#: js/widgets/timbre.js:2328 +#.TRANS: amplitude of tremolo waver +msgid "depth" msgstr "" -#: js/musicutils.js:647 -#.TRANS: natural minor scales in music -msgid "natural minor" +#: js/blocks/ToneBlocks.js:559 +msgid "The Phaser block adds a sweeping sound." msgstr "" -#: js/musicutils.js:649 -#.TRANS: harmonic minor scale in music -msgid "harmonic minor" +#: js/blocks/ToneBlocks.js:566 +#: js/widgets/timbre.js:2098 +#.TRANS: alter the phase of the sound +msgid "phaser" msgstr "" -#: js/musicutils.js:651 -#.TRANS: melodic minor scale in music -msgid "melodic minor" +#: js/blocks/ToneBlocks.js:569 +#: js/turtleactions/IntervalsActions.js:114 +#: js/widgets/timbre.js:2422 +msgid "octaves" msgstr "" -#: js/musicutils.js:655 -#.TRANS: modal scale for music -msgid "dorian" +#: js/blocks/ToneBlocks.js:569 +#: js/widgets/timbre.js:2425 +msgid "base frequency" msgstr "" -#: js/musicutils.js:657 -#.TRANS: modal scale for music -msgid "phrygian" +#: js/blocks/ToneBlocks.js:619 +msgid "The Chorus block adds a chorus effect." msgstr "" -#: js/musicutils.js:659 -#.TRANS: modal scale for music -msgid "lydian" +#: js/blocks/ToneBlocks.js:627 +#: js/widgets/timbre.js:2096 +#.TRANS: musical effect to simulate a choral sound +msgid "chorus" msgstr "" -#: js/musicutils.js:661 -#.TRANS: modal scale for music -msgid "mixolydian" +#: js/blocks/ToneBlocks.js:630 +msgid "delay" msgstr "" -#: js/musicutils.js:665 -#.TRANS: modal scale for music -msgid "locrian" +#: js/blocks/ToneBlocks.js:678 +msgid "The Vibrato block adds a rapid, slight variation in pitch." msgstr "" -#: js/musicutils.js:667 -#.TRANS: minor jazz scale for music -msgid "jazz minor" +#: js/blocks/ToneBlocks.js:686 +#: js/widgets/timbre.js:2094 +#.TRANS: a rapid, slight variation in pitch +msgid "vibrato" msgstr "" -#: js/musicutils.js:669 -#.TRANS: bebop scale for music -msgid "bebop" +#: js/blocks/ToneBlocks.js:689 +#: js/widgets/timbre.js:2221 +msgid "intensity" msgstr "" -#: js/musicutils.js:670 -msgid "arabic" +#: js/blocks/ToneBlocks.js:733 +#.TRANS: select synthesizer +msgid "set synth" msgstr "" -#: js/musicutils.js:671 -msgid "byzantine" +#: js/blocks/ToneBlocks.js:804 +msgid "synth name" msgstr "" -#: js/musicutils.js:673 -#.TRANS: musical scale for music by Verdi -msgid "enigmatic" +#: js/blocks/ToneBlocks.js:842 +msgid "set default instrument" msgstr "" -#: js/musicutils.js:674 -msgid "ethiopian" +#: js/blocks/ToneBlocks.js:895 +#: js/blocks/ToneBlocks.js:943 +#.TRANS: set the characteristics of a custom instrument +msgid "set instrument" msgstr "" -#: js/musicutils.js:676 -#.TRANS: Ethiopic scale for music -msgid "geez" +#: js/blocks/ToneBlocks.js:898 +#: js/blocks/ToneBlocks.js:926 +#: js/blocks/ToneBlocks.js:932 +msgid "The Set instrument block selects a voice for the synthesizer," msgstr "" -#: js/musicutils.js:677 -msgid "hindu" +#: js/blocks/ToneBlocks.js:900 +#: js/blocks/ToneBlocks.js:934 +msgid "eg guitar piano violin or cello." msgstr "" -#: js/musicutils.js:678 -msgid "hungarian" +#: js/blocks/ToneBlocks.js:1015 +msgid "Import a sound file to use as an instrument and set its pitch center." msgstr "" -#: js/musicutils.js:680 -#.TRANS: minor Romanian scale for music -msgid "romanian minor" +#: js/blocks/ToneBlocks.js:1110 +msgid "Upload a sound file to connect with the sample block." msgstr "" -#: js/musicutils.js:681 -msgid "spanish gypsy" +#: js/blocks/VolumeBlocks.js:35 +msgid "synth volume" msgstr "" -#: js/musicutils.js:683 -#.TRANS: musical scale for Mid-Eastern music -msgid "maqam" +#: js/blocks/VolumeBlocks.js:39 +msgid "The Synth volume block returns the current volume of the current synthesizer." msgstr "" -#: js/musicutils.js:685 -#.TRANS: minor blues scale for music -msgid "minor blues" +#: js/blocks/VolumeBlocks.js:105 +msgid "master volume" msgstr "" -#: js/musicutils.js:687 -#.TRANS: major blues scale for music -msgid "major blues" +#: js/blocks/VolumeBlocks.js:109 +msgid "The Master volume block returns the master volume." msgstr "" -#: js/musicutils.js:688 -msgid "whole tone" +#: js/blocks/VolumeBlocks.js:355 +#: js/blocks/VolumeBlocks.js:524 +msgid "set synth volume" msgstr "" -#: js/musicutils.js:690 -#.TRANS: pentatonic is a general term that means "five note scale". This scale is typically known as "minor pentatonic" -msgid "minor pentatonic" +#: js/blocks/VolumeBlocks.js:362 +#: js/blocks/VolumeBlocks.js:545 +msgid "synth" msgstr "" -#: js/musicutils.js:692 -#.TRANS: pentatonic is a general term that means "five note scale". This scale is typically known as "major pentatonic" -msgid "major pentatonic" +#: js/blocks/VolumeBlocks.js:403 +#: js/blocks/VolumeBlocks.js:577 +#: js/blocks/VolumeBlocks.js:740 +#: js/turtleactions/VolumeActions.js:173 +msgid "Setting volume to 0." msgstr "" -#: js/musicutils.js:693 -msgid "chinese" +#: js/blocks/VolumeBlocks.js:440 +msgid "Synth not found" msgstr "" -#: js/musicutils.js:694 -msgid "egyptian" +#: js/blocks/VolumeBlocks.js:494 +msgid "set drum volume" msgstr "" -#: js/musicutils.js:696 -#.TRANS: https://en.wikipedia.org/wiki/Hirajoshi_scale NOTE: There are three different versions of this scale -msgid "hirajoshi" +#: js/blocks/VolumeBlocks.js:530 +msgid "The Set synth volume block will change the volume of a particular synth," msgstr "" -#: js/musicutils.js:697 -msgid "Japan" +#: js/blocks/VolumeBlocks.js:532 +msgid "eg guitar violin snare drum etc." msgstr "" -#: js/musicutils.js:699 -#.TRANS: https://en.wikipedia.org/wiki/In_scale and https://en.wikipedia.org/wiki/Sakura_Sakura -msgid "in" +#: js/blocks/VolumeBlocks.js:534 +msgid "The default volume is 50." msgstr "" -#: js/musicutils.js:701 -#.TRANS: https://en.wikipedia.org/wiki/Miny%C5%8D_scale -msgid "minyo" +#: js/blocks/VolumeBlocks.js:536 +msgid "The range is 0 for silence to 100 for full volume." msgstr "" -#: js/musicutils.js:703 -#.TRANS: Italian mathematician -msgid "fibonacci" +#: js/blocks/VolumeBlocks.js:597 +msgid "set panning" msgstr "" -#: js/musicutils.js:708 -#: js/musicutils.js:1106 -#.TRANS: lowpass filter -msgid "lowpass" +#: js/blocks/VolumeBlocks.js:603 +msgid "The Set Panning block sets the panning for all synthesizers." msgstr "" -#: js/musicutils.js:710 -#: js/musicutils.js:1107 -#.TRANS: bandpass filter -msgid "bandpass" +#: js/blocks/VolumeBlocks.js:625 +msgid "Warning: Sound is coming out from only the left or right side." msgstr "" -#: js/musicutils.js:712 -#: js/musicutils.js:1108 -#.TRANS: high-shelf filter -msgid "highshelf" +#: js/blocks/VolumeBlocks.js:647 +#: js/blocks/VolumeBlocks.js:695 +msgid "set master volume" msgstr "" -#: js/musicutils.js:714 -#: js/musicutils.js:1109 -#.TRANS: low-shelf filter -msgid "lowshelf" +#: js/blocks/VolumeBlocks.js:653 +msgid "The Set master volume block sets the volume for all synthesizers." msgstr "" -#: js/musicutils.js:716 -#: js/musicutils.js:1110 -#.TRANS: notch-shelf filter -msgid "notch" +#: js/blocks/VolumeBlocks.js:784 +msgid "The Set relative volume block changes the volume of the contained notes." msgstr "" -#: js/musicutils.js:718 -#: js/musicutils.js:1111 -#.TRANS: all-pass filter -msgid "allpass" +#: js/blocks/VolumeBlocks.js:791 +msgid "set relative volume" msgstr "" -#: js/musicutils.js:720 -#: js/musicutils.js:1112 -#.TRANS: peaking filter -msgid "peaking" +#: js/blocks/VolumeBlocks.js:857 +msgid "decrescendo" msgstr "" -#: js/musicutils.js:731 -#: js/synthutils.js:58 -#.TRANS: musical instrument -msgid "violin" +#: js/blocks/VolumeBlocks.js:921 +msgid "crescendo" msgstr "" -#: js/musicutils.js:732 -#: js/synthutils.js:60 -#.TRANS: viola musical instrument -msgid "viola" +#: js/blocks/WidgetBlocks.js:81 +#.TRANS: sound envelope (ADSR) +msgid "envelope" msgstr "" -#: js/musicutils.js:733 -#: js/synthutils.js:98 -#.TRANS: xylophone musical instrument -msgid "xylophone" +#: js/blocks/WidgetBlocks.js:89 +#.TRANS: Attack time is the time taken for initial run-up of level from nil to peak, beginning when the key is first pressed. +msgid "attack" msgstr "" -#: js/musicutils.js:734 -#: js/synthutils.js:120 -#.TRANS: vibraphone musical instrument -msgid "vibraphone" +#: js/blocks/WidgetBlocks.js:91 +#.TRANS: Decay time is the time taken for the subsequent run down from the attack level to the designated sustain level. +msgid "decay" msgstr "" -#: js/musicutils.js:735 -#: js/synthutils.js:62 -#.TRANS: musical instrument -msgid "cello" +#: js/blocks/WidgetBlocks.js:93 +#.TRANS: Sustain level is the level during the main sequence of the sound's duration, until the key is released. +msgid "sustain" msgstr "" -#: js/musicutils.js:737 -#: js/synthutils.js:66 -#.TRANS: viola musical instrument -msgid "double bass" +#: js/blocks/WidgetBlocks.js:95 +#.TRANS: Release time is the time taken for the level to decay from the sustain level to zero after the key is released. +msgid "release" msgstr "" -#: js/musicutils.js:738 -#: js/synthutils.js:68 -#: js/rhythmruler.js:2119 -#.TRANS: musical instrument -msgid "guitar" +#: js/blocks/WidgetBlocks.js:113 +msgid "Attack value should be from 0 to 100." msgstr "" -#: js/musicutils.js:739 -#: js/synthutils.js:70 -#.TRANS: musical instrument -msgid "acoustic guitar" +#: js/blocks/WidgetBlocks.js:116 +msgid "Decay value should be from 0 to 100." msgstr "" -#: js/musicutils.js:740 -#: js/synthutils.js:72 -#.TRANS: musical instrument -msgid "flute" +#: js/blocks/WidgetBlocks.js:119 +msgid "Sustain value should be from 0 to 100." msgstr "" -#: js/musicutils.js:741 -#: js/synthutils.js:74 -#.TRANS: musical instrument -msgid "clarinet" +#: js/blocks/WidgetBlocks.js:122 +msgid "Release value should be from 0-100." msgstr "" -#: js/musicutils.js:742 -#: js/synthutils.js:76 -#.TRANS: musical instrument -msgid "saxophone" +#: js/blocks/WidgetBlocks.js:140 +msgid "You are adding multiple envelope blocks." msgstr "" -#: js/musicutils.js:743 -#: js/synthutils.js:78 -#.TRANS: musical instrument -msgid "tuba" +#: js/blocks/WidgetBlocks.js:171 +#.TRANS: a filter removes some unwanted components from a signal +msgid "filter" msgstr "" -#: js/musicutils.js:744 -#: js/synthutils.js:80 -#.TRANS: musical instrument -msgid "trumpet" +#: js/blocks/WidgetBlocks.js:181 +#: js/widgets/timbre.js:1818 +#.TRANS: rolloff is the steepness of a change in frequency. +msgid "rolloff" msgstr "" -#: js/musicutils.js:745 -#: js/synthutils.js:82 -#.TRANS: musical instrument -msgid "oboe" +#: js/blocks/WidgetBlocks.js:213 +#.TRANS: rolloff is the steepness of a change in frequency. +msgid "Rolloff value should be either -12, -24, -48, or -96 decibels/octave." msgstr "" -#: js/musicutils.js:746 -#: js/synthutils.js:84 -#.TRANS: musical instrument -msgid "trombone" +#: js/blocks/WidgetBlocks.js:252 +msgid "The Temperament tool is used to define custom tuning." msgstr "" -#: js/musicutils.js:747 -#: js/synthutils.js:100 -#.TRANS: polytone synthesizer -msgid "electronic synth" +#: js/blocks/WidgetBlocks.js:332 +#: js/blocks/WidgetBlocks.js:1573 +#: js/widgets/sampler.js:547 +msgid "Upload a sample and adjust its pitch center." msgstr "" -#: js/musicutils.js:748 -#: js/synthutils.js:102 -#.TRANS: simple monotone synthesizer -msgid "simple 1" +#: js/blocks/WidgetBlocks.js:339 +#.TRANS: the speed at music is should be played. +msgid "sampler" +msgstr "" + +#: js/blocks/WidgetBlocks.js:517 +msgid "The Meter block opens a tool to select strong beats for the meter." msgstr "" -#: js/musicutils.js:749 -msgid "simple 2" +#: js/blocks/WidgetBlocks.js:573 +msgid "The oscilloscope block opens a tool to visualize waveforms." msgstr "" -#: js/musicutils.js:750 -msgid "simple 3" +#: js/blocks/WidgetBlocks.js:578 +msgid "oscilloscope" msgstr "" -#: js/musicutils.js:751 -msgid "simple 4" +#: js/blocks/WidgetBlocks.js:645 +msgid "The Custom mode block opens a tool to explore musical mode (the spacing of the notes in a scale)." msgstr "" -#: js/musicutils.js:753 -#: js/synthutils.js:49 -#.TRANS: brown noise synthesizer -msgid "brown noise" +#: js/blocks/WidgetBlocks.js:651 +#.TRANS: musical mode is the pattern of half-steps in an octave, e.g., Major or Minor modes +msgid "custom mode" msgstr "" -#: js/musicutils.js:754 -#: js/synthutils.js:51 -#.TRANS: pink noise synthesizer -msgid "pink noise" +#: js/blocks/WidgetBlocks.js:700 +msgid "The Tempo block opens a metronome to visualize the beat." msgstr "" -#: js/musicutils.js:756 -#: js/synthutils.js:127 -#: js/rhythmruler.js:1670 -#: js/rhythmruler.js:1928 -#.TRANS: musical instrument -msgid "snare drum" +#: js/blocks/WidgetBlocks.js:762 +msgid "The Arpeggio Widget is used to compose chord sequences." msgstr "" -#: js/musicutils.js:757 -#: js/synthutils.js:129 -#.TRANS: musical instrument -msgid "kick drum" +#: js/blocks/WidgetBlocks.js:837 +msgid "The Pitch drum matrix is used to map pitches to drum sounds." msgstr "" -#: js/musicutils.js:758 -#: js/synthutils.js:131 -#.TRANS: musical instrument -msgid "tom tom" +#: js/blocks/WidgetBlocks.js:842 +#.TRANS: makes a mapping between pitches and drum sounds +msgid "pitch-drum mapper" msgstr "" -#: js/musicutils.js:759 -#: js/synthutils.js:133 -#.TRANS: musical instrument -msgid "floor tom" +#: js/blocks/WidgetBlocks.js:891 +msgid "You must have at least one pitch block and one drum block in the matrix." msgstr "" -#: js/musicutils.js:760 -#: js/synthutils.js:135 -#.TRANS: musical instrument -msgid "bass drum" +#: js/blocks/WidgetBlocks.js:920 +msgid "The Pitch slider tool to is used to generate pitches at selected frequencies." msgstr "" -#: js/musicutils.js:761 -#: js/synthutils.js:137 -#.TRANS: a drum made from an inverted cup -msgid "cup drum" +#: js/blocks/WidgetBlocks.js:925 +#.TRANS: widget to generate pitches using a slider +msgid "pitch slider" msgstr "" -#: js/musicutils.js:762 -#: js/synthutils.js:139 -#.TRANS: musical instrument -msgid "darbuka drum" +#: js/blocks/WidgetBlocks.js:977 +msgid "chromatic keyboard" msgstr "" -#: js/musicutils.js:763 -#: js/synthutils.js:143 -#.TRANS: musical instrument -msgid "hi hat" +#: js/blocks/WidgetBlocks.js:1011 +#: js/blocks/WidgetBlocks.js:1077 +#.TRANS: widget to generate pitches using a slider +msgid "music keyboard" msgstr "" -#: js/musicutils.js:764 -#: js/synthutils.js:145 -#.TRANS: a small metal bell -msgid "ride bell" +#: js/blocks/WidgetBlocks.js:1062 +#: js/blocks/WidgetBlocks.js:1069 +msgid "The Music keyboard block opens a piano keyboard that can be used to create notes." msgstr "" -#: js/musicutils.js:765 -#: js/synthutils.js:147 -#.TRANS: musical instrument -msgid "cow bell" +#: js/blocks/WidgetBlocks.js:1128 +msgid "The Pitch staircase tool to is used to generate pitches from a given ratio." msgstr "" -#: js/musicutils.js:766 -msgid "japanese drum" +#: js/blocks/WidgetBlocks.js:1135 +#.TRANS: generate a progressive sequence of pitches +msgid "pitch staircase" msgstr "" -#: js/musicutils.js:767 -#: js/synthutils.js:153 -#.TRANS: musical instrument -msgid "japanese bell" +#: js/blocks/WidgetBlocks.js:1222 +msgid "The Rhythm Maker block opens a tool to create drum machines." msgstr "" -#: js/musicutils.js:768 -#: js/synthutils.js:149 -#.TRANS: musical instrument -msgid "triangle bell" +#: js/blocks/WidgetBlocks.js:1291 +msgid "G major scale" msgstr "" -#: js/musicutils.js:769 -#: js/synthutils.js:151 -#.TRANS: musical instrument -msgid "finger cymbals" +#: js/blocks/WidgetBlocks.js:1326 +msgid "C major scale" msgstr "" -#: js/musicutils.js:770 -#: js/synthutils.js:155 -#.TRANS: a musically tuned set of bells -msgid "chime" +#: js/blocks/WidgetBlocks.js:1366 +msgid "The Phrase Maker block opens a tool to create musical phrases." msgstr "" -#: js/musicutils.js:771 -#: js/synthutils.js:157 -#.TRANS: a musical instrument -msgid "gong" +#: js/blocks/WidgetBlocks.js:1373 +#.TRANS: assigns pitch to a sequence of beats to generate a melody +msgid "phrase maker" msgstr "" -#: js/musicutils.js:772 -#: js/synthutils.js:159 -#.TRANS: sound effect -msgid "clang" +#: js/blocks/WidgetBlocks.js:1444 +msgid "You must have at least one pitch block and one rhythm block in the matrix." msgstr "" -#: js/musicutils.js:773 -#: js/synthutils.js:161 -#.TRANS: sound effect -msgid "crash" +#: js/blocks/WidgetBlocks.js:1503 +msgid "The Status block opens a tool for inspecting the status of Music Blocks as it is running." msgstr "" -#: js/musicutils.js:774 -#: js/synthutils.js:163 -#.TRANS: sound effect -msgid "bottle" +#: js/blocks/WidgetBlocks.js:1580 +#.TRANS: AI-generated music +msgid "aimusic" msgstr "" -#: js/musicutils.js:775 -#: js/synthutils.js:165 -#.TRANS: sound effect -msgid "clap" +#: js/turtleactions/MeterActions.js:101 +#: js/turtleactions/MeterActions.js:139 +msgid "beats per minute must be greater than" msgstr "" -#: js/musicutils.js:776 -#: js/synthutils.js:167 -#.TRANS: sound effect -msgid "slap" +#: js/turtleactions/MeterActions.js:111 +#: js/turtleactions/MeterActions.js:149 +msgid "maximum" msgstr "" -#: js/musicutils.js:777 -#: js/synthutils.js:169 -#.TRANS: sound effect -msgid "splash" +#: js/turtleactions/MeterActions.js:117 +#: js/turtleactions/MeterActions.js:155 +msgid "beats per minute is" msgstr "" -#: js/musicutils.js:778 -#: js/synthutils.js:171 -#.TRANS: sound effect -msgid "bubbles" +#: js/turtleactions/DictActions.js:75 +#: js/turtleactions/DictActions.js:142 +#: js/turtleactions/DictActions.js:172 +msgid "font" msgstr "" -#: js/musicutils.js:779 -#: js/synthutils.js:173 -#.TRANS: sound effect -msgid "raindrop" +#: js/turtleactions/DictActions.js:255 +msgid "Dictionary with this name does not exist" msgstr "" -#: js/musicutils.js:780 -#: js/synthutils.js:175 -#.TRANS: animal sound effect -msgid "cat" +#: js/turtleactions/DictActions.js:259 +msgid "Key with this name does not exist in " msgstr "" -#: js/musicutils.js:781 -#: js/synthutils.js:177 -#.TRANS: animal sound effect -msgid "cricket" +#: js/turtleactions/DrumActions.js:227 +msgid "Noise Block: Did you mean to use a Note block?" msgstr "" -#: js/musicutils.js:782 -#: js/synthutils.js:179 -#.TRANS: animal sound effect -msgid "dog" +#: js/turtleactions/IntervalsActions.js:113 +msgid "one" msgstr "" -#: js/musicutils.js:784 -#: js/synthutils.js:86 -#.TRANS: musical instrument -msgid "banjo" +#: js/turtleactions/IntervalsActions.js:113 +msgid "two" msgstr "" -#: js/musicutils.js:785 -#: js/synthutils.js:88 -#.TRANS: musical instrument -msgid "koto" +#: js/turtleactions/IntervalsActions.js:113 +msgid "three" msgstr "" -#: js/musicutils.js:786 -#: js/synthutils.js:90 -#.TRANS: musical instrument -msgid "dulcimer" +#: js/turtleactions/IntervalsActions.js:113 +msgid "four" msgstr "" -#: js/musicutils.js:787 -#: js/synthutils.js:92 -#.TRANS: musical instrument -msgid "electric guitar" +#: js/turtleactions/IntervalsActions.js:113 +msgid "five" msgstr "" -#: js/musicutils.js:788 -#: js/synthutils.js:94 -#.TRANS: musical instrument -msgid "bassoon" +#: js/turtleactions/IntervalsActions.js:113 +msgid "six" msgstr "" -#: js/musicutils.js:789 -#: js/synthutils.js:96 -#.TRANS: musical instrument -msgid "celeste" +#: js/turtleactions/IntervalsActions.js:113 +msgid "seven" msgstr "" -#: js/musicutils.js:791 -#: js/musicutils.js:1123 -#: js/musicutils.js:1131 -#: js/temperament.js:650 -#.TRANS: musical temperament -msgid "equal" +#: js/turtleactions/IntervalsActions.js:113 +msgid "eight" msgstr "" -#: js/musicutils.js:793 -#: js/musicutils.js:1125 -#: js/musicutils.js:1133 -#.TRANS: musical temperament -msgid "Pythagorean" +#: js/turtleactions/IntervalsActions.js:113 +msgid "nine" msgstr "" -#: js/musicutils.js:795 -#: js/musicutils.js:1124 -#: js/musicutils.js:1132 -#.TRANS: musical temperament -msgid "just intonation" +#: js/turtleactions/IntervalsActions.js:119 +msgid "a" msgstr "" -#: js/musicutils.js:797 -#: js/musicutils.js:1126 -#: js/musicutils.js:1127 -#: js/musicutils.js:1134 -#: js/musicutils.js:1135 -#.TRANS: musical temperament -msgid "meantone" +#: js/turtleactions/IntervalsActions.js:120 +msgid "below" msgstr "" -#: js/musicutils.js:814 -msgid "major 7th" +#: js/turtleactions/IntervalsActions.js:124 +msgid "above" msgstr "" -#: js/musicutils.js:815 -msgid "minor 7th" +#: js/turtleactions/IntervalsActions.js:131 +msgid "plus" msgstr "" -#: js/musicutils.js:816 -msgid "dominant 7th" +#: js/turtleactions/IntervalsActions.js:139 +msgid " below" msgstr "" -#: js/musicutils.js:817 -msgid "minor-major 7th" +#: js/turtleactions/IntervalsActions.js:257 +msgid "Adding missing pitch number 0." msgstr "" -#: js/musicutils.js:818 -msgid "fully-diminished 7th" +#: js/turtleactions/IntervalsActions.js:265 +msgid "Ignoring pitch numbers less than zero or greater than eleven." msgstr "" -#: js/musicutils.js:819 -msgid "half-diminished 7th" +#: js/turtleactions/IntervalsActions.js:271 +msgid "Ignoring duplicate pitch numbers." msgstr "" -#: js/musicutils.js:4379 -#: js/musicutils.js:4416 -msgid "current" +#: js/turtleactions/ToneActions.js:134 +msgid "Vibrato intensity must be between 1 and 100." msgstr "" -#: js/musicutils.js:4382 -#: js/musicutils.js:4407 -msgid "next" +#: js/turtleactions/ToneActions.js:139 +msgid "Vibrato rate must be greater than 0." msgstr "" -#: js/musicutils.js:4385 -#: js/musicutils.js:4412 -msgid "previous" +#: js/turtleactions/ToneActions.js:192 +#: js/turtleactions/ToneActions.js:265 +#.TRANS: Depth is the intesity of the tremolo or chorus effect. +msgid "Depth is out of range." msgstr "" -#: js/synthutils.js:104 -#.TRANS: simple monotone synthesizer -msgid "simple-2" +#: js/turtleactions/ToneActions.js:301 +msgid "Distortion must be from 0 to 100." msgstr "" -#: js/synthutils.js:106 -#.TRANS: simple monotone synthesizer -msgid "simple-3" +#: js/turtleactions/ToneActions.js:332 +#.TRANS: partials components in a harmonic series +msgid "Partial must be greater than or equal to 0." msgstr "" -#: js/synthutils.js:108 -#.TRANS: simple monotone synthesizer -msgid "simple-4" +#: js/turtleactions/ToneActions.js:378 +#: js/turtleactions/ToneActions.js:417 +#: js/turtleactions/ToneActions.js:456 +#: js/widgets/timbre.js:782 +msgid "Unable to use synth due to existing oscillator" msgstr "" -#: js/synthutils.js:141 -#.TRANS: musical instrument -msgid "taiko" +#: js/turtleactions/ToneActions.js:388 +#: js/turtleactions/ToneActions.js:427 +msgid "The input cannot be negative." msgstr "" -#: js/modewidget.js:86 -#: js/modewidget.js:88 -#: js/modewidget.js:642 -#: js/modewidget.js:644 -#: js/modewidget.js:712 -#: js/modewidget.js:714 -#: js/temperament.js:2078 -#: js/rhythmruler.js:189 -#: js/rhythmruler.js:1410 -#: js/rhythmruler.js:1412 -#: js/rhythmruler.js:1435 -#: js/rhythmruler.js:1437 -#: js/meterwidget.js:89 -#: js/meterwidget.js:91 +#: js/widgets/modewidget.js:86 +#: js/widgets/modewidget.js:88 +#: js/widgets/modewidget.js:642 +#: js/widgets/modewidget.js:644 +#: js/widgets/modewidget.js:712 +#: js/widgets/modewidget.js:714 +#: js/widgets/meterwidget.js:194 +#: js/widgets/meterwidget.js:196 +#: js/widgets/temperament.js:2236 +#: js/widgets/rhythmruler.js:457 +#: js/widgets/rhythmruler.js:1790 +#: js/widgets/rhythmruler.js:1792 +#: js/widgets/rhythmruler.js:1816 +#: js/widgets/rhythmruler.js:1818 msgid "Play all" msgstr "" -#: js/modewidget.js:115 -#: js/pitchstaircase.js:641 -#: js/phrasemaker.js:339 -#: js/pitchdrummatrix.js:94 -#: js/pitchslider.js:125 -#: js/temperament.js:2083 -#: js/musickeyboard.js:530 -#: js/timbre.js:756 -#: js/meterwidget.js:124 -#: js/arpeggio.js:103 +#: js/widgets/modewidget.js:115 +#: js/widgets/meterwidget.js:229 +#: js/widgets/pitchdrummatrix.js:166 +#: js/widgets/pitchslider.js:125 +#: js/widgets/pitchstaircase.js:641 +#: js/widgets/temperament.js:2244 +#: js/widgets/timbre.js:756 +#: js/widgets/arpeggio.js:103 +#: js/widgets/musickeyboard.js:688 +#: js/widgets/phrasemaker.js:550 msgid "Save" msgstr "" -#: js/modewidget.js:121 -#: js/pitchstaircase.js:686 -#: js/phrasemaker.js:356 -#: js/pitchdrummatrix.js:109 -#: js/musickeyboard.js:534 -#: js/rhythmruler.js:269 -#: js/arpeggio.js:118 +#: js/widgets/modewidget.js:121 +#: js/widgets/pitchdrummatrix.js:181 +#: js/widgets/pitchstaircase.js:686 +#: js/widgets/arpeggio.js:118 +#: js/widgets/musickeyboard.js:696 +#: js/widgets/phrasemaker.js:567 +#: js/widgets/rhythmruler.js:601 #.TRANS: clear all subdivisions from the ruler. msgid "Clear" msgstr "" -#: js/modewidget.js:127 +#: js/widgets/modewidget.js:127 msgid "Rotate counter clockwise" msgstr "" -#: js/modewidget.js:133 +#: js/widgets/modewidget.js:133 msgid "Rotate clockwise" msgstr "" -#: js/modewidget.js:139 +#: js/widgets/modewidget.js:139 msgid "Invert" msgstr "" -#: js/modewidget.js:145 -#: js/pitchstaircase.js:678 -#: js/rhythmruler.js:258 -#: js/timbre.js:963 +#: js/widgets/modewidget.js:145 +#: js/widgets/pitchstaircase.js:678 +#: js/widgets/timbre.js:963 +#: js/widgets/rhythmruler.js:578 msgid "Undo" msgstr "" -#: js/modewidget.js:163 +#: js/widgets/modewidget.js:163 #.TRANS: A circle of notes represents the musical mode. msgid "Click in the circle to select notes for the mode." msgstr "" -#: js/modewidget.js:1017 -#: js/pitchstaircase.js:580 -#: js/phrasemaker.js:4855 -#: js/temperament.js:1754 -#: js/rhythmruler.js:1865 -#: js/rhythmruler.js:2081 -#: js/tempo.js:414 +#: js/widgets/modewidget.js:1017 +#: js/widgets/pitchstaircase.js:580 +#: js/widgets/temperament.js:1929 +#: js/widgets/tempo.js:414 +#: js/widgets/phrasemaker.js:5356 +#: js/widgets/rhythmruler.js:2254 +#: js/widgets/rhythmruler.js:2472 msgid "New action block generated!" msgstr "" -#: js/oscilloscope.js:79 -msgid "Zoom In" -msgstr "" - -#: js/oscilloscope.js:88 -msgid "Zoom Out" -msgstr "" - -#: js/pitchstaircase.js:624 -msgid "Play chord" -msgstr "" - -#: js/pitchstaircase.js:632 -msgid "Play scale" +#: js/widgets/meterwidget.js:275 +msgid "Reset" msgstr "" -#: js/pitchstaircase.js:696 -msgid "Click on a note to create a new step." +#: js/widgets/meterwidget.js:301 +msgid "Click in the circle to select strong beats for the meter." msgstr "" -#: js/phrasemaker.js:363 -msgid "Export" +#: js/widgets/oscilloscope.js:79 +msgid "Zoom In" msgstr "" -#: js/phrasemaker.js:370 -msgid "Sort" +#: js/widgets/oscilloscope.js:88 +msgid "Zoom Out" msgstr "" -#: js/phrasemaker.js:373 -#: js/musickeyboard.js:559 -msgid "Add note" +#: js/widgets/pitchdrummatrix.js:356 +#: js/widgets/pitchdrummatrix.js:752 +msgid "Click in the grid to map notes to drums." msgstr "" -#: js/phrasemaker.js:764 -msgid "Click on the table to add notes." +#: js/widgets/pitchslider.js:103 +msgid "Move up" msgstr "" -#: js/phrasemaker.js:2414 -#: js/phrasemaker.js:2543 -msgid "tuplet value" +#: js/widgets/pitchslider.js:114 +msgid "Move down" msgstr "" -#: js/pitchdrummatrix.js:270 -#: js/pitchdrummatrix.js:639 -msgid "Click in the grid to map notes to drums." +#: js/widgets/pitchslider.js:136 +msgid "Click on the slider to create a note block." msgstr "" -#: js/pitchslider.js:103 -msgid "Move up" +#: js/widgets/pitchstaircase.js:624 +msgid "Play chord" msgstr "" -#: js/pitchslider.js:114 -msgid "Move down" +#: js/widgets/pitchstaircase.js:632 +msgid "Play scale" msgstr "" -#: js/pitchslider.js:136 -msgid "Click on the slider to create a note block." +#: js/widgets/pitchstaircase.js:696 +msgid "Click on a note to create a new step." msgstr "" -#: js/temperament.js:215 +#: js/widgets/temperament.js:321 msgid "back to 2:1 octave space" msgstr "" -#: js/temperament.js:323 +#: js/widgets/temperament.js:447 msgid "edit" msgstr "" -#: js/temperament.js:330 -#: js/temperament.js:332 -#: js/temperament.js:1336 -#: js/temperament.js:1338 +#: js/widgets/temperament.js:454 +#: js/widgets/temperament.js:456 +#: js/widgets/temperament.js:1493 +#: js/widgets/temperament.js:1495 msgid "close" msgstr "" -#: js/temperament.js:423 -#: js/temperament.js:736 -#: js/temperament.js:743 -#: js/temperament.js:845 -#: js/temperament.js:935 -#: js/temperament.js:942 -#: js/temperament.js:1015 -#: js/temperament.js:1284 -#: js/temperament.js:1354 -#: js/temperament.js:1430 +#: js/widgets/temperament.js:552 +#: js/widgets/temperament.js:877 +#: js/widgets/temperament.js:884 +#: js/widgets/temperament.js:986 +#: js/widgets/temperament.js:1080 +#: js/widgets/temperament.js:1087 +#: js/widgets/temperament.js:1160 +#: js/widgets/temperament.js:1433 +#: js/widgets/temperament.js:1511 +#: js/widgets/temperament.js:1596 msgid "done" msgstr "" -#: js/temperament.js:477 -#: js/temperament.js:482 -#: js/temperament.js:918 +#: js/widgets/temperament.js:610 +#: js/widgets/temperament.js:615 +#: js/widgets/temperament.js:1063 msgid "ratio" msgstr "" -#: js/temperament.js:483 +#: js/widgets/temperament.js:616 msgid "interval" msgstr "" -#: js/temperament.js:611 +#: js/widgets/temperament.js:744 msgid "non scalar" msgstr "" -#: js/temperament.js:650 +#: js/widgets/temperament.js:787 msgid "ratios" msgstr "" -#: js/temperament.js:650 +#: js/widgets/temperament.js:787 msgid "arbitrary" msgstr "" -#: js/temperament.js:719 +#: js/widgets/temperament.js:860 msgid "number of divisions" msgstr "" -#: js/temperament.js:741 -#: js/temperament.js:858 -#: js/temperament.js:940 -#: js/temperament.js:1033 +#: js/widgets/temperament.js:882 +#: js/widgets/temperament.js:999 +#: js/widgets/temperament.js:1085 +#: js/widgets/temperament.js:1178 msgid "preview" msgstr "" -#: js/temperament.js:788 +#: js/widgets/temperament.js:929 msgid "The Number of divisions is too large." msgstr "" -#: js/temperament.js:921 +#: js/widgets/temperament.js:1066 msgid "recursion" msgstr "" -#: js/temperament.js:1450 +#: js/widgets/temperament.js:1616 msgid "The octave ratio has changed. This changes temperament significantly." msgstr "" -#: js/temperament.js:2087 +#: js/widgets/temperament.js:2248 msgid "Table" msgstr "" -#: js/temperament.js:2185 +#: js/widgets/temperament.js:2356 msgid "Add pitches" msgstr "" -#: js/musickeyboard.js:570 -msgid "Metronome" +#: js/widgets/tempo.js:78 +#: js/widgets/tempo.js:97 +#: js/widgets/tempo.js:99 +#: js/widgets/aiwidget.js:134 +#: js/widgets/aiwidget.js:136 +#: js/widgets/rhythmruler.js:681 +#: js/widgets/rhythmruler.js:683 +#: js/widgets/rhythmruler.js:1864 +#: js/widgets/rhythmruler.js:1866 +#: js/widgets/sampler.js:180 +#: js/widgets/sampler.js:182 +msgid "Pause" msgstr "" -#: js/musickeyboard.js:1296 -#: plugins/rodi.rtp:193 -msgid "duration" -msgstr "varighed" +#: js/widgets/tempo.js:113 +msgid "Save tempo" +msgstr "" -#: js/musickeyboard.js:2840 -msgid "New action blocks generated!" +#: js/widgets/tempo.js:144 +msgid "speed up" msgstr "" -#: js/musickeyboard.js:2841 -msgid "New action block generated" +#: js/widgets/tempo.js:150 +msgid "slow down" msgstr "" -#: js/musickeyboard.js:2984 -#: js/musickeyboard.js:2992 -msgid "MIDI device present." +#: js/widgets/tempo.js:194 +msgid "Adjust the tempo with the buttons." msgstr "" -#: js/musickeyboard.js:2995 -msgid "No MIDI device found." +#: js/widgets/tempo.js:261 +msgid "Please enter a number between 30 and 1000" msgstr "" -#: js/musickeyboard.js:3000 -msgid "Failed to get MIDI access in browser." +#: js/widgets/tempo.js:268 +#: js/widgets/tempo.js:271 +msgid "The beats per minute must be between 30 and 1000." msgstr "" -#: js/rhythmruler.js:202 -msgid "Save rhythms" +#: js/widgets/tempo.js:287 +msgid "The beats per minute must be below 1000." msgstr "" -#: js/rhythmruler.js:222 -msgid "Save drum machine" +#: js/widgets/tempo.js:303 +msgid "The beats per minute must be above 30" msgstr "" -#: js/rhythmruler.js:263 -#.TRANS: user can tap out a rhythm by clicking on a ruler. -msgid "Tap a rhythm" +#: js/widgets/timbre.js:766 +msgid "Synthesizer" msgstr "" -#: js/rhythmruler.js:342 -#: js/rhythmruler.js:344 -#: js/rhythmruler.js:1481 -#: js/rhythmruler.js:1483 -#: js/sampler.js:110 -#: js/sampler.js:112 -#: js/tempo.js:78 -#: js/tempo.js:97 -#: js/tempo.js:99 -msgid "Pause" +#: js/widgets/timbre.js:789 +msgid "Oscillator" msgstr "" -#: js/rhythmruler.js:478 -msgid "Click on the ruler to divide it." +#: js/widgets/timbre.js:840 +msgid "Envelope" msgstr "" -#: js/rhythmruler.js:603 -#: js/rhythmruler.js:605 -#: js/rhythmruler.js:804 -#: js/rhythmruler.js:806 -#: js/rhythmruler.js:1386 -#: js/rhythmruler.js:1388 -msgid "tap a rhythm" +#: js/widgets/timbre.js:886 +#: planet/js/GlobalTag.js:50 +#.TRANS: On the Planet, we use labels to tag projects. +msgid "Effects" msgstr "" -#: js/rhythmruler.js:1084 -msgid "Maximum value of 256 has been exceeded." +#: js/widgets/timbre.js:904 +msgid "Filter" msgstr "" -#: js/sampler.js:137 -msgid "Warning: Sample is bigger than 1MB." +#: js/widgets/timbre.js:946 +msgid "Add filter" msgstr "" -#: js/sampler.js:142 -msgid "Upload failed: Sample is not a .wav file." +#: js/widgets/timbre.js:987 +msgid "Click on buttons to open the timbre design tools." msgstr "" -#: js/sampler.js:164 -msgid "A new sample block was generated." +#: js/widgets/timbre.js:1273 +msgid "harmonicity" msgstr "" -#: js/sampler.js:255 -msgid "Upload sample" +#: js/widgets/timbre.js:1340 +#: js/widgets/timbre.js:1406 +msgid "modulation index" msgstr "" -#: js/sampler.js:306 -msgid "Save sample" +#: js/widgets/timbre.js:1484 +msgid "vibrato amount" msgstr "" -#: js/sampler.js:697 -#.TRANS: The reference tone is a sound used for comparison. -msgid "reference tone" +#: js/widgets/timbre.js:1919 +msgid "Filter already present." msgstr "" -#: js/tempo.js:113 -msgid "Save tempo" +#: js/widgets/timbre.js:2322 +msgid "delay (MS)" msgstr "" -#: js/tempo.js:144 -msgid "speed up" +#: js/widgets/timbre.js:2507 +msgid "distortion amount" msgstr "" -#: js/tempo.js:150 -msgid "slow down" +#: js/widgets/aiwidget.js:180 +#: js/widgets/sampler.js:227 +msgid "Warning: Sample is bigger than 1MB." msgstr "" -#: js/tempo.js:194 -msgid "Adjust the tempo with the buttons." +#: js/widgets/aiwidget.js:539 +msgid "New start block generated" msgstr "" -#: js/tempo.js:261 -msgid "Please enter a number between 30 and 1000" +#: js/widgets/aiwidget.js:541 +msgid "MIDI loading. This may take some time depending upon the number of notes in the track" msgstr "" -#: js/tempo.js:268 -#: js/tempo.js:271 -msgid "The beats per minute must be between 30 and 1000." +#: js/widgets/aiwidget.js:551 +#: js/widgets/sampler.js:254 +msgid "Upload failed: Sample is not a .wav file." msgstr "" -#: js/tempo.js:287 -msgid "The beats per minute must be below 1000." +#: js/widgets/aiwidget.js:679 +#: js/widgets/sampler.js:432 +msgid "Save sample" msgstr "" -#: js/tempo.js:303 -msgid "The beats per minute must be above 30" +#: js/widgets/aiwidget.js:701 +msgid "AI Music" msgstr "" -#: js/timbre.js:766 -msgid "Synthesizer" +#: js/widgets/arpeggio.js:239 +msgid "Click in the grid to add steps to the arpeggio." msgstr "" -#: js/timbre.js:789 -msgid "Oscillator" +#: js/widgets/help.js:95 +#: js/widgets/help.js:125 +#: js/widgets/help.js:146 +#: js/widgets/help.js:158 +#: js/widgets/help.js:376 +#: js/widgets/help.js:391 +msgid "Take a tour" msgstr "" -#: js/timbre.js:840 -msgid "Envelope" +#: js/widgets/musickeyboard.js:725 +#: js/widgets/phrasemaker.js:584 +msgid "Add note" msgstr "" -#: js/timbre.js:886 -#: js/GlobalTag.js:50 -#.TRANS: On the Planet, we use labels to tag projects. -msgid "Effects" +#: js/widgets/musickeyboard.js:744 +msgid "Metronome" +msgstr "" + +#: js/widgets/musickeyboard.js:1549 +#: plugins/rodi.rtp:193 +msgid "duration" +msgstr "varighed" + +#: js/widgets/musickeyboard.js:3179 +msgid "New action blocks generated" +msgstr "" + +#: js/widgets/musickeyboard.js:3180 +msgid "New action block generated" msgstr "" -#: js/timbre.js:904 -msgid "Filter" +#: js/widgets/musickeyboard.js:3365 +#: js/widgets/musickeyboard.js:3373 +msgid "MIDI device present." msgstr "" -#: js/timbre.js:946 -msgid "Add filter" +#: js/widgets/musickeyboard.js:3376 +msgid "No MIDI device found." msgstr "" -#: js/timbre.js:987 -msgid "Click on buttons to open the timbre design tools." +#: js/widgets/musickeyboard.js:3386 +msgid "Failed to get MIDI access in browser." msgstr "" -#: js/timbre.js:1273 -msgid "harmonicity" +#: js/widgets/phrasemaker.js:574 +msgid "Export" msgstr "" -#: js/timbre.js:1340 -#: js/timbre.js:1406 -msgid "modulation index" +#: js/widgets/phrasemaker.js:581 +msgid "Sort" msgstr "" -#: js/timbre.js:1484 -msgid "vibrato amount" +#: js/widgets/phrasemaker.js:975 +msgid "Click on the table to add notes." msgstr "" -#: js/timbre.js:1919 -msgid "Filter already present." +#: js/widgets/phrasemaker.js:2677 +#: js/widgets/phrasemaker.js:2819 +msgid "tuplet value" msgstr "" -#: js/timbre.js:2322 -msgid "delay (MS)" +#: js/widgets/rhythmruler.js:486 +msgid "Save rhythms" msgstr "" -#: js/timbre.js:2507 -msgid "distortion amount" +#: js/widgets/rhythmruler.js:512 +msgid "Save drum machine" msgstr "" -#: js/meterwidget.js:170 -msgid "Reset" +#: js/widgets/rhythmruler.js:589 +#.TRANS: user can tap out a rhythm by clicking on a ruler. +msgid "Tap a rhythm" msgstr "" -#: js/meterwidget.js:196 -msgid "Click in the circle to select strong beats for the meter." +#: js/widgets/rhythmruler.js:817 +msgid "Click on the ruler to divide it." msgstr "" -#: js/arpeggio.js:239 -msgid "Click in the grid to add steps to the arpeggio." +#: js/widgets/rhythmruler.js:950 +#: js/widgets/rhythmruler.js:952 +#: js/widgets/rhythmruler.js:1152 +#: js/widgets/rhythmruler.js:1154 +#: js/widgets/rhythmruler.js:1765 +#: js/widgets/rhythmruler.js:1767 +msgid "tap a rhythm" msgstr "" -#: js/ProjectStorage.js:243 -msgid "anonymous" +#: js/widgets/rhythmruler.js:1459 +msgid "Maximum value of 256 has been exceeded." msgstr "" -#: js/GlobalCard.js:68 -msgid "Share" +#: js/widgets/sampler.js:237 +msgid "Recording started..." msgstr "" -#: js/GlobalCard.js:74 -msgid "Flags" +#: js/widgets/sampler.js:245 +msgid "Recording complete..." msgstr "" -#: js/LocalCard.js:36 -msgid "View published project" +#: js/widgets/sampler.js:283 +msgid "A new sample block was generated." msgstr "" -#: js/LocalCard.js:42 -msgid "Publish project" +#: js/widgets/sampler.js:378 +msgid "Upload sample" msgstr "" -#: js/LocalCard.js:51 -msgid "Edit project" +#: js/widgets/sampler.js:399 +msgid "Warning: Your sample cannot be loaded because it is >1MB." msgstr "" -#: js/LocalCard.js:52 -msgid "Delete project" +#: js/widgets/sampler.js:448 +msgid "Toggle Mic" msgstr "" -#: js/LocalCard.js:53 -msgid "Download project" +#: js/widgets/sampler.js:458 +msgid "Playback" msgstr "" -#: js/LocalCard.js:55 -msgid "Duplicate project" +#: js/widgets/sampler.js:979 +#.TRANS: The reference tone is a sound used for comparison. +msgid "reference tone" msgstr "" -#: js/GlobalTag.js:28 +#: planet/js/GlobalTag.js:28 #.TRANS: On the Planet, we use labels to tag projects. msgid "All Projects" msgstr "" -#: js/GlobalTag.js:30 -#: js/StringHelper.js:37 +#: planet/js/GlobalTag.js:30 +#: planet/js/StringHelper.js:37 #.TRANS: On the Planet, we use labels to tag projects. msgid "My Projects" msgstr "" -#: js/GlobalTag.js:32 +#: planet/js/GlobalTag.js:32 #.TRANS: On the Planet, we use labels to tag projects. msgid "Examples" msgstr "" -#: js/GlobalTag.js:34 +#: planet/js/GlobalTag.js:34 #.TRANS: On the Planet, we use labels to tag projects. msgid "Music" msgstr "" -#: js/GlobalTag.js:36 +#: planet/js/GlobalTag.js:36 #.TRANS: On the Planet, we use labels to tag projects. msgid "Art" msgstr "" -#: js/GlobalTag.js:38 +#: planet/js/GlobalTag.js:38 #.TRANS: On the Planet, we use labels to tag projects. msgid "Math" msgstr "" -#: js/GlobalTag.js:40 +#: planet/js/GlobalTag.js:40 #.TRANS: On the Planet, we use labels to tag projects. msgid "Interactive" msgstr "" -#: js/GlobalTag.js:42 +#: planet/js/GlobalTag.js:42 #.TRANS: On the Planet, we use labels to tag projects. msgid "Design" msgstr "" -#: js/GlobalTag.js:44 +#: planet/js/GlobalTag.js:44 #.TRANS: On the Planet, we use labels to tag projects. msgid "Game" msgstr "" -#: js/GlobalTag.js:46 +#: planet/js/GlobalTag.js:46 #.TRANS: On the Planet, we use labels to tag projects. msgid "Media" msgstr "" -#: js/GlobalTag.js:48 +#: planet/js/GlobalTag.js:48 #.TRANS: On the Planet, we use labels to tag projects. msgid "Sensors" msgstr "" -#: js/GlobalTag.js:52 +#: planet/js/GlobalTag.js:52 #.TRANS: On the Planet, we use labels to tag projects. msgid "Code Snippet" msgstr "" -#: js/helper.js:149 -#: js/StringHelper.js:49 -msgid "Show more tags" +#: planet/js/LocalCard.js:36 +msgid "View published project" msgstr "" -#: js/helper.js:150 -msgid "Show fewer tags" +#: planet/js/LocalCard.js:42 +msgid "Publish project" +msgstr "" + +#: planet/js/LocalCard.js:51 +msgid "Edit project" +msgstr "" + +#: planet/js/LocalCard.js:52 +msgid "Delete project" +msgstr "" + +#: planet/js/LocalCard.js:53 +msgid "Download project" +msgstr "" + +#: planet/js/LocalCard.js:55 +msgid "Duplicate project" +msgstr "" + +#: planet/js/ProjectStorage.js:243 +msgid "anonymous" +msgstr "" + +#: planet/js/SaveInterface.js:34 +msgid "Open in Music Blocks" +msgstr "" + +#: planet/js/SaveInterface.js:35 +msgid "Open in Turtle Blocks" +msgstr "" + +#: planet/js/GlobalCard.js:68 +msgid "Share" +msgstr "" + +#: planet/js/GlobalCard.js:74 +msgid "Flags" +msgstr "" + +#: planet/js/GlobalPlanet.js:35 +msgid "No results found." +msgstr "" + +#: planet/js/GlobalPlanet.js:51 +msgid "Remix of" +msgstr "" + +#: planet/js/GlobalPlanet.js:509 +msgid "Cannot connect to server" msgstr "" -#: js/ProjectViewer.js:30 +#: planet/js/ProjectViewer.js:30 msgid "Error: Report could not be submitted. Try again later." msgstr "" -#: js/ProjectViewer.js:31 +#: planet/js/ProjectViewer.js:31 msgid "Thank you for reporting this project. A moderator will review the project shortly, to verify violation of the Sugar Labs Code of Conduct." msgstr "" -#: js/ProjectViewer.js:32 -#: js/StringHelper.js:62 -#: js/StringHelper.js:64 -#: js/StringHelper.js:68 +#: planet/js/ProjectViewer.js:32 +#: planet/js/StringHelper.js:62 +#: planet/js/StringHelper.js:64 +#: planet/js/StringHelper.js:68 msgid "Report Project" msgstr "" -#: js/ProjectViewer.js:33 -#: js/StringHelper.js:63 +#: planet/js/ProjectViewer.js:33 +#: planet/js/StringHelper.js:63 msgid "Project Reported" msgstr "" -#: js/ProjectViewer.js:34 +#: planet/js/ProjectViewer.js:34 msgid "Report description required" msgstr "" -#: js/ProjectViewer.js:35 +#: planet/js/ProjectViewer.js:35 msgid "Report description too long" msgstr "" -#: js/StringHelper.js:30 +#: planet/js/Publisher.js:30 +msgid "Feature unavailable - cannot connect to server. Reload Music Blocks to try again." +msgstr "" + +#: planet/js/Publisher.js:220 +#: planet/js/Publisher.js:237 +msgid "This field is required" +msgstr "" + +#: planet/js/Publisher.js:227 +msgid "Title too long" +msgstr "" + +#: planet/js/Publisher.js:244 +msgid "Description too long" +msgstr "" + +#: planet/js/Publisher.js:341 +msgid "Server Error" +msgstr "" + +#: planet/js/Publisher.js:341 +msgid "Try Again" +msgstr "" + +#: planet/js/StringHelper.js:30 msgid "Planet" msgstr "" -#: js/StringHelper.js:31 +#: planet/js/StringHelper.js:31 msgid "Close Planet" msgstr "" -#: js/StringHelper.js:32 +#: planet/js/StringHelper.js:32 msgid "Open project from file" msgstr "" -#: js/StringHelper.js:34 +#: planet/js/StringHelper.js:34 msgid "Local" msgstr "" -#: js/StringHelper.js:35 +#: planet/js/StringHelper.js:35 msgid "Global" msgstr "" -#: js/StringHelper.js:36 +#: planet/js/StringHelper.js:36 msgid "Search for a project" msgstr "" -#: js/StringHelper.js:38 +#: planet/js/StringHelper.js:38 msgid "Publish Project" msgstr "" -#: js/StringHelper.js:40 +#: planet/js/StringHelper.js:40 msgid "Tags (max 5)" msgstr "" -#: js/StringHelper.js:41 -#: js/StringHelper.js:61 +#: planet/js/StringHelper.js:41 +#: planet/js/StringHelper.js:61 msgid "Description" msgstr "" -#: js/StringHelper.js:42 -#: js/StringHelper.js:67 +#: planet/js/StringHelper.js:42 +#: planet/js/StringHelper.js:67 msgid "Submit" msgstr "" -#: js/StringHelper.js:43 -#: js/StringHelper.js:47 +#: planet/js/StringHelper.js:43 +#: planet/js/StringHelper.js:47 msgid "Cancel" msgstr "" -#: js/StringHelper.js:44 +#: planet/js/StringHelper.js:44 msgid "Delete \\"\\"?" msgstr "" -#: js/StringHelper.js:45 +#: planet/js/StringHelper.js:45 msgid "Permanently delete project \\"\\"?" msgstr "" -#: js/StringHelper.js:48 +#: planet/js/StringHelper.js:48 msgid "Explore Projects" msgstr "" -#: js/StringHelper.js:50 +#: planet/js/StringHelper.js:49 +#: planet/js/helper.js:149 +msgid "Show more tags" +msgstr "" + +#: planet/js/StringHelper.js:50 msgid "Most recent" msgstr "" -#: js/StringHelper.js:51 +#: planet/js/StringHelper.js:51 msgid "Most liked" msgstr "" -#: js/StringHelper.js:52 +#: planet/js/StringHelper.js:52 msgid "Most downloaded" msgstr "" -#: js/StringHelper.js:53 +#: planet/js/StringHelper.js:53 msgid "A-Z" msgstr "" -#: js/StringHelper.js:54 +#: planet/js/StringHelper.js:54 msgid "Sort by" msgstr "" -#: js/StringHelper.js:55 +#: planet/js/StringHelper.js:55 msgid "Load More Projects" msgstr "" -#: js/StringHelper.js:56 +#: planet/js/StringHelper.js:56 msgid "Last Updated" msgstr "" -#: js/StringHelper.js:57 +#: planet/js/StringHelper.js:57 msgid "Creation Date" msgstr "" -#: js/StringHelper.js:58 +#: planet/js/StringHelper.js:58 msgid "Number of Downloads:" msgstr "" -#: js/StringHelper.js:59 +#: planet/js/StringHelper.js:59 msgid "Number of Likes:" msgstr "" -#: js/StringHelper.js:60 +#: planet/js/StringHelper.js:60 msgid "Tags:" msgstr "" -#: js/StringHelper.js:65 +#: planet/js/StringHelper.js:65 msgid "Report projects which violate the Sugar Labs Code of Conduct." msgstr "" -#: js/StringHelper.js:66 +#: planet/js/StringHelper.js:66 msgid "Reason for reporting project" msgstr "" -#: js/StringHelper.js:70 +#: planet/js/StringHelper.js:70 msgid "Download as File" msgstr "" -#: js/GlobalPlanet.js:35 -msgid "No results found." -msgstr "" - -#: js/GlobalPlanet.js:51 -msgid "Remix of" -msgstr "" - -#: js/GlobalPlanet.js:509 -msgid "Cannot connect to server" -msgstr "" - -#: js/Publisher.js:30 -msgid "Feature unavailable - cannot connect to server. Reload Music Blocks to try again." -msgstr "" - -#: js/Publisher.js:218 -#: js/Publisher.js:235 -msgid "This field is required" -msgstr "" - -#: js/Publisher.js:225 -msgid "Title too long" +#: planet/js/helper.js:150 +msgid "Show fewer tags" msgstr "" -#: js/Publisher.js:242 -msgid "Description too long" +#: plugins/accelerometer.rtp:48 +msgid "motion x" msgstr "" -#: js/Publisher.js:339 -msgid "Server Error" +#: plugins/accelerometer.rtp:56 +msgid "motion y" msgstr "" -#: js/Publisher.js:339 -msgid "Try Again" +#: plugins/accelerometer.rtp:64 +msgid "motion z" msgstr "" -#: js/SaveInterface.js:34 -msgid "Open in Music Blocks" +#: plugins/facebook.rtp:27 +msgid "publish" msgstr "" -#: js/SaveInterface.js:35 -msgid "Open in Turtle Blocks" +#: plugins/maths.rtp:62 +msgid "power" msgstr "" -#: plugins/weather.rtp:68 -#: plugins/weather.rtp:97 -msgid "Days ahead must be in the range of -1 to 5." +#: plugins/maths.rtp:62 +msgid "base" msgstr "" -#: plugins/weather.rtp:122 -msgid "forecast" +#: plugins/maths.rtp:62 +msgid "exp" msgstr "" -#: plugins/weather.rtp:123 -#: plugins/weather.rtp:137 -#: plugins/weather.rtp:150 -msgid "city" +#: plugins/maths.rtp:99 +msgid "floor" msgstr "" -#: plugins/weather.rtp:124 -#: plugins/weather.rtp:138 -#: plugins/weather.rtp:151 -msgid "day" +#: plugins/maths.rtp:104 +msgid "ceiling" msgstr "" -#: plugins/weather.rtp:136 -msgid "high" +#: plugins/maths.rtp:109 +msgid "to degrees" msgstr "" -#: plugins/weather.rtp:149 -msgid "low" +#: plugins/maths.rtp:114 +msgid "to radians" msgstr "" #: plugins/nutrition.rtp:104 @@ -9458,45 +9867,6 @@ msgstr "" msgid "water" msgstr "" -#: plugins/maths.rtp:62 -#: plugins/examples.rtp:93 -msgid "power" -msgstr "" - -#: plugins/maths.rtp:62 -#: plugins/examples.rtp:93 -msgid "base" -msgstr "" - -#: plugins/maths.rtp:62 -#: plugins/examples.rtp:93 -msgid "exp" -msgstr "" - -#: plugins/maths.rtp:99 -#: plugins/examples.rtp:130 -msgid "floor" -msgstr "" - -#: plugins/maths.rtp:104 -#: plugins/examples.rtp:135 -msgid "ceiling" -msgstr "" - -#: plugins/maths.rtp:109 -#: plugins/examples.rtp:140 -msgid "to degrees" -msgstr "" - -#: plugins/maths.rtp:114 -#: plugins/examples.rtp:145 -msgid "to radians" -msgstr "" - -#: plugins/facebook.rtp:27 -msgid "publish" -msgstr "" - #: plugins/rodi.rtp:172 msgid "blink" msgstr "" @@ -9525,18 +9895,66 @@ msgstr "" msgid "move" msgstr "" -#: plugins/accelerometer.rtp:48 -msgid "motion x" +#: plugins/weather.rtp:68 +#: plugins/weather.rtp:97 +msgid "Days ahead must be in the range of -1 to 5." msgstr "" -#: plugins/accelerometer.rtp:56 -msgid "motion y" +#: plugins/weather.rtp:122 +msgid "forecast" msgstr "" -#: plugins/accelerometer.rtp:64 -msgid "motion z" +#: plugins/weather.rtp:123 +#: plugins/weather.rtp:137 +#: plugins/weather.rtp:150 +msgid "city" +msgstr "" + +#: plugins/weather.rtp:124 +#: plugins/weather.rtp:138 +#: plugins/weather.rtp:151 +msgid "day" +msgstr "" + +#: plugins/weather.rtp:136 +msgid "high" +msgstr "" + +#: plugins/weather.rtp:149 +msgid "low" msgstr "" +#: js/toolbar.js:70 + +#: js/toolbar.js:130 + +#: js/toolbar.js:194 + +#: js/toolbar.js:249 + +#~msgid "Toggle JavaScript Editor" +#~msgstr "" + +#: js/EnsembleBlocks.js:643 + +#~msgid "The Turrle pitch block returns the current pitch number being played by the specified turtle." +#~msgstr "" + +#: js/PitchActions.js:88 + +#~msgid "The Scalar Step Block must be used inside of a Note Block." +#~msgstr "" + +#: js/PitchActions.js:107 + +#~msgid "The Scalar Step Block must be preceded by a Pitch Block." +#~msgstr "" + +#: js/musickeyboard.js:2840 + +#~msgid "New action blocks generated!" +#~msgstr "" + #: js/toolbar.js:110 #: js/toolbar.js:204 @@ -9877,11 +10295,6 @@ msgstr "" #~msgid "The Time block returns the number of seconds that the program has been running." #~msgstr "" -#: js/help.js:95 - -#~msgid "Take a tour" -#~msgstr "" - #: js/GlobalCard.js:48 #~msgid "More Details" @@ -12780,11 +13193,6 @@ msgstr "" #~msgid "The save-stack button saves a stack onto a custom palette. It appears after a \"long press\" on a stack." #~msgstr "" -#: js/musicutils.js:254 - -#~msgid "Custom" -#~msgstr "" - #: js/basicblocks.js:4785 #~msgid "Rhythm" diff --git a/po/de.po b/po/de.po index 2483e16912..116b97eeb0 100644 --- a/po/de.po +++ b/po/de.po @@ -2128,276 +2128,131 @@ #: js/planetInterface.js:104 #: js/planetInterface.js:104 #: js/planetInterface.js:104 -msgid "project undefined" +#: js/SaveInterface.js:59 +#: js/SaveInterface.js:61 +#: js/SaveInterface.js:93 +msgid "Music Blocks Project" msgstr "" -#: js/logo.js:61 -msgid "Not a valid pitch name" +#: js/SaveInterface.js:63 +msgid "This project was created in Music Blocks" msgstr "" -#: js/logo.js:507 -#: js/ProgramBlocks.js:258 -#: js/ProgramBlocks.js:427 -msgid "You must select a file." -msgstr "Bitte wähle eine Datei aus" - -#: js/logo.js:1184 -#: js/turtles.js:118 -#: js/turtle-painter.js:1192 -#: js/turtle-painter.js:1193 -#: js/block.js:1463 -#: js/lilypond.js:757 -#: js/lilypond.js:921 -#: js/lilypond.js:959 -#: js/ActionBlocks.js:1223 -#: js/ProgramBlocks.js:1267 -msgid "start" -msgstr "Starten" - -#: js/logo.js:1696 -msgid "Playback is ready." +#: js/SaveInterface.js:67 +msgid "Music Blocks is a Free/Libre Software application." msgstr "" -#: js/blocks.js:1011 -#: js/blocks.js:3427 -#: js/blocks.js:3428 -#: js/blocks.js:3653 -#: js/blocks.js:4012 -#: js/blocks.js:4205 -#: js/blocks.js:5343 -#: js/blocks.js:6474 -#: js/palette.js:527 -#: js/palette.js:536 -#: js/palette.js:545 -#: js/palette.js:554 -#: js/palette.js:1131 -#: js/palette.js:1142 -#: js/palette.js:1153 -#: js/palette.js:1164 -#: js/palette.js:1183 -#: js/rubrics.js:529 -#: js/macros.js:170 -#: js/macros.js:266 -#: js/macros.js:267 -#: js/macros.js:276 -#: js/macros.js:828 -#: js/block.js:1449 -#: js/block.js:4164 -#: js/block.js:4182 -#: js/block.js:4193 -#: js/turtledefs.js:128 -#: js/turtledefs.js:230 -#: js/ActionBlocks.js:254 -#: js/ActionBlocks.js:307 -#: js/ActionBlocks.js:617 -#: js/ActionBlocks.js:716 -#: js/ActionBlocks.js:961 -#: js/ActionBlocks.js:1049 -#: js/ActionBlocks.js:1322 -#: js/ActionBlocks.js:1325 -#: js/ActionBlocks.js:1337 -#: js/ActionBlocks.js:1404 -#: js/MeterBlocks.js:715 -#: js/MeterBlocks.js:768 -#: js/MeterBlocks.js:831 -#: js/MeterBlocks.js:892 -#: js/phrasemaker.js:4412 -#: js/musickeyboard.js:2647 -#: js/rhythmruler.js:1928 -#: js/rhythmruler.js:1935 -#: js/rhythmruler.js:2119 -#: js/rhythmruler.js:2126 -msgid "action" -msgstr "Aktion" - -#: js/blocks.js:1205 -#: js/blocks.js:3380 -#: js/blocks.js:3770 -#: js/blocks.js:3801 -#: js/blocks.js:3850 -#: js/blocks.js:3885 -#: js/blocks.js:6497 -#: js/palette.js:509 -#: js/palette.js:638 -#: js/palette.js:1107 -#: js/BoxesBlocks.js:282 -#: js/BoxesBlocks.js:285 -#: js/BoxesBlocks.js:405 -#: js/BoxesBlocks.js:594 -msgid "box" -msgstr "Box" - -#: js/blocks.js:1680 -msgid "Consider breaking this stack into parts." +#: js/SaveInterface.js:69 +msgid "The source code can be accessed at" msgstr "" -#: js/blocks.js:2408 -#: js/palette.js:653 -#: js/MediaBlocks.js:602 -msgid "open file" -msgstr "Öffne Datei" - -#: js/blocks.js:2415 -#: js/blocks.js:2423 -#: js/activity.js:1875 -msgid "audio file" +#: js/SaveInterface.js:72 +msgid "For more information, please consult the" msgstr "" -#: js/blocks.js:2536 -#: js/blocks.js:3147 -#: js/block.js:3543 -msgid "on2" +#: js/SaveInterface.js:76 +#: js/turtledefs.js:795 +msgid "Music Blocks Guide" msgstr "" -#: js/blocks.js:2538 -#: js/blocks.js:3149 -#: js/block.js:3545 -msgid "off" +#: js/SaveInterface.js:83 +msgid "Alternatively, open the file in Music Blocks using the Load project button." msgstr "" -#: js/blocks.js:2543 -#: js/blocks.js:3154 -#: js/palette.js:618 -#: js/block.js:3466 -#: js/BooleanBlocks.js:77 -#: js/BooleanBlocks.js:167 -#: js/BooleanBlocks.js:251 -#: js/BooleanBlocks.js:335 -#: js/BooleanBlocks.js:433 -#: js/BooleanBlocks.js:539 -#: js/BooleanBlocks.js:640 -#: js/BooleanBlocks.js:741 -#: js/BooleanBlocks.js:847 -#: js/BooleanBlocks.js:948 -#: js/BooleanBlocks.js:1033 -#: js/SensorsBlocks.js:910 -msgid "true" -msgstr "Richtig" - -#: js/blocks.js:2545 -#: js/blocks.js:3156 -#: js/block.js:3466 -#: js/BooleanBlocks.js:79 -#: js/BooleanBlocks.js:169 -#: js/BooleanBlocks.js:253 -#: js/BooleanBlocks.js:337 -#: js/BooleanBlocks.js:435 -#: js/BooleanBlocks.js:541 -#: js/BooleanBlocks.js:642 -#: js/BooleanBlocks.js:743 -#: js/BooleanBlocks.js:849 -#: js/BooleanBlocks.js:950 -#: js/SensorsBlocks.js:912 -msgid "false" -msgstr "Falsch" - -#: js/blocks.js:3183 -#: js/palette.js:574 -#: js/MediaBlocks.js:892 -#: js/MediaBlocks.js:963 -msgid "text" -msgstr "Text" +#: js/SaveInterface.js:85 +msgid "Project Code" +msgstr "" -#: js/blocks.js:3379 -#: js/palette.js:641 -#: js/palette.js:642 -#: js/BoxesBlocks.js:514 -msgid "store in box" +#: js/SaveInterface.js:87 +msgid "This code stores data about the blocks in a project." msgstr "" -#: js/blocks.js:3384 -#: js/blocks.js:3824 -#: js/blocks.js:3859 -#: js/blocks.js:3894 -#: js/blocks.js:5773 -#: js/blocks.js:5794 -#: js/BoxesBlocks.js:772 -msgid "box1" +#: js/SaveInterface.js:89 +msgid "Show" msgstr "" -#: js/blocks.js:3386 -#: js/blocks.js:3826 -#: js/blocks.js:3861 -#: js/blocks.js:3896 -#: js/blocks.js:5775 -#: js/blocks.js:5796 -#: js/BoxesBlocks.js:663 -msgid "box2" +#: js/SaveInterface.js:91 +msgid "Hide" msgstr "" -#: js/blocks.js:4058 -#: js/palette.js:639 -#: js/palette.js:644 -#: js/palette.js:1043 -#: js/BoxesBlocks.js:591 -msgid "store in" -msgstr "Speichere in" +#: js/SaveInterface.js:131 +#: js/SaveInterface.js:204 +#: js/SaveInterface.js:262 +#: js/SaveInterface.js:389 +#: js/SaveInterface.js:417 +#: js/activity.js:4884 +#: planet/js/ProjectStorage.js:27 +#: planet/js/GlobalPlanet.js:467 +#: planet/js/GlobalPlanet.js:469 +#: planet/js/GlobalPlanet.js:495 +#.TRANS: default project title when saving as Lilypond +msgid "My Project" +msgstr "Mein Projekt" -#: js/blocks.js:4058 -#: js/EnsembleBlocks.js:391 -#: js/EnsembleBlocks.js:402 -#: js/MediaBlocks.js:746 -#: js/ProgramBlocks.js:390 -#: js/ProgramBlocks.js:495 -#: js/ProgramBlocks.js:658 -#: js/BoxesBlocks.js:595 -#: js/PitchBlocks.js:656 -#: js/PitchBlocks.js:932 -#: js/PitchBlocks.js:1827 -#: js/ToneBlocks.js:1025 -#: js/DictBlocks.js:215 -#: js/DictBlocks.js:289 -msgid "name" -msgstr "Name" +#: js/SaveInterface.js:197 +#: planet/js/SaveInterface.js:58 +msgid "No description provided" +msgstr "" -#: js/blocks.js:4058 -#: js/RhythmBlocks.js:1130 -#: js/BoxesBlocks.js:75 -#: js/BoxesBlocks.js:595 -#: js/HeapBlocks.js:544 -#: js/DictBlocks.js:289 -#: js/DictBlocks.js:430 -msgid "value" -msgstr "Wert" +#: js/SaveInterface.js:332 +msgid "Your recording is in progress." +msgstr "" -#: js/blocks.js:4907 -msgid "There is no block selected." +#: js/SaveInterface.js:401 +#.TRANS: File name prompt for save as Lilypond +msgid "File name" msgstr "" -#: js/blocks.js:5002 -#: js/MediaBlocks.js:888 -msgid "show" -msgstr "Zeige" +#: js/SaveInterface.js:403 +#: planet/js/StringHelper.js:39 +#.TRANS: Project title prompt for save as Lilypond +msgid "Project title" +msgstr "" -#: js/blocks.js:5005 -#: js/MediaBlocks.js:803 -#.TRANS: Avatar is the image used to determine the appearance of the mouse. -msgid "avatar" +#: js/SaveInterface.js:405 +#.TRANS: Project title prompt for save as Lilypond +msgid "Project author" msgstr "" -#: js/blocks.js:5008 -#: js/ToneBlocks.js:1010 -#: js/sampler.js:693 -#.TRANS: The sound sample that the user uploads. -msgid "sample" +#: js/SaveInterface.js:407 +#.TRANS: MIDI prompt for save as Lilypond +msgid "Include MIDI output?" msgstr "" -#: js/turtles.js:874 -msgid "Grid" +#: js/SaveInterface.js:409 +#.TRANS: Guitar prompt for save as Lilypond +msgid "Include guitar tablature output?" msgstr "" -#: js/turtles.js:891 -#: js/turtledefs.js:626 -msgid "Clean" -msgstr "Alles löschen" +#: js/SaveInterface.js:411 +#.TRANS: Lilypond is a scripting language for generating sheet music +msgid "Save as Lilypond" +msgstr "" -#: js/turtles.js:912 -#: js/turtledefs.js:632 -msgid "Collapse" +#: js/SaveInterface.js:426 +#: js/blocks/EnsembleBlocks.js:75 +#: js/blocks/EnsembleBlocks.js:154 +#: js/blocks/EnsembleBlocks.js:216 +#: js/blocks/EnsembleBlocks.js:302 +#: js/blocks/EnsembleBlocks.js:348 +#: js/blocks/EnsembleBlocks.js:389 +#: js/blocks/EnsembleBlocks.js:441 +#: js/blocks/EnsembleBlocks.js:490 +#: js/blocks/EnsembleBlocks.js:536 +#: js/blocks/EnsembleBlocks.js:583 +#: js/blocks/EnsembleBlocks.js:637 +#: js/blocks/EnsembleBlocks.js:753 +#: js/blocks/EnsembleBlocks.js:840 +#: js/blocks/EnsembleBlocks.js:899 +#: js/blocks/EnsembleBlocks.js:942 +#: js/blocks/EnsembleBlocks.js:1212 +#: js/blocks/EnsembleBlocks.js:1280 +#.TRANS: default project author when saving as Lilypond +msgid "Mr. Mouse" msgstr "" -#: js/turtles.js:940 -msgid "Expand" +#: js/SaveInterface.js:573 +msgid "The Lilypond code is copied to clipboard. You can paste it here: " msgstr "" #: js/languagebox.js:198 @@ -2408,6934 +2263,7488 @@ msgstr "" msgid "Music Blocks is already set to this language." msgstr "" -#: js/piemenus.js:200 -#: js/musicutils.js:808 -#: js/musicutils.js:824 -#: js/phrasemaker.js:1672 -#: js/musickeyboard.js:2041 -#: js/sampler.js:544 -#.TRANS: double sharp is a music term related to pitch -msgid "double sharp" +#: js/planetInterface.js:131 +msgid "project undefined" msgstr "" -#: js/piemenus.js:201 -#: js/PitchBlocks.js:1510 -#: js/PitchActions.js:580 -#: js/musicutils.js:806 -#: js/musicutils.js:825 -#: js/phrasemaker.js:1673 -#: js/musickeyboard.js:2042 -#: js/sampler.js:545 -#.TRANS: sharp is a half-step up in pitch -#.TRANS: sharp is a music term related to pitch -msgid "sharp" -msgstr "Um einen Halbton erhöht" +#: js/rubrics.js:523 +#: js/turtledefs.js:119 +#: js/turtledefs.js:221 +#: js/blocks/RhythmBlockPaletteBlocks.js:52 +#: js/blocks/RhythmBlockPaletteBlocks.js:234 +#: js/blocks/ProgramBlocks.js:745 +#: js/widgets/rhythmruler.js:2057 +#: js/widgets/rhythmruler.js:2064 +#: js/widgets/rhythmruler.js:2133 +#: js/widgets/rhythmruler.js:2140 +#: js/widgets/rhythmruler.js:2219 +#.TRANS: an arrangement of notes based on duration +msgid "rhythm" +msgstr "Rhythmus" -#: js/piemenus.js:202 -#: js/musicutils.js:804 -#: js/musicutils.js:826 -#: js/phrasemaker.js:1674 -#: js/musickeyboard.js:2043 -#: js/sampler.js:546 -#.TRANS: natural is a music term related to pitch -msgid "natural" -msgstr "" +#: js/rubrics.js:524 +#: js/turtledefs.js:121 +#: js/turtledefs.js:223 +#: js/block-verbose.js:2622 +#: js/block.js:2550 +#: js/blocks/IntervalsBlocks.js:63 +#: js/blocks/SensorsBlocks.js:178 +#: js/blocks/PitchBlocks.js:1839 +#: js/blocks/PitchBlocks.js:1853 +#: js/widgets/musickeyboard.js:1935 +#: js/widgets/phrasemaker.js:1036 +#.TRANS: pitch number +#.TRANS: pitch number +#.TRANS: we specify pitch in terms of a name and an octave. The name can be CDEFGAB or Do Re Mi Fa Sol La Ti. Octave is a number between 1 and 8. +msgid "pitch" +msgstr "Tonlage" -#: js/piemenus.js:203 -#: js/PitchBlocks.js:1469 -#: js/PitchActions.js:583 -#: js/musicutils.js:802 -#: js/musicutils.js:827 -#: js/phrasemaker.js:1675 -#: js/musickeyboard.js:2044 -#: js/sampler.js:547 -#.TRANS: flat is a half-step down in pitch -#.TRANS: flat is a music term related to pitch -msgid "flat" -msgstr "Um einen Halbton erniedrigt" +#: js/rubrics.js:525 +#: js/turtledefs.js:123 +#: js/turtledefs.js:225 +msgid "tone" +msgstr "Ton" -#: js/piemenus.js:204 -#: js/musicutils.js:800 -#: js/musicutils.js:828 -#: js/phrasemaker.js:1676 -#: js/musickeyboard.js:2045 -#: js/sampler.js:548 -#.TRANS: double flat is a music term related to pitch -msgid "double flat" -msgstr "" +#: js/rubrics.js:526 +#: js/lilypond.js:605 +#: js/lilypond.js:904 +#: js/lilypond.js:910 +#: js/lilypond.js:948 +msgid "mouse" +msgstr "Maus" -#: js/piemenus.js:2861 -#: js/PitchBlocks.js:1357 -#: js/musicutils.js:627 -#.TRANS: unison means the note is the same as the current note -#.TRANS: unison is a music term related to intervals -msgid "unison" -msgstr "" +#: js/rubrics.js:527 +#: js/turtledefs.js:132 +#: js/turtledefs.js:234 +#: js/widgets/phrasemaker.js:1040 +msgid "pen" +msgstr "Stift" -#: js/piemenus.js:3015 -#: js/piemenus.js:3088 -#: js/musicutils.js:635 -#: js/musicutils.js:810 -#: js/musicutils.js:912 -#.TRANS: major is a music term related to intervals and mode -msgid "major" -msgstr "Dur" +#: js/rubrics.js:528 +#: js/turtledefs.js:133 +#: js/turtledefs.js:235 +#: js/blocks/NumberBlocks.js:981 +#: js/blocks/PitchBlocks.js:1717 +#: js/blocks/PitchBlocks.js:1758 +msgid "number" +msgstr "Zahl" -#: js/piemenus.js:3015 -#: js/piemenus.js:3088 -#: js/musicutils.js:653 -#.TRANS: modal scale for music -msgid "ionian" -msgstr "" +#: js/rubrics.js:529 +#: js/turtledefs.js:127 +#: js/turtledefs.js:229 +msgid "flow" +msgstr "Programmfluss" -#: js/piemenus.js:3017 -#: js/piemenus.js:3092 -#: js/musicutils.js:633 -#: js/musicutils.js:811 -#: js/musicutils.js:909 -#.TRANS: minor is a music term related to intervals and mode -msgid "minor" -msgstr "Moll" +#: js/rubrics.js:530 +#: js/turtledefs.js:128 +#: js/turtledefs.js:230 +#: js/block-verbose.js:1609 +#: js/block-verbose.js:4559 +#: js/block-verbose.js:4577 +#: js/block-verbose.js:4588 +#: js/block.js:1573 +#: js/block.js:4483 +#: js/block.js:4501 +#: js/block.js:4512 +#: js/blocks.js:1018 +#: js/blocks.js:3491 +#: js/blocks.js:3492 +#: js/blocks.js:3717 +#: js/blocks.js:4076 +#: js/blocks.js:4269 +#: js/blocks.js:5432 +#: js/blocks.js:6563 +#: js/macros.js:170 +#: js/macros.js:266 +#: js/macros.js:267 +#: js/macros.js:276 +#: js/macros.js:828 +#: js/palette.js:527 +#: js/palette.js:536 +#: js/palette.js:545 +#: js/palette.js:554 +#: js/palette.js:1129 +#: js/palette.js:1140 +#: js/palette.js:1151 +#: js/palette.js:1162 +#: js/palette.js:1181 +#: js/blocks/ActionBlocks.js:254 +#: js/blocks/ActionBlocks.js:307 +#: js/blocks/ActionBlocks.js:617 +#: js/blocks/ActionBlocks.js:716 +#: js/blocks/ActionBlocks.js:961 +#: js/blocks/ActionBlocks.js:1049 +#: js/blocks/ActionBlocks.js:1322 +#: js/blocks/ActionBlocks.js:1325 +#: js/blocks/ActionBlocks.js:1337 +#: js/blocks/ActionBlocks.js:1404 +#: js/blocks/MeterBlocks.js:715 +#: js/blocks/MeterBlocks.js:768 +#: js/blocks/MeterBlocks.js:831 +#: js/blocks/MeterBlocks.js:892 +#: js/widgets/musickeyboard.js:2986 +#: js/widgets/phrasemaker.js:4913 +#: js/widgets/rhythmruler.js:2319 +#: js/widgets/rhythmruler.js:2326 +#: js/widgets/rhythmruler.js:2511 +#: js/widgets/rhythmruler.js:2518 +msgid "action" +msgstr "Aktion" -#: js/piemenus.js:3017 -#: js/piemenus.js:3092 -#: js/musicutils.js:663 -#.TRANS: modal scale for music -msgid "aeolian" -msgstr "" +#: js/rubrics.js:531 +#: js/turtledefs.js:136 +#: js/turtledefs.js:238 +msgid "sensors" +msgstr "Sensoren" -#: js/piemenus.js:3407 -msgid "Duplicate" -msgstr "" +#: js/rubrics.js:532 +#: js/turtledefs.js:135 +#: js/turtledefs.js:237 +#: js/blocks/MediaBlocks.js:930 +msgid "media" +msgstr "Medien" -#: js/piemenus.js:3408 -#: js/turtledefs.js:534 -msgid "Extract" +#: js/rubrics.js:533 +msgid "mice" msgstr "" -#: js/piemenus.js:3409 -msgid "Move to trash" +#: js/toolbar.js:48 +#: js/toolbar.js:109 +msgid "About Music Blocks" msgstr "" -#: js/piemenus.js:3410 -#: js/timbre.js:968 -#: js/StringHelper.js:69 -msgid "Close" -msgstr "Schließen" - -#: js/piemenus.js:3416 -msgid "Save stack" -msgstr "Stapel speichern" - -#: js/piemenus.js:3420 -#: js/toolbar.js:60 -#: js/toolbar.js:120 -#: js/toolbar.js:185 -#: js/toolbar.js:240 -#: js/turtledefs.js:752 -msgid "Help" -msgstr "Hilfe" - -#: js/piemenus.js:3762 -msgid "You have chosen key " -msgstr "" - -#: js/piemenus.js:3766 -msgid " for your pitch preview." -msgstr "" - -#: js/palette.js:571 -msgid "grid" -msgstr "" - -#: js/palette.js:577 -#: js/block.js:1540 -#: js/block.js:2343 -#: js/turtledefs.js:126 -#: js/turtledefs.js:228 -#: js/lilypond.js:740 -#: js/lilypond.js:905 -#: js/lilypond.js:949 -#: js/DrumBlocks.js:486 -#: js/RhythmBlocks.js:766 -#: js/VolumeBlocks.js:502 -#: js/phrasemaker.js:823 -msgid "drum" -msgstr "Trommel" - -#: js/palette.js:580 -msgid "effect" -msgstr "" - -#: js/palette.js:586 -msgid "sargam" -msgstr "" - -#: js/palette.js:589 -#: js/activity.js:1833 -#: js/RhythmBlocks.js:923 -#: js/PitchBlocks.js:442 -#: js/PitchBlocks.js:1748 -#.TRANS: a numeric mapping of the notes in an octave based on the musical mode -msgid "scale degree" -msgstr "" - -#: js/palette.js:592 -#: js/activity.js:1860 -msgid "mode name" -msgstr "" - -#: js/palette.js:595 -#: js/activity.js:1839 -msgid "invert mode" -msgstr "" - -#: js/palette.js:598 -#: js/activity.js:1836 -msgid "voice name" -msgstr "" - -#: js/palette.js:601 -#: js/PitchBlocks.js:1181 -msgid "custom pitch" -msgstr "" - -#: js/palette.js:605 -#: js/block.js:1456 -#: js/block.js:1575 -#: js/WidgetBlocks.js:218 -#: js/IntervalsBlocks.js:63 -msgid "temperament" -msgstr "" - -#: js/palette.js:609 -msgid "accidental" -msgstr "" - -#: js/palette.js:615 -#: js/activity.js:1866 -msgid "interval name" -msgstr "" - -#: js/palette.js:633 -#: js/PitchBlocks.js:405 -msgid "pitch converter" -msgstr "" - -#: js/rubrics.js:522 -#: js/turtledefs.js:119 -#: js/turtledefs.js:221 -#: js/RhythmBlockPaletteBlocks.js:52 -#: js/RhythmBlockPaletteBlocks.js:233 -#: js/ProgramBlocks.js:745 -#: js/rhythmruler.js:1670 -#: js/rhythmruler.js:1677 -#: js/rhythmruler.js:1745 -#: js/rhythmruler.js:1752 -#: js/rhythmruler.js:1830 -#.TRANS: an arrangement of notes based on duration -msgid "rhythm" -msgstr "Rhythmus" - -#: js/rubrics.js:523 -#: js/block.js:2339 -#: js/turtledefs.js:121 -#: js/turtledefs.js:223 -#: js/IntervalsBlocks.js:63 -#: js/PitchBlocks.js:1801 -#: js/PitchBlocks.js:1814 -#: js/SensorsBlocks.js:178 -#: js/phrasemaker.js:821 -#: js/musickeyboard.js:1653 -#.TRANS: pitch number -#.TRANS: we specify pitch in terms of a name and an octave. The name can be CDEFGAB or Do Re Mi Fa Sol La Ti. Octave is a number between 1 and 8. -msgid "pitch" -msgstr "Tonlage" - -#: js/rubrics.js:524 -#: js/turtledefs.js:123 -#: js/turtledefs.js:225 -msgid "tone" -msgstr "Ton" - -#: js/rubrics.js:525 -#: js/lilypond.js:613 -#: js/lilypond.js:912 -#: js/lilypond.js:918 -#: js/lilypond.js:956 -msgid "mouse" -msgstr "Maus" - -#: js/rubrics.js:526 -#: js/turtledefs.js:132 -#: js/turtledefs.js:234 -#: js/phrasemaker.js:825 -msgid "pen" -msgstr "Stift" - -#: js/rubrics.js:527 -#: js/turtledefs.js:133 -#: js/turtledefs.js:235 -#: js/NumberBlocks.js:905 -#: js/PitchBlocks.js:1679 -#: js/PitchBlocks.js:1720 -msgid "number" -msgstr "Zahl" - -#: js/rubrics.js:528 -#: js/turtledefs.js:127 -#: js/turtledefs.js:229 -msgid "flow" -msgstr "Programmfluss" - -#: js/rubrics.js:530 -#: js/turtledefs.js:136 -#: js/turtledefs.js:238 -msgid "sensors" -msgstr "Sensoren" - -#: js/rubrics.js:531 -#: js/turtledefs.js:135 -#: js/turtledefs.js:237 -#: js/MediaBlocks.js:930 -msgid "media" -msgstr "Medien" - -#: js/rubrics.js:532 -msgid "mice" -msgstr "" - -#: js/macros.js:711 -#: js/musicutils.js:783 -#: js/synthutils.js:181 -#.TRANS: animal sound effect -msgid "duck" -msgstr "Ente" - -#: js/toolbar.js:46 -#: js/toolbar.js:107 -msgid "About Music Blocks" -msgstr "" - -#: js/toolbar.js:47 -#: js/toolbar.js:108 -#: js/toolbar.js:172 -#: js/toolbar.js:228 +#: js/toolbar.js:49 +#: js/toolbar.js:110 +#: js/toolbar.js:175 +#: js/toolbar.js:231 #: js/turtledefs.js:445 #: js/turtledefs.js:482 -#: js/activity.js:2281 -#: js/activity.js:2289 -#: js/activity.js:2520 -#: js/modewidget.js:77 -#: js/pitchstaircase.js:121 -#: js/phrasemaker.js:302 -#: js/phrasemaker.js:312 -#: js/phrasemaker.js:314 -#: js/phrasemaker.js:3901 -#: js/phrasemaker.js:4061 -#: js/phrasemaker.js:4066 -#: js/phrasemaker.js:4068 -#: js/phrasemaker.js:4183 -#: js/pitchdrummatrix.js:81 -#: js/pitchdrummatrix.js:574 -#: js/pitchdrummatrix.js:576 -#: js/pitchdrummatrix.js:628 -#: js/pitchdrummatrix.js:630 -#: js/pitchdrummatrix.js:645 -#: js/pitchdrummatrix.js:647 -#: js/pitchdrummatrix.js:674 -#: js/pitchdrummatrix.js:676 -#: js/temperament.js:477 -#: js/temperament.js:480 -#: js/temperament.js:540 -#: js/temperament.js:542 -#: js/temperament.js:1835 -#: js/temperament.js:1837 -#: js/temperament.js:1986 -#: js/temperament.js:1988 -#: js/musickeyboard.js:522 -#: js/musickeyboard.js:682 -#: js/musickeyboard.js:684 -#: js/musickeyboard.js:756 -#: js/musickeyboard.js:758 -#: js/rhythmruler.js:298 -#: js/rhythmruler.js:300 -#: js/rhythmruler.js:314 -#: js/rhythmruler.js:316 -#: js/sampler.js:96 -#: js/sampler.js:98 -#: js/sampler.js:229 -#: js/sampler.js:235 -#: js/sampler.js:237 -#: js/tempo.js:84 -#: js/tempo.js:86 -#: js/timbre.js:432 -#: js/timbre.js:434 -#: js/timbre.js:465 -#: js/timbre.js:467 -#: js/timbre.js:746 -#: js/meterwidget.js:80 -#: js/arpeggio.js:90 -#: js/arpeggio.js:547 -#: js/arpeggio.js:549 -#: js/arpeggio.js:644 -#: js/arpeggio.js:646 +#: js/activity.js:2660 +#: js/activity.js:2671 +#: js/activity.js:2902 +#: js/widgets/modewidget.js:77 +#: js/widgets/meterwidget.js:185 +#: js/widgets/pitchdrummatrix.js:147 +#: js/widgets/pitchdrummatrix.js:687 +#: js/widgets/pitchdrummatrix.js:689 +#: js/widgets/pitchdrummatrix.js:741 +#: js/widgets/pitchdrummatrix.js:743 +#: js/widgets/pitchdrummatrix.js:758 +#: js/widgets/pitchdrummatrix.js:760 +#: js/widgets/pitchdrummatrix.js:789 +#: js/widgets/pitchdrummatrix.js:791 +#: js/widgets/pitchstaircase.js:121 +#: js/widgets/temperament.js:610 +#: js/widgets/temperament.js:613 +#: js/widgets/temperament.js:673 +#: js/widgets/temperament.js:675 +#: js/widgets/temperament.js:2017 +#: js/widgets/temperament.js:2019 +#: js/widgets/tempo.js:84 +#: js/widgets/tempo.js:86 +#: js/widgets/timbre.js:432 +#: js/widgets/timbre.js:434 +#: js/widgets/timbre.js:465 +#: js/widgets/timbre.js:467 +#: js/widgets/timbre.js:746 +#: js/widgets/aiwidget.js:647 +#: js/widgets/aiwidget.js:654 +#: js/widgets/aiwidget.js:656 +#: js/widgets/arpeggio.js:90 +#: js/widgets/arpeggio.js:547 +#: js/widgets/arpeggio.js:549 +#: js/widgets/arpeggio.js:644 +#: js/widgets/arpeggio.js:646 +#: js/widgets/musickeyboard.js:676 +#: js/widgets/musickeyboard.js:872 +#: js/widgets/musickeyboard.js:874 +#: js/widgets/musickeyboard.js:953 +#: js/widgets/musickeyboard.js:955 +#: js/widgets/phrasemaker.js:513 +#: js/widgets/phrasemaker.js:523 +#: js/widgets/phrasemaker.js:525 +#: js/widgets/phrasemaker.js:4304 +#: js/widgets/phrasemaker.js:4528 +#: js/widgets/phrasemaker.js:4533 +#: js/widgets/phrasemaker.js:4535 +#: js/widgets/phrasemaker.js:4650 +#: js/widgets/rhythmruler.js:637 +#: js/widgets/rhythmruler.js:639 +#: js/widgets/rhythmruler.js:653 +#: js/widgets/rhythmruler.js:655 +#: js/widgets/sampler.js:162 +#: js/widgets/sampler.js:164 +#: js/widgets/sampler.js:363 msgid "Play" msgstr "" -#: js/toolbar.js:48 -#: js/toolbar.js:109 -#: js/toolbar.js:173 -#: js/toolbar.js:229 +#: js/toolbar.js:50 +#: js/toolbar.js:111 +#: js/toolbar.js:176 +#: js/toolbar.js:232 #: js/turtledefs.js:451 #: js/turtledefs.js:488 -#: js/activity.js:2297 -#: js/modewidget.js:99 -#: js/modewidget.js:101 -#: js/phrasemaker.js:323 -#: js/phrasemaker.js:325 -#: js/pitchdrummatrix.js:561 -#: js/pitchdrummatrix.js:563 -#: js/temperament.js:1820 -#: js/temperament.js:1822 -#: js/meterwidget.js:101 -#: js/meterwidget.js:103 -#: js/arpeggio.js:534 -#: js/arpeggio.js:536 +#: js/activity.js:2679 +#: js/widgets/modewidget.js:99 +#: js/widgets/modewidget.js:101 +#: js/widgets/meterwidget.js:206 +#: js/widgets/meterwidget.js:208 +#: js/widgets/pitchdrummatrix.js:674 +#: js/widgets/pitchdrummatrix.js:676 +#: js/widgets/temperament.js:2002 +#: js/widgets/temperament.js:2004 +#: js/widgets/arpeggio.js:534 +#: js/widgets/arpeggio.js:536 +#: js/widgets/phrasemaker.js:534 +#: js/widgets/phrasemaker.js:536 msgid "Stop" msgstr "Anhalten" -#: js/toolbar.js:49 -#: js/toolbar.js:110 -#: js/toolbar.js:174 -#: js/toolbar.js:230 +#: js/toolbar.js:51 +#: js/toolbar.js:112 +#: js/toolbar.js:177 +#: js/toolbar.js:233 #: js/turtledefs.js:498 msgid "Record" msgstr "" -#: js/toolbar.js:50 -#: js/toolbar.js:51 +#: js/toolbar.js:52 +#: js/toolbar.js:53 msgid "Full screen" msgstr "" -#: js/toolbar.js:52 -#: js/toolbar.js:112 -#: js/toolbar.js:177 -#: js/toolbar.js:232 +#: js/toolbar.js:54 +#: js/toolbar.js:115 +#: js/toolbar.js:180 +#: js/toolbar.js:236 #: js/turtledefs.js:504 msgid "Toggle Fullscreen" msgstr "" -#: js/toolbar.js:53 -#: js/toolbar.js:113 -#: js/toolbar.js:178 -#: js/toolbar.js:233 +#: js/toolbar.js:55 +#: js/toolbar.js:116 +#: js/toolbar.js:181 +#: js/toolbar.js:237 #: js/turtledefs.js:510 -#: js/StringHelper.js:33 +#: planet/js/StringHelper.js:33 msgid "New project" msgstr "" -#: js/toolbar.js:54 -#: js/toolbar.js:114 -#: js/toolbar.js:179 -#: js/toolbar.js:234 +#: js/toolbar.js:56 +#: js/toolbar.js:117 +#: js/toolbar.js:182 +#: js/toolbar.js:238 #: js/turtledefs.js:516 msgid "Load project from file" msgstr "Lade ein Projekt aus Dateien" -#: js/toolbar.js:55 -#: js/toolbar.js:115 -#: js/toolbar.js:116 -#: js/toolbar.js:180 -#: js/toolbar.js:235 +#: js/toolbar.js:57 +#: js/toolbar.js:118 +#: js/toolbar.js:119 +#: js/toolbar.js:183 +#: js/toolbar.js:239 #: js/turtledefs.js:541 #: js/turtledefs.js:550 #: js/turtledefs.js:571 msgid "Save project" msgstr "Projekt speichern" -#: js/toolbar.js:56 -#: js/toolbar.js:75 +#: js/toolbar.js:58 #: js/toolbar.js:77 -#: js/toolbar.js:135 -#: js/toolbar.js:144 -#: js/toolbar.js:146 -#: js/toolbar.js:181 -#: js/toolbar.js:199 -#: js/toolbar.js:201 -#: js/toolbar.js:236 -#: js/toolbar.js:254 -#: js/toolbar.js:256 +#: js/toolbar.js:79 +#: js/toolbar.js:138 +#: js/toolbar.js:147 +#: js/toolbar.js:149 +#: js/toolbar.js:184 +#: js/toolbar.js:202 +#: js/toolbar.js:204 +#: js/toolbar.js:240 +#: js/toolbar.js:258 +#: js/toolbar.js:260 msgid "Save project as HTML" msgstr "" -#: js/toolbar.js:57 -#: js/toolbar.js:117 -#: js/toolbar.js:182 -#: js/toolbar.js:237 +#: js/toolbar.js:59 +#: js/toolbar.js:120 +#: js/toolbar.js:185 +#: js/toolbar.js:241 msgid "Find and share projects" msgstr "" -#: js/toolbar.js:58 -#: js/toolbar.js:118 -#: js/toolbar.js:183 -#: js/toolbar.js:238 +#: js/toolbar.js:60 +#: js/toolbar.js:121 +#: js/toolbar.js:186 +#: js/toolbar.js:242 msgid "Offline. Sharing is unavailable" msgstr "" -#: js/toolbar.js:59 -#: js/toolbar.js:119 -#: js/toolbar.js:184 -#: js/toolbar.js:239 -msgid "Auxiliary menu" -msgstr "" - #: js/toolbar.js:61 -#: js/toolbar.js:121 -#: js/toolbar.js:186 -#: js/toolbar.js:241 -msgid "Run slowly" +#: js/toolbar.js:122 +#: js/toolbar.js:187 +#: js/toolbar.js:243 +msgid "Auxiliary menu" msgstr "" #: js/toolbar.js:62 -#: js/toolbar.js:122 -#: js/toolbar.js:187 -#: js/toolbar.js:242 +#: js/toolbar.js:123 +#: js/toolbar.js:188 +#: js/toolbar.js:244 +#: js/turtledefs.js:752 +#: js/piemenus.js:3423 +msgid "Help" +msgstr "Hilfe" + +#: js/toolbar.js:63 +#: js/toolbar.js:124 +#: js/toolbar.js:189 +#: js/toolbar.js:245 +msgid "Run slowly" +msgstr "" + +#: js/toolbar.js:64 +#: js/toolbar.js:125 +#: js/toolbar.js:190 +#: js/toolbar.js:246 #: js/turtledefs.js:682 msgid "Run step by step" msgstr "Schritt für Schritt abspielen" -#: js/toolbar.js:63 -#: js/toolbar.js:123 -#: js/toolbar.js:188 -#: js/toolbar.js:243 +#: js/toolbar.js:65 +#: js/toolbar.js:126 +#: js/toolbar.js:191 +#: js/toolbar.js:247 #: js/turtledefs.js:689 msgid "Display statistics" msgstr "Statistiken anzeigen" -#: js/toolbar.js:64 -#: js/toolbar.js:124 -#: js/toolbar.js:189 -#: js/toolbar.js:244 +#: js/toolbar.js:66 +#: js/toolbar.js:127 +#: js/toolbar.js:192 +#: js/toolbar.js:248 msgid "Load plugin" msgstr "" -#: js/toolbar.js:65 -#: js/toolbar.js:125 -#: js/toolbar.js:190 -#: js/toolbar.js:245 +#: js/toolbar.js:67 +#: js/toolbar.js:128 +#: js/toolbar.js:193 +#: js/toolbar.js:249 #: js/turtledefs.js:696 msgid "Delete plugin" msgstr "" -#: js/toolbar.js:66 -#: js/toolbar.js:126 -#: js/toolbar.js:191 -#: js/toolbar.js:246 +#: js/toolbar.js:68 +#: js/toolbar.js:129 +#: js/toolbar.js:194 +#: js/toolbar.js:250 msgid "Enable horizontal scrolling" msgstr "" -#: js/toolbar.js:67 -#: js/toolbar.js:127 -#: js/toolbar.js:192 -#: js/toolbar.js:247 +#: js/toolbar.js:69 +#: js/toolbar.js:130 +#: js/toolbar.js:195 +#: js/toolbar.js:251 msgid "Disable horizontal scrolling" msgstr "" -#: js/toolbar.js:68 -#: js/toolbar.js:128 -#: js/toolbar.js:193 -#: js/toolbar.js:248 -#: js/LocalCard.js:54 -#: js/StringHelper.js:71 +#: js/toolbar.js:70 +#: js/toolbar.js:131 +#: js/toolbar.js:196 +#: js/toolbar.js:252 +#: planet/js/LocalCard.js:54 +#: planet/js/StringHelper.js:71 msgid "Merge with current project" msgstr "" -#: js/toolbar.js:69 -#: js/toolbar.js:129 -msgid "Set Pitch Preview" -msgstr "" +#: js/toolbar.js:71 +#: js/toolbar.js:132 +msgid "Set Pitch Preview" +msgstr "" + +#: js/toolbar.js:72 +#: js/toolbar.js:133 +#: js/toolbar.js:197 +#: js/toolbar.js:253 +msgid "JavaScript Editor" +msgstr "" + +#: js/toolbar.js:73 +#: js/toolbar.js:134 +#: js/toolbar.js:198 +#: js/toolbar.js:254 +#: js/turtledefs.js:724 +msgid "Restore" +msgstr "" + +#: js/toolbar.js:74 +#: js/toolbar.js:135 +#: js/toolbar.js:199 +#: js/toolbar.js:255 +msgid "Switch to beginner mode" +msgstr "" + +#: js/toolbar.js:75 +#: js/toolbar.js:136 +#: js/toolbar.js:200 +#: js/toolbar.js:256 +msgid "Switch to advanced mode" +msgstr "" + +#: js/toolbar.js:76 +#: js/toolbar.js:137 +#: js/toolbar.js:146 +#: js/toolbar.js:201 +#: js/toolbar.js:257 +#: js/turtledefs.js:738 +msgid "Select language" +msgstr "" + +#: js/toolbar.js:78 +#: js/toolbar.js:81 +#: js/toolbar.js:140 +#: js/turtledefs.js:579 +msgid "Save mouse artwork as PNG" +msgstr "" + +#: js/toolbar.js:80 +#: js/toolbar.js:139 +#: js/turtledefs.js:575 +msgid "Save mouse artwork as SVG" +msgstr "" + +#: js/toolbar.js:82 +#: js/toolbar.js:141 +#: js/turtledefs.js:583 +msgid "Save music as WAV" +msgstr "" + +#: js/toolbar.js:83 +#: js/toolbar.js:142 +#: js/turtledefs.js:587 +msgid "Save sheet music as ABC" +msgstr "" + +#: js/toolbar.js:84 +#: js/toolbar.js:143 +#: js/turtledefs.js:591 +msgid "Save sheet music as Lilypond" +msgstr "" + +#: js/toolbar.js:85 +msgid "Save sheet music as MusicXML" +msgstr "" + +#: js/toolbar.js:86 +#: js/toolbar.js:144 +#: js/toolbar.js:152 +#: js/toolbar.js:207 +#: js/toolbar.js:263 +#: js/turtledefs.js:562 +#: js/turtledefs.js:595 +msgid "Save block artwork as SVG" +msgstr "" + +#: js/toolbar.js:87 +#: js/toolbar.js:145 +#: js/toolbar.js:153 +#: js/toolbar.js:208 +#: js/toolbar.js:264 +#: js/turtles.js:911 +msgid "Confirm" +msgstr "" + +#: js/toolbar.js:88 +#: js/toolbar.js:154 +#: js/toolbar.js:209 +#: js/toolbar.js:265 +msgid "English (United States)" +msgstr "" + +#: js/toolbar.js:89 +#: js/toolbar.js:155 +#: js/toolbar.js:210 +#: js/toolbar.js:266 +msgid "English (United Kingdom)" +msgstr "" + +#: js/toolbar.js:90 +#: js/toolbar.js:156 +#: js/toolbar.js:211 +#: js/toolbar.js:267 +msgid "日本語" +msgstr "" + +#: js/toolbar.js:91 +msgid "한국어" +msgstr "" + +#: js/toolbar.js:92 +#: js/toolbar.js:158 +#: js/toolbar.js:213 +#: js/toolbar.js:269 +msgid "español" +msgstr "" + +#: js/toolbar.js:93 +#: js/toolbar.js:159 +#: js/toolbar.js:214 +#: js/toolbar.js:270 +msgid "português" +msgstr "" + +#: js/toolbar.js:94 +#: js/toolbar.js:160 +#: js/toolbar.js:215 +#: js/toolbar.js:271 +msgid "にほんご" +msgstr "" + +#: js/toolbar.js:95 +#: js/toolbar.js:161 +#: js/toolbar.js:216 +#: js/toolbar.js:272 +msgid "中文" +msgstr "" + +#: js/toolbar.js:96 +#: js/toolbar.js:162 +#: js/toolbar.js:217 +#: js/toolbar.js:273 +msgid "ภาษาไทย" +msgstr "" + +#: js/toolbar.js:97 +#: js/toolbar.js:163 +#: js/toolbar.js:218 +#: js/toolbar.js:274 +msgid "aymara" +msgstr "" + +#: js/toolbar.js:98 +#: js/toolbar.js:164 +#: js/toolbar.js:219 +#: js/toolbar.js:275 +msgid "quechua" +msgstr "" + +#: js/toolbar.js:99 +#: js/toolbar.js:165 +#: js/toolbar.js:220 +#: js/toolbar.js:276 +msgid "guarani" +msgstr "" + +#: js/toolbar.js:100 +#: js/toolbar.js:166 +#: js/toolbar.js:221 +#: js/toolbar.js:277 +msgid "हिंदी" +msgstr "" + +#: js/toolbar.js:101 +#: js/toolbar.js:168 +#: js/toolbar.js:222 +#: js/toolbar.js:279 +msgid "igbo" +msgstr "" + +#: js/toolbar.js:102 +#: js/toolbar.js:169 +#: js/toolbar.js:223 +#: js/toolbar.js:280 +msgid "عربى" +msgstr "" + +#: js/toolbar.js:103 +#: js/toolbar.js:167 +#: js/toolbar.js:224 +#: js/toolbar.js:278 +msgid "తెలుగు" +msgstr "" + +#: js/toolbar.js:104 +#: js/toolbar.js:170 +#: js/toolbar.js:225 +#: js/toolbar.js:281 +msgid "עִברִית" +msgstr "" + +#: js/toolbar.js:113 +#: js/toolbar.js:114 +#: js/toolbar.js:178 +#: js/toolbar.js:179 +#: js/toolbar.js:234 +#: js/toolbar.js:235 +msgid "Full Screen" +msgstr "" + +#: js/toolbar.js:148 +#: js/toolbar.js:151 +#: js/toolbar.js:203 +#: js/toolbar.js:206 +#: js/toolbar.js:259 +#: js/toolbar.js:262 +#: js/turtledefs.js:558 +msgid "Save turtle artwork as PNG" +msgstr "" + +#: js/toolbar.js:150 +#: js/toolbar.js:205 +#: js/toolbar.js:261 +#: js/turtledefs.js:554 +msgid "Save turtle artwork as SVG" +msgstr "" + +#: js/toolbar.js:157 +#: js/toolbar.js:212 +#: js/toolbar.js:268 +msgid "한국인" +msgstr "" + +#: js/toolbar.js:174 +#: js/toolbar.js:230 +msgid "About Turtle Blocks" +msgstr "" + +#: js/toolbar.js:446 +#: js/toolbar.js:457 +#: js/toolbar.js:497 +msgid "Turtle Wrap Off" +msgstr "" + +#: js/toolbar.js:466 +#: js/toolbar.js:506 +msgid "Turtle Wrap On" +msgstr "" + +#: js/turtle-painter.js:1192 +#: js/turtle-painter.js:1193 +#: js/turtles.js:118 +#: js/block-verbose.js:1623 +#: js/block.js:1587 +#: js/lilypond.js:749 +#: js/lilypond.js:913 +#: js/lilypond.js:951 +#: js/logo.js:1184 +#: js/blocks/ActionBlocks.js:1223 +#: js/blocks/ProgramBlocks.js:1267 +msgid "start" +msgstr "Starten" + +#: js/turtledefs.js:40 +#.TRANS: put the URL to the guide here, e.g., https://github.com/sugarlabs/turtleblocksjs/tree/master/guide/README.md +msgid "guide url" +msgstr "" + +#: js/turtledefs.js:85 +#: js/turtledefs.js:437 +msgid "Turtle Blocks is a Logo-inspired turtle that draws colorful pictures with snap-together visual-programming blocks." +msgstr "" + +#: js/turtledefs.js:118 +#: js/turtledefs.js:220 +msgid "search" +msgstr "" + +#: js/turtledefs.js:120 +#: js/turtledefs.js:222 +#: js/blocks/MeterBlocks.js:1343 +#: js/blocks/WidgetBlocks.js:522 +#.TRANS: musical meter (time signature), e.g., 4:4 +msgid "meter" +msgstr "Meter" + +#: js/turtledefs.js:122 +#: js/turtledefs.js:224 +msgid "intervals" +msgstr "Intervalle" + +#: js/turtledefs.js:124 +#: js/turtledefs.js:226 +msgid "ornament" +msgstr "" + +#: js/turtledefs.js:125 +#: js/turtledefs.js:227 +#: js/blocks/VolumeBlocks.js:362 +#: js/blocks/VolumeBlocks.js:502 +#: js/blocks/VolumeBlocks.js:545 +msgid "volume" +msgstr "" + +#: js/turtledefs.js:126 +#: js/turtledefs.js:228 +#: js/block-verbose.js:1700 +#: js/block-verbose.js:2626 +#: js/block.js:1664 +#: js/block.js:2554 +#: js/lilypond.js:732 +#: js/lilypond.js:897 +#: js/lilypond.js:941 +#: js/palette.js:577 +#: js/blocks/RhythmBlocks.js:766 +#: js/blocks/DrumBlocks.js:477 +#: js/blocks/VolumeBlocks.js:502 +#: js/widgets/phrasemaker.js:1038 +msgid "drum" +msgstr "Trommel" + +#: js/turtledefs.js:129 +#: js/turtledefs.js:231 +msgid "boxes" +msgstr "Kästen" + +#: js/turtledefs.js:130 +#: js/turtledefs.js:232 +msgid "widgets" +msgstr "Widgets" + +#: js/turtledefs.js:131 +#: js/turtledefs.js:233 +#: js/widgets/phrasemaker.js:1039 +msgid "graphics" +msgstr "" + +#: js/turtledefs.js:134 +#: js/turtledefs.js:236 +msgid "boolean" +msgstr "logisch" + +#: js/turtledefs.js:137 +#: js/turtledefs.js:239 +#: js/blocks/HeapBlocks.js:59 +#: js/widgets/status.js:147 +msgid "heap" +msgstr "Stapel" + +#: js/turtledefs.js:138 +#: js/turtledefs.js:240 +#: js/blocks/DictBlocks.js:142 +#: js/blocks/ProgramBlocks.js:495 +msgid "dictionary" +msgstr "" + +#: js/turtledefs.js:139 +#: js/turtledefs.js:241 +msgid "ensemble" +msgstr "" + +#: js/turtledefs.js:140 +#: js/turtledefs.js:242 +msgid "extras" +msgstr "Extras" + +#: js/turtledefs.js:142 +#: js/turtledefs.js:244 +#.TRANS: program as in computer program +#.TRANS: program as in computer program +msgid "program" +msgstr "" + +#: js/turtledefs.js:143 +#: js/turtledefs.js:245 +msgid "my blocks" +msgstr "" + +#: js/turtledefs.js:185 +#: js/turtledefs.js:281 +msgid "artwork" +msgstr "" + +#: js/turtledefs.js:185 +#: js/turtledefs.js:281 +msgid "logic" +msgstr "Logik" + +#: js/turtledefs.js:185 +#: js/turtledefs.js:281 +msgid "music" +msgstr "" + +#: js/turtledefs.js:187 +#: js/turtledefs.js:463 +msgid "Music Blocks is a collection of tools for exploring fundamental musical concepts in a fun way." +msgstr "“Music Blocks ist eine Sammlung von Tools um die grundlegenden Konzepte der Musik mit Spaß zu entdecken" + +#: js/turtledefs.js:436 +msgid "Welcome to Turtle Blocks" +msgstr "" + +#: js/turtledefs.js:438 +#: js/turtledefs.js:465 +#: js/turtledefs.js:774 +#: js/turtledefs.js:805 +msgid "The current version is" +msgstr "" + +#: js/turtledefs.js:446 +#: js/turtledefs.js:483 +msgid "Click the run button to run the project in fast mode." +msgstr "" + +#: js/turtledefs.js:452 +msgid "Stop the turtle." +msgstr "" + +#: js/turtledefs.js:454 +#: js/turtledefs.js:491 +msgid "You can also type Alt-S to stop." +msgstr "" + +#: js/turtledefs.js:462 +#: js/widgets/help.js:333 +msgid "Welcome to Music Blocks" +msgstr "Willkommen bei „Music Blocks“ " + +#: js/turtledefs.js:472 +#: js/widgets/help.js:334 +msgid "Meet Mr. Mouse!" +msgstr "Lerne Herr Maus kennen" + +#: js/turtledefs.js:473 +msgid "Mr Mouse is our Music Blocks conductor." +msgstr "Herr Maus ist der Dirigent bei „Music Blocks“" + +#: js/turtledefs.js:475 +msgid "Mr Mouse encourages you to explore Music Blocks." +msgstr "Herr Maus will, dass du „Music Blocks“ kennenlernst" + +#: js/turtledefs.js:477 +msgid "Let us start our tour!" +msgstr "Lass uns die Tour beginnen" + +#: js/turtledefs.js:489 +msgid "Stop the music (and the mice)." +msgstr "" + +#: js/turtledefs.js:499 +msgid "Record your project as video." +msgstr "" + +#: js/turtledefs.js:505 +msgid "Toggle Fullscreen mode." +msgstr "" + +#: js/turtledefs.js:511 +msgid "Initialize a new project." +msgstr "" + +#: js/turtledefs.js:517 +msgid "You can also load projects from the file system." +msgstr "Du kannst auch Projekte aus deinen Dateien laden" + +#: js/turtledefs.js:522 +#: planet/js/StringHelper.js:46 +msgid "Delete" +msgstr "Löschen" + +#: js/turtledefs.js:523 +msgid "To delete a block, just right-click on it, then you will be able to see the delete option" +msgstr "" + +#: js/turtledefs.js:528 +#: js/activity.js:2649 +#: planet/js/LocalCard.js:31 +msgid "Copy" +msgstr "Kopieren" + +#: js/turtledefs.js:529 +msgid "To copy a block, just right-click on it, then you will be able to see the copy option" +msgstr "" + +#: js/turtledefs.js:534 +#: js/piemenus.js:3411 +msgid "Extract" +msgstr "" + +#: js/turtledefs.js:535 +msgid "To extract a block, just right-click on it, then you will be able to see the extract option" +msgstr "" + +#: js/turtledefs.js:542 +#: js/turtledefs.js:552 +#: js/turtledefs.js:573 +msgid "Save your project to a file." +msgstr "Speichere dein Projekt als Datei" + +#: js/turtledefs.js:549 +#: js/turtledefs.js:570 +msgid "save" +msgstr "Speichern" + +#: js/turtledefs.js:556 +#: js/turtledefs.js:577 +msgid "Save graphics from your project to as SVG." +msgstr "" + +#: js/turtledefs.js:560 +#: js/turtledefs.js:581 +msgid "Save graphics from your project as PNG." +msgstr "" + +#: js/turtledefs.js:564 +#: js/turtledefs.js:597 +msgid "Save block artwork as an SVG file." +msgstr "" + +#: js/turtledefs.js:585 +msgid "Save audio from your project as WAV." +msgstr "" + +#: js/turtledefs.js:589 +msgid "Save your project to as an ABC file." +msgstr "" + +#: js/turtledefs.js:593 +msgid "Save your project to as a Lilypond file." +msgstr "Speichere dein Projekt als Lilypond Datei" + +#: js/turtledefs.js:604 +msgid "Load samples from server" +msgstr "Lade Beispiele vom Server" + +#: js/turtledefs.js:605 +msgid "This button opens a viewer for loading example projects." +msgstr "Klicke hier um eine Vorschau mit Beispielen zu laden" + +#: js/turtledefs.js:611 +msgid "Palette buttons" +msgstr "Mehrere Blöcke öffnen" + +#: js/turtledefs.js:612 +msgid "This toolbar contains the palette buttons including Rhythm Pitch Tone Action and more." +msgstr "" + +#: js/turtledefs.js:614 +msgid "Click to show the palettes of blocks and drag blocks from the palettes onto the canvas to use them." +msgstr "Klicke hier um die Paletten von Blöcken anzuzeigen und ziehe de Blöcke von der Palette auf die Arbeitsfläche, um sie zu benutzen" + +#: js/turtledefs.js:620 +msgid "Cartesian/Polar" +msgstr "" + +#: js/turtledefs.js:621 +msgid "Show or hide a coordinate grid." +msgstr "" + +#: js/turtledefs.js:626 +#: js/turtles.js:902 +msgid "Clean" +msgstr "Alles löschen" + +#: js/turtledefs.js:627 +msgid "Clear the screen and return the mice to their initial positions." +msgstr "" + +#: js/turtledefs.js:632 +#: js/turtles.js:955 +msgid "Collapse" +msgstr "" + +#: js/turtledefs.js:633 +msgid "Collapse the graphics window." +msgstr "" + +#: js/turtledefs.js:638 +#: js/activity.js:5684 +msgid "Home" +msgstr "Home" + +#: js/turtledefs.js:639 +msgid "Return all blocks to the center of the screen." +msgstr "Zeige alle Blocks in der Mitte der Arbeitsfläche" + +#: js/turtledefs.js:644 +msgid "Show/hide blocks" +msgstr "Blöcke zeigen/verbergen" + +#: js/turtledefs.js:645 +msgid "Hide or show the blocks and the palettes." +msgstr "Verberge/Zeige die Blöcke und die Paletten" + +#: js/turtledefs.js:650 +msgid "Expand/collapse collapsable blocks" +msgstr "" + +#: js/turtledefs.js:651 +msgid "Expand or collapse start and action stacks." +msgstr "Klape die Start- und Aktionsstapel aus/ein" + +#: js/turtledefs.js:658 +#: js/activity.js:5704 +msgid "Decrease block size" +msgstr "Blockgröße verringern" + +#: js/turtledefs.js:659 +msgid "Decrease the size of the blocks." +msgstr "Verringere die Blockgröße" + +#: js/turtledefs.js:664 +#: js/activity.js:5710 +msgid "Increase block size" +msgstr "Blockgröße vergrößern" -#: js/toolbar.js:70 -#: js/toolbar.js:130 -#: js/toolbar.js:194 -#: js/toolbar.js:249 -msgid "Toggle JavaScript Editor" -msgstr "" +#: js/turtledefs.js:665 +msgid "Increase the size of the blocks." +msgstr "Vergrößere die Blockgröße" -#: js/toolbar.js:71 -#: js/toolbar.js:131 -#: js/toolbar.js:195 -#: js/toolbar.js:250 -#: js/turtledefs.js:724 -msgid "Restore" -msgstr "" +#: js/turtledefs.js:670 +msgid "Expand/collapse option toolbar" +msgstr "Optionen-Toolbar aus-/einklappen" -#: js/toolbar.js:72 -#: js/toolbar.js:132 -#: js/toolbar.js:196 -#: js/toolbar.js:251 -msgid "Switch to beginner mode" -msgstr "" +#: js/turtledefs.js:671 +msgid "Click this button to expand or collapse the auxillary toolbar." +msgstr "Klicke hier um die Hilfeleiste aus- oder einzuklappen" -#: js/toolbar.js:73 -#: js/toolbar.js:133 -#: js/toolbar.js:197 -#: js/toolbar.js:252 -msgid "Switch to advanced mode" -msgstr "" +#: js/turtledefs.js:676 +msgid "Run slow" +msgstr "Langsam abspielen" -#: js/toolbar.js:74 -#: js/toolbar.js:134 -#: js/toolbar.js:143 -#: js/toolbar.js:198 -#: js/toolbar.js:253 -#: js/turtledefs.js:738 -msgid "Select language" -msgstr "" +#: js/turtledefs.js:677 +msgid "Click to run the project in slow mode." +msgstr "Klicke hier um dein Projekt langsam abzuspielen" -#: js/toolbar.js:76 -#: js/toolbar.js:79 -#: js/toolbar.js:137 -#: js/turtledefs.js:579 -msgid "Save mouse artwork as PNG" -msgstr "" +#: js/turtledefs.js:683 +msgid "Click to run the project step by step." +msgstr "Klicke hier um dein Projekt Schritt für Schritt abzuspielen" -#: js/toolbar.js:78 -#: js/toolbar.js:136 -#: js/turtledefs.js:575 -msgid "Save mouse artwork as SVG" -msgstr "" +#: js/turtledefs.js:690 +msgid "Display statistics about your Music project." +msgstr "Zeige Statistiken über dein Music Project" -#: js/toolbar.js:80 -#: js/toolbar.js:138 -#: js/turtledefs.js:583 -msgid "Save music as WAV" +#: js/turtledefs.js:697 +msgid "Delete a selected plugin." msgstr "" -#: js/toolbar.js:81 -#: js/toolbar.js:139 -#: js/turtledefs.js:587 -msgid "Save sheet music as ABC" -msgstr "" +#: js/turtledefs.js:704 +msgid "Enable scrolling" +msgstr "Scrollen aktivieren" -#: js/toolbar.js:82 -#: js/toolbar.js:140 -#: js/turtledefs.js:591 -msgid "Save sheet music as Lilypond" -msgstr "" +#: js/turtledefs.js:705 +msgid "You can scroll the blocks on the canvas." +msgstr "Du kannst die Blocke auf der Arbeitsfläche bewegen" -#: js/toolbar.js:83 -msgid "Save sheet music as MusicXML" +#: js/turtledefs.js:714 +msgid "Wrap Turtle" msgstr "" -#: js/toolbar.js:84 -#: js/toolbar.js:141 -#: js/toolbar.js:149 -#: js/toolbar.js:204 -#: js/toolbar.js:259 -#: js/turtledefs.js:562 -#: js/turtledefs.js:595 -msgid "Save block artwork as SVG" +#: js/turtledefs.js:715 +msgid "Turn Turtle wrapping On or Off." msgstr "" -#: js/toolbar.js:85 -#: js/toolbar.js:142 -#: js/toolbar.js:150 -#: js/toolbar.js:205 -#: js/toolbar.js:260 -msgid "Confirm" -msgstr "" +#: js/turtledefs.js:725 +msgid "Restore blocks from the trash." +msgstr "Blöcke wiederherstellen" -#: js/toolbar.js:86 -#: js/toolbar.js:151 -#: js/toolbar.js:206 -#: js/toolbar.js:261 -msgid "English (United States)" +#: js/turtledefs.js:732 +msgid "Switch mode" msgstr "" -#: js/toolbar.js:87 -#: js/toolbar.js:152 -#: js/toolbar.js:207 -#: js/toolbar.js:262 -msgid "English (United Kingdom)" +#: js/turtledefs.js:733 +msgid "Switch between beginner and advance modes." msgstr "" -#: js/toolbar.js:88 -#: js/toolbar.js:153 -#: js/toolbar.js:208 -#: js/toolbar.js:263 -msgid "日本語" +#: js/turtledefs.js:739 +msgid "Select your language preference." msgstr "" -#: js/toolbar.js:89 -msgid "한국어" +#: js/turtledefs.js:745 +msgid "Keyboard shortcuts" msgstr "" -#: js/toolbar.js:90 -#: js/toolbar.js:155 -#: js/toolbar.js:210 -#: js/toolbar.js:265 -msgid "español" +#: js/turtledefs.js:746 +msgid "You can type d to create a do block and r to create a re block etc." msgstr "" -#: js/toolbar.js:91 -#: js/toolbar.js:156 -#: js/toolbar.js:211 -#: js/toolbar.js:266 -msgid "português" -msgstr "" +#: js/turtledefs.js:753 +msgid "Show these messages." +msgstr "Diese Meldungen anzeigen" -#: js/toolbar.js:92 -#: js/toolbar.js:157 -#: js/toolbar.js:212 -#: js/toolbar.js:267 -msgid "にほんご" +#: js/turtledefs.js:759 +#: js/turtledefs.js:790 +#: js/widgets/help.js:335 +msgid "Guide" msgstr "" -#: js/toolbar.js:93 -#: js/toolbar.js:158 -#: js/toolbar.js:213 -#: js/toolbar.js:268 -msgid "中文" +#: js/turtledefs.js:760 +msgid "A detailed guide to Turtle Blocks is available." msgstr "" -#: js/toolbar.js:94 -#: js/toolbar.js:159 -#: js/toolbar.js:214 -#: js/toolbar.js:269 -msgid "ภาษาไทย" +#: js/turtledefs.js:764 +msgid "Turtle Blocks Guide" msgstr "" -#: js/toolbar.js:95 -#: js/toolbar.js:160 -#: js/toolbar.js:215 -#: js/toolbar.js:270 -msgid "aymara" +#: js/turtledefs.js:767 +#: js/turtledefs.js:798 +#: js/widgets/help.js:336 +msgid "About" msgstr "" -#: js/toolbar.js:96 -#: js/toolbar.js:161 -#: js/toolbar.js:216 -#: js/toolbar.js:271 -msgid "quechua" +#: js/turtledefs.js:768 +msgid "Turtle Blocks is an open source collection of tools for exploring musical concepts." msgstr "" -#: js/toolbar.js:97 -#: js/toolbar.js:162 -#: js/toolbar.js:217 -#: js/toolbar.js:272 -msgid "guarani" +#: js/turtledefs.js:770 +msgid "A full list of contributors can be found in the Turtle Blocks GitHub repository." msgstr "" -#: js/toolbar.js:98 -#: js/toolbar.js:163 -#: js/toolbar.js:218 -#: js/toolbar.js:273 -msgid "हिंदी" +#: js/turtledefs.js:772 +msgid "Turtle Blocks is licensed under the AGPL." msgstr "" -#: js/toolbar.js:99 -#: js/toolbar.js:165 -#: js/toolbar.js:219 -#: js/toolbar.js:275 -msgid "igbo" +#: js/turtledefs.js:780 +msgid "Turtle Blocks GitHub repository" msgstr "" -#: js/toolbar.js:100 -#: js/toolbar.js:166 -#: js/toolbar.js:220 -#: js/toolbar.js:276 -msgid "عربى" -msgstr "" +#: js/turtledefs.js:783 +#: js/turtledefs.js:814 +#: js/widgets/help.js:337 +#: js/widgets/help.js:359 +msgid "Congratulations." +msgstr "Herzlichen Glückwunsch!" -#: js/toolbar.js:101 -#: js/toolbar.js:164 -#: js/toolbar.js:221 -#: js/toolbar.js:274 -msgid "తెలుగు" +#: js/turtledefs.js:784 +msgid "You have finished the tour. Please enjoy Turtle Blocks!" msgstr "" -#: js/toolbar.js:102 -#: js/toolbar.js:167 -#: js/toolbar.js:222 -#: js/toolbar.js:277 -msgid "עִברִית" +#: js/turtledefs.js:791 +msgid "A detailed guide to Music Blocks is available." msgstr "" -#: js/toolbar.js:111 -#: js/toolbar.js:175 -#: js/toolbar.js:176 -#: js/toolbar.js:231 -msgid "Full Screen" +#: js/turtledefs.js:799 +msgid "Music Blocks is an open source collection of tools for exploring musical concepts." msgstr "" - -#: js/toolbar.js:145 -#: js/toolbar.js:148 -#: js/toolbar.js:200 -#: js/toolbar.js:203 -#: js/toolbar.js:255 -#: js/toolbar.js:258 -#: js/turtledefs.js:558 -msgid "Save turtle artwork as PNG" + +#: js/turtledefs.js:801 +msgid "A full list of contributors can be found in the Music Blocks GitHub repository." msgstr "" -#: js/toolbar.js:147 -#: js/toolbar.js:202 -#: js/toolbar.js:257 -#: js/turtledefs.js:554 -msgid "Save turtle artwork as SVG" +#: js/turtledefs.js:803 +msgid "Music Blocks is licensed under the AGPL." msgstr "" -#: js/toolbar.js:154 -#: js/toolbar.js:209 -#: js/toolbar.js:264 -msgid "한국인" +#: js/turtledefs.js:811 +msgid "Music Blocks GitHub repository" msgstr "" -#: js/toolbar.js:171 -#: js/toolbar.js:227 -msgid "About Turtle Blocks" +#: js/turtledefs.js:815 +msgid "You have finished the tour. Please enjoy Music Blocks!" +msgstr "Du hast die Tour abgeschlossen. Jetzt kannst du mit „Music Blocks“ anfangen" + +#: js/turtles.js:882 +msgid "Grid" msgstr "" -#: js/toolbar.js:429 -#: js/toolbar.js:440 -msgid "Turtle Wrap Off" +#: js/turtles.js:1024 +msgid "Expand" msgstr "" -#: js/toolbar.js:442 -msgid "Turtle Wrap On" +#: js/block-verbose.js:1616 +#: js/block-verbose.js:1735 +#: js/block.js:1580 +#: js/block.js:1699 +#: js/palette.js:605 +#: js/blocks/IntervalsBlocks.js:63 +#: js/blocks/WidgetBlocks.js:259 +msgid "temperament" msgstr "" -#: js/block.js:1470 +#: js/block-verbose.js:1630 +#: js/block.js:1594 msgid "matrix" msgstr "Matrix" -#: js/block.js:1477 -#: js/WidgetBlocks.js:1226 +#: js/block-verbose.js:1637 +#: js/block.js:1601 +#: js/blocks/WidgetBlocks.js:1509 #: plugins/rodi.rtp:324 msgid "status" msgstr "Status" -#: js/block.js:1484 +#: js/block-verbose.js:1644 +#: js/block.js:1608 msgid "drum mapper" msgstr "" -#: js/block.js:1491 +#: js/block-verbose.js:1651 +#: js/block.js:1615 msgid "ruler" msgstr "Lineal" -#: js/block.js:1498 -#: js/WidgetBlocks.js:327 +#: js/block-verbose.js:1658 +#: js/block.js:1622 +#: js/blocks/WidgetBlocks.js:397 #.TRANS: timbre is the character or quality of a musical sound msgid "timbre" msgstr "" -#: js/block.js:1505 +#: js/block-verbose.js:1665 +#: js/block.js:1629 msgid "stair" msgstr "Treppe" -#: js/block.js:1512 -#: js/WidgetBlocks.js:577 +#: js/block-verbose.js:1672 +#: js/block.js:1636 +#: js/blocks/WidgetBlocks.js:707 #.TRANS: the speed at music is should be played. msgid "tempo" msgstr "Geschwindigkeit" -#: js/block.js:1519 -#: js/block.js:1582 -#: js/IntervalsBlocks.js:1268 +#: js/block-verbose.js:1679 +#: js/block-verbose.js:1742 +#: js/block.js:1643 +#: js/block.js:1706 +#: js/blocks/IntervalsBlocks.js:1464 #.TRANS: mode, e.g., Major in C Major msgid "mode" msgstr "Modus" -#: js/block.js:1526 +#: js/block-verbose.js:1686 +#: js/block.js:1650 msgid "slider" msgstr "Schieber" -#: js/block.js:1533 -#: js/SensorsBlocks.js:1001 +#: js/block-verbose.js:1693 +#: js/block.js:1657 +#: js/blocks/SensorsBlocks.js:1001 msgid "keyboard" msgstr "Tastatur" -#: js/block.js:1547 -#: js/WidgetBlocks.js:957 -#: js/WidgetBlocks.js:988 +#: js/block-verbose.js:1707 +#: js/block.js:1671 +#: js/blocks/WidgetBlocks.js:1190 +#: js/blocks/WidgetBlocks.js:1228 #.TRANS: widget for subdividing a measure into distinct rhythmic elements msgid "rhythm maker" msgstr "" -#: js/block.js:1554 -#: js/block.js:2182 -#: js/block.js:2236 -#: js/RhythmBlockPaletteBlocks.js:70 -#: js/RhythmBlockPaletteBlocks.js:251 -#: js/RhythmBlockPaletteBlocks.js:484 -#: js/RhythmBlockPaletteBlocks.js:553 -#: js/RhythmBlockPaletteBlocks.js:604 -#: js/RhythmBlockPaletteBlocks.js:874 -#: js/RhythmBlocks.js:33 -#: js/RhythmBlocks.js:356 -#: js/RhythmBlocks.js:766 -#: js/RhythmBlocks.js:806 -#: js/OrnamentBlocks.js:220 -#: js/OrnamentBlocks.js:312 -#: js/MeterBlocks.js:1367 -#: js/DictActions.js:85 -#: js/phrasemaker.js:731 -#: js/phrasemaker.js:2393 -#: js/phrasemaker.js:2436 -#: js/phrasemaker.js:2534 +#: js/block-verbose.js:1714 +#: js/block-verbose.js:2457 +#: js/block-verbose.js:2514 +#: js/block.js:1678 +#: js/block.js:2385 +#: js/block.js:2442 +#: js/blocks/MeterBlocks.js:1367 +#: js/blocks/OrnamentBlocks.js:220 +#: js/blocks/OrnamentBlocks.js:312 +#: js/blocks/RhythmBlocks.js:33 +#: js/blocks/RhythmBlocks.js:356 +#: js/blocks/RhythmBlocks.js:766 +#: js/blocks/RhythmBlocks.js:806 +#: js/blocks/RhythmBlockPaletteBlocks.js:70 +#: js/blocks/RhythmBlockPaletteBlocks.js:252 +#: js/blocks/RhythmBlockPaletteBlocks.js:485 +#: js/blocks/RhythmBlockPaletteBlocks.js:554 +#: js/blocks/RhythmBlockPaletteBlocks.js:605 +#: js/blocks/RhythmBlockPaletteBlocks.js:875 +#: js/turtleactions/DictActions.js:85 +#: js/widgets/phrasemaker.js:942 +#: js/widgets/phrasemaker.js:2656 +#: js/widgets/phrasemaker.js:2699 +#: js/widgets/phrasemaker.js:2810 #.TRANS: the value (e.g., 1/4 note) of the note being played. msgid "note value" msgstr "Notenwert" -#: js/block.js:1561 -#: js/block.js:2110 -#: js/block.js:2133 -#: js/IntervalsBlocks.js:875 -#: js/OrnamentBlocks.js:312 +#: js/block-verbose.js:1721 +#: js/block-verbose.js:2382 +#: js/block-verbose.js:2405 +#: js/block.js:1685 +#: js/block.js:2310 +#: js/block.js:2333 +#: js/blocks/IntervalsBlocks.js:1071 +#: js/blocks/OrnamentBlocks.js:312 #.TRANS: calculate a relative step between notes based on semi-tones msgid "scalar interval" msgstr "" -#: js/block.js:1568 -#: js/RhythmBlocks.js:148 +#: js/block-verbose.js:1728 +#: js/block.js:1692 +#: js/blocks/RhythmBlocks.js:148 msgid "milliseconds" msgstr "" -#: js/block.js:2180 -#: js/block.js:2184 -#: js/block.js:2234 -#: js/block.js:2345 -#: js/ProgramBlocks.js:1273 -#: js/RhythmBlocks.js:712 -#: js/rhythmruler.js:834 -#: js/rhythmruler.js:961 +#: js/block-verbose.js:2455 +#: js/block-verbose.js:2459 +#: js/block-verbose.js:2512 +#: js/block-verbose.js:2628 +#: js/block.js:2383 +#: js/block.js:2387 +#: js/block.js:2440 +#: js/block.js:2556 +#: js/blocks/RhythmBlocks.js:712 +#: js/blocks/ProgramBlocks.js:1273 +#: js/widgets/rhythmruler.js:1183 +#: js/widgets/rhythmruler.js:1329 msgid "silence" msgstr "Stille" -#: js/block.js:2265 -#: js/block.js:3134 -#: js/block.js:3151 -#: js/activity.js:2336 -#: js/activity.js:2387 -#: js/musicutils.js:2932 -#: js/musicutils.js:4287 +#: js/block-verbose.js:2548 +#: js/block-verbose.js:3492 +#: js/block-verbose.js:3509 +#: js/activity.js:2718 +#: js/activity.js:2769 +#: js/block.js:2476 +#: js/block.js:3416 +#: js/block.js:3433 +#: js/utils/musicutils.js:3780 +#: js/utils/musicutils.js:5273 +#.TRANS: the note names must be separated by single spaces #.TRANS: the note names must be separated by single spaces #.TRANS: the note names must be separated by single spaces msgid "ti la sol fa mi re do" msgstr "" -#: js/block.js:2333 +#: js/block-verbose.js:2616 +#: js/block.js:2544 +#.TRANS: scalar step #.TRANS: scalar step msgid "down" msgstr "" -#: js/block.js:2334 +#: js/block-verbose.js:2617 +#: js/block.js:2545 msgid "up" msgstr "" -#: js/block.js:3477 -#: js/block.js:3490 -#: js/ExtrasBlocks.js:612 +#: js/block-verbose.js:3026 +#: js/block.js:2950 +msgid "Silence block cannot be removed." +msgstr "" + +#: js/block-verbose.js:3824 +#: js/block.js:3748 +#: js/blocks.js:2607 +#: js/blocks.js:3218 +#: js/palette.js:618 +#: js/blocks/BooleanBlocks.js:77 +#: js/blocks/BooleanBlocks.js:167 +#: js/blocks/BooleanBlocks.js:251 +#: js/blocks/BooleanBlocks.js:335 +#: js/blocks/BooleanBlocks.js:433 +#: js/blocks/BooleanBlocks.js:539 +#: js/blocks/BooleanBlocks.js:640 +#: js/blocks/BooleanBlocks.js:741 +#: js/blocks/BooleanBlocks.js:847 +#: js/blocks/BooleanBlocks.js:948 +#: js/blocks/BooleanBlocks.js:1033 +#: js/blocks/SensorsBlocks.js:910 +msgid "true" +msgstr "Richtig" + +#: js/block-verbose.js:3824 +#: js/block.js:3748 +#: js/blocks.js:2609 +#: js/blocks.js:3220 +#: js/blocks/BooleanBlocks.js:79 +#: js/blocks/BooleanBlocks.js:169 +#: js/blocks/BooleanBlocks.js:253 +#: js/blocks/BooleanBlocks.js:337 +#: js/blocks/BooleanBlocks.js:435 +#: js/blocks/BooleanBlocks.js:541 +#: js/blocks/BooleanBlocks.js:642 +#: js/blocks/BooleanBlocks.js:743 +#: js/blocks/BooleanBlocks.js:849 +#: js/blocks/BooleanBlocks.js:950 +#: js/blocks/SensorsBlocks.js:912 +msgid "false" +msgstr "Falsch" + +#: js/block-verbose.js:3835 +#: js/block-verbose.js:3848 +#: js/block.js:3759 +#: js/block.js:3772 +#: js/blocks/ExtrasBlocks.js:615 msgid "Cartesian" msgstr "Kartesisch" -#: js/block.js:3478 -#: js/block.js:3491 -#: js/ExtrasBlocks.js:616 +#: js/block-verbose.js:3836 +#: js/block-verbose.js:3849 +#: js/block.js:3760 +#: js/block.js:3773 +#: js/blocks/ExtrasBlocks.js:619 msgid "polar" msgstr "" -#: js/block.js:3479 -#: js/block.js:3492 -#: js/ExtrasBlocks.js:620 +#: js/block-verbose.js:3837 +#: js/block-verbose.js:3850 +#: js/block.js:3761 +#: js/block.js:3774 +#: js/blocks/ExtrasBlocks.js:623 msgid "Cartesian+polar" msgstr "" -#: js/block.js:3480 -#: js/block.js:3499 -#: js/ExtrasBlocks.js:649 +#: js/block-verbose.js:3838 +#: js/block-verbose.js:3857 +#: js/block.js:3762 +#: js/block.js:3781 +#: js/blocks/ExtrasBlocks.js:652 msgid "none" msgstr "" -#: js/block.js:3493 -#: js/ExtrasBlocks.js:625 +#: js/block-verbose.js:3851 +#: js/block.js:3775 +#: js/blocks/ExtrasBlocks.js:628 msgid "treble" msgstr "" -#: js/block.js:3494 -#: js/ExtrasBlocks.js:629 +#: js/block-verbose.js:3852 +#: js/block.js:3776 +#: js/blocks/ExtrasBlocks.js:632 msgid "grand staff" msgstr "" -#: js/block.js:3495 -#: js/ExtrasBlocks.js:633 +#: js/block-verbose.js:3853 +#: js/block.js:3777 +#: js/blocks/ExtrasBlocks.js:636 msgid "mezzo-soprano" msgstr "" -#: js/block.js:3496 -#: js/ExtrasBlocks.js:637 +#: js/block-verbose.js:3854 +#: js/block.js:3778 +#: js/blocks/ExtrasBlocks.js:640 msgid "alto" msgstr "" -#: js/block.js:3497 -#: js/ExtrasBlocks.js:641 +#: js/block-verbose.js:3855 +#: js/block.js:3779 +#: js/blocks/ExtrasBlocks.js:644 msgid "tenor" msgstr "" -#: js/block.js:3498 -#: js/ExtrasBlocks.js:645 -#: js/musicutils.js:736 -#: js/synthutils.js:64 +#: js/block-verbose.js:3856 +#: js/block.js:3780 +#: js/utils/musicutils.js:1115 +#: js/utils/synthutils.js:80 +#: js/blocks/ExtrasBlocks.js:648 #.TRANS: musical instrument msgid "bass" msgstr "" -#: js/block.js:4075 +#: js/block-verbose.js:3901 +#: js/block.js:3825 +#: js/blocks.js:2600 +#: js/blocks.js:3211 +msgid "on2" +msgstr "" + +#: js/block-verbose.js:3903 +#: js/block.js:3827 +#: js/blocks.js:2602 +#: js/blocks.js:3213 +msgid "off" +msgstr "" + +#: js/block-verbose.js:4470 +#: js/block.js:4394 msgid "Not a number" msgstr "" -#: js/block.js:4082 +#: js/block-verbose.js:4477 +#: js/block.js:4401 msgid "Octave value must be between 1 and 10." msgstr "" -#: js/block.js:4090 +#: js/block-verbose.js:4485 +#: js/block.js:4409 msgid "Numbers can have at most 10 digits." msgstr "" -#: js/notation.js:353 -msgid "Lilypond cannot process pickup of " +#: js/activity.js:390 +#: js/activity.js:395 +msgid "Search for blocks" msgstr "" -#: js/turtledefs.js:40 -#.TRANS: put the URL to the guide here, e.g., https://github.com/sugarlabs/turtleblocksjs/tree/master/guide/README.md -msgid "guide url" +#: js/activity.js:1413 +msgid "Refresh your browser to change to advanced mode." msgstr "" -#: js/turtledefs.js:85 -#: js/turtledefs.js:437 -msgid "Turtle Blocks is a Logo-inspired turtle that draws colorful pictures with snap-together visual-programming blocks." +#: js/activity.js:1418 +msgid "Refresh your browser to change to beginner mode." msgstr "" -#: js/turtledefs.js:118 -#: js/turtledefs.js:220 -msgid "search" +#: js/activity.js:1477 +msgid "Catching mice" msgstr "" -#: js/turtledefs.js:120 -#: js/turtledefs.js:222 -#: js/WidgetBlocks.js:437 -#: js/MeterBlocks.js:1343 -#.TRANS: musical meter (time signature), e.g., 4:4 -msgid "meter" -msgstr "Meter" +#: js/activity.js:1478 +msgid "Cleaning the instruments" +msgstr "" -#: js/turtledefs.js:122 -#: js/turtledefs.js:224 -msgid "intervals" -msgstr "Intervalle" +#: js/activity.js:1479 +msgid "Testing key pieces" +msgstr "" -#: js/turtledefs.js:124 -#: js/turtledefs.js:226 -msgid "ornament" +#: js/activity.js:1480 +msgid "Sight-reading" msgstr "" -#: js/turtledefs.js:125 -#: js/turtledefs.js:227 -#: js/VolumeBlocks.js:362 -#: js/VolumeBlocks.js:502 -#: js/VolumeBlocks.js:545 -msgid "volume" +#: js/activity.js:1481 +msgid "Combining math and music" msgstr "" -#: js/turtledefs.js:129 -#: js/turtledefs.js:231 -msgid "boxes" -msgstr "Kästen" +#: js/activity.js:1482 +msgid "Generating more blocks" +msgstr "" -#: js/turtledefs.js:130 -#: js/turtledefs.js:232 -msgid "widgets" -msgstr "Widgets" +#: js/activity.js:1483 +msgid "Do Re Mi Fa Sol La Ti Do" +msgstr "" -#: js/turtledefs.js:131 -#: js/turtledefs.js:233 -#: js/phrasemaker.js:824 -msgid "graphics" +#: js/activity.js:1484 +msgid "Tuning string instruments" msgstr "" -#: js/turtledefs.js:134 -#: js/turtledefs.js:236 -msgid "boolean" -msgstr "logisch" +#: js/activity.js:1485 +msgid "Pressing random keys" +msgstr "" -#: js/turtledefs.js:137 -#: js/turtledefs.js:239 -#: js/HeapBlocks.js:59 -#: js/status.js:147 -msgid "heap" -msgstr "Stapel" +#: js/activity.js:1663 +msgid "plugins will be removed upon restart." +msgstr "" -#: js/turtledefs.js:138 -#: js/turtledefs.js:240 -#: js/ProgramBlocks.js:495 -#: js/DictBlocks.js:142 -msgid "dictionary" +#: js/activity.js:1672 +msgid "show Cartesian" msgstr "" -#: js/turtledefs.js:139 -#: js/turtledefs.js:241 -msgid "ensemble" +#: js/activity.js:2211 +#: js/palette.js:589 +#: js/blocks/RhythmBlocks.js:923 +#: js/blocks/PitchBlocks.js:442 +#: js/blocks/PitchBlocks.js:1786 +#.TRANS: a numeric mapping of the notes in an octave based on the musical mode +msgid "scale degree" +msgstr "" + +#: js/activity.js:2214 +#: js/palette.js:598 +msgid "voice name" +msgstr "" + +#: js/activity.js:2217 +#: js/palette.js:595 +msgid "invert mode" +msgstr "" + +#: js/activity.js:2220 +msgid "output tools" +msgstr "" + +#: js/activity.js:2223 +msgid "custom note" +msgstr "" + +#: js/activity.js:2226 +msgid "accidental name" +msgstr "" + +#: js/activity.js:2229 +#: js/blocks/PitchBlocks.js:855 +msgid "east indian solfege" +msgstr "" + +#: js/activity.js:2232 +#: js/blocks/PitchBlocks.js:869 +msgid "note name" +msgstr "" + +#: js/activity.js:2235 +#: js/blocks/IntervalsBlocks.js:94 +msgid "temperament name" +msgstr "" + +#: js/activity.js:2238 +#: js/palette.js:592 +msgid "mode name" +msgstr "" + +#: js/activity.js:2241 +msgid "chord name" +msgstr "" + +#: js/activity.js:2244 +#: js/palette.js:615 +msgid "interval name" +msgstr "" + +#: js/activity.js:2247 +msgid "filter type" +msgstr "" + +#: js/activity.js:2250 +msgid "oscillator type" +msgstr "" + +#: js/activity.js:2253 +#: js/blocks.js:2479 +#: js/blocks.js:2487 +msgid "audio file" +msgstr "" + +#: js/activity.js:2256 +#: js/blocks/DrumBlocks.js:32 +msgid "noise name" +msgstr "" + +#: js/activity.js:2259 +#: js/blocks/DrumBlocks.js:75 +msgid "drum name" +msgstr "" + +#: js/activity.js:2262 +#: js/blocks/DrumBlocks.js:119 +msgid "effects name" +msgstr "" + +#: js/activity.js:2265 +msgid "wrap mode" +msgstr "" + +#: js/activity.js:2268 +msgid "load file" +msgstr "" + +#: js/activity.js:2435 +#: js/activity.js:5851 +msgid "This block is deprecated." +msgstr "" + +#: js/activity.js:2437 +#: js/activity.js:5853 +msgid "Block cannot be found." +msgstr "" + +#: js/activity.js:2645 +msgid "Saving block artwork" +msgstr "" + +#: js/activity.js:2656 +msgid "Erase" +msgstr "" + +#: js/activity.js:2683 +#: js/activity.js:2705 +msgid "Paste" +msgstr "Einfügen" + +#: js/activity.js:2687 +msgid "Save block help" +msgstr "" + +#: js/activity.js:2772 +msgid "Jumping to the bottom of the page." +msgstr "" + +#: js/activity.js:2778 +msgid "Scrolling up." +msgstr "" + +#: js/activity.js:2783 +msgid "Scrolling down." +msgstr "" + +#: js/activity.js:2788 +msgid "Extracting block" +msgstr "" + +#: js/activity.js:2796 +msgid "Moving block up." +msgstr "" + +#: js/activity.js:2817 +msgid "Moving block down." +msgstr "" + +#: js/activity.js:2838 +msgid "Moving block left." +msgstr "" + +#: js/activity.js:2855 +msgid "Moving block right." +msgstr "" + +#: js/activity.js:2870 +msgid "Jump to home position." +msgstr "" + +#: js/activity.js:2897 +msgid "Hide blocks" +msgstr "" + +#: js/activity.js:4500 +msgid "Click the run button to run the project." +msgstr "" + +#: js/activity.js:5692 +msgid "Show/hide block" +msgstr "" + +#: js/activity.js:5698 +msgid "Expand/collapse blocks" +msgstr "" + +#: js/activity.js:5976 +msgid "Could not parse JSON input." +msgstr "" + +#: js/activity.js:6475 +#: js/activity.js:6580 +#: js/activity.js:6631 +msgid "Cannot load project from the file. Please check the file type." +msgstr "" + +#: js/activity.js:6917 +msgid "Invalid parameters" +msgstr "" + +#: js/blocks.js:1212 +#: js/blocks.js:3444 +#: js/blocks.js:3834 +#: js/blocks.js:3865 +#: js/blocks.js:3914 +#: js/blocks.js:3949 +#: js/blocks.js:6586 +#: js/palette.js:509 +#: js/palette.js:638 +#: js/palette.js:1105 +#: js/blocks/BoxesBlocks.js:282 +#: js/blocks/BoxesBlocks.js:285 +#: js/blocks/BoxesBlocks.js:405 +#: js/blocks/BoxesBlocks.js:594 +msgid "box" +msgstr "Box" + +#: js/blocks.js:1713 +msgid "Consider breaking this stack into parts." msgstr "" -#: js/turtledefs.js:140 -#: js/turtledefs.js:242 -msgid "extras" -msgstr "Extras" +#: js/blocks.js:2472 +#: js/palette.js:653 +#: js/blocks/MediaBlocks.js:602 +msgid "open file" +msgstr "Öffne Datei" -#: js/turtledefs.js:142 -#: js/turtledefs.js:244 -#.TRANS: program as in computer program -#.TRANS: program as in computer program -msgid "program" +#: js/blocks.js:3247 +#: js/palette.js:574 +#: js/blocks/MediaBlocks.js:892 +#: js/blocks/MediaBlocks.js:963 +msgid "text" +msgstr "Text" + +#: js/blocks.js:3443 +#: js/palette.js:641 +#: js/palette.js:642 +#: js/blocks/BoxesBlocks.js:514 +msgid "store in box" msgstr "" -#: js/turtledefs.js:143 -#: js/turtledefs.js:245 -msgid "my blocks" +#: js/blocks.js:3448 +#: js/blocks.js:3888 +#: js/blocks.js:3923 +#: js/blocks.js:3958 +#: js/blocks.js:5862 +#: js/blocks.js:5883 +#: js/blocks/BoxesBlocks.js:772 +msgid "box1" msgstr "" -#: js/turtledefs.js:185 -#: js/turtledefs.js:281 -msgid "artwork" +#: js/blocks.js:3450 +#: js/blocks.js:3890 +#: js/blocks.js:3925 +#: js/blocks.js:3960 +#: js/blocks.js:5864 +#: js/blocks.js:5885 +#: js/blocks/BoxesBlocks.js:663 +msgid "box2" msgstr "" -#: js/turtledefs.js:185 -#: js/turtledefs.js:281 -msgid "logic" -msgstr "Logik" +#: js/blocks.js:4122 +#: js/palette.js:639 +#: js/palette.js:644 +#: js/palette.js:1041 +#: js/blocks/BoxesBlocks.js:591 +msgid "store in" +msgstr "Speichere in" -#: js/turtledefs.js:185 -#: js/turtledefs.js:281 -msgid "music" -msgstr "" +#: js/blocks.js:4122 +#: js/blocks/BoxesBlocks.js:595 +#: js/blocks/DictBlocks.js:215 +#: js/blocks/DictBlocks.js:289 +#: js/blocks/EnsembleBlocks.js:391 +#: js/blocks/EnsembleBlocks.js:402 +#: js/blocks/MediaBlocks.js:746 +#: js/blocks/PitchBlocks.js:656 +#: js/blocks/PitchBlocks.js:934 +#: js/blocks/PitchBlocks.js:1866 +#: js/blocks/ProgramBlocks.js:390 +#: js/blocks/ProgramBlocks.js:495 +#: js/blocks/ProgramBlocks.js:658 +#: js/blocks/ToneBlocks.js:1025 +msgid "name" +msgstr "Name" -#: js/turtledefs.js:187 -#: js/turtledefs.js:463 -msgid "Music Blocks is a collection of tools for exploring fundamental musical concepts in a fun way." -msgstr "“Music Blocks ist eine Sammlung von Tools um die grundlegenden Konzepte der Musik mit Spaß zu entdecken" +#: js/blocks.js:4122 +#: js/blocks/BoxesBlocks.js:75 +#: js/blocks/BoxesBlocks.js:595 +#: js/blocks/DictBlocks.js:289 +#: js/blocks/DictBlocks.js:430 +#: js/blocks/HeapBlocks.js:544 +#: js/blocks/RhythmBlocks.js:1130 +msgid "value" +msgstr "Wert" -#: js/turtledefs.js:436 -msgid "Welcome to Turtle Blocks" +#: js/blocks.js:4465 +msgid "Forever loop detected inside a note value block. Unexpected things may happen." msgstr "" -#: js/turtledefs.js:438 -#: js/turtledefs.js:465 -#: js/turtledefs.js:774 -#: js/turtledefs.js:805 -msgid "The current version is" +#: js/blocks.js:4988 +msgid "There is no block selected." msgstr "" -#: js/turtledefs.js:446 -#: js/turtledefs.js:483 -msgid "Click the run button to run the project in fast mode." -msgstr "" +#: js/blocks.js:5091 +#: js/blocks/MediaBlocks.js:888 +msgid "show" +msgstr "Zeige" -#: js/turtledefs.js:452 -msgid "Stop the turtle." +#: js/blocks.js:5094 +#: js/blocks/MediaBlocks.js:803 +#.TRANS: Avatar is the image used to determine the appearance of the mouse. +msgid "avatar" msgstr "" -#: js/turtledefs.js:454 -#: js/turtledefs.js:491 -msgid "You can also type Alt-S to stop." +#: js/blocks.js:5097 +#: js/blocks/ToneBlocks.js:1010 +#: js/widgets/sampler.js:975 +#.TRANS: The sound sample that the user uploads. +msgid "sample" msgstr "" -#: js/turtledefs.js:462 -#: js/help.js:333 -msgid "Welcome to Music Blocks" -msgstr "Willkommen bei „Music Blocks“ " +#: js/lilypond.js:606 +msgid "brown rat" +msgstr "Braune Ratte" -#: js/turtledefs.js:472 -#: js/help.js:334 -msgid "Meet Mr. Mouse!" -msgstr "Lerne Herr Maus kennen" +#: js/lilypond.js:607 +msgid "mole" +msgstr "Maulwurf" -#: js/turtledefs.js:473 -msgid "Mr Mouse is our Music Blocks conductor." -msgstr "Herr Maus ist der Dirigent bei „Music Blocks“" +#: js/lilypond.js:608 +msgid "chipmunk" +msgstr "Streifenhörnchen" -#: js/turtledefs.js:475 -msgid "Mr Mouse encourages you to explore Music Blocks." -msgstr "Herr Maus will, dass du „Music Blocks“ kennenlernst" +#: js/lilypond.js:609 +msgid "red squirrel" +msgstr "Eichhörnchen" -#: js/turtledefs.js:477 -msgid "Let us start our tour!" -msgstr "Lass uns die Tour beginnen" +#: js/lilypond.js:610 +msgid "guinea pig" +msgstr "Meerschweinchen" -#: js/turtledefs.js:489 -msgid "Stop the music (and the mice)." -msgstr "" +#: js/lilypond.js:611 +msgid "capybara" +msgstr "Capybara" -#: js/turtledefs.js:499 -msgid "Record your project as video." -msgstr "" +#: js/lilypond.js:612 +msgid "coypu" +msgstr "Wasserratte" -#: js/turtledefs.js:505 -msgid "Toggle Fullscreen mode." -msgstr "" +#: js/lilypond.js:613 +msgid "black rat" +msgstr "Schwarze Ratte" -#: js/turtledefs.js:511 -msgid "Initialize a new project." -msgstr "" +#: js/lilypond.js:614 +msgid "grey squirrel" +msgstr "Grauhörnchen" -#: js/turtledefs.js:517 -msgid "You can also load projects from the file system." -msgstr "Du kannst auch Projekte aus deinen Dateien laden" +#: js/lilypond.js:615 +msgid "flying squirrel" +msgstr "Flughörnchen" -#: js/turtledefs.js:522 -#: js/StringHelper.js:46 -msgid "Delete" -msgstr "Löschen" +#: js/lilypond.js:616 +msgid "bat" +msgstr "Fledermaus" -#: js/turtledefs.js:523 -msgid "To delete a block, just right-click on it, then you will be able to see the delete option" +#: js/lilypond.js:749 +#: js/lilypond.js:913 +#: js/lilypond.js:951 +#: js/blocks/ActionBlocks.js:1256 +#: js/blocks/ExtrasBlocks.js:556 +msgid "start drum" +msgstr "Starte Trommel" + +#: js/logo.js:61 +msgid "Not a valid pitch name" msgstr "" -#: js/turtledefs.js:528 -#: js/activity.js:2270 -#: js/LocalCard.js:31 -msgid "Copy" -msgstr "Kopieren" +#: js/logo.js:507 +#: js/blocks/ProgramBlocks.js:258 +#: js/blocks/ProgramBlocks.js:427 +msgid "You must select a file." +msgstr "Bitte wähle eine Datei aus" -#: js/turtledefs.js:529 -msgid "To copy a block, just right-click on it, then you will be able to see the copy option" +#: js/logo.js:1696 +msgid "Playback is ready." msgstr "" -#: js/turtledefs.js:535 -msgid "To extract a block, just right-click on it, then you will be able to see the extract option" +#: js/macros.js:711 +#: js/utils/musicutils.js:1162 +#: js/utils/synthutils.js:202 +#.TRANS: animal sound effect +msgid "duck" +msgstr "Ente" + +#: js/notation.js:353 +msgid "Lilypond cannot process pickup of " msgstr "" -#: js/turtledefs.js:542 -#: js/turtledefs.js:552 -#: js/turtledefs.js:573 -msgid "Save your project to a file." -msgstr "Speichere dein Projekt als Datei" +#: js/palette.js:571 +msgid "grid" +msgstr "" -#: js/turtledefs.js:549 -#: js/turtledefs.js:570 -msgid "save" -msgstr "Speichern" +#: js/palette.js:580 +msgid "effect" +msgstr "" -#: js/turtledefs.js:556 -#: js/turtledefs.js:577 -msgid "Save graphics from your project to as SVG." +#: js/palette.js:586 +msgid "sargam" msgstr "" -#: js/turtledefs.js:560 -#: js/turtledefs.js:581 -msgid "Save graphics from your project as PNG." +#: js/palette.js:601 +#: js/blocks/PitchBlocks.js:1209 +msgid "custom pitch" msgstr "" -#: js/turtledefs.js:564 -#: js/turtledefs.js:597 -msgid "Save block artwork as an SVG file." +#: js/palette.js:609 +msgid "accidental" msgstr "" -#: js/turtledefs.js:585 -msgid "Save audio from your project as WAV." +#: js/palette.js:633 +#: js/blocks/PitchBlocks.js:405 +msgid "pitch converter" msgstr "" -#: js/turtledefs.js:589 -msgid "Save your project to as an ABC file." +#: js/piemenus.js:200 +#: js/utils/musicutils.js:1187 +#: js/utils/musicutils.js:1207 +#: js/widgets/musickeyboard.js:2341 +#: js/widgets/phrasemaker.js:1908 +#: js/widgets/sampler.js:810 +#.TRANS: double sharp is a music term related to pitch +msgid "double sharp" msgstr "" -#: js/turtledefs.js:593 -msgid "Save your project to as a Lilypond file." -msgstr "Speichere dein Projekt als Lilypond Datei" +#: js/piemenus.js:201 +#: js/utils/musicutils.js:1185 +#: js/utils/musicutils.js:1208 +#: js/blocks/PitchBlocks.js:1539 +#: js/turtleactions/PitchActions.js:323 +#: js/widgets/musickeyboard.js:2342 +#: js/widgets/phrasemaker.js:1909 +#: js/widgets/sampler.js:811 +#.TRANS: sharp is a music term related to pitch +#.TRANS: sharp is a half-step up in pitch +msgid "sharp" +msgstr "Um einen Halbton erhöht" -#: js/turtledefs.js:604 -msgid "Load samples from server" -msgstr "Lade Beispiele vom Server" +#: js/piemenus.js:202 +#: js/utils/musicutils.js:1183 +#: js/utils/musicutils.js:1209 +#: js/widgets/musickeyboard.js:2343 +#: js/widgets/phrasemaker.js:1910 +#: js/widgets/sampler.js:812 +#.TRANS: natural is a music term related to pitch +msgid "natural" +msgstr "" -#: js/turtledefs.js:605 -msgid "This button opens a viewer for loading example projects." -msgstr "Klicke hier um eine Vorschau mit Beispielen zu laden" +#: js/piemenus.js:203 +#: js/utils/musicutils.js:1181 +#: js/utils/musicutils.js:1210 +#: js/blocks/PitchBlocks.js:1498 +#: js/turtleactions/PitchActions.js:326 +#: js/widgets/musickeyboard.js:2344 +#: js/widgets/phrasemaker.js:1911 +#: js/widgets/sampler.js:813 +#.TRANS: flat is a music term related to pitch +#.TRANS: flat is a half-step down in pitch +msgid "flat" +msgstr "Um einen Halbton erniedrigt" -#: js/turtledefs.js:611 -msgid "Palette buttons" -msgstr "Mehrere Blöcke öffnen" +#: js/piemenus.js:204 +#: js/utils/musicutils.js:1179 +#: js/utils/musicutils.js:1211 +#: js/widgets/musickeyboard.js:2345 +#: js/widgets/phrasemaker.js:1912 +#: js/widgets/sampler.js:814 +#.TRANS: double flat is a music term related to pitch +msgid "double flat" +msgstr "" -#: js/turtledefs.js:612 -msgid "This toolbar contains the palette buttons including Rhythm Pitch Tone Action and more." +#: js/piemenus.js:2864 +#: js/utils/musicutils.js:1006 +#: js/blocks/PitchBlocks.js:1385 +#.TRANS: unison is a music term related to intervals +#.TRANS: unison means the note is the same as the current note +msgid "unison" msgstr "" -#: js/turtledefs.js:614 -msgid "Click to show the palettes of blocks and drag blocks from the palettes onto the canvas to use them." -msgstr "Klicke hier um die Paletten von Blöcken anzuzeigen und ziehe de Blöcke von der Palette auf die Arbeitsfläche, um sie zu benutzen" +#: js/piemenus.js:3018 +#: js/piemenus.js:3091 +#: js/utils/musicutils.js:1014 +#: js/utils/musicutils.js:1189 +#: js/utils/musicutils.js:1326 +#.TRANS: major is a music term related to intervals and mode +msgid "major" +msgstr "Dur" -#: js/turtledefs.js:620 -msgid "Cartesian/Polar" +#: js/piemenus.js:3018 +#: js/piemenus.js:3091 +#: js/utils/musicutils.js:1032 +#.TRANS: modal scale for music +msgid "ionian" msgstr "" -#: js/turtledefs.js:621 -msgid "Show or hide a coordinate grid." -msgstr "" +#: js/piemenus.js:3020 +#: js/piemenus.js:3095 +#: js/utils/musicutils.js:1012 +#: js/utils/musicutils.js:1190 +#: js/utils/musicutils.js:1323 +#.TRANS: minor is a music term related to intervals and mode +msgid "minor" +msgstr "Moll" -#: js/turtledefs.js:627 -msgid "Clear the screen and return the mice to their initial positions." +#: js/piemenus.js:3020 +#: js/piemenus.js:3095 +#: js/utils/musicutils.js:1042 +#.TRANS: modal scale for music +msgid "aeolian" msgstr "" -#: js/turtledefs.js:633 -msgid "Collapse the graphics window." +#: js/piemenus.js:3410 +msgid "Duplicate" +msgstr "" + +#: js/piemenus.js:3412 +msgid "Move to trash" msgstr "" -#: js/turtledefs.js:638 -#: js/activity.js:4256 -#: js/activity.js:4256 -msgid "Home" -msgstr "Home" +#: js/piemenus.js:3413 +#: js/widgets/timbre.js:968 +#: planet/js/StringHelper.js:69 +msgid "Close" +msgstr "Schließen" -#: js/turtledefs.js:639 -msgid "Return all blocks to the center of the screen." -msgstr "Zeige alle Blocks in der Mitte der Arbeitsfläche" +#: js/piemenus.js:3419 +msgid "Save stack" +msgstr "Stapel speichern" -#: js/turtledefs.js:644 -msgid "Show/hide blocks" -msgstr "Blöcke zeigen/verbergen" +#: js/piemenus.js:3449 +msgid "In order to copy a sample, you must reload the widget, import the sample again, and export it." +msgstr "" -#: js/turtledefs.js:645 -msgid "Hide or show the blocks and the palettes." -msgstr "Verberge/Zeige die Blöcke und die Paletten" +#: js/piemenus.js:3812 +msgid "You have chosen key " +msgstr "" -#: js/turtledefs.js:650 -msgid "Expand/collapse collapsable blocks" +#: js/piemenus.js:3816 +msgid " for your pitch preview." msgstr "" -#: js/turtledefs.js:651 -msgid "Expand or collapse start and action stacks." -msgstr "Klape die Start- und Aktionsstapel aus/ein" +#: js/turtle-singer.js:1363 +#.TRANS: partials are weighted components in a harmonic series +msgid "You must have at least one Partial block inside of a Weighted-partial block" +msgstr "" -#: js/turtledefs.js:658 -#: js/activity.js:4265 -msgid "Decrease block size" -msgstr "Blockgröße verringern" +#: js/turtle-singer.js:2077 +msgid "synth cannot play chords." +msgstr "Der Syntheziser kann keine Akkorde spielen" -#: js/turtledefs.js:659 -msgid "Decrease the size of the blocks." -msgstr "Verringere die Blockgröße" +#: js/utils/musicutils.js:505 +#: js/utils/musicutils.js:645 +#: js/widgets/pitchdrummatrix.js:228 +#: js/widgets/musickeyboard.js:2885 +msgid "rest" +msgstr "Zurücksetzen" -#: js/turtledefs.js:664 -#: js/activity.js:4267 -msgid "Increase block size" -msgstr "Blockgröße vergrößern" +#: js/utils/musicutils.js:689 +msgid "Perfect unison" +msgstr "" -#: js/turtledefs.js:665 -msgid "Increase the size of the blocks." -msgstr "Vergrößere die Blockgröße" +#: js/utils/musicutils.js:689 +msgid "Diminished second" +msgstr "" -#: js/turtledefs.js:670 -msgid "Expand/collapse option toolbar" -msgstr "Optionen-Toolbar aus-/einklappen" +#: js/utils/musicutils.js:690 +msgid "Minor second" +msgstr "" -#: js/turtledefs.js:671 -msgid "Click this button to expand or collapse the auxillary toolbar." -msgstr "Klicke hier um die Hilfeleiste aus- oder einzuklappen" +#: js/utils/musicutils.js:690 +msgid "Augmented unison" +msgstr "" -#: js/turtledefs.js:676 -msgid "Run slow" -msgstr "Langsam abspielen" +#: js/utils/musicutils.js:691 +msgid "Major second" +msgstr "" -#: js/turtledefs.js:677 -msgid "Click to run the project in slow mode." -msgstr "Klicke hier um dein Projekt langsam abzuspielen" +#: js/utils/musicutils.js:691 +msgid "Diminished third" +msgstr "" -#: js/turtledefs.js:683 -msgid "Click to run the project step by step." -msgstr "Klicke hier um dein Projekt Schritt für Schritt abzuspielen" +#: js/utils/musicutils.js:692 +msgid "Minor third" +msgstr "" -#: js/turtledefs.js:690 -msgid "Display statistics about your Music project." -msgstr "Zeige Statistiken über dein Music Project" +#: js/utils/musicutils.js:692 +msgid "Augmented second" +msgstr "" -#: js/turtledefs.js:697 -msgid "Delete a selected plugin." +#: js/utils/musicutils.js:693 +msgid "Major third" msgstr "" -#: js/turtledefs.js:704 -msgid "Enable scrolling" -msgstr "Scrollen aktivieren" +#: js/utils/musicutils.js:693 +msgid "Diminished fourth" +msgstr "" -#: js/turtledefs.js:705 -msgid "You can scroll the blocks on the canvas." -msgstr "Du kannst die Blocke auf der Arbeitsfläche bewegen" +#: js/utils/musicutils.js:694 +msgid "Perfect fourth" +msgstr "" -#: js/turtledefs.js:714 -msgid "Wrap Turtle" +#: js/utils/musicutils.js:694 +msgid "Augmented third" msgstr "" -#: js/turtledefs.js:715 -msgid "Turn Turtle wrapping On or Off." +#: js/utils/musicutils.js:695 +msgid "Diminished fifth" msgstr "" -#: js/turtledefs.js:725 -msgid "Restore blocks from the trash." -msgstr "Blöcke wiederherstellen" +#: js/utils/musicutils.js:695 +msgid "Augmented fourth" +msgstr "" -#: js/turtledefs.js:732 -msgid "Switch mode" +#: js/utils/musicutils.js:696 +msgid "Perfect fifth" msgstr "" -#: js/turtledefs.js:733 -msgid "Switch between beginner and advance modes." +#: js/utils/musicutils.js:696 +msgid "Diminished sixth" msgstr "" -#: js/turtledefs.js:739 -msgid "Select your language preference." +#: js/utils/musicutils.js:697 +msgid "Minor sixth" msgstr "" -#: js/turtledefs.js:745 -msgid "Keyboard shortcuts" +#: js/utils/musicutils.js:697 +msgid "Augmented fifth" msgstr "" -#: js/turtledefs.js:746 -msgid "You can type d to create a do block and r to create a re block etc." +#: js/utils/musicutils.js:698 +msgid "Major sixth" msgstr "" -#: js/turtledefs.js:753 -msgid "Show these messages." -msgstr "Diese Meldungen anzeigen" +#: js/utils/musicutils.js:698 +msgid "Diminished seventh" +msgstr "" -#: js/turtledefs.js:759 -#: js/turtledefs.js:790 -#: js/help.js:335 -msgid "Guide" +#: js/utils/musicutils.js:699 +msgid "Minor seventh" msgstr "" -#: js/turtledefs.js:760 -msgid "A detailed guide to Turtle Blocks is available." +#: js/utils/musicutils.js:699 +msgid "Augmented sixth" msgstr "" -#: js/turtledefs.js:764 -msgid "Turtle Blocks Guide" +#: js/utils/musicutils.js:700 +msgid "Major seventh" msgstr "" -#: js/turtledefs.js:767 -#: js/turtledefs.js:798 -#: js/help.js:336 -msgid "About" +#: js/utils/musicutils.js:700 +msgid "Diminished octave" msgstr "" -#: js/turtledefs.js:768 -msgid "Turtle Blocks is an open source collection of tools for exploring musical concepts." +#: js/utils/musicutils.js:701 +msgid "Perfect octave" msgstr "" -#: js/turtledefs.js:770 -msgid "A full list of contributors can be found in the Turtle Blocks GitHub repository." +#: js/utils/musicutils.js:701 +msgid "Augmented seventh" msgstr "" -#: js/turtledefs.js:772 -msgid "Turtle Blocks is licensed under the AGPL." +#: js/utils/musicutils.js:702 +msgid "Minor ninth" msgstr "" -#: js/turtledefs.js:780 -msgid "Turtle Blocks GitHub repository" +#: js/utils/musicutils.js:702 +msgid "Augmented octave" msgstr "" -#: js/turtledefs.js:783 -#: js/turtledefs.js:814 -#: js/help.js:337 -#: js/help.js:359 -msgid "Congratulations." -msgstr "Herzlichen Glückwunsch!" +#: js/utils/musicutils.js:703 +msgid "Major ninth" +msgstr "" -#: js/turtledefs.js:784 -msgid "You have finished the tour. Please enjoy Turtle Blocks!" +#: js/utils/musicutils.js:703 +msgid "Diminished tenth" msgstr "" -#: js/turtledefs.js:791 -msgid "A detailed guide to Music Blocks is available." +#: js/utils/musicutils.js:704 +msgid "Minor tenth" msgstr "" -#: js/turtledefs.js:795 -#: js/SaveInterface.js:76 -msgid "Music Blocks Guide" +#: js/utils/musicutils.js:704 +msgid "Augmented ninth" msgstr "" -#: js/turtledefs.js:799 -msgid "Music Blocks is an open source collection of tools for exploring musical concepts." +#: js/utils/musicutils.js:705 +msgid "Major tenth" msgstr "" -#: js/turtledefs.js:801 -msgid "A full list of contributors can be found in the Music Blocks GitHub repository." +#: js/utils/musicutils.js:705 +msgid "Diminished eleventh" msgstr "" -#: js/turtledefs.js:803 -msgid "Music Blocks is licensed under the AGPL." +#: js/utils/musicutils.js:706 +msgid "Perfect eleventh" msgstr "" -#: js/turtledefs.js:811 -msgid "Music Blocks GitHub repository" +#: js/utils/musicutils.js:706 +msgid "Augmented tenth" msgstr "" -#: js/turtledefs.js:815 -msgid "You have finished the tour. Please enjoy Music Blocks!" -msgstr "Du hast die Tour abgeschlossen. Jetzt kannst du mit „Music Blocks“ anfangen" +#: js/utils/musicutils.js:707 +msgid "Diminished twelfth" +msgstr "" -#: js/activity.js:369 -msgid "Search for blocks" +#: js/utils/musicutils.js:707 +msgid "Augmented eleventh" msgstr "" -#: js/activity.js:1145 -msgid "Refresh your browser to change to advanced mode." +#: js/utils/musicutils.js:708 +msgid "Perfect twelfth" msgstr "" -#: js/activity.js:1150 -msgid "Refresh your browser to change to beginner mode." +#: js/utils/musicutils.js:708 +msgid "Diminished thirteenth" msgstr "" -#: js/activity.js:1184 -msgid "Catching mice" +#: js/utils/musicutils.js:709 +msgid "Minor thirteenth" msgstr "" -#: js/activity.js:1185 -msgid "Cleaning the instruments" +#: js/utils/musicutils.js:709 +msgid "Augmented fifth, plus an octave" msgstr "" -#: js/activity.js:1186 -msgid "Testing key pieces" +#: js/utils/musicutils.js:710 +msgid "Major thirteenth" msgstr "" -#: js/activity.js:1187 -msgid "Sight-reading" +#: js/utils/musicutils.js:710 +msgid "Diminished seventh, plus an octave" msgstr "" -#: js/activity.js:1188 -msgid "Combining math and music" +#: js/utils/musicutils.js:838 +#.TRANS: ordinal number. Please keep exactly one space between each number. +msgid "1st 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th" msgstr "" -#: js/activity.js:1189 -msgid "Generating more blocks" +#: js/utils/musicutils.js:1008 +#: js/utils/musicutils.js:1191 +#: js/utils/musicutils.js:1325 +#.TRANS: augmented is a music term related to intervals +msgid "augmented" +msgstr "übermäßig" + +#: js/utils/musicutils.js:1010 +#: js/utils/musicutils.js:1192 +#: js/utils/musicutils.js:1324 +#.TRANS: diminished is a music term related to intervals and mode +msgid "diminished" +msgstr "vermindert" + +#: js/utils/musicutils.js:1016 +#: js/utils/musicutils.js:1322 +#: js/blocks/IntervalsBlocks.js:649 +#: js/turtleactions/IntervalsActions.js:120 +#: js/turtleactions/IntervalsActions.js:124 +#.TRANS: perfect is a music term related to intervals +msgid "perfect" +msgstr "rein" + +#: js/utils/musicutils.js:1018 +#.TRANS: twelve semi-tone scale for music +msgid "chromatic" msgstr "" -#: js/activity.js:1190 -msgid "Do Re Mi Fa Sol La Ti Do" +#: js/utils/musicutils.js:1019 +msgid "algerian" msgstr "" -#: js/activity.js:1191 -msgid "Tuning string instruments" +#: js/utils/musicutils.js:1020 +msgid "spanish" msgstr "" -#: js/activity.js:1192 -msgid "Pressing random keys" +#: js/utils/musicutils.js:1022 +#.TRANS: modal scale in music +msgid "octatonic" msgstr "" -#: js/activity.js:1351 -msgid "plugins will be removed upon restart." +#: js/utils/musicutils.js:1024 +#.TRANS: harmonic major scale in music +msgid "harmonic major" msgstr "" -#: js/activity.js:1360 -msgid "show Cartesian" +#: js/utils/musicutils.js:1026 +#.TRANS: natural minor scales in music +msgid "natural minor" msgstr "" -#: js/activity.js:1842 -msgid "output tools" +#: js/utils/musicutils.js:1028 +#.TRANS: harmonic minor scale in music +msgid "harmonic minor" msgstr "" -#: js/activity.js:1845 -msgid "custom note" +#: js/utils/musicutils.js:1030 +#.TRANS: melodic minor scale in music +msgid "melodic minor" msgstr "" -#: js/activity.js:1848 -msgid "accidental name" +#: js/utils/musicutils.js:1034 +#.TRANS: modal scale for music +msgid "dorian" msgstr "" -#: js/activity.js:1851 -#: js/PitchBlocks.js:855 -msgid "east indian solfege" +#: js/utils/musicutils.js:1036 +#.TRANS: modal scale for music +msgid "phrygian" msgstr "" -#: js/activity.js:1854 -#: js/PitchBlocks.js:869 -msgid "note name" +#: js/utils/musicutils.js:1038 +#.TRANS: modal scale for music +msgid "lydian" msgstr "" -#: js/activity.js:1857 -#: js/IntervalsBlocks.js:94 -msgid "temperament name" +#: js/utils/musicutils.js:1040 +#.TRANS: modal scale for music +msgid "mixolydian" msgstr "" -#: js/activity.js:1863 -msgid "chord name" +#: js/utils/musicutils.js:1044 +#.TRANS: modal scale for music +msgid "locrian" msgstr "" -#: js/activity.js:1869 -msgid "filter type" +#: js/utils/musicutils.js:1046 +#.TRANS: minor jazz scale for music +msgid "jazz minor" msgstr "" -#: js/activity.js:1872 -msgid "oscillator type" +#: js/utils/musicutils.js:1048 +#.TRANS: bebop scale for music +msgid "bebop" msgstr "" -#: js/activity.js:1878 -#: js/DrumBlocks.js:32 -msgid "noise name" +#: js/utils/musicutils.js:1049 +msgid "arabic" msgstr "" -#: js/activity.js:1881 -#: js/DrumBlocks.js:75 -msgid "drum name" +#: js/utils/musicutils.js:1050 +msgid "byzantine" msgstr "" -#: js/activity.js:1884 -#: js/DrumBlocks.js:119 -msgid "effects name" +#: js/utils/musicutils.js:1052 +#.TRANS: musical scale for music by Verdi +msgid "enigmatic" msgstr "" -#: js/activity.js:1887 -msgid "wrap mode" +#: js/utils/musicutils.js:1053 +msgid "ethiopian" msgstr "" -#: js/activity.js:1890 -msgid "load file" +#: js/utils/musicutils.js:1055 +#.TRANS: Ethiopic scale for music +msgid "geez" msgstr "" -#: js/activity.js:2056 -msgid "This block is deprecated." +#: js/utils/musicutils.js:1056 +msgid "hindu" msgstr "" -#: js/activity.js:2058 -msgid "Block cannot be found." +#: js/utils/musicutils.js:1057 +msgid "hungarian" msgstr "" -#: js/activity.js:2266 -msgid "Saving block artwork" +#: js/utils/musicutils.js:1059 +#.TRANS: minor Romanian scale for music +msgid "romanian minor" msgstr "" -#: js/activity.js:2277 -msgid "Erase" +#: js/utils/musicutils.js:1060 +msgid "spanish gypsy" msgstr "" -#: js/activity.js:2301 -#: js/activity.js:2323 -msgid "Paste" -msgstr "Einfügen" +#: js/utils/musicutils.js:1062 +#.TRANS: musical scale for Mid-Eastern music +msgid "maqam" +msgstr "" -#: js/activity.js:2305 -msgid "Save block help" +#: js/utils/musicutils.js:1064 +#.TRANS: minor blues scale for music +msgid "minor blues" msgstr "" -#: js/activity.js:2390 -msgid "Jumping to the bottom of the page." +#: js/utils/musicutils.js:1066 +#.TRANS: major blues scale for music +msgid "major blues" msgstr "" -#: js/activity.js:2396 -msgid "Scrolling up." +#: js/utils/musicutils.js:1067 +msgid "whole tone" msgstr "" -#: js/activity.js:2401 -msgid "Scrolling down." +#: js/utils/musicutils.js:1069 +#.TRANS: pentatonic is a general term that means "five note scale". This scale is typically known as "minor pentatonic" +msgid "minor pentatonic" msgstr "" -#: js/activity.js:2406 -msgid "Extracting block" +#: js/utils/musicutils.js:1071 +#.TRANS: pentatonic is a general term that means "five note scale". This scale is typically known as "major pentatonic" +msgid "major pentatonic" msgstr "" -#: js/activity.js:2414 -msgid "Moving block up." +#: js/utils/musicutils.js:1072 +msgid "chinese" msgstr "" -#: js/activity.js:2435 -msgid "Moving block down." +#: js/utils/musicutils.js:1073 +msgid "egyptian" msgstr "" -#: js/activity.js:2456 -msgid "Moving block left." +#: js/utils/musicutils.js:1075 +#.TRANS: https://en.wikipedia.org/wiki/Hirajoshi_scale NOTE: There are three different versions of this scale +msgid "hirajoshi" msgstr "" -#: js/activity.js:2473 -msgid "Moving block right." +#: js/utils/musicutils.js:1076 +msgid "Japan" msgstr "" -#: js/activity.js:2488 -msgid "Jump to home position." +#: js/utils/musicutils.js:1078 +#.TRANS: https://en.wikipedia.org/wiki/In_scale and https://en.wikipedia.org/wiki/Sakura_Sakura +msgid "in" msgstr "" -#: js/activity.js:2515 -msgid "Hide blocks" +#: js/utils/musicutils.js:1080 +#.TRANS: https://en.wikipedia.org/wiki/Miny%C5%8D_scale +msgid "minyo" msgstr "" -#: js/activity.js:3389 -msgid "Click the run button to run the project." +#: js/utils/musicutils.js:1082 +#.TRANS: Italian mathematician +msgid "fibonacci" msgstr "" -#: js/activity.js:3456 -#: js/SaveInterface.js:131 -#: js/SaveInterface.js:204 -#: js/SaveInterface.js:262 -#: js/SaveInterface.js:389 -#: js/SaveInterface.js:417 -#: js/ProjectStorage.js:27 -#: js/GlobalPlanet.js:467 -#: js/GlobalPlanet.js:469 -#: js/GlobalPlanet.js:495 -#.TRANS: default project title when saving as Lilypond -msgid "My Project" -msgstr "Mein Projekt" +#: js/utils/musicutils.js:1083 +#: js/utils/musicutils.js:1134 +#: js/utils/musicutils.js:1177 +#: js/utils/musicutils.js:1199 +#: js/utils/synthutils.js:134 +#: js/blocks/IntervalsBlocks.js:1124 +#: js/blocks/ToneBlocks.js:946 +#: js/blocks/VolumeBlocks.js:411 +#: js/blocks/WidgetBlocks.js:399 +#: js/blocks/WidgetBlocks.js:404 +#: js/turtleactions/VolumeActions.js:218 +#: js/widgets/modewidget.js:919 +#.TRANS: customize voice +msgid "custom" +msgstr "Benutzerdefiniert" -#: js/activity.js:4261 -msgid "Show/hide block" +#: js/utils/musicutils.js:1085 +#: js/utils/musicutils.js:1531 +#: js/blocks/WidgetBlocks.js:176 +#.TRANS: highpass filter +msgid "highpass" msgstr "" -#: js/activity.js:4263 -msgid "Expand/collapse blocks" +#: js/utils/musicutils.js:1087 +#: js/utils/musicutils.js:1532 +#.TRANS: lowpass filter +msgid "lowpass" msgstr "" -#: js/activity.js:4381 -msgid "Could not parse JSON input." +#: js/utils/musicutils.js:1089 +#: js/utils/musicutils.js:1533 +#.TRANS: bandpass filter +msgid "bandpass" msgstr "" -#: js/activity.js:4684 -#: js/activity.js:4771 -#: js/activity.js:4821 -msgid "Cannot load project from the file. Please check the file type." +#: js/utils/musicutils.js:1091 +#: js/utils/musicutils.js:1534 +#.TRANS: high-shelf filter +msgid "highshelf" msgstr "" -#: js/activity.js:5051 -msgid "Invalid parameters" +#: js/utils/musicutils.js:1093 +#: js/utils/musicutils.js:1535 +#.TRANS: low-shelf filter +msgid "lowshelf" msgstr "" -#: js/turtle-singer.js:1334 -#.TRANS: partials are weighted components in a harmonic series -msgid "You must have at least one Partial block inside of a Weighted-partial block" +#: js/utils/musicutils.js:1095 +#: js/utils/musicutils.js:1536 +#.TRANS: notch-shelf filter +msgid "notch" msgstr "" -#: js/turtle-singer.js:2048 -msgid "synth cannot play chords." -msgstr "Der Syntheziser kann keine Akkorde spielen" - -#: js/lilypond.js:614 -msgid "brown rat" -msgstr "Braune Ratte" - -#: js/lilypond.js:615 -msgid "mole" -msgstr "Maulwurf" +#: js/utils/musicutils.js:1097 +#: js/utils/musicutils.js:1537 +#.TRANS: all-pass filter +msgid "allpass" +msgstr "" -#: js/lilypond.js:616 -msgid "chipmunk" -msgstr "Streifenhörnchen" +#: js/utils/musicutils.js:1099 +#: js/utils/musicutils.js:1538 +#.TRANS: peaking filter +msgid "peaking" +msgstr "" -#: js/lilypond.js:617 -msgid "red squirrel" -msgstr "Eichhörnchen" +#: js/utils/musicutils.js:1100 +#: js/utils/musicutils.js:1546 +#: js/utils/synthutils.js:126 +#: js/blocks/PitchBlocks.js:85 +#.TRANS: sine wave +msgid "sine" +msgstr "Sinus" -#: js/lilypond.js:618 -msgid "guinea pig" -msgstr "Meerschweinchen" +#: js/utils/musicutils.js:1101 +#: js/utils/musicutils.js:1547 +#: js/utils/synthutils.js:128 +#: js/blocks/PitchBlocks.js:39 +#.TRANS: square wave +msgid "square" +msgstr "Quadrat" -#: js/lilypond.js:619 -msgid "capybara" -msgstr "Capybara" +#: js/utils/musicutils.js:1102 +#: js/utils/musicutils.js:1548 +#: js/utils/synthutils.js:132 +#: js/blocks/PitchBlocks.js:62 +#: js/blocks/ToneBlocks.js:39 +#.TRANS: triangle wave +msgid "triangle" +msgstr "Dreieck" -#: js/lilypond.js:620 -msgid "coypu" -msgstr "Wasserratte" +#: js/utils/musicutils.js:1103 +#: js/utils/musicutils.js:1549 +#: js/utils/synthutils.js:130 +#: js/blocks/PitchBlocks.js:108 +#.TRANS: sawtooth wave +msgid "sawtooth" +msgstr "Sägezahn" -#: js/lilypond.js:621 -msgid "black rat" -msgstr "Schwarze Ratte" +#: js/utils/musicutils.js:1105 +#: js/utils/musicutils.js:1312 +#: js/blocks/PitchBlocks.js:931 +#: js/blocks/PitchBlocks.js:937 +#: js/turtleactions/PitchActions.js:469 +#.TRANS: even numbers +#.TRANS: invert based on even or odd number or musical scale +msgid "even" +msgstr "" -#: js/lilypond.js:622 -msgid "grey squirrel" -msgstr "Grauhörnchen" +#: js/utils/musicutils.js:1107 +#: js/utils/musicutils.js:1313 +#: js/blocks/PitchBlocks.js:937 +#: js/turtleactions/PitchActions.js:471 +#.TRANS: odd numbers +msgid "odd" +msgstr "" -#: js/lilypond.js:623 -msgid "flying squirrel" -msgstr "Flughörnchen" +#: js/utils/musicutils.js:1108 +#: js/utils/musicutils.js:1314 +#: js/blocks/PitchBlocks.js:937 +#: js/turtleactions/PitchActions.js:473 +msgid "scalar" +msgstr "" -#: js/lilypond.js:624 -msgid "bat" -msgstr "Fledermaus" +#: js/utils/musicutils.js:1109 +#: js/utils/synthutils.js:72 +#: js/blocks/VolumeBlocks.js:47 +#.TRANS: musical instrument +msgid "piano" +msgstr "" -#: js/lilypond.js:757 -#: js/lilypond.js:921 -#: js/lilypond.js:959 -#: js/ActionBlocks.js:1256 -#: js/ExtrasBlocks.js:553 -msgid "start drum" -msgstr "Starte Trommel" +#: js/utils/musicutils.js:1110 +#: js/utils/synthutils.js:74 +#.TRANS: musical instrument +msgid "violin" +msgstr "Geige" -#: js/SaveInterface.js:59 -#: js/SaveInterface.js:61 -#: js/SaveInterface.js:93 -msgid "Music Blocks Project" +#: js/utils/musicutils.js:1111 +#: js/utils/synthutils.js:76 +#.TRANS: viola musical instrument +msgid "viola" msgstr "" -#: js/SaveInterface.js:63 -msgid "This project was created in Music Blocks" +#: js/utils/musicutils.js:1112 +#: js/utils/synthutils.js:114 +#.TRANS: xylophone musical instrument +msgid "xylophone" msgstr "" -#: js/SaveInterface.js:67 -msgid "Music Blocks is a Free/Libre Software application." +#: js/utils/musicutils.js:1113 +#: js/utils/synthutils.js:136 +#.TRANS: vibraphone musical instrument +msgid "vibraphone" msgstr "" -#: js/SaveInterface.js:69 -msgid "The source code can be accessed at" +#: js/utils/musicutils.js:1114 +#: js/utils/synthutils.js:78 +#.TRANS: musical instrument +msgid "cello" +msgstr "Cello" + +#: js/utils/musicutils.js:1116 +#: js/utils/synthutils.js:82 +#.TRANS: viola musical instrument +msgid "double bass" msgstr "" -#: js/SaveInterface.js:72 -msgid "For more information, please consult the" +#: js/utils/musicutils.js:1117 +#: js/utils/synthutils.js:84 +#: js/widgets/rhythmruler.js:2511 +#.TRANS: musical instrument +msgid "guitar" msgstr "" -#: js/SaveInterface.js:83 -msgid "Alternatively, open the file in Music Blocks using the Load project button." +#: js/utils/musicutils.js:1118 +#: js/utils/synthutils.js:86 +#.TRANS: musical instrument +msgid "acoustic guitar" msgstr "" -#: js/SaveInterface.js:85 -msgid "Project Code" +#: js/utils/musicutils.js:1119 +#: js/utils/synthutils.js:88 +#.TRANS: musical instrument +msgid "flute" msgstr "" -#: js/SaveInterface.js:87 -msgid "This code stores data about the blocks in a project." +#: js/utils/musicutils.js:1120 +#: js/utils/synthutils.js:90 +#.TRANS: musical instrument +msgid "clarinet" msgstr "" -#: js/SaveInterface.js:89 -msgid "Show" +#: js/utils/musicutils.js:1121 +#: js/utils/synthutils.js:92 +#.TRANS: musical instrument +msgid "saxophone" msgstr "" -#: js/SaveInterface.js:91 -msgid "Hide" +#: js/utils/musicutils.js:1122 +#: js/utils/synthutils.js:94 +#.TRANS: musical instrument +msgid "tuba" msgstr "" -#: js/SaveInterface.js:197 -#: js/SaveInterface.js:58 -msgid "No description provided" +#: js/utils/musicutils.js:1123 +#: js/utils/synthutils.js:96 +#.TRANS: musical instrument +msgid "trumpet" msgstr "" -#: js/SaveInterface.js:332 -msgid "Your recording is in progress." +#: js/utils/musicutils.js:1124 +#: js/utils/synthutils.js:98 +#.TRANS: musical instrument +msgid "oboe" msgstr "" -#: js/SaveInterface.js:401 -#.TRANS: File name prompt for save as Lilypond -msgid "File name" +#: js/utils/musicutils.js:1125 +#: js/utils/synthutils.js:100 +#.TRANS: musical instrument +msgid "trombone" msgstr "" -#: js/SaveInterface.js:403 -#: js/StringHelper.js:39 -#.TRANS: Project title prompt for save as Lilypond -msgid "Project title" +#: js/utils/musicutils.js:1126 +#: js/utils/synthutils.js:116 +#.TRANS: polytone synthesizer +msgid "electronic synth" msgstr "" -#: js/SaveInterface.js:405 -#.TRANS: Project title prompt for save as Lilypond -msgid "Project author" +#: js/utils/musicutils.js:1127 +#: js/utils/synthutils.js:118 +#.TRANS: simple monotone synthesizer +msgid "simple 1" msgstr "" -#: js/SaveInterface.js:407 -#.TRANS: MIDI prompt for save as Lilypond -msgid "Include MIDI output?" +#: js/utils/musicutils.js:1128 +msgid "simple 2" msgstr "" -#: js/SaveInterface.js:409 -#.TRANS: Guitar prompt for save as Lilypond -msgid "Include guitar tablature output?" +#: js/utils/musicutils.js:1129 +msgid "simple 3" msgstr "" -#: js/SaveInterface.js:411 -#.TRANS: Lilypond is a scripting language for generating sheet music -msgid "Save as Lilypond" +#: js/utils/musicutils.js:1130 +msgid "simple 4" msgstr "" -#: js/SaveInterface.js:426 -#: js/EnsembleBlocks.js:75 -#: js/EnsembleBlocks.js:154 -#: js/EnsembleBlocks.js:216 -#: js/EnsembleBlocks.js:302 -#: js/EnsembleBlocks.js:348 -#: js/EnsembleBlocks.js:389 -#: js/EnsembleBlocks.js:441 -#: js/EnsembleBlocks.js:490 -#: js/EnsembleBlocks.js:536 -#: js/EnsembleBlocks.js:583 -#: js/EnsembleBlocks.js:637 -#: js/EnsembleBlocks.js:753 -#: js/EnsembleBlocks.js:840 -#: js/EnsembleBlocks.js:899 -#: js/EnsembleBlocks.js:942 -#: js/EnsembleBlocks.js:1212 -#: js/EnsembleBlocks.js:1280 -#.TRANS: default project author when saving as Lilypond -msgid "Mr. Mouse" +#: js/utils/musicutils.js:1131 +#: js/utils/synthutils.js:58 +#: js/blocks/DrumBlocks.js:191 +#.TRANS: white noise synthesizer +msgid "white noise" msgstr "" -#: js/SaveInterface.js:573 -msgid "The Lilypond code is copied to clipboard. You can paste it here: " +#: js/utils/musicutils.js:1132 +#: js/utils/synthutils.js:60 +#.TRANS: brown noise synthesizer +msgid "brown noise" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:50 -#: js/RhythmBlockPaletteBlocks.js:232 -#.TRANS: rhythm block -#.TRANS: translate "rhythm1" as rhythm -msgid "rhythm1" +#: js/utils/musicutils.js:1133 +#: js/utils/synthutils.js:62 +#.TRANS: pink noise synthesizer +msgid "pink noise" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:70 -#: js/RhythmBlockPaletteBlocks.js:251 -#: js/RhythmBlockPaletteBlocks.js:484 -#: js/RhythmBlockPaletteBlocks.js:553 -#: js/RhythmBlockPaletteBlocks.js:874 -msgid "number of notes" -msgstr "Anzahl der Noten" +#: js/utils/musicutils.js:1135 +#: js/utils/synthutils.js:148 +#: js/widgets/rhythmruler.js:2057 +#: js/widgets/rhythmruler.js:2319 +#.TRANS: musical instrument +msgid "snare drum" +msgstr "Snare" -#: js/RhythmBlockPaletteBlocks.js:126 -msgid "polyphonic rhythm" -msgstr "" +#: js/utils/musicutils.js:1136 +#: js/utils/synthutils.js:150 +#.TRANS: musical instrument +msgid "kick drum" +msgstr "Basstrommel" -#: js/RhythmBlockPaletteBlocks.js:218 -msgid "The Rhythm block is used to generate rhythm patterns." +#: js/utils/musicutils.js:1137 +#: js/utils/synthutils.js:152 +#.TRANS: musical instrument +msgid "tom tom" +msgstr "Tomtom" + +#: js/utils/musicutils.js:1138 +#: js/utils/synthutils.js:154 +#.TRANS: musical instrument +msgid "floor tom" +msgstr "Tomtom" + +#: js/utils/musicutils.js:1139 +#: js/utils/synthutils.js:156 +#.TRANS: musical instrument +msgid "bass drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:279 -msgid "1/64 note" -msgstr "1/64 Note" +#: js/utils/musicutils.js:1140 +#: js/utils/synthutils.js:158 +#.TRANS: a drum made from an inverted cup +msgid "cup drum" +msgstr "Bechertrommel" -#: js/RhythmBlockPaletteBlocks.js:303 -msgid "1/32 note" -msgstr "1/32 Note" +#: js/utils/musicutils.js:1141 +#: js/utils/synthutils.js:160 +#.TRANS: musical instrument +msgid "darbuka drum" +msgstr "Darbuka" -#: js/RhythmBlockPaletteBlocks.js:331 -msgid "1/16 note" -msgstr "1/16 Note" +#: js/utils/musicutils.js:1142 +#: js/utils/synthutils.js:164 +#.TRANS: musical instrument +msgid "hi hat" +msgstr "Hi-Hat" -#: js/RhythmBlockPaletteBlocks.js:359 -msgid "eighth note" -msgstr "1/8 Note" +#: js/utils/musicutils.js:1143 +#: js/utils/synthutils.js:166 +#.TRANS: a small metal bell +msgid "ride bell" +msgstr "Ride-Becken" -#: js/RhythmBlockPaletteBlocks.js:387 -msgid "quarter note" -msgstr "1/4 Note" +#: js/utils/musicutils.js:1144 +#: js/utils/synthutils.js:168 +#.TRANS: musical instrument +msgid "cow bell" +msgstr "Kuhglocke" + +#: js/utils/musicutils.js:1145 +msgid "japanese drum" +msgstr "" + +#: js/utils/musicutils.js:1146 +#: js/utils/synthutils.js:174 +#.TRANS: musical instrument +msgid "japanese bell" +msgstr "" -#: js/RhythmBlockPaletteBlocks.js:415 -msgid "half note" -msgstr "1/2 Note" +#: js/utils/musicutils.js:1147 +#: js/utils/synthutils.js:170 +#.TRANS: musical instrument +msgid "triangle bell" +msgstr "Triangel" -#: js/RhythmBlockPaletteBlocks.js:443 -msgid "whole note" -msgstr "Ganze Note" +#: js/utils/musicutils.js:1148 +#: js/utils/synthutils.js:172 +#.TRANS: musical instrument +msgid "finger cymbals" +msgstr "Zimbel" -#: js/RhythmBlockPaletteBlocks.js:481 -#: js/RhythmBlockPaletteBlocks.js:550 -#: js/RhythmBlockPaletteBlocks.js:601 -#.TRANS: A tuplet is a note value divided into irregular time values. -msgid "tuplet" -msgstr "Triplet" +#: js/utils/musicutils.js:1149 +#: js/utils/synthutils.js:176 +#.TRANS: a musically tuned set of bells +msgid "chime" +msgstr "Glockenspiel" -#: js/RhythmBlockPaletteBlocks.js:767 -msgid "septuplet" +#: js/utils/musicutils.js:1150 +#: js/utils/synthutils.js:178 +#.TRANS: a musical instrument +msgid "gong" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:795 -msgid "quintuplet" -msgstr "" +#: js/utils/musicutils.js:1151 +#: js/utils/synthutils.js:180 +#.TRANS: sound effect +msgid "clang" +msgstr "Klang" -#: js/RhythmBlockPaletteBlocks.js:823 -msgid "triplet" -msgstr "" +#: js/utils/musicutils.js:1152 +#: js/utils/synthutils.js:182 +#.TRANS: sound effect +msgid "crash" +msgstr "Krachen" -#: js/RhythmBlockPaletteBlocks.js:850 -msgid "simple tuplet" -msgstr "" +#: js/utils/musicutils.js:1153 +#: js/utils/synthutils.js:184 +#.TRANS: sound effect +msgid "bottle" +msgstr "Flasche" -#: js/RhythmBlockPaletteBlocks.js:860 -msgid "Tuplets are a collection of notes that get scaled to a specific duration." -msgstr "" +#: js/utils/musicutils.js:1154 +#: js/utils/synthutils.js:186 +#.TRANS: sound effect +msgid "clap" +msgstr "Klatschen" -#: js/WidgetBlocks.js:71 -#.TRANS: sound envelope (ADSR) -msgid "envelope" -msgstr "" +#: js/utils/musicutils.js:1155 +#: js/utils/synthutils.js:188 +#.TRANS: sound effect +msgid "slap" +msgstr "Schlag" -#: js/WidgetBlocks.js:79 -#.TRANS: Attack time is the time taken for initial run-up of level from nil to peak, beginning when the key is first pressed. -msgid "attack" -msgstr "" +#: js/utils/musicutils.js:1156 +#: js/utils/synthutils.js:190 +#.TRANS: sound effect +msgid "splash" +msgstr "Spritzen" -#: js/WidgetBlocks.js:81 -#.TRANS: Decay time is the time taken for the subsequent run down from the attack level to the designated sustain level. -msgid "decay" -msgstr "" +#: js/utils/musicutils.js:1157 +#: js/utils/synthutils.js:192 +#.TRANS: sound effect +msgid "bubbles" +msgstr "Blasen" -#: js/WidgetBlocks.js:83 -#.TRANS: Sustain level is the level during the main sequence of the sound's duration, until the key is released. -msgid "sustain" +#: js/utils/musicutils.js:1158 +#: js/utils/synthutils.js:194 +#.TRANS: sound effect +msgid "raindrop" msgstr "" -#: js/WidgetBlocks.js:85 -#.TRANS: Release time is the time taken for the level to decay from the sustain level to zero after the key is released. -msgid "release" -msgstr "" +#: js/utils/musicutils.js:1159 +#: js/utils/synthutils.js:196 +#.TRANS: animal sound effect +msgid "cat" +msgstr "Katze" -#: js/WidgetBlocks.js:96 -msgid "Attack value should be from 0 to 100." -msgstr "" +#: js/utils/musicutils.js:1160 +#: js/utils/synthutils.js:198 +#.TRANS: animal sound effect +msgid "cricket" +msgstr "Grille" -#: js/WidgetBlocks.js:99 -msgid "Decay value should be from 0 to 100." -msgstr "" +#: js/utils/musicutils.js:1161 +#: js/utils/synthutils.js:200 +#.TRANS: animal sound effect +msgid "dog" +msgstr "Hund" -#: js/WidgetBlocks.js:102 -msgid "Sustain value should be from 0 to 100." +#: js/utils/musicutils.js:1163 +#: js/utils/synthutils.js:102 +#.TRANS: musical instrument +msgid "banjo" msgstr "" -#: js/WidgetBlocks.js:105 -msgid "Release value should be from 0-100." +#: js/utils/musicutils.js:1164 +#: js/utils/synthutils.js:104 +#.TRANS: musical instrument +msgid "koto" msgstr "" -#: js/WidgetBlocks.js:121 -msgid "You are adding multiple envelope blocks." +#: js/utils/musicutils.js:1165 +#: js/utils/synthutils.js:106 +#.TRANS: musical instrument +msgid "dulcimer" msgstr "" -#: js/WidgetBlocks.js:144 -#.TRANS: a filter removes some unwanted components from a signal -msgid "filter" +#: js/utils/musicutils.js:1166 +#: js/utils/synthutils.js:108 +#.TRANS: musical instrument +msgid "electric guitar" msgstr "" -#: js/WidgetBlocks.js:149 -#: js/musicutils.js:706 -#: js/musicutils.js:1105 -#.TRANS: highpass filter -msgid "highpass" +#: js/utils/musicutils.js:1167 +#: js/utils/synthutils.js:110 +#.TRANS: musical instrument +msgid "bassoon" msgstr "" -#: js/WidgetBlocks.js:152 -#: js/ToneBlocks.js:42 -#: js/timbre.js:1558 -#: js/timbre.js:1808 -#.TRANS: type of filter, e.g., lowpass, highpass, etc. -#.TRANS: there are different types (sine, triangle, square...) of oscillators. -msgid "type" +#: js/utils/musicutils.js:1168 +#: js/utils/synthutils.js:112 +#.TRANS: musical instrument +msgid "celeste" msgstr "" -#: js/WidgetBlocks.js:154 -#: js/timbre.js:1818 -#.TRANS: rolloff is the steepness of a change in frequency. -msgid "rolloff" +#: js/utils/musicutils.js:1170 +#: js/widgets/temperament.js:787 +#.TRANS: musical temperament +msgid "equal" msgstr "" -#: js/WidgetBlocks.js:155 -#: js/MediaBlocks.js:692 -#: js/temperament.js:382 -#: js/temperament.js:417 -#: js/temperament.js:477 -#: js/temperament.js:485 -#: js/temperament.js:1348 -#: js/timbre.js:1842 -msgid "frequency" -msgstr "Frequenz" - -#: js/WidgetBlocks.js:179 -#.TRANS: rolloff is the steepness of a change in frequency. -msgid "Rolloff value should be either -12, -24, -48, or -96 decibels/octave." +#: js/utils/musicutils.js:1172 +#.TRANS: musical temperament +msgid "Pythagorean" msgstr "" -#: js/WidgetBlocks.js:211 -msgid "The Temperament tool is used to define custom tuning." +#: js/utils/musicutils.js:1174 +#.TRANS: musical temperament +msgid "just intonation" msgstr "" -#: js/WidgetBlocks.js:277 -#: js/sampler.js:329 -msgid "Upload a sample and adjust its pitch center." +#: js/utils/musicutils.js:1176 +#.TRANS: musical temperament +msgid "meantone" msgstr "" -#: js/WidgetBlocks.js:284 -#.TRANS: the speed at music is should be played. -msgid "sampler" +#: js/utils/musicutils.js:1193 +msgid "major 7th" msgstr "" -#: js/WidgetBlocks.js:329 -#: js/WidgetBlocks.js:334 -#: js/IntervalsBlocks.js:928 -#: js/VolumeBlocks.js:411 -#: js/ToneBlocks.js:946 -#: js/VolumeActions.js:218 -#: js/musicutils.js:704 -#: js/musicutils.js:755 -#: js/musicutils.js:798 -#: js/musicutils.js:820 -#: js/musicutils.js:1136 -#: js/synthutils.js:118 -#: js/modewidget.js:919 -#.TRANS: customize voice -msgid "custom" -msgstr "Benutzerdefiniert" - -#: js/WidgetBlocks.js:432 -msgid "The Meter block opens a tool to select strong beats for the meter." +#: js/utils/musicutils.js:1194 +msgid "minor 7th" msgstr "" -#: js/WidgetBlocks.js:473 -msgid "The oscilloscope block opens a tool to visualize waveforms." +#: js/utils/musicutils.js:1195 +msgid "dominant 7th" msgstr "" -#: js/WidgetBlocks.js:478 -msgid "oscilloscope" +#: js/utils/musicutils.js:1196 +msgid "minor-major 7th" msgstr "" -#: js/WidgetBlocks.js:530 -msgid "The Custom mode block opens a tool to explore musical mode (the spacing of the notes in a scale)." +#: js/utils/musicutils.js:1197 +msgid "fully-diminished 7th" msgstr "" -#: js/WidgetBlocks.js:536 -#.TRANS: musical mode is the pattern of half-steps in an octave, e.g., Major or Minor modes -msgid "custom mode" -msgstr "Bearbeitungsmodus" - -#: js/WidgetBlocks.js:570 -msgid "The Tempo block opens a metronome to visualize the beat." +#: js/utils/musicutils.js:1198 +msgid "half-diminished 7th" msgstr "" -#: js/WidgetBlocks.js:617 -msgid "The Arpeggio Widget is used to compose chord sequences." +#: js/utils/musicutils.js:1557 +#: js/utils/musicutils.js:1569 +msgid "Equal (12EDO)" msgstr "" -#: js/WidgetBlocks.js:623 -#: js/IntervalsBlocks.js:683 -msgid "arpeggio" +#: js/utils/musicutils.js:1558 +#: js/utils/musicutils.js:1570 +msgid "5-limit Just Intonation" msgstr "" -#: js/WidgetBlocks.js:677 -msgid "The Pitch drum matrix is used to map pitches to drum sounds." +#: js/utils/musicutils.js:1559 +#: js/utils/musicutils.js:1571 +msgid "Pythagorean (3-limit JI)" msgstr "" -#: js/WidgetBlocks.js:682 -#.TRANS: makes a mapping between pitches and drum sounds -msgid "pitch-drum mapper" -msgstr "Tonlage-Trommel-Matrix" +#: js/utils/musicutils.js:1560 +#: js/utils/musicutils.js:1561 +#: js/utils/musicutils.js:1572 +#: js/utils/musicutils.js:1573 +msgid "Meantone" +msgstr "" -#: js/WidgetBlocks.js:724 -msgid "You must have at least one pitch block and one drum block in the matrix." -msgstr "Du musst mindestens eine Tonlagen-Block und einen Trommelblock in deiner Matrix haben." +#: js/utils/musicutils.js:1574 +msgid "Custom" +msgstr "benutzerdefiniert" -#: js/WidgetBlocks.js:746 -msgid "The Pitch slider tool to is used to generate pitches at selected frequencies." +#: js/utils/musicutils.js:5387 +#: js/utils/musicutils.js:5430 +msgid "current" msgstr "" -#: js/WidgetBlocks.js:751 -#.TRANS: widget to generate pitches using a slider -msgid "pitch slider" +#: js/utils/musicutils.js:5390 +#: js/utils/musicutils.js:5421 +msgid "next" msgstr "" -#: js/WidgetBlocks.js:788 -msgid "chromatic keyboard" +#: js/utils/musicutils.js:5393 +#: js/utils/musicutils.js:5426 +msgid "previous" msgstr "" -#: js/WidgetBlocks.js:815 -#: js/WidgetBlocks.js:874 -#.TRANS: widget to generate pitches using a slider -msgid "music keyboard" +#: js/utils/synthutils.js:120 +#.TRANS: simple monotone synthesizer +msgid "simple-2" msgstr "" -#: js/WidgetBlocks.js:859 -#: js/WidgetBlocks.js:866 -msgid "The Music keyboard block opens a piano keyboard that can be used to create notes." +#: js/utils/synthutils.js:122 +#.TRANS: simple monotone synthesizer +msgid "simple-3" msgstr "" -#: js/WidgetBlocks.js:910 -msgid "The Pitch staircase tool to is used to generate pitches from a given ratio." +#: js/utils/synthutils.js:124 +#.TRANS: simple monotone synthesizer +msgid "simple-4" msgstr "" -#: js/WidgetBlocks.js:917 -#.TRANS: generate a progressive sequence of pitches -msgid "pitch staircase" -msgstr "Tonleiter" - -#: js/WidgetBlocks.js:982 -msgid "The Rhythm Maker block opens a tool to create drum machines." +#: js/utils/synthutils.js:162 +#.TRANS: musical instrument +msgid "taiko" msgstr "" -#: js/WidgetBlocks.js:1036 -msgid "G major scale" +#: js/blocks/ActionBlocks.js:58 +msgid "The Return block will return a value from an action." msgstr "" -#: js/WidgetBlocks.js:1064 -msgid "C major scale" -msgstr "" +#: js/blocks/ActionBlocks.js:75 +msgid "return" +msgstr "Zurück" -#: js/WidgetBlocks.js:1097 -msgid "The Phrase Maker block opens a tool to create musical phrases." +#: js/blocks/ActionBlocks.js:128 +msgid "The Return to URL block will return a value to a webpage." msgstr "" -#: js/WidgetBlocks.js:1104 -#.TRANS: assigns pitch to a sequence of beats to generate a melody -msgid "phrase maker" +#: js/blocks/ActionBlocks.js:145 +msgid "return to URL" +msgstr "Zurück zur URL" + +#: js/blocks/ActionBlocks.js:233 +#: js/blocks/ActionBlocks.js:290 +#: js/blocks/ActionBlocks.js:501 +#: js/blocks/ActionBlocks.js:688 +msgid "The Calculate block returns a value calculated by an action." msgstr "" -#: js/WidgetBlocks.js:1168 -msgid "You must have at least one pitch block and one rhythm block in the matrix." -msgstr "Du musst mindestens einen Tonlagen-Block und einen Rhythmus-Block in deiner Matrix haben" +#: js/blocks/ActionBlocks.js:251 +#: js/blocks/ActionBlocks.js:517 +#: js/blocks/ActionBlocks.js:707 +msgid "calculate" +msgstr "Berechne" -#: js/WidgetBlocks.js:1220 -msgid "The Status block opens a tool for inspecting the status of Music Blocks as it is running." +#: js/blocks/ActionBlocks.js:376 +#: js/blocks/ActionBlocks.js:593 +#: js/blocks/ActionBlocks.js:942 +#: js/blocks/ActionBlocks.js:1389 +#.TRANS: do is the do something or take an action. +msgid "The Do block is used to initiate an action." msgstr "" -#: js/IntervalsBlocks.js:45 -msgid "set temperament" +#: js/blocks/ActionBlocks.js:390 +#: js/blocks/ActionBlocks.js:610 +#: js/blocks/ActionBlocks.js:959 +#: js/blocks/ActionBlocks.js:1048 +#: js/blocks/MeterBlocks.js:769 +msgid "do1" msgstr "" -#: js/IntervalsBlocks.js:63 -#: js/MediaBlocks.js:746 -#: js/PitchBlocks.js:657 -#: js/PitchBlocks.js:933 -#: js/PitchBlocks.js:972 -#: js/PitchBlocks.js:1005 -#: js/PitchBlocks.js:1166 -#: js/PitchBlocks.js:1679 -#: js/PitchBlocks.js:1720 -#: js/PitchBlocks.js:1827 -#: js/ToneBlocks.js:1025 -#.TRANS: adjusts the shift up or down by one octave (twelve half-steps in the interval between two notes, one having twice or half the frequency in Hz of the other.) -msgid "octave" -msgstr "Oktave" - -#: js/IntervalsBlocks.js:99 -msgid "The Temperament name block is used to select a tuning method." -msgstr "" +#: js/blocks/ActionBlocks.js:390 +#: js/blocks/ActionBlocks.js:610 +#: js/blocks/ActionBlocks.js:959 +#: js/blocks/ActionBlocks.js:1048 +#: js/blocks/FlowBlocks.js:742 +#: js/blocks/FlowBlocks.js:822 +#: js/blocks/MeterBlocks.js:769 +msgid "do" +msgstr "Mache" -#: js/IntervalsBlocks.js:161 -msgid "doubly" +#: js/blocks/ActionBlocks.js:791 +#: js/blocks/ActionBlocks.js:865 +msgid "The Arg block contains the value of an argument passed to an action." msgstr "" -#: js/IntervalsBlocks.js:166 -msgid "The Doubly block will double the size of an interval." +#: js/blocks/ActionBlocks.js:806 +#: js/blocks/ActionBlocks.js:878 +msgid "arg" msgstr "" -#: js/IntervalsBlocks.js:262 -msgid "interval number" +#: js/blocks/ActionBlocks.js:836 +#: js/blocks/ActionBlocks.js:900 +#: js/blocks/ActionBlocks.js:908 +msgid "Invalid argument" msgstr "" -#: js/IntervalsBlocks.js:330 -#.TRANS: measure the distance between two pitches in semi-tones -msgid "semi-tone interval measure" +#: js/blocks/ActionBlocks.js:944 +msgid "In the example, it is used with the One of block to choose a random phase." msgstr "" -#: js/IntervalsBlocks.js:397 -#: js/IntervalsBlocks.js:513 -msgid "You must use two pitch blocks when measuring an interval." +#: js/blocks/ActionBlocks.js:1019 +#: js/blocks/ActionBlocks.js:1026 +msgid "The Listen block is used to listen for an event such as a mouse click." msgstr "" -#: js/IntervalsBlocks.js:439 -msgid "The Scalar interval block measures the distance between two notes in the current key and mode." +#: js/blocks/ActionBlocks.js:1028 +msgid "When the event happens, an action is taken." msgstr "" -#: js/IntervalsBlocks.js:445 -#.TRANS: measure the distance between two pitches in steps of musical scale -msgid "scalar interval measure" -msgstr "" +#: js/blocks/ActionBlocks.js:1045 +msgid "on" +msgstr "ein" -#: js/IntervalsBlocks.js:592 -#: js/musicutils.js:637 -#: js/musicutils.js:908 -#.TRANS: perfect is a music term related to intervals -msgid "perfect" -msgstr "rein" +#: js/blocks/ActionBlocks.js:1048 +#: js/blocks/ActionBlocks.js:1049 +#: js/blocks/ActionBlocks.js:1153 +msgid "event" +msgstr "Vorgang" -#: js/IntervalsBlocks.js:621 -msgid "In the figure, we add sol# to sol." +#: js/blocks/ActionBlocks.js:1133 +msgid "The Broadcast block is used to trigger an event." msgstr "" -#: js/IntervalsBlocks.js:627 -#: js/OrnamentBlocks.js:220 -#.TRANS: calculate a relative step between notes based on semi-tones -msgid "semi-tone interval" -msgstr "" +#: js/blocks/ActionBlocks.js:1151 +msgid "broadcast" +msgstr "übertrage" -#: js/IntervalsBlocks.js:676 -msgid "The output of the example is: do, mi, sol, sol, ti, mi" +#: js/blocks/ActionBlocks.js:1208 +msgid "Each Start block is a separate voice." msgstr "" -#: js/IntervalsBlocks.js:735 -msgid "The Chord block calculates common chords." +#: js/blocks/ActionBlocks.js:1304 +msgid "It is often used for storing a phrase of music that is repeated." msgstr "" -#: js/IntervalsBlocks.js:737 -msgid "In the figure, we generate a C-major chord." +#: js/blocks/ActionBlocks.js:1495 +msgid "define temperament" msgstr "" -#: js/IntervalsBlocks.js:742 -msgid "chord" +#: js/blocks/BooleanBlocks.js:44 +msgid "The Not block is the logical not operator." msgstr "" -#: js/IntervalsBlocks.js:794 -msgid "The Ratio Interval block calculates an interval based on a ratio." -msgstr "" +#: js/blocks/BooleanBlocks.js:62 +msgid "not" +msgstr "nicht" -#: js/IntervalsBlocks.js:799 -msgid "ratio interval" +#: js/blocks/BooleanBlocks.js:134 +msgid "The And block is the logical and operator." msgstr "" -#: js/IntervalsBlocks.js:868 -msgid "In the figure, we add la to sol." +#: js/blocks/BooleanBlocks.js:152 +msgid "and" +msgstr "und" + +#: js/blocks/BooleanBlocks.js:218 +msgid "The Or block is the logical or operator." msgstr "" -#: js/IntervalsBlocks.js:924 -#.TRANS: define a custom mode -msgid "define mode" +#: js/blocks/BooleanBlocks.js:236 +msgid "or" +msgstr "oder" + +#: js/blocks/BooleanBlocks.js:302 +msgid "The XOR block is the logical XOR operator." msgstr "" -#: js/IntervalsBlocks.js:977 -msgid "movable Do" +#: js/blocks/BooleanBlocks.js:320 +msgid "xor" msgstr "" -#: js/IntervalsBlocks.js:1028 -#.TRANS: mode length is the number of notes in the mode, e.g., 7 for major and minor scales; 12 for chromatic scales -msgid "mode length" +#: js/blocks/BooleanBlocks.js:808 +msgid "The Equal block returns True if the two numbers are equal." msgstr "" -#: js/IntervalsBlocks.js:1037 -msgid "The Mode length block is the number of notes in the current scale." +#: js/blocks/BooleanBlocks.js:909 +msgid "The Not-equal-to block returns True if the two numbers are not equal to each other." msgstr "" -#: js/IntervalsBlocks.js:1039 -msgid "Most Western scales have 7 notes." +#: js/blocks/BooleanBlocks.js:1008 +msgid "The Boolean block is used to specify true or false." msgstr "" -#: js/IntervalsBlocks.js:1088 -#.TRANS: the mode in music is 'major', 'minor', etc. -msgid "current mode" +#: js/blocks/BoxesBlocks.js:53 +#: js/blocks/BoxesBlocks.js:59 +msgid "The Add-to block is used to add to the value stored in a box." msgstr "" -#: js/IntervalsBlocks.js:1141 -#.TRANS: the key is a group of pitches with which a music composition is created -msgid "current key" +#: js/blocks/BoxesBlocks.js:61 +msgid "It can also be used with other blocks such as Color and Pen size." msgstr "" -#: js/IntervalsBlocks.js:1193 -#: js/IntervalsBlocks.js:1238 -#.TRANS: set the key and mode, e.g. C Major -msgid "set key" -msgstr "Notenschlüssel auswählen" +#: js/blocks/BoxesBlocks.js:73 +msgid "add" +msgstr "addiere" -#: js/IntervalsBlocks.js:1247 -#: js/IntervalsBlocks.js:1253 -msgid "The Set key block is used to set the key and mode," -msgstr "" +#: js/blocks/BoxesBlocks.js:75 +#: js/widgets/temperament.js:857 +msgid "to" +msgstr "zu" -#: js/IntervalsBlocks.js:1253 -msgid "eg C Major" +#: js/blocks/BoxesBlocks.js:75 +#: js/blocks/BoxesBlocks.js:595 +#: js/blocks/HeapBlocks.js:544 +msgid "value1" msgstr "" -#: js/IntervalsBlocks.js:1266 -#: js/DictBlocks.js:215 -#: js/DictBlocks.js:216 -#: js/DictBlocks.js:289 -#: js/DictBlocks.js:290 -#: js/DictBlocks.js:357 -#: js/DictBlocks.js:430 -#: js/DictBlocks.js:431 -#.TRANS: key, e.g., C in C Major -msgid "key" -msgstr "Schlüssel" +#: js/blocks/BoxesBlocks.js:118 +msgid "Block does not support incrementing." +msgstr "Der Block unterstützt den Zuwachs nicht" -#: js/ActionBlocks.js:58 -msgid "The Return block will return a value from an action." +#: js/blocks/BoxesBlocks.js:152 +msgid "The Add-1-to block adds one to the value stored in a box." msgstr "" -#: js/ActionBlocks.js:75 -msgid "return" -msgstr "Zurück" +#: js/blocks/BoxesBlocks.js:163 +msgid "add 1 to" +msgstr "addiere 1 zu" -#: js/ActionBlocks.js:128 -msgid "The Return to URL block will return a value to a webpage." +#: js/blocks/BoxesBlocks.js:211 +msgid "The Subtract-1-from block subtracts one from the value stored in a box." msgstr "" -#: js/ActionBlocks.js:145 -msgid "return to URL" -msgstr "Zurück zur URL" - -#: js/ActionBlocks.js:233 -#: js/ActionBlocks.js:290 -#: js/ActionBlocks.js:501 -#: js/ActionBlocks.js:688 -msgid "The Calculate block returns a value calculated by an action." +#: js/blocks/BoxesBlocks.js:222 +msgid "subtract 1 from" msgstr "" -#: js/ActionBlocks.js:251 -#: js/ActionBlocks.js:517 -#: js/ActionBlocks.js:707 -msgid "calculate" -msgstr "Berechne" +#: js/blocks/BoxesBlocks.js:270 +#: js/blocks/BoxesBlocks.js:387 +msgid "The Box block returns the value stored in a box." +msgstr "" -#: js/ActionBlocks.js:376 -#: js/ActionBlocks.js:593 -#: js/ActionBlocks.js:942 -#: js/ActionBlocks.js:1389 -#.TRANS: do is the do something or take an action. -msgid "The Do block is used to initiate an action." +#: js/blocks/BoxesBlocks.js:500 +#: js/blocks/BoxesBlocks.js:576 +msgid "The Store in block will store a value in a box." msgstr "" -#: js/ActionBlocks.js:390 -#: js/ActionBlocks.js:610 -#: js/ActionBlocks.js:959 -#: js/ActionBlocks.js:1048 -#: js/MeterBlocks.js:769 -msgid "do1" +#: js/blocks/BoxesBlocks.js:595 +#: js/blocks/EnsembleBlocks.js:391 +#: js/blocks/EnsembleBlocks.js:402 +msgid "name1" msgstr "" -#: js/ActionBlocks.js:390 -#: js/ActionBlocks.js:610 -#: js/ActionBlocks.js:959 -#: js/ActionBlocks.js:1048 -#: js/FlowBlocks.js:742 -#: js/FlowBlocks.js:822 -#: js/MeterBlocks.js:769 -msgid "do" -msgstr "Mache" +#: js/blocks/BoxesBlocks.js:652 +msgid "The Box2 block returns the value stored in Box2." +msgstr "" -#: js/ActionBlocks.js:791 -#: js/ActionBlocks.js:865 -msgid "The Arg block contains the value of an argument passed to an action." +#: js/blocks/BoxesBlocks.js:703 +msgid "The Store in Box2 block is used to store a value in Box2." msgstr "" -#: js/ActionBlocks.js:806 -#: js/ActionBlocks.js:878 -msgid "arg" +#: js/blocks/BoxesBlocks.js:715 +msgid "store in box2" msgstr "" -#: js/ActionBlocks.js:836 -#: js/ActionBlocks.js:900 -#: js/ActionBlocks.js:908 -msgid "Invalid argument" +#: js/blocks/BoxesBlocks.js:761 +msgid "The Box1 block returns the value stored in Box1." msgstr "" -#: js/ActionBlocks.js:944 -msgid "In the example, it is used with the One of block to choose a random phase." +#: js/blocks/BoxesBlocks.js:812 +msgid "The Store in Box1 block is used to store a value in Box1." msgstr "" -#: js/ActionBlocks.js:1019 -#: js/ActionBlocks.js:1026 -msgid "The Listen block is used to listen for an event such as a mouse click." +#: js/blocks/BoxesBlocks.js:826 +msgid "store in box1" msgstr "" -#: js/ActionBlocks.js:1028 -msgid "When the event happens, an action is taken." +#: js/blocks/DictBlocks.js:77 +msgid "show dictionary" msgstr "" -#: js/ActionBlocks.js:1045 -msgid "on" -msgstr "ein" +#: js/blocks/DictBlocks.js:80 +#: js/blocks/DictBlocks.js:145 +#: js/blocks/DictBlocks.js:216 +#: js/blocks/DictBlocks.js:290 +#: js/blocks/ProgramBlocks.js:396 +#: js/blocks/ProgramBlocks.js:501 +#: js/blocks/ProgramBlocks.js:664 +msgid "My Dictionary" +msgstr "" -#: js/ActionBlocks.js:1048 -#: js/ActionBlocks.js:1049 -#: js/ActionBlocks.js:1153 -msgid "event" -msgstr "Vorgang" +#: js/blocks/DictBlocks.js:129 +msgid "The Dictionary block returns a dictionary." +msgstr "" -#: js/ActionBlocks.js:1133 -msgid "The Broadcast block is used to trigger an event." +#: js/blocks/DictBlocks.js:197 +#: js/blocks/DictBlocks.js:339 +msgid "The Get-dict block returns a value in the dictionary for a specified key." msgstr "" -#: js/ActionBlocks.js:1151 -msgid "broadcast" -msgstr "übertrage" +#: js/blocks/DictBlocks.js:212 +#: js/blocks/DictBlocks.js:354 +#.TRANS: retrieve a value from the dictionary with a given key +msgid "get value" +msgstr "" -#: js/ActionBlocks.js:1208 -msgid "Each Start block is a separate voice." +#: js/blocks/DictBlocks.js:215 +#: js/blocks/DictBlocks.js:216 +#: js/blocks/DictBlocks.js:289 +#: js/blocks/DictBlocks.js:290 +#: js/blocks/DictBlocks.js:357 +#: js/blocks/DictBlocks.js:430 +#: js/blocks/DictBlocks.js:431 +msgid "key2" msgstr "" -#: js/ActionBlocks.js:1304 -msgid "It is often used for storing a phrase of music that is repeated." +#: js/blocks/DictBlocks.js:215 +#: js/blocks/DictBlocks.js:216 +#: js/blocks/DictBlocks.js:289 +#: js/blocks/DictBlocks.js:290 +#: js/blocks/DictBlocks.js:357 +#: js/blocks/DictBlocks.js:430 +#: js/blocks/DictBlocks.js:431 +#: js/blocks/IntervalsBlocks.js:1462 +#.TRANS: key, e.g., C in C Major +msgid "key" +msgstr "Schlüssel" + +#: js/blocks/DictBlocks.js:271 +#: js/blocks/DictBlocks.js:411 +msgid "The Set-dict block sets a value in the dictionary for a specified key." msgstr "" -#: js/ActionBlocks.js:1495 -msgid "define temperament" +#: js/blocks/DictBlocks.js:286 +#: js/blocks/DictBlocks.js:427 +#.TRANS: set a value in the dictionary for a given key +msgid "set value" msgstr "" -#: js/EnsembleBlocks.js:66 +#: js/blocks/EnsembleBlocks.js:66 msgid "mouse index heap" msgstr "" -#: js/EnsembleBlocks.js:68 +#: js/blocks/EnsembleBlocks.js:68 msgid "The Mouse index heap block returns a value in the heap at a specified location for a specified mouse." msgstr "" -#: js/EnsembleBlocks.js:77 -#: js/EnsembleBlocks.js:1080 +#: js/blocks/EnsembleBlocks.js:77 +#: js/blocks/EnsembleBlocks.js:1080 msgid "mouse name" msgstr "" -#: js/EnsembleBlocks.js:77 -#: js/EnsembleBlocks.js:92 -#: js/HeapBlocks.js:544 +#: js/blocks/EnsembleBlocks.js:77 +#: js/blocks/EnsembleBlocks.js:92 +#: js/blocks/HeapBlocks.js:544 #.TRANS: value1 is a numeric value (JAPANESE ONLY) msgid "index" msgstr "Index" -#: js/EnsembleBlocks.js:80 +#: js/blocks/EnsembleBlocks.js:80 msgid "turtle index heap" msgstr "" -#: js/EnsembleBlocks.js:82 +#: js/blocks/EnsembleBlocks.js:82 msgid "The Turtle index heap block returns a value in the heap at a specified location for a specified turtle." msgstr "" -#: js/EnsembleBlocks.js:90 -#: js/EnsembleBlocks.js:167 -#: js/EnsembleBlocks.js:230 -#: js/EnsembleBlocks.js:316 -#: js/EnsembleBlocks.js:362 -#: js/EnsembleBlocks.js:400 -#: js/EnsembleBlocks.js:454 -#: js/EnsembleBlocks.js:504 -#: js/EnsembleBlocks.js:550 -#: js/EnsembleBlocks.js:597 -#: js/EnsembleBlocks.js:651 -#: js/EnsembleBlocks.js:763 -#: js/EnsembleBlocks.js:854 -#: js/EnsembleBlocks.js:915 -#: js/EnsembleBlocks.js:955 -#: js/EnsembleBlocks.js:1219 -#: js/EnsembleBlocks.js:1293 +#: js/blocks/EnsembleBlocks.js:90 +#: js/blocks/EnsembleBlocks.js:167 +#: js/blocks/EnsembleBlocks.js:230 +#: js/blocks/EnsembleBlocks.js:316 +#: js/blocks/EnsembleBlocks.js:362 +#: js/blocks/EnsembleBlocks.js:400 +#: js/blocks/EnsembleBlocks.js:454 +#: js/blocks/EnsembleBlocks.js:504 +#: js/blocks/EnsembleBlocks.js:550 +#: js/blocks/EnsembleBlocks.js:597 +#: js/blocks/EnsembleBlocks.js:651 +#: js/blocks/EnsembleBlocks.js:763 +#: js/blocks/EnsembleBlocks.js:854 +#: js/blocks/EnsembleBlocks.js:915 +#: js/blocks/EnsembleBlocks.js:955 +#: js/blocks/EnsembleBlocks.js:1219 +#: js/blocks/EnsembleBlocks.js:1293 #.TRANS: Yertle is the name of a turtle. msgid "Yertle" msgstr "" -#: js/EnsembleBlocks.js:92 -#: js/EnsembleBlocks.js:1089 +#: js/blocks/EnsembleBlocks.js:92 +#: js/blocks/EnsembleBlocks.js:1089 msgid "turtle name" msgstr "Name der Schildkröte" -#: js/EnsembleBlocks.js:122 -#: js/EnsembleBlocks.js:1197 -#: js/HeapBlocks.js:474 -#: js/HeapBlocks.js:572 +#: js/blocks/EnsembleBlocks.js:122 +#: js/blocks/EnsembleBlocks.js:1197 +#: js/blocks/HeapBlocks.js:474 +#: js/blocks/HeapBlocks.js:572 msgid "Index must be > 0." msgstr "Index muss > 0 sein" -#: js/EnsembleBlocks.js:127 -#: js/HeapBlocks.js:479 -#: js/HeapBlocks.js:577 +#: js/blocks/EnsembleBlocks.js:127 +#: js/blocks/HeapBlocks.js:479 +#: js/blocks/HeapBlocks.js:577 msgid "Maximum heap size is 1000." msgstr "" -#: js/EnsembleBlocks.js:145 +#: js/blocks/EnsembleBlocks.js:145 msgid "stop mouse" msgstr "" -#: js/EnsembleBlocks.js:147 +#: js/blocks/EnsembleBlocks.js:147 msgid "The Stop mouse block stops the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:158 +#: js/blocks/EnsembleBlocks.js:158 msgid "stop turtle" msgstr "Hakte die Schildkröte an" -#: js/EnsembleBlocks.js:160 +#: js/blocks/EnsembleBlocks.js:160 msgid "The Stop turtle block stops the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:184 -#: js/EnsembleBlocks.js:247 -#: js/EnsembleBlocks.js:413 -#: js/EnsembleBlocks.js:468 -#: js/EnsembleBlocks.js:706 -#: js/EnsembleBlocks.js:808 -#: js/EnsembleBlocks.js:870 -#: js/EnsembleBlocks.js:1190 -#: js/EnsembleBlocks.js:1253 +#: js/blocks/EnsembleBlocks.js:184 +#: js/blocks/EnsembleBlocks.js:247 +#: js/blocks/EnsembleBlocks.js:413 +#: js/blocks/EnsembleBlocks.js:468 +#: js/blocks/EnsembleBlocks.js:706 +#: js/blocks/EnsembleBlocks.js:808 +#: js/blocks/EnsembleBlocks.js:870 +#: js/blocks/EnsembleBlocks.js:1190 +#: js/blocks/EnsembleBlocks.js:1253 msgid "Cannot find mouse" msgstr "" -#: js/EnsembleBlocks.js:186 -#: js/EnsembleBlocks.js:249 -#: js/EnsembleBlocks.js:415 -#: js/EnsembleBlocks.js:470 -#: js/EnsembleBlocks.js:708 -#: js/EnsembleBlocks.js:810 -#: js/EnsembleBlocks.js:872 -#: js/EnsembleBlocks.js:1192 -#: js/EnsembleBlocks.js:1255 +#: js/blocks/EnsembleBlocks.js:186 +#: js/blocks/EnsembleBlocks.js:249 +#: js/blocks/EnsembleBlocks.js:415 +#: js/blocks/EnsembleBlocks.js:470 +#: js/blocks/EnsembleBlocks.js:708 +#: js/blocks/EnsembleBlocks.js:810 +#: js/blocks/EnsembleBlocks.js:872 +#: js/blocks/EnsembleBlocks.js:1192 +#: js/blocks/EnsembleBlocks.js:1255 msgid "Cannot find turtle" msgstr "" -#: js/EnsembleBlocks.js:206 +#: js/blocks/EnsembleBlocks.js:206 msgid "start mouse" msgstr "" -#: js/EnsembleBlocks.js:209 +#: js/blocks/EnsembleBlocks.js:209 msgid "The Start mouse block starts the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:220 +#: js/blocks/EnsembleBlocks.js:220 msgid "start turtle" msgstr "Starte die Schildkröte" -#: js/EnsembleBlocks.js:223 +#: js/blocks/EnsembleBlocks.js:223 msgid "The Start turtle block starts the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:256 +#: js/blocks/EnsembleBlocks.js:256 msgid "Mouse is already running." msgstr "" -#: js/EnsembleBlocks.js:258 +#: js/blocks/EnsembleBlocks.js:258 msgid "Turtle is already running." msgstr "" -#: js/EnsembleBlocks.js:282 +#: js/blocks/EnsembleBlocks.js:282 msgid "Cannot find start block" msgstr "" -#: js/EnsembleBlocks.js:292 +#: js/blocks/EnsembleBlocks.js:292 #.TRANS: pen color for this mouse msgid "mouse color" msgstr "" -#: js/EnsembleBlocks.js:294 +#: js/blocks/EnsembleBlocks.js:294 msgid "The Mouse color block returns the pen color of the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:306 +#: js/blocks/EnsembleBlocks.js:306 #.TRANS: pen color for this turtle msgid "turtle color" msgstr "" -#: js/EnsembleBlocks.js:308 +#: js/blocks/EnsembleBlocks.js:308 msgid "The Turtle color block returns the pen color of the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:338 +#: js/blocks/EnsembleBlocks.js:338 #.TRANS: heading (compass direction) for this mouse msgid "mouse heading" msgstr "" -#: js/EnsembleBlocks.js:340 +#: js/blocks/EnsembleBlocks.js:340 msgid "The Mouse heading block returns the heading of the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:352 +#: js/blocks/EnsembleBlocks.js:352 #.TRANS: heading (compass direction) for this turtle msgid "turtle heading" msgstr "" -#: js/EnsembleBlocks.js:354 +#: js/blocks/EnsembleBlocks.js:354 msgid "The Turtle heading block returns the heading of the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:384 -#: js/EnsembleBlocks.js:439 +#: js/blocks/EnsembleBlocks.js:384 +#: js/blocks/EnsembleBlocks.js:439 #.TRANS: set xy position for this mouse msgid "set mouse" msgstr "" -#: js/EnsembleBlocks.js:391 -#: js/EnsembleBlocks.js:402 -#: js/BoxesBlocks.js:595 -msgid "name1" -msgstr "" - -#: js/EnsembleBlocks.js:391 -#: js/EnsembleBlocks.js:402 -#: js/ProgramBlocks.js:881 -#: js/GraphicsBlocks.js:235 -#: js/GraphicsBlocks.js:313 -#: js/GraphicsBlocks.js:436 -#: js/GraphicsBlocks.js:487 -#: js/GraphicsBlocks.js:534 -#: js/GraphicsBlocks.js:750 +#: js/blocks/EnsembleBlocks.js:391 +#: js/blocks/EnsembleBlocks.js:402 +#: js/blocks/GraphicsBlocks.js:235 +#: js/blocks/GraphicsBlocks.js:313 +#: js/blocks/GraphicsBlocks.js:436 +#: js/blocks/GraphicsBlocks.js:487 +#: js/blocks/GraphicsBlocks.js:534 +#: js/blocks/GraphicsBlocks.js:750 +#: js/blocks/ProgramBlocks.js:881 msgid "x" msgstr "x" -#: js/EnsembleBlocks.js:391 -#: js/EnsembleBlocks.js:402 -#: js/ProgramBlocks.js:881 -#: js/GraphicsBlocks.js:149 -#: js/GraphicsBlocks.js:313 -#: js/GraphicsBlocks.js:436 -#: js/GraphicsBlocks.js:487 -#: js/GraphicsBlocks.js:534 -#: js/GraphicsBlocks.js:750 +#: js/blocks/EnsembleBlocks.js:391 +#: js/blocks/EnsembleBlocks.js:402 +#: js/blocks/GraphicsBlocks.js:149 +#: js/blocks/GraphicsBlocks.js:313 +#: js/blocks/GraphicsBlocks.js:436 +#: js/blocks/GraphicsBlocks.js:487 +#: js/blocks/GraphicsBlocks.js:534 +#: js/blocks/GraphicsBlocks.js:750 +#: js/blocks/ProgramBlocks.js:881 msgid "y" msgstr "y" -#: js/EnsembleBlocks.js:395 -#: js/EnsembleBlocks.js:452 +#: js/blocks/EnsembleBlocks.js:395 +#: js/blocks/EnsembleBlocks.js:452 #.TRANS: set xy position for this turtle msgid "set turtle" msgstr "" -#: js/EnsembleBlocks.js:433 +#: js/blocks/EnsembleBlocks.js:433 msgid "The Set mouse block sends a stack of blocks to be run by the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:446 +#: js/blocks/EnsembleBlocks.js:446 msgid "The Set turtle block sends a stack of blocks to be run by the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:480 +#: js/blocks/EnsembleBlocks.js:480 #.TRANS: y position for this mouse msgid "mouse y" msgstr "Maus-y" -#: js/EnsembleBlocks.js:482 +#: js/blocks/EnsembleBlocks.js:482 msgid "The Y mouse block returns the Y position of the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:494 +#: js/blocks/EnsembleBlocks.js:494 #.TRANS: y position for this turtle msgid "turtle y" msgstr "Schildkröten-y" -#: js/EnsembleBlocks.js:496 +#: js/blocks/EnsembleBlocks.js:496 msgid "The Y turtle block returns the Y position of the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:526 +#: js/blocks/EnsembleBlocks.js:526 #.TRANS: x position for this mouse msgid "mouse x" msgstr "Maus-x" -#: js/EnsembleBlocks.js:528 +#: js/blocks/EnsembleBlocks.js:528 msgid "The X mouse block returns the X position of the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:540 +#: js/blocks/EnsembleBlocks.js:540 #.TRANS: x position for this turtle msgid "turtle x" msgstr "Schildkröten-x" -#: js/EnsembleBlocks.js:542 +#: js/blocks/EnsembleBlocks.js:542 msgid "The X turtle block returns the X position of the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:573 +#: js/blocks/EnsembleBlocks.js:573 #.TRANS: notes played by this mouse msgid "mouse notes played" msgstr "" -#: js/EnsembleBlocks.js:575 +#: js/blocks/EnsembleBlocks.js:575 msgid "The Mouse elapse notes block returns the number of notes played by the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:587 +#: js/blocks/EnsembleBlocks.js:587 #.TRANS: notes played by this turtle msgid "turtle notes played" msgstr "" -#: js/EnsembleBlocks.js:589 +#: js/blocks/EnsembleBlocks.js:589 msgid "The Turtle elapse notes block returns the number of notes played by the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:627 +#: js/blocks/EnsembleBlocks.js:627 #.TRANS: convert current note for this turtle to piano key (1-88) msgid "mouse pitch number" msgstr "" -#: js/EnsembleBlocks.js:629 +#: js/blocks/EnsembleBlocks.js:629 msgid "The Mouse pitch block returns the current pitch number being played by the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:641 +#: js/blocks/EnsembleBlocks.js:641 #.TRANS: convert current note for this turtle to piano key (1-88) msgid "turtle pitch number" msgstr "Nummer für Tonlage der Schildkröte festlegen" -#: js/EnsembleBlocks.js:643 -msgid "The Turrle pitch block returns the current pitch number being played by the specified turtle." +#: js/blocks/EnsembleBlocks.js:643 +msgid "The Turtle pitch block returns the current pitch number being played by the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:747 -#: js/EnsembleBlocks.js:819 +#: js/blocks/EnsembleBlocks.js:747 +#: js/blocks/EnsembleBlocks.js:819 #.TRANS: note value is the duration of the note played by this mouse msgid "mouse note value" msgstr "" -#: js/EnsembleBlocks.js:757 +#: js/blocks/EnsembleBlocks.js:757 #.TRANS: note value is the duration of the note played by this turtle msgid "turtle note value" msgstr "Schildkröten-Noten-Wert" -#: js/EnsembleBlocks.js:830 +#: js/blocks/EnsembleBlocks.js:830 #.TRANS: sync is short for synchronization msgid "mouse sync" msgstr "" -#: js/EnsembleBlocks.js:832 +#: js/blocks/EnsembleBlocks.js:832 msgid "The Mouse sync block aligns the beat count between mice." msgstr "" -#: js/EnsembleBlocks.js:844 +#: js/blocks/EnsembleBlocks.js:844 #.TRANS: sync is short for synchronization msgid "turtle sync" msgstr "" -#: js/EnsembleBlocks.js:846 +#: js/blocks/EnsembleBlocks.js:846 msgid "The Turtle sync block aligns the beat count between turtles." msgstr "" -#: js/EnsembleBlocks.js:887 +#: js/blocks/EnsembleBlocks.js:887 msgid "The Found mouse block will return true if the specified mouse can be found." msgstr "" -#: js/EnsembleBlocks.js:893 +#: js/blocks/EnsembleBlocks.js:893 msgid "found mouse" msgstr "" -#: js/EnsembleBlocks.js:903 +#: js/blocks/EnsembleBlocks.js:903 msgid "The Found turtle block will return true if the specified turtle can be found." msgstr "" -#: js/EnsembleBlocks.js:909 +#: js/blocks/EnsembleBlocks.js:909 msgid "found turtle" msgstr "" -#: js/EnsembleBlocks.js:932 +#: js/blocks/EnsembleBlocks.js:932 msgid "new mouse" msgstr "" -#: js/EnsembleBlocks.js:934 +#: js/blocks/EnsembleBlocks.js:934 msgid "The New mouse block will create a new mouse." msgstr "" -#: js/EnsembleBlocks.js:945 +#: js/blocks/EnsembleBlocks.js:945 msgid "new turtle" msgstr "" -#: js/EnsembleBlocks.js:947 +#: js/blocks/EnsembleBlocks.js:947 msgid "The New turtle block will create a new turtle." msgstr "" -#: js/EnsembleBlocks.js:1011 +#: js/blocks/EnsembleBlocks.js:1011 msgid "set mouse color" msgstr "" -#: js/EnsembleBlocks.js:1014 +#: js/blocks/EnsembleBlocks.js:1014 msgid "The Set-mouse-color block is used to set the color of a mouse." msgstr "" -#: js/EnsembleBlocks.js:1020 +#: js/blocks/EnsembleBlocks.js:1020 msgid "set turtle color" msgstr "" -#: js/EnsembleBlocks.js:1023 +#: js/blocks/EnsembleBlocks.js:1023 msgid "The Set-turtle-color block is used to set the color of a turtle." msgstr "" -#: js/EnsembleBlocks.js:1083 +#: js/blocks/EnsembleBlocks.js:1083 msgid "The Mouse-name block returns the name of a mouse." msgstr "" -#: js/EnsembleBlocks.js:1092 +#: js/blocks/EnsembleBlocks.js:1092 msgid "The Turtle-name block returns the name of a turtle." msgstr "" -#: js/EnsembleBlocks.js:1115 +#: js/blocks/EnsembleBlocks.js:1115 msgid "mouse count" msgstr "" -#: js/EnsembleBlocks.js:1118 +#: js/blocks/EnsembleBlocks.js:1118 msgid "The Mouse-count block returns the number of mice." msgstr "" -#: js/EnsembleBlocks.js:1124 +#: js/blocks/EnsembleBlocks.js:1124 msgid "turtle count" msgstr "" -#: js/EnsembleBlocks.js:1127 +#: js/blocks/EnsembleBlocks.js:1127 msgid "The Turtle-count block returns the number of turtles." msgstr "" -#: js/EnsembleBlocks.js:1149 +#: js/blocks/EnsembleBlocks.js:1149 msgid "nth mouse name" msgstr "" -#: js/EnsembleBlocks.js:1152 +#: js/blocks/EnsembleBlocks.js:1152 msgid "The Nth-Mouse name block returns the name of the nth mouse." msgstr "" -#: js/EnsembleBlocks.js:1158 +#: js/blocks/EnsembleBlocks.js:1158 msgid "nth turtle name" msgstr "" -#: js/EnsembleBlocks.js:1161 +#: js/blocks/EnsembleBlocks.js:1161 msgid "The Nth-Turtle name block returns the name of the nth turtle." msgstr "" -#: js/EnsembleBlocks.js:1205 -#: js/EnsembleBlocks.js:1265 +#: js/blocks/EnsembleBlocks.js:1205 +#: js/blocks/EnsembleBlocks.js:1265 msgid "set name" msgstr "" -#: js/EnsembleBlocks.js:1214 -#: js/EnsembleBlocks.js:1221 +#: js/blocks/EnsembleBlocks.js:1214 +#: js/blocks/EnsembleBlocks.js:1221 msgid "source" msgstr "Quelle" -#: js/EnsembleBlocks.js:1214 -#: js/EnsembleBlocks.js:1221 +#: js/blocks/EnsembleBlocks.js:1214 +#: js/blocks/EnsembleBlocks.js:1221 msgid "target" msgstr "Ziel" -#: js/EnsembleBlocks.js:1271 +#: js/blocks/EnsembleBlocks.js:1271 msgid "The Set-name block is used to name a mouse." msgstr "" -#: js/EnsembleBlocks.js:1284 +#: js/blocks/EnsembleBlocks.js:1284 msgid "The Set-name block is used to name a turtle." msgstr "" -#: js/BooleanBlocks.js:44 -msgid "The Not block is the logical not operator." -msgstr "" - -#: js/BooleanBlocks.js:62 -msgid "not" -msgstr "nicht" - -#: js/BooleanBlocks.js:134 -msgid "The And block is the logical and operator." -msgstr "" - -#: js/BooleanBlocks.js:152 -msgid "and" -msgstr "und" - -#: js/BooleanBlocks.js:218 -msgid "The Or block is the logical or operator." -msgstr "" - -#: js/BooleanBlocks.js:236 -msgid "or" -msgstr "oder" - -#: js/BooleanBlocks.js:302 -msgid "The XOR block is the logical XOR operator." -msgstr "" - -#: js/BooleanBlocks.js:320 -msgid "xor" -msgstr "" - -#: js/BooleanBlocks.js:808 -msgid "The Equal block returns True if the two numbers are equal." -msgstr "" - -#: js/BooleanBlocks.js:909 -msgid "The Not-equal-to block returns True if the two numbers are not equal to each other." -msgstr "" - -#: js/BooleanBlocks.js:1008 -msgid "The Boolean block is used to specify true or false." -msgstr "" - -#: js/MediaBlocks.js:35 -#.TRANS: right side of the screen -msgid "right (screen)" -msgstr "" - -#: js/MediaBlocks.js:45 -#: js/MediaBlocks.js:56 -msgid "The Right block returns the position of the right of the canvas." -msgstr "" - -#: js/MediaBlocks.js:97 -#.TRANS: left side of the screen -msgid "left (screen)" -msgstr "" - -#: js/MediaBlocks.js:107 -#: js/MediaBlocks.js:118 -msgid "The Left block returns the position of the left of the canvas." -msgstr "" - -#: js/MediaBlocks.js:158 -msgid "top (screen)" -msgstr "" - -#: js/MediaBlocks.js:168 -#: js/MediaBlocks.js:179 -msgid "The Top block returns the position of the top of the canvas." -msgstr "" - -#: js/MediaBlocks.js:219 -msgid "bottom (screen)" -msgstr "" - -#: js/MediaBlocks.js:229 -#: js/MediaBlocks.js:240 -msgid "The Bottom block returns the position of the bottom of the canvas." -msgstr "" - -#: js/MediaBlocks.js:282 -msgid "width" -msgstr "" - -#: js/MediaBlocks.js:291 -msgid "The Width block returns the width of the canvas." -msgstr "" - -#: js/MediaBlocks.js:325 -msgid "height" -msgstr "" - -#: js/MediaBlocks.js:334 -msgid "The Height block returns the height of the canvas." -msgstr "" - -#: js/MediaBlocks.js:369 -#.TRANS: stops playback of an audio recording -msgid "stop play" -msgstr "Anhalten" - -#: js/MediaBlocks.js:404 -#.TRANS: Erases the images and text -msgid "erase media" -msgstr "" - -#: js/MediaBlocks.js:409 -msgid "The Erase Media block erases text and images." -msgstr "" - -#: js/MediaBlocks.js:439 -#.TRANS: play an audio recording -msgid "play back" -msgstr "Playback" - -#: js/MediaBlocks.js:487 -msgid "speak" -msgstr "Sage" - -#: js/MediaBlocks.js:495 -msgid "The Speak block outputs to the text-to-speech synthesizer" -msgstr "" - -#: js/MediaBlocks.js:546 -msgid "camera" -msgstr "" - -#: js/MediaBlocks.js:551 -msgid "The Camera block connects a webcam to the Show block." -msgstr "" - -#: js/MediaBlocks.js:574 -msgid "video" -msgstr "" - -#: js/MediaBlocks.js:579 -msgid "The Video block selects video for use with the Show block." +#: js/blocks/ExtrasBlocks.js:33 +msgid "fraction" msgstr "" -#: js/MediaBlocks.js:607 -msgid "The Open file block opens a file for use with the Show block." +#: js/blocks/ExtrasBlocks.js:36 +msgid "Convert a float to a fraction" msgstr "" -#: js/MediaBlocks.js:645 -msgid "stop media" -msgstr "Anhalten" - -#: js/MediaBlocks.js:650 -msgid "The Stop media block stops audio or video playback." +#: js/blocks/ExtrasBlocks.js:93 +msgid "save as ABC" msgstr "" -#: js/MediaBlocks.js:679 -#: js/PitchBlocks.js:1539 -#: js/phrasemaker.js:822 -#: js/musickeyboard.js:1654 -#.TRANS: a measure of frequency: one cycle per second -msgid "hertz" -msgstr "Hertz" - -#: js/MediaBlocks.js:692 -msgid "duration (ms)" -msgstr "Laufzeit (ms)" - -#: js/MediaBlocks.js:728 -#.TRANS: translate a note into hertz, e.g., A4 -> 440HZ -msgid "note to frequency" -msgstr "Note in Frequenz umwandeln" +#: js/blocks/ExtrasBlocks.js:96 +#: js/blocks/ExtrasBlocks.js:132 +#: js/blocks/ExtrasBlocks.js:168 +msgid "title" +msgstr "Titel" -#: js/MediaBlocks.js:736 -msgid "The To frequency block converts a pitch name and octave to Hertz." +#: js/blocks/ExtrasBlocks.js:129 +msgid "save as Lilypond" msgstr "" -#: js/MediaBlocks.js:746 -#: js/PitchBlocks.js:656 -#: js/PitchBlocks.js:932 -#: js/PitchBlocks.js:1827 -#.TRANS: name2 is name as in name of pitch (JAPANESE ONLY) -msgid "name2" +#: js/blocks/ExtrasBlocks.js:165 +msgid "save as SVG" msgstr "" -#: js/MediaBlocks.js:812 -msgid "The Avatar block is used to change the appearance of the mouse." -msgstr "" +#: js/blocks/ExtrasBlocks.js:216 +msgid "no background" +msgstr "Kein Hintergrund" -#: js/MediaBlocks.js:819 -msgid "The Avatar block is used to change the appearance of the turtle." +#: js/blocks/ExtrasBlocks.js:219 +msgid "The No background block eliminates the background from the saved SVG output." msgstr "" -#: js/MediaBlocks.js:831 -#: js/MediaBlocks.js:891 -#.TRANS: a media object -msgid "size" -msgstr "Größe" - -#: js/MediaBlocks.js:831 -msgid "image" -msgstr "Bild" - -#: js/MediaBlocks.js:880 -msgid "The Show block is used to display text or images on the canvas." -msgstr "" +#: js/blocks/ExtrasBlocks.js:247 +msgid "show blocks" +msgstr "Blöcke anzeigen" -#: js/MediaBlocks.js:888 -#.TRANS: show1 is show as in display an image or text on the screen. -msgid "show1" +#: js/blocks/ExtrasBlocks.js:249 +msgid "The Show blocks block shows the blocks." msgstr "" -#: js/MediaBlocks.js:891 -msgid "obj" -msgstr "Objekt" +#: js/blocks/ExtrasBlocks.js:274 +msgid "hide blocks" +msgstr "Blöcke verbergen" -#: js/MediaBlocks.js:938 -msgid "The Media block is used to import an image." +#: js/blocks/ExtrasBlocks.js:276 +msgid "The Hide blocks block hides the blocks." msgstr "" -#: js/MediaBlocks.js:973 -msgid "The Text block holds a text string." +#: js/blocks/ExtrasBlocks.js:305 +#: js/blocks/ExtrasBlocks.js:338 +msgid "The Space block is used to add space between blocks." msgstr "" -#: js/ProgramBlocks.js:33 -msgid "The Load-heap-from-app block loads the heap from a web page." -msgstr "" +#: js/blocks/ExtrasBlocks.js:376 +msgid "wait" +msgstr "Warte" -#: js/ProgramBlocks.js:44 -#.TRANS: load the heap contents from a URL -msgid "load heap from App" -msgstr "Lade Stapel aus der App" +#: js/blocks/ExtrasBlocks.js:379 +msgid "The Wait block pauses the program for a specified number of seconds." +msgstr "" -#: js/ProgramBlocks.js:95 -msgid "Error parsing JSON data:" -msgstr "Ein Fehler in der Zerteilung der JSON Daten" +#: js/blocks/ExtrasBlocks.js:433 +#: plugins/facebook.rtp:30 +msgid "comment" +msgstr "Anmerkung" -#: js/ProgramBlocks.js:100 -msgid "404: Page not found" -msgstr "404: Seite nicht gefunden" +#: js/blocks/ExtrasBlocks.js:469 +msgid "print" +msgstr "Gib aus" -#: js/ProgramBlocks.js:133 -msgid "The Save-heap-to-app block saves the heap to a web page." +#: js/blocks/ExtrasBlocks.js:476 +msgid "The Print block displays text at the top of the screen." msgstr "" -#: js/ProgramBlocks.js:144 -#.TRANS: save the heap contents to a URL -msgid "save heap to App" -msgstr "Speichere Stapel in der App" - -#: js/ProgramBlocks.js:189 -msgid "Cannot find a valid heap for" +#: js/blocks/ExtrasBlocks.js:582 +msgid "display grid" msgstr "" -#: js/ProgramBlocks.js:206 -msgid "The Load-heap block loads the heap from a file." +#: js/blocks/ExtrasBlocks.js:587 +msgid "The Display Grid Block changes the grid type" msgstr "" -#: js/ProgramBlocks.js:217 -#.TRANS: load the heap from a file -msgid "load heap" -msgstr "Lade Stapel" +#: js/blocks/ExtrasBlocks.js:689 +#: js/blocks/ExtrasBlocks.js:708 +#: js/blocks/ExtrasBlocks.js:731 +#: js/blocks/ExtrasBlocks.js:754 +#: js/blocks/ExtrasBlocks.js:772 +#: js/blocks/ExtrasBlocks.js:791 +#: js/blocks/ExtrasBlocks.js:810 +#: js/blocks/ExtrasBlocks.js:829 +msgid "unknown" +msgstr "unbekannt" -#: js/ProgramBlocks.js:270 -msgid "The file you selected does not contain a valid heap." -msgstr "Die ausgewählte Datei beinhaltet keinen gültigen Stapel" +#: js/blocks/FlowBlocks.js:41 +msgid "The Backward block runs code in reverse order (Musical retrograde)." +msgstr "" -#: js/ProgramBlocks.js:275 -msgid "The loadHeap block needs a loadFile block." -msgstr "Der … Block braucht einen … Block" +#: js/blocks/FlowBlocks.js:48 +msgid "backward" +msgstr "Rückwerts" -#: js/ProgramBlocks.js:291 -msgid "The Set-heap block loads the heap." +#: js/blocks/FlowBlocks.js:124 +msgid "The Duplicate block will run each block multiple times." msgstr "" -#: js/ProgramBlocks.js:299 -#: js/HeapBlocks.js:539 -#.TRANS: load the heap from a JSON encoding -msgid "set heap" -msgstr "Stapel bestimmen" +#: js/blocks/FlowBlocks.js:136 +msgid "duplicate" +msgstr "Noten verdoppeln" -#: js/ProgramBlocks.js:340 -msgid "The block you selected does not contain a valid heap." +#: js/blocks/FlowBlocks.js:334 +msgid "The Default block is used inside of a Switch to define the default action." msgstr "" -#: js/ProgramBlocks.js:343 -msgid "The Set heap block needs a heap." +#: js/blocks/FlowBlocks.js:342 +msgid "default" msgstr "" -#: js/ProgramBlocks.js:360 -msgid "The Load-dictionary block loads a dictionary from a file." +#: js/blocks/FlowBlocks.js:361 +#: js/blocks/FlowBlocks.js:418 +msgid "The Case Block must be used inside of a Switch Block." msgstr "" -#: js/ProgramBlocks.js:372 -#.TRANS: load a dictionary from a file -msgid "load dictionary" +#: js/blocks/FlowBlocks.js:389 +msgid "The Case block is used inside of a Switch to define matches." msgstr "" -#: js/ProgramBlocks.js:390 -#: js/ProgramBlocks.js:658 -#: js/ToneBlocks.js:1025 -msgid "file" +#: js/blocks/FlowBlocks.js:397 +msgid "case" msgstr "" -#: js/ProgramBlocks.js:396 -#: js/ProgramBlocks.js:501 -#: js/ProgramBlocks.js:664 -#: js/DictBlocks.js:80 -#: js/DictBlocks.js:145 -#: js/DictBlocks.js:216 -#: js/DictBlocks.js:290 -msgid "My Dictionary" +#: js/blocks/FlowBlocks.js:446 +msgid "The Switch block will run the code in the matching Case." msgstr "" -#: js/ProgramBlocks.js:444 -msgid "The file you selected does not contain a valid dictionary." +#: js/blocks/FlowBlocks.js:454 +msgid "switch" msgstr "" -#: js/ProgramBlocks.js:449 -msgid "The load dictionary block needs a load file block." +#: js/blocks/FlowBlocks.js:595 +msgid "The Stop block will stop a loop" msgstr "" -#: js/ProgramBlocks.js:466 -msgid "The Set-dictionary block loads a dictionary." +#: js/blocks/FlowBlocks.js:597 +msgid "Forever, Repeat, While, or Until." msgstr "" -#: js/ProgramBlocks.js:477 -#.TRANS: load a dictionary from a JSON -msgid "set dictionary" -msgstr "" +#: js/blocks/FlowBlocks.js:604 +#: js/widgets/timbre.js:417 +#: js/widgets/timbre.js:419 +#: js/widgets/musickeyboard.js:819 +#: js/widgets/musickeyboard.js:821 +#: js/widgets/phrasemaker.js:4202 +#: plugins/rodi.rtp:29 +#: plugins/rodi.rtp:73 +#: plugins/rodi.rtp:413 +msgid "stop" +msgstr "Anhalten" -#: js/ProgramBlocks.js:546 -msgid "The block you selected does not contain a valid dictionary." +#: js/blocks/FlowBlocks.js:653 +msgid "The Waitfor block will wait until the condition is true." msgstr "" -#: js/ProgramBlocks.js:550 -msgid "The set dictionary block needs a dictionary." -msgstr "" +#: js/blocks/FlowBlocks.js:661 +msgid "wait for" +msgstr "Warte auf" -#: js/ProgramBlocks.js:567 -msgid "The Save-heap block saves the heap to a file." +#: js/blocks/FlowBlocks.js:732 +msgid "The Until block will repeat until the condition is true." msgstr "" -#: js/ProgramBlocks.js:578 -#.TRANS: save the heap to a file -msgid "save heap" -msgstr "Speichere Stapel" +#: js/blocks/FlowBlocks.js:740 +msgid "until" +msgstr "bis" -#: js/ProgramBlocks.js:629 -msgid "The Save-dictionary block saves a dictionary to a file." +#: js/blocks/FlowBlocks.js:742 +#: js/blocks/FlowBlocks.js:822 +msgid "do2" msgstr "" -#: js/ProgramBlocks.js:640 -#.TRANS: save a dictionary to a file -msgid "save dictionary" +#: js/blocks/FlowBlocks.js:812 +msgid "The While block will repeat while the condition is true." msgstr "" -#: js/ProgramBlocks.js:720 -msgid "The Open palette block opens a palette." -msgstr "" +#: js/blocks/FlowBlocks.js:820 +msgid "while" +msgstr "solange" -#: js/ProgramBlocks.js:727 -msgid "open palette" +#: js/blocks/FlowBlocks.js:903 +#: js/blocks/FlowBlocks.js:968 +#: js/blocks/FlowBlocks.js:979 +msgid "In this example if the mouse button is pressed a snare drum will play." msgstr "" -#: js/ProgramBlocks.js:785 -msgid "The Delete block block removes a block." +#: js/blocks/FlowBlocks.js:925 +#: js/blocks/FlowBlocks.js:988 +msgid "if" +msgstr "wenn" + +#: js/blocks/FlowBlocks.js:927 +#: js/blocks/FlowBlocks.js:990 +msgid "then" +msgstr "dann" + +#: js/blocks/FlowBlocks.js:927 +msgid "else" +msgstr "sonst" + +#: js/blocks/FlowBlocks.js:1025 +msgid "The Forever block will repeat the contained blocks forever." msgstr "" -#: js/ProgramBlocks.js:797 -#.TRANS: Move this block to the trash. -msgid "delete block" +#: js/blocks/FlowBlocks.js:1037 +msgid "forever" +msgstr "fortlaufend" + +#: js/blocks/FlowBlocks.js:1073 +msgid "The Repeat block will repeat the contained blocks." msgstr "" -#: js/ProgramBlocks.js:861 -msgid "The Move block block moves a block." +#: js/blocks/FlowBlocks.js:1075 +msgid "In this example the note will be played 4 times." msgstr "" -#: js/ProgramBlocks.js:869 -#.TRANS: Move the position of a block on the screen. -msgid "move block" +#: js/blocks/FlowBlocks.js:1083 +msgid "repeat" +msgstr "wiederhole" + +#: js/blocks/FlowBlocks.js:1123 +msgid "duplicate factor" +msgstr "Faktor verdoppeln" + +#: js/blocks/HeapBlocks.js:49 +msgid "The Heap block returns the heap." msgstr "" -#: js/ProgramBlocks.js:881 -#: js/ProgramBlocks.js:1048 -msgid "block number" +#: js/blocks/HeapBlocks.js:133 +msgid "show heap" +msgstr "Zeige Stapel" + +#: js/blocks/HeapBlocks.js:181 +msgid "The Heap-length block returns the length of the heap." msgstr "" -#: js/ProgramBlocks.js:935 -#.TRANS: Run program beginning at this block. -msgid "run block" +#: js/blocks/HeapBlocks.js:195 +msgid "heap length" +msgstr "Stapellänge" + +#: js/blocks/HeapBlocks.js:254 +msgid "The Heap-empty? block returns true if the heap is empty." msgstr "" -#: js/ProgramBlocks.js:1025 -msgid "The Dock block block connections two blocks." +#: js/blocks/HeapBlocks.js:268 +#.TRANS: Is the heap empty? +msgid "heap empty?" +msgstr "Leerer Stapel?" + +#: js/blocks/HeapBlocks.js:317 +msgid "The Empty-heap block empties the heap." msgstr "" -#: js/ProgramBlocks.js:1036 -#.TRANS: We can connect a block to another block. -msgid "connect blocks" +#: js/blocks/HeapBlocks.js:327 +#: js/blocks/HeapBlocks.js:647 +#.TRANS: empty the heap +msgid "empty heap" +msgstr "leere Stapel" + +#: js/blocks/HeapBlocks.js:371 +msgid "The Reverse-heap block reverses the order of the heap." msgstr "" -#: js/ProgramBlocks.js:1048 -msgid "target block" +#: js/blocks/HeapBlocks.js:384 +#.TRANS: reverse the order of the heap +msgid "reverse heap" msgstr "" -#: js/ProgramBlocks.js:1048 -msgid "connection number" +#: js/blocks/HeapBlocks.js:428 +msgid "The Index-heap block returns a value in the heap at a specified location." msgstr "" -#: js/ProgramBlocks.js:1140 -msgid "The Make block block creates a new block." +#: js/blocks/HeapBlocks.js:443 +#.TRANS: retrieve a value from the heap at index position in the heap +msgid "index heap" +msgstr "Stapel abrufen" + +#: js/blocks/HeapBlocks.js:523 +msgid "The Set-heap entry block sets a value in he heap at the specified location." msgstr "" -#: js/ProgramBlocks.js:1152 -#.TRANS: Create a new block -msgid "make block" +#: js/blocks/HeapBlocks.js:539 +#: js/blocks/ProgramBlocks.js:299 +#.TRANS: load the heap from a JSON encoding +msgid "set heap" +msgstr "Stapel bestimmen" + +#: js/blocks/HeapBlocks.js:619 +msgid "The Pop block removes the value at the top of the heap." msgstr "" -#: js/ProgramBlocks.js:1186 -#: js/ProgramBlocks.js:1227 -#: js/RhythmBlocks.js:1128 -#: js/PitchBlocks.js:972 -#: js/PitchBlocks.js:1005 -#: js/temperament.js:340 -#: js/temperament.js:362 -#: js/temperament.js:372 -#: js/temperament.js:484 -#: js/status.js:190 -#: plugins/rodi.rtp:192 -#.TRANS: a musical note consisting of pitch and duration -msgid "note" -msgstr "Note" +#: js/blocks/HeapBlocks.js:633 +#.TRANS: pop a value off the top of the heap +msgid "pop" +msgstr "Nimm auf" -#: js/ProgramBlocks.js:1285 -msgid "Cannot find block" +#: js/blocks/HeapBlocks.js:680 +msgid "The Push block adds a value to the top of the heap." msgstr "" -#: js/ProgramBlocks.js:1304 -#: js/ProgramBlocks.js:1313 -msgid "Warning: block argument type mismatch" +#: js/blocks/HeapBlocks.js:696 +#.TRANS: push a value onto the top of the heap +msgid "push" +msgstr "Lege ab" + +#: js/blocks/IntervalsBlocks.js:45 +msgid "set temperament" msgstr "" -#: js/ProgramBlocks.js:1347 -msgid "The Open project block is used to open a project from a web page." +#: js/blocks/IntervalsBlocks.js:63 +#: js/blocks/MediaBlocks.js:746 +#: js/blocks/PitchBlocks.js:657 +#: js/blocks/PitchBlocks.js:935 +#: js/blocks/PitchBlocks.js:974 +#: js/blocks/PitchBlocks.js:1007 +#: js/blocks/PitchBlocks.js:1194 +#: js/blocks/PitchBlocks.js:1717 +#: js/blocks/PitchBlocks.js:1758 +#: js/blocks/PitchBlocks.js:1866 +#: js/blocks/ToneBlocks.js:1025 +#: js/turtleactions/IntervalsActions.js:114 +#.TRANS: adjusts the shift up or down by one octave (twelve half-steps in the interval between two notes, one having twice or half the frequency in Hz of the other.) +msgid "octave" +msgstr "Oktave" + +#: js/blocks/IntervalsBlocks.js:99 +msgid "The Temperament name block is used to select a tuning method." msgstr "" -#: js/ProgramBlocks.js:1357 -msgid "open project" -msgstr "Objkt öffnen" +#: js/blocks/IntervalsBlocks.js:161 +msgid "doubly" +msgstr "" -#: js/ProgramBlocks.js:1410 -msgid "Please enter a valid URL." +#: js/blocks/IntervalsBlocks.js:166 +msgid "The Doubly block will double the size of an interval." msgstr "" -#: js/DrumBlocks.js:59 -msgid "The Noise name block is used to select a noise synthesizer." +#: js/blocks/IntervalsBlocks.js:262 +msgid "interval number" msgstr "" -#: js/DrumBlocks.js:102 -msgid "The Drum name block is used to select a drum." +#: js/blocks/IntervalsBlocks.js:317 +msgid "current interval" msgstr "" -#: js/DrumBlocks.js:146 -msgid "The Effects name block is used to select a sound effect." +#: js/blocks/IntervalsBlocks.js:387 +#.TRANS: measure the distance between two pitches in semi-tones +msgid "semi-tone interval measure" msgstr "" -#: js/DrumBlocks.js:163 -msgid "noise" +#: js/blocks/IntervalsBlocks.js:454 +#: js/blocks/IntervalsBlocks.js:570 +msgid "You must use two pitch blocks when measuring an interval." msgstr "" -#: js/DrumBlocks.js:177 -msgid "The Play noise block will generate white, pink, or brown noise." +#: js/blocks/IntervalsBlocks.js:496 +msgid "The Scalar interval block measures the distance between two notes in the current key and mode." msgstr "" -#: js/DrumBlocks.js:191 -#: js/musicutils.js:752 -#: js/synthutils.js:47 -#.TRANS: white noise synthesizer -msgid "white noise" +#: js/blocks/IntervalsBlocks.js:502 +#.TRANS: measure the distance between two pitches in steps of musical scale +msgid "scalar interval measure" msgstr "" -#: js/DrumBlocks.js:326 -msgid "Replace every instance of a pitch with a drum sound." +#: js/blocks/IntervalsBlocks.js:678 +msgid "In the figure, we add sol# to sol." msgstr "" -#: js/DrumBlocks.js:337 -#.TRANS: map a pitch to a drum sound -msgid "map pitch to drum" +#: js/blocks/IntervalsBlocks.js:684 +#: js/blocks/OrnamentBlocks.js:220 +#.TRANS: calculate a relative step between notes based on semi-tones +msgid "semi-tone interval" msgstr "" -#: js/DrumBlocks.js:404 -msgid "In the example above, a kick drum sound will be played instead of sol." +#: js/blocks/IntervalsBlocks.js:733 +msgid "The output of the example is: do, mi, sol, sol, ti, mi" msgstr "" -#: js/DrumBlocks.js:416 -#.TRANS: set the current drum sound for playback -msgid "set drum" -msgstr "Trommel Auswahlen" +#: js/blocks/IntervalsBlocks.js:740 +#: js/blocks/WidgetBlocks.js:768 +msgid "arpeggio" +msgstr "" -#: js/DrumBlocks.js:460 -msgid "sound effect" +#: js/blocks/IntervalsBlocks.js:931 +msgid "The Chord block calculates common chords." msgstr "" -#: js/DrumBlocks.js:498 -msgid "You can use multiple Drum blocks within a Note block." +#: js/blocks/IntervalsBlocks.js:933 +msgid "In the figure, we generate a C-major chord." msgstr "" -#: js/RhythmBlocks.js:182 -#: js/RhythmBlocks.js:1086 -#: js/RhythmBlocks.js:1162 -msgid "Note value must be greater than 0." +#: js/blocks/IntervalsBlocks.js:938 +msgid "chord" msgstr "" -#: js/RhythmBlocks.js:215 -#: js/RhythmBlocks.js:278 -#: js/RhythmBlocks.js:350 -#.TRANS: swing is a rhythmic variation that emphasises the offbeat -msgid "swing" -msgstr "Swing" +#: js/blocks/IntervalsBlocks.js:990 +msgid "The Ratio Interval block calculates an interval based on a ratio." +msgstr "" -#: js/RhythmBlocks.js:355 -#.TRANS: the amount to shift to the offbeat note -msgid "swing value" -msgstr "Swing-Wert" +#: js/blocks/IntervalsBlocks.js:995 +msgid "ratio interval" +msgstr "" -#: js/RhythmBlocks.js:419 -msgid "The Skip notes block will cause notes to be skipped." +#: js/blocks/IntervalsBlocks.js:1064 +msgid "In the figure, we add la to sol." msgstr "" -#: js/RhythmBlocks.js:427 -#.TRANS: substitute rests on notes being skipped -msgid "skip notes" -msgstr "Noten überspringen" +#: js/blocks/IntervalsBlocks.js:1120 +#.TRANS: define a custom mode +msgid "define mode" +msgstr "" -#: js/RhythmBlocks.js:489 -#.TRANS: speed up note duration by some factor, e.g. convert 1/4 to 1/8 notes by using a factor of 2 -msgid "multiply note value" -msgstr "Schläge erhöhen" +#: js/blocks/IntervalsBlocks.js:1173 +msgid "movable Do" +msgstr "" -#: js/RhythmBlocks.js:542 -msgid "The Tie block works on pairs of notes, combining them into one note." +#: js/blocks/IntervalsBlocks.js:1224 +#.TRANS: mode length is the number of notes in the mode, e.g., 7 for major and minor scales; 12 for chromatic scales +msgid "mode length" msgstr "" -#: js/RhythmBlocks.js:550 -#.TRANS: tie notes together into one longer note -msgid "tie" -msgstr "Zusammenführen" +#: js/blocks/IntervalsBlocks.js:1233 +msgid "The Mode length block is the number of notes in the current scale." +msgstr "" -#: js/RhythmBlocks.js:591 -#: js/RhythmBlocks.js:671 -#.TRANS: a dotted note is played for 1.5x its value, e.g., 1/8. --> 3/16 -msgid "dot" -msgstr "Punkt" +#: js/blocks/IntervalsBlocks.js:1235 +msgid "Most Western scales have 7 notes." +msgstr "" -#: js/RhythmBlocks.js:619 -#: js/RhythmActions.js:221 -msgid "An argument of -1 results in a note value of 0." +#: js/blocks/IntervalsBlocks.js:1284 +#.TRANS: the mode in music is 'major', 'minor', etc. +msgid "current mode" msgstr "" -#: js/RhythmBlocks.js:661 -msgid "The Dot block extends the duration of a note by 50%." +#: js/blocks/IntervalsBlocks.js:1337 +#.TRANS: the key is a group of pitches with which a music composition is created +msgid "current key" msgstr "" -#: js/RhythmBlocks.js:663 -msgid "Eg a dotted quarter note will play for 3/8 (1/4 + 1/8) of a beat." +#: js/blocks/IntervalsBlocks.js:1389 +#: js/blocks/IntervalsBlocks.js:1434 +#.TRANS: set the key and mode, e.g. C Major +msgid "set key" +msgstr "Notenschlüssel auswählen" + +#: js/blocks/IntervalsBlocks.js:1443 +#: js/blocks/IntervalsBlocks.js:1449 +msgid "The Set key block is used to set the key and mode," msgstr "" -#: js/RhythmBlocks.js:765 -#.TRANS: Japanese only: note value block for drum -msgid "note value drum" +#: js/blocks/IntervalsBlocks.js:1449 +msgid "eg C Major" msgstr "" -#: js/RhythmBlocks.js:829 -msgid "392 hertz" +#: js/blocks/MediaBlocks.js:35 +#.TRANS: right side of the screen +msgid "right (screen)" msgstr "" -#: js/RhythmBlocks.js:1119 -msgid "The Note block is a container for one or more Pitch blocks." +#: js/blocks/MediaBlocks.js:45 +#: js/blocks/MediaBlocks.js:56 +msgid "The Right block returns the position of the right of the canvas." msgstr "" -#: js/RhythmBlocks.js:1121 -msgid "The Note block specifies the duration (note value) of its contents." +#: js/blocks/MediaBlocks.js:97 +#.TRANS: left side of the screen +msgid "left (screen)" msgstr "" -#: js/RhythmBlocks.js:1130 -msgid "value2" +#: js/blocks/MediaBlocks.js:107 +#: js/blocks/MediaBlocks.js:118 +msgid "The Left block returns the position of the left of the canvas." msgstr "" -#: js/RhythmBlocks.js:1200 -msgid "define frequency" +#: js/blocks/MediaBlocks.js:158 +msgid "top (screen)" msgstr "" -#: js/RhythmBlocks.js:1218 -#: js/temperament.js:650 -#: js/temperament.js:1421 -msgid "octave space" +#: js/blocks/MediaBlocks.js:168 +#: js/blocks/MediaBlocks.js:179 +msgid "The Top block returns the position of the top of the canvas." msgstr "" -#: js/NumberBlocks.js:28 -msgid "The Int block returns an integer." +#: js/blocks/MediaBlocks.js:219 +msgid "bottom (screen)" msgstr "" -#: js/NumberBlocks.js:34 -msgid "int" -msgstr "aufrunden" +#: js/blocks/MediaBlocks.js:229 +#: js/blocks/MediaBlocks.js:240 +msgid "The Bottom block returns the position of the bottom of the canvas." +msgstr "" -#: js/NumberBlocks.js:73 -msgid "The Mod block returns the remainder from a division." +#: js/blocks/MediaBlocks.js:282 +msgid "width" msgstr "" -#: js/NumberBlocks.js:79 -msgid "mod" -msgstr "mod" +#: js/blocks/MediaBlocks.js:291 +msgid "The Width block returns the width of the canvas." +msgstr "" -#: js/NumberBlocks.js:123 -msgid "The Power block calculates a power function." +#: js/blocks/MediaBlocks.js:325 +msgid "height" msgstr "" -#: js/NumberBlocks.js:178 -msgid "The Sqrt block returns the square root." +#: js/blocks/MediaBlocks.js:334 +msgid "The Height block returns the height of the canvas." msgstr "" -#: js/NumberBlocks.js:184 -msgid "sqrt" -msgstr "Quadratwurzel" +#: js/blocks/MediaBlocks.js:369 +#.TRANS: stops playback of an audio recording +msgid "stop play" +msgstr "Anhalten" -#: js/NumberBlocks.js:230 -msgid "The Abs block returns the absolute value." +#: js/blocks/MediaBlocks.js:404 +#.TRANS: Erases the images and text +msgid "erase media" msgstr "" -#: js/NumberBlocks.js:236 -msgid "abs" +#: js/blocks/MediaBlocks.js:409 +msgid "The Erase Media block erases text and images." msgstr "" -#: js/NumberBlocks.js:277 -msgid "The Distance block returns the distance between two points. For example, between the mouse and the center of the screen." -msgstr "" +#: js/blocks/MediaBlocks.js:439 +#.TRANS: play an audio recording +msgid "play back" +msgstr "Playback" -#: js/NumberBlocks.js:283 -#: plugins/rodi.rtp:310 -msgid "distance" -msgstr "Strecke" +#: js/blocks/MediaBlocks.js:487 +msgid "speak" +msgstr "Sage" -#: js/NumberBlocks.js:343 -msgid "The Divide block is used to divide." +#: js/blocks/MediaBlocks.js:495 +msgid "The Speak block outputs to the text-to-speech synthesizer" msgstr "" -#: js/NumberBlocks.js:411 -msgid "The Multiply block is used to multiply." +#: js/blocks/MediaBlocks.js:546 +msgid "camera" msgstr "" -#: js/NumberBlocks.js:554 -msgid "The Minus block is used to subtract." +#: js/blocks/MediaBlocks.js:551 +msgid "The Camera block connects a webcam to the Show block." msgstr "" -#: js/NumberBlocks.js:647 -msgid "The Plus block is used to add." +#: js/blocks/MediaBlocks.js:574 +msgid "video" msgstr "" -#: js/NumberBlocks.js:773 -msgid "The One-of block returns one of two choices." +#: js/blocks/MediaBlocks.js:579 +msgid "The Video block selects video for use with the Show block." msgstr "" -#: js/NumberBlocks.js:780 -#: js/PitchBlocks.js:616 -msgid "one of" -msgstr "einer von" - -#: js/NumberBlocks.js:782 -msgid "this" -msgstr "diese/dieser/dieses" +#: js/blocks/MediaBlocks.js:607 +msgid "The Open file block opens a file for use with the Show block." +msgstr "" -#: js/NumberBlocks.js:782 -msgid "that" -msgstr "jene/jener/jenes" +#: js/blocks/MediaBlocks.js:645 +msgid "stop media" +msgstr "Anhalten" -#: js/NumberBlocks.js:837 -msgid "The Random block returns a random number." +#: js/blocks/MediaBlocks.js:650 +msgid "The Stop media block stops audio or video playback." msgstr "" -#: js/NumberBlocks.js:844 -msgid "random" -msgstr "Zufallszahl" +#: js/blocks/MediaBlocks.js:679 +#: js/blocks/PitchBlocks.js:1577 +#: js/widgets/musickeyboard.js:1936 +#: js/widgets/phrasemaker.js:1037 +#.TRANS: a measure of frequency: one cycle per second +msgid "hertz" +msgstr "Hertz" -#: js/NumberBlocks.js:846 -msgid "min" -msgstr "min" +#: js/blocks/MediaBlocks.js:692 +#: js/blocks/WidgetBlocks.js:182 +#: js/widgets/temperament.js:506 +#: js/widgets/temperament.js:546 +#: js/widgets/temperament.js:610 +#: js/widgets/temperament.js:618 +#: js/widgets/temperament.js:1505 +#: js/widgets/timbre.js:1842 +msgid "frequency" +msgstr "Frequenz" -#: js/NumberBlocks.js:846 -msgid "max" -msgstr "max" +#: js/blocks/MediaBlocks.js:692 +msgid "duration (ms)" +msgstr "Laufzeit (ms)" -#: js/NumberBlocks.js:910 -msgid "The Number block holds a number." +#: js/blocks/MediaBlocks.js:728 +#.TRANS: translate a note into hertz, e.g., A4 -> 440HZ +msgid "note to frequency" +msgstr "Note in Frequenz umwandeln" + +#: js/blocks/MediaBlocks.js:736 +msgid "The To frequency block converts a pitch name and octave to Hertz." msgstr "" -#: js/BoxesBlocks.js:53 -#: js/BoxesBlocks.js:59 -msgid "The Add-to block is used to add to the value stored in a box." +#: js/blocks/MediaBlocks.js:746 +#: js/blocks/PitchBlocks.js:656 +#: js/blocks/PitchBlocks.js:934 +#: js/blocks/PitchBlocks.js:1866 +#.TRANS: name2 is name as in name of pitch (JAPANESE ONLY) +msgid "name2" msgstr "" -#: js/BoxesBlocks.js:61 -msgid "It can also be used with other blocks such as Color and Pen size." +#: js/blocks/MediaBlocks.js:812 +msgid "The Avatar block is used to change the appearance of the mouse." msgstr "" -#: js/BoxesBlocks.js:73 -msgid "add" -msgstr "addiere" +#: js/blocks/MediaBlocks.js:819 +msgid "The Avatar block is used to change the appearance of the turtle." +msgstr "" -#: js/BoxesBlocks.js:75 -#: js/temperament.js:716 -msgid "to" -msgstr "zu" +#: js/blocks/MediaBlocks.js:831 +#: js/blocks/MediaBlocks.js:891 +#.TRANS: a media object +msgid "size" +msgstr "Größe" -#: js/BoxesBlocks.js:75 -#: js/BoxesBlocks.js:595 -#: js/HeapBlocks.js:544 -msgid "value1" -msgstr "" +#: js/blocks/MediaBlocks.js:831 +msgid "image" +msgstr "Bild" -#: js/BoxesBlocks.js:118 -msgid "Block does not support incrementing." -msgstr "Der Block unterstützt den Zuwachs nicht" +#: js/blocks/MediaBlocks.js:880 +msgid "The Show block is used to display text or images on the canvas." +msgstr "" -#: js/BoxesBlocks.js:152 -msgid "The Add-1-to block adds one to the value stored in a box." +#: js/blocks/MediaBlocks.js:888 +#.TRANS: show1 is show as in display an image or text on the screen. +msgid "show1" msgstr "" -#: js/BoxesBlocks.js:163 -msgid "add 1 to" -msgstr "addiere 1 zu" +#: js/blocks/MediaBlocks.js:891 +msgid "obj" +msgstr "Objekt" -#: js/BoxesBlocks.js:211 -msgid "The Subtract-1-from block subtracts one from the value stored in a box." +#: js/blocks/MediaBlocks.js:938 +msgid "The Media block is used to import an image." msgstr "" -#: js/BoxesBlocks.js:222 -msgid "subtract 1 from" +#: js/blocks/MediaBlocks.js:973 +msgid "The Text block holds a text string." msgstr "" -#: js/BoxesBlocks.js:270 -#: js/BoxesBlocks.js:387 -msgid "The Box block returns the value stored in a box." +#: js/blocks/MeterBlocks.js:34 +#.TRANS: musical meter (time signature), e.g., 4:4 +msgid "current meter" msgstr "" -#: js/BoxesBlocks.js:500 -#: js/BoxesBlocks.js:576 -msgid "The Store in block will store a value in a box." +#: js/blocks/MeterBlocks.js:85 +#.TRANS: number of beats per minute +msgid "beat factor" +msgstr "Anzahl der Schläge pro Minute" + +#: js/blocks/MeterBlocks.js:161 +msgid "The Beats per minute block returns the current beats per minute." msgstr "" -#: js/BoxesBlocks.js:652 -msgid "The Box2 block returns the value stored in Box2." +#: js/blocks/MeterBlocks.js:169 +#: js/widgets/status.js:152 +#.TRANS: number of beats played per minute +msgid "beats per minute2" msgstr "" -#: js/BoxesBlocks.js:703 -msgid "The Store in Box2 block is used to store a value in Box2." +#: js/blocks/MeterBlocks.js:169 +#: js/blocks/MeterBlocks.js:1056 +#: js/blocks/MeterBlocks.js:1133 +#: js/blocks/MeterBlocks.js:1211 +#.TRANS: sets tempo by defining a beat and beats per minute +msgid "beats per minute" +msgstr "Schläge pro Minute (BPM)" + +#: js/blocks/MeterBlocks.js:233 +#.TRANS: count of current musical measure in meter +msgid "measure count" msgstr "" -#: js/BoxesBlocks.js:715 -msgid "store in box2" +#: js/blocks/MeterBlocks.js:241 +msgid "The Measure count block returns the current measure." msgstr "" -#: js/BoxesBlocks.js:761 -msgid "The Box1 block returns the value stored in Box1." +#: js/blocks/MeterBlocks.js:290 +#.TRANS: count of current beat in the meter +msgid "beat count" msgstr "" -#: js/BoxesBlocks.js:812 -msgid "The Store in Box1 block is used to store a value in Box1." +#: js/blocks/MeterBlocks.js:300 +#: js/blocks/MeterBlocks.js:311 +#: js/blocks/MeterBlocks.js:565 +#: js/blocks/MeterBlocks.js:576 +msgid "The Beat count block is the number of the current beat," msgstr "" -#: js/BoxesBlocks.js:826 -msgid "store in box1" +#: js/blocks/MeterBlocks.js:313 +#: js/blocks/MeterBlocks.js:578 +msgid "eg 1, 2, 3, or 4." msgstr "" -#: js/HeapBlocks.js:49 -msgid "The Heap block returns the heap." +#: js/blocks/MeterBlocks.js:368 +#.TRANS: count the number of notes +msgid "sum note values" msgstr "" -#: js/HeapBlocks.js:133 -msgid "show heap" -msgstr "Zeige Stapel" +#: js/blocks/MeterBlocks.js:376 +#: js/blocks/MeterBlocks.js:440 +msgid "The Note counter block can be used to count the number of contained notes." +msgstr "" -#: js/HeapBlocks.js:181 -msgid "The Heap-length block returns the length of the heap." +#: js/blocks/MeterBlocks.js:432 +#.TRANS: count the number of notes +msgid "note counter" msgstr "" -#: js/HeapBlocks.js:195 -msgid "heap length" -msgstr "Stapellänge" +#: js/blocks/MeterBlocks.js:496 +#.TRANS: number of whole notes that have been played +msgid "whole notes played" +msgstr "" -#: js/HeapBlocks.js:254 -msgid "The Heap-empty? block returns true if the heap is empty." +#: js/blocks/MeterBlocks.js:505 +msgid "The Whole notes played block returns the total number of whole notes played." msgstr "" -#: js/HeapBlocks.js:268 -#.TRANS: Is the heap empty? -msgid "heap empty?" -msgstr "Leerer Stapel?" +#: js/blocks/MeterBlocks.js:555 +#: js/turtleactions/DictActions.js:83 +#.TRANS: number of notes that have been played +msgid "notes played" +msgstr "" -#: js/HeapBlocks.js:317 -msgid "The Empty-heap block empties the heap." +#: js/blocks/MeterBlocks.js:653 +msgid "The No clock block decouples the notes from the master clock." msgstr "" -#: js/HeapBlocks.js:327 -#: js/HeapBlocks.js:647 -#.TRANS: empty the heap -msgid "empty heap" -msgstr "leere Stapel" +#: js/blocks/MeterBlocks.js:661 +#.TRANS: don't lock notes to master clock +msgid "no clock" +msgstr "Freizeit" -#: js/HeapBlocks.js:371 -msgid "The Reverse-heap block reverses the order of the heap." +#: js/blocks/MeterBlocks.js:700 +msgid "on weak beat do" msgstr "" -#: js/HeapBlocks.js:384 -#.TRANS: reverse the order of the heap -msgid "reverse heap" +#: js/blocks/MeterBlocks.js:705 +msgid "The On-weak-beat block lets you specify actions to take on weak (off) beats." msgstr "" -#: js/HeapBlocks.js:428 -msgid "The Index-heap block returns a value in the heap at a specified location." +#: js/blocks/MeterBlocks.js:750 +msgid "on strong beat" msgstr "" -#: js/HeapBlocks.js:443 -#.TRANS: retrieve a value from the heap at index position in the heap -msgid "index heap" -msgstr "Stapel abrufen" - -#: js/HeapBlocks.js:523 -msgid "The Set-heap entry block sets a value in he heap at the specified location." +#: js/blocks/MeterBlocks.js:758 +msgid "The On-strong-beat block lets you specify actions to take on specified beats." msgstr "" -#: js/HeapBlocks.js:619 -msgid "The Pop block removes the value at the top of the heap." +#: js/blocks/MeterBlocks.js:769 +msgid "beat" msgstr "" -#: js/HeapBlocks.js:633 -#.TRANS: pop a value off the top of the heap -msgid "pop" -msgstr "Nimm auf" - -#: js/HeapBlocks.js:680 -msgid "The Push block adds a value to the top of the heap." +#: js/blocks/MeterBlocks.js:813 +msgid "on every beat do" msgstr "" -#: js/HeapBlocks.js:696 -#.TRANS: push a value onto the top of the heap -msgid "push" -msgstr "Lege ab" - -#: js/FlowBlocks.js:41 -msgid "The Backward block runs code in reverse order (Musical retrograde)." +#: js/blocks/MeterBlocks.js:821 +msgid "The On-every-beat block lets you specify actions to take on every beat." msgstr "" -#: js/FlowBlocks.js:48 -msgid "backward" -msgstr "Rückwerts" +#: js/blocks/MeterBlocks.js:874 +msgid "on every note do" +msgstr "" -#: js/FlowBlocks.js:124 -msgid "The Duplicate block will run each block multiple times." +#: js/blocks/MeterBlocks.js:882 +msgid "The On-every-note block lets you specify actions to take on every note." msgstr "" -#: js/FlowBlocks.js:136 -msgid "duplicate" -msgstr "Noten verdoppeln" +#: js/blocks/MeterBlocks.js:928 +#: js/blocks/MeterBlocks.js:999 +#.TRANS: sets tempo by defining a beat and beats per minute +msgid "master beats per minute" +msgstr "Schläge pro Minute (BPM)" -#: js/FlowBlocks.js:334 -msgid "The Default block is used inside of a Switch to define the default action." +#: js/blocks/MeterBlocks.js:952 +#: js/blocks/MeterBlocks.js:1078 +#: js/blocks/MeterBlocks.js:1135 +msgid "bpm" msgstr "" -#: js/FlowBlocks.js:342 -msgid "default" +#: js/blocks/MeterBlocks.js:952 +#: js/blocks/MeterBlocks.js:1078 +#: js/blocks/MeterBlocks.js:1135 +msgid "beat value" msgstr "" -#: js/FlowBlocks.js:361 -#: js/FlowBlocks.js:418 -msgid "The Case Block must be used inside of a Switch Block." -msgstr "" +#: js/blocks/MeterBlocks.js:1024 +#: js/blocks/MeterBlocks.js:1167 +#: js/blocks/MeterBlocks.js:1241 +msgid "Beats per minute must be > 30." +msgstr "Schläge pro Minute (BPM) müssen > 30 sein" + +#: js/blocks/MeterBlocks.js:1027 +#: js/blocks/MeterBlocks.js:1170 +#: js/blocks/MeterBlocks.js:1244 +msgid "Maximum beats per minute is 1000." +msgstr "Die maximalen Schläge pro Minute (BPM) sind 1000 " -#: js/FlowBlocks.js:389 -msgid "The Case block is used inside of a Switch to define matches." +#: js/blocks/MeterBlocks.js:1068 +msgid "The Beats per minute block sets the number of 1/4 notes per minute." msgstr "" -#: js/FlowBlocks.js:397 -msgid "case" +#: js/blocks/MeterBlocks.js:1279 +#.TRANS: anacrusis +msgid "pickup" msgstr "" -#: js/FlowBlocks.js:446 -msgid "The Switch block will run the code in the matching Case." +#: js/blocks/MeterBlocks.js:1367 +msgid "number of beats" msgstr "" -#: js/FlowBlocks.js:454 -msgid "switch" +#: js/blocks/NumberBlocks.js:28 +msgid "The Int block returns an integer." msgstr "" -#: js/FlowBlocks.js:595 -msgid "The Stop block will stop a loop" -msgstr "" +#: js/blocks/NumberBlocks.js:34 +msgid "int" +msgstr "aufrunden" -#: js/FlowBlocks.js:597 -msgid "Forever, Repeat, While, or Until." +#: js/blocks/NumberBlocks.js:73 +msgid "The Mod block returns the remainder from a division." msgstr "" -#: js/FlowBlocks.js:604 -#: js/phrasemaker.js:3799 -#: js/musickeyboard.js:629 -#: js/musickeyboard.js:631 -#: js/timbre.js:417 -#: js/timbre.js:419 -#: plugins/rodi.rtp:29 -#: plugins/rodi.rtp:73 -#: plugins/rodi.rtp:413 -msgid "stop" -msgstr "Anhalten" +#: js/blocks/NumberBlocks.js:79 +msgid "mod" +msgstr "mod" -#: js/FlowBlocks.js:653 -msgid "The Waitfor block will wait until the condition is true." +#: js/blocks/NumberBlocks.js:141 +msgid "The Power block calculates a power function." msgstr "" -#: js/FlowBlocks.js:661 -msgid "wait for" -msgstr "Warte auf" - -#: js/FlowBlocks.js:732 -msgid "The Until block will repeat until the condition is true." +#: js/blocks/NumberBlocks.js:196 +msgid "The Sqrt block returns the square root." msgstr "" -#: js/FlowBlocks.js:740 -msgid "until" -msgstr "bis" +#: js/blocks/NumberBlocks.js:202 +msgid "sqrt" +msgstr "Quadratwurzel" -#: js/FlowBlocks.js:742 -#: js/FlowBlocks.js:822 -msgid "do2" +#: js/blocks/NumberBlocks.js:248 +msgid "The Abs block returns the absolute value." msgstr "" -#: js/FlowBlocks.js:812 -msgid "The While block will repeat while the condition is true." +#: js/blocks/NumberBlocks.js:254 +msgid "abs" msgstr "" -#: js/FlowBlocks.js:820 -msgid "while" -msgstr "solange" - -#: js/FlowBlocks.js:903 -#: js/FlowBlocks.js:968 -#: js/FlowBlocks.js:979 -msgid "In this example if the mouse button is pressed a snare drum will play." +#: js/blocks/NumberBlocks.js:295 +msgid "The Distance block returns the distance between two points. For example, between the mouse and the center of the screen." msgstr "" -#: js/FlowBlocks.js:925 -#: js/FlowBlocks.js:988 -msgid "if" -msgstr "wenn" - -#: js/FlowBlocks.js:927 -#: js/FlowBlocks.js:990 -msgid "then" -msgstr "dann" +#: js/blocks/NumberBlocks.js:301 +#: plugins/rodi.rtp:310 +msgid "distance" +msgstr "Strecke" -#: js/FlowBlocks.js:927 -msgid "else" -msgstr "sonst" +#: js/blocks/NumberBlocks.js:361 +msgid "The Divide block is used to divide." +msgstr "" -#: js/FlowBlocks.js:1025 -msgid "The Forever block will repeat the contained blocks forever." +#: js/blocks/NumberBlocks.js:441 +msgid "The Multiply block is used to multiply." msgstr "" -#: js/FlowBlocks.js:1037 -msgid "forever" -msgstr "fortlaufend" +#: js/blocks/NumberBlocks.js:612 +msgid "The Minus block is used to subtract." +msgstr "" -#: js/FlowBlocks.js:1073 -msgid "The Repeat block will repeat the contained blocks." +#: js/blocks/NumberBlocks.js:723 +msgid "The Plus block is used to add." msgstr "" -#: js/FlowBlocks.js:1075 -msgid "In this example the note will be played 4 times." +#: js/blocks/NumberBlocks.js:849 +msgid "The One-of block returns one of two choices." msgstr "" -#: js/FlowBlocks.js:1083 -msgid "repeat" -msgstr "wiederhole" +#: js/blocks/NumberBlocks.js:856 +#: js/blocks/PitchBlocks.js:616 +msgid "one of" +msgstr "einer von" -#: js/FlowBlocks.js:1123 -msgid "duplicate factor" -msgstr "Faktor verdoppeln" +#: js/blocks/NumberBlocks.js:858 +msgid "this" +msgstr "diese/dieser/dieses" -#: js/PitchBlocks.js:39 -#: js/musicutils.js:722 -#: js/musicutils.js:1117 -#: js/synthutils.js:112 -#.TRANS: square wave -msgid "square" -msgstr "Quadrat" +#: js/blocks/NumberBlocks.js:858 +msgid "that" +msgstr "jene/jener/jenes" -#: js/PitchBlocks.js:62 -#: js/ToneBlocks.js:39 -#: js/musicutils.js:723 -#: js/musicutils.js:1118 -#: js/synthutils.js:116 -#.TRANS: triangle wave -msgid "triangle" -msgstr "Dreieck" +#: js/blocks/NumberBlocks.js:913 +msgid "The Random block returns a random number." +msgstr "" -#: js/PitchBlocks.js:85 -#: js/musicutils.js:721 -#: js/musicutils.js:1116 -#: js/synthutils.js:110 -#.TRANS: sine wave -msgid "sine" -msgstr "Sinus" +#: js/blocks/NumberBlocks.js:920 +msgid "random" +msgstr "Zufallszahl" -#: js/PitchBlocks.js:108 -#: js/musicutils.js:724 -#: js/musicutils.js:1119 -#: js/synthutils.js:114 -#.TRANS: sawtooth wave -msgid "sawtooth" -msgstr "Sägezahn" +#: js/blocks/NumberBlocks.js:922 +msgid "min" +msgstr "min" -#: js/PitchBlocks.js:141 -#.TRANS: musical transposition (adjustment of pitch up or down) -msgid "transposition" -msgstr "Versetzung" +#: js/blocks/NumberBlocks.js:922 +msgid "max" +msgstr "max" -#: js/PitchBlocks.js:168 -#.TRANS: step down one note in current musical scale -msgid "scalar step down" +#: js/blocks/NumberBlocks.js:986 +msgid "The Number block holds a number." msgstr "" -#: js/PitchBlocks.js:172 -msgid "The Scalar step down block returns the number of semi-tones down to the previous note in the current key and mode." -msgstr "" +#: js/blocks/OrnamentBlocks.js:32 +msgid "staccato factor" +msgstr "Staccato-Faktor" -#: js/PitchBlocks.js:190 -#.TRANS: step up one note in current musical scale -msgid "scalar step up" -msgstr "" +#: js/blocks/OrnamentBlocks.js:108 +msgid "slur factor" +msgstr "Legato-Faktor" -#: js/PitchBlocks.js:194 -msgid "The Scalar step up block returns the number of semi-tones up to the next note in the current key and mode." +#: js/blocks/OrnamentBlocks.js:217 +#: js/blocks/OrnamentBlocks.js:309 +#.TRANS: the neighbor refers to a neighboring note, e.g., D is a neighbor of C +msgid "neighbor" msgstr "" -#: js/PitchBlocks.js:212 -#.TRANS: the change measured in half-steps between the current pitch and the previous pitch -msgid "change in pitch" +#: js/blocks/OrnamentBlocks.js:293 +msgid "The Neighbor block rapidly switches between neighboring pitches." msgstr "" -#: js/PitchBlocks.js:216 -msgid "The Change in pitch block is the difference (in half steps) between the current pitch being played and the previous pitch played." +#: js/blocks/OrnamentBlocks.js:364 +msgid "glide" msgstr "" -#: js/PitchBlocks.js:243 -#.TRANS: the change measured in scale-steps between the current pitch and the previous pitch -msgid "scalar change in pitch" -msgstr "" +#: js/blocks/OrnamentBlocks.js:479 +#: js/blocks/OrnamentBlocks.js:643 +msgid "slur" +msgstr "Legato" -#: js/PitchBlocks.js:250 -#: js/PitchBlocks.js:432 -#: js/PitchBlocks.js:1629 -#: js/DictActions.js:89 -#: js/temperament.js:477 -#: js/temperament.js:481 -#: js/temperament.js:714 -#.TRANS: convert current note to piano key (1-88) -#.TRANS: a mapping of pitch to the 88 piano keys -msgid "pitch number" -msgstr "" +#: js/blocks/OrnamentBlocks.js:558 +#: js/blocks/OrnamentBlocks.js:710 +#.TRANS: play each note sharply detached from the others +msgid "staccato" +msgstr "Staccato" -#: js/PitchBlocks.js:256 -msgid "The Pitch number block is the value of the pitch of the note currently being played." +#: js/blocks/RhythmBlocks.js:182 +#: js/blocks/RhythmBlocks.js:1086 +#: js/blocks/RhythmBlocks.js:1162 +msgid "Note value must be greater than 0." msgstr "" -#: js/PitchBlocks.js:329 -#: js/PitchBlocks.js:433 -#.TRANS: the current pitch expressed in Hertz -msgid "pitch in hertz" -msgstr "" +#: js/blocks/RhythmBlocks.js:215 +#: js/blocks/RhythmBlocks.js:278 +#: js/blocks/RhythmBlocks.js:350 +#.TRANS: swing is a rhythmic variation that emphasises the offbeat +msgid "swing" +msgstr "Swing" -#: js/PitchBlocks.js:334 -msgid "The Pitch in Hertz block is the value in Hertz of the pitch of the note currently being played." -msgstr "" +#: js/blocks/RhythmBlocks.js:355 +#.TRANS: the amount to shift to the offbeat note +msgid "swing value" +msgstr "Swing-Wert" -#: js/PitchBlocks.js:367 -#: js/DictActions.js:87 -msgid "current pitch" +#: js/blocks/RhythmBlocks.js:419 +msgid "The Skip notes block will cause notes to be skipped." msgstr "" -#: js/PitchBlocks.js:373 -msgid "The Current Pitch block is used with the Pitch Converter block. In the example above, current pitch, sol 4, is displayed as 392 hertz." -msgstr "" +#: js/blocks/RhythmBlocks.js:427 +#.TRANS: substitute rests on notes being skipped +msgid "skip notes" +msgstr "Noten überspringen" -#: js/PitchBlocks.js:410 -msgid "This block converts the pitch value of the last note played into different formats such as hertz, letter name, pitch number, et al." -msgstr "" +#: js/blocks/RhythmBlocks.js:489 +#.TRANS: speed up note duration by some factor, e.g. convert 1/4 to 1/8 notes by using a factor of 2 +msgid "multiply note value" +msgstr "Schläge erhöhen" -#: js/PitchBlocks.js:434 -msgid "alphabet" +#: js/blocks/RhythmBlocks.js:542 +msgid "The Tie block works on pairs of notes, combining them into one note." msgstr "" -#: js/PitchBlocks.js:436 -#.TRANS: Translate as "alphabet class" -msgid "letter class" -msgstr "" +#: js/blocks/RhythmBlocks.js:550 +#.TRANS: tie notes together into one longer note +msgid "tie" +msgstr "Zusammenführen" -#: js/PitchBlocks.js:437 -msgid "solfege class" -msgstr "" +#: js/blocks/RhythmBlocks.js:591 +#: js/blocks/RhythmBlocks.js:671 +#.TRANS: a dotted note is played for 1.5x its value, e.g., 1/8. --> 3/16 +msgid "dot" +msgstr "Punkt" -#: js/PitchBlocks.js:438 -msgid "staff y" +#: js/blocks/RhythmBlocks.js:619 +#: js/turtleactions/RhythmActions.js:221 +msgid "An argument of -1 results in a note value of 0." msgstr "" -#: js/PitchBlocks.js:439 -msgid "solfege syllable" +#: js/blocks/RhythmBlocks.js:661 +msgid "The Dot block extends the duration of a note by 50%." msgstr "" -#: js/PitchBlocks.js:440 -msgid "pitch class" +#: js/blocks/RhythmBlocks.js:663 +msgid "Eg a dotted quarter note will play for 3/8 (1/4 + 1/8) of a beat." msgstr "" -#: js/PitchBlocks.js:441 -msgid "scalar class" +#: js/blocks/RhythmBlocks.js:765 +#.TRANS: Japanese only: note value block for drum +msgid "note value drum" msgstr "" -#: js/PitchBlocks.js:443 -msgid "nth degree" +#: js/blocks/RhythmBlocks.js:829 +msgid "392 hertz" msgstr "" -#: js/PitchBlocks.js:444 -msgid "pitch to shade" +#: js/blocks/RhythmBlocks.js:1119 +msgid "The Note block is a container for one or more Pitch blocks." msgstr "" -#: js/PitchBlocks.js:445 -msgid "pitch to color" +#: js/blocks/RhythmBlocks.js:1121 +msgid "The Note block specifies the duration (note value) of its contents." msgstr "" -#: js/PitchBlocks.js:629 -#: js/musickeyboard.js:565 -#.TRANS: MIDI is a technical standard for electronic music -msgid "MIDI" -msgstr "" +#: js/blocks/RhythmBlocks.js:1128 +#: js/blocks/PitchBlocks.js:974 +#: js/blocks/PitchBlocks.js:1007 +#: js/blocks/ProgramBlocks.js:1186 +#: js/blocks/ProgramBlocks.js:1227 +#: js/widgets/status.js:190 +#: js/widgets/temperament.js:464 +#: js/widgets/temperament.js:486 +#: js/widgets/temperament.js:496 +#: js/widgets/temperament.js:617 +#: plugins/rodi.rtp:192 +#.TRANS: a musical note consisting of pitch and duration +msgid "note" +msgstr "Note" -#: js/PitchBlocks.js:642 -#.TRANS: set an offset associated with the numeric piano keyboard mapping -msgid "set pitch number offset" +#: js/blocks/RhythmBlocks.js:1130 +msgid "value2" msgstr "" -#: js/PitchBlocks.js:645 -msgid "The Set pitch number offset block is used to set the offset for mapping pitch numbers to pitch and octave." +#: js/blocks/RhythmBlocks.js:1200 +msgid "define frequency" msgstr "" -#: js/PitchBlocks.js:679 -#.TRANS: convert piano key number (1-88) to pitch -msgid "number to pitch" -msgstr "Taste für Tonlage festlegen" +#: js/blocks/RhythmBlocks.js:1218 +#: js/widgets/temperament.js:787 +#: js/widgets/temperament.js:1587 +msgid "octave space" +msgstr "" -#: js/PitchBlocks.js:682 -msgid "The Number to pitch block will convert a pitch number to a pich name." +#: js/blocks/SensorsBlocks.js:36 +msgid "The Input block prompts for keyboard input." msgstr "" -#: js/PitchBlocks.js:715 -#.TRANS: convert piano key number (1-88) to octave -msgid "number to octave" -msgstr "Taste für oktave festlegen" +#: js/blocks/SensorsBlocks.js:46 +msgid "input" +msgstr "" -#: js/PitchBlocks.js:717 -msgid "The Number to octave block will convert a pitch number to an octave." +#: js/blocks/SensorsBlocks.js:64 +msgid "Input a value" msgstr "" -#: js/PitchBlocks.js:726 -msgid "y to pitch" +#: js/blocks/SensorsBlocks.js:126 +msgid "input value" msgstr "" -#: js/PitchBlocks.js:729 -msgid "Y to pitch block will convert a staff y position to corresponding pitch notation." +#: js/blocks/SensorsBlocks.js:131 +msgid "The Input-value block stores the input." msgstr "" -#: js/PitchBlocks.js:841 -msgid "accidental selector" +#: js/blocks/SensorsBlocks.js:238 +msgid "loudness" +msgstr "Lautstärke" + +#: js/blocks/SensorsBlocks.js:245 +msgid "The Loudness block returns the volume detected by the microphone." msgstr "" -#: js/PitchBlocks.js:844 -msgid "The Accidental selector block is used to choose between double-sharp, sharp, natural, flat, and double-flat." +#: js/blocks/SensorsBlocks.js:300 +msgid "click" +msgstr "Klicken" + +#: js/blocks/SensorsBlocks.js:306 +msgid "The Click block triggers an event if a mouse has been clicked." msgstr "" -#: js/PitchBlocks.js:858 -msgid "Pitch can be specified in terms of ni dha pa ma ga re sa." +#: js/blocks/SensorsBlocks.js:313 +msgid "The Click block triggers an event if a turtle has been clicked." msgstr "" -#: js/PitchBlocks.js:872 -msgid "Pitch can be specified in terms of C D E F G A B." +#: js/blocks/SensorsBlocks.js:342 +msgid "cursor over" msgstr "" -#: js/PitchBlocks.js:883 -msgid "solfege" +#: js/blocks/SensorsBlocks.js:387 +msgid "cursor out" msgstr "" -#: js/PitchBlocks.js:886 -msgid "Pitch can be specified in terms of do re mi fa sol la ti." +#: js/blocks/SensorsBlocks.js:433 +msgid "cursor button down" msgstr "" -#: js/PitchBlocks.js:920 -msgid "The Invert block rotates any contained notes around a target note." +#: js/blocks/SensorsBlocks.js:477 +msgid "cursor button up" msgstr "" -#: js/PitchBlocks.js:927 -#.TRANS: pitch inversion rotates a pitch around another pitch -msgid "invert" -msgstr "Umdrehen" +#: js/blocks/SensorsBlocks.js:521 +#: js/blocks/PenBlocks.js:48 +#: plugins/rodi.rtp:219 +msgid "blue" +msgstr "blau" -#: js/PitchBlocks.js:929 -#: js/PitchBlocks.js:935 -#: js/PitchActions.js:727 -#: js/musicutils.js:726 -#: js/musicutils.js:902 -#.TRANS: invert based on even or odd number or musical scale -#.TRANS: even numbers -msgid "even" -msgstr "" +#: js/blocks/SensorsBlocks.js:577 +#: js/blocks/PenBlocks.js:64 +#: plugins/rodi.rtp:218 +msgid "green" +msgstr "grün" -#: js/PitchBlocks.js:935 -#: js/PitchActions.js:729 -#: js/musicutils.js:728 -#: js/musicutils.js:903 -#.TRANS: odd numbers -msgid "odd" +#: js/blocks/SensorsBlocks.js:633 +#: js/blocks/PenBlocks.js:112 +#: plugins/rodi.rtp:217 +msgid "red" +msgstr "rot" + +#: js/blocks/SensorsBlocks.js:638 +msgid "The Get red block returns the red component of the pixel under the mouse." msgstr "" -#: js/PitchBlocks.js:935 -#: js/PitchActions.js:731 -#: js/musicutils.js:729 -#: js/musicutils.js:904 -msgid "scalar" +#: js/blocks/SensorsBlocks.js:644 +msgid "The Get red block returns the red component of the pixel under the turtle." msgstr "" -#: js/PitchBlocks.js:966 -#.TRANS: pitch inversion rotates a pitch around another pitch (odd number) -msgid "invert (odd)" -msgstr "Umkehren (ungerade)" - -#: js/PitchBlocks.js:999 -#.TRANS: pitch inversion rotates a pitch around another pitch (even number) -msgid "invert (even)" -msgstr "Umkehren (gerade)" +#: js/blocks/SensorsBlocks.js:685 +#: plugins/rodi.rtp:216 +msgid "pixel color" +msgstr "Pixelfarbe" -#: js/PitchBlocks.js:1020 -#.TRANS: register is the octave of the current pitch -msgid "register" +#: js/blocks/SensorsBlocks.js:690 +msgid "The Get pixel block returns the color of the pixel under the mouse." msgstr "" -#: js/PitchBlocks.js:1024 -msgid "The Register block provides an easy way to modify the register (octave) of the notes that follow it." +#: js/blocks/SensorsBlocks.js:696 +msgid "The Get pixel block returns the color of the pixel under the turtle." msgstr "" -#: js/PitchBlocks.js:1074 -msgid "The Semi-tone transposition block will shift the pitches contained inside Note blocks up (or down) by half steps." -msgstr "" +#: js/blocks/SensorsBlocks.js:758 +msgid "time" +msgstr "Zeit" -#: js/PitchBlocks.js:1076 -msgid "In the example shown above, sol is shifted up to sol#." +#: js/blocks/SensorsBlocks.js:804 +msgid "cursor y" msgstr "" -#: js/PitchBlocks.js:1082 -#.TRANS: adjust the amount of shift (up or down) of a pitch -msgid "semi-tone transpose" +#: js/blocks/SensorsBlocks.js:809 +msgid "The Cursor Y block returns the vertical position of the mouse." msgstr "" -#: js/PitchBlocks.js:1115 -msgid "The Transpose by Ratio block will shift the pitches contained inside Note blocks up (or down) by a ratio" +#: js/blocks/SensorsBlocks.js:845 +msgid "cursor x" msgstr "" -#: js/PitchBlocks.js:1121 -#.TRANS: adjust the amount of shift (up or down) of a pitch -msgid "transpose by ratio" +#: js/blocks/SensorsBlocks.js:850 +msgid "The Cursor X block returns the horizontal position of the mouse." msgstr "" -#: js/PitchBlocks.js:1204 -#.TRANS: down sixth means the note is five scale degrees below current note -msgid "down sixth" -msgstr "" +#: js/blocks/SensorsBlocks.js:886 +msgid "mouse button" +msgstr "Maustaste" -#: js/PitchBlocks.js:1223 -#.TRANS: down third means the note is two scale degrees below current note -msgid "down third" +#: js/blocks/SensorsBlocks.js:888 +msgid "The Mouse-button block returns True if the mouse button is pressed." msgstr "" -#: js/PitchBlocks.js:1242 -#.TRANS: seventh means the note is the six scale degrees above current note -msgid "seventh" -msgstr "" +#: js/blocks/SensorsBlocks.js:934 +msgid "to ASCII" +msgstr "Zu ASCII" -#: js/PitchBlocks.js:1261 -#.TRANS: sixth means the note is the five scale degrees above current note -msgid "sixth" +#: js/blocks/SensorsBlocks.js:938 +msgid "The To ASCII block converts numbers to letters." msgstr "" -#: js/PitchBlocks.js:1280 -#.TRANS: fifth means the note is the four scale degrees above current note -msgid "fifth" +#: js/blocks/SensorsBlocks.js:1005 +msgid "The Keyboard block returns computer keyboard input." msgstr "" -#: js/PitchBlocks.js:1300 -#.TRANS: fourth means the note is three scale degrees above current note -msgid "fourth" +#: js/blocks/RhythmBlockPaletteBlocks.js:50 +#: js/blocks/RhythmBlockPaletteBlocks.js:233 +#.TRANS: rhythm block +#.TRANS: translate "rhythm1" as rhythm +msgid "rhythm1" msgstr "" -#: js/PitchBlocks.js:1319 -#.TRANS: third means the note is two scale degrees above current note -msgid "third" -msgstr "" +#: js/blocks/RhythmBlockPaletteBlocks.js:70 +#: js/blocks/RhythmBlockPaletteBlocks.js:252 +#: js/blocks/RhythmBlockPaletteBlocks.js:485 +#: js/blocks/RhythmBlockPaletteBlocks.js:554 +#: js/blocks/RhythmBlockPaletteBlocks.js:875 +msgid "number of notes" +msgstr "Anzahl der Noten" -#: js/PitchBlocks.js:1338 -#.TRANS: second means the note is one scale degree above current note -msgid "second" +#: js/blocks/RhythmBlockPaletteBlocks.js:126 +msgid "polyphonic rhythm" msgstr "" -#: js/PitchBlocks.js:1379 -msgid "The Scalar transposition block will shift the pitches contained inside Note blocks up (or down) the scale." +#: js/blocks/RhythmBlockPaletteBlocks.js:219 +msgid "The Rhythm block is used to generate rhythm patterns." msgstr "" -#: js/PitchBlocks.js:1381 -msgid "In the example shown above, sol is shifted up to la." -msgstr "" +#: js/blocks/RhythmBlockPaletteBlocks.js:280 +msgid "1/64 note" +msgstr "1/64 Note" -#: js/PitchBlocks.js:1388 -#.TRANS: adjust the amount of shift (up or down) of a pitch by musical scale (scalar) steps -msgid "scalar transpose" -msgstr "" +#: js/blocks/RhythmBlockPaletteBlocks.js:304 +msgid "1/32 note" +msgstr "1/32 Note" -#: js/PitchBlocks.js:1423 -msgid "The Accidental block is used to create sharps and flats" +#: js/blocks/RhythmBlockPaletteBlocks.js:332 +msgid "1/16 note" +msgstr "1/16 Note" + +#: js/blocks/RhythmBlockPaletteBlocks.js:360 +msgid "eighth note" +msgstr "1/8 Note" + +#: js/blocks/RhythmBlockPaletteBlocks.js:388 +msgid "quarter note" +msgstr "1/4 Note" + +#: js/blocks/RhythmBlockPaletteBlocks.js:416 +msgid "half note" +msgstr "1/2 Note" + +#: js/blocks/RhythmBlockPaletteBlocks.js:444 +msgid "whole note" +msgstr "Ganze Note" + +#: js/blocks/RhythmBlockPaletteBlocks.js:482 +#: js/blocks/RhythmBlockPaletteBlocks.js:551 +#: js/blocks/RhythmBlockPaletteBlocks.js:602 +#.TRANS: A tuplet is a note value divided into irregular time values. +msgid "tuplet" +msgstr "Triplet" + +#: js/blocks/RhythmBlockPaletteBlocks.js:768 +msgid "septuplet" msgstr "" -#: js/PitchBlocks.js:1430 -#.TRANS: An accidental is a modification to a pitch, e.g., sharp or flat. -msgid "accidental override" +#: js/blocks/RhythmBlockPaletteBlocks.js:796 +msgid "quintuplet" msgstr "" -#: js/PitchBlocks.js:1543 -msgid "The Hertz block (in combination with a Number block) will play a sound at the specified frequency." +#: js/blocks/RhythmBlockPaletteBlocks.js:824 +msgid "triplet" msgstr "" -#: js/PitchBlocks.js:1633 -msgid "The Pitch Number block will play a pitch associated by its number, e.g. 0 for C and 7 for G." +#: js/blocks/RhythmBlockPaletteBlocks.js:851 +msgid "simple tuplet" msgstr "" -#: js/PitchBlocks.js:1665 -#: js/PitchBlocks.js:1707 -#.TRANS: a numeric mapping of the notes in an octave based on the musical mode -#.TRANS: a numeric mapping of the notes in an octave based on the musical mode -msgid "nth modal pitch" +#: js/blocks/RhythmBlockPaletteBlocks.js:861 +msgid "Tuplets are a collection of notes that get scaled to a specific duration." msgstr "" -#: js/PitchBlocks.js:1668 -msgid "n^th Modal Pitch takes the pattern of pitches in semitones for a mode and makes each point a degree of the mode," +#: js/blocks/DrumBlocks.js:59 +msgid "The Noise name block is used to select a noise synthesizer." msgstr "" -#: js/PitchBlocks.js:1670 -msgid "starting from 1 and regardless of tonal framework (i.e. not always 8 notes in the octave)" +#: js/blocks/DrumBlocks.js:102 +msgid "The Drum name block is used to select a drum." msgstr "" -#: js/PitchBlocks.js:1711 -msgid "N^th Modal Pitch takes a number as an input as the n^th degree for the given mode. 0 is the first position, 1 is the second, -1 is the note before the first etc." +#: js/blocks/DrumBlocks.js:146 +msgid "The Effects name block is used to select a sound effect." msgstr "" -#: js/PitchBlocks.js:1713 -msgid "The pitches change according to the mode specified without any need for respellings." +#: js/blocks/DrumBlocks.js:163 +msgid "noise" msgstr "" -#: js/PitchBlocks.js:1752 -msgid "Scale Degree is a common convention in music. Scale Degree offers seven possible positions in the scale (1-7) and can be modified via accidentals." +#: js/blocks/DrumBlocks.js:177 +msgid "The Play noise block will generate white, pink, or brown noise." msgstr "" -#: js/PitchBlocks.js:1754 -msgid "Scale Degree 1 is always the first pitch in a given scale, regardless of octave." +#: js/blocks/DrumBlocks.js:317 +msgid "Replace every instance of a pitch with a drum sound." msgstr "" -#: js/PitchBlocks.js:1776 -#.TRANS: step some number of notes in current musical scale -msgid "scalar step" +#: js/blocks/DrumBlocks.js:328 +#.TRANS: map a pitch to a drum sound +msgid "map pitch to drum" msgstr "" -#: js/PitchBlocks.js:1781 -msgid "The Scalar Step block (in combination with a Number block) will play the next pitch in a scale," +#: js/blocks/DrumBlocks.js:395 +msgid "In the example above, a kick drum sound will be played instead of sol." msgstr "" -#: js/PitchBlocks.js:1783 -msgid "eg if the last note played was sol, Scalar Step 1 will play la." +#: js/blocks/DrumBlocks.js:407 +#.TRANS: set the current drum sound for playback +msgid "set drum" +msgstr "Trommel Auswahlen" + +#: js/blocks/DrumBlocks.js:451 +msgid "sound effect" msgstr "" -#: js/PitchBlocks.js:1818 -msgid "The Pitch block specifies the pitch name and octave of a note that together determine the frequency of the note." +#: js/blocks/DrumBlocks.js:489 +msgid "You can use multiple Drum blocks within a Note block." msgstr "" -#: js/GraphicsBlocks.js:46 -#: js/DictActions.js:77 -#: js/DictActions.js:155 -#: js/DictActions.js:189 +#: js/blocks/GraphicsBlocks.js:46 +#: js/turtleactions/DictActions.js:77 +#: js/turtleactions/DictActions.js:144 +#: js/turtleactions/DictActions.js:173 msgid "heading" msgstr "Richtung" -#: js/GraphicsBlocks.js:56 +#: js/blocks/GraphicsBlocks.js:56 msgid "The Heading block returns the orientation of the mouse." msgstr "" -#: js/GraphicsBlocks.js:62 +#: js/blocks/GraphicsBlocks.js:62 msgid "The Heading block returns the orientation of the turtle." msgstr "" -#: js/GraphicsBlocks.js:133 +#: js/blocks/GraphicsBlocks.js:133 msgid "The Y block returns the vertical position of the mouse." msgstr "" -#: js/GraphicsBlocks.js:140 +#: js/blocks/GraphicsBlocks.js:140 msgid "The Y block returns the vertical position of the turtle." msgstr "" -#: js/GraphicsBlocks.js:149 +#: js/blocks/GraphicsBlocks.js:149 msgid "y3" msgstr "" -#: js/GraphicsBlocks.js:219 +#: js/blocks/GraphicsBlocks.js:219 msgid "The X block returns the horizontal position of the mouse." msgstr "" -#: js/GraphicsBlocks.js:226 +#: js/blocks/GraphicsBlocks.js:226 msgid "The X block returns the horizontal position of the turtle." msgstr "" -#: js/GraphicsBlocks.js:235 +#: js/blocks/GraphicsBlocks.js:235 msgid "x3" msgstr "" -#: js/GraphicsBlocks.js:295 +#: js/blocks/GraphicsBlocks.js:295 msgid "scroll xy" msgstr "" -#: js/GraphicsBlocks.js:303 +#: js/blocks/GraphicsBlocks.js:303 msgid "The Scroll XY block moves the canvas." msgstr "" -#: js/GraphicsBlocks.js:313 +#: js/blocks/GraphicsBlocks.js:313 msgid "x2" msgstr "" -#: js/GraphicsBlocks.js:313 +#: js/blocks/GraphicsBlocks.js:313 msgid "y2" msgstr "" -#: js/GraphicsBlocks.js:373 -#: js/temperament.js:213 -#: js/temperament.js:241 +#: js/blocks/GraphicsBlocks.js:373 +#: js/widgets/temperament.js:319 +#: js/widgets/temperament.js:347 msgid "clear" msgstr "löschen" -#: js/GraphicsBlocks.js:426 +#: js/blocks/GraphicsBlocks.js:426 msgid "The Control-point 2 block sets the second control point for the Bezier curve." msgstr "" -#: js/GraphicsBlocks.js:433 +#: js/blocks/GraphicsBlocks.js:433 msgid "control point 2" msgstr "Kontrollpunkt 2" -#: js/GraphicsBlocks.js:436 -#: js/GraphicsBlocks.js:487 -#: js/GraphicsBlocks.js:534 -#: js/GraphicsBlocks.js:750 +#: js/blocks/GraphicsBlocks.js:436 +#: js/blocks/GraphicsBlocks.js:487 +#: js/blocks/GraphicsBlocks.js:534 +#: js/blocks/GraphicsBlocks.js:750 msgid "x1" msgstr "" -#: js/GraphicsBlocks.js:436 -#: js/GraphicsBlocks.js:487 -#: js/GraphicsBlocks.js:534 -#: js/GraphicsBlocks.js:750 +#: js/blocks/GraphicsBlocks.js:436 +#: js/blocks/GraphicsBlocks.js:487 +#: js/blocks/GraphicsBlocks.js:534 +#: js/blocks/GraphicsBlocks.js:750 msgid "y1" msgstr "" -#: js/GraphicsBlocks.js:477 +#: js/blocks/GraphicsBlocks.js:477 msgid "The Control-point 1 block sets the first control point for the Bezier curve." msgstr "" -#: js/GraphicsBlocks.js:484 +#: js/blocks/GraphicsBlocks.js:484 msgid "control point 1" msgstr "Kontrollpunkt 1" -#: js/GraphicsBlocks.js:527 +#: js/blocks/GraphicsBlocks.js:527 msgid "The Bezier block draws a Bezier curve." msgstr "" -#: js/GraphicsBlocks.js:531 +#: js/blocks/GraphicsBlocks.js:531 msgid "bezier" msgstr "Bezier" -#: js/GraphicsBlocks.js:592 +#: js/blocks/GraphicsBlocks.js:592 msgid "The Arc block moves the turtle in an arc." msgstr "" -#: js/GraphicsBlocks.js:600 +#: js/blocks/GraphicsBlocks.js:600 msgid "arc" msgstr "Kreisbogen" -#: js/GraphicsBlocks.js:603 +#: js/blocks/GraphicsBlocks.js:603 msgid "angle" msgstr "Winkel" -#: js/GraphicsBlocks.js:603 +#: js/blocks/GraphicsBlocks.js:603 msgid "radius" msgstr "Radius" -#: js/GraphicsBlocks.js:620 -#: js/GraphicsBlocks.js:767 -#: js/GraphicsBlocks.js:1010 -#: js/GraphicsBlocks.js:1093 +#: js/blocks/GraphicsBlocks.js:620 +#: js/blocks/GraphicsBlocks.js:767 +#: js/blocks/GraphicsBlocks.js:1010 +#: js/blocks/GraphicsBlocks.js:1093 msgid "Value must be within -5000 to 5000 when Wrap Mode is off." msgstr "" -#: js/GraphicsBlocks.js:622 -#: js/GraphicsBlocks.js:769 -#: js/GraphicsBlocks.js:1012 -#: js/GraphicsBlocks.js:1095 +#: js/blocks/GraphicsBlocks.js:622 +#: js/blocks/GraphicsBlocks.js:769 +#: js/blocks/GraphicsBlocks.js:1012 +#: js/blocks/GraphicsBlocks.js:1095 msgid "Value must be within -20000 to 20000 when Wrap Mode is on." msgstr "" -#: js/GraphicsBlocks.js:660 +#: js/blocks/GraphicsBlocks.js:660 msgid "set heading" msgstr "Setze Richtung" -#: js/GraphicsBlocks.js:673 +#: js/blocks/GraphicsBlocks.js:673 msgid "The Set heading block sets the heading of the turtle." msgstr "" -#: js/GraphicsBlocks.js:733 +#: js/blocks/GraphicsBlocks.js:733 msgid "The Set XY block moves the mouse to a specific position on the screen." msgstr "" -#: js/GraphicsBlocks.js:739 +#: js/blocks/GraphicsBlocks.js:739 msgid "The Set XY block moves the turtle to a specific position on the screen." msgstr "" -#: js/GraphicsBlocks.js:747 +#: js/blocks/GraphicsBlocks.js:747 msgid "set xy" msgstr "Setze xy" -#: js/GraphicsBlocks.js:819 +#: js/blocks/GraphicsBlocks.js:819 msgid "The Right block turns the mouse to the right." msgstr "" -#: js/GraphicsBlocks.js:826 +#: js/blocks/GraphicsBlocks.js:826 msgid "The Right block turns the turtle to the right." msgstr "" -#: js/GraphicsBlocks.js:835 +#: js/blocks/GraphicsBlocks.js:835 msgid "right1" msgstr "" -#: js/GraphicsBlocks.js:835 +#: js/blocks/GraphicsBlocks.js:835 #: plugins/rodi.rtp:77 #: plugins/rodi.rtp:340 #: plugins/rodi.rtp:375 msgid "right" msgstr "rechtsherum" -#: js/GraphicsBlocks.js:899 +#: js/blocks/GraphicsBlocks.js:899 msgid "The Left block turns the mouse to the left." msgstr "" -#: js/GraphicsBlocks.js:906 +#: js/blocks/GraphicsBlocks.js:906 msgid "The Left block turns the turtle to the left." msgstr "" -#: js/GraphicsBlocks.js:915 +#: js/blocks/GraphicsBlocks.js:915 msgid "left1" msgstr "" -#: js/GraphicsBlocks.js:915 +#: js/blocks/GraphicsBlocks.js:915 #: plugins/rodi.rtp:79 #: plugins/rodi.rtp:339 #: plugins/rodi.rtp:362 msgid "left" msgstr "linksherum" -#: js/GraphicsBlocks.js:967 -#: js/temperament.js:734 -#: js/temperament.js:933 +#: js/blocks/GraphicsBlocks.js:967 +#: js/widgets/temperament.js:875 +#: js/widgets/temperament.js:1078 #: plugins/rodi.rtp:69 #: plugins/rodi.rtp:387 msgid "back" msgstr "Zurück" -#: js/GraphicsBlocks.js:976 +#: js/blocks/GraphicsBlocks.js:976 msgid "The Back block moves the mouse backward." msgstr "" -#: js/GraphicsBlocks.js:983 +#: js/blocks/GraphicsBlocks.js:983 msgid "The Back block moves the turtle backward." msgstr "" -#: js/GraphicsBlocks.js:1050 +#: js/blocks/GraphicsBlocks.js:1050 #: plugins/rodi.rtp:71 #: plugins/rodi.rtp:400 msgid "forward" msgstr "vorwärts" -#: js/GraphicsBlocks.js:1059 +#: js/blocks/GraphicsBlocks.js:1059 msgid "The Forward block moves the mouse forward." msgstr "" -#: js/GraphicsBlocks.js:1066 +#: js/blocks/GraphicsBlocks.js:1066 msgid "The Forward block moves the turtle forward." msgstr "" -#: js/GraphicsBlocks.js:1154 -#: js/GraphicsBlocks.js:1172 +#: js/blocks/GraphicsBlocks.js:1154 +#: js/blocks/GraphicsBlocks.js:1172 msgid "wrap" msgstr "" -#: js/OrnamentBlocks.js:32 -msgid "staccato factor" -msgstr "Staccato-Faktor" - -#: js/OrnamentBlocks.js:108 -msgid "slur factor" -msgstr "Legato-Faktor" - -#: js/OrnamentBlocks.js:217 -#: js/OrnamentBlocks.js:309 -#.TRANS: the neighbor refers to a neighboring note, e.g., D is a neighbor of C -msgid "neighbor" -msgstr "" - -#: js/OrnamentBlocks.js:293 -msgid "The Neighbor block rapidly switches between neighboring pitches." -msgstr "" - -#: js/OrnamentBlocks.js:364 -msgid "glide" -msgstr "" - -#: js/OrnamentBlocks.js:479 -#: js/OrnamentBlocks.js:643 -msgid "slur" -msgstr "Legato" - -#: js/OrnamentBlocks.js:558 -#: js/OrnamentBlocks.js:710 -#.TRANS: play each note sharply detached from the others -msgid "staccato" -msgstr "Staccato" - -#: js/PenBlocks.js:24 +#: js/blocks/PenBlocks.js:30 msgid "purple" msgstr "" -#: js/PenBlocks.js:37 -#: js/SensorsBlocks.js:521 -#: plugins/rodi.rtp:219 -msgid "blue" -msgstr "blau" - -#: js/PenBlocks.js:50 -#: js/SensorsBlocks.js:577 -#: plugins/rodi.rtp:218 -msgid "green" -msgstr "grün" - -#: js/PenBlocks.js:63 +#: js/blocks/PenBlocks.js:80 msgid "yellow" msgstr "" -#: js/PenBlocks.js:76 +#: js/blocks/PenBlocks.js:96 #: plugins/nutrition.rtp:164 msgid "orange" msgstr "Orange" -#: js/PenBlocks.js:89 -#: js/SensorsBlocks.js:633 -#: plugins/rodi.rtp:217 -msgid "red" -msgstr "rot" - -#: js/PenBlocks.js:102 +#: js/blocks/PenBlocks.js:128 msgid "white" msgstr "" -#: js/PenBlocks.js:115 +#: js/blocks/PenBlocks.js:144 msgid "black" msgstr "" -#: js/PenBlocks.js:128 +#: js/blocks/PenBlocks.js:163 msgid "begin fill" msgstr "Füllen" -#: js/PenBlocks.js:143 +#: js/blocks/PenBlocks.js:190 msgid "end fill" msgstr "Beende Füllung" -#: js/PenBlocks.js:159 -#: js/PenBlocks.js:386 +#: js/blocks/PenBlocks.js:212 +#: js/blocks/PenBlocks.js:560 #.TRANS: set the background color msgid "background" msgstr "Hintergrund" -#: js/PenBlocks.js:206 -#: js/DictActions.js:71 -#: js/DictActions.js:149 -#: js/DictActions.js:186 +#: js/blocks/PenBlocks.js:274 +#: js/turtleactions/DictActions.js:71 +#: js/turtleactions/DictActions.js:138 +#: js/turtleactions/DictActions.js:170 msgid "grey" msgstr "grau" -#: js/PenBlocks.js:210 +#: js/blocks/PenBlocks.js:282 msgid "The Grey block returns the current pen grey value." msgstr "" -#: js/PenBlocks.js:243 -#: js/DictActions.js:69 -#: js/DictActions.js:147 -#: js/DictActions.js:185 +#: js/blocks/PenBlocks.js:340 +#: js/turtleactions/DictActions.js:69 +#: js/turtleactions/DictActions.js:136 +#: js/turtleactions/DictActions.js:169 msgid "shade" msgstr "Schattierung" -#: js/PenBlocks.js:247 +#: js/blocks/PenBlocks.js:347 msgid "The Shade block returns the current pen shade value." msgstr "" -#: js/PenBlocks.js:280 -#: js/DictActions.js:67 -#: js/DictActions.js:145 -#: js/DictActions.js:184 +#: js/blocks/PenBlocks.js:405 +#: js/turtleactions/DictActions.js:67 +#: js/turtleactions/DictActions.js:134 +#: js/turtleactions/DictActions.js:168 msgid "color" msgstr "Farbe" -#: js/PenBlocks.js:285 +#: js/blocks/PenBlocks.js:415 msgid "The Color block returns the current pen color." msgstr "" -#: js/PenBlocks.js:318 -#: js/DictActions.js:73 -#: js/DictActions.js:151 -#: js/DictActions.js:187 +#: js/blocks/PenBlocks.js:470 +#: js/turtleactions/DictActions.js:73 +#: js/turtleactions/DictActions.js:140 +#: js/turtleactions/DictActions.js:171 msgid "pen size" msgstr "Stiftdicke" -#: js/PenBlocks.js:322 +#: js/blocks/PenBlocks.js:474 msgid "The Pen size block returns the current pen size value." msgstr "" -#: js/PenBlocks.js:355 +#: js/blocks/PenBlocks.js:513 msgid "set font" msgstr "Schriftart" -#: js/PenBlocks.js:358 +#: js/blocks/PenBlocks.js:518 msgid "The Set font block sets the font used by the Show block." msgstr "" -#: js/PenBlocks.js:391 +#: js/blocks/PenBlocks.js:567 msgid "The Background block sets the window background color." msgstr "" -#: js/PenBlocks.js:408 +#: js/blocks/PenBlocks.js:598 msgid "The Hollow line block creates a line with a hollow center." msgstr "" -#: js/PenBlocks.js:415 +#: js/blocks/PenBlocks.js:606 #.TRANS: draw a line logo has a hollow space down its center msgid "hollow line" msgstr "Bogen" -#: js/PenBlocks.js:462 +#: js/blocks/PenBlocks.js:675 msgid "The Fill block fills in a shape with a color." msgstr "" -#: js/PenBlocks.js:470 +#: js/blocks/PenBlocks.js:684 #.TRANS: fill in as a solid color msgid "fill" msgstr "Füllen" -#: js/PenBlocks.js:527 +#: js/blocks/PenBlocks.js:761 #.TRANS: raise up the pen so logo it does not draw when it is moved msgid "pen up" msgstr "Stift aus" -#: js/PenBlocks.js:532 +#: js/blocks/PenBlocks.js:768 msgid "The Pen-up block raises the pen so that it does not draw." msgstr "" -#: js/PenBlocks.js:552 +#: js/blocks/PenBlocks.js:802 #.TRANS: put down the pen so logo it draws when it is moved msgid "pen down" msgstr "Stift an" -#: js/PenBlocks.js:557 +#: js/blocks/PenBlocks.js:810 msgid "The Pen-down block lowers the pen so that it draws." msgstr "" -#: js/PenBlocks.js:577 +#: js/blocks/PenBlocks.js:844 #.TRANS: set the width of the line drawn by the pen -msgid "set pen size" -msgstr "Setze Stiftdicke" - -#: js/PenBlocks.js:583 -msgid "The Set-pen-size block changes the size of the pen." -msgstr "" - -#: js/PenBlocks.js:623 -#.TRANS: set degree of translucence of the pen color -msgid "set translucency" -msgstr "Transparenz bestimmen" - -#: js/PenBlocks.js:627 -msgid "The Set translucency block changes the opacity of the pen." -msgstr "" - -#: js/PenBlocks.js:668 -msgid "set hue" -msgstr "Setze Farbton" - -#: js/PenBlocks.js:672 -msgid "The Set hue block changes the color of the pen." -msgstr "" - -#: js/PenBlocks.js:711 -msgid "set shade" -msgstr "Setze Schattierung" - -#: js/PenBlocks.js:717 -msgid "The Set-shade block changes the pen color from dark to light." -msgstr "" - -#: js/PenBlocks.js:757 -#.TRANS: set the level of vividness of the pen color -msgid "set grey" -msgstr "Intensität bestimmen" - -#: js/PenBlocks.js:761 -msgid "The Set grey block changes the vividness of the pen color." -msgstr "" - -#: js/PenBlocks.js:800 -msgid "set color" -msgstr "Setze Farbe" - -#: js/PenBlocks.js:806 -msgid "The Set-color block changes the pen color." -msgstr "" - -#: js/VolumeBlocks.js:35 -msgid "synth volume" -msgstr "" - -#: js/VolumeBlocks.js:39 -msgid "The Synth volume block returns the current volume of the current synthesizer." -msgstr "" - -#: js/VolumeBlocks.js:47 -#: js/musicutils.js:730 -#: js/synthutils.js:56 -#.TRANS: musical instrument -msgid "piano" -msgstr "" - -#: js/VolumeBlocks.js:105 -msgid "master volume" -msgstr "" - -#: js/VolumeBlocks.js:109 -msgid "The Master volume block returns the master volume." -msgstr "" - -#: js/VolumeBlocks.js:355 -#: js/VolumeBlocks.js:524 -msgid "set synth volume" -msgstr "" - -#: js/VolumeBlocks.js:362 -#: js/VolumeBlocks.js:545 -msgid "synth" -msgstr "" - -#: js/VolumeBlocks.js:403 -#: js/VolumeBlocks.js:577 -#: js/VolumeBlocks.js:740 -#: js/VolumeActions.js:173 -msgid "Setting volume to 0." -msgstr "" - -#: js/VolumeBlocks.js:440 -msgid "Synth not found" -msgstr "" - -#: js/VolumeBlocks.js:494 -msgid "set drum volume" -msgstr "" - -#: js/VolumeBlocks.js:530 -msgid "The Set synth volume block will change the volume of a particular synth," -msgstr "" - -#: js/VolumeBlocks.js:532 -msgid "eg guitar violin snare drum etc." -msgstr "" - -#: js/VolumeBlocks.js:534 -msgid "The default volume is 50." -msgstr "" - -#: js/VolumeBlocks.js:536 -msgid "The range is 0 for silence to 100 for full volume." -msgstr "" - -#: js/VolumeBlocks.js:597 -msgid "set panning" -msgstr "" - -#: js/VolumeBlocks.js:603 -msgid "The Set Panning block sets the panning for all synthesizers." -msgstr "" - -#: js/VolumeBlocks.js:625 -msgid "Warning: Sound is coming out from only the left or right side." -msgstr "" +msgid "set pen size" +msgstr "Setze Stiftdicke" -#: js/VolumeBlocks.js:647 -#: js/VolumeBlocks.js:695 -msgid "set master volume" +#: js/blocks/PenBlocks.js:854 +msgid "The Set-pen-size block changes the size of the pen." msgstr "" -#: js/VolumeBlocks.js:653 -msgid "The Set master volume block sets the volume for all synthesizers." -msgstr "" +#: js/blocks/PenBlocks.js:913 +#.TRANS: set degree of translucence of the pen color +msgid "set translucency" +msgstr "Transparenz bestimmen" -#: js/VolumeBlocks.js:784 -msgid "The Set relative volume block changes the volume of the contained notes." +#: js/blocks/PenBlocks.js:921 +msgid "The Set translucency block changes the opacity of the pen." msgstr "" -#: js/VolumeBlocks.js:791 -msgid "set relative volume" -msgstr "" +#: js/blocks/PenBlocks.js:981 +msgid "set hue" +msgstr "Setze Farbton" -#: js/VolumeBlocks.js:857 -msgid "decrescendo" +#: js/blocks/PenBlocks.js:989 +msgid "The Set hue block changes the color of the pen." msgstr "" -#: js/VolumeBlocks.js:921 -msgid "crescendo" -msgstr "Crescendo" +#: js/blocks/PenBlocks.js:1047 +msgid "set shade" +msgstr "Setze Schattierung" -#: js/ToneBlocks.js:34 -msgid "oscillator" +#: js/blocks/PenBlocks.js:1057 +msgid "The Set-shade block changes the pen color from dark to light." msgstr "" -#: js/ToneBlocks.js:44 -#: js/timbre.js:1562 -#.TRANS: Partials refers to the number of sine waves combined into the sound. -msgid "partials" -msgstr "" +#: js/blocks/PenBlocks.js:1111 +#.TRANS: set the level of vividness of the pen color +msgid "set grey" +msgstr "Intensität bestimmen" -#: js/ToneBlocks.js:76 -msgid "You are adding multiple oscillator blocks." +#: js/blocks/PenBlocks.js:1119 +msgid "The Set grey block changes the vividness of the pen color." msgstr "" -#: js/ToneBlocks.js:144 -#: js/timbre.js:1225 -#.TRANS: a duo synthesizer combines a synth with a sequencer -msgid "duo synth" -msgstr "" +#: js/blocks/PenBlocks.js:1172 +msgid "set color" +msgstr "Setze Farbe" -#: js/ToneBlocks.js:149 -msgid "The Duo synth block is a duo-frequency modulator used to define a timbre." +#: js/blocks/PenBlocks.js:1182 +msgid "The Set-color block changes the pen color." msgstr "" -#: js/ToneBlocks.js:157 -#: js/timbre.js:1476 -msgid "vibrato rate" -msgstr "" +#: js/blocks/PitchBlocks.js:141 +#.TRANS: musical transposition (adjustment of pitch up or down) +msgid "transposition" +msgstr "Versetzung" -#: js/ToneBlocks.js:157 -msgid "vibrato intensity" +#: js/blocks/PitchBlocks.js:168 +#.TRANS: step down one note in current musical scale +msgid "scalar step down" msgstr "" -#: js/ToneBlocks.js:185 -#: js/timbre.js:1221 -#.TRANS: AM (amplitude modulation) synthesizer -msgid "AM synth" +#: js/blocks/PitchBlocks.js:172 +msgid "The Scalar step down block returns the number of semi-tones down to the previous note in the current key and mode." msgstr "" -#: js/ToneBlocks.js:189 -msgid "The AM synth block is an amplitude modulator used to define a timbre." +#: js/blocks/PitchBlocks.js:190 +#.TRANS: step up one note in current musical scale +msgid "scalar step up" msgstr "" -#: js/ToneBlocks.js:224 -#: js/timbre.js:1223 -#.TRANS: FM (frequency modulation) synthesizer -msgid "FM synth" +#: js/blocks/PitchBlocks.js:194 +msgid "The Scalar step up block returns the number of semi-tones up to the next note in the current key and mode." msgstr "" -#: js/ToneBlocks.js:228 -msgid "The FM synth block is a frequency modulator used to define a timbre." +#: js/blocks/PitchBlocks.js:212 +#.TRANS: the change measured in half-steps between the current pitch and the previous pitch +msgid "change in pitch" msgstr "" -#: js/ToneBlocks.js:262 -msgid "partial" +#: js/blocks/PitchBlocks.js:216 +msgid "The Change in pitch block is the difference (in half steps) between the current pitch being played and the previous pitch played." msgstr "" -#: js/ToneBlocks.js:265 -msgid "The Partial block is used to specify a weight for a specific partial harmonic." +#: js/blocks/PitchBlocks.js:243 +#.TRANS: the change measured in scale-steps between the current pitch and the previous pitch +msgid "scalar change in pitch" msgstr "" -#: js/ToneBlocks.js:284 -#.TRANS: partials are weighted components in a harmonic series -msgid "Partial weight must be between 0 and 1." +#: js/blocks/PitchBlocks.js:250 +#: js/blocks/PitchBlocks.js:432 +#: js/blocks/PitchBlocks.js:1667 +#: js/turtleactions/DictActions.js:89 +#: js/widgets/temperament.js:610 +#: js/widgets/temperament.js:614 +#: js/widgets/temperament.js:855 +#.TRANS: convert current note to piano key (1-88) +#.TRANS: a mapping of pitch to the 88 piano keys +msgid "pitch number" msgstr "" -#: js/ToneBlocks.js:297 -#.TRANS: partials are weighted components in a harmonic series -msgid "Partial block should be used inside of a Weighted-partials block." +#: js/blocks/PitchBlocks.js:256 +msgid "The Pitch number block is the value of the pitch of the note currently being played." msgstr "" -#: js/ToneBlocks.js:325 -#.TRANS: partials are weighted components in a harmonic series -msgid "weighted partials" +#: js/blocks/PitchBlocks.js:329 +#: js/blocks/PitchBlocks.js:433 +#.TRANS: the current pitch expressed in Hertz +msgid "pitch in hertz" msgstr "" -#: js/ToneBlocks.js:383 -msgid "The Harmonic block will add harmonics to the contained notes." +#: js/blocks/PitchBlocks.js:334 +msgid "The Pitch in Hertz block is the value in Hertz of the pitch of the note currently being played." msgstr "" -#: js/ToneBlocks.js:390 -#.TRANS: A harmonic is an overtone. -msgid "harmonic" +#: js/blocks/PitchBlocks.js:367 +#: js/turtleactions/DictActions.js:87 +msgid "current pitch" msgstr "" -#: js/ToneBlocks.js:431 -msgid "The Distortion block adds distortion to the pitch." +#: js/blocks/PitchBlocks.js:373 +msgid "The Current Pitch block is used with the Pitch Converter block. In the example above, current pitch, sol 4, is displayed as 392 hertz." msgstr "" -#: js/ToneBlocks.js:438 -#: js/timbre.js:2100 -#.TRANS: distortion is an alteration in the sound -msgid "distortion" +#: js/blocks/PitchBlocks.js:410 +msgid "This block converts the pitch value of the last note played into different formats such as hertz, letter name, pitch number, et al." msgstr "" -#: js/ToneBlocks.js:487 -msgid "The Tremolo block adds a wavering effect." +#: js/blocks/PitchBlocks.js:434 +msgid "alphabet" msgstr "" -#: js/ToneBlocks.js:495 -#: js/timbre.js:2092 -#.TRANS: a wavering effect in a musical tone -msgid "tremolo" +#: js/blocks/PitchBlocks.js:436 +#.TRANS: Translate as "alphabet class" +msgid "letter class" msgstr "" -#: js/ToneBlocks.js:500 -#: js/ToneBlocks.js:569 -#: js/ToneBlocks.js:630 -#: js/ToneBlocks.js:689 -#: js/timbre.js:2134 -#: js/timbre.js:2222 -#: js/timbre.js:2317 -#: js/timbre.js:2419 -#.TRANS: rate at which tremolo wavers -msgid "rate" +#: js/blocks/PitchBlocks.js:437 +msgid "solfege class" msgstr "" -#: js/ToneBlocks.js:502 -#: js/ToneBlocks.js:630 -#: js/timbre.js:2137 -#: js/timbre.js:2328 -#.TRANS: amplitude of tremolo waver -msgid "depth" +#: js/blocks/PitchBlocks.js:438 +msgid "staff y" msgstr "" -#: js/ToneBlocks.js:559 -msgid "The Phaser block adds a sweeping sound." +#: js/blocks/PitchBlocks.js:439 +msgid "solfege syllable" msgstr "" -#: js/ToneBlocks.js:566 -#: js/timbre.js:2098 -#.TRANS: alter the phase of the sound -msgid "phaser" +#: js/blocks/PitchBlocks.js:440 +msgid "pitch class" msgstr "" -#: js/ToneBlocks.js:569 -#: js/timbre.js:2422 -msgid "octaves" +#: js/blocks/PitchBlocks.js:441 +msgid "scalar class" msgstr "" -#: js/ToneBlocks.js:569 -#: js/timbre.js:2425 -msgid "base frequency" +#: js/blocks/PitchBlocks.js:443 +msgid "nth degree" msgstr "" -#: js/ToneBlocks.js:619 -msgid "The Chorus block adds a chorus effect." +#: js/blocks/PitchBlocks.js:444 +msgid "pitch to shade" msgstr "" -#: js/ToneBlocks.js:627 -#: js/timbre.js:2096 -#.TRANS: musical effect to simulate a choral sound -msgid "chorus" +#: js/blocks/PitchBlocks.js:445 +msgid "pitch to color" msgstr "" -#: js/ToneBlocks.js:630 -msgid "delay" +#: js/blocks/PitchBlocks.js:629 +#: js/widgets/musickeyboard.js:735 +#.TRANS: MIDI is a technical standard for electronic music +msgid "MIDI" msgstr "" -#: js/ToneBlocks.js:678 -msgid "The Vibrato block adds a rapid, slight variation in pitch." +#: js/blocks/PitchBlocks.js:642 +#.TRANS: set an offset associated with the numeric piano keyboard mapping +msgid "set pitch number offset" msgstr "" -#: js/ToneBlocks.js:686 -#: js/timbre.js:2094 -#.TRANS: a rapid, slight variation in pitch -msgid "vibrato" +#: js/blocks/PitchBlocks.js:645 +msgid "The Set pitch number offset block is used to set the offset for mapping pitch numbers to pitch and octave." msgstr "" -#: js/ToneBlocks.js:689 -#: js/timbre.js:2221 -msgid "intensity" -msgstr "" +#: js/blocks/PitchBlocks.js:679 +#.TRANS: convert piano key number (1-88) to pitch +msgid "number to pitch" +msgstr "Taste für Tonlage festlegen" -#: js/ToneBlocks.js:733 -#.TRANS: select synthesizer -msgid "set synth" +#: js/blocks/PitchBlocks.js:682 +msgid "The Number to pitch block will convert a pitch number to a pich name." msgstr "" -#: js/ToneBlocks.js:804 -msgid "synth name" -msgstr "" +#: js/blocks/PitchBlocks.js:715 +#.TRANS: convert piano key number (1-88) to octave +msgid "number to octave" +msgstr "Taste für oktave festlegen" -#: js/ToneBlocks.js:842 -msgid "set default instrument" +#: js/blocks/PitchBlocks.js:717 +msgid "The Number to octave block will convert a pitch number to an octave." msgstr "" -#: js/ToneBlocks.js:895 -#: js/ToneBlocks.js:943 -#.TRANS: set the characteristics of a custom instrument -msgid "set instrument" +#: js/blocks/PitchBlocks.js:726 +msgid "y to pitch" msgstr "" -#: js/ToneBlocks.js:898 -#: js/ToneBlocks.js:926 -#: js/ToneBlocks.js:932 -msgid "The Set instrument block selects a voice for the synthesizer," +#: js/blocks/PitchBlocks.js:729 +msgid "Y to pitch block will convert a staff y position to corresponding pitch notation." msgstr "" -#: js/ToneBlocks.js:900 -#: js/ToneBlocks.js:934 -msgid "eg guitar piano violin or cello." +#: js/blocks/PitchBlocks.js:841 +msgid "accidental selector" msgstr "" -#: js/ToneBlocks.js:1015 -msgid "Import a sound file to use as an instrument and set its pitch center." +#: js/blocks/PitchBlocks.js:844 +msgid "The Accidental selector block is used to choose between double-sharp, sharp, natural, flat, and double-flat." msgstr "" -#: js/ToneBlocks.js:1110 -msgid "Upload a sound file to connect with the sample block." +#: js/blocks/PitchBlocks.js:858 +msgid "Pitch can be specified in terms of ni dha pa ma ga re sa." msgstr "" -#: js/MeterBlocks.js:34 -#.TRANS: musical meter (time signature), e.g., 4:4 -msgid "current meter" +#: js/blocks/PitchBlocks.js:872 +msgid "Pitch can be specified in terms of C D E F G A B." msgstr "" -#: js/MeterBlocks.js:85 -#.TRANS: number of beats per minute -msgid "beat factor" -msgstr "Anzahl der Schläge pro Minute" - -#: js/MeterBlocks.js:161 -msgid "The Beats per minute block returns the current beats per minute." +#: js/blocks/PitchBlocks.js:884 +msgid "solfege" msgstr "" -#: js/MeterBlocks.js:169 -#: js/status.js:152 -#.TRANS: number of beats played per minute -msgid "beats per minute2" +#: js/blocks/PitchBlocks.js:887 +msgid "Pitch can be specified in terms of do re mi fa sol la ti." msgstr "" -#: js/MeterBlocks.js:169 -#: js/MeterBlocks.js:1056 -#: js/MeterBlocks.js:1133 -#: js/MeterBlocks.js:1211 -#.TRANS: sets tempo by defining a beat and beats per minute -msgid "beats per minute" -msgstr "Schläge pro Minute (BPM)" - -#: js/MeterBlocks.js:233 -#.TRANS: count of current musical measure in meter -msgid "measure count" +#: js/blocks/PitchBlocks.js:922 +msgid "The Invert block rotates any contained notes around a target note." msgstr "" -#: js/MeterBlocks.js:241 -msgid "The Measure count block returns the current measure." -msgstr "" +#: js/blocks/PitchBlocks.js:929 +#.TRANS: pitch inversion rotates a pitch around another pitch +msgid "invert" +msgstr "Umdrehen" -#: js/MeterBlocks.js:290 -#.TRANS: count of current beat in the meter -msgid "beat count" -msgstr "" +#: js/blocks/PitchBlocks.js:968 +#.TRANS: pitch inversion rotates a pitch around another pitch (odd number) +msgid "invert (odd)" +msgstr "Umkehren (ungerade)" -#: js/MeterBlocks.js:300 -#: js/MeterBlocks.js:311 -#: js/MeterBlocks.js:565 -#: js/MeterBlocks.js:576 -msgid "The Beat count block is the number of the current beat," -msgstr "" +#: js/blocks/PitchBlocks.js:1001 +#.TRANS: pitch inversion rotates a pitch around another pitch (even number) +msgid "invert (even)" +msgstr "Umkehren (gerade)" -#: js/MeterBlocks.js:313 -#: js/MeterBlocks.js:578 -msgid "eg 1, 2, 3, or 4." +#: js/blocks/PitchBlocks.js:1022 +#.TRANS: register is the octave of the current pitch +msgid "register" msgstr "" -#: js/MeterBlocks.js:368 -#.TRANS: count the number of notes -msgid "sum note values" +#: js/blocks/PitchBlocks.js:1026 +msgid "The Register block provides an easy way to modify the register (octave) of the notes that follow it." msgstr "" -#: js/MeterBlocks.js:376 -#: js/MeterBlocks.js:440 -msgid "The Note counter block can be used to count the number of contained notes." +#: js/blocks/PitchBlocks.js:1047 +#.TRANS: cents are units used to specify the ratio between pitches. There are 100 cents between successive notes. +msgid "50 cents" msgstr "" -#: js/MeterBlocks.js:432 -#.TRANS: count the number of notes -msgid "note counter" +#: js/blocks/PitchBlocks.js:1102 +msgid "The Semi-tone transposition block will shift the pitches contained inside Note blocks up (or down) by half steps." msgstr "" -#: js/MeterBlocks.js:496 -#.TRANS: number of whole notes that have been played -msgid "whole notes played" +#: js/blocks/PitchBlocks.js:1104 +msgid "In the example shown above, sol is shifted up to sol#." msgstr "" -#: js/MeterBlocks.js:505 -msgid "The Whole notes played block returns the total number of whole notes played." +#: js/blocks/PitchBlocks.js:1110 +#.TRANS: adjust the amount of shift (up or down) of a pitch +msgid "semi-tone transpose" msgstr "" -#: js/MeterBlocks.js:555 -#: js/DictActions.js:83 -#.TRANS: number of notes that have been played -msgid "notes played" +#: js/blocks/PitchBlocks.js:1143 +msgid "The Transpose by Ratio block will shift the pitches contained inside Note blocks up (or down) by a ratio" msgstr "" -#: js/MeterBlocks.js:653 -msgid "The No clock block decouples the notes from the master clock." +#: js/blocks/PitchBlocks.js:1149 +#.TRANS: adjust the amount of shift (up or down) of a pitch +msgid "transpose by ratio" msgstr "" -#: js/MeterBlocks.js:661 -#.TRANS: don't lock notes to master clock -msgid "no clock" -msgstr "Freizeit" - -#: js/MeterBlocks.js:700 -msgid "on weak beat do" +#: js/blocks/PitchBlocks.js:1232 +#.TRANS: down sixth means the note is five scale degrees below current note +msgid "down sixth" msgstr "" -#: js/MeterBlocks.js:705 -msgid "The On-weak-beat block lets you specify actions to take on weak (off) beats." +#: js/blocks/PitchBlocks.js:1251 +#.TRANS: down third means the note is two scale degrees below current note +msgid "down third" msgstr "" -#: js/MeterBlocks.js:750 -msgid "on strong beat" +#: js/blocks/PitchBlocks.js:1270 +#.TRANS: seventh means the note is the six scale degrees above current note +msgid "seventh" msgstr "" -#: js/MeterBlocks.js:758 -msgid "The On-strong-beat block lets you specify actions to take on specified beats." +#: js/blocks/PitchBlocks.js:1289 +#.TRANS: sixth means the note is the five scale degrees above current note +msgid "sixth" msgstr "" -#: js/MeterBlocks.js:769 -msgid "beat" +#: js/blocks/PitchBlocks.js:1308 +#.TRANS: fifth means the note is the four scale degrees above current note +msgid "fifth" msgstr "" -#: js/MeterBlocks.js:813 -msgid "on every beat do" +#: js/blocks/PitchBlocks.js:1328 +#.TRANS: fourth means the note is three scale degrees above current note +msgid "fourth" msgstr "" -#: js/MeterBlocks.js:821 -msgid "The On-every-beat block lets you specify actions to take on every beat." +#: js/blocks/PitchBlocks.js:1347 +#.TRANS: third means the note is two scale degrees above current note +msgid "third" msgstr "" -#: js/MeterBlocks.js:874 -msgid "on every note do" +#: js/blocks/PitchBlocks.js:1366 +#.TRANS: second means the note is one scale degree above current note +msgid "second" msgstr "" -#: js/MeterBlocks.js:882 -msgid "The On-every-note block lets you specify actions to take on every note." +#: js/blocks/PitchBlocks.js:1407 +msgid "The Scalar transposition block will shift the pitches contained inside Note blocks up (or down) the scale." msgstr "" -#: js/MeterBlocks.js:928 -#: js/MeterBlocks.js:999 -#.TRANS: sets tempo by defining a beat and beats per minute -msgid "master beats per minute" -msgstr "Schläge pro Minute (BPM)" - -#: js/MeterBlocks.js:952 -#: js/MeterBlocks.js:1078 -#: js/MeterBlocks.js:1135 -msgid "bpm" +#: js/blocks/PitchBlocks.js:1409 +msgid "In the example shown above, sol is shifted up to la." msgstr "" -#: js/MeterBlocks.js:952 -#: js/MeterBlocks.js:1078 -#: js/MeterBlocks.js:1135 -msgid "beat value" +#: js/blocks/PitchBlocks.js:1416 +#.TRANS: adjust the amount of shift (up or down) of a pitch by musical scale (scalar) steps +msgid "scalar transpose" msgstr "" -#: js/MeterBlocks.js:1024 -#: js/MeterBlocks.js:1167 -#: js/MeterBlocks.js:1241 -msgid "Beats per minute must be > 30." -msgstr "Schläge pro Minute (BPM) müssen > 30 sein" - -#: js/MeterBlocks.js:1027 -#: js/MeterBlocks.js:1170 -#: js/MeterBlocks.js:1244 -msgid "Maximum beats per minute is 1000." -msgstr "Die maximalen Schläge pro Minute (BPM) sind 1000 " - -#: js/MeterBlocks.js:1068 -msgid "The Beats per minute block sets the number of 1/4 notes per minute." +#: js/blocks/PitchBlocks.js:1451 +msgid "The Accidental block is used to create sharps and flats" msgstr "" -#: js/MeterBlocks.js:1279 -#.TRANS: anacrusis -msgid "pickup" +#: js/blocks/PitchBlocks.js:1458 +#.TRANS: An accidental is a modification to a pitch, e.g., sharp or flat. +msgid "accidental override" msgstr "" -#: js/MeterBlocks.js:1367 -msgid "number of beats" +#: js/blocks/PitchBlocks.js:1581 +msgid "The Hertz block (in combination with a Number block) will play a sound at the specified frequency." msgstr "" -#: js/DictBlocks.js:77 -msgid "show dictionary" +#: js/blocks/PitchBlocks.js:1671 +msgid "The Pitch Number block will play a pitch associated by its number, e.g. 0 for C and 7 for G." msgstr "" -#: js/DictBlocks.js:129 -msgid "The Dictionary block returns a dictionary." +#: js/blocks/PitchBlocks.js:1703 +#: js/blocks/PitchBlocks.js:1745 +#.TRANS: a numeric mapping of the notes in an octave based on the musical mode +#.TRANS: a numeric mapping of the notes in an octave based on the musical mode +msgid "nth modal pitch" msgstr "" -#: js/DictBlocks.js:197 -#: js/DictBlocks.js:339 -msgid "The Get-dict block returns a value in the dictionary for a specified key." +#: js/blocks/PitchBlocks.js:1706 +msgid "n^th Modal Pitch takes the pattern of pitches in semitones for a mode and makes each point a degree of the mode," msgstr "" -#: js/DictBlocks.js:212 -#: js/DictBlocks.js:354 -#.TRANS: retrieve a value from the dictionary with a given key -msgid "get value" +#: js/blocks/PitchBlocks.js:1708 +msgid "starting from 1 and regardless of tonal framework (i.e. not always 8 notes in the octave)" msgstr "" -#: js/DictBlocks.js:215 -#: js/DictBlocks.js:216 -#: js/DictBlocks.js:289 -#: js/DictBlocks.js:290 -#: js/DictBlocks.js:357 -#: js/DictBlocks.js:430 -#: js/DictBlocks.js:431 -msgid "key2" +#: js/blocks/PitchBlocks.js:1749 +msgid "N^th Modal Pitch takes a number as an input as the n^th degree for the given mode. 0 is the first position, 1 is the second, -1 is the note before the first etc." msgstr "" -#: js/DictBlocks.js:271 -#: js/DictBlocks.js:411 -msgid "The Set-dict block sets a value in the dictionary for a specified key." +#: js/blocks/PitchBlocks.js:1751 +msgid "The pitches change according to the mode specified without any need for respellings." msgstr "" -#: js/DictBlocks.js:286 -#: js/DictBlocks.js:427 -#.TRANS: set a value in the dictionary for a given key -msgid "set value" +#: js/blocks/PitchBlocks.js:1790 +msgid "Scale Degree is a common convention in music. Scale Degree offers seven possible positions in the scale (1-7) and can be modified via accidentals." msgstr "" -#: js/ExtrasBlocks.js:33 -msgid "fraction" +#: js/blocks/PitchBlocks.js:1792 +msgid "Scale Degree 1 is always the first pitch in a given scale, regardless of octave." msgstr "" -#: js/ExtrasBlocks.js:36 -msgid "Convert a float to a fraction" +#: js/blocks/PitchBlocks.js:1814 +#.TRANS: step some number of notes in current musical scale +msgid "scalar step" msgstr "" -#: js/ExtrasBlocks.js:93 -msgid "save as ABC" +#: js/blocks/PitchBlocks.js:1819 +msgid "The Scalar Step block (in combination with a Number block) will play the next pitch in a scale," msgstr "" -#: js/ExtrasBlocks.js:96 -#: js/ExtrasBlocks.js:132 -#: js/ExtrasBlocks.js:168 -msgid "title" -msgstr "Titel" +#: js/blocks/PitchBlocks.js:1821 +msgid "eg if the last note played was sol, Scalar Step 1 will play la." +msgstr "" -#: js/ExtrasBlocks.js:129 -msgid "save as Lilypond" +#: js/blocks/PitchBlocks.js:1857 +msgid "The Pitch block specifies the pitch name and octave of a note that together determine the frequency of the note." msgstr "" -#: js/ExtrasBlocks.js:165 -msgid "save as SVG" +#: js/blocks/ProgramBlocks.js:33 +msgid "The Load-heap-from-app block loads the heap from a web page." msgstr "" -#: js/ExtrasBlocks.js:216 -msgid "no background" -msgstr "Kein Hintergrund" +#: js/blocks/ProgramBlocks.js:44 +#.TRANS: load the heap contents from a URL +msgid "load heap from App" +msgstr "Lade Stapel aus der App" -#: js/ExtrasBlocks.js:219 -msgid "The No background block eliminates the background from the saved SVG output." -msgstr "" +#: js/blocks/ProgramBlocks.js:95 +msgid "Error parsing JSON data:" +msgstr "Ein Fehler in der Zerteilung der JSON Daten" -#: js/ExtrasBlocks.js:247 -msgid "show blocks" -msgstr "Blöcke anzeigen" +#: js/blocks/ProgramBlocks.js:100 +msgid "404: Page not found" +msgstr "404: Seite nicht gefunden" -#: js/ExtrasBlocks.js:249 -msgid "The Show blocks block shows the blocks." +#: js/blocks/ProgramBlocks.js:133 +msgid "The Save-heap-to-app block saves the heap to a web page." msgstr "" -#: js/ExtrasBlocks.js:274 -msgid "hide blocks" -msgstr "Blöcke verbergen" +#: js/blocks/ProgramBlocks.js:144 +#.TRANS: save the heap contents to a URL +msgid "save heap to App" +msgstr "Speichere Stapel in der App" -#: js/ExtrasBlocks.js:276 -msgid "The Hide blocks block hides the blocks." +#: js/blocks/ProgramBlocks.js:189 +msgid "Cannot find a valid heap for" msgstr "" -#: js/ExtrasBlocks.js:305 -#: js/ExtrasBlocks.js:335 -msgid "The Space block is used to add space between blocks." +#: js/blocks/ProgramBlocks.js:206 +msgid "The Load-heap block loads the heap from a file." msgstr "" -#: js/ExtrasBlocks.js:373 -msgid "wait" -msgstr "Warte" - -#: js/ExtrasBlocks.js:376 -msgid "The Wait block pauses the program for a specified number of seconds." -msgstr "" +#: js/blocks/ProgramBlocks.js:217 +#.TRANS: load the heap from a file +msgid "load heap" +msgstr "Lade Stapel" -#: js/ExtrasBlocks.js:430 -#: plugins/facebook.rtp:30 -msgid "comment" -msgstr "Anmerkung" +#: js/blocks/ProgramBlocks.js:270 +msgid "The file you selected does not contain a valid heap." +msgstr "Die ausgewählte Datei beinhaltet keinen gültigen Stapel" -#: js/ExtrasBlocks.js:466 -msgid "print" -msgstr "Gib aus" +#: js/blocks/ProgramBlocks.js:275 +msgid "The loadHeap block needs a loadFile block." +msgstr "Der … Block braucht einen … Block" -#: js/ExtrasBlocks.js:473 -msgid "The Print block displays text at the top of the screen." +#: js/blocks/ProgramBlocks.js:291 +msgid "The Set-heap block loads the heap." msgstr "" -#: js/ExtrasBlocks.js:579 -msgid "display grid" +#: js/blocks/ProgramBlocks.js:340 +msgid "The block you selected does not contain a valid heap." msgstr "" -#: js/ExtrasBlocks.js:584 -msgid "The Display Grid Block changes the grid type" +#: js/blocks/ProgramBlocks.js:343 +msgid "The Set heap block needs a heap." msgstr "" -#: js/ExtrasBlocks.js:686 -#: js/ExtrasBlocks.js:705 -#: js/ExtrasBlocks.js:728 -#: js/ExtrasBlocks.js:751 -#: js/ExtrasBlocks.js:769 -#: js/ExtrasBlocks.js:788 -#: js/ExtrasBlocks.js:807 -#: js/ExtrasBlocks.js:826 -msgid "unknown" -msgstr "unbekannt" - -#: js/SensorsBlocks.js:36 -msgid "The Input block prompts for keyboard input." +#: js/blocks/ProgramBlocks.js:360 +msgid "The Load-dictionary block loads a dictionary from a file." msgstr "" -#: js/SensorsBlocks.js:46 -msgid "input" +#: js/blocks/ProgramBlocks.js:372 +#.TRANS: load a dictionary from a file +msgid "load dictionary" msgstr "" -#: js/SensorsBlocks.js:64 -msgid "Input a value" +#: js/blocks/ProgramBlocks.js:390 +#: js/blocks/ProgramBlocks.js:658 +#: js/blocks/ToneBlocks.js:1025 +msgid "file" msgstr "" -#: js/SensorsBlocks.js:126 -msgid "input value" +#: js/blocks/ProgramBlocks.js:444 +msgid "The file you selected does not contain a valid dictionary." msgstr "" -#: js/SensorsBlocks.js:131 -msgid "The Input-value block stores the input." +#: js/blocks/ProgramBlocks.js:449 +msgid "The load dictionary block needs a load file block." msgstr "" -#: js/SensorsBlocks.js:238 -msgid "loudness" -msgstr "Lautstärke" +#: js/blocks/ProgramBlocks.js:466 +msgid "The Set-dictionary block loads a dictionary." +msgstr "" -#: js/SensorsBlocks.js:245 -msgid "The Loudness block returns the volume detected by the microphone." +#: js/blocks/ProgramBlocks.js:477 +#.TRANS: load a dictionary from a JSON +msgid "set dictionary" msgstr "" -#: js/SensorsBlocks.js:300 -msgid "click" -msgstr "Klicken" +#: js/blocks/ProgramBlocks.js:546 +msgid "The block you selected does not contain a valid dictionary." +msgstr "" -#: js/SensorsBlocks.js:306 -msgid "The Click block triggers an event if a mouse has been clicked." +#: js/blocks/ProgramBlocks.js:550 +msgid "The set dictionary block needs a dictionary." msgstr "" -#: js/SensorsBlocks.js:313 -msgid "The Click block triggers an event if a turtle has been clicked." +#: js/blocks/ProgramBlocks.js:567 +msgid "The Save-heap block saves the heap to a file." msgstr "" -#: js/SensorsBlocks.js:342 -msgid "cursor over" +#: js/blocks/ProgramBlocks.js:578 +#.TRANS: save the heap to a file +msgid "save heap" +msgstr "Speichere Stapel" + +#: js/blocks/ProgramBlocks.js:629 +msgid "The Save-dictionary block saves a dictionary to a file." msgstr "" -#: js/SensorsBlocks.js:387 -msgid "cursor out" +#: js/blocks/ProgramBlocks.js:640 +#.TRANS: save a dictionary to a file +msgid "save dictionary" msgstr "" -#: js/SensorsBlocks.js:433 -msgid "cursor button down" +#: js/blocks/ProgramBlocks.js:720 +msgid "The Open palette block opens a palette." msgstr "" -#: js/SensorsBlocks.js:477 -msgid "cursor button up" +#: js/blocks/ProgramBlocks.js:727 +msgid "open palette" msgstr "" -#: js/SensorsBlocks.js:638 -msgid "The Get red block returns the red component of the pixel under the mouse." +#: js/blocks/ProgramBlocks.js:785 +msgid "The Delete block block removes a block." msgstr "" -#: js/SensorsBlocks.js:644 -msgid "The Get red block returns the red component of the pixel under the turtle." +#: js/blocks/ProgramBlocks.js:797 +#.TRANS: Move this block to the trash. +msgid "delete block" msgstr "" -#: js/SensorsBlocks.js:685 -#: plugins/rodi.rtp:216 -msgid "pixel color" -msgstr "Pixelfarbe" +#: js/blocks/ProgramBlocks.js:861 +msgid "The Move block block moves a block." +msgstr "" -#: js/SensorsBlocks.js:690 -msgid "The Get pixel block returns the color of the pixel under the mouse." +#: js/blocks/ProgramBlocks.js:869 +#.TRANS: Move the position of a block on the screen. +msgid "move block" msgstr "" -#: js/SensorsBlocks.js:696 -msgid "The Get pixel block returns the color of the pixel under the turtle." +#: js/blocks/ProgramBlocks.js:881 +#: js/blocks/ProgramBlocks.js:1048 +msgid "block number" msgstr "" -#: js/SensorsBlocks.js:758 -msgid "time" -msgstr "Zeit" +#: js/blocks/ProgramBlocks.js:935 +#.TRANS: Run program beginning at this block. +msgid "run block" +msgstr "" -#: js/SensorsBlocks.js:804 -msgid "cursor y" +#: js/blocks/ProgramBlocks.js:1025 +msgid "The Dock block block connections two blocks." msgstr "" -#: js/SensorsBlocks.js:809 -msgid "The Cursor Y block returns the vertical position of the mouse." +#: js/blocks/ProgramBlocks.js:1036 +#.TRANS: We can connect a block to another block. +msgid "connect blocks" msgstr "" -#: js/SensorsBlocks.js:845 -msgid "cursor x" +#: js/blocks/ProgramBlocks.js:1048 +msgid "target block" msgstr "" -#: js/SensorsBlocks.js:850 -msgid "The Cursor X block returns the horizontal position of the mouse." +#: js/blocks/ProgramBlocks.js:1048 +msgid "connection number" msgstr "" -#: js/SensorsBlocks.js:886 -msgid "mouse button" -msgstr "Maustaste" +#: js/blocks/ProgramBlocks.js:1140 +msgid "The Make block block creates a new block." +msgstr "" -#: js/SensorsBlocks.js:888 -msgid "The Mouse-button block returns True if the mouse button is pressed." +#: js/blocks/ProgramBlocks.js:1152 +#.TRANS: Create a new block +msgid "make block" msgstr "" -#: js/SensorsBlocks.js:934 -msgid "to ASCII" -msgstr "Zu ASCII" +#: js/blocks/ProgramBlocks.js:1285 +msgid "Cannot find block" +msgstr "" -#: js/SensorsBlocks.js:938 -msgid "The To ASCII block converts numbers to letters." +#: js/blocks/ProgramBlocks.js:1304 +#: js/blocks/ProgramBlocks.js:1313 +msgid "Warning: block argument type mismatch" msgstr "" -#: js/SensorsBlocks.js:1005 -msgid "The Keyboard block returns computer keyboard input." +#: js/blocks/ProgramBlocks.js:1347 +msgid "The Open project block is used to open a project from a web page." msgstr "" -#: js/IntervalsActions.js:216 -msgid "Adding missing pitch number 0." +#: js/blocks/ProgramBlocks.js:1357 +msgid "open project" +msgstr "Objkt öffnen" + +#: js/blocks/ProgramBlocks.js:1410 +msgid "Please enter a valid URL." msgstr "" -#: js/IntervalsActions.js:224 -msgid "Ignoring pitch numbers less than zero or greater than eleven." +#: js/blocks/ToneBlocks.js:34 +msgid "oscillator" msgstr "" -#: js/IntervalsActions.js:230 -msgid "Ignoring duplicate pitch numbers." +#: js/blocks/ToneBlocks.js:42 +#: js/blocks/WidgetBlocks.js:179 +#: js/widgets/timbre.js:1558 +#: js/widgets/timbre.js:1808 +#.TRANS: there are different types (sine, triangle, square...) of oscillators. +#.TRANS: type of filter, e.g., lowpass, highpass, etc. +msgid "type" msgstr "" -#: js/PitchActions.js:88 -msgid "The Scalar Step Block must be used inside of a Note Block." +#: js/blocks/ToneBlocks.js:44 +#: js/widgets/timbre.js:1562 +#.TRANS: Partials refers to the number of sine waves combined into the sound. +msgid "partials" msgstr "" -#: js/PitchActions.js:107 -msgid "The Scalar Step Block must be preceded by a Pitch Block." +#: js/blocks/ToneBlocks.js:76 +msgid "You are adding multiple oscillator blocks." msgstr "" -#: js/DrumActions.js:231 -msgid "Noise Block: Did you mean to use a Note block?" +#: js/blocks/ToneBlocks.js:144 +#: js/widgets/timbre.js:1225 +#.TRANS: a duo synthesizer combines a synth with a sequencer +msgid "duo synth" msgstr "" -#: js/MeterActions.js:101 -#: js/MeterActions.js:139 -msgid "beats per minute must be greater than" +#: js/blocks/ToneBlocks.js:149 +msgid "The Duo synth block is a duo-frequency modulator used to define a timbre." msgstr "" -#: js/MeterActions.js:111 -#: js/MeterActions.js:149 -msgid "maximum" +#: js/blocks/ToneBlocks.js:157 +#: js/widgets/timbre.js:1476 +msgid "vibrato rate" msgstr "" -#: js/MeterActions.js:117 -#: js/MeterActions.js:155 -msgid "beats per minute is" +#: js/blocks/ToneBlocks.js:157 +msgid "vibrato intensity" msgstr "" -#: js/ToneActions.js:134 -msgid "Vibrato intensity must be between 1 and 100." +#: js/blocks/ToneBlocks.js:185 +#: js/widgets/timbre.js:1221 +#.TRANS: AM (amplitude modulation) synthesizer +msgid "AM synth" msgstr "" -#: js/ToneActions.js:139 -msgid "Vibrato rate must be greater than 0." +#: js/blocks/ToneBlocks.js:189 +msgid "The AM synth block is an amplitude modulator used to define a timbre." msgstr "" -#: js/ToneActions.js:192 -#: js/ToneActions.js:265 -#.TRANS: Depth is the intesity of the tremolo or chorus effect. -msgid "Depth is out of range." +#: js/blocks/ToneBlocks.js:224 +#: js/widgets/timbre.js:1223 +#.TRANS: FM (frequency modulation) synthesizer +msgid "FM synth" msgstr "" -#: js/ToneActions.js:301 -msgid "Distortion must be from 0 to 100." +#: js/blocks/ToneBlocks.js:228 +msgid "The FM synth block is a frequency modulator used to define a timbre." msgstr "" -#: js/ToneActions.js:332 -#.TRANS: partials components in a harmonic series -msgid "Partial must be greater than or equal to 0." +#: js/blocks/ToneBlocks.js:262 +msgid "partial" msgstr "" -#: js/ToneActions.js:378 -#: js/ToneActions.js:417 -#: js/ToneActions.js:456 -#: js/timbre.js:782 -msgid "Unable to use synth due to existing oscillator" +#: js/blocks/ToneBlocks.js:265 +msgid "The Partial block is used to specify a weight for a specific partial harmonic." msgstr "" -#: js/ToneActions.js:388 -#: js/ToneActions.js:427 -msgid "The input cannot be negative." +#: js/blocks/ToneBlocks.js:284 +#.TRANS: partials are weighted components in a harmonic series +msgid "Partial weight must be between 0 and 1." msgstr "" -#: js/DictActions.js:75 -#: js/DictActions.js:153 -#: js/DictActions.js:188 -msgid "font" +#: js/blocks/ToneBlocks.js:297 +#.TRANS: partials are weighted components in a harmonic series +msgid "Partial block should be used inside of a Weighted-partials block." msgstr "" -#: js/musicutils.js:363 -#: js/musicutils.js:471 -#: js/pitchdrummatrix.js:151 -#: js/musickeyboard.js:2563 -msgid "rest" -msgstr "Zurücksetzen" +#: js/blocks/ToneBlocks.js:325 +#.TRANS: partials are weighted components in a harmonic series +msgid "weighted partials" +msgstr "" -#: js/musicutils.js:565 -#.TRANS: ordinal number. Please keep exactly one space between each number. -msgid "1st 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th" +#: js/blocks/ToneBlocks.js:383 +msgid "The Harmonic block will add harmonics to the contained notes." msgstr "" -#: js/musicutils.js:629 -#: js/musicutils.js:812 -#: js/musicutils.js:911 -#.TRANS: augmented is a music term related to intervals -msgid "augmented" -msgstr "übermäßig" +#: js/blocks/ToneBlocks.js:390 +#.TRANS: A harmonic is an overtone. +msgid "harmonic" +msgstr "" -#: js/musicutils.js:631 -#: js/musicutils.js:813 -#: js/musicutils.js:910 -#.TRANS: diminished is a music term related to intervals and mode -msgid "diminished" -msgstr "vermindert" +#: js/blocks/ToneBlocks.js:431 +msgid "The Distortion block adds distortion to the pitch." +msgstr "" -#: js/musicutils.js:639 -#.TRANS: twelve semi-tone scale for music -msgid "chromatic" +#: js/blocks/ToneBlocks.js:438 +#: js/widgets/timbre.js:2100 +#.TRANS: distortion is an alteration in the sound +msgid "distortion" msgstr "" -#: js/musicutils.js:640 -msgid "algerian" +#: js/blocks/ToneBlocks.js:487 +msgid "The Tremolo block adds a wavering effect." msgstr "" -#: js/musicutils.js:641 -msgid "spanish" +#: js/blocks/ToneBlocks.js:495 +#: js/widgets/timbre.js:2092 +#.TRANS: a wavering effect in a musical tone +msgid "tremolo" msgstr "" -#: js/musicutils.js:643 -#.TRANS: modal scale in music -msgid "octatonic" +#: js/blocks/ToneBlocks.js:500 +#: js/blocks/ToneBlocks.js:569 +#: js/blocks/ToneBlocks.js:630 +#: js/blocks/ToneBlocks.js:689 +#: js/widgets/timbre.js:2134 +#: js/widgets/timbre.js:2222 +#: js/widgets/timbre.js:2317 +#: js/widgets/timbre.js:2419 +#.TRANS: rate at which tremolo wavers +msgid "rate" msgstr "" -#: js/musicutils.js:645 -#.TRANS: harmonic major scale in music -msgid "harmonic major" +#: js/blocks/ToneBlocks.js:502 +#: js/blocks/ToneBlocks.js:630 +#: js/widgets/timbre.js:2137 +#: js/widgets/timbre.js:2328 +#.TRANS: amplitude of tremolo waver +msgid "depth" msgstr "" -#: js/musicutils.js:647 -#.TRANS: natural minor scales in music -msgid "natural minor" +#: js/blocks/ToneBlocks.js:559 +msgid "The Phaser block adds a sweeping sound." msgstr "" -#: js/musicutils.js:649 -#.TRANS: harmonic minor scale in music -msgid "harmonic minor" +#: js/blocks/ToneBlocks.js:566 +#: js/widgets/timbre.js:2098 +#.TRANS: alter the phase of the sound +msgid "phaser" msgstr "" -#: js/musicutils.js:651 -#.TRANS: melodic minor scale in music -msgid "melodic minor" +#: js/blocks/ToneBlocks.js:569 +#: js/turtleactions/IntervalsActions.js:114 +#: js/widgets/timbre.js:2422 +msgid "octaves" msgstr "" -#: js/musicutils.js:655 -#.TRANS: modal scale for music -msgid "dorian" +#: js/blocks/ToneBlocks.js:569 +#: js/widgets/timbre.js:2425 +msgid "base frequency" msgstr "" -#: js/musicutils.js:657 -#.TRANS: modal scale for music -msgid "phrygian" +#: js/blocks/ToneBlocks.js:619 +msgid "The Chorus block adds a chorus effect." msgstr "" -#: js/musicutils.js:659 -#.TRANS: modal scale for music -msgid "lydian" +#: js/blocks/ToneBlocks.js:627 +#: js/widgets/timbre.js:2096 +#.TRANS: musical effect to simulate a choral sound +msgid "chorus" msgstr "" -#: js/musicutils.js:661 -#.TRANS: modal scale for music -msgid "mixolydian" +#: js/blocks/ToneBlocks.js:630 +msgid "delay" msgstr "" -#: js/musicutils.js:665 -#.TRANS: modal scale for music -msgid "locrian" +#: js/blocks/ToneBlocks.js:678 +msgid "The Vibrato block adds a rapid, slight variation in pitch." msgstr "" -#: js/musicutils.js:667 -#.TRANS: minor jazz scale for music -msgid "jazz minor" +#: js/blocks/ToneBlocks.js:686 +#: js/widgets/timbre.js:2094 +#.TRANS: a rapid, slight variation in pitch +msgid "vibrato" msgstr "" -#: js/musicutils.js:669 -#.TRANS: bebop scale for music -msgid "bebop" +#: js/blocks/ToneBlocks.js:689 +#: js/widgets/timbre.js:2221 +msgid "intensity" msgstr "" -#: js/musicutils.js:670 -msgid "arabic" +#: js/blocks/ToneBlocks.js:733 +#.TRANS: select synthesizer +msgid "set synth" msgstr "" -#: js/musicutils.js:671 -msgid "byzantine" +#: js/blocks/ToneBlocks.js:804 +msgid "synth name" msgstr "" -#: js/musicutils.js:673 -#.TRANS: musical scale for music by Verdi -msgid "enigmatic" +#: js/blocks/ToneBlocks.js:842 +msgid "set default instrument" msgstr "" -#: js/musicutils.js:674 -msgid "ethiopian" +#: js/blocks/ToneBlocks.js:895 +#: js/blocks/ToneBlocks.js:943 +#.TRANS: set the characteristics of a custom instrument +msgid "set instrument" msgstr "" -#: js/musicutils.js:676 -#.TRANS: Ethiopic scale for music -msgid "geez" +#: js/blocks/ToneBlocks.js:898 +#: js/blocks/ToneBlocks.js:926 +#: js/blocks/ToneBlocks.js:932 +msgid "The Set instrument block selects a voice for the synthesizer," msgstr "" -#: js/musicutils.js:677 -msgid "hindu" +#: js/blocks/ToneBlocks.js:900 +#: js/blocks/ToneBlocks.js:934 +msgid "eg guitar piano violin or cello." msgstr "" -#: js/musicutils.js:678 -msgid "hungarian" +#: js/blocks/ToneBlocks.js:1015 +msgid "Import a sound file to use as an instrument and set its pitch center." msgstr "" -#: js/musicutils.js:680 -#.TRANS: minor Romanian scale for music -msgid "romanian minor" +#: js/blocks/ToneBlocks.js:1110 +msgid "Upload a sound file to connect with the sample block." msgstr "" -#: js/musicutils.js:681 -msgid "spanish gypsy" +#: js/blocks/VolumeBlocks.js:35 +msgid "synth volume" msgstr "" -#: js/musicutils.js:683 -#.TRANS: musical scale for Mid-Eastern music -msgid "maqam" +#: js/blocks/VolumeBlocks.js:39 +msgid "The Synth volume block returns the current volume of the current synthesizer." msgstr "" -#: js/musicutils.js:685 -#.TRANS: minor blues scale for music -msgid "minor blues" +#: js/blocks/VolumeBlocks.js:105 +msgid "master volume" msgstr "" -#: js/musicutils.js:687 -#.TRANS: major blues scale for music -msgid "major blues" +#: js/blocks/VolumeBlocks.js:109 +msgid "The Master volume block returns the master volume." msgstr "" -#: js/musicutils.js:688 -msgid "whole tone" +#: js/blocks/VolumeBlocks.js:355 +#: js/blocks/VolumeBlocks.js:524 +msgid "set synth volume" msgstr "" -#: js/musicutils.js:690 -#.TRANS: pentatonic is a general term that means "five note scale". This scale is typically known as "minor pentatonic" -msgid "minor pentatonic" +#: js/blocks/VolumeBlocks.js:362 +#: js/blocks/VolumeBlocks.js:545 +msgid "synth" msgstr "" -#: js/musicutils.js:692 -#.TRANS: pentatonic is a general term that means "five note scale". This scale is typically known as "major pentatonic" -msgid "major pentatonic" +#: js/blocks/VolumeBlocks.js:403 +#: js/blocks/VolumeBlocks.js:577 +#: js/blocks/VolumeBlocks.js:740 +#: js/turtleactions/VolumeActions.js:173 +msgid "Setting volume to 0." msgstr "" -#: js/musicutils.js:693 -msgid "chinese" +#: js/blocks/VolumeBlocks.js:440 +msgid "Synth not found" msgstr "" -#: js/musicutils.js:694 -msgid "egyptian" +#: js/blocks/VolumeBlocks.js:494 +msgid "set drum volume" msgstr "" -#: js/musicutils.js:696 -#.TRANS: https://en.wikipedia.org/wiki/Hirajoshi_scale NOTE: There are three different versions of this scale -msgid "hirajoshi" +#: js/blocks/VolumeBlocks.js:530 +msgid "The Set synth volume block will change the volume of a particular synth," msgstr "" -#: js/musicutils.js:697 -msgid "Japan" +#: js/blocks/VolumeBlocks.js:532 +msgid "eg guitar violin snare drum etc." msgstr "" -#: js/musicutils.js:699 -#.TRANS: https://en.wikipedia.org/wiki/In_scale and https://en.wikipedia.org/wiki/Sakura_Sakura -msgid "in" +#: js/blocks/VolumeBlocks.js:534 +msgid "The default volume is 50." msgstr "" -#: js/musicutils.js:701 -#.TRANS: https://en.wikipedia.org/wiki/Miny%C5%8D_scale -msgid "minyo" +#: js/blocks/VolumeBlocks.js:536 +msgid "The range is 0 for silence to 100 for full volume." msgstr "" -#: js/musicutils.js:703 -#.TRANS: Italian mathematician -msgid "fibonacci" +#: js/blocks/VolumeBlocks.js:597 +msgid "set panning" msgstr "" -#: js/musicutils.js:708 -#: js/musicutils.js:1106 -#.TRANS: lowpass filter -msgid "lowpass" +#: js/blocks/VolumeBlocks.js:603 +msgid "The Set Panning block sets the panning for all synthesizers." msgstr "" -#: js/musicutils.js:710 -#: js/musicutils.js:1107 -#.TRANS: bandpass filter -msgid "bandpass" +#: js/blocks/VolumeBlocks.js:625 +msgid "Warning: Sound is coming out from only the left or right side." msgstr "" -#: js/musicutils.js:712 -#: js/musicutils.js:1108 -#.TRANS: high-shelf filter -msgid "highshelf" +#: js/blocks/VolumeBlocks.js:647 +#: js/blocks/VolumeBlocks.js:695 +msgid "set master volume" msgstr "" -#: js/musicutils.js:714 -#: js/musicutils.js:1109 -#.TRANS: low-shelf filter -msgid "lowshelf" +#: js/blocks/VolumeBlocks.js:653 +msgid "The Set master volume block sets the volume for all synthesizers." msgstr "" -#: js/musicutils.js:716 -#: js/musicutils.js:1110 -#.TRANS: notch-shelf filter -msgid "notch" +#: js/blocks/VolumeBlocks.js:784 +msgid "The Set relative volume block changes the volume of the contained notes." msgstr "" -#: js/musicutils.js:718 -#: js/musicutils.js:1111 -#.TRANS: all-pass filter -msgid "allpass" +#: js/blocks/VolumeBlocks.js:791 +msgid "set relative volume" msgstr "" -#: js/musicutils.js:720 -#: js/musicutils.js:1112 -#.TRANS: peaking filter -msgid "peaking" +#: js/blocks/VolumeBlocks.js:857 +msgid "decrescendo" msgstr "" -#: js/musicutils.js:731 -#: js/synthutils.js:58 -#.TRANS: musical instrument -msgid "violin" -msgstr "Geige" +#: js/blocks/VolumeBlocks.js:921 +msgid "crescendo" +msgstr "Crescendo" -#: js/musicutils.js:732 -#: js/synthutils.js:60 -#.TRANS: viola musical instrument -msgid "viola" +#: js/blocks/WidgetBlocks.js:81 +#.TRANS: sound envelope (ADSR) +msgid "envelope" msgstr "" -#: js/musicutils.js:733 -#: js/synthutils.js:98 -#.TRANS: xylophone musical instrument -msgid "xylophone" +#: js/blocks/WidgetBlocks.js:89 +#.TRANS: Attack time is the time taken for initial run-up of level from nil to peak, beginning when the key is first pressed. +msgid "attack" msgstr "" -#: js/musicutils.js:734 -#: js/synthutils.js:120 -#.TRANS: vibraphone musical instrument -msgid "vibraphone" +#: js/blocks/WidgetBlocks.js:91 +#.TRANS: Decay time is the time taken for the subsequent run down from the attack level to the designated sustain level. +msgid "decay" msgstr "" -#: js/musicutils.js:735 -#: js/synthutils.js:62 -#.TRANS: musical instrument -msgid "cello" -msgstr "Cello" +#: js/blocks/WidgetBlocks.js:93 +#.TRANS: Sustain level is the level during the main sequence of the sound's duration, until the key is released. +msgid "sustain" +msgstr "" -#: js/musicutils.js:737 -#: js/synthutils.js:66 -#.TRANS: viola musical instrument -msgid "double bass" +#: js/blocks/WidgetBlocks.js:95 +#.TRANS: Release time is the time taken for the level to decay from the sustain level to zero after the key is released. +msgid "release" msgstr "" -#: js/musicutils.js:738 -#: js/synthutils.js:68 -#: js/rhythmruler.js:2119 -#.TRANS: musical instrument -msgid "guitar" +#: js/blocks/WidgetBlocks.js:113 +msgid "Attack value should be from 0 to 100." msgstr "" -#: js/musicutils.js:739 -#: js/synthutils.js:70 -#.TRANS: musical instrument -msgid "acoustic guitar" +#: js/blocks/WidgetBlocks.js:116 +msgid "Decay value should be from 0 to 100." msgstr "" -#: js/musicutils.js:740 -#: js/synthutils.js:72 -#.TRANS: musical instrument -msgid "flute" +#: js/blocks/WidgetBlocks.js:119 +msgid "Sustain value should be from 0 to 100." msgstr "" -#: js/musicutils.js:741 -#: js/synthutils.js:74 -#.TRANS: musical instrument -msgid "clarinet" +#: js/blocks/WidgetBlocks.js:122 +msgid "Release value should be from 0-100." msgstr "" -#: js/musicutils.js:742 -#: js/synthutils.js:76 -#.TRANS: musical instrument -msgid "saxophone" +#: js/blocks/WidgetBlocks.js:140 +msgid "You are adding multiple envelope blocks." msgstr "" -#: js/musicutils.js:743 -#: js/synthutils.js:78 -#.TRANS: musical instrument -msgid "tuba" +#: js/blocks/WidgetBlocks.js:171 +#.TRANS: a filter removes some unwanted components from a signal +msgid "filter" msgstr "" -#: js/musicutils.js:744 -#: js/synthutils.js:80 -#.TRANS: musical instrument -msgid "trumpet" +#: js/blocks/WidgetBlocks.js:181 +#: js/widgets/timbre.js:1818 +#.TRANS: rolloff is the steepness of a change in frequency. +msgid "rolloff" msgstr "" -#: js/musicutils.js:745 -#: js/synthutils.js:82 -#.TRANS: musical instrument -msgid "oboe" +#: js/blocks/WidgetBlocks.js:213 +#.TRANS: rolloff is the steepness of a change in frequency. +msgid "Rolloff value should be either -12, -24, -48, or -96 decibels/octave." msgstr "" -#: js/musicutils.js:746 -#: js/synthutils.js:84 -#.TRANS: musical instrument -msgid "trombone" +#: js/blocks/WidgetBlocks.js:252 +msgid "The Temperament tool is used to define custom tuning." msgstr "" -#: js/musicutils.js:747 -#: js/synthutils.js:100 -#.TRANS: polytone synthesizer -msgid "electronic synth" +#: js/blocks/WidgetBlocks.js:332 +#: js/blocks/WidgetBlocks.js:1573 +#: js/widgets/sampler.js:547 +msgid "Upload a sample and adjust its pitch center." msgstr "" -#: js/musicutils.js:748 -#: js/synthutils.js:102 -#.TRANS: simple monotone synthesizer -msgid "simple 1" +#: js/blocks/WidgetBlocks.js:339 +#.TRANS: the speed at music is should be played. +msgid "sampler" msgstr "" -#: js/musicutils.js:749 -msgid "simple 2" +#: js/blocks/WidgetBlocks.js:517 +msgid "The Meter block opens a tool to select strong beats for the meter." msgstr "" -#: js/musicutils.js:750 -msgid "simple 3" +#: js/blocks/WidgetBlocks.js:573 +msgid "The oscilloscope block opens a tool to visualize waveforms." msgstr "" -#: js/musicutils.js:751 -msgid "simple 4" +#: js/blocks/WidgetBlocks.js:578 +msgid "oscilloscope" msgstr "" -#: js/musicutils.js:753 -#: js/synthutils.js:49 -#.TRANS: brown noise synthesizer -msgid "brown noise" +#: js/blocks/WidgetBlocks.js:645 +msgid "The Custom mode block opens a tool to explore musical mode (the spacing of the notes in a scale)." msgstr "" -#: js/musicutils.js:754 -#: js/synthutils.js:51 -#.TRANS: pink noise synthesizer -msgid "pink noise" +#: js/blocks/WidgetBlocks.js:651 +#.TRANS: musical mode is the pattern of half-steps in an octave, e.g., Major or Minor modes +msgid "custom mode" +msgstr "Bearbeitungsmodus" + +#: js/blocks/WidgetBlocks.js:700 +msgid "The Tempo block opens a metronome to visualize the beat." msgstr "" -#: js/musicutils.js:756 -#: js/synthutils.js:127 -#: js/rhythmruler.js:1670 -#: js/rhythmruler.js:1928 -#.TRANS: musical instrument -msgid "snare drum" -msgstr "Snare" +#: js/blocks/WidgetBlocks.js:762 +msgid "The Arpeggio Widget is used to compose chord sequences." +msgstr "" -#: js/musicutils.js:757 -#: js/synthutils.js:129 -#.TRANS: musical instrument -msgid "kick drum" -msgstr "Basstrommel" +#: js/blocks/WidgetBlocks.js:837 +msgid "The Pitch drum matrix is used to map pitches to drum sounds." +msgstr "" -#: js/musicutils.js:758 -#: js/synthutils.js:131 -#.TRANS: musical instrument -msgid "tom tom" -msgstr "Tomtom" +#: js/blocks/WidgetBlocks.js:842 +#.TRANS: makes a mapping between pitches and drum sounds +msgid "pitch-drum mapper" +msgstr "Tonlage-Trommel-Matrix" -#: js/musicutils.js:759 -#: js/synthutils.js:133 -#.TRANS: musical instrument -msgid "floor tom" -msgstr "Tomtom" +#: js/blocks/WidgetBlocks.js:891 +msgid "You must have at least one pitch block and one drum block in the matrix." +msgstr "Du musst mindestens eine Tonlagen-Block und einen Trommelblock in deiner Matrix haben." -#: js/musicutils.js:760 -#: js/synthutils.js:135 -#.TRANS: musical instrument -msgid "bass drum" +#: js/blocks/WidgetBlocks.js:920 +msgid "The Pitch slider tool to is used to generate pitches at selected frequencies." msgstr "" -#: js/musicutils.js:761 -#: js/synthutils.js:137 -#.TRANS: a drum made from an inverted cup -msgid "cup drum" -msgstr "Bechertrommel" - -#: js/musicutils.js:762 -#: js/synthutils.js:139 -#.TRANS: musical instrument -msgid "darbuka drum" -msgstr "Darbuka" +#: js/blocks/WidgetBlocks.js:925 +#.TRANS: widget to generate pitches using a slider +msgid "pitch slider" +msgstr "" -#: js/musicutils.js:763 -#: js/synthutils.js:143 -#.TRANS: musical instrument -msgid "hi hat" -msgstr "Hi-Hat" +#: js/blocks/WidgetBlocks.js:977 +msgid "chromatic keyboard" +msgstr "" -#: js/musicutils.js:764 -#: js/synthutils.js:145 -#.TRANS: a small metal bell -msgid "ride bell" -msgstr "Ride-Becken" +#: js/blocks/WidgetBlocks.js:1011 +#: js/blocks/WidgetBlocks.js:1077 +#.TRANS: widget to generate pitches using a slider +msgid "music keyboard" +msgstr "" -#: js/musicutils.js:765 -#: js/synthutils.js:147 -#.TRANS: musical instrument -msgid "cow bell" -msgstr "Kuhglocke" +#: js/blocks/WidgetBlocks.js:1062 +#: js/blocks/WidgetBlocks.js:1069 +msgid "The Music keyboard block opens a piano keyboard that can be used to create notes." +msgstr "" -#: js/musicutils.js:766 -msgid "japanese drum" +#: js/blocks/WidgetBlocks.js:1128 +msgid "The Pitch staircase tool to is used to generate pitches from a given ratio." msgstr "" -#: js/musicutils.js:767 -#: js/synthutils.js:153 -#.TRANS: musical instrument -msgid "japanese bell" +#: js/blocks/WidgetBlocks.js:1135 +#.TRANS: generate a progressive sequence of pitches +msgid "pitch staircase" +msgstr "Tonleiter" + +#: js/blocks/WidgetBlocks.js:1222 +msgid "The Rhythm Maker block opens a tool to create drum machines." msgstr "" -#: js/musicutils.js:768 -#: js/synthutils.js:149 -#.TRANS: musical instrument -msgid "triangle bell" -msgstr "Triangel" +#: js/blocks/WidgetBlocks.js:1291 +msgid "G major scale" +msgstr "" -#: js/musicutils.js:769 -#: js/synthutils.js:151 -#.TRANS: musical instrument -msgid "finger cymbals" -msgstr "Zimbel" +#: js/blocks/WidgetBlocks.js:1326 +msgid "C major scale" +msgstr "" -#: js/musicutils.js:770 -#: js/synthutils.js:155 -#.TRANS: a musically tuned set of bells -msgid "chime" -msgstr "Glockenspiel" +#: js/blocks/WidgetBlocks.js:1366 +msgid "The Phrase Maker block opens a tool to create musical phrases." +msgstr "" -#: js/musicutils.js:771 -#: js/synthutils.js:157 -#.TRANS: a musical instrument -msgid "gong" +#: js/blocks/WidgetBlocks.js:1373 +#.TRANS: assigns pitch to a sequence of beats to generate a melody +msgid "phrase maker" msgstr "" -#: js/musicutils.js:772 -#: js/synthutils.js:159 -#.TRANS: sound effect -msgid "clang" -msgstr "Klang" +#: js/blocks/WidgetBlocks.js:1444 +msgid "You must have at least one pitch block and one rhythm block in the matrix." +msgstr "Du musst mindestens einen Tonlagen-Block und einen Rhythmus-Block in deiner Matrix haben" -#: js/musicutils.js:773 -#: js/synthutils.js:161 -#.TRANS: sound effect -msgid "crash" -msgstr "Krachen" +#: js/blocks/WidgetBlocks.js:1503 +msgid "The Status block opens a tool for inspecting the status of Music Blocks as it is running." +msgstr "" -#: js/musicutils.js:774 -#: js/synthutils.js:163 -#.TRANS: sound effect -msgid "bottle" -msgstr "Flasche" +#: js/blocks/WidgetBlocks.js:1580 +#.TRANS: AI-generated music +msgid "aimusic" +msgstr "" -#: js/musicutils.js:775 -#: js/synthutils.js:165 -#.TRANS: sound effect -msgid "clap" -msgstr "Klatschen" +#: js/turtleactions/MeterActions.js:101 +#: js/turtleactions/MeterActions.js:139 +msgid "beats per minute must be greater than" +msgstr "" -#: js/musicutils.js:776 -#: js/synthutils.js:167 -#.TRANS: sound effect -msgid "slap" -msgstr "Schlag" +#: js/turtleactions/MeterActions.js:111 +#: js/turtleactions/MeterActions.js:149 +msgid "maximum" +msgstr "" -#: js/musicutils.js:777 -#: js/synthutils.js:169 -#.TRANS: sound effect -msgid "splash" -msgstr "Spritzen" +#: js/turtleactions/MeterActions.js:117 +#: js/turtleactions/MeterActions.js:155 +msgid "beats per minute is" +msgstr "" -#: js/musicutils.js:778 -#: js/synthutils.js:171 -#.TRANS: sound effect -msgid "bubbles" -msgstr "Blasen" +#: js/turtleactions/DictActions.js:75 +#: js/turtleactions/DictActions.js:142 +#: js/turtleactions/DictActions.js:172 +msgid "font" +msgstr "" -#: js/musicutils.js:779 -#: js/synthutils.js:173 -#.TRANS: sound effect -msgid "raindrop" +#: js/turtleactions/DictActions.js:255 +msgid "Dictionary with this name does not exist" msgstr "" -#: js/musicutils.js:780 -#: js/synthutils.js:175 -#.TRANS: animal sound effect -msgid "cat" -msgstr "Katze" +#: js/turtleactions/DictActions.js:259 +msgid "Key with this name does not exist in " +msgstr "" -#: js/musicutils.js:781 -#: js/synthutils.js:177 -#.TRANS: animal sound effect -msgid "cricket" -msgstr "Grille" +#: js/turtleactions/DrumActions.js:227 +msgid "Noise Block: Did you mean to use a Note block?" +msgstr "" -#: js/musicutils.js:782 -#: js/synthutils.js:179 -#.TRANS: animal sound effect -msgid "dog" -msgstr "Hund" +#: js/turtleactions/IntervalsActions.js:113 +msgid "one" +msgstr "" -#: js/musicutils.js:784 -#: js/synthutils.js:86 -#.TRANS: musical instrument -msgid "banjo" +#: js/turtleactions/IntervalsActions.js:113 +msgid "two" msgstr "" -#: js/musicutils.js:785 -#: js/synthutils.js:88 -#.TRANS: musical instrument -msgid "koto" +#: js/turtleactions/IntervalsActions.js:113 +msgid "three" msgstr "" -#: js/musicutils.js:786 -#: js/synthutils.js:90 -#.TRANS: musical instrument -msgid "dulcimer" +#: js/turtleactions/IntervalsActions.js:113 +msgid "four" msgstr "" -#: js/musicutils.js:787 -#: js/synthutils.js:92 -#.TRANS: musical instrument -msgid "electric guitar" +#: js/turtleactions/IntervalsActions.js:113 +msgid "five" msgstr "" -#: js/musicutils.js:788 -#: js/synthutils.js:94 -#.TRANS: musical instrument -msgid "bassoon" +#: js/turtleactions/IntervalsActions.js:113 +msgid "six" msgstr "" -#: js/musicutils.js:789 -#: js/synthutils.js:96 -#.TRANS: musical instrument -msgid "celeste" +#: js/turtleactions/IntervalsActions.js:113 +msgid "seven" msgstr "" -#: js/musicutils.js:791 -#: js/musicutils.js:1123 -#: js/musicutils.js:1131 -#: js/temperament.js:650 -#.TRANS: musical temperament -msgid "equal" +#: js/turtleactions/IntervalsActions.js:113 +msgid "eight" msgstr "" -#: js/musicutils.js:793 -#: js/musicutils.js:1125 -#: js/musicutils.js:1133 -#.TRANS: musical temperament -msgid "Pythagorean" +#: js/turtleactions/IntervalsActions.js:113 +msgid "nine" msgstr "" -#: js/musicutils.js:795 -#: js/musicutils.js:1124 -#: js/musicutils.js:1132 -#.TRANS: musical temperament -msgid "just intonation" +#: js/turtleactions/IntervalsActions.js:119 +msgid "a" msgstr "" -#: js/musicutils.js:797 -#: js/musicutils.js:1126 -#: js/musicutils.js:1127 -#: js/musicutils.js:1134 -#: js/musicutils.js:1135 -#.TRANS: musical temperament -msgid "meantone" +#: js/turtleactions/IntervalsActions.js:120 +msgid "below" msgstr "" -#: js/musicutils.js:814 -msgid "major 7th" +#: js/turtleactions/IntervalsActions.js:124 +msgid "above" msgstr "" -#: js/musicutils.js:815 -msgid "minor 7th" +#: js/turtleactions/IntervalsActions.js:131 +msgid "plus" msgstr "" -#: js/musicutils.js:816 -msgid "dominant 7th" +#: js/turtleactions/IntervalsActions.js:139 +msgid " below" msgstr "" -#: js/musicutils.js:817 -msgid "minor-major 7th" +#: js/turtleactions/IntervalsActions.js:257 +msgid "Adding missing pitch number 0." msgstr "" -#: js/musicutils.js:818 -msgid "fully-diminished 7th" +#: js/turtleactions/IntervalsActions.js:265 +msgid "Ignoring pitch numbers less than zero or greater than eleven." msgstr "" -#: js/musicutils.js:819 -msgid "half-diminished 7th" +#: js/turtleactions/IntervalsActions.js:271 +msgid "Ignoring duplicate pitch numbers." msgstr "" -#: js/musicutils.js:4379 -#: js/musicutils.js:4416 -msgid "current" +#: js/turtleactions/ToneActions.js:134 +msgid "Vibrato intensity must be between 1 and 100." msgstr "" -#: js/musicutils.js:4382 -#: js/musicutils.js:4407 -msgid "next" +#: js/turtleactions/ToneActions.js:139 +msgid "Vibrato rate must be greater than 0." msgstr "" -#: js/musicutils.js:4385 -#: js/musicutils.js:4412 -msgid "previous" +#: js/turtleactions/ToneActions.js:192 +#: js/turtleactions/ToneActions.js:265 +#.TRANS: Depth is the intesity of the tremolo or chorus effect. +msgid "Depth is out of range." msgstr "" -#: js/synthutils.js:104 -#.TRANS: simple monotone synthesizer -msgid "simple-2" +#: js/turtleactions/ToneActions.js:301 +msgid "Distortion must be from 0 to 100." msgstr "" -#: js/synthutils.js:106 -#.TRANS: simple monotone synthesizer -msgid "simple-3" +#: js/turtleactions/ToneActions.js:332 +#.TRANS: partials components in a harmonic series +msgid "Partial must be greater than or equal to 0." msgstr "" -#: js/synthutils.js:108 -#.TRANS: simple monotone synthesizer -msgid "simple-4" +#: js/turtleactions/ToneActions.js:378 +#: js/turtleactions/ToneActions.js:417 +#: js/turtleactions/ToneActions.js:456 +#: js/widgets/timbre.js:782 +msgid "Unable to use synth due to existing oscillator" msgstr "" -#: js/synthutils.js:141 -#.TRANS: musical instrument -msgid "taiko" +#: js/turtleactions/ToneActions.js:388 +#: js/turtleactions/ToneActions.js:427 +msgid "The input cannot be negative." msgstr "" -#: js/modewidget.js:86 -#: js/modewidget.js:88 -#: js/modewidget.js:642 -#: js/modewidget.js:644 -#: js/modewidget.js:712 -#: js/modewidget.js:714 -#: js/temperament.js:2078 -#: js/rhythmruler.js:189 -#: js/rhythmruler.js:1410 -#: js/rhythmruler.js:1412 -#: js/rhythmruler.js:1435 -#: js/rhythmruler.js:1437 -#: js/meterwidget.js:89 -#: js/meterwidget.js:91 +#: js/widgets/modewidget.js:86 +#: js/widgets/modewidget.js:88 +#: js/widgets/modewidget.js:642 +#: js/widgets/modewidget.js:644 +#: js/widgets/modewidget.js:712 +#: js/widgets/modewidget.js:714 +#: js/widgets/meterwidget.js:194 +#: js/widgets/meterwidget.js:196 +#: js/widgets/temperament.js:2236 +#: js/widgets/rhythmruler.js:457 +#: js/widgets/rhythmruler.js:1790 +#: js/widgets/rhythmruler.js:1792 +#: js/widgets/rhythmruler.js:1816 +#: js/widgets/rhythmruler.js:1818 msgid "Play all" msgstr "" -#: js/modewidget.js:115 -#: js/pitchstaircase.js:641 -#: js/phrasemaker.js:339 -#: js/pitchdrummatrix.js:94 -#: js/pitchslider.js:125 -#: js/temperament.js:2083 -#: js/musickeyboard.js:530 -#: js/timbre.js:756 -#: js/meterwidget.js:124 -#: js/arpeggio.js:103 +#: js/widgets/modewidget.js:115 +#: js/widgets/meterwidget.js:229 +#: js/widgets/pitchdrummatrix.js:166 +#: js/widgets/pitchslider.js:125 +#: js/widgets/pitchstaircase.js:641 +#: js/widgets/temperament.js:2244 +#: js/widgets/timbre.js:756 +#: js/widgets/arpeggio.js:103 +#: js/widgets/musickeyboard.js:688 +#: js/widgets/phrasemaker.js:550 msgid "Save" msgstr "" -#: js/modewidget.js:121 -#: js/pitchstaircase.js:686 -#: js/phrasemaker.js:356 -#: js/pitchdrummatrix.js:109 -#: js/musickeyboard.js:534 -#: js/rhythmruler.js:269 -#: js/arpeggio.js:118 +#: js/widgets/modewidget.js:121 +#: js/widgets/pitchdrummatrix.js:181 +#: js/widgets/pitchstaircase.js:686 +#: js/widgets/arpeggio.js:118 +#: js/widgets/musickeyboard.js:696 +#: js/widgets/phrasemaker.js:567 +#: js/widgets/rhythmruler.js:601 #.TRANS: clear all subdivisions from the ruler. msgid "Clear" msgstr "" -#: js/modewidget.js:127 +#: js/widgets/modewidget.js:127 msgid "Rotate counter clockwise" msgstr "" -#: js/modewidget.js:133 +#: js/widgets/modewidget.js:133 msgid "Rotate clockwise" msgstr "" -#: js/modewidget.js:139 +#: js/widgets/modewidget.js:139 msgid "Invert" msgstr "" -#: js/modewidget.js:145 -#: js/pitchstaircase.js:678 -#: js/rhythmruler.js:258 -#: js/timbre.js:963 +#: js/widgets/modewidget.js:145 +#: js/widgets/pitchstaircase.js:678 +#: js/widgets/timbre.js:963 +#: js/widgets/rhythmruler.js:578 msgid "Undo" msgstr "Rückgängig machen" -#: js/modewidget.js:163 +#: js/widgets/modewidget.js:163 #.TRANS: A circle of notes represents the musical mode. msgid "Click in the circle to select notes for the mode." msgstr "" -#: js/modewidget.js:1017 -#: js/pitchstaircase.js:580 -#: js/phrasemaker.js:4855 -#: js/temperament.js:1754 -#: js/rhythmruler.js:1865 -#: js/rhythmruler.js:2081 -#: js/tempo.js:414 +#: js/widgets/modewidget.js:1017 +#: js/widgets/pitchstaircase.js:580 +#: js/widgets/temperament.js:1929 +#: js/widgets/tempo.js:414 +#: js/widgets/phrasemaker.js:5356 +#: js/widgets/rhythmruler.js:2254 +#: js/widgets/rhythmruler.js:2472 msgid "New action block generated!" msgstr "" -#: js/oscilloscope.js:79 -msgid "Zoom In" -msgstr "" - -#: js/oscilloscope.js:88 -msgid "Zoom Out" -msgstr "" - -#: js/pitchstaircase.js:624 -msgid "Play chord" +#: js/widgets/meterwidget.js:275 +msgid "Reset" msgstr "" -#: js/pitchstaircase.js:632 -msgid "Play scale" +#: js/widgets/meterwidget.js:301 +msgid "Click in the circle to select strong beats for the meter." msgstr "" -#: js/pitchstaircase.js:696 -msgid "Click on a note to create a new step." +#: js/widgets/oscilloscope.js:79 +msgid "Zoom In" msgstr "" -#: js/phrasemaker.js:363 -msgid "Export" +#: js/widgets/oscilloscope.js:88 +msgid "Zoom Out" msgstr "" -#: js/phrasemaker.js:370 -msgid "Sort" +#: js/widgets/pitchdrummatrix.js:356 +#: js/widgets/pitchdrummatrix.js:752 +msgid "Click in the grid to map notes to drums." msgstr "" -#: js/phrasemaker.js:373 -#: js/musickeyboard.js:559 -msgid "Add note" +#: js/widgets/pitchslider.js:103 +msgid "Move up" msgstr "" -#: js/phrasemaker.js:764 -msgid "Click on the table to add notes." +#: js/widgets/pitchslider.js:114 +msgid "Move down" msgstr "" -#: js/phrasemaker.js:2414 -#: js/phrasemaker.js:2543 -msgid "tuplet value" -msgstr "Triolenwert" - -#: js/pitchdrummatrix.js:270 -#: js/pitchdrummatrix.js:639 -msgid "Click in the grid to map notes to drums." +#: js/widgets/pitchslider.js:136 +msgid "Click on the slider to create a note block." msgstr "" -#: js/pitchslider.js:103 -msgid "Move up" +#: js/widgets/pitchstaircase.js:624 +msgid "Play chord" msgstr "" -#: js/pitchslider.js:114 -msgid "Move down" +#: js/widgets/pitchstaircase.js:632 +msgid "Play scale" msgstr "" -#: js/pitchslider.js:136 -msgid "Click on the slider to create a note block." +#: js/widgets/pitchstaircase.js:696 +msgid "Click on a note to create a new step." msgstr "" -#: js/temperament.js:215 +#: js/widgets/temperament.js:321 msgid "back to 2:1 octave space" msgstr "" -#: js/temperament.js:323 +#: js/widgets/temperament.js:447 msgid "edit" msgstr "" -#: js/temperament.js:330 -#: js/temperament.js:332 -#: js/temperament.js:1336 -#: js/temperament.js:1338 +#: js/widgets/temperament.js:454 +#: js/widgets/temperament.js:456 +#: js/widgets/temperament.js:1493 +#: js/widgets/temperament.js:1495 msgid "close" msgstr "Schließen" -#: js/temperament.js:423 -#: js/temperament.js:736 -#: js/temperament.js:743 -#: js/temperament.js:845 -#: js/temperament.js:935 -#: js/temperament.js:942 -#: js/temperament.js:1015 -#: js/temperament.js:1284 -#: js/temperament.js:1354 -#: js/temperament.js:1430 +#: js/widgets/temperament.js:552 +#: js/widgets/temperament.js:877 +#: js/widgets/temperament.js:884 +#: js/widgets/temperament.js:986 +#: js/widgets/temperament.js:1080 +#: js/widgets/temperament.js:1087 +#: js/widgets/temperament.js:1160 +#: js/widgets/temperament.js:1433 +#: js/widgets/temperament.js:1511 +#: js/widgets/temperament.js:1596 msgid "done" msgstr "" -#: js/temperament.js:477 -#: js/temperament.js:482 -#: js/temperament.js:918 +#: js/widgets/temperament.js:610 +#: js/widgets/temperament.js:615 +#: js/widgets/temperament.js:1063 msgid "ratio" msgstr "" -#: js/temperament.js:483 +#: js/widgets/temperament.js:616 msgid "interval" msgstr "Interval" -#: js/temperament.js:611 +#: js/widgets/temperament.js:744 msgid "non scalar" msgstr "" -#: js/temperament.js:650 +#: js/widgets/temperament.js:787 msgid "ratios" msgstr "" -#: js/temperament.js:650 +#: js/widgets/temperament.js:787 msgid "arbitrary" msgstr "" -#: js/temperament.js:719 +#: js/widgets/temperament.js:860 msgid "number of divisions" msgstr "" -#: js/temperament.js:741 -#: js/temperament.js:858 -#: js/temperament.js:940 -#: js/temperament.js:1033 +#: js/widgets/temperament.js:882 +#: js/widgets/temperament.js:999 +#: js/widgets/temperament.js:1085 +#: js/widgets/temperament.js:1178 msgid "preview" msgstr "" -#: js/temperament.js:788 +#: js/widgets/temperament.js:929 msgid "The Number of divisions is too large." msgstr "" -#: js/temperament.js:921 +#: js/widgets/temperament.js:1066 msgid "recursion" msgstr "" -#: js/temperament.js:1450 +#: js/widgets/temperament.js:1616 msgid "The octave ratio has changed. This changes temperament significantly." msgstr "" -#: js/temperament.js:2087 +#: js/widgets/temperament.js:2248 msgid "Table" msgstr "" -#: js/temperament.js:2185 +#: js/widgets/temperament.js:2356 msgid "Add pitches" msgstr "" -#: js/musickeyboard.js:570 -msgid "Metronome" +#: js/widgets/tempo.js:78 +#: js/widgets/tempo.js:97 +#: js/widgets/tempo.js:99 +#: js/widgets/aiwidget.js:134 +#: js/widgets/aiwidget.js:136 +#: js/widgets/rhythmruler.js:681 +#: js/widgets/rhythmruler.js:683 +#: js/widgets/rhythmruler.js:1864 +#: js/widgets/rhythmruler.js:1866 +#: js/widgets/sampler.js:180 +#: js/widgets/sampler.js:182 +msgid "Pause" msgstr "" -#: js/musickeyboard.js:1296 -#: plugins/rodi.rtp:193 -msgid "duration" -msgstr "Dauer" - -#: js/musickeyboard.js:2840 -msgid "New action blocks generated!" +#: js/widgets/tempo.js:113 +msgid "Save tempo" msgstr "" -#: js/musickeyboard.js:2841 -msgid "New action block generated" +#: js/widgets/tempo.js:144 +msgid "speed up" +msgstr "Schneller" + +#: js/widgets/tempo.js:150 +msgid "slow down" +msgstr "Langsamer" + +#: js/widgets/tempo.js:194 +msgid "Adjust the tempo with the buttons." msgstr "" -#: js/musickeyboard.js:2984 -#: js/musickeyboard.js:2992 -msgid "MIDI device present." +#: js/widgets/tempo.js:261 +msgid "Please enter a number between 30 and 1000" msgstr "" -#: js/musickeyboard.js:2995 -msgid "No MIDI device found." +#: js/widgets/tempo.js:268 +#: js/widgets/tempo.js:271 +msgid "The beats per minute must be between 30 and 1000." msgstr "" -#: js/musickeyboard.js:3000 -msgid "Failed to get MIDI access in browser." +#: js/widgets/tempo.js:287 +msgid "The beats per minute must be below 1000." msgstr "" -#: js/rhythmruler.js:202 -msgid "Save rhythms" +#: js/widgets/tempo.js:303 +msgid "The beats per minute must be above 30" msgstr "" -#: js/rhythmruler.js:222 -msgid "Save drum machine" +#: js/widgets/timbre.js:766 +msgid "Synthesizer" msgstr "" -#: js/rhythmruler.js:263 -#.TRANS: user can tap out a rhythm by clicking on a ruler. -msgid "Tap a rhythm" +#: js/widgets/timbre.js:789 +msgid "Oscillator" msgstr "" -#: js/rhythmruler.js:342 -#: js/rhythmruler.js:344 -#: js/rhythmruler.js:1481 -#: js/rhythmruler.js:1483 -#: js/sampler.js:110 -#: js/sampler.js:112 -#: js/tempo.js:78 -#: js/tempo.js:97 -#: js/tempo.js:99 -msgid "Pause" +#: js/widgets/timbre.js:840 +msgid "Envelope" msgstr "" -#: js/rhythmruler.js:478 -msgid "Click on the ruler to divide it." +#: js/widgets/timbre.js:886 +#: planet/js/GlobalTag.js:50 +#.TRANS: On the Planet, we use labels to tag projects. +msgid "Effects" msgstr "" -#: js/rhythmruler.js:603 -#: js/rhythmruler.js:605 -#: js/rhythmruler.js:804 -#: js/rhythmruler.js:806 -#: js/rhythmruler.js:1386 -#: js/rhythmruler.js:1388 -msgid "tap a rhythm" +#: js/widgets/timbre.js:904 +msgid "Filter" msgstr "" -#: js/rhythmruler.js:1084 -msgid "Maximum value of 256 has been exceeded." +#: js/widgets/timbre.js:946 +msgid "Add filter" msgstr "" -#: js/sampler.js:137 -msgid "Warning: Sample is bigger than 1MB." +#: js/widgets/timbre.js:987 +msgid "Click on buttons to open the timbre design tools." msgstr "" -#: js/sampler.js:142 -msgid "Upload failed: Sample is not a .wav file." +#: js/widgets/timbre.js:1273 +msgid "harmonicity" msgstr "" -#: js/sampler.js:164 -msgid "A new sample block was generated." +#: js/widgets/timbre.js:1340 +#: js/widgets/timbre.js:1406 +msgid "modulation index" msgstr "" -#: js/sampler.js:255 -msgid "Upload sample" +#: js/widgets/timbre.js:1484 +msgid "vibrato amount" msgstr "" -#: js/sampler.js:306 -msgid "Save sample" +#: js/widgets/timbre.js:1919 +msgid "Filter already present." msgstr "" -#: js/sampler.js:697 -#.TRANS: The reference tone is a sound used for comparison. -msgid "reference tone" +#: js/widgets/timbre.js:2322 +msgid "delay (MS)" msgstr "" -#: js/tempo.js:113 -msgid "Save tempo" +#: js/widgets/timbre.js:2507 +msgid "distortion amount" msgstr "" -#: js/tempo.js:144 -msgid "speed up" -msgstr "Schneller" +#: js/widgets/aiwidget.js:180 +#: js/widgets/sampler.js:227 +msgid "Warning: Sample is bigger than 1MB." +msgstr "" -#: js/tempo.js:150 -msgid "slow down" -msgstr "Langsamer" +#: js/widgets/aiwidget.js:539 +msgid "New start block generated" +msgstr "" -#: js/tempo.js:194 -msgid "Adjust the tempo with the buttons." +#: js/widgets/aiwidget.js:541 +msgid "MIDI loading. This may take some time depending upon the number of notes in the track" msgstr "" -#: js/tempo.js:261 -msgid "Please enter a number between 30 and 1000" +#: js/widgets/aiwidget.js:551 +#: js/widgets/sampler.js:254 +msgid "Upload failed: Sample is not a .wav file." msgstr "" -#: js/tempo.js:268 -#: js/tempo.js:271 -msgid "The beats per minute must be between 30 and 1000." +#: js/widgets/aiwidget.js:679 +#: js/widgets/sampler.js:432 +msgid "Save sample" msgstr "" -#: js/tempo.js:287 -msgid "The beats per minute must be below 1000." +#: js/widgets/aiwidget.js:701 +msgid "AI Music" msgstr "" -#: js/tempo.js:303 -msgid "The beats per minute must be above 30" +#: js/widgets/arpeggio.js:239 +msgid "Click in the grid to add steps to the arpeggio." msgstr "" -#: js/timbre.js:766 -msgid "Synthesizer" +#: js/widgets/help.js:95 +#: js/widgets/help.js:125 +#: js/widgets/help.js:146 +#: js/widgets/help.js:158 +#: js/widgets/help.js:376 +#: js/widgets/help.js:391 +msgid "Take a tour" msgstr "" -#: js/timbre.js:789 -msgid "Oscillator" +#: js/widgets/musickeyboard.js:725 +#: js/widgets/phrasemaker.js:584 +msgid "Add note" msgstr "" -#: js/timbre.js:840 -msgid "Envelope" +#: js/widgets/musickeyboard.js:744 +msgid "Metronome" msgstr "" -#: js/timbre.js:886 -#: js/GlobalTag.js:50 -#.TRANS: On the Planet, we use labels to tag projects. -msgid "Effects" +#: js/widgets/musickeyboard.js:1549 +#: plugins/rodi.rtp:193 +msgid "duration" +msgstr "Dauer" + +#: js/widgets/musickeyboard.js:3179 +msgid "New action blocks generated" msgstr "" -#: js/timbre.js:904 -msgid "Filter" +#: js/widgets/musickeyboard.js:3180 +msgid "New action block generated" msgstr "" -#: js/timbre.js:946 -msgid "Add filter" +#: js/widgets/musickeyboard.js:3365 +#: js/widgets/musickeyboard.js:3373 +msgid "MIDI device present." msgstr "" -#: js/timbre.js:987 -msgid "Click on buttons to open the timbre design tools." +#: js/widgets/musickeyboard.js:3376 +msgid "No MIDI device found." msgstr "" -#: js/timbre.js:1273 -msgid "harmonicity" +#: js/widgets/musickeyboard.js:3386 +msgid "Failed to get MIDI access in browser." msgstr "" -#: js/timbre.js:1340 -#: js/timbre.js:1406 -msgid "modulation index" +#: js/widgets/phrasemaker.js:574 +msgid "Export" msgstr "" -#: js/timbre.js:1484 -msgid "vibrato amount" +#: js/widgets/phrasemaker.js:581 +msgid "Sort" msgstr "" -#: js/timbre.js:1919 -msgid "Filter already present." +#: js/widgets/phrasemaker.js:975 +msgid "Click on the table to add notes." msgstr "" -#: js/timbre.js:2322 -msgid "delay (MS)" +#: js/widgets/phrasemaker.js:2677 +#: js/widgets/phrasemaker.js:2819 +msgid "tuplet value" +msgstr "Triolenwert" + +#: js/widgets/rhythmruler.js:486 +msgid "Save rhythms" msgstr "" -#: js/timbre.js:2507 -msgid "distortion amount" +#: js/widgets/rhythmruler.js:512 +msgid "Save drum machine" msgstr "" -#: js/meterwidget.js:170 -msgid "Reset" +#: js/widgets/rhythmruler.js:589 +#.TRANS: user can tap out a rhythm by clicking on a ruler. +msgid "Tap a rhythm" msgstr "" -#: js/meterwidget.js:196 -msgid "Click in the circle to select strong beats for the meter." +#: js/widgets/rhythmruler.js:817 +msgid "Click on the ruler to divide it." msgstr "" -#: js/arpeggio.js:239 -msgid "Click in the grid to add steps to the arpeggio." +#: js/widgets/rhythmruler.js:950 +#: js/widgets/rhythmruler.js:952 +#: js/widgets/rhythmruler.js:1152 +#: js/widgets/rhythmruler.js:1154 +#: js/widgets/rhythmruler.js:1765 +#: js/widgets/rhythmruler.js:1767 +msgid "tap a rhythm" msgstr "" -#: js/ProjectStorage.js:243 -msgid "anonymous" +#: js/widgets/rhythmruler.js:1459 +msgid "Maximum value of 256 has been exceeded." msgstr "" -#: js/GlobalCard.js:68 -msgid "Share" +#: js/widgets/sampler.js:237 +msgid "Recording started..." msgstr "" -#: js/GlobalCard.js:74 -msgid "Flags" +#: js/widgets/sampler.js:245 +msgid "Recording complete..." msgstr "" -#: js/LocalCard.js:36 -msgid "View published project" +#: js/widgets/sampler.js:283 +msgid "A new sample block was generated." msgstr "" -#: js/LocalCard.js:42 -msgid "Publish project" +#: js/widgets/sampler.js:378 +msgid "Upload sample" msgstr "" -#: js/LocalCard.js:51 -msgid "Edit project" +#: js/widgets/sampler.js:399 +msgid "Warning: Your sample cannot be loaded because it is >1MB." msgstr "" -#: js/LocalCard.js:52 -msgid "Delete project" +#: js/widgets/sampler.js:448 +msgid "Toggle Mic" msgstr "" -#: js/LocalCard.js:53 -msgid "Download project" +#: js/widgets/sampler.js:458 +msgid "Playback" msgstr "" -#: js/LocalCard.js:55 -msgid "Duplicate project" +#: js/widgets/sampler.js:979 +#.TRANS: The reference tone is a sound used for comparison. +msgid "reference tone" msgstr "" -#: js/GlobalTag.js:28 +#: planet/js/GlobalTag.js:28 #.TRANS: On the Planet, we use labels to tag projects. msgid "All Projects" msgstr "" -#: js/GlobalTag.js:30 -#: js/StringHelper.js:37 +#: planet/js/GlobalTag.js:30 +#: planet/js/StringHelper.js:37 #.TRANS: On the Planet, we use labels to tag projects. msgid "My Projects" msgstr "" -#: js/GlobalTag.js:32 +#: planet/js/GlobalTag.js:32 #.TRANS: On the Planet, we use labels to tag projects. msgid "Examples" msgstr "" -#: js/GlobalTag.js:34 +#: planet/js/GlobalTag.js:34 #.TRANS: On the Planet, we use labels to tag projects. msgid "Music" msgstr "" -#: js/GlobalTag.js:36 +#: planet/js/GlobalTag.js:36 #.TRANS: On the Planet, we use labels to tag projects. msgid "Art" msgstr "" -#: js/GlobalTag.js:38 +#: planet/js/GlobalTag.js:38 #.TRANS: On the Planet, we use labels to tag projects. msgid "Math" msgstr "" -#: js/GlobalTag.js:40 +#: planet/js/GlobalTag.js:40 #.TRANS: On the Planet, we use labels to tag projects. msgid "Interactive" msgstr "" -#: js/GlobalTag.js:42 +#: planet/js/GlobalTag.js:42 #.TRANS: On the Planet, we use labels to tag projects. msgid "Design" msgstr "" -#: js/GlobalTag.js:44 +#: planet/js/GlobalTag.js:44 #.TRANS: On the Planet, we use labels to tag projects. msgid "Game" msgstr "" -#: js/GlobalTag.js:46 +#: planet/js/GlobalTag.js:46 #.TRANS: On the Planet, we use labels to tag projects. msgid "Media" msgstr "" -#: js/GlobalTag.js:48 +#: planet/js/GlobalTag.js:48 #.TRANS: On the Planet, we use labels to tag projects. msgid "Sensors" msgstr "" -#: js/GlobalTag.js:52 +#: planet/js/GlobalTag.js:52 #.TRANS: On the Planet, we use labels to tag projects. msgid "Code Snippet" msgstr "" -#: js/helper.js:149 -#: js/StringHelper.js:49 -msgid "Show more tags" +#: planet/js/LocalCard.js:36 +msgid "View published project" msgstr "" -#: js/helper.js:150 -msgid "Show fewer tags" +#: planet/js/LocalCard.js:42 +msgid "Publish project" +msgstr "" + +#: planet/js/LocalCard.js:51 +msgid "Edit project" +msgstr "" + +#: planet/js/LocalCard.js:52 +msgid "Delete project" +msgstr "" + +#: planet/js/LocalCard.js:53 +msgid "Download project" +msgstr "" + +#: planet/js/LocalCard.js:55 +msgid "Duplicate project" +msgstr "" + +#: planet/js/ProjectStorage.js:243 +msgid "anonymous" msgstr "" -#: js/ProjectViewer.js:30 +#: planet/js/SaveInterface.js:34 +msgid "Open in Music Blocks" +msgstr "" + +#: planet/js/SaveInterface.js:35 +msgid "Open in Turtle Blocks" +msgstr "" + +#: planet/js/GlobalCard.js:68 +msgid "Share" +msgstr "" + +#: planet/js/GlobalCard.js:74 +msgid "Flags" +msgstr "" + +#: planet/js/GlobalPlanet.js:35 +msgid "No results found." +msgstr "" + +#: planet/js/GlobalPlanet.js:51 +msgid "Remix of" +msgstr "" + +#: planet/js/GlobalPlanet.js:509 +msgid "Cannot connect to server" +msgstr "" + +#: planet/js/ProjectViewer.js:30 msgid "Error: Report could not be submitted. Try again later." msgstr "" -#: js/ProjectViewer.js:31 +#: planet/js/ProjectViewer.js:31 msgid "Thank you for reporting this project. A moderator will review the project shortly, to verify violation of the Sugar Labs Code of Conduct." msgstr "" -#: js/ProjectViewer.js:32 -#: js/StringHelper.js:62 -#: js/StringHelper.js:64 -#: js/StringHelper.js:68 +#: planet/js/ProjectViewer.js:32 +#: planet/js/StringHelper.js:62 +#: planet/js/StringHelper.js:64 +#: planet/js/StringHelper.js:68 msgid "Report Project" msgstr "" -#: js/ProjectViewer.js:33 -#: js/StringHelper.js:63 +#: planet/js/ProjectViewer.js:33 +#: planet/js/StringHelper.js:63 msgid "Project Reported" msgstr "" -#: js/ProjectViewer.js:34 +#: planet/js/ProjectViewer.js:34 msgid "Report description required" msgstr "" -#: js/ProjectViewer.js:35 +#: planet/js/ProjectViewer.js:35 msgid "Report description too long" msgstr "" -#: js/StringHelper.js:30 +#: planet/js/Publisher.js:30 +msgid "Feature unavailable - cannot connect to server. Reload Music Blocks to try again." +msgstr "" + +#: planet/js/Publisher.js:220 +#: planet/js/Publisher.js:237 +msgid "This field is required" +msgstr "" + +#: planet/js/Publisher.js:227 +msgid "Title too long" +msgstr "" + +#: planet/js/Publisher.js:244 +msgid "Description too long" +msgstr "" + +#: planet/js/Publisher.js:341 +msgid "Server Error" +msgstr "" + +#: planet/js/Publisher.js:341 +msgid "Try Again" +msgstr "" + +#: planet/js/StringHelper.js:30 msgid "Planet" msgstr "Planet" -#: js/StringHelper.js:31 +#: planet/js/StringHelper.js:31 msgid "Close Planet" msgstr "" -#: js/StringHelper.js:32 +#: planet/js/StringHelper.js:32 msgid "Open project from file" msgstr "" -#: js/StringHelper.js:34 +#: planet/js/StringHelper.js:34 msgid "Local" msgstr "" -#: js/StringHelper.js:35 +#: planet/js/StringHelper.js:35 msgid "Global" msgstr "" -#: js/StringHelper.js:36 +#: planet/js/StringHelper.js:36 msgid "Search for a project" msgstr "" -#: js/StringHelper.js:38 +#: planet/js/StringHelper.js:38 msgid "Publish Project" msgstr "" -#: js/StringHelper.js:40 +#: planet/js/StringHelper.js:40 msgid "Tags (max 5)" msgstr "" -#: js/StringHelper.js:41 -#: js/StringHelper.js:61 +#: planet/js/StringHelper.js:41 +#: planet/js/StringHelper.js:61 msgid "Description" msgstr "" -#: js/StringHelper.js:42 -#: js/StringHelper.js:67 +#: planet/js/StringHelper.js:42 +#: planet/js/StringHelper.js:67 msgid "Submit" msgstr "" -#: js/StringHelper.js:43 -#: js/StringHelper.js:47 +#: planet/js/StringHelper.js:43 +#: planet/js/StringHelper.js:47 msgid "Cancel" msgstr "" -#: js/StringHelper.js:44 +#: planet/js/StringHelper.js:44 msgid "Delete \\"\\"?" msgstr "" -#: js/StringHelper.js:45 +#: planet/js/StringHelper.js:45 msgid "Permanently delete project \\"\\"?" msgstr "" -#: js/StringHelper.js:48 +#: planet/js/StringHelper.js:48 msgid "Explore Projects" msgstr "" -#: js/StringHelper.js:50 +#: planet/js/StringHelper.js:49 +#: planet/js/helper.js:149 +msgid "Show more tags" +msgstr "" + +#: planet/js/StringHelper.js:50 msgid "Most recent" msgstr "" -#: js/StringHelper.js:51 +#: planet/js/StringHelper.js:51 msgid "Most liked" msgstr "" -#: js/StringHelper.js:52 +#: planet/js/StringHelper.js:52 msgid "Most downloaded" msgstr "" -#: js/StringHelper.js:53 +#: planet/js/StringHelper.js:53 msgid "A-Z" msgstr "" -#: js/StringHelper.js:54 +#: planet/js/StringHelper.js:54 msgid "Sort by" msgstr "" -#: js/StringHelper.js:55 +#: planet/js/StringHelper.js:55 msgid "Load More Projects" msgstr "" -#: js/StringHelper.js:56 +#: planet/js/StringHelper.js:56 msgid "Last Updated" msgstr "" -#: js/StringHelper.js:57 +#: planet/js/StringHelper.js:57 msgid "Creation Date" msgstr "" -#: js/StringHelper.js:58 +#: planet/js/StringHelper.js:58 msgid "Number of Downloads:" msgstr "" -#: js/StringHelper.js:59 +#: planet/js/StringHelper.js:59 msgid "Number of Likes:" msgstr "" -#: js/StringHelper.js:60 +#: planet/js/StringHelper.js:60 msgid "Tags:" msgstr "" -#: js/StringHelper.js:65 +#: planet/js/StringHelper.js:65 msgid "Report projects which violate the Sugar Labs Code of Conduct." msgstr "" -#: js/StringHelper.js:66 +#: planet/js/StringHelper.js:66 msgid "Reason for reporting project" msgstr "" -#: js/StringHelper.js:70 +#: planet/js/StringHelper.js:70 msgid "Download as File" msgstr "" -#: js/GlobalPlanet.js:35 -msgid "No results found." -msgstr "" - -#: js/GlobalPlanet.js:51 -msgid "Remix of" -msgstr "" - -#: js/GlobalPlanet.js:509 -msgid "Cannot connect to server" -msgstr "" - -#: js/Publisher.js:30 -msgid "Feature unavailable - cannot connect to server. Reload Music Blocks to try again." -msgstr "" - -#: js/Publisher.js:218 -#: js/Publisher.js:235 -msgid "This field is required" -msgstr "" - -#: js/Publisher.js:225 -msgid "Title too long" +#: planet/js/helper.js:150 +msgid "Show fewer tags" msgstr "" -#: js/Publisher.js:242 -msgid "Description too long" -msgstr "" +#: plugins/accelerometer.rtp:48 +msgid "motion x" +msgstr "Bewegung x" -#: js/Publisher.js:339 -msgid "Server Error" -msgstr "" +#: plugins/accelerometer.rtp:56 +msgid "motion y" +msgstr "Bewegung y" -#: js/Publisher.js:339 -msgid "Try Again" -msgstr "" +#: plugins/accelerometer.rtp:64 +msgid "motion z" +msgstr "Bewegung z" -#: js/SaveInterface.js:34 -msgid "Open in Music Blocks" -msgstr "" +#: plugins/facebook.rtp:27 +msgid "publish" +msgstr "Veröffentlichen" -#: js/SaveInterface.js:35 -msgid "Open in Turtle Blocks" -msgstr "" +#: plugins/maths.rtp:62 +msgid "power" +msgstr "Potenzieren" -#: plugins/weather.rtp:68 -#: plugins/weather.rtp:97 -msgid "Days ahead must be in the range of -1 to 5." -msgstr "" +#: plugins/maths.rtp:62 +msgid "base" +msgstr "Basis" -#: plugins/weather.rtp:122 -msgid "forecast" -msgstr "Vorhersage" +#: plugins/maths.rtp:62 +msgid "exp" +msgstr "Exponentialfunktion" -#: plugins/weather.rtp:123 -#: plugins/weather.rtp:137 -#: plugins/weather.rtp:150 -msgid "city" -msgstr "Stadt" +#: plugins/maths.rtp:99 +msgid "floor" +msgstr "Boden" -#: plugins/weather.rtp:124 -#: plugins/weather.rtp:138 -#: plugins/weather.rtp:151 -msgid "day" -msgstr "Tag" +#: plugins/maths.rtp:104 +msgid "ceiling" +msgstr "Decke" -#: plugins/weather.rtp:136 -msgid "high" -msgstr "Hoch" +#: plugins/maths.rtp:109 +msgid "to degrees" +msgstr "in Grad" -#: plugins/weather.rtp:149 -msgid "low" -msgstr "Tief" +#: plugins/maths.rtp:114 +msgid "to radians" +msgstr "in Radianten" #: plugins/nutrition.rtp:104 msgid "get calories" @@ -9457,45 +9866,6 @@ msgstr "Keks" msgid "water" msgstr "Wasser" -#: plugins/maths.rtp:62 -#: plugins/examples.rtp:93 -msgid "power" -msgstr "Potenzieren" - -#: plugins/maths.rtp:62 -#: plugins/examples.rtp:93 -msgid "base" -msgstr "Basis" - -#: plugins/maths.rtp:62 -#: plugins/examples.rtp:93 -msgid "exp" -msgstr "Exponentialfunktion" - -#: plugins/maths.rtp:99 -#: plugins/examples.rtp:130 -msgid "floor" -msgstr "Boden" - -#: plugins/maths.rtp:104 -#: plugins/examples.rtp:135 -msgid "ceiling" -msgstr "Decke" - -#: plugins/maths.rtp:109 -#: plugins/examples.rtp:140 -msgid "to degrees" -msgstr "in Grad" - -#: plugins/maths.rtp:114 -#: plugins/examples.rtp:145 -msgid "to radians" -msgstr "in Radianten" - -#: plugins/facebook.rtp:27 -msgid "publish" -msgstr "Veröffentlichen" - #: plugins/rodi.rtp:172 msgid "blink" msgstr "Blinke" @@ -9524,17 +9894,65 @@ msgstr "Infrarotlicht (rechts)" msgid "move" msgstr "Roboter bewegen" -#: plugins/accelerometer.rtp:48 -msgid "motion x" -msgstr "Bewegung x" +#: plugins/weather.rtp:68 +#: plugins/weather.rtp:97 +msgid "Days ahead must be in the range of -1 to 5." +msgstr "" -#: plugins/accelerometer.rtp:56 -msgid "motion y" -msgstr "Bewegung y" +#: plugins/weather.rtp:122 +msgid "forecast" +msgstr "Vorhersage" -#: plugins/accelerometer.rtp:64 -msgid "motion z" -msgstr "Bewegung z" +#: plugins/weather.rtp:123 +#: plugins/weather.rtp:137 +#: plugins/weather.rtp:150 +msgid "city" +msgstr "Stadt" + +#: plugins/weather.rtp:124 +#: plugins/weather.rtp:138 +#: plugins/weather.rtp:151 +msgid "day" +msgstr "Tag" + +#: plugins/weather.rtp:136 +msgid "high" +msgstr "Hoch" + +#: plugins/weather.rtp:149 +msgid "low" +msgstr "Tief" + +#: js/toolbar.js:70 + +#: js/toolbar.js:130 + +#: js/toolbar.js:194 + +#: js/toolbar.js:249 + +#~msgid "Toggle JavaScript Editor" +#~msgstr "" + +#: js/EnsembleBlocks.js:643 + +#~msgid "The Turrle pitch block returns the current pitch number being played by the specified turtle." +#~msgstr "" + +#: js/PitchActions.js:88 + +#~msgid "The Scalar Step Block must be used inside of a Note Block." +#~msgstr "" + +#: js/PitchActions.js:107 + +#~msgid "The Scalar Step Block must be preceded by a Pitch Block." +#~msgstr "" + +#: js/musickeyboard.js:2840 + +#~msgid "New action blocks generated!" +#~msgstr "" #: js/toolbar.js:110 @@ -9876,11 +10294,6 @@ msgstr "Bewegung z" #~msgid "The Time block returns the number of seconds that the program has been running." #~msgstr "" -#: js/help.js:95 - -#~msgid "Take a tour" -#~msgstr "" - #: js/GlobalCard.js:48 #~msgid "More Details" @@ -12759,11 +13172,6 @@ msgstr "Bewegung z" #~msgid "The save-stack button saves a stack onto a custom palette. It appears after a \"long press\" on a stack." #~msgstr " Stapel speichern speichert Stapel in der benutzerdefinierten Palette " -#: js/musicutils.js:254 - -#~msgid "Custom" -#~msgstr "benutzerdefiniert" - #: js/basicblocks.js:4785 #~msgid "Rhythm" diff --git a/po/dz.po b/po/dz.po index 1ce76f2930..217022682b 100644 --- a/po/dz.po +++ b/po/dz.po @@ -2129,276 +2129,131 @@ #: js/planetInterface.js:104 #: js/planetInterface.js:104 #: js/planetInterface.js:104 -msgid "project undefined" -msgstr "" - -#: js/logo.js:61 -msgid "Not a valid pitch name" -msgstr "" - -#: js/logo.js:507 -#: js/ProgramBlocks.js:258 -#: js/ProgramBlocks.js:427 -msgid "You must select a file." -msgstr "" - -#: js/logo.js:1184 -#: js/turtles.js:118 -#: js/turtle-painter.js:1192 -#: js/turtle-painter.js:1193 -#: js/block.js:1463 -#: js/lilypond.js:757 -#: js/lilypond.js:921 -#: js/lilypond.js:959 -#: js/ActionBlocks.js:1223 -#: js/ProgramBlocks.js:1267 -msgid "start" -msgstr "" - -#: js/logo.js:1696 -msgid "Playback is ready." -msgstr "" - -#: js/blocks.js:1011 -#: js/blocks.js:3427 -#: js/blocks.js:3428 -#: js/blocks.js:3653 -#: js/blocks.js:4012 -#: js/blocks.js:4205 -#: js/blocks.js:5343 -#: js/blocks.js:6474 -#: js/palette.js:527 -#: js/palette.js:536 -#: js/palette.js:545 -#: js/palette.js:554 -#: js/palette.js:1131 -#: js/palette.js:1142 -#: js/palette.js:1153 -#: js/palette.js:1164 -#: js/palette.js:1183 -#: js/rubrics.js:529 -#: js/macros.js:170 -#: js/macros.js:266 -#: js/macros.js:267 -#: js/macros.js:276 -#: js/macros.js:828 -#: js/block.js:1449 -#: js/block.js:4164 -#: js/block.js:4182 -#: js/block.js:4193 -#: js/turtledefs.js:128 -#: js/turtledefs.js:230 -#: js/ActionBlocks.js:254 -#: js/ActionBlocks.js:307 -#: js/ActionBlocks.js:617 -#: js/ActionBlocks.js:716 -#: js/ActionBlocks.js:961 -#: js/ActionBlocks.js:1049 -#: js/ActionBlocks.js:1322 -#: js/ActionBlocks.js:1325 -#: js/ActionBlocks.js:1337 -#: js/ActionBlocks.js:1404 -#: js/MeterBlocks.js:715 -#: js/MeterBlocks.js:768 -#: js/MeterBlocks.js:831 -#: js/MeterBlocks.js:892 -#: js/phrasemaker.js:4412 -#: js/musickeyboard.js:2647 -#: js/rhythmruler.js:1928 -#: js/rhythmruler.js:1935 -#: js/rhythmruler.js:2119 -#: js/rhythmruler.js:2126 -msgid "action" -msgstr "" - -#: js/blocks.js:1205 -#: js/blocks.js:3380 -#: js/blocks.js:3770 -#: js/blocks.js:3801 -#: js/blocks.js:3850 -#: js/blocks.js:3885 -#: js/blocks.js:6497 -#: js/palette.js:509 -#: js/palette.js:638 -#: js/palette.js:1107 -#: js/BoxesBlocks.js:282 -#: js/BoxesBlocks.js:285 -#: js/BoxesBlocks.js:405 -#: js/BoxesBlocks.js:594 -msgid "box" -msgstr "" - -#: js/blocks.js:1680 -msgid "Consider breaking this stack into parts." +#: js/SaveInterface.js:59 +#: js/SaveInterface.js:61 +#: js/SaveInterface.js:93 +msgid "Music Blocks Project" msgstr "" -#: js/blocks.js:2408 -#: js/palette.js:653 -#: js/MediaBlocks.js:602 -msgid "open file" +#: js/SaveInterface.js:63 +msgid "This project was created in Music Blocks" msgstr "" -#: js/blocks.js:2415 -#: js/blocks.js:2423 -#: js/activity.js:1875 -msgid "audio file" +#: js/SaveInterface.js:67 +msgid "Music Blocks is a Free/Libre Software application." msgstr "" -#: js/blocks.js:2536 -#: js/blocks.js:3147 -#: js/block.js:3543 -msgid "on2" +#: js/SaveInterface.js:69 +msgid "The source code can be accessed at" msgstr "" -#: js/blocks.js:2538 -#: js/blocks.js:3149 -#: js/block.js:3545 -msgid "off" +#: js/SaveInterface.js:72 +msgid "For more information, please consult the" msgstr "" -#: js/blocks.js:2543 -#: js/blocks.js:3154 -#: js/palette.js:618 -#: js/block.js:3466 -#: js/BooleanBlocks.js:77 -#: js/BooleanBlocks.js:167 -#: js/BooleanBlocks.js:251 -#: js/BooleanBlocks.js:335 -#: js/BooleanBlocks.js:433 -#: js/BooleanBlocks.js:539 -#: js/BooleanBlocks.js:640 -#: js/BooleanBlocks.js:741 -#: js/BooleanBlocks.js:847 -#: js/BooleanBlocks.js:948 -#: js/BooleanBlocks.js:1033 -#: js/SensorsBlocks.js:910 -msgid "true" +#: js/SaveInterface.js:76 +#: js/turtledefs.js:795 +msgid "Music Blocks Guide" msgstr "" -#: js/blocks.js:2545 -#: js/blocks.js:3156 -#: js/block.js:3466 -#: js/BooleanBlocks.js:79 -#: js/BooleanBlocks.js:169 -#: js/BooleanBlocks.js:253 -#: js/BooleanBlocks.js:337 -#: js/BooleanBlocks.js:435 -#: js/BooleanBlocks.js:541 -#: js/BooleanBlocks.js:642 -#: js/BooleanBlocks.js:743 -#: js/BooleanBlocks.js:849 -#: js/BooleanBlocks.js:950 -#: js/SensorsBlocks.js:912 -msgid "false" +#: js/SaveInterface.js:83 +msgid "Alternatively, open the file in Music Blocks using the Load project button." msgstr "" -#: js/blocks.js:3183 -#: js/palette.js:574 -#: js/MediaBlocks.js:892 -#: js/MediaBlocks.js:963 -msgid "text" +#: js/SaveInterface.js:85 +msgid "Project Code" msgstr "" -#: js/blocks.js:3379 -#: js/palette.js:641 -#: js/palette.js:642 -#: js/BoxesBlocks.js:514 -msgid "store in box" +#: js/SaveInterface.js:87 +msgid "This code stores data about the blocks in a project." msgstr "" -#: js/blocks.js:3384 -#: js/blocks.js:3824 -#: js/blocks.js:3859 -#: js/blocks.js:3894 -#: js/blocks.js:5773 -#: js/blocks.js:5794 -#: js/BoxesBlocks.js:772 -msgid "box1" +#: js/SaveInterface.js:89 +msgid "Show" msgstr "" -#: js/blocks.js:3386 -#: js/blocks.js:3826 -#: js/blocks.js:3861 -#: js/blocks.js:3896 -#: js/blocks.js:5775 -#: js/blocks.js:5796 -#: js/BoxesBlocks.js:663 -msgid "box2" +#: js/SaveInterface.js:91 +msgid "Hide" msgstr "" -#: js/blocks.js:4058 -#: js/palette.js:639 -#: js/palette.js:644 -#: js/palette.js:1043 -#: js/BoxesBlocks.js:591 -msgid "store in" +#: js/SaveInterface.js:131 +#: js/SaveInterface.js:204 +#: js/SaveInterface.js:262 +#: js/SaveInterface.js:389 +#: js/SaveInterface.js:417 +#: js/activity.js:4884 +#: planet/js/ProjectStorage.js:27 +#: planet/js/GlobalPlanet.js:467 +#: planet/js/GlobalPlanet.js:469 +#: planet/js/GlobalPlanet.js:495 +#.TRANS: default project title when saving as Lilypond +msgid "My Project" msgstr "" -#: js/blocks.js:4058 -#: js/EnsembleBlocks.js:391 -#: js/EnsembleBlocks.js:402 -#: js/MediaBlocks.js:746 -#: js/ProgramBlocks.js:390 -#: js/ProgramBlocks.js:495 -#: js/ProgramBlocks.js:658 -#: js/BoxesBlocks.js:595 -#: js/PitchBlocks.js:656 -#: js/PitchBlocks.js:932 -#: js/PitchBlocks.js:1827 -#: js/ToneBlocks.js:1025 -#: js/DictBlocks.js:215 -#: js/DictBlocks.js:289 -msgid "name" +#: js/SaveInterface.js:197 +#: planet/js/SaveInterface.js:58 +msgid "No description provided" msgstr "" -#: js/blocks.js:4058 -#: js/RhythmBlocks.js:1130 -#: js/BoxesBlocks.js:75 -#: js/BoxesBlocks.js:595 -#: js/HeapBlocks.js:544 -#: js/DictBlocks.js:289 -#: js/DictBlocks.js:430 -msgid "value" +#: js/SaveInterface.js:332 +msgid "Your recording is in progress." msgstr "" -#: js/blocks.js:4907 -msgid "There is no block selected." +#: js/SaveInterface.js:401 +#.TRANS: File name prompt for save as Lilypond +msgid "File name" msgstr "" -#: js/blocks.js:5002 -#: js/MediaBlocks.js:888 -msgid "show" +#: js/SaveInterface.js:403 +#: planet/js/StringHelper.js:39 +#.TRANS: Project title prompt for save as Lilypond +msgid "Project title" msgstr "" -#: js/blocks.js:5005 -#: js/MediaBlocks.js:803 -#.TRANS: Avatar is the image used to determine the appearance of the mouse. -msgid "avatar" +#: js/SaveInterface.js:405 +#.TRANS: Project title prompt for save as Lilypond +msgid "Project author" msgstr "" -#: js/blocks.js:5008 -#: js/ToneBlocks.js:1010 -#: js/sampler.js:693 -#.TRANS: The sound sample that the user uploads. -msgid "sample" +#: js/SaveInterface.js:407 +#.TRANS: MIDI prompt for save as Lilypond +msgid "Include MIDI output?" msgstr "" -#: js/turtles.js:874 -msgid "Grid" +#: js/SaveInterface.js:409 +#.TRANS: Guitar prompt for save as Lilypond +msgid "Include guitar tablature output?" msgstr "" -#: js/turtles.js:891 -#: js/turtledefs.js:626 -msgid "Clean" +#: js/SaveInterface.js:411 +#.TRANS: Lilypond is a scripting language for generating sheet music +msgid "Save as Lilypond" msgstr "" -#: js/turtles.js:912 -#: js/turtledefs.js:632 -msgid "Collapse" +#: js/SaveInterface.js:426 +#: js/blocks/EnsembleBlocks.js:75 +#: js/blocks/EnsembleBlocks.js:154 +#: js/blocks/EnsembleBlocks.js:216 +#: js/blocks/EnsembleBlocks.js:302 +#: js/blocks/EnsembleBlocks.js:348 +#: js/blocks/EnsembleBlocks.js:389 +#: js/blocks/EnsembleBlocks.js:441 +#: js/blocks/EnsembleBlocks.js:490 +#: js/blocks/EnsembleBlocks.js:536 +#: js/blocks/EnsembleBlocks.js:583 +#: js/blocks/EnsembleBlocks.js:637 +#: js/blocks/EnsembleBlocks.js:753 +#: js/blocks/EnsembleBlocks.js:840 +#: js/blocks/EnsembleBlocks.js:899 +#: js/blocks/EnsembleBlocks.js:942 +#: js/blocks/EnsembleBlocks.js:1212 +#: js/blocks/EnsembleBlocks.js:1280 +#.TRANS: default project author when saving as Lilypond +msgid "Mr. Mouse" msgstr "" -#: js/turtles.js:940 -msgid "Expand" +#: js/SaveInterface.js:573 +msgid "The Lilypond code is copied to clipboard. You can paste it here: " msgstr "" #: js/languagebox.js:198 @@ -2409,6933 +2264,7487 @@ msgstr "" msgid "Music Blocks is already set to this language." msgstr "" -#: js/piemenus.js:200 -#: js/musicutils.js:808 -#: js/musicutils.js:824 -#: js/phrasemaker.js:1672 -#: js/musickeyboard.js:2041 -#: js/sampler.js:544 -#.TRANS: double sharp is a music term related to pitch -msgid "double sharp" +#: js/planetInterface.js:131 +msgid "project undefined" msgstr "" -#: js/piemenus.js:201 -#: js/PitchBlocks.js:1510 -#: js/PitchActions.js:580 -#: js/musicutils.js:806 -#: js/musicutils.js:825 -#: js/phrasemaker.js:1673 -#: js/musickeyboard.js:2042 -#: js/sampler.js:545 -#.TRANS: sharp is a half-step up in pitch -#.TRANS: sharp is a music term related to pitch -msgid "sharp" +#: js/rubrics.js:523 +#: js/turtledefs.js:119 +#: js/turtledefs.js:221 +#: js/blocks/RhythmBlockPaletteBlocks.js:52 +#: js/blocks/RhythmBlockPaletteBlocks.js:234 +#: js/blocks/ProgramBlocks.js:745 +#: js/widgets/rhythmruler.js:2057 +#: js/widgets/rhythmruler.js:2064 +#: js/widgets/rhythmruler.js:2133 +#: js/widgets/rhythmruler.js:2140 +#: js/widgets/rhythmruler.js:2219 +#.TRANS: an arrangement of notes based on duration +msgid "rhythm" msgstr "" -#: js/piemenus.js:202 -#: js/musicutils.js:804 -#: js/musicutils.js:826 -#: js/phrasemaker.js:1674 -#: js/musickeyboard.js:2043 -#: js/sampler.js:546 -#.TRANS: natural is a music term related to pitch -msgid "natural" +#: js/rubrics.js:524 +#: js/turtledefs.js:121 +#: js/turtledefs.js:223 +#: js/block-verbose.js:2622 +#: js/block.js:2550 +#: js/blocks/IntervalsBlocks.js:63 +#: js/blocks/SensorsBlocks.js:178 +#: js/blocks/PitchBlocks.js:1839 +#: js/blocks/PitchBlocks.js:1853 +#: js/widgets/musickeyboard.js:1935 +#: js/widgets/phrasemaker.js:1036 +#.TRANS: pitch number +#.TRANS: pitch number +#.TRANS: we specify pitch in terms of a name and an octave. The name can be CDEFGAB or Do Re Mi Fa Sol La Ti. Octave is a number between 1 and 8. +msgid "pitch" msgstr "" -#: js/piemenus.js:203 -#: js/PitchBlocks.js:1469 -#: js/PitchActions.js:583 -#: js/musicutils.js:802 -#: js/musicutils.js:827 -#: js/phrasemaker.js:1675 -#: js/musickeyboard.js:2044 -#: js/sampler.js:547 -#.TRANS: flat is a half-step down in pitch -#.TRANS: flat is a music term related to pitch -msgid "flat" +#: js/rubrics.js:525 +#: js/turtledefs.js:123 +#: js/turtledefs.js:225 +msgid "tone" msgstr "" -#: js/piemenus.js:204 -#: js/musicutils.js:800 -#: js/musicutils.js:828 -#: js/phrasemaker.js:1676 -#: js/musickeyboard.js:2045 -#: js/sampler.js:548 -#.TRANS: double flat is a music term related to pitch -msgid "double flat" +#: js/rubrics.js:526 +#: js/lilypond.js:605 +#: js/lilypond.js:904 +#: js/lilypond.js:910 +#: js/lilypond.js:948 +msgid "mouse" msgstr "" -#: js/piemenus.js:2861 -#: js/PitchBlocks.js:1357 -#: js/musicutils.js:627 -#.TRANS: unison means the note is the same as the current note -#.TRANS: unison is a music term related to intervals -msgid "unison" +#: js/rubrics.js:527 +#: js/turtledefs.js:132 +#: js/turtledefs.js:234 +#: js/widgets/phrasemaker.js:1040 +msgid "pen" msgstr "" -#: js/piemenus.js:3015 -#: js/piemenus.js:3088 -#: js/musicutils.js:635 -#: js/musicutils.js:810 -#: js/musicutils.js:912 -#.TRANS: major is a music term related to intervals and mode -msgid "major" +#: js/rubrics.js:528 +#: js/turtledefs.js:133 +#: js/turtledefs.js:235 +#: js/blocks/NumberBlocks.js:981 +#: js/blocks/PitchBlocks.js:1717 +#: js/blocks/PitchBlocks.js:1758 +msgid "number" msgstr "" -#: js/piemenus.js:3015 -#: js/piemenus.js:3088 -#: js/musicutils.js:653 -#.TRANS: modal scale for music -msgid "ionian" +#: js/rubrics.js:529 +#: js/turtledefs.js:127 +#: js/turtledefs.js:229 +msgid "flow" msgstr "" -#: js/piemenus.js:3017 -#: js/piemenus.js:3092 -#: js/musicutils.js:633 -#: js/musicutils.js:811 -#: js/musicutils.js:909 -#.TRANS: minor is a music term related to intervals and mode -msgid "minor" +#: js/rubrics.js:530 +#: js/turtledefs.js:128 +#: js/turtledefs.js:230 +#: js/block-verbose.js:1609 +#: js/block-verbose.js:4559 +#: js/block-verbose.js:4577 +#: js/block-verbose.js:4588 +#: js/block.js:1573 +#: js/block.js:4483 +#: js/block.js:4501 +#: js/block.js:4512 +#: js/blocks.js:1018 +#: js/blocks.js:3491 +#: js/blocks.js:3492 +#: js/blocks.js:3717 +#: js/blocks.js:4076 +#: js/blocks.js:4269 +#: js/blocks.js:5432 +#: js/blocks.js:6563 +#: js/macros.js:170 +#: js/macros.js:266 +#: js/macros.js:267 +#: js/macros.js:276 +#: js/macros.js:828 +#: js/palette.js:527 +#: js/palette.js:536 +#: js/palette.js:545 +#: js/palette.js:554 +#: js/palette.js:1129 +#: js/palette.js:1140 +#: js/palette.js:1151 +#: js/palette.js:1162 +#: js/palette.js:1181 +#: js/blocks/ActionBlocks.js:254 +#: js/blocks/ActionBlocks.js:307 +#: js/blocks/ActionBlocks.js:617 +#: js/blocks/ActionBlocks.js:716 +#: js/blocks/ActionBlocks.js:961 +#: js/blocks/ActionBlocks.js:1049 +#: js/blocks/ActionBlocks.js:1322 +#: js/blocks/ActionBlocks.js:1325 +#: js/blocks/ActionBlocks.js:1337 +#: js/blocks/ActionBlocks.js:1404 +#: js/blocks/MeterBlocks.js:715 +#: js/blocks/MeterBlocks.js:768 +#: js/blocks/MeterBlocks.js:831 +#: js/blocks/MeterBlocks.js:892 +#: js/widgets/musickeyboard.js:2986 +#: js/widgets/phrasemaker.js:4913 +#: js/widgets/rhythmruler.js:2319 +#: js/widgets/rhythmruler.js:2326 +#: js/widgets/rhythmruler.js:2511 +#: js/widgets/rhythmruler.js:2518 +msgid "action" msgstr "" -#: js/piemenus.js:3017 -#: js/piemenus.js:3092 -#: js/musicutils.js:663 -#.TRANS: modal scale for music -msgid "aeolian" +#: js/rubrics.js:531 +#: js/turtledefs.js:136 +#: js/turtledefs.js:238 +msgid "sensors" msgstr "" -#: js/piemenus.js:3407 -msgid "Duplicate" +#: js/rubrics.js:532 +#: js/turtledefs.js:135 +#: js/turtledefs.js:237 +#: js/blocks/MediaBlocks.js:930 +msgid "media" msgstr "" -#: js/piemenus.js:3408 -#: js/turtledefs.js:534 -msgid "Extract" +#: js/rubrics.js:533 +msgid "mice" msgstr "" -#: js/piemenus.js:3409 -msgid "Move to trash" +#: js/toolbar.js:48 +#: js/toolbar.js:109 +msgid "About Music Blocks" msgstr "" -#: js/piemenus.js:3410 -#: js/timbre.js:968 -#: js/StringHelper.js:69 -msgid "Close" +#: js/toolbar.js:49 +#: js/toolbar.js:110 +#: js/toolbar.js:175 +#: js/toolbar.js:231 +#: js/turtledefs.js:445 +#: js/turtledefs.js:482 +#: js/activity.js:2660 +#: js/activity.js:2671 +#: js/activity.js:2902 +#: js/widgets/modewidget.js:77 +#: js/widgets/meterwidget.js:185 +#: js/widgets/pitchdrummatrix.js:147 +#: js/widgets/pitchdrummatrix.js:687 +#: js/widgets/pitchdrummatrix.js:689 +#: js/widgets/pitchdrummatrix.js:741 +#: js/widgets/pitchdrummatrix.js:743 +#: js/widgets/pitchdrummatrix.js:758 +#: js/widgets/pitchdrummatrix.js:760 +#: js/widgets/pitchdrummatrix.js:789 +#: js/widgets/pitchdrummatrix.js:791 +#: js/widgets/pitchstaircase.js:121 +#: js/widgets/temperament.js:610 +#: js/widgets/temperament.js:613 +#: js/widgets/temperament.js:673 +#: js/widgets/temperament.js:675 +#: js/widgets/temperament.js:2017 +#: js/widgets/temperament.js:2019 +#: js/widgets/tempo.js:84 +#: js/widgets/tempo.js:86 +#: js/widgets/timbre.js:432 +#: js/widgets/timbre.js:434 +#: js/widgets/timbre.js:465 +#: js/widgets/timbre.js:467 +#: js/widgets/timbre.js:746 +#: js/widgets/aiwidget.js:647 +#: js/widgets/aiwidget.js:654 +#: js/widgets/aiwidget.js:656 +#: js/widgets/arpeggio.js:90 +#: js/widgets/arpeggio.js:547 +#: js/widgets/arpeggio.js:549 +#: js/widgets/arpeggio.js:644 +#: js/widgets/arpeggio.js:646 +#: js/widgets/musickeyboard.js:676 +#: js/widgets/musickeyboard.js:872 +#: js/widgets/musickeyboard.js:874 +#: js/widgets/musickeyboard.js:953 +#: js/widgets/musickeyboard.js:955 +#: js/widgets/phrasemaker.js:513 +#: js/widgets/phrasemaker.js:523 +#: js/widgets/phrasemaker.js:525 +#: js/widgets/phrasemaker.js:4304 +#: js/widgets/phrasemaker.js:4528 +#: js/widgets/phrasemaker.js:4533 +#: js/widgets/phrasemaker.js:4535 +#: js/widgets/phrasemaker.js:4650 +#: js/widgets/rhythmruler.js:637 +#: js/widgets/rhythmruler.js:639 +#: js/widgets/rhythmruler.js:653 +#: js/widgets/rhythmruler.js:655 +#: js/widgets/sampler.js:162 +#: js/widgets/sampler.js:164 +#: js/widgets/sampler.js:363 +msgid "Play" msgstr "" -#: js/piemenus.js:3416 -msgid "Save stack" +#: js/toolbar.js:50 +#: js/toolbar.js:111 +#: js/toolbar.js:176 +#: js/toolbar.js:232 +#: js/turtledefs.js:451 +#: js/turtledefs.js:488 +#: js/activity.js:2679 +#: js/widgets/modewidget.js:99 +#: js/widgets/modewidget.js:101 +#: js/widgets/meterwidget.js:206 +#: js/widgets/meterwidget.js:208 +#: js/widgets/pitchdrummatrix.js:674 +#: js/widgets/pitchdrummatrix.js:676 +#: js/widgets/temperament.js:2002 +#: js/widgets/temperament.js:2004 +#: js/widgets/arpeggio.js:534 +#: js/widgets/arpeggio.js:536 +#: js/widgets/phrasemaker.js:534 +#: js/widgets/phrasemaker.js:536 +msgid "Stop" msgstr "" -#: js/piemenus.js:3420 -#: js/toolbar.js:60 -#: js/toolbar.js:120 -#: js/toolbar.js:185 -#: js/toolbar.js:240 -#: js/turtledefs.js:752 -msgid "Help" +#: js/toolbar.js:51 +#: js/toolbar.js:112 +#: js/toolbar.js:177 +#: js/toolbar.js:233 +#: js/turtledefs.js:498 +msgid "Record" msgstr "" -#: js/piemenus.js:3762 -msgid "You have chosen key " +#: js/toolbar.js:52 +#: js/toolbar.js:53 +msgid "Full screen" msgstr "" -#: js/piemenus.js:3766 -msgid " for your pitch preview." +#: js/toolbar.js:54 +#: js/toolbar.js:115 +#: js/toolbar.js:180 +#: js/toolbar.js:236 +#: js/turtledefs.js:504 +msgid "Toggle Fullscreen" +msgstr "" + +#: js/toolbar.js:55 +#: js/toolbar.js:116 +#: js/toolbar.js:181 +#: js/toolbar.js:237 +#: js/turtledefs.js:510 +#: planet/js/StringHelper.js:33 +msgid "New project" +msgstr "" + +#: js/toolbar.js:56 +#: js/toolbar.js:117 +#: js/toolbar.js:182 +#: js/toolbar.js:238 +#: js/turtledefs.js:516 +msgid "Load project from file" +msgstr "" + +#: js/toolbar.js:57 +#: js/toolbar.js:118 +#: js/toolbar.js:119 +#: js/toolbar.js:183 +#: js/toolbar.js:239 +#: js/turtledefs.js:541 +#: js/turtledefs.js:550 +#: js/turtledefs.js:571 +msgid "Save project" +msgstr "" + +#: js/toolbar.js:58 +#: js/toolbar.js:77 +#: js/toolbar.js:79 +#: js/toolbar.js:138 +#: js/toolbar.js:147 +#: js/toolbar.js:149 +#: js/toolbar.js:184 +#: js/toolbar.js:202 +#: js/toolbar.js:204 +#: js/toolbar.js:240 +#: js/toolbar.js:258 +#: js/toolbar.js:260 +msgid "Save project as HTML" +msgstr "" + +#: js/toolbar.js:59 +#: js/toolbar.js:120 +#: js/toolbar.js:185 +#: js/toolbar.js:241 +msgid "Find and share projects" +msgstr "" + +#: js/toolbar.js:60 +#: js/toolbar.js:121 +#: js/toolbar.js:186 +#: js/toolbar.js:242 +msgid "Offline. Sharing is unavailable" +msgstr "" + +#: js/toolbar.js:61 +#: js/toolbar.js:122 +#: js/toolbar.js:187 +#: js/toolbar.js:243 +msgid "Auxiliary menu" +msgstr "" + +#: js/toolbar.js:62 +#: js/toolbar.js:123 +#: js/toolbar.js:188 +#: js/toolbar.js:244 +#: js/turtledefs.js:752 +#: js/piemenus.js:3423 +msgid "Help" +msgstr "" + +#: js/toolbar.js:63 +#: js/toolbar.js:124 +#: js/toolbar.js:189 +#: js/toolbar.js:245 +msgid "Run slowly" +msgstr "" + +#: js/toolbar.js:64 +#: js/toolbar.js:125 +#: js/toolbar.js:190 +#: js/toolbar.js:246 +#: js/turtledefs.js:682 +msgid "Run step by step" +msgstr "" + +#: js/toolbar.js:65 +#: js/toolbar.js:126 +#: js/toolbar.js:191 +#: js/toolbar.js:247 +#: js/turtledefs.js:689 +msgid "Display statistics" +msgstr "" + +#: js/toolbar.js:66 +#: js/toolbar.js:127 +#: js/toolbar.js:192 +#: js/toolbar.js:248 +msgid "Load plugin" +msgstr "" + +#: js/toolbar.js:67 +#: js/toolbar.js:128 +#: js/toolbar.js:193 +#: js/toolbar.js:249 +#: js/turtledefs.js:696 +msgid "Delete plugin" +msgstr "" + +#: js/toolbar.js:68 +#: js/toolbar.js:129 +#: js/toolbar.js:194 +#: js/toolbar.js:250 +msgid "Enable horizontal scrolling" +msgstr "" + +#: js/toolbar.js:69 +#: js/toolbar.js:130 +#: js/toolbar.js:195 +#: js/toolbar.js:251 +msgid "Disable horizontal scrolling" +msgstr "" + +#: js/toolbar.js:70 +#: js/toolbar.js:131 +#: js/toolbar.js:196 +#: js/toolbar.js:252 +#: planet/js/LocalCard.js:54 +#: planet/js/StringHelper.js:71 +msgid "Merge with current project" +msgstr "" + +#: js/toolbar.js:71 +#: js/toolbar.js:132 +msgid "Set Pitch Preview" +msgstr "" + +#: js/toolbar.js:72 +#: js/toolbar.js:133 +#: js/toolbar.js:197 +#: js/toolbar.js:253 +msgid "JavaScript Editor" +msgstr "" + +#: js/toolbar.js:73 +#: js/toolbar.js:134 +#: js/toolbar.js:198 +#: js/toolbar.js:254 +#: js/turtledefs.js:724 +msgid "Restore" +msgstr "" + +#: js/toolbar.js:74 +#: js/toolbar.js:135 +#: js/toolbar.js:199 +#: js/toolbar.js:255 +msgid "Switch to beginner mode" +msgstr "" + +#: js/toolbar.js:75 +#: js/toolbar.js:136 +#: js/toolbar.js:200 +#: js/toolbar.js:256 +msgid "Switch to advanced mode" +msgstr "" + +#: js/toolbar.js:76 +#: js/toolbar.js:137 +#: js/toolbar.js:146 +#: js/toolbar.js:201 +#: js/toolbar.js:257 +#: js/turtledefs.js:738 +msgid "Select language" +msgstr "" + +#: js/toolbar.js:78 +#: js/toolbar.js:81 +#: js/toolbar.js:140 +#: js/turtledefs.js:579 +msgid "Save mouse artwork as PNG" +msgstr "" + +#: js/toolbar.js:80 +#: js/toolbar.js:139 +#: js/turtledefs.js:575 +msgid "Save mouse artwork as SVG" +msgstr "" + +#: js/toolbar.js:82 +#: js/toolbar.js:141 +#: js/turtledefs.js:583 +msgid "Save music as WAV" +msgstr "" + +#: js/toolbar.js:83 +#: js/toolbar.js:142 +#: js/turtledefs.js:587 +msgid "Save sheet music as ABC" +msgstr "" + +#: js/toolbar.js:84 +#: js/toolbar.js:143 +#: js/turtledefs.js:591 +msgid "Save sheet music as Lilypond" +msgstr "" + +#: js/toolbar.js:85 +msgid "Save sheet music as MusicXML" +msgstr "" + +#: js/toolbar.js:86 +#: js/toolbar.js:144 +#: js/toolbar.js:152 +#: js/toolbar.js:207 +#: js/toolbar.js:263 +#: js/turtledefs.js:562 +#: js/turtledefs.js:595 +msgid "Save block artwork as SVG" +msgstr "" + +#: js/toolbar.js:87 +#: js/toolbar.js:145 +#: js/toolbar.js:153 +#: js/toolbar.js:208 +#: js/toolbar.js:264 +#: js/turtles.js:911 +msgid "Confirm" +msgstr "" + +#: js/toolbar.js:88 +#: js/toolbar.js:154 +#: js/toolbar.js:209 +#: js/toolbar.js:265 +msgid "English (United States)" +msgstr "" + +#: js/toolbar.js:89 +#: js/toolbar.js:155 +#: js/toolbar.js:210 +#: js/toolbar.js:266 +msgid "English (United Kingdom)" +msgstr "" + +#: js/toolbar.js:90 +#: js/toolbar.js:156 +#: js/toolbar.js:211 +#: js/toolbar.js:267 +msgid "日本語" +msgstr "" + +#: js/toolbar.js:91 +msgid "한국어" +msgstr "" + +#: js/toolbar.js:92 +#: js/toolbar.js:158 +#: js/toolbar.js:213 +#: js/toolbar.js:269 +msgid "español" +msgstr "" + +#: js/toolbar.js:93 +#: js/toolbar.js:159 +#: js/toolbar.js:214 +#: js/toolbar.js:270 +msgid "português" +msgstr "" + +#: js/toolbar.js:94 +#: js/toolbar.js:160 +#: js/toolbar.js:215 +#: js/toolbar.js:271 +msgid "にほんご" +msgstr "" + +#: js/toolbar.js:95 +#: js/toolbar.js:161 +#: js/toolbar.js:216 +#: js/toolbar.js:272 +msgid "中文" +msgstr "" + +#: js/toolbar.js:96 +#: js/toolbar.js:162 +#: js/toolbar.js:217 +#: js/toolbar.js:273 +msgid "ภาษาไทย" +msgstr "" + +#: js/toolbar.js:97 +#: js/toolbar.js:163 +#: js/toolbar.js:218 +#: js/toolbar.js:274 +msgid "aymara" +msgstr "" + +#: js/toolbar.js:98 +#: js/toolbar.js:164 +#: js/toolbar.js:219 +#: js/toolbar.js:275 +msgid "quechua" +msgstr "" + +#: js/toolbar.js:99 +#: js/toolbar.js:165 +#: js/toolbar.js:220 +#: js/toolbar.js:276 +msgid "guarani" +msgstr "" + +#: js/toolbar.js:100 +#: js/toolbar.js:166 +#: js/toolbar.js:221 +#: js/toolbar.js:277 +msgid "हिंदी" +msgstr "" + +#: js/toolbar.js:101 +#: js/toolbar.js:168 +#: js/toolbar.js:222 +#: js/toolbar.js:279 +msgid "igbo" +msgstr "" + +#: js/toolbar.js:102 +#: js/toolbar.js:169 +#: js/toolbar.js:223 +#: js/toolbar.js:280 +msgid "عربى" +msgstr "" + +#: js/toolbar.js:103 +#: js/toolbar.js:167 +#: js/toolbar.js:224 +#: js/toolbar.js:278 +msgid "తెలుగు" +msgstr "" + +#: js/toolbar.js:104 +#: js/toolbar.js:170 +#: js/toolbar.js:225 +#: js/toolbar.js:281 +msgid "עִברִית" +msgstr "" + +#: js/toolbar.js:113 +#: js/toolbar.js:114 +#: js/toolbar.js:178 +#: js/toolbar.js:179 +#: js/toolbar.js:234 +#: js/toolbar.js:235 +msgid "Full Screen" +msgstr "" + +#: js/toolbar.js:148 +#: js/toolbar.js:151 +#: js/toolbar.js:203 +#: js/toolbar.js:206 +#: js/toolbar.js:259 +#: js/toolbar.js:262 +#: js/turtledefs.js:558 +msgid "Save turtle artwork as PNG" +msgstr "" + +#: js/toolbar.js:150 +#: js/toolbar.js:205 +#: js/toolbar.js:261 +#: js/turtledefs.js:554 +msgid "Save turtle artwork as SVG" +msgstr "" + +#: js/toolbar.js:157 +#: js/toolbar.js:212 +#: js/toolbar.js:268 +msgid "한국인" +msgstr "" + +#: js/toolbar.js:174 +#: js/toolbar.js:230 +msgid "About Turtle Blocks" +msgstr "" + +#: js/toolbar.js:446 +#: js/toolbar.js:457 +#: js/toolbar.js:497 +msgid "Turtle Wrap Off" +msgstr "" + +#: js/toolbar.js:466 +#: js/toolbar.js:506 +msgid "Turtle Wrap On" +msgstr "" + +#: js/turtle-painter.js:1192 +#: js/turtle-painter.js:1193 +#: js/turtles.js:118 +#: js/block-verbose.js:1623 +#: js/block.js:1587 +#: js/lilypond.js:749 +#: js/lilypond.js:913 +#: js/lilypond.js:951 +#: js/logo.js:1184 +#: js/blocks/ActionBlocks.js:1223 +#: js/blocks/ProgramBlocks.js:1267 +msgid "start" +msgstr "" + +#: js/turtledefs.js:40 +#.TRANS: put the URL to the guide here, e.g., https://github.com/sugarlabs/turtleblocksjs/tree/master/guide/README.md +msgid "guide url" +msgstr "" + +#: js/turtledefs.js:85 +#: js/turtledefs.js:437 +msgid "Turtle Blocks is a Logo-inspired turtle that draws colorful pictures with snap-together visual-programming blocks." +msgstr "" + +#: js/turtledefs.js:118 +#: js/turtledefs.js:220 +msgid "search" +msgstr "" + +#: js/turtledefs.js:120 +#: js/turtledefs.js:222 +#: js/blocks/MeterBlocks.js:1343 +#: js/blocks/WidgetBlocks.js:522 +#.TRANS: musical meter (time signature), e.g., 4:4 +msgid "meter" +msgstr "" + +#: js/turtledefs.js:122 +#: js/turtledefs.js:224 +msgid "intervals" +msgstr "" + +#: js/turtledefs.js:124 +#: js/turtledefs.js:226 +msgid "ornament" +msgstr "" + +#: js/turtledefs.js:125 +#: js/turtledefs.js:227 +#: js/blocks/VolumeBlocks.js:362 +#: js/blocks/VolumeBlocks.js:502 +#: js/blocks/VolumeBlocks.js:545 +msgid "volume" +msgstr "" + +#: js/turtledefs.js:126 +#: js/turtledefs.js:228 +#: js/block-verbose.js:1700 +#: js/block-verbose.js:2626 +#: js/block.js:1664 +#: js/block.js:2554 +#: js/lilypond.js:732 +#: js/lilypond.js:897 +#: js/lilypond.js:941 +#: js/palette.js:577 +#: js/blocks/RhythmBlocks.js:766 +#: js/blocks/DrumBlocks.js:477 +#: js/blocks/VolumeBlocks.js:502 +#: js/widgets/phrasemaker.js:1038 +msgid "drum" +msgstr "" + +#: js/turtledefs.js:129 +#: js/turtledefs.js:231 +msgid "boxes" +msgstr "" + +#: js/turtledefs.js:130 +#: js/turtledefs.js:232 +msgid "widgets" +msgstr "" + +#: js/turtledefs.js:131 +#: js/turtledefs.js:233 +#: js/widgets/phrasemaker.js:1039 +msgid "graphics" +msgstr "" + +#: js/turtledefs.js:134 +#: js/turtledefs.js:236 +msgid "boolean" +msgstr "" + +#: js/turtledefs.js:137 +#: js/turtledefs.js:239 +#: js/blocks/HeapBlocks.js:59 +#: js/widgets/status.js:147 +msgid "heap" +msgstr "" + +#: js/turtledefs.js:138 +#: js/turtledefs.js:240 +#: js/blocks/DictBlocks.js:142 +#: js/blocks/ProgramBlocks.js:495 +msgid "dictionary" +msgstr "" + +#: js/turtledefs.js:139 +#: js/turtledefs.js:241 +msgid "ensemble" +msgstr "" + +#: js/turtledefs.js:140 +#: js/turtledefs.js:242 +msgid "extras" +msgstr "" + +#: js/turtledefs.js:142 +#: js/turtledefs.js:244 +#.TRANS: program as in computer program +#.TRANS: program as in computer program +msgid "program" +msgstr "" + +#: js/turtledefs.js:143 +#: js/turtledefs.js:245 +msgid "my blocks" +msgstr "" + +#: js/turtledefs.js:185 +#: js/turtledefs.js:281 +msgid "artwork" +msgstr "" + +#: js/turtledefs.js:185 +#: js/turtledefs.js:281 +msgid "logic" +msgstr "" + +#: js/turtledefs.js:185 +#: js/turtledefs.js:281 +msgid "music" +msgstr "" + +#: js/turtledefs.js:187 +#: js/turtledefs.js:463 +msgid "Music Blocks is a collection of tools for exploring fundamental musical concepts in a fun way." +msgstr "" + +#: js/turtledefs.js:436 +msgid "Welcome to Turtle Blocks" +msgstr "" + +#: js/turtledefs.js:438 +#: js/turtledefs.js:465 +#: js/turtledefs.js:774 +#: js/turtledefs.js:805 +msgid "The current version is" +msgstr "" + +#: js/turtledefs.js:446 +#: js/turtledefs.js:483 +msgid "Click the run button to run the project in fast mode." +msgstr "" + +#: js/turtledefs.js:452 +msgid "Stop the turtle." +msgstr "" + +#: js/turtledefs.js:454 +#: js/turtledefs.js:491 +msgid "You can also type Alt-S to stop." +msgstr "" + +#: js/turtledefs.js:462 +#: js/widgets/help.js:333 +msgid "Welcome to Music Blocks" +msgstr "" + +#: js/turtledefs.js:472 +#: js/widgets/help.js:334 +msgid "Meet Mr. Mouse!" +msgstr "" + +#: js/turtledefs.js:473 +msgid "Mr Mouse is our Music Blocks conductor." +msgstr "" + +#: js/turtledefs.js:475 +msgid "Mr Mouse encourages you to explore Music Blocks." +msgstr "" + +#: js/turtledefs.js:477 +msgid "Let us start our tour!" +msgstr "" + +#: js/turtledefs.js:489 +msgid "Stop the music (and the mice)." +msgstr "" + +#: js/turtledefs.js:499 +msgid "Record your project as video." +msgstr "" + +#: js/turtledefs.js:505 +msgid "Toggle Fullscreen mode." +msgstr "" + +#: js/turtledefs.js:511 +msgid "Initialize a new project." +msgstr "" + +#: js/turtledefs.js:517 +msgid "You can also load projects from the file system." +msgstr "" + +#: js/turtledefs.js:522 +#: planet/js/StringHelper.js:46 +msgid "Delete" +msgstr "" + +#: js/turtledefs.js:523 +msgid "To delete a block, just right-click on it, then you will be able to see the delete option" +msgstr "" + +#: js/turtledefs.js:528 +#: js/activity.js:2649 +#: planet/js/LocalCard.js:31 +msgid "Copy" +msgstr "" + +#: js/turtledefs.js:529 +msgid "To copy a block, just right-click on it, then you will be able to see the copy option" +msgstr "" + +#: js/turtledefs.js:534 +#: js/piemenus.js:3411 +msgid "Extract" +msgstr "" + +#: js/turtledefs.js:535 +msgid "To extract a block, just right-click on it, then you will be able to see the extract option" +msgstr "" + +#: js/turtledefs.js:542 +#: js/turtledefs.js:552 +#: js/turtledefs.js:573 +msgid "Save your project to a file." +msgstr "" + +#: js/turtledefs.js:549 +#: js/turtledefs.js:570 +msgid "save" +msgstr "" + +#: js/turtledefs.js:556 +#: js/turtledefs.js:577 +msgid "Save graphics from your project to as SVG." +msgstr "" + +#: js/turtledefs.js:560 +#: js/turtledefs.js:581 +msgid "Save graphics from your project as PNG." +msgstr "" + +#: js/turtledefs.js:564 +#: js/turtledefs.js:597 +msgid "Save block artwork as an SVG file." +msgstr "" + +#: js/turtledefs.js:585 +msgid "Save audio from your project as WAV." +msgstr "" + +#: js/turtledefs.js:589 +msgid "Save your project to as an ABC file." +msgstr "" + +#: js/turtledefs.js:593 +msgid "Save your project to as a Lilypond file." +msgstr "" + +#: js/turtledefs.js:604 +msgid "Load samples from server" +msgstr "" + +#: js/turtledefs.js:605 +msgid "This button opens a viewer for loading example projects." +msgstr "" + +#: js/turtledefs.js:611 +msgid "Palette buttons" +msgstr "" + +#: js/turtledefs.js:612 +msgid "This toolbar contains the palette buttons including Rhythm Pitch Tone Action and more." +msgstr "" + +#: js/turtledefs.js:614 +msgid "Click to show the palettes of blocks and drag blocks from the palettes onto the canvas to use them." +msgstr "" + +#: js/turtledefs.js:620 +msgid "Cartesian/Polar" +msgstr "" + +#: js/turtledefs.js:621 +msgid "Show or hide a coordinate grid." +msgstr "" + +#: js/turtledefs.js:626 +#: js/turtles.js:902 +msgid "Clean" +msgstr "" + +#: js/turtledefs.js:627 +msgid "Clear the screen and return the mice to their initial positions." +msgstr "" + +#: js/turtledefs.js:632 +#: js/turtles.js:955 +msgid "Collapse" +msgstr "" + +#: js/turtledefs.js:633 +msgid "Collapse the graphics window." msgstr "" -#: js/palette.js:571 -msgid "grid" +#: js/turtledefs.js:638 +#: js/activity.js:5684 +msgid "Home" msgstr "" -#: js/palette.js:577 -#: js/block.js:1540 -#: js/block.js:2343 -#: js/turtledefs.js:126 -#: js/turtledefs.js:228 -#: js/lilypond.js:740 -#: js/lilypond.js:905 -#: js/lilypond.js:949 -#: js/DrumBlocks.js:486 -#: js/RhythmBlocks.js:766 -#: js/VolumeBlocks.js:502 -#: js/phrasemaker.js:823 -msgid "drum" +#: js/turtledefs.js:639 +msgid "Return all blocks to the center of the screen." msgstr "" -#: js/palette.js:580 -msgid "effect" +#: js/turtledefs.js:644 +msgid "Show/hide blocks" msgstr "" -#: js/palette.js:586 -msgid "sargam" +#: js/turtledefs.js:645 +msgid "Hide or show the blocks and the palettes." msgstr "" -#: js/palette.js:589 -#: js/activity.js:1833 -#: js/RhythmBlocks.js:923 -#: js/PitchBlocks.js:442 -#: js/PitchBlocks.js:1748 -#.TRANS: a numeric mapping of the notes in an octave based on the musical mode -msgid "scale degree" +#: js/turtledefs.js:650 +msgid "Expand/collapse collapsable blocks" msgstr "" -#: js/palette.js:592 -#: js/activity.js:1860 -msgid "mode name" +#: js/turtledefs.js:651 +msgid "Expand or collapse start and action stacks." msgstr "" -#: js/palette.js:595 -#: js/activity.js:1839 -msgid "invert mode" +#: js/turtledefs.js:658 +#: js/activity.js:5704 +msgid "Decrease block size" msgstr "" -#: js/palette.js:598 -#: js/activity.js:1836 -msgid "voice name" +#: js/turtledefs.js:659 +msgid "Decrease the size of the blocks." msgstr "" -#: js/palette.js:601 -#: js/PitchBlocks.js:1181 -msgid "custom pitch" +#: js/turtledefs.js:664 +#: js/activity.js:5710 +msgid "Increase block size" msgstr "" -#: js/palette.js:605 -#: js/block.js:1456 -#: js/block.js:1575 -#: js/WidgetBlocks.js:218 -#: js/IntervalsBlocks.js:63 -msgid "temperament" +#: js/turtledefs.js:665 +msgid "Increase the size of the blocks." msgstr "" -#: js/palette.js:609 -msgid "accidental" +#: js/turtledefs.js:670 +msgid "Expand/collapse option toolbar" msgstr "" -#: js/palette.js:615 -#: js/activity.js:1866 -msgid "interval name" +#: js/turtledefs.js:671 +msgid "Click this button to expand or collapse the auxillary toolbar." msgstr "" -#: js/palette.js:633 -#: js/PitchBlocks.js:405 -msgid "pitch converter" +#: js/turtledefs.js:676 +msgid "Run slow" msgstr "" -#: js/rubrics.js:522 -#: js/turtledefs.js:119 -#: js/turtledefs.js:221 -#: js/RhythmBlockPaletteBlocks.js:52 -#: js/RhythmBlockPaletteBlocks.js:233 -#: js/ProgramBlocks.js:745 -#: js/rhythmruler.js:1670 -#: js/rhythmruler.js:1677 -#: js/rhythmruler.js:1745 -#: js/rhythmruler.js:1752 -#: js/rhythmruler.js:1830 -#.TRANS: an arrangement of notes based on duration -msgid "rhythm" +#: js/turtledefs.js:677 +msgid "Click to run the project in slow mode." msgstr "" -#: js/rubrics.js:523 -#: js/block.js:2339 -#: js/turtledefs.js:121 -#: js/turtledefs.js:223 -#: js/IntervalsBlocks.js:63 -#: js/PitchBlocks.js:1801 -#: js/PitchBlocks.js:1814 -#: js/SensorsBlocks.js:178 -#: js/phrasemaker.js:821 -#: js/musickeyboard.js:1653 -#.TRANS: pitch number -#.TRANS: we specify pitch in terms of a name and an octave. The name can be CDEFGAB or Do Re Mi Fa Sol La Ti. Octave is a number between 1 and 8. -msgid "pitch" +#: js/turtledefs.js:683 +msgid "Click to run the project step by step." msgstr "" -#: js/rubrics.js:524 -#: js/turtledefs.js:123 -#: js/turtledefs.js:225 -msgid "tone" +#: js/turtledefs.js:690 +msgid "Display statistics about your Music project." msgstr "" -#: js/rubrics.js:525 -#: js/lilypond.js:613 -#: js/lilypond.js:912 -#: js/lilypond.js:918 -#: js/lilypond.js:956 -msgid "mouse" +#: js/turtledefs.js:697 +msgid "Delete a selected plugin." msgstr "" -#: js/rubrics.js:526 -#: js/turtledefs.js:132 -#: js/turtledefs.js:234 -#: js/phrasemaker.js:825 -msgid "pen" +#: js/turtledefs.js:704 +msgid "Enable scrolling" msgstr "" -#: js/rubrics.js:527 -#: js/turtledefs.js:133 -#: js/turtledefs.js:235 -#: js/NumberBlocks.js:905 -#: js/PitchBlocks.js:1679 -#: js/PitchBlocks.js:1720 -msgid "number" +#: js/turtledefs.js:705 +msgid "You can scroll the blocks on the canvas." msgstr "" -#: js/rubrics.js:528 -#: js/turtledefs.js:127 -#: js/turtledefs.js:229 -msgid "flow" +#: js/turtledefs.js:714 +msgid "Wrap Turtle" msgstr "" -#: js/rubrics.js:530 -#: js/turtledefs.js:136 -#: js/turtledefs.js:238 -msgid "sensors" +#: js/turtledefs.js:715 +msgid "Turn Turtle wrapping On or Off." msgstr "" -#: js/rubrics.js:531 -#: js/turtledefs.js:135 -#: js/turtledefs.js:237 -#: js/MediaBlocks.js:930 -msgid "media" +#: js/turtledefs.js:725 +msgid "Restore blocks from the trash." msgstr "" -#: js/rubrics.js:532 -msgid "mice" +#: js/turtledefs.js:732 +msgid "Switch mode" msgstr "" -#: js/macros.js:711 -#: js/musicutils.js:783 -#: js/synthutils.js:181 -#.TRANS: animal sound effect -msgid "duck" +#: js/turtledefs.js:733 +msgid "Switch between beginner and advance modes." msgstr "" -#: js/toolbar.js:46 -#: js/toolbar.js:107 -msgid "About Music Blocks" +#: js/turtledefs.js:739 +msgid "Select your language preference." msgstr "" -#: js/toolbar.js:47 -#: js/toolbar.js:108 -#: js/toolbar.js:172 -#: js/toolbar.js:228 -#: js/turtledefs.js:445 -#: js/turtledefs.js:482 -#: js/activity.js:2281 -#: js/activity.js:2289 -#: js/activity.js:2520 -#: js/modewidget.js:77 -#: js/pitchstaircase.js:121 -#: js/phrasemaker.js:302 -#: js/phrasemaker.js:312 -#: js/phrasemaker.js:314 -#: js/phrasemaker.js:3901 -#: js/phrasemaker.js:4061 -#: js/phrasemaker.js:4066 -#: js/phrasemaker.js:4068 -#: js/phrasemaker.js:4183 -#: js/pitchdrummatrix.js:81 -#: js/pitchdrummatrix.js:574 -#: js/pitchdrummatrix.js:576 -#: js/pitchdrummatrix.js:628 -#: js/pitchdrummatrix.js:630 -#: js/pitchdrummatrix.js:645 -#: js/pitchdrummatrix.js:647 -#: js/pitchdrummatrix.js:674 -#: js/pitchdrummatrix.js:676 -#: js/temperament.js:477 -#: js/temperament.js:480 -#: js/temperament.js:540 -#: js/temperament.js:542 -#: js/temperament.js:1835 -#: js/temperament.js:1837 -#: js/temperament.js:1986 -#: js/temperament.js:1988 -#: js/musickeyboard.js:522 -#: js/musickeyboard.js:682 -#: js/musickeyboard.js:684 -#: js/musickeyboard.js:756 -#: js/musickeyboard.js:758 -#: js/rhythmruler.js:298 -#: js/rhythmruler.js:300 -#: js/rhythmruler.js:314 -#: js/rhythmruler.js:316 -#: js/sampler.js:96 -#: js/sampler.js:98 -#: js/sampler.js:229 -#: js/sampler.js:235 -#: js/sampler.js:237 -#: js/tempo.js:84 -#: js/tempo.js:86 -#: js/timbre.js:432 -#: js/timbre.js:434 -#: js/timbre.js:465 -#: js/timbre.js:467 -#: js/timbre.js:746 -#: js/meterwidget.js:80 -#: js/arpeggio.js:90 -#: js/arpeggio.js:547 -#: js/arpeggio.js:549 -#: js/arpeggio.js:644 -#: js/arpeggio.js:646 -msgid "Play" +#: js/turtledefs.js:745 +msgid "Keyboard shortcuts" msgstr "" -#: js/toolbar.js:48 -#: js/toolbar.js:109 -#: js/toolbar.js:173 -#: js/toolbar.js:229 -#: js/turtledefs.js:451 -#: js/turtledefs.js:488 -#: js/activity.js:2297 -#: js/modewidget.js:99 -#: js/modewidget.js:101 -#: js/phrasemaker.js:323 -#: js/phrasemaker.js:325 -#: js/pitchdrummatrix.js:561 -#: js/pitchdrummatrix.js:563 -#: js/temperament.js:1820 -#: js/temperament.js:1822 -#: js/meterwidget.js:101 -#: js/meterwidget.js:103 -#: js/arpeggio.js:534 -#: js/arpeggio.js:536 -msgid "Stop" +#: js/turtledefs.js:746 +msgid "You can type d to create a do block and r to create a re block etc." msgstr "" -#: js/toolbar.js:49 -#: js/toolbar.js:110 -#: js/toolbar.js:174 -#: js/toolbar.js:230 -#: js/turtledefs.js:498 -msgid "Record" +#: js/turtledefs.js:753 +msgid "Show these messages." msgstr "" -#: js/toolbar.js:50 -#: js/toolbar.js:51 -msgid "Full screen" +#: js/turtledefs.js:759 +#: js/turtledefs.js:790 +#: js/widgets/help.js:335 +msgid "Guide" msgstr "" -#: js/toolbar.js:52 -#: js/toolbar.js:112 -#: js/toolbar.js:177 -#: js/toolbar.js:232 -#: js/turtledefs.js:504 -msgid "Toggle Fullscreen" +#: js/turtledefs.js:760 +msgid "A detailed guide to Turtle Blocks is available." msgstr "" -#: js/toolbar.js:53 -#: js/toolbar.js:113 -#: js/toolbar.js:178 -#: js/toolbar.js:233 -#: js/turtledefs.js:510 -#: js/StringHelper.js:33 -msgid "New project" +#: js/turtledefs.js:764 +msgid "Turtle Blocks Guide" msgstr "" -#: js/toolbar.js:54 -#: js/toolbar.js:114 -#: js/toolbar.js:179 -#: js/toolbar.js:234 -#: js/turtledefs.js:516 -msgid "Load project from file" +#: js/turtledefs.js:767 +#: js/turtledefs.js:798 +#: js/widgets/help.js:336 +msgid "About" msgstr "" -#: js/toolbar.js:55 -#: js/toolbar.js:115 -#: js/toolbar.js:116 -#: js/toolbar.js:180 -#: js/toolbar.js:235 -#: js/turtledefs.js:541 -#: js/turtledefs.js:550 -#: js/turtledefs.js:571 -msgid "Save project" +#: js/turtledefs.js:768 +msgid "Turtle Blocks is an open source collection of tools for exploring musical concepts." msgstr "" -#: js/toolbar.js:56 -#: js/toolbar.js:75 -#: js/toolbar.js:77 -#: js/toolbar.js:135 -#: js/toolbar.js:144 -#: js/toolbar.js:146 -#: js/toolbar.js:181 -#: js/toolbar.js:199 -#: js/toolbar.js:201 -#: js/toolbar.js:236 -#: js/toolbar.js:254 -#: js/toolbar.js:256 -msgid "Save project as HTML" +#: js/turtledefs.js:770 +msgid "A full list of contributors can be found in the Turtle Blocks GitHub repository." +msgstr "" + +#: js/turtledefs.js:772 +msgid "Turtle Blocks is licensed under the AGPL." +msgstr "" + +#: js/turtledefs.js:780 +msgid "Turtle Blocks GitHub repository" +msgstr "" + +#: js/turtledefs.js:783 +#: js/turtledefs.js:814 +#: js/widgets/help.js:337 +#: js/widgets/help.js:359 +msgid "Congratulations." +msgstr "" + +#: js/turtledefs.js:784 +msgid "You have finished the tour. Please enjoy Turtle Blocks!" +msgstr "" + +#: js/turtledefs.js:791 +msgid "A detailed guide to Music Blocks is available." +msgstr "" + +#: js/turtledefs.js:799 +msgid "Music Blocks is an open source collection of tools for exploring musical concepts." +msgstr "" + +#: js/turtledefs.js:801 +msgid "A full list of contributors can be found in the Music Blocks GitHub repository." +msgstr "" + +#: js/turtledefs.js:803 +msgid "Music Blocks is licensed under the AGPL." +msgstr "" + +#: js/turtledefs.js:811 +msgid "Music Blocks GitHub repository" +msgstr "" + +#: js/turtledefs.js:815 +msgid "You have finished the tour. Please enjoy Music Blocks!" +msgstr "" + +#: js/turtles.js:882 +msgid "Grid" +msgstr "" + +#: js/turtles.js:1024 +msgid "Expand" +msgstr "" + +#: js/block-verbose.js:1616 +#: js/block-verbose.js:1735 +#: js/block.js:1580 +#: js/block.js:1699 +#: js/palette.js:605 +#: js/blocks/IntervalsBlocks.js:63 +#: js/blocks/WidgetBlocks.js:259 +msgid "temperament" +msgstr "" + +#: js/block-verbose.js:1630 +#: js/block.js:1594 +msgid "matrix" msgstr "" -#: js/toolbar.js:57 -#: js/toolbar.js:117 -#: js/toolbar.js:182 -#: js/toolbar.js:237 -msgid "Find and share projects" +#: js/block-verbose.js:1637 +#: js/block.js:1601 +#: js/blocks/WidgetBlocks.js:1509 +#: plugins/rodi.rtp:324 +msgid "status" msgstr "" -#: js/toolbar.js:58 -#: js/toolbar.js:118 -#: js/toolbar.js:183 -#: js/toolbar.js:238 -msgid "Offline. Sharing is unavailable" +#: js/block-verbose.js:1644 +#: js/block.js:1608 +msgid "drum mapper" msgstr "" -#: js/toolbar.js:59 -#: js/toolbar.js:119 -#: js/toolbar.js:184 -#: js/toolbar.js:239 -msgid "Auxiliary menu" +#: js/block-verbose.js:1651 +#: js/block.js:1615 +msgid "ruler" msgstr "" -#: js/toolbar.js:61 -#: js/toolbar.js:121 -#: js/toolbar.js:186 -#: js/toolbar.js:241 -msgid "Run slowly" +#: js/block-verbose.js:1658 +#: js/block.js:1622 +#: js/blocks/WidgetBlocks.js:397 +#.TRANS: timbre is the character or quality of a musical sound +msgid "timbre" msgstr "" -#: js/toolbar.js:62 -#: js/toolbar.js:122 -#: js/toolbar.js:187 -#: js/toolbar.js:242 -#: js/turtledefs.js:682 -msgid "Run step by step" +#: js/block-verbose.js:1665 +#: js/block.js:1629 +msgid "stair" msgstr "" -#: js/toolbar.js:63 -#: js/toolbar.js:123 -#: js/toolbar.js:188 -#: js/toolbar.js:243 -#: js/turtledefs.js:689 -msgid "Display statistics" +#: js/block-verbose.js:1672 +#: js/block.js:1636 +#: js/blocks/WidgetBlocks.js:707 +#.TRANS: the speed at music is should be played. +msgid "tempo" msgstr "" -#: js/toolbar.js:64 -#: js/toolbar.js:124 -#: js/toolbar.js:189 -#: js/toolbar.js:244 -msgid "Load plugin" +#: js/block-verbose.js:1679 +#: js/block-verbose.js:1742 +#: js/block.js:1643 +#: js/block.js:1706 +#: js/blocks/IntervalsBlocks.js:1464 +#.TRANS: mode, e.g., Major in C Major +msgid "mode" msgstr "" -#: js/toolbar.js:65 -#: js/toolbar.js:125 -#: js/toolbar.js:190 -#: js/toolbar.js:245 -#: js/turtledefs.js:696 -msgid "Delete plugin" +#: js/block-verbose.js:1686 +#: js/block.js:1650 +msgid "slider" msgstr "" -#: js/toolbar.js:66 -#: js/toolbar.js:126 -#: js/toolbar.js:191 -#: js/toolbar.js:246 -msgid "Enable horizontal scrolling" +#: js/block-verbose.js:1693 +#: js/block.js:1657 +#: js/blocks/SensorsBlocks.js:1001 +msgid "keyboard" msgstr "" -#: js/toolbar.js:67 -#: js/toolbar.js:127 -#: js/toolbar.js:192 -#: js/toolbar.js:247 -msgid "Disable horizontal scrolling" +#: js/block-verbose.js:1707 +#: js/block.js:1671 +#: js/blocks/WidgetBlocks.js:1190 +#: js/blocks/WidgetBlocks.js:1228 +#.TRANS: widget for subdividing a measure into distinct rhythmic elements +msgid "rhythm maker" msgstr "" -#: js/toolbar.js:68 -#: js/toolbar.js:128 -#: js/toolbar.js:193 -#: js/toolbar.js:248 -#: js/LocalCard.js:54 -#: js/StringHelper.js:71 -msgid "Merge with current project" +#: js/block-verbose.js:1714 +#: js/block-verbose.js:2457 +#: js/block-verbose.js:2514 +#: js/block.js:1678 +#: js/block.js:2385 +#: js/block.js:2442 +#: js/blocks/MeterBlocks.js:1367 +#: js/blocks/OrnamentBlocks.js:220 +#: js/blocks/OrnamentBlocks.js:312 +#: js/blocks/RhythmBlocks.js:33 +#: js/blocks/RhythmBlocks.js:356 +#: js/blocks/RhythmBlocks.js:766 +#: js/blocks/RhythmBlocks.js:806 +#: js/blocks/RhythmBlockPaletteBlocks.js:70 +#: js/blocks/RhythmBlockPaletteBlocks.js:252 +#: js/blocks/RhythmBlockPaletteBlocks.js:485 +#: js/blocks/RhythmBlockPaletteBlocks.js:554 +#: js/blocks/RhythmBlockPaletteBlocks.js:605 +#: js/blocks/RhythmBlockPaletteBlocks.js:875 +#: js/turtleactions/DictActions.js:85 +#: js/widgets/phrasemaker.js:942 +#: js/widgets/phrasemaker.js:2656 +#: js/widgets/phrasemaker.js:2699 +#: js/widgets/phrasemaker.js:2810 +#.TRANS: the value (e.g., 1/4 note) of the note being played. +msgid "note value" msgstr "" -#: js/toolbar.js:69 -#: js/toolbar.js:129 -msgid "Set Pitch Preview" +#: js/block-verbose.js:1721 +#: js/block-verbose.js:2382 +#: js/block-verbose.js:2405 +#: js/block.js:1685 +#: js/block.js:2310 +#: js/block.js:2333 +#: js/blocks/IntervalsBlocks.js:1071 +#: js/blocks/OrnamentBlocks.js:312 +#.TRANS: calculate a relative step between notes based on semi-tones +msgid "scalar interval" msgstr "" -#: js/toolbar.js:70 -#: js/toolbar.js:130 -#: js/toolbar.js:194 -#: js/toolbar.js:249 -msgid "Toggle JavaScript Editor" +#: js/block-verbose.js:1728 +#: js/block.js:1692 +#: js/blocks/RhythmBlocks.js:148 +msgid "milliseconds" msgstr "" -#: js/toolbar.js:71 -#: js/toolbar.js:131 -#: js/toolbar.js:195 -#: js/toolbar.js:250 -#: js/turtledefs.js:724 -msgid "Restore" +#: js/block-verbose.js:2455 +#: js/block-verbose.js:2459 +#: js/block-verbose.js:2512 +#: js/block-verbose.js:2628 +#: js/block.js:2383 +#: js/block.js:2387 +#: js/block.js:2440 +#: js/block.js:2556 +#: js/blocks/RhythmBlocks.js:712 +#: js/blocks/ProgramBlocks.js:1273 +#: js/widgets/rhythmruler.js:1183 +#: js/widgets/rhythmruler.js:1329 +msgid "silence" msgstr "" -#: js/toolbar.js:72 -#: js/toolbar.js:132 -#: js/toolbar.js:196 -#: js/toolbar.js:251 -msgid "Switch to beginner mode" +#: js/block-verbose.js:2548 +#: js/block-verbose.js:3492 +#: js/block-verbose.js:3509 +#: js/activity.js:2718 +#: js/activity.js:2769 +#: js/block.js:2476 +#: js/block.js:3416 +#: js/block.js:3433 +#: js/utils/musicutils.js:3780 +#: js/utils/musicutils.js:5273 +#.TRANS: the note names must be separated by single spaces +#.TRANS: the note names must be separated by single spaces +#.TRANS: the note names must be separated by single spaces +msgid "ti la sol fa mi re do" msgstr "" -#: js/toolbar.js:73 -#: js/toolbar.js:133 -#: js/toolbar.js:197 -#: js/toolbar.js:252 -msgid "Switch to advanced mode" +#: js/block-verbose.js:2616 +#: js/block.js:2544 +#.TRANS: scalar step +#.TRANS: scalar step +msgid "down" msgstr "" -#: js/toolbar.js:74 -#: js/toolbar.js:134 -#: js/toolbar.js:143 -#: js/toolbar.js:198 -#: js/toolbar.js:253 -#: js/turtledefs.js:738 -msgid "Select language" +#: js/block-verbose.js:2617 +#: js/block.js:2545 +msgid "up" msgstr "" -#: js/toolbar.js:76 -#: js/toolbar.js:79 -#: js/toolbar.js:137 -#: js/turtledefs.js:579 -msgid "Save mouse artwork as PNG" +#: js/block-verbose.js:3026 +#: js/block.js:2950 +msgid "Silence block cannot be removed." msgstr "" -#: js/toolbar.js:78 -#: js/toolbar.js:136 -#: js/turtledefs.js:575 -msgid "Save mouse artwork as SVG" +#: js/block-verbose.js:3824 +#: js/block.js:3748 +#: js/blocks.js:2607 +#: js/blocks.js:3218 +#: js/palette.js:618 +#: js/blocks/BooleanBlocks.js:77 +#: js/blocks/BooleanBlocks.js:167 +#: js/blocks/BooleanBlocks.js:251 +#: js/blocks/BooleanBlocks.js:335 +#: js/blocks/BooleanBlocks.js:433 +#: js/blocks/BooleanBlocks.js:539 +#: js/blocks/BooleanBlocks.js:640 +#: js/blocks/BooleanBlocks.js:741 +#: js/blocks/BooleanBlocks.js:847 +#: js/blocks/BooleanBlocks.js:948 +#: js/blocks/BooleanBlocks.js:1033 +#: js/blocks/SensorsBlocks.js:910 +msgid "true" msgstr "" -#: js/toolbar.js:80 -#: js/toolbar.js:138 -#: js/turtledefs.js:583 -msgid "Save music as WAV" +#: js/block-verbose.js:3824 +#: js/block.js:3748 +#: js/blocks.js:2609 +#: js/blocks.js:3220 +#: js/blocks/BooleanBlocks.js:79 +#: js/blocks/BooleanBlocks.js:169 +#: js/blocks/BooleanBlocks.js:253 +#: js/blocks/BooleanBlocks.js:337 +#: js/blocks/BooleanBlocks.js:435 +#: js/blocks/BooleanBlocks.js:541 +#: js/blocks/BooleanBlocks.js:642 +#: js/blocks/BooleanBlocks.js:743 +#: js/blocks/BooleanBlocks.js:849 +#: js/blocks/BooleanBlocks.js:950 +#: js/blocks/SensorsBlocks.js:912 +msgid "false" msgstr "" -#: js/toolbar.js:81 -#: js/toolbar.js:139 -#: js/turtledefs.js:587 -msgid "Save sheet music as ABC" +#: js/block-verbose.js:3835 +#: js/block-verbose.js:3848 +#: js/block.js:3759 +#: js/block.js:3772 +#: js/blocks/ExtrasBlocks.js:615 +msgid "Cartesian" msgstr "" -#: js/toolbar.js:82 -#: js/toolbar.js:140 -#: js/turtledefs.js:591 -msgid "Save sheet music as Lilypond" +#: js/block-verbose.js:3836 +#: js/block-verbose.js:3849 +#: js/block.js:3760 +#: js/block.js:3773 +#: js/blocks/ExtrasBlocks.js:619 +msgid "polar" msgstr "" -#: js/toolbar.js:83 -msgid "Save sheet music as MusicXML" +#: js/block-verbose.js:3837 +#: js/block-verbose.js:3850 +#: js/block.js:3761 +#: js/block.js:3774 +#: js/blocks/ExtrasBlocks.js:623 +msgid "Cartesian+polar" msgstr "" -#: js/toolbar.js:84 -#: js/toolbar.js:141 -#: js/toolbar.js:149 -#: js/toolbar.js:204 -#: js/toolbar.js:259 -#: js/turtledefs.js:562 -#: js/turtledefs.js:595 -msgid "Save block artwork as SVG" +#: js/block-verbose.js:3838 +#: js/block-verbose.js:3857 +#: js/block.js:3762 +#: js/block.js:3781 +#: js/blocks/ExtrasBlocks.js:652 +msgid "none" msgstr "" -#: js/toolbar.js:85 -#: js/toolbar.js:142 -#: js/toolbar.js:150 -#: js/toolbar.js:205 -#: js/toolbar.js:260 -msgid "Confirm" +#: js/block-verbose.js:3851 +#: js/block.js:3775 +#: js/blocks/ExtrasBlocks.js:628 +msgid "treble" msgstr "" -#: js/toolbar.js:86 -#: js/toolbar.js:151 -#: js/toolbar.js:206 -#: js/toolbar.js:261 -msgid "English (United States)" +#: js/block-verbose.js:3852 +#: js/block.js:3776 +#: js/blocks/ExtrasBlocks.js:632 +msgid "grand staff" msgstr "" -#: js/toolbar.js:87 -#: js/toolbar.js:152 -#: js/toolbar.js:207 -#: js/toolbar.js:262 -msgid "English (United Kingdom)" +#: js/block-verbose.js:3853 +#: js/block.js:3777 +#: js/blocks/ExtrasBlocks.js:636 +msgid "mezzo-soprano" msgstr "" -#: js/toolbar.js:88 -#: js/toolbar.js:153 -#: js/toolbar.js:208 -#: js/toolbar.js:263 -msgid "日本語" +#: js/block-verbose.js:3854 +#: js/block.js:3778 +#: js/blocks/ExtrasBlocks.js:640 +msgid "alto" msgstr "" -#: js/toolbar.js:89 -msgid "한국어" +#: js/block-verbose.js:3855 +#: js/block.js:3779 +#: js/blocks/ExtrasBlocks.js:644 +msgid "tenor" msgstr "" -#: js/toolbar.js:90 -#: js/toolbar.js:155 -#: js/toolbar.js:210 -#: js/toolbar.js:265 -msgid "español" +#: js/block-verbose.js:3856 +#: js/block.js:3780 +#: js/utils/musicutils.js:1115 +#: js/utils/synthutils.js:80 +#: js/blocks/ExtrasBlocks.js:648 +#.TRANS: musical instrument +msgid "bass" msgstr "" -#: js/toolbar.js:91 -#: js/toolbar.js:156 -#: js/toolbar.js:211 -#: js/toolbar.js:266 -msgid "português" +#: js/block-verbose.js:3901 +#: js/block.js:3825 +#: js/blocks.js:2600 +#: js/blocks.js:3211 +msgid "on2" msgstr "" -#: js/toolbar.js:92 -#: js/toolbar.js:157 -#: js/toolbar.js:212 -#: js/toolbar.js:267 -msgid "にほんご" +#: js/block-verbose.js:3903 +#: js/block.js:3827 +#: js/blocks.js:2602 +#: js/blocks.js:3213 +msgid "off" msgstr "" -#: js/toolbar.js:93 -#: js/toolbar.js:158 -#: js/toolbar.js:213 -#: js/toolbar.js:268 -msgid "中文" +#: js/block-verbose.js:4470 +#: js/block.js:4394 +msgid "Not a number" msgstr "" -#: js/toolbar.js:94 -#: js/toolbar.js:159 -#: js/toolbar.js:214 -#: js/toolbar.js:269 -msgid "ภาษาไทย" +#: js/block-verbose.js:4477 +#: js/block.js:4401 +msgid "Octave value must be between 1 and 10." msgstr "" -#: js/toolbar.js:95 -#: js/toolbar.js:160 -#: js/toolbar.js:215 -#: js/toolbar.js:270 -msgid "aymara" +#: js/block-verbose.js:4485 +#: js/block.js:4409 +msgid "Numbers can have at most 10 digits." msgstr "" -#: js/toolbar.js:96 -#: js/toolbar.js:161 -#: js/toolbar.js:216 -#: js/toolbar.js:271 -msgid "quechua" +#: js/activity.js:390 +#: js/activity.js:395 +msgid "Search for blocks" msgstr "" -#: js/toolbar.js:97 -#: js/toolbar.js:162 -#: js/toolbar.js:217 -#: js/toolbar.js:272 -msgid "guarani" +#: js/activity.js:1413 +msgid "Refresh your browser to change to advanced mode." msgstr "" -#: js/toolbar.js:98 -#: js/toolbar.js:163 -#: js/toolbar.js:218 -#: js/toolbar.js:273 -msgid "हिंदी" +#: js/activity.js:1418 +msgid "Refresh your browser to change to beginner mode." msgstr "" -#: js/toolbar.js:99 -#: js/toolbar.js:165 -#: js/toolbar.js:219 -#: js/toolbar.js:275 -msgid "igbo" +#: js/activity.js:1477 +msgid "Catching mice" +msgstr "" + +#: js/activity.js:1478 +msgid "Cleaning the instruments" +msgstr "" + +#: js/activity.js:1479 +msgid "Testing key pieces" +msgstr "" + +#: js/activity.js:1480 +msgid "Sight-reading" +msgstr "" + +#: js/activity.js:1481 +msgid "Combining math and music" msgstr "" -#: js/toolbar.js:100 -#: js/toolbar.js:166 -#: js/toolbar.js:220 -#: js/toolbar.js:276 -msgid "عربى" +#: js/activity.js:1482 +msgid "Generating more blocks" msgstr "" -#: js/toolbar.js:101 -#: js/toolbar.js:164 -#: js/toolbar.js:221 -#: js/toolbar.js:274 -msgid "తెలుగు" +#: js/activity.js:1483 +msgid "Do Re Mi Fa Sol La Ti Do" msgstr "" -#: js/toolbar.js:102 -#: js/toolbar.js:167 -#: js/toolbar.js:222 -#: js/toolbar.js:277 -msgid "עִברִית" +#: js/activity.js:1484 +msgid "Tuning string instruments" msgstr "" -#: js/toolbar.js:111 -#: js/toolbar.js:175 -#: js/toolbar.js:176 -#: js/toolbar.js:231 -msgid "Full Screen" +#: js/activity.js:1485 +msgid "Pressing random keys" msgstr "" -#: js/toolbar.js:145 -#: js/toolbar.js:148 -#: js/toolbar.js:200 -#: js/toolbar.js:203 -#: js/toolbar.js:255 -#: js/toolbar.js:258 -#: js/turtledefs.js:558 -msgid "Save turtle artwork as PNG" +#: js/activity.js:1663 +msgid "plugins will be removed upon restart." msgstr "" -#: js/toolbar.js:147 -#: js/toolbar.js:202 -#: js/toolbar.js:257 -#: js/turtledefs.js:554 -msgid "Save turtle artwork as SVG" +#: js/activity.js:1672 +msgid "show Cartesian" msgstr "" -#: js/toolbar.js:154 -#: js/toolbar.js:209 -#: js/toolbar.js:264 -msgid "한국인" +#: js/activity.js:2211 +#: js/palette.js:589 +#: js/blocks/RhythmBlocks.js:923 +#: js/blocks/PitchBlocks.js:442 +#: js/blocks/PitchBlocks.js:1786 +#.TRANS: a numeric mapping of the notes in an octave based on the musical mode +msgid "scale degree" msgstr "" -#: js/toolbar.js:171 -#: js/toolbar.js:227 -msgid "About Turtle Blocks" +#: js/activity.js:2214 +#: js/palette.js:598 +msgid "voice name" msgstr "" -#: js/toolbar.js:429 -#: js/toolbar.js:440 -msgid "Turtle Wrap Off" +#: js/activity.js:2217 +#: js/palette.js:595 +msgid "invert mode" msgstr "" -#: js/toolbar.js:442 -msgid "Turtle Wrap On" +#: js/activity.js:2220 +msgid "output tools" msgstr "" -#: js/block.js:1470 -msgid "matrix" +#: js/activity.js:2223 +msgid "custom note" msgstr "" -#: js/block.js:1477 -#: js/WidgetBlocks.js:1226 -#: plugins/rodi.rtp:324 -msgid "status" +#: js/activity.js:2226 +msgid "accidental name" msgstr "" -#: js/block.js:1484 -msgid "drum mapper" +#: js/activity.js:2229 +#: js/blocks/PitchBlocks.js:855 +msgid "east indian solfege" msgstr "" -#: js/block.js:1491 -msgid "ruler" +#: js/activity.js:2232 +#: js/blocks/PitchBlocks.js:869 +msgid "note name" msgstr "" -#: js/block.js:1498 -#: js/WidgetBlocks.js:327 -#.TRANS: timbre is the character or quality of a musical sound -msgid "timbre" +#: js/activity.js:2235 +#: js/blocks/IntervalsBlocks.js:94 +msgid "temperament name" msgstr "" -#: js/block.js:1505 -msgid "stair" +#: js/activity.js:2238 +#: js/palette.js:592 +msgid "mode name" msgstr "" -#: js/block.js:1512 -#: js/WidgetBlocks.js:577 -#.TRANS: the speed at music is should be played. -msgid "tempo" +#: js/activity.js:2241 +msgid "chord name" msgstr "" -#: js/block.js:1519 -#: js/block.js:1582 -#: js/IntervalsBlocks.js:1268 -#.TRANS: mode, e.g., Major in C Major -msgid "mode" +#: js/activity.js:2244 +#: js/palette.js:615 +msgid "interval name" msgstr "" -#: js/block.js:1526 -msgid "slider" +#: js/activity.js:2247 +msgid "filter type" msgstr "" -#: js/block.js:1533 -#: js/SensorsBlocks.js:1001 -msgid "keyboard" +#: js/activity.js:2250 +msgid "oscillator type" msgstr "" -#: js/block.js:1547 -#: js/WidgetBlocks.js:957 -#: js/WidgetBlocks.js:988 -#.TRANS: widget for subdividing a measure into distinct rhythmic elements -msgid "rhythm maker" +#: js/activity.js:2253 +#: js/blocks.js:2479 +#: js/blocks.js:2487 +msgid "audio file" msgstr "" -#: js/block.js:1554 -#: js/block.js:2182 -#: js/block.js:2236 -#: js/RhythmBlockPaletteBlocks.js:70 -#: js/RhythmBlockPaletteBlocks.js:251 -#: js/RhythmBlockPaletteBlocks.js:484 -#: js/RhythmBlockPaletteBlocks.js:553 -#: js/RhythmBlockPaletteBlocks.js:604 -#: js/RhythmBlockPaletteBlocks.js:874 -#: js/RhythmBlocks.js:33 -#: js/RhythmBlocks.js:356 -#: js/RhythmBlocks.js:766 -#: js/RhythmBlocks.js:806 -#: js/OrnamentBlocks.js:220 -#: js/OrnamentBlocks.js:312 -#: js/MeterBlocks.js:1367 -#: js/DictActions.js:85 -#: js/phrasemaker.js:731 -#: js/phrasemaker.js:2393 -#: js/phrasemaker.js:2436 -#: js/phrasemaker.js:2534 -#.TRANS: the value (e.g., 1/4 note) of the note being played. -msgid "note value" +#: js/activity.js:2256 +#: js/blocks/DrumBlocks.js:32 +msgid "noise name" msgstr "" -#: js/block.js:1561 -#: js/block.js:2110 -#: js/block.js:2133 -#: js/IntervalsBlocks.js:875 -#: js/OrnamentBlocks.js:312 -#.TRANS: calculate a relative step between notes based on semi-tones -msgid "scalar interval" +#: js/activity.js:2259 +#: js/blocks/DrumBlocks.js:75 +msgid "drum name" msgstr "" -#: js/block.js:1568 -#: js/RhythmBlocks.js:148 -msgid "milliseconds" +#: js/activity.js:2262 +#: js/blocks/DrumBlocks.js:119 +msgid "effects name" msgstr "" -#: js/block.js:2180 -#: js/block.js:2184 -#: js/block.js:2234 -#: js/block.js:2345 -#: js/ProgramBlocks.js:1273 -#: js/RhythmBlocks.js:712 -#: js/rhythmruler.js:834 -#: js/rhythmruler.js:961 -msgid "silence" +#: js/activity.js:2265 +msgid "wrap mode" msgstr "" -#: js/block.js:2265 -#: js/block.js:3134 -#: js/block.js:3151 -#: js/activity.js:2336 -#: js/activity.js:2387 -#: js/musicutils.js:2932 -#: js/musicutils.js:4287 -#.TRANS: the note names must be separated by single spaces -#.TRANS: the note names must be separated by single spaces -msgid "ti la sol fa mi re do" +#: js/activity.js:2268 +msgid "load file" msgstr "" -#: js/block.js:2333 -#.TRANS: scalar step -msgid "down" +#: js/activity.js:2435 +#: js/activity.js:5851 +msgid "This block is deprecated." msgstr "" -#: js/block.js:2334 -msgid "up" +#: js/activity.js:2437 +#: js/activity.js:5853 +msgid "Block cannot be found." msgstr "" -#: js/block.js:3477 -#: js/block.js:3490 -#: js/ExtrasBlocks.js:612 -msgid "Cartesian" +#: js/activity.js:2645 +msgid "Saving block artwork" msgstr "" -#: js/block.js:3478 -#: js/block.js:3491 -#: js/ExtrasBlocks.js:616 -msgid "polar" +#: js/activity.js:2656 +msgid "Erase" msgstr "" -#: js/block.js:3479 -#: js/block.js:3492 -#: js/ExtrasBlocks.js:620 -msgid "Cartesian+polar" +#: js/activity.js:2683 +#: js/activity.js:2705 +msgid "Paste" msgstr "" -#: js/block.js:3480 -#: js/block.js:3499 -#: js/ExtrasBlocks.js:649 -msgid "none" +#: js/activity.js:2687 +msgid "Save block help" msgstr "" -#: js/block.js:3493 -#: js/ExtrasBlocks.js:625 -msgid "treble" +#: js/activity.js:2772 +msgid "Jumping to the bottom of the page." msgstr "" -#: js/block.js:3494 -#: js/ExtrasBlocks.js:629 -msgid "grand staff" +#: js/activity.js:2778 +msgid "Scrolling up." msgstr "" -#: js/block.js:3495 -#: js/ExtrasBlocks.js:633 -msgid "mezzo-soprano" +#: js/activity.js:2783 +msgid "Scrolling down." msgstr "" -#: js/block.js:3496 -#: js/ExtrasBlocks.js:637 -msgid "alto" +#: js/activity.js:2788 +msgid "Extracting block" msgstr "" -#: js/block.js:3497 -#: js/ExtrasBlocks.js:641 -msgid "tenor" +#: js/activity.js:2796 +msgid "Moving block up." msgstr "" -#: js/block.js:3498 -#: js/ExtrasBlocks.js:645 -#: js/musicutils.js:736 -#: js/synthutils.js:64 -#.TRANS: musical instrument -msgid "bass" +#: js/activity.js:2817 +msgid "Moving block down." msgstr "" -#: js/block.js:4075 -msgid "Not a number" +#: js/activity.js:2838 +msgid "Moving block left." msgstr "" -#: js/block.js:4082 -msgid "Octave value must be between 1 and 10." +#: js/activity.js:2855 +msgid "Moving block right." msgstr "" -#: js/block.js:4090 -msgid "Numbers can have at most 10 digits." +#: js/activity.js:2870 +msgid "Jump to home position." msgstr "" -#: js/notation.js:353 -msgid "Lilypond cannot process pickup of " +#: js/activity.js:2897 +msgid "Hide blocks" msgstr "" -#: js/turtledefs.js:40 -#.TRANS: put the URL to the guide here, e.g., https://github.com/sugarlabs/turtleblocksjs/tree/master/guide/README.md -msgid "guide url" +#: js/activity.js:4500 +msgid "Click the run button to run the project." msgstr "" -#: js/turtledefs.js:85 -#: js/turtledefs.js:437 -msgid "Turtle Blocks is a Logo-inspired turtle that draws colorful pictures with snap-together visual-programming blocks." +#: js/activity.js:5692 +msgid "Show/hide block" msgstr "" -#: js/turtledefs.js:118 -#: js/turtledefs.js:220 -msgid "search" +#: js/activity.js:5698 +msgid "Expand/collapse blocks" msgstr "" -#: js/turtledefs.js:120 -#: js/turtledefs.js:222 -#: js/WidgetBlocks.js:437 -#: js/MeterBlocks.js:1343 -#.TRANS: musical meter (time signature), e.g., 4:4 -msgid "meter" +#: js/activity.js:5976 +msgid "Could not parse JSON input." msgstr "" -#: js/turtledefs.js:122 -#: js/turtledefs.js:224 -msgid "intervals" +#: js/activity.js:6475 +#: js/activity.js:6580 +#: js/activity.js:6631 +msgid "Cannot load project from the file. Please check the file type." msgstr "" -#: js/turtledefs.js:124 -#: js/turtledefs.js:226 -msgid "ornament" +#: js/activity.js:6917 +msgid "Invalid parameters" msgstr "" -#: js/turtledefs.js:125 -#: js/turtledefs.js:227 -#: js/VolumeBlocks.js:362 -#: js/VolumeBlocks.js:502 -#: js/VolumeBlocks.js:545 -msgid "volume" +#: js/blocks.js:1212 +#: js/blocks.js:3444 +#: js/blocks.js:3834 +#: js/blocks.js:3865 +#: js/blocks.js:3914 +#: js/blocks.js:3949 +#: js/blocks.js:6586 +#: js/palette.js:509 +#: js/palette.js:638 +#: js/palette.js:1105 +#: js/blocks/BoxesBlocks.js:282 +#: js/blocks/BoxesBlocks.js:285 +#: js/blocks/BoxesBlocks.js:405 +#: js/blocks/BoxesBlocks.js:594 +msgid "box" msgstr "" -#: js/turtledefs.js:129 -#: js/turtledefs.js:231 -msgid "boxes" +#: js/blocks.js:1713 +msgid "Consider breaking this stack into parts." msgstr "" -#: js/turtledefs.js:130 -#: js/turtledefs.js:232 -msgid "widgets" +#: js/blocks.js:2472 +#: js/palette.js:653 +#: js/blocks/MediaBlocks.js:602 +msgid "open file" msgstr "" -#: js/turtledefs.js:131 -#: js/turtledefs.js:233 -#: js/phrasemaker.js:824 -msgid "graphics" +#: js/blocks.js:3247 +#: js/palette.js:574 +#: js/blocks/MediaBlocks.js:892 +#: js/blocks/MediaBlocks.js:963 +msgid "text" msgstr "" -#: js/turtledefs.js:134 -#: js/turtledefs.js:236 -msgid "boolean" +#: js/blocks.js:3443 +#: js/palette.js:641 +#: js/palette.js:642 +#: js/blocks/BoxesBlocks.js:514 +msgid "store in box" msgstr "" -#: js/turtledefs.js:137 -#: js/turtledefs.js:239 -#: js/HeapBlocks.js:59 -#: js/status.js:147 -msgid "heap" +#: js/blocks.js:3448 +#: js/blocks.js:3888 +#: js/blocks.js:3923 +#: js/blocks.js:3958 +#: js/blocks.js:5862 +#: js/blocks.js:5883 +#: js/blocks/BoxesBlocks.js:772 +msgid "box1" msgstr "" -#: js/turtledefs.js:138 -#: js/turtledefs.js:240 -#: js/ProgramBlocks.js:495 -#: js/DictBlocks.js:142 -msgid "dictionary" +#: js/blocks.js:3450 +#: js/blocks.js:3890 +#: js/blocks.js:3925 +#: js/blocks.js:3960 +#: js/blocks.js:5864 +#: js/blocks.js:5885 +#: js/blocks/BoxesBlocks.js:663 +msgid "box2" msgstr "" -#: js/turtledefs.js:139 -#: js/turtledefs.js:241 -msgid "ensemble" +#: js/blocks.js:4122 +#: js/palette.js:639 +#: js/palette.js:644 +#: js/palette.js:1041 +#: js/blocks/BoxesBlocks.js:591 +msgid "store in" msgstr "" -#: js/turtledefs.js:140 -#: js/turtledefs.js:242 -msgid "extras" +#: js/blocks.js:4122 +#: js/blocks/BoxesBlocks.js:595 +#: js/blocks/DictBlocks.js:215 +#: js/blocks/DictBlocks.js:289 +#: js/blocks/EnsembleBlocks.js:391 +#: js/blocks/EnsembleBlocks.js:402 +#: js/blocks/MediaBlocks.js:746 +#: js/blocks/PitchBlocks.js:656 +#: js/blocks/PitchBlocks.js:934 +#: js/blocks/PitchBlocks.js:1866 +#: js/blocks/ProgramBlocks.js:390 +#: js/blocks/ProgramBlocks.js:495 +#: js/blocks/ProgramBlocks.js:658 +#: js/blocks/ToneBlocks.js:1025 +msgid "name" msgstr "" -#: js/turtledefs.js:142 -#: js/turtledefs.js:244 -#.TRANS: program as in computer program -#.TRANS: program as in computer program -msgid "program" +#: js/blocks.js:4122 +#: js/blocks/BoxesBlocks.js:75 +#: js/blocks/BoxesBlocks.js:595 +#: js/blocks/DictBlocks.js:289 +#: js/blocks/DictBlocks.js:430 +#: js/blocks/HeapBlocks.js:544 +#: js/blocks/RhythmBlocks.js:1130 +msgid "value" msgstr "" -#: js/turtledefs.js:143 -#: js/turtledefs.js:245 -msgid "my blocks" +#: js/blocks.js:4465 +msgid "Forever loop detected inside a note value block. Unexpected things may happen." msgstr "" -#: js/turtledefs.js:185 -#: js/turtledefs.js:281 -msgid "artwork" +#: js/blocks.js:4988 +msgid "There is no block selected." msgstr "" -#: js/turtledefs.js:185 -#: js/turtledefs.js:281 -msgid "logic" +#: js/blocks.js:5091 +#: js/blocks/MediaBlocks.js:888 +msgid "show" msgstr "" -#: js/turtledefs.js:185 -#: js/turtledefs.js:281 -msgid "music" +#: js/blocks.js:5094 +#: js/blocks/MediaBlocks.js:803 +#.TRANS: Avatar is the image used to determine the appearance of the mouse. +msgid "avatar" msgstr "" -#: js/turtledefs.js:187 -#: js/turtledefs.js:463 -msgid "Music Blocks is a collection of tools for exploring fundamental musical concepts in a fun way." +#: js/blocks.js:5097 +#: js/blocks/ToneBlocks.js:1010 +#: js/widgets/sampler.js:975 +#.TRANS: The sound sample that the user uploads. +msgid "sample" msgstr "" -#: js/turtledefs.js:436 -msgid "Welcome to Turtle Blocks" +#: js/lilypond.js:606 +msgid "brown rat" msgstr "" -#: js/turtledefs.js:438 -#: js/turtledefs.js:465 -#: js/turtledefs.js:774 -#: js/turtledefs.js:805 -msgid "The current version is" +#: js/lilypond.js:607 +msgid "mole" msgstr "" -#: js/turtledefs.js:446 -#: js/turtledefs.js:483 -msgid "Click the run button to run the project in fast mode." +#: js/lilypond.js:608 +msgid "chipmunk" msgstr "" -#: js/turtledefs.js:452 -msgid "Stop the turtle." +#: js/lilypond.js:609 +msgid "red squirrel" msgstr "" -#: js/turtledefs.js:454 -#: js/turtledefs.js:491 -msgid "You can also type Alt-S to stop." +#: js/lilypond.js:610 +msgid "guinea pig" +msgstr "" + +#: js/lilypond.js:611 +msgid "capybara" msgstr "" -#: js/turtledefs.js:462 -#: js/help.js:333 -msgid "Welcome to Music Blocks" +#: js/lilypond.js:612 +msgid "coypu" msgstr "" -#: js/turtledefs.js:472 -#: js/help.js:334 -msgid "Meet Mr. Mouse!" +#: js/lilypond.js:613 +msgid "black rat" msgstr "" -#: js/turtledefs.js:473 -msgid "Mr Mouse is our Music Blocks conductor." +#: js/lilypond.js:614 +msgid "grey squirrel" msgstr "" -#: js/turtledefs.js:475 -msgid "Mr Mouse encourages you to explore Music Blocks." +#: js/lilypond.js:615 +msgid "flying squirrel" msgstr "" -#: js/turtledefs.js:477 -msgid "Let us start our tour!" +#: js/lilypond.js:616 +msgid "bat" msgstr "" -#: js/turtledefs.js:489 -msgid "Stop the music (and the mice)." +#: js/lilypond.js:749 +#: js/lilypond.js:913 +#: js/lilypond.js:951 +#: js/blocks/ActionBlocks.js:1256 +#: js/blocks/ExtrasBlocks.js:556 +msgid "start drum" msgstr "" -#: js/turtledefs.js:499 -msgid "Record your project as video." +#: js/logo.js:61 +msgid "Not a valid pitch name" msgstr "" -#: js/turtledefs.js:505 -msgid "Toggle Fullscreen mode." +#: js/logo.js:507 +#: js/blocks/ProgramBlocks.js:258 +#: js/blocks/ProgramBlocks.js:427 +msgid "You must select a file." msgstr "" -#: js/turtledefs.js:511 -msgid "Initialize a new project." +#: js/logo.js:1696 +msgid "Playback is ready." msgstr "" -#: js/turtledefs.js:517 -msgid "You can also load projects from the file system." +#: js/macros.js:711 +#: js/utils/musicutils.js:1162 +#: js/utils/synthutils.js:202 +#.TRANS: animal sound effect +msgid "duck" msgstr "" -#: js/turtledefs.js:522 -#: js/StringHelper.js:46 -msgid "Delete" +#: js/notation.js:353 +msgid "Lilypond cannot process pickup of " msgstr "" -#: js/turtledefs.js:523 -msgid "To delete a block, just right-click on it, then you will be able to see the delete option" +#: js/palette.js:571 +msgid "grid" msgstr "" -#: js/turtledefs.js:528 -#: js/activity.js:2270 -#: js/LocalCard.js:31 -msgid "Copy" +#: js/palette.js:580 +msgid "effect" msgstr "" -#: js/turtledefs.js:529 -msgid "To copy a block, just right-click on it, then you will be able to see the copy option" +#: js/palette.js:586 +msgid "sargam" msgstr "" -#: js/turtledefs.js:535 -msgid "To extract a block, just right-click on it, then you will be able to see the extract option" +#: js/palette.js:601 +#: js/blocks/PitchBlocks.js:1209 +msgid "custom pitch" msgstr "" -#: js/turtledefs.js:542 -#: js/turtledefs.js:552 -#: js/turtledefs.js:573 -msgid "Save your project to a file." +#: js/palette.js:609 +msgid "accidental" msgstr "" -#: js/turtledefs.js:549 -#: js/turtledefs.js:570 -msgid "save" +#: js/palette.js:633 +#: js/blocks/PitchBlocks.js:405 +msgid "pitch converter" msgstr "" -#: js/turtledefs.js:556 -#: js/turtledefs.js:577 -msgid "Save graphics from your project to as SVG." +#: js/piemenus.js:200 +#: js/utils/musicutils.js:1187 +#: js/utils/musicutils.js:1207 +#: js/widgets/musickeyboard.js:2341 +#: js/widgets/phrasemaker.js:1908 +#: js/widgets/sampler.js:810 +#.TRANS: double sharp is a music term related to pitch +msgid "double sharp" msgstr "" -#: js/turtledefs.js:560 -#: js/turtledefs.js:581 -msgid "Save graphics from your project as PNG." +#: js/piemenus.js:201 +#: js/utils/musicutils.js:1185 +#: js/utils/musicutils.js:1208 +#: js/blocks/PitchBlocks.js:1539 +#: js/turtleactions/PitchActions.js:323 +#: js/widgets/musickeyboard.js:2342 +#: js/widgets/phrasemaker.js:1909 +#: js/widgets/sampler.js:811 +#.TRANS: sharp is a music term related to pitch +#.TRANS: sharp is a half-step up in pitch +msgid "sharp" msgstr "" -#: js/turtledefs.js:564 -#: js/turtledefs.js:597 -msgid "Save block artwork as an SVG file." +#: js/piemenus.js:202 +#: js/utils/musicutils.js:1183 +#: js/utils/musicutils.js:1209 +#: js/widgets/musickeyboard.js:2343 +#: js/widgets/phrasemaker.js:1910 +#: js/widgets/sampler.js:812 +#.TRANS: natural is a music term related to pitch +msgid "natural" msgstr "" -#: js/turtledefs.js:585 -msgid "Save audio from your project as WAV." +#: js/piemenus.js:203 +#: js/utils/musicutils.js:1181 +#: js/utils/musicutils.js:1210 +#: js/blocks/PitchBlocks.js:1498 +#: js/turtleactions/PitchActions.js:326 +#: js/widgets/musickeyboard.js:2344 +#: js/widgets/phrasemaker.js:1911 +#: js/widgets/sampler.js:813 +#.TRANS: flat is a music term related to pitch +#.TRANS: flat is a half-step down in pitch +msgid "flat" msgstr "" -#: js/turtledefs.js:589 -msgid "Save your project to as an ABC file." +#: js/piemenus.js:204 +#: js/utils/musicutils.js:1179 +#: js/utils/musicutils.js:1211 +#: js/widgets/musickeyboard.js:2345 +#: js/widgets/phrasemaker.js:1912 +#: js/widgets/sampler.js:814 +#.TRANS: double flat is a music term related to pitch +msgid "double flat" msgstr "" -#: js/turtledefs.js:593 -msgid "Save your project to as a Lilypond file." +#: js/piemenus.js:2864 +#: js/utils/musicutils.js:1006 +#: js/blocks/PitchBlocks.js:1385 +#.TRANS: unison is a music term related to intervals +#.TRANS: unison means the note is the same as the current note +msgid "unison" msgstr "" -#: js/turtledefs.js:604 -msgid "Load samples from server" +#: js/piemenus.js:3018 +#: js/piemenus.js:3091 +#: js/utils/musicutils.js:1014 +#: js/utils/musicutils.js:1189 +#: js/utils/musicutils.js:1326 +#.TRANS: major is a music term related to intervals and mode +msgid "major" msgstr "" -#: js/turtledefs.js:605 -msgid "This button opens a viewer for loading example projects." +#: js/piemenus.js:3018 +#: js/piemenus.js:3091 +#: js/utils/musicutils.js:1032 +#.TRANS: modal scale for music +msgid "ionian" msgstr "" -#: js/turtledefs.js:611 -msgid "Palette buttons" +#: js/piemenus.js:3020 +#: js/piemenus.js:3095 +#: js/utils/musicutils.js:1012 +#: js/utils/musicutils.js:1190 +#: js/utils/musicutils.js:1323 +#.TRANS: minor is a music term related to intervals and mode +msgid "minor" msgstr "" -#: js/turtledefs.js:612 -msgid "This toolbar contains the palette buttons including Rhythm Pitch Tone Action and more." +#: js/piemenus.js:3020 +#: js/piemenus.js:3095 +#: js/utils/musicutils.js:1042 +#.TRANS: modal scale for music +msgid "aeolian" msgstr "" -#: js/turtledefs.js:614 -msgid "Click to show the palettes of blocks and drag blocks from the palettes onto the canvas to use them." +#: js/piemenus.js:3410 +msgid "Duplicate" msgstr "" -#: js/turtledefs.js:620 -msgid "Cartesian/Polar" +#: js/piemenus.js:3412 +msgid "Move to trash" msgstr "" -#: js/turtledefs.js:621 -msgid "Show or hide a coordinate grid." +#: js/piemenus.js:3413 +#: js/widgets/timbre.js:968 +#: planet/js/StringHelper.js:69 +msgid "Close" msgstr "" -#: js/turtledefs.js:627 -msgid "Clear the screen and return the mice to their initial positions." +#: js/piemenus.js:3419 +msgid "Save stack" msgstr "" -#: js/turtledefs.js:633 -msgid "Collapse the graphics window." +#: js/piemenus.js:3449 +msgid "In order to copy a sample, you must reload the widget, import the sample again, and export it." msgstr "" -#: js/turtledefs.js:638 -#: js/activity.js:4256 -#: js/activity.js:4256 -msgid "Home" +#: js/piemenus.js:3812 +msgid "You have chosen key " msgstr "" -#: js/turtledefs.js:639 -msgid "Return all blocks to the center of the screen." +#: js/piemenus.js:3816 +msgid " for your pitch preview." msgstr "" -#: js/turtledefs.js:644 -msgid "Show/hide blocks" +#: js/turtle-singer.js:1363 +#.TRANS: partials are weighted components in a harmonic series +msgid "You must have at least one Partial block inside of a Weighted-partial block" msgstr "" -#: js/turtledefs.js:645 -msgid "Hide or show the blocks and the palettes." +#: js/turtle-singer.js:2077 +msgid "synth cannot play chords." msgstr "" -#: js/turtledefs.js:650 -msgid "Expand/collapse collapsable blocks" +#: js/utils/musicutils.js:505 +#: js/utils/musicutils.js:645 +#: js/widgets/pitchdrummatrix.js:228 +#: js/widgets/musickeyboard.js:2885 +msgid "rest" msgstr "" -#: js/turtledefs.js:651 -msgid "Expand or collapse start and action stacks." +#: js/utils/musicutils.js:689 +msgid "Perfect unison" msgstr "" -#: js/turtledefs.js:658 -#: js/activity.js:4265 -msgid "Decrease block size" +#: js/utils/musicutils.js:689 +msgid "Diminished second" msgstr "" -#: js/turtledefs.js:659 -msgid "Decrease the size of the blocks." +#: js/utils/musicutils.js:690 +msgid "Minor second" msgstr "" -#: js/turtledefs.js:664 -#: js/activity.js:4267 -msgid "Increase block size" +#: js/utils/musicutils.js:690 +msgid "Augmented unison" msgstr "" -#: js/turtledefs.js:665 -msgid "Increase the size of the blocks." +#: js/utils/musicutils.js:691 +msgid "Major second" msgstr "" -#: js/turtledefs.js:670 -msgid "Expand/collapse option toolbar" +#: js/utils/musicutils.js:691 +msgid "Diminished third" msgstr "" -#: js/turtledefs.js:671 -msgid "Click this button to expand or collapse the auxillary toolbar." +#: js/utils/musicutils.js:692 +msgid "Minor third" msgstr "" -#: js/turtledefs.js:676 -msgid "Run slow" +#: js/utils/musicutils.js:692 +msgid "Augmented second" msgstr "" -#: js/turtledefs.js:677 -msgid "Click to run the project in slow mode." +#: js/utils/musicutils.js:693 +msgid "Major third" msgstr "" -#: js/turtledefs.js:683 -msgid "Click to run the project step by step." +#: js/utils/musicutils.js:693 +msgid "Diminished fourth" msgstr "" -#: js/turtledefs.js:690 -msgid "Display statistics about your Music project." +#: js/utils/musicutils.js:694 +msgid "Perfect fourth" msgstr "" -#: js/turtledefs.js:697 -msgid "Delete a selected plugin." +#: js/utils/musicutils.js:694 +msgid "Augmented third" msgstr "" -#: js/turtledefs.js:704 -msgid "Enable scrolling" +#: js/utils/musicutils.js:695 +msgid "Diminished fifth" msgstr "" -#: js/turtledefs.js:705 -msgid "You can scroll the blocks on the canvas." +#: js/utils/musicutils.js:695 +msgid "Augmented fourth" msgstr "" -#: js/turtledefs.js:714 -msgid "Wrap Turtle" +#: js/utils/musicutils.js:696 +msgid "Perfect fifth" msgstr "" -#: js/turtledefs.js:715 -msgid "Turn Turtle wrapping On or Off." +#: js/utils/musicutils.js:696 +msgid "Diminished sixth" msgstr "" -#: js/turtledefs.js:725 -msgid "Restore blocks from the trash." +#: js/utils/musicutils.js:697 +msgid "Minor sixth" msgstr "" -#: js/turtledefs.js:732 -msgid "Switch mode" +#: js/utils/musicutils.js:697 +msgid "Augmented fifth" msgstr "" -#: js/turtledefs.js:733 -msgid "Switch between beginner and advance modes." +#: js/utils/musicutils.js:698 +msgid "Major sixth" msgstr "" -#: js/turtledefs.js:739 -msgid "Select your language preference." +#: js/utils/musicutils.js:698 +msgid "Diminished seventh" msgstr "" -#: js/turtledefs.js:745 -msgid "Keyboard shortcuts" +#: js/utils/musicutils.js:699 +msgid "Minor seventh" msgstr "" -#: js/turtledefs.js:746 -msgid "You can type d to create a do block and r to create a re block etc." +#: js/utils/musicutils.js:699 +msgid "Augmented sixth" msgstr "" -#: js/turtledefs.js:753 -msgid "Show these messages." +#: js/utils/musicutils.js:700 +msgid "Major seventh" msgstr "" -#: js/turtledefs.js:759 -#: js/turtledefs.js:790 -#: js/help.js:335 -msgid "Guide" +#: js/utils/musicutils.js:700 +msgid "Diminished octave" msgstr "" -#: js/turtledefs.js:760 -msgid "A detailed guide to Turtle Blocks is available." +#: js/utils/musicutils.js:701 +msgid "Perfect octave" msgstr "" -#: js/turtledefs.js:764 -msgid "Turtle Blocks Guide" +#: js/utils/musicutils.js:701 +msgid "Augmented seventh" msgstr "" -#: js/turtledefs.js:767 -#: js/turtledefs.js:798 -#: js/help.js:336 -msgid "About" +#: js/utils/musicutils.js:702 +msgid "Minor ninth" msgstr "" -#: js/turtledefs.js:768 -msgid "Turtle Blocks is an open source collection of tools for exploring musical concepts." +#: js/utils/musicutils.js:702 +msgid "Augmented octave" msgstr "" -#: js/turtledefs.js:770 -msgid "A full list of contributors can be found in the Turtle Blocks GitHub repository." +#: js/utils/musicutils.js:703 +msgid "Major ninth" msgstr "" -#: js/turtledefs.js:772 -msgid "Turtle Blocks is licensed under the AGPL." +#: js/utils/musicutils.js:703 +msgid "Diminished tenth" msgstr "" -#: js/turtledefs.js:780 -msgid "Turtle Blocks GitHub repository" +#: js/utils/musicutils.js:704 +msgid "Minor tenth" msgstr "" -#: js/turtledefs.js:783 -#: js/turtledefs.js:814 -#: js/help.js:337 -#: js/help.js:359 -msgid "Congratulations." +#: js/utils/musicutils.js:704 +msgid "Augmented ninth" msgstr "" -#: js/turtledefs.js:784 -msgid "You have finished the tour. Please enjoy Turtle Blocks!" +#: js/utils/musicutils.js:705 +msgid "Major tenth" msgstr "" -#: js/turtledefs.js:791 -msgid "A detailed guide to Music Blocks is available." +#: js/utils/musicutils.js:705 +msgid "Diminished eleventh" msgstr "" -#: js/turtledefs.js:795 -#: js/SaveInterface.js:76 -msgid "Music Blocks Guide" +#: js/utils/musicutils.js:706 +msgid "Perfect eleventh" msgstr "" -#: js/turtledefs.js:799 -msgid "Music Blocks is an open source collection of tools for exploring musical concepts." +#: js/utils/musicutils.js:706 +msgid "Augmented tenth" msgstr "" -#: js/turtledefs.js:801 -msgid "A full list of contributors can be found in the Music Blocks GitHub repository." +#: js/utils/musicutils.js:707 +msgid "Diminished twelfth" msgstr "" -#: js/turtledefs.js:803 -msgid "Music Blocks is licensed under the AGPL." +#: js/utils/musicutils.js:707 +msgid "Augmented eleventh" msgstr "" -#: js/turtledefs.js:811 -msgid "Music Blocks GitHub repository" +#: js/utils/musicutils.js:708 +msgid "Perfect twelfth" msgstr "" -#: js/turtledefs.js:815 -msgid "You have finished the tour. Please enjoy Music Blocks!" +#: js/utils/musicutils.js:708 +msgid "Diminished thirteenth" msgstr "" -#: js/activity.js:369 -msgid "Search for blocks" +#: js/utils/musicutils.js:709 +msgid "Minor thirteenth" msgstr "" -#: js/activity.js:1145 -msgid "Refresh your browser to change to advanced mode." +#: js/utils/musicutils.js:709 +msgid "Augmented fifth, plus an octave" msgstr "" -#: js/activity.js:1150 -msgid "Refresh your browser to change to beginner mode." +#: js/utils/musicutils.js:710 +msgid "Major thirteenth" msgstr "" -#: js/activity.js:1184 -msgid "Catching mice" +#: js/utils/musicutils.js:710 +msgid "Diminished seventh, plus an octave" msgstr "" -#: js/activity.js:1185 -msgid "Cleaning the instruments" +#: js/utils/musicutils.js:838 +#.TRANS: ordinal number. Please keep exactly one space between each number. +msgid "1st 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th" msgstr "" -#: js/activity.js:1186 -msgid "Testing key pieces" +#: js/utils/musicutils.js:1008 +#: js/utils/musicutils.js:1191 +#: js/utils/musicutils.js:1325 +#.TRANS: augmented is a music term related to intervals +msgid "augmented" msgstr "" -#: js/activity.js:1187 -msgid "Sight-reading" +#: js/utils/musicutils.js:1010 +#: js/utils/musicutils.js:1192 +#: js/utils/musicutils.js:1324 +#.TRANS: diminished is a music term related to intervals and mode +msgid "diminished" msgstr "" -#: js/activity.js:1188 -msgid "Combining math and music" +#: js/utils/musicutils.js:1016 +#: js/utils/musicutils.js:1322 +#: js/blocks/IntervalsBlocks.js:649 +#: js/turtleactions/IntervalsActions.js:120 +#: js/turtleactions/IntervalsActions.js:124 +#.TRANS: perfect is a music term related to intervals +msgid "perfect" +msgstr "" + +#: js/utils/musicutils.js:1018 +#.TRANS: twelve semi-tone scale for music +msgid "chromatic" msgstr "" -#: js/activity.js:1189 -msgid "Generating more blocks" +#: js/utils/musicutils.js:1019 +msgid "algerian" msgstr "" -#: js/activity.js:1190 -msgid "Do Re Mi Fa Sol La Ti Do" +#: js/utils/musicutils.js:1020 +msgid "spanish" msgstr "" -#: js/activity.js:1191 -msgid "Tuning string instruments" +#: js/utils/musicutils.js:1022 +#.TRANS: modal scale in music +msgid "octatonic" msgstr "" -#: js/activity.js:1192 -msgid "Pressing random keys" +#: js/utils/musicutils.js:1024 +#.TRANS: harmonic major scale in music +msgid "harmonic major" msgstr "" -#: js/activity.js:1351 -msgid "plugins will be removed upon restart." +#: js/utils/musicutils.js:1026 +#.TRANS: natural minor scales in music +msgid "natural minor" msgstr "" -#: js/activity.js:1360 -msgid "show Cartesian" +#: js/utils/musicutils.js:1028 +#.TRANS: harmonic minor scale in music +msgid "harmonic minor" msgstr "" -#: js/activity.js:1842 -msgid "output tools" +#: js/utils/musicutils.js:1030 +#.TRANS: melodic minor scale in music +msgid "melodic minor" msgstr "" -#: js/activity.js:1845 -msgid "custom note" +#: js/utils/musicutils.js:1034 +#.TRANS: modal scale for music +msgid "dorian" msgstr "" -#: js/activity.js:1848 -msgid "accidental name" +#: js/utils/musicutils.js:1036 +#.TRANS: modal scale for music +msgid "phrygian" msgstr "" -#: js/activity.js:1851 -#: js/PitchBlocks.js:855 -msgid "east indian solfege" +#: js/utils/musicutils.js:1038 +#.TRANS: modal scale for music +msgid "lydian" msgstr "" -#: js/activity.js:1854 -#: js/PitchBlocks.js:869 -msgid "note name" +#: js/utils/musicutils.js:1040 +#.TRANS: modal scale for music +msgid "mixolydian" msgstr "" -#: js/activity.js:1857 -#: js/IntervalsBlocks.js:94 -msgid "temperament name" +#: js/utils/musicutils.js:1044 +#.TRANS: modal scale for music +msgid "locrian" msgstr "" -#: js/activity.js:1863 -msgid "chord name" +#: js/utils/musicutils.js:1046 +#.TRANS: minor jazz scale for music +msgid "jazz minor" msgstr "" -#: js/activity.js:1869 -msgid "filter type" +#: js/utils/musicutils.js:1048 +#.TRANS: bebop scale for music +msgid "bebop" msgstr "" -#: js/activity.js:1872 -msgid "oscillator type" +#: js/utils/musicutils.js:1049 +msgid "arabic" msgstr "" -#: js/activity.js:1878 -#: js/DrumBlocks.js:32 -msgid "noise name" +#: js/utils/musicutils.js:1050 +msgid "byzantine" msgstr "" -#: js/activity.js:1881 -#: js/DrumBlocks.js:75 -msgid "drum name" +#: js/utils/musicutils.js:1052 +#.TRANS: musical scale for music by Verdi +msgid "enigmatic" msgstr "" -#: js/activity.js:1884 -#: js/DrumBlocks.js:119 -msgid "effects name" +#: js/utils/musicutils.js:1053 +msgid "ethiopian" msgstr "" -#: js/activity.js:1887 -msgid "wrap mode" +#: js/utils/musicutils.js:1055 +#.TRANS: Ethiopic scale for music +msgid "geez" msgstr "" -#: js/activity.js:1890 -msgid "load file" +#: js/utils/musicutils.js:1056 +msgid "hindu" msgstr "" -#: js/activity.js:2056 -msgid "This block is deprecated." +#: js/utils/musicutils.js:1057 +msgid "hungarian" msgstr "" -#: js/activity.js:2058 -msgid "Block cannot be found." +#: js/utils/musicutils.js:1059 +#.TRANS: minor Romanian scale for music +msgid "romanian minor" msgstr "" -#: js/activity.js:2266 -msgid "Saving block artwork" +#: js/utils/musicutils.js:1060 +msgid "spanish gypsy" msgstr "" -#: js/activity.js:2277 -msgid "Erase" +#: js/utils/musicutils.js:1062 +#.TRANS: musical scale for Mid-Eastern music +msgid "maqam" msgstr "" -#: js/activity.js:2301 -#: js/activity.js:2323 -msgid "Paste" +#: js/utils/musicutils.js:1064 +#.TRANS: minor blues scale for music +msgid "minor blues" msgstr "" -#: js/activity.js:2305 -msgid "Save block help" +#: js/utils/musicutils.js:1066 +#.TRANS: major blues scale for music +msgid "major blues" msgstr "" -#: js/activity.js:2390 -msgid "Jumping to the bottom of the page." +#: js/utils/musicutils.js:1067 +msgid "whole tone" msgstr "" -#: js/activity.js:2396 -msgid "Scrolling up." +#: js/utils/musicutils.js:1069 +#.TRANS: pentatonic is a general term that means "five note scale". This scale is typically known as "minor pentatonic" +msgid "minor pentatonic" msgstr "" -#: js/activity.js:2401 -msgid "Scrolling down." +#: js/utils/musicutils.js:1071 +#.TRANS: pentatonic is a general term that means "five note scale". This scale is typically known as "major pentatonic" +msgid "major pentatonic" msgstr "" -#: js/activity.js:2406 -msgid "Extracting block" +#: js/utils/musicutils.js:1072 +msgid "chinese" msgstr "" -#: js/activity.js:2414 -msgid "Moving block up." +#: js/utils/musicutils.js:1073 +msgid "egyptian" msgstr "" -#: js/activity.js:2435 -msgid "Moving block down." +#: js/utils/musicutils.js:1075 +#.TRANS: https://en.wikipedia.org/wiki/Hirajoshi_scale NOTE: There are three different versions of this scale +msgid "hirajoshi" msgstr "" -#: js/activity.js:2456 -msgid "Moving block left." +#: js/utils/musicutils.js:1076 +msgid "Japan" msgstr "" -#: js/activity.js:2473 -msgid "Moving block right." +#: js/utils/musicutils.js:1078 +#.TRANS: https://en.wikipedia.org/wiki/In_scale and https://en.wikipedia.org/wiki/Sakura_Sakura +msgid "in" msgstr "" -#: js/activity.js:2488 -msgid "Jump to home position." +#: js/utils/musicutils.js:1080 +#.TRANS: https://en.wikipedia.org/wiki/Miny%C5%8D_scale +msgid "minyo" msgstr "" -#: js/activity.js:2515 -msgid "Hide blocks" +#: js/utils/musicutils.js:1082 +#.TRANS: Italian mathematician +msgid "fibonacci" msgstr "" -#: js/activity.js:3389 -msgid "Click the run button to run the project." +#: js/utils/musicutils.js:1083 +#: js/utils/musicutils.js:1134 +#: js/utils/musicutils.js:1177 +#: js/utils/musicutils.js:1199 +#: js/utils/synthutils.js:134 +#: js/blocks/IntervalsBlocks.js:1124 +#: js/blocks/ToneBlocks.js:946 +#: js/blocks/VolumeBlocks.js:411 +#: js/blocks/WidgetBlocks.js:399 +#: js/blocks/WidgetBlocks.js:404 +#: js/turtleactions/VolumeActions.js:218 +#: js/widgets/modewidget.js:919 +#.TRANS: customize voice +msgid "custom" msgstr "" -#: js/activity.js:3456 -#: js/SaveInterface.js:131 -#: js/SaveInterface.js:204 -#: js/SaveInterface.js:262 -#: js/SaveInterface.js:389 -#: js/SaveInterface.js:417 -#: js/ProjectStorage.js:27 -#: js/GlobalPlanet.js:467 -#: js/GlobalPlanet.js:469 -#: js/GlobalPlanet.js:495 -#.TRANS: default project title when saving as Lilypond -msgid "My Project" +#: js/utils/musicutils.js:1085 +#: js/utils/musicutils.js:1531 +#: js/blocks/WidgetBlocks.js:176 +#.TRANS: highpass filter +msgid "highpass" msgstr "" -#: js/activity.js:4261 -msgid "Show/hide block" +#: js/utils/musicutils.js:1087 +#: js/utils/musicutils.js:1532 +#.TRANS: lowpass filter +msgid "lowpass" msgstr "" -#: js/activity.js:4263 -msgid "Expand/collapse blocks" +#: js/utils/musicutils.js:1089 +#: js/utils/musicutils.js:1533 +#.TRANS: bandpass filter +msgid "bandpass" msgstr "" -#: js/activity.js:4381 -msgid "Could not parse JSON input." +#: js/utils/musicutils.js:1091 +#: js/utils/musicutils.js:1534 +#.TRANS: high-shelf filter +msgid "highshelf" msgstr "" -#: js/activity.js:4684 -#: js/activity.js:4771 -#: js/activity.js:4821 -msgid "Cannot load project from the file. Please check the file type." +#: js/utils/musicutils.js:1093 +#: js/utils/musicutils.js:1535 +#.TRANS: low-shelf filter +msgid "lowshelf" msgstr "" -#: js/activity.js:5051 -msgid "Invalid parameters" +#: js/utils/musicutils.js:1095 +#: js/utils/musicutils.js:1536 +#.TRANS: notch-shelf filter +msgid "notch" msgstr "" -#: js/turtle-singer.js:1334 -#.TRANS: partials are weighted components in a harmonic series -msgid "You must have at least one Partial block inside of a Weighted-partial block" +#: js/utils/musicutils.js:1097 +#: js/utils/musicutils.js:1537 +#.TRANS: all-pass filter +msgid "allpass" msgstr "" -#: js/turtle-singer.js:2048 -msgid "synth cannot play chords." +#: js/utils/musicutils.js:1099 +#: js/utils/musicutils.js:1538 +#.TRANS: peaking filter +msgid "peaking" msgstr "" -#: js/lilypond.js:614 -msgid "brown rat" +#: js/utils/musicutils.js:1100 +#: js/utils/musicutils.js:1546 +#: js/utils/synthutils.js:126 +#: js/blocks/PitchBlocks.js:85 +#.TRANS: sine wave +msgid "sine" msgstr "" -#: js/lilypond.js:615 -msgid "mole" +#: js/utils/musicutils.js:1101 +#: js/utils/musicutils.js:1547 +#: js/utils/synthutils.js:128 +#: js/blocks/PitchBlocks.js:39 +#.TRANS: square wave +msgid "square" msgstr "" -#: js/lilypond.js:616 -msgid "chipmunk" +#: js/utils/musicutils.js:1102 +#: js/utils/musicutils.js:1548 +#: js/utils/synthutils.js:132 +#: js/blocks/PitchBlocks.js:62 +#: js/blocks/ToneBlocks.js:39 +#.TRANS: triangle wave +msgid "triangle" msgstr "" -#: js/lilypond.js:617 -msgid "red squirrel" +#: js/utils/musicutils.js:1103 +#: js/utils/musicutils.js:1549 +#: js/utils/synthutils.js:130 +#: js/blocks/PitchBlocks.js:108 +#.TRANS: sawtooth wave +msgid "sawtooth" msgstr "" -#: js/lilypond.js:618 -msgid "guinea pig" +#: js/utils/musicutils.js:1105 +#: js/utils/musicutils.js:1312 +#: js/blocks/PitchBlocks.js:931 +#: js/blocks/PitchBlocks.js:937 +#: js/turtleactions/PitchActions.js:469 +#.TRANS: even numbers +#.TRANS: invert based on even or odd number or musical scale +msgid "even" msgstr "" -#: js/lilypond.js:619 -msgid "capybara" +#: js/utils/musicutils.js:1107 +#: js/utils/musicutils.js:1313 +#: js/blocks/PitchBlocks.js:937 +#: js/turtleactions/PitchActions.js:471 +#.TRANS: odd numbers +msgid "odd" msgstr "" -#: js/lilypond.js:620 -msgid "coypu" +#: js/utils/musicutils.js:1108 +#: js/utils/musicutils.js:1314 +#: js/blocks/PitchBlocks.js:937 +#: js/turtleactions/PitchActions.js:473 +msgid "scalar" msgstr "" -#: js/lilypond.js:621 -msgid "black rat" +#: js/utils/musicutils.js:1109 +#: js/utils/synthutils.js:72 +#: js/blocks/VolumeBlocks.js:47 +#.TRANS: musical instrument +msgid "piano" msgstr "" -#: js/lilypond.js:622 -msgid "grey squirrel" +#: js/utils/musicutils.js:1110 +#: js/utils/synthutils.js:74 +#.TRANS: musical instrument +msgid "violin" msgstr "" -#: js/lilypond.js:623 -msgid "flying squirrel" +#: js/utils/musicutils.js:1111 +#: js/utils/synthutils.js:76 +#.TRANS: viola musical instrument +msgid "viola" msgstr "" -#: js/lilypond.js:624 -msgid "bat" +#: js/utils/musicutils.js:1112 +#: js/utils/synthutils.js:114 +#.TRANS: xylophone musical instrument +msgid "xylophone" msgstr "" -#: js/lilypond.js:757 -#: js/lilypond.js:921 -#: js/lilypond.js:959 -#: js/ActionBlocks.js:1256 -#: js/ExtrasBlocks.js:553 -msgid "start drum" +#: js/utils/musicutils.js:1113 +#: js/utils/synthutils.js:136 +#.TRANS: vibraphone musical instrument +msgid "vibraphone" msgstr "" -#: js/SaveInterface.js:59 -#: js/SaveInterface.js:61 -#: js/SaveInterface.js:93 -msgid "Music Blocks Project" +#: js/utils/musicutils.js:1114 +#: js/utils/synthutils.js:78 +#.TRANS: musical instrument +msgid "cello" msgstr "" -#: js/SaveInterface.js:63 -msgid "This project was created in Music Blocks" +#: js/utils/musicutils.js:1116 +#: js/utils/synthutils.js:82 +#.TRANS: viola musical instrument +msgid "double bass" msgstr "" -#: js/SaveInterface.js:67 -msgid "Music Blocks is a Free/Libre Software application." +#: js/utils/musicutils.js:1117 +#: js/utils/synthutils.js:84 +#: js/widgets/rhythmruler.js:2511 +#.TRANS: musical instrument +msgid "guitar" msgstr "" -#: js/SaveInterface.js:69 -msgid "The source code can be accessed at" +#: js/utils/musicutils.js:1118 +#: js/utils/synthutils.js:86 +#.TRANS: musical instrument +msgid "acoustic guitar" msgstr "" -#: js/SaveInterface.js:72 -msgid "For more information, please consult the" +#: js/utils/musicutils.js:1119 +#: js/utils/synthutils.js:88 +#.TRANS: musical instrument +msgid "flute" msgstr "" -#: js/SaveInterface.js:83 -msgid "Alternatively, open the file in Music Blocks using the Load project button." +#: js/utils/musicutils.js:1120 +#: js/utils/synthutils.js:90 +#.TRANS: musical instrument +msgid "clarinet" msgstr "" -#: js/SaveInterface.js:85 -msgid "Project Code" +#: js/utils/musicutils.js:1121 +#: js/utils/synthutils.js:92 +#.TRANS: musical instrument +msgid "saxophone" msgstr "" -#: js/SaveInterface.js:87 -msgid "This code stores data about the blocks in a project." +#: js/utils/musicutils.js:1122 +#: js/utils/synthutils.js:94 +#.TRANS: musical instrument +msgid "tuba" msgstr "" -#: js/SaveInterface.js:89 -msgid "Show" +#: js/utils/musicutils.js:1123 +#: js/utils/synthutils.js:96 +#.TRANS: musical instrument +msgid "trumpet" msgstr "" -#: js/SaveInterface.js:91 -msgid "Hide" +#: js/utils/musicutils.js:1124 +#: js/utils/synthutils.js:98 +#.TRANS: musical instrument +msgid "oboe" msgstr "" -#: js/SaveInterface.js:197 -#: js/SaveInterface.js:58 -msgid "No description provided" +#: js/utils/musicutils.js:1125 +#: js/utils/synthutils.js:100 +#.TRANS: musical instrument +msgid "trombone" msgstr "" -#: js/SaveInterface.js:332 -msgid "Your recording is in progress." +#: js/utils/musicutils.js:1126 +#: js/utils/synthutils.js:116 +#.TRANS: polytone synthesizer +msgid "electronic synth" msgstr "" -#: js/SaveInterface.js:401 -#.TRANS: File name prompt for save as Lilypond -msgid "File name" +#: js/utils/musicutils.js:1127 +#: js/utils/synthutils.js:118 +#.TRANS: simple monotone synthesizer +msgid "simple 1" msgstr "" -#: js/SaveInterface.js:403 -#: js/StringHelper.js:39 -#.TRANS: Project title prompt for save as Lilypond -msgid "Project title" +#: js/utils/musicutils.js:1128 +msgid "simple 2" msgstr "" -#: js/SaveInterface.js:405 -#.TRANS: Project title prompt for save as Lilypond -msgid "Project author" +#: js/utils/musicutils.js:1129 +msgid "simple 3" msgstr "" -#: js/SaveInterface.js:407 -#.TRANS: MIDI prompt for save as Lilypond -msgid "Include MIDI output?" +#: js/utils/musicutils.js:1130 +msgid "simple 4" msgstr "" -#: js/SaveInterface.js:409 -#.TRANS: Guitar prompt for save as Lilypond -msgid "Include guitar tablature output?" +#: js/utils/musicutils.js:1131 +#: js/utils/synthutils.js:58 +#: js/blocks/DrumBlocks.js:191 +#.TRANS: white noise synthesizer +msgid "white noise" msgstr "" -#: js/SaveInterface.js:411 -#.TRANS: Lilypond is a scripting language for generating sheet music -msgid "Save as Lilypond" +#: js/utils/musicutils.js:1132 +#: js/utils/synthutils.js:60 +#.TRANS: brown noise synthesizer +msgid "brown noise" msgstr "" -#: js/SaveInterface.js:426 -#: js/EnsembleBlocks.js:75 -#: js/EnsembleBlocks.js:154 -#: js/EnsembleBlocks.js:216 -#: js/EnsembleBlocks.js:302 -#: js/EnsembleBlocks.js:348 -#: js/EnsembleBlocks.js:389 -#: js/EnsembleBlocks.js:441 -#: js/EnsembleBlocks.js:490 -#: js/EnsembleBlocks.js:536 -#: js/EnsembleBlocks.js:583 -#: js/EnsembleBlocks.js:637 -#: js/EnsembleBlocks.js:753 -#: js/EnsembleBlocks.js:840 -#: js/EnsembleBlocks.js:899 -#: js/EnsembleBlocks.js:942 -#: js/EnsembleBlocks.js:1212 -#: js/EnsembleBlocks.js:1280 -#.TRANS: default project author when saving as Lilypond -msgid "Mr. Mouse" +#: js/utils/musicutils.js:1133 +#: js/utils/synthutils.js:62 +#.TRANS: pink noise synthesizer +msgid "pink noise" msgstr "" -#: js/SaveInterface.js:573 -msgid "The Lilypond code is copied to clipboard. You can paste it here: " +#: js/utils/musicutils.js:1135 +#: js/utils/synthutils.js:148 +#: js/widgets/rhythmruler.js:2057 +#: js/widgets/rhythmruler.js:2319 +#.TRANS: musical instrument +msgid "snare drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:50 -#: js/RhythmBlockPaletteBlocks.js:232 -#.TRANS: rhythm block -#.TRANS: translate "rhythm1" as rhythm -msgid "rhythm1" +#: js/utils/musicutils.js:1136 +#: js/utils/synthutils.js:150 +#.TRANS: musical instrument +msgid "kick drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:70 -#: js/RhythmBlockPaletteBlocks.js:251 -#: js/RhythmBlockPaletteBlocks.js:484 -#: js/RhythmBlockPaletteBlocks.js:553 -#: js/RhythmBlockPaletteBlocks.js:874 -msgid "number of notes" +#: js/utils/musicutils.js:1137 +#: js/utils/synthutils.js:152 +#.TRANS: musical instrument +msgid "tom tom" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:126 -msgid "polyphonic rhythm" +#: js/utils/musicutils.js:1138 +#: js/utils/synthutils.js:154 +#.TRANS: musical instrument +msgid "floor tom" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:218 -msgid "The Rhythm block is used to generate rhythm patterns." +#: js/utils/musicutils.js:1139 +#: js/utils/synthutils.js:156 +#.TRANS: musical instrument +msgid "bass drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:279 -msgid "1/64 note" +#: js/utils/musicutils.js:1140 +#: js/utils/synthutils.js:158 +#.TRANS: a drum made from an inverted cup +msgid "cup drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:303 -msgid "1/32 note" +#: js/utils/musicutils.js:1141 +#: js/utils/synthutils.js:160 +#.TRANS: musical instrument +msgid "darbuka drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:331 -msgid "1/16 note" +#: js/utils/musicutils.js:1142 +#: js/utils/synthutils.js:164 +#.TRANS: musical instrument +msgid "hi hat" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:359 -msgid "eighth note" +#: js/utils/musicutils.js:1143 +#: js/utils/synthutils.js:166 +#.TRANS: a small metal bell +msgid "ride bell" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:387 -msgid "quarter note" +#: js/utils/musicutils.js:1144 +#: js/utils/synthutils.js:168 +#.TRANS: musical instrument +msgid "cow bell" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:415 -msgid "half note" +#: js/utils/musicutils.js:1145 +msgid "japanese drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:443 -msgid "whole note" +#: js/utils/musicutils.js:1146 +#: js/utils/synthutils.js:174 +#.TRANS: musical instrument +msgid "japanese bell" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:481 -#: js/RhythmBlockPaletteBlocks.js:550 -#: js/RhythmBlockPaletteBlocks.js:601 -#.TRANS: A tuplet is a note value divided into irregular time values. -msgid "tuplet" +#: js/utils/musicutils.js:1147 +#: js/utils/synthutils.js:170 +#.TRANS: musical instrument +msgid "triangle bell" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:767 -msgid "septuplet" +#: js/utils/musicutils.js:1148 +#: js/utils/synthutils.js:172 +#.TRANS: musical instrument +msgid "finger cymbals" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:795 -msgid "quintuplet" +#: js/utils/musicutils.js:1149 +#: js/utils/synthutils.js:176 +#.TRANS: a musically tuned set of bells +msgid "chime" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:823 -msgid "triplet" +#: js/utils/musicutils.js:1150 +#: js/utils/synthutils.js:178 +#.TRANS: a musical instrument +msgid "gong" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:850 -msgid "simple tuplet" +#: js/utils/musicutils.js:1151 +#: js/utils/synthutils.js:180 +#.TRANS: sound effect +msgid "clang" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:860 -msgid "Tuplets are a collection of notes that get scaled to a specific duration." +#: js/utils/musicutils.js:1152 +#: js/utils/synthutils.js:182 +#.TRANS: sound effect +msgid "crash" msgstr "" -#: js/WidgetBlocks.js:71 -#.TRANS: sound envelope (ADSR) -msgid "envelope" +#: js/utils/musicutils.js:1153 +#: js/utils/synthutils.js:184 +#.TRANS: sound effect +msgid "bottle" msgstr "" -#: js/WidgetBlocks.js:79 -#.TRANS: Attack time is the time taken for initial run-up of level from nil to peak, beginning when the key is first pressed. -msgid "attack" +#: js/utils/musicutils.js:1154 +#: js/utils/synthutils.js:186 +#.TRANS: sound effect +msgid "clap" msgstr "" -#: js/WidgetBlocks.js:81 -#.TRANS: Decay time is the time taken for the subsequent run down from the attack level to the designated sustain level. -msgid "decay" +#: js/utils/musicutils.js:1155 +#: js/utils/synthutils.js:188 +#.TRANS: sound effect +msgid "slap" msgstr "" -#: js/WidgetBlocks.js:83 -#.TRANS: Sustain level is the level during the main sequence of the sound's duration, until the key is released. -msgid "sustain" +#: js/utils/musicutils.js:1156 +#: js/utils/synthutils.js:190 +#.TRANS: sound effect +msgid "splash" msgstr "" -#: js/WidgetBlocks.js:85 -#.TRANS: Release time is the time taken for the level to decay from the sustain level to zero after the key is released. -msgid "release" +#: js/utils/musicutils.js:1157 +#: js/utils/synthutils.js:192 +#.TRANS: sound effect +msgid "bubbles" msgstr "" -#: js/WidgetBlocks.js:96 -msgid "Attack value should be from 0 to 100." +#: js/utils/musicutils.js:1158 +#: js/utils/synthutils.js:194 +#.TRANS: sound effect +msgid "raindrop" msgstr "" -#: js/WidgetBlocks.js:99 -msgid "Decay value should be from 0 to 100." +#: js/utils/musicutils.js:1159 +#: js/utils/synthutils.js:196 +#.TRANS: animal sound effect +msgid "cat" msgstr "" -#: js/WidgetBlocks.js:102 -msgid "Sustain value should be from 0 to 100." +#: js/utils/musicutils.js:1160 +#: js/utils/synthutils.js:198 +#.TRANS: animal sound effect +msgid "cricket" msgstr "" -#: js/WidgetBlocks.js:105 -msgid "Release value should be from 0-100." +#: js/utils/musicutils.js:1161 +#: js/utils/synthutils.js:200 +#.TRANS: animal sound effect +msgid "dog" msgstr "" -#: js/WidgetBlocks.js:121 -msgid "You are adding multiple envelope blocks." +#: js/utils/musicutils.js:1163 +#: js/utils/synthutils.js:102 +#.TRANS: musical instrument +msgid "banjo" msgstr "" -#: js/WidgetBlocks.js:144 -#.TRANS: a filter removes some unwanted components from a signal -msgid "filter" +#: js/utils/musicutils.js:1164 +#: js/utils/synthutils.js:104 +#.TRANS: musical instrument +msgid "koto" msgstr "" -#: js/WidgetBlocks.js:149 -#: js/musicutils.js:706 -#: js/musicutils.js:1105 -#.TRANS: highpass filter -msgid "highpass" +#: js/utils/musicutils.js:1165 +#: js/utils/synthutils.js:106 +#.TRANS: musical instrument +msgid "dulcimer" msgstr "" -#: js/WidgetBlocks.js:152 -#: js/ToneBlocks.js:42 -#: js/timbre.js:1558 -#: js/timbre.js:1808 -#.TRANS: type of filter, e.g., lowpass, highpass, etc. -#.TRANS: there are different types (sine, triangle, square...) of oscillators. -msgid "type" +#: js/utils/musicutils.js:1166 +#: js/utils/synthutils.js:108 +#.TRANS: musical instrument +msgid "electric guitar" msgstr "" -#: js/WidgetBlocks.js:154 -#: js/timbre.js:1818 -#.TRANS: rolloff is the steepness of a change in frequency. -msgid "rolloff" +#: js/utils/musicutils.js:1167 +#: js/utils/synthutils.js:110 +#.TRANS: musical instrument +msgid "bassoon" msgstr "" -#: js/WidgetBlocks.js:155 -#: js/MediaBlocks.js:692 -#: js/temperament.js:382 -#: js/temperament.js:417 -#: js/temperament.js:477 -#: js/temperament.js:485 -#: js/temperament.js:1348 -#: js/timbre.js:1842 -msgid "frequency" +#: js/utils/musicutils.js:1168 +#: js/utils/synthutils.js:112 +#.TRANS: musical instrument +msgid "celeste" msgstr "" -#: js/WidgetBlocks.js:179 -#.TRANS: rolloff is the steepness of a change in frequency. -msgid "Rolloff value should be either -12, -24, -48, or -96 decibels/octave." +#: js/utils/musicutils.js:1170 +#: js/widgets/temperament.js:787 +#.TRANS: musical temperament +msgid "equal" msgstr "" -#: js/WidgetBlocks.js:211 -msgid "The Temperament tool is used to define custom tuning." +#: js/utils/musicutils.js:1172 +#.TRANS: musical temperament +msgid "Pythagorean" msgstr "" -#: js/WidgetBlocks.js:277 -#: js/sampler.js:329 -msgid "Upload a sample and adjust its pitch center." +#: js/utils/musicutils.js:1174 +#.TRANS: musical temperament +msgid "just intonation" msgstr "" -#: js/WidgetBlocks.js:284 -#.TRANS: the speed at music is should be played. -msgid "sampler" +#: js/utils/musicutils.js:1176 +#.TRANS: musical temperament +msgid "meantone" msgstr "" -#: js/WidgetBlocks.js:329 -#: js/WidgetBlocks.js:334 -#: js/IntervalsBlocks.js:928 -#: js/VolumeBlocks.js:411 -#: js/ToneBlocks.js:946 -#: js/VolumeActions.js:218 -#: js/musicutils.js:704 -#: js/musicutils.js:755 -#: js/musicutils.js:798 -#: js/musicutils.js:820 -#: js/musicutils.js:1136 -#: js/synthutils.js:118 -#: js/modewidget.js:919 -#.TRANS: customize voice -msgid "custom" +#: js/utils/musicutils.js:1193 +msgid "major 7th" msgstr "" -#: js/WidgetBlocks.js:432 -msgid "The Meter block opens a tool to select strong beats for the meter." +#: js/utils/musicutils.js:1194 +msgid "minor 7th" msgstr "" -#: js/WidgetBlocks.js:473 -msgid "The oscilloscope block opens a tool to visualize waveforms." +#: js/utils/musicutils.js:1195 +msgid "dominant 7th" msgstr "" -#: js/WidgetBlocks.js:478 -msgid "oscilloscope" +#: js/utils/musicutils.js:1196 +msgid "minor-major 7th" msgstr "" -#: js/WidgetBlocks.js:530 -msgid "The Custom mode block opens a tool to explore musical mode (the spacing of the notes in a scale)." +#: js/utils/musicutils.js:1197 +msgid "fully-diminished 7th" msgstr "" -#: js/WidgetBlocks.js:536 -#.TRANS: musical mode is the pattern of half-steps in an octave, e.g., Major or Minor modes -msgid "custom mode" +#: js/utils/musicutils.js:1198 +msgid "half-diminished 7th" msgstr "" -#: js/WidgetBlocks.js:570 -msgid "The Tempo block opens a metronome to visualize the beat." +#: js/utils/musicutils.js:1557 +#: js/utils/musicutils.js:1569 +msgid "Equal (12EDO)" msgstr "" -#: js/WidgetBlocks.js:617 -msgid "The Arpeggio Widget is used to compose chord sequences." +#: js/utils/musicutils.js:1558 +#: js/utils/musicutils.js:1570 +msgid "5-limit Just Intonation" msgstr "" -#: js/WidgetBlocks.js:623 -#: js/IntervalsBlocks.js:683 -msgid "arpeggio" +#: js/utils/musicutils.js:1559 +#: js/utils/musicutils.js:1571 +msgid "Pythagorean (3-limit JI)" msgstr "" -#: js/WidgetBlocks.js:677 -msgid "The Pitch drum matrix is used to map pitches to drum sounds." +#: js/utils/musicutils.js:1560 +#: js/utils/musicutils.js:1561 +#: js/utils/musicutils.js:1572 +#: js/utils/musicutils.js:1573 +msgid "Meantone" msgstr "" -#: js/WidgetBlocks.js:682 -#.TRANS: makes a mapping between pitches and drum sounds -msgid "pitch-drum mapper" +#: js/utils/musicutils.js:1574 +msgid "Custom" msgstr "" -#: js/WidgetBlocks.js:724 -msgid "You must have at least one pitch block and one drum block in the matrix." +#: js/utils/musicutils.js:5387 +#: js/utils/musicutils.js:5430 +msgid "current" msgstr "" -#: js/WidgetBlocks.js:746 -msgid "The Pitch slider tool to is used to generate pitches at selected frequencies." +#: js/utils/musicutils.js:5390 +#: js/utils/musicutils.js:5421 +msgid "next" msgstr "" -#: js/WidgetBlocks.js:751 -#.TRANS: widget to generate pitches using a slider -msgid "pitch slider" +#: js/utils/musicutils.js:5393 +#: js/utils/musicutils.js:5426 +msgid "previous" msgstr "" -#: js/WidgetBlocks.js:788 -msgid "chromatic keyboard" +#: js/utils/synthutils.js:120 +#.TRANS: simple monotone synthesizer +msgid "simple-2" msgstr "" -#: js/WidgetBlocks.js:815 -#: js/WidgetBlocks.js:874 -#.TRANS: widget to generate pitches using a slider -msgid "music keyboard" +#: js/utils/synthutils.js:122 +#.TRANS: simple monotone synthesizer +msgid "simple-3" msgstr "" -#: js/WidgetBlocks.js:859 -#: js/WidgetBlocks.js:866 -msgid "The Music keyboard block opens a piano keyboard that can be used to create notes." +#: js/utils/synthutils.js:124 +#.TRANS: simple monotone synthesizer +msgid "simple-4" msgstr "" -#: js/WidgetBlocks.js:910 -msgid "The Pitch staircase tool to is used to generate pitches from a given ratio." +#: js/utils/synthutils.js:162 +#.TRANS: musical instrument +msgid "taiko" msgstr "" -#: js/WidgetBlocks.js:917 -#.TRANS: generate a progressive sequence of pitches -msgid "pitch staircase" +#: js/blocks/ActionBlocks.js:58 +msgid "The Return block will return a value from an action." msgstr "" -#: js/WidgetBlocks.js:982 -msgid "The Rhythm Maker block opens a tool to create drum machines." +#: js/blocks/ActionBlocks.js:75 +msgid "return" msgstr "" -#: js/WidgetBlocks.js:1036 -msgid "G major scale" +#: js/blocks/ActionBlocks.js:128 +msgid "The Return to URL block will return a value to a webpage." msgstr "" -#: js/WidgetBlocks.js:1064 -msgid "C major scale" +#: js/blocks/ActionBlocks.js:145 +msgid "return to URL" msgstr "" -#: js/WidgetBlocks.js:1097 -msgid "The Phrase Maker block opens a tool to create musical phrases." +#: js/blocks/ActionBlocks.js:233 +#: js/blocks/ActionBlocks.js:290 +#: js/blocks/ActionBlocks.js:501 +#: js/blocks/ActionBlocks.js:688 +msgid "The Calculate block returns a value calculated by an action." msgstr "" -#: js/WidgetBlocks.js:1104 -#.TRANS: assigns pitch to a sequence of beats to generate a melody -msgid "phrase maker" +#: js/blocks/ActionBlocks.js:251 +#: js/blocks/ActionBlocks.js:517 +#: js/blocks/ActionBlocks.js:707 +msgid "calculate" msgstr "" -#: js/WidgetBlocks.js:1168 -msgid "You must have at least one pitch block and one rhythm block in the matrix." +#: js/blocks/ActionBlocks.js:376 +#: js/blocks/ActionBlocks.js:593 +#: js/blocks/ActionBlocks.js:942 +#: js/blocks/ActionBlocks.js:1389 +#.TRANS: do is the do something or take an action. +msgid "The Do block is used to initiate an action." msgstr "" -#: js/WidgetBlocks.js:1220 -msgid "The Status block opens a tool for inspecting the status of Music Blocks as it is running." +#: js/blocks/ActionBlocks.js:390 +#: js/blocks/ActionBlocks.js:610 +#: js/blocks/ActionBlocks.js:959 +#: js/blocks/ActionBlocks.js:1048 +#: js/blocks/MeterBlocks.js:769 +msgid "do1" msgstr "" -#: js/IntervalsBlocks.js:45 -msgid "set temperament" +#: js/blocks/ActionBlocks.js:390 +#: js/blocks/ActionBlocks.js:610 +#: js/blocks/ActionBlocks.js:959 +#: js/blocks/ActionBlocks.js:1048 +#: js/blocks/FlowBlocks.js:742 +#: js/blocks/FlowBlocks.js:822 +#: js/blocks/MeterBlocks.js:769 +msgid "do" msgstr "" -#: js/IntervalsBlocks.js:63 -#: js/MediaBlocks.js:746 -#: js/PitchBlocks.js:657 -#: js/PitchBlocks.js:933 -#: js/PitchBlocks.js:972 -#: js/PitchBlocks.js:1005 -#: js/PitchBlocks.js:1166 -#: js/PitchBlocks.js:1679 -#: js/PitchBlocks.js:1720 -#: js/PitchBlocks.js:1827 -#: js/ToneBlocks.js:1025 -#.TRANS: adjusts the shift up or down by one octave (twelve half-steps in the interval between two notes, one having twice or half the frequency in Hz of the other.) -msgid "octave" +#: js/blocks/ActionBlocks.js:791 +#: js/blocks/ActionBlocks.js:865 +msgid "The Arg block contains the value of an argument passed to an action." msgstr "" -#: js/IntervalsBlocks.js:99 -msgid "The Temperament name block is used to select a tuning method." +#: js/blocks/ActionBlocks.js:806 +#: js/blocks/ActionBlocks.js:878 +msgid "arg" msgstr "" -#: js/IntervalsBlocks.js:161 -msgid "doubly" +#: js/blocks/ActionBlocks.js:836 +#: js/blocks/ActionBlocks.js:900 +#: js/blocks/ActionBlocks.js:908 +msgid "Invalid argument" msgstr "" -#: js/IntervalsBlocks.js:166 -msgid "The Doubly block will double the size of an interval." +#: js/blocks/ActionBlocks.js:944 +msgid "In the example, it is used with the One of block to choose a random phase." msgstr "" -#: js/IntervalsBlocks.js:262 -msgid "interval number" +#: js/blocks/ActionBlocks.js:1019 +#: js/blocks/ActionBlocks.js:1026 +msgid "The Listen block is used to listen for an event such as a mouse click." msgstr "" -#: js/IntervalsBlocks.js:330 -#.TRANS: measure the distance between two pitches in semi-tones -msgid "semi-tone interval measure" +#: js/blocks/ActionBlocks.js:1028 +msgid "When the event happens, an action is taken." msgstr "" -#: js/IntervalsBlocks.js:397 -#: js/IntervalsBlocks.js:513 -msgid "You must use two pitch blocks when measuring an interval." +#: js/blocks/ActionBlocks.js:1045 +msgid "on" msgstr "" -#: js/IntervalsBlocks.js:439 -msgid "The Scalar interval block measures the distance between two notes in the current key and mode." +#: js/blocks/ActionBlocks.js:1048 +#: js/blocks/ActionBlocks.js:1049 +#: js/blocks/ActionBlocks.js:1153 +msgid "event" msgstr "" -#: js/IntervalsBlocks.js:445 -#.TRANS: measure the distance between two pitches in steps of musical scale -msgid "scalar interval measure" +#: js/blocks/ActionBlocks.js:1133 +msgid "The Broadcast block is used to trigger an event." msgstr "" -#: js/IntervalsBlocks.js:592 -#: js/musicutils.js:637 -#: js/musicutils.js:908 -#.TRANS: perfect is a music term related to intervals -msgid "perfect" +#: js/blocks/ActionBlocks.js:1151 +msgid "broadcast" msgstr "" -#: js/IntervalsBlocks.js:621 -msgid "In the figure, we add sol# to sol." +#: js/blocks/ActionBlocks.js:1208 +msgid "Each Start block is a separate voice." msgstr "" -#: js/IntervalsBlocks.js:627 -#: js/OrnamentBlocks.js:220 -#.TRANS: calculate a relative step between notes based on semi-tones -msgid "semi-tone interval" +#: js/blocks/ActionBlocks.js:1304 +msgid "It is often used for storing a phrase of music that is repeated." msgstr "" -#: js/IntervalsBlocks.js:676 -msgid "The output of the example is: do, mi, sol, sol, ti, mi" +#: js/blocks/ActionBlocks.js:1495 +msgid "define temperament" msgstr "" -#: js/IntervalsBlocks.js:735 -msgid "The Chord block calculates common chords." +#: js/blocks/BooleanBlocks.js:44 +msgid "The Not block is the logical not operator." msgstr "" -#: js/IntervalsBlocks.js:737 -msgid "In the figure, we generate a C-major chord." +#: js/blocks/BooleanBlocks.js:62 +msgid "not" msgstr "" -#: js/IntervalsBlocks.js:742 -msgid "chord" +#: js/blocks/BooleanBlocks.js:134 +msgid "The And block is the logical and operator." msgstr "" -#: js/IntervalsBlocks.js:794 -msgid "The Ratio Interval block calculates an interval based on a ratio." +#: js/blocks/BooleanBlocks.js:152 +msgid "and" msgstr "" -#: js/IntervalsBlocks.js:799 -msgid "ratio interval" +#: js/blocks/BooleanBlocks.js:218 +msgid "The Or block is the logical or operator." msgstr "" -#: js/IntervalsBlocks.js:868 -msgid "In the figure, we add la to sol." +#: js/blocks/BooleanBlocks.js:236 +msgid "or" msgstr "" -#: js/IntervalsBlocks.js:924 -#.TRANS: define a custom mode -msgid "define mode" +#: js/blocks/BooleanBlocks.js:302 +msgid "The XOR block is the logical XOR operator." msgstr "" -#: js/IntervalsBlocks.js:977 -msgid "movable Do" +#: js/blocks/BooleanBlocks.js:320 +msgid "xor" msgstr "" -#: js/IntervalsBlocks.js:1028 -#.TRANS: mode length is the number of notes in the mode, e.g., 7 for major and minor scales; 12 for chromatic scales -msgid "mode length" +#: js/blocks/BooleanBlocks.js:808 +msgid "The Equal block returns True if the two numbers are equal." msgstr "" -#: js/IntervalsBlocks.js:1037 -msgid "The Mode length block is the number of notes in the current scale." +#: js/blocks/BooleanBlocks.js:909 +msgid "The Not-equal-to block returns True if the two numbers are not equal to each other." msgstr "" -#: js/IntervalsBlocks.js:1039 -msgid "Most Western scales have 7 notes." +#: js/blocks/BooleanBlocks.js:1008 +msgid "The Boolean block is used to specify true or false." msgstr "" -#: js/IntervalsBlocks.js:1088 -#.TRANS: the mode in music is 'major', 'minor', etc. -msgid "current mode" +#: js/blocks/BoxesBlocks.js:53 +#: js/blocks/BoxesBlocks.js:59 +msgid "The Add-to block is used to add to the value stored in a box." msgstr "" -#: js/IntervalsBlocks.js:1141 -#.TRANS: the key is a group of pitches with which a music composition is created -msgid "current key" +#: js/blocks/BoxesBlocks.js:61 +msgid "It can also be used with other blocks such as Color and Pen size." msgstr "" -#: js/IntervalsBlocks.js:1193 -#: js/IntervalsBlocks.js:1238 -#.TRANS: set the key and mode, e.g. C Major -msgid "set key" +#: js/blocks/BoxesBlocks.js:73 +msgid "add" msgstr "" -#: js/IntervalsBlocks.js:1247 -#: js/IntervalsBlocks.js:1253 -msgid "The Set key block is used to set the key and mode," +#: js/blocks/BoxesBlocks.js:75 +#: js/widgets/temperament.js:857 +msgid "to" msgstr "" -#: js/IntervalsBlocks.js:1253 -msgid "eg C Major" +#: js/blocks/BoxesBlocks.js:75 +#: js/blocks/BoxesBlocks.js:595 +#: js/blocks/HeapBlocks.js:544 +msgid "value1" msgstr "" -#: js/IntervalsBlocks.js:1266 -#: js/DictBlocks.js:215 -#: js/DictBlocks.js:216 -#: js/DictBlocks.js:289 -#: js/DictBlocks.js:290 -#: js/DictBlocks.js:357 -#: js/DictBlocks.js:430 -#: js/DictBlocks.js:431 -#.TRANS: key, e.g., C in C Major -msgid "key" +#: js/blocks/BoxesBlocks.js:118 +msgid "Block does not support incrementing." msgstr "" -#: js/ActionBlocks.js:58 -msgid "The Return block will return a value from an action." +#: js/blocks/BoxesBlocks.js:152 +msgid "The Add-1-to block adds one to the value stored in a box." msgstr "" -#: js/ActionBlocks.js:75 -msgid "return" +#: js/blocks/BoxesBlocks.js:163 +msgid "add 1 to" msgstr "" -#: js/ActionBlocks.js:128 -msgid "The Return to URL block will return a value to a webpage." +#: js/blocks/BoxesBlocks.js:211 +msgid "The Subtract-1-from block subtracts one from the value stored in a box." msgstr "" -#: js/ActionBlocks.js:145 -msgid "return to URL" +#: js/blocks/BoxesBlocks.js:222 +msgid "subtract 1 from" msgstr "" -#: js/ActionBlocks.js:233 -#: js/ActionBlocks.js:290 -#: js/ActionBlocks.js:501 -#: js/ActionBlocks.js:688 -msgid "The Calculate block returns a value calculated by an action." +#: js/blocks/BoxesBlocks.js:270 +#: js/blocks/BoxesBlocks.js:387 +msgid "The Box block returns the value stored in a box." msgstr "" -#: js/ActionBlocks.js:251 -#: js/ActionBlocks.js:517 -#: js/ActionBlocks.js:707 -msgid "calculate" +#: js/blocks/BoxesBlocks.js:500 +#: js/blocks/BoxesBlocks.js:576 +msgid "The Store in block will store a value in a box." msgstr "" -#: js/ActionBlocks.js:376 -#: js/ActionBlocks.js:593 -#: js/ActionBlocks.js:942 -#: js/ActionBlocks.js:1389 -#.TRANS: do is the do something or take an action. -msgid "The Do block is used to initiate an action." +#: js/blocks/BoxesBlocks.js:595 +#: js/blocks/EnsembleBlocks.js:391 +#: js/blocks/EnsembleBlocks.js:402 +msgid "name1" msgstr "" -#: js/ActionBlocks.js:390 -#: js/ActionBlocks.js:610 -#: js/ActionBlocks.js:959 -#: js/ActionBlocks.js:1048 -#: js/MeterBlocks.js:769 -msgid "do1" +#: js/blocks/BoxesBlocks.js:652 +msgid "The Box2 block returns the value stored in Box2." msgstr "" -#: js/ActionBlocks.js:390 -#: js/ActionBlocks.js:610 -#: js/ActionBlocks.js:959 -#: js/ActionBlocks.js:1048 -#: js/FlowBlocks.js:742 -#: js/FlowBlocks.js:822 -#: js/MeterBlocks.js:769 -msgid "do" +#: js/blocks/BoxesBlocks.js:703 +msgid "The Store in Box2 block is used to store a value in Box2." msgstr "" -#: js/ActionBlocks.js:791 -#: js/ActionBlocks.js:865 -msgid "The Arg block contains the value of an argument passed to an action." +#: js/blocks/BoxesBlocks.js:715 +msgid "store in box2" msgstr "" -#: js/ActionBlocks.js:806 -#: js/ActionBlocks.js:878 -msgid "arg" +#: js/blocks/BoxesBlocks.js:761 +msgid "The Box1 block returns the value stored in Box1." msgstr "" -#: js/ActionBlocks.js:836 -#: js/ActionBlocks.js:900 -#: js/ActionBlocks.js:908 -msgid "Invalid argument" +#: js/blocks/BoxesBlocks.js:812 +msgid "The Store in Box1 block is used to store a value in Box1." msgstr "" -#: js/ActionBlocks.js:944 -msgid "In the example, it is used with the One of block to choose a random phase." +#: js/blocks/BoxesBlocks.js:826 +msgid "store in box1" msgstr "" -#: js/ActionBlocks.js:1019 -#: js/ActionBlocks.js:1026 -msgid "The Listen block is used to listen for an event such as a mouse click." +#: js/blocks/DictBlocks.js:77 +msgid "show dictionary" msgstr "" -#: js/ActionBlocks.js:1028 -msgid "When the event happens, an action is taken." +#: js/blocks/DictBlocks.js:80 +#: js/blocks/DictBlocks.js:145 +#: js/blocks/DictBlocks.js:216 +#: js/blocks/DictBlocks.js:290 +#: js/blocks/ProgramBlocks.js:396 +#: js/blocks/ProgramBlocks.js:501 +#: js/blocks/ProgramBlocks.js:664 +msgid "My Dictionary" msgstr "" -#: js/ActionBlocks.js:1045 -msgid "on" +#: js/blocks/DictBlocks.js:129 +msgid "The Dictionary block returns a dictionary." msgstr "" -#: js/ActionBlocks.js:1048 -#: js/ActionBlocks.js:1049 -#: js/ActionBlocks.js:1153 -msgid "event" +#: js/blocks/DictBlocks.js:197 +#: js/blocks/DictBlocks.js:339 +msgid "The Get-dict block returns a value in the dictionary for a specified key." msgstr "" -#: js/ActionBlocks.js:1133 -msgid "The Broadcast block is used to trigger an event." +#: js/blocks/DictBlocks.js:212 +#: js/blocks/DictBlocks.js:354 +#.TRANS: retrieve a value from the dictionary with a given key +msgid "get value" msgstr "" -#: js/ActionBlocks.js:1151 -msgid "broadcast" +#: js/blocks/DictBlocks.js:215 +#: js/blocks/DictBlocks.js:216 +#: js/blocks/DictBlocks.js:289 +#: js/blocks/DictBlocks.js:290 +#: js/blocks/DictBlocks.js:357 +#: js/blocks/DictBlocks.js:430 +#: js/blocks/DictBlocks.js:431 +msgid "key2" msgstr "" -#: js/ActionBlocks.js:1208 -msgid "Each Start block is a separate voice." +#: js/blocks/DictBlocks.js:215 +#: js/blocks/DictBlocks.js:216 +#: js/blocks/DictBlocks.js:289 +#: js/blocks/DictBlocks.js:290 +#: js/blocks/DictBlocks.js:357 +#: js/blocks/DictBlocks.js:430 +#: js/blocks/DictBlocks.js:431 +#: js/blocks/IntervalsBlocks.js:1462 +#.TRANS: key, e.g., C in C Major +msgid "key" msgstr "" -#: js/ActionBlocks.js:1304 -msgid "It is often used for storing a phrase of music that is repeated." +#: js/blocks/DictBlocks.js:271 +#: js/blocks/DictBlocks.js:411 +msgid "The Set-dict block sets a value in the dictionary for a specified key." msgstr "" -#: js/ActionBlocks.js:1495 -msgid "define temperament" +#: js/blocks/DictBlocks.js:286 +#: js/blocks/DictBlocks.js:427 +#.TRANS: set a value in the dictionary for a given key +msgid "set value" msgstr "" -#: js/EnsembleBlocks.js:66 +#: js/blocks/EnsembleBlocks.js:66 msgid "mouse index heap" msgstr "" -#: js/EnsembleBlocks.js:68 +#: js/blocks/EnsembleBlocks.js:68 msgid "The Mouse index heap block returns a value in the heap at a specified location for a specified mouse." msgstr "" -#: js/EnsembleBlocks.js:77 -#: js/EnsembleBlocks.js:1080 +#: js/blocks/EnsembleBlocks.js:77 +#: js/blocks/EnsembleBlocks.js:1080 msgid "mouse name" msgstr "" -#: js/EnsembleBlocks.js:77 -#: js/EnsembleBlocks.js:92 -#: js/HeapBlocks.js:544 +#: js/blocks/EnsembleBlocks.js:77 +#: js/blocks/EnsembleBlocks.js:92 +#: js/blocks/HeapBlocks.js:544 #.TRANS: value1 is a numeric value (JAPANESE ONLY) msgid "index" msgstr "" -#: js/EnsembleBlocks.js:80 +#: js/blocks/EnsembleBlocks.js:80 msgid "turtle index heap" msgstr "" -#: js/EnsembleBlocks.js:82 +#: js/blocks/EnsembleBlocks.js:82 msgid "The Turtle index heap block returns a value in the heap at a specified location for a specified turtle." msgstr "" -#: js/EnsembleBlocks.js:90 -#: js/EnsembleBlocks.js:167 -#: js/EnsembleBlocks.js:230 -#: js/EnsembleBlocks.js:316 -#: js/EnsembleBlocks.js:362 -#: js/EnsembleBlocks.js:400 -#: js/EnsembleBlocks.js:454 -#: js/EnsembleBlocks.js:504 -#: js/EnsembleBlocks.js:550 -#: js/EnsembleBlocks.js:597 -#: js/EnsembleBlocks.js:651 -#: js/EnsembleBlocks.js:763 -#: js/EnsembleBlocks.js:854 -#: js/EnsembleBlocks.js:915 -#: js/EnsembleBlocks.js:955 -#: js/EnsembleBlocks.js:1219 -#: js/EnsembleBlocks.js:1293 +#: js/blocks/EnsembleBlocks.js:90 +#: js/blocks/EnsembleBlocks.js:167 +#: js/blocks/EnsembleBlocks.js:230 +#: js/blocks/EnsembleBlocks.js:316 +#: js/blocks/EnsembleBlocks.js:362 +#: js/blocks/EnsembleBlocks.js:400 +#: js/blocks/EnsembleBlocks.js:454 +#: js/blocks/EnsembleBlocks.js:504 +#: js/blocks/EnsembleBlocks.js:550 +#: js/blocks/EnsembleBlocks.js:597 +#: js/blocks/EnsembleBlocks.js:651 +#: js/blocks/EnsembleBlocks.js:763 +#: js/blocks/EnsembleBlocks.js:854 +#: js/blocks/EnsembleBlocks.js:915 +#: js/blocks/EnsembleBlocks.js:955 +#: js/blocks/EnsembleBlocks.js:1219 +#: js/blocks/EnsembleBlocks.js:1293 #.TRANS: Yertle is the name of a turtle. msgid "Yertle" msgstr "" -#: js/EnsembleBlocks.js:92 -#: js/EnsembleBlocks.js:1089 +#: js/blocks/EnsembleBlocks.js:92 +#: js/blocks/EnsembleBlocks.js:1089 msgid "turtle name" msgstr "" -#: js/EnsembleBlocks.js:122 -#: js/EnsembleBlocks.js:1197 -#: js/HeapBlocks.js:474 -#: js/HeapBlocks.js:572 +#: js/blocks/EnsembleBlocks.js:122 +#: js/blocks/EnsembleBlocks.js:1197 +#: js/blocks/HeapBlocks.js:474 +#: js/blocks/HeapBlocks.js:572 msgid "Index must be > 0." msgstr "" -#: js/EnsembleBlocks.js:127 -#: js/HeapBlocks.js:479 -#: js/HeapBlocks.js:577 +#: js/blocks/EnsembleBlocks.js:127 +#: js/blocks/HeapBlocks.js:479 +#: js/blocks/HeapBlocks.js:577 msgid "Maximum heap size is 1000." msgstr "" -#: js/EnsembleBlocks.js:145 +#: js/blocks/EnsembleBlocks.js:145 msgid "stop mouse" msgstr "" -#: js/EnsembleBlocks.js:147 +#: js/blocks/EnsembleBlocks.js:147 msgid "The Stop mouse block stops the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:158 +#: js/blocks/EnsembleBlocks.js:158 msgid "stop turtle" msgstr "" -#: js/EnsembleBlocks.js:160 +#: js/blocks/EnsembleBlocks.js:160 msgid "The Stop turtle block stops the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:184 -#: js/EnsembleBlocks.js:247 -#: js/EnsembleBlocks.js:413 -#: js/EnsembleBlocks.js:468 -#: js/EnsembleBlocks.js:706 -#: js/EnsembleBlocks.js:808 -#: js/EnsembleBlocks.js:870 -#: js/EnsembleBlocks.js:1190 -#: js/EnsembleBlocks.js:1253 +#: js/blocks/EnsembleBlocks.js:184 +#: js/blocks/EnsembleBlocks.js:247 +#: js/blocks/EnsembleBlocks.js:413 +#: js/blocks/EnsembleBlocks.js:468 +#: js/blocks/EnsembleBlocks.js:706 +#: js/blocks/EnsembleBlocks.js:808 +#: js/blocks/EnsembleBlocks.js:870 +#: js/blocks/EnsembleBlocks.js:1190 +#: js/blocks/EnsembleBlocks.js:1253 msgid "Cannot find mouse" msgstr "" -#: js/EnsembleBlocks.js:186 -#: js/EnsembleBlocks.js:249 -#: js/EnsembleBlocks.js:415 -#: js/EnsembleBlocks.js:470 -#: js/EnsembleBlocks.js:708 -#: js/EnsembleBlocks.js:810 -#: js/EnsembleBlocks.js:872 -#: js/EnsembleBlocks.js:1192 -#: js/EnsembleBlocks.js:1255 +#: js/blocks/EnsembleBlocks.js:186 +#: js/blocks/EnsembleBlocks.js:249 +#: js/blocks/EnsembleBlocks.js:415 +#: js/blocks/EnsembleBlocks.js:470 +#: js/blocks/EnsembleBlocks.js:708 +#: js/blocks/EnsembleBlocks.js:810 +#: js/blocks/EnsembleBlocks.js:872 +#: js/blocks/EnsembleBlocks.js:1192 +#: js/blocks/EnsembleBlocks.js:1255 msgid "Cannot find turtle" msgstr "" -#: js/EnsembleBlocks.js:206 +#: js/blocks/EnsembleBlocks.js:206 msgid "start mouse" msgstr "" -#: js/EnsembleBlocks.js:209 +#: js/blocks/EnsembleBlocks.js:209 msgid "The Start mouse block starts the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:220 +#: js/blocks/EnsembleBlocks.js:220 msgid "start turtle" msgstr "" -#: js/EnsembleBlocks.js:223 +#: js/blocks/EnsembleBlocks.js:223 msgid "The Start turtle block starts the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:256 +#: js/blocks/EnsembleBlocks.js:256 msgid "Mouse is already running." msgstr "" -#: js/EnsembleBlocks.js:258 +#: js/blocks/EnsembleBlocks.js:258 msgid "Turtle is already running." msgstr "" -#: js/EnsembleBlocks.js:282 +#: js/blocks/EnsembleBlocks.js:282 msgid "Cannot find start block" msgstr "" -#: js/EnsembleBlocks.js:292 +#: js/blocks/EnsembleBlocks.js:292 #.TRANS: pen color for this mouse msgid "mouse color" msgstr "" -#: js/EnsembleBlocks.js:294 +#: js/blocks/EnsembleBlocks.js:294 msgid "The Mouse color block returns the pen color of the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:306 +#: js/blocks/EnsembleBlocks.js:306 #.TRANS: pen color for this turtle msgid "turtle color" msgstr "" -#: js/EnsembleBlocks.js:308 +#: js/blocks/EnsembleBlocks.js:308 msgid "The Turtle color block returns the pen color of the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:338 +#: js/blocks/EnsembleBlocks.js:338 #.TRANS: heading (compass direction) for this mouse msgid "mouse heading" msgstr "" -#: js/EnsembleBlocks.js:340 +#: js/blocks/EnsembleBlocks.js:340 msgid "The Mouse heading block returns the heading of the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:352 +#: js/blocks/EnsembleBlocks.js:352 #.TRANS: heading (compass direction) for this turtle msgid "turtle heading" msgstr "" -#: js/EnsembleBlocks.js:354 +#: js/blocks/EnsembleBlocks.js:354 msgid "The Turtle heading block returns the heading of the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:384 -#: js/EnsembleBlocks.js:439 +#: js/blocks/EnsembleBlocks.js:384 +#: js/blocks/EnsembleBlocks.js:439 #.TRANS: set xy position for this mouse msgid "set mouse" msgstr "" -#: js/EnsembleBlocks.js:391 -#: js/EnsembleBlocks.js:402 -#: js/BoxesBlocks.js:595 -msgid "name1" -msgstr "" - -#: js/EnsembleBlocks.js:391 -#: js/EnsembleBlocks.js:402 -#: js/ProgramBlocks.js:881 -#: js/GraphicsBlocks.js:235 -#: js/GraphicsBlocks.js:313 -#: js/GraphicsBlocks.js:436 -#: js/GraphicsBlocks.js:487 -#: js/GraphicsBlocks.js:534 -#: js/GraphicsBlocks.js:750 +#: js/blocks/EnsembleBlocks.js:391 +#: js/blocks/EnsembleBlocks.js:402 +#: js/blocks/GraphicsBlocks.js:235 +#: js/blocks/GraphicsBlocks.js:313 +#: js/blocks/GraphicsBlocks.js:436 +#: js/blocks/GraphicsBlocks.js:487 +#: js/blocks/GraphicsBlocks.js:534 +#: js/blocks/GraphicsBlocks.js:750 +#: js/blocks/ProgramBlocks.js:881 msgid "x" msgstr "" -#: js/EnsembleBlocks.js:391 -#: js/EnsembleBlocks.js:402 -#: js/ProgramBlocks.js:881 -#: js/GraphicsBlocks.js:149 -#: js/GraphicsBlocks.js:313 -#: js/GraphicsBlocks.js:436 -#: js/GraphicsBlocks.js:487 -#: js/GraphicsBlocks.js:534 -#: js/GraphicsBlocks.js:750 +#: js/blocks/EnsembleBlocks.js:391 +#: js/blocks/EnsembleBlocks.js:402 +#: js/blocks/GraphicsBlocks.js:149 +#: js/blocks/GraphicsBlocks.js:313 +#: js/blocks/GraphicsBlocks.js:436 +#: js/blocks/GraphicsBlocks.js:487 +#: js/blocks/GraphicsBlocks.js:534 +#: js/blocks/GraphicsBlocks.js:750 +#: js/blocks/ProgramBlocks.js:881 msgid "y" msgstr "" -#: js/EnsembleBlocks.js:395 -#: js/EnsembleBlocks.js:452 +#: js/blocks/EnsembleBlocks.js:395 +#: js/blocks/EnsembleBlocks.js:452 #.TRANS: set xy position for this turtle msgid "set turtle" msgstr "" -#: js/EnsembleBlocks.js:433 +#: js/blocks/EnsembleBlocks.js:433 msgid "The Set mouse block sends a stack of blocks to be run by the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:446 +#: js/blocks/EnsembleBlocks.js:446 msgid "The Set turtle block sends a stack of blocks to be run by the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:480 +#: js/blocks/EnsembleBlocks.js:480 #.TRANS: y position for this mouse msgid "mouse y" msgstr "" -#: js/EnsembleBlocks.js:482 +#: js/blocks/EnsembleBlocks.js:482 msgid "The Y mouse block returns the Y position of the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:494 +#: js/blocks/EnsembleBlocks.js:494 #.TRANS: y position for this turtle msgid "turtle y" msgstr "" -#: js/EnsembleBlocks.js:496 +#: js/blocks/EnsembleBlocks.js:496 msgid "The Y turtle block returns the Y position of the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:526 +#: js/blocks/EnsembleBlocks.js:526 #.TRANS: x position for this mouse msgid "mouse x" msgstr "" -#: js/EnsembleBlocks.js:528 +#: js/blocks/EnsembleBlocks.js:528 msgid "The X mouse block returns the X position of the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:540 +#: js/blocks/EnsembleBlocks.js:540 #.TRANS: x position for this turtle msgid "turtle x" msgstr "" -#: js/EnsembleBlocks.js:542 +#: js/blocks/EnsembleBlocks.js:542 msgid "The X turtle block returns the X position of the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:573 +#: js/blocks/EnsembleBlocks.js:573 #.TRANS: notes played by this mouse msgid "mouse notes played" msgstr "" -#: js/EnsembleBlocks.js:575 +#: js/blocks/EnsembleBlocks.js:575 msgid "The Mouse elapse notes block returns the number of notes played by the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:587 +#: js/blocks/EnsembleBlocks.js:587 #.TRANS: notes played by this turtle msgid "turtle notes played" msgstr "" -#: js/EnsembleBlocks.js:589 +#: js/blocks/EnsembleBlocks.js:589 msgid "The Turtle elapse notes block returns the number of notes played by the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:627 +#: js/blocks/EnsembleBlocks.js:627 #.TRANS: convert current note for this turtle to piano key (1-88) msgid "mouse pitch number" msgstr "" -#: js/EnsembleBlocks.js:629 +#: js/blocks/EnsembleBlocks.js:629 msgid "The Mouse pitch block returns the current pitch number being played by the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:641 +#: js/blocks/EnsembleBlocks.js:641 #.TRANS: convert current note for this turtle to piano key (1-88) msgid "turtle pitch number" msgstr "" -#: js/EnsembleBlocks.js:643 -msgid "The Turrle pitch block returns the current pitch number being played by the specified turtle." +#: js/blocks/EnsembleBlocks.js:643 +msgid "The Turtle pitch block returns the current pitch number being played by the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:747 -#: js/EnsembleBlocks.js:819 +#: js/blocks/EnsembleBlocks.js:747 +#: js/blocks/EnsembleBlocks.js:819 #.TRANS: note value is the duration of the note played by this mouse msgid "mouse note value" msgstr "" -#: js/EnsembleBlocks.js:757 +#: js/blocks/EnsembleBlocks.js:757 #.TRANS: note value is the duration of the note played by this turtle msgid "turtle note value" msgstr "" -#: js/EnsembleBlocks.js:830 +#: js/blocks/EnsembleBlocks.js:830 #.TRANS: sync is short for synchronization msgid "mouse sync" msgstr "" -#: js/EnsembleBlocks.js:832 +#: js/blocks/EnsembleBlocks.js:832 msgid "The Mouse sync block aligns the beat count between mice." msgstr "" -#: js/EnsembleBlocks.js:844 +#: js/blocks/EnsembleBlocks.js:844 #.TRANS: sync is short for synchronization msgid "turtle sync" msgstr "" -#: js/EnsembleBlocks.js:846 +#: js/blocks/EnsembleBlocks.js:846 msgid "The Turtle sync block aligns the beat count between turtles." msgstr "" -#: js/EnsembleBlocks.js:887 +#: js/blocks/EnsembleBlocks.js:887 msgid "The Found mouse block will return true if the specified mouse can be found." msgstr "" -#: js/EnsembleBlocks.js:893 +#: js/blocks/EnsembleBlocks.js:893 msgid "found mouse" msgstr "" -#: js/EnsembleBlocks.js:903 +#: js/blocks/EnsembleBlocks.js:903 msgid "The Found turtle block will return true if the specified turtle can be found." msgstr "" -#: js/EnsembleBlocks.js:909 +#: js/blocks/EnsembleBlocks.js:909 msgid "found turtle" msgstr "" -#: js/EnsembleBlocks.js:932 +#: js/blocks/EnsembleBlocks.js:932 msgid "new mouse" msgstr "" -#: js/EnsembleBlocks.js:934 +#: js/blocks/EnsembleBlocks.js:934 msgid "The New mouse block will create a new mouse." msgstr "" -#: js/EnsembleBlocks.js:945 +#: js/blocks/EnsembleBlocks.js:945 msgid "new turtle" msgstr "" -#: js/EnsembleBlocks.js:947 +#: js/blocks/EnsembleBlocks.js:947 msgid "The New turtle block will create a new turtle." msgstr "" -#: js/EnsembleBlocks.js:1011 +#: js/blocks/EnsembleBlocks.js:1011 msgid "set mouse color" msgstr "" -#: js/EnsembleBlocks.js:1014 +#: js/blocks/EnsembleBlocks.js:1014 msgid "The Set-mouse-color block is used to set the color of a mouse." msgstr "" -#: js/EnsembleBlocks.js:1020 +#: js/blocks/EnsembleBlocks.js:1020 msgid "set turtle color" msgstr "" -#: js/EnsembleBlocks.js:1023 +#: js/blocks/EnsembleBlocks.js:1023 msgid "The Set-turtle-color block is used to set the color of a turtle." msgstr "" -#: js/EnsembleBlocks.js:1083 +#: js/blocks/EnsembleBlocks.js:1083 msgid "The Mouse-name block returns the name of a mouse." msgstr "" -#: js/EnsembleBlocks.js:1092 +#: js/blocks/EnsembleBlocks.js:1092 msgid "The Turtle-name block returns the name of a turtle." msgstr "" -#: js/EnsembleBlocks.js:1115 +#: js/blocks/EnsembleBlocks.js:1115 msgid "mouse count" msgstr "" -#: js/EnsembleBlocks.js:1118 +#: js/blocks/EnsembleBlocks.js:1118 msgid "The Mouse-count block returns the number of mice." msgstr "" -#: js/EnsembleBlocks.js:1124 +#: js/blocks/EnsembleBlocks.js:1124 msgid "turtle count" msgstr "" -#: js/EnsembleBlocks.js:1127 +#: js/blocks/EnsembleBlocks.js:1127 msgid "The Turtle-count block returns the number of turtles." msgstr "" -#: js/EnsembleBlocks.js:1149 +#: js/blocks/EnsembleBlocks.js:1149 msgid "nth mouse name" msgstr "" -#: js/EnsembleBlocks.js:1152 +#: js/blocks/EnsembleBlocks.js:1152 msgid "The Nth-Mouse name block returns the name of the nth mouse." msgstr "" -#: js/EnsembleBlocks.js:1158 +#: js/blocks/EnsembleBlocks.js:1158 msgid "nth turtle name" msgstr "" -#: js/EnsembleBlocks.js:1161 +#: js/blocks/EnsembleBlocks.js:1161 msgid "The Nth-Turtle name block returns the name of the nth turtle." msgstr "" -#: js/EnsembleBlocks.js:1205 -#: js/EnsembleBlocks.js:1265 +#: js/blocks/EnsembleBlocks.js:1205 +#: js/blocks/EnsembleBlocks.js:1265 msgid "set name" msgstr "" -#: js/EnsembleBlocks.js:1214 -#: js/EnsembleBlocks.js:1221 +#: js/blocks/EnsembleBlocks.js:1214 +#: js/blocks/EnsembleBlocks.js:1221 msgid "source" msgstr "" -#: js/EnsembleBlocks.js:1214 -#: js/EnsembleBlocks.js:1221 +#: js/blocks/EnsembleBlocks.js:1214 +#: js/blocks/EnsembleBlocks.js:1221 msgid "target" msgstr "" -#: js/EnsembleBlocks.js:1271 +#: js/blocks/EnsembleBlocks.js:1271 msgid "The Set-name block is used to name a mouse." msgstr "" -#: js/EnsembleBlocks.js:1284 +#: js/blocks/EnsembleBlocks.js:1284 msgid "The Set-name block is used to name a turtle." msgstr "" -#: js/BooleanBlocks.js:44 -msgid "The Not block is the logical not operator." -msgstr "" - -#: js/BooleanBlocks.js:62 -msgid "not" -msgstr "" - -#: js/BooleanBlocks.js:134 -msgid "The And block is the logical and operator." -msgstr "" - -#: js/BooleanBlocks.js:152 -msgid "and" -msgstr "" - -#: js/BooleanBlocks.js:218 -msgid "The Or block is the logical or operator." -msgstr "" - -#: js/BooleanBlocks.js:236 -msgid "or" -msgstr "" - -#: js/BooleanBlocks.js:302 -msgid "The XOR block is the logical XOR operator." -msgstr "" - -#: js/BooleanBlocks.js:320 -msgid "xor" -msgstr "" - -#: js/BooleanBlocks.js:808 -msgid "The Equal block returns True if the two numbers are equal." -msgstr "" - -#: js/BooleanBlocks.js:909 -msgid "The Not-equal-to block returns True if the two numbers are not equal to each other." -msgstr "" - -#: js/BooleanBlocks.js:1008 -msgid "The Boolean block is used to specify true or false." -msgstr "" - -#: js/MediaBlocks.js:35 -#.TRANS: right side of the screen -msgid "right (screen)" -msgstr "" - -#: js/MediaBlocks.js:45 -#: js/MediaBlocks.js:56 -msgid "The Right block returns the position of the right of the canvas." -msgstr "" - -#: js/MediaBlocks.js:97 -#.TRANS: left side of the screen -msgid "left (screen)" -msgstr "" - -#: js/MediaBlocks.js:107 -#: js/MediaBlocks.js:118 -msgid "The Left block returns the position of the left of the canvas." -msgstr "" - -#: js/MediaBlocks.js:158 -msgid "top (screen)" -msgstr "" - -#: js/MediaBlocks.js:168 -#: js/MediaBlocks.js:179 -msgid "The Top block returns the position of the top of the canvas." -msgstr "" - -#: js/MediaBlocks.js:219 -msgid "bottom (screen)" +#: js/blocks/ExtrasBlocks.js:33 +msgid "fraction" msgstr "" -#: js/MediaBlocks.js:229 -#: js/MediaBlocks.js:240 -msgid "The Bottom block returns the position of the bottom of the canvas." +#: js/blocks/ExtrasBlocks.js:36 +msgid "Convert a float to a fraction" msgstr "" -#: js/MediaBlocks.js:282 -msgid "width" +#: js/blocks/ExtrasBlocks.js:93 +msgid "save as ABC" msgstr "" -#: js/MediaBlocks.js:291 -msgid "The Width block returns the width of the canvas." +#: js/blocks/ExtrasBlocks.js:96 +#: js/blocks/ExtrasBlocks.js:132 +#: js/blocks/ExtrasBlocks.js:168 +msgid "title" msgstr "" -#: js/MediaBlocks.js:325 -msgid "height" +#: js/blocks/ExtrasBlocks.js:129 +msgid "save as Lilypond" msgstr "" -#: js/MediaBlocks.js:334 -msgid "The Height block returns the height of the canvas." +#: js/blocks/ExtrasBlocks.js:165 +msgid "save as SVG" msgstr "" -#: js/MediaBlocks.js:369 -#.TRANS: stops playback of an audio recording -msgid "stop play" +#: js/blocks/ExtrasBlocks.js:216 +msgid "no background" msgstr "" -#: js/MediaBlocks.js:404 -#.TRANS: Erases the images and text -msgid "erase media" +#: js/blocks/ExtrasBlocks.js:219 +msgid "The No background block eliminates the background from the saved SVG output." msgstr "" -#: js/MediaBlocks.js:409 -msgid "The Erase Media block erases text and images." +#: js/blocks/ExtrasBlocks.js:247 +msgid "show blocks" msgstr "" -#: js/MediaBlocks.js:439 -#.TRANS: play an audio recording -msgid "play back" +#: js/blocks/ExtrasBlocks.js:249 +msgid "The Show blocks block shows the blocks." msgstr "" -#: js/MediaBlocks.js:487 -msgid "speak" +#: js/blocks/ExtrasBlocks.js:274 +msgid "hide blocks" msgstr "" -#: js/MediaBlocks.js:495 -msgid "The Speak block outputs to the text-to-speech synthesizer" +#: js/blocks/ExtrasBlocks.js:276 +msgid "The Hide blocks block hides the blocks." msgstr "" -#: js/MediaBlocks.js:546 -msgid "camera" +#: js/blocks/ExtrasBlocks.js:305 +#: js/blocks/ExtrasBlocks.js:338 +msgid "The Space block is used to add space between blocks." msgstr "" -#: js/MediaBlocks.js:551 -msgid "The Camera block connects a webcam to the Show block." +#: js/blocks/ExtrasBlocks.js:376 +msgid "wait" msgstr "" -#: js/MediaBlocks.js:574 -msgid "video" +#: js/blocks/ExtrasBlocks.js:379 +msgid "The Wait block pauses the program for a specified number of seconds." msgstr "" -#: js/MediaBlocks.js:579 -msgid "The Video block selects video for use with the Show block." +#: js/blocks/ExtrasBlocks.js:433 +#: plugins/facebook.rtp:30 +msgid "comment" msgstr "" -#: js/MediaBlocks.js:607 -msgid "The Open file block opens a file for use with the Show block." +#: js/blocks/ExtrasBlocks.js:469 +msgid "print" msgstr "" -#: js/MediaBlocks.js:645 -msgid "stop media" +#: js/blocks/ExtrasBlocks.js:476 +msgid "The Print block displays text at the top of the screen." msgstr "" -#: js/MediaBlocks.js:650 -msgid "The Stop media block stops audio or video playback." +#: js/blocks/ExtrasBlocks.js:582 +msgid "display grid" msgstr "" -#: js/MediaBlocks.js:679 -#: js/PitchBlocks.js:1539 -#: js/phrasemaker.js:822 -#: js/musickeyboard.js:1654 -#.TRANS: a measure of frequency: one cycle per second -msgid "hertz" +#: js/blocks/ExtrasBlocks.js:587 +msgid "The Display Grid Block changes the grid type" msgstr "" -#: js/MediaBlocks.js:692 -msgid "duration (ms)" +#: js/blocks/ExtrasBlocks.js:689 +#: js/blocks/ExtrasBlocks.js:708 +#: js/blocks/ExtrasBlocks.js:731 +#: js/blocks/ExtrasBlocks.js:754 +#: js/blocks/ExtrasBlocks.js:772 +#: js/blocks/ExtrasBlocks.js:791 +#: js/blocks/ExtrasBlocks.js:810 +#: js/blocks/ExtrasBlocks.js:829 +msgid "unknown" msgstr "" -#: js/MediaBlocks.js:728 -#.TRANS: translate a note into hertz, e.g., A4 -> 440HZ -msgid "note to frequency" +#: js/blocks/FlowBlocks.js:41 +msgid "The Backward block runs code in reverse order (Musical retrograde)." msgstr "" -#: js/MediaBlocks.js:736 -msgid "The To frequency block converts a pitch name and octave to Hertz." +#: js/blocks/FlowBlocks.js:48 +msgid "backward" msgstr "" -#: js/MediaBlocks.js:746 -#: js/PitchBlocks.js:656 -#: js/PitchBlocks.js:932 -#: js/PitchBlocks.js:1827 -#.TRANS: name2 is name as in name of pitch (JAPANESE ONLY) -msgid "name2" +#: js/blocks/FlowBlocks.js:124 +msgid "The Duplicate block will run each block multiple times." msgstr "" -#: js/MediaBlocks.js:812 -msgid "The Avatar block is used to change the appearance of the mouse." +#: js/blocks/FlowBlocks.js:136 +msgid "duplicate" msgstr "" -#: js/MediaBlocks.js:819 -msgid "The Avatar block is used to change the appearance of the turtle." +#: js/blocks/FlowBlocks.js:334 +msgid "The Default block is used inside of a Switch to define the default action." msgstr "" -#: js/MediaBlocks.js:831 -#: js/MediaBlocks.js:891 -#.TRANS: a media object -msgid "size" +#: js/blocks/FlowBlocks.js:342 +msgid "default" msgstr "" -#: js/MediaBlocks.js:831 -msgid "image" +#: js/blocks/FlowBlocks.js:361 +#: js/blocks/FlowBlocks.js:418 +msgid "The Case Block must be used inside of a Switch Block." msgstr "" -#: js/MediaBlocks.js:880 -msgid "The Show block is used to display text or images on the canvas." +#: js/blocks/FlowBlocks.js:389 +msgid "The Case block is used inside of a Switch to define matches." msgstr "" -#: js/MediaBlocks.js:888 -#.TRANS: show1 is show as in display an image or text on the screen. -msgid "show1" +#: js/blocks/FlowBlocks.js:397 +msgid "case" msgstr "" -#: js/MediaBlocks.js:891 -msgid "obj" +#: js/blocks/FlowBlocks.js:446 +msgid "The Switch block will run the code in the matching Case." msgstr "" -#: js/MediaBlocks.js:938 -msgid "The Media block is used to import an image." +#: js/blocks/FlowBlocks.js:454 +msgid "switch" msgstr "" -#: js/MediaBlocks.js:973 -msgid "The Text block holds a text string." +#: js/blocks/FlowBlocks.js:595 +msgid "The Stop block will stop a loop" msgstr "" -#: js/ProgramBlocks.js:33 -msgid "The Load-heap-from-app block loads the heap from a web page." +#: js/blocks/FlowBlocks.js:597 +msgid "Forever, Repeat, While, or Until." msgstr "" -#: js/ProgramBlocks.js:44 -#.TRANS: load the heap contents from a URL -msgid "load heap from App" +#: js/blocks/FlowBlocks.js:604 +#: js/widgets/timbre.js:417 +#: js/widgets/timbre.js:419 +#: js/widgets/musickeyboard.js:819 +#: js/widgets/musickeyboard.js:821 +#: js/widgets/phrasemaker.js:4202 +#: plugins/rodi.rtp:29 +#: plugins/rodi.rtp:73 +#: plugins/rodi.rtp:413 +msgid "stop" msgstr "" -#: js/ProgramBlocks.js:95 -msgid "Error parsing JSON data:" +#: js/blocks/FlowBlocks.js:653 +msgid "The Waitfor block will wait until the condition is true." msgstr "" -#: js/ProgramBlocks.js:100 -msgid "404: Page not found" +#: js/blocks/FlowBlocks.js:661 +msgid "wait for" msgstr "" -#: js/ProgramBlocks.js:133 -msgid "The Save-heap-to-app block saves the heap to a web page." +#: js/blocks/FlowBlocks.js:732 +msgid "The Until block will repeat until the condition is true." msgstr "" -#: js/ProgramBlocks.js:144 -#.TRANS: save the heap contents to a URL -msgid "save heap to App" +#: js/blocks/FlowBlocks.js:740 +msgid "until" msgstr "" -#: js/ProgramBlocks.js:189 -msgid "Cannot find a valid heap for" +#: js/blocks/FlowBlocks.js:742 +#: js/blocks/FlowBlocks.js:822 +msgid "do2" msgstr "" -#: js/ProgramBlocks.js:206 -msgid "The Load-heap block loads the heap from a file." +#: js/blocks/FlowBlocks.js:812 +msgid "The While block will repeat while the condition is true." msgstr "" -#: js/ProgramBlocks.js:217 -#.TRANS: load the heap from a file -msgid "load heap" +#: js/blocks/FlowBlocks.js:820 +msgid "while" msgstr "" -#: js/ProgramBlocks.js:270 -msgid "The file you selected does not contain a valid heap." +#: js/blocks/FlowBlocks.js:903 +#: js/blocks/FlowBlocks.js:968 +#: js/blocks/FlowBlocks.js:979 +msgid "In this example if the mouse button is pressed a snare drum will play." msgstr "" -#: js/ProgramBlocks.js:275 -msgid "The loadHeap block needs a loadFile block." +#: js/blocks/FlowBlocks.js:925 +#: js/blocks/FlowBlocks.js:988 +msgid "if" msgstr "" -#: js/ProgramBlocks.js:291 -msgid "The Set-heap block loads the heap." +#: js/blocks/FlowBlocks.js:927 +#: js/blocks/FlowBlocks.js:990 +msgid "then" msgstr "" -#: js/ProgramBlocks.js:299 -#: js/HeapBlocks.js:539 -#.TRANS: load the heap from a JSON encoding -msgid "set heap" +#: js/blocks/FlowBlocks.js:927 +msgid "else" msgstr "" -#: js/ProgramBlocks.js:340 -msgid "The block you selected does not contain a valid heap." +#: js/blocks/FlowBlocks.js:1025 +msgid "The Forever block will repeat the contained blocks forever." msgstr "" -#: js/ProgramBlocks.js:343 -msgid "The Set heap block needs a heap." +#: js/blocks/FlowBlocks.js:1037 +msgid "forever" msgstr "" -#: js/ProgramBlocks.js:360 -msgid "The Load-dictionary block loads a dictionary from a file." +#: js/blocks/FlowBlocks.js:1073 +msgid "The Repeat block will repeat the contained blocks." msgstr "" -#: js/ProgramBlocks.js:372 -#.TRANS: load a dictionary from a file -msgid "load dictionary" +#: js/blocks/FlowBlocks.js:1075 +msgid "In this example the note will be played 4 times." msgstr "" -#: js/ProgramBlocks.js:390 -#: js/ProgramBlocks.js:658 -#: js/ToneBlocks.js:1025 -msgid "file" +#: js/blocks/FlowBlocks.js:1083 +msgid "repeat" msgstr "" -#: js/ProgramBlocks.js:396 -#: js/ProgramBlocks.js:501 -#: js/ProgramBlocks.js:664 -#: js/DictBlocks.js:80 -#: js/DictBlocks.js:145 -#: js/DictBlocks.js:216 -#: js/DictBlocks.js:290 -msgid "My Dictionary" +#: js/blocks/FlowBlocks.js:1123 +msgid "duplicate factor" msgstr "" -#: js/ProgramBlocks.js:444 -msgid "The file you selected does not contain a valid dictionary." +#: js/blocks/HeapBlocks.js:49 +msgid "The Heap block returns the heap." msgstr "" -#: js/ProgramBlocks.js:449 -msgid "The load dictionary block needs a load file block." +#: js/blocks/HeapBlocks.js:133 +msgid "show heap" msgstr "" -#: js/ProgramBlocks.js:466 -msgid "The Set-dictionary block loads a dictionary." +#: js/blocks/HeapBlocks.js:181 +msgid "The Heap-length block returns the length of the heap." msgstr "" -#: js/ProgramBlocks.js:477 -#.TRANS: load a dictionary from a JSON -msgid "set dictionary" +#: js/blocks/HeapBlocks.js:195 +msgid "heap length" msgstr "" -#: js/ProgramBlocks.js:546 -msgid "The block you selected does not contain a valid dictionary." +#: js/blocks/HeapBlocks.js:254 +msgid "The Heap-empty? block returns true if the heap is empty." msgstr "" -#: js/ProgramBlocks.js:550 -msgid "The set dictionary block needs a dictionary." +#: js/blocks/HeapBlocks.js:268 +#.TRANS: Is the heap empty? +msgid "heap empty?" msgstr "" -#: js/ProgramBlocks.js:567 -msgid "The Save-heap block saves the heap to a file." +#: js/blocks/HeapBlocks.js:317 +msgid "The Empty-heap block empties the heap." msgstr "" -#: js/ProgramBlocks.js:578 -#.TRANS: save the heap to a file -msgid "save heap" +#: js/blocks/HeapBlocks.js:327 +#: js/blocks/HeapBlocks.js:647 +#.TRANS: empty the heap +msgid "empty heap" msgstr "" -#: js/ProgramBlocks.js:629 -msgid "The Save-dictionary block saves a dictionary to a file." +#: js/blocks/HeapBlocks.js:371 +msgid "The Reverse-heap block reverses the order of the heap." msgstr "" -#: js/ProgramBlocks.js:640 -#.TRANS: save a dictionary to a file -msgid "save dictionary" +#: js/blocks/HeapBlocks.js:384 +#.TRANS: reverse the order of the heap +msgid "reverse heap" msgstr "" -#: js/ProgramBlocks.js:720 -msgid "The Open palette block opens a palette." +#: js/blocks/HeapBlocks.js:428 +msgid "The Index-heap block returns a value in the heap at a specified location." msgstr "" -#: js/ProgramBlocks.js:727 -msgid "open palette" +#: js/blocks/HeapBlocks.js:443 +#.TRANS: retrieve a value from the heap at index position in the heap +msgid "index heap" msgstr "" -#: js/ProgramBlocks.js:785 -msgid "The Delete block block removes a block." +#: js/blocks/HeapBlocks.js:523 +msgid "The Set-heap entry block sets a value in he heap at the specified location." msgstr "" -#: js/ProgramBlocks.js:797 -#.TRANS: Move this block to the trash. -msgid "delete block" +#: js/blocks/HeapBlocks.js:539 +#: js/blocks/ProgramBlocks.js:299 +#.TRANS: load the heap from a JSON encoding +msgid "set heap" msgstr "" -#: js/ProgramBlocks.js:861 -msgid "The Move block block moves a block." +#: js/blocks/HeapBlocks.js:619 +msgid "The Pop block removes the value at the top of the heap." msgstr "" -#: js/ProgramBlocks.js:869 -#.TRANS: Move the position of a block on the screen. -msgid "move block" +#: js/blocks/HeapBlocks.js:633 +#.TRANS: pop a value off the top of the heap +msgid "pop" msgstr "" -#: js/ProgramBlocks.js:881 -#: js/ProgramBlocks.js:1048 -msgid "block number" +#: js/blocks/HeapBlocks.js:680 +msgid "The Push block adds a value to the top of the heap." msgstr "" -#: js/ProgramBlocks.js:935 -#.TRANS: Run program beginning at this block. -msgid "run block" +#: js/blocks/HeapBlocks.js:696 +#.TRANS: push a value onto the top of the heap +msgid "push" msgstr "" -#: js/ProgramBlocks.js:1025 -msgid "The Dock block block connections two blocks." +#: js/blocks/IntervalsBlocks.js:45 +msgid "set temperament" msgstr "" -#: js/ProgramBlocks.js:1036 -#.TRANS: We can connect a block to another block. -msgid "connect blocks" +#: js/blocks/IntervalsBlocks.js:63 +#: js/blocks/MediaBlocks.js:746 +#: js/blocks/PitchBlocks.js:657 +#: js/blocks/PitchBlocks.js:935 +#: js/blocks/PitchBlocks.js:974 +#: js/blocks/PitchBlocks.js:1007 +#: js/blocks/PitchBlocks.js:1194 +#: js/blocks/PitchBlocks.js:1717 +#: js/blocks/PitchBlocks.js:1758 +#: js/blocks/PitchBlocks.js:1866 +#: js/blocks/ToneBlocks.js:1025 +#: js/turtleactions/IntervalsActions.js:114 +#.TRANS: adjusts the shift up or down by one octave (twelve half-steps in the interval between two notes, one having twice or half the frequency in Hz of the other.) +msgid "octave" msgstr "" -#: js/ProgramBlocks.js:1048 -msgid "target block" +#: js/blocks/IntervalsBlocks.js:99 +msgid "The Temperament name block is used to select a tuning method." msgstr "" -#: js/ProgramBlocks.js:1048 -msgid "connection number" +#: js/blocks/IntervalsBlocks.js:161 +msgid "doubly" msgstr "" -#: js/ProgramBlocks.js:1140 -msgid "The Make block block creates a new block." +#: js/blocks/IntervalsBlocks.js:166 +msgid "The Doubly block will double the size of an interval." msgstr "" -#: js/ProgramBlocks.js:1152 -#.TRANS: Create a new block -msgid "make block" +#: js/blocks/IntervalsBlocks.js:262 +msgid "interval number" msgstr "" -#: js/ProgramBlocks.js:1186 -#: js/ProgramBlocks.js:1227 -#: js/RhythmBlocks.js:1128 -#: js/PitchBlocks.js:972 -#: js/PitchBlocks.js:1005 -#: js/temperament.js:340 -#: js/temperament.js:362 -#: js/temperament.js:372 -#: js/temperament.js:484 -#: js/status.js:190 -#: plugins/rodi.rtp:192 -#.TRANS: a musical note consisting of pitch and duration -msgid "note" +#: js/blocks/IntervalsBlocks.js:317 +msgid "current interval" msgstr "" -#: js/ProgramBlocks.js:1285 -msgid "Cannot find block" +#: js/blocks/IntervalsBlocks.js:387 +#.TRANS: measure the distance between two pitches in semi-tones +msgid "semi-tone interval measure" msgstr "" -#: js/ProgramBlocks.js:1304 -#: js/ProgramBlocks.js:1313 -msgid "Warning: block argument type mismatch" +#: js/blocks/IntervalsBlocks.js:454 +#: js/blocks/IntervalsBlocks.js:570 +msgid "You must use two pitch blocks when measuring an interval." msgstr "" -#: js/ProgramBlocks.js:1347 -msgid "The Open project block is used to open a project from a web page." +#: js/blocks/IntervalsBlocks.js:496 +msgid "The Scalar interval block measures the distance between two notes in the current key and mode." msgstr "" -#: js/ProgramBlocks.js:1357 -msgid "open project" +#: js/blocks/IntervalsBlocks.js:502 +#.TRANS: measure the distance between two pitches in steps of musical scale +msgid "scalar interval measure" msgstr "" -#: js/ProgramBlocks.js:1410 -msgid "Please enter a valid URL." +#: js/blocks/IntervalsBlocks.js:678 +msgid "In the figure, we add sol# to sol." msgstr "" -#: js/DrumBlocks.js:59 -msgid "The Noise name block is used to select a noise synthesizer." +#: js/blocks/IntervalsBlocks.js:684 +#: js/blocks/OrnamentBlocks.js:220 +#.TRANS: calculate a relative step between notes based on semi-tones +msgid "semi-tone interval" msgstr "" -#: js/DrumBlocks.js:102 -msgid "The Drum name block is used to select a drum." +#: js/blocks/IntervalsBlocks.js:733 +msgid "The output of the example is: do, mi, sol, sol, ti, mi" msgstr "" -#: js/DrumBlocks.js:146 -msgid "The Effects name block is used to select a sound effect." +#: js/blocks/IntervalsBlocks.js:740 +#: js/blocks/WidgetBlocks.js:768 +msgid "arpeggio" msgstr "" -#: js/DrumBlocks.js:163 -msgid "noise" +#: js/blocks/IntervalsBlocks.js:931 +msgid "The Chord block calculates common chords." msgstr "" -#: js/DrumBlocks.js:177 -msgid "The Play noise block will generate white, pink, or brown noise." +#: js/blocks/IntervalsBlocks.js:933 +msgid "In the figure, we generate a C-major chord." msgstr "" -#: js/DrumBlocks.js:191 -#: js/musicutils.js:752 -#: js/synthutils.js:47 -#.TRANS: white noise synthesizer -msgid "white noise" +#: js/blocks/IntervalsBlocks.js:938 +msgid "chord" msgstr "" -#: js/DrumBlocks.js:326 -msgid "Replace every instance of a pitch with a drum sound." +#: js/blocks/IntervalsBlocks.js:990 +msgid "The Ratio Interval block calculates an interval based on a ratio." msgstr "" -#: js/DrumBlocks.js:337 -#.TRANS: map a pitch to a drum sound -msgid "map pitch to drum" +#: js/blocks/IntervalsBlocks.js:995 +msgid "ratio interval" msgstr "" -#: js/DrumBlocks.js:404 -msgid "In the example above, a kick drum sound will be played instead of sol." +#: js/blocks/IntervalsBlocks.js:1064 +msgid "In the figure, we add la to sol." msgstr "" -#: js/DrumBlocks.js:416 -#.TRANS: set the current drum sound for playback -msgid "set drum" +#: js/blocks/IntervalsBlocks.js:1120 +#.TRANS: define a custom mode +msgid "define mode" msgstr "" -#: js/DrumBlocks.js:460 -msgid "sound effect" +#: js/blocks/IntervalsBlocks.js:1173 +msgid "movable Do" msgstr "" -#: js/DrumBlocks.js:498 -msgid "You can use multiple Drum blocks within a Note block." +#: js/blocks/IntervalsBlocks.js:1224 +#.TRANS: mode length is the number of notes in the mode, e.g., 7 for major and minor scales; 12 for chromatic scales +msgid "mode length" msgstr "" -#: js/RhythmBlocks.js:182 -#: js/RhythmBlocks.js:1086 -#: js/RhythmBlocks.js:1162 -msgid "Note value must be greater than 0." +#: js/blocks/IntervalsBlocks.js:1233 +msgid "The Mode length block is the number of notes in the current scale." msgstr "" -#: js/RhythmBlocks.js:215 -#: js/RhythmBlocks.js:278 -#: js/RhythmBlocks.js:350 -#.TRANS: swing is a rhythmic variation that emphasises the offbeat -msgid "swing" +#: js/blocks/IntervalsBlocks.js:1235 +msgid "Most Western scales have 7 notes." msgstr "" -#: js/RhythmBlocks.js:355 -#.TRANS: the amount to shift to the offbeat note -msgid "swing value" +#: js/blocks/IntervalsBlocks.js:1284 +#.TRANS: the mode in music is 'major', 'minor', etc. +msgid "current mode" msgstr "" -#: js/RhythmBlocks.js:419 -msgid "The Skip notes block will cause notes to be skipped." +#: js/blocks/IntervalsBlocks.js:1337 +#.TRANS: the key is a group of pitches with which a music composition is created +msgid "current key" msgstr "" -#: js/RhythmBlocks.js:427 -#.TRANS: substitute rests on notes being skipped -msgid "skip notes" +#: js/blocks/IntervalsBlocks.js:1389 +#: js/blocks/IntervalsBlocks.js:1434 +#.TRANS: set the key and mode, e.g. C Major +msgid "set key" msgstr "" -#: js/RhythmBlocks.js:489 -#.TRANS: speed up note duration by some factor, e.g. convert 1/4 to 1/8 notes by using a factor of 2 -msgid "multiply note value" +#: js/blocks/IntervalsBlocks.js:1443 +#: js/blocks/IntervalsBlocks.js:1449 +msgid "The Set key block is used to set the key and mode," msgstr "" -#: js/RhythmBlocks.js:542 -msgid "The Tie block works on pairs of notes, combining them into one note." +#: js/blocks/IntervalsBlocks.js:1449 +msgid "eg C Major" msgstr "" -#: js/RhythmBlocks.js:550 -#.TRANS: tie notes together into one longer note -msgid "tie" +#: js/blocks/MediaBlocks.js:35 +#.TRANS: right side of the screen +msgid "right (screen)" msgstr "" -#: js/RhythmBlocks.js:591 -#: js/RhythmBlocks.js:671 -#.TRANS: a dotted note is played for 1.5x its value, e.g., 1/8. --> 3/16 -msgid "dot" +#: js/blocks/MediaBlocks.js:45 +#: js/blocks/MediaBlocks.js:56 +msgid "The Right block returns the position of the right of the canvas." msgstr "" -#: js/RhythmBlocks.js:619 -#: js/RhythmActions.js:221 -msgid "An argument of -1 results in a note value of 0." +#: js/blocks/MediaBlocks.js:97 +#.TRANS: left side of the screen +msgid "left (screen)" msgstr "" -#: js/RhythmBlocks.js:661 -msgid "The Dot block extends the duration of a note by 50%." +#: js/blocks/MediaBlocks.js:107 +#: js/blocks/MediaBlocks.js:118 +msgid "The Left block returns the position of the left of the canvas." msgstr "" -#: js/RhythmBlocks.js:663 -msgid "Eg a dotted quarter note will play for 3/8 (1/4 + 1/8) of a beat." +#: js/blocks/MediaBlocks.js:158 +msgid "top (screen)" msgstr "" -#: js/RhythmBlocks.js:765 -#.TRANS: Japanese only: note value block for drum -msgid "note value drum" +#: js/blocks/MediaBlocks.js:168 +#: js/blocks/MediaBlocks.js:179 +msgid "The Top block returns the position of the top of the canvas." msgstr "" -#: js/RhythmBlocks.js:829 -msgid "392 hertz" +#: js/blocks/MediaBlocks.js:219 +msgid "bottom (screen)" msgstr "" -#: js/RhythmBlocks.js:1119 -msgid "The Note block is a container for one or more Pitch blocks." +#: js/blocks/MediaBlocks.js:229 +#: js/blocks/MediaBlocks.js:240 +msgid "The Bottom block returns the position of the bottom of the canvas." msgstr "" -#: js/RhythmBlocks.js:1121 -msgid "The Note block specifies the duration (note value) of its contents." +#: js/blocks/MediaBlocks.js:282 +msgid "width" msgstr "" -#: js/RhythmBlocks.js:1130 -msgid "value2" +#: js/blocks/MediaBlocks.js:291 +msgid "The Width block returns the width of the canvas." msgstr "" -#: js/RhythmBlocks.js:1200 -msgid "define frequency" +#: js/blocks/MediaBlocks.js:325 +msgid "height" msgstr "" -#: js/RhythmBlocks.js:1218 -#: js/temperament.js:650 -#: js/temperament.js:1421 -msgid "octave space" +#: js/blocks/MediaBlocks.js:334 +msgid "The Height block returns the height of the canvas." msgstr "" -#: js/NumberBlocks.js:28 -msgid "The Int block returns an integer." +#: js/blocks/MediaBlocks.js:369 +#.TRANS: stops playback of an audio recording +msgid "stop play" msgstr "" -#: js/NumberBlocks.js:34 -msgid "int" +#: js/blocks/MediaBlocks.js:404 +#.TRANS: Erases the images and text +msgid "erase media" msgstr "" -#: js/NumberBlocks.js:73 -msgid "The Mod block returns the remainder from a division." +#: js/blocks/MediaBlocks.js:409 +msgid "The Erase Media block erases text and images." msgstr "" -#: js/NumberBlocks.js:79 -msgid "mod" +#: js/blocks/MediaBlocks.js:439 +#.TRANS: play an audio recording +msgid "play back" msgstr "" -#: js/NumberBlocks.js:123 -msgid "The Power block calculates a power function." +#: js/blocks/MediaBlocks.js:487 +msgid "speak" msgstr "" -#: js/NumberBlocks.js:178 -msgid "The Sqrt block returns the square root." +#: js/blocks/MediaBlocks.js:495 +msgid "The Speak block outputs to the text-to-speech synthesizer" msgstr "" -#: js/NumberBlocks.js:184 -msgid "sqrt" +#: js/blocks/MediaBlocks.js:546 +msgid "camera" msgstr "" -#: js/NumberBlocks.js:230 -msgid "The Abs block returns the absolute value." +#: js/blocks/MediaBlocks.js:551 +msgid "The Camera block connects a webcam to the Show block." msgstr "" -#: js/NumberBlocks.js:236 -msgid "abs" +#: js/blocks/MediaBlocks.js:574 +msgid "video" msgstr "" -#: js/NumberBlocks.js:277 -msgid "The Distance block returns the distance between two points. For example, between the mouse and the center of the screen." +#: js/blocks/MediaBlocks.js:579 +msgid "The Video block selects video for use with the Show block." msgstr "" -#: js/NumberBlocks.js:283 -#: plugins/rodi.rtp:310 -msgid "distance" +#: js/blocks/MediaBlocks.js:607 +msgid "The Open file block opens a file for use with the Show block." msgstr "" -#: js/NumberBlocks.js:343 -msgid "The Divide block is used to divide." +#: js/blocks/MediaBlocks.js:645 +msgid "stop media" msgstr "" -#: js/NumberBlocks.js:411 -msgid "The Multiply block is used to multiply." +#: js/blocks/MediaBlocks.js:650 +msgid "The Stop media block stops audio or video playback." msgstr "" -#: js/NumberBlocks.js:554 -msgid "The Minus block is used to subtract." +#: js/blocks/MediaBlocks.js:679 +#: js/blocks/PitchBlocks.js:1577 +#: js/widgets/musickeyboard.js:1936 +#: js/widgets/phrasemaker.js:1037 +#.TRANS: a measure of frequency: one cycle per second +msgid "hertz" msgstr "" -#: js/NumberBlocks.js:647 -msgid "The Plus block is used to add." +#: js/blocks/MediaBlocks.js:692 +#: js/blocks/WidgetBlocks.js:182 +#: js/widgets/temperament.js:506 +#: js/widgets/temperament.js:546 +#: js/widgets/temperament.js:610 +#: js/widgets/temperament.js:618 +#: js/widgets/temperament.js:1505 +#: js/widgets/timbre.js:1842 +msgid "frequency" msgstr "" -#: js/NumberBlocks.js:773 -msgid "The One-of block returns one of two choices." +#: js/blocks/MediaBlocks.js:692 +msgid "duration (ms)" msgstr "" -#: js/NumberBlocks.js:780 -#: js/PitchBlocks.js:616 -msgid "one of" +#: js/blocks/MediaBlocks.js:728 +#.TRANS: translate a note into hertz, e.g., A4 -> 440HZ +msgid "note to frequency" msgstr "" -#: js/NumberBlocks.js:782 -msgid "this" +#: js/blocks/MediaBlocks.js:736 +msgid "The To frequency block converts a pitch name and octave to Hertz." msgstr "" -#: js/NumberBlocks.js:782 -msgid "that" +#: js/blocks/MediaBlocks.js:746 +#: js/blocks/PitchBlocks.js:656 +#: js/blocks/PitchBlocks.js:934 +#: js/blocks/PitchBlocks.js:1866 +#.TRANS: name2 is name as in name of pitch (JAPANESE ONLY) +msgid "name2" msgstr "" -#: js/NumberBlocks.js:837 -msgid "The Random block returns a random number." +#: js/blocks/MediaBlocks.js:812 +msgid "The Avatar block is used to change the appearance of the mouse." msgstr "" -#: js/NumberBlocks.js:844 -msgid "random" +#: js/blocks/MediaBlocks.js:819 +msgid "The Avatar block is used to change the appearance of the turtle." msgstr "" -#: js/NumberBlocks.js:846 -msgid "min" +#: js/blocks/MediaBlocks.js:831 +#: js/blocks/MediaBlocks.js:891 +#.TRANS: a media object +msgid "size" msgstr "" -#: js/NumberBlocks.js:846 -msgid "max" +#: js/blocks/MediaBlocks.js:831 +msgid "image" msgstr "" -#: js/NumberBlocks.js:910 -msgid "The Number block holds a number." +#: js/blocks/MediaBlocks.js:880 +msgid "The Show block is used to display text or images on the canvas." msgstr "" -#: js/BoxesBlocks.js:53 -#: js/BoxesBlocks.js:59 -msgid "The Add-to block is used to add to the value stored in a box." +#: js/blocks/MediaBlocks.js:888 +#.TRANS: show1 is show as in display an image or text on the screen. +msgid "show1" msgstr "" -#: js/BoxesBlocks.js:61 -msgid "It can also be used with other blocks such as Color and Pen size." +#: js/blocks/MediaBlocks.js:891 +msgid "obj" msgstr "" -#: js/BoxesBlocks.js:73 -msgid "add" +#: js/blocks/MediaBlocks.js:938 +msgid "The Media block is used to import an image." msgstr "" -#: js/BoxesBlocks.js:75 -#: js/temperament.js:716 -msgid "to" +#: js/blocks/MediaBlocks.js:973 +msgid "The Text block holds a text string." msgstr "" -#: js/BoxesBlocks.js:75 -#: js/BoxesBlocks.js:595 -#: js/HeapBlocks.js:544 -msgid "value1" +#: js/blocks/MeterBlocks.js:34 +#.TRANS: musical meter (time signature), e.g., 4:4 +msgid "current meter" msgstr "" -#: js/BoxesBlocks.js:118 -msgid "Block does not support incrementing." +#: js/blocks/MeterBlocks.js:85 +#.TRANS: number of beats per minute +msgid "beat factor" msgstr "" -#: js/BoxesBlocks.js:152 -msgid "The Add-1-to block adds one to the value stored in a box." +#: js/blocks/MeterBlocks.js:161 +msgid "The Beats per minute block returns the current beats per minute." msgstr "" -#: js/BoxesBlocks.js:163 -msgid "add 1 to" +#: js/blocks/MeterBlocks.js:169 +#: js/widgets/status.js:152 +#.TRANS: number of beats played per minute +msgid "beats per minute2" msgstr "" -#: js/BoxesBlocks.js:211 -msgid "The Subtract-1-from block subtracts one from the value stored in a box." +#: js/blocks/MeterBlocks.js:169 +#: js/blocks/MeterBlocks.js:1056 +#: js/blocks/MeterBlocks.js:1133 +#: js/blocks/MeterBlocks.js:1211 +#.TRANS: sets tempo by defining a beat and beats per minute +msgid "beats per minute" msgstr "" -#: js/BoxesBlocks.js:222 -msgid "subtract 1 from" +#: js/blocks/MeterBlocks.js:233 +#.TRANS: count of current musical measure in meter +msgid "measure count" msgstr "" -#: js/BoxesBlocks.js:270 -#: js/BoxesBlocks.js:387 -msgid "The Box block returns the value stored in a box." +#: js/blocks/MeterBlocks.js:241 +msgid "The Measure count block returns the current measure." msgstr "" -#: js/BoxesBlocks.js:500 -#: js/BoxesBlocks.js:576 -msgid "The Store in block will store a value in a box." +#: js/blocks/MeterBlocks.js:290 +#.TRANS: count of current beat in the meter +msgid "beat count" msgstr "" -#: js/BoxesBlocks.js:652 -msgid "The Box2 block returns the value stored in Box2." +#: js/blocks/MeterBlocks.js:300 +#: js/blocks/MeterBlocks.js:311 +#: js/blocks/MeterBlocks.js:565 +#: js/blocks/MeterBlocks.js:576 +msgid "The Beat count block is the number of the current beat," msgstr "" -#: js/BoxesBlocks.js:703 -msgid "The Store in Box2 block is used to store a value in Box2." +#: js/blocks/MeterBlocks.js:313 +#: js/blocks/MeterBlocks.js:578 +msgid "eg 1, 2, 3, or 4." msgstr "" -#: js/BoxesBlocks.js:715 -msgid "store in box2" +#: js/blocks/MeterBlocks.js:368 +#.TRANS: count the number of notes +msgid "sum note values" msgstr "" -#: js/BoxesBlocks.js:761 -msgid "The Box1 block returns the value stored in Box1." +#: js/blocks/MeterBlocks.js:376 +#: js/blocks/MeterBlocks.js:440 +msgid "The Note counter block can be used to count the number of contained notes." msgstr "" -#: js/BoxesBlocks.js:812 -msgid "The Store in Box1 block is used to store a value in Box1." +#: js/blocks/MeterBlocks.js:432 +#.TRANS: count the number of notes +msgid "note counter" msgstr "" -#: js/BoxesBlocks.js:826 -msgid "store in box1" +#: js/blocks/MeterBlocks.js:496 +#.TRANS: number of whole notes that have been played +msgid "whole notes played" msgstr "" -#: js/HeapBlocks.js:49 -msgid "The Heap block returns the heap." +#: js/blocks/MeterBlocks.js:505 +msgid "The Whole notes played block returns the total number of whole notes played." msgstr "" -#: js/HeapBlocks.js:133 -msgid "show heap" +#: js/blocks/MeterBlocks.js:555 +#: js/turtleactions/DictActions.js:83 +#.TRANS: number of notes that have been played +msgid "notes played" msgstr "" -#: js/HeapBlocks.js:181 -msgid "The Heap-length block returns the length of the heap." +#: js/blocks/MeterBlocks.js:653 +msgid "The No clock block decouples the notes from the master clock." msgstr "" -#: js/HeapBlocks.js:195 -msgid "heap length" +#: js/blocks/MeterBlocks.js:661 +#.TRANS: don't lock notes to master clock +msgid "no clock" msgstr "" -#: js/HeapBlocks.js:254 -msgid "The Heap-empty? block returns true if the heap is empty." +#: js/blocks/MeterBlocks.js:700 +msgid "on weak beat do" msgstr "" -#: js/HeapBlocks.js:268 -#.TRANS: Is the heap empty? -msgid "heap empty?" +#: js/blocks/MeterBlocks.js:705 +msgid "The On-weak-beat block lets you specify actions to take on weak (off) beats." msgstr "" -#: js/HeapBlocks.js:317 -msgid "The Empty-heap block empties the heap." +#: js/blocks/MeterBlocks.js:750 +msgid "on strong beat" msgstr "" -#: js/HeapBlocks.js:327 -#: js/HeapBlocks.js:647 -#.TRANS: empty the heap -msgid "empty heap" +#: js/blocks/MeterBlocks.js:758 +msgid "The On-strong-beat block lets you specify actions to take on specified beats." msgstr "" -#: js/HeapBlocks.js:371 -msgid "The Reverse-heap block reverses the order of the heap." +#: js/blocks/MeterBlocks.js:769 +msgid "beat" msgstr "" -#: js/HeapBlocks.js:384 -#.TRANS: reverse the order of the heap -msgid "reverse heap" +#: js/blocks/MeterBlocks.js:813 +msgid "on every beat do" msgstr "" -#: js/HeapBlocks.js:428 -msgid "The Index-heap block returns a value in the heap at a specified location." +#: js/blocks/MeterBlocks.js:821 +msgid "The On-every-beat block lets you specify actions to take on every beat." msgstr "" -#: js/HeapBlocks.js:443 -#.TRANS: retrieve a value from the heap at index position in the heap -msgid "index heap" +#: js/blocks/MeterBlocks.js:874 +msgid "on every note do" msgstr "" -#: js/HeapBlocks.js:523 -msgid "The Set-heap entry block sets a value in he heap at the specified location." +#: js/blocks/MeterBlocks.js:882 +msgid "The On-every-note block lets you specify actions to take on every note." msgstr "" -#: js/HeapBlocks.js:619 -msgid "The Pop block removes the value at the top of the heap." +#: js/blocks/MeterBlocks.js:928 +#: js/blocks/MeterBlocks.js:999 +#.TRANS: sets tempo by defining a beat and beats per minute +msgid "master beats per minute" msgstr "" -#: js/HeapBlocks.js:633 -#.TRANS: pop a value off the top of the heap -msgid "pop" +#: js/blocks/MeterBlocks.js:952 +#: js/blocks/MeterBlocks.js:1078 +#: js/blocks/MeterBlocks.js:1135 +msgid "bpm" msgstr "" -#: js/HeapBlocks.js:680 -msgid "The Push block adds a value to the top of the heap." +#: js/blocks/MeterBlocks.js:952 +#: js/blocks/MeterBlocks.js:1078 +#: js/blocks/MeterBlocks.js:1135 +msgid "beat value" msgstr "" -#: js/HeapBlocks.js:696 -#.TRANS: push a value onto the top of the heap -msgid "push" +#: js/blocks/MeterBlocks.js:1024 +#: js/blocks/MeterBlocks.js:1167 +#: js/blocks/MeterBlocks.js:1241 +msgid "Beats per minute must be > 30." msgstr "" -#: js/FlowBlocks.js:41 -msgid "The Backward block runs code in reverse order (Musical retrograde)." +#: js/blocks/MeterBlocks.js:1027 +#: js/blocks/MeterBlocks.js:1170 +#: js/blocks/MeterBlocks.js:1244 +msgid "Maximum beats per minute is 1000." msgstr "" -#: js/FlowBlocks.js:48 -msgid "backward" +#: js/blocks/MeterBlocks.js:1068 +msgid "The Beats per minute block sets the number of 1/4 notes per minute." msgstr "" -#: js/FlowBlocks.js:124 -msgid "The Duplicate block will run each block multiple times." +#: js/blocks/MeterBlocks.js:1279 +#.TRANS: anacrusis +msgid "pickup" msgstr "" -#: js/FlowBlocks.js:136 -msgid "duplicate" +#: js/blocks/MeterBlocks.js:1367 +msgid "number of beats" msgstr "" -#: js/FlowBlocks.js:334 -msgid "The Default block is used inside of a Switch to define the default action." +#: js/blocks/NumberBlocks.js:28 +msgid "The Int block returns an integer." msgstr "" -#: js/FlowBlocks.js:342 -msgid "default" +#: js/blocks/NumberBlocks.js:34 +msgid "int" msgstr "" -#: js/FlowBlocks.js:361 -#: js/FlowBlocks.js:418 -msgid "The Case Block must be used inside of a Switch Block." +#: js/blocks/NumberBlocks.js:73 +msgid "The Mod block returns the remainder from a division." msgstr "" -#: js/FlowBlocks.js:389 -msgid "The Case block is used inside of a Switch to define matches." +#: js/blocks/NumberBlocks.js:79 +msgid "mod" msgstr "" -#: js/FlowBlocks.js:397 -msgid "case" +#: js/blocks/NumberBlocks.js:141 +msgid "The Power block calculates a power function." msgstr "" -#: js/FlowBlocks.js:446 -msgid "The Switch block will run the code in the matching Case." +#: js/blocks/NumberBlocks.js:196 +msgid "The Sqrt block returns the square root." msgstr "" -#: js/FlowBlocks.js:454 -msgid "switch" +#: js/blocks/NumberBlocks.js:202 +msgid "sqrt" msgstr "" -#: js/FlowBlocks.js:595 -msgid "The Stop block will stop a loop" +#: js/blocks/NumberBlocks.js:248 +msgid "The Abs block returns the absolute value." msgstr "" -#: js/FlowBlocks.js:597 -msgid "Forever, Repeat, While, or Until." +#: js/blocks/NumberBlocks.js:254 +msgid "abs" msgstr "" -#: js/FlowBlocks.js:604 -#: js/phrasemaker.js:3799 -#: js/musickeyboard.js:629 -#: js/musickeyboard.js:631 -#: js/timbre.js:417 -#: js/timbre.js:419 -#: plugins/rodi.rtp:29 -#: plugins/rodi.rtp:73 -#: plugins/rodi.rtp:413 -msgid "stop" +#: js/blocks/NumberBlocks.js:295 +msgid "The Distance block returns the distance between two points. For example, between the mouse and the center of the screen." msgstr "" -#: js/FlowBlocks.js:653 -msgid "The Waitfor block will wait until the condition is true." +#: js/blocks/NumberBlocks.js:301 +#: plugins/rodi.rtp:310 +msgid "distance" msgstr "" -#: js/FlowBlocks.js:661 -msgid "wait for" +#: js/blocks/NumberBlocks.js:361 +msgid "The Divide block is used to divide." msgstr "" -#: js/FlowBlocks.js:732 -msgid "The Until block will repeat until the condition is true." +#: js/blocks/NumberBlocks.js:441 +msgid "The Multiply block is used to multiply." msgstr "" -#: js/FlowBlocks.js:740 -msgid "until" +#: js/blocks/NumberBlocks.js:612 +msgid "The Minus block is used to subtract." msgstr "" -#: js/FlowBlocks.js:742 -#: js/FlowBlocks.js:822 -msgid "do2" +#: js/blocks/NumberBlocks.js:723 +msgid "The Plus block is used to add." msgstr "" -#: js/FlowBlocks.js:812 -msgid "The While block will repeat while the condition is true." +#: js/blocks/NumberBlocks.js:849 +msgid "The One-of block returns one of two choices." msgstr "" -#: js/FlowBlocks.js:820 -msgid "while" +#: js/blocks/NumberBlocks.js:856 +#: js/blocks/PitchBlocks.js:616 +msgid "one of" msgstr "" -#: js/FlowBlocks.js:903 -#: js/FlowBlocks.js:968 -#: js/FlowBlocks.js:979 -msgid "In this example if the mouse button is pressed a snare drum will play." +#: js/blocks/NumberBlocks.js:858 +msgid "this" msgstr "" -#: js/FlowBlocks.js:925 -#: js/FlowBlocks.js:988 -msgid "if" +#: js/blocks/NumberBlocks.js:858 +msgid "that" msgstr "" -#: js/FlowBlocks.js:927 -#: js/FlowBlocks.js:990 -msgid "then" +#: js/blocks/NumberBlocks.js:913 +msgid "The Random block returns a random number." msgstr "" -#: js/FlowBlocks.js:927 -msgid "else" +#: js/blocks/NumberBlocks.js:920 +msgid "random" msgstr "" -#: js/FlowBlocks.js:1025 -msgid "The Forever block will repeat the contained blocks forever." +#: js/blocks/NumberBlocks.js:922 +msgid "min" msgstr "" -#: js/FlowBlocks.js:1037 -msgid "forever" +#: js/blocks/NumberBlocks.js:922 +msgid "max" msgstr "" -#: js/FlowBlocks.js:1073 -msgid "The Repeat block will repeat the contained blocks." +#: js/blocks/NumberBlocks.js:986 +msgid "The Number block holds a number." msgstr "" -#: js/FlowBlocks.js:1075 -msgid "In this example the note will be played 4 times." +#: js/blocks/OrnamentBlocks.js:32 +msgid "staccato factor" msgstr "" -#: js/FlowBlocks.js:1083 -msgid "repeat" +#: js/blocks/OrnamentBlocks.js:108 +msgid "slur factor" msgstr "" -#: js/FlowBlocks.js:1123 -msgid "duplicate factor" +#: js/blocks/OrnamentBlocks.js:217 +#: js/blocks/OrnamentBlocks.js:309 +#.TRANS: the neighbor refers to a neighboring note, e.g., D is a neighbor of C +msgid "neighbor" msgstr "" -#: js/PitchBlocks.js:39 -#: js/musicutils.js:722 -#: js/musicutils.js:1117 -#: js/synthutils.js:112 -#.TRANS: square wave -msgid "square" +#: js/blocks/OrnamentBlocks.js:293 +msgid "The Neighbor block rapidly switches between neighboring pitches." msgstr "" -#: js/PitchBlocks.js:62 -#: js/ToneBlocks.js:39 -#: js/musicutils.js:723 -#: js/musicutils.js:1118 -#: js/synthutils.js:116 -#.TRANS: triangle wave -msgid "triangle" +#: js/blocks/OrnamentBlocks.js:364 +msgid "glide" msgstr "" -#: js/PitchBlocks.js:85 -#: js/musicutils.js:721 -#: js/musicutils.js:1116 -#: js/synthutils.js:110 -#.TRANS: sine wave -msgid "sine" +#: js/blocks/OrnamentBlocks.js:479 +#: js/blocks/OrnamentBlocks.js:643 +msgid "slur" msgstr "" -#: js/PitchBlocks.js:108 -#: js/musicutils.js:724 -#: js/musicutils.js:1119 -#: js/synthutils.js:114 -#.TRANS: sawtooth wave -msgid "sawtooth" +#: js/blocks/OrnamentBlocks.js:558 +#: js/blocks/OrnamentBlocks.js:710 +#.TRANS: play each note sharply detached from the others +msgid "staccato" msgstr "" -#: js/PitchBlocks.js:141 -#.TRANS: musical transposition (adjustment of pitch up or down) -msgid "transposition" +#: js/blocks/RhythmBlocks.js:182 +#: js/blocks/RhythmBlocks.js:1086 +#: js/blocks/RhythmBlocks.js:1162 +msgid "Note value must be greater than 0." msgstr "" -#: js/PitchBlocks.js:168 -#.TRANS: step down one note in current musical scale -msgid "scalar step down" +#: js/blocks/RhythmBlocks.js:215 +#: js/blocks/RhythmBlocks.js:278 +#: js/blocks/RhythmBlocks.js:350 +#.TRANS: swing is a rhythmic variation that emphasises the offbeat +msgid "swing" msgstr "" -#: js/PitchBlocks.js:172 -msgid "The Scalar step down block returns the number of semi-tones down to the previous note in the current key and mode." +#: js/blocks/RhythmBlocks.js:355 +#.TRANS: the amount to shift to the offbeat note +msgid "swing value" msgstr "" -#: js/PitchBlocks.js:190 -#.TRANS: step up one note in current musical scale -msgid "scalar step up" +#: js/blocks/RhythmBlocks.js:419 +msgid "The Skip notes block will cause notes to be skipped." msgstr "" -#: js/PitchBlocks.js:194 -msgid "The Scalar step up block returns the number of semi-tones up to the next note in the current key and mode." +#: js/blocks/RhythmBlocks.js:427 +#.TRANS: substitute rests on notes being skipped +msgid "skip notes" msgstr "" -#: js/PitchBlocks.js:212 -#.TRANS: the change measured in half-steps between the current pitch and the previous pitch -msgid "change in pitch" +#: js/blocks/RhythmBlocks.js:489 +#.TRANS: speed up note duration by some factor, e.g. convert 1/4 to 1/8 notes by using a factor of 2 +msgid "multiply note value" msgstr "" -#: js/PitchBlocks.js:216 -msgid "The Change in pitch block is the difference (in half steps) between the current pitch being played and the previous pitch played." +#: js/blocks/RhythmBlocks.js:542 +msgid "The Tie block works on pairs of notes, combining them into one note." msgstr "" -#: js/PitchBlocks.js:243 -#.TRANS: the change measured in scale-steps between the current pitch and the previous pitch -msgid "scalar change in pitch" +#: js/blocks/RhythmBlocks.js:550 +#.TRANS: tie notes together into one longer note +msgid "tie" msgstr "" -#: js/PitchBlocks.js:250 -#: js/PitchBlocks.js:432 -#: js/PitchBlocks.js:1629 -#: js/DictActions.js:89 -#: js/temperament.js:477 -#: js/temperament.js:481 -#: js/temperament.js:714 -#.TRANS: convert current note to piano key (1-88) -#.TRANS: a mapping of pitch to the 88 piano keys -msgid "pitch number" +#: js/blocks/RhythmBlocks.js:591 +#: js/blocks/RhythmBlocks.js:671 +#.TRANS: a dotted note is played for 1.5x its value, e.g., 1/8. --> 3/16 +msgid "dot" msgstr "" -#: js/PitchBlocks.js:256 -msgid "The Pitch number block is the value of the pitch of the note currently being played." +#: js/blocks/RhythmBlocks.js:619 +#: js/turtleactions/RhythmActions.js:221 +msgid "An argument of -1 results in a note value of 0." msgstr "" -#: js/PitchBlocks.js:329 -#: js/PitchBlocks.js:433 -#.TRANS: the current pitch expressed in Hertz -msgid "pitch in hertz" +#: js/blocks/RhythmBlocks.js:661 +msgid "The Dot block extends the duration of a note by 50%." msgstr "" -#: js/PitchBlocks.js:334 -msgid "The Pitch in Hertz block is the value in Hertz of the pitch of the note currently being played." +#: js/blocks/RhythmBlocks.js:663 +msgid "Eg a dotted quarter note will play for 3/8 (1/4 + 1/8) of a beat." msgstr "" -#: js/PitchBlocks.js:367 -#: js/DictActions.js:87 -msgid "current pitch" +#: js/blocks/RhythmBlocks.js:765 +#.TRANS: Japanese only: note value block for drum +msgid "note value drum" msgstr "" -#: js/PitchBlocks.js:373 -msgid "The Current Pitch block is used with the Pitch Converter block. In the example above, current pitch, sol 4, is displayed as 392 hertz." +#: js/blocks/RhythmBlocks.js:829 +msgid "392 hertz" msgstr "" -#: js/PitchBlocks.js:410 -msgid "This block converts the pitch value of the last note played into different formats such as hertz, letter name, pitch number, et al." +#: js/blocks/RhythmBlocks.js:1119 +msgid "The Note block is a container for one or more Pitch blocks." msgstr "" -#: js/PitchBlocks.js:434 -msgid "alphabet" +#: js/blocks/RhythmBlocks.js:1121 +msgid "The Note block specifies the duration (note value) of its contents." msgstr "" -#: js/PitchBlocks.js:436 -#.TRANS: Translate as "alphabet class" -msgid "letter class" +#: js/blocks/RhythmBlocks.js:1128 +#: js/blocks/PitchBlocks.js:974 +#: js/blocks/PitchBlocks.js:1007 +#: js/blocks/ProgramBlocks.js:1186 +#: js/blocks/ProgramBlocks.js:1227 +#: js/widgets/status.js:190 +#: js/widgets/temperament.js:464 +#: js/widgets/temperament.js:486 +#: js/widgets/temperament.js:496 +#: js/widgets/temperament.js:617 +#: plugins/rodi.rtp:192 +#.TRANS: a musical note consisting of pitch and duration +msgid "note" msgstr "" -#: js/PitchBlocks.js:437 -msgid "solfege class" +#: js/blocks/RhythmBlocks.js:1130 +msgid "value2" msgstr "" -#: js/PitchBlocks.js:438 -msgid "staff y" +#: js/blocks/RhythmBlocks.js:1200 +msgid "define frequency" msgstr "" -#: js/PitchBlocks.js:439 -msgid "solfege syllable" +#: js/blocks/RhythmBlocks.js:1218 +#: js/widgets/temperament.js:787 +#: js/widgets/temperament.js:1587 +msgid "octave space" msgstr "" -#: js/PitchBlocks.js:440 -msgid "pitch class" +#: js/blocks/SensorsBlocks.js:36 +msgid "The Input block prompts for keyboard input." msgstr "" -#: js/PitchBlocks.js:441 -msgid "scalar class" +#: js/blocks/SensorsBlocks.js:46 +msgid "input" msgstr "" -#: js/PitchBlocks.js:443 -msgid "nth degree" +#: js/blocks/SensorsBlocks.js:64 +msgid "Input a value" msgstr "" -#: js/PitchBlocks.js:444 -msgid "pitch to shade" +#: js/blocks/SensorsBlocks.js:126 +msgid "input value" msgstr "" -#: js/PitchBlocks.js:445 -msgid "pitch to color" +#: js/blocks/SensorsBlocks.js:131 +msgid "The Input-value block stores the input." msgstr "" -#: js/PitchBlocks.js:629 -#: js/musickeyboard.js:565 -#.TRANS: MIDI is a technical standard for electronic music -msgid "MIDI" +#: js/blocks/SensorsBlocks.js:238 +msgid "loudness" msgstr "" -#: js/PitchBlocks.js:642 -#.TRANS: set an offset associated with the numeric piano keyboard mapping -msgid "set pitch number offset" +#: js/blocks/SensorsBlocks.js:245 +msgid "The Loudness block returns the volume detected by the microphone." msgstr "" -#: js/PitchBlocks.js:645 -msgid "The Set pitch number offset block is used to set the offset for mapping pitch numbers to pitch and octave." +#: js/blocks/SensorsBlocks.js:300 +msgid "click" msgstr "" -#: js/PitchBlocks.js:679 -#.TRANS: convert piano key number (1-88) to pitch -msgid "number to pitch" +#: js/blocks/SensorsBlocks.js:306 +msgid "The Click block triggers an event if a mouse has been clicked." msgstr "" -#: js/PitchBlocks.js:682 -msgid "The Number to pitch block will convert a pitch number to a pich name." +#: js/blocks/SensorsBlocks.js:313 +msgid "The Click block triggers an event if a turtle has been clicked." msgstr "" -#: js/PitchBlocks.js:715 -#.TRANS: convert piano key number (1-88) to octave -msgid "number to octave" +#: js/blocks/SensorsBlocks.js:342 +msgid "cursor over" msgstr "" -#: js/PitchBlocks.js:717 -msgid "The Number to octave block will convert a pitch number to an octave." +#: js/blocks/SensorsBlocks.js:387 +msgid "cursor out" msgstr "" -#: js/PitchBlocks.js:726 -msgid "y to pitch" +#: js/blocks/SensorsBlocks.js:433 +msgid "cursor button down" msgstr "" -#: js/PitchBlocks.js:729 -msgid "Y to pitch block will convert a staff y position to corresponding pitch notation." +#: js/blocks/SensorsBlocks.js:477 +msgid "cursor button up" msgstr "" -#: js/PitchBlocks.js:841 -msgid "accidental selector" +#: js/blocks/SensorsBlocks.js:521 +#: js/blocks/PenBlocks.js:48 +#: plugins/rodi.rtp:219 +msgid "blue" msgstr "" -#: js/PitchBlocks.js:844 -msgid "The Accidental selector block is used to choose between double-sharp, sharp, natural, flat, and double-flat." +#: js/blocks/SensorsBlocks.js:577 +#: js/blocks/PenBlocks.js:64 +#: plugins/rodi.rtp:218 +msgid "green" msgstr "" -#: js/PitchBlocks.js:858 -msgid "Pitch can be specified in terms of ni dha pa ma ga re sa." +#: js/blocks/SensorsBlocks.js:633 +#: js/blocks/PenBlocks.js:112 +#: plugins/rodi.rtp:217 +msgid "red" msgstr "" -#: js/PitchBlocks.js:872 -msgid "Pitch can be specified in terms of C D E F G A B." +#: js/blocks/SensorsBlocks.js:638 +msgid "The Get red block returns the red component of the pixel under the mouse." msgstr "" -#: js/PitchBlocks.js:883 -msgid "solfege" +#: js/blocks/SensorsBlocks.js:644 +msgid "The Get red block returns the red component of the pixel under the turtle." msgstr "" -#: js/PitchBlocks.js:886 -msgid "Pitch can be specified in terms of do re mi fa sol la ti." +#: js/blocks/SensorsBlocks.js:685 +#: plugins/rodi.rtp:216 +msgid "pixel color" msgstr "" -#: js/PitchBlocks.js:920 -msgid "The Invert block rotates any contained notes around a target note." +#: js/blocks/SensorsBlocks.js:690 +msgid "The Get pixel block returns the color of the pixel under the mouse." msgstr "" -#: js/PitchBlocks.js:927 -#.TRANS: pitch inversion rotates a pitch around another pitch -msgid "invert" +#: js/blocks/SensorsBlocks.js:696 +msgid "The Get pixel block returns the color of the pixel under the turtle." msgstr "" -#: js/PitchBlocks.js:929 -#: js/PitchBlocks.js:935 -#: js/PitchActions.js:727 -#: js/musicutils.js:726 -#: js/musicutils.js:902 -#.TRANS: invert based on even or odd number or musical scale -#.TRANS: even numbers -msgid "even" +#: js/blocks/SensorsBlocks.js:758 +msgid "time" msgstr "" -#: js/PitchBlocks.js:935 -#: js/PitchActions.js:729 -#: js/musicutils.js:728 -#: js/musicutils.js:903 -#.TRANS: odd numbers -msgid "odd" +#: js/blocks/SensorsBlocks.js:804 +msgid "cursor y" msgstr "" -#: js/PitchBlocks.js:935 -#: js/PitchActions.js:731 -#: js/musicutils.js:729 -#: js/musicutils.js:904 -msgid "scalar" +#: js/blocks/SensorsBlocks.js:809 +msgid "The Cursor Y block returns the vertical position of the mouse." msgstr "" -#: js/PitchBlocks.js:966 -#.TRANS: pitch inversion rotates a pitch around another pitch (odd number) -msgid "invert (odd)" +#: js/blocks/SensorsBlocks.js:845 +msgid "cursor x" msgstr "" -#: js/PitchBlocks.js:999 -#.TRANS: pitch inversion rotates a pitch around another pitch (even number) -msgid "invert (even)" +#: js/blocks/SensorsBlocks.js:850 +msgid "The Cursor X block returns the horizontal position of the mouse." msgstr "" -#: js/PitchBlocks.js:1020 -#.TRANS: register is the octave of the current pitch -msgid "register" +#: js/blocks/SensorsBlocks.js:886 +msgid "mouse button" msgstr "" -#: js/PitchBlocks.js:1024 -msgid "The Register block provides an easy way to modify the register (octave) of the notes that follow it." +#: js/blocks/SensorsBlocks.js:888 +msgid "The Mouse-button block returns True if the mouse button is pressed." msgstr "" -#: js/PitchBlocks.js:1074 -msgid "The Semi-tone transposition block will shift the pitches contained inside Note blocks up (or down) by half steps." +#: js/blocks/SensorsBlocks.js:934 +msgid "to ASCII" msgstr "" -#: js/PitchBlocks.js:1076 -msgid "In the example shown above, sol is shifted up to sol#." +#: js/blocks/SensorsBlocks.js:938 +msgid "The To ASCII block converts numbers to letters." msgstr "" -#: js/PitchBlocks.js:1082 -#.TRANS: adjust the amount of shift (up or down) of a pitch -msgid "semi-tone transpose" +#: js/blocks/SensorsBlocks.js:1005 +msgid "The Keyboard block returns computer keyboard input." msgstr "" -#: js/PitchBlocks.js:1115 -msgid "The Transpose by Ratio block will shift the pitches contained inside Note blocks up (or down) by a ratio" +#: js/blocks/RhythmBlockPaletteBlocks.js:50 +#: js/blocks/RhythmBlockPaletteBlocks.js:233 +#.TRANS: rhythm block +#.TRANS: translate "rhythm1" as rhythm +msgid "rhythm1" msgstr "" -#: js/PitchBlocks.js:1121 -#.TRANS: adjust the amount of shift (up or down) of a pitch -msgid "transpose by ratio" +#: js/blocks/RhythmBlockPaletteBlocks.js:70 +#: js/blocks/RhythmBlockPaletteBlocks.js:252 +#: js/blocks/RhythmBlockPaletteBlocks.js:485 +#: js/blocks/RhythmBlockPaletteBlocks.js:554 +#: js/blocks/RhythmBlockPaletteBlocks.js:875 +msgid "number of notes" msgstr "" -#: js/PitchBlocks.js:1204 -#.TRANS: down sixth means the note is five scale degrees below current note -msgid "down sixth" +#: js/blocks/RhythmBlockPaletteBlocks.js:126 +msgid "polyphonic rhythm" msgstr "" -#: js/PitchBlocks.js:1223 -#.TRANS: down third means the note is two scale degrees below current note -msgid "down third" +#: js/blocks/RhythmBlockPaletteBlocks.js:219 +msgid "The Rhythm block is used to generate rhythm patterns." msgstr "" -#: js/PitchBlocks.js:1242 -#.TRANS: seventh means the note is the six scale degrees above current note -msgid "seventh" +#: js/blocks/RhythmBlockPaletteBlocks.js:280 +msgid "1/64 note" msgstr "" -#: js/PitchBlocks.js:1261 -#.TRANS: sixth means the note is the five scale degrees above current note -msgid "sixth" +#: js/blocks/RhythmBlockPaletteBlocks.js:304 +msgid "1/32 note" msgstr "" -#: js/PitchBlocks.js:1280 -#.TRANS: fifth means the note is the four scale degrees above current note -msgid "fifth" +#: js/blocks/RhythmBlockPaletteBlocks.js:332 +msgid "1/16 note" msgstr "" -#: js/PitchBlocks.js:1300 -#.TRANS: fourth means the note is three scale degrees above current note -msgid "fourth" +#: js/blocks/RhythmBlockPaletteBlocks.js:360 +msgid "eighth note" msgstr "" -#: js/PitchBlocks.js:1319 -#.TRANS: third means the note is two scale degrees above current note -msgid "third" +#: js/blocks/RhythmBlockPaletteBlocks.js:388 +msgid "quarter note" msgstr "" -#: js/PitchBlocks.js:1338 -#.TRANS: second means the note is one scale degree above current note -msgid "second" +#: js/blocks/RhythmBlockPaletteBlocks.js:416 +msgid "half note" msgstr "" -#: js/PitchBlocks.js:1379 -msgid "The Scalar transposition block will shift the pitches contained inside Note blocks up (or down) the scale." +#: js/blocks/RhythmBlockPaletteBlocks.js:444 +msgid "whole note" msgstr "" -#: js/PitchBlocks.js:1381 -msgid "In the example shown above, sol is shifted up to la." +#: js/blocks/RhythmBlockPaletteBlocks.js:482 +#: js/blocks/RhythmBlockPaletteBlocks.js:551 +#: js/blocks/RhythmBlockPaletteBlocks.js:602 +#.TRANS: A tuplet is a note value divided into irregular time values. +msgid "tuplet" msgstr "" -#: js/PitchBlocks.js:1388 -#.TRANS: adjust the amount of shift (up or down) of a pitch by musical scale (scalar) steps -msgid "scalar transpose" +#: js/blocks/RhythmBlockPaletteBlocks.js:768 +msgid "septuplet" msgstr "" -#: js/PitchBlocks.js:1423 -msgid "The Accidental block is used to create sharps and flats" +#: js/blocks/RhythmBlockPaletteBlocks.js:796 +msgid "quintuplet" msgstr "" -#: js/PitchBlocks.js:1430 -#.TRANS: An accidental is a modification to a pitch, e.g., sharp or flat. -msgid "accidental override" +#: js/blocks/RhythmBlockPaletteBlocks.js:824 +msgid "triplet" msgstr "" -#: js/PitchBlocks.js:1543 -msgid "The Hertz block (in combination with a Number block) will play a sound at the specified frequency." +#: js/blocks/RhythmBlockPaletteBlocks.js:851 +msgid "simple tuplet" msgstr "" -#: js/PitchBlocks.js:1633 -msgid "The Pitch Number block will play a pitch associated by its number, e.g. 0 for C and 7 for G." +#: js/blocks/RhythmBlockPaletteBlocks.js:861 +msgid "Tuplets are a collection of notes that get scaled to a specific duration." msgstr "" -#: js/PitchBlocks.js:1665 -#: js/PitchBlocks.js:1707 -#.TRANS: a numeric mapping of the notes in an octave based on the musical mode -#.TRANS: a numeric mapping of the notes in an octave based on the musical mode -msgid "nth modal pitch" +#: js/blocks/DrumBlocks.js:59 +msgid "The Noise name block is used to select a noise synthesizer." msgstr "" -#: js/PitchBlocks.js:1668 -msgid "n^th Modal Pitch takes the pattern of pitches in semitones for a mode and makes each point a degree of the mode," +#: js/blocks/DrumBlocks.js:102 +msgid "The Drum name block is used to select a drum." msgstr "" -#: js/PitchBlocks.js:1670 -msgid "starting from 1 and regardless of tonal framework (i.e. not always 8 notes in the octave)" +#: js/blocks/DrumBlocks.js:146 +msgid "The Effects name block is used to select a sound effect." msgstr "" -#: js/PitchBlocks.js:1711 -msgid "N^th Modal Pitch takes a number as an input as the n^th degree for the given mode. 0 is the first position, 1 is the second, -1 is the note before the first etc." +#: js/blocks/DrumBlocks.js:163 +msgid "noise" msgstr "" -#: js/PitchBlocks.js:1713 -msgid "The pitches change according to the mode specified without any need for respellings." +#: js/blocks/DrumBlocks.js:177 +msgid "The Play noise block will generate white, pink, or brown noise." msgstr "" -#: js/PitchBlocks.js:1752 -msgid "Scale Degree is a common convention in music. Scale Degree offers seven possible positions in the scale (1-7) and can be modified via accidentals." +#: js/blocks/DrumBlocks.js:317 +msgid "Replace every instance of a pitch with a drum sound." msgstr "" -#: js/PitchBlocks.js:1754 -msgid "Scale Degree 1 is always the first pitch in a given scale, regardless of octave." +#: js/blocks/DrumBlocks.js:328 +#.TRANS: map a pitch to a drum sound +msgid "map pitch to drum" msgstr "" -#: js/PitchBlocks.js:1776 -#.TRANS: step some number of notes in current musical scale -msgid "scalar step" +#: js/blocks/DrumBlocks.js:395 +msgid "In the example above, a kick drum sound will be played instead of sol." msgstr "" -#: js/PitchBlocks.js:1781 -msgid "The Scalar Step block (in combination with a Number block) will play the next pitch in a scale," +#: js/blocks/DrumBlocks.js:407 +#.TRANS: set the current drum sound for playback +msgid "set drum" msgstr "" -#: js/PitchBlocks.js:1783 -msgid "eg if the last note played was sol, Scalar Step 1 will play la." +#: js/blocks/DrumBlocks.js:451 +msgid "sound effect" msgstr "" -#: js/PitchBlocks.js:1818 -msgid "The Pitch block specifies the pitch name and octave of a note that together determine the frequency of the note." +#: js/blocks/DrumBlocks.js:489 +msgid "You can use multiple Drum blocks within a Note block." msgstr "" -#: js/GraphicsBlocks.js:46 -#: js/DictActions.js:77 -#: js/DictActions.js:155 -#: js/DictActions.js:189 +#: js/blocks/GraphicsBlocks.js:46 +#: js/turtleactions/DictActions.js:77 +#: js/turtleactions/DictActions.js:144 +#: js/turtleactions/DictActions.js:173 msgid "heading" msgstr "" -#: js/GraphicsBlocks.js:56 +#: js/blocks/GraphicsBlocks.js:56 msgid "The Heading block returns the orientation of the mouse." msgstr "" -#: js/GraphicsBlocks.js:62 +#: js/blocks/GraphicsBlocks.js:62 msgid "The Heading block returns the orientation of the turtle." msgstr "" -#: js/GraphicsBlocks.js:133 +#: js/blocks/GraphicsBlocks.js:133 msgid "The Y block returns the vertical position of the mouse." msgstr "" -#: js/GraphicsBlocks.js:140 +#: js/blocks/GraphicsBlocks.js:140 msgid "The Y block returns the vertical position of the turtle." msgstr "" -#: js/GraphicsBlocks.js:149 +#: js/blocks/GraphicsBlocks.js:149 msgid "y3" msgstr "" -#: js/GraphicsBlocks.js:219 +#: js/blocks/GraphicsBlocks.js:219 msgid "The X block returns the horizontal position of the mouse." msgstr "" -#: js/GraphicsBlocks.js:226 +#: js/blocks/GraphicsBlocks.js:226 msgid "The X block returns the horizontal position of the turtle." msgstr "" -#: js/GraphicsBlocks.js:235 +#: js/blocks/GraphicsBlocks.js:235 msgid "x3" msgstr "" -#: js/GraphicsBlocks.js:295 +#: js/blocks/GraphicsBlocks.js:295 msgid "scroll xy" msgstr "" -#: js/GraphicsBlocks.js:303 +#: js/blocks/GraphicsBlocks.js:303 msgid "The Scroll XY block moves the canvas." msgstr "" -#: js/GraphicsBlocks.js:313 +#: js/blocks/GraphicsBlocks.js:313 msgid "x2" msgstr "" -#: js/GraphicsBlocks.js:313 +#: js/blocks/GraphicsBlocks.js:313 msgid "y2" msgstr "" -#: js/GraphicsBlocks.js:373 -#: js/temperament.js:213 -#: js/temperament.js:241 +#: js/blocks/GraphicsBlocks.js:373 +#: js/widgets/temperament.js:319 +#: js/widgets/temperament.js:347 msgid "clear" msgstr "" -#: js/GraphicsBlocks.js:426 +#: js/blocks/GraphicsBlocks.js:426 msgid "The Control-point 2 block sets the second control point for the Bezier curve." msgstr "" -#: js/GraphicsBlocks.js:433 +#: js/blocks/GraphicsBlocks.js:433 msgid "control point 2" msgstr "" -#: js/GraphicsBlocks.js:436 -#: js/GraphicsBlocks.js:487 -#: js/GraphicsBlocks.js:534 -#: js/GraphicsBlocks.js:750 +#: js/blocks/GraphicsBlocks.js:436 +#: js/blocks/GraphicsBlocks.js:487 +#: js/blocks/GraphicsBlocks.js:534 +#: js/blocks/GraphicsBlocks.js:750 msgid "x1" msgstr "" -#: js/GraphicsBlocks.js:436 -#: js/GraphicsBlocks.js:487 -#: js/GraphicsBlocks.js:534 -#: js/GraphicsBlocks.js:750 +#: js/blocks/GraphicsBlocks.js:436 +#: js/blocks/GraphicsBlocks.js:487 +#: js/blocks/GraphicsBlocks.js:534 +#: js/blocks/GraphicsBlocks.js:750 msgid "y1" msgstr "" -#: js/GraphicsBlocks.js:477 +#: js/blocks/GraphicsBlocks.js:477 msgid "The Control-point 1 block sets the first control point for the Bezier curve." msgstr "" -#: js/GraphicsBlocks.js:484 +#: js/blocks/GraphicsBlocks.js:484 msgid "control point 1" msgstr "" -#: js/GraphicsBlocks.js:527 +#: js/blocks/GraphicsBlocks.js:527 msgid "The Bezier block draws a Bezier curve." msgstr "" -#: js/GraphicsBlocks.js:531 +#: js/blocks/GraphicsBlocks.js:531 msgid "bezier" msgstr "" -#: js/GraphicsBlocks.js:592 +#: js/blocks/GraphicsBlocks.js:592 msgid "The Arc block moves the turtle in an arc." msgstr "" -#: js/GraphicsBlocks.js:600 +#: js/blocks/GraphicsBlocks.js:600 msgid "arc" msgstr "" -#: js/GraphicsBlocks.js:603 +#: js/blocks/GraphicsBlocks.js:603 msgid "angle" msgstr "" -#: js/GraphicsBlocks.js:603 +#: js/blocks/GraphicsBlocks.js:603 msgid "radius" msgstr "" -#: js/GraphicsBlocks.js:620 -#: js/GraphicsBlocks.js:767 -#: js/GraphicsBlocks.js:1010 -#: js/GraphicsBlocks.js:1093 +#: js/blocks/GraphicsBlocks.js:620 +#: js/blocks/GraphicsBlocks.js:767 +#: js/blocks/GraphicsBlocks.js:1010 +#: js/blocks/GraphicsBlocks.js:1093 msgid "Value must be within -5000 to 5000 when Wrap Mode is off." msgstr "" -#: js/GraphicsBlocks.js:622 -#: js/GraphicsBlocks.js:769 -#: js/GraphicsBlocks.js:1012 -#: js/GraphicsBlocks.js:1095 +#: js/blocks/GraphicsBlocks.js:622 +#: js/blocks/GraphicsBlocks.js:769 +#: js/blocks/GraphicsBlocks.js:1012 +#: js/blocks/GraphicsBlocks.js:1095 msgid "Value must be within -20000 to 20000 when Wrap Mode is on." msgstr "" -#: js/GraphicsBlocks.js:660 +#: js/blocks/GraphicsBlocks.js:660 msgid "set heading" msgstr "seth" -#: js/GraphicsBlocks.js:673 +#: js/blocks/GraphicsBlocks.js:673 msgid "The Set heading block sets the heading of the turtle." msgstr "" -#: js/GraphicsBlocks.js:733 +#: js/blocks/GraphicsBlocks.js:733 msgid "The Set XY block moves the mouse to a specific position on the screen." msgstr "" -#: js/GraphicsBlocks.js:739 +#: js/blocks/GraphicsBlocks.js:739 msgid "The Set XY block moves the turtle to a specific position on the screen." msgstr "" -#: js/GraphicsBlocks.js:747 +#: js/blocks/GraphicsBlocks.js:747 msgid "set xy" msgstr "" -#: js/GraphicsBlocks.js:819 +#: js/blocks/GraphicsBlocks.js:819 msgid "The Right block turns the mouse to the right." msgstr "" -#: js/GraphicsBlocks.js:826 +#: js/blocks/GraphicsBlocks.js:826 msgid "The Right block turns the turtle to the right." msgstr "" -#: js/GraphicsBlocks.js:835 +#: js/blocks/GraphicsBlocks.js:835 msgid "right1" msgstr "" -#: js/GraphicsBlocks.js:835 +#: js/blocks/GraphicsBlocks.js:835 #: plugins/rodi.rtp:77 #: plugins/rodi.rtp:340 #: plugins/rodi.rtp:375 msgid "right" msgstr "" -#: js/GraphicsBlocks.js:899 +#: js/blocks/GraphicsBlocks.js:899 msgid "The Left block turns the mouse to the left." msgstr "" -#: js/GraphicsBlocks.js:906 +#: js/blocks/GraphicsBlocks.js:906 msgid "The Left block turns the turtle to the left." msgstr "" -#: js/GraphicsBlocks.js:915 +#: js/blocks/GraphicsBlocks.js:915 msgid "left1" msgstr "" -#: js/GraphicsBlocks.js:915 +#: js/blocks/GraphicsBlocks.js:915 #: plugins/rodi.rtp:79 #: plugins/rodi.rtp:339 #: plugins/rodi.rtp:362 msgid "left" msgstr "" -#: js/GraphicsBlocks.js:967 -#: js/temperament.js:734 -#: js/temperament.js:933 +#: js/blocks/GraphicsBlocks.js:967 +#: js/widgets/temperament.js:875 +#: js/widgets/temperament.js:1078 #: plugins/rodi.rtp:69 #: plugins/rodi.rtp:387 msgid "back" msgstr "" -#: js/GraphicsBlocks.js:976 +#: js/blocks/GraphicsBlocks.js:976 msgid "The Back block moves the mouse backward." msgstr "" -#: js/GraphicsBlocks.js:983 +#: js/blocks/GraphicsBlocks.js:983 msgid "The Back block moves the turtle backward." msgstr "" -#: js/GraphicsBlocks.js:1050 +#: js/blocks/GraphicsBlocks.js:1050 #: plugins/rodi.rtp:71 #: plugins/rodi.rtp:400 msgid "forward" msgstr "" -#: js/GraphicsBlocks.js:1059 +#: js/blocks/GraphicsBlocks.js:1059 msgid "The Forward block moves the mouse forward." msgstr "" -#: js/GraphicsBlocks.js:1066 +#: js/blocks/GraphicsBlocks.js:1066 msgid "The Forward block moves the turtle forward." msgstr "" -#: js/GraphicsBlocks.js:1154 -#: js/GraphicsBlocks.js:1172 +#: js/blocks/GraphicsBlocks.js:1154 +#: js/blocks/GraphicsBlocks.js:1172 msgid "wrap" msgstr "" -#: js/OrnamentBlocks.js:32 -msgid "staccato factor" -msgstr "" - -#: js/OrnamentBlocks.js:108 -msgid "slur factor" -msgstr "" - -#: js/OrnamentBlocks.js:217 -#: js/OrnamentBlocks.js:309 -#.TRANS: the neighbor refers to a neighboring note, e.g., D is a neighbor of C -msgid "neighbor" -msgstr "" - -#: js/OrnamentBlocks.js:293 -msgid "The Neighbor block rapidly switches between neighboring pitches." -msgstr "" - -#: js/OrnamentBlocks.js:364 -msgid "glide" -msgstr "" - -#: js/OrnamentBlocks.js:479 -#: js/OrnamentBlocks.js:643 -msgid "slur" -msgstr "" - -#: js/OrnamentBlocks.js:558 -#: js/OrnamentBlocks.js:710 -#.TRANS: play each note sharply detached from the others -msgid "staccato" -msgstr "" - -#: js/PenBlocks.js:24 +#: js/blocks/PenBlocks.js:30 msgid "purple" msgstr "" -#: js/PenBlocks.js:37 -#: js/SensorsBlocks.js:521 -#: plugins/rodi.rtp:219 -msgid "blue" -msgstr "" - -#: js/PenBlocks.js:50 -#: js/SensorsBlocks.js:577 -#: plugins/rodi.rtp:218 -msgid "green" -msgstr "" - -#: js/PenBlocks.js:63 +#: js/blocks/PenBlocks.js:80 msgid "yellow" msgstr "" -#: js/PenBlocks.js:76 +#: js/blocks/PenBlocks.js:96 #: plugins/nutrition.rtp:164 msgid "orange" msgstr "" -#: js/PenBlocks.js:89 -#: js/SensorsBlocks.js:633 -#: plugins/rodi.rtp:217 -msgid "red" -msgstr "" - -#: js/PenBlocks.js:102 +#: js/blocks/PenBlocks.js:128 msgid "white" msgstr "" -#: js/PenBlocks.js:115 +#: js/blocks/PenBlocks.js:144 msgid "black" msgstr "" -#: js/PenBlocks.js:128 +#: js/blocks/PenBlocks.js:163 msgid "begin fill" msgstr "" -#: js/PenBlocks.js:143 +#: js/blocks/PenBlocks.js:190 msgid "end fill" msgstr "" -#: js/PenBlocks.js:159 -#: js/PenBlocks.js:386 +#: js/blocks/PenBlocks.js:212 +#: js/blocks/PenBlocks.js:560 #.TRANS: set the background color msgid "background" msgstr "" -#: js/PenBlocks.js:206 -#: js/DictActions.js:71 -#: js/DictActions.js:149 -#: js/DictActions.js:186 +#: js/blocks/PenBlocks.js:274 +#: js/turtleactions/DictActions.js:71 +#: js/turtleactions/DictActions.js:138 +#: js/turtleactions/DictActions.js:170 msgid "grey" msgstr "" -#: js/PenBlocks.js:210 +#: js/blocks/PenBlocks.js:282 msgid "The Grey block returns the current pen grey value." msgstr "" -#: js/PenBlocks.js:243 -#: js/DictActions.js:69 -#: js/DictActions.js:147 -#: js/DictActions.js:185 +#: js/blocks/PenBlocks.js:340 +#: js/turtleactions/DictActions.js:69 +#: js/turtleactions/DictActions.js:136 +#: js/turtleactions/DictActions.js:169 msgid "shade" msgstr "" -#: js/PenBlocks.js:247 +#: js/blocks/PenBlocks.js:347 msgid "The Shade block returns the current pen shade value." msgstr "" -#: js/PenBlocks.js:280 -#: js/DictActions.js:67 -#: js/DictActions.js:145 -#: js/DictActions.js:184 +#: js/blocks/PenBlocks.js:405 +#: js/turtleactions/DictActions.js:67 +#: js/turtleactions/DictActions.js:134 +#: js/turtleactions/DictActions.js:168 msgid "color" msgstr "" -#: js/PenBlocks.js:285 +#: js/blocks/PenBlocks.js:415 msgid "The Color block returns the current pen color." msgstr "" -#: js/PenBlocks.js:318 -#: js/DictActions.js:73 -#: js/DictActions.js:151 -#: js/DictActions.js:187 +#: js/blocks/PenBlocks.js:470 +#: js/turtleactions/DictActions.js:73 +#: js/turtleactions/DictActions.js:140 +#: js/turtleactions/DictActions.js:171 msgid "pen size" msgstr "" -#: js/PenBlocks.js:322 +#: js/blocks/PenBlocks.js:474 msgid "The Pen size block returns the current pen size value." msgstr "" -#: js/PenBlocks.js:355 +#: js/blocks/PenBlocks.js:513 msgid "set font" msgstr "" -#: js/PenBlocks.js:358 +#: js/blocks/PenBlocks.js:518 msgid "The Set font block sets the font used by the Show block." msgstr "" -#: js/PenBlocks.js:391 +#: js/blocks/PenBlocks.js:567 msgid "The Background block sets the window background color." msgstr "" -#: js/PenBlocks.js:408 +#: js/blocks/PenBlocks.js:598 msgid "The Hollow line block creates a line with a hollow center." msgstr "" -#: js/PenBlocks.js:415 +#: js/blocks/PenBlocks.js:606 #.TRANS: draw a line logo has a hollow space down its center msgid "hollow line" msgstr "" -#: js/PenBlocks.js:462 +#: js/blocks/PenBlocks.js:675 msgid "The Fill block fills in a shape with a color." msgstr "" -#: js/PenBlocks.js:470 +#: js/blocks/PenBlocks.js:684 #.TRANS: fill in as a solid color msgid "fill" msgstr "" -#: js/PenBlocks.js:527 +#: js/blocks/PenBlocks.js:761 #.TRANS: raise up the pen so logo it does not draw when it is moved msgid "pen up" msgstr "" -#: js/PenBlocks.js:532 +#: js/blocks/PenBlocks.js:768 msgid "The Pen-up block raises the pen so that it does not draw." msgstr "" -#: js/PenBlocks.js:552 +#: js/blocks/PenBlocks.js:802 #.TRANS: put down the pen so logo it draws when it is moved msgid "pen down" msgstr "" -#: js/PenBlocks.js:557 +#: js/blocks/PenBlocks.js:810 msgid "The Pen-down block lowers the pen so that it draws." msgstr "" -#: js/PenBlocks.js:577 +#: js/blocks/PenBlocks.js:844 #.TRANS: set the width of the line drawn by the pen msgid "set pen size" msgstr "" -#: js/PenBlocks.js:583 +#: js/blocks/PenBlocks.js:854 msgid "The Set-pen-size block changes the size of the pen." msgstr "" -#: js/PenBlocks.js:623 +#: js/blocks/PenBlocks.js:913 #.TRANS: set degree of translucence of the pen color msgid "set translucency" msgstr "" -#: js/PenBlocks.js:627 +#: js/blocks/PenBlocks.js:921 msgid "The Set translucency block changes the opacity of the pen." msgstr "" -#: js/PenBlocks.js:668 +#: js/blocks/PenBlocks.js:981 msgid "set hue" msgstr "" -#: js/PenBlocks.js:672 +#: js/blocks/PenBlocks.js:989 msgid "The Set hue block changes the color of the pen." msgstr "" -#: js/PenBlocks.js:711 +#: js/blocks/PenBlocks.js:1047 msgid "set shade" msgstr "" -#: js/PenBlocks.js:717 +#: js/blocks/PenBlocks.js:1057 msgid "The Set-shade block changes the pen color from dark to light." msgstr "" -#: js/PenBlocks.js:757 +#: js/blocks/PenBlocks.js:1111 #.TRANS: set the level of vividness of the pen color msgid "set grey" msgstr "" -#: js/PenBlocks.js:761 +#: js/blocks/PenBlocks.js:1119 msgid "The Set grey block changes the vividness of the pen color." msgstr "" -#: js/PenBlocks.js:800 +#: js/blocks/PenBlocks.js:1172 msgid "set color" msgstr "" -#: js/PenBlocks.js:806 +#: js/blocks/PenBlocks.js:1182 msgid "The Set-color block changes the pen color." msgstr "" -#: js/VolumeBlocks.js:35 -msgid "synth volume" -msgstr "" - -#: js/VolumeBlocks.js:39 -msgid "The Synth volume block returns the current volume of the current synthesizer." -msgstr "" - -#: js/VolumeBlocks.js:47 -#: js/musicutils.js:730 -#: js/synthutils.js:56 -#.TRANS: musical instrument -msgid "piano" -msgstr "" - -#: js/VolumeBlocks.js:105 -msgid "master volume" -msgstr "" - -#: js/VolumeBlocks.js:109 -msgid "The Master volume block returns the master volume." -msgstr "" - -#: js/VolumeBlocks.js:355 -#: js/VolumeBlocks.js:524 -msgid "set synth volume" -msgstr "" - -#: js/VolumeBlocks.js:362 -#: js/VolumeBlocks.js:545 -msgid "synth" -msgstr "" - -#: js/VolumeBlocks.js:403 -#: js/VolumeBlocks.js:577 -#: js/VolumeBlocks.js:740 -#: js/VolumeActions.js:173 -msgid "Setting volume to 0." -msgstr "" - -#: js/VolumeBlocks.js:440 -msgid "Synth not found" -msgstr "" - -#: js/VolumeBlocks.js:494 -msgid "set drum volume" -msgstr "" - -#: js/VolumeBlocks.js:530 -msgid "The Set synth volume block will change the volume of a particular synth," -msgstr "" - -#: js/VolumeBlocks.js:532 -msgid "eg guitar violin snare drum etc." -msgstr "" - -#: js/VolumeBlocks.js:534 -msgid "The default volume is 50." -msgstr "" - -#: js/VolumeBlocks.js:536 -msgid "The range is 0 for silence to 100 for full volume." -msgstr "" - -#: js/VolumeBlocks.js:597 -msgid "set panning" -msgstr "" - -#: js/VolumeBlocks.js:603 -msgid "The Set Panning block sets the panning for all synthesizers." -msgstr "" - -#: js/VolumeBlocks.js:625 -msgid "Warning: Sound is coming out from only the left or right side." -msgstr "" - -#: js/VolumeBlocks.js:647 -#: js/VolumeBlocks.js:695 -msgid "set master volume" -msgstr "" - -#: js/VolumeBlocks.js:653 -msgid "The Set master volume block sets the volume for all synthesizers." -msgstr "" - -#: js/VolumeBlocks.js:784 -msgid "The Set relative volume block changes the volume of the contained notes." -msgstr "" - -#: js/VolumeBlocks.js:791 -msgid "set relative volume" -msgstr "" - -#: js/VolumeBlocks.js:857 -msgid "decrescendo" -msgstr "" - -#: js/VolumeBlocks.js:921 -msgid "crescendo" -msgstr "" - -#: js/ToneBlocks.js:34 -msgid "oscillator" -msgstr "" - -#: js/ToneBlocks.js:44 -#: js/timbre.js:1562 -#.TRANS: Partials refers to the number of sine waves combined into the sound. -msgid "partials" -msgstr "" - -#: js/ToneBlocks.js:76 -msgid "You are adding multiple oscillator blocks." -msgstr "" - -#: js/ToneBlocks.js:144 -#: js/timbre.js:1225 -#.TRANS: a duo synthesizer combines a synth with a sequencer -msgid "duo synth" -msgstr "" - -#: js/ToneBlocks.js:149 -msgid "The Duo synth block is a duo-frequency modulator used to define a timbre." -msgstr "" - -#: js/ToneBlocks.js:157 -#: js/timbre.js:1476 -msgid "vibrato rate" -msgstr "" - -#: js/ToneBlocks.js:157 -msgid "vibrato intensity" -msgstr "" - -#: js/ToneBlocks.js:185 -#: js/timbre.js:1221 -#.TRANS: AM (amplitude modulation) synthesizer -msgid "AM synth" -msgstr "" - -#: js/ToneBlocks.js:189 -msgid "The AM synth block is an amplitude modulator used to define a timbre." -msgstr "" - -#: js/ToneBlocks.js:224 -#: js/timbre.js:1223 -#.TRANS: FM (frequency modulation) synthesizer -msgid "FM synth" -msgstr "" - -#: js/ToneBlocks.js:228 -msgid "The FM synth block is a frequency modulator used to define a timbre." +#: js/blocks/PitchBlocks.js:141 +#.TRANS: musical transposition (adjustment of pitch up or down) +msgid "transposition" msgstr "" -#: js/ToneBlocks.js:262 -msgid "partial" +#: js/blocks/PitchBlocks.js:168 +#.TRANS: step down one note in current musical scale +msgid "scalar step down" msgstr "" -#: js/ToneBlocks.js:265 -msgid "The Partial block is used to specify a weight for a specific partial harmonic." +#: js/blocks/PitchBlocks.js:172 +msgid "The Scalar step down block returns the number of semi-tones down to the previous note in the current key and mode." msgstr "" -#: js/ToneBlocks.js:284 -#.TRANS: partials are weighted components in a harmonic series -msgid "Partial weight must be between 0 and 1." +#: js/blocks/PitchBlocks.js:190 +#.TRANS: step up one note in current musical scale +msgid "scalar step up" msgstr "" -#: js/ToneBlocks.js:297 -#.TRANS: partials are weighted components in a harmonic series -msgid "Partial block should be used inside of a Weighted-partials block." +#: js/blocks/PitchBlocks.js:194 +msgid "The Scalar step up block returns the number of semi-tones up to the next note in the current key and mode." msgstr "" -#: js/ToneBlocks.js:325 -#.TRANS: partials are weighted components in a harmonic series -msgid "weighted partials" +#: js/blocks/PitchBlocks.js:212 +#.TRANS: the change measured in half-steps between the current pitch and the previous pitch +msgid "change in pitch" msgstr "" -#: js/ToneBlocks.js:383 -msgid "The Harmonic block will add harmonics to the contained notes." +#: js/blocks/PitchBlocks.js:216 +msgid "The Change in pitch block is the difference (in half steps) between the current pitch being played and the previous pitch played." msgstr "" -#: js/ToneBlocks.js:390 -#.TRANS: A harmonic is an overtone. -msgid "harmonic" +#: js/blocks/PitchBlocks.js:243 +#.TRANS: the change measured in scale-steps between the current pitch and the previous pitch +msgid "scalar change in pitch" msgstr "" -#: js/ToneBlocks.js:431 -msgid "The Distortion block adds distortion to the pitch." +#: js/blocks/PitchBlocks.js:250 +#: js/blocks/PitchBlocks.js:432 +#: js/blocks/PitchBlocks.js:1667 +#: js/turtleactions/DictActions.js:89 +#: js/widgets/temperament.js:610 +#: js/widgets/temperament.js:614 +#: js/widgets/temperament.js:855 +#.TRANS: convert current note to piano key (1-88) +#.TRANS: a mapping of pitch to the 88 piano keys +msgid "pitch number" msgstr "" -#: js/ToneBlocks.js:438 -#: js/timbre.js:2100 -#.TRANS: distortion is an alteration in the sound -msgid "distortion" +#: js/blocks/PitchBlocks.js:256 +msgid "The Pitch number block is the value of the pitch of the note currently being played." msgstr "" -#: js/ToneBlocks.js:487 -msgid "The Tremolo block adds a wavering effect." +#: js/blocks/PitchBlocks.js:329 +#: js/blocks/PitchBlocks.js:433 +#.TRANS: the current pitch expressed in Hertz +msgid "pitch in hertz" msgstr "" -#: js/ToneBlocks.js:495 -#: js/timbre.js:2092 -#.TRANS: a wavering effect in a musical tone -msgid "tremolo" +#: js/blocks/PitchBlocks.js:334 +msgid "The Pitch in Hertz block is the value in Hertz of the pitch of the note currently being played." msgstr "" -#: js/ToneBlocks.js:500 -#: js/ToneBlocks.js:569 -#: js/ToneBlocks.js:630 -#: js/ToneBlocks.js:689 -#: js/timbre.js:2134 -#: js/timbre.js:2222 -#: js/timbre.js:2317 -#: js/timbre.js:2419 -#.TRANS: rate at which tremolo wavers -msgid "rate" +#: js/blocks/PitchBlocks.js:367 +#: js/turtleactions/DictActions.js:87 +msgid "current pitch" msgstr "" -#: js/ToneBlocks.js:502 -#: js/ToneBlocks.js:630 -#: js/timbre.js:2137 -#: js/timbre.js:2328 -#.TRANS: amplitude of tremolo waver -msgid "depth" +#: js/blocks/PitchBlocks.js:373 +msgid "The Current Pitch block is used with the Pitch Converter block. In the example above, current pitch, sol 4, is displayed as 392 hertz." msgstr "" -#: js/ToneBlocks.js:559 -msgid "The Phaser block adds a sweeping sound." +#: js/blocks/PitchBlocks.js:410 +msgid "This block converts the pitch value of the last note played into different formats such as hertz, letter name, pitch number, et al." msgstr "" -#: js/ToneBlocks.js:566 -#: js/timbre.js:2098 -#.TRANS: alter the phase of the sound -msgid "phaser" +#: js/blocks/PitchBlocks.js:434 +msgid "alphabet" msgstr "" -#: js/ToneBlocks.js:569 -#: js/timbre.js:2422 -msgid "octaves" +#: js/blocks/PitchBlocks.js:436 +#.TRANS: Translate as "alphabet class" +msgid "letter class" msgstr "" -#: js/ToneBlocks.js:569 -#: js/timbre.js:2425 -msgid "base frequency" +#: js/blocks/PitchBlocks.js:437 +msgid "solfege class" msgstr "" -#: js/ToneBlocks.js:619 -msgid "The Chorus block adds a chorus effect." +#: js/blocks/PitchBlocks.js:438 +msgid "staff y" msgstr "" -#: js/ToneBlocks.js:627 -#: js/timbre.js:2096 -#.TRANS: musical effect to simulate a choral sound -msgid "chorus" +#: js/blocks/PitchBlocks.js:439 +msgid "solfege syllable" msgstr "" -#: js/ToneBlocks.js:630 -msgid "delay" +#: js/blocks/PitchBlocks.js:440 +msgid "pitch class" msgstr "" -#: js/ToneBlocks.js:678 -msgid "The Vibrato block adds a rapid, slight variation in pitch." +#: js/blocks/PitchBlocks.js:441 +msgid "scalar class" msgstr "" -#: js/ToneBlocks.js:686 -#: js/timbre.js:2094 -#.TRANS: a rapid, slight variation in pitch -msgid "vibrato" +#: js/blocks/PitchBlocks.js:443 +msgid "nth degree" msgstr "" -#: js/ToneBlocks.js:689 -#: js/timbre.js:2221 -msgid "intensity" +#: js/blocks/PitchBlocks.js:444 +msgid "pitch to shade" msgstr "" -#: js/ToneBlocks.js:733 -#.TRANS: select synthesizer -msgid "set synth" +#: js/blocks/PitchBlocks.js:445 +msgid "pitch to color" msgstr "" -#: js/ToneBlocks.js:804 -msgid "synth name" +#: js/blocks/PitchBlocks.js:629 +#: js/widgets/musickeyboard.js:735 +#.TRANS: MIDI is a technical standard for electronic music +msgid "MIDI" msgstr "" -#: js/ToneBlocks.js:842 -msgid "set default instrument" +#: js/blocks/PitchBlocks.js:642 +#.TRANS: set an offset associated with the numeric piano keyboard mapping +msgid "set pitch number offset" msgstr "" -#: js/ToneBlocks.js:895 -#: js/ToneBlocks.js:943 -#.TRANS: set the characteristics of a custom instrument -msgid "set instrument" +#: js/blocks/PitchBlocks.js:645 +msgid "The Set pitch number offset block is used to set the offset for mapping pitch numbers to pitch and octave." msgstr "" -#: js/ToneBlocks.js:898 -#: js/ToneBlocks.js:926 -#: js/ToneBlocks.js:932 -msgid "The Set instrument block selects a voice for the synthesizer," +#: js/blocks/PitchBlocks.js:679 +#.TRANS: convert piano key number (1-88) to pitch +msgid "number to pitch" msgstr "" -#: js/ToneBlocks.js:900 -#: js/ToneBlocks.js:934 -msgid "eg guitar piano violin or cello." +#: js/blocks/PitchBlocks.js:682 +msgid "The Number to pitch block will convert a pitch number to a pich name." msgstr "" -#: js/ToneBlocks.js:1015 -msgid "Import a sound file to use as an instrument and set its pitch center." +#: js/blocks/PitchBlocks.js:715 +#.TRANS: convert piano key number (1-88) to octave +msgid "number to octave" msgstr "" -#: js/ToneBlocks.js:1110 -msgid "Upload a sound file to connect with the sample block." +#: js/blocks/PitchBlocks.js:717 +msgid "The Number to octave block will convert a pitch number to an octave." msgstr "" -#: js/MeterBlocks.js:34 -#.TRANS: musical meter (time signature), e.g., 4:4 -msgid "current meter" +#: js/blocks/PitchBlocks.js:726 +msgid "y to pitch" msgstr "" -#: js/MeterBlocks.js:85 -#.TRANS: number of beats per minute -msgid "beat factor" +#: js/blocks/PitchBlocks.js:729 +msgid "Y to pitch block will convert a staff y position to corresponding pitch notation." msgstr "" -#: js/MeterBlocks.js:161 -msgid "The Beats per minute block returns the current beats per minute." +#: js/blocks/PitchBlocks.js:841 +msgid "accidental selector" msgstr "" -#: js/MeterBlocks.js:169 -#: js/status.js:152 -#.TRANS: number of beats played per minute -msgid "beats per minute2" +#: js/blocks/PitchBlocks.js:844 +msgid "The Accidental selector block is used to choose between double-sharp, sharp, natural, flat, and double-flat." msgstr "" -#: js/MeterBlocks.js:169 -#: js/MeterBlocks.js:1056 -#: js/MeterBlocks.js:1133 -#: js/MeterBlocks.js:1211 -#.TRANS: sets tempo by defining a beat and beats per minute -msgid "beats per minute" +#: js/blocks/PitchBlocks.js:858 +msgid "Pitch can be specified in terms of ni dha pa ma ga re sa." msgstr "" -#: js/MeterBlocks.js:233 -#.TRANS: count of current musical measure in meter -msgid "measure count" +#: js/blocks/PitchBlocks.js:872 +msgid "Pitch can be specified in terms of C D E F G A B." msgstr "" -#: js/MeterBlocks.js:241 -msgid "The Measure count block returns the current measure." +#: js/blocks/PitchBlocks.js:884 +msgid "solfege" msgstr "" -#: js/MeterBlocks.js:290 -#.TRANS: count of current beat in the meter -msgid "beat count" +#: js/blocks/PitchBlocks.js:887 +msgid "Pitch can be specified in terms of do re mi fa sol la ti." msgstr "" -#: js/MeterBlocks.js:300 -#: js/MeterBlocks.js:311 -#: js/MeterBlocks.js:565 -#: js/MeterBlocks.js:576 -msgid "The Beat count block is the number of the current beat," +#: js/blocks/PitchBlocks.js:922 +msgid "The Invert block rotates any contained notes around a target note." msgstr "" -#: js/MeterBlocks.js:313 -#: js/MeterBlocks.js:578 -msgid "eg 1, 2, 3, or 4." +#: js/blocks/PitchBlocks.js:929 +#.TRANS: pitch inversion rotates a pitch around another pitch +msgid "invert" msgstr "" -#: js/MeterBlocks.js:368 -#.TRANS: count the number of notes -msgid "sum note values" +#: js/blocks/PitchBlocks.js:968 +#.TRANS: pitch inversion rotates a pitch around another pitch (odd number) +msgid "invert (odd)" msgstr "" -#: js/MeterBlocks.js:376 -#: js/MeterBlocks.js:440 -msgid "The Note counter block can be used to count the number of contained notes." +#: js/blocks/PitchBlocks.js:1001 +#.TRANS: pitch inversion rotates a pitch around another pitch (even number) +msgid "invert (even)" msgstr "" -#: js/MeterBlocks.js:432 -#.TRANS: count the number of notes -msgid "note counter" +#: js/blocks/PitchBlocks.js:1022 +#.TRANS: register is the octave of the current pitch +msgid "register" msgstr "" -#: js/MeterBlocks.js:496 -#.TRANS: number of whole notes that have been played -msgid "whole notes played" +#: js/blocks/PitchBlocks.js:1026 +msgid "The Register block provides an easy way to modify the register (octave) of the notes that follow it." msgstr "" -#: js/MeterBlocks.js:505 -msgid "The Whole notes played block returns the total number of whole notes played." +#: js/blocks/PitchBlocks.js:1047 +#.TRANS: cents are units used to specify the ratio between pitches. There are 100 cents between successive notes. +msgid "50 cents" msgstr "" -#: js/MeterBlocks.js:555 -#: js/DictActions.js:83 -#.TRANS: number of notes that have been played -msgid "notes played" +#: js/blocks/PitchBlocks.js:1102 +msgid "The Semi-tone transposition block will shift the pitches contained inside Note blocks up (or down) by half steps." msgstr "" -#: js/MeterBlocks.js:653 -msgid "The No clock block decouples the notes from the master clock." +#: js/blocks/PitchBlocks.js:1104 +msgid "In the example shown above, sol is shifted up to sol#." msgstr "" -#: js/MeterBlocks.js:661 -#.TRANS: don't lock notes to master clock -msgid "no clock" +#: js/blocks/PitchBlocks.js:1110 +#.TRANS: adjust the amount of shift (up or down) of a pitch +msgid "semi-tone transpose" msgstr "" -#: js/MeterBlocks.js:700 -msgid "on weak beat do" +#: js/blocks/PitchBlocks.js:1143 +msgid "The Transpose by Ratio block will shift the pitches contained inside Note blocks up (or down) by a ratio" msgstr "" -#: js/MeterBlocks.js:705 -msgid "The On-weak-beat block lets you specify actions to take on weak (off) beats." +#: js/blocks/PitchBlocks.js:1149 +#.TRANS: adjust the amount of shift (up or down) of a pitch +msgid "transpose by ratio" msgstr "" -#: js/MeterBlocks.js:750 -msgid "on strong beat" +#: js/blocks/PitchBlocks.js:1232 +#.TRANS: down sixth means the note is five scale degrees below current note +msgid "down sixth" msgstr "" -#: js/MeterBlocks.js:758 -msgid "The On-strong-beat block lets you specify actions to take on specified beats." +#: js/blocks/PitchBlocks.js:1251 +#.TRANS: down third means the note is two scale degrees below current note +msgid "down third" msgstr "" -#: js/MeterBlocks.js:769 -msgid "beat" +#: js/blocks/PitchBlocks.js:1270 +#.TRANS: seventh means the note is the six scale degrees above current note +msgid "seventh" msgstr "" -#: js/MeterBlocks.js:813 -msgid "on every beat do" +#: js/blocks/PitchBlocks.js:1289 +#.TRANS: sixth means the note is the five scale degrees above current note +msgid "sixth" msgstr "" -#: js/MeterBlocks.js:821 -msgid "The On-every-beat block lets you specify actions to take on every beat." +#: js/blocks/PitchBlocks.js:1308 +#.TRANS: fifth means the note is the four scale degrees above current note +msgid "fifth" msgstr "" -#: js/MeterBlocks.js:874 -msgid "on every note do" +#: js/blocks/PitchBlocks.js:1328 +#.TRANS: fourth means the note is three scale degrees above current note +msgid "fourth" msgstr "" -#: js/MeterBlocks.js:882 -msgid "The On-every-note block lets you specify actions to take on every note." +#: js/blocks/PitchBlocks.js:1347 +#.TRANS: third means the note is two scale degrees above current note +msgid "third" msgstr "" -#: js/MeterBlocks.js:928 -#: js/MeterBlocks.js:999 -#.TRANS: sets tempo by defining a beat and beats per minute -msgid "master beats per minute" +#: js/blocks/PitchBlocks.js:1366 +#.TRANS: second means the note is one scale degree above current note +msgid "second" msgstr "" -#: js/MeterBlocks.js:952 -#: js/MeterBlocks.js:1078 -#: js/MeterBlocks.js:1135 -msgid "bpm" +#: js/blocks/PitchBlocks.js:1407 +msgid "The Scalar transposition block will shift the pitches contained inside Note blocks up (or down) the scale." msgstr "" -#: js/MeterBlocks.js:952 -#: js/MeterBlocks.js:1078 -#: js/MeterBlocks.js:1135 -msgid "beat value" +#: js/blocks/PitchBlocks.js:1409 +msgid "In the example shown above, sol is shifted up to la." msgstr "" -#: js/MeterBlocks.js:1024 -#: js/MeterBlocks.js:1167 -#: js/MeterBlocks.js:1241 -msgid "Beats per minute must be > 30." +#: js/blocks/PitchBlocks.js:1416 +#.TRANS: adjust the amount of shift (up or down) of a pitch by musical scale (scalar) steps +msgid "scalar transpose" msgstr "" -#: js/MeterBlocks.js:1027 -#: js/MeterBlocks.js:1170 -#: js/MeterBlocks.js:1244 -msgid "Maximum beats per minute is 1000." +#: js/blocks/PitchBlocks.js:1451 +msgid "The Accidental block is used to create sharps and flats" msgstr "" -#: js/MeterBlocks.js:1068 -msgid "The Beats per minute block sets the number of 1/4 notes per minute." +#: js/blocks/PitchBlocks.js:1458 +#.TRANS: An accidental is a modification to a pitch, e.g., sharp or flat. +msgid "accidental override" msgstr "" -#: js/MeterBlocks.js:1279 -#.TRANS: anacrusis -msgid "pickup" +#: js/blocks/PitchBlocks.js:1581 +msgid "The Hertz block (in combination with a Number block) will play a sound at the specified frequency." msgstr "" -#: js/MeterBlocks.js:1367 -msgid "number of beats" +#: js/blocks/PitchBlocks.js:1671 +msgid "The Pitch Number block will play a pitch associated by its number, e.g. 0 for C and 7 for G." msgstr "" -#: js/DictBlocks.js:77 -msgid "show dictionary" +#: js/blocks/PitchBlocks.js:1703 +#: js/blocks/PitchBlocks.js:1745 +#.TRANS: a numeric mapping of the notes in an octave based on the musical mode +#.TRANS: a numeric mapping of the notes in an octave based on the musical mode +msgid "nth modal pitch" msgstr "" -#: js/DictBlocks.js:129 -msgid "The Dictionary block returns a dictionary." +#: js/blocks/PitchBlocks.js:1706 +msgid "n^th Modal Pitch takes the pattern of pitches in semitones for a mode and makes each point a degree of the mode," msgstr "" -#: js/DictBlocks.js:197 -#: js/DictBlocks.js:339 -msgid "The Get-dict block returns a value in the dictionary for a specified key." +#: js/blocks/PitchBlocks.js:1708 +msgid "starting from 1 and regardless of tonal framework (i.e. not always 8 notes in the octave)" msgstr "" -#: js/DictBlocks.js:212 -#: js/DictBlocks.js:354 -#.TRANS: retrieve a value from the dictionary with a given key -msgid "get value" +#: js/blocks/PitchBlocks.js:1749 +msgid "N^th Modal Pitch takes a number as an input as the n^th degree for the given mode. 0 is the first position, 1 is the second, -1 is the note before the first etc." msgstr "" -#: js/DictBlocks.js:215 -#: js/DictBlocks.js:216 -#: js/DictBlocks.js:289 -#: js/DictBlocks.js:290 -#: js/DictBlocks.js:357 -#: js/DictBlocks.js:430 -#: js/DictBlocks.js:431 -msgid "key2" +#: js/blocks/PitchBlocks.js:1751 +msgid "The pitches change according to the mode specified without any need for respellings." msgstr "" -#: js/DictBlocks.js:271 -#: js/DictBlocks.js:411 -msgid "The Set-dict block sets a value in the dictionary for a specified key." +#: js/blocks/PitchBlocks.js:1790 +msgid "Scale Degree is a common convention in music. Scale Degree offers seven possible positions in the scale (1-7) and can be modified via accidentals." msgstr "" -#: js/DictBlocks.js:286 -#: js/DictBlocks.js:427 -#.TRANS: set a value in the dictionary for a given key -msgid "set value" +#: js/blocks/PitchBlocks.js:1792 +msgid "Scale Degree 1 is always the first pitch in a given scale, regardless of octave." msgstr "" -#: js/ExtrasBlocks.js:33 -msgid "fraction" +#: js/blocks/PitchBlocks.js:1814 +#.TRANS: step some number of notes in current musical scale +msgid "scalar step" msgstr "" -#: js/ExtrasBlocks.js:36 -msgid "Convert a float to a fraction" +#: js/blocks/PitchBlocks.js:1819 +msgid "The Scalar Step block (in combination with a Number block) will play the next pitch in a scale," msgstr "" -#: js/ExtrasBlocks.js:93 -msgid "save as ABC" +#: js/blocks/PitchBlocks.js:1821 +msgid "eg if the last note played was sol, Scalar Step 1 will play la." msgstr "" -#: js/ExtrasBlocks.js:96 -#: js/ExtrasBlocks.js:132 -#: js/ExtrasBlocks.js:168 -msgid "title" +#: js/blocks/PitchBlocks.js:1857 +msgid "The Pitch block specifies the pitch name and octave of a note that together determine the frequency of the note." msgstr "" -#: js/ExtrasBlocks.js:129 -msgid "save as Lilypond" +#: js/blocks/ProgramBlocks.js:33 +msgid "The Load-heap-from-app block loads the heap from a web page." msgstr "" -#: js/ExtrasBlocks.js:165 -msgid "save as SVG" +#: js/blocks/ProgramBlocks.js:44 +#.TRANS: load the heap contents from a URL +msgid "load heap from App" msgstr "" -#: js/ExtrasBlocks.js:216 -msgid "no background" +#: js/blocks/ProgramBlocks.js:95 +msgid "Error parsing JSON data:" msgstr "" -#: js/ExtrasBlocks.js:219 -msgid "The No background block eliminates the background from the saved SVG output." +#: js/blocks/ProgramBlocks.js:100 +msgid "404: Page not found" msgstr "" -#: js/ExtrasBlocks.js:247 -msgid "show blocks" +#: js/blocks/ProgramBlocks.js:133 +msgid "The Save-heap-to-app block saves the heap to a web page." msgstr "" -#: js/ExtrasBlocks.js:249 -msgid "The Show blocks block shows the blocks." +#: js/blocks/ProgramBlocks.js:144 +#.TRANS: save the heap contents to a URL +msgid "save heap to App" msgstr "" -#: js/ExtrasBlocks.js:274 -msgid "hide blocks" +#: js/blocks/ProgramBlocks.js:189 +msgid "Cannot find a valid heap for" msgstr "" -#: js/ExtrasBlocks.js:276 -msgid "The Hide blocks block hides the blocks." +#: js/blocks/ProgramBlocks.js:206 +msgid "The Load-heap block loads the heap from a file." msgstr "" -#: js/ExtrasBlocks.js:305 -#: js/ExtrasBlocks.js:335 -msgid "The Space block is used to add space between blocks." +#: js/blocks/ProgramBlocks.js:217 +#.TRANS: load the heap from a file +msgid "load heap" msgstr "" -#: js/ExtrasBlocks.js:373 -msgid "wait" +#: js/blocks/ProgramBlocks.js:270 +msgid "The file you selected does not contain a valid heap." msgstr "" -#: js/ExtrasBlocks.js:376 -msgid "The Wait block pauses the program for a specified number of seconds." +#: js/blocks/ProgramBlocks.js:275 +msgid "The loadHeap block needs a loadFile block." msgstr "" -#: js/ExtrasBlocks.js:430 -#: plugins/facebook.rtp:30 -msgid "comment" +#: js/blocks/ProgramBlocks.js:291 +msgid "The Set-heap block loads the heap." msgstr "" -#: js/ExtrasBlocks.js:466 -msgid "print" +#: js/blocks/ProgramBlocks.js:340 +msgid "The block you selected does not contain a valid heap." msgstr "" -#: js/ExtrasBlocks.js:473 -msgid "The Print block displays text at the top of the screen." +#: js/blocks/ProgramBlocks.js:343 +msgid "The Set heap block needs a heap." msgstr "" -#: js/ExtrasBlocks.js:579 -msgid "display grid" +#: js/blocks/ProgramBlocks.js:360 +msgid "The Load-dictionary block loads a dictionary from a file." msgstr "" -#: js/ExtrasBlocks.js:584 -msgid "The Display Grid Block changes the grid type" +#: js/blocks/ProgramBlocks.js:372 +#.TRANS: load a dictionary from a file +msgid "load dictionary" msgstr "" -#: js/ExtrasBlocks.js:686 -#: js/ExtrasBlocks.js:705 -#: js/ExtrasBlocks.js:728 -#: js/ExtrasBlocks.js:751 -#: js/ExtrasBlocks.js:769 -#: js/ExtrasBlocks.js:788 -#: js/ExtrasBlocks.js:807 -#: js/ExtrasBlocks.js:826 -msgid "unknown" +#: js/blocks/ProgramBlocks.js:390 +#: js/blocks/ProgramBlocks.js:658 +#: js/blocks/ToneBlocks.js:1025 +msgid "file" msgstr "" -#: js/SensorsBlocks.js:36 -msgid "The Input block prompts for keyboard input." +#: js/blocks/ProgramBlocks.js:444 +msgid "The file you selected does not contain a valid dictionary." msgstr "" -#: js/SensorsBlocks.js:46 -msgid "input" +#: js/blocks/ProgramBlocks.js:449 +msgid "The load dictionary block needs a load file block." msgstr "" -#: js/SensorsBlocks.js:64 -msgid "Input a value" +#: js/blocks/ProgramBlocks.js:466 +msgid "The Set-dictionary block loads a dictionary." msgstr "" -#: js/SensorsBlocks.js:126 -msgid "input value" +#: js/blocks/ProgramBlocks.js:477 +#.TRANS: load a dictionary from a JSON +msgid "set dictionary" msgstr "" -#: js/SensorsBlocks.js:131 -msgid "The Input-value block stores the input." +#: js/blocks/ProgramBlocks.js:546 +msgid "The block you selected does not contain a valid dictionary." msgstr "" -#: js/SensorsBlocks.js:238 -msgid "loudness" +#: js/blocks/ProgramBlocks.js:550 +msgid "The set dictionary block needs a dictionary." msgstr "" -#: js/SensorsBlocks.js:245 -msgid "The Loudness block returns the volume detected by the microphone." +#: js/blocks/ProgramBlocks.js:567 +msgid "The Save-heap block saves the heap to a file." msgstr "" -#: js/SensorsBlocks.js:300 -msgid "click" +#: js/blocks/ProgramBlocks.js:578 +#.TRANS: save the heap to a file +msgid "save heap" msgstr "" -#: js/SensorsBlocks.js:306 -msgid "The Click block triggers an event if a mouse has been clicked." +#: js/blocks/ProgramBlocks.js:629 +msgid "The Save-dictionary block saves a dictionary to a file." msgstr "" -#: js/SensorsBlocks.js:313 -msgid "The Click block triggers an event if a turtle has been clicked." +#: js/blocks/ProgramBlocks.js:640 +#.TRANS: save a dictionary to a file +msgid "save dictionary" msgstr "" -#: js/SensorsBlocks.js:342 -msgid "cursor over" +#: js/blocks/ProgramBlocks.js:720 +msgid "The Open palette block opens a palette." msgstr "" -#: js/SensorsBlocks.js:387 -msgid "cursor out" +#: js/blocks/ProgramBlocks.js:727 +msgid "open palette" msgstr "" -#: js/SensorsBlocks.js:433 -msgid "cursor button down" +#: js/blocks/ProgramBlocks.js:785 +msgid "The Delete block block removes a block." msgstr "" -#: js/SensorsBlocks.js:477 -msgid "cursor button up" +#: js/blocks/ProgramBlocks.js:797 +#.TRANS: Move this block to the trash. +msgid "delete block" msgstr "" -#: js/SensorsBlocks.js:638 -msgid "The Get red block returns the red component of the pixel under the mouse." +#: js/blocks/ProgramBlocks.js:861 +msgid "The Move block block moves a block." msgstr "" -#: js/SensorsBlocks.js:644 -msgid "The Get red block returns the red component of the pixel under the turtle." +#: js/blocks/ProgramBlocks.js:869 +#.TRANS: Move the position of a block on the screen. +msgid "move block" msgstr "" -#: js/SensorsBlocks.js:685 -#: plugins/rodi.rtp:216 -msgid "pixel color" +#: js/blocks/ProgramBlocks.js:881 +#: js/blocks/ProgramBlocks.js:1048 +msgid "block number" msgstr "" -#: js/SensorsBlocks.js:690 -msgid "The Get pixel block returns the color of the pixel under the mouse." +#: js/blocks/ProgramBlocks.js:935 +#.TRANS: Run program beginning at this block. +msgid "run block" msgstr "" -#: js/SensorsBlocks.js:696 -msgid "The Get pixel block returns the color of the pixel under the turtle." +#: js/blocks/ProgramBlocks.js:1025 +msgid "The Dock block block connections two blocks." msgstr "" -#: js/SensorsBlocks.js:758 -msgid "time" +#: js/blocks/ProgramBlocks.js:1036 +#.TRANS: We can connect a block to another block. +msgid "connect blocks" msgstr "" -#: js/SensorsBlocks.js:804 -msgid "cursor y" +#: js/blocks/ProgramBlocks.js:1048 +msgid "target block" msgstr "" -#: js/SensorsBlocks.js:809 -msgid "The Cursor Y block returns the vertical position of the mouse." +#: js/blocks/ProgramBlocks.js:1048 +msgid "connection number" msgstr "" -#: js/SensorsBlocks.js:845 -msgid "cursor x" +#: js/blocks/ProgramBlocks.js:1140 +msgid "The Make block block creates a new block." msgstr "" -#: js/SensorsBlocks.js:850 -msgid "The Cursor X block returns the horizontal position of the mouse." +#: js/blocks/ProgramBlocks.js:1152 +#.TRANS: Create a new block +msgid "make block" msgstr "" -#: js/SensorsBlocks.js:886 -msgid "mouse button" +#: js/blocks/ProgramBlocks.js:1285 +msgid "Cannot find block" msgstr "" -#: js/SensorsBlocks.js:888 -msgid "The Mouse-button block returns True if the mouse button is pressed." +#: js/blocks/ProgramBlocks.js:1304 +#: js/blocks/ProgramBlocks.js:1313 +msgid "Warning: block argument type mismatch" msgstr "" -#: js/SensorsBlocks.js:934 -msgid "to ASCII" +#: js/blocks/ProgramBlocks.js:1347 +msgid "The Open project block is used to open a project from a web page." msgstr "" -#: js/SensorsBlocks.js:938 -msgid "The To ASCII block converts numbers to letters." +#: js/blocks/ProgramBlocks.js:1357 +msgid "open project" msgstr "" -#: js/SensorsBlocks.js:1005 -msgid "The Keyboard block returns computer keyboard input." +#: js/blocks/ProgramBlocks.js:1410 +msgid "Please enter a valid URL." msgstr "" -#: js/IntervalsActions.js:216 -msgid "Adding missing pitch number 0." +#: js/blocks/ToneBlocks.js:34 +msgid "oscillator" msgstr "" -#: js/IntervalsActions.js:224 -msgid "Ignoring pitch numbers less than zero or greater than eleven." +#: js/blocks/ToneBlocks.js:42 +#: js/blocks/WidgetBlocks.js:179 +#: js/widgets/timbre.js:1558 +#: js/widgets/timbre.js:1808 +#.TRANS: there are different types (sine, triangle, square...) of oscillators. +#.TRANS: type of filter, e.g., lowpass, highpass, etc. +msgid "type" msgstr "" -#: js/IntervalsActions.js:230 -msgid "Ignoring duplicate pitch numbers." +#: js/blocks/ToneBlocks.js:44 +#: js/widgets/timbre.js:1562 +#.TRANS: Partials refers to the number of sine waves combined into the sound. +msgid "partials" msgstr "" -#: js/PitchActions.js:88 -msgid "The Scalar Step Block must be used inside of a Note Block." +#: js/blocks/ToneBlocks.js:76 +msgid "You are adding multiple oscillator blocks." msgstr "" -#: js/PitchActions.js:107 -msgid "The Scalar Step Block must be preceded by a Pitch Block." +#: js/blocks/ToneBlocks.js:144 +#: js/widgets/timbre.js:1225 +#.TRANS: a duo synthesizer combines a synth with a sequencer +msgid "duo synth" msgstr "" -#: js/DrumActions.js:231 -msgid "Noise Block: Did you mean to use a Note block?" +#: js/blocks/ToneBlocks.js:149 +msgid "The Duo synth block is a duo-frequency modulator used to define a timbre." msgstr "" -#: js/MeterActions.js:101 -#: js/MeterActions.js:139 -msgid "beats per minute must be greater than" +#: js/blocks/ToneBlocks.js:157 +#: js/widgets/timbre.js:1476 +msgid "vibrato rate" msgstr "" -#: js/MeterActions.js:111 -#: js/MeterActions.js:149 -msgid "maximum" +#: js/blocks/ToneBlocks.js:157 +msgid "vibrato intensity" msgstr "" -#: js/MeterActions.js:117 -#: js/MeterActions.js:155 -msgid "beats per minute is" +#: js/blocks/ToneBlocks.js:185 +#: js/widgets/timbre.js:1221 +#.TRANS: AM (amplitude modulation) synthesizer +msgid "AM synth" msgstr "" -#: js/ToneActions.js:134 -msgid "Vibrato intensity must be between 1 and 100." +#: js/blocks/ToneBlocks.js:189 +msgid "The AM synth block is an amplitude modulator used to define a timbre." msgstr "" -#: js/ToneActions.js:139 -msgid "Vibrato rate must be greater than 0." +#: js/blocks/ToneBlocks.js:224 +#: js/widgets/timbre.js:1223 +#.TRANS: FM (frequency modulation) synthesizer +msgid "FM synth" msgstr "" -#: js/ToneActions.js:192 -#: js/ToneActions.js:265 -#.TRANS: Depth is the intesity of the tremolo or chorus effect. -msgid "Depth is out of range." +#: js/blocks/ToneBlocks.js:228 +msgid "The FM synth block is a frequency modulator used to define a timbre." msgstr "" -#: js/ToneActions.js:301 -msgid "Distortion must be from 0 to 100." +#: js/blocks/ToneBlocks.js:262 +msgid "partial" msgstr "" -#: js/ToneActions.js:332 -#.TRANS: partials components in a harmonic series -msgid "Partial must be greater than or equal to 0." +#: js/blocks/ToneBlocks.js:265 +msgid "The Partial block is used to specify a weight for a specific partial harmonic." msgstr "" -#: js/ToneActions.js:378 -#: js/ToneActions.js:417 -#: js/ToneActions.js:456 -#: js/timbre.js:782 -msgid "Unable to use synth due to existing oscillator" +#: js/blocks/ToneBlocks.js:284 +#.TRANS: partials are weighted components in a harmonic series +msgid "Partial weight must be between 0 and 1." msgstr "" -#: js/ToneActions.js:388 -#: js/ToneActions.js:427 -msgid "The input cannot be negative." +#: js/blocks/ToneBlocks.js:297 +#.TRANS: partials are weighted components in a harmonic series +msgid "Partial block should be used inside of a Weighted-partials block." msgstr "" -#: js/DictActions.js:75 -#: js/DictActions.js:153 -#: js/DictActions.js:188 -msgid "font" +#: js/blocks/ToneBlocks.js:325 +#.TRANS: partials are weighted components in a harmonic series +msgid "weighted partials" msgstr "" -#: js/musicutils.js:363 -#: js/musicutils.js:471 -#: js/pitchdrummatrix.js:151 -#: js/musickeyboard.js:2563 -msgid "rest" +#: js/blocks/ToneBlocks.js:383 +msgid "The Harmonic block will add harmonics to the contained notes." msgstr "" -#: js/musicutils.js:565 -#.TRANS: ordinal number. Please keep exactly one space between each number. -msgid "1st 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th" +#: js/blocks/ToneBlocks.js:390 +#.TRANS: A harmonic is an overtone. +msgid "harmonic" msgstr "" -#: js/musicutils.js:629 -#: js/musicutils.js:812 -#: js/musicutils.js:911 -#.TRANS: augmented is a music term related to intervals -msgid "augmented" +#: js/blocks/ToneBlocks.js:431 +msgid "The Distortion block adds distortion to the pitch." msgstr "" -#: js/musicutils.js:631 -#: js/musicutils.js:813 -#: js/musicutils.js:910 -#.TRANS: diminished is a music term related to intervals and mode -msgid "diminished" +#: js/blocks/ToneBlocks.js:438 +#: js/widgets/timbre.js:2100 +#.TRANS: distortion is an alteration in the sound +msgid "distortion" msgstr "" -#: js/musicutils.js:639 -#.TRANS: twelve semi-tone scale for music -msgid "chromatic" +#: js/blocks/ToneBlocks.js:487 +msgid "The Tremolo block adds a wavering effect." msgstr "" -#: js/musicutils.js:640 -msgid "algerian" +#: js/blocks/ToneBlocks.js:495 +#: js/widgets/timbre.js:2092 +#.TRANS: a wavering effect in a musical tone +msgid "tremolo" msgstr "" -#: js/musicutils.js:641 -msgid "spanish" +#: js/blocks/ToneBlocks.js:500 +#: js/blocks/ToneBlocks.js:569 +#: js/blocks/ToneBlocks.js:630 +#: js/blocks/ToneBlocks.js:689 +#: js/widgets/timbre.js:2134 +#: js/widgets/timbre.js:2222 +#: js/widgets/timbre.js:2317 +#: js/widgets/timbre.js:2419 +#.TRANS: rate at which tremolo wavers +msgid "rate" msgstr "" -#: js/musicutils.js:643 -#.TRANS: modal scale in music -msgid "octatonic" +#: js/blocks/ToneBlocks.js:502 +#: js/blocks/ToneBlocks.js:630 +#: js/widgets/timbre.js:2137 +#: js/widgets/timbre.js:2328 +#.TRANS: amplitude of tremolo waver +msgid "depth" msgstr "" -#: js/musicutils.js:645 -#.TRANS: harmonic major scale in music -msgid "harmonic major" +#: js/blocks/ToneBlocks.js:559 +msgid "The Phaser block adds a sweeping sound." msgstr "" -#: js/musicutils.js:647 -#.TRANS: natural minor scales in music -msgid "natural minor" +#: js/blocks/ToneBlocks.js:566 +#: js/widgets/timbre.js:2098 +#.TRANS: alter the phase of the sound +msgid "phaser" msgstr "" -#: js/musicutils.js:649 -#.TRANS: harmonic minor scale in music -msgid "harmonic minor" +#: js/blocks/ToneBlocks.js:569 +#: js/turtleactions/IntervalsActions.js:114 +#: js/widgets/timbre.js:2422 +msgid "octaves" msgstr "" -#: js/musicutils.js:651 -#.TRANS: melodic minor scale in music -msgid "melodic minor" +#: js/blocks/ToneBlocks.js:569 +#: js/widgets/timbre.js:2425 +msgid "base frequency" msgstr "" -#: js/musicutils.js:655 -#.TRANS: modal scale for music -msgid "dorian" +#: js/blocks/ToneBlocks.js:619 +msgid "The Chorus block adds a chorus effect." msgstr "" -#: js/musicutils.js:657 -#.TRANS: modal scale for music -msgid "phrygian" +#: js/blocks/ToneBlocks.js:627 +#: js/widgets/timbre.js:2096 +#.TRANS: musical effect to simulate a choral sound +msgid "chorus" msgstr "" -#: js/musicutils.js:659 -#.TRANS: modal scale for music -msgid "lydian" +#: js/blocks/ToneBlocks.js:630 +msgid "delay" msgstr "" -#: js/musicutils.js:661 -#.TRANS: modal scale for music -msgid "mixolydian" +#: js/blocks/ToneBlocks.js:678 +msgid "The Vibrato block adds a rapid, slight variation in pitch." msgstr "" -#: js/musicutils.js:665 -#.TRANS: modal scale for music -msgid "locrian" +#: js/blocks/ToneBlocks.js:686 +#: js/widgets/timbre.js:2094 +#.TRANS: a rapid, slight variation in pitch +msgid "vibrato" msgstr "" -#: js/musicutils.js:667 -#.TRANS: minor jazz scale for music -msgid "jazz minor" +#: js/blocks/ToneBlocks.js:689 +#: js/widgets/timbre.js:2221 +msgid "intensity" msgstr "" -#: js/musicutils.js:669 -#.TRANS: bebop scale for music -msgid "bebop" +#: js/blocks/ToneBlocks.js:733 +#.TRANS: select synthesizer +msgid "set synth" msgstr "" -#: js/musicutils.js:670 -msgid "arabic" +#: js/blocks/ToneBlocks.js:804 +msgid "synth name" msgstr "" -#: js/musicutils.js:671 -msgid "byzantine" +#: js/blocks/ToneBlocks.js:842 +msgid "set default instrument" msgstr "" -#: js/musicutils.js:673 -#.TRANS: musical scale for music by Verdi -msgid "enigmatic" +#: js/blocks/ToneBlocks.js:895 +#: js/blocks/ToneBlocks.js:943 +#.TRANS: set the characteristics of a custom instrument +msgid "set instrument" msgstr "" -#: js/musicutils.js:674 -msgid "ethiopian" +#: js/blocks/ToneBlocks.js:898 +#: js/blocks/ToneBlocks.js:926 +#: js/blocks/ToneBlocks.js:932 +msgid "The Set instrument block selects a voice for the synthesizer," msgstr "" -#: js/musicutils.js:676 -#.TRANS: Ethiopic scale for music -msgid "geez" +#: js/blocks/ToneBlocks.js:900 +#: js/blocks/ToneBlocks.js:934 +msgid "eg guitar piano violin or cello." msgstr "" -#: js/musicutils.js:677 -msgid "hindu" +#: js/blocks/ToneBlocks.js:1015 +msgid "Import a sound file to use as an instrument and set its pitch center." msgstr "" -#: js/musicutils.js:678 -msgid "hungarian" +#: js/blocks/ToneBlocks.js:1110 +msgid "Upload a sound file to connect with the sample block." msgstr "" -#: js/musicutils.js:680 -#.TRANS: minor Romanian scale for music -msgid "romanian minor" +#: js/blocks/VolumeBlocks.js:35 +msgid "synth volume" msgstr "" -#: js/musicutils.js:681 -msgid "spanish gypsy" +#: js/blocks/VolumeBlocks.js:39 +msgid "The Synth volume block returns the current volume of the current synthesizer." msgstr "" -#: js/musicutils.js:683 -#.TRANS: musical scale for Mid-Eastern music -msgid "maqam" +#: js/blocks/VolumeBlocks.js:105 +msgid "master volume" msgstr "" -#: js/musicutils.js:685 -#.TRANS: minor blues scale for music -msgid "minor blues" +#: js/blocks/VolumeBlocks.js:109 +msgid "The Master volume block returns the master volume." msgstr "" -#: js/musicutils.js:687 -#.TRANS: major blues scale for music -msgid "major blues" +#: js/blocks/VolumeBlocks.js:355 +#: js/blocks/VolumeBlocks.js:524 +msgid "set synth volume" msgstr "" -#: js/musicutils.js:688 -msgid "whole tone" +#: js/blocks/VolumeBlocks.js:362 +#: js/blocks/VolumeBlocks.js:545 +msgid "synth" msgstr "" -#: js/musicutils.js:690 -#.TRANS: pentatonic is a general term that means "five note scale". This scale is typically known as "minor pentatonic" -msgid "minor pentatonic" +#: js/blocks/VolumeBlocks.js:403 +#: js/blocks/VolumeBlocks.js:577 +#: js/blocks/VolumeBlocks.js:740 +#: js/turtleactions/VolumeActions.js:173 +msgid "Setting volume to 0." msgstr "" -#: js/musicutils.js:692 -#.TRANS: pentatonic is a general term that means "five note scale". This scale is typically known as "major pentatonic" -msgid "major pentatonic" +#: js/blocks/VolumeBlocks.js:440 +msgid "Synth not found" msgstr "" -#: js/musicutils.js:693 -msgid "chinese" +#: js/blocks/VolumeBlocks.js:494 +msgid "set drum volume" msgstr "" -#: js/musicutils.js:694 -msgid "egyptian" +#: js/blocks/VolumeBlocks.js:530 +msgid "The Set synth volume block will change the volume of a particular synth," msgstr "" -#: js/musicutils.js:696 -#.TRANS: https://en.wikipedia.org/wiki/Hirajoshi_scale NOTE: There are three different versions of this scale -msgid "hirajoshi" +#: js/blocks/VolumeBlocks.js:532 +msgid "eg guitar violin snare drum etc." msgstr "" -#: js/musicutils.js:697 -msgid "Japan" +#: js/blocks/VolumeBlocks.js:534 +msgid "The default volume is 50." msgstr "" -#: js/musicutils.js:699 -#.TRANS: https://en.wikipedia.org/wiki/In_scale and https://en.wikipedia.org/wiki/Sakura_Sakura -msgid "in" +#: js/blocks/VolumeBlocks.js:536 +msgid "The range is 0 for silence to 100 for full volume." msgstr "" -#: js/musicutils.js:701 -#.TRANS: https://en.wikipedia.org/wiki/Miny%C5%8D_scale -msgid "minyo" +#: js/blocks/VolumeBlocks.js:597 +msgid "set panning" msgstr "" -#: js/musicutils.js:703 -#.TRANS: Italian mathematician -msgid "fibonacci" +#: js/blocks/VolumeBlocks.js:603 +msgid "The Set Panning block sets the panning for all synthesizers." msgstr "" -#: js/musicutils.js:708 -#: js/musicutils.js:1106 -#.TRANS: lowpass filter -msgid "lowpass" +#: js/blocks/VolumeBlocks.js:625 +msgid "Warning: Sound is coming out from only the left or right side." msgstr "" -#: js/musicutils.js:710 -#: js/musicutils.js:1107 -#.TRANS: bandpass filter -msgid "bandpass" +#: js/blocks/VolumeBlocks.js:647 +#: js/blocks/VolumeBlocks.js:695 +msgid "set master volume" msgstr "" -#: js/musicutils.js:712 -#: js/musicutils.js:1108 -#.TRANS: high-shelf filter -msgid "highshelf" +#: js/blocks/VolumeBlocks.js:653 +msgid "The Set master volume block sets the volume for all synthesizers." msgstr "" -#: js/musicutils.js:714 -#: js/musicutils.js:1109 -#.TRANS: low-shelf filter -msgid "lowshelf" +#: js/blocks/VolumeBlocks.js:784 +msgid "The Set relative volume block changes the volume of the contained notes." msgstr "" -#: js/musicutils.js:716 -#: js/musicutils.js:1110 -#.TRANS: notch-shelf filter -msgid "notch" +#: js/blocks/VolumeBlocks.js:791 +msgid "set relative volume" msgstr "" -#: js/musicutils.js:718 -#: js/musicutils.js:1111 -#.TRANS: all-pass filter -msgid "allpass" +#: js/blocks/VolumeBlocks.js:857 +msgid "decrescendo" msgstr "" -#: js/musicutils.js:720 -#: js/musicutils.js:1112 -#.TRANS: peaking filter -msgid "peaking" +#: js/blocks/VolumeBlocks.js:921 +msgid "crescendo" msgstr "" -#: js/musicutils.js:731 -#: js/synthutils.js:58 -#.TRANS: musical instrument -msgid "violin" +#: js/blocks/WidgetBlocks.js:81 +#.TRANS: sound envelope (ADSR) +msgid "envelope" msgstr "" -#: js/musicutils.js:732 -#: js/synthutils.js:60 -#.TRANS: viola musical instrument -msgid "viola" +#: js/blocks/WidgetBlocks.js:89 +#.TRANS: Attack time is the time taken for initial run-up of level from nil to peak, beginning when the key is first pressed. +msgid "attack" msgstr "" -#: js/musicutils.js:733 -#: js/synthutils.js:98 -#.TRANS: xylophone musical instrument -msgid "xylophone" +#: js/blocks/WidgetBlocks.js:91 +#.TRANS: Decay time is the time taken for the subsequent run down from the attack level to the designated sustain level. +msgid "decay" msgstr "" -#: js/musicutils.js:734 -#: js/synthutils.js:120 -#.TRANS: vibraphone musical instrument -msgid "vibraphone" +#: js/blocks/WidgetBlocks.js:93 +#.TRANS: Sustain level is the level during the main sequence of the sound's duration, until the key is released. +msgid "sustain" msgstr "" -#: js/musicutils.js:735 -#: js/synthutils.js:62 -#.TRANS: musical instrument -msgid "cello" +#: js/blocks/WidgetBlocks.js:95 +#.TRANS: Release time is the time taken for the level to decay from the sustain level to zero after the key is released. +msgid "release" msgstr "" -#: js/musicutils.js:737 -#: js/synthutils.js:66 -#.TRANS: viola musical instrument -msgid "double bass" +#: js/blocks/WidgetBlocks.js:113 +msgid "Attack value should be from 0 to 100." msgstr "" -#: js/musicutils.js:738 -#: js/synthutils.js:68 -#: js/rhythmruler.js:2119 -#.TRANS: musical instrument -msgid "guitar" +#: js/blocks/WidgetBlocks.js:116 +msgid "Decay value should be from 0 to 100." msgstr "" -#: js/musicutils.js:739 -#: js/synthutils.js:70 -#.TRANS: musical instrument -msgid "acoustic guitar" +#: js/blocks/WidgetBlocks.js:119 +msgid "Sustain value should be from 0 to 100." msgstr "" -#: js/musicutils.js:740 -#: js/synthutils.js:72 -#.TRANS: musical instrument -msgid "flute" +#: js/blocks/WidgetBlocks.js:122 +msgid "Release value should be from 0-100." msgstr "" -#: js/musicutils.js:741 -#: js/synthutils.js:74 -#.TRANS: musical instrument -msgid "clarinet" +#: js/blocks/WidgetBlocks.js:140 +msgid "You are adding multiple envelope blocks." msgstr "" -#: js/musicutils.js:742 -#: js/synthutils.js:76 -#.TRANS: musical instrument -msgid "saxophone" +#: js/blocks/WidgetBlocks.js:171 +#.TRANS: a filter removes some unwanted components from a signal +msgid "filter" msgstr "" -#: js/musicutils.js:743 -#: js/synthutils.js:78 -#.TRANS: musical instrument -msgid "tuba" +#: js/blocks/WidgetBlocks.js:181 +#: js/widgets/timbre.js:1818 +#.TRANS: rolloff is the steepness of a change in frequency. +msgid "rolloff" msgstr "" -#: js/musicutils.js:744 -#: js/synthutils.js:80 -#.TRANS: musical instrument -msgid "trumpet" +#: js/blocks/WidgetBlocks.js:213 +#.TRANS: rolloff is the steepness of a change in frequency. +msgid "Rolloff value should be either -12, -24, -48, or -96 decibels/octave." msgstr "" -#: js/musicutils.js:745 -#: js/synthutils.js:82 -#.TRANS: musical instrument -msgid "oboe" +#: js/blocks/WidgetBlocks.js:252 +msgid "The Temperament tool is used to define custom tuning." msgstr "" -#: js/musicutils.js:746 -#: js/synthutils.js:84 -#.TRANS: musical instrument -msgid "trombone" +#: js/blocks/WidgetBlocks.js:332 +#: js/blocks/WidgetBlocks.js:1573 +#: js/widgets/sampler.js:547 +msgid "Upload a sample and adjust its pitch center." msgstr "" -#: js/musicutils.js:747 -#: js/synthutils.js:100 -#.TRANS: polytone synthesizer -msgid "electronic synth" +#: js/blocks/WidgetBlocks.js:339 +#.TRANS: the speed at music is should be played. +msgid "sampler" msgstr "" -#: js/musicutils.js:748 -#: js/synthutils.js:102 -#.TRANS: simple monotone synthesizer -msgid "simple 1" +#: js/blocks/WidgetBlocks.js:517 +msgid "The Meter block opens a tool to select strong beats for the meter." msgstr "" -#: js/musicutils.js:749 -msgid "simple 2" +#: js/blocks/WidgetBlocks.js:573 +msgid "The oscilloscope block opens a tool to visualize waveforms." msgstr "" -#: js/musicutils.js:750 -msgid "simple 3" +#: js/blocks/WidgetBlocks.js:578 +msgid "oscilloscope" msgstr "" -#: js/musicutils.js:751 -msgid "simple 4" +#: js/blocks/WidgetBlocks.js:645 +msgid "The Custom mode block opens a tool to explore musical mode (the spacing of the notes in a scale)." msgstr "" -#: js/musicutils.js:753 -#: js/synthutils.js:49 -#.TRANS: brown noise synthesizer -msgid "brown noise" +#: js/blocks/WidgetBlocks.js:651 +#.TRANS: musical mode is the pattern of half-steps in an octave, e.g., Major or Minor modes +msgid "custom mode" msgstr "" -#: js/musicutils.js:754 -#: js/synthutils.js:51 -#.TRANS: pink noise synthesizer -msgid "pink noise" +#: js/blocks/WidgetBlocks.js:700 +msgid "The Tempo block opens a metronome to visualize the beat." msgstr "" -#: js/musicutils.js:756 -#: js/synthutils.js:127 -#: js/rhythmruler.js:1670 -#: js/rhythmruler.js:1928 -#.TRANS: musical instrument -msgid "snare drum" +#: js/blocks/WidgetBlocks.js:762 +msgid "The Arpeggio Widget is used to compose chord sequences." msgstr "" -#: js/musicutils.js:757 -#: js/synthutils.js:129 -#.TRANS: musical instrument -msgid "kick drum" +#: js/blocks/WidgetBlocks.js:837 +msgid "The Pitch drum matrix is used to map pitches to drum sounds." msgstr "" -#: js/musicutils.js:758 -#: js/synthutils.js:131 -#.TRANS: musical instrument -msgid "tom tom" +#: js/blocks/WidgetBlocks.js:842 +#.TRANS: makes a mapping between pitches and drum sounds +msgid "pitch-drum mapper" msgstr "" -#: js/musicutils.js:759 -#: js/synthutils.js:133 -#.TRANS: musical instrument -msgid "floor tom" +#: js/blocks/WidgetBlocks.js:891 +msgid "You must have at least one pitch block and one drum block in the matrix." msgstr "" -#: js/musicutils.js:760 -#: js/synthutils.js:135 -#.TRANS: musical instrument -msgid "bass drum" +#: js/blocks/WidgetBlocks.js:920 +msgid "The Pitch slider tool to is used to generate pitches at selected frequencies." msgstr "" -#: js/musicutils.js:761 -#: js/synthutils.js:137 -#.TRANS: a drum made from an inverted cup -msgid "cup drum" +#: js/blocks/WidgetBlocks.js:925 +#.TRANS: widget to generate pitches using a slider +msgid "pitch slider" msgstr "" -#: js/musicutils.js:762 -#: js/synthutils.js:139 -#.TRANS: musical instrument -msgid "darbuka drum" +#: js/blocks/WidgetBlocks.js:977 +msgid "chromatic keyboard" msgstr "" -#: js/musicutils.js:763 -#: js/synthutils.js:143 -#.TRANS: musical instrument -msgid "hi hat" +#: js/blocks/WidgetBlocks.js:1011 +#: js/blocks/WidgetBlocks.js:1077 +#.TRANS: widget to generate pitches using a slider +msgid "music keyboard" msgstr "" -#: js/musicutils.js:764 -#: js/synthutils.js:145 -#.TRANS: a small metal bell -msgid "ride bell" +#: js/blocks/WidgetBlocks.js:1062 +#: js/blocks/WidgetBlocks.js:1069 +msgid "The Music keyboard block opens a piano keyboard that can be used to create notes." msgstr "" -#: js/musicutils.js:765 -#: js/synthutils.js:147 -#.TRANS: musical instrument -msgid "cow bell" +#: js/blocks/WidgetBlocks.js:1128 +msgid "The Pitch staircase tool to is used to generate pitches from a given ratio." msgstr "" -#: js/musicutils.js:766 -msgid "japanese drum" +#: js/blocks/WidgetBlocks.js:1135 +#.TRANS: generate a progressive sequence of pitches +msgid "pitch staircase" msgstr "" -#: js/musicutils.js:767 -#: js/synthutils.js:153 -#.TRANS: musical instrument -msgid "japanese bell" +#: js/blocks/WidgetBlocks.js:1222 +msgid "The Rhythm Maker block opens a tool to create drum machines." msgstr "" -#: js/musicutils.js:768 -#: js/synthutils.js:149 -#.TRANS: musical instrument -msgid "triangle bell" +#: js/blocks/WidgetBlocks.js:1291 +msgid "G major scale" msgstr "" -#: js/musicutils.js:769 -#: js/synthutils.js:151 -#.TRANS: musical instrument -msgid "finger cymbals" +#: js/blocks/WidgetBlocks.js:1326 +msgid "C major scale" msgstr "" -#: js/musicutils.js:770 -#: js/synthutils.js:155 -#.TRANS: a musically tuned set of bells -msgid "chime" +#: js/blocks/WidgetBlocks.js:1366 +msgid "The Phrase Maker block opens a tool to create musical phrases." msgstr "" -#: js/musicutils.js:771 -#: js/synthutils.js:157 -#.TRANS: a musical instrument -msgid "gong" +#: js/blocks/WidgetBlocks.js:1373 +#.TRANS: assigns pitch to a sequence of beats to generate a melody +msgid "phrase maker" msgstr "" -#: js/musicutils.js:772 -#: js/synthutils.js:159 -#.TRANS: sound effect -msgid "clang" +#: js/blocks/WidgetBlocks.js:1444 +msgid "You must have at least one pitch block and one rhythm block in the matrix." msgstr "" -#: js/musicutils.js:773 -#: js/synthutils.js:161 -#.TRANS: sound effect -msgid "crash" +#: js/blocks/WidgetBlocks.js:1503 +msgid "The Status block opens a tool for inspecting the status of Music Blocks as it is running." msgstr "" -#: js/musicutils.js:774 -#: js/synthutils.js:163 -#.TRANS: sound effect -msgid "bottle" +#: js/blocks/WidgetBlocks.js:1580 +#.TRANS: AI-generated music +msgid "aimusic" msgstr "" -#: js/musicutils.js:775 -#: js/synthutils.js:165 -#.TRANS: sound effect -msgid "clap" +#: js/turtleactions/MeterActions.js:101 +#: js/turtleactions/MeterActions.js:139 +msgid "beats per minute must be greater than" msgstr "" -#: js/musicutils.js:776 -#: js/synthutils.js:167 -#.TRANS: sound effect -msgid "slap" +#: js/turtleactions/MeterActions.js:111 +#: js/turtleactions/MeterActions.js:149 +msgid "maximum" msgstr "" -#: js/musicutils.js:777 -#: js/synthutils.js:169 -#.TRANS: sound effect -msgid "splash" +#: js/turtleactions/MeterActions.js:117 +#: js/turtleactions/MeterActions.js:155 +msgid "beats per minute is" msgstr "" -#: js/musicutils.js:778 -#: js/synthutils.js:171 -#.TRANS: sound effect -msgid "bubbles" +#: js/turtleactions/DictActions.js:75 +#: js/turtleactions/DictActions.js:142 +#: js/turtleactions/DictActions.js:172 +msgid "font" msgstr "" -#: js/musicutils.js:779 -#: js/synthutils.js:173 -#.TRANS: sound effect -msgid "raindrop" +#: js/turtleactions/DictActions.js:255 +msgid "Dictionary with this name does not exist" msgstr "" -#: js/musicutils.js:780 -#: js/synthutils.js:175 -#.TRANS: animal sound effect -msgid "cat" +#: js/turtleactions/DictActions.js:259 +msgid "Key with this name does not exist in " msgstr "" -#: js/musicutils.js:781 -#: js/synthutils.js:177 -#.TRANS: animal sound effect -msgid "cricket" +#: js/turtleactions/DrumActions.js:227 +msgid "Noise Block: Did you mean to use a Note block?" msgstr "" -#: js/musicutils.js:782 -#: js/synthutils.js:179 -#.TRANS: animal sound effect -msgid "dog" +#: js/turtleactions/IntervalsActions.js:113 +msgid "one" msgstr "" -#: js/musicutils.js:784 -#: js/synthutils.js:86 -#.TRANS: musical instrument -msgid "banjo" +#: js/turtleactions/IntervalsActions.js:113 +msgid "two" msgstr "" -#: js/musicutils.js:785 -#: js/synthutils.js:88 -#.TRANS: musical instrument -msgid "koto" +#: js/turtleactions/IntervalsActions.js:113 +msgid "three" msgstr "" -#: js/musicutils.js:786 -#: js/synthutils.js:90 -#.TRANS: musical instrument -msgid "dulcimer" +#: js/turtleactions/IntervalsActions.js:113 +msgid "four" msgstr "" -#: js/musicutils.js:787 -#: js/synthutils.js:92 -#.TRANS: musical instrument -msgid "electric guitar" +#: js/turtleactions/IntervalsActions.js:113 +msgid "five" msgstr "" -#: js/musicutils.js:788 -#: js/synthutils.js:94 -#.TRANS: musical instrument -msgid "bassoon" +#: js/turtleactions/IntervalsActions.js:113 +msgid "six" msgstr "" -#: js/musicutils.js:789 -#: js/synthutils.js:96 -#.TRANS: musical instrument -msgid "celeste" +#: js/turtleactions/IntervalsActions.js:113 +msgid "seven" msgstr "" -#: js/musicutils.js:791 -#: js/musicutils.js:1123 -#: js/musicutils.js:1131 -#: js/temperament.js:650 -#.TRANS: musical temperament -msgid "equal" +#: js/turtleactions/IntervalsActions.js:113 +msgid "eight" msgstr "" -#: js/musicutils.js:793 -#: js/musicutils.js:1125 -#: js/musicutils.js:1133 -#.TRANS: musical temperament -msgid "Pythagorean" +#: js/turtleactions/IntervalsActions.js:113 +msgid "nine" msgstr "" -#: js/musicutils.js:795 -#: js/musicutils.js:1124 -#: js/musicutils.js:1132 -#.TRANS: musical temperament -msgid "just intonation" +#: js/turtleactions/IntervalsActions.js:119 +msgid "a" msgstr "" -#: js/musicutils.js:797 -#: js/musicutils.js:1126 -#: js/musicutils.js:1127 -#: js/musicutils.js:1134 -#: js/musicutils.js:1135 -#.TRANS: musical temperament -msgid "meantone" +#: js/turtleactions/IntervalsActions.js:120 +msgid "below" msgstr "" -#: js/musicutils.js:814 -msgid "major 7th" +#: js/turtleactions/IntervalsActions.js:124 +msgid "above" msgstr "" -#: js/musicutils.js:815 -msgid "minor 7th" +#: js/turtleactions/IntervalsActions.js:131 +msgid "plus" msgstr "" -#: js/musicutils.js:816 -msgid "dominant 7th" +#: js/turtleactions/IntervalsActions.js:139 +msgid " below" msgstr "" -#: js/musicutils.js:817 -msgid "minor-major 7th" +#: js/turtleactions/IntervalsActions.js:257 +msgid "Adding missing pitch number 0." msgstr "" -#: js/musicutils.js:818 -msgid "fully-diminished 7th" +#: js/turtleactions/IntervalsActions.js:265 +msgid "Ignoring pitch numbers less than zero or greater than eleven." msgstr "" -#: js/musicutils.js:819 -msgid "half-diminished 7th" +#: js/turtleactions/IntervalsActions.js:271 +msgid "Ignoring duplicate pitch numbers." msgstr "" -#: js/musicutils.js:4379 -#: js/musicutils.js:4416 -msgid "current" +#: js/turtleactions/ToneActions.js:134 +msgid "Vibrato intensity must be between 1 and 100." msgstr "" -#: js/musicutils.js:4382 -#: js/musicutils.js:4407 -msgid "next" +#: js/turtleactions/ToneActions.js:139 +msgid "Vibrato rate must be greater than 0." msgstr "" -#: js/musicutils.js:4385 -#: js/musicutils.js:4412 -msgid "previous" +#: js/turtleactions/ToneActions.js:192 +#: js/turtleactions/ToneActions.js:265 +#.TRANS: Depth is the intesity of the tremolo or chorus effect. +msgid "Depth is out of range." msgstr "" -#: js/synthutils.js:104 -#.TRANS: simple monotone synthesizer -msgid "simple-2" +#: js/turtleactions/ToneActions.js:301 +msgid "Distortion must be from 0 to 100." msgstr "" -#: js/synthutils.js:106 -#.TRANS: simple monotone synthesizer -msgid "simple-3" +#: js/turtleactions/ToneActions.js:332 +#.TRANS: partials components in a harmonic series +msgid "Partial must be greater than or equal to 0." msgstr "" -#: js/synthutils.js:108 -#.TRANS: simple monotone synthesizer -msgid "simple-4" +#: js/turtleactions/ToneActions.js:378 +#: js/turtleactions/ToneActions.js:417 +#: js/turtleactions/ToneActions.js:456 +#: js/widgets/timbre.js:782 +msgid "Unable to use synth due to existing oscillator" msgstr "" -#: js/synthutils.js:141 -#.TRANS: musical instrument -msgid "taiko" +#: js/turtleactions/ToneActions.js:388 +#: js/turtleactions/ToneActions.js:427 +msgid "The input cannot be negative." msgstr "" -#: js/modewidget.js:86 -#: js/modewidget.js:88 -#: js/modewidget.js:642 -#: js/modewidget.js:644 -#: js/modewidget.js:712 -#: js/modewidget.js:714 -#: js/temperament.js:2078 -#: js/rhythmruler.js:189 -#: js/rhythmruler.js:1410 -#: js/rhythmruler.js:1412 -#: js/rhythmruler.js:1435 -#: js/rhythmruler.js:1437 -#: js/meterwidget.js:89 -#: js/meterwidget.js:91 +#: js/widgets/modewidget.js:86 +#: js/widgets/modewidget.js:88 +#: js/widgets/modewidget.js:642 +#: js/widgets/modewidget.js:644 +#: js/widgets/modewidget.js:712 +#: js/widgets/modewidget.js:714 +#: js/widgets/meterwidget.js:194 +#: js/widgets/meterwidget.js:196 +#: js/widgets/temperament.js:2236 +#: js/widgets/rhythmruler.js:457 +#: js/widgets/rhythmruler.js:1790 +#: js/widgets/rhythmruler.js:1792 +#: js/widgets/rhythmruler.js:1816 +#: js/widgets/rhythmruler.js:1818 msgid "Play all" msgstr "" -#: js/modewidget.js:115 -#: js/pitchstaircase.js:641 -#: js/phrasemaker.js:339 -#: js/pitchdrummatrix.js:94 -#: js/pitchslider.js:125 -#: js/temperament.js:2083 -#: js/musickeyboard.js:530 -#: js/timbre.js:756 -#: js/meterwidget.js:124 -#: js/arpeggio.js:103 +#: js/widgets/modewidget.js:115 +#: js/widgets/meterwidget.js:229 +#: js/widgets/pitchdrummatrix.js:166 +#: js/widgets/pitchslider.js:125 +#: js/widgets/pitchstaircase.js:641 +#: js/widgets/temperament.js:2244 +#: js/widgets/timbre.js:756 +#: js/widgets/arpeggio.js:103 +#: js/widgets/musickeyboard.js:688 +#: js/widgets/phrasemaker.js:550 msgid "Save" msgstr "" -#: js/modewidget.js:121 -#: js/pitchstaircase.js:686 -#: js/phrasemaker.js:356 -#: js/pitchdrummatrix.js:109 -#: js/musickeyboard.js:534 -#: js/rhythmruler.js:269 -#: js/arpeggio.js:118 +#: js/widgets/modewidget.js:121 +#: js/widgets/pitchdrummatrix.js:181 +#: js/widgets/pitchstaircase.js:686 +#: js/widgets/arpeggio.js:118 +#: js/widgets/musickeyboard.js:696 +#: js/widgets/phrasemaker.js:567 +#: js/widgets/rhythmruler.js:601 #.TRANS: clear all subdivisions from the ruler. msgid "Clear" msgstr "" -#: js/modewidget.js:127 +#: js/widgets/modewidget.js:127 msgid "Rotate counter clockwise" msgstr "" -#: js/modewidget.js:133 +#: js/widgets/modewidget.js:133 msgid "Rotate clockwise" msgstr "" -#: js/modewidget.js:139 +#: js/widgets/modewidget.js:139 msgid "Invert" msgstr "" -#: js/modewidget.js:145 -#: js/pitchstaircase.js:678 -#: js/rhythmruler.js:258 -#: js/timbre.js:963 +#: js/widgets/modewidget.js:145 +#: js/widgets/pitchstaircase.js:678 +#: js/widgets/timbre.js:963 +#: js/widgets/rhythmruler.js:578 msgid "Undo" msgstr "" -#: js/modewidget.js:163 +#: js/widgets/modewidget.js:163 #.TRANS: A circle of notes represents the musical mode. msgid "Click in the circle to select notes for the mode." msgstr "" -#: js/modewidget.js:1017 -#: js/pitchstaircase.js:580 -#: js/phrasemaker.js:4855 -#: js/temperament.js:1754 -#: js/rhythmruler.js:1865 -#: js/rhythmruler.js:2081 -#: js/tempo.js:414 +#: js/widgets/modewidget.js:1017 +#: js/widgets/pitchstaircase.js:580 +#: js/widgets/temperament.js:1929 +#: js/widgets/tempo.js:414 +#: js/widgets/phrasemaker.js:5356 +#: js/widgets/rhythmruler.js:2254 +#: js/widgets/rhythmruler.js:2472 msgid "New action block generated!" msgstr "" -#: js/oscilloscope.js:79 -msgid "Zoom In" -msgstr "" - -#: js/oscilloscope.js:88 -msgid "Zoom Out" -msgstr "" - -#: js/pitchstaircase.js:624 -msgid "Play chord" -msgstr "" - -#: js/pitchstaircase.js:632 -msgid "Play scale" +#: js/widgets/meterwidget.js:275 +msgid "Reset" msgstr "" -#: js/pitchstaircase.js:696 -msgid "Click on a note to create a new step." +#: js/widgets/meterwidget.js:301 +msgid "Click in the circle to select strong beats for the meter." msgstr "" -#: js/phrasemaker.js:363 -msgid "Export" +#: js/widgets/oscilloscope.js:79 +msgid "Zoom In" msgstr "" -#: js/phrasemaker.js:370 -msgid "Sort" +#: js/widgets/oscilloscope.js:88 +msgid "Zoom Out" msgstr "" -#: js/phrasemaker.js:373 -#: js/musickeyboard.js:559 -msgid "Add note" +#: js/widgets/pitchdrummatrix.js:356 +#: js/widgets/pitchdrummatrix.js:752 +msgid "Click in the grid to map notes to drums." msgstr "" -#: js/phrasemaker.js:764 -msgid "Click on the table to add notes." +#: js/widgets/pitchslider.js:103 +msgid "Move up" msgstr "" -#: js/phrasemaker.js:2414 -#: js/phrasemaker.js:2543 -msgid "tuplet value" +#: js/widgets/pitchslider.js:114 +msgid "Move down" msgstr "" -#: js/pitchdrummatrix.js:270 -#: js/pitchdrummatrix.js:639 -msgid "Click in the grid to map notes to drums." +#: js/widgets/pitchslider.js:136 +msgid "Click on the slider to create a note block." msgstr "" -#: js/pitchslider.js:103 -msgid "Move up" +#: js/widgets/pitchstaircase.js:624 +msgid "Play chord" msgstr "" -#: js/pitchslider.js:114 -msgid "Move down" +#: js/widgets/pitchstaircase.js:632 +msgid "Play scale" msgstr "" -#: js/pitchslider.js:136 -msgid "Click on the slider to create a note block." +#: js/widgets/pitchstaircase.js:696 +msgid "Click on a note to create a new step." msgstr "" -#: js/temperament.js:215 +#: js/widgets/temperament.js:321 msgid "back to 2:1 octave space" msgstr "" -#: js/temperament.js:323 +#: js/widgets/temperament.js:447 msgid "edit" msgstr "" -#: js/temperament.js:330 -#: js/temperament.js:332 -#: js/temperament.js:1336 -#: js/temperament.js:1338 +#: js/widgets/temperament.js:454 +#: js/widgets/temperament.js:456 +#: js/widgets/temperament.js:1493 +#: js/widgets/temperament.js:1495 msgid "close" msgstr "" -#: js/temperament.js:423 -#: js/temperament.js:736 -#: js/temperament.js:743 -#: js/temperament.js:845 -#: js/temperament.js:935 -#: js/temperament.js:942 -#: js/temperament.js:1015 -#: js/temperament.js:1284 -#: js/temperament.js:1354 -#: js/temperament.js:1430 +#: js/widgets/temperament.js:552 +#: js/widgets/temperament.js:877 +#: js/widgets/temperament.js:884 +#: js/widgets/temperament.js:986 +#: js/widgets/temperament.js:1080 +#: js/widgets/temperament.js:1087 +#: js/widgets/temperament.js:1160 +#: js/widgets/temperament.js:1433 +#: js/widgets/temperament.js:1511 +#: js/widgets/temperament.js:1596 msgid "done" msgstr "" -#: js/temperament.js:477 -#: js/temperament.js:482 -#: js/temperament.js:918 +#: js/widgets/temperament.js:610 +#: js/widgets/temperament.js:615 +#: js/widgets/temperament.js:1063 msgid "ratio" msgstr "" -#: js/temperament.js:483 +#: js/widgets/temperament.js:616 msgid "interval" msgstr "" -#: js/temperament.js:611 +#: js/widgets/temperament.js:744 msgid "non scalar" msgstr "" -#: js/temperament.js:650 +#: js/widgets/temperament.js:787 msgid "ratios" msgstr "" -#: js/temperament.js:650 +#: js/widgets/temperament.js:787 msgid "arbitrary" msgstr "" -#: js/temperament.js:719 +#: js/widgets/temperament.js:860 msgid "number of divisions" msgstr "" -#: js/temperament.js:741 -#: js/temperament.js:858 -#: js/temperament.js:940 -#: js/temperament.js:1033 +#: js/widgets/temperament.js:882 +#: js/widgets/temperament.js:999 +#: js/widgets/temperament.js:1085 +#: js/widgets/temperament.js:1178 msgid "preview" msgstr "" -#: js/temperament.js:788 +#: js/widgets/temperament.js:929 msgid "The Number of divisions is too large." msgstr "" -#: js/temperament.js:921 +#: js/widgets/temperament.js:1066 msgid "recursion" msgstr "" -#: js/temperament.js:1450 +#: js/widgets/temperament.js:1616 msgid "The octave ratio has changed. This changes temperament significantly." msgstr "" -#: js/temperament.js:2087 +#: js/widgets/temperament.js:2248 msgid "Table" msgstr "" -#: js/temperament.js:2185 +#: js/widgets/temperament.js:2356 msgid "Add pitches" msgstr "" -#: js/musickeyboard.js:570 -msgid "Metronome" +#: js/widgets/tempo.js:78 +#: js/widgets/tempo.js:97 +#: js/widgets/tempo.js:99 +#: js/widgets/aiwidget.js:134 +#: js/widgets/aiwidget.js:136 +#: js/widgets/rhythmruler.js:681 +#: js/widgets/rhythmruler.js:683 +#: js/widgets/rhythmruler.js:1864 +#: js/widgets/rhythmruler.js:1866 +#: js/widgets/sampler.js:180 +#: js/widgets/sampler.js:182 +msgid "Pause" msgstr "" -#: js/musickeyboard.js:1296 -#: plugins/rodi.rtp:193 -msgid "duration" +#: js/widgets/tempo.js:113 +msgid "Save tempo" msgstr "" -#: js/musickeyboard.js:2840 -msgid "New action blocks generated!" +#: js/widgets/tempo.js:144 +msgid "speed up" msgstr "" -#: js/musickeyboard.js:2841 -msgid "New action block generated" +#: js/widgets/tempo.js:150 +msgid "slow down" msgstr "" -#: js/musickeyboard.js:2984 -#: js/musickeyboard.js:2992 -msgid "MIDI device present." +#: js/widgets/tempo.js:194 +msgid "Adjust the tempo with the buttons." msgstr "" -#: js/musickeyboard.js:2995 -msgid "No MIDI device found." +#: js/widgets/tempo.js:261 +msgid "Please enter a number between 30 and 1000" msgstr "" -#: js/musickeyboard.js:3000 -msgid "Failed to get MIDI access in browser." +#: js/widgets/tempo.js:268 +#: js/widgets/tempo.js:271 +msgid "The beats per minute must be between 30 and 1000." msgstr "" -#: js/rhythmruler.js:202 -msgid "Save rhythms" +#: js/widgets/tempo.js:287 +msgid "The beats per minute must be below 1000." msgstr "" -#: js/rhythmruler.js:222 -msgid "Save drum machine" +#: js/widgets/tempo.js:303 +msgid "The beats per minute must be above 30" msgstr "" -#: js/rhythmruler.js:263 -#.TRANS: user can tap out a rhythm by clicking on a ruler. -msgid "Tap a rhythm" +#: js/widgets/timbre.js:766 +msgid "Synthesizer" msgstr "" -#: js/rhythmruler.js:342 -#: js/rhythmruler.js:344 -#: js/rhythmruler.js:1481 -#: js/rhythmruler.js:1483 -#: js/sampler.js:110 -#: js/sampler.js:112 -#: js/tempo.js:78 -#: js/tempo.js:97 -#: js/tempo.js:99 -msgid "Pause" +#: js/widgets/timbre.js:789 +msgid "Oscillator" msgstr "" -#: js/rhythmruler.js:478 -msgid "Click on the ruler to divide it." +#: js/widgets/timbre.js:840 +msgid "Envelope" msgstr "" -#: js/rhythmruler.js:603 -#: js/rhythmruler.js:605 -#: js/rhythmruler.js:804 -#: js/rhythmruler.js:806 -#: js/rhythmruler.js:1386 -#: js/rhythmruler.js:1388 -msgid "tap a rhythm" +#: js/widgets/timbre.js:886 +#: planet/js/GlobalTag.js:50 +#.TRANS: On the Planet, we use labels to tag projects. +msgid "Effects" msgstr "" -#: js/rhythmruler.js:1084 -msgid "Maximum value of 256 has been exceeded." +#: js/widgets/timbre.js:904 +msgid "Filter" msgstr "" -#: js/sampler.js:137 -msgid "Warning: Sample is bigger than 1MB." +#: js/widgets/timbre.js:946 +msgid "Add filter" msgstr "" -#: js/sampler.js:142 -msgid "Upload failed: Sample is not a .wav file." +#: js/widgets/timbre.js:987 +msgid "Click on buttons to open the timbre design tools." msgstr "" -#: js/sampler.js:164 -msgid "A new sample block was generated." +#: js/widgets/timbre.js:1273 +msgid "harmonicity" msgstr "" -#: js/sampler.js:255 -msgid "Upload sample" +#: js/widgets/timbre.js:1340 +#: js/widgets/timbre.js:1406 +msgid "modulation index" msgstr "" -#: js/sampler.js:306 -msgid "Save sample" +#: js/widgets/timbre.js:1484 +msgid "vibrato amount" msgstr "" -#: js/sampler.js:697 -#.TRANS: The reference tone is a sound used for comparison. -msgid "reference tone" +#: js/widgets/timbre.js:1919 +msgid "Filter already present." msgstr "" -#: js/tempo.js:113 -msgid "Save tempo" +#: js/widgets/timbre.js:2322 +msgid "delay (MS)" msgstr "" -#: js/tempo.js:144 -msgid "speed up" +#: js/widgets/timbre.js:2507 +msgid "distortion amount" msgstr "" -#: js/tempo.js:150 -msgid "slow down" +#: js/widgets/aiwidget.js:180 +#: js/widgets/sampler.js:227 +msgid "Warning: Sample is bigger than 1MB." msgstr "" -#: js/tempo.js:194 -msgid "Adjust the tempo with the buttons." +#: js/widgets/aiwidget.js:539 +msgid "New start block generated" msgstr "" -#: js/tempo.js:261 -msgid "Please enter a number between 30 and 1000" +#: js/widgets/aiwidget.js:541 +msgid "MIDI loading. This may take some time depending upon the number of notes in the track" msgstr "" -#: js/tempo.js:268 -#: js/tempo.js:271 -msgid "The beats per minute must be between 30 and 1000." +#: js/widgets/aiwidget.js:551 +#: js/widgets/sampler.js:254 +msgid "Upload failed: Sample is not a .wav file." msgstr "" -#: js/tempo.js:287 -msgid "The beats per minute must be below 1000." +#: js/widgets/aiwidget.js:679 +#: js/widgets/sampler.js:432 +msgid "Save sample" msgstr "" -#: js/tempo.js:303 -msgid "The beats per minute must be above 30" +#: js/widgets/aiwidget.js:701 +msgid "AI Music" msgstr "" -#: js/timbre.js:766 -msgid "Synthesizer" +#: js/widgets/arpeggio.js:239 +msgid "Click in the grid to add steps to the arpeggio." msgstr "" -#: js/timbre.js:789 -msgid "Oscillator" +#: js/widgets/help.js:95 +#: js/widgets/help.js:125 +#: js/widgets/help.js:146 +#: js/widgets/help.js:158 +#: js/widgets/help.js:376 +#: js/widgets/help.js:391 +msgid "Take a tour" msgstr "" -#: js/timbre.js:840 -msgid "Envelope" +#: js/widgets/musickeyboard.js:725 +#: js/widgets/phrasemaker.js:584 +msgid "Add note" msgstr "" -#: js/timbre.js:886 -#: js/GlobalTag.js:50 -#.TRANS: On the Planet, we use labels to tag projects. -msgid "Effects" +#: js/widgets/musickeyboard.js:744 +msgid "Metronome" +msgstr "" + +#: js/widgets/musickeyboard.js:1549 +#: plugins/rodi.rtp:193 +msgid "duration" +msgstr "" + +#: js/widgets/musickeyboard.js:3179 +msgid "New action blocks generated" +msgstr "" + +#: js/widgets/musickeyboard.js:3180 +msgid "New action block generated" msgstr "" -#: js/timbre.js:904 -msgid "Filter" +#: js/widgets/musickeyboard.js:3365 +#: js/widgets/musickeyboard.js:3373 +msgid "MIDI device present." msgstr "" -#: js/timbre.js:946 -msgid "Add filter" +#: js/widgets/musickeyboard.js:3376 +msgid "No MIDI device found." msgstr "" -#: js/timbre.js:987 -msgid "Click on buttons to open the timbre design tools." +#: js/widgets/musickeyboard.js:3386 +msgid "Failed to get MIDI access in browser." msgstr "" -#: js/timbre.js:1273 -msgid "harmonicity" +#: js/widgets/phrasemaker.js:574 +msgid "Export" msgstr "" -#: js/timbre.js:1340 -#: js/timbre.js:1406 -msgid "modulation index" +#: js/widgets/phrasemaker.js:581 +msgid "Sort" msgstr "" -#: js/timbre.js:1484 -msgid "vibrato amount" +#: js/widgets/phrasemaker.js:975 +msgid "Click on the table to add notes." msgstr "" -#: js/timbre.js:1919 -msgid "Filter already present." +#: js/widgets/phrasemaker.js:2677 +#: js/widgets/phrasemaker.js:2819 +msgid "tuplet value" msgstr "" -#: js/timbre.js:2322 -msgid "delay (MS)" +#: js/widgets/rhythmruler.js:486 +msgid "Save rhythms" msgstr "" -#: js/timbre.js:2507 -msgid "distortion amount" +#: js/widgets/rhythmruler.js:512 +msgid "Save drum machine" msgstr "" -#: js/meterwidget.js:170 -msgid "Reset" +#: js/widgets/rhythmruler.js:589 +#.TRANS: user can tap out a rhythm by clicking on a ruler. +msgid "Tap a rhythm" msgstr "" -#: js/meterwidget.js:196 -msgid "Click in the circle to select strong beats for the meter." +#: js/widgets/rhythmruler.js:817 +msgid "Click on the ruler to divide it." msgstr "" -#: js/arpeggio.js:239 -msgid "Click in the grid to add steps to the arpeggio." +#: js/widgets/rhythmruler.js:950 +#: js/widgets/rhythmruler.js:952 +#: js/widgets/rhythmruler.js:1152 +#: js/widgets/rhythmruler.js:1154 +#: js/widgets/rhythmruler.js:1765 +#: js/widgets/rhythmruler.js:1767 +msgid "tap a rhythm" msgstr "" -#: js/ProjectStorage.js:243 -msgid "anonymous" +#: js/widgets/rhythmruler.js:1459 +msgid "Maximum value of 256 has been exceeded." msgstr "" -#: js/GlobalCard.js:68 -msgid "Share" +#: js/widgets/sampler.js:237 +msgid "Recording started..." msgstr "" -#: js/GlobalCard.js:74 -msgid "Flags" +#: js/widgets/sampler.js:245 +msgid "Recording complete..." msgstr "" -#: js/LocalCard.js:36 -msgid "View published project" +#: js/widgets/sampler.js:283 +msgid "A new sample block was generated." msgstr "" -#: js/LocalCard.js:42 -msgid "Publish project" +#: js/widgets/sampler.js:378 +msgid "Upload sample" msgstr "" -#: js/LocalCard.js:51 -msgid "Edit project" +#: js/widgets/sampler.js:399 +msgid "Warning: Your sample cannot be loaded because it is >1MB." msgstr "" -#: js/LocalCard.js:52 -msgid "Delete project" +#: js/widgets/sampler.js:448 +msgid "Toggle Mic" msgstr "" -#: js/LocalCard.js:53 -msgid "Download project" +#: js/widgets/sampler.js:458 +msgid "Playback" msgstr "" -#: js/LocalCard.js:55 -msgid "Duplicate project" +#: js/widgets/sampler.js:979 +#.TRANS: The reference tone is a sound used for comparison. +msgid "reference tone" msgstr "" -#: js/GlobalTag.js:28 +#: planet/js/GlobalTag.js:28 #.TRANS: On the Planet, we use labels to tag projects. msgid "All Projects" msgstr "" -#: js/GlobalTag.js:30 -#: js/StringHelper.js:37 +#: planet/js/GlobalTag.js:30 +#: planet/js/StringHelper.js:37 #.TRANS: On the Planet, we use labels to tag projects. msgid "My Projects" msgstr "" -#: js/GlobalTag.js:32 +#: planet/js/GlobalTag.js:32 #.TRANS: On the Planet, we use labels to tag projects. msgid "Examples" msgstr "" -#: js/GlobalTag.js:34 +#: planet/js/GlobalTag.js:34 #.TRANS: On the Planet, we use labels to tag projects. msgid "Music" msgstr "" -#: js/GlobalTag.js:36 +#: planet/js/GlobalTag.js:36 #.TRANS: On the Planet, we use labels to tag projects. msgid "Art" msgstr "" -#: js/GlobalTag.js:38 +#: planet/js/GlobalTag.js:38 #.TRANS: On the Planet, we use labels to tag projects. msgid "Math" msgstr "" -#: js/GlobalTag.js:40 +#: planet/js/GlobalTag.js:40 #.TRANS: On the Planet, we use labels to tag projects. msgid "Interactive" msgstr "" -#: js/GlobalTag.js:42 +#: planet/js/GlobalTag.js:42 #.TRANS: On the Planet, we use labels to tag projects. msgid "Design" msgstr "" -#: js/GlobalTag.js:44 +#: planet/js/GlobalTag.js:44 #.TRANS: On the Planet, we use labels to tag projects. msgid "Game" msgstr "" -#: js/GlobalTag.js:46 +#: planet/js/GlobalTag.js:46 #.TRANS: On the Planet, we use labels to tag projects. msgid "Media" msgstr "" -#: js/GlobalTag.js:48 +#: planet/js/GlobalTag.js:48 #.TRANS: On the Planet, we use labels to tag projects. msgid "Sensors" msgstr "" -#: js/GlobalTag.js:52 +#: planet/js/GlobalTag.js:52 #.TRANS: On the Planet, we use labels to tag projects. msgid "Code Snippet" msgstr "" -#: js/helper.js:149 -#: js/StringHelper.js:49 -msgid "Show more tags" +#: planet/js/LocalCard.js:36 +msgid "View published project" msgstr "" -#: js/helper.js:150 -msgid "Show fewer tags" +#: planet/js/LocalCard.js:42 +msgid "Publish project" +msgstr "" + +#: planet/js/LocalCard.js:51 +msgid "Edit project" +msgstr "" + +#: planet/js/LocalCard.js:52 +msgid "Delete project" +msgstr "" + +#: planet/js/LocalCard.js:53 +msgid "Download project" +msgstr "" + +#: planet/js/LocalCard.js:55 +msgid "Duplicate project" +msgstr "" + +#: planet/js/ProjectStorage.js:243 +msgid "anonymous" +msgstr "" + +#: planet/js/SaveInterface.js:34 +msgid "Open in Music Blocks" +msgstr "" + +#: planet/js/SaveInterface.js:35 +msgid "Open in Turtle Blocks" +msgstr "" + +#: planet/js/GlobalCard.js:68 +msgid "Share" +msgstr "" + +#: planet/js/GlobalCard.js:74 +msgid "Flags" +msgstr "" + +#: planet/js/GlobalPlanet.js:35 +msgid "No results found." +msgstr "" + +#: planet/js/GlobalPlanet.js:51 +msgid "Remix of" +msgstr "" + +#: planet/js/GlobalPlanet.js:509 +msgid "Cannot connect to server" msgstr "" -#: js/ProjectViewer.js:30 +#: planet/js/ProjectViewer.js:30 msgid "Error: Report could not be submitted. Try again later." msgstr "" -#: js/ProjectViewer.js:31 +#: planet/js/ProjectViewer.js:31 msgid "Thank you for reporting this project. A moderator will review the project shortly, to verify violation of the Sugar Labs Code of Conduct." msgstr "" -#: js/ProjectViewer.js:32 -#: js/StringHelper.js:62 -#: js/StringHelper.js:64 -#: js/StringHelper.js:68 +#: planet/js/ProjectViewer.js:32 +#: planet/js/StringHelper.js:62 +#: planet/js/StringHelper.js:64 +#: planet/js/StringHelper.js:68 msgid "Report Project" msgstr "" -#: js/ProjectViewer.js:33 -#: js/StringHelper.js:63 +#: planet/js/ProjectViewer.js:33 +#: planet/js/StringHelper.js:63 msgid "Project Reported" msgstr "" -#: js/ProjectViewer.js:34 +#: planet/js/ProjectViewer.js:34 msgid "Report description required" msgstr "" -#: js/ProjectViewer.js:35 +#: planet/js/ProjectViewer.js:35 msgid "Report description too long" msgstr "" -#: js/StringHelper.js:30 +#: planet/js/Publisher.js:30 +msgid "Feature unavailable - cannot connect to server. Reload Music Blocks to try again." +msgstr "" + +#: planet/js/Publisher.js:220 +#: planet/js/Publisher.js:237 +msgid "This field is required" +msgstr "" + +#: planet/js/Publisher.js:227 +msgid "Title too long" +msgstr "" + +#: planet/js/Publisher.js:244 +msgid "Description too long" +msgstr "" + +#: planet/js/Publisher.js:341 +msgid "Server Error" +msgstr "" + +#: planet/js/Publisher.js:341 +msgid "Try Again" +msgstr "" + +#: planet/js/StringHelper.js:30 msgid "Planet" msgstr "" -#: js/StringHelper.js:31 +#: planet/js/StringHelper.js:31 msgid "Close Planet" msgstr "" -#: js/StringHelper.js:32 +#: planet/js/StringHelper.js:32 msgid "Open project from file" msgstr "" -#: js/StringHelper.js:34 +#: planet/js/StringHelper.js:34 msgid "Local" msgstr "" -#: js/StringHelper.js:35 +#: planet/js/StringHelper.js:35 msgid "Global" msgstr "" -#: js/StringHelper.js:36 +#: planet/js/StringHelper.js:36 msgid "Search for a project" msgstr "" -#: js/StringHelper.js:38 +#: planet/js/StringHelper.js:38 msgid "Publish Project" msgstr "" -#: js/StringHelper.js:40 +#: planet/js/StringHelper.js:40 msgid "Tags (max 5)" msgstr "" -#: js/StringHelper.js:41 -#: js/StringHelper.js:61 +#: planet/js/StringHelper.js:41 +#: planet/js/StringHelper.js:61 msgid "Description" msgstr "" -#: js/StringHelper.js:42 -#: js/StringHelper.js:67 +#: planet/js/StringHelper.js:42 +#: planet/js/StringHelper.js:67 msgid "Submit" msgstr "" -#: js/StringHelper.js:43 -#: js/StringHelper.js:47 +#: planet/js/StringHelper.js:43 +#: planet/js/StringHelper.js:47 msgid "Cancel" msgstr "" -#: js/StringHelper.js:44 +#: planet/js/StringHelper.js:44 msgid "Delete \\"\\"?" msgstr "" -#: js/StringHelper.js:45 +#: planet/js/StringHelper.js:45 msgid "Permanently delete project \\"\\"?" msgstr "" -#: js/StringHelper.js:48 +#: planet/js/StringHelper.js:48 msgid "Explore Projects" msgstr "" -#: js/StringHelper.js:50 +#: planet/js/StringHelper.js:49 +#: planet/js/helper.js:149 +msgid "Show more tags" +msgstr "" + +#: planet/js/StringHelper.js:50 msgid "Most recent" msgstr "" -#: js/StringHelper.js:51 +#: planet/js/StringHelper.js:51 msgid "Most liked" msgstr "" -#: js/StringHelper.js:52 +#: planet/js/StringHelper.js:52 msgid "Most downloaded" msgstr "" -#: js/StringHelper.js:53 +#: planet/js/StringHelper.js:53 msgid "A-Z" msgstr "" -#: js/StringHelper.js:54 +#: planet/js/StringHelper.js:54 msgid "Sort by" msgstr "" -#: js/StringHelper.js:55 +#: planet/js/StringHelper.js:55 msgid "Load More Projects" msgstr "" -#: js/StringHelper.js:56 +#: planet/js/StringHelper.js:56 msgid "Last Updated" msgstr "" -#: js/StringHelper.js:57 +#: planet/js/StringHelper.js:57 msgid "Creation Date" msgstr "" -#: js/StringHelper.js:58 +#: planet/js/StringHelper.js:58 msgid "Number of Downloads:" msgstr "" -#: js/StringHelper.js:59 +#: planet/js/StringHelper.js:59 msgid "Number of Likes:" msgstr "" -#: js/StringHelper.js:60 +#: planet/js/StringHelper.js:60 msgid "Tags:" msgstr "" -#: js/StringHelper.js:65 +#: planet/js/StringHelper.js:65 msgid "Report projects which violate the Sugar Labs Code of Conduct." msgstr "" -#: js/StringHelper.js:66 +#: planet/js/StringHelper.js:66 msgid "Reason for reporting project" msgstr "" -#: js/StringHelper.js:70 +#: planet/js/StringHelper.js:70 msgid "Download as File" msgstr "" -#: js/GlobalPlanet.js:35 -msgid "No results found." -msgstr "" - -#: js/GlobalPlanet.js:51 -msgid "Remix of" -msgstr "" - -#: js/GlobalPlanet.js:509 -msgid "Cannot connect to server" -msgstr "" - -#: js/Publisher.js:30 -msgid "Feature unavailable - cannot connect to server. Reload Music Blocks to try again." -msgstr "" - -#: js/Publisher.js:218 -#: js/Publisher.js:235 -msgid "This field is required" -msgstr "" - -#: js/Publisher.js:225 -msgid "Title too long" +#: planet/js/helper.js:150 +msgid "Show fewer tags" msgstr "" -#: js/Publisher.js:242 -msgid "Description too long" +#: plugins/accelerometer.rtp:48 +msgid "motion x" msgstr "" -#: js/Publisher.js:339 -msgid "Server Error" +#: plugins/accelerometer.rtp:56 +msgid "motion y" msgstr "" -#: js/Publisher.js:339 -msgid "Try Again" +#: plugins/accelerometer.rtp:64 +msgid "motion z" msgstr "" -#: js/SaveInterface.js:34 -msgid "Open in Music Blocks" +#: plugins/facebook.rtp:27 +msgid "publish" msgstr "" -#: js/SaveInterface.js:35 -msgid "Open in Turtle Blocks" +#: plugins/maths.rtp:62 +msgid "power" msgstr "" -#: plugins/weather.rtp:68 -#: plugins/weather.rtp:97 -msgid "Days ahead must be in the range of -1 to 5." +#: plugins/maths.rtp:62 +msgid "base" msgstr "" -#: plugins/weather.rtp:122 -msgid "forecast" +#: plugins/maths.rtp:62 +msgid "exp" msgstr "" -#: plugins/weather.rtp:123 -#: plugins/weather.rtp:137 -#: plugins/weather.rtp:150 -msgid "city" +#: plugins/maths.rtp:99 +msgid "floor" msgstr "" -#: plugins/weather.rtp:124 -#: plugins/weather.rtp:138 -#: plugins/weather.rtp:151 -msgid "day" +#: plugins/maths.rtp:104 +msgid "ceiling" msgstr "" -#: plugins/weather.rtp:136 -msgid "high" +#: plugins/maths.rtp:109 +msgid "to degrees" msgstr "" -#: plugins/weather.rtp:149 -msgid "low" +#: plugins/maths.rtp:114 +msgid "to radians" msgstr "" #: plugins/nutrition.rtp:104 @@ -9458,45 +9867,6 @@ msgstr "" msgid "water" msgstr "" -#: plugins/maths.rtp:62 -#: plugins/examples.rtp:93 -msgid "power" -msgstr "" - -#: plugins/maths.rtp:62 -#: plugins/examples.rtp:93 -msgid "base" -msgstr "" - -#: plugins/maths.rtp:62 -#: plugins/examples.rtp:93 -msgid "exp" -msgstr "" - -#: plugins/maths.rtp:99 -#: plugins/examples.rtp:130 -msgid "floor" -msgstr "" - -#: plugins/maths.rtp:104 -#: plugins/examples.rtp:135 -msgid "ceiling" -msgstr "" - -#: plugins/maths.rtp:109 -#: plugins/examples.rtp:140 -msgid "to degrees" -msgstr "" - -#: plugins/maths.rtp:114 -#: plugins/examples.rtp:145 -msgid "to radians" -msgstr "" - -#: plugins/facebook.rtp:27 -msgid "publish" -msgstr "" - #: plugins/rodi.rtp:172 msgid "blink" msgstr "" @@ -9525,18 +9895,66 @@ msgstr "" msgid "move" msgstr "" -#: plugins/accelerometer.rtp:48 -msgid "motion x" +#: plugins/weather.rtp:68 +#: plugins/weather.rtp:97 +msgid "Days ahead must be in the range of -1 to 5." msgstr "" -#: plugins/accelerometer.rtp:56 -msgid "motion y" +#: plugins/weather.rtp:122 +msgid "forecast" msgstr "" -#: plugins/accelerometer.rtp:64 -msgid "motion z" +#: plugins/weather.rtp:123 +#: plugins/weather.rtp:137 +#: plugins/weather.rtp:150 +msgid "city" +msgstr "" + +#: plugins/weather.rtp:124 +#: plugins/weather.rtp:138 +#: plugins/weather.rtp:151 +msgid "day" +msgstr "" + +#: plugins/weather.rtp:136 +msgid "high" +msgstr "" + +#: plugins/weather.rtp:149 +msgid "low" msgstr "" +#: js/toolbar.js:70 + +#: js/toolbar.js:130 + +#: js/toolbar.js:194 + +#: js/toolbar.js:249 + +#~msgid "Toggle JavaScript Editor" +#~msgstr "" + +#: js/EnsembleBlocks.js:643 + +#~msgid "The Turrle pitch block returns the current pitch number being played by the specified turtle." +#~msgstr "" + +#: js/PitchActions.js:88 + +#~msgid "The Scalar Step Block must be used inside of a Note Block." +#~msgstr "" + +#: js/PitchActions.js:107 + +#~msgid "The Scalar Step Block must be preceded by a Pitch Block." +#~msgstr "" + +#: js/musickeyboard.js:2840 + +#~msgid "New action blocks generated!" +#~msgstr "" + #: js/toolbar.js:110 #: js/toolbar.js:204 @@ -9877,11 +10295,6 @@ msgstr "" #~msgid "The Time block returns the number of seconds that the program has been running." #~msgstr "" -#: js/help.js:95 - -#~msgid "Take a tour" -#~msgstr "" - #: js/GlobalCard.js:48 #~msgid "More Details" @@ -12780,11 +13193,6 @@ msgstr "" #~msgid "The save-stack button saves a stack onto a custom palette. It appears after a \"long press\" on a stack." #~msgstr "" -#: js/musicutils.js:254 - -#~msgid "Custom" -#~msgstr "" - #: js/basicblocks.js:4785 #~msgid "Rhythm" diff --git a/po/el.po b/po/el.po index 6f24c790ad..7150dc6dbb 100644 --- a/po/el.po +++ b/po/el.po @@ -2129,276 +2129,131 @@ #: js/planetInterface.js:104 #: js/planetInterface.js:104 #: js/planetInterface.js:104 -msgid "project undefined" +#: js/SaveInterface.js:59 +#: js/SaveInterface.js:61 +#: js/SaveInterface.js:93 +msgid "Music Blocks Project" msgstr "" -#: js/logo.js:61 -msgid "Not a valid pitch name" +#: js/SaveInterface.js:63 +msgid "This project was created in Music Blocks" msgstr "" -#: js/logo.js:507 -#: js/ProgramBlocks.js:258 -#: js/ProgramBlocks.js:427 -msgid "You must select a file." +#: js/SaveInterface.js:67 +msgid "Music Blocks is a Free/Libre Software application." msgstr "" -#: js/logo.js:1184 -#: js/turtles.js:118 -#: js/turtle-painter.js:1192 -#: js/turtle-painter.js:1193 -#: js/block.js:1463 -#: js/lilypond.js:757 -#: js/lilypond.js:921 -#: js/lilypond.js:959 -#: js/ActionBlocks.js:1223 -#: js/ProgramBlocks.js:1267 -msgid "start" -msgstr "έναρξη" - -#: js/logo.js:1696 -msgid "Playback is ready." +#: js/SaveInterface.js:69 +msgid "The source code can be accessed at" msgstr "" -#: js/blocks.js:1011 -#: js/blocks.js:3427 -#: js/blocks.js:3428 -#: js/blocks.js:3653 -#: js/blocks.js:4012 -#: js/blocks.js:4205 -#: js/blocks.js:5343 -#: js/blocks.js:6474 -#: js/palette.js:527 -#: js/palette.js:536 -#: js/palette.js:545 -#: js/palette.js:554 -#: js/palette.js:1131 -#: js/palette.js:1142 -#: js/palette.js:1153 -#: js/palette.js:1164 -#: js/palette.js:1183 -#: js/rubrics.js:529 -#: js/macros.js:170 -#: js/macros.js:266 -#: js/macros.js:267 -#: js/macros.js:276 -#: js/macros.js:828 -#: js/block.js:1449 -#: js/block.js:4164 -#: js/block.js:4182 -#: js/block.js:4193 -#: js/turtledefs.js:128 -#: js/turtledefs.js:230 -#: js/ActionBlocks.js:254 -#: js/ActionBlocks.js:307 -#: js/ActionBlocks.js:617 -#: js/ActionBlocks.js:716 -#: js/ActionBlocks.js:961 -#: js/ActionBlocks.js:1049 -#: js/ActionBlocks.js:1322 -#: js/ActionBlocks.js:1325 -#: js/ActionBlocks.js:1337 -#: js/ActionBlocks.js:1404 -#: js/MeterBlocks.js:715 -#: js/MeterBlocks.js:768 -#: js/MeterBlocks.js:831 -#: js/MeterBlocks.js:892 -#: js/phrasemaker.js:4412 -#: js/musickeyboard.js:2647 -#: js/rhythmruler.js:1928 -#: js/rhythmruler.js:1935 -#: js/rhythmruler.js:2119 -#: js/rhythmruler.js:2126 -msgid "action" -msgstr "ενέργεια" - -#: js/blocks.js:1205 -#: js/blocks.js:3380 -#: js/blocks.js:3770 -#: js/blocks.js:3801 -#: js/blocks.js:3850 -#: js/blocks.js:3885 -#: js/blocks.js:6497 -#: js/palette.js:509 -#: js/palette.js:638 -#: js/palette.js:1107 -#: js/BoxesBlocks.js:282 -#: js/BoxesBlocks.js:285 -#: js/BoxesBlocks.js:405 -#: js/BoxesBlocks.js:594 -msgid "box" -msgstr "πλαίσιο" - -#: js/blocks.js:1680 -msgid "Consider breaking this stack into parts." +#: js/SaveInterface.js:72 +msgid "For more information, please consult the" msgstr "" -#: js/blocks.js:2408 -#: js/palette.js:653 -#: js/MediaBlocks.js:602 -msgid "open file" +#: js/SaveInterface.js:76 +#: js/turtledefs.js:795 +msgid "Music Blocks Guide" msgstr "" -#: js/blocks.js:2415 -#: js/blocks.js:2423 -#: js/activity.js:1875 -msgid "audio file" +#: js/SaveInterface.js:83 +msgid "Alternatively, open the file in Music Blocks using the Load project button." msgstr "" -#: js/blocks.js:2536 -#: js/blocks.js:3147 -#: js/block.js:3543 -msgid "on2" +#: js/SaveInterface.js:85 +msgid "Project Code" msgstr "" -#: js/blocks.js:2538 -#: js/blocks.js:3149 -#: js/block.js:3545 -msgid "off" +#: js/SaveInterface.js:87 +msgid "This code stores data about the blocks in a project." msgstr "" -#: js/blocks.js:2543 -#: js/blocks.js:3154 -#: js/palette.js:618 -#: js/block.js:3466 -#: js/BooleanBlocks.js:77 -#: js/BooleanBlocks.js:167 -#: js/BooleanBlocks.js:251 -#: js/BooleanBlocks.js:335 -#: js/BooleanBlocks.js:433 -#: js/BooleanBlocks.js:539 -#: js/BooleanBlocks.js:640 -#: js/BooleanBlocks.js:741 -#: js/BooleanBlocks.js:847 -#: js/BooleanBlocks.js:948 -#: js/BooleanBlocks.js:1033 -#: js/SensorsBlocks.js:910 -msgid "true" +#: js/SaveInterface.js:89 +msgid "Show" msgstr "" -#: js/blocks.js:2545 -#: js/blocks.js:3156 -#: js/block.js:3466 -#: js/BooleanBlocks.js:79 -#: js/BooleanBlocks.js:169 -#: js/BooleanBlocks.js:253 -#: js/BooleanBlocks.js:337 -#: js/BooleanBlocks.js:435 -#: js/BooleanBlocks.js:541 -#: js/BooleanBlocks.js:642 -#: js/BooleanBlocks.js:743 -#: js/BooleanBlocks.js:849 -#: js/BooleanBlocks.js:950 -#: js/SensorsBlocks.js:912 -msgid "false" +#: js/SaveInterface.js:91 +msgid "Hide" msgstr "" -#: js/blocks.js:3183 -#: js/palette.js:574 -#: js/MediaBlocks.js:892 -#: js/MediaBlocks.js:963 -msgid "text" -msgstr "κείμενο" - -#: js/blocks.js:3379 -#: js/palette.js:641 -#: js/palette.js:642 -#: js/BoxesBlocks.js:514 -msgid "store in box" +#: js/SaveInterface.js:131 +#: js/SaveInterface.js:204 +#: js/SaveInterface.js:262 +#: js/SaveInterface.js:389 +#: js/SaveInterface.js:417 +#: js/activity.js:4884 +#: planet/js/ProjectStorage.js:27 +#: planet/js/GlobalPlanet.js:467 +#: planet/js/GlobalPlanet.js:469 +#: planet/js/GlobalPlanet.js:495 +#.TRANS: default project title when saving as Lilypond +msgid "My Project" msgstr "" -#: js/blocks.js:3384 -#: js/blocks.js:3824 -#: js/blocks.js:3859 -#: js/blocks.js:3894 -#: js/blocks.js:5773 -#: js/blocks.js:5794 -#: js/BoxesBlocks.js:772 -msgid "box1" +#: js/SaveInterface.js:197 +#: planet/js/SaveInterface.js:58 +msgid "No description provided" msgstr "" -#: js/blocks.js:3386 -#: js/blocks.js:3826 -#: js/blocks.js:3861 -#: js/blocks.js:3896 -#: js/blocks.js:5775 -#: js/blocks.js:5796 -#: js/BoxesBlocks.js:663 -msgid "box2" +#: js/SaveInterface.js:332 +msgid "Your recording is in progress." msgstr "" -#: js/blocks.js:4058 -#: js/palette.js:639 -#: js/palette.js:644 -#: js/palette.js:1043 -#: js/BoxesBlocks.js:591 -msgid "store in" -msgstr "αποθήκευση στο" - -#: js/blocks.js:4058 -#: js/EnsembleBlocks.js:391 -#: js/EnsembleBlocks.js:402 -#: js/MediaBlocks.js:746 -#: js/ProgramBlocks.js:390 -#: js/ProgramBlocks.js:495 -#: js/ProgramBlocks.js:658 -#: js/BoxesBlocks.js:595 -#: js/PitchBlocks.js:656 -#: js/PitchBlocks.js:932 -#: js/PitchBlocks.js:1827 -#: js/ToneBlocks.js:1025 -#: js/DictBlocks.js:215 -#: js/DictBlocks.js:289 -msgid "name" +#: js/SaveInterface.js:401 +#.TRANS: File name prompt for save as Lilypond +msgid "File name" msgstr "" -#: js/blocks.js:4058 -#: js/RhythmBlocks.js:1130 -#: js/BoxesBlocks.js:75 -#: js/BoxesBlocks.js:595 -#: js/HeapBlocks.js:544 -#: js/DictBlocks.js:289 -#: js/DictBlocks.js:430 -msgid "value" -msgstr "τιμή" - -#: js/blocks.js:4907 -msgid "There is no block selected." +#: js/SaveInterface.js:403 +#: planet/js/StringHelper.js:39 +#.TRANS: Project title prompt for save as Lilypond +msgid "Project title" msgstr "" -#: js/blocks.js:5002 -#: js/MediaBlocks.js:888 -msgid "show" -msgstr "εμφάνιση" - -#: js/blocks.js:5005 -#: js/MediaBlocks.js:803 -#.TRANS: Avatar is the image used to determine the appearance of the mouse. -msgid "avatar" +#: js/SaveInterface.js:405 +#.TRANS: Project title prompt for save as Lilypond +msgid "Project author" msgstr "" -#: js/blocks.js:5008 -#: js/ToneBlocks.js:1010 -#: js/sampler.js:693 -#.TRANS: The sound sample that the user uploads. -msgid "sample" +#: js/SaveInterface.js:407 +#.TRANS: MIDI prompt for save as Lilypond +msgid "Include MIDI output?" msgstr "" -#: js/turtles.js:874 -msgid "Grid" -msgstr "Πλέγμα" +#: js/SaveInterface.js:409 +#.TRANS: Guitar prompt for save as Lilypond +msgid "Include guitar tablature output?" +msgstr "" -#: js/turtles.js:891 -#: js/turtledefs.js:626 -msgid "Clean" -msgstr "Καθαρισμός" +#: js/SaveInterface.js:411 +#.TRANS: Lilypond is a scripting language for generating sheet music +msgid "Save as Lilypond" +msgstr "" -#: js/turtles.js:912 -#: js/turtledefs.js:632 -msgid "Collapse" +#: js/SaveInterface.js:426 +#: js/blocks/EnsembleBlocks.js:75 +#: js/blocks/EnsembleBlocks.js:154 +#: js/blocks/EnsembleBlocks.js:216 +#: js/blocks/EnsembleBlocks.js:302 +#: js/blocks/EnsembleBlocks.js:348 +#: js/blocks/EnsembleBlocks.js:389 +#: js/blocks/EnsembleBlocks.js:441 +#: js/blocks/EnsembleBlocks.js:490 +#: js/blocks/EnsembleBlocks.js:536 +#: js/blocks/EnsembleBlocks.js:583 +#: js/blocks/EnsembleBlocks.js:637 +#: js/blocks/EnsembleBlocks.js:753 +#: js/blocks/EnsembleBlocks.js:840 +#: js/blocks/EnsembleBlocks.js:899 +#: js/blocks/EnsembleBlocks.js:942 +#: js/blocks/EnsembleBlocks.js:1212 +#: js/blocks/EnsembleBlocks.js:1280 +#.TRANS: default project author when saving as Lilypond +msgid "Mr. Mouse" msgstr "" -#: js/turtles.js:940 -msgid "Expand" +#: js/SaveInterface.js:573 +msgid "The Lilypond code is copied to clipboard. You can paste it here: " msgstr "" #: js/languagebox.js:198 @@ -2409,6933 +2264,7487 @@ msgstr "" msgid "Music Blocks is already set to this language." msgstr "" -#: js/piemenus.js:200 -#: js/musicutils.js:808 -#: js/musicutils.js:824 -#: js/phrasemaker.js:1672 -#: js/musickeyboard.js:2041 -#: js/sampler.js:544 -#.TRANS: double sharp is a music term related to pitch -msgid "double sharp" +#: js/planetInterface.js:131 +msgid "project undefined" msgstr "" -#: js/piemenus.js:201 -#: js/PitchBlocks.js:1510 -#: js/PitchActions.js:580 -#: js/musicutils.js:806 -#: js/musicutils.js:825 -#: js/phrasemaker.js:1673 -#: js/musickeyboard.js:2042 -#: js/sampler.js:545 -#.TRANS: sharp is a half-step up in pitch -#.TRANS: sharp is a music term related to pitch -msgid "sharp" +#: js/rubrics.js:523 +#: js/turtledefs.js:119 +#: js/turtledefs.js:221 +#: js/blocks/RhythmBlockPaletteBlocks.js:52 +#: js/blocks/RhythmBlockPaletteBlocks.js:234 +#: js/blocks/ProgramBlocks.js:745 +#: js/widgets/rhythmruler.js:2057 +#: js/widgets/rhythmruler.js:2064 +#: js/widgets/rhythmruler.js:2133 +#: js/widgets/rhythmruler.js:2140 +#: js/widgets/rhythmruler.js:2219 +#.TRANS: an arrangement of notes based on duration +msgid "rhythm" msgstr "" -#: js/piemenus.js:202 -#: js/musicutils.js:804 -#: js/musicutils.js:826 -#: js/phrasemaker.js:1674 -#: js/musickeyboard.js:2043 -#: js/sampler.js:546 -#.TRANS: natural is a music term related to pitch -msgid "natural" +#: js/rubrics.js:524 +#: js/turtledefs.js:121 +#: js/turtledefs.js:223 +#: js/block-verbose.js:2622 +#: js/block.js:2550 +#: js/blocks/IntervalsBlocks.js:63 +#: js/blocks/SensorsBlocks.js:178 +#: js/blocks/PitchBlocks.js:1839 +#: js/blocks/PitchBlocks.js:1853 +#: js/widgets/musickeyboard.js:1935 +#: js/widgets/phrasemaker.js:1036 +#.TRANS: pitch number +#.TRANS: pitch number +#.TRANS: we specify pitch in terms of a name and an octave. The name can be CDEFGAB or Do Re Mi Fa Sol La Ti. Octave is a number between 1 and 8. +msgid "pitch" msgstr "" -#: js/piemenus.js:203 -#: js/PitchBlocks.js:1469 -#: js/PitchActions.js:583 -#: js/musicutils.js:802 -#: js/musicutils.js:827 -#: js/phrasemaker.js:1675 -#: js/musickeyboard.js:2044 -#: js/sampler.js:547 -#.TRANS: flat is a half-step down in pitch -#.TRANS: flat is a music term related to pitch -msgid "flat" +#: js/rubrics.js:525 +#: js/turtledefs.js:123 +#: js/turtledefs.js:225 +msgid "tone" msgstr "" -#: js/piemenus.js:204 -#: js/musicutils.js:800 -#: js/musicutils.js:828 -#: js/phrasemaker.js:1676 -#: js/musickeyboard.js:2045 -#: js/sampler.js:548 -#.TRANS: double flat is a music term related to pitch -msgid "double flat" +#: js/rubrics.js:526 +#: js/lilypond.js:605 +#: js/lilypond.js:904 +#: js/lilypond.js:910 +#: js/lilypond.js:948 +msgid "mouse" msgstr "" -#: js/piemenus.js:2861 -#: js/PitchBlocks.js:1357 -#: js/musicutils.js:627 -#.TRANS: unison means the note is the same as the current note -#.TRANS: unison is a music term related to intervals -msgid "unison" +#: js/rubrics.js:527 +#: js/turtledefs.js:132 +#: js/turtledefs.js:234 +#: js/widgets/phrasemaker.js:1040 +msgid "pen" msgstr "" -#: js/piemenus.js:3015 -#: js/piemenus.js:3088 -#: js/musicutils.js:635 -#: js/musicutils.js:810 -#: js/musicutils.js:912 -#.TRANS: major is a music term related to intervals and mode -msgid "major" -msgstr "" +#: js/rubrics.js:528 +#: js/turtledefs.js:133 +#: js/turtledefs.js:235 +#: js/blocks/NumberBlocks.js:981 +#: js/blocks/PitchBlocks.js:1717 +#: js/blocks/PitchBlocks.js:1758 +msgid "number" +msgstr "αριθμός" -#: js/piemenus.js:3015 -#: js/piemenus.js:3088 -#: js/musicutils.js:653 -#.TRANS: modal scale for music -msgid "ionian" +#: js/rubrics.js:529 +#: js/turtledefs.js:127 +#: js/turtledefs.js:229 +msgid "flow" msgstr "" -#: js/piemenus.js:3017 -#: js/piemenus.js:3092 -#: js/musicutils.js:633 -#: js/musicutils.js:811 -#: js/musicutils.js:909 -#.TRANS: minor is a music term related to intervals and mode -msgid "minor" -msgstr "" +#: js/rubrics.js:530 +#: js/turtledefs.js:128 +#: js/turtledefs.js:230 +#: js/block-verbose.js:1609 +#: js/block-verbose.js:4559 +#: js/block-verbose.js:4577 +#: js/block-verbose.js:4588 +#: js/block.js:1573 +#: js/block.js:4483 +#: js/block.js:4501 +#: js/block.js:4512 +#: js/blocks.js:1018 +#: js/blocks.js:3491 +#: js/blocks.js:3492 +#: js/blocks.js:3717 +#: js/blocks.js:4076 +#: js/blocks.js:4269 +#: js/blocks.js:5432 +#: js/blocks.js:6563 +#: js/macros.js:170 +#: js/macros.js:266 +#: js/macros.js:267 +#: js/macros.js:276 +#: js/macros.js:828 +#: js/palette.js:527 +#: js/palette.js:536 +#: js/palette.js:545 +#: js/palette.js:554 +#: js/palette.js:1129 +#: js/palette.js:1140 +#: js/palette.js:1151 +#: js/palette.js:1162 +#: js/palette.js:1181 +#: js/blocks/ActionBlocks.js:254 +#: js/blocks/ActionBlocks.js:307 +#: js/blocks/ActionBlocks.js:617 +#: js/blocks/ActionBlocks.js:716 +#: js/blocks/ActionBlocks.js:961 +#: js/blocks/ActionBlocks.js:1049 +#: js/blocks/ActionBlocks.js:1322 +#: js/blocks/ActionBlocks.js:1325 +#: js/blocks/ActionBlocks.js:1337 +#: js/blocks/ActionBlocks.js:1404 +#: js/blocks/MeterBlocks.js:715 +#: js/blocks/MeterBlocks.js:768 +#: js/blocks/MeterBlocks.js:831 +#: js/blocks/MeterBlocks.js:892 +#: js/widgets/musickeyboard.js:2986 +#: js/widgets/phrasemaker.js:4913 +#: js/widgets/rhythmruler.js:2319 +#: js/widgets/rhythmruler.js:2326 +#: js/widgets/rhythmruler.js:2511 +#: js/widgets/rhythmruler.js:2518 +msgid "action" +msgstr "ενέργεια" -#: js/piemenus.js:3017 -#: js/piemenus.js:3092 -#: js/musicutils.js:663 -#.TRANS: modal scale for music -msgid "aeolian" +#: js/rubrics.js:531 +#: js/turtledefs.js:136 +#: js/turtledefs.js:238 +msgid "sensors" msgstr "" -#: js/piemenus.js:3407 -msgid "Duplicate" +#: js/rubrics.js:532 +#: js/turtledefs.js:135 +#: js/turtledefs.js:237 +#: js/blocks/MediaBlocks.js:930 +msgid "media" msgstr "" -#: js/piemenus.js:3408 -#: js/turtledefs.js:534 -msgid "Extract" +#: js/rubrics.js:533 +msgid "mice" msgstr "" -#: js/piemenus.js:3409 -msgid "Move to trash" +#: js/toolbar.js:48 +#: js/toolbar.js:109 +msgid "About Music Blocks" msgstr "" -#: js/piemenus.js:3410 -#: js/timbre.js:968 -#: js/StringHelper.js:69 -msgid "Close" +#: js/toolbar.js:49 +#: js/toolbar.js:110 +#: js/toolbar.js:175 +#: js/toolbar.js:231 +#: js/turtledefs.js:445 +#: js/turtledefs.js:482 +#: js/activity.js:2660 +#: js/activity.js:2671 +#: js/activity.js:2902 +#: js/widgets/modewidget.js:77 +#: js/widgets/meterwidget.js:185 +#: js/widgets/pitchdrummatrix.js:147 +#: js/widgets/pitchdrummatrix.js:687 +#: js/widgets/pitchdrummatrix.js:689 +#: js/widgets/pitchdrummatrix.js:741 +#: js/widgets/pitchdrummatrix.js:743 +#: js/widgets/pitchdrummatrix.js:758 +#: js/widgets/pitchdrummatrix.js:760 +#: js/widgets/pitchdrummatrix.js:789 +#: js/widgets/pitchdrummatrix.js:791 +#: js/widgets/pitchstaircase.js:121 +#: js/widgets/temperament.js:610 +#: js/widgets/temperament.js:613 +#: js/widgets/temperament.js:673 +#: js/widgets/temperament.js:675 +#: js/widgets/temperament.js:2017 +#: js/widgets/temperament.js:2019 +#: js/widgets/tempo.js:84 +#: js/widgets/tempo.js:86 +#: js/widgets/timbre.js:432 +#: js/widgets/timbre.js:434 +#: js/widgets/timbre.js:465 +#: js/widgets/timbre.js:467 +#: js/widgets/timbre.js:746 +#: js/widgets/aiwidget.js:647 +#: js/widgets/aiwidget.js:654 +#: js/widgets/aiwidget.js:656 +#: js/widgets/arpeggio.js:90 +#: js/widgets/arpeggio.js:547 +#: js/widgets/arpeggio.js:549 +#: js/widgets/arpeggio.js:644 +#: js/widgets/arpeggio.js:646 +#: js/widgets/musickeyboard.js:676 +#: js/widgets/musickeyboard.js:872 +#: js/widgets/musickeyboard.js:874 +#: js/widgets/musickeyboard.js:953 +#: js/widgets/musickeyboard.js:955 +#: js/widgets/phrasemaker.js:513 +#: js/widgets/phrasemaker.js:523 +#: js/widgets/phrasemaker.js:525 +#: js/widgets/phrasemaker.js:4304 +#: js/widgets/phrasemaker.js:4528 +#: js/widgets/phrasemaker.js:4533 +#: js/widgets/phrasemaker.js:4535 +#: js/widgets/phrasemaker.js:4650 +#: js/widgets/rhythmruler.js:637 +#: js/widgets/rhythmruler.js:639 +#: js/widgets/rhythmruler.js:653 +#: js/widgets/rhythmruler.js:655 +#: js/widgets/sampler.js:162 +#: js/widgets/sampler.js:164 +#: js/widgets/sampler.js:363 +msgid "Play" msgstr "" -#: js/piemenus.js:3416 -msgid "Save stack" +#: js/toolbar.js:50 +#: js/toolbar.js:111 +#: js/toolbar.js:176 +#: js/toolbar.js:232 +#: js/turtledefs.js:451 +#: js/turtledefs.js:488 +#: js/activity.js:2679 +#: js/widgets/modewidget.js:99 +#: js/widgets/modewidget.js:101 +#: js/widgets/meterwidget.js:206 +#: js/widgets/meterwidget.js:208 +#: js/widgets/pitchdrummatrix.js:674 +#: js/widgets/pitchdrummatrix.js:676 +#: js/widgets/temperament.js:2002 +#: js/widgets/temperament.js:2004 +#: js/widgets/arpeggio.js:534 +#: js/widgets/arpeggio.js:536 +#: js/widgets/phrasemaker.js:534 +#: js/widgets/phrasemaker.js:536 +msgid "Stop" +msgstr "Διακοπή" + +#: js/toolbar.js:51 +#: js/toolbar.js:112 +#: js/toolbar.js:177 +#: js/toolbar.js:233 +#: js/turtledefs.js:498 +msgid "Record" msgstr "" -#: js/piemenus.js:3420 -#: js/toolbar.js:60 +#: js/toolbar.js:52 +#: js/toolbar.js:53 +msgid "Full screen" +msgstr "" + +#: js/toolbar.js:54 +#: js/toolbar.js:115 +#: js/toolbar.js:180 +#: js/toolbar.js:236 +#: js/turtledefs.js:504 +msgid "Toggle Fullscreen" +msgstr "" + +#: js/toolbar.js:55 +#: js/toolbar.js:116 +#: js/toolbar.js:181 +#: js/toolbar.js:237 +#: js/turtledefs.js:510 +#: planet/js/StringHelper.js:33 +msgid "New project" +msgstr "" + +#: js/toolbar.js:56 +#: js/toolbar.js:117 +#: js/toolbar.js:182 +#: js/toolbar.js:238 +#: js/turtledefs.js:516 +msgid "Load project from file" +msgstr "" + +#: js/toolbar.js:57 +#: js/toolbar.js:118 +#: js/toolbar.js:119 +#: js/toolbar.js:183 +#: js/toolbar.js:239 +#: js/turtledefs.js:541 +#: js/turtledefs.js:550 +#: js/turtledefs.js:571 +msgid "Save project" +msgstr "" + +#: js/toolbar.js:58 +#: js/toolbar.js:77 +#: js/toolbar.js:79 +#: js/toolbar.js:138 +#: js/toolbar.js:147 +#: js/toolbar.js:149 +#: js/toolbar.js:184 +#: js/toolbar.js:202 +#: js/toolbar.js:204 +#: js/toolbar.js:240 +#: js/toolbar.js:258 +#: js/toolbar.js:260 +msgid "Save project as HTML" +msgstr "" + +#: js/toolbar.js:59 #: js/toolbar.js:120 #: js/toolbar.js:185 -#: js/toolbar.js:240 +#: js/toolbar.js:241 +msgid "Find and share projects" +msgstr "" + +#: js/toolbar.js:60 +#: js/toolbar.js:121 +#: js/toolbar.js:186 +#: js/toolbar.js:242 +msgid "Offline. Sharing is unavailable" +msgstr "" + +#: js/toolbar.js:61 +#: js/toolbar.js:122 +#: js/toolbar.js:187 +#: js/toolbar.js:243 +msgid "Auxiliary menu" +msgstr "" + +#: js/toolbar.js:62 +#: js/toolbar.js:123 +#: js/toolbar.js:188 +#: js/toolbar.js:244 #: js/turtledefs.js:752 +#: js/piemenus.js:3423 msgid "Help" msgstr "Βοήθεια" -#: js/piemenus.js:3762 -msgid "You have chosen key " +#: js/toolbar.js:63 +#: js/toolbar.js:124 +#: js/toolbar.js:189 +#: js/toolbar.js:245 +msgid "Run slowly" +msgstr "" + +#: js/toolbar.js:64 +#: js/toolbar.js:125 +#: js/toolbar.js:190 +#: js/toolbar.js:246 +#: js/turtledefs.js:682 +msgid "Run step by step" +msgstr "" + +#: js/toolbar.js:65 +#: js/toolbar.js:126 +#: js/toolbar.js:191 +#: js/toolbar.js:247 +#: js/turtledefs.js:689 +msgid "Display statistics" +msgstr "" + +#: js/toolbar.js:66 +#: js/toolbar.js:127 +#: js/toolbar.js:192 +#: js/toolbar.js:248 +msgid "Load plugin" +msgstr "" + +#: js/toolbar.js:67 +#: js/toolbar.js:128 +#: js/toolbar.js:193 +#: js/toolbar.js:249 +#: js/turtledefs.js:696 +msgid "Delete plugin" +msgstr "" + +#: js/toolbar.js:68 +#: js/toolbar.js:129 +#: js/toolbar.js:194 +#: js/toolbar.js:250 +msgid "Enable horizontal scrolling" +msgstr "" + +#: js/toolbar.js:69 +#: js/toolbar.js:130 +#: js/toolbar.js:195 +#: js/toolbar.js:251 +msgid "Disable horizontal scrolling" +msgstr "" + +#: js/toolbar.js:70 +#: js/toolbar.js:131 +#: js/toolbar.js:196 +#: js/toolbar.js:252 +#: planet/js/LocalCard.js:54 +#: planet/js/StringHelper.js:71 +msgid "Merge with current project" +msgstr "" + +#: js/toolbar.js:71 +#: js/toolbar.js:132 +msgid "Set Pitch Preview" +msgstr "" + +#: js/toolbar.js:72 +#: js/toolbar.js:133 +#: js/toolbar.js:197 +#: js/toolbar.js:253 +msgid "JavaScript Editor" +msgstr "" + +#: js/toolbar.js:73 +#: js/toolbar.js:134 +#: js/toolbar.js:198 +#: js/toolbar.js:254 +#: js/turtledefs.js:724 +msgid "Restore" +msgstr "" + +#: js/toolbar.js:74 +#: js/toolbar.js:135 +#: js/toolbar.js:199 +#: js/toolbar.js:255 +msgid "Switch to beginner mode" +msgstr "" + +#: js/toolbar.js:75 +#: js/toolbar.js:136 +#: js/toolbar.js:200 +#: js/toolbar.js:256 +msgid "Switch to advanced mode" +msgstr "" + +#: js/toolbar.js:76 +#: js/toolbar.js:137 +#: js/toolbar.js:146 +#: js/toolbar.js:201 +#: js/toolbar.js:257 +#: js/turtledefs.js:738 +msgid "Select language" +msgstr "" + +#: js/toolbar.js:78 +#: js/toolbar.js:81 +#: js/toolbar.js:140 +#: js/turtledefs.js:579 +msgid "Save mouse artwork as PNG" +msgstr "" + +#: js/toolbar.js:80 +#: js/toolbar.js:139 +#: js/turtledefs.js:575 +msgid "Save mouse artwork as SVG" +msgstr "" + +#: js/toolbar.js:82 +#: js/toolbar.js:141 +#: js/turtledefs.js:583 +msgid "Save music as WAV" +msgstr "" + +#: js/toolbar.js:83 +#: js/toolbar.js:142 +#: js/turtledefs.js:587 +msgid "Save sheet music as ABC" +msgstr "" + +#: js/toolbar.js:84 +#: js/toolbar.js:143 +#: js/turtledefs.js:591 +msgid "Save sheet music as Lilypond" +msgstr "" + +#: js/toolbar.js:85 +msgid "Save sheet music as MusicXML" +msgstr "" + +#: js/toolbar.js:86 +#: js/toolbar.js:144 +#: js/toolbar.js:152 +#: js/toolbar.js:207 +#: js/toolbar.js:263 +#: js/turtledefs.js:562 +#: js/turtledefs.js:595 +msgid "Save block artwork as SVG" +msgstr "" + +#: js/toolbar.js:87 +#: js/toolbar.js:145 +#: js/toolbar.js:153 +#: js/toolbar.js:208 +#: js/toolbar.js:264 +#: js/turtles.js:911 +msgid "Confirm" +msgstr "" + +#: js/toolbar.js:88 +#: js/toolbar.js:154 +#: js/toolbar.js:209 +#: js/toolbar.js:265 +msgid "English (United States)" +msgstr "" + +#: js/toolbar.js:89 +#: js/toolbar.js:155 +#: js/toolbar.js:210 +#: js/toolbar.js:266 +msgid "English (United Kingdom)" +msgstr "" + +#: js/toolbar.js:90 +#: js/toolbar.js:156 +#: js/toolbar.js:211 +#: js/toolbar.js:267 +msgid "日本語" +msgstr "" + +#: js/toolbar.js:91 +msgid "한국어" +msgstr "" + +#: js/toolbar.js:92 +#: js/toolbar.js:158 +#: js/toolbar.js:213 +#: js/toolbar.js:269 +msgid "español" +msgstr "" + +#: js/toolbar.js:93 +#: js/toolbar.js:159 +#: js/toolbar.js:214 +#: js/toolbar.js:270 +msgid "português" +msgstr "" + +#: js/toolbar.js:94 +#: js/toolbar.js:160 +#: js/toolbar.js:215 +#: js/toolbar.js:271 +msgid "にほんご" +msgstr "" + +#: js/toolbar.js:95 +#: js/toolbar.js:161 +#: js/toolbar.js:216 +#: js/toolbar.js:272 +msgid "中文" +msgstr "" + +#: js/toolbar.js:96 +#: js/toolbar.js:162 +#: js/toolbar.js:217 +#: js/toolbar.js:273 +msgid "ภาษาไทย" +msgstr "" + +#: js/toolbar.js:97 +#: js/toolbar.js:163 +#: js/toolbar.js:218 +#: js/toolbar.js:274 +msgid "aymara" +msgstr "" + +#: js/toolbar.js:98 +#: js/toolbar.js:164 +#: js/toolbar.js:219 +#: js/toolbar.js:275 +msgid "quechua" +msgstr "" + +#: js/toolbar.js:99 +#: js/toolbar.js:165 +#: js/toolbar.js:220 +#: js/toolbar.js:276 +msgid "guarani" +msgstr "" + +#: js/toolbar.js:100 +#: js/toolbar.js:166 +#: js/toolbar.js:221 +#: js/toolbar.js:277 +msgid "हिंदी" +msgstr "" + +#: js/toolbar.js:101 +#: js/toolbar.js:168 +#: js/toolbar.js:222 +#: js/toolbar.js:279 +msgid "igbo" +msgstr "" + +#: js/toolbar.js:102 +#: js/toolbar.js:169 +#: js/toolbar.js:223 +#: js/toolbar.js:280 +msgid "عربى" +msgstr "" + +#: js/toolbar.js:103 +#: js/toolbar.js:167 +#: js/toolbar.js:224 +#: js/toolbar.js:278 +msgid "తెలుగు" +msgstr "" + +#: js/toolbar.js:104 +#: js/toolbar.js:170 +#: js/toolbar.js:225 +#: js/toolbar.js:281 +msgid "עִברִית" +msgstr "" + +#: js/toolbar.js:113 +#: js/toolbar.js:114 +#: js/toolbar.js:178 +#: js/toolbar.js:179 +#: js/toolbar.js:234 +#: js/toolbar.js:235 +msgid "Full Screen" +msgstr "" + +#: js/toolbar.js:148 +#: js/toolbar.js:151 +#: js/toolbar.js:203 +#: js/toolbar.js:206 +#: js/toolbar.js:259 +#: js/toolbar.js:262 +#: js/turtledefs.js:558 +msgid "Save turtle artwork as PNG" +msgstr "" + +#: js/toolbar.js:150 +#: js/toolbar.js:205 +#: js/toolbar.js:261 +#: js/turtledefs.js:554 +msgid "Save turtle artwork as SVG" +msgstr "" + +#: js/toolbar.js:157 +#: js/toolbar.js:212 +#: js/toolbar.js:268 +msgid "한국인" +msgstr "" + +#: js/toolbar.js:174 +#: js/toolbar.js:230 +msgid "About Turtle Blocks" +msgstr "" + +#: js/toolbar.js:446 +#: js/toolbar.js:457 +#: js/toolbar.js:497 +msgid "Turtle Wrap Off" +msgstr "" + +#: js/toolbar.js:466 +#: js/toolbar.js:506 +msgid "Turtle Wrap On" +msgstr "" + +#: js/turtle-painter.js:1192 +#: js/turtle-painter.js:1193 +#: js/turtles.js:118 +#: js/block-verbose.js:1623 +#: js/block.js:1587 +#: js/lilypond.js:749 +#: js/lilypond.js:913 +#: js/lilypond.js:951 +#: js/logo.js:1184 +#: js/blocks/ActionBlocks.js:1223 +#: js/blocks/ProgramBlocks.js:1267 +msgid "start" +msgstr "έναρξη" + +#: js/turtledefs.js:40 +#.TRANS: put the URL to the guide here, e.g., https://github.com/sugarlabs/turtleblocksjs/tree/master/guide/README.md +msgid "guide url" +msgstr "" + +#: js/turtledefs.js:85 +#: js/turtledefs.js:437 +msgid "Turtle Blocks is a Logo-inspired turtle that draws colorful pictures with snap-together visual-programming blocks." +msgstr "" + +#: js/turtledefs.js:118 +#: js/turtledefs.js:220 +msgid "search" +msgstr "" + +#: js/turtledefs.js:120 +#: js/turtledefs.js:222 +#: js/blocks/MeterBlocks.js:1343 +#: js/blocks/WidgetBlocks.js:522 +#.TRANS: musical meter (time signature), e.g., 4:4 +msgid "meter" +msgstr "" + +#: js/turtledefs.js:122 +#: js/turtledefs.js:224 +msgid "intervals" +msgstr "" + +#: js/turtledefs.js:124 +#: js/turtledefs.js:226 +msgid "ornament" +msgstr "" + +#: js/turtledefs.js:125 +#: js/turtledefs.js:227 +#: js/blocks/VolumeBlocks.js:362 +#: js/blocks/VolumeBlocks.js:502 +#: js/blocks/VolumeBlocks.js:545 +msgid "volume" +msgstr "" + +#: js/turtledefs.js:126 +#: js/turtledefs.js:228 +#: js/block-verbose.js:1700 +#: js/block-verbose.js:2626 +#: js/block.js:1664 +#: js/block.js:2554 +#: js/lilypond.js:732 +#: js/lilypond.js:897 +#: js/lilypond.js:941 +#: js/palette.js:577 +#: js/blocks/RhythmBlocks.js:766 +#: js/blocks/DrumBlocks.js:477 +#: js/blocks/VolumeBlocks.js:502 +#: js/widgets/phrasemaker.js:1038 +msgid "drum" +msgstr "" + +#: js/turtledefs.js:129 +#: js/turtledefs.js:231 +msgid "boxes" +msgstr "" + +#: js/turtledefs.js:130 +#: js/turtledefs.js:232 +msgid "widgets" +msgstr "" + +#: js/turtledefs.js:131 +#: js/turtledefs.js:233 +#: js/widgets/phrasemaker.js:1039 +msgid "graphics" +msgstr "" + +#: js/turtledefs.js:134 +#: js/turtledefs.js:236 +msgid "boolean" +msgstr "" + +#: js/turtledefs.js:137 +#: js/turtledefs.js:239 +#: js/blocks/HeapBlocks.js:59 +#: js/widgets/status.js:147 +msgid "heap" +msgstr "" + +#: js/turtledefs.js:138 +#: js/turtledefs.js:240 +#: js/blocks/DictBlocks.js:142 +#: js/blocks/ProgramBlocks.js:495 +msgid "dictionary" +msgstr "" + +#: js/turtledefs.js:139 +#: js/turtledefs.js:241 +msgid "ensemble" +msgstr "" + +#: js/turtledefs.js:140 +#: js/turtledefs.js:242 +msgid "extras" msgstr "" -#: js/piemenus.js:3766 -msgid " for your pitch preview." +#: js/turtledefs.js:142 +#: js/turtledefs.js:244 +#.TRANS: program as in computer program +#.TRANS: program as in computer program +msgid "program" msgstr "" -#: js/palette.js:571 -msgid "grid" -msgstr "Πλέγμα" +#: js/turtledefs.js:143 +#: js/turtledefs.js:245 +msgid "my blocks" +msgstr "" -#: js/palette.js:577 -#: js/block.js:1540 -#: js/block.js:2343 -#: js/turtledefs.js:126 -#: js/turtledefs.js:228 -#: js/lilypond.js:740 -#: js/lilypond.js:905 -#: js/lilypond.js:949 -#: js/DrumBlocks.js:486 -#: js/RhythmBlocks.js:766 -#: js/VolumeBlocks.js:502 -#: js/phrasemaker.js:823 -msgid "drum" +#: js/turtledefs.js:185 +#: js/turtledefs.js:281 +msgid "artwork" msgstr "" -#: js/palette.js:580 -msgid "effect" +#: js/turtledefs.js:185 +#: js/turtledefs.js:281 +msgid "logic" msgstr "" -#: js/palette.js:586 -msgid "sargam" +#: js/turtledefs.js:185 +#: js/turtledefs.js:281 +msgid "music" msgstr "" -#: js/palette.js:589 -#: js/activity.js:1833 -#: js/RhythmBlocks.js:923 -#: js/PitchBlocks.js:442 -#: js/PitchBlocks.js:1748 -#.TRANS: a numeric mapping of the notes in an octave based on the musical mode -msgid "scale degree" +#: js/turtledefs.js:187 +#: js/turtledefs.js:463 +msgid "Music Blocks is a collection of tools for exploring fundamental musical concepts in a fun way." msgstr "" -#: js/palette.js:592 -#: js/activity.js:1860 -msgid "mode name" +#: js/turtledefs.js:436 +msgid "Welcome to Turtle Blocks" msgstr "" -#: js/palette.js:595 -#: js/activity.js:1839 -msgid "invert mode" +#: js/turtledefs.js:438 +#: js/turtledefs.js:465 +#: js/turtledefs.js:774 +#: js/turtledefs.js:805 +msgid "The current version is" msgstr "" -#: js/palette.js:598 -#: js/activity.js:1836 -msgid "voice name" +#: js/turtledefs.js:446 +#: js/turtledefs.js:483 +msgid "Click the run button to run the project in fast mode." msgstr "" -#: js/palette.js:601 -#: js/PitchBlocks.js:1181 -msgid "custom pitch" +#: js/turtledefs.js:452 +msgid "Stop the turtle." msgstr "" -#: js/palette.js:605 -#: js/block.js:1456 -#: js/block.js:1575 -#: js/WidgetBlocks.js:218 -#: js/IntervalsBlocks.js:63 -msgid "temperament" +#: js/turtledefs.js:454 +#: js/turtledefs.js:491 +msgid "You can also type Alt-S to stop." msgstr "" -#: js/palette.js:609 -msgid "accidental" +#: js/turtledefs.js:462 +#: js/widgets/help.js:333 +msgid "Welcome to Music Blocks" msgstr "" -#: js/palette.js:615 -#: js/activity.js:1866 -msgid "interval name" +#: js/turtledefs.js:472 +#: js/widgets/help.js:334 +msgid "Meet Mr. Mouse!" msgstr "" -#: js/palette.js:633 -#: js/PitchBlocks.js:405 -msgid "pitch converter" +#: js/turtledefs.js:473 +msgid "Mr Mouse is our Music Blocks conductor." msgstr "" -#: js/rubrics.js:522 -#: js/turtledefs.js:119 -#: js/turtledefs.js:221 -#: js/RhythmBlockPaletteBlocks.js:52 -#: js/RhythmBlockPaletteBlocks.js:233 -#: js/ProgramBlocks.js:745 -#: js/rhythmruler.js:1670 -#: js/rhythmruler.js:1677 -#: js/rhythmruler.js:1745 -#: js/rhythmruler.js:1752 -#: js/rhythmruler.js:1830 -#.TRANS: an arrangement of notes based on duration -msgid "rhythm" +#: js/turtledefs.js:475 +msgid "Mr Mouse encourages you to explore Music Blocks." msgstr "" -#: js/rubrics.js:523 -#: js/block.js:2339 -#: js/turtledefs.js:121 -#: js/turtledefs.js:223 -#: js/IntervalsBlocks.js:63 -#: js/PitchBlocks.js:1801 -#: js/PitchBlocks.js:1814 -#: js/SensorsBlocks.js:178 -#: js/phrasemaker.js:821 -#: js/musickeyboard.js:1653 -#.TRANS: pitch number -#.TRANS: we specify pitch in terms of a name and an octave. The name can be CDEFGAB or Do Re Mi Fa Sol La Ti. Octave is a number between 1 and 8. -msgid "pitch" +#: js/turtledefs.js:477 +msgid "Let us start our tour!" msgstr "" -#: js/rubrics.js:524 -#: js/turtledefs.js:123 -#: js/turtledefs.js:225 -msgid "tone" +#: js/turtledefs.js:489 +msgid "Stop the music (and the mice)." msgstr "" -#: js/rubrics.js:525 -#: js/lilypond.js:613 -#: js/lilypond.js:912 -#: js/lilypond.js:918 -#: js/lilypond.js:956 -msgid "mouse" +#: js/turtledefs.js:499 +msgid "Record your project as video." msgstr "" -#: js/rubrics.js:526 -#: js/turtledefs.js:132 -#: js/turtledefs.js:234 -#: js/phrasemaker.js:825 -msgid "pen" +#: js/turtledefs.js:505 +msgid "Toggle Fullscreen mode." msgstr "" -#: js/rubrics.js:527 -#: js/turtledefs.js:133 -#: js/turtledefs.js:235 -#: js/NumberBlocks.js:905 -#: js/PitchBlocks.js:1679 -#: js/PitchBlocks.js:1720 -msgid "number" -msgstr "αριθμός" +#: js/turtledefs.js:511 +msgid "Initialize a new project." +msgstr "" -#: js/rubrics.js:528 -#: js/turtledefs.js:127 -#: js/turtledefs.js:229 -msgid "flow" +#: js/turtledefs.js:517 +msgid "You can also load projects from the file system." msgstr "" -#: js/rubrics.js:530 -#: js/turtledefs.js:136 -#: js/turtledefs.js:238 -msgid "sensors" +#: js/turtledefs.js:522 +#: planet/js/StringHelper.js:46 +msgid "Delete" msgstr "" -#: js/rubrics.js:531 -#: js/turtledefs.js:135 -#: js/turtledefs.js:237 -#: js/MediaBlocks.js:930 -msgid "media" +#: js/turtledefs.js:523 +msgid "To delete a block, just right-click on it, then you will be able to see the delete option" msgstr "" -#: js/rubrics.js:532 -msgid "mice" +#: js/turtledefs.js:528 +#: js/activity.js:2649 +#: planet/js/LocalCard.js:31 +msgid "Copy" +msgstr "Αντιγραφή" + +#: js/turtledefs.js:529 +msgid "To copy a block, just right-click on it, then you will be able to see the copy option" msgstr "" -#: js/macros.js:711 -#: js/musicutils.js:783 -#: js/synthutils.js:181 -#.TRANS: animal sound effect -msgid "duck" +#: js/turtledefs.js:534 +#: js/piemenus.js:3411 +msgid "Extract" msgstr "" -#: js/toolbar.js:46 -#: js/toolbar.js:107 -msgid "About Music Blocks" +#: js/turtledefs.js:535 +msgid "To extract a block, just right-click on it, then you will be able to see the extract option" msgstr "" -#: js/toolbar.js:47 -#: js/toolbar.js:108 -#: js/toolbar.js:172 -#: js/toolbar.js:228 -#: js/turtledefs.js:445 -#: js/turtledefs.js:482 -#: js/activity.js:2281 -#: js/activity.js:2289 -#: js/activity.js:2520 -#: js/modewidget.js:77 -#: js/pitchstaircase.js:121 -#: js/phrasemaker.js:302 -#: js/phrasemaker.js:312 -#: js/phrasemaker.js:314 -#: js/phrasemaker.js:3901 -#: js/phrasemaker.js:4061 -#: js/phrasemaker.js:4066 -#: js/phrasemaker.js:4068 -#: js/phrasemaker.js:4183 -#: js/pitchdrummatrix.js:81 -#: js/pitchdrummatrix.js:574 -#: js/pitchdrummatrix.js:576 -#: js/pitchdrummatrix.js:628 -#: js/pitchdrummatrix.js:630 -#: js/pitchdrummatrix.js:645 -#: js/pitchdrummatrix.js:647 -#: js/pitchdrummatrix.js:674 -#: js/pitchdrummatrix.js:676 -#: js/temperament.js:477 -#: js/temperament.js:480 -#: js/temperament.js:540 -#: js/temperament.js:542 -#: js/temperament.js:1835 -#: js/temperament.js:1837 -#: js/temperament.js:1986 -#: js/temperament.js:1988 -#: js/musickeyboard.js:522 -#: js/musickeyboard.js:682 -#: js/musickeyboard.js:684 -#: js/musickeyboard.js:756 -#: js/musickeyboard.js:758 -#: js/rhythmruler.js:298 -#: js/rhythmruler.js:300 -#: js/rhythmruler.js:314 -#: js/rhythmruler.js:316 -#: js/sampler.js:96 -#: js/sampler.js:98 -#: js/sampler.js:229 -#: js/sampler.js:235 -#: js/sampler.js:237 -#: js/tempo.js:84 -#: js/tempo.js:86 -#: js/timbre.js:432 -#: js/timbre.js:434 -#: js/timbre.js:465 -#: js/timbre.js:467 -#: js/timbre.js:746 -#: js/meterwidget.js:80 -#: js/arpeggio.js:90 -#: js/arpeggio.js:547 -#: js/arpeggio.js:549 -#: js/arpeggio.js:644 -#: js/arpeggio.js:646 -msgid "Play" +#: js/turtledefs.js:542 +#: js/turtledefs.js:552 +#: js/turtledefs.js:573 +msgid "Save your project to a file." msgstr "" -#: js/toolbar.js:48 -#: js/toolbar.js:109 -#: js/toolbar.js:173 -#: js/toolbar.js:229 -#: js/turtledefs.js:451 -#: js/turtledefs.js:488 -#: js/activity.js:2297 -#: js/modewidget.js:99 -#: js/modewidget.js:101 -#: js/phrasemaker.js:323 -#: js/phrasemaker.js:325 -#: js/pitchdrummatrix.js:561 -#: js/pitchdrummatrix.js:563 -#: js/temperament.js:1820 -#: js/temperament.js:1822 -#: js/meterwidget.js:101 -#: js/meterwidget.js:103 -#: js/arpeggio.js:534 -#: js/arpeggio.js:536 -msgid "Stop" -msgstr "Διακοπή" +#: js/turtledefs.js:549 +#: js/turtledefs.js:570 +msgid "save" +msgstr "" -#: js/toolbar.js:49 -#: js/toolbar.js:110 -#: js/toolbar.js:174 -#: js/toolbar.js:230 -#: js/turtledefs.js:498 -msgid "Record" +#: js/turtledefs.js:556 +#: js/turtledefs.js:577 +msgid "Save graphics from your project to as SVG." msgstr "" -#: js/toolbar.js:50 -#: js/toolbar.js:51 -msgid "Full screen" +#: js/turtledefs.js:560 +#: js/turtledefs.js:581 +msgid "Save graphics from your project as PNG." msgstr "" -#: js/toolbar.js:52 -#: js/toolbar.js:112 -#: js/toolbar.js:177 -#: js/toolbar.js:232 -#: js/turtledefs.js:504 -msgid "Toggle Fullscreen" +#: js/turtledefs.js:564 +#: js/turtledefs.js:597 +msgid "Save block artwork as an SVG file." msgstr "" -#: js/toolbar.js:53 -#: js/toolbar.js:113 -#: js/toolbar.js:178 -#: js/toolbar.js:233 -#: js/turtledefs.js:510 -#: js/StringHelper.js:33 -msgid "New project" +#: js/turtledefs.js:585 +msgid "Save audio from your project as WAV." msgstr "" -#: js/toolbar.js:54 -#: js/toolbar.js:114 -#: js/toolbar.js:179 -#: js/toolbar.js:234 -#: js/turtledefs.js:516 -msgid "Load project from file" +#: js/turtledefs.js:589 +msgid "Save your project to as an ABC file." msgstr "" -#: js/toolbar.js:55 -#: js/toolbar.js:115 -#: js/toolbar.js:116 -#: js/toolbar.js:180 -#: js/toolbar.js:235 -#: js/turtledefs.js:541 -#: js/turtledefs.js:550 -#: js/turtledefs.js:571 -msgid "Save project" +#: js/turtledefs.js:593 +msgid "Save your project to as a Lilypond file." msgstr "" -#: js/toolbar.js:56 -#: js/toolbar.js:75 -#: js/toolbar.js:77 -#: js/toolbar.js:135 -#: js/toolbar.js:144 -#: js/toolbar.js:146 -#: js/toolbar.js:181 -#: js/toolbar.js:199 -#: js/toolbar.js:201 -#: js/toolbar.js:236 -#: js/toolbar.js:254 -#: js/toolbar.js:256 -msgid "Save project as HTML" +#: js/turtledefs.js:604 +msgid "Load samples from server" msgstr "" -#: js/toolbar.js:57 -#: js/toolbar.js:117 -#: js/toolbar.js:182 -#: js/toolbar.js:237 -msgid "Find and share projects" +#: js/turtledefs.js:605 +msgid "This button opens a viewer for loading example projects." +msgstr "" + +#: js/turtledefs.js:611 +msgid "Palette buttons" +msgstr "" + +#: js/turtledefs.js:612 +msgid "This toolbar contains the palette buttons including Rhythm Pitch Tone Action and more." +msgstr "" + +#: js/turtledefs.js:614 +msgid "Click to show the palettes of blocks and drag blocks from the palettes onto the canvas to use them." +msgstr "" + +#: js/turtledefs.js:620 +msgid "Cartesian/Polar" msgstr "" -#: js/toolbar.js:58 -#: js/toolbar.js:118 -#: js/toolbar.js:183 -#: js/toolbar.js:238 -msgid "Offline. Sharing is unavailable" +#: js/turtledefs.js:621 +msgid "Show or hide a coordinate grid." msgstr "" -#: js/toolbar.js:59 -#: js/toolbar.js:119 -#: js/toolbar.js:184 -#: js/toolbar.js:239 -msgid "Auxiliary menu" +#: js/turtledefs.js:626 +#: js/turtles.js:902 +msgid "Clean" +msgstr "Καθαρισμός" + +#: js/turtledefs.js:627 +msgid "Clear the screen and return the mice to their initial positions." msgstr "" -#: js/toolbar.js:61 -#: js/toolbar.js:121 -#: js/toolbar.js:186 -#: js/toolbar.js:241 -msgid "Run slowly" +#: js/turtledefs.js:632 +#: js/turtles.js:955 +msgid "Collapse" msgstr "" -#: js/toolbar.js:62 -#: js/toolbar.js:122 -#: js/toolbar.js:187 -#: js/toolbar.js:242 -#: js/turtledefs.js:682 -msgid "Run step by step" +#: js/turtledefs.js:633 +msgid "Collapse the graphics window." msgstr "" -#: js/toolbar.js:63 -#: js/toolbar.js:123 -#: js/toolbar.js:188 -#: js/toolbar.js:243 -#: js/turtledefs.js:689 -msgid "Display statistics" +#: js/turtledefs.js:638 +#: js/activity.js:5684 +msgid "Home" msgstr "" -#: js/toolbar.js:64 -#: js/toolbar.js:124 -#: js/toolbar.js:189 -#: js/toolbar.js:244 -msgid "Load plugin" +#: js/turtledefs.js:639 +msgid "Return all blocks to the center of the screen." msgstr "" -#: js/toolbar.js:65 -#: js/toolbar.js:125 -#: js/toolbar.js:190 -#: js/toolbar.js:245 -#: js/turtledefs.js:696 -msgid "Delete plugin" +#: js/turtledefs.js:644 +msgid "Show/hide blocks" +msgstr "Εμφάνιση/Απόκρυση εντολών" + +#: js/turtledefs.js:645 +msgid "Hide or show the blocks and the palettes." msgstr "" -#: js/toolbar.js:66 -#: js/toolbar.js:126 -#: js/toolbar.js:191 -#: js/toolbar.js:246 -msgid "Enable horizontal scrolling" +#: js/turtledefs.js:650 +msgid "Expand/collapse collapsable blocks" msgstr "" -#: js/toolbar.js:67 -#: js/toolbar.js:127 -#: js/toolbar.js:192 -#: js/toolbar.js:247 -msgid "Disable horizontal scrolling" +#: js/turtledefs.js:651 +msgid "Expand or collapse start and action stacks." msgstr "" -#: js/toolbar.js:68 -#: js/toolbar.js:128 -#: js/toolbar.js:193 -#: js/toolbar.js:248 -#: js/LocalCard.js:54 -#: js/StringHelper.js:71 -msgid "Merge with current project" +#: js/turtledefs.js:658 +#: js/activity.js:5704 +msgid "Decrease block size" msgstr "" -#: js/toolbar.js:69 -#: js/toolbar.js:129 -msgid "Set Pitch Preview" +#: js/turtledefs.js:659 +msgid "Decrease the size of the blocks." msgstr "" -#: js/toolbar.js:70 -#: js/toolbar.js:130 -#: js/toolbar.js:194 -#: js/toolbar.js:249 -msgid "Toggle JavaScript Editor" +#: js/turtledefs.js:664 +#: js/activity.js:5710 +msgid "Increase block size" msgstr "" -#: js/toolbar.js:71 -#: js/toolbar.js:131 -#: js/toolbar.js:195 -#: js/toolbar.js:250 -#: js/turtledefs.js:724 -msgid "Restore" +#: js/turtledefs.js:665 +msgid "Increase the size of the blocks." msgstr "" -#: js/toolbar.js:72 -#: js/toolbar.js:132 -#: js/toolbar.js:196 -#: js/toolbar.js:251 -msgid "Switch to beginner mode" +#: js/turtledefs.js:670 +msgid "Expand/collapse option toolbar" msgstr "" -#: js/toolbar.js:73 -#: js/toolbar.js:133 -#: js/toolbar.js:197 -#: js/toolbar.js:252 -msgid "Switch to advanced mode" +#: js/turtledefs.js:671 +msgid "Click this button to expand or collapse the auxillary toolbar." msgstr "" -#: js/toolbar.js:74 -#: js/toolbar.js:134 -#: js/toolbar.js:143 -#: js/toolbar.js:198 -#: js/toolbar.js:253 -#: js/turtledefs.js:738 -msgid "Select language" +#: js/turtledefs.js:676 +msgid "Run slow" msgstr "" -#: js/toolbar.js:76 -#: js/toolbar.js:79 -#: js/toolbar.js:137 -#: js/turtledefs.js:579 -msgid "Save mouse artwork as PNG" +#: js/turtledefs.js:677 +msgid "Click to run the project in slow mode." msgstr "" -#: js/toolbar.js:78 -#: js/toolbar.js:136 -#: js/turtledefs.js:575 -msgid "Save mouse artwork as SVG" +#: js/turtledefs.js:683 +msgid "Click to run the project step by step." msgstr "" -#: js/toolbar.js:80 -#: js/toolbar.js:138 -#: js/turtledefs.js:583 -msgid "Save music as WAV" +#: js/turtledefs.js:690 +msgid "Display statistics about your Music project." msgstr "" -#: js/toolbar.js:81 -#: js/toolbar.js:139 -#: js/turtledefs.js:587 -msgid "Save sheet music as ABC" +#: js/turtledefs.js:697 +msgid "Delete a selected plugin." msgstr "" -#: js/toolbar.js:82 -#: js/toolbar.js:140 -#: js/turtledefs.js:591 -msgid "Save sheet music as Lilypond" +#: js/turtledefs.js:704 +msgid "Enable scrolling" msgstr "" -#: js/toolbar.js:83 -msgid "Save sheet music as MusicXML" +#: js/turtledefs.js:705 +msgid "You can scroll the blocks on the canvas." msgstr "" -#: js/toolbar.js:84 -#: js/toolbar.js:141 -#: js/toolbar.js:149 -#: js/toolbar.js:204 -#: js/toolbar.js:259 -#: js/turtledefs.js:562 -#: js/turtledefs.js:595 -msgid "Save block artwork as SVG" +#: js/turtledefs.js:714 +msgid "Wrap Turtle" msgstr "" -#: js/toolbar.js:85 -#: js/toolbar.js:142 -#: js/toolbar.js:150 -#: js/toolbar.js:205 -#: js/toolbar.js:260 -msgid "Confirm" +#: js/turtledefs.js:715 +msgid "Turn Turtle wrapping On or Off." msgstr "" -#: js/toolbar.js:86 -#: js/toolbar.js:151 -#: js/toolbar.js:206 -#: js/toolbar.js:261 -msgid "English (United States)" +#: js/turtledefs.js:725 +msgid "Restore blocks from the trash." msgstr "" -#: js/toolbar.js:87 -#: js/toolbar.js:152 -#: js/toolbar.js:207 -#: js/toolbar.js:262 -msgid "English (United Kingdom)" +#: js/turtledefs.js:732 +msgid "Switch mode" msgstr "" -#: js/toolbar.js:88 -#: js/toolbar.js:153 -#: js/toolbar.js:208 -#: js/toolbar.js:263 -msgid "日本語" +#: js/turtledefs.js:733 +msgid "Switch between beginner and advance modes." msgstr "" -#: js/toolbar.js:89 -msgid "한국어" +#: js/turtledefs.js:739 +msgid "Select your language preference." msgstr "" -#: js/toolbar.js:90 -#: js/toolbar.js:155 -#: js/toolbar.js:210 -#: js/toolbar.js:265 -msgid "español" +#: js/turtledefs.js:745 +msgid "Keyboard shortcuts" msgstr "" -#: js/toolbar.js:91 -#: js/toolbar.js:156 -#: js/toolbar.js:211 -#: js/toolbar.js:266 -msgid "português" +#: js/turtledefs.js:746 +msgid "You can type d to create a do block and r to create a re block etc." msgstr "" -#: js/toolbar.js:92 -#: js/toolbar.js:157 -#: js/toolbar.js:212 -#: js/toolbar.js:267 -msgid "にほんご" +#: js/turtledefs.js:753 +msgid "Show these messages." msgstr "" -#: js/toolbar.js:93 -#: js/toolbar.js:158 -#: js/toolbar.js:213 -#: js/toolbar.js:268 -msgid "中文" +#: js/turtledefs.js:759 +#: js/turtledefs.js:790 +#: js/widgets/help.js:335 +msgid "Guide" msgstr "" -#: js/toolbar.js:94 -#: js/toolbar.js:159 -#: js/toolbar.js:214 -#: js/toolbar.js:269 -msgid "ภาษาไทย" +#: js/turtledefs.js:760 +msgid "A detailed guide to Turtle Blocks is available." msgstr "" -#: js/toolbar.js:95 -#: js/toolbar.js:160 -#: js/toolbar.js:215 -#: js/toolbar.js:270 -msgid "aymara" +#: js/turtledefs.js:764 +msgid "Turtle Blocks Guide" msgstr "" -#: js/toolbar.js:96 -#: js/toolbar.js:161 -#: js/toolbar.js:216 -#: js/toolbar.js:271 -msgid "quechua" +#: js/turtledefs.js:767 +#: js/turtledefs.js:798 +#: js/widgets/help.js:336 +msgid "About" +msgstr "" + +#: js/turtledefs.js:768 +msgid "Turtle Blocks is an open source collection of tools for exploring musical concepts." msgstr "" -#: js/toolbar.js:97 -#: js/toolbar.js:162 -#: js/toolbar.js:217 -#: js/toolbar.js:272 -msgid "guarani" +#: js/turtledefs.js:770 +msgid "A full list of contributors can be found in the Turtle Blocks GitHub repository." msgstr "" -#: js/toolbar.js:98 -#: js/toolbar.js:163 -#: js/toolbar.js:218 -#: js/toolbar.js:273 -msgid "हिंदी" +#: js/turtledefs.js:772 +msgid "Turtle Blocks is licensed under the AGPL." msgstr "" -#: js/toolbar.js:99 -#: js/toolbar.js:165 -#: js/toolbar.js:219 -#: js/toolbar.js:275 -msgid "igbo" +#: js/turtledefs.js:780 +msgid "Turtle Blocks GitHub repository" msgstr "" -#: js/toolbar.js:100 -#: js/toolbar.js:166 -#: js/toolbar.js:220 -#: js/toolbar.js:276 -msgid "عربى" +#: js/turtledefs.js:783 +#: js/turtledefs.js:814 +#: js/widgets/help.js:337 +#: js/widgets/help.js:359 +msgid "Congratulations." msgstr "" -#: js/toolbar.js:101 -#: js/toolbar.js:164 -#: js/toolbar.js:221 -#: js/toolbar.js:274 -msgid "తెలుగు" +#: js/turtledefs.js:784 +msgid "You have finished the tour. Please enjoy Turtle Blocks!" msgstr "" -#: js/toolbar.js:102 -#: js/toolbar.js:167 -#: js/toolbar.js:222 -#: js/toolbar.js:277 -msgid "עִברִית" +#: js/turtledefs.js:791 +msgid "A detailed guide to Music Blocks is available." msgstr "" -#: js/toolbar.js:111 -#: js/toolbar.js:175 -#: js/toolbar.js:176 -#: js/toolbar.js:231 -msgid "Full Screen" +#: js/turtledefs.js:799 +msgid "Music Blocks is an open source collection of tools for exploring musical concepts." msgstr "" -#: js/toolbar.js:145 -#: js/toolbar.js:148 -#: js/toolbar.js:200 -#: js/toolbar.js:203 -#: js/toolbar.js:255 -#: js/toolbar.js:258 -#: js/turtledefs.js:558 -msgid "Save turtle artwork as PNG" +#: js/turtledefs.js:801 +msgid "A full list of contributors can be found in the Music Blocks GitHub repository." msgstr "" -#: js/toolbar.js:147 -#: js/toolbar.js:202 -#: js/toolbar.js:257 -#: js/turtledefs.js:554 -msgid "Save turtle artwork as SVG" +#: js/turtledefs.js:803 +msgid "Music Blocks is licensed under the AGPL." msgstr "" -#: js/toolbar.js:154 -#: js/toolbar.js:209 -#: js/toolbar.js:264 -msgid "한국인" +#: js/turtledefs.js:811 +msgid "Music Blocks GitHub repository" msgstr "" -#: js/toolbar.js:171 -#: js/toolbar.js:227 -msgid "About Turtle Blocks" +#: js/turtledefs.js:815 +msgid "You have finished the tour. Please enjoy Music Blocks!" msgstr "" -#: js/toolbar.js:429 -#: js/toolbar.js:440 -msgid "Turtle Wrap Off" +#: js/turtles.js:882 +msgid "Grid" +msgstr "Πλέγμα" + +#: js/turtles.js:1024 +msgid "Expand" msgstr "" -#: js/toolbar.js:442 -msgid "Turtle Wrap On" +#: js/block-verbose.js:1616 +#: js/block-verbose.js:1735 +#: js/block.js:1580 +#: js/block.js:1699 +#: js/palette.js:605 +#: js/blocks/IntervalsBlocks.js:63 +#: js/blocks/WidgetBlocks.js:259 +msgid "temperament" msgstr "" -#: js/block.js:1470 +#: js/block-verbose.js:1630 +#: js/block.js:1594 msgid "matrix" msgstr "" -#: js/block.js:1477 -#: js/WidgetBlocks.js:1226 +#: js/block-verbose.js:1637 +#: js/block.js:1601 +#: js/blocks/WidgetBlocks.js:1509 #: plugins/rodi.rtp:324 msgid "status" msgstr "" -#: js/block.js:1484 +#: js/block-verbose.js:1644 +#: js/block.js:1608 msgid "drum mapper" msgstr "" -#: js/block.js:1491 +#: js/block-verbose.js:1651 +#: js/block.js:1615 msgid "ruler" msgstr "" -#: js/block.js:1498 -#: js/WidgetBlocks.js:327 +#: js/block-verbose.js:1658 +#: js/block.js:1622 +#: js/blocks/WidgetBlocks.js:397 #.TRANS: timbre is the character or quality of a musical sound msgid "timbre" msgstr "" -#: js/block.js:1505 +#: js/block-verbose.js:1665 +#: js/block.js:1629 msgid "stair" msgstr "" -#: js/block.js:1512 -#: js/WidgetBlocks.js:577 +#: js/block-verbose.js:1672 +#: js/block.js:1636 +#: js/blocks/WidgetBlocks.js:707 #.TRANS: the speed at music is should be played. msgid "tempo" msgstr "" -#: js/block.js:1519 -#: js/block.js:1582 -#: js/IntervalsBlocks.js:1268 +#: js/block-verbose.js:1679 +#: js/block-verbose.js:1742 +#: js/block.js:1643 +#: js/block.js:1706 +#: js/blocks/IntervalsBlocks.js:1464 #.TRANS: mode, e.g., Major in C Major msgid "mode" msgstr "" -#: js/block.js:1526 +#: js/block-verbose.js:1686 +#: js/block.js:1650 msgid "slider" msgstr "" -#: js/block.js:1533 -#: js/SensorsBlocks.js:1001 +#: js/block-verbose.js:1693 +#: js/block.js:1657 +#: js/blocks/SensorsBlocks.js:1001 msgid "keyboard" msgstr "πληκτρολόγιο" -#: js/block.js:1547 -#: js/WidgetBlocks.js:957 -#: js/WidgetBlocks.js:988 +#: js/block-verbose.js:1707 +#: js/block.js:1671 +#: js/blocks/WidgetBlocks.js:1190 +#: js/blocks/WidgetBlocks.js:1228 #.TRANS: widget for subdividing a measure into distinct rhythmic elements msgid "rhythm maker" msgstr "" -#: js/block.js:1554 -#: js/block.js:2182 -#: js/block.js:2236 -#: js/RhythmBlockPaletteBlocks.js:70 -#: js/RhythmBlockPaletteBlocks.js:251 -#: js/RhythmBlockPaletteBlocks.js:484 -#: js/RhythmBlockPaletteBlocks.js:553 -#: js/RhythmBlockPaletteBlocks.js:604 -#: js/RhythmBlockPaletteBlocks.js:874 -#: js/RhythmBlocks.js:33 -#: js/RhythmBlocks.js:356 -#: js/RhythmBlocks.js:766 -#: js/RhythmBlocks.js:806 -#: js/OrnamentBlocks.js:220 -#: js/OrnamentBlocks.js:312 -#: js/MeterBlocks.js:1367 -#: js/DictActions.js:85 -#: js/phrasemaker.js:731 -#: js/phrasemaker.js:2393 -#: js/phrasemaker.js:2436 -#: js/phrasemaker.js:2534 +#: js/block-verbose.js:1714 +#: js/block-verbose.js:2457 +#: js/block-verbose.js:2514 +#: js/block.js:1678 +#: js/block.js:2385 +#: js/block.js:2442 +#: js/blocks/MeterBlocks.js:1367 +#: js/blocks/OrnamentBlocks.js:220 +#: js/blocks/OrnamentBlocks.js:312 +#: js/blocks/RhythmBlocks.js:33 +#: js/blocks/RhythmBlocks.js:356 +#: js/blocks/RhythmBlocks.js:766 +#: js/blocks/RhythmBlocks.js:806 +#: js/blocks/RhythmBlockPaletteBlocks.js:70 +#: js/blocks/RhythmBlockPaletteBlocks.js:252 +#: js/blocks/RhythmBlockPaletteBlocks.js:485 +#: js/blocks/RhythmBlockPaletteBlocks.js:554 +#: js/blocks/RhythmBlockPaletteBlocks.js:605 +#: js/blocks/RhythmBlockPaletteBlocks.js:875 +#: js/turtleactions/DictActions.js:85 +#: js/widgets/phrasemaker.js:942 +#: js/widgets/phrasemaker.js:2656 +#: js/widgets/phrasemaker.js:2699 +#: js/widgets/phrasemaker.js:2810 #.TRANS: the value (e.g., 1/4 note) of the note being played. msgid "note value" msgstr "" -#: js/block.js:1561 -#: js/block.js:2110 -#: js/block.js:2133 -#: js/IntervalsBlocks.js:875 -#: js/OrnamentBlocks.js:312 +#: js/block-verbose.js:1721 +#: js/block-verbose.js:2382 +#: js/block-verbose.js:2405 +#: js/block.js:1685 +#: js/block.js:2310 +#: js/block.js:2333 +#: js/blocks/IntervalsBlocks.js:1071 +#: js/blocks/OrnamentBlocks.js:312 #.TRANS: calculate a relative step between notes based on semi-tones msgid "scalar interval" msgstr "" -#: js/block.js:1568 -#: js/RhythmBlocks.js:148 +#: js/block-verbose.js:1728 +#: js/block.js:1692 +#: js/blocks/RhythmBlocks.js:148 msgid "milliseconds" msgstr "" -#: js/block.js:2180 -#: js/block.js:2184 -#: js/block.js:2234 -#: js/block.js:2345 -#: js/ProgramBlocks.js:1273 -#: js/RhythmBlocks.js:712 -#: js/rhythmruler.js:834 -#: js/rhythmruler.js:961 +#: js/block-verbose.js:2455 +#: js/block-verbose.js:2459 +#: js/block-verbose.js:2512 +#: js/block-verbose.js:2628 +#: js/block.js:2383 +#: js/block.js:2387 +#: js/block.js:2440 +#: js/block.js:2556 +#: js/blocks/RhythmBlocks.js:712 +#: js/blocks/ProgramBlocks.js:1273 +#: js/widgets/rhythmruler.js:1183 +#: js/widgets/rhythmruler.js:1329 msgid "silence" msgstr "" -#: js/block.js:2265 -#: js/block.js:3134 -#: js/block.js:3151 -#: js/activity.js:2336 -#: js/activity.js:2387 -#: js/musicutils.js:2932 -#: js/musicutils.js:4287 +#: js/block-verbose.js:2548 +#: js/block-verbose.js:3492 +#: js/block-verbose.js:3509 +#: js/activity.js:2718 +#: js/activity.js:2769 +#: js/block.js:2476 +#: js/block.js:3416 +#: js/block.js:3433 +#: js/utils/musicutils.js:3780 +#: js/utils/musicutils.js:5273 +#.TRANS: the note names must be separated by single spaces #.TRANS: the note names must be separated by single spaces #.TRANS: the note names must be separated by single spaces msgid "ti la sol fa mi re do" msgstr "" -#: js/block.js:2333 +#: js/block-verbose.js:2616 +#: js/block.js:2544 +#.TRANS: scalar step #.TRANS: scalar step msgid "down" msgstr "" -#: js/block.js:2334 +#: js/block-verbose.js:2617 +#: js/block.js:2545 msgid "up" msgstr "" -#: js/block.js:3477 -#: js/block.js:3490 -#: js/ExtrasBlocks.js:612 +#: js/block-verbose.js:3026 +#: js/block.js:2950 +msgid "Silence block cannot be removed." +msgstr "" + +#: js/block-verbose.js:3824 +#: js/block.js:3748 +#: js/blocks.js:2607 +#: js/blocks.js:3218 +#: js/palette.js:618 +#: js/blocks/BooleanBlocks.js:77 +#: js/blocks/BooleanBlocks.js:167 +#: js/blocks/BooleanBlocks.js:251 +#: js/blocks/BooleanBlocks.js:335 +#: js/blocks/BooleanBlocks.js:433 +#: js/blocks/BooleanBlocks.js:539 +#: js/blocks/BooleanBlocks.js:640 +#: js/blocks/BooleanBlocks.js:741 +#: js/blocks/BooleanBlocks.js:847 +#: js/blocks/BooleanBlocks.js:948 +#: js/blocks/BooleanBlocks.js:1033 +#: js/blocks/SensorsBlocks.js:910 +msgid "true" +msgstr "" + +#: js/block-verbose.js:3824 +#: js/block.js:3748 +#: js/blocks.js:2609 +#: js/blocks.js:3220 +#: js/blocks/BooleanBlocks.js:79 +#: js/blocks/BooleanBlocks.js:169 +#: js/blocks/BooleanBlocks.js:253 +#: js/blocks/BooleanBlocks.js:337 +#: js/blocks/BooleanBlocks.js:435 +#: js/blocks/BooleanBlocks.js:541 +#: js/blocks/BooleanBlocks.js:642 +#: js/blocks/BooleanBlocks.js:743 +#: js/blocks/BooleanBlocks.js:849 +#: js/blocks/BooleanBlocks.js:950 +#: js/blocks/SensorsBlocks.js:912 +msgid "false" +msgstr "" + +#: js/block-verbose.js:3835 +#: js/block-verbose.js:3848 +#: js/block.js:3759 +#: js/block.js:3772 +#: js/blocks/ExtrasBlocks.js:615 msgid "Cartesian" msgstr "Καρτεσιανό" -#: js/block.js:3478 -#: js/block.js:3491 -#: js/ExtrasBlocks.js:616 +#: js/block-verbose.js:3836 +#: js/block-verbose.js:3849 +#: js/block.js:3760 +#: js/block.js:3773 +#: js/blocks/ExtrasBlocks.js:619 msgid "polar" msgstr "" -#: js/block.js:3479 -#: js/block.js:3492 -#: js/ExtrasBlocks.js:620 +#: js/block-verbose.js:3837 +#: js/block-verbose.js:3850 +#: js/block.js:3761 +#: js/block.js:3774 +#: js/blocks/ExtrasBlocks.js:623 msgid "Cartesian+polar" msgstr "" -#: js/block.js:3480 -#: js/block.js:3499 -#: js/ExtrasBlocks.js:649 +#: js/block-verbose.js:3838 +#: js/block-verbose.js:3857 +#: js/block.js:3762 +#: js/block.js:3781 +#: js/blocks/ExtrasBlocks.js:652 msgid "none" msgstr "" -#: js/block.js:3493 -#: js/ExtrasBlocks.js:625 +#: js/block-verbose.js:3851 +#: js/block.js:3775 +#: js/blocks/ExtrasBlocks.js:628 msgid "treble" msgstr "" -#: js/block.js:3494 -#: js/ExtrasBlocks.js:629 +#: js/block-verbose.js:3852 +#: js/block.js:3776 +#: js/blocks/ExtrasBlocks.js:632 msgid "grand staff" msgstr "" -#: js/block.js:3495 -#: js/ExtrasBlocks.js:633 +#: js/block-verbose.js:3853 +#: js/block.js:3777 +#: js/blocks/ExtrasBlocks.js:636 msgid "mezzo-soprano" msgstr "" -#: js/block.js:3496 -#: js/ExtrasBlocks.js:637 +#: js/block-verbose.js:3854 +#: js/block.js:3778 +#: js/blocks/ExtrasBlocks.js:640 msgid "alto" msgstr "" -#: js/block.js:3497 -#: js/ExtrasBlocks.js:641 +#: js/block-verbose.js:3855 +#: js/block.js:3779 +#: js/blocks/ExtrasBlocks.js:644 msgid "tenor" msgstr "" -#: js/block.js:3498 -#: js/ExtrasBlocks.js:645 -#: js/musicutils.js:736 -#: js/synthutils.js:64 +#: js/block-verbose.js:3856 +#: js/block.js:3780 +#: js/utils/musicutils.js:1115 +#: js/utils/synthutils.js:80 +#: js/blocks/ExtrasBlocks.js:648 #.TRANS: musical instrument msgid "bass" msgstr "" -#: js/block.js:4075 +#: js/block-verbose.js:3901 +#: js/block.js:3825 +#: js/blocks.js:2600 +#: js/blocks.js:3211 +msgid "on2" +msgstr "" + +#: js/block-verbose.js:3903 +#: js/block.js:3827 +#: js/blocks.js:2602 +#: js/blocks.js:3213 +msgid "off" +msgstr "" + +#: js/block-verbose.js:4470 +#: js/block.js:4394 msgid "Not a number" msgstr "" -#: js/block.js:4082 -msgid "Octave value must be between 1 and 10." +#: js/block-verbose.js:4477 +#: js/block.js:4401 +msgid "Octave value must be between 1 and 10." +msgstr "" + +#: js/block-verbose.js:4485 +#: js/block.js:4409 +msgid "Numbers can have at most 10 digits." +msgstr "" + +#: js/activity.js:390 +#: js/activity.js:395 +msgid "Search for blocks" +msgstr "" + +#: js/activity.js:1413 +msgid "Refresh your browser to change to advanced mode." +msgstr "" + +#: js/activity.js:1418 +msgid "Refresh your browser to change to beginner mode." +msgstr "" + +#: js/activity.js:1477 +msgid "Catching mice" +msgstr "" + +#: js/activity.js:1478 +msgid "Cleaning the instruments" +msgstr "" + +#: js/activity.js:1479 +msgid "Testing key pieces" +msgstr "" + +#: js/activity.js:1480 +msgid "Sight-reading" +msgstr "" + +#: js/activity.js:1481 +msgid "Combining math and music" +msgstr "" + +#: js/activity.js:1482 +msgid "Generating more blocks" +msgstr "" + +#: js/activity.js:1483 +msgid "Do Re Mi Fa Sol La Ti Do" +msgstr "" + +#: js/activity.js:1484 +msgid "Tuning string instruments" +msgstr "" + +#: js/activity.js:1485 +msgid "Pressing random keys" +msgstr "" + +#: js/activity.js:1663 +msgid "plugins will be removed upon restart." +msgstr "" + +#: js/activity.js:1672 +msgid "show Cartesian" +msgstr "" + +#: js/activity.js:2211 +#: js/palette.js:589 +#: js/blocks/RhythmBlocks.js:923 +#: js/blocks/PitchBlocks.js:442 +#: js/blocks/PitchBlocks.js:1786 +#.TRANS: a numeric mapping of the notes in an octave based on the musical mode +msgid "scale degree" +msgstr "" + +#: js/activity.js:2214 +#: js/palette.js:598 +msgid "voice name" +msgstr "" + +#: js/activity.js:2217 +#: js/palette.js:595 +msgid "invert mode" +msgstr "" + +#: js/activity.js:2220 +msgid "output tools" +msgstr "" + +#: js/activity.js:2223 +msgid "custom note" +msgstr "" + +#: js/activity.js:2226 +msgid "accidental name" +msgstr "" + +#: js/activity.js:2229 +#: js/blocks/PitchBlocks.js:855 +msgid "east indian solfege" +msgstr "" + +#: js/activity.js:2232 +#: js/blocks/PitchBlocks.js:869 +msgid "note name" +msgstr "" + +#: js/activity.js:2235 +#: js/blocks/IntervalsBlocks.js:94 +msgid "temperament name" +msgstr "" + +#: js/activity.js:2238 +#: js/palette.js:592 +msgid "mode name" +msgstr "" + +#: js/activity.js:2241 +msgid "chord name" +msgstr "" + +#: js/activity.js:2244 +#: js/palette.js:615 +msgid "interval name" +msgstr "" + +#: js/activity.js:2247 +msgid "filter type" +msgstr "" + +#: js/activity.js:2250 +msgid "oscillator type" +msgstr "" + +#: js/activity.js:2253 +#: js/blocks.js:2479 +#: js/blocks.js:2487 +msgid "audio file" +msgstr "" + +#: js/activity.js:2256 +#: js/blocks/DrumBlocks.js:32 +msgid "noise name" +msgstr "" + +#: js/activity.js:2259 +#: js/blocks/DrumBlocks.js:75 +msgid "drum name" +msgstr "" + +#: js/activity.js:2262 +#: js/blocks/DrumBlocks.js:119 +msgid "effects name" +msgstr "" + +#: js/activity.js:2265 +msgid "wrap mode" +msgstr "" + +#: js/activity.js:2268 +msgid "load file" +msgstr "" + +#: js/activity.js:2435 +#: js/activity.js:5851 +msgid "This block is deprecated." +msgstr "" + +#: js/activity.js:2437 +#: js/activity.js:5853 +msgid "Block cannot be found." +msgstr "" + +#: js/activity.js:2645 +msgid "Saving block artwork" +msgstr "" + +#: js/activity.js:2656 +msgid "Erase" +msgstr "" + +#: js/activity.js:2683 +#: js/activity.js:2705 +msgid "Paste" +msgstr "Επικόλληση" + +#: js/activity.js:2687 +msgid "Save block help" +msgstr "" + +#: js/activity.js:2772 +msgid "Jumping to the bottom of the page." +msgstr "" + +#: js/activity.js:2778 +msgid "Scrolling up." +msgstr "" + +#: js/activity.js:2783 +msgid "Scrolling down." +msgstr "" + +#: js/activity.js:2788 +msgid "Extracting block" +msgstr "" + +#: js/activity.js:2796 +msgid "Moving block up." +msgstr "" + +#: js/activity.js:2817 +msgid "Moving block down." msgstr "" -#: js/block.js:4090 -msgid "Numbers can have at most 10 digits." +#: js/activity.js:2838 +msgid "Moving block left." msgstr "" -#: js/notation.js:353 -msgid "Lilypond cannot process pickup of " +#: js/activity.js:2855 +msgid "Moving block right." msgstr "" -#: js/turtledefs.js:40 -#.TRANS: put the URL to the guide here, e.g., https://github.com/sugarlabs/turtleblocksjs/tree/master/guide/README.md -msgid "guide url" +#: js/activity.js:2870 +msgid "Jump to home position." msgstr "" -#: js/turtledefs.js:85 -#: js/turtledefs.js:437 -msgid "Turtle Blocks is a Logo-inspired turtle that draws colorful pictures with snap-together visual-programming blocks." +#: js/activity.js:2897 +msgid "Hide blocks" msgstr "" -#: js/turtledefs.js:118 -#: js/turtledefs.js:220 -msgid "search" +#: js/activity.js:4500 +msgid "Click the run button to run the project." msgstr "" -#: js/turtledefs.js:120 -#: js/turtledefs.js:222 -#: js/WidgetBlocks.js:437 -#: js/MeterBlocks.js:1343 -#.TRANS: musical meter (time signature), e.g., 4:4 -msgid "meter" +#: js/activity.js:5692 +msgid "Show/hide block" msgstr "" -#: js/turtledefs.js:122 -#: js/turtledefs.js:224 -msgid "intervals" +#: js/activity.js:5698 +msgid "Expand/collapse blocks" msgstr "" -#: js/turtledefs.js:124 -#: js/turtledefs.js:226 -msgid "ornament" +#: js/activity.js:5976 +msgid "Could not parse JSON input." msgstr "" -#: js/turtledefs.js:125 -#: js/turtledefs.js:227 -#: js/VolumeBlocks.js:362 -#: js/VolumeBlocks.js:502 -#: js/VolumeBlocks.js:545 -msgid "volume" +#: js/activity.js:6475 +#: js/activity.js:6580 +#: js/activity.js:6631 +msgid "Cannot load project from the file. Please check the file type." msgstr "" -#: js/turtledefs.js:129 -#: js/turtledefs.js:231 -msgid "boxes" +#: js/activity.js:6917 +msgid "Invalid parameters" msgstr "" -#: js/turtledefs.js:130 -#: js/turtledefs.js:232 -msgid "widgets" -msgstr "" +#: js/blocks.js:1212 +#: js/blocks.js:3444 +#: js/blocks.js:3834 +#: js/blocks.js:3865 +#: js/blocks.js:3914 +#: js/blocks.js:3949 +#: js/blocks.js:6586 +#: js/palette.js:509 +#: js/palette.js:638 +#: js/palette.js:1105 +#: js/blocks/BoxesBlocks.js:282 +#: js/blocks/BoxesBlocks.js:285 +#: js/blocks/BoxesBlocks.js:405 +#: js/blocks/BoxesBlocks.js:594 +msgid "box" +msgstr "πλαίσιο" -#: js/turtledefs.js:131 -#: js/turtledefs.js:233 -#: js/phrasemaker.js:824 -msgid "graphics" +#: js/blocks.js:1713 +msgid "Consider breaking this stack into parts." msgstr "" -#: js/turtledefs.js:134 -#: js/turtledefs.js:236 -msgid "boolean" +#: js/blocks.js:2472 +#: js/palette.js:653 +#: js/blocks/MediaBlocks.js:602 +msgid "open file" msgstr "" -#: js/turtledefs.js:137 -#: js/turtledefs.js:239 -#: js/HeapBlocks.js:59 -#: js/status.js:147 -msgid "heap" +#: js/blocks.js:3247 +#: js/palette.js:574 +#: js/blocks/MediaBlocks.js:892 +#: js/blocks/MediaBlocks.js:963 +msgid "text" +msgstr "κείμενο" + +#: js/blocks.js:3443 +#: js/palette.js:641 +#: js/palette.js:642 +#: js/blocks/BoxesBlocks.js:514 +msgid "store in box" msgstr "" -#: js/turtledefs.js:138 -#: js/turtledefs.js:240 -#: js/ProgramBlocks.js:495 -#: js/DictBlocks.js:142 -msgid "dictionary" +#: js/blocks.js:3448 +#: js/blocks.js:3888 +#: js/blocks.js:3923 +#: js/blocks.js:3958 +#: js/blocks.js:5862 +#: js/blocks.js:5883 +#: js/blocks/BoxesBlocks.js:772 +msgid "box1" msgstr "" -#: js/turtledefs.js:139 -#: js/turtledefs.js:241 -msgid "ensemble" +#: js/blocks.js:3450 +#: js/blocks.js:3890 +#: js/blocks.js:3925 +#: js/blocks.js:3960 +#: js/blocks.js:5864 +#: js/blocks.js:5885 +#: js/blocks/BoxesBlocks.js:663 +msgid "box2" msgstr "" -#: js/turtledefs.js:140 -#: js/turtledefs.js:242 -msgid "extras" +#: js/blocks.js:4122 +#: js/palette.js:639 +#: js/palette.js:644 +#: js/palette.js:1041 +#: js/blocks/BoxesBlocks.js:591 +msgid "store in" +msgstr "αποθήκευση στο" + +#: js/blocks.js:4122 +#: js/blocks/BoxesBlocks.js:595 +#: js/blocks/DictBlocks.js:215 +#: js/blocks/DictBlocks.js:289 +#: js/blocks/EnsembleBlocks.js:391 +#: js/blocks/EnsembleBlocks.js:402 +#: js/blocks/MediaBlocks.js:746 +#: js/blocks/PitchBlocks.js:656 +#: js/blocks/PitchBlocks.js:934 +#: js/blocks/PitchBlocks.js:1866 +#: js/blocks/ProgramBlocks.js:390 +#: js/blocks/ProgramBlocks.js:495 +#: js/blocks/ProgramBlocks.js:658 +#: js/blocks/ToneBlocks.js:1025 +msgid "name" msgstr "" -#: js/turtledefs.js:142 -#: js/turtledefs.js:244 -#.TRANS: program as in computer program -#.TRANS: program as in computer program -msgid "program" +#: js/blocks.js:4122 +#: js/blocks/BoxesBlocks.js:75 +#: js/blocks/BoxesBlocks.js:595 +#: js/blocks/DictBlocks.js:289 +#: js/blocks/DictBlocks.js:430 +#: js/blocks/HeapBlocks.js:544 +#: js/blocks/RhythmBlocks.js:1130 +msgid "value" +msgstr "τιμή" + +#: js/blocks.js:4465 +msgid "Forever loop detected inside a note value block. Unexpected things may happen." msgstr "" -#: js/turtledefs.js:143 -#: js/turtledefs.js:245 -msgid "my blocks" +#: js/blocks.js:4988 +msgid "There is no block selected." msgstr "" -#: js/turtledefs.js:185 -#: js/turtledefs.js:281 -msgid "artwork" +#: js/blocks.js:5091 +#: js/blocks/MediaBlocks.js:888 +msgid "show" +msgstr "εμφάνιση" + +#: js/blocks.js:5094 +#: js/blocks/MediaBlocks.js:803 +#.TRANS: Avatar is the image used to determine the appearance of the mouse. +msgid "avatar" msgstr "" -#: js/turtledefs.js:185 -#: js/turtledefs.js:281 -msgid "logic" +#: js/blocks.js:5097 +#: js/blocks/ToneBlocks.js:1010 +#: js/widgets/sampler.js:975 +#.TRANS: The sound sample that the user uploads. +msgid "sample" msgstr "" -#: js/turtledefs.js:185 -#: js/turtledefs.js:281 -msgid "music" +#: js/lilypond.js:606 +msgid "brown rat" msgstr "" -#: js/turtledefs.js:187 -#: js/turtledefs.js:463 -msgid "Music Blocks is a collection of tools for exploring fundamental musical concepts in a fun way." +#: js/lilypond.js:607 +msgid "mole" msgstr "" -#: js/turtledefs.js:436 -msgid "Welcome to Turtle Blocks" +#: js/lilypond.js:608 +msgid "chipmunk" msgstr "" -#: js/turtledefs.js:438 -#: js/turtledefs.js:465 -#: js/turtledefs.js:774 -#: js/turtledefs.js:805 -msgid "The current version is" +#: js/lilypond.js:609 +msgid "red squirrel" msgstr "" -#: js/turtledefs.js:446 -#: js/turtledefs.js:483 -msgid "Click the run button to run the project in fast mode." +#: js/lilypond.js:610 +msgid "guinea pig" msgstr "" -#: js/turtledefs.js:452 -msgid "Stop the turtle." +#: js/lilypond.js:611 +msgid "capybara" msgstr "" -#: js/turtledefs.js:454 -#: js/turtledefs.js:491 -msgid "You can also type Alt-S to stop." +#: js/lilypond.js:612 +msgid "coypu" msgstr "" -#: js/turtledefs.js:462 -#: js/help.js:333 -msgid "Welcome to Music Blocks" +#: js/lilypond.js:613 +msgid "black rat" msgstr "" -#: js/turtledefs.js:472 -#: js/help.js:334 -msgid "Meet Mr. Mouse!" +#: js/lilypond.js:614 +msgid "grey squirrel" msgstr "" -#: js/turtledefs.js:473 -msgid "Mr Mouse is our Music Blocks conductor." +#: js/lilypond.js:615 +msgid "flying squirrel" msgstr "" -#: js/turtledefs.js:475 -msgid "Mr Mouse encourages you to explore Music Blocks." +#: js/lilypond.js:616 +msgid "bat" msgstr "" -#: js/turtledefs.js:477 -msgid "Let us start our tour!" +#: js/lilypond.js:749 +#: js/lilypond.js:913 +#: js/lilypond.js:951 +#: js/blocks/ActionBlocks.js:1256 +#: js/blocks/ExtrasBlocks.js:556 +msgid "start drum" msgstr "" -#: js/turtledefs.js:489 -msgid "Stop the music (and the mice)." +#: js/logo.js:61 +msgid "Not a valid pitch name" msgstr "" -#: js/turtledefs.js:499 -msgid "Record your project as video." +#: js/logo.js:507 +#: js/blocks/ProgramBlocks.js:258 +#: js/blocks/ProgramBlocks.js:427 +msgid "You must select a file." msgstr "" -#: js/turtledefs.js:505 -msgid "Toggle Fullscreen mode." +#: js/logo.js:1696 +msgid "Playback is ready." msgstr "" -#: js/turtledefs.js:511 -msgid "Initialize a new project." +#: js/macros.js:711 +#: js/utils/musicutils.js:1162 +#: js/utils/synthutils.js:202 +#.TRANS: animal sound effect +msgid "duck" msgstr "" -#: js/turtledefs.js:517 -msgid "You can also load projects from the file system." +#: js/notation.js:353 +msgid "Lilypond cannot process pickup of " msgstr "" -#: js/turtledefs.js:522 -#: js/StringHelper.js:46 -msgid "Delete" +#: js/palette.js:571 +msgid "grid" +msgstr "Πλέγμα" + +#: js/palette.js:580 +msgid "effect" msgstr "" -#: js/turtledefs.js:523 -msgid "To delete a block, just right-click on it, then you will be able to see the delete option" +#: js/palette.js:586 +msgid "sargam" msgstr "" -#: js/turtledefs.js:528 -#: js/activity.js:2270 -#: js/LocalCard.js:31 -msgid "Copy" -msgstr "Αντιγραφή" +#: js/palette.js:601 +#: js/blocks/PitchBlocks.js:1209 +msgid "custom pitch" +msgstr "" -#: js/turtledefs.js:529 -msgid "To copy a block, just right-click on it, then you will be able to see the copy option" +#: js/palette.js:609 +msgid "accidental" msgstr "" -#: js/turtledefs.js:535 -msgid "To extract a block, just right-click on it, then you will be able to see the extract option" +#: js/palette.js:633 +#: js/blocks/PitchBlocks.js:405 +msgid "pitch converter" msgstr "" -#: js/turtledefs.js:542 -#: js/turtledefs.js:552 -#: js/turtledefs.js:573 -msgid "Save your project to a file." +#: js/piemenus.js:200 +#: js/utils/musicutils.js:1187 +#: js/utils/musicutils.js:1207 +#: js/widgets/musickeyboard.js:2341 +#: js/widgets/phrasemaker.js:1908 +#: js/widgets/sampler.js:810 +#.TRANS: double sharp is a music term related to pitch +msgid "double sharp" msgstr "" -#: js/turtledefs.js:549 -#: js/turtledefs.js:570 -msgid "save" +#: js/piemenus.js:201 +#: js/utils/musicutils.js:1185 +#: js/utils/musicutils.js:1208 +#: js/blocks/PitchBlocks.js:1539 +#: js/turtleactions/PitchActions.js:323 +#: js/widgets/musickeyboard.js:2342 +#: js/widgets/phrasemaker.js:1909 +#: js/widgets/sampler.js:811 +#.TRANS: sharp is a music term related to pitch +#.TRANS: sharp is a half-step up in pitch +msgid "sharp" msgstr "" -#: js/turtledefs.js:556 -#: js/turtledefs.js:577 -msgid "Save graphics from your project to as SVG." +#: js/piemenus.js:202 +#: js/utils/musicutils.js:1183 +#: js/utils/musicutils.js:1209 +#: js/widgets/musickeyboard.js:2343 +#: js/widgets/phrasemaker.js:1910 +#: js/widgets/sampler.js:812 +#.TRANS: natural is a music term related to pitch +msgid "natural" msgstr "" -#: js/turtledefs.js:560 -#: js/turtledefs.js:581 -msgid "Save graphics from your project as PNG." +#: js/piemenus.js:203 +#: js/utils/musicutils.js:1181 +#: js/utils/musicutils.js:1210 +#: js/blocks/PitchBlocks.js:1498 +#: js/turtleactions/PitchActions.js:326 +#: js/widgets/musickeyboard.js:2344 +#: js/widgets/phrasemaker.js:1911 +#: js/widgets/sampler.js:813 +#.TRANS: flat is a music term related to pitch +#.TRANS: flat is a half-step down in pitch +msgid "flat" msgstr "" -#: js/turtledefs.js:564 -#: js/turtledefs.js:597 -msgid "Save block artwork as an SVG file." +#: js/piemenus.js:204 +#: js/utils/musicutils.js:1179 +#: js/utils/musicutils.js:1211 +#: js/widgets/musickeyboard.js:2345 +#: js/widgets/phrasemaker.js:1912 +#: js/widgets/sampler.js:814 +#.TRANS: double flat is a music term related to pitch +msgid "double flat" msgstr "" -#: js/turtledefs.js:585 -msgid "Save audio from your project as WAV." +#: js/piemenus.js:2864 +#: js/utils/musicutils.js:1006 +#: js/blocks/PitchBlocks.js:1385 +#.TRANS: unison is a music term related to intervals +#.TRANS: unison means the note is the same as the current note +msgid "unison" msgstr "" -#: js/turtledefs.js:589 -msgid "Save your project to as an ABC file." +#: js/piemenus.js:3018 +#: js/piemenus.js:3091 +#: js/utils/musicutils.js:1014 +#: js/utils/musicutils.js:1189 +#: js/utils/musicutils.js:1326 +#.TRANS: major is a music term related to intervals and mode +msgid "major" msgstr "" -#: js/turtledefs.js:593 -msgid "Save your project to as a Lilypond file." +#: js/piemenus.js:3018 +#: js/piemenus.js:3091 +#: js/utils/musicutils.js:1032 +#.TRANS: modal scale for music +msgid "ionian" msgstr "" -#: js/turtledefs.js:604 -msgid "Load samples from server" +#: js/piemenus.js:3020 +#: js/piemenus.js:3095 +#: js/utils/musicutils.js:1012 +#: js/utils/musicutils.js:1190 +#: js/utils/musicutils.js:1323 +#.TRANS: minor is a music term related to intervals and mode +msgid "minor" msgstr "" -#: js/turtledefs.js:605 -msgid "This button opens a viewer for loading example projects." +#: js/piemenus.js:3020 +#: js/piemenus.js:3095 +#: js/utils/musicutils.js:1042 +#.TRANS: modal scale for music +msgid "aeolian" msgstr "" -#: js/turtledefs.js:611 -msgid "Palette buttons" +#: js/piemenus.js:3410 +msgid "Duplicate" msgstr "" -#: js/turtledefs.js:612 -msgid "This toolbar contains the palette buttons including Rhythm Pitch Tone Action and more." +#: js/piemenus.js:3412 +msgid "Move to trash" msgstr "" -#: js/turtledefs.js:614 -msgid "Click to show the palettes of blocks and drag blocks from the palettes onto the canvas to use them." +#: js/piemenus.js:3413 +#: js/widgets/timbre.js:968 +#: planet/js/StringHelper.js:69 +msgid "Close" msgstr "" -#: js/turtledefs.js:620 -msgid "Cartesian/Polar" +#: js/piemenus.js:3419 +msgid "Save stack" msgstr "" -#: js/turtledefs.js:621 -msgid "Show or hide a coordinate grid." +#: js/piemenus.js:3449 +msgid "In order to copy a sample, you must reload the widget, import the sample again, and export it." msgstr "" -#: js/turtledefs.js:627 -msgid "Clear the screen and return the mice to their initial positions." +#: js/piemenus.js:3812 +msgid "You have chosen key " msgstr "" -#: js/turtledefs.js:633 -msgid "Collapse the graphics window." +#: js/piemenus.js:3816 +msgid " for your pitch preview." msgstr "" -#: js/turtledefs.js:638 -#: js/activity.js:4256 -#: js/activity.js:4256 -msgid "Home" +#: js/turtle-singer.js:1363 +#.TRANS: partials are weighted components in a harmonic series +msgid "You must have at least one Partial block inside of a Weighted-partial block" msgstr "" -#: js/turtledefs.js:639 -msgid "Return all blocks to the center of the screen." +#: js/turtle-singer.js:2077 +msgid "synth cannot play chords." msgstr "" -#: js/turtledefs.js:644 -msgid "Show/hide blocks" -msgstr "Εμφάνιση/Απόκρυση εντολών" - -#: js/turtledefs.js:645 -msgid "Hide or show the blocks and the palettes." +#: js/utils/musicutils.js:505 +#: js/utils/musicutils.js:645 +#: js/widgets/pitchdrummatrix.js:228 +#: js/widgets/musickeyboard.js:2885 +msgid "rest" msgstr "" -#: js/turtledefs.js:650 -msgid "Expand/collapse collapsable blocks" +#: js/utils/musicutils.js:689 +msgid "Perfect unison" msgstr "" -#: js/turtledefs.js:651 -msgid "Expand or collapse start and action stacks." +#: js/utils/musicutils.js:689 +msgid "Diminished second" msgstr "" -#: js/turtledefs.js:658 -#: js/activity.js:4265 -msgid "Decrease block size" +#: js/utils/musicutils.js:690 +msgid "Minor second" msgstr "" -#: js/turtledefs.js:659 -msgid "Decrease the size of the blocks." +#: js/utils/musicutils.js:690 +msgid "Augmented unison" msgstr "" -#: js/turtledefs.js:664 -#: js/activity.js:4267 -msgid "Increase block size" +#: js/utils/musicutils.js:691 +msgid "Major second" msgstr "" -#: js/turtledefs.js:665 -msgid "Increase the size of the blocks." +#: js/utils/musicutils.js:691 +msgid "Diminished third" msgstr "" -#: js/turtledefs.js:670 -msgid "Expand/collapse option toolbar" +#: js/utils/musicutils.js:692 +msgid "Minor third" msgstr "" -#: js/turtledefs.js:671 -msgid "Click this button to expand or collapse the auxillary toolbar." +#: js/utils/musicutils.js:692 +msgid "Augmented second" msgstr "" -#: js/turtledefs.js:676 -msgid "Run slow" +#: js/utils/musicutils.js:693 +msgid "Major third" msgstr "" -#: js/turtledefs.js:677 -msgid "Click to run the project in slow mode." +#: js/utils/musicutils.js:693 +msgid "Diminished fourth" msgstr "" -#: js/turtledefs.js:683 -msgid "Click to run the project step by step." +#: js/utils/musicutils.js:694 +msgid "Perfect fourth" msgstr "" -#: js/turtledefs.js:690 -msgid "Display statistics about your Music project." +#: js/utils/musicutils.js:694 +msgid "Augmented third" msgstr "" -#: js/turtledefs.js:697 -msgid "Delete a selected plugin." +#: js/utils/musicutils.js:695 +msgid "Diminished fifth" msgstr "" -#: js/turtledefs.js:704 -msgid "Enable scrolling" +#: js/utils/musicutils.js:695 +msgid "Augmented fourth" msgstr "" -#: js/turtledefs.js:705 -msgid "You can scroll the blocks on the canvas." +#: js/utils/musicutils.js:696 +msgid "Perfect fifth" msgstr "" -#: js/turtledefs.js:714 -msgid "Wrap Turtle" +#: js/utils/musicutils.js:696 +msgid "Diminished sixth" msgstr "" -#: js/turtledefs.js:715 -msgid "Turn Turtle wrapping On or Off." +#: js/utils/musicutils.js:697 +msgid "Minor sixth" msgstr "" -#: js/turtledefs.js:725 -msgid "Restore blocks from the trash." +#: js/utils/musicutils.js:697 +msgid "Augmented fifth" msgstr "" -#: js/turtledefs.js:732 -msgid "Switch mode" +#: js/utils/musicutils.js:698 +msgid "Major sixth" msgstr "" -#: js/turtledefs.js:733 -msgid "Switch between beginner and advance modes." +#: js/utils/musicutils.js:698 +msgid "Diminished seventh" msgstr "" -#: js/turtledefs.js:739 -msgid "Select your language preference." +#: js/utils/musicutils.js:699 +msgid "Minor seventh" msgstr "" -#: js/turtledefs.js:745 -msgid "Keyboard shortcuts" +#: js/utils/musicutils.js:699 +msgid "Augmented sixth" msgstr "" -#: js/turtledefs.js:746 -msgid "You can type d to create a do block and r to create a re block etc." +#: js/utils/musicutils.js:700 +msgid "Major seventh" msgstr "" -#: js/turtledefs.js:753 -msgid "Show these messages." +#: js/utils/musicutils.js:700 +msgid "Diminished octave" msgstr "" -#: js/turtledefs.js:759 -#: js/turtledefs.js:790 -#: js/help.js:335 -msgid "Guide" +#: js/utils/musicutils.js:701 +msgid "Perfect octave" msgstr "" -#: js/turtledefs.js:760 -msgid "A detailed guide to Turtle Blocks is available." +#: js/utils/musicutils.js:701 +msgid "Augmented seventh" msgstr "" -#: js/turtledefs.js:764 -msgid "Turtle Blocks Guide" +#: js/utils/musicutils.js:702 +msgid "Minor ninth" msgstr "" -#: js/turtledefs.js:767 -#: js/turtledefs.js:798 -#: js/help.js:336 -msgid "About" +#: js/utils/musicutils.js:702 +msgid "Augmented octave" msgstr "" -#: js/turtledefs.js:768 -msgid "Turtle Blocks is an open source collection of tools for exploring musical concepts." +#: js/utils/musicutils.js:703 +msgid "Major ninth" msgstr "" -#: js/turtledefs.js:770 -msgid "A full list of contributors can be found in the Turtle Blocks GitHub repository." +#: js/utils/musicutils.js:703 +msgid "Diminished tenth" msgstr "" -#: js/turtledefs.js:772 -msgid "Turtle Blocks is licensed under the AGPL." +#: js/utils/musicutils.js:704 +msgid "Minor tenth" msgstr "" -#: js/turtledefs.js:780 -msgid "Turtle Blocks GitHub repository" +#: js/utils/musicutils.js:704 +msgid "Augmented ninth" msgstr "" -#: js/turtledefs.js:783 -#: js/turtledefs.js:814 -#: js/help.js:337 -#: js/help.js:359 -msgid "Congratulations." +#: js/utils/musicutils.js:705 +msgid "Major tenth" msgstr "" -#: js/turtledefs.js:784 -msgid "You have finished the tour. Please enjoy Turtle Blocks!" +#: js/utils/musicutils.js:705 +msgid "Diminished eleventh" msgstr "" -#: js/turtledefs.js:791 -msgid "A detailed guide to Music Blocks is available." +#: js/utils/musicutils.js:706 +msgid "Perfect eleventh" msgstr "" -#: js/turtledefs.js:795 -#: js/SaveInterface.js:76 -msgid "Music Blocks Guide" +#: js/utils/musicutils.js:706 +msgid "Augmented tenth" msgstr "" -#: js/turtledefs.js:799 -msgid "Music Blocks is an open source collection of tools for exploring musical concepts." +#: js/utils/musicutils.js:707 +msgid "Diminished twelfth" msgstr "" -#: js/turtledefs.js:801 -msgid "A full list of contributors can be found in the Music Blocks GitHub repository." +#: js/utils/musicutils.js:707 +msgid "Augmented eleventh" msgstr "" -#: js/turtledefs.js:803 -msgid "Music Blocks is licensed under the AGPL." +#: js/utils/musicutils.js:708 +msgid "Perfect twelfth" msgstr "" -#: js/turtledefs.js:811 -msgid "Music Blocks GitHub repository" +#: js/utils/musicutils.js:708 +msgid "Diminished thirteenth" msgstr "" -#: js/turtledefs.js:815 -msgid "You have finished the tour. Please enjoy Music Blocks!" +#: js/utils/musicutils.js:709 +msgid "Minor thirteenth" msgstr "" -#: js/activity.js:369 -msgid "Search for blocks" +#: js/utils/musicutils.js:709 +msgid "Augmented fifth, plus an octave" msgstr "" -#: js/activity.js:1145 -msgid "Refresh your browser to change to advanced mode." +#: js/utils/musicutils.js:710 +msgid "Major thirteenth" msgstr "" -#: js/activity.js:1150 -msgid "Refresh your browser to change to beginner mode." +#: js/utils/musicutils.js:710 +msgid "Diminished seventh, plus an octave" msgstr "" -#: js/activity.js:1184 -msgid "Catching mice" +#: js/utils/musicutils.js:838 +#.TRANS: ordinal number. Please keep exactly one space between each number. +msgid "1st 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th" msgstr "" -#: js/activity.js:1185 -msgid "Cleaning the instruments" +#: js/utils/musicutils.js:1008 +#: js/utils/musicutils.js:1191 +#: js/utils/musicutils.js:1325 +#.TRANS: augmented is a music term related to intervals +msgid "augmented" msgstr "" -#: js/activity.js:1186 -msgid "Testing key pieces" +#: js/utils/musicutils.js:1010 +#: js/utils/musicutils.js:1192 +#: js/utils/musicutils.js:1324 +#.TRANS: diminished is a music term related to intervals and mode +msgid "diminished" msgstr "" -#: js/activity.js:1187 -msgid "Sight-reading" +#: js/utils/musicutils.js:1016 +#: js/utils/musicutils.js:1322 +#: js/blocks/IntervalsBlocks.js:649 +#: js/turtleactions/IntervalsActions.js:120 +#: js/turtleactions/IntervalsActions.js:124 +#.TRANS: perfect is a music term related to intervals +msgid "perfect" msgstr "" -#: js/activity.js:1188 -msgid "Combining math and music" +#: js/utils/musicutils.js:1018 +#.TRANS: twelve semi-tone scale for music +msgid "chromatic" msgstr "" -#: js/activity.js:1189 -msgid "Generating more blocks" +#: js/utils/musicutils.js:1019 +msgid "algerian" msgstr "" -#: js/activity.js:1190 -msgid "Do Re Mi Fa Sol La Ti Do" +#: js/utils/musicutils.js:1020 +msgid "spanish" msgstr "" -#: js/activity.js:1191 -msgid "Tuning string instruments" +#: js/utils/musicutils.js:1022 +#.TRANS: modal scale in music +msgid "octatonic" msgstr "" -#: js/activity.js:1192 -msgid "Pressing random keys" +#: js/utils/musicutils.js:1024 +#.TRANS: harmonic major scale in music +msgid "harmonic major" msgstr "" -#: js/activity.js:1351 -msgid "plugins will be removed upon restart." +#: js/utils/musicutils.js:1026 +#.TRANS: natural minor scales in music +msgid "natural minor" msgstr "" -#: js/activity.js:1360 -msgid "show Cartesian" +#: js/utils/musicutils.js:1028 +#.TRANS: harmonic minor scale in music +msgid "harmonic minor" msgstr "" -#: js/activity.js:1842 -msgid "output tools" +#: js/utils/musicutils.js:1030 +#.TRANS: melodic minor scale in music +msgid "melodic minor" msgstr "" -#: js/activity.js:1845 -msgid "custom note" +#: js/utils/musicutils.js:1034 +#.TRANS: modal scale for music +msgid "dorian" msgstr "" -#: js/activity.js:1848 -msgid "accidental name" +#: js/utils/musicutils.js:1036 +#.TRANS: modal scale for music +msgid "phrygian" msgstr "" -#: js/activity.js:1851 -#: js/PitchBlocks.js:855 -msgid "east indian solfege" +#: js/utils/musicutils.js:1038 +#.TRANS: modal scale for music +msgid "lydian" msgstr "" -#: js/activity.js:1854 -#: js/PitchBlocks.js:869 -msgid "note name" +#: js/utils/musicutils.js:1040 +#.TRANS: modal scale for music +msgid "mixolydian" msgstr "" -#: js/activity.js:1857 -#: js/IntervalsBlocks.js:94 -msgid "temperament name" +#: js/utils/musicutils.js:1044 +#.TRANS: modal scale for music +msgid "locrian" msgstr "" -#: js/activity.js:1863 -msgid "chord name" +#: js/utils/musicutils.js:1046 +#.TRANS: minor jazz scale for music +msgid "jazz minor" msgstr "" -#: js/activity.js:1869 -msgid "filter type" +#: js/utils/musicutils.js:1048 +#.TRANS: bebop scale for music +msgid "bebop" msgstr "" -#: js/activity.js:1872 -msgid "oscillator type" +#: js/utils/musicutils.js:1049 +msgid "arabic" msgstr "" -#: js/activity.js:1878 -#: js/DrumBlocks.js:32 -msgid "noise name" +#: js/utils/musicutils.js:1050 +msgid "byzantine" msgstr "" -#: js/activity.js:1881 -#: js/DrumBlocks.js:75 -msgid "drum name" +#: js/utils/musicutils.js:1052 +#.TRANS: musical scale for music by Verdi +msgid "enigmatic" msgstr "" -#: js/activity.js:1884 -#: js/DrumBlocks.js:119 -msgid "effects name" +#: js/utils/musicutils.js:1053 +msgid "ethiopian" msgstr "" -#: js/activity.js:1887 -msgid "wrap mode" +#: js/utils/musicutils.js:1055 +#.TRANS: Ethiopic scale for music +msgid "geez" msgstr "" -#: js/activity.js:1890 -msgid "load file" +#: js/utils/musicutils.js:1056 +msgid "hindu" msgstr "" -#: js/activity.js:2056 -msgid "This block is deprecated." +#: js/utils/musicutils.js:1057 +msgid "hungarian" msgstr "" -#: js/activity.js:2058 -msgid "Block cannot be found." +#: js/utils/musicutils.js:1059 +#.TRANS: minor Romanian scale for music +msgid "romanian minor" msgstr "" -#: js/activity.js:2266 -msgid "Saving block artwork" +#: js/utils/musicutils.js:1060 +msgid "spanish gypsy" msgstr "" -#: js/activity.js:2277 -msgid "Erase" +#: js/utils/musicutils.js:1062 +#.TRANS: musical scale for Mid-Eastern music +msgid "maqam" msgstr "" -#: js/activity.js:2301 -#: js/activity.js:2323 -msgid "Paste" -msgstr "Επικόλληση" +#: js/utils/musicutils.js:1064 +#.TRANS: minor blues scale for music +msgid "minor blues" +msgstr "" -#: js/activity.js:2305 -msgid "Save block help" +#: js/utils/musicutils.js:1066 +#.TRANS: major blues scale for music +msgid "major blues" msgstr "" -#: js/activity.js:2390 -msgid "Jumping to the bottom of the page." +#: js/utils/musicutils.js:1067 +msgid "whole tone" msgstr "" -#: js/activity.js:2396 -msgid "Scrolling up." +#: js/utils/musicutils.js:1069 +#.TRANS: pentatonic is a general term that means "five note scale". This scale is typically known as "minor pentatonic" +msgid "minor pentatonic" msgstr "" -#: js/activity.js:2401 -msgid "Scrolling down." +#: js/utils/musicutils.js:1071 +#.TRANS: pentatonic is a general term that means "five note scale". This scale is typically known as "major pentatonic" +msgid "major pentatonic" msgstr "" -#: js/activity.js:2406 -msgid "Extracting block" +#: js/utils/musicutils.js:1072 +msgid "chinese" msgstr "" -#: js/activity.js:2414 -msgid "Moving block up." +#: js/utils/musicutils.js:1073 +msgid "egyptian" msgstr "" -#: js/activity.js:2435 -msgid "Moving block down." +#: js/utils/musicutils.js:1075 +#.TRANS: https://en.wikipedia.org/wiki/Hirajoshi_scale NOTE: There are three different versions of this scale +msgid "hirajoshi" msgstr "" -#: js/activity.js:2456 -msgid "Moving block left." +#: js/utils/musicutils.js:1076 +msgid "Japan" msgstr "" -#: js/activity.js:2473 -msgid "Moving block right." +#: js/utils/musicutils.js:1078 +#.TRANS: https://en.wikipedia.org/wiki/In_scale and https://en.wikipedia.org/wiki/Sakura_Sakura +msgid "in" msgstr "" -#: js/activity.js:2488 -msgid "Jump to home position." +#: js/utils/musicutils.js:1080 +#.TRANS: https://en.wikipedia.org/wiki/Miny%C5%8D_scale +msgid "minyo" msgstr "" -#: js/activity.js:2515 -msgid "Hide blocks" +#: js/utils/musicutils.js:1082 +#.TRANS: Italian mathematician +msgid "fibonacci" msgstr "" -#: js/activity.js:3389 -msgid "Click the run button to run the project." +#: js/utils/musicutils.js:1083 +#: js/utils/musicutils.js:1134 +#: js/utils/musicutils.js:1177 +#: js/utils/musicutils.js:1199 +#: js/utils/synthutils.js:134 +#: js/blocks/IntervalsBlocks.js:1124 +#: js/blocks/ToneBlocks.js:946 +#: js/blocks/VolumeBlocks.js:411 +#: js/blocks/WidgetBlocks.js:399 +#: js/blocks/WidgetBlocks.js:404 +#: js/turtleactions/VolumeActions.js:218 +#: js/widgets/modewidget.js:919 +#.TRANS: customize voice +msgid "custom" msgstr "" -#: js/activity.js:3456 -#: js/SaveInterface.js:131 -#: js/SaveInterface.js:204 -#: js/SaveInterface.js:262 -#: js/SaveInterface.js:389 -#: js/SaveInterface.js:417 -#: js/ProjectStorage.js:27 -#: js/GlobalPlanet.js:467 -#: js/GlobalPlanet.js:469 -#: js/GlobalPlanet.js:495 -#.TRANS: default project title when saving as Lilypond -msgid "My Project" +#: js/utils/musicutils.js:1085 +#: js/utils/musicutils.js:1531 +#: js/blocks/WidgetBlocks.js:176 +#.TRANS: highpass filter +msgid "highpass" msgstr "" -#: js/activity.js:4261 -msgid "Show/hide block" +#: js/utils/musicutils.js:1087 +#: js/utils/musicutils.js:1532 +#.TRANS: lowpass filter +msgid "lowpass" msgstr "" -#: js/activity.js:4263 -msgid "Expand/collapse blocks" +#: js/utils/musicutils.js:1089 +#: js/utils/musicutils.js:1533 +#.TRANS: bandpass filter +msgid "bandpass" msgstr "" -#: js/activity.js:4381 -msgid "Could not parse JSON input." +#: js/utils/musicutils.js:1091 +#: js/utils/musicutils.js:1534 +#.TRANS: high-shelf filter +msgid "highshelf" msgstr "" -#: js/activity.js:4684 -#: js/activity.js:4771 -#: js/activity.js:4821 -msgid "Cannot load project from the file. Please check the file type." +#: js/utils/musicutils.js:1093 +#: js/utils/musicutils.js:1535 +#.TRANS: low-shelf filter +msgid "lowshelf" msgstr "" -#: js/activity.js:5051 -msgid "Invalid parameters" +#: js/utils/musicutils.js:1095 +#: js/utils/musicutils.js:1536 +#.TRANS: notch-shelf filter +msgid "notch" msgstr "" -#: js/turtle-singer.js:1334 -#.TRANS: partials are weighted components in a harmonic series -msgid "You must have at least one Partial block inside of a Weighted-partial block" +#: js/utils/musicutils.js:1097 +#: js/utils/musicutils.js:1537 +#.TRANS: all-pass filter +msgid "allpass" msgstr "" -#: js/turtle-singer.js:2048 -msgid "synth cannot play chords." +#: js/utils/musicutils.js:1099 +#: js/utils/musicutils.js:1538 +#.TRANS: peaking filter +msgid "peaking" msgstr "" -#: js/lilypond.js:614 -msgid "brown rat" +#: js/utils/musicutils.js:1100 +#: js/utils/musicutils.js:1546 +#: js/utils/synthutils.js:126 +#: js/blocks/PitchBlocks.js:85 +#.TRANS: sine wave +msgid "sine" msgstr "" -#: js/lilypond.js:615 -msgid "mole" +#: js/utils/musicutils.js:1101 +#: js/utils/musicutils.js:1547 +#: js/utils/synthutils.js:128 +#: js/blocks/PitchBlocks.js:39 +#.TRANS: square wave +msgid "square" msgstr "" -#: js/lilypond.js:616 -msgid "chipmunk" +#: js/utils/musicutils.js:1102 +#: js/utils/musicutils.js:1548 +#: js/utils/synthutils.js:132 +#: js/blocks/PitchBlocks.js:62 +#: js/blocks/ToneBlocks.js:39 +#.TRANS: triangle wave +msgid "triangle" msgstr "" -#: js/lilypond.js:617 -msgid "red squirrel" +#: js/utils/musicutils.js:1103 +#: js/utils/musicutils.js:1549 +#: js/utils/synthutils.js:130 +#: js/blocks/PitchBlocks.js:108 +#.TRANS: sawtooth wave +msgid "sawtooth" msgstr "" -#: js/lilypond.js:618 -msgid "guinea pig" +#: js/utils/musicutils.js:1105 +#: js/utils/musicutils.js:1312 +#: js/blocks/PitchBlocks.js:931 +#: js/blocks/PitchBlocks.js:937 +#: js/turtleactions/PitchActions.js:469 +#.TRANS: even numbers +#.TRANS: invert based on even or odd number or musical scale +msgid "even" msgstr "" -#: js/lilypond.js:619 -msgid "capybara" +#: js/utils/musicutils.js:1107 +#: js/utils/musicutils.js:1313 +#: js/blocks/PitchBlocks.js:937 +#: js/turtleactions/PitchActions.js:471 +#.TRANS: odd numbers +msgid "odd" msgstr "" -#: js/lilypond.js:620 -msgid "coypu" +#: js/utils/musicutils.js:1108 +#: js/utils/musicutils.js:1314 +#: js/blocks/PitchBlocks.js:937 +#: js/turtleactions/PitchActions.js:473 +msgid "scalar" msgstr "" -#: js/lilypond.js:621 -msgid "black rat" +#: js/utils/musicutils.js:1109 +#: js/utils/synthutils.js:72 +#: js/blocks/VolumeBlocks.js:47 +#.TRANS: musical instrument +msgid "piano" msgstr "" -#: js/lilypond.js:622 -msgid "grey squirrel" +#: js/utils/musicutils.js:1110 +#: js/utils/synthutils.js:74 +#.TRANS: musical instrument +msgid "violin" msgstr "" -#: js/lilypond.js:623 -msgid "flying squirrel" +#: js/utils/musicutils.js:1111 +#: js/utils/synthutils.js:76 +#.TRANS: viola musical instrument +msgid "viola" msgstr "" -#: js/lilypond.js:624 -msgid "bat" +#: js/utils/musicutils.js:1112 +#: js/utils/synthutils.js:114 +#.TRANS: xylophone musical instrument +msgid "xylophone" msgstr "" -#: js/lilypond.js:757 -#: js/lilypond.js:921 -#: js/lilypond.js:959 -#: js/ActionBlocks.js:1256 -#: js/ExtrasBlocks.js:553 -msgid "start drum" +#: js/utils/musicutils.js:1113 +#: js/utils/synthutils.js:136 +#.TRANS: vibraphone musical instrument +msgid "vibraphone" msgstr "" -#: js/SaveInterface.js:59 -#: js/SaveInterface.js:61 -#: js/SaveInterface.js:93 -msgid "Music Blocks Project" +#: js/utils/musicutils.js:1114 +#: js/utils/synthutils.js:78 +#.TRANS: musical instrument +msgid "cello" msgstr "" -#: js/SaveInterface.js:63 -msgid "This project was created in Music Blocks" +#: js/utils/musicutils.js:1116 +#: js/utils/synthutils.js:82 +#.TRANS: viola musical instrument +msgid "double bass" msgstr "" -#: js/SaveInterface.js:67 -msgid "Music Blocks is a Free/Libre Software application." +#: js/utils/musicutils.js:1117 +#: js/utils/synthutils.js:84 +#: js/widgets/rhythmruler.js:2511 +#.TRANS: musical instrument +msgid "guitar" msgstr "" -#: js/SaveInterface.js:69 -msgid "The source code can be accessed at" +#: js/utils/musicutils.js:1118 +#: js/utils/synthutils.js:86 +#.TRANS: musical instrument +msgid "acoustic guitar" msgstr "" -#: js/SaveInterface.js:72 -msgid "For more information, please consult the" +#: js/utils/musicutils.js:1119 +#: js/utils/synthutils.js:88 +#.TRANS: musical instrument +msgid "flute" msgstr "" -#: js/SaveInterface.js:83 -msgid "Alternatively, open the file in Music Blocks using the Load project button." +#: js/utils/musicutils.js:1120 +#: js/utils/synthutils.js:90 +#.TRANS: musical instrument +msgid "clarinet" msgstr "" -#: js/SaveInterface.js:85 -msgid "Project Code" +#: js/utils/musicutils.js:1121 +#: js/utils/synthutils.js:92 +#.TRANS: musical instrument +msgid "saxophone" msgstr "" -#: js/SaveInterface.js:87 -msgid "This code stores data about the blocks in a project." +#: js/utils/musicutils.js:1122 +#: js/utils/synthutils.js:94 +#.TRANS: musical instrument +msgid "tuba" msgstr "" -#: js/SaveInterface.js:89 -msgid "Show" +#: js/utils/musicutils.js:1123 +#: js/utils/synthutils.js:96 +#.TRANS: musical instrument +msgid "trumpet" msgstr "" -#: js/SaveInterface.js:91 -msgid "Hide" +#: js/utils/musicutils.js:1124 +#: js/utils/synthutils.js:98 +#.TRANS: musical instrument +msgid "oboe" msgstr "" -#: js/SaveInterface.js:197 -#: js/SaveInterface.js:58 -msgid "No description provided" +#: js/utils/musicutils.js:1125 +#: js/utils/synthutils.js:100 +#.TRANS: musical instrument +msgid "trombone" msgstr "" -#: js/SaveInterface.js:332 -msgid "Your recording is in progress." +#: js/utils/musicutils.js:1126 +#: js/utils/synthutils.js:116 +#.TRANS: polytone synthesizer +msgid "electronic synth" msgstr "" -#: js/SaveInterface.js:401 -#.TRANS: File name prompt for save as Lilypond -msgid "File name" +#: js/utils/musicutils.js:1127 +#: js/utils/synthutils.js:118 +#.TRANS: simple monotone synthesizer +msgid "simple 1" msgstr "" -#: js/SaveInterface.js:403 -#: js/StringHelper.js:39 -#.TRANS: Project title prompt for save as Lilypond -msgid "Project title" +#: js/utils/musicutils.js:1128 +msgid "simple 2" msgstr "" -#: js/SaveInterface.js:405 -#.TRANS: Project title prompt for save as Lilypond -msgid "Project author" +#: js/utils/musicutils.js:1129 +msgid "simple 3" msgstr "" -#: js/SaveInterface.js:407 -#.TRANS: MIDI prompt for save as Lilypond -msgid "Include MIDI output?" +#: js/utils/musicutils.js:1130 +msgid "simple 4" msgstr "" -#: js/SaveInterface.js:409 -#.TRANS: Guitar prompt for save as Lilypond -msgid "Include guitar tablature output?" +#: js/utils/musicutils.js:1131 +#: js/utils/synthutils.js:58 +#: js/blocks/DrumBlocks.js:191 +#.TRANS: white noise synthesizer +msgid "white noise" msgstr "" -#: js/SaveInterface.js:411 -#.TRANS: Lilypond is a scripting language for generating sheet music -msgid "Save as Lilypond" +#: js/utils/musicutils.js:1132 +#: js/utils/synthutils.js:60 +#.TRANS: brown noise synthesizer +msgid "brown noise" msgstr "" -#: js/SaveInterface.js:426 -#: js/EnsembleBlocks.js:75 -#: js/EnsembleBlocks.js:154 -#: js/EnsembleBlocks.js:216 -#: js/EnsembleBlocks.js:302 -#: js/EnsembleBlocks.js:348 -#: js/EnsembleBlocks.js:389 -#: js/EnsembleBlocks.js:441 -#: js/EnsembleBlocks.js:490 -#: js/EnsembleBlocks.js:536 -#: js/EnsembleBlocks.js:583 -#: js/EnsembleBlocks.js:637 -#: js/EnsembleBlocks.js:753 -#: js/EnsembleBlocks.js:840 -#: js/EnsembleBlocks.js:899 -#: js/EnsembleBlocks.js:942 -#: js/EnsembleBlocks.js:1212 -#: js/EnsembleBlocks.js:1280 -#.TRANS: default project author when saving as Lilypond -msgid "Mr. Mouse" +#: js/utils/musicutils.js:1133 +#: js/utils/synthutils.js:62 +#.TRANS: pink noise synthesizer +msgid "pink noise" msgstr "" -#: js/SaveInterface.js:573 -msgid "The Lilypond code is copied to clipboard. You can paste it here: " +#: js/utils/musicutils.js:1135 +#: js/utils/synthutils.js:148 +#: js/widgets/rhythmruler.js:2057 +#: js/widgets/rhythmruler.js:2319 +#.TRANS: musical instrument +msgid "snare drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:50 -#: js/RhythmBlockPaletteBlocks.js:232 -#.TRANS: rhythm block -#.TRANS: translate "rhythm1" as rhythm -msgid "rhythm1" +#: js/utils/musicutils.js:1136 +#: js/utils/synthutils.js:150 +#.TRANS: musical instrument +msgid "kick drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:70 -#: js/RhythmBlockPaletteBlocks.js:251 -#: js/RhythmBlockPaletteBlocks.js:484 -#: js/RhythmBlockPaletteBlocks.js:553 -#: js/RhythmBlockPaletteBlocks.js:874 -msgid "number of notes" +#: js/utils/musicutils.js:1137 +#: js/utils/synthutils.js:152 +#.TRANS: musical instrument +msgid "tom tom" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:126 -msgid "polyphonic rhythm" +#: js/utils/musicutils.js:1138 +#: js/utils/synthutils.js:154 +#.TRANS: musical instrument +msgid "floor tom" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:218 -msgid "The Rhythm block is used to generate rhythm patterns." +#: js/utils/musicutils.js:1139 +#: js/utils/synthutils.js:156 +#.TRANS: musical instrument +msgid "bass drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:279 -msgid "1/64 note" +#: js/utils/musicutils.js:1140 +#: js/utils/synthutils.js:158 +#.TRANS: a drum made from an inverted cup +msgid "cup drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:303 -msgid "1/32 note" +#: js/utils/musicutils.js:1141 +#: js/utils/synthutils.js:160 +#.TRANS: musical instrument +msgid "darbuka drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:331 -msgid "1/16 note" +#: js/utils/musicutils.js:1142 +#: js/utils/synthutils.js:164 +#.TRANS: musical instrument +msgid "hi hat" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:359 -msgid "eighth note" +#: js/utils/musicutils.js:1143 +#: js/utils/synthutils.js:166 +#.TRANS: a small metal bell +msgid "ride bell" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:387 -msgid "quarter note" +#: js/utils/musicutils.js:1144 +#: js/utils/synthutils.js:168 +#.TRANS: musical instrument +msgid "cow bell" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:415 -msgid "half note" +#: js/utils/musicutils.js:1145 +msgid "japanese drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:443 -msgid "whole note" +#: js/utils/musicutils.js:1146 +#: js/utils/synthutils.js:174 +#.TRANS: musical instrument +msgid "japanese bell" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:481 -#: js/RhythmBlockPaletteBlocks.js:550 -#: js/RhythmBlockPaletteBlocks.js:601 -#.TRANS: A tuplet is a note value divided into irregular time values. -msgid "tuplet" +#: js/utils/musicutils.js:1147 +#: js/utils/synthutils.js:170 +#.TRANS: musical instrument +msgid "triangle bell" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:767 -msgid "septuplet" +#: js/utils/musicutils.js:1148 +#: js/utils/synthutils.js:172 +#.TRANS: musical instrument +msgid "finger cymbals" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:795 -msgid "quintuplet" +#: js/utils/musicutils.js:1149 +#: js/utils/synthutils.js:176 +#.TRANS: a musically tuned set of bells +msgid "chime" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:823 -msgid "triplet" +#: js/utils/musicutils.js:1150 +#: js/utils/synthutils.js:178 +#.TRANS: a musical instrument +msgid "gong" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:850 -msgid "simple tuplet" +#: js/utils/musicutils.js:1151 +#: js/utils/synthutils.js:180 +#.TRANS: sound effect +msgid "clang" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:860 -msgid "Tuplets are a collection of notes that get scaled to a specific duration." +#: js/utils/musicutils.js:1152 +#: js/utils/synthutils.js:182 +#.TRANS: sound effect +msgid "crash" msgstr "" -#: js/WidgetBlocks.js:71 -#.TRANS: sound envelope (ADSR) -msgid "envelope" +#: js/utils/musicutils.js:1153 +#: js/utils/synthutils.js:184 +#.TRANS: sound effect +msgid "bottle" msgstr "" -#: js/WidgetBlocks.js:79 -#.TRANS: Attack time is the time taken for initial run-up of level from nil to peak, beginning when the key is first pressed. -msgid "attack" +#: js/utils/musicutils.js:1154 +#: js/utils/synthutils.js:186 +#.TRANS: sound effect +msgid "clap" msgstr "" -#: js/WidgetBlocks.js:81 -#.TRANS: Decay time is the time taken for the subsequent run down from the attack level to the designated sustain level. -msgid "decay" +#: js/utils/musicutils.js:1155 +#: js/utils/synthutils.js:188 +#.TRANS: sound effect +msgid "slap" msgstr "" -#: js/WidgetBlocks.js:83 -#.TRANS: Sustain level is the level during the main sequence of the sound's duration, until the key is released. -msgid "sustain" +#: js/utils/musicutils.js:1156 +#: js/utils/synthutils.js:190 +#.TRANS: sound effect +msgid "splash" msgstr "" -#: js/WidgetBlocks.js:85 -#.TRANS: Release time is the time taken for the level to decay from the sustain level to zero after the key is released. -msgid "release" +#: js/utils/musicutils.js:1157 +#: js/utils/synthutils.js:192 +#.TRANS: sound effect +msgid "bubbles" msgstr "" -#: js/WidgetBlocks.js:96 -msgid "Attack value should be from 0 to 100." +#: js/utils/musicutils.js:1158 +#: js/utils/synthutils.js:194 +#.TRANS: sound effect +msgid "raindrop" msgstr "" -#: js/WidgetBlocks.js:99 -msgid "Decay value should be from 0 to 100." +#: js/utils/musicutils.js:1159 +#: js/utils/synthutils.js:196 +#.TRANS: animal sound effect +msgid "cat" msgstr "" -#: js/WidgetBlocks.js:102 -msgid "Sustain value should be from 0 to 100." +#: js/utils/musicutils.js:1160 +#: js/utils/synthutils.js:198 +#.TRANS: animal sound effect +msgid "cricket" msgstr "" -#: js/WidgetBlocks.js:105 -msgid "Release value should be from 0-100." +#: js/utils/musicutils.js:1161 +#: js/utils/synthutils.js:200 +#.TRANS: animal sound effect +msgid "dog" msgstr "" -#: js/WidgetBlocks.js:121 -msgid "You are adding multiple envelope blocks." +#: js/utils/musicutils.js:1163 +#: js/utils/synthutils.js:102 +#.TRANS: musical instrument +msgid "banjo" msgstr "" -#: js/WidgetBlocks.js:144 -#.TRANS: a filter removes some unwanted components from a signal -msgid "filter" +#: js/utils/musicutils.js:1164 +#: js/utils/synthutils.js:104 +#.TRANS: musical instrument +msgid "koto" msgstr "" -#: js/WidgetBlocks.js:149 -#: js/musicutils.js:706 -#: js/musicutils.js:1105 -#.TRANS: highpass filter -msgid "highpass" +#: js/utils/musicutils.js:1165 +#: js/utils/synthutils.js:106 +#.TRANS: musical instrument +msgid "dulcimer" msgstr "" -#: js/WidgetBlocks.js:152 -#: js/ToneBlocks.js:42 -#: js/timbre.js:1558 -#: js/timbre.js:1808 -#.TRANS: type of filter, e.g., lowpass, highpass, etc. -#.TRANS: there are different types (sine, triangle, square...) of oscillators. -msgid "type" +#: js/utils/musicutils.js:1166 +#: js/utils/synthutils.js:108 +#.TRANS: musical instrument +msgid "electric guitar" msgstr "" -#: js/WidgetBlocks.js:154 -#: js/timbre.js:1818 -#.TRANS: rolloff is the steepness of a change in frequency. -msgid "rolloff" +#: js/utils/musicutils.js:1167 +#: js/utils/synthutils.js:110 +#.TRANS: musical instrument +msgid "bassoon" msgstr "" -#: js/WidgetBlocks.js:155 -#: js/MediaBlocks.js:692 -#: js/temperament.js:382 -#: js/temperament.js:417 -#: js/temperament.js:477 -#: js/temperament.js:485 -#: js/temperament.js:1348 -#: js/timbre.js:1842 -msgid "frequency" +#: js/utils/musicutils.js:1168 +#: js/utils/synthutils.js:112 +#.TRANS: musical instrument +msgid "celeste" msgstr "" -#: js/WidgetBlocks.js:179 -#.TRANS: rolloff is the steepness of a change in frequency. -msgid "Rolloff value should be either -12, -24, -48, or -96 decibels/octave." +#: js/utils/musicutils.js:1170 +#: js/widgets/temperament.js:787 +#.TRANS: musical temperament +msgid "equal" msgstr "" -#: js/WidgetBlocks.js:211 -msgid "The Temperament tool is used to define custom tuning." +#: js/utils/musicutils.js:1172 +#.TRANS: musical temperament +msgid "Pythagorean" msgstr "" -#: js/WidgetBlocks.js:277 -#: js/sampler.js:329 -msgid "Upload a sample and adjust its pitch center." +#: js/utils/musicutils.js:1174 +#.TRANS: musical temperament +msgid "just intonation" msgstr "" -#: js/WidgetBlocks.js:284 -#.TRANS: the speed at music is should be played. -msgid "sampler" +#: js/utils/musicutils.js:1176 +#.TRANS: musical temperament +msgid "meantone" msgstr "" -#: js/WidgetBlocks.js:329 -#: js/WidgetBlocks.js:334 -#: js/IntervalsBlocks.js:928 -#: js/VolumeBlocks.js:411 -#: js/ToneBlocks.js:946 -#: js/VolumeActions.js:218 -#: js/musicutils.js:704 -#: js/musicutils.js:755 -#: js/musicutils.js:798 -#: js/musicutils.js:820 -#: js/musicutils.js:1136 -#: js/synthutils.js:118 -#: js/modewidget.js:919 -#.TRANS: customize voice -msgid "custom" +#: js/utils/musicutils.js:1193 +msgid "major 7th" msgstr "" -#: js/WidgetBlocks.js:432 -msgid "The Meter block opens a tool to select strong beats for the meter." +#: js/utils/musicutils.js:1194 +msgid "minor 7th" msgstr "" -#: js/WidgetBlocks.js:473 -msgid "The oscilloscope block opens a tool to visualize waveforms." +#: js/utils/musicutils.js:1195 +msgid "dominant 7th" msgstr "" -#: js/WidgetBlocks.js:478 -msgid "oscilloscope" +#: js/utils/musicutils.js:1196 +msgid "minor-major 7th" msgstr "" -#: js/WidgetBlocks.js:530 -msgid "The Custom mode block opens a tool to explore musical mode (the spacing of the notes in a scale)." +#: js/utils/musicutils.js:1197 +msgid "fully-diminished 7th" msgstr "" -#: js/WidgetBlocks.js:536 -#.TRANS: musical mode is the pattern of half-steps in an octave, e.g., Major or Minor modes -msgid "custom mode" +#: js/utils/musicutils.js:1198 +msgid "half-diminished 7th" msgstr "" -#: js/WidgetBlocks.js:570 -msgid "The Tempo block opens a metronome to visualize the beat." +#: js/utils/musicutils.js:1557 +#: js/utils/musicutils.js:1569 +msgid "Equal (12EDO)" msgstr "" -#: js/WidgetBlocks.js:617 -msgid "The Arpeggio Widget is used to compose chord sequences." +#: js/utils/musicutils.js:1558 +#: js/utils/musicutils.js:1570 +msgid "5-limit Just Intonation" msgstr "" -#: js/WidgetBlocks.js:623 -#: js/IntervalsBlocks.js:683 -msgid "arpeggio" +#: js/utils/musicutils.js:1559 +#: js/utils/musicutils.js:1571 +msgid "Pythagorean (3-limit JI)" msgstr "" -#: js/WidgetBlocks.js:677 -msgid "The Pitch drum matrix is used to map pitches to drum sounds." +#: js/utils/musicutils.js:1560 +#: js/utils/musicutils.js:1561 +#: js/utils/musicutils.js:1572 +#: js/utils/musicutils.js:1573 +msgid "Meantone" msgstr "" -#: js/WidgetBlocks.js:682 -#.TRANS: makes a mapping between pitches and drum sounds -msgid "pitch-drum mapper" +#: js/utils/musicutils.js:1574 +msgid "Custom" msgstr "" -#: js/WidgetBlocks.js:724 -msgid "You must have at least one pitch block and one drum block in the matrix." +#: js/utils/musicutils.js:5387 +#: js/utils/musicutils.js:5430 +msgid "current" msgstr "" -#: js/WidgetBlocks.js:746 -msgid "The Pitch slider tool to is used to generate pitches at selected frequencies." +#: js/utils/musicutils.js:5390 +#: js/utils/musicutils.js:5421 +msgid "next" msgstr "" -#: js/WidgetBlocks.js:751 -#.TRANS: widget to generate pitches using a slider -msgid "pitch slider" +#: js/utils/musicutils.js:5393 +#: js/utils/musicutils.js:5426 +msgid "previous" msgstr "" -#: js/WidgetBlocks.js:788 -msgid "chromatic keyboard" +#: js/utils/synthutils.js:120 +#.TRANS: simple monotone synthesizer +msgid "simple-2" msgstr "" -#: js/WidgetBlocks.js:815 -#: js/WidgetBlocks.js:874 -#.TRANS: widget to generate pitches using a slider -msgid "music keyboard" +#: js/utils/synthutils.js:122 +#.TRANS: simple monotone synthesizer +msgid "simple-3" msgstr "" -#: js/WidgetBlocks.js:859 -#: js/WidgetBlocks.js:866 -msgid "The Music keyboard block opens a piano keyboard that can be used to create notes." +#: js/utils/synthutils.js:124 +#.TRANS: simple monotone synthesizer +msgid "simple-4" msgstr "" -#: js/WidgetBlocks.js:910 -msgid "The Pitch staircase tool to is used to generate pitches from a given ratio." +#: js/utils/synthutils.js:162 +#.TRANS: musical instrument +msgid "taiko" msgstr "" -#: js/WidgetBlocks.js:917 -#.TRANS: generate a progressive sequence of pitches -msgid "pitch staircase" +#: js/blocks/ActionBlocks.js:58 +msgid "The Return block will return a value from an action." msgstr "" -#: js/WidgetBlocks.js:982 -msgid "The Rhythm Maker block opens a tool to create drum machines." +#: js/blocks/ActionBlocks.js:75 +msgid "return" msgstr "" -#: js/WidgetBlocks.js:1036 -msgid "G major scale" +#: js/blocks/ActionBlocks.js:128 +msgid "The Return to URL block will return a value to a webpage." msgstr "" -#: js/WidgetBlocks.js:1064 -msgid "C major scale" +#: js/blocks/ActionBlocks.js:145 +msgid "return to URL" msgstr "" -#: js/WidgetBlocks.js:1097 -msgid "The Phrase Maker block opens a tool to create musical phrases." +#: js/blocks/ActionBlocks.js:233 +#: js/blocks/ActionBlocks.js:290 +#: js/blocks/ActionBlocks.js:501 +#: js/blocks/ActionBlocks.js:688 +msgid "The Calculate block returns a value calculated by an action." msgstr "" -#: js/WidgetBlocks.js:1104 -#.TRANS: assigns pitch to a sequence of beats to generate a melody -msgid "phrase maker" +#: js/blocks/ActionBlocks.js:251 +#: js/blocks/ActionBlocks.js:517 +#: js/blocks/ActionBlocks.js:707 +msgid "calculate" msgstr "" -#: js/WidgetBlocks.js:1168 -msgid "You must have at least one pitch block and one rhythm block in the matrix." +#: js/blocks/ActionBlocks.js:376 +#: js/blocks/ActionBlocks.js:593 +#: js/blocks/ActionBlocks.js:942 +#: js/blocks/ActionBlocks.js:1389 +#.TRANS: do is the do something or take an action. +msgid "The Do block is used to initiate an action." msgstr "" -#: js/WidgetBlocks.js:1220 -msgid "The Status block opens a tool for inspecting the status of Music Blocks as it is running." +#: js/blocks/ActionBlocks.js:390 +#: js/blocks/ActionBlocks.js:610 +#: js/blocks/ActionBlocks.js:959 +#: js/blocks/ActionBlocks.js:1048 +#: js/blocks/MeterBlocks.js:769 +msgid "do1" msgstr "" -#: js/IntervalsBlocks.js:45 -msgid "set temperament" +#: js/blocks/ActionBlocks.js:390 +#: js/blocks/ActionBlocks.js:610 +#: js/blocks/ActionBlocks.js:959 +#: js/blocks/ActionBlocks.js:1048 +#: js/blocks/FlowBlocks.js:742 +#: js/blocks/FlowBlocks.js:822 +#: js/blocks/MeterBlocks.js:769 +msgid "do" msgstr "" -#: js/IntervalsBlocks.js:63 -#: js/MediaBlocks.js:746 -#: js/PitchBlocks.js:657 -#: js/PitchBlocks.js:933 -#: js/PitchBlocks.js:972 -#: js/PitchBlocks.js:1005 -#: js/PitchBlocks.js:1166 -#: js/PitchBlocks.js:1679 -#: js/PitchBlocks.js:1720 -#: js/PitchBlocks.js:1827 -#: js/ToneBlocks.js:1025 -#.TRANS: adjusts the shift up or down by one octave (twelve half-steps in the interval between two notes, one having twice or half the frequency in Hz of the other.) -msgid "octave" +#: js/blocks/ActionBlocks.js:791 +#: js/blocks/ActionBlocks.js:865 +msgid "The Arg block contains the value of an argument passed to an action." msgstr "" -#: js/IntervalsBlocks.js:99 -msgid "The Temperament name block is used to select a tuning method." +#: js/blocks/ActionBlocks.js:806 +#: js/blocks/ActionBlocks.js:878 +msgid "arg" msgstr "" -#: js/IntervalsBlocks.js:161 -msgid "doubly" +#: js/blocks/ActionBlocks.js:836 +#: js/blocks/ActionBlocks.js:900 +#: js/blocks/ActionBlocks.js:908 +msgid "Invalid argument" msgstr "" -#: js/IntervalsBlocks.js:166 -msgid "The Doubly block will double the size of an interval." +#: js/blocks/ActionBlocks.js:944 +msgid "In the example, it is used with the One of block to choose a random phase." msgstr "" -#: js/IntervalsBlocks.js:262 -msgid "interval number" +#: js/blocks/ActionBlocks.js:1019 +#: js/blocks/ActionBlocks.js:1026 +msgid "The Listen block is used to listen for an event such as a mouse click." msgstr "" -#: js/IntervalsBlocks.js:330 -#.TRANS: measure the distance between two pitches in semi-tones -msgid "semi-tone interval measure" +#: js/blocks/ActionBlocks.js:1028 +msgid "When the event happens, an action is taken." msgstr "" -#: js/IntervalsBlocks.js:397 -#: js/IntervalsBlocks.js:513 -msgid "You must use two pitch blocks when measuring an interval." +#: js/blocks/ActionBlocks.js:1045 +msgid "on" msgstr "" -#: js/IntervalsBlocks.js:439 -msgid "The Scalar interval block measures the distance between two notes in the current key and mode." +#: js/blocks/ActionBlocks.js:1048 +#: js/blocks/ActionBlocks.js:1049 +#: js/blocks/ActionBlocks.js:1153 +msgid "event" msgstr "" -#: js/IntervalsBlocks.js:445 -#.TRANS: measure the distance between two pitches in steps of musical scale -msgid "scalar interval measure" +#: js/blocks/ActionBlocks.js:1133 +msgid "The Broadcast block is used to trigger an event." msgstr "" -#: js/IntervalsBlocks.js:592 -#: js/musicutils.js:637 -#: js/musicutils.js:908 -#.TRANS: perfect is a music term related to intervals -msgid "perfect" +#: js/blocks/ActionBlocks.js:1151 +msgid "broadcast" msgstr "" -#: js/IntervalsBlocks.js:621 -msgid "In the figure, we add sol# to sol." +#: js/blocks/ActionBlocks.js:1208 +msgid "Each Start block is a separate voice." msgstr "" -#: js/IntervalsBlocks.js:627 -#: js/OrnamentBlocks.js:220 -#.TRANS: calculate a relative step between notes based on semi-tones -msgid "semi-tone interval" +#: js/blocks/ActionBlocks.js:1304 +msgid "It is often used for storing a phrase of music that is repeated." msgstr "" -#: js/IntervalsBlocks.js:676 -msgid "The output of the example is: do, mi, sol, sol, ti, mi" +#: js/blocks/ActionBlocks.js:1495 +msgid "define temperament" msgstr "" -#: js/IntervalsBlocks.js:735 -msgid "The Chord block calculates common chords." +#: js/blocks/BooleanBlocks.js:44 +msgid "The Not block is the logical not operator." msgstr "" -#: js/IntervalsBlocks.js:737 -msgid "In the figure, we generate a C-major chord." -msgstr "" +#: js/blocks/BooleanBlocks.js:62 +msgid "not" +msgstr "όχι" -#: js/IntervalsBlocks.js:742 -msgid "chord" +#: js/blocks/BooleanBlocks.js:134 +msgid "The And block is the logical and operator." msgstr "" -#: js/IntervalsBlocks.js:794 -msgid "The Ratio Interval block calculates an interval based on a ratio." -msgstr "" +#: js/blocks/BooleanBlocks.js:152 +msgid "and" +msgstr "και" -#: js/IntervalsBlocks.js:799 -msgid "ratio interval" +#: js/blocks/BooleanBlocks.js:218 +msgid "The Or block is the logical or operator." msgstr "" -#: js/IntervalsBlocks.js:868 -msgid "In the figure, we add la to sol." -msgstr "" +#: js/blocks/BooleanBlocks.js:236 +msgid "or" +msgstr "ή" -#: js/IntervalsBlocks.js:924 -#.TRANS: define a custom mode -msgid "define mode" +#: js/blocks/BooleanBlocks.js:302 +msgid "The XOR block is the logical XOR operator." msgstr "" -#: js/IntervalsBlocks.js:977 -msgid "movable Do" +#: js/blocks/BooleanBlocks.js:320 +msgid "xor" msgstr "" -#: js/IntervalsBlocks.js:1028 -#.TRANS: mode length is the number of notes in the mode, e.g., 7 for major and minor scales; 12 for chromatic scales -msgid "mode length" +#: js/blocks/BooleanBlocks.js:808 +msgid "The Equal block returns True if the two numbers are equal." msgstr "" -#: js/IntervalsBlocks.js:1037 -msgid "The Mode length block is the number of notes in the current scale." +#: js/blocks/BooleanBlocks.js:909 +msgid "The Not-equal-to block returns True if the two numbers are not equal to each other." msgstr "" -#: js/IntervalsBlocks.js:1039 -msgid "Most Western scales have 7 notes." +#: js/blocks/BooleanBlocks.js:1008 +msgid "The Boolean block is used to specify true or false." msgstr "" -#: js/IntervalsBlocks.js:1088 -#.TRANS: the mode in music is 'major', 'minor', etc. -msgid "current mode" +#: js/blocks/BoxesBlocks.js:53 +#: js/blocks/BoxesBlocks.js:59 +msgid "The Add-to block is used to add to the value stored in a box." msgstr "" -#: js/IntervalsBlocks.js:1141 -#.TRANS: the key is a group of pitches with which a music composition is created -msgid "current key" +#: js/blocks/BoxesBlocks.js:61 +msgid "It can also be used with other blocks such as Color and Pen size." msgstr "" -#: js/IntervalsBlocks.js:1193 -#: js/IntervalsBlocks.js:1238 -#.TRANS: set the key and mode, e.g. C Major -msgid "set key" +#: js/blocks/BoxesBlocks.js:73 +msgid "add" msgstr "" -#: js/IntervalsBlocks.js:1247 -#: js/IntervalsBlocks.js:1253 -msgid "The Set key block is used to set the key and mode," +#: js/blocks/BoxesBlocks.js:75 +#: js/widgets/temperament.js:857 +msgid "to" msgstr "" -#: js/IntervalsBlocks.js:1253 -msgid "eg C Major" +#: js/blocks/BoxesBlocks.js:75 +#: js/blocks/BoxesBlocks.js:595 +#: js/blocks/HeapBlocks.js:544 +msgid "value1" msgstr "" -#: js/IntervalsBlocks.js:1266 -#: js/DictBlocks.js:215 -#: js/DictBlocks.js:216 -#: js/DictBlocks.js:289 -#: js/DictBlocks.js:290 -#: js/DictBlocks.js:357 -#: js/DictBlocks.js:430 -#: js/DictBlocks.js:431 -#.TRANS: key, e.g., C in C Major -msgid "key" +#: js/blocks/BoxesBlocks.js:118 +msgid "Block does not support incrementing." msgstr "" -#: js/ActionBlocks.js:58 -msgid "The Return block will return a value from an action." +#: js/blocks/BoxesBlocks.js:152 +msgid "The Add-1-to block adds one to the value stored in a box." msgstr "" -#: js/ActionBlocks.js:75 -msgid "return" +#: js/blocks/BoxesBlocks.js:163 +msgid "add 1 to" msgstr "" -#: js/ActionBlocks.js:128 -msgid "The Return to URL block will return a value to a webpage." +#: js/blocks/BoxesBlocks.js:211 +msgid "The Subtract-1-from block subtracts one from the value stored in a box." msgstr "" -#: js/ActionBlocks.js:145 -msgid "return to URL" +#: js/blocks/BoxesBlocks.js:222 +msgid "subtract 1 from" msgstr "" -#: js/ActionBlocks.js:233 -#: js/ActionBlocks.js:290 -#: js/ActionBlocks.js:501 -#: js/ActionBlocks.js:688 -msgid "The Calculate block returns a value calculated by an action." +#: js/blocks/BoxesBlocks.js:270 +#: js/blocks/BoxesBlocks.js:387 +msgid "The Box block returns the value stored in a box." msgstr "" -#: js/ActionBlocks.js:251 -#: js/ActionBlocks.js:517 -#: js/ActionBlocks.js:707 -msgid "calculate" +#: js/blocks/BoxesBlocks.js:500 +#: js/blocks/BoxesBlocks.js:576 +msgid "The Store in block will store a value in a box." msgstr "" -#: js/ActionBlocks.js:376 -#: js/ActionBlocks.js:593 -#: js/ActionBlocks.js:942 -#: js/ActionBlocks.js:1389 -#.TRANS: do is the do something or take an action. -msgid "The Do block is used to initiate an action." +#: js/blocks/BoxesBlocks.js:595 +#: js/blocks/EnsembleBlocks.js:391 +#: js/blocks/EnsembleBlocks.js:402 +msgid "name1" msgstr "" -#: js/ActionBlocks.js:390 -#: js/ActionBlocks.js:610 -#: js/ActionBlocks.js:959 -#: js/ActionBlocks.js:1048 -#: js/MeterBlocks.js:769 -msgid "do1" +#: js/blocks/BoxesBlocks.js:652 +msgid "The Box2 block returns the value stored in Box2." msgstr "" -#: js/ActionBlocks.js:390 -#: js/ActionBlocks.js:610 -#: js/ActionBlocks.js:959 -#: js/ActionBlocks.js:1048 -#: js/FlowBlocks.js:742 -#: js/FlowBlocks.js:822 -#: js/MeterBlocks.js:769 -msgid "do" +#: js/blocks/BoxesBlocks.js:703 +msgid "The Store in Box2 block is used to store a value in Box2." msgstr "" -#: js/ActionBlocks.js:791 -#: js/ActionBlocks.js:865 -msgid "The Arg block contains the value of an argument passed to an action." +#: js/blocks/BoxesBlocks.js:715 +msgid "store in box2" msgstr "" -#: js/ActionBlocks.js:806 -#: js/ActionBlocks.js:878 -msgid "arg" +#: js/blocks/BoxesBlocks.js:761 +msgid "The Box1 block returns the value stored in Box1." msgstr "" -#: js/ActionBlocks.js:836 -#: js/ActionBlocks.js:900 -#: js/ActionBlocks.js:908 -msgid "Invalid argument" +#: js/blocks/BoxesBlocks.js:812 +msgid "The Store in Box1 block is used to store a value in Box1." msgstr "" -#: js/ActionBlocks.js:944 -msgid "In the example, it is used with the One of block to choose a random phase." +#: js/blocks/BoxesBlocks.js:826 +msgid "store in box1" msgstr "" -#: js/ActionBlocks.js:1019 -#: js/ActionBlocks.js:1026 -msgid "The Listen block is used to listen for an event such as a mouse click." +#: js/blocks/DictBlocks.js:77 +msgid "show dictionary" msgstr "" -#: js/ActionBlocks.js:1028 -msgid "When the event happens, an action is taken." +#: js/blocks/DictBlocks.js:80 +#: js/blocks/DictBlocks.js:145 +#: js/blocks/DictBlocks.js:216 +#: js/blocks/DictBlocks.js:290 +#: js/blocks/ProgramBlocks.js:396 +#: js/blocks/ProgramBlocks.js:501 +#: js/blocks/ProgramBlocks.js:664 +msgid "My Dictionary" msgstr "" -#: js/ActionBlocks.js:1045 -msgid "on" +#: js/blocks/DictBlocks.js:129 +msgid "The Dictionary block returns a dictionary." msgstr "" -#: js/ActionBlocks.js:1048 -#: js/ActionBlocks.js:1049 -#: js/ActionBlocks.js:1153 -msgid "event" +#: js/blocks/DictBlocks.js:197 +#: js/blocks/DictBlocks.js:339 +msgid "The Get-dict block returns a value in the dictionary for a specified key." msgstr "" -#: js/ActionBlocks.js:1133 -msgid "The Broadcast block is used to trigger an event." +#: js/blocks/DictBlocks.js:212 +#: js/blocks/DictBlocks.js:354 +#.TRANS: retrieve a value from the dictionary with a given key +msgid "get value" msgstr "" -#: js/ActionBlocks.js:1151 -msgid "broadcast" +#: js/blocks/DictBlocks.js:215 +#: js/blocks/DictBlocks.js:216 +#: js/blocks/DictBlocks.js:289 +#: js/blocks/DictBlocks.js:290 +#: js/blocks/DictBlocks.js:357 +#: js/blocks/DictBlocks.js:430 +#: js/blocks/DictBlocks.js:431 +msgid "key2" msgstr "" -#: js/ActionBlocks.js:1208 -msgid "Each Start block is a separate voice." +#: js/blocks/DictBlocks.js:215 +#: js/blocks/DictBlocks.js:216 +#: js/blocks/DictBlocks.js:289 +#: js/blocks/DictBlocks.js:290 +#: js/blocks/DictBlocks.js:357 +#: js/blocks/DictBlocks.js:430 +#: js/blocks/DictBlocks.js:431 +#: js/blocks/IntervalsBlocks.js:1462 +#.TRANS: key, e.g., C in C Major +msgid "key" msgstr "" -#: js/ActionBlocks.js:1304 -msgid "It is often used for storing a phrase of music that is repeated." +#: js/blocks/DictBlocks.js:271 +#: js/blocks/DictBlocks.js:411 +msgid "The Set-dict block sets a value in the dictionary for a specified key." msgstr "" -#: js/ActionBlocks.js:1495 -msgid "define temperament" +#: js/blocks/DictBlocks.js:286 +#: js/blocks/DictBlocks.js:427 +#.TRANS: set a value in the dictionary for a given key +msgid "set value" msgstr "" -#: js/EnsembleBlocks.js:66 +#: js/blocks/EnsembleBlocks.js:66 msgid "mouse index heap" msgstr "" -#: js/EnsembleBlocks.js:68 +#: js/blocks/EnsembleBlocks.js:68 msgid "The Mouse index heap block returns a value in the heap at a specified location for a specified mouse." msgstr "" -#: js/EnsembleBlocks.js:77 -#: js/EnsembleBlocks.js:1080 +#: js/blocks/EnsembleBlocks.js:77 +#: js/blocks/EnsembleBlocks.js:1080 msgid "mouse name" msgstr "" -#: js/EnsembleBlocks.js:77 -#: js/EnsembleBlocks.js:92 -#: js/HeapBlocks.js:544 +#: js/blocks/EnsembleBlocks.js:77 +#: js/blocks/EnsembleBlocks.js:92 +#: js/blocks/HeapBlocks.js:544 #.TRANS: value1 is a numeric value (JAPANESE ONLY) msgid "index" msgstr "" -#: js/EnsembleBlocks.js:80 +#: js/blocks/EnsembleBlocks.js:80 msgid "turtle index heap" msgstr "" -#: js/EnsembleBlocks.js:82 +#: js/blocks/EnsembleBlocks.js:82 msgid "The Turtle index heap block returns a value in the heap at a specified location for a specified turtle." msgstr "" -#: js/EnsembleBlocks.js:90 -#: js/EnsembleBlocks.js:167 -#: js/EnsembleBlocks.js:230 -#: js/EnsembleBlocks.js:316 -#: js/EnsembleBlocks.js:362 -#: js/EnsembleBlocks.js:400 -#: js/EnsembleBlocks.js:454 -#: js/EnsembleBlocks.js:504 -#: js/EnsembleBlocks.js:550 -#: js/EnsembleBlocks.js:597 -#: js/EnsembleBlocks.js:651 -#: js/EnsembleBlocks.js:763 -#: js/EnsembleBlocks.js:854 -#: js/EnsembleBlocks.js:915 -#: js/EnsembleBlocks.js:955 -#: js/EnsembleBlocks.js:1219 -#: js/EnsembleBlocks.js:1293 +#: js/blocks/EnsembleBlocks.js:90 +#: js/blocks/EnsembleBlocks.js:167 +#: js/blocks/EnsembleBlocks.js:230 +#: js/blocks/EnsembleBlocks.js:316 +#: js/blocks/EnsembleBlocks.js:362 +#: js/blocks/EnsembleBlocks.js:400 +#: js/blocks/EnsembleBlocks.js:454 +#: js/blocks/EnsembleBlocks.js:504 +#: js/blocks/EnsembleBlocks.js:550 +#: js/blocks/EnsembleBlocks.js:597 +#: js/blocks/EnsembleBlocks.js:651 +#: js/blocks/EnsembleBlocks.js:763 +#: js/blocks/EnsembleBlocks.js:854 +#: js/blocks/EnsembleBlocks.js:915 +#: js/blocks/EnsembleBlocks.js:955 +#: js/blocks/EnsembleBlocks.js:1219 +#: js/blocks/EnsembleBlocks.js:1293 #.TRANS: Yertle is the name of a turtle. msgid "Yertle" msgstr "" -#: js/EnsembleBlocks.js:92 -#: js/EnsembleBlocks.js:1089 +#: js/blocks/EnsembleBlocks.js:92 +#: js/blocks/EnsembleBlocks.js:1089 msgid "turtle name" msgstr "" -#: js/EnsembleBlocks.js:122 -#: js/EnsembleBlocks.js:1197 -#: js/HeapBlocks.js:474 -#: js/HeapBlocks.js:572 +#: js/blocks/EnsembleBlocks.js:122 +#: js/blocks/EnsembleBlocks.js:1197 +#: js/blocks/HeapBlocks.js:474 +#: js/blocks/HeapBlocks.js:572 msgid "Index must be > 0." msgstr "" -#: js/EnsembleBlocks.js:127 -#: js/HeapBlocks.js:479 -#: js/HeapBlocks.js:577 +#: js/blocks/EnsembleBlocks.js:127 +#: js/blocks/HeapBlocks.js:479 +#: js/blocks/HeapBlocks.js:577 msgid "Maximum heap size is 1000." msgstr "" -#: js/EnsembleBlocks.js:145 +#: js/blocks/EnsembleBlocks.js:145 msgid "stop mouse" msgstr "" -#: js/EnsembleBlocks.js:147 +#: js/blocks/EnsembleBlocks.js:147 msgid "The Stop mouse block stops the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:158 +#: js/blocks/EnsembleBlocks.js:158 msgid "stop turtle" msgstr "" -#: js/EnsembleBlocks.js:160 +#: js/blocks/EnsembleBlocks.js:160 msgid "The Stop turtle block stops the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:184 -#: js/EnsembleBlocks.js:247 -#: js/EnsembleBlocks.js:413 -#: js/EnsembleBlocks.js:468 -#: js/EnsembleBlocks.js:706 -#: js/EnsembleBlocks.js:808 -#: js/EnsembleBlocks.js:870 -#: js/EnsembleBlocks.js:1190 -#: js/EnsembleBlocks.js:1253 +#: js/blocks/EnsembleBlocks.js:184 +#: js/blocks/EnsembleBlocks.js:247 +#: js/blocks/EnsembleBlocks.js:413 +#: js/blocks/EnsembleBlocks.js:468 +#: js/blocks/EnsembleBlocks.js:706 +#: js/blocks/EnsembleBlocks.js:808 +#: js/blocks/EnsembleBlocks.js:870 +#: js/blocks/EnsembleBlocks.js:1190 +#: js/blocks/EnsembleBlocks.js:1253 msgid "Cannot find mouse" msgstr "" -#: js/EnsembleBlocks.js:186 -#: js/EnsembleBlocks.js:249 -#: js/EnsembleBlocks.js:415 -#: js/EnsembleBlocks.js:470 -#: js/EnsembleBlocks.js:708 -#: js/EnsembleBlocks.js:810 -#: js/EnsembleBlocks.js:872 -#: js/EnsembleBlocks.js:1192 -#: js/EnsembleBlocks.js:1255 +#: js/blocks/EnsembleBlocks.js:186 +#: js/blocks/EnsembleBlocks.js:249 +#: js/blocks/EnsembleBlocks.js:415 +#: js/blocks/EnsembleBlocks.js:470 +#: js/blocks/EnsembleBlocks.js:708 +#: js/blocks/EnsembleBlocks.js:810 +#: js/blocks/EnsembleBlocks.js:872 +#: js/blocks/EnsembleBlocks.js:1192 +#: js/blocks/EnsembleBlocks.js:1255 msgid "Cannot find turtle" msgstr "" -#: js/EnsembleBlocks.js:206 +#: js/blocks/EnsembleBlocks.js:206 msgid "start mouse" msgstr "" -#: js/EnsembleBlocks.js:209 +#: js/blocks/EnsembleBlocks.js:209 msgid "The Start mouse block starts the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:220 +#: js/blocks/EnsembleBlocks.js:220 msgid "start turtle" msgstr "" -#: js/EnsembleBlocks.js:223 +#: js/blocks/EnsembleBlocks.js:223 msgid "The Start turtle block starts the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:256 +#: js/blocks/EnsembleBlocks.js:256 msgid "Mouse is already running." msgstr "" -#: js/EnsembleBlocks.js:258 +#: js/blocks/EnsembleBlocks.js:258 msgid "Turtle is already running." msgstr "" -#: js/EnsembleBlocks.js:282 +#: js/blocks/EnsembleBlocks.js:282 msgid "Cannot find start block" msgstr "" -#: js/EnsembleBlocks.js:292 +#: js/blocks/EnsembleBlocks.js:292 #.TRANS: pen color for this mouse msgid "mouse color" msgstr "" -#: js/EnsembleBlocks.js:294 +#: js/blocks/EnsembleBlocks.js:294 msgid "The Mouse color block returns the pen color of the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:306 +#: js/blocks/EnsembleBlocks.js:306 #.TRANS: pen color for this turtle msgid "turtle color" msgstr "" -#: js/EnsembleBlocks.js:308 +#: js/blocks/EnsembleBlocks.js:308 msgid "The Turtle color block returns the pen color of the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:338 +#: js/blocks/EnsembleBlocks.js:338 #.TRANS: heading (compass direction) for this mouse msgid "mouse heading" msgstr "" -#: js/EnsembleBlocks.js:340 +#: js/blocks/EnsembleBlocks.js:340 msgid "The Mouse heading block returns the heading of the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:352 +#: js/blocks/EnsembleBlocks.js:352 #.TRANS: heading (compass direction) for this turtle msgid "turtle heading" msgstr "" -#: js/EnsembleBlocks.js:354 +#: js/blocks/EnsembleBlocks.js:354 msgid "The Turtle heading block returns the heading of the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:384 -#: js/EnsembleBlocks.js:439 +#: js/blocks/EnsembleBlocks.js:384 +#: js/blocks/EnsembleBlocks.js:439 #.TRANS: set xy position for this mouse msgid "set mouse" msgstr "" -#: js/EnsembleBlocks.js:391 -#: js/EnsembleBlocks.js:402 -#: js/BoxesBlocks.js:595 -msgid "name1" -msgstr "" - -#: js/EnsembleBlocks.js:391 -#: js/EnsembleBlocks.js:402 -#: js/ProgramBlocks.js:881 -#: js/GraphicsBlocks.js:235 -#: js/GraphicsBlocks.js:313 -#: js/GraphicsBlocks.js:436 -#: js/GraphicsBlocks.js:487 -#: js/GraphicsBlocks.js:534 -#: js/GraphicsBlocks.js:750 +#: js/blocks/EnsembleBlocks.js:391 +#: js/blocks/EnsembleBlocks.js:402 +#: js/blocks/GraphicsBlocks.js:235 +#: js/blocks/GraphicsBlocks.js:313 +#: js/blocks/GraphicsBlocks.js:436 +#: js/blocks/GraphicsBlocks.js:487 +#: js/blocks/GraphicsBlocks.js:534 +#: js/blocks/GraphicsBlocks.js:750 +#: js/blocks/ProgramBlocks.js:881 msgid "x" msgstr "χ" -#: js/EnsembleBlocks.js:391 -#: js/EnsembleBlocks.js:402 -#: js/ProgramBlocks.js:881 -#: js/GraphicsBlocks.js:149 -#: js/GraphicsBlocks.js:313 -#: js/GraphicsBlocks.js:436 -#: js/GraphicsBlocks.js:487 -#: js/GraphicsBlocks.js:534 -#: js/GraphicsBlocks.js:750 +#: js/blocks/EnsembleBlocks.js:391 +#: js/blocks/EnsembleBlocks.js:402 +#: js/blocks/GraphicsBlocks.js:149 +#: js/blocks/GraphicsBlocks.js:313 +#: js/blocks/GraphicsBlocks.js:436 +#: js/blocks/GraphicsBlocks.js:487 +#: js/blocks/GraphicsBlocks.js:534 +#: js/blocks/GraphicsBlocks.js:750 +#: js/blocks/ProgramBlocks.js:881 msgid "y" msgstr "y" -#: js/EnsembleBlocks.js:395 -#: js/EnsembleBlocks.js:452 +#: js/blocks/EnsembleBlocks.js:395 +#: js/blocks/EnsembleBlocks.js:452 #.TRANS: set xy position for this turtle msgid "set turtle" msgstr "" -#: js/EnsembleBlocks.js:433 +#: js/blocks/EnsembleBlocks.js:433 msgid "The Set mouse block sends a stack of blocks to be run by the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:446 +#: js/blocks/EnsembleBlocks.js:446 msgid "The Set turtle block sends a stack of blocks to be run by the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:480 +#: js/blocks/EnsembleBlocks.js:480 #.TRANS: y position for this mouse msgid "mouse y" msgstr "συντεταγμένη y του ποντικιού" -#: js/EnsembleBlocks.js:482 +#: js/blocks/EnsembleBlocks.js:482 msgid "The Y mouse block returns the Y position of the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:494 +#: js/blocks/EnsembleBlocks.js:494 #.TRANS: y position for this turtle msgid "turtle y" msgstr "" -#: js/EnsembleBlocks.js:496 +#: js/blocks/EnsembleBlocks.js:496 msgid "The Y turtle block returns the Y position of the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:526 +#: js/blocks/EnsembleBlocks.js:526 #.TRANS: x position for this mouse msgid "mouse x" msgstr "συντεταγμένη x του ποντικιού" -#: js/EnsembleBlocks.js:528 +#: js/blocks/EnsembleBlocks.js:528 msgid "The X mouse block returns the X position of the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:540 +#: js/blocks/EnsembleBlocks.js:540 #.TRANS: x position for this turtle msgid "turtle x" msgstr "" -#: js/EnsembleBlocks.js:542 +#: js/blocks/EnsembleBlocks.js:542 msgid "The X turtle block returns the X position of the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:573 +#: js/blocks/EnsembleBlocks.js:573 #.TRANS: notes played by this mouse msgid "mouse notes played" msgstr "" -#: js/EnsembleBlocks.js:575 +#: js/blocks/EnsembleBlocks.js:575 msgid "The Mouse elapse notes block returns the number of notes played by the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:587 +#: js/blocks/EnsembleBlocks.js:587 #.TRANS: notes played by this turtle msgid "turtle notes played" msgstr "" -#: js/EnsembleBlocks.js:589 +#: js/blocks/EnsembleBlocks.js:589 msgid "The Turtle elapse notes block returns the number of notes played by the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:627 +#: js/blocks/EnsembleBlocks.js:627 #.TRANS: convert current note for this turtle to piano key (1-88) msgid "mouse pitch number" msgstr "" -#: js/EnsembleBlocks.js:629 +#: js/blocks/EnsembleBlocks.js:629 msgid "The Mouse pitch block returns the current pitch number being played by the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:641 +#: js/blocks/EnsembleBlocks.js:641 #.TRANS: convert current note for this turtle to piano key (1-88) msgid "turtle pitch number" msgstr "" -#: js/EnsembleBlocks.js:643 -msgid "The Turrle pitch block returns the current pitch number being played by the specified turtle." +#: js/blocks/EnsembleBlocks.js:643 +msgid "The Turtle pitch block returns the current pitch number being played by the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:747 -#: js/EnsembleBlocks.js:819 +#: js/blocks/EnsembleBlocks.js:747 +#: js/blocks/EnsembleBlocks.js:819 #.TRANS: note value is the duration of the note played by this mouse msgid "mouse note value" msgstr "" -#: js/EnsembleBlocks.js:757 +#: js/blocks/EnsembleBlocks.js:757 #.TRANS: note value is the duration of the note played by this turtle msgid "turtle note value" msgstr "" -#: js/EnsembleBlocks.js:830 +#: js/blocks/EnsembleBlocks.js:830 #.TRANS: sync is short for synchronization msgid "mouse sync" msgstr "" -#: js/EnsembleBlocks.js:832 +#: js/blocks/EnsembleBlocks.js:832 msgid "The Mouse sync block aligns the beat count between mice." msgstr "" -#: js/EnsembleBlocks.js:844 +#: js/blocks/EnsembleBlocks.js:844 #.TRANS: sync is short for synchronization msgid "turtle sync" msgstr "" -#: js/EnsembleBlocks.js:846 +#: js/blocks/EnsembleBlocks.js:846 msgid "The Turtle sync block aligns the beat count between turtles." msgstr "" -#: js/EnsembleBlocks.js:887 +#: js/blocks/EnsembleBlocks.js:887 msgid "The Found mouse block will return true if the specified mouse can be found." msgstr "" -#: js/EnsembleBlocks.js:893 +#: js/blocks/EnsembleBlocks.js:893 msgid "found mouse" msgstr "" -#: js/EnsembleBlocks.js:903 +#: js/blocks/EnsembleBlocks.js:903 msgid "The Found turtle block will return true if the specified turtle can be found." msgstr "" -#: js/EnsembleBlocks.js:909 +#: js/blocks/EnsembleBlocks.js:909 msgid "found turtle" msgstr "" -#: js/EnsembleBlocks.js:932 +#: js/blocks/EnsembleBlocks.js:932 msgid "new mouse" msgstr "" -#: js/EnsembleBlocks.js:934 +#: js/blocks/EnsembleBlocks.js:934 msgid "The New mouse block will create a new mouse." msgstr "" -#: js/EnsembleBlocks.js:945 +#: js/blocks/EnsembleBlocks.js:945 msgid "new turtle" msgstr "" -#: js/EnsembleBlocks.js:947 +#: js/blocks/EnsembleBlocks.js:947 msgid "The New turtle block will create a new turtle." msgstr "" -#: js/EnsembleBlocks.js:1011 +#: js/blocks/EnsembleBlocks.js:1011 msgid "set mouse color" msgstr "" -#: js/EnsembleBlocks.js:1014 +#: js/blocks/EnsembleBlocks.js:1014 msgid "The Set-mouse-color block is used to set the color of a mouse." msgstr "" -#: js/EnsembleBlocks.js:1020 +#: js/blocks/EnsembleBlocks.js:1020 msgid "set turtle color" msgstr "" -#: js/EnsembleBlocks.js:1023 +#: js/blocks/EnsembleBlocks.js:1023 msgid "The Set-turtle-color block is used to set the color of a turtle." msgstr "" -#: js/EnsembleBlocks.js:1083 +#: js/blocks/EnsembleBlocks.js:1083 msgid "The Mouse-name block returns the name of a mouse." msgstr "" -#: js/EnsembleBlocks.js:1092 +#: js/blocks/EnsembleBlocks.js:1092 msgid "The Turtle-name block returns the name of a turtle." msgstr "" -#: js/EnsembleBlocks.js:1115 +#: js/blocks/EnsembleBlocks.js:1115 msgid "mouse count" msgstr "" -#: js/EnsembleBlocks.js:1118 +#: js/blocks/EnsembleBlocks.js:1118 msgid "The Mouse-count block returns the number of mice." msgstr "" -#: js/EnsembleBlocks.js:1124 +#: js/blocks/EnsembleBlocks.js:1124 msgid "turtle count" msgstr "" -#: js/EnsembleBlocks.js:1127 +#: js/blocks/EnsembleBlocks.js:1127 msgid "The Turtle-count block returns the number of turtles." msgstr "" -#: js/EnsembleBlocks.js:1149 +#: js/blocks/EnsembleBlocks.js:1149 msgid "nth mouse name" msgstr "" -#: js/EnsembleBlocks.js:1152 +#: js/blocks/EnsembleBlocks.js:1152 msgid "The Nth-Mouse name block returns the name of the nth mouse." msgstr "" -#: js/EnsembleBlocks.js:1158 +#: js/blocks/EnsembleBlocks.js:1158 msgid "nth turtle name" msgstr "" -#: js/EnsembleBlocks.js:1161 -msgid "The Nth-Turtle name block returns the name of the nth turtle." -msgstr "" - -#: js/EnsembleBlocks.js:1205 -#: js/EnsembleBlocks.js:1265 -msgid "set name" -msgstr "" - -#: js/EnsembleBlocks.js:1214 -#: js/EnsembleBlocks.js:1221 -msgid "source" -msgstr "" - -#: js/EnsembleBlocks.js:1214 -#: js/EnsembleBlocks.js:1221 -msgid "target" -msgstr "" - -#: js/EnsembleBlocks.js:1271 -msgid "The Set-name block is used to name a mouse." -msgstr "" - -#: js/EnsembleBlocks.js:1284 -msgid "The Set-name block is used to name a turtle." -msgstr "" - -#: js/BooleanBlocks.js:44 -msgid "The Not block is the logical not operator." -msgstr "" - -#: js/BooleanBlocks.js:62 -msgid "not" -msgstr "όχι" - -#: js/BooleanBlocks.js:134 -msgid "The And block is the logical and operator." -msgstr "" - -#: js/BooleanBlocks.js:152 -msgid "and" -msgstr "και" - -#: js/BooleanBlocks.js:218 -msgid "The Or block is the logical or operator." -msgstr "" - -#: js/BooleanBlocks.js:236 -msgid "or" -msgstr "ή" - -#: js/BooleanBlocks.js:302 -msgid "The XOR block is the logical XOR operator." -msgstr "" - -#: js/BooleanBlocks.js:320 -msgid "xor" -msgstr "" - -#: js/BooleanBlocks.js:808 -msgid "The Equal block returns True if the two numbers are equal." -msgstr "" - -#: js/BooleanBlocks.js:909 -msgid "The Not-equal-to block returns True if the two numbers are not equal to each other." -msgstr "" - -#: js/BooleanBlocks.js:1008 -msgid "The Boolean block is used to specify true or false." -msgstr "" - -#: js/MediaBlocks.js:35 -#.TRANS: right side of the screen -msgid "right (screen)" -msgstr "" - -#: js/MediaBlocks.js:45 -#: js/MediaBlocks.js:56 -msgid "The Right block returns the position of the right of the canvas." +#: js/blocks/EnsembleBlocks.js:1161 +msgid "The Nth-Turtle name block returns the name of the nth turtle." msgstr "" -#: js/MediaBlocks.js:97 -#.TRANS: left side of the screen -msgid "left (screen)" +#: js/blocks/EnsembleBlocks.js:1205 +#: js/blocks/EnsembleBlocks.js:1265 +msgid "set name" msgstr "" -#: js/MediaBlocks.js:107 -#: js/MediaBlocks.js:118 -msgid "The Left block returns the position of the left of the canvas." +#: js/blocks/EnsembleBlocks.js:1214 +#: js/blocks/EnsembleBlocks.js:1221 +msgid "source" msgstr "" -#: js/MediaBlocks.js:158 -msgid "top (screen)" +#: js/blocks/EnsembleBlocks.js:1214 +#: js/blocks/EnsembleBlocks.js:1221 +msgid "target" msgstr "" -#: js/MediaBlocks.js:168 -#: js/MediaBlocks.js:179 -msgid "The Top block returns the position of the top of the canvas." +#: js/blocks/EnsembleBlocks.js:1271 +msgid "The Set-name block is used to name a mouse." msgstr "" -#: js/MediaBlocks.js:219 -msgid "bottom (screen)" +#: js/blocks/EnsembleBlocks.js:1284 +msgid "The Set-name block is used to name a turtle." msgstr "" -#: js/MediaBlocks.js:229 -#: js/MediaBlocks.js:240 -msgid "The Bottom block returns the position of the bottom of the canvas." +#: js/blocks/ExtrasBlocks.js:33 +msgid "fraction" msgstr "" -#: js/MediaBlocks.js:282 -msgid "width" +#: js/blocks/ExtrasBlocks.js:36 +msgid "Convert a float to a fraction" msgstr "" -#: js/MediaBlocks.js:291 -msgid "The Width block returns the width of the canvas." +#: js/blocks/ExtrasBlocks.js:93 +msgid "save as ABC" msgstr "" -#: js/MediaBlocks.js:325 -msgid "height" +#: js/blocks/ExtrasBlocks.js:96 +#: js/blocks/ExtrasBlocks.js:132 +#: js/blocks/ExtrasBlocks.js:168 +msgid "title" msgstr "" -#: js/MediaBlocks.js:334 -msgid "The Height block returns the height of the canvas." +#: js/blocks/ExtrasBlocks.js:129 +msgid "save as Lilypond" msgstr "" -#: js/MediaBlocks.js:369 -#.TRANS: stops playback of an audio recording -msgid "stop play" +#: js/blocks/ExtrasBlocks.js:165 +msgid "save as SVG" msgstr "" -#: js/MediaBlocks.js:404 -#.TRANS: Erases the images and text -msgid "erase media" +#: js/blocks/ExtrasBlocks.js:216 +msgid "no background" msgstr "" -#: js/MediaBlocks.js:409 -msgid "The Erase Media block erases text and images." +#: js/blocks/ExtrasBlocks.js:219 +msgid "The No background block eliminates the background from the saved SVG output." msgstr "" -#: js/MediaBlocks.js:439 -#.TRANS: play an audio recording -msgid "play back" +#: js/blocks/ExtrasBlocks.js:247 +msgid "show blocks" +msgstr "εμφάνιση εντολών" + +#: js/blocks/ExtrasBlocks.js:249 +msgid "The Show blocks block shows the blocks." msgstr "" -#: js/MediaBlocks.js:487 -msgid "speak" -msgstr "ομιλία" +#: js/blocks/ExtrasBlocks.js:274 +msgid "hide blocks" +msgstr "απόκρυψη εντολών" -#: js/MediaBlocks.js:495 -msgid "The Speak block outputs to the text-to-speech synthesizer" +#: js/blocks/ExtrasBlocks.js:276 +msgid "The Hide blocks block hides the blocks." msgstr "" -#: js/MediaBlocks.js:546 -msgid "camera" +#: js/blocks/ExtrasBlocks.js:305 +#: js/blocks/ExtrasBlocks.js:338 +msgid "The Space block is used to add space between blocks." msgstr "" -#: js/MediaBlocks.js:551 -msgid "The Camera block connects a webcam to the Show block." -msgstr "" +#: js/blocks/ExtrasBlocks.js:376 +msgid "wait" +msgstr "αναμονή" -#: js/MediaBlocks.js:574 -msgid "video" +#: js/blocks/ExtrasBlocks.js:379 +msgid "The Wait block pauses the program for a specified number of seconds." msgstr "" -#: js/MediaBlocks.js:579 -msgid "The Video block selects video for use with the Show block." -msgstr "" +#: js/blocks/ExtrasBlocks.js:433 +#: plugins/facebook.rtp:30 +msgid "comment" +msgstr "σχόλιο" -#: js/MediaBlocks.js:607 -msgid "The Open file block opens a file for use with the Show block." -msgstr "" +#: js/blocks/ExtrasBlocks.js:469 +msgid "print" +msgstr "εκτύπωση" -#: js/MediaBlocks.js:645 -msgid "stop media" +#: js/blocks/ExtrasBlocks.js:476 +msgid "The Print block displays text at the top of the screen." msgstr "" -#: js/MediaBlocks.js:650 -msgid "The Stop media block stops audio or video playback." +#: js/blocks/ExtrasBlocks.js:582 +msgid "display grid" msgstr "" -#: js/MediaBlocks.js:679 -#: js/PitchBlocks.js:1539 -#: js/phrasemaker.js:822 -#: js/musickeyboard.js:1654 -#.TRANS: a measure of frequency: one cycle per second -msgid "hertz" +#: js/blocks/ExtrasBlocks.js:587 +msgid "The Display Grid Block changes the grid type" msgstr "" -#: js/MediaBlocks.js:692 -msgid "duration (ms)" +#: js/blocks/ExtrasBlocks.js:689 +#: js/blocks/ExtrasBlocks.js:708 +#: js/blocks/ExtrasBlocks.js:731 +#: js/blocks/ExtrasBlocks.js:754 +#: js/blocks/ExtrasBlocks.js:772 +#: js/blocks/ExtrasBlocks.js:791 +#: js/blocks/ExtrasBlocks.js:810 +#: js/blocks/ExtrasBlocks.js:829 +msgid "unknown" msgstr "" -#: js/MediaBlocks.js:728 -#.TRANS: translate a note into hertz, e.g., A4 -> 440HZ -msgid "note to frequency" +#: js/blocks/FlowBlocks.js:41 +msgid "The Backward block runs code in reverse order (Musical retrograde)." msgstr "" -#: js/MediaBlocks.js:736 -msgid "The To frequency block converts a pitch name and octave to Hertz." +#: js/blocks/FlowBlocks.js:48 +msgid "backward" msgstr "" -#: js/MediaBlocks.js:746 -#: js/PitchBlocks.js:656 -#: js/PitchBlocks.js:932 -#: js/PitchBlocks.js:1827 -#.TRANS: name2 is name as in name of pitch (JAPANESE ONLY) -msgid "name2" +#: js/blocks/FlowBlocks.js:124 +msgid "The Duplicate block will run each block multiple times." msgstr "" -#: js/MediaBlocks.js:812 -msgid "The Avatar block is used to change the appearance of the mouse." +#: js/blocks/FlowBlocks.js:136 +msgid "duplicate" msgstr "" -#: js/MediaBlocks.js:819 -msgid "The Avatar block is used to change the appearance of the turtle." +#: js/blocks/FlowBlocks.js:334 +msgid "The Default block is used inside of a Switch to define the default action." msgstr "" -#: js/MediaBlocks.js:831 -#: js/MediaBlocks.js:891 -#.TRANS: a media object -msgid "size" +#: js/blocks/FlowBlocks.js:342 +msgid "default" msgstr "" -#: js/MediaBlocks.js:831 -msgid "image" -msgstr "εικόνα" - -#: js/MediaBlocks.js:880 -msgid "The Show block is used to display text or images on the canvas." +#: js/blocks/FlowBlocks.js:361 +#: js/blocks/FlowBlocks.js:418 +msgid "The Case Block must be used inside of a Switch Block." msgstr "" -#: js/MediaBlocks.js:888 -#.TRANS: show1 is show as in display an image or text on the screen. -msgid "show1" +#: js/blocks/FlowBlocks.js:389 +msgid "The Case block is used inside of a Switch to define matches." msgstr "" -#: js/MediaBlocks.js:891 -msgid "obj" +#: js/blocks/FlowBlocks.js:397 +msgid "case" msgstr "" -#: js/MediaBlocks.js:938 -msgid "The Media block is used to import an image." +#: js/blocks/FlowBlocks.js:446 +msgid "The Switch block will run the code in the matching Case." msgstr "" -#: js/MediaBlocks.js:973 -msgid "The Text block holds a text string." +#: js/blocks/FlowBlocks.js:454 +msgid "switch" msgstr "" -#: js/ProgramBlocks.js:33 -msgid "The Load-heap-from-app block loads the heap from a web page." +#: js/blocks/FlowBlocks.js:595 +msgid "The Stop block will stop a loop" msgstr "" -#: js/ProgramBlocks.js:44 -#.TRANS: load the heap contents from a URL -msgid "load heap from App" +#: js/blocks/FlowBlocks.js:597 +msgid "Forever, Repeat, While, or Until." msgstr "" -#: js/ProgramBlocks.js:95 -msgid "Error parsing JSON data:" -msgstr "" +#: js/blocks/FlowBlocks.js:604 +#: js/widgets/timbre.js:417 +#: js/widgets/timbre.js:419 +#: js/widgets/musickeyboard.js:819 +#: js/widgets/musickeyboard.js:821 +#: js/widgets/phrasemaker.js:4202 +#: plugins/rodi.rtp:29 +#: plugins/rodi.rtp:73 +#: plugins/rodi.rtp:413 +msgid "stop" +msgstr "διακοπή" -#: js/ProgramBlocks.js:100 -msgid "404: Page not found" +#: js/blocks/FlowBlocks.js:653 +msgid "The Waitfor block will wait until the condition is true." msgstr "" -#: js/ProgramBlocks.js:133 -msgid "The Save-heap-to-app block saves the heap to a web page." +#: js/blocks/FlowBlocks.js:661 +msgid "wait for" msgstr "" -#: js/ProgramBlocks.js:144 -#.TRANS: save the heap contents to a URL -msgid "save heap to App" +#: js/blocks/FlowBlocks.js:732 +msgid "The Until block will repeat until the condition is true." msgstr "" -#: js/ProgramBlocks.js:189 -msgid "Cannot find a valid heap for" -msgstr "" +#: js/blocks/FlowBlocks.js:740 +msgid "until" +msgstr "μέχρι" -#: js/ProgramBlocks.js:206 -msgid "The Load-heap block loads the heap from a file." +#: js/blocks/FlowBlocks.js:742 +#: js/blocks/FlowBlocks.js:822 +msgid "do2" msgstr "" -#: js/ProgramBlocks.js:217 -#.TRANS: load the heap from a file -msgid "load heap" +#: js/blocks/FlowBlocks.js:812 +msgid "The While block will repeat while the condition is true." msgstr "" -#: js/ProgramBlocks.js:270 -msgid "The file you selected does not contain a valid heap." -msgstr "" +#: js/blocks/FlowBlocks.js:820 +msgid "while" +msgstr "λευκό" -#: js/ProgramBlocks.js:275 -msgid "The loadHeap block needs a loadFile block." +#: js/blocks/FlowBlocks.js:903 +#: js/blocks/FlowBlocks.js:968 +#: js/blocks/FlowBlocks.js:979 +msgid "In this example if the mouse button is pressed a snare drum will play." msgstr "" -#: js/ProgramBlocks.js:291 -msgid "The Set-heap block loads the heap." -msgstr "" +#: js/blocks/FlowBlocks.js:925 +#: js/blocks/FlowBlocks.js:988 +msgid "if" +msgstr "εάν" -#: js/ProgramBlocks.js:299 -#: js/HeapBlocks.js:539 -#.TRANS: load the heap from a JSON encoding -msgid "set heap" -msgstr "" +#: js/blocks/FlowBlocks.js:927 +#: js/blocks/FlowBlocks.js:990 +msgid "then" +msgstr "τότε" -#: js/ProgramBlocks.js:340 -msgid "The block you selected does not contain a valid heap." -msgstr "" +#: js/blocks/FlowBlocks.js:927 +msgid "else" +msgstr "αλλιώς" -#: js/ProgramBlocks.js:343 -msgid "The Set heap block needs a heap." +#: js/blocks/FlowBlocks.js:1025 +msgid "The Forever block will repeat the contained blocks forever." msgstr "" -#: js/ProgramBlocks.js:360 -msgid "The Load-dictionary block loads a dictionary from a file." -msgstr "" +#: js/blocks/FlowBlocks.js:1037 +msgid "forever" +msgstr "για πάντα" -#: js/ProgramBlocks.js:372 -#.TRANS: load a dictionary from a file -msgid "load dictionary" +#: js/blocks/FlowBlocks.js:1073 +msgid "The Repeat block will repeat the contained blocks." msgstr "" -#: js/ProgramBlocks.js:390 -#: js/ProgramBlocks.js:658 -#: js/ToneBlocks.js:1025 -msgid "file" +#: js/blocks/FlowBlocks.js:1075 +msgid "In this example the note will be played 4 times." msgstr "" -#: js/ProgramBlocks.js:396 -#: js/ProgramBlocks.js:501 -#: js/ProgramBlocks.js:664 -#: js/DictBlocks.js:80 -#: js/DictBlocks.js:145 -#: js/DictBlocks.js:216 -#: js/DictBlocks.js:290 -msgid "My Dictionary" -msgstr "" +#: js/blocks/FlowBlocks.js:1083 +msgid "repeat" +msgstr "επανάληψη" -#: js/ProgramBlocks.js:444 -msgid "The file you selected does not contain a valid dictionary." +#: js/blocks/FlowBlocks.js:1123 +msgid "duplicate factor" msgstr "" -#: js/ProgramBlocks.js:449 -msgid "The load dictionary block needs a load file block." +#: js/blocks/HeapBlocks.js:49 +msgid "The Heap block returns the heap." msgstr "" -#: js/ProgramBlocks.js:466 -msgid "The Set-dictionary block loads a dictionary." -msgstr "" +#: js/blocks/HeapBlocks.js:133 +msgid "show heap" +msgstr "εμφάνιση στοίβας" -#: js/ProgramBlocks.js:477 -#.TRANS: load a dictionary from a JSON -msgid "set dictionary" +#: js/blocks/HeapBlocks.js:181 +msgid "The Heap-length block returns the length of the heap." msgstr "" -#: js/ProgramBlocks.js:546 -msgid "The block you selected does not contain a valid dictionary." +#: js/blocks/HeapBlocks.js:195 +msgid "heap length" msgstr "" -#: js/ProgramBlocks.js:550 -msgid "The set dictionary block needs a dictionary." +#: js/blocks/HeapBlocks.js:254 +msgid "The Heap-empty? block returns true if the heap is empty." msgstr "" -#: js/ProgramBlocks.js:567 -msgid "The Save-heap block saves the heap to a file." +#: js/blocks/HeapBlocks.js:268 +#.TRANS: Is the heap empty? +msgid "heap empty?" msgstr "" -#: js/ProgramBlocks.js:578 -#.TRANS: save the heap to a file -msgid "save heap" +#: js/blocks/HeapBlocks.js:317 +msgid "The Empty-heap block empties the heap." msgstr "" -#: js/ProgramBlocks.js:629 -msgid "The Save-dictionary block saves a dictionary to a file." +#: js/blocks/HeapBlocks.js:327 +#: js/blocks/HeapBlocks.js:647 +#.TRANS: empty the heap +msgid "empty heap" +msgstr "κενός σωρός" + +#: js/blocks/HeapBlocks.js:371 +msgid "The Reverse-heap block reverses the order of the heap." msgstr "" -#: js/ProgramBlocks.js:640 -#.TRANS: save a dictionary to a file -msgid "save dictionary" +#: js/blocks/HeapBlocks.js:384 +#.TRANS: reverse the order of the heap +msgid "reverse heap" msgstr "" -#: js/ProgramBlocks.js:720 -msgid "The Open palette block opens a palette." +#: js/blocks/HeapBlocks.js:428 +msgid "The Index-heap block returns a value in the heap at a specified location." msgstr "" -#: js/ProgramBlocks.js:727 -msgid "open palette" +#: js/blocks/HeapBlocks.js:443 +#.TRANS: retrieve a value from the heap at index position in the heap +msgid "index heap" msgstr "" -#: js/ProgramBlocks.js:785 -msgid "The Delete block block removes a block." +#: js/blocks/HeapBlocks.js:523 +msgid "The Set-heap entry block sets a value in he heap at the specified location." msgstr "" -#: js/ProgramBlocks.js:797 -#.TRANS: Move this block to the trash. -msgid "delete block" +#: js/blocks/HeapBlocks.js:539 +#: js/blocks/ProgramBlocks.js:299 +#.TRANS: load the heap from a JSON encoding +msgid "set heap" msgstr "" -#: js/ProgramBlocks.js:861 -msgid "The Move block block moves a block." +#: js/blocks/HeapBlocks.js:619 +msgid "The Pop block removes the value at the top of the heap." msgstr "" -#: js/ProgramBlocks.js:869 -#.TRANS: Move the position of a block on the screen. -msgid "move block" +#: js/blocks/HeapBlocks.js:633 +#.TRANS: pop a value off the top of the heap +msgid "pop" +msgstr "απώθηση" + +#: js/blocks/HeapBlocks.js:680 +msgid "The Push block adds a value to the top of the heap." msgstr "" -#: js/ProgramBlocks.js:881 -#: js/ProgramBlocks.js:1048 -msgid "block number" +#: js/blocks/HeapBlocks.js:696 +#.TRANS: push a value onto the top of the heap +msgid "push" +msgstr "ώθηση" + +#: js/blocks/IntervalsBlocks.js:45 +msgid "set temperament" msgstr "" -#: js/ProgramBlocks.js:935 -#.TRANS: Run program beginning at this block. -msgid "run block" +#: js/blocks/IntervalsBlocks.js:63 +#: js/blocks/MediaBlocks.js:746 +#: js/blocks/PitchBlocks.js:657 +#: js/blocks/PitchBlocks.js:935 +#: js/blocks/PitchBlocks.js:974 +#: js/blocks/PitchBlocks.js:1007 +#: js/blocks/PitchBlocks.js:1194 +#: js/blocks/PitchBlocks.js:1717 +#: js/blocks/PitchBlocks.js:1758 +#: js/blocks/PitchBlocks.js:1866 +#: js/blocks/ToneBlocks.js:1025 +#: js/turtleactions/IntervalsActions.js:114 +#.TRANS: adjusts the shift up or down by one octave (twelve half-steps in the interval between two notes, one having twice or half the frequency in Hz of the other.) +msgid "octave" msgstr "" -#: js/ProgramBlocks.js:1025 -msgid "The Dock block block connections two blocks." +#: js/blocks/IntervalsBlocks.js:99 +msgid "The Temperament name block is used to select a tuning method." msgstr "" -#: js/ProgramBlocks.js:1036 -#.TRANS: We can connect a block to another block. -msgid "connect blocks" +#: js/blocks/IntervalsBlocks.js:161 +msgid "doubly" msgstr "" -#: js/ProgramBlocks.js:1048 -msgid "target block" +#: js/blocks/IntervalsBlocks.js:166 +msgid "The Doubly block will double the size of an interval." msgstr "" -#: js/ProgramBlocks.js:1048 -msgid "connection number" +#: js/blocks/IntervalsBlocks.js:262 +msgid "interval number" msgstr "" -#: js/ProgramBlocks.js:1140 -msgid "The Make block block creates a new block." +#: js/blocks/IntervalsBlocks.js:317 +msgid "current interval" msgstr "" -#: js/ProgramBlocks.js:1152 -#.TRANS: Create a new block -msgid "make block" +#: js/blocks/IntervalsBlocks.js:387 +#.TRANS: measure the distance between two pitches in semi-tones +msgid "semi-tone interval measure" msgstr "" -#: js/ProgramBlocks.js:1186 -#: js/ProgramBlocks.js:1227 -#: js/RhythmBlocks.js:1128 -#: js/PitchBlocks.js:972 -#: js/PitchBlocks.js:1005 -#: js/temperament.js:340 -#: js/temperament.js:362 -#: js/temperament.js:372 -#: js/temperament.js:484 -#: js/status.js:190 -#: plugins/rodi.rtp:192 -#.TRANS: a musical note consisting of pitch and duration -msgid "note" +#: js/blocks/IntervalsBlocks.js:454 +#: js/blocks/IntervalsBlocks.js:570 +msgid "You must use two pitch blocks when measuring an interval." msgstr "" -#: js/ProgramBlocks.js:1285 -msgid "Cannot find block" +#: js/blocks/IntervalsBlocks.js:496 +msgid "The Scalar interval block measures the distance between two notes in the current key and mode." msgstr "" -#: js/ProgramBlocks.js:1304 -#: js/ProgramBlocks.js:1313 -msgid "Warning: block argument type mismatch" +#: js/blocks/IntervalsBlocks.js:502 +#.TRANS: measure the distance between two pitches in steps of musical scale +msgid "scalar interval measure" msgstr "" -#: js/ProgramBlocks.js:1347 -msgid "The Open project block is used to open a project from a web page." +#: js/blocks/IntervalsBlocks.js:678 +msgid "In the figure, we add sol# to sol." msgstr "" -#: js/ProgramBlocks.js:1357 -msgid "open project" +#: js/blocks/IntervalsBlocks.js:684 +#: js/blocks/OrnamentBlocks.js:220 +#.TRANS: calculate a relative step between notes based on semi-tones +msgid "semi-tone interval" msgstr "" -#: js/ProgramBlocks.js:1410 -msgid "Please enter a valid URL." +#: js/blocks/IntervalsBlocks.js:733 +msgid "The output of the example is: do, mi, sol, sol, ti, mi" msgstr "" -#: js/DrumBlocks.js:59 -msgid "The Noise name block is used to select a noise synthesizer." +#: js/blocks/IntervalsBlocks.js:740 +#: js/blocks/WidgetBlocks.js:768 +msgid "arpeggio" msgstr "" -#: js/DrumBlocks.js:102 -msgid "The Drum name block is used to select a drum." +#: js/blocks/IntervalsBlocks.js:931 +msgid "The Chord block calculates common chords." msgstr "" -#: js/DrumBlocks.js:146 -msgid "The Effects name block is used to select a sound effect." +#: js/blocks/IntervalsBlocks.js:933 +msgid "In the figure, we generate a C-major chord." msgstr "" -#: js/DrumBlocks.js:163 -msgid "noise" +#: js/blocks/IntervalsBlocks.js:938 +msgid "chord" msgstr "" -#: js/DrumBlocks.js:177 -msgid "The Play noise block will generate white, pink, or brown noise." +#: js/blocks/IntervalsBlocks.js:990 +msgid "The Ratio Interval block calculates an interval based on a ratio." msgstr "" -#: js/DrumBlocks.js:191 -#: js/musicutils.js:752 -#: js/synthutils.js:47 -#.TRANS: white noise synthesizer -msgid "white noise" +#: js/blocks/IntervalsBlocks.js:995 +msgid "ratio interval" msgstr "" -#: js/DrumBlocks.js:326 -msgid "Replace every instance of a pitch with a drum sound." +#: js/blocks/IntervalsBlocks.js:1064 +msgid "In the figure, we add la to sol." msgstr "" -#: js/DrumBlocks.js:337 -#.TRANS: map a pitch to a drum sound -msgid "map pitch to drum" +#: js/blocks/IntervalsBlocks.js:1120 +#.TRANS: define a custom mode +msgid "define mode" msgstr "" -#: js/DrumBlocks.js:404 -msgid "In the example above, a kick drum sound will be played instead of sol." +#: js/blocks/IntervalsBlocks.js:1173 +msgid "movable Do" msgstr "" -#: js/DrumBlocks.js:416 -#.TRANS: set the current drum sound for playback -msgid "set drum" +#: js/blocks/IntervalsBlocks.js:1224 +#.TRANS: mode length is the number of notes in the mode, e.g., 7 for major and minor scales; 12 for chromatic scales +msgid "mode length" msgstr "" -#: js/DrumBlocks.js:460 -msgid "sound effect" +#: js/blocks/IntervalsBlocks.js:1233 +msgid "The Mode length block is the number of notes in the current scale." msgstr "" -#: js/DrumBlocks.js:498 -msgid "You can use multiple Drum blocks within a Note block." +#: js/blocks/IntervalsBlocks.js:1235 +msgid "Most Western scales have 7 notes." msgstr "" -#: js/RhythmBlocks.js:182 -#: js/RhythmBlocks.js:1086 -#: js/RhythmBlocks.js:1162 -msgid "Note value must be greater than 0." +#: js/blocks/IntervalsBlocks.js:1284 +#.TRANS: the mode in music is 'major', 'minor', etc. +msgid "current mode" msgstr "" -#: js/RhythmBlocks.js:215 -#: js/RhythmBlocks.js:278 -#: js/RhythmBlocks.js:350 -#.TRANS: swing is a rhythmic variation that emphasises the offbeat -msgid "swing" +#: js/blocks/IntervalsBlocks.js:1337 +#.TRANS: the key is a group of pitches with which a music composition is created +msgid "current key" msgstr "" -#: js/RhythmBlocks.js:355 -#.TRANS: the amount to shift to the offbeat note -msgid "swing value" +#: js/blocks/IntervalsBlocks.js:1389 +#: js/blocks/IntervalsBlocks.js:1434 +#.TRANS: set the key and mode, e.g. C Major +msgid "set key" msgstr "" -#: js/RhythmBlocks.js:419 -msgid "The Skip notes block will cause notes to be skipped." +#: js/blocks/IntervalsBlocks.js:1443 +#: js/blocks/IntervalsBlocks.js:1449 +msgid "The Set key block is used to set the key and mode," msgstr "" -#: js/RhythmBlocks.js:427 -#.TRANS: substitute rests on notes being skipped -msgid "skip notes" +#: js/blocks/IntervalsBlocks.js:1449 +msgid "eg C Major" msgstr "" -#: js/RhythmBlocks.js:489 -#.TRANS: speed up note duration by some factor, e.g. convert 1/4 to 1/8 notes by using a factor of 2 -msgid "multiply note value" +#: js/blocks/MediaBlocks.js:35 +#.TRANS: right side of the screen +msgid "right (screen)" msgstr "" -#: js/RhythmBlocks.js:542 -msgid "The Tie block works on pairs of notes, combining them into one note." +#: js/blocks/MediaBlocks.js:45 +#: js/blocks/MediaBlocks.js:56 +msgid "The Right block returns the position of the right of the canvas." msgstr "" -#: js/RhythmBlocks.js:550 -#.TRANS: tie notes together into one longer note -msgid "tie" +#: js/blocks/MediaBlocks.js:97 +#.TRANS: left side of the screen +msgid "left (screen)" msgstr "" -#: js/RhythmBlocks.js:591 -#: js/RhythmBlocks.js:671 -#.TRANS: a dotted note is played for 1.5x its value, e.g., 1/8. --> 3/16 -msgid "dot" +#: js/blocks/MediaBlocks.js:107 +#: js/blocks/MediaBlocks.js:118 +msgid "The Left block returns the position of the left of the canvas." msgstr "" -#: js/RhythmBlocks.js:619 -#: js/RhythmActions.js:221 -msgid "An argument of -1 results in a note value of 0." +#: js/blocks/MediaBlocks.js:158 +msgid "top (screen)" msgstr "" -#: js/RhythmBlocks.js:661 -msgid "The Dot block extends the duration of a note by 50%." +#: js/blocks/MediaBlocks.js:168 +#: js/blocks/MediaBlocks.js:179 +msgid "The Top block returns the position of the top of the canvas." msgstr "" -#: js/RhythmBlocks.js:663 -msgid "Eg a dotted quarter note will play for 3/8 (1/4 + 1/8) of a beat." +#: js/blocks/MediaBlocks.js:219 +msgid "bottom (screen)" msgstr "" -#: js/RhythmBlocks.js:765 -#.TRANS: Japanese only: note value block for drum -msgid "note value drum" +#: js/blocks/MediaBlocks.js:229 +#: js/blocks/MediaBlocks.js:240 +msgid "The Bottom block returns the position of the bottom of the canvas." msgstr "" -#: js/RhythmBlocks.js:829 -msgid "392 hertz" +#: js/blocks/MediaBlocks.js:282 +msgid "width" msgstr "" -#: js/RhythmBlocks.js:1119 -msgid "The Note block is a container for one or more Pitch blocks." +#: js/blocks/MediaBlocks.js:291 +msgid "The Width block returns the width of the canvas." msgstr "" -#: js/RhythmBlocks.js:1121 -msgid "The Note block specifies the duration (note value) of its contents." +#: js/blocks/MediaBlocks.js:325 +msgid "height" msgstr "" -#: js/RhythmBlocks.js:1130 -msgid "value2" +#: js/blocks/MediaBlocks.js:334 +msgid "The Height block returns the height of the canvas." msgstr "" -#: js/RhythmBlocks.js:1200 -msgid "define frequency" +#: js/blocks/MediaBlocks.js:369 +#.TRANS: stops playback of an audio recording +msgid "stop play" msgstr "" -#: js/RhythmBlocks.js:1218 -#: js/temperament.js:650 -#: js/temperament.js:1421 -msgid "octave space" +#: js/blocks/MediaBlocks.js:404 +#.TRANS: Erases the images and text +msgid "erase media" msgstr "" -#: js/NumberBlocks.js:28 -msgid "The Int block returns an integer." +#: js/blocks/MediaBlocks.js:409 +msgid "The Erase Media block erases text and images." msgstr "" -#: js/NumberBlocks.js:34 -msgid "int" +#: js/blocks/MediaBlocks.js:439 +#.TRANS: play an audio recording +msgid "play back" msgstr "" -#: js/NumberBlocks.js:73 -msgid "The Mod block returns the remainder from a division." -msgstr "" +#: js/blocks/MediaBlocks.js:487 +msgid "speak" +msgstr "ομιλία" -#: js/NumberBlocks.js:79 -msgid "mod" -msgstr "υπόλοιπο" +#: js/blocks/MediaBlocks.js:495 +msgid "The Speak block outputs to the text-to-speech synthesizer" +msgstr "" -#: js/NumberBlocks.js:123 -msgid "The Power block calculates a power function." +#: js/blocks/MediaBlocks.js:546 +msgid "camera" msgstr "" -#: js/NumberBlocks.js:178 -msgid "The Sqrt block returns the square root." +#: js/blocks/MediaBlocks.js:551 +msgid "The Camera block connects a webcam to the Show block." msgstr "" -#: js/NumberBlocks.js:184 -msgid "sqrt" +#: js/blocks/MediaBlocks.js:574 +msgid "video" msgstr "" -#: js/NumberBlocks.js:230 -msgid "The Abs block returns the absolute value." +#: js/blocks/MediaBlocks.js:579 +msgid "The Video block selects video for use with the Show block." msgstr "" -#: js/NumberBlocks.js:236 -msgid "abs" +#: js/blocks/MediaBlocks.js:607 +msgid "The Open file block opens a file for use with the Show block." msgstr "" -#: js/NumberBlocks.js:277 -msgid "The Distance block returns the distance between two points. For example, between the mouse and the center of the screen." +#: js/blocks/MediaBlocks.js:645 +msgid "stop media" msgstr "" -#: js/NumberBlocks.js:283 -#: plugins/rodi.rtp:310 -msgid "distance" +#: js/blocks/MediaBlocks.js:650 +msgid "The Stop media block stops audio or video playback." msgstr "" -#: js/NumberBlocks.js:343 -msgid "The Divide block is used to divide." +#: js/blocks/MediaBlocks.js:679 +#: js/blocks/PitchBlocks.js:1577 +#: js/widgets/musickeyboard.js:1936 +#: js/widgets/phrasemaker.js:1037 +#.TRANS: a measure of frequency: one cycle per second +msgid "hertz" msgstr "" -#: js/NumberBlocks.js:411 -msgid "The Multiply block is used to multiply." +#: js/blocks/MediaBlocks.js:692 +#: js/blocks/WidgetBlocks.js:182 +#: js/widgets/temperament.js:506 +#: js/widgets/temperament.js:546 +#: js/widgets/temperament.js:610 +#: js/widgets/temperament.js:618 +#: js/widgets/temperament.js:1505 +#: js/widgets/timbre.js:1842 +msgid "frequency" msgstr "" -#: js/NumberBlocks.js:554 -msgid "The Minus block is used to subtract." +#: js/blocks/MediaBlocks.js:692 +msgid "duration (ms)" msgstr "" -#: js/NumberBlocks.js:647 -msgid "The Plus block is used to add." +#: js/blocks/MediaBlocks.js:728 +#.TRANS: translate a note into hertz, e.g., A4 -> 440HZ +msgid "note to frequency" msgstr "" -#: js/NumberBlocks.js:773 -msgid "The One-of block returns one of two choices." +#: js/blocks/MediaBlocks.js:736 +msgid "The To frequency block converts a pitch name and octave to Hertz." msgstr "" -#: js/NumberBlocks.js:780 -#: js/PitchBlocks.js:616 -msgid "one of" +#: js/blocks/MediaBlocks.js:746 +#: js/blocks/PitchBlocks.js:656 +#: js/blocks/PitchBlocks.js:934 +#: js/blocks/PitchBlocks.js:1866 +#.TRANS: name2 is name as in name of pitch (JAPANESE ONLY) +msgid "name2" msgstr "" -#: js/NumberBlocks.js:782 -msgid "this" +#: js/blocks/MediaBlocks.js:812 +msgid "The Avatar block is used to change the appearance of the mouse." msgstr "" -#: js/NumberBlocks.js:782 -msgid "that" +#: js/blocks/MediaBlocks.js:819 +msgid "The Avatar block is used to change the appearance of the turtle." msgstr "" -#: js/NumberBlocks.js:837 -msgid "The Random block returns a random number." +#: js/blocks/MediaBlocks.js:831 +#: js/blocks/MediaBlocks.js:891 +#.TRANS: a media object +msgid "size" msgstr "" -#: js/NumberBlocks.js:844 -msgid "random" -msgstr "τυχαίο" +#: js/blocks/MediaBlocks.js:831 +msgid "image" +msgstr "εικόνα" -#: js/NumberBlocks.js:846 -msgid "min" -msgstr "ελάχιστο" +#: js/blocks/MediaBlocks.js:880 +msgid "The Show block is used to display text or images on the canvas." +msgstr "" -#: js/NumberBlocks.js:846 -msgid "max" -msgstr "μέγιστο" +#: js/blocks/MediaBlocks.js:888 +#.TRANS: show1 is show as in display an image or text on the screen. +msgid "show1" +msgstr "" -#: js/NumberBlocks.js:910 -msgid "The Number block holds a number." +#: js/blocks/MediaBlocks.js:891 +msgid "obj" msgstr "" -#: js/BoxesBlocks.js:53 -#: js/BoxesBlocks.js:59 -msgid "The Add-to block is used to add to the value stored in a box." +#: js/blocks/MediaBlocks.js:938 +msgid "The Media block is used to import an image." msgstr "" -#: js/BoxesBlocks.js:61 -msgid "It can also be used with other blocks such as Color and Pen size." +#: js/blocks/MediaBlocks.js:973 +msgid "The Text block holds a text string." msgstr "" -#: js/BoxesBlocks.js:73 -msgid "add" +#: js/blocks/MeterBlocks.js:34 +#.TRANS: musical meter (time signature), e.g., 4:4 +msgid "current meter" msgstr "" -#: js/BoxesBlocks.js:75 -#: js/temperament.js:716 -msgid "to" +#: js/blocks/MeterBlocks.js:85 +#.TRANS: number of beats per minute +msgid "beat factor" msgstr "" -#: js/BoxesBlocks.js:75 -#: js/BoxesBlocks.js:595 -#: js/HeapBlocks.js:544 -msgid "value1" +#: js/blocks/MeterBlocks.js:161 +msgid "The Beats per minute block returns the current beats per minute." msgstr "" -#: js/BoxesBlocks.js:118 -msgid "Block does not support incrementing." +#: js/blocks/MeterBlocks.js:169 +#: js/widgets/status.js:152 +#.TRANS: number of beats played per minute +msgid "beats per minute2" msgstr "" -#: js/BoxesBlocks.js:152 -msgid "The Add-1-to block adds one to the value stored in a box." +#: js/blocks/MeterBlocks.js:169 +#: js/blocks/MeterBlocks.js:1056 +#: js/blocks/MeterBlocks.js:1133 +#: js/blocks/MeterBlocks.js:1211 +#.TRANS: sets tempo by defining a beat and beats per minute +msgid "beats per minute" msgstr "" -#: js/BoxesBlocks.js:163 -msgid "add 1 to" +#: js/blocks/MeterBlocks.js:233 +#.TRANS: count of current musical measure in meter +msgid "measure count" msgstr "" -#: js/BoxesBlocks.js:211 -msgid "The Subtract-1-from block subtracts one from the value stored in a box." +#: js/blocks/MeterBlocks.js:241 +msgid "The Measure count block returns the current measure." msgstr "" -#: js/BoxesBlocks.js:222 -msgid "subtract 1 from" +#: js/blocks/MeterBlocks.js:290 +#.TRANS: count of current beat in the meter +msgid "beat count" msgstr "" -#: js/BoxesBlocks.js:270 -#: js/BoxesBlocks.js:387 -msgid "The Box block returns the value stored in a box." +#: js/blocks/MeterBlocks.js:300 +#: js/blocks/MeterBlocks.js:311 +#: js/blocks/MeterBlocks.js:565 +#: js/blocks/MeterBlocks.js:576 +msgid "The Beat count block is the number of the current beat," msgstr "" -#: js/BoxesBlocks.js:500 -#: js/BoxesBlocks.js:576 -msgid "The Store in block will store a value in a box." +#: js/blocks/MeterBlocks.js:313 +#: js/blocks/MeterBlocks.js:578 +msgid "eg 1, 2, 3, or 4." msgstr "" -#: js/BoxesBlocks.js:652 -msgid "The Box2 block returns the value stored in Box2." +#: js/blocks/MeterBlocks.js:368 +#.TRANS: count the number of notes +msgid "sum note values" msgstr "" -#: js/BoxesBlocks.js:703 -msgid "The Store in Box2 block is used to store a value in Box2." +#: js/blocks/MeterBlocks.js:376 +#: js/blocks/MeterBlocks.js:440 +msgid "The Note counter block can be used to count the number of contained notes." msgstr "" -#: js/BoxesBlocks.js:715 -msgid "store in box2" +#: js/blocks/MeterBlocks.js:432 +#.TRANS: count the number of notes +msgid "note counter" msgstr "" -#: js/BoxesBlocks.js:761 -msgid "The Box1 block returns the value stored in Box1." +#: js/blocks/MeterBlocks.js:496 +#.TRANS: number of whole notes that have been played +msgid "whole notes played" msgstr "" -#: js/BoxesBlocks.js:812 -msgid "The Store in Box1 block is used to store a value in Box1." +#: js/blocks/MeterBlocks.js:505 +msgid "The Whole notes played block returns the total number of whole notes played." msgstr "" -#: js/BoxesBlocks.js:826 -msgid "store in box1" +#: js/blocks/MeterBlocks.js:555 +#: js/turtleactions/DictActions.js:83 +#.TRANS: number of notes that have been played +msgid "notes played" msgstr "" -#: js/HeapBlocks.js:49 -msgid "The Heap block returns the heap." +#: js/blocks/MeterBlocks.js:653 +msgid "The No clock block decouples the notes from the master clock." msgstr "" -#: js/HeapBlocks.js:133 -msgid "show heap" -msgstr "εμφάνιση στοίβας" +#: js/blocks/MeterBlocks.js:661 +#.TRANS: don't lock notes to master clock +msgid "no clock" +msgstr "" -#: js/HeapBlocks.js:181 -msgid "The Heap-length block returns the length of the heap." +#: js/blocks/MeterBlocks.js:700 +msgid "on weak beat do" msgstr "" -#: js/HeapBlocks.js:195 -msgid "heap length" +#: js/blocks/MeterBlocks.js:705 +msgid "The On-weak-beat block lets you specify actions to take on weak (off) beats." msgstr "" -#: js/HeapBlocks.js:254 -msgid "The Heap-empty? block returns true if the heap is empty." +#: js/blocks/MeterBlocks.js:750 +msgid "on strong beat" msgstr "" -#: js/HeapBlocks.js:268 -#.TRANS: Is the heap empty? -msgid "heap empty?" +#: js/blocks/MeterBlocks.js:758 +msgid "The On-strong-beat block lets you specify actions to take on specified beats." msgstr "" -#: js/HeapBlocks.js:317 -msgid "The Empty-heap block empties the heap." +#: js/blocks/MeterBlocks.js:769 +msgid "beat" msgstr "" -#: js/HeapBlocks.js:327 -#: js/HeapBlocks.js:647 -#.TRANS: empty the heap -msgid "empty heap" -msgstr "κενός σωρός" +#: js/blocks/MeterBlocks.js:813 +msgid "on every beat do" +msgstr "" -#: js/HeapBlocks.js:371 -msgid "The Reverse-heap block reverses the order of the heap." +#: js/blocks/MeterBlocks.js:821 +msgid "The On-every-beat block lets you specify actions to take on every beat." msgstr "" -#: js/HeapBlocks.js:384 -#.TRANS: reverse the order of the heap -msgid "reverse heap" +#: js/blocks/MeterBlocks.js:874 +msgid "on every note do" msgstr "" -#: js/HeapBlocks.js:428 -msgid "The Index-heap block returns a value in the heap at a specified location." +#: js/blocks/MeterBlocks.js:882 +msgid "The On-every-note block lets you specify actions to take on every note." msgstr "" -#: js/HeapBlocks.js:443 -#.TRANS: retrieve a value from the heap at index position in the heap -msgid "index heap" +#: js/blocks/MeterBlocks.js:928 +#: js/blocks/MeterBlocks.js:999 +#.TRANS: sets tempo by defining a beat and beats per minute +msgid "master beats per minute" msgstr "" -#: js/HeapBlocks.js:523 -msgid "The Set-heap entry block sets a value in he heap at the specified location." +#: js/blocks/MeterBlocks.js:952 +#: js/blocks/MeterBlocks.js:1078 +#: js/blocks/MeterBlocks.js:1135 +msgid "bpm" msgstr "" -#: js/HeapBlocks.js:619 -msgid "The Pop block removes the value at the top of the heap." +#: js/blocks/MeterBlocks.js:952 +#: js/blocks/MeterBlocks.js:1078 +#: js/blocks/MeterBlocks.js:1135 +msgid "beat value" msgstr "" -#: js/HeapBlocks.js:633 -#.TRANS: pop a value off the top of the heap -msgid "pop" -msgstr "απώθηση" +#: js/blocks/MeterBlocks.js:1024 +#: js/blocks/MeterBlocks.js:1167 +#: js/blocks/MeterBlocks.js:1241 +msgid "Beats per minute must be > 30." +msgstr "" -#: js/HeapBlocks.js:680 -msgid "The Push block adds a value to the top of the heap." +#: js/blocks/MeterBlocks.js:1027 +#: js/blocks/MeterBlocks.js:1170 +#: js/blocks/MeterBlocks.js:1244 +msgid "Maximum beats per minute is 1000." msgstr "" -#: js/HeapBlocks.js:696 -#.TRANS: push a value onto the top of the heap -msgid "push" -msgstr "ώθηση" +#: js/blocks/MeterBlocks.js:1068 +msgid "The Beats per minute block sets the number of 1/4 notes per minute." +msgstr "" -#: js/FlowBlocks.js:41 -msgid "The Backward block runs code in reverse order (Musical retrograde)." +#: js/blocks/MeterBlocks.js:1279 +#.TRANS: anacrusis +msgid "pickup" msgstr "" -#: js/FlowBlocks.js:48 -msgid "backward" +#: js/blocks/MeterBlocks.js:1367 +msgid "number of beats" msgstr "" -#: js/FlowBlocks.js:124 -msgid "The Duplicate block will run each block multiple times." +#: js/blocks/NumberBlocks.js:28 +msgid "The Int block returns an integer." msgstr "" -#: js/FlowBlocks.js:136 -msgid "duplicate" +#: js/blocks/NumberBlocks.js:34 +msgid "int" msgstr "" -#: js/FlowBlocks.js:334 -msgid "The Default block is used inside of a Switch to define the default action." +#: js/blocks/NumberBlocks.js:73 +msgid "The Mod block returns the remainder from a division." +msgstr "" + +#: js/blocks/NumberBlocks.js:79 +msgid "mod" +msgstr "υπόλοιπο" + +#: js/blocks/NumberBlocks.js:141 +msgid "The Power block calculates a power function." msgstr "" -#: js/FlowBlocks.js:342 -msgid "default" +#: js/blocks/NumberBlocks.js:196 +msgid "The Sqrt block returns the square root." msgstr "" -#: js/FlowBlocks.js:361 -#: js/FlowBlocks.js:418 -msgid "The Case Block must be used inside of a Switch Block." +#: js/blocks/NumberBlocks.js:202 +msgid "sqrt" msgstr "" -#: js/FlowBlocks.js:389 -msgid "The Case block is used inside of a Switch to define matches." +#: js/blocks/NumberBlocks.js:248 +msgid "The Abs block returns the absolute value." msgstr "" -#: js/FlowBlocks.js:397 -msgid "case" +#: js/blocks/NumberBlocks.js:254 +msgid "abs" msgstr "" -#: js/FlowBlocks.js:446 -msgid "The Switch block will run the code in the matching Case." +#: js/blocks/NumberBlocks.js:295 +msgid "The Distance block returns the distance between two points. For example, between the mouse and the center of the screen." msgstr "" -#: js/FlowBlocks.js:454 -msgid "switch" +#: js/blocks/NumberBlocks.js:301 +#: plugins/rodi.rtp:310 +msgid "distance" msgstr "" -#: js/FlowBlocks.js:595 -msgid "The Stop block will stop a loop" +#: js/blocks/NumberBlocks.js:361 +msgid "The Divide block is used to divide." msgstr "" -#: js/FlowBlocks.js:597 -msgid "Forever, Repeat, While, or Until." +#: js/blocks/NumberBlocks.js:441 +msgid "The Multiply block is used to multiply." msgstr "" -#: js/FlowBlocks.js:604 -#: js/phrasemaker.js:3799 -#: js/musickeyboard.js:629 -#: js/musickeyboard.js:631 -#: js/timbre.js:417 -#: js/timbre.js:419 -#: plugins/rodi.rtp:29 -#: plugins/rodi.rtp:73 -#: plugins/rodi.rtp:413 -msgid "stop" -msgstr "διακοπή" - -#: js/FlowBlocks.js:653 -msgid "The Waitfor block will wait until the condition is true." +#: js/blocks/NumberBlocks.js:612 +msgid "The Minus block is used to subtract." msgstr "" -#: js/FlowBlocks.js:661 -msgid "wait for" +#: js/blocks/NumberBlocks.js:723 +msgid "The Plus block is used to add." msgstr "" -#: js/FlowBlocks.js:732 -msgid "The Until block will repeat until the condition is true." +#: js/blocks/NumberBlocks.js:849 +msgid "The One-of block returns one of two choices." msgstr "" -#: js/FlowBlocks.js:740 -msgid "until" -msgstr "μέχρι" - -#: js/FlowBlocks.js:742 -#: js/FlowBlocks.js:822 -msgid "do2" +#: js/blocks/NumberBlocks.js:856 +#: js/blocks/PitchBlocks.js:616 +msgid "one of" msgstr "" -#: js/FlowBlocks.js:812 -msgid "The While block will repeat while the condition is true." +#: js/blocks/NumberBlocks.js:858 +msgid "this" msgstr "" -#: js/FlowBlocks.js:820 -msgid "while" -msgstr "λευκό" +#: js/blocks/NumberBlocks.js:858 +msgid "that" +msgstr "" -#: js/FlowBlocks.js:903 -#: js/FlowBlocks.js:968 -#: js/FlowBlocks.js:979 -msgid "In this example if the mouse button is pressed a snare drum will play." +#: js/blocks/NumberBlocks.js:913 +msgid "The Random block returns a random number." msgstr "" -#: js/FlowBlocks.js:925 -#: js/FlowBlocks.js:988 -msgid "if" -msgstr "εάν" +#: js/blocks/NumberBlocks.js:920 +msgid "random" +msgstr "τυχαίο" -#: js/FlowBlocks.js:927 -#: js/FlowBlocks.js:990 -msgid "then" -msgstr "τότε" +#: js/blocks/NumberBlocks.js:922 +msgid "min" +msgstr "ελάχιστο" -#: js/FlowBlocks.js:927 -msgid "else" -msgstr "αλλιώς" +#: js/blocks/NumberBlocks.js:922 +msgid "max" +msgstr "μέγιστο" -#: js/FlowBlocks.js:1025 -msgid "The Forever block will repeat the contained blocks forever." +#: js/blocks/NumberBlocks.js:986 +msgid "The Number block holds a number." msgstr "" -#: js/FlowBlocks.js:1037 -msgid "forever" -msgstr "για πάντα" - -#: js/FlowBlocks.js:1073 -msgid "The Repeat block will repeat the contained blocks." +#: js/blocks/OrnamentBlocks.js:32 +msgid "staccato factor" msgstr "" -#: js/FlowBlocks.js:1075 -msgid "In this example the note will be played 4 times." +#: js/blocks/OrnamentBlocks.js:108 +msgid "slur factor" msgstr "" -#: js/FlowBlocks.js:1083 -msgid "repeat" -msgstr "επανάληψη" - -#: js/FlowBlocks.js:1123 -msgid "duplicate factor" +#: js/blocks/OrnamentBlocks.js:217 +#: js/blocks/OrnamentBlocks.js:309 +#.TRANS: the neighbor refers to a neighboring note, e.g., D is a neighbor of C +msgid "neighbor" msgstr "" -#: js/PitchBlocks.js:39 -#: js/musicutils.js:722 -#: js/musicutils.js:1117 -#: js/synthutils.js:112 -#.TRANS: square wave -msgid "square" +#: js/blocks/OrnamentBlocks.js:293 +msgid "The Neighbor block rapidly switches between neighboring pitches." msgstr "" -#: js/PitchBlocks.js:62 -#: js/ToneBlocks.js:39 -#: js/musicutils.js:723 -#: js/musicutils.js:1118 -#: js/synthutils.js:116 -#.TRANS: triangle wave -msgid "triangle" +#: js/blocks/OrnamentBlocks.js:364 +msgid "glide" msgstr "" -#: js/PitchBlocks.js:85 -#: js/musicutils.js:721 -#: js/musicutils.js:1116 -#: js/synthutils.js:110 -#.TRANS: sine wave -msgid "sine" +#: js/blocks/OrnamentBlocks.js:479 +#: js/blocks/OrnamentBlocks.js:643 +msgid "slur" msgstr "" -#: js/PitchBlocks.js:108 -#: js/musicutils.js:724 -#: js/musicutils.js:1119 -#: js/synthutils.js:114 -#.TRANS: sawtooth wave -msgid "sawtooth" +#: js/blocks/OrnamentBlocks.js:558 +#: js/blocks/OrnamentBlocks.js:710 +#.TRANS: play each note sharply detached from the others +msgid "staccato" msgstr "" -#: js/PitchBlocks.js:141 -#.TRANS: musical transposition (adjustment of pitch up or down) -msgid "transposition" +#: js/blocks/RhythmBlocks.js:182 +#: js/blocks/RhythmBlocks.js:1086 +#: js/blocks/RhythmBlocks.js:1162 +msgid "Note value must be greater than 0." msgstr "" -#: js/PitchBlocks.js:168 -#.TRANS: step down one note in current musical scale -msgid "scalar step down" +#: js/blocks/RhythmBlocks.js:215 +#: js/blocks/RhythmBlocks.js:278 +#: js/blocks/RhythmBlocks.js:350 +#.TRANS: swing is a rhythmic variation that emphasises the offbeat +msgid "swing" msgstr "" -#: js/PitchBlocks.js:172 -msgid "The Scalar step down block returns the number of semi-tones down to the previous note in the current key and mode." +#: js/blocks/RhythmBlocks.js:355 +#.TRANS: the amount to shift to the offbeat note +msgid "swing value" msgstr "" -#: js/PitchBlocks.js:190 -#.TRANS: step up one note in current musical scale -msgid "scalar step up" +#: js/blocks/RhythmBlocks.js:419 +msgid "The Skip notes block will cause notes to be skipped." msgstr "" -#: js/PitchBlocks.js:194 -msgid "The Scalar step up block returns the number of semi-tones up to the next note in the current key and mode." +#: js/blocks/RhythmBlocks.js:427 +#.TRANS: substitute rests on notes being skipped +msgid "skip notes" msgstr "" -#: js/PitchBlocks.js:212 -#.TRANS: the change measured in half-steps between the current pitch and the previous pitch -msgid "change in pitch" +#: js/blocks/RhythmBlocks.js:489 +#.TRANS: speed up note duration by some factor, e.g. convert 1/4 to 1/8 notes by using a factor of 2 +msgid "multiply note value" msgstr "" -#: js/PitchBlocks.js:216 -msgid "The Change in pitch block is the difference (in half steps) between the current pitch being played and the previous pitch played." +#: js/blocks/RhythmBlocks.js:542 +msgid "The Tie block works on pairs of notes, combining them into one note." msgstr "" -#: js/PitchBlocks.js:243 -#.TRANS: the change measured in scale-steps between the current pitch and the previous pitch -msgid "scalar change in pitch" +#: js/blocks/RhythmBlocks.js:550 +#.TRANS: tie notes together into one longer note +msgid "tie" msgstr "" -#: js/PitchBlocks.js:250 -#: js/PitchBlocks.js:432 -#: js/PitchBlocks.js:1629 -#: js/DictActions.js:89 -#: js/temperament.js:477 -#: js/temperament.js:481 -#: js/temperament.js:714 -#.TRANS: convert current note to piano key (1-88) -#.TRANS: a mapping of pitch to the 88 piano keys -msgid "pitch number" +#: js/blocks/RhythmBlocks.js:591 +#: js/blocks/RhythmBlocks.js:671 +#.TRANS: a dotted note is played for 1.5x its value, e.g., 1/8. --> 3/16 +msgid "dot" msgstr "" -#: js/PitchBlocks.js:256 -msgid "The Pitch number block is the value of the pitch of the note currently being played." +#: js/blocks/RhythmBlocks.js:619 +#: js/turtleactions/RhythmActions.js:221 +msgid "An argument of -1 results in a note value of 0." msgstr "" -#: js/PitchBlocks.js:329 -#: js/PitchBlocks.js:433 -#.TRANS: the current pitch expressed in Hertz -msgid "pitch in hertz" +#: js/blocks/RhythmBlocks.js:661 +msgid "The Dot block extends the duration of a note by 50%." msgstr "" -#: js/PitchBlocks.js:334 -msgid "The Pitch in Hertz block is the value in Hertz of the pitch of the note currently being played." +#: js/blocks/RhythmBlocks.js:663 +msgid "Eg a dotted quarter note will play for 3/8 (1/4 + 1/8) of a beat." msgstr "" -#: js/PitchBlocks.js:367 -#: js/DictActions.js:87 -msgid "current pitch" +#: js/blocks/RhythmBlocks.js:765 +#.TRANS: Japanese only: note value block for drum +msgid "note value drum" msgstr "" -#: js/PitchBlocks.js:373 -msgid "The Current Pitch block is used with the Pitch Converter block. In the example above, current pitch, sol 4, is displayed as 392 hertz." +#: js/blocks/RhythmBlocks.js:829 +msgid "392 hertz" msgstr "" -#: js/PitchBlocks.js:410 -msgid "This block converts the pitch value of the last note played into different formats such as hertz, letter name, pitch number, et al." +#: js/blocks/RhythmBlocks.js:1119 +msgid "The Note block is a container for one or more Pitch blocks." msgstr "" -#: js/PitchBlocks.js:434 -msgid "alphabet" +#: js/blocks/RhythmBlocks.js:1121 +msgid "The Note block specifies the duration (note value) of its contents." msgstr "" -#: js/PitchBlocks.js:436 -#.TRANS: Translate as "alphabet class" -msgid "letter class" +#: js/blocks/RhythmBlocks.js:1128 +#: js/blocks/PitchBlocks.js:974 +#: js/blocks/PitchBlocks.js:1007 +#: js/blocks/ProgramBlocks.js:1186 +#: js/blocks/ProgramBlocks.js:1227 +#: js/widgets/status.js:190 +#: js/widgets/temperament.js:464 +#: js/widgets/temperament.js:486 +#: js/widgets/temperament.js:496 +#: js/widgets/temperament.js:617 +#: plugins/rodi.rtp:192 +#.TRANS: a musical note consisting of pitch and duration +msgid "note" msgstr "" -#: js/PitchBlocks.js:437 -msgid "solfege class" +#: js/blocks/RhythmBlocks.js:1130 +msgid "value2" msgstr "" -#: js/PitchBlocks.js:438 -msgid "staff y" +#: js/blocks/RhythmBlocks.js:1200 +msgid "define frequency" msgstr "" -#: js/PitchBlocks.js:439 -msgid "solfege syllable" +#: js/blocks/RhythmBlocks.js:1218 +#: js/widgets/temperament.js:787 +#: js/widgets/temperament.js:1587 +msgid "octave space" msgstr "" -#: js/PitchBlocks.js:440 -msgid "pitch class" +#: js/blocks/SensorsBlocks.js:36 +msgid "The Input block prompts for keyboard input." msgstr "" -#: js/PitchBlocks.js:441 -msgid "scalar class" +#: js/blocks/SensorsBlocks.js:46 +msgid "input" msgstr "" -#: js/PitchBlocks.js:443 -msgid "nth degree" +#: js/blocks/SensorsBlocks.js:64 +msgid "Input a value" msgstr "" -#: js/PitchBlocks.js:444 -msgid "pitch to shade" +#: js/blocks/SensorsBlocks.js:126 +msgid "input value" msgstr "" -#: js/PitchBlocks.js:445 -msgid "pitch to color" +#: js/blocks/SensorsBlocks.js:131 +msgid "The Input-value block stores the input." msgstr "" -#: js/PitchBlocks.js:629 -#: js/musickeyboard.js:565 -#.TRANS: MIDI is a technical standard for electronic music -msgid "MIDI" -msgstr "" +#: js/blocks/SensorsBlocks.js:238 +msgid "loudness" +msgstr "ηχηρότητα" -#: js/PitchBlocks.js:642 -#.TRANS: set an offset associated with the numeric piano keyboard mapping -msgid "set pitch number offset" +#: js/blocks/SensorsBlocks.js:245 +msgid "The Loudness block returns the volume detected by the microphone." msgstr "" -#: js/PitchBlocks.js:645 -msgid "The Set pitch number offset block is used to set the offset for mapping pitch numbers to pitch and octave." +#: js/blocks/SensorsBlocks.js:300 +msgid "click" msgstr "" -#: js/PitchBlocks.js:679 -#.TRANS: convert piano key number (1-88) to pitch -msgid "number to pitch" +#: js/blocks/SensorsBlocks.js:306 +msgid "The Click block triggers an event if a mouse has been clicked." msgstr "" -#: js/PitchBlocks.js:682 -msgid "The Number to pitch block will convert a pitch number to a pich name." +#: js/blocks/SensorsBlocks.js:313 +msgid "The Click block triggers an event if a turtle has been clicked." msgstr "" -#: js/PitchBlocks.js:715 -#.TRANS: convert piano key number (1-88) to octave -msgid "number to octave" +#: js/blocks/SensorsBlocks.js:342 +msgid "cursor over" msgstr "" -#: js/PitchBlocks.js:717 -msgid "The Number to octave block will convert a pitch number to an octave." +#: js/blocks/SensorsBlocks.js:387 +msgid "cursor out" msgstr "" -#: js/PitchBlocks.js:726 -msgid "y to pitch" +#: js/blocks/SensorsBlocks.js:433 +msgid "cursor button down" msgstr "" -#: js/PitchBlocks.js:729 -msgid "Y to pitch block will convert a staff y position to corresponding pitch notation." +#: js/blocks/SensorsBlocks.js:477 +msgid "cursor button up" msgstr "" -#: js/PitchBlocks.js:841 -msgid "accidental selector" +#: js/blocks/SensorsBlocks.js:521 +#: js/blocks/PenBlocks.js:48 +#: plugins/rodi.rtp:219 +msgid "blue" msgstr "" -#: js/PitchBlocks.js:844 -msgid "The Accidental selector block is used to choose between double-sharp, sharp, natural, flat, and double-flat." +#: js/blocks/SensorsBlocks.js:577 +#: js/blocks/PenBlocks.js:64 +#: plugins/rodi.rtp:218 +msgid "green" msgstr "" -#: js/PitchBlocks.js:858 -msgid "Pitch can be specified in terms of ni dha pa ma ga re sa." +#: js/blocks/SensorsBlocks.js:633 +#: js/blocks/PenBlocks.js:112 +#: plugins/rodi.rtp:217 +msgid "red" msgstr "" -#: js/PitchBlocks.js:872 -msgid "Pitch can be specified in terms of C D E F G A B." +#: js/blocks/SensorsBlocks.js:638 +msgid "The Get red block returns the red component of the pixel under the mouse." msgstr "" -#: js/PitchBlocks.js:883 -msgid "solfege" +#: js/blocks/SensorsBlocks.js:644 +msgid "The Get red block returns the red component of the pixel under the turtle." msgstr "" -#: js/PitchBlocks.js:886 -msgid "Pitch can be specified in terms of do re mi fa sol la ti." +#: js/blocks/SensorsBlocks.js:685 +#: plugins/rodi.rtp:216 +msgid "pixel color" msgstr "" -#: js/PitchBlocks.js:920 -msgid "The Invert block rotates any contained notes around a target note." +#: js/blocks/SensorsBlocks.js:690 +msgid "The Get pixel block returns the color of the pixel under the mouse." msgstr "" -#: js/PitchBlocks.js:927 -#.TRANS: pitch inversion rotates a pitch around another pitch -msgid "invert" +#: js/blocks/SensorsBlocks.js:696 +msgid "The Get pixel block returns the color of the pixel under the turtle." msgstr "" -#: js/PitchBlocks.js:929 -#: js/PitchBlocks.js:935 -#: js/PitchActions.js:727 -#: js/musicutils.js:726 -#: js/musicutils.js:902 -#.TRANS: invert based on even or odd number or musical scale -#.TRANS: even numbers -msgid "even" -msgstr "" +#: js/blocks/SensorsBlocks.js:758 +msgid "time" +msgstr "χρόνος" -#: js/PitchBlocks.js:935 -#: js/PitchActions.js:729 -#: js/musicutils.js:728 -#: js/musicutils.js:903 -#.TRANS: odd numbers -msgid "odd" +#: js/blocks/SensorsBlocks.js:804 +msgid "cursor y" msgstr "" -#: js/PitchBlocks.js:935 -#: js/PitchActions.js:731 -#: js/musicutils.js:729 -#: js/musicutils.js:904 -msgid "scalar" +#: js/blocks/SensorsBlocks.js:809 +msgid "The Cursor Y block returns the vertical position of the mouse." msgstr "" -#: js/PitchBlocks.js:966 -#.TRANS: pitch inversion rotates a pitch around another pitch (odd number) -msgid "invert (odd)" +#: js/blocks/SensorsBlocks.js:845 +msgid "cursor x" msgstr "" -#: js/PitchBlocks.js:999 -#.TRANS: pitch inversion rotates a pitch around another pitch (even number) -msgid "invert (even)" +#: js/blocks/SensorsBlocks.js:850 +msgid "The Cursor X block returns the horizontal position of the mouse." msgstr "" -#: js/PitchBlocks.js:1020 -#.TRANS: register is the octave of the current pitch -msgid "register" +#: js/blocks/SensorsBlocks.js:886 +msgid "mouse button" msgstr "" -#: js/PitchBlocks.js:1024 -msgid "The Register block provides an easy way to modify the register (octave) of the notes that follow it." +#: js/blocks/SensorsBlocks.js:888 +msgid "The Mouse-button block returns True if the mouse button is pressed." msgstr "" -#: js/PitchBlocks.js:1074 -msgid "The Semi-tone transposition block will shift the pitches contained inside Note blocks up (or down) by half steps." +#: js/blocks/SensorsBlocks.js:934 +msgid "to ASCII" msgstr "" -#: js/PitchBlocks.js:1076 -msgid "In the example shown above, sol is shifted up to sol#." +#: js/blocks/SensorsBlocks.js:938 +msgid "The To ASCII block converts numbers to letters." msgstr "" -#: js/PitchBlocks.js:1082 -#.TRANS: adjust the amount of shift (up or down) of a pitch -msgid "semi-tone transpose" +#: js/blocks/SensorsBlocks.js:1005 +msgid "The Keyboard block returns computer keyboard input." msgstr "" -#: js/PitchBlocks.js:1115 -msgid "The Transpose by Ratio block will shift the pitches contained inside Note blocks up (or down) by a ratio" +#: js/blocks/RhythmBlockPaletteBlocks.js:50 +#: js/blocks/RhythmBlockPaletteBlocks.js:233 +#.TRANS: rhythm block +#.TRANS: translate "rhythm1" as rhythm +msgid "rhythm1" msgstr "" -#: js/PitchBlocks.js:1121 -#.TRANS: adjust the amount of shift (up or down) of a pitch -msgid "transpose by ratio" +#: js/blocks/RhythmBlockPaletteBlocks.js:70 +#: js/blocks/RhythmBlockPaletteBlocks.js:252 +#: js/blocks/RhythmBlockPaletteBlocks.js:485 +#: js/blocks/RhythmBlockPaletteBlocks.js:554 +#: js/blocks/RhythmBlockPaletteBlocks.js:875 +msgid "number of notes" msgstr "" -#: js/PitchBlocks.js:1204 -#.TRANS: down sixth means the note is five scale degrees below current note -msgid "down sixth" +#: js/blocks/RhythmBlockPaletteBlocks.js:126 +msgid "polyphonic rhythm" msgstr "" -#: js/PitchBlocks.js:1223 -#.TRANS: down third means the note is two scale degrees below current note -msgid "down third" +#: js/blocks/RhythmBlockPaletteBlocks.js:219 +msgid "The Rhythm block is used to generate rhythm patterns." msgstr "" -#: js/PitchBlocks.js:1242 -#.TRANS: seventh means the note is the six scale degrees above current note -msgid "seventh" +#: js/blocks/RhythmBlockPaletteBlocks.js:280 +msgid "1/64 note" msgstr "" -#: js/PitchBlocks.js:1261 -#.TRANS: sixth means the note is the five scale degrees above current note -msgid "sixth" +#: js/blocks/RhythmBlockPaletteBlocks.js:304 +msgid "1/32 note" msgstr "" -#: js/PitchBlocks.js:1280 -#.TRANS: fifth means the note is the four scale degrees above current note -msgid "fifth" +#: js/blocks/RhythmBlockPaletteBlocks.js:332 +msgid "1/16 note" msgstr "" -#: js/PitchBlocks.js:1300 -#.TRANS: fourth means the note is three scale degrees above current note -msgid "fourth" +#: js/blocks/RhythmBlockPaletteBlocks.js:360 +msgid "eighth note" msgstr "" -#: js/PitchBlocks.js:1319 -#.TRANS: third means the note is two scale degrees above current note -msgid "third" +#: js/blocks/RhythmBlockPaletteBlocks.js:388 +msgid "quarter note" msgstr "" -#: js/PitchBlocks.js:1338 -#.TRANS: second means the note is one scale degree above current note -msgid "second" +#: js/blocks/RhythmBlockPaletteBlocks.js:416 +msgid "half note" msgstr "" -#: js/PitchBlocks.js:1379 -msgid "The Scalar transposition block will shift the pitches contained inside Note blocks up (or down) the scale." +#: js/blocks/RhythmBlockPaletteBlocks.js:444 +msgid "whole note" msgstr "" -#: js/PitchBlocks.js:1381 -msgid "In the example shown above, sol is shifted up to la." +#: js/blocks/RhythmBlockPaletteBlocks.js:482 +#: js/blocks/RhythmBlockPaletteBlocks.js:551 +#: js/blocks/RhythmBlockPaletteBlocks.js:602 +#.TRANS: A tuplet is a note value divided into irregular time values. +msgid "tuplet" msgstr "" -#: js/PitchBlocks.js:1388 -#.TRANS: adjust the amount of shift (up or down) of a pitch by musical scale (scalar) steps -msgid "scalar transpose" +#: js/blocks/RhythmBlockPaletteBlocks.js:768 +msgid "septuplet" msgstr "" -#: js/PitchBlocks.js:1423 -msgid "The Accidental block is used to create sharps and flats" +#: js/blocks/RhythmBlockPaletteBlocks.js:796 +msgid "quintuplet" msgstr "" -#: js/PitchBlocks.js:1430 -#.TRANS: An accidental is a modification to a pitch, e.g., sharp or flat. -msgid "accidental override" +#: js/blocks/RhythmBlockPaletteBlocks.js:824 +msgid "triplet" msgstr "" -#: js/PitchBlocks.js:1543 -msgid "The Hertz block (in combination with a Number block) will play a sound at the specified frequency." +#: js/blocks/RhythmBlockPaletteBlocks.js:851 +msgid "simple tuplet" msgstr "" -#: js/PitchBlocks.js:1633 -msgid "The Pitch Number block will play a pitch associated by its number, e.g. 0 for C and 7 for G." +#: js/blocks/RhythmBlockPaletteBlocks.js:861 +msgid "Tuplets are a collection of notes that get scaled to a specific duration." msgstr "" -#: js/PitchBlocks.js:1665 -#: js/PitchBlocks.js:1707 -#.TRANS: a numeric mapping of the notes in an octave based on the musical mode -#.TRANS: a numeric mapping of the notes in an octave based on the musical mode -msgid "nth modal pitch" +#: js/blocks/DrumBlocks.js:59 +msgid "The Noise name block is used to select a noise synthesizer." msgstr "" -#: js/PitchBlocks.js:1668 -msgid "n^th Modal Pitch takes the pattern of pitches in semitones for a mode and makes each point a degree of the mode," +#: js/blocks/DrumBlocks.js:102 +msgid "The Drum name block is used to select a drum." msgstr "" -#: js/PitchBlocks.js:1670 -msgid "starting from 1 and regardless of tonal framework (i.e. not always 8 notes in the octave)" +#: js/blocks/DrumBlocks.js:146 +msgid "The Effects name block is used to select a sound effect." msgstr "" -#: js/PitchBlocks.js:1711 -msgid "N^th Modal Pitch takes a number as an input as the n^th degree for the given mode. 0 is the first position, 1 is the second, -1 is the note before the first etc." +#: js/blocks/DrumBlocks.js:163 +msgid "noise" msgstr "" -#: js/PitchBlocks.js:1713 -msgid "The pitches change according to the mode specified without any need for respellings." +#: js/blocks/DrumBlocks.js:177 +msgid "The Play noise block will generate white, pink, or brown noise." msgstr "" -#: js/PitchBlocks.js:1752 -msgid "Scale Degree is a common convention in music. Scale Degree offers seven possible positions in the scale (1-7) and can be modified via accidentals." +#: js/blocks/DrumBlocks.js:317 +msgid "Replace every instance of a pitch with a drum sound." msgstr "" -#: js/PitchBlocks.js:1754 -msgid "Scale Degree 1 is always the first pitch in a given scale, regardless of octave." +#: js/blocks/DrumBlocks.js:328 +#.TRANS: map a pitch to a drum sound +msgid "map pitch to drum" msgstr "" -#: js/PitchBlocks.js:1776 -#.TRANS: step some number of notes in current musical scale -msgid "scalar step" +#: js/blocks/DrumBlocks.js:395 +msgid "In the example above, a kick drum sound will be played instead of sol." msgstr "" -#: js/PitchBlocks.js:1781 -msgid "The Scalar Step block (in combination with a Number block) will play the next pitch in a scale," +#: js/blocks/DrumBlocks.js:407 +#.TRANS: set the current drum sound for playback +msgid "set drum" msgstr "" -#: js/PitchBlocks.js:1783 -msgid "eg if the last note played was sol, Scalar Step 1 will play la." +#: js/blocks/DrumBlocks.js:451 +msgid "sound effect" msgstr "" -#: js/PitchBlocks.js:1818 -msgid "The Pitch block specifies the pitch name and octave of a note that together determine the frequency of the note." +#: js/blocks/DrumBlocks.js:489 +msgid "You can use multiple Drum blocks within a Note block." msgstr "" -#: js/GraphicsBlocks.js:46 -#: js/DictActions.js:77 -#: js/DictActions.js:155 -#: js/DictActions.js:189 +#: js/blocks/GraphicsBlocks.js:46 +#: js/turtleactions/DictActions.js:77 +#: js/turtleactions/DictActions.js:144 +#: js/turtleactions/DictActions.js:173 msgid "heading" msgstr "επικεφαλίδα" -#: js/GraphicsBlocks.js:56 +#: js/blocks/GraphicsBlocks.js:56 msgid "The Heading block returns the orientation of the mouse." msgstr "" -#: js/GraphicsBlocks.js:62 +#: js/blocks/GraphicsBlocks.js:62 msgid "The Heading block returns the orientation of the turtle." msgstr "" -#: js/GraphicsBlocks.js:133 +#: js/blocks/GraphicsBlocks.js:133 msgid "The Y block returns the vertical position of the mouse." msgstr "" -#: js/GraphicsBlocks.js:140 +#: js/blocks/GraphicsBlocks.js:140 msgid "The Y block returns the vertical position of the turtle." msgstr "" -#: js/GraphicsBlocks.js:149 +#: js/blocks/GraphicsBlocks.js:149 msgid "y3" msgstr "" -#: js/GraphicsBlocks.js:219 +#: js/blocks/GraphicsBlocks.js:219 msgid "The X block returns the horizontal position of the mouse." msgstr "" -#: js/GraphicsBlocks.js:226 +#: js/blocks/GraphicsBlocks.js:226 msgid "The X block returns the horizontal position of the turtle." msgstr "" -#: js/GraphicsBlocks.js:235 +#: js/blocks/GraphicsBlocks.js:235 msgid "x3" msgstr "" -#: js/GraphicsBlocks.js:295 +#: js/blocks/GraphicsBlocks.js:295 msgid "scroll xy" msgstr "" -#: js/GraphicsBlocks.js:303 +#: js/blocks/GraphicsBlocks.js:303 msgid "The Scroll XY block moves the canvas." msgstr "" -#: js/GraphicsBlocks.js:313 +#: js/blocks/GraphicsBlocks.js:313 msgid "x2" msgstr "" -#: js/GraphicsBlocks.js:313 +#: js/blocks/GraphicsBlocks.js:313 msgid "y2" msgstr "" -#: js/GraphicsBlocks.js:373 -#: js/temperament.js:213 -#: js/temperament.js:241 +#: js/blocks/GraphicsBlocks.js:373 +#: js/widgets/temperament.js:319 +#: js/widgets/temperament.js:347 msgid "clear" msgstr "" -#: js/GraphicsBlocks.js:426 +#: js/blocks/GraphicsBlocks.js:426 msgid "The Control-point 2 block sets the second control point for the Bezier curve." msgstr "" -#: js/GraphicsBlocks.js:433 +#: js/blocks/GraphicsBlocks.js:433 msgid "control point 2" msgstr "" -#: js/GraphicsBlocks.js:436 -#: js/GraphicsBlocks.js:487 -#: js/GraphicsBlocks.js:534 -#: js/GraphicsBlocks.js:750 +#: js/blocks/GraphicsBlocks.js:436 +#: js/blocks/GraphicsBlocks.js:487 +#: js/blocks/GraphicsBlocks.js:534 +#: js/blocks/GraphicsBlocks.js:750 msgid "x1" msgstr "" -#: js/GraphicsBlocks.js:436 -#: js/GraphicsBlocks.js:487 -#: js/GraphicsBlocks.js:534 -#: js/GraphicsBlocks.js:750 +#: js/blocks/GraphicsBlocks.js:436 +#: js/blocks/GraphicsBlocks.js:487 +#: js/blocks/GraphicsBlocks.js:534 +#: js/blocks/GraphicsBlocks.js:750 msgid "y1" msgstr "" -#: js/GraphicsBlocks.js:477 +#: js/blocks/GraphicsBlocks.js:477 msgid "The Control-point 1 block sets the first control point for the Bezier curve." msgstr "" -#: js/GraphicsBlocks.js:484 +#: js/blocks/GraphicsBlocks.js:484 msgid "control point 1" msgstr "" -#: js/GraphicsBlocks.js:527 +#: js/blocks/GraphicsBlocks.js:527 msgid "The Bezier block draws a Bezier curve." msgstr "" -#: js/GraphicsBlocks.js:531 +#: js/blocks/GraphicsBlocks.js:531 msgid "bezier" msgstr "" -#: js/GraphicsBlocks.js:592 +#: js/blocks/GraphicsBlocks.js:592 msgid "The Arc block moves the turtle in an arc." msgstr "" -#: js/GraphicsBlocks.js:600 +#: js/blocks/GraphicsBlocks.js:600 msgid "arc" msgstr "τόξο" -#: js/GraphicsBlocks.js:603 +#: js/blocks/GraphicsBlocks.js:603 msgid "angle" msgstr "γωνία" -#: js/GraphicsBlocks.js:603 +#: js/blocks/GraphicsBlocks.js:603 msgid "radius" msgstr "ακτίνα" -#: js/GraphicsBlocks.js:620 -#: js/GraphicsBlocks.js:767 -#: js/GraphicsBlocks.js:1010 -#: js/GraphicsBlocks.js:1093 +#: js/blocks/GraphicsBlocks.js:620 +#: js/blocks/GraphicsBlocks.js:767 +#: js/blocks/GraphicsBlocks.js:1010 +#: js/blocks/GraphicsBlocks.js:1093 msgid "Value must be within -5000 to 5000 when Wrap Mode is off." msgstr "" -#: js/GraphicsBlocks.js:622 -#: js/GraphicsBlocks.js:769 -#: js/GraphicsBlocks.js:1012 -#: js/GraphicsBlocks.js:1095 +#: js/blocks/GraphicsBlocks.js:622 +#: js/blocks/GraphicsBlocks.js:769 +#: js/blocks/GraphicsBlocks.js:1012 +#: js/blocks/GraphicsBlocks.js:1095 msgid "Value must be within -20000 to 20000 when Wrap Mode is on." msgstr "" -#: js/GraphicsBlocks.js:660 +#: js/blocks/GraphicsBlocks.js:660 msgid "set heading" msgstr "ορισμός επικεφαλίδας" -#: js/GraphicsBlocks.js:673 +#: js/blocks/GraphicsBlocks.js:673 msgid "The Set heading block sets the heading of the turtle." msgstr "" -#: js/GraphicsBlocks.js:733 +#: js/blocks/GraphicsBlocks.js:733 msgid "The Set XY block moves the mouse to a specific position on the screen." msgstr "" -#: js/GraphicsBlocks.js:739 +#: js/blocks/GraphicsBlocks.js:739 msgid "The Set XY block moves the turtle to a specific position on the screen." msgstr "" -#: js/GraphicsBlocks.js:747 +#: js/blocks/GraphicsBlocks.js:747 msgid "set xy" msgstr "ορισμός χy" -#: js/GraphicsBlocks.js:819 +#: js/blocks/GraphicsBlocks.js:819 msgid "The Right block turns the mouse to the right." msgstr "" -#: js/GraphicsBlocks.js:826 +#: js/blocks/GraphicsBlocks.js:826 msgid "The Right block turns the turtle to the right." msgstr "" -#: js/GraphicsBlocks.js:835 +#: js/blocks/GraphicsBlocks.js:835 msgid "right1" msgstr "" -#: js/GraphicsBlocks.js:835 +#: js/blocks/GraphicsBlocks.js:835 #: plugins/rodi.rtp:77 #: plugins/rodi.rtp:340 #: plugins/rodi.rtp:375 msgid "right" msgstr "δεξιά" -#: js/GraphicsBlocks.js:899 +#: js/blocks/GraphicsBlocks.js:899 msgid "The Left block turns the mouse to the left." msgstr "" -#: js/GraphicsBlocks.js:906 +#: js/blocks/GraphicsBlocks.js:906 msgid "The Left block turns the turtle to the left." msgstr "" -#: js/GraphicsBlocks.js:915 +#: js/blocks/GraphicsBlocks.js:915 msgid "left1" msgstr "" -#: js/GraphicsBlocks.js:915 +#: js/blocks/GraphicsBlocks.js:915 #: plugins/rodi.rtp:79 #: plugins/rodi.rtp:339 #: plugins/rodi.rtp:362 msgid "left" msgstr "αριστερά" -#: js/GraphicsBlocks.js:967 -#: js/temperament.js:734 -#: js/temperament.js:933 +#: js/blocks/GraphicsBlocks.js:967 +#: js/widgets/temperament.js:875 +#: js/widgets/temperament.js:1078 #: plugins/rodi.rtp:69 #: plugins/rodi.rtp:387 msgid "back" msgstr "πίσω" -#: js/GraphicsBlocks.js:976 +#: js/blocks/GraphicsBlocks.js:976 msgid "The Back block moves the mouse backward." msgstr "" -#: js/GraphicsBlocks.js:983 +#: js/blocks/GraphicsBlocks.js:983 msgid "The Back block moves the turtle backward." msgstr "" -#: js/GraphicsBlocks.js:1050 +#: js/blocks/GraphicsBlocks.js:1050 #: plugins/rodi.rtp:71 #: plugins/rodi.rtp:400 msgid "forward" msgstr "μπροστά" -#: js/GraphicsBlocks.js:1059 +#: js/blocks/GraphicsBlocks.js:1059 msgid "The Forward block moves the mouse forward." msgstr "" -#: js/GraphicsBlocks.js:1066 +#: js/blocks/GraphicsBlocks.js:1066 msgid "The Forward block moves the turtle forward." msgstr "" -#: js/GraphicsBlocks.js:1154 -#: js/GraphicsBlocks.js:1172 +#: js/blocks/GraphicsBlocks.js:1154 +#: js/blocks/GraphicsBlocks.js:1172 msgid "wrap" msgstr "" -#: js/OrnamentBlocks.js:32 -msgid "staccato factor" -msgstr "" - -#: js/OrnamentBlocks.js:108 -msgid "slur factor" -msgstr "" - -#: js/OrnamentBlocks.js:217 -#: js/OrnamentBlocks.js:309 -#.TRANS: the neighbor refers to a neighboring note, e.g., D is a neighbor of C -msgid "neighbor" -msgstr "" - -#: js/OrnamentBlocks.js:293 -msgid "The Neighbor block rapidly switches between neighboring pitches." -msgstr "" - -#: js/OrnamentBlocks.js:364 -msgid "glide" -msgstr "" - -#: js/OrnamentBlocks.js:479 -#: js/OrnamentBlocks.js:643 -msgid "slur" -msgstr "" - -#: js/OrnamentBlocks.js:558 -#: js/OrnamentBlocks.js:710 -#.TRANS: play each note sharply detached from the others -msgid "staccato" -msgstr "" - -#: js/PenBlocks.js:24 +#: js/blocks/PenBlocks.js:30 msgid "purple" msgstr "" -#: js/PenBlocks.js:37 -#: js/SensorsBlocks.js:521 -#: plugins/rodi.rtp:219 -msgid "blue" -msgstr "" - -#: js/PenBlocks.js:50 -#: js/SensorsBlocks.js:577 -#: plugins/rodi.rtp:218 -msgid "green" -msgstr "" - -#: js/PenBlocks.js:63 +#: js/blocks/PenBlocks.js:80 msgid "yellow" msgstr "" -#: js/PenBlocks.js:76 +#: js/blocks/PenBlocks.js:96 #: plugins/nutrition.rtp:164 msgid "orange" msgstr "πορτοκαλί" -#: js/PenBlocks.js:89 -#: js/SensorsBlocks.js:633 -#: plugins/rodi.rtp:217 -msgid "red" -msgstr "" - -#: js/PenBlocks.js:102 +#: js/blocks/PenBlocks.js:128 msgid "white" msgstr "" -#: js/PenBlocks.js:115 +#: js/blocks/PenBlocks.js:144 msgid "black" msgstr "" -#: js/PenBlocks.js:128 +#: js/blocks/PenBlocks.js:163 msgid "begin fill" msgstr "" -#: js/PenBlocks.js:143 +#: js/blocks/PenBlocks.js:190 msgid "end fill" msgstr "τέλος γεμίσματος" -#: js/PenBlocks.js:159 -#: js/PenBlocks.js:386 +#: js/blocks/PenBlocks.js:212 +#: js/blocks/PenBlocks.js:560 #.TRANS: set the background color msgid "background" msgstr "" -#: js/PenBlocks.js:206 -#: js/DictActions.js:71 -#: js/DictActions.js:149 -#: js/DictActions.js:186 +#: js/blocks/PenBlocks.js:274 +#: js/turtleactions/DictActions.js:71 +#: js/turtleactions/DictActions.js:138 +#: js/turtleactions/DictActions.js:170 msgid "grey" msgstr "" -#: js/PenBlocks.js:210 +#: js/blocks/PenBlocks.js:282 msgid "The Grey block returns the current pen grey value." msgstr "" -#: js/PenBlocks.js:243 -#: js/DictActions.js:69 -#: js/DictActions.js:147 -#: js/DictActions.js:185 +#: js/blocks/PenBlocks.js:340 +#: js/turtleactions/DictActions.js:69 +#: js/turtleactions/DictActions.js:136 +#: js/turtleactions/DictActions.js:169 msgid "shade" msgstr "σκιά" -#: js/PenBlocks.js:247 +#: js/blocks/PenBlocks.js:347 msgid "The Shade block returns the current pen shade value." msgstr "" -#: js/PenBlocks.js:280 -#: js/DictActions.js:67 -#: js/DictActions.js:145 -#: js/DictActions.js:184 +#: js/blocks/PenBlocks.js:405 +#: js/turtleactions/DictActions.js:67 +#: js/turtleactions/DictActions.js:134 +#: js/turtleactions/DictActions.js:168 msgid "color" msgstr "χρώμα" -#: js/PenBlocks.js:285 +#: js/blocks/PenBlocks.js:415 msgid "The Color block returns the current pen color." msgstr "" -#: js/PenBlocks.js:318 -#: js/DictActions.js:73 -#: js/DictActions.js:151 -#: js/DictActions.js:187 +#: js/blocks/PenBlocks.js:470 +#: js/turtleactions/DictActions.js:73 +#: js/turtleactions/DictActions.js:140 +#: js/turtleactions/DictActions.js:171 msgid "pen size" msgstr "μέγεθος στιλό" -#: js/PenBlocks.js:322 +#: js/blocks/PenBlocks.js:474 msgid "The Pen size block returns the current pen size value." msgstr "" -#: js/PenBlocks.js:355 +#: js/blocks/PenBlocks.js:513 msgid "set font" msgstr "" -#: js/PenBlocks.js:358 +#: js/blocks/PenBlocks.js:518 msgid "The Set font block sets the font used by the Show block." msgstr "" -#: js/PenBlocks.js:391 +#: js/blocks/PenBlocks.js:567 msgid "The Background block sets the window background color." msgstr "" -#: js/PenBlocks.js:408 +#: js/blocks/PenBlocks.js:598 msgid "The Hollow line block creates a line with a hollow center." msgstr "" -#: js/PenBlocks.js:415 +#: js/blocks/PenBlocks.js:606 #.TRANS: draw a line logo has a hollow space down its center msgid "hollow line" msgstr "" -#: js/PenBlocks.js:462 +#: js/blocks/PenBlocks.js:675 msgid "The Fill block fills in a shape with a color." msgstr "" -#: js/PenBlocks.js:470 +#: js/blocks/PenBlocks.js:684 #.TRANS: fill in as a solid color msgid "fill" msgstr "" -#: js/PenBlocks.js:527 +#: js/blocks/PenBlocks.js:761 #.TRANS: raise up the pen so logo it does not draw when it is moved msgid "pen up" msgstr "στιλό πάνω" -#: js/PenBlocks.js:532 +#: js/blocks/PenBlocks.js:768 msgid "The Pen-up block raises the pen so that it does not draw." msgstr "" -#: js/PenBlocks.js:552 +#: js/blocks/PenBlocks.js:802 #.TRANS: put down the pen so logo it draws when it is moved msgid "pen down" msgstr "στιλό κάτω" -#: js/PenBlocks.js:557 +#: js/blocks/PenBlocks.js:810 msgid "The Pen-down block lowers the pen so that it draws." msgstr "" -#: js/PenBlocks.js:577 +#: js/blocks/PenBlocks.js:844 #.TRANS: set the width of the line drawn by the pen msgid "set pen size" msgstr "ορισμός μεγέθους στιλό" -#: js/PenBlocks.js:583 +#: js/blocks/PenBlocks.js:854 msgid "The Set-pen-size block changes the size of the pen." msgstr "" -#: js/PenBlocks.js:623 +#: js/blocks/PenBlocks.js:913 #.TRANS: set degree of translucence of the pen color msgid "set translucency" msgstr "" -#: js/PenBlocks.js:627 +#: js/blocks/PenBlocks.js:921 msgid "The Set translucency block changes the opacity of the pen." msgstr "" -#: js/PenBlocks.js:668 +#: js/blocks/PenBlocks.js:981 msgid "set hue" msgstr "" -#: js/PenBlocks.js:672 +#: js/blocks/PenBlocks.js:989 msgid "The Set hue block changes the color of the pen." msgstr "" -#: js/PenBlocks.js:711 +#: js/blocks/PenBlocks.js:1047 msgid "set shade" msgstr "ορισμός σκιάς" -#: js/PenBlocks.js:717 +#: js/blocks/PenBlocks.js:1057 msgid "The Set-shade block changes the pen color from dark to light." msgstr "" -#: js/PenBlocks.js:757 +#: js/blocks/PenBlocks.js:1111 #.TRANS: set the level of vividness of the pen color msgid "set grey" msgstr "" -#: js/PenBlocks.js:761 +#: js/blocks/PenBlocks.js:1119 msgid "The Set grey block changes the vividness of the pen color." msgstr "" -#: js/PenBlocks.js:800 +#: js/blocks/PenBlocks.js:1172 msgid "set color" msgstr "ορισμός χρώματος" -#: js/PenBlocks.js:806 +#: js/blocks/PenBlocks.js:1182 msgid "The Set-color block changes the pen color." msgstr "" -#: js/VolumeBlocks.js:35 -msgid "synth volume" -msgstr "" - -#: js/VolumeBlocks.js:39 -msgid "The Synth volume block returns the current volume of the current synthesizer." -msgstr "" - -#: js/VolumeBlocks.js:47 -#: js/musicutils.js:730 -#: js/synthutils.js:56 -#.TRANS: musical instrument -msgid "piano" -msgstr "" - -#: js/VolumeBlocks.js:105 -msgid "master volume" -msgstr "" - -#: js/VolumeBlocks.js:109 -msgid "The Master volume block returns the master volume." -msgstr "" - -#: js/VolumeBlocks.js:355 -#: js/VolumeBlocks.js:524 -msgid "set synth volume" -msgstr "" - -#: js/VolumeBlocks.js:362 -#: js/VolumeBlocks.js:545 -msgid "synth" -msgstr "" - -#: js/VolumeBlocks.js:403 -#: js/VolumeBlocks.js:577 -#: js/VolumeBlocks.js:740 -#: js/VolumeActions.js:173 -msgid "Setting volume to 0." -msgstr "" - -#: js/VolumeBlocks.js:440 -msgid "Synth not found" -msgstr "" - -#: js/VolumeBlocks.js:494 -msgid "set drum volume" -msgstr "" - -#: js/VolumeBlocks.js:530 -msgid "The Set synth volume block will change the volume of a particular synth," -msgstr "" - -#: js/VolumeBlocks.js:532 -msgid "eg guitar violin snare drum etc." -msgstr "" - -#: js/VolumeBlocks.js:534 -msgid "The default volume is 50." -msgstr "" - -#: js/VolumeBlocks.js:536 -msgid "The range is 0 for silence to 100 for full volume." -msgstr "" - -#: js/VolumeBlocks.js:597 -msgid "set panning" -msgstr "" - -#: js/VolumeBlocks.js:603 -msgid "The Set Panning block sets the panning for all synthesizers." -msgstr "" - -#: js/VolumeBlocks.js:625 -msgid "Warning: Sound is coming out from only the left or right side." -msgstr "" - -#: js/VolumeBlocks.js:647 -#: js/VolumeBlocks.js:695 -msgid "set master volume" -msgstr "" - -#: js/VolumeBlocks.js:653 -msgid "The Set master volume block sets the volume for all synthesizers." -msgstr "" - -#: js/VolumeBlocks.js:784 -msgid "The Set relative volume block changes the volume of the contained notes." -msgstr "" - -#: js/VolumeBlocks.js:791 -msgid "set relative volume" -msgstr "" - -#: js/VolumeBlocks.js:857 -msgid "decrescendo" -msgstr "" - -#: js/VolumeBlocks.js:921 -msgid "crescendo" -msgstr "" - -#: js/ToneBlocks.js:34 -msgid "oscillator" -msgstr "" - -#: js/ToneBlocks.js:44 -#: js/timbre.js:1562 -#.TRANS: Partials refers to the number of sine waves combined into the sound. -msgid "partials" -msgstr "" - -#: js/ToneBlocks.js:76 -msgid "You are adding multiple oscillator blocks." -msgstr "" - -#: js/ToneBlocks.js:144 -#: js/timbre.js:1225 -#.TRANS: a duo synthesizer combines a synth with a sequencer -msgid "duo synth" -msgstr "" - -#: js/ToneBlocks.js:149 -msgid "The Duo synth block is a duo-frequency modulator used to define a timbre." -msgstr "" - -#: js/ToneBlocks.js:157 -#: js/timbre.js:1476 -msgid "vibrato rate" -msgstr "" - -#: js/ToneBlocks.js:157 -msgid "vibrato intensity" -msgstr "" - -#: js/ToneBlocks.js:185 -#: js/timbre.js:1221 -#.TRANS: AM (amplitude modulation) synthesizer -msgid "AM synth" -msgstr "" - -#: js/ToneBlocks.js:189 -msgid "The AM synth block is an amplitude modulator used to define a timbre." -msgstr "" - -#: js/ToneBlocks.js:224 -#: js/timbre.js:1223 -#.TRANS: FM (frequency modulation) synthesizer -msgid "FM synth" +#: js/blocks/PitchBlocks.js:141 +#.TRANS: musical transposition (adjustment of pitch up or down) +msgid "transposition" msgstr "" -#: js/ToneBlocks.js:228 -msgid "The FM synth block is a frequency modulator used to define a timbre." +#: js/blocks/PitchBlocks.js:168 +#.TRANS: step down one note in current musical scale +msgid "scalar step down" msgstr "" -#: js/ToneBlocks.js:262 -msgid "partial" +#: js/blocks/PitchBlocks.js:172 +msgid "The Scalar step down block returns the number of semi-tones down to the previous note in the current key and mode." msgstr "" -#: js/ToneBlocks.js:265 -msgid "The Partial block is used to specify a weight for a specific partial harmonic." +#: js/blocks/PitchBlocks.js:190 +#.TRANS: step up one note in current musical scale +msgid "scalar step up" msgstr "" -#: js/ToneBlocks.js:284 -#.TRANS: partials are weighted components in a harmonic series -msgid "Partial weight must be between 0 and 1." +#: js/blocks/PitchBlocks.js:194 +msgid "The Scalar step up block returns the number of semi-tones up to the next note in the current key and mode." msgstr "" -#: js/ToneBlocks.js:297 -#.TRANS: partials are weighted components in a harmonic series -msgid "Partial block should be used inside of a Weighted-partials block." +#: js/blocks/PitchBlocks.js:212 +#.TRANS: the change measured in half-steps between the current pitch and the previous pitch +msgid "change in pitch" msgstr "" -#: js/ToneBlocks.js:325 -#.TRANS: partials are weighted components in a harmonic series -msgid "weighted partials" +#: js/blocks/PitchBlocks.js:216 +msgid "The Change in pitch block is the difference (in half steps) between the current pitch being played and the previous pitch played." msgstr "" -#: js/ToneBlocks.js:383 -msgid "The Harmonic block will add harmonics to the contained notes." +#: js/blocks/PitchBlocks.js:243 +#.TRANS: the change measured in scale-steps between the current pitch and the previous pitch +msgid "scalar change in pitch" msgstr "" -#: js/ToneBlocks.js:390 -#.TRANS: A harmonic is an overtone. -msgid "harmonic" +#: js/blocks/PitchBlocks.js:250 +#: js/blocks/PitchBlocks.js:432 +#: js/blocks/PitchBlocks.js:1667 +#: js/turtleactions/DictActions.js:89 +#: js/widgets/temperament.js:610 +#: js/widgets/temperament.js:614 +#: js/widgets/temperament.js:855 +#.TRANS: convert current note to piano key (1-88) +#.TRANS: a mapping of pitch to the 88 piano keys +msgid "pitch number" msgstr "" -#: js/ToneBlocks.js:431 -msgid "The Distortion block adds distortion to the pitch." +#: js/blocks/PitchBlocks.js:256 +msgid "The Pitch number block is the value of the pitch of the note currently being played." msgstr "" -#: js/ToneBlocks.js:438 -#: js/timbre.js:2100 -#.TRANS: distortion is an alteration in the sound -msgid "distortion" +#: js/blocks/PitchBlocks.js:329 +#: js/blocks/PitchBlocks.js:433 +#.TRANS: the current pitch expressed in Hertz +msgid "pitch in hertz" msgstr "" -#: js/ToneBlocks.js:487 -msgid "The Tremolo block adds a wavering effect." +#: js/blocks/PitchBlocks.js:334 +msgid "The Pitch in Hertz block is the value in Hertz of the pitch of the note currently being played." msgstr "" -#: js/ToneBlocks.js:495 -#: js/timbre.js:2092 -#.TRANS: a wavering effect in a musical tone -msgid "tremolo" +#: js/blocks/PitchBlocks.js:367 +#: js/turtleactions/DictActions.js:87 +msgid "current pitch" msgstr "" -#: js/ToneBlocks.js:500 -#: js/ToneBlocks.js:569 -#: js/ToneBlocks.js:630 -#: js/ToneBlocks.js:689 -#: js/timbre.js:2134 -#: js/timbre.js:2222 -#: js/timbre.js:2317 -#: js/timbre.js:2419 -#.TRANS: rate at which tremolo wavers -msgid "rate" +#: js/blocks/PitchBlocks.js:373 +msgid "The Current Pitch block is used with the Pitch Converter block. In the example above, current pitch, sol 4, is displayed as 392 hertz." msgstr "" -#: js/ToneBlocks.js:502 -#: js/ToneBlocks.js:630 -#: js/timbre.js:2137 -#: js/timbre.js:2328 -#.TRANS: amplitude of tremolo waver -msgid "depth" +#: js/blocks/PitchBlocks.js:410 +msgid "This block converts the pitch value of the last note played into different formats such as hertz, letter name, pitch number, et al." msgstr "" -#: js/ToneBlocks.js:559 -msgid "The Phaser block adds a sweeping sound." +#: js/blocks/PitchBlocks.js:434 +msgid "alphabet" msgstr "" -#: js/ToneBlocks.js:566 -#: js/timbre.js:2098 -#.TRANS: alter the phase of the sound -msgid "phaser" +#: js/blocks/PitchBlocks.js:436 +#.TRANS: Translate as "alphabet class" +msgid "letter class" msgstr "" -#: js/ToneBlocks.js:569 -#: js/timbre.js:2422 -msgid "octaves" +#: js/blocks/PitchBlocks.js:437 +msgid "solfege class" msgstr "" -#: js/ToneBlocks.js:569 -#: js/timbre.js:2425 -msgid "base frequency" +#: js/blocks/PitchBlocks.js:438 +msgid "staff y" msgstr "" -#: js/ToneBlocks.js:619 -msgid "The Chorus block adds a chorus effect." +#: js/blocks/PitchBlocks.js:439 +msgid "solfege syllable" msgstr "" -#: js/ToneBlocks.js:627 -#: js/timbre.js:2096 -#.TRANS: musical effect to simulate a choral sound -msgid "chorus" +#: js/blocks/PitchBlocks.js:440 +msgid "pitch class" msgstr "" -#: js/ToneBlocks.js:630 -msgid "delay" +#: js/blocks/PitchBlocks.js:441 +msgid "scalar class" msgstr "" -#: js/ToneBlocks.js:678 -msgid "The Vibrato block adds a rapid, slight variation in pitch." +#: js/blocks/PitchBlocks.js:443 +msgid "nth degree" msgstr "" -#: js/ToneBlocks.js:686 -#: js/timbre.js:2094 -#.TRANS: a rapid, slight variation in pitch -msgid "vibrato" +#: js/blocks/PitchBlocks.js:444 +msgid "pitch to shade" msgstr "" -#: js/ToneBlocks.js:689 -#: js/timbre.js:2221 -msgid "intensity" +#: js/blocks/PitchBlocks.js:445 +msgid "pitch to color" msgstr "" -#: js/ToneBlocks.js:733 -#.TRANS: select synthesizer -msgid "set synth" +#: js/blocks/PitchBlocks.js:629 +#: js/widgets/musickeyboard.js:735 +#.TRANS: MIDI is a technical standard for electronic music +msgid "MIDI" msgstr "" -#: js/ToneBlocks.js:804 -msgid "synth name" +#: js/blocks/PitchBlocks.js:642 +#.TRANS: set an offset associated with the numeric piano keyboard mapping +msgid "set pitch number offset" msgstr "" -#: js/ToneBlocks.js:842 -msgid "set default instrument" +#: js/blocks/PitchBlocks.js:645 +msgid "The Set pitch number offset block is used to set the offset for mapping pitch numbers to pitch and octave." msgstr "" -#: js/ToneBlocks.js:895 -#: js/ToneBlocks.js:943 -#.TRANS: set the characteristics of a custom instrument -msgid "set instrument" +#: js/blocks/PitchBlocks.js:679 +#.TRANS: convert piano key number (1-88) to pitch +msgid "number to pitch" msgstr "" -#: js/ToneBlocks.js:898 -#: js/ToneBlocks.js:926 -#: js/ToneBlocks.js:932 -msgid "The Set instrument block selects a voice for the synthesizer," +#: js/blocks/PitchBlocks.js:682 +msgid "The Number to pitch block will convert a pitch number to a pich name." msgstr "" -#: js/ToneBlocks.js:900 -#: js/ToneBlocks.js:934 -msgid "eg guitar piano violin or cello." +#: js/blocks/PitchBlocks.js:715 +#.TRANS: convert piano key number (1-88) to octave +msgid "number to octave" msgstr "" -#: js/ToneBlocks.js:1015 -msgid "Import a sound file to use as an instrument and set its pitch center." +#: js/blocks/PitchBlocks.js:717 +msgid "The Number to octave block will convert a pitch number to an octave." msgstr "" -#: js/ToneBlocks.js:1110 -msgid "Upload a sound file to connect with the sample block." +#: js/blocks/PitchBlocks.js:726 +msgid "y to pitch" msgstr "" -#: js/MeterBlocks.js:34 -#.TRANS: musical meter (time signature), e.g., 4:4 -msgid "current meter" +#: js/blocks/PitchBlocks.js:729 +msgid "Y to pitch block will convert a staff y position to corresponding pitch notation." msgstr "" -#: js/MeterBlocks.js:85 -#.TRANS: number of beats per minute -msgid "beat factor" +#: js/blocks/PitchBlocks.js:841 +msgid "accidental selector" msgstr "" -#: js/MeterBlocks.js:161 -msgid "The Beats per minute block returns the current beats per minute." +#: js/blocks/PitchBlocks.js:844 +msgid "The Accidental selector block is used to choose between double-sharp, sharp, natural, flat, and double-flat." msgstr "" -#: js/MeterBlocks.js:169 -#: js/status.js:152 -#.TRANS: number of beats played per minute -msgid "beats per minute2" +#: js/blocks/PitchBlocks.js:858 +msgid "Pitch can be specified in terms of ni dha pa ma ga re sa." msgstr "" -#: js/MeterBlocks.js:169 -#: js/MeterBlocks.js:1056 -#: js/MeterBlocks.js:1133 -#: js/MeterBlocks.js:1211 -#.TRANS: sets tempo by defining a beat and beats per minute -msgid "beats per minute" +#: js/blocks/PitchBlocks.js:872 +msgid "Pitch can be specified in terms of C D E F G A B." msgstr "" -#: js/MeterBlocks.js:233 -#.TRANS: count of current musical measure in meter -msgid "measure count" +#: js/blocks/PitchBlocks.js:884 +msgid "solfege" msgstr "" -#: js/MeterBlocks.js:241 -msgid "The Measure count block returns the current measure." +#: js/blocks/PitchBlocks.js:887 +msgid "Pitch can be specified in terms of do re mi fa sol la ti." msgstr "" -#: js/MeterBlocks.js:290 -#.TRANS: count of current beat in the meter -msgid "beat count" +#: js/blocks/PitchBlocks.js:922 +msgid "The Invert block rotates any contained notes around a target note." msgstr "" -#: js/MeterBlocks.js:300 -#: js/MeterBlocks.js:311 -#: js/MeterBlocks.js:565 -#: js/MeterBlocks.js:576 -msgid "The Beat count block is the number of the current beat," +#: js/blocks/PitchBlocks.js:929 +#.TRANS: pitch inversion rotates a pitch around another pitch +msgid "invert" msgstr "" -#: js/MeterBlocks.js:313 -#: js/MeterBlocks.js:578 -msgid "eg 1, 2, 3, or 4." +#: js/blocks/PitchBlocks.js:968 +#.TRANS: pitch inversion rotates a pitch around another pitch (odd number) +msgid "invert (odd)" msgstr "" -#: js/MeterBlocks.js:368 -#.TRANS: count the number of notes -msgid "sum note values" +#: js/blocks/PitchBlocks.js:1001 +#.TRANS: pitch inversion rotates a pitch around another pitch (even number) +msgid "invert (even)" msgstr "" -#: js/MeterBlocks.js:376 -#: js/MeterBlocks.js:440 -msgid "The Note counter block can be used to count the number of contained notes." +#: js/blocks/PitchBlocks.js:1022 +#.TRANS: register is the octave of the current pitch +msgid "register" msgstr "" -#: js/MeterBlocks.js:432 -#.TRANS: count the number of notes -msgid "note counter" +#: js/blocks/PitchBlocks.js:1026 +msgid "The Register block provides an easy way to modify the register (octave) of the notes that follow it." msgstr "" -#: js/MeterBlocks.js:496 -#.TRANS: number of whole notes that have been played -msgid "whole notes played" +#: js/blocks/PitchBlocks.js:1047 +#.TRANS: cents are units used to specify the ratio between pitches. There are 100 cents between successive notes. +msgid "50 cents" msgstr "" -#: js/MeterBlocks.js:505 -msgid "The Whole notes played block returns the total number of whole notes played." +#: js/blocks/PitchBlocks.js:1102 +msgid "The Semi-tone transposition block will shift the pitches contained inside Note blocks up (or down) by half steps." msgstr "" -#: js/MeterBlocks.js:555 -#: js/DictActions.js:83 -#.TRANS: number of notes that have been played -msgid "notes played" +#: js/blocks/PitchBlocks.js:1104 +msgid "In the example shown above, sol is shifted up to sol#." msgstr "" -#: js/MeterBlocks.js:653 -msgid "The No clock block decouples the notes from the master clock." +#: js/blocks/PitchBlocks.js:1110 +#.TRANS: adjust the amount of shift (up or down) of a pitch +msgid "semi-tone transpose" msgstr "" -#: js/MeterBlocks.js:661 -#.TRANS: don't lock notes to master clock -msgid "no clock" +#: js/blocks/PitchBlocks.js:1143 +msgid "The Transpose by Ratio block will shift the pitches contained inside Note blocks up (or down) by a ratio" msgstr "" -#: js/MeterBlocks.js:700 -msgid "on weak beat do" +#: js/blocks/PitchBlocks.js:1149 +#.TRANS: adjust the amount of shift (up or down) of a pitch +msgid "transpose by ratio" msgstr "" -#: js/MeterBlocks.js:705 -msgid "The On-weak-beat block lets you specify actions to take on weak (off) beats." +#: js/blocks/PitchBlocks.js:1232 +#.TRANS: down sixth means the note is five scale degrees below current note +msgid "down sixth" msgstr "" -#: js/MeterBlocks.js:750 -msgid "on strong beat" +#: js/blocks/PitchBlocks.js:1251 +#.TRANS: down third means the note is two scale degrees below current note +msgid "down third" msgstr "" -#: js/MeterBlocks.js:758 -msgid "The On-strong-beat block lets you specify actions to take on specified beats." +#: js/blocks/PitchBlocks.js:1270 +#.TRANS: seventh means the note is the six scale degrees above current note +msgid "seventh" msgstr "" -#: js/MeterBlocks.js:769 -msgid "beat" +#: js/blocks/PitchBlocks.js:1289 +#.TRANS: sixth means the note is the five scale degrees above current note +msgid "sixth" msgstr "" -#: js/MeterBlocks.js:813 -msgid "on every beat do" +#: js/blocks/PitchBlocks.js:1308 +#.TRANS: fifth means the note is the four scale degrees above current note +msgid "fifth" msgstr "" -#: js/MeterBlocks.js:821 -msgid "The On-every-beat block lets you specify actions to take on every beat." +#: js/blocks/PitchBlocks.js:1328 +#.TRANS: fourth means the note is three scale degrees above current note +msgid "fourth" msgstr "" -#: js/MeterBlocks.js:874 -msgid "on every note do" +#: js/blocks/PitchBlocks.js:1347 +#.TRANS: third means the note is two scale degrees above current note +msgid "third" msgstr "" -#: js/MeterBlocks.js:882 -msgid "The On-every-note block lets you specify actions to take on every note." +#: js/blocks/PitchBlocks.js:1366 +#.TRANS: second means the note is one scale degree above current note +msgid "second" msgstr "" -#: js/MeterBlocks.js:928 -#: js/MeterBlocks.js:999 -#.TRANS: sets tempo by defining a beat and beats per minute -msgid "master beats per minute" +#: js/blocks/PitchBlocks.js:1407 +msgid "The Scalar transposition block will shift the pitches contained inside Note blocks up (or down) the scale." msgstr "" -#: js/MeterBlocks.js:952 -#: js/MeterBlocks.js:1078 -#: js/MeterBlocks.js:1135 -msgid "bpm" +#: js/blocks/PitchBlocks.js:1409 +msgid "In the example shown above, sol is shifted up to la." msgstr "" -#: js/MeterBlocks.js:952 -#: js/MeterBlocks.js:1078 -#: js/MeterBlocks.js:1135 -msgid "beat value" +#: js/blocks/PitchBlocks.js:1416 +#.TRANS: adjust the amount of shift (up or down) of a pitch by musical scale (scalar) steps +msgid "scalar transpose" msgstr "" -#: js/MeterBlocks.js:1024 -#: js/MeterBlocks.js:1167 -#: js/MeterBlocks.js:1241 -msgid "Beats per minute must be > 30." +#: js/blocks/PitchBlocks.js:1451 +msgid "The Accidental block is used to create sharps and flats" msgstr "" -#: js/MeterBlocks.js:1027 -#: js/MeterBlocks.js:1170 -#: js/MeterBlocks.js:1244 -msgid "Maximum beats per minute is 1000." +#: js/blocks/PitchBlocks.js:1458 +#.TRANS: An accidental is a modification to a pitch, e.g., sharp or flat. +msgid "accidental override" msgstr "" -#: js/MeterBlocks.js:1068 -msgid "The Beats per minute block sets the number of 1/4 notes per minute." +#: js/blocks/PitchBlocks.js:1581 +msgid "The Hertz block (in combination with a Number block) will play a sound at the specified frequency." msgstr "" -#: js/MeterBlocks.js:1279 -#.TRANS: anacrusis -msgid "pickup" +#: js/blocks/PitchBlocks.js:1671 +msgid "The Pitch Number block will play a pitch associated by its number, e.g. 0 for C and 7 for G." msgstr "" -#: js/MeterBlocks.js:1367 -msgid "number of beats" +#: js/blocks/PitchBlocks.js:1703 +#: js/blocks/PitchBlocks.js:1745 +#.TRANS: a numeric mapping of the notes in an octave based on the musical mode +#.TRANS: a numeric mapping of the notes in an octave based on the musical mode +msgid "nth modal pitch" msgstr "" -#: js/DictBlocks.js:77 -msgid "show dictionary" +#: js/blocks/PitchBlocks.js:1706 +msgid "n^th Modal Pitch takes the pattern of pitches in semitones for a mode and makes each point a degree of the mode," msgstr "" -#: js/DictBlocks.js:129 -msgid "The Dictionary block returns a dictionary." +#: js/blocks/PitchBlocks.js:1708 +msgid "starting from 1 and regardless of tonal framework (i.e. not always 8 notes in the octave)" msgstr "" -#: js/DictBlocks.js:197 -#: js/DictBlocks.js:339 -msgid "The Get-dict block returns a value in the dictionary for a specified key." +#: js/blocks/PitchBlocks.js:1749 +msgid "N^th Modal Pitch takes a number as an input as the n^th degree for the given mode. 0 is the first position, 1 is the second, -1 is the note before the first etc." msgstr "" -#: js/DictBlocks.js:212 -#: js/DictBlocks.js:354 -#.TRANS: retrieve a value from the dictionary with a given key -msgid "get value" +#: js/blocks/PitchBlocks.js:1751 +msgid "The pitches change according to the mode specified without any need for respellings." msgstr "" -#: js/DictBlocks.js:215 -#: js/DictBlocks.js:216 -#: js/DictBlocks.js:289 -#: js/DictBlocks.js:290 -#: js/DictBlocks.js:357 -#: js/DictBlocks.js:430 -#: js/DictBlocks.js:431 -msgid "key2" +#: js/blocks/PitchBlocks.js:1790 +msgid "Scale Degree is a common convention in music. Scale Degree offers seven possible positions in the scale (1-7) and can be modified via accidentals." msgstr "" -#: js/DictBlocks.js:271 -#: js/DictBlocks.js:411 -msgid "The Set-dict block sets a value in the dictionary for a specified key." +#: js/blocks/PitchBlocks.js:1792 +msgid "Scale Degree 1 is always the first pitch in a given scale, regardless of octave." msgstr "" -#: js/DictBlocks.js:286 -#: js/DictBlocks.js:427 -#.TRANS: set a value in the dictionary for a given key -msgid "set value" +#: js/blocks/PitchBlocks.js:1814 +#.TRANS: step some number of notes in current musical scale +msgid "scalar step" msgstr "" -#: js/ExtrasBlocks.js:33 -msgid "fraction" +#: js/blocks/PitchBlocks.js:1819 +msgid "The Scalar Step block (in combination with a Number block) will play the next pitch in a scale," msgstr "" -#: js/ExtrasBlocks.js:36 -msgid "Convert a float to a fraction" +#: js/blocks/PitchBlocks.js:1821 +msgid "eg if the last note played was sol, Scalar Step 1 will play la." msgstr "" -#: js/ExtrasBlocks.js:93 -msgid "save as ABC" +#: js/blocks/PitchBlocks.js:1857 +msgid "The Pitch block specifies the pitch name and octave of a note that together determine the frequency of the note." msgstr "" -#: js/ExtrasBlocks.js:96 -#: js/ExtrasBlocks.js:132 -#: js/ExtrasBlocks.js:168 -msgid "title" +#: js/blocks/ProgramBlocks.js:33 +msgid "The Load-heap-from-app block loads the heap from a web page." msgstr "" -#: js/ExtrasBlocks.js:129 -msgid "save as Lilypond" +#: js/blocks/ProgramBlocks.js:44 +#.TRANS: load the heap contents from a URL +msgid "load heap from App" msgstr "" -#: js/ExtrasBlocks.js:165 -msgid "save as SVG" +#: js/blocks/ProgramBlocks.js:95 +msgid "Error parsing JSON data:" msgstr "" -#: js/ExtrasBlocks.js:216 -msgid "no background" +#: js/blocks/ProgramBlocks.js:100 +msgid "404: Page not found" msgstr "" -#: js/ExtrasBlocks.js:219 -msgid "The No background block eliminates the background from the saved SVG output." +#: js/blocks/ProgramBlocks.js:133 +msgid "The Save-heap-to-app block saves the heap to a web page." msgstr "" -#: js/ExtrasBlocks.js:247 -msgid "show blocks" -msgstr "εμφάνιση εντολών" - -#: js/ExtrasBlocks.js:249 -msgid "The Show blocks block shows the blocks." +#: js/blocks/ProgramBlocks.js:144 +#.TRANS: save the heap contents to a URL +msgid "save heap to App" msgstr "" -#: js/ExtrasBlocks.js:274 -msgid "hide blocks" -msgstr "απόκρυψη εντολών" - -#: js/ExtrasBlocks.js:276 -msgid "The Hide blocks block hides the blocks." +#: js/blocks/ProgramBlocks.js:189 +msgid "Cannot find a valid heap for" msgstr "" -#: js/ExtrasBlocks.js:305 -#: js/ExtrasBlocks.js:335 -msgid "The Space block is used to add space between blocks." +#: js/blocks/ProgramBlocks.js:206 +msgid "The Load-heap block loads the heap from a file." msgstr "" -#: js/ExtrasBlocks.js:373 -msgid "wait" -msgstr "αναμονή" +#: js/blocks/ProgramBlocks.js:217 +#.TRANS: load the heap from a file +msgid "load heap" +msgstr "" -#: js/ExtrasBlocks.js:376 -msgid "The Wait block pauses the program for a specified number of seconds." +#: js/blocks/ProgramBlocks.js:270 +msgid "The file you selected does not contain a valid heap." msgstr "" -#: js/ExtrasBlocks.js:430 -#: plugins/facebook.rtp:30 -msgid "comment" -msgstr "σχόλιο" +#: js/blocks/ProgramBlocks.js:275 +msgid "The loadHeap block needs a loadFile block." +msgstr "" -#: js/ExtrasBlocks.js:466 -msgid "print" -msgstr "εκτύπωση" +#: js/blocks/ProgramBlocks.js:291 +msgid "The Set-heap block loads the heap." +msgstr "" -#: js/ExtrasBlocks.js:473 -msgid "The Print block displays text at the top of the screen." +#: js/blocks/ProgramBlocks.js:340 +msgid "The block you selected does not contain a valid heap." msgstr "" -#: js/ExtrasBlocks.js:579 -msgid "display grid" +#: js/blocks/ProgramBlocks.js:343 +msgid "The Set heap block needs a heap." msgstr "" -#: js/ExtrasBlocks.js:584 -msgid "The Display Grid Block changes the grid type" +#: js/blocks/ProgramBlocks.js:360 +msgid "The Load-dictionary block loads a dictionary from a file." msgstr "" -#: js/ExtrasBlocks.js:686 -#: js/ExtrasBlocks.js:705 -#: js/ExtrasBlocks.js:728 -#: js/ExtrasBlocks.js:751 -#: js/ExtrasBlocks.js:769 -#: js/ExtrasBlocks.js:788 -#: js/ExtrasBlocks.js:807 -#: js/ExtrasBlocks.js:826 -msgid "unknown" +#: js/blocks/ProgramBlocks.js:372 +#.TRANS: load a dictionary from a file +msgid "load dictionary" msgstr "" -#: js/SensorsBlocks.js:36 -msgid "The Input block prompts for keyboard input." +#: js/blocks/ProgramBlocks.js:390 +#: js/blocks/ProgramBlocks.js:658 +#: js/blocks/ToneBlocks.js:1025 +msgid "file" msgstr "" -#: js/SensorsBlocks.js:46 -msgid "input" +#: js/blocks/ProgramBlocks.js:444 +msgid "The file you selected does not contain a valid dictionary." msgstr "" -#: js/SensorsBlocks.js:64 -msgid "Input a value" +#: js/blocks/ProgramBlocks.js:449 +msgid "The load dictionary block needs a load file block." msgstr "" -#: js/SensorsBlocks.js:126 -msgid "input value" +#: js/blocks/ProgramBlocks.js:466 +msgid "The Set-dictionary block loads a dictionary." msgstr "" -#: js/SensorsBlocks.js:131 -msgid "The Input-value block stores the input." +#: js/blocks/ProgramBlocks.js:477 +#.TRANS: load a dictionary from a JSON +msgid "set dictionary" msgstr "" -#: js/SensorsBlocks.js:238 -msgid "loudness" -msgstr "ηχηρότητα" +#: js/blocks/ProgramBlocks.js:546 +msgid "The block you selected does not contain a valid dictionary." +msgstr "" -#: js/SensorsBlocks.js:245 -msgid "The Loudness block returns the volume detected by the microphone." +#: js/blocks/ProgramBlocks.js:550 +msgid "The set dictionary block needs a dictionary." msgstr "" -#: js/SensorsBlocks.js:300 -msgid "click" +#: js/blocks/ProgramBlocks.js:567 +msgid "The Save-heap block saves the heap to a file." msgstr "" -#: js/SensorsBlocks.js:306 -msgid "The Click block triggers an event if a mouse has been clicked." +#: js/blocks/ProgramBlocks.js:578 +#.TRANS: save the heap to a file +msgid "save heap" msgstr "" -#: js/SensorsBlocks.js:313 -msgid "The Click block triggers an event if a turtle has been clicked." +#: js/blocks/ProgramBlocks.js:629 +msgid "The Save-dictionary block saves a dictionary to a file." msgstr "" -#: js/SensorsBlocks.js:342 -msgid "cursor over" +#: js/blocks/ProgramBlocks.js:640 +#.TRANS: save a dictionary to a file +msgid "save dictionary" msgstr "" -#: js/SensorsBlocks.js:387 -msgid "cursor out" +#: js/blocks/ProgramBlocks.js:720 +msgid "The Open palette block opens a palette." msgstr "" -#: js/SensorsBlocks.js:433 -msgid "cursor button down" +#: js/blocks/ProgramBlocks.js:727 +msgid "open palette" msgstr "" -#: js/SensorsBlocks.js:477 -msgid "cursor button up" +#: js/blocks/ProgramBlocks.js:785 +msgid "The Delete block block removes a block." msgstr "" -#: js/SensorsBlocks.js:638 -msgid "The Get red block returns the red component of the pixel under the mouse." +#: js/blocks/ProgramBlocks.js:797 +#.TRANS: Move this block to the trash. +msgid "delete block" msgstr "" -#: js/SensorsBlocks.js:644 -msgid "The Get red block returns the red component of the pixel under the turtle." +#: js/blocks/ProgramBlocks.js:861 +msgid "The Move block block moves a block." msgstr "" -#: js/SensorsBlocks.js:685 -#: plugins/rodi.rtp:216 -msgid "pixel color" +#: js/blocks/ProgramBlocks.js:869 +#.TRANS: Move the position of a block on the screen. +msgid "move block" msgstr "" -#: js/SensorsBlocks.js:690 -msgid "The Get pixel block returns the color of the pixel under the mouse." +#: js/blocks/ProgramBlocks.js:881 +#: js/blocks/ProgramBlocks.js:1048 +msgid "block number" msgstr "" -#: js/SensorsBlocks.js:696 -msgid "The Get pixel block returns the color of the pixel under the turtle." +#: js/blocks/ProgramBlocks.js:935 +#.TRANS: Run program beginning at this block. +msgid "run block" msgstr "" -#: js/SensorsBlocks.js:758 -msgid "time" -msgstr "χρόνος" +#: js/blocks/ProgramBlocks.js:1025 +msgid "The Dock block block connections two blocks." +msgstr "" -#: js/SensorsBlocks.js:804 -msgid "cursor y" +#: js/blocks/ProgramBlocks.js:1036 +#.TRANS: We can connect a block to another block. +msgid "connect blocks" msgstr "" -#: js/SensorsBlocks.js:809 -msgid "The Cursor Y block returns the vertical position of the mouse." +#: js/blocks/ProgramBlocks.js:1048 +msgid "target block" msgstr "" -#: js/SensorsBlocks.js:845 -msgid "cursor x" +#: js/blocks/ProgramBlocks.js:1048 +msgid "connection number" msgstr "" -#: js/SensorsBlocks.js:850 -msgid "The Cursor X block returns the horizontal position of the mouse." +#: js/blocks/ProgramBlocks.js:1140 +msgid "The Make block block creates a new block." msgstr "" -#: js/SensorsBlocks.js:886 -msgid "mouse button" +#: js/blocks/ProgramBlocks.js:1152 +#.TRANS: Create a new block +msgid "make block" msgstr "" -#: js/SensorsBlocks.js:888 -msgid "The Mouse-button block returns True if the mouse button is pressed." +#: js/blocks/ProgramBlocks.js:1285 +msgid "Cannot find block" msgstr "" -#: js/SensorsBlocks.js:934 -msgid "to ASCII" +#: js/blocks/ProgramBlocks.js:1304 +#: js/blocks/ProgramBlocks.js:1313 +msgid "Warning: block argument type mismatch" msgstr "" -#: js/SensorsBlocks.js:938 -msgid "The To ASCII block converts numbers to letters." +#: js/blocks/ProgramBlocks.js:1347 +msgid "The Open project block is used to open a project from a web page." msgstr "" -#: js/SensorsBlocks.js:1005 -msgid "The Keyboard block returns computer keyboard input." +#: js/blocks/ProgramBlocks.js:1357 +msgid "open project" msgstr "" -#: js/IntervalsActions.js:216 -msgid "Adding missing pitch number 0." +#: js/blocks/ProgramBlocks.js:1410 +msgid "Please enter a valid URL." msgstr "" -#: js/IntervalsActions.js:224 -msgid "Ignoring pitch numbers less than zero or greater than eleven." +#: js/blocks/ToneBlocks.js:34 +msgid "oscillator" msgstr "" -#: js/IntervalsActions.js:230 -msgid "Ignoring duplicate pitch numbers." +#: js/blocks/ToneBlocks.js:42 +#: js/blocks/WidgetBlocks.js:179 +#: js/widgets/timbre.js:1558 +#: js/widgets/timbre.js:1808 +#.TRANS: there are different types (sine, triangle, square...) of oscillators. +#.TRANS: type of filter, e.g., lowpass, highpass, etc. +msgid "type" msgstr "" -#: js/PitchActions.js:88 -msgid "The Scalar Step Block must be used inside of a Note Block." +#: js/blocks/ToneBlocks.js:44 +#: js/widgets/timbre.js:1562 +#.TRANS: Partials refers to the number of sine waves combined into the sound. +msgid "partials" msgstr "" -#: js/PitchActions.js:107 -msgid "The Scalar Step Block must be preceded by a Pitch Block." +#: js/blocks/ToneBlocks.js:76 +msgid "You are adding multiple oscillator blocks." msgstr "" -#: js/DrumActions.js:231 -msgid "Noise Block: Did you mean to use a Note block?" +#: js/blocks/ToneBlocks.js:144 +#: js/widgets/timbre.js:1225 +#.TRANS: a duo synthesizer combines a synth with a sequencer +msgid "duo synth" msgstr "" -#: js/MeterActions.js:101 -#: js/MeterActions.js:139 -msgid "beats per minute must be greater than" +#: js/blocks/ToneBlocks.js:149 +msgid "The Duo synth block is a duo-frequency modulator used to define a timbre." msgstr "" -#: js/MeterActions.js:111 -#: js/MeterActions.js:149 -msgid "maximum" +#: js/blocks/ToneBlocks.js:157 +#: js/widgets/timbre.js:1476 +msgid "vibrato rate" msgstr "" -#: js/MeterActions.js:117 -#: js/MeterActions.js:155 -msgid "beats per minute is" +#: js/blocks/ToneBlocks.js:157 +msgid "vibrato intensity" msgstr "" -#: js/ToneActions.js:134 -msgid "Vibrato intensity must be between 1 and 100." +#: js/blocks/ToneBlocks.js:185 +#: js/widgets/timbre.js:1221 +#.TRANS: AM (amplitude modulation) synthesizer +msgid "AM synth" msgstr "" -#: js/ToneActions.js:139 -msgid "Vibrato rate must be greater than 0." +#: js/blocks/ToneBlocks.js:189 +msgid "The AM synth block is an amplitude modulator used to define a timbre." msgstr "" -#: js/ToneActions.js:192 -#: js/ToneActions.js:265 -#.TRANS: Depth is the intesity of the tremolo or chorus effect. -msgid "Depth is out of range." +#: js/blocks/ToneBlocks.js:224 +#: js/widgets/timbre.js:1223 +#.TRANS: FM (frequency modulation) synthesizer +msgid "FM synth" msgstr "" -#: js/ToneActions.js:301 -msgid "Distortion must be from 0 to 100." +#: js/blocks/ToneBlocks.js:228 +msgid "The FM synth block is a frequency modulator used to define a timbre." msgstr "" -#: js/ToneActions.js:332 -#.TRANS: partials components in a harmonic series -msgid "Partial must be greater than or equal to 0." +#: js/blocks/ToneBlocks.js:262 +msgid "partial" msgstr "" -#: js/ToneActions.js:378 -#: js/ToneActions.js:417 -#: js/ToneActions.js:456 -#: js/timbre.js:782 -msgid "Unable to use synth due to existing oscillator" +#: js/blocks/ToneBlocks.js:265 +msgid "The Partial block is used to specify a weight for a specific partial harmonic." msgstr "" -#: js/ToneActions.js:388 -#: js/ToneActions.js:427 -msgid "The input cannot be negative." +#: js/blocks/ToneBlocks.js:284 +#.TRANS: partials are weighted components in a harmonic series +msgid "Partial weight must be between 0 and 1." msgstr "" -#: js/DictActions.js:75 -#: js/DictActions.js:153 -#: js/DictActions.js:188 -msgid "font" +#: js/blocks/ToneBlocks.js:297 +#.TRANS: partials are weighted components in a harmonic series +msgid "Partial block should be used inside of a Weighted-partials block." msgstr "" -#: js/musicutils.js:363 -#: js/musicutils.js:471 -#: js/pitchdrummatrix.js:151 -#: js/musickeyboard.js:2563 -msgid "rest" +#: js/blocks/ToneBlocks.js:325 +#.TRANS: partials are weighted components in a harmonic series +msgid "weighted partials" msgstr "" -#: js/musicutils.js:565 -#.TRANS: ordinal number. Please keep exactly one space between each number. -msgid "1st 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th" +#: js/blocks/ToneBlocks.js:383 +msgid "The Harmonic block will add harmonics to the contained notes." msgstr "" -#: js/musicutils.js:629 -#: js/musicutils.js:812 -#: js/musicutils.js:911 -#.TRANS: augmented is a music term related to intervals -msgid "augmented" +#: js/blocks/ToneBlocks.js:390 +#.TRANS: A harmonic is an overtone. +msgid "harmonic" msgstr "" -#: js/musicutils.js:631 -#: js/musicutils.js:813 -#: js/musicutils.js:910 -#.TRANS: diminished is a music term related to intervals and mode -msgid "diminished" +#: js/blocks/ToneBlocks.js:431 +msgid "The Distortion block adds distortion to the pitch." msgstr "" -#: js/musicutils.js:639 -#.TRANS: twelve semi-tone scale for music -msgid "chromatic" +#: js/blocks/ToneBlocks.js:438 +#: js/widgets/timbre.js:2100 +#.TRANS: distortion is an alteration in the sound +msgid "distortion" msgstr "" -#: js/musicutils.js:640 -msgid "algerian" +#: js/blocks/ToneBlocks.js:487 +msgid "The Tremolo block adds a wavering effect." msgstr "" -#: js/musicutils.js:641 -msgid "spanish" +#: js/blocks/ToneBlocks.js:495 +#: js/widgets/timbre.js:2092 +#.TRANS: a wavering effect in a musical tone +msgid "tremolo" msgstr "" -#: js/musicutils.js:643 -#.TRANS: modal scale in music -msgid "octatonic" +#: js/blocks/ToneBlocks.js:500 +#: js/blocks/ToneBlocks.js:569 +#: js/blocks/ToneBlocks.js:630 +#: js/blocks/ToneBlocks.js:689 +#: js/widgets/timbre.js:2134 +#: js/widgets/timbre.js:2222 +#: js/widgets/timbre.js:2317 +#: js/widgets/timbre.js:2419 +#.TRANS: rate at which tremolo wavers +msgid "rate" msgstr "" -#: js/musicutils.js:645 -#.TRANS: harmonic major scale in music -msgid "harmonic major" +#: js/blocks/ToneBlocks.js:502 +#: js/blocks/ToneBlocks.js:630 +#: js/widgets/timbre.js:2137 +#: js/widgets/timbre.js:2328 +#.TRANS: amplitude of tremolo waver +msgid "depth" msgstr "" -#: js/musicutils.js:647 -#.TRANS: natural minor scales in music -msgid "natural minor" +#: js/blocks/ToneBlocks.js:559 +msgid "The Phaser block adds a sweeping sound." msgstr "" -#: js/musicutils.js:649 -#.TRANS: harmonic minor scale in music -msgid "harmonic minor" +#: js/blocks/ToneBlocks.js:566 +#: js/widgets/timbre.js:2098 +#.TRANS: alter the phase of the sound +msgid "phaser" msgstr "" -#: js/musicutils.js:651 -#.TRANS: melodic minor scale in music -msgid "melodic minor" +#: js/blocks/ToneBlocks.js:569 +#: js/turtleactions/IntervalsActions.js:114 +#: js/widgets/timbre.js:2422 +msgid "octaves" msgstr "" -#: js/musicutils.js:655 -#.TRANS: modal scale for music -msgid "dorian" +#: js/blocks/ToneBlocks.js:569 +#: js/widgets/timbre.js:2425 +msgid "base frequency" msgstr "" -#: js/musicutils.js:657 -#.TRANS: modal scale for music -msgid "phrygian" +#: js/blocks/ToneBlocks.js:619 +msgid "The Chorus block adds a chorus effect." msgstr "" -#: js/musicutils.js:659 -#.TRANS: modal scale for music -msgid "lydian" +#: js/blocks/ToneBlocks.js:627 +#: js/widgets/timbre.js:2096 +#.TRANS: musical effect to simulate a choral sound +msgid "chorus" msgstr "" -#: js/musicutils.js:661 -#.TRANS: modal scale for music -msgid "mixolydian" +#: js/blocks/ToneBlocks.js:630 +msgid "delay" msgstr "" -#: js/musicutils.js:665 -#.TRANS: modal scale for music -msgid "locrian" +#: js/blocks/ToneBlocks.js:678 +msgid "The Vibrato block adds a rapid, slight variation in pitch." msgstr "" -#: js/musicutils.js:667 -#.TRANS: minor jazz scale for music -msgid "jazz minor" +#: js/blocks/ToneBlocks.js:686 +#: js/widgets/timbre.js:2094 +#.TRANS: a rapid, slight variation in pitch +msgid "vibrato" msgstr "" -#: js/musicutils.js:669 -#.TRANS: bebop scale for music -msgid "bebop" +#: js/blocks/ToneBlocks.js:689 +#: js/widgets/timbre.js:2221 +msgid "intensity" msgstr "" -#: js/musicutils.js:670 -msgid "arabic" +#: js/blocks/ToneBlocks.js:733 +#.TRANS: select synthesizer +msgid "set synth" msgstr "" -#: js/musicutils.js:671 -msgid "byzantine" +#: js/blocks/ToneBlocks.js:804 +msgid "synth name" msgstr "" -#: js/musicutils.js:673 -#.TRANS: musical scale for music by Verdi -msgid "enigmatic" +#: js/blocks/ToneBlocks.js:842 +msgid "set default instrument" msgstr "" -#: js/musicutils.js:674 -msgid "ethiopian" +#: js/blocks/ToneBlocks.js:895 +#: js/blocks/ToneBlocks.js:943 +#.TRANS: set the characteristics of a custom instrument +msgid "set instrument" msgstr "" -#: js/musicutils.js:676 -#.TRANS: Ethiopic scale for music -msgid "geez" +#: js/blocks/ToneBlocks.js:898 +#: js/blocks/ToneBlocks.js:926 +#: js/blocks/ToneBlocks.js:932 +msgid "The Set instrument block selects a voice for the synthesizer," msgstr "" -#: js/musicutils.js:677 -msgid "hindu" +#: js/blocks/ToneBlocks.js:900 +#: js/blocks/ToneBlocks.js:934 +msgid "eg guitar piano violin or cello." msgstr "" -#: js/musicutils.js:678 -msgid "hungarian" +#: js/blocks/ToneBlocks.js:1015 +msgid "Import a sound file to use as an instrument and set its pitch center." msgstr "" -#: js/musicutils.js:680 -#.TRANS: minor Romanian scale for music -msgid "romanian minor" +#: js/blocks/ToneBlocks.js:1110 +msgid "Upload a sound file to connect with the sample block." msgstr "" -#: js/musicutils.js:681 -msgid "spanish gypsy" +#: js/blocks/VolumeBlocks.js:35 +msgid "synth volume" msgstr "" -#: js/musicutils.js:683 -#.TRANS: musical scale for Mid-Eastern music -msgid "maqam" +#: js/blocks/VolumeBlocks.js:39 +msgid "The Synth volume block returns the current volume of the current synthesizer." msgstr "" -#: js/musicutils.js:685 -#.TRANS: minor blues scale for music -msgid "minor blues" +#: js/blocks/VolumeBlocks.js:105 +msgid "master volume" msgstr "" -#: js/musicutils.js:687 -#.TRANS: major blues scale for music -msgid "major blues" +#: js/blocks/VolumeBlocks.js:109 +msgid "The Master volume block returns the master volume." msgstr "" -#: js/musicutils.js:688 -msgid "whole tone" +#: js/blocks/VolumeBlocks.js:355 +#: js/blocks/VolumeBlocks.js:524 +msgid "set synth volume" msgstr "" -#: js/musicutils.js:690 -#.TRANS: pentatonic is a general term that means "five note scale". This scale is typically known as "minor pentatonic" -msgid "minor pentatonic" +#: js/blocks/VolumeBlocks.js:362 +#: js/blocks/VolumeBlocks.js:545 +msgid "synth" msgstr "" -#: js/musicutils.js:692 -#.TRANS: pentatonic is a general term that means "five note scale". This scale is typically known as "major pentatonic" -msgid "major pentatonic" +#: js/blocks/VolumeBlocks.js:403 +#: js/blocks/VolumeBlocks.js:577 +#: js/blocks/VolumeBlocks.js:740 +#: js/turtleactions/VolumeActions.js:173 +msgid "Setting volume to 0." msgstr "" -#: js/musicutils.js:693 -msgid "chinese" +#: js/blocks/VolumeBlocks.js:440 +msgid "Synth not found" msgstr "" -#: js/musicutils.js:694 -msgid "egyptian" +#: js/blocks/VolumeBlocks.js:494 +msgid "set drum volume" msgstr "" -#: js/musicutils.js:696 -#.TRANS: https://en.wikipedia.org/wiki/Hirajoshi_scale NOTE: There are three different versions of this scale -msgid "hirajoshi" +#: js/blocks/VolumeBlocks.js:530 +msgid "The Set synth volume block will change the volume of a particular synth," msgstr "" -#: js/musicutils.js:697 -msgid "Japan" +#: js/blocks/VolumeBlocks.js:532 +msgid "eg guitar violin snare drum etc." msgstr "" -#: js/musicutils.js:699 -#.TRANS: https://en.wikipedia.org/wiki/In_scale and https://en.wikipedia.org/wiki/Sakura_Sakura -msgid "in" +#: js/blocks/VolumeBlocks.js:534 +msgid "The default volume is 50." msgstr "" -#: js/musicutils.js:701 -#.TRANS: https://en.wikipedia.org/wiki/Miny%C5%8D_scale -msgid "minyo" +#: js/blocks/VolumeBlocks.js:536 +msgid "The range is 0 for silence to 100 for full volume." msgstr "" -#: js/musicutils.js:703 -#.TRANS: Italian mathematician -msgid "fibonacci" +#: js/blocks/VolumeBlocks.js:597 +msgid "set panning" msgstr "" -#: js/musicutils.js:708 -#: js/musicutils.js:1106 -#.TRANS: lowpass filter -msgid "lowpass" +#: js/blocks/VolumeBlocks.js:603 +msgid "The Set Panning block sets the panning for all synthesizers." msgstr "" -#: js/musicutils.js:710 -#: js/musicutils.js:1107 -#.TRANS: bandpass filter -msgid "bandpass" +#: js/blocks/VolumeBlocks.js:625 +msgid "Warning: Sound is coming out from only the left or right side." msgstr "" -#: js/musicutils.js:712 -#: js/musicutils.js:1108 -#.TRANS: high-shelf filter -msgid "highshelf" +#: js/blocks/VolumeBlocks.js:647 +#: js/blocks/VolumeBlocks.js:695 +msgid "set master volume" msgstr "" -#: js/musicutils.js:714 -#: js/musicutils.js:1109 -#.TRANS: low-shelf filter -msgid "lowshelf" +#: js/blocks/VolumeBlocks.js:653 +msgid "The Set master volume block sets the volume for all synthesizers." msgstr "" -#: js/musicutils.js:716 -#: js/musicutils.js:1110 -#.TRANS: notch-shelf filter -msgid "notch" +#: js/blocks/VolumeBlocks.js:784 +msgid "The Set relative volume block changes the volume of the contained notes." msgstr "" -#: js/musicutils.js:718 -#: js/musicutils.js:1111 -#.TRANS: all-pass filter -msgid "allpass" +#: js/blocks/VolumeBlocks.js:791 +msgid "set relative volume" msgstr "" -#: js/musicutils.js:720 -#: js/musicutils.js:1112 -#.TRANS: peaking filter -msgid "peaking" +#: js/blocks/VolumeBlocks.js:857 +msgid "decrescendo" msgstr "" -#: js/musicutils.js:731 -#: js/synthutils.js:58 -#.TRANS: musical instrument -msgid "violin" +#: js/blocks/VolumeBlocks.js:921 +msgid "crescendo" msgstr "" -#: js/musicutils.js:732 -#: js/synthutils.js:60 -#.TRANS: viola musical instrument -msgid "viola" +#: js/blocks/WidgetBlocks.js:81 +#.TRANS: sound envelope (ADSR) +msgid "envelope" msgstr "" -#: js/musicutils.js:733 -#: js/synthutils.js:98 -#.TRANS: xylophone musical instrument -msgid "xylophone" +#: js/blocks/WidgetBlocks.js:89 +#.TRANS: Attack time is the time taken for initial run-up of level from nil to peak, beginning when the key is first pressed. +msgid "attack" msgstr "" -#: js/musicutils.js:734 -#: js/synthutils.js:120 -#.TRANS: vibraphone musical instrument -msgid "vibraphone" +#: js/blocks/WidgetBlocks.js:91 +#.TRANS: Decay time is the time taken for the subsequent run down from the attack level to the designated sustain level. +msgid "decay" msgstr "" -#: js/musicutils.js:735 -#: js/synthutils.js:62 -#.TRANS: musical instrument -msgid "cello" +#: js/blocks/WidgetBlocks.js:93 +#.TRANS: Sustain level is the level during the main sequence of the sound's duration, until the key is released. +msgid "sustain" msgstr "" -#: js/musicutils.js:737 -#: js/synthutils.js:66 -#.TRANS: viola musical instrument -msgid "double bass" +#: js/blocks/WidgetBlocks.js:95 +#.TRANS: Release time is the time taken for the level to decay from the sustain level to zero after the key is released. +msgid "release" msgstr "" -#: js/musicutils.js:738 -#: js/synthutils.js:68 -#: js/rhythmruler.js:2119 -#.TRANS: musical instrument -msgid "guitar" +#: js/blocks/WidgetBlocks.js:113 +msgid "Attack value should be from 0 to 100." msgstr "" -#: js/musicutils.js:739 -#: js/synthutils.js:70 -#.TRANS: musical instrument -msgid "acoustic guitar" +#: js/blocks/WidgetBlocks.js:116 +msgid "Decay value should be from 0 to 100." msgstr "" -#: js/musicutils.js:740 -#: js/synthutils.js:72 -#.TRANS: musical instrument -msgid "flute" +#: js/blocks/WidgetBlocks.js:119 +msgid "Sustain value should be from 0 to 100." msgstr "" -#: js/musicutils.js:741 -#: js/synthutils.js:74 -#.TRANS: musical instrument -msgid "clarinet" +#: js/blocks/WidgetBlocks.js:122 +msgid "Release value should be from 0-100." msgstr "" -#: js/musicutils.js:742 -#: js/synthutils.js:76 -#.TRANS: musical instrument -msgid "saxophone" +#: js/blocks/WidgetBlocks.js:140 +msgid "You are adding multiple envelope blocks." msgstr "" -#: js/musicutils.js:743 -#: js/synthutils.js:78 -#.TRANS: musical instrument -msgid "tuba" +#: js/blocks/WidgetBlocks.js:171 +#.TRANS: a filter removes some unwanted components from a signal +msgid "filter" msgstr "" -#: js/musicutils.js:744 -#: js/synthutils.js:80 -#.TRANS: musical instrument -msgid "trumpet" +#: js/blocks/WidgetBlocks.js:181 +#: js/widgets/timbre.js:1818 +#.TRANS: rolloff is the steepness of a change in frequency. +msgid "rolloff" msgstr "" -#: js/musicutils.js:745 -#: js/synthutils.js:82 -#.TRANS: musical instrument -msgid "oboe" +#: js/blocks/WidgetBlocks.js:213 +#.TRANS: rolloff is the steepness of a change in frequency. +msgid "Rolloff value should be either -12, -24, -48, or -96 decibels/octave." msgstr "" -#: js/musicutils.js:746 -#: js/synthutils.js:84 -#.TRANS: musical instrument -msgid "trombone" +#: js/blocks/WidgetBlocks.js:252 +msgid "The Temperament tool is used to define custom tuning." msgstr "" -#: js/musicutils.js:747 -#: js/synthutils.js:100 -#.TRANS: polytone synthesizer -msgid "electronic synth" +#: js/blocks/WidgetBlocks.js:332 +#: js/blocks/WidgetBlocks.js:1573 +#: js/widgets/sampler.js:547 +msgid "Upload a sample and adjust its pitch center." msgstr "" -#: js/musicutils.js:748 -#: js/synthutils.js:102 -#.TRANS: simple monotone synthesizer -msgid "simple 1" +#: js/blocks/WidgetBlocks.js:339 +#.TRANS: the speed at music is should be played. +msgid "sampler" +msgstr "" + +#: js/blocks/WidgetBlocks.js:517 +msgid "The Meter block opens a tool to select strong beats for the meter." msgstr "" -#: js/musicutils.js:749 -msgid "simple 2" +#: js/blocks/WidgetBlocks.js:573 +msgid "The oscilloscope block opens a tool to visualize waveforms." msgstr "" -#: js/musicutils.js:750 -msgid "simple 3" +#: js/blocks/WidgetBlocks.js:578 +msgid "oscilloscope" msgstr "" -#: js/musicutils.js:751 -msgid "simple 4" +#: js/blocks/WidgetBlocks.js:645 +msgid "The Custom mode block opens a tool to explore musical mode (the spacing of the notes in a scale)." msgstr "" -#: js/musicutils.js:753 -#: js/synthutils.js:49 -#.TRANS: brown noise synthesizer -msgid "brown noise" +#: js/blocks/WidgetBlocks.js:651 +#.TRANS: musical mode is the pattern of half-steps in an octave, e.g., Major or Minor modes +msgid "custom mode" msgstr "" -#: js/musicutils.js:754 -#: js/synthutils.js:51 -#.TRANS: pink noise synthesizer -msgid "pink noise" +#: js/blocks/WidgetBlocks.js:700 +msgid "The Tempo block opens a metronome to visualize the beat." msgstr "" -#: js/musicutils.js:756 -#: js/synthutils.js:127 -#: js/rhythmruler.js:1670 -#: js/rhythmruler.js:1928 -#.TRANS: musical instrument -msgid "snare drum" +#: js/blocks/WidgetBlocks.js:762 +msgid "The Arpeggio Widget is used to compose chord sequences." msgstr "" -#: js/musicutils.js:757 -#: js/synthutils.js:129 -#.TRANS: musical instrument -msgid "kick drum" +#: js/blocks/WidgetBlocks.js:837 +msgid "The Pitch drum matrix is used to map pitches to drum sounds." msgstr "" -#: js/musicutils.js:758 -#: js/synthutils.js:131 -#.TRANS: musical instrument -msgid "tom tom" +#: js/blocks/WidgetBlocks.js:842 +#.TRANS: makes a mapping between pitches and drum sounds +msgid "pitch-drum mapper" msgstr "" -#: js/musicutils.js:759 -#: js/synthutils.js:133 -#.TRANS: musical instrument -msgid "floor tom" +#: js/blocks/WidgetBlocks.js:891 +msgid "You must have at least one pitch block and one drum block in the matrix." msgstr "" -#: js/musicutils.js:760 -#: js/synthutils.js:135 -#.TRANS: musical instrument -msgid "bass drum" +#: js/blocks/WidgetBlocks.js:920 +msgid "The Pitch slider tool to is used to generate pitches at selected frequencies." msgstr "" -#: js/musicutils.js:761 -#: js/synthutils.js:137 -#.TRANS: a drum made from an inverted cup -msgid "cup drum" +#: js/blocks/WidgetBlocks.js:925 +#.TRANS: widget to generate pitches using a slider +msgid "pitch slider" msgstr "" -#: js/musicutils.js:762 -#: js/synthutils.js:139 -#.TRANS: musical instrument -msgid "darbuka drum" +#: js/blocks/WidgetBlocks.js:977 +msgid "chromatic keyboard" msgstr "" -#: js/musicutils.js:763 -#: js/synthutils.js:143 -#.TRANS: musical instrument -msgid "hi hat" +#: js/blocks/WidgetBlocks.js:1011 +#: js/blocks/WidgetBlocks.js:1077 +#.TRANS: widget to generate pitches using a slider +msgid "music keyboard" msgstr "" -#: js/musicutils.js:764 -#: js/synthutils.js:145 -#.TRANS: a small metal bell -msgid "ride bell" +#: js/blocks/WidgetBlocks.js:1062 +#: js/blocks/WidgetBlocks.js:1069 +msgid "The Music keyboard block opens a piano keyboard that can be used to create notes." msgstr "" -#: js/musicutils.js:765 -#: js/synthutils.js:147 -#.TRANS: musical instrument -msgid "cow bell" +#: js/blocks/WidgetBlocks.js:1128 +msgid "The Pitch staircase tool to is used to generate pitches from a given ratio." msgstr "" -#: js/musicutils.js:766 -msgid "japanese drum" +#: js/blocks/WidgetBlocks.js:1135 +#.TRANS: generate a progressive sequence of pitches +msgid "pitch staircase" msgstr "" -#: js/musicutils.js:767 -#: js/synthutils.js:153 -#.TRANS: musical instrument -msgid "japanese bell" +#: js/blocks/WidgetBlocks.js:1222 +msgid "The Rhythm Maker block opens a tool to create drum machines." msgstr "" -#: js/musicutils.js:768 -#: js/synthutils.js:149 -#.TRANS: musical instrument -msgid "triangle bell" +#: js/blocks/WidgetBlocks.js:1291 +msgid "G major scale" msgstr "" -#: js/musicutils.js:769 -#: js/synthutils.js:151 -#.TRANS: musical instrument -msgid "finger cymbals" +#: js/blocks/WidgetBlocks.js:1326 +msgid "C major scale" msgstr "" -#: js/musicutils.js:770 -#: js/synthutils.js:155 -#.TRANS: a musically tuned set of bells -msgid "chime" +#: js/blocks/WidgetBlocks.js:1366 +msgid "The Phrase Maker block opens a tool to create musical phrases." msgstr "" -#: js/musicutils.js:771 -#: js/synthutils.js:157 -#.TRANS: a musical instrument -msgid "gong" +#: js/blocks/WidgetBlocks.js:1373 +#.TRANS: assigns pitch to a sequence of beats to generate a melody +msgid "phrase maker" msgstr "" -#: js/musicutils.js:772 -#: js/synthutils.js:159 -#.TRANS: sound effect -msgid "clang" +#: js/blocks/WidgetBlocks.js:1444 +msgid "You must have at least one pitch block and one rhythm block in the matrix." msgstr "" -#: js/musicutils.js:773 -#: js/synthutils.js:161 -#.TRANS: sound effect -msgid "crash" +#: js/blocks/WidgetBlocks.js:1503 +msgid "The Status block opens a tool for inspecting the status of Music Blocks as it is running." msgstr "" -#: js/musicutils.js:774 -#: js/synthutils.js:163 -#.TRANS: sound effect -msgid "bottle" +#: js/blocks/WidgetBlocks.js:1580 +#.TRANS: AI-generated music +msgid "aimusic" msgstr "" -#: js/musicutils.js:775 -#: js/synthutils.js:165 -#.TRANS: sound effect -msgid "clap" +#: js/turtleactions/MeterActions.js:101 +#: js/turtleactions/MeterActions.js:139 +msgid "beats per minute must be greater than" msgstr "" -#: js/musicutils.js:776 -#: js/synthutils.js:167 -#.TRANS: sound effect -msgid "slap" +#: js/turtleactions/MeterActions.js:111 +#: js/turtleactions/MeterActions.js:149 +msgid "maximum" msgstr "" -#: js/musicutils.js:777 -#: js/synthutils.js:169 -#.TRANS: sound effect -msgid "splash" +#: js/turtleactions/MeterActions.js:117 +#: js/turtleactions/MeterActions.js:155 +msgid "beats per minute is" msgstr "" -#: js/musicutils.js:778 -#: js/synthutils.js:171 -#.TRANS: sound effect -msgid "bubbles" +#: js/turtleactions/DictActions.js:75 +#: js/turtleactions/DictActions.js:142 +#: js/turtleactions/DictActions.js:172 +msgid "font" msgstr "" -#: js/musicutils.js:779 -#: js/synthutils.js:173 -#.TRANS: sound effect -msgid "raindrop" +#: js/turtleactions/DictActions.js:255 +msgid "Dictionary with this name does not exist" msgstr "" -#: js/musicutils.js:780 -#: js/synthutils.js:175 -#.TRANS: animal sound effect -msgid "cat" +#: js/turtleactions/DictActions.js:259 +msgid "Key with this name does not exist in " msgstr "" -#: js/musicutils.js:781 -#: js/synthutils.js:177 -#.TRANS: animal sound effect -msgid "cricket" +#: js/turtleactions/DrumActions.js:227 +msgid "Noise Block: Did you mean to use a Note block?" msgstr "" -#: js/musicutils.js:782 -#: js/synthutils.js:179 -#.TRANS: animal sound effect -msgid "dog" +#: js/turtleactions/IntervalsActions.js:113 +msgid "one" msgstr "" -#: js/musicutils.js:784 -#: js/synthutils.js:86 -#.TRANS: musical instrument -msgid "banjo" +#: js/turtleactions/IntervalsActions.js:113 +msgid "two" msgstr "" -#: js/musicutils.js:785 -#: js/synthutils.js:88 -#.TRANS: musical instrument -msgid "koto" +#: js/turtleactions/IntervalsActions.js:113 +msgid "three" msgstr "" -#: js/musicutils.js:786 -#: js/synthutils.js:90 -#.TRANS: musical instrument -msgid "dulcimer" +#: js/turtleactions/IntervalsActions.js:113 +msgid "four" msgstr "" -#: js/musicutils.js:787 -#: js/synthutils.js:92 -#.TRANS: musical instrument -msgid "electric guitar" +#: js/turtleactions/IntervalsActions.js:113 +msgid "five" msgstr "" -#: js/musicutils.js:788 -#: js/synthutils.js:94 -#.TRANS: musical instrument -msgid "bassoon" +#: js/turtleactions/IntervalsActions.js:113 +msgid "six" msgstr "" -#: js/musicutils.js:789 -#: js/synthutils.js:96 -#.TRANS: musical instrument -msgid "celeste" +#: js/turtleactions/IntervalsActions.js:113 +msgid "seven" msgstr "" -#: js/musicutils.js:791 -#: js/musicutils.js:1123 -#: js/musicutils.js:1131 -#: js/temperament.js:650 -#.TRANS: musical temperament -msgid "equal" +#: js/turtleactions/IntervalsActions.js:113 +msgid "eight" msgstr "" -#: js/musicutils.js:793 -#: js/musicutils.js:1125 -#: js/musicutils.js:1133 -#.TRANS: musical temperament -msgid "Pythagorean" +#: js/turtleactions/IntervalsActions.js:113 +msgid "nine" msgstr "" -#: js/musicutils.js:795 -#: js/musicutils.js:1124 -#: js/musicutils.js:1132 -#.TRANS: musical temperament -msgid "just intonation" +#: js/turtleactions/IntervalsActions.js:119 +msgid "a" msgstr "" -#: js/musicutils.js:797 -#: js/musicutils.js:1126 -#: js/musicutils.js:1127 -#: js/musicutils.js:1134 -#: js/musicutils.js:1135 -#.TRANS: musical temperament -msgid "meantone" +#: js/turtleactions/IntervalsActions.js:120 +msgid "below" msgstr "" -#: js/musicutils.js:814 -msgid "major 7th" +#: js/turtleactions/IntervalsActions.js:124 +msgid "above" msgstr "" -#: js/musicutils.js:815 -msgid "minor 7th" +#: js/turtleactions/IntervalsActions.js:131 +msgid "plus" msgstr "" -#: js/musicutils.js:816 -msgid "dominant 7th" +#: js/turtleactions/IntervalsActions.js:139 +msgid " below" msgstr "" -#: js/musicutils.js:817 -msgid "minor-major 7th" +#: js/turtleactions/IntervalsActions.js:257 +msgid "Adding missing pitch number 0." msgstr "" -#: js/musicutils.js:818 -msgid "fully-diminished 7th" +#: js/turtleactions/IntervalsActions.js:265 +msgid "Ignoring pitch numbers less than zero or greater than eleven." msgstr "" -#: js/musicutils.js:819 -msgid "half-diminished 7th" +#: js/turtleactions/IntervalsActions.js:271 +msgid "Ignoring duplicate pitch numbers." msgstr "" -#: js/musicutils.js:4379 -#: js/musicutils.js:4416 -msgid "current" +#: js/turtleactions/ToneActions.js:134 +msgid "Vibrato intensity must be between 1 and 100." msgstr "" -#: js/musicutils.js:4382 -#: js/musicutils.js:4407 -msgid "next" +#: js/turtleactions/ToneActions.js:139 +msgid "Vibrato rate must be greater than 0." msgstr "" -#: js/musicutils.js:4385 -#: js/musicutils.js:4412 -msgid "previous" +#: js/turtleactions/ToneActions.js:192 +#: js/turtleactions/ToneActions.js:265 +#.TRANS: Depth is the intesity of the tremolo or chorus effect. +msgid "Depth is out of range." msgstr "" -#: js/synthutils.js:104 -#.TRANS: simple monotone synthesizer -msgid "simple-2" +#: js/turtleactions/ToneActions.js:301 +msgid "Distortion must be from 0 to 100." msgstr "" -#: js/synthutils.js:106 -#.TRANS: simple monotone synthesizer -msgid "simple-3" +#: js/turtleactions/ToneActions.js:332 +#.TRANS: partials components in a harmonic series +msgid "Partial must be greater than or equal to 0." msgstr "" -#: js/synthutils.js:108 -#.TRANS: simple monotone synthesizer -msgid "simple-4" +#: js/turtleactions/ToneActions.js:378 +#: js/turtleactions/ToneActions.js:417 +#: js/turtleactions/ToneActions.js:456 +#: js/widgets/timbre.js:782 +msgid "Unable to use synth due to existing oscillator" msgstr "" -#: js/synthutils.js:141 -#.TRANS: musical instrument -msgid "taiko" +#: js/turtleactions/ToneActions.js:388 +#: js/turtleactions/ToneActions.js:427 +msgid "The input cannot be negative." msgstr "" -#: js/modewidget.js:86 -#: js/modewidget.js:88 -#: js/modewidget.js:642 -#: js/modewidget.js:644 -#: js/modewidget.js:712 -#: js/modewidget.js:714 -#: js/temperament.js:2078 -#: js/rhythmruler.js:189 -#: js/rhythmruler.js:1410 -#: js/rhythmruler.js:1412 -#: js/rhythmruler.js:1435 -#: js/rhythmruler.js:1437 -#: js/meterwidget.js:89 -#: js/meterwidget.js:91 +#: js/widgets/modewidget.js:86 +#: js/widgets/modewidget.js:88 +#: js/widgets/modewidget.js:642 +#: js/widgets/modewidget.js:644 +#: js/widgets/modewidget.js:712 +#: js/widgets/modewidget.js:714 +#: js/widgets/meterwidget.js:194 +#: js/widgets/meterwidget.js:196 +#: js/widgets/temperament.js:2236 +#: js/widgets/rhythmruler.js:457 +#: js/widgets/rhythmruler.js:1790 +#: js/widgets/rhythmruler.js:1792 +#: js/widgets/rhythmruler.js:1816 +#: js/widgets/rhythmruler.js:1818 msgid "Play all" msgstr "" -#: js/modewidget.js:115 -#: js/pitchstaircase.js:641 -#: js/phrasemaker.js:339 -#: js/pitchdrummatrix.js:94 -#: js/pitchslider.js:125 -#: js/temperament.js:2083 -#: js/musickeyboard.js:530 -#: js/timbre.js:756 -#: js/meterwidget.js:124 -#: js/arpeggio.js:103 +#: js/widgets/modewidget.js:115 +#: js/widgets/meterwidget.js:229 +#: js/widgets/pitchdrummatrix.js:166 +#: js/widgets/pitchslider.js:125 +#: js/widgets/pitchstaircase.js:641 +#: js/widgets/temperament.js:2244 +#: js/widgets/timbre.js:756 +#: js/widgets/arpeggio.js:103 +#: js/widgets/musickeyboard.js:688 +#: js/widgets/phrasemaker.js:550 msgid "Save" msgstr "" -#: js/modewidget.js:121 -#: js/pitchstaircase.js:686 -#: js/phrasemaker.js:356 -#: js/pitchdrummatrix.js:109 -#: js/musickeyboard.js:534 -#: js/rhythmruler.js:269 -#: js/arpeggio.js:118 +#: js/widgets/modewidget.js:121 +#: js/widgets/pitchdrummatrix.js:181 +#: js/widgets/pitchstaircase.js:686 +#: js/widgets/arpeggio.js:118 +#: js/widgets/musickeyboard.js:696 +#: js/widgets/phrasemaker.js:567 +#: js/widgets/rhythmruler.js:601 #.TRANS: clear all subdivisions from the ruler. msgid "Clear" msgstr "" -#: js/modewidget.js:127 +#: js/widgets/modewidget.js:127 msgid "Rotate counter clockwise" msgstr "" -#: js/modewidget.js:133 +#: js/widgets/modewidget.js:133 msgid "Rotate clockwise" msgstr "" -#: js/modewidget.js:139 +#: js/widgets/modewidget.js:139 msgid "Invert" msgstr "" -#: js/modewidget.js:145 -#: js/pitchstaircase.js:678 -#: js/rhythmruler.js:258 -#: js/timbre.js:963 +#: js/widgets/modewidget.js:145 +#: js/widgets/pitchstaircase.js:678 +#: js/widgets/timbre.js:963 +#: js/widgets/rhythmruler.js:578 msgid "Undo" msgstr "" -#: js/modewidget.js:163 +#: js/widgets/modewidget.js:163 #.TRANS: A circle of notes represents the musical mode. msgid "Click in the circle to select notes for the mode." msgstr "" -#: js/modewidget.js:1017 -#: js/pitchstaircase.js:580 -#: js/phrasemaker.js:4855 -#: js/temperament.js:1754 -#: js/rhythmruler.js:1865 -#: js/rhythmruler.js:2081 -#: js/tempo.js:414 +#: js/widgets/modewidget.js:1017 +#: js/widgets/pitchstaircase.js:580 +#: js/widgets/temperament.js:1929 +#: js/widgets/tempo.js:414 +#: js/widgets/phrasemaker.js:5356 +#: js/widgets/rhythmruler.js:2254 +#: js/widgets/rhythmruler.js:2472 msgid "New action block generated!" msgstr "" -#: js/oscilloscope.js:79 -msgid "Zoom In" -msgstr "" - -#: js/oscilloscope.js:88 -msgid "Zoom Out" -msgstr "" - -#: js/pitchstaircase.js:624 -msgid "Play chord" -msgstr "" - -#: js/pitchstaircase.js:632 -msgid "Play scale" +#: js/widgets/meterwidget.js:275 +msgid "Reset" msgstr "" -#: js/pitchstaircase.js:696 -msgid "Click on a note to create a new step." +#: js/widgets/meterwidget.js:301 +msgid "Click in the circle to select strong beats for the meter." msgstr "" -#: js/phrasemaker.js:363 -msgid "Export" +#: js/widgets/oscilloscope.js:79 +msgid "Zoom In" msgstr "" -#: js/phrasemaker.js:370 -msgid "Sort" +#: js/widgets/oscilloscope.js:88 +msgid "Zoom Out" msgstr "" -#: js/phrasemaker.js:373 -#: js/musickeyboard.js:559 -msgid "Add note" +#: js/widgets/pitchdrummatrix.js:356 +#: js/widgets/pitchdrummatrix.js:752 +msgid "Click in the grid to map notes to drums." msgstr "" -#: js/phrasemaker.js:764 -msgid "Click on the table to add notes." +#: js/widgets/pitchslider.js:103 +msgid "Move up" msgstr "" -#: js/phrasemaker.js:2414 -#: js/phrasemaker.js:2543 -msgid "tuplet value" +#: js/widgets/pitchslider.js:114 +msgid "Move down" msgstr "" -#: js/pitchdrummatrix.js:270 -#: js/pitchdrummatrix.js:639 -msgid "Click in the grid to map notes to drums." +#: js/widgets/pitchslider.js:136 +msgid "Click on the slider to create a note block." msgstr "" -#: js/pitchslider.js:103 -msgid "Move up" +#: js/widgets/pitchstaircase.js:624 +msgid "Play chord" msgstr "" -#: js/pitchslider.js:114 -msgid "Move down" +#: js/widgets/pitchstaircase.js:632 +msgid "Play scale" msgstr "" -#: js/pitchslider.js:136 -msgid "Click on the slider to create a note block." +#: js/widgets/pitchstaircase.js:696 +msgid "Click on a note to create a new step." msgstr "" -#: js/temperament.js:215 +#: js/widgets/temperament.js:321 msgid "back to 2:1 octave space" msgstr "" -#: js/temperament.js:323 +#: js/widgets/temperament.js:447 msgid "edit" msgstr "" -#: js/temperament.js:330 -#: js/temperament.js:332 -#: js/temperament.js:1336 -#: js/temperament.js:1338 +#: js/widgets/temperament.js:454 +#: js/widgets/temperament.js:456 +#: js/widgets/temperament.js:1493 +#: js/widgets/temperament.js:1495 msgid "close" msgstr "" -#: js/temperament.js:423 -#: js/temperament.js:736 -#: js/temperament.js:743 -#: js/temperament.js:845 -#: js/temperament.js:935 -#: js/temperament.js:942 -#: js/temperament.js:1015 -#: js/temperament.js:1284 -#: js/temperament.js:1354 -#: js/temperament.js:1430 +#: js/widgets/temperament.js:552 +#: js/widgets/temperament.js:877 +#: js/widgets/temperament.js:884 +#: js/widgets/temperament.js:986 +#: js/widgets/temperament.js:1080 +#: js/widgets/temperament.js:1087 +#: js/widgets/temperament.js:1160 +#: js/widgets/temperament.js:1433 +#: js/widgets/temperament.js:1511 +#: js/widgets/temperament.js:1596 msgid "done" msgstr "" -#: js/temperament.js:477 -#: js/temperament.js:482 -#: js/temperament.js:918 +#: js/widgets/temperament.js:610 +#: js/widgets/temperament.js:615 +#: js/widgets/temperament.js:1063 msgid "ratio" msgstr "" -#: js/temperament.js:483 +#: js/widgets/temperament.js:616 msgid "interval" msgstr "" -#: js/temperament.js:611 +#: js/widgets/temperament.js:744 msgid "non scalar" msgstr "" -#: js/temperament.js:650 +#: js/widgets/temperament.js:787 msgid "ratios" msgstr "" -#: js/temperament.js:650 +#: js/widgets/temperament.js:787 msgid "arbitrary" msgstr "" -#: js/temperament.js:719 +#: js/widgets/temperament.js:860 msgid "number of divisions" msgstr "" -#: js/temperament.js:741 -#: js/temperament.js:858 -#: js/temperament.js:940 -#: js/temperament.js:1033 +#: js/widgets/temperament.js:882 +#: js/widgets/temperament.js:999 +#: js/widgets/temperament.js:1085 +#: js/widgets/temperament.js:1178 msgid "preview" msgstr "" -#: js/temperament.js:788 +#: js/widgets/temperament.js:929 msgid "The Number of divisions is too large." msgstr "" -#: js/temperament.js:921 +#: js/widgets/temperament.js:1066 msgid "recursion" msgstr "" -#: js/temperament.js:1450 +#: js/widgets/temperament.js:1616 msgid "The octave ratio has changed. This changes temperament significantly." msgstr "" -#: js/temperament.js:2087 +#: js/widgets/temperament.js:2248 msgid "Table" msgstr "" -#: js/temperament.js:2185 +#: js/widgets/temperament.js:2356 msgid "Add pitches" msgstr "" -#: js/musickeyboard.js:570 -msgid "Metronome" +#: js/widgets/tempo.js:78 +#: js/widgets/tempo.js:97 +#: js/widgets/tempo.js:99 +#: js/widgets/aiwidget.js:134 +#: js/widgets/aiwidget.js:136 +#: js/widgets/rhythmruler.js:681 +#: js/widgets/rhythmruler.js:683 +#: js/widgets/rhythmruler.js:1864 +#: js/widgets/rhythmruler.js:1866 +#: js/widgets/sampler.js:180 +#: js/widgets/sampler.js:182 +msgid "Pause" msgstr "" -#: js/musickeyboard.js:1296 -#: plugins/rodi.rtp:193 -msgid "duration" -msgstr "διάρκεια" +#: js/widgets/tempo.js:113 +msgid "Save tempo" +msgstr "" -#: js/musickeyboard.js:2840 -msgid "New action blocks generated!" +#: js/widgets/tempo.js:144 +msgid "speed up" msgstr "" -#: js/musickeyboard.js:2841 -msgid "New action block generated" +#: js/widgets/tempo.js:150 +msgid "slow down" msgstr "" -#: js/musickeyboard.js:2984 -#: js/musickeyboard.js:2992 -msgid "MIDI device present." +#: js/widgets/tempo.js:194 +msgid "Adjust the tempo with the buttons." msgstr "" -#: js/musickeyboard.js:2995 -msgid "No MIDI device found." +#: js/widgets/tempo.js:261 +msgid "Please enter a number between 30 and 1000" msgstr "" -#: js/musickeyboard.js:3000 -msgid "Failed to get MIDI access in browser." +#: js/widgets/tempo.js:268 +#: js/widgets/tempo.js:271 +msgid "The beats per minute must be between 30 and 1000." msgstr "" -#: js/rhythmruler.js:202 -msgid "Save rhythms" +#: js/widgets/tempo.js:287 +msgid "The beats per minute must be below 1000." msgstr "" -#: js/rhythmruler.js:222 -msgid "Save drum machine" +#: js/widgets/tempo.js:303 +msgid "The beats per minute must be above 30" msgstr "" -#: js/rhythmruler.js:263 -#.TRANS: user can tap out a rhythm by clicking on a ruler. -msgid "Tap a rhythm" +#: js/widgets/timbre.js:766 +msgid "Synthesizer" msgstr "" -#: js/rhythmruler.js:342 -#: js/rhythmruler.js:344 -#: js/rhythmruler.js:1481 -#: js/rhythmruler.js:1483 -#: js/sampler.js:110 -#: js/sampler.js:112 -#: js/tempo.js:78 -#: js/tempo.js:97 -#: js/tempo.js:99 -msgid "Pause" +#: js/widgets/timbre.js:789 +msgid "Oscillator" msgstr "" -#: js/rhythmruler.js:478 -msgid "Click on the ruler to divide it." +#: js/widgets/timbre.js:840 +msgid "Envelope" msgstr "" -#: js/rhythmruler.js:603 -#: js/rhythmruler.js:605 -#: js/rhythmruler.js:804 -#: js/rhythmruler.js:806 -#: js/rhythmruler.js:1386 -#: js/rhythmruler.js:1388 -msgid "tap a rhythm" +#: js/widgets/timbre.js:886 +#: planet/js/GlobalTag.js:50 +#.TRANS: On the Planet, we use labels to tag projects. +msgid "Effects" msgstr "" -#: js/rhythmruler.js:1084 -msgid "Maximum value of 256 has been exceeded." +#: js/widgets/timbre.js:904 +msgid "Filter" msgstr "" -#: js/sampler.js:137 -msgid "Warning: Sample is bigger than 1MB." +#: js/widgets/timbre.js:946 +msgid "Add filter" msgstr "" -#: js/sampler.js:142 -msgid "Upload failed: Sample is not a .wav file." +#: js/widgets/timbre.js:987 +msgid "Click on buttons to open the timbre design tools." msgstr "" -#: js/sampler.js:164 -msgid "A new sample block was generated." +#: js/widgets/timbre.js:1273 +msgid "harmonicity" msgstr "" -#: js/sampler.js:255 -msgid "Upload sample" +#: js/widgets/timbre.js:1340 +#: js/widgets/timbre.js:1406 +msgid "modulation index" msgstr "" -#: js/sampler.js:306 -msgid "Save sample" +#: js/widgets/timbre.js:1484 +msgid "vibrato amount" msgstr "" -#: js/sampler.js:697 -#.TRANS: The reference tone is a sound used for comparison. -msgid "reference tone" +#: js/widgets/timbre.js:1919 +msgid "Filter already present." msgstr "" -#: js/tempo.js:113 -msgid "Save tempo" +#: js/widgets/timbre.js:2322 +msgid "delay (MS)" msgstr "" -#: js/tempo.js:144 -msgid "speed up" +#: js/widgets/timbre.js:2507 +msgid "distortion amount" msgstr "" -#: js/tempo.js:150 -msgid "slow down" +#: js/widgets/aiwidget.js:180 +#: js/widgets/sampler.js:227 +msgid "Warning: Sample is bigger than 1MB." msgstr "" -#: js/tempo.js:194 -msgid "Adjust the tempo with the buttons." +#: js/widgets/aiwidget.js:539 +msgid "New start block generated" msgstr "" -#: js/tempo.js:261 -msgid "Please enter a number between 30 and 1000" +#: js/widgets/aiwidget.js:541 +msgid "MIDI loading. This may take some time depending upon the number of notes in the track" msgstr "" -#: js/tempo.js:268 -#: js/tempo.js:271 -msgid "The beats per minute must be between 30 and 1000." +#: js/widgets/aiwidget.js:551 +#: js/widgets/sampler.js:254 +msgid "Upload failed: Sample is not a .wav file." msgstr "" -#: js/tempo.js:287 -msgid "The beats per minute must be below 1000." +#: js/widgets/aiwidget.js:679 +#: js/widgets/sampler.js:432 +msgid "Save sample" msgstr "" -#: js/tempo.js:303 -msgid "The beats per minute must be above 30" +#: js/widgets/aiwidget.js:701 +msgid "AI Music" msgstr "" -#: js/timbre.js:766 -msgid "Synthesizer" +#: js/widgets/arpeggio.js:239 +msgid "Click in the grid to add steps to the arpeggio." msgstr "" -#: js/timbre.js:789 -msgid "Oscillator" +#: js/widgets/help.js:95 +#: js/widgets/help.js:125 +#: js/widgets/help.js:146 +#: js/widgets/help.js:158 +#: js/widgets/help.js:376 +#: js/widgets/help.js:391 +msgid "Take a tour" msgstr "" -#: js/timbre.js:840 -msgid "Envelope" +#: js/widgets/musickeyboard.js:725 +#: js/widgets/phrasemaker.js:584 +msgid "Add note" msgstr "" -#: js/timbre.js:886 -#: js/GlobalTag.js:50 -#.TRANS: On the Planet, we use labels to tag projects. -msgid "Effects" +#: js/widgets/musickeyboard.js:744 +msgid "Metronome" +msgstr "" + +#: js/widgets/musickeyboard.js:1549 +#: plugins/rodi.rtp:193 +msgid "duration" +msgstr "διάρκεια" + +#: js/widgets/musickeyboard.js:3179 +msgid "New action blocks generated" +msgstr "" + +#: js/widgets/musickeyboard.js:3180 +msgid "New action block generated" msgstr "" -#: js/timbre.js:904 -msgid "Filter" +#: js/widgets/musickeyboard.js:3365 +#: js/widgets/musickeyboard.js:3373 +msgid "MIDI device present." msgstr "" -#: js/timbre.js:946 -msgid "Add filter" +#: js/widgets/musickeyboard.js:3376 +msgid "No MIDI device found." msgstr "" -#: js/timbre.js:987 -msgid "Click on buttons to open the timbre design tools." +#: js/widgets/musickeyboard.js:3386 +msgid "Failed to get MIDI access in browser." msgstr "" -#: js/timbre.js:1273 -msgid "harmonicity" +#: js/widgets/phrasemaker.js:574 +msgid "Export" msgstr "" -#: js/timbre.js:1340 -#: js/timbre.js:1406 -msgid "modulation index" +#: js/widgets/phrasemaker.js:581 +msgid "Sort" msgstr "" -#: js/timbre.js:1484 -msgid "vibrato amount" +#: js/widgets/phrasemaker.js:975 +msgid "Click on the table to add notes." msgstr "" -#: js/timbre.js:1919 -msgid "Filter already present." +#: js/widgets/phrasemaker.js:2677 +#: js/widgets/phrasemaker.js:2819 +msgid "tuplet value" msgstr "" -#: js/timbre.js:2322 -msgid "delay (MS)" +#: js/widgets/rhythmruler.js:486 +msgid "Save rhythms" msgstr "" -#: js/timbre.js:2507 -msgid "distortion amount" +#: js/widgets/rhythmruler.js:512 +msgid "Save drum machine" msgstr "" -#: js/meterwidget.js:170 -msgid "Reset" +#: js/widgets/rhythmruler.js:589 +#.TRANS: user can tap out a rhythm by clicking on a ruler. +msgid "Tap a rhythm" msgstr "" -#: js/meterwidget.js:196 -msgid "Click in the circle to select strong beats for the meter." +#: js/widgets/rhythmruler.js:817 +msgid "Click on the ruler to divide it." msgstr "" -#: js/arpeggio.js:239 -msgid "Click in the grid to add steps to the arpeggio." +#: js/widgets/rhythmruler.js:950 +#: js/widgets/rhythmruler.js:952 +#: js/widgets/rhythmruler.js:1152 +#: js/widgets/rhythmruler.js:1154 +#: js/widgets/rhythmruler.js:1765 +#: js/widgets/rhythmruler.js:1767 +msgid "tap a rhythm" msgstr "" -#: js/ProjectStorage.js:243 -msgid "anonymous" +#: js/widgets/rhythmruler.js:1459 +msgid "Maximum value of 256 has been exceeded." msgstr "" -#: js/GlobalCard.js:68 -msgid "Share" +#: js/widgets/sampler.js:237 +msgid "Recording started..." msgstr "" -#: js/GlobalCard.js:74 -msgid "Flags" +#: js/widgets/sampler.js:245 +msgid "Recording complete..." msgstr "" -#: js/LocalCard.js:36 -msgid "View published project" +#: js/widgets/sampler.js:283 +msgid "A new sample block was generated." msgstr "" -#: js/LocalCard.js:42 -msgid "Publish project" +#: js/widgets/sampler.js:378 +msgid "Upload sample" msgstr "" -#: js/LocalCard.js:51 -msgid "Edit project" +#: js/widgets/sampler.js:399 +msgid "Warning: Your sample cannot be loaded because it is >1MB." msgstr "" -#: js/LocalCard.js:52 -msgid "Delete project" +#: js/widgets/sampler.js:448 +msgid "Toggle Mic" msgstr "" -#: js/LocalCard.js:53 -msgid "Download project" +#: js/widgets/sampler.js:458 +msgid "Playback" msgstr "" -#: js/LocalCard.js:55 -msgid "Duplicate project" +#: js/widgets/sampler.js:979 +#.TRANS: The reference tone is a sound used for comparison. +msgid "reference tone" msgstr "" -#: js/GlobalTag.js:28 +#: planet/js/GlobalTag.js:28 #.TRANS: On the Planet, we use labels to tag projects. msgid "All Projects" msgstr "" -#: js/GlobalTag.js:30 -#: js/StringHelper.js:37 +#: planet/js/GlobalTag.js:30 +#: planet/js/StringHelper.js:37 #.TRANS: On the Planet, we use labels to tag projects. msgid "My Projects" msgstr "" -#: js/GlobalTag.js:32 +#: planet/js/GlobalTag.js:32 #.TRANS: On the Planet, we use labels to tag projects. msgid "Examples" msgstr "" -#: js/GlobalTag.js:34 +#: planet/js/GlobalTag.js:34 #.TRANS: On the Planet, we use labels to tag projects. msgid "Music" msgstr "" -#: js/GlobalTag.js:36 +#: planet/js/GlobalTag.js:36 #.TRANS: On the Planet, we use labels to tag projects. msgid "Art" msgstr "" -#: js/GlobalTag.js:38 +#: planet/js/GlobalTag.js:38 #.TRANS: On the Planet, we use labels to tag projects. msgid "Math" msgstr "" -#: js/GlobalTag.js:40 +#: planet/js/GlobalTag.js:40 #.TRANS: On the Planet, we use labels to tag projects. msgid "Interactive" msgstr "" -#: js/GlobalTag.js:42 +#: planet/js/GlobalTag.js:42 #.TRANS: On the Planet, we use labels to tag projects. msgid "Design" msgstr "" -#: js/GlobalTag.js:44 +#: planet/js/GlobalTag.js:44 #.TRANS: On the Planet, we use labels to tag projects. msgid "Game" msgstr "" -#: js/GlobalTag.js:46 +#: planet/js/GlobalTag.js:46 #.TRANS: On the Planet, we use labels to tag projects. msgid "Media" msgstr "" -#: js/GlobalTag.js:48 +#: planet/js/GlobalTag.js:48 #.TRANS: On the Planet, we use labels to tag projects. msgid "Sensors" msgstr "" -#: js/GlobalTag.js:52 +#: planet/js/GlobalTag.js:52 #.TRANS: On the Planet, we use labels to tag projects. msgid "Code Snippet" msgstr "" -#: js/helper.js:149 -#: js/StringHelper.js:49 -msgid "Show more tags" +#: planet/js/LocalCard.js:36 +msgid "View published project" msgstr "" -#: js/helper.js:150 -msgid "Show fewer tags" +#: planet/js/LocalCard.js:42 +msgid "Publish project" +msgstr "" + +#: planet/js/LocalCard.js:51 +msgid "Edit project" +msgstr "" + +#: planet/js/LocalCard.js:52 +msgid "Delete project" +msgstr "" + +#: planet/js/LocalCard.js:53 +msgid "Download project" +msgstr "" + +#: planet/js/LocalCard.js:55 +msgid "Duplicate project" +msgstr "" + +#: planet/js/ProjectStorage.js:243 +msgid "anonymous" +msgstr "" + +#: planet/js/SaveInterface.js:34 +msgid "Open in Music Blocks" +msgstr "" + +#: planet/js/SaveInterface.js:35 +msgid "Open in Turtle Blocks" +msgstr "" + +#: planet/js/GlobalCard.js:68 +msgid "Share" +msgstr "" + +#: planet/js/GlobalCard.js:74 +msgid "Flags" +msgstr "" + +#: planet/js/GlobalPlanet.js:35 +msgid "No results found." +msgstr "" + +#: planet/js/GlobalPlanet.js:51 +msgid "Remix of" +msgstr "" + +#: planet/js/GlobalPlanet.js:509 +msgid "Cannot connect to server" msgstr "" -#: js/ProjectViewer.js:30 +#: planet/js/ProjectViewer.js:30 msgid "Error: Report could not be submitted. Try again later." msgstr "" -#: js/ProjectViewer.js:31 +#: planet/js/ProjectViewer.js:31 msgid "Thank you for reporting this project. A moderator will review the project shortly, to verify violation of the Sugar Labs Code of Conduct." msgstr "" -#: js/ProjectViewer.js:32 -#: js/StringHelper.js:62 -#: js/StringHelper.js:64 -#: js/StringHelper.js:68 +#: planet/js/ProjectViewer.js:32 +#: planet/js/StringHelper.js:62 +#: planet/js/StringHelper.js:64 +#: planet/js/StringHelper.js:68 msgid "Report Project" msgstr "" -#: js/ProjectViewer.js:33 -#: js/StringHelper.js:63 +#: planet/js/ProjectViewer.js:33 +#: planet/js/StringHelper.js:63 msgid "Project Reported" msgstr "" -#: js/ProjectViewer.js:34 +#: planet/js/ProjectViewer.js:34 msgid "Report description required" msgstr "" -#: js/ProjectViewer.js:35 +#: planet/js/ProjectViewer.js:35 msgid "Report description too long" msgstr "" -#: js/StringHelper.js:30 +#: planet/js/Publisher.js:30 +msgid "Feature unavailable - cannot connect to server. Reload Music Blocks to try again." +msgstr "" + +#: planet/js/Publisher.js:220 +#: planet/js/Publisher.js:237 +msgid "This field is required" +msgstr "" + +#: planet/js/Publisher.js:227 +msgid "Title too long" +msgstr "" + +#: planet/js/Publisher.js:244 +msgid "Description too long" +msgstr "" + +#: planet/js/Publisher.js:341 +msgid "Server Error" +msgstr "" + +#: planet/js/Publisher.js:341 +msgid "Try Again" +msgstr "" + +#: planet/js/StringHelper.js:30 msgid "Planet" msgstr "" -#: js/StringHelper.js:31 +#: planet/js/StringHelper.js:31 msgid "Close Planet" msgstr "" -#: js/StringHelper.js:32 +#: planet/js/StringHelper.js:32 msgid "Open project from file" msgstr "" -#: js/StringHelper.js:34 +#: planet/js/StringHelper.js:34 msgid "Local" msgstr "" -#: js/StringHelper.js:35 +#: planet/js/StringHelper.js:35 msgid "Global" msgstr "" -#: js/StringHelper.js:36 +#: planet/js/StringHelper.js:36 msgid "Search for a project" msgstr "" -#: js/StringHelper.js:38 +#: planet/js/StringHelper.js:38 msgid "Publish Project" msgstr "" -#: js/StringHelper.js:40 +#: planet/js/StringHelper.js:40 msgid "Tags (max 5)" msgstr "" -#: js/StringHelper.js:41 -#: js/StringHelper.js:61 +#: planet/js/StringHelper.js:41 +#: planet/js/StringHelper.js:61 msgid "Description" msgstr "" -#: js/StringHelper.js:42 -#: js/StringHelper.js:67 +#: planet/js/StringHelper.js:42 +#: planet/js/StringHelper.js:67 msgid "Submit" msgstr "" -#: js/StringHelper.js:43 -#: js/StringHelper.js:47 +#: planet/js/StringHelper.js:43 +#: planet/js/StringHelper.js:47 msgid "Cancel" msgstr "" -#: js/StringHelper.js:44 +#: planet/js/StringHelper.js:44 msgid "Delete \\"\\"?" msgstr "" -#: js/StringHelper.js:45 +#: planet/js/StringHelper.js:45 msgid "Permanently delete project \\"\\"?" msgstr "" -#: js/StringHelper.js:48 +#: planet/js/StringHelper.js:48 msgid "Explore Projects" msgstr "" -#: js/StringHelper.js:50 +#: planet/js/StringHelper.js:49 +#: planet/js/helper.js:149 +msgid "Show more tags" +msgstr "" + +#: planet/js/StringHelper.js:50 msgid "Most recent" msgstr "" -#: js/StringHelper.js:51 +#: planet/js/StringHelper.js:51 msgid "Most liked" msgstr "" -#: js/StringHelper.js:52 +#: planet/js/StringHelper.js:52 msgid "Most downloaded" msgstr "" -#: js/StringHelper.js:53 +#: planet/js/StringHelper.js:53 msgid "A-Z" msgstr "" -#: js/StringHelper.js:54 +#: planet/js/StringHelper.js:54 msgid "Sort by" msgstr "" -#: js/StringHelper.js:55 +#: planet/js/StringHelper.js:55 msgid "Load More Projects" msgstr "" -#: js/StringHelper.js:56 +#: planet/js/StringHelper.js:56 msgid "Last Updated" msgstr "" -#: js/StringHelper.js:57 +#: planet/js/StringHelper.js:57 msgid "Creation Date" msgstr "" -#: js/StringHelper.js:58 +#: planet/js/StringHelper.js:58 msgid "Number of Downloads:" msgstr "" -#: js/StringHelper.js:59 +#: planet/js/StringHelper.js:59 msgid "Number of Likes:" msgstr "" -#: js/StringHelper.js:60 +#: planet/js/StringHelper.js:60 msgid "Tags:" msgstr "" -#: js/StringHelper.js:65 +#: planet/js/StringHelper.js:65 msgid "Report projects which violate the Sugar Labs Code of Conduct." msgstr "" -#: js/StringHelper.js:66 +#: planet/js/StringHelper.js:66 msgid "Reason for reporting project" msgstr "" -#: js/StringHelper.js:70 +#: planet/js/StringHelper.js:70 msgid "Download as File" msgstr "" -#: js/GlobalPlanet.js:35 -msgid "No results found." -msgstr "" - -#: js/GlobalPlanet.js:51 -msgid "Remix of" -msgstr "" - -#: js/GlobalPlanet.js:509 -msgid "Cannot connect to server" -msgstr "" - -#: js/Publisher.js:30 -msgid "Feature unavailable - cannot connect to server. Reload Music Blocks to try again." -msgstr "" - -#: js/Publisher.js:218 -#: js/Publisher.js:235 -msgid "This field is required" -msgstr "" - -#: js/Publisher.js:225 -msgid "Title too long" +#: planet/js/helper.js:150 +msgid "Show fewer tags" msgstr "" -#: js/Publisher.js:242 -msgid "Description too long" +#: plugins/accelerometer.rtp:48 +msgid "motion x" msgstr "" -#: js/Publisher.js:339 -msgid "Server Error" +#: plugins/accelerometer.rtp:56 +msgid "motion y" msgstr "" -#: js/Publisher.js:339 -msgid "Try Again" +#: plugins/accelerometer.rtp:64 +msgid "motion z" msgstr "" -#: js/SaveInterface.js:34 -msgid "Open in Music Blocks" +#: plugins/facebook.rtp:27 +msgid "publish" msgstr "" -#: js/SaveInterface.js:35 -msgid "Open in Turtle Blocks" +#: plugins/maths.rtp:62 +msgid "power" msgstr "" -#: plugins/weather.rtp:68 -#: plugins/weather.rtp:97 -msgid "Days ahead must be in the range of -1 to 5." +#: plugins/maths.rtp:62 +msgid "base" msgstr "" -#: plugins/weather.rtp:122 -msgid "forecast" +#: plugins/maths.rtp:62 +msgid "exp" msgstr "" -#: plugins/weather.rtp:123 -#: plugins/weather.rtp:137 -#: plugins/weather.rtp:150 -msgid "city" +#: plugins/maths.rtp:99 +msgid "floor" msgstr "" -#: plugins/weather.rtp:124 -#: plugins/weather.rtp:138 -#: plugins/weather.rtp:151 -msgid "day" +#: plugins/maths.rtp:104 +msgid "ceiling" msgstr "" -#: plugins/weather.rtp:136 -msgid "high" +#: plugins/maths.rtp:109 +msgid "to degrees" msgstr "" -#: plugins/weather.rtp:149 -msgid "low" +#: plugins/maths.rtp:114 +msgid "to radians" msgstr "" #: plugins/nutrition.rtp:104 @@ -9458,45 +9867,6 @@ msgstr "" msgid "water" msgstr "" -#: plugins/maths.rtp:62 -#: plugins/examples.rtp:93 -msgid "power" -msgstr "" - -#: plugins/maths.rtp:62 -#: plugins/examples.rtp:93 -msgid "base" -msgstr "" - -#: plugins/maths.rtp:62 -#: plugins/examples.rtp:93 -msgid "exp" -msgstr "" - -#: plugins/maths.rtp:99 -#: plugins/examples.rtp:130 -msgid "floor" -msgstr "" - -#: plugins/maths.rtp:104 -#: plugins/examples.rtp:135 -msgid "ceiling" -msgstr "" - -#: plugins/maths.rtp:109 -#: plugins/examples.rtp:140 -msgid "to degrees" -msgstr "" - -#: plugins/maths.rtp:114 -#: plugins/examples.rtp:145 -msgid "to radians" -msgstr "" - -#: plugins/facebook.rtp:27 -msgid "publish" -msgstr "" - #: plugins/rodi.rtp:172 msgid "blink" msgstr "" @@ -9525,18 +9895,66 @@ msgstr "" msgid "move" msgstr "" -#: plugins/accelerometer.rtp:48 -msgid "motion x" +#: plugins/weather.rtp:68 +#: plugins/weather.rtp:97 +msgid "Days ahead must be in the range of -1 to 5." msgstr "" -#: plugins/accelerometer.rtp:56 -msgid "motion y" +#: plugins/weather.rtp:122 +msgid "forecast" msgstr "" -#: plugins/accelerometer.rtp:64 -msgid "motion z" +#: plugins/weather.rtp:123 +#: plugins/weather.rtp:137 +#: plugins/weather.rtp:150 +msgid "city" +msgstr "" + +#: plugins/weather.rtp:124 +#: plugins/weather.rtp:138 +#: plugins/weather.rtp:151 +msgid "day" +msgstr "" + +#: plugins/weather.rtp:136 +msgid "high" +msgstr "" + +#: plugins/weather.rtp:149 +msgid "low" msgstr "" +#: js/toolbar.js:70 + +#: js/toolbar.js:130 + +#: js/toolbar.js:194 + +#: js/toolbar.js:249 + +#~msgid "Toggle JavaScript Editor" +#~msgstr "" + +#: js/EnsembleBlocks.js:643 + +#~msgid "The Turrle pitch block returns the current pitch number being played by the specified turtle." +#~msgstr "" + +#: js/PitchActions.js:88 + +#~msgid "The Scalar Step Block must be used inside of a Note Block." +#~msgstr "" + +#: js/PitchActions.js:107 + +#~msgid "The Scalar Step Block must be preceded by a Pitch Block." +#~msgstr "" + +#: js/musickeyboard.js:2840 + +#~msgid "New action blocks generated!" +#~msgstr "" + #: js/toolbar.js:110 #: js/toolbar.js:204 @@ -9877,11 +10295,6 @@ msgstr "" #~msgid "The Time block returns the number of seconds that the program has been running." #~msgstr "" -#: js/help.js:95 - -#~msgid "Take a tour" -#~msgstr "" - #: js/GlobalCard.js:48 #~msgid "More Details" @@ -12780,11 +13193,6 @@ msgstr "" #~msgid "The save-stack button saves a stack onto a custom palette. It appears after a \"long press\" on a stack." #~msgstr "" -#: js/musicutils.js:254 - -#~msgid "Custom" -#~msgstr "" - #: js/basicblocks.js:4785 #~msgid "Rhythm" diff --git a/po/en.po b/po/en.po index ff85321029..fdaa18350b 100644 --- a/po/en.po +++ b/po/en.po @@ -2133,276 +2133,131 @@ #: js/planetInterface.js:104 #: js/planetInterface.js:104 #: js/planetInterface.js:104 -msgid "project undefined" -msgstr "" - -#: js/logo.js:61 -msgid "Not a valid pitch name" -msgstr "" - -#: js/logo.js:507 -#: js/ProgramBlocks.js:258 -#: js/ProgramBlocks.js:427 -msgid "You must select a file." -msgstr "" - -#: js/logo.js:1184 -#: js/turtles.js:118 -#: js/turtle-painter.js:1192 -#: js/turtle-painter.js:1193 -#: js/block.js:1463 -#: js/lilypond.js:757 -#: js/lilypond.js:921 -#: js/lilypond.js:959 -#: js/ActionBlocks.js:1223 -#: js/ProgramBlocks.js:1267 -msgid "start" -msgstr "" - -#: js/logo.js:1696 -msgid "Playback is ready." -msgstr "" - -#: js/blocks.js:1011 -#: js/blocks.js:3427 -#: js/blocks.js:3428 -#: js/blocks.js:3653 -#: js/blocks.js:4012 -#: js/blocks.js:4205 -#: js/blocks.js:5343 -#: js/blocks.js:6474 -#: js/palette.js:527 -#: js/palette.js:536 -#: js/palette.js:545 -#: js/palette.js:554 -#: js/palette.js:1131 -#: js/palette.js:1142 -#: js/palette.js:1153 -#: js/palette.js:1164 -#: js/palette.js:1183 -#: js/rubrics.js:529 -#: js/macros.js:170 -#: js/macros.js:266 -#: js/macros.js:267 -#: js/macros.js:276 -#: js/macros.js:828 -#: js/block.js:1449 -#: js/block.js:4164 -#: js/block.js:4182 -#: js/block.js:4193 -#: js/turtledefs.js:128 -#: js/turtledefs.js:230 -#: js/ActionBlocks.js:254 -#: js/ActionBlocks.js:307 -#: js/ActionBlocks.js:617 -#: js/ActionBlocks.js:716 -#: js/ActionBlocks.js:961 -#: js/ActionBlocks.js:1049 -#: js/ActionBlocks.js:1322 -#: js/ActionBlocks.js:1325 -#: js/ActionBlocks.js:1337 -#: js/ActionBlocks.js:1404 -#: js/MeterBlocks.js:715 -#: js/MeterBlocks.js:768 -#: js/MeterBlocks.js:831 -#: js/MeterBlocks.js:892 -#: js/phrasemaker.js:4412 -#: js/musickeyboard.js:2647 -#: js/rhythmruler.js:1928 -#: js/rhythmruler.js:1935 -#: js/rhythmruler.js:2119 -#: js/rhythmruler.js:2126 -msgid "action" -msgstr "" - -#: js/blocks.js:1205 -#: js/blocks.js:3380 -#: js/blocks.js:3770 -#: js/blocks.js:3801 -#: js/blocks.js:3850 -#: js/blocks.js:3885 -#: js/blocks.js:6497 -#: js/palette.js:509 -#: js/palette.js:638 -#: js/palette.js:1107 -#: js/BoxesBlocks.js:282 -#: js/BoxesBlocks.js:285 -#: js/BoxesBlocks.js:405 -#: js/BoxesBlocks.js:594 -msgid "box" +#: js/SaveInterface.js:59 +#: js/SaveInterface.js:61 +#: js/SaveInterface.js:93 +msgid "Music Blocks Project" msgstr "" -#: js/blocks.js:1680 -msgid "Consider breaking this stack into parts." +#: js/SaveInterface.js:63 +msgid "This project was created in Music Blocks" msgstr "" -#: js/blocks.js:2408 -#: js/palette.js:653 -#: js/MediaBlocks.js:602 -msgid "open file" +#: js/SaveInterface.js:67 +msgid "Music Blocks is a Free/Libre Software application." msgstr "" -#: js/blocks.js:2415 -#: js/blocks.js:2423 -#: js/activity.js:1875 -msgid "audio file" +#: js/SaveInterface.js:69 +msgid "The source code can be accessed at" msgstr "" -#: js/blocks.js:2536 -#: js/blocks.js:3147 -#: js/block.js:3543 -msgid "on2" -msgstr "on" - -#: js/blocks.js:2538 -#: js/blocks.js:3149 -#: js/block.js:3545 -msgid "off" +#: js/SaveInterface.js:72 +msgid "For more information, please consult the" msgstr "" -#: js/blocks.js:2543 -#: js/blocks.js:3154 -#: js/palette.js:618 -#: js/block.js:3466 -#: js/BooleanBlocks.js:77 -#: js/BooleanBlocks.js:167 -#: js/BooleanBlocks.js:251 -#: js/BooleanBlocks.js:335 -#: js/BooleanBlocks.js:433 -#: js/BooleanBlocks.js:539 -#: js/BooleanBlocks.js:640 -#: js/BooleanBlocks.js:741 -#: js/BooleanBlocks.js:847 -#: js/BooleanBlocks.js:948 -#: js/BooleanBlocks.js:1033 -#: js/SensorsBlocks.js:910 -msgid "true" +#: js/SaveInterface.js:76 +#: js/turtledefs.js:795 +msgid "Music Blocks Guide" msgstr "" -#: js/blocks.js:2545 -#: js/blocks.js:3156 -#: js/block.js:3466 -#: js/BooleanBlocks.js:79 -#: js/BooleanBlocks.js:169 -#: js/BooleanBlocks.js:253 -#: js/BooleanBlocks.js:337 -#: js/BooleanBlocks.js:435 -#: js/BooleanBlocks.js:541 -#: js/BooleanBlocks.js:642 -#: js/BooleanBlocks.js:743 -#: js/BooleanBlocks.js:849 -#: js/BooleanBlocks.js:950 -#: js/SensorsBlocks.js:912 -msgid "false" +#: js/SaveInterface.js:83 +msgid "Alternatively, open the file in Music Blocks using the Load project button." msgstr "" -#: js/blocks.js:3183 -#: js/palette.js:574 -#: js/MediaBlocks.js:892 -#: js/MediaBlocks.js:963 -msgid "text" +#: js/SaveInterface.js:85 +msgid "Project Code" msgstr "" -#: js/blocks.js:3379 -#: js/palette.js:641 -#: js/palette.js:642 -#: js/BoxesBlocks.js:514 -msgid "store in box" +#: js/SaveInterface.js:87 +msgid "This code stores data about the blocks in a project." msgstr "" -#: js/blocks.js:3384 -#: js/blocks.js:3824 -#: js/blocks.js:3859 -#: js/blocks.js:3894 -#: js/blocks.js:5773 -#: js/blocks.js:5794 -#: js/BoxesBlocks.js:772 -msgid "box1" +#: js/SaveInterface.js:89 +msgid "Show" msgstr "" -#: js/blocks.js:3386 -#: js/blocks.js:3826 -#: js/blocks.js:3861 -#: js/blocks.js:3896 -#: js/blocks.js:5775 -#: js/blocks.js:5796 -#: js/BoxesBlocks.js:663 -msgid "box2" +#: js/SaveInterface.js:91 +msgid "Hide" msgstr "" -#: js/blocks.js:4058 -#: js/palette.js:639 -#: js/palette.js:644 -#: js/palette.js:1043 -#: js/BoxesBlocks.js:591 -msgid "store in" +#: js/SaveInterface.js:131 +#: js/SaveInterface.js:204 +#: js/SaveInterface.js:262 +#: js/SaveInterface.js:389 +#: js/SaveInterface.js:417 +#: js/activity.js:4884 +#: planet/js/ProjectStorage.js:27 +#: planet/js/GlobalPlanet.js:467 +#: planet/js/GlobalPlanet.js:469 +#: planet/js/GlobalPlanet.js:495 +#.TRANS: default project title when saving as Lilypond +msgid "My Project" msgstr "" -#: js/blocks.js:4058 -#: js/EnsembleBlocks.js:391 -#: js/EnsembleBlocks.js:402 -#: js/MediaBlocks.js:746 -#: js/ProgramBlocks.js:390 -#: js/ProgramBlocks.js:495 -#: js/ProgramBlocks.js:658 -#: js/BoxesBlocks.js:595 -#: js/PitchBlocks.js:656 -#: js/PitchBlocks.js:932 -#: js/PitchBlocks.js:1827 -#: js/ToneBlocks.js:1025 -#: js/DictBlocks.js:215 -#: js/DictBlocks.js:289 -msgid "name" +#: js/SaveInterface.js:197 +#: planet/js/SaveInterface.js:58 +msgid "No description provided" msgstr "" -#: js/blocks.js:4058 -#: js/RhythmBlocks.js:1130 -#: js/BoxesBlocks.js:75 -#: js/BoxesBlocks.js:595 -#: js/HeapBlocks.js:544 -#: js/DictBlocks.js:289 -#: js/DictBlocks.js:430 -msgid "value" +#: js/SaveInterface.js:332 +msgid "Your recording is in progress." msgstr "" -#: js/blocks.js:4907 -msgid "There is no block selected." +#: js/SaveInterface.js:401 +#.TRANS: File name prompt for save as Lilypond +msgid "File name" msgstr "" -#: js/blocks.js:5002 -#: js/MediaBlocks.js:888 -msgid "show" +#: js/SaveInterface.js:403 +#: planet/js/StringHelper.js:39 +#.TRANS: Project title prompt for save as Lilypond +msgid "Project title" msgstr "" -#: js/blocks.js:5005 -#: js/MediaBlocks.js:803 -#.TRANS: Avatar is the image used to determine the appearance of the mouse. -msgid "avatar" +#: js/SaveInterface.js:405 +#.TRANS: Project title prompt for save as Lilypond +msgid "Project author" msgstr "" -#: js/blocks.js:5008 -#: js/ToneBlocks.js:1010 -#: js/sampler.js:693 -#.TRANS: The sound sample that the user uploads. -msgid "sample" +#: js/SaveInterface.js:407 +#.TRANS: MIDI prompt for save as Lilypond +msgid "Include MIDI output?" msgstr "" -#: js/turtles.js:874 -msgid "Grid" +#: js/SaveInterface.js:409 +#.TRANS: Guitar prompt for save as Lilypond +msgid "Include guitar tablature output?" msgstr "" -#: js/turtles.js:891 -#: js/turtledefs.js:626 -msgid "Clean" +#: js/SaveInterface.js:411 +#.TRANS: Lilypond is a scripting language for generating sheet music +msgid "Save as Lilypond" msgstr "" -#: js/turtles.js:912 -#: js/turtledefs.js:632 -msgid "Collapse" +#: js/SaveInterface.js:426 +#: js/blocks/EnsembleBlocks.js:75 +#: js/blocks/EnsembleBlocks.js:154 +#: js/blocks/EnsembleBlocks.js:216 +#: js/blocks/EnsembleBlocks.js:302 +#: js/blocks/EnsembleBlocks.js:348 +#: js/blocks/EnsembleBlocks.js:389 +#: js/blocks/EnsembleBlocks.js:441 +#: js/blocks/EnsembleBlocks.js:490 +#: js/blocks/EnsembleBlocks.js:536 +#: js/blocks/EnsembleBlocks.js:583 +#: js/blocks/EnsembleBlocks.js:637 +#: js/blocks/EnsembleBlocks.js:753 +#: js/blocks/EnsembleBlocks.js:840 +#: js/blocks/EnsembleBlocks.js:899 +#: js/blocks/EnsembleBlocks.js:942 +#: js/blocks/EnsembleBlocks.js:1212 +#: js/blocks/EnsembleBlocks.js:1280 +#.TRANS: default project author when saving as Lilypond +msgid "Mr. Mouse" msgstr "" -#: js/turtles.js:940 -msgid "Expand" +#: js/SaveInterface.js:573 +msgid "The Lilypond code is copied to clipboard. You can paste it here: " msgstr "" #: js/languagebox.js:198 @@ -2413,6933 +2268,7487 @@ msgstr "" msgid "Music Blocks is already set to this language." msgstr "" -#: js/piemenus.js:200 -#: js/musicutils.js:808 -#: js/musicutils.js:824 -#: js/phrasemaker.js:1672 -#: js/musickeyboard.js:2041 -#: js/sampler.js:544 -#.TRANS: double sharp is a music term related to pitch -msgid "double sharp" +#: js/planetInterface.js:131 +msgid "project undefined" msgstr "" -#: js/piemenus.js:201 -#: js/PitchBlocks.js:1510 -#: js/PitchActions.js:580 -#: js/musicutils.js:806 -#: js/musicutils.js:825 -#: js/phrasemaker.js:1673 -#: js/musickeyboard.js:2042 -#: js/sampler.js:545 -#.TRANS: sharp is a half-step up in pitch -#.TRANS: sharp is a music term related to pitch -msgid "sharp" +#: js/rubrics.js:523 +#: js/turtledefs.js:119 +#: js/turtledefs.js:221 +#: js/blocks/RhythmBlockPaletteBlocks.js:52 +#: js/blocks/RhythmBlockPaletteBlocks.js:234 +#: js/blocks/ProgramBlocks.js:745 +#: js/widgets/rhythmruler.js:2057 +#: js/widgets/rhythmruler.js:2064 +#: js/widgets/rhythmruler.js:2133 +#: js/widgets/rhythmruler.js:2140 +#: js/widgets/rhythmruler.js:2219 +#.TRANS: an arrangement of notes based on duration +msgid "rhythm" msgstr "" -#: js/piemenus.js:202 -#: js/musicutils.js:804 -#: js/musicutils.js:826 -#: js/phrasemaker.js:1674 -#: js/musickeyboard.js:2043 -#: js/sampler.js:546 -#.TRANS: natural is a music term related to pitch -msgid "natural" +#: js/rubrics.js:524 +#: js/turtledefs.js:121 +#: js/turtledefs.js:223 +#: js/block-verbose.js:2622 +#: js/block.js:2550 +#: js/blocks/IntervalsBlocks.js:63 +#: js/blocks/SensorsBlocks.js:178 +#: js/blocks/PitchBlocks.js:1839 +#: js/blocks/PitchBlocks.js:1853 +#: js/widgets/musickeyboard.js:1935 +#: js/widgets/phrasemaker.js:1036 +#.TRANS: pitch number +#.TRANS: pitch number +#.TRANS: we specify pitch in terms of a name and an octave. The name can be CDEFGAB or Do Re Mi Fa Sol La Ti. Octave is a number between 1 and 8. +msgid "pitch" msgstr "" -#: js/piemenus.js:203 -#: js/PitchBlocks.js:1469 -#: js/PitchActions.js:583 -#: js/musicutils.js:802 -#: js/musicutils.js:827 -#: js/phrasemaker.js:1675 -#: js/musickeyboard.js:2044 -#: js/sampler.js:547 -#.TRANS: flat is a half-step down in pitch -#.TRANS: flat is a music term related to pitch -msgid "flat" +#: js/rubrics.js:525 +#: js/turtledefs.js:123 +#: js/turtledefs.js:225 +msgid "tone" msgstr "" -#: js/piemenus.js:204 -#: js/musicutils.js:800 -#: js/musicutils.js:828 -#: js/phrasemaker.js:1676 -#: js/musickeyboard.js:2045 -#: js/sampler.js:548 -#.TRANS: double flat is a music term related to pitch -msgid "double flat" +#: js/rubrics.js:526 +#: js/lilypond.js:605 +#: js/lilypond.js:904 +#: js/lilypond.js:910 +#: js/lilypond.js:948 +msgid "mouse" msgstr "" -#: js/piemenus.js:2861 -#: js/PitchBlocks.js:1357 -#: js/musicutils.js:627 -#.TRANS: unison means the note is the same as the current note -#.TRANS: unison is a music term related to intervals -msgid "unison" +#: js/rubrics.js:527 +#: js/turtledefs.js:132 +#: js/turtledefs.js:234 +#: js/widgets/phrasemaker.js:1040 +msgid "pen" msgstr "" -#: js/piemenus.js:3015 -#: js/piemenus.js:3088 -#: js/musicutils.js:635 -#: js/musicutils.js:810 -#: js/musicutils.js:912 -#.TRANS: major is a music term related to intervals and mode -msgid "major" +#: js/rubrics.js:528 +#: js/turtledefs.js:133 +#: js/turtledefs.js:235 +#: js/blocks/NumberBlocks.js:981 +#: js/blocks/PitchBlocks.js:1717 +#: js/blocks/PitchBlocks.js:1758 +msgid "number" msgstr "" -#: js/piemenus.js:3015 -#: js/piemenus.js:3088 -#: js/musicutils.js:653 -#.TRANS: modal scale for music -msgid "ionian" +#: js/rubrics.js:529 +#: js/turtledefs.js:127 +#: js/turtledefs.js:229 +msgid "flow" msgstr "" -#: js/piemenus.js:3017 -#: js/piemenus.js:3092 -#: js/musicutils.js:633 -#: js/musicutils.js:811 -#: js/musicutils.js:909 -#.TRANS: minor is a music term related to intervals and mode -msgid "minor" +#: js/rubrics.js:530 +#: js/turtledefs.js:128 +#: js/turtledefs.js:230 +#: js/block-verbose.js:1609 +#: js/block-verbose.js:4559 +#: js/block-verbose.js:4577 +#: js/block-verbose.js:4588 +#: js/block.js:1573 +#: js/block.js:4483 +#: js/block.js:4501 +#: js/block.js:4512 +#: js/blocks.js:1018 +#: js/blocks.js:3491 +#: js/blocks.js:3492 +#: js/blocks.js:3717 +#: js/blocks.js:4076 +#: js/blocks.js:4269 +#: js/blocks.js:5432 +#: js/blocks.js:6563 +#: js/macros.js:170 +#: js/macros.js:266 +#: js/macros.js:267 +#: js/macros.js:276 +#: js/macros.js:828 +#: js/palette.js:527 +#: js/palette.js:536 +#: js/palette.js:545 +#: js/palette.js:554 +#: js/palette.js:1129 +#: js/palette.js:1140 +#: js/palette.js:1151 +#: js/palette.js:1162 +#: js/palette.js:1181 +#: js/blocks/ActionBlocks.js:254 +#: js/blocks/ActionBlocks.js:307 +#: js/blocks/ActionBlocks.js:617 +#: js/blocks/ActionBlocks.js:716 +#: js/blocks/ActionBlocks.js:961 +#: js/blocks/ActionBlocks.js:1049 +#: js/blocks/ActionBlocks.js:1322 +#: js/blocks/ActionBlocks.js:1325 +#: js/blocks/ActionBlocks.js:1337 +#: js/blocks/ActionBlocks.js:1404 +#: js/blocks/MeterBlocks.js:715 +#: js/blocks/MeterBlocks.js:768 +#: js/blocks/MeterBlocks.js:831 +#: js/blocks/MeterBlocks.js:892 +#: js/widgets/musickeyboard.js:2986 +#: js/widgets/phrasemaker.js:4913 +#: js/widgets/rhythmruler.js:2319 +#: js/widgets/rhythmruler.js:2326 +#: js/widgets/rhythmruler.js:2511 +#: js/widgets/rhythmruler.js:2518 +msgid "action" msgstr "" -#: js/piemenus.js:3017 -#: js/piemenus.js:3092 -#: js/musicutils.js:663 -#.TRANS: modal scale for music -msgid "aeolian" +#: js/rubrics.js:531 +#: js/turtledefs.js:136 +#: js/turtledefs.js:238 +msgid "sensors" msgstr "" -#: js/piemenus.js:3407 -msgid "Duplicate" +#: js/rubrics.js:532 +#: js/turtledefs.js:135 +#: js/turtledefs.js:237 +#: js/blocks/MediaBlocks.js:930 +msgid "media" msgstr "" -#: js/piemenus.js:3408 -#: js/turtledefs.js:534 -msgid "Extract" +#: js/rubrics.js:533 +msgid "mice" msgstr "" -#: js/piemenus.js:3409 -msgid "Move to trash" +#: js/toolbar.js:48 +#: js/toolbar.js:109 +msgid "About Music Blocks" msgstr "" -#: js/piemenus.js:3410 -#: js/timbre.js:968 -#: js/StringHelper.js:69 -msgid "Close" +#: js/toolbar.js:49 +#: js/toolbar.js:110 +#: js/toolbar.js:175 +#: js/toolbar.js:231 +#: js/turtledefs.js:445 +#: js/turtledefs.js:482 +#: js/activity.js:2660 +#: js/activity.js:2671 +#: js/activity.js:2902 +#: js/widgets/modewidget.js:77 +#: js/widgets/meterwidget.js:185 +#: js/widgets/pitchdrummatrix.js:147 +#: js/widgets/pitchdrummatrix.js:687 +#: js/widgets/pitchdrummatrix.js:689 +#: js/widgets/pitchdrummatrix.js:741 +#: js/widgets/pitchdrummatrix.js:743 +#: js/widgets/pitchdrummatrix.js:758 +#: js/widgets/pitchdrummatrix.js:760 +#: js/widgets/pitchdrummatrix.js:789 +#: js/widgets/pitchdrummatrix.js:791 +#: js/widgets/pitchstaircase.js:121 +#: js/widgets/temperament.js:610 +#: js/widgets/temperament.js:613 +#: js/widgets/temperament.js:673 +#: js/widgets/temperament.js:675 +#: js/widgets/temperament.js:2017 +#: js/widgets/temperament.js:2019 +#: js/widgets/tempo.js:84 +#: js/widgets/tempo.js:86 +#: js/widgets/timbre.js:432 +#: js/widgets/timbre.js:434 +#: js/widgets/timbre.js:465 +#: js/widgets/timbre.js:467 +#: js/widgets/timbre.js:746 +#: js/widgets/aiwidget.js:647 +#: js/widgets/aiwidget.js:654 +#: js/widgets/aiwidget.js:656 +#: js/widgets/arpeggio.js:90 +#: js/widgets/arpeggio.js:547 +#: js/widgets/arpeggio.js:549 +#: js/widgets/arpeggio.js:644 +#: js/widgets/arpeggio.js:646 +#: js/widgets/musickeyboard.js:676 +#: js/widgets/musickeyboard.js:872 +#: js/widgets/musickeyboard.js:874 +#: js/widgets/musickeyboard.js:953 +#: js/widgets/musickeyboard.js:955 +#: js/widgets/phrasemaker.js:513 +#: js/widgets/phrasemaker.js:523 +#: js/widgets/phrasemaker.js:525 +#: js/widgets/phrasemaker.js:4304 +#: js/widgets/phrasemaker.js:4528 +#: js/widgets/phrasemaker.js:4533 +#: js/widgets/phrasemaker.js:4535 +#: js/widgets/phrasemaker.js:4650 +#: js/widgets/rhythmruler.js:637 +#: js/widgets/rhythmruler.js:639 +#: js/widgets/rhythmruler.js:653 +#: js/widgets/rhythmruler.js:655 +#: js/widgets/sampler.js:162 +#: js/widgets/sampler.js:164 +#: js/widgets/sampler.js:363 +msgid "Play" msgstr "" -#: js/piemenus.js:3416 -msgid "Save stack" +#: js/toolbar.js:50 +#: js/toolbar.js:111 +#: js/toolbar.js:176 +#: js/toolbar.js:232 +#: js/turtledefs.js:451 +#: js/turtledefs.js:488 +#: js/activity.js:2679 +#: js/widgets/modewidget.js:99 +#: js/widgets/modewidget.js:101 +#: js/widgets/meterwidget.js:206 +#: js/widgets/meterwidget.js:208 +#: js/widgets/pitchdrummatrix.js:674 +#: js/widgets/pitchdrummatrix.js:676 +#: js/widgets/temperament.js:2002 +#: js/widgets/temperament.js:2004 +#: js/widgets/arpeggio.js:534 +#: js/widgets/arpeggio.js:536 +#: js/widgets/phrasemaker.js:534 +#: js/widgets/phrasemaker.js:536 +msgid "Stop" msgstr "" -#: js/piemenus.js:3420 -#: js/toolbar.js:60 -#: js/toolbar.js:120 -#: js/toolbar.js:185 -#: js/toolbar.js:240 -#: js/turtledefs.js:752 -msgid "Help" +#: js/toolbar.js:51 +#: js/toolbar.js:112 +#: js/toolbar.js:177 +#: js/toolbar.js:233 +#: js/turtledefs.js:498 +msgid "Record" msgstr "" -#: js/piemenus.js:3762 -msgid "You have chosen key " +#: js/toolbar.js:52 +#: js/toolbar.js:53 +msgid "Full screen" msgstr "" -#: js/piemenus.js:3766 -msgid " for your pitch preview." +#: js/toolbar.js:54 +#: js/toolbar.js:115 +#: js/toolbar.js:180 +#: js/toolbar.js:236 +#: js/turtledefs.js:504 +msgid "Toggle Fullscreen" +msgstr "" + +#: js/toolbar.js:55 +#: js/toolbar.js:116 +#: js/toolbar.js:181 +#: js/toolbar.js:237 +#: js/turtledefs.js:510 +#: planet/js/StringHelper.js:33 +msgid "New project" +msgstr "" + +#: js/toolbar.js:56 +#: js/toolbar.js:117 +#: js/toolbar.js:182 +#: js/toolbar.js:238 +#: js/turtledefs.js:516 +msgid "Load project from file" +msgstr "" + +#: js/toolbar.js:57 +#: js/toolbar.js:118 +#: js/toolbar.js:119 +#: js/toolbar.js:183 +#: js/toolbar.js:239 +#: js/turtledefs.js:541 +#: js/turtledefs.js:550 +#: js/turtledefs.js:571 +msgid "Save project" +msgstr "" + +#: js/toolbar.js:58 +#: js/toolbar.js:77 +#: js/toolbar.js:79 +#: js/toolbar.js:138 +#: js/toolbar.js:147 +#: js/toolbar.js:149 +#: js/toolbar.js:184 +#: js/toolbar.js:202 +#: js/toolbar.js:204 +#: js/toolbar.js:240 +#: js/toolbar.js:258 +#: js/toolbar.js:260 +msgid "Save project as HTML" +msgstr "" + +#: js/toolbar.js:59 +#: js/toolbar.js:120 +#: js/toolbar.js:185 +#: js/toolbar.js:241 +msgid "Find and share projects" +msgstr "" + +#: js/toolbar.js:60 +#: js/toolbar.js:121 +#: js/toolbar.js:186 +#: js/toolbar.js:242 +msgid "Offline. Sharing is unavailable" +msgstr "" + +#: js/toolbar.js:61 +#: js/toolbar.js:122 +#: js/toolbar.js:187 +#: js/toolbar.js:243 +msgid "Auxiliary menu" +msgstr "" + +#: js/toolbar.js:62 +#: js/toolbar.js:123 +#: js/toolbar.js:188 +#: js/toolbar.js:244 +#: js/turtledefs.js:752 +#: js/piemenus.js:3423 +msgid "Help" +msgstr "" + +#: js/toolbar.js:63 +#: js/toolbar.js:124 +#: js/toolbar.js:189 +#: js/toolbar.js:245 +msgid "Run slowly" +msgstr "" + +#: js/toolbar.js:64 +#: js/toolbar.js:125 +#: js/toolbar.js:190 +#: js/toolbar.js:246 +#: js/turtledefs.js:682 +msgid "Run step by step" +msgstr "" + +#: js/toolbar.js:65 +#: js/toolbar.js:126 +#: js/toolbar.js:191 +#: js/toolbar.js:247 +#: js/turtledefs.js:689 +msgid "Display statistics" +msgstr "" + +#: js/toolbar.js:66 +#: js/toolbar.js:127 +#: js/toolbar.js:192 +#: js/toolbar.js:248 +msgid "Load plugin" +msgstr "" + +#: js/toolbar.js:67 +#: js/toolbar.js:128 +#: js/toolbar.js:193 +#: js/toolbar.js:249 +#: js/turtledefs.js:696 +msgid "Delete plugin" +msgstr "" + +#: js/toolbar.js:68 +#: js/toolbar.js:129 +#: js/toolbar.js:194 +#: js/toolbar.js:250 +msgid "Enable horizontal scrolling" +msgstr "" + +#: js/toolbar.js:69 +#: js/toolbar.js:130 +#: js/toolbar.js:195 +#: js/toolbar.js:251 +msgid "Disable horizontal scrolling" +msgstr "" + +#: js/toolbar.js:70 +#: js/toolbar.js:131 +#: js/toolbar.js:196 +#: js/toolbar.js:252 +#: planet/js/LocalCard.js:54 +#: planet/js/StringHelper.js:71 +msgid "Merge with current project" +msgstr "" + +#: js/toolbar.js:71 +#: js/toolbar.js:132 +msgid "Set Pitch Preview" +msgstr "" + +#: js/toolbar.js:72 +#: js/toolbar.js:133 +#: js/toolbar.js:197 +#: js/toolbar.js:253 +msgid "JavaScript Editor" +msgstr "" + +#: js/toolbar.js:73 +#: js/toolbar.js:134 +#: js/toolbar.js:198 +#: js/toolbar.js:254 +#: js/turtledefs.js:724 +msgid "Restore" +msgstr "" + +#: js/toolbar.js:74 +#: js/toolbar.js:135 +#: js/toolbar.js:199 +#: js/toolbar.js:255 +msgid "Switch to beginner mode" +msgstr "" + +#: js/toolbar.js:75 +#: js/toolbar.js:136 +#: js/toolbar.js:200 +#: js/toolbar.js:256 +msgid "Switch to advanced mode" +msgstr "" + +#: js/toolbar.js:76 +#: js/toolbar.js:137 +#: js/toolbar.js:146 +#: js/toolbar.js:201 +#: js/toolbar.js:257 +#: js/turtledefs.js:738 +msgid "Select language" +msgstr "" + +#: js/toolbar.js:78 +#: js/toolbar.js:81 +#: js/toolbar.js:140 +#: js/turtledefs.js:579 +msgid "Save mouse artwork as PNG" +msgstr "" + +#: js/toolbar.js:80 +#: js/toolbar.js:139 +#: js/turtledefs.js:575 +msgid "Save mouse artwork as SVG" +msgstr "" + +#: js/toolbar.js:82 +#: js/toolbar.js:141 +#: js/turtledefs.js:583 +msgid "Save music as WAV" +msgstr "" + +#: js/toolbar.js:83 +#: js/toolbar.js:142 +#: js/turtledefs.js:587 +msgid "Save sheet music as ABC" +msgstr "" + +#: js/toolbar.js:84 +#: js/toolbar.js:143 +#: js/turtledefs.js:591 +msgid "Save sheet music as Lilypond" +msgstr "" + +#: js/toolbar.js:85 +msgid "Save sheet music as MusicXML" +msgstr "" + +#: js/toolbar.js:86 +#: js/toolbar.js:144 +#: js/toolbar.js:152 +#: js/toolbar.js:207 +#: js/toolbar.js:263 +#: js/turtledefs.js:562 +#: js/turtledefs.js:595 +msgid "Save block artwork as SVG" +msgstr "" + +#: js/toolbar.js:87 +#: js/toolbar.js:145 +#: js/toolbar.js:153 +#: js/toolbar.js:208 +#: js/toolbar.js:264 +#: js/turtles.js:911 +msgid "Confirm" +msgstr "" + +#: js/toolbar.js:88 +#: js/toolbar.js:154 +#: js/toolbar.js:209 +#: js/toolbar.js:265 +msgid "English (United States)" +msgstr "" + +#: js/toolbar.js:89 +#: js/toolbar.js:155 +#: js/toolbar.js:210 +#: js/toolbar.js:266 +msgid "English (United Kingdom)" +msgstr "" + +#: js/toolbar.js:90 +#: js/toolbar.js:156 +#: js/toolbar.js:211 +#: js/toolbar.js:267 +msgid "日本語" +msgstr "" + +#: js/toolbar.js:91 +msgid "한국어" +msgstr "" + +#: js/toolbar.js:92 +#: js/toolbar.js:158 +#: js/toolbar.js:213 +#: js/toolbar.js:269 +msgid "español" +msgstr "" + +#: js/toolbar.js:93 +#: js/toolbar.js:159 +#: js/toolbar.js:214 +#: js/toolbar.js:270 +msgid "português" +msgstr "" + +#: js/toolbar.js:94 +#: js/toolbar.js:160 +#: js/toolbar.js:215 +#: js/toolbar.js:271 +msgid "にほんご" +msgstr "" + +#: js/toolbar.js:95 +#: js/toolbar.js:161 +#: js/toolbar.js:216 +#: js/toolbar.js:272 +msgid "中文" +msgstr "" + +#: js/toolbar.js:96 +#: js/toolbar.js:162 +#: js/toolbar.js:217 +#: js/toolbar.js:273 +msgid "ภาษาไทย" +msgstr "" + +#: js/toolbar.js:97 +#: js/toolbar.js:163 +#: js/toolbar.js:218 +#: js/toolbar.js:274 +msgid "aymara" +msgstr "" + +#: js/toolbar.js:98 +#: js/toolbar.js:164 +#: js/toolbar.js:219 +#: js/toolbar.js:275 +msgid "quechua" +msgstr "" + +#: js/toolbar.js:99 +#: js/toolbar.js:165 +#: js/toolbar.js:220 +#: js/toolbar.js:276 +msgid "guarani" +msgstr "" + +#: js/toolbar.js:100 +#: js/toolbar.js:166 +#: js/toolbar.js:221 +#: js/toolbar.js:277 +msgid "हिंदी" +msgstr "" + +#: js/toolbar.js:101 +#: js/toolbar.js:168 +#: js/toolbar.js:222 +#: js/toolbar.js:279 +msgid "igbo" +msgstr "" + +#: js/toolbar.js:102 +#: js/toolbar.js:169 +#: js/toolbar.js:223 +#: js/toolbar.js:280 +msgid "عربى" +msgstr "" + +#: js/toolbar.js:103 +#: js/toolbar.js:167 +#: js/toolbar.js:224 +#: js/toolbar.js:278 +msgid "తెలుగు" +msgstr "" + +#: js/toolbar.js:104 +#: js/toolbar.js:170 +#: js/toolbar.js:225 +#: js/toolbar.js:281 +msgid "עִברִית" +msgstr "" + +#: js/toolbar.js:113 +#: js/toolbar.js:114 +#: js/toolbar.js:178 +#: js/toolbar.js:179 +#: js/toolbar.js:234 +#: js/toolbar.js:235 +msgid "Full Screen" +msgstr "" + +#: js/toolbar.js:148 +#: js/toolbar.js:151 +#: js/toolbar.js:203 +#: js/toolbar.js:206 +#: js/toolbar.js:259 +#: js/toolbar.js:262 +#: js/turtledefs.js:558 +msgid "Save turtle artwork as PNG" +msgstr "" + +#: js/toolbar.js:150 +#: js/toolbar.js:205 +#: js/toolbar.js:261 +#: js/turtledefs.js:554 +msgid "Save turtle artwork as SVG" +msgstr "" + +#: js/toolbar.js:157 +#: js/toolbar.js:212 +#: js/toolbar.js:268 +msgid "한국인" +msgstr "" + +#: js/toolbar.js:174 +#: js/toolbar.js:230 +msgid "About Turtle Blocks" +msgstr "" + +#: js/toolbar.js:446 +#: js/toolbar.js:457 +#: js/toolbar.js:497 +msgid "Turtle Wrap Off" +msgstr "" + +#: js/toolbar.js:466 +#: js/toolbar.js:506 +msgid "Turtle Wrap On" +msgstr "" + +#: js/turtle-painter.js:1192 +#: js/turtle-painter.js:1193 +#: js/turtles.js:118 +#: js/block-verbose.js:1623 +#: js/block.js:1587 +#: js/lilypond.js:749 +#: js/lilypond.js:913 +#: js/lilypond.js:951 +#: js/logo.js:1184 +#: js/blocks/ActionBlocks.js:1223 +#: js/blocks/ProgramBlocks.js:1267 +msgid "start" +msgstr "" + +#: js/turtledefs.js:40 +#.TRANS: put the URL to the guide here, e.g., https://github.com/sugarlabs/turtleblocksjs/tree/master/guide/README.md +msgid "guide url" +msgstr "" + +#: js/turtledefs.js:85 +#: js/turtledefs.js:437 +msgid "Turtle Blocks is a Logo-inspired turtle that draws colorful pictures with snap-together visual-programming blocks." +msgstr "" + +#: js/turtledefs.js:118 +#: js/turtledefs.js:220 +msgid "search" +msgstr "" + +#: js/turtledefs.js:120 +#: js/turtledefs.js:222 +#: js/blocks/MeterBlocks.js:1343 +#: js/blocks/WidgetBlocks.js:522 +#.TRANS: musical meter (time signature), e.g., 4:4 +msgid "meter" +msgstr "" + +#: js/turtledefs.js:122 +#: js/turtledefs.js:224 +msgid "intervals" +msgstr "" + +#: js/turtledefs.js:124 +#: js/turtledefs.js:226 +msgid "ornament" +msgstr "" + +#: js/turtledefs.js:125 +#: js/turtledefs.js:227 +#: js/blocks/VolumeBlocks.js:362 +#: js/blocks/VolumeBlocks.js:502 +#: js/blocks/VolumeBlocks.js:545 +msgid "volume" +msgstr "" + +#: js/turtledefs.js:126 +#: js/turtledefs.js:228 +#: js/block-verbose.js:1700 +#: js/block-verbose.js:2626 +#: js/block.js:1664 +#: js/block.js:2554 +#: js/lilypond.js:732 +#: js/lilypond.js:897 +#: js/lilypond.js:941 +#: js/palette.js:577 +#: js/blocks/RhythmBlocks.js:766 +#: js/blocks/DrumBlocks.js:477 +#: js/blocks/VolumeBlocks.js:502 +#: js/widgets/phrasemaker.js:1038 +msgid "drum" +msgstr "" + +#: js/turtledefs.js:129 +#: js/turtledefs.js:231 +msgid "boxes" +msgstr "" + +#: js/turtledefs.js:130 +#: js/turtledefs.js:232 +msgid "widgets" +msgstr "" + +#: js/turtledefs.js:131 +#: js/turtledefs.js:233 +#: js/widgets/phrasemaker.js:1039 +msgid "graphics" +msgstr "" + +#: js/turtledefs.js:134 +#: js/turtledefs.js:236 +msgid "boolean" +msgstr "" + +#: js/turtledefs.js:137 +#: js/turtledefs.js:239 +#: js/blocks/HeapBlocks.js:59 +#: js/widgets/status.js:147 +msgid "heap" +msgstr "" + +#: js/turtledefs.js:138 +#: js/turtledefs.js:240 +#: js/blocks/DictBlocks.js:142 +#: js/blocks/ProgramBlocks.js:495 +msgid "dictionary" +msgstr "" + +#: js/turtledefs.js:139 +#: js/turtledefs.js:241 +msgid "ensemble" +msgstr "" + +#: js/turtledefs.js:140 +#: js/turtledefs.js:242 +msgid "extras" +msgstr "" + +#: js/turtledefs.js:142 +#: js/turtledefs.js:244 +#.TRANS: program as in computer program +#.TRANS: program as in computer program +msgid "program" +msgstr "" + +#: js/turtledefs.js:143 +#: js/turtledefs.js:245 +msgid "my blocks" +msgstr "" + +#: js/turtledefs.js:185 +#: js/turtledefs.js:281 +msgid "artwork" +msgstr "" + +#: js/turtledefs.js:185 +#: js/turtledefs.js:281 +msgid "logic" +msgstr "" + +#: js/turtledefs.js:185 +#: js/turtledefs.js:281 +msgid "music" +msgstr "" + +#: js/turtledefs.js:187 +#: js/turtledefs.js:463 +msgid "Music Blocks is a collection of tools for exploring fundamental musical concepts in a fun way." +msgstr "" + +#: js/turtledefs.js:436 +msgid "Welcome to Turtle Blocks" +msgstr "" + +#: js/turtledefs.js:438 +#: js/turtledefs.js:465 +#: js/turtledefs.js:774 +#: js/turtledefs.js:805 +msgid "The current version is" +msgstr "" + +#: js/turtledefs.js:446 +#: js/turtledefs.js:483 +msgid "Click the run button to run the project in fast mode." +msgstr "" + +#: js/turtledefs.js:452 +msgid "Stop the turtle." +msgstr "" + +#: js/turtledefs.js:454 +#: js/turtledefs.js:491 +msgid "You can also type Alt-S to stop." +msgstr "" + +#: js/turtledefs.js:462 +#: js/widgets/help.js:333 +msgid "Welcome to Music Blocks" +msgstr "" + +#: js/turtledefs.js:472 +#: js/widgets/help.js:334 +msgid "Meet Mr. Mouse!" +msgstr "" + +#: js/turtledefs.js:473 +msgid "Mr Mouse is our Music Blocks conductor." +msgstr "" + +#: js/turtledefs.js:475 +msgid "Mr Mouse encourages you to explore Music Blocks." +msgstr "" + +#: js/turtledefs.js:477 +msgid "Let us start our tour!" +msgstr "" + +#: js/turtledefs.js:489 +msgid "Stop the music (and the mice)." +msgstr "" + +#: js/turtledefs.js:499 +msgid "Record your project as video." +msgstr "" + +#: js/turtledefs.js:505 +msgid "Toggle Fullscreen mode." +msgstr "" + +#: js/turtledefs.js:511 +msgid "Initialize a new project." +msgstr "" + +#: js/turtledefs.js:517 +msgid "You can also load projects from the file system." +msgstr "" + +#: js/turtledefs.js:522 +#: planet/js/StringHelper.js:46 +msgid "Delete" +msgstr "" + +#: js/turtledefs.js:523 +msgid "To delete a block, just right-click on it, then you will be able to see the delete option" +msgstr "" + +#: js/turtledefs.js:528 +#: js/activity.js:2649 +#: planet/js/LocalCard.js:31 +msgid "Copy" +msgstr "" + +#: js/turtledefs.js:529 +msgid "To copy a block, just right-click on it, then you will be able to see the copy option" +msgstr "" + +#: js/turtledefs.js:534 +#: js/piemenus.js:3411 +msgid "Extract" +msgstr "" + +#: js/turtledefs.js:535 +msgid "To extract a block, just right-click on it, then you will be able to see the extract option" +msgstr "" + +#: js/turtledefs.js:542 +#: js/turtledefs.js:552 +#: js/turtledefs.js:573 +msgid "Save your project to a file." +msgstr "" + +#: js/turtledefs.js:549 +#: js/turtledefs.js:570 +msgid "save" +msgstr "" + +#: js/turtledefs.js:556 +#: js/turtledefs.js:577 +msgid "Save graphics from your project to as SVG." +msgstr "" + +#: js/turtledefs.js:560 +#: js/turtledefs.js:581 +msgid "Save graphics from your project as PNG." +msgstr "" + +#: js/turtledefs.js:564 +#: js/turtledefs.js:597 +msgid "Save block artwork as an SVG file." +msgstr "" + +#: js/turtledefs.js:585 +msgid "Save audio from your project as WAV." +msgstr "" + +#: js/turtledefs.js:589 +msgid "Save your project to as an ABC file." +msgstr "" + +#: js/turtledefs.js:593 +msgid "Save your project to as a Lilypond file." +msgstr "" + +#: js/turtledefs.js:604 +msgid "Load samples from server" +msgstr "" + +#: js/turtledefs.js:605 +msgid "This button opens a viewer for loading example projects." +msgstr "" + +#: js/turtledefs.js:611 +msgid "Palette buttons" +msgstr "" + +#: js/turtledefs.js:612 +msgid "This toolbar contains the palette buttons including Rhythm Pitch Tone Action and more." +msgstr "" + +#: js/turtledefs.js:614 +msgid "Click to show the palettes of blocks and drag blocks from the palettes onto the canvas to use them." +msgstr "" + +#: js/turtledefs.js:620 +msgid "Cartesian/Polar" +msgstr "" + +#: js/turtledefs.js:621 +msgid "Show or hide a coordinate grid." +msgstr "" + +#: js/turtledefs.js:626 +#: js/turtles.js:902 +msgid "Clean" +msgstr "" + +#: js/turtledefs.js:627 +msgid "Clear the screen and return the mice to their initial positions." +msgstr "" + +#: js/turtledefs.js:632 +#: js/turtles.js:955 +msgid "Collapse" +msgstr "" + +#: js/turtledefs.js:633 +msgid "Collapse the graphics window." +msgstr "" + +#: js/turtledefs.js:638 +#: js/activity.js:5684 +msgid "Home" +msgstr "" + +#: js/turtledefs.js:639 +msgid "Return all blocks to the center of the screen." +msgstr "" + +#: js/turtledefs.js:644 +msgid "Show/hide blocks" +msgstr "" + +#: js/turtledefs.js:645 +msgid "Hide or show the blocks and the palettes." +msgstr "" + +#: js/turtledefs.js:650 +msgid "Expand/collapse collapsable blocks" +msgstr "" + +#: js/turtledefs.js:651 +msgid "Expand or collapse start and action stacks." +msgstr "" + +#: js/turtledefs.js:658 +#: js/activity.js:5704 +msgid "Decrease block size" +msgstr "" + +#: js/turtledefs.js:659 +msgid "Decrease the size of the blocks." +msgstr "" + +#: js/turtledefs.js:664 +#: js/activity.js:5710 +msgid "Increase block size" msgstr "" -#: js/palette.js:571 -msgid "grid" +#: js/turtledefs.js:665 +msgid "Increase the size of the blocks." msgstr "" -#: js/palette.js:577 -#: js/block.js:1540 -#: js/block.js:2343 -#: js/turtledefs.js:126 -#: js/turtledefs.js:228 -#: js/lilypond.js:740 -#: js/lilypond.js:905 -#: js/lilypond.js:949 -#: js/DrumBlocks.js:486 -#: js/RhythmBlocks.js:766 -#: js/VolumeBlocks.js:502 -#: js/phrasemaker.js:823 -msgid "drum" +#: js/turtledefs.js:670 +msgid "Expand/collapse option toolbar" msgstr "" -#: js/palette.js:580 -msgid "effect" +#: js/turtledefs.js:671 +msgid "Click this button to expand or collapse the auxillary toolbar." msgstr "" -#: js/palette.js:586 -msgid "sargam" +#: js/turtledefs.js:676 +msgid "Run slow" msgstr "" -#: js/palette.js:589 -#: js/activity.js:1833 -#: js/RhythmBlocks.js:923 -#: js/PitchBlocks.js:442 -#: js/PitchBlocks.js:1748 -#.TRANS: a numeric mapping of the notes in an octave based on the musical mode -msgid "scale degree" +#: js/turtledefs.js:677 +msgid "Click to run the project in slow mode." msgstr "" -#: js/palette.js:592 -#: js/activity.js:1860 -msgid "mode name" +#: js/turtledefs.js:683 +msgid "Click to run the project step by step." msgstr "" -#: js/palette.js:595 -#: js/activity.js:1839 -msgid "invert mode" +#: js/turtledefs.js:690 +msgid "Display statistics about your Music project." msgstr "" -#: js/palette.js:598 -#: js/activity.js:1836 -msgid "voice name" +#: js/turtledefs.js:697 +msgid "Delete a selected plugin." msgstr "" -#: js/palette.js:601 -#: js/PitchBlocks.js:1181 -msgid "custom pitch" +#: js/turtledefs.js:704 +msgid "Enable scrolling" msgstr "" -#: js/palette.js:605 -#: js/block.js:1456 -#: js/block.js:1575 -#: js/WidgetBlocks.js:218 -#: js/IntervalsBlocks.js:63 -msgid "temperament" +#: js/turtledefs.js:705 +msgid "You can scroll the blocks on the canvas." msgstr "" -#: js/palette.js:609 -msgid "accidental" +#: js/turtledefs.js:714 +msgid "Wrap Turtle" msgstr "" -#: js/palette.js:615 -#: js/activity.js:1866 -msgid "interval name" +#: js/turtledefs.js:715 +msgid "Turn Turtle wrapping On or Off." msgstr "" -#: js/palette.js:633 -#: js/PitchBlocks.js:405 -msgid "pitch converter" +#: js/turtledefs.js:725 +msgid "Restore blocks from the trash." msgstr "" -#: js/rubrics.js:522 -#: js/turtledefs.js:119 -#: js/turtledefs.js:221 -#: js/RhythmBlockPaletteBlocks.js:52 -#: js/RhythmBlockPaletteBlocks.js:233 -#: js/ProgramBlocks.js:745 -#: js/rhythmruler.js:1670 -#: js/rhythmruler.js:1677 -#: js/rhythmruler.js:1745 -#: js/rhythmruler.js:1752 -#: js/rhythmruler.js:1830 -#.TRANS: an arrangement of notes based on duration -msgid "rhythm" +#: js/turtledefs.js:732 +msgid "Switch mode" msgstr "" -#: js/rubrics.js:523 -#: js/block.js:2339 -#: js/turtledefs.js:121 -#: js/turtledefs.js:223 -#: js/IntervalsBlocks.js:63 -#: js/PitchBlocks.js:1801 -#: js/PitchBlocks.js:1814 -#: js/SensorsBlocks.js:178 -#: js/phrasemaker.js:821 -#: js/musickeyboard.js:1653 -#.TRANS: pitch number -#.TRANS: we specify pitch in terms of a name and an octave. The name can be CDEFGAB or Do Re Mi Fa Sol La Ti. Octave is a number between 1 and 8. -msgid "pitch" +#: js/turtledefs.js:733 +msgid "Switch between beginner and advance modes." msgstr "" -#: js/rubrics.js:524 -#: js/turtledefs.js:123 -#: js/turtledefs.js:225 -msgid "tone" +#: js/turtledefs.js:739 +msgid "Select your language preference." msgstr "" -#: js/rubrics.js:525 -#: js/lilypond.js:613 -#: js/lilypond.js:912 -#: js/lilypond.js:918 -#: js/lilypond.js:956 -msgid "mouse" +#: js/turtledefs.js:745 +msgid "Keyboard shortcuts" msgstr "" -#: js/rubrics.js:526 -#: js/turtledefs.js:132 -#: js/turtledefs.js:234 -#: js/phrasemaker.js:825 -msgid "pen" +#: js/turtledefs.js:746 +msgid "You can type d to create a do block and r to create a re block etc." msgstr "" -#: js/rubrics.js:527 -#: js/turtledefs.js:133 -#: js/turtledefs.js:235 -#: js/NumberBlocks.js:905 -#: js/PitchBlocks.js:1679 -#: js/PitchBlocks.js:1720 -msgid "number" +#: js/turtledefs.js:753 +msgid "Show these messages." msgstr "" -#: js/rubrics.js:528 -#: js/turtledefs.js:127 -#: js/turtledefs.js:229 -msgid "flow" +#: js/turtledefs.js:759 +#: js/turtledefs.js:790 +#: js/widgets/help.js:335 +msgid "Guide" msgstr "" -#: js/rubrics.js:530 -#: js/turtledefs.js:136 -#: js/turtledefs.js:238 -msgid "sensors" +#: js/turtledefs.js:760 +msgid "A detailed guide to Turtle Blocks is available." msgstr "" -#: js/rubrics.js:531 -#: js/turtledefs.js:135 -#: js/turtledefs.js:237 -#: js/MediaBlocks.js:930 -msgid "media" +#: js/turtledefs.js:764 +msgid "Turtle Blocks Guide" msgstr "" -#: js/rubrics.js:532 -msgid "mice" +#: js/turtledefs.js:767 +#: js/turtledefs.js:798 +#: js/widgets/help.js:336 +msgid "About" msgstr "" -#: js/macros.js:711 -#: js/musicutils.js:783 -#: js/synthutils.js:181 -#.TRANS: animal sound effect -msgid "duck" +#: js/turtledefs.js:768 +msgid "Turtle Blocks is an open source collection of tools for exploring musical concepts." msgstr "" -#: js/toolbar.js:46 -#: js/toolbar.js:107 -msgid "About Music Blocks" +#: js/turtledefs.js:770 +msgid "A full list of contributors can be found in the Turtle Blocks GitHub repository." msgstr "" -#: js/toolbar.js:47 -#: js/toolbar.js:108 -#: js/toolbar.js:172 -#: js/toolbar.js:228 -#: js/turtledefs.js:445 -#: js/turtledefs.js:482 -#: js/activity.js:2281 -#: js/activity.js:2289 -#: js/activity.js:2520 -#: js/modewidget.js:77 -#: js/pitchstaircase.js:121 -#: js/phrasemaker.js:302 -#: js/phrasemaker.js:312 -#: js/phrasemaker.js:314 -#: js/phrasemaker.js:3901 -#: js/phrasemaker.js:4061 -#: js/phrasemaker.js:4066 -#: js/phrasemaker.js:4068 -#: js/phrasemaker.js:4183 -#: js/pitchdrummatrix.js:81 -#: js/pitchdrummatrix.js:574 -#: js/pitchdrummatrix.js:576 -#: js/pitchdrummatrix.js:628 -#: js/pitchdrummatrix.js:630 -#: js/pitchdrummatrix.js:645 -#: js/pitchdrummatrix.js:647 -#: js/pitchdrummatrix.js:674 -#: js/pitchdrummatrix.js:676 -#: js/temperament.js:477 -#: js/temperament.js:480 -#: js/temperament.js:540 -#: js/temperament.js:542 -#: js/temperament.js:1835 -#: js/temperament.js:1837 -#: js/temperament.js:1986 -#: js/temperament.js:1988 -#: js/musickeyboard.js:522 -#: js/musickeyboard.js:682 -#: js/musickeyboard.js:684 -#: js/musickeyboard.js:756 -#: js/musickeyboard.js:758 -#: js/rhythmruler.js:298 -#: js/rhythmruler.js:300 -#: js/rhythmruler.js:314 -#: js/rhythmruler.js:316 -#: js/sampler.js:96 -#: js/sampler.js:98 -#: js/sampler.js:229 -#: js/sampler.js:235 -#: js/sampler.js:237 -#: js/tempo.js:84 -#: js/tempo.js:86 -#: js/timbre.js:432 -#: js/timbre.js:434 -#: js/timbre.js:465 -#: js/timbre.js:467 -#: js/timbre.js:746 -#: js/meterwidget.js:80 -#: js/arpeggio.js:90 -#: js/arpeggio.js:547 -#: js/arpeggio.js:549 -#: js/arpeggio.js:644 -#: js/arpeggio.js:646 -msgid "Play" +#: js/turtledefs.js:772 +msgid "Turtle Blocks is licensed under the AGPL." msgstr "" -#: js/toolbar.js:48 -#: js/toolbar.js:109 -#: js/toolbar.js:173 -#: js/toolbar.js:229 -#: js/turtledefs.js:451 -#: js/turtledefs.js:488 -#: js/activity.js:2297 -#: js/modewidget.js:99 -#: js/modewidget.js:101 -#: js/phrasemaker.js:323 -#: js/phrasemaker.js:325 -#: js/pitchdrummatrix.js:561 -#: js/pitchdrummatrix.js:563 -#: js/temperament.js:1820 -#: js/temperament.js:1822 -#: js/meterwidget.js:101 -#: js/meterwidget.js:103 -#: js/arpeggio.js:534 -#: js/arpeggio.js:536 -msgid "Stop" +#: js/turtledefs.js:780 +msgid "Turtle Blocks GitHub repository" msgstr "" -#: js/toolbar.js:49 -#: js/toolbar.js:110 -#: js/toolbar.js:174 -#: js/toolbar.js:230 -#: js/turtledefs.js:498 -msgid "Record" +#: js/turtledefs.js:783 +#: js/turtledefs.js:814 +#: js/widgets/help.js:337 +#: js/widgets/help.js:359 +msgid "Congratulations." msgstr "" -#: js/toolbar.js:50 -#: js/toolbar.js:51 -msgid "Full screen" +#: js/turtledefs.js:784 +msgid "You have finished the tour. Please enjoy Turtle Blocks!" msgstr "" -#: js/toolbar.js:52 -#: js/toolbar.js:112 -#: js/toolbar.js:177 -#: js/toolbar.js:232 -#: js/turtledefs.js:504 -msgid "Toggle Fullscreen" +#: js/turtledefs.js:791 +msgid "A detailed guide to Music Blocks is available." msgstr "" -#: js/toolbar.js:53 -#: js/toolbar.js:113 -#: js/toolbar.js:178 -#: js/toolbar.js:233 -#: js/turtledefs.js:510 -#: js/StringHelper.js:33 -msgid "New project" +#: js/turtledefs.js:799 +msgid "Music Blocks is an open source collection of tools for exploring musical concepts." msgstr "" -#: js/toolbar.js:54 -#: js/toolbar.js:114 -#: js/toolbar.js:179 -#: js/toolbar.js:234 -#: js/turtledefs.js:516 -msgid "Load project from file" +#: js/turtledefs.js:801 +msgid "A full list of contributors can be found in the Music Blocks GitHub repository." msgstr "" -#: js/toolbar.js:55 -#: js/toolbar.js:115 -#: js/toolbar.js:116 -#: js/toolbar.js:180 -#: js/toolbar.js:235 -#: js/turtledefs.js:541 -#: js/turtledefs.js:550 -#: js/turtledefs.js:571 -msgid "Save project" +#: js/turtledefs.js:803 +msgid "Music Blocks is licensed under the AGPL." msgstr "" -#: js/toolbar.js:56 -#: js/toolbar.js:75 -#: js/toolbar.js:77 -#: js/toolbar.js:135 -#: js/toolbar.js:144 -#: js/toolbar.js:146 -#: js/toolbar.js:181 -#: js/toolbar.js:199 -#: js/toolbar.js:201 -#: js/toolbar.js:236 -#: js/toolbar.js:254 -#: js/toolbar.js:256 -msgid "Save project as HTML" +#: js/turtledefs.js:811 +msgid "Music Blocks GitHub repository" msgstr "" -#: js/toolbar.js:57 -#: js/toolbar.js:117 -#: js/toolbar.js:182 -#: js/toolbar.js:237 -msgid "Find and share projects" +#: js/turtledefs.js:815 +msgid "You have finished the tour. Please enjoy Music Blocks!" msgstr "" -#: js/toolbar.js:58 -#: js/toolbar.js:118 -#: js/toolbar.js:183 -#: js/toolbar.js:238 -msgid "Offline. Sharing is unavailable" +#: js/turtles.js:882 +msgid "Grid" msgstr "" -#: js/toolbar.js:59 -#: js/toolbar.js:119 -#: js/toolbar.js:184 -#: js/toolbar.js:239 -msgid "Auxiliary menu" +#: js/turtles.js:1024 +msgid "Expand" msgstr "" -#: js/toolbar.js:61 -#: js/toolbar.js:121 -#: js/toolbar.js:186 -#: js/toolbar.js:241 -msgid "Run slowly" +#: js/block-verbose.js:1616 +#: js/block-verbose.js:1735 +#: js/block.js:1580 +#: js/block.js:1699 +#: js/palette.js:605 +#: js/blocks/IntervalsBlocks.js:63 +#: js/blocks/WidgetBlocks.js:259 +msgid "temperament" +msgstr "" + +#: js/block-verbose.js:1630 +#: js/block.js:1594 +msgid "matrix" +msgstr "" + +#: js/block-verbose.js:1637 +#: js/block.js:1601 +#: js/blocks/WidgetBlocks.js:1509 +#: plugins/rodi.rtp:324 +msgid "status" +msgstr "" + +#: js/block-verbose.js:1644 +#: js/block.js:1608 +msgid "drum mapper" +msgstr "" + +#: js/block-verbose.js:1651 +#: js/block.js:1615 +msgid "ruler" +msgstr "" + +#: js/block-verbose.js:1658 +#: js/block.js:1622 +#: js/blocks/WidgetBlocks.js:397 +#.TRANS: timbre is the character or quality of a musical sound +msgid "timbre" +msgstr "" + +#: js/block-verbose.js:1665 +#: js/block.js:1629 +msgid "stair" +msgstr "" + +#: js/block-verbose.js:1672 +#: js/block.js:1636 +#: js/blocks/WidgetBlocks.js:707 +#.TRANS: the speed at music is should be played. +msgid "tempo" +msgstr "" + +#: js/block-verbose.js:1679 +#: js/block-verbose.js:1742 +#: js/block.js:1643 +#: js/block.js:1706 +#: js/blocks/IntervalsBlocks.js:1464 +#.TRANS: mode, e.g., Major in C Major +msgid "mode" msgstr "" -#: js/toolbar.js:62 -#: js/toolbar.js:122 -#: js/toolbar.js:187 -#: js/toolbar.js:242 -#: js/turtledefs.js:682 -msgid "Run step by step" +#: js/block-verbose.js:1686 +#: js/block.js:1650 +msgid "slider" msgstr "" -#: js/toolbar.js:63 -#: js/toolbar.js:123 -#: js/toolbar.js:188 -#: js/toolbar.js:243 -#: js/turtledefs.js:689 -msgid "Display statistics" +#: js/block-verbose.js:1693 +#: js/block.js:1657 +#: js/blocks/SensorsBlocks.js:1001 +msgid "keyboard" msgstr "" -#: js/toolbar.js:64 -#: js/toolbar.js:124 -#: js/toolbar.js:189 -#: js/toolbar.js:244 -msgid "Load plugin" +#: js/block-verbose.js:1707 +#: js/block.js:1671 +#: js/blocks/WidgetBlocks.js:1190 +#: js/blocks/WidgetBlocks.js:1228 +#.TRANS: widget for subdividing a measure into distinct rhythmic elements +msgid "rhythm maker" msgstr "" -#: js/toolbar.js:65 -#: js/toolbar.js:125 -#: js/toolbar.js:190 -#: js/toolbar.js:245 -#: js/turtledefs.js:696 -msgid "Delete plugin" +#: js/block-verbose.js:1714 +#: js/block-verbose.js:2457 +#: js/block-verbose.js:2514 +#: js/block.js:1678 +#: js/block.js:2385 +#: js/block.js:2442 +#: js/blocks/MeterBlocks.js:1367 +#: js/blocks/OrnamentBlocks.js:220 +#: js/blocks/OrnamentBlocks.js:312 +#: js/blocks/RhythmBlocks.js:33 +#: js/blocks/RhythmBlocks.js:356 +#: js/blocks/RhythmBlocks.js:766 +#: js/blocks/RhythmBlocks.js:806 +#: js/blocks/RhythmBlockPaletteBlocks.js:70 +#: js/blocks/RhythmBlockPaletteBlocks.js:252 +#: js/blocks/RhythmBlockPaletteBlocks.js:485 +#: js/blocks/RhythmBlockPaletteBlocks.js:554 +#: js/blocks/RhythmBlockPaletteBlocks.js:605 +#: js/blocks/RhythmBlockPaletteBlocks.js:875 +#: js/turtleactions/DictActions.js:85 +#: js/widgets/phrasemaker.js:942 +#: js/widgets/phrasemaker.js:2656 +#: js/widgets/phrasemaker.js:2699 +#: js/widgets/phrasemaker.js:2810 +#.TRANS: the value (e.g., 1/4 note) of the note being played. +msgid "note value" msgstr "" -#: js/toolbar.js:66 -#: js/toolbar.js:126 -#: js/toolbar.js:191 -#: js/toolbar.js:246 -msgid "Enable horizontal scrolling" +#: js/block-verbose.js:1721 +#: js/block-verbose.js:2382 +#: js/block-verbose.js:2405 +#: js/block.js:1685 +#: js/block.js:2310 +#: js/block.js:2333 +#: js/blocks/IntervalsBlocks.js:1071 +#: js/blocks/OrnamentBlocks.js:312 +#.TRANS: calculate a relative step between notes based on semi-tones +msgid "scalar interval" msgstr "" -#: js/toolbar.js:67 -#: js/toolbar.js:127 -#: js/toolbar.js:192 -#: js/toolbar.js:247 -msgid "Disable horizontal scrolling" +#: js/block-verbose.js:1728 +#: js/block.js:1692 +#: js/blocks/RhythmBlocks.js:148 +msgid "milliseconds" msgstr "" -#: js/toolbar.js:68 -#: js/toolbar.js:128 -#: js/toolbar.js:193 -#: js/toolbar.js:248 -#: js/LocalCard.js:54 -#: js/StringHelper.js:71 -msgid "Merge with current project" +#: js/block-verbose.js:2455 +#: js/block-verbose.js:2459 +#: js/block-verbose.js:2512 +#: js/block-verbose.js:2628 +#: js/block.js:2383 +#: js/block.js:2387 +#: js/block.js:2440 +#: js/block.js:2556 +#: js/blocks/RhythmBlocks.js:712 +#: js/blocks/ProgramBlocks.js:1273 +#: js/widgets/rhythmruler.js:1183 +#: js/widgets/rhythmruler.js:1329 +msgid "silence" msgstr "" -#: js/toolbar.js:69 -#: js/toolbar.js:129 -msgid "Set Pitch Preview" +#: js/block-verbose.js:2548 +#: js/block-verbose.js:3492 +#: js/block-verbose.js:3509 +#: js/activity.js:2718 +#: js/activity.js:2769 +#: js/block.js:2476 +#: js/block.js:3416 +#: js/block.js:3433 +#: js/utils/musicutils.js:3780 +#: js/utils/musicutils.js:5273 +#.TRANS: the note names must be separated by single spaces +#.TRANS: the note names must be separated by single spaces +#.TRANS: the note names must be separated by single spaces +msgid "ti la sol fa mi re do" msgstr "" -#: js/toolbar.js:70 -#: js/toolbar.js:130 -#: js/toolbar.js:194 -#: js/toolbar.js:249 -msgid "Toggle JavaScript Editor" +#: js/block-verbose.js:2616 +#: js/block.js:2544 +#.TRANS: scalar step +#.TRANS: scalar step +msgid "down" msgstr "" -#: js/toolbar.js:71 -#: js/toolbar.js:131 -#: js/toolbar.js:195 -#: js/toolbar.js:250 -#: js/turtledefs.js:724 -msgid "Restore" +#: js/block-verbose.js:2617 +#: js/block.js:2545 +msgid "up" msgstr "" -#: js/toolbar.js:72 -#: js/toolbar.js:132 -#: js/toolbar.js:196 -#: js/toolbar.js:251 -msgid "Switch to beginner mode" +#: js/block-verbose.js:3026 +#: js/block.js:2950 +msgid "Silence block cannot be removed." msgstr "" -#: js/toolbar.js:73 -#: js/toolbar.js:133 -#: js/toolbar.js:197 -#: js/toolbar.js:252 -msgid "Switch to advanced mode" +#: js/block-verbose.js:3824 +#: js/block.js:3748 +#: js/blocks.js:2607 +#: js/blocks.js:3218 +#: js/palette.js:618 +#: js/blocks/BooleanBlocks.js:77 +#: js/blocks/BooleanBlocks.js:167 +#: js/blocks/BooleanBlocks.js:251 +#: js/blocks/BooleanBlocks.js:335 +#: js/blocks/BooleanBlocks.js:433 +#: js/blocks/BooleanBlocks.js:539 +#: js/blocks/BooleanBlocks.js:640 +#: js/blocks/BooleanBlocks.js:741 +#: js/blocks/BooleanBlocks.js:847 +#: js/blocks/BooleanBlocks.js:948 +#: js/blocks/BooleanBlocks.js:1033 +#: js/blocks/SensorsBlocks.js:910 +msgid "true" msgstr "" -#: js/toolbar.js:74 -#: js/toolbar.js:134 -#: js/toolbar.js:143 -#: js/toolbar.js:198 -#: js/toolbar.js:253 -#: js/turtledefs.js:738 -msgid "Select language" +#: js/block-verbose.js:3824 +#: js/block.js:3748 +#: js/blocks.js:2609 +#: js/blocks.js:3220 +#: js/blocks/BooleanBlocks.js:79 +#: js/blocks/BooleanBlocks.js:169 +#: js/blocks/BooleanBlocks.js:253 +#: js/blocks/BooleanBlocks.js:337 +#: js/blocks/BooleanBlocks.js:435 +#: js/blocks/BooleanBlocks.js:541 +#: js/blocks/BooleanBlocks.js:642 +#: js/blocks/BooleanBlocks.js:743 +#: js/blocks/BooleanBlocks.js:849 +#: js/blocks/BooleanBlocks.js:950 +#: js/blocks/SensorsBlocks.js:912 +msgid "false" msgstr "" -#: js/toolbar.js:76 -#: js/toolbar.js:79 -#: js/toolbar.js:137 -#: js/turtledefs.js:579 -msgid "Save mouse artwork as PNG" +#: js/block-verbose.js:3835 +#: js/block-verbose.js:3848 +#: js/block.js:3759 +#: js/block.js:3772 +#: js/blocks/ExtrasBlocks.js:615 +msgid "Cartesian" msgstr "" -#: js/toolbar.js:78 -#: js/toolbar.js:136 -#: js/turtledefs.js:575 -msgid "Save mouse artwork as SVG" +#: js/block-verbose.js:3836 +#: js/block-verbose.js:3849 +#: js/block.js:3760 +#: js/block.js:3773 +#: js/blocks/ExtrasBlocks.js:619 +msgid "polar" msgstr "" -#: js/toolbar.js:80 -#: js/toolbar.js:138 -#: js/turtledefs.js:583 -msgid "Save music as WAV" +#: js/block-verbose.js:3837 +#: js/block-verbose.js:3850 +#: js/block.js:3761 +#: js/block.js:3774 +#: js/blocks/ExtrasBlocks.js:623 +msgid "Cartesian+polar" msgstr "" -#: js/toolbar.js:81 -#: js/toolbar.js:139 -#: js/turtledefs.js:587 -msgid "Save sheet music as ABC" +#: js/block-verbose.js:3838 +#: js/block-verbose.js:3857 +#: js/block.js:3762 +#: js/block.js:3781 +#: js/blocks/ExtrasBlocks.js:652 +msgid "none" msgstr "" -#: js/toolbar.js:82 -#: js/toolbar.js:140 -#: js/turtledefs.js:591 -msgid "Save sheet music as Lilypond" +#: js/block-verbose.js:3851 +#: js/block.js:3775 +#: js/blocks/ExtrasBlocks.js:628 +msgid "treble" msgstr "" -#: js/toolbar.js:83 -msgid "Save sheet music as MusicXML" +#: js/block-verbose.js:3852 +#: js/block.js:3776 +#: js/blocks/ExtrasBlocks.js:632 +msgid "grand staff" msgstr "" -#: js/toolbar.js:84 -#: js/toolbar.js:141 -#: js/toolbar.js:149 -#: js/toolbar.js:204 -#: js/toolbar.js:259 -#: js/turtledefs.js:562 -#: js/turtledefs.js:595 -msgid "Save block artwork as SVG" +#: js/block-verbose.js:3853 +#: js/block.js:3777 +#: js/blocks/ExtrasBlocks.js:636 +msgid "mezzo-soprano" msgstr "" -#: js/toolbar.js:85 -#: js/toolbar.js:142 -#: js/toolbar.js:150 -#: js/toolbar.js:205 -#: js/toolbar.js:260 -msgid "Confirm" +#: js/block-verbose.js:3854 +#: js/block.js:3778 +#: js/blocks/ExtrasBlocks.js:640 +msgid "alto" msgstr "" -#: js/toolbar.js:86 -#: js/toolbar.js:151 -#: js/toolbar.js:206 -#: js/toolbar.js:261 -msgid "English (United States)" +#: js/block-verbose.js:3855 +#: js/block.js:3779 +#: js/blocks/ExtrasBlocks.js:644 +msgid "tenor" msgstr "" -#: js/toolbar.js:87 -#: js/toolbar.js:152 -#: js/toolbar.js:207 -#: js/toolbar.js:262 -msgid "English (United Kingdom)" +#: js/block-verbose.js:3856 +#: js/block.js:3780 +#: js/utils/musicutils.js:1115 +#: js/utils/synthutils.js:80 +#: js/blocks/ExtrasBlocks.js:648 +#.TRANS: musical instrument +msgid "bass" msgstr "" -#: js/toolbar.js:88 -#: js/toolbar.js:153 -#: js/toolbar.js:208 -#: js/toolbar.js:263 -msgid "日本語" +#: js/block-verbose.js:3901 +#: js/block.js:3825 +#: js/blocks.js:2600 +#: js/blocks.js:3211 +msgid "on2" +msgstr "on" + +#: js/block-verbose.js:3903 +#: js/block.js:3827 +#: js/blocks.js:2602 +#: js/blocks.js:3213 +msgid "off" msgstr "" -#: js/toolbar.js:89 -msgid "한국어" +#: js/block-verbose.js:4470 +#: js/block.js:4394 +msgid "Not a number" msgstr "" -#: js/toolbar.js:90 -#: js/toolbar.js:155 -#: js/toolbar.js:210 -#: js/toolbar.js:265 -msgid "español" +#: js/block-verbose.js:4477 +#: js/block.js:4401 +msgid "Octave value must be between 1 and 10." msgstr "" -#: js/toolbar.js:91 -#: js/toolbar.js:156 -#: js/toolbar.js:211 -#: js/toolbar.js:266 -msgid "português" +#: js/block-verbose.js:4485 +#: js/block.js:4409 +msgid "Numbers can have at most 10 digits." msgstr "" -#: js/toolbar.js:92 -#: js/toolbar.js:157 -#: js/toolbar.js:212 -#: js/toolbar.js:267 -msgid "にほんご" +#: js/activity.js:390 +#: js/activity.js:395 +msgid "Search for blocks" msgstr "" -#: js/toolbar.js:93 -#: js/toolbar.js:158 -#: js/toolbar.js:213 -#: js/toolbar.js:268 -msgid "中文" +#: js/activity.js:1413 +msgid "Refresh your browser to change to advanced mode." msgstr "" -#: js/toolbar.js:94 -#: js/toolbar.js:159 -#: js/toolbar.js:214 -#: js/toolbar.js:269 -msgid "ภาษาไทย" +#: js/activity.js:1418 +msgid "Refresh your browser to change to beginner mode." msgstr "" -#: js/toolbar.js:95 -#: js/toolbar.js:160 -#: js/toolbar.js:215 -#: js/toolbar.js:270 -msgid "aymara" +#: js/activity.js:1477 +msgid "Catching mice" msgstr "" -#: js/toolbar.js:96 -#: js/toolbar.js:161 -#: js/toolbar.js:216 -#: js/toolbar.js:271 -msgid "quechua" +#: js/activity.js:1478 +msgid "Cleaning the instruments" msgstr "" -#: js/toolbar.js:97 -#: js/toolbar.js:162 -#: js/toolbar.js:217 -#: js/toolbar.js:272 -msgid "guarani" +#: js/activity.js:1479 +msgid "Testing key pieces" msgstr "" -#: js/toolbar.js:98 -#: js/toolbar.js:163 -#: js/toolbar.js:218 -#: js/toolbar.js:273 -msgid "हिंदी" +#: js/activity.js:1480 +msgid "Sight-reading" msgstr "" -#: js/toolbar.js:99 -#: js/toolbar.js:165 -#: js/toolbar.js:219 -#: js/toolbar.js:275 -msgid "igbo" +#: js/activity.js:1481 +msgid "Combining math and music" msgstr "" -#: js/toolbar.js:100 -#: js/toolbar.js:166 -#: js/toolbar.js:220 -#: js/toolbar.js:276 -msgid "عربى" +#: js/activity.js:1482 +msgid "Generating more blocks" msgstr "" -#: js/toolbar.js:101 -#: js/toolbar.js:164 -#: js/toolbar.js:221 -#: js/toolbar.js:274 -msgid "తెలుగు" +#: js/activity.js:1483 +msgid "Do Re Mi Fa Sol La Ti Do" msgstr "" -#: js/toolbar.js:102 -#: js/toolbar.js:167 -#: js/toolbar.js:222 -#: js/toolbar.js:277 -msgid "עִברִית" +#: js/activity.js:1484 +msgid "Tuning string instruments" msgstr "" -#: js/toolbar.js:111 -#: js/toolbar.js:175 -#: js/toolbar.js:176 -#: js/toolbar.js:231 -msgid "Full Screen" +#: js/activity.js:1485 +msgid "Pressing random keys" msgstr "" -#: js/toolbar.js:145 -#: js/toolbar.js:148 -#: js/toolbar.js:200 -#: js/toolbar.js:203 -#: js/toolbar.js:255 -#: js/toolbar.js:258 -#: js/turtledefs.js:558 -msgid "Save turtle artwork as PNG" +#: js/activity.js:1663 +msgid "plugins will be removed upon restart." +msgstr "" + +#: js/activity.js:1672 +msgid "show Cartesian" msgstr "" -#: js/toolbar.js:147 -#: js/toolbar.js:202 -#: js/toolbar.js:257 -#: js/turtledefs.js:554 -msgid "Save turtle artwork as SVG" +#: js/activity.js:2211 +#: js/palette.js:589 +#: js/blocks/RhythmBlocks.js:923 +#: js/blocks/PitchBlocks.js:442 +#: js/blocks/PitchBlocks.js:1786 +#.TRANS: a numeric mapping of the notes in an octave based on the musical mode +msgid "scale degree" msgstr "" -#: js/toolbar.js:154 -#: js/toolbar.js:209 -#: js/toolbar.js:264 -msgid "한국인" +#: js/activity.js:2214 +#: js/palette.js:598 +msgid "voice name" msgstr "" -#: js/toolbar.js:171 -#: js/toolbar.js:227 -msgid "About Turtle Blocks" +#: js/activity.js:2217 +#: js/palette.js:595 +msgid "invert mode" msgstr "" -#: js/toolbar.js:429 -#: js/toolbar.js:440 -msgid "Turtle Wrap Off" +#: js/activity.js:2220 +msgid "output tools" msgstr "" -#: js/toolbar.js:442 -msgid "Turtle Wrap On" +#: js/activity.js:2223 +msgid "custom note" msgstr "" -#: js/block.js:1470 -msgid "matrix" +#: js/activity.js:2226 +msgid "accidental name" msgstr "" -#: js/block.js:1477 -#: js/WidgetBlocks.js:1226 -#: plugins/rodi.rtp:324 -msgid "status" +#: js/activity.js:2229 +#: js/blocks/PitchBlocks.js:855 +msgid "east indian solfege" msgstr "" -#: js/block.js:1484 -msgid "drum mapper" +#: js/activity.js:2232 +#: js/blocks/PitchBlocks.js:869 +msgid "note name" msgstr "" -#: js/block.js:1491 -msgid "ruler" +#: js/activity.js:2235 +#: js/blocks/IntervalsBlocks.js:94 +msgid "temperament name" msgstr "" -#: js/block.js:1498 -#: js/WidgetBlocks.js:327 -#.TRANS: timbre is the character or quality of a musical sound -msgid "timbre" +#: js/activity.js:2238 +#: js/palette.js:592 +msgid "mode name" msgstr "" -#: js/block.js:1505 -msgid "stair" +#: js/activity.js:2241 +msgid "chord name" msgstr "" -#: js/block.js:1512 -#: js/WidgetBlocks.js:577 -#.TRANS: the speed at music is should be played. -msgid "tempo" +#: js/activity.js:2244 +#: js/palette.js:615 +msgid "interval name" msgstr "" -#: js/block.js:1519 -#: js/block.js:1582 -#: js/IntervalsBlocks.js:1268 -#.TRANS: mode, e.g., Major in C Major -msgid "mode" +#: js/activity.js:2247 +msgid "filter type" msgstr "" -#: js/block.js:1526 -msgid "slider" +#: js/activity.js:2250 +msgid "oscillator type" msgstr "" -#: js/block.js:1533 -#: js/SensorsBlocks.js:1001 -msgid "keyboard" +#: js/activity.js:2253 +#: js/blocks.js:2479 +#: js/blocks.js:2487 +msgid "audio file" msgstr "" -#: js/block.js:1547 -#: js/WidgetBlocks.js:957 -#: js/WidgetBlocks.js:988 -#.TRANS: widget for subdividing a measure into distinct rhythmic elements -msgid "rhythm maker" +#: js/activity.js:2256 +#: js/blocks/DrumBlocks.js:32 +msgid "noise name" msgstr "" -#: js/block.js:1554 -#: js/block.js:2182 -#: js/block.js:2236 -#: js/RhythmBlockPaletteBlocks.js:70 -#: js/RhythmBlockPaletteBlocks.js:251 -#: js/RhythmBlockPaletteBlocks.js:484 -#: js/RhythmBlockPaletteBlocks.js:553 -#: js/RhythmBlockPaletteBlocks.js:604 -#: js/RhythmBlockPaletteBlocks.js:874 -#: js/RhythmBlocks.js:33 -#: js/RhythmBlocks.js:356 -#: js/RhythmBlocks.js:766 -#: js/RhythmBlocks.js:806 -#: js/OrnamentBlocks.js:220 -#: js/OrnamentBlocks.js:312 -#: js/MeterBlocks.js:1367 -#: js/DictActions.js:85 -#: js/phrasemaker.js:731 -#: js/phrasemaker.js:2393 -#: js/phrasemaker.js:2436 -#: js/phrasemaker.js:2534 -#.TRANS: the value (e.g., 1/4 note) of the note being played. -msgid "note value" +#: js/activity.js:2259 +#: js/blocks/DrumBlocks.js:75 +msgid "drum name" msgstr "" -#: js/block.js:1561 -#: js/block.js:2110 -#: js/block.js:2133 -#: js/IntervalsBlocks.js:875 -#: js/OrnamentBlocks.js:312 -#.TRANS: calculate a relative step between notes based on semi-tones -msgid "scalar interval" +#: js/activity.js:2262 +#: js/blocks/DrumBlocks.js:119 +msgid "effects name" msgstr "" -#: js/block.js:1568 -#: js/RhythmBlocks.js:148 -msgid "milliseconds" +#: js/activity.js:2265 +msgid "wrap mode" msgstr "" -#: js/block.js:2180 -#: js/block.js:2184 -#: js/block.js:2234 -#: js/block.js:2345 -#: js/ProgramBlocks.js:1273 -#: js/RhythmBlocks.js:712 -#: js/rhythmruler.js:834 -#: js/rhythmruler.js:961 -msgid "silence" +#: js/activity.js:2268 +msgid "load file" msgstr "" -#: js/block.js:2265 -#: js/block.js:3134 -#: js/block.js:3151 -#: js/activity.js:2336 -#: js/activity.js:2387 -#: js/musicutils.js:2932 -#: js/musicutils.js:4287 -#.TRANS: the note names must be separated by single spaces -#.TRANS: the note names must be separated by single spaces -msgid "ti la sol fa mi re do" +#: js/activity.js:2435 +#: js/activity.js:5851 +msgid "This block is deprecated." msgstr "" -#: js/block.js:2333 -#.TRANS: scalar step -msgid "down" +#: js/activity.js:2437 +#: js/activity.js:5853 +msgid "Block cannot be found." msgstr "" -#: js/block.js:2334 -msgid "up" +#: js/activity.js:2645 +msgid "Saving block artwork" msgstr "" -#: js/block.js:3477 -#: js/block.js:3490 -#: js/ExtrasBlocks.js:612 -msgid "Cartesian" +#: js/activity.js:2656 +msgid "Erase" msgstr "" -#: js/block.js:3478 -#: js/block.js:3491 -#: js/ExtrasBlocks.js:616 -msgid "polar" +#: js/activity.js:2683 +#: js/activity.js:2705 +msgid "Paste" msgstr "" -#: js/block.js:3479 -#: js/block.js:3492 -#: js/ExtrasBlocks.js:620 -msgid "Cartesian+polar" +#: js/activity.js:2687 +msgid "Save block help" msgstr "" -#: js/block.js:3480 -#: js/block.js:3499 -#: js/ExtrasBlocks.js:649 -msgid "none" +#: js/activity.js:2772 +msgid "Jumping to the bottom of the page." msgstr "" -#: js/block.js:3493 -#: js/ExtrasBlocks.js:625 -msgid "treble" +#: js/activity.js:2778 +msgid "Scrolling up." msgstr "" -#: js/block.js:3494 -#: js/ExtrasBlocks.js:629 -msgid "grand staff" +#: js/activity.js:2783 +msgid "Scrolling down." msgstr "" -#: js/block.js:3495 -#: js/ExtrasBlocks.js:633 -msgid "mezzo-soprano" +#: js/activity.js:2788 +msgid "Extracting block" msgstr "" -#: js/block.js:3496 -#: js/ExtrasBlocks.js:637 -msgid "alto" +#: js/activity.js:2796 +msgid "Moving block up." msgstr "" -#: js/block.js:3497 -#: js/ExtrasBlocks.js:641 -msgid "tenor" +#: js/activity.js:2817 +msgid "Moving block down." msgstr "" -#: js/block.js:3498 -#: js/ExtrasBlocks.js:645 -#: js/musicutils.js:736 -#: js/synthutils.js:64 -#.TRANS: musical instrument -msgid "bass" +#: js/activity.js:2838 +msgid "Moving block left." msgstr "" -#: js/block.js:4075 -msgid "Not a number" +#: js/activity.js:2855 +msgid "Moving block right." msgstr "" -#: js/block.js:4082 -msgid "Octave value must be between 1 and 10." +#: js/activity.js:2870 +msgid "Jump to home position." msgstr "" -#: js/block.js:4090 -msgid "Numbers can have at most 10 digits." +#: js/activity.js:2897 +msgid "Hide blocks" msgstr "" -#: js/notation.js:353 -msgid "Lilypond cannot process pickup of " +#: js/activity.js:4500 +msgid "Click the run button to run the project." msgstr "" -#: js/turtledefs.js:40 -#.TRANS: put the URL to the guide here, e.g., https://github.com/sugarlabs/turtleblocksjs/tree/master/guide/README.md -msgid "guide url" +#: js/activity.js:5692 +msgid "Show/hide block" msgstr "" -#: js/turtledefs.js:85 -#: js/turtledefs.js:437 -msgid "Turtle Blocks is a Logo-inspired turtle that draws colorful pictures with snap-together visual-programming blocks." +#: js/activity.js:5698 +msgid "Expand/collapse blocks" msgstr "" -#: js/turtledefs.js:118 -#: js/turtledefs.js:220 -msgid "search" +#: js/activity.js:5976 +msgid "Could not parse JSON input." msgstr "" -#: js/turtledefs.js:120 -#: js/turtledefs.js:222 -#: js/WidgetBlocks.js:437 -#: js/MeterBlocks.js:1343 -#.TRANS: musical meter (time signature), e.g., 4:4 -msgid "meter" +#: js/activity.js:6475 +#: js/activity.js:6580 +#: js/activity.js:6631 +msgid "Cannot load project from the file. Please check the file type." msgstr "" -#: js/turtledefs.js:122 -#: js/turtledefs.js:224 -msgid "intervals" +#: js/activity.js:6917 +msgid "Invalid parameters" msgstr "" -#: js/turtledefs.js:124 -#: js/turtledefs.js:226 -msgid "ornament" +#: js/blocks.js:1212 +#: js/blocks.js:3444 +#: js/blocks.js:3834 +#: js/blocks.js:3865 +#: js/blocks.js:3914 +#: js/blocks.js:3949 +#: js/blocks.js:6586 +#: js/palette.js:509 +#: js/palette.js:638 +#: js/palette.js:1105 +#: js/blocks/BoxesBlocks.js:282 +#: js/blocks/BoxesBlocks.js:285 +#: js/blocks/BoxesBlocks.js:405 +#: js/blocks/BoxesBlocks.js:594 +msgid "box" msgstr "" -#: js/turtledefs.js:125 -#: js/turtledefs.js:227 -#: js/VolumeBlocks.js:362 -#: js/VolumeBlocks.js:502 -#: js/VolumeBlocks.js:545 -msgid "volume" +#: js/blocks.js:1713 +msgid "Consider breaking this stack into parts." msgstr "" -#: js/turtledefs.js:129 -#: js/turtledefs.js:231 -msgid "boxes" +#: js/blocks.js:2472 +#: js/palette.js:653 +#: js/blocks/MediaBlocks.js:602 +msgid "open file" msgstr "" -#: js/turtledefs.js:130 -#: js/turtledefs.js:232 -msgid "widgets" +#: js/blocks.js:3247 +#: js/palette.js:574 +#: js/blocks/MediaBlocks.js:892 +#: js/blocks/MediaBlocks.js:963 +msgid "text" msgstr "" -#: js/turtledefs.js:131 -#: js/turtledefs.js:233 -#: js/phrasemaker.js:824 -msgid "graphics" +#: js/blocks.js:3443 +#: js/palette.js:641 +#: js/palette.js:642 +#: js/blocks/BoxesBlocks.js:514 +msgid "store in box" msgstr "" -#: js/turtledefs.js:134 -#: js/turtledefs.js:236 -msgid "boolean" +#: js/blocks.js:3448 +#: js/blocks.js:3888 +#: js/blocks.js:3923 +#: js/blocks.js:3958 +#: js/blocks.js:5862 +#: js/blocks.js:5883 +#: js/blocks/BoxesBlocks.js:772 +msgid "box1" msgstr "" -#: js/turtledefs.js:137 -#: js/turtledefs.js:239 -#: js/HeapBlocks.js:59 -#: js/status.js:147 -msgid "heap" +#: js/blocks.js:3450 +#: js/blocks.js:3890 +#: js/blocks.js:3925 +#: js/blocks.js:3960 +#: js/blocks.js:5864 +#: js/blocks.js:5885 +#: js/blocks/BoxesBlocks.js:663 +msgid "box2" msgstr "" -#: js/turtledefs.js:138 -#: js/turtledefs.js:240 -#: js/ProgramBlocks.js:495 -#: js/DictBlocks.js:142 -msgid "dictionary" +#: js/blocks.js:4122 +#: js/palette.js:639 +#: js/palette.js:644 +#: js/palette.js:1041 +#: js/blocks/BoxesBlocks.js:591 +msgid "store in" msgstr "" -#: js/turtledefs.js:139 -#: js/turtledefs.js:241 -msgid "ensemble" +#: js/blocks.js:4122 +#: js/blocks/BoxesBlocks.js:595 +#: js/blocks/DictBlocks.js:215 +#: js/blocks/DictBlocks.js:289 +#: js/blocks/EnsembleBlocks.js:391 +#: js/blocks/EnsembleBlocks.js:402 +#: js/blocks/MediaBlocks.js:746 +#: js/blocks/PitchBlocks.js:656 +#: js/blocks/PitchBlocks.js:934 +#: js/blocks/PitchBlocks.js:1866 +#: js/blocks/ProgramBlocks.js:390 +#: js/blocks/ProgramBlocks.js:495 +#: js/blocks/ProgramBlocks.js:658 +#: js/blocks/ToneBlocks.js:1025 +msgid "name" msgstr "" -#: js/turtledefs.js:140 -#: js/turtledefs.js:242 -msgid "extras" +#: js/blocks.js:4122 +#: js/blocks/BoxesBlocks.js:75 +#: js/blocks/BoxesBlocks.js:595 +#: js/blocks/DictBlocks.js:289 +#: js/blocks/DictBlocks.js:430 +#: js/blocks/HeapBlocks.js:544 +#: js/blocks/RhythmBlocks.js:1130 +msgid "value" msgstr "" -#: js/turtledefs.js:142 -#: js/turtledefs.js:244 -#.TRANS: program as in computer program -#.TRANS: program as in computer program -msgid "program" +#: js/blocks.js:4465 +msgid "Forever loop detected inside a note value block. Unexpected things may happen." msgstr "" -#: js/turtledefs.js:143 -#: js/turtledefs.js:245 -msgid "my blocks" +#: js/blocks.js:4988 +msgid "There is no block selected." msgstr "" -#: js/turtledefs.js:185 -#: js/turtledefs.js:281 -msgid "artwork" +#: js/blocks.js:5091 +#: js/blocks/MediaBlocks.js:888 +msgid "show" msgstr "" -#: js/turtledefs.js:185 -#: js/turtledefs.js:281 -msgid "logic" +#: js/blocks.js:5094 +#: js/blocks/MediaBlocks.js:803 +#.TRANS: Avatar is the image used to determine the appearance of the mouse. +msgid "avatar" msgstr "" -#: js/turtledefs.js:185 -#: js/turtledefs.js:281 -msgid "music" +#: js/blocks.js:5097 +#: js/blocks/ToneBlocks.js:1010 +#: js/widgets/sampler.js:975 +#.TRANS: The sound sample that the user uploads. +msgid "sample" msgstr "" -#: js/turtledefs.js:187 -#: js/turtledefs.js:463 -msgid "Music Blocks is a collection of tools for exploring fundamental musical concepts in a fun way." +#: js/lilypond.js:606 +msgid "brown rat" msgstr "" -#: js/turtledefs.js:436 -msgid "Welcome to Turtle Blocks" +#: js/lilypond.js:607 +msgid "mole" msgstr "" -#: js/turtledefs.js:438 -#: js/turtledefs.js:465 -#: js/turtledefs.js:774 -#: js/turtledefs.js:805 -msgid "The current version is" +#: js/lilypond.js:608 +msgid "chipmunk" msgstr "" -#: js/turtledefs.js:446 -#: js/turtledefs.js:483 -msgid "Click the run button to run the project in fast mode." +#: js/lilypond.js:609 +msgid "red squirrel" msgstr "" -#: js/turtledefs.js:452 -msgid "Stop the turtle." +#: js/lilypond.js:610 +msgid "guinea pig" msgstr "" -#: js/turtledefs.js:454 -#: js/turtledefs.js:491 -msgid "You can also type Alt-S to stop." +#: js/lilypond.js:611 +msgid "capybara" msgstr "" -#: js/turtledefs.js:462 -#: js/help.js:333 -msgid "Welcome to Music Blocks" +#: js/lilypond.js:612 +msgid "coypu" msgstr "" -#: js/turtledefs.js:472 -#: js/help.js:334 -msgid "Meet Mr. Mouse!" +#: js/lilypond.js:613 +msgid "black rat" msgstr "" -#: js/turtledefs.js:473 -msgid "Mr Mouse is our Music Blocks conductor." +#: js/lilypond.js:614 +msgid "grey squirrel" msgstr "" -#: js/turtledefs.js:475 -msgid "Mr Mouse encourages you to explore Music Blocks." +#: js/lilypond.js:615 +msgid "flying squirrel" msgstr "" -#: js/turtledefs.js:477 -msgid "Let us start our tour!" +#: js/lilypond.js:616 +msgid "bat" msgstr "" -#: js/turtledefs.js:489 -msgid "Stop the music (and the mice)." +#: js/lilypond.js:749 +#: js/lilypond.js:913 +#: js/lilypond.js:951 +#: js/blocks/ActionBlocks.js:1256 +#: js/blocks/ExtrasBlocks.js:556 +msgid "start drum" msgstr "" -#: js/turtledefs.js:499 -msgid "Record your project as video." +#: js/logo.js:61 +msgid "Not a valid pitch name" msgstr "" -#: js/turtledefs.js:505 -msgid "Toggle Fullscreen mode." +#: js/logo.js:507 +#: js/blocks/ProgramBlocks.js:258 +#: js/blocks/ProgramBlocks.js:427 +msgid "You must select a file." msgstr "" -#: js/turtledefs.js:511 -msgid "Initialize a new project." +#: js/logo.js:1696 +msgid "Playback is ready." msgstr "" -#: js/turtledefs.js:517 -msgid "You can also load projects from the file system." +#: js/macros.js:711 +#: js/utils/musicutils.js:1162 +#: js/utils/synthutils.js:202 +#.TRANS: animal sound effect +msgid "duck" msgstr "" -#: js/turtledefs.js:522 -#: js/StringHelper.js:46 -msgid "Delete" +#: js/notation.js:353 +msgid "Lilypond cannot process pickup of " msgstr "" -#: js/turtledefs.js:523 -msgid "To delete a block, just right-click on it, then you will be able to see the delete option" +#: js/palette.js:571 +msgid "grid" msgstr "" -#: js/turtledefs.js:528 -#: js/activity.js:2270 -#: js/LocalCard.js:31 -msgid "Copy" +#: js/palette.js:580 +msgid "effect" msgstr "" -#: js/turtledefs.js:529 -msgid "To copy a block, just right-click on it, then you will be able to see the copy option" +#: js/palette.js:586 +msgid "sargam" msgstr "" -#: js/turtledefs.js:535 -msgid "To extract a block, just right-click on it, then you will be able to see the extract option" +#: js/palette.js:601 +#: js/blocks/PitchBlocks.js:1209 +msgid "custom pitch" msgstr "" -#: js/turtledefs.js:542 -#: js/turtledefs.js:552 -#: js/turtledefs.js:573 -msgid "Save your project to a file." +#: js/palette.js:609 +msgid "accidental" msgstr "" -#: js/turtledefs.js:549 -#: js/turtledefs.js:570 -msgid "save" +#: js/palette.js:633 +#: js/blocks/PitchBlocks.js:405 +msgid "pitch converter" msgstr "" -#: js/turtledefs.js:556 -#: js/turtledefs.js:577 -msgid "Save graphics from your project to as SVG." +#: js/piemenus.js:200 +#: js/utils/musicutils.js:1187 +#: js/utils/musicutils.js:1207 +#: js/widgets/musickeyboard.js:2341 +#: js/widgets/phrasemaker.js:1908 +#: js/widgets/sampler.js:810 +#.TRANS: double sharp is a music term related to pitch +msgid "double sharp" msgstr "" -#: js/turtledefs.js:560 -#: js/turtledefs.js:581 -msgid "Save graphics from your project as PNG." +#: js/piemenus.js:201 +#: js/utils/musicutils.js:1185 +#: js/utils/musicutils.js:1208 +#: js/blocks/PitchBlocks.js:1539 +#: js/turtleactions/PitchActions.js:323 +#: js/widgets/musickeyboard.js:2342 +#: js/widgets/phrasemaker.js:1909 +#: js/widgets/sampler.js:811 +#.TRANS: sharp is a music term related to pitch +#.TRANS: sharp is a half-step up in pitch +msgid "sharp" msgstr "" -#: js/turtledefs.js:564 -#: js/turtledefs.js:597 -msgid "Save block artwork as an SVG file." +#: js/piemenus.js:202 +#: js/utils/musicutils.js:1183 +#: js/utils/musicutils.js:1209 +#: js/widgets/musickeyboard.js:2343 +#: js/widgets/phrasemaker.js:1910 +#: js/widgets/sampler.js:812 +#.TRANS: natural is a music term related to pitch +msgid "natural" msgstr "" -#: js/turtledefs.js:585 -msgid "Save audio from your project as WAV." +#: js/piemenus.js:203 +#: js/utils/musicutils.js:1181 +#: js/utils/musicutils.js:1210 +#: js/blocks/PitchBlocks.js:1498 +#: js/turtleactions/PitchActions.js:326 +#: js/widgets/musickeyboard.js:2344 +#: js/widgets/phrasemaker.js:1911 +#: js/widgets/sampler.js:813 +#.TRANS: flat is a music term related to pitch +#.TRANS: flat is a half-step down in pitch +msgid "flat" msgstr "" -#: js/turtledefs.js:589 -msgid "Save your project to as an ABC file." +#: js/piemenus.js:204 +#: js/utils/musicutils.js:1179 +#: js/utils/musicutils.js:1211 +#: js/widgets/musickeyboard.js:2345 +#: js/widgets/phrasemaker.js:1912 +#: js/widgets/sampler.js:814 +#.TRANS: double flat is a music term related to pitch +msgid "double flat" msgstr "" -#: js/turtledefs.js:593 -msgid "Save your project to as a Lilypond file." +#: js/piemenus.js:2864 +#: js/utils/musicutils.js:1006 +#: js/blocks/PitchBlocks.js:1385 +#.TRANS: unison is a music term related to intervals +#.TRANS: unison means the note is the same as the current note +msgid "unison" msgstr "" -#: js/turtledefs.js:604 -msgid "Load samples from server" +#: js/piemenus.js:3018 +#: js/piemenus.js:3091 +#: js/utils/musicutils.js:1014 +#: js/utils/musicutils.js:1189 +#: js/utils/musicutils.js:1326 +#.TRANS: major is a music term related to intervals and mode +msgid "major" msgstr "" -#: js/turtledefs.js:605 -msgid "This button opens a viewer for loading example projects." +#: js/piemenus.js:3018 +#: js/piemenus.js:3091 +#: js/utils/musicutils.js:1032 +#.TRANS: modal scale for music +msgid "ionian" msgstr "" -#: js/turtledefs.js:611 -msgid "Palette buttons" +#: js/piemenus.js:3020 +#: js/piemenus.js:3095 +#: js/utils/musicutils.js:1012 +#: js/utils/musicutils.js:1190 +#: js/utils/musicutils.js:1323 +#.TRANS: minor is a music term related to intervals and mode +msgid "minor" msgstr "" -#: js/turtledefs.js:612 -msgid "This toolbar contains the palette buttons including Rhythm Pitch Tone Action and more." +#: js/piemenus.js:3020 +#: js/piemenus.js:3095 +#: js/utils/musicutils.js:1042 +#.TRANS: modal scale for music +msgid "aeolian" msgstr "" -#: js/turtledefs.js:614 -msgid "Click to show the palettes of blocks and drag blocks from the palettes onto the canvas to use them." +#: js/piemenus.js:3410 +msgid "Duplicate" msgstr "" -#: js/turtledefs.js:620 -msgid "Cartesian/Polar" +#: js/piemenus.js:3412 +msgid "Move to trash" msgstr "" -#: js/turtledefs.js:621 -msgid "Show or hide a coordinate grid." +#: js/piemenus.js:3413 +#: js/widgets/timbre.js:968 +#: planet/js/StringHelper.js:69 +msgid "Close" msgstr "" -#: js/turtledefs.js:627 -msgid "Clear the screen and return the mice to their initial positions." +#: js/piemenus.js:3419 +msgid "Save stack" msgstr "" -#: js/turtledefs.js:633 -msgid "Collapse the graphics window." +#: js/piemenus.js:3449 +msgid "In order to copy a sample, you must reload the widget, import the sample again, and export it." msgstr "" -#: js/turtledefs.js:638 -#: js/activity.js:4256 -#: js/activity.js:4256 -msgid "Home" +#: js/piemenus.js:3812 +msgid "You have chosen key " msgstr "" -#: js/turtledefs.js:639 -msgid "Return all blocks to the center of the screen." +#: js/piemenus.js:3816 +msgid " for your pitch preview." msgstr "" -#: js/turtledefs.js:644 -msgid "Show/hide blocks" +#: js/turtle-singer.js:1363 +#.TRANS: partials are weighted components in a harmonic series +msgid "You must have at least one Partial block inside of a Weighted-partial block" msgstr "" -#: js/turtledefs.js:645 -msgid "Hide or show the blocks and the palettes." +#: js/turtle-singer.js:2077 +msgid "synth cannot play chords." msgstr "" -#: js/turtledefs.js:650 -msgid "Expand/collapse collapsable blocks" +#: js/utils/musicutils.js:505 +#: js/utils/musicutils.js:645 +#: js/widgets/pitchdrummatrix.js:228 +#: js/widgets/musickeyboard.js:2885 +msgid "rest" msgstr "" -#: js/turtledefs.js:651 -msgid "Expand or collapse start and action stacks." +#: js/utils/musicutils.js:689 +msgid "Perfect unison" msgstr "" -#: js/turtledefs.js:658 -#: js/activity.js:4265 -msgid "Decrease block size" +#: js/utils/musicutils.js:689 +msgid "Diminished second" msgstr "" -#: js/turtledefs.js:659 -msgid "Decrease the size of the blocks." +#: js/utils/musicutils.js:690 +msgid "Minor second" msgstr "" -#: js/turtledefs.js:664 -#: js/activity.js:4267 -msgid "Increase block size" +#: js/utils/musicutils.js:690 +msgid "Augmented unison" msgstr "" -#: js/turtledefs.js:665 -msgid "Increase the size of the blocks." +#: js/utils/musicutils.js:691 +msgid "Major second" msgstr "" -#: js/turtledefs.js:670 -msgid "Expand/collapse option toolbar" +#: js/utils/musicutils.js:691 +msgid "Diminished third" msgstr "" -#: js/turtledefs.js:671 -msgid "Click this button to expand or collapse the auxillary toolbar." +#: js/utils/musicutils.js:692 +msgid "Minor third" msgstr "" -#: js/turtledefs.js:676 -msgid "Run slow" +#: js/utils/musicutils.js:692 +msgid "Augmented second" msgstr "" -#: js/turtledefs.js:677 -msgid "Click to run the project in slow mode." +#: js/utils/musicutils.js:693 +msgid "Major third" msgstr "" -#: js/turtledefs.js:683 -msgid "Click to run the project step by step." +#: js/utils/musicutils.js:693 +msgid "Diminished fourth" msgstr "" -#: js/turtledefs.js:690 -msgid "Display statistics about your Music project." +#: js/utils/musicutils.js:694 +msgid "Perfect fourth" msgstr "" -#: js/turtledefs.js:697 -msgid "Delete a selected plugin." +#: js/utils/musicutils.js:694 +msgid "Augmented third" msgstr "" -#: js/turtledefs.js:704 -msgid "Enable scrolling" +#: js/utils/musicutils.js:695 +msgid "Diminished fifth" msgstr "" -#: js/turtledefs.js:705 -msgid "You can scroll the blocks on the canvas." +#: js/utils/musicutils.js:695 +msgid "Augmented fourth" msgstr "" -#: js/turtledefs.js:714 -msgid "Wrap Turtle" +#: js/utils/musicutils.js:696 +msgid "Perfect fifth" msgstr "" -#: js/turtledefs.js:715 -msgid "Turn Turtle wrapping On or Off." +#: js/utils/musicutils.js:696 +msgid "Diminished sixth" msgstr "" -#: js/turtledefs.js:725 -msgid "Restore blocks from the trash." +#: js/utils/musicutils.js:697 +msgid "Minor sixth" msgstr "" -#: js/turtledefs.js:732 -msgid "Switch mode" +#: js/utils/musicutils.js:697 +msgid "Augmented fifth" msgstr "" -#: js/turtledefs.js:733 -msgid "Switch between beginner and advance modes." +#: js/utils/musicutils.js:698 +msgid "Major sixth" msgstr "" -#: js/turtledefs.js:739 -msgid "Select your language preference." +#: js/utils/musicutils.js:698 +msgid "Diminished seventh" msgstr "" -#: js/turtledefs.js:745 -msgid "Keyboard shortcuts" +#: js/utils/musicutils.js:699 +msgid "Minor seventh" msgstr "" -#: js/turtledefs.js:746 -msgid "You can type d to create a do block and r to create a re block etc." +#: js/utils/musicutils.js:699 +msgid "Augmented sixth" msgstr "" -#: js/turtledefs.js:753 -msgid "Show these messages." +#: js/utils/musicutils.js:700 +msgid "Major seventh" msgstr "" -#: js/turtledefs.js:759 -#: js/turtledefs.js:790 -#: js/help.js:335 -msgid "Guide" +#: js/utils/musicutils.js:700 +msgid "Diminished octave" msgstr "" -#: js/turtledefs.js:760 -msgid "A detailed guide to Turtle Blocks is available." +#: js/utils/musicutils.js:701 +msgid "Perfect octave" msgstr "" -#: js/turtledefs.js:764 -msgid "Turtle Blocks Guide" +#: js/utils/musicutils.js:701 +msgid "Augmented seventh" msgstr "" -#: js/turtledefs.js:767 -#: js/turtledefs.js:798 -#: js/help.js:336 -msgid "About" +#: js/utils/musicutils.js:702 +msgid "Minor ninth" msgstr "" -#: js/turtledefs.js:768 -msgid "Turtle Blocks is an open source collection of tools for exploring musical concepts." +#: js/utils/musicutils.js:702 +msgid "Augmented octave" msgstr "" -#: js/turtledefs.js:770 -msgid "A full list of contributors can be found in the Turtle Blocks GitHub repository." +#: js/utils/musicutils.js:703 +msgid "Major ninth" msgstr "" -#: js/turtledefs.js:772 -msgid "Turtle Blocks is licensed under the AGPL." +#: js/utils/musicutils.js:703 +msgid "Diminished tenth" msgstr "" -#: js/turtledefs.js:780 -msgid "Turtle Blocks GitHub repository" +#: js/utils/musicutils.js:704 +msgid "Minor tenth" msgstr "" -#: js/turtledefs.js:783 -#: js/turtledefs.js:814 -#: js/help.js:337 -#: js/help.js:359 -msgid "Congratulations." +#: js/utils/musicutils.js:704 +msgid "Augmented ninth" msgstr "" -#: js/turtledefs.js:784 -msgid "You have finished the tour. Please enjoy Turtle Blocks!" +#: js/utils/musicutils.js:705 +msgid "Major tenth" msgstr "" -#: js/turtledefs.js:791 -msgid "A detailed guide to Music Blocks is available." +#: js/utils/musicutils.js:705 +msgid "Diminished eleventh" msgstr "" -#: js/turtledefs.js:795 -#: js/SaveInterface.js:76 -msgid "Music Blocks Guide" +#: js/utils/musicutils.js:706 +msgid "Perfect eleventh" msgstr "" -#: js/turtledefs.js:799 -msgid "Music Blocks is an open source collection of tools for exploring musical concepts." +#: js/utils/musicutils.js:706 +msgid "Augmented tenth" msgstr "" -#: js/turtledefs.js:801 -msgid "A full list of contributors can be found in the Music Blocks GitHub repository." +#: js/utils/musicutils.js:707 +msgid "Diminished twelfth" msgstr "" -#: js/turtledefs.js:803 -msgid "Music Blocks is licensed under the AGPL." +#: js/utils/musicutils.js:707 +msgid "Augmented eleventh" msgstr "" -#: js/turtledefs.js:811 -msgid "Music Blocks GitHub repository" +#: js/utils/musicutils.js:708 +msgid "Perfect twelfth" msgstr "" -#: js/turtledefs.js:815 -msgid "You have finished the tour. Please enjoy Music Blocks!" +#: js/utils/musicutils.js:708 +msgid "Diminished thirteenth" msgstr "" -#: js/activity.js:369 -msgid "Search for blocks" +#: js/utils/musicutils.js:709 +msgid "Minor thirteenth" msgstr "" -#: js/activity.js:1145 -msgid "Refresh your browser to change to advanced mode." +#: js/utils/musicutils.js:709 +msgid "Augmented fifth, plus an octave" msgstr "" -#: js/activity.js:1150 -msgid "Refresh your browser to change to beginner mode." +#: js/utils/musicutils.js:710 +msgid "Major thirteenth" msgstr "" -#: js/activity.js:1184 -msgid "Catching mice" +#: js/utils/musicutils.js:710 +msgid "Diminished seventh, plus an octave" msgstr "" -#: js/activity.js:1185 -msgid "Cleaning the instruments" +#: js/utils/musicutils.js:838 +#.TRANS: ordinal number. Please keep exactly one space between each number. +msgid "1st 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th" msgstr "" -#: js/activity.js:1186 -msgid "Testing key pieces" +#: js/utils/musicutils.js:1008 +#: js/utils/musicutils.js:1191 +#: js/utils/musicutils.js:1325 +#.TRANS: augmented is a music term related to intervals +msgid "augmented" msgstr "" -#: js/activity.js:1187 -msgid "Sight-reading" +#: js/utils/musicutils.js:1010 +#: js/utils/musicutils.js:1192 +#: js/utils/musicutils.js:1324 +#.TRANS: diminished is a music term related to intervals and mode +msgid "diminished" msgstr "" -#: js/activity.js:1188 -msgid "Combining math and music" +#: js/utils/musicutils.js:1016 +#: js/utils/musicutils.js:1322 +#: js/blocks/IntervalsBlocks.js:649 +#: js/turtleactions/IntervalsActions.js:120 +#: js/turtleactions/IntervalsActions.js:124 +#.TRANS: perfect is a music term related to intervals +msgid "perfect" msgstr "" -#: js/activity.js:1189 -msgid "Generating more blocks" +#: js/utils/musicutils.js:1018 +#.TRANS: twelve semi-tone scale for music +msgid "chromatic" msgstr "" -#: js/activity.js:1190 -msgid "Do Re Mi Fa Sol La Ti Do" +#: js/utils/musicutils.js:1019 +msgid "algerian" msgstr "" -#: js/activity.js:1191 -msgid "Tuning string instruments" +#: js/utils/musicutils.js:1020 +msgid "spanish" msgstr "" -#: js/activity.js:1192 -msgid "Pressing random keys" +#: js/utils/musicutils.js:1022 +#.TRANS: modal scale in music +msgid "octatonic" msgstr "" -#: js/activity.js:1351 -msgid "plugins will be removed upon restart." +#: js/utils/musicutils.js:1024 +#.TRANS: harmonic major scale in music +msgid "harmonic major" msgstr "" -#: js/activity.js:1360 -msgid "show Cartesian" +#: js/utils/musicutils.js:1026 +#.TRANS: natural minor scales in music +msgid "natural minor" msgstr "" -#: js/activity.js:1842 -msgid "output tools" +#: js/utils/musicutils.js:1028 +#.TRANS: harmonic minor scale in music +msgid "harmonic minor" msgstr "" -#: js/activity.js:1845 -msgid "custom note" +#: js/utils/musicutils.js:1030 +#.TRANS: melodic minor scale in music +msgid "melodic minor" msgstr "" -#: js/activity.js:1848 -msgid "accidental name" +#: js/utils/musicutils.js:1034 +#.TRANS: modal scale for music +msgid "dorian" msgstr "" -#: js/activity.js:1851 -#: js/PitchBlocks.js:855 -msgid "east indian solfege" +#: js/utils/musicutils.js:1036 +#.TRANS: modal scale for music +msgid "phrygian" msgstr "" -#: js/activity.js:1854 -#: js/PitchBlocks.js:869 -msgid "note name" +#: js/utils/musicutils.js:1038 +#.TRANS: modal scale for music +msgid "lydian" msgstr "" -#: js/activity.js:1857 -#: js/IntervalsBlocks.js:94 -msgid "temperament name" +#: js/utils/musicutils.js:1040 +#.TRANS: modal scale for music +msgid "mixolydian" msgstr "" -#: js/activity.js:1863 -msgid "chord name" +#: js/utils/musicutils.js:1044 +#.TRANS: modal scale for music +msgid "locrian" msgstr "" -#: js/activity.js:1869 -msgid "filter type" +#: js/utils/musicutils.js:1046 +#.TRANS: minor jazz scale for music +msgid "jazz minor" msgstr "" -#: js/activity.js:1872 -msgid "oscillator type" +#: js/utils/musicutils.js:1048 +#.TRANS: bebop scale for music +msgid "bebop" msgstr "" -#: js/activity.js:1878 -#: js/DrumBlocks.js:32 -msgid "noise name" +#: js/utils/musicutils.js:1049 +msgid "arabic" msgstr "" -#: js/activity.js:1881 -#: js/DrumBlocks.js:75 -msgid "drum name" +#: js/utils/musicutils.js:1050 +msgid "byzantine" msgstr "" -#: js/activity.js:1884 -#: js/DrumBlocks.js:119 -msgid "effects name" +#: js/utils/musicutils.js:1052 +#.TRANS: musical scale for music by Verdi +msgid "enigmatic" msgstr "" -#: js/activity.js:1887 -msgid "wrap mode" +#: js/utils/musicutils.js:1053 +msgid "ethiopian" msgstr "" -#: js/activity.js:1890 -msgid "load file" +#: js/utils/musicutils.js:1055 +#.TRANS: Ethiopic scale for music +msgid "geez" msgstr "" -#: js/activity.js:2056 -msgid "This block is deprecated." +#: js/utils/musicutils.js:1056 +msgid "hindu" msgstr "" -#: js/activity.js:2058 -msgid "Block cannot be found." +#: js/utils/musicutils.js:1057 +msgid "hungarian" msgstr "" -#: js/activity.js:2266 -msgid "Saving block artwork" +#: js/utils/musicutils.js:1059 +#.TRANS: minor Romanian scale for music +msgid "romanian minor" msgstr "" -#: js/activity.js:2277 -msgid "Erase" +#: js/utils/musicutils.js:1060 +msgid "spanish gypsy" msgstr "" -#: js/activity.js:2301 -#: js/activity.js:2323 -msgid "Paste" +#: js/utils/musicutils.js:1062 +#.TRANS: musical scale for Mid-Eastern music +msgid "maqam" msgstr "" -#: js/activity.js:2305 -msgid "Save block help" +#: js/utils/musicutils.js:1064 +#.TRANS: minor blues scale for music +msgid "minor blues" msgstr "" -#: js/activity.js:2390 -msgid "Jumping to the bottom of the page." +#: js/utils/musicutils.js:1066 +#.TRANS: major blues scale for music +msgid "major blues" msgstr "" -#: js/activity.js:2396 -msgid "Scrolling up." +#: js/utils/musicutils.js:1067 +msgid "whole tone" msgstr "" -#: js/activity.js:2401 -msgid "Scrolling down." +#: js/utils/musicutils.js:1069 +#.TRANS: pentatonic is a general term that means "five note scale". This scale is typically known as "minor pentatonic" +msgid "minor pentatonic" msgstr "" -#: js/activity.js:2406 -msgid "Extracting block" +#: js/utils/musicutils.js:1071 +#.TRANS: pentatonic is a general term that means "five note scale". This scale is typically known as "major pentatonic" +msgid "major pentatonic" msgstr "" -#: js/activity.js:2414 -msgid "Moving block up." +#: js/utils/musicutils.js:1072 +msgid "chinese" msgstr "" -#: js/activity.js:2435 -msgid "Moving block down." +#: js/utils/musicutils.js:1073 +msgid "egyptian" msgstr "" -#: js/activity.js:2456 -msgid "Moving block left." +#: js/utils/musicutils.js:1075 +#.TRANS: https://en.wikipedia.org/wiki/Hirajoshi_scale NOTE: There are three different versions of this scale +msgid "hirajoshi" msgstr "" -#: js/activity.js:2473 -msgid "Moving block right." +#: js/utils/musicutils.js:1076 +msgid "Japan" msgstr "" -#: js/activity.js:2488 -msgid "Jump to home position." +#: js/utils/musicutils.js:1078 +#.TRANS: https://en.wikipedia.org/wiki/In_scale and https://en.wikipedia.org/wiki/Sakura_Sakura +msgid "in" msgstr "" -#: js/activity.js:2515 -msgid "Hide blocks" +#: js/utils/musicutils.js:1080 +#.TRANS: https://en.wikipedia.org/wiki/Miny%C5%8D_scale +msgid "minyo" msgstr "" -#: js/activity.js:3389 -msgid "Click the run button to run the project." +#: js/utils/musicutils.js:1082 +#.TRANS: Italian mathematician +msgid "fibonacci" msgstr "" -#: js/activity.js:3456 -#: js/SaveInterface.js:131 -#: js/SaveInterface.js:204 -#: js/SaveInterface.js:262 -#: js/SaveInterface.js:389 -#: js/SaveInterface.js:417 -#: js/ProjectStorage.js:27 -#: js/GlobalPlanet.js:467 -#: js/GlobalPlanet.js:469 -#: js/GlobalPlanet.js:495 -#.TRANS: default project title when saving as Lilypond -msgid "My Project" +#: js/utils/musicutils.js:1083 +#: js/utils/musicutils.js:1134 +#: js/utils/musicutils.js:1177 +#: js/utils/musicutils.js:1199 +#: js/utils/synthutils.js:134 +#: js/blocks/IntervalsBlocks.js:1124 +#: js/blocks/ToneBlocks.js:946 +#: js/blocks/VolumeBlocks.js:411 +#: js/blocks/WidgetBlocks.js:399 +#: js/blocks/WidgetBlocks.js:404 +#: js/turtleactions/VolumeActions.js:218 +#: js/widgets/modewidget.js:919 +#.TRANS: customize voice +msgid "custom" msgstr "" -#: js/activity.js:4261 -msgid "Show/hide block" +#: js/utils/musicutils.js:1085 +#: js/utils/musicutils.js:1531 +#: js/blocks/WidgetBlocks.js:176 +#.TRANS: highpass filter +msgid "highpass" msgstr "" -#: js/activity.js:4263 -msgid "Expand/collapse blocks" +#: js/utils/musicutils.js:1087 +#: js/utils/musicutils.js:1532 +#.TRANS: lowpass filter +msgid "lowpass" msgstr "" -#: js/activity.js:4381 -msgid "Could not parse JSON input." +#: js/utils/musicutils.js:1089 +#: js/utils/musicutils.js:1533 +#.TRANS: bandpass filter +msgid "bandpass" msgstr "" -#: js/activity.js:4684 -#: js/activity.js:4771 -#: js/activity.js:4821 -msgid "Cannot load project from the file. Please check the file type." +#: js/utils/musicutils.js:1091 +#: js/utils/musicutils.js:1534 +#.TRANS: high-shelf filter +msgid "highshelf" msgstr "" -#: js/activity.js:5051 -msgid "Invalid parameters" +#: js/utils/musicutils.js:1093 +#: js/utils/musicutils.js:1535 +#.TRANS: low-shelf filter +msgid "lowshelf" msgstr "" -#: js/turtle-singer.js:1334 -#.TRANS: partials are weighted components in a harmonic series -msgid "You must have at least one Partial block inside of a Weighted-partial block" +#: js/utils/musicutils.js:1095 +#: js/utils/musicutils.js:1536 +#.TRANS: notch-shelf filter +msgid "notch" msgstr "" -#: js/turtle-singer.js:2048 -msgid "synth cannot play chords." +#: js/utils/musicutils.js:1097 +#: js/utils/musicutils.js:1537 +#.TRANS: all-pass filter +msgid "allpass" msgstr "" -#: js/lilypond.js:614 -msgid "brown rat" +#: js/utils/musicutils.js:1099 +#: js/utils/musicutils.js:1538 +#.TRANS: peaking filter +msgid "peaking" msgstr "" -#: js/lilypond.js:615 -msgid "mole" +#: js/utils/musicutils.js:1100 +#: js/utils/musicutils.js:1546 +#: js/utils/synthutils.js:126 +#: js/blocks/PitchBlocks.js:85 +#.TRANS: sine wave +msgid "sine" msgstr "" -#: js/lilypond.js:616 -msgid "chipmunk" +#: js/utils/musicutils.js:1101 +#: js/utils/musicutils.js:1547 +#: js/utils/synthutils.js:128 +#: js/blocks/PitchBlocks.js:39 +#.TRANS: square wave +msgid "square" msgstr "" -#: js/lilypond.js:617 -msgid "red squirrel" +#: js/utils/musicutils.js:1102 +#: js/utils/musicutils.js:1548 +#: js/utils/synthutils.js:132 +#: js/blocks/PitchBlocks.js:62 +#: js/blocks/ToneBlocks.js:39 +#.TRANS: triangle wave +msgid "triangle" msgstr "" -#: js/lilypond.js:618 -msgid "guinea pig" +#: js/utils/musicutils.js:1103 +#: js/utils/musicutils.js:1549 +#: js/utils/synthutils.js:130 +#: js/blocks/PitchBlocks.js:108 +#.TRANS: sawtooth wave +msgid "sawtooth" msgstr "" -#: js/lilypond.js:619 -msgid "capybara" +#: js/utils/musicutils.js:1105 +#: js/utils/musicutils.js:1312 +#: js/blocks/PitchBlocks.js:931 +#: js/blocks/PitchBlocks.js:937 +#: js/turtleactions/PitchActions.js:469 +#.TRANS: even numbers +#.TRANS: invert based on even or odd number or musical scale +msgid "even" msgstr "" -#: js/lilypond.js:620 -msgid "coypu" +#: js/utils/musicutils.js:1107 +#: js/utils/musicutils.js:1313 +#: js/blocks/PitchBlocks.js:937 +#: js/turtleactions/PitchActions.js:471 +#.TRANS: odd numbers +msgid "odd" msgstr "" -#: js/lilypond.js:621 -msgid "black rat" +#: js/utils/musicutils.js:1108 +#: js/utils/musicutils.js:1314 +#: js/blocks/PitchBlocks.js:937 +#: js/turtleactions/PitchActions.js:473 +msgid "scalar" msgstr "" -#: js/lilypond.js:622 -msgid "grey squirrel" +#: js/utils/musicutils.js:1109 +#: js/utils/synthutils.js:72 +#: js/blocks/VolumeBlocks.js:47 +#.TRANS: musical instrument +msgid "piano" msgstr "" -#: js/lilypond.js:623 -msgid "flying squirrel" +#: js/utils/musicutils.js:1110 +#: js/utils/synthutils.js:74 +#.TRANS: musical instrument +msgid "violin" msgstr "" -#: js/lilypond.js:624 -msgid "bat" +#: js/utils/musicutils.js:1111 +#: js/utils/synthutils.js:76 +#.TRANS: viola musical instrument +msgid "viola" msgstr "" -#: js/lilypond.js:757 -#: js/lilypond.js:921 -#: js/lilypond.js:959 -#: js/ActionBlocks.js:1256 -#: js/ExtrasBlocks.js:553 -msgid "start drum" +#: js/utils/musicutils.js:1112 +#: js/utils/synthutils.js:114 +#.TRANS: xylophone musical instrument +msgid "xylophone" msgstr "" -#: js/SaveInterface.js:59 -#: js/SaveInterface.js:61 -#: js/SaveInterface.js:93 -msgid "Music Blocks Project" +#: js/utils/musicutils.js:1113 +#: js/utils/synthutils.js:136 +#.TRANS: vibraphone musical instrument +msgid "vibraphone" msgstr "" -#: js/SaveInterface.js:63 -msgid "This project was created in Music Blocks" +#: js/utils/musicutils.js:1114 +#: js/utils/synthutils.js:78 +#.TRANS: musical instrument +msgid "cello" msgstr "" -#: js/SaveInterface.js:67 -msgid "Music Blocks is a Free/Libre Software application." +#: js/utils/musicutils.js:1116 +#: js/utils/synthutils.js:82 +#.TRANS: viola musical instrument +msgid "double bass" msgstr "" -#: js/SaveInterface.js:69 -msgid "The source code can be accessed at" +#: js/utils/musicutils.js:1117 +#: js/utils/synthutils.js:84 +#: js/widgets/rhythmruler.js:2511 +#.TRANS: musical instrument +msgid "guitar" msgstr "" -#: js/SaveInterface.js:72 -msgid "For more information, please consult the" +#: js/utils/musicutils.js:1118 +#: js/utils/synthutils.js:86 +#.TRANS: musical instrument +msgid "acoustic guitar" msgstr "" -#: js/SaveInterface.js:83 -msgid "Alternatively, open the file in Music Blocks using the Load project button." +#: js/utils/musicutils.js:1119 +#: js/utils/synthutils.js:88 +#.TRANS: musical instrument +msgid "flute" msgstr "" -#: js/SaveInterface.js:85 -msgid "Project Code" +#: js/utils/musicutils.js:1120 +#: js/utils/synthutils.js:90 +#.TRANS: musical instrument +msgid "clarinet" msgstr "" -#: js/SaveInterface.js:87 -msgid "This code stores data about the blocks in a project." +#: js/utils/musicutils.js:1121 +#: js/utils/synthutils.js:92 +#.TRANS: musical instrument +msgid "saxophone" msgstr "" -#: js/SaveInterface.js:89 -msgid "Show" +#: js/utils/musicutils.js:1122 +#: js/utils/synthutils.js:94 +#.TRANS: musical instrument +msgid "tuba" msgstr "" -#: js/SaveInterface.js:91 -msgid "Hide" +#: js/utils/musicutils.js:1123 +#: js/utils/synthutils.js:96 +#.TRANS: musical instrument +msgid "trumpet" msgstr "" -#: js/SaveInterface.js:197 -#: js/SaveInterface.js:58 -msgid "No description provided" +#: js/utils/musicutils.js:1124 +#: js/utils/synthutils.js:98 +#.TRANS: musical instrument +msgid "oboe" msgstr "" -#: js/SaveInterface.js:332 -msgid "Your recording is in progress." +#: js/utils/musicutils.js:1125 +#: js/utils/synthutils.js:100 +#.TRANS: musical instrument +msgid "trombone" msgstr "" -#: js/SaveInterface.js:401 -#.TRANS: File name prompt for save as Lilypond -msgid "File name" +#: js/utils/musicutils.js:1126 +#: js/utils/synthutils.js:116 +#.TRANS: polytone synthesizer +msgid "electronic synth" msgstr "" -#: js/SaveInterface.js:403 -#: js/StringHelper.js:39 -#.TRANS: Project title prompt for save as Lilypond -msgid "Project title" +#: js/utils/musicutils.js:1127 +#: js/utils/synthutils.js:118 +#.TRANS: simple monotone synthesizer +msgid "simple 1" msgstr "" -#: js/SaveInterface.js:405 -#.TRANS: Project title prompt for save as Lilypond -msgid "Project author" +#: js/utils/musicutils.js:1128 +msgid "simple 2" msgstr "" -#: js/SaveInterface.js:407 -#.TRANS: MIDI prompt for save as Lilypond -msgid "Include MIDI output?" +#: js/utils/musicutils.js:1129 +msgid "simple 3" msgstr "" -#: js/SaveInterface.js:409 -#.TRANS: Guitar prompt for save as Lilypond -msgid "Include guitar tablature output?" +#: js/utils/musicutils.js:1130 +msgid "simple 4" msgstr "" -#: js/SaveInterface.js:411 -#.TRANS: Lilypond is a scripting language for generating sheet music -msgid "Save as Lilypond" +#: js/utils/musicutils.js:1131 +#: js/utils/synthutils.js:58 +#: js/blocks/DrumBlocks.js:191 +#.TRANS: white noise synthesizer +msgid "white noise" msgstr "" -#: js/SaveInterface.js:426 -#: js/EnsembleBlocks.js:75 -#: js/EnsembleBlocks.js:154 -#: js/EnsembleBlocks.js:216 -#: js/EnsembleBlocks.js:302 -#: js/EnsembleBlocks.js:348 -#: js/EnsembleBlocks.js:389 -#: js/EnsembleBlocks.js:441 -#: js/EnsembleBlocks.js:490 -#: js/EnsembleBlocks.js:536 -#: js/EnsembleBlocks.js:583 -#: js/EnsembleBlocks.js:637 -#: js/EnsembleBlocks.js:753 -#: js/EnsembleBlocks.js:840 -#: js/EnsembleBlocks.js:899 -#: js/EnsembleBlocks.js:942 -#: js/EnsembleBlocks.js:1212 -#: js/EnsembleBlocks.js:1280 -#.TRANS: default project author when saving as Lilypond -msgid "Mr. Mouse" +#: js/utils/musicutils.js:1132 +#: js/utils/synthutils.js:60 +#.TRANS: brown noise synthesizer +msgid "brown noise" msgstr "" -#: js/SaveInterface.js:573 -msgid "The Lilypond code is copied to clipboard. You can paste it here: " +#: js/utils/musicutils.js:1133 +#: js/utils/synthutils.js:62 +#.TRANS: pink noise synthesizer +msgid "pink noise" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:50 -#: js/RhythmBlockPaletteBlocks.js:232 -#.TRANS: rhythm block -#.TRANS: translate "rhythm1" as rhythm -msgid "rhythm1" -msgstr "rhythm" - -#: js/RhythmBlockPaletteBlocks.js:70 -#: js/RhythmBlockPaletteBlocks.js:251 -#: js/RhythmBlockPaletteBlocks.js:484 -#: js/RhythmBlockPaletteBlocks.js:553 -#: js/RhythmBlockPaletteBlocks.js:874 -msgid "number of notes" +#: js/utils/musicutils.js:1135 +#: js/utils/synthutils.js:148 +#: js/widgets/rhythmruler.js:2057 +#: js/widgets/rhythmruler.js:2319 +#.TRANS: musical instrument +msgid "snare drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:126 -msgid "polyphonic rhythm" +#: js/utils/musicutils.js:1136 +#: js/utils/synthutils.js:150 +#.TRANS: musical instrument +msgid "kick drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:218 -msgid "The Rhythm block is used to generate rhythm patterns." +#: js/utils/musicutils.js:1137 +#: js/utils/synthutils.js:152 +#.TRANS: musical instrument +msgid "tom tom" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:279 -msgid "1/64 note" +#: js/utils/musicutils.js:1138 +#: js/utils/synthutils.js:154 +#.TRANS: musical instrument +msgid "floor tom" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:303 -msgid "1/32 note" +#: js/utils/musicutils.js:1139 +#: js/utils/synthutils.js:156 +#.TRANS: musical instrument +msgid "bass drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:331 -msgid "1/16 note" +#: js/utils/musicutils.js:1140 +#: js/utils/synthutils.js:158 +#.TRANS: a drum made from an inverted cup +msgid "cup drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:359 -msgid "eighth note" +#: js/utils/musicutils.js:1141 +#: js/utils/synthutils.js:160 +#.TRANS: musical instrument +msgid "darbuka drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:387 -msgid "quarter note" +#: js/utils/musicutils.js:1142 +#: js/utils/synthutils.js:164 +#.TRANS: musical instrument +msgid "hi hat" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:415 -msgid "half note" +#: js/utils/musicutils.js:1143 +#: js/utils/synthutils.js:166 +#.TRANS: a small metal bell +msgid "ride bell" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:443 -msgid "whole note" +#: js/utils/musicutils.js:1144 +#: js/utils/synthutils.js:168 +#.TRANS: musical instrument +msgid "cow bell" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:481 -#: js/RhythmBlockPaletteBlocks.js:550 -#: js/RhythmBlockPaletteBlocks.js:601 -#.TRANS: A tuplet is a note value divided into irregular time values. -msgid "tuplet" +#: js/utils/musicutils.js:1145 +msgid "japanese drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:767 -msgid "septuplet" +#: js/utils/musicutils.js:1146 +#: js/utils/synthutils.js:174 +#.TRANS: musical instrument +msgid "japanese bell" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:795 -msgid "quintuplet" +#: js/utils/musicutils.js:1147 +#: js/utils/synthutils.js:170 +#.TRANS: musical instrument +msgid "triangle bell" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:823 -msgid "triplet" +#: js/utils/musicutils.js:1148 +#: js/utils/synthutils.js:172 +#.TRANS: musical instrument +msgid "finger cymbals" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:850 -msgid "simple tuplet" +#: js/utils/musicutils.js:1149 +#: js/utils/synthutils.js:176 +#.TRANS: a musically tuned set of bells +msgid "chime" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:860 -msgid "Tuplets are a collection of notes that get scaled to a specific duration." +#: js/utils/musicutils.js:1150 +#: js/utils/synthutils.js:178 +#.TRANS: a musical instrument +msgid "gong" msgstr "" -#: js/WidgetBlocks.js:71 -#.TRANS: sound envelope (ADSR) -msgid "envelope" +#: js/utils/musicutils.js:1151 +#: js/utils/synthutils.js:180 +#.TRANS: sound effect +msgid "clang" msgstr "" -#: js/WidgetBlocks.js:79 -#.TRANS: Attack time is the time taken for initial run-up of level from nil to peak, beginning when the key is first pressed. -msgid "attack" +#: js/utils/musicutils.js:1152 +#: js/utils/synthutils.js:182 +#.TRANS: sound effect +msgid "crash" msgstr "" -#: js/WidgetBlocks.js:81 -#.TRANS: Decay time is the time taken for the subsequent run down from the attack level to the designated sustain level. -msgid "decay" +#: js/utils/musicutils.js:1153 +#: js/utils/synthutils.js:184 +#.TRANS: sound effect +msgid "bottle" msgstr "" -#: js/WidgetBlocks.js:83 -#.TRANS: Sustain level is the level during the main sequence of the sound's duration, until the key is released. -msgid "sustain" +#: js/utils/musicutils.js:1154 +#: js/utils/synthutils.js:186 +#.TRANS: sound effect +msgid "clap" msgstr "" -#: js/WidgetBlocks.js:85 -#.TRANS: Release time is the time taken for the level to decay from the sustain level to zero after the key is released. -msgid "release" +#: js/utils/musicutils.js:1155 +#: js/utils/synthutils.js:188 +#.TRANS: sound effect +msgid "slap" msgstr "" -#: js/WidgetBlocks.js:96 -msgid "Attack value should be from 0 to 100." +#: js/utils/musicutils.js:1156 +#: js/utils/synthutils.js:190 +#.TRANS: sound effect +msgid "splash" msgstr "" -#: js/WidgetBlocks.js:99 -msgid "Decay value should be from 0 to 100." +#: js/utils/musicutils.js:1157 +#: js/utils/synthutils.js:192 +#.TRANS: sound effect +msgid "bubbles" msgstr "" -#: js/WidgetBlocks.js:102 -msgid "Sustain value should be from 0 to 100." +#: js/utils/musicutils.js:1158 +#: js/utils/synthutils.js:194 +#.TRANS: sound effect +msgid "raindrop" msgstr "" -#: js/WidgetBlocks.js:105 -msgid "Release value should be from 0-100." +#: js/utils/musicutils.js:1159 +#: js/utils/synthutils.js:196 +#.TRANS: animal sound effect +msgid "cat" msgstr "" -#: js/WidgetBlocks.js:121 -msgid "You are adding multiple envelope blocks." +#: js/utils/musicutils.js:1160 +#: js/utils/synthutils.js:198 +#.TRANS: animal sound effect +msgid "cricket" msgstr "" -#: js/WidgetBlocks.js:144 -#.TRANS: a filter removes some unwanted components from a signal -msgid "filter" +#: js/utils/musicutils.js:1161 +#: js/utils/synthutils.js:200 +#.TRANS: animal sound effect +msgid "dog" msgstr "" -#: js/WidgetBlocks.js:149 -#: js/musicutils.js:706 -#: js/musicutils.js:1105 -#.TRANS: highpass filter -msgid "highpass" +#: js/utils/musicutils.js:1163 +#: js/utils/synthutils.js:102 +#.TRANS: musical instrument +msgid "banjo" msgstr "" -#: js/WidgetBlocks.js:152 -#: js/ToneBlocks.js:42 -#: js/timbre.js:1558 -#: js/timbre.js:1808 -#.TRANS: type of filter, e.g., lowpass, highpass, etc. -#.TRANS: there are different types (sine, triangle, square...) of oscillators. -msgid "type" +#: js/utils/musicutils.js:1164 +#: js/utils/synthutils.js:104 +#.TRANS: musical instrument +msgid "koto" msgstr "" -#: js/WidgetBlocks.js:154 -#: js/timbre.js:1818 -#.TRANS: rolloff is the steepness of a change in frequency. -msgid "rolloff" +#: js/utils/musicutils.js:1165 +#: js/utils/synthutils.js:106 +#.TRANS: musical instrument +msgid "dulcimer" msgstr "" -#: js/WidgetBlocks.js:155 -#: js/MediaBlocks.js:692 -#: js/temperament.js:382 -#: js/temperament.js:417 -#: js/temperament.js:477 -#: js/temperament.js:485 -#: js/temperament.js:1348 -#: js/timbre.js:1842 -msgid "frequency" +#: js/utils/musicutils.js:1166 +#: js/utils/synthutils.js:108 +#.TRANS: musical instrument +msgid "electric guitar" msgstr "" -#: js/WidgetBlocks.js:179 -#.TRANS: rolloff is the steepness of a change in frequency. -msgid "Rolloff value should be either -12, -24, -48, or -96 decibels/octave." +#: js/utils/musicutils.js:1167 +#: js/utils/synthutils.js:110 +#.TRANS: musical instrument +msgid "bassoon" msgstr "" -#: js/WidgetBlocks.js:211 -msgid "The Temperament tool is used to define custom tuning." +#: js/utils/musicutils.js:1168 +#: js/utils/synthutils.js:112 +#.TRANS: musical instrument +msgid "celeste" msgstr "" -#: js/WidgetBlocks.js:277 -#: js/sampler.js:329 -msgid "Upload a sample and adjust its pitch center." +#: js/utils/musicutils.js:1170 +#: js/widgets/temperament.js:787 +#.TRANS: musical temperament +msgid "equal" msgstr "" -#: js/WidgetBlocks.js:284 -#.TRANS: the speed at music is should be played. -msgid "sampler" +#: js/utils/musicutils.js:1172 +#.TRANS: musical temperament +msgid "Pythagorean" msgstr "" -#: js/WidgetBlocks.js:329 -#: js/WidgetBlocks.js:334 -#: js/IntervalsBlocks.js:928 -#: js/VolumeBlocks.js:411 -#: js/ToneBlocks.js:946 -#: js/VolumeActions.js:218 -#: js/musicutils.js:704 -#: js/musicutils.js:755 -#: js/musicutils.js:798 -#: js/musicutils.js:820 -#: js/musicutils.js:1136 -#: js/synthutils.js:118 -#: js/modewidget.js:919 -#.TRANS: customize voice -msgid "custom" +#: js/utils/musicutils.js:1174 +#.TRANS: musical temperament +msgid "just intonation" msgstr "" -#: js/WidgetBlocks.js:432 -msgid "The Meter block opens a tool to select strong beats for the meter." +#: js/utils/musicutils.js:1176 +#.TRANS: musical temperament +msgid "meantone" msgstr "" -#: js/WidgetBlocks.js:473 -msgid "The oscilloscope block opens a tool to visualize waveforms." +#: js/utils/musicutils.js:1193 +msgid "major 7th" msgstr "" -#: js/WidgetBlocks.js:478 -msgid "oscilloscope" +#: js/utils/musicutils.js:1194 +msgid "minor 7th" msgstr "" -#: js/WidgetBlocks.js:530 -msgid "The Custom mode block opens a tool to explore musical mode (the spacing of the notes in a scale)." +#: js/utils/musicutils.js:1195 +msgid "dominant 7th" msgstr "" -#: js/WidgetBlocks.js:536 -#.TRANS: musical mode is the pattern of half-steps in an octave, e.g., Major or Minor modes -msgid "custom mode" +#: js/utils/musicutils.js:1196 +msgid "minor-major 7th" msgstr "" -#: js/WidgetBlocks.js:570 -msgid "The Tempo block opens a metronome to visualize the beat." +#: js/utils/musicutils.js:1197 +msgid "fully-diminished 7th" msgstr "" -#: js/WidgetBlocks.js:617 -msgid "The Arpeggio Widget is used to compose chord sequences." +#: js/utils/musicutils.js:1198 +msgid "half-diminished 7th" msgstr "" -#: js/WidgetBlocks.js:623 -#: js/IntervalsBlocks.js:683 -msgid "arpeggio" +#: js/utils/musicutils.js:1557 +#: js/utils/musicutils.js:1569 +msgid "Equal (12EDO)" msgstr "" -#: js/WidgetBlocks.js:677 -msgid "The Pitch drum matrix is used to map pitches to drum sounds." +#: js/utils/musicutils.js:1558 +#: js/utils/musicutils.js:1570 +msgid "5-limit Just Intonation" msgstr "" -#: js/WidgetBlocks.js:682 -#.TRANS: makes a mapping between pitches and drum sounds -msgid "pitch-drum mapper" +#: js/utils/musicutils.js:1559 +#: js/utils/musicutils.js:1571 +msgid "Pythagorean (3-limit JI)" msgstr "" -#: js/WidgetBlocks.js:724 -msgid "You must have at least one pitch block and one drum block in the matrix." +#: js/utils/musicutils.js:1560 +#: js/utils/musicutils.js:1561 +#: js/utils/musicutils.js:1572 +#: js/utils/musicutils.js:1573 +msgid "Meantone" msgstr "" -#: js/WidgetBlocks.js:746 -msgid "The Pitch slider tool to is used to generate pitches at selected frequencies." +#: js/utils/musicutils.js:1574 +msgid "Custom" msgstr "" -#: js/WidgetBlocks.js:751 -#.TRANS: widget to generate pitches using a slider -msgid "pitch slider" +#: js/utils/musicutils.js:5387 +#: js/utils/musicutils.js:5430 +msgid "current" msgstr "" -#: js/WidgetBlocks.js:788 -msgid "chromatic keyboard" +#: js/utils/musicutils.js:5390 +#: js/utils/musicutils.js:5421 +msgid "next" msgstr "" -#: js/WidgetBlocks.js:815 -#: js/WidgetBlocks.js:874 -#.TRANS: widget to generate pitches using a slider -msgid "music keyboard" +#: js/utils/musicutils.js:5393 +#: js/utils/musicutils.js:5426 +msgid "previous" msgstr "" -#: js/WidgetBlocks.js:859 -#: js/WidgetBlocks.js:866 -msgid "The Music keyboard block opens a piano keyboard that can be used to create notes." +#: js/utils/synthutils.js:120 +#.TRANS: simple monotone synthesizer +msgid "simple-2" msgstr "" -#: js/WidgetBlocks.js:910 -msgid "The Pitch staircase tool to is used to generate pitches from a given ratio." +#: js/utils/synthutils.js:122 +#.TRANS: simple monotone synthesizer +msgid "simple-3" msgstr "" -#: js/WidgetBlocks.js:917 -#.TRANS: generate a progressive sequence of pitches -msgid "pitch staircase" +#: js/utils/synthutils.js:124 +#.TRANS: simple monotone synthesizer +msgid "simple-4" msgstr "" -#: js/WidgetBlocks.js:982 -msgid "The Rhythm Maker block opens a tool to create drum machines." +#: js/utils/synthutils.js:162 +#.TRANS: musical instrument +msgid "taiko" msgstr "" -#: js/WidgetBlocks.js:1036 -msgid "G major scale" +#: js/blocks/ActionBlocks.js:58 +msgid "The Return block will return a value from an action." msgstr "" -#: js/WidgetBlocks.js:1064 -msgid "C major scale" +#: js/blocks/ActionBlocks.js:75 +msgid "return" msgstr "" -#: js/WidgetBlocks.js:1097 -msgid "The Phrase Maker block opens a tool to create musical phrases." +#: js/blocks/ActionBlocks.js:128 +msgid "The Return to URL block will return a value to a webpage." msgstr "" -#: js/WidgetBlocks.js:1104 -#.TRANS: assigns pitch to a sequence of beats to generate a melody -msgid "phrase maker" +#: js/blocks/ActionBlocks.js:145 +msgid "return to URL" msgstr "" -#: js/WidgetBlocks.js:1168 -msgid "You must have at least one pitch block and one rhythm block in the matrix." +#: js/blocks/ActionBlocks.js:233 +#: js/blocks/ActionBlocks.js:290 +#: js/blocks/ActionBlocks.js:501 +#: js/blocks/ActionBlocks.js:688 +msgid "The Calculate block returns a value calculated by an action." msgstr "" -#: js/WidgetBlocks.js:1220 -msgid "The Status block opens a tool for inspecting the status of Music Blocks as it is running." +#: js/blocks/ActionBlocks.js:251 +#: js/blocks/ActionBlocks.js:517 +#: js/blocks/ActionBlocks.js:707 +msgid "calculate" msgstr "" -#: js/IntervalsBlocks.js:45 -msgid "set temperament" +#: js/blocks/ActionBlocks.js:376 +#: js/blocks/ActionBlocks.js:593 +#: js/blocks/ActionBlocks.js:942 +#: js/blocks/ActionBlocks.js:1389 +#.TRANS: do is the do something or take an action. +msgid "The Do block is used to initiate an action." msgstr "" -#: js/IntervalsBlocks.js:63 -#: js/MediaBlocks.js:746 -#: js/PitchBlocks.js:657 -#: js/PitchBlocks.js:933 -#: js/PitchBlocks.js:972 -#: js/PitchBlocks.js:1005 -#: js/PitchBlocks.js:1166 -#: js/PitchBlocks.js:1679 -#: js/PitchBlocks.js:1720 -#: js/PitchBlocks.js:1827 -#: js/ToneBlocks.js:1025 -#.TRANS: adjusts the shift up or down by one octave (twelve half-steps in the interval between two notes, one having twice or half the frequency in Hz of the other.) -msgid "octave" -msgstr "" +#: js/blocks/ActionBlocks.js:390 +#: js/blocks/ActionBlocks.js:610 +#: js/blocks/ActionBlocks.js:959 +#: js/blocks/ActionBlocks.js:1048 +#: js/blocks/MeterBlocks.js:769 +msgid "do1" +msgstr "do" -#: js/IntervalsBlocks.js:99 -msgid "The Temperament name block is used to select a tuning method." +#: js/blocks/ActionBlocks.js:390 +#: js/blocks/ActionBlocks.js:610 +#: js/blocks/ActionBlocks.js:959 +#: js/blocks/ActionBlocks.js:1048 +#: js/blocks/FlowBlocks.js:742 +#: js/blocks/FlowBlocks.js:822 +#: js/blocks/MeterBlocks.js:769 +msgid "do" msgstr "" -#: js/IntervalsBlocks.js:161 -msgid "doubly" +#: js/blocks/ActionBlocks.js:791 +#: js/blocks/ActionBlocks.js:865 +msgid "The Arg block contains the value of an argument passed to an action." msgstr "" -#: js/IntervalsBlocks.js:166 -msgid "The Doubly block will double the size of an interval." +#: js/blocks/ActionBlocks.js:806 +#: js/blocks/ActionBlocks.js:878 +msgid "arg" msgstr "" -#: js/IntervalsBlocks.js:262 -msgid "interval number" +#: js/blocks/ActionBlocks.js:836 +#: js/blocks/ActionBlocks.js:900 +#: js/blocks/ActionBlocks.js:908 +msgid "Invalid argument" msgstr "" -#: js/IntervalsBlocks.js:330 -#.TRANS: measure the distance between two pitches in semi-tones -msgid "semi-tone interval measure" +#: js/blocks/ActionBlocks.js:944 +msgid "In the example, it is used with the One of block to choose a random phase." msgstr "" -#: js/IntervalsBlocks.js:397 -#: js/IntervalsBlocks.js:513 -msgid "You must use two pitch blocks when measuring an interval." +#: js/blocks/ActionBlocks.js:1019 +#: js/blocks/ActionBlocks.js:1026 +msgid "The Listen block is used to listen for an event such as a mouse click." msgstr "" -#: js/IntervalsBlocks.js:439 -msgid "The Scalar interval block measures the distance between two notes in the current key and mode." +#: js/blocks/ActionBlocks.js:1028 +msgid "When the event happens, an action is taken." msgstr "" -#: js/IntervalsBlocks.js:445 -#.TRANS: measure the distance between two pitches in steps of musical scale -msgid "scalar interval measure" +#: js/blocks/ActionBlocks.js:1045 +msgid "on" msgstr "" -#: js/IntervalsBlocks.js:592 -#: js/musicutils.js:637 -#: js/musicutils.js:908 -#.TRANS: perfect is a music term related to intervals -msgid "perfect" +#: js/blocks/ActionBlocks.js:1048 +#: js/blocks/ActionBlocks.js:1049 +#: js/blocks/ActionBlocks.js:1153 +msgid "event" msgstr "" -#: js/IntervalsBlocks.js:621 -msgid "In the figure, we add sol# to sol." +#: js/blocks/ActionBlocks.js:1133 +msgid "The Broadcast block is used to trigger an event." msgstr "" -#: js/IntervalsBlocks.js:627 -#: js/OrnamentBlocks.js:220 -#.TRANS: calculate a relative step between notes based on semi-tones -msgid "semi-tone interval" +#: js/blocks/ActionBlocks.js:1151 +msgid "broadcast" msgstr "" -#: js/IntervalsBlocks.js:676 -msgid "The output of the example is: do, mi, sol, sol, ti, mi" +#: js/blocks/ActionBlocks.js:1208 +msgid "Each Start block is a separate voice." msgstr "" -#: js/IntervalsBlocks.js:735 -msgid "The Chord block calculates common chords." +#: js/blocks/ActionBlocks.js:1304 +msgid "It is often used for storing a phrase of music that is repeated." msgstr "" -#: js/IntervalsBlocks.js:737 -msgid "In the figure, we generate a C-major chord." +#: js/blocks/ActionBlocks.js:1495 +msgid "define temperament" msgstr "" -#: js/IntervalsBlocks.js:742 -msgid "chord" +#: js/blocks/BooleanBlocks.js:44 +msgid "The Not block is the logical not operator." msgstr "" -#: js/IntervalsBlocks.js:794 -msgid "The Ratio Interval block calculates an interval based on a ratio." +#: js/blocks/BooleanBlocks.js:62 +msgid "not" msgstr "" -#: js/IntervalsBlocks.js:799 -msgid "ratio interval" +#: js/blocks/BooleanBlocks.js:134 +msgid "The And block is the logical and operator." msgstr "" -#: js/IntervalsBlocks.js:868 -msgid "In the figure, we add la to sol." +#: js/blocks/BooleanBlocks.js:152 +msgid "and" msgstr "" -#: js/IntervalsBlocks.js:924 -#.TRANS: define a custom mode -msgid "define mode" +#: js/blocks/BooleanBlocks.js:218 +msgid "The Or block is the logical or operator." msgstr "" -#: js/IntervalsBlocks.js:977 -msgid "movable Do" +#: js/blocks/BooleanBlocks.js:236 +msgid "or" msgstr "" -#: js/IntervalsBlocks.js:1028 -#.TRANS: mode length is the number of notes in the mode, e.g., 7 for major and minor scales; 12 for chromatic scales -msgid "mode length" +#: js/blocks/BooleanBlocks.js:302 +msgid "The XOR block is the logical XOR operator." msgstr "" -#: js/IntervalsBlocks.js:1037 -msgid "The Mode length block is the number of notes in the current scale." +#: js/blocks/BooleanBlocks.js:320 +msgid "xor" msgstr "" -#: js/IntervalsBlocks.js:1039 -msgid "Most Western scales have 7 notes." +#: js/blocks/BooleanBlocks.js:808 +msgid "The Equal block returns True if the two numbers are equal." msgstr "" -#: js/IntervalsBlocks.js:1088 -#.TRANS: the mode in music is 'major', 'minor', etc. -msgid "current mode" +#: js/blocks/BooleanBlocks.js:909 +msgid "The Not-equal-to block returns True if the two numbers are not equal to each other." msgstr "" -#: js/IntervalsBlocks.js:1141 -#.TRANS: the key is a group of pitches with which a music composition is created -msgid "current key" +#: js/blocks/BooleanBlocks.js:1008 +msgid "The Boolean block is used to specify true or false." msgstr "" -#: js/IntervalsBlocks.js:1193 -#: js/IntervalsBlocks.js:1238 -#.TRANS: set the key and mode, e.g. C Major -msgid "set key" +#: js/blocks/BoxesBlocks.js:53 +#: js/blocks/BoxesBlocks.js:59 +msgid "The Add-to block is used to add to the value stored in a box." msgstr "" -#: js/IntervalsBlocks.js:1247 -#: js/IntervalsBlocks.js:1253 -msgid "The Set key block is used to set the key and mode," +#: js/blocks/BoxesBlocks.js:61 +msgid "It can also be used with other blocks such as Color and Pen size." msgstr "" -#: js/IntervalsBlocks.js:1253 -msgid "eg C Major" +#: js/blocks/BoxesBlocks.js:73 +msgid "add" msgstr "" -#: js/IntervalsBlocks.js:1266 -#: js/DictBlocks.js:215 -#: js/DictBlocks.js:216 -#: js/DictBlocks.js:289 -#: js/DictBlocks.js:290 -#: js/DictBlocks.js:357 -#: js/DictBlocks.js:430 -#: js/DictBlocks.js:431 -#.TRANS: key, e.g., C in C Major -msgid "key" +#: js/blocks/BoxesBlocks.js:75 +#: js/widgets/temperament.js:857 +msgid "to" msgstr "" -#: js/ActionBlocks.js:58 -msgid "The Return block will return a value from an action." +#: js/blocks/BoxesBlocks.js:75 +#: js/blocks/BoxesBlocks.js:595 +#: js/blocks/HeapBlocks.js:544 +msgid "value1" +msgstr "value" + +#: js/blocks/BoxesBlocks.js:118 +msgid "Block does not support incrementing." msgstr "" -#: js/ActionBlocks.js:75 -msgid "return" +#: js/blocks/BoxesBlocks.js:152 +msgid "The Add-1-to block adds one to the value stored in a box." msgstr "" -#: js/ActionBlocks.js:128 -msgid "The Return to URL block will return a value to a webpage." +#: js/blocks/BoxesBlocks.js:163 +msgid "add 1 to" msgstr "" -#: js/ActionBlocks.js:145 -msgid "return to URL" +#: js/blocks/BoxesBlocks.js:211 +msgid "The Subtract-1-from block subtracts one from the value stored in a box." msgstr "" -#: js/ActionBlocks.js:233 -#: js/ActionBlocks.js:290 -#: js/ActionBlocks.js:501 -#: js/ActionBlocks.js:688 -msgid "The Calculate block returns a value calculated by an action." +#: js/blocks/BoxesBlocks.js:222 +msgid "subtract 1 from" msgstr "" -#: js/ActionBlocks.js:251 -#: js/ActionBlocks.js:517 -#: js/ActionBlocks.js:707 -msgid "calculate" +#: js/blocks/BoxesBlocks.js:270 +#: js/blocks/BoxesBlocks.js:387 +msgid "The Box block returns the value stored in a box." msgstr "" -#: js/ActionBlocks.js:376 -#: js/ActionBlocks.js:593 -#: js/ActionBlocks.js:942 -#: js/ActionBlocks.js:1389 -#.TRANS: do is the do something or take an action. -msgid "The Do block is used to initiate an action." +#: js/blocks/BoxesBlocks.js:500 +#: js/blocks/BoxesBlocks.js:576 +msgid "The Store in block will store a value in a box." msgstr "" -#: js/ActionBlocks.js:390 -#: js/ActionBlocks.js:610 -#: js/ActionBlocks.js:959 -#: js/ActionBlocks.js:1048 -#: js/MeterBlocks.js:769 -msgid "do1" -msgstr "do" +#: js/blocks/BoxesBlocks.js:595 +#: js/blocks/EnsembleBlocks.js:391 +#: js/blocks/EnsembleBlocks.js:402 +msgid "name1" +msgstr "name" -#: js/ActionBlocks.js:390 -#: js/ActionBlocks.js:610 -#: js/ActionBlocks.js:959 -#: js/ActionBlocks.js:1048 -#: js/FlowBlocks.js:742 -#: js/FlowBlocks.js:822 -#: js/MeterBlocks.js:769 -msgid "do" +#: js/blocks/BoxesBlocks.js:652 +msgid "The Box2 block returns the value stored in Box2." msgstr "" -#: js/ActionBlocks.js:791 -#: js/ActionBlocks.js:865 -msgid "The Arg block contains the value of an argument passed to an action." +#: js/blocks/BoxesBlocks.js:703 +msgid "The Store in Box2 block is used to store a value in Box2." msgstr "" -#: js/ActionBlocks.js:806 -#: js/ActionBlocks.js:878 -msgid "arg" +#: js/blocks/BoxesBlocks.js:715 +msgid "store in box2" msgstr "" -#: js/ActionBlocks.js:836 -#: js/ActionBlocks.js:900 -#: js/ActionBlocks.js:908 -msgid "Invalid argument" +#: js/blocks/BoxesBlocks.js:761 +msgid "The Box1 block returns the value stored in Box1." msgstr "" -#: js/ActionBlocks.js:944 -msgid "In the example, it is used with the One of block to choose a random phase." +#: js/blocks/BoxesBlocks.js:812 +msgid "The Store in Box1 block is used to store a value in Box1." msgstr "" -#: js/ActionBlocks.js:1019 -#: js/ActionBlocks.js:1026 -msgid "The Listen block is used to listen for an event such as a mouse click." +#: js/blocks/BoxesBlocks.js:826 +msgid "store in box1" +msgstr "" + +#: js/blocks/DictBlocks.js:77 +msgid "show dictionary" msgstr "" -#: js/ActionBlocks.js:1028 -msgid "When the event happens, an action is taken." +#: js/blocks/DictBlocks.js:80 +#: js/blocks/DictBlocks.js:145 +#: js/blocks/DictBlocks.js:216 +#: js/blocks/DictBlocks.js:290 +#: js/blocks/ProgramBlocks.js:396 +#: js/blocks/ProgramBlocks.js:501 +#: js/blocks/ProgramBlocks.js:664 +msgid "My Dictionary" msgstr "" -#: js/ActionBlocks.js:1045 -msgid "on" +#: js/blocks/DictBlocks.js:129 +msgid "The Dictionary block returns a dictionary." msgstr "" -#: js/ActionBlocks.js:1048 -#: js/ActionBlocks.js:1049 -#: js/ActionBlocks.js:1153 -msgid "event" +#: js/blocks/DictBlocks.js:197 +#: js/blocks/DictBlocks.js:339 +msgid "The Get-dict block returns a value in the dictionary for a specified key." msgstr "" -#: js/ActionBlocks.js:1133 -msgid "The Broadcast block is used to trigger an event." +#: js/blocks/DictBlocks.js:212 +#: js/blocks/DictBlocks.js:354 +#.TRANS: retrieve a value from the dictionary with a given key +msgid "get value" msgstr "" -#: js/ActionBlocks.js:1151 -msgid "broadcast" +#: js/blocks/DictBlocks.js:215 +#: js/blocks/DictBlocks.js:216 +#: js/blocks/DictBlocks.js:289 +#: js/blocks/DictBlocks.js:290 +#: js/blocks/DictBlocks.js:357 +#: js/blocks/DictBlocks.js:430 +#: js/blocks/DictBlocks.js:431 +msgid "key2" msgstr "" -#: js/ActionBlocks.js:1208 -msgid "Each Start block is a separate voice." +#: js/blocks/DictBlocks.js:215 +#: js/blocks/DictBlocks.js:216 +#: js/blocks/DictBlocks.js:289 +#: js/blocks/DictBlocks.js:290 +#: js/blocks/DictBlocks.js:357 +#: js/blocks/DictBlocks.js:430 +#: js/blocks/DictBlocks.js:431 +#: js/blocks/IntervalsBlocks.js:1462 +#.TRANS: key, e.g., C in C Major +msgid "key" msgstr "" -#: js/ActionBlocks.js:1304 -msgid "It is often used for storing a phrase of music that is repeated." +#: js/blocks/DictBlocks.js:271 +#: js/blocks/DictBlocks.js:411 +msgid "The Set-dict block sets a value in the dictionary for a specified key." msgstr "" -#: js/ActionBlocks.js:1495 -msgid "define temperament" +#: js/blocks/DictBlocks.js:286 +#: js/blocks/DictBlocks.js:427 +#.TRANS: set a value in the dictionary for a given key +msgid "set value" msgstr "" -#: js/EnsembleBlocks.js:66 +#: js/blocks/EnsembleBlocks.js:66 msgid "mouse index heap" msgstr "" -#: js/EnsembleBlocks.js:68 +#: js/blocks/EnsembleBlocks.js:68 msgid "The Mouse index heap block returns a value in the heap at a specified location for a specified mouse." msgstr "" -#: js/EnsembleBlocks.js:77 -#: js/EnsembleBlocks.js:1080 +#: js/blocks/EnsembleBlocks.js:77 +#: js/blocks/EnsembleBlocks.js:1080 msgid "mouse name" msgstr "" -#: js/EnsembleBlocks.js:77 -#: js/EnsembleBlocks.js:92 -#: js/HeapBlocks.js:544 +#: js/blocks/EnsembleBlocks.js:77 +#: js/blocks/EnsembleBlocks.js:92 +#: js/blocks/HeapBlocks.js:544 #.TRANS: value1 is a numeric value (JAPANESE ONLY) msgid "index" msgstr "" -#: js/EnsembleBlocks.js:80 +#: js/blocks/EnsembleBlocks.js:80 msgid "turtle index heap" msgstr "" -#: js/EnsembleBlocks.js:82 +#: js/blocks/EnsembleBlocks.js:82 msgid "The Turtle index heap block returns a value in the heap at a specified location for a specified turtle." msgstr "" -#: js/EnsembleBlocks.js:90 -#: js/EnsembleBlocks.js:167 -#: js/EnsembleBlocks.js:230 -#: js/EnsembleBlocks.js:316 -#: js/EnsembleBlocks.js:362 -#: js/EnsembleBlocks.js:400 -#: js/EnsembleBlocks.js:454 -#: js/EnsembleBlocks.js:504 -#: js/EnsembleBlocks.js:550 -#: js/EnsembleBlocks.js:597 -#: js/EnsembleBlocks.js:651 -#: js/EnsembleBlocks.js:763 -#: js/EnsembleBlocks.js:854 -#: js/EnsembleBlocks.js:915 -#: js/EnsembleBlocks.js:955 -#: js/EnsembleBlocks.js:1219 -#: js/EnsembleBlocks.js:1293 +#: js/blocks/EnsembleBlocks.js:90 +#: js/blocks/EnsembleBlocks.js:167 +#: js/blocks/EnsembleBlocks.js:230 +#: js/blocks/EnsembleBlocks.js:316 +#: js/blocks/EnsembleBlocks.js:362 +#: js/blocks/EnsembleBlocks.js:400 +#: js/blocks/EnsembleBlocks.js:454 +#: js/blocks/EnsembleBlocks.js:504 +#: js/blocks/EnsembleBlocks.js:550 +#: js/blocks/EnsembleBlocks.js:597 +#: js/blocks/EnsembleBlocks.js:651 +#: js/blocks/EnsembleBlocks.js:763 +#: js/blocks/EnsembleBlocks.js:854 +#: js/blocks/EnsembleBlocks.js:915 +#: js/blocks/EnsembleBlocks.js:955 +#: js/blocks/EnsembleBlocks.js:1219 +#: js/blocks/EnsembleBlocks.js:1293 #.TRANS: Yertle is the name of a turtle. msgid "Yertle" msgstr "" -#: js/EnsembleBlocks.js:92 -#: js/EnsembleBlocks.js:1089 +#: js/blocks/EnsembleBlocks.js:92 +#: js/blocks/EnsembleBlocks.js:1089 msgid "turtle name" msgstr "" -#: js/EnsembleBlocks.js:122 -#: js/EnsembleBlocks.js:1197 -#: js/HeapBlocks.js:474 -#: js/HeapBlocks.js:572 +#: js/blocks/EnsembleBlocks.js:122 +#: js/blocks/EnsembleBlocks.js:1197 +#: js/blocks/HeapBlocks.js:474 +#: js/blocks/HeapBlocks.js:572 msgid "Index must be > 0." msgstr "" -#: js/EnsembleBlocks.js:127 -#: js/HeapBlocks.js:479 -#: js/HeapBlocks.js:577 +#: js/blocks/EnsembleBlocks.js:127 +#: js/blocks/HeapBlocks.js:479 +#: js/blocks/HeapBlocks.js:577 msgid "Maximum heap size is 1000." msgstr "" -#: js/EnsembleBlocks.js:145 +#: js/blocks/EnsembleBlocks.js:145 msgid "stop mouse" msgstr "" -#: js/EnsembleBlocks.js:147 +#: js/blocks/EnsembleBlocks.js:147 msgid "The Stop mouse block stops the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:158 +#: js/blocks/EnsembleBlocks.js:158 msgid "stop turtle" msgstr "" -#: js/EnsembleBlocks.js:160 +#: js/blocks/EnsembleBlocks.js:160 msgid "The Stop turtle block stops the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:184 -#: js/EnsembleBlocks.js:247 -#: js/EnsembleBlocks.js:413 -#: js/EnsembleBlocks.js:468 -#: js/EnsembleBlocks.js:706 -#: js/EnsembleBlocks.js:808 -#: js/EnsembleBlocks.js:870 -#: js/EnsembleBlocks.js:1190 -#: js/EnsembleBlocks.js:1253 +#: js/blocks/EnsembleBlocks.js:184 +#: js/blocks/EnsembleBlocks.js:247 +#: js/blocks/EnsembleBlocks.js:413 +#: js/blocks/EnsembleBlocks.js:468 +#: js/blocks/EnsembleBlocks.js:706 +#: js/blocks/EnsembleBlocks.js:808 +#: js/blocks/EnsembleBlocks.js:870 +#: js/blocks/EnsembleBlocks.js:1190 +#: js/blocks/EnsembleBlocks.js:1253 msgid "Cannot find mouse" msgstr "" -#: js/EnsembleBlocks.js:186 -#: js/EnsembleBlocks.js:249 -#: js/EnsembleBlocks.js:415 -#: js/EnsembleBlocks.js:470 -#: js/EnsembleBlocks.js:708 -#: js/EnsembleBlocks.js:810 -#: js/EnsembleBlocks.js:872 -#: js/EnsembleBlocks.js:1192 -#: js/EnsembleBlocks.js:1255 +#: js/blocks/EnsembleBlocks.js:186 +#: js/blocks/EnsembleBlocks.js:249 +#: js/blocks/EnsembleBlocks.js:415 +#: js/blocks/EnsembleBlocks.js:470 +#: js/blocks/EnsembleBlocks.js:708 +#: js/blocks/EnsembleBlocks.js:810 +#: js/blocks/EnsembleBlocks.js:872 +#: js/blocks/EnsembleBlocks.js:1192 +#: js/blocks/EnsembleBlocks.js:1255 msgid "Cannot find turtle" msgstr "" -#: js/EnsembleBlocks.js:206 +#: js/blocks/EnsembleBlocks.js:206 msgid "start mouse" msgstr "" -#: js/EnsembleBlocks.js:209 +#: js/blocks/EnsembleBlocks.js:209 msgid "The Start mouse block starts the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:220 +#: js/blocks/EnsembleBlocks.js:220 msgid "start turtle" msgstr "" -#: js/EnsembleBlocks.js:223 +#: js/blocks/EnsembleBlocks.js:223 msgid "The Start turtle block starts the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:256 +#: js/blocks/EnsembleBlocks.js:256 msgid "Mouse is already running." msgstr "" -#: js/EnsembleBlocks.js:258 +#: js/blocks/EnsembleBlocks.js:258 msgid "Turtle is already running." msgstr "" -#: js/EnsembleBlocks.js:282 +#: js/blocks/EnsembleBlocks.js:282 msgid "Cannot find start block" msgstr "" -#: js/EnsembleBlocks.js:292 +#: js/blocks/EnsembleBlocks.js:292 #.TRANS: pen color for this mouse msgid "mouse color" msgstr "" -#: js/EnsembleBlocks.js:294 +#: js/blocks/EnsembleBlocks.js:294 msgid "The Mouse color block returns the pen color of the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:306 +#: js/blocks/EnsembleBlocks.js:306 #.TRANS: pen color for this turtle msgid "turtle color" msgstr "" -#: js/EnsembleBlocks.js:308 +#: js/blocks/EnsembleBlocks.js:308 msgid "The Turtle color block returns the pen color of the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:338 +#: js/blocks/EnsembleBlocks.js:338 #.TRANS: heading (compass direction) for this mouse msgid "mouse heading" msgstr "" -#: js/EnsembleBlocks.js:340 +#: js/blocks/EnsembleBlocks.js:340 msgid "The Mouse heading block returns the heading of the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:352 +#: js/blocks/EnsembleBlocks.js:352 #.TRANS: heading (compass direction) for this turtle msgid "turtle heading" msgstr "" -#: js/EnsembleBlocks.js:354 +#: js/blocks/EnsembleBlocks.js:354 msgid "The Turtle heading block returns the heading of the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:384 -#: js/EnsembleBlocks.js:439 +#: js/blocks/EnsembleBlocks.js:384 +#: js/blocks/EnsembleBlocks.js:439 #.TRANS: set xy position for this mouse msgid "set mouse" msgstr "" -#: js/EnsembleBlocks.js:391 -#: js/EnsembleBlocks.js:402 -#: js/BoxesBlocks.js:595 -msgid "name1" -msgstr "name" - -#: js/EnsembleBlocks.js:391 -#: js/EnsembleBlocks.js:402 -#: js/ProgramBlocks.js:881 -#: js/GraphicsBlocks.js:235 -#: js/GraphicsBlocks.js:313 -#: js/GraphicsBlocks.js:436 -#: js/GraphicsBlocks.js:487 -#: js/GraphicsBlocks.js:534 -#: js/GraphicsBlocks.js:750 +#: js/blocks/EnsembleBlocks.js:391 +#: js/blocks/EnsembleBlocks.js:402 +#: js/blocks/GraphicsBlocks.js:235 +#: js/blocks/GraphicsBlocks.js:313 +#: js/blocks/GraphicsBlocks.js:436 +#: js/blocks/GraphicsBlocks.js:487 +#: js/blocks/GraphicsBlocks.js:534 +#: js/blocks/GraphicsBlocks.js:750 +#: js/blocks/ProgramBlocks.js:881 msgid "x" msgstr "" -#: js/EnsembleBlocks.js:391 -#: js/EnsembleBlocks.js:402 -#: js/ProgramBlocks.js:881 -#: js/GraphicsBlocks.js:149 -#: js/GraphicsBlocks.js:313 -#: js/GraphicsBlocks.js:436 -#: js/GraphicsBlocks.js:487 -#: js/GraphicsBlocks.js:534 -#: js/GraphicsBlocks.js:750 +#: js/blocks/EnsembleBlocks.js:391 +#: js/blocks/EnsembleBlocks.js:402 +#: js/blocks/GraphicsBlocks.js:149 +#: js/blocks/GraphicsBlocks.js:313 +#: js/blocks/GraphicsBlocks.js:436 +#: js/blocks/GraphicsBlocks.js:487 +#: js/blocks/GraphicsBlocks.js:534 +#: js/blocks/GraphicsBlocks.js:750 +#: js/blocks/ProgramBlocks.js:881 msgid "y" msgstr "" -#: js/EnsembleBlocks.js:395 -#: js/EnsembleBlocks.js:452 +#: js/blocks/EnsembleBlocks.js:395 +#: js/blocks/EnsembleBlocks.js:452 #.TRANS: set xy position for this turtle msgid "set turtle" msgstr "" -#: js/EnsembleBlocks.js:433 +#: js/blocks/EnsembleBlocks.js:433 msgid "The Set mouse block sends a stack of blocks to be run by the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:446 +#: js/blocks/EnsembleBlocks.js:446 msgid "The Set turtle block sends a stack of blocks to be run by the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:480 +#: js/blocks/EnsembleBlocks.js:480 #.TRANS: y position for this mouse msgid "mouse y" msgstr "" -#: js/EnsembleBlocks.js:482 +#: js/blocks/EnsembleBlocks.js:482 msgid "The Y mouse block returns the Y position of the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:494 +#: js/blocks/EnsembleBlocks.js:494 #.TRANS: y position for this turtle msgid "turtle y" msgstr "" -#: js/EnsembleBlocks.js:496 +#: js/blocks/EnsembleBlocks.js:496 msgid "The Y turtle block returns the Y position of the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:526 +#: js/blocks/EnsembleBlocks.js:526 #.TRANS: x position for this mouse msgid "mouse x" msgstr "" -#: js/EnsembleBlocks.js:528 +#: js/blocks/EnsembleBlocks.js:528 msgid "The X mouse block returns the X position of the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:540 +#: js/blocks/EnsembleBlocks.js:540 #.TRANS: x position for this turtle msgid "turtle x" msgstr "" -#: js/EnsembleBlocks.js:542 +#: js/blocks/EnsembleBlocks.js:542 msgid "The X turtle block returns the X position of the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:573 +#: js/blocks/EnsembleBlocks.js:573 #.TRANS: notes played by this mouse msgid "mouse notes played" msgstr "" -#: js/EnsembleBlocks.js:575 +#: js/blocks/EnsembleBlocks.js:575 msgid "The Mouse elapse notes block returns the number of notes played by the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:587 +#: js/blocks/EnsembleBlocks.js:587 #.TRANS: notes played by this turtle msgid "turtle notes played" msgstr "" -#: js/EnsembleBlocks.js:589 +#: js/blocks/EnsembleBlocks.js:589 msgid "The Turtle elapse notes block returns the number of notes played by the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:627 +#: js/blocks/EnsembleBlocks.js:627 #.TRANS: convert current note for this turtle to piano key (1-88) msgid "mouse pitch number" msgstr "" -#: js/EnsembleBlocks.js:629 +#: js/blocks/EnsembleBlocks.js:629 msgid "The Mouse pitch block returns the current pitch number being played by the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:641 +#: js/blocks/EnsembleBlocks.js:641 #.TRANS: convert current note for this turtle to piano key (1-88) msgid "turtle pitch number" msgstr "" -#: js/EnsembleBlocks.js:643 -msgid "The Turrle pitch block returns the current pitch number being played by the specified turtle." +#: js/blocks/EnsembleBlocks.js:643 +msgid "The Turtle pitch block returns the current pitch number being played by the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:747 -#: js/EnsembleBlocks.js:819 +#: js/blocks/EnsembleBlocks.js:747 +#: js/blocks/EnsembleBlocks.js:819 #.TRANS: note value is the duration of the note played by this mouse msgid "mouse note value" msgstr "" -#: js/EnsembleBlocks.js:757 +#: js/blocks/EnsembleBlocks.js:757 #.TRANS: note value is the duration of the note played by this turtle msgid "turtle note value" msgstr "" -#: js/EnsembleBlocks.js:830 +#: js/blocks/EnsembleBlocks.js:830 #.TRANS: sync is short for synchronization msgid "mouse sync" msgstr "" -#: js/EnsembleBlocks.js:832 +#: js/blocks/EnsembleBlocks.js:832 msgid "The Mouse sync block aligns the beat count between mice." msgstr "" -#: js/EnsembleBlocks.js:844 +#: js/blocks/EnsembleBlocks.js:844 #.TRANS: sync is short for synchronization msgid "turtle sync" msgstr "" -#: js/EnsembleBlocks.js:846 +#: js/blocks/EnsembleBlocks.js:846 msgid "The Turtle sync block aligns the beat count between turtles." msgstr "" -#: js/EnsembleBlocks.js:887 +#: js/blocks/EnsembleBlocks.js:887 msgid "The Found mouse block will return true if the specified mouse can be found." msgstr "" -#: js/EnsembleBlocks.js:893 +#: js/blocks/EnsembleBlocks.js:893 msgid "found mouse" msgstr "" -#: js/EnsembleBlocks.js:903 +#: js/blocks/EnsembleBlocks.js:903 msgid "The Found turtle block will return true if the specified turtle can be found." msgstr "" -#: js/EnsembleBlocks.js:909 +#: js/blocks/EnsembleBlocks.js:909 msgid "found turtle" msgstr "" -#: js/EnsembleBlocks.js:932 +#: js/blocks/EnsembleBlocks.js:932 msgid "new mouse" msgstr "" -#: js/EnsembleBlocks.js:934 +#: js/blocks/EnsembleBlocks.js:934 msgid "The New mouse block will create a new mouse." msgstr "" -#: js/EnsembleBlocks.js:945 +#: js/blocks/EnsembleBlocks.js:945 msgid "new turtle" msgstr "" -#: js/EnsembleBlocks.js:947 +#: js/blocks/EnsembleBlocks.js:947 msgid "The New turtle block will create a new turtle." msgstr "" -#: js/EnsembleBlocks.js:1011 +#: js/blocks/EnsembleBlocks.js:1011 msgid "set mouse color" msgstr "" -#: js/EnsembleBlocks.js:1014 +#: js/blocks/EnsembleBlocks.js:1014 msgid "The Set-mouse-color block is used to set the color of a mouse." msgstr "" -#: js/EnsembleBlocks.js:1020 +#: js/blocks/EnsembleBlocks.js:1020 msgid "set turtle color" msgstr "" -#: js/EnsembleBlocks.js:1023 +#: js/blocks/EnsembleBlocks.js:1023 msgid "The Set-turtle-color block is used to set the color of a turtle." msgstr "" -#: js/EnsembleBlocks.js:1083 +#: js/blocks/EnsembleBlocks.js:1083 msgid "The Mouse-name block returns the name of a mouse." msgstr "" -#: js/EnsembleBlocks.js:1092 +#: js/blocks/EnsembleBlocks.js:1092 msgid "The Turtle-name block returns the name of a turtle." msgstr "" -#: js/EnsembleBlocks.js:1115 +#: js/blocks/EnsembleBlocks.js:1115 msgid "mouse count" msgstr "" -#: js/EnsembleBlocks.js:1118 +#: js/blocks/EnsembleBlocks.js:1118 msgid "The Mouse-count block returns the number of mice." msgstr "" -#: js/EnsembleBlocks.js:1124 +#: js/blocks/EnsembleBlocks.js:1124 msgid "turtle count" msgstr "" -#: js/EnsembleBlocks.js:1127 +#: js/blocks/EnsembleBlocks.js:1127 msgid "The Turtle-count block returns the number of turtles." msgstr "" -#: js/EnsembleBlocks.js:1149 +#: js/blocks/EnsembleBlocks.js:1149 msgid "nth mouse name" msgstr "" -#: js/EnsembleBlocks.js:1152 +#: js/blocks/EnsembleBlocks.js:1152 msgid "The Nth-Mouse name block returns the name of the nth mouse." msgstr "" -#: js/EnsembleBlocks.js:1158 +#: js/blocks/EnsembleBlocks.js:1158 msgid "nth turtle name" msgstr "" -#: js/EnsembleBlocks.js:1161 +#: js/blocks/EnsembleBlocks.js:1161 msgid "The Nth-Turtle name block returns the name of the nth turtle." msgstr "" -#: js/EnsembleBlocks.js:1205 -#: js/EnsembleBlocks.js:1265 +#: js/blocks/EnsembleBlocks.js:1205 +#: js/blocks/EnsembleBlocks.js:1265 msgid "set name" msgstr "" -#: js/EnsembleBlocks.js:1214 -#: js/EnsembleBlocks.js:1221 +#: js/blocks/EnsembleBlocks.js:1214 +#: js/blocks/EnsembleBlocks.js:1221 msgid "source" msgstr "" -#: js/EnsembleBlocks.js:1214 -#: js/EnsembleBlocks.js:1221 +#: js/blocks/EnsembleBlocks.js:1214 +#: js/blocks/EnsembleBlocks.js:1221 msgid "target" msgstr "" -#: js/EnsembleBlocks.js:1271 +#: js/blocks/EnsembleBlocks.js:1271 msgid "The Set-name block is used to name a mouse." msgstr "" -#: js/EnsembleBlocks.js:1284 +#: js/blocks/EnsembleBlocks.js:1284 msgid "The Set-name block is used to name a turtle." msgstr "" -#: js/BooleanBlocks.js:44 -msgid "The Not block is the logical not operator." -msgstr "" - -#: js/BooleanBlocks.js:62 -msgid "not" -msgstr "" - -#: js/BooleanBlocks.js:134 -msgid "The And block is the logical and operator." -msgstr "" - -#: js/BooleanBlocks.js:152 -msgid "and" -msgstr "" - -#: js/BooleanBlocks.js:218 -msgid "The Or block is the logical or operator." -msgstr "" - -#: js/BooleanBlocks.js:236 -msgid "or" -msgstr "" - -#: js/BooleanBlocks.js:302 -msgid "The XOR block is the logical XOR operator." -msgstr "" - -#: js/BooleanBlocks.js:320 -msgid "xor" -msgstr "" - -#: js/BooleanBlocks.js:808 -msgid "The Equal block returns True if the two numbers are equal." -msgstr "" - -#: js/BooleanBlocks.js:909 -msgid "The Not-equal-to block returns True if the two numbers are not equal to each other." -msgstr "" - -#: js/BooleanBlocks.js:1008 -msgid "The Boolean block is used to specify true or false." -msgstr "" - -#: js/MediaBlocks.js:35 -#.TRANS: right side of the screen -msgid "right (screen)" -msgstr "" - -#: js/MediaBlocks.js:45 -#: js/MediaBlocks.js:56 -msgid "The Right block returns the position of the right of the canvas." -msgstr "" - -#: js/MediaBlocks.js:97 -#.TRANS: left side of the screen -msgid "left (screen)" -msgstr "" - -#: js/MediaBlocks.js:107 -#: js/MediaBlocks.js:118 -msgid "The Left block returns the position of the left of the canvas." -msgstr "" - -#: js/MediaBlocks.js:158 -msgid "top (screen)" -msgstr "" - -#: js/MediaBlocks.js:168 -#: js/MediaBlocks.js:179 -msgid "The Top block returns the position of the top of the canvas." -msgstr "" - -#: js/MediaBlocks.js:219 -msgid "bottom (screen)" -msgstr "" - -#: js/MediaBlocks.js:229 -#: js/MediaBlocks.js:240 -msgid "The Bottom block returns the position of the bottom of the canvas." -msgstr "" - -#: js/MediaBlocks.js:282 -msgid "width" -msgstr "" - -#: js/MediaBlocks.js:291 -msgid "The Width block returns the width of the canvas." +#: js/blocks/ExtrasBlocks.js:33 +msgid "fraction" msgstr "" -#: js/MediaBlocks.js:325 -msgid "height" +#: js/blocks/ExtrasBlocks.js:36 +msgid "Convert a float to a fraction" msgstr "" -#: js/MediaBlocks.js:334 -msgid "The Height block returns the height of the canvas." +#: js/blocks/ExtrasBlocks.js:93 +msgid "save as ABC" msgstr "" -#: js/MediaBlocks.js:369 -#.TRANS: stops playback of an audio recording -msgid "stop play" +#: js/blocks/ExtrasBlocks.js:96 +#: js/blocks/ExtrasBlocks.js:132 +#: js/blocks/ExtrasBlocks.js:168 +msgid "title" msgstr "" -#: js/MediaBlocks.js:404 -#.TRANS: Erases the images and text -msgid "erase media" +#: js/blocks/ExtrasBlocks.js:129 +msgid "save as Lilypond" msgstr "" -#: js/MediaBlocks.js:409 -msgid "The Erase Media block erases text and images." +#: js/blocks/ExtrasBlocks.js:165 +msgid "save as SVG" msgstr "" -#: js/MediaBlocks.js:439 -#.TRANS: play an audio recording -msgid "play back" +#: js/blocks/ExtrasBlocks.js:216 +msgid "no background" msgstr "" -#: js/MediaBlocks.js:487 -msgid "speak" +#: js/blocks/ExtrasBlocks.js:219 +msgid "The No background block eliminates the background from the saved SVG output." msgstr "" -#: js/MediaBlocks.js:495 -msgid "The Speak block outputs to the text-to-speech synthesizer" +#: js/blocks/ExtrasBlocks.js:247 +msgid "show blocks" msgstr "" -#: js/MediaBlocks.js:546 -msgid "camera" +#: js/blocks/ExtrasBlocks.js:249 +msgid "The Show blocks block shows the blocks." msgstr "" -#: js/MediaBlocks.js:551 -msgid "The Camera block connects a webcam to the Show block." +#: js/blocks/ExtrasBlocks.js:274 +msgid "hide blocks" msgstr "" -#: js/MediaBlocks.js:574 -msgid "video" +#: js/blocks/ExtrasBlocks.js:276 +msgid "The Hide blocks block hides the blocks." msgstr "" -#: js/MediaBlocks.js:579 -msgid "The Video block selects video for use with the Show block." +#: js/blocks/ExtrasBlocks.js:305 +#: js/blocks/ExtrasBlocks.js:338 +msgid "The Space block is used to add space between blocks." msgstr "" -#: js/MediaBlocks.js:607 -msgid "The Open file block opens a file for use with the Show block." +#: js/blocks/ExtrasBlocks.js:376 +msgid "wait" msgstr "" -#: js/MediaBlocks.js:645 -msgid "stop media" +#: js/blocks/ExtrasBlocks.js:379 +msgid "The Wait block pauses the program for a specified number of seconds." msgstr "" -#: js/MediaBlocks.js:650 -msgid "The Stop media block stops audio or video playback." +#: js/blocks/ExtrasBlocks.js:433 +#: plugins/facebook.rtp:30 +msgid "comment" msgstr "" -#: js/MediaBlocks.js:679 -#: js/PitchBlocks.js:1539 -#: js/phrasemaker.js:822 -#: js/musickeyboard.js:1654 -#.TRANS: a measure of frequency: one cycle per second -msgid "hertz" +#: js/blocks/ExtrasBlocks.js:469 +msgid "print" msgstr "" -#: js/MediaBlocks.js:692 -msgid "duration (ms)" +#: js/blocks/ExtrasBlocks.js:476 +msgid "The Print block displays text at the top of the screen." msgstr "" -#: js/MediaBlocks.js:728 -#.TRANS: translate a note into hertz, e.g., A4 -> 440HZ -msgid "note to frequency" +#: js/blocks/ExtrasBlocks.js:582 +msgid "display grid" msgstr "" -#: js/MediaBlocks.js:736 -msgid "The To frequency block converts a pitch name and octave to Hertz." +#: js/blocks/ExtrasBlocks.js:587 +msgid "The Display Grid Block changes the grid type" msgstr "" -#: js/MediaBlocks.js:746 -#: js/PitchBlocks.js:656 -#: js/PitchBlocks.js:932 -#: js/PitchBlocks.js:1827 -#.TRANS: name2 is name as in name of pitch (JAPANESE ONLY) -msgid "name2" -msgstr "name" - -#: js/MediaBlocks.js:812 -msgid "The Avatar block is used to change the appearance of the mouse." +#: js/blocks/ExtrasBlocks.js:689 +#: js/blocks/ExtrasBlocks.js:708 +#: js/blocks/ExtrasBlocks.js:731 +#: js/blocks/ExtrasBlocks.js:754 +#: js/blocks/ExtrasBlocks.js:772 +#: js/blocks/ExtrasBlocks.js:791 +#: js/blocks/ExtrasBlocks.js:810 +#: js/blocks/ExtrasBlocks.js:829 +msgid "unknown" msgstr "" -#: js/MediaBlocks.js:819 -msgid "The Avatar block is used to change the appearance of the turtle." +#: js/blocks/FlowBlocks.js:41 +msgid "The Backward block runs code in reverse order (Musical retrograde)." msgstr "" -#: js/MediaBlocks.js:831 -#: js/MediaBlocks.js:891 -#.TRANS: a media object -msgid "size" +#: js/blocks/FlowBlocks.js:48 +msgid "backward" msgstr "" -#: js/MediaBlocks.js:831 -msgid "image" +#: js/blocks/FlowBlocks.js:124 +msgid "The Duplicate block will run each block multiple times." msgstr "" -#: js/MediaBlocks.js:880 -msgid "The Show block is used to display text or images on the canvas." +#: js/blocks/FlowBlocks.js:136 +msgid "duplicate" msgstr "" -#: js/MediaBlocks.js:888 -#.TRANS: show1 is show as in display an image or text on the screen. -msgid "show1" -msgstr "show" - -#: js/MediaBlocks.js:891 -msgid "obj" +#: js/blocks/FlowBlocks.js:334 +msgid "The Default block is used inside of a Switch to define the default action." msgstr "" -#: js/MediaBlocks.js:938 -msgid "The Media block is used to import an image." +#: js/blocks/FlowBlocks.js:342 +msgid "default" msgstr "" -#: js/MediaBlocks.js:973 -msgid "The Text block holds a text string." +#: js/blocks/FlowBlocks.js:361 +#: js/blocks/FlowBlocks.js:418 +msgid "The Case Block must be used inside of a Switch Block." msgstr "" -#: js/ProgramBlocks.js:33 -msgid "The Load-heap-from-app block loads the heap from a web page." +#: js/blocks/FlowBlocks.js:389 +msgid "The Case block is used inside of a Switch to define matches." msgstr "" -#: js/ProgramBlocks.js:44 -#.TRANS: load the heap contents from a URL -msgid "load heap from App" +#: js/blocks/FlowBlocks.js:397 +msgid "case" msgstr "" -#: js/ProgramBlocks.js:95 -msgid "Error parsing JSON data:" +#: js/blocks/FlowBlocks.js:446 +msgid "The Switch block will run the code in the matching Case." msgstr "" -#: js/ProgramBlocks.js:100 -msgid "404: Page not found" +#: js/blocks/FlowBlocks.js:454 +msgid "switch" msgstr "" -#: js/ProgramBlocks.js:133 -msgid "The Save-heap-to-app block saves the heap to a web page." +#: js/blocks/FlowBlocks.js:595 +msgid "The Stop block will stop a loop" msgstr "" -#: js/ProgramBlocks.js:144 -#.TRANS: save the heap contents to a URL -msgid "save heap to App" +#: js/blocks/FlowBlocks.js:597 +msgid "Forever, Repeat, While, or Until." msgstr "" -#: js/ProgramBlocks.js:189 -msgid "Cannot find a valid heap for" +#: js/blocks/FlowBlocks.js:604 +#: js/widgets/timbre.js:417 +#: js/widgets/timbre.js:419 +#: js/widgets/musickeyboard.js:819 +#: js/widgets/musickeyboard.js:821 +#: js/widgets/phrasemaker.js:4202 +#: plugins/rodi.rtp:29 +#: plugins/rodi.rtp:73 +#: plugins/rodi.rtp:413 +msgid "stop" msgstr "" -#: js/ProgramBlocks.js:206 -msgid "The Load-heap block loads the heap from a file." +#: js/blocks/FlowBlocks.js:653 +msgid "The Waitfor block will wait until the condition is true." msgstr "" -#: js/ProgramBlocks.js:217 -#.TRANS: load the heap from a file -msgid "load heap" +#: js/blocks/FlowBlocks.js:661 +msgid "wait for" msgstr "" -#: js/ProgramBlocks.js:270 -msgid "The file you selected does not contain a valid heap." +#: js/blocks/FlowBlocks.js:732 +msgid "The Until block will repeat until the condition is true." msgstr "" -#: js/ProgramBlocks.js:275 -msgid "The loadHeap block needs a loadFile block." +#: js/blocks/FlowBlocks.js:740 +msgid "until" msgstr "" -#: js/ProgramBlocks.js:291 -msgid "The Set-heap block loads the heap." -msgstr "" +#: js/blocks/FlowBlocks.js:742 +#: js/blocks/FlowBlocks.js:822 +msgid "do2" +msgstr "do" -#: js/ProgramBlocks.js:299 -#: js/HeapBlocks.js:539 -#.TRANS: load the heap from a JSON encoding -msgid "set heap" +#: js/blocks/FlowBlocks.js:812 +msgid "The While block will repeat while the condition is true." msgstr "" -#: js/ProgramBlocks.js:340 -msgid "The block you selected does not contain a valid heap." +#: js/blocks/FlowBlocks.js:820 +msgid "while" msgstr "" -#: js/ProgramBlocks.js:343 -msgid "The Set heap block needs a heap." +#: js/blocks/FlowBlocks.js:903 +#: js/blocks/FlowBlocks.js:968 +#: js/blocks/FlowBlocks.js:979 +msgid "In this example if the mouse button is pressed a snare drum will play." msgstr "" -#: js/ProgramBlocks.js:360 -msgid "The Load-dictionary block loads a dictionary from a file." +#: js/blocks/FlowBlocks.js:925 +#: js/blocks/FlowBlocks.js:988 +msgid "if" msgstr "" -#: js/ProgramBlocks.js:372 -#.TRANS: load a dictionary from a file -msgid "load dictionary" +#: js/blocks/FlowBlocks.js:927 +#: js/blocks/FlowBlocks.js:990 +msgid "then" msgstr "" -#: js/ProgramBlocks.js:390 -#: js/ProgramBlocks.js:658 -#: js/ToneBlocks.js:1025 -msgid "file" +#: js/blocks/FlowBlocks.js:927 +msgid "else" msgstr "" -#: js/ProgramBlocks.js:396 -#: js/ProgramBlocks.js:501 -#: js/ProgramBlocks.js:664 -#: js/DictBlocks.js:80 -#: js/DictBlocks.js:145 -#: js/DictBlocks.js:216 -#: js/DictBlocks.js:290 -msgid "My Dictionary" +#: js/blocks/FlowBlocks.js:1025 +msgid "The Forever block will repeat the contained blocks forever." msgstr "" -#: js/ProgramBlocks.js:444 -msgid "The file you selected does not contain a valid dictionary." +#: js/blocks/FlowBlocks.js:1037 +msgid "forever" msgstr "" -#: js/ProgramBlocks.js:449 -msgid "The load dictionary block needs a load file block." +#: js/blocks/FlowBlocks.js:1073 +msgid "The Repeat block will repeat the contained blocks." msgstr "" -#: js/ProgramBlocks.js:466 -msgid "The Set-dictionary block loads a dictionary." +#: js/blocks/FlowBlocks.js:1075 +msgid "In this example the note will be played 4 times." msgstr "" -#: js/ProgramBlocks.js:477 -#.TRANS: load a dictionary from a JSON -msgid "set dictionary" +#: js/blocks/FlowBlocks.js:1083 +msgid "repeat" msgstr "" -#: js/ProgramBlocks.js:546 -msgid "The block you selected does not contain a valid dictionary." +#: js/blocks/FlowBlocks.js:1123 +msgid "duplicate factor" msgstr "" -#: js/ProgramBlocks.js:550 -msgid "The set dictionary block needs a dictionary." +#: js/blocks/HeapBlocks.js:49 +msgid "The Heap block returns the heap." msgstr "" -#: js/ProgramBlocks.js:567 -msgid "The Save-heap block saves the heap to a file." +#: js/blocks/HeapBlocks.js:133 +msgid "show heap" msgstr "" -#: js/ProgramBlocks.js:578 -#.TRANS: save the heap to a file -msgid "save heap" +#: js/blocks/HeapBlocks.js:181 +msgid "The Heap-length block returns the length of the heap." msgstr "" -#: js/ProgramBlocks.js:629 -msgid "The Save-dictionary block saves a dictionary to a file." +#: js/blocks/HeapBlocks.js:195 +msgid "heap length" msgstr "" -#: js/ProgramBlocks.js:640 -#.TRANS: save a dictionary to a file -msgid "save dictionary" +#: js/blocks/HeapBlocks.js:254 +msgid "The Heap-empty? block returns true if the heap is empty." msgstr "" -#: js/ProgramBlocks.js:720 -msgid "The Open palette block opens a palette." +#: js/blocks/HeapBlocks.js:268 +#.TRANS: Is the heap empty? +msgid "heap empty?" msgstr "" -#: js/ProgramBlocks.js:727 -msgid "open palette" +#: js/blocks/HeapBlocks.js:317 +msgid "The Empty-heap block empties the heap." msgstr "" -#: js/ProgramBlocks.js:785 -msgid "The Delete block block removes a block." +#: js/blocks/HeapBlocks.js:327 +#: js/blocks/HeapBlocks.js:647 +#.TRANS: empty the heap +msgid "empty heap" msgstr "" -#: js/ProgramBlocks.js:797 -#.TRANS: Move this block to the trash. -msgid "delete block" +#: js/blocks/HeapBlocks.js:371 +msgid "The Reverse-heap block reverses the order of the heap." msgstr "" -#: js/ProgramBlocks.js:861 -msgid "The Move block block moves a block." +#: js/blocks/HeapBlocks.js:384 +#.TRANS: reverse the order of the heap +msgid "reverse heap" msgstr "" -#: js/ProgramBlocks.js:869 -#.TRANS: Move the position of a block on the screen. -msgid "move block" +#: js/blocks/HeapBlocks.js:428 +msgid "The Index-heap block returns a value in the heap at a specified location." msgstr "" -#: js/ProgramBlocks.js:881 -#: js/ProgramBlocks.js:1048 -msgid "block number" +#: js/blocks/HeapBlocks.js:443 +#.TRANS: retrieve a value from the heap at index position in the heap +msgid "index heap" msgstr "" -#: js/ProgramBlocks.js:935 -#.TRANS: Run program beginning at this block. -msgid "run block" +#: js/blocks/HeapBlocks.js:523 +msgid "The Set-heap entry block sets a value in he heap at the specified location." msgstr "" -#: js/ProgramBlocks.js:1025 -msgid "The Dock block block connections two blocks." +#: js/blocks/HeapBlocks.js:539 +#: js/blocks/ProgramBlocks.js:299 +#.TRANS: load the heap from a JSON encoding +msgid "set heap" msgstr "" -#: js/ProgramBlocks.js:1036 -#.TRANS: We can connect a block to another block. -msgid "connect blocks" +#: js/blocks/HeapBlocks.js:619 +msgid "The Pop block removes the value at the top of the heap." msgstr "" -#: js/ProgramBlocks.js:1048 -msgid "target block" +#: js/blocks/HeapBlocks.js:633 +#.TRANS: pop a value off the top of the heap +msgid "pop" msgstr "" -#: js/ProgramBlocks.js:1048 -msgid "connection number" +#: js/blocks/HeapBlocks.js:680 +msgid "The Push block adds a value to the top of the heap." msgstr "" -#: js/ProgramBlocks.js:1140 -msgid "The Make block block creates a new block." +#: js/blocks/HeapBlocks.js:696 +#.TRANS: push a value onto the top of the heap +msgid "push" msgstr "" -#: js/ProgramBlocks.js:1152 -#.TRANS: Create a new block -msgid "make block" +#: js/blocks/IntervalsBlocks.js:45 +msgid "set temperament" msgstr "" -#: js/ProgramBlocks.js:1186 -#: js/ProgramBlocks.js:1227 -#: js/RhythmBlocks.js:1128 -#: js/PitchBlocks.js:972 -#: js/PitchBlocks.js:1005 -#: js/temperament.js:340 -#: js/temperament.js:362 -#: js/temperament.js:372 -#: js/temperament.js:484 -#: js/status.js:190 -#: plugins/rodi.rtp:192 -#.TRANS: a musical note consisting of pitch and duration -msgid "note" +#: js/blocks/IntervalsBlocks.js:63 +#: js/blocks/MediaBlocks.js:746 +#: js/blocks/PitchBlocks.js:657 +#: js/blocks/PitchBlocks.js:935 +#: js/blocks/PitchBlocks.js:974 +#: js/blocks/PitchBlocks.js:1007 +#: js/blocks/PitchBlocks.js:1194 +#: js/blocks/PitchBlocks.js:1717 +#: js/blocks/PitchBlocks.js:1758 +#: js/blocks/PitchBlocks.js:1866 +#: js/blocks/ToneBlocks.js:1025 +#: js/turtleactions/IntervalsActions.js:114 +#.TRANS: adjusts the shift up or down by one octave (twelve half-steps in the interval between two notes, one having twice or half the frequency in Hz of the other.) +msgid "octave" msgstr "" -#: js/ProgramBlocks.js:1285 -msgid "Cannot find block" +#: js/blocks/IntervalsBlocks.js:99 +msgid "The Temperament name block is used to select a tuning method." msgstr "" -#: js/ProgramBlocks.js:1304 -#: js/ProgramBlocks.js:1313 -msgid "Warning: block argument type mismatch" +#: js/blocks/IntervalsBlocks.js:161 +msgid "doubly" msgstr "" -#: js/ProgramBlocks.js:1347 -msgid "The Open project block is used to open a project from a web page." +#: js/blocks/IntervalsBlocks.js:166 +msgid "The Doubly block will double the size of an interval." msgstr "" -#: js/ProgramBlocks.js:1357 -msgid "open project" +#: js/blocks/IntervalsBlocks.js:262 +msgid "interval number" msgstr "" -#: js/ProgramBlocks.js:1410 -msgid "Please enter a valid URL." +#: js/blocks/IntervalsBlocks.js:317 +msgid "current interval" msgstr "" -#: js/DrumBlocks.js:59 -msgid "The Noise name block is used to select a noise synthesizer." +#: js/blocks/IntervalsBlocks.js:387 +#.TRANS: measure the distance between two pitches in semi-tones +msgid "semi-tone interval measure" msgstr "" -#: js/DrumBlocks.js:102 -msgid "The Drum name block is used to select a drum." +#: js/blocks/IntervalsBlocks.js:454 +#: js/blocks/IntervalsBlocks.js:570 +msgid "You must use two pitch blocks when measuring an interval." msgstr "" -#: js/DrumBlocks.js:146 -msgid "The Effects name block is used to select a sound effect." +#: js/blocks/IntervalsBlocks.js:496 +msgid "The Scalar interval block measures the distance between two notes in the current key and mode." msgstr "" -#: js/DrumBlocks.js:163 -msgid "noise" +#: js/blocks/IntervalsBlocks.js:502 +#.TRANS: measure the distance between two pitches in steps of musical scale +msgid "scalar interval measure" msgstr "" -#: js/DrumBlocks.js:177 -msgid "The Play noise block will generate white, pink, or brown noise." +#: js/blocks/IntervalsBlocks.js:678 +msgid "In the figure, we add sol# to sol." msgstr "" -#: js/DrumBlocks.js:191 -#: js/musicutils.js:752 -#: js/synthutils.js:47 -#.TRANS: white noise synthesizer -msgid "white noise" +#: js/blocks/IntervalsBlocks.js:684 +#: js/blocks/OrnamentBlocks.js:220 +#.TRANS: calculate a relative step between notes based on semi-tones +msgid "semi-tone interval" msgstr "" -#: js/DrumBlocks.js:326 -msgid "Replace every instance of a pitch with a drum sound." +#: js/blocks/IntervalsBlocks.js:733 +msgid "The output of the example is: do, mi, sol, sol, ti, mi" msgstr "" -#: js/DrumBlocks.js:337 -#.TRANS: map a pitch to a drum sound -msgid "map pitch to drum" +#: js/blocks/IntervalsBlocks.js:740 +#: js/blocks/WidgetBlocks.js:768 +msgid "arpeggio" msgstr "" -#: js/DrumBlocks.js:404 -msgid "In the example above, a kick drum sound will be played instead of sol." +#: js/blocks/IntervalsBlocks.js:931 +msgid "The Chord block calculates common chords." msgstr "" -#: js/DrumBlocks.js:416 -#.TRANS: set the current drum sound for playback -msgid "set drum" +#: js/blocks/IntervalsBlocks.js:933 +msgid "In the figure, we generate a C-major chord." msgstr "" -#: js/DrumBlocks.js:460 -msgid "sound effect" +#: js/blocks/IntervalsBlocks.js:938 +msgid "chord" msgstr "" -#: js/DrumBlocks.js:498 -msgid "You can use multiple Drum blocks within a Note block." +#: js/blocks/IntervalsBlocks.js:990 +msgid "The Ratio Interval block calculates an interval based on a ratio." msgstr "" -#: js/RhythmBlocks.js:182 -#: js/RhythmBlocks.js:1086 -#: js/RhythmBlocks.js:1162 -msgid "Note value must be greater than 0." +#: js/blocks/IntervalsBlocks.js:995 +msgid "ratio interval" msgstr "" -#: js/RhythmBlocks.js:215 -#: js/RhythmBlocks.js:278 -#: js/RhythmBlocks.js:350 -#.TRANS: swing is a rhythmic variation that emphasises the offbeat -msgid "swing" +#: js/blocks/IntervalsBlocks.js:1064 +msgid "In the figure, we add la to sol." msgstr "" -#: js/RhythmBlocks.js:355 -#.TRANS: the amount to shift to the offbeat note -msgid "swing value" +#: js/blocks/IntervalsBlocks.js:1120 +#.TRANS: define a custom mode +msgid "define mode" msgstr "" -#: js/RhythmBlocks.js:419 -msgid "The Skip notes block will cause notes to be skipped." +#: js/blocks/IntervalsBlocks.js:1173 +msgid "movable Do" msgstr "" -#: js/RhythmBlocks.js:427 -#.TRANS: substitute rests on notes being skipped -msgid "skip notes" +#: js/blocks/IntervalsBlocks.js:1224 +#.TRANS: mode length is the number of notes in the mode, e.g., 7 for major and minor scales; 12 for chromatic scales +msgid "mode length" msgstr "" -#: js/RhythmBlocks.js:489 -#.TRANS: speed up note duration by some factor, e.g. convert 1/4 to 1/8 notes by using a factor of 2 -msgid "multiply note value" +#: js/blocks/IntervalsBlocks.js:1233 +msgid "The Mode length block is the number of notes in the current scale." msgstr "" -#: js/RhythmBlocks.js:542 -msgid "The Tie block works on pairs of notes, combining them into one note." +#: js/blocks/IntervalsBlocks.js:1235 +msgid "Most Western scales have 7 notes." msgstr "" -#: js/RhythmBlocks.js:550 -#.TRANS: tie notes together into one longer note -msgid "tie" +#: js/blocks/IntervalsBlocks.js:1284 +#.TRANS: the mode in music is 'major', 'minor', etc. +msgid "current mode" msgstr "" -#: js/RhythmBlocks.js:591 -#: js/RhythmBlocks.js:671 -#.TRANS: a dotted note is played for 1.5x its value, e.g., 1/8. --> 3/16 -msgid "dot" +#: js/blocks/IntervalsBlocks.js:1337 +#.TRANS: the key is a group of pitches with which a music composition is created +msgid "current key" msgstr "" -#: js/RhythmBlocks.js:619 -#: js/RhythmActions.js:221 -msgid "An argument of -1 results in a note value of 0." +#: js/blocks/IntervalsBlocks.js:1389 +#: js/blocks/IntervalsBlocks.js:1434 +#.TRANS: set the key and mode, e.g. C Major +msgid "set key" msgstr "" -#: js/RhythmBlocks.js:661 -msgid "The Dot block extends the duration of a note by 50%." +#: js/blocks/IntervalsBlocks.js:1443 +#: js/blocks/IntervalsBlocks.js:1449 +msgid "The Set key block is used to set the key and mode," msgstr "" -#: js/RhythmBlocks.js:663 -msgid "Eg a dotted quarter note will play for 3/8 (1/4 + 1/8) of a beat." +#: js/blocks/IntervalsBlocks.js:1449 +msgid "eg C Major" msgstr "" -#: js/RhythmBlocks.js:765 -#.TRANS: Japanese only: note value block for drum -msgid "note value drum" +#: js/blocks/MediaBlocks.js:35 +#.TRANS: right side of the screen +msgid "right (screen)" msgstr "" -#: js/RhythmBlocks.js:829 -msgid "392 hertz" +#: js/blocks/MediaBlocks.js:45 +#: js/blocks/MediaBlocks.js:56 +msgid "The Right block returns the position of the right of the canvas." msgstr "" -#: js/RhythmBlocks.js:1119 -msgid "The Note block is a container for one or more Pitch blocks." +#: js/blocks/MediaBlocks.js:97 +#.TRANS: left side of the screen +msgid "left (screen)" msgstr "" -#: js/RhythmBlocks.js:1121 -msgid "The Note block specifies the duration (note value) of its contents." +#: js/blocks/MediaBlocks.js:107 +#: js/blocks/MediaBlocks.js:118 +msgid "The Left block returns the position of the left of the canvas." msgstr "" -#: js/RhythmBlocks.js:1130 -msgid "value2" -msgstr "value" +#: js/blocks/MediaBlocks.js:158 +msgid "top (screen)" +msgstr "" -#: js/RhythmBlocks.js:1200 -msgid "define frequency" +#: js/blocks/MediaBlocks.js:168 +#: js/blocks/MediaBlocks.js:179 +msgid "The Top block returns the position of the top of the canvas." msgstr "" -#: js/RhythmBlocks.js:1218 -#: js/temperament.js:650 -#: js/temperament.js:1421 -msgid "octave space" +#: js/blocks/MediaBlocks.js:219 +msgid "bottom (screen)" msgstr "" -#: js/NumberBlocks.js:28 -msgid "The Int block returns an integer." +#: js/blocks/MediaBlocks.js:229 +#: js/blocks/MediaBlocks.js:240 +msgid "The Bottom block returns the position of the bottom of the canvas." msgstr "" -#: js/NumberBlocks.js:34 -msgid "int" +#: js/blocks/MediaBlocks.js:282 +msgid "width" msgstr "" -#: js/NumberBlocks.js:73 -msgid "The Mod block returns the remainder from a division." +#: js/blocks/MediaBlocks.js:291 +msgid "The Width block returns the width of the canvas." msgstr "" -#: js/NumberBlocks.js:79 -msgid "mod" +#: js/blocks/MediaBlocks.js:325 +msgid "height" msgstr "" -#: js/NumberBlocks.js:123 -msgid "The Power block calculates a power function." +#: js/blocks/MediaBlocks.js:334 +msgid "The Height block returns the height of the canvas." msgstr "" -#: js/NumberBlocks.js:178 -msgid "The Sqrt block returns the square root." +#: js/blocks/MediaBlocks.js:369 +#.TRANS: stops playback of an audio recording +msgid "stop play" msgstr "" -#: js/NumberBlocks.js:184 -msgid "sqrt" +#: js/blocks/MediaBlocks.js:404 +#.TRANS: Erases the images and text +msgid "erase media" msgstr "" -#: js/NumberBlocks.js:230 -msgid "The Abs block returns the absolute value." +#: js/blocks/MediaBlocks.js:409 +msgid "The Erase Media block erases text and images." msgstr "" -#: js/NumberBlocks.js:236 -msgid "abs" +#: js/blocks/MediaBlocks.js:439 +#.TRANS: play an audio recording +msgid "play back" msgstr "" -#: js/NumberBlocks.js:277 -msgid "The Distance block returns the distance between two points. For example, between the mouse and the center of the screen." +#: js/blocks/MediaBlocks.js:487 +msgid "speak" msgstr "" -#: js/NumberBlocks.js:283 -#: plugins/rodi.rtp:310 -msgid "distance" +#: js/blocks/MediaBlocks.js:495 +msgid "The Speak block outputs to the text-to-speech synthesizer" msgstr "" -#: js/NumberBlocks.js:343 -msgid "The Divide block is used to divide." +#: js/blocks/MediaBlocks.js:546 +msgid "camera" msgstr "" -#: js/NumberBlocks.js:411 -msgid "The Multiply block is used to multiply." +#: js/blocks/MediaBlocks.js:551 +msgid "The Camera block connects a webcam to the Show block." msgstr "" -#: js/NumberBlocks.js:554 -msgid "The Minus block is used to subtract." +#: js/blocks/MediaBlocks.js:574 +msgid "video" msgstr "" -#: js/NumberBlocks.js:647 -msgid "The Plus block is used to add." +#: js/blocks/MediaBlocks.js:579 +msgid "The Video block selects video for use with the Show block." msgstr "" -#: js/NumberBlocks.js:773 -msgid "The One-of block returns one of two choices." +#: js/blocks/MediaBlocks.js:607 +msgid "The Open file block opens a file for use with the Show block." msgstr "" -#: js/NumberBlocks.js:780 -#: js/PitchBlocks.js:616 -msgid "one of" +#: js/blocks/MediaBlocks.js:645 +msgid "stop media" msgstr "" -#: js/NumberBlocks.js:782 -msgid "this" +#: js/blocks/MediaBlocks.js:650 +msgid "The Stop media block stops audio or video playback." msgstr "" -#: js/NumberBlocks.js:782 -msgid "that" +#: js/blocks/MediaBlocks.js:679 +#: js/blocks/PitchBlocks.js:1577 +#: js/widgets/musickeyboard.js:1936 +#: js/widgets/phrasemaker.js:1037 +#.TRANS: a measure of frequency: one cycle per second +msgid "hertz" msgstr "" -#: js/NumberBlocks.js:837 -msgid "The Random block returns a random number." +#: js/blocks/MediaBlocks.js:692 +#: js/blocks/WidgetBlocks.js:182 +#: js/widgets/temperament.js:506 +#: js/widgets/temperament.js:546 +#: js/widgets/temperament.js:610 +#: js/widgets/temperament.js:618 +#: js/widgets/temperament.js:1505 +#: js/widgets/timbre.js:1842 +msgid "frequency" msgstr "" -#: js/NumberBlocks.js:844 -msgid "random" +#: js/blocks/MediaBlocks.js:692 +msgid "duration (ms)" msgstr "" -#: js/NumberBlocks.js:846 -msgid "min" +#: js/blocks/MediaBlocks.js:728 +#.TRANS: translate a note into hertz, e.g., A4 -> 440HZ +msgid "note to frequency" msgstr "" -#: js/NumberBlocks.js:846 -msgid "max" +#: js/blocks/MediaBlocks.js:736 +msgid "The To frequency block converts a pitch name and octave to Hertz." msgstr "" -#: js/NumberBlocks.js:910 -msgid "The Number block holds a number." +#: js/blocks/MediaBlocks.js:746 +#: js/blocks/PitchBlocks.js:656 +#: js/blocks/PitchBlocks.js:934 +#: js/blocks/PitchBlocks.js:1866 +#.TRANS: name2 is name as in name of pitch (JAPANESE ONLY) +msgid "name2" +msgstr "name" + +#: js/blocks/MediaBlocks.js:812 +msgid "The Avatar block is used to change the appearance of the mouse." msgstr "" -#: js/BoxesBlocks.js:53 -#: js/BoxesBlocks.js:59 -msgid "The Add-to block is used to add to the value stored in a box." +#: js/blocks/MediaBlocks.js:819 +msgid "The Avatar block is used to change the appearance of the turtle." msgstr "" -#: js/BoxesBlocks.js:61 -msgid "It can also be used with other blocks such as Color and Pen size." +#: js/blocks/MediaBlocks.js:831 +#: js/blocks/MediaBlocks.js:891 +#.TRANS: a media object +msgid "size" msgstr "" -#: js/BoxesBlocks.js:73 -msgid "add" +#: js/blocks/MediaBlocks.js:831 +msgid "image" msgstr "" -#: js/BoxesBlocks.js:75 -#: js/temperament.js:716 -msgid "to" +#: js/blocks/MediaBlocks.js:880 +msgid "The Show block is used to display text or images on the canvas." msgstr "" -#: js/BoxesBlocks.js:75 -#: js/BoxesBlocks.js:595 -#: js/HeapBlocks.js:544 -msgid "value1" -msgstr "value" +#: js/blocks/MediaBlocks.js:888 +#.TRANS: show1 is show as in display an image or text on the screen. +msgid "show1" +msgstr "show" -#: js/BoxesBlocks.js:118 -msgid "Block does not support incrementing." +#: js/blocks/MediaBlocks.js:891 +msgid "obj" msgstr "" -#: js/BoxesBlocks.js:152 -msgid "The Add-1-to block adds one to the value stored in a box." +#: js/blocks/MediaBlocks.js:938 +msgid "The Media block is used to import an image." msgstr "" -#: js/BoxesBlocks.js:163 -msgid "add 1 to" +#: js/blocks/MediaBlocks.js:973 +msgid "The Text block holds a text string." msgstr "" -#: js/BoxesBlocks.js:211 -msgid "The Subtract-1-from block subtracts one from the value stored in a box." +#: js/blocks/MeterBlocks.js:34 +#.TRANS: musical meter (time signature), e.g., 4:4 +msgid "current meter" msgstr "" -#: js/BoxesBlocks.js:222 -msgid "subtract 1 from" +#: js/blocks/MeterBlocks.js:85 +#.TRANS: number of beats per minute +msgid "beat factor" msgstr "" -#: js/BoxesBlocks.js:270 -#: js/BoxesBlocks.js:387 -msgid "The Box block returns the value stored in a box." +#: js/blocks/MeterBlocks.js:161 +msgid "The Beats per minute block returns the current beats per minute." msgstr "" -#: js/BoxesBlocks.js:500 -#: js/BoxesBlocks.js:576 -msgid "The Store in block will store a value in a box." +#: js/blocks/MeterBlocks.js:169 +#: js/widgets/status.js:152 +#.TRANS: number of beats played per minute +msgid "beats per minute2" +msgstr "beats per minute" + +#: js/blocks/MeterBlocks.js:169 +#: js/blocks/MeterBlocks.js:1056 +#: js/blocks/MeterBlocks.js:1133 +#: js/blocks/MeterBlocks.js:1211 +#.TRANS: sets tempo by defining a beat and beats per minute +msgid "beats per minute" msgstr "" -#: js/BoxesBlocks.js:652 -msgid "The Box2 block returns the value stored in Box2." +#: js/blocks/MeterBlocks.js:233 +#.TRANS: count of current musical measure in meter +msgid "measure count" msgstr "" -#: js/BoxesBlocks.js:703 -msgid "The Store in Box2 block is used to store a value in Box2." +#: js/blocks/MeterBlocks.js:241 +msgid "The Measure count block returns the current measure." msgstr "" -#: js/BoxesBlocks.js:715 -msgid "store in box2" +#: js/blocks/MeterBlocks.js:290 +#.TRANS: count of current beat in the meter +msgid "beat count" msgstr "" -#: js/BoxesBlocks.js:761 -msgid "The Box1 block returns the value stored in Box1." +#: js/blocks/MeterBlocks.js:300 +#: js/blocks/MeterBlocks.js:311 +#: js/blocks/MeterBlocks.js:565 +#: js/blocks/MeterBlocks.js:576 +msgid "The Beat count block is the number of the current beat," msgstr "" -#: js/BoxesBlocks.js:812 -msgid "The Store in Box1 block is used to store a value in Box1." +#: js/blocks/MeterBlocks.js:313 +#: js/blocks/MeterBlocks.js:578 +msgid "eg 1, 2, 3, or 4." msgstr "" -#: js/BoxesBlocks.js:826 -msgid "store in box1" +#: js/blocks/MeterBlocks.js:368 +#.TRANS: count the number of notes +msgid "sum note values" msgstr "" -#: js/HeapBlocks.js:49 -msgid "The Heap block returns the heap." +#: js/blocks/MeterBlocks.js:376 +#: js/blocks/MeterBlocks.js:440 +msgid "The Note counter block can be used to count the number of contained notes." msgstr "" -#: js/HeapBlocks.js:133 -msgid "show heap" +#: js/blocks/MeterBlocks.js:432 +#.TRANS: count the number of notes +msgid "note counter" msgstr "" -#: js/HeapBlocks.js:181 -msgid "The Heap-length block returns the length of the heap." +#: js/blocks/MeterBlocks.js:496 +#.TRANS: number of whole notes that have been played +msgid "whole notes played" msgstr "" -#: js/HeapBlocks.js:195 -msgid "heap length" +#: js/blocks/MeterBlocks.js:505 +msgid "The Whole notes played block returns the total number of whole notes played." msgstr "" -#: js/HeapBlocks.js:254 -msgid "The Heap-empty? block returns true if the heap is empty." +#: js/blocks/MeterBlocks.js:555 +#: js/turtleactions/DictActions.js:83 +#.TRANS: number of notes that have been played +msgid "notes played" msgstr "" -#: js/HeapBlocks.js:268 -#.TRANS: Is the heap empty? -msgid "heap empty?" +#: js/blocks/MeterBlocks.js:653 +msgid "The No clock block decouples the notes from the master clock." msgstr "" -#: js/HeapBlocks.js:317 -msgid "The Empty-heap block empties the heap." +#: js/blocks/MeterBlocks.js:661 +#.TRANS: don't lock notes to master clock +msgid "no clock" msgstr "" -#: js/HeapBlocks.js:327 -#: js/HeapBlocks.js:647 -#.TRANS: empty the heap -msgid "empty heap" +#: js/blocks/MeterBlocks.js:700 +msgid "on weak beat do" msgstr "" -#: js/HeapBlocks.js:371 -msgid "The Reverse-heap block reverses the order of the heap." +#: js/blocks/MeterBlocks.js:705 +msgid "The On-weak-beat block lets you specify actions to take on weak (off) beats." msgstr "" -#: js/HeapBlocks.js:384 -#.TRANS: reverse the order of the heap -msgid "reverse heap" +#: js/blocks/MeterBlocks.js:750 +msgid "on strong beat" msgstr "" -#: js/HeapBlocks.js:428 -msgid "The Index-heap block returns a value in the heap at a specified location." +#: js/blocks/MeterBlocks.js:758 +msgid "The On-strong-beat block lets you specify actions to take on specified beats." msgstr "" -#: js/HeapBlocks.js:443 -#.TRANS: retrieve a value from the heap at index position in the heap -msgid "index heap" +#: js/blocks/MeterBlocks.js:769 +msgid "beat" +msgstr "" + +#: js/blocks/MeterBlocks.js:813 +msgid "on every beat do" msgstr "" -#: js/HeapBlocks.js:523 -msgid "The Set-heap entry block sets a value in he heap at the specified location." +#: js/blocks/MeterBlocks.js:821 +msgid "The On-every-beat block lets you specify actions to take on every beat." msgstr "" -#: js/HeapBlocks.js:619 -msgid "The Pop block removes the value at the top of the heap." +#: js/blocks/MeterBlocks.js:874 +msgid "on every note do" msgstr "" -#: js/HeapBlocks.js:633 -#.TRANS: pop a value off the top of the heap -msgid "pop" +#: js/blocks/MeterBlocks.js:882 +msgid "The On-every-note block lets you specify actions to take on every note." msgstr "" -#: js/HeapBlocks.js:680 -msgid "The Push block adds a value to the top of the heap." +#: js/blocks/MeterBlocks.js:928 +#: js/blocks/MeterBlocks.js:999 +#.TRANS: sets tempo by defining a beat and beats per minute +msgid "master beats per minute" msgstr "" -#: js/HeapBlocks.js:696 -#.TRANS: push a value onto the top of the heap -msgid "push" +#: js/blocks/MeterBlocks.js:952 +#: js/blocks/MeterBlocks.js:1078 +#: js/blocks/MeterBlocks.js:1135 +msgid "bpm" msgstr "" -#: js/FlowBlocks.js:41 -msgid "The Backward block runs code in reverse order (Musical retrograde)." +#: js/blocks/MeterBlocks.js:952 +#: js/blocks/MeterBlocks.js:1078 +#: js/blocks/MeterBlocks.js:1135 +msgid "beat value" msgstr "" -#: js/FlowBlocks.js:48 -msgid "backward" +#: js/blocks/MeterBlocks.js:1024 +#: js/blocks/MeterBlocks.js:1167 +#: js/blocks/MeterBlocks.js:1241 +msgid "Beats per minute must be > 30." msgstr "" -#: js/FlowBlocks.js:124 -msgid "The Duplicate block will run each block multiple times." +#: js/blocks/MeterBlocks.js:1027 +#: js/blocks/MeterBlocks.js:1170 +#: js/blocks/MeterBlocks.js:1244 +msgid "Maximum beats per minute is 1000." msgstr "" -#: js/FlowBlocks.js:136 -msgid "duplicate" +#: js/blocks/MeterBlocks.js:1068 +msgid "The Beats per minute block sets the number of 1/4 notes per minute." msgstr "" -#: js/FlowBlocks.js:334 -msgid "The Default block is used inside of a Switch to define the default action." +#: js/blocks/MeterBlocks.js:1279 +#.TRANS: anacrusis +msgid "pickup" msgstr "" -#: js/FlowBlocks.js:342 -msgid "default" +#: js/blocks/MeterBlocks.js:1367 +msgid "number of beats" msgstr "" -#: js/FlowBlocks.js:361 -#: js/FlowBlocks.js:418 -msgid "The Case Block must be used inside of a Switch Block." +#: js/blocks/NumberBlocks.js:28 +msgid "The Int block returns an integer." msgstr "" -#: js/FlowBlocks.js:389 -msgid "The Case block is used inside of a Switch to define matches." +#: js/blocks/NumberBlocks.js:34 +msgid "int" msgstr "" -#: js/FlowBlocks.js:397 -msgid "case" +#: js/blocks/NumberBlocks.js:73 +msgid "The Mod block returns the remainder from a division." msgstr "" -#: js/FlowBlocks.js:446 -msgid "The Switch block will run the code in the matching Case." +#: js/blocks/NumberBlocks.js:79 +msgid "mod" msgstr "" -#: js/FlowBlocks.js:454 -msgid "switch" +#: js/blocks/NumberBlocks.js:141 +msgid "The Power block calculates a power function." msgstr "" -#: js/FlowBlocks.js:595 -msgid "The Stop block will stop a loop" +#: js/blocks/NumberBlocks.js:196 +msgid "The Sqrt block returns the square root." msgstr "" -#: js/FlowBlocks.js:597 -msgid "Forever, Repeat, While, or Until." +#: js/blocks/NumberBlocks.js:202 +msgid "sqrt" msgstr "" -#: js/FlowBlocks.js:604 -#: js/phrasemaker.js:3799 -#: js/musickeyboard.js:629 -#: js/musickeyboard.js:631 -#: js/timbre.js:417 -#: js/timbre.js:419 -#: plugins/rodi.rtp:29 -#: plugins/rodi.rtp:73 -#: plugins/rodi.rtp:413 -msgid "stop" +#: js/blocks/NumberBlocks.js:248 +msgid "The Abs block returns the absolute value." msgstr "" -#: js/FlowBlocks.js:653 -msgid "The Waitfor block will wait until the condition is true." +#: js/blocks/NumberBlocks.js:254 +msgid "abs" msgstr "" -#: js/FlowBlocks.js:661 -msgid "wait for" +#: js/blocks/NumberBlocks.js:295 +msgid "The Distance block returns the distance between two points. For example, between the mouse and the center of the screen." msgstr "" -#: js/FlowBlocks.js:732 -msgid "The Until block will repeat until the condition is true." +#: js/blocks/NumberBlocks.js:301 +#: plugins/rodi.rtp:310 +msgid "distance" msgstr "" -#: js/FlowBlocks.js:740 -msgid "until" +#: js/blocks/NumberBlocks.js:361 +msgid "The Divide block is used to divide." msgstr "" -#: js/FlowBlocks.js:742 -#: js/FlowBlocks.js:822 -msgid "do2" -msgstr "do" +#: js/blocks/NumberBlocks.js:441 +msgid "The Multiply block is used to multiply." +msgstr "" -#: js/FlowBlocks.js:812 -msgid "The While block will repeat while the condition is true." +#: js/blocks/NumberBlocks.js:612 +msgid "The Minus block is used to subtract." msgstr "" -#: js/FlowBlocks.js:820 -msgid "while" +#: js/blocks/NumberBlocks.js:723 +msgid "The Plus block is used to add." msgstr "" -#: js/FlowBlocks.js:903 -#: js/FlowBlocks.js:968 -#: js/FlowBlocks.js:979 -msgid "In this example if the mouse button is pressed a snare drum will play." +#: js/blocks/NumberBlocks.js:849 +msgid "The One-of block returns one of two choices." msgstr "" -#: js/FlowBlocks.js:925 -#: js/FlowBlocks.js:988 -msgid "if" +#: js/blocks/NumberBlocks.js:856 +#: js/blocks/PitchBlocks.js:616 +msgid "one of" msgstr "" -#: js/FlowBlocks.js:927 -#: js/FlowBlocks.js:990 -msgid "then" +#: js/blocks/NumberBlocks.js:858 +msgid "this" msgstr "" -#: js/FlowBlocks.js:927 -msgid "else" +#: js/blocks/NumberBlocks.js:858 +msgid "that" msgstr "" -#: js/FlowBlocks.js:1025 -msgid "The Forever block will repeat the contained blocks forever." +#: js/blocks/NumberBlocks.js:913 +msgid "The Random block returns a random number." msgstr "" -#: js/FlowBlocks.js:1037 -msgid "forever" +#: js/blocks/NumberBlocks.js:920 +msgid "random" msgstr "" -#: js/FlowBlocks.js:1073 -msgid "The Repeat block will repeat the contained blocks." +#: js/blocks/NumberBlocks.js:922 +msgid "min" msgstr "" -#: js/FlowBlocks.js:1075 -msgid "In this example the note will be played 4 times." +#: js/blocks/NumberBlocks.js:922 +msgid "max" msgstr "" -#: js/FlowBlocks.js:1083 -msgid "repeat" +#: js/blocks/NumberBlocks.js:986 +msgid "The Number block holds a number." msgstr "" -#: js/FlowBlocks.js:1123 -msgid "duplicate factor" +#: js/blocks/OrnamentBlocks.js:32 +msgid "staccato factor" msgstr "" -#: js/PitchBlocks.js:39 -#: js/musicutils.js:722 -#: js/musicutils.js:1117 -#: js/synthutils.js:112 -#.TRANS: square wave -msgid "square" +#: js/blocks/OrnamentBlocks.js:108 +msgid "slur factor" msgstr "" -#: js/PitchBlocks.js:62 -#: js/ToneBlocks.js:39 -#: js/musicutils.js:723 -#: js/musicutils.js:1118 -#: js/synthutils.js:116 -#.TRANS: triangle wave -msgid "triangle" +#: js/blocks/OrnamentBlocks.js:217 +#: js/blocks/OrnamentBlocks.js:309 +#.TRANS: the neighbor refers to a neighboring note, e.g., D is a neighbor of C +msgid "neighbor" msgstr "" -#: js/PitchBlocks.js:85 -#: js/musicutils.js:721 -#: js/musicutils.js:1116 -#: js/synthutils.js:110 -#.TRANS: sine wave -msgid "sine" +#: js/blocks/OrnamentBlocks.js:293 +msgid "The Neighbor block rapidly switches between neighboring pitches." msgstr "" -#: js/PitchBlocks.js:108 -#: js/musicutils.js:724 -#: js/musicutils.js:1119 -#: js/synthutils.js:114 -#.TRANS: sawtooth wave -msgid "sawtooth" +#: js/blocks/OrnamentBlocks.js:364 +msgid "glide" msgstr "" -#: js/PitchBlocks.js:141 -#.TRANS: musical transposition (adjustment of pitch up or down) -msgid "transposition" +#: js/blocks/OrnamentBlocks.js:479 +#: js/blocks/OrnamentBlocks.js:643 +msgid "slur" msgstr "" -#: js/PitchBlocks.js:168 -#.TRANS: step down one note in current musical scale -msgid "scalar step down" +#: js/blocks/OrnamentBlocks.js:558 +#: js/blocks/OrnamentBlocks.js:710 +#.TRANS: play each note sharply detached from the others +msgid "staccato" msgstr "" -#: js/PitchBlocks.js:172 -msgid "The Scalar step down block returns the number of semi-tones down to the previous note in the current key and mode." +#: js/blocks/RhythmBlocks.js:182 +#: js/blocks/RhythmBlocks.js:1086 +#: js/blocks/RhythmBlocks.js:1162 +msgid "Note value must be greater than 0." msgstr "" -#: js/PitchBlocks.js:190 -#.TRANS: step up one note in current musical scale -msgid "scalar step up" +#: js/blocks/RhythmBlocks.js:215 +#: js/blocks/RhythmBlocks.js:278 +#: js/blocks/RhythmBlocks.js:350 +#.TRANS: swing is a rhythmic variation that emphasises the offbeat +msgid "swing" msgstr "" -#: js/PitchBlocks.js:194 -msgid "The Scalar step up block returns the number of semi-tones up to the next note in the current key and mode." +#: js/blocks/RhythmBlocks.js:355 +#.TRANS: the amount to shift to the offbeat note +msgid "swing value" msgstr "" -#: js/PitchBlocks.js:212 -#.TRANS: the change measured in half-steps between the current pitch and the previous pitch -msgid "change in pitch" +#: js/blocks/RhythmBlocks.js:419 +msgid "The Skip notes block will cause notes to be skipped." msgstr "" -#: js/PitchBlocks.js:216 -msgid "The Change in pitch block is the difference (in half steps) between the current pitch being played and the previous pitch played." +#: js/blocks/RhythmBlocks.js:427 +#.TRANS: substitute rests on notes being skipped +msgid "skip notes" msgstr "" -#: js/PitchBlocks.js:243 -#.TRANS: the change measured in scale-steps between the current pitch and the previous pitch -msgid "scalar change in pitch" +#: js/blocks/RhythmBlocks.js:489 +#.TRANS: speed up note duration by some factor, e.g. convert 1/4 to 1/8 notes by using a factor of 2 +msgid "multiply note value" msgstr "" -#: js/PitchBlocks.js:250 -#: js/PitchBlocks.js:432 -#: js/PitchBlocks.js:1629 -#: js/DictActions.js:89 -#: js/temperament.js:477 -#: js/temperament.js:481 -#: js/temperament.js:714 -#.TRANS: convert current note to piano key (1-88) -#.TRANS: a mapping of pitch to the 88 piano keys -msgid "pitch number" +#: js/blocks/RhythmBlocks.js:542 +msgid "The Tie block works on pairs of notes, combining them into one note." msgstr "" -#: js/PitchBlocks.js:256 -msgid "The Pitch number block is the value of the pitch of the note currently being played." +#: js/blocks/RhythmBlocks.js:550 +#.TRANS: tie notes together into one longer note +msgid "tie" msgstr "" -#: js/PitchBlocks.js:329 -#: js/PitchBlocks.js:433 -#.TRANS: the current pitch expressed in Hertz -msgid "pitch in hertz" +#: js/blocks/RhythmBlocks.js:591 +#: js/blocks/RhythmBlocks.js:671 +#.TRANS: a dotted note is played for 1.5x its value, e.g., 1/8. --> 3/16 +msgid "dot" msgstr "" -#: js/PitchBlocks.js:334 -msgid "The Pitch in Hertz block is the value in Hertz of the pitch of the note currently being played." +#: js/blocks/RhythmBlocks.js:619 +#: js/turtleactions/RhythmActions.js:221 +msgid "An argument of -1 results in a note value of 0." msgstr "" -#: js/PitchBlocks.js:367 -#: js/DictActions.js:87 -msgid "current pitch" +#: js/blocks/RhythmBlocks.js:661 +msgid "The Dot block extends the duration of a note by 50%." msgstr "" -#: js/PitchBlocks.js:373 -msgid "The Current Pitch block is used with the Pitch Converter block. In the example above, current pitch, sol 4, is displayed as 392 hertz." +#: js/blocks/RhythmBlocks.js:663 +msgid "Eg a dotted quarter note will play for 3/8 (1/4 + 1/8) of a beat." msgstr "" -#: js/PitchBlocks.js:410 -msgid "This block converts the pitch value of the last note played into different formats such as hertz, letter name, pitch number, et al." +#: js/blocks/RhythmBlocks.js:765 +#.TRANS: Japanese only: note value block for drum +msgid "note value drum" msgstr "" -#: js/PitchBlocks.js:434 -msgid "alphabet" +#: js/blocks/RhythmBlocks.js:829 +msgid "392 hertz" msgstr "" -#: js/PitchBlocks.js:436 -#.TRANS: Translate as "alphabet class" -msgid "letter class" +#: js/blocks/RhythmBlocks.js:1119 +msgid "The Note block is a container for one or more Pitch blocks." msgstr "" -#: js/PitchBlocks.js:437 -msgid "solfege class" +#: js/blocks/RhythmBlocks.js:1121 +msgid "The Note block specifies the duration (note value) of its contents." msgstr "" -#: js/PitchBlocks.js:438 -msgid "staff y" +#: js/blocks/RhythmBlocks.js:1128 +#: js/blocks/PitchBlocks.js:974 +#: js/blocks/PitchBlocks.js:1007 +#: js/blocks/ProgramBlocks.js:1186 +#: js/blocks/ProgramBlocks.js:1227 +#: js/widgets/status.js:190 +#: js/widgets/temperament.js:464 +#: js/widgets/temperament.js:486 +#: js/widgets/temperament.js:496 +#: js/widgets/temperament.js:617 +#: plugins/rodi.rtp:192 +#.TRANS: a musical note consisting of pitch and duration +msgid "note" msgstr "" -#: js/PitchBlocks.js:439 -msgid "solfege syllable" +#: js/blocks/RhythmBlocks.js:1130 +msgid "value2" +msgstr "value" + +#: js/blocks/RhythmBlocks.js:1200 +msgid "define frequency" msgstr "" -#: js/PitchBlocks.js:440 -msgid "pitch class" +#: js/blocks/RhythmBlocks.js:1218 +#: js/widgets/temperament.js:787 +#: js/widgets/temperament.js:1587 +msgid "octave space" msgstr "" -#: js/PitchBlocks.js:441 -msgid "scalar class" +#: js/blocks/SensorsBlocks.js:36 +msgid "The Input block prompts for keyboard input." msgstr "" -#: js/PitchBlocks.js:443 -msgid "nth degree" +#: js/blocks/SensorsBlocks.js:46 +msgid "input" msgstr "" -#: js/PitchBlocks.js:444 -msgid "pitch to shade" +#: js/blocks/SensorsBlocks.js:64 +msgid "Input a value" msgstr "" -#: js/PitchBlocks.js:445 -msgid "pitch to color" +#: js/blocks/SensorsBlocks.js:126 +msgid "input value" msgstr "" -#: js/PitchBlocks.js:629 -#: js/musickeyboard.js:565 -#.TRANS: MIDI is a technical standard for electronic music -msgid "MIDI" +#: js/blocks/SensorsBlocks.js:131 +msgid "The Input-value block stores the input." msgstr "" -#: js/PitchBlocks.js:642 -#.TRANS: set an offset associated with the numeric piano keyboard mapping -msgid "set pitch number offset" +#: js/blocks/SensorsBlocks.js:238 +msgid "loudness" msgstr "" -#: js/PitchBlocks.js:645 -msgid "The Set pitch number offset block is used to set the offset for mapping pitch numbers to pitch and octave." +#: js/blocks/SensorsBlocks.js:245 +msgid "The Loudness block returns the volume detected by the microphone." msgstr "" -#: js/PitchBlocks.js:679 -#.TRANS: convert piano key number (1-88) to pitch -msgid "number to pitch" +#: js/blocks/SensorsBlocks.js:300 +msgid "click" msgstr "" -#: js/PitchBlocks.js:682 -msgid "The Number to pitch block will convert a pitch number to a pich name." +#: js/blocks/SensorsBlocks.js:306 +msgid "The Click block triggers an event if a mouse has been clicked." msgstr "" -#: js/PitchBlocks.js:715 -#.TRANS: convert piano key number (1-88) to octave -msgid "number to octave" +#: js/blocks/SensorsBlocks.js:313 +msgid "The Click block triggers an event if a turtle has been clicked." msgstr "" -#: js/PitchBlocks.js:717 -msgid "The Number to octave block will convert a pitch number to an octave." +#: js/blocks/SensorsBlocks.js:342 +msgid "cursor over" msgstr "" -#: js/PitchBlocks.js:726 -msgid "y to pitch" +#: js/blocks/SensorsBlocks.js:387 +msgid "cursor out" msgstr "" -#: js/PitchBlocks.js:729 -msgid "Y to pitch block will convert a staff y position to corresponding pitch notation." +#: js/blocks/SensorsBlocks.js:433 +msgid "cursor button down" msgstr "" -#: js/PitchBlocks.js:841 -msgid "accidental selector" +#: js/blocks/SensorsBlocks.js:477 +msgid "cursor button up" msgstr "" -#: js/PitchBlocks.js:844 -msgid "The Accidental selector block is used to choose between double-sharp, sharp, natural, flat, and double-flat." +#: js/blocks/SensorsBlocks.js:521 +#: js/blocks/PenBlocks.js:48 +#: plugins/rodi.rtp:219 +msgid "blue" msgstr "" -#: js/PitchBlocks.js:858 -msgid "Pitch can be specified in terms of ni dha pa ma ga re sa." +#: js/blocks/SensorsBlocks.js:577 +#: js/blocks/PenBlocks.js:64 +#: plugins/rodi.rtp:218 +msgid "green" msgstr "" -#: js/PitchBlocks.js:872 -msgid "Pitch can be specified in terms of C D E F G A B." +#: js/blocks/SensorsBlocks.js:633 +#: js/blocks/PenBlocks.js:112 +#: plugins/rodi.rtp:217 +msgid "red" msgstr "" -#: js/PitchBlocks.js:883 -msgid "solfege" +#: js/blocks/SensorsBlocks.js:638 +msgid "The Get red block returns the red component of the pixel under the mouse." msgstr "" -#: js/PitchBlocks.js:886 -msgid "Pitch can be specified in terms of do re mi fa sol la ti." +#: js/blocks/SensorsBlocks.js:644 +msgid "The Get red block returns the red component of the pixel under the turtle." msgstr "" -#: js/PitchBlocks.js:920 -msgid "The Invert block rotates any contained notes around a target note." +#: js/blocks/SensorsBlocks.js:685 +#: plugins/rodi.rtp:216 +msgid "pixel color" msgstr "" -#: js/PitchBlocks.js:927 -#.TRANS: pitch inversion rotates a pitch around another pitch -msgid "invert" +#: js/blocks/SensorsBlocks.js:690 +msgid "The Get pixel block returns the color of the pixel under the mouse." msgstr "" -#: js/PitchBlocks.js:929 -#: js/PitchBlocks.js:935 -#: js/PitchActions.js:727 -#: js/musicutils.js:726 -#: js/musicutils.js:902 -#.TRANS: invert based on even or odd number or musical scale -#.TRANS: even numbers -msgid "even" +#: js/blocks/SensorsBlocks.js:696 +msgid "The Get pixel block returns the color of the pixel under the turtle." msgstr "" -#: js/PitchBlocks.js:935 -#: js/PitchActions.js:729 -#: js/musicutils.js:728 -#: js/musicutils.js:903 -#.TRANS: odd numbers -msgid "odd" +#: js/blocks/SensorsBlocks.js:758 +msgid "time" msgstr "" -#: js/PitchBlocks.js:935 -#: js/PitchActions.js:731 -#: js/musicutils.js:729 -#: js/musicutils.js:904 -msgid "scalar" +#: js/blocks/SensorsBlocks.js:804 +msgid "cursor y" msgstr "" -#: js/PitchBlocks.js:966 -#.TRANS: pitch inversion rotates a pitch around another pitch (odd number) -msgid "invert (odd)" +#: js/blocks/SensorsBlocks.js:809 +msgid "The Cursor Y block returns the vertical position of the mouse." msgstr "" -#: js/PitchBlocks.js:999 -#.TRANS: pitch inversion rotates a pitch around another pitch (even number) -msgid "invert (even)" +#: js/blocks/SensorsBlocks.js:845 +msgid "cursor x" msgstr "" -#: js/PitchBlocks.js:1020 -#.TRANS: register is the octave of the current pitch -msgid "register" +#: js/blocks/SensorsBlocks.js:850 +msgid "The Cursor X block returns the horizontal position of the mouse." msgstr "" -#: js/PitchBlocks.js:1024 -msgid "The Register block provides an easy way to modify the register (octave) of the notes that follow it." +#: js/blocks/SensorsBlocks.js:886 +msgid "mouse button" msgstr "" -#: js/PitchBlocks.js:1074 -msgid "The Semi-tone transposition block will shift the pitches contained inside Note blocks up (or down) by half steps." +#: js/blocks/SensorsBlocks.js:888 +msgid "The Mouse-button block returns True if the mouse button is pressed." msgstr "" -#: js/PitchBlocks.js:1076 -msgid "In the example shown above, sol is shifted up to sol#." +#: js/blocks/SensorsBlocks.js:934 +msgid "to ASCII" msgstr "" -#: js/PitchBlocks.js:1082 -#.TRANS: adjust the amount of shift (up or down) of a pitch -msgid "semi-tone transpose" +#: js/blocks/SensorsBlocks.js:938 +msgid "The To ASCII block converts numbers to letters." msgstr "" -#: js/PitchBlocks.js:1115 -msgid "The Transpose by Ratio block will shift the pitches contained inside Note blocks up (or down) by a ratio" +#: js/blocks/SensorsBlocks.js:1005 +msgid "The Keyboard block returns computer keyboard input." msgstr "" -#: js/PitchBlocks.js:1121 -#.TRANS: adjust the amount of shift (up or down) of a pitch -msgid "transpose by ratio" +#: js/blocks/RhythmBlockPaletteBlocks.js:50 +#: js/blocks/RhythmBlockPaletteBlocks.js:233 +#.TRANS: rhythm block +#.TRANS: translate "rhythm1" as rhythm +msgid "rhythm1" +msgstr "rhythm" + +#: js/blocks/RhythmBlockPaletteBlocks.js:70 +#: js/blocks/RhythmBlockPaletteBlocks.js:252 +#: js/blocks/RhythmBlockPaletteBlocks.js:485 +#: js/blocks/RhythmBlockPaletteBlocks.js:554 +#: js/blocks/RhythmBlockPaletteBlocks.js:875 +msgid "number of notes" msgstr "" -#: js/PitchBlocks.js:1204 -#.TRANS: down sixth means the note is five scale degrees below current note -msgid "down sixth" +#: js/blocks/RhythmBlockPaletteBlocks.js:126 +msgid "polyphonic rhythm" msgstr "" -#: js/PitchBlocks.js:1223 -#.TRANS: down third means the note is two scale degrees below current note -msgid "down third" +#: js/blocks/RhythmBlockPaletteBlocks.js:219 +msgid "The Rhythm block is used to generate rhythm patterns." msgstr "" -#: js/PitchBlocks.js:1242 -#.TRANS: seventh means the note is the six scale degrees above current note -msgid "seventh" +#: js/blocks/RhythmBlockPaletteBlocks.js:280 +msgid "1/64 note" msgstr "" -#: js/PitchBlocks.js:1261 -#.TRANS: sixth means the note is the five scale degrees above current note -msgid "sixth" +#: js/blocks/RhythmBlockPaletteBlocks.js:304 +msgid "1/32 note" msgstr "" -#: js/PitchBlocks.js:1280 -#.TRANS: fifth means the note is the four scale degrees above current note -msgid "fifth" +#: js/blocks/RhythmBlockPaletteBlocks.js:332 +msgid "1/16 note" msgstr "" -#: js/PitchBlocks.js:1300 -#.TRANS: fourth means the note is three scale degrees above current note -msgid "fourth" +#: js/blocks/RhythmBlockPaletteBlocks.js:360 +msgid "eighth note" msgstr "" -#: js/PitchBlocks.js:1319 -#.TRANS: third means the note is two scale degrees above current note -msgid "third" +#: js/blocks/RhythmBlockPaletteBlocks.js:388 +msgid "quarter note" msgstr "" -#: js/PitchBlocks.js:1338 -#.TRANS: second means the note is one scale degree above current note -msgid "second" +#: js/blocks/RhythmBlockPaletteBlocks.js:416 +msgid "half note" msgstr "" -#: js/PitchBlocks.js:1379 -msgid "The Scalar transposition block will shift the pitches contained inside Note blocks up (or down) the scale." +#: js/blocks/RhythmBlockPaletteBlocks.js:444 +msgid "whole note" msgstr "" -#: js/PitchBlocks.js:1381 -msgid "In the example shown above, sol is shifted up to la." +#: js/blocks/RhythmBlockPaletteBlocks.js:482 +#: js/blocks/RhythmBlockPaletteBlocks.js:551 +#: js/blocks/RhythmBlockPaletteBlocks.js:602 +#.TRANS: A tuplet is a note value divided into irregular time values. +msgid "tuplet" msgstr "" -#: js/PitchBlocks.js:1388 -#.TRANS: adjust the amount of shift (up or down) of a pitch by musical scale (scalar) steps -msgid "scalar transpose" +#: js/blocks/RhythmBlockPaletteBlocks.js:768 +msgid "septuplet" msgstr "" -#: js/PitchBlocks.js:1423 -msgid "The Accidental block is used to create sharps and flats" +#: js/blocks/RhythmBlockPaletteBlocks.js:796 +msgid "quintuplet" msgstr "" -#: js/PitchBlocks.js:1430 -#.TRANS: An accidental is a modification to a pitch, e.g., sharp or flat. -msgid "accidental override" +#: js/blocks/RhythmBlockPaletteBlocks.js:824 +msgid "triplet" msgstr "" -#: js/PitchBlocks.js:1543 -msgid "The Hertz block (in combination with a Number block) will play a sound at the specified frequency." +#: js/blocks/RhythmBlockPaletteBlocks.js:851 +msgid "simple tuplet" msgstr "" -#: js/PitchBlocks.js:1633 -msgid "The Pitch Number block will play a pitch associated by its number, e.g. 0 for C and 7 for G." +#: js/blocks/RhythmBlockPaletteBlocks.js:861 +msgid "Tuplets are a collection of notes that get scaled to a specific duration." msgstr "" -#: js/PitchBlocks.js:1665 -#: js/PitchBlocks.js:1707 -#.TRANS: a numeric mapping of the notes in an octave based on the musical mode -#.TRANS: a numeric mapping of the notes in an octave based on the musical mode -msgid "nth modal pitch" +#: js/blocks/DrumBlocks.js:59 +msgid "The Noise name block is used to select a noise synthesizer." msgstr "" -#: js/PitchBlocks.js:1668 -msgid "n^th Modal Pitch takes the pattern of pitches in semitones for a mode and makes each point a degree of the mode," +#: js/blocks/DrumBlocks.js:102 +msgid "The Drum name block is used to select a drum." msgstr "" -#: js/PitchBlocks.js:1670 -msgid "starting from 1 and regardless of tonal framework (i.e. not always 8 notes in the octave)" +#: js/blocks/DrumBlocks.js:146 +msgid "The Effects name block is used to select a sound effect." msgstr "" -#: js/PitchBlocks.js:1711 -msgid "N^th Modal Pitch takes a number as an input as the n^th degree for the given mode. 0 is the first position, 1 is the second, -1 is the note before the first etc." +#: js/blocks/DrumBlocks.js:163 +msgid "noise" msgstr "" -#: js/PitchBlocks.js:1713 -msgid "The pitches change according to the mode specified without any need for respellings." +#: js/blocks/DrumBlocks.js:177 +msgid "The Play noise block will generate white, pink, or brown noise." msgstr "" -#: js/PitchBlocks.js:1752 -msgid "Scale Degree is a common convention in music. Scale Degree offers seven possible positions in the scale (1-7) and can be modified via accidentals." +#: js/blocks/DrumBlocks.js:317 +msgid "Replace every instance of a pitch with a drum sound." msgstr "" -#: js/PitchBlocks.js:1754 -msgid "Scale Degree 1 is always the first pitch in a given scale, regardless of octave." +#: js/blocks/DrumBlocks.js:328 +#.TRANS: map a pitch to a drum sound +msgid "map pitch to drum" msgstr "" -#: js/PitchBlocks.js:1776 -#.TRANS: step some number of notes in current musical scale -msgid "scalar step" +#: js/blocks/DrumBlocks.js:395 +msgid "In the example above, a kick drum sound will be played instead of sol." msgstr "" -#: js/PitchBlocks.js:1781 -msgid "The Scalar Step block (in combination with a Number block) will play the next pitch in a scale," +#: js/blocks/DrumBlocks.js:407 +#.TRANS: set the current drum sound for playback +msgid "set drum" msgstr "" -#: js/PitchBlocks.js:1783 -msgid "eg if the last note played was sol, Scalar Step 1 will play la." +#: js/blocks/DrumBlocks.js:451 +msgid "sound effect" msgstr "" -#: js/PitchBlocks.js:1818 -msgid "The Pitch block specifies the pitch name and octave of a note that together determine the frequency of the note." +#: js/blocks/DrumBlocks.js:489 +msgid "You can use multiple Drum blocks within a Note block." msgstr "" -#: js/GraphicsBlocks.js:46 -#: js/DictActions.js:77 -#: js/DictActions.js:155 -#: js/DictActions.js:189 +#: js/blocks/GraphicsBlocks.js:46 +#: js/turtleactions/DictActions.js:77 +#: js/turtleactions/DictActions.js:144 +#: js/turtleactions/DictActions.js:173 msgid "heading" msgstr "" -#: js/GraphicsBlocks.js:56 +#: js/blocks/GraphicsBlocks.js:56 msgid "The Heading block returns the orientation of the mouse." msgstr "" -#: js/GraphicsBlocks.js:62 +#: js/blocks/GraphicsBlocks.js:62 msgid "The Heading block returns the orientation of the turtle." msgstr "" -#: js/GraphicsBlocks.js:133 +#: js/blocks/GraphicsBlocks.js:133 msgid "The Y block returns the vertical position of the mouse." msgstr "" -#: js/GraphicsBlocks.js:140 +#: js/blocks/GraphicsBlocks.js:140 msgid "The Y block returns the vertical position of the turtle." msgstr "" -#: js/GraphicsBlocks.js:149 +#: js/blocks/GraphicsBlocks.js:149 msgid "y3" msgstr "" -#: js/GraphicsBlocks.js:219 +#: js/blocks/GraphicsBlocks.js:219 msgid "The X block returns the horizontal position of the mouse." msgstr "" -#: js/GraphicsBlocks.js:226 +#: js/blocks/GraphicsBlocks.js:226 msgid "The X block returns the horizontal position of the turtle." msgstr "" -#: js/GraphicsBlocks.js:235 +#: js/blocks/GraphicsBlocks.js:235 msgid "x3" msgstr "" -#: js/GraphicsBlocks.js:295 +#: js/blocks/GraphicsBlocks.js:295 msgid "scroll xy" msgstr "" -#: js/GraphicsBlocks.js:303 +#: js/blocks/GraphicsBlocks.js:303 msgid "The Scroll XY block moves the canvas." msgstr "" -#: js/GraphicsBlocks.js:313 +#: js/blocks/GraphicsBlocks.js:313 msgid "x2" msgstr "x" -#: js/GraphicsBlocks.js:313 +#: js/blocks/GraphicsBlocks.js:313 msgid "y2" msgstr "y" -#: js/GraphicsBlocks.js:373 -#: js/temperament.js:213 -#: js/temperament.js:241 +#: js/blocks/GraphicsBlocks.js:373 +#: js/widgets/temperament.js:319 +#: js/widgets/temperament.js:347 msgid "clear" msgstr "" -#: js/GraphicsBlocks.js:426 +#: js/blocks/GraphicsBlocks.js:426 msgid "The Control-point 2 block sets the second control point for the Bezier curve." msgstr "" -#: js/GraphicsBlocks.js:433 +#: js/blocks/GraphicsBlocks.js:433 msgid "control point 2" msgstr "" -#: js/GraphicsBlocks.js:436 -#: js/GraphicsBlocks.js:487 -#: js/GraphicsBlocks.js:534 -#: js/GraphicsBlocks.js:750 +#: js/blocks/GraphicsBlocks.js:436 +#: js/blocks/GraphicsBlocks.js:487 +#: js/blocks/GraphicsBlocks.js:534 +#: js/blocks/GraphicsBlocks.js:750 msgid "x1" msgstr "x" -#: js/GraphicsBlocks.js:436 -#: js/GraphicsBlocks.js:487 -#: js/GraphicsBlocks.js:534 -#: js/GraphicsBlocks.js:750 +#: js/blocks/GraphicsBlocks.js:436 +#: js/blocks/GraphicsBlocks.js:487 +#: js/blocks/GraphicsBlocks.js:534 +#: js/blocks/GraphicsBlocks.js:750 msgid "y1" msgstr "y" -#: js/GraphicsBlocks.js:477 +#: js/blocks/GraphicsBlocks.js:477 msgid "The Control-point 1 block sets the first control point for the Bezier curve." msgstr "" -#: js/GraphicsBlocks.js:484 +#: js/blocks/GraphicsBlocks.js:484 msgid "control point 1" msgstr "" -#: js/GraphicsBlocks.js:527 +#: js/blocks/GraphicsBlocks.js:527 msgid "The Bezier block draws a Bezier curve." msgstr "" -#: js/GraphicsBlocks.js:531 +#: js/blocks/GraphicsBlocks.js:531 msgid "bezier" msgstr "" -#: js/GraphicsBlocks.js:592 +#: js/blocks/GraphicsBlocks.js:592 msgid "The Arc block moves the turtle in an arc." msgstr "" -#: js/GraphicsBlocks.js:600 +#: js/blocks/GraphicsBlocks.js:600 msgid "arc" msgstr "" -#: js/GraphicsBlocks.js:603 +#: js/blocks/GraphicsBlocks.js:603 msgid "angle" msgstr "" -#: js/GraphicsBlocks.js:603 +#: js/blocks/GraphicsBlocks.js:603 msgid "radius" msgstr "" -#: js/GraphicsBlocks.js:620 -#: js/GraphicsBlocks.js:767 -#: js/GraphicsBlocks.js:1010 -#: js/GraphicsBlocks.js:1093 +#: js/blocks/GraphicsBlocks.js:620 +#: js/blocks/GraphicsBlocks.js:767 +#: js/blocks/GraphicsBlocks.js:1010 +#: js/blocks/GraphicsBlocks.js:1093 msgid "Value must be within -5000 to 5000 when Wrap Mode is off." msgstr "" -#: js/GraphicsBlocks.js:622 -#: js/GraphicsBlocks.js:769 -#: js/GraphicsBlocks.js:1012 -#: js/GraphicsBlocks.js:1095 +#: js/blocks/GraphicsBlocks.js:622 +#: js/blocks/GraphicsBlocks.js:769 +#: js/blocks/GraphicsBlocks.js:1012 +#: js/blocks/GraphicsBlocks.js:1095 msgid "Value must be within -20000 to 20000 when Wrap Mode is on." msgstr "" -#: js/GraphicsBlocks.js:660 +#: js/blocks/GraphicsBlocks.js:660 msgid "set heading" msgstr "" -#: js/GraphicsBlocks.js:673 +#: js/blocks/GraphicsBlocks.js:673 msgid "The Set heading block sets the heading of the turtle." msgstr "" -#: js/GraphicsBlocks.js:733 +#: js/blocks/GraphicsBlocks.js:733 msgid "The Set XY block moves the mouse to a specific position on the screen." msgstr "" -#: js/GraphicsBlocks.js:739 +#: js/blocks/GraphicsBlocks.js:739 msgid "The Set XY block moves the turtle to a specific position on the screen." msgstr "" -#: js/GraphicsBlocks.js:747 +#: js/blocks/GraphicsBlocks.js:747 msgid "set xy" msgstr "" -#: js/GraphicsBlocks.js:819 +#: js/blocks/GraphicsBlocks.js:819 msgid "The Right block turns the mouse to the right." msgstr "" -#: js/GraphicsBlocks.js:826 +#: js/blocks/GraphicsBlocks.js:826 msgid "The Right block turns the turtle to the right." msgstr "" -#: js/GraphicsBlocks.js:835 +#: js/blocks/GraphicsBlocks.js:835 msgid "right1" msgstr "right" -#: js/GraphicsBlocks.js:835 +#: js/blocks/GraphicsBlocks.js:835 #: plugins/rodi.rtp:77 #: plugins/rodi.rtp:340 #: plugins/rodi.rtp:375 msgid "right" msgstr "" -#: js/GraphicsBlocks.js:899 +#: js/blocks/GraphicsBlocks.js:899 msgid "The Left block turns the mouse to the left." msgstr "" -#: js/GraphicsBlocks.js:906 +#: js/blocks/GraphicsBlocks.js:906 msgid "The Left block turns the turtle to the left." msgstr "" -#: js/GraphicsBlocks.js:915 +#: js/blocks/GraphicsBlocks.js:915 msgid "left1" msgstr "left" -#: js/GraphicsBlocks.js:915 +#: js/blocks/GraphicsBlocks.js:915 #: plugins/rodi.rtp:79 #: plugins/rodi.rtp:339 #: plugins/rodi.rtp:362 msgid "left" msgstr "" -#: js/GraphicsBlocks.js:967 -#: js/temperament.js:734 -#: js/temperament.js:933 +#: js/blocks/GraphicsBlocks.js:967 +#: js/widgets/temperament.js:875 +#: js/widgets/temperament.js:1078 #: plugins/rodi.rtp:69 #: plugins/rodi.rtp:387 msgid "back" msgstr "" -#: js/GraphicsBlocks.js:976 +#: js/blocks/GraphicsBlocks.js:976 msgid "The Back block moves the mouse backward." msgstr "" -#: js/GraphicsBlocks.js:983 +#: js/blocks/GraphicsBlocks.js:983 msgid "The Back block moves the turtle backward." msgstr "" -#: js/GraphicsBlocks.js:1050 +#: js/blocks/GraphicsBlocks.js:1050 #: plugins/rodi.rtp:71 #: plugins/rodi.rtp:400 msgid "forward" msgstr "" -#: js/GraphicsBlocks.js:1059 +#: js/blocks/GraphicsBlocks.js:1059 msgid "The Forward block moves the mouse forward." msgstr "" -#: js/GraphicsBlocks.js:1066 +#: js/blocks/GraphicsBlocks.js:1066 msgid "The Forward block moves the turtle forward." msgstr "" -#: js/GraphicsBlocks.js:1154 -#: js/GraphicsBlocks.js:1172 +#: js/blocks/GraphicsBlocks.js:1154 +#: js/blocks/GraphicsBlocks.js:1172 msgid "wrap" msgstr "" -#: js/OrnamentBlocks.js:32 -msgid "staccato factor" -msgstr "" - -#: js/OrnamentBlocks.js:108 -msgid "slur factor" -msgstr "" - -#: js/OrnamentBlocks.js:217 -#: js/OrnamentBlocks.js:309 -#.TRANS: the neighbor refers to a neighboring note, e.g., D is a neighbor of C -msgid "neighbor" -msgstr "" - -#: js/OrnamentBlocks.js:293 -msgid "The Neighbor block rapidly switches between neighboring pitches." -msgstr "" - -#: js/OrnamentBlocks.js:364 -msgid "glide" -msgstr "" - -#: js/OrnamentBlocks.js:479 -#: js/OrnamentBlocks.js:643 -msgid "slur" -msgstr "" - -#: js/OrnamentBlocks.js:558 -#: js/OrnamentBlocks.js:710 -#.TRANS: play each note sharply detached from the others -msgid "staccato" -msgstr "" - -#: js/PenBlocks.js:24 +#: js/blocks/PenBlocks.js:30 msgid "purple" msgstr "" -#: js/PenBlocks.js:37 -#: js/SensorsBlocks.js:521 -#: plugins/rodi.rtp:219 -msgid "blue" -msgstr "" - -#: js/PenBlocks.js:50 -#: js/SensorsBlocks.js:577 -#: plugins/rodi.rtp:218 -msgid "green" -msgstr "" - -#: js/PenBlocks.js:63 +#: js/blocks/PenBlocks.js:80 msgid "yellow" msgstr "" -#: js/PenBlocks.js:76 +#: js/blocks/PenBlocks.js:96 #: plugins/nutrition.rtp:164 msgid "orange" msgstr "" -#: js/PenBlocks.js:89 -#: js/SensorsBlocks.js:633 -#: plugins/rodi.rtp:217 -msgid "red" -msgstr "" - -#: js/PenBlocks.js:102 +#: js/blocks/PenBlocks.js:128 msgid "white" msgstr "" -#: js/PenBlocks.js:115 +#: js/blocks/PenBlocks.js:144 msgid "black" msgstr "" -#: js/PenBlocks.js:128 +#: js/blocks/PenBlocks.js:163 msgid "begin fill" msgstr "" -#: js/PenBlocks.js:143 +#: js/blocks/PenBlocks.js:190 msgid "end fill" msgstr "" -#: js/PenBlocks.js:159 -#: js/PenBlocks.js:386 +#: js/blocks/PenBlocks.js:212 +#: js/blocks/PenBlocks.js:560 #.TRANS: set the background color msgid "background" msgstr "" -#: js/PenBlocks.js:206 -#: js/DictActions.js:71 -#: js/DictActions.js:149 -#: js/DictActions.js:186 +#: js/blocks/PenBlocks.js:274 +#: js/turtleactions/DictActions.js:71 +#: js/turtleactions/DictActions.js:138 +#: js/turtleactions/DictActions.js:170 msgid "grey" msgstr "" -#: js/PenBlocks.js:210 +#: js/blocks/PenBlocks.js:282 msgid "The Grey block returns the current pen grey value." msgstr "" -#: js/PenBlocks.js:243 -#: js/DictActions.js:69 -#: js/DictActions.js:147 -#: js/DictActions.js:185 +#: js/blocks/PenBlocks.js:340 +#: js/turtleactions/DictActions.js:69 +#: js/turtleactions/DictActions.js:136 +#: js/turtleactions/DictActions.js:169 msgid "shade" msgstr "" -#: js/PenBlocks.js:247 +#: js/blocks/PenBlocks.js:347 msgid "The Shade block returns the current pen shade value." msgstr "" -#: js/PenBlocks.js:280 -#: js/DictActions.js:67 -#: js/DictActions.js:145 -#: js/DictActions.js:184 +#: js/blocks/PenBlocks.js:405 +#: js/turtleactions/DictActions.js:67 +#: js/turtleactions/DictActions.js:134 +#: js/turtleactions/DictActions.js:168 msgid "color" msgstr "" -#: js/PenBlocks.js:285 +#: js/blocks/PenBlocks.js:415 msgid "The Color block returns the current pen color." msgstr "" -#: js/PenBlocks.js:318 -#: js/DictActions.js:73 -#: js/DictActions.js:151 -#: js/DictActions.js:187 +#: js/blocks/PenBlocks.js:470 +#: js/turtleactions/DictActions.js:73 +#: js/turtleactions/DictActions.js:140 +#: js/turtleactions/DictActions.js:171 msgid "pen size" msgstr "" -#: js/PenBlocks.js:322 +#: js/blocks/PenBlocks.js:474 msgid "The Pen size block returns the current pen size value." msgstr "" -#: js/PenBlocks.js:355 +#: js/blocks/PenBlocks.js:513 msgid "set font" msgstr "" -#: js/PenBlocks.js:358 +#: js/blocks/PenBlocks.js:518 msgid "The Set font block sets the font used by the Show block." msgstr "" -#: js/PenBlocks.js:391 +#: js/blocks/PenBlocks.js:567 msgid "The Background block sets the window background color." msgstr "" -#: js/PenBlocks.js:408 +#: js/blocks/PenBlocks.js:598 msgid "The Hollow line block creates a line with a hollow center." msgstr "" -#: js/PenBlocks.js:415 +#: js/blocks/PenBlocks.js:606 #.TRANS: draw a line logo has a hollow space down its center msgid "hollow line" msgstr "" -#: js/PenBlocks.js:462 +#: js/blocks/PenBlocks.js:675 msgid "The Fill block fills in a shape with a color." msgstr "" -#: js/PenBlocks.js:470 +#: js/blocks/PenBlocks.js:684 #.TRANS: fill in as a solid color msgid "fill" msgstr "" -#: js/PenBlocks.js:527 +#: js/blocks/PenBlocks.js:761 #.TRANS: raise up the pen so logo it does not draw when it is moved msgid "pen up" msgstr "" -#: js/PenBlocks.js:532 +#: js/blocks/PenBlocks.js:768 msgid "The Pen-up block raises the pen so that it does not draw." msgstr "" -#: js/PenBlocks.js:552 +#: js/blocks/PenBlocks.js:802 #.TRANS: put down the pen so logo it draws when it is moved msgid "pen down" msgstr "" -#: js/PenBlocks.js:557 +#: js/blocks/PenBlocks.js:810 msgid "The Pen-down block lowers the pen so that it draws." msgstr "" -#: js/PenBlocks.js:577 +#: js/blocks/PenBlocks.js:844 #.TRANS: set the width of the line drawn by the pen msgid "set pen size" msgstr "" -#: js/PenBlocks.js:583 +#: js/blocks/PenBlocks.js:854 msgid "The Set-pen-size block changes the size of the pen." msgstr "" -#: js/PenBlocks.js:623 +#: js/blocks/PenBlocks.js:913 #.TRANS: set degree of translucence of the pen color msgid "set translucency" msgstr "" -#: js/PenBlocks.js:627 +#: js/blocks/PenBlocks.js:921 msgid "The Set translucency block changes the opacity of the pen." msgstr "" -#: js/PenBlocks.js:668 +#: js/blocks/PenBlocks.js:981 msgid "set hue" msgstr "" -#: js/PenBlocks.js:672 +#: js/blocks/PenBlocks.js:989 msgid "The Set hue block changes the color of the pen." msgstr "" -#: js/PenBlocks.js:711 +#: js/blocks/PenBlocks.js:1047 msgid "set shade" msgstr "" -#: js/PenBlocks.js:717 +#: js/blocks/PenBlocks.js:1057 msgid "The Set-shade block changes the pen color from dark to light." msgstr "" -#: js/PenBlocks.js:757 +#: js/blocks/PenBlocks.js:1111 #.TRANS: set the level of vividness of the pen color msgid "set grey" msgstr "" -#: js/PenBlocks.js:761 +#: js/blocks/PenBlocks.js:1119 msgid "The Set grey block changes the vividness of the pen color." msgstr "" -#: js/PenBlocks.js:800 +#: js/blocks/PenBlocks.js:1172 msgid "set color" msgstr "" -#: js/PenBlocks.js:806 +#: js/blocks/PenBlocks.js:1182 msgid "The Set-color block changes the pen color." msgstr "" -#: js/VolumeBlocks.js:35 -msgid "synth volume" -msgstr "" - -#: js/VolumeBlocks.js:39 -msgid "The Synth volume block returns the current volume of the current synthesizer." -msgstr "" - -#: js/VolumeBlocks.js:47 -#: js/musicutils.js:730 -#: js/synthutils.js:56 -#.TRANS: musical instrument -msgid "piano" -msgstr "" - -#: js/VolumeBlocks.js:105 -msgid "master volume" -msgstr "" - -#: js/VolumeBlocks.js:109 -msgid "The Master volume block returns the master volume." -msgstr "" - -#: js/VolumeBlocks.js:355 -#: js/VolumeBlocks.js:524 -msgid "set synth volume" -msgstr "" - -#: js/VolumeBlocks.js:362 -#: js/VolumeBlocks.js:545 -msgid "synth" -msgstr "" - -#: js/VolumeBlocks.js:403 -#: js/VolumeBlocks.js:577 -#: js/VolumeBlocks.js:740 -#: js/VolumeActions.js:173 -msgid "Setting volume to 0." -msgstr "" - -#: js/VolumeBlocks.js:440 -msgid "Synth not found" -msgstr "" - -#: js/VolumeBlocks.js:494 -msgid "set drum volume" -msgstr "" - -#: js/VolumeBlocks.js:530 -msgid "The Set synth volume block will change the volume of a particular synth," -msgstr "" - -#: js/VolumeBlocks.js:532 -msgid "eg guitar violin snare drum etc." -msgstr "" - -#: js/VolumeBlocks.js:534 -msgid "The default volume is 50." -msgstr "" - -#: js/VolumeBlocks.js:536 -msgid "The range is 0 for silence to 100 for full volume." -msgstr "" - -#: js/VolumeBlocks.js:597 -msgid "set panning" -msgstr "" - -#: js/VolumeBlocks.js:603 -msgid "The Set Panning block sets the panning for all synthesizers." -msgstr "" - -#: js/VolumeBlocks.js:625 -msgid "Warning: Sound is coming out from only the left or right side." -msgstr "" - -#: js/VolumeBlocks.js:647 -#: js/VolumeBlocks.js:695 -msgid "set master volume" -msgstr "" - -#: js/VolumeBlocks.js:653 -msgid "The Set master volume block sets the volume for all synthesizers." -msgstr "" - -#: js/VolumeBlocks.js:784 -msgid "The Set relative volume block changes the volume of the contained notes." -msgstr "" - -#: js/VolumeBlocks.js:791 -msgid "set relative volume" -msgstr "" - -#: js/VolumeBlocks.js:857 -msgid "decrescendo" -msgstr "" - -#: js/VolumeBlocks.js:921 -msgid "crescendo" -msgstr "" - -#: js/ToneBlocks.js:34 -msgid "oscillator" -msgstr "" - -#: js/ToneBlocks.js:44 -#: js/timbre.js:1562 -#.TRANS: Partials refers to the number of sine waves combined into the sound. -msgid "partials" -msgstr "" - -#: js/ToneBlocks.js:76 -msgid "You are adding multiple oscillator blocks." -msgstr "" - -#: js/ToneBlocks.js:144 -#: js/timbre.js:1225 -#.TRANS: a duo synthesizer combines a synth with a sequencer -msgid "duo synth" -msgstr "" - -#: js/ToneBlocks.js:149 -msgid "The Duo synth block is a duo-frequency modulator used to define a timbre." -msgstr "" - -#: js/ToneBlocks.js:157 -#: js/timbre.js:1476 -msgid "vibrato rate" -msgstr "" - -#: js/ToneBlocks.js:157 -msgid "vibrato intensity" -msgstr "" - -#: js/ToneBlocks.js:185 -#: js/timbre.js:1221 -#.TRANS: AM (amplitude modulation) synthesizer -msgid "AM synth" -msgstr "" - -#: js/ToneBlocks.js:189 -msgid "The AM synth block is an amplitude modulator used to define a timbre." -msgstr "" - -#: js/ToneBlocks.js:224 -#: js/timbre.js:1223 -#.TRANS: FM (frequency modulation) synthesizer -msgid "FM synth" +#: js/blocks/PitchBlocks.js:141 +#.TRANS: musical transposition (adjustment of pitch up or down) +msgid "transposition" msgstr "" -#: js/ToneBlocks.js:228 -msgid "The FM synth block is a frequency modulator used to define a timbre." +#: js/blocks/PitchBlocks.js:168 +#.TRANS: step down one note in current musical scale +msgid "scalar step down" msgstr "" -#: js/ToneBlocks.js:262 -msgid "partial" +#: js/blocks/PitchBlocks.js:172 +msgid "The Scalar step down block returns the number of semi-tones down to the previous note in the current key and mode." msgstr "" -#: js/ToneBlocks.js:265 -msgid "The Partial block is used to specify a weight for a specific partial harmonic." +#: js/blocks/PitchBlocks.js:190 +#.TRANS: step up one note in current musical scale +msgid "scalar step up" msgstr "" -#: js/ToneBlocks.js:284 -#.TRANS: partials are weighted components in a harmonic series -msgid "Partial weight must be between 0 and 1." +#: js/blocks/PitchBlocks.js:194 +msgid "The Scalar step up block returns the number of semi-tones up to the next note in the current key and mode." msgstr "" -#: js/ToneBlocks.js:297 -#.TRANS: partials are weighted components in a harmonic series -msgid "Partial block should be used inside of a Weighted-partials block." +#: js/blocks/PitchBlocks.js:212 +#.TRANS: the change measured in half-steps between the current pitch and the previous pitch +msgid "change in pitch" msgstr "" -#: js/ToneBlocks.js:325 -#.TRANS: partials are weighted components in a harmonic series -msgid "weighted partials" +#: js/blocks/PitchBlocks.js:216 +msgid "The Change in pitch block is the difference (in half steps) between the current pitch being played and the previous pitch played." msgstr "" -#: js/ToneBlocks.js:383 -msgid "The Harmonic block will add harmonics to the contained notes." +#: js/blocks/PitchBlocks.js:243 +#.TRANS: the change measured in scale-steps between the current pitch and the previous pitch +msgid "scalar change in pitch" msgstr "" -#: js/ToneBlocks.js:390 -#.TRANS: A harmonic is an overtone. -msgid "harmonic" +#: js/blocks/PitchBlocks.js:250 +#: js/blocks/PitchBlocks.js:432 +#: js/blocks/PitchBlocks.js:1667 +#: js/turtleactions/DictActions.js:89 +#: js/widgets/temperament.js:610 +#: js/widgets/temperament.js:614 +#: js/widgets/temperament.js:855 +#.TRANS: convert current note to piano key (1-88) +#.TRANS: a mapping of pitch to the 88 piano keys +msgid "pitch number" msgstr "" -#: js/ToneBlocks.js:431 -msgid "The Distortion block adds distortion to the pitch." +#: js/blocks/PitchBlocks.js:256 +msgid "The Pitch number block is the value of the pitch of the note currently being played." msgstr "" -#: js/ToneBlocks.js:438 -#: js/timbre.js:2100 -#.TRANS: distortion is an alteration in the sound -msgid "distortion" +#: js/blocks/PitchBlocks.js:329 +#: js/blocks/PitchBlocks.js:433 +#.TRANS: the current pitch expressed in Hertz +msgid "pitch in hertz" msgstr "" -#: js/ToneBlocks.js:487 -msgid "The Tremolo block adds a wavering effect." +#: js/blocks/PitchBlocks.js:334 +msgid "The Pitch in Hertz block is the value in Hertz of the pitch of the note currently being played." msgstr "" -#: js/ToneBlocks.js:495 -#: js/timbre.js:2092 -#.TRANS: a wavering effect in a musical tone -msgid "tremolo" +#: js/blocks/PitchBlocks.js:367 +#: js/turtleactions/DictActions.js:87 +msgid "current pitch" msgstr "" -#: js/ToneBlocks.js:500 -#: js/ToneBlocks.js:569 -#: js/ToneBlocks.js:630 -#: js/ToneBlocks.js:689 -#: js/timbre.js:2134 -#: js/timbre.js:2222 -#: js/timbre.js:2317 -#: js/timbre.js:2419 -#.TRANS: rate at which tremolo wavers -msgid "rate" +#: js/blocks/PitchBlocks.js:373 +msgid "The Current Pitch block is used with the Pitch Converter block. In the example above, current pitch, sol 4, is displayed as 392 hertz." msgstr "" -#: js/ToneBlocks.js:502 -#: js/ToneBlocks.js:630 -#: js/timbre.js:2137 -#: js/timbre.js:2328 -#.TRANS: amplitude of tremolo waver -msgid "depth" +#: js/blocks/PitchBlocks.js:410 +msgid "This block converts the pitch value of the last note played into different formats such as hertz, letter name, pitch number, et al." msgstr "" -#: js/ToneBlocks.js:559 -msgid "The Phaser block adds a sweeping sound." +#: js/blocks/PitchBlocks.js:434 +msgid "alphabet" msgstr "" -#: js/ToneBlocks.js:566 -#: js/timbre.js:2098 -#.TRANS: alter the phase of the sound -msgid "phaser" +#: js/blocks/PitchBlocks.js:436 +#.TRANS: Translate as "alphabet class" +msgid "letter class" msgstr "" -#: js/ToneBlocks.js:569 -#: js/timbre.js:2422 -msgid "octaves" +#: js/blocks/PitchBlocks.js:437 +msgid "solfege class" msgstr "" -#: js/ToneBlocks.js:569 -#: js/timbre.js:2425 -msgid "base frequency" +#: js/blocks/PitchBlocks.js:438 +msgid "staff y" msgstr "" -#: js/ToneBlocks.js:619 -msgid "The Chorus block adds a chorus effect." +#: js/blocks/PitchBlocks.js:439 +msgid "solfege syllable" msgstr "" -#: js/ToneBlocks.js:627 -#: js/timbre.js:2096 -#.TRANS: musical effect to simulate a choral sound -msgid "chorus" +#: js/blocks/PitchBlocks.js:440 +msgid "pitch class" msgstr "" -#: js/ToneBlocks.js:630 -msgid "delay" +#: js/blocks/PitchBlocks.js:441 +msgid "scalar class" msgstr "" -#: js/ToneBlocks.js:678 -msgid "The Vibrato block adds a rapid, slight variation in pitch." +#: js/blocks/PitchBlocks.js:443 +msgid "nth degree" msgstr "" -#: js/ToneBlocks.js:686 -#: js/timbre.js:2094 -#.TRANS: a rapid, slight variation in pitch -msgid "vibrato" +#: js/blocks/PitchBlocks.js:444 +msgid "pitch to shade" msgstr "" -#: js/ToneBlocks.js:689 -#: js/timbre.js:2221 -msgid "intensity" +#: js/blocks/PitchBlocks.js:445 +msgid "pitch to color" msgstr "" -#: js/ToneBlocks.js:733 -#.TRANS: select synthesizer -msgid "set synth" +#: js/blocks/PitchBlocks.js:629 +#: js/widgets/musickeyboard.js:735 +#.TRANS: MIDI is a technical standard for electronic music +msgid "MIDI" msgstr "" -#: js/ToneBlocks.js:804 -msgid "synth name" +#: js/blocks/PitchBlocks.js:642 +#.TRANS: set an offset associated with the numeric piano keyboard mapping +msgid "set pitch number offset" msgstr "" -#: js/ToneBlocks.js:842 -msgid "set default instrument" +#: js/blocks/PitchBlocks.js:645 +msgid "The Set pitch number offset block is used to set the offset for mapping pitch numbers to pitch and octave." msgstr "" -#: js/ToneBlocks.js:895 -#: js/ToneBlocks.js:943 -#.TRANS: set the characteristics of a custom instrument -msgid "set instrument" +#: js/blocks/PitchBlocks.js:679 +#.TRANS: convert piano key number (1-88) to pitch +msgid "number to pitch" msgstr "" -#: js/ToneBlocks.js:898 -#: js/ToneBlocks.js:926 -#: js/ToneBlocks.js:932 -msgid "The Set instrument block selects a voice for the synthesizer," +#: js/blocks/PitchBlocks.js:682 +msgid "The Number to pitch block will convert a pitch number to a pich name." msgstr "" -#: js/ToneBlocks.js:900 -#: js/ToneBlocks.js:934 -msgid "eg guitar piano violin or cello." +#: js/blocks/PitchBlocks.js:715 +#.TRANS: convert piano key number (1-88) to octave +msgid "number to octave" msgstr "" -#: js/ToneBlocks.js:1015 -msgid "Import a sound file to use as an instrument and set its pitch center." +#: js/blocks/PitchBlocks.js:717 +msgid "The Number to octave block will convert a pitch number to an octave." msgstr "" -#: js/ToneBlocks.js:1110 -msgid "Upload a sound file to connect with the sample block." +#: js/blocks/PitchBlocks.js:726 +msgid "y to pitch" msgstr "" -#: js/MeterBlocks.js:34 -#.TRANS: musical meter (time signature), e.g., 4:4 -msgid "current meter" +#: js/blocks/PitchBlocks.js:729 +msgid "Y to pitch block will convert a staff y position to corresponding pitch notation." msgstr "" -#: js/MeterBlocks.js:85 -#.TRANS: number of beats per minute -msgid "beat factor" +#: js/blocks/PitchBlocks.js:841 +msgid "accidental selector" msgstr "" -#: js/MeterBlocks.js:161 -msgid "The Beats per minute block returns the current beats per minute." +#: js/blocks/PitchBlocks.js:844 +msgid "The Accidental selector block is used to choose between double-sharp, sharp, natural, flat, and double-flat." msgstr "" -#: js/MeterBlocks.js:169 -#: js/status.js:152 -#.TRANS: number of beats played per minute -msgid "beats per minute2" -msgstr "beats per minute" - -#: js/MeterBlocks.js:169 -#: js/MeterBlocks.js:1056 -#: js/MeterBlocks.js:1133 -#: js/MeterBlocks.js:1211 -#.TRANS: sets tempo by defining a beat and beats per minute -msgid "beats per minute" +#: js/blocks/PitchBlocks.js:858 +msgid "Pitch can be specified in terms of ni dha pa ma ga re sa." msgstr "" -#: js/MeterBlocks.js:233 -#.TRANS: count of current musical measure in meter -msgid "measure count" +#: js/blocks/PitchBlocks.js:872 +msgid "Pitch can be specified in terms of C D E F G A B." msgstr "" -#: js/MeterBlocks.js:241 -msgid "The Measure count block returns the current measure." +#: js/blocks/PitchBlocks.js:884 +msgid "solfege" msgstr "" -#: js/MeterBlocks.js:290 -#.TRANS: count of current beat in the meter -msgid "beat count" +#: js/blocks/PitchBlocks.js:887 +msgid "Pitch can be specified in terms of do re mi fa sol la ti." msgstr "" -#: js/MeterBlocks.js:300 -#: js/MeterBlocks.js:311 -#: js/MeterBlocks.js:565 -#: js/MeterBlocks.js:576 -msgid "The Beat count block is the number of the current beat," +#: js/blocks/PitchBlocks.js:922 +msgid "The Invert block rotates any contained notes around a target note." msgstr "" -#: js/MeterBlocks.js:313 -#: js/MeterBlocks.js:578 -msgid "eg 1, 2, 3, or 4." +#: js/blocks/PitchBlocks.js:929 +#.TRANS: pitch inversion rotates a pitch around another pitch +msgid "invert" msgstr "" -#: js/MeterBlocks.js:368 -#.TRANS: count the number of notes -msgid "sum note values" +#: js/blocks/PitchBlocks.js:968 +#.TRANS: pitch inversion rotates a pitch around another pitch (odd number) +msgid "invert (odd)" msgstr "" -#: js/MeterBlocks.js:376 -#: js/MeterBlocks.js:440 -msgid "The Note counter block can be used to count the number of contained notes." +#: js/blocks/PitchBlocks.js:1001 +#.TRANS: pitch inversion rotates a pitch around another pitch (even number) +msgid "invert (even)" msgstr "" -#: js/MeterBlocks.js:432 -#.TRANS: count the number of notes -msgid "note counter" +#: js/blocks/PitchBlocks.js:1022 +#.TRANS: register is the octave of the current pitch +msgid "register" msgstr "" -#: js/MeterBlocks.js:496 -#.TRANS: number of whole notes that have been played -msgid "whole notes played" +#: js/blocks/PitchBlocks.js:1026 +msgid "The Register block provides an easy way to modify the register (octave) of the notes that follow it." msgstr "" -#: js/MeterBlocks.js:505 -msgid "The Whole notes played block returns the total number of whole notes played." +#: js/blocks/PitchBlocks.js:1047 +#.TRANS: cents are units used to specify the ratio between pitches. There are 100 cents between successive notes. +msgid "50 cents" msgstr "" -#: js/MeterBlocks.js:555 -#: js/DictActions.js:83 -#.TRANS: number of notes that have been played -msgid "notes played" +#: js/blocks/PitchBlocks.js:1102 +msgid "The Semi-tone transposition block will shift the pitches contained inside Note blocks up (or down) by half steps." msgstr "" -#: js/MeterBlocks.js:653 -msgid "The No clock block decouples the notes from the master clock." +#: js/blocks/PitchBlocks.js:1104 +msgid "In the example shown above, sol is shifted up to sol#." msgstr "" -#: js/MeterBlocks.js:661 -#.TRANS: don't lock notes to master clock -msgid "no clock" +#: js/blocks/PitchBlocks.js:1110 +#.TRANS: adjust the amount of shift (up or down) of a pitch +msgid "semi-tone transpose" msgstr "" -#: js/MeterBlocks.js:700 -msgid "on weak beat do" +#: js/blocks/PitchBlocks.js:1143 +msgid "The Transpose by Ratio block will shift the pitches contained inside Note blocks up (or down) by a ratio" msgstr "" -#: js/MeterBlocks.js:705 -msgid "The On-weak-beat block lets you specify actions to take on weak (off) beats." +#: js/blocks/PitchBlocks.js:1149 +#.TRANS: adjust the amount of shift (up or down) of a pitch +msgid "transpose by ratio" msgstr "" -#: js/MeterBlocks.js:750 -msgid "on strong beat" +#: js/blocks/PitchBlocks.js:1232 +#.TRANS: down sixth means the note is five scale degrees below current note +msgid "down sixth" msgstr "" -#: js/MeterBlocks.js:758 -msgid "The On-strong-beat block lets you specify actions to take on specified beats." +#: js/blocks/PitchBlocks.js:1251 +#.TRANS: down third means the note is two scale degrees below current note +msgid "down third" msgstr "" -#: js/MeterBlocks.js:769 -msgid "beat" +#: js/blocks/PitchBlocks.js:1270 +#.TRANS: seventh means the note is the six scale degrees above current note +msgid "seventh" msgstr "" -#: js/MeterBlocks.js:813 -msgid "on every beat do" +#: js/blocks/PitchBlocks.js:1289 +#.TRANS: sixth means the note is the five scale degrees above current note +msgid "sixth" msgstr "" -#: js/MeterBlocks.js:821 -msgid "The On-every-beat block lets you specify actions to take on every beat." +#: js/blocks/PitchBlocks.js:1308 +#.TRANS: fifth means the note is the four scale degrees above current note +msgid "fifth" msgstr "" -#: js/MeterBlocks.js:874 -msgid "on every note do" +#: js/blocks/PitchBlocks.js:1328 +#.TRANS: fourth means the note is three scale degrees above current note +msgid "fourth" msgstr "" -#: js/MeterBlocks.js:882 -msgid "The On-every-note block lets you specify actions to take on every note." +#: js/blocks/PitchBlocks.js:1347 +#.TRANS: third means the note is two scale degrees above current note +msgid "third" msgstr "" -#: js/MeterBlocks.js:928 -#: js/MeterBlocks.js:999 -#.TRANS: sets tempo by defining a beat and beats per minute -msgid "master beats per minute" +#: js/blocks/PitchBlocks.js:1366 +#.TRANS: second means the note is one scale degree above current note +msgid "second" msgstr "" -#: js/MeterBlocks.js:952 -#: js/MeterBlocks.js:1078 -#: js/MeterBlocks.js:1135 -msgid "bpm" +#: js/blocks/PitchBlocks.js:1407 +msgid "The Scalar transposition block will shift the pitches contained inside Note blocks up (or down) the scale." msgstr "" -#: js/MeterBlocks.js:952 -#: js/MeterBlocks.js:1078 -#: js/MeterBlocks.js:1135 -msgid "beat value" +#: js/blocks/PitchBlocks.js:1409 +msgid "In the example shown above, sol is shifted up to la." msgstr "" -#: js/MeterBlocks.js:1024 -#: js/MeterBlocks.js:1167 -#: js/MeterBlocks.js:1241 -msgid "Beats per minute must be > 30." +#: js/blocks/PitchBlocks.js:1416 +#.TRANS: adjust the amount of shift (up or down) of a pitch by musical scale (scalar) steps +msgid "scalar transpose" msgstr "" -#: js/MeterBlocks.js:1027 -#: js/MeterBlocks.js:1170 -#: js/MeterBlocks.js:1244 -msgid "Maximum beats per minute is 1000." +#: js/blocks/PitchBlocks.js:1451 +msgid "The Accidental block is used to create sharps and flats" msgstr "" -#: js/MeterBlocks.js:1068 -msgid "The Beats per minute block sets the number of 1/4 notes per minute." +#: js/blocks/PitchBlocks.js:1458 +#.TRANS: An accidental is a modification to a pitch, e.g., sharp or flat. +msgid "accidental override" msgstr "" -#: js/MeterBlocks.js:1279 -#.TRANS: anacrusis -msgid "pickup" +#: js/blocks/PitchBlocks.js:1581 +msgid "The Hertz block (in combination with a Number block) will play a sound at the specified frequency." msgstr "" -#: js/MeterBlocks.js:1367 -msgid "number of beats" +#: js/blocks/PitchBlocks.js:1671 +msgid "The Pitch Number block will play a pitch associated by its number, e.g. 0 for C and 7 for G." msgstr "" -#: js/DictBlocks.js:77 -msgid "show dictionary" +#: js/blocks/PitchBlocks.js:1703 +#: js/blocks/PitchBlocks.js:1745 +#.TRANS: a numeric mapping of the notes in an octave based on the musical mode +#.TRANS: a numeric mapping of the notes in an octave based on the musical mode +msgid "nth modal pitch" msgstr "" -#: js/DictBlocks.js:129 -msgid "The Dictionary block returns a dictionary." +#: js/blocks/PitchBlocks.js:1706 +msgid "n^th Modal Pitch takes the pattern of pitches in semitones for a mode and makes each point a degree of the mode," msgstr "" -#: js/DictBlocks.js:197 -#: js/DictBlocks.js:339 -msgid "The Get-dict block returns a value in the dictionary for a specified key." +#: js/blocks/PitchBlocks.js:1708 +msgid "starting from 1 and regardless of tonal framework (i.e. not always 8 notes in the octave)" msgstr "" -#: js/DictBlocks.js:212 -#: js/DictBlocks.js:354 -#.TRANS: retrieve a value from the dictionary with a given key -msgid "get value" +#: js/blocks/PitchBlocks.js:1749 +msgid "N^th Modal Pitch takes a number as an input as the n^th degree for the given mode. 0 is the first position, 1 is the second, -1 is the note before the first etc." msgstr "" -#: js/DictBlocks.js:215 -#: js/DictBlocks.js:216 -#: js/DictBlocks.js:289 -#: js/DictBlocks.js:290 -#: js/DictBlocks.js:357 -#: js/DictBlocks.js:430 -#: js/DictBlocks.js:431 -msgid "key2" +#: js/blocks/PitchBlocks.js:1751 +msgid "The pitches change according to the mode specified without any need for respellings." msgstr "" -#: js/DictBlocks.js:271 -#: js/DictBlocks.js:411 -msgid "The Set-dict block sets a value in the dictionary for a specified key." +#: js/blocks/PitchBlocks.js:1790 +msgid "Scale Degree is a common convention in music. Scale Degree offers seven possible positions in the scale (1-7) and can be modified via accidentals." msgstr "" -#: js/DictBlocks.js:286 -#: js/DictBlocks.js:427 -#.TRANS: set a value in the dictionary for a given key -msgid "set value" +#: js/blocks/PitchBlocks.js:1792 +msgid "Scale Degree 1 is always the first pitch in a given scale, regardless of octave." msgstr "" -#: js/ExtrasBlocks.js:33 -msgid "fraction" +#: js/blocks/PitchBlocks.js:1814 +#.TRANS: step some number of notes in current musical scale +msgid "scalar step" msgstr "" -#: js/ExtrasBlocks.js:36 -msgid "Convert a float to a fraction" +#: js/blocks/PitchBlocks.js:1819 +msgid "The Scalar Step block (in combination with a Number block) will play the next pitch in a scale," msgstr "" -#: js/ExtrasBlocks.js:93 -msgid "save as ABC" +#: js/blocks/PitchBlocks.js:1821 +msgid "eg if the last note played was sol, Scalar Step 1 will play la." msgstr "" -#: js/ExtrasBlocks.js:96 -#: js/ExtrasBlocks.js:132 -#: js/ExtrasBlocks.js:168 -msgid "title" +#: js/blocks/PitchBlocks.js:1857 +msgid "The Pitch block specifies the pitch name and octave of a note that together determine the frequency of the note." msgstr "" -#: js/ExtrasBlocks.js:129 -msgid "save as Lilypond" +#: js/blocks/ProgramBlocks.js:33 +msgid "The Load-heap-from-app block loads the heap from a web page." msgstr "" -#: js/ExtrasBlocks.js:165 -msgid "save as SVG" +#: js/blocks/ProgramBlocks.js:44 +#.TRANS: load the heap contents from a URL +msgid "load heap from App" msgstr "" -#: js/ExtrasBlocks.js:216 -msgid "no background" +#: js/blocks/ProgramBlocks.js:95 +msgid "Error parsing JSON data:" msgstr "" -#: js/ExtrasBlocks.js:219 -msgid "The No background block eliminates the background from the saved SVG output." +#: js/blocks/ProgramBlocks.js:100 +msgid "404: Page not found" msgstr "" -#: js/ExtrasBlocks.js:247 -msgid "show blocks" +#: js/blocks/ProgramBlocks.js:133 +msgid "The Save-heap-to-app block saves the heap to a web page." msgstr "" -#: js/ExtrasBlocks.js:249 -msgid "The Show blocks block shows the blocks." +#: js/blocks/ProgramBlocks.js:144 +#.TRANS: save the heap contents to a URL +msgid "save heap to App" msgstr "" -#: js/ExtrasBlocks.js:274 -msgid "hide blocks" +#: js/blocks/ProgramBlocks.js:189 +msgid "Cannot find a valid heap for" msgstr "" -#: js/ExtrasBlocks.js:276 -msgid "The Hide blocks block hides the blocks." +#: js/blocks/ProgramBlocks.js:206 +msgid "The Load-heap block loads the heap from a file." msgstr "" -#: js/ExtrasBlocks.js:305 -#: js/ExtrasBlocks.js:335 -msgid "The Space block is used to add space between blocks." +#: js/blocks/ProgramBlocks.js:217 +#.TRANS: load the heap from a file +msgid "load heap" msgstr "" -#: js/ExtrasBlocks.js:373 -msgid "wait" +#: js/blocks/ProgramBlocks.js:270 +msgid "The file you selected does not contain a valid heap." msgstr "" -#: js/ExtrasBlocks.js:376 -msgid "The Wait block pauses the program for a specified number of seconds." +#: js/blocks/ProgramBlocks.js:275 +msgid "The loadHeap block needs a loadFile block." msgstr "" -#: js/ExtrasBlocks.js:430 -#: plugins/facebook.rtp:30 -msgid "comment" +#: js/blocks/ProgramBlocks.js:291 +msgid "The Set-heap block loads the heap." msgstr "" -#: js/ExtrasBlocks.js:466 -msgid "print" +#: js/blocks/ProgramBlocks.js:340 +msgid "The block you selected does not contain a valid heap." msgstr "" -#: js/ExtrasBlocks.js:473 -msgid "The Print block displays text at the top of the screen." +#: js/blocks/ProgramBlocks.js:343 +msgid "The Set heap block needs a heap." msgstr "" -#: js/ExtrasBlocks.js:579 -msgid "display grid" +#: js/blocks/ProgramBlocks.js:360 +msgid "The Load-dictionary block loads a dictionary from a file." msgstr "" -#: js/ExtrasBlocks.js:584 -msgid "The Display Grid Block changes the grid type" +#: js/blocks/ProgramBlocks.js:372 +#.TRANS: load a dictionary from a file +msgid "load dictionary" msgstr "" -#: js/ExtrasBlocks.js:686 -#: js/ExtrasBlocks.js:705 -#: js/ExtrasBlocks.js:728 -#: js/ExtrasBlocks.js:751 -#: js/ExtrasBlocks.js:769 -#: js/ExtrasBlocks.js:788 -#: js/ExtrasBlocks.js:807 -#: js/ExtrasBlocks.js:826 -msgid "unknown" +#: js/blocks/ProgramBlocks.js:390 +#: js/blocks/ProgramBlocks.js:658 +#: js/blocks/ToneBlocks.js:1025 +msgid "file" msgstr "" -#: js/SensorsBlocks.js:36 -msgid "The Input block prompts for keyboard input." +#: js/blocks/ProgramBlocks.js:444 +msgid "The file you selected does not contain a valid dictionary." msgstr "" -#: js/SensorsBlocks.js:46 -msgid "input" +#: js/blocks/ProgramBlocks.js:449 +msgid "The load dictionary block needs a load file block." msgstr "" -#: js/SensorsBlocks.js:64 -msgid "Input a value" +#: js/blocks/ProgramBlocks.js:466 +msgid "The Set-dictionary block loads a dictionary." msgstr "" -#: js/SensorsBlocks.js:126 -msgid "input value" +#: js/blocks/ProgramBlocks.js:477 +#.TRANS: load a dictionary from a JSON +msgid "set dictionary" msgstr "" -#: js/SensorsBlocks.js:131 -msgid "The Input-value block stores the input." +#: js/blocks/ProgramBlocks.js:546 +msgid "The block you selected does not contain a valid dictionary." msgstr "" -#: js/SensorsBlocks.js:238 -msgid "loudness" +#: js/blocks/ProgramBlocks.js:550 +msgid "The set dictionary block needs a dictionary." msgstr "" -#: js/SensorsBlocks.js:245 -msgid "The Loudness block returns the volume detected by the microphone." +#: js/blocks/ProgramBlocks.js:567 +msgid "The Save-heap block saves the heap to a file." msgstr "" -#: js/SensorsBlocks.js:300 -msgid "click" +#: js/blocks/ProgramBlocks.js:578 +#.TRANS: save the heap to a file +msgid "save heap" msgstr "" -#: js/SensorsBlocks.js:306 -msgid "The Click block triggers an event if a mouse has been clicked." +#: js/blocks/ProgramBlocks.js:629 +msgid "The Save-dictionary block saves a dictionary to a file." msgstr "" -#: js/SensorsBlocks.js:313 -msgid "The Click block triggers an event if a turtle has been clicked." +#: js/blocks/ProgramBlocks.js:640 +#.TRANS: save a dictionary to a file +msgid "save dictionary" msgstr "" -#: js/SensorsBlocks.js:342 -msgid "cursor over" +#: js/blocks/ProgramBlocks.js:720 +msgid "The Open palette block opens a palette." msgstr "" -#: js/SensorsBlocks.js:387 -msgid "cursor out" +#: js/blocks/ProgramBlocks.js:727 +msgid "open palette" msgstr "" -#: js/SensorsBlocks.js:433 -msgid "cursor button down" +#: js/blocks/ProgramBlocks.js:785 +msgid "The Delete block block removes a block." msgstr "" -#: js/SensorsBlocks.js:477 -msgid "cursor button up" +#: js/blocks/ProgramBlocks.js:797 +#.TRANS: Move this block to the trash. +msgid "delete block" msgstr "" -#: js/SensorsBlocks.js:638 -msgid "The Get red block returns the red component of the pixel under the mouse." +#: js/blocks/ProgramBlocks.js:861 +msgid "The Move block block moves a block." msgstr "" -#: js/SensorsBlocks.js:644 -msgid "The Get red block returns the red component of the pixel under the turtle." +#: js/blocks/ProgramBlocks.js:869 +#.TRANS: Move the position of a block on the screen. +msgid "move block" msgstr "" -#: js/SensorsBlocks.js:685 -#: plugins/rodi.rtp:216 -msgid "pixel color" +#: js/blocks/ProgramBlocks.js:881 +#: js/blocks/ProgramBlocks.js:1048 +msgid "block number" msgstr "" -#: js/SensorsBlocks.js:690 -msgid "The Get pixel block returns the color of the pixel under the mouse." +#: js/blocks/ProgramBlocks.js:935 +#.TRANS: Run program beginning at this block. +msgid "run block" msgstr "" -#: js/SensorsBlocks.js:696 -msgid "The Get pixel block returns the color of the pixel under the turtle." +#: js/blocks/ProgramBlocks.js:1025 +msgid "The Dock block block connections two blocks." msgstr "" -#: js/SensorsBlocks.js:758 -msgid "time" +#: js/blocks/ProgramBlocks.js:1036 +#.TRANS: We can connect a block to another block. +msgid "connect blocks" msgstr "" -#: js/SensorsBlocks.js:804 -msgid "cursor y" +#: js/blocks/ProgramBlocks.js:1048 +msgid "target block" msgstr "" -#: js/SensorsBlocks.js:809 -msgid "The Cursor Y block returns the vertical position of the mouse." +#: js/blocks/ProgramBlocks.js:1048 +msgid "connection number" msgstr "" -#: js/SensorsBlocks.js:845 -msgid "cursor x" +#: js/blocks/ProgramBlocks.js:1140 +msgid "The Make block block creates a new block." msgstr "" -#: js/SensorsBlocks.js:850 -msgid "The Cursor X block returns the horizontal position of the mouse." +#: js/blocks/ProgramBlocks.js:1152 +#.TRANS: Create a new block +msgid "make block" msgstr "" -#: js/SensorsBlocks.js:886 -msgid "mouse button" +#: js/blocks/ProgramBlocks.js:1285 +msgid "Cannot find block" msgstr "" -#: js/SensorsBlocks.js:888 -msgid "The Mouse-button block returns True if the mouse button is pressed." +#: js/blocks/ProgramBlocks.js:1304 +#: js/blocks/ProgramBlocks.js:1313 +msgid "Warning: block argument type mismatch" msgstr "" -#: js/SensorsBlocks.js:934 -msgid "to ASCII" +#: js/blocks/ProgramBlocks.js:1347 +msgid "The Open project block is used to open a project from a web page." msgstr "" -#: js/SensorsBlocks.js:938 -msgid "The To ASCII block converts numbers to letters." +#: js/blocks/ProgramBlocks.js:1357 +msgid "open project" msgstr "" -#: js/SensorsBlocks.js:1005 -msgid "The Keyboard block returns computer keyboard input." +#: js/blocks/ProgramBlocks.js:1410 +msgid "Please enter a valid URL." msgstr "" -#: js/IntervalsActions.js:216 -msgid "Adding missing pitch number 0." +#: js/blocks/ToneBlocks.js:34 +msgid "oscillator" msgstr "" -#: js/IntervalsActions.js:224 -msgid "Ignoring pitch numbers less than zero or greater than eleven." +#: js/blocks/ToneBlocks.js:42 +#: js/blocks/WidgetBlocks.js:179 +#: js/widgets/timbre.js:1558 +#: js/widgets/timbre.js:1808 +#.TRANS: there are different types (sine, triangle, square...) of oscillators. +#.TRANS: type of filter, e.g., lowpass, highpass, etc. +msgid "type" msgstr "" -#: js/IntervalsActions.js:230 -msgid "Ignoring duplicate pitch numbers." +#: js/blocks/ToneBlocks.js:44 +#: js/widgets/timbre.js:1562 +#.TRANS: Partials refers to the number of sine waves combined into the sound. +msgid "partials" msgstr "" -#: js/PitchActions.js:88 -msgid "The Scalar Step Block must be used inside of a Note Block." +#: js/blocks/ToneBlocks.js:76 +msgid "You are adding multiple oscillator blocks." msgstr "" -#: js/PitchActions.js:107 -msgid "The Scalar Step Block must be preceded by a Pitch Block." +#: js/blocks/ToneBlocks.js:144 +#: js/widgets/timbre.js:1225 +#.TRANS: a duo synthesizer combines a synth with a sequencer +msgid "duo synth" msgstr "" -#: js/DrumActions.js:231 -msgid "Noise Block: Did you mean to use a Note block?" +#: js/blocks/ToneBlocks.js:149 +msgid "The Duo synth block is a duo-frequency modulator used to define a timbre." msgstr "" -#: js/MeterActions.js:101 -#: js/MeterActions.js:139 -msgid "beats per minute must be greater than" +#: js/blocks/ToneBlocks.js:157 +#: js/widgets/timbre.js:1476 +msgid "vibrato rate" msgstr "" -#: js/MeterActions.js:111 -#: js/MeterActions.js:149 -msgid "maximum" +#: js/blocks/ToneBlocks.js:157 +msgid "vibrato intensity" msgstr "" -#: js/MeterActions.js:117 -#: js/MeterActions.js:155 -msgid "beats per minute is" +#: js/blocks/ToneBlocks.js:185 +#: js/widgets/timbre.js:1221 +#.TRANS: AM (amplitude modulation) synthesizer +msgid "AM synth" msgstr "" -#: js/ToneActions.js:134 -msgid "Vibrato intensity must be between 1 and 100." +#: js/blocks/ToneBlocks.js:189 +msgid "The AM synth block is an amplitude modulator used to define a timbre." msgstr "" -#: js/ToneActions.js:139 -msgid "Vibrato rate must be greater than 0." +#: js/blocks/ToneBlocks.js:224 +#: js/widgets/timbre.js:1223 +#.TRANS: FM (frequency modulation) synthesizer +msgid "FM synth" msgstr "" -#: js/ToneActions.js:192 -#: js/ToneActions.js:265 -#.TRANS: Depth is the intesity of the tremolo or chorus effect. -msgid "Depth is out of range." +#: js/blocks/ToneBlocks.js:228 +msgid "The FM synth block is a frequency modulator used to define a timbre." msgstr "" -#: js/ToneActions.js:301 -msgid "Distortion must be from 0 to 100." +#: js/blocks/ToneBlocks.js:262 +msgid "partial" msgstr "" -#: js/ToneActions.js:332 -#.TRANS: partials components in a harmonic series -msgid "Partial must be greater than or equal to 0." +#: js/blocks/ToneBlocks.js:265 +msgid "The Partial block is used to specify a weight for a specific partial harmonic." msgstr "" -#: js/ToneActions.js:378 -#: js/ToneActions.js:417 -#: js/ToneActions.js:456 -#: js/timbre.js:782 -msgid "Unable to use synth due to existing oscillator" +#: js/blocks/ToneBlocks.js:284 +#.TRANS: partials are weighted components in a harmonic series +msgid "Partial weight must be between 0 and 1." msgstr "" -#: js/ToneActions.js:388 -#: js/ToneActions.js:427 -msgid "The input cannot be negative." +#: js/blocks/ToneBlocks.js:297 +#.TRANS: partials are weighted components in a harmonic series +msgid "Partial block should be used inside of a Weighted-partials block." msgstr "" -#: js/DictActions.js:75 -#: js/DictActions.js:153 -#: js/DictActions.js:188 -msgid "font" +#: js/blocks/ToneBlocks.js:325 +#.TRANS: partials are weighted components in a harmonic series +msgid "weighted partials" msgstr "" -#: js/musicutils.js:363 -#: js/musicutils.js:471 -#: js/pitchdrummatrix.js:151 -#: js/musickeyboard.js:2563 -msgid "rest" +#: js/blocks/ToneBlocks.js:383 +msgid "The Harmonic block will add harmonics to the contained notes." msgstr "" -#: js/musicutils.js:565 -#.TRANS: ordinal number. Please keep exactly one space between each number. -msgid "1st 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th" +#: js/blocks/ToneBlocks.js:390 +#.TRANS: A harmonic is an overtone. +msgid "harmonic" msgstr "" -#: js/musicutils.js:629 -#: js/musicutils.js:812 -#: js/musicutils.js:911 -#.TRANS: augmented is a music term related to intervals -msgid "augmented" +#: js/blocks/ToneBlocks.js:431 +msgid "The Distortion block adds distortion to the pitch." msgstr "" -#: js/musicutils.js:631 -#: js/musicutils.js:813 -#: js/musicutils.js:910 -#.TRANS: diminished is a music term related to intervals and mode -msgid "diminished" +#: js/blocks/ToneBlocks.js:438 +#: js/widgets/timbre.js:2100 +#.TRANS: distortion is an alteration in the sound +msgid "distortion" msgstr "" -#: js/musicutils.js:639 -#.TRANS: twelve semi-tone scale for music -msgid "chromatic" +#: js/blocks/ToneBlocks.js:487 +msgid "The Tremolo block adds a wavering effect." msgstr "" -#: js/musicutils.js:640 -msgid "algerian" +#: js/blocks/ToneBlocks.js:495 +#: js/widgets/timbre.js:2092 +#.TRANS: a wavering effect in a musical tone +msgid "tremolo" msgstr "" -#: js/musicutils.js:641 -msgid "spanish" +#: js/blocks/ToneBlocks.js:500 +#: js/blocks/ToneBlocks.js:569 +#: js/blocks/ToneBlocks.js:630 +#: js/blocks/ToneBlocks.js:689 +#: js/widgets/timbre.js:2134 +#: js/widgets/timbre.js:2222 +#: js/widgets/timbre.js:2317 +#: js/widgets/timbre.js:2419 +#.TRANS: rate at which tremolo wavers +msgid "rate" msgstr "" -#: js/musicutils.js:643 -#.TRANS: modal scale in music -msgid "octatonic" +#: js/blocks/ToneBlocks.js:502 +#: js/blocks/ToneBlocks.js:630 +#: js/widgets/timbre.js:2137 +#: js/widgets/timbre.js:2328 +#.TRANS: amplitude of tremolo waver +msgid "depth" msgstr "" -#: js/musicutils.js:645 -#.TRANS: harmonic major scale in music -msgid "harmonic major" +#: js/blocks/ToneBlocks.js:559 +msgid "The Phaser block adds a sweeping sound." msgstr "" -#: js/musicutils.js:647 -#.TRANS: natural minor scales in music -msgid "natural minor" +#: js/blocks/ToneBlocks.js:566 +#: js/widgets/timbre.js:2098 +#.TRANS: alter the phase of the sound +msgid "phaser" msgstr "" -#: js/musicutils.js:649 -#.TRANS: harmonic minor scale in music -msgid "harmonic minor" +#: js/blocks/ToneBlocks.js:569 +#: js/turtleactions/IntervalsActions.js:114 +#: js/widgets/timbre.js:2422 +msgid "octaves" msgstr "" -#: js/musicutils.js:651 -#.TRANS: melodic minor scale in music -msgid "melodic minor" +#: js/blocks/ToneBlocks.js:569 +#: js/widgets/timbre.js:2425 +msgid "base frequency" msgstr "" -#: js/musicutils.js:655 -#.TRANS: modal scale for music -msgid "dorian" +#: js/blocks/ToneBlocks.js:619 +msgid "The Chorus block adds a chorus effect." msgstr "" -#: js/musicutils.js:657 -#.TRANS: modal scale for music -msgid "phrygian" +#: js/blocks/ToneBlocks.js:627 +#: js/widgets/timbre.js:2096 +#.TRANS: musical effect to simulate a choral sound +msgid "chorus" msgstr "" -#: js/musicutils.js:659 -#.TRANS: modal scale for music -msgid "lydian" +#: js/blocks/ToneBlocks.js:630 +msgid "delay" msgstr "" -#: js/musicutils.js:661 -#.TRANS: modal scale for music -msgid "mixolydian" +#: js/blocks/ToneBlocks.js:678 +msgid "The Vibrato block adds a rapid, slight variation in pitch." msgstr "" -#: js/musicutils.js:665 -#.TRANS: modal scale for music -msgid "locrian" +#: js/blocks/ToneBlocks.js:686 +#: js/widgets/timbre.js:2094 +#.TRANS: a rapid, slight variation in pitch +msgid "vibrato" msgstr "" -#: js/musicutils.js:667 -#.TRANS: minor jazz scale for music -msgid "jazz minor" +#: js/blocks/ToneBlocks.js:689 +#: js/widgets/timbre.js:2221 +msgid "intensity" msgstr "" -#: js/musicutils.js:669 -#.TRANS: bebop scale for music -msgid "bebop" +#: js/blocks/ToneBlocks.js:733 +#.TRANS: select synthesizer +msgid "set synth" msgstr "" -#: js/musicutils.js:670 -msgid "arabic" +#: js/blocks/ToneBlocks.js:804 +msgid "synth name" msgstr "" -#: js/musicutils.js:671 -msgid "byzantine" +#: js/blocks/ToneBlocks.js:842 +msgid "set default instrument" msgstr "" -#: js/musicutils.js:673 -#.TRANS: musical scale for music by Verdi -msgid "enigmatic" +#: js/blocks/ToneBlocks.js:895 +#: js/blocks/ToneBlocks.js:943 +#.TRANS: set the characteristics of a custom instrument +msgid "set instrument" msgstr "" -#: js/musicutils.js:674 -msgid "ethiopian" +#: js/blocks/ToneBlocks.js:898 +#: js/blocks/ToneBlocks.js:926 +#: js/blocks/ToneBlocks.js:932 +msgid "The Set instrument block selects a voice for the synthesizer," msgstr "" -#: js/musicutils.js:676 -#.TRANS: Ethiopic scale for music -msgid "geez" +#: js/blocks/ToneBlocks.js:900 +#: js/blocks/ToneBlocks.js:934 +msgid "eg guitar piano violin or cello." msgstr "" -#: js/musicutils.js:677 -msgid "hindu" +#: js/blocks/ToneBlocks.js:1015 +msgid "Import a sound file to use as an instrument and set its pitch center." msgstr "" -#: js/musicutils.js:678 -msgid "hungarian" +#: js/blocks/ToneBlocks.js:1110 +msgid "Upload a sound file to connect with the sample block." msgstr "" -#: js/musicutils.js:680 -#.TRANS: minor Romanian scale for music -msgid "romanian minor" +#: js/blocks/VolumeBlocks.js:35 +msgid "synth volume" msgstr "" -#: js/musicutils.js:681 -msgid "spanish gypsy" +#: js/blocks/VolumeBlocks.js:39 +msgid "The Synth volume block returns the current volume of the current synthesizer." msgstr "" -#: js/musicutils.js:683 -#.TRANS: musical scale for Mid-Eastern music -msgid "maqam" +#: js/blocks/VolumeBlocks.js:105 +msgid "master volume" msgstr "" -#: js/musicutils.js:685 -#.TRANS: minor blues scale for music -msgid "minor blues" +#: js/blocks/VolumeBlocks.js:109 +msgid "The Master volume block returns the master volume." msgstr "" -#: js/musicutils.js:687 -#.TRANS: major blues scale for music -msgid "major blues" +#: js/blocks/VolumeBlocks.js:355 +#: js/blocks/VolumeBlocks.js:524 +msgid "set synth volume" msgstr "" -#: js/musicutils.js:688 -msgid "whole tone" +#: js/blocks/VolumeBlocks.js:362 +#: js/blocks/VolumeBlocks.js:545 +msgid "synth" msgstr "" -#: js/musicutils.js:690 -#.TRANS: pentatonic is a general term that means "five note scale". This scale is typically known as "minor pentatonic" -msgid "minor pentatonic" +#: js/blocks/VolumeBlocks.js:403 +#: js/blocks/VolumeBlocks.js:577 +#: js/blocks/VolumeBlocks.js:740 +#: js/turtleactions/VolumeActions.js:173 +msgid "Setting volume to 0." msgstr "" -#: js/musicutils.js:692 -#.TRANS: pentatonic is a general term that means "five note scale". This scale is typically known as "major pentatonic" -msgid "major pentatonic" +#: js/blocks/VolumeBlocks.js:440 +msgid "Synth not found" msgstr "" -#: js/musicutils.js:693 -msgid "chinese" +#: js/blocks/VolumeBlocks.js:494 +msgid "set drum volume" msgstr "" -#: js/musicutils.js:694 -msgid "egyptian" +#: js/blocks/VolumeBlocks.js:530 +msgid "The Set synth volume block will change the volume of a particular synth," msgstr "" -#: js/musicutils.js:696 -#.TRANS: https://en.wikipedia.org/wiki/Hirajoshi_scale NOTE: There are three different versions of this scale -msgid "hirajoshi" +#: js/blocks/VolumeBlocks.js:532 +msgid "eg guitar violin snare drum etc." msgstr "" -#: js/musicutils.js:697 -msgid "Japan" +#: js/blocks/VolumeBlocks.js:534 +msgid "The default volume is 50." msgstr "" -#: js/musicutils.js:699 -#.TRANS: https://en.wikipedia.org/wiki/In_scale and https://en.wikipedia.org/wiki/Sakura_Sakura -msgid "in" +#: js/blocks/VolumeBlocks.js:536 +msgid "The range is 0 for silence to 100 for full volume." msgstr "" -#: js/musicutils.js:701 -#.TRANS: https://en.wikipedia.org/wiki/Miny%C5%8D_scale -msgid "minyo" +#: js/blocks/VolumeBlocks.js:597 +msgid "set panning" msgstr "" -#: js/musicutils.js:703 -#.TRANS: Italian mathematician -msgid "fibonacci" +#: js/blocks/VolumeBlocks.js:603 +msgid "The Set Panning block sets the panning for all synthesizers." msgstr "" -#: js/musicutils.js:708 -#: js/musicutils.js:1106 -#.TRANS: lowpass filter -msgid "lowpass" +#: js/blocks/VolumeBlocks.js:625 +msgid "Warning: Sound is coming out from only the left or right side." msgstr "" -#: js/musicutils.js:710 -#: js/musicutils.js:1107 -#.TRANS: bandpass filter -msgid "bandpass" +#: js/blocks/VolumeBlocks.js:647 +#: js/blocks/VolumeBlocks.js:695 +msgid "set master volume" msgstr "" -#: js/musicutils.js:712 -#: js/musicutils.js:1108 -#.TRANS: high-shelf filter -msgid "highshelf" +#: js/blocks/VolumeBlocks.js:653 +msgid "The Set master volume block sets the volume for all synthesizers." msgstr "" -#: js/musicutils.js:714 -#: js/musicutils.js:1109 -#.TRANS: low-shelf filter -msgid "lowshelf" +#: js/blocks/VolumeBlocks.js:784 +msgid "The Set relative volume block changes the volume of the contained notes." msgstr "" -#: js/musicutils.js:716 -#: js/musicutils.js:1110 -#.TRANS: notch-shelf filter -msgid "notch" +#: js/blocks/VolumeBlocks.js:791 +msgid "set relative volume" msgstr "" -#: js/musicutils.js:718 -#: js/musicutils.js:1111 -#.TRANS: all-pass filter -msgid "allpass" +#: js/blocks/VolumeBlocks.js:857 +msgid "decrescendo" msgstr "" -#: js/musicutils.js:720 -#: js/musicutils.js:1112 -#.TRANS: peaking filter -msgid "peaking" +#: js/blocks/VolumeBlocks.js:921 +msgid "crescendo" msgstr "" -#: js/musicutils.js:731 -#: js/synthutils.js:58 -#.TRANS: musical instrument -msgid "violin" +#: js/blocks/WidgetBlocks.js:81 +#.TRANS: sound envelope (ADSR) +msgid "envelope" msgstr "" -#: js/musicutils.js:732 -#: js/synthutils.js:60 -#.TRANS: viola musical instrument -msgid "viola" +#: js/blocks/WidgetBlocks.js:89 +#.TRANS: Attack time is the time taken for initial run-up of level from nil to peak, beginning when the key is first pressed. +msgid "attack" msgstr "" -#: js/musicutils.js:733 -#: js/synthutils.js:98 -#.TRANS: xylophone musical instrument -msgid "xylophone" +#: js/blocks/WidgetBlocks.js:91 +#.TRANS: Decay time is the time taken for the subsequent run down from the attack level to the designated sustain level. +msgid "decay" msgstr "" -#: js/musicutils.js:734 -#: js/synthutils.js:120 -#.TRANS: vibraphone musical instrument -msgid "vibraphone" +#: js/blocks/WidgetBlocks.js:93 +#.TRANS: Sustain level is the level during the main sequence of the sound's duration, until the key is released. +msgid "sustain" msgstr "" -#: js/musicutils.js:735 -#: js/synthutils.js:62 -#.TRANS: musical instrument -msgid "cello" +#: js/blocks/WidgetBlocks.js:95 +#.TRANS: Release time is the time taken for the level to decay from the sustain level to zero after the key is released. +msgid "release" msgstr "" -#: js/musicutils.js:737 -#: js/synthutils.js:66 -#.TRANS: viola musical instrument -msgid "double bass" +#: js/blocks/WidgetBlocks.js:113 +msgid "Attack value should be from 0 to 100." msgstr "" -#: js/musicutils.js:738 -#: js/synthutils.js:68 -#: js/rhythmruler.js:2119 -#.TRANS: musical instrument -msgid "guitar" +#: js/blocks/WidgetBlocks.js:116 +msgid "Decay value should be from 0 to 100." msgstr "" -#: js/musicutils.js:739 -#: js/synthutils.js:70 -#.TRANS: musical instrument -msgid "acoustic guitar" +#: js/blocks/WidgetBlocks.js:119 +msgid "Sustain value should be from 0 to 100." msgstr "" -#: js/musicutils.js:740 -#: js/synthutils.js:72 -#.TRANS: musical instrument -msgid "flute" +#: js/blocks/WidgetBlocks.js:122 +msgid "Release value should be from 0-100." msgstr "" -#: js/musicutils.js:741 -#: js/synthutils.js:74 -#.TRANS: musical instrument -msgid "clarinet" +#: js/blocks/WidgetBlocks.js:140 +msgid "You are adding multiple envelope blocks." msgstr "" -#: js/musicutils.js:742 -#: js/synthutils.js:76 -#.TRANS: musical instrument -msgid "saxophone" +#: js/blocks/WidgetBlocks.js:171 +#.TRANS: a filter removes some unwanted components from a signal +msgid "filter" msgstr "" -#: js/musicutils.js:743 -#: js/synthutils.js:78 -#.TRANS: musical instrument -msgid "tuba" +#: js/blocks/WidgetBlocks.js:181 +#: js/widgets/timbre.js:1818 +#.TRANS: rolloff is the steepness of a change in frequency. +msgid "rolloff" msgstr "" -#: js/musicutils.js:744 -#: js/synthutils.js:80 -#.TRANS: musical instrument -msgid "trumpet" +#: js/blocks/WidgetBlocks.js:213 +#.TRANS: rolloff is the steepness of a change in frequency. +msgid "Rolloff value should be either -12, -24, -48, or -96 decibels/octave." msgstr "" -#: js/musicutils.js:745 -#: js/synthutils.js:82 -#.TRANS: musical instrument -msgid "oboe" +#: js/blocks/WidgetBlocks.js:252 +msgid "The Temperament tool is used to define custom tuning." msgstr "" -#: js/musicutils.js:746 -#: js/synthutils.js:84 -#.TRANS: musical instrument -msgid "trombone" +#: js/blocks/WidgetBlocks.js:332 +#: js/blocks/WidgetBlocks.js:1573 +#: js/widgets/sampler.js:547 +msgid "Upload a sample and adjust its pitch center." msgstr "" -#: js/musicutils.js:747 -#: js/synthutils.js:100 -#.TRANS: polytone synthesizer -msgid "electronic synth" +#: js/blocks/WidgetBlocks.js:339 +#.TRANS: the speed at music is should be played. +msgid "sampler" msgstr "" -#: js/musicutils.js:748 -#: js/synthutils.js:102 -#.TRANS: simple monotone synthesizer -msgid "simple 1" +#: js/blocks/WidgetBlocks.js:517 +msgid "The Meter block opens a tool to select strong beats for the meter." msgstr "" -#: js/musicutils.js:749 -msgid "simple 2" +#: js/blocks/WidgetBlocks.js:573 +msgid "The oscilloscope block opens a tool to visualize waveforms." msgstr "" -#: js/musicutils.js:750 -msgid "simple 3" +#: js/blocks/WidgetBlocks.js:578 +msgid "oscilloscope" msgstr "" -#: js/musicutils.js:751 -msgid "simple 4" +#: js/blocks/WidgetBlocks.js:645 +msgid "The Custom mode block opens a tool to explore musical mode (the spacing of the notes in a scale)." msgstr "" -#: js/musicutils.js:753 -#: js/synthutils.js:49 -#.TRANS: brown noise synthesizer -msgid "brown noise" +#: js/blocks/WidgetBlocks.js:651 +#.TRANS: musical mode is the pattern of half-steps in an octave, e.g., Major or Minor modes +msgid "custom mode" msgstr "" -#: js/musicutils.js:754 -#: js/synthutils.js:51 -#.TRANS: pink noise synthesizer -msgid "pink noise" +#: js/blocks/WidgetBlocks.js:700 +msgid "The Tempo block opens a metronome to visualize the beat." msgstr "" -#: js/musicutils.js:756 -#: js/synthutils.js:127 -#: js/rhythmruler.js:1670 -#: js/rhythmruler.js:1928 -#.TRANS: musical instrument -msgid "snare drum" +#: js/blocks/WidgetBlocks.js:762 +msgid "The Arpeggio Widget is used to compose chord sequences." msgstr "" -#: js/musicutils.js:757 -#: js/synthutils.js:129 -#.TRANS: musical instrument -msgid "kick drum" +#: js/blocks/WidgetBlocks.js:837 +msgid "The Pitch drum matrix is used to map pitches to drum sounds." msgstr "" -#: js/musicutils.js:758 -#: js/synthutils.js:131 -#.TRANS: musical instrument -msgid "tom tom" +#: js/blocks/WidgetBlocks.js:842 +#.TRANS: makes a mapping between pitches and drum sounds +msgid "pitch-drum mapper" msgstr "" -#: js/musicutils.js:759 -#: js/synthutils.js:133 -#.TRANS: musical instrument -msgid "floor tom" +#: js/blocks/WidgetBlocks.js:891 +msgid "You must have at least one pitch block and one drum block in the matrix." msgstr "" -#: js/musicutils.js:760 -#: js/synthutils.js:135 -#.TRANS: musical instrument -msgid "bass drum" +#: js/blocks/WidgetBlocks.js:920 +msgid "The Pitch slider tool to is used to generate pitches at selected frequencies." msgstr "" -#: js/musicutils.js:761 -#: js/synthutils.js:137 -#.TRANS: a drum made from an inverted cup -msgid "cup drum" +#: js/blocks/WidgetBlocks.js:925 +#.TRANS: widget to generate pitches using a slider +msgid "pitch slider" msgstr "" -#: js/musicutils.js:762 -#: js/synthutils.js:139 -#.TRANS: musical instrument -msgid "darbuka drum" +#: js/blocks/WidgetBlocks.js:977 +msgid "chromatic keyboard" msgstr "" -#: js/musicutils.js:763 -#: js/synthutils.js:143 -#.TRANS: musical instrument -msgid "hi hat" +#: js/blocks/WidgetBlocks.js:1011 +#: js/blocks/WidgetBlocks.js:1077 +#.TRANS: widget to generate pitches using a slider +msgid "music keyboard" msgstr "" -#: js/musicutils.js:764 -#: js/synthutils.js:145 -#.TRANS: a small metal bell -msgid "ride bell" +#: js/blocks/WidgetBlocks.js:1062 +#: js/blocks/WidgetBlocks.js:1069 +msgid "The Music keyboard block opens a piano keyboard that can be used to create notes." msgstr "" -#: js/musicutils.js:765 -#: js/synthutils.js:147 -#.TRANS: musical instrument -msgid "cow bell" +#: js/blocks/WidgetBlocks.js:1128 +msgid "The Pitch staircase tool to is used to generate pitches from a given ratio." msgstr "" -#: js/musicutils.js:766 -msgid "japanese drum" +#: js/blocks/WidgetBlocks.js:1135 +#.TRANS: generate a progressive sequence of pitches +msgid "pitch staircase" msgstr "" -#: js/musicutils.js:767 -#: js/synthutils.js:153 -#.TRANS: musical instrument -msgid "japanese bell" +#: js/blocks/WidgetBlocks.js:1222 +msgid "The Rhythm Maker block opens a tool to create drum machines." msgstr "" -#: js/musicutils.js:768 -#: js/synthutils.js:149 -#.TRANS: musical instrument -msgid "triangle bell" +#: js/blocks/WidgetBlocks.js:1291 +msgid "G major scale" msgstr "" -#: js/musicutils.js:769 -#: js/synthutils.js:151 -#.TRANS: musical instrument -msgid "finger cymbals" +#: js/blocks/WidgetBlocks.js:1326 +msgid "C major scale" msgstr "" -#: js/musicutils.js:770 -#: js/synthutils.js:155 -#.TRANS: a musically tuned set of bells -msgid "chime" +#: js/blocks/WidgetBlocks.js:1366 +msgid "The Phrase Maker block opens a tool to create musical phrases." msgstr "" -#: js/musicutils.js:771 -#: js/synthutils.js:157 -#.TRANS: a musical instrument -msgid "gong" +#: js/blocks/WidgetBlocks.js:1373 +#.TRANS: assigns pitch to a sequence of beats to generate a melody +msgid "phrase maker" msgstr "" -#: js/musicutils.js:772 -#: js/synthutils.js:159 -#.TRANS: sound effect -msgid "clang" +#: js/blocks/WidgetBlocks.js:1444 +msgid "You must have at least one pitch block and one rhythm block in the matrix." msgstr "" -#: js/musicutils.js:773 -#: js/synthutils.js:161 -#.TRANS: sound effect -msgid "crash" +#: js/blocks/WidgetBlocks.js:1503 +msgid "The Status block opens a tool for inspecting the status of Music Blocks as it is running." msgstr "" -#: js/musicutils.js:774 -#: js/synthutils.js:163 -#.TRANS: sound effect -msgid "bottle" +#: js/blocks/WidgetBlocks.js:1580 +#.TRANS: AI-generated music +msgid "aimusic" msgstr "" -#: js/musicutils.js:775 -#: js/synthutils.js:165 -#.TRANS: sound effect -msgid "clap" +#: js/turtleactions/MeterActions.js:101 +#: js/turtleactions/MeterActions.js:139 +msgid "beats per minute must be greater than" msgstr "" -#: js/musicutils.js:776 -#: js/synthutils.js:167 -#.TRANS: sound effect -msgid "slap" +#: js/turtleactions/MeterActions.js:111 +#: js/turtleactions/MeterActions.js:149 +msgid "maximum" msgstr "" -#: js/musicutils.js:777 -#: js/synthutils.js:169 -#.TRANS: sound effect -msgid "splash" +#: js/turtleactions/MeterActions.js:117 +#: js/turtleactions/MeterActions.js:155 +msgid "beats per minute is" msgstr "" -#: js/musicutils.js:778 -#: js/synthutils.js:171 -#.TRANS: sound effect -msgid "bubbles" +#: js/turtleactions/DictActions.js:75 +#: js/turtleactions/DictActions.js:142 +#: js/turtleactions/DictActions.js:172 +msgid "font" msgstr "" -#: js/musicutils.js:779 -#: js/synthutils.js:173 -#.TRANS: sound effect -msgid "raindrop" +#: js/turtleactions/DictActions.js:255 +msgid "Dictionary with this name does not exist" msgstr "" -#: js/musicutils.js:780 -#: js/synthutils.js:175 -#.TRANS: animal sound effect -msgid "cat" +#: js/turtleactions/DictActions.js:259 +msgid "Key with this name does not exist in " msgstr "" -#: js/musicutils.js:781 -#: js/synthutils.js:177 -#.TRANS: animal sound effect -msgid "cricket" +#: js/turtleactions/DrumActions.js:227 +msgid "Noise Block: Did you mean to use a Note block?" msgstr "" -#: js/musicutils.js:782 -#: js/synthutils.js:179 -#.TRANS: animal sound effect -msgid "dog" +#: js/turtleactions/IntervalsActions.js:113 +msgid "one" msgstr "" -#: js/musicutils.js:784 -#: js/synthutils.js:86 -#.TRANS: musical instrument -msgid "banjo" +#: js/turtleactions/IntervalsActions.js:113 +msgid "two" msgstr "" -#: js/musicutils.js:785 -#: js/synthutils.js:88 -#.TRANS: musical instrument -msgid "koto" +#: js/turtleactions/IntervalsActions.js:113 +msgid "three" msgstr "" -#: js/musicutils.js:786 -#: js/synthutils.js:90 -#.TRANS: musical instrument -msgid "dulcimer" +#: js/turtleactions/IntervalsActions.js:113 +msgid "four" msgstr "" -#: js/musicutils.js:787 -#: js/synthutils.js:92 -#.TRANS: musical instrument -msgid "electric guitar" +#: js/turtleactions/IntervalsActions.js:113 +msgid "five" msgstr "" -#: js/musicutils.js:788 -#: js/synthutils.js:94 -#.TRANS: musical instrument -msgid "bassoon" +#: js/turtleactions/IntervalsActions.js:113 +msgid "six" msgstr "" -#: js/musicutils.js:789 -#: js/synthutils.js:96 -#.TRANS: musical instrument -msgid "celeste" +#: js/turtleactions/IntervalsActions.js:113 +msgid "seven" msgstr "" -#: js/musicutils.js:791 -#: js/musicutils.js:1123 -#: js/musicutils.js:1131 -#: js/temperament.js:650 -#.TRANS: musical temperament -msgid "equal" +#: js/turtleactions/IntervalsActions.js:113 +msgid "eight" msgstr "" -#: js/musicutils.js:793 -#: js/musicutils.js:1125 -#: js/musicutils.js:1133 -#.TRANS: musical temperament -msgid "Pythagorean" +#: js/turtleactions/IntervalsActions.js:113 +msgid "nine" msgstr "" -#: js/musicutils.js:795 -#: js/musicutils.js:1124 -#: js/musicutils.js:1132 -#.TRANS: musical temperament -msgid "just intonation" +#: js/turtleactions/IntervalsActions.js:119 +msgid "a" msgstr "" -#: js/musicutils.js:797 -#: js/musicutils.js:1126 -#: js/musicutils.js:1127 -#: js/musicutils.js:1134 -#: js/musicutils.js:1135 -#.TRANS: musical temperament -msgid "meantone" +#: js/turtleactions/IntervalsActions.js:120 +msgid "below" msgstr "" -#: js/musicutils.js:814 -msgid "major 7th" +#: js/turtleactions/IntervalsActions.js:124 +msgid "above" msgstr "" -#: js/musicutils.js:815 -msgid "minor 7th" +#: js/turtleactions/IntervalsActions.js:131 +msgid "plus" msgstr "" -#: js/musicutils.js:816 -msgid "dominant 7th" +#: js/turtleactions/IntervalsActions.js:139 +msgid " below" msgstr "" -#: js/musicutils.js:817 -msgid "minor-major 7th" +#: js/turtleactions/IntervalsActions.js:257 +msgid "Adding missing pitch number 0." msgstr "" -#: js/musicutils.js:818 -msgid "fully-diminished 7th" +#: js/turtleactions/IntervalsActions.js:265 +msgid "Ignoring pitch numbers less than zero or greater than eleven." msgstr "" -#: js/musicutils.js:819 -msgid "half-diminished 7th" +#: js/turtleactions/IntervalsActions.js:271 +msgid "Ignoring duplicate pitch numbers." msgstr "" -#: js/musicutils.js:4379 -#: js/musicutils.js:4416 -msgid "current" +#: js/turtleactions/ToneActions.js:134 +msgid "Vibrato intensity must be between 1 and 100." msgstr "" -#: js/musicutils.js:4382 -#: js/musicutils.js:4407 -msgid "next" +#: js/turtleactions/ToneActions.js:139 +msgid "Vibrato rate must be greater than 0." msgstr "" -#: js/musicutils.js:4385 -#: js/musicutils.js:4412 -msgid "previous" +#: js/turtleactions/ToneActions.js:192 +#: js/turtleactions/ToneActions.js:265 +#.TRANS: Depth is the intesity of the tremolo or chorus effect. +msgid "Depth is out of range." msgstr "" -#: js/synthutils.js:104 -#.TRANS: simple monotone synthesizer -msgid "simple-2" +#: js/turtleactions/ToneActions.js:301 +msgid "Distortion must be from 0 to 100." msgstr "" -#: js/synthutils.js:106 -#.TRANS: simple monotone synthesizer -msgid "simple-3" +#: js/turtleactions/ToneActions.js:332 +#.TRANS: partials components in a harmonic series +msgid "Partial must be greater than or equal to 0." msgstr "" -#: js/synthutils.js:108 -#.TRANS: simple monotone synthesizer -msgid "simple-4" +#: js/turtleactions/ToneActions.js:378 +#: js/turtleactions/ToneActions.js:417 +#: js/turtleactions/ToneActions.js:456 +#: js/widgets/timbre.js:782 +msgid "Unable to use synth due to existing oscillator" msgstr "" -#: js/synthutils.js:141 -#.TRANS: musical instrument -msgid "taiko" +#: js/turtleactions/ToneActions.js:388 +#: js/turtleactions/ToneActions.js:427 +msgid "The input cannot be negative." msgstr "" -#: js/modewidget.js:86 -#: js/modewidget.js:88 -#: js/modewidget.js:642 -#: js/modewidget.js:644 -#: js/modewidget.js:712 -#: js/modewidget.js:714 -#: js/temperament.js:2078 -#: js/rhythmruler.js:189 -#: js/rhythmruler.js:1410 -#: js/rhythmruler.js:1412 -#: js/rhythmruler.js:1435 -#: js/rhythmruler.js:1437 -#: js/meterwidget.js:89 -#: js/meterwidget.js:91 +#: js/widgets/modewidget.js:86 +#: js/widgets/modewidget.js:88 +#: js/widgets/modewidget.js:642 +#: js/widgets/modewidget.js:644 +#: js/widgets/modewidget.js:712 +#: js/widgets/modewidget.js:714 +#: js/widgets/meterwidget.js:194 +#: js/widgets/meterwidget.js:196 +#: js/widgets/temperament.js:2236 +#: js/widgets/rhythmruler.js:457 +#: js/widgets/rhythmruler.js:1790 +#: js/widgets/rhythmruler.js:1792 +#: js/widgets/rhythmruler.js:1816 +#: js/widgets/rhythmruler.js:1818 msgid "Play all" msgstr "" -#: js/modewidget.js:115 -#: js/pitchstaircase.js:641 -#: js/phrasemaker.js:339 -#: js/pitchdrummatrix.js:94 -#: js/pitchslider.js:125 -#: js/temperament.js:2083 -#: js/musickeyboard.js:530 -#: js/timbre.js:756 -#: js/meterwidget.js:124 -#: js/arpeggio.js:103 +#: js/widgets/modewidget.js:115 +#: js/widgets/meterwidget.js:229 +#: js/widgets/pitchdrummatrix.js:166 +#: js/widgets/pitchslider.js:125 +#: js/widgets/pitchstaircase.js:641 +#: js/widgets/temperament.js:2244 +#: js/widgets/timbre.js:756 +#: js/widgets/arpeggio.js:103 +#: js/widgets/musickeyboard.js:688 +#: js/widgets/phrasemaker.js:550 msgid "Save" msgstr "" -#: js/modewidget.js:121 -#: js/pitchstaircase.js:686 -#: js/phrasemaker.js:356 -#: js/pitchdrummatrix.js:109 -#: js/musickeyboard.js:534 -#: js/rhythmruler.js:269 -#: js/arpeggio.js:118 +#: js/widgets/modewidget.js:121 +#: js/widgets/pitchdrummatrix.js:181 +#: js/widgets/pitchstaircase.js:686 +#: js/widgets/arpeggio.js:118 +#: js/widgets/musickeyboard.js:696 +#: js/widgets/phrasemaker.js:567 +#: js/widgets/rhythmruler.js:601 #.TRANS: clear all subdivisions from the ruler. msgid "Clear" msgstr "" -#: js/modewidget.js:127 +#: js/widgets/modewidget.js:127 msgid "Rotate counter clockwise" msgstr "" -#: js/modewidget.js:133 +#: js/widgets/modewidget.js:133 msgid "Rotate clockwise" msgstr "" -#: js/modewidget.js:139 +#: js/widgets/modewidget.js:139 msgid "Invert" msgstr "" -#: js/modewidget.js:145 -#: js/pitchstaircase.js:678 -#: js/rhythmruler.js:258 -#: js/timbre.js:963 +#: js/widgets/modewidget.js:145 +#: js/widgets/pitchstaircase.js:678 +#: js/widgets/timbre.js:963 +#: js/widgets/rhythmruler.js:578 msgid "Undo" msgstr "" -#: js/modewidget.js:163 +#: js/widgets/modewidget.js:163 #.TRANS: A circle of notes represents the musical mode. msgid "Click in the circle to select notes for the mode." msgstr "" -#: js/modewidget.js:1017 -#: js/pitchstaircase.js:580 -#: js/phrasemaker.js:4855 -#: js/temperament.js:1754 -#: js/rhythmruler.js:1865 -#: js/rhythmruler.js:2081 -#: js/tempo.js:414 +#: js/widgets/modewidget.js:1017 +#: js/widgets/pitchstaircase.js:580 +#: js/widgets/temperament.js:1929 +#: js/widgets/tempo.js:414 +#: js/widgets/phrasemaker.js:5356 +#: js/widgets/rhythmruler.js:2254 +#: js/widgets/rhythmruler.js:2472 msgid "New action block generated!" msgstr "" -#: js/oscilloscope.js:79 -msgid "Zoom In" -msgstr "" - -#: js/oscilloscope.js:88 -msgid "Zoom Out" -msgstr "" - -#: js/pitchstaircase.js:624 -msgid "Play chord" -msgstr "" - -#: js/pitchstaircase.js:632 -msgid "Play scale" +#: js/widgets/meterwidget.js:275 +msgid "Reset" msgstr "" -#: js/pitchstaircase.js:696 -msgid "Click on a note to create a new step." +#: js/widgets/meterwidget.js:301 +msgid "Click in the circle to select strong beats for the meter." msgstr "" -#: js/phrasemaker.js:363 -msgid "Export" +#: js/widgets/oscilloscope.js:79 +msgid "Zoom In" msgstr "" -#: js/phrasemaker.js:370 -msgid "Sort" +#: js/widgets/oscilloscope.js:88 +msgid "Zoom Out" msgstr "" -#: js/phrasemaker.js:373 -#: js/musickeyboard.js:559 -msgid "Add note" +#: js/widgets/pitchdrummatrix.js:356 +#: js/widgets/pitchdrummatrix.js:752 +msgid "Click in the grid to map notes to drums." msgstr "" -#: js/phrasemaker.js:764 -msgid "Click on the table to add notes." +#: js/widgets/pitchslider.js:103 +msgid "Move up" msgstr "" -#: js/phrasemaker.js:2414 -#: js/phrasemaker.js:2543 -msgid "tuplet value" +#: js/widgets/pitchslider.js:114 +msgid "Move down" msgstr "" -#: js/pitchdrummatrix.js:270 -#: js/pitchdrummatrix.js:639 -msgid "Click in the grid to map notes to drums." +#: js/widgets/pitchslider.js:136 +msgid "Click on the slider to create a note block." msgstr "" -#: js/pitchslider.js:103 -msgid "Move up" +#: js/widgets/pitchstaircase.js:624 +msgid "Play chord" msgstr "" -#: js/pitchslider.js:114 -msgid "Move down" +#: js/widgets/pitchstaircase.js:632 +msgid "Play scale" msgstr "" -#: js/pitchslider.js:136 -msgid "Click on the slider to create a note block." +#: js/widgets/pitchstaircase.js:696 +msgid "Click on a note to create a new step." msgstr "" -#: js/temperament.js:215 +#: js/widgets/temperament.js:321 msgid "back to 2:1 octave space" msgstr "" -#: js/temperament.js:323 +#: js/widgets/temperament.js:447 msgid "edit" msgstr "" -#: js/temperament.js:330 -#: js/temperament.js:332 -#: js/temperament.js:1336 -#: js/temperament.js:1338 +#: js/widgets/temperament.js:454 +#: js/widgets/temperament.js:456 +#: js/widgets/temperament.js:1493 +#: js/widgets/temperament.js:1495 msgid "close" msgstr "" -#: js/temperament.js:423 -#: js/temperament.js:736 -#: js/temperament.js:743 -#: js/temperament.js:845 -#: js/temperament.js:935 -#: js/temperament.js:942 -#: js/temperament.js:1015 -#: js/temperament.js:1284 -#: js/temperament.js:1354 -#: js/temperament.js:1430 +#: js/widgets/temperament.js:552 +#: js/widgets/temperament.js:877 +#: js/widgets/temperament.js:884 +#: js/widgets/temperament.js:986 +#: js/widgets/temperament.js:1080 +#: js/widgets/temperament.js:1087 +#: js/widgets/temperament.js:1160 +#: js/widgets/temperament.js:1433 +#: js/widgets/temperament.js:1511 +#: js/widgets/temperament.js:1596 msgid "done" msgstr "" -#: js/temperament.js:477 -#: js/temperament.js:482 -#: js/temperament.js:918 +#: js/widgets/temperament.js:610 +#: js/widgets/temperament.js:615 +#: js/widgets/temperament.js:1063 msgid "ratio" msgstr "" -#: js/temperament.js:483 +#: js/widgets/temperament.js:616 msgid "interval" msgstr "" -#: js/temperament.js:611 +#: js/widgets/temperament.js:744 msgid "non scalar" msgstr "" -#: js/temperament.js:650 +#: js/widgets/temperament.js:787 msgid "ratios" msgstr "" -#: js/temperament.js:650 +#: js/widgets/temperament.js:787 msgid "arbitrary" msgstr "" -#: js/temperament.js:719 +#: js/widgets/temperament.js:860 msgid "number of divisions" msgstr "" -#: js/temperament.js:741 -#: js/temperament.js:858 -#: js/temperament.js:940 -#: js/temperament.js:1033 +#: js/widgets/temperament.js:882 +#: js/widgets/temperament.js:999 +#: js/widgets/temperament.js:1085 +#: js/widgets/temperament.js:1178 msgid "preview" msgstr "" -#: js/temperament.js:788 +#: js/widgets/temperament.js:929 msgid "The Number of divisions is too large." msgstr "" -#: js/temperament.js:921 +#: js/widgets/temperament.js:1066 msgid "recursion" msgstr "" -#: js/temperament.js:1450 +#: js/widgets/temperament.js:1616 msgid "The octave ratio has changed. This changes temperament significantly." msgstr "" -#: js/temperament.js:2087 +#: js/widgets/temperament.js:2248 msgid "Table" msgstr "" -#: js/temperament.js:2185 +#: js/widgets/temperament.js:2356 msgid "Add pitches" msgstr "" -#: js/musickeyboard.js:570 -msgid "Metronome" +#: js/widgets/tempo.js:78 +#: js/widgets/tempo.js:97 +#: js/widgets/tempo.js:99 +#: js/widgets/aiwidget.js:134 +#: js/widgets/aiwidget.js:136 +#: js/widgets/rhythmruler.js:681 +#: js/widgets/rhythmruler.js:683 +#: js/widgets/rhythmruler.js:1864 +#: js/widgets/rhythmruler.js:1866 +#: js/widgets/sampler.js:180 +#: js/widgets/sampler.js:182 +msgid "Pause" msgstr "" -#: js/musickeyboard.js:1296 -#: plugins/rodi.rtp:193 -msgid "duration" +#: js/widgets/tempo.js:113 +msgid "Save tempo" msgstr "" -#: js/musickeyboard.js:2840 -msgid "New action blocks generated!" +#: js/widgets/tempo.js:144 +msgid "speed up" msgstr "" -#: js/musickeyboard.js:2841 -msgid "New action block generated" +#: js/widgets/tempo.js:150 +msgid "slow down" msgstr "" -#: js/musickeyboard.js:2984 -#: js/musickeyboard.js:2992 -msgid "MIDI device present." +#: js/widgets/tempo.js:194 +msgid "Adjust the tempo with the buttons." msgstr "" -#: js/musickeyboard.js:2995 -msgid "No MIDI device found." +#: js/widgets/tempo.js:261 +msgid "Please enter a number between 30 and 1000" msgstr "" -#: js/musickeyboard.js:3000 -msgid "Failed to get MIDI access in browser." +#: js/widgets/tempo.js:268 +#: js/widgets/tempo.js:271 +msgid "The beats per minute must be between 30 and 1000." msgstr "" -#: js/rhythmruler.js:202 -msgid "Save rhythms" +#: js/widgets/tempo.js:287 +msgid "The beats per minute must be below 1000." msgstr "" -#: js/rhythmruler.js:222 -msgid "Save drum machine" +#: js/widgets/tempo.js:303 +msgid "The beats per minute must be above 30" msgstr "" -#: js/rhythmruler.js:263 -#.TRANS: user can tap out a rhythm by clicking on a ruler. -msgid "Tap a rhythm" +#: js/widgets/timbre.js:766 +msgid "Synthesizer" msgstr "" -#: js/rhythmruler.js:342 -#: js/rhythmruler.js:344 -#: js/rhythmruler.js:1481 -#: js/rhythmruler.js:1483 -#: js/sampler.js:110 -#: js/sampler.js:112 -#: js/tempo.js:78 -#: js/tempo.js:97 -#: js/tempo.js:99 -msgid "Pause" +#: js/widgets/timbre.js:789 +msgid "Oscillator" msgstr "" -#: js/rhythmruler.js:478 -msgid "Click on the ruler to divide it." +#: js/widgets/timbre.js:840 +msgid "Envelope" msgstr "" -#: js/rhythmruler.js:603 -#: js/rhythmruler.js:605 -#: js/rhythmruler.js:804 -#: js/rhythmruler.js:806 -#: js/rhythmruler.js:1386 -#: js/rhythmruler.js:1388 -msgid "tap a rhythm" +#: js/widgets/timbre.js:886 +#: planet/js/GlobalTag.js:50 +#.TRANS: On the Planet, we use labels to tag projects. +msgid "Effects" msgstr "" -#: js/rhythmruler.js:1084 -msgid "Maximum value of 256 has been exceeded." +#: js/widgets/timbre.js:904 +msgid "Filter" msgstr "" -#: js/sampler.js:137 -msgid "Warning: Sample is bigger than 1MB." +#: js/widgets/timbre.js:946 +msgid "Add filter" msgstr "" -#: js/sampler.js:142 -msgid "Upload failed: Sample is not a .wav file." +#: js/widgets/timbre.js:987 +msgid "Click on buttons to open the timbre design tools." msgstr "" -#: js/sampler.js:164 -msgid "A new sample block was generated." +#: js/widgets/timbre.js:1273 +msgid "harmonicity" msgstr "" -#: js/sampler.js:255 -msgid "Upload sample" +#: js/widgets/timbre.js:1340 +#: js/widgets/timbre.js:1406 +msgid "modulation index" msgstr "" -#: js/sampler.js:306 -msgid "Save sample" +#: js/widgets/timbre.js:1484 +msgid "vibrato amount" msgstr "" -#: js/sampler.js:697 -#.TRANS: The reference tone is a sound used for comparison. -msgid "reference tone" +#: js/widgets/timbre.js:1919 +msgid "Filter already present." msgstr "" -#: js/tempo.js:113 -msgid "Save tempo" +#: js/widgets/timbre.js:2322 +msgid "delay (MS)" msgstr "" -#: js/tempo.js:144 -msgid "speed up" +#: js/widgets/timbre.js:2507 +msgid "distortion amount" msgstr "" -#: js/tempo.js:150 -msgid "slow down" +#: js/widgets/aiwidget.js:180 +#: js/widgets/sampler.js:227 +msgid "Warning: Sample is bigger than 1MB." msgstr "" -#: js/tempo.js:194 -msgid "Adjust the tempo with the buttons." +#: js/widgets/aiwidget.js:539 +msgid "New start block generated" msgstr "" -#: js/tempo.js:261 -msgid "Please enter a number between 30 and 1000" +#: js/widgets/aiwidget.js:541 +msgid "MIDI loading. This may take some time depending upon the number of notes in the track" msgstr "" -#: js/tempo.js:268 -#: js/tempo.js:271 -msgid "The beats per minute must be between 30 and 1000." +#: js/widgets/aiwidget.js:551 +#: js/widgets/sampler.js:254 +msgid "Upload failed: Sample is not a .wav file." msgstr "" -#: js/tempo.js:287 -msgid "The beats per minute must be below 1000." +#: js/widgets/aiwidget.js:679 +#: js/widgets/sampler.js:432 +msgid "Save sample" msgstr "" -#: js/tempo.js:303 -msgid "The beats per minute must be above 30" +#: js/widgets/aiwidget.js:701 +msgid "AI Music" msgstr "" -#: js/timbre.js:766 -msgid "Synthesizer" +#: js/widgets/arpeggio.js:239 +msgid "Click in the grid to add steps to the arpeggio." msgstr "" -#: js/timbre.js:789 -msgid "Oscillator" +#: js/widgets/help.js:95 +#: js/widgets/help.js:125 +#: js/widgets/help.js:146 +#: js/widgets/help.js:158 +#: js/widgets/help.js:376 +#: js/widgets/help.js:391 +msgid "Take a tour" msgstr "" -#: js/timbre.js:840 -msgid "Envelope" +#: js/widgets/musickeyboard.js:725 +#: js/widgets/phrasemaker.js:584 +msgid "Add note" msgstr "" -#: js/timbre.js:886 -#: js/GlobalTag.js:50 -#.TRANS: On the Planet, we use labels to tag projects. -msgid "Effects" +#: js/widgets/musickeyboard.js:744 +msgid "Metronome" +msgstr "" + +#: js/widgets/musickeyboard.js:1549 +#: plugins/rodi.rtp:193 +msgid "duration" +msgstr "" + +#: js/widgets/musickeyboard.js:3179 +msgid "New action blocks generated" +msgstr "" + +#: js/widgets/musickeyboard.js:3180 +msgid "New action block generated" msgstr "" -#: js/timbre.js:904 -msgid "Filter" +#: js/widgets/musickeyboard.js:3365 +#: js/widgets/musickeyboard.js:3373 +msgid "MIDI device present." msgstr "" -#: js/timbre.js:946 -msgid "Add filter" +#: js/widgets/musickeyboard.js:3376 +msgid "No MIDI device found." msgstr "" -#: js/timbre.js:987 -msgid "Click on buttons to open the timbre design tools." +#: js/widgets/musickeyboard.js:3386 +msgid "Failed to get MIDI access in browser." msgstr "" -#: js/timbre.js:1273 -msgid "harmonicity" +#: js/widgets/phrasemaker.js:574 +msgid "Export" msgstr "" -#: js/timbre.js:1340 -#: js/timbre.js:1406 -msgid "modulation index" +#: js/widgets/phrasemaker.js:581 +msgid "Sort" msgstr "" -#: js/timbre.js:1484 -msgid "vibrato amount" +#: js/widgets/phrasemaker.js:975 +msgid "Click on the table to add notes." msgstr "" -#: js/timbre.js:1919 -msgid "Filter already present." +#: js/widgets/phrasemaker.js:2677 +#: js/widgets/phrasemaker.js:2819 +msgid "tuplet value" msgstr "" -#: js/timbre.js:2322 -msgid "delay (MS)" +#: js/widgets/rhythmruler.js:486 +msgid "Save rhythms" msgstr "" -#: js/timbre.js:2507 -msgid "distortion amount" +#: js/widgets/rhythmruler.js:512 +msgid "Save drum machine" msgstr "" -#: js/meterwidget.js:170 -msgid "Reset" +#: js/widgets/rhythmruler.js:589 +#.TRANS: user can tap out a rhythm by clicking on a ruler. +msgid "Tap a rhythm" msgstr "" -#: js/meterwidget.js:196 -msgid "Click in the circle to select strong beats for the meter." +#: js/widgets/rhythmruler.js:817 +msgid "Click on the ruler to divide it." msgstr "" -#: js/arpeggio.js:239 -msgid "Click in the grid to add steps to the arpeggio." +#: js/widgets/rhythmruler.js:950 +#: js/widgets/rhythmruler.js:952 +#: js/widgets/rhythmruler.js:1152 +#: js/widgets/rhythmruler.js:1154 +#: js/widgets/rhythmruler.js:1765 +#: js/widgets/rhythmruler.js:1767 +msgid "tap a rhythm" msgstr "" -#: js/ProjectStorage.js:243 -msgid "anonymous" +#: js/widgets/rhythmruler.js:1459 +msgid "Maximum value of 256 has been exceeded." msgstr "" -#: js/GlobalCard.js:68 -msgid "Share" +#: js/widgets/sampler.js:237 +msgid "Recording started..." msgstr "" -#: js/GlobalCard.js:74 -msgid "Flags" +#: js/widgets/sampler.js:245 +msgid "Recording complete..." msgstr "" -#: js/LocalCard.js:36 -msgid "View published project" +#: js/widgets/sampler.js:283 +msgid "A new sample block was generated." msgstr "" -#: js/LocalCard.js:42 -msgid "Publish project" +#: js/widgets/sampler.js:378 +msgid "Upload sample" msgstr "" -#: js/LocalCard.js:51 -msgid "Edit project" +#: js/widgets/sampler.js:399 +msgid "Warning: Your sample cannot be loaded because it is >1MB." msgstr "" -#: js/LocalCard.js:52 -msgid "Delete project" +#: js/widgets/sampler.js:448 +msgid "Toggle Mic" msgstr "" -#: js/LocalCard.js:53 -msgid "Download project" +#: js/widgets/sampler.js:458 +msgid "Playback" msgstr "" -#: js/LocalCard.js:55 -msgid "Duplicate project" +#: js/widgets/sampler.js:979 +#.TRANS: The reference tone is a sound used for comparison. +msgid "reference tone" msgstr "" -#: js/GlobalTag.js:28 +#: planet/js/GlobalTag.js:28 #.TRANS: On the Planet, we use labels to tag projects. msgid "All Projects" msgstr "" -#: js/GlobalTag.js:30 -#: js/StringHelper.js:37 +#: planet/js/GlobalTag.js:30 +#: planet/js/StringHelper.js:37 #.TRANS: On the Planet, we use labels to tag projects. msgid "My Projects" msgstr "" -#: js/GlobalTag.js:32 +#: planet/js/GlobalTag.js:32 #.TRANS: On the Planet, we use labels to tag projects. msgid "Examples" msgstr "" -#: js/GlobalTag.js:34 +#: planet/js/GlobalTag.js:34 #.TRANS: On the Planet, we use labels to tag projects. msgid "Music" msgstr "" -#: js/GlobalTag.js:36 +#: planet/js/GlobalTag.js:36 #.TRANS: On the Planet, we use labels to tag projects. msgid "Art" msgstr "" -#: js/GlobalTag.js:38 +#: planet/js/GlobalTag.js:38 #.TRANS: On the Planet, we use labels to tag projects. msgid "Math" msgstr "" -#: js/GlobalTag.js:40 +#: planet/js/GlobalTag.js:40 #.TRANS: On the Planet, we use labels to tag projects. msgid "Interactive" msgstr "" -#: js/GlobalTag.js:42 +#: planet/js/GlobalTag.js:42 #.TRANS: On the Planet, we use labels to tag projects. msgid "Design" msgstr "" -#: js/GlobalTag.js:44 +#: planet/js/GlobalTag.js:44 #.TRANS: On the Planet, we use labels to tag projects. msgid "Game" msgstr "" -#: js/GlobalTag.js:46 +#: planet/js/GlobalTag.js:46 #.TRANS: On the Planet, we use labels to tag projects. msgid "Media" msgstr "" -#: js/GlobalTag.js:48 +#: planet/js/GlobalTag.js:48 #.TRANS: On the Planet, we use labels to tag projects. msgid "Sensors" msgstr "" -#: js/GlobalTag.js:52 +#: planet/js/GlobalTag.js:52 #.TRANS: On the Planet, we use labels to tag projects. msgid "Code Snippet" msgstr "" -#: js/helper.js:149 -#: js/StringHelper.js:49 -msgid "Show more tags" +#: planet/js/LocalCard.js:36 +msgid "View published project" msgstr "" -#: js/helper.js:150 -msgid "Show fewer tags" +#: planet/js/LocalCard.js:42 +msgid "Publish project" +msgstr "" + +#: planet/js/LocalCard.js:51 +msgid "Edit project" +msgstr "" + +#: planet/js/LocalCard.js:52 +msgid "Delete project" +msgstr "" + +#: planet/js/LocalCard.js:53 +msgid "Download project" +msgstr "" + +#: planet/js/LocalCard.js:55 +msgid "Duplicate project" +msgstr "" + +#: planet/js/ProjectStorage.js:243 +msgid "anonymous" +msgstr "" + +#: planet/js/SaveInterface.js:34 +msgid "Open in Music Blocks" +msgstr "" + +#: planet/js/SaveInterface.js:35 +msgid "Open in Turtle Blocks" +msgstr "" + +#: planet/js/GlobalCard.js:68 +msgid "Share" +msgstr "" + +#: planet/js/GlobalCard.js:74 +msgid "Flags" +msgstr "" + +#: planet/js/GlobalPlanet.js:35 +msgid "No results found." +msgstr "" + +#: planet/js/GlobalPlanet.js:51 +msgid "Remix of" +msgstr "" + +#: planet/js/GlobalPlanet.js:509 +msgid "Cannot connect to server" msgstr "" -#: js/ProjectViewer.js:30 +#: planet/js/ProjectViewer.js:30 msgid "Error: Report could not be submitted. Try again later." msgstr "" -#: js/ProjectViewer.js:31 +#: planet/js/ProjectViewer.js:31 msgid "Thank you for reporting this project. A moderator will review the project shortly, to verify violation of the Sugar Labs Code of Conduct." msgstr "" -#: js/ProjectViewer.js:32 -#: js/StringHelper.js:62 -#: js/StringHelper.js:64 -#: js/StringHelper.js:68 +#: planet/js/ProjectViewer.js:32 +#: planet/js/StringHelper.js:62 +#: planet/js/StringHelper.js:64 +#: planet/js/StringHelper.js:68 msgid "Report Project" msgstr "" -#: js/ProjectViewer.js:33 -#: js/StringHelper.js:63 +#: planet/js/ProjectViewer.js:33 +#: planet/js/StringHelper.js:63 msgid "Project Reported" msgstr "" -#: js/ProjectViewer.js:34 +#: planet/js/ProjectViewer.js:34 msgid "Report description required" msgstr "" -#: js/ProjectViewer.js:35 +#: planet/js/ProjectViewer.js:35 msgid "Report description too long" msgstr "" -#: js/StringHelper.js:30 +#: planet/js/Publisher.js:30 +msgid "Feature unavailable - cannot connect to server. Reload Music Blocks to try again." +msgstr "" + +#: planet/js/Publisher.js:220 +#: planet/js/Publisher.js:237 +msgid "This field is required" +msgstr "" + +#: planet/js/Publisher.js:227 +msgid "Title too long" +msgstr "" + +#: planet/js/Publisher.js:244 +msgid "Description too long" +msgstr "" + +#: planet/js/Publisher.js:341 +msgid "Server Error" +msgstr "" + +#: planet/js/Publisher.js:341 +msgid "Try Again" +msgstr "" + +#: planet/js/StringHelper.js:30 msgid "Planet" msgstr "" -#: js/StringHelper.js:31 +#: planet/js/StringHelper.js:31 msgid "Close Planet" msgstr "" -#: js/StringHelper.js:32 +#: planet/js/StringHelper.js:32 msgid "Open project from file" msgstr "" -#: js/StringHelper.js:34 +#: planet/js/StringHelper.js:34 msgid "Local" msgstr "" -#: js/StringHelper.js:35 +#: planet/js/StringHelper.js:35 msgid "Global" msgstr "" -#: js/StringHelper.js:36 +#: planet/js/StringHelper.js:36 msgid "Search for a project" msgstr "" -#: js/StringHelper.js:38 +#: planet/js/StringHelper.js:38 msgid "Publish Project" msgstr "" -#: js/StringHelper.js:40 +#: planet/js/StringHelper.js:40 msgid "Tags (max 5)" msgstr "" -#: js/StringHelper.js:41 -#: js/StringHelper.js:61 +#: planet/js/StringHelper.js:41 +#: planet/js/StringHelper.js:61 msgid "Description" msgstr "" -#: js/StringHelper.js:42 -#: js/StringHelper.js:67 +#: planet/js/StringHelper.js:42 +#: planet/js/StringHelper.js:67 msgid "Submit" msgstr "" -#: js/StringHelper.js:43 -#: js/StringHelper.js:47 +#: planet/js/StringHelper.js:43 +#: planet/js/StringHelper.js:47 msgid "Cancel" msgstr "" -#: js/StringHelper.js:44 +#: planet/js/StringHelper.js:44 msgid "Delete \\"\\"?" msgstr "" -#: js/StringHelper.js:45 +#: planet/js/StringHelper.js:45 msgid "Permanently delete project \\"\\"?" msgstr "" -#: js/StringHelper.js:48 +#: planet/js/StringHelper.js:48 msgid "Explore Projects" msgstr "" -#: js/StringHelper.js:50 +#: planet/js/StringHelper.js:49 +#: planet/js/helper.js:149 +msgid "Show more tags" +msgstr "" + +#: planet/js/StringHelper.js:50 msgid "Most recent" msgstr "" -#: js/StringHelper.js:51 +#: planet/js/StringHelper.js:51 msgid "Most liked" msgstr "" -#: js/StringHelper.js:52 +#: planet/js/StringHelper.js:52 msgid "Most downloaded" msgstr "" -#: js/StringHelper.js:53 +#: planet/js/StringHelper.js:53 msgid "A-Z" msgstr "" -#: js/StringHelper.js:54 +#: planet/js/StringHelper.js:54 msgid "Sort by" msgstr "" -#: js/StringHelper.js:55 +#: planet/js/StringHelper.js:55 msgid "Load More Projects" msgstr "" -#: js/StringHelper.js:56 +#: planet/js/StringHelper.js:56 msgid "Last Updated" msgstr "" -#: js/StringHelper.js:57 +#: planet/js/StringHelper.js:57 msgid "Creation Date" msgstr "" -#: js/StringHelper.js:58 +#: planet/js/StringHelper.js:58 msgid "Number of Downloads:" msgstr "" -#: js/StringHelper.js:59 +#: planet/js/StringHelper.js:59 msgid "Number of Likes:" msgstr "" -#: js/StringHelper.js:60 +#: planet/js/StringHelper.js:60 msgid "Tags:" msgstr "" -#: js/StringHelper.js:65 +#: planet/js/StringHelper.js:65 msgid "Report projects which violate the Sugar Labs Code of Conduct." msgstr "" -#: js/StringHelper.js:66 +#: planet/js/StringHelper.js:66 msgid "Reason for reporting project" msgstr "" -#: js/StringHelper.js:70 +#: planet/js/StringHelper.js:70 msgid "Download as File" msgstr "" -#: js/GlobalPlanet.js:35 -msgid "No results found." -msgstr "" - -#: js/GlobalPlanet.js:51 -msgid "Remix of" -msgstr "" - -#: js/GlobalPlanet.js:509 -msgid "Cannot connect to server" -msgstr "" - -#: js/Publisher.js:30 -msgid "Feature unavailable - cannot connect to server. Reload Music Blocks to try again." -msgstr "" - -#: js/Publisher.js:218 -#: js/Publisher.js:235 -msgid "This field is required" -msgstr "" - -#: js/Publisher.js:225 -msgid "Title too long" +#: planet/js/helper.js:150 +msgid "Show fewer tags" msgstr "" -#: js/Publisher.js:242 -msgid "Description too long" +#: plugins/accelerometer.rtp:48 +msgid "motion x" msgstr "" -#: js/Publisher.js:339 -msgid "Server Error" +#: plugins/accelerometer.rtp:56 +msgid "motion y" msgstr "" -#: js/Publisher.js:339 -msgid "Try Again" +#: plugins/accelerometer.rtp:64 +msgid "motion z" msgstr "" -#: js/SaveInterface.js:34 -msgid "Open in Music Blocks" +#: plugins/facebook.rtp:27 +msgid "publish" msgstr "" -#: js/SaveInterface.js:35 -msgid "Open in Turtle Blocks" +#: plugins/maths.rtp:62 +msgid "power" msgstr "" -#: plugins/weather.rtp:68 -#: plugins/weather.rtp:97 -msgid "Days ahead must be in the range of -1 to 5." +#: plugins/maths.rtp:62 +msgid "base" msgstr "" -#: plugins/weather.rtp:122 -msgid "forecast" +#: plugins/maths.rtp:62 +msgid "exp" msgstr "" -#: plugins/weather.rtp:123 -#: plugins/weather.rtp:137 -#: plugins/weather.rtp:150 -msgid "city" +#: plugins/maths.rtp:99 +msgid "floor" msgstr "" -#: plugins/weather.rtp:124 -#: plugins/weather.rtp:138 -#: plugins/weather.rtp:151 -msgid "day" +#: plugins/maths.rtp:104 +msgid "ceiling" msgstr "" -#: plugins/weather.rtp:136 -msgid "high" +#: plugins/maths.rtp:109 +msgid "to degrees" msgstr "" -#: plugins/weather.rtp:149 -msgid "low" +#: plugins/maths.rtp:114 +msgid "to radians" msgstr "" #: plugins/nutrition.rtp:104 @@ -9462,45 +9871,6 @@ msgstr "" msgid "water" msgstr "" -#: plugins/maths.rtp:62 -#: plugins/examples.rtp:93 -msgid "power" -msgstr "" - -#: plugins/maths.rtp:62 -#: plugins/examples.rtp:93 -msgid "base" -msgstr "" - -#: plugins/maths.rtp:62 -#: plugins/examples.rtp:93 -msgid "exp" -msgstr "" - -#: plugins/maths.rtp:99 -#: plugins/examples.rtp:130 -msgid "floor" -msgstr "" - -#: plugins/maths.rtp:104 -#: plugins/examples.rtp:135 -msgid "ceiling" -msgstr "" - -#: plugins/maths.rtp:109 -#: plugins/examples.rtp:140 -msgid "to degrees" -msgstr "" - -#: plugins/maths.rtp:114 -#: plugins/examples.rtp:145 -msgid "to radians" -msgstr "" - -#: plugins/facebook.rtp:27 -msgid "publish" -msgstr "" - #: plugins/rodi.rtp:172 msgid "blink" msgstr "" @@ -9529,18 +9899,66 @@ msgstr "" msgid "move" msgstr "" -#: plugins/accelerometer.rtp:48 -msgid "motion x" +#: plugins/weather.rtp:68 +#: plugins/weather.rtp:97 +msgid "Days ahead must be in the range of -1 to 5." msgstr "" -#: plugins/accelerometer.rtp:56 -msgid "motion y" +#: plugins/weather.rtp:122 +msgid "forecast" msgstr "" -#: plugins/accelerometer.rtp:64 -msgid "motion z" +#: plugins/weather.rtp:123 +#: plugins/weather.rtp:137 +#: plugins/weather.rtp:150 +msgid "city" +msgstr "" + +#: plugins/weather.rtp:124 +#: plugins/weather.rtp:138 +#: plugins/weather.rtp:151 +msgid "day" +msgstr "" + +#: plugins/weather.rtp:136 +msgid "high" +msgstr "" + +#: plugins/weather.rtp:149 +msgid "low" msgstr "" +#: js/toolbar.js:70 + +#: js/toolbar.js:130 + +#: js/toolbar.js:194 + +#: js/toolbar.js:249 + +#~msgid "Toggle JavaScript Editor" +#~msgstr "" + +#: js/EnsembleBlocks.js:643 + +#~msgid "The Turrle pitch block returns the current pitch number being played by the specified turtle." +#~msgstr "" + +#: js/PitchActions.js:88 + +#~msgid "The Scalar Step Block must be used inside of a Note Block." +#~msgstr "" + +#: js/PitchActions.js:107 + +#~msgid "The Scalar Step Block must be preceded by a Pitch Block." +#~msgstr "" + +#: js/musickeyboard.js:2840 + +#~msgid "New action blocks generated!" +#~msgstr "" + #: js/toolbar.js:110 #: js/toolbar.js:204 @@ -9881,11 +10299,6 @@ msgstr "" #~msgid "The Time block returns the number of seconds that the program has been running." #~msgstr "" -#: js/help.js:95 - -#~msgid "Take a tour" -#~msgstr "" - #: js/GlobalCard.js:48 #~msgid "More Details" @@ -12784,11 +13197,6 @@ msgstr "" #~msgid "The save-stack button saves a stack onto a custom palette. It appears after a \"long press\" on a stack." #~msgstr "" -#: js/musicutils.js:254 - -#~msgid "Custom" -#~msgstr "" - #: js/basicblocks.js:4785 #~msgid "Rhythm" diff --git a/po/en_GB.po b/po/en_GB.po index 82995042b9..11b411b0fd 100644 --- a/po/en_GB.po +++ b/po/en_GB.po @@ -683,276 +683,131 @@ #: js/planetInterface.js:104 #: js/planetInterface.js:104 #: js/planetInterface.js:104 -msgid "project undefined" -msgstr "" - -#: js/logo.js:61 -msgid "Not a valid pitch name" -msgstr "" - -#: js/logo.js:507 -#: js/ProgramBlocks.js:258 -#: js/ProgramBlocks.js:427 -msgid "You must select a file." -msgstr "" - -#: js/logo.js:1184 -#: js/turtles.js:118 -#: js/turtle-painter.js:1192 -#: js/turtle-painter.js:1193 -#: js/block.js:1463 -#: js/lilypond.js:757 -#: js/lilypond.js:921 -#: js/lilypond.js:959 -#: js/ActionBlocks.js:1223 -#: js/ProgramBlocks.js:1267 -msgid "start" -msgstr "" - -#: js/logo.js:1696 -msgid "Playback is ready." -msgstr "" - -#: js/blocks.js:1011 -#: js/blocks.js:3427 -#: js/blocks.js:3428 -#: js/blocks.js:3653 -#: js/blocks.js:4012 -#: js/blocks.js:4205 -#: js/blocks.js:5343 -#: js/blocks.js:6474 -#: js/palette.js:527 -#: js/palette.js:536 -#: js/palette.js:545 -#: js/palette.js:554 -#: js/palette.js:1131 -#: js/palette.js:1142 -#: js/palette.js:1153 -#: js/palette.js:1164 -#: js/palette.js:1183 -#: js/rubrics.js:529 -#: js/macros.js:170 -#: js/macros.js:266 -#: js/macros.js:267 -#: js/macros.js:276 -#: js/macros.js:828 -#: js/block.js:1449 -#: js/block.js:4164 -#: js/block.js:4182 -#: js/block.js:4193 -#: js/turtledefs.js:128 -#: js/turtledefs.js:230 -#: js/ActionBlocks.js:254 -#: js/ActionBlocks.js:307 -#: js/ActionBlocks.js:617 -#: js/ActionBlocks.js:716 -#: js/ActionBlocks.js:961 -#: js/ActionBlocks.js:1049 -#: js/ActionBlocks.js:1322 -#: js/ActionBlocks.js:1325 -#: js/ActionBlocks.js:1337 -#: js/ActionBlocks.js:1404 -#: js/MeterBlocks.js:715 -#: js/MeterBlocks.js:768 -#: js/MeterBlocks.js:831 -#: js/MeterBlocks.js:892 -#: js/phrasemaker.js:4412 -#: js/musickeyboard.js:2647 -#: js/rhythmruler.js:1928 -#: js/rhythmruler.js:1935 -#: js/rhythmruler.js:2119 -#: js/rhythmruler.js:2126 -msgid "action" -msgstr "" - -#: js/blocks.js:1205 -#: js/blocks.js:3380 -#: js/blocks.js:3770 -#: js/blocks.js:3801 -#: js/blocks.js:3850 -#: js/blocks.js:3885 -#: js/blocks.js:6497 -#: js/palette.js:509 -#: js/palette.js:638 -#: js/palette.js:1107 -#: js/BoxesBlocks.js:282 -#: js/BoxesBlocks.js:285 -#: js/BoxesBlocks.js:405 -#: js/BoxesBlocks.js:594 -msgid "box" -msgstr "" - -#: js/blocks.js:1680 -msgid "Consider breaking this stack into parts." +#: js/SaveInterface.js:59 +#: js/SaveInterface.js:61 +#: js/SaveInterface.js:93 +msgid "Music Blocks Project" msgstr "" -#: js/blocks.js:2408 -#: js/palette.js:653 -#: js/MediaBlocks.js:602 -msgid "open file" +#: js/SaveInterface.js:63 +msgid "This project was created in Music Blocks" msgstr "" -#: js/blocks.js:2415 -#: js/blocks.js:2423 -#: js/activity.js:1875 -msgid "audio file" +#: js/SaveInterface.js:67 +msgid "Music Blocks is a Free/Libre Software application." msgstr "" -#: js/blocks.js:2536 -#: js/blocks.js:3147 -#: js/block.js:3543 -msgid "on2" +#: js/SaveInterface.js:69 +msgid "The source code can be accessed at" msgstr "" -#: js/blocks.js:2538 -#: js/blocks.js:3149 -#: js/block.js:3545 -msgid "off" +#: js/SaveInterface.js:72 +msgid "For more information, please consult the" msgstr "" -#: js/blocks.js:2543 -#: js/blocks.js:3154 -#: js/palette.js:618 -#: js/block.js:3466 -#: js/BooleanBlocks.js:77 -#: js/BooleanBlocks.js:167 -#: js/BooleanBlocks.js:251 -#: js/BooleanBlocks.js:335 -#: js/BooleanBlocks.js:433 -#: js/BooleanBlocks.js:539 -#: js/BooleanBlocks.js:640 -#: js/BooleanBlocks.js:741 -#: js/BooleanBlocks.js:847 -#: js/BooleanBlocks.js:948 -#: js/BooleanBlocks.js:1033 -#: js/SensorsBlocks.js:910 -msgid "true" +#: js/SaveInterface.js:76 +#: js/turtledefs.js:795 +msgid "Music Blocks Guide" msgstr "" -#: js/blocks.js:2545 -#: js/blocks.js:3156 -#: js/block.js:3466 -#: js/BooleanBlocks.js:79 -#: js/BooleanBlocks.js:169 -#: js/BooleanBlocks.js:253 -#: js/BooleanBlocks.js:337 -#: js/BooleanBlocks.js:435 -#: js/BooleanBlocks.js:541 -#: js/BooleanBlocks.js:642 -#: js/BooleanBlocks.js:743 -#: js/BooleanBlocks.js:849 -#: js/BooleanBlocks.js:950 -#: js/SensorsBlocks.js:912 -msgid "false" +#: js/SaveInterface.js:83 +msgid "Alternatively, open the file in Music Blocks using the Load project button." msgstr "" -#: js/blocks.js:3183 -#: js/palette.js:574 -#: js/MediaBlocks.js:892 -#: js/MediaBlocks.js:963 -msgid "text" +#: js/SaveInterface.js:85 +msgid "Project Code" msgstr "" -#: js/blocks.js:3379 -#: js/palette.js:641 -#: js/palette.js:642 -#: js/BoxesBlocks.js:514 -msgid "store in box" +#: js/SaveInterface.js:87 +msgid "This code stores data about the blocks in a project." msgstr "" -#: js/blocks.js:3384 -#: js/blocks.js:3824 -#: js/blocks.js:3859 -#: js/blocks.js:3894 -#: js/blocks.js:5773 -#: js/blocks.js:5794 -#: js/BoxesBlocks.js:772 -msgid "box1" +#: js/SaveInterface.js:89 +msgid "Show" msgstr "" -#: js/blocks.js:3386 -#: js/blocks.js:3826 -#: js/blocks.js:3861 -#: js/blocks.js:3896 -#: js/blocks.js:5775 -#: js/blocks.js:5796 -#: js/BoxesBlocks.js:663 -msgid "box2" +#: js/SaveInterface.js:91 +msgid "Hide" msgstr "" -#: js/blocks.js:4058 -#: js/palette.js:639 -#: js/palette.js:644 -#: js/palette.js:1043 -#: js/BoxesBlocks.js:591 -msgid "store in" +#: js/SaveInterface.js:131 +#: js/SaveInterface.js:204 +#: js/SaveInterface.js:262 +#: js/SaveInterface.js:389 +#: js/SaveInterface.js:417 +#: js/activity.js:4884 +#: planet/js/ProjectStorage.js:27 +#: planet/js/GlobalPlanet.js:467 +#: planet/js/GlobalPlanet.js:469 +#: planet/js/GlobalPlanet.js:495 +#.TRANS: default project title when saving as Lilypond +msgid "My Project" msgstr "" -#: js/blocks.js:4058 -#: js/EnsembleBlocks.js:391 -#: js/EnsembleBlocks.js:402 -#: js/MediaBlocks.js:746 -#: js/ProgramBlocks.js:390 -#: js/ProgramBlocks.js:495 -#: js/ProgramBlocks.js:658 -#: js/BoxesBlocks.js:595 -#: js/PitchBlocks.js:656 -#: js/PitchBlocks.js:932 -#: js/PitchBlocks.js:1827 -#: js/ToneBlocks.js:1025 -#: js/DictBlocks.js:215 -#: js/DictBlocks.js:289 -msgid "name" +#: js/SaveInterface.js:197 +#: planet/js/SaveInterface.js:58 +msgid "No description provided" msgstr "" -#: js/blocks.js:4058 -#: js/RhythmBlocks.js:1130 -#: js/BoxesBlocks.js:75 -#: js/BoxesBlocks.js:595 -#: js/HeapBlocks.js:544 -#: js/DictBlocks.js:289 -#: js/DictBlocks.js:430 -msgid "value" +#: js/SaveInterface.js:332 +msgid "Your recording is in progress." msgstr "" -#: js/blocks.js:4907 -msgid "There is no block selected." +#: js/SaveInterface.js:401 +#.TRANS: File name prompt for save as Lilypond +msgid "File name" msgstr "" -#: js/blocks.js:5002 -#: js/MediaBlocks.js:888 -msgid "show" +#: js/SaveInterface.js:403 +#: planet/js/StringHelper.js:39 +#.TRANS: Project title prompt for save as Lilypond +msgid "Project title" msgstr "" -#: js/blocks.js:5005 -#: js/MediaBlocks.js:803 -#.TRANS: Avatar is the image used to determine the appearance of the mouse. -msgid "avatar" +#: js/SaveInterface.js:405 +#.TRANS: Project title prompt for save as Lilypond +msgid "Project author" msgstr "" -#: js/blocks.js:5008 -#: js/ToneBlocks.js:1010 -#: js/sampler.js:693 -#.TRANS: The sound sample that the user uploads. -msgid "sample" +#: js/SaveInterface.js:407 +#.TRANS: MIDI prompt for save as Lilypond +msgid "Include MIDI output?" msgstr "" -#: js/turtles.js:874 -msgid "Grid" +#: js/SaveInterface.js:409 +#.TRANS: Guitar prompt for save as Lilypond +msgid "Include guitar tablature output?" msgstr "" -#: js/turtles.js:891 -#: js/turtledefs.js:626 -msgid "Clean" +#: js/SaveInterface.js:411 +#.TRANS: Lilypond is a scripting language for generating sheet music +msgid "Save as Lilypond" msgstr "" -#: js/turtles.js:912 -#: js/turtledefs.js:632 -msgid "Collapse" +#: js/SaveInterface.js:426 +#: js/blocks/EnsembleBlocks.js:75 +#: js/blocks/EnsembleBlocks.js:154 +#: js/blocks/EnsembleBlocks.js:216 +#: js/blocks/EnsembleBlocks.js:302 +#: js/blocks/EnsembleBlocks.js:348 +#: js/blocks/EnsembleBlocks.js:389 +#: js/blocks/EnsembleBlocks.js:441 +#: js/blocks/EnsembleBlocks.js:490 +#: js/blocks/EnsembleBlocks.js:536 +#: js/blocks/EnsembleBlocks.js:583 +#: js/blocks/EnsembleBlocks.js:637 +#: js/blocks/EnsembleBlocks.js:753 +#: js/blocks/EnsembleBlocks.js:840 +#: js/blocks/EnsembleBlocks.js:899 +#: js/blocks/EnsembleBlocks.js:942 +#: js/blocks/EnsembleBlocks.js:1212 +#: js/blocks/EnsembleBlocks.js:1280 +#.TRANS: default project author when saving as Lilypond +msgid "Mr. Mouse" msgstr "" -#: js/turtles.js:940 -msgid "Expand" +#: js/SaveInterface.js:573 +msgid "The Lilypond code is copied to clipboard. You can paste it here: " msgstr "" #: js/languagebox.js:198 @@ -963,6933 +818,7487 @@ msgstr "" msgid "Music Blocks is already set to this language." msgstr "" -#: js/piemenus.js:200 -#: js/musicutils.js:808 -#: js/musicutils.js:824 -#: js/phrasemaker.js:1672 -#: js/musickeyboard.js:2041 -#: js/sampler.js:544 -#.TRANS: double sharp is a music term related to pitch -msgid "double sharp" +#: js/planetInterface.js:131 +msgid "project undefined" msgstr "" -#: js/piemenus.js:201 -#: js/PitchBlocks.js:1510 -#: js/PitchActions.js:580 -#: js/musicutils.js:806 -#: js/musicutils.js:825 -#: js/phrasemaker.js:1673 -#: js/musickeyboard.js:2042 -#: js/sampler.js:545 -#.TRANS: sharp is a half-step up in pitch -#.TRANS: sharp is a music term related to pitch -msgid "sharp" +#: js/rubrics.js:523 +#: js/turtledefs.js:119 +#: js/turtledefs.js:221 +#: js/blocks/RhythmBlockPaletteBlocks.js:52 +#: js/blocks/RhythmBlockPaletteBlocks.js:234 +#: js/blocks/ProgramBlocks.js:745 +#: js/widgets/rhythmruler.js:2057 +#: js/widgets/rhythmruler.js:2064 +#: js/widgets/rhythmruler.js:2133 +#: js/widgets/rhythmruler.js:2140 +#: js/widgets/rhythmruler.js:2219 +#.TRANS: an arrangement of notes based on duration +msgid "rhythm" msgstr "" -#: js/piemenus.js:202 -#: js/musicutils.js:804 -#: js/musicutils.js:826 -#: js/phrasemaker.js:1674 -#: js/musickeyboard.js:2043 -#: js/sampler.js:546 -#.TRANS: natural is a music term related to pitch -msgid "natural" +#: js/rubrics.js:524 +#: js/turtledefs.js:121 +#: js/turtledefs.js:223 +#: js/block-verbose.js:2622 +#: js/block.js:2550 +#: js/blocks/IntervalsBlocks.js:63 +#: js/blocks/SensorsBlocks.js:178 +#: js/blocks/PitchBlocks.js:1839 +#: js/blocks/PitchBlocks.js:1853 +#: js/widgets/musickeyboard.js:1935 +#: js/widgets/phrasemaker.js:1036 +#.TRANS: pitch number +#.TRANS: pitch number +#.TRANS: we specify pitch in terms of a name and an octave. The name can be CDEFGAB or Do Re Mi Fa Sol La Ti. Octave is a number between 1 and 8. +msgid "pitch" msgstr "" -#: js/piemenus.js:203 -#: js/PitchBlocks.js:1469 -#: js/PitchActions.js:583 -#: js/musicutils.js:802 -#: js/musicutils.js:827 -#: js/phrasemaker.js:1675 -#: js/musickeyboard.js:2044 -#: js/sampler.js:547 -#.TRANS: flat is a half-step down in pitch -#.TRANS: flat is a music term related to pitch -msgid "flat" +#: js/rubrics.js:525 +#: js/turtledefs.js:123 +#: js/turtledefs.js:225 +msgid "tone" msgstr "" -#: js/piemenus.js:204 -#: js/musicutils.js:800 -#: js/musicutils.js:828 -#: js/phrasemaker.js:1676 -#: js/musickeyboard.js:2045 -#: js/sampler.js:548 -#.TRANS: double flat is a music term related to pitch -msgid "double flat" +#: js/rubrics.js:526 +#: js/lilypond.js:605 +#: js/lilypond.js:904 +#: js/lilypond.js:910 +#: js/lilypond.js:948 +msgid "mouse" msgstr "" -#: js/piemenus.js:2861 -#: js/PitchBlocks.js:1357 -#: js/musicutils.js:627 -#.TRANS: unison means the note is the same as the current note -#.TRANS: unison is a music term related to intervals -msgid "unison" +#: js/rubrics.js:527 +#: js/turtledefs.js:132 +#: js/turtledefs.js:234 +#: js/widgets/phrasemaker.js:1040 +msgid "pen" msgstr "" -#: js/piemenus.js:3015 -#: js/piemenus.js:3088 -#: js/musicutils.js:635 -#: js/musicutils.js:810 -#: js/musicutils.js:912 -#.TRANS: major is a music term related to intervals and mode -msgid "major" +#: js/rubrics.js:528 +#: js/turtledefs.js:133 +#: js/turtledefs.js:235 +#: js/blocks/NumberBlocks.js:981 +#: js/blocks/PitchBlocks.js:1717 +#: js/blocks/PitchBlocks.js:1758 +msgid "number" msgstr "" -#: js/piemenus.js:3015 -#: js/piemenus.js:3088 -#: js/musicutils.js:653 -#.TRANS: modal scale for music -msgid "ionian" +#: js/rubrics.js:529 +#: js/turtledefs.js:127 +#: js/turtledefs.js:229 +msgid "flow" msgstr "" -#: js/piemenus.js:3017 -#: js/piemenus.js:3092 -#: js/musicutils.js:633 -#: js/musicutils.js:811 -#: js/musicutils.js:909 -#.TRANS: minor is a music term related to intervals and mode -msgid "minor" +#: js/rubrics.js:530 +#: js/turtledefs.js:128 +#: js/turtledefs.js:230 +#: js/block-verbose.js:1609 +#: js/block-verbose.js:4559 +#: js/block-verbose.js:4577 +#: js/block-verbose.js:4588 +#: js/block.js:1573 +#: js/block.js:4483 +#: js/block.js:4501 +#: js/block.js:4512 +#: js/blocks.js:1018 +#: js/blocks.js:3491 +#: js/blocks.js:3492 +#: js/blocks.js:3717 +#: js/blocks.js:4076 +#: js/blocks.js:4269 +#: js/blocks.js:5432 +#: js/blocks.js:6563 +#: js/macros.js:170 +#: js/macros.js:266 +#: js/macros.js:267 +#: js/macros.js:276 +#: js/macros.js:828 +#: js/palette.js:527 +#: js/palette.js:536 +#: js/palette.js:545 +#: js/palette.js:554 +#: js/palette.js:1129 +#: js/palette.js:1140 +#: js/palette.js:1151 +#: js/palette.js:1162 +#: js/palette.js:1181 +#: js/blocks/ActionBlocks.js:254 +#: js/blocks/ActionBlocks.js:307 +#: js/blocks/ActionBlocks.js:617 +#: js/blocks/ActionBlocks.js:716 +#: js/blocks/ActionBlocks.js:961 +#: js/blocks/ActionBlocks.js:1049 +#: js/blocks/ActionBlocks.js:1322 +#: js/blocks/ActionBlocks.js:1325 +#: js/blocks/ActionBlocks.js:1337 +#: js/blocks/ActionBlocks.js:1404 +#: js/blocks/MeterBlocks.js:715 +#: js/blocks/MeterBlocks.js:768 +#: js/blocks/MeterBlocks.js:831 +#: js/blocks/MeterBlocks.js:892 +#: js/widgets/musickeyboard.js:2986 +#: js/widgets/phrasemaker.js:4913 +#: js/widgets/rhythmruler.js:2319 +#: js/widgets/rhythmruler.js:2326 +#: js/widgets/rhythmruler.js:2511 +#: js/widgets/rhythmruler.js:2518 +msgid "action" msgstr "" -#: js/piemenus.js:3017 -#: js/piemenus.js:3092 -#: js/musicutils.js:663 -#.TRANS: modal scale for music -msgid "aeolian" +#: js/rubrics.js:531 +#: js/turtledefs.js:136 +#: js/turtledefs.js:238 +msgid "sensors" msgstr "" -#: js/piemenus.js:3407 -msgid "Duplicate" +#: js/rubrics.js:532 +#: js/turtledefs.js:135 +#: js/turtledefs.js:237 +#: js/blocks/MediaBlocks.js:930 +msgid "media" msgstr "" -#: js/piemenus.js:3408 -#: js/turtledefs.js:534 -msgid "Extract" +#: js/rubrics.js:533 +msgid "mice" msgstr "" -#: js/piemenus.js:3409 -msgid "Move to trash" +#: js/toolbar.js:48 +#: js/toolbar.js:109 +msgid "About Music Blocks" msgstr "" -#: js/piemenus.js:3410 -#: js/timbre.js:968 -#: js/StringHelper.js:69 -msgid "Close" +#: js/toolbar.js:49 +#: js/toolbar.js:110 +#: js/toolbar.js:175 +#: js/toolbar.js:231 +#: js/turtledefs.js:445 +#: js/turtledefs.js:482 +#: js/activity.js:2660 +#: js/activity.js:2671 +#: js/activity.js:2902 +#: js/widgets/modewidget.js:77 +#: js/widgets/meterwidget.js:185 +#: js/widgets/pitchdrummatrix.js:147 +#: js/widgets/pitchdrummatrix.js:687 +#: js/widgets/pitchdrummatrix.js:689 +#: js/widgets/pitchdrummatrix.js:741 +#: js/widgets/pitchdrummatrix.js:743 +#: js/widgets/pitchdrummatrix.js:758 +#: js/widgets/pitchdrummatrix.js:760 +#: js/widgets/pitchdrummatrix.js:789 +#: js/widgets/pitchdrummatrix.js:791 +#: js/widgets/pitchstaircase.js:121 +#: js/widgets/temperament.js:610 +#: js/widgets/temperament.js:613 +#: js/widgets/temperament.js:673 +#: js/widgets/temperament.js:675 +#: js/widgets/temperament.js:2017 +#: js/widgets/temperament.js:2019 +#: js/widgets/tempo.js:84 +#: js/widgets/tempo.js:86 +#: js/widgets/timbre.js:432 +#: js/widgets/timbre.js:434 +#: js/widgets/timbre.js:465 +#: js/widgets/timbre.js:467 +#: js/widgets/timbre.js:746 +#: js/widgets/aiwidget.js:647 +#: js/widgets/aiwidget.js:654 +#: js/widgets/aiwidget.js:656 +#: js/widgets/arpeggio.js:90 +#: js/widgets/arpeggio.js:547 +#: js/widgets/arpeggio.js:549 +#: js/widgets/arpeggio.js:644 +#: js/widgets/arpeggio.js:646 +#: js/widgets/musickeyboard.js:676 +#: js/widgets/musickeyboard.js:872 +#: js/widgets/musickeyboard.js:874 +#: js/widgets/musickeyboard.js:953 +#: js/widgets/musickeyboard.js:955 +#: js/widgets/phrasemaker.js:513 +#: js/widgets/phrasemaker.js:523 +#: js/widgets/phrasemaker.js:525 +#: js/widgets/phrasemaker.js:4304 +#: js/widgets/phrasemaker.js:4528 +#: js/widgets/phrasemaker.js:4533 +#: js/widgets/phrasemaker.js:4535 +#: js/widgets/phrasemaker.js:4650 +#: js/widgets/rhythmruler.js:637 +#: js/widgets/rhythmruler.js:639 +#: js/widgets/rhythmruler.js:653 +#: js/widgets/rhythmruler.js:655 +#: js/widgets/sampler.js:162 +#: js/widgets/sampler.js:164 +#: js/widgets/sampler.js:363 +msgid "Play" msgstr "" -#: js/piemenus.js:3416 -msgid "Save stack" +#: js/toolbar.js:50 +#: js/toolbar.js:111 +#: js/toolbar.js:176 +#: js/toolbar.js:232 +#: js/turtledefs.js:451 +#: js/turtledefs.js:488 +#: js/activity.js:2679 +#: js/widgets/modewidget.js:99 +#: js/widgets/modewidget.js:101 +#: js/widgets/meterwidget.js:206 +#: js/widgets/meterwidget.js:208 +#: js/widgets/pitchdrummatrix.js:674 +#: js/widgets/pitchdrummatrix.js:676 +#: js/widgets/temperament.js:2002 +#: js/widgets/temperament.js:2004 +#: js/widgets/arpeggio.js:534 +#: js/widgets/arpeggio.js:536 +#: js/widgets/phrasemaker.js:534 +#: js/widgets/phrasemaker.js:536 +msgid "Stop" msgstr "" -#: js/piemenus.js:3420 -#: js/toolbar.js:60 -#: js/toolbar.js:120 -#: js/toolbar.js:185 -#: js/toolbar.js:240 -#: js/turtledefs.js:752 -msgid "Help" +#: js/toolbar.js:51 +#: js/toolbar.js:112 +#: js/toolbar.js:177 +#: js/toolbar.js:233 +#: js/turtledefs.js:498 +msgid "Record" msgstr "" -#: js/piemenus.js:3762 -msgid "You have chosen key " +#: js/toolbar.js:52 +#: js/toolbar.js:53 +msgid "Full screen" msgstr "" -#: js/piemenus.js:3766 -msgid " for your pitch preview." +#: js/toolbar.js:54 +#: js/toolbar.js:115 +#: js/toolbar.js:180 +#: js/toolbar.js:236 +#: js/turtledefs.js:504 +msgid "Toggle Fullscreen" +msgstr "" + +#: js/toolbar.js:55 +#: js/toolbar.js:116 +#: js/toolbar.js:181 +#: js/toolbar.js:237 +#: js/turtledefs.js:510 +#: planet/js/StringHelper.js:33 +msgid "New project" +msgstr "" + +#: js/toolbar.js:56 +#: js/toolbar.js:117 +#: js/toolbar.js:182 +#: js/toolbar.js:238 +#: js/turtledefs.js:516 +msgid "Load project from file" +msgstr "" + +#: js/toolbar.js:57 +#: js/toolbar.js:118 +#: js/toolbar.js:119 +#: js/toolbar.js:183 +#: js/toolbar.js:239 +#: js/turtledefs.js:541 +#: js/turtledefs.js:550 +#: js/turtledefs.js:571 +msgid "Save project" +msgstr "" + +#: js/toolbar.js:58 +#: js/toolbar.js:77 +#: js/toolbar.js:79 +#: js/toolbar.js:138 +#: js/toolbar.js:147 +#: js/toolbar.js:149 +#: js/toolbar.js:184 +#: js/toolbar.js:202 +#: js/toolbar.js:204 +#: js/toolbar.js:240 +#: js/toolbar.js:258 +#: js/toolbar.js:260 +msgid "Save project as HTML" +msgstr "" + +#: js/toolbar.js:59 +#: js/toolbar.js:120 +#: js/toolbar.js:185 +#: js/toolbar.js:241 +msgid "Find and share projects" +msgstr "" + +#: js/toolbar.js:60 +#: js/toolbar.js:121 +#: js/toolbar.js:186 +#: js/toolbar.js:242 +msgid "Offline. Sharing is unavailable" +msgstr "" + +#: js/toolbar.js:61 +#: js/toolbar.js:122 +#: js/toolbar.js:187 +#: js/toolbar.js:243 +msgid "Auxiliary menu" +msgstr "" + +#: js/toolbar.js:62 +#: js/toolbar.js:123 +#: js/toolbar.js:188 +#: js/toolbar.js:244 +#: js/turtledefs.js:752 +#: js/piemenus.js:3423 +msgid "Help" +msgstr "" + +#: js/toolbar.js:63 +#: js/toolbar.js:124 +#: js/toolbar.js:189 +#: js/toolbar.js:245 +msgid "Run slowly" +msgstr "" + +#: js/toolbar.js:64 +#: js/toolbar.js:125 +#: js/toolbar.js:190 +#: js/toolbar.js:246 +#: js/turtledefs.js:682 +msgid "Run step by step" +msgstr "" + +#: js/toolbar.js:65 +#: js/toolbar.js:126 +#: js/toolbar.js:191 +#: js/toolbar.js:247 +#: js/turtledefs.js:689 +msgid "Display statistics" +msgstr "" + +#: js/toolbar.js:66 +#: js/toolbar.js:127 +#: js/toolbar.js:192 +#: js/toolbar.js:248 +msgid "Load plugin" +msgstr "" + +#: js/toolbar.js:67 +#: js/toolbar.js:128 +#: js/toolbar.js:193 +#: js/toolbar.js:249 +#: js/turtledefs.js:696 +msgid "Delete plugin" +msgstr "" + +#: js/toolbar.js:68 +#: js/toolbar.js:129 +#: js/toolbar.js:194 +#: js/toolbar.js:250 +msgid "Enable horizontal scrolling" +msgstr "" + +#: js/toolbar.js:69 +#: js/toolbar.js:130 +#: js/toolbar.js:195 +#: js/toolbar.js:251 +msgid "Disable horizontal scrolling" +msgstr "" + +#: js/toolbar.js:70 +#: js/toolbar.js:131 +#: js/toolbar.js:196 +#: js/toolbar.js:252 +#: planet/js/LocalCard.js:54 +#: planet/js/StringHelper.js:71 +msgid "Merge with current project" +msgstr "" + +#: js/toolbar.js:71 +#: js/toolbar.js:132 +msgid "Set Pitch Preview" +msgstr "" + +#: js/toolbar.js:72 +#: js/toolbar.js:133 +#: js/toolbar.js:197 +#: js/toolbar.js:253 +msgid "JavaScript Editor" +msgstr "" + +#: js/toolbar.js:73 +#: js/toolbar.js:134 +#: js/toolbar.js:198 +#: js/toolbar.js:254 +#: js/turtledefs.js:724 +msgid "Restore" +msgstr "" + +#: js/toolbar.js:74 +#: js/toolbar.js:135 +#: js/toolbar.js:199 +#: js/toolbar.js:255 +msgid "Switch to beginner mode" +msgstr "" + +#: js/toolbar.js:75 +#: js/toolbar.js:136 +#: js/toolbar.js:200 +#: js/toolbar.js:256 +msgid "Switch to advanced mode" +msgstr "" + +#: js/toolbar.js:76 +#: js/toolbar.js:137 +#: js/toolbar.js:146 +#: js/toolbar.js:201 +#: js/toolbar.js:257 +#: js/turtledefs.js:738 +msgid "Select language" +msgstr "" + +#: js/toolbar.js:78 +#: js/toolbar.js:81 +#: js/toolbar.js:140 +#: js/turtledefs.js:579 +msgid "Save mouse artwork as PNG" +msgstr "" + +#: js/toolbar.js:80 +#: js/toolbar.js:139 +#: js/turtledefs.js:575 +msgid "Save mouse artwork as SVG" +msgstr "" + +#: js/toolbar.js:82 +#: js/toolbar.js:141 +#: js/turtledefs.js:583 +msgid "Save music as WAV" +msgstr "" + +#: js/toolbar.js:83 +#: js/toolbar.js:142 +#: js/turtledefs.js:587 +msgid "Save sheet music as ABC" +msgstr "" + +#: js/toolbar.js:84 +#: js/toolbar.js:143 +#: js/turtledefs.js:591 +msgid "Save sheet music as Lilypond" +msgstr "" + +#: js/toolbar.js:85 +msgid "Save sheet music as MusicXML" +msgstr "" + +#: js/toolbar.js:86 +#: js/toolbar.js:144 +#: js/toolbar.js:152 +#: js/toolbar.js:207 +#: js/toolbar.js:263 +#: js/turtledefs.js:562 +#: js/turtledefs.js:595 +msgid "Save block artwork as SVG" +msgstr "" + +#: js/toolbar.js:87 +#: js/toolbar.js:145 +#: js/toolbar.js:153 +#: js/toolbar.js:208 +#: js/toolbar.js:264 +#: js/turtles.js:911 +msgid "Confirm" +msgstr "" + +#: js/toolbar.js:88 +#: js/toolbar.js:154 +#: js/toolbar.js:209 +#: js/toolbar.js:265 +msgid "English (United States)" +msgstr "" + +#: js/toolbar.js:89 +#: js/toolbar.js:155 +#: js/toolbar.js:210 +#: js/toolbar.js:266 +msgid "English (United Kingdom)" +msgstr "" + +#: js/toolbar.js:90 +#: js/toolbar.js:156 +#: js/toolbar.js:211 +#: js/toolbar.js:267 +msgid "日本語" +msgstr "" + +#: js/toolbar.js:91 +msgid "한국어" +msgstr "" + +#: js/toolbar.js:92 +#: js/toolbar.js:158 +#: js/toolbar.js:213 +#: js/toolbar.js:269 +msgid "español" +msgstr "" + +#: js/toolbar.js:93 +#: js/toolbar.js:159 +#: js/toolbar.js:214 +#: js/toolbar.js:270 +msgid "português" +msgstr "" + +#: js/toolbar.js:94 +#: js/toolbar.js:160 +#: js/toolbar.js:215 +#: js/toolbar.js:271 +msgid "にほんご" +msgstr "" + +#: js/toolbar.js:95 +#: js/toolbar.js:161 +#: js/toolbar.js:216 +#: js/toolbar.js:272 +msgid "中文" +msgstr "" + +#: js/toolbar.js:96 +#: js/toolbar.js:162 +#: js/toolbar.js:217 +#: js/toolbar.js:273 +msgid "ภาษาไทย" +msgstr "" + +#: js/toolbar.js:97 +#: js/toolbar.js:163 +#: js/toolbar.js:218 +#: js/toolbar.js:274 +msgid "aymara" +msgstr "" + +#: js/toolbar.js:98 +#: js/toolbar.js:164 +#: js/toolbar.js:219 +#: js/toolbar.js:275 +msgid "quechua" +msgstr "" + +#: js/toolbar.js:99 +#: js/toolbar.js:165 +#: js/toolbar.js:220 +#: js/toolbar.js:276 +msgid "guarani" +msgstr "" + +#: js/toolbar.js:100 +#: js/toolbar.js:166 +#: js/toolbar.js:221 +#: js/toolbar.js:277 +msgid "हिंदी" +msgstr "" + +#: js/toolbar.js:101 +#: js/toolbar.js:168 +#: js/toolbar.js:222 +#: js/toolbar.js:279 +msgid "igbo" +msgstr "" + +#: js/toolbar.js:102 +#: js/toolbar.js:169 +#: js/toolbar.js:223 +#: js/toolbar.js:280 +msgid "عربى" +msgstr "" + +#: js/toolbar.js:103 +#: js/toolbar.js:167 +#: js/toolbar.js:224 +#: js/toolbar.js:278 +msgid "తెలుగు" +msgstr "" + +#: js/toolbar.js:104 +#: js/toolbar.js:170 +#: js/toolbar.js:225 +#: js/toolbar.js:281 +msgid "עִברִית" +msgstr "" + +#: js/toolbar.js:113 +#: js/toolbar.js:114 +#: js/toolbar.js:178 +#: js/toolbar.js:179 +#: js/toolbar.js:234 +#: js/toolbar.js:235 +msgid "Full Screen" +msgstr "" + +#: js/toolbar.js:148 +#: js/toolbar.js:151 +#: js/toolbar.js:203 +#: js/toolbar.js:206 +#: js/toolbar.js:259 +#: js/toolbar.js:262 +#: js/turtledefs.js:558 +msgid "Save turtle artwork as PNG" +msgstr "" + +#: js/toolbar.js:150 +#: js/toolbar.js:205 +#: js/toolbar.js:261 +#: js/turtledefs.js:554 +msgid "Save turtle artwork as SVG" +msgstr "" + +#: js/toolbar.js:157 +#: js/toolbar.js:212 +#: js/toolbar.js:268 +msgid "한국인" +msgstr "" + +#: js/toolbar.js:174 +#: js/toolbar.js:230 +msgid "About Turtle Blocks" +msgstr "" + +#: js/toolbar.js:446 +#: js/toolbar.js:457 +#: js/toolbar.js:497 +msgid "Turtle Wrap Off" +msgstr "" + +#: js/toolbar.js:466 +#: js/toolbar.js:506 +msgid "Turtle Wrap On" +msgstr "" + +#: js/turtle-painter.js:1192 +#: js/turtle-painter.js:1193 +#: js/turtles.js:118 +#: js/block-verbose.js:1623 +#: js/block.js:1587 +#: js/lilypond.js:749 +#: js/lilypond.js:913 +#: js/lilypond.js:951 +#: js/logo.js:1184 +#: js/blocks/ActionBlocks.js:1223 +#: js/blocks/ProgramBlocks.js:1267 +msgid "start" +msgstr "" + +#: js/turtledefs.js:40 +#.TRANS: put the URL to the guide here, e.g., https://github.com/sugarlabs/turtleblocksjs/tree/master/guide/README.md +msgid "guide url" +msgstr "" + +#: js/turtledefs.js:85 +#: js/turtledefs.js:437 +msgid "Turtle Blocks is a Logo-inspired turtle that draws colorful pictures with snap-together visual-programming blocks." +msgstr "" + +#: js/turtledefs.js:118 +#: js/turtledefs.js:220 +msgid "search" +msgstr "" + +#: js/turtledefs.js:120 +#: js/turtledefs.js:222 +#: js/blocks/MeterBlocks.js:1343 +#: js/blocks/WidgetBlocks.js:522 +#.TRANS: musical meter (time signature), e.g., 4:4 +msgid "meter" +msgstr "" + +#: js/turtledefs.js:122 +#: js/turtledefs.js:224 +msgid "intervals" +msgstr "" + +#: js/turtledefs.js:124 +#: js/turtledefs.js:226 +msgid "ornament" +msgstr "" + +#: js/turtledefs.js:125 +#: js/turtledefs.js:227 +#: js/blocks/VolumeBlocks.js:362 +#: js/blocks/VolumeBlocks.js:502 +#: js/blocks/VolumeBlocks.js:545 +msgid "volume" +msgstr "" + +#: js/turtledefs.js:126 +#: js/turtledefs.js:228 +#: js/block-verbose.js:1700 +#: js/block-verbose.js:2626 +#: js/block.js:1664 +#: js/block.js:2554 +#: js/lilypond.js:732 +#: js/lilypond.js:897 +#: js/lilypond.js:941 +#: js/palette.js:577 +#: js/blocks/RhythmBlocks.js:766 +#: js/blocks/DrumBlocks.js:477 +#: js/blocks/VolumeBlocks.js:502 +#: js/widgets/phrasemaker.js:1038 +msgid "drum" +msgstr "" + +#: js/turtledefs.js:129 +#: js/turtledefs.js:231 +msgid "boxes" +msgstr "" + +#: js/turtledefs.js:130 +#: js/turtledefs.js:232 +msgid "widgets" +msgstr "" + +#: js/turtledefs.js:131 +#: js/turtledefs.js:233 +#: js/widgets/phrasemaker.js:1039 +msgid "graphics" +msgstr "" + +#: js/turtledefs.js:134 +#: js/turtledefs.js:236 +msgid "boolean" +msgstr "" + +#: js/turtledefs.js:137 +#: js/turtledefs.js:239 +#: js/blocks/HeapBlocks.js:59 +#: js/widgets/status.js:147 +msgid "heap" +msgstr "" + +#: js/turtledefs.js:138 +#: js/turtledefs.js:240 +#: js/blocks/DictBlocks.js:142 +#: js/blocks/ProgramBlocks.js:495 +msgid "dictionary" +msgstr "" + +#: js/turtledefs.js:139 +#: js/turtledefs.js:241 +msgid "ensemble" +msgstr "" + +#: js/turtledefs.js:140 +#: js/turtledefs.js:242 +msgid "extras" +msgstr "" + +#: js/turtledefs.js:142 +#: js/turtledefs.js:244 +#.TRANS: program as in computer program +#.TRANS: program as in computer program +msgid "program" +msgstr "" + +#: js/turtledefs.js:143 +#: js/turtledefs.js:245 +msgid "my blocks" +msgstr "" + +#: js/turtledefs.js:185 +#: js/turtledefs.js:281 +msgid "artwork" +msgstr "" + +#: js/turtledefs.js:185 +#: js/turtledefs.js:281 +msgid "logic" +msgstr "" + +#: js/turtledefs.js:185 +#: js/turtledefs.js:281 +msgid "music" +msgstr "" + +#: js/turtledefs.js:187 +#: js/turtledefs.js:463 +msgid "Music Blocks is a collection of tools for exploring fundamental musical concepts in a fun way." +msgstr "" + +#: js/turtledefs.js:436 +msgid "Welcome to Turtle Blocks" +msgstr "" + +#: js/turtledefs.js:438 +#: js/turtledefs.js:465 +#: js/turtledefs.js:774 +#: js/turtledefs.js:805 +msgid "The current version is" +msgstr "" + +#: js/turtledefs.js:446 +#: js/turtledefs.js:483 +msgid "Click the run button to run the project in fast mode." +msgstr "" + +#: js/turtledefs.js:452 +msgid "Stop the turtle." +msgstr "" + +#: js/turtledefs.js:454 +#: js/turtledefs.js:491 +msgid "You can also type Alt-S to stop." +msgstr "" + +#: js/turtledefs.js:462 +#: js/widgets/help.js:333 +msgid "Welcome to Music Blocks" +msgstr "" + +#: js/turtledefs.js:472 +#: js/widgets/help.js:334 +msgid "Meet Mr. Mouse!" +msgstr "" + +#: js/turtledefs.js:473 +msgid "Mr Mouse is our Music Blocks conductor." +msgstr "" + +#: js/turtledefs.js:475 +msgid "Mr Mouse encourages you to explore Music Blocks." +msgstr "" + +#: js/turtledefs.js:477 +msgid "Let us start our tour!" +msgstr "" + +#: js/turtledefs.js:489 +msgid "Stop the music (and the mice)." +msgstr "" + +#: js/turtledefs.js:499 +msgid "Record your project as video." +msgstr "" + +#: js/turtledefs.js:505 +msgid "Toggle Fullscreen mode." +msgstr "" + +#: js/turtledefs.js:511 +msgid "Initialize a new project." +msgstr "" + +#: js/turtledefs.js:517 +msgid "You can also load projects from the file system." +msgstr "" + +#: js/turtledefs.js:522 +#: planet/js/StringHelper.js:46 +msgid "Delete" +msgstr "" + +#: js/turtledefs.js:523 +msgid "To delete a block, just right-click on it, then you will be able to see the delete option" +msgstr "" + +#: js/turtledefs.js:528 +#: js/activity.js:2649 +#: planet/js/LocalCard.js:31 +msgid "Copy" +msgstr "" + +#: js/turtledefs.js:529 +msgid "To copy a block, just right-click on it, then you will be able to see the copy option" +msgstr "" + +#: js/turtledefs.js:534 +#: js/piemenus.js:3411 +msgid "Extract" +msgstr "" + +#: js/turtledefs.js:535 +msgid "To extract a block, just right-click on it, then you will be able to see the extract option" +msgstr "" + +#: js/turtledefs.js:542 +#: js/turtledefs.js:552 +#: js/turtledefs.js:573 +msgid "Save your project to a file." +msgstr "" + +#: js/turtledefs.js:549 +#: js/turtledefs.js:570 +msgid "save" +msgstr "" + +#: js/turtledefs.js:556 +#: js/turtledefs.js:577 +msgid "Save graphics from your project to as SVG." +msgstr "" + +#: js/turtledefs.js:560 +#: js/turtledefs.js:581 +msgid "Save graphics from your project as PNG." +msgstr "" + +#: js/turtledefs.js:564 +#: js/turtledefs.js:597 +msgid "Save block artwork as an SVG file." +msgstr "" + +#: js/turtledefs.js:585 +msgid "Save audio from your project as WAV." +msgstr "" + +#: js/turtledefs.js:589 +msgid "Save your project to as an ABC file." +msgstr "" + +#: js/turtledefs.js:593 +msgid "Save your project to as a Lilypond file." +msgstr "" + +#: js/turtledefs.js:604 +msgid "Load samples from server" +msgstr "" + +#: js/turtledefs.js:605 +msgid "This button opens a viewer for loading example projects." +msgstr "" + +#: js/turtledefs.js:611 +msgid "Palette buttons" +msgstr "" + +#: js/turtledefs.js:612 +msgid "This toolbar contains the palette buttons including Rhythm Pitch Tone Action and more." +msgstr "" + +#: js/turtledefs.js:614 +msgid "Click to show the palettes of blocks and drag blocks from the palettes onto the canvas to use them." +msgstr "" + +#: js/turtledefs.js:620 +msgid "Cartesian/Polar" +msgstr "" + +#: js/turtledefs.js:621 +msgid "Show or hide a coordinate grid." +msgstr "" + +#: js/turtledefs.js:626 +#: js/turtles.js:902 +msgid "Clean" +msgstr "" + +#: js/turtledefs.js:627 +msgid "Clear the screen and return the mice to their initial positions." +msgstr "" + +#: js/turtledefs.js:632 +#: js/turtles.js:955 +msgid "Collapse" +msgstr "" + +#: js/turtledefs.js:633 +msgid "Collapse the graphics window." +msgstr "" + +#: js/turtledefs.js:638 +#: js/activity.js:5684 +msgid "Home" +msgstr "" + +#: js/turtledefs.js:639 +msgid "Return all blocks to the center of the screen." +msgstr "" + +#: js/turtledefs.js:644 +msgid "Show/hide blocks" +msgstr "" + +#: js/turtledefs.js:645 +msgid "Hide or show the blocks and the palettes." +msgstr "" + +#: js/turtledefs.js:650 +msgid "Expand/collapse collapsable blocks" +msgstr "" + +#: js/turtledefs.js:651 +msgid "Expand or collapse start and action stacks." +msgstr "" + +#: js/turtledefs.js:658 +#: js/activity.js:5704 +msgid "Decrease block size" +msgstr "" + +#: js/turtledefs.js:659 +msgid "Decrease the size of the blocks." +msgstr "" + +#: js/turtledefs.js:664 +#: js/activity.js:5710 +msgid "Increase block size" +msgstr "" + +#: js/turtledefs.js:665 +msgid "Increase the size of the blocks." msgstr "" -#: js/palette.js:571 -msgid "grid" +#: js/turtledefs.js:670 +msgid "Expand/collapse option toolbar" msgstr "" -#: js/palette.js:577 -#: js/block.js:1540 -#: js/block.js:2343 -#: js/turtledefs.js:126 -#: js/turtledefs.js:228 -#: js/lilypond.js:740 -#: js/lilypond.js:905 -#: js/lilypond.js:949 -#: js/DrumBlocks.js:486 -#: js/RhythmBlocks.js:766 -#: js/VolumeBlocks.js:502 -#: js/phrasemaker.js:823 -msgid "drum" +#: js/turtledefs.js:671 +msgid "Click this button to expand or collapse the auxillary toolbar." msgstr "" -#: js/palette.js:580 -msgid "effect" +#: js/turtledefs.js:676 +msgid "Run slow" msgstr "" -#: js/palette.js:586 -msgid "sargam" +#: js/turtledefs.js:677 +msgid "Click to run the project in slow mode." msgstr "" -#: js/palette.js:589 -#: js/activity.js:1833 -#: js/RhythmBlocks.js:923 -#: js/PitchBlocks.js:442 -#: js/PitchBlocks.js:1748 -#.TRANS: a numeric mapping of the notes in an octave based on the musical mode -msgid "scale degree" +#: js/turtledefs.js:683 +msgid "Click to run the project step by step." msgstr "" -#: js/palette.js:592 -#: js/activity.js:1860 -msgid "mode name" +#: js/turtledefs.js:690 +msgid "Display statistics about your Music project." msgstr "" -#: js/palette.js:595 -#: js/activity.js:1839 -msgid "invert mode" +#: js/turtledefs.js:697 +msgid "Delete a selected plugin." msgstr "" -#: js/palette.js:598 -#: js/activity.js:1836 -msgid "voice name" +#: js/turtledefs.js:704 +msgid "Enable scrolling" msgstr "" -#: js/palette.js:601 -#: js/PitchBlocks.js:1181 -msgid "custom pitch" +#: js/turtledefs.js:705 +msgid "You can scroll the blocks on the canvas." msgstr "" -#: js/palette.js:605 -#: js/block.js:1456 -#: js/block.js:1575 -#: js/WidgetBlocks.js:218 -#: js/IntervalsBlocks.js:63 -msgid "temperament" +#: js/turtledefs.js:714 +msgid "Wrap Turtle" msgstr "" -#: js/palette.js:609 -msgid "accidental" +#: js/turtledefs.js:715 +msgid "Turn Turtle wrapping On or Off." msgstr "" -#: js/palette.js:615 -#: js/activity.js:1866 -msgid "interval name" +#: js/turtledefs.js:725 +msgid "Restore blocks from the trash." msgstr "" -#: js/palette.js:633 -#: js/PitchBlocks.js:405 -msgid "pitch converter" +#: js/turtledefs.js:732 +msgid "Switch mode" msgstr "" -#: js/rubrics.js:522 -#: js/turtledefs.js:119 -#: js/turtledefs.js:221 -#: js/RhythmBlockPaletteBlocks.js:52 -#: js/RhythmBlockPaletteBlocks.js:233 -#: js/ProgramBlocks.js:745 -#: js/rhythmruler.js:1670 -#: js/rhythmruler.js:1677 -#: js/rhythmruler.js:1745 -#: js/rhythmruler.js:1752 -#: js/rhythmruler.js:1830 -#.TRANS: an arrangement of notes based on duration -msgid "rhythm" +#: js/turtledefs.js:733 +msgid "Switch between beginner and advance modes." msgstr "" -#: js/rubrics.js:523 -#: js/block.js:2339 -#: js/turtledefs.js:121 -#: js/turtledefs.js:223 -#: js/IntervalsBlocks.js:63 -#: js/PitchBlocks.js:1801 -#: js/PitchBlocks.js:1814 -#: js/SensorsBlocks.js:178 -#: js/phrasemaker.js:821 -#: js/musickeyboard.js:1653 -#.TRANS: pitch number -#.TRANS: we specify pitch in terms of a name and an octave. The name can be CDEFGAB or Do Re Mi Fa Sol La Ti. Octave is a number between 1 and 8. -msgid "pitch" +#: js/turtledefs.js:739 +msgid "Select your language preference." msgstr "" -#: js/rubrics.js:524 -#: js/turtledefs.js:123 -#: js/turtledefs.js:225 -msgid "tone" +#: js/turtledefs.js:745 +msgid "Keyboard shortcuts" msgstr "" -#: js/rubrics.js:525 -#: js/lilypond.js:613 -#: js/lilypond.js:912 -#: js/lilypond.js:918 -#: js/lilypond.js:956 -msgid "mouse" +#: js/turtledefs.js:746 +msgid "You can type d to create a do block and r to create a re block etc." msgstr "" -#: js/rubrics.js:526 -#: js/turtledefs.js:132 -#: js/turtledefs.js:234 -#: js/phrasemaker.js:825 -msgid "pen" +#: js/turtledefs.js:753 +msgid "Show these messages." msgstr "" -#: js/rubrics.js:527 -#: js/turtledefs.js:133 -#: js/turtledefs.js:235 -#: js/NumberBlocks.js:905 -#: js/PitchBlocks.js:1679 -#: js/PitchBlocks.js:1720 -msgid "number" +#: js/turtledefs.js:759 +#: js/turtledefs.js:790 +#: js/widgets/help.js:335 +msgid "Guide" msgstr "" -#: js/rubrics.js:528 -#: js/turtledefs.js:127 -#: js/turtledefs.js:229 -msgid "flow" +#: js/turtledefs.js:760 +msgid "A detailed guide to Turtle Blocks is available." msgstr "" -#: js/rubrics.js:530 -#: js/turtledefs.js:136 -#: js/turtledefs.js:238 -msgid "sensors" +#: js/turtledefs.js:764 +msgid "Turtle Blocks Guide" msgstr "" -#: js/rubrics.js:531 -#: js/turtledefs.js:135 -#: js/turtledefs.js:237 -#: js/MediaBlocks.js:930 -msgid "media" +#: js/turtledefs.js:767 +#: js/turtledefs.js:798 +#: js/widgets/help.js:336 +msgid "About" msgstr "" -#: js/rubrics.js:532 -msgid "mice" +#: js/turtledefs.js:768 +msgid "Turtle Blocks is an open source collection of tools for exploring musical concepts." msgstr "" -#: js/macros.js:711 -#: js/musicutils.js:783 -#: js/synthutils.js:181 -#.TRANS: animal sound effect -msgid "duck" +#: js/turtledefs.js:770 +msgid "A full list of contributors can be found in the Turtle Blocks GitHub repository." msgstr "" -#: js/toolbar.js:46 -#: js/toolbar.js:107 -msgid "About Music Blocks" +#: js/turtledefs.js:772 +msgid "Turtle Blocks is licensed under the AGPL." msgstr "" -#: js/toolbar.js:47 -#: js/toolbar.js:108 -#: js/toolbar.js:172 -#: js/toolbar.js:228 -#: js/turtledefs.js:445 -#: js/turtledefs.js:482 -#: js/activity.js:2281 -#: js/activity.js:2289 -#: js/activity.js:2520 -#: js/modewidget.js:77 -#: js/pitchstaircase.js:121 -#: js/phrasemaker.js:302 -#: js/phrasemaker.js:312 -#: js/phrasemaker.js:314 -#: js/phrasemaker.js:3901 -#: js/phrasemaker.js:4061 -#: js/phrasemaker.js:4066 -#: js/phrasemaker.js:4068 -#: js/phrasemaker.js:4183 -#: js/pitchdrummatrix.js:81 -#: js/pitchdrummatrix.js:574 -#: js/pitchdrummatrix.js:576 -#: js/pitchdrummatrix.js:628 -#: js/pitchdrummatrix.js:630 -#: js/pitchdrummatrix.js:645 -#: js/pitchdrummatrix.js:647 -#: js/pitchdrummatrix.js:674 -#: js/pitchdrummatrix.js:676 -#: js/temperament.js:477 -#: js/temperament.js:480 -#: js/temperament.js:540 -#: js/temperament.js:542 -#: js/temperament.js:1835 -#: js/temperament.js:1837 -#: js/temperament.js:1986 -#: js/temperament.js:1988 -#: js/musickeyboard.js:522 -#: js/musickeyboard.js:682 -#: js/musickeyboard.js:684 -#: js/musickeyboard.js:756 -#: js/musickeyboard.js:758 -#: js/rhythmruler.js:298 -#: js/rhythmruler.js:300 -#: js/rhythmruler.js:314 -#: js/rhythmruler.js:316 -#: js/sampler.js:96 -#: js/sampler.js:98 -#: js/sampler.js:229 -#: js/sampler.js:235 -#: js/sampler.js:237 -#: js/tempo.js:84 -#: js/tempo.js:86 -#: js/timbre.js:432 -#: js/timbre.js:434 -#: js/timbre.js:465 -#: js/timbre.js:467 -#: js/timbre.js:746 -#: js/meterwidget.js:80 -#: js/arpeggio.js:90 -#: js/arpeggio.js:547 -#: js/arpeggio.js:549 -#: js/arpeggio.js:644 -#: js/arpeggio.js:646 -msgid "Play" +#: js/turtledefs.js:780 +msgid "Turtle Blocks GitHub repository" msgstr "" -#: js/toolbar.js:48 -#: js/toolbar.js:109 -#: js/toolbar.js:173 -#: js/toolbar.js:229 -#: js/turtledefs.js:451 -#: js/turtledefs.js:488 -#: js/activity.js:2297 -#: js/modewidget.js:99 -#: js/modewidget.js:101 -#: js/phrasemaker.js:323 -#: js/phrasemaker.js:325 -#: js/pitchdrummatrix.js:561 -#: js/pitchdrummatrix.js:563 -#: js/temperament.js:1820 -#: js/temperament.js:1822 -#: js/meterwidget.js:101 -#: js/meterwidget.js:103 -#: js/arpeggio.js:534 -#: js/arpeggio.js:536 -msgid "Stop" +#: js/turtledefs.js:783 +#: js/turtledefs.js:814 +#: js/widgets/help.js:337 +#: js/widgets/help.js:359 +msgid "Congratulations." msgstr "" -#: js/toolbar.js:49 -#: js/toolbar.js:110 -#: js/toolbar.js:174 -#: js/toolbar.js:230 -#: js/turtledefs.js:498 -msgid "Record" +#: js/turtledefs.js:784 +msgid "You have finished the tour. Please enjoy Turtle Blocks!" msgstr "" -#: js/toolbar.js:50 -#: js/toolbar.js:51 -msgid "Full screen" +#: js/turtledefs.js:791 +msgid "A detailed guide to Music Blocks is available." msgstr "" -#: js/toolbar.js:52 -#: js/toolbar.js:112 -#: js/toolbar.js:177 -#: js/toolbar.js:232 -#: js/turtledefs.js:504 -msgid "Toggle Fullscreen" +#: js/turtledefs.js:799 +msgid "Music Blocks is an open source collection of tools for exploring musical concepts." msgstr "" -#: js/toolbar.js:53 -#: js/toolbar.js:113 -#: js/toolbar.js:178 -#: js/toolbar.js:233 -#: js/turtledefs.js:510 -#: js/StringHelper.js:33 -msgid "New project" +#: js/turtledefs.js:801 +msgid "A full list of contributors can be found in the Music Blocks GitHub repository." msgstr "" -#: js/toolbar.js:54 -#: js/toolbar.js:114 -#: js/toolbar.js:179 -#: js/toolbar.js:234 -#: js/turtledefs.js:516 -msgid "Load project from file" +#: js/turtledefs.js:803 +msgid "Music Blocks is licensed under the AGPL." msgstr "" -#: js/toolbar.js:55 -#: js/toolbar.js:115 -#: js/toolbar.js:116 -#: js/toolbar.js:180 -#: js/toolbar.js:235 -#: js/turtledefs.js:541 -#: js/turtledefs.js:550 -#: js/turtledefs.js:571 -msgid "Save project" +#: js/turtledefs.js:811 +msgid "Music Blocks GitHub repository" msgstr "" -#: js/toolbar.js:56 -#: js/toolbar.js:75 -#: js/toolbar.js:77 -#: js/toolbar.js:135 -#: js/toolbar.js:144 -#: js/toolbar.js:146 -#: js/toolbar.js:181 -#: js/toolbar.js:199 -#: js/toolbar.js:201 -#: js/toolbar.js:236 -#: js/toolbar.js:254 -#: js/toolbar.js:256 -msgid "Save project as HTML" +#: js/turtledefs.js:815 +msgid "You have finished the tour. Please enjoy Music Blocks!" msgstr "" -#: js/toolbar.js:57 -#: js/toolbar.js:117 -#: js/toolbar.js:182 -#: js/toolbar.js:237 -msgid "Find and share projects" +#: js/turtles.js:882 +msgid "Grid" msgstr "" -#: js/toolbar.js:58 -#: js/toolbar.js:118 -#: js/toolbar.js:183 -#: js/toolbar.js:238 -msgid "Offline. Sharing is unavailable" +#: js/turtles.js:1024 +msgid "Expand" msgstr "" -#: js/toolbar.js:59 -#: js/toolbar.js:119 -#: js/toolbar.js:184 -#: js/toolbar.js:239 -msgid "Auxiliary menu" +#: js/block-verbose.js:1616 +#: js/block-verbose.js:1735 +#: js/block.js:1580 +#: js/block.js:1699 +#: js/palette.js:605 +#: js/blocks/IntervalsBlocks.js:63 +#: js/blocks/WidgetBlocks.js:259 +msgid "temperament" msgstr "" -#: js/toolbar.js:61 -#: js/toolbar.js:121 -#: js/toolbar.js:186 -#: js/toolbar.js:241 -msgid "Run slowly" +#: js/block-verbose.js:1630 +#: js/block.js:1594 +msgid "matrix" +msgstr "" + +#: js/block-verbose.js:1637 +#: js/block.js:1601 +#: js/blocks/WidgetBlocks.js:1509 +#: plugins/rodi.rtp:324 +msgid "status" +msgstr "" + +#: js/block-verbose.js:1644 +#: js/block.js:1608 +msgid "drum mapper" +msgstr "" + +#: js/block-verbose.js:1651 +#: js/block.js:1615 +msgid "ruler" +msgstr "" + +#: js/block-verbose.js:1658 +#: js/block.js:1622 +#: js/blocks/WidgetBlocks.js:397 +#.TRANS: timbre is the character or quality of a musical sound +msgid "timbre" +msgstr "" + +#: js/block-verbose.js:1665 +#: js/block.js:1629 +msgid "stair" +msgstr "" + +#: js/block-verbose.js:1672 +#: js/block.js:1636 +#: js/blocks/WidgetBlocks.js:707 +#.TRANS: the speed at music is should be played. +msgid "tempo" +msgstr "" + +#: js/block-verbose.js:1679 +#: js/block-verbose.js:1742 +#: js/block.js:1643 +#: js/block.js:1706 +#: js/blocks/IntervalsBlocks.js:1464 +#.TRANS: mode, e.g., Major in C Major +msgid "mode" +msgstr "" + +#: js/block-verbose.js:1686 +#: js/block.js:1650 +msgid "slider" +msgstr "" + +#: js/block-verbose.js:1693 +#: js/block.js:1657 +#: js/blocks/SensorsBlocks.js:1001 +msgid "keyboard" msgstr "" -#: js/toolbar.js:62 -#: js/toolbar.js:122 -#: js/toolbar.js:187 -#: js/toolbar.js:242 -#: js/turtledefs.js:682 -msgid "Run step by step" +#: js/block-verbose.js:1707 +#: js/block.js:1671 +#: js/blocks/WidgetBlocks.js:1190 +#: js/blocks/WidgetBlocks.js:1228 +#.TRANS: widget for subdividing a measure into distinct rhythmic elements +msgid "rhythm maker" msgstr "" -#: js/toolbar.js:63 -#: js/toolbar.js:123 -#: js/toolbar.js:188 -#: js/toolbar.js:243 -#: js/turtledefs.js:689 -msgid "Display statistics" +#: js/block-verbose.js:1714 +#: js/block-verbose.js:2457 +#: js/block-verbose.js:2514 +#: js/block.js:1678 +#: js/block.js:2385 +#: js/block.js:2442 +#: js/blocks/MeterBlocks.js:1367 +#: js/blocks/OrnamentBlocks.js:220 +#: js/blocks/OrnamentBlocks.js:312 +#: js/blocks/RhythmBlocks.js:33 +#: js/blocks/RhythmBlocks.js:356 +#: js/blocks/RhythmBlocks.js:766 +#: js/blocks/RhythmBlocks.js:806 +#: js/blocks/RhythmBlockPaletteBlocks.js:70 +#: js/blocks/RhythmBlockPaletteBlocks.js:252 +#: js/blocks/RhythmBlockPaletteBlocks.js:485 +#: js/blocks/RhythmBlockPaletteBlocks.js:554 +#: js/blocks/RhythmBlockPaletteBlocks.js:605 +#: js/blocks/RhythmBlockPaletteBlocks.js:875 +#: js/turtleactions/DictActions.js:85 +#: js/widgets/phrasemaker.js:942 +#: js/widgets/phrasemaker.js:2656 +#: js/widgets/phrasemaker.js:2699 +#: js/widgets/phrasemaker.js:2810 +#.TRANS: the value (e.g., 1/4 note) of the note being played. +msgid "note value" msgstr "" -#: js/toolbar.js:64 -#: js/toolbar.js:124 -#: js/toolbar.js:189 -#: js/toolbar.js:244 -msgid "Load plugin" +#: js/block-verbose.js:1721 +#: js/block-verbose.js:2382 +#: js/block-verbose.js:2405 +#: js/block.js:1685 +#: js/block.js:2310 +#: js/block.js:2333 +#: js/blocks/IntervalsBlocks.js:1071 +#: js/blocks/OrnamentBlocks.js:312 +#.TRANS: calculate a relative step between notes based on semi-tones +msgid "scalar interval" msgstr "" -#: js/toolbar.js:65 -#: js/toolbar.js:125 -#: js/toolbar.js:190 -#: js/toolbar.js:245 -#: js/turtledefs.js:696 -msgid "Delete plugin" +#: js/block-verbose.js:1728 +#: js/block.js:1692 +#: js/blocks/RhythmBlocks.js:148 +msgid "milliseconds" msgstr "" -#: js/toolbar.js:66 -#: js/toolbar.js:126 -#: js/toolbar.js:191 -#: js/toolbar.js:246 -msgid "Enable horizontal scrolling" +#: js/block-verbose.js:2455 +#: js/block-verbose.js:2459 +#: js/block-verbose.js:2512 +#: js/block-verbose.js:2628 +#: js/block.js:2383 +#: js/block.js:2387 +#: js/block.js:2440 +#: js/block.js:2556 +#: js/blocks/RhythmBlocks.js:712 +#: js/blocks/ProgramBlocks.js:1273 +#: js/widgets/rhythmruler.js:1183 +#: js/widgets/rhythmruler.js:1329 +msgid "silence" msgstr "" -#: js/toolbar.js:67 -#: js/toolbar.js:127 -#: js/toolbar.js:192 -#: js/toolbar.js:247 -msgid "Disable horizontal scrolling" +#: js/block-verbose.js:2548 +#: js/block-verbose.js:3492 +#: js/block-verbose.js:3509 +#: js/activity.js:2718 +#: js/activity.js:2769 +#: js/block.js:2476 +#: js/block.js:3416 +#: js/block.js:3433 +#: js/utils/musicutils.js:3780 +#: js/utils/musicutils.js:5273 +#.TRANS: the note names must be separated by single spaces +#.TRANS: the note names must be separated by single spaces +#.TRANS: the note names must be separated by single spaces +msgid "ti la sol fa mi re do" msgstr "" -#: js/toolbar.js:68 -#: js/toolbar.js:128 -#: js/toolbar.js:193 -#: js/toolbar.js:248 -#: js/LocalCard.js:54 -#: js/StringHelper.js:71 -msgid "Merge with current project" +#: js/block-verbose.js:2616 +#: js/block.js:2544 +#.TRANS: scalar step +#.TRANS: scalar step +msgid "down" msgstr "" -#: js/toolbar.js:69 -#: js/toolbar.js:129 -msgid "Set Pitch Preview" +#: js/block-verbose.js:2617 +#: js/block.js:2545 +msgid "up" msgstr "" -#: js/toolbar.js:70 -#: js/toolbar.js:130 -#: js/toolbar.js:194 -#: js/toolbar.js:249 -msgid "Toggle JavaScript Editor" +#: js/block-verbose.js:3026 +#: js/block.js:2950 +msgid "Silence block cannot be removed." msgstr "" -#: js/toolbar.js:71 -#: js/toolbar.js:131 -#: js/toolbar.js:195 -#: js/toolbar.js:250 -#: js/turtledefs.js:724 -msgid "Restore" +#: js/block-verbose.js:3824 +#: js/block.js:3748 +#: js/blocks.js:2607 +#: js/blocks.js:3218 +#: js/palette.js:618 +#: js/blocks/BooleanBlocks.js:77 +#: js/blocks/BooleanBlocks.js:167 +#: js/blocks/BooleanBlocks.js:251 +#: js/blocks/BooleanBlocks.js:335 +#: js/blocks/BooleanBlocks.js:433 +#: js/blocks/BooleanBlocks.js:539 +#: js/blocks/BooleanBlocks.js:640 +#: js/blocks/BooleanBlocks.js:741 +#: js/blocks/BooleanBlocks.js:847 +#: js/blocks/BooleanBlocks.js:948 +#: js/blocks/BooleanBlocks.js:1033 +#: js/blocks/SensorsBlocks.js:910 +msgid "true" msgstr "" -#: js/toolbar.js:72 -#: js/toolbar.js:132 -#: js/toolbar.js:196 -#: js/toolbar.js:251 -msgid "Switch to beginner mode" +#: js/block-verbose.js:3824 +#: js/block.js:3748 +#: js/blocks.js:2609 +#: js/blocks.js:3220 +#: js/blocks/BooleanBlocks.js:79 +#: js/blocks/BooleanBlocks.js:169 +#: js/blocks/BooleanBlocks.js:253 +#: js/blocks/BooleanBlocks.js:337 +#: js/blocks/BooleanBlocks.js:435 +#: js/blocks/BooleanBlocks.js:541 +#: js/blocks/BooleanBlocks.js:642 +#: js/blocks/BooleanBlocks.js:743 +#: js/blocks/BooleanBlocks.js:849 +#: js/blocks/BooleanBlocks.js:950 +#: js/blocks/SensorsBlocks.js:912 +msgid "false" msgstr "" -#: js/toolbar.js:73 -#: js/toolbar.js:133 -#: js/toolbar.js:197 -#: js/toolbar.js:252 -msgid "Switch to advanced mode" +#: js/block-verbose.js:3835 +#: js/block-verbose.js:3848 +#: js/block.js:3759 +#: js/block.js:3772 +#: js/blocks/ExtrasBlocks.js:615 +msgid "Cartesian" msgstr "" -#: js/toolbar.js:74 -#: js/toolbar.js:134 -#: js/toolbar.js:143 -#: js/toolbar.js:198 -#: js/toolbar.js:253 -#: js/turtledefs.js:738 -msgid "Select language" +#: js/block-verbose.js:3836 +#: js/block-verbose.js:3849 +#: js/block.js:3760 +#: js/block.js:3773 +#: js/blocks/ExtrasBlocks.js:619 +msgid "polar" msgstr "" -#: js/toolbar.js:76 -#: js/toolbar.js:79 -#: js/toolbar.js:137 -#: js/turtledefs.js:579 -msgid "Save mouse artwork as PNG" +#: js/block-verbose.js:3837 +#: js/block-verbose.js:3850 +#: js/block.js:3761 +#: js/block.js:3774 +#: js/blocks/ExtrasBlocks.js:623 +msgid "Cartesian+polar" msgstr "" -#: js/toolbar.js:78 -#: js/toolbar.js:136 -#: js/turtledefs.js:575 -msgid "Save mouse artwork as SVG" +#: js/block-verbose.js:3838 +#: js/block-verbose.js:3857 +#: js/block.js:3762 +#: js/block.js:3781 +#: js/blocks/ExtrasBlocks.js:652 +msgid "none" msgstr "" -#: js/toolbar.js:80 -#: js/toolbar.js:138 -#: js/turtledefs.js:583 -msgid "Save music as WAV" +#: js/block-verbose.js:3851 +#: js/block.js:3775 +#: js/blocks/ExtrasBlocks.js:628 +msgid "treble" msgstr "" -#: js/toolbar.js:81 -#: js/toolbar.js:139 -#: js/turtledefs.js:587 -msgid "Save sheet music as ABC" +#: js/block-verbose.js:3852 +#: js/block.js:3776 +#: js/blocks/ExtrasBlocks.js:632 +msgid "grand staff" msgstr "" -#: js/toolbar.js:82 -#: js/toolbar.js:140 -#: js/turtledefs.js:591 -msgid "Save sheet music as Lilypond" +#: js/block-verbose.js:3853 +#: js/block.js:3777 +#: js/blocks/ExtrasBlocks.js:636 +msgid "mezzo-soprano" msgstr "" -#: js/toolbar.js:83 -msgid "Save sheet music as MusicXML" +#: js/block-verbose.js:3854 +#: js/block.js:3778 +#: js/blocks/ExtrasBlocks.js:640 +msgid "alto" msgstr "" -#: js/toolbar.js:84 -#: js/toolbar.js:141 -#: js/toolbar.js:149 -#: js/toolbar.js:204 -#: js/toolbar.js:259 -#: js/turtledefs.js:562 -#: js/turtledefs.js:595 -msgid "Save block artwork as SVG" +#: js/block-verbose.js:3855 +#: js/block.js:3779 +#: js/blocks/ExtrasBlocks.js:644 +msgid "tenor" msgstr "" -#: js/toolbar.js:85 -#: js/toolbar.js:142 -#: js/toolbar.js:150 -#: js/toolbar.js:205 -#: js/toolbar.js:260 -msgid "Confirm" +#: js/block-verbose.js:3856 +#: js/block.js:3780 +#: js/utils/musicutils.js:1115 +#: js/utils/synthutils.js:80 +#: js/blocks/ExtrasBlocks.js:648 +#.TRANS: musical instrument +msgid "bass" msgstr "" -#: js/toolbar.js:86 -#: js/toolbar.js:151 -#: js/toolbar.js:206 -#: js/toolbar.js:261 -msgid "English (United States)" +#: js/block-verbose.js:3901 +#: js/block.js:3825 +#: js/blocks.js:2600 +#: js/blocks.js:3211 +msgid "on2" msgstr "" -#: js/toolbar.js:87 -#: js/toolbar.js:152 -#: js/toolbar.js:207 -#: js/toolbar.js:262 -msgid "English (United Kingdom)" +#: js/block-verbose.js:3903 +#: js/block.js:3827 +#: js/blocks.js:2602 +#: js/blocks.js:3213 +msgid "off" msgstr "" -#: js/toolbar.js:88 -#: js/toolbar.js:153 -#: js/toolbar.js:208 -#: js/toolbar.js:263 -msgid "日本語" +#: js/block-verbose.js:4470 +#: js/block.js:4394 +msgid "Not a number" msgstr "" -#: js/toolbar.js:89 -msgid "한국어" +#: js/block-verbose.js:4477 +#: js/block.js:4401 +msgid "Octave value must be between 1 and 10." msgstr "" -#: js/toolbar.js:90 -#: js/toolbar.js:155 -#: js/toolbar.js:210 -#: js/toolbar.js:265 -msgid "español" +#: js/block-verbose.js:4485 +#: js/block.js:4409 +msgid "Numbers can have at most 10 digits." msgstr "" -#: js/toolbar.js:91 -#: js/toolbar.js:156 -#: js/toolbar.js:211 -#: js/toolbar.js:266 -msgid "português" +#: js/activity.js:390 +#: js/activity.js:395 +msgid "Search for blocks" msgstr "" -#: js/toolbar.js:92 -#: js/toolbar.js:157 -#: js/toolbar.js:212 -#: js/toolbar.js:267 -msgid "にほんご" +#: js/activity.js:1413 +msgid "Refresh your browser to change to advanced mode." msgstr "" -#: js/toolbar.js:93 -#: js/toolbar.js:158 -#: js/toolbar.js:213 -#: js/toolbar.js:268 -msgid "中文" +#: js/activity.js:1418 +msgid "Refresh your browser to change to beginner mode." msgstr "" -#: js/toolbar.js:94 -#: js/toolbar.js:159 -#: js/toolbar.js:214 -#: js/toolbar.js:269 -msgid "ภาษาไทย" +#: js/activity.js:1477 +msgid "Catching mice" msgstr "" -#: js/toolbar.js:95 -#: js/toolbar.js:160 -#: js/toolbar.js:215 -#: js/toolbar.js:270 -msgid "aymara" +#: js/activity.js:1478 +msgid "Cleaning the instruments" msgstr "" -#: js/toolbar.js:96 -#: js/toolbar.js:161 -#: js/toolbar.js:216 -#: js/toolbar.js:271 -msgid "quechua" +#: js/activity.js:1479 +msgid "Testing key pieces" msgstr "" -#: js/toolbar.js:97 -#: js/toolbar.js:162 -#: js/toolbar.js:217 -#: js/toolbar.js:272 -msgid "guarani" +#: js/activity.js:1480 +msgid "Sight-reading" msgstr "" -#: js/toolbar.js:98 -#: js/toolbar.js:163 -#: js/toolbar.js:218 -#: js/toolbar.js:273 -msgid "हिंदी" +#: js/activity.js:1481 +msgid "Combining math and music" msgstr "" -#: js/toolbar.js:99 -#: js/toolbar.js:165 -#: js/toolbar.js:219 -#: js/toolbar.js:275 -msgid "igbo" +#: js/activity.js:1482 +msgid "Generating more blocks" msgstr "" -#: js/toolbar.js:100 -#: js/toolbar.js:166 -#: js/toolbar.js:220 -#: js/toolbar.js:276 -msgid "عربى" +#: js/activity.js:1483 +msgid "Do Re Mi Fa Sol La Ti Do" msgstr "" -#: js/toolbar.js:101 -#: js/toolbar.js:164 -#: js/toolbar.js:221 -#: js/toolbar.js:274 -msgid "తెలుగు" +#: js/activity.js:1484 +msgid "Tuning string instruments" msgstr "" -#: js/toolbar.js:102 -#: js/toolbar.js:167 -#: js/toolbar.js:222 -#: js/toolbar.js:277 -msgid "עִברִית" +#: js/activity.js:1485 +msgid "Pressing random keys" msgstr "" -#: js/toolbar.js:111 -#: js/toolbar.js:175 -#: js/toolbar.js:176 -#: js/toolbar.js:231 -msgid "Full Screen" +#: js/activity.js:1663 +msgid "plugins will be removed upon restart." msgstr "" -#: js/toolbar.js:145 -#: js/toolbar.js:148 -#: js/toolbar.js:200 -#: js/toolbar.js:203 -#: js/toolbar.js:255 -#: js/toolbar.js:258 -#: js/turtledefs.js:558 -msgid "Save turtle artwork as PNG" +#: js/activity.js:1672 +msgid "show Cartesian" +msgstr "" + +#: js/activity.js:2211 +#: js/palette.js:589 +#: js/blocks/RhythmBlocks.js:923 +#: js/blocks/PitchBlocks.js:442 +#: js/blocks/PitchBlocks.js:1786 +#.TRANS: a numeric mapping of the notes in an octave based on the musical mode +msgid "scale degree" msgstr "" -#: js/toolbar.js:147 -#: js/toolbar.js:202 -#: js/toolbar.js:257 -#: js/turtledefs.js:554 -msgid "Save turtle artwork as SVG" +#: js/activity.js:2214 +#: js/palette.js:598 +msgid "voice name" msgstr "" -#: js/toolbar.js:154 -#: js/toolbar.js:209 -#: js/toolbar.js:264 -msgid "한국인" +#: js/activity.js:2217 +#: js/palette.js:595 +msgid "invert mode" msgstr "" -#: js/toolbar.js:171 -#: js/toolbar.js:227 -msgid "About Turtle Blocks" +#: js/activity.js:2220 +msgid "output tools" msgstr "" -#: js/toolbar.js:429 -#: js/toolbar.js:440 -msgid "Turtle Wrap Off" +#: js/activity.js:2223 +msgid "custom note" msgstr "" -#: js/toolbar.js:442 -msgid "Turtle Wrap On" +#: js/activity.js:2226 +msgid "accidental name" msgstr "" -#: js/block.js:1470 -msgid "matrix" +#: js/activity.js:2229 +#: js/blocks/PitchBlocks.js:855 +msgid "east indian solfege" msgstr "" -#: js/block.js:1477 -#: js/WidgetBlocks.js:1226 -#: plugins/rodi.rtp:324 -msgid "status" +#: js/activity.js:2232 +#: js/blocks/PitchBlocks.js:869 +msgid "note name" msgstr "" -#: js/block.js:1484 -msgid "drum mapper" +#: js/activity.js:2235 +#: js/blocks/IntervalsBlocks.js:94 +msgid "temperament name" msgstr "" -#: js/block.js:1491 -msgid "ruler" +#: js/activity.js:2238 +#: js/palette.js:592 +msgid "mode name" msgstr "" -#: js/block.js:1498 -#: js/WidgetBlocks.js:327 -#.TRANS: timbre is the character or quality of a musical sound -msgid "timbre" +#: js/activity.js:2241 +msgid "chord name" msgstr "" -#: js/block.js:1505 -msgid "stair" +#: js/activity.js:2244 +#: js/palette.js:615 +msgid "interval name" msgstr "" -#: js/block.js:1512 -#: js/WidgetBlocks.js:577 -#.TRANS: the speed at music is should be played. -msgid "tempo" +#: js/activity.js:2247 +msgid "filter type" msgstr "" -#: js/block.js:1519 -#: js/block.js:1582 -#: js/IntervalsBlocks.js:1268 -#.TRANS: mode, e.g., Major in C Major -msgid "mode" +#: js/activity.js:2250 +msgid "oscillator type" msgstr "" -#: js/block.js:1526 -msgid "slider" +#: js/activity.js:2253 +#: js/blocks.js:2479 +#: js/blocks.js:2487 +msgid "audio file" msgstr "" -#: js/block.js:1533 -#: js/SensorsBlocks.js:1001 -msgid "keyboard" +#: js/activity.js:2256 +#: js/blocks/DrumBlocks.js:32 +msgid "noise name" msgstr "" -#: js/block.js:1547 -#: js/WidgetBlocks.js:957 -#: js/WidgetBlocks.js:988 -#.TRANS: widget for subdividing a measure into distinct rhythmic elements -msgid "rhythm maker" +#: js/activity.js:2259 +#: js/blocks/DrumBlocks.js:75 +msgid "drum name" msgstr "" -#: js/block.js:1554 -#: js/block.js:2182 -#: js/block.js:2236 -#: js/RhythmBlockPaletteBlocks.js:70 -#: js/RhythmBlockPaletteBlocks.js:251 -#: js/RhythmBlockPaletteBlocks.js:484 -#: js/RhythmBlockPaletteBlocks.js:553 -#: js/RhythmBlockPaletteBlocks.js:604 -#: js/RhythmBlockPaletteBlocks.js:874 -#: js/RhythmBlocks.js:33 -#: js/RhythmBlocks.js:356 -#: js/RhythmBlocks.js:766 -#: js/RhythmBlocks.js:806 -#: js/OrnamentBlocks.js:220 -#: js/OrnamentBlocks.js:312 -#: js/MeterBlocks.js:1367 -#: js/DictActions.js:85 -#: js/phrasemaker.js:731 -#: js/phrasemaker.js:2393 -#: js/phrasemaker.js:2436 -#: js/phrasemaker.js:2534 -#.TRANS: the value (e.g., 1/4 note) of the note being played. -msgid "note value" +#: js/activity.js:2262 +#: js/blocks/DrumBlocks.js:119 +msgid "effects name" msgstr "" -#: js/block.js:1561 -#: js/block.js:2110 -#: js/block.js:2133 -#: js/IntervalsBlocks.js:875 -#: js/OrnamentBlocks.js:312 -#.TRANS: calculate a relative step between notes based on semi-tones -msgid "scalar interval" +#: js/activity.js:2265 +msgid "wrap mode" msgstr "" -#: js/block.js:1568 -#: js/RhythmBlocks.js:148 -msgid "milliseconds" +#: js/activity.js:2268 +msgid "load file" msgstr "" -#: js/block.js:2180 -#: js/block.js:2184 -#: js/block.js:2234 -#: js/block.js:2345 -#: js/ProgramBlocks.js:1273 -#: js/RhythmBlocks.js:712 -#: js/rhythmruler.js:834 -#: js/rhythmruler.js:961 -msgid "silence" +#: js/activity.js:2435 +#: js/activity.js:5851 +msgid "This block is deprecated." msgstr "" -#: js/block.js:2265 -#: js/block.js:3134 -#: js/block.js:3151 -#: js/activity.js:2336 -#: js/activity.js:2387 -#: js/musicutils.js:2932 -#: js/musicutils.js:4287 -#.TRANS: the note names must be separated by single spaces -#.TRANS: the note names must be separated by single spaces -msgid "ti la sol fa mi re do" +#: js/activity.js:2437 +#: js/activity.js:5853 +msgid "Block cannot be found." msgstr "" -#: js/block.js:2333 -#.TRANS: scalar step -msgid "down" +#: js/activity.js:2645 +msgid "Saving block artwork" msgstr "" -#: js/block.js:2334 -msgid "up" +#: js/activity.js:2656 +msgid "Erase" msgstr "" -#: js/block.js:3477 -#: js/block.js:3490 -#: js/ExtrasBlocks.js:612 -msgid "Cartesian" +#: js/activity.js:2683 +#: js/activity.js:2705 +msgid "Paste" msgstr "" -#: js/block.js:3478 -#: js/block.js:3491 -#: js/ExtrasBlocks.js:616 -msgid "polar" +#: js/activity.js:2687 +msgid "Save block help" msgstr "" -#: js/block.js:3479 -#: js/block.js:3492 -#: js/ExtrasBlocks.js:620 -msgid "Cartesian+polar" +#: js/activity.js:2772 +msgid "Jumping to the bottom of the page." msgstr "" -#: js/block.js:3480 -#: js/block.js:3499 -#: js/ExtrasBlocks.js:649 -msgid "none" +#: js/activity.js:2778 +msgid "Scrolling up." msgstr "" -#: js/block.js:3493 -#: js/ExtrasBlocks.js:625 -msgid "treble" +#: js/activity.js:2783 +msgid "Scrolling down." msgstr "" -#: js/block.js:3494 -#: js/ExtrasBlocks.js:629 -msgid "grand staff" +#: js/activity.js:2788 +msgid "Extracting block" msgstr "" -#: js/block.js:3495 -#: js/ExtrasBlocks.js:633 -msgid "mezzo-soprano" +#: js/activity.js:2796 +msgid "Moving block up." msgstr "" -#: js/block.js:3496 -#: js/ExtrasBlocks.js:637 -msgid "alto" +#: js/activity.js:2817 +msgid "Moving block down." msgstr "" -#: js/block.js:3497 -#: js/ExtrasBlocks.js:641 -msgid "tenor" +#: js/activity.js:2838 +msgid "Moving block left." msgstr "" -#: js/block.js:3498 -#: js/ExtrasBlocks.js:645 -#: js/musicutils.js:736 -#: js/synthutils.js:64 -#.TRANS: musical instrument -msgid "bass" +#: js/activity.js:2855 +msgid "Moving block right." msgstr "" -#: js/block.js:4075 -msgid "Not a number" +#: js/activity.js:2870 +msgid "Jump to home position." msgstr "" -#: js/block.js:4082 -msgid "Octave value must be between 1 and 10." +#: js/activity.js:2897 +msgid "Hide blocks" msgstr "" -#: js/block.js:4090 -msgid "Numbers can have at most 10 digits." +#: js/activity.js:4500 +msgid "Click the run button to run the project." msgstr "" -#: js/notation.js:353 -msgid "Lilypond cannot process pickup of " +#: js/activity.js:5692 +msgid "Show/hide block" msgstr "" -#: js/turtledefs.js:40 -#.TRANS: put the URL to the guide here, e.g., https://github.com/sugarlabs/turtleblocksjs/tree/master/guide/README.md -msgid "guide url" +#: js/activity.js:5698 +msgid "Expand/collapse blocks" msgstr "" -#: js/turtledefs.js:85 -#: js/turtledefs.js:437 -msgid "Turtle Blocks is a Logo-inspired turtle that draws colorful pictures with snap-together visual-programming blocks." +#: js/activity.js:5976 +msgid "Could not parse JSON input." msgstr "" -#: js/turtledefs.js:118 -#: js/turtledefs.js:220 -msgid "search" +#: js/activity.js:6475 +#: js/activity.js:6580 +#: js/activity.js:6631 +msgid "Cannot load project from the file. Please check the file type." msgstr "" -#: js/turtledefs.js:120 -#: js/turtledefs.js:222 -#: js/WidgetBlocks.js:437 -#: js/MeterBlocks.js:1343 -#.TRANS: musical meter (time signature), e.g., 4:4 -msgid "meter" +#: js/activity.js:6917 +msgid "Invalid parameters" msgstr "" -#: js/turtledefs.js:122 -#: js/turtledefs.js:224 -msgid "intervals" +#: js/blocks.js:1212 +#: js/blocks.js:3444 +#: js/blocks.js:3834 +#: js/blocks.js:3865 +#: js/blocks.js:3914 +#: js/blocks.js:3949 +#: js/blocks.js:6586 +#: js/palette.js:509 +#: js/palette.js:638 +#: js/palette.js:1105 +#: js/blocks/BoxesBlocks.js:282 +#: js/blocks/BoxesBlocks.js:285 +#: js/blocks/BoxesBlocks.js:405 +#: js/blocks/BoxesBlocks.js:594 +msgid "box" msgstr "" -#: js/turtledefs.js:124 -#: js/turtledefs.js:226 -msgid "ornament" +#: js/blocks.js:1713 +msgid "Consider breaking this stack into parts." msgstr "" -#: js/turtledefs.js:125 -#: js/turtledefs.js:227 -#: js/VolumeBlocks.js:362 -#: js/VolumeBlocks.js:502 -#: js/VolumeBlocks.js:545 -msgid "volume" +#: js/blocks.js:2472 +#: js/palette.js:653 +#: js/blocks/MediaBlocks.js:602 +msgid "open file" msgstr "" -#: js/turtledefs.js:129 -#: js/turtledefs.js:231 -msgid "boxes" +#: js/blocks.js:3247 +#: js/palette.js:574 +#: js/blocks/MediaBlocks.js:892 +#: js/blocks/MediaBlocks.js:963 +msgid "text" msgstr "" -#: js/turtledefs.js:130 -#: js/turtledefs.js:232 -msgid "widgets" +#: js/blocks.js:3443 +#: js/palette.js:641 +#: js/palette.js:642 +#: js/blocks/BoxesBlocks.js:514 +msgid "store in box" msgstr "" -#: js/turtledefs.js:131 -#: js/turtledefs.js:233 -#: js/phrasemaker.js:824 -msgid "graphics" +#: js/blocks.js:3448 +#: js/blocks.js:3888 +#: js/blocks.js:3923 +#: js/blocks.js:3958 +#: js/blocks.js:5862 +#: js/blocks.js:5883 +#: js/blocks/BoxesBlocks.js:772 +msgid "box1" msgstr "" -#: js/turtledefs.js:134 -#: js/turtledefs.js:236 -msgid "boolean" +#: js/blocks.js:3450 +#: js/blocks.js:3890 +#: js/blocks.js:3925 +#: js/blocks.js:3960 +#: js/blocks.js:5864 +#: js/blocks.js:5885 +#: js/blocks/BoxesBlocks.js:663 +msgid "box2" msgstr "" -#: js/turtledefs.js:137 -#: js/turtledefs.js:239 -#: js/HeapBlocks.js:59 -#: js/status.js:147 -msgid "heap" +#: js/blocks.js:4122 +#: js/palette.js:639 +#: js/palette.js:644 +#: js/palette.js:1041 +#: js/blocks/BoxesBlocks.js:591 +msgid "store in" msgstr "" -#: js/turtledefs.js:138 -#: js/turtledefs.js:240 -#: js/ProgramBlocks.js:495 -#: js/DictBlocks.js:142 -msgid "dictionary" +#: js/blocks.js:4122 +#: js/blocks/BoxesBlocks.js:595 +#: js/blocks/DictBlocks.js:215 +#: js/blocks/DictBlocks.js:289 +#: js/blocks/EnsembleBlocks.js:391 +#: js/blocks/EnsembleBlocks.js:402 +#: js/blocks/MediaBlocks.js:746 +#: js/blocks/PitchBlocks.js:656 +#: js/blocks/PitchBlocks.js:934 +#: js/blocks/PitchBlocks.js:1866 +#: js/blocks/ProgramBlocks.js:390 +#: js/blocks/ProgramBlocks.js:495 +#: js/blocks/ProgramBlocks.js:658 +#: js/blocks/ToneBlocks.js:1025 +msgid "name" msgstr "" -#: js/turtledefs.js:139 -#: js/turtledefs.js:241 -msgid "ensemble" +#: js/blocks.js:4122 +#: js/blocks/BoxesBlocks.js:75 +#: js/blocks/BoxesBlocks.js:595 +#: js/blocks/DictBlocks.js:289 +#: js/blocks/DictBlocks.js:430 +#: js/blocks/HeapBlocks.js:544 +#: js/blocks/RhythmBlocks.js:1130 +msgid "value" msgstr "" -#: js/turtledefs.js:140 -#: js/turtledefs.js:242 -msgid "extras" +#: js/blocks.js:4465 +msgid "Forever loop detected inside a note value block. Unexpected things may happen." msgstr "" -#: js/turtledefs.js:142 -#: js/turtledefs.js:244 -#.TRANS: program as in computer program -#.TRANS: program as in computer program -msgid "program" +#: js/blocks.js:4988 +msgid "There is no block selected." msgstr "" -#: js/turtledefs.js:143 -#: js/turtledefs.js:245 -msgid "my blocks" +#: js/blocks.js:5091 +#: js/blocks/MediaBlocks.js:888 +msgid "show" msgstr "" -#: js/turtledefs.js:185 -#: js/turtledefs.js:281 -msgid "artwork" +#: js/blocks.js:5094 +#: js/blocks/MediaBlocks.js:803 +#.TRANS: Avatar is the image used to determine the appearance of the mouse. +msgid "avatar" msgstr "" -#: js/turtledefs.js:185 -#: js/turtledefs.js:281 -msgid "logic" +#: js/blocks.js:5097 +#: js/blocks/ToneBlocks.js:1010 +#: js/widgets/sampler.js:975 +#.TRANS: The sound sample that the user uploads. +msgid "sample" msgstr "" -#: js/turtledefs.js:185 -#: js/turtledefs.js:281 -msgid "music" +#: js/lilypond.js:606 +msgid "brown rat" msgstr "" -#: js/turtledefs.js:187 -#: js/turtledefs.js:463 -msgid "Music Blocks is a collection of tools for exploring fundamental musical concepts in a fun way." +#: js/lilypond.js:607 +msgid "mole" msgstr "" -#: js/turtledefs.js:436 -msgid "Welcome to Turtle Blocks" +#: js/lilypond.js:608 +msgid "chipmunk" msgstr "" -#: js/turtledefs.js:438 -#: js/turtledefs.js:465 -#: js/turtledefs.js:774 -#: js/turtledefs.js:805 -msgid "The current version is" +#: js/lilypond.js:609 +msgid "red squirrel" msgstr "" -#: js/turtledefs.js:446 -#: js/turtledefs.js:483 -msgid "Click the run button to run the project in fast mode." +#: js/lilypond.js:610 +msgid "guinea pig" msgstr "" -#: js/turtledefs.js:452 -msgid "Stop the turtle." +#: js/lilypond.js:611 +msgid "capybara" msgstr "" -#: js/turtledefs.js:454 -#: js/turtledefs.js:491 -msgid "You can also type Alt-S to stop." +#: js/lilypond.js:612 +msgid "coypu" msgstr "" -#: js/turtledefs.js:462 -#: js/help.js:333 -msgid "Welcome to Music Blocks" +#: js/lilypond.js:613 +msgid "black rat" msgstr "" -#: js/turtledefs.js:472 -#: js/help.js:334 -msgid "Meet Mr. Mouse!" +#: js/lilypond.js:614 +msgid "grey squirrel" msgstr "" -#: js/turtledefs.js:473 -msgid "Mr Mouse is our Music Blocks conductor." +#: js/lilypond.js:615 +msgid "flying squirrel" msgstr "" -#: js/turtledefs.js:475 -msgid "Mr Mouse encourages you to explore Music Blocks." +#: js/lilypond.js:616 +msgid "bat" msgstr "" -#: js/turtledefs.js:477 -msgid "Let us start our tour!" +#: js/lilypond.js:749 +#: js/lilypond.js:913 +#: js/lilypond.js:951 +#: js/blocks/ActionBlocks.js:1256 +#: js/blocks/ExtrasBlocks.js:556 +msgid "start drum" msgstr "" -#: js/turtledefs.js:489 -msgid "Stop the music (and the mice)." +#: js/logo.js:61 +msgid "Not a valid pitch name" msgstr "" -#: js/turtledefs.js:499 -msgid "Record your project as video." +#: js/logo.js:507 +#: js/blocks/ProgramBlocks.js:258 +#: js/blocks/ProgramBlocks.js:427 +msgid "You must select a file." msgstr "" -#: js/turtledefs.js:505 -msgid "Toggle Fullscreen mode." +#: js/logo.js:1696 +msgid "Playback is ready." msgstr "" -#: js/turtledefs.js:511 -msgid "Initialize a new project." +#: js/macros.js:711 +#: js/utils/musicutils.js:1162 +#: js/utils/synthutils.js:202 +#.TRANS: animal sound effect +msgid "duck" msgstr "" - -#: js/turtledefs.js:517 -msgid "You can also load projects from the file system." + +#: js/notation.js:353 +msgid "Lilypond cannot process pickup of " msgstr "" -#: js/turtledefs.js:522 -#: js/StringHelper.js:46 -msgid "Delete" +#: js/palette.js:571 +msgid "grid" msgstr "" -#: js/turtledefs.js:523 -msgid "To delete a block, just right-click on it, then you will be able to see the delete option" +#: js/palette.js:580 +msgid "effect" msgstr "" -#: js/turtledefs.js:528 -#: js/activity.js:2270 -#: js/LocalCard.js:31 -msgid "Copy" +#: js/palette.js:586 +msgid "sargam" msgstr "" -#: js/turtledefs.js:529 -msgid "To copy a block, just right-click on it, then you will be able to see the copy option" +#: js/palette.js:601 +#: js/blocks/PitchBlocks.js:1209 +msgid "custom pitch" msgstr "" -#: js/turtledefs.js:535 -msgid "To extract a block, just right-click on it, then you will be able to see the extract option" +#: js/palette.js:609 +msgid "accidental" msgstr "" -#: js/turtledefs.js:542 -#: js/turtledefs.js:552 -#: js/turtledefs.js:573 -msgid "Save your project to a file." +#: js/palette.js:633 +#: js/blocks/PitchBlocks.js:405 +msgid "pitch converter" msgstr "" -#: js/turtledefs.js:549 -#: js/turtledefs.js:570 -msgid "save" +#: js/piemenus.js:200 +#: js/utils/musicutils.js:1187 +#: js/utils/musicutils.js:1207 +#: js/widgets/musickeyboard.js:2341 +#: js/widgets/phrasemaker.js:1908 +#: js/widgets/sampler.js:810 +#.TRANS: double sharp is a music term related to pitch +msgid "double sharp" msgstr "" -#: js/turtledefs.js:556 -#: js/turtledefs.js:577 -msgid "Save graphics from your project to as SVG." +#: js/piemenus.js:201 +#: js/utils/musicutils.js:1185 +#: js/utils/musicutils.js:1208 +#: js/blocks/PitchBlocks.js:1539 +#: js/turtleactions/PitchActions.js:323 +#: js/widgets/musickeyboard.js:2342 +#: js/widgets/phrasemaker.js:1909 +#: js/widgets/sampler.js:811 +#.TRANS: sharp is a music term related to pitch +#.TRANS: sharp is a half-step up in pitch +msgid "sharp" msgstr "" -#: js/turtledefs.js:560 -#: js/turtledefs.js:581 -msgid "Save graphics from your project as PNG." +#: js/piemenus.js:202 +#: js/utils/musicutils.js:1183 +#: js/utils/musicutils.js:1209 +#: js/widgets/musickeyboard.js:2343 +#: js/widgets/phrasemaker.js:1910 +#: js/widgets/sampler.js:812 +#.TRANS: natural is a music term related to pitch +msgid "natural" msgstr "" -#: js/turtledefs.js:564 -#: js/turtledefs.js:597 -msgid "Save block artwork as an SVG file." +#: js/piemenus.js:203 +#: js/utils/musicutils.js:1181 +#: js/utils/musicutils.js:1210 +#: js/blocks/PitchBlocks.js:1498 +#: js/turtleactions/PitchActions.js:326 +#: js/widgets/musickeyboard.js:2344 +#: js/widgets/phrasemaker.js:1911 +#: js/widgets/sampler.js:813 +#.TRANS: flat is a music term related to pitch +#.TRANS: flat is a half-step down in pitch +msgid "flat" msgstr "" -#: js/turtledefs.js:585 -msgid "Save audio from your project as WAV." +#: js/piemenus.js:204 +#: js/utils/musicutils.js:1179 +#: js/utils/musicutils.js:1211 +#: js/widgets/musickeyboard.js:2345 +#: js/widgets/phrasemaker.js:1912 +#: js/widgets/sampler.js:814 +#.TRANS: double flat is a music term related to pitch +msgid "double flat" msgstr "" -#: js/turtledefs.js:589 -msgid "Save your project to as an ABC file." +#: js/piemenus.js:2864 +#: js/utils/musicutils.js:1006 +#: js/blocks/PitchBlocks.js:1385 +#.TRANS: unison is a music term related to intervals +#.TRANS: unison means the note is the same as the current note +msgid "unison" msgstr "" -#: js/turtledefs.js:593 -msgid "Save your project to as a Lilypond file." +#: js/piemenus.js:3018 +#: js/piemenus.js:3091 +#: js/utils/musicutils.js:1014 +#: js/utils/musicutils.js:1189 +#: js/utils/musicutils.js:1326 +#.TRANS: major is a music term related to intervals and mode +msgid "major" msgstr "" -#: js/turtledefs.js:604 -msgid "Load samples from server" +#: js/piemenus.js:3018 +#: js/piemenus.js:3091 +#: js/utils/musicutils.js:1032 +#.TRANS: modal scale for music +msgid "ionian" msgstr "" -#: js/turtledefs.js:605 -msgid "This button opens a viewer for loading example projects." +#: js/piemenus.js:3020 +#: js/piemenus.js:3095 +#: js/utils/musicutils.js:1012 +#: js/utils/musicutils.js:1190 +#: js/utils/musicutils.js:1323 +#.TRANS: minor is a music term related to intervals and mode +msgid "minor" msgstr "" -#: js/turtledefs.js:611 -msgid "Palette buttons" +#: js/piemenus.js:3020 +#: js/piemenus.js:3095 +#: js/utils/musicutils.js:1042 +#.TRANS: modal scale for music +msgid "aeolian" msgstr "" -#: js/turtledefs.js:612 -msgid "This toolbar contains the palette buttons including Rhythm Pitch Tone Action and more." +#: js/piemenus.js:3410 +msgid "Duplicate" msgstr "" -#: js/turtledefs.js:614 -msgid "Click to show the palettes of blocks and drag blocks from the palettes onto the canvas to use them." +#: js/piemenus.js:3412 +msgid "Move to trash" msgstr "" -#: js/turtledefs.js:620 -msgid "Cartesian/Polar" +#: js/piemenus.js:3413 +#: js/widgets/timbre.js:968 +#: planet/js/StringHelper.js:69 +msgid "Close" msgstr "" -#: js/turtledefs.js:621 -msgid "Show or hide a coordinate grid." +#: js/piemenus.js:3419 +msgid "Save stack" msgstr "" -#: js/turtledefs.js:627 -msgid "Clear the screen and return the mice to their initial positions." +#: js/piemenus.js:3449 +msgid "In order to copy a sample, you must reload the widget, import the sample again, and export it." msgstr "" -#: js/turtledefs.js:633 -msgid "Collapse the graphics window." +#: js/piemenus.js:3812 +msgid "You have chosen key " msgstr "" -#: js/turtledefs.js:638 -#: js/activity.js:4256 -#: js/activity.js:4256 -msgid "Home" +#: js/piemenus.js:3816 +msgid " for your pitch preview." msgstr "" -#: js/turtledefs.js:639 -msgid "Return all blocks to the center of the screen." +#: js/turtle-singer.js:1363 +#.TRANS: partials are weighted components in a harmonic series +msgid "You must have at least one Partial block inside of a Weighted-partial block" msgstr "" -#: js/turtledefs.js:644 -msgid "Show/hide blocks" +#: js/turtle-singer.js:2077 +msgid "synth cannot play chords." msgstr "" -#: js/turtledefs.js:645 -msgid "Hide or show the blocks and the palettes." +#: js/utils/musicutils.js:505 +#: js/utils/musicutils.js:645 +#: js/widgets/pitchdrummatrix.js:228 +#: js/widgets/musickeyboard.js:2885 +msgid "rest" msgstr "" -#: js/turtledefs.js:650 -msgid "Expand/collapse collapsable blocks" +#: js/utils/musicutils.js:689 +msgid "Perfect unison" msgstr "" -#: js/turtledefs.js:651 -msgid "Expand or collapse start and action stacks." +#: js/utils/musicutils.js:689 +msgid "Diminished second" msgstr "" -#: js/turtledefs.js:658 -#: js/activity.js:4265 -msgid "Decrease block size" +#: js/utils/musicutils.js:690 +msgid "Minor second" msgstr "" -#: js/turtledefs.js:659 -msgid "Decrease the size of the blocks." +#: js/utils/musicutils.js:690 +msgid "Augmented unison" msgstr "" -#: js/turtledefs.js:664 -#: js/activity.js:4267 -msgid "Increase block size" +#: js/utils/musicutils.js:691 +msgid "Major second" msgstr "" -#: js/turtledefs.js:665 -msgid "Increase the size of the blocks." +#: js/utils/musicutils.js:691 +msgid "Diminished third" msgstr "" -#: js/turtledefs.js:670 -msgid "Expand/collapse option toolbar" +#: js/utils/musicutils.js:692 +msgid "Minor third" msgstr "" -#: js/turtledefs.js:671 -msgid "Click this button to expand or collapse the auxillary toolbar." +#: js/utils/musicutils.js:692 +msgid "Augmented second" msgstr "" -#: js/turtledefs.js:676 -msgid "Run slow" +#: js/utils/musicutils.js:693 +msgid "Major third" msgstr "" -#: js/turtledefs.js:677 -msgid "Click to run the project in slow mode." +#: js/utils/musicutils.js:693 +msgid "Diminished fourth" msgstr "" -#: js/turtledefs.js:683 -msgid "Click to run the project step by step." +#: js/utils/musicutils.js:694 +msgid "Perfect fourth" msgstr "" -#: js/turtledefs.js:690 -msgid "Display statistics about your Music project." +#: js/utils/musicutils.js:694 +msgid "Augmented third" msgstr "" -#: js/turtledefs.js:697 -msgid "Delete a selected plugin." +#: js/utils/musicutils.js:695 +msgid "Diminished fifth" msgstr "" -#: js/turtledefs.js:704 -msgid "Enable scrolling" +#: js/utils/musicutils.js:695 +msgid "Augmented fourth" msgstr "" -#: js/turtledefs.js:705 -msgid "You can scroll the blocks on the canvas." +#: js/utils/musicutils.js:696 +msgid "Perfect fifth" msgstr "" -#: js/turtledefs.js:714 -msgid "Wrap Turtle" +#: js/utils/musicutils.js:696 +msgid "Diminished sixth" msgstr "" -#: js/turtledefs.js:715 -msgid "Turn Turtle wrapping On or Off." +#: js/utils/musicutils.js:697 +msgid "Minor sixth" msgstr "" -#: js/turtledefs.js:725 -msgid "Restore blocks from the trash." +#: js/utils/musicutils.js:697 +msgid "Augmented fifth" msgstr "" -#: js/turtledefs.js:732 -msgid "Switch mode" +#: js/utils/musicutils.js:698 +msgid "Major sixth" msgstr "" -#: js/turtledefs.js:733 -msgid "Switch between beginner and advance modes." +#: js/utils/musicutils.js:698 +msgid "Diminished seventh" msgstr "" -#: js/turtledefs.js:739 -msgid "Select your language preference." +#: js/utils/musicutils.js:699 +msgid "Minor seventh" msgstr "" -#: js/turtledefs.js:745 -msgid "Keyboard shortcuts" +#: js/utils/musicutils.js:699 +msgid "Augmented sixth" msgstr "" -#: js/turtledefs.js:746 -msgid "You can type d to create a do block and r to create a re block etc." +#: js/utils/musicutils.js:700 +msgid "Major seventh" msgstr "" -#: js/turtledefs.js:753 -msgid "Show these messages." +#: js/utils/musicutils.js:700 +msgid "Diminished octave" msgstr "" -#: js/turtledefs.js:759 -#: js/turtledefs.js:790 -#: js/help.js:335 -msgid "Guide" +#: js/utils/musicutils.js:701 +msgid "Perfect octave" msgstr "" -#: js/turtledefs.js:760 -msgid "A detailed guide to Turtle Blocks is available." +#: js/utils/musicutils.js:701 +msgid "Augmented seventh" msgstr "" -#: js/turtledefs.js:764 -msgid "Turtle Blocks Guide" +#: js/utils/musicutils.js:702 +msgid "Minor ninth" msgstr "" -#: js/turtledefs.js:767 -#: js/turtledefs.js:798 -#: js/help.js:336 -msgid "About" +#: js/utils/musicutils.js:702 +msgid "Augmented octave" msgstr "" -#: js/turtledefs.js:768 -msgid "Turtle Blocks is an open source collection of tools for exploring musical concepts." +#: js/utils/musicutils.js:703 +msgid "Major ninth" msgstr "" -#: js/turtledefs.js:770 -msgid "A full list of contributors can be found in the Turtle Blocks GitHub repository." +#: js/utils/musicutils.js:703 +msgid "Diminished tenth" msgstr "" -#: js/turtledefs.js:772 -msgid "Turtle Blocks is licensed under the AGPL." +#: js/utils/musicutils.js:704 +msgid "Minor tenth" msgstr "" -#: js/turtledefs.js:780 -msgid "Turtle Blocks GitHub repository" +#: js/utils/musicutils.js:704 +msgid "Augmented ninth" msgstr "" -#: js/turtledefs.js:783 -#: js/turtledefs.js:814 -#: js/help.js:337 -#: js/help.js:359 -msgid "Congratulations." +#: js/utils/musicutils.js:705 +msgid "Major tenth" msgstr "" -#: js/turtledefs.js:784 -msgid "You have finished the tour. Please enjoy Turtle Blocks!" +#: js/utils/musicutils.js:705 +msgid "Diminished eleventh" msgstr "" -#: js/turtledefs.js:791 -msgid "A detailed guide to Music Blocks is available." +#: js/utils/musicutils.js:706 +msgid "Perfect eleventh" msgstr "" -#: js/turtledefs.js:795 -#: js/SaveInterface.js:76 -msgid "Music Blocks Guide" +#: js/utils/musicutils.js:706 +msgid "Augmented tenth" msgstr "" -#: js/turtledefs.js:799 -msgid "Music Blocks is an open source collection of tools for exploring musical concepts." +#: js/utils/musicutils.js:707 +msgid "Diminished twelfth" msgstr "" -#: js/turtledefs.js:801 -msgid "A full list of contributors can be found in the Music Blocks GitHub repository." +#: js/utils/musicutils.js:707 +msgid "Augmented eleventh" msgstr "" -#: js/turtledefs.js:803 -msgid "Music Blocks is licensed under the AGPL." +#: js/utils/musicutils.js:708 +msgid "Perfect twelfth" msgstr "" -#: js/turtledefs.js:811 -msgid "Music Blocks GitHub repository" +#: js/utils/musicutils.js:708 +msgid "Diminished thirteenth" msgstr "" -#: js/turtledefs.js:815 -msgid "You have finished the tour. Please enjoy Music Blocks!" +#: js/utils/musicutils.js:709 +msgid "Minor thirteenth" msgstr "" -#: js/activity.js:369 -msgid "Search for blocks" +#: js/utils/musicutils.js:709 +msgid "Augmented fifth, plus an octave" msgstr "" -#: js/activity.js:1145 -msgid "Refresh your browser to change to advanced mode." +#: js/utils/musicutils.js:710 +msgid "Major thirteenth" msgstr "" -#: js/activity.js:1150 -msgid "Refresh your browser to change to beginner mode." +#: js/utils/musicutils.js:710 +msgid "Diminished seventh, plus an octave" msgstr "" -#: js/activity.js:1184 -msgid "Catching mice" +#: js/utils/musicutils.js:838 +#.TRANS: ordinal number. Please keep exactly one space between each number. +msgid "1st 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th" msgstr "" -#: js/activity.js:1185 -msgid "Cleaning the instruments" +#: js/utils/musicutils.js:1008 +#: js/utils/musicutils.js:1191 +#: js/utils/musicutils.js:1325 +#.TRANS: augmented is a music term related to intervals +msgid "augmented" msgstr "" -#: js/activity.js:1186 -msgid "Testing key pieces" +#: js/utils/musicutils.js:1010 +#: js/utils/musicutils.js:1192 +#: js/utils/musicutils.js:1324 +#.TRANS: diminished is a music term related to intervals and mode +msgid "diminished" msgstr "" -#: js/activity.js:1187 -msgid "Sight-reading" +#: js/utils/musicutils.js:1016 +#: js/utils/musicutils.js:1322 +#: js/blocks/IntervalsBlocks.js:649 +#: js/turtleactions/IntervalsActions.js:120 +#: js/turtleactions/IntervalsActions.js:124 +#.TRANS: perfect is a music term related to intervals +msgid "perfect" msgstr "" -#: js/activity.js:1188 -msgid "Combining math and music" +#: js/utils/musicutils.js:1018 +#.TRANS: twelve semi-tone scale for music +msgid "chromatic" msgstr "" -#: js/activity.js:1189 -msgid "Generating more blocks" +#: js/utils/musicutils.js:1019 +msgid "algerian" msgstr "" -#: js/activity.js:1190 -msgid "Do Re Mi Fa Sol La Ti Do" +#: js/utils/musicutils.js:1020 +msgid "spanish" msgstr "" -#: js/activity.js:1191 -msgid "Tuning string instruments" +#: js/utils/musicutils.js:1022 +#.TRANS: modal scale in music +msgid "octatonic" msgstr "" -#: js/activity.js:1192 -msgid "Pressing random keys" +#: js/utils/musicutils.js:1024 +#.TRANS: harmonic major scale in music +msgid "harmonic major" msgstr "" -#: js/activity.js:1351 -msgid "plugins will be removed upon restart." +#: js/utils/musicutils.js:1026 +#.TRANS: natural minor scales in music +msgid "natural minor" msgstr "" -#: js/activity.js:1360 -msgid "show Cartesian" +#: js/utils/musicutils.js:1028 +#.TRANS: harmonic minor scale in music +msgid "harmonic minor" msgstr "" -#: js/activity.js:1842 -msgid "output tools" +#: js/utils/musicutils.js:1030 +#.TRANS: melodic minor scale in music +msgid "melodic minor" msgstr "" -#: js/activity.js:1845 -msgid "custom note" +#: js/utils/musicutils.js:1034 +#.TRANS: modal scale for music +msgid "dorian" msgstr "" -#: js/activity.js:1848 -msgid "accidental name" +#: js/utils/musicutils.js:1036 +#.TRANS: modal scale for music +msgid "phrygian" msgstr "" -#: js/activity.js:1851 -#: js/PitchBlocks.js:855 -msgid "east indian solfege" +#: js/utils/musicutils.js:1038 +#.TRANS: modal scale for music +msgid "lydian" msgstr "" -#: js/activity.js:1854 -#: js/PitchBlocks.js:869 -msgid "note name" +#: js/utils/musicutils.js:1040 +#.TRANS: modal scale for music +msgid "mixolydian" msgstr "" -#: js/activity.js:1857 -#: js/IntervalsBlocks.js:94 -msgid "temperament name" +#: js/utils/musicutils.js:1044 +#.TRANS: modal scale for music +msgid "locrian" msgstr "" -#: js/activity.js:1863 -msgid "chord name" +#: js/utils/musicutils.js:1046 +#.TRANS: minor jazz scale for music +msgid "jazz minor" msgstr "" -#: js/activity.js:1869 -msgid "filter type" +#: js/utils/musicutils.js:1048 +#.TRANS: bebop scale for music +msgid "bebop" msgstr "" -#: js/activity.js:1872 -msgid "oscillator type" +#: js/utils/musicutils.js:1049 +msgid "arabic" msgstr "" -#: js/activity.js:1878 -#: js/DrumBlocks.js:32 -msgid "noise name" +#: js/utils/musicutils.js:1050 +msgid "byzantine" msgstr "" -#: js/activity.js:1881 -#: js/DrumBlocks.js:75 -msgid "drum name" +#: js/utils/musicutils.js:1052 +#.TRANS: musical scale for music by Verdi +msgid "enigmatic" msgstr "" -#: js/activity.js:1884 -#: js/DrumBlocks.js:119 -msgid "effects name" +#: js/utils/musicutils.js:1053 +msgid "ethiopian" msgstr "" -#: js/activity.js:1887 -msgid "wrap mode" +#: js/utils/musicutils.js:1055 +#.TRANS: Ethiopic scale for music +msgid "geez" msgstr "" -#: js/activity.js:1890 -msgid "load file" +#: js/utils/musicutils.js:1056 +msgid "hindu" msgstr "" -#: js/activity.js:2056 -msgid "This block is deprecated." +#: js/utils/musicutils.js:1057 +msgid "hungarian" msgstr "" -#: js/activity.js:2058 -msgid "Block cannot be found." +#: js/utils/musicutils.js:1059 +#.TRANS: minor Romanian scale for music +msgid "romanian minor" msgstr "" -#: js/activity.js:2266 -msgid "Saving block artwork" +#: js/utils/musicutils.js:1060 +msgid "spanish gypsy" msgstr "" -#: js/activity.js:2277 -msgid "Erase" +#: js/utils/musicutils.js:1062 +#.TRANS: musical scale for Mid-Eastern music +msgid "maqam" msgstr "" -#: js/activity.js:2301 -#: js/activity.js:2323 -msgid "Paste" +#: js/utils/musicutils.js:1064 +#.TRANS: minor blues scale for music +msgid "minor blues" msgstr "" -#: js/activity.js:2305 -msgid "Save block help" +#: js/utils/musicutils.js:1066 +#.TRANS: major blues scale for music +msgid "major blues" msgstr "" -#: js/activity.js:2390 -msgid "Jumping to the bottom of the page." +#: js/utils/musicutils.js:1067 +msgid "whole tone" msgstr "" -#: js/activity.js:2396 -msgid "Scrolling up." +#: js/utils/musicutils.js:1069 +#.TRANS: pentatonic is a general term that means "five note scale". This scale is typically known as "minor pentatonic" +msgid "minor pentatonic" msgstr "" -#: js/activity.js:2401 -msgid "Scrolling down." +#: js/utils/musicutils.js:1071 +#.TRANS: pentatonic is a general term that means "five note scale". This scale is typically known as "major pentatonic" +msgid "major pentatonic" msgstr "" -#: js/activity.js:2406 -msgid "Extracting block" +#: js/utils/musicutils.js:1072 +msgid "chinese" msgstr "" -#: js/activity.js:2414 -msgid "Moving block up." +#: js/utils/musicutils.js:1073 +msgid "egyptian" msgstr "" -#: js/activity.js:2435 -msgid "Moving block down." +#: js/utils/musicutils.js:1075 +#.TRANS: https://en.wikipedia.org/wiki/Hirajoshi_scale NOTE: There are three different versions of this scale +msgid "hirajoshi" msgstr "" -#: js/activity.js:2456 -msgid "Moving block left." +#: js/utils/musicutils.js:1076 +msgid "Japan" msgstr "" -#: js/activity.js:2473 -msgid "Moving block right." +#: js/utils/musicutils.js:1078 +#.TRANS: https://en.wikipedia.org/wiki/In_scale and https://en.wikipedia.org/wiki/Sakura_Sakura +msgid "in" msgstr "" -#: js/activity.js:2488 -msgid "Jump to home position." +#: js/utils/musicutils.js:1080 +#.TRANS: https://en.wikipedia.org/wiki/Miny%C5%8D_scale +msgid "minyo" msgstr "" -#: js/activity.js:2515 -msgid "Hide blocks" +#: js/utils/musicutils.js:1082 +#.TRANS: Italian mathematician +msgid "fibonacci" msgstr "" -#: js/activity.js:3389 -msgid "Click the run button to run the project." +#: js/utils/musicutils.js:1083 +#: js/utils/musicutils.js:1134 +#: js/utils/musicutils.js:1177 +#: js/utils/musicutils.js:1199 +#: js/utils/synthutils.js:134 +#: js/blocks/IntervalsBlocks.js:1124 +#: js/blocks/ToneBlocks.js:946 +#: js/blocks/VolumeBlocks.js:411 +#: js/blocks/WidgetBlocks.js:399 +#: js/blocks/WidgetBlocks.js:404 +#: js/turtleactions/VolumeActions.js:218 +#: js/widgets/modewidget.js:919 +#.TRANS: customize voice +msgid "custom" msgstr "" -#: js/activity.js:3456 -#: js/SaveInterface.js:131 -#: js/SaveInterface.js:204 -#: js/SaveInterface.js:262 -#: js/SaveInterface.js:389 -#: js/SaveInterface.js:417 -#: js/ProjectStorage.js:27 -#: js/GlobalPlanet.js:467 -#: js/GlobalPlanet.js:469 -#: js/GlobalPlanet.js:495 -#.TRANS: default project title when saving as Lilypond -msgid "My Project" +#: js/utils/musicutils.js:1085 +#: js/utils/musicutils.js:1531 +#: js/blocks/WidgetBlocks.js:176 +#.TRANS: highpass filter +msgid "highpass" msgstr "" -#: js/activity.js:4261 -msgid "Show/hide block" +#: js/utils/musicutils.js:1087 +#: js/utils/musicutils.js:1532 +#.TRANS: lowpass filter +msgid "lowpass" msgstr "" -#: js/activity.js:4263 -msgid "Expand/collapse blocks" +#: js/utils/musicutils.js:1089 +#: js/utils/musicutils.js:1533 +#.TRANS: bandpass filter +msgid "bandpass" msgstr "" -#: js/activity.js:4381 -msgid "Could not parse JSON input." +#: js/utils/musicutils.js:1091 +#: js/utils/musicutils.js:1534 +#.TRANS: high-shelf filter +msgid "highshelf" msgstr "" -#: js/activity.js:4684 -#: js/activity.js:4771 -#: js/activity.js:4821 -msgid "Cannot load project from the file. Please check the file type." +#: js/utils/musicutils.js:1093 +#: js/utils/musicutils.js:1535 +#.TRANS: low-shelf filter +msgid "lowshelf" msgstr "" -#: js/activity.js:5051 -msgid "Invalid parameters" +#: js/utils/musicutils.js:1095 +#: js/utils/musicutils.js:1536 +#.TRANS: notch-shelf filter +msgid "notch" msgstr "" -#: js/turtle-singer.js:1334 -#.TRANS: partials are weighted components in a harmonic series -msgid "You must have at least one Partial block inside of a Weighted-partial block" +#: js/utils/musicutils.js:1097 +#: js/utils/musicutils.js:1537 +#.TRANS: all-pass filter +msgid "allpass" msgstr "" -#: js/turtle-singer.js:2048 -msgid "synth cannot play chords." +#: js/utils/musicutils.js:1099 +#: js/utils/musicutils.js:1538 +#.TRANS: peaking filter +msgid "peaking" msgstr "" -#: js/lilypond.js:614 -msgid "brown rat" +#: js/utils/musicutils.js:1100 +#: js/utils/musicutils.js:1546 +#: js/utils/synthutils.js:126 +#: js/blocks/PitchBlocks.js:85 +#.TRANS: sine wave +msgid "sine" msgstr "" -#: js/lilypond.js:615 -msgid "mole" +#: js/utils/musicutils.js:1101 +#: js/utils/musicutils.js:1547 +#: js/utils/synthutils.js:128 +#: js/blocks/PitchBlocks.js:39 +#.TRANS: square wave +msgid "square" msgstr "" -#: js/lilypond.js:616 -msgid "chipmunk" +#: js/utils/musicutils.js:1102 +#: js/utils/musicutils.js:1548 +#: js/utils/synthutils.js:132 +#: js/blocks/PitchBlocks.js:62 +#: js/blocks/ToneBlocks.js:39 +#.TRANS: triangle wave +msgid "triangle" msgstr "" -#: js/lilypond.js:617 -msgid "red squirrel" +#: js/utils/musicutils.js:1103 +#: js/utils/musicutils.js:1549 +#: js/utils/synthutils.js:130 +#: js/blocks/PitchBlocks.js:108 +#.TRANS: sawtooth wave +msgid "sawtooth" msgstr "" -#: js/lilypond.js:618 -msgid "guinea pig" +#: js/utils/musicutils.js:1105 +#: js/utils/musicutils.js:1312 +#: js/blocks/PitchBlocks.js:931 +#: js/blocks/PitchBlocks.js:937 +#: js/turtleactions/PitchActions.js:469 +#.TRANS: even numbers +#.TRANS: invert based on even or odd number or musical scale +msgid "even" msgstr "" -#: js/lilypond.js:619 -msgid "capybara" +#: js/utils/musicutils.js:1107 +#: js/utils/musicutils.js:1313 +#: js/blocks/PitchBlocks.js:937 +#: js/turtleactions/PitchActions.js:471 +#.TRANS: odd numbers +msgid "odd" msgstr "" -#: js/lilypond.js:620 -msgid "coypu" +#: js/utils/musicutils.js:1108 +#: js/utils/musicutils.js:1314 +#: js/blocks/PitchBlocks.js:937 +#: js/turtleactions/PitchActions.js:473 +msgid "scalar" msgstr "" -#: js/lilypond.js:621 -msgid "black rat" +#: js/utils/musicutils.js:1109 +#: js/utils/synthutils.js:72 +#: js/blocks/VolumeBlocks.js:47 +#.TRANS: musical instrument +msgid "piano" msgstr "" -#: js/lilypond.js:622 -msgid "grey squirrel" +#: js/utils/musicutils.js:1110 +#: js/utils/synthutils.js:74 +#.TRANS: musical instrument +msgid "violin" msgstr "" -#: js/lilypond.js:623 -msgid "flying squirrel" +#: js/utils/musicutils.js:1111 +#: js/utils/synthutils.js:76 +#.TRANS: viola musical instrument +msgid "viola" msgstr "" -#: js/lilypond.js:624 -msgid "bat" +#: js/utils/musicutils.js:1112 +#: js/utils/synthutils.js:114 +#.TRANS: xylophone musical instrument +msgid "xylophone" msgstr "" -#: js/lilypond.js:757 -#: js/lilypond.js:921 -#: js/lilypond.js:959 -#: js/ActionBlocks.js:1256 -#: js/ExtrasBlocks.js:553 -msgid "start drum" +#: js/utils/musicutils.js:1113 +#: js/utils/synthutils.js:136 +#.TRANS: vibraphone musical instrument +msgid "vibraphone" msgstr "" -#: js/SaveInterface.js:59 -#: js/SaveInterface.js:61 -#: js/SaveInterface.js:93 -msgid "Music Blocks Project" +#: js/utils/musicutils.js:1114 +#: js/utils/synthutils.js:78 +#.TRANS: musical instrument +msgid "cello" msgstr "" -#: js/SaveInterface.js:63 -msgid "This project was created in Music Blocks" +#: js/utils/musicutils.js:1116 +#: js/utils/synthutils.js:82 +#.TRANS: viola musical instrument +msgid "double bass" msgstr "" -#: js/SaveInterface.js:67 -msgid "Music Blocks is a Free/Libre Software application." +#: js/utils/musicutils.js:1117 +#: js/utils/synthutils.js:84 +#: js/widgets/rhythmruler.js:2511 +#.TRANS: musical instrument +msgid "guitar" msgstr "" -#: js/SaveInterface.js:69 -msgid "The source code can be accessed at" +#: js/utils/musicutils.js:1118 +#: js/utils/synthutils.js:86 +#.TRANS: musical instrument +msgid "acoustic guitar" msgstr "" -#: js/SaveInterface.js:72 -msgid "For more information, please consult the" +#: js/utils/musicutils.js:1119 +#: js/utils/synthutils.js:88 +#.TRANS: musical instrument +msgid "flute" msgstr "" -#: js/SaveInterface.js:83 -msgid "Alternatively, open the file in Music Blocks using the Load project button." +#: js/utils/musicutils.js:1120 +#: js/utils/synthutils.js:90 +#.TRANS: musical instrument +msgid "clarinet" msgstr "" -#: js/SaveInterface.js:85 -msgid "Project Code" +#: js/utils/musicutils.js:1121 +#: js/utils/synthutils.js:92 +#.TRANS: musical instrument +msgid "saxophone" msgstr "" -#: js/SaveInterface.js:87 -msgid "This code stores data about the blocks in a project." +#: js/utils/musicutils.js:1122 +#: js/utils/synthutils.js:94 +#.TRANS: musical instrument +msgid "tuba" msgstr "" -#: js/SaveInterface.js:89 -msgid "Show" +#: js/utils/musicutils.js:1123 +#: js/utils/synthutils.js:96 +#.TRANS: musical instrument +msgid "trumpet" msgstr "" -#: js/SaveInterface.js:91 -msgid "Hide" +#: js/utils/musicutils.js:1124 +#: js/utils/synthutils.js:98 +#.TRANS: musical instrument +msgid "oboe" msgstr "" -#: js/SaveInterface.js:197 -#: js/SaveInterface.js:58 -msgid "No description provided" +#: js/utils/musicutils.js:1125 +#: js/utils/synthutils.js:100 +#.TRANS: musical instrument +msgid "trombone" msgstr "" -#: js/SaveInterface.js:332 -msgid "Your recording is in progress." +#: js/utils/musicutils.js:1126 +#: js/utils/synthutils.js:116 +#.TRANS: polytone synthesizer +msgid "electronic synth" msgstr "" -#: js/SaveInterface.js:401 -#.TRANS: File name prompt for save as Lilypond -msgid "File name" +#: js/utils/musicutils.js:1127 +#: js/utils/synthutils.js:118 +#.TRANS: simple monotone synthesizer +msgid "simple 1" msgstr "" -#: js/SaveInterface.js:403 -#: js/StringHelper.js:39 -#.TRANS: Project title prompt for save as Lilypond -msgid "Project title" +#: js/utils/musicutils.js:1128 +msgid "simple 2" msgstr "" -#: js/SaveInterface.js:405 -#.TRANS: Project title prompt for save as Lilypond -msgid "Project author" +#: js/utils/musicutils.js:1129 +msgid "simple 3" msgstr "" -#: js/SaveInterface.js:407 -#.TRANS: MIDI prompt for save as Lilypond -msgid "Include MIDI output?" +#: js/utils/musicutils.js:1130 +msgid "simple 4" msgstr "" -#: js/SaveInterface.js:409 -#.TRANS: Guitar prompt for save as Lilypond -msgid "Include guitar tablature output?" +#: js/utils/musicutils.js:1131 +#: js/utils/synthutils.js:58 +#: js/blocks/DrumBlocks.js:191 +#.TRANS: white noise synthesizer +msgid "white noise" msgstr "" -#: js/SaveInterface.js:411 -#.TRANS: Lilypond is a scripting language for generating sheet music -msgid "Save as Lilypond" +#: js/utils/musicutils.js:1132 +#: js/utils/synthutils.js:60 +#.TRANS: brown noise synthesizer +msgid "brown noise" msgstr "" -#: js/SaveInterface.js:426 -#: js/EnsembleBlocks.js:75 -#: js/EnsembleBlocks.js:154 -#: js/EnsembleBlocks.js:216 -#: js/EnsembleBlocks.js:302 -#: js/EnsembleBlocks.js:348 -#: js/EnsembleBlocks.js:389 -#: js/EnsembleBlocks.js:441 -#: js/EnsembleBlocks.js:490 -#: js/EnsembleBlocks.js:536 -#: js/EnsembleBlocks.js:583 -#: js/EnsembleBlocks.js:637 -#: js/EnsembleBlocks.js:753 -#: js/EnsembleBlocks.js:840 -#: js/EnsembleBlocks.js:899 -#: js/EnsembleBlocks.js:942 -#: js/EnsembleBlocks.js:1212 -#: js/EnsembleBlocks.js:1280 -#.TRANS: default project author when saving as Lilypond -msgid "Mr. Mouse" +#: js/utils/musicutils.js:1133 +#: js/utils/synthutils.js:62 +#.TRANS: pink noise synthesizer +msgid "pink noise" msgstr "" -#: js/SaveInterface.js:573 -msgid "The Lilypond code is copied to clipboard. You can paste it here: " +#: js/utils/musicutils.js:1135 +#: js/utils/synthutils.js:148 +#: js/widgets/rhythmruler.js:2057 +#: js/widgets/rhythmruler.js:2319 +#.TRANS: musical instrument +msgid "snare drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:50 -#: js/RhythmBlockPaletteBlocks.js:232 -#.TRANS: rhythm block -#.TRANS: translate "rhythm1" as rhythm -msgid "rhythm1" -msgstr "rhythm" - -#: js/RhythmBlockPaletteBlocks.js:70 -#: js/RhythmBlockPaletteBlocks.js:251 -#: js/RhythmBlockPaletteBlocks.js:484 -#: js/RhythmBlockPaletteBlocks.js:553 -#: js/RhythmBlockPaletteBlocks.js:874 -msgid "number of notes" +#: js/utils/musicutils.js:1136 +#: js/utils/synthutils.js:150 +#.TRANS: musical instrument +msgid "kick drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:126 -msgid "polyphonic rhythm" +#: js/utils/musicutils.js:1137 +#: js/utils/synthutils.js:152 +#.TRANS: musical instrument +msgid "tom tom" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:218 -msgid "The Rhythm block is used to generate rhythm patterns." +#: js/utils/musicutils.js:1138 +#: js/utils/synthutils.js:154 +#.TRANS: musical instrument +msgid "floor tom" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:279 -msgid "1/64 note" +#: js/utils/musicutils.js:1139 +#: js/utils/synthutils.js:156 +#.TRANS: musical instrument +msgid "bass drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:303 -msgid "1/32 note" +#: js/utils/musicutils.js:1140 +#: js/utils/synthutils.js:158 +#.TRANS: a drum made from an inverted cup +msgid "cup drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:331 -msgid "1/16 note" +#: js/utils/musicutils.js:1141 +#: js/utils/synthutils.js:160 +#.TRANS: musical instrument +msgid "darbuka drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:359 -msgid "eighth note" +#: js/utils/musicutils.js:1142 +#: js/utils/synthutils.js:164 +#.TRANS: musical instrument +msgid "hi hat" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:387 -msgid "quarter note" +#: js/utils/musicutils.js:1143 +#: js/utils/synthutils.js:166 +#.TRANS: a small metal bell +msgid "ride bell" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:415 -msgid "half note" +#: js/utils/musicutils.js:1144 +#: js/utils/synthutils.js:168 +#.TRANS: musical instrument +msgid "cow bell" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:443 -msgid "whole note" +#: js/utils/musicutils.js:1145 +msgid "japanese drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:481 -#: js/RhythmBlockPaletteBlocks.js:550 -#: js/RhythmBlockPaletteBlocks.js:601 -#.TRANS: A tuplet is a note value divided into irregular time values. -msgid "tuplet" +#: js/utils/musicutils.js:1146 +#: js/utils/synthutils.js:174 +#.TRANS: musical instrument +msgid "japanese bell" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:767 -msgid "septuplet" +#: js/utils/musicutils.js:1147 +#: js/utils/synthutils.js:170 +#.TRANS: musical instrument +msgid "triangle bell" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:795 -msgid "quintuplet" +#: js/utils/musicutils.js:1148 +#: js/utils/synthutils.js:172 +#.TRANS: musical instrument +msgid "finger cymbals" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:823 -msgid "triplet" +#: js/utils/musicutils.js:1149 +#: js/utils/synthutils.js:176 +#.TRANS: a musically tuned set of bells +msgid "chime" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:850 -msgid "simple tuplet" +#: js/utils/musicutils.js:1150 +#: js/utils/synthutils.js:178 +#.TRANS: a musical instrument +msgid "gong" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:860 -msgid "Tuplets are a collection of notes that get scaled to a specific duration." +#: js/utils/musicutils.js:1151 +#: js/utils/synthutils.js:180 +#.TRANS: sound effect +msgid "clang" msgstr "" -#: js/WidgetBlocks.js:71 -#.TRANS: sound envelope (ADSR) -msgid "envelope" +#: js/utils/musicutils.js:1152 +#: js/utils/synthutils.js:182 +#.TRANS: sound effect +msgid "crash" msgstr "" -#: js/WidgetBlocks.js:79 -#.TRANS: Attack time is the time taken for initial run-up of level from nil to peak, beginning when the key is first pressed. -msgid "attack" +#: js/utils/musicutils.js:1153 +#: js/utils/synthutils.js:184 +#.TRANS: sound effect +msgid "bottle" msgstr "" -#: js/WidgetBlocks.js:81 -#.TRANS: Decay time is the time taken for the subsequent run down from the attack level to the designated sustain level. -msgid "decay" +#: js/utils/musicutils.js:1154 +#: js/utils/synthutils.js:186 +#.TRANS: sound effect +msgid "clap" msgstr "" -#: js/WidgetBlocks.js:83 -#.TRANS: Sustain level is the level during the main sequence of the sound's duration, until the key is released. -msgid "sustain" +#: js/utils/musicutils.js:1155 +#: js/utils/synthutils.js:188 +#.TRANS: sound effect +msgid "slap" msgstr "" -#: js/WidgetBlocks.js:85 -#.TRANS: Release time is the time taken for the level to decay from the sustain level to zero after the key is released. -msgid "release" +#: js/utils/musicutils.js:1156 +#: js/utils/synthutils.js:190 +#.TRANS: sound effect +msgid "splash" msgstr "" -#: js/WidgetBlocks.js:96 -msgid "Attack value should be from 0 to 100." +#: js/utils/musicutils.js:1157 +#: js/utils/synthutils.js:192 +#.TRANS: sound effect +msgid "bubbles" msgstr "" -#: js/WidgetBlocks.js:99 -msgid "Decay value should be from 0 to 100." +#: js/utils/musicutils.js:1158 +#: js/utils/synthutils.js:194 +#.TRANS: sound effect +msgid "raindrop" msgstr "" -#: js/WidgetBlocks.js:102 -msgid "Sustain value should be from 0 to 100." +#: js/utils/musicutils.js:1159 +#: js/utils/synthutils.js:196 +#.TRANS: animal sound effect +msgid "cat" msgstr "" -#: js/WidgetBlocks.js:105 -msgid "Release value should be from 0-100." +#: js/utils/musicutils.js:1160 +#: js/utils/synthutils.js:198 +#.TRANS: animal sound effect +msgid "cricket" msgstr "" -#: js/WidgetBlocks.js:121 -msgid "You are adding multiple envelope blocks." +#: js/utils/musicutils.js:1161 +#: js/utils/synthutils.js:200 +#.TRANS: animal sound effect +msgid "dog" msgstr "" -#: js/WidgetBlocks.js:144 -#.TRANS: a filter removes some unwanted components from a signal -msgid "filter" +#: js/utils/musicutils.js:1163 +#: js/utils/synthutils.js:102 +#.TRANS: musical instrument +msgid "banjo" msgstr "" -#: js/WidgetBlocks.js:149 -#: js/musicutils.js:706 -#: js/musicutils.js:1105 -#.TRANS: highpass filter -msgid "highpass" +#: js/utils/musicutils.js:1164 +#: js/utils/synthutils.js:104 +#.TRANS: musical instrument +msgid "koto" msgstr "" -#: js/WidgetBlocks.js:152 -#: js/ToneBlocks.js:42 -#: js/timbre.js:1558 -#: js/timbre.js:1808 -#.TRANS: type of filter, e.g., lowpass, highpass, etc. -#.TRANS: there are different types (sine, triangle, square...) of oscillators. -msgid "type" +#: js/utils/musicutils.js:1165 +#: js/utils/synthutils.js:106 +#.TRANS: musical instrument +msgid "dulcimer" msgstr "" -#: js/WidgetBlocks.js:154 -#: js/timbre.js:1818 -#.TRANS: rolloff is the steepness of a change in frequency. -msgid "rolloff" +#: js/utils/musicutils.js:1166 +#: js/utils/synthutils.js:108 +#.TRANS: musical instrument +msgid "electric guitar" msgstr "" -#: js/WidgetBlocks.js:155 -#: js/MediaBlocks.js:692 -#: js/temperament.js:382 -#: js/temperament.js:417 -#: js/temperament.js:477 -#: js/temperament.js:485 -#: js/temperament.js:1348 -#: js/timbre.js:1842 -msgid "frequency" +#: js/utils/musicutils.js:1167 +#: js/utils/synthutils.js:110 +#.TRANS: musical instrument +msgid "bassoon" msgstr "" -#: js/WidgetBlocks.js:179 -#.TRANS: rolloff is the steepness of a change in frequency. -msgid "Rolloff value should be either -12, -24, -48, or -96 decibels/octave." +#: js/utils/musicutils.js:1168 +#: js/utils/synthutils.js:112 +#.TRANS: musical instrument +msgid "celeste" msgstr "" -#: js/WidgetBlocks.js:211 -msgid "The Temperament tool is used to define custom tuning." +#: js/utils/musicutils.js:1170 +#: js/widgets/temperament.js:787 +#.TRANS: musical temperament +msgid "equal" msgstr "" -#: js/WidgetBlocks.js:277 -#: js/sampler.js:329 -msgid "Upload a sample and adjust its pitch center." +#: js/utils/musicutils.js:1172 +#.TRANS: musical temperament +msgid "Pythagorean" msgstr "" -#: js/WidgetBlocks.js:284 -#.TRANS: the speed at music is should be played. -msgid "sampler" +#: js/utils/musicutils.js:1174 +#.TRANS: musical temperament +msgid "just intonation" msgstr "" -#: js/WidgetBlocks.js:329 -#: js/WidgetBlocks.js:334 -#: js/IntervalsBlocks.js:928 -#: js/VolumeBlocks.js:411 -#: js/ToneBlocks.js:946 -#: js/VolumeActions.js:218 -#: js/musicutils.js:704 -#: js/musicutils.js:755 -#: js/musicutils.js:798 -#: js/musicutils.js:820 -#: js/musicutils.js:1136 -#: js/synthutils.js:118 -#: js/modewidget.js:919 -#.TRANS: customize voice -msgid "custom" +#: js/utils/musicutils.js:1176 +#.TRANS: musical temperament +msgid "meantone" msgstr "" -#: js/WidgetBlocks.js:432 -msgid "The Meter block opens a tool to select strong beats for the meter." +#: js/utils/musicutils.js:1193 +msgid "major 7th" msgstr "" -#: js/WidgetBlocks.js:473 -msgid "The oscilloscope block opens a tool to visualize waveforms." +#: js/utils/musicutils.js:1194 +msgid "minor 7th" msgstr "" -#: js/WidgetBlocks.js:478 -msgid "oscilloscope" +#: js/utils/musicutils.js:1195 +msgid "dominant 7th" msgstr "" -#: js/WidgetBlocks.js:530 -msgid "The Custom mode block opens a tool to explore musical mode (the spacing of the notes in a scale)." +#: js/utils/musicutils.js:1196 +msgid "minor-major 7th" msgstr "" -#: js/WidgetBlocks.js:536 -#.TRANS: musical mode is the pattern of half-steps in an octave, e.g., Major or Minor modes -msgid "custom mode" +#: js/utils/musicutils.js:1197 +msgid "fully-diminished 7th" msgstr "" -#: js/WidgetBlocks.js:570 -msgid "The Tempo block opens a metronome to visualize the beat." +#: js/utils/musicutils.js:1198 +msgid "half-diminished 7th" msgstr "" -#: js/WidgetBlocks.js:617 -msgid "The Arpeggio Widget is used to compose chord sequences." +#: js/utils/musicutils.js:1557 +#: js/utils/musicutils.js:1569 +msgid "Equal (12EDO)" msgstr "" -#: js/WidgetBlocks.js:623 -#: js/IntervalsBlocks.js:683 -msgid "arpeggio" +#: js/utils/musicutils.js:1558 +#: js/utils/musicutils.js:1570 +msgid "5-limit Just Intonation" msgstr "" -#: js/WidgetBlocks.js:677 -msgid "The Pitch drum matrix is used to map pitches to drum sounds." +#: js/utils/musicutils.js:1559 +#: js/utils/musicutils.js:1571 +msgid "Pythagorean (3-limit JI)" msgstr "" -#: js/WidgetBlocks.js:682 -#.TRANS: makes a mapping between pitches and drum sounds -msgid "pitch-drum mapper" +#: js/utils/musicutils.js:1560 +#: js/utils/musicutils.js:1561 +#: js/utils/musicutils.js:1572 +#: js/utils/musicutils.js:1573 +msgid "Meantone" msgstr "" -#: js/WidgetBlocks.js:724 -msgid "You must have at least one pitch block and one drum block in the matrix." +#: js/utils/musicutils.js:1574 +msgid "Custom" msgstr "" -#: js/WidgetBlocks.js:746 -msgid "The Pitch slider tool to is used to generate pitches at selected frequencies." +#: js/utils/musicutils.js:5387 +#: js/utils/musicutils.js:5430 +msgid "current" msgstr "" -#: js/WidgetBlocks.js:751 -#.TRANS: widget to generate pitches using a slider -msgid "pitch slider" +#: js/utils/musicutils.js:5390 +#: js/utils/musicutils.js:5421 +msgid "next" msgstr "" -#: js/WidgetBlocks.js:788 -msgid "chromatic keyboard" +#: js/utils/musicutils.js:5393 +#: js/utils/musicutils.js:5426 +msgid "previous" msgstr "" -#: js/WidgetBlocks.js:815 -#: js/WidgetBlocks.js:874 -#.TRANS: widget to generate pitches using a slider -msgid "music keyboard" +#: js/utils/synthutils.js:120 +#.TRANS: simple monotone synthesizer +msgid "simple-2" msgstr "" -#: js/WidgetBlocks.js:859 -#: js/WidgetBlocks.js:866 -msgid "The Music keyboard block opens a piano keyboard that can be used to create notes." +#: js/utils/synthutils.js:122 +#.TRANS: simple monotone synthesizer +msgid "simple-3" msgstr "" -#: js/WidgetBlocks.js:910 -msgid "The Pitch staircase tool to is used to generate pitches from a given ratio." +#: js/utils/synthutils.js:124 +#.TRANS: simple monotone synthesizer +msgid "simple-4" msgstr "" -#: js/WidgetBlocks.js:917 -#.TRANS: generate a progressive sequence of pitches -msgid "pitch staircase" +#: js/utils/synthutils.js:162 +#.TRANS: musical instrument +msgid "taiko" msgstr "" -#: js/WidgetBlocks.js:982 -msgid "The Rhythm Maker block opens a tool to create drum machines." +#: js/blocks/ActionBlocks.js:58 +msgid "The Return block will return a value from an action." msgstr "" -#: js/WidgetBlocks.js:1036 -msgid "G major scale" +#: js/blocks/ActionBlocks.js:75 +msgid "return" msgstr "" -#: js/WidgetBlocks.js:1064 -msgid "C major scale" +#: js/blocks/ActionBlocks.js:128 +msgid "The Return to URL block will return a value to a webpage." msgstr "" -#: js/WidgetBlocks.js:1097 -msgid "The Phrase Maker block opens a tool to create musical phrases." +#: js/blocks/ActionBlocks.js:145 +msgid "return to URL" msgstr "" -#: js/WidgetBlocks.js:1104 -#.TRANS: assigns pitch to a sequence of beats to generate a melody -msgid "phrase maker" +#: js/blocks/ActionBlocks.js:233 +#: js/blocks/ActionBlocks.js:290 +#: js/blocks/ActionBlocks.js:501 +#: js/blocks/ActionBlocks.js:688 +msgid "The Calculate block returns a value calculated by an action." msgstr "" -#: js/WidgetBlocks.js:1168 -msgid "You must have at least one pitch block and one rhythm block in the matrix." +#: js/blocks/ActionBlocks.js:251 +#: js/blocks/ActionBlocks.js:517 +#: js/blocks/ActionBlocks.js:707 +msgid "calculate" msgstr "" -#: js/WidgetBlocks.js:1220 -msgid "The Status block opens a tool for inspecting the status of Music Blocks as it is running." +#: js/blocks/ActionBlocks.js:376 +#: js/blocks/ActionBlocks.js:593 +#: js/blocks/ActionBlocks.js:942 +#: js/blocks/ActionBlocks.js:1389 +#.TRANS: do is the do something or take an action. +msgid "The Do block is used to initiate an action." msgstr "" -#: js/IntervalsBlocks.js:45 -msgid "set temperament" -msgstr "" +#: js/blocks/ActionBlocks.js:390 +#: js/blocks/ActionBlocks.js:610 +#: js/blocks/ActionBlocks.js:959 +#: js/blocks/ActionBlocks.js:1048 +#: js/blocks/MeterBlocks.js:769 +msgid "do1" +msgstr "do" -#: js/IntervalsBlocks.js:63 -#: js/MediaBlocks.js:746 -#: js/PitchBlocks.js:657 -#: js/PitchBlocks.js:933 -#: js/PitchBlocks.js:972 -#: js/PitchBlocks.js:1005 -#: js/PitchBlocks.js:1166 -#: js/PitchBlocks.js:1679 -#: js/PitchBlocks.js:1720 -#: js/PitchBlocks.js:1827 -#: js/ToneBlocks.js:1025 -#.TRANS: adjusts the shift up or down by one octave (twelve half-steps in the interval between two notes, one having twice or half the frequency in Hz of the other.) -msgid "octave" +#: js/blocks/ActionBlocks.js:390 +#: js/blocks/ActionBlocks.js:610 +#: js/blocks/ActionBlocks.js:959 +#: js/blocks/ActionBlocks.js:1048 +#: js/blocks/FlowBlocks.js:742 +#: js/blocks/FlowBlocks.js:822 +#: js/blocks/MeterBlocks.js:769 +msgid "do" msgstr "" -#: js/IntervalsBlocks.js:99 -msgid "The Temperament name block is used to select a tuning method." +#: js/blocks/ActionBlocks.js:791 +#: js/blocks/ActionBlocks.js:865 +msgid "The Arg block contains the value of an argument passed to an action." msgstr "" -#: js/IntervalsBlocks.js:161 -msgid "doubly" +#: js/blocks/ActionBlocks.js:806 +#: js/blocks/ActionBlocks.js:878 +msgid "arg" msgstr "" -#: js/IntervalsBlocks.js:166 -msgid "The Doubly block will double the size of an interval." +#: js/blocks/ActionBlocks.js:836 +#: js/blocks/ActionBlocks.js:900 +#: js/blocks/ActionBlocks.js:908 +msgid "Invalid argument" msgstr "" -#: js/IntervalsBlocks.js:262 -msgid "interval number" +#: js/blocks/ActionBlocks.js:944 +msgid "In the example, it is used with the One of block to choose a random phase." msgstr "" -#: js/IntervalsBlocks.js:330 -#.TRANS: measure the distance between two pitches in semi-tones -msgid "semi-tone interval measure" +#: js/blocks/ActionBlocks.js:1019 +#: js/blocks/ActionBlocks.js:1026 +msgid "The Listen block is used to listen for an event such as a mouse click." msgstr "" -#: js/IntervalsBlocks.js:397 -#: js/IntervalsBlocks.js:513 -msgid "You must use two pitch blocks when measuring an interval." +#: js/blocks/ActionBlocks.js:1028 +msgid "When the event happens, an action is taken." msgstr "" -#: js/IntervalsBlocks.js:439 -msgid "The Scalar interval block measures the distance between two notes in the current key and mode." +#: js/blocks/ActionBlocks.js:1045 +msgid "on" msgstr "" -#: js/IntervalsBlocks.js:445 -#.TRANS: measure the distance between two pitches in steps of musical scale -msgid "scalar interval measure" +#: js/blocks/ActionBlocks.js:1048 +#: js/blocks/ActionBlocks.js:1049 +#: js/blocks/ActionBlocks.js:1153 +msgid "event" msgstr "" -#: js/IntervalsBlocks.js:592 -#: js/musicutils.js:637 -#: js/musicutils.js:908 -#.TRANS: perfect is a music term related to intervals -msgid "perfect" +#: js/blocks/ActionBlocks.js:1133 +msgid "The Broadcast block is used to trigger an event." msgstr "" -#: js/IntervalsBlocks.js:621 -msgid "In the figure, we add sol# to sol." +#: js/blocks/ActionBlocks.js:1151 +msgid "broadcast" msgstr "" -#: js/IntervalsBlocks.js:627 -#: js/OrnamentBlocks.js:220 -#.TRANS: calculate a relative step between notes based on semi-tones -msgid "semi-tone interval" +#: js/blocks/ActionBlocks.js:1208 +msgid "Each Start block is a separate voice." msgstr "" -#: js/IntervalsBlocks.js:676 -msgid "The output of the example is: do, mi, sol, sol, ti, mi" +#: js/blocks/ActionBlocks.js:1304 +msgid "It is often used for storing a phrase of music that is repeated." msgstr "" -#: js/IntervalsBlocks.js:735 -msgid "The Chord block calculates common chords." +#: js/blocks/ActionBlocks.js:1495 +msgid "define temperament" msgstr "" -#: js/IntervalsBlocks.js:737 -msgid "In the figure, we generate a C-major chord." +#: js/blocks/BooleanBlocks.js:44 +msgid "The Not block is the logical not operator." msgstr "" -#: js/IntervalsBlocks.js:742 -msgid "chord" +#: js/blocks/BooleanBlocks.js:62 +msgid "not" msgstr "" -#: js/IntervalsBlocks.js:794 -msgid "The Ratio Interval block calculates an interval based on a ratio." +#: js/blocks/BooleanBlocks.js:134 +msgid "The And block is the logical and operator." msgstr "" -#: js/IntervalsBlocks.js:799 -msgid "ratio interval" +#: js/blocks/BooleanBlocks.js:152 +msgid "and" msgstr "" -#: js/IntervalsBlocks.js:868 -msgid "In the figure, we add la to sol." +#: js/blocks/BooleanBlocks.js:218 +msgid "The Or block is the logical or operator." msgstr "" -#: js/IntervalsBlocks.js:924 -#.TRANS: define a custom mode -msgid "define mode" +#: js/blocks/BooleanBlocks.js:236 +msgid "or" msgstr "" -#: js/IntervalsBlocks.js:977 -msgid "movable Do" +#: js/blocks/BooleanBlocks.js:302 +msgid "The XOR block is the logical XOR operator." msgstr "" -#: js/IntervalsBlocks.js:1028 -#.TRANS: mode length is the number of notes in the mode, e.g., 7 for major and minor scales; 12 for chromatic scales -msgid "mode length" +#: js/blocks/BooleanBlocks.js:320 +msgid "xor" msgstr "" -#: js/IntervalsBlocks.js:1037 -msgid "The Mode length block is the number of notes in the current scale." +#: js/blocks/BooleanBlocks.js:808 +msgid "The Equal block returns True if the two numbers are equal." msgstr "" -#: js/IntervalsBlocks.js:1039 -msgid "Most Western scales have 7 notes." +#: js/blocks/BooleanBlocks.js:909 +msgid "The Not-equal-to block returns True if the two numbers are not equal to each other." msgstr "" -#: js/IntervalsBlocks.js:1088 -#.TRANS: the mode in music is 'major', 'minor', etc. -msgid "current mode" +#: js/blocks/BooleanBlocks.js:1008 +msgid "The Boolean block is used to specify true or false." msgstr "" -#: js/IntervalsBlocks.js:1141 -#.TRANS: the key is a group of pitches with which a music composition is created -msgid "current key" +#: js/blocks/BoxesBlocks.js:53 +#: js/blocks/BoxesBlocks.js:59 +msgid "The Add-to block is used to add to the value stored in a box." msgstr "" -#: js/IntervalsBlocks.js:1193 -#: js/IntervalsBlocks.js:1238 -#.TRANS: set the key and mode, e.g. C Major -msgid "set key" +#: js/blocks/BoxesBlocks.js:61 +msgid "It can also be used with other blocks such as Color and Pen size." msgstr "" -#: js/IntervalsBlocks.js:1247 -#: js/IntervalsBlocks.js:1253 -msgid "The Set key block is used to set the key and mode," +#: js/blocks/BoxesBlocks.js:73 +msgid "add" msgstr "" -#: js/IntervalsBlocks.js:1253 -msgid "eg C Major" +#: js/blocks/BoxesBlocks.js:75 +#: js/widgets/temperament.js:857 +msgid "to" msgstr "" -#: js/IntervalsBlocks.js:1266 -#: js/DictBlocks.js:215 -#: js/DictBlocks.js:216 -#: js/DictBlocks.js:289 -#: js/DictBlocks.js:290 -#: js/DictBlocks.js:357 -#: js/DictBlocks.js:430 -#: js/DictBlocks.js:431 -#.TRANS: key, e.g., C in C Major -msgid "key" -msgstr "" +#: js/blocks/BoxesBlocks.js:75 +#: js/blocks/BoxesBlocks.js:595 +#: js/blocks/HeapBlocks.js:544 +msgid "value1" +msgstr "value" -#: js/ActionBlocks.js:58 -msgid "The Return block will return a value from an action." +#: js/blocks/BoxesBlocks.js:118 +msgid "Block does not support incrementing." msgstr "" -#: js/ActionBlocks.js:75 -msgid "return" +#: js/blocks/BoxesBlocks.js:152 +msgid "The Add-1-to block adds one to the value stored in a box." msgstr "" -#: js/ActionBlocks.js:128 -msgid "The Return to URL block will return a value to a webpage." +#: js/blocks/BoxesBlocks.js:163 +msgid "add 1 to" msgstr "" -#: js/ActionBlocks.js:145 -msgid "return to URL" +#: js/blocks/BoxesBlocks.js:211 +msgid "The Subtract-1-from block subtracts one from the value stored in a box." msgstr "" -#: js/ActionBlocks.js:233 -#: js/ActionBlocks.js:290 -#: js/ActionBlocks.js:501 -#: js/ActionBlocks.js:688 -msgid "The Calculate block returns a value calculated by an action." +#: js/blocks/BoxesBlocks.js:222 +msgid "subtract 1 from" msgstr "" -#: js/ActionBlocks.js:251 -#: js/ActionBlocks.js:517 -#: js/ActionBlocks.js:707 -msgid "calculate" +#: js/blocks/BoxesBlocks.js:270 +#: js/blocks/BoxesBlocks.js:387 +msgid "The Box block returns the value stored in a box." msgstr "" -#: js/ActionBlocks.js:376 -#: js/ActionBlocks.js:593 -#: js/ActionBlocks.js:942 -#: js/ActionBlocks.js:1389 -#.TRANS: do is the do something or take an action. -msgid "The Do block is used to initiate an action." +#: js/blocks/BoxesBlocks.js:500 +#: js/blocks/BoxesBlocks.js:576 +msgid "The Store in block will store a value in a box." msgstr "" -#: js/ActionBlocks.js:390 -#: js/ActionBlocks.js:610 -#: js/ActionBlocks.js:959 -#: js/ActionBlocks.js:1048 -#: js/MeterBlocks.js:769 -msgid "do1" -msgstr "do" +#: js/blocks/BoxesBlocks.js:595 +#: js/blocks/EnsembleBlocks.js:391 +#: js/blocks/EnsembleBlocks.js:402 +msgid "name1" +msgstr "name" -#: js/ActionBlocks.js:390 -#: js/ActionBlocks.js:610 -#: js/ActionBlocks.js:959 -#: js/ActionBlocks.js:1048 -#: js/FlowBlocks.js:742 -#: js/FlowBlocks.js:822 -#: js/MeterBlocks.js:769 -msgid "do" +#: js/blocks/BoxesBlocks.js:652 +msgid "The Box2 block returns the value stored in Box2." msgstr "" -#: js/ActionBlocks.js:791 -#: js/ActionBlocks.js:865 -msgid "The Arg block contains the value of an argument passed to an action." +#: js/blocks/BoxesBlocks.js:703 +msgid "The Store in Box2 block is used to store a value in Box2." msgstr "" -#: js/ActionBlocks.js:806 -#: js/ActionBlocks.js:878 -msgid "arg" +#: js/blocks/BoxesBlocks.js:715 +msgid "store in box2" msgstr "" -#: js/ActionBlocks.js:836 -#: js/ActionBlocks.js:900 -#: js/ActionBlocks.js:908 -msgid "Invalid argument" +#: js/blocks/BoxesBlocks.js:761 +msgid "The Box1 block returns the value stored in Box1." msgstr "" -#: js/ActionBlocks.js:944 -msgid "In the example, it is used with the One of block to choose a random phase." +#: js/blocks/BoxesBlocks.js:812 +msgid "The Store in Box1 block is used to store a value in Box1." msgstr "" -#: js/ActionBlocks.js:1019 -#: js/ActionBlocks.js:1026 -msgid "The Listen block is used to listen for an event such as a mouse click." +#: js/blocks/BoxesBlocks.js:826 +msgid "store in box1" msgstr "" -#: js/ActionBlocks.js:1028 -msgid "When the event happens, an action is taken." +#: js/blocks/DictBlocks.js:77 +msgid "show dictionary" +msgstr "" + +#: js/blocks/DictBlocks.js:80 +#: js/blocks/DictBlocks.js:145 +#: js/blocks/DictBlocks.js:216 +#: js/blocks/DictBlocks.js:290 +#: js/blocks/ProgramBlocks.js:396 +#: js/blocks/ProgramBlocks.js:501 +#: js/blocks/ProgramBlocks.js:664 +msgid "My Dictionary" msgstr "" -#: js/ActionBlocks.js:1045 -msgid "on" +#: js/blocks/DictBlocks.js:129 +msgid "The Dictionary block returns a dictionary." msgstr "" -#: js/ActionBlocks.js:1048 -#: js/ActionBlocks.js:1049 -#: js/ActionBlocks.js:1153 -msgid "event" +#: js/blocks/DictBlocks.js:197 +#: js/blocks/DictBlocks.js:339 +msgid "The Get-dict block returns a value in the dictionary for a specified key." msgstr "" -#: js/ActionBlocks.js:1133 -msgid "The Broadcast block is used to trigger an event." +#: js/blocks/DictBlocks.js:212 +#: js/blocks/DictBlocks.js:354 +#.TRANS: retrieve a value from the dictionary with a given key +msgid "get value" msgstr "" -#: js/ActionBlocks.js:1151 -msgid "broadcast" +#: js/blocks/DictBlocks.js:215 +#: js/blocks/DictBlocks.js:216 +#: js/blocks/DictBlocks.js:289 +#: js/blocks/DictBlocks.js:290 +#: js/blocks/DictBlocks.js:357 +#: js/blocks/DictBlocks.js:430 +#: js/blocks/DictBlocks.js:431 +msgid "key2" msgstr "" -#: js/ActionBlocks.js:1208 -msgid "Each Start block is a separate voice." +#: js/blocks/DictBlocks.js:215 +#: js/blocks/DictBlocks.js:216 +#: js/blocks/DictBlocks.js:289 +#: js/blocks/DictBlocks.js:290 +#: js/blocks/DictBlocks.js:357 +#: js/blocks/DictBlocks.js:430 +#: js/blocks/DictBlocks.js:431 +#: js/blocks/IntervalsBlocks.js:1462 +#.TRANS: key, e.g., C in C Major +msgid "key" msgstr "" -#: js/ActionBlocks.js:1304 -msgid "It is often used for storing a phrase of music that is repeated." +#: js/blocks/DictBlocks.js:271 +#: js/blocks/DictBlocks.js:411 +msgid "The Set-dict block sets a value in the dictionary for a specified key." msgstr "" -#: js/ActionBlocks.js:1495 -msgid "define temperament" +#: js/blocks/DictBlocks.js:286 +#: js/blocks/DictBlocks.js:427 +#.TRANS: set a value in the dictionary for a given key +msgid "set value" msgstr "" -#: js/EnsembleBlocks.js:66 +#: js/blocks/EnsembleBlocks.js:66 msgid "mouse index heap" msgstr "" -#: js/EnsembleBlocks.js:68 +#: js/blocks/EnsembleBlocks.js:68 msgid "The Mouse index heap block returns a value in the heap at a specified location for a specified mouse." msgstr "" -#: js/EnsembleBlocks.js:77 -#: js/EnsembleBlocks.js:1080 +#: js/blocks/EnsembleBlocks.js:77 +#: js/blocks/EnsembleBlocks.js:1080 msgid "mouse name" msgstr "" -#: js/EnsembleBlocks.js:77 -#: js/EnsembleBlocks.js:92 -#: js/HeapBlocks.js:544 +#: js/blocks/EnsembleBlocks.js:77 +#: js/blocks/EnsembleBlocks.js:92 +#: js/blocks/HeapBlocks.js:544 #.TRANS: value1 is a numeric value (JAPANESE ONLY) msgid "index" msgstr "" -#: js/EnsembleBlocks.js:80 +#: js/blocks/EnsembleBlocks.js:80 msgid "turtle index heap" msgstr "" -#: js/EnsembleBlocks.js:82 +#: js/blocks/EnsembleBlocks.js:82 msgid "The Turtle index heap block returns a value in the heap at a specified location for a specified turtle." msgstr "" -#: js/EnsembleBlocks.js:90 -#: js/EnsembleBlocks.js:167 -#: js/EnsembleBlocks.js:230 -#: js/EnsembleBlocks.js:316 -#: js/EnsembleBlocks.js:362 -#: js/EnsembleBlocks.js:400 -#: js/EnsembleBlocks.js:454 -#: js/EnsembleBlocks.js:504 -#: js/EnsembleBlocks.js:550 -#: js/EnsembleBlocks.js:597 -#: js/EnsembleBlocks.js:651 -#: js/EnsembleBlocks.js:763 -#: js/EnsembleBlocks.js:854 -#: js/EnsembleBlocks.js:915 -#: js/EnsembleBlocks.js:955 -#: js/EnsembleBlocks.js:1219 -#: js/EnsembleBlocks.js:1293 +#: js/blocks/EnsembleBlocks.js:90 +#: js/blocks/EnsembleBlocks.js:167 +#: js/blocks/EnsembleBlocks.js:230 +#: js/blocks/EnsembleBlocks.js:316 +#: js/blocks/EnsembleBlocks.js:362 +#: js/blocks/EnsembleBlocks.js:400 +#: js/blocks/EnsembleBlocks.js:454 +#: js/blocks/EnsembleBlocks.js:504 +#: js/blocks/EnsembleBlocks.js:550 +#: js/blocks/EnsembleBlocks.js:597 +#: js/blocks/EnsembleBlocks.js:651 +#: js/blocks/EnsembleBlocks.js:763 +#: js/blocks/EnsembleBlocks.js:854 +#: js/blocks/EnsembleBlocks.js:915 +#: js/blocks/EnsembleBlocks.js:955 +#: js/blocks/EnsembleBlocks.js:1219 +#: js/blocks/EnsembleBlocks.js:1293 #.TRANS: Yertle is the name of a turtle. msgid "Yertle" msgstr "" -#: js/EnsembleBlocks.js:92 -#: js/EnsembleBlocks.js:1089 +#: js/blocks/EnsembleBlocks.js:92 +#: js/blocks/EnsembleBlocks.js:1089 msgid "turtle name" msgstr "" -#: js/EnsembleBlocks.js:122 -#: js/EnsembleBlocks.js:1197 -#: js/HeapBlocks.js:474 -#: js/HeapBlocks.js:572 +#: js/blocks/EnsembleBlocks.js:122 +#: js/blocks/EnsembleBlocks.js:1197 +#: js/blocks/HeapBlocks.js:474 +#: js/blocks/HeapBlocks.js:572 msgid "Index must be > 0." msgstr "" -#: js/EnsembleBlocks.js:127 -#: js/HeapBlocks.js:479 -#: js/HeapBlocks.js:577 +#: js/blocks/EnsembleBlocks.js:127 +#: js/blocks/HeapBlocks.js:479 +#: js/blocks/HeapBlocks.js:577 msgid "Maximum heap size is 1000." msgstr "" -#: js/EnsembleBlocks.js:145 +#: js/blocks/EnsembleBlocks.js:145 msgid "stop mouse" msgstr "" -#: js/EnsembleBlocks.js:147 +#: js/blocks/EnsembleBlocks.js:147 msgid "The Stop mouse block stops the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:158 +#: js/blocks/EnsembleBlocks.js:158 msgid "stop turtle" msgstr "" -#: js/EnsembleBlocks.js:160 +#: js/blocks/EnsembleBlocks.js:160 msgid "The Stop turtle block stops the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:184 -#: js/EnsembleBlocks.js:247 -#: js/EnsembleBlocks.js:413 -#: js/EnsembleBlocks.js:468 -#: js/EnsembleBlocks.js:706 -#: js/EnsembleBlocks.js:808 -#: js/EnsembleBlocks.js:870 -#: js/EnsembleBlocks.js:1190 -#: js/EnsembleBlocks.js:1253 +#: js/blocks/EnsembleBlocks.js:184 +#: js/blocks/EnsembleBlocks.js:247 +#: js/blocks/EnsembleBlocks.js:413 +#: js/blocks/EnsembleBlocks.js:468 +#: js/blocks/EnsembleBlocks.js:706 +#: js/blocks/EnsembleBlocks.js:808 +#: js/blocks/EnsembleBlocks.js:870 +#: js/blocks/EnsembleBlocks.js:1190 +#: js/blocks/EnsembleBlocks.js:1253 msgid "Cannot find mouse" msgstr "" -#: js/EnsembleBlocks.js:186 -#: js/EnsembleBlocks.js:249 -#: js/EnsembleBlocks.js:415 -#: js/EnsembleBlocks.js:470 -#: js/EnsembleBlocks.js:708 -#: js/EnsembleBlocks.js:810 -#: js/EnsembleBlocks.js:872 -#: js/EnsembleBlocks.js:1192 -#: js/EnsembleBlocks.js:1255 +#: js/blocks/EnsembleBlocks.js:186 +#: js/blocks/EnsembleBlocks.js:249 +#: js/blocks/EnsembleBlocks.js:415 +#: js/blocks/EnsembleBlocks.js:470 +#: js/blocks/EnsembleBlocks.js:708 +#: js/blocks/EnsembleBlocks.js:810 +#: js/blocks/EnsembleBlocks.js:872 +#: js/blocks/EnsembleBlocks.js:1192 +#: js/blocks/EnsembleBlocks.js:1255 msgid "Cannot find turtle" msgstr "" -#: js/EnsembleBlocks.js:206 +#: js/blocks/EnsembleBlocks.js:206 msgid "start mouse" msgstr "" -#: js/EnsembleBlocks.js:209 +#: js/blocks/EnsembleBlocks.js:209 msgid "The Start mouse block starts the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:220 +#: js/blocks/EnsembleBlocks.js:220 msgid "start turtle" msgstr "" -#: js/EnsembleBlocks.js:223 +#: js/blocks/EnsembleBlocks.js:223 msgid "The Start turtle block starts the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:256 +#: js/blocks/EnsembleBlocks.js:256 msgid "Mouse is already running." msgstr "" -#: js/EnsembleBlocks.js:258 +#: js/blocks/EnsembleBlocks.js:258 msgid "Turtle is already running." msgstr "" -#: js/EnsembleBlocks.js:282 +#: js/blocks/EnsembleBlocks.js:282 msgid "Cannot find start block" msgstr "" -#: js/EnsembleBlocks.js:292 +#: js/blocks/EnsembleBlocks.js:292 #.TRANS: pen color for this mouse msgid "mouse color" msgstr "" -#: js/EnsembleBlocks.js:294 +#: js/blocks/EnsembleBlocks.js:294 msgid "The Mouse color block returns the pen color of the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:306 +#: js/blocks/EnsembleBlocks.js:306 #.TRANS: pen color for this turtle msgid "turtle color" msgstr "" -#: js/EnsembleBlocks.js:308 +#: js/blocks/EnsembleBlocks.js:308 msgid "The Turtle color block returns the pen color of the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:338 +#: js/blocks/EnsembleBlocks.js:338 #.TRANS: heading (compass direction) for this mouse msgid "mouse heading" msgstr "" -#: js/EnsembleBlocks.js:340 +#: js/blocks/EnsembleBlocks.js:340 msgid "The Mouse heading block returns the heading of the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:352 +#: js/blocks/EnsembleBlocks.js:352 #.TRANS: heading (compass direction) for this turtle msgid "turtle heading" msgstr "" -#: js/EnsembleBlocks.js:354 +#: js/blocks/EnsembleBlocks.js:354 msgid "The Turtle heading block returns the heading of the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:384 -#: js/EnsembleBlocks.js:439 +#: js/blocks/EnsembleBlocks.js:384 +#: js/blocks/EnsembleBlocks.js:439 #.TRANS: set xy position for this mouse msgid "set mouse" msgstr "" -#: js/EnsembleBlocks.js:391 -#: js/EnsembleBlocks.js:402 -#: js/BoxesBlocks.js:595 -msgid "name1" -msgstr "name" - -#: js/EnsembleBlocks.js:391 -#: js/EnsembleBlocks.js:402 -#: js/ProgramBlocks.js:881 -#: js/GraphicsBlocks.js:235 -#: js/GraphicsBlocks.js:313 -#: js/GraphicsBlocks.js:436 -#: js/GraphicsBlocks.js:487 -#: js/GraphicsBlocks.js:534 -#: js/GraphicsBlocks.js:750 +#: js/blocks/EnsembleBlocks.js:391 +#: js/blocks/EnsembleBlocks.js:402 +#: js/blocks/GraphicsBlocks.js:235 +#: js/blocks/GraphicsBlocks.js:313 +#: js/blocks/GraphicsBlocks.js:436 +#: js/blocks/GraphicsBlocks.js:487 +#: js/blocks/GraphicsBlocks.js:534 +#: js/blocks/GraphicsBlocks.js:750 +#: js/blocks/ProgramBlocks.js:881 msgid "x" msgstr "" -#: js/EnsembleBlocks.js:391 -#: js/EnsembleBlocks.js:402 -#: js/ProgramBlocks.js:881 -#: js/GraphicsBlocks.js:149 -#: js/GraphicsBlocks.js:313 -#: js/GraphicsBlocks.js:436 -#: js/GraphicsBlocks.js:487 -#: js/GraphicsBlocks.js:534 -#: js/GraphicsBlocks.js:750 +#: js/blocks/EnsembleBlocks.js:391 +#: js/blocks/EnsembleBlocks.js:402 +#: js/blocks/GraphicsBlocks.js:149 +#: js/blocks/GraphicsBlocks.js:313 +#: js/blocks/GraphicsBlocks.js:436 +#: js/blocks/GraphicsBlocks.js:487 +#: js/blocks/GraphicsBlocks.js:534 +#: js/blocks/GraphicsBlocks.js:750 +#: js/blocks/ProgramBlocks.js:881 msgid "y" msgstr "" -#: js/EnsembleBlocks.js:395 -#: js/EnsembleBlocks.js:452 +#: js/blocks/EnsembleBlocks.js:395 +#: js/blocks/EnsembleBlocks.js:452 #.TRANS: set xy position for this turtle msgid "set turtle" msgstr "" -#: js/EnsembleBlocks.js:433 +#: js/blocks/EnsembleBlocks.js:433 msgid "The Set mouse block sends a stack of blocks to be run by the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:446 +#: js/blocks/EnsembleBlocks.js:446 msgid "The Set turtle block sends a stack of blocks to be run by the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:480 +#: js/blocks/EnsembleBlocks.js:480 #.TRANS: y position for this mouse msgid "mouse y" msgstr "" -#: js/EnsembleBlocks.js:482 +#: js/blocks/EnsembleBlocks.js:482 msgid "The Y mouse block returns the Y position of the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:494 +#: js/blocks/EnsembleBlocks.js:494 #.TRANS: y position for this turtle msgid "turtle y" msgstr "" -#: js/EnsembleBlocks.js:496 +#: js/blocks/EnsembleBlocks.js:496 msgid "The Y turtle block returns the Y position of the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:526 +#: js/blocks/EnsembleBlocks.js:526 #.TRANS: x position for this mouse msgid "mouse x" msgstr "" -#: js/EnsembleBlocks.js:528 +#: js/blocks/EnsembleBlocks.js:528 msgid "The X mouse block returns the X position of the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:540 +#: js/blocks/EnsembleBlocks.js:540 #.TRANS: x position for this turtle msgid "turtle x" msgstr "" -#: js/EnsembleBlocks.js:542 +#: js/blocks/EnsembleBlocks.js:542 msgid "The X turtle block returns the X position of the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:573 +#: js/blocks/EnsembleBlocks.js:573 #.TRANS: notes played by this mouse msgid "mouse notes played" msgstr "" -#: js/EnsembleBlocks.js:575 +#: js/blocks/EnsembleBlocks.js:575 msgid "The Mouse elapse notes block returns the number of notes played by the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:587 +#: js/blocks/EnsembleBlocks.js:587 #.TRANS: notes played by this turtle msgid "turtle notes played" msgstr "" -#: js/EnsembleBlocks.js:589 +#: js/blocks/EnsembleBlocks.js:589 msgid "The Turtle elapse notes block returns the number of notes played by the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:627 +#: js/blocks/EnsembleBlocks.js:627 #.TRANS: convert current note for this turtle to piano key (1-88) msgid "mouse pitch number" msgstr "" -#: js/EnsembleBlocks.js:629 +#: js/blocks/EnsembleBlocks.js:629 msgid "The Mouse pitch block returns the current pitch number being played by the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:641 +#: js/blocks/EnsembleBlocks.js:641 #.TRANS: convert current note for this turtle to piano key (1-88) msgid "turtle pitch number" msgstr "" -#: js/EnsembleBlocks.js:643 -msgid "The Turrle pitch block returns the current pitch number being played by the specified turtle." +#: js/blocks/EnsembleBlocks.js:643 +msgid "The Turtle pitch block returns the current pitch number being played by the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:747 -#: js/EnsembleBlocks.js:819 +#: js/blocks/EnsembleBlocks.js:747 +#: js/blocks/EnsembleBlocks.js:819 #.TRANS: note value is the duration of the note played by this mouse msgid "mouse note value" msgstr "" -#: js/EnsembleBlocks.js:757 +#: js/blocks/EnsembleBlocks.js:757 #.TRANS: note value is the duration of the note played by this turtle msgid "turtle note value" msgstr "" -#: js/EnsembleBlocks.js:830 +#: js/blocks/EnsembleBlocks.js:830 #.TRANS: sync is short for synchronization msgid "mouse sync" msgstr "" -#: js/EnsembleBlocks.js:832 +#: js/blocks/EnsembleBlocks.js:832 msgid "The Mouse sync block aligns the beat count between mice." msgstr "" -#: js/EnsembleBlocks.js:844 +#: js/blocks/EnsembleBlocks.js:844 #.TRANS: sync is short for synchronization msgid "turtle sync" msgstr "" -#: js/EnsembleBlocks.js:846 +#: js/blocks/EnsembleBlocks.js:846 msgid "The Turtle sync block aligns the beat count between turtles." msgstr "" -#: js/EnsembleBlocks.js:887 +#: js/blocks/EnsembleBlocks.js:887 msgid "The Found mouse block will return true if the specified mouse can be found." msgstr "" -#: js/EnsembleBlocks.js:893 +#: js/blocks/EnsembleBlocks.js:893 msgid "found mouse" msgstr "" -#: js/EnsembleBlocks.js:903 +#: js/blocks/EnsembleBlocks.js:903 msgid "The Found turtle block will return true if the specified turtle can be found." msgstr "" -#: js/EnsembleBlocks.js:909 +#: js/blocks/EnsembleBlocks.js:909 msgid "found turtle" msgstr "" -#: js/EnsembleBlocks.js:932 +#: js/blocks/EnsembleBlocks.js:932 msgid "new mouse" msgstr "" -#: js/EnsembleBlocks.js:934 +#: js/blocks/EnsembleBlocks.js:934 msgid "The New mouse block will create a new mouse." msgstr "" -#: js/EnsembleBlocks.js:945 +#: js/blocks/EnsembleBlocks.js:945 msgid "new turtle" msgstr "" -#: js/EnsembleBlocks.js:947 +#: js/blocks/EnsembleBlocks.js:947 msgid "The New turtle block will create a new turtle." msgstr "" -#: js/EnsembleBlocks.js:1011 +#: js/blocks/EnsembleBlocks.js:1011 msgid "set mouse color" msgstr "" -#: js/EnsembleBlocks.js:1014 +#: js/blocks/EnsembleBlocks.js:1014 msgid "The Set-mouse-color block is used to set the color of a mouse." msgstr "" -#: js/EnsembleBlocks.js:1020 +#: js/blocks/EnsembleBlocks.js:1020 msgid "set turtle color" msgstr "" -#: js/EnsembleBlocks.js:1023 +#: js/blocks/EnsembleBlocks.js:1023 msgid "The Set-turtle-color block is used to set the color of a turtle." msgstr "" -#: js/EnsembleBlocks.js:1083 +#: js/blocks/EnsembleBlocks.js:1083 msgid "The Mouse-name block returns the name of a mouse." msgstr "" -#: js/EnsembleBlocks.js:1092 +#: js/blocks/EnsembleBlocks.js:1092 msgid "The Turtle-name block returns the name of a turtle." msgstr "" -#: js/EnsembleBlocks.js:1115 +#: js/blocks/EnsembleBlocks.js:1115 msgid "mouse count" msgstr "" -#: js/EnsembleBlocks.js:1118 +#: js/blocks/EnsembleBlocks.js:1118 msgid "The Mouse-count block returns the number of mice." msgstr "" -#: js/EnsembleBlocks.js:1124 +#: js/blocks/EnsembleBlocks.js:1124 msgid "turtle count" msgstr "" -#: js/EnsembleBlocks.js:1127 +#: js/blocks/EnsembleBlocks.js:1127 msgid "The Turtle-count block returns the number of turtles." msgstr "" -#: js/EnsembleBlocks.js:1149 +#: js/blocks/EnsembleBlocks.js:1149 msgid "nth mouse name" msgstr "" -#: js/EnsembleBlocks.js:1152 +#: js/blocks/EnsembleBlocks.js:1152 msgid "The Nth-Mouse name block returns the name of the nth mouse." msgstr "" -#: js/EnsembleBlocks.js:1158 +#: js/blocks/EnsembleBlocks.js:1158 msgid "nth turtle name" msgstr "" -#: js/EnsembleBlocks.js:1161 +#: js/blocks/EnsembleBlocks.js:1161 msgid "The Nth-Turtle name block returns the name of the nth turtle." msgstr "" -#: js/EnsembleBlocks.js:1205 -#: js/EnsembleBlocks.js:1265 +#: js/blocks/EnsembleBlocks.js:1205 +#: js/blocks/EnsembleBlocks.js:1265 msgid "set name" msgstr "" -#: js/EnsembleBlocks.js:1214 -#: js/EnsembleBlocks.js:1221 +#: js/blocks/EnsembleBlocks.js:1214 +#: js/blocks/EnsembleBlocks.js:1221 msgid "source" msgstr "" -#: js/EnsembleBlocks.js:1214 -#: js/EnsembleBlocks.js:1221 +#: js/blocks/EnsembleBlocks.js:1214 +#: js/blocks/EnsembleBlocks.js:1221 msgid "target" msgstr "" -#: js/EnsembleBlocks.js:1271 +#: js/blocks/EnsembleBlocks.js:1271 msgid "The Set-name block is used to name a mouse." msgstr "" -#: js/EnsembleBlocks.js:1284 +#: js/blocks/EnsembleBlocks.js:1284 msgid "The Set-name block is used to name a turtle." msgstr "" -#: js/BooleanBlocks.js:44 -msgid "The Not block is the logical not operator." -msgstr "" - -#: js/BooleanBlocks.js:62 -msgid "not" -msgstr "" - -#: js/BooleanBlocks.js:134 -msgid "The And block is the logical and operator." -msgstr "" - -#: js/BooleanBlocks.js:152 -msgid "and" -msgstr "" - -#: js/BooleanBlocks.js:218 -msgid "The Or block is the logical or operator." -msgstr "" - -#: js/BooleanBlocks.js:236 -msgid "or" -msgstr "" - -#: js/BooleanBlocks.js:302 -msgid "The XOR block is the logical XOR operator." -msgstr "" - -#: js/BooleanBlocks.js:320 -msgid "xor" -msgstr "" - -#: js/BooleanBlocks.js:808 -msgid "The Equal block returns True if the two numbers are equal." -msgstr "" - -#: js/BooleanBlocks.js:909 -msgid "The Not-equal-to block returns True if the two numbers are not equal to each other." -msgstr "" - -#: js/BooleanBlocks.js:1008 -msgid "The Boolean block is used to specify true or false." -msgstr "" - -#: js/MediaBlocks.js:35 -#.TRANS: right side of the screen -msgid "right (screen)" -msgstr "" - -#: js/MediaBlocks.js:45 -#: js/MediaBlocks.js:56 -msgid "The Right block returns the position of the right of the canvas." -msgstr "" - -#: js/MediaBlocks.js:97 -#.TRANS: left side of the screen -msgid "left (screen)" -msgstr "" - -#: js/MediaBlocks.js:107 -#: js/MediaBlocks.js:118 -msgid "The Left block returns the position of the left of the canvas." -msgstr "" - -#: js/MediaBlocks.js:158 -msgid "top (screen)" -msgstr "" - -#: js/MediaBlocks.js:168 -#: js/MediaBlocks.js:179 -msgid "The Top block returns the position of the top of the canvas." -msgstr "" - -#: js/MediaBlocks.js:219 -msgid "bottom (screen)" -msgstr "" - -#: js/MediaBlocks.js:229 -#: js/MediaBlocks.js:240 -msgid "The Bottom block returns the position of the bottom of the canvas." -msgstr "" - -#: js/MediaBlocks.js:282 -msgid "width" +#: js/blocks/ExtrasBlocks.js:33 +msgid "fraction" msgstr "" -#: js/MediaBlocks.js:291 -msgid "The Width block returns the width of the canvas." +#: js/blocks/ExtrasBlocks.js:36 +msgid "Convert a float to a fraction" msgstr "" -#: js/MediaBlocks.js:325 -msgid "height" +#: js/blocks/ExtrasBlocks.js:93 +msgid "save as ABC" msgstr "" -#: js/MediaBlocks.js:334 -msgid "The Height block returns the height of the canvas." +#: js/blocks/ExtrasBlocks.js:96 +#: js/blocks/ExtrasBlocks.js:132 +#: js/blocks/ExtrasBlocks.js:168 +msgid "title" msgstr "" -#: js/MediaBlocks.js:369 -#.TRANS: stops playback of an audio recording -msgid "stop play" +#: js/blocks/ExtrasBlocks.js:129 +msgid "save as Lilypond" msgstr "" -#: js/MediaBlocks.js:404 -#.TRANS: Erases the images and text -msgid "erase media" +#: js/blocks/ExtrasBlocks.js:165 +msgid "save as SVG" msgstr "" -#: js/MediaBlocks.js:409 -msgid "The Erase Media block erases text and images." +#: js/blocks/ExtrasBlocks.js:216 +msgid "no background" msgstr "" -#: js/MediaBlocks.js:439 -#.TRANS: play an audio recording -msgid "play back" +#: js/blocks/ExtrasBlocks.js:219 +msgid "The No background block eliminates the background from the saved SVG output." msgstr "" -#: js/MediaBlocks.js:487 -msgid "speak" +#: js/blocks/ExtrasBlocks.js:247 +msgid "show blocks" msgstr "" -#: js/MediaBlocks.js:495 -msgid "The Speak block outputs to the text-to-speech synthesizer" +#: js/blocks/ExtrasBlocks.js:249 +msgid "The Show blocks block shows the blocks." msgstr "" -#: js/MediaBlocks.js:546 -msgid "camera" +#: js/blocks/ExtrasBlocks.js:274 +msgid "hide blocks" msgstr "" -#: js/MediaBlocks.js:551 -msgid "The Camera block connects a webcam to the Show block." +#: js/blocks/ExtrasBlocks.js:276 +msgid "The Hide blocks block hides the blocks." msgstr "" -#: js/MediaBlocks.js:574 -msgid "video" +#: js/blocks/ExtrasBlocks.js:305 +#: js/blocks/ExtrasBlocks.js:338 +msgid "The Space block is used to add space between blocks." msgstr "" -#: js/MediaBlocks.js:579 -msgid "The Video block selects video for use with the Show block." +#: js/blocks/ExtrasBlocks.js:376 +msgid "wait" msgstr "" -#: js/MediaBlocks.js:607 -msgid "The Open file block opens a file for use with the Show block." +#: js/blocks/ExtrasBlocks.js:379 +msgid "The Wait block pauses the program for a specified number of seconds." msgstr "" -#: js/MediaBlocks.js:645 -msgid "stop media" +#: js/blocks/ExtrasBlocks.js:433 +#: plugins/facebook.rtp:30 +msgid "comment" msgstr "" -#: js/MediaBlocks.js:650 -msgid "The Stop media block stops audio or video playback." +#: js/blocks/ExtrasBlocks.js:469 +msgid "print" msgstr "" -#: js/MediaBlocks.js:679 -#: js/PitchBlocks.js:1539 -#: js/phrasemaker.js:822 -#: js/musickeyboard.js:1654 -#.TRANS: a measure of frequency: one cycle per second -msgid "hertz" +#: js/blocks/ExtrasBlocks.js:476 +msgid "The Print block displays text at the top of the screen." msgstr "" -#: js/MediaBlocks.js:692 -msgid "duration (ms)" +#: js/blocks/ExtrasBlocks.js:582 +msgid "display grid" msgstr "" -#: js/MediaBlocks.js:728 -#.TRANS: translate a note into hertz, e.g., A4 -> 440HZ -msgid "note to frequency" +#: js/blocks/ExtrasBlocks.js:587 +msgid "The Display Grid Block changes the grid type" msgstr "" -#: js/MediaBlocks.js:736 -msgid "The To frequency block converts a pitch name and octave to Hertz." +#: js/blocks/ExtrasBlocks.js:689 +#: js/blocks/ExtrasBlocks.js:708 +#: js/blocks/ExtrasBlocks.js:731 +#: js/blocks/ExtrasBlocks.js:754 +#: js/blocks/ExtrasBlocks.js:772 +#: js/blocks/ExtrasBlocks.js:791 +#: js/blocks/ExtrasBlocks.js:810 +#: js/blocks/ExtrasBlocks.js:829 +msgid "unknown" msgstr "" -#: js/MediaBlocks.js:746 -#: js/PitchBlocks.js:656 -#: js/PitchBlocks.js:932 -#: js/PitchBlocks.js:1827 -#.TRANS: name2 is name as in name of pitch (JAPANESE ONLY) -msgid "name2" -msgstr "name" - -#: js/MediaBlocks.js:812 -msgid "The Avatar block is used to change the appearance of the mouse." +#: js/blocks/FlowBlocks.js:41 +msgid "The Backward block runs code in reverse order (Musical retrograde)." msgstr "" -#: js/MediaBlocks.js:819 -msgid "The Avatar block is used to change the appearance of the turtle." +#: js/blocks/FlowBlocks.js:48 +msgid "backward" msgstr "" -#: js/MediaBlocks.js:831 -#: js/MediaBlocks.js:891 -#.TRANS: a media object -msgid "size" +#: js/blocks/FlowBlocks.js:124 +msgid "The Duplicate block will run each block multiple times." msgstr "" -#: js/MediaBlocks.js:831 -msgid "image" +#: js/blocks/FlowBlocks.js:136 +msgid "duplicate" msgstr "" -#: js/MediaBlocks.js:880 -msgid "The Show block is used to display text or images on the canvas." +#: js/blocks/FlowBlocks.js:334 +msgid "The Default block is used inside of a Switch to define the default action." msgstr "" -#: js/MediaBlocks.js:888 -#.TRANS: show1 is show as in display an image or text on the screen. -msgid "show1" -msgstr "show" - -#: js/MediaBlocks.js:891 -msgid "obj" +#: js/blocks/FlowBlocks.js:342 +msgid "default" msgstr "" -#: js/MediaBlocks.js:938 -msgid "The Media block is used to import an image." +#: js/blocks/FlowBlocks.js:361 +#: js/blocks/FlowBlocks.js:418 +msgid "The Case Block must be used inside of a Switch Block." msgstr "" -#: js/MediaBlocks.js:973 -msgid "The Text block holds a text string." +#: js/blocks/FlowBlocks.js:389 +msgid "The Case block is used inside of a Switch to define matches." msgstr "" -#: js/ProgramBlocks.js:33 -msgid "The Load-heap-from-app block loads the heap from a web page." +#: js/blocks/FlowBlocks.js:397 +msgid "case" msgstr "" -#: js/ProgramBlocks.js:44 -#.TRANS: load the heap contents from a URL -msgid "load heap from App" +#: js/blocks/FlowBlocks.js:446 +msgid "The Switch block will run the code in the matching Case." msgstr "" -#: js/ProgramBlocks.js:95 -msgid "Error parsing JSON data:" +#: js/blocks/FlowBlocks.js:454 +msgid "switch" msgstr "" -#: js/ProgramBlocks.js:100 -msgid "404: Page not found" +#: js/blocks/FlowBlocks.js:595 +msgid "The Stop block will stop a loop" msgstr "" -#: js/ProgramBlocks.js:133 -msgid "The Save-heap-to-app block saves the heap to a web page." +#: js/blocks/FlowBlocks.js:597 +msgid "Forever, Repeat, While, or Until." msgstr "" -#: js/ProgramBlocks.js:144 -#.TRANS: save the heap contents to a URL -msgid "save heap to App" +#: js/blocks/FlowBlocks.js:604 +#: js/widgets/timbre.js:417 +#: js/widgets/timbre.js:419 +#: js/widgets/musickeyboard.js:819 +#: js/widgets/musickeyboard.js:821 +#: js/widgets/phrasemaker.js:4202 +#: plugins/rodi.rtp:29 +#: plugins/rodi.rtp:73 +#: plugins/rodi.rtp:413 +msgid "stop" msgstr "" -#: js/ProgramBlocks.js:189 -msgid "Cannot find a valid heap for" +#: js/blocks/FlowBlocks.js:653 +msgid "The Waitfor block will wait until the condition is true." msgstr "" -#: js/ProgramBlocks.js:206 -msgid "The Load-heap block loads the heap from a file." +#: js/blocks/FlowBlocks.js:661 +msgid "wait for" msgstr "" -#: js/ProgramBlocks.js:217 -#.TRANS: load the heap from a file -msgid "load heap" +#: js/blocks/FlowBlocks.js:732 +msgid "The Until block will repeat until the condition is true." msgstr "" -#: js/ProgramBlocks.js:270 -msgid "The file you selected does not contain a valid heap." +#: js/blocks/FlowBlocks.js:740 +msgid "until" msgstr "" -#: js/ProgramBlocks.js:275 -msgid "The loadHeap block needs a loadFile block." -msgstr "" +#: js/blocks/FlowBlocks.js:742 +#: js/blocks/FlowBlocks.js:822 +msgid "do2" +msgstr "do" -#: js/ProgramBlocks.js:291 -msgid "The Set-heap block loads the heap." +#: js/blocks/FlowBlocks.js:812 +msgid "The While block will repeat while the condition is true." msgstr "" -#: js/ProgramBlocks.js:299 -#: js/HeapBlocks.js:539 -#.TRANS: load the heap from a JSON encoding -msgid "set heap" +#: js/blocks/FlowBlocks.js:820 +msgid "while" msgstr "" -#: js/ProgramBlocks.js:340 -msgid "The block you selected does not contain a valid heap." +#: js/blocks/FlowBlocks.js:903 +#: js/blocks/FlowBlocks.js:968 +#: js/blocks/FlowBlocks.js:979 +msgid "In this example if the mouse button is pressed a snare drum will play." msgstr "" -#: js/ProgramBlocks.js:343 -msgid "The Set heap block needs a heap." +#: js/blocks/FlowBlocks.js:925 +#: js/blocks/FlowBlocks.js:988 +msgid "if" msgstr "" -#: js/ProgramBlocks.js:360 -msgid "The Load-dictionary block loads a dictionary from a file." +#: js/blocks/FlowBlocks.js:927 +#: js/blocks/FlowBlocks.js:990 +msgid "then" msgstr "" -#: js/ProgramBlocks.js:372 -#.TRANS: load a dictionary from a file -msgid "load dictionary" +#: js/blocks/FlowBlocks.js:927 +msgid "else" msgstr "" -#: js/ProgramBlocks.js:390 -#: js/ProgramBlocks.js:658 -#: js/ToneBlocks.js:1025 -msgid "file" +#: js/blocks/FlowBlocks.js:1025 +msgid "The Forever block will repeat the contained blocks forever." msgstr "" -#: js/ProgramBlocks.js:396 -#: js/ProgramBlocks.js:501 -#: js/ProgramBlocks.js:664 -#: js/DictBlocks.js:80 -#: js/DictBlocks.js:145 -#: js/DictBlocks.js:216 -#: js/DictBlocks.js:290 -msgid "My Dictionary" +#: js/blocks/FlowBlocks.js:1037 +msgid "forever" msgstr "" -#: js/ProgramBlocks.js:444 -msgid "The file you selected does not contain a valid dictionary." +#: js/blocks/FlowBlocks.js:1073 +msgid "The Repeat block will repeat the contained blocks." msgstr "" -#: js/ProgramBlocks.js:449 -msgid "The load dictionary block needs a load file block." +#: js/blocks/FlowBlocks.js:1075 +msgid "In this example the note will be played 4 times." msgstr "" -#: js/ProgramBlocks.js:466 -msgid "The Set-dictionary block loads a dictionary." +#: js/blocks/FlowBlocks.js:1083 +msgid "repeat" msgstr "" -#: js/ProgramBlocks.js:477 -#.TRANS: load a dictionary from a JSON -msgid "set dictionary" +#: js/blocks/FlowBlocks.js:1123 +msgid "duplicate factor" msgstr "" -#: js/ProgramBlocks.js:546 -msgid "The block you selected does not contain a valid dictionary." +#: js/blocks/HeapBlocks.js:49 +msgid "The Heap block returns the heap." msgstr "" -#: js/ProgramBlocks.js:550 -msgid "The set dictionary block needs a dictionary." +#: js/blocks/HeapBlocks.js:133 +msgid "show heap" msgstr "" -#: js/ProgramBlocks.js:567 -msgid "The Save-heap block saves the heap to a file." +#: js/blocks/HeapBlocks.js:181 +msgid "The Heap-length block returns the length of the heap." msgstr "" -#: js/ProgramBlocks.js:578 -#.TRANS: save the heap to a file -msgid "save heap" +#: js/blocks/HeapBlocks.js:195 +msgid "heap length" msgstr "" -#: js/ProgramBlocks.js:629 -msgid "The Save-dictionary block saves a dictionary to a file." +#: js/blocks/HeapBlocks.js:254 +msgid "The Heap-empty? block returns true if the heap is empty." msgstr "" -#: js/ProgramBlocks.js:640 -#.TRANS: save a dictionary to a file -msgid "save dictionary" +#: js/blocks/HeapBlocks.js:268 +#.TRANS: Is the heap empty? +msgid "heap empty?" msgstr "" -#: js/ProgramBlocks.js:720 -msgid "The Open palette block opens a palette." +#: js/blocks/HeapBlocks.js:317 +msgid "The Empty-heap block empties the heap." msgstr "" -#: js/ProgramBlocks.js:727 -msgid "open palette" +#: js/blocks/HeapBlocks.js:327 +#: js/blocks/HeapBlocks.js:647 +#.TRANS: empty the heap +msgid "empty heap" msgstr "" -#: js/ProgramBlocks.js:785 -msgid "The Delete block block removes a block." +#: js/blocks/HeapBlocks.js:371 +msgid "The Reverse-heap block reverses the order of the heap." msgstr "" -#: js/ProgramBlocks.js:797 -#.TRANS: Move this block to the trash. -msgid "delete block" +#: js/blocks/HeapBlocks.js:384 +#.TRANS: reverse the order of the heap +msgid "reverse heap" msgstr "" -#: js/ProgramBlocks.js:861 -msgid "The Move block block moves a block." +#: js/blocks/HeapBlocks.js:428 +msgid "The Index-heap block returns a value in the heap at a specified location." msgstr "" -#: js/ProgramBlocks.js:869 -#.TRANS: Move the position of a block on the screen. -msgid "move block" +#: js/blocks/HeapBlocks.js:443 +#.TRANS: retrieve a value from the heap at index position in the heap +msgid "index heap" msgstr "" -#: js/ProgramBlocks.js:881 -#: js/ProgramBlocks.js:1048 -msgid "block number" +#: js/blocks/HeapBlocks.js:523 +msgid "The Set-heap entry block sets a value in he heap at the specified location." msgstr "" -#: js/ProgramBlocks.js:935 -#.TRANS: Run program beginning at this block. -msgid "run block" +#: js/blocks/HeapBlocks.js:539 +#: js/blocks/ProgramBlocks.js:299 +#.TRANS: load the heap from a JSON encoding +msgid "set heap" msgstr "" -#: js/ProgramBlocks.js:1025 -msgid "The Dock block block connections two blocks." +#: js/blocks/HeapBlocks.js:619 +msgid "The Pop block removes the value at the top of the heap." msgstr "" -#: js/ProgramBlocks.js:1036 -#.TRANS: We can connect a block to another block. -msgid "connect blocks" +#: js/blocks/HeapBlocks.js:633 +#.TRANS: pop a value off the top of the heap +msgid "pop" msgstr "" -#: js/ProgramBlocks.js:1048 -msgid "target block" +#: js/blocks/HeapBlocks.js:680 +msgid "The Push block adds a value to the top of the heap." msgstr "" -#: js/ProgramBlocks.js:1048 -msgid "connection number" +#: js/blocks/HeapBlocks.js:696 +#.TRANS: push a value onto the top of the heap +msgid "push" msgstr "" -#: js/ProgramBlocks.js:1140 -msgid "The Make block block creates a new block." +#: js/blocks/IntervalsBlocks.js:45 +msgid "set temperament" msgstr "" -#: js/ProgramBlocks.js:1152 -#.TRANS: Create a new block -msgid "make block" +#: js/blocks/IntervalsBlocks.js:63 +#: js/blocks/MediaBlocks.js:746 +#: js/blocks/PitchBlocks.js:657 +#: js/blocks/PitchBlocks.js:935 +#: js/blocks/PitchBlocks.js:974 +#: js/blocks/PitchBlocks.js:1007 +#: js/blocks/PitchBlocks.js:1194 +#: js/blocks/PitchBlocks.js:1717 +#: js/blocks/PitchBlocks.js:1758 +#: js/blocks/PitchBlocks.js:1866 +#: js/blocks/ToneBlocks.js:1025 +#: js/turtleactions/IntervalsActions.js:114 +#.TRANS: adjusts the shift up or down by one octave (twelve half-steps in the interval between two notes, one having twice or half the frequency in Hz of the other.) +msgid "octave" msgstr "" -#: js/ProgramBlocks.js:1186 -#: js/ProgramBlocks.js:1227 -#: js/RhythmBlocks.js:1128 -#: js/PitchBlocks.js:972 -#: js/PitchBlocks.js:1005 -#: js/temperament.js:340 -#: js/temperament.js:362 -#: js/temperament.js:372 -#: js/temperament.js:484 -#: js/status.js:190 -#: plugins/rodi.rtp:192 -#.TRANS: a musical note consisting of pitch and duration -msgid "note" +#: js/blocks/IntervalsBlocks.js:99 +msgid "The Temperament name block is used to select a tuning method." msgstr "" -#: js/ProgramBlocks.js:1285 -msgid "Cannot find block" +#: js/blocks/IntervalsBlocks.js:161 +msgid "doubly" msgstr "" -#: js/ProgramBlocks.js:1304 -#: js/ProgramBlocks.js:1313 -msgid "Warning: block argument type mismatch" +#: js/blocks/IntervalsBlocks.js:166 +msgid "The Doubly block will double the size of an interval." msgstr "" -#: js/ProgramBlocks.js:1347 -msgid "The Open project block is used to open a project from a web page." +#: js/blocks/IntervalsBlocks.js:262 +msgid "interval number" msgstr "" -#: js/ProgramBlocks.js:1357 -msgid "open project" +#: js/blocks/IntervalsBlocks.js:317 +msgid "current interval" msgstr "" -#: js/ProgramBlocks.js:1410 -msgid "Please enter a valid URL." +#: js/blocks/IntervalsBlocks.js:387 +#.TRANS: measure the distance between two pitches in semi-tones +msgid "semi-tone interval measure" msgstr "" -#: js/DrumBlocks.js:59 -msgid "The Noise name block is used to select a noise synthesizer." +#: js/blocks/IntervalsBlocks.js:454 +#: js/blocks/IntervalsBlocks.js:570 +msgid "You must use two pitch blocks when measuring an interval." msgstr "" -#: js/DrumBlocks.js:102 -msgid "The Drum name block is used to select a drum." +#: js/blocks/IntervalsBlocks.js:496 +msgid "The Scalar interval block measures the distance between two notes in the current key and mode." msgstr "" -#: js/DrumBlocks.js:146 -msgid "The Effects name block is used to select a sound effect." +#: js/blocks/IntervalsBlocks.js:502 +#.TRANS: measure the distance between two pitches in steps of musical scale +msgid "scalar interval measure" msgstr "" -#: js/DrumBlocks.js:163 -msgid "noise" +#: js/blocks/IntervalsBlocks.js:678 +msgid "In the figure, we add sol# to sol." msgstr "" -#: js/DrumBlocks.js:177 -msgid "The Play noise block will generate white, pink, or brown noise." +#: js/blocks/IntervalsBlocks.js:684 +#: js/blocks/OrnamentBlocks.js:220 +#.TRANS: calculate a relative step between notes based on semi-tones +msgid "semi-tone interval" msgstr "" -#: js/DrumBlocks.js:191 -#: js/musicutils.js:752 -#: js/synthutils.js:47 -#.TRANS: white noise synthesizer -msgid "white noise" +#: js/blocks/IntervalsBlocks.js:733 +msgid "The output of the example is: do, mi, sol, sol, ti, mi" msgstr "" -#: js/DrumBlocks.js:326 -msgid "Replace every instance of a pitch with a drum sound." +#: js/blocks/IntervalsBlocks.js:740 +#: js/blocks/WidgetBlocks.js:768 +msgid "arpeggio" msgstr "" -#: js/DrumBlocks.js:337 -#.TRANS: map a pitch to a drum sound -msgid "map pitch to drum" +#: js/blocks/IntervalsBlocks.js:931 +msgid "The Chord block calculates common chords." msgstr "" -#: js/DrumBlocks.js:404 -msgid "In the example above, a kick drum sound will be played instead of sol." +#: js/blocks/IntervalsBlocks.js:933 +msgid "In the figure, we generate a C-major chord." msgstr "" -#: js/DrumBlocks.js:416 -#.TRANS: set the current drum sound for playback -msgid "set drum" +#: js/blocks/IntervalsBlocks.js:938 +msgid "chord" msgstr "" -#: js/DrumBlocks.js:460 -msgid "sound effect" +#: js/blocks/IntervalsBlocks.js:990 +msgid "The Ratio Interval block calculates an interval based on a ratio." msgstr "" -#: js/DrumBlocks.js:498 -msgid "You can use multiple Drum blocks within a Note block." +#: js/blocks/IntervalsBlocks.js:995 +msgid "ratio interval" msgstr "" -#: js/RhythmBlocks.js:182 -#: js/RhythmBlocks.js:1086 -#: js/RhythmBlocks.js:1162 -msgid "Note value must be greater than 0." +#: js/blocks/IntervalsBlocks.js:1064 +msgid "In the figure, we add la to sol." msgstr "" -#: js/RhythmBlocks.js:215 -#: js/RhythmBlocks.js:278 -#: js/RhythmBlocks.js:350 -#.TRANS: swing is a rhythmic variation that emphasises the offbeat -msgid "swing" +#: js/blocks/IntervalsBlocks.js:1120 +#.TRANS: define a custom mode +msgid "define mode" msgstr "" -#: js/RhythmBlocks.js:355 -#.TRANS: the amount to shift to the offbeat note -msgid "swing value" +#: js/blocks/IntervalsBlocks.js:1173 +msgid "movable Do" msgstr "" -#: js/RhythmBlocks.js:419 -msgid "The Skip notes block will cause notes to be skipped." +#: js/blocks/IntervalsBlocks.js:1224 +#.TRANS: mode length is the number of notes in the mode, e.g., 7 for major and minor scales; 12 for chromatic scales +msgid "mode length" msgstr "" -#: js/RhythmBlocks.js:427 -#.TRANS: substitute rests on notes being skipped -msgid "skip notes" +#: js/blocks/IntervalsBlocks.js:1233 +msgid "The Mode length block is the number of notes in the current scale." msgstr "" -#: js/RhythmBlocks.js:489 -#.TRANS: speed up note duration by some factor, e.g. convert 1/4 to 1/8 notes by using a factor of 2 -msgid "multiply note value" +#: js/blocks/IntervalsBlocks.js:1235 +msgid "Most Western scales have 7 notes." msgstr "" -#: js/RhythmBlocks.js:542 -msgid "The Tie block works on pairs of notes, combining them into one note." +#: js/blocks/IntervalsBlocks.js:1284 +#.TRANS: the mode in music is 'major', 'minor', etc. +msgid "current mode" msgstr "" -#: js/RhythmBlocks.js:550 -#.TRANS: tie notes together into one longer note -msgid "tie" +#: js/blocks/IntervalsBlocks.js:1337 +#.TRANS: the key is a group of pitches with which a music composition is created +msgid "current key" msgstr "" -#: js/RhythmBlocks.js:591 -#: js/RhythmBlocks.js:671 -#.TRANS: a dotted note is played for 1.5x its value, e.g., 1/8. --> 3/16 -msgid "dot" +#: js/blocks/IntervalsBlocks.js:1389 +#: js/blocks/IntervalsBlocks.js:1434 +#.TRANS: set the key and mode, e.g. C Major +msgid "set key" msgstr "" -#: js/RhythmBlocks.js:619 -#: js/RhythmActions.js:221 -msgid "An argument of -1 results in a note value of 0." +#: js/blocks/IntervalsBlocks.js:1443 +#: js/blocks/IntervalsBlocks.js:1449 +msgid "The Set key block is used to set the key and mode," msgstr "" -#: js/RhythmBlocks.js:661 -msgid "The Dot block extends the duration of a note by 50%." +#: js/blocks/IntervalsBlocks.js:1449 +msgid "eg C Major" msgstr "" -#: js/RhythmBlocks.js:663 -msgid "Eg a dotted quarter note will play for 3/8 (1/4 + 1/8) of a beat." +#: js/blocks/MediaBlocks.js:35 +#.TRANS: right side of the screen +msgid "right (screen)" msgstr "" -#: js/RhythmBlocks.js:765 -#.TRANS: Japanese only: note value block for drum -msgid "note value drum" +#: js/blocks/MediaBlocks.js:45 +#: js/blocks/MediaBlocks.js:56 +msgid "The Right block returns the position of the right of the canvas." msgstr "" -#: js/RhythmBlocks.js:829 -msgid "392 hertz" +#: js/blocks/MediaBlocks.js:97 +#.TRANS: left side of the screen +msgid "left (screen)" msgstr "" -#: js/RhythmBlocks.js:1119 -msgid "The Note block is a container for one or more Pitch blocks." +#: js/blocks/MediaBlocks.js:107 +#: js/blocks/MediaBlocks.js:118 +msgid "The Left block returns the position of the left of the canvas." msgstr "" -#: js/RhythmBlocks.js:1121 -msgid "The Note block specifies the duration (note value) of its contents." +#: js/blocks/MediaBlocks.js:158 +msgid "top (screen)" msgstr "" -#: js/RhythmBlocks.js:1130 -msgid "value2" -msgstr "value" - -#: js/RhythmBlocks.js:1200 -msgid "define frequency" +#: js/blocks/MediaBlocks.js:168 +#: js/blocks/MediaBlocks.js:179 +msgid "The Top block returns the position of the top of the canvas." msgstr "" -#: js/RhythmBlocks.js:1218 -#: js/temperament.js:650 -#: js/temperament.js:1421 -msgid "octave space" +#: js/blocks/MediaBlocks.js:219 +msgid "bottom (screen)" msgstr "" -#: js/NumberBlocks.js:28 -msgid "The Int block returns an integer." +#: js/blocks/MediaBlocks.js:229 +#: js/blocks/MediaBlocks.js:240 +msgid "The Bottom block returns the position of the bottom of the canvas." msgstr "" -#: js/NumberBlocks.js:34 -msgid "int" +#: js/blocks/MediaBlocks.js:282 +msgid "width" msgstr "" -#: js/NumberBlocks.js:73 -msgid "The Mod block returns the remainder from a division." +#: js/blocks/MediaBlocks.js:291 +msgid "The Width block returns the width of the canvas." msgstr "" -#: js/NumberBlocks.js:79 -msgid "mod" +#: js/blocks/MediaBlocks.js:325 +msgid "height" msgstr "" -#: js/NumberBlocks.js:123 -msgid "The Power block calculates a power function." +#: js/blocks/MediaBlocks.js:334 +msgid "The Height block returns the height of the canvas." msgstr "" -#: js/NumberBlocks.js:178 -msgid "The Sqrt block returns the square root." +#: js/blocks/MediaBlocks.js:369 +#.TRANS: stops playback of an audio recording +msgid "stop play" msgstr "" -#: js/NumberBlocks.js:184 -msgid "sqrt" +#: js/blocks/MediaBlocks.js:404 +#.TRANS: Erases the images and text +msgid "erase media" msgstr "" -#: js/NumberBlocks.js:230 -msgid "The Abs block returns the absolute value." +#: js/blocks/MediaBlocks.js:409 +msgid "The Erase Media block erases text and images." msgstr "" -#: js/NumberBlocks.js:236 -msgid "abs" +#: js/blocks/MediaBlocks.js:439 +#.TRANS: play an audio recording +msgid "play back" msgstr "" -#: js/NumberBlocks.js:277 -msgid "The Distance block returns the distance between two points. For example, between the mouse and the center of the screen." +#: js/blocks/MediaBlocks.js:487 +msgid "speak" msgstr "" -#: js/NumberBlocks.js:283 -#: plugins/rodi.rtp:310 -msgid "distance" +#: js/blocks/MediaBlocks.js:495 +msgid "The Speak block outputs to the text-to-speech synthesizer" msgstr "" -#: js/NumberBlocks.js:343 -msgid "The Divide block is used to divide." +#: js/blocks/MediaBlocks.js:546 +msgid "camera" msgstr "" -#: js/NumberBlocks.js:411 -msgid "The Multiply block is used to multiply." +#: js/blocks/MediaBlocks.js:551 +msgid "The Camera block connects a webcam to the Show block." msgstr "" -#: js/NumberBlocks.js:554 -msgid "The Minus block is used to subtract." +#: js/blocks/MediaBlocks.js:574 +msgid "video" msgstr "" -#: js/NumberBlocks.js:647 -msgid "The Plus block is used to add." +#: js/blocks/MediaBlocks.js:579 +msgid "The Video block selects video for use with the Show block." msgstr "" -#: js/NumberBlocks.js:773 -msgid "The One-of block returns one of two choices." +#: js/blocks/MediaBlocks.js:607 +msgid "The Open file block opens a file for use with the Show block." msgstr "" -#: js/NumberBlocks.js:780 -#: js/PitchBlocks.js:616 -msgid "one of" +#: js/blocks/MediaBlocks.js:645 +msgid "stop media" msgstr "" -#: js/NumberBlocks.js:782 -msgid "this" +#: js/blocks/MediaBlocks.js:650 +msgid "The Stop media block stops audio or video playback." msgstr "" -#: js/NumberBlocks.js:782 -msgid "that" +#: js/blocks/MediaBlocks.js:679 +#: js/blocks/PitchBlocks.js:1577 +#: js/widgets/musickeyboard.js:1936 +#: js/widgets/phrasemaker.js:1037 +#.TRANS: a measure of frequency: one cycle per second +msgid "hertz" msgstr "" -#: js/NumberBlocks.js:837 -msgid "The Random block returns a random number." +#: js/blocks/MediaBlocks.js:692 +#: js/blocks/WidgetBlocks.js:182 +#: js/widgets/temperament.js:506 +#: js/widgets/temperament.js:546 +#: js/widgets/temperament.js:610 +#: js/widgets/temperament.js:618 +#: js/widgets/temperament.js:1505 +#: js/widgets/timbre.js:1842 +msgid "frequency" msgstr "" -#: js/NumberBlocks.js:844 -msgid "random" +#: js/blocks/MediaBlocks.js:692 +msgid "duration (ms)" msgstr "" -#: js/NumberBlocks.js:846 -msgid "min" +#: js/blocks/MediaBlocks.js:728 +#.TRANS: translate a note into hertz, e.g., A4 -> 440HZ +msgid "note to frequency" msgstr "" -#: js/NumberBlocks.js:846 -msgid "max" +#: js/blocks/MediaBlocks.js:736 +msgid "The To frequency block converts a pitch name and octave to Hertz." msgstr "" -#: js/NumberBlocks.js:910 -msgid "The Number block holds a number." +#: js/blocks/MediaBlocks.js:746 +#: js/blocks/PitchBlocks.js:656 +#: js/blocks/PitchBlocks.js:934 +#: js/blocks/PitchBlocks.js:1866 +#.TRANS: name2 is name as in name of pitch (JAPANESE ONLY) +msgid "name2" +msgstr "name" + +#: js/blocks/MediaBlocks.js:812 +msgid "The Avatar block is used to change the appearance of the mouse." msgstr "" -#: js/BoxesBlocks.js:53 -#: js/BoxesBlocks.js:59 -msgid "The Add-to block is used to add to the value stored in a box." +#: js/blocks/MediaBlocks.js:819 +msgid "The Avatar block is used to change the appearance of the turtle." msgstr "" -#: js/BoxesBlocks.js:61 -msgid "It can also be used with other blocks such as Color and Pen size." +#: js/blocks/MediaBlocks.js:831 +#: js/blocks/MediaBlocks.js:891 +#.TRANS: a media object +msgid "size" msgstr "" -#: js/BoxesBlocks.js:73 -msgid "add" +#: js/blocks/MediaBlocks.js:831 +msgid "image" msgstr "" -#: js/BoxesBlocks.js:75 -#: js/temperament.js:716 -msgid "to" +#: js/blocks/MediaBlocks.js:880 +msgid "The Show block is used to display text or images on the canvas." msgstr "" -#: js/BoxesBlocks.js:75 -#: js/BoxesBlocks.js:595 -#: js/HeapBlocks.js:544 -msgid "value1" -msgstr "value" +#: js/blocks/MediaBlocks.js:888 +#.TRANS: show1 is show as in display an image or text on the screen. +msgid "show1" +msgstr "show" -#: js/BoxesBlocks.js:118 -msgid "Block does not support incrementing." +#: js/blocks/MediaBlocks.js:891 +msgid "obj" msgstr "" -#: js/BoxesBlocks.js:152 -msgid "The Add-1-to block adds one to the value stored in a box." +#: js/blocks/MediaBlocks.js:938 +msgid "The Media block is used to import an image." msgstr "" -#: js/BoxesBlocks.js:163 -msgid "add 1 to" +#: js/blocks/MediaBlocks.js:973 +msgid "The Text block holds a text string." msgstr "" -#: js/BoxesBlocks.js:211 -msgid "The Subtract-1-from block subtracts one from the value stored in a box." +#: js/blocks/MeterBlocks.js:34 +#.TRANS: musical meter (time signature), e.g., 4:4 +msgid "current meter" msgstr "" -#: js/BoxesBlocks.js:222 -msgid "subtract 1 from" +#: js/blocks/MeterBlocks.js:85 +#.TRANS: number of beats per minute +msgid "beat factor" msgstr "" -#: js/BoxesBlocks.js:270 -#: js/BoxesBlocks.js:387 -msgid "The Box block returns the value stored in a box." +#: js/blocks/MeterBlocks.js:161 +msgid "The Beats per minute block returns the current beats per minute." msgstr "" -#: js/BoxesBlocks.js:500 -#: js/BoxesBlocks.js:576 -msgid "The Store in block will store a value in a box." +#: js/blocks/MeterBlocks.js:169 +#: js/widgets/status.js:152 +#.TRANS: number of beats played per minute +msgid "beats per minute2" +msgstr "beats per minute" + +#: js/blocks/MeterBlocks.js:169 +#: js/blocks/MeterBlocks.js:1056 +#: js/blocks/MeterBlocks.js:1133 +#: js/blocks/MeterBlocks.js:1211 +#.TRANS: sets tempo by defining a beat and beats per minute +msgid "beats per minute" msgstr "" -#: js/BoxesBlocks.js:652 -msgid "The Box2 block returns the value stored in Box2." +#: js/blocks/MeterBlocks.js:233 +#.TRANS: count of current musical measure in meter +msgid "measure count" msgstr "" -#: js/BoxesBlocks.js:703 -msgid "The Store in Box2 block is used to store a value in Box2." +#: js/blocks/MeterBlocks.js:241 +msgid "The Measure count block returns the current measure." msgstr "" -#: js/BoxesBlocks.js:715 -msgid "store in box2" +#: js/blocks/MeterBlocks.js:290 +#.TRANS: count of current beat in the meter +msgid "beat count" msgstr "" -#: js/BoxesBlocks.js:761 -msgid "The Box1 block returns the value stored in Box1." +#: js/blocks/MeterBlocks.js:300 +#: js/blocks/MeterBlocks.js:311 +#: js/blocks/MeterBlocks.js:565 +#: js/blocks/MeterBlocks.js:576 +msgid "The Beat count block is the number of the current beat," msgstr "" -#: js/BoxesBlocks.js:812 -msgid "The Store in Box1 block is used to store a value in Box1." +#: js/blocks/MeterBlocks.js:313 +#: js/blocks/MeterBlocks.js:578 +msgid "eg 1, 2, 3, or 4." msgstr "" -#: js/BoxesBlocks.js:826 -msgid "store in box1" +#: js/blocks/MeterBlocks.js:368 +#.TRANS: count the number of notes +msgid "sum note values" msgstr "" -#: js/HeapBlocks.js:49 -msgid "The Heap block returns the heap." +#: js/blocks/MeterBlocks.js:376 +#: js/blocks/MeterBlocks.js:440 +msgid "The Note counter block can be used to count the number of contained notes." msgstr "" -#: js/HeapBlocks.js:133 -msgid "show heap" +#: js/blocks/MeterBlocks.js:432 +#.TRANS: count the number of notes +msgid "note counter" msgstr "" -#: js/HeapBlocks.js:181 -msgid "The Heap-length block returns the length of the heap." +#: js/blocks/MeterBlocks.js:496 +#.TRANS: number of whole notes that have been played +msgid "whole notes played" msgstr "" -#: js/HeapBlocks.js:195 -msgid "heap length" +#: js/blocks/MeterBlocks.js:505 +msgid "The Whole notes played block returns the total number of whole notes played." msgstr "" -#: js/HeapBlocks.js:254 -msgid "The Heap-empty? block returns true if the heap is empty." +#: js/blocks/MeterBlocks.js:555 +#: js/turtleactions/DictActions.js:83 +#.TRANS: number of notes that have been played +msgid "notes played" msgstr "" -#: js/HeapBlocks.js:268 -#.TRANS: Is the heap empty? -msgid "heap empty?" +#: js/blocks/MeterBlocks.js:653 +msgid "The No clock block decouples the notes from the master clock." msgstr "" -#: js/HeapBlocks.js:317 -msgid "The Empty-heap block empties the heap." +#: js/blocks/MeterBlocks.js:661 +#.TRANS: don't lock notes to master clock +msgid "no clock" msgstr "" -#: js/HeapBlocks.js:327 -#: js/HeapBlocks.js:647 -#.TRANS: empty the heap -msgid "empty heap" +#: js/blocks/MeterBlocks.js:700 +msgid "on weak beat do" msgstr "" -#: js/HeapBlocks.js:371 -msgid "The Reverse-heap block reverses the order of the heap." +#: js/blocks/MeterBlocks.js:705 +msgid "The On-weak-beat block lets you specify actions to take on weak (off) beats." msgstr "" -#: js/HeapBlocks.js:384 -#.TRANS: reverse the order of the heap -msgid "reverse heap" +#: js/blocks/MeterBlocks.js:750 +msgid "on strong beat" msgstr "" -#: js/HeapBlocks.js:428 -msgid "The Index-heap block returns a value in the heap at a specified location." +#: js/blocks/MeterBlocks.js:758 +msgid "The On-strong-beat block lets you specify actions to take on specified beats." msgstr "" -#: js/HeapBlocks.js:443 -#.TRANS: retrieve a value from the heap at index position in the heap -msgid "index heap" +#: js/blocks/MeterBlocks.js:769 +msgid "beat" msgstr "" -#: js/HeapBlocks.js:523 -msgid "The Set-heap entry block sets a value in he heap at the specified location." +#: js/blocks/MeterBlocks.js:813 +msgid "on every beat do" msgstr "" -#: js/HeapBlocks.js:619 -msgid "The Pop block removes the value at the top of the heap." +#: js/blocks/MeterBlocks.js:821 +msgid "The On-every-beat block lets you specify actions to take on every beat." +msgstr "" + +#: js/blocks/MeterBlocks.js:874 +msgid "on every note do" msgstr "" -#: js/HeapBlocks.js:633 -#.TRANS: pop a value off the top of the heap -msgid "pop" +#: js/blocks/MeterBlocks.js:882 +msgid "The On-every-note block lets you specify actions to take on every note." msgstr "" -#: js/HeapBlocks.js:680 -msgid "The Push block adds a value to the top of the heap." +#: js/blocks/MeterBlocks.js:928 +#: js/blocks/MeterBlocks.js:999 +#.TRANS: sets tempo by defining a beat and beats per minute +msgid "master beats per minute" msgstr "" -#: js/HeapBlocks.js:696 -#.TRANS: push a value onto the top of the heap -msgid "push" +#: js/blocks/MeterBlocks.js:952 +#: js/blocks/MeterBlocks.js:1078 +#: js/blocks/MeterBlocks.js:1135 +msgid "bpm" msgstr "" -#: js/FlowBlocks.js:41 -msgid "The Backward block runs code in reverse order (Musical retrograde)." +#: js/blocks/MeterBlocks.js:952 +#: js/blocks/MeterBlocks.js:1078 +#: js/blocks/MeterBlocks.js:1135 +msgid "beat value" msgstr "" -#: js/FlowBlocks.js:48 -msgid "backward" +#: js/blocks/MeterBlocks.js:1024 +#: js/blocks/MeterBlocks.js:1167 +#: js/blocks/MeterBlocks.js:1241 +msgid "Beats per minute must be > 30." msgstr "" -#: js/FlowBlocks.js:124 -msgid "The Duplicate block will run each block multiple times." +#: js/blocks/MeterBlocks.js:1027 +#: js/blocks/MeterBlocks.js:1170 +#: js/blocks/MeterBlocks.js:1244 +msgid "Maximum beats per minute is 1000." msgstr "" -#: js/FlowBlocks.js:136 -msgid "duplicate" +#: js/blocks/MeterBlocks.js:1068 +msgid "The Beats per minute block sets the number of 1/4 notes per minute." msgstr "" -#: js/FlowBlocks.js:334 -msgid "The Default block is used inside of a Switch to define the default action." +#: js/blocks/MeterBlocks.js:1279 +#.TRANS: anacrusis +msgid "pickup" msgstr "" -#: js/FlowBlocks.js:342 -msgid "default" +#: js/blocks/MeterBlocks.js:1367 +msgid "number of beats" msgstr "" -#: js/FlowBlocks.js:361 -#: js/FlowBlocks.js:418 -msgid "The Case Block must be used inside of a Switch Block." +#: js/blocks/NumberBlocks.js:28 +msgid "The Int block returns an integer." msgstr "" -#: js/FlowBlocks.js:389 -msgid "The Case block is used inside of a Switch to define matches." +#: js/blocks/NumberBlocks.js:34 +msgid "int" msgstr "" -#: js/FlowBlocks.js:397 -msgid "case" +#: js/blocks/NumberBlocks.js:73 +msgid "The Mod block returns the remainder from a division." msgstr "" -#: js/FlowBlocks.js:446 -msgid "The Switch block will run the code in the matching Case." +#: js/blocks/NumberBlocks.js:79 +msgid "mod" msgstr "" -#: js/FlowBlocks.js:454 -msgid "switch" +#: js/blocks/NumberBlocks.js:141 +msgid "The Power block calculates a power function." msgstr "" -#: js/FlowBlocks.js:595 -msgid "The Stop block will stop a loop" +#: js/blocks/NumberBlocks.js:196 +msgid "The Sqrt block returns the square root." msgstr "" -#: js/FlowBlocks.js:597 -msgid "Forever, Repeat, While, or Until." +#: js/blocks/NumberBlocks.js:202 +msgid "sqrt" msgstr "" -#: js/FlowBlocks.js:604 -#: js/phrasemaker.js:3799 -#: js/musickeyboard.js:629 -#: js/musickeyboard.js:631 -#: js/timbre.js:417 -#: js/timbre.js:419 -#: plugins/rodi.rtp:29 -#: plugins/rodi.rtp:73 -#: plugins/rodi.rtp:413 -msgid "stop" +#: js/blocks/NumberBlocks.js:248 +msgid "The Abs block returns the absolute value." msgstr "" -#: js/FlowBlocks.js:653 -msgid "The Waitfor block will wait until the condition is true." +#: js/blocks/NumberBlocks.js:254 +msgid "abs" msgstr "" -#: js/FlowBlocks.js:661 -msgid "wait for" +#: js/blocks/NumberBlocks.js:295 +msgid "The Distance block returns the distance between two points. For example, between the mouse and the center of the screen." msgstr "" -#: js/FlowBlocks.js:732 -msgid "The Until block will repeat until the condition is true." +#: js/blocks/NumberBlocks.js:301 +#: plugins/rodi.rtp:310 +msgid "distance" msgstr "" -#: js/FlowBlocks.js:740 -msgid "until" +#: js/blocks/NumberBlocks.js:361 +msgid "The Divide block is used to divide." msgstr "" -#: js/FlowBlocks.js:742 -#: js/FlowBlocks.js:822 -msgid "do2" -msgstr "do" - -#: js/FlowBlocks.js:812 -msgid "The While block will repeat while the condition is true." +#: js/blocks/NumberBlocks.js:441 +msgid "The Multiply block is used to multiply." msgstr "" -#: js/FlowBlocks.js:820 -msgid "while" +#: js/blocks/NumberBlocks.js:612 +msgid "The Minus block is used to subtract." msgstr "" -#: js/FlowBlocks.js:903 -#: js/FlowBlocks.js:968 -#: js/FlowBlocks.js:979 -msgid "In this example if the mouse button is pressed a snare drum will play." +#: js/blocks/NumberBlocks.js:723 +msgid "The Plus block is used to add." msgstr "" -#: js/FlowBlocks.js:925 -#: js/FlowBlocks.js:988 -msgid "if" +#: js/blocks/NumberBlocks.js:849 +msgid "The One-of block returns one of two choices." msgstr "" -#: js/FlowBlocks.js:927 -#: js/FlowBlocks.js:990 -msgid "then" +#: js/blocks/NumberBlocks.js:856 +#: js/blocks/PitchBlocks.js:616 +msgid "one of" msgstr "" -#: js/FlowBlocks.js:927 -msgid "else" +#: js/blocks/NumberBlocks.js:858 +msgid "this" msgstr "" -#: js/FlowBlocks.js:1025 -msgid "The Forever block will repeat the contained blocks forever." +#: js/blocks/NumberBlocks.js:858 +msgid "that" msgstr "" -#: js/FlowBlocks.js:1037 -msgid "forever" +#: js/blocks/NumberBlocks.js:913 +msgid "The Random block returns a random number." msgstr "" -#: js/FlowBlocks.js:1073 -msgid "The Repeat block will repeat the contained blocks." +#: js/blocks/NumberBlocks.js:920 +msgid "random" msgstr "" -#: js/FlowBlocks.js:1075 -msgid "In this example the note will be played 4 times." +#: js/blocks/NumberBlocks.js:922 +msgid "min" msgstr "" -#: js/FlowBlocks.js:1083 -msgid "repeat" +#: js/blocks/NumberBlocks.js:922 +msgid "max" msgstr "" -#: js/FlowBlocks.js:1123 -msgid "duplicate factor" +#: js/blocks/NumberBlocks.js:986 +msgid "The Number block holds a number." msgstr "" -#: js/PitchBlocks.js:39 -#: js/musicutils.js:722 -#: js/musicutils.js:1117 -#: js/synthutils.js:112 -#.TRANS: square wave -msgid "square" +#: js/blocks/OrnamentBlocks.js:32 +msgid "staccato factor" msgstr "" -#: js/PitchBlocks.js:62 -#: js/ToneBlocks.js:39 -#: js/musicutils.js:723 -#: js/musicutils.js:1118 -#: js/synthutils.js:116 -#.TRANS: triangle wave -msgid "triangle" +#: js/blocks/OrnamentBlocks.js:108 +msgid "slur factor" msgstr "" -#: js/PitchBlocks.js:85 -#: js/musicutils.js:721 -#: js/musicutils.js:1116 -#: js/synthutils.js:110 -#.TRANS: sine wave -msgid "sine" +#: js/blocks/OrnamentBlocks.js:217 +#: js/blocks/OrnamentBlocks.js:309 +#.TRANS: the neighbor refers to a neighboring note, e.g., D is a neighbor of C +msgid "neighbor" msgstr "" -#: js/PitchBlocks.js:108 -#: js/musicutils.js:724 -#: js/musicutils.js:1119 -#: js/synthutils.js:114 -#.TRANS: sawtooth wave -msgid "sawtooth" +#: js/blocks/OrnamentBlocks.js:293 +msgid "The Neighbor block rapidly switches between neighboring pitches." msgstr "" -#: js/PitchBlocks.js:141 -#.TRANS: musical transposition (adjustment of pitch up or down) -msgid "transposition" +#: js/blocks/OrnamentBlocks.js:364 +msgid "glide" msgstr "" -#: js/PitchBlocks.js:168 -#.TRANS: step down one note in current musical scale -msgid "scalar step down" +#: js/blocks/OrnamentBlocks.js:479 +#: js/blocks/OrnamentBlocks.js:643 +msgid "slur" msgstr "" -#: js/PitchBlocks.js:172 -msgid "The Scalar step down block returns the number of semi-tones down to the previous note in the current key and mode." +#: js/blocks/OrnamentBlocks.js:558 +#: js/blocks/OrnamentBlocks.js:710 +#.TRANS: play each note sharply detached from the others +msgid "staccato" msgstr "" -#: js/PitchBlocks.js:190 -#.TRANS: step up one note in current musical scale -msgid "scalar step up" +#: js/blocks/RhythmBlocks.js:182 +#: js/blocks/RhythmBlocks.js:1086 +#: js/blocks/RhythmBlocks.js:1162 +msgid "Note value must be greater than 0." msgstr "" -#: js/PitchBlocks.js:194 -msgid "The Scalar step up block returns the number of semi-tones up to the next note in the current key and mode." +#: js/blocks/RhythmBlocks.js:215 +#: js/blocks/RhythmBlocks.js:278 +#: js/blocks/RhythmBlocks.js:350 +#.TRANS: swing is a rhythmic variation that emphasises the offbeat +msgid "swing" msgstr "" -#: js/PitchBlocks.js:212 -#.TRANS: the change measured in half-steps between the current pitch and the previous pitch -msgid "change in pitch" +#: js/blocks/RhythmBlocks.js:355 +#.TRANS: the amount to shift to the offbeat note +msgid "swing value" msgstr "" -#: js/PitchBlocks.js:216 -msgid "The Change in pitch block is the difference (in half steps) between the current pitch being played and the previous pitch played." +#: js/blocks/RhythmBlocks.js:419 +msgid "The Skip notes block will cause notes to be skipped." msgstr "" -#: js/PitchBlocks.js:243 -#.TRANS: the change measured in scale-steps between the current pitch and the previous pitch -msgid "scalar change in pitch" +#: js/blocks/RhythmBlocks.js:427 +#.TRANS: substitute rests on notes being skipped +msgid "skip notes" msgstr "" -#: js/PitchBlocks.js:250 -#: js/PitchBlocks.js:432 -#: js/PitchBlocks.js:1629 -#: js/DictActions.js:89 -#: js/temperament.js:477 -#: js/temperament.js:481 -#: js/temperament.js:714 -#.TRANS: convert current note to piano key (1-88) -#.TRANS: a mapping of pitch to the 88 piano keys -msgid "pitch number" +#: js/blocks/RhythmBlocks.js:489 +#.TRANS: speed up note duration by some factor, e.g. convert 1/4 to 1/8 notes by using a factor of 2 +msgid "multiply note value" msgstr "" -#: js/PitchBlocks.js:256 -msgid "The Pitch number block is the value of the pitch of the note currently being played." +#: js/blocks/RhythmBlocks.js:542 +msgid "The Tie block works on pairs of notes, combining them into one note." msgstr "" -#: js/PitchBlocks.js:329 -#: js/PitchBlocks.js:433 -#.TRANS: the current pitch expressed in Hertz -msgid "pitch in hertz" +#: js/blocks/RhythmBlocks.js:550 +#.TRANS: tie notes together into one longer note +msgid "tie" msgstr "" -#: js/PitchBlocks.js:334 -msgid "The Pitch in Hertz block is the value in Hertz of the pitch of the note currently being played." +#: js/blocks/RhythmBlocks.js:591 +#: js/blocks/RhythmBlocks.js:671 +#.TRANS: a dotted note is played for 1.5x its value, e.g., 1/8. --> 3/16 +msgid "dot" msgstr "" -#: js/PitchBlocks.js:367 -#: js/DictActions.js:87 -msgid "current pitch" +#: js/blocks/RhythmBlocks.js:619 +#: js/turtleactions/RhythmActions.js:221 +msgid "An argument of -1 results in a note value of 0." msgstr "" -#: js/PitchBlocks.js:373 -msgid "The Current Pitch block is used with the Pitch Converter block. In the example above, current pitch, sol 4, is displayed as 392 hertz." +#: js/blocks/RhythmBlocks.js:661 +msgid "The Dot block extends the duration of a note by 50%." msgstr "" -#: js/PitchBlocks.js:410 -msgid "This block converts the pitch value of the last note played into different formats such as hertz, letter name, pitch number, et al." +#: js/blocks/RhythmBlocks.js:663 +msgid "Eg a dotted quarter note will play for 3/8 (1/4 + 1/8) of a beat." msgstr "" -#: js/PitchBlocks.js:434 -msgid "alphabet" +#: js/blocks/RhythmBlocks.js:765 +#.TRANS: Japanese only: note value block for drum +msgid "note value drum" msgstr "" -#: js/PitchBlocks.js:436 -#.TRANS: Translate as "alphabet class" -msgid "letter class" +#: js/blocks/RhythmBlocks.js:829 +msgid "392 hertz" msgstr "" -#: js/PitchBlocks.js:437 -msgid "solfege class" +#: js/blocks/RhythmBlocks.js:1119 +msgid "The Note block is a container for one or more Pitch blocks." msgstr "" -#: js/PitchBlocks.js:438 -msgid "staff y" +#: js/blocks/RhythmBlocks.js:1121 +msgid "The Note block specifies the duration (note value) of its contents." msgstr "" -#: js/PitchBlocks.js:439 -msgid "solfege syllable" +#: js/blocks/RhythmBlocks.js:1128 +#: js/blocks/PitchBlocks.js:974 +#: js/blocks/PitchBlocks.js:1007 +#: js/blocks/ProgramBlocks.js:1186 +#: js/blocks/ProgramBlocks.js:1227 +#: js/widgets/status.js:190 +#: js/widgets/temperament.js:464 +#: js/widgets/temperament.js:486 +#: js/widgets/temperament.js:496 +#: js/widgets/temperament.js:617 +#: plugins/rodi.rtp:192 +#.TRANS: a musical note consisting of pitch and duration +msgid "note" msgstr "" -#: js/PitchBlocks.js:440 -msgid "pitch class" +#: js/blocks/RhythmBlocks.js:1130 +msgid "value2" +msgstr "value" + +#: js/blocks/RhythmBlocks.js:1200 +msgid "define frequency" msgstr "" -#: js/PitchBlocks.js:441 -msgid "scalar class" +#: js/blocks/RhythmBlocks.js:1218 +#: js/widgets/temperament.js:787 +#: js/widgets/temperament.js:1587 +msgid "octave space" msgstr "" -#: js/PitchBlocks.js:443 -msgid "nth degree" +#: js/blocks/SensorsBlocks.js:36 +msgid "The Input block prompts for keyboard input." msgstr "" -#: js/PitchBlocks.js:444 -msgid "pitch to shade" +#: js/blocks/SensorsBlocks.js:46 +msgid "input" msgstr "" -#: js/PitchBlocks.js:445 -msgid "pitch to color" +#: js/blocks/SensorsBlocks.js:64 +msgid "Input a value" msgstr "" -#: js/PitchBlocks.js:629 -#: js/musickeyboard.js:565 -#.TRANS: MIDI is a technical standard for electronic music -msgid "MIDI" +#: js/blocks/SensorsBlocks.js:126 +msgid "input value" msgstr "" -#: js/PitchBlocks.js:642 -#.TRANS: set an offset associated with the numeric piano keyboard mapping -msgid "set pitch number offset" +#: js/blocks/SensorsBlocks.js:131 +msgid "The Input-value block stores the input." msgstr "" -#: js/PitchBlocks.js:645 -msgid "The Set pitch number offset block is used to set the offset for mapping pitch numbers to pitch and octave." +#: js/blocks/SensorsBlocks.js:238 +msgid "loudness" msgstr "" -#: js/PitchBlocks.js:679 -#.TRANS: convert piano key number (1-88) to pitch -msgid "number to pitch" +#: js/blocks/SensorsBlocks.js:245 +msgid "The Loudness block returns the volume detected by the microphone." msgstr "" -#: js/PitchBlocks.js:682 -msgid "The Number to pitch block will convert a pitch number to a pich name." +#: js/blocks/SensorsBlocks.js:300 +msgid "click" msgstr "" -#: js/PitchBlocks.js:715 -#.TRANS: convert piano key number (1-88) to octave -msgid "number to octave" +#: js/blocks/SensorsBlocks.js:306 +msgid "The Click block triggers an event if a mouse has been clicked." msgstr "" -#: js/PitchBlocks.js:717 -msgid "The Number to octave block will convert a pitch number to an octave." +#: js/blocks/SensorsBlocks.js:313 +msgid "The Click block triggers an event if a turtle has been clicked." msgstr "" -#: js/PitchBlocks.js:726 -msgid "y to pitch" +#: js/blocks/SensorsBlocks.js:342 +msgid "cursor over" msgstr "" -#: js/PitchBlocks.js:729 -msgid "Y to pitch block will convert a staff y position to corresponding pitch notation." +#: js/blocks/SensorsBlocks.js:387 +msgid "cursor out" msgstr "" -#: js/PitchBlocks.js:841 -msgid "accidental selector" +#: js/blocks/SensorsBlocks.js:433 +msgid "cursor button down" msgstr "" -#: js/PitchBlocks.js:844 -msgid "The Accidental selector block is used to choose between double-sharp, sharp, natural, flat, and double-flat." +#: js/blocks/SensorsBlocks.js:477 +msgid "cursor button up" msgstr "" -#: js/PitchBlocks.js:858 -msgid "Pitch can be specified in terms of ni dha pa ma ga re sa." +#: js/blocks/SensorsBlocks.js:521 +#: js/blocks/PenBlocks.js:48 +#: plugins/rodi.rtp:219 +msgid "blue" msgstr "" -#: js/PitchBlocks.js:872 -msgid "Pitch can be specified in terms of C D E F G A B." +#: js/blocks/SensorsBlocks.js:577 +#: js/blocks/PenBlocks.js:64 +#: plugins/rodi.rtp:218 +msgid "green" msgstr "" -#: js/PitchBlocks.js:883 -msgid "solfege" +#: js/blocks/SensorsBlocks.js:633 +#: js/blocks/PenBlocks.js:112 +#: plugins/rodi.rtp:217 +msgid "red" msgstr "" -#: js/PitchBlocks.js:886 -msgid "Pitch can be specified in terms of do re mi fa sol la ti." +#: js/blocks/SensorsBlocks.js:638 +msgid "The Get red block returns the red component of the pixel under the mouse." msgstr "" -#: js/PitchBlocks.js:920 -msgid "The Invert block rotates any contained notes around a target note." +#: js/blocks/SensorsBlocks.js:644 +msgid "The Get red block returns the red component of the pixel under the turtle." msgstr "" -#: js/PitchBlocks.js:927 -#.TRANS: pitch inversion rotates a pitch around another pitch -msgid "invert" +#: js/blocks/SensorsBlocks.js:685 +#: plugins/rodi.rtp:216 +msgid "pixel color" +msgstr "pixel colour" + +#: js/blocks/SensorsBlocks.js:690 +msgid "The Get pixel block returns the color of the pixel under the mouse." msgstr "" -#: js/PitchBlocks.js:929 -#: js/PitchBlocks.js:935 -#: js/PitchActions.js:727 -#: js/musicutils.js:726 -#: js/musicutils.js:902 -#.TRANS: invert based on even or odd number or musical scale -#.TRANS: even numbers -msgid "even" +#: js/blocks/SensorsBlocks.js:696 +msgid "The Get pixel block returns the color of the pixel under the turtle." msgstr "" -#: js/PitchBlocks.js:935 -#: js/PitchActions.js:729 -#: js/musicutils.js:728 -#: js/musicutils.js:903 -#.TRANS: odd numbers -msgid "odd" +#: js/blocks/SensorsBlocks.js:758 +msgid "time" msgstr "" -#: js/PitchBlocks.js:935 -#: js/PitchActions.js:731 -#: js/musicutils.js:729 -#: js/musicutils.js:904 -msgid "scalar" +#: js/blocks/SensorsBlocks.js:804 +msgid "cursor y" msgstr "" -#: js/PitchBlocks.js:966 -#.TRANS: pitch inversion rotates a pitch around another pitch (odd number) -msgid "invert (odd)" +#: js/blocks/SensorsBlocks.js:809 +msgid "The Cursor Y block returns the vertical position of the mouse." msgstr "" -#: js/PitchBlocks.js:999 -#.TRANS: pitch inversion rotates a pitch around another pitch (even number) -msgid "invert (even)" +#: js/blocks/SensorsBlocks.js:845 +msgid "cursor x" msgstr "" -#: js/PitchBlocks.js:1020 -#.TRANS: register is the octave of the current pitch -msgid "register" +#: js/blocks/SensorsBlocks.js:850 +msgid "The Cursor X block returns the horizontal position of the mouse." msgstr "" -#: js/PitchBlocks.js:1024 -msgid "The Register block provides an easy way to modify the register (octave) of the notes that follow it." +#: js/blocks/SensorsBlocks.js:886 +msgid "mouse button" msgstr "" -#: js/PitchBlocks.js:1074 -msgid "The Semi-tone transposition block will shift the pitches contained inside Note blocks up (or down) by half steps." +#: js/blocks/SensorsBlocks.js:888 +msgid "The Mouse-button block returns True if the mouse button is pressed." msgstr "" -#: js/PitchBlocks.js:1076 -msgid "In the example shown above, sol is shifted up to sol#." +#: js/blocks/SensorsBlocks.js:934 +msgid "to ASCII" msgstr "" -#: js/PitchBlocks.js:1082 -#.TRANS: adjust the amount of shift (up or down) of a pitch -msgid "semi-tone transpose" +#: js/blocks/SensorsBlocks.js:938 +msgid "The To ASCII block converts numbers to letters." msgstr "" -#: js/PitchBlocks.js:1115 -msgid "The Transpose by Ratio block will shift the pitches contained inside Note blocks up (or down) by a ratio" +#: js/blocks/SensorsBlocks.js:1005 +msgid "The Keyboard block returns computer keyboard input." msgstr "" -#: js/PitchBlocks.js:1121 -#.TRANS: adjust the amount of shift (up or down) of a pitch -msgid "transpose by ratio" +#: js/blocks/RhythmBlockPaletteBlocks.js:50 +#: js/blocks/RhythmBlockPaletteBlocks.js:233 +#.TRANS: rhythm block +#.TRANS: translate "rhythm1" as rhythm +msgid "rhythm1" +msgstr "rhythm" + +#: js/blocks/RhythmBlockPaletteBlocks.js:70 +#: js/blocks/RhythmBlockPaletteBlocks.js:252 +#: js/blocks/RhythmBlockPaletteBlocks.js:485 +#: js/blocks/RhythmBlockPaletteBlocks.js:554 +#: js/blocks/RhythmBlockPaletteBlocks.js:875 +msgid "number of notes" msgstr "" -#: js/PitchBlocks.js:1204 -#.TRANS: down sixth means the note is five scale degrees below current note -msgid "down sixth" +#: js/blocks/RhythmBlockPaletteBlocks.js:126 +msgid "polyphonic rhythm" msgstr "" -#: js/PitchBlocks.js:1223 -#.TRANS: down third means the note is two scale degrees below current note -msgid "down third" +#: js/blocks/RhythmBlockPaletteBlocks.js:219 +msgid "The Rhythm block is used to generate rhythm patterns." msgstr "" -#: js/PitchBlocks.js:1242 -#.TRANS: seventh means the note is the six scale degrees above current note -msgid "seventh" +#: js/blocks/RhythmBlockPaletteBlocks.js:280 +msgid "1/64 note" msgstr "" -#: js/PitchBlocks.js:1261 -#.TRANS: sixth means the note is the five scale degrees above current note -msgid "sixth" +#: js/blocks/RhythmBlockPaletteBlocks.js:304 +msgid "1/32 note" msgstr "" -#: js/PitchBlocks.js:1280 -#.TRANS: fifth means the note is the four scale degrees above current note -msgid "fifth" +#: js/blocks/RhythmBlockPaletteBlocks.js:332 +msgid "1/16 note" msgstr "" -#: js/PitchBlocks.js:1300 -#.TRANS: fourth means the note is three scale degrees above current note -msgid "fourth" +#: js/blocks/RhythmBlockPaletteBlocks.js:360 +msgid "eighth note" msgstr "" -#: js/PitchBlocks.js:1319 -#.TRANS: third means the note is two scale degrees above current note -msgid "third" +#: js/blocks/RhythmBlockPaletteBlocks.js:388 +msgid "quarter note" msgstr "" -#: js/PitchBlocks.js:1338 -#.TRANS: second means the note is one scale degree above current note -msgid "second" +#: js/blocks/RhythmBlockPaletteBlocks.js:416 +msgid "half note" msgstr "" -#: js/PitchBlocks.js:1379 -msgid "The Scalar transposition block will shift the pitches contained inside Note blocks up (or down) the scale." +#: js/blocks/RhythmBlockPaletteBlocks.js:444 +msgid "whole note" msgstr "" -#: js/PitchBlocks.js:1381 -msgid "In the example shown above, sol is shifted up to la." +#: js/blocks/RhythmBlockPaletteBlocks.js:482 +#: js/blocks/RhythmBlockPaletteBlocks.js:551 +#: js/blocks/RhythmBlockPaletteBlocks.js:602 +#.TRANS: A tuplet is a note value divided into irregular time values. +msgid "tuplet" msgstr "" -#: js/PitchBlocks.js:1388 -#.TRANS: adjust the amount of shift (up or down) of a pitch by musical scale (scalar) steps -msgid "scalar transpose" +#: js/blocks/RhythmBlockPaletteBlocks.js:768 +msgid "septuplet" msgstr "" -#: js/PitchBlocks.js:1423 -msgid "The Accidental block is used to create sharps and flats" +#: js/blocks/RhythmBlockPaletteBlocks.js:796 +msgid "quintuplet" msgstr "" -#: js/PitchBlocks.js:1430 -#.TRANS: An accidental is a modification to a pitch, e.g., sharp or flat. -msgid "accidental override" +#: js/blocks/RhythmBlockPaletteBlocks.js:824 +msgid "triplet" msgstr "" -#: js/PitchBlocks.js:1543 -msgid "The Hertz block (in combination with a Number block) will play a sound at the specified frequency." +#: js/blocks/RhythmBlockPaletteBlocks.js:851 +msgid "simple tuplet" msgstr "" -#: js/PitchBlocks.js:1633 -msgid "The Pitch Number block will play a pitch associated by its number, e.g. 0 for C and 7 for G." +#: js/blocks/RhythmBlockPaletteBlocks.js:861 +msgid "Tuplets are a collection of notes that get scaled to a specific duration." msgstr "" -#: js/PitchBlocks.js:1665 -#: js/PitchBlocks.js:1707 -#.TRANS: a numeric mapping of the notes in an octave based on the musical mode -#.TRANS: a numeric mapping of the notes in an octave based on the musical mode -msgid "nth modal pitch" +#: js/blocks/DrumBlocks.js:59 +msgid "The Noise name block is used to select a noise synthesizer." msgstr "" -#: js/PitchBlocks.js:1668 -msgid "n^th Modal Pitch takes the pattern of pitches in semitones for a mode and makes each point a degree of the mode," +#: js/blocks/DrumBlocks.js:102 +msgid "The Drum name block is used to select a drum." msgstr "" -#: js/PitchBlocks.js:1670 -msgid "starting from 1 and regardless of tonal framework (i.e. not always 8 notes in the octave)" +#: js/blocks/DrumBlocks.js:146 +msgid "The Effects name block is used to select a sound effect." msgstr "" -#: js/PitchBlocks.js:1711 -msgid "N^th Modal Pitch takes a number as an input as the n^th degree for the given mode. 0 is the first position, 1 is the second, -1 is the note before the first etc." +#: js/blocks/DrumBlocks.js:163 +msgid "noise" msgstr "" -#: js/PitchBlocks.js:1713 -msgid "The pitches change according to the mode specified without any need for respellings." +#: js/blocks/DrumBlocks.js:177 +msgid "The Play noise block will generate white, pink, or brown noise." msgstr "" -#: js/PitchBlocks.js:1752 -msgid "Scale Degree is a common convention in music. Scale Degree offers seven possible positions in the scale (1-7) and can be modified via accidentals." +#: js/blocks/DrumBlocks.js:317 +msgid "Replace every instance of a pitch with a drum sound." msgstr "" -#: js/PitchBlocks.js:1754 -msgid "Scale Degree 1 is always the first pitch in a given scale, regardless of octave." +#: js/blocks/DrumBlocks.js:328 +#.TRANS: map a pitch to a drum sound +msgid "map pitch to drum" msgstr "" -#: js/PitchBlocks.js:1776 -#.TRANS: step some number of notes in current musical scale -msgid "scalar step" +#: js/blocks/DrumBlocks.js:395 +msgid "In the example above, a kick drum sound will be played instead of sol." msgstr "" -#: js/PitchBlocks.js:1781 -msgid "The Scalar Step block (in combination with a Number block) will play the next pitch in a scale," +#: js/blocks/DrumBlocks.js:407 +#.TRANS: set the current drum sound for playback +msgid "set drum" msgstr "" -#: js/PitchBlocks.js:1783 -msgid "eg if the last note played was sol, Scalar Step 1 will play la." +#: js/blocks/DrumBlocks.js:451 +msgid "sound effect" msgstr "" -#: js/PitchBlocks.js:1818 -msgid "The Pitch block specifies the pitch name and octave of a note that together determine the frequency of the note." +#: js/blocks/DrumBlocks.js:489 +msgid "You can use multiple Drum blocks within a Note block." msgstr "" -#: js/GraphicsBlocks.js:46 -#: js/DictActions.js:77 -#: js/DictActions.js:155 -#: js/DictActions.js:189 +#: js/blocks/GraphicsBlocks.js:46 +#: js/turtleactions/DictActions.js:77 +#: js/turtleactions/DictActions.js:144 +#: js/turtleactions/DictActions.js:173 msgid "heading" msgstr "" -#: js/GraphicsBlocks.js:56 +#: js/blocks/GraphicsBlocks.js:56 msgid "The Heading block returns the orientation of the mouse." msgstr "" -#: js/GraphicsBlocks.js:62 +#: js/blocks/GraphicsBlocks.js:62 msgid "The Heading block returns the orientation of the turtle." msgstr "" -#: js/GraphicsBlocks.js:133 +#: js/blocks/GraphicsBlocks.js:133 msgid "The Y block returns the vertical position of the mouse." msgstr "" -#: js/GraphicsBlocks.js:140 +#: js/blocks/GraphicsBlocks.js:140 msgid "The Y block returns the vertical position of the turtle." msgstr "" -#: js/GraphicsBlocks.js:149 +#: js/blocks/GraphicsBlocks.js:149 msgid "y3" msgstr "" -#: js/GraphicsBlocks.js:219 +#: js/blocks/GraphicsBlocks.js:219 msgid "The X block returns the horizontal position of the mouse." msgstr "" -#: js/GraphicsBlocks.js:226 +#: js/blocks/GraphicsBlocks.js:226 msgid "The X block returns the horizontal position of the turtle." msgstr "" -#: js/GraphicsBlocks.js:235 +#: js/blocks/GraphicsBlocks.js:235 msgid "x3" msgstr "" -#: js/GraphicsBlocks.js:295 +#: js/blocks/GraphicsBlocks.js:295 msgid "scroll xy" msgstr "" -#: js/GraphicsBlocks.js:303 +#: js/blocks/GraphicsBlocks.js:303 msgid "The Scroll XY block moves the canvas." msgstr "" -#: js/GraphicsBlocks.js:313 +#: js/blocks/GraphicsBlocks.js:313 msgid "x2" msgstr "x" -#: js/GraphicsBlocks.js:313 +#: js/blocks/GraphicsBlocks.js:313 msgid "y2" msgstr "y" -#: js/GraphicsBlocks.js:373 -#: js/temperament.js:213 -#: js/temperament.js:241 +#: js/blocks/GraphicsBlocks.js:373 +#: js/widgets/temperament.js:319 +#: js/widgets/temperament.js:347 msgid "clear" msgstr "" -#: js/GraphicsBlocks.js:426 +#: js/blocks/GraphicsBlocks.js:426 msgid "The Control-point 2 block sets the second control point for the Bezier curve." msgstr "" -#: js/GraphicsBlocks.js:433 +#: js/blocks/GraphicsBlocks.js:433 msgid "control point 2" msgstr "" -#: js/GraphicsBlocks.js:436 -#: js/GraphicsBlocks.js:487 -#: js/GraphicsBlocks.js:534 -#: js/GraphicsBlocks.js:750 +#: js/blocks/GraphicsBlocks.js:436 +#: js/blocks/GraphicsBlocks.js:487 +#: js/blocks/GraphicsBlocks.js:534 +#: js/blocks/GraphicsBlocks.js:750 msgid "x1" msgstr "x" -#: js/GraphicsBlocks.js:436 -#: js/GraphicsBlocks.js:487 -#: js/GraphicsBlocks.js:534 -#: js/GraphicsBlocks.js:750 +#: js/blocks/GraphicsBlocks.js:436 +#: js/blocks/GraphicsBlocks.js:487 +#: js/blocks/GraphicsBlocks.js:534 +#: js/blocks/GraphicsBlocks.js:750 msgid "y1" msgstr "y" -#: js/GraphicsBlocks.js:477 +#: js/blocks/GraphicsBlocks.js:477 msgid "The Control-point 1 block sets the first control point for the Bezier curve." msgstr "" -#: js/GraphicsBlocks.js:484 +#: js/blocks/GraphicsBlocks.js:484 msgid "control point 1" msgstr "" -#: js/GraphicsBlocks.js:527 +#: js/blocks/GraphicsBlocks.js:527 msgid "The Bezier block draws a Bezier curve." msgstr "" -#: js/GraphicsBlocks.js:531 +#: js/blocks/GraphicsBlocks.js:531 msgid "bezier" msgstr "" -#: js/GraphicsBlocks.js:592 +#: js/blocks/GraphicsBlocks.js:592 msgid "The Arc block moves the turtle in an arc." msgstr "" -#: js/GraphicsBlocks.js:600 +#: js/blocks/GraphicsBlocks.js:600 msgid "arc" msgstr "" -#: js/GraphicsBlocks.js:603 +#: js/blocks/GraphicsBlocks.js:603 msgid "angle" msgstr "" -#: js/GraphicsBlocks.js:603 +#: js/blocks/GraphicsBlocks.js:603 msgid "radius" msgstr "" -#: js/GraphicsBlocks.js:620 -#: js/GraphicsBlocks.js:767 -#: js/GraphicsBlocks.js:1010 -#: js/GraphicsBlocks.js:1093 +#: js/blocks/GraphicsBlocks.js:620 +#: js/blocks/GraphicsBlocks.js:767 +#: js/blocks/GraphicsBlocks.js:1010 +#: js/blocks/GraphicsBlocks.js:1093 msgid "Value must be within -5000 to 5000 when Wrap Mode is off." msgstr "" -#: js/GraphicsBlocks.js:622 -#: js/GraphicsBlocks.js:769 -#: js/GraphicsBlocks.js:1012 -#: js/GraphicsBlocks.js:1095 +#: js/blocks/GraphicsBlocks.js:622 +#: js/blocks/GraphicsBlocks.js:769 +#: js/blocks/GraphicsBlocks.js:1012 +#: js/blocks/GraphicsBlocks.js:1095 msgid "Value must be within -20000 to 20000 when Wrap Mode is on." msgstr "" -#: js/GraphicsBlocks.js:660 +#: js/blocks/GraphicsBlocks.js:660 msgid "set heading" msgstr "" -#: js/GraphicsBlocks.js:673 +#: js/blocks/GraphicsBlocks.js:673 msgid "The Set heading block sets the heading of the turtle." msgstr "" -#: js/GraphicsBlocks.js:733 +#: js/blocks/GraphicsBlocks.js:733 msgid "The Set XY block moves the mouse to a specific position on the screen." msgstr "" -#: js/GraphicsBlocks.js:739 +#: js/blocks/GraphicsBlocks.js:739 msgid "The Set XY block moves the turtle to a specific position on the screen." msgstr "" -#: js/GraphicsBlocks.js:747 +#: js/blocks/GraphicsBlocks.js:747 msgid "set xy" msgstr "" -#: js/GraphicsBlocks.js:819 +#: js/blocks/GraphicsBlocks.js:819 msgid "The Right block turns the mouse to the right." msgstr "" -#: js/GraphicsBlocks.js:826 +#: js/blocks/GraphicsBlocks.js:826 msgid "The Right block turns the turtle to the right." msgstr "" -#: js/GraphicsBlocks.js:835 +#: js/blocks/GraphicsBlocks.js:835 msgid "right1" msgstr "right" -#: js/GraphicsBlocks.js:835 +#: js/blocks/GraphicsBlocks.js:835 #: plugins/rodi.rtp:77 #: plugins/rodi.rtp:340 #: plugins/rodi.rtp:375 msgid "right" msgstr "" -#: js/GraphicsBlocks.js:899 +#: js/blocks/GraphicsBlocks.js:899 msgid "The Left block turns the mouse to the left." msgstr "" -#: js/GraphicsBlocks.js:906 +#: js/blocks/GraphicsBlocks.js:906 msgid "The Left block turns the turtle to the left." msgstr "" -#: js/GraphicsBlocks.js:915 +#: js/blocks/GraphicsBlocks.js:915 msgid "left1" msgstr "left" -#: js/GraphicsBlocks.js:915 +#: js/blocks/GraphicsBlocks.js:915 #: plugins/rodi.rtp:79 #: plugins/rodi.rtp:339 #: plugins/rodi.rtp:362 msgid "left" msgstr "" -#: js/GraphicsBlocks.js:967 -#: js/temperament.js:734 -#: js/temperament.js:933 +#: js/blocks/GraphicsBlocks.js:967 +#: js/widgets/temperament.js:875 +#: js/widgets/temperament.js:1078 #: plugins/rodi.rtp:69 #: plugins/rodi.rtp:387 msgid "back" msgstr "" -#: js/GraphicsBlocks.js:976 +#: js/blocks/GraphicsBlocks.js:976 msgid "The Back block moves the mouse backward." msgstr "" -#: js/GraphicsBlocks.js:983 +#: js/blocks/GraphicsBlocks.js:983 msgid "The Back block moves the turtle backward." msgstr "" -#: js/GraphicsBlocks.js:1050 +#: js/blocks/GraphicsBlocks.js:1050 #: plugins/rodi.rtp:71 #: plugins/rodi.rtp:400 msgid "forward" msgstr "" -#: js/GraphicsBlocks.js:1059 +#: js/blocks/GraphicsBlocks.js:1059 msgid "The Forward block moves the mouse forward." msgstr "" -#: js/GraphicsBlocks.js:1066 +#: js/blocks/GraphicsBlocks.js:1066 msgid "The Forward block moves the turtle forward." msgstr "" -#: js/GraphicsBlocks.js:1154 -#: js/GraphicsBlocks.js:1172 +#: js/blocks/GraphicsBlocks.js:1154 +#: js/blocks/GraphicsBlocks.js:1172 msgid "wrap" msgstr "" -#: js/OrnamentBlocks.js:32 -msgid "staccato factor" -msgstr "" - -#: js/OrnamentBlocks.js:108 -msgid "slur factor" -msgstr "" - -#: js/OrnamentBlocks.js:217 -#: js/OrnamentBlocks.js:309 -#.TRANS: the neighbor refers to a neighboring note, e.g., D is a neighbor of C -msgid "neighbor" -msgstr "" - -#: js/OrnamentBlocks.js:293 -msgid "The Neighbor block rapidly switches between neighboring pitches." -msgstr "" - -#: js/OrnamentBlocks.js:364 -msgid "glide" -msgstr "" - -#: js/OrnamentBlocks.js:479 -#: js/OrnamentBlocks.js:643 -msgid "slur" -msgstr "" - -#: js/OrnamentBlocks.js:558 -#: js/OrnamentBlocks.js:710 -#.TRANS: play each note sharply detached from the others -msgid "staccato" -msgstr "" - -#: js/PenBlocks.js:24 +#: js/blocks/PenBlocks.js:30 msgid "purple" msgstr "" -#: js/PenBlocks.js:37 -#: js/SensorsBlocks.js:521 -#: plugins/rodi.rtp:219 -msgid "blue" -msgstr "" - -#: js/PenBlocks.js:50 -#: js/SensorsBlocks.js:577 -#: plugins/rodi.rtp:218 -msgid "green" -msgstr "" - -#: js/PenBlocks.js:63 +#: js/blocks/PenBlocks.js:80 msgid "yellow" msgstr "" -#: js/PenBlocks.js:76 +#: js/blocks/PenBlocks.js:96 #: plugins/nutrition.rtp:164 msgid "orange" msgstr "" -#: js/PenBlocks.js:89 -#: js/SensorsBlocks.js:633 -#: plugins/rodi.rtp:217 -msgid "red" -msgstr "" - -#: js/PenBlocks.js:102 +#: js/blocks/PenBlocks.js:128 msgid "white" msgstr "" -#: js/PenBlocks.js:115 +#: js/blocks/PenBlocks.js:144 msgid "black" msgstr "" -#: js/PenBlocks.js:128 +#: js/blocks/PenBlocks.js:163 msgid "begin fill" msgstr "" -#: js/PenBlocks.js:143 +#: js/blocks/PenBlocks.js:190 msgid "end fill" msgstr "" -#: js/PenBlocks.js:159 -#: js/PenBlocks.js:386 +#: js/blocks/PenBlocks.js:212 +#: js/blocks/PenBlocks.js:560 #.TRANS: set the background color msgid "background" msgstr "" -#: js/PenBlocks.js:206 -#: js/DictActions.js:71 -#: js/DictActions.js:149 -#: js/DictActions.js:186 +#: js/blocks/PenBlocks.js:274 +#: js/turtleactions/DictActions.js:71 +#: js/turtleactions/DictActions.js:138 +#: js/turtleactions/DictActions.js:170 msgid "grey" msgstr "" -#: js/PenBlocks.js:210 +#: js/blocks/PenBlocks.js:282 msgid "The Grey block returns the current pen grey value." msgstr "" -#: js/PenBlocks.js:243 -#: js/DictActions.js:69 -#: js/DictActions.js:147 -#: js/DictActions.js:185 +#: js/blocks/PenBlocks.js:340 +#: js/turtleactions/DictActions.js:69 +#: js/turtleactions/DictActions.js:136 +#: js/turtleactions/DictActions.js:169 msgid "shade" msgstr "" -#: js/PenBlocks.js:247 +#: js/blocks/PenBlocks.js:347 msgid "The Shade block returns the current pen shade value." msgstr "" -#: js/PenBlocks.js:280 -#: js/DictActions.js:67 -#: js/DictActions.js:145 -#: js/DictActions.js:184 +#: js/blocks/PenBlocks.js:405 +#: js/turtleactions/DictActions.js:67 +#: js/turtleactions/DictActions.js:134 +#: js/turtleactions/DictActions.js:168 msgid "color" msgstr "colour" -#: js/PenBlocks.js:285 +#: js/blocks/PenBlocks.js:415 msgid "The Color block returns the current pen color." msgstr "" -#: js/PenBlocks.js:318 -#: js/DictActions.js:73 -#: js/DictActions.js:151 -#: js/DictActions.js:187 +#: js/blocks/PenBlocks.js:470 +#: js/turtleactions/DictActions.js:73 +#: js/turtleactions/DictActions.js:140 +#: js/turtleactions/DictActions.js:171 msgid "pen size" msgstr "" -#: js/PenBlocks.js:322 +#: js/blocks/PenBlocks.js:474 msgid "The Pen size block returns the current pen size value." msgstr "" -#: js/PenBlocks.js:355 +#: js/blocks/PenBlocks.js:513 msgid "set font" msgstr "" -#: js/PenBlocks.js:358 +#: js/blocks/PenBlocks.js:518 msgid "The Set font block sets the font used by the Show block." msgstr "" -#: js/PenBlocks.js:391 +#: js/blocks/PenBlocks.js:567 msgid "The Background block sets the window background color." msgstr "" -#: js/PenBlocks.js:408 +#: js/blocks/PenBlocks.js:598 msgid "The Hollow line block creates a line with a hollow center." msgstr "" -#: js/PenBlocks.js:415 +#: js/blocks/PenBlocks.js:606 #.TRANS: draw a line logo has a hollow space down its center msgid "hollow line" msgstr "" -#: js/PenBlocks.js:462 +#: js/blocks/PenBlocks.js:675 msgid "The Fill block fills in a shape with a color." msgstr "" -#: js/PenBlocks.js:470 +#: js/blocks/PenBlocks.js:684 #.TRANS: fill in as a solid color msgid "fill" msgstr "" -#: js/PenBlocks.js:527 +#: js/blocks/PenBlocks.js:761 #.TRANS: raise up the pen so logo it does not draw when it is moved msgid "pen up" msgstr "" -#: js/PenBlocks.js:532 +#: js/blocks/PenBlocks.js:768 msgid "The Pen-up block raises the pen so that it does not draw." msgstr "" -#: js/PenBlocks.js:552 +#: js/blocks/PenBlocks.js:802 #.TRANS: put down the pen so logo it draws when it is moved msgid "pen down" msgstr "" -#: js/PenBlocks.js:557 +#: js/blocks/PenBlocks.js:810 msgid "The Pen-down block lowers the pen so that it draws." msgstr "" -#: js/PenBlocks.js:577 +#: js/blocks/PenBlocks.js:844 #.TRANS: set the width of the line drawn by the pen msgid "set pen size" msgstr "" -#: js/PenBlocks.js:583 +#: js/blocks/PenBlocks.js:854 msgid "The Set-pen-size block changes the size of the pen." msgstr "" -#: js/PenBlocks.js:623 +#: js/blocks/PenBlocks.js:913 #.TRANS: set degree of translucence of the pen color msgid "set translucency" msgstr "" -#: js/PenBlocks.js:627 +#: js/blocks/PenBlocks.js:921 msgid "The Set translucency block changes the opacity of the pen." msgstr "" -#: js/PenBlocks.js:668 +#: js/blocks/PenBlocks.js:981 msgid "set hue" msgstr "" -#: js/PenBlocks.js:672 +#: js/blocks/PenBlocks.js:989 msgid "The Set hue block changes the color of the pen." msgstr "" -#: js/PenBlocks.js:711 +#: js/blocks/PenBlocks.js:1047 msgid "set shade" msgstr "" -#: js/PenBlocks.js:717 +#: js/blocks/PenBlocks.js:1057 msgid "The Set-shade block changes the pen color from dark to light." msgstr "" -#: js/PenBlocks.js:757 +#: js/blocks/PenBlocks.js:1111 #.TRANS: set the level of vividness of the pen color msgid "set grey" msgstr "" -#: js/PenBlocks.js:761 +#: js/blocks/PenBlocks.js:1119 msgid "The Set grey block changes the vividness of the pen color." msgstr "" -#: js/PenBlocks.js:800 +#: js/blocks/PenBlocks.js:1172 msgid "set color" msgstr "set colour" -#: js/PenBlocks.js:806 +#: js/blocks/PenBlocks.js:1182 msgid "The Set-color block changes the pen color." msgstr "" -#: js/VolumeBlocks.js:35 -msgid "synth volume" -msgstr "" - -#: js/VolumeBlocks.js:39 -msgid "The Synth volume block returns the current volume of the current synthesizer." -msgstr "" - -#: js/VolumeBlocks.js:47 -#: js/musicutils.js:730 -#: js/synthutils.js:56 -#.TRANS: musical instrument -msgid "piano" -msgstr "" - -#: js/VolumeBlocks.js:105 -msgid "master volume" -msgstr "" - -#: js/VolumeBlocks.js:109 -msgid "The Master volume block returns the master volume." -msgstr "" - -#: js/VolumeBlocks.js:355 -#: js/VolumeBlocks.js:524 -msgid "set synth volume" -msgstr "" - -#: js/VolumeBlocks.js:362 -#: js/VolumeBlocks.js:545 -msgid "synth" -msgstr "" - -#: js/VolumeBlocks.js:403 -#: js/VolumeBlocks.js:577 -#: js/VolumeBlocks.js:740 -#: js/VolumeActions.js:173 -msgid "Setting volume to 0." -msgstr "" - -#: js/VolumeBlocks.js:440 -msgid "Synth not found" -msgstr "" - -#: js/VolumeBlocks.js:494 -msgid "set drum volume" -msgstr "" - -#: js/VolumeBlocks.js:530 -msgid "The Set synth volume block will change the volume of a particular synth," -msgstr "" - -#: js/VolumeBlocks.js:532 -msgid "eg guitar violin snare drum etc." -msgstr "" - -#: js/VolumeBlocks.js:534 -msgid "The default volume is 50." -msgstr "" - -#: js/VolumeBlocks.js:536 -msgid "The range is 0 for silence to 100 for full volume." -msgstr "" - -#: js/VolumeBlocks.js:597 -msgid "set panning" -msgstr "" - -#: js/VolumeBlocks.js:603 -msgid "The Set Panning block sets the panning for all synthesizers." -msgstr "" - -#: js/VolumeBlocks.js:625 -msgid "Warning: Sound is coming out from only the left or right side." -msgstr "" - -#: js/VolumeBlocks.js:647 -#: js/VolumeBlocks.js:695 -msgid "set master volume" -msgstr "" - -#: js/VolumeBlocks.js:653 -msgid "The Set master volume block sets the volume for all synthesizers." -msgstr "" - -#: js/VolumeBlocks.js:784 -msgid "The Set relative volume block changes the volume of the contained notes." -msgstr "" - -#: js/VolumeBlocks.js:791 -msgid "set relative volume" -msgstr "" - -#: js/VolumeBlocks.js:857 -msgid "decrescendo" -msgstr "" - -#: js/VolumeBlocks.js:921 -msgid "crescendo" -msgstr "" - -#: js/ToneBlocks.js:34 -msgid "oscillator" -msgstr "" - -#: js/ToneBlocks.js:44 -#: js/timbre.js:1562 -#.TRANS: Partials refers to the number of sine waves combined into the sound. -msgid "partials" -msgstr "" - -#: js/ToneBlocks.js:76 -msgid "You are adding multiple oscillator blocks." -msgstr "" - -#: js/ToneBlocks.js:144 -#: js/timbre.js:1225 -#.TRANS: a duo synthesizer combines a synth with a sequencer -msgid "duo synth" -msgstr "" - -#: js/ToneBlocks.js:149 -msgid "The Duo synth block is a duo-frequency modulator used to define a timbre." -msgstr "" - -#: js/ToneBlocks.js:157 -#: js/timbre.js:1476 -msgid "vibrato rate" -msgstr "" - -#: js/ToneBlocks.js:157 -msgid "vibrato intensity" -msgstr "" - -#: js/ToneBlocks.js:185 -#: js/timbre.js:1221 -#.TRANS: AM (amplitude modulation) synthesizer -msgid "AM synth" -msgstr "" - -#: js/ToneBlocks.js:189 -msgid "The AM synth block is an amplitude modulator used to define a timbre." -msgstr "" - -#: js/ToneBlocks.js:224 -#: js/timbre.js:1223 -#.TRANS: FM (frequency modulation) synthesizer -msgid "FM synth" +#: js/blocks/PitchBlocks.js:141 +#.TRANS: musical transposition (adjustment of pitch up or down) +msgid "transposition" msgstr "" -#: js/ToneBlocks.js:228 -msgid "The FM synth block is a frequency modulator used to define a timbre." +#: js/blocks/PitchBlocks.js:168 +#.TRANS: step down one note in current musical scale +msgid "scalar step down" msgstr "" -#: js/ToneBlocks.js:262 -msgid "partial" +#: js/blocks/PitchBlocks.js:172 +msgid "The Scalar step down block returns the number of semi-tones down to the previous note in the current key and mode." msgstr "" -#: js/ToneBlocks.js:265 -msgid "The Partial block is used to specify a weight for a specific partial harmonic." +#: js/blocks/PitchBlocks.js:190 +#.TRANS: step up one note in current musical scale +msgid "scalar step up" msgstr "" -#: js/ToneBlocks.js:284 -#.TRANS: partials are weighted components in a harmonic series -msgid "Partial weight must be between 0 and 1." +#: js/blocks/PitchBlocks.js:194 +msgid "The Scalar step up block returns the number of semi-tones up to the next note in the current key and mode." msgstr "" -#: js/ToneBlocks.js:297 -#.TRANS: partials are weighted components in a harmonic series -msgid "Partial block should be used inside of a Weighted-partials block." +#: js/blocks/PitchBlocks.js:212 +#.TRANS: the change measured in half-steps between the current pitch and the previous pitch +msgid "change in pitch" msgstr "" -#: js/ToneBlocks.js:325 -#.TRANS: partials are weighted components in a harmonic series -msgid "weighted partials" +#: js/blocks/PitchBlocks.js:216 +msgid "The Change in pitch block is the difference (in half steps) between the current pitch being played and the previous pitch played." msgstr "" -#: js/ToneBlocks.js:383 -msgid "The Harmonic block will add harmonics to the contained notes." +#: js/blocks/PitchBlocks.js:243 +#.TRANS: the change measured in scale-steps between the current pitch and the previous pitch +msgid "scalar change in pitch" msgstr "" -#: js/ToneBlocks.js:390 -#.TRANS: A harmonic is an overtone. -msgid "harmonic" +#: js/blocks/PitchBlocks.js:250 +#: js/blocks/PitchBlocks.js:432 +#: js/blocks/PitchBlocks.js:1667 +#: js/turtleactions/DictActions.js:89 +#: js/widgets/temperament.js:610 +#: js/widgets/temperament.js:614 +#: js/widgets/temperament.js:855 +#.TRANS: convert current note to piano key (1-88) +#.TRANS: a mapping of pitch to the 88 piano keys +msgid "pitch number" msgstr "" -#: js/ToneBlocks.js:431 -msgid "The Distortion block adds distortion to the pitch." +#: js/blocks/PitchBlocks.js:256 +msgid "The Pitch number block is the value of the pitch of the note currently being played." msgstr "" -#: js/ToneBlocks.js:438 -#: js/timbre.js:2100 -#.TRANS: distortion is an alteration in the sound -msgid "distortion" +#: js/blocks/PitchBlocks.js:329 +#: js/blocks/PitchBlocks.js:433 +#.TRANS: the current pitch expressed in Hertz +msgid "pitch in hertz" msgstr "" -#: js/ToneBlocks.js:487 -msgid "The Tremolo block adds a wavering effect." +#: js/blocks/PitchBlocks.js:334 +msgid "The Pitch in Hertz block is the value in Hertz of the pitch of the note currently being played." msgstr "" -#: js/ToneBlocks.js:495 -#: js/timbre.js:2092 -#.TRANS: a wavering effect in a musical tone -msgid "tremolo" +#: js/blocks/PitchBlocks.js:367 +#: js/turtleactions/DictActions.js:87 +msgid "current pitch" msgstr "" -#: js/ToneBlocks.js:500 -#: js/ToneBlocks.js:569 -#: js/ToneBlocks.js:630 -#: js/ToneBlocks.js:689 -#: js/timbre.js:2134 -#: js/timbre.js:2222 -#: js/timbre.js:2317 -#: js/timbre.js:2419 -#.TRANS: rate at which tremolo wavers -msgid "rate" +#: js/blocks/PitchBlocks.js:373 +msgid "The Current Pitch block is used with the Pitch Converter block. In the example above, current pitch, sol 4, is displayed as 392 hertz." msgstr "" -#: js/ToneBlocks.js:502 -#: js/ToneBlocks.js:630 -#: js/timbre.js:2137 -#: js/timbre.js:2328 -#.TRANS: amplitude of tremolo waver -msgid "depth" +#: js/blocks/PitchBlocks.js:410 +msgid "This block converts the pitch value of the last note played into different formats such as hertz, letter name, pitch number, et al." msgstr "" -#: js/ToneBlocks.js:559 -msgid "The Phaser block adds a sweeping sound." +#: js/blocks/PitchBlocks.js:434 +msgid "alphabet" msgstr "" -#: js/ToneBlocks.js:566 -#: js/timbre.js:2098 -#.TRANS: alter the phase of the sound -msgid "phaser" +#: js/blocks/PitchBlocks.js:436 +#.TRANS: Translate as "alphabet class" +msgid "letter class" msgstr "" -#: js/ToneBlocks.js:569 -#: js/timbre.js:2422 -msgid "octaves" +#: js/blocks/PitchBlocks.js:437 +msgid "solfege class" msgstr "" -#: js/ToneBlocks.js:569 -#: js/timbre.js:2425 -msgid "base frequency" +#: js/blocks/PitchBlocks.js:438 +msgid "staff y" msgstr "" -#: js/ToneBlocks.js:619 -msgid "The Chorus block adds a chorus effect." +#: js/blocks/PitchBlocks.js:439 +msgid "solfege syllable" msgstr "" -#: js/ToneBlocks.js:627 -#: js/timbre.js:2096 -#.TRANS: musical effect to simulate a choral sound -msgid "chorus" +#: js/blocks/PitchBlocks.js:440 +msgid "pitch class" msgstr "" -#: js/ToneBlocks.js:630 -msgid "delay" +#: js/blocks/PitchBlocks.js:441 +msgid "scalar class" msgstr "" -#: js/ToneBlocks.js:678 -msgid "The Vibrato block adds a rapid, slight variation in pitch." +#: js/blocks/PitchBlocks.js:443 +msgid "nth degree" msgstr "" -#: js/ToneBlocks.js:686 -#: js/timbre.js:2094 -#.TRANS: a rapid, slight variation in pitch -msgid "vibrato" +#: js/blocks/PitchBlocks.js:444 +msgid "pitch to shade" msgstr "" -#: js/ToneBlocks.js:689 -#: js/timbre.js:2221 -msgid "intensity" +#: js/blocks/PitchBlocks.js:445 +msgid "pitch to color" msgstr "" -#: js/ToneBlocks.js:733 -#.TRANS: select synthesizer -msgid "set synth" +#: js/blocks/PitchBlocks.js:629 +#: js/widgets/musickeyboard.js:735 +#.TRANS: MIDI is a technical standard for electronic music +msgid "MIDI" msgstr "" -#: js/ToneBlocks.js:804 -msgid "synth name" +#: js/blocks/PitchBlocks.js:642 +#.TRANS: set an offset associated with the numeric piano keyboard mapping +msgid "set pitch number offset" msgstr "" -#: js/ToneBlocks.js:842 -msgid "set default instrument" +#: js/blocks/PitchBlocks.js:645 +msgid "The Set pitch number offset block is used to set the offset for mapping pitch numbers to pitch and octave." msgstr "" -#: js/ToneBlocks.js:895 -#: js/ToneBlocks.js:943 -#.TRANS: set the characteristics of a custom instrument -msgid "set instrument" +#: js/blocks/PitchBlocks.js:679 +#.TRANS: convert piano key number (1-88) to pitch +msgid "number to pitch" msgstr "" -#: js/ToneBlocks.js:898 -#: js/ToneBlocks.js:926 -#: js/ToneBlocks.js:932 -msgid "The Set instrument block selects a voice for the synthesizer," +#: js/blocks/PitchBlocks.js:682 +msgid "The Number to pitch block will convert a pitch number to a pich name." msgstr "" -#: js/ToneBlocks.js:900 -#: js/ToneBlocks.js:934 -msgid "eg guitar piano violin or cello." +#: js/blocks/PitchBlocks.js:715 +#.TRANS: convert piano key number (1-88) to octave +msgid "number to octave" msgstr "" -#: js/ToneBlocks.js:1015 -msgid "Import a sound file to use as an instrument and set its pitch center." +#: js/blocks/PitchBlocks.js:717 +msgid "The Number to octave block will convert a pitch number to an octave." msgstr "" -#: js/ToneBlocks.js:1110 -msgid "Upload a sound file to connect with the sample block." +#: js/blocks/PitchBlocks.js:726 +msgid "y to pitch" msgstr "" -#: js/MeterBlocks.js:34 -#.TRANS: musical meter (time signature), e.g., 4:4 -msgid "current meter" +#: js/blocks/PitchBlocks.js:729 +msgid "Y to pitch block will convert a staff y position to corresponding pitch notation." msgstr "" -#: js/MeterBlocks.js:85 -#.TRANS: number of beats per minute -msgid "beat factor" +#: js/blocks/PitchBlocks.js:841 +msgid "accidental selector" msgstr "" -#: js/MeterBlocks.js:161 -msgid "The Beats per minute block returns the current beats per minute." +#: js/blocks/PitchBlocks.js:844 +msgid "The Accidental selector block is used to choose between double-sharp, sharp, natural, flat, and double-flat." msgstr "" -#: js/MeterBlocks.js:169 -#: js/status.js:152 -#.TRANS: number of beats played per minute -msgid "beats per minute2" -msgstr "beats per minute" - -#: js/MeterBlocks.js:169 -#: js/MeterBlocks.js:1056 -#: js/MeterBlocks.js:1133 -#: js/MeterBlocks.js:1211 -#.TRANS: sets tempo by defining a beat and beats per minute -msgid "beats per minute" +#: js/blocks/PitchBlocks.js:858 +msgid "Pitch can be specified in terms of ni dha pa ma ga re sa." msgstr "" -#: js/MeterBlocks.js:233 -#.TRANS: count of current musical measure in meter -msgid "measure count" +#: js/blocks/PitchBlocks.js:872 +msgid "Pitch can be specified in terms of C D E F G A B." msgstr "" -#: js/MeterBlocks.js:241 -msgid "The Measure count block returns the current measure." +#: js/blocks/PitchBlocks.js:884 +msgid "solfege" msgstr "" -#: js/MeterBlocks.js:290 -#.TRANS: count of current beat in the meter -msgid "beat count" +#: js/blocks/PitchBlocks.js:887 +msgid "Pitch can be specified in terms of do re mi fa sol la ti." msgstr "" -#: js/MeterBlocks.js:300 -#: js/MeterBlocks.js:311 -#: js/MeterBlocks.js:565 -#: js/MeterBlocks.js:576 -msgid "The Beat count block is the number of the current beat," +#: js/blocks/PitchBlocks.js:922 +msgid "The Invert block rotates any contained notes around a target note." msgstr "" -#: js/MeterBlocks.js:313 -#: js/MeterBlocks.js:578 -msgid "eg 1, 2, 3, or 4." +#: js/blocks/PitchBlocks.js:929 +#.TRANS: pitch inversion rotates a pitch around another pitch +msgid "invert" msgstr "" -#: js/MeterBlocks.js:368 -#.TRANS: count the number of notes -msgid "sum note values" +#: js/blocks/PitchBlocks.js:968 +#.TRANS: pitch inversion rotates a pitch around another pitch (odd number) +msgid "invert (odd)" msgstr "" -#: js/MeterBlocks.js:376 -#: js/MeterBlocks.js:440 -msgid "The Note counter block can be used to count the number of contained notes." +#: js/blocks/PitchBlocks.js:1001 +#.TRANS: pitch inversion rotates a pitch around another pitch (even number) +msgid "invert (even)" msgstr "" -#: js/MeterBlocks.js:432 -#.TRANS: count the number of notes -msgid "note counter" +#: js/blocks/PitchBlocks.js:1022 +#.TRANS: register is the octave of the current pitch +msgid "register" msgstr "" -#: js/MeterBlocks.js:496 -#.TRANS: number of whole notes that have been played -msgid "whole notes played" +#: js/blocks/PitchBlocks.js:1026 +msgid "The Register block provides an easy way to modify the register (octave) of the notes that follow it." msgstr "" -#: js/MeterBlocks.js:505 -msgid "The Whole notes played block returns the total number of whole notes played." +#: js/blocks/PitchBlocks.js:1047 +#.TRANS: cents are units used to specify the ratio between pitches. There are 100 cents between successive notes. +msgid "50 cents" msgstr "" -#: js/MeterBlocks.js:555 -#: js/DictActions.js:83 -#.TRANS: number of notes that have been played -msgid "notes played" +#: js/blocks/PitchBlocks.js:1102 +msgid "The Semi-tone transposition block will shift the pitches contained inside Note blocks up (or down) by half steps." msgstr "" -#: js/MeterBlocks.js:653 -msgid "The No clock block decouples the notes from the master clock." +#: js/blocks/PitchBlocks.js:1104 +msgid "In the example shown above, sol is shifted up to sol#." msgstr "" -#: js/MeterBlocks.js:661 -#.TRANS: don't lock notes to master clock -msgid "no clock" +#: js/blocks/PitchBlocks.js:1110 +#.TRANS: adjust the amount of shift (up or down) of a pitch +msgid "semi-tone transpose" msgstr "" -#: js/MeterBlocks.js:700 -msgid "on weak beat do" +#: js/blocks/PitchBlocks.js:1143 +msgid "The Transpose by Ratio block will shift the pitches contained inside Note blocks up (or down) by a ratio" msgstr "" -#: js/MeterBlocks.js:705 -msgid "The On-weak-beat block lets you specify actions to take on weak (off) beats." +#: js/blocks/PitchBlocks.js:1149 +#.TRANS: adjust the amount of shift (up or down) of a pitch +msgid "transpose by ratio" msgstr "" -#: js/MeterBlocks.js:750 -msgid "on strong beat" +#: js/blocks/PitchBlocks.js:1232 +#.TRANS: down sixth means the note is five scale degrees below current note +msgid "down sixth" msgstr "" -#: js/MeterBlocks.js:758 -msgid "The On-strong-beat block lets you specify actions to take on specified beats." +#: js/blocks/PitchBlocks.js:1251 +#.TRANS: down third means the note is two scale degrees below current note +msgid "down third" msgstr "" -#: js/MeterBlocks.js:769 -msgid "beat" +#: js/blocks/PitchBlocks.js:1270 +#.TRANS: seventh means the note is the six scale degrees above current note +msgid "seventh" msgstr "" -#: js/MeterBlocks.js:813 -msgid "on every beat do" +#: js/blocks/PitchBlocks.js:1289 +#.TRANS: sixth means the note is the five scale degrees above current note +msgid "sixth" msgstr "" -#: js/MeterBlocks.js:821 -msgid "The On-every-beat block lets you specify actions to take on every beat." +#: js/blocks/PitchBlocks.js:1308 +#.TRANS: fifth means the note is the four scale degrees above current note +msgid "fifth" msgstr "" -#: js/MeterBlocks.js:874 -msgid "on every note do" +#: js/blocks/PitchBlocks.js:1328 +#.TRANS: fourth means the note is three scale degrees above current note +msgid "fourth" msgstr "" -#: js/MeterBlocks.js:882 -msgid "The On-every-note block lets you specify actions to take on every note." +#: js/blocks/PitchBlocks.js:1347 +#.TRANS: third means the note is two scale degrees above current note +msgid "third" msgstr "" -#: js/MeterBlocks.js:928 -#: js/MeterBlocks.js:999 -#.TRANS: sets tempo by defining a beat and beats per minute -msgid "master beats per minute" +#: js/blocks/PitchBlocks.js:1366 +#.TRANS: second means the note is one scale degree above current note +msgid "second" msgstr "" -#: js/MeterBlocks.js:952 -#: js/MeterBlocks.js:1078 -#: js/MeterBlocks.js:1135 -msgid "bpm" +#: js/blocks/PitchBlocks.js:1407 +msgid "The Scalar transposition block will shift the pitches contained inside Note blocks up (or down) the scale." msgstr "" -#: js/MeterBlocks.js:952 -#: js/MeterBlocks.js:1078 -#: js/MeterBlocks.js:1135 -msgid "beat value" +#: js/blocks/PitchBlocks.js:1409 +msgid "In the example shown above, sol is shifted up to la." msgstr "" -#: js/MeterBlocks.js:1024 -#: js/MeterBlocks.js:1167 -#: js/MeterBlocks.js:1241 -msgid "Beats per minute must be > 30." +#: js/blocks/PitchBlocks.js:1416 +#.TRANS: adjust the amount of shift (up or down) of a pitch by musical scale (scalar) steps +msgid "scalar transpose" msgstr "" -#: js/MeterBlocks.js:1027 -#: js/MeterBlocks.js:1170 -#: js/MeterBlocks.js:1244 -msgid "Maximum beats per minute is 1000." +#: js/blocks/PitchBlocks.js:1451 +msgid "The Accidental block is used to create sharps and flats" msgstr "" -#: js/MeterBlocks.js:1068 -msgid "The Beats per minute block sets the number of 1/4 notes per minute." +#: js/blocks/PitchBlocks.js:1458 +#.TRANS: An accidental is a modification to a pitch, e.g., sharp or flat. +msgid "accidental override" msgstr "" -#: js/MeterBlocks.js:1279 -#.TRANS: anacrusis -msgid "pickup" +#: js/blocks/PitchBlocks.js:1581 +msgid "The Hertz block (in combination with a Number block) will play a sound at the specified frequency." msgstr "" -#: js/MeterBlocks.js:1367 -msgid "number of beats" +#: js/blocks/PitchBlocks.js:1671 +msgid "The Pitch Number block will play a pitch associated by its number, e.g. 0 for C and 7 for G." msgstr "" -#: js/DictBlocks.js:77 -msgid "show dictionary" +#: js/blocks/PitchBlocks.js:1703 +#: js/blocks/PitchBlocks.js:1745 +#.TRANS: a numeric mapping of the notes in an octave based on the musical mode +#.TRANS: a numeric mapping of the notes in an octave based on the musical mode +msgid "nth modal pitch" msgstr "" -#: js/DictBlocks.js:129 -msgid "The Dictionary block returns a dictionary." +#: js/blocks/PitchBlocks.js:1706 +msgid "n^th Modal Pitch takes the pattern of pitches in semitones for a mode and makes each point a degree of the mode," msgstr "" -#: js/DictBlocks.js:197 -#: js/DictBlocks.js:339 -msgid "The Get-dict block returns a value in the dictionary for a specified key." +#: js/blocks/PitchBlocks.js:1708 +msgid "starting from 1 and regardless of tonal framework (i.e. not always 8 notes in the octave)" msgstr "" -#: js/DictBlocks.js:212 -#: js/DictBlocks.js:354 -#.TRANS: retrieve a value from the dictionary with a given key -msgid "get value" +#: js/blocks/PitchBlocks.js:1749 +msgid "N^th Modal Pitch takes a number as an input as the n^th degree for the given mode. 0 is the first position, 1 is the second, -1 is the note before the first etc." msgstr "" -#: js/DictBlocks.js:215 -#: js/DictBlocks.js:216 -#: js/DictBlocks.js:289 -#: js/DictBlocks.js:290 -#: js/DictBlocks.js:357 -#: js/DictBlocks.js:430 -#: js/DictBlocks.js:431 -msgid "key2" +#: js/blocks/PitchBlocks.js:1751 +msgid "The pitches change according to the mode specified without any need for respellings." msgstr "" -#: js/DictBlocks.js:271 -#: js/DictBlocks.js:411 -msgid "The Set-dict block sets a value in the dictionary for a specified key." +#: js/blocks/PitchBlocks.js:1790 +msgid "Scale Degree is a common convention in music. Scale Degree offers seven possible positions in the scale (1-7) and can be modified via accidentals." msgstr "" -#: js/DictBlocks.js:286 -#: js/DictBlocks.js:427 -#.TRANS: set a value in the dictionary for a given key -msgid "set value" +#: js/blocks/PitchBlocks.js:1792 +msgid "Scale Degree 1 is always the first pitch in a given scale, regardless of octave." msgstr "" -#: js/ExtrasBlocks.js:33 -msgid "fraction" +#: js/blocks/PitchBlocks.js:1814 +#.TRANS: step some number of notes in current musical scale +msgid "scalar step" msgstr "" -#: js/ExtrasBlocks.js:36 -msgid "Convert a float to a fraction" +#: js/blocks/PitchBlocks.js:1819 +msgid "The Scalar Step block (in combination with a Number block) will play the next pitch in a scale," msgstr "" -#: js/ExtrasBlocks.js:93 -msgid "save as ABC" +#: js/blocks/PitchBlocks.js:1821 +msgid "eg if the last note played was sol, Scalar Step 1 will play la." msgstr "" -#: js/ExtrasBlocks.js:96 -#: js/ExtrasBlocks.js:132 -#: js/ExtrasBlocks.js:168 -msgid "title" +#: js/blocks/PitchBlocks.js:1857 +msgid "The Pitch block specifies the pitch name and octave of a note that together determine the frequency of the note." msgstr "" -#: js/ExtrasBlocks.js:129 -msgid "save as Lilypond" +#: js/blocks/ProgramBlocks.js:33 +msgid "The Load-heap-from-app block loads the heap from a web page." msgstr "" -#: js/ExtrasBlocks.js:165 -msgid "save as SVG" +#: js/blocks/ProgramBlocks.js:44 +#.TRANS: load the heap contents from a URL +msgid "load heap from App" msgstr "" -#: js/ExtrasBlocks.js:216 -msgid "no background" +#: js/blocks/ProgramBlocks.js:95 +msgid "Error parsing JSON data:" msgstr "" -#: js/ExtrasBlocks.js:219 -msgid "The No background block eliminates the background from the saved SVG output." +#: js/blocks/ProgramBlocks.js:100 +msgid "404: Page not found" msgstr "" -#: js/ExtrasBlocks.js:247 -msgid "show blocks" +#: js/blocks/ProgramBlocks.js:133 +msgid "The Save-heap-to-app block saves the heap to a web page." msgstr "" -#: js/ExtrasBlocks.js:249 -msgid "The Show blocks block shows the blocks." +#: js/blocks/ProgramBlocks.js:144 +#.TRANS: save the heap contents to a URL +msgid "save heap to App" msgstr "" -#: js/ExtrasBlocks.js:274 -msgid "hide blocks" +#: js/blocks/ProgramBlocks.js:189 +msgid "Cannot find a valid heap for" msgstr "" -#: js/ExtrasBlocks.js:276 -msgid "The Hide blocks block hides the blocks." +#: js/blocks/ProgramBlocks.js:206 +msgid "The Load-heap block loads the heap from a file." msgstr "" -#: js/ExtrasBlocks.js:305 -#: js/ExtrasBlocks.js:335 -msgid "The Space block is used to add space between blocks." +#: js/blocks/ProgramBlocks.js:217 +#.TRANS: load the heap from a file +msgid "load heap" msgstr "" -#: js/ExtrasBlocks.js:373 -msgid "wait" +#: js/blocks/ProgramBlocks.js:270 +msgid "The file you selected does not contain a valid heap." msgstr "" -#: js/ExtrasBlocks.js:376 -msgid "The Wait block pauses the program for a specified number of seconds." +#: js/blocks/ProgramBlocks.js:275 +msgid "The loadHeap block needs a loadFile block." msgstr "" -#: js/ExtrasBlocks.js:430 -#: plugins/facebook.rtp:30 -msgid "comment" +#: js/blocks/ProgramBlocks.js:291 +msgid "The Set-heap block loads the heap." msgstr "" -#: js/ExtrasBlocks.js:466 -msgid "print" +#: js/blocks/ProgramBlocks.js:340 +msgid "The block you selected does not contain a valid heap." msgstr "" -#: js/ExtrasBlocks.js:473 -msgid "The Print block displays text at the top of the screen." +#: js/blocks/ProgramBlocks.js:343 +msgid "The Set heap block needs a heap." msgstr "" -#: js/ExtrasBlocks.js:579 -msgid "display grid" +#: js/blocks/ProgramBlocks.js:360 +msgid "The Load-dictionary block loads a dictionary from a file." msgstr "" -#: js/ExtrasBlocks.js:584 -msgid "The Display Grid Block changes the grid type" +#: js/blocks/ProgramBlocks.js:372 +#.TRANS: load a dictionary from a file +msgid "load dictionary" msgstr "" -#: js/ExtrasBlocks.js:686 -#: js/ExtrasBlocks.js:705 -#: js/ExtrasBlocks.js:728 -#: js/ExtrasBlocks.js:751 -#: js/ExtrasBlocks.js:769 -#: js/ExtrasBlocks.js:788 -#: js/ExtrasBlocks.js:807 -#: js/ExtrasBlocks.js:826 -msgid "unknown" +#: js/blocks/ProgramBlocks.js:390 +#: js/blocks/ProgramBlocks.js:658 +#: js/blocks/ToneBlocks.js:1025 +msgid "file" msgstr "" -#: js/SensorsBlocks.js:36 -msgid "The Input block prompts for keyboard input." +#: js/blocks/ProgramBlocks.js:444 +msgid "The file you selected does not contain a valid dictionary." msgstr "" -#: js/SensorsBlocks.js:46 -msgid "input" +#: js/blocks/ProgramBlocks.js:449 +msgid "The load dictionary block needs a load file block." msgstr "" -#: js/SensorsBlocks.js:64 -msgid "Input a value" +#: js/blocks/ProgramBlocks.js:466 +msgid "The Set-dictionary block loads a dictionary." msgstr "" -#: js/SensorsBlocks.js:126 -msgid "input value" +#: js/blocks/ProgramBlocks.js:477 +#.TRANS: load a dictionary from a JSON +msgid "set dictionary" msgstr "" -#: js/SensorsBlocks.js:131 -msgid "The Input-value block stores the input." +#: js/blocks/ProgramBlocks.js:546 +msgid "The block you selected does not contain a valid dictionary." msgstr "" -#: js/SensorsBlocks.js:238 -msgid "loudness" +#: js/blocks/ProgramBlocks.js:550 +msgid "The set dictionary block needs a dictionary." msgstr "" -#: js/SensorsBlocks.js:245 -msgid "The Loudness block returns the volume detected by the microphone." +#: js/blocks/ProgramBlocks.js:567 +msgid "The Save-heap block saves the heap to a file." msgstr "" -#: js/SensorsBlocks.js:300 -msgid "click" +#: js/blocks/ProgramBlocks.js:578 +#.TRANS: save the heap to a file +msgid "save heap" msgstr "" -#: js/SensorsBlocks.js:306 -msgid "The Click block triggers an event if a mouse has been clicked." +#: js/blocks/ProgramBlocks.js:629 +msgid "The Save-dictionary block saves a dictionary to a file." msgstr "" -#: js/SensorsBlocks.js:313 -msgid "The Click block triggers an event if a turtle has been clicked." +#: js/blocks/ProgramBlocks.js:640 +#.TRANS: save a dictionary to a file +msgid "save dictionary" msgstr "" -#: js/SensorsBlocks.js:342 -msgid "cursor over" +#: js/blocks/ProgramBlocks.js:720 +msgid "The Open palette block opens a palette." msgstr "" -#: js/SensorsBlocks.js:387 -msgid "cursor out" +#: js/blocks/ProgramBlocks.js:727 +msgid "open palette" msgstr "" -#: js/SensorsBlocks.js:433 -msgid "cursor button down" +#: js/blocks/ProgramBlocks.js:785 +msgid "The Delete block block removes a block." msgstr "" -#: js/SensorsBlocks.js:477 -msgid "cursor button up" +#: js/blocks/ProgramBlocks.js:797 +#.TRANS: Move this block to the trash. +msgid "delete block" msgstr "" -#: js/SensorsBlocks.js:638 -msgid "The Get red block returns the red component of the pixel under the mouse." +#: js/blocks/ProgramBlocks.js:861 +msgid "The Move block block moves a block." msgstr "" -#: js/SensorsBlocks.js:644 -msgid "The Get red block returns the red component of the pixel under the turtle." +#: js/blocks/ProgramBlocks.js:869 +#.TRANS: Move the position of a block on the screen. +msgid "move block" msgstr "" -#: js/SensorsBlocks.js:685 -#: plugins/rodi.rtp:216 -msgid "pixel color" -msgstr "pixel colour" +#: js/blocks/ProgramBlocks.js:881 +#: js/blocks/ProgramBlocks.js:1048 +msgid "block number" +msgstr "" -#: js/SensorsBlocks.js:690 -msgid "The Get pixel block returns the color of the pixel under the mouse." +#: js/blocks/ProgramBlocks.js:935 +#.TRANS: Run program beginning at this block. +msgid "run block" msgstr "" -#: js/SensorsBlocks.js:696 -msgid "The Get pixel block returns the color of the pixel under the turtle." +#: js/blocks/ProgramBlocks.js:1025 +msgid "The Dock block block connections two blocks." msgstr "" -#: js/SensorsBlocks.js:758 -msgid "time" +#: js/blocks/ProgramBlocks.js:1036 +#.TRANS: We can connect a block to another block. +msgid "connect blocks" msgstr "" -#: js/SensorsBlocks.js:804 -msgid "cursor y" +#: js/blocks/ProgramBlocks.js:1048 +msgid "target block" msgstr "" -#: js/SensorsBlocks.js:809 -msgid "The Cursor Y block returns the vertical position of the mouse." +#: js/blocks/ProgramBlocks.js:1048 +msgid "connection number" msgstr "" -#: js/SensorsBlocks.js:845 -msgid "cursor x" +#: js/blocks/ProgramBlocks.js:1140 +msgid "The Make block block creates a new block." msgstr "" -#: js/SensorsBlocks.js:850 -msgid "The Cursor X block returns the horizontal position of the mouse." +#: js/blocks/ProgramBlocks.js:1152 +#.TRANS: Create a new block +msgid "make block" msgstr "" -#: js/SensorsBlocks.js:886 -msgid "mouse button" +#: js/blocks/ProgramBlocks.js:1285 +msgid "Cannot find block" msgstr "" -#: js/SensorsBlocks.js:888 -msgid "The Mouse-button block returns True if the mouse button is pressed." +#: js/blocks/ProgramBlocks.js:1304 +#: js/blocks/ProgramBlocks.js:1313 +msgid "Warning: block argument type mismatch" msgstr "" -#: js/SensorsBlocks.js:934 -msgid "to ASCII" +#: js/blocks/ProgramBlocks.js:1347 +msgid "The Open project block is used to open a project from a web page." msgstr "" -#: js/SensorsBlocks.js:938 -msgid "The To ASCII block converts numbers to letters." +#: js/blocks/ProgramBlocks.js:1357 +msgid "open project" msgstr "" -#: js/SensorsBlocks.js:1005 -msgid "The Keyboard block returns computer keyboard input." +#: js/blocks/ProgramBlocks.js:1410 +msgid "Please enter a valid URL." msgstr "" -#: js/IntervalsActions.js:216 -msgid "Adding missing pitch number 0." +#: js/blocks/ToneBlocks.js:34 +msgid "oscillator" msgstr "" -#: js/IntervalsActions.js:224 -msgid "Ignoring pitch numbers less than zero or greater than eleven." +#: js/blocks/ToneBlocks.js:42 +#: js/blocks/WidgetBlocks.js:179 +#: js/widgets/timbre.js:1558 +#: js/widgets/timbre.js:1808 +#.TRANS: there are different types (sine, triangle, square...) of oscillators. +#.TRANS: type of filter, e.g., lowpass, highpass, etc. +msgid "type" msgstr "" -#: js/IntervalsActions.js:230 -msgid "Ignoring duplicate pitch numbers." +#: js/blocks/ToneBlocks.js:44 +#: js/widgets/timbre.js:1562 +#.TRANS: Partials refers to the number of sine waves combined into the sound. +msgid "partials" msgstr "" -#: js/PitchActions.js:88 -msgid "The Scalar Step Block must be used inside of a Note Block." +#: js/blocks/ToneBlocks.js:76 +msgid "You are adding multiple oscillator blocks." msgstr "" -#: js/PitchActions.js:107 -msgid "The Scalar Step Block must be preceded by a Pitch Block." +#: js/blocks/ToneBlocks.js:144 +#: js/widgets/timbre.js:1225 +#.TRANS: a duo synthesizer combines a synth with a sequencer +msgid "duo synth" msgstr "" -#: js/DrumActions.js:231 -msgid "Noise Block: Did you mean to use a Note block?" +#: js/blocks/ToneBlocks.js:149 +msgid "The Duo synth block is a duo-frequency modulator used to define a timbre." msgstr "" -#: js/MeterActions.js:101 -#: js/MeterActions.js:139 -msgid "beats per minute must be greater than" +#: js/blocks/ToneBlocks.js:157 +#: js/widgets/timbre.js:1476 +msgid "vibrato rate" msgstr "" -#: js/MeterActions.js:111 -#: js/MeterActions.js:149 -msgid "maximum" +#: js/blocks/ToneBlocks.js:157 +msgid "vibrato intensity" msgstr "" -#: js/MeterActions.js:117 -#: js/MeterActions.js:155 -msgid "beats per minute is" +#: js/blocks/ToneBlocks.js:185 +#: js/widgets/timbre.js:1221 +#.TRANS: AM (amplitude modulation) synthesizer +msgid "AM synth" msgstr "" -#: js/ToneActions.js:134 -msgid "Vibrato intensity must be between 1 and 100." +#: js/blocks/ToneBlocks.js:189 +msgid "The AM synth block is an amplitude modulator used to define a timbre." msgstr "" -#: js/ToneActions.js:139 -msgid "Vibrato rate must be greater than 0." +#: js/blocks/ToneBlocks.js:224 +#: js/widgets/timbre.js:1223 +#.TRANS: FM (frequency modulation) synthesizer +msgid "FM synth" msgstr "" -#: js/ToneActions.js:192 -#: js/ToneActions.js:265 -#.TRANS: Depth is the intesity of the tremolo or chorus effect. -msgid "Depth is out of range." +#: js/blocks/ToneBlocks.js:228 +msgid "The FM synth block is a frequency modulator used to define a timbre." msgstr "" -#: js/ToneActions.js:301 -msgid "Distortion must be from 0 to 100." +#: js/blocks/ToneBlocks.js:262 +msgid "partial" msgstr "" -#: js/ToneActions.js:332 -#.TRANS: partials components in a harmonic series -msgid "Partial must be greater than or equal to 0." +#: js/blocks/ToneBlocks.js:265 +msgid "The Partial block is used to specify a weight for a specific partial harmonic." msgstr "" -#: js/ToneActions.js:378 -#: js/ToneActions.js:417 -#: js/ToneActions.js:456 -#: js/timbre.js:782 -msgid "Unable to use synth due to existing oscillator" +#: js/blocks/ToneBlocks.js:284 +#.TRANS: partials are weighted components in a harmonic series +msgid "Partial weight must be between 0 and 1." msgstr "" -#: js/ToneActions.js:388 -#: js/ToneActions.js:427 -msgid "The input cannot be negative." +#: js/blocks/ToneBlocks.js:297 +#.TRANS: partials are weighted components in a harmonic series +msgid "Partial block should be used inside of a Weighted-partials block." msgstr "" -#: js/DictActions.js:75 -#: js/DictActions.js:153 -#: js/DictActions.js:188 -msgid "font" +#: js/blocks/ToneBlocks.js:325 +#.TRANS: partials are weighted components in a harmonic series +msgid "weighted partials" msgstr "" -#: js/musicutils.js:363 -#: js/musicutils.js:471 -#: js/pitchdrummatrix.js:151 -#: js/musickeyboard.js:2563 -msgid "rest" +#: js/blocks/ToneBlocks.js:383 +msgid "The Harmonic block will add harmonics to the contained notes." msgstr "" -#: js/musicutils.js:565 -#.TRANS: ordinal number. Please keep exactly one space between each number. -msgid "1st 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th" +#: js/blocks/ToneBlocks.js:390 +#.TRANS: A harmonic is an overtone. +msgid "harmonic" msgstr "" -#: js/musicutils.js:629 -#: js/musicutils.js:812 -#: js/musicutils.js:911 -#.TRANS: augmented is a music term related to intervals -msgid "augmented" +#: js/blocks/ToneBlocks.js:431 +msgid "The Distortion block adds distortion to the pitch." msgstr "" -#: js/musicutils.js:631 -#: js/musicutils.js:813 -#: js/musicutils.js:910 -#.TRANS: diminished is a music term related to intervals and mode -msgid "diminished" +#: js/blocks/ToneBlocks.js:438 +#: js/widgets/timbre.js:2100 +#.TRANS: distortion is an alteration in the sound +msgid "distortion" msgstr "" -#: js/musicutils.js:639 -#.TRANS: twelve semi-tone scale for music -msgid "chromatic" +#: js/blocks/ToneBlocks.js:487 +msgid "The Tremolo block adds a wavering effect." msgstr "" -#: js/musicutils.js:640 -msgid "algerian" +#: js/blocks/ToneBlocks.js:495 +#: js/widgets/timbre.js:2092 +#.TRANS: a wavering effect in a musical tone +msgid "tremolo" msgstr "" -#: js/musicutils.js:641 -msgid "spanish" +#: js/blocks/ToneBlocks.js:500 +#: js/blocks/ToneBlocks.js:569 +#: js/blocks/ToneBlocks.js:630 +#: js/blocks/ToneBlocks.js:689 +#: js/widgets/timbre.js:2134 +#: js/widgets/timbre.js:2222 +#: js/widgets/timbre.js:2317 +#: js/widgets/timbre.js:2419 +#.TRANS: rate at which tremolo wavers +msgid "rate" msgstr "" -#: js/musicutils.js:643 -#.TRANS: modal scale in music -msgid "octatonic" +#: js/blocks/ToneBlocks.js:502 +#: js/blocks/ToneBlocks.js:630 +#: js/widgets/timbre.js:2137 +#: js/widgets/timbre.js:2328 +#.TRANS: amplitude of tremolo waver +msgid "depth" msgstr "" -#: js/musicutils.js:645 -#.TRANS: harmonic major scale in music -msgid "harmonic major" +#: js/blocks/ToneBlocks.js:559 +msgid "The Phaser block adds a sweeping sound." msgstr "" -#: js/musicutils.js:647 -#.TRANS: natural minor scales in music -msgid "natural minor" +#: js/blocks/ToneBlocks.js:566 +#: js/widgets/timbre.js:2098 +#.TRANS: alter the phase of the sound +msgid "phaser" msgstr "" -#: js/musicutils.js:649 -#.TRANS: harmonic minor scale in music -msgid "harmonic minor" +#: js/blocks/ToneBlocks.js:569 +#: js/turtleactions/IntervalsActions.js:114 +#: js/widgets/timbre.js:2422 +msgid "octaves" msgstr "" -#: js/musicutils.js:651 -#.TRANS: melodic minor scale in music -msgid "melodic minor" +#: js/blocks/ToneBlocks.js:569 +#: js/widgets/timbre.js:2425 +msgid "base frequency" msgstr "" -#: js/musicutils.js:655 -#.TRANS: modal scale for music -msgid "dorian" +#: js/blocks/ToneBlocks.js:619 +msgid "The Chorus block adds a chorus effect." msgstr "" -#: js/musicutils.js:657 -#.TRANS: modal scale for music -msgid "phrygian" +#: js/blocks/ToneBlocks.js:627 +#: js/widgets/timbre.js:2096 +#.TRANS: musical effect to simulate a choral sound +msgid "chorus" msgstr "" -#: js/musicutils.js:659 -#.TRANS: modal scale for music -msgid "lydian" +#: js/blocks/ToneBlocks.js:630 +msgid "delay" msgstr "" -#: js/musicutils.js:661 -#.TRANS: modal scale for music -msgid "mixolydian" +#: js/blocks/ToneBlocks.js:678 +msgid "The Vibrato block adds a rapid, slight variation in pitch." msgstr "" -#: js/musicutils.js:665 -#.TRANS: modal scale for music -msgid "locrian" +#: js/blocks/ToneBlocks.js:686 +#: js/widgets/timbre.js:2094 +#.TRANS: a rapid, slight variation in pitch +msgid "vibrato" msgstr "" -#: js/musicutils.js:667 -#.TRANS: minor jazz scale for music -msgid "jazz minor" +#: js/blocks/ToneBlocks.js:689 +#: js/widgets/timbre.js:2221 +msgid "intensity" msgstr "" -#: js/musicutils.js:669 -#.TRANS: bebop scale for music -msgid "bebop" +#: js/blocks/ToneBlocks.js:733 +#.TRANS: select synthesizer +msgid "set synth" msgstr "" -#: js/musicutils.js:670 -msgid "arabic" +#: js/blocks/ToneBlocks.js:804 +msgid "synth name" msgstr "" -#: js/musicutils.js:671 -msgid "byzantine" +#: js/blocks/ToneBlocks.js:842 +msgid "set default instrument" msgstr "" -#: js/musicutils.js:673 -#.TRANS: musical scale for music by Verdi -msgid "enigmatic" +#: js/blocks/ToneBlocks.js:895 +#: js/blocks/ToneBlocks.js:943 +#.TRANS: set the characteristics of a custom instrument +msgid "set instrument" msgstr "" -#: js/musicutils.js:674 -msgid "ethiopian" +#: js/blocks/ToneBlocks.js:898 +#: js/blocks/ToneBlocks.js:926 +#: js/blocks/ToneBlocks.js:932 +msgid "The Set instrument block selects a voice for the synthesizer," msgstr "" -#: js/musicutils.js:676 -#.TRANS: Ethiopic scale for music -msgid "geez" +#: js/blocks/ToneBlocks.js:900 +#: js/blocks/ToneBlocks.js:934 +msgid "eg guitar piano violin or cello." msgstr "" -#: js/musicutils.js:677 -msgid "hindu" +#: js/blocks/ToneBlocks.js:1015 +msgid "Import a sound file to use as an instrument and set its pitch center." msgstr "" -#: js/musicutils.js:678 -msgid "hungarian" +#: js/blocks/ToneBlocks.js:1110 +msgid "Upload a sound file to connect with the sample block." msgstr "" -#: js/musicutils.js:680 -#.TRANS: minor Romanian scale for music -msgid "romanian minor" +#: js/blocks/VolumeBlocks.js:35 +msgid "synth volume" msgstr "" -#: js/musicutils.js:681 -msgid "spanish gypsy" +#: js/blocks/VolumeBlocks.js:39 +msgid "The Synth volume block returns the current volume of the current synthesizer." msgstr "" -#: js/musicutils.js:683 -#.TRANS: musical scale for Mid-Eastern music -msgid "maqam" +#: js/blocks/VolumeBlocks.js:105 +msgid "master volume" msgstr "" -#: js/musicutils.js:685 -#.TRANS: minor blues scale for music -msgid "minor blues" +#: js/blocks/VolumeBlocks.js:109 +msgid "The Master volume block returns the master volume." msgstr "" -#: js/musicutils.js:687 -#.TRANS: major blues scale for music -msgid "major blues" +#: js/blocks/VolumeBlocks.js:355 +#: js/blocks/VolumeBlocks.js:524 +msgid "set synth volume" msgstr "" -#: js/musicutils.js:688 -msgid "whole tone" +#: js/blocks/VolumeBlocks.js:362 +#: js/blocks/VolumeBlocks.js:545 +msgid "synth" msgstr "" -#: js/musicutils.js:690 -#.TRANS: pentatonic is a general term that means "five note scale". This scale is typically known as "minor pentatonic" -msgid "minor pentatonic" +#: js/blocks/VolumeBlocks.js:403 +#: js/blocks/VolumeBlocks.js:577 +#: js/blocks/VolumeBlocks.js:740 +#: js/turtleactions/VolumeActions.js:173 +msgid "Setting volume to 0." msgstr "" -#: js/musicutils.js:692 -#.TRANS: pentatonic is a general term that means "five note scale". This scale is typically known as "major pentatonic" -msgid "major pentatonic" +#: js/blocks/VolumeBlocks.js:440 +msgid "Synth not found" msgstr "" -#: js/musicutils.js:693 -msgid "chinese" +#: js/blocks/VolumeBlocks.js:494 +msgid "set drum volume" msgstr "" -#: js/musicutils.js:694 -msgid "egyptian" +#: js/blocks/VolumeBlocks.js:530 +msgid "The Set synth volume block will change the volume of a particular synth," msgstr "" -#: js/musicutils.js:696 -#.TRANS: https://en.wikipedia.org/wiki/Hirajoshi_scale NOTE: There are three different versions of this scale -msgid "hirajoshi" +#: js/blocks/VolumeBlocks.js:532 +msgid "eg guitar violin snare drum etc." msgstr "" -#: js/musicutils.js:697 -msgid "Japan" +#: js/blocks/VolumeBlocks.js:534 +msgid "The default volume is 50." msgstr "" -#: js/musicutils.js:699 -#.TRANS: https://en.wikipedia.org/wiki/In_scale and https://en.wikipedia.org/wiki/Sakura_Sakura -msgid "in" +#: js/blocks/VolumeBlocks.js:536 +msgid "The range is 0 for silence to 100 for full volume." msgstr "" -#: js/musicutils.js:701 -#.TRANS: https://en.wikipedia.org/wiki/Miny%C5%8D_scale -msgid "minyo" +#: js/blocks/VolumeBlocks.js:597 +msgid "set panning" msgstr "" -#: js/musicutils.js:703 -#.TRANS: Italian mathematician -msgid "fibonacci" +#: js/blocks/VolumeBlocks.js:603 +msgid "The Set Panning block sets the panning for all synthesizers." msgstr "" -#: js/musicutils.js:708 -#: js/musicutils.js:1106 -#.TRANS: lowpass filter -msgid "lowpass" +#: js/blocks/VolumeBlocks.js:625 +msgid "Warning: Sound is coming out from only the left or right side." msgstr "" -#: js/musicutils.js:710 -#: js/musicutils.js:1107 -#.TRANS: bandpass filter -msgid "bandpass" +#: js/blocks/VolumeBlocks.js:647 +#: js/blocks/VolumeBlocks.js:695 +msgid "set master volume" msgstr "" -#: js/musicutils.js:712 -#: js/musicutils.js:1108 -#.TRANS: high-shelf filter -msgid "highshelf" +#: js/blocks/VolumeBlocks.js:653 +msgid "The Set master volume block sets the volume for all synthesizers." msgstr "" -#: js/musicutils.js:714 -#: js/musicutils.js:1109 -#.TRANS: low-shelf filter -msgid "lowshelf" +#: js/blocks/VolumeBlocks.js:784 +msgid "The Set relative volume block changes the volume of the contained notes." msgstr "" -#: js/musicutils.js:716 -#: js/musicutils.js:1110 -#.TRANS: notch-shelf filter -msgid "notch" +#: js/blocks/VolumeBlocks.js:791 +msgid "set relative volume" msgstr "" -#: js/musicutils.js:718 -#: js/musicutils.js:1111 -#.TRANS: all-pass filter -msgid "allpass" +#: js/blocks/VolumeBlocks.js:857 +msgid "decrescendo" msgstr "" -#: js/musicutils.js:720 -#: js/musicutils.js:1112 -#.TRANS: peaking filter -msgid "peaking" +#: js/blocks/VolumeBlocks.js:921 +msgid "crescendo" msgstr "" -#: js/musicutils.js:731 -#: js/synthutils.js:58 -#.TRANS: musical instrument -msgid "violin" +#: js/blocks/WidgetBlocks.js:81 +#.TRANS: sound envelope (ADSR) +msgid "envelope" msgstr "" -#: js/musicutils.js:732 -#: js/synthutils.js:60 -#.TRANS: viola musical instrument -msgid "viola" +#: js/blocks/WidgetBlocks.js:89 +#.TRANS: Attack time is the time taken for initial run-up of level from nil to peak, beginning when the key is first pressed. +msgid "attack" msgstr "" -#: js/musicutils.js:733 -#: js/synthutils.js:98 -#.TRANS: xylophone musical instrument -msgid "xylophone" +#: js/blocks/WidgetBlocks.js:91 +#.TRANS: Decay time is the time taken for the subsequent run down from the attack level to the designated sustain level. +msgid "decay" msgstr "" -#: js/musicutils.js:734 -#: js/synthutils.js:120 -#.TRANS: vibraphone musical instrument -msgid "vibraphone" +#: js/blocks/WidgetBlocks.js:93 +#.TRANS: Sustain level is the level during the main sequence of the sound's duration, until the key is released. +msgid "sustain" msgstr "" -#: js/musicutils.js:735 -#: js/synthutils.js:62 -#.TRANS: musical instrument -msgid "cello" +#: js/blocks/WidgetBlocks.js:95 +#.TRANS: Release time is the time taken for the level to decay from the sustain level to zero after the key is released. +msgid "release" msgstr "" -#: js/musicutils.js:737 -#: js/synthutils.js:66 -#.TRANS: viola musical instrument -msgid "double bass" +#: js/blocks/WidgetBlocks.js:113 +msgid "Attack value should be from 0 to 100." msgstr "" -#: js/musicutils.js:738 -#: js/synthutils.js:68 -#: js/rhythmruler.js:2119 -#.TRANS: musical instrument -msgid "guitar" +#: js/blocks/WidgetBlocks.js:116 +msgid "Decay value should be from 0 to 100." msgstr "" -#: js/musicutils.js:739 -#: js/synthutils.js:70 -#.TRANS: musical instrument -msgid "acoustic guitar" +#: js/blocks/WidgetBlocks.js:119 +msgid "Sustain value should be from 0 to 100." msgstr "" -#: js/musicutils.js:740 -#: js/synthutils.js:72 -#.TRANS: musical instrument -msgid "flute" +#: js/blocks/WidgetBlocks.js:122 +msgid "Release value should be from 0-100." msgstr "" -#: js/musicutils.js:741 -#: js/synthutils.js:74 -#.TRANS: musical instrument -msgid "clarinet" +#: js/blocks/WidgetBlocks.js:140 +msgid "You are adding multiple envelope blocks." msgstr "" -#: js/musicutils.js:742 -#: js/synthutils.js:76 -#.TRANS: musical instrument -msgid "saxophone" +#: js/blocks/WidgetBlocks.js:171 +#.TRANS: a filter removes some unwanted components from a signal +msgid "filter" msgstr "" -#: js/musicutils.js:743 -#: js/synthutils.js:78 -#.TRANS: musical instrument -msgid "tuba" +#: js/blocks/WidgetBlocks.js:181 +#: js/widgets/timbre.js:1818 +#.TRANS: rolloff is the steepness of a change in frequency. +msgid "rolloff" msgstr "" -#: js/musicutils.js:744 -#: js/synthutils.js:80 -#.TRANS: musical instrument -msgid "trumpet" +#: js/blocks/WidgetBlocks.js:213 +#.TRANS: rolloff is the steepness of a change in frequency. +msgid "Rolloff value should be either -12, -24, -48, or -96 decibels/octave." msgstr "" -#: js/musicutils.js:745 -#: js/synthutils.js:82 -#.TRANS: musical instrument -msgid "oboe" +#: js/blocks/WidgetBlocks.js:252 +msgid "The Temperament tool is used to define custom tuning." msgstr "" -#: js/musicutils.js:746 -#: js/synthutils.js:84 -#.TRANS: musical instrument -msgid "trombone" +#: js/blocks/WidgetBlocks.js:332 +#: js/blocks/WidgetBlocks.js:1573 +#: js/widgets/sampler.js:547 +msgid "Upload a sample and adjust its pitch center." msgstr "" -#: js/musicutils.js:747 -#: js/synthutils.js:100 -#.TRANS: polytone synthesizer -msgid "electronic synth" +#: js/blocks/WidgetBlocks.js:339 +#.TRANS: the speed at music is should be played. +msgid "sampler" msgstr "" -#: js/musicutils.js:748 -#: js/synthutils.js:102 -#.TRANS: simple monotone synthesizer -msgid "simple 1" +#: js/blocks/WidgetBlocks.js:517 +msgid "The Meter block opens a tool to select strong beats for the meter." msgstr "" -#: js/musicutils.js:749 -msgid "simple 2" +#: js/blocks/WidgetBlocks.js:573 +msgid "The oscilloscope block opens a tool to visualize waveforms." msgstr "" -#: js/musicutils.js:750 -msgid "simple 3" +#: js/blocks/WidgetBlocks.js:578 +msgid "oscilloscope" msgstr "" -#: js/musicutils.js:751 -msgid "simple 4" +#: js/blocks/WidgetBlocks.js:645 +msgid "The Custom mode block opens a tool to explore musical mode (the spacing of the notes in a scale)." msgstr "" -#: js/musicutils.js:753 -#: js/synthutils.js:49 -#.TRANS: brown noise synthesizer -msgid "brown noise" +#: js/blocks/WidgetBlocks.js:651 +#.TRANS: musical mode is the pattern of half-steps in an octave, e.g., Major or Minor modes +msgid "custom mode" msgstr "" -#: js/musicutils.js:754 -#: js/synthutils.js:51 -#.TRANS: pink noise synthesizer -msgid "pink noise" +#: js/blocks/WidgetBlocks.js:700 +msgid "The Tempo block opens a metronome to visualize the beat." msgstr "" -#: js/musicutils.js:756 -#: js/synthutils.js:127 -#: js/rhythmruler.js:1670 -#: js/rhythmruler.js:1928 -#.TRANS: musical instrument -msgid "snare drum" +#: js/blocks/WidgetBlocks.js:762 +msgid "The Arpeggio Widget is used to compose chord sequences." msgstr "" -#: js/musicutils.js:757 -#: js/synthutils.js:129 -#.TRANS: musical instrument -msgid "kick drum" +#: js/blocks/WidgetBlocks.js:837 +msgid "The Pitch drum matrix is used to map pitches to drum sounds." msgstr "" -#: js/musicutils.js:758 -#: js/synthutils.js:131 -#.TRANS: musical instrument -msgid "tom tom" +#: js/blocks/WidgetBlocks.js:842 +#.TRANS: makes a mapping between pitches and drum sounds +msgid "pitch-drum mapper" msgstr "" -#: js/musicutils.js:759 -#: js/synthutils.js:133 -#.TRANS: musical instrument -msgid "floor tom" +#: js/blocks/WidgetBlocks.js:891 +msgid "You must have at least one pitch block and one drum block in the matrix." msgstr "" -#: js/musicutils.js:760 -#: js/synthutils.js:135 -#.TRANS: musical instrument -msgid "bass drum" +#: js/blocks/WidgetBlocks.js:920 +msgid "The Pitch slider tool to is used to generate pitches at selected frequencies." msgstr "" -#: js/musicutils.js:761 -#: js/synthutils.js:137 -#.TRANS: a drum made from an inverted cup -msgid "cup drum" +#: js/blocks/WidgetBlocks.js:925 +#.TRANS: widget to generate pitches using a slider +msgid "pitch slider" msgstr "" -#: js/musicutils.js:762 -#: js/synthutils.js:139 -#.TRANS: musical instrument -msgid "darbuka drum" +#: js/blocks/WidgetBlocks.js:977 +msgid "chromatic keyboard" msgstr "" -#: js/musicutils.js:763 -#: js/synthutils.js:143 -#.TRANS: musical instrument -msgid "hi hat" +#: js/blocks/WidgetBlocks.js:1011 +#: js/blocks/WidgetBlocks.js:1077 +#.TRANS: widget to generate pitches using a slider +msgid "music keyboard" msgstr "" -#: js/musicutils.js:764 -#: js/synthutils.js:145 -#.TRANS: a small metal bell -msgid "ride bell" +#: js/blocks/WidgetBlocks.js:1062 +#: js/blocks/WidgetBlocks.js:1069 +msgid "The Music keyboard block opens a piano keyboard that can be used to create notes." msgstr "" -#: js/musicutils.js:765 -#: js/synthutils.js:147 -#.TRANS: musical instrument -msgid "cow bell" +#: js/blocks/WidgetBlocks.js:1128 +msgid "The Pitch staircase tool to is used to generate pitches from a given ratio." msgstr "" -#: js/musicutils.js:766 -msgid "japanese drum" +#: js/blocks/WidgetBlocks.js:1135 +#.TRANS: generate a progressive sequence of pitches +msgid "pitch staircase" msgstr "" -#: js/musicutils.js:767 -#: js/synthutils.js:153 -#.TRANS: musical instrument -msgid "japanese bell" +#: js/blocks/WidgetBlocks.js:1222 +msgid "The Rhythm Maker block opens a tool to create drum machines." msgstr "" -#: js/musicutils.js:768 -#: js/synthutils.js:149 -#.TRANS: musical instrument -msgid "triangle bell" +#: js/blocks/WidgetBlocks.js:1291 +msgid "G major scale" msgstr "" -#: js/musicutils.js:769 -#: js/synthutils.js:151 -#.TRANS: musical instrument -msgid "finger cymbals" +#: js/blocks/WidgetBlocks.js:1326 +msgid "C major scale" msgstr "" -#: js/musicutils.js:770 -#: js/synthutils.js:155 -#.TRANS: a musically tuned set of bells -msgid "chime" +#: js/blocks/WidgetBlocks.js:1366 +msgid "The Phrase Maker block opens a tool to create musical phrases." msgstr "" -#: js/musicutils.js:771 -#: js/synthutils.js:157 -#.TRANS: a musical instrument -msgid "gong" +#: js/blocks/WidgetBlocks.js:1373 +#.TRANS: assigns pitch to a sequence of beats to generate a melody +msgid "phrase maker" msgstr "" -#: js/musicutils.js:772 -#: js/synthutils.js:159 -#.TRANS: sound effect -msgid "clang" +#: js/blocks/WidgetBlocks.js:1444 +msgid "You must have at least one pitch block and one rhythm block in the matrix." msgstr "" -#: js/musicutils.js:773 -#: js/synthutils.js:161 -#.TRANS: sound effect -msgid "crash" +#: js/blocks/WidgetBlocks.js:1503 +msgid "The Status block opens a tool for inspecting the status of Music Blocks as it is running." msgstr "" -#: js/musicutils.js:774 -#: js/synthutils.js:163 -#.TRANS: sound effect -msgid "bottle" +#: js/blocks/WidgetBlocks.js:1580 +#.TRANS: AI-generated music +msgid "aimusic" msgstr "" -#: js/musicutils.js:775 -#: js/synthutils.js:165 -#.TRANS: sound effect -msgid "clap" +#: js/turtleactions/MeterActions.js:101 +#: js/turtleactions/MeterActions.js:139 +msgid "beats per minute must be greater than" msgstr "" -#: js/musicutils.js:776 -#: js/synthutils.js:167 -#.TRANS: sound effect -msgid "slap" +#: js/turtleactions/MeterActions.js:111 +#: js/turtleactions/MeterActions.js:149 +msgid "maximum" msgstr "" -#: js/musicutils.js:777 -#: js/synthutils.js:169 -#.TRANS: sound effect -msgid "splash" +#: js/turtleactions/MeterActions.js:117 +#: js/turtleactions/MeterActions.js:155 +msgid "beats per minute is" msgstr "" -#: js/musicutils.js:778 -#: js/synthutils.js:171 -#.TRANS: sound effect -msgid "bubbles" +#: js/turtleactions/DictActions.js:75 +#: js/turtleactions/DictActions.js:142 +#: js/turtleactions/DictActions.js:172 +msgid "font" msgstr "" -#: js/musicutils.js:779 -#: js/synthutils.js:173 -#.TRANS: sound effect -msgid "raindrop" +#: js/turtleactions/DictActions.js:255 +msgid "Dictionary with this name does not exist" msgstr "" -#: js/musicutils.js:780 -#: js/synthutils.js:175 -#.TRANS: animal sound effect -msgid "cat" +#: js/turtleactions/DictActions.js:259 +msgid "Key with this name does not exist in " msgstr "" -#: js/musicutils.js:781 -#: js/synthutils.js:177 -#.TRANS: animal sound effect -msgid "cricket" +#: js/turtleactions/DrumActions.js:227 +msgid "Noise Block: Did you mean to use a Note block?" msgstr "" -#: js/musicutils.js:782 -#: js/synthutils.js:179 -#.TRANS: animal sound effect -msgid "dog" +#: js/turtleactions/IntervalsActions.js:113 +msgid "one" msgstr "" -#: js/musicutils.js:784 -#: js/synthutils.js:86 -#.TRANS: musical instrument -msgid "banjo" +#: js/turtleactions/IntervalsActions.js:113 +msgid "two" msgstr "" -#: js/musicutils.js:785 -#: js/synthutils.js:88 -#.TRANS: musical instrument -msgid "koto" +#: js/turtleactions/IntervalsActions.js:113 +msgid "three" msgstr "" -#: js/musicutils.js:786 -#: js/synthutils.js:90 -#.TRANS: musical instrument -msgid "dulcimer" +#: js/turtleactions/IntervalsActions.js:113 +msgid "four" msgstr "" -#: js/musicutils.js:787 -#: js/synthutils.js:92 -#.TRANS: musical instrument -msgid "electric guitar" +#: js/turtleactions/IntervalsActions.js:113 +msgid "five" msgstr "" -#: js/musicutils.js:788 -#: js/synthutils.js:94 -#.TRANS: musical instrument -msgid "bassoon" +#: js/turtleactions/IntervalsActions.js:113 +msgid "six" msgstr "" -#: js/musicutils.js:789 -#: js/synthutils.js:96 -#.TRANS: musical instrument -msgid "celeste" +#: js/turtleactions/IntervalsActions.js:113 +msgid "seven" msgstr "" -#: js/musicutils.js:791 -#: js/musicutils.js:1123 -#: js/musicutils.js:1131 -#: js/temperament.js:650 -#.TRANS: musical temperament -msgid "equal" +#: js/turtleactions/IntervalsActions.js:113 +msgid "eight" msgstr "" -#: js/musicutils.js:793 -#: js/musicutils.js:1125 -#: js/musicutils.js:1133 -#.TRANS: musical temperament -msgid "Pythagorean" +#: js/turtleactions/IntervalsActions.js:113 +msgid "nine" msgstr "" -#: js/musicutils.js:795 -#: js/musicutils.js:1124 -#: js/musicutils.js:1132 -#.TRANS: musical temperament -msgid "just intonation" +#: js/turtleactions/IntervalsActions.js:119 +msgid "a" msgstr "" -#: js/musicutils.js:797 -#: js/musicutils.js:1126 -#: js/musicutils.js:1127 -#: js/musicutils.js:1134 -#: js/musicutils.js:1135 -#.TRANS: musical temperament -msgid "meantone" +#: js/turtleactions/IntervalsActions.js:120 +msgid "below" msgstr "" -#: js/musicutils.js:814 -msgid "major 7th" +#: js/turtleactions/IntervalsActions.js:124 +msgid "above" msgstr "" -#: js/musicutils.js:815 -msgid "minor 7th" +#: js/turtleactions/IntervalsActions.js:131 +msgid "plus" msgstr "" -#: js/musicutils.js:816 -msgid "dominant 7th" +#: js/turtleactions/IntervalsActions.js:139 +msgid " below" msgstr "" -#: js/musicutils.js:817 -msgid "minor-major 7th" +#: js/turtleactions/IntervalsActions.js:257 +msgid "Adding missing pitch number 0." msgstr "" -#: js/musicutils.js:818 -msgid "fully-diminished 7th" +#: js/turtleactions/IntervalsActions.js:265 +msgid "Ignoring pitch numbers less than zero or greater than eleven." msgstr "" -#: js/musicutils.js:819 -msgid "half-diminished 7th" +#: js/turtleactions/IntervalsActions.js:271 +msgid "Ignoring duplicate pitch numbers." msgstr "" -#: js/musicutils.js:4379 -#: js/musicutils.js:4416 -msgid "current" +#: js/turtleactions/ToneActions.js:134 +msgid "Vibrato intensity must be between 1 and 100." msgstr "" -#: js/musicutils.js:4382 -#: js/musicutils.js:4407 -msgid "next" +#: js/turtleactions/ToneActions.js:139 +msgid "Vibrato rate must be greater than 0." msgstr "" -#: js/musicutils.js:4385 -#: js/musicutils.js:4412 -msgid "previous" +#: js/turtleactions/ToneActions.js:192 +#: js/turtleactions/ToneActions.js:265 +#.TRANS: Depth is the intesity of the tremolo or chorus effect. +msgid "Depth is out of range." msgstr "" -#: js/synthutils.js:104 -#.TRANS: simple monotone synthesizer -msgid "simple-2" +#: js/turtleactions/ToneActions.js:301 +msgid "Distortion must be from 0 to 100." msgstr "" -#: js/synthutils.js:106 -#.TRANS: simple monotone synthesizer -msgid "simple-3" +#: js/turtleactions/ToneActions.js:332 +#.TRANS: partials components in a harmonic series +msgid "Partial must be greater than or equal to 0." msgstr "" -#: js/synthutils.js:108 -#.TRANS: simple monotone synthesizer -msgid "simple-4" +#: js/turtleactions/ToneActions.js:378 +#: js/turtleactions/ToneActions.js:417 +#: js/turtleactions/ToneActions.js:456 +#: js/widgets/timbre.js:782 +msgid "Unable to use synth due to existing oscillator" msgstr "" -#: js/synthutils.js:141 -#.TRANS: musical instrument -msgid "taiko" +#: js/turtleactions/ToneActions.js:388 +#: js/turtleactions/ToneActions.js:427 +msgid "The input cannot be negative." msgstr "" -#: js/modewidget.js:86 -#: js/modewidget.js:88 -#: js/modewidget.js:642 -#: js/modewidget.js:644 -#: js/modewidget.js:712 -#: js/modewidget.js:714 -#: js/temperament.js:2078 -#: js/rhythmruler.js:189 -#: js/rhythmruler.js:1410 -#: js/rhythmruler.js:1412 -#: js/rhythmruler.js:1435 -#: js/rhythmruler.js:1437 -#: js/meterwidget.js:89 -#: js/meterwidget.js:91 +#: js/widgets/modewidget.js:86 +#: js/widgets/modewidget.js:88 +#: js/widgets/modewidget.js:642 +#: js/widgets/modewidget.js:644 +#: js/widgets/modewidget.js:712 +#: js/widgets/modewidget.js:714 +#: js/widgets/meterwidget.js:194 +#: js/widgets/meterwidget.js:196 +#: js/widgets/temperament.js:2236 +#: js/widgets/rhythmruler.js:457 +#: js/widgets/rhythmruler.js:1790 +#: js/widgets/rhythmruler.js:1792 +#: js/widgets/rhythmruler.js:1816 +#: js/widgets/rhythmruler.js:1818 msgid "Play all" msgstr "" -#: js/modewidget.js:115 -#: js/pitchstaircase.js:641 -#: js/phrasemaker.js:339 -#: js/pitchdrummatrix.js:94 -#: js/pitchslider.js:125 -#: js/temperament.js:2083 -#: js/musickeyboard.js:530 -#: js/timbre.js:756 -#: js/meterwidget.js:124 -#: js/arpeggio.js:103 +#: js/widgets/modewidget.js:115 +#: js/widgets/meterwidget.js:229 +#: js/widgets/pitchdrummatrix.js:166 +#: js/widgets/pitchslider.js:125 +#: js/widgets/pitchstaircase.js:641 +#: js/widgets/temperament.js:2244 +#: js/widgets/timbre.js:756 +#: js/widgets/arpeggio.js:103 +#: js/widgets/musickeyboard.js:688 +#: js/widgets/phrasemaker.js:550 msgid "Save" msgstr "" -#: js/modewidget.js:121 -#: js/pitchstaircase.js:686 -#: js/phrasemaker.js:356 -#: js/pitchdrummatrix.js:109 -#: js/musickeyboard.js:534 -#: js/rhythmruler.js:269 -#: js/arpeggio.js:118 +#: js/widgets/modewidget.js:121 +#: js/widgets/pitchdrummatrix.js:181 +#: js/widgets/pitchstaircase.js:686 +#: js/widgets/arpeggio.js:118 +#: js/widgets/musickeyboard.js:696 +#: js/widgets/phrasemaker.js:567 +#: js/widgets/rhythmruler.js:601 #.TRANS: clear all subdivisions from the ruler. msgid "Clear" msgstr "" -#: js/modewidget.js:127 +#: js/widgets/modewidget.js:127 msgid "Rotate counter clockwise" msgstr "" -#: js/modewidget.js:133 +#: js/widgets/modewidget.js:133 msgid "Rotate clockwise" msgstr "" -#: js/modewidget.js:139 +#: js/widgets/modewidget.js:139 msgid "Invert" msgstr "" -#: js/modewidget.js:145 -#: js/pitchstaircase.js:678 -#: js/rhythmruler.js:258 -#: js/timbre.js:963 +#: js/widgets/modewidget.js:145 +#: js/widgets/pitchstaircase.js:678 +#: js/widgets/timbre.js:963 +#: js/widgets/rhythmruler.js:578 msgid "Undo" msgstr "" -#: js/modewidget.js:163 +#: js/widgets/modewidget.js:163 #.TRANS: A circle of notes represents the musical mode. msgid "Click in the circle to select notes for the mode." msgstr "" -#: js/modewidget.js:1017 -#: js/pitchstaircase.js:580 -#: js/phrasemaker.js:4855 -#: js/temperament.js:1754 -#: js/rhythmruler.js:1865 -#: js/rhythmruler.js:2081 -#: js/tempo.js:414 +#: js/widgets/modewidget.js:1017 +#: js/widgets/pitchstaircase.js:580 +#: js/widgets/temperament.js:1929 +#: js/widgets/tempo.js:414 +#: js/widgets/phrasemaker.js:5356 +#: js/widgets/rhythmruler.js:2254 +#: js/widgets/rhythmruler.js:2472 msgid "New action block generated!" msgstr "" -#: js/oscilloscope.js:79 -msgid "Zoom In" -msgstr "" - -#: js/oscilloscope.js:88 -msgid "Zoom Out" -msgstr "" - -#: js/pitchstaircase.js:624 -msgid "Play chord" -msgstr "" - -#: js/pitchstaircase.js:632 -msgid "Play scale" +#: js/widgets/meterwidget.js:275 +msgid "Reset" msgstr "" -#: js/pitchstaircase.js:696 -msgid "Click on a note to create a new step." +#: js/widgets/meterwidget.js:301 +msgid "Click in the circle to select strong beats for the meter." msgstr "" -#: js/phrasemaker.js:363 -msgid "Export" +#: js/widgets/oscilloscope.js:79 +msgid "Zoom In" msgstr "" -#: js/phrasemaker.js:370 -msgid "Sort" +#: js/widgets/oscilloscope.js:88 +msgid "Zoom Out" msgstr "" -#: js/phrasemaker.js:373 -#: js/musickeyboard.js:559 -msgid "Add note" +#: js/widgets/pitchdrummatrix.js:356 +#: js/widgets/pitchdrummatrix.js:752 +msgid "Click in the grid to map notes to drums." msgstr "" -#: js/phrasemaker.js:764 -msgid "Click on the table to add notes." +#: js/widgets/pitchslider.js:103 +msgid "Move up" msgstr "" -#: js/phrasemaker.js:2414 -#: js/phrasemaker.js:2543 -msgid "tuplet value" +#: js/widgets/pitchslider.js:114 +msgid "Move down" msgstr "" -#: js/pitchdrummatrix.js:270 -#: js/pitchdrummatrix.js:639 -msgid "Click in the grid to map notes to drums." +#: js/widgets/pitchslider.js:136 +msgid "Click on the slider to create a note block." msgstr "" -#: js/pitchslider.js:103 -msgid "Move up" +#: js/widgets/pitchstaircase.js:624 +msgid "Play chord" msgstr "" -#: js/pitchslider.js:114 -msgid "Move down" +#: js/widgets/pitchstaircase.js:632 +msgid "Play scale" msgstr "" -#: js/pitchslider.js:136 -msgid "Click on the slider to create a note block." +#: js/widgets/pitchstaircase.js:696 +msgid "Click on a note to create a new step." msgstr "" -#: js/temperament.js:215 +#: js/widgets/temperament.js:321 msgid "back to 2:1 octave space" msgstr "" -#: js/temperament.js:323 +#: js/widgets/temperament.js:447 msgid "edit" msgstr "" -#: js/temperament.js:330 -#: js/temperament.js:332 -#: js/temperament.js:1336 -#: js/temperament.js:1338 +#: js/widgets/temperament.js:454 +#: js/widgets/temperament.js:456 +#: js/widgets/temperament.js:1493 +#: js/widgets/temperament.js:1495 msgid "close" msgstr "" -#: js/temperament.js:423 -#: js/temperament.js:736 -#: js/temperament.js:743 -#: js/temperament.js:845 -#: js/temperament.js:935 -#: js/temperament.js:942 -#: js/temperament.js:1015 -#: js/temperament.js:1284 -#: js/temperament.js:1354 -#: js/temperament.js:1430 +#: js/widgets/temperament.js:552 +#: js/widgets/temperament.js:877 +#: js/widgets/temperament.js:884 +#: js/widgets/temperament.js:986 +#: js/widgets/temperament.js:1080 +#: js/widgets/temperament.js:1087 +#: js/widgets/temperament.js:1160 +#: js/widgets/temperament.js:1433 +#: js/widgets/temperament.js:1511 +#: js/widgets/temperament.js:1596 msgid "done" msgstr "" -#: js/temperament.js:477 -#: js/temperament.js:482 -#: js/temperament.js:918 +#: js/widgets/temperament.js:610 +#: js/widgets/temperament.js:615 +#: js/widgets/temperament.js:1063 msgid "ratio" msgstr "" -#: js/temperament.js:483 +#: js/widgets/temperament.js:616 msgid "interval" msgstr "" -#: js/temperament.js:611 +#: js/widgets/temperament.js:744 msgid "non scalar" msgstr "" -#: js/temperament.js:650 +#: js/widgets/temperament.js:787 msgid "ratios" msgstr "" -#: js/temperament.js:650 +#: js/widgets/temperament.js:787 msgid "arbitrary" msgstr "" -#: js/temperament.js:719 +#: js/widgets/temperament.js:860 msgid "number of divisions" msgstr "" -#: js/temperament.js:741 -#: js/temperament.js:858 -#: js/temperament.js:940 -#: js/temperament.js:1033 +#: js/widgets/temperament.js:882 +#: js/widgets/temperament.js:999 +#: js/widgets/temperament.js:1085 +#: js/widgets/temperament.js:1178 msgid "preview" msgstr "" -#: js/temperament.js:788 +#: js/widgets/temperament.js:929 msgid "The Number of divisions is too large." msgstr "" -#: js/temperament.js:921 +#: js/widgets/temperament.js:1066 msgid "recursion" msgstr "" -#: js/temperament.js:1450 +#: js/widgets/temperament.js:1616 msgid "The octave ratio has changed. This changes temperament significantly." msgstr "" -#: js/temperament.js:2087 +#: js/widgets/temperament.js:2248 msgid "Table" msgstr "" -#: js/temperament.js:2185 +#: js/widgets/temperament.js:2356 msgid "Add pitches" msgstr "" -#: js/musickeyboard.js:570 -msgid "Metronome" +#: js/widgets/tempo.js:78 +#: js/widgets/tempo.js:97 +#: js/widgets/tempo.js:99 +#: js/widgets/aiwidget.js:134 +#: js/widgets/aiwidget.js:136 +#: js/widgets/rhythmruler.js:681 +#: js/widgets/rhythmruler.js:683 +#: js/widgets/rhythmruler.js:1864 +#: js/widgets/rhythmruler.js:1866 +#: js/widgets/sampler.js:180 +#: js/widgets/sampler.js:182 +msgid "Pause" msgstr "" -#: js/musickeyboard.js:1296 -#: plugins/rodi.rtp:193 -msgid "duration" +#: js/widgets/tempo.js:113 +msgid "Save tempo" msgstr "" -#: js/musickeyboard.js:2840 -msgid "New action blocks generated!" +#: js/widgets/tempo.js:144 +msgid "speed up" msgstr "" -#: js/musickeyboard.js:2841 -msgid "New action block generated" +#: js/widgets/tempo.js:150 +msgid "slow down" msgstr "" -#: js/musickeyboard.js:2984 -#: js/musickeyboard.js:2992 -msgid "MIDI device present." +#: js/widgets/tempo.js:194 +msgid "Adjust the tempo with the buttons." msgstr "" -#: js/musickeyboard.js:2995 -msgid "No MIDI device found." +#: js/widgets/tempo.js:261 +msgid "Please enter a number between 30 and 1000" msgstr "" -#: js/musickeyboard.js:3000 -msgid "Failed to get MIDI access in browser." +#: js/widgets/tempo.js:268 +#: js/widgets/tempo.js:271 +msgid "The beats per minute must be between 30 and 1000." msgstr "" -#: js/rhythmruler.js:202 -msgid "Save rhythms" +#: js/widgets/tempo.js:287 +msgid "The beats per minute must be below 1000." msgstr "" -#: js/rhythmruler.js:222 -msgid "Save drum machine" +#: js/widgets/tempo.js:303 +msgid "The beats per minute must be above 30" msgstr "" -#: js/rhythmruler.js:263 -#.TRANS: user can tap out a rhythm by clicking on a ruler. -msgid "Tap a rhythm" +#: js/widgets/timbre.js:766 +msgid "Synthesizer" msgstr "" -#: js/rhythmruler.js:342 -#: js/rhythmruler.js:344 -#: js/rhythmruler.js:1481 -#: js/rhythmruler.js:1483 -#: js/sampler.js:110 -#: js/sampler.js:112 -#: js/tempo.js:78 -#: js/tempo.js:97 -#: js/tempo.js:99 -msgid "Pause" +#: js/widgets/timbre.js:789 +msgid "Oscillator" msgstr "" -#: js/rhythmruler.js:478 -msgid "Click on the ruler to divide it." +#: js/widgets/timbre.js:840 +msgid "Envelope" msgstr "" -#: js/rhythmruler.js:603 -#: js/rhythmruler.js:605 -#: js/rhythmruler.js:804 -#: js/rhythmruler.js:806 -#: js/rhythmruler.js:1386 -#: js/rhythmruler.js:1388 -msgid "tap a rhythm" +#: js/widgets/timbre.js:886 +#: planet/js/GlobalTag.js:50 +#.TRANS: On the Planet, we use labels to tag projects. +msgid "Effects" msgstr "" -#: js/rhythmruler.js:1084 -msgid "Maximum value of 256 has been exceeded." +#: js/widgets/timbre.js:904 +msgid "Filter" msgstr "" -#: js/sampler.js:137 -msgid "Warning: Sample is bigger than 1MB." +#: js/widgets/timbre.js:946 +msgid "Add filter" msgstr "" -#: js/sampler.js:142 -msgid "Upload failed: Sample is not a .wav file." +#: js/widgets/timbre.js:987 +msgid "Click on buttons to open the timbre design tools." msgstr "" -#: js/sampler.js:164 -msgid "A new sample block was generated." +#: js/widgets/timbre.js:1273 +msgid "harmonicity" msgstr "" -#: js/sampler.js:255 -msgid "Upload sample" +#: js/widgets/timbre.js:1340 +#: js/widgets/timbre.js:1406 +msgid "modulation index" msgstr "" -#: js/sampler.js:306 -msgid "Save sample" +#: js/widgets/timbre.js:1484 +msgid "vibrato amount" msgstr "" -#: js/sampler.js:697 -#.TRANS: The reference tone is a sound used for comparison. -msgid "reference tone" +#: js/widgets/timbre.js:1919 +msgid "Filter already present." msgstr "" -#: js/tempo.js:113 -msgid "Save tempo" +#: js/widgets/timbre.js:2322 +msgid "delay (MS)" msgstr "" -#: js/tempo.js:144 -msgid "speed up" +#: js/widgets/timbre.js:2507 +msgid "distortion amount" msgstr "" -#: js/tempo.js:150 -msgid "slow down" +#: js/widgets/aiwidget.js:180 +#: js/widgets/sampler.js:227 +msgid "Warning: Sample is bigger than 1MB." msgstr "" -#: js/tempo.js:194 -msgid "Adjust the tempo with the buttons." +#: js/widgets/aiwidget.js:539 +msgid "New start block generated" msgstr "" -#: js/tempo.js:261 -msgid "Please enter a number between 30 and 1000" +#: js/widgets/aiwidget.js:541 +msgid "MIDI loading. This may take some time depending upon the number of notes in the track" msgstr "" -#: js/tempo.js:268 -#: js/tempo.js:271 -msgid "The beats per minute must be between 30 and 1000." +#: js/widgets/aiwidget.js:551 +#: js/widgets/sampler.js:254 +msgid "Upload failed: Sample is not a .wav file." msgstr "" -#: js/tempo.js:287 -msgid "The beats per minute must be below 1000." +#: js/widgets/aiwidget.js:679 +#: js/widgets/sampler.js:432 +msgid "Save sample" msgstr "" -#: js/tempo.js:303 -msgid "The beats per minute must be above 30" +#: js/widgets/aiwidget.js:701 +msgid "AI Music" msgstr "" -#: js/timbre.js:766 -msgid "Synthesizer" +#: js/widgets/arpeggio.js:239 +msgid "Click in the grid to add steps to the arpeggio." msgstr "" -#: js/timbre.js:789 -msgid "Oscillator" +#: js/widgets/help.js:95 +#: js/widgets/help.js:125 +#: js/widgets/help.js:146 +#: js/widgets/help.js:158 +#: js/widgets/help.js:376 +#: js/widgets/help.js:391 +msgid "Take a tour" msgstr "" -#: js/timbre.js:840 -msgid "Envelope" +#: js/widgets/musickeyboard.js:725 +#: js/widgets/phrasemaker.js:584 +msgid "Add note" msgstr "" -#: js/timbre.js:886 -#: js/GlobalTag.js:50 -#.TRANS: On the Planet, we use labels to tag projects. -msgid "Effects" +#: js/widgets/musickeyboard.js:744 +msgid "Metronome" +msgstr "" + +#: js/widgets/musickeyboard.js:1549 +#: plugins/rodi.rtp:193 +msgid "duration" +msgstr "" + +#: js/widgets/musickeyboard.js:3179 +msgid "New action blocks generated" +msgstr "" + +#: js/widgets/musickeyboard.js:3180 +msgid "New action block generated" msgstr "" -#: js/timbre.js:904 -msgid "Filter" +#: js/widgets/musickeyboard.js:3365 +#: js/widgets/musickeyboard.js:3373 +msgid "MIDI device present." msgstr "" -#: js/timbre.js:946 -msgid "Add filter" +#: js/widgets/musickeyboard.js:3376 +msgid "No MIDI device found." msgstr "" -#: js/timbre.js:987 -msgid "Click on buttons to open the timbre design tools." +#: js/widgets/musickeyboard.js:3386 +msgid "Failed to get MIDI access in browser." msgstr "" -#: js/timbre.js:1273 -msgid "harmonicity" +#: js/widgets/phrasemaker.js:574 +msgid "Export" msgstr "" -#: js/timbre.js:1340 -#: js/timbre.js:1406 -msgid "modulation index" +#: js/widgets/phrasemaker.js:581 +msgid "Sort" msgstr "" -#: js/timbre.js:1484 -msgid "vibrato amount" +#: js/widgets/phrasemaker.js:975 +msgid "Click on the table to add notes." msgstr "" -#: js/timbre.js:1919 -msgid "Filter already present." +#: js/widgets/phrasemaker.js:2677 +#: js/widgets/phrasemaker.js:2819 +msgid "tuplet value" msgstr "" -#: js/timbre.js:2322 -msgid "delay (MS)" +#: js/widgets/rhythmruler.js:486 +msgid "Save rhythms" msgstr "" -#: js/timbre.js:2507 -msgid "distortion amount" +#: js/widgets/rhythmruler.js:512 +msgid "Save drum machine" msgstr "" -#: js/meterwidget.js:170 -msgid "Reset" +#: js/widgets/rhythmruler.js:589 +#.TRANS: user can tap out a rhythm by clicking on a ruler. +msgid "Tap a rhythm" msgstr "" -#: js/meterwidget.js:196 -msgid "Click in the circle to select strong beats for the meter." +#: js/widgets/rhythmruler.js:817 +msgid "Click on the ruler to divide it." msgstr "" -#: js/arpeggio.js:239 -msgid "Click in the grid to add steps to the arpeggio." +#: js/widgets/rhythmruler.js:950 +#: js/widgets/rhythmruler.js:952 +#: js/widgets/rhythmruler.js:1152 +#: js/widgets/rhythmruler.js:1154 +#: js/widgets/rhythmruler.js:1765 +#: js/widgets/rhythmruler.js:1767 +msgid "tap a rhythm" msgstr "" -#: js/ProjectStorage.js:243 -msgid "anonymous" +#: js/widgets/rhythmruler.js:1459 +msgid "Maximum value of 256 has been exceeded." msgstr "" -#: js/GlobalCard.js:68 -msgid "Share" +#: js/widgets/sampler.js:237 +msgid "Recording started..." msgstr "" -#: js/GlobalCard.js:74 -msgid "Flags" +#: js/widgets/sampler.js:245 +msgid "Recording complete..." msgstr "" -#: js/LocalCard.js:36 -msgid "View published project" +#: js/widgets/sampler.js:283 +msgid "A new sample block was generated." msgstr "" -#: js/LocalCard.js:42 -msgid "Publish project" +#: js/widgets/sampler.js:378 +msgid "Upload sample" msgstr "" -#: js/LocalCard.js:51 -msgid "Edit project" +#: js/widgets/sampler.js:399 +msgid "Warning: Your sample cannot be loaded because it is >1MB." msgstr "" -#: js/LocalCard.js:52 -msgid "Delete project" +#: js/widgets/sampler.js:448 +msgid "Toggle Mic" msgstr "" -#: js/LocalCard.js:53 -msgid "Download project" +#: js/widgets/sampler.js:458 +msgid "Playback" msgstr "" -#: js/LocalCard.js:55 -msgid "Duplicate project" +#: js/widgets/sampler.js:979 +#.TRANS: The reference tone is a sound used for comparison. +msgid "reference tone" msgstr "" -#: js/GlobalTag.js:28 +#: planet/js/GlobalTag.js:28 #.TRANS: On the Planet, we use labels to tag projects. msgid "All Projects" msgstr "" -#: js/GlobalTag.js:30 -#: js/StringHelper.js:37 +#: planet/js/GlobalTag.js:30 +#: planet/js/StringHelper.js:37 #.TRANS: On the Planet, we use labels to tag projects. msgid "My Projects" msgstr "" -#: js/GlobalTag.js:32 +#: planet/js/GlobalTag.js:32 #.TRANS: On the Planet, we use labels to tag projects. msgid "Examples" msgstr "" -#: js/GlobalTag.js:34 +#: planet/js/GlobalTag.js:34 #.TRANS: On the Planet, we use labels to tag projects. msgid "Music" msgstr "" -#: js/GlobalTag.js:36 +#: planet/js/GlobalTag.js:36 #.TRANS: On the Planet, we use labels to tag projects. msgid "Art" msgstr "" -#: js/GlobalTag.js:38 +#: planet/js/GlobalTag.js:38 #.TRANS: On the Planet, we use labels to tag projects. msgid "Math" msgstr "" -#: js/GlobalTag.js:40 +#: planet/js/GlobalTag.js:40 #.TRANS: On the Planet, we use labels to tag projects. msgid "Interactive" msgstr "" -#: js/GlobalTag.js:42 +#: planet/js/GlobalTag.js:42 #.TRANS: On the Planet, we use labels to tag projects. msgid "Design" msgstr "" -#: js/GlobalTag.js:44 +#: planet/js/GlobalTag.js:44 #.TRANS: On the Planet, we use labels to tag projects. msgid "Game" msgstr "" -#: js/GlobalTag.js:46 +#: planet/js/GlobalTag.js:46 #.TRANS: On the Planet, we use labels to tag projects. msgid "Media" msgstr "" -#: js/GlobalTag.js:48 +#: planet/js/GlobalTag.js:48 #.TRANS: On the Planet, we use labels to tag projects. msgid "Sensors" msgstr "" -#: js/GlobalTag.js:52 +#: planet/js/GlobalTag.js:52 #.TRANS: On the Planet, we use labels to tag projects. msgid "Code Snippet" msgstr "" -#: js/helper.js:149 -#: js/StringHelper.js:49 -msgid "Show more tags" +#: planet/js/LocalCard.js:36 +msgid "View published project" msgstr "" -#: js/helper.js:150 -msgid "Show fewer tags" +#: planet/js/LocalCard.js:42 +msgid "Publish project" +msgstr "" + +#: planet/js/LocalCard.js:51 +msgid "Edit project" +msgstr "" + +#: planet/js/LocalCard.js:52 +msgid "Delete project" +msgstr "" + +#: planet/js/LocalCard.js:53 +msgid "Download project" +msgstr "" + +#: planet/js/LocalCard.js:55 +msgid "Duplicate project" +msgstr "" + +#: planet/js/ProjectStorage.js:243 +msgid "anonymous" +msgstr "" + +#: planet/js/SaveInterface.js:34 +msgid "Open in Music Blocks" +msgstr "" + +#: planet/js/SaveInterface.js:35 +msgid "Open in Turtle Blocks" +msgstr "" + +#: planet/js/GlobalCard.js:68 +msgid "Share" +msgstr "" + +#: planet/js/GlobalCard.js:74 +msgid "Flags" +msgstr "" + +#: planet/js/GlobalPlanet.js:35 +msgid "No results found." +msgstr "" + +#: planet/js/GlobalPlanet.js:51 +msgid "Remix of" +msgstr "" + +#: planet/js/GlobalPlanet.js:509 +msgid "Cannot connect to server" msgstr "" -#: js/ProjectViewer.js:30 +#: planet/js/ProjectViewer.js:30 msgid "Error: Report could not be submitted. Try again later." msgstr "" -#: js/ProjectViewer.js:31 +#: planet/js/ProjectViewer.js:31 msgid "Thank you for reporting this project. A moderator will review the project shortly, to verify violation of the Sugar Labs Code of Conduct." msgstr "" -#: js/ProjectViewer.js:32 -#: js/StringHelper.js:62 -#: js/StringHelper.js:64 -#: js/StringHelper.js:68 +#: planet/js/ProjectViewer.js:32 +#: planet/js/StringHelper.js:62 +#: planet/js/StringHelper.js:64 +#: planet/js/StringHelper.js:68 msgid "Report Project" msgstr "" -#: js/ProjectViewer.js:33 -#: js/StringHelper.js:63 +#: planet/js/ProjectViewer.js:33 +#: planet/js/StringHelper.js:63 msgid "Project Reported" msgstr "" -#: js/ProjectViewer.js:34 +#: planet/js/ProjectViewer.js:34 msgid "Report description required" msgstr "" -#: js/ProjectViewer.js:35 +#: planet/js/ProjectViewer.js:35 msgid "Report description too long" msgstr "" -#: js/StringHelper.js:30 +#: planet/js/Publisher.js:30 +msgid "Feature unavailable - cannot connect to server. Reload Music Blocks to try again." +msgstr "" + +#: planet/js/Publisher.js:220 +#: planet/js/Publisher.js:237 +msgid "This field is required" +msgstr "" + +#: planet/js/Publisher.js:227 +msgid "Title too long" +msgstr "" + +#: planet/js/Publisher.js:244 +msgid "Description too long" +msgstr "" + +#: planet/js/Publisher.js:341 +msgid "Server Error" +msgstr "" + +#: planet/js/Publisher.js:341 +msgid "Try Again" +msgstr "" + +#: planet/js/StringHelper.js:30 msgid "Planet" msgstr "" -#: js/StringHelper.js:31 +#: planet/js/StringHelper.js:31 msgid "Close Planet" msgstr "" -#: js/StringHelper.js:32 +#: planet/js/StringHelper.js:32 msgid "Open project from file" msgstr "" -#: js/StringHelper.js:34 +#: planet/js/StringHelper.js:34 msgid "Local" msgstr "" -#: js/StringHelper.js:35 +#: planet/js/StringHelper.js:35 msgid "Global" msgstr "" -#: js/StringHelper.js:36 +#: planet/js/StringHelper.js:36 msgid "Search for a project" msgstr "" -#: js/StringHelper.js:38 +#: planet/js/StringHelper.js:38 msgid "Publish Project" msgstr "" -#: js/StringHelper.js:40 +#: planet/js/StringHelper.js:40 msgid "Tags (max 5)" msgstr "" -#: js/StringHelper.js:41 -#: js/StringHelper.js:61 +#: planet/js/StringHelper.js:41 +#: planet/js/StringHelper.js:61 msgid "Description" msgstr "" -#: js/StringHelper.js:42 -#: js/StringHelper.js:67 +#: planet/js/StringHelper.js:42 +#: planet/js/StringHelper.js:67 msgid "Submit" msgstr "" -#: js/StringHelper.js:43 -#: js/StringHelper.js:47 +#: planet/js/StringHelper.js:43 +#: planet/js/StringHelper.js:47 msgid "Cancel" msgstr "" -#: js/StringHelper.js:44 +#: planet/js/StringHelper.js:44 msgid "Delete \\"\\"?" msgstr "" -#: js/StringHelper.js:45 +#: planet/js/StringHelper.js:45 msgid "Permanently delete project \\"\\"?" msgstr "" -#: js/StringHelper.js:48 +#: planet/js/StringHelper.js:48 msgid "Explore Projects" msgstr "" -#: js/StringHelper.js:50 +#: planet/js/StringHelper.js:49 +#: planet/js/helper.js:149 +msgid "Show more tags" +msgstr "" + +#: planet/js/StringHelper.js:50 msgid "Most recent" msgstr "" -#: js/StringHelper.js:51 +#: planet/js/StringHelper.js:51 msgid "Most liked" msgstr "" -#: js/StringHelper.js:52 +#: planet/js/StringHelper.js:52 msgid "Most downloaded" msgstr "" -#: js/StringHelper.js:53 +#: planet/js/StringHelper.js:53 msgid "A-Z" msgstr "" -#: js/StringHelper.js:54 +#: planet/js/StringHelper.js:54 msgid "Sort by" msgstr "" -#: js/StringHelper.js:55 +#: planet/js/StringHelper.js:55 msgid "Load More Projects" msgstr "" -#: js/StringHelper.js:56 +#: planet/js/StringHelper.js:56 msgid "Last Updated" msgstr "" -#: js/StringHelper.js:57 +#: planet/js/StringHelper.js:57 msgid "Creation Date" msgstr "" -#: js/StringHelper.js:58 +#: planet/js/StringHelper.js:58 msgid "Number of Downloads:" msgstr "" -#: js/StringHelper.js:59 +#: planet/js/StringHelper.js:59 msgid "Number of Likes:" msgstr "" -#: js/StringHelper.js:60 +#: planet/js/StringHelper.js:60 msgid "Tags:" msgstr "" -#: js/StringHelper.js:65 +#: planet/js/StringHelper.js:65 msgid "Report projects which violate the Sugar Labs Code of Conduct." msgstr "" -#: js/StringHelper.js:66 +#: planet/js/StringHelper.js:66 msgid "Reason for reporting project" msgstr "" -#: js/StringHelper.js:70 +#: planet/js/StringHelper.js:70 msgid "Download as File" msgstr "" -#: js/GlobalPlanet.js:35 -msgid "No results found." -msgstr "" - -#: js/GlobalPlanet.js:51 -msgid "Remix of" -msgstr "" - -#: js/GlobalPlanet.js:509 -msgid "Cannot connect to server" -msgstr "" - -#: js/Publisher.js:30 -msgid "Feature unavailable - cannot connect to server. Reload Music Blocks to try again." -msgstr "" - -#: js/Publisher.js:218 -#: js/Publisher.js:235 -msgid "This field is required" -msgstr "" - -#: js/Publisher.js:225 -msgid "Title too long" +#: planet/js/helper.js:150 +msgid "Show fewer tags" msgstr "" -#: js/Publisher.js:242 -msgid "Description too long" +#: plugins/accelerometer.rtp:48 +msgid "motion x" msgstr "" -#: js/Publisher.js:339 -msgid "Server Error" +#: plugins/accelerometer.rtp:56 +msgid "motion y" msgstr "" -#: js/Publisher.js:339 -msgid "Try Again" +#: plugins/accelerometer.rtp:64 +msgid "motion z" msgstr "" -#: js/SaveInterface.js:34 -msgid "Open in Music Blocks" +#: plugins/facebook.rtp:27 +msgid "publish" msgstr "" -#: js/SaveInterface.js:35 -msgid "Open in Turtle Blocks" +#: plugins/maths.rtp:62 +msgid "power" msgstr "" -#: plugins/weather.rtp:68 -#: plugins/weather.rtp:97 -msgid "Days ahead must be in the range of -1 to 5." +#: plugins/maths.rtp:62 +msgid "base" msgstr "" -#: plugins/weather.rtp:122 -msgid "forecast" +#: plugins/maths.rtp:62 +msgid "exp" msgstr "" -#: plugins/weather.rtp:123 -#: plugins/weather.rtp:137 -#: plugins/weather.rtp:150 -msgid "city" +#: plugins/maths.rtp:99 +msgid "floor" msgstr "" -#: plugins/weather.rtp:124 -#: plugins/weather.rtp:138 -#: plugins/weather.rtp:151 -msgid "day" +#: plugins/maths.rtp:104 +msgid "ceiling" msgstr "" -#: plugins/weather.rtp:136 -msgid "high" +#: plugins/maths.rtp:109 +msgid "to degrees" msgstr "" -#: plugins/weather.rtp:149 -msgid "low" +#: plugins/maths.rtp:114 +msgid "to radians" msgstr "" #: plugins/nutrition.rtp:104 @@ -8012,45 +8421,6 @@ msgstr "" msgid "water" msgstr "" -#: plugins/maths.rtp:62 -#: plugins/examples.rtp:93 -msgid "power" -msgstr "" - -#: plugins/maths.rtp:62 -#: plugins/examples.rtp:93 -msgid "base" -msgstr "" - -#: plugins/maths.rtp:62 -#: plugins/examples.rtp:93 -msgid "exp" -msgstr "" - -#: plugins/maths.rtp:99 -#: plugins/examples.rtp:130 -msgid "floor" -msgstr "" - -#: plugins/maths.rtp:104 -#: plugins/examples.rtp:135 -msgid "ceiling" -msgstr "" - -#: plugins/maths.rtp:109 -#: plugins/examples.rtp:140 -msgid "to degrees" -msgstr "" - -#: plugins/maths.rtp:114 -#: plugins/examples.rtp:145 -msgid "to radians" -msgstr "" - -#: plugins/facebook.rtp:27 -msgid "publish" -msgstr "" - #: plugins/rodi.rtp:172 msgid "blink" msgstr "" @@ -8079,18 +8449,66 @@ msgstr "" msgid "move" msgstr "" -#: plugins/accelerometer.rtp:48 -msgid "motion x" +#: plugins/weather.rtp:68 +#: plugins/weather.rtp:97 +msgid "Days ahead must be in the range of -1 to 5." msgstr "" -#: plugins/accelerometer.rtp:56 -msgid "motion y" +#: plugins/weather.rtp:122 +msgid "forecast" msgstr "" -#: plugins/accelerometer.rtp:64 -msgid "motion z" +#: plugins/weather.rtp:123 +#: plugins/weather.rtp:137 +#: plugins/weather.rtp:150 +msgid "city" +msgstr "" + +#: plugins/weather.rtp:124 +#: plugins/weather.rtp:138 +#: plugins/weather.rtp:151 +msgid "day" +msgstr "" + +#: plugins/weather.rtp:136 +msgid "high" +msgstr "" + +#: plugins/weather.rtp:149 +msgid "low" msgstr "" +#: js/toolbar.js:70 + +#: js/toolbar.js:130 + +#: js/toolbar.js:194 + +#: js/toolbar.js:249 + +#~msgid "Toggle JavaScript Editor" +#~msgstr "" + +#: js/EnsembleBlocks.js:643 + +#~msgid "The Turrle pitch block returns the current pitch number being played by the specified turtle." +#~msgstr "" + +#: js/PitchActions.js:88 + +#~msgid "The Scalar Step Block must be used inside of a Note Block." +#~msgstr "" + +#: js/PitchActions.js:107 + +#~msgid "The Scalar Step Block must be preceded by a Pitch Block." +#~msgstr "" + +#: js/musickeyboard.js:2840 + +#~msgid "New action blocks generated!" +#~msgstr "" + #: js/toolbar.js:110 #: js/toolbar.js:204 @@ -8431,11 +8849,6 @@ msgstr "" #~msgid "The Time block returns the number of seconds that the program has been running." #~msgstr "" -#: js/help.js:95 - -#~msgid "Take a tour" -#~msgstr "" - #: js/GlobalCard.js:48 #~msgid "More Details" @@ -11334,11 +11747,6 @@ msgstr "" #~msgid "The save-stack button saves a stack onto a custom palette. It appears after a \"long press\" on a stack." #~msgstr "" -#: js/musicutils.js:254 - -#~msgid "Custom" -#~msgstr "" - #: js/basicblocks.js:4785 #~msgid "Rhythm" diff --git a/po/es.po b/po/es.po index 63b458fd8d..3c911edc95 100644 --- a/po/es.po +++ b/po/es.po @@ -16,6 +16,9 @@ #: js/SaveInterface.js:59 #: js/SaveInterface.js:61 #: js/SaveInterface.js:93 +#: js/SaveInterface.js:59 +#: js/SaveInterface.js:61 +#: js/SaveInterface.js:93 msgid "Music Blocks Project" msgstr "Proyecto de Bloques de Música" @@ -3782,7 +3785,7 @@ msgstr "número de tono de tortuga" #: js/blocks/EnsembleBlocks.js:643 msgid "The Turtle pitch block returns the current pitch number being played by the specified turtle." -msgstr "El bloque de tono de tortuga devuelve el número de tono actual que está tocando la tortuga especificada." +msgstr "El bloque de tono de la tortuga devuelve el número de tono actual que está reproduciendo la tortuga especificado." #: js/blocks/EnsembleBlocks.js:747 #: js/blocks/EnsembleBlocks.js:819 @@ -7808,9 +7811,6 @@ msgstr "alta" msgid "low" msgstr "baja" -#~msgid "Toggle Fullscreen" -#~msgstr "Alternar pantalla completa" - #: js/toolbar.js:70 #: js/toolbar.js:130 @@ -7822,11 +7822,6 @@ msgstr "baja" #~msgid "Toggle JavaScript Editor" #~msgstr "Alternar editor de JavaScript" -#: js/EnsembleBlocks.js:643 - -#~msgid "The Turtle pitch block returns the current pitch number being played by the specified turtle." -#~msgstr "El bloque de tono de la tortuga devuelve el número de tono actual que está reproduciendo la tortuga especificado." - #: js/PitchActions.js:88 #~msgid "The Scalar Step Block must be used inside of a Note Block." @@ -7837,11 +7832,6 @@ msgstr "baja" #~msgid "The Scalar Step Block must be preceded by a Pitch Block." #~msgstr "El bloque Paso escalar debe ir precedida de un bloque de tono." -#: js/helper.js:150 - -#~msgid "Show fewer tags" -#~msgstr "Mostrar menos etiquetas" - #: js/toolbar.js:110 #: js/toolbar.js:204 diff --git a/po/fa.po b/po/fa.po index df3a84304f..bd253e4082 100644 --- a/po/fa.po +++ b/po/fa.po @@ -2127,276 +2127,131 @@ #: js/planetInterface.js:104 #: js/planetInterface.js:104 #: js/planetInterface.js:104 -msgid "project undefined" -msgstr "" - -#: js/logo.js:61 -msgid "Not a valid pitch name" -msgstr "" - -#: js/logo.js:507 -#: js/ProgramBlocks.js:258 -#: js/ProgramBlocks.js:427 -msgid "You must select a file." -msgstr "" - -#: js/logo.js:1184 -#: js/turtles.js:118 -#: js/turtle-painter.js:1192 -#: js/turtle-painter.js:1193 -#: js/block.js:1463 -#: js/lilypond.js:757 -#: js/lilypond.js:921 -#: js/lilypond.js:959 -#: js/ActionBlocks.js:1223 -#: js/ProgramBlocks.js:1267 -msgid "start" -msgstr "" - -#: js/logo.js:1696 -msgid "Playback is ready." -msgstr "" - -#: js/blocks.js:1011 -#: js/blocks.js:3427 -#: js/blocks.js:3428 -#: js/blocks.js:3653 -#: js/blocks.js:4012 -#: js/blocks.js:4205 -#: js/blocks.js:5343 -#: js/blocks.js:6474 -#: js/palette.js:527 -#: js/palette.js:536 -#: js/palette.js:545 -#: js/palette.js:554 -#: js/palette.js:1131 -#: js/palette.js:1142 -#: js/palette.js:1153 -#: js/palette.js:1164 -#: js/palette.js:1183 -#: js/rubrics.js:529 -#: js/macros.js:170 -#: js/macros.js:266 -#: js/macros.js:267 -#: js/macros.js:276 -#: js/macros.js:828 -#: js/block.js:1449 -#: js/block.js:4164 -#: js/block.js:4182 -#: js/block.js:4193 -#: js/turtledefs.js:128 -#: js/turtledefs.js:230 -#: js/ActionBlocks.js:254 -#: js/ActionBlocks.js:307 -#: js/ActionBlocks.js:617 -#: js/ActionBlocks.js:716 -#: js/ActionBlocks.js:961 -#: js/ActionBlocks.js:1049 -#: js/ActionBlocks.js:1322 -#: js/ActionBlocks.js:1325 -#: js/ActionBlocks.js:1337 -#: js/ActionBlocks.js:1404 -#: js/MeterBlocks.js:715 -#: js/MeterBlocks.js:768 -#: js/MeterBlocks.js:831 -#: js/MeterBlocks.js:892 -#: js/phrasemaker.js:4412 -#: js/musickeyboard.js:2647 -#: js/rhythmruler.js:1928 -#: js/rhythmruler.js:1935 -#: js/rhythmruler.js:2119 -#: js/rhythmruler.js:2126 -msgid "action" -msgstr "" - -#: js/blocks.js:1205 -#: js/blocks.js:3380 -#: js/blocks.js:3770 -#: js/blocks.js:3801 -#: js/blocks.js:3850 -#: js/blocks.js:3885 -#: js/blocks.js:6497 -#: js/palette.js:509 -#: js/palette.js:638 -#: js/palette.js:1107 -#: js/BoxesBlocks.js:282 -#: js/BoxesBlocks.js:285 -#: js/BoxesBlocks.js:405 -#: js/BoxesBlocks.js:594 -msgid "box" -msgstr "" - -#: js/blocks.js:1680 -msgid "Consider breaking this stack into parts." +#: js/SaveInterface.js:59 +#: js/SaveInterface.js:61 +#: js/SaveInterface.js:93 +msgid "Music Blocks Project" msgstr "" -#: js/blocks.js:2408 -#: js/palette.js:653 -#: js/MediaBlocks.js:602 -msgid "open file" +#: js/SaveInterface.js:63 +msgid "This project was created in Music Blocks" msgstr "" -#: js/blocks.js:2415 -#: js/blocks.js:2423 -#: js/activity.js:1875 -msgid "audio file" +#: js/SaveInterface.js:67 +msgid "Music Blocks is a Free/Libre Software application." msgstr "" -#: js/blocks.js:2536 -#: js/blocks.js:3147 -#: js/block.js:3543 -msgid "on2" +#: js/SaveInterface.js:69 +msgid "The source code can be accessed at" msgstr "" -#: js/blocks.js:2538 -#: js/blocks.js:3149 -#: js/block.js:3545 -msgid "off" +#: js/SaveInterface.js:72 +msgid "For more information, please consult the" msgstr "" -#: js/blocks.js:2543 -#: js/blocks.js:3154 -#: js/palette.js:618 -#: js/block.js:3466 -#: js/BooleanBlocks.js:77 -#: js/BooleanBlocks.js:167 -#: js/BooleanBlocks.js:251 -#: js/BooleanBlocks.js:335 -#: js/BooleanBlocks.js:433 -#: js/BooleanBlocks.js:539 -#: js/BooleanBlocks.js:640 -#: js/BooleanBlocks.js:741 -#: js/BooleanBlocks.js:847 -#: js/BooleanBlocks.js:948 -#: js/BooleanBlocks.js:1033 -#: js/SensorsBlocks.js:910 -msgid "true" +#: js/SaveInterface.js:76 +#: js/turtledefs.js:795 +msgid "Music Blocks Guide" msgstr "" -#: js/blocks.js:2545 -#: js/blocks.js:3156 -#: js/block.js:3466 -#: js/BooleanBlocks.js:79 -#: js/BooleanBlocks.js:169 -#: js/BooleanBlocks.js:253 -#: js/BooleanBlocks.js:337 -#: js/BooleanBlocks.js:435 -#: js/BooleanBlocks.js:541 -#: js/BooleanBlocks.js:642 -#: js/BooleanBlocks.js:743 -#: js/BooleanBlocks.js:849 -#: js/BooleanBlocks.js:950 -#: js/SensorsBlocks.js:912 -msgid "false" +#: js/SaveInterface.js:83 +msgid "Alternatively, open the file in Music Blocks using the Load project button." msgstr "" -#: js/blocks.js:3183 -#: js/palette.js:574 -#: js/MediaBlocks.js:892 -#: js/MediaBlocks.js:963 -msgid "text" +#: js/SaveInterface.js:85 +msgid "Project Code" msgstr "" -#: js/blocks.js:3379 -#: js/palette.js:641 -#: js/palette.js:642 -#: js/BoxesBlocks.js:514 -msgid "store in box" +#: js/SaveInterface.js:87 +msgid "This code stores data about the blocks in a project." msgstr "" -#: js/blocks.js:3384 -#: js/blocks.js:3824 -#: js/blocks.js:3859 -#: js/blocks.js:3894 -#: js/blocks.js:5773 -#: js/blocks.js:5794 -#: js/BoxesBlocks.js:772 -msgid "box1" +#: js/SaveInterface.js:89 +msgid "Show" msgstr "" -#: js/blocks.js:3386 -#: js/blocks.js:3826 -#: js/blocks.js:3861 -#: js/blocks.js:3896 -#: js/blocks.js:5775 -#: js/blocks.js:5796 -#: js/BoxesBlocks.js:663 -msgid "box2" +#: js/SaveInterface.js:91 +msgid "Hide" msgstr "" -#: js/blocks.js:4058 -#: js/palette.js:639 -#: js/palette.js:644 -#: js/palette.js:1043 -#: js/BoxesBlocks.js:591 -msgid "store in" +#: js/SaveInterface.js:131 +#: js/SaveInterface.js:204 +#: js/SaveInterface.js:262 +#: js/SaveInterface.js:389 +#: js/SaveInterface.js:417 +#: js/activity.js:4884 +#: planet/js/ProjectStorage.js:27 +#: planet/js/GlobalPlanet.js:467 +#: planet/js/GlobalPlanet.js:469 +#: planet/js/GlobalPlanet.js:495 +#.TRANS: default project title when saving as Lilypond +msgid "My Project" msgstr "" -#: js/blocks.js:4058 -#: js/EnsembleBlocks.js:391 -#: js/EnsembleBlocks.js:402 -#: js/MediaBlocks.js:746 -#: js/ProgramBlocks.js:390 -#: js/ProgramBlocks.js:495 -#: js/ProgramBlocks.js:658 -#: js/BoxesBlocks.js:595 -#: js/PitchBlocks.js:656 -#: js/PitchBlocks.js:932 -#: js/PitchBlocks.js:1827 -#: js/ToneBlocks.js:1025 -#: js/DictBlocks.js:215 -#: js/DictBlocks.js:289 -msgid "name" +#: js/SaveInterface.js:197 +#: planet/js/SaveInterface.js:58 +msgid "No description provided" msgstr "" -#: js/blocks.js:4058 -#: js/RhythmBlocks.js:1130 -#: js/BoxesBlocks.js:75 -#: js/BoxesBlocks.js:595 -#: js/HeapBlocks.js:544 -#: js/DictBlocks.js:289 -#: js/DictBlocks.js:430 -msgid "value" +#: js/SaveInterface.js:332 +msgid "Your recording is in progress." msgstr "" -#: js/blocks.js:4907 -msgid "There is no block selected." +#: js/SaveInterface.js:401 +#.TRANS: File name prompt for save as Lilypond +msgid "File name" msgstr "" -#: js/blocks.js:5002 -#: js/MediaBlocks.js:888 -msgid "show" +#: js/SaveInterface.js:403 +#: planet/js/StringHelper.js:39 +#.TRANS: Project title prompt for save as Lilypond +msgid "Project title" msgstr "" -#: js/blocks.js:5005 -#: js/MediaBlocks.js:803 -#.TRANS: Avatar is the image used to determine the appearance of the mouse. -msgid "avatar" +#: js/SaveInterface.js:405 +#.TRANS: Project title prompt for save as Lilypond +msgid "Project author" msgstr "" -#: js/blocks.js:5008 -#: js/ToneBlocks.js:1010 -#: js/sampler.js:693 -#.TRANS: The sound sample that the user uploads. -msgid "sample" +#: js/SaveInterface.js:407 +#.TRANS: MIDI prompt for save as Lilypond +msgid "Include MIDI output?" msgstr "" -#: js/turtles.js:874 -msgid "Grid" +#: js/SaveInterface.js:409 +#.TRANS: Guitar prompt for save as Lilypond +msgid "Include guitar tablature output?" msgstr "" -#: js/turtles.js:891 -#: js/turtledefs.js:626 -msgid "Clean" +#: js/SaveInterface.js:411 +#.TRANS: Lilypond is a scripting language for generating sheet music +msgid "Save as Lilypond" msgstr "" -#: js/turtles.js:912 -#: js/turtledefs.js:632 -msgid "Collapse" +#: js/SaveInterface.js:426 +#: js/blocks/EnsembleBlocks.js:75 +#: js/blocks/EnsembleBlocks.js:154 +#: js/blocks/EnsembleBlocks.js:216 +#: js/blocks/EnsembleBlocks.js:302 +#: js/blocks/EnsembleBlocks.js:348 +#: js/blocks/EnsembleBlocks.js:389 +#: js/blocks/EnsembleBlocks.js:441 +#: js/blocks/EnsembleBlocks.js:490 +#: js/blocks/EnsembleBlocks.js:536 +#: js/blocks/EnsembleBlocks.js:583 +#: js/blocks/EnsembleBlocks.js:637 +#: js/blocks/EnsembleBlocks.js:753 +#: js/blocks/EnsembleBlocks.js:840 +#: js/blocks/EnsembleBlocks.js:899 +#: js/blocks/EnsembleBlocks.js:942 +#: js/blocks/EnsembleBlocks.js:1212 +#: js/blocks/EnsembleBlocks.js:1280 +#.TRANS: default project author when saving as Lilypond +msgid "Mr. Mouse" msgstr "" -#: js/turtles.js:940 -msgid "Expand" +#: js/SaveInterface.js:573 +msgid "The Lilypond code is copied to clipboard. You can paste it here: " msgstr "" #: js/languagebox.js:198 @@ -2407,6933 +2262,7487 @@ msgstr "" msgid "Music Blocks is already set to this language." msgstr "" -#: js/piemenus.js:200 -#: js/musicutils.js:808 -#: js/musicutils.js:824 -#: js/phrasemaker.js:1672 -#: js/musickeyboard.js:2041 -#: js/sampler.js:544 -#.TRANS: double sharp is a music term related to pitch -msgid "double sharp" +#: js/planetInterface.js:131 +msgid "project undefined" msgstr "" -#: js/piemenus.js:201 -#: js/PitchBlocks.js:1510 -#: js/PitchActions.js:580 -#: js/musicutils.js:806 -#: js/musicutils.js:825 -#: js/phrasemaker.js:1673 -#: js/musickeyboard.js:2042 -#: js/sampler.js:545 -#.TRANS: sharp is a half-step up in pitch -#.TRANS: sharp is a music term related to pitch -msgid "sharp" +#: js/rubrics.js:523 +#: js/turtledefs.js:119 +#: js/turtledefs.js:221 +#: js/blocks/RhythmBlockPaletteBlocks.js:52 +#: js/blocks/RhythmBlockPaletteBlocks.js:234 +#: js/blocks/ProgramBlocks.js:745 +#: js/widgets/rhythmruler.js:2057 +#: js/widgets/rhythmruler.js:2064 +#: js/widgets/rhythmruler.js:2133 +#: js/widgets/rhythmruler.js:2140 +#: js/widgets/rhythmruler.js:2219 +#.TRANS: an arrangement of notes based on duration +msgid "rhythm" msgstr "" -#: js/piemenus.js:202 -#: js/musicutils.js:804 -#: js/musicutils.js:826 -#: js/phrasemaker.js:1674 -#: js/musickeyboard.js:2043 -#: js/sampler.js:546 -#.TRANS: natural is a music term related to pitch -msgid "natural" +#: js/rubrics.js:524 +#: js/turtledefs.js:121 +#: js/turtledefs.js:223 +#: js/block-verbose.js:2622 +#: js/block.js:2550 +#: js/blocks/IntervalsBlocks.js:63 +#: js/blocks/SensorsBlocks.js:178 +#: js/blocks/PitchBlocks.js:1839 +#: js/blocks/PitchBlocks.js:1853 +#: js/widgets/musickeyboard.js:1935 +#: js/widgets/phrasemaker.js:1036 +#.TRANS: pitch number +#.TRANS: pitch number +#.TRANS: we specify pitch in terms of a name and an octave. The name can be CDEFGAB or Do Re Mi Fa Sol La Ti. Octave is a number between 1 and 8. +msgid "pitch" msgstr "" -#: js/piemenus.js:203 -#: js/PitchBlocks.js:1469 -#: js/PitchActions.js:583 -#: js/musicutils.js:802 -#: js/musicutils.js:827 -#: js/phrasemaker.js:1675 -#: js/musickeyboard.js:2044 -#: js/sampler.js:547 -#.TRANS: flat is a half-step down in pitch -#.TRANS: flat is a music term related to pitch -msgid "flat" +#: js/rubrics.js:525 +#: js/turtledefs.js:123 +#: js/turtledefs.js:225 +msgid "tone" msgstr "" -#: js/piemenus.js:204 -#: js/musicutils.js:800 -#: js/musicutils.js:828 -#: js/phrasemaker.js:1676 -#: js/musickeyboard.js:2045 -#: js/sampler.js:548 -#.TRANS: double flat is a music term related to pitch -msgid "double flat" +#: js/rubrics.js:526 +#: js/lilypond.js:605 +#: js/lilypond.js:904 +#: js/lilypond.js:910 +#: js/lilypond.js:948 +msgid "mouse" msgstr "" -#: js/piemenus.js:2861 -#: js/PitchBlocks.js:1357 -#: js/musicutils.js:627 -#.TRANS: unison means the note is the same as the current note -#.TRANS: unison is a music term related to intervals -msgid "unison" +#: js/rubrics.js:527 +#: js/turtledefs.js:132 +#: js/turtledefs.js:234 +#: js/widgets/phrasemaker.js:1040 +msgid "pen" msgstr "" -#: js/piemenus.js:3015 -#: js/piemenus.js:3088 -#: js/musicutils.js:635 -#: js/musicutils.js:810 -#: js/musicutils.js:912 -#.TRANS: major is a music term related to intervals and mode -msgid "major" +#: js/rubrics.js:528 +#: js/turtledefs.js:133 +#: js/turtledefs.js:235 +#: js/blocks/NumberBlocks.js:981 +#: js/blocks/PitchBlocks.js:1717 +#: js/blocks/PitchBlocks.js:1758 +msgid "number" msgstr "" -#: js/piemenus.js:3015 -#: js/piemenus.js:3088 -#: js/musicutils.js:653 -#.TRANS: modal scale for music -msgid "ionian" +#: js/rubrics.js:529 +#: js/turtledefs.js:127 +#: js/turtledefs.js:229 +msgid "flow" msgstr "" -#: js/piemenus.js:3017 -#: js/piemenus.js:3092 -#: js/musicutils.js:633 -#: js/musicutils.js:811 -#: js/musicutils.js:909 -#.TRANS: minor is a music term related to intervals and mode -msgid "minor" +#: js/rubrics.js:530 +#: js/turtledefs.js:128 +#: js/turtledefs.js:230 +#: js/block-verbose.js:1609 +#: js/block-verbose.js:4559 +#: js/block-verbose.js:4577 +#: js/block-verbose.js:4588 +#: js/block.js:1573 +#: js/block.js:4483 +#: js/block.js:4501 +#: js/block.js:4512 +#: js/blocks.js:1018 +#: js/blocks.js:3491 +#: js/blocks.js:3492 +#: js/blocks.js:3717 +#: js/blocks.js:4076 +#: js/blocks.js:4269 +#: js/blocks.js:5432 +#: js/blocks.js:6563 +#: js/macros.js:170 +#: js/macros.js:266 +#: js/macros.js:267 +#: js/macros.js:276 +#: js/macros.js:828 +#: js/palette.js:527 +#: js/palette.js:536 +#: js/palette.js:545 +#: js/palette.js:554 +#: js/palette.js:1129 +#: js/palette.js:1140 +#: js/palette.js:1151 +#: js/palette.js:1162 +#: js/palette.js:1181 +#: js/blocks/ActionBlocks.js:254 +#: js/blocks/ActionBlocks.js:307 +#: js/blocks/ActionBlocks.js:617 +#: js/blocks/ActionBlocks.js:716 +#: js/blocks/ActionBlocks.js:961 +#: js/blocks/ActionBlocks.js:1049 +#: js/blocks/ActionBlocks.js:1322 +#: js/blocks/ActionBlocks.js:1325 +#: js/blocks/ActionBlocks.js:1337 +#: js/blocks/ActionBlocks.js:1404 +#: js/blocks/MeterBlocks.js:715 +#: js/blocks/MeterBlocks.js:768 +#: js/blocks/MeterBlocks.js:831 +#: js/blocks/MeterBlocks.js:892 +#: js/widgets/musickeyboard.js:2986 +#: js/widgets/phrasemaker.js:4913 +#: js/widgets/rhythmruler.js:2319 +#: js/widgets/rhythmruler.js:2326 +#: js/widgets/rhythmruler.js:2511 +#: js/widgets/rhythmruler.js:2518 +msgid "action" msgstr "" -#: js/piemenus.js:3017 -#: js/piemenus.js:3092 -#: js/musicutils.js:663 -#.TRANS: modal scale for music -msgid "aeolian" +#: js/rubrics.js:531 +#: js/turtledefs.js:136 +#: js/turtledefs.js:238 +msgid "sensors" msgstr "" -#: js/piemenus.js:3407 -msgid "Duplicate" +#: js/rubrics.js:532 +#: js/turtledefs.js:135 +#: js/turtledefs.js:237 +#: js/blocks/MediaBlocks.js:930 +msgid "media" msgstr "" -#: js/piemenus.js:3408 -#: js/turtledefs.js:534 -msgid "Extract" +#: js/rubrics.js:533 +msgid "mice" msgstr "" -#: js/piemenus.js:3409 -msgid "Move to trash" +#: js/toolbar.js:48 +#: js/toolbar.js:109 +msgid "About Music Blocks" msgstr "" -#: js/piemenus.js:3410 -#: js/timbre.js:968 -#: js/StringHelper.js:69 -msgid "Close" +#: js/toolbar.js:49 +#: js/toolbar.js:110 +#: js/toolbar.js:175 +#: js/toolbar.js:231 +#: js/turtledefs.js:445 +#: js/turtledefs.js:482 +#: js/activity.js:2660 +#: js/activity.js:2671 +#: js/activity.js:2902 +#: js/widgets/modewidget.js:77 +#: js/widgets/meterwidget.js:185 +#: js/widgets/pitchdrummatrix.js:147 +#: js/widgets/pitchdrummatrix.js:687 +#: js/widgets/pitchdrummatrix.js:689 +#: js/widgets/pitchdrummatrix.js:741 +#: js/widgets/pitchdrummatrix.js:743 +#: js/widgets/pitchdrummatrix.js:758 +#: js/widgets/pitchdrummatrix.js:760 +#: js/widgets/pitchdrummatrix.js:789 +#: js/widgets/pitchdrummatrix.js:791 +#: js/widgets/pitchstaircase.js:121 +#: js/widgets/temperament.js:610 +#: js/widgets/temperament.js:613 +#: js/widgets/temperament.js:673 +#: js/widgets/temperament.js:675 +#: js/widgets/temperament.js:2017 +#: js/widgets/temperament.js:2019 +#: js/widgets/tempo.js:84 +#: js/widgets/tempo.js:86 +#: js/widgets/timbre.js:432 +#: js/widgets/timbre.js:434 +#: js/widgets/timbre.js:465 +#: js/widgets/timbre.js:467 +#: js/widgets/timbre.js:746 +#: js/widgets/aiwidget.js:647 +#: js/widgets/aiwidget.js:654 +#: js/widgets/aiwidget.js:656 +#: js/widgets/arpeggio.js:90 +#: js/widgets/arpeggio.js:547 +#: js/widgets/arpeggio.js:549 +#: js/widgets/arpeggio.js:644 +#: js/widgets/arpeggio.js:646 +#: js/widgets/musickeyboard.js:676 +#: js/widgets/musickeyboard.js:872 +#: js/widgets/musickeyboard.js:874 +#: js/widgets/musickeyboard.js:953 +#: js/widgets/musickeyboard.js:955 +#: js/widgets/phrasemaker.js:513 +#: js/widgets/phrasemaker.js:523 +#: js/widgets/phrasemaker.js:525 +#: js/widgets/phrasemaker.js:4304 +#: js/widgets/phrasemaker.js:4528 +#: js/widgets/phrasemaker.js:4533 +#: js/widgets/phrasemaker.js:4535 +#: js/widgets/phrasemaker.js:4650 +#: js/widgets/rhythmruler.js:637 +#: js/widgets/rhythmruler.js:639 +#: js/widgets/rhythmruler.js:653 +#: js/widgets/rhythmruler.js:655 +#: js/widgets/sampler.js:162 +#: js/widgets/sampler.js:164 +#: js/widgets/sampler.js:363 +msgid "Play" msgstr "" -#: js/piemenus.js:3416 -msgid "Save stack" +#: js/toolbar.js:50 +#: js/toolbar.js:111 +#: js/toolbar.js:176 +#: js/toolbar.js:232 +#: js/turtledefs.js:451 +#: js/turtledefs.js:488 +#: js/activity.js:2679 +#: js/widgets/modewidget.js:99 +#: js/widgets/modewidget.js:101 +#: js/widgets/meterwidget.js:206 +#: js/widgets/meterwidget.js:208 +#: js/widgets/pitchdrummatrix.js:674 +#: js/widgets/pitchdrummatrix.js:676 +#: js/widgets/temperament.js:2002 +#: js/widgets/temperament.js:2004 +#: js/widgets/arpeggio.js:534 +#: js/widgets/arpeggio.js:536 +#: js/widgets/phrasemaker.js:534 +#: js/widgets/phrasemaker.js:536 +msgid "Stop" msgstr "" -#: js/piemenus.js:3420 -#: js/toolbar.js:60 -#: js/toolbar.js:120 -#: js/toolbar.js:185 -#: js/toolbar.js:240 -#: js/turtledefs.js:752 -msgid "Help" +#: js/toolbar.js:51 +#: js/toolbar.js:112 +#: js/toolbar.js:177 +#: js/toolbar.js:233 +#: js/turtledefs.js:498 +msgid "Record" msgstr "" -#: js/piemenus.js:3762 -msgid "You have chosen key " +#: js/toolbar.js:52 +#: js/toolbar.js:53 +msgid "Full screen" msgstr "" -#: js/piemenus.js:3766 -msgid " for your pitch preview." +#: js/toolbar.js:54 +#: js/toolbar.js:115 +#: js/toolbar.js:180 +#: js/toolbar.js:236 +#: js/turtledefs.js:504 +msgid "Toggle Fullscreen" +msgstr "" + +#: js/toolbar.js:55 +#: js/toolbar.js:116 +#: js/toolbar.js:181 +#: js/toolbar.js:237 +#: js/turtledefs.js:510 +#: planet/js/StringHelper.js:33 +msgid "New project" +msgstr "" + +#: js/toolbar.js:56 +#: js/toolbar.js:117 +#: js/toolbar.js:182 +#: js/toolbar.js:238 +#: js/turtledefs.js:516 +msgid "Load project from file" +msgstr "" + +#: js/toolbar.js:57 +#: js/toolbar.js:118 +#: js/toolbar.js:119 +#: js/toolbar.js:183 +#: js/toolbar.js:239 +#: js/turtledefs.js:541 +#: js/turtledefs.js:550 +#: js/turtledefs.js:571 +msgid "Save project" +msgstr "" + +#: js/toolbar.js:58 +#: js/toolbar.js:77 +#: js/toolbar.js:79 +#: js/toolbar.js:138 +#: js/toolbar.js:147 +#: js/toolbar.js:149 +#: js/toolbar.js:184 +#: js/toolbar.js:202 +#: js/toolbar.js:204 +#: js/toolbar.js:240 +#: js/toolbar.js:258 +#: js/toolbar.js:260 +msgid "Save project as HTML" +msgstr "" + +#: js/toolbar.js:59 +#: js/toolbar.js:120 +#: js/toolbar.js:185 +#: js/toolbar.js:241 +msgid "Find and share projects" +msgstr "" + +#: js/toolbar.js:60 +#: js/toolbar.js:121 +#: js/toolbar.js:186 +#: js/toolbar.js:242 +msgid "Offline. Sharing is unavailable" +msgstr "" + +#: js/toolbar.js:61 +#: js/toolbar.js:122 +#: js/toolbar.js:187 +#: js/toolbar.js:243 +msgid "Auxiliary menu" +msgstr "" + +#: js/toolbar.js:62 +#: js/toolbar.js:123 +#: js/toolbar.js:188 +#: js/toolbar.js:244 +#: js/turtledefs.js:752 +#: js/piemenus.js:3423 +msgid "Help" +msgstr "" + +#: js/toolbar.js:63 +#: js/toolbar.js:124 +#: js/toolbar.js:189 +#: js/toolbar.js:245 +msgid "Run slowly" +msgstr "" + +#: js/toolbar.js:64 +#: js/toolbar.js:125 +#: js/toolbar.js:190 +#: js/toolbar.js:246 +#: js/turtledefs.js:682 +msgid "Run step by step" +msgstr "" + +#: js/toolbar.js:65 +#: js/toolbar.js:126 +#: js/toolbar.js:191 +#: js/toolbar.js:247 +#: js/turtledefs.js:689 +msgid "Display statistics" +msgstr "" + +#: js/toolbar.js:66 +#: js/toolbar.js:127 +#: js/toolbar.js:192 +#: js/toolbar.js:248 +msgid "Load plugin" +msgstr "" + +#: js/toolbar.js:67 +#: js/toolbar.js:128 +#: js/toolbar.js:193 +#: js/toolbar.js:249 +#: js/turtledefs.js:696 +msgid "Delete plugin" +msgstr "" + +#: js/toolbar.js:68 +#: js/toolbar.js:129 +#: js/toolbar.js:194 +#: js/toolbar.js:250 +msgid "Enable horizontal scrolling" +msgstr "" + +#: js/toolbar.js:69 +#: js/toolbar.js:130 +#: js/toolbar.js:195 +#: js/toolbar.js:251 +msgid "Disable horizontal scrolling" +msgstr "" + +#: js/toolbar.js:70 +#: js/toolbar.js:131 +#: js/toolbar.js:196 +#: js/toolbar.js:252 +#: planet/js/LocalCard.js:54 +#: planet/js/StringHelper.js:71 +msgid "Merge with current project" +msgstr "" + +#: js/toolbar.js:71 +#: js/toolbar.js:132 +msgid "Set Pitch Preview" +msgstr "" + +#: js/toolbar.js:72 +#: js/toolbar.js:133 +#: js/toolbar.js:197 +#: js/toolbar.js:253 +msgid "JavaScript Editor" +msgstr "" + +#: js/toolbar.js:73 +#: js/toolbar.js:134 +#: js/toolbar.js:198 +#: js/toolbar.js:254 +#: js/turtledefs.js:724 +msgid "Restore" +msgstr "" + +#: js/toolbar.js:74 +#: js/toolbar.js:135 +#: js/toolbar.js:199 +#: js/toolbar.js:255 +msgid "Switch to beginner mode" +msgstr "" + +#: js/toolbar.js:75 +#: js/toolbar.js:136 +#: js/toolbar.js:200 +#: js/toolbar.js:256 +msgid "Switch to advanced mode" +msgstr "" + +#: js/toolbar.js:76 +#: js/toolbar.js:137 +#: js/toolbar.js:146 +#: js/toolbar.js:201 +#: js/toolbar.js:257 +#: js/turtledefs.js:738 +msgid "Select language" +msgstr "" + +#: js/toolbar.js:78 +#: js/toolbar.js:81 +#: js/toolbar.js:140 +#: js/turtledefs.js:579 +msgid "Save mouse artwork as PNG" +msgstr "" + +#: js/toolbar.js:80 +#: js/toolbar.js:139 +#: js/turtledefs.js:575 +msgid "Save mouse artwork as SVG" +msgstr "" + +#: js/toolbar.js:82 +#: js/toolbar.js:141 +#: js/turtledefs.js:583 +msgid "Save music as WAV" +msgstr "" + +#: js/toolbar.js:83 +#: js/toolbar.js:142 +#: js/turtledefs.js:587 +msgid "Save sheet music as ABC" +msgstr "" + +#: js/toolbar.js:84 +#: js/toolbar.js:143 +#: js/turtledefs.js:591 +msgid "Save sheet music as Lilypond" +msgstr "" + +#: js/toolbar.js:85 +msgid "Save sheet music as MusicXML" +msgstr "" + +#: js/toolbar.js:86 +#: js/toolbar.js:144 +#: js/toolbar.js:152 +#: js/toolbar.js:207 +#: js/toolbar.js:263 +#: js/turtledefs.js:562 +#: js/turtledefs.js:595 +msgid "Save block artwork as SVG" +msgstr "" + +#: js/toolbar.js:87 +#: js/toolbar.js:145 +#: js/toolbar.js:153 +#: js/toolbar.js:208 +#: js/toolbar.js:264 +#: js/turtles.js:911 +msgid "Confirm" +msgstr "" + +#: js/toolbar.js:88 +#: js/toolbar.js:154 +#: js/toolbar.js:209 +#: js/toolbar.js:265 +msgid "English (United States)" +msgstr "" + +#: js/toolbar.js:89 +#: js/toolbar.js:155 +#: js/toolbar.js:210 +#: js/toolbar.js:266 +msgid "English (United Kingdom)" +msgstr "" + +#: js/toolbar.js:90 +#: js/toolbar.js:156 +#: js/toolbar.js:211 +#: js/toolbar.js:267 +msgid "日本語" +msgstr "" + +#: js/toolbar.js:91 +msgid "한국어" +msgstr "" + +#: js/toolbar.js:92 +#: js/toolbar.js:158 +#: js/toolbar.js:213 +#: js/toolbar.js:269 +msgid "español" +msgstr "" + +#: js/toolbar.js:93 +#: js/toolbar.js:159 +#: js/toolbar.js:214 +#: js/toolbar.js:270 +msgid "português" +msgstr "" + +#: js/toolbar.js:94 +#: js/toolbar.js:160 +#: js/toolbar.js:215 +#: js/toolbar.js:271 +msgid "にほんご" +msgstr "" + +#: js/toolbar.js:95 +#: js/toolbar.js:161 +#: js/toolbar.js:216 +#: js/toolbar.js:272 +msgid "中文" +msgstr "" + +#: js/toolbar.js:96 +#: js/toolbar.js:162 +#: js/toolbar.js:217 +#: js/toolbar.js:273 +msgid "ภาษาไทย" +msgstr "" + +#: js/toolbar.js:97 +#: js/toolbar.js:163 +#: js/toolbar.js:218 +#: js/toolbar.js:274 +msgid "aymara" +msgstr "" + +#: js/toolbar.js:98 +#: js/toolbar.js:164 +#: js/toolbar.js:219 +#: js/toolbar.js:275 +msgid "quechua" +msgstr "" + +#: js/toolbar.js:99 +#: js/toolbar.js:165 +#: js/toolbar.js:220 +#: js/toolbar.js:276 +msgid "guarani" +msgstr "" + +#: js/toolbar.js:100 +#: js/toolbar.js:166 +#: js/toolbar.js:221 +#: js/toolbar.js:277 +msgid "हिंदी" +msgstr "" + +#: js/toolbar.js:101 +#: js/toolbar.js:168 +#: js/toolbar.js:222 +#: js/toolbar.js:279 +msgid "igbo" +msgstr "" + +#: js/toolbar.js:102 +#: js/toolbar.js:169 +#: js/toolbar.js:223 +#: js/toolbar.js:280 +msgid "عربى" +msgstr "" + +#: js/toolbar.js:103 +#: js/toolbar.js:167 +#: js/toolbar.js:224 +#: js/toolbar.js:278 +msgid "తెలుగు" +msgstr "" + +#: js/toolbar.js:104 +#: js/toolbar.js:170 +#: js/toolbar.js:225 +#: js/toolbar.js:281 +msgid "עִברִית" +msgstr "" + +#: js/toolbar.js:113 +#: js/toolbar.js:114 +#: js/toolbar.js:178 +#: js/toolbar.js:179 +#: js/toolbar.js:234 +#: js/toolbar.js:235 +msgid "Full Screen" +msgstr "" + +#: js/toolbar.js:148 +#: js/toolbar.js:151 +#: js/toolbar.js:203 +#: js/toolbar.js:206 +#: js/toolbar.js:259 +#: js/toolbar.js:262 +#: js/turtledefs.js:558 +msgid "Save turtle artwork as PNG" +msgstr "" + +#: js/toolbar.js:150 +#: js/toolbar.js:205 +#: js/toolbar.js:261 +#: js/turtledefs.js:554 +msgid "Save turtle artwork as SVG" +msgstr "" + +#: js/toolbar.js:157 +#: js/toolbar.js:212 +#: js/toolbar.js:268 +msgid "한국인" +msgstr "" + +#: js/toolbar.js:174 +#: js/toolbar.js:230 +msgid "About Turtle Blocks" +msgstr "" + +#: js/toolbar.js:446 +#: js/toolbar.js:457 +#: js/toolbar.js:497 +msgid "Turtle Wrap Off" +msgstr "" + +#: js/toolbar.js:466 +#: js/toolbar.js:506 +msgid "Turtle Wrap On" +msgstr "" + +#: js/turtle-painter.js:1192 +#: js/turtle-painter.js:1193 +#: js/turtles.js:118 +#: js/block-verbose.js:1623 +#: js/block.js:1587 +#: js/lilypond.js:749 +#: js/lilypond.js:913 +#: js/lilypond.js:951 +#: js/logo.js:1184 +#: js/blocks/ActionBlocks.js:1223 +#: js/blocks/ProgramBlocks.js:1267 +msgid "start" +msgstr "" + +#: js/turtledefs.js:40 +#.TRANS: put the URL to the guide here, e.g., https://github.com/sugarlabs/turtleblocksjs/tree/master/guide/README.md +msgid "guide url" +msgstr "" + +#: js/turtledefs.js:85 +#: js/turtledefs.js:437 +msgid "Turtle Blocks is a Logo-inspired turtle that draws colorful pictures with snap-together visual-programming blocks." +msgstr "" + +#: js/turtledefs.js:118 +#: js/turtledefs.js:220 +msgid "search" +msgstr "" + +#: js/turtledefs.js:120 +#: js/turtledefs.js:222 +#: js/blocks/MeterBlocks.js:1343 +#: js/blocks/WidgetBlocks.js:522 +#.TRANS: musical meter (time signature), e.g., 4:4 +msgid "meter" +msgstr "" + +#: js/turtledefs.js:122 +#: js/turtledefs.js:224 +msgid "intervals" +msgstr "" + +#: js/turtledefs.js:124 +#: js/turtledefs.js:226 +msgid "ornament" +msgstr "" + +#: js/turtledefs.js:125 +#: js/turtledefs.js:227 +#: js/blocks/VolumeBlocks.js:362 +#: js/blocks/VolumeBlocks.js:502 +#: js/blocks/VolumeBlocks.js:545 +msgid "volume" +msgstr "" + +#: js/turtledefs.js:126 +#: js/turtledefs.js:228 +#: js/block-verbose.js:1700 +#: js/block-verbose.js:2626 +#: js/block.js:1664 +#: js/block.js:2554 +#: js/lilypond.js:732 +#: js/lilypond.js:897 +#: js/lilypond.js:941 +#: js/palette.js:577 +#: js/blocks/RhythmBlocks.js:766 +#: js/blocks/DrumBlocks.js:477 +#: js/blocks/VolumeBlocks.js:502 +#: js/widgets/phrasemaker.js:1038 +msgid "drum" +msgstr "" + +#: js/turtledefs.js:129 +#: js/turtledefs.js:231 +msgid "boxes" +msgstr "" + +#: js/turtledefs.js:130 +#: js/turtledefs.js:232 +msgid "widgets" +msgstr "" + +#: js/turtledefs.js:131 +#: js/turtledefs.js:233 +#: js/widgets/phrasemaker.js:1039 +msgid "graphics" +msgstr "" + +#: js/turtledefs.js:134 +#: js/turtledefs.js:236 +msgid "boolean" +msgstr "" + +#: js/turtledefs.js:137 +#: js/turtledefs.js:239 +#: js/blocks/HeapBlocks.js:59 +#: js/widgets/status.js:147 +msgid "heap" +msgstr "" + +#: js/turtledefs.js:138 +#: js/turtledefs.js:240 +#: js/blocks/DictBlocks.js:142 +#: js/blocks/ProgramBlocks.js:495 +msgid "dictionary" +msgstr "" + +#: js/turtledefs.js:139 +#: js/turtledefs.js:241 +msgid "ensemble" +msgstr "" + +#: js/turtledefs.js:140 +#: js/turtledefs.js:242 +msgid "extras" +msgstr "" + +#: js/turtledefs.js:142 +#: js/turtledefs.js:244 +#.TRANS: program as in computer program +#.TRANS: program as in computer program +msgid "program" +msgstr "" + +#: js/turtledefs.js:143 +#: js/turtledefs.js:245 +msgid "my blocks" +msgstr "" + +#: js/turtledefs.js:185 +#: js/turtledefs.js:281 +msgid "artwork" +msgstr "" + +#: js/turtledefs.js:185 +#: js/turtledefs.js:281 +msgid "logic" +msgstr "" + +#: js/turtledefs.js:185 +#: js/turtledefs.js:281 +msgid "music" +msgstr "" + +#: js/turtledefs.js:187 +#: js/turtledefs.js:463 +msgid "Music Blocks is a collection of tools for exploring fundamental musical concepts in a fun way." +msgstr "" + +#: js/turtledefs.js:436 +msgid "Welcome to Turtle Blocks" +msgstr "" + +#: js/turtledefs.js:438 +#: js/turtledefs.js:465 +#: js/turtledefs.js:774 +#: js/turtledefs.js:805 +msgid "The current version is" +msgstr "" + +#: js/turtledefs.js:446 +#: js/turtledefs.js:483 +msgid "Click the run button to run the project in fast mode." +msgstr "" + +#: js/turtledefs.js:452 +msgid "Stop the turtle." +msgstr "" + +#: js/turtledefs.js:454 +#: js/turtledefs.js:491 +msgid "You can also type Alt-S to stop." +msgstr "" + +#: js/turtledefs.js:462 +#: js/widgets/help.js:333 +msgid "Welcome to Music Blocks" +msgstr "" + +#: js/turtledefs.js:472 +#: js/widgets/help.js:334 +msgid "Meet Mr. Mouse!" +msgstr "" + +#: js/turtledefs.js:473 +msgid "Mr Mouse is our Music Blocks conductor." +msgstr "" + +#: js/turtledefs.js:475 +msgid "Mr Mouse encourages you to explore Music Blocks." +msgstr "" + +#: js/turtledefs.js:477 +msgid "Let us start our tour!" +msgstr "" + +#: js/turtledefs.js:489 +msgid "Stop the music (and the mice)." +msgstr "" + +#: js/turtledefs.js:499 +msgid "Record your project as video." +msgstr "" + +#: js/turtledefs.js:505 +msgid "Toggle Fullscreen mode." +msgstr "" + +#: js/turtledefs.js:511 +msgid "Initialize a new project." +msgstr "" + +#: js/turtledefs.js:517 +msgid "You can also load projects from the file system." +msgstr "" + +#: js/turtledefs.js:522 +#: planet/js/StringHelper.js:46 +msgid "Delete" +msgstr "" + +#: js/turtledefs.js:523 +msgid "To delete a block, just right-click on it, then you will be able to see the delete option" +msgstr "" + +#: js/turtledefs.js:528 +#: js/activity.js:2649 +#: planet/js/LocalCard.js:31 +msgid "Copy" +msgstr "" + +#: js/turtledefs.js:529 +msgid "To copy a block, just right-click on it, then you will be able to see the copy option" +msgstr "" + +#: js/turtledefs.js:534 +#: js/piemenus.js:3411 +msgid "Extract" +msgstr "" + +#: js/turtledefs.js:535 +msgid "To extract a block, just right-click on it, then you will be able to see the extract option" +msgstr "" + +#: js/turtledefs.js:542 +#: js/turtledefs.js:552 +#: js/turtledefs.js:573 +msgid "Save your project to a file." +msgstr "" + +#: js/turtledefs.js:549 +#: js/turtledefs.js:570 +msgid "save" +msgstr "" + +#: js/turtledefs.js:556 +#: js/turtledefs.js:577 +msgid "Save graphics from your project to as SVG." +msgstr "" + +#: js/turtledefs.js:560 +#: js/turtledefs.js:581 +msgid "Save graphics from your project as PNG." +msgstr "" + +#: js/turtledefs.js:564 +#: js/turtledefs.js:597 +msgid "Save block artwork as an SVG file." +msgstr "" + +#: js/turtledefs.js:585 +msgid "Save audio from your project as WAV." +msgstr "" + +#: js/turtledefs.js:589 +msgid "Save your project to as an ABC file." +msgstr "" + +#: js/turtledefs.js:593 +msgid "Save your project to as a Lilypond file." +msgstr "" + +#: js/turtledefs.js:604 +msgid "Load samples from server" +msgstr "" + +#: js/turtledefs.js:605 +msgid "This button opens a viewer for loading example projects." +msgstr "" + +#: js/turtledefs.js:611 +msgid "Palette buttons" +msgstr "" + +#: js/turtledefs.js:612 +msgid "This toolbar contains the palette buttons including Rhythm Pitch Tone Action and more." +msgstr "" + +#: js/turtledefs.js:614 +msgid "Click to show the palettes of blocks and drag blocks from the palettes onto the canvas to use them." +msgstr "" + +#: js/turtledefs.js:620 +msgid "Cartesian/Polar" +msgstr "" + +#: js/turtledefs.js:621 +msgid "Show or hide a coordinate grid." +msgstr "" + +#: js/turtledefs.js:626 +#: js/turtles.js:902 +msgid "Clean" +msgstr "" + +#: js/turtledefs.js:627 +msgid "Clear the screen and return the mice to their initial positions." +msgstr "" + +#: js/turtledefs.js:632 +#: js/turtles.js:955 +msgid "Collapse" +msgstr "" + +#: js/turtledefs.js:633 +msgid "Collapse the graphics window." msgstr "" -#: js/palette.js:571 -msgid "grid" +#: js/turtledefs.js:638 +#: js/activity.js:5684 +msgid "Home" msgstr "" -#: js/palette.js:577 -#: js/block.js:1540 -#: js/block.js:2343 -#: js/turtledefs.js:126 -#: js/turtledefs.js:228 -#: js/lilypond.js:740 -#: js/lilypond.js:905 -#: js/lilypond.js:949 -#: js/DrumBlocks.js:486 -#: js/RhythmBlocks.js:766 -#: js/VolumeBlocks.js:502 -#: js/phrasemaker.js:823 -msgid "drum" +#: js/turtledefs.js:639 +msgid "Return all blocks to the center of the screen." msgstr "" -#: js/palette.js:580 -msgid "effect" +#: js/turtledefs.js:644 +msgid "Show/hide blocks" msgstr "" -#: js/palette.js:586 -msgid "sargam" +#: js/turtledefs.js:645 +msgid "Hide or show the blocks and the palettes." msgstr "" -#: js/palette.js:589 -#: js/activity.js:1833 -#: js/RhythmBlocks.js:923 -#: js/PitchBlocks.js:442 -#: js/PitchBlocks.js:1748 -#.TRANS: a numeric mapping of the notes in an octave based on the musical mode -msgid "scale degree" +#: js/turtledefs.js:650 +msgid "Expand/collapse collapsable blocks" msgstr "" -#: js/palette.js:592 -#: js/activity.js:1860 -msgid "mode name" +#: js/turtledefs.js:651 +msgid "Expand or collapse start and action stacks." msgstr "" -#: js/palette.js:595 -#: js/activity.js:1839 -msgid "invert mode" +#: js/turtledefs.js:658 +#: js/activity.js:5704 +msgid "Decrease block size" msgstr "" -#: js/palette.js:598 -#: js/activity.js:1836 -msgid "voice name" +#: js/turtledefs.js:659 +msgid "Decrease the size of the blocks." msgstr "" -#: js/palette.js:601 -#: js/PitchBlocks.js:1181 -msgid "custom pitch" +#: js/turtledefs.js:664 +#: js/activity.js:5710 +msgid "Increase block size" msgstr "" -#: js/palette.js:605 -#: js/block.js:1456 -#: js/block.js:1575 -#: js/WidgetBlocks.js:218 -#: js/IntervalsBlocks.js:63 -msgid "temperament" +#: js/turtledefs.js:665 +msgid "Increase the size of the blocks." msgstr "" -#: js/palette.js:609 -msgid "accidental" +#: js/turtledefs.js:670 +msgid "Expand/collapse option toolbar" msgstr "" -#: js/palette.js:615 -#: js/activity.js:1866 -msgid "interval name" +#: js/turtledefs.js:671 +msgid "Click this button to expand or collapse the auxillary toolbar." msgstr "" -#: js/palette.js:633 -#: js/PitchBlocks.js:405 -msgid "pitch converter" +#: js/turtledefs.js:676 +msgid "Run slow" msgstr "" -#: js/rubrics.js:522 -#: js/turtledefs.js:119 -#: js/turtledefs.js:221 -#: js/RhythmBlockPaletteBlocks.js:52 -#: js/RhythmBlockPaletteBlocks.js:233 -#: js/ProgramBlocks.js:745 -#: js/rhythmruler.js:1670 -#: js/rhythmruler.js:1677 -#: js/rhythmruler.js:1745 -#: js/rhythmruler.js:1752 -#: js/rhythmruler.js:1830 -#.TRANS: an arrangement of notes based on duration -msgid "rhythm" +#: js/turtledefs.js:677 +msgid "Click to run the project in slow mode." msgstr "" -#: js/rubrics.js:523 -#: js/block.js:2339 -#: js/turtledefs.js:121 -#: js/turtledefs.js:223 -#: js/IntervalsBlocks.js:63 -#: js/PitchBlocks.js:1801 -#: js/PitchBlocks.js:1814 -#: js/SensorsBlocks.js:178 -#: js/phrasemaker.js:821 -#: js/musickeyboard.js:1653 -#.TRANS: pitch number -#.TRANS: we specify pitch in terms of a name and an octave. The name can be CDEFGAB or Do Re Mi Fa Sol La Ti. Octave is a number between 1 and 8. -msgid "pitch" +#: js/turtledefs.js:683 +msgid "Click to run the project step by step." msgstr "" -#: js/rubrics.js:524 -#: js/turtledefs.js:123 -#: js/turtledefs.js:225 -msgid "tone" +#: js/turtledefs.js:690 +msgid "Display statistics about your Music project." msgstr "" -#: js/rubrics.js:525 -#: js/lilypond.js:613 -#: js/lilypond.js:912 -#: js/lilypond.js:918 -#: js/lilypond.js:956 -msgid "mouse" +#: js/turtledefs.js:697 +msgid "Delete a selected plugin." msgstr "" -#: js/rubrics.js:526 -#: js/turtledefs.js:132 -#: js/turtledefs.js:234 -#: js/phrasemaker.js:825 -msgid "pen" +#: js/turtledefs.js:704 +msgid "Enable scrolling" msgstr "" -#: js/rubrics.js:527 -#: js/turtledefs.js:133 -#: js/turtledefs.js:235 -#: js/NumberBlocks.js:905 -#: js/PitchBlocks.js:1679 -#: js/PitchBlocks.js:1720 -msgid "number" +#: js/turtledefs.js:705 +msgid "You can scroll the blocks on the canvas." msgstr "" -#: js/rubrics.js:528 -#: js/turtledefs.js:127 -#: js/turtledefs.js:229 -msgid "flow" +#: js/turtledefs.js:714 +msgid "Wrap Turtle" msgstr "" -#: js/rubrics.js:530 -#: js/turtledefs.js:136 -#: js/turtledefs.js:238 -msgid "sensors" +#: js/turtledefs.js:715 +msgid "Turn Turtle wrapping On or Off." msgstr "" -#: js/rubrics.js:531 -#: js/turtledefs.js:135 -#: js/turtledefs.js:237 -#: js/MediaBlocks.js:930 -msgid "media" +#: js/turtledefs.js:725 +msgid "Restore blocks from the trash." msgstr "" -#: js/rubrics.js:532 -msgid "mice" +#: js/turtledefs.js:732 +msgid "Switch mode" msgstr "" -#: js/macros.js:711 -#: js/musicutils.js:783 -#: js/synthutils.js:181 -#.TRANS: animal sound effect -msgid "duck" +#: js/turtledefs.js:733 +msgid "Switch between beginner and advance modes." msgstr "" -#: js/toolbar.js:46 -#: js/toolbar.js:107 -msgid "About Music Blocks" +#: js/turtledefs.js:739 +msgid "Select your language preference." msgstr "" -#: js/toolbar.js:47 -#: js/toolbar.js:108 -#: js/toolbar.js:172 -#: js/toolbar.js:228 -#: js/turtledefs.js:445 -#: js/turtledefs.js:482 -#: js/activity.js:2281 -#: js/activity.js:2289 -#: js/activity.js:2520 -#: js/modewidget.js:77 -#: js/pitchstaircase.js:121 -#: js/phrasemaker.js:302 -#: js/phrasemaker.js:312 -#: js/phrasemaker.js:314 -#: js/phrasemaker.js:3901 -#: js/phrasemaker.js:4061 -#: js/phrasemaker.js:4066 -#: js/phrasemaker.js:4068 -#: js/phrasemaker.js:4183 -#: js/pitchdrummatrix.js:81 -#: js/pitchdrummatrix.js:574 -#: js/pitchdrummatrix.js:576 -#: js/pitchdrummatrix.js:628 -#: js/pitchdrummatrix.js:630 -#: js/pitchdrummatrix.js:645 -#: js/pitchdrummatrix.js:647 -#: js/pitchdrummatrix.js:674 -#: js/pitchdrummatrix.js:676 -#: js/temperament.js:477 -#: js/temperament.js:480 -#: js/temperament.js:540 -#: js/temperament.js:542 -#: js/temperament.js:1835 -#: js/temperament.js:1837 -#: js/temperament.js:1986 -#: js/temperament.js:1988 -#: js/musickeyboard.js:522 -#: js/musickeyboard.js:682 -#: js/musickeyboard.js:684 -#: js/musickeyboard.js:756 -#: js/musickeyboard.js:758 -#: js/rhythmruler.js:298 -#: js/rhythmruler.js:300 -#: js/rhythmruler.js:314 -#: js/rhythmruler.js:316 -#: js/sampler.js:96 -#: js/sampler.js:98 -#: js/sampler.js:229 -#: js/sampler.js:235 -#: js/sampler.js:237 -#: js/tempo.js:84 -#: js/tempo.js:86 -#: js/timbre.js:432 -#: js/timbre.js:434 -#: js/timbre.js:465 -#: js/timbre.js:467 -#: js/timbre.js:746 -#: js/meterwidget.js:80 -#: js/arpeggio.js:90 -#: js/arpeggio.js:547 -#: js/arpeggio.js:549 -#: js/arpeggio.js:644 -#: js/arpeggio.js:646 -msgid "Play" +#: js/turtledefs.js:745 +msgid "Keyboard shortcuts" msgstr "" -#: js/toolbar.js:48 -#: js/toolbar.js:109 -#: js/toolbar.js:173 -#: js/toolbar.js:229 -#: js/turtledefs.js:451 -#: js/turtledefs.js:488 -#: js/activity.js:2297 -#: js/modewidget.js:99 -#: js/modewidget.js:101 -#: js/phrasemaker.js:323 -#: js/phrasemaker.js:325 -#: js/pitchdrummatrix.js:561 -#: js/pitchdrummatrix.js:563 -#: js/temperament.js:1820 -#: js/temperament.js:1822 -#: js/meterwidget.js:101 -#: js/meterwidget.js:103 -#: js/arpeggio.js:534 -#: js/arpeggio.js:536 -msgid "Stop" +#: js/turtledefs.js:746 +msgid "You can type d to create a do block and r to create a re block etc." msgstr "" -#: js/toolbar.js:49 -#: js/toolbar.js:110 -#: js/toolbar.js:174 -#: js/toolbar.js:230 -#: js/turtledefs.js:498 -msgid "Record" +#: js/turtledefs.js:753 +msgid "Show these messages." msgstr "" -#: js/toolbar.js:50 -#: js/toolbar.js:51 -msgid "Full screen" +#: js/turtledefs.js:759 +#: js/turtledefs.js:790 +#: js/widgets/help.js:335 +msgid "Guide" msgstr "" -#: js/toolbar.js:52 -#: js/toolbar.js:112 -#: js/toolbar.js:177 -#: js/toolbar.js:232 -#: js/turtledefs.js:504 -msgid "Toggle Fullscreen" +#: js/turtledefs.js:760 +msgid "A detailed guide to Turtle Blocks is available." msgstr "" -#: js/toolbar.js:53 -#: js/toolbar.js:113 -#: js/toolbar.js:178 -#: js/toolbar.js:233 -#: js/turtledefs.js:510 -#: js/StringHelper.js:33 -msgid "New project" +#: js/turtledefs.js:764 +msgid "Turtle Blocks Guide" msgstr "" -#: js/toolbar.js:54 -#: js/toolbar.js:114 -#: js/toolbar.js:179 -#: js/toolbar.js:234 -#: js/turtledefs.js:516 -msgid "Load project from file" +#: js/turtledefs.js:767 +#: js/turtledefs.js:798 +#: js/widgets/help.js:336 +msgid "About" msgstr "" -#: js/toolbar.js:55 -#: js/toolbar.js:115 -#: js/toolbar.js:116 -#: js/toolbar.js:180 -#: js/toolbar.js:235 -#: js/turtledefs.js:541 -#: js/turtledefs.js:550 -#: js/turtledefs.js:571 -msgid "Save project" +#: js/turtledefs.js:768 +msgid "Turtle Blocks is an open source collection of tools for exploring musical concepts." msgstr "" -#: js/toolbar.js:56 -#: js/toolbar.js:75 -#: js/toolbar.js:77 -#: js/toolbar.js:135 -#: js/toolbar.js:144 -#: js/toolbar.js:146 -#: js/toolbar.js:181 -#: js/toolbar.js:199 -#: js/toolbar.js:201 -#: js/toolbar.js:236 -#: js/toolbar.js:254 -#: js/toolbar.js:256 -msgid "Save project as HTML" +#: js/turtledefs.js:770 +msgid "A full list of contributors can be found in the Turtle Blocks GitHub repository." +msgstr "" + +#: js/turtledefs.js:772 +msgid "Turtle Blocks is licensed under the AGPL." +msgstr "" + +#: js/turtledefs.js:780 +msgid "Turtle Blocks GitHub repository" +msgstr "" + +#: js/turtledefs.js:783 +#: js/turtledefs.js:814 +#: js/widgets/help.js:337 +#: js/widgets/help.js:359 +msgid "Congratulations." +msgstr "" + +#: js/turtledefs.js:784 +msgid "You have finished the tour. Please enjoy Turtle Blocks!" +msgstr "" + +#: js/turtledefs.js:791 +msgid "A detailed guide to Music Blocks is available." +msgstr "" + +#: js/turtledefs.js:799 +msgid "Music Blocks is an open source collection of tools for exploring musical concepts." +msgstr "" + +#: js/turtledefs.js:801 +msgid "A full list of contributors can be found in the Music Blocks GitHub repository." +msgstr "" + +#: js/turtledefs.js:803 +msgid "Music Blocks is licensed under the AGPL." +msgstr "" + +#: js/turtledefs.js:811 +msgid "Music Blocks GitHub repository" +msgstr "" + +#: js/turtledefs.js:815 +msgid "You have finished the tour. Please enjoy Music Blocks!" +msgstr "" + +#: js/turtles.js:882 +msgid "Grid" +msgstr "" + +#: js/turtles.js:1024 +msgid "Expand" +msgstr "" + +#: js/block-verbose.js:1616 +#: js/block-verbose.js:1735 +#: js/block.js:1580 +#: js/block.js:1699 +#: js/palette.js:605 +#: js/blocks/IntervalsBlocks.js:63 +#: js/blocks/WidgetBlocks.js:259 +msgid "temperament" +msgstr "" + +#: js/block-verbose.js:1630 +#: js/block.js:1594 +msgid "matrix" msgstr "" -#: js/toolbar.js:57 -#: js/toolbar.js:117 -#: js/toolbar.js:182 -#: js/toolbar.js:237 -msgid "Find and share projects" +#: js/block-verbose.js:1637 +#: js/block.js:1601 +#: js/blocks/WidgetBlocks.js:1509 +#: plugins/rodi.rtp:324 +msgid "status" msgstr "" -#: js/toolbar.js:58 -#: js/toolbar.js:118 -#: js/toolbar.js:183 -#: js/toolbar.js:238 -msgid "Offline. Sharing is unavailable" +#: js/block-verbose.js:1644 +#: js/block.js:1608 +msgid "drum mapper" msgstr "" -#: js/toolbar.js:59 -#: js/toolbar.js:119 -#: js/toolbar.js:184 -#: js/toolbar.js:239 -msgid "Auxiliary menu" +#: js/block-verbose.js:1651 +#: js/block.js:1615 +msgid "ruler" msgstr "" -#: js/toolbar.js:61 -#: js/toolbar.js:121 -#: js/toolbar.js:186 -#: js/toolbar.js:241 -msgid "Run slowly" +#: js/block-verbose.js:1658 +#: js/block.js:1622 +#: js/blocks/WidgetBlocks.js:397 +#.TRANS: timbre is the character or quality of a musical sound +msgid "timbre" msgstr "" -#: js/toolbar.js:62 -#: js/toolbar.js:122 -#: js/toolbar.js:187 -#: js/toolbar.js:242 -#: js/turtledefs.js:682 -msgid "Run step by step" +#: js/block-verbose.js:1665 +#: js/block.js:1629 +msgid "stair" msgstr "" -#: js/toolbar.js:63 -#: js/toolbar.js:123 -#: js/toolbar.js:188 -#: js/toolbar.js:243 -#: js/turtledefs.js:689 -msgid "Display statistics" +#: js/block-verbose.js:1672 +#: js/block.js:1636 +#: js/blocks/WidgetBlocks.js:707 +#.TRANS: the speed at music is should be played. +msgid "tempo" msgstr "" -#: js/toolbar.js:64 -#: js/toolbar.js:124 -#: js/toolbar.js:189 -#: js/toolbar.js:244 -msgid "Load plugin" +#: js/block-verbose.js:1679 +#: js/block-verbose.js:1742 +#: js/block.js:1643 +#: js/block.js:1706 +#: js/blocks/IntervalsBlocks.js:1464 +#.TRANS: mode, e.g., Major in C Major +msgid "mode" msgstr "" -#: js/toolbar.js:65 -#: js/toolbar.js:125 -#: js/toolbar.js:190 -#: js/toolbar.js:245 -#: js/turtledefs.js:696 -msgid "Delete plugin" +#: js/block-verbose.js:1686 +#: js/block.js:1650 +msgid "slider" msgstr "" -#: js/toolbar.js:66 -#: js/toolbar.js:126 -#: js/toolbar.js:191 -#: js/toolbar.js:246 -msgid "Enable horizontal scrolling" +#: js/block-verbose.js:1693 +#: js/block.js:1657 +#: js/blocks/SensorsBlocks.js:1001 +msgid "keyboard" msgstr "" -#: js/toolbar.js:67 -#: js/toolbar.js:127 -#: js/toolbar.js:192 -#: js/toolbar.js:247 -msgid "Disable horizontal scrolling" +#: js/block-verbose.js:1707 +#: js/block.js:1671 +#: js/blocks/WidgetBlocks.js:1190 +#: js/blocks/WidgetBlocks.js:1228 +#.TRANS: widget for subdividing a measure into distinct rhythmic elements +msgid "rhythm maker" msgstr "" -#: js/toolbar.js:68 -#: js/toolbar.js:128 -#: js/toolbar.js:193 -#: js/toolbar.js:248 -#: js/LocalCard.js:54 -#: js/StringHelper.js:71 -msgid "Merge with current project" +#: js/block-verbose.js:1714 +#: js/block-verbose.js:2457 +#: js/block-verbose.js:2514 +#: js/block.js:1678 +#: js/block.js:2385 +#: js/block.js:2442 +#: js/blocks/MeterBlocks.js:1367 +#: js/blocks/OrnamentBlocks.js:220 +#: js/blocks/OrnamentBlocks.js:312 +#: js/blocks/RhythmBlocks.js:33 +#: js/blocks/RhythmBlocks.js:356 +#: js/blocks/RhythmBlocks.js:766 +#: js/blocks/RhythmBlocks.js:806 +#: js/blocks/RhythmBlockPaletteBlocks.js:70 +#: js/blocks/RhythmBlockPaletteBlocks.js:252 +#: js/blocks/RhythmBlockPaletteBlocks.js:485 +#: js/blocks/RhythmBlockPaletteBlocks.js:554 +#: js/blocks/RhythmBlockPaletteBlocks.js:605 +#: js/blocks/RhythmBlockPaletteBlocks.js:875 +#: js/turtleactions/DictActions.js:85 +#: js/widgets/phrasemaker.js:942 +#: js/widgets/phrasemaker.js:2656 +#: js/widgets/phrasemaker.js:2699 +#: js/widgets/phrasemaker.js:2810 +#.TRANS: the value (e.g., 1/4 note) of the note being played. +msgid "note value" msgstr "" -#: js/toolbar.js:69 -#: js/toolbar.js:129 -msgid "Set Pitch Preview" +#: js/block-verbose.js:1721 +#: js/block-verbose.js:2382 +#: js/block-verbose.js:2405 +#: js/block.js:1685 +#: js/block.js:2310 +#: js/block.js:2333 +#: js/blocks/IntervalsBlocks.js:1071 +#: js/blocks/OrnamentBlocks.js:312 +#.TRANS: calculate a relative step between notes based on semi-tones +msgid "scalar interval" msgstr "" -#: js/toolbar.js:70 -#: js/toolbar.js:130 -#: js/toolbar.js:194 -#: js/toolbar.js:249 -msgid "Toggle JavaScript Editor" +#: js/block-verbose.js:1728 +#: js/block.js:1692 +#: js/blocks/RhythmBlocks.js:148 +msgid "milliseconds" msgstr "" -#: js/toolbar.js:71 -#: js/toolbar.js:131 -#: js/toolbar.js:195 -#: js/toolbar.js:250 -#: js/turtledefs.js:724 -msgid "Restore" +#: js/block-verbose.js:2455 +#: js/block-verbose.js:2459 +#: js/block-verbose.js:2512 +#: js/block-verbose.js:2628 +#: js/block.js:2383 +#: js/block.js:2387 +#: js/block.js:2440 +#: js/block.js:2556 +#: js/blocks/RhythmBlocks.js:712 +#: js/blocks/ProgramBlocks.js:1273 +#: js/widgets/rhythmruler.js:1183 +#: js/widgets/rhythmruler.js:1329 +msgid "silence" msgstr "" -#: js/toolbar.js:72 -#: js/toolbar.js:132 -#: js/toolbar.js:196 -#: js/toolbar.js:251 -msgid "Switch to beginner mode" +#: js/block-verbose.js:2548 +#: js/block-verbose.js:3492 +#: js/block-verbose.js:3509 +#: js/activity.js:2718 +#: js/activity.js:2769 +#: js/block.js:2476 +#: js/block.js:3416 +#: js/block.js:3433 +#: js/utils/musicutils.js:3780 +#: js/utils/musicutils.js:5273 +#.TRANS: the note names must be separated by single spaces +#.TRANS: the note names must be separated by single spaces +#.TRANS: the note names must be separated by single spaces +msgid "ti la sol fa mi re do" msgstr "" -#: js/toolbar.js:73 -#: js/toolbar.js:133 -#: js/toolbar.js:197 -#: js/toolbar.js:252 -msgid "Switch to advanced mode" +#: js/block-verbose.js:2616 +#: js/block.js:2544 +#.TRANS: scalar step +#.TRANS: scalar step +msgid "down" msgstr "" -#: js/toolbar.js:74 -#: js/toolbar.js:134 -#: js/toolbar.js:143 -#: js/toolbar.js:198 -#: js/toolbar.js:253 -#: js/turtledefs.js:738 -msgid "Select language" +#: js/block-verbose.js:2617 +#: js/block.js:2545 +msgid "up" msgstr "" -#: js/toolbar.js:76 -#: js/toolbar.js:79 -#: js/toolbar.js:137 -#: js/turtledefs.js:579 -msgid "Save mouse artwork as PNG" +#: js/block-verbose.js:3026 +#: js/block.js:2950 +msgid "Silence block cannot be removed." msgstr "" -#: js/toolbar.js:78 -#: js/toolbar.js:136 -#: js/turtledefs.js:575 -msgid "Save mouse artwork as SVG" +#: js/block-verbose.js:3824 +#: js/block.js:3748 +#: js/blocks.js:2607 +#: js/blocks.js:3218 +#: js/palette.js:618 +#: js/blocks/BooleanBlocks.js:77 +#: js/blocks/BooleanBlocks.js:167 +#: js/blocks/BooleanBlocks.js:251 +#: js/blocks/BooleanBlocks.js:335 +#: js/blocks/BooleanBlocks.js:433 +#: js/blocks/BooleanBlocks.js:539 +#: js/blocks/BooleanBlocks.js:640 +#: js/blocks/BooleanBlocks.js:741 +#: js/blocks/BooleanBlocks.js:847 +#: js/blocks/BooleanBlocks.js:948 +#: js/blocks/BooleanBlocks.js:1033 +#: js/blocks/SensorsBlocks.js:910 +msgid "true" msgstr "" -#: js/toolbar.js:80 -#: js/toolbar.js:138 -#: js/turtledefs.js:583 -msgid "Save music as WAV" +#: js/block-verbose.js:3824 +#: js/block.js:3748 +#: js/blocks.js:2609 +#: js/blocks.js:3220 +#: js/blocks/BooleanBlocks.js:79 +#: js/blocks/BooleanBlocks.js:169 +#: js/blocks/BooleanBlocks.js:253 +#: js/blocks/BooleanBlocks.js:337 +#: js/blocks/BooleanBlocks.js:435 +#: js/blocks/BooleanBlocks.js:541 +#: js/blocks/BooleanBlocks.js:642 +#: js/blocks/BooleanBlocks.js:743 +#: js/blocks/BooleanBlocks.js:849 +#: js/blocks/BooleanBlocks.js:950 +#: js/blocks/SensorsBlocks.js:912 +msgid "false" msgstr "" -#: js/toolbar.js:81 -#: js/toolbar.js:139 -#: js/turtledefs.js:587 -msgid "Save sheet music as ABC" +#: js/block-verbose.js:3835 +#: js/block-verbose.js:3848 +#: js/block.js:3759 +#: js/block.js:3772 +#: js/blocks/ExtrasBlocks.js:615 +msgid "Cartesian" msgstr "" -#: js/toolbar.js:82 -#: js/toolbar.js:140 -#: js/turtledefs.js:591 -msgid "Save sheet music as Lilypond" +#: js/block-verbose.js:3836 +#: js/block-verbose.js:3849 +#: js/block.js:3760 +#: js/block.js:3773 +#: js/blocks/ExtrasBlocks.js:619 +msgid "polar" msgstr "" -#: js/toolbar.js:83 -msgid "Save sheet music as MusicXML" +#: js/block-verbose.js:3837 +#: js/block-verbose.js:3850 +#: js/block.js:3761 +#: js/block.js:3774 +#: js/blocks/ExtrasBlocks.js:623 +msgid "Cartesian+polar" msgstr "" -#: js/toolbar.js:84 -#: js/toolbar.js:141 -#: js/toolbar.js:149 -#: js/toolbar.js:204 -#: js/toolbar.js:259 -#: js/turtledefs.js:562 -#: js/turtledefs.js:595 -msgid "Save block artwork as SVG" +#: js/block-verbose.js:3838 +#: js/block-verbose.js:3857 +#: js/block.js:3762 +#: js/block.js:3781 +#: js/blocks/ExtrasBlocks.js:652 +msgid "none" msgstr "" -#: js/toolbar.js:85 -#: js/toolbar.js:142 -#: js/toolbar.js:150 -#: js/toolbar.js:205 -#: js/toolbar.js:260 -msgid "Confirm" +#: js/block-verbose.js:3851 +#: js/block.js:3775 +#: js/blocks/ExtrasBlocks.js:628 +msgid "treble" msgstr "" -#: js/toolbar.js:86 -#: js/toolbar.js:151 -#: js/toolbar.js:206 -#: js/toolbar.js:261 -msgid "English (United States)" +#: js/block-verbose.js:3852 +#: js/block.js:3776 +#: js/blocks/ExtrasBlocks.js:632 +msgid "grand staff" msgstr "" -#: js/toolbar.js:87 -#: js/toolbar.js:152 -#: js/toolbar.js:207 -#: js/toolbar.js:262 -msgid "English (United Kingdom)" +#: js/block-verbose.js:3853 +#: js/block.js:3777 +#: js/blocks/ExtrasBlocks.js:636 +msgid "mezzo-soprano" msgstr "" -#: js/toolbar.js:88 -#: js/toolbar.js:153 -#: js/toolbar.js:208 -#: js/toolbar.js:263 -msgid "日本語" +#: js/block-verbose.js:3854 +#: js/block.js:3778 +#: js/blocks/ExtrasBlocks.js:640 +msgid "alto" msgstr "" -#: js/toolbar.js:89 -msgid "한국어" +#: js/block-verbose.js:3855 +#: js/block.js:3779 +#: js/blocks/ExtrasBlocks.js:644 +msgid "tenor" msgstr "" -#: js/toolbar.js:90 -#: js/toolbar.js:155 -#: js/toolbar.js:210 -#: js/toolbar.js:265 -msgid "español" +#: js/block-verbose.js:3856 +#: js/block.js:3780 +#: js/utils/musicutils.js:1115 +#: js/utils/synthutils.js:80 +#: js/blocks/ExtrasBlocks.js:648 +#.TRANS: musical instrument +msgid "bass" msgstr "" -#: js/toolbar.js:91 -#: js/toolbar.js:156 -#: js/toolbar.js:211 -#: js/toolbar.js:266 -msgid "português" +#: js/block-verbose.js:3901 +#: js/block.js:3825 +#: js/blocks.js:2600 +#: js/blocks.js:3211 +msgid "on2" msgstr "" -#: js/toolbar.js:92 -#: js/toolbar.js:157 -#: js/toolbar.js:212 -#: js/toolbar.js:267 -msgid "にほんご" +#: js/block-verbose.js:3903 +#: js/block.js:3827 +#: js/blocks.js:2602 +#: js/blocks.js:3213 +msgid "off" msgstr "" -#: js/toolbar.js:93 -#: js/toolbar.js:158 -#: js/toolbar.js:213 -#: js/toolbar.js:268 -msgid "中文" +#: js/block-verbose.js:4470 +#: js/block.js:4394 +msgid "Not a number" msgstr "" -#: js/toolbar.js:94 -#: js/toolbar.js:159 -#: js/toolbar.js:214 -#: js/toolbar.js:269 -msgid "ภาษาไทย" +#: js/block-verbose.js:4477 +#: js/block.js:4401 +msgid "Octave value must be between 1 and 10." msgstr "" -#: js/toolbar.js:95 -#: js/toolbar.js:160 -#: js/toolbar.js:215 -#: js/toolbar.js:270 -msgid "aymara" +#: js/block-verbose.js:4485 +#: js/block.js:4409 +msgid "Numbers can have at most 10 digits." msgstr "" -#: js/toolbar.js:96 -#: js/toolbar.js:161 -#: js/toolbar.js:216 -#: js/toolbar.js:271 -msgid "quechua" +#: js/activity.js:390 +#: js/activity.js:395 +msgid "Search for blocks" msgstr "" -#: js/toolbar.js:97 -#: js/toolbar.js:162 -#: js/toolbar.js:217 -#: js/toolbar.js:272 -msgid "guarani" +#: js/activity.js:1413 +msgid "Refresh your browser to change to advanced mode." msgstr "" -#: js/toolbar.js:98 -#: js/toolbar.js:163 -#: js/toolbar.js:218 -#: js/toolbar.js:273 -msgid "हिंदी" +#: js/activity.js:1418 +msgid "Refresh your browser to change to beginner mode." msgstr "" -#: js/toolbar.js:99 -#: js/toolbar.js:165 -#: js/toolbar.js:219 -#: js/toolbar.js:275 -msgid "igbo" +#: js/activity.js:1477 +msgid "Catching mice" +msgstr "" + +#: js/activity.js:1478 +msgid "Cleaning the instruments" +msgstr "" + +#: js/activity.js:1479 +msgid "Testing key pieces" +msgstr "" + +#: js/activity.js:1480 +msgid "Sight-reading" +msgstr "" + +#: js/activity.js:1481 +msgid "Combining math and music" msgstr "" -#: js/toolbar.js:100 -#: js/toolbar.js:166 -#: js/toolbar.js:220 -#: js/toolbar.js:276 -msgid "عربى" +#: js/activity.js:1482 +msgid "Generating more blocks" msgstr "" -#: js/toolbar.js:101 -#: js/toolbar.js:164 -#: js/toolbar.js:221 -#: js/toolbar.js:274 -msgid "తెలుగు" +#: js/activity.js:1483 +msgid "Do Re Mi Fa Sol La Ti Do" msgstr "" -#: js/toolbar.js:102 -#: js/toolbar.js:167 -#: js/toolbar.js:222 -#: js/toolbar.js:277 -msgid "עִברִית" +#: js/activity.js:1484 +msgid "Tuning string instruments" msgstr "" -#: js/toolbar.js:111 -#: js/toolbar.js:175 -#: js/toolbar.js:176 -#: js/toolbar.js:231 -msgid "Full Screen" +#: js/activity.js:1485 +msgid "Pressing random keys" msgstr "" -#: js/toolbar.js:145 -#: js/toolbar.js:148 -#: js/toolbar.js:200 -#: js/toolbar.js:203 -#: js/toolbar.js:255 -#: js/toolbar.js:258 -#: js/turtledefs.js:558 -msgid "Save turtle artwork as PNG" +#: js/activity.js:1663 +msgid "plugins will be removed upon restart." msgstr "" -#: js/toolbar.js:147 -#: js/toolbar.js:202 -#: js/toolbar.js:257 -#: js/turtledefs.js:554 -msgid "Save turtle artwork as SVG" +#: js/activity.js:1672 +msgid "show Cartesian" msgstr "" -#: js/toolbar.js:154 -#: js/toolbar.js:209 -#: js/toolbar.js:264 -msgid "한국인" +#: js/activity.js:2211 +#: js/palette.js:589 +#: js/blocks/RhythmBlocks.js:923 +#: js/blocks/PitchBlocks.js:442 +#: js/blocks/PitchBlocks.js:1786 +#.TRANS: a numeric mapping of the notes in an octave based on the musical mode +msgid "scale degree" msgstr "" -#: js/toolbar.js:171 -#: js/toolbar.js:227 -msgid "About Turtle Blocks" +#: js/activity.js:2214 +#: js/palette.js:598 +msgid "voice name" msgstr "" -#: js/toolbar.js:429 -#: js/toolbar.js:440 -msgid "Turtle Wrap Off" +#: js/activity.js:2217 +#: js/palette.js:595 +msgid "invert mode" msgstr "" -#: js/toolbar.js:442 -msgid "Turtle Wrap On" +#: js/activity.js:2220 +msgid "output tools" msgstr "" -#: js/block.js:1470 -msgid "matrix" +#: js/activity.js:2223 +msgid "custom note" msgstr "" -#: js/block.js:1477 -#: js/WidgetBlocks.js:1226 -#: plugins/rodi.rtp:324 -msgid "status" +#: js/activity.js:2226 +msgid "accidental name" msgstr "" -#: js/block.js:1484 -msgid "drum mapper" +#: js/activity.js:2229 +#: js/blocks/PitchBlocks.js:855 +msgid "east indian solfege" msgstr "" -#: js/block.js:1491 -msgid "ruler" +#: js/activity.js:2232 +#: js/blocks/PitchBlocks.js:869 +msgid "note name" msgstr "" -#: js/block.js:1498 -#: js/WidgetBlocks.js:327 -#.TRANS: timbre is the character or quality of a musical sound -msgid "timbre" +#: js/activity.js:2235 +#: js/blocks/IntervalsBlocks.js:94 +msgid "temperament name" msgstr "" -#: js/block.js:1505 -msgid "stair" +#: js/activity.js:2238 +#: js/palette.js:592 +msgid "mode name" msgstr "" -#: js/block.js:1512 -#: js/WidgetBlocks.js:577 -#.TRANS: the speed at music is should be played. -msgid "tempo" +#: js/activity.js:2241 +msgid "chord name" msgstr "" -#: js/block.js:1519 -#: js/block.js:1582 -#: js/IntervalsBlocks.js:1268 -#.TRANS: mode, e.g., Major in C Major -msgid "mode" +#: js/activity.js:2244 +#: js/palette.js:615 +msgid "interval name" msgstr "" -#: js/block.js:1526 -msgid "slider" +#: js/activity.js:2247 +msgid "filter type" msgstr "" -#: js/block.js:1533 -#: js/SensorsBlocks.js:1001 -msgid "keyboard" +#: js/activity.js:2250 +msgid "oscillator type" msgstr "" -#: js/block.js:1547 -#: js/WidgetBlocks.js:957 -#: js/WidgetBlocks.js:988 -#.TRANS: widget for subdividing a measure into distinct rhythmic elements -msgid "rhythm maker" +#: js/activity.js:2253 +#: js/blocks.js:2479 +#: js/blocks.js:2487 +msgid "audio file" msgstr "" -#: js/block.js:1554 -#: js/block.js:2182 -#: js/block.js:2236 -#: js/RhythmBlockPaletteBlocks.js:70 -#: js/RhythmBlockPaletteBlocks.js:251 -#: js/RhythmBlockPaletteBlocks.js:484 -#: js/RhythmBlockPaletteBlocks.js:553 -#: js/RhythmBlockPaletteBlocks.js:604 -#: js/RhythmBlockPaletteBlocks.js:874 -#: js/RhythmBlocks.js:33 -#: js/RhythmBlocks.js:356 -#: js/RhythmBlocks.js:766 -#: js/RhythmBlocks.js:806 -#: js/OrnamentBlocks.js:220 -#: js/OrnamentBlocks.js:312 -#: js/MeterBlocks.js:1367 -#: js/DictActions.js:85 -#: js/phrasemaker.js:731 -#: js/phrasemaker.js:2393 -#: js/phrasemaker.js:2436 -#: js/phrasemaker.js:2534 -#.TRANS: the value (e.g., 1/4 note) of the note being played. -msgid "note value" +#: js/activity.js:2256 +#: js/blocks/DrumBlocks.js:32 +msgid "noise name" msgstr "" -#: js/block.js:1561 -#: js/block.js:2110 -#: js/block.js:2133 -#: js/IntervalsBlocks.js:875 -#: js/OrnamentBlocks.js:312 -#.TRANS: calculate a relative step between notes based on semi-tones -msgid "scalar interval" +#: js/activity.js:2259 +#: js/blocks/DrumBlocks.js:75 +msgid "drum name" msgstr "" -#: js/block.js:1568 -#: js/RhythmBlocks.js:148 -msgid "milliseconds" +#: js/activity.js:2262 +#: js/blocks/DrumBlocks.js:119 +msgid "effects name" msgstr "" -#: js/block.js:2180 -#: js/block.js:2184 -#: js/block.js:2234 -#: js/block.js:2345 -#: js/ProgramBlocks.js:1273 -#: js/RhythmBlocks.js:712 -#: js/rhythmruler.js:834 -#: js/rhythmruler.js:961 -msgid "silence" +#: js/activity.js:2265 +msgid "wrap mode" msgstr "" -#: js/block.js:2265 -#: js/block.js:3134 -#: js/block.js:3151 -#: js/activity.js:2336 -#: js/activity.js:2387 -#: js/musicutils.js:2932 -#: js/musicutils.js:4287 -#.TRANS: the note names must be separated by single spaces -#.TRANS: the note names must be separated by single spaces -msgid "ti la sol fa mi re do" +#: js/activity.js:2268 +msgid "load file" msgstr "" -#: js/block.js:2333 -#.TRANS: scalar step -msgid "down" +#: js/activity.js:2435 +#: js/activity.js:5851 +msgid "This block is deprecated." msgstr "" -#: js/block.js:2334 -msgid "up" +#: js/activity.js:2437 +#: js/activity.js:5853 +msgid "Block cannot be found." msgstr "" -#: js/block.js:3477 -#: js/block.js:3490 -#: js/ExtrasBlocks.js:612 -msgid "Cartesian" +#: js/activity.js:2645 +msgid "Saving block artwork" msgstr "" -#: js/block.js:3478 -#: js/block.js:3491 -#: js/ExtrasBlocks.js:616 -msgid "polar" +#: js/activity.js:2656 +msgid "Erase" msgstr "" -#: js/block.js:3479 -#: js/block.js:3492 -#: js/ExtrasBlocks.js:620 -msgid "Cartesian+polar" +#: js/activity.js:2683 +#: js/activity.js:2705 +msgid "Paste" msgstr "" -#: js/block.js:3480 -#: js/block.js:3499 -#: js/ExtrasBlocks.js:649 -msgid "none" +#: js/activity.js:2687 +msgid "Save block help" msgstr "" -#: js/block.js:3493 -#: js/ExtrasBlocks.js:625 -msgid "treble" +#: js/activity.js:2772 +msgid "Jumping to the bottom of the page." msgstr "" -#: js/block.js:3494 -#: js/ExtrasBlocks.js:629 -msgid "grand staff" +#: js/activity.js:2778 +msgid "Scrolling up." msgstr "" -#: js/block.js:3495 -#: js/ExtrasBlocks.js:633 -msgid "mezzo-soprano" +#: js/activity.js:2783 +msgid "Scrolling down." msgstr "" -#: js/block.js:3496 -#: js/ExtrasBlocks.js:637 -msgid "alto" +#: js/activity.js:2788 +msgid "Extracting block" msgstr "" -#: js/block.js:3497 -#: js/ExtrasBlocks.js:641 -msgid "tenor" +#: js/activity.js:2796 +msgid "Moving block up." msgstr "" -#: js/block.js:3498 -#: js/ExtrasBlocks.js:645 -#: js/musicutils.js:736 -#: js/synthutils.js:64 -#.TRANS: musical instrument -msgid "bass" +#: js/activity.js:2817 +msgid "Moving block down." msgstr "" -#: js/block.js:4075 -msgid "Not a number" +#: js/activity.js:2838 +msgid "Moving block left." msgstr "" -#: js/block.js:4082 -msgid "Octave value must be between 1 and 10." +#: js/activity.js:2855 +msgid "Moving block right." msgstr "" -#: js/block.js:4090 -msgid "Numbers can have at most 10 digits." +#: js/activity.js:2870 +msgid "Jump to home position." msgstr "" -#: js/notation.js:353 -msgid "Lilypond cannot process pickup of " +#: js/activity.js:2897 +msgid "Hide blocks" msgstr "" -#: js/turtledefs.js:40 -#.TRANS: put the URL to the guide here, e.g., https://github.com/sugarlabs/turtleblocksjs/tree/master/guide/README.md -msgid "guide url" +#: js/activity.js:4500 +msgid "Click the run button to run the project." msgstr "" -#: js/turtledefs.js:85 -#: js/turtledefs.js:437 -msgid "Turtle Blocks is a Logo-inspired turtle that draws colorful pictures with snap-together visual-programming blocks." +#: js/activity.js:5692 +msgid "Show/hide block" msgstr "" -#: js/turtledefs.js:118 -#: js/turtledefs.js:220 -msgid "search" +#: js/activity.js:5698 +msgid "Expand/collapse blocks" msgstr "" -#: js/turtledefs.js:120 -#: js/turtledefs.js:222 -#: js/WidgetBlocks.js:437 -#: js/MeterBlocks.js:1343 -#.TRANS: musical meter (time signature), e.g., 4:4 -msgid "meter" +#: js/activity.js:5976 +msgid "Could not parse JSON input." msgstr "" -#: js/turtledefs.js:122 -#: js/turtledefs.js:224 -msgid "intervals" +#: js/activity.js:6475 +#: js/activity.js:6580 +#: js/activity.js:6631 +msgid "Cannot load project from the file. Please check the file type." msgstr "" -#: js/turtledefs.js:124 -#: js/turtledefs.js:226 -msgid "ornament" +#: js/activity.js:6917 +msgid "Invalid parameters" msgstr "" -#: js/turtledefs.js:125 -#: js/turtledefs.js:227 -#: js/VolumeBlocks.js:362 -#: js/VolumeBlocks.js:502 -#: js/VolumeBlocks.js:545 -msgid "volume" +#: js/blocks.js:1212 +#: js/blocks.js:3444 +#: js/blocks.js:3834 +#: js/blocks.js:3865 +#: js/blocks.js:3914 +#: js/blocks.js:3949 +#: js/blocks.js:6586 +#: js/palette.js:509 +#: js/palette.js:638 +#: js/palette.js:1105 +#: js/blocks/BoxesBlocks.js:282 +#: js/blocks/BoxesBlocks.js:285 +#: js/blocks/BoxesBlocks.js:405 +#: js/blocks/BoxesBlocks.js:594 +msgid "box" msgstr "" -#: js/turtledefs.js:129 -#: js/turtledefs.js:231 -msgid "boxes" +#: js/blocks.js:1713 +msgid "Consider breaking this stack into parts." msgstr "" -#: js/turtledefs.js:130 -#: js/turtledefs.js:232 -msgid "widgets" +#: js/blocks.js:2472 +#: js/palette.js:653 +#: js/blocks/MediaBlocks.js:602 +msgid "open file" msgstr "" -#: js/turtledefs.js:131 -#: js/turtledefs.js:233 -#: js/phrasemaker.js:824 -msgid "graphics" +#: js/blocks.js:3247 +#: js/palette.js:574 +#: js/blocks/MediaBlocks.js:892 +#: js/blocks/MediaBlocks.js:963 +msgid "text" msgstr "" -#: js/turtledefs.js:134 -#: js/turtledefs.js:236 -msgid "boolean" +#: js/blocks.js:3443 +#: js/palette.js:641 +#: js/palette.js:642 +#: js/blocks/BoxesBlocks.js:514 +msgid "store in box" msgstr "" -#: js/turtledefs.js:137 -#: js/turtledefs.js:239 -#: js/HeapBlocks.js:59 -#: js/status.js:147 -msgid "heap" +#: js/blocks.js:3448 +#: js/blocks.js:3888 +#: js/blocks.js:3923 +#: js/blocks.js:3958 +#: js/blocks.js:5862 +#: js/blocks.js:5883 +#: js/blocks/BoxesBlocks.js:772 +msgid "box1" msgstr "" -#: js/turtledefs.js:138 -#: js/turtledefs.js:240 -#: js/ProgramBlocks.js:495 -#: js/DictBlocks.js:142 -msgid "dictionary" +#: js/blocks.js:3450 +#: js/blocks.js:3890 +#: js/blocks.js:3925 +#: js/blocks.js:3960 +#: js/blocks.js:5864 +#: js/blocks.js:5885 +#: js/blocks/BoxesBlocks.js:663 +msgid "box2" msgstr "" -#: js/turtledefs.js:139 -#: js/turtledefs.js:241 -msgid "ensemble" +#: js/blocks.js:4122 +#: js/palette.js:639 +#: js/palette.js:644 +#: js/palette.js:1041 +#: js/blocks/BoxesBlocks.js:591 +msgid "store in" msgstr "" -#: js/turtledefs.js:140 -#: js/turtledefs.js:242 -msgid "extras" +#: js/blocks.js:4122 +#: js/blocks/BoxesBlocks.js:595 +#: js/blocks/DictBlocks.js:215 +#: js/blocks/DictBlocks.js:289 +#: js/blocks/EnsembleBlocks.js:391 +#: js/blocks/EnsembleBlocks.js:402 +#: js/blocks/MediaBlocks.js:746 +#: js/blocks/PitchBlocks.js:656 +#: js/blocks/PitchBlocks.js:934 +#: js/blocks/PitchBlocks.js:1866 +#: js/blocks/ProgramBlocks.js:390 +#: js/blocks/ProgramBlocks.js:495 +#: js/blocks/ProgramBlocks.js:658 +#: js/blocks/ToneBlocks.js:1025 +msgid "name" msgstr "" -#: js/turtledefs.js:142 -#: js/turtledefs.js:244 -#.TRANS: program as in computer program -#.TRANS: program as in computer program -msgid "program" +#: js/blocks.js:4122 +#: js/blocks/BoxesBlocks.js:75 +#: js/blocks/BoxesBlocks.js:595 +#: js/blocks/DictBlocks.js:289 +#: js/blocks/DictBlocks.js:430 +#: js/blocks/HeapBlocks.js:544 +#: js/blocks/RhythmBlocks.js:1130 +msgid "value" msgstr "" -#: js/turtledefs.js:143 -#: js/turtledefs.js:245 -msgid "my blocks" +#: js/blocks.js:4465 +msgid "Forever loop detected inside a note value block. Unexpected things may happen." msgstr "" -#: js/turtledefs.js:185 -#: js/turtledefs.js:281 -msgid "artwork" +#: js/blocks.js:4988 +msgid "There is no block selected." msgstr "" -#: js/turtledefs.js:185 -#: js/turtledefs.js:281 -msgid "logic" +#: js/blocks.js:5091 +#: js/blocks/MediaBlocks.js:888 +msgid "show" msgstr "" -#: js/turtledefs.js:185 -#: js/turtledefs.js:281 -msgid "music" +#: js/blocks.js:5094 +#: js/blocks/MediaBlocks.js:803 +#.TRANS: Avatar is the image used to determine the appearance of the mouse. +msgid "avatar" msgstr "" -#: js/turtledefs.js:187 -#: js/turtledefs.js:463 -msgid "Music Blocks is a collection of tools for exploring fundamental musical concepts in a fun way." +#: js/blocks.js:5097 +#: js/blocks/ToneBlocks.js:1010 +#: js/widgets/sampler.js:975 +#.TRANS: The sound sample that the user uploads. +msgid "sample" msgstr "" -#: js/turtledefs.js:436 -msgid "Welcome to Turtle Blocks" +#: js/lilypond.js:606 +msgid "brown rat" msgstr "" -#: js/turtledefs.js:438 -#: js/turtledefs.js:465 -#: js/turtledefs.js:774 -#: js/turtledefs.js:805 -msgid "The current version is" +#: js/lilypond.js:607 +msgid "mole" msgstr "" -#: js/turtledefs.js:446 -#: js/turtledefs.js:483 -msgid "Click the run button to run the project in fast mode." +#: js/lilypond.js:608 +msgid "chipmunk" msgstr "" -#: js/turtledefs.js:452 -msgid "Stop the turtle." +#: js/lilypond.js:609 +msgid "red squirrel" msgstr "" -#: js/turtledefs.js:454 -#: js/turtledefs.js:491 -msgid "You can also type Alt-S to stop." +#: js/lilypond.js:610 +msgid "guinea pig" +msgstr "" + +#: js/lilypond.js:611 +msgid "capybara" msgstr "" -#: js/turtledefs.js:462 -#: js/help.js:333 -msgid "Welcome to Music Blocks" +#: js/lilypond.js:612 +msgid "coypu" msgstr "" -#: js/turtledefs.js:472 -#: js/help.js:334 -msgid "Meet Mr. Mouse!" +#: js/lilypond.js:613 +msgid "black rat" msgstr "" -#: js/turtledefs.js:473 -msgid "Mr Mouse is our Music Blocks conductor." +#: js/lilypond.js:614 +msgid "grey squirrel" msgstr "" -#: js/turtledefs.js:475 -msgid "Mr Mouse encourages you to explore Music Blocks." +#: js/lilypond.js:615 +msgid "flying squirrel" msgstr "" -#: js/turtledefs.js:477 -msgid "Let us start our tour!" +#: js/lilypond.js:616 +msgid "bat" msgstr "" -#: js/turtledefs.js:489 -msgid "Stop the music (and the mice)." +#: js/lilypond.js:749 +#: js/lilypond.js:913 +#: js/lilypond.js:951 +#: js/blocks/ActionBlocks.js:1256 +#: js/blocks/ExtrasBlocks.js:556 +msgid "start drum" msgstr "" -#: js/turtledefs.js:499 -msgid "Record your project as video." +#: js/logo.js:61 +msgid "Not a valid pitch name" msgstr "" -#: js/turtledefs.js:505 -msgid "Toggle Fullscreen mode." +#: js/logo.js:507 +#: js/blocks/ProgramBlocks.js:258 +#: js/blocks/ProgramBlocks.js:427 +msgid "You must select a file." msgstr "" -#: js/turtledefs.js:511 -msgid "Initialize a new project." +#: js/logo.js:1696 +msgid "Playback is ready." msgstr "" -#: js/turtledefs.js:517 -msgid "You can also load projects from the file system." +#: js/macros.js:711 +#: js/utils/musicutils.js:1162 +#: js/utils/synthutils.js:202 +#.TRANS: animal sound effect +msgid "duck" msgstr "" -#: js/turtledefs.js:522 -#: js/StringHelper.js:46 -msgid "Delete" +#: js/notation.js:353 +msgid "Lilypond cannot process pickup of " msgstr "" -#: js/turtledefs.js:523 -msgid "To delete a block, just right-click on it, then you will be able to see the delete option" +#: js/palette.js:571 +msgid "grid" msgstr "" -#: js/turtledefs.js:528 -#: js/activity.js:2270 -#: js/LocalCard.js:31 -msgid "Copy" +#: js/palette.js:580 +msgid "effect" msgstr "" -#: js/turtledefs.js:529 -msgid "To copy a block, just right-click on it, then you will be able to see the copy option" +#: js/palette.js:586 +msgid "sargam" msgstr "" -#: js/turtledefs.js:535 -msgid "To extract a block, just right-click on it, then you will be able to see the extract option" +#: js/palette.js:601 +#: js/blocks/PitchBlocks.js:1209 +msgid "custom pitch" msgstr "" -#: js/turtledefs.js:542 -#: js/turtledefs.js:552 -#: js/turtledefs.js:573 -msgid "Save your project to a file." +#: js/palette.js:609 +msgid "accidental" msgstr "" -#: js/turtledefs.js:549 -#: js/turtledefs.js:570 -msgid "save" +#: js/palette.js:633 +#: js/blocks/PitchBlocks.js:405 +msgid "pitch converter" msgstr "" -#: js/turtledefs.js:556 -#: js/turtledefs.js:577 -msgid "Save graphics from your project to as SVG." +#: js/piemenus.js:200 +#: js/utils/musicutils.js:1187 +#: js/utils/musicutils.js:1207 +#: js/widgets/musickeyboard.js:2341 +#: js/widgets/phrasemaker.js:1908 +#: js/widgets/sampler.js:810 +#.TRANS: double sharp is a music term related to pitch +msgid "double sharp" msgstr "" -#: js/turtledefs.js:560 -#: js/turtledefs.js:581 -msgid "Save graphics from your project as PNG." +#: js/piemenus.js:201 +#: js/utils/musicutils.js:1185 +#: js/utils/musicutils.js:1208 +#: js/blocks/PitchBlocks.js:1539 +#: js/turtleactions/PitchActions.js:323 +#: js/widgets/musickeyboard.js:2342 +#: js/widgets/phrasemaker.js:1909 +#: js/widgets/sampler.js:811 +#.TRANS: sharp is a music term related to pitch +#.TRANS: sharp is a half-step up in pitch +msgid "sharp" msgstr "" -#: js/turtledefs.js:564 -#: js/turtledefs.js:597 -msgid "Save block artwork as an SVG file." +#: js/piemenus.js:202 +#: js/utils/musicutils.js:1183 +#: js/utils/musicutils.js:1209 +#: js/widgets/musickeyboard.js:2343 +#: js/widgets/phrasemaker.js:1910 +#: js/widgets/sampler.js:812 +#.TRANS: natural is a music term related to pitch +msgid "natural" msgstr "" -#: js/turtledefs.js:585 -msgid "Save audio from your project as WAV." +#: js/piemenus.js:203 +#: js/utils/musicutils.js:1181 +#: js/utils/musicutils.js:1210 +#: js/blocks/PitchBlocks.js:1498 +#: js/turtleactions/PitchActions.js:326 +#: js/widgets/musickeyboard.js:2344 +#: js/widgets/phrasemaker.js:1911 +#: js/widgets/sampler.js:813 +#.TRANS: flat is a music term related to pitch +#.TRANS: flat is a half-step down in pitch +msgid "flat" msgstr "" -#: js/turtledefs.js:589 -msgid "Save your project to as an ABC file." +#: js/piemenus.js:204 +#: js/utils/musicutils.js:1179 +#: js/utils/musicutils.js:1211 +#: js/widgets/musickeyboard.js:2345 +#: js/widgets/phrasemaker.js:1912 +#: js/widgets/sampler.js:814 +#.TRANS: double flat is a music term related to pitch +msgid "double flat" msgstr "" -#: js/turtledefs.js:593 -msgid "Save your project to as a Lilypond file." +#: js/piemenus.js:2864 +#: js/utils/musicutils.js:1006 +#: js/blocks/PitchBlocks.js:1385 +#.TRANS: unison is a music term related to intervals +#.TRANS: unison means the note is the same as the current note +msgid "unison" msgstr "" -#: js/turtledefs.js:604 -msgid "Load samples from server" +#: js/piemenus.js:3018 +#: js/piemenus.js:3091 +#: js/utils/musicutils.js:1014 +#: js/utils/musicutils.js:1189 +#: js/utils/musicutils.js:1326 +#.TRANS: major is a music term related to intervals and mode +msgid "major" msgstr "" -#: js/turtledefs.js:605 -msgid "This button opens a viewer for loading example projects." +#: js/piemenus.js:3018 +#: js/piemenus.js:3091 +#: js/utils/musicutils.js:1032 +#.TRANS: modal scale for music +msgid "ionian" msgstr "" -#: js/turtledefs.js:611 -msgid "Palette buttons" +#: js/piemenus.js:3020 +#: js/piemenus.js:3095 +#: js/utils/musicutils.js:1012 +#: js/utils/musicutils.js:1190 +#: js/utils/musicutils.js:1323 +#.TRANS: minor is a music term related to intervals and mode +msgid "minor" msgstr "" -#: js/turtledefs.js:612 -msgid "This toolbar contains the palette buttons including Rhythm Pitch Tone Action and more." +#: js/piemenus.js:3020 +#: js/piemenus.js:3095 +#: js/utils/musicutils.js:1042 +#.TRANS: modal scale for music +msgid "aeolian" msgstr "" -#: js/turtledefs.js:614 -msgid "Click to show the palettes of blocks and drag blocks from the palettes onto the canvas to use them." +#: js/piemenus.js:3410 +msgid "Duplicate" msgstr "" -#: js/turtledefs.js:620 -msgid "Cartesian/Polar" +#: js/piemenus.js:3412 +msgid "Move to trash" msgstr "" -#: js/turtledefs.js:621 -msgid "Show or hide a coordinate grid." +#: js/piemenus.js:3413 +#: js/widgets/timbre.js:968 +#: planet/js/StringHelper.js:69 +msgid "Close" msgstr "" -#: js/turtledefs.js:627 -msgid "Clear the screen and return the mice to their initial positions." +#: js/piemenus.js:3419 +msgid "Save stack" msgstr "" -#: js/turtledefs.js:633 -msgid "Collapse the graphics window." +#: js/piemenus.js:3449 +msgid "In order to copy a sample, you must reload the widget, import the sample again, and export it." msgstr "" -#: js/turtledefs.js:638 -#: js/activity.js:4256 -#: js/activity.js:4256 -msgid "Home" +#: js/piemenus.js:3812 +msgid "You have chosen key " msgstr "" -#: js/turtledefs.js:639 -msgid "Return all blocks to the center of the screen." +#: js/piemenus.js:3816 +msgid " for your pitch preview." msgstr "" -#: js/turtledefs.js:644 -msgid "Show/hide blocks" +#: js/turtle-singer.js:1363 +#.TRANS: partials are weighted components in a harmonic series +msgid "You must have at least one Partial block inside of a Weighted-partial block" msgstr "" -#: js/turtledefs.js:645 -msgid "Hide or show the blocks and the palettes." +#: js/turtle-singer.js:2077 +msgid "synth cannot play chords." msgstr "" -#: js/turtledefs.js:650 -msgid "Expand/collapse collapsable blocks" +#: js/utils/musicutils.js:505 +#: js/utils/musicutils.js:645 +#: js/widgets/pitchdrummatrix.js:228 +#: js/widgets/musickeyboard.js:2885 +msgid "rest" msgstr "" -#: js/turtledefs.js:651 -msgid "Expand or collapse start and action stacks." +#: js/utils/musicutils.js:689 +msgid "Perfect unison" msgstr "" -#: js/turtledefs.js:658 -#: js/activity.js:4265 -msgid "Decrease block size" +#: js/utils/musicutils.js:689 +msgid "Diminished second" msgstr "" -#: js/turtledefs.js:659 -msgid "Decrease the size of the blocks." +#: js/utils/musicutils.js:690 +msgid "Minor second" msgstr "" -#: js/turtledefs.js:664 -#: js/activity.js:4267 -msgid "Increase block size" +#: js/utils/musicutils.js:690 +msgid "Augmented unison" msgstr "" -#: js/turtledefs.js:665 -msgid "Increase the size of the blocks." +#: js/utils/musicutils.js:691 +msgid "Major second" msgstr "" -#: js/turtledefs.js:670 -msgid "Expand/collapse option toolbar" +#: js/utils/musicutils.js:691 +msgid "Diminished third" msgstr "" -#: js/turtledefs.js:671 -msgid "Click this button to expand or collapse the auxillary toolbar." +#: js/utils/musicutils.js:692 +msgid "Minor third" msgstr "" -#: js/turtledefs.js:676 -msgid "Run slow" +#: js/utils/musicutils.js:692 +msgid "Augmented second" msgstr "" -#: js/turtledefs.js:677 -msgid "Click to run the project in slow mode." +#: js/utils/musicutils.js:693 +msgid "Major third" msgstr "" -#: js/turtledefs.js:683 -msgid "Click to run the project step by step." +#: js/utils/musicutils.js:693 +msgid "Diminished fourth" msgstr "" -#: js/turtledefs.js:690 -msgid "Display statistics about your Music project." +#: js/utils/musicutils.js:694 +msgid "Perfect fourth" msgstr "" -#: js/turtledefs.js:697 -msgid "Delete a selected plugin." +#: js/utils/musicutils.js:694 +msgid "Augmented third" msgstr "" -#: js/turtledefs.js:704 -msgid "Enable scrolling" +#: js/utils/musicutils.js:695 +msgid "Diminished fifth" msgstr "" -#: js/turtledefs.js:705 -msgid "You can scroll the blocks on the canvas." +#: js/utils/musicutils.js:695 +msgid "Augmented fourth" msgstr "" -#: js/turtledefs.js:714 -msgid "Wrap Turtle" +#: js/utils/musicutils.js:696 +msgid "Perfect fifth" msgstr "" -#: js/turtledefs.js:715 -msgid "Turn Turtle wrapping On or Off." +#: js/utils/musicutils.js:696 +msgid "Diminished sixth" msgstr "" -#: js/turtledefs.js:725 -msgid "Restore blocks from the trash." +#: js/utils/musicutils.js:697 +msgid "Minor sixth" msgstr "" -#: js/turtledefs.js:732 -msgid "Switch mode" +#: js/utils/musicutils.js:697 +msgid "Augmented fifth" msgstr "" -#: js/turtledefs.js:733 -msgid "Switch between beginner and advance modes." +#: js/utils/musicutils.js:698 +msgid "Major sixth" msgstr "" -#: js/turtledefs.js:739 -msgid "Select your language preference." +#: js/utils/musicutils.js:698 +msgid "Diminished seventh" msgstr "" -#: js/turtledefs.js:745 -msgid "Keyboard shortcuts" +#: js/utils/musicutils.js:699 +msgid "Minor seventh" msgstr "" -#: js/turtledefs.js:746 -msgid "You can type d to create a do block and r to create a re block etc." +#: js/utils/musicutils.js:699 +msgid "Augmented sixth" msgstr "" -#: js/turtledefs.js:753 -msgid "Show these messages." +#: js/utils/musicutils.js:700 +msgid "Major seventh" msgstr "" -#: js/turtledefs.js:759 -#: js/turtledefs.js:790 -#: js/help.js:335 -msgid "Guide" +#: js/utils/musicutils.js:700 +msgid "Diminished octave" msgstr "" -#: js/turtledefs.js:760 -msgid "A detailed guide to Turtle Blocks is available." +#: js/utils/musicutils.js:701 +msgid "Perfect octave" msgstr "" -#: js/turtledefs.js:764 -msgid "Turtle Blocks Guide" +#: js/utils/musicutils.js:701 +msgid "Augmented seventh" msgstr "" -#: js/turtledefs.js:767 -#: js/turtledefs.js:798 -#: js/help.js:336 -msgid "About" +#: js/utils/musicutils.js:702 +msgid "Minor ninth" msgstr "" -#: js/turtledefs.js:768 -msgid "Turtle Blocks is an open source collection of tools for exploring musical concepts." +#: js/utils/musicutils.js:702 +msgid "Augmented octave" msgstr "" -#: js/turtledefs.js:770 -msgid "A full list of contributors can be found in the Turtle Blocks GitHub repository." +#: js/utils/musicutils.js:703 +msgid "Major ninth" msgstr "" -#: js/turtledefs.js:772 -msgid "Turtle Blocks is licensed under the AGPL." +#: js/utils/musicutils.js:703 +msgid "Diminished tenth" msgstr "" -#: js/turtledefs.js:780 -msgid "Turtle Blocks GitHub repository" +#: js/utils/musicutils.js:704 +msgid "Minor tenth" msgstr "" -#: js/turtledefs.js:783 -#: js/turtledefs.js:814 -#: js/help.js:337 -#: js/help.js:359 -msgid "Congratulations." +#: js/utils/musicutils.js:704 +msgid "Augmented ninth" msgstr "" -#: js/turtledefs.js:784 -msgid "You have finished the tour. Please enjoy Turtle Blocks!" +#: js/utils/musicutils.js:705 +msgid "Major tenth" msgstr "" -#: js/turtledefs.js:791 -msgid "A detailed guide to Music Blocks is available." +#: js/utils/musicutils.js:705 +msgid "Diminished eleventh" msgstr "" -#: js/turtledefs.js:795 -#: js/SaveInterface.js:76 -msgid "Music Blocks Guide" +#: js/utils/musicutils.js:706 +msgid "Perfect eleventh" msgstr "" -#: js/turtledefs.js:799 -msgid "Music Blocks is an open source collection of tools for exploring musical concepts." +#: js/utils/musicutils.js:706 +msgid "Augmented tenth" msgstr "" -#: js/turtledefs.js:801 -msgid "A full list of contributors can be found in the Music Blocks GitHub repository." +#: js/utils/musicutils.js:707 +msgid "Diminished twelfth" msgstr "" -#: js/turtledefs.js:803 -msgid "Music Blocks is licensed under the AGPL." +#: js/utils/musicutils.js:707 +msgid "Augmented eleventh" msgstr "" -#: js/turtledefs.js:811 -msgid "Music Blocks GitHub repository" +#: js/utils/musicutils.js:708 +msgid "Perfect twelfth" msgstr "" -#: js/turtledefs.js:815 -msgid "You have finished the tour. Please enjoy Music Blocks!" +#: js/utils/musicutils.js:708 +msgid "Diminished thirteenth" msgstr "" -#: js/activity.js:369 -msgid "Search for blocks" +#: js/utils/musicutils.js:709 +msgid "Minor thirteenth" msgstr "" -#: js/activity.js:1145 -msgid "Refresh your browser to change to advanced mode." +#: js/utils/musicutils.js:709 +msgid "Augmented fifth, plus an octave" msgstr "" -#: js/activity.js:1150 -msgid "Refresh your browser to change to beginner mode." +#: js/utils/musicutils.js:710 +msgid "Major thirteenth" msgstr "" -#: js/activity.js:1184 -msgid "Catching mice" +#: js/utils/musicutils.js:710 +msgid "Diminished seventh, plus an octave" msgstr "" -#: js/activity.js:1185 -msgid "Cleaning the instruments" +#: js/utils/musicutils.js:838 +#.TRANS: ordinal number. Please keep exactly one space between each number. +msgid "1st 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th" msgstr "" -#: js/activity.js:1186 -msgid "Testing key pieces" +#: js/utils/musicutils.js:1008 +#: js/utils/musicutils.js:1191 +#: js/utils/musicutils.js:1325 +#.TRANS: augmented is a music term related to intervals +msgid "augmented" msgstr "" -#: js/activity.js:1187 -msgid "Sight-reading" +#: js/utils/musicutils.js:1010 +#: js/utils/musicutils.js:1192 +#: js/utils/musicutils.js:1324 +#.TRANS: diminished is a music term related to intervals and mode +msgid "diminished" msgstr "" -#: js/activity.js:1188 -msgid "Combining math and music" +#: js/utils/musicutils.js:1016 +#: js/utils/musicutils.js:1322 +#: js/blocks/IntervalsBlocks.js:649 +#: js/turtleactions/IntervalsActions.js:120 +#: js/turtleactions/IntervalsActions.js:124 +#.TRANS: perfect is a music term related to intervals +msgid "perfect" +msgstr "" + +#: js/utils/musicutils.js:1018 +#.TRANS: twelve semi-tone scale for music +msgid "chromatic" msgstr "" -#: js/activity.js:1189 -msgid "Generating more blocks" +#: js/utils/musicutils.js:1019 +msgid "algerian" msgstr "" -#: js/activity.js:1190 -msgid "Do Re Mi Fa Sol La Ti Do" +#: js/utils/musicutils.js:1020 +msgid "spanish" msgstr "" -#: js/activity.js:1191 -msgid "Tuning string instruments" +#: js/utils/musicutils.js:1022 +#.TRANS: modal scale in music +msgid "octatonic" msgstr "" -#: js/activity.js:1192 -msgid "Pressing random keys" +#: js/utils/musicutils.js:1024 +#.TRANS: harmonic major scale in music +msgid "harmonic major" msgstr "" -#: js/activity.js:1351 -msgid "plugins will be removed upon restart." +#: js/utils/musicutils.js:1026 +#.TRANS: natural minor scales in music +msgid "natural minor" msgstr "" -#: js/activity.js:1360 -msgid "show Cartesian" +#: js/utils/musicutils.js:1028 +#.TRANS: harmonic minor scale in music +msgid "harmonic minor" msgstr "" -#: js/activity.js:1842 -msgid "output tools" +#: js/utils/musicutils.js:1030 +#.TRANS: melodic minor scale in music +msgid "melodic minor" msgstr "" -#: js/activity.js:1845 -msgid "custom note" +#: js/utils/musicutils.js:1034 +#.TRANS: modal scale for music +msgid "dorian" msgstr "" -#: js/activity.js:1848 -msgid "accidental name" +#: js/utils/musicutils.js:1036 +#.TRANS: modal scale for music +msgid "phrygian" msgstr "" -#: js/activity.js:1851 -#: js/PitchBlocks.js:855 -msgid "east indian solfege" +#: js/utils/musicutils.js:1038 +#.TRANS: modal scale for music +msgid "lydian" msgstr "" -#: js/activity.js:1854 -#: js/PitchBlocks.js:869 -msgid "note name" +#: js/utils/musicutils.js:1040 +#.TRANS: modal scale for music +msgid "mixolydian" msgstr "" -#: js/activity.js:1857 -#: js/IntervalsBlocks.js:94 -msgid "temperament name" +#: js/utils/musicutils.js:1044 +#.TRANS: modal scale for music +msgid "locrian" msgstr "" -#: js/activity.js:1863 -msgid "chord name" +#: js/utils/musicutils.js:1046 +#.TRANS: minor jazz scale for music +msgid "jazz minor" msgstr "" -#: js/activity.js:1869 -msgid "filter type" +#: js/utils/musicutils.js:1048 +#.TRANS: bebop scale for music +msgid "bebop" msgstr "" -#: js/activity.js:1872 -msgid "oscillator type" +#: js/utils/musicutils.js:1049 +msgid "arabic" msgstr "" -#: js/activity.js:1878 -#: js/DrumBlocks.js:32 -msgid "noise name" +#: js/utils/musicutils.js:1050 +msgid "byzantine" msgstr "" -#: js/activity.js:1881 -#: js/DrumBlocks.js:75 -msgid "drum name" +#: js/utils/musicutils.js:1052 +#.TRANS: musical scale for music by Verdi +msgid "enigmatic" msgstr "" -#: js/activity.js:1884 -#: js/DrumBlocks.js:119 -msgid "effects name" +#: js/utils/musicutils.js:1053 +msgid "ethiopian" msgstr "" -#: js/activity.js:1887 -msgid "wrap mode" +#: js/utils/musicutils.js:1055 +#.TRANS: Ethiopic scale for music +msgid "geez" msgstr "" -#: js/activity.js:1890 -msgid "load file" +#: js/utils/musicutils.js:1056 +msgid "hindu" msgstr "" -#: js/activity.js:2056 -msgid "This block is deprecated." +#: js/utils/musicutils.js:1057 +msgid "hungarian" msgstr "" -#: js/activity.js:2058 -msgid "Block cannot be found." +#: js/utils/musicutils.js:1059 +#.TRANS: minor Romanian scale for music +msgid "romanian minor" msgstr "" -#: js/activity.js:2266 -msgid "Saving block artwork" +#: js/utils/musicutils.js:1060 +msgid "spanish gypsy" msgstr "" -#: js/activity.js:2277 -msgid "Erase" +#: js/utils/musicutils.js:1062 +#.TRANS: musical scale for Mid-Eastern music +msgid "maqam" msgstr "" -#: js/activity.js:2301 -#: js/activity.js:2323 -msgid "Paste" +#: js/utils/musicutils.js:1064 +#.TRANS: minor blues scale for music +msgid "minor blues" msgstr "" -#: js/activity.js:2305 -msgid "Save block help" +#: js/utils/musicutils.js:1066 +#.TRANS: major blues scale for music +msgid "major blues" msgstr "" -#: js/activity.js:2390 -msgid "Jumping to the bottom of the page." +#: js/utils/musicutils.js:1067 +msgid "whole tone" msgstr "" -#: js/activity.js:2396 -msgid "Scrolling up." +#: js/utils/musicutils.js:1069 +#.TRANS: pentatonic is a general term that means "five note scale". This scale is typically known as "minor pentatonic" +msgid "minor pentatonic" msgstr "" -#: js/activity.js:2401 -msgid "Scrolling down." +#: js/utils/musicutils.js:1071 +#.TRANS: pentatonic is a general term that means "five note scale". This scale is typically known as "major pentatonic" +msgid "major pentatonic" msgstr "" -#: js/activity.js:2406 -msgid "Extracting block" +#: js/utils/musicutils.js:1072 +msgid "chinese" msgstr "" -#: js/activity.js:2414 -msgid "Moving block up." +#: js/utils/musicutils.js:1073 +msgid "egyptian" msgstr "" -#: js/activity.js:2435 -msgid "Moving block down." +#: js/utils/musicutils.js:1075 +#.TRANS: https://en.wikipedia.org/wiki/Hirajoshi_scale NOTE: There are three different versions of this scale +msgid "hirajoshi" msgstr "" -#: js/activity.js:2456 -msgid "Moving block left." +#: js/utils/musicutils.js:1076 +msgid "Japan" msgstr "" -#: js/activity.js:2473 -msgid "Moving block right." +#: js/utils/musicutils.js:1078 +#.TRANS: https://en.wikipedia.org/wiki/In_scale and https://en.wikipedia.org/wiki/Sakura_Sakura +msgid "in" msgstr "" -#: js/activity.js:2488 -msgid "Jump to home position." +#: js/utils/musicutils.js:1080 +#.TRANS: https://en.wikipedia.org/wiki/Miny%C5%8D_scale +msgid "minyo" msgstr "" -#: js/activity.js:2515 -msgid "Hide blocks" +#: js/utils/musicutils.js:1082 +#.TRANS: Italian mathematician +msgid "fibonacci" msgstr "" -#: js/activity.js:3389 -msgid "Click the run button to run the project." +#: js/utils/musicutils.js:1083 +#: js/utils/musicutils.js:1134 +#: js/utils/musicutils.js:1177 +#: js/utils/musicutils.js:1199 +#: js/utils/synthutils.js:134 +#: js/blocks/IntervalsBlocks.js:1124 +#: js/blocks/ToneBlocks.js:946 +#: js/blocks/VolumeBlocks.js:411 +#: js/blocks/WidgetBlocks.js:399 +#: js/blocks/WidgetBlocks.js:404 +#: js/turtleactions/VolumeActions.js:218 +#: js/widgets/modewidget.js:919 +#.TRANS: customize voice +msgid "custom" msgstr "" -#: js/activity.js:3456 -#: js/SaveInterface.js:131 -#: js/SaveInterface.js:204 -#: js/SaveInterface.js:262 -#: js/SaveInterface.js:389 -#: js/SaveInterface.js:417 -#: js/ProjectStorage.js:27 -#: js/GlobalPlanet.js:467 -#: js/GlobalPlanet.js:469 -#: js/GlobalPlanet.js:495 -#.TRANS: default project title when saving as Lilypond -msgid "My Project" +#: js/utils/musicutils.js:1085 +#: js/utils/musicutils.js:1531 +#: js/blocks/WidgetBlocks.js:176 +#.TRANS: highpass filter +msgid "highpass" msgstr "" -#: js/activity.js:4261 -msgid "Show/hide block" +#: js/utils/musicutils.js:1087 +#: js/utils/musicutils.js:1532 +#.TRANS: lowpass filter +msgid "lowpass" msgstr "" -#: js/activity.js:4263 -msgid "Expand/collapse blocks" +#: js/utils/musicutils.js:1089 +#: js/utils/musicutils.js:1533 +#.TRANS: bandpass filter +msgid "bandpass" msgstr "" -#: js/activity.js:4381 -msgid "Could not parse JSON input." +#: js/utils/musicutils.js:1091 +#: js/utils/musicutils.js:1534 +#.TRANS: high-shelf filter +msgid "highshelf" msgstr "" -#: js/activity.js:4684 -#: js/activity.js:4771 -#: js/activity.js:4821 -msgid "Cannot load project from the file. Please check the file type." +#: js/utils/musicutils.js:1093 +#: js/utils/musicutils.js:1535 +#.TRANS: low-shelf filter +msgid "lowshelf" msgstr "" -#: js/activity.js:5051 -msgid "Invalid parameters" +#: js/utils/musicutils.js:1095 +#: js/utils/musicutils.js:1536 +#.TRANS: notch-shelf filter +msgid "notch" msgstr "" -#: js/turtle-singer.js:1334 -#.TRANS: partials are weighted components in a harmonic series -msgid "You must have at least one Partial block inside of a Weighted-partial block" +#: js/utils/musicutils.js:1097 +#: js/utils/musicutils.js:1537 +#.TRANS: all-pass filter +msgid "allpass" msgstr "" -#: js/turtle-singer.js:2048 -msgid "synth cannot play chords." +#: js/utils/musicutils.js:1099 +#: js/utils/musicutils.js:1538 +#.TRANS: peaking filter +msgid "peaking" msgstr "" -#: js/lilypond.js:614 -msgid "brown rat" +#: js/utils/musicutils.js:1100 +#: js/utils/musicutils.js:1546 +#: js/utils/synthutils.js:126 +#: js/blocks/PitchBlocks.js:85 +#.TRANS: sine wave +msgid "sine" msgstr "" -#: js/lilypond.js:615 -msgid "mole" +#: js/utils/musicutils.js:1101 +#: js/utils/musicutils.js:1547 +#: js/utils/synthutils.js:128 +#: js/blocks/PitchBlocks.js:39 +#.TRANS: square wave +msgid "square" msgstr "" -#: js/lilypond.js:616 -msgid "chipmunk" +#: js/utils/musicutils.js:1102 +#: js/utils/musicutils.js:1548 +#: js/utils/synthutils.js:132 +#: js/blocks/PitchBlocks.js:62 +#: js/blocks/ToneBlocks.js:39 +#.TRANS: triangle wave +msgid "triangle" msgstr "" -#: js/lilypond.js:617 -msgid "red squirrel" +#: js/utils/musicutils.js:1103 +#: js/utils/musicutils.js:1549 +#: js/utils/synthutils.js:130 +#: js/blocks/PitchBlocks.js:108 +#.TRANS: sawtooth wave +msgid "sawtooth" msgstr "" -#: js/lilypond.js:618 -msgid "guinea pig" +#: js/utils/musicutils.js:1105 +#: js/utils/musicutils.js:1312 +#: js/blocks/PitchBlocks.js:931 +#: js/blocks/PitchBlocks.js:937 +#: js/turtleactions/PitchActions.js:469 +#.TRANS: even numbers +#.TRANS: invert based on even or odd number or musical scale +msgid "even" msgstr "" -#: js/lilypond.js:619 -msgid "capybara" +#: js/utils/musicutils.js:1107 +#: js/utils/musicutils.js:1313 +#: js/blocks/PitchBlocks.js:937 +#: js/turtleactions/PitchActions.js:471 +#.TRANS: odd numbers +msgid "odd" msgstr "" -#: js/lilypond.js:620 -msgid "coypu" +#: js/utils/musicutils.js:1108 +#: js/utils/musicutils.js:1314 +#: js/blocks/PitchBlocks.js:937 +#: js/turtleactions/PitchActions.js:473 +msgid "scalar" msgstr "" -#: js/lilypond.js:621 -msgid "black rat" +#: js/utils/musicutils.js:1109 +#: js/utils/synthutils.js:72 +#: js/blocks/VolumeBlocks.js:47 +#.TRANS: musical instrument +msgid "piano" msgstr "" -#: js/lilypond.js:622 -msgid "grey squirrel" +#: js/utils/musicutils.js:1110 +#: js/utils/synthutils.js:74 +#.TRANS: musical instrument +msgid "violin" msgstr "" -#: js/lilypond.js:623 -msgid "flying squirrel" +#: js/utils/musicutils.js:1111 +#: js/utils/synthutils.js:76 +#.TRANS: viola musical instrument +msgid "viola" msgstr "" -#: js/lilypond.js:624 -msgid "bat" +#: js/utils/musicutils.js:1112 +#: js/utils/synthutils.js:114 +#.TRANS: xylophone musical instrument +msgid "xylophone" msgstr "" -#: js/lilypond.js:757 -#: js/lilypond.js:921 -#: js/lilypond.js:959 -#: js/ActionBlocks.js:1256 -#: js/ExtrasBlocks.js:553 -msgid "start drum" +#: js/utils/musicutils.js:1113 +#: js/utils/synthutils.js:136 +#.TRANS: vibraphone musical instrument +msgid "vibraphone" msgstr "" -#: js/SaveInterface.js:59 -#: js/SaveInterface.js:61 -#: js/SaveInterface.js:93 -msgid "Music Blocks Project" +#: js/utils/musicutils.js:1114 +#: js/utils/synthutils.js:78 +#.TRANS: musical instrument +msgid "cello" msgstr "" -#: js/SaveInterface.js:63 -msgid "This project was created in Music Blocks" +#: js/utils/musicutils.js:1116 +#: js/utils/synthutils.js:82 +#.TRANS: viola musical instrument +msgid "double bass" msgstr "" -#: js/SaveInterface.js:67 -msgid "Music Blocks is a Free/Libre Software application." +#: js/utils/musicutils.js:1117 +#: js/utils/synthutils.js:84 +#: js/widgets/rhythmruler.js:2511 +#.TRANS: musical instrument +msgid "guitar" msgstr "" -#: js/SaveInterface.js:69 -msgid "The source code can be accessed at" +#: js/utils/musicutils.js:1118 +#: js/utils/synthutils.js:86 +#.TRANS: musical instrument +msgid "acoustic guitar" msgstr "" -#: js/SaveInterface.js:72 -msgid "For more information, please consult the" +#: js/utils/musicutils.js:1119 +#: js/utils/synthutils.js:88 +#.TRANS: musical instrument +msgid "flute" msgstr "" -#: js/SaveInterface.js:83 -msgid "Alternatively, open the file in Music Blocks using the Load project button." +#: js/utils/musicutils.js:1120 +#: js/utils/synthutils.js:90 +#.TRANS: musical instrument +msgid "clarinet" msgstr "" -#: js/SaveInterface.js:85 -msgid "Project Code" +#: js/utils/musicutils.js:1121 +#: js/utils/synthutils.js:92 +#.TRANS: musical instrument +msgid "saxophone" msgstr "" -#: js/SaveInterface.js:87 -msgid "This code stores data about the blocks in a project." +#: js/utils/musicutils.js:1122 +#: js/utils/synthutils.js:94 +#.TRANS: musical instrument +msgid "tuba" msgstr "" -#: js/SaveInterface.js:89 -msgid "Show" +#: js/utils/musicutils.js:1123 +#: js/utils/synthutils.js:96 +#.TRANS: musical instrument +msgid "trumpet" msgstr "" -#: js/SaveInterface.js:91 -msgid "Hide" +#: js/utils/musicutils.js:1124 +#: js/utils/synthutils.js:98 +#.TRANS: musical instrument +msgid "oboe" msgstr "" -#: js/SaveInterface.js:197 -#: js/SaveInterface.js:58 -msgid "No description provided" +#: js/utils/musicutils.js:1125 +#: js/utils/synthutils.js:100 +#.TRANS: musical instrument +msgid "trombone" msgstr "" -#: js/SaveInterface.js:332 -msgid "Your recording is in progress." +#: js/utils/musicutils.js:1126 +#: js/utils/synthutils.js:116 +#.TRANS: polytone synthesizer +msgid "electronic synth" msgstr "" -#: js/SaveInterface.js:401 -#.TRANS: File name prompt for save as Lilypond -msgid "File name" +#: js/utils/musicutils.js:1127 +#: js/utils/synthutils.js:118 +#.TRANS: simple monotone synthesizer +msgid "simple 1" msgstr "" -#: js/SaveInterface.js:403 -#: js/StringHelper.js:39 -#.TRANS: Project title prompt for save as Lilypond -msgid "Project title" +#: js/utils/musicutils.js:1128 +msgid "simple 2" msgstr "" -#: js/SaveInterface.js:405 -#.TRANS: Project title prompt for save as Lilypond -msgid "Project author" +#: js/utils/musicutils.js:1129 +msgid "simple 3" msgstr "" -#: js/SaveInterface.js:407 -#.TRANS: MIDI prompt for save as Lilypond -msgid "Include MIDI output?" +#: js/utils/musicutils.js:1130 +msgid "simple 4" msgstr "" -#: js/SaveInterface.js:409 -#.TRANS: Guitar prompt for save as Lilypond -msgid "Include guitar tablature output?" +#: js/utils/musicutils.js:1131 +#: js/utils/synthutils.js:58 +#: js/blocks/DrumBlocks.js:191 +#.TRANS: white noise synthesizer +msgid "white noise" msgstr "" -#: js/SaveInterface.js:411 -#.TRANS: Lilypond is a scripting language for generating sheet music -msgid "Save as Lilypond" +#: js/utils/musicutils.js:1132 +#: js/utils/synthutils.js:60 +#.TRANS: brown noise synthesizer +msgid "brown noise" msgstr "" -#: js/SaveInterface.js:426 -#: js/EnsembleBlocks.js:75 -#: js/EnsembleBlocks.js:154 -#: js/EnsembleBlocks.js:216 -#: js/EnsembleBlocks.js:302 -#: js/EnsembleBlocks.js:348 -#: js/EnsembleBlocks.js:389 -#: js/EnsembleBlocks.js:441 -#: js/EnsembleBlocks.js:490 -#: js/EnsembleBlocks.js:536 -#: js/EnsembleBlocks.js:583 -#: js/EnsembleBlocks.js:637 -#: js/EnsembleBlocks.js:753 -#: js/EnsembleBlocks.js:840 -#: js/EnsembleBlocks.js:899 -#: js/EnsembleBlocks.js:942 -#: js/EnsembleBlocks.js:1212 -#: js/EnsembleBlocks.js:1280 -#.TRANS: default project author when saving as Lilypond -msgid "Mr. Mouse" +#: js/utils/musicutils.js:1133 +#: js/utils/synthutils.js:62 +#.TRANS: pink noise synthesizer +msgid "pink noise" msgstr "" -#: js/SaveInterface.js:573 -msgid "The Lilypond code is copied to clipboard. You can paste it here: " +#: js/utils/musicutils.js:1135 +#: js/utils/synthutils.js:148 +#: js/widgets/rhythmruler.js:2057 +#: js/widgets/rhythmruler.js:2319 +#.TRANS: musical instrument +msgid "snare drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:50 -#: js/RhythmBlockPaletteBlocks.js:232 -#.TRANS: rhythm block -#.TRANS: translate "rhythm1" as rhythm -msgid "rhythm1" +#: js/utils/musicutils.js:1136 +#: js/utils/synthutils.js:150 +#.TRANS: musical instrument +msgid "kick drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:70 -#: js/RhythmBlockPaletteBlocks.js:251 -#: js/RhythmBlockPaletteBlocks.js:484 -#: js/RhythmBlockPaletteBlocks.js:553 -#: js/RhythmBlockPaletteBlocks.js:874 -msgid "number of notes" +#: js/utils/musicutils.js:1137 +#: js/utils/synthutils.js:152 +#.TRANS: musical instrument +msgid "tom tom" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:126 -msgid "polyphonic rhythm" +#: js/utils/musicutils.js:1138 +#: js/utils/synthutils.js:154 +#.TRANS: musical instrument +msgid "floor tom" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:218 -msgid "The Rhythm block is used to generate rhythm patterns." +#: js/utils/musicutils.js:1139 +#: js/utils/synthutils.js:156 +#.TRANS: musical instrument +msgid "bass drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:279 -msgid "1/64 note" +#: js/utils/musicutils.js:1140 +#: js/utils/synthutils.js:158 +#.TRANS: a drum made from an inverted cup +msgid "cup drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:303 -msgid "1/32 note" +#: js/utils/musicutils.js:1141 +#: js/utils/synthutils.js:160 +#.TRANS: musical instrument +msgid "darbuka drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:331 -msgid "1/16 note" +#: js/utils/musicutils.js:1142 +#: js/utils/synthutils.js:164 +#.TRANS: musical instrument +msgid "hi hat" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:359 -msgid "eighth note" +#: js/utils/musicutils.js:1143 +#: js/utils/synthutils.js:166 +#.TRANS: a small metal bell +msgid "ride bell" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:387 -msgid "quarter note" +#: js/utils/musicutils.js:1144 +#: js/utils/synthutils.js:168 +#.TRANS: musical instrument +msgid "cow bell" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:415 -msgid "half note" +#: js/utils/musicutils.js:1145 +msgid "japanese drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:443 -msgid "whole note" +#: js/utils/musicutils.js:1146 +#: js/utils/synthutils.js:174 +#.TRANS: musical instrument +msgid "japanese bell" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:481 -#: js/RhythmBlockPaletteBlocks.js:550 -#: js/RhythmBlockPaletteBlocks.js:601 -#.TRANS: A tuplet is a note value divided into irregular time values. -msgid "tuplet" +#: js/utils/musicutils.js:1147 +#: js/utils/synthutils.js:170 +#.TRANS: musical instrument +msgid "triangle bell" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:767 -msgid "septuplet" +#: js/utils/musicutils.js:1148 +#: js/utils/synthutils.js:172 +#.TRANS: musical instrument +msgid "finger cymbals" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:795 -msgid "quintuplet" +#: js/utils/musicutils.js:1149 +#: js/utils/synthutils.js:176 +#.TRANS: a musically tuned set of bells +msgid "chime" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:823 -msgid "triplet" +#: js/utils/musicutils.js:1150 +#: js/utils/synthutils.js:178 +#.TRANS: a musical instrument +msgid "gong" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:850 -msgid "simple tuplet" +#: js/utils/musicutils.js:1151 +#: js/utils/synthutils.js:180 +#.TRANS: sound effect +msgid "clang" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:860 -msgid "Tuplets are a collection of notes that get scaled to a specific duration." +#: js/utils/musicutils.js:1152 +#: js/utils/synthutils.js:182 +#.TRANS: sound effect +msgid "crash" msgstr "" -#: js/WidgetBlocks.js:71 -#.TRANS: sound envelope (ADSR) -msgid "envelope" +#: js/utils/musicutils.js:1153 +#: js/utils/synthutils.js:184 +#.TRANS: sound effect +msgid "bottle" msgstr "" -#: js/WidgetBlocks.js:79 -#.TRANS: Attack time is the time taken for initial run-up of level from nil to peak, beginning when the key is first pressed. -msgid "attack" +#: js/utils/musicutils.js:1154 +#: js/utils/synthutils.js:186 +#.TRANS: sound effect +msgid "clap" msgstr "" -#: js/WidgetBlocks.js:81 -#.TRANS: Decay time is the time taken for the subsequent run down from the attack level to the designated sustain level. -msgid "decay" +#: js/utils/musicutils.js:1155 +#: js/utils/synthutils.js:188 +#.TRANS: sound effect +msgid "slap" msgstr "" -#: js/WidgetBlocks.js:83 -#.TRANS: Sustain level is the level during the main sequence of the sound's duration, until the key is released. -msgid "sustain" +#: js/utils/musicutils.js:1156 +#: js/utils/synthutils.js:190 +#.TRANS: sound effect +msgid "splash" msgstr "" -#: js/WidgetBlocks.js:85 -#.TRANS: Release time is the time taken for the level to decay from the sustain level to zero after the key is released. -msgid "release" +#: js/utils/musicutils.js:1157 +#: js/utils/synthutils.js:192 +#.TRANS: sound effect +msgid "bubbles" msgstr "" -#: js/WidgetBlocks.js:96 -msgid "Attack value should be from 0 to 100." +#: js/utils/musicutils.js:1158 +#: js/utils/synthutils.js:194 +#.TRANS: sound effect +msgid "raindrop" msgstr "" -#: js/WidgetBlocks.js:99 -msgid "Decay value should be from 0 to 100." +#: js/utils/musicutils.js:1159 +#: js/utils/synthutils.js:196 +#.TRANS: animal sound effect +msgid "cat" msgstr "" -#: js/WidgetBlocks.js:102 -msgid "Sustain value should be from 0 to 100." +#: js/utils/musicutils.js:1160 +#: js/utils/synthutils.js:198 +#.TRANS: animal sound effect +msgid "cricket" msgstr "" -#: js/WidgetBlocks.js:105 -msgid "Release value should be from 0-100." +#: js/utils/musicutils.js:1161 +#: js/utils/synthutils.js:200 +#.TRANS: animal sound effect +msgid "dog" msgstr "" -#: js/WidgetBlocks.js:121 -msgid "You are adding multiple envelope blocks." +#: js/utils/musicutils.js:1163 +#: js/utils/synthutils.js:102 +#.TRANS: musical instrument +msgid "banjo" msgstr "" -#: js/WidgetBlocks.js:144 -#.TRANS: a filter removes some unwanted components from a signal -msgid "filter" +#: js/utils/musicutils.js:1164 +#: js/utils/synthutils.js:104 +#.TRANS: musical instrument +msgid "koto" msgstr "" -#: js/WidgetBlocks.js:149 -#: js/musicutils.js:706 -#: js/musicutils.js:1105 -#.TRANS: highpass filter -msgid "highpass" +#: js/utils/musicutils.js:1165 +#: js/utils/synthutils.js:106 +#.TRANS: musical instrument +msgid "dulcimer" msgstr "" -#: js/WidgetBlocks.js:152 -#: js/ToneBlocks.js:42 -#: js/timbre.js:1558 -#: js/timbre.js:1808 -#.TRANS: type of filter, e.g., lowpass, highpass, etc. -#.TRANS: there are different types (sine, triangle, square...) of oscillators. -msgid "type" +#: js/utils/musicutils.js:1166 +#: js/utils/synthutils.js:108 +#.TRANS: musical instrument +msgid "electric guitar" msgstr "" -#: js/WidgetBlocks.js:154 -#: js/timbre.js:1818 -#.TRANS: rolloff is the steepness of a change in frequency. -msgid "rolloff" +#: js/utils/musicutils.js:1167 +#: js/utils/synthutils.js:110 +#.TRANS: musical instrument +msgid "bassoon" msgstr "" -#: js/WidgetBlocks.js:155 -#: js/MediaBlocks.js:692 -#: js/temperament.js:382 -#: js/temperament.js:417 -#: js/temperament.js:477 -#: js/temperament.js:485 -#: js/temperament.js:1348 -#: js/timbre.js:1842 -msgid "frequency" +#: js/utils/musicutils.js:1168 +#: js/utils/synthutils.js:112 +#.TRANS: musical instrument +msgid "celeste" msgstr "" -#: js/WidgetBlocks.js:179 -#.TRANS: rolloff is the steepness of a change in frequency. -msgid "Rolloff value should be either -12, -24, -48, or -96 decibels/octave." +#: js/utils/musicutils.js:1170 +#: js/widgets/temperament.js:787 +#.TRANS: musical temperament +msgid "equal" msgstr "" -#: js/WidgetBlocks.js:211 -msgid "The Temperament tool is used to define custom tuning." +#: js/utils/musicutils.js:1172 +#.TRANS: musical temperament +msgid "Pythagorean" msgstr "" -#: js/WidgetBlocks.js:277 -#: js/sampler.js:329 -msgid "Upload a sample and adjust its pitch center." +#: js/utils/musicutils.js:1174 +#.TRANS: musical temperament +msgid "just intonation" msgstr "" -#: js/WidgetBlocks.js:284 -#.TRANS: the speed at music is should be played. -msgid "sampler" +#: js/utils/musicutils.js:1176 +#.TRANS: musical temperament +msgid "meantone" msgstr "" -#: js/WidgetBlocks.js:329 -#: js/WidgetBlocks.js:334 -#: js/IntervalsBlocks.js:928 -#: js/VolumeBlocks.js:411 -#: js/ToneBlocks.js:946 -#: js/VolumeActions.js:218 -#: js/musicutils.js:704 -#: js/musicutils.js:755 -#: js/musicutils.js:798 -#: js/musicutils.js:820 -#: js/musicutils.js:1136 -#: js/synthutils.js:118 -#: js/modewidget.js:919 -#.TRANS: customize voice -msgid "custom" +#: js/utils/musicutils.js:1193 +msgid "major 7th" msgstr "" -#: js/WidgetBlocks.js:432 -msgid "The Meter block opens a tool to select strong beats for the meter." +#: js/utils/musicutils.js:1194 +msgid "minor 7th" msgstr "" -#: js/WidgetBlocks.js:473 -msgid "The oscilloscope block opens a tool to visualize waveforms." +#: js/utils/musicutils.js:1195 +msgid "dominant 7th" msgstr "" -#: js/WidgetBlocks.js:478 -msgid "oscilloscope" +#: js/utils/musicutils.js:1196 +msgid "minor-major 7th" msgstr "" -#: js/WidgetBlocks.js:530 -msgid "The Custom mode block opens a tool to explore musical mode (the spacing of the notes in a scale)." +#: js/utils/musicutils.js:1197 +msgid "fully-diminished 7th" msgstr "" -#: js/WidgetBlocks.js:536 -#.TRANS: musical mode is the pattern of half-steps in an octave, e.g., Major or Minor modes -msgid "custom mode" +#: js/utils/musicutils.js:1198 +msgid "half-diminished 7th" msgstr "" -#: js/WidgetBlocks.js:570 -msgid "The Tempo block opens a metronome to visualize the beat." +#: js/utils/musicutils.js:1557 +#: js/utils/musicutils.js:1569 +msgid "Equal (12EDO)" msgstr "" -#: js/WidgetBlocks.js:617 -msgid "The Arpeggio Widget is used to compose chord sequences." +#: js/utils/musicutils.js:1558 +#: js/utils/musicutils.js:1570 +msgid "5-limit Just Intonation" msgstr "" -#: js/WidgetBlocks.js:623 -#: js/IntervalsBlocks.js:683 -msgid "arpeggio" +#: js/utils/musicutils.js:1559 +#: js/utils/musicutils.js:1571 +msgid "Pythagorean (3-limit JI)" msgstr "" -#: js/WidgetBlocks.js:677 -msgid "The Pitch drum matrix is used to map pitches to drum sounds." +#: js/utils/musicutils.js:1560 +#: js/utils/musicutils.js:1561 +#: js/utils/musicutils.js:1572 +#: js/utils/musicutils.js:1573 +msgid "Meantone" msgstr "" -#: js/WidgetBlocks.js:682 -#.TRANS: makes a mapping between pitches and drum sounds -msgid "pitch-drum mapper" +#: js/utils/musicutils.js:1574 +msgid "Custom" msgstr "" -#: js/WidgetBlocks.js:724 -msgid "You must have at least one pitch block and one drum block in the matrix." +#: js/utils/musicutils.js:5387 +#: js/utils/musicutils.js:5430 +msgid "current" msgstr "" -#: js/WidgetBlocks.js:746 -msgid "The Pitch slider tool to is used to generate pitches at selected frequencies." +#: js/utils/musicutils.js:5390 +#: js/utils/musicutils.js:5421 +msgid "next" msgstr "" -#: js/WidgetBlocks.js:751 -#.TRANS: widget to generate pitches using a slider -msgid "pitch slider" +#: js/utils/musicutils.js:5393 +#: js/utils/musicutils.js:5426 +msgid "previous" msgstr "" -#: js/WidgetBlocks.js:788 -msgid "chromatic keyboard" +#: js/utils/synthutils.js:120 +#.TRANS: simple monotone synthesizer +msgid "simple-2" msgstr "" -#: js/WidgetBlocks.js:815 -#: js/WidgetBlocks.js:874 -#.TRANS: widget to generate pitches using a slider -msgid "music keyboard" +#: js/utils/synthutils.js:122 +#.TRANS: simple monotone synthesizer +msgid "simple-3" msgstr "" -#: js/WidgetBlocks.js:859 -#: js/WidgetBlocks.js:866 -msgid "The Music keyboard block opens a piano keyboard that can be used to create notes." +#: js/utils/synthutils.js:124 +#.TRANS: simple monotone synthesizer +msgid "simple-4" msgstr "" -#: js/WidgetBlocks.js:910 -msgid "The Pitch staircase tool to is used to generate pitches from a given ratio." +#: js/utils/synthutils.js:162 +#.TRANS: musical instrument +msgid "taiko" msgstr "" -#: js/WidgetBlocks.js:917 -#.TRANS: generate a progressive sequence of pitches -msgid "pitch staircase" +#: js/blocks/ActionBlocks.js:58 +msgid "The Return block will return a value from an action." msgstr "" -#: js/WidgetBlocks.js:982 -msgid "The Rhythm Maker block opens a tool to create drum machines." +#: js/blocks/ActionBlocks.js:75 +msgid "return" msgstr "" -#: js/WidgetBlocks.js:1036 -msgid "G major scale" +#: js/blocks/ActionBlocks.js:128 +msgid "The Return to URL block will return a value to a webpage." msgstr "" -#: js/WidgetBlocks.js:1064 -msgid "C major scale" +#: js/blocks/ActionBlocks.js:145 +msgid "return to URL" msgstr "" -#: js/WidgetBlocks.js:1097 -msgid "The Phrase Maker block opens a tool to create musical phrases." +#: js/blocks/ActionBlocks.js:233 +#: js/blocks/ActionBlocks.js:290 +#: js/blocks/ActionBlocks.js:501 +#: js/blocks/ActionBlocks.js:688 +msgid "The Calculate block returns a value calculated by an action." msgstr "" -#: js/WidgetBlocks.js:1104 -#.TRANS: assigns pitch to a sequence of beats to generate a melody -msgid "phrase maker" +#: js/blocks/ActionBlocks.js:251 +#: js/blocks/ActionBlocks.js:517 +#: js/blocks/ActionBlocks.js:707 +msgid "calculate" msgstr "" -#: js/WidgetBlocks.js:1168 -msgid "You must have at least one pitch block and one rhythm block in the matrix." +#: js/blocks/ActionBlocks.js:376 +#: js/blocks/ActionBlocks.js:593 +#: js/blocks/ActionBlocks.js:942 +#: js/blocks/ActionBlocks.js:1389 +#.TRANS: do is the do something or take an action. +msgid "The Do block is used to initiate an action." msgstr "" -#: js/WidgetBlocks.js:1220 -msgid "The Status block opens a tool for inspecting the status of Music Blocks as it is running." +#: js/blocks/ActionBlocks.js:390 +#: js/blocks/ActionBlocks.js:610 +#: js/blocks/ActionBlocks.js:959 +#: js/blocks/ActionBlocks.js:1048 +#: js/blocks/MeterBlocks.js:769 +msgid "do1" msgstr "" -#: js/IntervalsBlocks.js:45 -msgid "set temperament" +#: js/blocks/ActionBlocks.js:390 +#: js/blocks/ActionBlocks.js:610 +#: js/blocks/ActionBlocks.js:959 +#: js/blocks/ActionBlocks.js:1048 +#: js/blocks/FlowBlocks.js:742 +#: js/blocks/FlowBlocks.js:822 +#: js/blocks/MeterBlocks.js:769 +msgid "do" msgstr "" -#: js/IntervalsBlocks.js:63 -#: js/MediaBlocks.js:746 -#: js/PitchBlocks.js:657 -#: js/PitchBlocks.js:933 -#: js/PitchBlocks.js:972 -#: js/PitchBlocks.js:1005 -#: js/PitchBlocks.js:1166 -#: js/PitchBlocks.js:1679 -#: js/PitchBlocks.js:1720 -#: js/PitchBlocks.js:1827 -#: js/ToneBlocks.js:1025 -#.TRANS: adjusts the shift up or down by one octave (twelve half-steps in the interval between two notes, one having twice or half the frequency in Hz of the other.) -msgid "octave" +#: js/blocks/ActionBlocks.js:791 +#: js/blocks/ActionBlocks.js:865 +msgid "The Arg block contains the value of an argument passed to an action." msgstr "" -#: js/IntervalsBlocks.js:99 -msgid "The Temperament name block is used to select a tuning method." +#: js/blocks/ActionBlocks.js:806 +#: js/blocks/ActionBlocks.js:878 +msgid "arg" msgstr "" -#: js/IntervalsBlocks.js:161 -msgid "doubly" +#: js/blocks/ActionBlocks.js:836 +#: js/blocks/ActionBlocks.js:900 +#: js/blocks/ActionBlocks.js:908 +msgid "Invalid argument" msgstr "" -#: js/IntervalsBlocks.js:166 -msgid "The Doubly block will double the size of an interval." +#: js/blocks/ActionBlocks.js:944 +msgid "In the example, it is used with the One of block to choose a random phase." msgstr "" -#: js/IntervalsBlocks.js:262 -msgid "interval number" +#: js/blocks/ActionBlocks.js:1019 +#: js/blocks/ActionBlocks.js:1026 +msgid "The Listen block is used to listen for an event such as a mouse click." msgstr "" -#: js/IntervalsBlocks.js:330 -#.TRANS: measure the distance between two pitches in semi-tones -msgid "semi-tone interval measure" +#: js/blocks/ActionBlocks.js:1028 +msgid "When the event happens, an action is taken." msgstr "" -#: js/IntervalsBlocks.js:397 -#: js/IntervalsBlocks.js:513 -msgid "You must use two pitch blocks when measuring an interval." +#: js/blocks/ActionBlocks.js:1045 +msgid "on" msgstr "" -#: js/IntervalsBlocks.js:439 -msgid "The Scalar interval block measures the distance between two notes in the current key and mode." +#: js/blocks/ActionBlocks.js:1048 +#: js/blocks/ActionBlocks.js:1049 +#: js/blocks/ActionBlocks.js:1153 +msgid "event" msgstr "" -#: js/IntervalsBlocks.js:445 -#.TRANS: measure the distance between two pitches in steps of musical scale -msgid "scalar interval measure" +#: js/blocks/ActionBlocks.js:1133 +msgid "The Broadcast block is used to trigger an event." msgstr "" -#: js/IntervalsBlocks.js:592 -#: js/musicutils.js:637 -#: js/musicutils.js:908 -#.TRANS: perfect is a music term related to intervals -msgid "perfect" +#: js/blocks/ActionBlocks.js:1151 +msgid "broadcast" msgstr "" -#: js/IntervalsBlocks.js:621 -msgid "In the figure, we add sol# to sol." +#: js/blocks/ActionBlocks.js:1208 +msgid "Each Start block is a separate voice." msgstr "" -#: js/IntervalsBlocks.js:627 -#: js/OrnamentBlocks.js:220 -#.TRANS: calculate a relative step between notes based on semi-tones -msgid "semi-tone interval" +#: js/blocks/ActionBlocks.js:1304 +msgid "It is often used for storing a phrase of music that is repeated." msgstr "" -#: js/IntervalsBlocks.js:676 -msgid "The output of the example is: do, mi, sol, sol, ti, mi" +#: js/blocks/ActionBlocks.js:1495 +msgid "define temperament" msgstr "" -#: js/IntervalsBlocks.js:735 -msgid "The Chord block calculates common chords." +#: js/blocks/BooleanBlocks.js:44 +msgid "The Not block is the logical not operator." msgstr "" -#: js/IntervalsBlocks.js:737 -msgid "In the figure, we generate a C-major chord." +#: js/blocks/BooleanBlocks.js:62 +msgid "not" msgstr "" -#: js/IntervalsBlocks.js:742 -msgid "chord" +#: js/blocks/BooleanBlocks.js:134 +msgid "The And block is the logical and operator." msgstr "" -#: js/IntervalsBlocks.js:794 -msgid "The Ratio Interval block calculates an interval based on a ratio." +#: js/blocks/BooleanBlocks.js:152 +msgid "and" msgstr "" -#: js/IntervalsBlocks.js:799 -msgid "ratio interval" +#: js/blocks/BooleanBlocks.js:218 +msgid "The Or block is the logical or operator." msgstr "" -#: js/IntervalsBlocks.js:868 -msgid "In the figure, we add la to sol." +#: js/blocks/BooleanBlocks.js:236 +msgid "or" msgstr "" -#: js/IntervalsBlocks.js:924 -#.TRANS: define a custom mode -msgid "define mode" +#: js/blocks/BooleanBlocks.js:302 +msgid "The XOR block is the logical XOR operator." msgstr "" -#: js/IntervalsBlocks.js:977 -msgid "movable Do" +#: js/blocks/BooleanBlocks.js:320 +msgid "xor" msgstr "" -#: js/IntervalsBlocks.js:1028 -#.TRANS: mode length is the number of notes in the mode, e.g., 7 for major and minor scales; 12 for chromatic scales -msgid "mode length" +#: js/blocks/BooleanBlocks.js:808 +msgid "The Equal block returns True if the two numbers are equal." msgstr "" -#: js/IntervalsBlocks.js:1037 -msgid "The Mode length block is the number of notes in the current scale." +#: js/blocks/BooleanBlocks.js:909 +msgid "The Not-equal-to block returns True if the two numbers are not equal to each other." msgstr "" -#: js/IntervalsBlocks.js:1039 -msgid "Most Western scales have 7 notes." +#: js/blocks/BooleanBlocks.js:1008 +msgid "The Boolean block is used to specify true or false." msgstr "" -#: js/IntervalsBlocks.js:1088 -#.TRANS: the mode in music is 'major', 'minor', etc. -msgid "current mode" +#: js/blocks/BoxesBlocks.js:53 +#: js/blocks/BoxesBlocks.js:59 +msgid "The Add-to block is used to add to the value stored in a box." msgstr "" -#: js/IntervalsBlocks.js:1141 -#.TRANS: the key is a group of pitches with which a music composition is created -msgid "current key" +#: js/blocks/BoxesBlocks.js:61 +msgid "It can also be used with other blocks such as Color and Pen size." msgstr "" -#: js/IntervalsBlocks.js:1193 -#: js/IntervalsBlocks.js:1238 -#.TRANS: set the key and mode, e.g. C Major -msgid "set key" +#: js/blocks/BoxesBlocks.js:73 +msgid "add" msgstr "" -#: js/IntervalsBlocks.js:1247 -#: js/IntervalsBlocks.js:1253 -msgid "The Set key block is used to set the key and mode," +#: js/blocks/BoxesBlocks.js:75 +#: js/widgets/temperament.js:857 +msgid "to" msgstr "" -#: js/IntervalsBlocks.js:1253 -msgid "eg C Major" +#: js/blocks/BoxesBlocks.js:75 +#: js/blocks/BoxesBlocks.js:595 +#: js/blocks/HeapBlocks.js:544 +msgid "value1" msgstr "" -#: js/IntervalsBlocks.js:1266 -#: js/DictBlocks.js:215 -#: js/DictBlocks.js:216 -#: js/DictBlocks.js:289 -#: js/DictBlocks.js:290 -#: js/DictBlocks.js:357 -#: js/DictBlocks.js:430 -#: js/DictBlocks.js:431 -#.TRANS: key, e.g., C in C Major -msgid "key" +#: js/blocks/BoxesBlocks.js:118 +msgid "Block does not support incrementing." msgstr "" -#: js/ActionBlocks.js:58 -msgid "The Return block will return a value from an action." +#: js/blocks/BoxesBlocks.js:152 +msgid "The Add-1-to block adds one to the value stored in a box." msgstr "" -#: js/ActionBlocks.js:75 -msgid "return" +#: js/blocks/BoxesBlocks.js:163 +msgid "add 1 to" msgstr "" -#: js/ActionBlocks.js:128 -msgid "The Return to URL block will return a value to a webpage." +#: js/blocks/BoxesBlocks.js:211 +msgid "The Subtract-1-from block subtracts one from the value stored in a box." msgstr "" -#: js/ActionBlocks.js:145 -msgid "return to URL" +#: js/blocks/BoxesBlocks.js:222 +msgid "subtract 1 from" msgstr "" -#: js/ActionBlocks.js:233 -#: js/ActionBlocks.js:290 -#: js/ActionBlocks.js:501 -#: js/ActionBlocks.js:688 -msgid "The Calculate block returns a value calculated by an action." +#: js/blocks/BoxesBlocks.js:270 +#: js/blocks/BoxesBlocks.js:387 +msgid "The Box block returns the value stored in a box." msgstr "" -#: js/ActionBlocks.js:251 -#: js/ActionBlocks.js:517 -#: js/ActionBlocks.js:707 -msgid "calculate" +#: js/blocks/BoxesBlocks.js:500 +#: js/blocks/BoxesBlocks.js:576 +msgid "The Store in block will store a value in a box." msgstr "" -#: js/ActionBlocks.js:376 -#: js/ActionBlocks.js:593 -#: js/ActionBlocks.js:942 -#: js/ActionBlocks.js:1389 -#.TRANS: do is the do something or take an action. -msgid "The Do block is used to initiate an action." +#: js/blocks/BoxesBlocks.js:595 +#: js/blocks/EnsembleBlocks.js:391 +#: js/blocks/EnsembleBlocks.js:402 +msgid "name1" msgstr "" -#: js/ActionBlocks.js:390 -#: js/ActionBlocks.js:610 -#: js/ActionBlocks.js:959 -#: js/ActionBlocks.js:1048 -#: js/MeterBlocks.js:769 -msgid "do1" +#: js/blocks/BoxesBlocks.js:652 +msgid "The Box2 block returns the value stored in Box2." msgstr "" -#: js/ActionBlocks.js:390 -#: js/ActionBlocks.js:610 -#: js/ActionBlocks.js:959 -#: js/ActionBlocks.js:1048 -#: js/FlowBlocks.js:742 -#: js/FlowBlocks.js:822 -#: js/MeterBlocks.js:769 -msgid "do" +#: js/blocks/BoxesBlocks.js:703 +msgid "The Store in Box2 block is used to store a value in Box2." msgstr "" -#: js/ActionBlocks.js:791 -#: js/ActionBlocks.js:865 -msgid "The Arg block contains the value of an argument passed to an action." +#: js/blocks/BoxesBlocks.js:715 +msgid "store in box2" msgstr "" -#: js/ActionBlocks.js:806 -#: js/ActionBlocks.js:878 -msgid "arg" +#: js/blocks/BoxesBlocks.js:761 +msgid "The Box1 block returns the value stored in Box1." msgstr "" -#: js/ActionBlocks.js:836 -#: js/ActionBlocks.js:900 -#: js/ActionBlocks.js:908 -msgid "Invalid argument" +#: js/blocks/BoxesBlocks.js:812 +msgid "The Store in Box1 block is used to store a value in Box1." msgstr "" -#: js/ActionBlocks.js:944 -msgid "In the example, it is used with the One of block to choose a random phase." +#: js/blocks/BoxesBlocks.js:826 +msgid "store in box1" msgstr "" -#: js/ActionBlocks.js:1019 -#: js/ActionBlocks.js:1026 -msgid "The Listen block is used to listen for an event such as a mouse click." +#: js/blocks/DictBlocks.js:77 +msgid "show dictionary" msgstr "" -#: js/ActionBlocks.js:1028 -msgid "When the event happens, an action is taken." +#: js/blocks/DictBlocks.js:80 +#: js/blocks/DictBlocks.js:145 +#: js/blocks/DictBlocks.js:216 +#: js/blocks/DictBlocks.js:290 +#: js/blocks/ProgramBlocks.js:396 +#: js/blocks/ProgramBlocks.js:501 +#: js/blocks/ProgramBlocks.js:664 +msgid "My Dictionary" msgstr "" -#: js/ActionBlocks.js:1045 -msgid "on" +#: js/blocks/DictBlocks.js:129 +msgid "The Dictionary block returns a dictionary." msgstr "" -#: js/ActionBlocks.js:1048 -#: js/ActionBlocks.js:1049 -#: js/ActionBlocks.js:1153 -msgid "event" +#: js/blocks/DictBlocks.js:197 +#: js/blocks/DictBlocks.js:339 +msgid "The Get-dict block returns a value in the dictionary for a specified key." msgstr "" -#: js/ActionBlocks.js:1133 -msgid "The Broadcast block is used to trigger an event." +#: js/blocks/DictBlocks.js:212 +#: js/blocks/DictBlocks.js:354 +#.TRANS: retrieve a value from the dictionary with a given key +msgid "get value" msgstr "" -#: js/ActionBlocks.js:1151 -msgid "broadcast" +#: js/blocks/DictBlocks.js:215 +#: js/blocks/DictBlocks.js:216 +#: js/blocks/DictBlocks.js:289 +#: js/blocks/DictBlocks.js:290 +#: js/blocks/DictBlocks.js:357 +#: js/blocks/DictBlocks.js:430 +#: js/blocks/DictBlocks.js:431 +msgid "key2" msgstr "" -#: js/ActionBlocks.js:1208 -msgid "Each Start block is a separate voice." +#: js/blocks/DictBlocks.js:215 +#: js/blocks/DictBlocks.js:216 +#: js/blocks/DictBlocks.js:289 +#: js/blocks/DictBlocks.js:290 +#: js/blocks/DictBlocks.js:357 +#: js/blocks/DictBlocks.js:430 +#: js/blocks/DictBlocks.js:431 +#: js/blocks/IntervalsBlocks.js:1462 +#.TRANS: key, e.g., C in C Major +msgid "key" msgstr "" -#: js/ActionBlocks.js:1304 -msgid "It is often used for storing a phrase of music that is repeated." +#: js/blocks/DictBlocks.js:271 +#: js/blocks/DictBlocks.js:411 +msgid "The Set-dict block sets a value in the dictionary for a specified key." msgstr "" -#: js/ActionBlocks.js:1495 -msgid "define temperament" +#: js/blocks/DictBlocks.js:286 +#: js/blocks/DictBlocks.js:427 +#.TRANS: set a value in the dictionary for a given key +msgid "set value" msgstr "" -#: js/EnsembleBlocks.js:66 +#: js/blocks/EnsembleBlocks.js:66 msgid "mouse index heap" msgstr "" -#: js/EnsembleBlocks.js:68 +#: js/blocks/EnsembleBlocks.js:68 msgid "The Mouse index heap block returns a value in the heap at a specified location for a specified mouse." msgstr "" -#: js/EnsembleBlocks.js:77 -#: js/EnsembleBlocks.js:1080 +#: js/blocks/EnsembleBlocks.js:77 +#: js/blocks/EnsembleBlocks.js:1080 msgid "mouse name" msgstr "" -#: js/EnsembleBlocks.js:77 -#: js/EnsembleBlocks.js:92 -#: js/HeapBlocks.js:544 +#: js/blocks/EnsembleBlocks.js:77 +#: js/blocks/EnsembleBlocks.js:92 +#: js/blocks/HeapBlocks.js:544 #.TRANS: value1 is a numeric value (JAPANESE ONLY) msgid "index" msgstr "" -#: js/EnsembleBlocks.js:80 +#: js/blocks/EnsembleBlocks.js:80 msgid "turtle index heap" msgstr "" -#: js/EnsembleBlocks.js:82 +#: js/blocks/EnsembleBlocks.js:82 msgid "The Turtle index heap block returns a value in the heap at a specified location for a specified turtle." msgstr "" -#: js/EnsembleBlocks.js:90 -#: js/EnsembleBlocks.js:167 -#: js/EnsembleBlocks.js:230 -#: js/EnsembleBlocks.js:316 -#: js/EnsembleBlocks.js:362 -#: js/EnsembleBlocks.js:400 -#: js/EnsembleBlocks.js:454 -#: js/EnsembleBlocks.js:504 -#: js/EnsembleBlocks.js:550 -#: js/EnsembleBlocks.js:597 -#: js/EnsembleBlocks.js:651 -#: js/EnsembleBlocks.js:763 -#: js/EnsembleBlocks.js:854 -#: js/EnsembleBlocks.js:915 -#: js/EnsembleBlocks.js:955 -#: js/EnsembleBlocks.js:1219 -#: js/EnsembleBlocks.js:1293 +#: js/blocks/EnsembleBlocks.js:90 +#: js/blocks/EnsembleBlocks.js:167 +#: js/blocks/EnsembleBlocks.js:230 +#: js/blocks/EnsembleBlocks.js:316 +#: js/blocks/EnsembleBlocks.js:362 +#: js/blocks/EnsembleBlocks.js:400 +#: js/blocks/EnsembleBlocks.js:454 +#: js/blocks/EnsembleBlocks.js:504 +#: js/blocks/EnsembleBlocks.js:550 +#: js/blocks/EnsembleBlocks.js:597 +#: js/blocks/EnsembleBlocks.js:651 +#: js/blocks/EnsembleBlocks.js:763 +#: js/blocks/EnsembleBlocks.js:854 +#: js/blocks/EnsembleBlocks.js:915 +#: js/blocks/EnsembleBlocks.js:955 +#: js/blocks/EnsembleBlocks.js:1219 +#: js/blocks/EnsembleBlocks.js:1293 #.TRANS: Yertle is the name of a turtle. msgid "Yertle" msgstr "" -#: js/EnsembleBlocks.js:92 -#: js/EnsembleBlocks.js:1089 +#: js/blocks/EnsembleBlocks.js:92 +#: js/blocks/EnsembleBlocks.js:1089 msgid "turtle name" msgstr "" -#: js/EnsembleBlocks.js:122 -#: js/EnsembleBlocks.js:1197 -#: js/HeapBlocks.js:474 -#: js/HeapBlocks.js:572 +#: js/blocks/EnsembleBlocks.js:122 +#: js/blocks/EnsembleBlocks.js:1197 +#: js/blocks/HeapBlocks.js:474 +#: js/blocks/HeapBlocks.js:572 msgid "Index must be > 0." msgstr "" -#: js/EnsembleBlocks.js:127 -#: js/HeapBlocks.js:479 -#: js/HeapBlocks.js:577 +#: js/blocks/EnsembleBlocks.js:127 +#: js/blocks/HeapBlocks.js:479 +#: js/blocks/HeapBlocks.js:577 msgid "Maximum heap size is 1000." msgstr "" -#: js/EnsembleBlocks.js:145 +#: js/blocks/EnsembleBlocks.js:145 msgid "stop mouse" msgstr "" -#: js/EnsembleBlocks.js:147 +#: js/blocks/EnsembleBlocks.js:147 msgid "The Stop mouse block stops the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:158 +#: js/blocks/EnsembleBlocks.js:158 msgid "stop turtle" msgstr "" -#: js/EnsembleBlocks.js:160 +#: js/blocks/EnsembleBlocks.js:160 msgid "The Stop turtle block stops the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:184 -#: js/EnsembleBlocks.js:247 -#: js/EnsembleBlocks.js:413 -#: js/EnsembleBlocks.js:468 -#: js/EnsembleBlocks.js:706 -#: js/EnsembleBlocks.js:808 -#: js/EnsembleBlocks.js:870 -#: js/EnsembleBlocks.js:1190 -#: js/EnsembleBlocks.js:1253 +#: js/blocks/EnsembleBlocks.js:184 +#: js/blocks/EnsembleBlocks.js:247 +#: js/blocks/EnsembleBlocks.js:413 +#: js/blocks/EnsembleBlocks.js:468 +#: js/blocks/EnsembleBlocks.js:706 +#: js/blocks/EnsembleBlocks.js:808 +#: js/blocks/EnsembleBlocks.js:870 +#: js/blocks/EnsembleBlocks.js:1190 +#: js/blocks/EnsembleBlocks.js:1253 msgid "Cannot find mouse" msgstr "" -#: js/EnsembleBlocks.js:186 -#: js/EnsembleBlocks.js:249 -#: js/EnsembleBlocks.js:415 -#: js/EnsembleBlocks.js:470 -#: js/EnsembleBlocks.js:708 -#: js/EnsembleBlocks.js:810 -#: js/EnsembleBlocks.js:872 -#: js/EnsembleBlocks.js:1192 -#: js/EnsembleBlocks.js:1255 +#: js/blocks/EnsembleBlocks.js:186 +#: js/blocks/EnsembleBlocks.js:249 +#: js/blocks/EnsembleBlocks.js:415 +#: js/blocks/EnsembleBlocks.js:470 +#: js/blocks/EnsembleBlocks.js:708 +#: js/blocks/EnsembleBlocks.js:810 +#: js/blocks/EnsembleBlocks.js:872 +#: js/blocks/EnsembleBlocks.js:1192 +#: js/blocks/EnsembleBlocks.js:1255 msgid "Cannot find turtle" msgstr "" -#: js/EnsembleBlocks.js:206 +#: js/blocks/EnsembleBlocks.js:206 msgid "start mouse" msgstr "" -#: js/EnsembleBlocks.js:209 +#: js/blocks/EnsembleBlocks.js:209 msgid "The Start mouse block starts the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:220 +#: js/blocks/EnsembleBlocks.js:220 msgid "start turtle" msgstr "" -#: js/EnsembleBlocks.js:223 +#: js/blocks/EnsembleBlocks.js:223 msgid "The Start turtle block starts the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:256 +#: js/blocks/EnsembleBlocks.js:256 msgid "Mouse is already running." msgstr "" -#: js/EnsembleBlocks.js:258 +#: js/blocks/EnsembleBlocks.js:258 msgid "Turtle is already running." msgstr "" -#: js/EnsembleBlocks.js:282 +#: js/blocks/EnsembleBlocks.js:282 msgid "Cannot find start block" msgstr "" -#: js/EnsembleBlocks.js:292 +#: js/blocks/EnsembleBlocks.js:292 #.TRANS: pen color for this mouse msgid "mouse color" msgstr "" -#: js/EnsembleBlocks.js:294 +#: js/blocks/EnsembleBlocks.js:294 msgid "The Mouse color block returns the pen color of the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:306 +#: js/blocks/EnsembleBlocks.js:306 #.TRANS: pen color for this turtle msgid "turtle color" msgstr "" -#: js/EnsembleBlocks.js:308 +#: js/blocks/EnsembleBlocks.js:308 msgid "The Turtle color block returns the pen color of the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:338 +#: js/blocks/EnsembleBlocks.js:338 #.TRANS: heading (compass direction) for this mouse msgid "mouse heading" msgstr "" -#: js/EnsembleBlocks.js:340 +#: js/blocks/EnsembleBlocks.js:340 msgid "The Mouse heading block returns the heading of the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:352 +#: js/blocks/EnsembleBlocks.js:352 #.TRANS: heading (compass direction) for this turtle msgid "turtle heading" msgstr "" -#: js/EnsembleBlocks.js:354 +#: js/blocks/EnsembleBlocks.js:354 msgid "The Turtle heading block returns the heading of the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:384 -#: js/EnsembleBlocks.js:439 +#: js/blocks/EnsembleBlocks.js:384 +#: js/blocks/EnsembleBlocks.js:439 #.TRANS: set xy position for this mouse msgid "set mouse" msgstr "" -#: js/EnsembleBlocks.js:391 -#: js/EnsembleBlocks.js:402 -#: js/BoxesBlocks.js:595 -msgid "name1" -msgstr "" - -#: js/EnsembleBlocks.js:391 -#: js/EnsembleBlocks.js:402 -#: js/ProgramBlocks.js:881 -#: js/GraphicsBlocks.js:235 -#: js/GraphicsBlocks.js:313 -#: js/GraphicsBlocks.js:436 -#: js/GraphicsBlocks.js:487 -#: js/GraphicsBlocks.js:534 -#: js/GraphicsBlocks.js:750 +#: js/blocks/EnsembleBlocks.js:391 +#: js/blocks/EnsembleBlocks.js:402 +#: js/blocks/GraphicsBlocks.js:235 +#: js/blocks/GraphicsBlocks.js:313 +#: js/blocks/GraphicsBlocks.js:436 +#: js/blocks/GraphicsBlocks.js:487 +#: js/blocks/GraphicsBlocks.js:534 +#: js/blocks/GraphicsBlocks.js:750 +#: js/blocks/ProgramBlocks.js:881 msgid "x" msgstr "" -#: js/EnsembleBlocks.js:391 -#: js/EnsembleBlocks.js:402 -#: js/ProgramBlocks.js:881 -#: js/GraphicsBlocks.js:149 -#: js/GraphicsBlocks.js:313 -#: js/GraphicsBlocks.js:436 -#: js/GraphicsBlocks.js:487 -#: js/GraphicsBlocks.js:534 -#: js/GraphicsBlocks.js:750 +#: js/blocks/EnsembleBlocks.js:391 +#: js/blocks/EnsembleBlocks.js:402 +#: js/blocks/GraphicsBlocks.js:149 +#: js/blocks/GraphicsBlocks.js:313 +#: js/blocks/GraphicsBlocks.js:436 +#: js/blocks/GraphicsBlocks.js:487 +#: js/blocks/GraphicsBlocks.js:534 +#: js/blocks/GraphicsBlocks.js:750 +#: js/blocks/ProgramBlocks.js:881 msgid "y" msgstr "" -#: js/EnsembleBlocks.js:395 -#: js/EnsembleBlocks.js:452 +#: js/blocks/EnsembleBlocks.js:395 +#: js/blocks/EnsembleBlocks.js:452 #.TRANS: set xy position for this turtle msgid "set turtle" msgstr "" -#: js/EnsembleBlocks.js:433 +#: js/blocks/EnsembleBlocks.js:433 msgid "The Set mouse block sends a stack of blocks to be run by the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:446 +#: js/blocks/EnsembleBlocks.js:446 msgid "The Set turtle block sends a stack of blocks to be run by the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:480 +#: js/blocks/EnsembleBlocks.js:480 #.TRANS: y position for this mouse msgid "mouse y" msgstr "" -#: js/EnsembleBlocks.js:482 +#: js/blocks/EnsembleBlocks.js:482 msgid "The Y mouse block returns the Y position of the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:494 +#: js/blocks/EnsembleBlocks.js:494 #.TRANS: y position for this turtle msgid "turtle y" msgstr "" -#: js/EnsembleBlocks.js:496 +#: js/blocks/EnsembleBlocks.js:496 msgid "The Y turtle block returns the Y position of the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:526 +#: js/blocks/EnsembleBlocks.js:526 #.TRANS: x position for this mouse msgid "mouse x" msgstr "" -#: js/EnsembleBlocks.js:528 +#: js/blocks/EnsembleBlocks.js:528 msgid "The X mouse block returns the X position of the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:540 +#: js/blocks/EnsembleBlocks.js:540 #.TRANS: x position for this turtle msgid "turtle x" msgstr "" -#: js/EnsembleBlocks.js:542 +#: js/blocks/EnsembleBlocks.js:542 msgid "The X turtle block returns the X position of the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:573 +#: js/blocks/EnsembleBlocks.js:573 #.TRANS: notes played by this mouse msgid "mouse notes played" msgstr "" -#: js/EnsembleBlocks.js:575 +#: js/blocks/EnsembleBlocks.js:575 msgid "The Mouse elapse notes block returns the number of notes played by the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:587 +#: js/blocks/EnsembleBlocks.js:587 #.TRANS: notes played by this turtle msgid "turtle notes played" msgstr "" -#: js/EnsembleBlocks.js:589 +#: js/blocks/EnsembleBlocks.js:589 msgid "The Turtle elapse notes block returns the number of notes played by the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:627 +#: js/blocks/EnsembleBlocks.js:627 #.TRANS: convert current note for this turtle to piano key (1-88) msgid "mouse pitch number" msgstr "" -#: js/EnsembleBlocks.js:629 +#: js/blocks/EnsembleBlocks.js:629 msgid "The Mouse pitch block returns the current pitch number being played by the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:641 +#: js/blocks/EnsembleBlocks.js:641 #.TRANS: convert current note for this turtle to piano key (1-88) msgid "turtle pitch number" msgstr "" -#: js/EnsembleBlocks.js:643 -msgid "The Turrle pitch block returns the current pitch number being played by the specified turtle." +#: js/blocks/EnsembleBlocks.js:643 +msgid "The Turtle pitch block returns the current pitch number being played by the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:747 -#: js/EnsembleBlocks.js:819 +#: js/blocks/EnsembleBlocks.js:747 +#: js/blocks/EnsembleBlocks.js:819 #.TRANS: note value is the duration of the note played by this mouse msgid "mouse note value" msgstr "" -#: js/EnsembleBlocks.js:757 +#: js/blocks/EnsembleBlocks.js:757 #.TRANS: note value is the duration of the note played by this turtle msgid "turtle note value" msgstr "" -#: js/EnsembleBlocks.js:830 +#: js/blocks/EnsembleBlocks.js:830 #.TRANS: sync is short for synchronization msgid "mouse sync" msgstr "" -#: js/EnsembleBlocks.js:832 +#: js/blocks/EnsembleBlocks.js:832 msgid "The Mouse sync block aligns the beat count between mice." msgstr "" -#: js/EnsembleBlocks.js:844 +#: js/blocks/EnsembleBlocks.js:844 #.TRANS: sync is short for synchronization msgid "turtle sync" msgstr "" -#: js/EnsembleBlocks.js:846 +#: js/blocks/EnsembleBlocks.js:846 msgid "The Turtle sync block aligns the beat count between turtles." msgstr "" -#: js/EnsembleBlocks.js:887 +#: js/blocks/EnsembleBlocks.js:887 msgid "The Found mouse block will return true if the specified mouse can be found." msgstr "" -#: js/EnsembleBlocks.js:893 +#: js/blocks/EnsembleBlocks.js:893 msgid "found mouse" msgstr "" -#: js/EnsembleBlocks.js:903 +#: js/blocks/EnsembleBlocks.js:903 msgid "The Found turtle block will return true if the specified turtle can be found." msgstr "" -#: js/EnsembleBlocks.js:909 +#: js/blocks/EnsembleBlocks.js:909 msgid "found turtle" msgstr "" -#: js/EnsembleBlocks.js:932 +#: js/blocks/EnsembleBlocks.js:932 msgid "new mouse" msgstr "" -#: js/EnsembleBlocks.js:934 +#: js/blocks/EnsembleBlocks.js:934 msgid "The New mouse block will create a new mouse." msgstr "" -#: js/EnsembleBlocks.js:945 +#: js/blocks/EnsembleBlocks.js:945 msgid "new turtle" msgstr "" -#: js/EnsembleBlocks.js:947 +#: js/blocks/EnsembleBlocks.js:947 msgid "The New turtle block will create a new turtle." msgstr "" -#: js/EnsembleBlocks.js:1011 +#: js/blocks/EnsembleBlocks.js:1011 msgid "set mouse color" msgstr "" -#: js/EnsembleBlocks.js:1014 +#: js/blocks/EnsembleBlocks.js:1014 msgid "The Set-mouse-color block is used to set the color of a mouse." msgstr "" -#: js/EnsembleBlocks.js:1020 +#: js/blocks/EnsembleBlocks.js:1020 msgid "set turtle color" msgstr "" -#: js/EnsembleBlocks.js:1023 +#: js/blocks/EnsembleBlocks.js:1023 msgid "The Set-turtle-color block is used to set the color of a turtle." msgstr "" -#: js/EnsembleBlocks.js:1083 +#: js/blocks/EnsembleBlocks.js:1083 msgid "The Mouse-name block returns the name of a mouse." msgstr "" -#: js/EnsembleBlocks.js:1092 +#: js/blocks/EnsembleBlocks.js:1092 msgid "The Turtle-name block returns the name of a turtle." msgstr "" -#: js/EnsembleBlocks.js:1115 +#: js/blocks/EnsembleBlocks.js:1115 msgid "mouse count" msgstr "" -#: js/EnsembleBlocks.js:1118 +#: js/blocks/EnsembleBlocks.js:1118 msgid "The Mouse-count block returns the number of mice." msgstr "" -#: js/EnsembleBlocks.js:1124 +#: js/blocks/EnsembleBlocks.js:1124 msgid "turtle count" msgstr "" -#: js/EnsembleBlocks.js:1127 +#: js/blocks/EnsembleBlocks.js:1127 msgid "The Turtle-count block returns the number of turtles." msgstr "" -#: js/EnsembleBlocks.js:1149 +#: js/blocks/EnsembleBlocks.js:1149 msgid "nth mouse name" msgstr "" -#: js/EnsembleBlocks.js:1152 +#: js/blocks/EnsembleBlocks.js:1152 msgid "The Nth-Mouse name block returns the name of the nth mouse." msgstr "" -#: js/EnsembleBlocks.js:1158 +#: js/blocks/EnsembleBlocks.js:1158 msgid "nth turtle name" msgstr "" -#: js/EnsembleBlocks.js:1161 +#: js/blocks/EnsembleBlocks.js:1161 msgid "The Nth-Turtle name block returns the name of the nth turtle." msgstr "" -#: js/EnsembleBlocks.js:1205 -#: js/EnsembleBlocks.js:1265 +#: js/blocks/EnsembleBlocks.js:1205 +#: js/blocks/EnsembleBlocks.js:1265 msgid "set name" msgstr "" -#: js/EnsembleBlocks.js:1214 -#: js/EnsembleBlocks.js:1221 +#: js/blocks/EnsembleBlocks.js:1214 +#: js/blocks/EnsembleBlocks.js:1221 msgid "source" msgstr "" -#: js/EnsembleBlocks.js:1214 -#: js/EnsembleBlocks.js:1221 +#: js/blocks/EnsembleBlocks.js:1214 +#: js/blocks/EnsembleBlocks.js:1221 msgid "target" msgstr "" -#: js/EnsembleBlocks.js:1271 +#: js/blocks/EnsembleBlocks.js:1271 msgid "The Set-name block is used to name a mouse." msgstr "" -#: js/EnsembleBlocks.js:1284 +#: js/blocks/EnsembleBlocks.js:1284 msgid "The Set-name block is used to name a turtle." msgstr "" -#: js/BooleanBlocks.js:44 -msgid "The Not block is the logical not operator." -msgstr "" - -#: js/BooleanBlocks.js:62 -msgid "not" -msgstr "" - -#: js/BooleanBlocks.js:134 -msgid "The And block is the logical and operator." -msgstr "" - -#: js/BooleanBlocks.js:152 -msgid "and" -msgstr "" - -#: js/BooleanBlocks.js:218 -msgid "The Or block is the logical or operator." -msgstr "" - -#: js/BooleanBlocks.js:236 -msgid "or" -msgstr "" - -#: js/BooleanBlocks.js:302 -msgid "The XOR block is the logical XOR operator." -msgstr "" - -#: js/BooleanBlocks.js:320 -msgid "xor" -msgstr "" - -#: js/BooleanBlocks.js:808 -msgid "The Equal block returns True if the two numbers are equal." -msgstr "" - -#: js/BooleanBlocks.js:909 -msgid "The Not-equal-to block returns True if the two numbers are not equal to each other." -msgstr "" - -#: js/BooleanBlocks.js:1008 -msgid "The Boolean block is used to specify true or false." -msgstr "" - -#: js/MediaBlocks.js:35 -#.TRANS: right side of the screen -msgid "right (screen)" -msgstr "" - -#: js/MediaBlocks.js:45 -#: js/MediaBlocks.js:56 -msgid "The Right block returns the position of the right of the canvas." -msgstr "" - -#: js/MediaBlocks.js:97 -#.TRANS: left side of the screen -msgid "left (screen)" -msgstr "" - -#: js/MediaBlocks.js:107 -#: js/MediaBlocks.js:118 -msgid "The Left block returns the position of the left of the canvas." -msgstr "" - -#: js/MediaBlocks.js:158 -msgid "top (screen)" -msgstr "" - -#: js/MediaBlocks.js:168 -#: js/MediaBlocks.js:179 -msgid "The Top block returns the position of the top of the canvas." -msgstr "" - -#: js/MediaBlocks.js:219 -msgid "bottom (screen)" +#: js/blocks/ExtrasBlocks.js:33 +msgid "fraction" msgstr "" -#: js/MediaBlocks.js:229 -#: js/MediaBlocks.js:240 -msgid "The Bottom block returns the position of the bottom of the canvas." +#: js/blocks/ExtrasBlocks.js:36 +msgid "Convert a float to a fraction" msgstr "" -#: js/MediaBlocks.js:282 -msgid "width" +#: js/blocks/ExtrasBlocks.js:93 +msgid "save as ABC" msgstr "" -#: js/MediaBlocks.js:291 -msgid "The Width block returns the width of the canvas." +#: js/blocks/ExtrasBlocks.js:96 +#: js/blocks/ExtrasBlocks.js:132 +#: js/blocks/ExtrasBlocks.js:168 +msgid "title" msgstr "" -#: js/MediaBlocks.js:325 -msgid "height" +#: js/blocks/ExtrasBlocks.js:129 +msgid "save as Lilypond" msgstr "" -#: js/MediaBlocks.js:334 -msgid "The Height block returns the height of the canvas." +#: js/blocks/ExtrasBlocks.js:165 +msgid "save as SVG" msgstr "" -#: js/MediaBlocks.js:369 -#.TRANS: stops playback of an audio recording -msgid "stop play" +#: js/blocks/ExtrasBlocks.js:216 +msgid "no background" msgstr "" -#: js/MediaBlocks.js:404 -#.TRANS: Erases the images and text -msgid "erase media" +#: js/blocks/ExtrasBlocks.js:219 +msgid "The No background block eliminates the background from the saved SVG output." msgstr "" -#: js/MediaBlocks.js:409 -msgid "The Erase Media block erases text and images." +#: js/blocks/ExtrasBlocks.js:247 +msgid "show blocks" msgstr "" -#: js/MediaBlocks.js:439 -#.TRANS: play an audio recording -msgid "play back" +#: js/blocks/ExtrasBlocks.js:249 +msgid "The Show blocks block shows the blocks." msgstr "" -#: js/MediaBlocks.js:487 -msgid "speak" +#: js/blocks/ExtrasBlocks.js:274 +msgid "hide blocks" msgstr "" -#: js/MediaBlocks.js:495 -msgid "The Speak block outputs to the text-to-speech synthesizer" +#: js/blocks/ExtrasBlocks.js:276 +msgid "The Hide blocks block hides the blocks." msgstr "" -#: js/MediaBlocks.js:546 -msgid "camera" +#: js/blocks/ExtrasBlocks.js:305 +#: js/blocks/ExtrasBlocks.js:338 +msgid "The Space block is used to add space between blocks." msgstr "" -#: js/MediaBlocks.js:551 -msgid "The Camera block connects a webcam to the Show block." +#: js/blocks/ExtrasBlocks.js:376 +msgid "wait" msgstr "" -#: js/MediaBlocks.js:574 -msgid "video" +#: js/blocks/ExtrasBlocks.js:379 +msgid "The Wait block pauses the program for a specified number of seconds." msgstr "" -#: js/MediaBlocks.js:579 -msgid "The Video block selects video for use with the Show block." +#: js/blocks/ExtrasBlocks.js:433 +#: plugins/facebook.rtp:30 +msgid "comment" msgstr "" -#: js/MediaBlocks.js:607 -msgid "The Open file block opens a file for use with the Show block." +#: js/blocks/ExtrasBlocks.js:469 +msgid "print" msgstr "" -#: js/MediaBlocks.js:645 -msgid "stop media" +#: js/blocks/ExtrasBlocks.js:476 +msgid "The Print block displays text at the top of the screen." msgstr "" -#: js/MediaBlocks.js:650 -msgid "The Stop media block stops audio or video playback." +#: js/blocks/ExtrasBlocks.js:582 +msgid "display grid" msgstr "" -#: js/MediaBlocks.js:679 -#: js/PitchBlocks.js:1539 -#: js/phrasemaker.js:822 -#: js/musickeyboard.js:1654 -#.TRANS: a measure of frequency: one cycle per second -msgid "hertz" +#: js/blocks/ExtrasBlocks.js:587 +msgid "The Display Grid Block changes the grid type" msgstr "" -#: js/MediaBlocks.js:692 -msgid "duration (ms)" +#: js/blocks/ExtrasBlocks.js:689 +#: js/blocks/ExtrasBlocks.js:708 +#: js/blocks/ExtrasBlocks.js:731 +#: js/blocks/ExtrasBlocks.js:754 +#: js/blocks/ExtrasBlocks.js:772 +#: js/blocks/ExtrasBlocks.js:791 +#: js/blocks/ExtrasBlocks.js:810 +#: js/blocks/ExtrasBlocks.js:829 +msgid "unknown" msgstr "" -#: js/MediaBlocks.js:728 -#.TRANS: translate a note into hertz, e.g., A4 -> 440HZ -msgid "note to frequency" +#: js/blocks/FlowBlocks.js:41 +msgid "The Backward block runs code in reverse order (Musical retrograde)." msgstr "" -#: js/MediaBlocks.js:736 -msgid "The To frequency block converts a pitch name and octave to Hertz." +#: js/blocks/FlowBlocks.js:48 +msgid "backward" msgstr "" -#: js/MediaBlocks.js:746 -#: js/PitchBlocks.js:656 -#: js/PitchBlocks.js:932 -#: js/PitchBlocks.js:1827 -#.TRANS: name2 is name as in name of pitch (JAPANESE ONLY) -msgid "name2" +#: js/blocks/FlowBlocks.js:124 +msgid "The Duplicate block will run each block multiple times." msgstr "" -#: js/MediaBlocks.js:812 -msgid "The Avatar block is used to change the appearance of the mouse." +#: js/blocks/FlowBlocks.js:136 +msgid "duplicate" msgstr "" -#: js/MediaBlocks.js:819 -msgid "The Avatar block is used to change the appearance of the turtle." +#: js/blocks/FlowBlocks.js:334 +msgid "The Default block is used inside of a Switch to define the default action." msgstr "" -#: js/MediaBlocks.js:831 -#: js/MediaBlocks.js:891 -#.TRANS: a media object -msgid "size" +#: js/blocks/FlowBlocks.js:342 +msgid "default" msgstr "" -#: js/MediaBlocks.js:831 -msgid "image" +#: js/blocks/FlowBlocks.js:361 +#: js/blocks/FlowBlocks.js:418 +msgid "The Case Block must be used inside of a Switch Block." msgstr "" -#: js/MediaBlocks.js:880 -msgid "The Show block is used to display text or images on the canvas." +#: js/blocks/FlowBlocks.js:389 +msgid "The Case block is used inside of a Switch to define matches." msgstr "" -#: js/MediaBlocks.js:888 -#.TRANS: show1 is show as in display an image or text on the screen. -msgid "show1" +#: js/blocks/FlowBlocks.js:397 +msgid "case" msgstr "" -#: js/MediaBlocks.js:891 -msgid "obj" +#: js/blocks/FlowBlocks.js:446 +msgid "The Switch block will run the code in the matching Case." msgstr "" -#: js/MediaBlocks.js:938 -msgid "The Media block is used to import an image." +#: js/blocks/FlowBlocks.js:454 +msgid "switch" msgstr "" -#: js/MediaBlocks.js:973 -msgid "The Text block holds a text string." +#: js/blocks/FlowBlocks.js:595 +msgid "The Stop block will stop a loop" msgstr "" -#: js/ProgramBlocks.js:33 -msgid "The Load-heap-from-app block loads the heap from a web page." +#: js/blocks/FlowBlocks.js:597 +msgid "Forever, Repeat, While, or Until." msgstr "" -#: js/ProgramBlocks.js:44 -#.TRANS: load the heap contents from a URL -msgid "load heap from App" +#: js/blocks/FlowBlocks.js:604 +#: js/widgets/timbre.js:417 +#: js/widgets/timbre.js:419 +#: js/widgets/musickeyboard.js:819 +#: js/widgets/musickeyboard.js:821 +#: js/widgets/phrasemaker.js:4202 +#: plugins/rodi.rtp:29 +#: plugins/rodi.rtp:73 +#: plugins/rodi.rtp:413 +msgid "stop" msgstr "" -#: js/ProgramBlocks.js:95 -msgid "Error parsing JSON data:" +#: js/blocks/FlowBlocks.js:653 +msgid "The Waitfor block will wait until the condition is true." msgstr "" -#: js/ProgramBlocks.js:100 -msgid "404: Page not found" +#: js/blocks/FlowBlocks.js:661 +msgid "wait for" msgstr "" -#: js/ProgramBlocks.js:133 -msgid "The Save-heap-to-app block saves the heap to a web page." +#: js/blocks/FlowBlocks.js:732 +msgid "The Until block will repeat until the condition is true." msgstr "" -#: js/ProgramBlocks.js:144 -#.TRANS: save the heap contents to a URL -msgid "save heap to App" +#: js/blocks/FlowBlocks.js:740 +msgid "until" msgstr "" -#: js/ProgramBlocks.js:189 -msgid "Cannot find a valid heap for" +#: js/blocks/FlowBlocks.js:742 +#: js/blocks/FlowBlocks.js:822 +msgid "do2" msgstr "" -#: js/ProgramBlocks.js:206 -msgid "The Load-heap block loads the heap from a file." +#: js/blocks/FlowBlocks.js:812 +msgid "The While block will repeat while the condition is true." msgstr "" -#: js/ProgramBlocks.js:217 -#.TRANS: load the heap from a file -msgid "load heap" +#: js/blocks/FlowBlocks.js:820 +msgid "while" msgstr "" -#: js/ProgramBlocks.js:270 -msgid "The file you selected does not contain a valid heap." +#: js/blocks/FlowBlocks.js:903 +#: js/blocks/FlowBlocks.js:968 +#: js/blocks/FlowBlocks.js:979 +msgid "In this example if the mouse button is pressed a snare drum will play." msgstr "" -#: js/ProgramBlocks.js:275 -msgid "The loadHeap block needs a loadFile block." +#: js/blocks/FlowBlocks.js:925 +#: js/blocks/FlowBlocks.js:988 +msgid "if" msgstr "" -#: js/ProgramBlocks.js:291 -msgid "The Set-heap block loads the heap." +#: js/blocks/FlowBlocks.js:927 +#: js/blocks/FlowBlocks.js:990 +msgid "then" msgstr "" -#: js/ProgramBlocks.js:299 -#: js/HeapBlocks.js:539 -#.TRANS: load the heap from a JSON encoding -msgid "set heap" +#: js/blocks/FlowBlocks.js:927 +msgid "else" msgstr "" -#: js/ProgramBlocks.js:340 -msgid "The block you selected does not contain a valid heap." +#: js/blocks/FlowBlocks.js:1025 +msgid "The Forever block will repeat the contained blocks forever." msgstr "" -#: js/ProgramBlocks.js:343 -msgid "The Set heap block needs a heap." +#: js/blocks/FlowBlocks.js:1037 +msgid "forever" msgstr "" -#: js/ProgramBlocks.js:360 -msgid "The Load-dictionary block loads a dictionary from a file." +#: js/blocks/FlowBlocks.js:1073 +msgid "The Repeat block will repeat the contained blocks." msgstr "" -#: js/ProgramBlocks.js:372 -#.TRANS: load a dictionary from a file -msgid "load dictionary" +#: js/blocks/FlowBlocks.js:1075 +msgid "In this example the note will be played 4 times." msgstr "" -#: js/ProgramBlocks.js:390 -#: js/ProgramBlocks.js:658 -#: js/ToneBlocks.js:1025 -msgid "file" +#: js/blocks/FlowBlocks.js:1083 +msgid "repeat" msgstr "" -#: js/ProgramBlocks.js:396 -#: js/ProgramBlocks.js:501 -#: js/ProgramBlocks.js:664 -#: js/DictBlocks.js:80 -#: js/DictBlocks.js:145 -#: js/DictBlocks.js:216 -#: js/DictBlocks.js:290 -msgid "My Dictionary" +#: js/blocks/FlowBlocks.js:1123 +msgid "duplicate factor" msgstr "" -#: js/ProgramBlocks.js:444 -msgid "The file you selected does not contain a valid dictionary." +#: js/blocks/HeapBlocks.js:49 +msgid "The Heap block returns the heap." msgstr "" -#: js/ProgramBlocks.js:449 -msgid "The load dictionary block needs a load file block." +#: js/blocks/HeapBlocks.js:133 +msgid "show heap" msgstr "" -#: js/ProgramBlocks.js:466 -msgid "The Set-dictionary block loads a dictionary." +#: js/blocks/HeapBlocks.js:181 +msgid "The Heap-length block returns the length of the heap." msgstr "" -#: js/ProgramBlocks.js:477 -#.TRANS: load a dictionary from a JSON -msgid "set dictionary" +#: js/blocks/HeapBlocks.js:195 +msgid "heap length" msgstr "" -#: js/ProgramBlocks.js:546 -msgid "The block you selected does not contain a valid dictionary." +#: js/blocks/HeapBlocks.js:254 +msgid "The Heap-empty? block returns true if the heap is empty." msgstr "" -#: js/ProgramBlocks.js:550 -msgid "The set dictionary block needs a dictionary." +#: js/blocks/HeapBlocks.js:268 +#.TRANS: Is the heap empty? +msgid "heap empty?" msgstr "" -#: js/ProgramBlocks.js:567 -msgid "The Save-heap block saves the heap to a file." +#: js/blocks/HeapBlocks.js:317 +msgid "The Empty-heap block empties the heap." msgstr "" -#: js/ProgramBlocks.js:578 -#.TRANS: save the heap to a file -msgid "save heap" +#: js/blocks/HeapBlocks.js:327 +#: js/blocks/HeapBlocks.js:647 +#.TRANS: empty the heap +msgid "empty heap" msgstr "" -#: js/ProgramBlocks.js:629 -msgid "The Save-dictionary block saves a dictionary to a file." +#: js/blocks/HeapBlocks.js:371 +msgid "The Reverse-heap block reverses the order of the heap." msgstr "" -#: js/ProgramBlocks.js:640 -#.TRANS: save a dictionary to a file -msgid "save dictionary" +#: js/blocks/HeapBlocks.js:384 +#.TRANS: reverse the order of the heap +msgid "reverse heap" msgstr "" -#: js/ProgramBlocks.js:720 -msgid "The Open palette block opens a palette." +#: js/blocks/HeapBlocks.js:428 +msgid "The Index-heap block returns a value in the heap at a specified location." msgstr "" -#: js/ProgramBlocks.js:727 -msgid "open palette" +#: js/blocks/HeapBlocks.js:443 +#.TRANS: retrieve a value from the heap at index position in the heap +msgid "index heap" msgstr "" -#: js/ProgramBlocks.js:785 -msgid "The Delete block block removes a block." +#: js/blocks/HeapBlocks.js:523 +msgid "The Set-heap entry block sets a value in he heap at the specified location." msgstr "" -#: js/ProgramBlocks.js:797 -#.TRANS: Move this block to the trash. -msgid "delete block" +#: js/blocks/HeapBlocks.js:539 +#: js/blocks/ProgramBlocks.js:299 +#.TRANS: load the heap from a JSON encoding +msgid "set heap" msgstr "" -#: js/ProgramBlocks.js:861 -msgid "The Move block block moves a block." +#: js/blocks/HeapBlocks.js:619 +msgid "The Pop block removes the value at the top of the heap." msgstr "" -#: js/ProgramBlocks.js:869 -#.TRANS: Move the position of a block on the screen. -msgid "move block" +#: js/blocks/HeapBlocks.js:633 +#.TRANS: pop a value off the top of the heap +msgid "pop" msgstr "" -#: js/ProgramBlocks.js:881 -#: js/ProgramBlocks.js:1048 -msgid "block number" +#: js/blocks/HeapBlocks.js:680 +msgid "The Push block adds a value to the top of the heap." msgstr "" -#: js/ProgramBlocks.js:935 -#.TRANS: Run program beginning at this block. -msgid "run block" +#: js/blocks/HeapBlocks.js:696 +#.TRANS: push a value onto the top of the heap +msgid "push" msgstr "" -#: js/ProgramBlocks.js:1025 -msgid "The Dock block block connections two blocks." +#: js/blocks/IntervalsBlocks.js:45 +msgid "set temperament" msgstr "" -#: js/ProgramBlocks.js:1036 -#.TRANS: We can connect a block to another block. -msgid "connect blocks" +#: js/blocks/IntervalsBlocks.js:63 +#: js/blocks/MediaBlocks.js:746 +#: js/blocks/PitchBlocks.js:657 +#: js/blocks/PitchBlocks.js:935 +#: js/blocks/PitchBlocks.js:974 +#: js/blocks/PitchBlocks.js:1007 +#: js/blocks/PitchBlocks.js:1194 +#: js/blocks/PitchBlocks.js:1717 +#: js/blocks/PitchBlocks.js:1758 +#: js/blocks/PitchBlocks.js:1866 +#: js/blocks/ToneBlocks.js:1025 +#: js/turtleactions/IntervalsActions.js:114 +#.TRANS: adjusts the shift up or down by one octave (twelve half-steps in the interval between two notes, one having twice or half the frequency in Hz of the other.) +msgid "octave" msgstr "" -#: js/ProgramBlocks.js:1048 -msgid "target block" +#: js/blocks/IntervalsBlocks.js:99 +msgid "The Temperament name block is used to select a tuning method." msgstr "" -#: js/ProgramBlocks.js:1048 -msgid "connection number" +#: js/blocks/IntervalsBlocks.js:161 +msgid "doubly" msgstr "" -#: js/ProgramBlocks.js:1140 -msgid "The Make block block creates a new block." +#: js/blocks/IntervalsBlocks.js:166 +msgid "The Doubly block will double the size of an interval." msgstr "" -#: js/ProgramBlocks.js:1152 -#.TRANS: Create a new block -msgid "make block" +#: js/blocks/IntervalsBlocks.js:262 +msgid "interval number" msgstr "" -#: js/ProgramBlocks.js:1186 -#: js/ProgramBlocks.js:1227 -#: js/RhythmBlocks.js:1128 -#: js/PitchBlocks.js:972 -#: js/PitchBlocks.js:1005 -#: js/temperament.js:340 -#: js/temperament.js:362 -#: js/temperament.js:372 -#: js/temperament.js:484 -#: js/status.js:190 -#: plugins/rodi.rtp:192 -#.TRANS: a musical note consisting of pitch and duration -msgid "note" +#: js/blocks/IntervalsBlocks.js:317 +msgid "current interval" msgstr "" -#: js/ProgramBlocks.js:1285 -msgid "Cannot find block" +#: js/blocks/IntervalsBlocks.js:387 +#.TRANS: measure the distance between two pitches in semi-tones +msgid "semi-tone interval measure" msgstr "" -#: js/ProgramBlocks.js:1304 -#: js/ProgramBlocks.js:1313 -msgid "Warning: block argument type mismatch" +#: js/blocks/IntervalsBlocks.js:454 +#: js/blocks/IntervalsBlocks.js:570 +msgid "You must use two pitch blocks when measuring an interval." msgstr "" -#: js/ProgramBlocks.js:1347 -msgid "The Open project block is used to open a project from a web page." +#: js/blocks/IntervalsBlocks.js:496 +msgid "The Scalar interval block measures the distance between two notes in the current key and mode." msgstr "" -#: js/ProgramBlocks.js:1357 -msgid "open project" +#: js/blocks/IntervalsBlocks.js:502 +#.TRANS: measure the distance between two pitches in steps of musical scale +msgid "scalar interval measure" msgstr "" -#: js/ProgramBlocks.js:1410 -msgid "Please enter a valid URL." +#: js/blocks/IntervalsBlocks.js:678 +msgid "In the figure, we add sol# to sol." msgstr "" -#: js/DrumBlocks.js:59 -msgid "The Noise name block is used to select a noise synthesizer." +#: js/blocks/IntervalsBlocks.js:684 +#: js/blocks/OrnamentBlocks.js:220 +#.TRANS: calculate a relative step between notes based on semi-tones +msgid "semi-tone interval" msgstr "" -#: js/DrumBlocks.js:102 -msgid "The Drum name block is used to select a drum." +#: js/blocks/IntervalsBlocks.js:733 +msgid "The output of the example is: do, mi, sol, sol, ti, mi" msgstr "" -#: js/DrumBlocks.js:146 -msgid "The Effects name block is used to select a sound effect." +#: js/blocks/IntervalsBlocks.js:740 +#: js/blocks/WidgetBlocks.js:768 +msgid "arpeggio" msgstr "" -#: js/DrumBlocks.js:163 -msgid "noise" +#: js/blocks/IntervalsBlocks.js:931 +msgid "The Chord block calculates common chords." msgstr "" -#: js/DrumBlocks.js:177 -msgid "The Play noise block will generate white, pink, or brown noise." +#: js/blocks/IntervalsBlocks.js:933 +msgid "In the figure, we generate a C-major chord." msgstr "" -#: js/DrumBlocks.js:191 -#: js/musicutils.js:752 -#: js/synthutils.js:47 -#.TRANS: white noise synthesizer -msgid "white noise" +#: js/blocks/IntervalsBlocks.js:938 +msgid "chord" msgstr "" -#: js/DrumBlocks.js:326 -msgid "Replace every instance of a pitch with a drum sound." +#: js/blocks/IntervalsBlocks.js:990 +msgid "The Ratio Interval block calculates an interval based on a ratio." msgstr "" -#: js/DrumBlocks.js:337 -#.TRANS: map a pitch to a drum sound -msgid "map pitch to drum" +#: js/blocks/IntervalsBlocks.js:995 +msgid "ratio interval" msgstr "" -#: js/DrumBlocks.js:404 -msgid "In the example above, a kick drum sound will be played instead of sol." +#: js/blocks/IntervalsBlocks.js:1064 +msgid "In the figure, we add la to sol." msgstr "" -#: js/DrumBlocks.js:416 -#.TRANS: set the current drum sound for playback -msgid "set drum" +#: js/blocks/IntervalsBlocks.js:1120 +#.TRANS: define a custom mode +msgid "define mode" msgstr "" -#: js/DrumBlocks.js:460 -msgid "sound effect" +#: js/blocks/IntervalsBlocks.js:1173 +msgid "movable Do" msgstr "" -#: js/DrumBlocks.js:498 -msgid "You can use multiple Drum blocks within a Note block." +#: js/blocks/IntervalsBlocks.js:1224 +#.TRANS: mode length is the number of notes in the mode, e.g., 7 for major and minor scales; 12 for chromatic scales +msgid "mode length" msgstr "" -#: js/RhythmBlocks.js:182 -#: js/RhythmBlocks.js:1086 -#: js/RhythmBlocks.js:1162 -msgid "Note value must be greater than 0." +#: js/blocks/IntervalsBlocks.js:1233 +msgid "The Mode length block is the number of notes in the current scale." msgstr "" -#: js/RhythmBlocks.js:215 -#: js/RhythmBlocks.js:278 -#: js/RhythmBlocks.js:350 -#.TRANS: swing is a rhythmic variation that emphasises the offbeat -msgid "swing" +#: js/blocks/IntervalsBlocks.js:1235 +msgid "Most Western scales have 7 notes." msgstr "" -#: js/RhythmBlocks.js:355 -#.TRANS: the amount to shift to the offbeat note -msgid "swing value" +#: js/blocks/IntervalsBlocks.js:1284 +#.TRANS: the mode in music is 'major', 'minor', etc. +msgid "current mode" msgstr "" -#: js/RhythmBlocks.js:419 -msgid "The Skip notes block will cause notes to be skipped." +#: js/blocks/IntervalsBlocks.js:1337 +#.TRANS: the key is a group of pitches with which a music composition is created +msgid "current key" msgstr "" -#: js/RhythmBlocks.js:427 -#.TRANS: substitute rests on notes being skipped -msgid "skip notes" +#: js/blocks/IntervalsBlocks.js:1389 +#: js/blocks/IntervalsBlocks.js:1434 +#.TRANS: set the key and mode, e.g. C Major +msgid "set key" msgstr "" -#: js/RhythmBlocks.js:489 -#.TRANS: speed up note duration by some factor, e.g. convert 1/4 to 1/8 notes by using a factor of 2 -msgid "multiply note value" +#: js/blocks/IntervalsBlocks.js:1443 +#: js/blocks/IntervalsBlocks.js:1449 +msgid "The Set key block is used to set the key and mode," msgstr "" -#: js/RhythmBlocks.js:542 -msgid "The Tie block works on pairs of notes, combining them into one note." +#: js/blocks/IntervalsBlocks.js:1449 +msgid "eg C Major" msgstr "" -#: js/RhythmBlocks.js:550 -#.TRANS: tie notes together into one longer note -msgid "tie" +#: js/blocks/MediaBlocks.js:35 +#.TRANS: right side of the screen +msgid "right (screen)" msgstr "" -#: js/RhythmBlocks.js:591 -#: js/RhythmBlocks.js:671 -#.TRANS: a dotted note is played for 1.5x its value, e.g., 1/8. --> 3/16 -msgid "dot" +#: js/blocks/MediaBlocks.js:45 +#: js/blocks/MediaBlocks.js:56 +msgid "The Right block returns the position of the right of the canvas." msgstr "" -#: js/RhythmBlocks.js:619 -#: js/RhythmActions.js:221 -msgid "An argument of -1 results in a note value of 0." +#: js/blocks/MediaBlocks.js:97 +#.TRANS: left side of the screen +msgid "left (screen)" msgstr "" -#: js/RhythmBlocks.js:661 -msgid "The Dot block extends the duration of a note by 50%." +#: js/blocks/MediaBlocks.js:107 +#: js/blocks/MediaBlocks.js:118 +msgid "The Left block returns the position of the left of the canvas." msgstr "" -#: js/RhythmBlocks.js:663 -msgid "Eg a dotted quarter note will play for 3/8 (1/4 + 1/8) of a beat." +#: js/blocks/MediaBlocks.js:158 +msgid "top (screen)" msgstr "" -#: js/RhythmBlocks.js:765 -#.TRANS: Japanese only: note value block for drum -msgid "note value drum" +#: js/blocks/MediaBlocks.js:168 +#: js/blocks/MediaBlocks.js:179 +msgid "The Top block returns the position of the top of the canvas." msgstr "" -#: js/RhythmBlocks.js:829 -msgid "392 hertz" +#: js/blocks/MediaBlocks.js:219 +msgid "bottom (screen)" msgstr "" -#: js/RhythmBlocks.js:1119 -msgid "The Note block is a container for one or more Pitch blocks." +#: js/blocks/MediaBlocks.js:229 +#: js/blocks/MediaBlocks.js:240 +msgid "The Bottom block returns the position of the bottom of the canvas." msgstr "" -#: js/RhythmBlocks.js:1121 -msgid "The Note block specifies the duration (note value) of its contents." +#: js/blocks/MediaBlocks.js:282 +msgid "width" msgstr "" -#: js/RhythmBlocks.js:1130 -msgid "value2" +#: js/blocks/MediaBlocks.js:291 +msgid "The Width block returns the width of the canvas." msgstr "" -#: js/RhythmBlocks.js:1200 -msgid "define frequency" +#: js/blocks/MediaBlocks.js:325 +msgid "height" msgstr "" -#: js/RhythmBlocks.js:1218 -#: js/temperament.js:650 -#: js/temperament.js:1421 -msgid "octave space" +#: js/blocks/MediaBlocks.js:334 +msgid "The Height block returns the height of the canvas." msgstr "" -#: js/NumberBlocks.js:28 -msgid "The Int block returns an integer." +#: js/blocks/MediaBlocks.js:369 +#.TRANS: stops playback of an audio recording +msgid "stop play" msgstr "" -#: js/NumberBlocks.js:34 -msgid "int" +#: js/blocks/MediaBlocks.js:404 +#.TRANS: Erases the images and text +msgid "erase media" msgstr "" -#: js/NumberBlocks.js:73 -msgid "The Mod block returns the remainder from a division." +#: js/blocks/MediaBlocks.js:409 +msgid "The Erase Media block erases text and images." msgstr "" -#: js/NumberBlocks.js:79 -msgid "mod" +#: js/blocks/MediaBlocks.js:439 +#.TRANS: play an audio recording +msgid "play back" msgstr "" -#: js/NumberBlocks.js:123 -msgid "The Power block calculates a power function." +#: js/blocks/MediaBlocks.js:487 +msgid "speak" msgstr "" -#: js/NumberBlocks.js:178 -msgid "The Sqrt block returns the square root." +#: js/blocks/MediaBlocks.js:495 +msgid "The Speak block outputs to the text-to-speech synthesizer" msgstr "" -#: js/NumberBlocks.js:184 -msgid "sqrt" +#: js/blocks/MediaBlocks.js:546 +msgid "camera" msgstr "" -#: js/NumberBlocks.js:230 -msgid "The Abs block returns the absolute value." +#: js/blocks/MediaBlocks.js:551 +msgid "The Camera block connects a webcam to the Show block." msgstr "" -#: js/NumberBlocks.js:236 -msgid "abs" +#: js/blocks/MediaBlocks.js:574 +msgid "video" msgstr "" -#: js/NumberBlocks.js:277 -msgid "The Distance block returns the distance between two points. For example, between the mouse and the center of the screen." +#: js/blocks/MediaBlocks.js:579 +msgid "The Video block selects video for use with the Show block." msgstr "" -#: js/NumberBlocks.js:283 -#: plugins/rodi.rtp:310 -msgid "distance" +#: js/blocks/MediaBlocks.js:607 +msgid "The Open file block opens a file for use with the Show block." msgstr "" -#: js/NumberBlocks.js:343 -msgid "The Divide block is used to divide." +#: js/blocks/MediaBlocks.js:645 +msgid "stop media" msgstr "" -#: js/NumberBlocks.js:411 -msgid "The Multiply block is used to multiply." +#: js/blocks/MediaBlocks.js:650 +msgid "The Stop media block stops audio or video playback." msgstr "" -#: js/NumberBlocks.js:554 -msgid "The Minus block is used to subtract." +#: js/blocks/MediaBlocks.js:679 +#: js/blocks/PitchBlocks.js:1577 +#: js/widgets/musickeyboard.js:1936 +#: js/widgets/phrasemaker.js:1037 +#.TRANS: a measure of frequency: one cycle per second +msgid "hertz" msgstr "" -#: js/NumberBlocks.js:647 -msgid "The Plus block is used to add." +#: js/blocks/MediaBlocks.js:692 +#: js/blocks/WidgetBlocks.js:182 +#: js/widgets/temperament.js:506 +#: js/widgets/temperament.js:546 +#: js/widgets/temperament.js:610 +#: js/widgets/temperament.js:618 +#: js/widgets/temperament.js:1505 +#: js/widgets/timbre.js:1842 +msgid "frequency" msgstr "" -#: js/NumberBlocks.js:773 -msgid "The One-of block returns one of two choices." +#: js/blocks/MediaBlocks.js:692 +msgid "duration (ms)" msgstr "" -#: js/NumberBlocks.js:780 -#: js/PitchBlocks.js:616 -msgid "one of" +#: js/blocks/MediaBlocks.js:728 +#.TRANS: translate a note into hertz, e.g., A4 -> 440HZ +msgid "note to frequency" msgstr "" -#: js/NumberBlocks.js:782 -msgid "this" +#: js/blocks/MediaBlocks.js:736 +msgid "The To frequency block converts a pitch name and octave to Hertz." msgstr "" -#: js/NumberBlocks.js:782 -msgid "that" +#: js/blocks/MediaBlocks.js:746 +#: js/blocks/PitchBlocks.js:656 +#: js/blocks/PitchBlocks.js:934 +#: js/blocks/PitchBlocks.js:1866 +#.TRANS: name2 is name as in name of pitch (JAPANESE ONLY) +msgid "name2" msgstr "" -#: js/NumberBlocks.js:837 -msgid "The Random block returns a random number." +#: js/blocks/MediaBlocks.js:812 +msgid "The Avatar block is used to change the appearance of the mouse." msgstr "" -#: js/NumberBlocks.js:844 -msgid "random" +#: js/blocks/MediaBlocks.js:819 +msgid "The Avatar block is used to change the appearance of the turtle." msgstr "" -#: js/NumberBlocks.js:846 -msgid "min" +#: js/blocks/MediaBlocks.js:831 +#: js/blocks/MediaBlocks.js:891 +#.TRANS: a media object +msgid "size" msgstr "" -#: js/NumberBlocks.js:846 -msgid "max" +#: js/blocks/MediaBlocks.js:831 +msgid "image" msgstr "" -#: js/NumberBlocks.js:910 -msgid "The Number block holds a number." +#: js/blocks/MediaBlocks.js:880 +msgid "The Show block is used to display text or images on the canvas." msgstr "" -#: js/BoxesBlocks.js:53 -#: js/BoxesBlocks.js:59 -msgid "The Add-to block is used to add to the value stored in a box." +#: js/blocks/MediaBlocks.js:888 +#.TRANS: show1 is show as in display an image or text on the screen. +msgid "show1" msgstr "" -#: js/BoxesBlocks.js:61 -msgid "It can also be used with other blocks such as Color and Pen size." +#: js/blocks/MediaBlocks.js:891 +msgid "obj" msgstr "" -#: js/BoxesBlocks.js:73 -msgid "add" +#: js/blocks/MediaBlocks.js:938 +msgid "The Media block is used to import an image." msgstr "" -#: js/BoxesBlocks.js:75 -#: js/temperament.js:716 -msgid "to" +#: js/blocks/MediaBlocks.js:973 +msgid "The Text block holds a text string." msgstr "" -#: js/BoxesBlocks.js:75 -#: js/BoxesBlocks.js:595 -#: js/HeapBlocks.js:544 -msgid "value1" +#: js/blocks/MeterBlocks.js:34 +#.TRANS: musical meter (time signature), e.g., 4:4 +msgid "current meter" msgstr "" -#: js/BoxesBlocks.js:118 -msgid "Block does not support incrementing." +#: js/blocks/MeterBlocks.js:85 +#.TRANS: number of beats per minute +msgid "beat factor" msgstr "" -#: js/BoxesBlocks.js:152 -msgid "The Add-1-to block adds one to the value stored in a box." +#: js/blocks/MeterBlocks.js:161 +msgid "The Beats per minute block returns the current beats per minute." msgstr "" -#: js/BoxesBlocks.js:163 -msgid "add 1 to" +#: js/blocks/MeterBlocks.js:169 +#: js/widgets/status.js:152 +#.TRANS: number of beats played per minute +msgid "beats per minute2" msgstr "" -#: js/BoxesBlocks.js:211 -msgid "The Subtract-1-from block subtracts one from the value stored in a box." +#: js/blocks/MeterBlocks.js:169 +#: js/blocks/MeterBlocks.js:1056 +#: js/blocks/MeterBlocks.js:1133 +#: js/blocks/MeterBlocks.js:1211 +#.TRANS: sets tempo by defining a beat and beats per minute +msgid "beats per minute" msgstr "" -#: js/BoxesBlocks.js:222 -msgid "subtract 1 from" +#: js/blocks/MeterBlocks.js:233 +#.TRANS: count of current musical measure in meter +msgid "measure count" msgstr "" -#: js/BoxesBlocks.js:270 -#: js/BoxesBlocks.js:387 -msgid "The Box block returns the value stored in a box." +#: js/blocks/MeterBlocks.js:241 +msgid "The Measure count block returns the current measure." msgstr "" -#: js/BoxesBlocks.js:500 -#: js/BoxesBlocks.js:576 -msgid "The Store in block will store a value in a box." +#: js/blocks/MeterBlocks.js:290 +#.TRANS: count of current beat in the meter +msgid "beat count" msgstr "" -#: js/BoxesBlocks.js:652 -msgid "The Box2 block returns the value stored in Box2." +#: js/blocks/MeterBlocks.js:300 +#: js/blocks/MeterBlocks.js:311 +#: js/blocks/MeterBlocks.js:565 +#: js/blocks/MeterBlocks.js:576 +msgid "The Beat count block is the number of the current beat," msgstr "" -#: js/BoxesBlocks.js:703 -msgid "The Store in Box2 block is used to store a value in Box2." +#: js/blocks/MeterBlocks.js:313 +#: js/blocks/MeterBlocks.js:578 +msgid "eg 1, 2, 3, or 4." msgstr "" -#: js/BoxesBlocks.js:715 -msgid "store in box2" +#: js/blocks/MeterBlocks.js:368 +#.TRANS: count the number of notes +msgid "sum note values" msgstr "" -#: js/BoxesBlocks.js:761 -msgid "The Box1 block returns the value stored in Box1." +#: js/blocks/MeterBlocks.js:376 +#: js/blocks/MeterBlocks.js:440 +msgid "The Note counter block can be used to count the number of contained notes." msgstr "" -#: js/BoxesBlocks.js:812 -msgid "The Store in Box1 block is used to store a value in Box1." +#: js/blocks/MeterBlocks.js:432 +#.TRANS: count the number of notes +msgid "note counter" msgstr "" -#: js/BoxesBlocks.js:826 -msgid "store in box1" +#: js/blocks/MeterBlocks.js:496 +#.TRANS: number of whole notes that have been played +msgid "whole notes played" msgstr "" -#: js/HeapBlocks.js:49 -msgid "The Heap block returns the heap." +#: js/blocks/MeterBlocks.js:505 +msgid "The Whole notes played block returns the total number of whole notes played." msgstr "" -#: js/HeapBlocks.js:133 -msgid "show heap" +#: js/blocks/MeterBlocks.js:555 +#: js/turtleactions/DictActions.js:83 +#.TRANS: number of notes that have been played +msgid "notes played" msgstr "" -#: js/HeapBlocks.js:181 -msgid "The Heap-length block returns the length of the heap." +#: js/blocks/MeterBlocks.js:653 +msgid "The No clock block decouples the notes from the master clock." msgstr "" -#: js/HeapBlocks.js:195 -msgid "heap length" +#: js/blocks/MeterBlocks.js:661 +#.TRANS: don't lock notes to master clock +msgid "no clock" msgstr "" -#: js/HeapBlocks.js:254 -msgid "The Heap-empty? block returns true if the heap is empty." +#: js/blocks/MeterBlocks.js:700 +msgid "on weak beat do" msgstr "" -#: js/HeapBlocks.js:268 -#.TRANS: Is the heap empty? -msgid "heap empty?" +#: js/blocks/MeterBlocks.js:705 +msgid "The On-weak-beat block lets you specify actions to take on weak (off) beats." msgstr "" -#: js/HeapBlocks.js:317 -msgid "The Empty-heap block empties the heap." +#: js/blocks/MeterBlocks.js:750 +msgid "on strong beat" msgstr "" -#: js/HeapBlocks.js:327 -#: js/HeapBlocks.js:647 -#.TRANS: empty the heap -msgid "empty heap" +#: js/blocks/MeterBlocks.js:758 +msgid "The On-strong-beat block lets you specify actions to take on specified beats." msgstr "" -#: js/HeapBlocks.js:371 -msgid "The Reverse-heap block reverses the order of the heap." +#: js/blocks/MeterBlocks.js:769 +msgid "beat" msgstr "" -#: js/HeapBlocks.js:384 -#.TRANS: reverse the order of the heap -msgid "reverse heap" +#: js/blocks/MeterBlocks.js:813 +msgid "on every beat do" msgstr "" -#: js/HeapBlocks.js:428 -msgid "The Index-heap block returns a value in the heap at a specified location." +#: js/blocks/MeterBlocks.js:821 +msgid "The On-every-beat block lets you specify actions to take on every beat." msgstr "" -#: js/HeapBlocks.js:443 -#.TRANS: retrieve a value from the heap at index position in the heap -msgid "index heap" +#: js/blocks/MeterBlocks.js:874 +msgid "on every note do" msgstr "" -#: js/HeapBlocks.js:523 -msgid "The Set-heap entry block sets a value in he heap at the specified location." +#: js/blocks/MeterBlocks.js:882 +msgid "The On-every-note block lets you specify actions to take on every note." msgstr "" -#: js/HeapBlocks.js:619 -msgid "The Pop block removes the value at the top of the heap." +#: js/blocks/MeterBlocks.js:928 +#: js/blocks/MeterBlocks.js:999 +#.TRANS: sets tempo by defining a beat and beats per minute +msgid "master beats per minute" msgstr "" -#: js/HeapBlocks.js:633 -#.TRANS: pop a value off the top of the heap -msgid "pop" +#: js/blocks/MeterBlocks.js:952 +#: js/blocks/MeterBlocks.js:1078 +#: js/blocks/MeterBlocks.js:1135 +msgid "bpm" msgstr "" -#: js/HeapBlocks.js:680 -msgid "The Push block adds a value to the top of the heap." +#: js/blocks/MeterBlocks.js:952 +#: js/blocks/MeterBlocks.js:1078 +#: js/blocks/MeterBlocks.js:1135 +msgid "beat value" msgstr "" -#: js/HeapBlocks.js:696 -#.TRANS: push a value onto the top of the heap -msgid "push" +#: js/blocks/MeterBlocks.js:1024 +#: js/blocks/MeterBlocks.js:1167 +#: js/blocks/MeterBlocks.js:1241 +msgid "Beats per minute must be > 30." msgstr "" -#: js/FlowBlocks.js:41 -msgid "The Backward block runs code in reverse order (Musical retrograde)." +#: js/blocks/MeterBlocks.js:1027 +#: js/blocks/MeterBlocks.js:1170 +#: js/blocks/MeterBlocks.js:1244 +msgid "Maximum beats per minute is 1000." msgstr "" -#: js/FlowBlocks.js:48 -msgid "backward" +#: js/blocks/MeterBlocks.js:1068 +msgid "The Beats per minute block sets the number of 1/4 notes per minute." msgstr "" -#: js/FlowBlocks.js:124 -msgid "The Duplicate block will run each block multiple times." +#: js/blocks/MeterBlocks.js:1279 +#.TRANS: anacrusis +msgid "pickup" msgstr "" -#: js/FlowBlocks.js:136 -msgid "duplicate" +#: js/blocks/MeterBlocks.js:1367 +msgid "number of beats" msgstr "" -#: js/FlowBlocks.js:334 -msgid "The Default block is used inside of a Switch to define the default action." +#: js/blocks/NumberBlocks.js:28 +msgid "The Int block returns an integer." msgstr "" -#: js/FlowBlocks.js:342 -msgid "default" +#: js/blocks/NumberBlocks.js:34 +msgid "int" msgstr "" -#: js/FlowBlocks.js:361 -#: js/FlowBlocks.js:418 -msgid "The Case Block must be used inside of a Switch Block." +#: js/blocks/NumberBlocks.js:73 +msgid "The Mod block returns the remainder from a division." msgstr "" -#: js/FlowBlocks.js:389 -msgid "The Case block is used inside of a Switch to define matches." +#: js/blocks/NumberBlocks.js:79 +msgid "mod" msgstr "" -#: js/FlowBlocks.js:397 -msgid "case" +#: js/blocks/NumberBlocks.js:141 +msgid "The Power block calculates a power function." msgstr "" -#: js/FlowBlocks.js:446 -msgid "The Switch block will run the code in the matching Case." +#: js/blocks/NumberBlocks.js:196 +msgid "The Sqrt block returns the square root." msgstr "" -#: js/FlowBlocks.js:454 -msgid "switch" +#: js/blocks/NumberBlocks.js:202 +msgid "sqrt" msgstr "" -#: js/FlowBlocks.js:595 -msgid "The Stop block will stop a loop" +#: js/blocks/NumberBlocks.js:248 +msgid "The Abs block returns the absolute value." msgstr "" -#: js/FlowBlocks.js:597 -msgid "Forever, Repeat, While, or Until." +#: js/blocks/NumberBlocks.js:254 +msgid "abs" msgstr "" -#: js/FlowBlocks.js:604 -#: js/phrasemaker.js:3799 -#: js/musickeyboard.js:629 -#: js/musickeyboard.js:631 -#: js/timbre.js:417 -#: js/timbre.js:419 -#: plugins/rodi.rtp:29 -#: plugins/rodi.rtp:73 -#: plugins/rodi.rtp:413 -msgid "stop" +#: js/blocks/NumberBlocks.js:295 +msgid "The Distance block returns the distance between two points. For example, between the mouse and the center of the screen." msgstr "" -#: js/FlowBlocks.js:653 -msgid "The Waitfor block will wait until the condition is true." +#: js/blocks/NumberBlocks.js:301 +#: plugins/rodi.rtp:310 +msgid "distance" msgstr "" -#: js/FlowBlocks.js:661 -msgid "wait for" +#: js/blocks/NumberBlocks.js:361 +msgid "The Divide block is used to divide." msgstr "" -#: js/FlowBlocks.js:732 -msgid "The Until block will repeat until the condition is true." +#: js/blocks/NumberBlocks.js:441 +msgid "The Multiply block is used to multiply." msgstr "" -#: js/FlowBlocks.js:740 -msgid "until" +#: js/blocks/NumberBlocks.js:612 +msgid "The Minus block is used to subtract." msgstr "" -#: js/FlowBlocks.js:742 -#: js/FlowBlocks.js:822 -msgid "do2" +#: js/blocks/NumberBlocks.js:723 +msgid "The Plus block is used to add." msgstr "" -#: js/FlowBlocks.js:812 -msgid "The While block will repeat while the condition is true." +#: js/blocks/NumberBlocks.js:849 +msgid "The One-of block returns one of two choices." msgstr "" -#: js/FlowBlocks.js:820 -msgid "while" +#: js/blocks/NumberBlocks.js:856 +#: js/blocks/PitchBlocks.js:616 +msgid "one of" msgstr "" -#: js/FlowBlocks.js:903 -#: js/FlowBlocks.js:968 -#: js/FlowBlocks.js:979 -msgid "In this example if the mouse button is pressed a snare drum will play." +#: js/blocks/NumberBlocks.js:858 +msgid "this" msgstr "" -#: js/FlowBlocks.js:925 -#: js/FlowBlocks.js:988 -msgid "if" +#: js/blocks/NumberBlocks.js:858 +msgid "that" msgstr "" -#: js/FlowBlocks.js:927 -#: js/FlowBlocks.js:990 -msgid "then" +#: js/blocks/NumberBlocks.js:913 +msgid "The Random block returns a random number." msgstr "" -#: js/FlowBlocks.js:927 -msgid "else" +#: js/blocks/NumberBlocks.js:920 +msgid "random" msgstr "" -#: js/FlowBlocks.js:1025 -msgid "The Forever block will repeat the contained blocks forever." +#: js/blocks/NumberBlocks.js:922 +msgid "min" msgstr "" -#: js/FlowBlocks.js:1037 -msgid "forever" +#: js/blocks/NumberBlocks.js:922 +msgid "max" msgstr "" -#: js/FlowBlocks.js:1073 -msgid "The Repeat block will repeat the contained blocks." +#: js/blocks/NumberBlocks.js:986 +msgid "The Number block holds a number." msgstr "" -#: js/FlowBlocks.js:1075 -msgid "In this example the note will be played 4 times." +#: js/blocks/OrnamentBlocks.js:32 +msgid "staccato factor" msgstr "" -#: js/FlowBlocks.js:1083 -msgid "repeat" +#: js/blocks/OrnamentBlocks.js:108 +msgid "slur factor" msgstr "" -#: js/FlowBlocks.js:1123 -msgid "duplicate factor" +#: js/blocks/OrnamentBlocks.js:217 +#: js/blocks/OrnamentBlocks.js:309 +#.TRANS: the neighbor refers to a neighboring note, e.g., D is a neighbor of C +msgid "neighbor" msgstr "" -#: js/PitchBlocks.js:39 -#: js/musicutils.js:722 -#: js/musicutils.js:1117 -#: js/synthutils.js:112 -#.TRANS: square wave -msgid "square" +#: js/blocks/OrnamentBlocks.js:293 +msgid "The Neighbor block rapidly switches between neighboring pitches." msgstr "" -#: js/PitchBlocks.js:62 -#: js/ToneBlocks.js:39 -#: js/musicutils.js:723 -#: js/musicutils.js:1118 -#: js/synthutils.js:116 -#.TRANS: triangle wave -msgid "triangle" +#: js/blocks/OrnamentBlocks.js:364 +msgid "glide" msgstr "" -#: js/PitchBlocks.js:85 -#: js/musicutils.js:721 -#: js/musicutils.js:1116 -#: js/synthutils.js:110 -#.TRANS: sine wave -msgid "sine" +#: js/blocks/OrnamentBlocks.js:479 +#: js/blocks/OrnamentBlocks.js:643 +msgid "slur" msgstr "" -#: js/PitchBlocks.js:108 -#: js/musicutils.js:724 -#: js/musicutils.js:1119 -#: js/synthutils.js:114 -#.TRANS: sawtooth wave -msgid "sawtooth" +#: js/blocks/OrnamentBlocks.js:558 +#: js/blocks/OrnamentBlocks.js:710 +#.TRANS: play each note sharply detached from the others +msgid "staccato" msgstr "" -#: js/PitchBlocks.js:141 -#.TRANS: musical transposition (adjustment of pitch up or down) -msgid "transposition" +#: js/blocks/RhythmBlocks.js:182 +#: js/blocks/RhythmBlocks.js:1086 +#: js/blocks/RhythmBlocks.js:1162 +msgid "Note value must be greater than 0." msgstr "" -#: js/PitchBlocks.js:168 -#.TRANS: step down one note in current musical scale -msgid "scalar step down" +#: js/blocks/RhythmBlocks.js:215 +#: js/blocks/RhythmBlocks.js:278 +#: js/blocks/RhythmBlocks.js:350 +#.TRANS: swing is a rhythmic variation that emphasises the offbeat +msgid "swing" msgstr "" -#: js/PitchBlocks.js:172 -msgid "The Scalar step down block returns the number of semi-tones down to the previous note in the current key and mode." +#: js/blocks/RhythmBlocks.js:355 +#.TRANS: the amount to shift to the offbeat note +msgid "swing value" msgstr "" -#: js/PitchBlocks.js:190 -#.TRANS: step up one note in current musical scale -msgid "scalar step up" +#: js/blocks/RhythmBlocks.js:419 +msgid "The Skip notes block will cause notes to be skipped." msgstr "" -#: js/PitchBlocks.js:194 -msgid "The Scalar step up block returns the number of semi-tones up to the next note in the current key and mode." +#: js/blocks/RhythmBlocks.js:427 +#.TRANS: substitute rests on notes being skipped +msgid "skip notes" msgstr "" -#: js/PitchBlocks.js:212 -#.TRANS: the change measured in half-steps between the current pitch and the previous pitch -msgid "change in pitch" +#: js/blocks/RhythmBlocks.js:489 +#.TRANS: speed up note duration by some factor, e.g. convert 1/4 to 1/8 notes by using a factor of 2 +msgid "multiply note value" msgstr "" -#: js/PitchBlocks.js:216 -msgid "The Change in pitch block is the difference (in half steps) between the current pitch being played and the previous pitch played." +#: js/blocks/RhythmBlocks.js:542 +msgid "The Tie block works on pairs of notes, combining them into one note." msgstr "" -#: js/PitchBlocks.js:243 -#.TRANS: the change measured in scale-steps between the current pitch and the previous pitch -msgid "scalar change in pitch" +#: js/blocks/RhythmBlocks.js:550 +#.TRANS: tie notes together into one longer note +msgid "tie" msgstr "" -#: js/PitchBlocks.js:250 -#: js/PitchBlocks.js:432 -#: js/PitchBlocks.js:1629 -#: js/DictActions.js:89 -#: js/temperament.js:477 -#: js/temperament.js:481 -#: js/temperament.js:714 -#.TRANS: convert current note to piano key (1-88) -#.TRANS: a mapping of pitch to the 88 piano keys -msgid "pitch number" +#: js/blocks/RhythmBlocks.js:591 +#: js/blocks/RhythmBlocks.js:671 +#.TRANS: a dotted note is played for 1.5x its value, e.g., 1/8. --> 3/16 +msgid "dot" msgstr "" -#: js/PitchBlocks.js:256 -msgid "The Pitch number block is the value of the pitch of the note currently being played." +#: js/blocks/RhythmBlocks.js:619 +#: js/turtleactions/RhythmActions.js:221 +msgid "An argument of -1 results in a note value of 0." msgstr "" -#: js/PitchBlocks.js:329 -#: js/PitchBlocks.js:433 -#.TRANS: the current pitch expressed in Hertz -msgid "pitch in hertz" +#: js/blocks/RhythmBlocks.js:661 +msgid "The Dot block extends the duration of a note by 50%." msgstr "" -#: js/PitchBlocks.js:334 -msgid "The Pitch in Hertz block is the value in Hertz of the pitch of the note currently being played." +#: js/blocks/RhythmBlocks.js:663 +msgid "Eg a dotted quarter note will play for 3/8 (1/4 + 1/8) of a beat." msgstr "" -#: js/PitchBlocks.js:367 -#: js/DictActions.js:87 -msgid "current pitch" +#: js/blocks/RhythmBlocks.js:765 +#.TRANS: Japanese only: note value block for drum +msgid "note value drum" msgstr "" -#: js/PitchBlocks.js:373 -msgid "The Current Pitch block is used with the Pitch Converter block. In the example above, current pitch, sol 4, is displayed as 392 hertz." +#: js/blocks/RhythmBlocks.js:829 +msgid "392 hertz" msgstr "" -#: js/PitchBlocks.js:410 -msgid "This block converts the pitch value of the last note played into different formats such as hertz, letter name, pitch number, et al." +#: js/blocks/RhythmBlocks.js:1119 +msgid "The Note block is a container for one or more Pitch blocks." msgstr "" -#: js/PitchBlocks.js:434 -msgid "alphabet" +#: js/blocks/RhythmBlocks.js:1121 +msgid "The Note block specifies the duration (note value) of its contents." msgstr "" -#: js/PitchBlocks.js:436 -#.TRANS: Translate as "alphabet class" -msgid "letter class" +#: js/blocks/RhythmBlocks.js:1128 +#: js/blocks/PitchBlocks.js:974 +#: js/blocks/PitchBlocks.js:1007 +#: js/blocks/ProgramBlocks.js:1186 +#: js/blocks/ProgramBlocks.js:1227 +#: js/widgets/status.js:190 +#: js/widgets/temperament.js:464 +#: js/widgets/temperament.js:486 +#: js/widgets/temperament.js:496 +#: js/widgets/temperament.js:617 +#: plugins/rodi.rtp:192 +#.TRANS: a musical note consisting of pitch and duration +msgid "note" msgstr "" -#: js/PitchBlocks.js:437 -msgid "solfege class" +#: js/blocks/RhythmBlocks.js:1130 +msgid "value2" msgstr "" -#: js/PitchBlocks.js:438 -msgid "staff y" +#: js/blocks/RhythmBlocks.js:1200 +msgid "define frequency" msgstr "" -#: js/PitchBlocks.js:439 -msgid "solfege syllable" +#: js/blocks/RhythmBlocks.js:1218 +#: js/widgets/temperament.js:787 +#: js/widgets/temperament.js:1587 +msgid "octave space" msgstr "" -#: js/PitchBlocks.js:440 -msgid "pitch class" +#: js/blocks/SensorsBlocks.js:36 +msgid "The Input block prompts for keyboard input." msgstr "" -#: js/PitchBlocks.js:441 -msgid "scalar class" +#: js/blocks/SensorsBlocks.js:46 +msgid "input" msgstr "" -#: js/PitchBlocks.js:443 -msgid "nth degree" +#: js/blocks/SensorsBlocks.js:64 +msgid "Input a value" msgstr "" -#: js/PitchBlocks.js:444 -msgid "pitch to shade" +#: js/blocks/SensorsBlocks.js:126 +msgid "input value" msgstr "" -#: js/PitchBlocks.js:445 -msgid "pitch to color" +#: js/blocks/SensorsBlocks.js:131 +msgid "The Input-value block stores the input." msgstr "" -#: js/PitchBlocks.js:629 -#: js/musickeyboard.js:565 -#.TRANS: MIDI is a technical standard for electronic music -msgid "MIDI" +#: js/blocks/SensorsBlocks.js:238 +msgid "loudness" msgstr "" -#: js/PitchBlocks.js:642 -#.TRANS: set an offset associated with the numeric piano keyboard mapping -msgid "set pitch number offset" +#: js/blocks/SensorsBlocks.js:245 +msgid "The Loudness block returns the volume detected by the microphone." msgstr "" -#: js/PitchBlocks.js:645 -msgid "The Set pitch number offset block is used to set the offset for mapping pitch numbers to pitch and octave." +#: js/blocks/SensorsBlocks.js:300 +msgid "click" msgstr "" -#: js/PitchBlocks.js:679 -#.TRANS: convert piano key number (1-88) to pitch -msgid "number to pitch" +#: js/blocks/SensorsBlocks.js:306 +msgid "The Click block triggers an event if a mouse has been clicked." msgstr "" -#: js/PitchBlocks.js:682 -msgid "The Number to pitch block will convert a pitch number to a pich name." +#: js/blocks/SensorsBlocks.js:313 +msgid "The Click block triggers an event if a turtle has been clicked." msgstr "" -#: js/PitchBlocks.js:715 -#.TRANS: convert piano key number (1-88) to octave -msgid "number to octave" +#: js/blocks/SensorsBlocks.js:342 +msgid "cursor over" msgstr "" -#: js/PitchBlocks.js:717 -msgid "The Number to octave block will convert a pitch number to an octave." +#: js/blocks/SensorsBlocks.js:387 +msgid "cursor out" msgstr "" -#: js/PitchBlocks.js:726 -msgid "y to pitch" +#: js/blocks/SensorsBlocks.js:433 +msgid "cursor button down" msgstr "" -#: js/PitchBlocks.js:729 -msgid "Y to pitch block will convert a staff y position to corresponding pitch notation." +#: js/blocks/SensorsBlocks.js:477 +msgid "cursor button up" msgstr "" -#: js/PitchBlocks.js:841 -msgid "accidental selector" +#: js/blocks/SensorsBlocks.js:521 +#: js/blocks/PenBlocks.js:48 +#: plugins/rodi.rtp:219 +msgid "blue" msgstr "" -#: js/PitchBlocks.js:844 -msgid "The Accidental selector block is used to choose between double-sharp, sharp, natural, flat, and double-flat." +#: js/blocks/SensorsBlocks.js:577 +#: js/blocks/PenBlocks.js:64 +#: plugins/rodi.rtp:218 +msgid "green" msgstr "" -#: js/PitchBlocks.js:858 -msgid "Pitch can be specified in terms of ni dha pa ma ga re sa." +#: js/blocks/SensorsBlocks.js:633 +#: js/blocks/PenBlocks.js:112 +#: plugins/rodi.rtp:217 +msgid "red" msgstr "" -#: js/PitchBlocks.js:872 -msgid "Pitch can be specified in terms of C D E F G A B." +#: js/blocks/SensorsBlocks.js:638 +msgid "The Get red block returns the red component of the pixel under the mouse." msgstr "" -#: js/PitchBlocks.js:883 -msgid "solfege" +#: js/blocks/SensorsBlocks.js:644 +msgid "The Get red block returns the red component of the pixel under the turtle." msgstr "" -#: js/PitchBlocks.js:886 -msgid "Pitch can be specified in terms of do re mi fa sol la ti." +#: js/blocks/SensorsBlocks.js:685 +#: plugins/rodi.rtp:216 +msgid "pixel color" msgstr "" -#: js/PitchBlocks.js:920 -msgid "The Invert block rotates any contained notes around a target note." +#: js/blocks/SensorsBlocks.js:690 +msgid "The Get pixel block returns the color of the pixel under the mouse." msgstr "" -#: js/PitchBlocks.js:927 -#.TRANS: pitch inversion rotates a pitch around another pitch -msgid "invert" +#: js/blocks/SensorsBlocks.js:696 +msgid "The Get pixel block returns the color of the pixel under the turtle." msgstr "" -#: js/PitchBlocks.js:929 -#: js/PitchBlocks.js:935 -#: js/PitchActions.js:727 -#: js/musicutils.js:726 -#: js/musicutils.js:902 -#.TRANS: invert based on even or odd number or musical scale -#.TRANS: even numbers -msgid "even" +#: js/blocks/SensorsBlocks.js:758 +msgid "time" msgstr "" -#: js/PitchBlocks.js:935 -#: js/PitchActions.js:729 -#: js/musicutils.js:728 -#: js/musicutils.js:903 -#.TRANS: odd numbers -msgid "odd" +#: js/blocks/SensorsBlocks.js:804 +msgid "cursor y" msgstr "" -#: js/PitchBlocks.js:935 -#: js/PitchActions.js:731 -#: js/musicutils.js:729 -#: js/musicutils.js:904 -msgid "scalar" +#: js/blocks/SensorsBlocks.js:809 +msgid "The Cursor Y block returns the vertical position of the mouse." msgstr "" -#: js/PitchBlocks.js:966 -#.TRANS: pitch inversion rotates a pitch around another pitch (odd number) -msgid "invert (odd)" +#: js/blocks/SensorsBlocks.js:845 +msgid "cursor x" msgstr "" -#: js/PitchBlocks.js:999 -#.TRANS: pitch inversion rotates a pitch around another pitch (even number) -msgid "invert (even)" +#: js/blocks/SensorsBlocks.js:850 +msgid "The Cursor X block returns the horizontal position of the mouse." msgstr "" -#: js/PitchBlocks.js:1020 -#.TRANS: register is the octave of the current pitch -msgid "register" +#: js/blocks/SensorsBlocks.js:886 +msgid "mouse button" msgstr "" -#: js/PitchBlocks.js:1024 -msgid "The Register block provides an easy way to modify the register (octave) of the notes that follow it." +#: js/blocks/SensorsBlocks.js:888 +msgid "The Mouse-button block returns True if the mouse button is pressed." msgstr "" -#: js/PitchBlocks.js:1074 -msgid "The Semi-tone transposition block will shift the pitches contained inside Note blocks up (or down) by half steps." +#: js/blocks/SensorsBlocks.js:934 +msgid "to ASCII" msgstr "" -#: js/PitchBlocks.js:1076 -msgid "In the example shown above, sol is shifted up to sol#." +#: js/blocks/SensorsBlocks.js:938 +msgid "The To ASCII block converts numbers to letters." msgstr "" -#: js/PitchBlocks.js:1082 -#.TRANS: adjust the amount of shift (up or down) of a pitch -msgid "semi-tone transpose" +#: js/blocks/SensorsBlocks.js:1005 +msgid "The Keyboard block returns computer keyboard input." msgstr "" -#: js/PitchBlocks.js:1115 -msgid "The Transpose by Ratio block will shift the pitches contained inside Note blocks up (or down) by a ratio" +#: js/blocks/RhythmBlockPaletteBlocks.js:50 +#: js/blocks/RhythmBlockPaletteBlocks.js:233 +#.TRANS: rhythm block +#.TRANS: translate "rhythm1" as rhythm +msgid "rhythm1" msgstr "" -#: js/PitchBlocks.js:1121 -#.TRANS: adjust the amount of shift (up or down) of a pitch -msgid "transpose by ratio" +#: js/blocks/RhythmBlockPaletteBlocks.js:70 +#: js/blocks/RhythmBlockPaletteBlocks.js:252 +#: js/blocks/RhythmBlockPaletteBlocks.js:485 +#: js/blocks/RhythmBlockPaletteBlocks.js:554 +#: js/blocks/RhythmBlockPaletteBlocks.js:875 +msgid "number of notes" msgstr "" -#: js/PitchBlocks.js:1204 -#.TRANS: down sixth means the note is five scale degrees below current note -msgid "down sixth" +#: js/blocks/RhythmBlockPaletteBlocks.js:126 +msgid "polyphonic rhythm" msgstr "" -#: js/PitchBlocks.js:1223 -#.TRANS: down third means the note is two scale degrees below current note -msgid "down third" +#: js/blocks/RhythmBlockPaletteBlocks.js:219 +msgid "The Rhythm block is used to generate rhythm patterns." msgstr "" -#: js/PitchBlocks.js:1242 -#.TRANS: seventh means the note is the six scale degrees above current note -msgid "seventh" +#: js/blocks/RhythmBlockPaletteBlocks.js:280 +msgid "1/64 note" msgstr "" -#: js/PitchBlocks.js:1261 -#.TRANS: sixth means the note is the five scale degrees above current note -msgid "sixth" +#: js/blocks/RhythmBlockPaletteBlocks.js:304 +msgid "1/32 note" msgstr "" -#: js/PitchBlocks.js:1280 -#.TRANS: fifth means the note is the four scale degrees above current note -msgid "fifth" +#: js/blocks/RhythmBlockPaletteBlocks.js:332 +msgid "1/16 note" msgstr "" -#: js/PitchBlocks.js:1300 -#.TRANS: fourth means the note is three scale degrees above current note -msgid "fourth" +#: js/blocks/RhythmBlockPaletteBlocks.js:360 +msgid "eighth note" msgstr "" -#: js/PitchBlocks.js:1319 -#.TRANS: third means the note is two scale degrees above current note -msgid "third" +#: js/blocks/RhythmBlockPaletteBlocks.js:388 +msgid "quarter note" msgstr "" -#: js/PitchBlocks.js:1338 -#.TRANS: second means the note is one scale degree above current note -msgid "second" +#: js/blocks/RhythmBlockPaletteBlocks.js:416 +msgid "half note" msgstr "" -#: js/PitchBlocks.js:1379 -msgid "The Scalar transposition block will shift the pitches contained inside Note blocks up (or down) the scale." +#: js/blocks/RhythmBlockPaletteBlocks.js:444 +msgid "whole note" msgstr "" -#: js/PitchBlocks.js:1381 -msgid "In the example shown above, sol is shifted up to la." +#: js/blocks/RhythmBlockPaletteBlocks.js:482 +#: js/blocks/RhythmBlockPaletteBlocks.js:551 +#: js/blocks/RhythmBlockPaletteBlocks.js:602 +#.TRANS: A tuplet is a note value divided into irregular time values. +msgid "tuplet" msgstr "" -#: js/PitchBlocks.js:1388 -#.TRANS: adjust the amount of shift (up or down) of a pitch by musical scale (scalar) steps -msgid "scalar transpose" +#: js/blocks/RhythmBlockPaletteBlocks.js:768 +msgid "septuplet" msgstr "" -#: js/PitchBlocks.js:1423 -msgid "The Accidental block is used to create sharps and flats" +#: js/blocks/RhythmBlockPaletteBlocks.js:796 +msgid "quintuplet" msgstr "" -#: js/PitchBlocks.js:1430 -#.TRANS: An accidental is a modification to a pitch, e.g., sharp or flat. -msgid "accidental override" +#: js/blocks/RhythmBlockPaletteBlocks.js:824 +msgid "triplet" msgstr "" -#: js/PitchBlocks.js:1543 -msgid "The Hertz block (in combination with a Number block) will play a sound at the specified frequency." +#: js/blocks/RhythmBlockPaletteBlocks.js:851 +msgid "simple tuplet" msgstr "" -#: js/PitchBlocks.js:1633 -msgid "The Pitch Number block will play a pitch associated by its number, e.g. 0 for C and 7 for G." +#: js/blocks/RhythmBlockPaletteBlocks.js:861 +msgid "Tuplets are a collection of notes that get scaled to a specific duration." msgstr "" -#: js/PitchBlocks.js:1665 -#: js/PitchBlocks.js:1707 -#.TRANS: a numeric mapping of the notes in an octave based on the musical mode -#.TRANS: a numeric mapping of the notes in an octave based on the musical mode -msgid "nth modal pitch" +#: js/blocks/DrumBlocks.js:59 +msgid "The Noise name block is used to select a noise synthesizer." msgstr "" -#: js/PitchBlocks.js:1668 -msgid "n^th Modal Pitch takes the pattern of pitches in semitones for a mode and makes each point a degree of the mode," +#: js/blocks/DrumBlocks.js:102 +msgid "The Drum name block is used to select a drum." msgstr "" -#: js/PitchBlocks.js:1670 -msgid "starting from 1 and regardless of tonal framework (i.e. not always 8 notes in the octave)" +#: js/blocks/DrumBlocks.js:146 +msgid "The Effects name block is used to select a sound effect." msgstr "" -#: js/PitchBlocks.js:1711 -msgid "N^th Modal Pitch takes a number as an input as the n^th degree for the given mode. 0 is the first position, 1 is the second, -1 is the note before the first etc." +#: js/blocks/DrumBlocks.js:163 +msgid "noise" msgstr "" -#: js/PitchBlocks.js:1713 -msgid "The pitches change according to the mode specified without any need for respellings." +#: js/blocks/DrumBlocks.js:177 +msgid "The Play noise block will generate white, pink, or brown noise." msgstr "" -#: js/PitchBlocks.js:1752 -msgid "Scale Degree is a common convention in music. Scale Degree offers seven possible positions in the scale (1-7) and can be modified via accidentals." +#: js/blocks/DrumBlocks.js:317 +msgid "Replace every instance of a pitch with a drum sound." msgstr "" -#: js/PitchBlocks.js:1754 -msgid "Scale Degree 1 is always the first pitch in a given scale, regardless of octave." +#: js/blocks/DrumBlocks.js:328 +#.TRANS: map a pitch to a drum sound +msgid "map pitch to drum" msgstr "" -#: js/PitchBlocks.js:1776 -#.TRANS: step some number of notes in current musical scale -msgid "scalar step" +#: js/blocks/DrumBlocks.js:395 +msgid "In the example above, a kick drum sound will be played instead of sol." msgstr "" -#: js/PitchBlocks.js:1781 -msgid "The Scalar Step block (in combination with a Number block) will play the next pitch in a scale," +#: js/blocks/DrumBlocks.js:407 +#.TRANS: set the current drum sound for playback +msgid "set drum" msgstr "" -#: js/PitchBlocks.js:1783 -msgid "eg if the last note played was sol, Scalar Step 1 will play la." +#: js/blocks/DrumBlocks.js:451 +msgid "sound effect" msgstr "" -#: js/PitchBlocks.js:1818 -msgid "The Pitch block specifies the pitch name and octave of a note that together determine the frequency of the note." +#: js/blocks/DrumBlocks.js:489 +msgid "You can use multiple Drum blocks within a Note block." msgstr "" -#: js/GraphicsBlocks.js:46 -#: js/DictActions.js:77 -#: js/DictActions.js:155 -#: js/DictActions.js:189 +#: js/blocks/GraphicsBlocks.js:46 +#: js/turtleactions/DictActions.js:77 +#: js/turtleactions/DictActions.js:144 +#: js/turtleactions/DictActions.js:173 msgid "heading" msgstr "سرفصل" -#: js/GraphicsBlocks.js:56 +#: js/blocks/GraphicsBlocks.js:56 msgid "The Heading block returns the orientation of the mouse." msgstr "" -#: js/GraphicsBlocks.js:62 +#: js/blocks/GraphicsBlocks.js:62 msgid "The Heading block returns the orientation of the turtle." msgstr "" -#: js/GraphicsBlocks.js:133 +#: js/blocks/GraphicsBlocks.js:133 msgid "The Y block returns the vertical position of the mouse." msgstr "" -#: js/GraphicsBlocks.js:140 +#: js/blocks/GraphicsBlocks.js:140 msgid "The Y block returns the vertical position of the turtle." msgstr "" -#: js/GraphicsBlocks.js:149 +#: js/blocks/GraphicsBlocks.js:149 msgid "y3" msgstr "" -#: js/GraphicsBlocks.js:219 +#: js/blocks/GraphicsBlocks.js:219 msgid "The X block returns the horizontal position of the mouse." msgstr "" -#: js/GraphicsBlocks.js:226 +#: js/blocks/GraphicsBlocks.js:226 msgid "The X block returns the horizontal position of the turtle." msgstr "" -#: js/GraphicsBlocks.js:235 +#: js/blocks/GraphicsBlocks.js:235 msgid "x3" msgstr "" -#: js/GraphicsBlocks.js:295 +#: js/blocks/GraphicsBlocks.js:295 msgid "scroll xy" msgstr "" -#: js/GraphicsBlocks.js:303 +#: js/blocks/GraphicsBlocks.js:303 msgid "The Scroll XY block moves the canvas." msgstr "" -#: js/GraphicsBlocks.js:313 +#: js/blocks/GraphicsBlocks.js:313 msgid "x2" msgstr "" -#: js/GraphicsBlocks.js:313 +#: js/blocks/GraphicsBlocks.js:313 msgid "y2" msgstr "" -#: js/GraphicsBlocks.js:373 -#: js/temperament.js:213 -#: js/temperament.js:241 +#: js/blocks/GraphicsBlocks.js:373 +#: js/widgets/temperament.js:319 +#: js/widgets/temperament.js:347 msgid "clear" msgstr "" -#: js/GraphicsBlocks.js:426 +#: js/blocks/GraphicsBlocks.js:426 msgid "The Control-point 2 block sets the second control point for the Bezier curve." msgstr "" -#: js/GraphicsBlocks.js:433 +#: js/blocks/GraphicsBlocks.js:433 msgid "control point 2" msgstr "" -#: js/GraphicsBlocks.js:436 -#: js/GraphicsBlocks.js:487 -#: js/GraphicsBlocks.js:534 -#: js/GraphicsBlocks.js:750 +#: js/blocks/GraphicsBlocks.js:436 +#: js/blocks/GraphicsBlocks.js:487 +#: js/blocks/GraphicsBlocks.js:534 +#: js/blocks/GraphicsBlocks.js:750 msgid "x1" msgstr "" -#: js/GraphicsBlocks.js:436 -#: js/GraphicsBlocks.js:487 -#: js/GraphicsBlocks.js:534 -#: js/GraphicsBlocks.js:750 +#: js/blocks/GraphicsBlocks.js:436 +#: js/blocks/GraphicsBlocks.js:487 +#: js/blocks/GraphicsBlocks.js:534 +#: js/blocks/GraphicsBlocks.js:750 msgid "y1" msgstr "" -#: js/GraphicsBlocks.js:477 +#: js/blocks/GraphicsBlocks.js:477 msgid "The Control-point 1 block sets the first control point for the Bezier curve." msgstr "" -#: js/GraphicsBlocks.js:484 +#: js/blocks/GraphicsBlocks.js:484 msgid "control point 1" msgstr "" -#: js/GraphicsBlocks.js:527 +#: js/blocks/GraphicsBlocks.js:527 msgid "The Bezier block draws a Bezier curve." msgstr "" -#: js/GraphicsBlocks.js:531 +#: js/blocks/GraphicsBlocks.js:531 msgid "bezier" msgstr "" -#: js/GraphicsBlocks.js:592 +#: js/blocks/GraphicsBlocks.js:592 msgid "The Arc block moves the turtle in an arc." msgstr "" -#: js/GraphicsBlocks.js:600 +#: js/blocks/GraphicsBlocks.js:600 msgid "arc" msgstr "" -#: js/GraphicsBlocks.js:603 +#: js/blocks/GraphicsBlocks.js:603 msgid "angle" msgstr "" -#: js/GraphicsBlocks.js:603 +#: js/blocks/GraphicsBlocks.js:603 msgid "radius" msgstr "" -#: js/GraphicsBlocks.js:620 -#: js/GraphicsBlocks.js:767 -#: js/GraphicsBlocks.js:1010 -#: js/GraphicsBlocks.js:1093 +#: js/blocks/GraphicsBlocks.js:620 +#: js/blocks/GraphicsBlocks.js:767 +#: js/blocks/GraphicsBlocks.js:1010 +#: js/blocks/GraphicsBlocks.js:1093 msgid "Value must be within -5000 to 5000 when Wrap Mode is off." msgstr "" -#: js/GraphicsBlocks.js:622 -#: js/GraphicsBlocks.js:769 -#: js/GraphicsBlocks.js:1012 -#: js/GraphicsBlocks.js:1095 +#: js/blocks/GraphicsBlocks.js:622 +#: js/blocks/GraphicsBlocks.js:769 +#: js/blocks/GraphicsBlocks.js:1012 +#: js/blocks/GraphicsBlocks.js:1095 msgid "Value must be within -20000 to 20000 when Wrap Mode is on." msgstr "" -#: js/GraphicsBlocks.js:660 +#: js/blocks/GraphicsBlocks.js:660 msgid "set heading" msgstr "" -#: js/GraphicsBlocks.js:673 +#: js/blocks/GraphicsBlocks.js:673 msgid "The Set heading block sets the heading of the turtle." msgstr "" -#: js/GraphicsBlocks.js:733 +#: js/blocks/GraphicsBlocks.js:733 msgid "The Set XY block moves the mouse to a specific position on the screen." msgstr "" -#: js/GraphicsBlocks.js:739 +#: js/blocks/GraphicsBlocks.js:739 msgid "The Set XY block moves the turtle to a specific position on the screen." msgstr "" -#: js/GraphicsBlocks.js:747 +#: js/blocks/GraphicsBlocks.js:747 msgid "set xy" msgstr "" -#: js/GraphicsBlocks.js:819 +#: js/blocks/GraphicsBlocks.js:819 msgid "The Right block turns the mouse to the right." msgstr "" -#: js/GraphicsBlocks.js:826 +#: js/blocks/GraphicsBlocks.js:826 msgid "The Right block turns the turtle to the right." msgstr "" -#: js/GraphicsBlocks.js:835 +#: js/blocks/GraphicsBlocks.js:835 msgid "right1" msgstr "" -#: js/GraphicsBlocks.js:835 +#: js/blocks/GraphicsBlocks.js:835 #: plugins/rodi.rtp:77 #: plugins/rodi.rtp:340 #: plugins/rodi.rtp:375 msgid "right" msgstr "" -#: js/GraphicsBlocks.js:899 +#: js/blocks/GraphicsBlocks.js:899 msgid "The Left block turns the mouse to the left." msgstr "" -#: js/GraphicsBlocks.js:906 +#: js/blocks/GraphicsBlocks.js:906 msgid "The Left block turns the turtle to the left." msgstr "" -#: js/GraphicsBlocks.js:915 +#: js/blocks/GraphicsBlocks.js:915 msgid "left1" msgstr "" -#: js/GraphicsBlocks.js:915 +#: js/blocks/GraphicsBlocks.js:915 #: plugins/rodi.rtp:79 #: plugins/rodi.rtp:339 #: plugins/rodi.rtp:362 msgid "left" msgstr "" -#: js/GraphicsBlocks.js:967 -#: js/temperament.js:734 -#: js/temperament.js:933 +#: js/blocks/GraphicsBlocks.js:967 +#: js/widgets/temperament.js:875 +#: js/widgets/temperament.js:1078 #: plugins/rodi.rtp:69 #: plugins/rodi.rtp:387 msgid "back" msgstr "" -#: js/GraphicsBlocks.js:976 +#: js/blocks/GraphicsBlocks.js:976 msgid "The Back block moves the mouse backward." msgstr "" -#: js/GraphicsBlocks.js:983 +#: js/blocks/GraphicsBlocks.js:983 msgid "The Back block moves the turtle backward." msgstr "" -#: js/GraphicsBlocks.js:1050 +#: js/blocks/GraphicsBlocks.js:1050 #: plugins/rodi.rtp:71 #: plugins/rodi.rtp:400 msgid "forward" msgstr "" -#: js/GraphicsBlocks.js:1059 +#: js/blocks/GraphicsBlocks.js:1059 msgid "The Forward block moves the mouse forward." msgstr "" -#: js/GraphicsBlocks.js:1066 +#: js/blocks/GraphicsBlocks.js:1066 msgid "The Forward block moves the turtle forward." msgstr "" -#: js/GraphicsBlocks.js:1154 -#: js/GraphicsBlocks.js:1172 +#: js/blocks/GraphicsBlocks.js:1154 +#: js/blocks/GraphicsBlocks.js:1172 msgid "wrap" msgstr "" -#: js/OrnamentBlocks.js:32 -msgid "staccato factor" -msgstr "" - -#: js/OrnamentBlocks.js:108 -msgid "slur factor" -msgstr "" - -#: js/OrnamentBlocks.js:217 -#: js/OrnamentBlocks.js:309 -#.TRANS: the neighbor refers to a neighboring note, e.g., D is a neighbor of C -msgid "neighbor" -msgstr "" - -#: js/OrnamentBlocks.js:293 -msgid "The Neighbor block rapidly switches between neighboring pitches." -msgstr "" - -#: js/OrnamentBlocks.js:364 -msgid "glide" -msgstr "" - -#: js/OrnamentBlocks.js:479 -#: js/OrnamentBlocks.js:643 -msgid "slur" -msgstr "" - -#: js/OrnamentBlocks.js:558 -#: js/OrnamentBlocks.js:710 -#.TRANS: play each note sharply detached from the others -msgid "staccato" -msgstr "" - -#: js/PenBlocks.js:24 +#: js/blocks/PenBlocks.js:30 msgid "purple" msgstr "" -#: js/PenBlocks.js:37 -#: js/SensorsBlocks.js:521 -#: plugins/rodi.rtp:219 -msgid "blue" -msgstr "" - -#: js/PenBlocks.js:50 -#: js/SensorsBlocks.js:577 -#: plugins/rodi.rtp:218 -msgid "green" -msgstr "" - -#: js/PenBlocks.js:63 +#: js/blocks/PenBlocks.js:80 msgid "yellow" msgstr "" -#: js/PenBlocks.js:76 +#: js/blocks/PenBlocks.js:96 #: plugins/nutrition.rtp:164 msgid "orange" msgstr "" -#: js/PenBlocks.js:89 -#: js/SensorsBlocks.js:633 -#: plugins/rodi.rtp:217 -msgid "red" -msgstr "" - -#: js/PenBlocks.js:102 +#: js/blocks/PenBlocks.js:128 msgid "white" msgstr "" -#: js/PenBlocks.js:115 +#: js/blocks/PenBlocks.js:144 msgid "black" msgstr "" -#: js/PenBlocks.js:128 +#: js/blocks/PenBlocks.js:163 msgid "begin fill" msgstr "" -#: js/PenBlocks.js:143 +#: js/blocks/PenBlocks.js:190 msgid "end fill" msgstr "" -#: js/PenBlocks.js:159 -#: js/PenBlocks.js:386 +#: js/blocks/PenBlocks.js:212 +#: js/blocks/PenBlocks.js:560 #.TRANS: set the background color msgid "background" msgstr "" -#: js/PenBlocks.js:206 -#: js/DictActions.js:71 -#: js/DictActions.js:149 -#: js/DictActions.js:186 +#: js/blocks/PenBlocks.js:274 +#: js/turtleactions/DictActions.js:71 +#: js/turtleactions/DictActions.js:138 +#: js/turtleactions/DictActions.js:170 msgid "grey" msgstr "" -#: js/PenBlocks.js:210 +#: js/blocks/PenBlocks.js:282 msgid "The Grey block returns the current pen grey value." msgstr "" -#: js/PenBlocks.js:243 -#: js/DictActions.js:69 -#: js/DictActions.js:147 -#: js/DictActions.js:185 +#: js/blocks/PenBlocks.js:340 +#: js/turtleactions/DictActions.js:69 +#: js/turtleactions/DictActions.js:136 +#: js/turtleactions/DictActions.js:169 msgid "shade" msgstr "" -#: js/PenBlocks.js:247 +#: js/blocks/PenBlocks.js:347 msgid "The Shade block returns the current pen shade value." msgstr "" -#: js/PenBlocks.js:280 -#: js/DictActions.js:67 -#: js/DictActions.js:145 -#: js/DictActions.js:184 +#: js/blocks/PenBlocks.js:405 +#: js/turtleactions/DictActions.js:67 +#: js/turtleactions/DictActions.js:134 +#: js/turtleactions/DictActions.js:168 msgid "color" msgstr "" -#: js/PenBlocks.js:285 +#: js/blocks/PenBlocks.js:415 msgid "The Color block returns the current pen color." msgstr "" -#: js/PenBlocks.js:318 -#: js/DictActions.js:73 -#: js/DictActions.js:151 -#: js/DictActions.js:187 +#: js/blocks/PenBlocks.js:470 +#: js/turtleactions/DictActions.js:73 +#: js/turtleactions/DictActions.js:140 +#: js/turtleactions/DictActions.js:171 msgid "pen size" msgstr "" -#: js/PenBlocks.js:322 +#: js/blocks/PenBlocks.js:474 msgid "The Pen size block returns the current pen size value." msgstr "" -#: js/PenBlocks.js:355 +#: js/blocks/PenBlocks.js:513 msgid "set font" msgstr "" -#: js/PenBlocks.js:358 +#: js/blocks/PenBlocks.js:518 msgid "The Set font block sets the font used by the Show block." msgstr "" -#: js/PenBlocks.js:391 +#: js/blocks/PenBlocks.js:567 msgid "The Background block sets the window background color." msgstr "" -#: js/PenBlocks.js:408 +#: js/blocks/PenBlocks.js:598 msgid "The Hollow line block creates a line with a hollow center." msgstr "" -#: js/PenBlocks.js:415 +#: js/blocks/PenBlocks.js:606 #.TRANS: draw a line logo has a hollow space down its center msgid "hollow line" msgstr "" -#: js/PenBlocks.js:462 +#: js/blocks/PenBlocks.js:675 msgid "The Fill block fills in a shape with a color." msgstr "" -#: js/PenBlocks.js:470 +#: js/blocks/PenBlocks.js:684 #.TRANS: fill in as a solid color msgid "fill" msgstr "" -#: js/PenBlocks.js:527 +#: js/blocks/PenBlocks.js:761 #.TRANS: raise up the pen so logo it does not draw when it is moved msgid "pen up" msgstr "" -#: js/PenBlocks.js:532 +#: js/blocks/PenBlocks.js:768 msgid "The Pen-up block raises the pen so that it does not draw." msgstr "" -#: js/PenBlocks.js:552 +#: js/blocks/PenBlocks.js:802 #.TRANS: put down the pen so logo it draws when it is moved msgid "pen down" msgstr "" -#: js/PenBlocks.js:557 +#: js/blocks/PenBlocks.js:810 msgid "The Pen-down block lowers the pen so that it draws." msgstr "" -#: js/PenBlocks.js:577 +#: js/blocks/PenBlocks.js:844 #.TRANS: set the width of the line drawn by the pen msgid "set pen size" msgstr "" -#: js/PenBlocks.js:583 +#: js/blocks/PenBlocks.js:854 msgid "The Set-pen-size block changes the size of the pen." msgstr "" -#: js/PenBlocks.js:623 +#: js/blocks/PenBlocks.js:913 #.TRANS: set degree of translucence of the pen color msgid "set translucency" msgstr "" -#: js/PenBlocks.js:627 +#: js/blocks/PenBlocks.js:921 msgid "The Set translucency block changes the opacity of the pen." msgstr "" -#: js/PenBlocks.js:668 +#: js/blocks/PenBlocks.js:981 msgid "set hue" msgstr "" -#: js/PenBlocks.js:672 +#: js/blocks/PenBlocks.js:989 msgid "The Set hue block changes the color of the pen." msgstr "" -#: js/PenBlocks.js:711 +#: js/blocks/PenBlocks.js:1047 msgid "set shade" msgstr "" -#: js/PenBlocks.js:717 +#: js/blocks/PenBlocks.js:1057 msgid "The Set-shade block changes the pen color from dark to light." msgstr "" -#: js/PenBlocks.js:757 +#: js/blocks/PenBlocks.js:1111 #.TRANS: set the level of vividness of the pen color msgid "set grey" msgstr "" -#: js/PenBlocks.js:761 +#: js/blocks/PenBlocks.js:1119 msgid "The Set grey block changes the vividness of the pen color." msgstr "" -#: js/PenBlocks.js:800 +#: js/blocks/PenBlocks.js:1172 msgid "set color" msgstr "" -#: js/PenBlocks.js:806 +#: js/blocks/PenBlocks.js:1182 msgid "The Set-color block changes the pen color." msgstr "" -#: js/VolumeBlocks.js:35 -msgid "synth volume" -msgstr "" - -#: js/VolumeBlocks.js:39 -msgid "The Synth volume block returns the current volume of the current synthesizer." -msgstr "" - -#: js/VolumeBlocks.js:47 -#: js/musicutils.js:730 -#: js/synthutils.js:56 -#.TRANS: musical instrument -msgid "piano" -msgstr "" - -#: js/VolumeBlocks.js:105 -msgid "master volume" -msgstr "" - -#: js/VolumeBlocks.js:109 -msgid "The Master volume block returns the master volume." -msgstr "" - -#: js/VolumeBlocks.js:355 -#: js/VolumeBlocks.js:524 -msgid "set synth volume" -msgstr "" - -#: js/VolumeBlocks.js:362 -#: js/VolumeBlocks.js:545 -msgid "synth" -msgstr "" - -#: js/VolumeBlocks.js:403 -#: js/VolumeBlocks.js:577 -#: js/VolumeBlocks.js:740 -#: js/VolumeActions.js:173 -msgid "Setting volume to 0." -msgstr "" - -#: js/VolumeBlocks.js:440 -msgid "Synth not found" -msgstr "" - -#: js/VolumeBlocks.js:494 -msgid "set drum volume" -msgstr "" - -#: js/VolumeBlocks.js:530 -msgid "The Set synth volume block will change the volume of a particular synth," -msgstr "" - -#: js/VolumeBlocks.js:532 -msgid "eg guitar violin snare drum etc." -msgstr "" - -#: js/VolumeBlocks.js:534 -msgid "The default volume is 50." -msgstr "" - -#: js/VolumeBlocks.js:536 -msgid "The range is 0 for silence to 100 for full volume." -msgstr "" - -#: js/VolumeBlocks.js:597 -msgid "set panning" -msgstr "" - -#: js/VolumeBlocks.js:603 -msgid "The Set Panning block sets the panning for all synthesizers." -msgstr "" - -#: js/VolumeBlocks.js:625 -msgid "Warning: Sound is coming out from only the left or right side." -msgstr "" - -#: js/VolumeBlocks.js:647 -#: js/VolumeBlocks.js:695 -msgid "set master volume" -msgstr "" - -#: js/VolumeBlocks.js:653 -msgid "The Set master volume block sets the volume for all synthesizers." -msgstr "" - -#: js/VolumeBlocks.js:784 -msgid "The Set relative volume block changes the volume of the contained notes." -msgstr "" - -#: js/VolumeBlocks.js:791 -msgid "set relative volume" -msgstr "" - -#: js/VolumeBlocks.js:857 -msgid "decrescendo" -msgstr "" - -#: js/VolumeBlocks.js:921 -msgid "crescendo" -msgstr "" - -#: js/ToneBlocks.js:34 -msgid "oscillator" -msgstr "" - -#: js/ToneBlocks.js:44 -#: js/timbre.js:1562 -#.TRANS: Partials refers to the number of sine waves combined into the sound. -msgid "partials" -msgstr "" - -#: js/ToneBlocks.js:76 -msgid "You are adding multiple oscillator blocks." -msgstr "" - -#: js/ToneBlocks.js:144 -#: js/timbre.js:1225 -#.TRANS: a duo synthesizer combines a synth with a sequencer -msgid "duo synth" -msgstr "" - -#: js/ToneBlocks.js:149 -msgid "The Duo synth block is a duo-frequency modulator used to define a timbre." -msgstr "" - -#: js/ToneBlocks.js:157 -#: js/timbre.js:1476 -msgid "vibrato rate" -msgstr "" - -#: js/ToneBlocks.js:157 -msgid "vibrato intensity" -msgstr "" - -#: js/ToneBlocks.js:185 -#: js/timbre.js:1221 -#.TRANS: AM (amplitude modulation) synthesizer -msgid "AM synth" -msgstr "" - -#: js/ToneBlocks.js:189 -msgid "The AM synth block is an amplitude modulator used to define a timbre." -msgstr "" - -#: js/ToneBlocks.js:224 -#: js/timbre.js:1223 -#.TRANS: FM (frequency modulation) synthesizer -msgid "FM synth" -msgstr "" - -#: js/ToneBlocks.js:228 -msgid "The FM synth block is a frequency modulator used to define a timbre." +#: js/blocks/PitchBlocks.js:141 +#.TRANS: musical transposition (adjustment of pitch up or down) +msgid "transposition" msgstr "" -#: js/ToneBlocks.js:262 -msgid "partial" +#: js/blocks/PitchBlocks.js:168 +#.TRANS: step down one note in current musical scale +msgid "scalar step down" msgstr "" -#: js/ToneBlocks.js:265 -msgid "The Partial block is used to specify a weight for a specific partial harmonic." +#: js/blocks/PitchBlocks.js:172 +msgid "The Scalar step down block returns the number of semi-tones down to the previous note in the current key and mode." msgstr "" -#: js/ToneBlocks.js:284 -#.TRANS: partials are weighted components in a harmonic series -msgid "Partial weight must be between 0 and 1." +#: js/blocks/PitchBlocks.js:190 +#.TRANS: step up one note in current musical scale +msgid "scalar step up" msgstr "" -#: js/ToneBlocks.js:297 -#.TRANS: partials are weighted components in a harmonic series -msgid "Partial block should be used inside of a Weighted-partials block." +#: js/blocks/PitchBlocks.js:194 +msgid "The Scalar step up block returns the number of semi-tones up to the next note in the current key and mode." msgstr "" -#: js/ToneBlocks.js:325 -#.TRANS: partials are weighted components in a harmonic series -msgid "weighted partials" +#: js/blocks/PitchBlocks.js:212 +#.TRANS: the change measured in half-steps between the current pitch and the previous pitch +msgid "change in pitch" msgstr "" -#: js/ToneBlocks.js:383 -msgid "The Harmonic block will add harmonics to the contained notes." +#: js/blocks/PitchBlocks.js:216 +msgid "The Change in pitch block is the difference (in half steps) between the current pitch being played and the previous pitch played." msgstr "" -#: js/ToneBlocks.js:390 -#.TRANS: A harmonic is an overtone. -msgid "harmonic" +#: js/blocks/PitchBlocks.js:243 +#.TRANS: the change measured in scale-steps between the current pitch and the previous pitch +msgid "scalar change in pitch" msgstr "" -#: js/ToneBlocks.js:431 -msgid "The Distortion block adds distortion to the pitch." +#: js/blocks/PitchBlocks.js:250 +#: js/blocks/PitchBlocks.js:432 +#: js/blocks/PitchBlocks.js:1667 +#: js/turtleactions/DictActions.js:89 +#: js/widgets/temperament.js:610 +#: js/widgets/temperament.js:614 +#: js/widgets/temperament.js:855 +#.TRANS: convert current note to piano key (1-88) +#.TRANS: a mapping of pitch to the 88 piano keys +msgid "pitch number" msgstr "" -#: js/ToneBlocks.js:438 -#: js/timbre.js:2100 -#.TRANS: distortion is an alteration in the sound -msgid "distortion" +#: js/blocks/PitchBlocks.js:256 +msgid "The Pitch number block is the value of the pitch of the note currently being played." msgstr "" -#: js/ToneBlocks.js:487 -msgid "The Tremolo block adds a wavering effect." +#: js/blocks/PitchBlocks.js:329 +#: js/blocks/PitchBlocks.js:433 +#.TRANS: the current pitch expressed in Hertz +msgid "pitch in hertz" msgstr "" -#: js/ToneBlocks.js:495 -#: js/timbre.js:2092 -#.TRANS: a wavering effect in a musical tone -msgid "tremolo" +#: js/blocks/PitchBlocks.js:334 +msgid "The Pitch in Hertz block is the value in Hertz of the pitch of the note currently being played." msgstr "" -#: js/ToneBlocks.js:500 -#: js/ToneBlocks.js:569 -#: js/ToneBlocks.js:630 -#: js/ToneBlocks.js:689 -#: js/timbre.js:2134 -#: js/timbre.js:2222 -#: js/timbre.js:2317 -#: js/timbre.js:2419 -#.TRANS: rate at which tremolo wavers -msgid "rate" +#: js/blocks/PitchBlocks.js:367 +#: js/turtleactions/DictActions.js:87 +msgid "current pitch" msgstr "" -#: js/ToneBlocks.js:502 -#: js/ToneBlocks.js:630 -#: js/timbre.js:2137 -#: js/timbre.js:2328 -#.TRANS: amplitude of tremolo waver -msgid "depth" +#: js/blocks/PitchBlocks.js:373 +msgid "The Current Pitch block is used with the Pitch Converter block. In the example above, current pitch, sol 4, is displayed as 392 hertz." msgstr "" -#: js/ToneBlocks.js:559 -msgid "The Phaser block adds a sweeping sound." +#: js/blocks/PitchBlocks.js:410 +msgid "This block converts the pitch value of the last note played into different formats such as hertz, letter name, pitch number, et al." msgstr "" -#: js/ToneBlocks.js:566 -#: js/timbre.js:2098 -#.TRANS: alter the phase of the sound -msgid "phaser" +#: js/blocks/PitchBlocks.js:434 +msgid "alphabet" msgstr "" -#: js/ToneBlocks.js:569 -#: js/timbre.js:2422 -msgid "octaves" +#: js/blocks/PitchBlocks.js:436 +#.TRANS: Translate as "alphabet class" +msgid "letter class" msgstr "" -#: js/ToneBlocks.js:569 -#: js/timbre.js:2425 -msgid "base frequency" +#: js/blocks/PitchBlocks.js:437 +msgid "solfege class" msgstr "" -#: js/ToneBlocks.js:619 -msgid "The Chorus block adds a chorus effect." +#: js/blocks/PitchBlocks.js:438 +msgid "staff y" msgstr "" -#: js/ToneBlocks.js:627 -#: js/timbre.js:2096 -#.TRANS: musical effect to simulate a choral sound -msgid "chorus" +#: js/blocks/PitchBlocks.js:439 +msgid "solfege syllable" msgstr "" -#: js/ToneBlocks.js:630 -msgid "delay" +#: js/blocks/PitchBlocks.js:440 +msgid "pitch class" msgstr "" -#: js/ToneBlocks.js:678 -msgid "The Vibrato block adds a rapid, slight variation in pitch." +#: js/blocks/PitchBlocks.js:441 +msgid "scalar class" msgstr "" -#: js/ToneBlocks.js:686 -#: js/timbre.js:2094 -#.TRANS: a rapid, slight variation in pitch -msgid "vibrato" +#: js/blocks/PitchBlocks.js:443 +msgid "nth degree" msgstr "" -#: js/ToneBlocks.js:689 -#: js/timbre.js:2221 -msgid "intensity" +#: js/blocks/PitchBlocks.js:444 +msgid "pitch to shade" msgstr "" -#: js/ToneBlocks.js:733 -#.TRANS: select synthesizer -msgid "set synth" +#: js/blocks/PitchBlocks.js:445 +msgid "pitch to color" msgstr "" -#: js/ToneBlocks.js:804 -msgid "synth name" +#: js/blocks/PitchBlocks.js:629 +#: js/widgets/musickeyboard.js:735 +#.TRANS: MIDI is a technical standard for electronic music +msgid "MIDI" msgstr "" -#: js/ToneBlocks.js:842 -msgid "set default instrument" +#: js/blocks/PitchBlocks.js:642 +#.TRANS: set an offset associated with the numeric piano keyboard mapping +msgid "set pitch number offset" msgstr "" -#: js/ToneBlocks.js:895 -#: js/ToneBlocks.js:943 -#.TRANS: set the characteristics of a custom instrument -msgid "set instrument" +#: js/blocks/PitchBlocks.js:645 +msgid "The Set pitch number offset block is used to set the offset for mapping pitch numbers to pitch and octave." msgstr "" -#: js/ToneBlocks.js:898 -#: js/ToneBlocks.js:926 -#: js/ToneBlocks.js:932 -msgid "The Set instrument block selects a voice for the synthesizer," +#: js/blocks/PitchBlocks.js:679 +#.TRANS: convert piano key number (1-88) to pitch +msgid "number to pitch" msgstr "" -#: js/ToneBlocks.js:900 -#: js/ToneBlocks.js:934 -msgid "eg guitar piano violin or cello." +#: js/blocks/PitchBlocks.js:682 +msgid "The Number to pitch block will convert a pitch number to a pich name." msgstr "" -#: js/ToneBlocks.js:1015 -msgid "Import a sound file to use as an instrument and set its pitch center." +#: js/blocks/PitchBlocks.js:715 +#.TRANS: convert piano key number (1-88) to octave +msgid "number to octave" msgstr "" -#: js/ToneBlocks.js:1110 -msgid "Upload a sound file to connect with the sample block." +#: js/blocks/PitchBlocks.js:717 +msgid "The Number to octave block will convert a pitch number to an octave." msgstr "" -#: js/MeterBlocks.js:34 -#.TRANS: musical meter (time signature), e.g., 4:4 -msgid "current meter" +#: js/blocks/PitchBlocks.js:726 +msgid "y to pitch" msgstr "" -#: js/MeterBlocks.js:85 -#.TRANS: number of beats per minute -msgid "beat factor" +#: js/blocks/PitchBlocks.js:729 +msgid "Y to pitch block will convert a staff y position to corresponding pitch notation." msgstr "" -#: js/MeterBlocks.js:161 -msgid "The Beats per minute block returns the current beats per minute." +#: js/blocks/PitchBlocks.js:841 +msgid "accidental selector" msgstr "" -#: js/MeterBlocks.js:169 -#: js/status.js:152 -#.TRANS: number of beats played per minute -msgid "beats per minute2" +#: js/blocks/PitchBlocks.js:844 +msgid "The Accidental selector block is used to choose between double-sharp, sharp, natural, flat, and double-flat." msgstr "" -#: js/MeterBlocks.js:169 -#: js/MeterBlocks.js:1056 -#: js/MeterBlocks.js:1133 -#: js/MeterBlocks.js:1211 -#.TRANS: sets tempo by defining a beat and beats per minute -msgid "beats per minute" +#: js/blocks/PitchBlocks.js:858 +msgid "Pitch can be specified in terms of ni dha pa ma ga re sa." msgstr "" -#: js/MeterBlocks.js:233 -#.TRANS: count of current musical measure in meter -msgid "measure count" +#: js/blocks/PitchBlocks.js:872 +msgid "Pitch can be specified in terms of C D E F G A B." msgstr "" -#: js/MeterBlocks.js:241 -msgid "The Measure count block returns the current measure." +#: js/blocks/PitchBlocks.js:884 +msgid "solfege" msgstr "" -#: js/MeterBlocks.js:290 -#.TRANS: count of current beat in the meter -msgid "beat count" +#: js/blocks/PitchBlocks.js:887 +msgid "Pitch can be specified in terms of do re mi fa sol la ti." msgstr "" -#: js/MeterBlocks.js:300 -#: js/MeterBlocks.js:311 -#: js/MeterBlocks.js:565 -#: js/MeterBlocks.js:576 -msgid "The Beat count block is the number of the current beat," +#: js/blocks/PitchBlocks.js:922 +msgid "The Invert block rotates any contained notes around a target note." msgstr "" -#: js/MeterBlocks.js:313 -#: js/MeterBlocks.js:578 -msgid "eg 1, 2, 3, or 4." +#: js/blocks/PitchBlocks.js:929 +#.TRANS: pitch inversion rotates a pitch around another pitch +msgid "invert" msgstr "" -#: js/MeterBlocks.js:368 -#.TRANS: count the number of notes -msgid "sum note values" +#: js/blocks/PitchBlocks.js:968 +#.TRANS: pitch inversion rotates a pitch around another pitch (odd number) +msgid "invert (odd)" msgstr "" -#: js/MeterBlocks.js:376 -#: js/MeterBlocks.js:440 -msgid "The Note counter block can be used to count the number of contained notes." +#: js/blocks/PitchBlocks.js:1001 +#.TRANS: pitch inversion rotates a pitch around another pitch (even number) +msgid "invert (even)" msgstr "" -#: js/MeterBlocks.js:432 -#.TRANS: count the number of notes -msgid "note counter" +#: js/blocks/PitchBlocks.js:1022 +#.TRANS: register is the octave of the current pitch +msgid "register" msgstr "" -#: js/MeterBlocks.js:496 -#.TRANS: number of whole notes that have been played -msgid "whole notes played" +#: js/blocks/PitchBlocks.js:1026 +msgid "The Register block provides an easy way to modify the register (octave) of the notes that follow it." msgstr "" -#: js/MeterBlocks.js:505 -msgid "The Whole notes played block returns the total number of whole notes played." +#: js/blocks/PitchBlocks.js:1047 +#.TRANS: cents are units used to specify the ratio between pitches. There are 100 cents between successive notes. +msgid "50 cents" msgstr "" -#: js/MeterBlocks.js:555 -#: js/DictActions.js:83 -#.TRANS: number of notes that have been played -msgid "notes played" +#: js/blocks/PitchBlocks.js:1102 +msgid "The Semi-tone transposition block will shift the pitches contained inside Note blocks up (or down) by half steps." msgstr "" -#: js/MeterBlocks.js:653 -msgid "The No clock block decouples the notes from the master clock." +#: js/blocks/PitchBlocks.js:1104 +msgid "In the example shown above, sol is shifted up to sol#." msgstr "" -#: js/MeterBlocks.js:661 -#.TRANS: don't lock notes to master clock -msgid "no clock" +#: js/blocks/PitchBlocks.js:1110 +#.TRANS: adjust the amount of shift (up or down) of a pitch +msgid "semi-tone transpose" msgstr "" -#: js/MeterBlocks.js:700 -msgid "on weak beat do" +#: js/blocks/PitchBlocks.js:1143 +msgid "The Transpose by Ratio block will shift the pitches contained inside Note blocks up (or down) by a ratio" msgstr "" -#: js/MeterBlocks.js:705 -msgid "The On-weak-beat block lets you specify actions to take on weak (off) beats." +#: js/blocks/PitchBlocks.js:1149 +#.TRANS: adjust the amount of shift (up or down) of a pitch +msgid "transpose by ratio" msgstr "" -#: js/MeterBlocks.js:750 -msgid "on strong beat" +#: js/blocks/PitchBlocks.js:1232 +#.TRANS: down sixth means the note is five scale degrees below current note +msgid "down sixth" msgstr "" -#: js/MeterBlocks.js:758 -msgid "The On-strong-beat block lets you specify actions to take on specified beats." +#: js/blocks/PitchBlocks.js:1251 +#.TRANS: down third means the note is two scale degrees below current note +msgid "down third" msgstr "" -#: js/MeterBlocks.js:769 -msgid "beat" +#: js/blocks/PitchBlocks.js:1270 +#.TRANS: seventh means the note is the six scale degrees above current note +msgid "seventh" msgstr "" -#: js/MeterBlocks.js:813 -msgid "on every beat do" +#: js/blocks/PitchBlocks.js:1289 +#.TRANS: sixth means the note is the five scale degrees above current note +msgid "sixth" msgstr "" -#: js/MeterBlocks.js:821 -msgid "The On-every-beat block lets you specify actions to take on every beat." +#: js/blocks/PitchBlocks.js:1308 +#.TRANS: fifth means the note is the four scale degrees above current note +msgid "fifth" msgstr "" -#: js/MeterBlocks.js:874 -msgid "on every note do" +#: js/blocks/PitchBlocks.js:1328 +#.TRANS: fourth means the note is three scale degrees above current note +msgid "fourth" msgstr "" -#: js/MeterBlocks.js:882 -msgid "The On-every-note block lets you specify actions to take on every note." +#: js/blocks/PitchBlocks.js:1347 +#.TRANS: third means the note is two scale degrees above current note +msgid "third" msgstr "" -#: js/MeterBlocks.js:928 -#: js/MeterBlocks.js:999 -#.TRANS: sets tempo by defining a beat and beats per minute -msgid "master beats per minute" +#: js/blocks/PitchBlocks.js:1366 +#.TRANS: second means the note is one scale degree above current note +msgid "second" msgstr "" -#: js/MeterBlocks.js:952 -#: js/MeterBlocks.js:1078 -#: js/MeterBlocks.js:1135 -msgid "bpm" +#: js/blocks/PitchBlocks.js:1407 +msgid "The Scalar transposition block will shift the pitches contained inside Note blocks up (or down) the scale." msgstr "" -#: js/MeterBlocks.js:952 -#: js/MeterBlocks.js:1078 -#: js/MeterBlocks.js:1135 -msgid "beat value" +#: js/blocks/PitchBlocks.js:1409 +msgid "In the example shown above, sol is shifted up to la." msgstr "" -#: js/MeterBlocks.js:1024 -#: js/MeterBlocks.js:1167 -#: js/MeterBlocks.js:1241 -msgid "Beats per minute must be > 30." +#: js/blocks/PitchBlocks.js:1416 +#.TRANS: adjust the amount of shift (up or down) of a pitch by musical scale (scalar) steps +msgid "scalar transpose" msgstr "" -#: js/MeterBlocks.js:1027 -#: js/MeterBlocks.js:1170 -#: js/MeterBlocks.js:1244 -msgid "Maximum beats per minute is 1000." +#: js/blocks/PitchBlocks.js:1451 +msgid "The Accidental block is used to create sharps and flats" msgstr "" -#: js/MeterBlocks.js:1068 -msgid "The Beats per minute block sets the number of 1/4 notes per minute." +#: js/blocks/PitchBlocks.js:1458 +#.TRANS: An accidental is a modification to a pitch, e.g., sharp or flat. +msgid "accidental override" msgstr "" -#: js/MeterBlocks.js:1279 -#.TRANS: anacrusis -msgid "pickup" +#: js/blocks/PitchBlocks.js:1581 +msgid "The Hertz block (in combination with a Number block) will play a sound at the specified frequency." msgstr "" -#: js/MeterBlocks.js:1367 -msgid "number of beats" +#: js/blocks/PitchBlocks.js:1671 +msgid "The Pitch Number block will play a pitch associated by its number, e.g. 0 for C and 7 for G." msgstr "" -#: js/DictBlocks.js:77 -msgid "show dictionary" +#: js/blocks/PitchBlocks.js:1703 +#: js/blocks/PitchBlocks.js:1745 +#.TRANS: a numeric mapping of the notes in an octave based on the musical mode +#.TRANS: a numeric mapping of the notes in an octave based on the musical mode +msgid "nth modal pitch" msgstr "" -#: js/DictBlocks.js:129 -msgid "The Dictionary block returns a dictionary." +#: js/blocks/PitchBlocks.js:1706 +msgid "n^th Modal Pitch takes the pattern of pitches in semitones for a mode and makes each point a degree of the mode," msgstr "" -#: js/DictBlocks.js:197 -#: js/DictBlocks.js:339 -msgid "The Get-dict block returns a value in the dictionary for a specified key." +#: js/blocks/PitchBlocks.js:1708 +msgid "starting from 1 and regardless of tonal framework (i.e. not always 8 notes in the octave)" msgstr "" -#: js/DictBlocks.js:212 -#: js/DictBlocks.js:354 -#.TRANS: retrieve a value from the dictionary with a given key -msgid "get value" +#: js/blocks/PitchBlocks.js:1749 +msgid "N^th Modal Pitch takes a number as an input as the n^th degree for the given mode. 0 is the first position, 1 is the second, -1 is the note before the first etc." msgstr "" -#: js/DictBlocks.js:215 -#: js/DictBlocks.js:216 -#: js/DictBlocks.js:289 -#: js/DictBlocks.js:290 -#: js/DictBlocks.js:357 -#: js/DictBlocks.js:430 -#: js/DictBlocks.js:431 -msgid "key2" +#: js/blocks/PitchBlocks.js:1751 +msgid "The pitches change according to the mode specified without any need for respellings." msgstr "" -#: js/DictBlocks.js:271 -#: js/DictBlocks.js:411 -msgid "The Set-dict block sets a value in the dictionary for a specified key." +#: js/blocks/PitchBlocks.js:1790 +msgid "Scale Degree is a common convention in music. Scale Degree offers seven possible positions in the scale (1-7) and can be modified via accidentals." msgstr "" -#: js/DictBlocks.js:286 -#: js/DictBlocks.js:427 -#.TRANS: set a value in the dictionary for a given key -msgid "set value" +#: js/blocks/PitchBlocks.js:1792 +msgid "Scale Degree 1 is always the first pitch in a given scale, regardless of octave." msgstr "" -#: js/ExtrasBlocks.js:33 -msgid "fraction" +#: js/blocks/PitchBlocks.js:1814 +#.TRANS: step some number of notes in current musical scale +msgid "scalar step" msgstr "" -#: js/ExtrasBlocks.js:36 -msgid "Convert a float to a fraction" +#: js/blocks/PitchBlocks.js:1819 +msgid "The Scalar Step block (in combination with a Number block) will play the next pitch in a scale," msgstr "" -#: js/ExtrasBlocks.js:93 -msgid "save as ABC" +#: js/blocks/PitchBlocks.js:1821 +msgid "eg if the last note played was sol, Scalar Step 1 will play la." msgstr "" -#: js/ExtrasBlocks.js:96 -#: js/ExtrasBlocks.js:132 -#: js/ExtrasBlocks.js:168 -msgid "title" +#: js/blocks/PitchBlocks.js:1857 +msgid "The Pitch block specifies the pitch name and octave of a note that together determine the frequency of the note." msgstr "" -#: js/ExtrasBlocks.js:129 -msgid "save as Lilypond" +#: js/blocks/ProgramBlocks.js:33 +msgid "The Load-heap-from-app block loads the heap from a web page." msgstr "" -#: js/ExtrasBlocks.js:165 -msgid "save as SVG" +#: js/blocks/ProgramBlocks.js:44 +#.TRANS: load the heap contents from a URL +msgid "load heap from App" msgstr "" -#: js/ExtrasBlocks.js:216 -msgid "no background" +#: js/blocks/ProgramBlocks.js:95 +msgid "Error parsing JSON data:" msgstr "" -#: js/ExtrasBlocks.js:219 -msgid "The No background block eliminates the background from the saved SVG output." +#: js/blocks/ProgramBlocks.js:100 +msgid "404: Page not found" msgstr "" -#: js/ExtrasBlocks.js:247 -msgid "show blocks" +#: js/blocks/ProgramBlocks.js:133 +msgid "The Save-heap-to-app block saves the heap to a web page." msgstr "" -#: js/ExtrasBlocks.js:249 -msgid "The Show blocks block shows the blocks." +#: js/blocks/ProgramBlocks.js:144 +#.TRANS: save the heap contents to a URL +msgid "save heap to App" msgstr "" -#: js/ExtrasBlocks.js:274 -msgid "hide blocks" +#: js/blocks/ProgramBlocks.js:189 +msgid "Cannot find a valid heap for" msgstr "" -#: js/ExtrasBlocks.js:276 -msgid "The Hide blocks block hides the blocks." +#: js/blocks/ProgramBlocks.js:206 +msgid "The Load-heap block loads the heap from a file." msgstr "" -#: js/ExtrasBlocks.js:305 -#: js/ExtrasBlocks.js:335 -msgid "The Space block is used to add space between blocks." +#: js/blocks/ProgramBlocks.js:217 +#.TRANS: load the heap from a file +msgid "load heap" msgstr "" -#: js/ExtrasBlocks.js:373 -msgid "wait" +#: js/blocks/ProgramBlocks.js:270 +msgid "The file you selected does not contain a valid heap." msgstr "" -#: js/ExtrasBlocks.js:376 -msgid "The Wait block pauses the program for a specified number of seconds." +#: js/blocks/ProgramBlocks.js:275 +msgid "The loadHeap block needs a loadFile block." msgstr "" -#: js/ExtrasBlocks.js:430 -#: plugins/facebook.rtp:30 -msgid "comment" +#: js/blocks/ProgramBlocks.js:291 +msgid "The Set-heap block loads the heap." msgstr "" -#: js/ExtrasBlocks.js:466 -msgid "print" +#: js/blocks/ProgramBlocks.js:340 +msgid "The block you selected does not contain a valid heap." msgstr "" -#: js/ExtrasBlocks.js:473 -msgid "The Print block displays text at the top of the screen." +#: js/blocks/ProgramBlocks.js:343 +msgid "The Set heap block needs a heap." msgstr "" -#: js/ExtrasBlocks.js:579 -msgid "display grid" +#: js/blocks/ProgramBlocks.js:360 +msgid "The Load-dictionary block loads a dictionary from a file." msgstr "" -#: js/ExtrasBlocks.js:584 -msgid "The Display Grid Block changes the grid type" +#: js/blocks/ProgramBlocks.js:372 +#.TRANS: load a dictionary from a file +msgid "load dictionary" msgstr "" -#: js/ExtrasBlocks.js:686 -#: js/ExtrasBlocks.js:705 -#: js/ExtrasBlocks.js:728 -#: js/ExtrasBlocks.js:751 -#: js/ExtrasBlocks.js:769 -#: js/ExtrasBlocks.js:788 -#: js/ExtrasBlocks.js:807 -#: js/ExtrasBlocks.js:826 -msgid "unknown" +#: js/blocks/ProgramBlocks.js:390 +#: js/blocks/ProgramBlocks.js:658 +#: js/blocks/ToneBlocks.js:1025 +msgid "file" msgstr "" -#: js/SensorsBlocks.js:36 -msgid "The Input block prompts for keyboard input." +#: js/blocks/ProgramBlocks.js:444 +msgid "The file you selected does not contain a valid dictionary." msgstr "" -#: js/SensorsBlocks.js:46 -msgid "input" +#: js/blocks/ProgramBlocks.js:449 +msgid "The load dictionary block needs a load file block." msgstr "" -#: js/SensorsBlocks.js:64 -msgid "Input a value" +#: js/blocks/ProgramBlocks.js:466 +msgid "The Set-dictionary block loads a dictionary." msgstr "" -#: js/SensorsBlocks.js:126 -msgid "input value" +#: js/blocks/ProgramBlocks.js:477 +#.TRANS: load a dictionary from a JSON +msgid "set dictionary" msgstr "" -#: js/SensorsBlocks.js:131 -msgid "The Input-value block stores the input." +#: js/blocks/ProgramBlocks.js:546 +msgid "The block you selected does not contain a valid dictionary." msgstr "" -#: js/SensorsBlocks.js:238 -msgid "loudness" +#: js/blocks/ProgramBlocks.js:550 +msgid "The set dictionary block needs a dictionary." msgstr "" -#: js/SensorsBlocks.js:245 -msgid "The Loudness block returns the volume detected by the microphone." +#: js/blocks/ProgramBlocks.js:567 +msgid "The Save-heap block saves the heap to a file." msgstr "" -#: js/SensorsBlocks.js:300 -msgid "click" +#: js/blocks/ProgramBlocks.js:578 +#.TRANS: save the heap to a file +msgid "save heap" msgstr "" -#: js/SensorsBlocks.js:306 -msgid "The Click block triggers an event if a mouse has been clicked." +#: js/blocks/ProgramBlocks.js:629 +msgid "The Save-dictionary block saves a dictionary to a file." msgstr "" -#: js/SensorsBlocks.js:313 -msgid "The Click block triggers an event if a turtle has been clicked." +#: js/blocks/ProgramBlocks.js:640 +#.TRANS: save a dictionary to a file +msgid "save dictionary" msgstr "" -#: js/SensorsBlocks.js:342 -msgid "cursor over" +#: js/blocks/ProgramBlocks.js:720 +msgid "The Open palette block opens a palette." msgstr "" -#: js/SensorsBlocks.js:387 -msgid "cursor out" +#: js/blocks/ProgramBlocks.js:727 +msgid "open palette" msgstr "" -#: js/SensorsBlocks.js:433 -msgid "cursor button down" +#: js/blocks/ProgramBlocks.js:785 +msgid "The Delete block block removes a block." msgstr "" -#: js/SensorsBlocks.js:477 -msgid "cursor button up" +#: js/blocks/ProgramBlocks.js:797 +#.TRANS: Move this block to the trash. +msgid "delete block" msgstr "" -#: js/SensorsBlocks.js:638 -msgid "The Get red block returns the red component of the pixel under the mouse." +#: js/blocks/ProgramBlocks.js:861 +msgid "The Move block block moves a block." msgstr "" -#: js/SensorsBlocks.js:644 -msgid "The Get red block returns the red component of the pixel under the turtle." +#: js/blocks/ProgramBlocks.js:869 +#.TRANS: Move the position of a block on the screen. +msgid "move block" msgstr "" -#: js/SensorsBlocks.js:685 -#: plugins/rodi.rtp:216 -msgid "pixel color" +#: js/blocks/ProgramBlocks.js:881 +#: js/blocks/ProgramBlocks.js:1048 +msgid "block number" msgstr "" -#: js/SensorsBlocks.js:690 -msgid "The Get pixel block returns the color of the pixel under the mouse." +#: js/blocks/ProgramBlocks.js:935 +#.TRANS: Run program beginning at this block. +msgid "run block" msgstr "" -#: js/SensorsBlocks.js:696 -msgid "The Get pixel block returns the color of the pixel under the turtle." +#: js/blocks/ProgramBlocks.js:1025 +msgid "The Dock block block connections two blocks." msgstr "" -#: js/SensorsBlocks.js:758 -msgid "time" +#: js/blocks/ProgramBlocks.js:1036 +#.TRANS: We can connect a block to another block. +msgid "connect blocks" msgstr "" -#: js/SensorsBlocks.js:804 -msgid "cursor y" +#: js/blocks/ProgramBlocks.js:1048 +msgid "target block" msgstr "" -#: js/SensorsBlocks.js:809 -msgid "The Cursor Y block returns the vertical position of the mouse." +#: js/blocks/ProgramBlocks.js:1048 +msgid "connection number" msgstr "" -#: js/SensorsBlocks.js:845 -msgid "cursor x" +#: js/blocks/ProgramBlocks.js:1140 +msgid "The Make block block creates a new block." msgstr "" -#: js/SensorsBlocks.js:850 -msgid "The Cursor X block returns the horizontal position of the mouse." +#: js/blocks/ProgramBlocks.js:1152 +#.TRANS: Create a new block +msgid "make block" msgstr "" -#: js/SensorsBlocks.js:886 -msgid "mouse button" +#: js/blocks/ProgramBlocks.js:1285 +msgid "Cannot find block" msgstr "" -#: js/SensorsBlocks.js:888 -msgid "The Mouse-button block returns True if the mouse button is pressed." +#: js/blocks/ProgramBlocks.js:1304 +#: js/blocks/ProgramBlocks.js:1313 +msgid "Warning: block argument type mismatch" msgstr "" -#: js/SensorsBlocks.js:934 -msgid "to ASCII" +#: js/blocks/ProgramBlocks.js:1347 +msgid "The Open project block is used to open a project from a web page." msgstr "" -#: js/SensorsBlocks.js:938 -msgid "The To ASCII block converts numbers to letters." +#: js/blocks/ProgramBlocks.js:1357 +msgid "open project" msgstr "" -#: js/SensorsBlocks.js:1005 -msgid "The Keyboard block returns computer keyboard input." +#: js/blocks/ProgramBlocks.js:1410 +msgid "Please enter a valid URL." msgstr "" -#: js/IntervalsActions.js:216 -msgid "Adding missing pitch number 0." +#: js/blocks/ToneBlocks.js:34 +msgid "oscillator" msgstr "" -#: js/IntervalsActions.js:224 -msgid "Ignoring pitch numbers less than zero or greater than eleven." +#: js/blocks/ToneBlocks.js:42 +#: js/blocks/WidgetBlocks.js:179 +#: js/widgets/timbre.js:1558 +#: js/widgets/timbre.js:1808 +#.TRANS: there are different types (sine, triangle, square...) of oscillators. +#.TRANS: type of filter, e.g., lowpass, highpass, etc. +msgid "type" msgstr "" -#: js/IntervalsActions.js:230 -msgid "Ignoring duplicate pitch numbers." +#: js/blocks/ToneBlocks.js:44 +#: js/widgets/timbre.js:1562 +#.TRANS: Partials refers to the number of sine waves combined into the sound. +msgid "partials" msgstr "" -#: js/PitchActions.js:88 -msgid "The Scalar Step Block must be used inside of a Note Block." +#: js/blocks/ToneBlocks.js:76 +msgid "You are adding multiple oscillator blocks." msgstr "" -#: js/PitchActions.js:107 -msgid "The Scalar Step Block must be preceded by a Pitch Block." +#: js/blocks/ToneBlocks.js:144 +#: js/widgets/timbre.js:1225 +#.TRANS: a duo synthesizer combines a synth with a sequencer +msgid "duo synth" msgstr "" -#: js/DrumActions.js:231 -msgid "Noise Block: Did you mean to use a Note block?" +#: js/blocks/ToneBlocks.js:149 +msgid "The Duo synth block is a duo-frequency modulator used to define a timbre." msgstr "" -#: js/MeterActions.js:101 -#: js/MeterActions.js:139 -msgid "beats per minute must be greater than" +#: js/blocks/ToneBlocks.js:157 +#: js/widgets/timbre.js:1476 +msgid "vibrato rate" msgstr "" -#: js/MeterActions.js:111 -#: js/MeterActions.js:149 -msgid "maximum" +#: js/blocks/ToneBlocks.js:157 +msgid "vibrato intensity" msgstr "" -#: js/MeterActions.js:117 -#: js/MeterActions.js:155 -msgid "beats per minute is" +#: js/blocks/ToneBlocks.js:185 +#: js/widgets/timbre.js:1221 +#.TRANS: AM (amplitude modulation) synthesizer +msgid "AM synth" msgstr "" -#: js/ToneActions.js:134 -msgid "Vibrato intensity must be between 1 and 100." +#: js/blocks/ToneBlocks.js:189 +msgid "The AM synth block is an amplitude modulator used to define a timbre." msgstr "" -#: js/ToneActions.js:139 -msgid "Vibrato rate must be greater than 0." +#: js/blocks/ToneBlocks.js:224 +#: js/widgets/timbre.js:1223 +#.TRANS: FM (frequency modulation) synthesizer +msgid "FM synth" msgstr "" -#: js/ToneActions.js:192 -#: js/ToneActions.js:265 -#.TRANS: Depth is the intesity of the tremolo or chorus effect. -msgid "Depth is out of range." +#: js/blocks/ToneBlocks.js:228 +msgid "The FM synth block is a frequency modulator used to define a timbre." msgstr "" -#: js/ToneActions.js:301 -msgid "Distortion must be from 0 to 100." +#: js/blocks/ToneBlocks.js:262 +msgid "partial" msgstr "" -#: js/ToneActions.js:332 -#.TRANS: partials components in a harmonic series -msgid "Partial must be greater than or equal to 0." +#: js/blocks/ToneBlocks.js:265 +msgid "The Partial block is used to specify a weight for a specific partial harmonic." msgstr "" -#: js/ToneActions.js:378 -#: js/ToneActions.js:417 -#: js/ToneActions.js:456 -#: js/timbre.js:782 -msgid "Unable to use synth due to existing oscillator" +#: js/blocks/ToneBlocks.js:284 +#.TRANS: partials are weighted components in a harmonic series +msgid "Partial weight must be between 0 and 1." msgstr "" -#: js/ToneActions.js:388 -#: js/ToneActions.js:427 -msgid "The input cannot be negative." +#: js/blocks/ToneBlocks.js:297 +#.TRANS: partials are weighted components in a harmonic series +msgid "Partial block should be used inside of a Weighted-partials block." msgstr "" -#: js/DictActions.js:75 -#: js/DictActions.js:153 -#: js/DictActions.js:188 -msgid "font" +#: js/blocks/ToneBlocks.js:325 +#.TRANS: partials are weighted components in a harmonic series +msgid "weighted partials" msgstr "" -#: js/musicutils.js:363 -#: js/musicutils.js:471 -#: js/pitchdrummatrix.js:151 -#: js/musickeyboard.js:2563 -msgid "rest" +#: js/blocks/ToneBlocks.js:383 +msgid "The Harmonic block will add harmonics to the contained notes." msgstr "" -#: js/musicutils.js:565 -#.TRANS: ordinal number. Please keep exactly one space between each number. -msgid "1st 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th" +#: js/blocks/ToneBlocks.js:390 +#.TRANS: A harmonic is an overtone. +msgid "harmonic" msgstr "" -#: js/musicutils.js:629 -#: js/musicutils.js:812 -#: js/musicutils.js:911 -#.TRANS: augmented is a music term related to intervals -msgid "augmented" +#: js/blocks/ToneBlocks.js:431 +msgid "The Distortion block adds distortion to the pitch." msgstr "" -#: js/musicutils.js:631 -#: js/musicutils.js:813 -#: js/musicutils.js:910 -#.TRANS: diminished is a music term related to intervals and mode -msgid "diminished" +#: js/blocks/ToneBlocks.js:438 +#: js/widgets/timbre.js:2100 +#.TRANS: distortion is an alteration in the sound +msgid "distortion" msgstr "" -#: js/musicutils.js:639 -#.TRANS: twelve semi-tone scale for music -msgid "chromatic" +#: js/blocks/ToneBlocks.js:487 +msgid "The Tremolo block adds a wavering effect." msgstr "" -#: js/musicutils.js:640 -msgid "algerian" +#: js/blocks/ToneBlocks.js:495 +#: js/widgets/timbre.js:2092 +#.TRANS: a wavering effect in a musical tone +msgid "tremolo" msgstr "" -#: js/musicutils.js:641 -msgid "spanish" +#: js/blocks/ToneBlocks.js:500 +#: js/blocks/ToneBlocks.js:569 +#: js/blocks/ToneBlocks.js:630 +#: js/blocks/ToneBlocks.js:689 +#: js/widgets/timbre.js:2134 +#: js/widgets/timbre.js:2222 +#: js/widgets/timbre.js:2317 +#: js/widgets/timbre.js:2419 +#.TRANS: rate at which tremolo wavers +msgid "rate" msgstr "" -#: js/musicutils.js:643 -#.TRANS: modal scale in music -msgid "octatonic" +#: js/blocks/ToneBlocks.js:502 +#: js/blocks/ToneBlocks.js:630 +#: js/widgets/timbre.js:2137 +#: js/widgets/timbre.js:2328 +#.TRANS: amplitude of tremolo waver +msgid "depth" msgstr "" -#: js/musicutils.js:645 -#.TRANS: harmonic major scale in music -msgid "harmonic major" +#: js/blocks/ToneBlocks.js:559 +msgid "The Phaser block adds a sweeping sound." msgstr "" -#: js/musicutils.js:647 -#.TRANS: natural minor scales in music -msgid "natural minor" +#: js/blocks/ToneBlocks.js:566 +#: js/widgets/timbre.js:2098 +#.TRANS: alter the phase of the sound +msgid "phaser" msgstr "" -#: js/musicutils.js:649 -#.TRANS: harmonic minor scale in music -msgid "harmonic minor" +#: js/blocks/ToneBlocks.js:569 +#: js/turtleactions/IntervalsActions.js:114 +#: js/widgets/timbre.js:2422 +msgid "octaves" msgstr "" -#: js/musicutils.js:651 -#.TRANS: melodic minor scale in music -msgid "melodic minor" +#: js/blocks/ToneBlocks.js:569 +#: js/widgets/timbre.js:2425 +msgid "base frequency" msgstr "" -#: js/musicutils.js:655 -#.TRANS: modal scale for music -msgid "dorian" +#: js/blocks/ToneBlocks.js:619 +msgid "The Chorus block adds a chorus effect." msgstr "" -#: js/musicutils.js:657 -#.TRANS: modal scale for music -msgid "phrygian" +#: js/blocks/ToneBlocks.js:627 +#: js/widgets/timbre.js:2096 +#.TRANS: musical effect to simulate a choral sound +msgid "chorus" msgstr "" -#: js/musicutils.js:659 -#.TRANS: modal scale for music -msgid "lydian" +#: js/blocks/ToneBlocks.js:630 +msgid "delay" msgstr "" -#: js/musicutils.js:661 -#.TRANS: modal scale for music -msgid "mixolydian" +#: js/blocks/ToneBlocks.js:678 +msgid "The Vibrato block adds a rapid, slight variation in pitch." msgstr "" -#: js/musicutils.js:665 -#.TRANS: modal scale for music -msgid "locrian" +#: js/blocks/ToneBlocks.js:686 +#: js/widgets/timbre.js:2094 +#.TRANS: a rapid, slight variation in pitch +msgid "vibrato" msgstr "" -#: js/musicutils.js:667 -#.TRANS: minor jazz scale for music -msgid "jazz minor" +#: js/blocks/ToneBlocks.js:689 +#: js/widgets/timbre.js:2221 +msgid "intensity" msgstr "" -#: js/musicutils.js:669 -#.TRANS: bebop scale for music -msgid "bebop" +#: js/blocks/ToneBlocks.js:733 +#.TRANS: select synthesizer +msgid "set synth" msgstr "" -#: js/musicutils.js:670 -msgid "arabic" +#: js/blocks/ToneBlocks.js:804 +msgid "synth name" msgstr "" -#: js/musicutils.js:671 -msgid "byzantine" +#: js/blocks/ToneBlocks.js:842 +msgid "set default instrument" msgstr "" -#: js/musicutils.js:673 -#.TRANS: musical scale for music by Verdi -msgid "enigmatic" +#: js/blocks/ToneBlocks.js:895 +#: js/blocks/ToneBlocks.js:943 +#.TRANS: set the characteristics of a custom instrument +msgid "set instrument" msgstr "" -#: js/musicutils.js:674 -msgid "ethiopian" +#: js/blocks/ToneBlocks.js:898 +#: js/blocks/ToneBlocks.js:926 +#: js/blocks/ToneBlocks.js:932 +msgid "The Set instrument block selects a voice for the synthesizer," msgstr "" -#: js/musicutils.js:676 -#.TRANS: Ethiopic scale for music -msgid "geez" +#: js/blocks/ToneBlocks.js:900 +#: js/blocks/ToneBlocks.js:934 +msgid "eg guitar piano violin or cello." msgstr "" -#: js/musicutils.js:677 -msgid "hindu" +#: js/blocks/ToneBlocks.js:1015 +msgid "Import a sound file to use as an instrument and set its pitch center." msgstr "" -#: js/musicutils.js:678 -msgid "hungarian" +#: js/blocks/ToneBlocks.js:1110 +msgid "Upload a sound file to connect with the sample block." msgstr "" -#: js/musicutils.js:680 -#.TRANS: minor Romanian scale for music -msgid "romanian minor" +#: js/blocks/VolumeBlocks.js:35 +msgid "synth volume" msgstr "" -#: js/musicutils.js:681 -msgid "spanish gypsy" +#: js/blocks/VolumeBlocks.js:39 +msgid "The Synth volume block returns the current volume of the current synthesizer." msgstr "" -#: js/musicutils.js:683 -#.TRANS: musical scale for Mid-Eastern music -msgid "maqam" +#: js/blocks/VolumeBlocks.js:105 +msgid "master volume" msgstr "" -#: js/musicutils.js:685 -#.TRANS: minor blues scale for music -msgid "minor blues" +#: js/blocks/VolumeBlocks.js:109 +msgid "The Master volume block returns the master volume." msgstr "" -#: js/musicutils.js:687 -#.TRANS: major blues scale for music -msgid "major blues" +#: js/blocks/VolumeBlocks.js:355 +#: js/blocks/VolumeBlocks.js:524 +msgid "set synth volume" msgstr "" -#: js/musicutils.js:688 -msgid "whole tone" +#: js/blocks/VolumeBlocks.js:362 +#: js/blocks/VolumeBlocks.js:545 +msgid "synth" msgstr "" -#: js/musicutils.js:690 -#.TRANS: pentatonic is a general term that means "five note scale". This scale is typically known as "minor pentatonic" -msgid "minor pentatonic" +#: js/blocks/VolumeBlocks.js:403 +#: js/blocks/VolumeBlocks.js:577 +#: js/blocks/VolumeBlocks.js:740 +#: js/turtleactions/VolumeActions.js:173 +msgid "Setting volume to 0." msgstr "" -#: js/musicutils.js:692 -#.TRANS: pentatonic is a general term that means "five note scale". This scale is typically known as "major pentatonic" -msgid "major pentatonic" +#: js/blocks/VolumeBlocks.js:440 +msgid "Synth not found" msgstr "" -#: js/musicutils.js:693 -msgid "chinese" +#: js/blocks/VolumeBlocks.js:494 +msgid "set drum volume" msgstr "" -#: js/musicutils.js:694 -msgid "egyptian" +#: js/blocks/VolumeBlocks.js:530 +msgid "The Set synth volume block will change the volume of a particular synth," msgstr "" -#: js/musicutils.js:696 -#.TRANS: https://en.wikipedia.org/wiki/Hirajoshi_scale NOTE: There are three different versions of this scale -msgid "hirajoshi" +#: js/blocks/VolumeBlocks.js:532 +msgid "eg guitar violin snare drum etc." msgstr "" -#: js/musicutils.js:697 -msgid "Japan" +#: js/blocks/VolumeBlocks.js:534 +msgid "The default volume is 50." msgstr "" -#: js/musicutils.js:699 -#.TRANS: https://en.wikipedia.org/wiki/In_scale and https://en.wikipedia.org/wiki/Sakura_Sakura -msgid "in" +#: js/blocks/VolumeBlocks.js:536 +msgid "The range is 0 for silence to 100 for full volume." msgstr "" -#: js/musicutils.js:701 -#.TRANS: https://en.wikipedia.org/wiki/Miny%C5%8D_scale -msgid "minyo" +#: js/blocks/VolumeBlocks.js:597 +msgid "set panning" msgstr "" -#: js/musicutils.js:703 -#.TRANS: Italian mathematician -msgid "fibonacci" +#: js/blocks/VolumeBlocks.js:603 +msgid "The Set Panning block sets the panning for all synthesizers." msgstr "" -#: js/musicutils.js:708 -#: js/musicutils.js:1106 -#.TRANS: lowpass filter -msgid "lowpass" +#: js/blocks/VolumeBlocks.js:625 +msgid "Warning: Sound is coming out from only the left or right side." msgstr "" -#: js/musicutils.js:710 -#: js/musicutils.js:1107 -#.TRANS: bandpass filter -msgid "bandpass" +#: js/blocks/VolumeBlocks.js:647 +#: js/blocks/VolumeBlocks.js:695 +msgid "set master volume" msgstr "" -#: js/musicutils.js:712 -#: js/musicutils.js:1108 -#.TRANS: high-shelf filter -msgid "highshelf" +#: js/blocks/VolumeBlocks.js:653 +msgid "The Set master volume block sets the volume for all synthesizers." msgstr "" -#: js/musicutils.js:714 -#: js/musicutils.js:1109 -#.TRANS: low-shelf filter -msgid "lowshelf" +#: js/blocks/VolumeBlocks.js:784 +msgid "The Set relative volume block changes the volume of the contained notes." msgstr "" -#: js/musicutils.js:716 -#: js/musicutils.js:1110 -#.TRANS: notch-shelf filter -msgid "notch" +#: js/blocks/VolumeBlocks.js:791 +msgid "set relative volume" msgstr "" -#: js/musicutils.js:718 -#: js/musicutils.js:1111 -#.TRANS: all-pass filter -msgid "allpass" +#: js/blocks/VolumeBlocks.js:857 +msgid "decrescendo" msgstr "" -#: js/musicutils.js:720 -#: js/musicutils.js:1112 -#.TRANS: peaking filter -msgid "peaking" +#: js/blocks/VolumeBlocks.js:921 +msgid "crescendo" msgstr "" -#: js/musicutils.js:731 -#: js/synthutils.js:58 -#.TRANS: musical instrument -msgid "violin" +#: js/blocks/WidgetBlocks.js:81 +#.TRANS: sound envelope (ADSR) +msgid "envelope" msgstr "" -#: js/musicutils.js:732 -#: js/synthutils.js:60 -#.TRANS: viola musical instrument -msgid "viola" +#: js/blocks/WidgetBlocks.js:89 +#.TRANS: Attack time is the time taken for initial run-up of level from nil to peak, beginning when the key is first pressed. +msgid "attack" msgstr "" -#: js/musicutils.js:733 -#: js/synthutils.js:98 -#.TRANS: xylophone musical instrument -msgid "xylophone" +#: js/blocks/WidgetBlocks.js:91 +#.TRANS: Decay time is the time taken for the subsequent run down from the attack level to the designated sustain level. +msgid "decay" msgstr "" -#: js/musicutils.js:734 -#: js/synthutils.js:120 -#.TRANS: vibraphone musical instrument -msgid "vibraphone" +#: js/blocks/WidgetBlocks.js:93 +#.TRANS: Sustain level is the level during the main sequence of the sound's duration, until the key is released. +msgid "sustain" msgstr "" -#: js/musicutils.js:735 -#: js/synthutils.js:62 -#.TRANS: musical instrument -msgid "cello" +#: js/blocks/WidgetBlocks.js:95 +#.TRANS: Release time is the time taken for the level to decay from the sustain level to zero after the key is released. +msgid "release" msgstr "" -#: js/musicutils.js:737 -#: js/synthutils.js:66 -#.TRANS: viola musical instrument -msgid "double bass" +#: js/blocks/WidgetBlocks.js:113 +msgid "Attack value should be from 0 to 100." msgstr "" -#: js/musicutils.js:738 -#: js/synthutils.js:68 -#: js/rhythmruler.js:2119 -#.TRANS: musical instrument -msgid "guitar" +#: js/blocks/WidgetBlocks.js:116 +msgid "Decay value should be from 0 to 100." msgstr "" -#: js/musicutils.js:739 -#: js/synthutils.js:70 -#.TRANS: musical instrument -msgid "acoustic guitar" +#: js/blocks/WidgetBlocks.js:119 +msgid "Sustain value should be from 0 to 100." msgstr "" -#: js/musicutils.js:740 -#: js/synthutils.js:72 -#.TRANS: musical instrument -msgid "flute" +#: js/blocks/WidgetBlocks.js:122 +msgid "Release value should be from 0-100." msgstr "" -#: js/musicutils.js:741 -#: js/synthutils.js:74 -#.TRANS: musical instrument -msgid "clarinet" +#: js/blocks/WidgetBlocks.js:140 +msgid "You are adding multiple envelope blocks." msgstr "" -#: js/musicutils.js:742 -#: js/synthutils.js:76 -#.TRANS: musical instrument -msgid "saxophone" +#: js/blocks/WidgetBlocks.js:171 +#.TRANS: a filter removes some unwanted components from a signal +msgid "filter" msgstr "" -#: js/musicutils.js:743 -#: js/synthutils.js:78 -#.TRANS: musical instrument -msgid "tuba" +#: js/blocks/WidgetBlocks.js:181 +#: js/widgets/timbre.js:1818 +#.TRANS: rolloff is the steepness of a change in frequency. +msgid "rolloff" msgstr "" -#: js/musicutils.js:744 -#: js/synthutils.js:80 -#.TRANS: musical instrument -msgid "trumpet" +#: js/blocks/WidgetBlocks.js:213 +#.TRANS: rolloff is the steepness of a change in frequency. +msgid "Rolloff value should be either -12, -24, -48, or -96 decibels/octave." msgstr "" -#: js/musicutils.js:745 -#: js/synthutils.js:82 -#.TRANS: musical instrument -msgid "oboe" +#: js/blocks/WidgetBlocks.js:252 +msgid "The Temperament tool is used to define custom tuning." msgstr "" -#: js/musicutils.js:746 -#: js/synthutils.js:84 -#.TRANS: musical instrument -msgid "trombone" +#: js/blocks/WidgetBlocks.js:332 +#: js/blocks/WidgetBlocks.js:1573 +#: js/widgets/sampler.js:547 +msgid "Upload a sample and adjust its pitch center." msgstr "" -#: js/musicutils.js:747 -#: js/synthutils.js:100 -#.TRANS: polytone synthesizer -msgid "electronic synth" +#: js/blocks/WidgetBlocks.js:339 +#.TRANS: the speed at music is should be played. +msgid "sampler" msgstr "" -#: js/musicutils.js:748 -#: js/synthutils.js:102 -#.TRANS: simple monotone synthesizer -msgid "simple 1" +#: js/blocks/WidgetBlocks.js:517 +msgid "The Meter block opens a tool to select strong beats for the meter." msgstr "" -#: js/musicutils.js:749 -msgid "simple 2" +#: js/blocks/WidgetBlocks.js:573 +msgid "The oscilloscope block opens a tool to visualize waveforms." msgstr "" -#: js/musicutils.js:750 -msgid "simple 3" +#: js/blocks/WidgetBlocks.js:578 +msgid "oscilloscope" msgstr "" -#: js/musicutils.js:751 -msgid "simple 4" +#: js/blocks/WidgetBlocks.js:645 +msgid "The Custom mode block opens a tool to explore musical mode (the spacing of the notes in a scale)." msgstr "" -#: js/musicutils.js:753 -#: js/synthutils.js:49 -#.TRANS: brown noise synthesizer -msgid "brown noise" +#: js/blocks/WidgetBlocks.js:651 +#.TRANS: musical mode is the pattern of half-steps in an octave, e.g., Major or Minor modes +msgid "custom mode" msgstr "" -#: js/musicutils.js:754 -#: js/synthutils.js:51 -#.TRANS: pink noise synthesizer -msgid "pink noise" +#: js/blocks/WidgetBlocks.js:700 +msgid "The Tempo block opens a metronome to visualize the beat." msgstr "" -#: js/musicutils.js:756 -#: js/synthutils.js:127 -#: js/rhythmruler.js:1670 -#: js/rhythmruler.js:1928 -#.TRANS: musical instrument -msgid "snare drum" +#: js/blocks/WidgetBlocks.js:762 +msgid "The Arpeggio Widget is used to compose chord sequences." msgstr "" -#: js/musicutils.js:757 -#: js/synthutils.js:129 -#.TRANS: musical instrument -msgid "kick drum" +#: js/blocks/WidgetBlocks.js:837 +msgid "The Pitch drum matrix is used to map pitches to drum sounds." msgstr "" -#: js/musicutils.js:758 -#: js/synthutils.js:131 -#.TRANS: musical instrument -msgid "tom tom" +#: js/blocks/WidgetBlocks.js:842 +#.TRANS: makes a mapping between pitches and drum sounds +msgid "pitch-drum mapper" msgstr "" -#: js/musicutils.js:759 -#: js/synthutils.js:133 -#.TRANS: musical instrument -msgid "floor tom" +#: js/blocks/WidgetBlocks.js:891 +msgid "You must have at least one pitch block and one drum block in the matrix." msgstr "" -#: js/musicutils.js:760 -#: js/synthutils.js:135 -#.TRANS: musical instrument -msgid "bass drum" +#: js/blocks/WidgetBlocks.js:920 +msgid "The Pitch slider tool to is used to generate pitches at selected frequencies." msgstr "" -#: js/musicutils.js:761 -#: js/synthutils.js:137 -#.TRANS: a drum made from an inverted cup -msgid "cup drum" +#: js/blocks/WidgetBlocks.js:925 +#.TRANS: widget to generate pitches using a slider +msgid "pitch slider" msgstr "" -#: js/musicutils.js:762 -#: js/synthutils.js:139 -#.TRANS: musical instrument -msgid "darbuka drum" +#: js/blocks/WidgetBlocks.js:977 +msgid "chromatic keyboard" msgstr "" -#: js/musicutils.js:763 -#: js/synthutils.js:143 -#.TRANS: musical instrument -msgid "hi hat" +#: js/blocks/WidgetBlocks.js:1011 +#: js/blocks/WidgetBlocks.js:1077 +#.TRANS: widget to generate pitches using a slider +msgid "music keyboard" msgstr "" -#: js/musicutils.js:764 -#: js/synthutils.js:145 -#.TRANS: a small metal bell -msgid "ride bell" +#: js/blocks/WidgetBlocks.js:1062 +#: js/blocks/WidgetBlocks.js:1069 +msgid "The Music keyboard block opens a piano keyboard that can be used to create notes." msgstr "" -#: js/musicutils.js:765 -#: js/synthutils.js:147 -#.TRANS: musical instrument -msgid "cow bell" +#: js/blocks/WidgetBlocks.js:1128 +msgid "The Pitch staircase tool to is used to generate pitches from a given ratio." msgstr "" -#: js/musicutils.js:766 -msgid "japanese drum" +#: js/blocks/WidgetBlocks.js:1135 +#.TRANS: generate a progressive sequence of pitches +msgid "pitch staircase" msgstr "" -#: js/musicutils.js:767 -#: js/synthutils.js:153 -#.TRANS: musical instrument -msgid "japanese bell" +#: js/blocks/WidgetBlocks.js:1222 +msgid "The Rhythm Maker block opens a tool to create drum machines." msgstr "" -#: js/musicutils.js:768 -#: js/synthutils.js:149 -#.TRANS: musical instrument -msgid "triangle bell" +#: js/blocks/WidgetBlocks.js:1291 +msgid "G major scale" msgstr "" -#: js/musicutils.js:769 -#: js/synthutils.js:151 -#.TRANS: musical instrument -msgid "finger cymbals" +#: js/blocks/WidgetBlocks.js:1326 +msgid "C major scale" msgstr "" -#: js/musicutils.js:770 -#: js/synthutils.js:155 -#.TRANS: a musically tuned set of bells -msgid "chime" +#: js/blocks/WidgetBlocks.js:1366 +msgid "The Phrase Maker block opens a tool to create musical phrases." msgstr "" -#: js/musicutils.js:771 -#: js/synthutils.js:157 -#.TRANS: a musical instrument -msgid "gong" +#: js/blocks/WidgetBlocks.js:1373 +#.TRANS: assigns pitch to a sequence of beats to generate a melody +msgid "phrase maker" msgstr "" -#: js/musicutils.js:772 -#: js/synthutils.js:159 -#.TRANS: sound effect -msgid "clang" +#: js/blocks/WidgetBlocks.js:1444 +msgid "You must have at least one pitch block and one rhythm block in the matrix." msgstr "" -#: js/musicutils.js:773 -#: js/synthutils.js:161 -#.TRANS: sound effect -msgid "crash" +#: js/blocks/WidgetBlocks.js:1503 +msgid "The Status block opens a tool for inspecting the status of Music Blocks as it is running." msgstr "" -#: js/musicutils.js:774 -#: js/synthutils.js:163 -#.TRANS: sound effect -msgid "bottle" +#: js/blocks/WidgetBlocks.js:1580 +#.TRANS: AI-generated music +msgid "aimusic" msgstr "" -#: js/musicutils.js:775 -#: js/synthutils.js:165 -#.TRANS: sound effect -msgid "clap" +#: js/turtleactions/MeterActions.js:101 +#: js/turtleactions/MeterActions.js:139 +msgid "beats per minute must be greater than" msgstr "" -#: js/musicutils.js:776 -#: js/synthutils.js:167 -#.TRANS: sound effect -msgid "slap" +#: js/turtleactions/MeterActions.js:111 +#: js/turtleactions/MeterActions.js:149 +msgid "maximum" msgstr "" -#: js/musicutils.js:777 -#: js/synthutils.js:169 -#.TRANS: sound effect -msgid "splash" +#: js/turtleactions/MeterActions.js:117 +#: js/turtleactions/MeterActions.js:155 +msgid "beats per minute is" msgstr "" -#: js/musicutils.js:778 -#: js/synthutils.js:171 -#.TRANS: sound effect -msgid "bubbles" +#: js/turtleactions/DictActions.js:75 +#: js/turtleactions/DictActions.js:142 +#: js/turtleactions/DictActions.js:172 +msgid "font" msgstr "" -#: js/musicutils.js:779 -#: js/synthutils.js:173 -#.TRANS: sound effect -msgid "raindrop" +#: js/turtleactions/DictActions.js:255 +msgid "Dictionary with this name does not exist" msgstr "" -#: js/musicutils.js:780 -#: js/synthutils.js:175 -#.TRANS: animal sound effect -msgid "cat" +#: js/turtleactions/DictActions.js:259 +msgid "Key with this name does not exist in " msgstr "" -#: js/musicutils.js:781 -#: js/synthutils.js:177 -#.TRANS: animal sound effect -msgid "cricket" +#: js/turtleactions/DrumActions.js:227 +msgid "Noise Block: Did you mean to use a Note block?" msgstr "" -#: js/musicutils.js:782 -#: js/synthutils.js:179 -#.TRANS: animal sound effect -msgid "dog" +#: js/turtleactions/IntervalsActions.js:113 +msgid "one" msgstr "" -#: js/musicutils.js:784 -#: js/synthutils.js:86 -#.TRANS: musical instrument -msgid "banjo" +#: js/turtleactions/IntervalsActions.js:113 +msgid "two" msgstr "" -#: js/musicutils.js:785 -#: js/synthutils.js:88 -#.TRANS: musical instrument -msgid "koto" +#: js/turtleactions/IntervalsActions.js:113 +msgid "three" msgstr "" -#: js/musicutils.js:786 -#: js/synthutils.js:90 -#.TRANS: musical instrument -msgid "dulcimer" +#: js/turtleactions/IntervalsActions.js:113 +msgid "four" msgstr "" -#: js/musicutils.js:787 -#: js/synthutils.js:92 -#.TRANS: musical instrument -msgid "electric guitar" +#: js/turtleactions/IntervalsActions.js:113 +msgid "five" msgstr "" -#: js/musicutils.js:788 -#: js/synthutils.js:94 -#.TRANS: musical instrument -msgid "bassoon" +#: js/turtleactions/IntervalsActions.js:113 +msgid "six" msgstr "" -#: js/musicutils.js:789 -#: js/synthutils.js:96 -#.TRANS: musical instrument -msgid "celeste" +#: js/turtleactions/IntervalsActions.js:113 +msgid "seven" msgstr "" -#: js/musicutils.js:791 -#: js/musicutils.js:1123 -#: js/musicutils.js:1131 -#: js/temperament.js:650 -#.TRANS: musical temperament -msgid "equal" +#: js/turtleactions/IntervalsActions.js:113 +msgid "eight" msgstr "" -#: js/musicutils.js:793 -#: js/musicutils.js:1125 -#: js/musicutils.js:1133 -#.TRANS: musical temperament -msgid "Pythagorean" +#: js/turtleactions/IntervalsActions.js:113 +msgid "nine" msgstr "" -#: js/musicutils.js:795 -#: js/musicutils.js:1124 -#: js/musicutils.js:1132 -#.TRANS: musical temperament -msgid "just intonation" +#: js/turtleactions/IntervalsActions.js:119 +msgid "a" msgstr "" -#: js/musicutils.js:797 -#: js/musicutils.js:1126 -#: js/musicutils.js:1127 -#: js/musicutils.js:1134 -#: js/musicutils.js:1135 -#.TRANS: musical temperament -msgid "meantone" +#: js/turtleactions/IntervalsActions.js:120 +msgid "below" msgstr "" -#: js/musicutils.js:814 -msgid "major 7th" +#: js/turtleactions/IntervalsActions.js:124 +msgid "above" msgstr "" -#: js/musicutils.js:815 -msgid "minor 7th" +#: js/turtleactions/IntervalsActions.js:131 +msgid "plus" msgstr "" -#: js/musicutils.js:816 -msgid "dominant 7th" +#: js/turtleactions/IntervalsActions.js:139 +msgid " below" msgstr "" -#: js/musicutils.js:817 -msgid "minor-major 7th" +#: js/turtleactions/IntervalsActions.js:257 +msgid "Adding missing pitch number 0." msgstr "" -#: js/musicutils.js:818 -msgid "fully-diminished 7th" +#: js/turtleactions/IntervalsActions.js:265 +msgid "Ignoring pitch numbers less than zero or greater than eleven." msgstr "" -#: js/musicutils.js:819 -msgid "half-diminished 7th" +#: js/turtleactions/IntervalsActions.js:271 +msgid "Ignoring duplicate pitch numbers." msgstr "" -#: js/musicutils.js:4379 -#: js/musicutils.js:4416 -msgid "current" +#: js/turtleactions/ToneActions.js:134 +msgid "Vibrato intensity must be between 1 and 100." msgstr "" -#: js/musicutils.js:4382 -#: js/musicutils.js:4407 -msgid "next" +#: js/turtleactions/ToneActions.js:139 +msgid "Vibrato rate must be greater than 0." msgstr "" -#: js/musicutils.js:4385 -#: js/musicutils.js:4412 -msgid "previous" +#: js/turtleactions/ToneActions.js:192 +#: js/turtleactions/ToneActions.js:265 +#.TRANS: Depth is the intesity of the tremolo or chorus effect. +msgid "Depth is out of range." msgstr "" -#: js/synthutils.js:104 -#.TRANS: simple monotone synthesizer -msgid "simple-2" +#: js/turtleactions/ToneActions.js:301 +msgid "Distortion must be from 0 to 100." msgstr "" -#: js/synthutils.js:106 -#.TRANS: simple monotone synthesizer -msgid "simple-3" +#: js/turtleactions/ToneActions.js:332 +#.TRANS: partials components in a harmonic series +msgid "Partial must be greater than or equal to 0." msgstr "" -#: js/synthutils.js:108 -#.TRANS: simple monotone synthesizer -msgid "simple-4" +#: js/turtleactions/ToneActions.js:378 +#: js/turtleactions/ToneActions.js:417 +#: js/turtleactions/ToneActions.js:456 +#: js/widgets/timbre.js:782 +msgid "Unable to use synth due to existing oscillator" msgstr "" -#: js/synthutils.js:141 -#.TRANS: musical instrument -msgid "taiko" +#: js/turtleactions/ToneActions.js:388 +#: js/turtleactions/ToneActions.js:427 +msgid "The input cannot be negative." msgstr "" -#: js/modewidget.js:86 -#: js/modewidget.js:88 -#: js/modewidget.js:642 -#: js/modewidget.js:644 -#: js/modewidget.js:712 -#: js/modewidget.js:714 -#: js/temperament.js:2078 -#: js/rhythmruler.js:189 -#: js/rhythmruler.js:1410 -#: js/rhythmruler.js:1412 -#: js/rhythmruler.js:1435 -#: js/rhythmruler.js:1437 -#: js/meterwidget.js:89 -#: js/meterwidget.js:91 +#: js/widgets/modewidget.js:86 +#: js/widgets/modewidget.js:88 +#: js/widgets/modewidget.js:642 +#: js/widgets/modewidget.js:644 +#: js/widgets/modewidget.js:712 +#: js/widgets/modewidget.js:714 +#: js/widgets/meterwidget.js:194 +#: js/widgets/meterwidget.js:196 +#: js/widgets/temperament.js:2236 +#: js/widgets/rhythmruler.js:457 +#: js/widgets/rhythmruler.js:1790 +#: js/widgets/rhythmruler.js:1792 +#: js/widgets/rhythmruler.js:1816 +#: js/widgets/rhythmruler.js:1818 msgid "Play all" msgstr "" -#: js/modewidget.js:115 -#: js/pitchstaircase.js:641 -#: js/phrasemaker.js:339 -#: js/pitchdrummatrix.js:94 -#: js/pitchslider.js:125 -#: js/temperament.js:2083 -#: js/musickeyboard.js:530 -#: js/timbre.js:756 -#: js/meterwidget.js:124 -#: js/arpeggio.js:103 +#: js/widgets/modewidget.js:115 +#: js/widgets/meterwidget.js:229 +#: js/widgets/pitchdrummatrix.js:166 +#: js/widgets/pitchslider.js:125 +#: js/widgets/pitchstaircase.js:641 +#: js/widgets/temperament.js:2244 +#: js/widgets/timbre.js:756 +#: js/widgets/arpeggio.js:103 +#: js/widgets/musickeyboard.js:688 +#: js/widgets/phrasemaker.js:550 msgid "Save" msgstr "" -#: js/modewidget.js:121 -#: js/pitchstaircase.js:686 -#: js/phrasemaker.js:356 -#: js/pitchdrummatrix.js:109 -#: js/musickeyboard.js:534 -#: js/rhythmruler.js:269 -#: js/arpeggio.js:118 +#: js/widgets/modewidget.js:121 +#: js/widgets/pitchdrummatrix.js:181 +#: js/widgets/pitchstaircase.js:686 +#: js/widgets/arpeggio.js:118 +#: js/widgets/musickeyboard.js:696 +#: js/widgets/phrasemaker.js:567 +#: js/widgets/rhythmruler.js:601 #.TRANS: clear all subdivisions from the ruler. msgid "Clear" msgstr "" -#: js/modewidget.js:127 +#: js/widgets/modewidget.js:127 msgid "Rotate counter clockwise" msgstr "" -#: js/modewidget.js:133 +#: js/widgets/modewidget.js:133 msgid "Rotate clockwise" msgstr "" -#: js/modewidget.js:139 +#: js/widgets/modewidget.js:139 msgid "Invert" msgstr "" -#: js/modewidget.js:145 -#: js/pitchstaircase.js:678 -#: js/rhythmruler.js:258 -#: js/timbre.js:963 +#: js/widgets/modewidget.js:145 +#: js/widgets/pitchstaircase.js:678 +#: js/widgets/timbre.js:963 +#: js/widgets/rhythmruler.js:578 msgid "Undo" msgstr "" -#: js/modewidget.js:163 +#: js/widgets/modewidget.js:163 #.TRANS: A circle of notes represents the musical mode. msgid "Click in the circle to select notes for the mode." msgstr "" -#: js/modewidget.js:1017 -#: js/pitchstaircase.js:580 -#: js/phrasemaker.js:4855 -#: js/temperament.js:1754 -#: js/rhythmruler.js:1865 -#: js/rhythmruler.js:2081 -#: js/tempo.js:414 +#: js/widgets/modewidget.js:1017 +#: js/widgets/pitchstaircase.js:580 +#: js/widgets/temperament.js:1929 +#: js/widgets/tempo.js:414 +#: js/widgets/phrasemaker.js:5356 +#: js/widgets/rhythmruler.js:2254 +#: js/widgets/rhythmruler.js:2472 msgid "New action block generated!" msgstr "" -#: js/oscilloscope.js:79 -msgid "Zoom In" -msgstr "" - -#: js/oscilloscope.js:88 -msgid "Zoom Out" -msgstr "" - -#: js/pitchstaircase.js:624 -msgid "Play chord" -msgstr "" - -#: js/pitchstaircase.js:632 -msgid "Play scale" +#: js/widgets/meterwidget.js:275 +msgid "Reset" msgstr "" -#: js/pitchstaircase.js:696 -msgid "Click on a note to create a new step." +#: js/widgets/meterwidget.js:301 +msgid "Click in the circle to select strong beats for the meter." msgstr "" -#: js/phrasemaker.js:363 -msgid "Export" +#: js/widgets/oscilloscope.js:79 +msgid "Zoom In" msgstr "" -#: js/phrasemaker.js:370 -msgid "Sort" +#: js/widgets/oscilloscope.js:88 +msgid "Zoom Out" msgstr "" -#: js/phrasemaker.js:373 -#: js/musickeyboard.js:559 -msgid "Add note" +#: js/widgets/pitchdrummatrix.js:356 +#: js/widgets/pitchdrummatrix.js:752 +msgid "Click in the grid to map notes to drums." msgstr "" -#: js/phrasemaker.js:764 -msgid "Click on the table to add notes." +#: js/widgets/pitchslider.js:103 +msgid "Move up" msgstr "" -#: js/phrasemaker.js:2414 -#: js/phrasemaker.js:2543 -msgid "tuplet value" +#: js/widgets/pitchslider.js:114 +msgid "Move down" msgstr "" -#: js/pitchdrummatrix.js:270 -#: js/pitchdrummatrix.js:639 -msgid "Click in the grid to map notes to drums." +#: js/widgets/pitchslider.js:136 +msgid "Click on the slider to create a note block." msgstr "" -#: js/pitchslider.js:103 -msgid "Move up" +#: js/widgets/pitchstaircase.js:624 +msgid "Play chord" msgstr "" -#: js/pitchslider.js:114 -msgid "Move down" +#: js/widgets/pitchstaircase.js:632 +msgid "Play scale" msgstr "" -#: js/pitchslider.js:136 -msgid "Click on the slider to create a note block." +#: js/widgets/pitchstaircase.js:696 +msgid "Click on a note to create a new step." msgstr "" -#: js/temperament.js:215 +#: js/widgets/temperament.js:321 msgid "back to 2:1 octave space" msgstr "" -#: js/temperament.js:323 +#: js/widgets/temperament.js:447 msgid "edit" msgstr "" -#: js/temperament.js:330 -#: js/temperament.js:332 -#: js/temperament.js:1336 -#: js/temperament.js:1338 +#: js/widgets/temperament.js:454 +#: js/widgets/temperament.js:456 +#: js/widgets/temperament.js:1493 +#: js/widgets/temperament.js:1495 msgid "close" msgstr "" -#: js/temperament.js:423 -#: js/temperament.js:736 -#: js/temperament.js:743 -#: js/temperament.js:845 -#: js/temperament.js:935 -#: js/temperament.js:942 -#: js/temperament.js:1015 -#: js/temperament.js:1284 -#: js/temperament.js:1354 -#: js/temperament.js:1430 +#: js/widgets/temperament.js:552 +#: js/widgets/temperament.js:877 +#: js/widgets/temperament.js:884 +#: js/widgets/temperament.js:986 +#: js/widgets/temperament.js:1080 +#: js/widgets/temperament.js:1087 +#: js/widgets/temperament.js:1160 +#: js/widgets/temperament.js:1433 +#: js/widgets/temperament.js:1511 +#: js/widgets/temperament.js:1596 msgid "done" msgstr "" -#: js/temperament.js:477 -#: js/temperament.js:482 -#: js/temperament.js:918 +#: js/widgets/temperament.js:610 +#: js/widgets/temperament.js:615 +#: js/widgets/temperament.js:1063 msgid "ratio" msgstr "" -#: js/temperament.js:483 +#: js/widgets/temperament.js:616 msgid "interval" msgstr "" -#: js/temperament.js:611 +#: js/widgets/temperament.js:744 msgid "non scalar" msgstr "" -#: js/temperament.js:650 +#: js/widgets/temperament.js:787 msgid "ratios" msgstr "" -#: js/temperament.js:650 +#: js/widgets/temperament.js:787 msgid "arbitrary" msgstr "" -#: js/temperament.js:719 +#: js/widgets/temperament.js:860 msgid "number of divisions" msgstr "" -#: js/temperament.js:741 -#: js/temperament.js:858 -#: js/temperament.js:940 -#: js/temperament.js:1033 +#: js/widgets/temperament.js:882 +#: js/widgets/temperament.js:999 +#: js/widgets/temperament.js:1085 +#: js/widgets/temperament.js:1178 msgid "preview" msgstr "" -#: js/temperament.js:788 +#: js/widgets/temperament.js:929 msgid "The Number of divisions is too large." msgstr "" -#: js/temperament.js:921 +#: js/widgets/temperament.js:1066 msgid "recursion" msgstr "" -#: js/temperament.js:1450 +#: js/widgets/temperament.js:1616 msgid "The octave ratio has changed. This changes temperament significantly." msgstr "" -#: js/temperament.js:2087 +#: js/widgets/temperament.js:2248 msgid "Table" msgstr "" -#: js/temperament.js:2185 +#: js/widgets/temperament.js:2356 msgid "Add pitches" msgstr "" -#: js/musickeyboard.js:570 -msgid "Metronome" +#: js/widgets/tempo.js:78 +#: js/widgets/tempo.js:97 +#: js/widgets/tempo.js:99 +#: js/widgets/aiwidget.js:134 +#: js/widgets/aiwidget.js:136 +#: js/widgets/rhythmruler.js:681 +#: js/widgets/rhythmruler.js:683 +#: js/widgets/rhythmruler.js:1864 +#: js/widgets/rhythmruler.js:1866 +#: js/widgets/sampler.js:180 +#: js/widgets/sampler.js:182 +msgid "Pause" msgstr "" -#: js/musickeyboard.js:1296 -#: plugins/rodi.rtp:193 -msgid "duration" +#: js/widgets/tempo.js:113 +msgid "Save tempo" msgstr "" -#: js/musickeyboard.js:2840 -msgid "New action blocks generated!" +#: js/widgets/tempo.js:144 +msgid "speed up" msgstr "" -#: js/musickeyboard.js:2841 -msgid "New action block generated" +#: js/widgets/tempo.js:150 +msgid "slow down" msgstr "" -#: js/musickeyboard.js:2984 -#: js/musickeyboard.js:2992 -msgid "MIDI device present." +#: js/widgets/tempo.js:194 +msgid "Adjust the tempo with the buttons." msgstr "" -#: js/musickeyboard.js:2995 -msgid "No MIDI device found." +#: js/widgets/tempo.js:261 +msgid "Please enter a number between 30 and 1000" msgstr "" -#: js/musickeyboard.js:3000 -msgid "Failed to get MIDI access in browser." +#: js/widgets/tempo.js:268 +#: js/widgets/tempo.js:271 +msgid "The beats per minute must be between 30 and 1000." msgstr "" -#: js/rhythmruler.js:202 -msgid "Save rhythms" +#: js/widgets/tempo.js:287 +msgid "The beats per minute must be below 1000." msgstr "" -#: js/rhythmruler.js:222 -msgid "Save drum machine" +#: js/widgets/tempo.js:303 +msgid "The beats per minute must be above 30" msgstr "" -#: js/rhythmruler.js:263 -#.TRANS: user can tap out a rhythm by clicking on a ruler. -msgid "Tap a rhythm" +#: js/widgets/timbre.js:766 +msgid "Synthesizer" msgstr "" -#: js/rhythmruler.js:342 -#: js/rhythmruler.js:344 -#: js/rhythmruler.js:1481 -#: js/rhythmruler.js:1483 -#: js/sampler.js:110 -#: js/sampler.js:112 -#: js/tempo.js:78 -#: js/tempo.js:97 -#: js/tempo.js:99 -msgid "Pause" +#: js/widgets/timbre.js:789 +msgid "Oscillator" msgstr "" -#: js/rhythmruler.js:478 -msgid "Click on the ruler to divide it." +#: js/widgets/timbre.js:840 +msgid "Envelope" msgstr "" -#: js/rhythmruler.js:603 -#: js/rhythmruler.js:605 -#: js/rhythmruler.js:804 -#: js/rhythmruler.js:806 -#: js/rhythmruler.js:1386 -#: js/rhythmruler.js:1388 -msgid "tap a rhythm" +#: js/widgets/timbre.js:886 +#: planet/js/GlobalTag.js:50 +#.TRANS: On the Planet, we use labels to tag projects. +msgid "Effects" msgstr "" -#: js/rhythmruler.js:1084 -msgid "Maximum value of 256 has been exceeded." +#: js/widgets/timbre.js:904 +msgid "Filter" msgstr "" -#: js/sampler.js:137 -msgid "Warning: Sample is bigger than 1MB." +#: js/widgets/timbre.js:946 +msgid "Add filter" msgstr "" -#: js/sampler.js:142 -msgid "Upload failed: Sample is not a .wav file." +#: js/widgets/timbre.js:987 +msgid "Click on buttons to open the timbre design tools." msgstr "" -#: js/sampler.js:164 -msgid "A new sample block was generated." +#: js/widgets/timbre.js:1273 +msgid "harmonicity" msgstr "" -#: js/sampler.js:255 -msgid "Upload sample" +#: js/widgets/timbre.js:1340 +#: js/widgets/timbre.js:1406 +msgid "modulation index" msgstr "" -#: js/sampler.js:306 -msgid "Save sample" +#: js/widgets/timbre.js:1484 +msgid "vibrato amount" msgstr "" -#: js/sampler.js:697 -#.TRANS: The reference tone is a sound used for comparison. -msgid "reference tone" +#: js/widgets/timbre.js:1919 +msgid "Filter already present." msgstr "" -#: js/tempo.js:113 -msgid "Save tempo" +#: js/widgets/timbre.js:2322 +msgid "delay (MS)" msgstr "" -#: js/tempo.js:144 -msgid "speed up" +#: js/widgets/timbre.js:2507 +msgid "distortion amount" msgstr "" -#: js/tempo.js:150 -msgid "slow down" +#: js/widgets/aiwidget.js:180 +#: js/widgets/sampler.js:227 +msgid "Warning: Sample is bigger than 1MB." msgstr "" -#: js/tempo.js:194 -msgid "Adjust the tempo with the buttons." +#: js/widgets/aiwidget.js:539 +msgid "New start block generated" msgstr "" -#: js/tempo.js:261 -msgid "Please enter a number between 30 and 1000" +#: js/widgets/aiwidget.js:541 +msgid "MIDI loading. This may take some time depending upon the number of notes in the track" msgstr "" -#: js/tempo.js:268 -#: js/tempo.js:271 -msgid "The beats per minute must be between 30 and 1000." +#: js/widgets/aiwidget.js:551 +#: js/widgets/sampler.js:254 +msgid "Upload failed: Sample is not a .wav file." msgstr "" -#: js/tempo.js:287 -msgid "The beats per minute must be below 1000." +#: js/widgets/aiwidget.js:679 +#: js/widgets/sampler.js:432 +msgid "Save sample" msgstr "" -#: js/tempo.js:303 -msgid "The beats per minute must be above 30" +#: js/widgets/aiwidget.js:701 +msgid "AI Music" msgstr "" -#: js/timbre.js:766 -msgid "Synthesizer" +#: js/widgets/arpeggio.js:239 +msgid "Click in the grid to add steps to the arpeggio." msgstr "" -#: js/timbre.js:789 -msgid "Oscillator" +#: js/widgets/help.js:95 +#: js/widgets/help.js:125 +#: js/widgets/help.js:146 +#: js/widgets/help.js:158 +#: js/widgets/help.js:376 +#: js/widgets/help.js:391 +msgid "Take a tour" msgstr "" -#: js/timbre.js:840 -msgid "Envelope" +#: js/widgets/musickeyboard.js:725 +#: js/widgets/phrasemaker.js:584 +msgid "Add note" msgstr "" -#: js/timbre.js:886 -#: js/GlobalTag.js:50 -#.TRANS: On the Planet, we use labels to tag projects. -msgid "Effects" +#: js/widgets/musickeyboard.js:744 +msgid "Metronome" +msgstr "" + +#: js/widgets/musickeyboard.js:1549 +#: plugins/rodi.rtp:193 +msgid "duration" +msgstr "" + +#: js/widgets/musickeyboard.js:3179 +msgid "New action blocks generated" +msgstr "" + +#: js/widgets/musickeyboard.js:3180 +msgid "New action block generated" msgstr "" -#: js/timbre.js:904 -msgid "Filter" +#: js/widgets/musickeyboard.js:3365 +#: js/widgets/musickeyboard.js:3373 +msgid "MIDI device present." msgstr "" -#: js/timbre.js:946 -msgid "Add filter" +#: js/widgets/musickeyboard.js:3376 +msgid "No MIDI device found." msgstr "" -#: js/timbre.js:987 -msgid "Click on buttons to open the timbre design tools." +#: js/widgets/musickeyboard.js:3386 +msgid "Failed to get MIDI access in browser." msgstr "" -#: js/timbre.js:1273 -msgid "harmonicity" +#: js/widgets/phrasemaker.js:574 +msgid "Export" msgstr "" -#: js/timbre.js:1340 -#: js/timbre.js:1406 -msgid "modulation index" +#: js/widgets/phrasemaker.js:581 +msgid "Sort" msgstr "" -#: js/timbre.js:1484 -msgid "vibrato amount" +#: js/widgets/phrasemaker.js:975 +msgid "Click on the table to add notes." msgstr "" -#: js/timbre.js:1919 -msgid "Filter already present." +#: js/widgets/phrasemaker.js:2677 +#: js/widgets/phrasemaker.js:2819 +msgid "tuplet value" msgstr "" -#: js/timbre.js:2322 -msgid "delay (MS)" +#: js/widgets/rhythmruler.js:486 +msgid "Save rhythms" msgstr "" -#: js/timbre.js:2507 -msgid "distortion amount" +#: js/widgets/rhythmruler.js:512 +msgid "Save drum machine" msgstr "" -#: js/meterwidget.js:170 -msgid "Reset" +#: js/widgets/rhythmruler.js:589 +#.TRANS: user can tap out a rhythm by clicking on a ruler. +msgid "Tap a rhythm" msgstr "" -#: js/meterwidget.js:196 -msgid "Click in the circle to select strong beats for the meter." +#: js/widgets/rhythmruler.js:817 +msgid "Click on the ruler to divide it." msgstr "" -#: js/arpeggio.js:239 -msgid "Click in the grid to add steps to the arpeggio." +#: js/widgets/rhythmruler.js:950 +#: js/widgets/rhythmruler.js:952 +#: js/widgets/rhythmruler.js:1152 +#: js/widgets/rhythmruler.js:1154 +#: js/widgets/rhythmruler.js:1765 +#: js/widgets/rhythmruler.js:1767 +msgid "tap a rhythm" msgstr "" -#: js/ProjectStorage.js:243 -msgid "anonymous" +#: js/widgets/rhythmruler.js:1459 +msgid "Maximum value of 256 has been exceeded." msgstr "" -#: js/GlobalCard.js:68 -msgid "Share" +#: js/widgets/sampler.js:237 +msgid "Recording started..." msgstr "" -#: js/GlobalCard.js:74 -msgid "Flags" +#: js/widgets/sampler.js:245 +msgid "Recording complete..." msgstr "" -#: js/LocalCard.js:36 -msgid "View published project" +#: js/widgets/sampler.js:283 +msgid "A new sample block was generated." msgstr "" -#: js/LocalCard.js:42 -msgid "Publish project" +#: js/widgets/sampler.js:378 +msgid "Upload sample" msgstr "" -#: js/LocalCard.js:51 -msgid "Edit project" +#: js/widgets/sampler.js:399 +msgid "Warning: Your sample cannot be loaded because it is >1MB." msgstr "" -#: js/LocalCard.js:52 -msgid "Delete project" +#: js/widgets/sampler.js:448 +msgid "Toggle Mic" msgstr "" -#: js/LocalCard.js:53 -msgid "Download project" +#: js/widgets/sampler.js:458 +msgid "Playback" msgstr "" -#: js/LocalCard.js:55 -msgid "Duplicate project" +#: js/widgets/sampler.js:979 +#.TRANS: The reference tone is a sound used for comparison. +msgid "reference tone" msgstr "" -#: js/GlobalTag.js:28 +#: planet/js/GlobalTag.js:28 #.TRANS: On the Planet, we use labels to tag projects. msgid "All Projects" msgstr "" -#: js/GlobalTag.js:30 -#: js/StringHelper.js:37 +#: planet/js/GlobalTag.js:30 +#: planet/js/StringHelper.js:37 #.TRANS: On the Planet, we use labels to tag projects. msgid "My Projects" msgstr "" -#: js/GlobalTag.js:32 +#: planet/js/GlobalTag.js:32 #.TRANS: On the Planet, we use labels to tag projects. msgid "Examples" msgstr "" -#: js/GlobalTag.js:34 +#: planet/js/GlobalTag.js:34 #.TRANS: On the Planet, we use labels to tag projects. msgid "Music" msgstr "" -#: js/GlobalTag.js:36 +#: planet/js/GlobalTag.js:36 #.TRANS: On the Planet, we use labels to tag projects. msgid "Art" msgstr "" -#: js/GlobalTag.js:38 +#: planet/js/GlobalTag.js:38 #.TRANS: On the Planet, we use labels to tag projects. msgid "Math" msgstr "" -#: js/GlobalTag.js:40 +#: planet/js/GlobalTag.js:40 #.TRANS: On the Planet, we use labels to tag projects. msgid "Interactive" msgstr "" -#: js/GlobalTag.js:42 +#: planet/js/GlobalTag.js:42 #.TRANS: On the Planet, we use labels to tag projects. msgid "Design" msgstr "" -#: js/GlobalTag.js:44 +#: planet/js/GlobalTag.js:44 #.TRANS: On the Planet, we use labels to tag projects. msgid "Game" msgstr "" -#: js/GlobalTag.js:46 +#: planet/js/GlobalTag.js:46 #.TRANS: On the Planet, we use labels to tag projects. msgid "Media" msgstr "" -#: js/GlobalTag.js:48 +#: planet/js/GlobalTag.js:48 #.TRANS: On the Planet, we use labels to tag projects. msgid "Sensors" msgstr "" -#: js/GlobalTag.js:52 +#: planet/js/GlobalTag.js:52 #.TRANS: On the Planet, we use labels to tag projects. msgid "Code Snippet" msgstr "" -#: js/helper.js:149 -#: js/StringHelper.js:49 -msgid "Show more tags" +#: planet/js/LocalCard.js:36 +msgid "View published project" msgstr "" -#: js/helper.js:150 -msgid "Show fewer tags" +#: planet/js/LocalCard.js:42 +msgid "Publish project" +msgstr "" + +#: planet/js/LocalCard.js:51 +msgid "Edit project" +msgstr "" + +#: planet/js/LocalCard.js:52 +msgid "Delete project" +msgstr "" + +#: planet/js/LocalCard.js:53 +msgid "Download project" +msgstr "" + +#: planet/js/LocalCard.js:55 +msgid "Duplicate project" +msgstr "" + +#: planet/js/ProjectStorage.js:243 +msgid "anonymous" +msgstr "" + +#: planet/js/SaveInterface.js:34 +msgid "Open in Music Blocks" +msgstr "" + +#: planet/js/SaveInterface.js:35 +msgid "Open in Turtle Blocks" +msgstr "" + +#: planet/js/GlobalCard.js:68 +msgid "Share" +msgstr "" + +#: planet/js/GlobalCard.js:74 +msgid "Flags" +msgstr "" + +#: planet/js/GlobalPlanet.js:35 +msgid "No results found." +msgstr "" + +#: planet/js/GlobalPlanet.js:51 +msgid "Remix of" +msgstr "" + +#: planet/js/GlobalPlanet.js:509 +msgid "Cannot connect to server" msgstr "" -#: js/ProjectViewer.js:30 +#: planet/js/ProjectViewer.js:30 msgid "Error: Report could not be submitted. Try again later." msgstr "" -#: js/ProjectViewer.js:31 +#: planet/js/ProjectViewer.js:31 msgid "Thank you for reporting this project. A moderator will review the project shortly, to verify violation of the Sugar Labs Code of Conduct." msgstr "" -#: js/ProjectViewer.js:32 -#: js/StringHelper.js:62 -#: js/StringHelper.js:64 -#: js/StringHelper.js:68 +#: planet/js/ProjectViewer.js:32 +#: planet/js/StringHelper.js:62 +#: planet/js/StringHelper.js:64 +#: planet/js/StringHelper.js:68 msgid "Report Project" msgstr "" -#: js/ProjectViewer.js:33 -#: js/StringHelper.js:63 +#: planet/js/ProjectViewer.js:33 +#: planet/js/StringHelper.js:63 msgid "Project Reported" msgstr "" -#: js/ProjectViewer.js:34 +#: planet/js/ProjectViewer.js:34 msgid "Report description required" msgstr "" -#: js/ProjectViewer.js:35 +#: planet/js/ProjectViewer.js:35 msgid "Report description too long" msgstr "" -#: js/StringHelper.js:30 +#: planet/js/Publisher.js:30 +msgid "Feature unavailable - cannot connect to server. Reload Music Blocks to try again." +msgstr "" + +#: planet/js/Publisher.js:220 +#: planet/js/Publisher.js:237 +msgid "This field is required" +msgstr "" + +#: planet/js/Publisher.js:227 +msgid "Title too long" +msgstr "" + +#: planet/js/Publisher.js:244 +msgid "Description too long" +msgstr "" + +#: planet/js/Publisher.js:341 +msgid "Server Error" +msgstr "" + +#: planet/js/Publisher.js:341 +msgid "Try Again" +msgstr "" + +#: planet/js/StringHelper.js:30 msgid "Planet" msgstr "" -#: js/StringHelper.js:31 +#: planet/js/StringHelper.js:31 msgid "Close Planet" msgstr "" -#: js/StringHelper.js:32 +#: planet/js/StringHelper.js:32 msgid "Open project from file" msgstr "" -#: js/StringHelper.js:34 +#: planet/js/StringHelper.js:34 msgid "Local" msgstr "" -#: js/StringHelper.js:35 +#: planet/js/StringHelper.js:35 msgid "Global" msgstr "" -#: js/StringHelper.js:36 +#: planet/js/StringHelper.js:36 msgid "Search for a project" msgstr "" -#: js/StringHelper.js:38 +#: planet/js/StringHelper.js:38 msgid "Publish Project" msgstr "" -#: js/StringHelper.js:40 +#: planet/js/StringHelper.js:40 msgid "Tags (max 5)" msgstr "" -#: js/StringHelper.js:41 -#: js/StringHelper.js:61 +#: planet/js/StringHelper.js:41 +#: planet/js/StringHelper.js:61 msgid "Description" msgstr "" -#: js/StringHelper.js:42 -#: js/StringHelper.js:67 +#: planet/js/StringHelper.js:42 +#: planet/js/StringHelper.js:67 msgid "Submit" msgstr "" -#: js/StringHelper.js:43 -#: js/StringHelper.js:47 +#: planet/js/StringHelper.js:43 +#: planet/js/StringHelper.js:47 msgid "Cancel" msgstr "" -#: js/StringHelper.js:44 +#: planet/js/StringHelper.js:44 msgid "Delete \\"\\"?" msgstr "" -#: js/StringHelper.js:45 +#: planet/js/StringHelper.js:45 msgid "Permanently delete project \\"\\"?" msgstr "" -#: js/StringHelper.js:48 +#: planet/js/StringHelper.js:48 msgid "Explore Projects" msgstr "" -#: js/StringHelper.js:50 +#: planet/js/StringHelper.js:49 +#: planet/js/helper.js:149 +msgid "Show more tags" +msgstr "" + +#: planet/js/StringHelper.js:50 msgid "Most recent" msgstr "" -#: js/StringHelper.js:51 +#: planet/js/StringHelper.js:51 msgid "Most liked" msgstr "" -#: js/StringHelper.js:52 +#: planet/js/StringHelper.js:52 msgid "Most downloaded" msgstr "" -#: js/StringHelper.js:53 +#: planet/js/StringHelper.js:53 msgid "A-Z" msgstr "" -#: js/StringHelper.js:54 +#: planet/js/StringHelper.js:54 msgid "Sort by" msgstr "" -#: js/StringHelper.js:55 +#: planet/js/StringHelper.js:55 msgid "Load More Projects" msgstr "" -#: js/StringHelper.js:56 +#: planet/js/StringHelper.js:56 msgid "Last Updated" msgstr "" -#: js/StringHelper.js:57 +#: planet/js/StringHelper.js:57 msgid "Creation Date" msgstr "" -#: js/StringHelper.js:58 +#: planet/js/StringHelper.js:58 msgid "Number of Downloads:" msgstr "" -#: js/StringHelper.js:59 +#: planet/js/StringHelper.js:59 msgid "Number of Likes:" msgstr "" -#: js/StringHelper.js:60 +#: planet/js/StringHelper.js:60 msgid "Tags:" msgstr "" -#: js/StringHelper.js:65 +#: planet/js/StringHelper.js:65 msgid "Report projects which violate the Sugar Labs Code of Conduct." msgstr "" -#: js/StringHelper.js:66 +#: planet/js/StringHelper.js:66 msgid "Reason for reporting project" msgstr "" -#: js/StringHelper.js:70 +#: planet/js/StringHelper.js:70 msgid "Download as File" msgstr "" -#: js/GlobalPlanet.js:35 -msgid "No results found." -msgstr "" - -#: js/GlobalPlanet.js:51 -msgid "Remix of" -msgstr "" - -#: js/GlobalPlanet.js:509 -msgid "Cannot connect to server" -msgstr "" - -#: js/Publisher.js:30 -msgid "Feature unavailable - cannot connect to server. Reload Music Blocks to try again." -msgstr "" - -#: js/Publisher.js:218 -#: js/Publisher.js:235 -msgid "This field is required" -msgstr "" - -#: js/Publisher.js:225 -msgid "Title too long" +#: planet/js/helper.js:150 +msgid "Show fewer tags" msgstr "" -#: js/Publisher.js:242 -msgid "Description too long" +#: plugins/accelerometer.rtp:48 +msgid "motion x" msgstr "" -#: js/Publisher.js:339 -msgid "Server Error" +#: plugins/accelerometer.rtp:56 +msgid "motion y" msgstr "" -#: js/Publisher.js:339 -msgid "Try Again" +#: plugins/accelerometer.rtp:64 +msgid "motion z" msgstr "" -#: js/SaveInterface.js:34 -msgid "Open in Music Blocks" +#: plugins/facebook.rtp:27 +msgid "publish" msgstr "" -#: js/SaveInterface.js:35 -msgid "Open in Turtle Blocks" +#: plugins/maths.rtp:62 +msgid "power" msgstr "" -#: plugins/weather.rtp:68 -#: plugins/weather.rtp:97 -msgid "Days ahead must be in the range of -1 to 5." +#: plugins/maths.rtp:62 +msgid "base" msgstr "" -#: plugins/weather.rtp:122 -msgid "forecast" +#: plugins/maths.rtp:62 +msgid "exp" msgstr "" -#: plugins/weather.rtp:123 -#: plugins/weather.rtp:137 -#: plugins/weather.rtp:150 -msgid "city" +#: plugins/maths.rtp:99 +msgid "floor" msgstr "" -#: plugins/weather.rtp:124 -#: plugins/weather.rtp:138 -#: plugins/weather.rtp:151 -msgid "day" +#: plugins/maths.rtp:104 +msgid "ceiling" msgstr "" -#: plugins/weather.rtp:136 -msgid "high" +#: plugins/maths.rtp:109 +msgid "to degrees" msgstr "" -#: plugins/weather.rtp:149 -msgid "low" +#: plugins/maths.rtp:114 +msgid "to radians" msgstr "" #: plugins/nutrition.rtp:104 @@ -9456,45 +9865,6 @@ msgstr "" msgid "water" msgstr "" -#: plugins/maths.rtp:62 -#: plugins/examples.rtp:93 -msgid "power" -msgstr "" - -#: plugins/maths.rtp:62 -#: plugins/examples.rtp:93 -msgid "base" -msgstr "" - -#: plugins/maths.rtp:62 -#: plugins/examples.rtp:93 -msgid "exp" -msgstr "" - -#: plugins/maths.rtp:99 -#: plugins/examples.rtp:130 -msgid "floor" -msgstr "" - -#: plugins/maths.rtp:104 -#: plugins/examples.rtp:135 -msgid "ceiling" -msgstr "" - -#: plugins/maths.rtp:109 -#: plugins/examples.rtp:140 -msgid "to degrees" -msgstr "" - -#: plugins/maths.rtp:114 -#: plugins/examples.rtp:145 -msgid "to radians" -msgstr "" - -#: plugins/facebook.rtp:27 -msgid "publish" -msgstr "" - #: plugins/rodi.rtp:172 msgid "blink" msgstr "" @@ -9523,18 +9893,66 @@ msgstr "" msgid "move" msgstr "" -#: plugins/accelerometer.rtp:48 -msgid "motion x" +#: plugins/weather.rtp:68 +#: plugins/weather.rtp:97 +msgid "Days ahead must be in the range of -1 to 5." msgstr "" -#: plugins/accelerometer.rtp:56 -msgid "motion y" +#: plugins/weather.rtp:122 +msgid "forecast" msgstr "" -#: plugins/accelerometer.rtp:64 -msgid "motion z" +#: plugins/weather.rtp:123 +#: plugins/weather.rtp:137 +#: plugins/weather.rtp:150 +msgid "city" +msgstr "" + +#: plugins/weather.rtp:124 +#: plugins/weather.rtp:138 +#: plugins/weather.rtp:151 +msgid "day" +msgstr "" + +#: plugins/weather.rtp:136 +msgid "high" +msgstr "" + +#: plugins/weather.rtp:149 +msgid "low" msgstr "" +#: js/toolbar.js:70 + +#: js/toolbar.js:130 + +#: js/toolbar.js:194 + +#: js/toolbar.js:249 + +#~msgid "Toggle JavaScript Editor" +#~msgstr "" + +#: js/EnsembleBlocks.js:643 + +#~msgid "The Turrle pitch block returns the current pitch number being played by the specified turtle." +#~msgstr "" + +#: js/PitchActions.js:88 + +#~msgid "The Scalar Step Block must be used inside of a Note Block." +#~msgstr "" + +#: js/PitchActions.js:107 + +#~msgid "The Scalar Step Block must be preceded by a Pitch Block." +#~msgstr "" + +#: js/musickeyboard.js:2840 + +#~msgid "New action blocks generated!" +#~msgstr "" + #: js/toolbar.js:110 #: js/toolbar.js:204 @@ -9875,11 +10293,6 @@ msgstr "" #~msgid "The Time block returns the number of seconds that the program has been running." #~msgstr "" -#: js/help.js:95 - -#~msgid "Take a tour" -#~msgstr "" - #: js/GlobalCard.js:48 #~msgid "More Details" @@ -12778,11 +13191,6 @@ msgstr "" #~msgid "The save-stack button saves a stack onto a custom palette. It appears after a \"long press\" on a stack." #~msgstr "" -#: js/musicutils.js:254 - -#~msgid "Custom" -#~msgstr "" - #: js/basicblocks.js:4785 #~msgid "Rhythm" diff --git a/po/ff.po b/po/ff.po index 228e3c815e..b6425b3c03 100644 --- a/po/ff.po +++ b/po/ff.po @@ -2129,276 +2129,131 @@ #: js/planetInterface.js:104 #: js/planetInterface.js:104 #: js/planetInterface.js:104 -msgid "project undefined" -msgstr "" - -#: js/logo.js:61 -msgid "Not a valid pitch name" -msgstr "" - -#: js/logo.js:507 -#: js/ProgramBlocks.js:258 -#: js/ProgramBlocks.js:427 -msgid "You must select a file." -msgstr "" - -#: js/logo.js:1184 -#: js/turtles.js:118 -#: js/turtle-painter.js:1192 -#: js/turtle-painter.js:1193 -#: js/block.js:1463 -#: js/lilypond.js:757 -#: js/lilypond.js:921 -#: js/lilypond.js:959 -#: js/ActionBlocks.js:1223 -#: js/ProgramBlocks.js:1267 -msgid "start" -msgstr "" - -#: js/logo.js:1696 -msgid "Playback is ready." -msgstr "" - -#: js/blocks.js:1011 -#: js/blocks.js:3427 -#: js/blocks.js:3428 -#: js/blocks.js:3653 -#: js/blocks.js:4012 -#: js/blocks.js:4205 -#: js/blocks.js:5343 -#: js/blocks.js:6474 -#: js/palette.js:527 -#: js/palette.js:536 -#: js/palette.js:545 -#: js/palette.js:554 -#: js/palette.js:1131 -#: js/palette.js:1142 -#: js/palette.js:1153 -#: js/palette.js:1164 -#: js/palette.js:1183 -#: js/rubrics.js:529 -#: js/macros.js:170 -#: js/macros.js:266 -#: js/macros.js:267 -#: js/macros.js:276 -#: js/macros.js:828 -#: js/block.js:1449 -#: js/block.js:4164 -#: js/block.js:4182 -#: js/block.js:4193 -#: js/turtledefs.js:128 -#: js/turtledefs.js:230 -#: js/ActionBlocks.js:254 -#: js/ActionBlocks.js:307 -#: js/ActionBlocks.js:617 -#: js/ActionBlocks.js:716 -#: js/ActionBlocks.js:961 -#: js/ActionBlocks.js:1049 -#: js/ActionBlocks.js:1322 -#: js/ActionBlocks.js:1325 -#: js/ActionBlocks.js:1337 -#: js/ActionBlocks.js:1404 -#: js/MeterBlocks.js:715 -#: js/MeterBlocks.js:768 -#: js/MeterBlocks.js:831 -#: js/MeterBlocks.js:892 -#: js/phrasemaker.js:4412 -#: js/musickeyboard.js:2647 -#: js/rhythmruler.js:1928 -#: js/rhythmruler.js:1935 -#: js/rhythmruler.js:2119 -#: js/rhythmruler.js:2126 -msgid "action" -msgstr "" - -#: js/blocks.js:1205 -#: js/blocks.js:3380 -#: js/blocks.js:3770 -#: js/blocks.js:3801 -#: js/blocks.js:3850 -#: js/blocks.js:3885 -#: js/blocks.js:6497 -#: js/palette.js:509 -#: js/palette.js:638 -#: js/palette.js:1107 -#: js/BoxesBlocks.js:282 -#: js/BoxesBlocks.js:285 -#: js/BoxesBlocks.js:405 -#: js/BoxesBlocks.js:594 -msgid "box" -msgstr "" - -#: js/blocks.js:1680 -msgid "Consider breaking this stack into parts." +#: js/SaveInterface.js:59 +#: js/SaveInterface.js:61 +#: js/SaveInterface.js:93 +msgid "Music Blocks Project" msgstr "" -#: js/blocks.js:2408 -#: js/palette.js:653 -#: js/MediaBlocks.js:602 -msgid "open file" +#: js/SaveInterface.js:63 +msgid "This project was created in Music Blocks" msgstr "" -#: js/blocks.js:2415 -#: js/blocks.js:2423 -#: js/activity.js:1875 -msgid "audio file" +#: js/SaveInterface.js:67 +msgid "Music Blocks is a Free/Libre Software application." msgstr "" -#: js/blocks.js:2536 -#: js/blocks.js:3147 -#: js/block.js:3543 -msgid "on2" +#: js/SaveInterface.js:69 +msgid "The source code can be accessed at" msgstr "" -#: js/blocks.js:2538 -#: js/blocks.js:3149 -#: js/block.js:3545 -msgid "off" +#: js/SaveInterface.js:72 +msgid "For more information, please consult the" msgstr "" -#: js/blocks.js:2543 -#: js/blocks.js:3154 -#: js/palette.js:618 -#: js/block.js:3466 -#: js/BooleanBlocks.js:77 -#: js/BooleanBlocks.js:167 -#: js/BooleanBlocks.js:251 -#: js/BooleanBlocks.js:335 -#: js/BooleanBlocks.js:433 -#: js/BooleanBlocks.js:539 -#: js/BooleanBlocks.js:640 -#: js/BooleanBlocks.js:741 -#: js/BooleanBlocks.js:847 -#: js/BooleanBlocks.js:948 -#: js/BooleanBlocks.js:1033 -#: js/SensorsBlocks.js:910 -msgid "true" +#: js/SaveInterface.js:76 +#: js/turtledefs.js:795 +msgid "Music Blocks Guide" msgstr "" -#: js/blocks.js:2545 -#: js/blocks.js:3156 -#: js/block.js:3466 -#: js/BooleanBlocks.js:79 -#: js/BooleanBlocks.js:169 -#: js/BooleanBlocks.js:253 -#: js/BooleanBlocks.js:337 -#: js/BooleanBlocks.js:435 -#: js/BooleanBlocks.js:541 -#: js/BooleanBlocks.js:642 -#: js/BooleanBlocks.js:743 -#: js/BooleanBlocks.js:849 -#: js/BooleanBlocks.js:950 -#: js/SensorsBlocks.js:912 -msgid "false" +#: js/SaveInterface.js:83 +msgid "Alternatively, open the file in Music Blocks using the Load project button." msgstr "" -#: js/blocks.js:3183 -#: js/palette.js:574 -#: js/MediaBlocks.js:892 -#: js/MediaBlocks.js:963 -msgid "text" +#: js/SaveInterface.js:85 +msgid "Project Code" msgstr "" -#: js/blocks.js:3379 -#: js/palette.js:641 -#: js/palette.js:642 -#: js/BoxesBlocks.js:514 -msgid "store in box" +#: js/SaveInterface.js:87 +msgid "This code stores data about the blocks in a project." msgstr "" -#: js/blocks.js:3384 -#: js/blocks.js:3824 -#: js/blocks.js:3859 -#: js/blocks.js:3894 -#: js/blocks.js:5773 -#: js/blocks.js:5794 -#: js/BoxesBlocks.js:772 -msgid "box1" +#: js/SaveInterface.js:89 +msgid "Show" msgstr "" -#: js/blocks.js:3386 -#: js/blocks.js:3826 -#: js/blocks.js:3861 -#: js/blocks.js:3896 -#: js/blocks.js:5775 -#: js/blocks.js:5796 -#: js/BoxesBlocks.js:663 -msgid "box2" +#: js/SaveInterface.js:91 +msgid "Hide" msgstr "" -#: js/blocks.js:4058 -#: js/palette.js:639 -#: js/palette.js:644 -#: js/palette.js:1043 -#: js/BoxesBlocks.js:591 -msgid "store in" +#: js/SaveInterface.js:131 +#: js/SaveInterface.js:204 +#: js/SaveInterface.js:262 +#: js/SaveInterface.js:389 +#: js/SaveInterface.js:417 +#: js/activity.js:4884 +#: planet/js/ProjectStorage.js:27 +#: planet/js/GlobalPlanet.js:467 +#: planet/js/GlobalPlanet.js:469 +#: planet/js/GlobalPlanet.js:495 +#.TRANS: default project title when saving as Lilypond +msgid "My Project" msgstr "" -#: js/blocks.js:4058 -#: js/EnsembleBlocks.js:391 -#: js/EnsembleBlocks.js:402 -#: js/MediaBlocks.js:746 -#: js/ProgramBlocks.js:390 -#: js/ProgramBlocks.js:495 -#: js/ProgramBlocks.js:658 -#: js/BoxesBlocks.js:595 -#: js/PitchBlocks.js:656 -#: js/PitchBlocks.js:932 -#: js/PitchBlocks.js:1827 -#: js/ToneBlocks.js:1025 -#: js/DictBlocks.js:215 -#: js/DictBlocks.js:289 -msgid "name" +#: js/SaveInterface.js:197 +#: planet/js/SaveInterface.js:58 +msgid "No description provided" msgstr "" -#: js/blocks.js:4058 -#: js/RhythmBlocks.js:1130 -#: js/BoxesBlocks.js:75 -#: js/BoxesBlocks.js:595 -#: js/HeapBlocks.js:544 -#: js/DictBlocks.js:289 -#: js/DictBlocks.js:430 -msgid "value" +#: js/SaveInterface.js:332 +msgid "Your recording is in progress." msgstr "" -#: js/blocks.js:4907 -msgid "There is no block selected." +#: js/SaveInterface.js:401 +#.TRANS: File name prompt for save as Lilypond +msgid "File name" msgstr "" -#: js/blocks.js:5002 -#: js/MediaBlocks.js:888 -msgid "show" +#: js/SaveInterface.js:403 +#: planet/js/StringHelper.js:39 +#.TRANS: Project title prompt for save as Lilypond +msgid "Project title" msgstr "" -#: js/blocks.js:5005 -#: js/MediaBlocks.js:803 -#.TRANS: Avatar is the image used to determine the appearance of the mouse. -msgid "avatar" +#: js/SaveInterface.js:405 +#.TRANS: Project title prompt for save as Lilypond +msgid "Project author" msgstr "" -#: js/blocks.js:5008 -#: js/ToneBlocks.js:1010 -#: js/sampler.js:693 -#.TRANS: The sound sample that the user uploads. -msgid "sample" +#: js/SaveInterface.js:407 +#.TRANS: MIDI prompt for save as Lilypond +msgid "Include MIDI output?" msgstr "" -#: js/turtles.js:874 -msgid "Grid" +#: js/SaveInterface.js:409 +#.TRANS: Guitar prompt for save as Lilypond +msgid "Include guitar tablature output?" msgstr "" -#: js/turtles.js:891 -#: js/turtledefs.js:626 -msgid "Clean" +#: js/SaveInterface.js:411 +#.TRANS: Lilypond is a scripting language for generating sheet music +msgid "Save as Lilypond" msgstr "" -#: js/turtles.js:912 -#: js/turtledefs.js:632 -msgid "Collapse" +#: js/SaveInterface.js:426 +#: js/blocks/EnsembleBlocks.js:75 +#: js/blocks/EnsembleBlocks.js:154 +#: js/blocks/EnsembleBlocks.js:216 +#: js/blocks/EnsembleBlocks.js:302 +#: js/blocks/EnsembleBlocks.js:348 +#: js/blocks/EnsembleBlocks.js:389 +#: js/blocks/EnsembleBlocks.js:441 +#: js/blocks/EnsembleBlocks.js:490 +#: js/blocks/EnsembleBlocks.js:536 +#: js/blocks/EnsembleBlocks.js:583 +#: js/blocks/EnsembleBlocks.js:637 +#: js/blocks/EnsembleBlocks.js:753 +#: js/blocks/EnsembleBlocks.js:840 +#: js/blocks/EnsembleBlocks.js:899 +#: js/blocks/EnsembleBlocks.js:942 +#: js/blocks/EnsembleBlocks.js:1212 +#: js/blocks/EnsembleBlocks.js:1280 +#.TRANS: default project author when saving as Lilypond +msgid "Mr. Mouse" msgstr "" -#: js/turtles.js:940 -msgid "Expand" +#: js/SaveInterface.js:573 +msgid "The Lilypond code is copied to clipboard. You can paste it here: " msgstr "" #: js/languagebox.js:198 @@ -2409,6933 +2264,7487 @@ msgstr "" msgid "Music Blocks is already set to this language." msgstr "" -#: js/piemenus.js:200 -#: js/musicutils.js:808 -#: js/musicutils.js:824 -#: js/phrasemaker.js:1672 -#: js/musickeyboard.js:2041 -#: js/sampler.js:544 -#.TRANS: double sharp is a music term related to pitch -msgid "double sharp" +#: js/planetInterface.js:131 +msgid "project undefined" msgstr "" -#: js/piemenus.js:201 -#: js/PitchBlocks.js:1510 -#: js/PitchActions.js:580 -#: js/musicutils.js:806 -#: js/musicutils.js:825 -#: js/phrasemaker.js:1673 -#: js/musickeyboard.js:2042 -#: js/sampler.js:545 -#.TRANS: sharp is a half-step up in pitch -#.TRANS: sharp is a music term related to pitch -msgid "sharp" +#: js/rubrics.js:523 +#: js/turtledefs.js:119 +#: js/turtledefs.js:221 +#: js/blocks/RhythmBlockPaletteBlocks.js:52 +#: js/blocks/RhythmBlockPaletteBlocks.js:234 +#: js/blocks/ProgramBlocks.js:745 +#: js/widgets/rhythmruler.js:2057 +#: js/widgets/rhythmruler.js:2064 +#: js/widgets/rhythmruler.js:2133 +#: js/widgets/rhythmruler.js:2140 +#: js/widgets/rhythmruler.js:2219 +#.TRANS: an arrangement of notes based on duration +msgid "rhythm" msgstr "" -#: js/piemenus.js:202 -#: js/musicutils.js:804 -#: js/musicutils.js:826 -#: js/phrasemaker.js:1674 -#: js/musickeyboard.js:2043 -#: js/sampler.js:546 -#.TRANS: natural is a music term related to pitch -msgid "natural" +#: js/rubrics.js:524 +#: js/turtledefs.js:121 +#: js/turtledefs.js:223 +#: js/block-verbose.js:2622 +#: js/block.js:2550 +#: js/blocks/IntervalsBlocks.js:63 +#: js/blocks/SensorsBlocks.js:178 +#: js/blocks/PitchBlocks.js:1839 +#: js/blocks/PitchBlocks.js:1853 +#: js/widgets/musickeyboard.js:1935 +#: js/widgets/phrasemaker.js:1036 +#.TRANS: pitch number +#.TRANS: pitch number +#.TRANS: we specify pitch in terms of a name and an octave. The name can be CDEFGAB or Do Re Mi Fa Sol La Ti. Octave is a number between 1 and 8. +msgid "pitch" msgstr "" -#: js/piemenus.js:203 -#: js/PitchBlocks.js:1469 -#: js/PitchActions.js:583 -#: js/musicutils.js:802 -#: js/musicutils.js:827 -#: js/phrasemaker.js:1675 -#: js/musickeyboard.js:2044 -#: js/sampler.js:547 -#.TRANS: flat is a half-step down in pitch -#.TRANS: flat is a music term related to pitch -msgid "flat" +#: js/rubrics.js:525 +#: js/turtledefs.js:123 +#: js/turtledefs.js:225 +msgid "tone" msgstr "" -#: js/piemenus.js:204 -#: js/musicutils.js:800 -#: js/musicutils.js:828 -#: js/phrasemaker.js:1676 -#: js/musickeyboard.js:2045 -#: js/sampler.js:548 -#.TRANS: double flat is a music term related to pitch -msgid "double flat" +#: js/rubrics.js:526 +#: js/lilypond.js:605 +#: js/lilypond.js:904 +#: js/lilypond.js:910 +#: js/lilypond.js:948 +msgid "mouse" msgstr "" -#: js/piemenus.js:2861 -#: js/PitchBlocks.js:1357 -#: js/musicutils.js:627 -#.TRANS: unison means the note is the same as the current note -#.TRANS: unison is a music term related to intervals -msgid "unison" +#: js/rubrics.js:527 +#: js/turtledefs.js:132 +#: js/turtledefs.js:234 +#: js/widgets/phrasemaker.js:1040 +msgid "pen" msgstr "" -#: js/piemenus.js:3015 -#: js/piemenus.js:3088 -#: js/musicutils.js:635 -#: js/musicutils.js:810 -#: js/musicutils.js:912 -#.TRANS: major is a music term related to intervals and mode -msgid "major" +#: js/rubrics.js:528 +#: js/turtledefs.js:133 +#: js/turtledefs.js:235 +#: js/blocks/NumberBlocks.js:981 +#: js/blocks/PitchBlocks.js:1717 +#: js/blocks/PitchBlocks.js:1758 +msgid "number" msgstr "" -#: js/piemenus.js:3015 -#: js/piemenus.js:3088 -#: js/musicutils.js:653 -#.TRANS: modal scale for music -msgid "ionian" +#: js/rubrics.js:529 +#: js/turtledefs.js:127 +#: js/turtledefs.js:229 +msgid "flow" msgstr "" -#: js/piemenus.js:3017 -#: js/piemenus.js:3092 -#: js/musicutils.js:633 -#: js/musicutils.js:811 -#: js/musicutils.js:909 -#.TRANS: minor is a music term related to intervals and mode -msgid "minor" +#: js/rubrics.js:530 +#: js/turtledefs.js:128 +#: js/turtledefs.js:230 +#: js/block-verbose.js:1609 +#: js/block-verbose.js:4559 +#: js/block-verbose.js:4577 +#: js/block-verbose.js:4588 +#: js/block.js:1573 +#: js/block.js:4483 +#: js/block.js:4501 +#: js/block.js:4512 +#: js/blocks.js:1018 +#: js/blocks.js:3491 +#: js/blocks.js:3492 +#: js/blocks.js:3717 +#: js/blocks.js:4076 +#: js/blocks.js:4269 +#: js/blocks.js:5432 +#: js/blocks.js:6563 +#: js/macros.js:170 +#: js/macros.js:266 +#: js/macros.js:267 +#: js/macros.js:276 +#: js/macros.js:828 +#: js/palette.js:527 +#: js/palette.js:536 +#: js/palette.js:545 +#: js/palette.js:554 +#: js/palette.js:1129 +#: js/palette.js:1140 +#: js/palette.js:1151 +#: js/palette.js:1162 +#: js/palette.js:1181 +#: js/blocks/ActionBlocks.js:254 +#: js/blocks/ActionBlocks.js:307 +#: js/blocks/ActionBlocks.js:617 +#: js/blocks/ActionBlocks.js:716 +#: js/blocks/ActionBlocks.js:961 +#: js/blocks/ActionBlocks.js:1049 +#: js/blocks/ActionBlocks.js:1322 +#: js/blocks/ActionBlocks.js:1325 +#: js/blocks/ActionBlocks.js:1337 +#: js/blocks/ActionBlocks.js:1404 +#: js/blocks/MeterBlocks.js:715 +#: js/blocks/MeterBlocks.js:768 +#: js/blocks/MeterBlocks.js:831 +#: js/blocks/MeterBlocks.js:892 +#: js/widgets/musickeyboard.js:2986 +#: js/widgets/phrasemaker.js:4913 +#: js/widgets/rhythmruler.js:2319 +#: js/widgets/rhythmruler.js:2326 +#: js/widgets/rhythmruler.js:2511 +#: js/widgets/rhythmruler.js:2518 +msgid "action" msgstr "" -#: js/piemenus.js:3017 -#: js/piemenus.js:3092 -#: js/musicutils.js:663 -#.TRANS: modal scale for music -msgid "aeolian" +#: js/rubrics.js:531 +#: js/turtledefs.js:136 +#: js/turtledefs.js:238 +msgid "sensors" msgstr "" -#: js/piemenus.js:3407 -msgid "Duplicate" +#: js/rubrics.js:532 +#: js/turtledefs.js:135 +#: js/turtledefs.js:237 +#: js/blocks/MediaBlocks.js:930 +msgid "media" msgstr "" -#: js/piemenus.js:3408 -#: js/turtledefs.js:534 -msgid "Extract" +#: js/rubrics.js:533 +msgid "mice" msgstr "" -#: js/piemenus.js:3409 -msgid "Move to trash" +#: js/toolbar.js:48 +#: js/toolbar.js:109 +msgid "About Music Blocks" msgstr "" -#: js/piemenus.js:3410 -#: js/timbre.js:968 -#: js/StringHelper.js:69 -msgid "Close" +#: js/toolbar.js:49 +#: js/toolbar.js:110 +#: js/toolbar.js:175 +#: js/toolbar.js:231 +#: js/turtledefs.js:445 +#: js/turtledefs.js:482 +#: js/activity.js:2660 +#: js/activity.js:2671 +#: js/activity.js:2902 +#: js/widgets/modewidget.js:77 +#: js/widgets/meterwidget.js:185 +#: js/widgets/pitchdrummatrix.js:147 +#: js/widgets/pitchdrummatrix.js:687 +#: js/widgets/pitchdrummatrix.js:689 +#: js/widgets/pitchdrummatrix.js:741 +#: js/widgets/pitchdrummatrix.js:743 +#: js/widgets/pitchdrummatrix.js:758 +#: js/widgets/pitchdrummatrix.js:760 +#: js/widgets/pitchdrummatrix.js:789 +#: js/widgets/pitchdrummatrix.js:791 +#: js/widgets/pitchstaircase.js:121 +#: js/widgets/temperament.js:610 +#: js/widgets/temperament.js:613 +#: js/widgets/temperament.js:673 +#: js/widgets/temperament.js:675 +#: js/widgets/temperament.js:2017 +#: js/widgets/temperament.js:2019 +#: js/widgets/tempo.js:84 +#: js/widgets/tempo.js:86 +#: js/widgets/timbre.js:432 +#: js/widgets/timbre.js:434 +#: js/widgets/timbre.js:465 +#: js/widgets/timbre.js:467 +#: js/widgets/timbre.js:746 +#: js/widgets/aiwidget.js:647 +#: js/widgets/aiwidget.js:654 +#: js/widgets/aiwidget.js:656 +#: js/widgets/arpeggio.js:90 +#: js/widgets/arpeggio.js:547 +#: js/widgets/arpeggio.js:549 +#: js/widgets/arpeggio.js:644 +#: js/widgets/arpeggio.js:646 +#: js/widgets/musickeyboard.js:676 +#: js/widgets/musickeyboard.js:872 +#: js/widgets/musickeyboard.js:874 +#: js/widgets/musickeyboard.js:953 +#: js/widgets/musickeyboard.js:955 +#: js/widgets/phrasemaker.js:513 +#: js/widgets/phrasemaker.js:523 +#: js/widgets/phrasemaker.js:525 +#: js/widgets/phrasemaker.js:4304 +#: js/widgets/phrasemaker.js:4528 +#: js/widgets/phrasemaker.js:4533 +#: js/widgets/phrasemaker.js:4535 +#: js/widgets/phrasemaker.js:4650 +#: js/widgets/rhythmruler.js:637 +#: js/widgets/rhythmruler.js:639 +#: js/widgets/rhythmruler.js:653 +#: js/widgets/rhythmruler.js:655 +#: js/widgets/sampler.js:162 +#: js/widgets/sampler.js:164 +#: js/widgets/sampler.js:363 +msgid "Play" msgstr "" -#: js/piemenus.js:3416 -msgid "Save stack" +#: js/toolbar.js:50 +#: js/toolbar.js:111 +#: js/toolbar.js:176 +#: js/toolbar.js:232 +#: js/turtledefs.js:451 +#: js/turtledefs.js:488 +#: js/activity.js:2679 +#: js/widgets/modewidget.js:99 +#: js/widgets/modewidget.js:101 +#: js/widgets/meterwidget.js:206 +#: js/widgets/meterwidget.js:208 +#: js/widgets/pitchdrummatrix.js:674 +#: js/widgets/pitchdrummatrix.js:676 +#: js/widgets/temperament.js:2002 +#: js/widgets/temperament.js:2004 +#: js/widgets/arpeggio.js:534 +#: js/widgets/arpeggio.js:536 +#: js/widgets/phrasemaker.js:534 +#: js/widgets/phrasemaker.js:536 +msgid "Stop" msgstr "" -#: js/piemenus.js:3420 -#: js/toolbar.js:60 -#: js/toolbar.js:120 -#: js/toolbar.js:185 -#: js/toolbar.js:240 -#: js/turtledefs.js:752 -msgid "Help" +#: js/toolbar.js:51 +#: js/toolbar.js:112 +#: js/toolbar.js:177 +#: js/toolbar.js:233 +#: js/turtledefs.js:498 +msgid "Record" msgstr "" -#: js/piemenus.js:3762 -msgid "You have chosen key " +#: js/toolbar.js:52 +#: js/toolbar.js:53 +msgid "Full screen" msgstr "" -#: js/piemenus.js:3766 -msgid " for your pitch preview." +#: js/toolbar.js:54 +#: js/toolbar.js:115 +#: js/toolbar.js:180 +#: js/toolbar.js:236 +#: js/turtledefs.js:504 +msgid "Toggle Fullscreen" +msgstr "" + +#: js/toolbar.js:55 +#: js/toolbar.js:116 +#: js/toolbar.js:181 +#: js/toolbar.js:237 +#: js/turtledefs.js:510 +#: planet/js/StringHelper.js:33 +msgid "New project" +msgstr "" + +#: js/toolbar.js:56 +#: js/toolbar.js:117 +#: js/toolbar.js:182 +#: js/toolbar.js:238 +#: js/turtledefs.js:516 +msgid "Load project from file" +msgstr "" + +#: js/toolbar.js:57 +#: js/toolbar.js:118 +#: js/toolbar.js:119 +#: js/toolbar.js:183 +#: js/toolbar.js:239 +#: js/turtledefs.js:541 +#: js/turtledefs.js:550 +#: js/turtledefs.js:571 +msgid "Save project" +msgstr "" + +#: js/toolbar.js:58 +#: js/toolbar.js:77 +#: js/toolbar.js:79 +#: js/toolbar.js:138 +#: js/toolbar.js:147 +#: js/toolbar.js:149 +#: js/toolbar.js:184 +#: js/toolbar.js:202 +#: js/toolbar.js:204 +#: js/toolbar.js:240 +#: js/toolbar.js:258 +#: js/toolbar.js:260 +msgid "Save project as HTML" +msgstr "" + +#: js/toolbar.js:59 +#: js/toolbar.js:120 +#: js/toolbar.js:185 +#: js/toolbar.js:241 +msgid "Find and share projects" +msgstr "" + +#: js/toolbar.js:60 +#: js/toolbar.js:121 +#: js/toolbar.js:186 +#: js/toolbar.js:242 +msgid "Offline. Sharing is unavailable" +msgstr "" + +#: js/toolbar.js:61 +#: js/toolbar.js:122 +#: js/toolbar.js:187 +#: js/toolbar.js:243 +msgid "Auxiliary menu" +msgstr "" + +#: js/toolbar.js:62 +#: js/toolbar.js:123 +#: js/toolbar.js:188 +#: js/toolbar.js:244 +#: js/turtledefs.js:752 +#: js/piemenus.js:3423 +msgid "Help" +msgstr "" + +#: js/toolbar.js:63 +#: js/toolbar.js:124 +#: js/toolbar.js:189 +#: js/toolbar.js:245 +msgid "Run slowly" +msgstr "" + +#: js/toolbar.js:64 +#: js/toolbar.js:125 +#: js/toolbar.js:190 +#: js/toolbar.js:246 +#: js/turtledefs.js:682 +msgid "Run step by step" +msgstr "" + +#: js/toolbar.js:65 +#: js/toolbar.js:126 +#: js/toolbar.js:191 +#: js/toolbar.js:247 +#: js/turtledefs.js:689 +msgid "Display statistics" +msgstr "" + +#: js/toolbar.js:66 +#: js/toolbar.js:127 +#: js/toolbar.js:192 +#: js/toolbar.js:248 +msgid "Load plugin" +msgstr "" + +#: js/toolbar.js:67 +#: js/toolbar.js:128 +#: js/toolbar.js:193 +#: js/toolbar.js:249 +#: js/turtledefs.js:696 +msgid "Delete plugin" +msgstr "" + +#: js/toolbar.js:68 +#: js/toolbar.js:129 +#: js/toolbar.js:194 +#: js/toolbar.js:250 +msgid "Enable horizontal scrolling" +msgstr "" + +#: js/toolbar.js:69 +#: js/toolbar.js:130 +#: js/toolbar.js:195 +#: js/toolbar.js:251 +msgid "Disable horizontal scrolling" +msgstr "" + +#: js/toolbar.js:70 +#: js/toolbar.js:131 +#: js/toolbar.js:196 +#: js/toolbar.js:252 +#: planet/js/LocalCard.js:54 +#: planet/js/StringHelper.js:71 +msgid "Merge with current project" +msgstr "" + +#: js/toolbar.js:71 +#: js/toolbar.js:132 +msgid "Set Pitch Preview" +msgstr "" + +#: js/toolbar.js:72 +#: js/toolbar.js:133 +#: js/toolbar.js:197 +#: js/toolbar.js:253 +msgid "JavaScript Editor" +msgstr "" + +#: js/toolbar.js:73 +#: js/toolbar.js:134 +#: js/toolbar.js:198 +#: js/toolbar.js:254 +#: js/turtledefs.js:724 +msgid "Restore" +msgstr "" + +#: js/toolbar.js:74 +#: js/toolbar.js:135 +#: js/toolbar.js:199 +#: js/toolbar.js:255 +msgid "Switch to beginner mode" +msgstr "" + +#: js/toolbar.js:75 +#: js/toolbar.js:136 +#: js/toolbar.js:200 +#: js/toolbar.js:256 +msgid "Switch to advanced mode" +msgstr "" + +#: js/toolbar.js:76 +#: js/toolbar.js:137 +#: js/toolbar.js:146 +#: js/toolbar.js:201 +#: js/toolbar.js:257 +#: js/turtledefs.js:738 +msgid "Select language" +msgstr "" + +#: js/toolbar.js:78 +#: js/toolbar.js:81 +#: js/toolbar.js:140 +#: js/turtledefs.js:579 +msgid "Save mouse artwork as PNG" +msgstr "" + +#: js/toolbar.js:80 +#: js/toolbar.js:139 +#: js/turtledefs.js:575 +msgid "Save mouse artwork as SVG" +msgstr "" + +#: js/toolbar.js:82 +#: js/toolbar.js:141 +#: js/turtledefs.js:583 +msgid "Save music as WAV" +msgstr "" + +#: js/toolbar.js:83 +#: js/toolbar.js:142 +#: js/turtledefs.js:587 +msgid "Save sheet music as ABC" +msgstr "" + +#: js/toolbar.js:84 +#: js/toolbar.js:143 +#: js/turtledefs.js:591 +msgid "Save sheet music as Lilypond" +msgstr "" + +#: js/toolbar.js:85 +msgid "Save sheet music as MusicXML" +msgstr "" + +#: js/toolbar.js:86 +#: js/toolbar.js:144 +#: js/toolbar.js:152 +#: js/toolbar.js:207 +#: js/toolbar.js:263 +#: js/turtledefs.js:562 +#: js/turtledefs.js:595 +msgid "Save block artwork as SVG" +msgstr "" + +#: js/toolbar.js:87 +#: js/toolbar.js:145 +#: js/toolbar.js:153 +#: js/toolbar.js:208 +#: js/toolbar.js:264 +#: js/turtles.js:911 +msgid "Confirm" +msgstr "" + +#: js/toolbar.js:88 +#: js/toolbar.js:154 +#: js/toolbar.js:209 +#: js/toolbar.js:265 +msgid "English (United States)" +msgstr "" + +#: js/toolbar.js:89 +#: js/toolbar.js:155 +#: js/toolbar.js:210 +#: js/toolbar.js:266 +msgid "English (United Kingdom)" +msgstr "" + +#: js/toolbar.js:90 +#: js/toolbar.js:156 +#: js/toolbar.js:211 +#: js/toolbar.js:267 +msgid "日本語" +msgstr "" + +#: js/toolbar.js:91 +msgid "한국어" +msgstr "" + +#: js/toolbar.js:92 +#: js/toolbar.js:158 +#: js/toolbar.js:213 +#: js/toolbar.js:269 +msgid "español" +msgstr "" + +#: js/toolbar.js:93 +#: js/toolbar.js:159 +#: js/toolbar.js:214 +#: js/toolbar.js:270 +msgid "português" +msgstr "" + +#: js/toolbar.js:94 +#: js/toolbar.js:160 +#: js/toolbar.js:215 +#: js/toolbar.js:271 +msgid "にほんご" +msgstr "" + +#: js/toolbar.js:95 +#: js/toolbar.js:161 +#: js/toolbar.js:216 +#: js/toolbar.js:272 +msgid "中文" +msgstr "" + +#: js/toolbar.js:96 +#: js/toolbar.js:162 +#: js/toolbar.js:217 +#: js/toolbar.js:273 +msgid "ภาษาไทย" +msgstr "" + +#: js/toolbar.js:97 +#: js/toolbar.js:163 +#: js/toolbar.js:218 +#: js/toolbar.js:274 +msgid "aymara" +msgstr "" + +#: js/toolbar.js:98 +#: js/toolbar.js:164 +#: js/toolbar.js:219 +#: js/toolbar.js:275 +msgid "quechua" +msgstr "" + +#: js/toolbar.js:99 +#: js/toolbar.js:165 +#: js/toolbar.js:220 +#: js/toolbar.js:276 +msgid "guarani" +msgstr "" + +#: js/toolbar.js:100 +#: js/toolbar.js:166 +#: js/toolbar.js:221 +#: js/toolbar.js:277 +msgid "हिंदी" +msgstr "" + +#: js/toolbar.js:101 +#: js/toolbar.js:168 +#: js/toolbar.js:222 +#: js/toolbar.js:279 +msgid "igbo" +msgstr "" + +#: js/toolbar.js:102 +#: js/toolbar.js:169 +#: js/toolbar.js:223 +#: js/toolbar.js:280 +msgid "عربى" +msgstr "" + +#: js/toolbar.js:103 +#: js/toolbar.js:167 +#: js/toolbar.js:224 +#: js/toolbar.js:278 +msgid "తెలుగు" +msgstr "" + +#: js/toolbar.js:104 +#: js/toolbar.js:170 +#: js/toolbar.js:225 +#: js/toolbar.js:281 +msgid "עִברִית" +msgstr "" + +#: js/toolbar.js:113 +#: js/toolbar.js:114 +#: js/toolbar.js:178 +#: js/toolbar.js:179 +#: js/toolbar.js:234 +#: js/toolbar.js:235 +msgid "Full Screen" +msgstr "" + +#: js/toolbar.js:148 +#: js/toolbar.js:151 +#: js/toolbar.js:203 +#: js/toolbar.js:206 +#: js/toolbar.js:259 +#: js/toolbar.js:262 +#: js/turtledefs.js:558 +msgid "Save turtle artwork as PNG" +msgstr "" + +#: js/toolbar.js:150 +#: js/toolbar.js:205 +#: js/toolbar.js:261 +#: js/turtledefs.js:554 +msgid "Save turtle artwork as SVG" +msgstr "" + +#: js/toolbar.js:157 +#: js/toolbar.js:212 +#: js/toolbar.js:268 +msgid "한국인" +msgstr "" + +#: js/toolbar.js:174 +#: js/toolbar.js:230 +msgid "About Turtle Blocks" +msgstr "" + +#: js/toolbar.js:446 +#: js/toolbar.js:457 +#: js/toolbar.js:497 +msgid "Turtle Wrap Off" +msgstr "" + +#: js/toolbar.js:466 +#: js/toolbar.js:506 +msgid "Turtle Wrap On" +msgstr "" + +#: js/turtle-painter.js:1192 +#: js/turtle-painter.js:1193 +#: js/turtles.js:118 +#: js/block-verbose.js:1623 +#: js/block.js:1587 +#: js/lilypond.js:749 +#: js/lilypond.js:913 +#: js/lilypond.js:951 +#: js/logo.js:1184 +#: js/blocks/ActionBlocks.js:1223 +#: js/blocks/ProgramBlocks.js:1267 +msgid "start" +msgstr "" + +#: js/turtledefs.js:40 +#.TRANS: put the URL to the guide here, e.g., https://github.com/sugarlabs/turtleblocksjs/tree/master/guide/README.md +msgid "guide url" +msgstr "" + +#: js/turtledefs.js:85 +#: js/turtledefs.js:437 +msgid "Turtle Blocks is a Logo-inspired turtle that draws colorful pictures with snap-together visual-programming blocks." +msgstr "" + +#: js/turtledefs.js:118 +#: js/turtledefs.js:220 +msgid "search" +msgstr "" + +#: js/turtledefs.js:120 +#: js/turtledefs.js:222 +#: js/blocks/MeterBlocks.js:1343 +#: js/blocks/WidgetBlocks.js:522 +#.TRANS: musical meter (time signature), e.g., 4:4 +msgid "meter" +msgstr "" + +#: js/turtledefs.js:122 +#: js/turtledefs.js:224 +msgid "intervals" +msgstr "" + +#: js/turtledefs.js:124 +#: js/turtledefs.js:226 +msgid "ornament" +msgstr "" + +#: js/turtledefs.js:125 +#: js/turtledefs.js:227 +#: js/blocks/VolumeBlocks.js:362 +#: js/blocks/VolumeBlocks.js:502 +#: js/blocks/VolumeBlocks.js:545 +msgid "volume" +msgstr "" + +#: js/turtledefs.js:126 +#: js/turtledefs.js:228 +#: js/block-verbose.js:1700 +#: js/block-verbose.js:2626 +#: js/block.js:1664 +#: js/block.js:2554 +#: js/lilypond.js:732 +#: js/lilypond.js:897 +#: js/lilypond.js:941 +#: js/palette.js:577 +#: js/blocks/RhythmBlocks.js:766 +#: js/blocks/DrumBlocks.js:477 +#: js/blocks/VolumeBlocks.js:502 +#: js/widgets/phrasemaker.js:1038 +msgid "drum" +msgstr "" + +#: js/turtledefs.js:129 +#: js/turtledefs.js:231 +msgid "boxes" +msgstr "" + +#: js/turtledefs.js:130 +#: js/turtledefs.js:232 +msgid "widgets" +msgstr "" + +#: js/turtledefs.js:131 +#: js/turtledefs.js:233 +#: js/widgets/phrasemaker.js:1039 +msgid "graphics" +msgstr "" + +#: js/turtledefs.js:134 +#: js/turtledefs.js:236 +msgid "boolean" +msgstr "" + +#: js/turtledefs.js:137 +#: js/turtledefs.js:239 +#: js/blocks/HeapBlocks.js:59 +#: js/widgets/status.js:147 +msgid "heap" +msgstr "" + +#: js/turtledefs.js:138 +#: js/turtledefs.js:240 +#: js/blocks/DictBlocks.js:142 +#: js/blocks/ProgramBlocks.js:495 +msgid "dictionary" +msgstr "" + +#: js/turtledefs.js:139 +#: js/turtledefs.js:241 +msgid "ensemble" +msgstr "" + +#: js/turtledefs.js:140 +#: js/turtledefs.js:242 +msgid "extras" +msgstr "" + +#: js/turtledefs.js:142 +#: js/turtledefs.js:244 +#.TRANS: program as in computer program +#.TRANS: program as in computer program +msgid "program" +msgstr "" + +#: js/turtledefs.js:143 +#: js/turtledefs.js:245 +msgid "my blocks" +msgstr "" + +#: js/turtledefs.js:185 +#: js/turtledefs.js:281 +msgid "artwork" +msgstr "" + +#: js/turtledefs.js:185 +#: js/turtledefs.js:281 +msgid "logic" +msgstr "" + +#: js/turtledefs.js:185 +#: js/turtledefs.js:281 +msgid "music" +msgstr "" + +#: js/turtledefs.js:187 +#: js/turtledefs.js:463 +msgid "Music Blocks is a collection of tools for exploring fundamental musical concepts in a fun way." +msgstr "" + +#: js/turtledefs.js:436 +msgid "Welcome to Turtle Blocks" +msgstr "" + +#: js/turtledefs.js:438 +#: js/turtledefs.js:465 +#: js/turtledefs.js:774 +#: js/turtledefs.js:805 +msgid "The current version is" +msgstr "" + +#: js/turtledefs.js:446 +#: js/turtledefs.js:483 +msgid "Click the run button to run the project in fast mode." +msgstr "" + +#: js/turtledefs.js:452 +msgid "Stop the turtle." +msgstr "" + +#: js/turtledefs.js:454 +#: js/turtledefs.js:491 +msgid "You can also type Alt-S to stop." +msgstr "" + +#: js/turtledefs.js:462 +#: js/widgets/help.js:333 +msgid "Welcome to Music Blocks" +msgstr "" + +#: js/turtledefs.js:472 +#: js/widgets/help.js:334 +msgid "Meet Mr. Mouse!" +msgstr "" + +#: js/turtledefs.js:473 +msgid "Mr Mouse is our Music Blocks conductor." +msgstr "" + +#: js/turtledefs.js:475 +msgid "Mr Mouse encourages you to explore Music Blocks." +msgstr "" + +#: js/turtledefs.js:477 +msgid "Let us start our tour!" +msgstr "" + +#: js/turtledefs.js:489 +msgid "Stop the music (and the mice)." +msgstr "" + +#: js/turtledefs.js:499 +msgid "Record your project as video." +msgstr "" + +#: js/turtledefs.js:505 +msgid "Toggle Fullscreen mode." +msgstr "" + +#: js/turtledefs.js:511 +msgid "Initialize a new project." +msgstr "" + +#: js/turtledefs.js:517 +msgid "You can also load projects from the file system." +msgstr "" + +#: js/turtledefs.js:522 +#: planet/js/StringHelper.js:46 +msgid "Delete" +msgstr "" + +#: js/turtledefs.js:523 +msgid "To delete a block, just right-click on it, then you will be able to see the delete option" +msgstr "" + +#: js/turtledefs.js:528 +#: js/activity.js:2649 +#: planet/js/LocalCard.js:31 +msgid "Copy" +msgstr "" + +#: js/turtledefs.js:529 +msgid "To copy a block, just right-click on it, then you will be able to see the copy option" +msgstr "" + +#: js/turtledefs.js:534 +#: js/piemenus.js:3411 +msgid "Extract" +msgstr "" + +#: js/turtledefs.js:535 +msgid "To extract a block, just right-click on it, then you will be able to see the extract option" +msgstr "" + +#: js/turtledefs.js:542 +#: js/turtledefs.js:552 +#: js/turtledefs.js:573 +msgid "Save your project to a file." +msgstr "" + +#: js/turtledefs.js:549 +#: js/turtledefs.js:570 +msgid "save" +msgstr "" + +#: js/turtledefs.js:556 +#: js/turtledefs.js:577 +msgid "Save graphics from your project to as SVG." +msgstr "" + +#: js/turtledefs.js:560 +#: js/turtledefs.js:581 +msgid "Save graphics from your project as PNG." +msgstr "" + +#: js/turtledefs.js:564 +#: js/turtledefs.js:597 +msgid "Save block artwork as an SVG file." +msgstr "" + +#: js/turtledefs.js:585 +msgid "Save audio from your project as WAV." +msgstr "" + +#: js/turtledefs.js:589 +msgid "Save your project to as an ABC file." +msgstr "" + +#: js/turtledefs.js:593 +msgid "Save your project to as a Lilypond file." +msgstr "" + +#: js/turtledefs.js:604 +msgid "Load samples from server" +msgstr "" + +#: js/turtledefs.js:605 +msgid "This button opens a viewer for loading example projects." +msgstr "" + +#: js/turtledefs.js:611 +msgid "Palette buttons" +msgstr "" + +#: js/turtledefs.js:612 +msgid "This toolbar contains the palette buttons including Rhythm Pitch Tone Action and more." +msgstr "" + +#: js/turtledefs.js:614 +msgid "Click to show the palettes of blocks and drag blocks from the palettes onto the canvas to use them." +msgstr "" + +#: js/turtledefs.js:620 +msgid "Cartesian/Polar" +msgstr "" + +#: js/turtledefs.js:621 +msgid "Show or hide a coordinate grid." +msgstr "" + +#: js/turtledefs.js:626 +#: js/turtles.js:902 +msgid "Clean" +msgstr "" + +#: js/turtledefs.js:627 +msgid "Clear the screen and return the mice to their initial positions." +msgstr "" + +#: js/turtledefs.js:632 +#: js/turtles.js:955 +msgid "Collapse" +msgstr "" + +#: js/turtledefs.js:633 +msgid "Collapse the graphics window." msgstr "" -#: js/palette.js:571 -msgid "grid" +#: js/turtledefs.js:638 +#: js/activity.js:5684 +msgid "Home" msgstr "" -#: js/palette.js:577 -#: js/block.js:1540 -#: js/block.js:2343 -#: js/turtledefs.js:126 -#: js/turtledefs.js:228 -#: js/lilypond.js:740 -#: js/lilypond.js:905 -#: js/lilypond.js:949 -#: js/DrumBlocks.js:486 -#: js/RhythmBlocks.js:766 -#: js/VolumeBlocks.js:502 -#: js/phrasemaker.js:823 -msgid "drum" +#: js/turtledefs.js:639 +msgid "Return all blocks to the center of the screen." msgstr "" -#: js/palette.js:580 -msgid "effect" +#: js/turtledefs.js:644 +msgid "Show/hide blocks" msgstr "" -#: js/palette.js:586 -msgid "sargam" +#: js/turtledefs.js:645 +msgid "Hide or show the blocks and the palettes." msgstr "" -#: js/palette.js:589 -#: js/activity.js:1833 -#: js/RhythmBlocks.js:923 -#: js/PitchBlocks.js:442 -#: js/PitchBlocks.js:1748 -#.TRANS: a numeric mapping of the notes in an octave based on the musical mode -msgid "scale degree" +#: js/turtledefs.js:650 +msgid "Expand/collapse collapsable blocks" msgstr "" -#: js/palette.js:592 -#: js/activity.js:1860 -msgid "mode name" +#: js/turtledefs.js:651 +msgid "Expand or collapse start and action stacks." msgstr "" -#: js/palette.js:595 -#: js/activity.js:1839 -msgid "invert mode" +#: js/turtledefs.js:658 +#: js/activity.js:5704 +msgid "Decrease block size" msgstr "" -#: js/palette.js:598 -#: js/activity.js:1836 -msgid "voice name" +#: js/turtledefs.js:659 +msgid "Decrease the size of the blocks." msgstr "" -#: js/palette.js:601 -#: js/PitchBlocks.js:1181 -msgid "custom pitch" +#: js/turtledefs.js:664 +#: js/activity.js:5710 +msgid "Increase block size" msgstr "" -#: js/palette.js:605 -#: js/block.js:1456 -#: js/block.js:1575 -#: js/WidgetBlocks.js:218 -#: js/IntervalsBlocks.js:63 -msgid "temperament" +#: js/turtledefs.js:665 +msgid "Increase the size of the blocks." msgstr "" -#: js/palette.js:609 -msgid "accidental" +#: js/turtledefs.js:670 +msgid "Expand/collapse option toolbar" msgstr "" -#: js/palette.js:615 -#: js/activity.js:1866 -msgid "interval name" +#: js/turtledefs.js:671 +msgid "Click this button to expand or collapse the auxillary toolbar." msgstr "" -#: js/palette.js:633 -#: js/PitchBlocks.js:405 -msgid "pitch converter" +#: js/turtledefs.js:676 +msgid "Run slow" msgstr "" -#: js/rubrics.js:522 -#: js/turtledefs.js:119 -#: js/turtledefs.js:221 -#: js/RhythmBlockPaletteBlocks.js:52 -#: js/RhythmBlockPaletteBlocks.js:233 -#: js/ProgramBlocks.js:745 -#: js/rhythmruler.js:1670 -#: js/rhythmruler.js:1677 -#: js/rhythmruler.js:1745 -#: js/rhythmruler.js:1752 -#: js/rhythmruler.js:1830 -#.TRANS: an arrangement of notes based on duration -msgid "rhythm" +#: js/turtledefs.js:677 +msgid "Click to run the project in slow mode." msgstr "" -#: js/rubrics.js:523 -#: js/block.js:2339 -#: js/turtledefs.js:121 -#: js/turtledefs.js:223 -#: js/IntervalsBlocks.js:63 -#: js/PitchBlocks.js:1801 -#: js/PitchBlocks.js:1814 -#: js/SensorsBlocks.js:178 -#: js/phrasemaker.js:821 -#: js/musickeyboard.js:1653 -#.TRANS: pitch number -#.TRANS: we specify pitch in terms of a name and an octave. The name can be CDEFGAB or Do Re Mi Fa Sol La Ti. Octave is a number between 1 and 8. -msgid "pitch" +#: js/turtledefs.js:683 +msgid "Click to run the project step by step." msgstr "" -#: js/rubrics.js:524 -#: js/turtledefs.js:123 -#: js/turtledefs.js:225 -msgid "tone" +#: js/turtledefs.js:690 +msgid "Display statistics about your Music project." msgstr "" -#: js/rubrics.js:525 -#: js/lilypond.js:613 -#: js/lilypond.js:912 -#: js/lilypond.js:918 -#: js/lilypond.js:956 -msgid "mouse" +#: js/turtledefs.js:697 +msgid "Delete a selected plugin." msgstr "" -#: js/rubrics.js:526 -#: js/turtledefs.js:132 -#: js/turtledefs.js:234 -#: js/phrasemaker.js:825 -msgid "pen" +#: js/turtledefs.js:704 +msgid "Enable scrolling" msgstr "" -#: js/rubrics.js:527 -#: js/turtledefs.js:133 -#: js/turtledefs.js:235 -#: js/NumberBlocks.js:905 -#: js/PitchBlocks.js:1679 -#: js/PitchBlocks.js:1720 -msgid "number" +#: js/turtledefs.js:705 +msgid "You can scroll the blocks on the canvas." msgstr "" -#: js/rubrics.js:528 -#: js/turtledefs.js:127 -#: js/turtledefs.js:229 -msgid "flow" +#: js/turtledefs.js:714 +msgid "Wrap Turtle" msgstr "" -#: js/rubrics.js:530 -#: js/turtledefs.js:136 -#: js/turtledefs.js:238 -msgid "sensors" +#: js/turtledefs.js:715 +msgid "Turn Turtle wrapping On or Off." msgstr "" -#: js/rubrics.js:531 -#: js/turtledefs.js:135 -#: js/turtledefs.js:237 -#: js/MediaBlocks.js:930 -msgid "media" +#: js/turtledefs.js:725 +msgid "Restore blocks from the trash." msgstr "" -#: js/rubrics.js:532 -msgid "mice" +#: js/turtledefs.js:732 +msgid "Switch mode" msgstr "" -#: js/macros.js:711 -#: js/musicutils.js:783 -#: js/synthutils.js:181 -#.TRANS: animal sound effect -msgid "duck" +#: js/turtledefs.js:733 +msgid "Switch between beginner and advance modes." msgstr "" -#: js/toolbar.js:46 -#: js/toolbar.js:107 -msgid "About Music Blocks" +#: js/turtledefs.js:739 +msgid "Select your language preference." msgstr "" -#: js/toolbar.js:47 -#: js/toolbar.js:108 -#: js/toolbar.js:172 -#: js/toolbar.js:228 -#: js/turtledefs.js:445 -#: js/turtledefs.js:482 -#: js/activity.js:2281 -#: js/activity.js:2289 -#: js/activity.js:2520 -#: js/modewidget.js:77 -#: js/pitchstaircase.js:121 -#: js/phrasemaker.js:302 -#: js/phrasemaker.js:312 -#: js/phrasemaker.js:314 -#: js/phrasemaker.js:3901 -#: js/phrasemaker.js:4061 -#: js/phrasemaker.js:4066 -#: js/phrasemaker.js:4068 -#: js/phrasemaker.js:4183 -#: js/pitchdrummatrix.js:81 -#: js/pitchdrummatrix.js:574 -#: js/pitchdrummatrix.js:576 -#: js/pitchdrummatrix.js:628 -#: js/pitchdrummatrix.js:630 -#: js/pitchdrummatrix.js:645 -#: js/pitchdrummatrix.js:647 -#: js/pitchdrummatrix.js:674 -#: js/pitchdrummatrix.js:676 -#: js/temperament.js:477 -#: js/temperament.js:480 -#: js/temperament.js:540 -#: js/temperament.js:542 -#: js/temperament.js:1835 -#: js/temperament.js:1837 -#: js/temperament.js:1986 -#: js/temperament.js:1988 -#: js/musickeyboard.js:522 -#: js/musickeyboard.js:682 -#: js/musickeyboard.js:684 -#: js/musickeyboard.js:756 -#: js/musickeyboard.js:758 -#: js/rhythmruler.js:298 -#: js/rhythmruler.js:300 -#: js/rhythmruler.js:314 -#: js/rhythmruler.js:316 -#: js/sampler.js:96 -#: js/sampler.js:98 -#: js/sampler.js:229 -#: js/sampler.js:235 -#: js/sampler.js:237 -#: js/tempo.js:84 -#: js/tempo.js:86 -#: js/timbre.js:432 -#: js/timbre.js:434 -#: js/timbre.js:465 -#: js/timbre.js:467 -#: js/timbre.js:746 -#: js/meterwidget.js:80 -#: js/arpeggio.js:90 -#: js/arpeggio.js:547 -#: js/arpeggio.js:549 -#: js/arpeggio.js:644 -#: js/arpeggio.js:646 -msgid "Play" +#: js/turtledefs.js:745 +msgid "Keyboard shortcuts" msgstr "" -#: js/toolbar.js:48 -#: js/toolbar.js:109 -#: js/toolbar.js:173 -#: js/toolbar.js:229 -#: js/turtledefs.js:451 -#: js/turtledefs.js:488 -#: js/activity.js:2297 -#: js/modewidget.js:99 -#: js/modewidget.js:101 -#: js/phrasemaker.js:323 -#: js/phrasemaker.js:325 -#: js/pitchdrummatrix.js:561 -#: js/pitchdrummatrix.js:563 -#: js/temperament.js:1820 -#: js/temperament.js:1822 -#: js/meterwidget.js:101 -#: js/meterwidget.js:103 -#: js/arpeggio.js:534 -#: js/arpeggio.js:536 -msgid "Stop" +#: js/turtledefs.js:746 +msgid "You can type d to create a do block and r to create a re block etc." msgstr "" -#: js/toolbar.js:49 -#: js/toolbar.js:110 -#: js/toolbar.js:174 -#: js/toolbar.js:230 -#: js/turtledefs.js:498 -msgid "Record" +#: js/turtledefs.js:753 +msgid "Show these messages." msgstr "" -#: js/toolbar.js:50 -#: js/toolbar.js:51 -msgid "Full screen" +#: js/turtledefs.js:759 +#: js/turtledefs.js:790 +#: js/widgets/help.js:335 +msgid "Guide" msgstr "" -#: js/toolbar.js:52 -#: js/toolbar.js:112 -#: js/toolbar.js:177 -#: js/toolbar.js:232 -#: js/turtledefs.js:504 -msgid "Toggle Fullscreen" +#: js/turtledefs.js:760 +msgid "A detailed guide to Turtle Blocks is available." msgstr "" -#: js/toolbar.js:53 -#: js/toolbar.js:113 -#: js/toolbar.js:178 -#: js/toolbar.js:233 -#: js/turtledefs.js:510 -#: js/StringHelper.js:33 -msgid "New project" +#: js/turtledefs.js:764 +msgid "Turtle Blocks Guide" msgstr "" -#: js/toolbar.js:54 -#: js/toolbar.js:114 -#: js/toolbar.js:179 -#: js/toolbar.js:234 -#: js/turtledefs.js:516 -msgid "Load project from file" +#: js/turtledefs.js:767 +#: js/turtledefs.js:798 +#: js/widgets/help.js:336 +msgid "About" msgstr "" -#: js/toolbar.js:55 -#: js/toolbar.js:115 -#: js/toolbar.js:116 -#: js/toolbar.js:180 -#: js/toolbar.js:235 -#: js/turtledefs.js:541 -#: js/turtledefs.js:550 -#: js/turtledefs.js:571 -msgid "Save project" +#: js/turtledefs.js:768 +msgid "Turtle Blocks is an open source collection of tools for exploring musical concepts." msgstr "" -#: js/toolbar.js:56 -#: js/toolbar.js:75 -#: js/toolbar.js:77 -#: js/toolbar.js:135 -#: js/toolbar.js:144 -#: js/toolbar.js:146 -#: js/toolbar.js:181 -#: js/toolbar.js:199 -#: js/toolbar.js:201 -#: js/toolbar.js:236 -#: js/toolbar.js:254 -#: js/toolbar.js:256 -msgid "Save project as HTML" +#: js/turtledefs.js:770 +msgid "A full list of contributors can be found in the Turtle Blocks GitHub repository." +msgstr "" + +#: js/turtledefs.js:772 +msgid "Turtle Blocks is licensed under the AGPL." +msgstr "" + +#: js/turtledefs.js:780 +msgid "Turtle Blocks GitHub repository" +msgstr "" + +#: js/turtledefs.js:783 +#: js/turtledefs.js:814 +#: js/widgets/help.js:337 +#: js/widgets/help.js:359 +msgid "Congratulations." +msgstr "" + +#: js/turtledefs.js:784 +msgid "You have finished the tour. Please enjoy Turtle Blocks!" +msgstr "" + +#: js/turtledefs.js:791 +msgid "A detailed guide to Music Blocks is available." +msgstr "" + +#: js/turtledefs.js:799 +msgid "Music Blocks is an open source collection of tools for exploring musical concepts." +msgstr "" + +#: js/turtledefs.js:801 +msgid "A full list of contributors can be found in the Music Blocks GitHub repository." +msgstr "" + +#: js/turtledefs.js:803 +msgid "Music Blocks is licensed under the AGPL." +msgstr "" + +#: js/turtledefs.js:811 +msgid "Music Blocks GitHub repository" +msgstr "" + +#: js/turtledefs.js:815 +msgid "You have finished the tour. Please enjoy Music Blocks!" +msgstr "" + +#: js/turtles.js:882 +msgid "Grid" +msgstr "" + +#: js/turtles.js:1024 +msgid "Expand" +msgstr "" + +#: js/block-verbose.js:1616 +#: js/block-verbose.js:1735 +#: js/block.js:1580 +#: js/block.js:1699 +#: js/palette.js:605 +#: js/blocks/IntervalsBlocks.js:63 +#: js/blocks/WidgetBlocks.js:259 +msgid "temperament" +msgstr "" + +#: js/block-verbose.js:1630 +#: js/block.js:1594 +msgid "matrix" msgstr "" -#: js/toolbar.js:57 -#: js/toolbar.js:117 -#: js/toolbar.js:182 -#: js/toolbar.js:237 -msgid "Find and share projects" +#: js/block-verbose.js:1637 +#: js/block.js:1601 +#: js/blocks/WidgetBlocks.js:1509 +#: plugins/rodi.rtp:324 +msgid "status" msgstr "" -#: js/toolbar.js:58 -#: js/toolbar.js:118 -#: js/toolbar.js:183 -#: js/toolbar.js:238 -msgid "Offline. Sharing is unavailable" +#: js/block-verbose.js:1644 +#: js/block.js:1608 +msgid "drum mapper" msgstr "" -#: js/toolbar.js:59 -#: js/toolbar.js:119 -#: js/toolbar.js:184 -#: js/toolbar.js:239 -msgid "Auxiliary menu" +#: js/block-verbose.js:1651 +#: js/block.js:1615 +msgid "ruler" msgstr "" -#: js/toolbar.js:61 -#: js/toolbar.js:121 -#: js/toolbar.js:186 -#: js/toolbar.js:241 -msgid "Run slowly" +#: js/block-verbose.js:1658 +#: js/block.js:1622 +#: js/blocks/WidgetBlocks.js:397 +#.TRANS: timbre is the character or quality of a musical sound +msgid "timbre" msgstr "" -#: js/toolbar.js:62 -#: js/toolbar.js:122 -#: js/toolbar.js:187 -#: js/toolbar.js:242 -#: js/turtledefs.js:682 -msgid "Run step by step" +#: js/block-verbose.js:1665 +#: js/block.js:1629 +msgid "stair" msgstr "" -#: js/toolbar.js:63 -#: js/toolbar.js:123 -#: js/toolbar.js:188 -#: js/toolbar.js:243 -#: js/turtledefs.js:689 -msgid "Display statistics" +#: js/block-verbose.js:1672 +#: js/block.js:1636 +#: js/blocks/WidgetBlocks.js:707 +#.TRANS: the speed at music is should be played. +msgid "tempo" msgstr "" -#: js/toolbar.js:64 -#: js/toolbar.js:124 -#: js/toolbar.js:189 -#: js/toolbar.js:244 -msgid "Load plugin" +#: js/block-verbose.js:1679 +#: js/block-verbose.js:1742 +#: js/block.js:1643 +#: js/block.js:1706 +#: js/blocks/IntervalsBlocks.js:1464 +#.TRANS: mode, e.g., Major in C Major +msgid "mode" msgstr "" -#: js/toolbar.js:65 -#: js/toolbar.js:125 -#: js/toolbar.js:190 -#: js/toolbar.js:245 -#: js/turtledefs.js:696 -msgid "Delete plugin" +#: js/block-verbose.js:1686 +#: js/block.js:1650 +msgid "slider" msgstr "" -#: js/toolbar.js:66 -#: js/toolbar.js:126 -#: js/toolbar.js:191 -#: js/toolbar.js:246 -msgid "Enable horizontal scrolling" +#: js/block-verbose.js:1693 +#: js/block.js:1657 +#: js/blocks/SensorsBlocks.js:1001 +msgid "keyboard" msgstr "" -#: js/toolbar.js:67 -#: js/toolbar.js:127 -#: js/toolbar.js:192 -#: js/toolbar.js:247 -msgid "Disable horizontal scrolling" +#: js/block-verbose.js:1707 +#: js/block.js:1671 +#: js/blocks/WidgetBlocks.js:1190 +#: js/blocks/WidgetBlocks.js:1228 +#.TRANS: widget for subdividing a measure into distinct rhythmic elements +msgid "rhythm maker" msgstr "" -#: js/toolbar.js:68 -#: js/toolbar.js:128 -#: js/toolbar.js:193 -#: js/toolbar.js:248 -#: js/LocalCard.js:54 -#: js/StringHelper.js:71 -msgid "Merge with current project" +#: js/block-verbose.js:1714 +#: js/block-verbose.js:2457 +#: js/block-verbose.js:2514 +#: js/block.js:1678 +#: js/block.js:2385 +#: js/block.js:2442 +#: js/blocks/MeterBlocks.js:1367 +#: js/blocks/OrnamentBlocks.js:220 +#: js/blocks/OrnamentBlocks.js:312 +#: js/blocks/RhythmBlocks.js:33 +#: js/blocks/RhythmBlocks.js:356 +#: js/blocks/RhythmBlocks.js:766 +#: js/blocks/RhythmBlocks.js:806 +#: js/blocks/RhythmBlockPaletteBlocks.js:70 +#: js/blocks/RhythmBlockPaletteBlocks.js:252 +#: js/blocks/RhythmBlockPaletteBlocks.js:485 +#: js/blocks/RhythmBlockPaletteBlocks.js:554 +#: js/blocks/RhythmBlockPaletteBlocks.js:605 +#: js/blocks/RhythmBlockPaletteBlocks.js:875 +#: js/turtleactions/DictActions.js:85 +#: js/widgets/phrasemaker.js:942 +#: js/widgets/phrasemaker.js:2656 +#: js/widgets/phrasemaker.js:2699 +#: js/widgets/phrasemaker.js:2810 +#.TRANS: the value (e.g., 1/4 note) of the note being played. +msgid "note value" msgstr "" -#: js/toolbar.js:69 -#: js/toolbar.js:129 -msgid "Set Pitch Preview" +#: js/block-verbose.js:1721 +#: js/block-verbose.js:2382 +#: js/block-verbose.js:2405 +#: js/block.js:1685 +#: js/block.js:2310 +#: js/block.js:2333 +#: js/blocks/IntervalsBlocks.js:1071 +#: js/blocks/OrnamentBlocks.js:312 +#.TRANS: calculate a relative step between notes based on semi-tones +msgid "scalar interval" msgstr "" -#: js/toolbar.js:70 -#: js/toolbar.js:130 -#: js/toolbar.js:194 -#: js/toolbar.js:249 -msgid "Toggle JavaScript Editor" +#: js/block-verbose.js:1728 +#: js/block.js:1692 +#: js/blocks/RhythmBlocks.js:148 +msgid "milliseconds" msgstr "" -#: js/toolbar.js:71 -#: js/toolbar.js:131 -#: js/toolbar.js:195 -#: js/toolbar.js:250 -#: js/turtledefs.js:724 -msgid "Restore" +#: js/block-verbose.js:2455 +#: js/block-verbose.js:2459 +#: js/block-verbose.js:2512 +#: js/block-verbose.js:2628 +#: js/block.js:2383 +#: js/block.js:2387 +#: js/block.js:2440 +#: js/block.js:2556 +#: js/blocks/RhythmBlocks.js:712 +#: js/blocks/ProgramBlocks.js:1273 +#: js/widgets/rhythmruler.js:1183 +#: js/widgets/rhythmruler.js:1329 +msgid "silence" msgstr "" -#: js/toolbar.js:72 -#: js/toolbar.js:132 -#: js/toolbar.js:196 -#: js/toolbar.js:251 -msgid "Switch to beginner mode" +#: js/block-verbose.js:2548 +#: js/block-verbose.js:3492 +#: js/block-verbose.js:3509 +#: js/activity.js:2718 +#: js/activity.js:2769 +#: js/block.js:2476 +#: js/block.js:3416 +#: js/block.js:3433 +#: js/utils/musicutils.js:3780 +#: js/utils/musicutils.js:5273 +#.TRANS: the note names must be separated by single spaces +#.TRANS: the note names must be separated by single spaces +#.TRANS: the note names must be separated by single spaces +msgid "ti la sol fa mi re do" msgstr "" -#: js/toolbar.js:73 -#: js/toolbar.js:133 -#: js/toolbar.js:197 -#: js/toolbar.js:252 -msgid "Switch to advanced mode" +#: js/block-verbose.js:2616 +#: js/block.js:2544 +#.TRANS: scalar step +#.TRANS: scalar step +msgid "down" msgstr "" -#: js/toolbar.js:74 -#: js/toolbar.js:134 -#: js/toolbar.js:143 -#: js/toolbar.js:198 -#: js/toolbar.js:253 -#: js/turtledefs.js:738 -msgid "Select language" +#: js/block-verbose.js:2617 +#: js/block.js:2545 +msgid "up" msgstr "" -#: js/toolbar.js:76 -#: js/toolbar.js:79 -#: js/toolbar.js:137 -#: js/turtledefs.js:579 -msgid "Save mouse artwork as PNG" +#: js/block-verbose.js:3026 +#: js/block.js:2950 +msgid "Silence block cannot be removed." msgstr "" -#: js/toolbar.js:78 -#: js/toolbar.js:136 -#: js/turtledefs.js:575 -msgid "Save mouse artwork as SVG" +#: js/block-verbose.js:3824 +#: js/block.js:3748 +#: js/blocks.js:2607 +#: js/blocks.js:3218 +#: js/palette.js:618 +#: js/blocks/BooleanBlocks.js:77 +#: js/blocks/BooleanBlocks.js:167 +#: js/blocks/BooleanBlocks.js:251 +#: js/blocks/BooleanBlocks.js:335 +#: js/blocks/BooleanBlocks.js:433 +#: js/blocks/BooleanBlocks.js:539 +#: js/blocks/BooleanBlocks.js:640 +#: js/blocks/BooleanBlocks.js:741 +#: js/blocks/BooleanBlocks.js:847 +#: js/blocks/BooleanBlocks.js:948 +#: js/blocks/BooleanBlocks.js:1033 +#: js/blocks/SensorsBlocks.js:910 +msgid "true" msgstr "" -#: js/toolbar.js:80 -#: js/toolbar.js:138 -#: js/turtledefs.js:583 -msgid "Save music as WAV" +#: js/block-verbose.js:3824 +#: js/block.js:3748 +#: js/blocks.js:2609 +#: js/blocks.js:3220 +#: js/blocks/BooleanBlocks.js:79 +#: js/blocks/BooleanBlocks.js:169 +#: js/blocks/BooleanBlocks.js:253 +#: js/blocks/BooleanBlocks.js:337 +#: js/blocks/BooleanBlocks.js:435 +#: js/blocks/BooleanBlocks.js:541 +#: js/blocks/BooleanBlocks.js:642 +#: js/blocks/BooleanBlocks.js:743 +#: js/blocks/BooleanBlocks.js:849 +#: js/blocks/BooleanBlocks.js:950 +#: js/blocks/SensorsBlocks.js:912 +msgid "false" msgstr "" -#: js/toolbar.js:81 -#: js/toolbar.js:139 -#: js/turtledefs.js:587 -msgid "Save sheet music as ABC" +#: js/block-verbose.js:3835 +#: js/block-verbose.js:3848 +#: js/block.js:3759 +#: js/block.js:3772 +#: js/blocks/ExtrasBlocks.js:615 +msgid "Cartesian" msgstr "" -#: js/toolbar.js:82 -#: js/toolbar.js:140 -#: js/turtledefs.js:591 -msgid "Save sheet music as Lilypond" +#: js/block-verbose.js:3836 +#: js/block-verbose.js:3849 +#: js/block.js:3760 +#: js/block.js:3773 +#: js/blocks/ExtrasBlocks.js:619 +msgid "polar" msgstr "" -#: js/toolbar.js:83 -msgid "Save sheet music as MusicXML" +#: js/block-verbose.js:3837 +#: js/block-verbose.js:3850 +#: js/block.js:3761 +#: js/block.js:3774 +#: js/blocks/ExtrasBlocks.js:623 +msgid "Cartesian+polar" msgstr "" -#: js/toolbar.js:84 -#: js/toolbar.js:141 -#: js/toolbar.js:149 -#: js/toolbar.js:204 -#: js/toolbar.js:259 -#: js/turtledefs.js:562 -#: js/turtledefs.js:595 -msgid "Save block artwork as SVG" +#: js/block-verbose.js:3838 +#: js/block-verbose.js:3857 +#: js/block.js:3762 +#: js/block.js:3781 +#: js/blocks/ExtrasBlocks.js:652 +msgid "none" msgstr "" -#: js/toolbar.js:85 -#: js/toolbar.js:142 -#: js/toolbar.js:150 -#: js/toolbar.js:205 -#: js/toolbar.js:260 -msgid "Confirm" +#: js/block-verbose.js:3851 +#: js/block.js:3775 +#: js/blocks/ExtrasBlocks.js:628 +msgid "treble" msgstr "" -#: js/toolbar.js:86 -#: js/toolbar.js:151 -#: js/toolbar.js:206 -#: js/toolbar.js:261 -msgid "English (United States)" +#: js/block-verbose.js:3852 +#: js/block.js:3776 +#: js/blocks/ExtrasBlocks.js:632 +msgid "grand staff" msgstr "" -#: js/toolbar.js:87 -#: js/toolbar.js:152 -#: js/toolbar.js:207 -#: js/toolbar.js:262 -msgid "English (United Kingdom)" +#: js/block-verbose.js:3853 +#: js/block.js:3777 +#: js/blocks/ExtrasBlocks.js:636 +msgid "mezzo-soprano" msgstr "" -#: js/toolbar.js:88 -#: js/toolbar.js:153 -#: js/toolbar.js:208 -#: js/toolbar.js:263 -msgid "日本語" +#: js/block-verbose.js:3854 +#: js/block.js:3778 +#: js/blocks/ExtrasBlocks.js:640 +msgid "alto" msgstr "" -#: js/toolbar.js:89 -msgid "한국어" +#: js/block-verbose.js:3855 +#: js/block.js:3779 +#: js/blocks/ExtrasBlocks.js:644 +msgid "tenor" msgstr "" -#: js/toolbar.js:90 -#: js/toolbar.js:155 -#: js/toolbar.js:210 -#: js/toolbar.js:265 -msgid "español" +#: js/block-verbose.js:3856 +#: js/block.js:3780 +#: js/utils/musicutils.js:1115 +#: js/utils/synthutils.js:80 +#: js/blocks/ExtrasBlocks.js:648 +#.TRANS: musical instrument +msgid "bass" msgstr "" -#: js/toolbar.js:91 -#: js/toolbar.js:156 -#: js/toolbar.js:211 -#: js/toolbar.js:266 -msgid "português" +#: js/block-verbose.js:3901 +#: js/block.js:3825 +#: js/blocks.js:2600 +#: js/blocks.js:3211 +msgid "on2" msgstr "" -#: js/toolbar.js:92 -#: js/toolbar.js:157 -#: js/toolbar.js:212 -#: js/toolbar.js:267 -msgid "にほんご" +#: js/block-verbose.js:3903 +#: js/block.js:3827 +#: js/blocks.js:2602 +#: js/blocks.js:3213 +msgid "off" msgstr "" -#: js/toolbar.js:93 -#: js/toolbar.js:158 -#: js/toolbar.js:213 -#: js/toolbar.js:268 -msgid "中文" +#: js/block-verbose.js:4470 +#: js/block.js:4394 +msgid "Not a number" msgstr "" -#: js/toolbar.js:94 -#: js/toolbar.js:159 -#: js/toolbar.js:214 -#: js/toolbar.js:269 -msgid "ภาษาไทย" +#: js/block-verbose.js:4477 +#: js/block.js:4401 +msgid "Octave value must be between 1 and 10." msgstr "" -#: js/toolbar.js:95 -#: js/toolbar.js:160 -#: js/toolbar.js:215 -#: js/toolbar.js:270 -msgid "aymara" +#: js/block-verbose.js:4485 +#: js/block.js:4409 +msgid "Numbers can have at most 10 digits." msgstr "" -#: js/toolbar.js:96 -#: js/toolbar.js:161 -#: js/toolbar.js:216 -#: js/toolbar.js:271 -msgid "quechua" +#: js/activity.js:390 +#: js/activity.js:395 +msgid "Search for blocks" msgstr "" -#: js/toolbar.js:97 -#: js/toolbar.js:162 -#: js/toolbar.js:217 -#: js/toolbar.js:272 -msgid "guarani" +#: js/activity.js:1413 +msgid "Refresh your browser to change to advanced mode." msgstr "" -#: js/toolbar.js:98 -#: js/toolbar.js:163 -#: js/toolbar.js:218 -#: js/toolbar.js:273 -msgid "हिंदी" +#: js/activity.js:1418 +msgid "Refresh your browser to change to beginner mode." msgstr "" -#: js/toolbar.js:99 -#: js/toolbar.js:165 -#: js/toolbar.js:219 -#: js/toolbar.js:275 -msgid "igbo" +#: js/activity.js:1477 +msgid "Catching mice" +msgstr "" + +#: js/activity.js:1478 +msgid "Cleaning the instruments" +msgstr "" + +#: js/activity.js:1479 +msgid "Testing key pieces" +msgstr "" + +#: js/activity.js:1480 +msgid "Sight-reading" +msgstr "" + +#: js/activity.js:1481 +msgid "Combining math and music" msgstr "" -#: js/toolbar.js:100 -#: js/toolbar.js:166 -#: js/toolbar.js:220 -#: js/toolbar.js:276 -msgid "عربى" +#: js/activity.js:1482 +msgid "Generating more blocks" msgstr "" -#: js/toolbar.js:101 -#: js/toolbar.js:164 -#: js/toolbar.js:221 -#: js/toolbar.js:274 -msgid "తెలుగు" +#: js/activity.js:1483 +msgid "Do Re Mi Fa Sol La Ti Do" msgstr "" -#: js/toolbar.js:102 -#: js/toolbar.js:167 -#: js/toolbar.js:222 -#: js/toolbar.js:277 -msgid "עִברִית" +#: js/activity.js:1484 +msgid "Tuning string instruments" msgstr "" -#: js/toolbar.js:111 -#: js/toolbar.js:175 -#: js/toolbar.js:176 -#: js/toolbar.js:231 -msgid "Full Screen" +#: js/activity.js:1485 +msgid "Pressing random keys" msgstr "" -#: js/toolbar.js:145 -#: js/toolbar.js:148 -#: js/toolbar.js:200 -#: js/toolbar.js:203 -#: js/toolbar.js:255 -#: js/toolbar.js:258 -#: js/turtledefs.js:558 -msgid "Save turtle artwork as PNG" +#: js/activity.js:1663 +msgid "plugins will be removed upon restart." msgstr "" -#: js/toolbar.js:147 -#: js/toolbar.js:202 -#: js/toolbar.js:257 -#: js/turtledefs.js:554 -msgid "Save turtle artwork as SVG" +#: js/activity.js:1672 +msgid "show Cartesian" msgstr "" -#: js/toolbar.js:154 -#: js/toolbar.js:209 -#: js/toolbar.js:264 -msgid "한국인" +#: js/activity.js:2211 +#: js/palette.js:589 +#: js/blocks/RhythmBlocks.js:923 +#: js/blocks/PitchBlocks.js:442 +#: js/blocks/PitchBlocks.js:1786 +#.TRANS: a numeric mapping of the notes in an octave based on the musical mode +msgid "scale degree" msgstr "" -#: js/toolbar.js:171 -#: js/toolbar.js:227 -msgid "About Turtle Blocks" +#: js/activity.js:2214 +#: js/palette.js:598 +msgid "voice name" msgstr "" -#: js/toolbar.js:429 -#: js/toolbar.js:440 -msgid "Turtle Wrap Off" +#: js/activity.js:2217 +#: js/palette.js:595 +msgid "invert mode" msgstr "" -#: js/toolbar.js:442 -msgid "Turtle Wrap On" +#: js/activity.js:2220 +msgid "output tools" msgstr "" -#: js/block.js:1470 -msgid "matrix" +#: js/activity.js:2223 +msgid "custom note" msgstr "" -#: js/block.js:1477 -#: js/WidgetBlocks.js:1226 -#: plugins/rodi.rtp:324 -msgid "status" +#: js/activity.js:2226 +msgid "accidental name" msgstr "" -#: js/block.js:1484 -msgid "drum mapper" +#: js/activity.js:2229 +#: js/blocks/PitchBlocks.js:855 +msgid "east indian solfege" msgstr "" -#: js/block.js:1491 -msgid "ruler" +#: js/activity.js:2232 +#: js/blocks/PitchBlocks.js:869 +msgid "note name" msgstr "" -#: js/block.js:1498 -#: js/WidgetBlocks.js:327 -#.TRANS: timbre is the character or quality of a musical sound -msgid "timbre" +#: js/activity.js:2235 +#: js/blocks/IntervalsBlocks.js:94 +msgid "temperament name" msgstr "" -#: js/block.js:1505 -msgid "stair" +#: js/activity.js:2238 +#: js/palette.js:592 +msgid "mode name" msgstr "" -#: js/block.js:1512 -#: js/WidgetBlocks.js:577 -#.TRANS: the speed at music is should be played. -msgid "tempo" +#: js/activity.js:2241 +msgid "chord name" msgstr "" -#: js/block.js:1519 -#: js/block.js:1582 -#: js/IntervalsBlocks.js:1268 -#.TRANS: mode, e.g., Major in C Major -msgid "mode" +#: js/activity.js:2244 +#: js/palette.js:615 +msgid "interval name" msgstr "" -#: js/block.js:1526 -msgid "slider" +#: js/activity.js:2247 +msgid "filter type" msgstr "" -#: js/block.js:1533 -#: js/SensorsBlocks.js:1001 -msgid "keyboard" +#: js/activity.js:2250 +msgid "oscillator type" msgstr "" -#: js/block.js:1547 -#: js/WidgetBlocks.js:957 -#: js/WidgetBlocks.js:988 -#.TRANS: widget for subdividing a measure into distinct rhythmic elements -msgid "rhythm maker" +#: js/activity.js:2253 +#: js/blocks.js:2479 +#: js/blocks.js:2487 +msgid "audio file" msgstr "" -#: js/block.js:1554 -#: js/block.js:2182 -#: js/block.js:2236 -#: js/RhythmBlockPaletteBlocks.js:70 -#: js/RhythmBlockPaletteBlocks.js:251 -#: js/RhythmBlockPaletteBlocks.js:484 -#: js/RhythmBlockPaletteBlocks.js:553 -#: js/RhythmBlockPaletteBlocks.js:604 -#: js/RhythmBlockPaletteBlocks.js:874 -#: js/RhythmBlocks.js:33 -#: js/RhythmBlocks.js:356 -#: js/RhythmBlocks.js:766 -#: js/RhythmBlocks.js:806 -#: js/OrnamentBlocks.js:220 -#: js/OrnamentBlocks.js:312 -#: js/MeterBlocks.js:1367 -#: js/DictActions.js:85 -#: js/phrasemaker.js:731 -#: js/phrasemaker.js:2393 -#: js/phrasemaker.js:2436 -#: js/phrasemaker.js:2534 -#.TRANS: the value (e.g., 1/4 note) of the note being played. -msgid "note value" +#: js/activity.js:2256 +#: js/blocks/DrumBlocks.js:32 +msgid "noise name" msgstr "" -#: js/block.js:1561 -#: js/block.js:2110 -#: js/block.js:2133 -#: js/IntervalsBlocks.js:875 -#: js/OrnamentBlocks.js:312 -#.TRANS: calculate a relative step between notes based on semi-tones -msgid "scalar interval" +#: js/activity.js:2259 +#: js/blocks/DrumBlocks.js:75 +msgid "drum name" msgstr "" -#: js/block.js:1568 -#: js/RhythmBlocks.js:148 -msgid "milliseconds" +#: js/activity.js:2262 +#: js/blocks/DrumBlocks.js:119 +msgid "effects name" msgstr "" -#: js/block.js:2180 -#: js/block.js:2184 -#: js/block.js:2234 -#: js/block.js:2345 -#: js/ProgramBlocks.js:1273 -#: js/RhythmBlocks.js:712 -#: js/rhythmruler.js:834 -#: js/rhythmruler.js:961 -msgid "silence" +#: js/activity.js:2265 +msgid "wrap mode" msgstr "" -#: js/block.js:2265 -#: js/block.js:3134 -#: js/block.js:3151 -#: js/activity.js:2336 -#: js/activity.js:2387 -#: js/musicutils.js:2932 -#: js/musicutils.js:4287 -#.TRANS: the note names must be separated by single spaces -#.TRANS: the note names must be separated by single spaces -msgid "ti la sol fa mi re do" +#: js/activity.js:2268 +msgid "load file" msgstr "" -#: js/block.js:2333 -#.TRANS: scalar step -msgid "down" +#: js/activity.js:2435 +#: js/activity.js:5851 +msgid "This block is deprecated." msgstr "" -#: js/block.js:2334 -msgid "up" +#: js/activity.js:2437 +#: js/activity.js:5853 +msgid "Block cannot be found." msgstr "" -#: js/block.js:3477 -#: js/block.js:3490 -#: js/ExtrasBlocks.js:612 -msgid "Cartesian" +#: js/activity.js:2645 +msgid "Saving block artwork" msgstr "" -#: js/block.js:3478 -#: js/block.js:3491 -#: js/ExtrasBlocks.js:616 -msgid "polar" +#: js/activity.js:2656 +msgid "Erase" msgstr "" -#: js/block.js:3479 -#: js/block.js:3492 -#: js/ExtrasBlocks.js:620 -msgid "Cartesian+polar" +#: js/activity.js:2683 +#: js/activity.js:2705 +msgid "Paste" msgstr "" -#: js/block.js:3480 -#: js/block.js:3499 -#: js/ExtrasBlocks.js:649 -msgid "none" +#: js/activity.js:2687 +msgid "Save block help" msgstr "" -#: js/block.js:3493 -#: js/ExtrasBlocks.js:625 -msgid "treble" +#: js/activity.js:2772 +msgid "Jumping to the bottom of the page." msgstr "" -#: js/block.js:3494 -#: js/ExtrasBlocks.js:629 -msgid "grand staff" +#: js/activity.js:2778 +msgid "Scrolling up." msgstr "" -#: js/block.js:3495 -#: js/ExtrasBlocks.js:633 -msgid "mezzo-soprano" +#: js/activity.js:2783 +msgid "Scrolling down." msgstr "" -#: js/block.js:3496 -#: js/ExtrasBlocks.js:637 -msgid "alto" +#: js/activity.js:2788 +msgid "Extracting block" msgstr "" -#: js/block.js:3497 -#: js/ExtrasBlocks.js:641 -msgid "tenor" +#: js/activity.js:2796 +msgid "Moving block up." msgstr "" -#: js/block.js:3498 -#: js/ExtrasBlocks.js:645 -#: js/musicutils.js:736 -#: js/synthutils.js:64 -#.TRANS: musical instrument -msgid "bass" +#: js/activity.js:2817 +msgid "Moving block down." msgstr "" -#: js/block.js:4075 -msgid "Not a number" +#: js/activity.js:2838 +msgid "Moving block left." msgstr "" -#: js/block.js:4082 -msgid "Octave value must be between 1 and 10." +#: js/activity.js:2855 +msgid "Moving block right." msgstr "" -#: js/block.js:4090 -msgid "Numbers can have at most 10 digits." +#: js/activity.js:2870 +msgid "Jump to home position." msgstr "" -#: js/notation.js:353 -msgid "Lilypond cannot process pickup of " +#: js/activity.js:2897 +msgid "Hide blocks" msgstr "" -#: js/turtledefs.js:40 -#.TRANS: put the URL to the guide here, e.g., https://github.com/sugarlabs/turtleblocksjs/tree/master/guide/README.md -msgid "guide url" +#: js/activity.js:4500 +msgid "Click the run button to run the project." msgstr "" -#: js/turtledefs.js:85 -#: js/turtledefs.js:437 -msgid "Turtle Blocks is a Logo-inspired turtle that draws colorful pictures with snap-together visual-programming blocks." +#: js/activity.js:5692 +msgid "Show/hide block" msgstr "" -#: js/turtledefs.js:118 -#: js/turtledefs.js:220 -msgid "search" +#: js/activity.js:5698 +msgid "Expand/collapse blocks" msgstr "" -#: js/turtledefs.js:120 -#: js/turtledefs.js:222 -#: js/WidgetBlocks.js:437 -#: js/MeterBlocks.js:1343 -#.TRANS: musical meter (time signature), e.g., 4:4 -msgid "meter" +#: js/activity.js:5976 +msgid "Could not parse JSON input." msgstr "" -#: js/turtledefs.js:122 -#: js/turtledefs.js:224 -msgid "intervals" +#: js/activity.js:6475 +#: js/activity.js:6580 +#: js/activity.js:6631 +msgid "Cannot load project from the file. Please check the file type." msgstr "" -#: js/turtledefs.js:124 -#: js/turtledefs.js:226 -msgid "ornament" +#: js/activity.js:6917 +msgid "Invalid parameters" msgstr "" -#: js/turtledefs.js:125 -#: js/turtledefs.js:227 -#: js/VolumeBlocks.js:362 -#: js/VolumeBlocks.js:502 -#: js/VolumeBlocks.js:545 -msgid "volume" +#: js/blocks.js:1212 +#: js/blocks.js:3444 +#: js/blocks.js:3834 +#: js/blocks.js:3865 +#: js/blocks.js:3914 +#: js/blocks.js:3949 +#: js/blocks.js:6586 +#: js/palette.js:509 +#: js/palette.js:638 +#: js/palette.js:1105 +#: js/blocks/BoxesBlocks.js:282 +#: js/blocks/BoxesBlocks.js:285 +#: js/blocks/BoxesBlocks.js:405 +#: js/blocks/BoxesBlocks.js:594 +msgid "box" msgstr "" -#: js/turtledefs.js:129 -#: js/turtledefs.js:231 -msgid "boxes" +#: js/blocks.js:1713 +msgid "Consider breaking this stack into parts." msgstr "" -#: js/turtledefs.js:130 -#: js/turtledefs.js:232 -msgid "widgets" +#: js/blocks.js:2472 +#: js/palette.js:653 +#: js/blocks/MediaBlocks.js:602 +msgid "open file" msgstr "" -#: js/turtledefs.js:131 -#: js/turtledefs.js:233 -#: js/phrasemaker.js:824 -msgid "graphics" +#: js/blocks.js:3247 +#: js/palette.js:574 +#: js/blocks/MediaBlocks.js:892 +#: js/blocks/MediaBlocks.js:963 +msgid "text" msgstr "" -#: js/turtledefs.js:134 -#: js/turtledefs.js:236 -msgid "boolean" +#: js/blocks.js:3443 +#: js/palette.js:641 +#: js/palette.js:642 +#: js/blocks/BoxesBlocks.js:514 +msgid "store in box" msgstr "" -#: js/turtledefs.js:137 -#: js/turtledefs.js:239 -#: js/HeapBlocks.js:59 -#: js/status.js:147 -msgid "heap" +#: js/blocks.js:3448 +#: js/blocks.js:3888 +#: js/blocks.js:3923 +#: js/blocks.js:3958 +#: js/blocks.js:5862 +#: js/blocks.js:5883 +#: js/blocks/BoxesBlocks.js:772 +msgid "box1" msgstr "" -#: js/turtledefs.js:138 -#: js/turtledefs.js:240 -#: js/ProgramBlocks.js:495 -#: js/DictBlocks.js:142 -msgid "dictionary" +#: js/blocks.js:3450 +#: js/blocks.js:3890 +#: js/blocks.js:3925 +#: js/blocks.js:3960 +#: js/blocks.js:5864 +#: js/blocks.js:5885 +#: js/blocks/BoxesBlocks.js:663 +msgid "box2" msgstr "" -#: js/turtledefs.js:139 -#: js/turtledefs.js:241 -msgid "ensemble" +#: js/blocks.js:4122 +#: js/palette.js:639 +#: js/palette.js:644 +#: js/palette.js:1041 +#: js/blocks/BoxesBlocks.js:591 +msgid "store in" msgstr "" -#: js/turtledefs.js:140 -#: js/turtledefs.js:242 -msgid "extras" +#: js/blocks.js:4122 +#: js/blocks/BoxesBlocks.js:595 +#: js/blocks/DictBlocks.js:215 +#: js/blocks/DictBlocks.js:289 +#: js/blocks/EnsembleBlocks.js:391 +#: js/blocks/EnsembleBlocks.js:402 +#: js/blocks/MediaBlocks.js:746 +#: js/blocks/PitchBlocks.js:656 +#: js/blocks/PitchBlocks.js:934 +#: js/blocks/PitchBlocks.js:1866 +#: js/blocks/ProgramBlocks.js:390 +#: js/blocks/ProgramBlocks.js:495 +#: js/blocks/ProgramBlocks.js:658 +#: js/blocks/ToneBlocks.js:1025 +msgid "name" msgstr "" -#: js/turtledefs.js:142 -#: js/turtledefs.js:244 -#.TRANS: program as in computer program -#.TRANS: program as in computer program -msgid "program" +#: js/blocks.js:4122 +#: js/blocks/BoxesBlocks.js:75 +#: js/blocks/BoxesBlocks.js:595 +#: js/blocks/DictBlocks.js:289 +#: js/blocks/DictBlocks.js:430 +#: js/blocks/HeapBlocks.js:544 +#: js/blocks/RhythmBlocks.js:1130 +msgid "value" msgstr "" -#: js/turtledefs.js:143 -#: js/turtledefs.js:245 -msgid "my blocks" +#: js/blocks.js:4465 +msgid "Forever loop detected inside a note value block. Unexpected things may happen." msgstr "" -#: js/turtledefs.js:185 -#: js/turtledefs.js:281 -msgid "artwork" +#: js/blocks.js:4988 +msgid "There is no block selected." msgstr "" -#: js/turtledefs.js:185 -#: js/turtledefs.js:281 -msgid "logic" +#: js/blocks.js:5091 +#: js/blocks/MediaBlocks.js:888 +msgid "show" msgstr "" -#: js/turtledefs.js:185 -#: js/turtledefs.js:281 -msgid "music" +#: js/blocks.js:5094 +#: js/blocks/MediaBlocks.js:803 +#.TRANS: Avatar is the image used to determine the appearance of the mouse. +msgid "avatar" msgstr "" -#: js/turtledefs.js:187 -#: js/turtledefs.js:463 -msgid "Music Blocks is a collection of tools for exploring fundamental musical concepts in a fun way." +#: js/blocks.js:5097 +#: js/blocks/ToneBlocks.js:1010 +#: js/widgets/sampler.js:975 +#.TRANS: The sound sample that the user uploads. +msgid "sample" msgstr "" -#: js/turtledefs.js:436 -msgid "Welcome to Turtle Blocks" +#: js/lilypond.js:606 +msgid "brown rat" msgstr "" -#: js/turtledefs.js:438 -#: js/turtledefs.js:465 -#: js/turtledefs.js:774 -#: js/turtledefs.js:805 -msgid "The current version is" +#: js/lilypond.js:607 +msgid "mole" msgstr "" -#: js/turtledefs.js:446 -#: js/turtledefs.js:483 -msgid "Click the run button to run the project in fast mode." +#: js/lilypond.js:608 +msgid "chipmunk" msgstr "" -#: js/turtledefs.js:452 -msgid "Stop the turtle." +#: js/lilypond.js:609 +msgid "red squirrel" msgstr "" -#: js/turtledefs.js:454 -#: js/turtledefs.js:491 -msgid "You can also type Alt-S to stop." +#: js/lilypond.js:610 +msgid "guinea pig" +msgstr "" + +#: js/lilypond.js:611 +msgid "capybara" msgstr "" -#: js/turtledefs.js:462 -#: js/help.js:333 -msgid "Welcome to Music Blocks" +#: js/lilypond.js:612 +msgid "coypu" msgstr "" -#: js/turtledefs.js:472 -#: js/help.js:334 -msgid "Meet Mr. Mouse!" +#: js/lilypond.js:613 +msgid "black rat" msgstr "" -#: js/turtledefs.js:473 -msgid "Mr Mouse is our Music Blocks conductor." +#: js/lilypond.js:614 +msgid "grey squirrel" msgstr "" -#: js/turtledefs.js:475 -msgid "Mr Mouse encourages you to explore Music Blocks." +#: js/lilypond.js:615 +msgid "flying squirrel" msgstr "" -#: js/turtledefs.js:477 -msgid "Let us start our tour!" +#: js/lilypond.js:616 +msgid "bat" msgstr "" -#: js/turtledefs.js:489 -msgid "Stop the music (and the mice)." +#: js/lilypond.js:749 +#: js/lilypond.js:913 +#: js/lilypond.js:951 +#: js/blocks/ActionBlocks.js:1256 +#: js/blocks/ExtrasBlocks.js:556 +msgid "start drum" msgstr "" -#: js/turtledefs.js:499 -msgid "Record your project as video." +#: js/logo.js:61 +msgid "Not a valid pitch name" msgstr "" -#: js/turtledefs.js:505 -msgid "Toggle Fullscreen mode." +#: js/logo.js:507 +#: js/blocks/ProgramBlocks.js:258 +#: js/blocks/ProgramBlocks.js:427 +msgid "You must select a file." msgstr "" -#: js/turtledefs.js:511 -msgid "Initialize a new project." +#: js/logo.js:1696 +msgid "Playback is ready." msgstr "" -#: js/turtledefs.js:517 -msgid "You can also load projects from the file system." +#: js/macros.js:711 +#: js/utils/musicutils.js:1162 +#: js/utils/synthutils.js:202 +#.TRANS: animal sound effect +msgid "duck" msgstr "" -#: js/turtledefs.js:522 -#: js/StringHelper.js:46 -msgid "Delete" +#: js/notation.js:353 +msgid "Lilypond cannot process pickup of " msgstr "" -#: js/turtledefs.js:523 -msgid "To delete a block, just right-click on it, then you will be able to see the delete option" +#: js/palette.js:571 +msgid "grid" msgstr "" -#: js/turtledefs.js:528 -#: js/activity.js:2270 -#: js/LocalCard.js:31 -msgid "Copy" +#: js/palette.js:580 +msgid "effect" msgstr "" -#: js/turtledefs.js:529 -msgid "To copy a block, just right-click on it, then you will be able to see the copy option" +#: js/palette.js:586 +msgid "sargam" msgstr "" -#: js/turtledefs.js:535 -msgid "To extract a block, just right-click on it, then you will be able to see the extract option" +#: js/palette.js:601 +#: js/blocks/PitchBlocks.js:1209 +msgid "custom pitch" msgstr "" -#: js/turtledefs.js:542 -#: js/turtledefs.js:552 -#: js/turtledefs.js:573 -msgid "Save your project to a file." +#: js/palette.js:609 +msgid "accidental" msgstr "" -#: js/turtledefs.js:549 -#: js/turtledefs.js:570 -msgid "save" +#: js/palette.js:633 +#: js/blocks/PitchBlocks.js:405 +msgid "pitch converter" msgstr "" -#: js/turtledefs.js:556 -#: js/turtledefs.js:577 -msgid "Save graphics from your project to as SVG." +#: js/piemenus.js:200 +#: js/utils/musicutils.js:1187 +#: js/utils/musicutils.js:1207 +#: js/widgets/musickeyboard.js:2341 +#: js/widgets/phrasemaker.js:1908 +#: js/widgets/sampler.js:810 +#.TRANS: double sharp is a music term related to pitch +msgid "double sharp" msgstr "" -#: js/turtledefs.js:560 -#: js/turtledefs.js:581 -msgid "Save graphics from your project as PNG." +#: js/piemenus.js:201 +#: js/utils/musicutils.js:1185 +#: js/utils/musicutils.js:1208 +#: js/blocks/PitchBlocks.js:1539 +#: js/turtleactions/PitchActions.js:323 +#: js/widgets/musickeyboard.js:2342 +#: js/widgets/phrasemaker.js:1909 +#: js/widgets/sampler.js:811 +#.TRANS: sharp is a music term related to pitch +#.TRANS: sharp is a half-step up in pitch +msgid "sharp" msgstr "" -#: js/turtledefs.js:564 -#: js/turtledefs.js:597 -msgid "Save block artwork as an SVG file." +#: js/piemenus.js:202 +#: js/utils/musicutils.js:1183 +#: js/utils/musicutils.js:1209 +#: js/widgets/musickeyboard.js:2343 +#: js/widgets/phrasemaker.js:1910 +#: js/widgets/sampler.js:812 +#.TRANS: natural is a music term related to pitch +msgid "natural" msgstr "" -#: js/turtledefs.js:585 -msgid "Save audio from your project as WAV." +#: js/piemenus.js:203 +#: js/utils/musicutils.js:1181 +#: js/utils/musicutils.js:1210 +#: js/blocks/PitchBlocks.js:1498 +#: js/turtleactions/PitchActions.js:326 +#: js/widgets/musickeyboard.js:2344 +#: js/widgets/phrasemaker.js:1911 +#: js/widgets/sampler.js:813 +#.TRANS: flat is a music term related to pitch +#.TRANS: flat is a half-step down in pitch +msgid "flat" msgstr "" -#: js/turtledefs.js:589 -msgid "Save your project to as an ABC file." +#: js/piemenus.js:204 +#: js/utils/musicutils.js:1179 +#: js/utils/musicutils.js:1211 +#: js/widgets/musickeyboard.js:2345 +#: js/widgets/phrasemaker.js:1912 +#: js/widgets/sampler.js:814 +#.TRANS: double flat is a music term related to pitch +msgid "double flat" msgstr "" -#: js/turtledefs.js:593 -msgid "Save your project to as a Lilypond file." +#: js/piemenus.js:2864 +#: js/utils/musicutils.js:1006 +#: js/blocks/PitchBlocks.js:1385 +#.TRANS: unison is a music term related to intervals +#.TRANS: unison means the note is the same as the current note +msgid "unison" msgstr "" -#: js/turtledefs.js:604 -msgid "Load samples from server" +#: js/piemenus.js:3018 +#: js/piemenus.js:3091 +#: js/utils/musicutils.js:1014 +#: js/utils/musicutils.js:1189 +#: js/utils/musicutils.js:1326 +#.TRANS: major is a music term related to intervals and mode +msgid "major" msgstr "" -#: js/turtledefs.js:605 -msgid "This button opens a viewer for loading example projects." +#: js/piemenus.js:3018 +#: js/piemenus.js:3091 +#: js/utils/musicutils.js:1032 +#.TRANS: modal scale for music +msgid "ionian" msgstr "" -#: js/turtledefs.js:611 -msgid "Palette buttons" +#: js/piemenus.js:3020 +#: js/piemenus.js:3095 +#: js/utils/musicutils.js:1012 +#: js/utils/musicutils.js:1190 +#: js/utils/musicutils.js:1323 +#.TRANS: minor is a music term related to intervals and mode +msgid "minor" msgstr "" -#: js/turtledefs.js:612 -msgid "This toolbar contains the palette buttons including Rhythm Pitch Tone Action and more." +#: js/piemenus.js:3020 +#: js/piemenus.js:3095 +#: js/utils/musicutils.js:1042 +#.TRANS: modal scale for music +msgid "aeolian" msgstr "" -#: js/turtledefs.js:614 -msgid "Click to show the palettes of blocks and drag blocks from the palettes onto the canvas to use them." +#: js/piemenus.js:3410 +msgid "Duplicate" msgstr "" -#: js/turtledefs.js:620 -msgid "Cartesian/Polar" +#: js/piemenus.js:3412 +msgid "Move to trash" msgstr "" -#: js/turtledefs.js:621 -msgid "Show or hide a coordinate grid." +#: js/piemenus.js:3413 +#: js/widgets/timbre.js:968 +#: planet/js/StringHelper.js:69 +msgid "Close" msgstr "" -#: js/turtledefs.js:627 -msgid "Clear the screen and return the mice to their initial positions." +#: js/piemenus.js:3419 +msgid "Save stack" msgstr "" -#: js/turtledefs.js:633 -msgid "Collapse the graphics window." +#: js/piemenus.js:3449 +msgid "In order to copy a sample, you must reload the widget, import the sample again, and export it." msgstr "" -#: js/turtledefs.js:638 -#: js/activity.js:4256 -#: js/activity.js:4256 -msgid "Home" +#: js/piemenus.js:3812 +msgid "You have chosen key " msgstr "" -#: js/turtledefs.js:639 -msgid "Return all blocks to the center of the screen." +#: js/piemenus.js:3816 +msgid " for your pitch preview." msgstr "" -#: js/turtledefs.js:644 -msgid "Show/hide blocks" +#: js/turtle-singer.js:1363 +#.TRANS: partials are weighted components in a harmonic series +msgid "You must have at least one Partial block inside of a Weighted-partial block" msgstr "" -#: js/turtledefs.js:645 -msgid "Hide or show the blocks and the palettes." +#: js/turtle-singer.js:2077 +msgid "synth cannot play chords." msgstr "" -#: js/turtledefs.js:650 -msgid "Expand/collapse collapsable blocks" +#: js/utils/musicutils.js:505 +#: js/utils/musicutils.js:645 +#: js/widgets/pitchdrummatrix.js:228 +#: js/widgets/musickeyboard.js:2885 +msgid "rest" msgstr "" -#: js/turtledefs.js:651 -msgid "Expand or collapse start and action stacks." +#: js/utils/musicutils.js:689 +msgid "Perfect unison" msgstr "" -#: js/turtledefs.js:658 -#: js/activity.js:4265 -msgid "Decrease block size" +#: js/utils/musicutils.js:689 +msgid "Diminished second" msgstr "" -#: js/turtledefs.js:659 -msgid "Decrease the size of the blocks." +#: js/utils/musicutils.js:690 +msgid "Minor second" msgstr "" -#: js/turtledefs.js:664 -#: js/activity.js:4267 -msgid "Increase block size" +#: js/utils/musicutils.js:690 +msgid "Augmented unison" msgstr "" -#: js/turtledefs.js:665 -msgid "Increase the size of the blocks." +#: js/utils/musicutils.js:691 +msgid "Major second" msgstr "" -#: js/turtledefs.js:670 -msgid "Expand/collapse option toolbar" +#: js/utils/musicutils.js:691 +msgid "Diminished third" msgstr "" -#: js/turtledefs.js:671 -msgid "Click this button to expand or collapse the auxillary toolbar." +#: js/utils/musicutils.js:692 +msgid "Minor third" msgstr "" -#: js/turtledefs.js:676 -msgid "Run slow" +#: js/utils/musicutils.js:692 +msgid "Augmented second" msgstr "" -#: js/turtledefs.js:677 -msgid "Click to run the project in slow mode." +#: js/utils/musicutils.js:693 +msgid "Major third" msgstr "" -#: js/turtledefs.js:683 -msgid "Click to run the project step by step." +#: js/utils/musicutils.js:693 +msgid "Diminished fourth" msgstr "" -#: js/turtledefs.js:690 -msgid "Display statistics about your Music project." +#: js/utils/musicutils.js:694 +msgid "Perfect fourth" msgstr "" -#: js/turtledefs.js:697 -msgid "Delete a selected plugin." +#: js/utils/musicutils.js:694 +msgid "Augmented third" msgstr "" -#: js/turtledefs.js:704 -msgid "Enable scrolling" +#: js/utils/musicutils.js:695 +msgid "Diminished fifth" msgstr "" -#: js/turtledefs.js:705 -msgid "You can scroll the blocks on the canvas." +#: js/utils/musicutils.js:695 +msgid "Augmented fourth" msgstr "" -#: js/turtledefs.js:714 -msgid "Wrap Turtle" +#: js/utils/musicutils.js:696 +msgid "Perfect fifth" msgstr "" -#: js/turtledefs.js:715 -msgid "Turn Turtle wrapping On or Off." +#: js/utils/musicutils.js:696 +msgid "Diminished sixth" msgstr "" -#: js/turtledefs.js:725 -msgid "Restore blocks from the trash." +#: js/utils/musicutils.js:697 +msgid "Minor sixth" msgstr "" -#: js/turtledefs.js:732 -msgid "Switch mode" +#: js/utils/musicutils.js:697 +msgid "Augmented fifth" msgstr "" -#: js/turtledefs.js:733 -msgid "Switch between beginner and advance modes." +#: js/utils/musicutils.js:698 +msgid "Major sixth" msgstr "" -#: js/turtledefs.js:739 -msgid "Select your language preference." +#: js/utils/musicutils.js:698 +msgid "Diminished seventh" msgstr "" -#: js/turtledefs.js:745 -msgid "Keyboard shortcuts" +#: js/utils/musicutils.js:699 +msgid "Minor seventh" msgstr "" -#: js/turtledefs.js:746 -msgid "You can type d to create a do block and r to create a re block etc." +#: js/utils/musicutils.js:699 +msgid "Augmented sixth" msgstr "" -#: js/turtledefs.js:753 -msgid "Show these messages." +#: js/utils/musicutils.js:700 +msgid "Major seventh" msgstr "" -#: js/turtledefs.js:759 -#: js/turtledefs.js:790 -#: js/help.js:335 -msgid "Guide" +#: js/utils/musicutils.js:700 +msgid "Diminished octave" msgstr "" -#: js/turtledefs.js:760 -msgid "A detailed guide to Turtle Blocks is available." +#: js/utils/musicutils.js:701 +msgid "Perfect octave" msgstr "" -#: js/turtledefs.js:764 -msgid "Turtle Blocks Guide" +#: js/utils/musicutils.js:701 +msgid "Augmented seventh" msgstr "" -#: js/turtledefs.js:767 -#: js/turtledefs.js:798 -#: js/help.js:336 -msgid "About" +#: js/utils/musicutils.js:702 +msgid "Minor ninth" msgstr "" -#: js/turtledefs.js:768 -msgid "Turtle Blocks is an open source collection of tools for exploring musical concepts." +#: js/utils/musicutils.js:702 +msgid "Augmented octave" msgstr "" -#: js/turtledefs.js:770 -msgid "A full list of contributors can be found in the Turtle Blocks GitHub repository." +#: js/utils/musicutils.js:703 +msgid "Major ninth" msgstr "" -#: js/turtledefs.js:772 -msgid "Turtle Blocks is licensed under the AGPL." +#: js/utils/musicutils.js:703 +msgid "Diminished tenth" msgstr "" -#: js/turtledefs.js:780 -msgid "Turtle Blocks GitHub repository" +#: js/utils/musicutils.js:704 +msgid "Minor tenth" msgstr "" -#: js/turtledefs.js:783 -#: js/turtledefs.js:814 -#: js/help.js:337 -#: js/help.js:359 -msgid "Congratulations." +#: js/utils/musicutils.js:704 +msgid "Augmented ninth" msgstr "" -#: js/turtledefs.js:784 -msgid "You have finished the tour. Please enjoy Turtle Blocks!" +#: js/utils/musicutils.js:705 +msgid "Major tenth" msgstr "" -#: js/turtledefs.js:791 -msgid "A detailed guide to Music Blocks is available." +#: js/utils/musicutils.js:705 +msgid "Diminished eleventh" msgstr "" -#: js/turtledefs.js:795 -#: js/SaveInterface.js:76 -msgid "Music Blocks Guide" +#: js/utils/musicutils.js:706 +msgid "Perfect eleventh" msgstr "" -#: js/turtledefs.js:799 -msgid "Music Blocks is an open source collection of tools for exploring musical concepts." +#: js/utils/musicutils.js:706 +msgid "Augmented tenth" msgstr "" -#: js/turtledefs.js:801 -msgid "A full list of contributors can be found in the Music Blocks GitHub repository." +#: js/utils/musicutils.js:707 +msgid "Diminished twelfth" msgstr "" -#: js/turtledefs.js:803 -msgid "Music Blocks is licensed under the AGPL." +#: js/utils/musicutils.js:707 +msgid "Augmented eleventh" msgstr "" -#: js/turtledefs.js:811 -msgid "Music Blocks GitHub repository" +#: js/utils/musicutils.js:708 +msgid "Perfect twelfth" msgstr "" -#: js/turtledefs.js:815 -msgid "You have finished the tour. Please enjoy Music Blocks!" +#: js/utils/musicutils.js:708 +msgid "Diminished thirteenth" msgstr "" -#: js/activity.js:369 -msgid "Search for blocks" +#: js/utils/musicutils.js:709 +msgid "Minor thirteenth" msgstr "" -#: js/activity.js:1145 -msgid "Refresh your browser to change to advanced mode." +#: js/utils/musicutils.js:709 +msgid "Augmented fifth, plus an octave" msgstr "" -#: js/activity.js:1150 -msgid "Refresh your browser to change to beginner mode." +#: js/utils/musicutils.js:710 +msgid "Major thirteenth" msgstr "" -#: js/activity.js:1184 -msgid "Catching mice" +#: js/utils/musicutils.js:710 +msgid "Diminished seventh, plus an octave" msgstr "" -#: js/activity.js:1185 -msgid "Cleaning the instruments" +#: js/utils/musicutils.js:838 +#.TRANS: ordinal number. Please keep exactly one space between each number. +msgid "1st 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th" msgstr "" -#: js/activity.js:1186 -msgid "Testing key pieces" +#: js/utils/musicutils.js:1008 +#: js/utils/musicutils.js:1191 +#: js/utils/musicutils.js:1325 +#.TRANS: augmented is a music term related to intervals +msgid "augmented" msgstr "" -#: js/activity.js:1187 -msgid "Sight-reading" +#: js/utils/musicutils.js:1010 +#: js/utils/musicutils.js:1192 +#: js/utils/musicutils.js:1324 +#.TRANS: diminished is a music term related to intervals and mode +msgid "diminished" msgstr "" -#: js/activity.js:1188 -msgid "Combining math and music" +#: js/utils/musicutils.js:1016 +#: js/utils/musicutils.js:1322 +#: js/blocks/IntervalsBlocks.js:649 +#: js/turtleactions/IntervalsActions.js:120 +#: js/turtleactions/IntervalsActions.js:124 +#.TRANS: perfect is a music term related to intervals +msgid "perfect" +msgstr "" + +#: js/utils/musicutils.js:1018 +#.TRANS: twelve semi-tone scale for music +msgid "chromatic" msgstr "" -#: js/activity.js:1189 -msgid "Generating more blocks" +#: js/utils/musicutils.js:1019 +msgid "algerian" msgstr "" -#: js/activity.js:1190 -msgid "Do Re Mi Fa Sol La Ti Do" +#: js/utils/musicutils.js:1020 +msgid "spanish" msgstr "" -#: js/activity.js:1191 -msgid "Tuning string instruments" +#: js/utils/musicutils.js:1022 +#.TRANS: modal scale in music +msgid "octatonic" msgstr "" -#: js/activity.js:1192 -msgid "Pressing random keys" +#: js/utils/musicutils.js:1024 +#.TRANS: harmonic major scale in music +msgid "harmonic major" msgstr "" -#: js/activity.js:1351 -msgid "plugins will be removed upon restart." +#: js/utils/musicutils.js:1026 +#.TRANS: natural minor scales in music +msgid "natural minor" msgstr "" -#: js/activity.js:1360 -msgid "show Cartesian" +#: js/utils/musicutils.js:1028 +#.TRANS: harmonic minor scale in music +msgid "harmonic minor" msgstr "" -#: js/activity.js:1842 -msgid "output tools" +#: js/utils/musicutils.js:1030 +#.TRANS: melodic minor scale in music +msgid "melodic minor" msgstr "" -#: js/activity.js:1845 -msgid "custom note" +#: js/utils/musicutils.js:1034 +#.TRANS: modal scale for music +msgid "dorian" msgstr "" -#: js/activity.js:1848 -msgid "accidental name" +#: js/utils/musicutils.js:1036 +#.TRANS: modal scale for music +msgid "phrygian" msgstr "" -#: js/activity.js:1851 -#: js/PitchBlocks.js:855 -msgid "east indian solfege" +#: js/utils/musicutils.js:1038 +#.TRANS: modal scale for music +msgid "lydian" msgstr "" -#: js/activity.js:1854 -#: js/PitchBlocks.js:869 -msgid "note name" +#: js/utils/musicutils.js:1040 +#.TRANS: modal scale for music +msgid "mixolydian" msgstr "" -#: js/activity.js:1857 -#: js/IntervalsBlocks.js:94 -msgid "temperament name" +#: js/utils/musicutils.js:1044 +#.TRANS: modal scale for music +msgid "locrian" msgstr "" -#: js/activity.js:1863 -msgid "chord name" +#: js/utils/musicutils.js:1046 +#.TRANS: minor jazz scale for music +msgid "jazz minor" msgstr "" -#: js/activity.js:1869 -msgid "filter type" +#: js/utils/musicutils.js:1048 +#.TRANS: bebop scale for music +msgid "bebop" msgstr "" -#: js/activity.js:1872 -msgid "oscillator type" +#: js/utils/musicutils.js:1049 +msgid "arabic" msgstr "" -#: js/activity.js:1878 -#: js/DrumBlocks.js:32 -msgid "noise name" +#: js/utils/musicutils.js:1050 +msgid "byzantine" msgstr "" -#: js/activity.js:1881 -#: js/DrumBlocks.js:75 -msgid "drum name" +#: js/utils/musicutils.js:1052 +#.TRANS: musical scale for music by Verdi +msgid "enigmatic" msgstr "" -#: js/activity.js:1884 -#: js/DrumBlocks.js:119 -msgid "effects name" +#: js/utils/musicutils.js:1053 +msgid "ethiopian" msgstr "" -#: js/activity.js:1887 -msgid "wrap mode" +#: js/utils/musicutils.js:1055 +#.TRANS: Ethiopic scale for music +msgid "geez" msgstr "" -#: js/activity.js:1890 -msgid "load file" +#: js/utils/musicutils.js:1056 +msgid "hindu" msgstr "" -#: js/activity.js:2056 -msgid "This block is deprecated." +#: js/utils/musicutils.js:1057 +msgid "hungarian" msgstr "" -#: js/activity.js:2058 -msgid "Block cannot be found." +#: js/utils/musicutils.js:1059 +#.TRANS: minor Romanian scale for music +msgid "romanian minor" msgstr "" -#: js/activity.js:2266 -msgid "Saving block artwork" +#: js/utils/musicutils.js:1060 +msgid "spanish gypsy" msgstr "" -#: js/activity.js:2277 -msgid "Erase" +#: js/utils/musicutils.js:1062 +#.TRANS: musical scale for Mid-Eastern music +msgid "maqam" msgstr "" -#: js/activity.js:2301 -#: js/activity.js:2323 -msgid "Paste" +#: js/utils/musicutils.js:1064 +#.TRANS: minor blues scale for music +msgid "minor blues" msgstr "" -#: js/activity.js:2305 -msgid "Save block help" +#: js/utils/musicutils.js:1066 +#.TRANS: major blues scale for music +msgid "major blues" msgstr "" -#: js/activity.js:2390 -msgid "Jumping to the bottom of the page." +#: js/utils/musicutils.js:1067 +msgid "whole tone" msgstr "" -#: js/activity.js:2396 -msgid "Scrolling up." +#: js/utils/musicutils.js:1069 +#.TRANS: pentatonic is a general term that means "five note scale". This scale is typically known as "minor pentatonic" +msgid "minor pentatonic" msgstr "" -#: js/activity.js:2401 -msgid "Scrolling down." +#: js/utils/musicutils.js:1071 +#.TRANS: pentatonic is a general term that means "five note scale". This scale is typically known as "major pentatonic" +msgid "major pentatonic" msgstr "" -#: js/activity.js:2406 -msgid "Extracting block" +#: js/utils/musicutils.js:1072 +msgid "chinese" msgstr "" -#: js/activity.js:2414 -msgid "Moving block up." +#: js/utils/musicutils.js:1073 +msgid "egyptian" msgstr "" -#: js/activity.js:2435 -msgid "Moving block down." +#: js/utils/musicutils.js:1075 +#.TRANS: https://en.wikipedia.org/wiki/Hirajoshi_scale NOTE: There are three different versions of this scale +msgid "hirajoshi" msgstr "" -#: js/activity.js:2456 -msgid "Moving block left." +#: js/utils/musicutils.js:1076 +msgid "Japan" msgstr "" -#: js/activity.js:2473 -msgid "Moving block right." +#: js/utils/musicutils.js:1078 +#.TRANS: https://en.wikipedia.org/wiki/In_scale and https://en.wikipedia.org/wiki/Sakura_Sakura +msgid "in" msgstr "" -#: js/activity.js:2488 -msgid "Jump to home position." +#: js/utils/musicutils.js:1080 +#.TRANS: https://en.wikipedia.org/wiki/Miny%C5%8D_scale +msgid "minyo" msgstr "" -#: js/activity.js:2515 -msgid "Hide blocks" +#: js/utils/musicutils.js:1082 +#.TRANS: Italian mathematician +msgid "fibonacci" msgstr "" -#: js/activity.js:3389 -msgid "Click the run button to run the project." +#: js/utils/musicutils.js:1083 +#: js/utils/musicutils.js:1134 +#: js/utils/musicutils.js:1177 +#: js/utils/musicutils.js:1199 +#: js/utils/synthutils.js:134 +#: js/blocks/IntervalsBlocks.js:1124 +#: js/blocks/ToneBlocks.js:946 +#: js/blocks/VolumeBlocks.js:411 +#: js/blocks/WidgetBlocks.js:399 +#: js/blocks/WidgetBlocks.js:404 +#: js/turtleactions/VolumeActions.js:218 +#: js/widgets/modewidget.js:919 +#.TRANS: customize voice +msgid "custom" msgstr "" -#: js/activity.js:3456 -#: js/SaveInterface.js:131 -#: js/SaveInterface.js:204 -#: js/SaveInterface.js:262 -#: js/SaveInterface.js:389 -#: js/SaveInterface.js:417 -#: js/ProjectStorage.js:27 -#: js/GlobalPlanet.js:467 -#: js/GlobalPlanet.js:469 -#: js/GlobalPlanet.js:495 -#.TRANS: default project title when saving as Lilypond -msgid "My Project" +#: js/utils/musicutils.js:1085 +#: js/utils/musicutils.js:1531 +#: js/blocks/WidgetBlocks.js:176 +#.TRANS: highpass filter +msgid "highpass" msgstr "" -#: js/activity.js:4261 -msgid "Show/hide block" +#: js/utils/musicutils.js:1087 +#: js/utils/musicutils.js:1532 +#.TRANS: lowpass filter +msgid "lowpass" msgstr "" -#: js/activity.js:4263 -msgid "Expand/collapse blocks" +#: js/utils/musicutils.js:1089 +#: js/utils/musicutils.js:1533 +#.TRANS: bandpass filter +msgid "bandpass" msgstr "" -#: js/activity.js:4381 -msgid "Could not parse JSON input." +#: js/utils/musicutils.js:1091 +#: js/utils/musicutils.js:1534 +#.TRANS: high-shelf filter +msgid "highshelf" msgstr "" -#: js/activity.js:4684 -#: js/activity.js:4771 -#: js/activity.js:4821 -msgid "Cannot load project from the file. Please check the file type." +#: js/utils/musicutils.js:1093 +#: js/utils/musicutils.js:1535 +#.TRANS: low-shelf filter +msgid "lowshelf" msgstr "" -#: js/activity.js:5051 -msgid "Invalid parameters" +#: js/utils/musicutils.js:1095 +#: js/utils/musicutils.js:1536 +#.TRANS: notch-shelf filter +msgid "notch" msgstr "" -#: js/turtle-singer.js:1334 -#.TRANS: partials are weighted components in a harmonic series -msgid "You must have at least one Partial block inside of a Weighted-partial block" +#: js/utils/musicutils.js:1097 +#: js/utils/musicutils.js:1537 +#.TRANS: all-pass filter +msgid "allpass" msgstr "" -#: js/turtle-singer.js:2048 -msgid "synth cannot play chords." +#: js/utils/musicutils.js:1099 +#: js/utils/musicutils.js:1538 +#.TRANS: peaking filter +msgid "peaking" msgstr "" -#: js/lilypond.js:614 -msgid "brown rat" +#: js/utils/musicutils.js:1100 +#: js/utils/musicutils.js:1546 +#: js/utils/synthutils.js:126 +#: js/blocks/PitchBlocks.js:85 +#.TRANS: sine wave +msgid "sine" msgstr "" -#: js/lilypond.js:615 -msgid "mole" +#: js/utils/musicutils.js:1101 +#: js/utils/musicutils.js:1547 +#: js/utils/synthutils.js:128 +#: js/blocks/PitchBlocks.js:39 +#.TRANS: square wave +msgid "square" msgstr "" -#: js/lilypond.js:616 -msgid "chipmunk" +#: js/utils/musicutils.js:1102 +#: js/utils/musicutils.js:1548 +#: js/utils/synthutils.js:132 +#: js/blocks/PitchBlocks.js:62 +#: js/blocks/ToneBlocks.js:39 +#.TRANS: triangle wave +msgid "triangle" msgstr "" -#: js/lilypond.js:617 -msgid "red squirrel" +#: js/utils/musicutils.js:1103 +#: js/utils/musicutils.js:1549 +#: js/utils/synthutils.js:130 +#: js/blocks/PitchBlocks.js:108 +#.TRANS: sawtooth wave +msgid "sawtooth" msgstr "" -#: js/lilypond.js:618 -msgid "guinea pig" +#: js/utils/musicutils.js:1105 +#: js/utils/musicutils.js:1312 +#: js/blocks/PitchBlocks.js:931 +#: js/blocks/PitchBlocks.js:937 +#: js/turtleactions/PitchActions.js:469 +#.TRANS: even numbers +#.TRANS: invert based on even or odd number or musical scale +msgid "even" msgstr "" -#: js/lilypond.js:619 -msgid "capybara" +#: js/utils/musicutils.js:1107 +#: js/utils/musicutils.js:1313 +#: js/blocks/PitchBlocks.js:937 +#: js/turtleactions/PitchActions.js:471 +#.TRANS: odd numbers +msgid "odd" msgstr "" -#: js/lilypond.js:620 -msgid "coypu" +#: js/utils/musicutils.js:1108 +#: js/utils/musicutils.js:1314 +#: js/blocks/PitchBlocks.js:937 +#: js/turtleactions/PitchActions.js:473 +msgid "scalar" msgstr "" -#: js/lilypond.js:621 -msgid "black rat" +#: js/utils/musicutils.js:1109 +#: js/utils/synthutils.js:72 +#: js/blocks/VolumeBlocks.js:47 +#.TRANS: musical instrument +msgid "piano" msgstr "" -#: js/lilypond.js:622 -msgid "grey squirrel" +#: js/utils/musicutils.js:1110 +#: js/utils/synthutils.js:74 +#.TRANS: musical instrument +msgid "violin" msgstr "" -#: js/lilypond.js:623 -msgid "flying squirrel" +#: js/utils/musicutils.js:1111 +#: js/utils/synthutils.js:76 +#.TRANS: viola musical instrument +msgid "viola" msgstr "" -#: js/lilypond.js:624 -msgid "bat" +#: js/utils/musicutils.js:1112 +#: js/utils/synthutils.js:114 +#.TRANS: xylophone musical instrument +msgid "xylophone" msgstr "" -#: js/lilypond.js:757 -#: js/lilypond.js:921 -#: js/lilypond.js:959 -#: js/ActionBlocks.js:1256 -#: js/ExtrasBlocks.js:553 -msgid "start drum" +#: js/utils/musicutils.js:1113 +#: js/utils/synthutils.js:136 +#.TRANS: vibraphone musical instrument +msgid "vibraphone" msgstr "" -#: js/SaveInterface.js:59 -#: js/SaveInterface.js:61 -#: js/SaveInterface.js:93 -msgid "Music Blocks Project" +#: js/utils/musicutils.js:1114 +#: js/utils/synthutils.js:78 +#.TRANS: musical instrument +msgid "cello" msgstr "" -#: js/SaveInterface.js:63 -msgid "This project was created in Music Blocks" +#: js/utils/musicutils.js:1116 +#: js/utils/synthutils.js:82 +#.TRANS: viola musical instrument +msgid "double bass" msgstr "" -#: js/SaveInterface.js:67 -msgid "Music Blocks is a Free/Libre Software application." +#: js/utils/musicutils.js:1117 +#: js/utils/synthutils.js:84 +#: js/widgets/rhythmruler.js:2511 +#.TRANS: musical instrument +msgid "guitar" msgstr "" -#: js/SaveInterface.js:69 -msgid "The source code can be accessed at" +#: js/utils/musicutils.js:1118 +#: js/utils/synthutils.js:86 +#.TRANS: musical instrument +msgid "acoustic guitar" msgstr "" -#: js/SaveInterface.js:72 -msgid "For more information, please consult the" +#: js/utils/musicutils.js:1119 +#: js/utils/synthutils.js:88 +#.TRANS: musical instrument +msgid "flute" msgstr "" -#: js/SaveInterface.js:83 -msgid "Alternatively, open the file in Music Blocks using the Load project button." +#: js/utils/musicutils.js:1120 +#: js/utils/synthutils.js:90 +#.TRANS: musical instrument +msgid "clarinet" msgstr "" -#: js/SaveInterface.js:85 -msgid "Project Code" +#: js/utils/musicutils.js:1121 +#: js/utils/synthutils.js:92 +#.TRANS: musical instrument +msgid "saxophone" msgstr "" -#: js/SaveInterface.js:87 -msgid "This code stores data about the blocks in a project." +#: js/utils/musicutils.js:1122 +#: js/utils/synthutils.js:94 +#.TRANS: musical instrument +msgid "tuba" msgstr "" -#: js/SaveInterface.js:89 -msgid "Show" +#: js/utils/musicutils.js:1123 +#: js/utils/synthutils.js:96 +#.TRANS: musical instrument +msgid "trumpet" msgstr "" -#: js/SaveInterface.js:91 -msgid "Hide" +#: js/utils/musicutils.js:1124 +#: js/utils/synthutils.js:98 +#.TRANS: musical instrument +msgid "oboe" msgstr "" -#: js/SaveInterface.js:197 -#: js/SaveInterface.js:58 -msgid "No description provided" +#: js/utils/musicutils.js:1125 +#: js/utils/synthutils.js:100 +#.TRANS: musical instrument +msgid "trombone" msgstr "" -#: js/SaveInterface.js:332 -msgid "Your recording is in progress." +#: js/utils/musicutils.js:1126 +#: js/utils/synthutils.js:116 +#.TRANS: polytone synthesizer +msgid "electronic synth" msgstr "" -#: js/SaveInterface.js:401 -#.TRANS: File name prompt for save as Lilypond -msgid "File name" +#: js/utils/musicutils.js:1127 +#: js/utils/synthutils.js:118 +#.TRANS: simple monotone synthesizer +msgid "simple 1" msgstr "" -#: js/SaveInterface.js:403 -#: js/StringHelper.js:39 -#.TRANS: Project title prompt for save as Lilypond -msgid "Project title" +#: js/utils/musicutils.js:1128 +msgid "simple 2" msgstr "" -#: js/SaveInterface.js:405 -#.TRANS: Project title prompt for save as Lilypond -msgid "Project author" +#: js/utils/musicutils.js:1129 +msgid "simple 3" msgstr "" -#: js/SaveInterface.js:407 -#.TRANS: MIDI prompt for save as Lilypond -msgid "Include MIDI output?" +#: js/utils/musicutils.js:1130 +msgid "simple 4" msgstr "" -#: js/SaveInterface.js:409 -#.TRANS: Guitar prompt for save as Lilypond -msgid "Include guitar tablature output?" +#: js/utils/musicutils.js:1131 +#: js/utils/synthutils.js:58 +#: js/blocks/DrumBlocks.js:191 +#.TRANS: white noise synthesizer +msgid "white noise" msgstr "" -#: js/SaveInterface.js:411 -#.TRANS: Lilypond is a scripting language for generating sheet music -msgid "Save as Lilypond" +#: js/utils/musicutils.js:1132 +#: js/utils/synthutils.js:60 +#.TRANS: brown noise synthesizer +msgid "brown noise" msgstr "" -#: js/SaveInterface.js:426 -#: js/EnsembleBlocks.js:75 -#: js/EnsembleBlocks.js:154 -#: js/EnsembleBlocks.js:216 -#: js/EnsembleBlocks.js:302 -#: js/EnsembleBlocks.js:348 -#: js/EnsembleBlocks.js:389 -#: js/EnsembleBlocks.js:441 -#: js/EnsembleBlocks.js:490 -#: js/EnsembleBlocks.js:536 -#: js/EnsembleBlocks.js:583 -#: js/EnsembleBlocks.js:637 -#: js/EnsembleBlocks.js:753 -#: js/EnsembleBlocks.js:840 -#: js/EnsembleBlocks.js:899 -#: js/EnsembleBlocks.js:942 -#: js/EnsembleBlocks.js:1212 -#: js/EnsembleBlocks.js:1280 -#.TRANS: default project author when saving as Lilypond -msgid "Mr. Mouse" +#: js/utils/musicutils.js:1133 +#: js/utils/synthutils.js:62 +#.TRANS: pink noise synthesizer +msgid "pink noise" msgstr "" -#: js/SaveInterface.js:573 -msgid "The Lilypond code is copied to clipboard. You can paste it here: " +#: js/utils/musicutils.js:1135 +#: js/utils/synthutils.js:148 +#: js/widgets/rhythmruler.js:2057 +#: js/widgets/rhythmruler.js:2319 +#.TRANS: musical instrument +msgid "snare drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:50 -#: js/RhythmBlockPaletteBlocks.js:232 -#.TRANS: rhythm block -#.TRANS: translate "rhythm1" as rhythm -msgid "rhythm1" +#: js/utils/musicutils.js:1136 +#: js/utils/synthutils.js:150 +#.TRANS: musical instrument +msgid "kick drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:70 -#: js/RhythmBlockPaletteBlocks.js:251 -#: js/RhythmBlockPaletteBlocks.js:484 -#: js/RhythmBlockPaletteBlocks.js:553 -#: js/RhythmBlockPaletteBlocks.js:874 -msgid "number of notes" +#: js/utils/musicutils.js:1137 +#: js/utils/synthutils.js:152 +#.TRANS: musical instrument +msgid "tom tom" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:126 -msgid "polyphonic rhythm" +#: js/utils/musicutils.js:1138 +#: js/utils/synthutils.js:154 +#.TRANS: musical instrument +msgid "floor tom" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:218 -msgid "The Rhythm block is used to generate rhythm patterns." +#: js/utils/musicutils.js:1139 +#: js/utils/synthutils.js:156 +#.TRANS: musical instrument +msgid "bass drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:279 -msgid "1/64 note" +#: js/utils/musicutils.js:1140 +#: js/utils/synthutils.js:158 +#.TRANS: a drum made from an inverted cup +msgid "cup drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:303 -msgid "1/32 note" +#: js/utils/musicutils.js:1141 +#: js/utils/synthutils.js:160 +#.TRANS: musical instrument +msgid "darbuka drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:331 -msgid "1/16 note" +#: js/utils/musicutils.js:1142 +#: js/utils/synthutils.js:164 +#.TRANS: musical instrument +msgid "hi hat" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:359 -msgid "eighth note" +#: js/utils/musicutils.js:1143 +#: js/utils/synthutils.js:166 +#.TRANS: a small metal bell +msgid "ride bell" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:387 -msgid "quarter note" +#: js/utils/musicutils.js:1144 +#: js/utils/synthutils.js:168 +#.TRANS: musical instrument +msgid "cow bell" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:415 -msgid "half note" +#: js/utils/musicutils.js:1145 +msgid "japanese drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:443 -msgid "whole note" +#: js/utils/musicutils.js:1146 +#: js/utils/synthutils.js:174 +#.TRANS: musical instrument +msgid "japanese bell" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:481 -#: js/RhythmBlockPaletteBlocks.js:550 -#: js/RhythmBlockPaletteBlocks.js:601 -#.TRANS: A tuplet is a note value divided into irregular time values. -msgid "tuplet" +#: js/utils/musicutils.js:1147 +#: js/utils/synthutils.js:170 +#.TRANS: musical instrument +msgid "triangle bell" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:767 -msgid "septuplet" +#: js/utils/musicutils.js:1148 +#: js/utils/synthutils.js:172 +#.TRANS: musical instrument +msgid "finger cymbals" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:795 -msgid "quintuplet" +#: js/utils/musicutils.js:1149 +#: js/utils/synthutils.js:176 +#.TRANS: a musically tuned set of bells +msgid "chime" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:823 -msgid "triplet" +#: js/utils/musicutils.js:1150 +#: js/utils/synthutils.js:178 +#.TRANS: a musical instrument +msgid "gong" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:850 -msgid "simple tuplet" +#: js/utils/musicutils.js:1151 +#: js/utils/synthutils.js:180 +#.TRANS: sound effect +msgid "clang" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:860 -msgid "Tuplets are a collection of notes that get scaled to a specific duration." +#: js/utils/musicutils.js:1152 +#: js/utils/synthutils.js:182 +#.TRANS: sound effect +msgid "crash" msgstr "" -#: js/WidgetBlocks.js:71 -#.TRANS: sound envelope (ADSR) -msgid "envelope" +#: js/utils/musicutils.js:1153 +#: js/utils/synthutils.js:184 +#.TRANS: sound effect +msgid "bottle" msgstr "" -#: js/WidgetBlocks.js:79 -#.TRANS: Attack time is the time taken for initial run-up of level from nil to peak, beginning when the key is first pressed. -msgid "attack" +#: js/utils/musicutils.js:1154 +#: js/utils/synthutils.js:186 +#.TRANS: sound effect +msgid "clap" msgstr "" -#: js/WidgetBlocks.js:81 -#.TRANS: Decay time is the time taken for the subsequent run down from the attack level to the designated sustain level. -msgid "decay" +#: js/utils/musicutils.js:1155 +#: js/utils/synthutils.js:188 +#.TRANS: sound effect +msgid "slap" msgstr "" -#: js/WidgetBlocks.js:83 -#.TRANS: Sustain level is the level during the main sequence of the sound's duration, until the key is released. -msgid "sustain" +#: js/utils/musicutils.js:1156 +#: js/utils/synthutils.js:190 +#.TRANS: sound effect +msgid "splash" msgstr "" -#: js/WidgetBlocks.js:85 -#.TRANS: Release time is the time taken for the level to decay from the sustain level to zero after the key is released. -msgid "release" +#: js/utils/musicutils.js:1157 +#: js/utils/synthutils.js:192 +#.TRANS: sound effect +msgid "bubbles" msgstr "" -#: js/WidgetBlocks.js:96 -msgid "Attack value should be from 0 to 100." +#: js/utils/musicutils.js:1158 +#: js/utils/synthutils.js:194 +#.TRANS: sound effect +msgid "raindrop" msgstr "" -#: js/WidgetBlocks.js:99 -msgid "Decay value should be from 0 to 100." +#: js/utils/musicutils.js:1159 +#: js/utils/synthutils.js:196 +#.TRANS: animal sound effect +msgid "cat" msgstr "" -#: js/WidgetBlocks.js:102 -msgid "Sustain value should be from 0 to 100." +#: js/utils/musicutils.js:1160 +#: js/utils/synthutils.js:198 +#.TRANS: animal sound effect +msgid "cricket" msgstr "" -#: js/WidgetBlocks.js:105 -msgid "Release value should be from 0-100." +#: js/utils/musicutils.js:1161 +#: js/utils/synthutils.js:200 +#.TRANS: animal sound effect +msgid "dog" msgstr "" -#: js/WidgetBlocks.js:121 -msgid "You are adding multiple envelope blocks." +#: js/utils/musicutils.js:1163 +#: js/utils/synthutils.js:102 +#.TRANS: musical instrument +msgid "banjo" msgstr "" -#: js/WidgetBlocks.js:144 -#.TRANS: a filter removes some unwanted components from a signal -msgid "filter" +#: js/utils/musicutils.js:1164 +#: js/utils/synthutils.js:104 +#.TRANS: musical instrument +msgid "koto" msgstr "" -#: js/WidgetBlocks.js:149 -#: js/musicutils.js:706 -#: js/musicutils.js:1105 -#.TRANS: highpass filter -msgid "highpass" +#: js/utils/musicutils.js:1165 +#: js/utils/synthutils.js:106 +#.TRANS: musical instrument +msgid "dulcimer" msgstr "" -#: js/WidgetBlocks.js:152 -#: js/ToneBlocks.js:42 -#: js/timbre.js:1558 -#: js/timbre.js:1808 -#.TRANS: type of filter, e.g., lowpass, highpass, etc. -#.TRANS: there are different types (sine, triangle, square...) of oscillators. -msgid "type" +#: js/utils/musicutils.js:1166 +#: js/utils/synthutils.js:108 +#.TRANS: musical instrument +msgid "electric guitar" msgstr "" -#: js/WidgetBlocks.js:154 -#: js/timbre.js:1818 -#.TRANS: rolloff is the steepness of a change in frequency. -msgid "rolloff" +#: js/utils/musicutils.js:1167 +#: js/utils/synthutils.js:110 +#.TRANS: musical instrument +msgid "bassoon" msgstr "" -#: js/WidgetBlocks.js:155 -#: js/MediaBlocks.js:692 -#: js/temperament.js:382 -#: js/temperament.js:417 -#: js/temperament.js:477 -#: js/temperament.js:485 -#: js/temperament.js:1348 -#: js/timbre.js:1842 -msgid "frequency" +#: js/utils/musicutils.js:1168 +#: js/utils/synthutils.js:112 +#.TRANS: musical instrument +msgid "celeste" msgstr "" -#: js/WidgetBlocks.js:179 -#.TRANS: rolloff is the steepness of a change in frequency. -msgid "Rolloff value should be either -12, -24, -48, or -96 decibels/octave." +#: js/utils/musicutils.js:1170 +#: js/widgets/temperament.js:787 +#.TRANS: musical temperament +msgid "equal" msgstr "" -#: js/WidgetBlocks.js:211 -msgid "The Temperament tool is used to define custom tuning." +#: js/utils/musicutils.js:1172 +#.TRANS: musical temperament +msgid "Pythagorean" msgstr "" -#: js/WidgetBlocks.js:277 -#: js/sampler.js:329 -msgid "Upload a sample and adjust its pitch center." +#: js/utils/musicutils.js:1174 +#.TRANS: musical temperament +msgid "just intonation" msgstr "" -#: js/WidgetBlocks.js:284 -#.TRANS: the speed at music is should be played. -msgid "sampler" +#: js/utils/musicutils.js:1176 +#.TRANS: musical temperament +msgid "meantone" msgstr "" -#: js/WidgetBlocks.js:329 -#: js/WidgetBlocks.js:334 -#: js/IntervalsBlocks.js:928 -#: js/VolumeBlocks.js:411 -#: js/ToneBlocks.js:946 -#: js/VolumeActions.js:218 -#: js/musicutils.js:704 -#: js/musicutils.js:755 -#: js/musicutils.js:798 -#: js/musicutils.js:820 -#: js/musicutils.js:1136 -#: js/synthutils.js:118 -#: js/modewidget.js:919 -#.TRANS: customize voice -msgid "custom" +#: js/utils/musicutils.js:1193 +msgid "major 7th" msgstr "" -#: js/WidgetBlocks.js:432 -msgid "The Meter block opens a tool to select strong beats for the meter." +#: js/utils/musicutils.js:1194 +msgid "minor 7th" msgstr "" -#: js/WidgetBlocks.js:473 -msgid "The oscilloscope block opens a tool to visualize waveforms." +#: js/utils/musicutils.js:1195 +msgid "dominant 7th" msgstr "" -#: js/WidgetBlocks.js:478 -msgid "oscilloscope" +#: js/utils/musicutils.js:1196 +msgid "minor-major 7th" msgstr "" -#: js/WidgetBlocks.js:530 -msgid "The Custom mode block opens a tool to explore musical mode (the spacing of the notes in a scale)." +#: js/utils/musicutils.js:1197 +msgid "fully-diminished 7th" msgstr "" -#: js/WidgetBlocks.js:536 -#.TRANS: musical mode is the pattern of half-steps in an octave, e.g., Major or Minor modes -msgid "custom mode" +#: js/utils/musicutils.js:1198 +msgid "half-diminished 7th" msgstr "" -#: js/WidgetBlocks.js:570 -msgid "The Tempo block opens a metronome to visualize the beat." +#: js/utils/musicutils.js:1557 +#: js/utils/musicutils.js:1569 +msgid "Equal (12EDO)" msgstr "" -#: js/WidgetBlocks.js:617 -msgid "The Arpeggio Widget is used to compose chord sequences." +#: js/utils/musicutils.js:1558 +#: js/utils/musicutils.js:1570 +msgid "5-limit Just Intonation" msgstr "" -#: js/WidgetBlocks.js:623 -#: js/IntervalsBlocks.js:683 -msgid "arpeggio" +#: js/utils/musicutils.js:1559 +#: js/utils/musicutils.js:1571 +msgid "Pythagorean (3-limit JI)" msgstr "" -#: js/WidgetBlocks.js:677 -msgid "The Pitch drum matrix is used to map pitches to drum sounds." +#: js/utils/musicutils.js:1560 +#: js/utils/musicutils.js:1561 +#: js/utils/musicutils.js:1572 +#: js/utils/musicutils.js:1573 +msgid "Meantone" msgstr "" -#: js/WidgetBlocks.js:682 -#.TRANS: makes a mapping between pitches and drum sounds -msgid "pitch-drum mapper" +#: js/utils/musicutils.js:1574 +msgid "Custom" msgstr "" -#: js/WidgetBlocks.js:724 -msgid "You must have at least one pitch block and one drum block in the matrix." +#: js/utils/musicutils.js:5387 +#: js/utils/musicutils.js:5430 +msgid "current" msgstr "" -#: js/WidgetBlocks.js:746 -msgid "The Pitch slider tool to is used to generate pitches at selected frequencies." +#: js/utils/musicutils.js:5390 +#: js/utils/musicutils.js:5421 +msgid "next" msgstr "" -#: js/WidgetBlocks.js:751 -#.TRANS: widget to generate pitches using a slider -msgid "pitch slider" +#: js/utils/musicutils.js:5393 +#: js/utils/musicutils.js:5426 +msgid "previous" msgstr "" -#: js/WidgetBlocks.js:788 -msgid "chromatic keyboard" +#: js/utils/synthutils.js:120 +#.TRANS: simple monotone synthesizer +msgid "simple-2" msgstr "" -#: js/WidgetBlocks.js:815 -#: js/WidgetBlocks.js:874 -#.TRANS: widget to generate pitches using a slider -msgid "music keyboard" +#: js/utils/synthutils.js:122 +#.TRANS: simple monotone synthesizer +msgid "simple-3" msgstr "" -#: js/WidgetBlocks.js:859 -#: js/WidgetBlocks.js:866 -msgid "The Music keyboard block opens a piano keyboard that can be used to create notes." +#: js/utils/synthutils.js:124 +#.TRANS: simple monotone synthesizer +msgid "simple-4" msgstr "" -#: js/WidgetBlocks.js:910 -msgid "The Pitch staircase tool to is used to generate pitches from a given ratio." +#: js/utils/synthutils.js:162 +#.TRANS: musical instrument +msgid "taiko" msgstr "" -#: js/WidgetBlocks.js:917 -#.TRANS: generate a progressive sequence of pitches -msgid "pitch staircase" +#: js/blocks/ActionBlocks.js:58 +msgid "The Return block will return a value from an action." msgstr "" -#: js/WidgetBlocks.js:982 -msgid "The Rhythm Maker block opens a tool to create drum machines." +#: js/blocks/ActionBlocks.js:75 +msgid "return" msgstr "" -#: js/WidgetBlocks.js:1036 -msgid "G major scale" +#: js/blocks/ActionBlocks.js:128 +msgid "The Return to URL block will return a value to a webpage." msgstr "" -#: js/WidgetBlocks.js:1064 -msgid "C major scale" +#: js/blocks/ActionBlocks.js:145 +msgid "return to URL" msgstr "" -#: js/WidgetBlocks.js:1097 -msgid "The Phrase Maker block opens a tool to create musical phrases." +#: js/blocks/ActionBlocks.js:233 +#: js/blocks/ActionBlocks.js:290 +#: js/blocks/ActionBlocks.js:501 +#: js/blocks/ActionBlocks.js:688 +msgid "The Calculate block returns a value calculated by an action." msgstr "" -#: js/WidgetBlocks.js:1104 -#.TRANS: assigns pitch to a sequence of beats to generate a melody -msgid "phrase maker" +#: js/blocks/ActionBlocks.js:251 +#: js/blocks/ActionBlocks.js:517 +#: js/blocks/ActionBlocks.js:707 +msgid "calculate" msgstr "" -#: js/WidgetBlocks.js:1168 -msgid "You must have at least one pitch block and one rhythm block in the matrix." +#: js/blocks/ActionBlocks.js:376 +#: js/blocks/ActionBlocks.js:593 +#: js/blocks/ActionBlocks.js:942 +#: js/blocks/ActionBlocks.js:1389 +#.TRANS: do is the do something or take an action. +msgid "The Do block is used to initiate an action." msgstr "" -#: js/WidgetBlocks.js:1220 -msgid "The Status block opens a tool for inspecting the status of Music Blocks as it is running." +#: js/blocks/ActionBlocks.js:390 +#: js/blocks/ActionBlocks.js:610 +#: js/blocks/ActionBlocks.js:959 +#: js/blocks/ActionBlocks.js:1048 +#: js/blocks/MeterBlocks.js:769 +msgid "do1" msgstr "" -#: js/IntervalsBlocks.js:45 -msgid "set temperament" +#: js/blocks/ActionBlocks.js:390 +#: js/blocks/ActionBlocks.js:610 +#: js/blocks/ActionBlocks.js:959 +#: js/blocks/ActionBlocks.js:1048 +#: js/blocks/FlowBlocks.js:742 +#: js/blocks/FlowBlocks.js:822 +#: js/blocks/MeterBlocks.js:769 +msgid "do" msgstr "" -#: js/IntervalsBlocks.js:63 -#: js/MediaBlocks.js:746 -#: js/PitchBlocks.js:657 -#: js/PitchBlocks.js:933 -#: js/PitchBlocks.js:972 -#: js/PitchBlocks.js:1005 -#: js/PitchBlocks.js:1166 -#: js/PitchBlocks.js:1679 -#: js/PitchBlocks.js:1720 -#: js/PitchBlocks.js:1827 -#: js/ToneBlocks.js:1025 -#.TRANS: adjusts the shift up or down by one octave (twelve half-steps in the interval between two notes, one having twice or half the frequency in Hz of the other.) -msgid "octave" +#: js/blocks/ActionBlocks.js:791 +#: js/blocks/ActionBlocks.js:865 +msgid "The Arg block contains the value of an argument passed to an action." msgstr "" -#: js/IntervalsBlocks.js:99 -msgid "The Temperament name block is used to select a tuning method." +#: js/blocks/ActionBlocks.js:806 +#: js/blocks/ActionBlocks.js:878 +msgid "arg" msgstr "" -#: js/IntervalsBlocks.js:161 -msgid "doubly" +#: js/blocks/ActionBlocks.js:836 +#: js/blocks/ActionBlocks.js:900 +#: js/blocks/ActionBlocks.js:908 +msgid "Invalid argument" msgstr "" -#: js/IntervalsBlocks.js:166 -msgid "The Doubly block will double the size of an interval." +#: js/blocks/ActionBlocks.js:944 +msgid "In the example, it is used with the One of block to choose a random phase." msgstr "" -#: js/IntervalsBlocks.js:262 -msgid "interval number" +#: js/blocks/ActionBlocks.js:1019 +#: js/blocks/ActionBlocks.js:1026 +msgid "The Listen block is used to listen for an event such as a mouse click." msgstr "" -#: js/IntervalsBlocks.js:330 -#.TRANS: measure the distance between two pitches in semi-tones -msgid "semi-tone interval measure" +#: js/blocks/ActionBlocks.js:1028 +msgid "When the event happens, an action is taken." msgstr "" -#: js/IntervalsBlocks.js:397 -#: js/IntervalsBlocks.js:513 -msgid "You must use two pitch blocks when measuring an interval." +#: js/blocks/ActionBlocks.js:1045 +msgid "on" msgstr "" -#: js/IntervalsBlocks.js:439 -msgid "The Scalar interval block measures the distance between two notes in the current key and mode." +#: js/blocks/ActionBlocks.js:1048 +#: js/blocks/ActionBlocks.js:1049 +#: js/blocks/ActionBlocks.js:1153 +msgid "event" msgstr "" -#: js/IntervalsBlocks.js:445 -#.TRANS: measure the distance between two pitches in steps of musical scale -msgid "scalar interval measure" +#: js/blocks/ActionBlocks.js:1133 +msgid "The Broadcast block is used to trigger an event." msgstr "" -#: js/IntervalsBlocks.js:592 -#: js/musicutils.js:637 -#: js/musicutils.js:908 -#.TRANS: perfect is a music term related to intervals -msgid "perfect" +#: js/blocks/ActionBlocks.js:1151 +msgid "broadcast" msgstr "" -#: js/IntervalsBlocks.js:621 -msgid "In the figure, we add sol# to sol." +#: js/blocks/ActionBlocks.js:1208 +msgid "Each Start block is a separate voice." msgstr "" -#: js/IntervalsBlocks.js:627 -#: js/OrnamentBlocks.js:220 -#.TRANS: calculate a relative step between notes based on semi-tones -msgid "semi-tone interval" +#: js/blocks/ActionBlocks.js:1304 +msgid "It is often used for storing a phrase of music that is repeated." msgstr "" -#: js/IntervalsBlocks.js:676 -msgid "The output of the example is: do, mi, sol, sol, ti, mi" +#: js/blocks/ActionBlocks.js:1495 +msgid "define temperament" msgstr "" -#: js/IntervalsBlocks.js:735 -msgid "The Chord block calculates common chords." +#: js/blocks/BooleanBlocks.js:44 +msgid "The Not block is the logical not operator." msgstr "" -#: js/IntervalsBlocks.js:737 -msgid "In the figure, we generate a C-major chord." +#: js/blocks/BooleanBlocks.js:62 +msgid "not" msgstr "" -#: js/IntervalsBlocks.js:742 -msgid "chord" +#: js/blocks/BooleanBlocks.js:134 +msgid "The And block is the logical and operator." msgstr "" -#: js/IntervalsBlocks.js:794 -msgid "The Ratio Interval block calculates an interval based on a ratio." +#: js/blocks/BooleanBlocks.js:152 +msgid "and" msgstr "" -#: js/IntervalsBlocks.js:799 -msgid "ratio interval" +#: js/blocks/BooleanBlocks.js:218 +msgid "The Or block is the logical or operator." msgstr "" -#: js/IntervalsBlocks.js:868 -msgid "In the figure, we add la to sol." +#: js/blocks/BooleanBlocks.js:236 +msgid "or" msgstr "" -#: js/IntervalsBlocks.js:924 -#.TRANS: define a custom mode -msgid "define mode" +#: js/blocks/BooleanBlocks.js:302 +msgid "The XOR block is the logical XOR operator." msgstr "" -#: js/IntervalsBlocks.js:977 -msgid "movable Do" +#: js/blocks/BooleanBlocks.js:320 +msgid "xor" msgstr "" -#: js/IntervalsBlocks.js:1028 -#.TRANS: mode length is the number of notes in the mode, e.g., 7 for major and minor scales; 12 for chromatic scales -msgid "mode length" +#: js/blocks/BooleanBlocks.js:808 +msgid "The Equal block returns True if the two numbers are equal." msgstr "" -#: js/IntervalsBlocks.js:1037 -msgid "The Mode length block is the number of notes in the current scale." +#: js/blocks/BooleanBlocks.js:909 +msgid "The Not-equal-to block returns True if the two numbers are not equal to each other." msgstr "" -#: js/IntervalsBlocks.js:1039 -msgid "Most Western scales have 7 notes." +#: js/blocks/BooleanBlocks.js:1008 +msgid "The Boolean block is used to specify true or false." msgstr "" -#: js/IntervalsBlocks.js:1088 -#.TRANS: the mode in music is 'major', 'minor', etc. -msgid "current mode" +#: js/blocks/BoxesBlocks.js:53 +#: js/blocks/BoxesBlocks.js:59 +msgid "The Add-to block is used to add to the value stored in a box." msgstr "" -#: js/IntervalsBlocks.js:1141 -#.TRANS: the key is a group of pitches with which a music composition is created -msgid "current key" +#: js/blocks/BoxesBlocks.js:61 +msgid "It can also be used with other blocks such as Color and Pen size." msgstr "" -#: js/IntervalsBlocks.js:1193 -#: js/IntervalsBlocks.js:1238 -#.TRANS: set the key and mode, e.g. C Major -msgid "set key" +#: js/blocks/BoxesBlocks.js:73 +msgid "add" msgstr "" -#: js/IntervalsBlocks.js:1247 -#: js/IntervalsBlocks.js:1253 -msgid "The Set key block is used to set the key and mode," +#: js/blocks/BoxesBlocks.js:75 +#: js/widgets/temperament.js:857 +msgid "to" msgstr "" -#: js/IntervalsBlocks.js:1253 -msgid "eg C Major" +#: js/blocks/BoxesBlocks.js:75 +#: js/blocks/BoxesBlocks.js:595 +#: js/blocks/HeapBlocks.js:544 +msgid "value1" msgstr "" -#: js/IntervalsBlocks.js:1266 -#: js/DictBlocks.js:215 -#: js/DictBlocks.js:216 -#: js/DictBlocks.js:289 -#: js/DictBlocks.js:290 -#: js/DictBlocks.js:357 -#: js/DictBlocks.js:430 -#: js/DictBlocks.js:431 -#.TRANS: key, e.g., C in C Major -msgid "key" +#: js/blocks/BoxesBlocks.js:118 +msgid "Block does not support incrementing." msgstr "" -#: js/ActionBlocks.js:58 -msgid "The Return block will return a value from an action." +#: js/blocks/BoxesBlocks.js:152 +msgid "The Add-1-to block adds one to the value stored in a box." msgstr "" -#: js/ActionBlocks.js:75 -msgid "return" +#: js/blocks/BoxesBlocks.js:163 +msgid "add 1 to" msgstr "" -#: js/ActionBlocks.js:128 -msgid "The Return to URL block will return a value to a webpage." +#: js/blocks/BoxesBlocks.js:211 +msgid "The Subtract-1-from block subtracts one from the value stored in a box." msgstr "" -#: js/ActionBlocks.js:145 -msgid "return to URL" +#: js/blocks/BoxesBlocks.js:222 +msgid "subtract 1 from" msgstr "" -#: js/ActionBlocks.js:233 -#: js/ActionBlocks.js:290 -#: js/ActionBlocks.js:501 -#: js/ActionBlocks.js:688 -msgid "The Calculate block returns a value calculated by an action." +#: js/blocks/BoxesBlocks.js:270 +#: js/blocks/BoxesBlocks.js:387 +msgid "The Box block returns the value stored in a box." msgstr "" -#: js/ActionBlocks.js:251 -#: js/ActionBlocks.js:517 -#: js/ActionBlocks.js:707 -msgid "calculate" +#: js/blocks/BoxesBlocks.js:500 +#: js/blocks/BoxesBlocks.js:576 +msgid "The Store in block will store a value in a box." msgstr "" -#: js/ActionBlocks.js:376 -#: js/ActionBlocks.js:593 -#: js/ActionBlocks.js:942 -#: js/ActionBlocks.js:1389 -#.TRANS: do is the do something or take an action. -msgid "The Do block is used to initiate an action." +#: js/blocks/BoxesBlocks.js:595 +#: js/blocks/EnsembleBlocks.js:391 +#: js/blocks/EnsembleBlocks.js:402 +msgid "name1" msgstr "" -#: js/ActionBlocks.js:390 -#: js/ActionBlocks.js:610 -#: js/ActionBlocks.js:959 -#: js/ActionBlocks.js:1048 -#: js/MeterBlocks.js:769 -msgid "do1" +#: js/blocks/BoxesBlocks.js:652 +msgid "The Box2 block returns the value stored in Box2." msgstr "" -#: js/ActionBlocks.js:390 -#: js/ActionBlocks.js:610 -#: js/ActionBlocks.js:959 -#: js/ActionBlocks.js:1048 -#: js/FlowBlocks.js:742 -#: js/FlowBlocks.js:822 -#: js/MeterBlocks.js:769 -msgid "do" +#: js/blocks/BoxesBlocks.js:703 +msgid "The Store in Box2 block is used to store a value in Box2." msgstr "" -#: js/ActionBlocks.js:791 -#: js/ActionBlocks.js:865 -msgid "The Arg block contains the value of an argument passed to an action." +#: js/blocks/BoxesBlocks.js:715 +msgid "store in box2" msgstr "" -#: js/ActionBlocks.js:806 -#: js/ActionBlocks.js:878 -msgid "arg" +#: js/blocks/BoxesBlocks.js:761 +msgid "The Box1 block returns the value stored in Box1." msgstr "" -#: js/ActionBlocks.js:836 -#: js/ActionBlocks.js:900 -#: js/ActionBlocks.js:908 -msgid "Invalid argument" +#: js/blocks/BoxesBlocks.js:812 +msgid "The Store in Box1 block is used to store a value in Box1." msgstr "" -#: js/ActionBlocks.js:944 -msgid "In the example, it is used with the One of block to choose a random phase." +#: js/blocks/BoxesBlocks.js:826 +msgid "store in box1" msgstr "" -#: js/ActionBlocks.js:1019 -#: js/ActionBlocks.js:1026 -msgid "The Listen block is used to listen for an event such as a mouse click." +#: js/blocks/DictBlocks.js:77 +msgid "show dictionary" msgstr "" -#: js/ActionBlocks.js:1028 -msgid "When the event happens, an action is taken." +#: js/blocks/DictBlocks.js:80 +#: js/blocks/DictBlocks.js:145 +#: js/blocks/DictBlocks.js:216 +#: js/blocks/DictBlocks.js:290 +#: js/blocks/ProgramBlocks.js:396 +#: js/blocks/ProgramBlocks.js:501 +#: js/blocks/ProgramBlocks.js:664 +msgid "My Dictionary" msgstr "" -#: js/ActionBlocks.js:1045 -msgid "on" +#: js/blocks/DictBlocks.js:129 +msgid "The Dictionary block returns a dictionary." msgstr "" -#: js/ActionBlocks.js:1048 -#: js/ActionBlocks.js:1049 -#: js/ActionBlocks.js:1153 -msgid "event" +#: js/blocks/DictBlocks.js:197 +#: js/blocks/DictBlocks.js:339 +msgid "The Get-dict block returns a value in the dictionary for a specified key." msgstr "" -#: js/ActionBlocks.js:1133 -msgid "The Broadcast block is used to trigger an event." +#: js/blocks/DictBlocks.js:212 +#: js/blocks/DictBlocks.js:354 +#.TRANS: retrieve a value from the dictionary with a given key +msgid "get value" msgstr "" -#: js/ActionBlocks.js:1151 -msgid "broadcast" +#: js/blocks/DictBlocks.js:215 +#: js/blocks/DictBlocks.js:216 +#: js/blocks/DictBlocks.js:289 +#: js/blocks/DictBlocks.js:290 +#: js/blocks/DictBlocks.js:357 +#: js/blocks/DictBlocks.js:430 +#: js/blocks/DictBlocks.js:431 +msgid "key2" msgstr "" -#: js/ActionBlocks.js:1208 -msgid "Each Start block is a separate voice." +#: js/blocks/DictBlocks.js:215 +#: js/blocks/DictBlocks.js:216 +#: js/blocks/DictBlocks.js:289 +#: js/blocks/DictBlocks.js:290 +#: js/blocks/DictBlocks.js:357 +#: js/blocks/DictBlocks.js:430 +#: js/blocks/DictBlocks.js:431 +#: js/blocks/IntervalsBlocks.js:1462 +#.TRANS: key, e.g., C in C Major +msgid "key" msgstr "" -#: js/ActionBlocks.js:1304 -msgid "It is often used for storing a phrase of music that is repeated." +#: js/blocks/DictBlocks.js:271 +#: js/blocks/DictBlocks.js:411 +msgid "The Set-dict block sets a value in the dictionary for a specified key." msgstr "" -#: js/ActionBlocks.js:1495 -msgid "define temperament" +#: js/blocks/DictBlocks.js:286 +#: js/blocks/DictBlocks.js:427 +#.TRANS: set a value in the dictionary for a given key +msgid "set value" msgstr "" -#: js/EnsembleBlocks.js:66 +#: js/blocks/EnsembleBlocks.js:66 msgid "mouse index heap" msgstr "" -#: js/EnsembleBlocks.js:68 +#: js/blocks/EnsembleBlocks.js:68 msgid "The Mouse index heap block returns a value in the heap at a specified location for a specified mouse." msgstr "" -#: js/EnsembleBlocks.js:77 -#: js/EnsembleBlocks.js:1080 +#: js/blocks/EnsembleBlocks.js:77 +#: js/blocks/EnsembleBlocks.js:1080 msgid "mouse name" msgstr "" -#: js/EnsembleBlocks.js:77 -#: js/EnsembleBlocks.js:92 -#: js/HeapBlocks.js:544 +#: js/blocks/EnsembleBlocks.js:77 +#: js/blocks/EnsembleBlocks.js:92 +#: js/blocks/HeapBlocks.js:544 #.TRANS: value1 is a numeric value (JAPANESE ONLY) msgid "index" msgstr "" -#: js/EnsembleBlocks.js:80 +#: js/blocks/EnsembleBlocks.js:80 msgid "turtle index heap" msgstr "" -#: js/EnsembleBlocks.js:82 +#: js/blocks/EnsembleBlocks.js:82 msgid "The Turtle index heap block returns a value in the heap at a specified location for a specified turtle." msgstr "" -#: js/EnsembleBlocks.js:90 -#: js/EnsembleBlocks.js:167 -#: js/EnsembleBlocks.js:230 -#: js/EnsembleBlocks.js:316 -#: js/EnsembleBlocks.js:362 -#: js/EnsembleBlocks.js:400 -#: js/EnsembleBlocks.js:454 -#: js/EnsembleBlocks.js:504 -#: js/EnsembleBlocks.js:550 -#: js/EnsembleBlocks.js:597 -#: js/EnsembleBlocks.js:651 -#: js/EnsembleBlocks.js:763 -#: js/EnsembleBlocks.js:854 -#: js/EnsembleBlocks.js:915 -#: js/EnsembleBlocks.js:955 -#: js/EnsembleBlocks.js:1219 -#: js/EnsembleBlocks.js:1293 +#: js/blocks/EnsembleBlocks.js:90 +#: js/blocks/EnsembleBlocks.js:167 +#: js/blocks/EnsembleBlocks.js:230 +#: js/blocks/EnsembleBlocks.js:316 +#: js/blocks/EnsembleBlocks.js:362 +#: js/blocks/EnsembleBlocks.js:400 +#: js/blocks/EnsembleBlocks.js:454 +#: js/blocks/EnsembleBlocks.js:504 +#: js/blocks/EnsembleBlocks.js:550 +#: js/blocks/EnsembleBlocks.js:597 +#: js/blocks/EnsembleBlocks.js:651 +#: js/blocks/EnsembleBlocks.js:763 +#: js/blocks/EnsembleBlocks.js:854 +#: js/blocks/EnsembleBlocks.js:915 +#: js/blocks/EnsembleBlocks.js:955 +#: js/blocks/EnsembleBlocks.js:1219 +#: js/blocks/EnsembleBlocks.js:1293 #.TRANS: Yertle is the name of a turtle. msgid "Yertle" msgstr "" -#: js/EnsembleBlocks.js:92 -#: js/EnsembleBlocks.js:1089 +#: js/blocks/EnsembleBlocks.js:92 +#: js/blocks/EnsembleBlocks.js:1089 msgid "turtle name" msgstr "" -#: js/EnsembleBlocks.js:122 -#: js/EnsembleBlocks.js:1197 -#: js/HeapBlocks.js:474 -#: js/HeapBlocks.js:572 +#: js/blocks/EnsembleBlocks.js:122 +#: js/blocks/EnsembleBlocks.js:1197 +#: js/blocks/HeapBlocks.js:474 +#: js/blocks/HeapBlocks.js:572 msgid "Index must be > 0." msgstr "" -#: js/EnsembleBlocks.js:127 -#: js/HeapBlocks.js:479 -#: js/HeapBlocks.js:577 +#: js/blocks/EnsembleBlocks.js:127 +#: js/blocks/HeapBlocks.js:479 +#: js/blocks/HeapBlocks.js:577 msgid "Maximum heap size is 1000." msgstr "" -#: js/EnsembleBlocks.js:145 +#: js/blocks/EnsembleBlocks.js:145 msgid "stop mouse" msgstr "" -#: js/EnsembleBlocks.js:147 +#: js/blocks/EnsembleBlocks.js:147 msgid "The Stop mouse block stops the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:158 +#: js/blocks/EnsembleBlocks.js:158 msgid "stop turtle" msgstr "" -#: js/EnsembleBlocks.js:160 +#: js/blocks/EnsembleBlocks.js:160 msgid "The Stop turtle block stops the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:184 -#: js/EnsembleBlocks.js:247 -#: js/EnsembleBlocks.js:413 -#: js/EnsembleBlocks.js:468 -#: js/EnsembleBlocks.js:706 -#: js/EnsembleBlocks.js:808 -#: js/EnsembleBlocks.js:870 -#: js/EnsembleBlocks.js:1190 -#: js/EnsembleBlocks.js:1253 +#: js/blocks/EnsembleBlocks.js:184 +#: js/blocks/EnsembleBlocks.js:247 +#: js/blocks/EnsembleBlocks.js:413 +#: js/blocks/EnsembleBlocks.js:468 +#: js/blocks/EnsembleBlocks.js:706 +#: js/blocks/EnsembleBlocks.js:808 +#: js/blocks/EnsembleBlocks.js:870 +#: js/blocks/EnsembleBlocks.js:1190 +#: js/blocks/EnsembleBlocks.js:1253 msgid "Cannot find mouse" msgstr "" -#: js/EnsembleBlocks.js:186 -#: js/EnsembleBlocks.js:249 -#: js/EnsembleBlocks.js:415 -#: js/EnsembleBlocks.js:470 -#: js/EnsembleBlocks.js:708 -#: js/EnsembleBlocks.js:810 -#: js/EnsembleBlocks.js:872 -#: js/EnsembleBlocks.js:1192 -#: js/EnsembleBlocks.js:1255 +#: js/blocks/EnsembleBlocks.js:186 +#: js/blocks/EnsembleBlocks.js:249 +#: js/blocks/EnsembleBlocks.js:415 +#: js/blocks/EnsembleBlocks.js:470 +#: js/blocks/EnsembleBlocks.js:708 +#: js/blocks/EnsembleBlocks.js:810 +#: js/blocks/EnsembleBlocks.js:872 +#: js/blocks/EnsembleBlocks.js:1192 +#: js/blocks/EnsembleBlocks.js:1255 msgid "Cannot find turtle" msgstr "" -#: js/EnsembleBlocks.js:206 +#: js/blocks/EnsembleBlocks.js:206 msgid "start mouse" msgstr "" -#: js/EnsembleBlocks.js:209 +#: js/blocks/EnsembleBlocks.js:209 msgid "The Start mouse block starts the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:220 +#: js/blocks/EnsembleBlocks.js:220 msgid "start turtle" msgstr "" -#: js/EnsembleBlocks.js:223 +#: js/blocks/EnsembleBlocks.js:223 msgid "The Start turtle block starts the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:256 +#: js/blocks/EnsembleBlocks.js:256 msgid "Mouse is already running." msgstr "" -#: js/EnsembleBlocks.js:258 +#: js/blocks/EnsembleBlocks.js:258 msgid "Turtle is already running." msgstr "" -#: js/EnsembleBlocks.js:282 +#: js/blocks/EnsembleBlocks.js:282 msgid "Cannot find start block" msgstr "" -#: js/EnsembleBlocks.js:292 +#: js/blocks/EnsembleBlocks.js:292 #.TRANS: pen color for this mouse msgid "mouse color" msgstr "" -#: js/EnsembleBlocks.js:294 +#: js/blocks/EnsembleBlocks.js:294 msgid "The Mouse color block returns the pen color of the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:306 +#: js/blocks/EnsembleBlocks.js:306 #.TRANS: pen color for this turtle msgid "turtle color" msgstr "" -#: js/EnsembleBlocks.js:308 +#: js/blocks/EnsembleBlocks.js:308 msgid "The Turtle color block returns the pen color of the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:338 +#: js/blocks/EnsembleBlocks.js:338 #.TRANS: heading (compass direction) for this mouse msgid "mouse heading" msgstr "" -#: js/EnsembleBlocks.js:340 +#: js/blocks/EnsembleBlocks.js:340 msgid "The Mouse heading block returns the heading of the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:352 +#: js/blocks/EnsembleBlocks.js:352 #.TRANS: heading (compass direction) for this turtle msgid "turtle heading" msgstr "" -#: js/EnsembleBlocks.js:354 +#: js/blocks/EnsembleBlocks.js:354 msgid "The Turtle heading block returns the heading of the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:384 -#: js/EnsembleBlocks.js:439 +#: js/blocks/EnsembleBlocks.js:384 +#: js/blocks/EnsembleBlocks.js:439 #.TRANS: set xy position for this mouse msgid "set mouse" msgstr "" -#: js/EnsembleBlocks.js:391 -#: js/EnsembleBlocks.js:402 -#: js/BoxesBlocks.js:595 -msgid "name1" -msgstr "" - -#: js/EnsembleBlocks.js:391 -#: js/EnsembleBlocks.js:402 -#: js/ProgramBlocks.js:881 -#: js/GraphicsBlocks.js:235 -#: js/GraphicsBlocks.js:313 -#: js/GraphicsBlocks.js:436 -#: js/GraphicsBlocks.js:487 -#: js/GraphicsBlocks.js:534 -#: js/GraphicsBlocks.js:750 +#: js/blocks/EnsembleBlocks.js:391 +#: js/blocks/EnsembleBlocks.js:402 +#: js/blocks/GraphicsBlocks.js:235 +#: js/blocks/GraphicsBlocks.js:313 +#: js/blocks/GraphicsBlocks.js:436 +#: js/blocks/GraphicsBlocks.js:487 +#: js/blocks/GraphicsBlocks.js:534 +#: js/blocks/GraphicsBlocks.js:750 +#: js/blocks/ProgramBlocks.js:881 msgid "x" msgstr "" -#: js/EnsembleBlocks.js:391 -#: js/EnsembleBlocks.js:402 -#: js/ProgramBlocks.js:881 -#: js/GraphicsBlocks.js:149 -#: js/GraphicsBlocks.js:313 -#: js/GraphicsBlocks.js:436 -#: js/GraphicsBlocks.js:487 -#: js/GraphicsBlocks.js:534 -#: js/GraphicsBlocks.js:750 +#: js/blocks/EnsembleBlocks.js:391 +#: js/blocks/EnsembleBlocks.js:402 +#: js/blocks/GraphicsBlocks.js:149 +#: js/blocks/GraphicsBlocks.js:313 +#: js/blocks/GraphicsBlocks.js:436 +#: js/blocks/GraphicsBlocks.js:487 +#: js/blocks/GraphicsBlocks.js:534 +#: js/blocks/GraphicsBlocks.js:750 +#: js/blocks/ProgramBlocks.js:881 msgid "y" msgstr "" -#: js/EnsembleBlocks.js:395 -#: js/EnsembleBlocks.js:452 +#: js/blocks/EnsembleBlocks.js:395 +#: js/blocks/EnsembleBlocks.js:452 #.TRANS: set xy position for this turtle msgid "set turtle" msgstr "" -#: js/EnsembleBlocks.js:433 +#: js/blocks/EnsembleBlocks.js:433 msgid "The Set mouse block sends a stack of blocks to be run by the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:446 +#: js/blocks/EnsembleBlocks.js:446 msgid "The Set turtle block sends a stack of blocks to be run by the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:480 +#: js/blocks/EnsembleBlocks.js:480 #.TRANS: y position for this mouse msgid "mouse y" msgstr "" -#: js/EnsembleBlocks.js:482 +#: js/blocks/EnsembleBlocks.js:482 msgid "The Y mouse block returns the Y position of the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:494 +#: js/blocks/EnsembleBlocks.js:494 #.TRANS: y position for this turtle msgid "turtle y" msgstr "" -#: js/EnsembleBlocks.js:496 +#: js/blocks/EnsembleBlocks.js:496 msgid "The Y turtle block returns the Y position of the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:526 +#: js/blocks/EnsembleBlocks.js:526 #.TRANS: x position for this mouse msgid "mouse x" msgstr "" -#: js/EnsembleBlocks.js:528 +#: js/blocks/EnsembleBlocks.js:528 msgid "The X mouse block returns the X position of the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:540 +#: js/blocks/EnsembleBlocks.js:540 #.TRANS: x position for this turtle msgid "turtle x" msgstr "" -#: js/EnsembleBlocks.js:542 +#: js/blocks/EnsembleBlocks.js:542 msgid "The X turtle block returns the X position of the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:573 +#: js/blocks/EnsembleBlocks.js:573 #.TRANS: notes played by this mouse msgid "mouse notes played" msgstr "" -#: js/EnsembleBlocks.js:575 +#: js/blocks/EnsembleBlocks.js:575 msgid "The Mouse elapse notes block returns the number of notes played by the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:587 +#: js/blocks/EnsembleBlocks.js:587 #.TRANS: notes played by this turtle msgid "turtle notes played" msgstr "" -#: js/EnsembleBlocks.js:589 +#: js/blocks/EnsembleBlocks.js:589 msgid "The Turtle elapse notes block returns the number of notes played by the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:627 +#: js/blocks/EnsembleBlocks.js:627 #.TRANS: convert current note for this turtle to piano key (1-88) msgid "mouse pitch number" msgstr "" -#: js/EnsembleBlocks.js:629 +#: js/blocks/EnsembleBlocks.js:629 msgid "The Mouse pitch block returns the current pitch number being played by the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:641 +#: js/blocks/EnsembleBlocks.js:641 #.TRANS: convert current note for this turtle to piano key (1-88) msgid "turtle pitch number" msgstr "" -#: js/EnsembleBlocks.js:643 -msgid "The Turrle pitch block returns the current pitch number being played by the specified turtle." +#: js/blocks/EnsembleBlocks.js:643 +msgid "The Turtle pitch block returns the current pitch number being played by the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:747 -#: js/EnsembleBlocks.js:819 +#: js/blocks/EnsembleBlocks.js:747 +#: js/blocks/EnsembleBlocks.js:819 #.TRANS: note value is the duration of the note played by this mouse msgid "mouse note value" msgstr "" -#: js/EnsembleBlocks.js:757 +#: js/blocks/EnsembleBlocks.js:757 #.TRANS: note value is the duration of the note played by this turtle msgid "turtle note value" msgstr "" -#: js/EnsembleBlocks.js:830 +#: js/blocks/EnsembleBlocks.js:830 #.TRANS: sync is short for synchronization msgid "mouse sync" msgstr "" -#: js/EnsembleBlocks.js:832 +#: js/blocks/EnsembleBlocks.js:832 msgid "The Mouse sync block aligns the beat count between mice." msgstr "" -#: js/EnsembleBlocks.js:844 +#: js/blocks/EnsembleBlocks.js:844 #.TRANS: sync is short for synchronization msgid "turtle sync" msgstr "" -#: js/EnsembleBlocks.js:846 +#: js/blocks/EnsembleBlocks.js:846 msgid "The Turtle sync block aligns the beat count between turtles." msgstr "" -#: js/EnsembleBlocks.js:887 +#: js/blocks/EnsembleBlocks.js:887 msgid "The Found mouse block will return true if the specified mouse can be found." msgstr "" -#: js/EnsembleBlocks.js:893 +#: js/blocks/EnsembleBlocks.js:893 msgid "found mouse" msgstr "" -#: js/EnsembleBlocks.js:903 +#: js/blocks/EnsembleBlocks.js:903 msgid "The Found turtle block will return true if the specified turtle can be found." msgstr "" -#: js/EnsembleBlocks.js:909 +#: js/blocks/EnsembleBlocks.js:909 msgid "found turtle" msgstr "" -#: js/EnsembleBlocks.js:932 +#: js/blocks/EnsembleBlocks.js:932 msgid "new mouse" msgstr "" -#: js/EnsembleBlocks.js:934 +#: js/blocks/EnsembleBlocks.js:934 msgid "The New mouse block will create a new mouse." msgstr "" -#: js/EnsembleBlocks.js:945 +#: js/blocks/EnsembleBlocks.js:945 msgid "new turtle" msgstr "" -#: js/EnsembleBlocks.js:947 +#: js/blocks/EnsembleBlocks.js:947 msgid "The New turtle block will create a new turtle." msgstr "" -#: js/EnsembleBlocks.js:1011 +#: js/blocks/EnsembleBlocks.js:1011 msgid "set mouse color" msgstr "" -#: js/EnsembleBlocks.js:1014 +#: js/blocks/EnsembleBlocks.js:1014 msgid "The Set-mouse-color block is used to set the color of a mouse." msgstr "" -#: js/EnsembleBlocks.js:1020 +#: js/blocks/EnsembleBlocks.js:1020 msgid "set turtle color" msgstr "" -#: js/EnsembleBlocks.js:1023 +#: js/blocks/EnsembleBlocks.js:1023 msgid "The Set-turtle-color block is used to set the color of a turtle." msgstr "" -#: js/EnsembleBlocks.js:1083 +#: js/blocks/EnsembleBlocks.js:1083 msgid "The Mouse-name block returns the name of a mouse." msgstr "" -#: js/EnsembleBlocks.js:1092 +#: js/blocks/EnsembleBlocks.js:1092 msgid "The Turtle-name block returns the name of a turtle." msgstr "" -#: js/EnsembleBlocks.js:1115 +#: js/blocks/EnsembleBlocks.js:1115 msgid "mouse count" msgstr "" -#: js/EnsembleBlocks.js:1118 +#: js/blocks/EnsembleBlocks.js:1118 msgid "The Mouse-count block returns the number of mice." msgstr "" -#: js/EnsembleBlocks.js:1124 +#: js/blocks/EnsembleBlocks.js:1124 msgid "turtle count" msgstr "" -#: js/EnsembleBlocks.js:1127 +#: js/blocks/EnsembleBlocks.js:1127 msgid "The Turtle-count block returns the number of turtles." msgstr "" -#: js/EnsembleBlocks.js:1149 +#: js/blocks/EnsembleBlocks.js:1149 msgid "nth mouse name" msgstr "" -#: js/EnsembleBlocks.js:1152 +#: js/blocks/EnsembleBlocks.js:1152 msgid "The Nth-Mouse name block returns the name of the nth mouse." msgstr "" -#: js/EnsembleBlocks.js:1158 +#: js/blocks/EnsembleBlocks.js:1158 msgid "nth turtle name" msgstr "" -#: js/EnsembleBlocks.js:1161 +#: js/blocks/EnsembleBlocks.js:1161 msgid "The Nth-Turtle name block returns the name of the nth turtle." msgstr "" -#: js/EnsembleBlocks.js:1205 -#: js/EnsembleBlocks.js:1265 +#: js/blocks/EnsembleBlocks.js:1205 +#: js/blocks/EnsembleBlocks.js:1265 msgid "set name" msgstr "" -#: js/EnsembleBlocks.js:1214 -#: js/EnsembleBlocks.js:1221 +#: js/blocks/EnsembleBlocks.js:1214 +#: js/blocks/EnsembleBlocks.js:1221 msgid "source" msgstr "" -#: js/EnsembleBlocks.js:1214 -#: js/EnsembleBlocks.js:1221 +#: js/blocks/EnsembleBlocks.js:1214 +#: js/blocks/EnsembleBlocks.js:1221 msgid "target" msgstr "" -#: js/EnsembleBlocks.js:1271 +#: js/blocks/EnsembleBlocks.js:1271 msgid "The Set-name block is used to name a mouse." msgstr "" -#: js/EnsembleBlocks.js:1284 +#: js/blocks/EnsembleBlocks.js:1284 msgid "The Set-name block is used to name a turtle." msgstr "" -#: js/BooleanBlocks.js:44 -msgid "The Not block is the logical not operator." -msgstr "" - -#: js/BooleanBlocks.js:62 -msgid "not" -msgstr "" - -#: js/BooleanBlocks.js:134 -msgid "The And block is the logical and operator." -msgstr "" - -#: js/BooleanBlocks.js:152 -msgid "and" -msgstr "" - -#: js/BooleanBlocks.js:218 -msgid "The Or block is the logical or operator." -msgstr "" - -#: js/BooleanBlocks.js:236 -msgid "or" -msgstr "" - -#: js/BooleanBlocks.js:302 -msgid "The XOR block is the logical XOR operator." -msgstr "" - -#: js/BooleanBlocks.js:320 -msgid "xor" -msgstr "" - -#: js/BooleanBlocks.js:808 -msgid "The Equal block returns True if the two numbers are equal." -msgstr "" - -#: js/BooleanBlocks.js:909 -msgid "The Not-equal-to block returns True if the two numbers are not equal to each other." -msgstr "" - -#: js/BooleanBlocks.js:1008 -msgid "The Boolean block is used to specify true or false." -msgstr "" - -#: js/MediaBlocks.js:35 -#.TRANS: right side of the screen -msgid "right (screen)" -msgstr "" - -#: js/MediaBlocks.js:45 -#: js/MediaBlocks.js:56 -msgid "The Right block returns the position of the right of the canvas." -msgstr "" - -#: js/MediaBlocks.js:97 -#.TRANS: left side of the screen -msgid "left (screen)" -msgstr "" - -#: js/MediaBlocks.js:107 -#: js/MediaBlocks.js:118 -msgid "The Left block returns the position of the left of the canvas." -msgstr "" - -#: js/MediaBlocks.js:158 -msgid "top (screen)" -msgstr "" - -#: js/MediaBlocks.js:168 -#: js/MediaBlocks.js:179 -msgid "The Top block returns the position of the top of the canvas." -msgstr "" - -#: js/MediaBlocks.js:219 -msgid "bottom (screen)" +#: js/blocks/ExtrasBlocks.js:33 +msgid "fraction" msgstr "" -#: js/MediaBlocks.js:229 -#: js/MediaBlocks.js:240 -msgid "The Bottom block returns the position of the bottom of the canvas." +#: js/blocks/ExtrasBlocks.js:36 +msgid "Convert a float to a fraction" msgstr "" -#: js/MediaBlocks.js:282 -msgid "width" +#: js/blocks/ExtrasBlocks.js:93 +msgid "save as ABC" msgstr "" -#: js/MediaBlocks.js:291 -msgid "The Width block returns the width of the canvas." +#: js/blocks/ExtrasBlocks.js:96 +#: js/blocks/ExtrasBlocks.js:132 +#: js/blocks/ExtrasBlocks.js:168 +msgid "title" msgstr "" -#: js/MediaBlocks.js:325 -msgid "height" +#: js/blocks/ExtrasBlocks.js:129 +msgid "save as Lilypond" msgstr "" -#: js/MediaBlocks.js:334 -msgid "The Height block returns the height of the canvas." +#: js/blocks/ExtrasBlocks.js:165 +msgid "save as SVG" msgstr "" -#: js/MediaBlocks.js:369 -#.TRANS: stops playback of an audio recording -msgid "stop play" +#: js/blocks/ExtrasBlocks.js:216 +msgid "no background" msgstr "" -#: js/MediaBlocks.js:404 -#.TRANS: Erases the images and text -msgid "erase media" +#: js/blocks/ExtrasBlocks.js:219 +msgid "The No background block eliminates the background from the saved SVG output." msgstr "" -#: js/MediaBlocks.js:409 -msgid "The Erase Media block erases text and images." +#: js/blocks/ExtrasBlocks.js:247 +msgid "show blocks" msgstr "" -#: js/MediaBlocks.js:439 -#.TRANS: play an audio recording -msgid "play back" +#: js/blocks/ExtrasBlocks.js:249 +msgid "The Show blocks block shows the blocks." msgstr "" -#: js/MediaBlocks.js:487 -msgid "speak" +#: js/blocks/ExtrasBlocks.js:274 +msgid "hide blocks" msgstr "" -#: js/MediaBlocks.js:495 -msgid "The Speak block outputs to the text-to-speech synthesizer" +#: js/blocks/ExtrasBlocks.js:276 +msgid "The Hide blocks block hides the blocks." msgstr "" -#: js/MediaBlocks.js:546 -msgid "camera" +#: js/blocks/ExtrasBlocks.js:305 +#: js/blocks/ExtrasBlocks.js:338 +msgid "The Space block is used to add space between blocks." msgstr "" -#: js/MediaBlocks.js:551 -msgid "The Camera block connects a webcam to the Show block." +#: js/blocks/ExtrasBlocks.js:376 +msgid "wait" msgstr "" -#: js/MediaBlocks.js:574 -msgid "video" +#: js/blocks/ExtrasBlocks.js:379 +msgid "The Wait block pauses the program for a specified number of seconds." msgstr "" -#: js/MediaBlocks.js:579 -msgid "The Video block selects video for use with the Show block." +#: js/blocks/ExtrasBlocks.js:433 +#: plugins/facebook.rtp:30 +msgid "comment" msgstr "" -#: js/MediaBlocks.js:607 -msgid "The Open file block opens a file for use with the Show block." +#: js/blocks/ExtrasBlocks.js:469 +msgid "print" msgstr "" -#: js/MediaBlocks.js:645 -msgid "stop media" +#: js/blocks/ExtrasBlocks.js:476 +msgid "The Print block displays text at the top of the screen." msgstr "" -#: js/MediaBlocks.js:650 -msgid "The Stop media block stops audio or video playback." +#: js/blocks/ExtrasBlocks.js:582 +msgid "display grid" msgstr "" -#: js/MediaBlocks.js:679 -#: js/PitchBlocks.js:1539 -#: js/phrasemaker.js:822 -#: js/musickeyboard.js:1654 -#.TRANS: a measure of frequency: one cycle per second -msgid "hertz" +#: js/blocks/ExtrasBlocks.js:587 +msgid "The Display Grid Block changes the grid type" msgstr "" -#: js/MediaBlocks.js:692 -msgid "duration (ms)" +#: js/blocks/ExtrasBlocks.js:689 +#: js/blocks/ExtrasBlocks.js:708 +#: js/blocks/ExtrasBlocks.js:731 +#: js/blocks/ExtrasBlocks.js:754 +#: js/blocks/ExtrasBlocks.js:772 +#: js/blocks/ExtrasBlocks.js:791 +#: js/blocks/ExtrasBlocks.js:810 +#: js/blocks/ExtrasBlocks.js:829 +msgid "unknown" msgstr "" -#: js/MediaBlocks.js:728 -#.TRANS: translate a note into hertz, e.g., A4 -> 440HZ -msgid "note to frequency" +#: js/blocks/FlowBlocks.js:41 +msgid "The Backward block runs code in reverse order (Musical retrograde)." msgstr "" -#: js/MediaBlocks.js:736 -msgid "The To frequency block converts a pitch name and octave to Hertz." +#: js/blocks/FlowBlocks.js:48 +msgid "backward" msgstr "" -#: js/MediaBlocks.js:746 -#: js/PitchBlocks.js:656 -#: js/PitchBlocks.js:932 -#: js/PitchBlocks.js:1827 -#.TRANS: name2 is name as in name of pitch (JAPANESE ONLY) -msgid "name2" +#: js/blocks/FlowBlocks.js:124 +msgid "The Duplicate block will run each block multiple times." msgstr "" -#: js/MediaBlocks.js:812 -msgid "The Avatar block is used to change the appearance of the mouse." +#: js/blocks/FlowBlocks.js:136 +msgid "duplicate" msgstr "" -#: js/MediaBlocks.js:819 -msgid "The Avatar block is used to change the appearance of the turtle." +#: js/blocks/FlowBlocks.js:334 +msgid "The Default block is used inside of a Switch to define the default action." msgstr "" -#: js/MediaBlocks.js:831 -#: js/MediaBlocks.js:891 -#.TRANS: a media object -msgid "size" +#: js/blocks/FlowBlocks.js:342 +msgid "default" msgstr "" -#: js/MediaBlocks.js:831 -msgid "image" +#: js/blocks/FlowBlocks.js:361 +#: js/blocks/FlowBlocks.js:418 +msgid "The Case Block must be used inside of a Switch Block." msgstr "" -#: js/MediaBlocks.js:880 -msgid "The Show block is used to display text or images on the canvas." +#: js/blocks/FlowBlocks.js:389 +msgid "The Case block is used inside of a Switch to define matches." msgstr "" -#: js/MediaBlocks.js:888 -#.TRANS: show1 is show as in display an image or text on the screen. -msgid "show1" +#: js/blocks/FlowBlocks.js:397 +msgid "case" msgstr "" -#: js/MediaBlocks.js:891 -msgid "obj" +#: js/blocks/FlowBlocks.js:446 +msgid "The Switch block will run the code in the matching Case." msgstr "" -#: js/MediaBlocks.js:938 -msgid "The Media block is used to import an image." +#: js/blocks/FlowBlocks.js:454 +msgid "switch" msgstr "" -#: js/MediaBlocks.js:973 -msgid "The Text block holds a text string." +#: js/blocks/FlowBlocks.js:595 +msgid "The Stop block will stop a loop" msgstr "" -#: js/ProgramBlocks.js:33 -msgid "The Load-heap-from-app block loads the heap from a web page." +#: js/blocks/FlowBlocks.js:597 +msgid "Forever, Repeat, While, or Until." msgstr "" -#: js/ProgramBlocks.js:44 -#.TRANS: load the heap contents from a URL -msgid "load heap from App" +#: js/blocks/FlowBlocks.js:604 +#: js/widgets/timbre.js:417 +#: js/widgets/timbre.js:419 +#: js/widgets/musickeyboard.js:819 +#: js/widgets/musickeyboard.js:821 +#: js/widgets/phrasemaker.js:4202 +#: plugins/rodi.rtp:29 +#: plugins/rodi.rtp:73 +#: plugins/rodi.rtp:413 +msgid "stop" msgstr "" -#: js/ProgramBlocks.js:95 -msgid "Error parsing JSON data:" +#: js/blocks/FlowBlocks.js:653 +msgid "The Waitfor block will wait until the condition is true." msgstr "" -#: js/ProgramBlocks.js:100 -msgid "404: Page not found" +#: js/blocks/FlowBlocks.js:661 +msgid "wait for" msgstr "" -#: js/ProgramBlocks.js:133 -msgid "The Save-heap-to-app block saves the heap to a web page." +#: js/blocks/FlowBlocks.js:732 +msgid "The Until block will repeat until the condition is true." msgstr "" -#: js/ProgramBlocks.js:144 -#.TRANS: save the heap contents to a URL -msgid "save heap to App" +#: js/blocks/FlowBlocks.js:740 +msgid "until" msgstr "" -#: js/ProgramBlocks.js:189 -msgid "Cannot find a valid heap for" +#: js/blocks/FlowBlocks.js:742 +#: js/blocks/FlowBlocks.js:822 +msgid "do2" msgstr "" -#: js/ProgramBlocks.js:206 -msgid "The Load-heap block loads the heap from a file." +#: js/blocks/FlowBlocks.js:812 +msgid "The While block will repeat while the condition is true." msgstr "" -#: js/ProgramBlocks.js:217 -#.TRANS: load the heap from a file -msgid "load heap" +#: js/blocks/FlowBlocks.js:820 +msgid "while" msgstr "" -#: js/ProgramBlocks.js:270 -msgid "The file you selected does not contain a valid heap." +#: js/blocks/FlowBlocks.js:903 +#: js/blocks/FlowBlocks.js:968 +#: js/blocks/FlowBlocks.js:979 +msgid "In this example if the mouse button is pressed a snare drum will play." msgstr "" -#: js/ProgramBlocks.js:275 -msgid "The loadHeap block needs a loadFile block." +#: js/blocks/FlowBlocks.js:925 +#: js/blocks/FlowBlocks.js:988 +msgid "if" msgstr "" -#: js/ProgramBlocks.js:291 -msgid "The Set-heap block loads the heap." +#: js/blocks/FlowBlocks.js:927 +#: js/blocks/FlowBlocks.js:990 +msgid "then" msgstr "" -#: js/ProgramBlocks.js:299 -#: js/HeapBlocks.js:539 -#.TRANS: load the heap from a JSON encoding -msgid "set heap" +#: js/blocks/FlowBlocks.js:927 +msgid "else" msgstr "" -#: js/ProgramBlocks.js:340 -msgid "The block you selected does not contain a valid heap." +#: js/blocks/FlowBlocks.js:1025 +msgid "The Forever block will repeat the contained blocks forever." msgstr "" -#: js/ProgramBlocks.js:343 -msgid "The Set heap block needs a heap." +#: js/blocks/FlowBlocks.js:1037 +msgid "forever" msgstr "" -#: js/ProgramBlocks.js:360 -msgid "The Load-dictionary block loads a dictionary from a file." +#: js/blocks/FlowBlocks.js:1073 +msgid "The Repeat block will repeat the contained blocks." msgstr "" -#: js/ProgramBlocks.js:372 -#.TRANS: load a dictionary from a file -msgid "load dictionary" +#: js/blocks/FlowBlocks.js:1075 +msgid "In this example the note will be played 4 times." msgstr "" -#: js/ProgramBlocks.js:390 -#: js/ProgramBlocks.js:658 -#: js/ToneBlocks.js:1025 -msgid "file" +#: js/blocks/FlowBlocks.js:1083 +msgid "repeat" msgstr "" -#: js/ProgramBlocks.js:396 -#: js/ProgramBlocks.js:501 -#: js/ProgramBlocks.js:664 -#: js/DictBlocks.js:80 -#: js/DictBlocks.js:145 -#: js/DictBlocks.js:216 -#: js/DictBlocks.js:290 -msgid "My Dictionary" +#: js/blocks/FlowBlocks.js:1123 +msgid "duplicate factor" msgstr "" -#: js/ProgramBlocks.js:444 -msgid "The file you selected does not contain a valid dictionary." +#: js/blocks/HeapBlocks.js:49 +msgid "The Heap block returns the heap." msgstr "" -#: js/ProgramBlocks.js:449 -msgid "The load dictionary block needs a load file block." +#: js/blocks/HeapBlocks.js:133 +msgid "show heap" msgstr "" -#: js/ProgramBlocks.js:466 -msgid "The Set-dictionary block loads a dictionary." +#: js/blocks/HeapBlocks.js:181 +msgid "The Heap-length block returns the length of the heap." msgstr "" -#: js/ProgramBlocks.js:477 -#.TRANS: load a dictionary from a JSON -msgid "set dictionary" +#: js/blocks/HeapBlocks.js:195 +msgid "heap length" msgstr "" -#: js/ProgramBlocks.js:546 -msgid "The block you selected does not contain a valid dictionary." +#: js/blocks/HeapBlocks.js:254 +msgid "The Heap-empty? block returns true if the heap is empty." msgstr "" -#: js/ProgramBlocks.js:550 -msgid "The set dictionary block needs a dictionary." +#: js/blocks/HeapBlocks.js:268 +#.TRANS: Is the heap empty? +msgid "heap empty?" msgstr "" -#: js/ProgramBlocks.js:567 -msgid "The Save-heap block saves the heap to a file." +#: js/blocks/HeapBlocks.js:317 +msgid "The Empty-heap block empties the heap." msgstr "" -#: js/ProgramBlocks.js:578 -#.TRANS: save the heap to a file -msgid "save heap" +#: js/blocks/HeapBlocks.js:327 +#: js/blocks/HeapBlocks.js:647 +#.TRANS: empty the heap +msgid "empty heap" msgstr "" -#: js/ProgramBlocks.js:629 -msgid "The Save-dictionary block saves a dictionary to a file." +#: js/blocks/HeapBlocks.js:371 +msgid "The Reverse-heap block reverses the order of the heap." msgstr "" -#: js/ProgramBlocks.js:640 -#.TRANS: save a dictionary to a file -msgid "save dictionary" +#: js/blocks/HeapBlocks.js:384 +#.TRANS: reverse the order of the heap +msgid "reverse heap" msgstr "" -#: js/ProgramBlocks.js:720 -msgid "The Open palette block opens a palette." +#: js/blocks/HeapBlocks.js:428 +msgid "The Index-heap block returns a value in the heap at a specified location." msgstr "" -#: js/ProgramBlocks.js:727 -msgid "open palette" +#: js/blocks/HeapBlocks.js:443 +#.TRANS: retrieve a value from the heap at index position in the heap +msgid "index heap" msgstr "" -#: js/ProgramBlocks.js:785 -msgid "The Delete block block removes a block." +#: js/blocks/HeapBlocks.js:523 +msgid "The Set-heap entry block sets a value in he heap at the specified location." msgstr "" -#: js/ProgramBlocks.js:797 -#.TRANS: Move this block to the trash. -msgid "delete block" +#: js/blocks/HeapBlocks.js:539 +#: js/blocks/ProgramBlocks.js:299 +#.TRANS: load the heap from a JSON encoding +msgid "set heap" msgstr "" -#: js/ProgramBlocks.js:861 -msgid "The Move block block moves a block." +#: js/blocks/HeapBlocks.js:619 +msgid "The Pop block removes the value at the top of the heap." msgstr "" -#: js/ProgramBlocks.js:869 -#.TRANS: Move the position of a block on the screen. -msgid "move block" +#: js/blocks/HeapBlocks.js:633 +#.TRANS: pop a value off the top of the heap +msgid "pop" msgstr "" -#: js/ProgramBlocks.js:881 -#: js/ProgramBlocks.js:1048 -msgid "block number" +#: js/blocks/HeapBlocks.js:680 +msgid "The Push block adds a value to the top of the heap." msgstr "" -#: js/ProgramBlocks.js:935 -#.TRANS: Run program beginning at this block. -msgid "run block" +#: js/blocks/HeapBlocks.js:696 +#.TRANS: push a value onto the top of the heap +msgid "push" msgstr "" -#: js/ProgramBlocks.js:1025 -msgid "The Dock block block connections two blocks." +#: js/blocks/IntervalsBlocks.js:45 +msgid "set temperament" msgstr "" -#: js/ProgramBlocks.js:1036 -#.TRANS: We can connect a block to another block. -msgid "connect blocks" +#: js/blocks/IntervalsBlocks.js:63 +#: js/blocks/MediaBlocks.js:746 +#: js/blocks/PitchBlocks.js:657 +#: js/blocks/PitchBlocks.js:935 +#: js/blocks/PitchBlocks.js:974 +#: js/blocks/PitchBlocks.js:1007 +#: js/blocks/PitchBlocks.js:1194 +#: js/blocks/PitchBlocks.js:1717 +#: js/blocks/PitchBlocks.js:1758 +#: js/blocks/PitchBlocks.js:1866 +#: js/blocks/ToneBlocks.js:1025 +#: js/turtleactions/IntervalsActions.js:114 +#.TRANS: adjusts the shift up or down by one octave (twelve half-steps in the interval between two notes, one having twice or half the frequency in Hz of the other.) +msgid "octave" msgstr "" -#: js/ProgramBlocks.js:1048 -msgid "target block" +#: js/blocks/IntervalsBlocks.js:99 +msgid "The Temperament name block is used to select a tuning method." msgstr "" -#: js/ProgramBlocks.js:1048 -msgid "connection number" +#: js/blocks/IntervalsBlocks.js:161 +msgid "doubly" msgstr "" -#: js/ProgramBlocks.js:1140 -msgid "The Make block block creates a new block." +#: js/blocks/IntervalsBlocks.js:166 +msgid "The Doubly block will double the size of an interval." msgstr "" -#: js/ProgramBlocks.js:1152 -#.TRANS: Create a new block -msgid "make block" +#: js/blocks/IntervalsBlocks.js:262 +msgid "interval number" msgstr "" -#: js/ProgramBlocks.js:1186 -#: js/ProgramBlocks.js:1227 -#: js/RhythmBlocks.js:1128 -#: js/PitchBlocks.js:972 -#: js/PitchBlocks.js:1005 -#: js/temperament.js:340 -#: js/temperament.js:362 -#: js/temperament.js:372 -#: js/temperament.js:484 -#: js/status.js:190 -#: plugins/rodi.rtp:192 -#.TRANS: a musical note consisting of pitch and duration -msgid "note" +#: js/blocks/IntervalsBlocks.js:317 +msgid "current interval" msgstr "" -#: js/ProgramBlocks.js:1285 -msgid "Cannot find block" +#: js/blocks/IntervalsBlocks.js:387 +#.TRANS: measure the distance between two pitches in semi-tones +msgid "semi-tone interval measure" msgstr "" -#: js/ProgramBlocks.js:1304 -#: js/ProgramBlocks.js:1313 -msgid "Warning: block argument type mismatch" +#: js/blocks/IntervalsBlocks.js:454 +#: js/blocks/IntervalsBlocks.js:570 +msgid "You must use two pitch blocks when measuring an interval." msgstr "" -#: js/ProgramBlocks.js:1347 -msgid "The Open project block is used to open a project from a web page." +#: js/blocks/IntervalsBlocks.js:496 +msgid "The Scalar interval block measures the distance between two notes in the current key and mode." msgstr "" -#: js/ProgramBlocks.js:1357 -msgid "open project" +#: js/blocks/IntervalsBlocks.js:502 +#.TRANS: measure the distance between two pitches in steps of musical scale +msgid "scalar interval measure" msgstr "" -#: js/ProgramBlocks.js:1410 -msgid "Please enter a valid URL." +#: js/blocks/IntervalsBlocks.js:678 +msgid "In the figure, we add sol# to sol." msgstr "" -#: js/DrumBlocks.js:59 -msgid "The Noise name block is used to select a noise synthesizer." +#: js/blocks/IntervalsBlocks.js:684 +#: js/blocks/OrnamentBlocks.js:220 +#.TRANS: calculate a relative step between notes based on semi-tones +msgid "semi-tone interval" msgstr "" -#: js/DrumBlocks.js:102 -msgid "The Drum name block is used to select a drum." +#: js/blocks/IntervalsBlocks.js:733 +msgid "The output of the example is: do, mi, sol, sol, ti, mi" msgstr "" -#: js/DrumBlocks.js:146 -msgid "The Effects name block is used to select a sound effect." +#: js/blocks/IntervalsBlocks.js:740 +#: js/blocks/WidgetBlocks.js:768 +msgid "arpeggio" msgstr "" -#: js/DrumBlocks.js:163 -msgid "noise" +#: js/blocks/IntervalsBlocks.js:931 +msgid "The Chord block calculates common chords." msgstr "" -#: js/DrumBlocks.js:177 -msgid "The Play noise block will generate white, pink, or brown noise." +#: js/blocks/IntervalsBlocks.js:933 +msgid "In the figure, we generate a C-major chord." msgstr "" -#: js/DrumBlocks.js:191 -#: js/musicutils.js:752 -#: js/synthutils.js:47 -#.TRANS: white noise synthesizer -msgid "white noise" +#: js/blocks/IntervalsBlocks.js:938 +msgid "chord" msgstr "" -#: js/DrumBlocks.js:326 -msgid "Replace every instance of a pitch with a drum sound." +#: js/blocks/IntervalsBlocks.js:990 +msgid "The Ratio Interval block calculates an interval based on a ratio." msgstr "" -#: js/DrumBlocks.js:337 -#.TRANS: map a pitch to a drum sound -msgid "map pitch to drum" +#: js/blocks/IntervalsBlocks.js:995 +msgid "ratio interval" msgstr "" -#: js/DrumBlocks.js:404 -msgid "In the example above, a kick drum sound will be played instead of sol." +#: js/blocks/IntervalsBlocks.js:1064 +msgid "In the figure, we add la to sol." msgstr "" -#: js/DrumBlocks.js:416 -#.TRANS: set the current drum sound for playback -msgid "set drum" +#: js/blocks/IntervalsBlocks.js:1120 +#.TRANS: define a custom mode +msgid "define mode" msgstr "" -#: js/DrumBlocks.js:460 -msgid "sound effect" +#: js/blocks/IntervalsBlocks.js:1173 +msgid "movable Do" msgstr "" -#: js/DrumBlocks.js:498 -msgid "You can use multiple Drum blocks within a Note block." +#: js/blocks/IntervalsBlocks.js:1224 +#.TRANS: mode length is the number of notes in the mode, e.g., 7 for major and minor scales; 12 for chromatic scales +msgid "mode length" msgstr "" -#: js/RhythmBlocks.js:182 -#: js/RhythmBlocks.js:1086 -#: js/RhythmBlocks.js:1162 -msgid "Note value must be greater than 0." +#: js/blocks/IntervalsBlocks.js:1233 +msgid "The Mode length block is the number of notes in the current scale." msgstr "" -#: js/RhythmBlocks.js:215 -#: js/RhythmBlocks.js:278 -#: js/RhythmBlocks.js:350 -#.TRANS: swing is a rhythmic variation that emphasises the offbeat -msgid "swing" +#: js/blocks/IntervalsBlocks.js:1235 +msgid "Most Western scales have 7 notes." msgstr "" -#: js/RhythmBlocks.js:355 -#.TRANS: the amount to shift to the offbeat note -msgid "swing value" +#: js/blocks/IntervalsBlocks.js:1284 +#.TRANS: the mode in music is 'major', 'minor', etc. +msgid "current mode" msgstr "" -#: js/RhythmBlocks.js:419 -msgid "The Skip notes block will cause notes to be skipped." +#: js/blocks/IntervalsBlocks.js:1337 +#.TRANS: the key is a group of pitches with which a music composition is created +msgid "current key" msgstr "" -#: js/RhythmBlocks.js:427 -#.TRANS: substitute rests on notes being skipped -msgid "skip notes" +#: js/blocks/IntervalsBlocks.js:1389 +#: js/blocks/IntervalsBlocks.js:1434 +#.TRANS: set the key and mode, e.g. C Major +msgid "set key" msgstr "" -#: js/RhythmBlocks.js:489 -#.TRANS: speed up note duration by some factor, e.g. convert 1/4 to 1/8 notes by using a factor of 2 -msgid "multiply note value" +#: js/blocks/IntervalsBlocks.js:1443 +#: js/blocks/IntervalsBlocks.js:1449 +msgid "The Set key block is used to set the key and mode," msgstr "" -#: js/RhythmBlocks.js:542 -msgid "The Tie block works on pairs of notes, combining them into one note." +#: js/blocks/IntervalsBlocks.js:1449 +msgid "eg C Major" msgstr "" -#: js/RhythmBlocks.js:550 -#.TRANS: tie notes together into one longer note -msgid "tie" +#: js/blocks/MediaBlocks.js:35 +#.TRANS: right side of the screen +msgid "right (screen)" msgstr "" -#: js/RhythmBlocks.js:591 -#: js/RhythmBlocks.js:671 -#.TRANS: a dotted note is played for 1.5x its value, e.g., 1/8. --> 3/16 -msgid "dot" +#: js/blocks/MediaBlocks.js:45 +#: js/blocks/MediaBlocks.js:56 +msgid "The Right block returns the position of the right of the canvas." msgstr "" -#: js/RhythmBlocks.js:619 -#: js/RhythmActions.js:221 -msgid "An argument of -1 results in a note value of 0." +#: js/blocks/MediaBlocks.js:97 +#.TRANS: left side of the screen +msgid "left (screen)" msgstr "" -#: js/RhythmBlocks.js:661 -msgid "The Dot block extends the duration of a note by 50%." +#: js/blocks/MediaBlocks.js:107 +#: js/blocks/MediaBlocks.js:118 +msgid "The Left block returns the position of the left of the canvas." msgstr "" -#: js/RhythmBlocks.js:663 -msgid "Eg a dotted quarter note will play for 3/8 (1/4 + 1/8) of a beat." +#: js/blocks/MediaBlocks.js:158 +msgid "top (screen)" msgstr "" -#: js/RhythmBlocks.js:765 -#.TRANS: Japanese only: note value block for drum -msgid "note value drum" +#: js/blocks/MediaBlocks.js:168 +#: js/blocks/MediaBlocks.js:179 +msgid "The Top block returns the position of the top of the canvas." msgstr "" -#: js/RhythmBlocks.js:829 -msgid "392 hertz" +#: js/blocks/MediaBlocks.js:219 +msgid "bottom (screen)" msgstr "" -#: js/RhythmBlocks.js:1119 -msgid "The Note block is a container for one or more Pitch blocks." +#: js/blocks/MediaBlocks.js:229 +#: js/blocks/MediaBlocks.js:240 +msgid "The Bottom block returns the position of the bottom of the canvas." msgstr "" -#: js/RhythmBlocks.js:1121 -msgid "The Note block specifies the duration (note value) of its contents." +#: js/blocks/MediaBlocks.js:282 +msgid "width" msgstr "" -#: js/RhythmBlocks.js:1130 -msgid "value2" +#: js/blocks/MediaBlocks.js:291 +msgid "The Width block returns the width of the canvas." msgstr "" -#: js/RhythmBlocks.js:1200 -msgid "define frequency" +#: js/blocks/MediaBlocks.js:325 +msgid "height" msgstr "" -#: js/RhythmBlocks.js:1218 -#: js/temperament.js:650 -#: js/temperament.js:1421 -msgid "octave space" +#: js/blocks/MediaBlocks.js:334 +msgid "The Height block returns the height of the canvas." msgstr "" -#: js/NumberBlocks.js:28 -msgid "The Int block returns an integer." +#: js/blocks/MediaBlocks.js:369 +#.TRANS: stops playback of an audio recording +msgid "stop play" msgstr "" -#: js/NumberBlocks.js:34 -msgid "int" +#: js/blocks/MediaBlocks.js:404 +#.TRANS: Erases the images and text +msgid "erase media" msgstr "" -#: js/NumberBlocks.js:73 -msgid "The Mod block returns the remainder from a division." +#: js/blocks/MediaBlocks.js:409 +msgid "The Erase Media block erases text and images." msgstr "" -#: js/NumberBlocks.js:79 -msgid "mod" +#: js/blocks/MediaBlocks.js:439 +#.TRANS: play an audio recording +msgid "play back" msgstr "" -#: js/NumberBlocks.js:123 -msgid "The Power block calculates a power function." +#: js/blocks/MediaBlocks.js:487 +msgid "speak" msgstr "" -#: js/NumberBlocks.js:178 -msgid "The Sqrt block returns the square root." +#: js/blocks/MediaBlocks.js:495 +msgid "The Speak block outputs to the text-to-speech synthesizer" msgstr "" -#: js/NumberBlocks.js:184 -msgid "sqrt" +#: js/blocks/MediaBlocks.js:546 +msgid "camera" msgstr "" -#: js/NumberBlocks.js:230 -msgid "The Abs block returns the absolute value." +#: js/blocks/MediaBlocks.js:551 +msgid "The Camera block connects a webcam to the Show block." msgstr "" -#: js/NumberBlocks.js:236 -msgid "abs" +#: js/blocks/MediaBlocks.js:574 +msgid "video" msgstr "" -#: js/NumberBlocks.js:277 -msgid "The Distance block returns the distance between two points. For example, between the mouse and the center of the screen." +#: js/blocks/MediaBlocks.js:579 +msgid "The Video block selects video for use with the Show block." msgstr "" -#: js/NumberBlocks.js:283 -#: plugins/rodi.rtp:310 -msgid "distance" +#: js/blocks/MediaBlocks.js:607 +msgid "The Open file block opens a file for use with the Show block." msgstr "" -#: js/NumberBlocks.js:343 -msgid "The Divide block is used to divide." +#: js/blocks/MediaBlocks.js:645 +msgid "stop media" msgstr "" -#: js/NumberBlocks.js:411 -msgid "The Multiply block is used to multiply." +#: js/blocks/MediaBlocks.js:650 +msgid "The Stop media block stops audio or video playback." msgstr "" -#: js/NumberBlocks.js:554 -msgid "The Minus block is used to subtract." +#: js/blocks/MediaBlocks.js:679 +#: js/blocks/PitchBlocks.js:1577 +#: js/widgets/musickeyboard.js:1936 +#: js/widgets/phrasemaker.js:1037 +#.TRANS: a measure of frequency: one cycle per second +msgid "hertz" msgstr "" -#: js/NumberBlocks.js:647 -msgid "The Plus block is used to add." +#: js/blocks/MediaBlocks.js:692 +#: js/blocks/WidgetBlocks.js:182 +#: js/widgets/temperament.js:506 +#: js/widgets/temperament.js:546 +#: js/widgets/temperament.js:610 +#: js/widgets/temperament.js:618 +#: js/widgets/temperament.js:1505 +#: js/widgets/timbre.js:1842 +msgid "frequency" msgstr "" -#: js/NumberBlocks.js:773 -msgid "The One-of block returns one of two choices." +#: js/blocks/MediaBlocks.js:692 +msgid "duration (ms)" msgstr "" -#: js/NumberBlocks.js:780 -#: js/PitchBlocks.js:616 -msgid "one of" +#: js/blocks/MediaBlocks.js:728 +#.TRANS: translate a note into hertz, e.g., A4 -> 440HZ +msgid "note to frequency" msgstr "" -#: js/NumberBlocks.js:782 -msgid "this" +#: js/blocks/MediaBlocks.js:736 +msgid "The To frequency block converts a pitch name and octave to Hertz." msgstr "" -#: js/NumberBlocks.js:782 -msgid "that" +#: js/blocks/MediaBlocks.js:746 +#: js/blocks/PitchBlocks.js:656 +#: js/blocks/PitchBlocks.js:934 +#: js/blocks/PitchBlocks.js:1866 +#.TRANS: name2 is name as in name of pitch (JAPANESE ONLY) +msgid "name2" msgstr "" -#: js/NumberBlocks.js:837 -msgid "The Random block returns a random number." +#: js/blocks/MediaBlocks.js:812 +msgid "The Avatar block is used to change the appearance of the mouse." msgstr "" -#: js/NumberBlocks.js:844 -msgid "random" +#: js/blocks/MediaBlocks.js:819 +msgid "The Avatar block is used to change the appearance of the turtle." msgstr "" -#: js/NumberBlocks.js:846 -msgid "min" +#: js/blocks/MediaBlocks.js:831 +#: js/blocks/MediaBlocks.js:891 +#.TRANS: a media object +msgid "size" msgstr "" -#: js/NumberBlocks.js:846 -msgid "max" +#: js/blocks/MediaBlocks.js:831 +msgid "image" msgstr "" -#: js/NumberBlocks.js:910 -msgid "The Number block holds a number." +#: js/blocks/MediaBlocks.js:880 +msgid "The Show block is used to display text or images on the canvas." msgstr "" -#: js/BoxesBlocks.js:53 -#: js/BoxesBlocks.js:59 -msgid "The Add-to block is used to add to the value stored in a box." +#: js/blocks/MediaBlocks.js:888 +#.TRANS: show1 is show as in display an image or text on the screen. +msgid "show1" msgstr "" -#: js/BoxesBlocks.js:61 -msgid "It can also be used with other blocks such as Color and Pen size." +#: js/blocks/MediaBlocks.js:891 +msgid "obj" msgstr "" -#: js/BoxesBlocks.js:73 -msgid "add" +#: js/blocks/MediaBlocks.js:938 +msgid "The Media block is used to import an image." msgstr "" -#: js/BoxesBlocks.js:75 -#: js/temperament.js:716 -msgid "to" +#: js/blocks/MediaBlocks.js:973 +msgid "The Text block holds a text string." msgstr "" -#: js/BoxesBlocks.js:75 -#: js/BoxesBlocks.js:595 -#: js/HeapBlocks.js:544 -msgid "value1" +#: js/blocks/MeterBlocks.js:34 +#.TRANS: musical meter (time signature), e.g., 4:4 +msgid "current meter" msgstr "" -#: js/BoxesBlocks.js:118 -msgid "Block does not support incrementing." +#: js/blocks/MeterBlocks.js:85 +#.TRANS: number of beats per minute +msgid "beat factor" msgstr "" -#: js/BoxesBlocks.js:152 -msgid "The Add-1-to block adds one to the value stored in a box." +#: js/blocks/MeterBlocks.js:161 +msgid "The Beats per minute block returns the current beats per minute." msgstr "" -#: js/BoxesBlocks.js:163 -msgid "add 1 to" +#: js/blocks/MeterBlocks.js:169 +#: js/widgets/status.js:152 +#.TRANS: number of beats played per minute +msgid "beats per minute2" msgstr "" -#: js/BoxesBlocks.js:211 -msgid "The Subtract-1-from block subtracts one from the value stored in a box." +#: js/blocks/MeterBlocks.js:169 +#: js/blocks/MeterBlocks.js:1056 +#: js/blocks/MeterBlocks.js:1133 +#: js/blocks/MeterBlocks.js:1211 +#.TRANS: sets tempo by defining a beat and beats per minute +msgid "beats per minute" msgstr "" -#: js/BoxesBlocks.js:222 -msgid "subtract 1 from" +#: js/blocks/MeterBlocks.js:233 +#.TRANS: count of current musical measure in meter +msgid "measure count" msgstr "" -#: js/BoxesBlocks.js:270 -#: js/BoxesBlocks.js:387 -msgid "The Box block returns the value stored in a box." +#: js/blocks/MeterBlocks.js:241 +msgid "The Measure count block returns the current measure." msgstr "" -#: js/BoxesBlocks.js:500 -#: js/BoxesBlocks.js:576 -msgid "The Store in block will store a value in a box." +#: js/blocks/MeterBlocks.js:290 +#.TRANS: count of current beat in the meter +msgid "beat count" msgstr "" -#: js/BoxesBlocks.js:652 -msgid "The Box2 block returns the value stored in Box2." +#: js/blocks/MeterBlocks.js:300 +#: js/blocks/MeterBlocks.js:311 +#: js/blocks/MeterBlocks.js:565 +#: js/blocks/MeterBlocks.js:576 +msgid "The Beat count block is the number of the current beat," msgstr "" -#: js/BoxesBlocks.js:703 -msgid "The Store in Box2 block is used to store a value in Box2." +#: js/blocks/MeterBlocks.js:313 +#: js/blocks/MeterBlocks.js:578 +msgid "eg 1, 2, 3, or 4." msgstr "" -#: js/BoxesBlocks.js:715 -msgid "store in box2" +#: js/blocks/MeterBlocks.js:368 +#.TRANS: count the number of notes +msgid "sum note values" msgstr "" -#: js/BoxesBlocks.js:761 -msgid "The Box1 block returns the value stored in Box1." +#: js/blocks/MeterBlocks.js:376 +#: js/blocks/MeterBlocks.js:440 +msgid "The Note counter block can be used to count the number of contained notes." msgstr "" -#: js/BoxesBlocks.js:812 -msgid "The Store in Box1 block is used to store a value in Box1." +#: js/blocks/MeterBlocks.js:432 +#.TRANS: count the number of notes +msgid "note counter" msgstr "" -#: js/BoxesBlocks.js:826 -msgid "store in box1" +#: js/blocks/MeterBlocks.js:496 +#.TRANS: number of whole notes that have been played +msgid "whole notes played" msgstr "" -#: js/HeapBlocks.js:49 -msgid "The Heap block returns the heap." +#: js/blocks/MeterBlocks.js:505 +msgid "The Whole notes played block returns the total number of whole notes played." msgstr "" -#: js/HeapBlocks.js:133 -msgid "show heap" +#: js/blocks/MeterBlocks.js:555 +#: js/turtleactions/DictActions.js:83 +#.TRANS: number of notes that have been played +msgid "notes played" msgstr "" -#: js/HeapBlocks.js:181 -msgid "The Heap-length block returns the length of the heap." +#: js/blocks/MeterBlocks.js:653 +msgid "The No clock block decouples the notes from the master clock." msgstr "" -#: js/HeapBlocks.js:195 -msgid "heap length" +#: js/blocks/MeterBlocks.js:661 +#.TRANS: don't lock notes to master clock +msgid "no clock" msgstr "" -#: js/HeapBlocks.js:254 -msgid "The Heap-empty? block returns true if the heap is empty." +#: js/blocks/MeterBlocks.js:700 +msgid "on weak beat do" msgstr "" -#: js/HeapBlocks.js:268 -#.TRANS: Is the heap empty? -msgid "heap empty?" +#: js/blocks/MeterBlocks.js:705 +msgid "The On-weak-beat block lets you specify actions to take on weak (off) beats." msgstr "" -#: js/HeapBlocks.js:317 -msgid "The Empty-heap block empties the heap." +#: js/blocks/MeterBlocks.js:750 +msgid "on strong beat" msgstr "" -#: js/HeapBlocks.js:327 -#: js/HeapBlocks.js:647 -#.TRANS: empty the heap -msgid "empty heap" +#: js/blocks/MeterBlocks.js:758 +msgid "The On-strong-beat block lets you specify actions to take on specified beats." msgstr "" -#: js/HeapBlocks.js:371 -msgid "The Reverse-heap block reverses the order of the heap." +#: js/blocks/MeterBlocks.js:769 +msgid "beat" msgstr "" -#: js/HeapBlocks.js:384 -#.TRANS: reverse the order of the heap -msgid "reverse heap" +#: js/blocks/MeterBlocks.js:813 +msgid "on every beat do" msgstr "" -#: js/HeapBlocks.js:428 -msgid "The Index-heap block returns a value in the heap at a specified location." +#: js/blocks/MeterBlocks.js:821 +msgid "The On-every-beat block lets you specify actions to take on every beat." msgstr "" -#: js/HeapBlocks.js:443 -#.TRANS: retrieve a value from the heap at index position in the heap -msgid "index heap" +#: js/blocks/MeterBlocks.js:874 +msgid "on every note do" msgstr "" -#: js/HeapBlocks.js:523 -msgid "The Set-heap entry block sets a value in he heap at the specified location." +#: js/blocks/MeterBlocks.js:882 +msgid "The On-every-note block lets you specify actions to take on every note." msgstr "" -#: js/HeapBlocks.js:619 -msgid "The Pop block removes the value at the top of the heap." +#: js/blocks/MeterBlocks.js:928 +#: js/blocks/MeterBlocks.js:999 +#.TRANS: sets tempo by defining a beat and beats per minute +msgid "master beats per minute" msgstr "" -#: js/HeapBlocks.js:633 -#.TRANS: pop a value off the top of the heap -msgid "pop" +#: js/blocks/MeterBlocks.js:952 +#: js/blocks/MeterBlocks.js:1078 +#: js/blocks/MeterBlocks.js:1135 +msgid "bpm" msgstr "" -#: js/HeapBlocks.js:680 -msgid "The Push block adds a value to the top of the heap." +#: js/blocks/MeterBlocks.js:952 +#: js/blocks/MeterBlocks.js:1078 +#: js/blocks/MeterBlocks.js:1135 +msgid "beat value" msgstr "" -#: js/HeapBlocks.js:696 -#.TRANS: push a value onto the top of the heap -msgid "push" +#: js/blocks/MeterBlocks.js:1024 +#: js/blocks/MeterBlocks.js:1167 +#: js/blocks/MeterBlocks.js:1241 +msgid "Beats per minute must be > 30." msgstr "" -#: js/FlowBlocks.js:41 -msgid "The Backward block runs code in reverse order (Musical retrograde)." +#: js/blocks/MeterBlocks.js:1027 +#: js/blocks/MeterBlocks.js:1170 +#: js/blocks/MeterBlocks.js:1244 +msgid "Maximum beats per minute is 1000." msgstr "" -#: js/FlowBlocks.js:48 -msgid "backward" +#: js/blocks/MeterBlocks.js:1068 +msgid "The Beats per minute block sets the number of 1/4 notes per minute." msgstr "" -#: js/FlowBlocks.js:124 -msgid "The Duplicate block will run each block multiple times." +#: js/blocks/MeterBlocks.js:1279 +#.TRANS: anacrusis +msgid "pickup" msgstr "" -#: js/FlowBlocks.js:136 -msgid "duplicate" +#: js/blocks/MeterBlocks.js:1367 +msgid "number of beats" msgstr "" -#: js/FlowBlocks.js:334 -msgid "The Default block is used inside of a Switch to define the default action." +#: js/blocks/NumberBlocks.js:28 +msgid "The Int block returns an integer." msgstr "" -#: js/FlowBlocks.js:342 -msgid "default" +#: js/blocks/NumberBlocks.js:34 +msgid "int" msgstr "" -#: js/FlowBlocks.js:361 -#: js/FlowBlocks.js:418 -msgid "The Case Block must be used inside of a Switch Block." +#: js/blocks/NumberBlocks.js:73 +msgid "The Mod block returns the remainder from a division." msgstr "" -#: js/FlowBlocks.js:389 -msgid "The Case block is used inside of a Switch to define matches." +#: js/blocks/NumberBlocks.js:79 +msgid "mod" msgstr "" -#: js/FlowBlocks.js:397 -msgid "case" +#: js/blocks/NumberBlocks.js:141 +msgid "The Power block calculates a power function." msgstr "" -#: js/FlowBlocks.js:446 -msgid "The Switch block will run the code in the matching Case." +#: js/blocks/NumberBlocks.js:196 +msgid "The Sqrt block returns the square root." msgstr "" -#: js/FlowBlocks.js:454 -msgid "switch" +#: js/blocks/NumberBlocks.js:202 +msgid "sqrt" msgstr "" -#: js/FlowBlocks.js:595 -msgid "The Stop block will stop a loop" +#: js/blocks/NumberBlocks.js:248 +msgid "The Abs block returns the absolute value." msgstr "" -#: js/FlowBlocks.js:597 -msgid "Forever, Repeat, While, or Until." +#: js/blocks/NumberBlocks.js:254 +msgid "abs" msgstr "" -#: js/FlowBlocks.js:604 -#: js/phrasemaker.js:3799 -#: js/musickeyboard.js:629 -#: js/musickeyboard.js:631 -#: js/timbre.js:417 -#: js/timbre.js:419 -#: plugins/rodi.rtp:29 -#: plugins/rodi.rtp:73 -#: plugins/rodi.rtp:413 -msgid "stop" +#: js/blocks/NumberBlocks.js:295 +msgid "The Distance block returns the distance between two points. For example, between the mouse and the center of the screen." msgstr "" -#: js/FlowBlocks.js:653 -msgid "The Waitfor block will wait until the condition is true." +#: js/blocks/NumberBlocks.js:301 +#: plugins/rodi.rtp:310 +msgid "distance" msgstr "" -#: js/FlowBlocks.js:661 -msgid "wait for" +#: js/blocks/NumberBlocks.js:361 +msgid "The Divide block is used to divide." msgstr "" -#: js/FlowBlocks.js:732 -msgid "The Until block will repeat until the condition is true." +#: js/blocks/NumberBlocks.js:441 +msgid "The Multiply block is used to multiply." msgstr "" -#: js/FlowBlocks.js:740 -msgid "until" +#: js/blocks/NumberBlocks.js:612 +msgid "The Minus block is used to subtract." msgstr "" -#: js/FlowBlocks.js:742 -#: js/FlowBlocks.js:822 -msgid "do2" +#: js/blocks/NumberBlocks.js:723 +msgid "The Plus block is used to add." msgstr "" -#: js/FlowBlocks.js:812 -msgid "The While block will repeat while the condition is true." +#: js/blocks/NumberBlocks.js:849 +msgid "The One-of block returns one of two choices." msgstr "" -#: js/FlowBlocks.js:820 -msgid "while" +#: js/blocks/NumberBlocks.js:856 +#: js/blocks/PitchBlocks.js:616 +msgid "one of" msgstr "" -#: js/FlowBlocks.js:903 -#: js/FlowBlocks.js:968 -#: js/FlowBlocks.js:979 -msgid "In this example if the mouse button is pressed a snare drum will play." +#: js/blocks/NumberBlocks.js:858 +msgid "this" msgstr "" -#: js/FlowBlocks.js:925 -#: js/FlowBlocks.js:988 -msgid "if" +#: js/blocks/NumberBlocks.js:858 +msgid "that" msgstr "" -#: js/FlowBlocks.js:927 -#: js/FlowBlocks.js:990 -msgid "then" +#: js/blocks/NumberBlocks.js:913 +msgid "The Random block returns a random number." msgstr "" -#: js/FlowBlocks.js:927 -msgid "else" +#: js/blocks/NumberBlocks.js:920 +msgid "random" msgstr "" -#: js/FlowBlocks.js:1025 -msgid "The Forever block will repeat the contained blocks forever." +#: js/blocks/NumberBlocks.js:922 +msgid "min" msgstr "" -#: js/FlowBlocks.js:1037 -msgid "forever" +#: js/blocks/NumberBlocks.js:922 +msgid "max" msgstr "" -#: js/FlowBlocks.js:1073 -msgid "The Repeat block will repeat the contained blocks." +#: js/blocks/NumberBlocks.js:986 +msgid "The Number block holds a number." msgstr "" -#: js/FlowBlocks.js:1075 -msgid "In this example the note will be played 4 times." +#: js/blocks/OrnamentBlocks.js:32 +msgid "staccato factor" msgstr "" -#: js/FlowBlocks.js:1083 -msgid "repeat" +#: js/blocks/OrnamentBlocks.js:108 +msgid "slur factor" msgstr "" -#: js/FlowBlocks.js:1123 -msgid "duplicate factor" +#: js/blocks/OrnamentBlocks.js:217 +#: js/blocks/OrnamentBlocks.js:309 +#.TRANS: the neighbor refers to a neighboring note, e.g., D is a neighbor of C +msgid "neighbor" msgstr "" -#: js/PitchBlocks.js:39 -#: js/musicutils.js:722 -#: js/musicutils.js:1117 -#: js/synthutils.js:112 -#.TRANS: square wave -msgid "square" +#: js/blocks/OrnamentBlocks.js:293 +msgid "The Neighbor block rapidly switches between neighboring pitches." msgstr "" -#: js/PitchBlocks.js:62 -#: js/ToneBlocks.js:39 -#: js/musicutils.js:723 -#: js/musicutils.js:1118 -#: js/synthutils.js:116 -#.TRANS: triangle wave -msgid "triangle" +#: js/blocks/OrnamentBlocks.js:364 +msgid "glide" msgstr "" -#: js/PitchBlocks.js:85 -#: js/musicutils.js:721 -#: js/musicutils.js:1116 -#: js/synthutils.js:110 -#.TRANS: sine wave -msgid "sine" +#: js/blocks/OrnamentBlocks.js:479 +#: js/blocks/OrnamentBlocks.js:643 +msgid "slur" msgstr "" -#: js/PitchBlocks.js:108 -#: js/musicutils.js:724 -#: js/musicutils.js:1119 -#: js/synthutils.js:114 -#.TRANS: sawtooth wave -msgid "sawtooth" +#: js/blocks/OrnamentBlocks.js:558 +#: js/blocks/OrnamentBlocks.js:710 +#.TRANS: play each note sharply detached from the others +msgid "staccato" msgstr "" -#: js/PitchBlocks.js:141 -#.TRANS: musical transposition (adjustment of pitch up or down) -msgid "transposition" +#: js/blocks/RhythmBlocks.js:182 +#: js/blocks/RhythmBlocks.js:1086 +#: js/blocks/RhythmBlocks.js:1162 +msgid "Note value must be greater than 0." msgstr "" -#: js/PitchBlocks.js:168 -#.TRANS: step down one note in current musical scale -msgid "scalar step down" +#: js/blocks/RhythmBlocks.js:215 +#: js/blocks/RhythmBlocks.js:278 +#: js/blocks/RhythmBlocks.js:350 +#.TRANS: swing is a rhythmic variation that emphasises the offbeat +msgid "swing" msgstr "" -#: js/PitchBlocks.js:172 -msgid "The Scalar step down block returns the number of semi-tones down to the previous note in the current key and mode." +#: js/blocks/RhythmBlocks.js:355 +#.TRANS: the amount to shift to the offbeat note +msgid "swing value" msgstr "" -#: js/PitchBlocks.js:190 -#.TRANS: step up one note in current musical scale -msgid "scalar step up" +#: js/blocks/RhythmBlocks.js:419 +msgid "The Skip notes block will cause notes to be skipped." msgstr "" -#: js/PitchBlocks.js:194 -msgid "The Scalar step up block returns the number of semi-tones up to the next note in the current key and mode." +#: js/blocks/RhythmBlocks.js:427 +#.TRANS: substitute rests on notes being skipped +msgid "skip notes" msgstr "" -#: js/PitchBlocks.js:212 -#.TRANS: the change measured in half-steps between the current pitch and the previous pitch -msgid "change in pitch" +#: js/blocks/RhythmBlocks.js:489 +#.TRANS: speed up note duration by some factor, e.g. convert 1/4 to 1/8 notes by using a factor of 2 +msgid "multiply note value" msgstr "" -#: js/PitchBlocks.js:216 -msgid "The Change in pitch block is the difference (in half steps) between the current pitch being played and the previous pitch played." +#: js/blocks/RhythmBlocks.js:542 +msgid "The Tie block works on pairs of notes, combining them into one note." msgstr "" -#: js/PitchBlocks.js:243 -#.TRANS: the change measured in scale-steps between the current pitch and the previous pitch -msgid "scalar change in pitch" +#: js/blocks/RhythmBlocks.js:550 +#.TRANS: tie notes together into one longer note +msgid "tie" msgstr "" -#: js/PitchBlocks.js:250 -#: js/PitchBlocks.js:432 -#: js/PitchBlocks.js:1629 -#: js/DictActions.js:89 -#: js/temperament.js:477 -#: js/temperament.js:481 -#: js/temperament.js:714 -#.TRANS: convert current note to piano key (1-88) -#.TRANS: a mapping of pitch to the 88 piano keys -msgid "pitch number" +#: js/blocks/RhythmBlocks.js:591 +#: js/blocks/RhythmBlocks.js:671 +#.TRANS: a dotted note is played for 1.5x its value, e.g., 1/8. --> 3/16 +msgid "dot" msgstr "" -#: js/PitchBlocks.js:256 -msgid "The Pitch number block is the value of the pitch of the note currently being played." +#: js/blocks/RhythmBlocks.js:619 +#: js/turtleactions/RhythmActions.js:221 +msgid "An argument of -1 results in a note value of 0." msgstr "" -#: js/PitchBlocks.js:329 -#: js/PitchBlocks.js:433 -#.TRANS: the current pitch expressed in Hertz -msgid "pitch in hertz" +#: js/blocks/RhythmBlocks.js:661 +msgid "The Dot block extends the duration of a note by 50%." msgstr "" -#: js/PitchBlocks.js:334 -msgid "The Pitch in Hertz block is the value in Hertz of the pitch of the note currently being played." +#: js/blocks/RhythmBlocks.js:663 +msgid "Eg a dotted quarter note will play for 3/8 (1/4 + 1/8) of a beat." msgstr "" -#: js/PitchBlocks.js:367 -#: js/DictActions.js:87 -msgid "current pitch" +#: js/blocks/RhythmBlocks.js:765 +#.TRANS: Japanese only: note value block for drum +msgid "note value drum" msgstr "" -#: js/PitchBlocks.js:373 -msgid "The Current Pitch block is used with the Pitch Converter block. In the example above, current pitch, sol 4, is displayed as 392 hertz." +#: js/blocks/RhythmBlocks.js:829 +msgid "392 hertz" msgstr "" -#: js/PitchBlocks.js:410 -msgid "This block converts the pitch value of the last note played into different formats such as hertz, letter name, pitch number, et al." +#: js/blocks/RhythmBlocks.js:1119 +msgid "The Note block is a container for one or more Pitch blocks." msgstr "" -#: js/PitchBlocks.js:434 -msgid "alphabet" +#: js/blocks/RhythmBlocks.js:1121 +msgid "The Note block specifies the duration (note value) of its contents." msgstr "" -#: js/PitchBlocks.js:436 -#.TRANS: Translate as "alphabet class" -msgid "letter class" +#: js/blocks/RhythmBlocks.js:1128 +#: js/blocks/PitchBlocks.js:974 +#: js/blocks/PitchBlocks.js:1007 +#: js/blocks/ProgramBlocks.js:1186 +#: js/blocks/ProgramBlocks.js:1227 +#: js/widgets/status.js:190 +#: js/widgets/temperament.js:464 +#: js/widgets/temperament.js:486 +#: js/widgets/temperament.js:496 +#: js/widgets/temperament.js:617 +#: plugins/rodi.rtp:192 +#.TRANS: a musical note consisting of pitch and duration +msgid "note" msgstr "" -#: js/PitchBlocks.js:437 -msgid "solfege class" +#: js/blocks/RhythmBlocks.js:1130 +msgid "value2" msgstr "" -#: js/PitchBlocks.js:438 -msgid "staff y" +#: js/blocks/RhythmBlocks.js:1200 +msgid "define frequency" msgstr "" -#: js/PitchBlocks.js:439 -msgid "solfege syllable" +#: js/blocks/RhythmBlocks.js:1218 +#: js/widgets/temperament.js:787 +#: js/widgets/temperament.js:1587 +msgid "octave space" msgstr "" -#: js/PitchBlocks.js:440 -msgid "pitch class" +#: js/blocks/SensorsBlocks.js:36 +msgid "The Input block prompts for keyboard input." msgstr "" -#: js/PitchBlocks.js:441 -msgid "scalar class" +#: js/blocks/SensorsBlocks.js:46 +msgid "input" msgstr "" -#: js/PitchBlocks.js:443 -msgid "nth degree" +#: js/blocks/SensorsBlocks.js:64 +msgid "Input a value" msgstr "" -#: js/PitchBlocks.js:444 -msgid "pitch to shade" +#: js/blocks/SensorsBlocks.js:126 +msgid "input value" msgstr "" -#: js/PitchBlocks.js:445 -msgid "pitch to color" +#: js/blocks/SensorsBlocks.js:131 +msgid "The Input-value block stores the input." msgstr "" -#: js/PitchBlocks.js:629 -#: js/musickeyboard.js:565 -#.TRANS: MIDI is a technical standard for electronic music -msgid "MIDI" +#: js/blocks/SensorsBlocks.js:238 +msgid "loudness" msgstr "" -#: js/PitchBlocks.js:642 -#.TRANS: set an offset associated with the numeric piano keyboard mapping -msgid "set pitch number offset" +#: js/blocks/SensorsBlocks.js:245 +msgid "The Loudness block returns the volume detected by the microphone." msgstr "" -#: js/PitchBlocks.js:645 -msgid "The Set pitch number offset block is used to set the offset for mapping pitch numbers to pitch and octave." +#: js/blocks/SensorsBlocks.js:300 +msgid "click" msgstr "" -#: js/PitchBlocks.js:679 -#.TRANS: convert piano key number (1-88) to pitch -msgid "number to pitch" +#: js/blocks/SensorsBlocks.js:306 +msgid "The Click block triggers an event if a mouse has been clicked." msgstr "" -#: js/PitchBlocks.js:682 -msgid "The Number to pitch block will convert a pitch number to a pich name." +#: js/blocks/SensorsBlocks.js:313 +msgid "The Click block triggers an event if a turtle has been clicked." msgstr "" -#: js/PitchBlocks.js:715 -#.TRANS: convert piano key number (1-88) to octave -msgid "number to octave" +#: js/blocks/SensorsBlocks.js:342 +msgid "cursor over" msgstr "" -#: js/PitchBlocks.js:717 -msgid "The Number to octave block will convert a pitch number to an octave." +#: js/blocks/SensorsBlocks.js:387 +msgid "cursor out" msgstr "" -#: js/PitchBlocks.js:726 -msgid "y to pitch" +#: js/blocks/SensorsBlocks.js:433 +msgid "cursor button down" msgstr "" -#: js/PitchBlocks.js:729 -msgid "Y to pitch block will convert a staff y position to corresponding pitch notation." +#: js/blocks/SensorsBlocks.js:477 +msgid "cursor button up" msgstr "" -#: js/PitchBlocks.js:841 -msgid "accidental selector" +#: js/blocks/SensorsBlocks.js:521 +#: js/blocks/PenBlocks.js:48 +#: plugins/rodi.rtp:219 +msgid "blue" msgstr "" -#: js/PitchBlocks.js:844 -msgid "The Accidental selector block is used to choose between double-sharp, sharp, natural, flat, and double-flat." +#: js/blocks/SensorsBlocks.js:577 +#: js/blocks/PenBlocks.js:64 +#: plugins/rodi.rtp:218 +msgid "green" msgstr "" -#: js/PitchBlocks.js:858 -msgid "Pitch can be specified in terms of ni dha pa ma ga re sa." +#: js/blocks/SensorsBlocks.js:633 +#: js/blocks/PenBlocks.js:112 +#: plugins/rodi.rtp:217 +msgid "red" msgstr "" -#: js/PitchBlocks.js:872 -msgid "Pitch can be specified in terms of C D E F G A B." +#: js/blocks/SensorsBlocks.js:638 +msgid "The Get red block returns the red component of the pixel under the mouse." msgstr "" -#: js/PitchBlocks.js:883 -msgid "solfege" +#: js/blocks/SensorsBlocks.js:644 +msgid "The Get red block returns the red component of the pixel under the turtle." msgstr "" -#: js/PitchBlocks.js:886 -msgid "Pitch can be specified in terms of do re mi fa sol la ti." +#: js/blocks/SensorsBlocks.js:685 +#: plugins/rodi.rtp:216 +msgid "pixel color" msgstr "" -#: js/PitchBlocks.js:920 -msgid "The Invert block rotates any contained notes around a target note." +#: js/blocks/SensorsBlocks.js:690 +msgid "The Get pixel block returns the color of the pixel under the mouse." msgstr "" -#: js/PitchBlocks.js:927 -#.TRANS: pitch inversion rotates a pitch around another pitch -msgid "invert" +#: js/blocks/SensorsBlocks.js:696 +msgid "The Get pixel block returns the color of the pixel under the turtle." msgstr "" -#: js/PitchBlocks.js:929 -#: js/PitchBlocks.js:935 -#: js/PitchActions.js:727 -#: js/musicutils.js:726 -#: js/musicutils.js:902 -#.TRANS: invert based on even or odd number or musical scale -#.TRANS: even numbers -msgid "even" +#: js/blocks/SensorsBlocks.js:758 +msgid "time" msgstr "" -#: js/PitchBlocks.js:935 -#: js/PitchActions.js:729 -#: js/musicutils.js:728 -#: js/musicutils.js:903 -#.TRANS: odd numbers -msgid "odd" +#: js/blocks/SensorsBlocks.js:804 +msgid "cursor y" msgstr "" -#: js/PitchBlocks.js:935 -#: js/PitchActions.js:731 -#: js/musicutils.js:729 -#: js/musicutils.js:904 -msgid "scalar" +#: js/blocks/SensorsBlocks.js:809 +msgid "The Cursor Y block returns the vertical position of the mouse." msgstr "" -#: js/PitchBlocks.js:966 -#.TRANS: pitch inversion rotates a pitch around another pitch (odd number) -msgid "invert (odd)" +#: js/blocks/SensorsBlocks.js:845 +msgid "cursor x" msgstr "" -#: js/PitchBlocks.js:999 -#.TRANS: pitch inversion rotates a pitch around another pitch (even number) -msgid "invert (even)" +#: js/blocks/SensorsBlocks.js:850 +msgid "The Cursor X block returns the horizontal position of the mouse." msgstr "" -#: js/PitchBlocks.js:1020 -#.TRANS: register is the octave of the current pitch -msgid "register" +#: js/blocks/SensorsBlocks.js:886 +msgid "mouse button" msgstr "" -#: js/PitchBlocks.js:1024 -msgid "The Register block provides an easy way to modify the register (octave) of the notes that follow it." +#: js/blocks/SensorsBlocks.js:888 +msgid "The Mouse-button block returns True if the mouse button is pressed." msgstr "" -#: js/PitchBlocks.js:1074 -msgid "The Semi-tone transposition block will shift the pitches contained inside Note blocks up (or down) by half steps." +#: js/blocks/SensorsBlocks.js:934 +msgid "to ASCII" msgstr "" -#: js/PitchBlocks.js:1076 -msgid "In the example shown above, sol is shifted up to sol#." +#: js/blocks/SensorsBlocks.js:938 +msgid "The To ASCII block converts numbers to letters." msgstr "" -#: js/PitchBlocks.js:1082 -#.TRANS: adjust the amount of shift (up or down) of a pitch -msgid "semi-tone transpose" +#: js/blocks/SensorsBlocks.js:1005 +msgid "The Keyboard block returns computer keyboard input." msgstr "" -#: js/PitchBlocks.js:1115 -msgid "The Transpose by Ratio block will shift the pitches contained inside Note blocks up (or down) by a ratio" +#: js/blocks/RhythmBlockPaletteBlocks.js:50 +#: js/blocks/RhythmBlockPaletteBlocks.js:233 +#.TRANS: rhythm block +#.TRANS: translate "rhythm1" as rhythm +msgid "rhythm1" msgstr "" -#: js/PitchBlocks.js:1121 -#.TRANS: adjust the amount of shift (up or down) of a pitch -msgid "transpose by ratio" +#: js/blocks/RhythmBlockPaletteBlocks.js:70 +#: js/blocks/RhythmBlockPaletteBlocks.js:252 +#: js/blocks/RhythmBlockPaletteBlocks.js:485 +#: js/blocks/RhythmBlockPaletteBlocks.js:554 +#: js/blocks/RhythmBlockPaletteBlocks.js:875 +msgid "number of notes" msgstr "" -#: js/PitchBlocks.js:1204 -#.TRANS: down sixth means the note is five scale degrees below current note -msgid "down sixth" +#: js/blocks/RhythmBlockPaletteBlocks.js:126 +msgid "polyphonic rhythm" msgstr "" -#: js/PitchBlocks.js:1223 -#.TRANS: down third means the note is two scale degrees below current note -msgid "down third" +#: js/blocks/RhythmBlockPaletteBlocks.js:219 +msgid "The Rhythm block is used to generate rhythm patterns." msgstr "" -#: js/PitchBlocks.js:1242 -#.TRANS: seventh means the note is the six scale degrees above current note -msgid "seventh" +#: js/blocks/RhythmBlockPaletteBlocks.js:280 +msgid "1/64 note" msgstr "" -#: js/PitchBlocks.js:1261 -#.TRANS: sixth means the note is the five scale degrees above current note -msgid "sixth" +#: js/blocks/RhythmBlockPaletteBlocks.js:304 +msgid "1/32 note" msgstr "" -#: js/PitchBlocks.js:1280 -#.TRANS: fifth means the note is the four scale degrees above current note -msgid "fifth" +#: js/blocks/RhythmBlockPaletteBlocks.js:332 +msgid "1/16 note" msgstr "" -#: js/PitchBlocks.js:1300 -#.TRANS: fourth means the note is three scale degrees above current note -msgid "fourth" +#: js/blocks/RhythmBlockPaletteBlocks.js:360 +msgid "eighth note" msgstr "" -#: js/PitchBlocks.js:1319 -#.TRANS: third means the note is two scale degrees above current note -msgid "third" +#: js/blocks/RhythmBlockPaletteBlocks.js:388 +msgid "quarter note" msgstr "" -#: js/PitchBlocks.js:1338 -#.TRANS: second means the note is one scale degree above current note -msgid "second" +#: js/blocks/RhythmBlockPaletteBlocks.js:416 +msgid "half note" msgstr "" -#: js/PitchBlocks.js:1379 -msgid "The Scalar transposition block will shift the pitches contained inside Note blocks up (or down) the scale." +#: js/blocks/RhythmBlockPaletteBlocks.js:444 +msgid "whole note" msgstr "" -#: js/PitchBlocks.js:1381 -msgid "In the example shown above, sol is shifted up to la." +#: js/blocks/RhythmBlockPaletteBlocks.js:482 +#: js/blocks/RhythmBlockPaletteBlocks.js:551 +#: js/blocks/RhythmBlockPaletteBlocks.js:602 +#.TRANS: A tuplet is a note value divided into irregular time values. +msgid "tuplet" msgstr "" -#: js/PitchBlocks.js:1388 -#.TRANS: adjust the amount of shift (up or down) of a pitch by musical scale (scalar) steps -msgid "scalar transpose" +#: js/blocks/RhythmBlockPaletteBlocks.js:768 +msgid "septuplet" msgstr "" -#: js/PitchBlocks.js:1423 -msgid "The Accidental block is used to create sharps and flats" +#: js/blocks/RhythmBlockPaletteBlocks.js:796 +msgid "quintuplet" msgstr "" -#: js/PitchBlocks.js:1430 -#.TRANS: An accidental is a modification to a pitch, e.g., sharp or flat. -msgid "accidental override" +#: js/blocks/RhythmBlockPaletteBlocks.js:824 +msgid "triplet" msgstr "" -#: js/PitchBlocks.js:1543 -msgid "The Hertz block (in combination with a Number block) will play a sound at the specified frequency." +#: js/blocks/RhythmBlockPaletteBlocks.js:851 +msgid "simple tuplet" msgstr "" -#: js/PitchBlocks.js:1633 -msgid "The Pitch Number block will play a pitch associated by its number, e.g. 0 for C and 7 for G." +#: js/blocks/RhythmBlockPaletteBlocks.js:861 +msgid "Tuplets are a collection of notes that get scaled to a specific duration." msgstr "" -#: js/PitchBlocks.js:1665 -#: js/PitchBlocks.js:1707 -#.TRANS: a numeric mapping of the notes in an octave based on the musical mode -#.TRANS: a numeric mapping of the notes in an octave based on the musical mode -msgid "nth modal pitch" +#: js/blocks/DrumBlocks.js:59 +msgid "The Noise name block is used to select a noise synthesizer." msgstr "" -#: js/PitchBlocks.js:1668 -msgid "n^th Modal Pitch takes the pattern of pitches in semitones for a mode and makes each point a degree of the mode," +#: js/blocks/DrumBlocks.js:102 +msgid "The Drum name block is used to select a drum." msgstr "" -#: js/PitchBlocks.js:1670 -msgid "starting from 1 and regardless of tonal framework (i.e. not always 8 notes in the octave)" +#: js/blocks/DrumBlocks.js:146 +msgid "The Effects name block is used to select a sound effect." msgstr "" -#: js/PitchBlocks.js:1711 -msgid "N^th Modal Pitch takes a number as an input as the n^th degree for the given mode. 0 is the first position, 1 is the second, -1 is the note before the first etc." +#: js/blocks/DrumBlocks.js:163 +msgid "noise" msgstr "" -#: js/PitchBlocks.js:1713 -msgid "The pitches change according to the mode specified without any need for respellings." +#: js/blocks/DrumBlocks.js:177 +msgid "The Play noise block will generate white, pink, or brown noise." msgstr "" -#: js/PitchBlocks.js:1752 -msgid "Scale Degree is a common convention in music. Scale Degree offers seven possible positions in the scale (1-7) and can be modified via accidentals." +#: js/blocks/DrumBlocks.js:317 +msgid "Replace every instance of a pitch with a drum sound." msgstr "" -#: js/PitchBlocks.js:1754 -msgid "Scale Degree 1 is always the first pitch in a given scale, regardless of octave." +#: js/blocks/DrumBlocks.js:328 +#.TRANS: map a pitch to a drum sound +msgid "map pitch to drum" msgstr "" -#: js/PitchBlocks.js:1776 -#.TRANS: step some number of notes in current musical scale -msgid "scalar step" +#: js/blocks/DrumBlocks.js:395 +msgid "In the example above, a kick drum sound will be played instead of sol." msgstr "" -#: js/PitchBlocks.js:1781 -msgid "The Scalar Step block (in combination with a Number block) will play the next pitch in a scale," +#: js/blocks/DrumBlocks.js:407 +#.TRANS: set the current drum sound for playback +msgid "set drum" msgstr "" -#: js/PitchBlocks.js:1783 -msgid "eg if the last note played was sol, Scalar Step 1 will play la." +#: js/blocks/DrumBlocks.js:451 +msgid "sound effect" msgstr "" -#: js/PitchBlocks.js:1818 -msgid "The Pitch block specifies the pitch name and octave of a note that together determine the frequency of the note." +#: js/blocks/DrumBlocks.js:489 +msgid "You can use multiple Drum blocks within a Note block." msgstr "" -#: js/GraphicsBlocks.js:46 -#: js/DictActions.js:77 -#: js/DictActions.js:155 -#: js/DictActions.js:189 +#: js/blocks/GraphicsBlocks.js:46 +#: js/turtleactions/DictActions.js:77 +#: js/turtleactions/DictActions.js:144 +#: js/turtleactions/DictActions.js:173 msgid "heading" msgstr "" -#: js/GraphicsBlocks.js:56 +#: js/blocks/GraphicsBlocks.js:56 msgid "The Heading block returns the orientation of the mouse." msgstr "" -#: js/GraphicsBlocks.js:62 +#: js/blocks/GraphicsBlocks.js:62 msgid "The Heading block returns the orientation of the turtle." msgstr "" -#: js/GraphicsBlocks.js:133 +#: js/blocks/GraphicsBlocks.js:133 msgid "The Y block returns the vertical position of the mouse." msgstr "" -#: js/GraphicsBlocks.js:140 +#: js/blocks/GraphicsBlocks.js:140 msgid "The Y block returns the vertical position of the turtle." msgstr "" -#: js/GraphicsBlocks.js:149 +#: js/blocks/GraphicsBlocks.js:149 msgid "y3" msgstr "" -#: js/GraphicsBlocks.js:219 +#: js/blocks/GraphicsBlocks.js:219 msgid "The X block returns the horizontal position of the mouse." msgstr "" -#: js/GraphicsBlocks.js:226 +#: js/blocks/GraphicsBlocks.js:226 msgid "The X block returns the horizontal position of the turtle." msgstr "" -#: js/GraphicsBlocks.js:235 +#: js/blocks/GraphicsBlocks.js:235 msgid "x3" msgstr "" -#: js/GraphicsBlocks.js:295 +#: js/blocks/GraphicsBlocks.js:295 msgid "scroll xy" msgstr "" -#: js/GraphicsBlocks.js:303 +#: js/blocks/GraphicsBlocks.js:303 msgid "The Scroll XY block moves the canvas." msgstr "" -#: js/GraphicsBlocks.js:313 +#: js/blocks/GraphicsBlocks.js:313 msgid "x2" msgstr "" -#: js/GraphicsBlocks.js:313 +#: js/blocks/GraphicsBlocks.js:313 msgid "y2" msgstr "" -#: js/GraphicsBlocks.js:373 -#: js/temperament.js:213 -#: js/temperament.js:241 +#: js/blocks/GraphicsBlocks.js:373 +#: js/widgets/temperament.js:319 +#: js/widgets/temperament.js:347 msgid "clear" msgstr "" -#: js/GraphicsBlocks.js:426 +#: js/blocks/GraphicsBlocks.js:426 msgid "The Control-point 2 block sets the second control point for the Bezier curve." msgstr "" -#: js/GraphicsBlocks.js:433 +#: js/blocks/GraphicsBlocks.js:433 msgid "control point 2" msgstr "" -#: js/GraphicsBlocks.js:436 -#: js/GraphicsBlocks.js:487 -#: js/GraphicsBlocks.js:534 -#: js/GraphicsBlocks.js:750 +#: js/blocks/GraphicsBlocks.js:436 +#: js/blocks/GraphicsBlocks.js:487 +#: js/blocks/GraphicsBlocks.js:534 +#: js/blocks/GraphicsBlocks.js:750 msgid "x1" msgstr "" -#: js/GraphicsBlocks.js:436 -#: js/GraphicsBlocks.js:487 -#: js/GraphicsBlocks.js:534 -#: js/GraphicsBlocks.js:750 +#: js/blocks/GraphicsBlocks.js:436 +#: js/blocks/GraphicsBlocks.js:487 +#: js/blocks/GraphicsBlocks.js:534 +#: js/blocks/GraphicsBlocks.js:750 msgid "y1" msgstr "" -#: js/GraphicsBlocks.js:477 +#: js/blocks/GraphicsBlocks.js:477 msgid "The Control-point 1 block sets the first control point for the Bezier curve." msgstr "" -#: js/GraphicsBlocks.js:484 +#: js/blocks/GraphicsBlocks.js:484 msgid "control point 1" msgstr "" -#: js/GraphicsBlocks.js:527 +#: js/blocks/GraphicsBlocks.js:527 msgid "The Bezier block draws a Bezier curve." msgstr "" -#: js/GraphicsBlocks.js:531 +#: js/blocks/GraphicsBlocks.js:531 msgid "bezier" msgstr "" -#: js/GraphicsBlocks.js:592 +#: js/blocks/GraphicsBlocks.js:592 msgid "The Arc block moves the turtle in an arc." msgstr "" -#: js/GraphicsBlocks.js:600 +#: js/blocks/GraphicsBlocks.js:600 msgid "arc" msgstr "" -#: js/GraphicsBlocks.js:603 +#: js/blocks/GraphicsBlocks.js:603 msgid "angle" msgstr "" -#: js/GraphicsBlocks.js:603 +#: js/blocks/GraphicsBlocks.js:603 msgid "radius" msgstr "" -#: js/GraphicsBlocks.js:620 -#: js/GraphicsBlocks.js:767 -#: js/GraphicsBlocks.js:1010 -#: js/GraphicsBlocks.js:1093 +#: js/blocks/GraphicsBlocks.js:620 +#: js/blocks/GraphicsBlocks.js:767 +#: js/blocks/GraphicsBlocks.js:1010 +#: js/blocks/GraphicsBlocks.js:1093 msgid "Value must be within -5000 to 5000 when Wrap Mode is off." msgstr "" -#: js/GraphicsBlocks.js:622 -#: js/GraphicsBlocks.js:769 -#: js/GraphicsBlocks.js:1012 -#: js/GraphicsBlocks.js:1095 +#: js/blocks/GraphicsBlocks.js:622 +#: js/blocks/GraphicsBlocks.js:769 +#: js/blocks/GraphicsBlocks.js:1012 +#: js/blocks/GraphicsBlocks.js:1095 msgid "Value must be within -20000 to 20000 when Wrap Mode is on." msgstr "" -#: js/GraphicsBlocks.js:660 +#: js/blocks/GraphicsBlocks.js:660 msgid "set heading" msgstr "seth" -#: js/GraphicsBlocks.js:673 +#: js/blocks/GraphicsBlocks.js:673 msgid "The Set heading block sets the heading of the turtle." msgstr "" -#: js/GraphicsBlocks.js:733 +#: js/blocks/GraphicsBlocks.js:733 msgid "The Set XY block moves the mouse to a specific position on the screen." msgstr "" -#: js/GraphicsBlocks.js:739 +#: js/blocks/GraphicsBlocks.js:739 msgid "The Set XY block moves the turtle to a specific position on the screen." msgstr "" -#: js/GraphicsBlocks.js:747 +#: js/blocks/GraphicsBlocks.js:747 msgid "set xy" msgstr "" -#: js/GraphicsBlocks.js:819 +#: js/blocks/GraphicsBlocks.js:819 msgid "The Right block turns the mouse to the right." msgstr "" -#: js/GraphicsBlocks.js:826 +#: js/blocks/GraphicsBlocks.js:826 msgid "The Right block turns the turtle to the right." msgstr "" -#: js/GraphicsBlocks.js:835 +#: js/blocks/GraphicsBlocks.js:835 msgid "right1" msgstr "" -#: js/GraphicsBlocks.js:835 +#: js/blocks/GraphicsBlocks.js:835 #: plugins/rodi.rtp:77 #: plugins/rodi.rtp:340 #: plugins/rodi.rtp:375 msgid "right" msgstr "" -#: js/GraphicsBlocks.js:899 +#: js/blocks/GraphicsBlocks.js:899 msgid "The Left block turns the mouse to the left." msgstr "" -#: js/GraphicsBlocks.js:906 +#: js/blocks/GraphicsBlocks.js:906 msgid "The Left block turns the turtle to the left." msgstr "" -#: js/GraphicsBlocks.js:915 +#: js/blocks/GraphicsBlocks.js:915 msgid "left1" msgstr "" -#: js/GraphicsBlocks.js:915 +#: js/blocks/GraphicsBlocks.js:915 #: plugins/rodi.rtp:79 #: plugins/rodi.rtp:339 #: plugins/rodi.rtp:362 msgid "left" msgstr "" -#: js/GraphicsBlocks.js:967 -#: js/temperament.js:734 -#: js/temperament.js:933 +#: js/blocks/GraphicsBlocks.js:967 +#: js/widgets/temperament.js:875 +#: js/widgets/temperament.js:1078 #: plugins/rodi.rtp:69 #: plugins/rodi.rtp:387 msgid "back" msgstr "" -#: js/GraphicsBlocks.js:976 +#: js/blocks/GraphicsBlocks.js:976 msgid "The Back block moves the mouse backward." msgstr "" -#: js/GraphicsBlocks.js:983 +#: js/blocks/GraphicsBlocks.js:983 msgid "The Back block moves the turtle backward." msgstr "" -#: js/GraphicsBlocks.js:1050 +#: js/blocks/GraphicsBlocks.js:1050 #: plugins/rodi.rtp:71 #: plugins/rodi.rtp:400 msgid "forward" msgstr "" -#: js/GraphicsBlocks.js:1059 +#: js/blocks/GraphicsBlocks.js:1059 msgid "The Forward block moves the mouse forward." msgstr "" -#: js/GraphicsBlocks.js:1066 +#: js/blocks/GraphicsBlocks.js:1066 msgid "The Forward block moves the turtle forward." msgstr "" -#: js/GraphicsBlocks.js:1154 -#: js/GraphicsBlocks.js:1172 +#: js/blocks/GraphicsBlocks.js:1154 +#: js/blocks/GraphicsBlocks.js:1172 msgid "wrap" msgstr "" -#: js/OrnamentBlocks.js:32 -msgid "staccato factor" -msgstr "" - -#: js/OrnamentBlocks.js:108 -msgid "slur factor" -msgstr "" - -#: js/OrnamentBlocks.js:217 -#: js/OrnamentBlocks.js:309 -#.TRANS: the neighbor refers to a neighboring note, e.g., D is a neighbor of C -msgid "neighbor" -msgstr "" - -#: js/OrnamentBlocks.js:293 -msgid "The Neighbor block rapidly switches between neighboring pitches." -msgstr "" - -#: js/OrnamentBlocks.js:364 -msgid "glide" -msgstr "" - -#: js/OrnamentBlocks.js:479 -#: js/OrnamentBlocks.js:643 -msgid "slur" -msgstr "" - -#: js/OrnamentBlocks.js:558 -#: js/OrnamentBlocks.js:710 -#.TRANS: play each note sharply detached from the others -msgid "staccato" -msgstr "" - -#: js/PenBlocks.js:24 +#: js/blocks/PenBlocks.js:30 msgid "purple" msgstr "" -#: js/PenBlocks.js:37 -#: js/SensorsBlocks.js:521 -#: plugins/rodi.rtp:219 -msgid "blue" -msgstr "" - -#: js/PenBlocks.js:50 -#: js/SensorsBlocks.js:577 -#: plugins/rodi.rtp:218 -msgid "green" -msgstr "" - -#: js/PenBlocks.js:63 +#: js/blocks/PenBlocks.js:80 msgid "yellow" msgstr "" -#: js/PenBlocks.js:76 +#: js/blocks/PenBlocks.js:96 #: plugins/nutrition.rtp:164 msgid "orange" msgstr "" -#: js/PenBlocks.js:89 -#: js/SensorsBlocks.js:633 -#: plugins/rodi.rtp:217 -msgid "red" -msgstr "" - -#: js/PenBlocks.js:102 +#: js/blocks/PenBlocks.js:128 msgid "white" msgstr "" -#: js/PenBlocks.js:115 +#: js/blocks/PenBlocks.js:144 msgid "black" msgstr "" -#: js/PenBlocks.js:128 +#: js/blocks/PenBlocks.js:163 msgid "begin fill" msgstr "" -#: js/PenBlocks.js:143 +#: js/blocks/PenBlocks.js:190 msgid "end fill" msgstr "" -#: js/PenBlocks.js:159 -#: js/PenBlocks.js:386 +#: js/blocks/PenBlocks.js:212 +#: js/blocks/PenBlocks.js:560 #.TRANS: set the background color msgid "background" msgstr "" -#: js/PenBlocks.js:206 -#: js/DictActions.js:71 -#: js/DictActions.js:149 -#: js/DictActions.js:186 +#: js/blocks/PenBlocks.js:274 +#: js/turtleactions/DictActions.js:71 +#: js/turtleactions/DictActions.js:138 +#: js/turtleactions/DictActions.js:170 msgid "grey" msgstr "" -#: js/PenBlocks.js:210 +#: js/blocks/PenBlocks.js:282 msgid "The Grey block returns the current pen grey value." msgstr "" -#: js/PenBlocks.js:243 -#: js/DictActions.js:69 -#: js/DictActions.js:147 -#: js/DictActions.js:185 +#: js/blocks/PenBlocks.js:340 +#: js/turtleactions/DictActions.js:69 +#: js/turtleactions/DictActions.js:136 +#: js/turtleactions/DictActions.js:169 msgid "shade" msgstr "" -#: js/PenBlocks.js:247 +#: js/blocks/PenBlocks.js:347 msgid "The Shade block returns the current pen shade value." msgstr "" -#: js/PenBlocks.js:280 -#: js/DictActions.js:67 -#: js/DictActions.js:145 -#: js/DictActions.js:184 +#: js/blocks/PenBlocks.js:405 +#: js/turtleactions/DictActions.js:67 +#: js/turtleactions/DictActions.js:134 +#: js/turtleactions/DictActions.js:168 msgid "color" msgstr "" -#: js/PenBlocks.js:285 +#: js/blocks/PenBlocks.js:415 msgid "The Color block returns the current pen color." msgstr "" -#: js/PenBlocks.js:318 -#: js/DictActions.js:73 -#: js/DictActions.js:151 -#: js/DictActions.js:187 +#: js/blocks/PenBlocks.js:470 +#: js/turtleactions/DictActions.js:73 +#: js/turtleactions/DictActions.js:140 +#: js/turtleactions/DictActions.js:171 msgid "pen size" msgstr "" -#: js/PenBlocks.js:322 +#: js/blocks/PenBlocks.js:474 msgid "The Pen size block returns the current pen size value." msgstr "" -#: js/PenBlocks.js:355 +#: js/blocks/PenBlocks.js:513 msgid "set font" msgstr "" -#: js/PenBlocks.js:358 +#: js/blocks/PenBlocks.js:518 msgid "The Set font block sets the font used by the Show block." msgstr "" -#: js/PenBlocks.js:391 +#: js/blocks/PenBlocks.js:567 msgid "The Background block sets the window background color." msgstr "" -#: js/PenBlocks.js:408 +#: js/blocks/PenBlocks.js:598 msgid "The Hollow line block creates a line with a hollow center." msgstr "" -#: js/PenBlocks.js:415 +#: js/blocks/PenBlocks.js:606 #.TRANS: draw a line logo has a hollow space down its center msgid "hollow line" msgstr "" -#: js/PenBlocks.js:462 +#: js/blocks/PenBlocks.js:675 msgid "The Fill block fills in a shape with a color." msgstr "" -#: js/PenBlocks.js:470 +#: js/blocks/PenBlocks.js:684 #.TRANS: fill in as a solid color msgid "fill" msgstr "" -#: js/PenBlocks.js:527 +#: js/blocks/PenBlocks.js:761 #.TRANS: raise up the pen so logo it does not draw when it is moved msgid "pen up" msgstr "" -#: js/PenBlocks.js:532 +#: js/blocks/PenBlocks.js:768 msgid "The Pen-up block raises the pen so that it does not draw." msgstr "" -#: js/PenBlocks.js:552 +#: js/blocks/PenBlocks.js:802 #.TRANS: put down the pen so logo it draws when it is moved msgid "pen down" msgstr "" -#: js/PenBlocks.js:557 +#: js/blocks/PenBlocks.js:810 msgid "The Pen-down block lowers the pen so that it draws." msgstr "" -#: js/PenBlocks.js:577 +#: js/blocks/PenBlocks.js:844 #.TRANS: set the width of the line drawn by the pen msgid "set pen size" msgstr "" -#: js/PenBlocks.js:583 +#: js/blocks/PenBlocks.js:854 msgid "The Set-pen-size block changes the size of the pen." msgstr "" -#: js/PenBlocks.js:623 +#: js/blocks/PenBlocks.js:913 #.TRANS: set degree of translucence of the pen color msgid "set translucency" msgstr "" -#: js/PenBlocks.js:627 +#: js/blocks/PenBlocks.js:921 msgid "The Set translucency block changes the opacity of the pen." msgstr "" -#: js/PenBlocks.js:668 +#: js/blocks/PenBlocks.js:981 msgid "set hue" msgstr "" -#: js/PenBlocks.js:672 +#: js/blocks/PenBlocks.js:989 msgid "The Set hue block changes the color of the pen." msgstr "" -#: js/PenBlocks.js:711 +#: js/blocks/PenBlocks.js:1047 msgid "set shade" msgstr "" -#: js/PenBlocks.js:717 +#: js/blocks/PenBlocks.js:1057 msgid "The Set-shade block changes the pen color from dark to light." msgstr "" -#: js/PenBlocks.js:757 +#: js/blocks/PenBlocks.js:1111 #.TRANS: set the level of vividness of the pen color msgid "set grey" msgstr "" -#: js/PenBlocks.js:761 +#: js/blocks/PenBlocks.js:1119 msgid "The Set grey block changes the vividness of the pen color." msgstr "" -#: js/PenBlocks.js:800 +#: js/blocks/PenBlocks.js:1172 msgid "set color" msgstr "" -#: js/PenBlocks.js:806 +#: js/blocks/PenBlocks.js:1182 msgid "The Set-color block changes the pen color." msgstr "" -#: js/VolumeBlocks.js:35 -msgid "synth volume" -msgstr "" - -#: js/VolumeBlocks.js:39 -msgid "The Synth volume block returns the current volume of the current synthesizer." -msgstr "" - -#: js/VolumeBlocks.js:47 -#: js/musicutils.js:730 -#: js/synthutils.js:56 -#.TRANS: musical instrument -msgid "piano" -msgstr "" - -#: js/VolumeBlocks.js:105 -msgid "master volume" -msgstr "" - -#: js/VolumeBlocks.js:109 -msgid "The Master volume block returns the master volume." -msgstr "" - -#: js/VolumeBlocks.js:355 -#: js/VolumeBlocks.js:524 -msgid "set synth volume" -msgstr "" - -#: js/VolumeBlocks.js:362 -#: js/VolumeBlocks.js:545 -msgid "synth" -msgstr "" - -#: js/VolumeBlocks.js:403 -#: js/VolumeBlocks.js:577 -#: js/VolumeBlocks.js:740 -#: js/VolumeActions.js:173 -msgid "Setting volume to 0." -msgstr "" - -#: js/VolumeBlocks.js:440 -msgid "Synth not found" -msgstr "" - -#: js/VolumeBlocks.js:494 -msgid "set drum volume" -msgstr "" - -#: js/VolumeBlocks.js:530 -msgid "The Set synth volume block will change the volume of a particular synth," -msgstr "" - -#: js/VolumeBlocks.js:532 -msgid "eg guitar violin snare drum etc." -msgstr "" - -#: js/VolumeBlocks.js:534 -msgid "The default volume is 50." -msgstr "" - -#: js/VolumeBlocks.js:536 -msgid "The range is 0 for silence to 100 for full volume." -msgstr "" - -#: js/VolumeBlocks.js:597 -msgid "set panning" -msgstr "" - -#: js/VolumeBlocks.js:603 -msgid "The Set Panning block sets the panning for all synthesizers." -msgstr "" - -#: js/VolumeBlocks.js:625 -msgid "Warning: Sound is coming out from only the left or right side." -msgstr "" - -#: js/VolumeBlocks.js:647 -#: js/VolumeBlocks.js:695 -msgid "set master volume" -msgstr "" - -#: js/VolumeBlocks.js:653 -msgid "The Set master volume block sets the volume for all synthesizers." -msgstr "" - -#: js/VolumeBlocks.js:784 -msgid "The Set relative volume block changes the volume of the contained notes." -msgstr "" - -#: js/VolumeBlocks.js:791 -msgid "set relative volume" -msgstr "" - -#: js/VolumeBlocks.js:857 -msgid "decrescendo" -msgstr "" - -#: js/VolumeBlocks.js:921 -msgid "crescendo" -msgstr "" - -#: js/ToneBlocks.js:34 -msgid "oscillator" -msgstr "" - -#: js/ToneBlocks.js:44 -#: js/timbre.js:1562 -#.TRANS: Partials refers to the number of sine waves combined into the sound. -msgid "partials" -msgstr "" - -#: js/ToneBlocks.js:76 -msgid "You are adding multiple oscillator blocks." -msgstr "" - -#: js/ToneBlocks.js:144 -#: js/timbre.js:1225 -#.TRANS: a duo synthesizer combines a synth with a sequencer -msgid "duo synth" -msgstr "" - -#: js/ToneBlocks.js:149 -msgid "The Duo synth block is a duo-frequency modulator used to define a timbre." -msgstr "" - -#: js/ToneBlocks.js:157 -#: js/timbre.js:1476 -msgid "vibrato rate" -msgstr "" - -#: js/ToneBlocks.js:157 -msgid "vibrato intensity" -msgstr "" - -#: js/ToneBlocks.js:185 -#: js/timbre.js:1221 -#.TRANS: AM (amplitude modulation) synthesizer -msgid "AM synth" -msgstr "" - -#: js/ToneBlocks.js:189 -msgid "The AM synth block is an amplitude modulator used to define a timbre." -msgstr "" - -#: js/ToneBlocks.js:224 -#: js/timbre.js:1223 -#.TRANS: FM (frequency modulation) synthesizer -msgid "FM synth" -msgstr "" - -#: js/ToneBlocks.js:228 -msgid "The FM synth block is a frequency modulator used to define a timbre." +#: js/blocks/PitchBlocks.js:141 +#.TRANS: musical transposition (adjustment of pitch up or down) +msgid "transposition" msgstr "" -#: js/ToneBlocks.js:262 -msgid "partial" +#: js/blocks/PitchBlocks.js:168 +#.TRANS: step down one note in current musical scale +msgid "scalar step down" msgstr "" -#: js/ToneBlocks.js:265 -msgid "The Partial block is used to specify a weight for a specific partial harmonic." +#: js/blocks/PitchBlocks.js:172 +msgid "The Scalar step down block returns the number of semi-tones down to the previous note in the current key and mode." msgstr "" -#: js/ToneBlocks.js:284 -#.TRANS: partials are weighted components in a harmonic series -msgid "Partial weight must be between 0 and 1." +#: js/blocks/PitchBlocks.js:190 +#.TRANS: step up one note in current musical scale +msgid "scalar step up" msgstr "" -#: js/ToneBlocks.js:297 -#.TRANS: partials are weighted components in a harmonic series -msgid "Partial block should be used inside of a Weighted-partials block." +#: js/blocks/PitchBlocks.js:194 +msgid "The Scalar step up block returns the number of semi-tones up to the next note in the current key and mode." msgstr "" -#: js/ToneBlocks.js:325 -#.TRANS: partials are weighted components in a harmonic series -msgid "weighted partials" +#: js/blocks/PitchBlocks.js:212 +#.TRANS: the change measured in half-steps between the current pitch and the previous pitch +msgid "change in pitch" msgstr "" -#: js/ToneBlocks.js:383 -msgid "The Harmonic block will add harmonics to the contained notes." +#: js/blocks/PitchBlocks.js:216 +msgid "The Change in pitch block is the difference (in half steps) between the current pitch being played and the previous pitch played." msgstr "" -#: js/ToneBlocks.js:390 -#.TRANS: A harmonic is an overtone. -msgid "harmonic" +#: js/blocks/PitchBlocks.js:243 +#.TRANS: the change measured in scale-steps between the current pitch and the previous pitch +msgid "scalar change in pitch" msgstr "" -#: js/ToneBlocks.js:431 -msgid "The Distortion block adds distortion to the pitch." +#: js/blocks/PitchBlocks.js:250 +#: js/blocks/PitchBlocks.js:432 +#: js/blocks/PitchBlocks.js:1667 +#: js/turtleactions/DictActions.js:89 +#: js/widgets/temperament.js:610 +#: js/widgets/temperament.js:614 +#: js/widgets/temperament.js:855 +#.TRANS: convert current note to piano key (1-88) +#.TRANS: a mapping of pitch to the 88 piano keys +msgid "pitch number" msgstr "" -#: js/ToneBlocks.js:438 -#: js/timbre.js:2100 -#.TRANS: distortion is an alteration in the sound -msgid "distortion" +#: js/blocks/PitchBlocks.js:256 +msgid "The Pitch number block is the value of the pitch of the note currently being played." msgstr "" -#: js/ToneBlocks.js:487 -msgid "The Tremolo block adds a wavering effect." +#: js/blocks/PitchBlocks.js:329 +#: js/blocks/PitchBlocks.js:433 +#.TRANS: the current pitch expressed in Hertz +msgid "pitch in hertz" msgstr "" -#: js/ToneBlocks.js:495 -#: js/timbre.js:2092 -#.TRANS: a wavering effect in a musical tone -msgid "tremolo" +#: js/blocks/PitchBlocks.js:334 +msgid "The Pitch in Hertz block is the value in Hertz of the pitch of the note currently being played." msgstr "" -#: js/ToneBlocks.js:500 -#: js/ToneBlocks.js:569 -#: js/ToneBlocks.js:630 -#: js/ToneBlocks.js:689 -#: js/timbre.js:2134 -#: js/timbre.js:2222 -#: js/timbre.js:2317 -#: js/timbre.js:2419 -#.TRANS: rate at which tremolo wavers -msgid "rate" +#: js/blocks/PitchBlocks.js:367 +#: js/turtleactions/DictActions.js:87 +msgid "current pitch" msgstr "" -#: js/ToneBlocks.js:502 -#: js/ToneBlocks.js:630 -#: js/timbre.js:2137 -#: js/timbre.js:2328 -#.TRANS: amplitude of tremolo waver -msgid "depth" +#: js/blocks/PitchBlocks.js:373 +msgid "The Current Pitch block is used with the Pitch Converter block. In the example above, current pitch, sol 4, is displayed as 392 hertz." msgstr "" -#: js/ToneBlocks.js:559 -msgid "The Phaser block adds a sweeping sound." +#: js/blocks/PitchBlocks.js:410 +msgid "This block converts the pitch value of the last note played into different formats such as hertz, letter name, pitch number, et al." msgstr "" -#: js/ToneBlocks.js:566 -#: js/timbre.js:2098 -#.TRANS: alter the phase of the sound -msgid "phaser" +#: js/blocks/PitchBlocks.js:434 +msgid "alphabet" msgstr "" -#: js/ToneBlocks.js:569 -#: js/timbre.js:2422 -msgid "octaves" +#: js/blocks/PitchBlocks.js:436 +#.TRANS: Translate as "alphabet class" +msgid "letter class" msgstr "" -#: js/ToneBlocks.js:569 -#: js/timbre.js:2425 -msgid "base frequency" +#: js/blocks/PitchBlocks.js:437 +msgid "solfege class" msgstr "" -#: js/ToneBlocks.js:619 -msgid "The Chorus block adds a chorus effect." +#: js/blocks/PitchBlocks.js:438 +msgid "staff y" msgstr "" -#: js/ToneBlocks.js:627 -#: js/timbre.js:2096 -#.TRANS: musical effect to simulate a choral sound -msgid "chorus" +#: js/blocks/PitchBlocks.js:439 +msgid "solfege syllable" msgstr "" -#: js/ToneBlocks.js:630 -msgid "delay" +#: js/blocks/PitchBlocks.js:440 +msgid "pitch class" msgstr "" -#: js/ToneBlocks.js:678 -msgid "The Vibrato block adds a rapid, slight variation in pitch." +#: js/blocks/PitchBlocks.js:441 +msgid "scalar class" msgstr "" -#: js/ToneBlocks.js:686 -#: js/timbre.js:2094 -#.TRANS: a rapid, slight variation in pitch -msgid "vibrato" +#: js/blocks/PitchBlocks.js:443 +msgid "nth degree" msgstr "" -#: js/ToneBlocks.js:689 -#: js/timbre.js:2221 -msgid "intensity" +#: js/blocks/PitchBlocks.js:444 +msgid "pitch to shade" msgstr "" -#: js/ToneBlocks.js:733 -#.TRANS: select synthesizer -msgid "set synth" +#: js/blocks/PitchBlocks.js:445 +msgid "pitch to color" msgstr "" -#: js/ToneBlocks.js:804 -msgid "synth name" +#: js/blocks/PitchBlocks.js:629 +#: js/widgets/musickeyboard.js:735 +#.TRANS: MIDI is a technical standard for electronic music +msgid "MIDI" msgstr "" -#: js/ToneBlocks.js:842 -msgid "set default instrument" +#: js/blocks/PitchBlocks.js:642 +#.TRANS: set an offset associated with the numeric piano keyboard mapping +msgid "set pitch number offset" msgstr "" -#: js/ToneBlocks.js:895 -#: js/ToneBlocks.js:943 -#.TRANS: set the characteristics of a custom instrument -msgid "set instrument" +#: js/blocks/PitchBlocks.js:645 +msgid "The Set pitch number offset block is used to set the offset for mapping pitch numbers to pitch and octave." msgstr "" -#: js/ToneBlocks.js:898 -#: js/ToneBlocks.js:926 -#: js/ToneBlocks.js:932 -msgid "The Set instrument block selects a voice for the synthesizer," +#: js/blocks/PitchBlocks.js:679 +#.TRANS: convert piano key number (1-88) to pitch +msgid "number to pitch" msgstr "" -#: js/ToneBlocks.js:900 -#: js/ToneBlocks.js:934 -msgid "eg guitar piano violin or cello." +#: js/blocks/PitchBlocks.js:682 +msgid "The Number to pitch block will convert a pitch number to a pich name." msgstr "" -#: js/ToneBlocks.js:1015 -msgid "Import a sound file to use as an instrument and set its pitch center." +#: js/blocks/PitchBlocks.js:715 +#.TRANS: convert piano key number (1-88) to octave +msgid "number to octave" msgstr "" -#: js/ToneBlocks.js:1110 -msgid "Upload a sound file to connect with the sample block." +#: js/blocks/PitchBlocks.js:717 +msgid "The Number to octave block will convert a pitch number to an octave." msgstr "" -#: js/MeterBlocks.js:34 -#.TRANS: musical meter (time signature), e.g., 4:4 -msgid "current meter" +#: js/blocks/PitchBlocks.js:726 +msgid "y to pitch" msgstr "" -#: js/MeterBlocks.js:85 -#.TRANS: number of beats per minute -msgid "beat factor" +#: js/blocks/PitchBlocks.js:729 +msgid "Y to pitch block will convert a staff y position to corresponding pitch notation." msgstr "" -#: js/MeterBlocks.js:161 -msgid "The Beats per minute block returns the current beats per minute." +#: js/blocks/PitchBlocks.js:841 +msgid "accidental selector" msgstr "" -#: js/MeterBlocks.js:169 -#: js/status.js:152 -#.TRANS: number of beats played per minute -msgid "beats per minute2" +#: js/blocks/PitchBlocks.js:844 +msgid "The Accidental selector block is used to choose between double-sharp, sharp, natural, flat, and double-flat." msgstr "" -#: js/MeterBlocks.js:169 -#: js/MeterBlocks.js:1056 -#: js/MeterBlocks.js:1133 -#: js/MeterBlocks.js:1211 -#.TRANS: sets tempo by defining a beat and beats per minute -msgid "beats per minute" +#: js/blocks/PitchBlocks.js:858 +msgid "Pitch can be specified in terms of ni dha pa ma ga re sa." msgstr "" -#: js/MeterBlocks.js:233 -#.TRANS: count of current musical measure in meter -msgid "measure count" +#: js/blocks/PitchBlocks.js:872 +msgid "Pitch can be specified in terms of C D E F G A B." msgstr "" -#: js/MeterBlocks.js:241 -msgid "The Measure count block returns the current measure." +#: js/blocks/PitchBlocks.js:884 +msgid "solfege" msgstr "" -#: js/MeterBlocks.js:290 -#.TRANS: count of current beat in the meter -msgid "beat count" +#: js/blocks/PitchBlocks.js:887 +msgid "Pitch can be specified in terms of do re mi fa sol la ti." msgstr "" -#: js/MeterBlocks.js:300 -#: js/MeterBlocks.js:311 -#: js/MeterBlocks.js:565 -#: js/MeterBlocks.js:576 -msgid "The Beat count block is the number of the current beat," +#: js/blocks/PitchBlocks.js:922 +msgid "The Invert block rotates any contained notes around a target note." msgstr "" -#: js/MeterBlocks.js:313 -#: js/MeterBlocks.js:578 -msgid "eg 1, 2, 3, or 4." +#: js/blocks/PitchBlocks.js:929 +#.TRANS: pitch inversion rotates a pitch around another pitch +msgid "invert" msgstr "" -#: js/MeterBlocks.js:368 -#.TRANS: count the number of notes -msgid "sum note values" +#: js/blocks/PitchBlocks.js:968 +#.TRANS: pitch inversion rotates a pitch around another pitch (odd number) +msgid "invert (odd)" msgstr "" -#: js/MeterBlocks.js:376 -#: js/MeterBlocks.js:440 -msgid "The Note counter block can be used to count the number of contained notes." +#: js/blocks/PitchBlocks.js:1001 +#.TRANS: pitch inversion rotates a pitch around another pitch (even number) +msgid "invert (even)" msgstr "" -#: js/MeterBlocks.js:432 -#.TRANS: count the number of notes -msgid "note counter" +#: js/blocks/PitchBlocks.js:1022 +#.TRANS: register is the octave of the current pitch +msgid "register" msgstr "" -#: js/MeterBlocks.js:496 -#.TRANS: number of whole notes that have been played -msgid "whole notes played" +#: js/blocks/PitchBlocks.js:1026 +msgid "The Register block provides an easy way to modify the register (octave) of the notes that follow it." msgstr "" -#: js/MeterBlocks.js:505 -msgid "The Whole notes played block returns the total number of whole notes played." +#: js/blocks/PitchBlocks.js:1047 +#.TRANS: cents are units used to specify the ratio between pitches. There are 100 cents between successive notes. +msgid "50 cents" msgstr "" -#: js/MeterBlocks.js:555 -#: js/DictActions.js:83 -#.TRANS: number of notes that have been played -msgid "notes played" +#: js/blocks/PitchBlocks.js:1102 +msgid "The Semi-tone transposition block will shift the pitches contained inside Note blocks up (or down) by half steps." msgstr "" -#: js/MeterBlocks.js:653 -msgid "The No clock block decouples the notes from the master clock." +#: js/blocks/PitchBlocks.js:1104 +msgid "In the example shown above, sol is shifted up to sol#." msgstr "" -#: js/MeterBlocks.js:661 -#.TRANS: don't lock notes to master clock -msgid "no clock" +#: js/blocks/PitchBlocks.js:1110 +#.TRANS: adjust the amount of shift (up or down) of a pitch +msgid "semi-tone transpose" msgstr "" -#: js/MeterBlocks.js:700 -msgid "on weak beat do" +#: js/blocks/PitchBlocks.js:1143 +msgid "The Transpose by Ratio block will shift the pitches contained inside Note blocks up (or down) by a ratio" msgstr "" -#: js/MeterBlocks.js:705 -msgid "The On-weak-beat block lets you specify actions to take on weak (off) beats." +#: js/blocks/PitchBlocks.js:1149 +#.TRANS: adjust the amount of shift (up or down) of a pitch +msgid "transpose by ratio" msgstr "" -#: js/MeterBlocks.js:750 -msgid "on strong beat" +#: js/blocks/PitchBlocks.js:1232 +#.TRANS: down sixth means the note is five scale degrees below current note +msgid "down sixth" msgstr "" -#: js/MeterBlocks.js:758 -msgid "The On-strong-beat block lets you specify actions to take on specified beats." +#: js/blocks/PitchBlocks.js:1251 +#.TRANS: down third means the note is two scale degrees below current note +msgid "down third" msgstr "" -#: js/MeterBlocks.js:769 -msgid "beat" +#: js/blocks/PitchBlocks.js:1270 +#.TRANS: seventh means the note is the six scale degrees above current note +msgid "seventh" msgstr "" -#: js/MeterBlocks.js:813 -msgid "on every beat do" +#: js/blocks/PitchBlocks.js:1289 +#.TRANS: sixth means the note is the five scale degrees above current note +msgid "sixth" msgstr "" -#: js/MeterBlocks.js:821 -msgid "The On-every-beat block lets you specify actions to take on every beat." +#: js/blocks/PitchBlocks.js:1308 +#.TRANS: fifth means the note is the four scale degrees above current note +msgid "fifth" msgstr "" -#: js/MeterBlocks.js:874 -msgid "on every note do" +#: js/blocks/PitchBlocks.js:1328 +#.TRANS: fourth means the note is three scale degrees above current note +msgid "fourth" msgstr "" -#: js/MeterBlocks.js:882 -msgid "The On-every-note block lets you specify actions to take on every note." +#: js/blocks/PitchBlocks.js:1347 +#.TRANS: third means the note is two scale degrees above current note +msgid "third" msgstr "" -#: js/MeterBlocks.js:928 -#: js/MeterBlocks.js:999 -#.TRANS: sets tempo by defining a beat and beats per minute -msgid "master beats per minute" +#: js/blocks/PitchBlocks.js:1366 +#.TRANS: second means the note is one scale degree above current note +msgid "second" msgstr "" -#: js/MeterBlocks.js:952 -#: js/MeterBlocks.js:1078 -#: js/MeterBlocks.js:1135 -msgid "bpm" +#: js/blocks/PitchBlocks.js:1407 +msgid "The Scalar transposition block will shift the pitches contained inside Note blocks up (or down) the scale." msgstr "" -#: js/MeterBlocks.js:952 -#: js/MeterBlocks.js:1078 -#: js/MeterBlocks.js:1135 -msgid "beat value" +#: js/blocks/PitchBlocks.js:1409 +msgid "In the example shown above, sol is shifted up to la." msgstr "" -#: js/MeterBlocks.js:1024 -#: js/MeterBlocks.js:1167 -#: js/MeterBlocks.js:1241 -msgid "Beats per minute must be > 30." +#: js/blocks/PitchBlocks.js:1416 +#.TRANS: adjust the amount of shift (up or down) of a pitch by musical scale (scalar) steps +msgid "scalar transpose" msgstr "" -#: js/MeterBlocks.js:1027 -#: js/MeterBlocks.js:1170 -#: js/MeterBlocks.js:1244 -msgid "Maximum beats per minute is 1000." +#: js/blocks/PitchBlocks.js:1451 +msgid "The Accidental block is used to create sharps and flats" msgstr "" -#: js/MeterBlocks.js:1068 -msgid "The Beats per minute block sets the number of 1/4 notes per minute." +#: js/blocks/PitchBlocks.js:1458 +#.TRANS: An accidental is a modification to a pitch, e.g., sharp or flat. +msgid "accidental override" msgstr "" -#: js/MeterBlocks.js:1279 -#.TRANS: anacrusis -msgid "pickup" +#: js/blocks/PitchBlocks.js:1581 +msgid "The Hertz block (in combination with a Number block) will play a sound at the specified frequency." msgstr "" -#: js/MeterBlocks.js:1367 -msgid "number of beats" +#: js/blocks/PitchBlocks.js:1671 +msgid "The Pitch Number block will play a pitch associated by its number, e.g. 0 for C and 7 for G." msgstr "" -#: js/DictBlocks.js:77 -msgid "show dictionary" +#: js/blocks/PitchBlocks.js:1703 +#: js/blocks/PitchBlocks.js:1745 +#.TRANS: a numeric mapping of the notes in an octave based on the musical mode +#.TRANS: a numeric mapping of the notes in an octave based on the musical mode +msgid "nth modal pitch" msgstr "" -#: js/DictBlocks.js:129 -msgid "The Dictionary block returns a dictionary." +#: js/blocks/PitchBlocks.js:1706 +msgid "n^th Modal Pitch takes the pattern of pitches in semitones for a mode and makes each point a degree of the mode," msgstr "" -#: js/DictBlocks.js:197 -#: js/DictBlocks.js:339 -msgid "The Get-dict block returns a value in the dictionary for a specified key." +#: js/blocks/PitchBlocks.js:1708 +msgid "starting from 1 and regardless of tonal framework (i.e. not always 8 notes in the octave)" msgstr "" -#: js/DictBlocks.js:212 -#: js/DictBlocks.js:354 -#.TRANS: retrieve a value from the dictionary with a given key -msgid "get value" +#: js/blocks/PitchBlocks.js:1749 +msgid "N^th Modal Pitch takes a number as an input as the n^th degree for the given mode. 0 is the first position, 1 is the second, -1 is the note before the first etc." msgstr "" -#: js/DictBlocks.js:215 -#: js/DictBlocks.js:216 -#: js/DictBlocks.js:289 -#: js/DictBlocks.js:290 -#: js/DictBlocks.js:357 -#: js/DictBlocks.js:430 -#: js/DictBlocks.js:431 -msgid "key2" +#: js/blocks/PitchBlocks.js:1751 +msgid "The pitches change according to the mode specified without any need for respellings." msgstr "" -#: js/DictBlocks.js:271 -#: js/DictBlocks.js:411 -msgid "The Set-dict block sets a value in the dictionary for a specified key." +#: js/blocks/PitchBlocks.js:1790 +msgid "Scale Degree is a common convention in music. Scale Degree offers seven possible positions in the scale (1-7) and can be modified via accidentals." msgstr "" -#: js/DictBlocks.js:286 -#: js/DictBlocks.js:427 -#.TRANS: set a value in the dictionary for a given key -msgid "set value" +#: js/blocks/PitchBlocks.js:1792 +msgid "Scale Degree 1 is always the first pitch in a given scale, regardless of octave." msgstr "" -#: js/ExtrasBlocks.js:33 -msgid "fraction" +#: js/blocks/PitchBlocks.js:1814 +#.TRANS: step some number of notes in current musical scale +msgid "scalar step" msgstr "" -#: js/ExtrasBlocks.js:36 -msgid "Convert a float to a fraction" +#: js/blocks/PitchBlocks.js:1819 +msgid "The Scalar Step block (in combination with a Number block) will play the next pitch in a scale," msgstr "" -#: js/ExtrasBlocks.js:93 -msgid "save as ABC" +#: js/blocks/PitchBlocks.js:1821 +msgid "eg if the last note played was sol, Scalar Step 1 will play la." msgstr "" -#: js/ExtrasBlocks.js:96 -#: js/ExtrasBlocks.js:132 -#: js/ExtrasBlocks.js:168 -msgid "title" +#: js/blocks/PitchBlocks.js:1857 +msgid "The Pitch block specifies the pitch name and octave of a note that together determine the frequency of the note." msgstr "" -#: js/ExtrasBlocks.js:129 -msgid "save as Lilypond" +#: js/blocks/ProgramBlocks.js:33 +msgid "The Load-heap-from-app block loads the heap from a web page." msgstr "" -#: js/ExtrasBlocks.js:165 -msgid "save as SVG" +#: js/blocks/ProgramBlocks.js:44 +#.TRANS: load the heap contents from a URL +msgid "load heap from App" msgstr "" -#: js/ExtrasBlocks.js:216 -msgid "no background" +#: js/blocks/ProgramBlocks.js:95 +msgid "Error parsing JSON data:" msgstr "" -#: js/ExtrasBlocks.js:219 -msgid "The No background block eliminates the background from the saved SVG output." +#: js/blocks/ProgramBlocks.js:100 +msgid "404: Page not found" msgstr "" -#: js/ExtrasBlocks.js:247 -msgid "show blocks" +#: js/blocks/ProgramBlocks.js:133 +msgid "The Save-heap-to-app block saves the heap to a web page." msgstr "" -#: js/ExtrasBlocks.js:249 -msgid "The Show blocks block shows the blocks." +#: js/blocks/ProgramBlocks.js:144 +#.TRANS: save the heap contents to a URL +msgid "save heap to App" msgstr "" -#: js/ExtrasBlocks.js:274 -msgid "hide blocks" +#: js/blocks/ProgramBlocks.js:189 +msgid "Cannot find a valid heap for" msgstr "" -#: js/ExtrasBlocks.js:276 -msgid "The Hide blocks block hides the blocks." +#: js/blocks/ProgramBlocks.js:206 +msgid "The Load-heap block loads the heap from a file." msgstr "" -#: js/ExtrasBlocks.js:305 -#: js/ExtrasBlocks.js:335 -msgid "The Space block is used to add space between blocks." +#: js/blocks/ProgramBlocks.js:217 +#.TRANS: load the heap from a file +msgid "load heap" msgstr "" -#: js/ExtrasBlocks.js:373 -msgid "wait" +#: js/blocks/ProgramBlocks.js:270 +msgid "The file you selected does not contain a valid heap." msgstr "" -#: js/ExtrasBlocks.js:376 -msgid "The Wait block pauses the program for a specified number of seconds." +#: js/blocks/ProgramBlocks.js:275 +msgid "The loadHeap block needs a loadFile block." msgstr "" -#: js/ExtrasBlocks.js:430 -#: plugins/facebook.rtp:30 -msgid "comment" +#: js/blocks/ProgramBlocks.js:291 +msgid "The Set-heap block loads the heap." msgstr "" -#: js/ExtrasBlocks.js:466 -msgid "print" +#: js/blocks/ProgramBlocks.js:340 +msgid "The block you selected does not contain a valid heap." msgstr "" -#: js/ExtrasBlocks.js:473 -msgid "The Print block displays text at the top of the screen." +#: js/blocks/ProgramBlocks.js:343 +msgid "The Set heap block needs a heap." msgstr "" -#: js/ExtrasBlocks.js:579 -msgid "display grid" +#: js/blocks/ProgramBlocks.js:360 +msgid "The Load-dictionary block loads a dictionary from a file." msgstr "" -#: js/ExtrasBlocks.js:584 -msgid "The Display Grid Block changes the grid type" +#: js/blocks/ProgramBlocks.js:372 +#.TRANS: load a dictionary from a file +msgid "load dictionary" msgstr "" -#: js/ExtrasBlocks.js:686 -#: js/ExtrasBlocks.js:705 -#: js/ExtrasBlocks.js:728 -#: js/ExtrasBlocks.js:751 -#: js/ExtrasBlocks.js:769 -#: js/ExtrasBlocks.js:788 -#: js/ExtrasBlocks.js:807 -#: js/ExtrasBlocks.js:826 -msgid "unknown" +#: js/blocks/ProgramBlocks.js:390 +#: js/blocks/ProgramBlocks.js:658 +#: js/blocks/ToneBlocks.js:1025 +msgid "file" msgstr "" -#: js/SensorsBlocks.js:36 -msgid "The Input block prompts for keyboard input." +#: js/blocks/ProgramBlocks.js:444 +msgid "The file you selected does not contain a valid dictionary." msgstr "" -#: js/SensorsBlocks.js:46 -msgid "input" +#: js/blocks/ProgramBlocks.js:449 +msgid "The load dictionary block needs a load file block." msgstr "" -#: js/SensorsBlocks.js:64 -msgid "Input a value" +#: js/blocks/ProgramBlocks.js:466 +msgid "The Set-dictionary block loads a dictionary." msgstr "" -#: js/SensorsBlocks.js:126 -msgid "input value" +#: js/blocks/ProgramBlocks.js:477 +#.TRANS: load a dictionary from a JSON +msgid "set dictionary" msgstr "" -#: js/SensorsBlocks.js:131 -msgid "The Input-value block stores the input." +#: js/blocks/ProgramBlocks.js:546 +msgid "The block you selected does not contain a valid dictionary." msgstr "" -#: js/SensorsBlocks.js:238 -msgid "loudness" +#: js/blocks/ProgramBlocks.js:550 +msgid "The set dictionary block needs a dictionary." msgstr "" -#: js/SensorsBlocks.js:245 -msgid "The Loudness block returns the volume detected by the microphone." +#: js/blocks/ProgramBlocks.js:567 +msgid "The Save-heap block saves the heap to a file." msgstr "" -#: js/SensorsBlocks.js:300 -msgid "click" +#: js/blocks/ProgramBlocks.js:578 +#.TRANS: save the heap to a file +msgid "save heap" msgstr "" -#: js/SensorsBlocks.js:306 -msgid "The Click block triggers an event if a mouse has been clicked." +#: js/blocks/ProgramBlocks.js:629 +msgid "The Save-dictionary block saves a dictionary to a file." msgstr "" -#: js/SensorsBlocks.js:313 -msgid "The Click block triggers an event if a turtle has been clicked." +#: js/blocks/ProgramBlocks.js:640 +#.TRANS: save a dictionary to a file +msgid "save dictionary" msgstr "" -#: js/SensorsBlocks.js:342 -msgid "cursor over" +#: js/blocks/ProgramBlocks.js:720 +msgid "The Open palette block opens a palette." msgstr "" -#: js/SensorsBlocks.js:387 -msgid "cursor out" +#: js/blocks/ProgramBlocks.js:727 +msgid "open palette" msgstr "" -#: js/SensorsBlocks.js:433 -msgid "cursor button down" +#: js/blocks/ProgramBlocks.js:785 +msgid "The Delete block block removes a block." msgstr "" -#: js/SensorsBlocks.js:477 -msgid "cursor button up" +#: js/blocks/ProgramBlocks.js:797 +#.TRANS: Move this block to the trash. +msgid "delete block" msgstr "" -#: js/SensorsBlocks.js:638 -msgid "The Get red block returns the red component of the pixel under the mouse." +#: js/blocks/ProgramBlocks.js:861 +msgid "The Move block block moves a block." msgstr "" -#: js/SensorsBlocks.js:644 -msgid "The Get red block returns the red component of the pixel under the turtle." +#: js/blocks/ProgramBlocks.js:869 +#.TRANS: Move the position of a block on the screen. +msgid "move block" msgstr "" -#: js/SensorsBlocks.js:685 -#: plugins/rodi.rtp:216 -msgid "pixel color" +#: js/blocks/ProgramBlocks.js:881 +#: js/blocks/ProgramBlocks.js:1048 +msgid "block number" msgstr "" -#: js/SensorsBlocks.js:690 -msgid "The Get pixel block returns the color of the pixel under the mouse." +#: js/blocks/ProgramBlocks.js:935 +#.TRANS: Run program beginning at this block. +msgid "run block" msgstr "" -#: js/SensorsBlocks.js:696 -msgid "The Get pixel block returns the color of the pixel under the turtle." +#: js/blocks/ProgramBlocks.js:1025 +msgid "The Dock block block connections two blocks." msgstr "" -#: js/SensorsBlocks.js:758 -msgid "time" +#: js/blocks/ProgramBlocks.js:1036 +#.TRANS: We can connect a block to another block. +msgid "connect blocks" msgstr "" -#: js/SensorsBlocks.js:804 -msgid "cursor y" +#: js/blocks/ProgramBlocks.js:1048 +msgid "target block" msgstr "" -#: js/SensorsBlocks.js:809 -msgid "The Cursor Y block returns the vertical position of the mouse." +#: js/blocks/ProgramBlocks.js:1048 +msgid "connection number" msgstr "" -#: js/SensorsBlocks.js:845 -msgid "cursor x" +#: js/blocks/ProgramBlocks.js:1140 +msgid "The Make block block creates a new block." msgstr "" -#: js/SensorsBlocks.js:850 -msgid "The Cursor X block returns the horizontal position of the mouse." +#: js/blocks/ProgramBlocks.js:1152 +#.TRANS: Create a new block +msgid "make block" msgstr "" -#: js/SensorsBlocks.js:886 -msgid "mouse button" +#: js/blocks/ProgramBlocks.js:1285 +msgid "Cannot find block" msgstr "" -#: js/SensorsBlocks.js:888 -msgid "The Mouse-button block returns True if the mouse button is pressed." +#: js/blocks/ProgramBlocks.js:1304 +#: js/blocks/ProgramBlocks.js:1313 +msgid "Warning: block argument type mismatch" msgstr "" -#: js/SensorsBlocks.js:934 -msgid "to ASCII" +#: js/blocks/ProgramBlocks.js:1347 +msgid "The Open project block is used to open a project from a web page." msgstr "" -#: js/SensorsBlocks.js:938 -msgid "The To ASCII block converts numbers to letters." +#: js/blocks/ProgramBlocks.js:1357 +msgid "open project" msgstr "" -#: js/SensorsBlocks.js:1005 -msgid "The Keyboard block returns computer keyboard input." +#: js/blocks/ProgramBlocks.js:1410 +msgid "Please enter a valid URL." msgstr "" -#: js/IntervalsActions.js:216 -msgid "Adding missing pitch number 0." +#: js/blocks/ToneBlocks.js:34 +msgid "oscillator" msgstr "" -#: js/IntervalsActions.js:224 -msgid "Ignoring pitch numbers less than zero or greater than eleven." +#: js/blocks/ToneBlocks.js:42 +#: js/blocks/WidgetBlocks.js:179 +#: js/widgets/timbre.js:1558 +#: js/widgets/timbre.js:1808 +#.TRANS: there are different types (sine, triangle, square...) of oscillators. +#.TRANS: type of filter, e.g., lowpass, highpass, etc. +msgid "type" msgstr "" -#: js/IntervalsActions.js:230 -msgid "Ignoring duplicate pitch numbers." +#: js/blocks/ToneBlocks.js:44 +#: js/widgets/timbre.js:1562 +#.TRANS: Partials refers to the number of sine waves combined into the sound. +msgid "partials" msgstr "" -#: js/PitchActions.js:88 -msgid "The Scalar Step Block must be used inside of a Note Block." +#: js/blocks/ToneBlocks.js:76 +msgid "You are adding multiple oscillator blocks." msgstr "" -#: js/PitchActions.js:107 -msgid "The Scalar Step Block must be preceded by a Pitch Block." +#: js/blocks/ToneBlocks.js:144 +#: js/widgets/timbre.js:1225 +#.TRANS: a duo synthesizer combines a synth with a sequencer +msgid "duo synth" msgstr "" -#: js/DrumActions.js:231 -msgid "Noise Block: Did you mean to use a Note block?" +#: js/blocks/ToneBlocks.js:149 +msgid "The Duo synth block is a duo-frequency modulator used to define a timbre." msgstr "" -#: js/MeterActions.js:101 -#: js/MeterActions.js:139 -msgid "beats per minute must be greater than" +#: js/blocks/ToneBlocks.js:157 +#: js/widgets/timbre.js:1476 +msgid "vibrato rate" msgstr "" -#: js/MeterActions.js:111 -#: js/MeterActions.js:149 -msgid "maximum" +#: js/blocks/ToneBlocks.js:157 +msgid "vibrato intensity" msgstr "" -#: js/MeterActions.js:117 -#: js/MeterActions.js:155 -msgid "beats per minute is" +#: js/blocks/ToneBlocks.js:185 +#: js/widgets/timbre.js:1221 +#.TRANS: AM (amplitude modulation) synthesizer +msgid "AM synth" msgstr "" -#: js/ToneActions.js:134 -msgid "Vibrato intensity must be between 1 and 100." +#: js/blocks/ToneBlocks.js:189 +msgid "The AM synth block is an amplitude modulator used to define a timbre." msgstr "" -#: js/ToneActions.js:139 -msgid "Vibrato rate must be greater than 0." +#: js/blocks/ToneBlocks.js:224 +#: js/widgets/timbre.js:1223 +#.TRANS: FM (frequency modulation) synthesizer +msgid "FM synth" msgstr "" -#: js/ToneActions.js:192 -#: js/ToneActions.js:265 -#.TRANS: Depth is the intesity of the tremolo or chorus effect. -msgid "Depth is out of range." +#: js/blocks/ToneBlocks.js:228 +msgid "The FM synth block is a frequency modulator used to define a timbre." msgstr "" -#: js/ToneActions.js:301 -msgid "Distortion must be from 0 to 100." +#: js/blocks/ToneBlocks.js:262 +msgid "partial" msgstr "" -#: js/ToneActions.js:332 -#.TRANS: partials components in a harmonic series -msgid "Partial must be greater than or equal to 0." +#: js/blocks/ToneBlocks.js:265 +msgid "The Partial block is used to specify a weight for a specific partial harmonic." msgstr "" -#: js/ToneActions.js:378 -#: js/ToneActions.js:417 -#: js/ToneActions.js:456 -#: js/timbre.js:782 -msgid "Unable to use synth due to existing oscillator" +#: js/blocks/ToneBlocks.js:284 +#.TRANS: partials are weighted components in a harmonic series +msgid "Partial weight must be between 0 and 1." msgstr "" -#: js/ToneActions.js:388 -#: js/ToneActions.js:427 -msgid "The input cannot be negative." +#: js/blocks/ToneBlocks.js:297 +#.TRANS: partials are weighted components in a harmonic series +msgid "Partial block should be used inside of a Weighted-partials block." msgstr "" -#: js/DictActions.js:75 -#: js/DictActions.js:153 -#: js/DictActions.js:188 -msgid "font" +#: js/blocks/ToneBlocks.js:325 +#.TRANS: partials are weighted components in a harmonic series +msgid "weighted partials" msgstr "" -#: js/musicutils.js:363 -#: js/musicutils.js:471 -#: js/pitchdrummatrix.js:151 -#: js/musickeyboard.js:2563 -msgid "rest" +#: js/blocks/ToneBlocks.js:383 +msgid "The Harmonic block will add harmonics to the contained notes." msgstr "" -#: js/musicutils.js:565 -#.TRANS: ordinal number. Please keep exactly one space between each number. -msgid "1st 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th" +#: js/blocks/ToneBlocks.js:390 +#.TRANS: A harmonic is an overtone. +msgid "harmonic" msgstr "" -#: js/musicutils.js:629 -#: js/musicutils.js:812 -#: js/musicutils.js:911 -#.TRANS: augmented is a music term related to intervals -msgid "augmented" +#: js/blocks/ToneBlocks.js:431 +msgid "The Distortion block adds distortion to the pitch." msgstr "" -#: js/musicutils.js:631 -#: js/musicutils.js:813 -#: js/musicutils.js:910 -#.TRANS: diminished is a music term related to intervals and mode -msgid "diminished" +#: js/blocks/ToneBlocks.js:438 +#: js/widgets/timbre.js:2100 +#.TRANS: distortion is an alteration in the sound +msgid "distortion" msgstr "" -#: js/musicutils.js:639 -#.TRANS: twelve semi-tone scale for music -msgid "chromatic" +#: js/blocks/ToneBlocks.js:487 +msgid "The Tremolo block adds a wavering effect." msgstr "" -#: js/musicutils.js:640 -msgid "algerian" +#: js/blocks/ToneBlocks.js:495 +#: js/widgets/timbre.js:2092 +#.TRANS: a wavering effect in a musical tone +msgid "tremolo" msgstr "" -#: js/musicutils.js:641 -msgid "spanish" +#: js/blocks/ToneBlocks.js:500 +#: js/blocks/ToneBlocks.js:569 +#: js/blocks/ToneBlocks.js:630 +#: js/blocks/ToneBlocks.js:689 +#: js/widgets/timbre.js:2134 +#: js/widgets/timbre.js:2222 +#: js/widgets/timbre.js:2317 +#: js/widgets/timbre.js:2419 +#.TRANS: rate at which tremolo wavers +msgid "rate" msgstr "" -#: js/musicutils.js:643 -#.TRANS: modal scale in music -msgid "octatonic" +#: js/blocks/ToneBlocks.js:502 +#: js/blocks/ToneBlocks.js:630 +#: js/widgets/timbre.js:2137 +#: js/widgets/timbre.js:2328 +#.TRANS: amplitude of tremolo waver +msgid "depth" msgstr "" -#: js/musicutils.js:645 -#.TRANS: harmonic major scale in music -msgid "harmonic major" +#: js/blocks/ToneBlocks.js:559 +msgid "The Phaser block adds a sweeping sound." msgstr "" -#: js/musicutils.js:647 -#.TRANS: natural minor scales in music -msgid "natural minor" +#: js/blocks/ToneBlocks.js:566 +#: js/widgets/timbre.js:2098 +#.TRANS: alter the phase of the sound +msgid "phaser" msgstr "" -#: js/musicutils.js:649 -#.TRANS: harmonic minor scale in music -msgid "harmonic minor" +#: js/blocks/ToneBlocks.js:569 +#: js/turtleactions/IntervalsActions.js:114 +#: js/widgets/timbre.js:2422 +msgid "octaves" msgstr "" -#: js/musicutils.js:651 -#.TRANS: melodic minor scale in music -msgid "melodic minor" +#: js/blocks/ToneBlocks.js:569 +#: js/widgets/timbre.js:2425 +msgid "base frequency" msgstr "" -#: js/musicutils.js:655 -#.TRANS: modal scale for music -msgid "dorian" +#: js/blocks/ToneBlocks.js:619 +msgid "The Chorus block adds a chorus effect." msgstr "" -#: js/musicutils.js:657 -#.TRANS: modal scale for music -msgid "phrygian" +#: js/blocks/ToneBlocks.js:627 +#: js/widgets/timbre.js:2096 +#.TRANS: musical effect to simulate a choral sound +msgid "chorus" msgstr "" -#: js/musicutils.js:659 -#.TRANS: modal scale for music -msgid "lydian" +#: js/blocks/ToneBlocks.js:630 +msgid "delay" msgstr "" -#: js/musicutils.js:661 -#.TRANS: modal scale for music -msgid "mixolydian" +#: js/blocks/ToneBlocks.js:678 +msgid "The Vibrato block adds a rapid, slight variation in pitch." msgstr "" -#: js/musicutils.js:665 -#.TRANS: modal scale for music -msgid "locrian" +#: js/blocks/ToneBlocks.js:686 +#: js/widgets/timbre.js:2094 +#.TRANS: a rapid, slight variation in pitch +msgid "vibrato" msgstr "" -#: js/musicutils.js:667 -#.TRANS: minor jazz scale for music -msgid "jazz minor" +#: js/blocks/ToneBlocks.js:689 +#: js/widgets/timbre.js:2221 +msgid "intensity" msgstr "" -#: js/musicutils.js:669 -#.TRANS: bebop scale for music -msgid "bebop" +#: js/blocks/ToneBlocks.js:733 +#.TRANS: select synthesizer +msgid "set synth" msgstr "" -#: js/musicutils.js:670 -msgid "arabic" +#: js/blocks/ToneBlocks.js:804 +msgid "synth name" msgstr "" -#: js/musicutils.js:671 -msgid "byzantine" +#: js/blocks/ToneBlocks.js:842 +msgid "set default instrument" msgstr "" -#: js/musicutils.js:673 -#.TRANS: musical scale for music by Verdi -msgid "enigmatic" +#: js/blocks/ToneBlocks.js:895 +#: js/blocks/ToneBlocks.js:943 +#.TRANS: set the characteristics of a custom instrument +msgid "set instrument" msgstr "" -#: js/musicutils.js:674 -msgid "ethiopian" +#: js/blocks/ToneBlocks.js:898 +#: js/blocks/ToneBlocks.js:926 +#: js/blocks/ToneBlocks.js:932 +msgid "The Set instrument block selects a voice for the synthesizer," msgstr "" -#: js/musicutils.js:676 -#.TRANS: Ethiopic scale for music -msgid "geez" +#: js/blocks/ToneBlocks.js:900 +#: js/blocks/ToneBlocks.js:934 +msgid "eg guitar piano violin or cello." msgstr "" -#: js/musicutils.js:677 -msgid "hindu" +#: js/blocks/ToneBlocks.js:1015 +msgid "Import a sound file to use as an instrument and set its pitch center." msgstr "" -#: js/musicutils.js:678 -msgid "hungarian" +#: js/blocks/ToneBlocks.js:1110 +msgid "Upload a sound file to connect with the sample block." msgstr "" -#: js/musicutils.js:680 -#.TRANS: minor Romanian scale for music -msgid "romanian minor" +#: js/blocks/VolumeBlocks.js:35 +msgid "synth volume" msgstr "" -#: js/musicutils.js:681 -msgid "spanish gypsy" +#: js/blocks/VolumeBlocks.js:39 +msgid "The Synth volume block returns the current volume of the current synthesizer." msgstr "" -#: js/musicutils.js:683 -#.TRANS: musical scale for Mid-Eastern music -msgid "maqam" +#: js/blocks/VolumeBlocks.js:105 +msgid "master volume" msgstr "" -#: js/musicutils.js:685 -#.TRANS: minor blues scale for music -msgid "minor blues" +#: js/blocks/VolumeBlocks.js:109 +msgid "The Master volume block returns the master volume." msgstr "" -#: js/musicutils.js:687 -#.TRANS: major blues scale for music -msgid "major blues" +#: js/blocks/VolumeBlocks.js:355 +#: js/blocks/VolumeBlocks.js:524 +msgid "set synth volume" msgstr "" -#: js/musicutils.js:688 -msgid "whole tone" +#: js/blocks/VolumeBlocks.js:362 +#: js/blocks/VolumeBlocks.js:545 +msgid "synth" msgstr "" -#: js/musicutils.js:690 -#.TRANS: pentatonic is a general term that means "five note scale". This scale is typically known as "minor pentatonic" -msgid "minor pentatonic" +#: js/blocks/VolumeBlocks.js:403 +#: js/blocks/VolumeBlocks.js:577 +#: js/blocks/VolumeBlocks.js:740 +#: js/turtleactions/VolumeActions.js:173 +msgid "Setting volume to 0." msgstr "" -#: js/musicutils.js:692 -#.TRANS: pentatonic is a general term that means "five note scale". This scale is typically known as "major pentatonic" -msgid "major pentatonic" +#: js/blocks/VolumeBlocks.js:440 +msgid "Synth not found" msgstr "" -#: js/musicutils.js:693 -msgid "chinese" +#: js/blocks/VolumeBlocks.js:494 +msgid "set drum volume" msgstr "" -#: js/musicutils.js:694 -msgid "egyptian" +#: js/blocks/VolumeBlocks.js:530 +msgid "The Set synth volume block will change the volume of a particular synth," msgstr "" -#: js/musicutils.js:696 -#.TRANS: https://en.wikipedia.org/wiki/Hirajoshi_scale NOTE: There are three different versions of this scale -msgid "hirajoshi" +#: js/blocks/VolumeBlocks.js:532 +msgid "eg guitar violin snare drum etc." msgstr "" -#: js/musicutils.js:697 -msgid "Japan" +#: js/blocks/VolumeBlocks.js:534 +msgid "The default volume is 50." msgstr "" -#: js/musicutils.js:699 -#.TRANS: https://en.wikipedia.org/wiki/In_scale and https://en.wikipedia.org/wiki/Sakura_Sakura -msgid "in" +#: js/blocks/VolumeBlocks.js:536 +msgid "The range is 0 for silence to 100 for full volume." msgstr "" -#: js/musicutils.js:701 -#.TRANS: https://en.wikipedia.org/wiki/Miny%C5%8D_scale -msgid "minyo" +#: js/blocks/VolumeBlocks.js:597 +msgid "set panning" msgstr "" -#: js/musicutils.js:703 -#.TRANS: Italian mathematician -msgid "fibonacci" +#: js/blocks/VolumeBlocks.js:603 +msgid "The Set Panning block sets the panning for all synthesizers." msgstr "" -#: js/musicutils.js:708 -#: js/musicutils.js:1106 -#.TRANS: lowpass filter -msgid "lowpass" +#: js/blocks/VolumeBlocks.js:625 +msgid "Warning: Sound is coming out from only the left or right side." msgstr "" -#: js/musicutils.js:710 -#: js/musicutils.js:1107 -#.TRANS: bandpass filter -msgid "bandpass" +#: js/blocks/VolumeBlocks.js:647 +#: js/blocks/VolumeBlocks.js:695 +msgid "set master volume" msgstr "" -#: js/musicutils.js:712 -#: js/musicutils.js:1108 -#.TRANS: high-shelf filter -msgid "highshelf" +#: js/blocks/VolumeBlocks.js:653 +msgid "The Set master volume block sets the volume for all synthesizers." msgstr "" -#: js/musicutils.js:714 -#: js/musicutils.js:1109 -#.TRANS: low-shelf filter -msgid "lowshelf" +#: js/blocks/VolumeBlocks.js:784 +msgid "The Set relative volume block changes the volume of the contained notes." msgstr "" -#: js/musicutils.js:716 -#: js/musicutils.js:1110 -#.TRANS: notch-shelf filter -msgid "notch" +#: js/blocks/VolumeBlocks.js:791 +msgid "set relative volume" msgstr "" -#: js/musicutils.js:718 -#: js/musicutils.js:1111 -#.TRANS: all-pass filter -msgid "allpass" +#: js/blocks/VolumeBlocks.js:857 +msgid "decrescendo" msgstr "" -#: js/musicutils.js:720 -#: js/musicutils.js:1112 -#.TRANS: peaking filter -msgid "peaking" +#: js/blocks/VolumeBlocks.js:921 +msgid "crescendo" msgstr "" -#: js/musicutils.js:731 -#: js/synthutils.js:58 -#.TRANS: musical instrument -msgid "violin" +#: js/blocks/WidgetBlocks.js:81 +#.TRANS: sound envelope (ADSR) +msgid "envelope" msgstr "" -#: js/musicutils.js:732 -#: js/synthutils.js:60 -#.TRANS: viola musical instrument -msgid "viola" +#: js/blocks/WidgetBlocks.js:89 +#.TRANS: Attack time is the time taken for initial run-up of level from nil to peak, beginning when the key is first pressed. +msgid "attack" msgstr "" -#: js/musicutils.js:733 -#: js/synthutils.js:98 -#.TRANS: xylophone musical instrument -msgid "xylophone" +#: js/blocks/WidgetBlocks.js:91 +#.TRANS: Decay time is the time taken for the subsequent run down from the attack level to the designated sustain level. +msgid "decay" msgstr "" -#: js/musicutils.js:734 -#: js/synthutils.js:120 -#.TRANS: vibraphone musical instrument -msgid "vibraphone" +#: js/blocks/WidgetBlocks.js:93 +#.TRANS: Sustain level is the level during the main sequence of the sound's duration, until the key is released. +msgid "sustain" msgstr "" -#: js/musicutils.js:735 -#: js/synthutils.js:62 -#.TRANS: musical instrument -msgid "cello" +#: js/blocks/WidgetBlocks.js:95 +#.TRANS: Release time is the time taken for the level to decay from the sustain level to zero after the key is released. +msgid "release" msgstr "" -#: js/musicutils.js:737 -#: js/synthutils.js:66 -#.TRANS: viola musical instrument -msgid "double bass" +#: js/blocks/WidgetBlocks.js:113 +msgid "Attack value should be from 0 to 100." msgstr "" -#: js/musicutils.js:738 -#: js/synthutils.js:68 -#: js/rhythmruler.js:2119 -#.TRANS: musical instrument -msgid "guitar" +#: js/blocks/WidgetBlocks.js:116 +msgid "Decay value should be from 0 to 100." msgstr "" -#: js/musicutils.js:739 -#: js/synthutils.js:70 -#.TRANS: musical instrument -msgid "acoustic guitar" +#: js/blocks/WidgetBlocks.js:119 +msgid "Sustain value should be from 0 to 100." msgstr "" -#: js/musicutils.js:740 -#: js/synthutils.js:72 -#.TRANS: musical instrument -msgid "flute" +#: js/blocks/WidgetBlocks.js:122 +msgid "Release value should be from 0-100." msgstr "" -#: js/musicutils.js:741 -#: js/synthutils.js:74 -#.TRANS: musical instrument -msgid "clarinet" +#: js/blocks/WidgetBlocks.js:140 +msgid "You are adding multiple envelope blocks." msgstr "" -#: js/musicutils.js:742 -#: js/synthutils.js:76 -#.TRANS: musical instrument -msgid "saxophone" +#: js/blocks/WidgetBlocks.js:171 +#.TRANS: a filter removes some unwanted components from a signal +msgid "filter" msgstr "" -#: js/musicutils.js:743 -#: js/synthutils.js:78 -#.TRANS: musical instrument -msgid "tuba" +#: js/blocks/WidgetBlocks.js:181 +#: js/widgets/timbre.js:1818 +#.TRANS: rolloff is the steepness of a change in frequency. +msgid "rolloff" msgstr "" -#: js/musicutils.js:744 -#: js/synthutils.js:80 -#.TRANS: musical instrument -msgid "trumpet" +#: js/blocks/WidgetBlocks.js:213 +#.TRANS: rolloff is the steepness of a change in frequency. +msgid "Rolloff value should be either -12, -24, -48, or -96 decibels/octave." msgstr "" -#: js/musicutils.js:745 -#: js/synthutils.js:82 -#.TRANS: musical instrument -msgid "oboe" +#: js/blocks/WidgetBlocks.js:252 +msgid "The Temperament tool is used to define custom tuning." msgstr "" -#: js/musicutils.js:746 -#: js/synthutils.js:84 -#.TRANS: musical instrument -msgid "trombone" +#: js/blocks/WidgetBlocks.js:332 +#: js/blocks/WidgetBlocks.js:1573 +#: js/widgets/sampler.js:547 +msgid "Upload a sample and adjust its pitch center." msgstr "" -#: js/musicutils.js:747 -#: js/synthutils.js:100 -#.TRANS: polytone synthesizer -msgid "electronic synth" +#: js/blocks/WidgetBlocks.js:339 +#.TRANS: the speed at music is should be played. +msgid "sampler" msgstr "" -#: js/musicutils.js:748 -#: js/synthutils.js:102 -#.TRANS: simple monotone synthesizer -msgid "simple 1" +#: js/blocks/WidgetBlocks.js:517 +msgid "The Meter block opens a tool to select strong beats for the meter." msgstr "" -#: js/musicutils.js:749 -msgid "simple 2" +#: js/blocks/WidgetBlocks.js:573 +msgid "The oscilloscope block opens a tool to visualize waveforms." msgstr "" -#: js/musicutils.js:750 -msgid "simple 3" +#: js/blocks/WidgetBlocks.js:578 +msgid "oscilloscope" msgstr "" -#: js/musicutils.js:751 -msgid "simple 4" +#: js/blocks/WidgetBlocks.js:645 +msgid "The Custom mode block opens a tool to explore musical mode (the spacing of the notes in a scale)." msgstr "" -#: js/musicutils.js:753 -#: js/synthutils.js:49 -#.TRANS: brown noise synthesizer -msgid "brown noise" +#: js/blocks/WidgetBlocks.js:651 +#.TRANS: musical mode is the pattern of half-steps in an octave, e.g., Major or Minor modes +msgid "custom mode" msgstr "" -#: js/musicutils.js:754 -#: js/synthutils.js:51 -#.TRANS: pink noise synthesizer -msgid "pink noise" +#: js/blocks/WidgetBlocks.js:700 +msgid "The Tempo block opens a metronome to visualize the beat." msgstr "" -#: js/musicutils.js:756 -#: js/synthutils.js:127 -#: js/rhythmruler.js:1670 -#: js/rhythmruler.js:1928 -#.TRANS: musical instrument -msgid "snare drum" +#: js/blocks/WidgetBlocks.js:762 +msgid "The Arpeggio Widget is used to compose chord sequences." msgstr "" -#: js/musicutils.js:757 -#: js/synthutils.js:129 -#.TRANS: musical instrument -msgid "kick drum" +#: js/blocks/WidgetBlocks.js:837 +msgid "The Pitch drum matrix is used to map pitches to drum sounds." msgstr "" -#: js/musicutils.js:758 -#: js/synthutils.js:131 -#.TRANS: musical instrument -msgid "tom tom" +#: js/blocks/WidgetBlocks.js:842 +#.TRANS: makes a mapping between pitches and drum sounds +msgid "pitch-drum mapper" msgstr "" -#: js/musicutils.js:759 -#: js/synthutils.js:133 -#.TRANS: musical instrument -msgid "floor tom" +#: js/blocks/WidgetBlocks.js:891 +msgid "You must have at least one pitch block and one drum block in the matrix." msgstr "" -#: js/musicutils.js:760 -#: js/synthutils.js:135 -#.TRANS: musical instrument -msgid "bass drum" +#: js/blocks/WidgetBlocks.js:920 +msgid "The Pitch slider tool to is used to generate pitches at selected frequencies." msgstr "" -#: js/musicutils.js:761 -#: js/synthutils.js:137 -#.TRANS: a drum made from an inverted cup -msgid "cup drum" +#: js/blocks/WidgetBlocks.js:925 +#.TRANS: widget to generate pitches using a slider +msgid "pitch slider" msgstr "" -#: js/musicutils.js:762 -#: js/synthutils.js:139 -#.TRANS: musical instrument -msgid "darbuka drum" +#: js/blocks/WidgetBlocks.js:977 +msgid "chromatic keyboard" msgstr "" -#: js/musicutils.js:763 -#: js/synthutils.js:143 -#.TRANS: musical instrument -msgid "hi hat" +#: js/blocks/WidgetBlocks.js:1011 +#: js/blocks/WidgetBlocks.js:1077 +#.TRANS: widget to generate pitches using a slider +msgid "music keyboard" msgstr "" -#: js/musicutils.js:764 -#: js/synthutils.js:145 -#.TRANS: a small metal bell -msgid "ride bell" +#: js/blocks/WidgetBlocks.js:1062 +#: js/blocks/WidgetBlocks.js:1069 +msgid "The Music keyboard block opens a piano keyboard that can be used to create notes." msgstr "" -#: js/musicutils.js:765 -#: js/synthutils.js:147 -#.TRANS: musical instrument -msgid "cow bell" +#: js/blocks/WidgetBlocks.js:1128 +msgid "The Pitch staircase tool to is used to generate pitches from a given ratio." msgstr "" -#: js/musicutils.js:766 -msgid "japanese drum" +#: js/blocks/WidgetBlocks.js:1135 +#.TRANS: generate a progressive sequence of pitches +msgid "pitch staircase" msgstr "" -#: js/musicutils.js:767 -#: js/synthutils.js:153 -#.TRANS: musical instrument -msgid "japanese bell" +#: js/blocks/WidgetBlocks.js:1222 +msgid "The Rhythm Maker block opens a tool to create drum machines." msgstr "" -#: js/musicutils.js:768 -#: js/synthutils.js:149 -#.TRANS: musical instrument -msgid "triangle bell" +#: js/blocks/WidgetBlocks.js:1291 +msgid "G major scale" msgstr "" -#: js/musicutils.js:769 -#: js/synthutils.js:151 -#.TRANS: musical instrument -msgid "finger cymbals" +#: js/blocks/WidgetBlocks.js:1326 +msgid "C major scale" msgstr "" -#: js/musicutils.js:770 -#: js/synthutils.js:155 -#.TRANS: a musically tuned set of bells -msgid "chime" +#: js/blocks/WidgetBlocks.js:1366 +msgid "The Phrase Maker block opens a tool to create musical phrases." msgstr "" -#: js/musicutils.js:771 -#: js/synthutils.js:157 -#.TRANS: a musical instrument -msgid "gong" +#: js/blocks/WidgetBlocks.js:1373 +#.TRANS: assigns pitch to a sequence of beats to generate a melody +msgid "phrase maker" msgstr "" -#: js/musicutils.js:772 -#: js/synthutils.js:159 -#.TRANS: sound effect -msgid "clang" +#: js/blocks/WidgetBlocks.js:1444 +msgid "You must have at least one pitch block and one rhythm block in the matrix." msgstr "" -#: js/musicutils.js:773 -#: js/synthutils.js:161 -#.TRANS: sound effect -msgid "crash" +#: js/blocks/WidgetBlocks.js:1503 +msgid "The Status block opens a tool for inspecting the status of Music Blocks as it is running." msgstr "" -#: js/musicutils.js:774 -#: js/synthutils.js:163 -#.TRANS: sound effect -msgid "bottle" +#: js/blocks/WidgetBlocks.js:1580 +#.TRANS: AI-generated music +msgid "aimusic" msgstr "" -#: js/musicutils.js:775 -#: js/synthutils.js:165 -#.TRANS: sound effect -msgid "clap" +#: js/turtleactions/MeterActions.js:101 +#: js/turtleactions/MeterActions.js:139 +msgid "beats per minute must be greater than" msgstr "" -#: js/musicutils.js:776 -#: js/synthutils.js:167 -#.TRANS: sound effect -msgid "slap" +#: js/turtleactions/MeterActions.js:111 +#: js/turtleactions/MeterActions.js:149 +msgid "maximum" msgstr "" -#: js/musicutils.js:777 -#: js/synthutils.js:169 -#.TRANS: sound effect -msgid "splash" +#: js/turtleactions/MeterActions.js:117 +#: js/turtleactions/MeterActions.js:155 +msgid "beats per minute is" msgstr "" -#: js/musicutils.js:778 -#: js/synthutils.js:171 -#.TRANS: sound effect -msgid "bubbles" +#: js/turtleactions/DictActions.js:75 +#: js/turtleactions/DictActions.js:142 +#: js/turtleactions/DictActions.js:172 +msgid "font" msgstr "" -#: js/musicutils.js:779 -#: js/synthutils.js:173 -#.TRANS: sound effect -msgid "raindrop" +#: js/turtleactions/DictActions.js:255 +msgid "Dictionary with this name does not exist" msgstr "" -#: js/musicutils.js:780 -#: js/synthutils.js:175 -#.TRANS: animal sound effect -msgid "cat" +#: js/turtleactions/DictActions.js:259 +msgid "Key with this name does not exist in " msgstr "" -#: js/musicutils.js:781 -#: js/synthutils.js:177 -#.TRANS: animal sound effect -msgid "cricket" +#: js/turtleactions/DrumActions.js:227 +msgid "Noise Block: Did you mean to use a Note block?" msgstr "" -#: js/musicutils.js:782 -#: js/synthutils.js:179 -#.TRANS: animal sound effect -msgid "dog" +#: js/turtleactions/IntervalsActions.js:113 +msgid "one" msgstr "" -#: js/musicutils.js:784 -#: js/synthutils.js:86 -#.TRANS: musical instrument -msgid "banjo" +#: js/turtleactions/IntervalsActions.js:113 +msgid "two" msgstr "" -#: js/musicutils.js:785 -#: js/synthutils.js:88 -#.TRANS: musical instrument -msgid "koto" +#: js/turtleactions/IntervalsActions.js:113 +msgid "three" msgstr "" -#: js/musicutils.js:786 -#: js/synthutils.js:90 -#.TRANS: musical instrument -msgid "dulcimer" +#: js/turtleactions/IntervalsActions.js:113 +msgid "four" msgstr "" -#: js/musicutils.js:787 -#: js/synthutils.js:92 -#.TRANS: musical instrument -msgid "electric guitar" +#: js/turtleactions/IntervalsActions.js:113 +msgid "five" msgstr "" -#: js/musicutils.js:788 -#: js/synthutils.js:94 -#.TRANS: musical instrument -msgid "bassoon" +#: js/turtleactions/IntervalsActions.js:113 +msgid "six" msgstr "" -#: js/musicutils.js:789 -#: js/synthutils.js:96 -#.TRANS: musical instrument -msgid "celeste" +#: js/turtleactions/IntervalsActions.js:113 +msgid "seven" msgstr "" -#: js/musicutils.js:791 -#: js/musicutils.js:1123 -#: js/musicutils.js:1131 -#: js/temperament.js:650 -#.TRANS: musical temperament -msgid "equal" +#: js/turtleactions/IntervalsActions.js:113 +msgid "eight" msgstr "" -#: js/musicutils.js:793 -#: js/musicutils.js:1125 -#: js/musicutils.js:1133 -#.TRANS: musical temperament -msgid "Pythagorean" +#: js/turtleactions/IntervalsActions.js:113 +msgid "nine" msgstr "" -#: js/musicutils.js:795 -#: js/musicutils.js:1124 -#: js/musicutils.js:1132 -#.TRANS: musical temperament -msgid "just intonation" +#: js/turtleactions/IntervalsActions.js:119 +msgid "a" msgstr "" -#: js/musicutils.js:797 -#: js/musicutils.js:1126 -#: js/musicutils.js:1127 -#: js/musicutils.js:1134 -#: js/musicutils.js:1135 -#.TRANS: musical temperament -msgid "meantone" +#: js/turtleactions/IntervalsActions.js:120 +msgid "below" msgstr "" -#: js/musicutils.js:814 -msgid "major 7th" +#: js/turtleactions/IntervalsActions.js:124 +msgid "above" msgstr "" -#: js/musicutils.js:815 -msgid "minor 7th" +#: js/turtleactions/IntervalsActions.js:131 +msgid "plus" msgstr "" -#: js/musicutils.js:816 -msgid "dominant 7th" +#: js/turtleactions/IntervalsActions.js:139 +msgid " below" msgstr "" -#: js/musicutils.js:817 -msgid "minor-major 7th" +#: js/turtleactions/IntervalsActions.js:257 +msgid "Adding missing pitch number 0." msgstr "" -#: js/musicutils.js:818 -msgid "fully-diminished 7th" +#: js/turtleactions/IntervalsActions.js:265 +msgid "Ignoring pitch numbers less than zero or greater than eleven." msgstr "" -#: js/musicutils.js:819 -msgid "half-diminished 7th" +#: js/turtleactions/IntervalsActions.js:271 +msgid "Ignoring duplicate pitch numbers." msgstr "" -#: js/musicutils.js:4379 -#: js/musicutils.js:4416 -msgid "current" +#: js/turtleactions/ToneActions.js:134 +msgid "Vibrato intensity must be between 1 and 100." msgstr "" -#: js/musicutils.js:4382 -#: js/musicutils.js:4407 -msgid "next" +#: js/turtleactions/ToneActions.js:139 +msgid "Vibrato rate must be greater than 0." msgstr "" -#: js/musicutils.js:4385 -#: js/musicutils.js:4412 -msgid "previous" +#: js/turtleactions/ToneActions.js:192 +#: js/turtleactions/ToneActions.js:265 +#.TRANS: Depth is the intesity of the tremolo or chorus effect. +msgid "Depth is out of range." msgstr "" -#: js/synthutils.js:104 -#.TRANS: simple monotone synthesizer -msgid "simple-2" +#: js/turtleactions/ToneActions.js:301 +msgid "Distortion must be from 0 to 100." msgstr "" -#: js/synthutils.js:106 -#.TRANS: simple monotone synthesizer -msgid "simple-3" +#: js/turtleactions/ToneActions.js:332 +#.TRANS: partials components in a harmonic series +msgid "Partial must be greater than or equal to 0." msgstr "" -#: js/synthutils.js:108 -#.TRANS: simple monotone synthesizer -msgid "simple-4" +#: js/turtleactions/ToneActions.js:378 +#: js/turtleactions/ToneActions.js:417 +#: js/turtleactions/ToneActions.js:456 +#: js/widgets/timbre.js:782 +msgid "Unable to use synth due to existing oscillator" msgstr "" -#: js/synthutils.js:141 -#.TRANS: musical instrument -msgid "taiko" +#: js/turtleactions/ToneActions.js:388 +#: js/turtleactions/ToneActions.js:427 +msgid "The input cannot be negative." msgstr "" -#: js/modewidget.js:86 -#: js/modewidget.js:88 -#: js/modewidget.js:642 -#: js/modewidget.js:644 -#: js/modewidget.js:712 -#: js/modewidget.js:714 -#: js/temperament.js:2078 -#: js/rhythmruler.js:189 -#: js/rhythmruler.js:1410 -#: js/rhythmruler.js:1412 -#: js/rhythmruler.js:1435 -#: js/rhythmruler.js:1437 -#: js/meterwidget.js:89 -#: js/meterwidget.js:91 +#: js/widgets/modewidget.js:86 +#: js/widgets/modewidget.js:88 +#: js/widgets/modewidget.js:642 +#: js/widgets/modewidget.js:644 +#: js/widgets/modewidget.js:712 +#: js/widgets/modewidget.js:714 +#: js/widgets/meterwidget.js:194 +#: js/widgets/meterwidget.js:196 +#: js/widgets/temperament.js:2236 +#: js/widgets/rhythmruler.js:457 +#: js/widgets/rhythmruler.js:1790 +#: js/widgets/rhythmruler.js:1792 +#: js/widgets/rhythmruler.js:1816 +#: js/widgets/rhythmruler.js:1818 msgid "Play all" msgstr "" -#: js/modewidget.js:115 -#: js/pitchstaircase.js:641 -#: js/phrasemaker.js:339 -#: js/pitchdrummatrix.js:94 -#: js/pitchslider.js:125 -#: js/temperament.js:2083 -#: js/musickeyboard.js:530 -#: js/timbre.js:756 -#: js/meterwidget.js:124 -#: js/arpeggio.js:103 +#: js/widgets/modewidget.js:115 +#: js/widgets/meterwidget.js:229 +#: js/widgets/pitchdrummatrix.js:166 +#: js/widgets/pitchslider.js:125 +#: js/widgets/pitchstaircase.js:641 +#: js/widgets/temperament.js:2244 +#: js/widgets/timbre.js:756 +#: js/widgets/arpeggio.js:103 +#: js/widgets/musickeyboard.js:688 +#: js/widgets/phrasemaker.js:550 msgid "Save" msgstr "" -#: js/modewidget.js:121 -#: js/pitchstaircase.js:686 -#: js/phrasemaker.js:356 -#: js/pitchdrummatrix.js:109 -#: js/musickeyboard.js:534 -#: js/rhythmruler.js:269 -#: js/arpeggio.js:118 +#: js/widgets/modewidget.js:121 +#: js/widgets/pitchdrummatrix.js:181 +#: js/widgets/pitchstaircase.js:686 +#: js/widgets/arpeggio.js:118 +#: js/widgets/musickeyboard.js:696 +#: js/widgets/phrasemaker.js:567 +#: js/widgets/rhythmruler.js:601 #.TRANS: clear all subdivisions from the ruler. msgid "Clear" msgstr "" -#: js/modewidget.js:127 +#: js/widgets/modewidget.js:127 msgid "Rotate counter clockwise" msgstr "" -#: js/modewidget.js:133 +#: js/widgets/modewidget.js:133 msgid "Rotate clockwise" msgstr "" -#: js/modewidget.js:139 +#: js/widgets/modewidget.js:139 msgid "Invert" msgstr "" -#: js/modewidget.js:145 -#: js/pitchstaircase.js:678 -#: js/rhythmruler.js:258 -#: js/timbre.js:963 +#: js/widgets/modewidget.js:145 +#: js/widgets/pitchstaircase.js:678 +#: js/widgets/timbre.js:963 +#: js/widgets/rhythmruler.js:578 msgid "Undo" msgstr "" -#: js/modewidget.js:163 +#: js/widgets/modewidget.js:163 #.TRANS: A circle of notes represents the musical mode. msgid "Click in the circle to select notes for the mode." msgstr "" -#: js/modewidget.js:1017 -#: js/pitchstaircase.js:580 -#: js/phrasemaker.js:4855 -#: js/temperament.js:1754 -#: js/rhythmruler.js:1865 -#: js/rhythmruler.js:2081 -#: js/tempo.js:414 +#: js/widgets/modewidget.js:1017 +#: js/widgets/pitchstaircase.js:580 +#: js/widgets/temperament.js:1929 +#: js/widgets/tempo.js:414 +#: js/widgets/phrasemaker.js:5356 +#: js/widgets/rhythmruler.js:2254 +#: js/widgets/rhythmruler.js:2472 msgid "New action block generated!" msgstr "" -#: js/oscilloscope.js:79 -msgid "Zoom In" -msgstr "" - -#: js/oscilloscope.js:88 -msgid "Zoom Out" -msgstr "" - -#: js/pitchstaircase.js:624 -msgid "Play chord" -msgstr "" - -#: js/pitchstaircase.js:632 -msgid "Play scale" +#: js/widgets/meterwidget.js:275 +msgid "Reset" msgstr "" -#: js/pitchstaircase.js:696 -msgid "Click on a note to create a new step." +#: js/widgets/meterwidget.js:301 +msgid "Click in the circle to select strong beats for the meter." msgstr "" -#: js/phrasemaker.js:363 -msgid "Export" +#: js/widgets/oscilloscope.js:79 +msgid "Zoom In" msgstr "" -#: js/phrasemaker.js:370 -msgid "Sort" +#: js/widgets/oscilloscope.js:88 +msgid "Zoom Out" msgstr "" -#: js/phrasemaker.js:373 -#: js/musickeyboard.js:559 -msgid "Add note" +#: js/widgets/pitchdrummatrix.js:356 +#: js/widgets/pitchdrummatrix.js:752 +msgid "Click in the grid to map notes to drums." msgstr "" -#: js/phrasemaker.js:764 -msgid "Click on the table to add notes." +#: js/widgets/pitchslider.js:103 +msgid "Move up" msgstr "" -#: js/phrasemaker.js:2414 -#: js/phrasemaker.js:2543 -msgid "tuplet value" +#: js/widgets/pitchslider.js:114 +msgid "Move down" msgstr "" -#: js/pitchdrummatrix.js:270 -#: js/pitchdrummatrix.js:639 -msgid "Click in the grid to map notes to drums." +#: js/widgets/pitchslider.js:136 +msgid "Click on the slider to create a note block." msgstr "" -#: js/pitchslider.js:103 -msgid "Move up" +#: js/widgets/pitchstaircase.js:624 +msgid "Play chord" msgstr "" -#: js/pitchslider.js:114 -msgid "Move down" +#: js/widgets/pitchstaircase.js:632 +msgid "Play scale" msgstr "" -#: js/pitchslider.js:136 -msgid "Click on the slider to create a note block." +#: js/widgets/pitchstaircase.js:696 +msgid "Click on a note to create a new step." msgstr "" -#: js/temperament.js:215 +#: js/widgets/temperament.js:321 msgid "back to 2:1 octave space" msgstr "" -#: js/temperament.js:323 +#: js/widgets/temperament.js:447 msgid "edit" msgstr "" -#: js/temperament.js:330 -#: js/temperament.js:332 -#: js/temperament.js:1336 -#: js/temperament.js:1338 +#: js/widgets/temperament.js:454 +#: js/widgets/temperament.js:456 +#: js/widgets/temperament.js:1493 +#: js/widgets/temperament.js:1495 msgid "close" msgstr "" -#: js/temperament.js:423 -#: js/temperament.js:736 -#: js/temperament.js:743 -#: js/temperament.js:845 -#: js/temperament.js:935 -#: js/temperament.js:942 -#: js/temperament.js:1015 -#: js/temperament.js:1284 -#: js/temperament.js:1354 -#: js/temperament.js:1430 +#: js/widgets/temperament.js:552 +#: js/widgets/temperament.js:877 +#: js/widgets/temperament.js:884 +#: js/widgets/temperament.js:986 +#: js/widgets/temperament.js:1080 +#: js/widgets/temperament.js:1087 +#: js/widgets/temperament.js:1160 +#: js/widgets/temperament.js:1433 +#: js/widgets/temperament.js:1511 +#: js/widgets/temperament.js:1596 msgid "done" msgstr "" -#: js/temperament.js:477 -#: js/temperament.js:482 -#: js/temperament.js:918 +#: js/widgets/temperament.js:610 +#: js/widgets/temperament.js:615 +#: js/widgets/temperament.js:1063 msgid "ratio" msgstr "" -#: js/temperament.js:483 +#: js/widgets/temperament.js:616 msgid "interval" msgstr "" -#: js/temperament.js:611 +#: js/widgets/temperament.js:744 msgid "non scalar" msgstr "" -#: js/temperament.js:650 +#: js/widgets/temperament.js:787 msgid "ratios" msgstr "" -#: js/temperament.js:650 +#: js/widgets/temperament.js:787 msgid "arbitrary" msgstr "" -#: js/temperament.js:719 +#: js/widgets/temperament.js:860 msgid "number of divisions" msgstr "" -#: js/temperament.js:741 -#: js/temperament.js:858 -#: js/temperament.js:940 -#: js/temperament.js:1033 +#: js/widgets/temperament.js:882 +#: js/widgets/temperament.js:999 +#: js/widgets/temperament.js:1085 +#: js/widgets/temperament.js:1178 msgid "preview" msgstr "" -#: js/temperament.js:788 +#: js/widgets/temperament.js:929 msgid "The Number of divisions is too large." msgstr "" -#: js/temperament.js:921 +#: js/widgets/temperament.js:1066 msgid "recursion" msgstr "" -#: js/temperament.js:1450 +#: js/widgets/temperament.js:1616 msgid "The octave ratio has changed. This changes temperament significantly." msgstr "" -#: js/temperament.js:2087 +#: js/widgets/temperament.js:2248 msgid "Table" msgstr "" -#: js/temperament.js:2185 +#: js/widgets/temperament.js:2356 msgid "Add pitches" msgstr "" -#: js/musickeyboard.js:570 -msgid "Metronome" +#: js/widgets/tempo.js:78 +#: js/widgets/tempo.js:97 +#: js/widgets/tempo.js:99 +#: js/widgets/aiwidget.js:134 +#: js/widgets/aiwidget.js:136 +#: js/widgets/rhythmruler.js:681 +#: js/widgets/rhythmruler.js:683 +#: js/widgets/rhythmruler.js:1864 +#: js/widgets/rhythmruler.js:1866 +#: js/widgets/sampler.js:180 +#: js/widgets/sampler.js:182 +msgid "Pause" msgstr "" -#: js/musickeyboard.js:1296 -#: plugins/rodi.rtp:193 -msgid "duration" +#: js/widgets/tempo.js:113 +msgid "Save tempo" msgstr "" -#: js/musickeyboard.js:2840 -msgid "New action blocks generated!" +#: js/widgets/tempo.js:144 +msgid "speed up" msgstr "" -#: js/musickeyboard.js:2841 -msgid "New action block generated" +#: js/widgets/tempo.js:150 +msgid "slow down" msgstr "" -#: js/musickeyboard.js:2984 -#: js/musickeyboard.js:2992 -msgid "MIDI device present." +#: js/widgets/tempo.js:194 +msgid "Adjust the tempo with the buttons." msgstr "" -#: js/musickeyboard.js:2995 -msgid "No MIDI device found." +#: js/widgets/tempo.js:261 +msgid "Please enter a number between 30 and 1000" msgstr "" -#: js/musickeyboard.js:3000 -msgid "Failed to get MIDI access in browser." +#: js/widgets/tempo.js:268 +#: js/widgets/tempo.js:271 +msgid "The beats per minute must be between 30 and 1000." msgstr "" -#: js/rhythmruler.js:202 -msgid "Save rhythms" +#: js/widgets/tempo.js:287 +msgid "The beats per minute must be below 1000." msgstr "" -#: js/rhythmruler.js:222 -msgid "Save drum machine" +#: js/widgets/tempo.js:303 +msgid "The beats per minute must be above 30" msgstr "" -#: js/rhythmruler.js:263 -#.TRANS: user can tap out a rhythm by clicking on a ruler. -msgid "Tap a rhythm" +#: js/widgets/timbre.js:766 +msgid "Synthesizer" msgstr "" -#: js/rhythmruler.js:342 -#: js/rhythmruler.js:344 -#: js/rhythmruler.js:1481 -#: js/rhythmruler.js:1483 -#: js/sampler.js:110 -#: js/sampler.js:112 -#: js/tempo.js:78 -#: js/tempo.js:97 -#: js/tempo.js:99 -msgid "Pause" +#: js/widgets/timbre.js:789 +msgid "Oscillator" msgstr "" -#: js/rhythmruler.js:478 -msgid "Click on the ruler to divide it." +#: js/widgets/timbre.js:840 +msgid "Envelope" msgstr "" -#: js/rhythmruler.js:603 -#: js/rhythmruler.js:605 -#: js/rhythmruler.js:804 -#: js/rhythmruler.js:806 -#: js/rhythmruler.js:1386 -#: js/rhythmruler.js:1388 -msgid "tap a rhythm" +#: js/widgets/timbre.js:886 +#: planet/js/GlobalTag.js:50 +#.TRANS: On the Planet, we use labels to tag projects. +msgid "Effects" msgstr "" -#: js/rhythmruler.js:1084 -msgid "Maximum value of 256 has been exceeded." +#: js/widgets/timbre.js:904 +msgid "Filter" msgstr "" -#: js/sampler.js:137 -msgid "Warning: Sample is bigger than 1MB." +#: js/widgets/timbre.js:946 +msgid "Add filter" msgstr "" -#: js/sampler.js:142 -msgid "Upload failed: Sample is not a .wav file." +#: js/widgets/timbre.js:987 +msgid "Click on buttons to open the timbre design tools." msgstr "" -#: js/sampler.js:164 -msgid "A new sample block was generated." +#: js/widgets/timbre.js:1273 +msgid "harmonicity" msgstr "" -#: js/sampler.js:255 -msgid "Upload sample" +#: js/widgets/timbre.js:1340 +#: js/widgets/timbre.js:1406 +msgid "modulation index" msgstr "" -#: js/sampler.js:306 -msgid "Save sample" +#: js/widgets/timbre.js:1484 +msgid "vibrato amount" msgstr "" -#: js/sampler.js:697 -#.TRANS: The reference tone is a sound used for comparison. -msgid "reference tone" +#: js/widgets/timbre.js:1919 +msgid "Filter already present." msgstr "" -#: js/tempo.js:113 -msgid "Save tempo" +#: js/widgets/timbre.js:2322 +msgid "delay (MS)" msgstr "" -#: js/tempo.js:144 -msgid "speed up" +#: js/widgets/timbre.js:2507 +msgid "distortion amount" msgstr "" -#: js/tempo.js:150 -msgid "slow down" +#: js/widgets/aiwidget.js:180 +#: js/widgets/sampler.js:227 +msgid "Warning: Sample is bigger than 1MB." msgstr "" -#: js/tempo.js:194 -msgid "Adjust the tempo with the buttons." +#: js/widgets/aiwidget.js:539 +msgid "New start block generated" msgstr "" -#: js/tempo.js:261 -msgid "Please enter a number between 30 and 1000" +#: js/widgets/aiwidget.js:541 +msgid "MIDI loading. This may take some time depending upon the number of notes in the track" msgstr "" -#: js/tempo.js:268 -#: js/tempo.js:271 -msgid "The beats per minute must be between 30 and 1000." +#: js/widgets/aiwidget.js:551 +#: js/widgets/sampler.js:254 +msgid "Upload failed: Sample is not a .wav file." msgstr "" -#: js/tempo.js:287 -msgid "The beats per minute must be below 1000." +#: js/widgets/aiwidget.js:679 +#: js/widgets/sampler.js:432 +msgid "Save sample" msgstr "" -#: js/tempo.js:303 -msgid "The beats per minute must be above 30" +#: js/widgets/aiwidget.js:701 +msgid "AI Music" msgstr "" -#: js/timbre.js:766 -msgid "Synthesizer" +#: js/widgets/arpeggio.js:239 +msgid "Click in the grid to add steps to the arpeggio." msgstr "" -#: js/timbre.js:789 -msgid "Oscillator" +#: js/widgets/help.js:95 +#: js/widgets/help.js:125 +#: js/widgets/help.js:146 +#: js/widgets/help.js:158 +#: js/widgets/help.js:376 +#: js/widgets/help.js:391 +msgid "Take a tour" msgstr "" -#: js/timbre.js:840 -msgid "Envelope" +#: js/widgets/musickeyboard.js:725 +#: js/widgets/phrasemaker.js:584 +msgid "Add note" msgstr "" -#: js/timbre.js:886 -#: js/GlobalTag.js:50 -#.TRANS: On the Planet, we use labels to tag projects. -msgid "Effects" +#: js/widgets/musickeyboard.js:744 +msgid "Metronome" +msgstr "" + +#: js/widgets/musickeyboard.js:1549 +#: plugins/rodi.rtp:193 +msgid "duration" +msgstr "" + +#: js/widgets/musickeyboard.js:3179 +msgid "New action blocks generated" +msgstr "" + +#: js/widgets/musickeyboard.js:3180 +msgid "New action block generated" msgstr "" -#: js/timbre.js:904 -msgid "Filter" +#: js/widgets/musickeyboard.js:3365 +#: js/widgets/musickeyboard.js:3373 +msgid "MIDI device present." msgstr "" -#: js/timbre.js:946 -msgid "Add filter" +#: js/widgets/musickeyboard.js:3376 +msgid "No MIDI device found." msgstr "" -#: js/timbre.js:987 -msgid "Click on buttons to open the timbre design tools." +#: js/widgets/musickeyboard.js:3386 +msgid "Failed to get MIDI access in browser." msgstr "" -#: js/timbre.js:1273 -msgid "harmonicity" +#: js/widgets/phrasemaker.js:574 +msgid "Export" msgstr "" -#: js/timbre.js:1340 -#: js/timbre.js:1406 -msgid "modulation index" +#: js/widgets/phrasemaker.js:581 +msgid "Sort" msgstr "" -#: js/timbre.js:1484 -msgid "vibrato amount" +#: js/widgets/phrasemaker.js:975 +msgid "Click on the table to add notes." msgstr "" -#: js/timbre.js:1919 -msgid "Filter already present." +#: js/widgets/phrasemaker.js:2677 +#: js/widgets/phrasemaker.js:2819 +msgid "tuplet value" msgstr "" -#: js/timbre.js:2322 -msgid "delay (MS)" +#: js/widgets/rhythmruler.js:486 +msgid "Save rhythms" msgstr "" -#: js/timbre.js:2507 -msgid "distortion amount" +#: js/widgets/rhythmruler.js:512 +msgid "Save drum machine" msgstr "" -#: js/meterwidget.js:170 -msgid "Reset" +#: js/widgets/rhythmruler.js:589 +#.TRANS: user can tap out a rhythm by clicking on a ruler. +msgid "Tap a rhythm" msgstr "" -#: js/meterwidget.js:196 -msgid "Click in the circle to select strong beats for the meter." +#: js/widgets/rhythmruler.js:817 +msgid "Click on the ruler to divide it." msgstr "" -#: js/arpeggio.js:239 -msgid "Click in the grid to add steps to the arpeggio." +#: js/widgets/rhythmruler.js:950 +#: js/widgets/rhythmruler.js:952 +#: js/widgets/rhythmruler.js:1152 +#: js/widgets/rhythmruler.js:1154 +#: js/widgets/rhythmruler.js:1765 +#: js/widgets/rhythmruler.js:1767 +msgid "tap a rhythm" msgstr "" -#: js/ProjectStorage.js:243 -msgid "anonymous" +#: js/widgets/rhythmruler.js:1459 +msgid "Maximum value of 256 has been exceeded." msgstr "" -#: js/GlobalCard.js:68 -msgid "Share" +#: js/widgets/sampler.js:237 +msgid "Recording started..." msgstr "" -#: js/GlobalCard.js:74 -msgid "Flags" +#: js/widgets/sampler.js:245 +msgid "Recording complete..." msgstr "" -#: js/LocalCard.js:36 -msgid "View published project" +#: js/widgets/sampler.js:283 +msgid "A new sample block was generated." msgstr "" -#: js/LocalCard.js:42 -msgid "Publish project" +#: js/widgets/sampler.js:378 +msgid "Upload sample" msgstr "" -#: js/LocalCard.js:51 -msgid "Edit project" +#: js/widgets/sampler.js:399 +msgid "Warning: Your sample cannot be loaded because it is >1MB." msgstr "" -#: js/LocalCard.js:52 -msgid "Delete project" +#: js/widgets/sampler.js:448 +msgid "Toggle Mic" msgstr "" -#: js/LocalCard.js:53 -msgid "Download project" +#: js/widgets/sampler.js:458 +msgid "Playback" msgstr "" -#: js/LocalCard.js:55 -msgid "Duplicate project" +#: js/widgets/sampler.js:979 +#.TRANS: The reference tone is a sound used for comparison. +msgid "reference tone" msgstr "" -#: js/GlobalTag.js:28 +#: planet/js/GlobalTag.js:28 #.TRANS: On the Planet, we use labels to tag projects. msgid "All Projects" msgstr "" -#: js/GlobalTag.js:30 -#: js/StringHelper.js:37 +#: planet/js/GlobalTag.js:30 +#: planet/js/StringHelper.js:37 #.TRANS: On the Planet, we use labels to tag projects. msgid "My Projects" msgstr "" -#: js/GlobalTag.js:32 +#: planet/js/GlobalTag.js:32 #.TRANS: On the Planet, we use labels to tag projects. msgid "Examples" msgstr "" -#: js/GlobalTag.js:34 +#: planet/js/GlobalTag.js:34 #.TRANS: On the Planet, we use labels to tag projects. msgid "Music" msgstr "" -#: js/GlobalTag.js:36 +#: planet/js/GlobalTag.js:36 #.TRANS: On the Planet, we use labels to tag projects. msgid "Art" msgstr "" -#: js/GlobalTag.js:38 +#: planet/js/GlobalTag.js:38 #.TRANS: On the Planet, we use labels to tag projects. msgid "Math" msgstr "" -#: js/GlobalTag.js:40 +#: planet/js/GlobalTag.js:40 #.TRANS: On the Planet, we use labels to tag projects. msgid "Interactive" msgstr "" -#: js/GlobalTag.js:42 +#: planet/js/GlobalTag.js:42 #.TRANS: On the Planet, we use labels to tag projects. msgid "Design" msgstr "" -#: js/GlobalTag.js:44 +#: planet/js/GlobalTag.js:44 #.TRANS: On the Planet, we use labels to tag projects. msgid "Game" msgstr "" -#: js/GlobalTag.js:46 +#: planet/js/GlobalTag.js:46 #.TRANS: On the Planet, we use labels to tag projects. msgid "Media" msgstr "" -#: js/GlobalTag.js:48 +#: planet/js/GlobalTag.js:48 #.TRANS: On the Planet, we use labels to tag projects. msgid "Sensors" msgstr "" -#: js/GlobalTag.js:52 +#: planet/js/GlobalTag.js:52 #.TRANS: On the Planet, we use labels to tag projects. msgid "Code Snippet" msgstr "" -#: js/helper.js:149 -#: js/StringHelper.js:49 -msgid "Show more tags" +#: planet/js/LocalCard.js:36 +msgid "View published project" msgstr "" -#: js/helper.js:150 -msgid "Show fewer tags" +#: planet/js/LocalCard.js:42 +msgid "Publish project" +msgstr "" + +#: planet/js/LocalCard.js:51 +msgid "Edit project" +msgstr "" + +#: planet/js/LocalCard.js:52 +msgid "Delete project" +msgstr "" + +#: planet/js/LocalCard.js:53 +msgid "Download project" +msgstr "" + +#: planet/js/LocalCard.js:55 +msgid "Duplicate project" +msgstr "" + +#: planet/js/ProjectStorage.js:243 +msgid "anonymous" +msgstr "" + +#: planet/js/SaveInterface.js:34 +msgid "Open in Music Blocks" +msgstr "" + +#: planet/js/SaveInterface.js:35 +msgid "Open in Turtle Blocks" +msgstr "" + +#: planet/js/GlobalCard.js:68 +msgid "Share" +msgstr "" + +#: planet/js/GlobalCard.js:74 +msgid "Flags" +msgstr "" + +#: planet/js/GlobalPlanet.js:35 +msgid "No results found." +msgstr "" + +#: planet/js/GlobalPlanet.js:51 +msgid "Remix of" +msgstr "" + +#: planet/js/GlobalPlanet.js:509 +msgid "Cannot connect to server" msgstr "" -#: js/ProjectViewer.js:30 +#: planet/js/ProjectViewer.js:30 msgid "Error: Report could not be submitted. Try again later." msgstr "" -#: js/ProjectViewer.js:31 +#: planet/js/ProjectViewer.js:31 msgid "Thank you for reporting this project. A moderator will review the project shortly, to verify violation of the Sugar Labs Code of Conduct." msgstr "" -#: js/ProjectViewer.js:32 -#: js/StringHelper.js:62 -#: js/StringHelper.js:64 -#: js/StringHelper.js:68 +#: planet/js/ProjectViewer.js:32 +#: planet/js/StringHelper.js:62 +#: planet/js/StringHelper.js:64 +#: planet/js/StringHelper.js:68 msgid "Report Project" msgstr "" -#: js/ProjectViewer.js:33 -#: js/StringHelper.js:63 +#: planet/js/ProjectViewer.js:33 +#: planet/js/StringHelper.js:63 msgid "Project Reported" msgstr "" -#: js/ProjectViewer.js:34 +#: planet/js/ProjectViewer.js:34 msgid "Report description required" msgstr "" -#: js/ProjectViewer.js:35 +#: planet/js/ProjectViewer.js:35 msgid "Report description too long" msgstr "" -#: js/StringHelper.js:30 +#: planet/js/Publisher.js:30 +msgid "Feature unavailable - cannot connect to server. Reload Music Blocks to try again." +msgstr "" + +#: planet/js/Publisher.js:220 +#: planet/js/Publisher.js:237 +msgid "This field is required" +msgstr "" + +#: planet/js/Publisher.js:227 +msgid "Title too long" +msgstr "" + +#: planet/js/Publisher.js:244 +msgid "Description too long" +msgstr "" + +#: planet/js/Publisher.js:341 +msgid "Server Error" +msgstr "" + +#: planet/js/Publisher.js:341 +msgid "Try Again" +msgstr "" + +#: planet/js/StringHelper.js:30 msgid "Planet" msgstr "" -#: js/StringHelper.js:31 +#: planet/js/StringHelper.js:31 msgid "Close Planet" msgstr "" -#: js/StringHelper.js:32 +#: planet/js/StringHelper.js:32 msgid "Open project from file" msgstr "" -#: js/StringHelper.js:34 +#: planet/js/StringHelper.js:34 msgid "Local" msgstr "" -#: js/StringHelper.js:35 +#: planet/js/StringHelper.js:35 msgid "Global" msgstr "" -#: js/StringHelper.js:36 +#: planet/js/StringHelper.js:36 msgid "Search for a project" msgstr "" -#: js/StringHelper.js:38 +#: planet/js/StringHelper.js:38 msgid "Publish Project" msgstr "" -#: js/StringHelper.js:40 +#: planet/js/StringHelper.js:40 msgid "Tags (max 5)" msgstr "" -#: js/StringHelper.js:41 -#: js/StringHelper.js:61 +#: planet/js/StringHelper.js:41 +#: planet/js/StringHelper.js:61 msgid "Description" msgstr "" -#: js/StringHelper.js:42 -#: js/StringHelper.js:67 +#: planet/js/StringHelper.js:42 +#: planet/js/StringHelper.js:67 msgid "Submit" msgstr "" -#: js/StringHelper.js:43 -#: js/StringHelper.js:47 +#: planet/js/StringHelper.js:43 +#: planet/js/StringHelper.js:47 msgid "Cancel" msgstr "" -#: js/StringHelper.js:44 +#: planet/js/StringHelper.js:44 msgid "Delete \\"\\"?" msgstr "" -#: js/StringHelper.js:45 +#: planet/js/StringHelper.js:45 msgid "Permanently delete project \\"\\"?" msgstr "" -#: js/StringHelper.js:48 +#: planet/js/StringHelper.js:48 msgid "Explore Projects" msgstr "" -#: js/StringHelper.js:50 +#: planet/js/StringHelper.js:49 +#: planet/js/helper.js:149 +msgid "Show more tags" +msgstr "" + +#: planet/js/StringHelper.js:50 msgid "Most recent" msgstr "" -#: js/StringHelper.js:51 +#: planet/js/StringHelper.js:51 msgid "Most liked" msgstr "" -#: js/StringHelper.js:52 +#: planet/js/StringHelper.js:52 msgid "Most downloaded" msgstr "" -#: js/StringHelper.js:53 +#: planet/js/StringHelper.js:53 msgid "A-Z" msgstr "" -#: js/StringHelper.js:54 +#: planet/js/StringHelper.js:54 msgid "Sort by" msgstr "" -#: js/StringHelper.js:55 +#: planet/js/StringHelper.js:55 msgid "Load More Projects" msgstr "" -#: js/StringHelper.js:56 +#: planet/js/StringHelper.js:56 msgid "Last Updated" msgstr "" -#: js/StringHelper.js:57 +#: planet/js/StringHelper.js:57 msgid "Creation Date" msgstr "" -#: js/StringHelper.js:58 +#: planet/js/StringHelper.js:58 msgid "Number of Downloads:" msgstr "" -#: js/StringHelper.js:59 +#: planet/js/StringHelper.js:59 msgid "Number of Likes:" msgstr "" -#: js/StringHelper.js:60 +#: planet/js/StringHelper.js:60 msgid "Tags:" msgstr "" -#: js/StringHelper.js:65 +#: planet/js/StringHelper.js:65 msgid "Report projects which violate the Sugar Labs Code of Conduct." msgstr "" -#: js/StringHelper.js:66 +#: planet/js/StringHelper.js:66 msgid "Reason for reporting project" msgstr "" -#: js/StringHelper.js:70 +#: planet/js/StringHelper.js:70 msgid "Download as File" msgstr "" -#: js/GlobalPlanet.js:35 -msgid "No results found." -msgstr "" - -#: js/GlobalPlanet.js:51 -msgid "Remix of" -msgstr "" - -#: js/GlobalPlanet.js:509 -msgid "Cannot connect to server" -msgstr "" - -#: js/Publisher.js:30 -msgid "Feature unavailable - cannot connect to server. Reload Music Blocks to try again." -msgstr "" - -#: js/Publisher.js:218 -#: js/Publisher.js:235 -msgid "This field is required" -msgstr "" - -#: js/Publisher.js:225 -msgid "Title too long" +#: planet/js/helper.js:150 +msgid "Show fewer tags" msgstr "" -#: js/Publisher.js:242 -msgid "Description too long" +#: plugins/accelerometer.rtp:48 +msgid "motion x" msgstr "" -#: js/Publisher.js:339 -msgid "Server Error" +#: plugins/accelerometer.rtp:56 +msgid "motion y" msgstr "" -#: js/Publisher.js:339 -msgid "Try Again" +#: plugins/accelerometer.rtp:64 +msgid "motion z" msgstr "" -#: js/SaveInterface.js:34 -msgid "Open in Music Blocks" +#: plugins/facebook.rtp:27 +msgid "publish" msgstr "" -#: js/SaveInterface.js:35 -msgid "Open in Turtle Blocks" +#: plugins/maths.rtp:62 +msgid "power" msgstr "" -#: plugins/weather.rtp:68 -#: plugins/weather.rtp:97 -msgid "Days ahead must be in the range of -1 to 5." +#: plugins/maths.rtp:62 +msgid "base" msgstr "" -#: plugins/weather.rtp:122 -msgid "forecast" +#: plugins/maths.rtp:62 +msgid "exp" msgstr "" -#: plugins/weather.rtp:123 -#: plugins/weather.rtp:137 -#: plugins/weather.rtp:150 -msgid "city" +#: plugins/maths.rtp:99 +msgid "floor" msgstr "" -#: plugins/weather.rtp:124 -#: plugins/weather.rtp:138 -#: plugins/weather.rtp:151 -msgid "day" +#: plugins/maths.rtp:104 +msgid "ceiling" msgstr "" -#: plugins/weather.rtp:136 -msgid "high" +#: plugins/maths.rtp:109 +msgid "to degrees" msgstr "" -#: plugins/weather.rtp:149 -msgid "low" +#: plugins/maths.rtp:114 +msgid "to radians" msgstr "" #: plugins/nutrition.rtp:104 @@ -9458,45 +9867,6 @@ msgstr "" msgid "water" msgstr "" -#: plugins/maths.rtp:62 -#: plugins/examples.rtp:93 -msgid "power" -msgstr "" - -#: plugins/maths.rtp:62 -#: plugins/examples.rtp:93 -msgid "base" -msgstr "" - -#: plugins/maths.rtp:62 -#: plugins/examples.rtp:93 -msgid "exp" -msgstr "" - -#: plugins/maths.rtp:99 -#: plugins/examples.rtp:130 -msgid "floor" -msgstr "" - -#: plugins/maths.rtp:104 -#: plugins/examples.rtp:135 -msgid "ceiling" -msgstr "" - -#: plugins/maths.rtp:109 -#: plugins/examples.rtp:140 -msgid "to degrees" -msgstr "" - -#: plugins/maths.rtp:114 -#: plugins/examples.rtp:145 -msgid "to radians" -msgstr "" - -#: plugins/facebook.rtp:27 -msgid "publish" -msgstr "" - #: plugins/rodi.rtp:172 msgid "blink" msgstr "" @@ -9525,18 +9895,66 @@ msgstr "" msgid "move" msgstr "" -#: plugins/accelerometer.rtp:48 -msgid "motion x" +#: plugins/weather.rtp:68 +#: plugins/weather.rtp:97 +msgid "Days ahead must be in the range of -1 to 5." msgstr "" -#: plugins/accelerometer.rtp:56 -msgid "motion y" +#: plugins/weather.rtp:122 +msgid "forecast" msgstr "" -#: plugins/accelerometer.rtp:64 -msgid "motion z" +#: plugins/weather.rtp:123 +#: plugins/weather.rtp:137 +#: plugins/weather.rtp:150 +msgid "city" +msgstr "" + +#: plugins/weather.rtp:124 +#: plugins/weather.rtp:138 +#: plugins/weather.rtp:151 +msgid "day" +msgstr "" + +#: plugins/weather.rtp:136 +msgid "high" +msgstr "" + +#: plugins/weather.rtp:149 +msgid "low" msgstr "" +#: js/toolbar.js:70 + +#: js/toolbar.js:130 + +#: js/toolbar.js:194 + +#: js/toolbar.js:249 + +#~msgid "Toggle JavaScript Editor" +#~msgstr "" + +#: js/EnsembleBlocks.js:643 + +#~msgid "The Turrle pitch block returns the current pitch number being played by the specified turtle." +#~msgstr "" + +#: js/PitchActions.js:88 + +#~msgid "The Scalar Step Block must be used inside of a Note Block." +#~msgstr "" + +#: js/PitchActions.js:107 + +#~msgid "The Scalar Step Block must be preceded by a Pitch Block." +#~msgstr "" + +#: js/musickeyboard.js:2840 + +#~msgid "New action blocks generated!" +#~msgstr "" + #: js/toolbar.js:110 #: js/toolbar.js:204 @@ -9877,11 +10295,6 @@ msgstr "" #~msgid "The Time block returns the number of seconds that the program has been running." #~msgstr "" -#: js/help.js:95 - -#~msgid "Take a tour" -#~msgstr "" - #: js/GlobalCard.js:48 #~msgid "More Details" @@ -12780,11 +13193,6 @@ msgstr "" #~msgid "The save-stack button saves a stack onto a custom palette. It appears after a \"long press\" on a stack." #~msgstr "" -#: js/musicutils.js:254 - -#~msgid "Custom" -#~msgstr "" - #: js/basicblocks.js:4785 #~msgid "Rhythm" diff --git a/po/fi.po b/po/fi.po index 21ec35a9aa..83638dceea 100644 --- a/po/fi.po +++ b/po/fi.po @@ -2129,276 +2129,131 @@ #: js/planetInterface.js:104 #: js/planetInterface.js:104 #: js/planetInterface.js:104 -msgid "project undefined" -msgstr "" - -#: js/logo.js:61 -msgid "Not a valid pitch name" -msgstr "" - -#: js/logo.js:507 -#: js/ProgramBlocks.js:258 -#: js/ProgramBlocks.js:427 -msgid "You must select a file." -msgstr "" - -#: js/logo.js:1184 -#: js/turtles.js:118 -#: js/turtle-painter.js:1192 -#: js/turtle-painter.js:1193 -#: js/block.js:1463 -#: js/lilypond.js:757 -#: js/lilypond.js:921 -#: js/lilypond.js:959 -#: js/ActionBlocks.js:1223 -#: js/ProgramBlocks.js:1267 -msgid "start" -msgstr "käynnistä" - -#: js/logo.js:1696 -msgid "Playback is ready." -msgstr "" - -#: js/blocks.js:1011 -#: js/blocks.js:3427 -#: js/blocks.js:3428 -#: js/blocks.js:3653 -#: js/blocks.js:4012 -#: js/blocks.js:4205 -#: js/blocks.js:5343 -#: js/blocks.js:6474 -#: js/palette.js:527 -#: js/palette.js:536 -#: js/palette.js:545 -#: js/palette.js:554 -#: js/palette.js:1131 -#: js/palette.js:1142 -#: js/palette.js:1153 -#: js/palette.js:1164 -#: js/palette.js:1183 -#: js/rubrics.js:529 -#: js/macros.js:170 -#: js/macros.js:266 -#: js/macros.js:267 -#: js/macros.js:276 -#: js/macros.js:828 -#: js/block.js:1449 -#: js/block.js:4164 -#: js/block.js:4182 -#: js/block.js:4193 -#: js/turtledefs.js:128 -#: js/turtledefs.js:230 -#: js/ActionBlocks.js:254 -#: js/ActionBlocks.js:307 -#: js/ActionBlocks.js:617 -#: js/ActionBlocks.js:716 -#: js/ActionBlocks.js:961 -#: js/ActionBlocks.js:1049 -#: js/ActionBlocks.js:1322 -#: js/ActionBlocks.js:1325 -#: js/ActionBlocks.js:1337 -#: js/ActionBlocks.js:1404 -#: js/MeterBlocks.js:715 -#: js/MeterBlocks.js:768 -#: js/MeterBlocks.js:831 -#: js/MeterBlocks.js:892 -#: js/phrasemaker.js:4412 -#: js/musickeyboard.js:2647 -#: js/rhythmruler.js:1928 -#: js/rhythmruler.js:1935 -#: js/rhythmruler.js:2119 -#: js/rhythmruler.js:2126 -msgid "action" +#: js/SaveInterface.js:59 +#: js/SaveInterface.js:61 +#: js/SaveInterface.js:93 +msgid "Music Blocks Project" msgstr "" -#: js/blocks.js:1205 -#: js/blocks.js:3380 -#: js/blocks.js:3770 -#: js/blocks.js:3801 -#: js/blocks.js:3850 -#: js/blocks.js:3885 -#: js/blocks.js:6497 -#: js/palette.js:509 -#: js/palette.js:638 -#: js/palette.js:1107 -#: js/BoxesBlocks.js:282 -#: js/BoxesBlocks.js:285 -#: js/BoxesBlocks.js:405 -#: js/BoxesBlocks.js:594 -msgid "box" -msgstr "laatikko" - -#: js/blocks.js:1680 -msgid "Consider breaking this stack into parts." +#: js/SaveInterface.js:63 +msgid "This project was created in Music Blocks" msgstr "" -#: js/blocks.js:2408 -#: js/palette.js:653 -#: js/MediaBlocks.js:602 -msgid "open file" +#: js/SaveInterface.js:67 +msgid "Music Blocks is a Free/Libre Software application." msgstr "" -#: js/blocks.js:2415 -#: js/blocks.js:2423 -#: js/activity.js:1875 -msgid "audio file" +#: js/SaveInterface.js:69 +msgid "The source code can be accessed at" msgstr "" -#: js/blocks.js:2536 -#: js/blocks.js:3147 -#: js/block.js:3543 -msgid "on2" +#: js/SaveInterface.js:72 +msgid "For more information, please consult the" msgstr "" -#: js/blocks.js:2538 -#: js/blocks.js:3149 -#: js/block.js:3545 -msgid "off" +#: js/SaveInterface.js:76 +#: js/turtledefs.js:795 +msgid "Music Blocks Guide" msgstr "" -#: js/blocks.js:2543 -#: js/blocks.js:3154 -#: js/palette.js:618 -#: js/block.js:3466 -#: js/BooleanBlocks.js:77 -#: js/BooleanBlocks.js:167 -#: js/BooleanBlocks.js:251 -#: js/BooleanBlocks.js:335 -#: js/BooleanBlocks.js:433 -#: js/BooleanBlocks.js:539 -#: js/BooleanBlocks.js:640 -#: js/BooleanBlocks.js:741 -#: js/BooleanBlocks.js:847 -#: js/BooleanBlocks.js:948 -#: js/BooleanBlocks.js:1033 -#: js/SensorsBlocks.js:910 -msgid "true" +#: js/SaveInterface.js:83 +msgid "Alternatively, open the file in Music Blocks using the Load project button." msgstr "" -#: js/blocks.js:2545 -#: js/blocks.js:3156 -#: js/block.js:3466 -#: js/BooleanBlocks.js:79 -#: js/BooleanBlocks.js:169 -#: js/BooleanBlocks.js:253 -#: js/BooleanBlocks.js:337 -#: js/BooleanBlocks.js:435 -#: js/BooleanBlocks.js:541 -#: js/BooleanBlocks.js:642 -#: js/BooleanBlocks.js:743 -#: js/BooleanBlocks.js:849 -#: js/BooleanBlocks.js:950 -#: js/SensorsBlocks.js:912 -msgid "false" +#: js/SaveInterface.js:85 +msgid "Project Code" msgstr "" -#: js/blocks.js:3183 -#: js/palette.js:574 -#: js/MediaBlocks.js:892 -#: js/MediaBlocks.js:963 -msgid "text" +#: js/SaveInterface.js:87 +msgid "This code stores data about the blocks in a project." msgstr "" -#: js/blocks.js:3379 -#: js/palette.js:641 -#: js/palette.js:642 -#: js/BoxesBlocks.js:514 -msgid "store in box" +#: js/SaveInterface.js:89 +msgid "Show" msgstr "" -#: js/blocks.js:3384 -#: js/blocks.js:3824 -#: js/blocks.js:3859 -#: js/blocks.js:3894 -#: js/blocks.js:5773 -#: js/blocks.js:5794 -#: js/BoxesBlocks.js:772 -msgid "box1" +#: js/SaveInterface.js:91 +msgid "Hide" msgstr "" -#: js/blocks.js:3386 -#: js/blocks.js:3826 -#: js/blocks.js:3861 -#: js/blocks.js:3896 -#: js/blocks.js:5775 -#: js/blocks.js:5796 -#: js/BoxesBlocks.js:663 -msgid "box2" +#: js/SaveInterface.js:131 +#: js/SaveInterface.js:204 +#: js/SaveInterface.js:262 +#: js/SaveInterface.js:389 +#: js/SaveInterface.js:417 +#: js/activity.js:4884 +#: planet/js/ProjectStorage.js:27 +#: planet/js/GlobalPlanet.js:467 +#: planet/js/GlobalPlanet.js:469 +#: planet/js/GlobalPlanet.js:495 +#.TRANS: default project title when saving as Lilypond +msgid "My Project" msgstr "" -#: js/blocks.js:4058 -#: js/palette.js:639 -#: js/palette.js:644 -#: js/palette.js:1043 -#: js/BoxesBlocks.js:591 -msgid "store in" +#: js/SaveInterface.js:197 +#: planet/js/SaveInterface.js:58 +msgid "No description provided" msgstr "" -#: js/blocks.js:4058 -#: js/EnsembleBlocks.js:391 -#: js/EnsembleBlocks.js:402 -#: js/MediaBlocks.js:746 -#: js/ProgramBlocks.js:390 -#: js/ProgramBlocks.js:495 -#: js/ProgramBlocks.js:658 -#: js/BoxesBlocks.js:595 -#: js/PitchBlocks.js:656 -#: js/PitchBlocks.js:932 -#: js/PitchBlocks.js:1827 -#: js/ToneBlocks.js:1025 -#: js/DictBlocks.js:215 -#: js/DictBlocks.js:289 -msgid "name" +#: js/SaveInterface.js:332 +msgid "Your recording is in progress." msgstr "" -#: js/blocks.js:4058 -#: js/RhythmBlocks.js:1130 -#: js/BoxesBlocks.js:75 -#: js/BoxesBlocks.js:595 -#: js/HeapBlocks.js:544 -#: js/DictBlocks.js:289 -#: js/DictBlocks.js:430 -msgid "value" +#: js/SaveInterface.js:401 +#.TRANS: File name prompt for save as Lilypond +msgid "File name" msgstr "" -#: js/blocks.js:4907 -msgid "There is no block selected." +#: js/SaveInterface.js:403 +#: planet/js/StringHelper.js:39 +#.TRANS: Project title prompt for save as Lilypond +msgid "Project title" msgstr "" -#: js/blocks.js:5002 -#: js/MediaBlocks.js:888 -msgid "show" +#: js/SaveInterface.js:405 +#.TRANS: Project title prompt for save as Lilypond +msgid "Project author" msgstr "" -#: js/blocks.js:5005 -#: js/MediaBlocks.js:803 -#.TRANS: Avatar is the image used to determine the appearance of the mouse. -msgid "avatar" +#: js/SaveInterface.js:407 +#.TRANS: MIDI prompt for save as Lilypond +msgid "Include MIDI output?" msgstr "" -#: js/blocks.js:5008 -#: js/ToneBlocks.js:1010 -#: js/sampler.js:693 -#.TRANS: The sound sample that the user uploads. -msgid "sample" +#: js/SaveInterface.js:409 +#.TRANS: Guitar prompt for save as Lilypond +msgid "Include guitar tablature output?" msgstr "" -#: js/turtles.js:874 -msgid "Grid" +#: js/SaveInterface.js:411 +#.TRANS: Lilypond is a scripting language for generating sheet music +msgid "Save as Lilypond" msgstr "" -#: js/turtles.js:891 -#: js/turtledefs.js:626 -msgid "Clean" -msgstr "Puhdas" - -#: js/turtles.js:912 -#: js/turtledefs.js:632 -msgid "Collapse" +#: js/SaveInterface.js:426 +#: js/blocks/EnsembleBlocks.js:75 +#: js/blocks/EnsembleBlocks.js:154 +#: js/blocks/EnsembleBlocks.js:216 +#: js/blocks/EnsembleBlocks.js:302 +#: js/blocks/EnsembleBlocks.js:348 +#: js/blocks/EnsembleBlocks.js:389 +#: js/blocks/EnsembleBlocks.js:441 +#: js/blocks/EnsembleBlocks.js:490 +#: js/blocks/EnsembleBlocks.js:536 +#: js/blocks/EnsembleBlocks.js:583 +#: js/blocks/EnsembleBlocks.js:637 +#: js/blocks/EnsembleBlocks.js:753 +#: js/blocks/EnsembleBlocks.js:840 +#: js/blocks/EnsembleBlocks.js:899 +#: js/blocks/EnsembleBlocks.js:942 +#: js/blocks/EnsembleBlocks.js:1212 +#: js/blocks/EnsembleBlocks.js:1280 +#.TRANS: default project author when saving as Lilypond +msgid "Mr. Mouse" msgstr "" -#: js/turtles.js:940 -msgid "Expand" +#: js/SaveInterface.js:573 +msgid "The Lilypond code is copied to clipboard. You can paste it here: " msgstr "" #: js/languagebox.js:198 @@ -2409,6933 +2264,7487 @@ msgstr "" msgid "Music Blocks is already set to this language." msgstr "" -#: js/piemenus.js:200 -#: js/musicutils.js:808 -#: js/musicutils.js:824 -#: js/phrasemaker.js:1672 -#: js/musickeyboard.js:2041 -#: js/sampler.js:544 -#.TRANS: double sharp is a music term related to pitch -msgid "double sharp" +#: js/planetInterface.js:131 +msgid "project undefined" msgstr "" -#: js/piemenus.js:201 -#: js/PitchBlocks.js:1510 -#: js/PitchActions.js:580 -#: js/musicutils.js:806 -#: js/musicutils.js:825 -#: js/phrasemaker.js:1673 -#: js/musickeyboard.js:2042 -#: js/sampler.js:545 -#.TRANS: sharp is a half-step up in pitch -#.TRANS: sharp is a music term related to pitch -msgid "sharp" +#: js/rubrics.js:523 +#: js/turtledefs.js:119 +#: js/turtledefs.js:221 +#: js/blocks/RhythmBlockPaletteBlocks.js:52 +#: js/blocks/RhythmBlockPaletteBlocks.js:234 +#: js/blocks/ProgramBlocks.js:745 +#: js/widgets/rhythmruler.js:2057 +#: js/widgets/rhythmruler.js:2064 +#: js/widgets/rhythmruler.js:2133 +#: js/widgets/rhythmruler.js:2140 +#: js/widgets/rhythmruler.js:2219 +#.TRANS: an arrangement of notes based on duration +msgid "rhythm" msgstr "" -#: js/piemenus.js:202 -#: js/musicutils.js:804 -#: js/musicutils.js:826 -#: js/phrasemaker.js:1674 -#: js/musickeyboard.js:2043 -#: js/sampler.js:546 -#.TRANS: natural is a music term related to pitch -msgid "natural" +#: js/rubrics.js:524 +#: js/turtledefs.js:121 +#: js/turtledefs.js:223 +#: js/block-verbose.js:2622 +#: js/block.js:2550 +#: js/blocks/IntervalsBlocks.js:63 +#: js/blocks/SensorsBlocks.js:178 +#: js/blocks/PitchBlocks.js:1839 +#: js/blocks/PitchBlocks.js:1853 +#: js/widgets/musickeyboard.js:1935 +#: js/widgets/phrasemaker.js:1036 +#.TRANS: pitch number +#.TRANS: pitch number +#.TRANS: we specify pitch in terms of a name and an octave. The name can be CDEFGAB or Do Re Mi Fa Sol La Ti. Octave is a number between 1 and 8. +msgid "pitch" msgstr "" -#: js/piemenus.js:203 -#: js/PitchBlocks.js:1469 -#: js/PitchActions.js:583 -#: js/musicutils.js:802 -#: js/musicutils.js:827 -#: js/phrasemaker.js:1675 -#: js/musickeyboard.js:2044 -#: js/sampler.js:547 -#.TRANS: flat is a half-step down in pitch -#.TRANS: flat is a music term related to pitch -msgid "flat" +#: js/rubrics.js:525 +#: js/turtledefs.js:123 +#: js/turtledefs.js:225 +msgid "tone" msgstr "" -#: js/piemenus.js:204 -#: js/musicutils.js:800 -#: js/musicutils.js:828 -#: js/phrasemaker.js:1676 -#: js/musickeyboard.js:2045 -#: js/sampler.js:548 -#.TRANS: double flat is a music term related to pitch -msgid "double flat" +#: js/rubrics.js:526 +#: js/lilypond.js:605 +#: js/lilypond.js:904 +#: js/lilypond.js:910 +#: js/lilypond.js:948 +msgid "mouse" msgstr "" -#: js/piemenus.js:2861 -#: js/PitchBlocks.js:1357 -#: js/musicutils.js:627 -#.TRANS: unison means the note is the same as the current note -#.TRANS: unison is a music term related to intervals -msgid "unison" +#: js/rubrics.js:527 +#: js/turtledefs.js:132 +#: js/turtledefs.js:234 +#: js/widgets/phrasemaker.js:1040 +msgid "pen" msgstr "" -#: js/piemenus.js:3015 -#: js/piemenus.js:3088 -#: js/musicutils.js:635 -#: js/musicutils.js:810 -#: js/musicutils.js:912 -#.TRANS: major is a music term related to intervals and mode -msgid "major" -msgstr "" +#: js/rubrics.js:528 +#: js/turtledefs.js:133 +#: js/turtledefs.js:235 +#: js/blocks/NumberBlocks.js:981 +#: js/blocks/PitchBlocks.js:1717 +#: js/blocks/PitchBlocks.js:1758 +msgid "number" +msgstr "numero" -#: js/piemenus.js:3015 -#: js/piemenus.js:3088 -#: js/musicutils.js:653 -#.TRANS: modal scale for music -msgid "ionian" +#: js/rubrics.js:529 +#: js/turtledefs.js:127 +#: js/turtledefs.js:229 +msgid "flow" msgstr "" -#: js/piemenus.js:3017 -#: js/piemenus.js:3092 -#: js/musicutils.js:633 -#: js/musicutils.js:811 -#: js/musicutils.js:909 -#.TRANS: minor is a music term related to intervals and mode -msgid "minor" +#: js/rubrics.js:530 +#: js/turtledefs.js:128 +#: js/turtledefs.js:230 +#: js/block-verbose.js:1609 +#: js/block-verbose.js:4559 +#: js/block-verbose.js:4577 +#: js/block-verbose.js:4588 +#: js/block.js:1573 +#: js/block.js:4483 +#: js/block.js:4501 +#: js/block.js:4512 +#: js/blocks.js:1018 +#: js/blocks.js:3491 +#: js/blocks.js:3492 +#: js/blocks.js:3717 +#: js/blocks.js:4076 +#: js/blocks.js:4269 +#: js/blocks.js:5432 +#: js/blocks.js:6563 +#: js/macros.js:170 +#: js/macros.js:266 +#: js/macros.js:267 +#: js/macros.js:276 +#: js/macros.js:828 +#: js/palette.js:527 +#: js/palette.js:536 +#: js/palette.js:545 +#: js/palette.js:554 +#: js/palette.js:1129 +#: js/palette.js:1140 +#: js/palette.js:1151 +#: js/palette.js:1162 +#: js/palette.js:1181 +#: js/blocks/ActionBlocks.js:254 +#: js/blocks/ActionBlocks.js:307 +#: js/blocks/ActionBlocks.js:617 +#: js/blocks/ActionBlocks.js:716 +#: js/blocks/ActionBlocks.js:961 +#: js/blocks/ActionBlocks.js:1049 +#: js/blocks/ActionBlocks.js:1322 +#: js/blocks/ActionBlocks.js:1325 +#: js/blocks/ActionBlocks.js:1337 +#: js/blocks/ActionBlocks.js:1404 +#: js/blocks/MeterBlocks.js:715 +#: js/blocks/MeterBlocks.js:768 +#: js/blocks/MeterBlocks.js:831 +#: js/blocks/MeterBlocks.js:892 +#: js/widgets/musickeyboard.js:2986 +#: js/widgets/phrasemaker.js:4913 +#: js/widgets/rhythmruler.js:2319 +#: js/widgets/rhythmruler.js:2326 +#: js/widgets/rhythmruler.js:2511 +#: js/widgets/rhythmruler.js:2518 +msgid "action" msgstr "" -#: js/piemenus.js:3017 -#: js/piemenus.js:3092 -#: js/musicutils.js:663 -#.TRANS: modal scale for music -msgid "aeolian" +#: js/rubrics.js:531 +#: js/turtledefs.js:136 +#: js/turtledefs.js:238 +msgid "sensors" msgstr "" -#: js/piemenus.js:3407 -msgid "Duplicate" +#: js/rubrics.js:532 +#: js/turtledefs.js:135 +#: js/turtledefs.js:237 +#: js/blocks/MediaBlocks.js:930 +msgid "media" msgstr "" -#: js/piemenus.js:3408 -#: js/turtledefs.js:534 -msgid "Extract" +#: js/rubrics.js:533 +msgid "mice" msgstr "" -#: js/piemenus.js:3409 -msgid "Move to trash" +#: js/toolbar.js:48 +#: js/toolbar.js:109 +msgid "About Music Blocks" msgstr "" -#: js/piemenus.js:3410 -#: js/timbre.js:968 -#: js/StringHelper.js:69 -msgid "Close" +#: js/toolbar.js:49 +#: js/toolbar.js:110 +#: js/toolbar.js:175 +#: js/toolbar.js:231 +#: js/turtledefs.js:445 +#: js/turtledefs.js:482 +#: js/activity.js:2660 +#: js/activity.js:2671 +#: js/activity.js:2902 +#: js/widgets/modewidget.js:77 +#: js/widgets/meterwidget.js:185 +#: js/widgets/pitchdrummatrix.js:147 +#: js/widgets/pitchdrummatrix.js:687 +#: js/widgets/pitchdrummatrix.js:689 +#: js/widgets/pitchdrummatrix.js:741 +#: js/widgets/pitchdrummatrix.js:743 +#: js/widgets/pitchdrummatrix.js:758 +#: js/widgets/pitchdrummatrix.js:760 +#: js/widgets/pitchdrummatrix.js:789 +#: js/widgets/pitchdrummatrix.js:791 +#: js/widgets/pitchstaircase.js:121 +#: js/widgets/temperament.js:610 +#: js/widgets/temperament.js:613 +#: js/widgets/temperament.js:673 +#: js/widgets/temperament.js:675 +#: js/widgets/temperament.js:2017 +#: js/widgets/temperament.js:2019 +#: js/widgets/tempo.js:84 +#: js/widgets/tempo.js:86 +#: js/widgets/timbre.js:432 +#: js/widgets/timbre.js:434 +#: js/widgets/timbre.js:465 +#: js/widgets/timbre.js:467 +#: js/widgets/timbre.js:746 +#: js/widgets/aiwidget.js:647 +#: js/widgets/aiwidget.js:654 +#: js/widgets/aiwidget.js:656 +#: js/widgets/arpeggio.js:90 +#: js/widgets/arpeggio.js:547 +#: js/widgets/arpeggio.js:549 +#: js/widgets/arpeggio.js:644 +#: js/widgets/arpeggio.js:646 +#: js/widgets/musickeyboard.js:676 +#: js/widgets/musickeyboard.js:872 +#: js/widgets/musickeyboard.js:874 +#: js/widgets/musickeyboard.js:953 +#: js/widgets/musickeyboard.js:955 +#: js/widgets/phrasemaker.js:513 +#: js/widgets/phrasemaker.js:523 +#: js/widgets/phrasemaker.js:525 +#: js/widgets/phrasemaker.js:4304 +#: js/widgets/phrasemaker.js:4528 +#: js/widgets/phrasemaker.js:4533 +#: js/widgets/phrasemaker.js:4535 +#: js/widgets/phrasemaker.js:4650 +#: js/widgets/rhythmruler.js:637 +#: js/widgets/rhythmruler.js:639 +#: js/widgets/rhythmruler.js:653 +#: js/widgets/rhythmruler.js:655 +#: js/widgets/sampler.js:162 +#: js/widgets/sampler.js:164 +#: js/widgets/sampler.js:363 +msgid "Play" msgstr "" -#: js/piemenus.js:3416 -msgid "Save stack" +#: js/toolbar.js:50 +#: js/toolbar.js:111 +#: js/toolbar.js:176 +#: js/toolbar.js:232 +#: js/turtledefs.js:451 +#: js/turtledefs.js:488 +#: js/activity.js:2679 +#: js/widgets/modewidget.js:99 +#: js/widgets/modewidget.js:101 +#: js/widgets/meterwidget.js:206 +#: js/widgets/meterwidget.js:208 +#: js/widgets/pitchdrummatrix.js:674 +#: js/widgets/pitchdrummatrix.js:676 +#: js/widgets/temperament.js:2002 +#: js/widgets/temperament.js:2004 +#: js/widgets/arpeggio.js:534 +#: js/widgets/arpeggio.js:536 +#: js/widgets/phrasemaker.js:534 +#: js/widgets/phrasemaker.js:536 +msgid "Stop" msgstr "" -#: js/piemenus.js:3420 -#: js/toolbar.js:60 -#: js/toolbar.js:120 -#: js/toolbar.js:185 -#: js/toolbar.js:240 -#: js/turtledefs.js:752 -msgid "Help" +#: js/toolbar.js:51 +#: js/toolbar.js:112 +#: js/toolbar.js:177 +#: js/toolbar.js:233 +#: js/turtledefs.js:498 +msgid "Record" msgstr "" -#: js/piemenus.js:3762 -msgid "You have chosen key " -msgstr "" +#: js/toolbar.js:52 +#: js/toolbar.js:53 +msgid "Full screen" +msgstr "" + +#: js/toolbar.js:54 +#: js/toolbar.js:115 +#: js/toolbar.js:180 +#: js/toolbar.js:236 +#: js/turtledefs.js:504 +msgid "Toggle Fullscreen" +msgstr "" + +#: js/toolbar.js:55 +#: js/toolbar.js:116 +#: js/toolbar.js:181 +#: js/toolbar.js:237 +#: js/turtledefs.js:510 +#: planet/js/StringHelper.js:33 +msgid "New project" +msgstr "" + +#: js/toolbar.js:56 +#: js/toolbar.js:117 +#: js/toolbar.js:182 +#: js/toolbar.js:238 +#: js/turtledefs.js:516 +msgid "Load project from file" +msgstr "" + +#: js/toolbar.js:57 +#: js/toolbar.js:118 +#: js/toolbar.js:119 +#: js/toolbar.js:183 +#: js/toolbar.js:239 +#: js/turtledefs.js:541 +#: js/turtledefs.js:550 +#: js/turtledefs.js:571 +msgid "Save project" +msgstr "" + +#: js/toolbar.js:58 +#: js/toolbar.js:77 +#: js/toolbar.js:79 +#: js/toolbar.js:138 +#: js/toolbar.js:147 +#: js/toolbar.js:149 +#: js/toolbar.js:184 +#: js/toolbar.js:202 +#: js/toolbar.js:204 +#: js/toolbar.js:240 +#: js/toolbar.js:258 +#: js/toolbar.js:260 +msgid "Save project as HTML" +msgstr "" + +#: js/toolbar.js:59 +#: js/toolbar.js:120 +#: js/toolbar.js:185 +#: js/toolbar.js:241 +msgid "Find and share projects" +msgstr "" + +#: js/toolbar.js:60 +#: js/toolbar.js:121 +#: js/toolbar.js:186 +#: js/toolbar.js:242 +msgid "Offline. Sharing is unavailable" +msgstr "" + +#: js/toolbar.js:61 +#: js/toolbar.js:122 +#: js/toolbar.js:187 +#: js/toolbar.js:243 +msgid "Auxiliary menu" +msgstr "" + +#: js/toolbar.js:62 +#: js/toolbar.js:123 +#: js/toolbar.js:188 +#: js/toolbar.js:244 +#: js/turtledefs.js:752 +#: js/piemenus.js:3423 +msgid "Help" +msgstr "" + +#: js/toolbar.js:63 +#: js/toolbar.js:124 +#: js/toolbar.js:189 +#: js/toolbar.js:245 +msgid "Run slowly" +msgstr "" + +#: js/toolbar.js:64 +#: js/toolbar.js:125 +#: js/toolbar.js:190 +#: js/toolbar.js:246 +#: js/turtledefs.js:682 +msgid "Run step by step" +msgstr "" + +#: js/toolbar.js:65 +#: js/toolbar.js:126 +#: js/toolbar.js:191 +#: js/toolbar.js:247 +#: js/turtledefs.js:689 +msgid "Display statistics" +msgstr "" + +#: js/toolbar.js:66 +#: js/toolbar.js:127 +#: js/toolbar.js:192 +#: js/toolbar.js:248 +msgid "Load plugin" +msgstr "" + +#: js/toolbar.js:67 +#: js/toolbar.js:128 +#: js/toolbar.js:193 +#: js/toolbar.js:249 +#: js/turtledefs.js:696 +msgid "Delete plugin" +msgstr "" + +#: js/toolbar.js:68 +#: js/toolbar.js:129 +#: js/toolbar.js:194 +#: js/toolbar.js:250 +msgid "Enable horizontal scrolling" +msgstr "" + +#: js/toolbar.js:69 +#: js/toolbar.js:130 +#: js/toolbar.js:195 +#: js/toolbar.js:251 +msgid "Disable horizontal scrolling" +msgstr "" + +#: js/toolbar.js:70 +#: js/toolbar.js:131 +#: js/toolbar.js:196 +#: js/toolbar.js:252 +#: planet/js/LocalCard.js:54 +#: planet/js/StringHelper.js:71 +msgid "Merge with current project" +msgstr "" + +#: js/toolbar.js:71 +#: js/toolbar.js:132 +msgid "Set Pitch Preview" +msgstr "" + +#: js/toolbar.js:72 +#: js/toolbar.js:133 +#: js/toolbar.js:197 +#: js/toolbar.js:253 +msgid "JavaScript Editor" +msgstr "" + +#: js/toolbar.js:73 +#: js/toolbar.js:134 +#: js/toolbar.js:198 +#: js/toolbar.js:254 +#: js/turtledefs.js:724 +msgid "Restore" +msgstr "" + +#: js/toolbar.js:74 +#: js/toolbar.js:135 +#: js/toolbar.js:199 +#: js/toolbar.js:255 +msgid "Switch to beginner mode" +msgstr "" + +#: js/toolbar.js:75 +#: js/toolbar.js:136 +#: js/toolbar.js:200 +#: js/toolbar.js:256 +msgid "Switch to advanced mode" +msgstr "" + +#: js/toolbar.js:76 +#: js/toolbar.js:137 +#: js/toolbar.js:146 +#: js/toolbar.js:201 +#: js/toolbar.js:257 +#: js/turtledefs.js:738 +msgid "Select language" +msgstr "" + +#: js/toolbar.js:78 +#: js/toolbar.js:81 +#: js/toolbar.js:140 +#: js/turtledefs.js:579 +msgid "Save mouse artwork as PNG" +msgstr "" + +#: js/toolbar.js:80 +#: js/toolbar.js:139 +#: js/turtledefs.js:575 +msgid "Save mouse artwork as SVG" +msgstr "" + +#: js/toolbar.js:82 +#: js/toolbar.js:141 +#: js/turtledefs.js:583 +msgid "Save music as WAV" +msgstr "" + +#: js/toolbar.js:83 +#: js/toolbar.js:142 +#: js/turtledefs.js:587 +msgid "Save sheet music as ABC" +msgstr "" + +#: js/toolbar.js:84 +#: js/toolbar.js:143 +#: js/turtledefs.js:591 +msgid "Save sheet music as Lilypond" +msgstr "" + +#: js/toolbar.js:85 +msgid "Save sheet music as MusicXML" +msgstr "" + +#: js/toolbar.js:86 +#: js/toolbar.js:144 +#: js/toolbar.js:152 +#: js/toolbar.js:207 +#: js/toolbar.js:263 +#: js/turtledefs.js:562 +#: js/turtledefs.js:595 +msgid "Save block artwork as SVG" +msgstr "" + +#: js/toolbar.js:87 +#: js/toolbar.js:145 +#: js/toolbar.js:153 +#: js/toolbar.js:208 +#: js/toolbar.js:264 +#: js/turtles.js:911 +msgid "Confirm" +msgstr "" + +#: js/toolbar.js:88 +#: js/toolbar.js:154 +#: js/toolbar.js:209 +#: js/toolbar.js:265 +msgid "English (United States)" +msgstr "" + +#: js/toolbar.js:89 +#: js/toolbar.js:155 +#: js/toolbar.js:210 +#: js/toolbar.js:266 +msgid "English (United Kingdom)" +msgstr "" + +#: js/toolbar.js:90 +#: js/toolbar.js:156 +#: js/toolbar.js:211 +#: js/toolbar.js:267 +msgid "日本語" +msgstr "" + +#: js/toolbar.js:91 +msgid "한국어" +msgstr "" + +#: js/toolbar.js:92 +#: js/toolbar.js:158 +#: js/toolbar.js:213 +#: js/toolbar.js:269 +msgid "español" +msgstr "" + +#: js/toolbar.js:93 +#: js/toolbar.js:159 +#: js/toolbar.js:214 +#: js/toolbar.js:270 +msgid "português" +msgstr "" + +#: js/toolbar.js:94 +#: js/toolbar.js:160 +#: js/toolbar.js:215 +#: js/toolbar.js:271 +msgid "にほんご" +msgstr "" + +#: js/toolbar.js:95 +#: js/toolbar.js:161 +#: js/toolbar.js:216 +#: js/toolbar.js:272 +msgid "中文" +msgstr "" + +#: js/toolbar.js:96 +#: js/toolbar.js:162 +#: js/toolbar.js:217 +#: js/toolbar.js:273 +msgid "ภาษาไทย" +msgstr "" + +#: js/toolbar.js:97 +#: js/toolbar.js:163 +#: js/toolbar.js:218 +#: js/toolbar.js:274 +msgid "aymara" +msgstr "" + +#: js/toolbar.js:98 +#: js/toolbar.js:164 +#: js/toolbar.js:219 +#: js/toolbar.js:275 +msgid "quechua" +msgstr "" + +#: js/toolbar.js:99 +#: js/toolbar.js:165 +#: js/toolbar.js:220 +#: js/toolbar.js:276 +msgid "guarani" +msgstr "" + +#: js/toolbar.js:100 +#: js/toolbar.js:166 +#: js/toolbar.js:221 +#: js/toolbar.js:277 +msgid "हिंदी" +msgstr "" + +#: js/toolbar.js:101 +#: js/toolbar.js:168 +#: js/toolbar.js:222 +#: js/toolbar.js:279 +msgid "igbo" +msgstr "" + +#: js/toolbar.js:102 +#: js/toolbar.js:169 +#: js/toolbar.js:223 +#: js/toolbar.js:280 +msgid "عربى" +msgstr "" + +#: js/toolbar.js:103 +#: js/toolbar.js:167 +#: js/toolbar.js:224 +#: js/toolbar.js:278 +msgid "తెలుగు" +msgstr "" + +#: js/toolbar.js:104 +#: js/toolbar.js:170 +#: js/toolbar.js:225 +#: js/toolbar.js:281 +msgid "עִברִית" +msgstr "" + +#: js/toolbar.js:113 +#: js/toolbar.js:114 +#: js/toolbar.js:178 +#: js/toolbar.js:179 +#: js/toolbar.js:234 +#: js/toolbar.js:235 +msgid "Full Screen" +msgstr "" + +#: js/toolbar.js:148 +#: js/toolbar.js:151 +#: js/toolbar.js:203 +#: js/toolbar.js:206 +#: js/toolbar.js:259 +#: js/toolbar.js:262 +#: js/turtledefs.js:558 +msgid "Save turtle artwork as PNG" +msgstr "" + +#: js/toolbar.js:150 +#: js/toolbar.js:205 +#: js/toolbar.js:261 +#: js/turtledefs.js:554 +msgid "Save turtle artwork as SVG" +msgstr "" + +#: js/toolbar.js:157 +#: js/toolbar.js:212 +#: js/toolbar.js:268 +msgid "한국인" +msgstr "" + +#: js/toolbar.js:174 +#: js/toolbar.js:230 +msgid "About Turtle Blocks" +msgstr "" + +#: js/toolbar.js:446 +#: js/toolbar.js:457 +#: js/toolbar.js:497 +msgid "Turtle Wrap Off" +msgstr "" + +#: js/toolbar.js:466 +#: js/toolbar.js:506 +msgid "Turtle Wrap On" +msgstr "" + +#: js/turtle-painter.js:1192 +#: js/turtle-painter.js:1193 +#: js/turtles.js:118 +#: js/block-verbose.js:1623 +#: js/block.js:1587 +#: js/lilypond.js:749 +#: js/lilypond.js:913 +#: js/lilypond.js:951 +#: js/logo.js:1184 +#: js/blocks/ActionBlocks.js:1223 +#: js/blocks/ProgramBlocks.js:1267 +msgid "start" +msgstr "käynnistä" + +#: js/turtledefs.js:40 +#.TRANS: put the URL to the guide here, e.g., https://github.com/sugarlabs/turtleblocksjs/tree/master/guide/README.md +msgid "guide url" +msgstr "" + +#: js/turtledefs.js:85 +#: js/turtledefs.js:437 +msgid "Turtle Blocks is a Logo-inspired turtle that draws colorful pictures with snap-together visual-programming blocks." +msgstr "" + +#: js/turtledefs.js:118 +#: js/turtledefs.js:220 +msgid "search" +msgstr "" + +#: js/turtledefs.js:120 +#: js/turtledefs.js:222 +#: js/blocks/MeterBlocks.js:1343 +#: js/blocks/WidgetBlocks.js:522 +#.TRANS: musical meter (time signature), e.g., 4:4 +msgid "meter" +msgstr "" + +#: js/turtledefs.js:122 +#: js/turtledefs.js:224 +msgid "intervals" +msgstr "" + +#: js/turtledefs.js:124 +#: js/turtledefs.js:226 +msgid "ornament" +msgstr "" + +#: js/turtledefs.js:125 +#: js/turtledefs.js:227 +#: js/blocks/VolumeBlocks.js:362 +#: js/blocks/VolumeBlocks.js:502 +#: js/blocks/VolumeBlocks.js:545 +msgid "volume" +msgstr "" + +#: js/turtledefs.js:126 +#: js/turtledefs.js:228 +#: js/block-verbose.js:1700 +#: js/block-verbose.js:2626 +#: js/block.js:1664 +#: js/block.js:2554 +#: js/lilypond.js:732 +#: js/lilypond.js:897 +#: js/lilypond.js:941 +#: js/palette.js:577 +#: js/blocks/RhythmBlocks.js:766 +#: js/blocks/DrumBlocks.js:477 +#: js/blocks/VolumeBlocks.js:502 +#: js/widgets/phrasemaker.js:1038 +msgid "drum" +msgstr "" + +#: js/turtledefs.js:129 +#: js/turtledefs.js:231 +msgid "boxes" +msgstr "" + +#: js/turtledefs.js:130 +#: js/turtledefs.js:232 +msgid "widgets" +msgstr "" + +#: js/turtledefs.js:131 +#: js/turtledefs.js:233 +#: js/widgets/phrasemaker.js:1039 +msgid "graphics" +msgstr "" + +#: js/turtledefs.js:134 +#: js/turtledefs.js:236 +msgid "boolean" +msgstr "" + +#: js/turtledefs.js:137 +#: js/turtledefs.js:239 +#: js/blocks/HeapBlocks.js:59 +#: js/widgets/status.js:147 +msgid "heap" +msgstr "" + +#: js/turtledefs.js:138 +#: js/turtledefs.js:240 +#: js/blocks/DictBlocks.js:142 +#: js/blocks/ProgramBlocks.js:495 +msgid "dictionary" +msgstr "" + +#: js/turtledefs.js:139 +#: js/turtledefs.js:241 +msgid "ensemble" +msgstr "" + +#: js/turtledefs.js:140 +#: js/turtledefs.js:242 +msgid "extras" +msgstr "" + +#: js/turtledefs.js:142 +#: js/turtledefs.js:244 +#.TRANS: program as in computer program +#.TRANS: program as in computer program +msgid "program" +msgstr "" + +#: js/turtledefs.js:143 +#: js/turtledefs.js:245 +msgid "my blocks" +msgstr "" + +#: js/turtledefs.js:185 +#: js/turtledefs.js:281 +msgid "artwork" +msgstr "" + +#: js/turtledefs.js:185 +#: js/turtledefs.js:281 +msgid "logic" +msgstr "" + +#: js/turtledefs.js:185 +#: js/turtledefs.js:281 +msgid "music" +msgstr "" + +#: js/turtledefs.js:187 +#: js/turtledefs.js:463 +msgid "Music Blocks is a collection of tools for exploring fundamental musical concepts in a fun way." +msgstr "" + +#: js/turtledefs.js:436 +msgid "Welcome to Turtle Blocks" +msgstr "" + +#: js/turtledefs.js:438 +#: js/turtledefs.js:465 +#: js/turtledefs.js:774 +#: js/turtledefs.js:805 +msgid "The current version is" +msgstr "" + +#: js/turtledefs.js:446 +#: js/turtledefs.js:483 +msgid "Click the run button to run the project in fast mode." +msgstr "" + +#: js/turtledefs.js:452 +msgid "Stop the turtle." +msgstr "" + +#: js/turtledefs.js:454 +#: js/turtledefs.js:491 +msgid "You can also type Alt-S to stop." +msgstr "" + +#: js/turtledefs.js:462 +#: js/widgets/help.js:333 +msgid "Welcome to Music Blocks" +msgstr "" + +#: js/turtledefs.js:472 +#: js/widgets/help.js:334 +msgid "Meet Mr. Mouse!" +msgstr "" + +#: js/turtledefs.js:473 +msgid "Mr Mouse is our Music Blocks conductor." +msgstr "" + +#: js/turtledefs.js:475 +msgid "Mr Mouse encourages you to explore Music Blocks." +msgstr "" + +#: js/turtledefs.js:477 +msgid "Let us start our tour!" +msgstr "" + +#: js/turtledefs.js:489 +msgid "Stop the music (and the mice)." +msgstr "" + +#: js/turtledefs.js:499 +msgid "Record your project as video." +msgstr "" + +#: js/turtledefs.js:505 +msgid "Toggle Fullscreen mode." +msgstr "" + +#: js/turtledefs.js:511 +msgid "Initialize a new project." +msgstr "" + +#: js/turtledefs.js:517 +msgid "You can also load projects from the file system." +msgstr "" + +#: js/turtledefs.js:522 +#: planet/js/StringHelper.js:46 +msgid "Delete" +msgstr "" + +#: js/turtledefs.js:523 +msgid "To delete a block, just right-click on it, then you will be able to see the delete option" +msgstr "" + +#: js/turtledefs.js:528 +#: js/activity.js:2649 +#: planet/js/LocalCard.js:31 +msgid "Copy" +msgstr "" + +#: js/turtledefs.js:529 +msgid "To copy a block, just right-click on it, then you will be able to see the copy option" +msgstr "" + +#: js/turtledefs.js:534 +#: js/piemenus.js:3411 +msgid "Extract" +msgstr "" + +#: js/turtledefs.js:535 +msgid "To extract a block, just right-click on it, then you will be able to see the extract option" +msgstr "" + +#: js/turtledefs.js:542 +#: js/turtledefs.js:552 +#: js/turtledefs.js:573 +msgid "Save your project to a file." +msgstr "" + +#: js/turtledefs.js:549 +#: js/turtledefs.js:570 +msgid "save" +msgstr "" + +#: js/turtledefs.js:556 +#: js/turtledefs.js:577 +msgid "Save graphics from your project to as SVG." +msgstr "" + +#: js/turtledefs.js:560 +#: js/turtledefs.js:581 +msgid "Save graphics from your project as PNG." +msgstr "" + +#: js/turtledefs.js:564 +#: js/turtledefs.js:597 +msgid "Save block artwork as an SVG file." +msgstr "" + +#: js/turtledefs.js:585 +msgid "Save audio from your project as WAV." +msgstr "" + +#: js/turtledefs.js:589 +msgid "Save your project to as an ABC file." +msgstr "" + +#: js/turtledefs.js:593 +msgid "Save your project to as a Lilypond file." +msgstr "" + +#: js/turtledefs.js:604 +msgid "Load samples from server" +msgstr "" + +#: js/turtledefs.js:605 +msgid "This button opens a viewer for loading example projects." +msgstr "" + +#: js/turtledefs.js:611 +msgid "Palette buttons" +msgstr "" + +#: js/turtledefs.js:612 +msgid "This toolbar contains the palette buttons including Rhythm Pitch Tone Action and more." +msgstr "" + +#: js/turtledefs.js:614 +msgid "Click to show the palettes of blocks and drag blocks from the palettes onto the canvas to use them." +msgstr "" + +#: js/turtledefs.js:620 +msgid "Cartesian/Polar" +msgstr "" + +#: js/turtledefs.js:621 +msgid "Show or hide a coordinate grid." +msgstr "" + +#: js/turtledefs.js:626 +#: js/turtles.js:902 +msgid "Clean" +msgstr "Puhdas" + +#: js/turtledefs.js:627 +msgid "Clear the screen and return the mice to their initial positions." +msgstr "" + +#: js/turtledefs.js:632 +#: js/turtles.js:955 +msgid "Collapse" +msgstr "" + +#: js/turtledefs.js:633 +msgid "Collapse the graphics window." +msgstr "" + +#: js/turtledefs.js:638 +#: js/activity.js:5684 +msgid "Home" +msgstr "" + +#: js/turtledefs.js:639 +msgid "Return all blocks to the center of the screen." +msgstr "" + +#: js/turtledefs.js:644 +msgid "Show/hide blocks" +msgstr "" + +#: js/turtledefs.js:645 +msgid "Hide or show the blocks and the palettes." +msgstr "" + +#: js/turtledefs.js:650 +msgid "Expand/collapse collapsable blocks" +msgstr "" + +#: js/turtledefs.js:651 +msgid "Expand or collapse start and action stacks." +msgstr "" + +#: js/turtledefs.js:658 +#: js/activity.js:5704 +msgid "Decrease block size" +msgstr "" + +#: js/turtledefs.js:659 +msgid "Decrease the size of the blocks." +msgstr "" -#: js/piemenus.js:3766 -msgid " for your pitch preview." +#: js/turtledefs.js:664 +#: js/activity.js:5710 +msgid "Increase block size" msgstr "" -#: js/palette.js:571 -msgid "grid" +#: js/turtledefs.js:665 +msgid "Increase the size of the blocks." msgstr "" -#: js/palette.js:577 -#: js/block.js:1540 -#: js/block.js:2343 -#: js/turtledefs.js:126 -#: js/turtledefs.js:228 -#: js/lilypond.js:740 -#: js/lilypond.js:905 -#: js/lilypond.js:949 -#: js/DrumBlocks.js:486 -#: js/RhythmBlocks.js:766 -#: js/VolumeBlocks.js:502 -#: js/phrasemaker.js:823 -msgid "drum" +#: js/turtledefs.js:670 +msgid "Expand/collapse option toolbar" msgstr "" -#: js/palette.js:580 -msgid "effect" +#: js/turtledefs.js:671 +msgid "Click this button to expand or collapse the auxillary toolbar." msgstr "" -#: js/palette.js:586 -msgid "sargam" +#: js/turtledefs.js:676 +msgid "Run slow" msgstr "" -#: js/palette.js:589 -#: js/activity.js:1833 -#: js/RhythmBlocks.js:923 -#: js/PitchBlocks.js:442 -#: js/PitchBlocks.js:1748 -#.TRANS: a numeric mapping of the notes in an octave based on the musical mode -msgid "scale degree" +#: js/turtledefs.js:677 +msgid "Click to run the project in slow mode." msgstr "" -#: js/palette.js:592 -#: js/activity.js:1860 -msgid "mode name" +#: js/turtledefs.js:683 +msgid "Click to run the project step by step." msgstr "" -#: js/palette.js:595 -#: js/activity.js:1839 -msgid "invert mode" +#: js/turtledefs.js:690 +msgid "Display statistics about your Music project." msgstr "" -#: js/palette.js:598 -#: js/activity.js:1836 -msgid "voice name" +#: js/turtledefs.js:697 +msgid "Delete a selected plugin." msgstr "" -#: js/palette.js:601 -#: js/PitchBlocks.js:1181 -msgid "custom pitch" +#: js/turtledefs.js:704 +msgid "Enable scrolling" msgstr "" -#: js/palette.js:605 -#: js/block.js:1456 -#: js/block.js:1575 -#: js/WidgetBlocks.js:218 -#: js/IntervalsBlocks.js:63 -msgid "temperament" +#: js/turtledefs.js:705 +msgid "You can scroll the blocks on the canvas." msgstr "" -#: js/palette.js:609 -msgid "accidental" +#: js/turtledefs.js:714 +msgid "Wrap Turtle" msgstr "" -#: js/palette.js:615 -#: js/activity.js:1866 -msgid "interval name" +#: js/turtledefs.js:715 +msgid "Turn Turtle wrapping On or Off." msgstr "" -#: js/palette.js:633 -#: js/PitchBlocks.js:405 -msgid "pitch converter" +#: js/turtledefs.js:725 +msgid "Restore blocks from the trash." msgstr "" -#: js/rubrics.js:522 -#: js/turtledefs.js:119 -#: js/turtledefs.js:221 -#: js/RhythmBlockPaletteBlocks.js:52 -#: js/RhythmBlockPaletteBlocks.js:233 -#: js/ProgramBlocks.js:745 -#: js/rhythmruler.js:1670 -#: js/rhythmruler.js:1677 -#: js/rhythmruler.js:1745 -#: js/rhythmruler.js:1752 -#: js/rhythmruler.js:1830 -#.TRANS: an arrangement of notes based on duration -msgid "rhythm" +#: js/turtledefs.js:732 +msgid "Switch mode" msgstr "" -#: js/rubrics.js:523 -#: js/block.js:2339 -#: js/turtledefs.js:121 -#: js/turtledefs.js:223 -#: js/IntervalsBlocks.js:63 -#: js/PitchBlocks.js:1801 -#: js/PitchBlocks.js:1814 -#: js/SensorsBlocks.js:178 -#: js/phrasemaker.js:821 -#: js/musickeyboard.js:1653 -#.TRANS: pitch number -#.TRANS: we specify pitch in terms of a name and an octave. The name can be CDEFGAB or Do Re Mi Fa Sol La Ti. Octave is a number between 1 and 8. -msgid "pitch" +#: js/turtledefs.js:733 +msgid "Switch between beginner and advance modes." msgstr "" -#: js/rubrics.js:524 -#: js/turtledefs.js:123 -#: js/turtledefs.js:225 -msgid "tone" +#: js/turtledefs.js:739 +msgid "Select your language preference." msgstr "" -#: js/rubrics.js:525 -#: js/lilypond.js:613 -#: js/lilypond.js:912 -#: js/lilypond.js:918 -#: js/lilypond.js:956 -msgid "mouse" +#: js/turtledefs.js:745 +msgid "Keyboard shortcuts" msgstr "" -#: js/rubrics.js:526 -#: js/turtledefs.js:132 -#: js/turtledefs.js:234 -#: js/phrasemaker.js:825 -msgid "pen" +#: js/turtledefs.js:746 +msgid "You can type d to create a do block and r to create a re block etc." msgstr "" -#: js/rubrics.js:527 -#: js/turtledefs.js:133 -#: js/turtledefs.js:235 -#: js/NumberBlocks.js:905 -#: js/PitchBlocks.js:1679 -#: js/PitchBlocks.js:1720 -msgid "number" -msgstr "numero" +#: js/turtledefs.js:753 +msgid "Show these messages." +msgstr "" -#: js/rubrics.js:528 -#: js/turtledefs.js:127 -#: js/turtledefs.js:229 -msgid "flow" +#: js/turtledefs.js:759 +#: js/turtledefs.js:790 +#: js/widgets/help.js:335 +msgid "Guide" msgstr "" -#: js/rubrics.js:530 -#: js/turtledefs.js:136 -#: js/turtledefs.js:238 -msgid "sensors" +#: js/turtledefs.js:760 +msgid "A detailed guide to Turtle Blocks is available." msgstr "" -#: js/rubrics.js:531 -#: js/turtledefs.js:135 -#: js/turtledefs.js:237 -#: js/MediaBlocks.js:930 -msgid "media" +#: js/turtledefs.js:764 +msgid "Turtle Blocks Guide" msgstr "" -#: js/rubrics.js:532 -msgid "mice" +#: js/turtledefs.js:767 +#: js/turtledefs.js:798 +#: js/widgets/help.js:336 +msgid "About" msgstr "" -#: js/macros.js:711 -#: js/musicutils.js:783 -#: js/synthutils.js:181 -#.TRANS: animal sound effect -msgid "duck" +#: js/turtledefs.js:768 +msgid "Turtle Blocks is an open source collection of tools for exploring musical concepts." msgstr "" -#: js/toolbar.js:46 -#: js/toolbar.js:107 -msgid "About Music Blocks" +#: js/turtledefs.js:770 +msgid "A full list of contributors can be found in the Turtle Blocks GitHub repository." msgstr "" -#: js/toolbar.js:47 -#: js/toolbar.js:108 -#: js/toolbar.js:172 -#: js/toolbar.js:228 -#: js/turtledefs.js:445 -#: js/turtledefs.js:482 -#: js/activity.js:2281 -#: js/activity.js:2289 -#: js/activity.js:2520 -#: js/modewidget.js:77 -#: js/pitchstaircase.js:121 -#: js/phrasemaker.js:302 -#: js/phrasemaker.js:312 -#: js/phrasemaker.js:314 -#: js/phrasemaker.js:3901 -#: js/phrasemaker.js:4061 -#: js/phrasemaker.js:4066 -#: js/phrasemaker.js:4068 -#: js/phrasemaker.js:4183 -#: js/pitchdrummatrix.js:81 -#: js/pitchdrummatrix.js:574 -#: js/pitchdrummatrix.js:576 -#: js/pitchdrummatrix.js:628 -#: js/pitchdrummatrix.js:630 -#: js/pitchdrummatrix.js:645 -#: js/pitchdrummatrix.js:647 -#: js/pitchdrummatrix.js:674 -#: js/pitchdrummatrix.js:676 -#: js/temperament.js:477 -#: js/temperament.js:480 -#: js/temperament.js:540 -#: js/temperament.js:542 -#: js/temperament.js:1835 -#: js/temperament.js:1837 -#: js/temperament.js:1986 -#: js/temperament.js:1988 -#: js/musickeyboard.js:522 -#: js/musickeyboard.js:682 -#: js/musickeyboard.js:684 -#: js/musickeyboard.js:756 -#: js/musickeyboard.js:758 -#: js/rhythmruler.js:298 -#: js/rhythmruler.js:300 -#: js/rhythmruler.js:314 -#: js/rhythmruler.js:316 -#: js/sampler.js:96 -#: js/sampler.js:98 -#: js/sampler.js:229 -#: js/sampler.js:235 -#: js/sampler.js:237 -#: js/tempo.js:84 -#: js/tempo.js:86 -#: js/timbre.js:432 -#: js/timbre.js:434 -#: js/timbre.js:465 -#: js/timbre.js:467 -#: js/timbre.js:746 -#: js/meterwidget.js:80 -#: js/arpeggio.js:90 -#: js/arpeggio.js:547 -#: js/arpeggio.js:549 -#: js/arpeggio.js:644 -#: js/arpeggio.js:646 -msgid "Play" +#: js/turtledefs.js:772 +msgid "Turtle Blocks is licensed under the AGPL." msgstr "" -#: js/toolbar.js:48 -#: js/toolbar.js:109 -#: js/toolbar.js:173 -#: js/toolbar.js:229 -#: js/turtledefs.js:451 -#: js/turtledefs.js:488 -#: js/activity.js:2297 -#: js/modewidget.js:99 -#: js/modewidget.js:101 -#: js/phrasemaker.js:323 -#: js/phrasemaker.js:325 -#: js/pitchdrummatrix.js:561 -#: js/pitchdrummatrix.js:563 -#: js/temperament.js:1820 -#: js/temperament.js:1822 -#: js/meterwidget.js:101 -#: js/meterwidget.js:103 -#: js/arpeggio.js:534 -#: js/arpeggio.js:536 -msgid "Stop" +#: js/turtledefs.js:780 +msgid "Turtle Blocks GitHub repository" msgstr "" -#: js/toolbar.js:49 -#: js/toolbar.js:110 -#: js/toolbar.js:174 -#: js/toolbar.js:230 -#: js/turtledefs.js:498 -msgid "Record" +#: js/turtledefs.js:783 +#: js/turtledefs.js:814 +#: js/widgets/help.js:337 +#: js/widgets/help.js:359 +msgid "Congratulations." msgstr "" -#: js/toolbar.js:50 -#: js/toolbar.js:51 -msgid "Full screen" +#: js/turtledefs.js:784 +msgid "You have finished the tour. Please enjoy Turtle Blocks!" msgstr "" -#: js/toolbar.js:52 -#: js/toolbar.js:112 -#: js/toolbar.js:177 -#: js/toolbar.js:232 -#: js/turtledefs.js:504 -msgid "Toggle Fullscreen" +#: js/turtledefs.js:791 +msgid "A detailed guide to Music Blocks is available." msgstr "" -#: js/toolbar.js:53 -#: js/toolbar.js:113 -#: js/toolbar.js:178 -#: js/toolbar.js:233 -#: js/turtledefs.js:510 -#: js/StringHelper.js:33 -msgid "New project" +#: js/turtledefs.js:799 +msgid "Music Blocks is an open source collection of tools for exploring musical concepts." msgstr "" -#: js/toolbar.js:54 -#: js/toolbar.js:114 -#: js/toolbar.js:179 -#: js/toolbar.js:234 -#: js/turtledefs.js:516 -msgid "Load project from file" +#: js/turtledefs.js:801 +msgid "A full list of contributors can be found in the Music Blocks GitHub repository." msgstr "" -#: js/toolbar.js:55 -#: js/toolbar.js:115 -#: js/toolbar.js:116 -#: js/toolbar.js:180 -#: js/toolbar.js:235 -#: js/turtledefs.js:541 -#: js/turtledefs.js:550 -#: js/turtledefs.js:571 -msgid "Save project" +#: js/turtledefs.js:803 +msgid "Music Blocks is licensed under the AGPL." msgstr "" -#: js/toolbar.js:56 -#: js/toolbar.js:75 -#: js/toolbar.js:77 -#: js/toolbar.js:135 -#: js/toolbar.js:144 -#: js/toolbar.js:146 -#: js/toolbar.js:181 -#: js/toolbar.js:199 -#: js/toolbar.js:201 -#: js/toolbar.js:236 -#: js/toolbar.js:254 -#: js/toolbar.js:256 -msgid "Save project as HTML" +#: js/turtledefs.js:811 +msgid "Music Blocks GitHub repository" msgstr "" -#: js/toolbar.js:57 -#: js/toolbar.js:117 -#: js/toolbar.js:182 -#: js/toolbar.js:237 -msgid "Find and share projects" +#: js/turtledefs.js:815 +msgid "You have finished the tour. Please enjoy Music Blocks!" msgstr "" -#: js/toolbar.js:58 -#: js/toolbar.js:118 -#: js/toolbar.js:183 -#: js/toolbar.js:238 -msgid "Offline. Sharing is unavailable" +#: js/turtles.js:882 +msgid "Grid" msgstr "" -#: js/toolbar.js:59 -#: js/toolbar.js:119 -#: js/toolbar.js:184 -#: js/toolbar.js:239 -msgid "Auxiliary menu" +#: js/turtles.js:1024 +msgid "Expand" msgstr "" -#: js/toolbar.js:61 -#: js/toolbar.js:121 -#: js/toolbar.js:186 -#: js/toolbar.js:241 -msgid "Run slowly" +#: js/block-verbose.js:1616 +#: js/block-verbose.js:1735 +#: js/block.js:1580 +#: js/block.js:1699 +#: js/palette.js:605 +#: js/blocks/IntervalsBlocks.js:63 +#: js/blocks/WidgetBlocks.js:259 +msgid "temperament" +msgstr "" + +#: js/block-verbose.js:1630 +#: js/block.js:1594 +msgid "matrix" +msgstr "" + +#: js/block-verbose.js:1637 +#: js/block.js:1601 +#: js/blocks/WidgetBlocks.js:1509 +#: plugins/rodi.rtp:324 +msgid "status" +msgstr "" + +#: js/block-verbose.js:1644 +#: js/block.js:1608 +msgid "drum mapper" +msgstr "" + +#: js/block-verbose.js:1651 +#: js/block.js:1615 +msgid "ruler" +msgstr "" + +#: js/block-verbose.js:1658 +#: js/block.js:1622 +#: js/blocks/WidgetBlocks.js:397 +#.TRANS: timbre is the character or quality of a musical sound +msgid "timbre" +msgstr "" + +#: js/block-verbose.js:1665 +#: js/block.js:1629 +msgid "stair" +msgstr "" + +#: js/block-verbose.js:1672 +#: js/block.js:1636 +#: js/blocks/WidgetBlocks.js:707 +#.TRANS: the speed at music is should be played. +msgid "tempo" msgstr "" -#: js/toolbar.js:62 -#: js/toolbar.js:122 -#: js/toolbar.js:187 -#: js/toolbar.js:242 -#: js/turtledefs.js:682 -msgid "Run step by step" +#: js/block-verbose.js:1679 +#: js/block-verbose.js:1742 +#: js/block.js:1643 +#: js/block.js:1706 +#: js/blocks/IntervalsBlocks.js:1464 +#.TRANS: mode, e.g., Major in C Major +msgid "mode" msgstr "" -#: js/toolbar.js:63 -#: js/toolbar.js:123 -#: js/toolbar.js:188 -#: js/toolbar.js:243 -#: js/turtledefs.js:689 -msgid "Display statistics" +#: js/block-verbose.js:1686 +#: js/block.js:1650 +msgid "slider" msgstr "" -#: js/toolbar.js:64 -#: js/toolbar.js:124 -#: js/toolbar.js:189 -#: js/toolbar.js:244 -msgid "Load plugin" +#: js/block-verbose.js:1693 +#: js/block.js:1657 +#: js/blocks/SensorsBlocks.js:1001 +msgid "keyboard" +msgstr "näppäimistö" + +#: js/block-verbose.js:1707 +#: js/block.js:1671 +#: js/blocks/WidgetBlocks.js:1190 +#: js/blocks/WidgetBlocks.js:1228 +#.TRANS: widget for subdividing a measure into distinct rhythmic elements +msgid "rhythm maker" msgstr "" -#: js/toolbar.js:65 -#: js/toolbar.js:125 -#: js/toolbar.js:190 -#: js/toolbar.js:245 -#: js/turtledefs.js:696 -msgid "Delete plugin" +#: js/block-verbose.js:1714 +#: js/block-verbose.js:2457 +#: js/block-verbose.js:2514 +#: js/block.js:1678 +#: js/block.js:2385 +#: js/block.js:2442 +#: js/blocks/MeterBlocks.js:1367 +#: js/blocks/OrnamentBlocks.js:220 +#: js/blocks/OrnamentBlocks.js:312 +#: js/blocks/RhythmBlocks.js:33 +#: js/blocks/RhythmBlocks.js:356 +#: js/blocks/RhythmBlocks.js:766 +#: js/blocks/RhythmBlocks.js:806 +#: js/blocks/RhythmBlockPaletteBlocks.js:70 +#: js/blocks/RhythmBlockPaletteBlocks.js:252 +#: js/blocks/RhythmBlockPaletteBlocks.js:485 +#: js/blocks/RhythmBlockPaletteBlocks.js:554 +#: js/blocks/RhythmBlockPaletteBlocks.js:605 +#: js/blocks/RhythmBlockPaletteBlocks.js:875 +#: js/turtleactions/DictActions.js:85 +#: js/widgets/phrasemaker.js:942 +#: js/widgets/phrasemaker.js:2656 +#: js/widgets/phrasemaker.js:2699 +#: js/widgets/phrasemaker.js:2810 +#.TRANS: the value (e.g., 1/4 note) of the note being played. +msgid "note value" msgstr "" -#: js/toolbar.js:66 -#: js/toolbar.js:126 -#: js/toolbar.js:191 -#: js/toolbar.js:246 -msgid "Enable horizontal scrolling" +#: js/block-verbose.js:1721 +#: js/block-verbose.js:2382 +#: js/block-verbose.js:2405 +#: js/block.js:1685 +#: js/block.js:2310 +#: js/block.js:2333 +#: js/blocks/IntervalsBlocks.js:1071 +#: js/blocks/OrnamentBlocks.js:312 +#.TRANS: calculate a relative step between notes based on semi-tones +msgid "scalar interval" msgstr "" -#: js/toolbar.js:67 -#: js/toolbar.js:127 -#: js/toolbar.js:192 -#: js/toolbar.js:247 -msgid "Disable horizontal scrolling" +#: js/block-verbose.js:1728 +#: js/block.js:1692 +#: js/blocks/RhythmBlocks.js:148 +msgid "milliseconds" msgstr "" -#: js/toolbar.js:68 -#: js/toolbar.js:128 -#: js/toolbar.js:193 -#: js/toolbar.js:248 -#: js/LocalCard.js:54 -#: js/StringHelper.js:71 -msgid "Merge with current project" +#: js/block-verbose.js:2455 +#: js/block-verbose.js:2459 +#: js/block-verbose.js:2512 +#: js/block-verbose.js:2628 +#: js/block.js:2383 +#: js/block.js:2387 +#: js/block.js:2440 +#: js/block.js:2556 +#: js/blocks/RhythmBlocks.js:712 +#: js/blocks/ProgramBlocks.js:1273 +#: js/widgets/rhythmruler.js:1183 +#: js/widgets/rhythmruler.js:1329 +msgid "silence" msgstr "" -#: js/toolbar.js:69 -#: js/toolbar.js:129 -msgid "Set Pitch Preview" +#: js/block-verbose.js:2548 +#: js/block-verbose.js:3492 +#: js/block-verbose.js:3509 +#: js/activity.js:2718 +#: js/activity.js:2769 +#: js/block.js:2476 +#: js/block.js:3416 +#: js/block.js:3433 +#: js/utils/musicutils.js:3780 +#: js/utils/musicutils.js:5273 +#.TRANS: the note names must be separated by single spaces +#.TRANS: the note names must be separated by single spaces +#.TRANS: the note names must be separated by single spaces +msgid "ti la sol fa mi re do" msgstr "" -#: js/toolbar.js:70 -#: js/toolbar.js:130 -#: js/toolbar.js:194 -#: js/toolbar.js:249 -msgid "Toggle JavaScript Editor" +#: js/block-verbose.js:2616 +#: js/block.js:2544 +#.TRANS: scalar step +#.TRANS: scalar step +msgid "down" msgstr "" -#: js/toolbar.js:71 -#: js/toolbar.js:131 -#: js/toolbar.js:195 -#: js/toolbar.js:250 -#: js/turtledefs.js:724 -msgid "Restore" +#: js/block-verbose.js:2617 +#: js/block.js:2545 +msgid "up" msgstr "" -#: js/toolbar.js:72 -#: js/toolbar.js:132 -#: js/toolbar.js:196 -#: js/toolbar.js:251 -msgid "Switch to beginner mode" +#: js/block-verbose.js:3026 +#: js/block.js:2950 +msgid "Silence block cannot be removed." msgstr "" -#: js/toolbar.js:73 -#: js/toolbar.js:133 -#: js/toolbar.js:197 -#: js/toolbar.js:252 -msgid "Switch to advanced mode" +#: js/block-verbose.js:3824 +#: js/block.js:3748 +#: js/blocks.js:2607 +#: js/blocks.js:3218 +#: js/palette.js:618 +#: js/blocks/BooleanBlocks.js:77 +#: js/blocks/BooleanBlocks.js:167 +#: js/blocks/BooleanBlocks.js:251 +#: js/blocks/BooleanBlocks.js:335 +#: js/blocks/BooleanBlocks.js:433 +#: js/blocks/BooleanBlocks.js:539 +#: js/blocks/BooleanBlocks.js:640 +#: js/blocks/BooleanBlocks.js:741 +#: js/blocks/BooleanBlocks.js:847 +#: js/blocks/BooleanBlocks.js:948 +#: js/blocks/BooleanBlocks.js:1033 +#: js/blocks/SensorsBlocks.js:910 +msgid "true" msgstr "" -#: js/toolbar.js:74 -#: js/toolbar.js:134 -#: js/toolbar.js:143 -#: js/toolbar.js:198 -#: js/toolbar.js:253 -#: js/turtledefs.js:738 -msgid "Select language" +#: js/block-verbose.js:3824 +#: js/block.js:3748 +#: js/blocks.js:2609 +#: js/blocks.js:3220 +#: js/blocks/BooleanBlocks.js:79 +#: js/blocks/BooleanBlocks.js:169 +#: js/blocks/BooleanBlocks.js:253 +#: js/blocks/BooleanBlocks.js:337 +#: js/blocks/BooleanBlocks.js:435 +#: js/blocks/BooleanBlocks.js:541 +#: js/blocks/BooleanBlocks.js:642 +#: js/blocks/BooleanBlocks.js:743 +#: js/blocks/BooleanBlocks.js:849 +#: js/blocks/BooleanBlocks.js:950 +#: js/blocks/SensorsBlocks.js:912 +msgid "false" msgstr "" -#: js/toolbar.js:76 -#: js/toolbar.js:79 -#: js/toolbar.js:137 -#: js/turtledefs.js:579 -msgid "Save mouse artwork as PNG" +#: js/block-verbose.js:3835 +#: js/block-verbose.js:3848 +#: js/block.js:3759 +#: js/block.js:3772 +#: js/blocks/ExtrasBlocks.js:615 +msgid "Cartesian" msgstr "" -#: js/toolbar.js:78 -#: js/toolbar.js:136 -#: js/turtledefs.js:575 -msgid "Save mouse artwork as SVG" +#: js/block-verbose.js:3836 +#: js/block-verbose.js:3849 +#: js/block.js:3760 +#: js/block.js:3773 +#: js/blocks/ExtrasBlocks.js:619 +msgid "polar" msgstr "" -#: js/toolbar.js:80 -#: js/toolbar.js:138 -#: js/turtledefs.js:583 -msgid "Save music as WAV" +#: js/block-verbose.js:3837 +#: js/block-verbose.js:3850 +#: js/block.js:3761 +#: js/block.js:3774 +#: js/blocks/ExtrasBlocks.js:623 +msgid "Cartesian+polar" msgstr "" -#: js/toolbar.js:81 -#: js/toolbar.js:139 -#: js/turtledefs.js:587 -msgid "Save sheet music as ABC" +#: js/block-verbose.js:3838 +#: js/block-verbose.js:3857 +#: js/block.js:3762 +#: js/block.js:3781 +#: js/blocks/ExtrasBlocks.js:652 +msgid "none" msgstr "" -#: js/toolbar.js:82 -#: js/toolbar.js:140 -#: js/turtledefs.js:591 -msgid "Save sheet music as Lilypond" +#: js/block-verbose.js:3851 +#: js/block.js:3775 +#: js/blocks/ExtrasBlocks.js:628 +msgid "treble" msgstr "" -#: js/toolbar.js:83 -msgid "Save sheet music as MusicXML" +#: js/block-verbose.js:3852 +#: js/block.js:3776 +#: js/blocks/ExtrasBlocks.js:632 +msgid "grand staff" msgstr "" -#: js/toolbar.js:84 -#: js/toolbar.js:141 -#: js/toolbar.js:149 -#: js/toolbar.js:204 -#: js/toolbar.js:259 -#: js/turtledefs.js:562 -#: js/turtledefs.js:595 -msgid "Save block artwork as SVG" +#: js/block-verbose.js:3853 +#: js/block.js:3777 +#: js/blocks/ExtrasBlocks.js:636 +msgid "mezzo-soprano" msgstr "" -#: js/toolbar.js:85 -#: js/toolbar.js:142 -#: js/toolbar.js:150 -#: js/toolbar.js:205 -#: js/toolbar.js:260 -msgid "Confirm" +#: js/block-verbose.js:3854 +#: js/block.js:3778 +#: js/blocks/ExtrasBlocks.js:640 +msgid "alto" msgstr "" -#: js/toolbar.js:86 -#: js/toolbar.js:151 -#: js/toolbar.js:206 -#: js/toolbar.js:261 -msgid "English (United States)" +#: js/block-verbose.js:3855 +#: js/block.js:3779 +#: js/blocks/ExtrasBlocks.js:644 +msgid "tenor" msgstr "" -#: js/toolbar.js:87 -#: js/toolbar.js:152 -#: js/toolbar.js:207 -#: js/toolbar.js:262 -msgid "English (United Kingdom)" +#: js/block-verbose.js:3856 +#: js/block.js:3780 +#: js/utils/musicutils.js:1115 +#: js/utils/synthutils.js:80 +#: js/blocks/ExtrasBlocks.js:648 +#.TRANS: musical instrument +msgid "bass" msgstr "" -#: js/toolbar.js:88 -#: js/toolbar.js:153 -#: js/toolbar.js:208 -#: js/toolbar.js:263 -msgid "日本語" +#: js/block-verbose.js:3901 +#: js/block.js:3825 +#: js/blocks.js:2600 +#: js/blocks.js:3211 +msgid "on2" msgstr "" -#: js/toolbar.js:89 -msgid "한국어" +#: js/block-verbose.js:3903 +#: js/block.js:3827 +#: js/blocks.js:2602 +#: js/blocks.js:3213 +msgid "off" msgstr "" -#: js/toolbar.js:90 -#: js/toolbar.js:155 -#: js/toolbar.js:210 -#: js/toolbar.js:265 -msgid "español" +#: js/block-verbose.js:4470 +#: js/block.js:4394 +msgid "Not a number" msgstr "" -#: js/toolbar.js:91 -#: js/toolbar.js:156 -#: js/toolbar.js:211 -#: js/toolbar.js:266 -msgid "português" +#: js/block-verbose.js:4477 +#: js/block.js:4401 +msgid "Octave value must be between 1 and 10." msgstr "" -#: js/toolbar.js:92 -#: js/toolbar.js:157 -#: js/toolbar.js:212 -#: js/toolbar.js:267 -msgid "にほんご" +#: js/block-verbose.js:4485 +#: js/block.js:4409 +msgid "Numbers can have at most 10 digits." msgstr "" -#: js/toolbar.js:93 -#: js/toolbar.js:158 -#: js/toolbar.js:213 -#: js/toolbar.js:268 -msgid "中文" +#: js/activity.js:390 +#: js/activity.js:395 +msgid "Search for blocks" msgstr "" -#: js/toolbar.js:94 -#: js/toolbar.js:159 -#: js/toolbar.js:214 -#: js/toolbar.js:269 -msgid "ภาษาไทย" +#: js/activity.js:1413 +msgid "Refresh your browser to change to advanced mode." msgstr "" -#: js/toolbar.js:95 -#: js/toolbar.js:160 -#: js/toolbar.js:215 -#: js/toolbar.js:270 -msgid "aymara" +#: js/activity.js:1418 +msgid "Refresh your browser to change to beginner mode." msgstr "" -#: js/toolbar.js:96 -#: js/toolbar.js:161 -#: js/toolbar.js:216 -#: js/toolbar.js:271 -msgid "quechua" +#: js/activity.js:1477 +msgid "Catching mice" msgstr "" -#: js/toolbar.js:97 -#: js/toolbar.js:162 -#: js/toolbar.js:217 -#: js/toolbar.js:272 -msgid "guarani" +#: js/activity.js:1478 +msgid "Cleaning the instruments" msgstr "" -#: js/toolbar.js:98 -#: js/toolbar.js:163 -#: js/toolbar.js:218 -#: js/toolbar.js:273 -msgid "हिंदी" +#: js/activity.js:1479 +msgid "Testing key pieces" msgstr "" -#: js/toolbar.js:99 -#: js/toolbar.js:165 -#: js/toolbar.js:219 -#: js/toolbar.js:275 -msgid "igbo" +#: js/activity.js:1480 +msgid "Sight-reading" msgstr "" -#: js/toolbar.js:100 -#: js/toolbar.js:166 -#: js/toolbar.js:220 -#: js/toolbar.js:276 -msgid "عربى" +#: js/activity.js:1481 +msgid "Combining math and music" msgstr "" -#: js/toolbar.js:101 -#: js/toolbar.js:164 -#: js/toolbar.js:221 -#: js/toolbar.js:274 -msgid "తెలుగు" +#: js/activity.js:1482 +msgid "Generating more blocks" msgstr "" -#: js/toolbar.js:102 -#: js/toolbar.js:167 -#: js/toolbar.js:222 -#: js/toolbar.js:277 -msgid "עִברִית" +#: js/activity.js:1483 +msgid "Do Re Mi Fa Sol La Ti Do" msgstr "" -#: js/toolbar.js:111 -#: js/toolbar.js:175 -#: js/toolbar.js:176 -#: js/toolbar.js:231 -msgid "Full Screen" +#: js/activity.js:1484 +msgid "Tuning string instruments" msgstr "" -#: js/toolbar.js:145 -#: js/toolbar.js:148 -#: js/toolbar.js:200 -#: js/toolbar.js:203 -#: js/toolbar.js:255 -#: js/toolbar.js:258 -#: js/turtledefs.js:558 -msgid "Save turtle artwork as PNG" +#: js/activity.js:1485 +msgid "Pressing random keys" msgstr "" -#: js/toolbar.js:147 -#: js/toolbar.js:202 -#: js/toolbar.js:257 -#: js/turtledefs.js:554 -msgid "Save turtle artwork as SVG" +#: js/activity.js:1663 +msgid "plugins will be removed upon restart." msgstr "" -#: js/toolbar.js:154 -#: js/toolbar.js:209 -#: js/toolbar.js:264 -msgid "한국인" +#: js/activity.js:1672 +msgid "show Cartesian" msgstr "" -#: js/toolbar.js:171 -#: js/toolbar.js:227 -msgid "About Turtle Blocks" +#: js/activity.js:2211 +#: js/palette.js:589 +#: js/blocks/RhythmBlocks.js:923 +#: js/blocks/PitchBlocks.js:442 +#: js/blocks/PitchBlocks.js:1786 +#.TRANS: a numeric mapping of the notes in an octave based on the musical mode +msgid "scale degree" msgstr "" -#: js/toolbar.js:429 -#: js/toolbar.js:440 -msgid "Turtle Wrap Off" +#: js/activity.js:2214 +#: js/palette.js:598 +msgid "voice name" msgstr "" -#: js/toolbar.js:442 -msgid "Turtle Wrap On" +#: js/activity.js:2217 +#: js/palette.js:595 +msgid "invert mode" msgstr "" -#: js/block.js:1470 -msgid "matrix" +#: js/activity.js:2220 +msgid "output tools" msgstr "" -#: js/block.js:1477 -#: js/WidgetBlocks.js:1226 -#: plugins/rodi.rtp:324 -msgid "status" +#: js/activity.js:2223 +msgid "custom note" msgstr "" -#: js/block.js:1484 -msgid "drum mapper" +#: js/activity.js:2226 +msgid "accidental name" msgstr "" -#: js/block.js:1491 -msgid "ruler" +#: js/activity.js:2229 +#: js/blocks/PitchBlocks.js:855 +msgid "east indian solfege" msgstr "" -#: js/block.js:1498 -#: js/WidgetBlocks.js:327 -#.TRANS: timbre is the character or quality of a musical sound -msgid "timbre" +#: js/activity.js:2232 +#: js/blocks/PitchBlocks.js:869 +msgid "note name" msgstr "" -#: js/block.js:1505 -msgid "stair" +#: js/activity.js:2235 +#: js/blocks/IntervalsBlocks.js:94 +msgid "temperament name" msgstr "" -#: js/block.js:1512 -#: js/WidgetBlocks.js:577 -#.TRANS: the speed at music is should be played. -msgid "tempo" +#: js/activity.js:2238 +#: js/palette.js:592 +msgid "mode name" msgstr "" -#: js/block.js:1519 -#: js/block.js:1582 -#: js/IntervalsBlocks.js:1268 -#.TRANS: mode, e.g., Major in C Major -msgid "mode" +#: js/activity.js:2241 +msgid "chord name" msgstr "" -#: js/block.js:1526 -msgid "slider" +#: js/activity.js:2244 +#: js/palette.js:615 +msgid "interval name" msgstr "" -#: js/block.js:1533 -#: js/SensorsBlocks.js:1001 -msgid "keyboard" -msgstr "näppäimistö" - -#: js/block.js:1547 -#: js/WidgetBlocks.js:957 -#: js/WidgetBlocks.js:988 -#.TRANS: widget for subdividing a measure into distinct rhythmic elements -msgid "rhythm maker" +#: js/activity.js:2247 +msgid "filter type" msgstr "" -#: js/block.js:1554 -#: js/block.js:2182 -#: js/block.js:2236 -#: js/RhythmBlockPaletteBlocks.js:70 -#: js/RhythmBlockPaletteBlocks.js:251 -#: js/RhythmBlockPaletteBlocks.js:484 -#: js/RhythmBlockPaletteBlocks.js:553 -#: js/RhythmBlockPaletteBlocks.js:604 -#: js/RhythmBlockPaletteBlocks.js:874 -#: js/RhythmBlocks.js:33 -#: js/RhythmBlocks.js:356 -#: js/RhythmBlocks.js:766 -#: js/RhythmBlocks.js:806 -#: js/OrnamentBlocks.js:220 -#: js/OrnamentBlocks.js:312 -#: js/MeterBlocks.js:1367 -#: js/DictActions.js:85 -#: js/phrasemaker.js:731 -#: js/phrasemaker.js:2393 -#: js/phrasemaker.js:2436 -#: js/phrasemaker.js:2534 -#.TRANS: the value (e.g., 1/4 note) of the note being played. -msgid "note value" +#: js/activity.js:2250 +msgid "oscillator type" msgstr "" -#: js/block.js:1561 -#: js/block.js:2110 -#: js/block.js:2133 -#: js/IntervalsBlocks.js:875 -#: js/OrnamentBlocks.js:312 -#.TRANS: calculate a relative step between notes based on semi-tones -msgid "scalar interval" +#: js/activity.js:2253 +#: js/blocks.js:2479 +#: js/blocks.js:2487 +msgid "audio file" msgstr "" -#: js/block.js:1568 -#: js/RhythmBlocks.js:148 -msgid "milliseconds" +#: js/activity.js:2256 +#: js/blocks/DrumBlocks.js:32 +msgid "noise name" msgstr "" -#: js/block.js:2180 -#: js/block.js:2184 -#: js/block.js:2234 -#: js/block.js:2345 -#: js/ProgramBlocks.js:1273 -#: js/RhythmBlocks.js:712 -#: js/rhythmruler.js:834 -#: js/rhythmruler.js:961 -msgid "silence" +#: js/activity.js:2259 +#: js/blocks/DrumBlocks.js:75 +msgid "drum name" msgstr "" -#: js/block.js:2265 -#: js/block.js:3134 -#: js/block.js:3151 -#: js/activity.js:2336 -#: js/activity.js:2387 -#: js/musicutils.js:2932 -#: js/musicutils.js:4287 -#.TRANS: the note names must be separated by single spaces -#.TRANS: the note names must be separated by single spaces -msgid "ti la sol fa mi re do" +#: js/activity.js:2262 +#: js/blocks/DrumBlocks.js:119 +msgid "effects name" msgstr "" -#: js/block.js:2333 -#.TRANS: scalar step -msgid "down" +#: js/activity.js:2265 +msgid "wrap mode" msgstr "" -#: js/block.js:2334 -msgid "up" +#: js/activity.js:2268 +msgid "load file" msgstr "" -#: js/block.js:3477 -#: js/block.js:3490 -#: js/ExtrasBlocks.js:612 -msgid "Cartesian" +#: js/activity.js:2435 +#: js/activity.js:5851 +msgid "This block is deprecated." msgstr "" -#: js/block.js:3478 -#: js/block.js:3491 -#: js/ExtrasBlocks.js:616 -msgid "polar" +#: js/activity.js:2437 +#: js/activity.js:5853 +msgid "Block cannot be found." msgstr "" -#: js/block.js:3479 -#: js/block.js:3492 -#: js/ExtrasBlocks.js:620 -msgid "Cartesian+polar" +#: js/activity.js:2645 +msgid "Saving block artwork" msgstr "" -#: js/block.js:3480 -#: js/block.js:3499 -#: js/ExtrasBlocks.js:649 -msgid "none" +#: js/activity.js:2656 +msgid "Erase" msgstr "" -#: js/block.js:3493 -#: js/ExtrasBlocks.js:625 -msgid "treble" +#: js/activity.js:2683 +#: js/activity.js:2705 +msgid "Paste" msgstr "" -#: js/block.js:3494 -#: js/ExtrasBlocks.js:629 -msgid "grand staff" +#: js/activity.js:2687 +msgid "Save block help" msgstr "" -#: js/block.js:3495 -#: js/ExtrasBlocks.js:633 -msgid "mezzo-soprano" +#: js/activity.js:2772 +msgid "Jumping to the bottom of the page." msgstr "" -#: js/block.js:3496 -#: js/ExtrasBlocks.js:637 -msgid "alto" +#: js/activity.js:2778 +msgid "Scrolling up." msgstr "" -#: js/block.js:3497 -#: js/ExtrasBlocks.js:641 -msgid "tenor" +#: js/activity.js:2783 +msgid "Scrolling down." msgstr "" -#: js/block.js:3498 -#: js/ExtrasBlocks.js:645 -#: js/musicutils.js:736 -#: js/synthutils.js:64 -#.TRANS: musical instrument -msgid "bass" +#: js/activity.js:2788 +msgid "Extracting block" msgstr "" -#: js/block.js:4075 -msgid "Not a number" +#: js/activity.js:2796 +msgid "Moving block up." msgstr "" -#: js/block.js:4082 -msgid "Octave value must be between 1 and 10." +#: js/activity.js:2817 +msgid "Moving block down." msgstr "" -#: js/block.js:4090 -msgid "Numbers can have at most 10 digits." +#: js/activity.js:2838 +msgid "Moving block left." msgstr "" -#: js/notation.js:353 -msgid "Lilypond cannot process pickup of " +#: js/activity.js:2855 +msgid "Moving block right." msgstr "" -#: js/turtledefs.js:40 -#.TRANS: put the URL to the guide here, e.g., https://github.com/sugarlabs/turtleblocksjs/tree/master/guide/README.md -msgid "guide url" +#: js/activity.js:2870 +msgid "Jump to home position." msgstr "" -#: js/turtledefs.js:85 -#: js/turtledefs.js:437 -msgid "Turtle Blocks is a Logo-inspired turtle that draws colorful pictures with snap-together visual-programming blocks." +#: js/activity.js:2897 +msgid "Hide blocks" msgstr "" -#: js/turtledefs.js:118 -#: js/turtledefs.js:220 -msgid "search" +#: js/activity.js:4500 +msgid "Click the run button to run the project." msgstr "" -#: js/turtledefs.js:120 -#: js/turtledefs.js:222 -#: js/WidgetBlocks.js:437 -#: js/MeterBlocks.js:1343 -#.TRANS: musical meter (time signature), e.g., 4:4 -msgid "meter" +#: js/activity.js:5692 +msgid "Show/hide block" msgstr "" -#: js/turtledefs.js:122 -#: js/turtledefs.js:224 -msgid "intervals" +#: js/activity.js:5698 +msgid "Expand/collapse blocks" msgstr "" -#: js/turtledefs.js:124 -#: js/turtledefs.js:226 -msgid "ornament" +#: js/activity.js:5976 +msgid "Could not parse JSON input." msgstr "" -#: js/turtledefs.js:125 -#: js/turtledefs.js:227 -#: js/VolumeBlocks.js:362 -#: js/VolumeBlocks.js:502 -#: js/VolumeBlocks.js:545 -msgid "volume" +#: js/activity.js:6475 +#: js/activity.js:6580 +#: js/activity.js:6631 +msgid "Cannot load project from the file. Please check the file type." msgstr "" -#: js/turtledefs.js:129 -#: js/turtledefs.js:231 -msgid "boxes" +#: js/activity.js:6917 +msgid "Invalid parameters" msgstr "" -#: js/turtledefs.js:130 -#: js/turtledefs.js:232 -msgid "widgets" +#: js/blocks.js:1212 +#: js/blocks.js:3444 +#: js/blocks.js:3834 +#: js/blocks.js:3865 +#: js/blocks.js:3914 +#: js/blocks.js:3949 +#: js/blocks.js:6586 +#: js/palette.js:509 +#: js/palette.js:638 +#: js/palette.js:1105 +#: js/blocks/BoxesBlocks.js:282 +#: js/blocks/BoxesBlocks.js:285 +#: js/blocks/BoxesBlocks.js:405 +#: js/blocks/BoxesBlocks.js:594 +msgid "box" +msgstr "laatikko" + +#: js/blocks.js:1713 +msgid "Consider breaking this stack into parts." msgstr "" -#: js/turtledefs.js:131 -#: js/turtledefs.js:233 -#: js/phrasemaker.js:824 -msgid "graphics" +#: js/blocks.js:2472 +#: js/palette.js:653 +#: js/blocks/MediaBlocks.js:602 +msgid "open file" msgstr "" -#: js/turtledefs.js:134 -#: js/turtledefs.js:236 -msgid "boolean" +#: js/blocks.js:3247 +#: js/palette.js:574 +#: js/blocks/MediaBlocks.js:892 +#: js/blocks/MediaBlocks.js:963 +msgid "text" msgstr "" -#: js/turtledefs.js:137 -#: js/turtledefs.js:239 -#: js/HeapBlocks.js:59 -#: js/status.js:147 -msgid "heap" +#: js/blocks.js:3443 +#: js/palette.js:641 +#: js/palette.js:642 +#: js/blocks/BoxesBlocks.js:514 +msgid "store in box" msgstr "" -#: js/turtledefs.js:138 -#: js/turtledefs.js:240 -#: js/ProgramBlocks.js:495 -#: js/DictBlocks.js:142 -msgid "dictionary" +#: js/blocks.js:3448 +#: js/blocks.js:3888 +#: js/blocks.js:3923 +#: js/blocks.js:3958 +#: js/blocks.js:5862 +#: js/blocks.js:5883 +#: js/blocks/BoxesBlocks.js:772 +msgid "box1" msgstr "" -#: js/turtledefs.js:139 -#: js/turtledefs.js:241 -msgid "ensemble" +#: js/blocks.js:3450 +#: js/blocks.js:3890 +#: js/blocks.js:3925 +#: js/blocks.js:3960 +#: js/blocks.js:5864 +#: js/blocks.js:5885 +#: js/blocks/BoxesBlocks.js:663 +msgid "box2" msgstr "" -#: js/turtledefs.js:140 -#: js/turtledefs.js:242 -msgid "extras" +#: js/blocks.js:4122 +#: js/palette.js:639 +#: js/palette.js:644 +#: js/palette.js:1041 +#: js/blocks/BoxesBlocks.js:591 +msgid "store in" msgstr "" -#: js/turtledefs.js:142 -#: js/turtledefs.js:244 -#.TRANS: program as in computer program -#.TRANS: program as in computer program -msgid "program" +#: js/blocks.js:4122 +#: js/blocks/BoxesBlocks.js:595 +#: js/blocks/DictBlocks.js:215 +#: js/blocks/DictBlocks.js:289 +#: js/blocks/EnsembleBlocks.js:391 +#: js/blocks/EnsembleBlocks.js:402 +#: js/blocks/MediaBlocks.js:746 +#: js/blocks/PitchBlocks.js:656 +#: js/blocks/PitchBlocks.js:934 +#: js/blocks/PitchBlocks.js:1866 +#: js/blocks/ProgramBlocks.js:390 +#: js/blocks/ProgramBlocks.js:495 +#: js/blocks/ProgramBlocks.js:658 +#: js/blocks/ToneBlocks.js:1025 +msgid "name" msgstr "" -#: js/turtledefs.js:143 -#: js/turtledefs.js:245 -msgid "my blocks" +#: js/blocks.js:4122 +#: js/blocks/BoxesBlocks.js:75 +#: js/blocks/BoxesBlocks.js:595 +#: js/blocks/DictBlocks.js:289 +#: js/blocks/DictBlocks.js:430 +#: js/blocks/HeapBlocks.js:544 +#: js/blocks/RhythmBlocks.js:1130 +msgid "value" msgstr "" -#: js/turtledefs.js:185 -#: js/turtledefs.js:281 -msgid "artwork" +#: js/blocks.js:4465 +msgid "Forever loop detected inside a note value block. Unexpected things may happen." msgstr "" -#: js/turtledefs.js:185 -#: js/turtledefs.js:281 -msgid "logic" +#: js/blocks.js:4988 +msgid "There is no block selected." msgstr "" -#: js/turtledefs.js:185 -#: js/turtledefs.js:281 -msgid "music" +#: js/blocks.js:5091 +#: js/blocks/MediaBlocks.js:888 +msgid "show" msgstr "" -#: js/turtledefs.js:187 -#: js/turtledefs.js:463 -msgid "Music Blocks is a collection of tools for exploring fundamental musical concepts in a fun way." +#: js/blocks.js:5094 +#: js/blocks/MediaBlocks.js:803 +#.TRANS: Avatar is the image used to determine the appearance of the mouse. +msgid "avatar" msgstr "" -#: js/turtledefs.js:436 -msgid "Welcome to Turtle Blocks" +#: js/blocks.js:5097 +#: js/blocks/ToneBlocks.js:1010 +#: js/widgets/sampler.js:975 +#.TRANS: The sound sample that the user uploads. +msgid "sample" msgstr "" -#: js/turtledefs.js:438 -#: js/turtledefs.js:465 -#: js/turtledefs.js:774 -#: js/turtledefs.js:805 -msgid "The current version is" +#: js/lilypond.js:606 +msgid "brown rat" msgstr "" -#: js/turtledefs.js:446 -#: js/turtledefs.js:483 -msgid "Click the run button to run the project in fast mode." +#: js/lilypond.js:607 +msgid "mole" msgstr "" -#: js/turtledefs.js:452 -msgid "Stop the turtle." +#: js/lilypond.js:608 +msgid "chipmunk" msgstr "" -#: js/turtledefs.js:454 -#: js/turtledefs.js:491 -msgid "You can also type Alt-S to stop." +#: js/lilypond.js:609 +msgid "red squirrel" msgstr "" -#: js/turtledefs.js:462 -#: js/help.js:333 -msgid "Welcome to Music Blocks" +#: js/lilypond.js:610 +msgid "guinea pig" msgstr "" -#: js/turtledefs.js:472 -#: js/help.js:334 -msgid "Meet Mr. Mouse!" +#: js/lilypond.js:611 +msgid "capybara" msgstr "" -#: js/turtledefs.js:473 -msgid "Mr Mouse is our Music Blocks conductor." +#: js/lilypond.js:612 +msgid "coypu" msgstr "" -#: js/turtledefs.js:475 -msgid "Mr Mouse encourages you to explore Music Blocks." +#: js/lilypond.js:613 +msgid "black rat" msgstr "" -#: js/turtledefs.js:477 -msgid "Let us start our tour!" +#: js/lilypond.js:614 +msgid "grey squirrel" msgstr "" -#: js/turtledefs.js:489 -msgid "Stop the music (and the mice)." +#: js/lilypond.js:615 +msgid "flying squirrel" msgstr "" -#: js/turtledefs.js:499 -msgid "Record your project as video." +#: js/lilypond.js:616 +msgid "bat" msgstr "" -#: js/turtledefs.js:505 -msgid "Toggle Fullscreen mode." +#: js/lilypond.js:749 +#: js/lilypond.js:913 +#: js/lilypond.js:951 +#: js/blocks/ActionBlocks.js:1256 +#: js/blocks/ExtrasBlocks.js:556 +msgid "start drum" msgstr "" -#: js/turtledefs.js:511 -msgid "Initialize a new project." +#: js/logo.js:61 +msgid "Not a valid pitch name" msgstr "" -#: js/turtledefs.js:517 -msgid "You can also load projects from the file system." +#: js/logo.js:507 +#: js/blocks/ProgramBlocks.js:258 +#: js/blocks/ProgramBlocks.js:427 +msgid "You must select a file." msgstr "" -#: js/turtledefs.js:522 -#: js/StringHelper.js:46 -msgid "Delete" +#: js/logo.js:1696 +msgid "Playback is ready." msgstr "" -#: js/turtledefs.js:523 -msgid "To delete a block, just right-click on it, then you will be able to see the delete option" +#: js/macros.js:711 +#: js/utils/musicutils.js:1162 +#: js/utils/synthutils.js:202 +#.TRANS: animal sound effect +msgid "duck" msgstr "" -#: js/turtledefs.js:528 -#: js/activity.js:2270 -#: js/LocalCard.js:31 -msgid "Copy" +#: js/notation.js:353 +msgid "Lilypond cannot process pickup of " msgstr "" -#: js/turtledefs.js:529 -msgid "To copy a block, just right-click on it, then you will be able to see the copy option" +#: js/palette.js:571 +msgid "grid" msgstr "" -#: js/turtledefs.js:535 -msgid "To extract a block, just right-click on it, then you will be able to see the extract option" +#: js/palette.js:580 +msgid "effect" msgstr "" -#: js/turtledefs.js:542 -#: js/turtledefs.js:552 -#: js/turtledefs.js:573 -msgid "Save your project to a file." +#: js/palette.js:586 +msgid "sargam" msgstr "" -#: js/turtledefs.js:549 -#: js/turtledefs.js:570 -msgid "save" +#: js/palette.js:601 +#: js/blocks/PitchBlocks.js:1209 +msgid "custom pitch" msgstr "" -#: js/turtledefs.js:556 -#: js/turtledefs.js:577 -msgid "Save graphics from your project to as SVG." +#: js/palette.js:609 +msgid "accidental" msgstr "" -#: js/turtledefs.js:560 -#: js/turtledefs.js:581 -msgid "Save graphics from your project as PNG." +#: js/palette.js:633 +#: js/blocks/PitchBlocks.js:405 +msgid "pitch converter" msgstr "" -#: js/turtledefs.js:564 -#: js/turtledefs.js:597 -msgid "Save block artwork as an SVG file." +#: js/piemenus.js:200 +#: js/utils/musicutils.js:1187 +#: js/utils/musicutils.js:1207 +#: js/widgets/musickeyboard.js:2341 +#: js/widgets/phrasemaker.js:1908 +#: js/widgets/sampler.js:810 +#.TRANS: double sharp is a music term related to pitch +msgid "double sharp" msgstr "" -#: js/turtledefs.js:585 -msgid "Save audio from your project as WAV." +#: js/piemenus.js:201 +#: js/utils/musicutils.js:1185 +#: js/utils/musicutils.js:1208 +#: js/blocks/PitchBlocks.js:1539 +#: js/turtleactions/PitchActions.js:323 +#: js/widgets/musickeyboard.js:2342 +#: js/widgets/phrasemaker.js:1909 +#: js/widgets/sampler.js:811 +#.TRANS: sharp is a music term related to pitch +#.TRANS: sharp is a half-step up in pitch +msgid "sharp" msgstr "" -#: js/turtledefs.js:589 -msgid "Save your project to as an ABC file." +#: js/piemenus.js:202 +#: js/utils/musicutils.js:1183 +#: js/utils/musicutils.js:1209 +#: js/widgets/musickeyboard.js:2343 +#: js/widgets/phrasemaker.js:1910 +#: js/widgets/sampler.js:812 +#.TRANS: natural is a music term related to pitch +msgid "natural" msgstr "" -#: js/turtledefs.js:593 -msgid "Save your project to as a Lilypond file." +#: js/piemenus.js:203 +#: js/utils/musicutils.js:1181 +#: js/utils/musicutils.js:1210 +#: js/blocks/PitchBlocks.js:1498 +#: js/turtleactions/PitchActions.js:326 +#: js/widgets/musickeyboard.js:2344 +#: js/widgets/phrasemaker.js:1911 +#: js/widgets/sampler.js:813 +#.TRANS: flat is a music term related to pitch +#.TRANS: flat is a half-step down in pitch +msgid "flat" msgstr "" -#: js/turtledefs.js:604 -msgid "Load samples from server" +#: js/piemenus.js:204 +#: js/utils/musicutils.js:1179 +#: js/utils/musicutils.js:1211 +#: js/widgets/musickeyboard.js:2345 +#: js/widgets/phrasemaker.js:1912 +#: js/widgets/sampler.js:814 +#.TRANS: double flat is a music term related to pitch +msgid "double flat" msgstr "" -#: js/turtledefs.js:605 -msgid "This button opens a viewer for loading example projects." +#: js/piemenus.js:2864 +#: js/utils/musicutils.js:1006 +#: js/blocks/PitchBlocks.js:1385 +#.TRANS: unison is a music term related to intervals +#.TRANS: unison means the note is the same as the current note +msgid "unison" msgstr "" -#: js/turtledefs.js:611 -msgid "Palette buttons" +#: js/piemenus.js:3018 +#: js/piemenus.js:3091 +#: js/utils/musicutils.js:1014 +#: js/utils/musicutils.js:1189 +#: js/utils/musicutils.js:1326 +#.TRANS: major is a music term related to intervals and mode +msgid "major" msgstr "" -#: js/turtledefs.js:612 -msgid "This toolbar contains the palette buttons including Rhythm Pitch Tone Action and more." +#: js/piemenus.js:3018 +#: js/piemenus.js:3091 +#: js/utils/musicutils.js:1032 +#.TRANS: modal scale for music +msgid "ionian" msgstr "" -#: js/turtledefs.js:614 -msgid "Click to show the palettes of blocks and drag blocks from the palettes onto the canvas to use them." +#: js/piemenus.js:3020 +#: js/piemenus.js:3095 +#: js/utils/musicutils.js:1012 +#: js/utils/musicutils.js:1190 +#: js/utils/musicutils.js:1323 +#.TRANS: minor is a music term related to intervals and mode +msgid "minor" msgstr "" -#: js/turtledefs.js:620 -msgid "Cartesian/Polar" +#: js/piemenus.js:3020 +#: js/piemenus.js:3095 +#: js/utils/musicutils.js:1042 +#.TRANS: modal scale for music +msgid "aeolian" msgstr "" -#: js/turtledefs.js:621 -msgid "Show or hide a coordinate grid." +#: js/piemenus.js:3410 +msgid "Duplicate" msgstr "" -#: js/turtledefs.js:627 -msgid "Clear the screen and return the mice to their initial positions." +#: js/piemenus.js:3412 +msgid "Move to trash" msgstr "" -#: js/turtledefs.js:633 -msgid "Collapse the graphics window." +#: js/piemenus.js:3413 +#: js/widgets/timbre.js:968 +#: planet/js/StringHelper.js:69 +msgid "Close" msgstr "" -#: js/turtledefs.js:638 -#: js/activity.js:4256 -#: js/activity.js:4256 -msgid "Home" +#: js/piemenus.js:3419 +msgid "Save stack" msgstr "" -#: js/turtledefs.js:639 -msgid "Return all blocks to the center of the screen." +#: js/piemenus.js:3449 +msgid "In order to copy a sample, you must reload the widget, import the sample again, and export it." msgstr "" -#: js/turtledefs.js:644 -msgid "Show/hide blocks" +#: js/piemenus.js:3812 +msgid "You have chosen key " msgstr "" -#: js/turtledefs.js:645 -msgid "Hide or show the blocks and the palettes." +#: js/piemenus.js:3816 +msgid " for your pitch preview." msgstr "" -#: js/turtledefs.js:650 -msgid "Expand/collapse collapsable blocks" +#: js/turtle-singer.js:1363 +#.TRANS: partials are weighted components in a harmonic series +msgid "You must have at least one Partial block inside of a Weighted-partial block" msgstr "" -#: js/turtledefs.js:651 -msgid "Expand or collapse start and action stacks." +#: js/turtle-singer.js:2077 +msgid "synth cannot play chords." msgstr "" -#: js/turtledefs.js:658 -#: js/activity.js:4265 -msgid "Decrease block size" +#: js/utils/musicutils.js:505 +#: js/utils/musicutils.js:645 +#: js/widgets/pitchdrummatrix.js:228 +#: js/widgets/musickeyboard.js:2885 +msgid "rest" msgstr "" -#: js/turtledefs.js:659 -msgid "Decrease the size of the blocks." +#: js/utils/musicutils.js:689 +msgid "Perfect unison" msgstr "" -#: js/turtledefs.js:664 -#: js/activity.js:4267 -msgid "Increase block size" +#: js/utils/musicutils.js:689 +msgid "Diminished second" msgstr "" -#: js/turtledefs.js:665 -msgid "Increase the size of the blocks." +#: js/utils/musicutils.js:690 +msgid "Minor second" msgstr "" -#: js/turtledefs.js:670 -msgid "Expand/collapse option toolbar" +#: js/utils/musicutils.js:690 +msgid "Augmented unison" msgstr "" -#: js/turtledefs.js:671 -msgid "Click this button to expand or collapse the auxillary toolbar." +#: js/utils/musicutils.js:691 +msgid "Major second" msgstr "" -#: js/turtledefs.js:676 -msgid "Run slow" +#: js/utils/musicutils.js:691 +msgid "Diminished third" msgstr "" -#: js/turtledefs.js:677 -msgid "Click to run the project in slow mode." +#: js/utils/musicutils.js:692 +msgid "Minor third" msgstr "" -#: js/turtledefs.js:683 -msgid "Click to run the project step by step." +#: js/utils/musicutils.js:692 +msgid "Augmented second" msgstr "" -#: js/turtledefs.js:690 -msgid "Display statistics about your Music project." +#: js/utils/musicutils.js:693 +msgid "Major third" msgstr "" -#: js/turtledefs.js:697 -msgid "Delete a selected plugin." +#: js/utils/musicutils.js:693 +msgid "Diminished fourth" msgstr "" -#: js/turtledefs.js:704 -msgid "Enable scrolling" +#: js/utils/musicutils.js:694 +msgid "Perfect fourth" msgstr "" -#: js/turtledefs.js:705 -msgid "You can scroll the blocks on the canvas." +#: js/utils/musicutils.js:694 +msgid "Augmented third" msgstr "" -#: js/turtledefs.js:714 -msgid "Wrap Turtle" +#: js/utils/musicutils.js:695 +msgid "Diminished fifth" msgstr "" -#: js/turtledefs.js:715 -msgid "Turn Turtle wrapping On or Off." +#: js/utils/musicutils.js:695 +msgid "Augmented fourth" msgstr "" -#: js/turtledefs.js:725 -msgid "Restore blocks from the trash." +#: js/utils/musicutils.js:696 +msgid "Perfect fifth" msgstr "" -#: js/turtledefs.js:732 -msgid "Switch mode" +#: js/utils/musicutils.js:696 +msgid "Diminished sixth" msgstr "" -#: js/turtledefs.js:733 -msgid "Switch between beginner and advance modes." +#: js/utils/musicutils.js:697 +msgid "Minor sixth" msgstr "" -#: js/turtledefs.js:739 -msgid "Select your language preference." +#: js/utils/musicutils.js:697 +msgid "Augmented fifth" msgstr "" -#: js/turtledefs.js:745 -msgid "Keyboard shortcuts" +#: js/utils/musicutils.js:698 +msgid "Major sixth" msgstr "" -#: js/turtledefs.js:746 -msgid "You can type d to create a do block and r to create a re block etc." +#: js/utils/musicutils.js:698 +msgid "Diminished seventh" msgstr "" -#: js/turtledefs.js:753 -msgid "Show these messages." +#: js/utils/musicutils.js:699 +msgid "Minor seventh" msgstr "" -#: js/turtledefs.js:759 -#: js/turtledefs.js:790 -#: js/help.js:335 -msgid "Guide" +#: js/utils/musicutils.js:699 +msgid "Augmented sixth" msgstr "" -#: js/turtledefs.js:760 -msgid "A detailed guide to Turtle Blocks is available." +#: js/utils/musicutils.js:700 +msgid "Major seventh" msgstr "" -#: js/turtledefs.js:764 -msgid "Turtle Blocks Guide" +#: js/utils/musicutils.js:700 +msgid "Diminished octave" msgstr "" -#: js/turtledefs.js:767 -#: js/turtledefs.js:798 -#: js/help.js:336 -msgid "About" +#: js/utils/musicutils.js:701 +msgid "Perfect octave" msgstr "" -#: js/turtledefs.js:768 -msgid "Turtle Blocks is an open source collection of tools for exploring musical concepts." +#: js/utils/musicutils.js:701 +msgid "Augmented seventh" msgstr "" -#: js/turtledefs.js:770 -msgid "A full list of contributors can be found in the Turtle Blocks GitHub repository." +#: js/utils/musicutils.js:702 +msgid "Minor ninth" msgstr "" -#: js/turtledefs.js:772 -msgid "Turtle Blocks is licensed under the AGPL." +#: js/utils/musicutils.js:702 +msgid "Augmented octave" msgstr "" -#: js/turtledefs.js:780 -msgid "Turtle Blocks GitHub repository" +#: js/utils/musicutils.js:703 +msgid "Major ninth" msgstr "" -#: js/turtledefs.js:783 -#: js/turtledefs.js:814 -#: js/help.js:337 -#: js/help.js:359 -msgid "Congratulations." +#: js/utils/musicutils.js:703 +msgid "Diminished tenth" msgstr "" -#: js/turtledefs.js:784 -msgid "You have finished the tour. Please enjoy Turtle Blocks!" +#: js/utils/musicutils.js:704 +msgid "Minor tenth" msgstr "" -#: js/turtledefs.js:791 -msgid "A detailed guide to Music Blocks is available." +#: js/utils/musicutils.js:704 +msgid "Augmented ninth" msgstr "" -#: js/turtledefs.js:795 -#: js/SaveInterface.js:76 -msgid "Music Blocks Guide" +#: js/utils/musicutils.js:705 +msgid "Major tenth" msgstr "" -#: js/turtledefs.js:799 -msgid "Music Blocks is an open source collection of tools for exploring musical concepts." +#: js/utils/musicutils.js:705 +msgid "Diminished eleventh" msgstr "" -#: js/turtledefs.js:801 -msgid "A full list of contributors can be found in the Music Blocks GitHub repository." +#: js/utils/musicutils.js:706 +msgid "Perfect eleventh" msgstr "" -#: js/turtledefs.js:803 -msgid "Music Blocks is licensed under the AGPL." +#: js/utils/musicutils.js:706 +msgid "Augmented tenth" msgstr "" -#: js/turtledefs.js:811 -msgid "Music Blocks GitHub repository" +#: js/utils/musicutils.js:707 +msgid "Diminished twelfth" msgstr "" -#: js/turtledefs.js:815 -msgid "You have finished the tour. Please enjoy Music Blocks!" +#: js/utils/musicutils.js:707 +msgid "Augmented eleventh" msgstr "" -#: js/activity.js:369 -msgid "Search for blocks" +#: js/utils/musicutils.js:708 +msgid "Perfect twelfth" msgstr "" -#: js/activity.js:1145 -msgid "Refresh your browser to change to advanced mode." +#: js/utils/musicutils.js:708 +msgid "Diminished thirteenth" msgstr "" -#: js/activity.js:1150 -msgid "Refresh your browser to change to beginner mode." +#: js/utils/musicutils.js:709 +msgid "Minor thirteenth" msgstr "" -#: js/activity.js:1184 -msgid "Catching mice" +#: js/utils/musicutils.js:709 +msgid "Augmented fifth, plus an octave" msgstr "" -#: js/activity.js:1185 -msgid "Cleaning the instruments" +#: js/utils/musicutils.js:710 +msgid "Major thirteenth" msgstr "" -#: js/activity.js:1186 -msgid "Testing key pieces" +#: js/utils/musicutils.js:710 +msgid "Diminished seventh, plus an octave" msgstr "" -#: js/activity.js:1187 -msgid "Sight-reading" +#: js/utils/musicutils.js:838 +#.TRANS: ordinal number. Please keep exactly one space between each number. +msgid "1st 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th" msgstr "" -#: js/activity.js:1188 -msgid "Combining math and music" +#: js/utils/musicutils.js:1008 +#: js/utils/musicutils.js:1191 +#: js/utils/musicutils.js:1325 +#.TRANS: augmented is a music term related to intervals +msgid "augmented" msgstr "" -#: js/activity.js:1189 -msgid "Generating more blocks" +#: js/utils/musicutils.js:1010 +#: js/utils/musicutils.js:1192 +#: js/utils/musicutils.js:1324 +#.TRANS: diminished is a music term related to intervals and mode +msgid "diminished" msgstr "" -#: js/activity.js:1190 -msgid "Do Re Mi Fa Sol La Ti Do" +#: js/utils/musicutils.js:1016 +#: js/utils/musicutils.js:1322 +#: js/blocks/IntervalsBlocks.js:649 +#: js/turtleactions/IntervalsActions.js:120 +#: js/turtleactions/IntervalsActions.js:124 +#.TRANS: perfect is a music term related to intervals +msgid "perfect" msgstr "" -#: js/activity.js:1191 -msgid "Tuning string instruments" +#: js/utils/musicutils.js:1018 +#.TRANS: twelve semi-tone scale for music +msgid "chromatic" msgstr "" -#: js/activity.js:1192 -msgid "Pressing random keys" +#: js/utils/musicutils.js:1019 +msgid "algerian" msgstr "" -#: js/activity.js:1351 -msgid "plugins will be removed upon restart." +#: js/utils/musicutils.js:1020 +msgid "spanish" msgstr "" -#: js/activity.js:1360 -msgid "show Cartesian" +#: js/utils/musicutils.js:1022 +#.TRANS: modal scale in music +msgid "octatonic" msgstr "" -#: js/activity.js:1842 -msgid "output tools" +#: js/utils/musicutils.js:1024 +#.TRANS: harmonic major scale in music +msgid "harmonic major" msgstr "" -#: js/activity.js:1845 -msgid "custom note" +#: js/utils/musicutils.js:1026 +#.TRANS: natural minor scales in music +msgid "natural minor" msgstr "" -#: js/activity.js:1848 -msgid "accidental name" +#: js/utils/musicutils.js:1028 +#.TRANS: harmonic minor scale in music +msgid "harmonic minor" msgstr "" -#: js/activity.js:1851 -#: js/PitchBlocks.js:855 -msgid "east indian solfege" +#: js/utils/musicutils.js:1030 +#.TRANS: melodic minor scale in music +msgid "melodic minor" msgstr "" -#: js/activity.js:1854 -#: js/PitchBlocks.js:869 -msgid "note name" +#: js/utils/musicutils.js:1034 +#.TRANS: modal scale for music +msgid "dorian" msgstr "" -#: js/activity.js:1857 -#: js/IntervalsBlocks.js:94 -msgid "temperament name" +#: js/utils/musicutils.js:1036 +#.TRANS: modal scale for music +msgid "phrygian" msgstr "" -#: js/activity.js:1863 -msgid "chord name" +#: js/utils/musicutils.js:1038 +#.TRANS: modal scale for music +msgid "lydian" msgstr "" -#: js/activity.js:1869 -msgid "filter type" +#: js/utils/musicutils.js:1040 +#.TRANS: modal scale for music +msgid "mixolydian" msgstr "" -#: js/activity.js:1872 -msgid "oscillator type" +#: js/utils/musicutils.js:1044 +#.TRANS: modal scale for music +msgid "locrian" msgstr "" -#: js/activity.js:1878 -#: js/DrumBlocks.js:32 -msgid "noise name" +#: js/utils/musicutils.js:1046 +#.TRANS: minor jazz scale for music +msgid "jazz minor" msgstr "" -#: js/activity.js:1881 -#: js/DrumBlocks.js:75 -msgid "drum name" +#: js/utils/musicutils.js:1048 +#.TRANS: bebop scale for music +msgid "bebop" msgstr "" -#: js/activity.js:1884 -#: js/DrumBlocks.js:119 -msgid "effects name" +#: js/utils/musicutils.js:1049 +msgid "arabic" msgstr "" -#: js/activity.js:1887 -msgid "wrap mode" +#: js/utils/musicutils.js:1050 +msgid "byzantine" msgstr "" -#: js/activity.js:1890 -msgid "load file" +#: js/utils/musicutils.js:1052 +#.TRANS: musical scale for music by Verdi +msgid "enigmatic" msgstr "" -#: js/activity.js:2056 -msgid "This block is deprecated." +#: js/utils/musicutils.js:1053 +msgid "ethiopian" msgstr "" -#: js/activity.js:2058 -msgid "Block cannot be found." +#: js/utils/musicutils.js:1055 +#.TRANS: Ethiopic scale for music +msgid "geez" msgstr "" -#: js/activity.js:2266 -msgid "Saving block artwork" +#: js/utils/musicutils.js:1056 +msgid "hindu" msgstr "" -#: js/activity.js:2277 -msgid "Erase" +#: js/utils/musicutils.js:1057 +msgid "hungarian" msgstr "" -#: js/activity.js:2301 -#: js/activity.js:2323 -msgid "Paste" +#: js/utils/musicutils.js:1059 +#.TRANS: minor Romanian scale for music +msgid "romanian minor" msgstr "" -#: js/activity.js:2305 -msgid "Save block help" +#: js/utils/musicutils.js:1060 +msgid "spanish gypsy" msgstr "" -#: js/activity.js:2390 -msgid "Jumping to the bottom of the page." +#: js/utils/musicutils.js:1062 +#.TRANS: musical scale for Mid-Eastern music +msgid "maqam" msgstr "" -#: js/activity.js:2396 -msgid "Scrolling up." +#: js/utils/musicutils.js:1064 +#.TRANS: minor blues scale for music +msgid "minor blues" msgstr "" -#: js/activity.js:2401 -msgid "Scrolling down." +#: js/utils/musicutils.js:1066 +#.TRANS: major blues scale for music +msgid "major blues" msgstr "" -#: js/activity.js:2406 -msgid "Extracting block" +#: js/utils/musicutils.js:1067 +msgid "whole tone" msgstr "" -#: js/activity.js:2414 -msgid "Moving block up." +#: js/utils/musicutils.js:1069 +#.TRANS: pentatonic is a general term that means "five note scale". This scale is typically known as "minor pentatonic" +msgid "minor pentatonic" msgstr "" -#: js/activity.js:2435 -msgid "Moving block down." +#: js/utils/musicutils.js:1071 +#.TRANS: pentatonic is a general term that means "five note scale". This scale is typically known as "major pentatonic" +msgid "major pentatonic" msgstr "" -#: js/activity.js:2456 -msgid "Moving block left." +#: js/utils/musicutils.js:1072 +msgid "chinese" msgstr "" -#: js/activity.js:2473 -msgid "Moving block right." +#: js/utils/musicutils.js:1073 +msgid "egyptian" msgstr "" -#: js/activity.js:2488 -msgid "Jump to home position." +#: js/utils/musicutils.js:1075 +#.TRANS: https://en.wikipedia.org/wiki/Hirajoshi_scale NOTE: There are three different versions of this scale +msgid "hirajoshi" msgstr "" -#: js/activity.js:2515 -msgid "Hide blocks" +#: js/utils/musicutils.js:1076 +msgid "Japan" msgstr "" -#: js/activity.js:3389 -msgid "Click the run button to run the project." +#: js/utils/musicutils.js:1078 +#.TRANS: https://en.wikipedia.org/wiki/In_scale and https://en.wikipedia.org/wiki/Sakura_Sakura +msgid "in" msgstr "" -#: js/activity.js:3456 -#: js/SaveInterface.js:131 -#: js/SaveInterface.js:204 -#: js/SaveInterface.js:262 -#: js/SaveInterface.js:389 -#: js/SaveInterface.js:417 -#: js/ProjectStorage.js:27 -#: js/GlobalPlanet.js:467 -#: js/GlobalPlanet.js:469 -#: js/GlobalPlanet.js:495 -#.TRANS: default project title when saving as Lilypond -msgid "My Project" +#: js/utils/musicutils.js:1080 +#.TRANS: https://en.wikipedia.org/wiki/Miny%C5%8D_scale +msgid "minyo" msgstr "" -#: js/activity.js:4261 -msgid "Show/hide block" +#: js/utils/musicutils.js:1082 +#.TRANS: Italian mathematician +msgid "fibonacci" msgstr "" -#: js/activity.js:4263 -msgid "Expand/collapse blocks" +#: js/utils/musicutils.js:1083 +#: js/utils/musicutils.js:1134 +#: js/utils/musicutils.js:1177 +#: js/utils/musicutils.js:1199 +#: js/utils/synthutils.js:134 +#: js/blocks/IntervalsBlocks.js:1124 +#: js/blocks/ToneBlocks.js:946 +#: js/blocks/VolumeBlocks.js:411 +#: js/blocks/WidgetBlocks.js:399 +#: js/blocks/WidgetBlocks.js:404 +#: js/turtleactions/VolumeActions.js:218 +#: js/widgets/modewidget.js:919 +#.TRANS: customize voice +msgid "custom" msgstr "" -#: js/activity.js:4381 -msgid "Could not parse JSON input." +#: js/utils/musicutils.js:1085 +#: js/utils/musicutils.js:1531 +#: js/blocks/WidgetBlocks.js:176 +#.TRANS: highpass filter +msgid "highpass" msgstr "" -#: js/activity.js:4684 -#: js/activity.js:4771 -#: js/activity.js:4821 -msgid "Cannot load project from the file. Please check the file type." +#: js/utils/musicutils.js:1087 +#: js/utils/musicutils.js:1532 +#.TRANS: lowpass filter +msgid "lowpass" msgstr "" -#: js/activity.js:5051 -msgid "Invalid parameters" +#: js/utils/musicutils.js:1089 +#: js/utils/musicutils.js:1533 +#.TRANS: bandpass filter +msgid "bandpass" msgstr "" -#: js/turtle-singer.js:1334 -#.TRANS: partials are weighted components in a harmonic series -msgid "You must have at least one Partial block inside of a Weighted-partial block" +#: js/utils/musicutils.js:1091 +#: js/utils/musicutils.js:1534 +#.TRANS: high-shelf filter +msgid "highshelf" msgstr "" -#: js/turtle-singer.js:2048 -msgid "synth cannot play chords." +#: js/utils/musicutils.js:1093 +#: js/utils/musicutils.js:1535 +#.TRANS: low-shelf filter +msgid "lowshelf" msgstr "" -#: js/lilypond.js:614 -msgid "brown rat" +#: js/utils/musicutils.js:1095 +#: js/utils/musicutils.js:1536 +#.TRANS: notch-shelf filter +msgid "notch" msgstr "" -#: js/lilypond.js:615 -msgid "mole" +#: js/utils/musicutils.js:1097 +#: js/utils/musicutils.js:1537 +#.TRANS: all-pass filter +msgid "allpass" msgstr "" -#: js/lilypond.js:616 -msgid "chipmunk" +#: js/utils/musicutils.js:1099 +#: js/utils/musicutils.js:1538 +#.TRANS: peaking filter +msgid "peaking" msgstr "" -#: js/lilypond.js:617 -msgid "red squirrel" +#: js/utils/musicutils.js:1100 +#: js/utils/musicutils.js:1546 +#: js/utils/synthutils.js:126 +#: js/blocks/PitchBlocks.js:85 +#.TRANS: sine wave +msgid "sine" msgstr "" -#: js/lilypond.js:618 -msgid "guinea pig" +#: js/utils/musicutils.js:1101 +#: js/utils/musicutils.js:1547 +#: js/utils/synthutils.js:128 +#: js/blocks/PitchBlocks.js:39 +#.TRANS: square wave +msgid "square" msgstr "" -#: js/lilypond.js:619 -msgid "capybara" +#: js/utils/musicutils.js:1102 +#: js/utils/musicutils.js:1548 +#: js/utils/synthutils.js:132 +#: js/blocks/PitchBlocks.js:62 +#: js/blocks/ToneBlocks.js:39 +#.TRANS: triangle wave +msgid "triangle" msgstr "" -#: js/lilypond.js:620 -msgid "coypu" +#: js/utils/musicutils.js:1103 +#: js/utils/musicutils.js:1549 +#: js/utils/synthutils.js:130 +#: js/blocks/PitchBlocks.js:108 +#.TRANS: sawtooth wave +msgid "sawtooth" msgstr "" -#: js/lilypond.js:621 -msgid "black rat" +#: js/utils/musicutils.js:1105 +#: js/utils/musicutils.js:1312 +#: js/blocks/PitchBlocks.js:931 +#: js/blocks/PitchBlocks.js:937 +#: js/turtleactions/PitchActions.js:469 +#.TRANS: even numbers +#.TRANS: invert based on even or odd number or musical scale +msgid "even" msgstr "" -#: js/lilypond.js:622 -msgid "grey squirrel" +#: js/utils/musicutils.js:1107 +#: js/utils/musicutils.js:1313 +#: js/blocks/PitchBlocks.js:937 +#: js/turtleactions/PitchActions.js:471 +#.TRANS: odd numbers +msgid "odd" msgstr "" -#: js/lilypond.js:623 -msgid "flying squirrel" +#: js/utils/musicutils.js:1108 +#: js/utils/musicutils.js:1314 +#: js/blocks/PitchBlocks.js:937 +#: js/turtleactions/PitchActions.js:473 +msgid "scalar" msgstr "" -#: js/lilypond.js:624 -msgid "bat" +#: js/utils/musicutils.js:1109 +#: js/utils/synthutils.js:72 +#: js/blocks/VolumeBlocks.js:47 +#.TRANS: musical instrument +msgid "piano" msgstr "" -#: js/lilypond.js:757 -#: js/lilypond.js:921 -#: js/lilypond.js:959 -#: js/ActionBlocks.js:1256 -#: js/ExtrasBlocks.js:553 -msgid "start drum" +#: js/utils/musicutils.js:1110 +#: js/utils/synthutils.js:74 +#.TRANS: musical instrument +msgid "violin" msgstr "" -#: js/SaveInterface.js:59 -#: js/SaveInterface.js:61 -#: js/SaveInterface.js:93 -msgid "Music Blocks Project" +#: js/utils/musicutils.js:1111 +#: js/utils/synthutils.js:76 +#.TRANS: viola musical instrument +msgid "viola" msgstr "" -#: js/SaveInterface.js:63 -msgid "This project was created in Music Blocks" +#: js/utils/musicutils.js:1112 +#: js/utils/synthutils.js:114 +#.TRANS: xylophone musical instrument +msgid "xylophone" msgstr "" -#: js/SaveInterface.js:67 -msgid "Music Blocks is a Free/Libre Software application." +#: js/utils/musicutils.js:1113 +#: js/utils/synthutils.js:136 +#.TRANS: vibraphone musical instrument +msgid "vibraphone" msgstr "" -#: js/SaveInterface.js:69 -msgid "The source code can be accessed at" +#: js/utils/musicutils.js:1114 +#: js/utils/synthutils.js:78 +#.TRANS: musical instrument +msgid "cello" msgstr "" -#: js/SaveInterface.js:72 -msgid "For more information, please consult the" +#: js/utils/musicutils.js:1116 +#: js/utils/synthutils.js:82 +#.TRANS: viola musical instrument +msgid "double bass" msgstr "" -#: js/SaveInterface.js:83 -msgid "Alternatively, open the file in Music Blocks using the Load project button." +#: js/utils/musicutils.js:1117 +#: js/utils/synthutils.js:84 +#: js/widgets/rhythmruler.js:2511 +#.TRANS: musical instrument +msgid "guitar" msgstr "" -#: js/SaveInterface.js:85 -msgid "Project Code" +#: js/utils/musicutils.js:1118 +#: js/utils/synthutils.js:86 +#.TRANS: musical instrument +msgid "acoustic guitar" msgstr "" -#: js/SaveInterface.js:87 -msgid "This code stores data about the blocks in a project." +#: js/utils/musicutils.js:1119 +#: js/utils/synthutils.js:88 +#.TRANS: musical instrument +msgid "flute" msgstr "" -#: js/SaveInterface.js:89 -msgid "Show" +#: js/utils/musicutils.js:1120 +#: js/utils/synthutils.js:90 +#.TRANS: musical instrument +msgid "clarinet" msgstr "" -#: js/SaveInterface.js:91 -msgid "Hide" +#: js/utils/musicutils.js:1121 +#: js/utils/synthutils.js:92 +#.TRANS: musical instrument +msgid "saxophone" msgstr "" -#: js/SaveInterface.js:197 -#: js/SaveInterface.js:58 -msgid "No description provided" +#: js/utils/musicutils.js:1122 +#: js/utils/synthutils.js:94 +#.TRANS: musical instrument +msgid "tuba" msgstr "" -#: js/SaveInterface.js:332 -msgid "Your recording is in progress." +#: js/utils/musicutils.js:1123 +#: js/utils/synthutils.js:96 +#.TRANS: musical instrument +msgid "trumpet" msgstr "" -#: js/SaveInterface.js:401 -#.TRANS: File name prompt for save as Lilypond -msgid "File name" +#: js/utils/musicutils.js:1124 +#: js/utils/synthutils.js:98 +#.TRANS: musical instrument +msgid "oboe" msgstr "" -#: js/SaveInterface.js:403 -#: js/StringHelper.js:39 -#.TRANS: Project title prompt for save as Lilypond -msgid "Project title" +#: js/utils/musicutils.js:1125 +#: js/utils/synthutils.js:100 +#.TRANS: musical instrument +msgid "trombone" msgstr "" -#: js/SaveInterface.js:405 -#.TRANS: Project title prompt for save as Lilypond -msgid "Project author" +#: js/utils/musicutils.js:1126 +#: js/utils/synthutils.js:116 +#.TRANS: polytone synthesizer +msgid "electronic synth" msgstr "" -#: js/SaveInterface.js:407 -#.TRANS: MIDI prompt for save as Lilypond -msgid "Include MIDI output?" +#: js/utils/musicutils.js:1127 +#: js/utils/synthutils.js:118 +#.TRANS: simple monotone synthesizer +msgid "simple 1" msgstr "" -#: js/SaveInterface.js:409 -#.TRANS: Guitar prompt for save as Lilypond -msgid "Include guitar tablature output?" +#: js/utils/musicutils.js:1128 +msgid "simple 2" msgstr "" -#: js/SaveInterface.js:411 -#.TRANS: Lilypond is a scripting language for generating sheet music -msgid "Save as Lilypond" +#: js/utils/musicutils.js:1129 +msgid "simple 3" msgstr "" -#: js/SaveInterface.js:426 -#: js/EnsembleBlocks.js:75 -#: js/EnsembleBlocks.js:154 -#: js/EnsembleBlocks.js:216 -#: js/EnsembleBlocks.js:302 -#: js/EnsembleBlocks.js:348 -#: js/EnsembleBlocks.js:389 -#: js/EnsembleBlocks.js:441 -#: js/EnsembleBlocks.js:490 -#: js/EnsembleBlocks.js:536 -#: js/EnsembleBlocks.js:583 -#: js/EnsembleBlocks.js:637 -#: js/EnsembleBlocks.js:753 -#: js/EnsembleBlocks.js:840 -#: js/EnsembleBlocks.js:899 -#: js/EnsembleBlocks.js:942 -#: js/EnsembleBlocks.js:1212 -#: js/EnsembleBlocks.js:1280 -#.TRANS: default project author when saving as Lilypond -msgid "Mr. Mouse" +#: js/utils/musicutils.js:1130 +msgid "simple 4" msgstr "" -#: js/SaveInterface.js:573 -msgid "The Lilypond code is copied to clipboard. You can paste it here: " +#: js/utils/musicutils.js:1131 +#: js/utils/synthutils.js:58 +#: js/blocks/DrumBlocks.js:191 +#.TRANS: white noise synthesizer +msgid "white noise" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:50 -#: js/RhythmBlockPaletteBlocks.js:232 -#.TRANS: rhythm block -#.TRANS: translate "rhythm1" as rhythm -msgid "rhythm1" +#: js/utils/musicutils.js:1132 +#: js/utils/synthutils.js:60 +#.TRANS: brown noise synthesizer +msgid "brown noise" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:70 -#: js/RhythmBlockPaletteBlocks.js:251 -#: js/RhythmBlockPaletteBlocks.js:484 -#: js/RhythmBlockPaletteBlocks.js:553 -#: js/RhythmBlockPaletteBlocks.js:874 -msgid "number of notes" +#: js/utils/musicutils.js:1133 +#: js/utils/synthutils.js:62 +#.TRANS: pink noise synthesizer +msgid "pink noise" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:126 -msgid "polyphonic rhythm" +#: js/utils/musicutils.js:1135 +#: js/utils/synthutils.js:148 +#: js/widgets/rhythmruler.js:2057 +#: js/widgets/rhythmruler.js:2319 +#.TRANS: musical instrument +msgid "snare drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:218 -msgid "The Rhythm block is used to generate rhythm patterns." +#: js/utils/musicutils.js:1136 +#: js/utils/synthutils.js:150 +#.TRANS: musical instrument +msgid "kick drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:279 -msgid "1/64 note" +#: js/utils/musicutils.js:1137 +#: js/utils/synthutils.js:152 +#.TRANS: musical instrument +msgid "tom tom" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:303 -msgid "1/32 note" +#: js/utils/musicutils.js:1138 +#: js/utils/synthutils.js:154 +#.TRANS: musical instrument +msgid "floor tom" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:331 -msgid "1/16 note" +#: js/utils/musicutils.js:1139 +#: js/utils/synthutils.js:156 +#.TRANS: musical instrument +msgid "bass drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:359 -msgid "eighth note" +#: js/utils/musicutils.js:1140 +#: js/utils/synthutils.js:158 +#.TRANS: a drum made from an inverted cup +msgid "cup drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:387 -msgid "quarter note" +#: js/utils/musicutils.js:1141 +#: js/utils/synthutils.js:160 +#.TRANS: musical instrument +msgid "darbuka drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:415 -msgid "half note" +#: js/utils/musicutils.js:1142 +#: js/utils/synthutils.js:164 +#.TRANS: musical instrument +msgid "hi hat" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:443 -msgid "whole note" +#: js/utils/musicutils.js:1143 +#: js/utils/synthutils.js:166 +#.TRANS: a small metal bell +msgid "ride bell" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:481 -#: js/RhythmBlockPaletteBlocks.js:550 -#: js/RhythmBlockPaletteBlocks.js:601 -#.TRANS: A tuplet is a note value divided into irregular time values. -msgid "tuplet" +#: js/utils/musicutils.js:1144 +#: js/utils/synthutils.js:168 +#.TRANS: musical instrument +msgid "cow bell" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:767 -msgid "septuplet" +#: js/utils/musicutils.js:1145 +msgid "japanese drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:795 -msgid "quintuplet" +#: js/utils/musicutils.js:1146 +#: js/utils/synthutils.js:174 +#.TRANS: musical instrument +msgid "japanese bell" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:823 -msgid "triplet" +#: js/utils/musicutils.js:1147 +#: js/utils/synthutils.js:170 +#.TRANS: musical instrument +msgid "triangle bell" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:850 -msgid "simple tuplet" +#: js/utils/musicutils.js:1148 +#: js/utils/synthutils.js:172 +#.TRANS: musical instrument +msgid "finger cymbals" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:860 -msgid "Tuplets are a collection of notes that get scaled to a specific duration." +#: js/utils/musicutils.js:1149 +#: js/utils/synthutils.js:176 +#.TRANS: a musically tuned set of bells +msgid "chime" msgstr "" -#: js/WidgetBlocks.js:71 -#.TRANS: sound envelope (ADSR) -msgid "envelope" +#: js/utils/musicutils.js:1150 +#: js/utils/synthutils.js:178 +#.TRANS: a musical instrument +msgid "gong" msgstr "" -#: js/WidgetBlocks.js:79 -#.TRANS: Attack time is the time taken for initial run-up of level from nil to peak, beginning when the key is first pressed. -msgid "attack" +#: js/utils/musicutils.js:1151 +#: js/utils/synthutils.js:180 +#.TRANS: sound effect +msgid "clang" msgstr "" -#: js/WidgetBlocks.js:81 -#.TRANS: Decay time is the time taken for the subsequent run down from the attack level to the designated sustain level. -msgid "decay" +#: js/utils/musicutils.js:1152 +#: js/utils/synthutils.js:182 +#.TRANS: sound effect +msgid "crash" msgstr "" -#: js/WidgetBlocks.js:83 -#.TRANS: Sustain level is the level during the main sequence of the sound's duration, until the key is released. -msgid "sustain" +#: js/utils/musicutils.js:1153 +#: js/utils/synthutils.js:184 +#.TRANS: sound effect +msgid "bottle" msgstr "" -#: js/WidgetBlocks.js:85 -#.TRANS: Release time is the time taken for the level to decay from the sustain level to zero after the key is released. -msgid "release" +#: js/utils/musicutils.js:1154 +#: js/utils/synthutils.js:186 +#.TRANS: sound effect +msgid "clap" msgstr "" -#: js/WidgetBlocks.js:96 -msgid "Attack value should be from 0 to 100." +#: js/utils/musicutils.js:1155 +#: js/utils/synthutils.js:188 +#.TRANS: sound effect +msgid "slap" msgstr "" -#: js/WidgetBlocks.js:99 -msgid "Decay value should be from 0 to 100." +#: js/utils/musicutils.js:1156 +#: js/utils/synthutils.js:190 +#.TRANS: sound effect +msgid "splash" msgstr "" -#: js/WidgetBlocks.js:102 -msgid "Sustain value should be from 0 to 100." +#: js/utils/musicutils.js:1157 +#: js/utils/synthutils.js:192 +#.TRANS: sound effect +msgid "bubbles" msgstr "" -#: js/WidgetBlocks.js:105 -msgid "Release value should be from 0-100." +#: js/utils/musicutils.js:1158 +#: js/utils/synthutils.js:194 +#.TRANS: sound effect +msgid "raindrop" msgstr "" -#: js/WidgetBlocks.js:121 -msgid "You are adding multiple envelope blocks." +#: js/utils/musicutils.js:1159 +#: js/utils/synthutils.js:196 +#.TRANS: animal sound effect +msgid "cat" msgstr "" -#: js/WidgetBlocks.js:144 -#.TRANS: a filter removes some unwanted components from a signal -msgid "filter" +#: js/utils/musicutils.js:1160 +#: js/utils/synthutils.js:198 +#.TRANS: animal sound effect +msgid "cricket" msgstr "" -#: js/WidgetBlocks.js:149 -#: js/musicutils.js:706 -#: js/musicutils.js:1105 -#.TRANS: highpass filter -msgid "highpass" +#: js/utils/musicutils.js:1161 +#: js/utils/synthutils.js:200 +#.TRANS: animal sound effect +msgid "dog" msgstr "" -#: js/WidgetBlocks.js:152 -#: js/ToneBlocks.js:42 -#: js/timbre.js:1558 -#: js/timbre.js:1808 -#.TRANS: type of filter, e.g., lowpass, highpass, etc. -#.TRANS: there are different types (sine, triangle, square...) of oscillators. -msgid "type" +#: js/utils/musicutils.js:1163 +#: js/utils/synthutils.js:102 +#.TRANS: musical instrument +msgid "banjo" msgstr "" -#: js/WidgetBlocks.js:154 -#: js/timbre.js:1818 -#.TRANS: rolloff is the steepness of a change in frequency. -msgid "rolloff" +#: js/utils/musicutils.js:1164 +#: js/utils/synthutils.js:104 +#.TRANS: musical instrument +msgid "koto" msgstr "" -#: js/WidgetBlocks.js:155 -#: js/MediaBlocks.js:692 -#: js/temperament.js:382 -#: js/temperament.js:417 -#: js/temperament.js:477 -#: js/temperament.js:485 -#: js/temperament.js:1348 -#: js/timbre.js:1842 -msgid "frequency" +#: js/utils/musicutils.js:1165 +#: js/utils/synthutils.js:106 +#.TRANS: musical instrument +msgid "dulcimer" msgstr "" -#: js/WidgetBlocks.js:179 -#.TRANS: rolloff is the steepness of a change in frequency. -msgid "Rolloff value should be either -12, -24, -48, or -96 decibels/octave." +#: js/utils/musicutils.js:1166 +#: js/utils/synthutils.js:108 +#.TRANS: musical instrument +msgid "electric guitar" msgstr "" -#: js/WidgetBlocks.js:211 -msgid "The Temperament tool is used to define custom tuning." +#: js/utils/musicutils.js:1167 +#: js/utils/synthutils.js:110 +#.TRANS: musical instrument +msgid "bassoon" msgstr "" -#: js/WidgetBlocks.js:277 -#: js/sampler.js:329 -msgid "Upload a sample and adjust its pitch center." +#: js/utils/musicutils.js:1168 +#: js/utils/synthutils.js:112 +#.TRANS: musical instrument +msgid "celeste" msgstr "" -#: js/WidgetBlocks.js:284 -#.TRANS: the speed at music is should be played. -msgid "sampler" +#: js/utils/musicutils.js:1170 +#: js/widgets/temperament.js:787 +#.TRANS: musical temperament +msgid "equal" msgstr "" -#: js/WidgetBlocks.js:329 -#: js/WidgetBlocks.js:334 -#: js/IntervalsBlocks.js:928 -#: js/VolumeBlocks.js:411 -#: js/ToneBlocks.js:946 -#: js/VolumeActions.js:218 -#: js/musicutils.js:704 -#: js/musicutils.js:755 -#: js/musicutils.js:798 -#: js/musicutils.js:820 -#: js/musicutils.js:1136 -#: js/synthutils.js:118 -#: js/modewidget.js:919 -#.TRANS: customize voice -msgid "custom" +#: js/utils/musicutils.js:1172 +#.TRANS: musical temperament +msgid "Pythagorean" msgstr "" -#: js/WidgetBlocks.js:432 -msgid "The Meter block opens a tool to select strong beats for the meter." +#: js/utils/musicutils.js:1174 +#.TRANS: musical temperament +msgid "just intonation" msgstr "" -#: js/WidgetBlocks.js:473 -msgid "The oscilloscope block opens a tool to visualize waveforms." +#: js/utils/musicutils.js:1176 +#.TRANS: musical temperament +msgid "meantone" msgstr "" -#: js/WidgetBlocks.js:478 -msgid "oscilloscope" +#: js/utils/musicutils.js:1193 +msgid "major 7th" msgstr "" -#: js/WidgetBlocks.js:530 -msgid "The Custom mode block opens a tool to explore musical mode (the spacing of the notes in a scale)." +#: js/utils/musicutils.js:1194 +msgid "minor 7th" msgstr "" -#: js/WidgetBlocks.js:536 -#.TRANS: musical mode is the pattern of half-steps in an octave, e.g., Major or Minor modes -msgid "custom mode" +#: js/utils/musicutils.js:1195 +msgid "dominant 7th" msgstr "" -#: js/WidgetBlocks.js:570 -msgid "The Tempo block opens a metronome to visualize the beat." +#: js/utils/musicutils.js:1196 +msgid "minor-major 7th" msgstr "" -#: js/WidgetBlocks.js:617 -msgid "The Arpeggio Widget is used to compose chord sequences." +#: js/utils/musicutils.js:1197 +msgid "fully-diminished 7th" msgstr "" -#: js/WidgetBlocks.js:623 -#: js/IntervalsBlocks.js:683 -msgid "arpeggio" +#: js/utils/musicutils.js:1198 +msgid "half-diminished 7th" msgstr "" -#: js/WidgetBlocks.js:677 -msgid "The Pitch drum matrix is used to map pitches to drum sounds." +#: js/utils/musicutils.js:1557 +#: js/utils/musicutils.js:1569 +msgid "Equal (12EDO)" msgstr "" -#: js/WidgetBlocks.js:682 -#.TRANS: makes a mapping between pitches and drum sounds -msgid "pitch-drum mapper" +#: js/utils/musicutils.js:1558 +#: js/utils/musicutils.js:1570 +msgid "5-limit Just Intonation" msgstr "" -#: js/WidgetBlocks.js:724 -msgid "You must have at least one pitch block and one drum block in the matrix." +#: js/utils/musicutils.js:1559 +#: js/utils/musicutils.js:1571 +msgid "Pythagorean (3-limit JI)" msgstr "" -#: js/WidgetBlocks.js:746 -msgid "The Pitch slider tool to is used to generate pitches at selected frequencies." +#: js/utils/musicutils.js:1560 +#: js/utils/musicutils.js:1561 +#: js/utils/musicutils.js:1572 +#: js/utils/musicutils.js:1573 +msgid "Meantone" msgstr "" -#: js/WidgetBlocks.js:751 -#.TRANS: widget to generate pitches using a slider -msgid "pitch slider" +#: js/utils/musicutils.js:1574 +msgid "Custom" msgstr "" -#: js/WidgetBlocks.js:788 -msgid "chromatic keyboard" +#: js/utils/musicutils.js:5387 +#: js/utils/musicutils.js:5430 +msgid "current" msgstr "" -#: js/WidgetBlocks.js:815 -#: js/WidgetBlocks.js:874 -#.TRANS: widget to generate pitches using a slider -msgid "music keyboard" +#: js/utils/musicutils.js:5390 +#: js/utils/musicutils.js:5421 +msgid "next" msgstr "" -#: js/WidgetBlocks.js:859 -#: js/WidgetBlocks.js:866 -msgid "The Music keyboard block opens a piano keyboard that can be used to create notes." +#: js/utils/musicutils.js:5393 +#: js/utils/musicutils.js:5426 +msgid "previous" msgstr "" -#: js/WidgetBlocks.js:910 -msgid "The Pitch staircase tool to is used to generate pitches from a given ratio." +#: js/utils/synthutils.js:120 +#.TRANS: simple monotone synthesizer +msgid "simple-2" msgstr "" -#: js/WidgetBlocks.js:917 -#.TRANS: generate a progressive sequence of pitches -msgid "pitch staircase" +#: js/utils/synthutils.js:122 +#.TRANS: simple monotone synthesizer +msgid "simple-3" msgstr "" -#: js/WidgetBlocks.js:982 -msgid "The Rhythm Maker block opens a tool to create drum machines." +#: js/utils/synthutils.js:124 +#.TRANS: simple monotone synthesizer +msgid "simple-4" msgstr "" -#: js/WidgetBlocks.js:1036 -msgid "G major scale" +#: js/utils/synthutils.js:162 +#.TRANS: musical instrument +msgid "taiko" msgstr "" -#: js/WidgetBlocks.js:1064 -msgid "C major scale" +#: js/blocks/ActionBlocks.js:58 +msgid "The Return block will return a value from an action." msgstr "" -#: js/WidgetBlocks.js:1097 -msgid "The Phrase Maker block opens a tool to create musical phrases." +#: js/blocks/ActionBlocks.js:75 +msgid "return" msgstr "" -#: js/WidgetBlocks.js:1104 -#.TRANS: assigns pitch to a sequence of beats to generate a melody -msgid "phrase maker" +#: js/blocks/ActionBlocks.js:128 +msgid "The Return to URL block will return a value to a webpage." msgstr "" -#: js/WidgetBlocks.js:1168 -msgid "You must have at least one pitch block and one rhythm block in the matrix." +#: js/blocks/ActionBlocks.js:145 +msgid "return to URL" msgstr "" -#: js/WidgetBlocks.js:1220 -msgid "The Status block opens a tool for inspecting the status of Music Blocks as it is running." +#: js/blocks/ActionBlocks.js:233 +#: js/blocks/ActionBlocks.js:290 +#: js/blocks/ActionBlocks.js:501 +#: js/blocks/ActionBlocks.js:688 +msgid "The Calculate block returns a value calculated by an action." msgstr "" -#: js/IntervalsBlocks.js:45 -msgid "set temperament" +#: js/blocks/ActionBlocks.js:251 +#: js/blocks/ActionBlocks.js:517 +#: js/blocks/ActionBlocks.js:707 +msgid "calculate" msgstr "" -#: js/IntervalsBlocks.js:63 -#: js/MediaBlocks.js:746 -#: js/PitchBlocks.js:657 -#: js/PitchBlocks.js:933 -#: js/PitchBlocks.js:972 -#: js/PitchBlocks.js:1005 -#: js/PitchBlocks.js:1166 -#: js/PitchBlocks.js:1679 -#: js/PitchBlocks.js:1720 -#: js/PitchBlocks.js:1827 -#: js/ToneBlocks.js:1025 -#.TRANS: adjusts the shift up or down by one octave (twelve half-steps in the interval between two notes, one having twice or half the frequency in Hz of the other.) -msgid "octave" +#: js/blocks/ActionBlocks.js:376 +#: js/blocks/ActionBlocks.js:593 +#: js/blocks/ActionBlocks.js:942 +#: js/blocks/ActionBlocks.js:1389 +#.TRANS: do is the do something or take an action. +msgid "The Do block is used to initiate an action." msgstr "" -#: js/IntervalsBlocks.js:99 -msgid "The Temperament name block is used to select a tuning method." +#: js/blocks/ActionBlocks.js:390 +#: js/blocks/ActionBlocks.js:610 +#: js/blocks/ActionBlocks.js:959 +#: js/blocks/ActionBlocks.js:1048 +#: js/blocks/MeterBlocks.js:769 +msgid "do1" msgstr "" -#: js/IntervalsBlocks.js:161 -msgid "doubly" +#: js/blocks/ActionBlocks.js:390 +#: js/blocks/ActionBlocks.js:610 +#: js/blocks/ActionBlocks.js:959 +#: js/blocks/ActionBlocks.js:1048 +#: js/blocks/FlowBlocks.js:742 +#: js/blocks/FlowBlocks.js:822 +#: js/blocks/MeterBlocks.js:769 +msgid "do" msgstr "" -#: js/IntervalsBlocks.js:166 -msgid "The Doubly block will double the size of an interval." +#: js/blocks/ActionBlocks.js:791 +#: js/blocks/ActionBlocks.js:865 +msgid "The Arg block contains the value of an argument passed to an action." msgstr "" -#: js/IntervalsBlocks.js:262 -msgid "interval number" +#: js/blocks/ActionBlocks.js:806 +#: js/blocks/ActionBlocks.js:878 +msgid "arg" msgstr "" -#: js/IntervalsBlocks.js:330 -#.TRANS: measure the distance between two pitches in semi-tones -msgid "semi-tone interval measure" +#: js/blocks/ActionBlocks.js:836 +#: js/blocks/ActionBlocks.js:900 +#: js/blocks/ActionBlocks.js:908 +msgid "Invalid argument" msgstr "" -#: js/IntervalsBlocks.js:397 -#: js/IntervalsBlocks.js:513 -msgid "You must use two pitch blocks when measuring an interval." +#: js/blocks/ActionBlocks.js:944 +msgid "In the example, it is used with the One of block to choose a random phase." msgstr "" -#: js/IntervalsBlocks.js:439 -msgid "The Scalar interval block measures the distance between two notes in the current key and mode." +#: js/blocks/ActionBlocks.js:1019 +#: js/blocks/ActionBlocks.js:1026 +msgid "The Listen block is used to listen for an event such as a mouse click." msgstr "" -#: js/IntervalsBlocks.js:445 -#.TRANS: measure the distance between two pitches in steps of musical scale -msgid "scalar interval measure" +#: js/blocks/ActionBlocks.js:1028 +msgid "When the event happens, an action is taken." msgstr "" -#: js/IntervalsBlocks.js:592 -#: js/musicutils.js:637 -#: js/musicutils.js:908 -#.TRANS: perfect is a music term related to intervals -msgid "perfect" +#: js/blocks/ActionBlocks.js:1045 +msgid "on" msgstr "" -#: js/IntervalsBlocks.js:621 -msgid "In the figure, we add sol# to sol." +#: js/blocks/ActionBlocks.js:1048 +#: js/blocks/ActionBlocks.js:1049 +#: js/blocks/ActionBlocks.js:1153 +msgid "event" msgstr "" -#: js/IntervalsBlocks.js:627 -#: js/OrnamentBlocks.js:220 -#.TRANS: calculate a relative step between notes based on semi-tones -msgid "semi-tone interval" +#: js/blocks/ActionBlocks.js:1133 +msgid "The Broadcast block is used to trigger an event." msgstr "" -#: js/IntervalsBlocks.js:676 -msgid "The output of the example is: do, mi, sol, sol, ti, mi" +#: js/blocks/ActionBlocks.js:1151 +msgid "broadcast" msgstr "" -#: js/IntervalsBlocks.js:735 -msgid "The Chord block calculates common chords." +#: js/blocks/ActionBlocks.js:1208 +msgid "Each Start block is a separate voice." msgstr "" -#: js/IntervalsBlocks.js:737 -msgid "In the figure, we generate a C-major chord." +#: js/blocks/ActionBlocks.js:1304 +msgid "It is often used for storing a phrase of music that is repeated." msgstr "" -#: js/IntervalsBlocks.js:742 -msgid "chord" +#: js/blocks/ActionBlocks.js:1495 +msgid "define temperament" msgstr "" -#: js/IntervalsBlocks.js:794 -msgid "The Ratio Interval block calculates an interval based on a ratio." +#: js/blocks/BooleanBlocks.js:44 +msgid "The Not block is the logical not operator." msgstr "" -#: js/IntervalsBlocks.js:799 -msgid "ratio interval" +#: js/blocks/BooleanBlocks.js:62 +msgid "not" +msgstr "ei" + +#: js/blocks/BooleanBlocks.js:134 +msgid "The And block is the logical and operator." msgstr "" -#: js/IntervalsBlocks.js:868 -msgid "In the figure, we add la to sol." +#: js/blocks/BooleanBlocks.js:152 +msgid "and" +msgstr "ja" + +#: js/blocks/BooleanBlocks.js:218 +msgid "The Or block is the logical or operator." msgstr "" -#: js/IntervalsBlocks.js:924 -#.TRANS: define a custom mode -msgid "define mode" +#: js/blocks/BooleanBlocks.js:236 +msgid "or" +msgstr "tai" + +#: js/blocks/BooleanBlocks.js:302 +msgid "The XOR block is the logical XOR operator." msgstr "" -#: js/IntervalsBlocks.js:977 -msgid "movable Do" +#: js/blocks/BooleanBlocks.js:320 +msgid "xor" msgstr "" -#: js/IntervalsBlocks.js:1028 -#.TRANS: mode length is the number of notes in the mode, e.g., 7 for major and minor scales; 12 for chromatic scales -msgid "mode length" +#: js/blocks/BooleanBlocks.js:808 +msgid "The Equal block returns True if the two numbers are equal." msgstr "" -#: js/IntervalsBlocks.js:1037 -msgid "The Mode length block is the number of notes in the current scale." +#: js/blocks/BooleanBlocks.js:909 +msgid "The Not-equal-to block returns True if the two numbers are not equal to each other." msgstr "" -#: js/IntervalsBlocks.js:1039 -msgid "Most Western scales have 7 notes." +#: js/blocks/BooleanBlocks.js:1008 +msgid "The Boolean block is used to specify true or false." msgstr "" -#: js/IntervalsBlocks.js:1088 -#.TRANS: the mode in music is 'major', 'minor', etc. -msgid "current mode" +#: js/blocks/BoxesBlocks.js:53 +#: js/blocks/BoxesBlocks.js:59 +msgid "The Add-to block is used to add to the value stored in a box." msgstr "" -#: js/IntervalsBlocks.js:1141 -#.TRANS: the key is a group of pitches with which a music composition is created -msgid "current key" +#: js/blocks/BoxesBlocks.js:61 +msgid "It can also be used with other blocks such as Color and Pen size." msgstr "" -#: js/IntervalsBlocks.js:1193 -#: js/IntervalsBlocks.js:1238 -#.TRANS: set the key and mode, e.g. C Major -msgid "set key" +#: js/blocks/BoxesBlocks.js:73 +msgid "add" msgstr "" -#: js/IntervalsBlocks.js:1247 -#: js/IntervalsBlocks.js:1253 -msgid "The Set key block is used to set the key and mode," +#: js/blocks/BoxesBlocks.js:75 +#: js/widgets/temperament.js:857 +msgid "to" msgstr "" -#: js/IntervalsBlocks.js:1253 -msgid "eg C Major" +#: js/blocks/BoxesBlocks.js:75 +#: js/blocks/BoxesBlocks.js:595 +#: js/blocks/HeapBlocks.js:544 +msgid "value1" msgstr "" -#: js/IntervalsBlocks.js:1266 -#: js/DictBlocks.js:215 -#: js/DictBlocks.js:216 -#: js/DictBlocks.js:289 -#: js/DictBlocks.js:290 -#: js/DictBlocks.js:357 -#: js/DictBlocks.js:430 -#: js/DictBlocks.js:431 -#.TRANS: key, e.g., C in C Major -msgid "key" +#: js/blocks/BoxesBlocks.js:118 +msgid "Block does not support incrementing." msgstr "" -#: js/ActionBlocks.js:58 -msgid "The Return block will return a value from an action." +#: js/blocks/BoxesBlocks.js:152 +msgid "The Add-1-to block adds one to the value stored in a box." msgstr "" -#: js/ActionBlocks.js:75 -msgid "return" +#: js/blocks/BoxesBlocks.js:163 +msgid "add 1 to" msgstr "" -#: js/ActionBlocks.js:128 -msgid "The Return to URL block will return a value to a webpage." +#: js/blocks/BoxesBlocks.js:211 +msgid "The Subtract-1-from block subtracts one from the value stored in a box." msgstr "" -#: js/ActionBlocks.js:145 -msgid "return to URL" +#: js/blocks/BoxesBlocks.js:222 +msgid "subtract 1 from" msgstr "" -#: js/ActionBlocks.js:233 -#: js/ActionBlocks.js:290 -#: js/ActionBlocks.js:501 -#: js/ActionBlocks.js:688 -msgid "The Calculate block returns a value calculated by an action." +#: js/blocks/BoxesBlocks.js:270 +#: js/blocks/BoxesBlocks.js:387 +msgid "The Box block returns the value stored in a box." msgstr "" -#: js/ActionBlocks.js:251 -#: js/ActionBlocks.js:517 -#: js/ActionBlocks.js:707 -msgid "calculate" +#: js/blocks/BoxesBlocks.js:500 +#: js/blocks/BoxesBlocks.js:576 +msgid "The Store in block will store a value in a box." msgstr "" -#: js/ActionBlocks.js:376 -#: js/ActionBlocks.js:593 -#: js/ActionBlocks.js:942 -#: js/ActionBlocks.js:1389 -#.TRANS: do is the do something or take an action. -msgid "The Do block is used to initiate an action." +#: js/blocks/BoxesBlocks.js:595 +#: js/blocks/EnsembleBlocks.js:391 +#: js/blocks/EnsembleBlocks.js:402 +msgid "name1" msgstr "" -#: js/ActionBlocks.js:390 -#: js/ActionBlocks.js:610 -#: js/ActionBlocks.js:959 -#: js/ActionBlocks.js:1048 -#: js/MeterBlocks.js:769 -msgid "do1" +#: js/blocks/BoxesBlocks.js:652 +msgid "The Box2 block returns the value stored in Box2." msgstr "" -#: js/ActionBlocks.js:390 -#: js/ActionBlocks.js:610 -#: js/ActionBlocks.js:959 -#: js/ActionBlocks.js:1048 -#: js/FlowBlocks.js:742 -#: js/FlowBlocks.js:822 -#: js/MeterBlocks.js:769 -msgid "do" +#: js/blocks/BoxesBlocks.js:703 +msgid "The Store in Box2 block is used to store a value in Box2." msgstr "" -#: js/ActionBlocks.js:791 -#: js/ActionBlocks.js:865 -msgid "The Arg block contains the value of an argument passed to an action." +#: js/blocks/BoxesBlocks.js:715 +msgid "store in box2" msgstr "" -#: js/ActionBlocks.js:806 -#: js/ActionBlocks.js:878 -msgid "arg" +#: js/blocks/BoxesBlocks.js:761 +msgid "The Box1 block returns the value stored in Box1." msgstr "" -#: js/ActionBlocks.js:836 -#: js/ActionBlocks.js:900 -#: js/ActionBlocks.js:908 -msgid "Invalid argument" +#: js/blocks/BoxesBlocks.js:812 +msgid "The Store in Box1 block is used to store a value in Box1." msgstr "" -#: js/ActionBlocks.js:944 -msgid "In the example, it is used with the One of block to choose a random phase." +#: js/blocks/BoxesBlocks.js:826 +msgid "store in box1" msgstr "" -#: js/ActionBlocks.js:1019 -#: js/ActionBlocks.js:1026 -msgid "The Listen block is used to listen for an event such as a mouse click." +#: js/blocks/DictBlocks.js:77 +msgid "show dictionary" msgstr "" -#: js/ActionBlocks.js:1028 -msgid "When the event happens, an action is taken." +#: js/blocks/DictBlocks.js:80 +#: js/blocks/DictBlocks.js:145 +#: js/blocks/DictBlocks.js:216 +#: js/blocks/DictBlocks.js:290 +#: js/blocks/ProgramBlocks.js:396 +#: js/blocks/ProgramBlocks.js:501 +#: js/blocks/ProgramBlocks.js:664 +msgid "My Dictionary" msgstr "" -#: js/ActionBlocks.js:1045 -msgid "on" +#: js/blocks/DictBlocks.js:129 +msgid "The Dictionary block returns a dictionary." msgstr "" -#: js/ActionBlocks.js:1048 -#: js/ActionBlocks.js:1049 -#: js/ActionBlocks.js:1153 -msgid "event" +#: js/blocks/DictBlocks.js:197 +#: js/blocks/DictBlocks.js:339 +msgid "The Get-dict block returns a value in the dictionary for a specified key." msgstr "" -#: js/ActionBlocks.js:1133 -msgid "The Broadcast block is used to trigger an event." +#: js/blocks/DictBlocks.js:212 +#: js/blocks/DictBlocks.js:354 +#.TRANS: retrieve a value from the dictionary with a given key +msgid "get value" msgstr "" -#: js/ActionBlocks.js:1151 -msgid "broadcast" +#: js/blocks/DictBlocks.js:215 +#: js/blocks/DictBlocks.js:216 +#: js/blocks/DictBlocks.js:289 +#: js/blocks/DictBlocks.js:290 +#: js/blocks/DictBlocks.js:357 +#: js/blocks/DictBlocks.js:430 +#: js/blocks/DictBlocks.js:431 +msgid "key2" msgstr "" -#: js/ActionBlocks.js:1208 -msgid "Each Start block is a separate voice." +#: js/blocks/DictBlocks.js:215 +#: js/blocks/DictBlocks.js:216 +#: js/blocks/DictBlocks.js:289 +#: js/blocks/DictBlocks.js:290 +#: js/blocks/DictBlocks.js:357 +#: js/blocks/DictBlocks.js:430 +#: js/blocks/DictBlocks.js:431 +#: js/blocks/IntervalsBlocks.js:1462 +#.TRANS: key, e.g., C in C Major +msgid "key" msgstr "" -#: js/ActionBlocks.js:1304 -msgid "It is often used for storing a phrase of music that is repeated." +#: js/blocks/DictBlocks.js:271 +#: js/blocks/DictBlocks.js:411 +msgid "The Set-dict block sets a value in the dictionary for a specified key." msgstr "" -#: js/ActionBlocks.js:1495 -msgid "define temperament" +#: js/blocks/DictBlocks.js:286 +#: js/blocks/DictBlocks.js:427 +#.TRANS: set a value in the dictionary for a given key +msgid "set value" msgstr "" -#: js/EnsembleBlocks.js:66 +#: js/blocks/EnsembleBlocks.js:66 msgid "mouse index heap" msgstr "" -#: js/EnsembleBlocks.js:68 +#: js/blocks/EnsembleBlocks.js:68 msgid "The Mouse index heap block returns a value in the heap at a specified location for a specified mouse." msgstr "" -#: js/EnsembleBlocks.js:77 -#: js/EnsembleBlocks.js:1080 +#: js/blocks/EnsembleBlocks.js:77 +#: js/blocks/EnsembleBlocks.js:1080 msgid "mouse name" msgstr "" -#: js/EnsembleBlocks.js:77 -#: js/EnsembleBlocks.js:92 -#: js/HeapBlocks.js:544 +#: js/blocks/EnsembleBlocks.js:77 +#: js/blocks/EnsembleBlocks.js:92 +#: js/blocks/HeapBlocks.js:544 #.TRANS: value1 is a numeric value (JAPANESE ONLY) msgid "index" msgstr "" -#: js/EnsembleBlocks.js:80 +#: js/blocks/EnsembleBlocks.js:80 msgid "turtle index heap" msgstr "" -#: js/EnsembleBlocks.js:82 +#: js/blocks/EnsembleBlocks.js:82 msgid "The Turtle index heap block returns a value in the heap at a specified location for a specified turtle." msgstr "" -#: js/EnsembleBlocks.js:90 -#: js/EnsembleBlocks.js:167 -#: js/EnsembleBlocks.js:230 -#: js/EnsembleBlocks.js:316 -#: js/EnsembleBlocks.js:362 -#: js/EnsembleBlocks.js:400 -#: js/EnsembleBlocks.js:454 -#: js/EnsembleBlocks.js:504 -#: js/EnsembleBlocks.js:550 -#: js/EnsembleBlocks.js:597 -#: js/EnsembleBlocks.js:651 -#: js/EnsembleBlocks.js:763 -#: js/EnsembleBlocks.js:854 -#: js/EnsembleBlocks.js:915 -#: js/EnsembleBlocks.js:955 -#: js/EnsembleBlocks.js:1219 -#: js/EnsembleBlocks.js:1293 +#: js/blocks/EnsembleBlocks.js:90 +#: js/blocks/EnsembleBlocks.js:167 +#: js/blocks/EnsembleBlocks.js:230 +#: js/blocks/EnsembleBlocks.js:316 +#: js/blocks/EnsembleBlocks.js:362 +#: js/blocks/EnsembleBlocks.js:400 +#: js/blocks/EnsembleBlocks.js:454 +#: js/blocks/EnsembleBlocks.js:504 +#: js/blocks/EnsembleBlocks.js:550 +#: js/blocks/EnsembleBlocks.js:597 +#: js/blocks/EnsembleBlocks.js:651 +#: js/blocks/EnsembleBlocks.js:763 +#: js/blocks/EnsembleBlocks.js:854 +#: js/blocks/EnsembleBlocks.js:915 +#: js/blocks/EnsembleBlocks.js:955 +#: js/blocks/EnsembleBlocks.js:1219 +#: js/blocks/EnsembleBlocks.js:1293 #.TRANS: Yertle is the name of a turtle. msgid "Yertle" msgstr "" -#: js/EnsembleBlocks.js:92 -#: js/EnsembleBlocks.js:1089 +#: js/blocks/EnsembleBlocks.js:92 +#: js/blocks/EnsembleBlocks.js:1089 msgid "turtle name" msgstr "" -#: js/EnsembleBlocks.js:122 -#: js/EnsembleBlocks.js:1197 -#: js/HeapBlocks.js:474 -#: js/HeapBlocks.js:572 +#: js/blocks/EnsembleBlocks.js:122 +#: js/blocks/EnsembleBlocks.js:1197 +#: js/blocks/HeapBlocks.js:474 +#: js/blocks/HeapBlocks.js:572 msgid "Index must be > 0." msgstr "" -#: js/EnsembleBlocks.js:127 -#: js/HeapBlocks.js:479 -#: js/HeapBlocks.js:577 +#: js/blocks/EnsembleBlocks.js:127 +#: js/blocks/HeapBlocks.js:479 +#: js/blocks/HeapBlocks.js:577 msgid "Maximum heap size is 1000." msgstr "" -#: js/EnsembleBlocks.js:145 +#: js/blocks/EnsembleBlocks.js:145 msgid "stop mouse" msgstr "" -#: js/EnsembleBlocks.js:147 +#: js/blocks/EnsembleBlocks.js:147 msgid "The Stop mouse block stops the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:158 +#: js/blocks/EnsembleBlocks.js:158 msgid "stop turtle" msgstr "" -#: js/EnsembleBlocks.js:160 +#: js/blocks/EnsembleBlocks.js:160 msgid "The Stop turtle block stops the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:184 -#: js/EnsembleBlocks.js:247 -#: js/EnsembleBlocks.js:413 -#: js/EnsembleBlocks.js:468 -#: js/EnsembleBlocks.js:706 -#: js/EnsembleBlocks.js:808 -#: js/EnsembleBlocks.js:870 -#: js/EnsembleBlocks.js:1190 -#: js/EnsembleBlocks.js:1253 +#: js/blocks/EnsembleBlocks.js:184 +#: js/blocks/EnsembleBlocks.js:247 +#: js/blocks/EnsembleBlocks.js:413 +#: js/blocks/EnsembleBlocks.js:468 +#: js/blocks/EnsembleBlocks.js:706 +#: js/blocks/EnsembleBlocks.js:808 +#: js/blocks/EnsembleBlocks.js:870 +#: js/blocks/EnsembleBlocks.js:1190 +#: js/blocks/EnsembleBlocks.js:1253 msgid "Cannot find mouse" msgstr "" -#: js/EnsembleBlocks.js:186 -#: js/EnsembleBlocks.js:249 -#: js/EnsembleBlocks.js:415 -#: js/EnsembleBlocks.js:470 -#: js/EnsembleBlocks.js:708 -#: js/EnsembleBlocks.js:810 -#: js/EnsembleBlocks.js:872 -#: js/EnsembleBlocks.js:1192 -#: js/EnsembleBlocks.js:1255 +#: js/blocks/EnsembleBlocks.js:186 +#: js/blocks/EnsembleBlocks.js:249 +#: js/blocks/EnsembleBlocks.js:415 +#: js/blocks/EnsembleBlocks.js:470 +#: js/blocks/EnsembleBlocks.js:708 +#: js/blocks/EnsembleBlocks.js:810 +#: js/blocks/EnsembleBlocks.js:872 +#: js/blocks/EnsembleBlocks.js:1192 +#: js/blocks/EnsembleBlocks.js:1255 msgid "Cannot find turtle" msgstr "" -#: js/EnsembleBlocks.js:206 +#: js/blocks/EnsembleBlocks.js:206 msgid "start mouse" msgstr "" -#: js/EnsembleBlocks.js:209 +#: js/blocks/EnsembleBlocks.js:209 msgid "The Start mouse block starts the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:220 +#: js/blocks/EnsembleBlocks.js:220 msgid "start turtle" msgstr "" -#: js/EnsembleBlocks.js:223 +#: js/blocks/EnsembleBlocks.js:223 msgid "The Start turtle block starts the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:256 +#: js/blocks/EnsembleBlocks.js:256 msgid "Mouse is already running." msgstr "" -#: js/EnsembleBlocks.js:258 +#: js/blocks/EnsembleBlocks.js:258 msgid "Turtle is already running." msgstr "" -#: js/EnsembleBlocks.js:282 +#: js/blocks/EnsembleBlocks.js:282 msgid "Cannot find start block" msgstr "" -#: js/EnsembleBlocks.js:292 +#: js/blocks/EnsembleBlocks.js:292 #.TRANS: pen color for this mouse msgid "mouse color" msgstr "" -#: js/EnsembleBlocks.js:294 +#: js/blocks/EnsembleBlocks.js:294 msgid "The Mouse color block returns the pen color of the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:306 +#: js/blocks/EnsembleBlocks.js:306 #.TRANS: pen color for this turtle msgid "turtle color" msgstr "" -#: js/EnsembleBlocks.js:308 +#: js/blocks/EnsembleBlocks.js:308 msgid "The Turtle color block returns the pen color of the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:338 +#: js/blocks/EnsembleBlocks.js:338 #.TRANS: heading (compass direction) for this mouse msgid "mouse heading" msgstr "" -#: js/EnsembleBlocks.js:340 +#: js/blocks/EnsembleBlocks.js:340 msgid "The Mouse heading block returns the heading of the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:352 +#: js/blocks/EnsembleBlocks.js:352 #.TRANS: heading (compass direction) for this turtle msgid "turtle heading" msgstr "" -#: js/EnsembleBlocks.js:354 +#: js/blocks/EnsembleBlocks.js:354 msgid "The Turtle heading block returns the heading of the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:384 -#: js/EnsembleBlocks.js:439 +#: js/blocks/EnsembleBlocks.js:384 +#: js/blocks/EnsembleBlocks.js:439 #.TRANS: set xy position for this mouse msgid "set mouse" msgstr "" -#: js/EnsembleBlocks.js:391 -#: js/EnsembleBlocks.js:402 -#: js/BoxesBlocks.js:595 -msgid "name1" -msgstr "" - -#: js/EnsembleBlocks.js:391 -#: js/EnsembleBlocks.js:402 -#: js/ProgramBlocks.js:881 -#: js/GraphicsBlocks.js:235 -#: js/GraphicsBlocks.js:313 -#: js/GraphicsBlocks.js:436 -#: js/GraphicsBlocks.js:487 -#: js/GraphicsBlocks.js:534 -#: js/GraphicsBlocks.js:750 +#: js/blocks/EnsembleBlocks.js:391 +#: js/blocks/EnsembleBlocks.js:402 +#: js/blocks/GraphicsBlocks.js:235 +#: js/blocks/GraphicsBlocks.js:313 +#: js/blocks/GraphicsBlocks.js:436 +#: js/blocks/GraphicsBlocks.js:487 +#: js/blocks/GraphicsBlocks.js:534 +#: js/blocks/GraphicsBlocks.js:750 +#: js/blocks/ProgramBlocks.js:881 msgid "x" msgstr "x" -#: js/EnsembleBlocks.js:391 -#: js/EnsembleBlocks.js:402 -#: js/ProgramBlocks.js:881 -#: js/GraphicsBlocks.js:149 -#: js/GraphicsBlocks.js:313 -#: js/GraphicsBlocks.js:436 -#: js/GraphicsBlocks.js:487 -#: js/GraphicsBlocks.js:534 -#: js/GraphicsBlocks.js:750 +#: js/blocks/EnsembleBlocks.js:391 +#: js/blocks/EnsembleBlocks.js:402 +#: js/blocks/GraphicsBlocks.js:149 +#: js/blocks/GraphicsBlocks.js:313 +#: js/blocks/GraphicsBlocks.js:436 +#: js/blocks/GraphicsBlocks.js:487 +#: js/blocks/GraphicsBlocks.js:534 +#: js/blocks/GraphicsBlocks.js:750 +#: js/blocks/ProgramBlocks.js:881 msgid "y" msgstr "y" -#: js/EnsembleBlocks.js:395 -#: js/EnsembleBlocks.js:452 +#: js/blocks/EnsembleBlocks.js:395 +#: js/blocks/EnsembleBlocks.js:452 #.TRANS: set xy position for this turtle msgid "set turtle" msgstr "" -#: js/EnsembleBlocks.js:433 +#: js/blocks/EnsembleBlocks.js:433 msgid "The Set mouse block sends a stack of blocks to be run by the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:446 +#: js/blocks/EnsembleBlocks.js:446 msgid "The Set turtle block sends a stack of blocks to be run by the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:480 +#: js/blocks/EnsembleBlocks.js:480 #.TRANS: y position for this mouse msgid "mouse y" msgstr "" -#: js/EnsembleBlocks.js:482 +#: js/blocks/EnsembleBlocks.js:482 msgid "The Y mouse block returns the Y position of the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:494 +#: js/blocks/EnsembleBlocks.js:494 #.TRANS: y position for this turtle msgid "turtle y" msgstr "" -#: js/EnsembleBlocks.js:496 +#: js/blocks/EnsembleBlocks.js:496 msgid "The Y turtle block returns the Y position of the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:526 +#: js/blocks/EnsembleBlocks.js:526 #.TRANS: x position for this mouse msgid "mouse x" msgstr "" -#: js/EnsembleBlocks.js:528 +#: js/blocks/EnsembleBlocks.js:528 msgid "The X mouse block returns the X position of the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:540 +#: js/blocks/EnsembleBlocks.js:540 #.TRANS: x position for this turtle msgid "turtle x" msgstr "" -#: js/EnsembleBlocks.js:542 +#: js/blocks/EnsembleBlocks.js:542 msgid "The X turtle block returns the X position of the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:573 +#: js/blocks/EnsembleBlocks.js:573 #.TRANS: notes played by this mouse msgid "mouse notes played" msgstr "" -#: js/EnsembleBlocks.js:575 +#: js/blocks/EnsembleBlocks.js:575 msgid "The Mouse elapse notes block returns the number of notes played by the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:587 +#: js/blocks/EnsembleBlocks.js:587 #.TRANS: notes played by this turtle msgid "turtle notes played" msgstr "" -#: js/EnsembleBlocks.js:589 +#: js/blocks/EnsembleBlocks.js:589 msgid "The Turtle elapse notes block returns the number of notes played by the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:627 +#: js/blocks/EnsembleBlocks.js:627 #.TRANS: convert current note for this turtle to piano key (1-88) msgid "mouse pitch number" msgstr "" -#: js/EnsembleBlocks.js:629 +#: js/blocks/EnsembleBlocks.js:629 msgid "The Mouse pitch block returns the current pitch number being played by the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:641 +#: js/blocks/EnsembleBlocks.js:641 #.TRANS: convert current note for this turtle to piano key (1-88) msgid "turtle pitch number" msgstr "" -#: js/EnsembleBlocks.js:643 -msgid "The Turrle pitch block returns the current pitch number being played by the specified turtle." +#: js/blocks/EnsembleBlocks.js:643 +msgid "The Turtle pitch block returns the current pitch number being played by the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:747 -#: js/EnsembleBlocks.js:819 +#: js/blocks/EnsembleBlocks.js:747 +#: js/blocks/EnsembleBlocks.js:819 #.TRANS: note value is the duration of the note played by this mouse msgid "mouse note value" msgstr "" -#: js/EnsembleBlocks.js:757 +#: js/blocks/EnsembleBlocks.js:757 #.TRANS: note value is the duration of the note played by this turtle msgid "turtle note value" msgstr "" -#: js/EnsembleBlocks.js:830 +#: js/blocks/EnsembleBlocks.js:830 #.TRANS: sync is short for synchronization msgid "mouse sync" msgstr "" -#: js/EnsembleBlocks.js:832 +#: js/blocks/EnsembleBlocks.js:832 msgid "The Mouse sync block aligns the beat count between mice." msgstr "" -#: js/EnsembleBlocks.js:844 +#: js/blocks/EnsembleBlocks.js:844 #.TRANS: sync is short for synchronization msgid "turtle sync" msgstr "" -#: js/EnsembleBlocks.js:846 +#: js/blocks/EnsembleBlocks.js:846 msgid "The Turtle sync block aligns the beat count between turtles." msgstr "" -#: js/EnsembleBlocks.js:887 +#: js/blocks/EnsembleBlocks.js:887 msgid "The Found mouse block will return true if the specified mouse can be found." msgstr "" -#: js/EnsembleBlocks.js:893 +#: js/blocks/EnsembleBlocks.js:893 msgid "found mouse" msgstr "" -#: js/EnsembleBlocks.js:903 +#: js/blocks/EnsembleBlocks.js:903 msgid "The Found turtle block will return true if the specified turtle can be found." msgstr "" -#: js/EnsembleBlocks.js:909 +#: js/blocks/EnsembleBlocks.js:909 msgid "found turtle" msgstr "" -#: js/EnsembleBlocks.js:932 +#: js/blocks/EnsembleBlocks.js:932 msgid "new mouse" msgstr "" -#: js/EnsembleBlocks.js:934 +#: js/blocks/EnsembleBlocks.js:934 msgid "The New mouse block will create a new mouse." msgstr "" -#: js/EnsembleBlocks.js:945 +#: js/blocks/EnsembleBlocks.js:945 msgid "new turtle" msgstr "" -#: js/EnsembleBlocks.js:947 +#: js/blocks/EnsembleBlocks.js:947 msgid "The New turtle block will create a new turtle." msgstr "" -#: js/EnsembleBlocks.js:1011 +#: js/blocks/EnsembleBlocks.js:1011 msgid "set mouse color" msgstr "" -#: js/EnsembleBlocks.js:1014 +#: js/blocks/EnsembleBlocks.js:1014 msgid "The Set-mouse-color block is used to set the color of a mouse." msgstr "" -#: js/EnsembleBlocks.js:1020 +#: js/blocks/EnsembleBlocks.js:1020 msgid "set turtle color" msgstr "" -#: js/EnsembleBlocks.js:1023 +#: js/blocks/EnsembleBlocks.js:1023 msgid "The Set-turtle-color block is used to set the color of a turtle." msgstr "" -#: js/EnsembleBlocks.js:1083 +#: js/blocks/EnsembleBlocks.js:1083 msgid "The Mouse-name block returns the name of a mouse." msgstr "" -#: js/EnsembleBlocks.js:1092 +#: js/blocks/EnsembleBlocks.js:1092 msgid "The Turtle-name block returns the name of a turtle." msgstr "" -#: js/EnsembleBlocks.js:1115 +#: js/blocks/EnsembleBlocks.js:1115 msgid "mouse count" msgstr "" -#: js/EnsembleBlocks.js:1118 +#: js/blocks/EnsembleBlocks.js:1118 msgid "The Mouse-count block returns the number of mice." msgstr "" -#: js/EnsembleBlocks.js:1124 +#: js/blocks/EnsembleBlocks.js:1124 msgid "turtle count" msgstr "" -#: js/EnsembleBlocks.js:1127 +#: js/blocks/EnsembleBlocks.js:1127 msgid "The Turtle-count block returns the number of turtles." msgstr "" -#: js/EnsembleBlocks.js:1149 +#: js/blocks/EnsembleBlocks.js:1149 msgid "nth mouse name" msgstr "" -#: js/EnsembleBlocks.js:1152 +#: js/blocks/EnsembleBlocks.js:1152 msgid "The Nth-Mouse name block returns the name of the nth mouse." msgstr "" -#: js/EnsembleBlocks.js:1158 +#: js/blocks/EnsembleBlocks.js:1158 msgid "nth turtle name" msgstr "" -#: js/EnsembleBlocks.js:1161 +#: js/blocks/EnsembleBlocks.js:1161 msgid "The Nth-Turtle name block returns the name of the nth turtle." msgstr "" -#: js/EnsembleBlocks.js:1205 -#: js/EnsembleBlocks.js:1265 +#: js/blocks/EnsembleBlocks.js:1205 +#: js/blocks/EnsembleBlocks.js:1265 msgid "set name" msgstr "" -#: js/EnsembleBlocks.js:1214 -#: js/EnsembleBlocks.js:1221 +#: js/blocks/EnsembleBlocks.js:1214 +#: js/blocks/EnsembleBlocks.js:1221 msgid "source" msgstr "" -#: js/EnsembleBlocks.js:1214 -#: js/EnsembleBlocks.js:1221 +#: js/blocks/EnsembleBlocks.js:1214 +#: js/blocks/EnsembleBlocks.js:1221 msgid "target" msgstr "" -#: js/EnsembleBlocks.js:1271 +#: js/blocks/EnsembleBlocks.js:1271 msgid "The Set-name block is used to name a mouse." msgstr "" -#: js/EnsembleBlocks.js:1284 +#: js/blocks/EnsembleBlocks.js:1284 msgid "The Set-name block is used to name a turtle." msgstr "" -#: js/BooleanBlocks.js:44 -msgid "The Not block is the logical not operator." -msgstr "" - -#: js/BooleanBlocks.js:62 -msgid "not" -msgstr "ei" - -#: js/BooleanBlocks.js:134 -msgid "The And block is the logical and operator." -msgstr "" - -#: js/BooleanBlocks.js:152 -msgid "and" -msgstr "ja" - -#: js/BooleanBlocks.js:218 -msgid "The Or block is the logical or operator." -msgstr "" - -#: js/BooleanBlocks.js:236 -msgid "or" -msgstr "tai" - -#: js/BooleanBlocks.js:302 -msgid "The XOR block is the logical XOR operator." -msgstr "" - -#: js/BooleanBlocks.js:320 -msgid "xor" -msgstr "" - -#: js/BooleanBlocks.js:808 -msgid "The Equal block returns True if the two numbers are equal." -msgstr "" - -#: js/BooleanBlocks.js:909 -msgid "The Not-equal-to block returns True if the two numbers are not equal to each other." -msgstr "" - -#: js/BooleanBlocks.js:1008 -msgid "The Boolean block is used to specify true or false." -msgstr "" - -#: js/MediaBlocks.js:35 -#.TRANS: right side of the screen -msgid "right (screen)" -msgstr "" - -#: js/MediaBlocks.js:45 -#: js/MediaBlocks.js:56 -msgid "The Right block returns the position of the right of the canvas." -msgstr "" - -#: js/MediaBlocks.js:97 -#.TRANS: left side of the screen -msgid "left (screen)" -msgstr "" - -#: js/MediaBlocks.js:107 -#: js/MediaBlocks.js:118 -msgid "The Left block returns the position of the left of the canvas." -msgstr "" - -#: js/MediaBlocks.js:158 -msgid "top (screen)" +#: js/blocks/ExtrasBlocks.js:33 +msgid "fraction" msgstr "" -#: js/MediaBlocks.js:168 -#: js/MediaBlocks.js:179 -msgid "The Top block returns the position of the top of the canvas." +#: js/blocks/ExtrasBlocks.js:36 +msgid "Convert a float to a fraction" msgstr "" -#: js/MediaBlocks.js:219 -msgid "bottom (screen)" +#: js/blocks/ExtrasBlocks.js:93 +msgid "save as ABC" msgstr "" -#: js/MediaBlocks.js:229 -#: js/MediaBlocks.js:240 -msgid "The Bottom block returns the position of the bottom of the canvas." +#: js/blocks/ExtrasBlocks.js:96 +#: js/blocks/ExtrasBlocks.js:132 +#: js/blocks/ExtrasBlocks.js:168 +msgid "title" msgstr "" -#: js/MediaBlocks.js:282 -msgid "width" +#: js/blocks/ExtrasBlocks.js:129 +msgid "save as Lilypond" msgstr "" -#: js/MediaBlocks.js:291 -msgid "The Width block returns the width of the canvas." +#: js/blocks/ExtrasBlocks.js:165 +msgid "save as SVG" msgstr "" -#: js/MediaBlocks.js:325 -msgid "height" +#: js/blocks/ExtrasBlocks.js:216 +msgid "no background" msgstr "" -#: js/MediaBlocks.js:334 -msgid "The Height block returns the height of the canvas." +#: js/blocks/ExtrasBlocks.js:219 +msgid "The No background block eliminates the background from the saved SVG output." msgstr "" -#: js/MediaBlocks.js:369 -#.TRANS: stops playback of an audio recording -msgid "stop play" +#: js/blocks/ExtrasBlocks.js:247 +msgid "show blocks" msgstr "" -#: js/MediaBlocks.js:404 -#.TRANS: Erases the images and text -msgid "erase media" +#: js/blocks/ExtrasBlocks.js:249 +msgid "The Show blocks block shows the blocks." msgstr "" -#: js/MediaBlocks.js:409 -msgid "The Erase Media block erases text and images." +#: js/blocks/ExtrasBlocks.js:274 +msgid "hide blocks" msgstr "" -#: js/MediaBlocks.js:439 -#.TRANS: play an audio recording -msgid "play back" +#: js/blocks/ExtrasBlocks.js:276 +msgid "The Hide blocks block hides the blocks." msgstr "" -#: js/MediaBlocks.js:487 -msgid "speak" +#: js/blocks/ExtrasBlocks.js:305 +#: js/blocks/ExtrasBlocks.js:338 +msgid "The Space block is used to add space between blocks." msgstr "" -#: js/MediaBlocks.js:495 -msgid "The Speak block outputs to the text-to-speech synthesizer" -msgstr "" +#: js/blocks/ExtrasBlocks.js:376 +msgid "wait" +msgstr "odota" -#: js/MediaBlocks.js:546 -msgid "camera" +#: js/blocks/ExtrasBlocks.js:379 +msgid "The Wait block pauses the program for a specified number of seconds." msgstr "" -#: js/MediaBlocks.js:551 -msgid "The Camera block connects a webcam to the Show block." +#: js/blocks/ExtrasBlocks.js:433 +#: plugins/facebook.rtp:30 +msgid "comment" msgstr "" -#: js/MediaBlocks.js:574 -msgid "video" +#: js/blocks/ExtrasBlocks.js:469 +msgid "print" msgstr "" -#: js/MediaBlocks.js:579 -msgid "The Video block selects video for use with the Show block." +#: js/blocks/ExtrasBlocks.js:476 +msgid "The Print block displays text at the top of the screen." msgstr "" -#: js/MediaBlocks.js:607 -msgid "The Open file block opens a file for use with the Show block." +#: js/blocks/ExtrasBlocks.js:582 +msgid "display grid" msgstr "" -#: js/MediaBlocks.js:645 -msgid "stop media" +#: js/blocks/ExtrasBlocks.js:587 +msgid "The Display Grid Block changes the grid type" msgstr "" -#: js/MediaBlocks.js:650 -msgid "The Stop media block stops audio or video playback." +#: js/blocks/ExtrasBlocks.js:689 +#: js/blocks/ExtrasBlocks.js:708 +#: js/blocks/ExtrasBlocks.js:731 +#: js/blocks/ExtrasBlocks.js:754 +#: js/blocks/ExtrasBlocks.js:772 +#: js/blocks/ExtrasBlocks.js:791 +#: js/blocks/ExtrasBlocks.js:810 +#: js/blocks/ExtrasBlocks.js:829 +msgid "unknown" msgstr "" -#: js/MediaBlocks.js:679 -#: js/PitchBlocks.js:1539 -#: js/phrasemaker.js:822 -#: js/musickeyboard.js:1654 -#.TRANS: a measure of frequency: one cycle per second -msgid "hertz" +#: js/blocks/FlowBlocks.js:41 +msgid "The Backward block runs code in reverse order (Musical retrograde)." msgstr "" -#: js/MediaBlocks.js:692 -msgid "duration (ms)" +#: js/blocks/FlowBlocks.js:48 +msgid "backward" msgstr "" -#: js/MediaBlocks.js:728 -#.TRANS: translate a note into hertz, e.g., A4 -> 440HZ -msgid "note to frequency" +#: js/blocks/FlowBlocks.js:124 +msgid "The Duplicate block will run each block multiple times." msgstr "" -#: js/MediaBlocks.js:736 -msgid "The To frequency block converts a pitch name and octave to Hertz." +#: js/blocks/FlowBlocks.js:136 +msgid "duplicate" msgstr "" -#: js/MediaBlocks.js:746 -#: js/PitchBlocks.js:656 -#: js/PitchBlocks.js:932 -#: js/PitchBlocks.js:1827 -#.TRANS: name2 is name as in name of pitch (JAPANESE ONLY) -msgid "name2" +#: js/blocks/FlowBlocks.js:334 +msgid "The Default block is used inside of a Switch to define the default action." msgstr "" -#: js/MediaBlocks.js:812 -msgid "The Avatar block is used to change the appearance of the mouse." +#: js/blocks/FlowBlocks.js:342 +msgid "default" msgstr "" -#: js/MediaBlocks.js:819 -msgid "The Avatar block is used to change the appearance of the turtle." +#: js/blocks/FlowBlocks.js:361 +#: js/blocks/FlowBlocks.js:418 +msgid "The Case Block must be used inside of a Switch Block." msgstr "" -#: js/MediaBlocks.js:831 -#: js/MediaBlocks.js:891 -#.TRANS: a media object -msgid "size" +#: js/blocks/FlowBlocks.js:389 +msgid "The Case block is used inside of a Switch to define matches." msgstr "" -#: js/MediaBlocks.js:831 -msgid "image" +#: js/blocks/FlowBlocks.js:397 +msgid "case" msgstr "" -#: js/MediaBlocks.js:880 -msgid "The Show block is used to display text or images on the canvas." +#: js/blocks/FlowBlocks.js:446 +msgid "The Switch block will run the code in the matching Case." msgstr "" -#: js/MediaBlocks.js:888 -#.TRANS: show1 is show as in display an image or text on the screen. -msgid "show1" +#: js/blocks/FlowBlocks.js:454 +msgid "switch" msgstr "" -#: js/MediaBlocks.js:891 -msgid "obj" +#: js/blocks/FlowBlocks.js:595 +msgid "The Stop block will stop a loop" msgstr "" -#: js/MediaBlocks.js:938 -msgid "The Media block is used to import an image." +#: js/blocks/FlowBlocks.js:597 +msgid "Forever, Repeat, While, or Until." msgstr "" -#: js/MediaBlocks.js:973 -msgid "The Text block holds a text string." +#: js/blocks/FlowBlocks.js:604 +#: js/widgets/timbre.js:417 +#: js/widgets/timbre.js:419 +#: js/widgets/musickeyboard.js:819 +#: js/widgets/musickeyboard.js:821 +#: js/widgets/phrasemaker.js:4202 +#: plugins/rodi.rtp:29 +#: plugins/rodi.rtp:73 +#: plugins/rodi.rtp:413 +msgid "stop" msgstr "" -#: js/ProgramBlocks.js:33 -msgid "The Load-heap-from-app block loads the heap from a web page." +#: js/blocks/FlowBlocks.js:653 +msgid "The Waitfor block will wait until the condition is true." msgstr "" -#: js/ProgramBlocks.js:44 -#.TRANS: load the heap contents from a URL -msgid "load heap from App" +#: js/blocks/FlowBlocks.js:661 +msgid "wait for" msgstr "" -#: js/ProgramBlocks.js:95 -msgid "Error parsing JSON data:" +#: js/blocks/FlowBlocks.js:732 +msgid "The Until block will repeat until the condition is true." msgstr "" -#: js/ProgramBlocks.js:100 -msgid "404: Page not found" +#: js/blocks/FlowBlocks.js:740 +msgid "until" msgstr "" -#: js/ProgramBlocks.js:133 -msgid "The Save-heap-to-app block saves the heap to a web page." +#: js/blocks/FlowBlocks.js:742 +#: js/blocks/FlowBlocks.js:822 +msgid "do2" msgstr "" -#: js/ProgramBlocks.js:144 -#.TRANS: save the heap contents to a URL -msgid "save heap to App" +#: js/blocks/FlowBlocks.js:812 +msgid "The While block will repeat while the condition is true." msgstr "" -#: js/ProgramBlocks.js:189 -msgid "Cannot find a valid heap for" +#: js/blocks/FlowBlocks.js:820 +msgid "while" msgstr "" -#: js/ProgramBlocks.js:206 -msgid "The Load-heap block loads the heap from a file." +#: js/blocks/FlowBlocks.js:903 +#: js/blocks/FlowBlocks.js:968 +#: js/blocks/FlowBlocks.js:979 +msgid "In this example if the mouse button is pressed a snare drum will play." msgstr "" -#: js/ProgramBlocks.js:217 -#.TRANS: load the heap from a file -msgid "load heap" -msgstr "" +#: js/blocks/FlowBlocks.js:925 +#: js/blocks/FlowBlocks.js:988 +msgid "if" +msgstr "jos" -#: js/ProgramBlocks.js:270 -msgid "The file you selected does not contain a valid heap." -msgstr "" +#: js/blocks/FlowBlocks.js:927 +#: js/blocks/FlowBlocks.js:990 +msgid "then" +msgstr "sitten" -#: js/ProgramBlocks.js:275 -msgid "The loadHeap block needs a loadFile block." -msgstr "" +#: js/blocks/FlowBlocks.js:927 +msgid "else" +msgstr "muuten" -#: js/ProgramBlocks.js:291 -msgid "The Set-heap block loads the heap." +#: js/blocks/FlowBlocks.js:1025 +msgid "The Forever block will repeat the contained blocks forever." msgstr "" -#: js/ProgramBlocks.js:299 -#: js/HeapBlocks.js:539 -#.TRANS: load the heap from a JSON encoding -msgid "set heap" -msgstr "" +#: js/blocks/FlowBlocks.js:1037 +msgid "forever" +msgstr "ikuisesti" -#: js/ProgramBlocks.js:340 -msgid "The block you selected does not contain a valid heap." +#: js/blocks/FlowBlocks.js:1073 +msgid "The Repeat block will repeat the contained blocks." msgstr "" -#: js/ProgramBlocks.js:343 -msgid "The Set heap block needs a heap." +#: js/blocks/FlowBlocks.js:1075 +msgid "In this example the note will be played 4 times." msgstr "" -#: js/ProgramBlocks.js:360 -msgid "The Load-dictionary block loads a dictionary from a file." -msgstr "" +#: js/blocks/FlowBlocks.js:1083 +msgid "repeat" +msgstr "toista" -#: js/ProgramBlocks.js:372 -#.TRANS: load a dictionary from a file -msgid "load dictionary" +#: js/blocks/FlowBlocks.js:1123 +msgid "duplicate factor" msgstr "" -#: js/ProgramBlocks.js:390 -#: js/ProgramBlocks.js:658 -#: js/ToneBlocks.js:1025 -msgid "file" +#: js/blocks/HeapBlocks.js:49 +msgid "The Heap block returns the heap." msgstr "" -#: js/ProgramBlocks.js:396 -#: js/ProgramBlocks.js:501 -#: js/ProgramBlocks.js:664 -#: js/DictBlocks.js:80 -#: js/DictBlocks.js:145 -#: js/DictBlocks.js:216 -#: js/DictBlocks.js:290 -msgid "My Dictionary" +#: js/blocks/HeapBlocks.js:133 +msgid "show heap" msgstr "" -#: js/ProgramBlocks.js:444 -msgid "The file you selected does not contain a valid dictionary." +#: js/blocks/HeapBlocks.js:181 +msgid "The Heap-length block returns the length of the heap." msgstr "" -#: js/ProgramBlocks.js:449 -msgid "The load dictionary block needs a load file block." +#: js/blocks/HeapBlocks.js:195 +msgid "heap length" msgstr "" -#: js/ProgramBlocks.js:466 -msgid "The Set-dictionary block loads a dictionary." +#: js/blocks/HeapBlocks.js:254 +msgid "The Heap-empty? block returns true if the heap is empty." msgstr "" -#: js/ProgramBlocks.js:477 -#.TRANS: load a dictionary from a JSON -msgid "set dictionary" +#: js/blocks/HeapBlocks.js:268 +#.TRANS: Is the heap empty? +msgid "heap empty?" msgstr "" -#: js/ProgramBlocks.js:546 -msgid "The block you selected does not contain a valid dictionary." +#: js/blocks/HeapBlocks.js:317 +msgid "The Empty-heap block empties the heap." msgstr "" -#: js/ProgramBlocks.js:550 -msgid "The set dictionary block needs a dictionary." +#: js/blocks/HeapBlocks.js:327 +#: js/blocks/HeapBlocks.js:647 +#.TRANS: empty the heap +msgid "empty heap" msgstr "" -#: js/ProgramBlocks.js:567 -msgid "The Save-heap block saves the heap to a file." +#: js/blocks/HeapBlocks.js:371 +msgid "The Reverse-heap block reverses the order of the heap." msgstr "" -#: js/ProgramBlocks.js:578 -#.TRANS: save the heap to a file -msgid "save heap" +#: js/blocks/HeapBlocks.js:384 +#.TRANS: reverse the order of the heap +msgid "reverse heap" msgstr "" -#: js/ProgramBlocks.js:629 -msgid "The Save-dictionary block saves a dictionary to a file." +#: js/blocks/HeapBlocks.js:428 +msgid "The Index-heap block returns a value in the heap at a specified location." msgstr "" -#: js/ProgramBlocks.js:640 -#.TRANS: save a dictionary to a file -msgid "save dictionary" +#: js/blocks/HeapBlocks.js:443 +#.TRANS: retrieve a value from the heap at index position in the heap +msgid "index heap" msgstr "" -#: js/ProgramBlocks.js:720 -msgid "The Open palette block opens a palette." +#: js/blocks/HeapBlocks.js:523 +msgid "The Set-heap entry block sets a value in he heap at the specified location." msgstr "" -#: js/ProgramBlocks.js:727 -msgid "open palette" +#: js/blocks/HeapBlocks.js:539 +#: js/blocks/ProgramBlocks.js:299 +#.TRANS: load the heap from a JSON encoding +msgid "set heap" msgstr "" -#: js/ProgramBlocks.js:785 -msgid "The Delete block block removes a block." +#: js/blocks/HeapBlocks.js:619 +msgid "The Pop block removes the value at the top of the heap." msgstr "" -#: js/ProgramBlocks.js:797 -#.TRANS: Move this block to the trash. -msgid "delete block" +#: js/blocks/HeapBlocks.js:633 +#.TRANS: pop a value off the top of the heap +msgid "pop" msgstr "" -#: js/ProgramBlocks.js:861 -msgid "The Move block block moves a block." +#: js/blocks/HeapBlocks.js:680 +msgid "The Push block adds a value to the top of the heap." msgstr "" -#: js/ProgramBlocks.js:869 -#.TRANS: Move the position of a block on the screen. -msgid "move block" +#: js/blocks/HeapBlocks.js:696 +#.TRANS: push a value onto the top of the heap +msgid "push" msgstr "" -#: js/ProgramBlocks.js:881 -#: js/ProgramBlocks.js:1048 -msgid "block number" +#: js/blocks/IntervalsBlocks.js:45 +msgid "set temperament" msgstr "" -#: js/ProgramBlocks.js:935 -#.TRANS: Run program beginning at this block. -msgid "run block" +#: js/blocks/IntervalsBlocks.js:63 +#: js/blocks/MediaBlocks.js:746 +#: js/blocks/PitchBlocks.js:657 +#: js/blocks/PitchBlocks.js:935 +#: js/blocks/PitchBlocks.js:974 +#: js/blocks/PitchBlocks.js:1007 +#: js/blocks/PitchBlocks.js:1194 +#: js/blocks/PitchBlocks.js:1717 +#: js/blocks/PitchBlocks.js:1758 +#: js/blocks/PitchBlocks.js:1866 +#: js/blocks/ToneBlocks.js:1025 +#: js/turtleactions/IntervalsActions.js:114 +#.TRANS: adjusts the shift up or down by one octave (twelve half-steps in the interval between two notes, one having twice or half the frequency in Hz of the other.) +msgid "octave" msgstr "" -#: js/ProgramBlocks.js:1025 -msgid "The Dock block block connections two blocks." +#: js/blocks/IntervalsBlocks.js:99 +msgid "The Temperament name block is used to select a tuning method." msgstr "" -#: js/ProgramBlocks.js:1036 -#.TRANS: We can connect a block to another block. -msgid "connect blocks" +#: js/blocks/IntervalsBlocks.js:161 +msgid "doubly" msgstr "" -#: js/ProgramBlocks.js:1048 -msgid "target block" +#: js/blocks/IntervalsBlocks.js:166 +msgid "The Doubly block will double the size of an interval." msgstr "" -#: js/ProgramBlocks.js:1048 -msgid "connection number" +#: js/blocks/IntervalsBlocks.js:262 +msgid "interval number" msgstr "" -#: js/ProgramBlocks.js:1140 -msgid "The Make block block creates a new block." +#: js/blocks/IntervalsBlocks.js:317 +msgid "current interval" msgstr "" -#: js/ProgramBlocks.js:1152 -#.TRANS: Create a new block -msgid "make block" +#: js/blocks/IntervalsBlocks.js:387 +#.TRANS: measure the distance between two pitches in semi-tones +msgid "semi-tone interval measure" msgstr "" -#: js/ProgramBlocks.js:1186 -#: js/ProgramBlocks.js:1227 -#: js/RhythmBlocks.js:1128 -#: js/PitchBlocks.js:972 -#: js/PitchBlocks.js:1005 -#: js/temperament.js:340 -#: js/temperament.js:362 -#: js/temperament.js:372 -#: js/temperament.js:484 -#: js/status.js:190 -#: plugins/rodi.rtp:192 -#.TRANS: a musical note consisting of pitch and duration -msgid "note" +#: js/blocks/IntervalsBlocks.js:454 +#: js/blocks/IntervalsBlocks.js:570 +msgid "You must use two pitch blocks when measuring an interval." msgstr "" -#: js/ProgramBlocks.js:1285 -msgid "Cannot find block" +#: js/blocks/IntervalsBlocks.js:496 +msgid "The Scalar interval block measures the distance between two notes in the current key and mode." msgstr "" -#: js/ProgramBlocks.js:1304 -#: js/ProgramBlocks.js:1313 -msgid "Warning: block argument type mismatch" +#: js/blocks/IntervalsBlocks.js:502 +#.TRANS: measure the distance between two pitches in steps of musical scale +msgid "scalar interval measure" msgstr "" -#: js/ProgramBlocks.js:1347 -msgid "The Open project block is used to open a project from a web page." +#: js/blocks/IntervalsBlocks.js:678 +msgid "In the figure, we add sol# to sol." msgstr "" -#: js/ProgramBlocks.js:1357 -msgid "open project" +#: js/blocks/IntervalsBlocks.js:684 +#: js/blocks/OrnamentBlocks.js:220 +#.TRANS: calculate a relative step between notes based on semi-tones +msgid "semi-tone interval" msgstr "" -#: js/ProgramBlocks.js:1410 -msgid "Please enter a valid URL." +#: js/blocks/IntervalsBlocks.js:733 +msgid "The output of the example is: do, mi, sol, sol, ti, mi" msgstr "" -#: js/DrumBlocks.js:59 -msgid "The Noise name block is used to select a noise synthesizer." +#: js/blocks/IntervalsBlocks.js:740 +#: js/blocks/WidgetBlocks.js:768 +msgid "arpeggio" msgstr "" -#: js/DrumBlocks.js:102 -msgid "The Drum name block is used to select a drum." +#: js/blocks/IntervalsBlocks.js:931 +msgid "The Chord block calculates common chords." msgstr "" -#: js/DrumBlocks.js:146 -msgid "The Effects name block is used to select a sound effect." +#: js/blocks/IntervalsBlocks.js:933 +msgid "In the figure, we generate a C-major chord." msgstr "" -#: js/DrumBlocks.js:163 -msgid "noise" +#: js/blocks/IntervalsBlocks.js:938 +msgid "chord" msgstr "" -#: js/DrumBlocks.js:177 -msgid "The Play noise block will generate white, pink, or brown noise." +#: js/blocks/IntervalsBlocks.js:990 +msgid "The Ratio Interval block calculates an interval based on a ratio." msgstr "" -#: js/DrumBlocks.js:191 -#: js/musicutils.js:752 -#: js/synthutils.js:47 -#.TRANS: white noise synthesizer -msgid "white noise" +#: js/blocks/IntervalsBlocks.js:995 +msgid "ratio interval" msgstr "" -#: js/DrumBlocks.js:326 -msgid "Replace every instance of a pitch with a drum sound." +#: js/blocks/IntervalsBlocks.js:1064 +msgid "In the figure, we add la to sol." msgstr "" -#: js/DrumBlocks.js:337 -#.TRANS: map a pitch to a drum sound -msgid "map pitch to drum" +#: js/blocks/IntervalsBlocks.js:1120 +#.TRANS: define a custom mode +msgid "define mode" msgstr "" -#: js/DrumBlocks.js:404 -msgid "In the example above, a kick drum sound will be played instead of sol." +#: js/blocks/IntervalsBlocks.js:1173 +msgid "movable Do" msgstr "" -#: js/DrumBlocks.js:416 -#.TRANS: set the current drum sound for playback -msgid "set drum" +#: js/blocks/IntervalsBlocks.js:1224 +#.TRANS: mode length is the number of notes in the mode, e.g., 7 for major and minor scales; 12 for chromatic scales +msgid "mode length" msgstr "" -#: js/DrumBlocks.js:460 -msgid "sound effect" +#: js/blocks/IntervalsBlocks.js:1233 +msgid "The Mode length block is the number of notes in the current scale." msgstr "" -#: js/DrumBlocks.js:498 -msgid "You can use multiple Drum blocks within a Note block." +#: js/blocks/IntervalsBlocks.js:1235 +msgid "Most Western scales have 7 notes." msgstr "" -#: js/RhythmBlocks.js:182 -#: js/RhythmBlocks.js:1086 -#: js/RhythmBlocks.js:1162 -msgid "Note value must be greater than 0." +#: js/blocks/IntervalsBlocks.js:1284 +#.TRANS: the mode in music is 'major', 'minor', etc. +msgid "current mode" msgstr "" -#: js/RhythmBlocks.js:215 -#: js/RhythmBlocks.js:278 -#: js/RhythmBlocks.js:350 -#.TRANS: swing is a rhythmic variation that emphasises the offbeat -msgid "swing" +#: js/blocks/IntervalsBlocks.js:1337 +#.TRANS: the key is a group of pitches with which a music composition is created +msgid "current key" msgstr "" -#: js/RhythmBlocks.js:355 -#.TRANS: the amount to shift to the offbeat note -msgid "swing value" +#: js/blocks/IntervalsBlocks.js:1389 +#: js/blocks/IntervalsBlocks.js:1434 +#.TRANS: set the key and mode, e.g. C Major +msgid "set key" msgstr "" -#: js/RhythmBlocks.js:419 -msgid "The Skip notes block will cause notes to be skipped." +#: js/blocks/IntervalsBlocks.js:1443 +#: js/blocks/IntervalsBlocks.js:1449 +msgid "The Set key block is used to set the key and mode," msgstr "" -#: js/RhythmBlocks.js:427 -#.TRANS: substitute rests on notes being skipped -msgid "skip notes" +#: js/blocks/IntervalsBlocks.js:1449 +msgid "eg C Major" msgstr "" -#: js/RhythmBlocks.js:489 -#.TRANS: speed up note duration by some factor, e.g. convert 1/4 to 1/8 notes by using a factor of 2 -msgid "multiply note value" +#: js/blocks/MediaBlocks.js:35 +#.TRANS: right side of the screen +msgid "right (screen)" msgstr "" -#: js/RhythmBlocks.js:542 -msgid "The Tie block works on pairs of notes, combining them into one note." +#: js/blocks/MediaBlocks.js:45 +#: js/blocks/MediaBlocks.js:56 +msgid "The Right block returns the position of the right of the canvas." msgstr "" -#: js/RhythmBlocks.js:550 -#.TRANS: tie notes together into one longer note -msgid "tie" +#: js/blocks/MediaBlocks.js:97 +#.TRANS: left side of the screen +msgid "left (screen)" msgstr "" -#: js/RhythmBlocks.js:591 -#: js/RhythmBlocks.js:671 -#.TRANS: a dotted note is played for 1.5x its value, e.g., 1/8. --> 3/16 -msgid "dot" +#: js/blocks/MediaBlocks.js:107 +#: js/blocks/MediaBlocks.js:118 +msgid "The Left block returns the position of the left of the canvas." msgstr "" -#: js/RhythmBlocks.js:619 -#: js/RhythmActions.js:221 -msgid "An argument of -1 results in a note value of 0." +#: js/blocks/MediaBlocks.js:158 +msgid "top (screen)" msgstr "" -#: js/RhythmBlocks.js:661 -msgid "The Dot block extends the duration of a note by 50%." +#: js/blocks/MediaBlocks.js:168 +#: js/blocks/MediaBlocks.js:179 +msgid "The Top block returns the position of the top of the canvas." msgstr "" -#: js/RhythmBlocks.js:663 -msgid "Eg a dotted quarter note will play for 3/8 (1/4 + 1/8) of a beat." +#: js/blocks/MediaBlocks.js:219 +msgid "bottom (screen)" msgstr "" -#: js/RhythmBlocks.js:765 -#.TRANS: Japanese only: note value block for drum -msgid "note value drum" +#: js/blocks/MediaBlocks.js:229 +#: js/blocks/MediaBlocks.js:240 +msgid "The Bottom block returns the position of the bottom of the canvas." msgstr "" -#: js/RhythmBlocks.js:829 -msgid "392 hertz" +#: js/blocks/MediaBlocks.js:282 +msgid "width" msgstr "" -#: js/RhythmBlocks.js:1119 -msgid "The Note block is a container for one or more Pitch blocks." +#: js/blocks/MediaBlocks.js:291 +msgid "The Width block returns the width of the canvas." msgstr "" -#: js/RhythmBlocks.js:1121 -msgid "The Note block specifies the duration (note value) of its contents." +#: js/blocks/MediaBlocks.js:325 +msgid "height" msgstr "" -#: js/RhythmBlocks.js:1130 -msgid "value2" +#: js/blocks/MediaBlocks.js:334 +msgid "The Height block returns the height of the canvas." msgstr "" -#: js/RhythmBlocks.js:1200 -msgid "define frequency" +#: js/blocks/MediaBlocks.js:369 +#.TRANS: stops playback of an audio recording +msgid "stop play" msgstr "" -#: js/RhythmBlocks.js:1218 -#: js/temperament.js:650 -#: js/temperament.js:1421 -msgid "octave space" +#: js/blocks/MediaBlocks.js:404 +#.TRANS: Erases the images and text +msgid "erase media" msgstr "" -#: js/NumberBlocks.js:28 -msgid "The Int block returns an integer." +#: js/blocks/MediaBlocks.js:409 +msgid "The Erase Media block erases text and images." msgstr "" -#: js/NumberBlocks.js:34 -msgid "int" +#: js/blocks/MediaBlocks.js:439 +#.TRANS: play an audio recording +msgid "play back" msgstr "" -#: js/NumberBlocks.js:73 -msgid "The Mod block returns the remainder from a division." +#: js/blocks/MediaBlocks.js:487 +msgid "speak" msgstr "" -#: js/NumberBlocks.js:79 -msgid "mod" -msgstr "mod" - -#: js/NumberBlocks.js:123 -msgid "The Power block calculates a power function." +#: js/blocks/MediaBlocks.js:495 +msgid "The Speak block outputs to the text-to-speech synthesizer" msgstr "" -#: js/NumberBlocks.js:178 -msgid "The Sqrt block returns the square root." +#: js/blocks/MediaBlocks.js:546 +msgid "camera" msgstr "" -#: js/NumberBlocks.js:184 -msgid "sqrt" +#: js/blocks/MediaBlocks.js:551 +msgid "The Camera block connects a webcam to the Show block." msgstr "" -#: js/NumberBlocks.js:230 -msgid "The Abs block returns the absolute value." +#: js/blocks/MediaBlocks.js:574 +msgid "video" msgstr "" -#: js/NumberBlocks.js:236 -msgid "abs" +#: js/blocks/MediaBlocks.js:579 +msgid "The Video block selects video for use with the Show block." msgstr "" -#: js/NumberBlocks.js:277 -msgid "The Distance block returns the distance between two points. For example, between the mouse and the center of the screen." +#: js/blocks/MediaBlocks.js:607 +msgid "The Open file block opens a file for use with the Show block." msgstr "" -#: js/NumberBlocks.js:283 -#: plugins/rodi.rtp:310 -msgid "distance" +#: js/blocks/MediaBlocks.js:645 +msgid "stop media" msgstr "" -#: js/NumberBlocks.js:343 -msgid "The Divide block is used to divide." +#: js/blocks/MediaBlocks.js:650 +msgid "The Stop media block stops audio or video playback." msgstr "" -#: js/NumberBlocks.js:411 -msgid "The Multiply block is used to multiply." +#: js/blocks/MediaBlocks.js:679 +#: js/blocks/PitchBlocks.js:1577 +#: js/widgets/musickeyboard.js:1936 +#: js/widgets/phrasemaker.js:1037 +#.TRANS: a measure of frequency: one cycle per second +msgid "hertz" msgstr "" -#: js/NumberBlocks.js:554 -msgid "The Minus block is used to subtract." +#: js/blocks/MediaBlocks.js:692 +#: js/blocks/WidgetBlocks.js:182 +#: js/widgets/temperament.js:506 +#: js/widgets/temperament.js:546 +#: js/widgets/temperament.js:610 +#: js/widgets/temperament.js:618 +#: js/widgets/temperament.js:1505 +#: js/widgets/timbre.js:1842 +msgid "frequency" msgstr "" -#: js/NumberBlocks.js:647 -msgid "The Plus block is used to add." +#: js/blocks/MediaBlocks.js:692 +msgid "duration (ms)" msgstr "" -#: js/NumberBlocks.js:773 -msgid "The One-of block returns one of two choices." +#: js/blocks/MediaBlocks.js:728 +#.TRANS: translate a note into hertz, e.g., A4 -> 440HZ +msgid "note to frequency" msgstr "" -#: js/NumberBlocks.js:780 -#: js/PitchBlocks.js:616 -msgid "one of" +#: js/blocks/MediaBlocks.js:736 +msgid "The To frequency block converts a pitch name and octave to Hertz." msgstr "" -#: js/NumberBlocks.js:782 -msgid "this" +#: js/blocks/MediaBlocks.js:746 +#: js/blocks/PitchBlocks.js:656 +#: js/blocks/PitchBlocks.js:934 +#: js/blocks/PitchBlocks.js:1866 +#.TRANS: name2 is name as in name of pitch (JAPANESE ONLY) +msgid "name2" msgstr "" -#: js/NumberBlocks.js:782 -msgid "that" +#: js/blocks/MediaBlocks.js:812 +msgid "The Avatar block is used to change the appearance of the mouse." msgstr "" -#: js/NumberBlocks.js:837 -msgid "The Random block returns a random number." +#: js/blocks/MediaBlocks.js:819 +msgid "The Avatar block is used to change the appearance of the turtle." msgstr "" -#: js/NumberBlocks.js:844 -msgid "random" -msgstr "sattumanvarainen" +#: js/blocks/MediaBlocks.js:831 +#: js/blocks/MediaBlocks.js:891 +#.TRANS: a media object +msgid "size" +msgstr "" -#: js/NumberBlocks.js:846 -msgid "min" -msgstr "min" +#: js/blocks/MediaBlocks.js:831 +msgid "image" +msgstr "" -#: js/NumberBlocks.js:846 -msgid "max" -msgstr "max" +#: js/blocks/MediaBlocks.js:880 +msgid "The Show block is used to display text or images on the canvas." +msgstr "" -#: js/NumberBlocks.js:910 -msgid "The Number block holds a number." +#: js/blocks/MediaBlocks.js:888 +#.TRANS: show1 is show as in display an image or text on the screen. +msgid "show1" msgstr "" -#: js/BoxesBlocks.js:53 -#: js/BoxesBlocks.js:59 -msgid "The Add-to block is used to add to the value stored in a box." +#: js/blocks/MediaBlocks.js:891 +msgid "obj" msgstr "" -#: js/BoxesBlocks.js:61 -msgid "It can also be used with other blocks such as Color and Pen size." +#: js/blocks/MediaBlocks.js:938 +msgid "The Media block is used to import an image." msgstr "" -#: js/BoxesBlocks.js:73 -msgid "add" +#: js/blocks/MediaBlocks.js:973 +msgid "The Text block holds a text string." msgstr "" -#: js/BoxesBlocks.js:75 -#: js/temperament.js:716 -msgid "to" +#: js/blocks/MeterBlocks.js:34 +#.TRANS: musical meter (time signature), e.g., 4:4 +msgid "current meter" msgstr "" -#: js/BoxesBlocks.js:75 -#: js/BoxesBlocks.js:595 -#: js/HeapBlocks.js:544 -msgid "value1" +#: js/blocks/MeterBlocks.js:85 +#.TRANS: number of beats per minute +msgid "beat factor" msgstr "" -#: js/BoxesBlocks.js:118 -msgid "Block does not support incrementing." +#: js/blocks/MeterBlocks.js:161 +msgid "The Beats per minute block returns the current beats per minute." msgstr "" -#: js/BoxesBlocks.js:152 -msgid "The Add-1-to block adds one to the value stored in a box." +#: js/blocks/MeterBlocks.js:169 +#: js/widgets/status.js:152 +#.TRANS: number of beats played per minute +msgid "beats per minute2" msgstr "" -#: js/BoxesBlocks.js:163 -msgid "add 1 to" +#: js/blocks/MeterBlocks.js:169 +#: js/blocks/MeterBlocks.js:1056 +#: js/blocks/MeterBlocks.js:1133 +#: js/blocks/MeterBlocks.js:1211 +#.TRANS: sets tempo by defining a beat and beats per minute +msgid "beats per minute" msgstr "" -#: js/BoxesBlocks.js:211 -msgid "The Subtract-1-from block subtracts one from the value stored in a box." +#: js/blocks/MeterBlocks.js:233 +#.TRANS: count of current musical measure in meter +msgid "measure count" msgstr "" -#: js/BoxesBlocks.js:222 -msgid "subtract 1 from" +#: js/blocks/MeterBlocks.js:241 +msgid "The Measure count block returns the current measure." msgstr "" -#: js/BoxesBlocks.js:270 -#: js/BoxesBlocks.js:387 -msgid "The Box block returns the value stored in a box." +#: js/blocks/MeterBlocks.js:290 +#.TRANS: count of current beat in the meter +msgid "beat count" msgstr "" -#: js/BoxesBlocks.js:500 -#: js/BoxesBlocks.js:576 -msgid "The Store in block will store a value in a box." +#: js/blocks/MeterBlocks.js:300 +#: js/blocks/MeterBlocks.js:311 +#: js/blocks/MeterBlocks.js:565 +#: js/blocks/MeterBlocks.js:576 +msgid "The Beat count block is the number of the current beat," msgstr "" -#: js/BoxesBlocks.js:652 -msgid "The Box2 block returns the value stored in Box2." +#: js/blocks/MeterBlocks.js:313 +#: js/blocks/MeterBlocks.js:578 +msgid "eg 1, 2, 3, or 4." msgstr "" -#: js/BoxesBlocks.js:703 -msgid "The Store in Box2 block is used to store a value in Box2." +#: js/blocks/MeterBlocks.js:368 +#.TRANS: count the number of notes +msgid "sum note values" msgstr "" -#: js/BoxesBlocks.js:715 -msgid "store in box2" +#: js/blocks/MeterBlocks.js:376 +#: js/blocks/MeterBlocks.js:440 +msgid "The Note counter block can be used to count the number of contained notes." msgstr "" -#: js/BoxesBlocks.js:761 -msgid "The Box1 block returns the value stored in Box1." +#: js/blocks/MeterBlocks.js:432 +#.TRANS: count the number of notes +msgid "note counter" msgstr "" -#: js/BoxesBlocks.js:812 -msgid "The Store in Box1 block is used to store a value in Box1." +#: js/blocks/MeterBlocks.js:496 +#.TRANS: number of whole notes that have been played +msgid "whole notes played" msgstr "" -#: js/BoxesBlocks.js:826 -msgid "store in box1" +#: js/blocks/MeterBlocks.js:505 +msgid "The Whole notes played block returns the total number of whole notes played." msgstr "" -#: js/HeapBlocks.js:49 -msgid "The Heap block returns the heap." +#: js/blocks/MeterBlocks.js:555 +#: js/turtleactions/DictActions.js:83 +#.TRANS: number of notes that have been played +msgid "notes played" msgstr "" -#: js/HeapBlocks.js:133 -msgid "show heap" +#: js/blocks/MeterBlocks.js:653 +msgid "The No clock block decouples the notes from the master clock." msgstr "" -#: js/HeapBlocks.js:181 -msgid "The Heap-length block returns the length of the heap." +#: js/blocks/MeterBlocks.js:661 +#.TRANS: don't lock notes to master clock +msgid "no clock" msgstr "" -#: js/HeapBlocks.js:195 -msgid "heap length" +#: js/blocks/MeterBlocks.js:700 +msgid "on weak beat do" msgstr "" -#: js/HeapBlocks.js:254 -msgid "The Heap-empty? block returns true if the heap is empty." +#: js/blocks/MeterBlocks.js:705 +msgid "The On-weak-beat block lets you specify actions to take on weak (off) beats." msgstr "" -#: js/HeapBlocks.js:268 -#.TRANS: Is the heap empty? -msgid "heap empty?" +#: js/blocks/MeterBlocks.js:750 +msgid "on strong beat" msgstr "" -#: js/HeapBlocks.js:317 -msgid "The Empty-heap block empties the heap." +#: js/blocks/MeterBlocks.js:758 +msgid "The On-strong-beat block lets you specify actions to take on specified beats." msgstr "" -#: js/HeapBlocks.js:327 -#: js/HeapBlocks.js:647 -#.TRANS: empty the heap -msgid "empty heap" +#: js/blocks/MeterBlocks.js:769 +msgid "beat" msgstr "" -#: js/HeapBlocks.js:371 -msgid "The Reverse-heap block reverses the order of the heap." +#: js/blocks/MeterBlocks.js:813 +msgid "on every beat do" msgstr "" -#: js/HeapBlocks.js:384 -#.TRANS: reverse the order of the heap -msgid "reverse heap" +#: js/blocks/MeterBlocks.js:821 +msgid "The On-every-beat block lets you specify actions to take on every beat." msgstr "" -#: js/HeapBlocks.js:428 -msgid "The Index-heap block returns a value in the heap at a specified location." +#: js/blocks/MeterBlocks.js:874 +msgid "on every note do" msgstr "" -#: js/HeapBlocks.js:443 -#.TRANS: retrieve a value from the heap at index position in the heap -msgid "index heap" +#: js/blocks/MeterBlocks.js:882 +msgid "The On-every-note block lets you specify actions to take on every note." msgstr "" -#: js/HeapBlocks.js:523 -msgid "The Set-heap entry block sets a value in he heap at the specified location." +#: js/blocks/MeterBlocks.js:928 +#: js/blocks/MeterBlocks.js:999 +#.TRANS: sets tempo by defining a beat and beats per minute +msgid "master beats per minute" msgstr "" -#: js/HeapBlocks.js:619 -msgid "The Pop block removes the value at the top of the heap." +#: js/blocks/MeterBlocks.js:952 +#: js/blocks/MeterBlocks.js:1078 +#: js/blocks/MeterBlocks.js:1135 +msgid "bpm" msgstr "" -#: js/HeapBlocks.js:633 -#.TRANS: pop a value off the top of the heap -msgid "pop" +#: js/blocks/MeterBlocks.js:952 +#: js/blocks/MeterBlocks.js:1078 +#: js/blocks/MeterBlocks.js:1135 +msgid "beat value" msgstr "" -#: js/HeapBlocks.js:680 -msgid "The Push block adds a value to the top of the heap." +#: js/blocks/MeterBlocks.js:1024 +#: js/blocks/MeterBlocks.js:1167 +#: js/blocks/MeterBlocks.js:1241 +msgid "Beats per minute must be > 30." msgstr "" -#: js/HeapBlocks.js:696 -#.TRANS: push a value onto the top of the heap -msgid "push" +#: js/blocks/MeterBlocks.js:1027 +#: js/blocks/MeterBlocks.js:1170 +#: js/blocks/MeterBlocks.js:1244 +msgid "Maximum beats per minute is 1000." msgstr "" -#: js/FlowBlocks.js:41 -msgid "The Backward block runs code in reverse order (Musical retrograde)." +#: js/blocks/MeterBlocks.js:1068 +msgid "The Beats per minute block sets the number of 1/4 notes per minute." msgstr "" -#: js/FlowBlocks.js:48 -msgid "backward" +#: js/blocks/MeterBlocks.js:1279 +#.TRANS: anacrusis +msgid "pickup" msgstr "" -#: js/FlowBlocks.js:124 -msgid "The Duplicate block will run each block multiple times." +#: js/blocks/MeterBlocks.js:1367 +msgid "number of beats" msgstr "" -#: js/FlowBlocks.js:136 -msgid "duplicate" +#: js/blocks/NumberBlocks.js:28 +msgid "The Int block returns an integer." msgstr "" -#: js/FlowBlocks.js:334 -msgid "The Default block is used inside of a Switch to define the default action." +#: js/blocks/NumberBlocks.js:34 +msgid "int" msgstr "" -#: js/FlowBlocks.js:342 -msgid "default" +#: js/blocks/NumberBlocks.js:73 +msgid "The Mod block returns the remainder from a division." msgstr "" -#: js/FlowBlocks.js:361 -#: js/FlowBlocks.js:418 -msgid "The Case Block must be used inside of a Switch Block." +#: js/blocks/NumberBlocks.js:79 +msgid "mod" +msgstr "mod" + +#: js/blocks/NumberBlocks.js:141 +msgid "The Power block calculates a power function." msgstr "" -#: js/FlowBlocks.js:389 -msgid "The Case block is used inside of a Switch to define matches." +#: js/blocks/NumberBlocks.js:196 +msgid "The Sqrt block returns the square root." msgstr "" -#: js/FlowBlocks.js:397 -msgid "case" +#: js/blocks/NumberBlocks.js:202 +msgid "sqrt" msgstr "" -#: js/FlowBlocks.js:446 -msgid "The Switch block will run the code in the matching Case." +#: js/blocks/NumberBlocks.js:248 +msgid "The Abs block returns the absolute value." msgstr "" -#: js/FlowBlocks.js:454 -msgid "switch" +#: js/blocks/NumberBlocks.js:254 +msgid "abs" msgstr "" -#: js/FlowBlocks.js:595 -msgid "The Stop block will stop a loop" +#: js/blocks/NumberBlocks.js:295 +msgid "The Distance block returns the distance between two points. For example, between the mouse and the center of the screen." msgstr "" -#: js/FlowBlocks.js:597 -msgid "Forever, Repeat, While, or Until." +#: js/blocks/NumberBlocks.js:301 +#: plugins/rodi.rtp:310 +msgid "distance" msgstr "" -#: js/FlowBlocks.js:604 -#: js/phrasemaker.js:3799 -#: js/musickeyboard.js:629 -#: js/musickeyboard.js:631 -#: js/timbre.js:417 -#: js/timbre.js:419 -#: plugins/rodi.rtp:29 -#: plugins/rodi.rtp:73 -#: plugins/rodi.rtp:413 -msgid "stop" +#: js/blocks/NumberBlocks.js:361 +msgid "The Divide block is used to divide." msgstr "" -#: js/FlowBlocks.js:653 -msgid "The Waitfor block will wait until the condition is true." +#: js/blocks/NumberBlocks.js:441 +msgid "The Multiply block is used to multiply." msgstr "" -#: js/FlowBlocks.js:661 -msgid "wait for" +#: js/blocks/NumberBlocks.js:612 +msgid "The Minus block is used to subtract." msgstr "" -#: js/FlowBlocks.js:732 -msgid "The Until block will repeat until the condition is true." +#: js/blocks/NumberBlocks.js:723 +msgid "The Plus block is used to add." msgstr "" -#: js/FlowBlocks.js:740 -msgid "until" +#: js/blocks/NumberBlocks.js:849 +msgid "The One-of block returns one of two choices." msgstr "" -#: js/FlowBlocks.js:742 -#: js/FlowBlocks.js:822 -msgid "do2" +#: js/blocks/NumberBlocks.js:856 +#: js/blocks/PitchBlocks.js:616 +msgid "one of" msgstr "" -#: js/FlowBlocks.js:812 -msgid "The While block will repeat while the condition is true." +#: js/blocks/NumberBlocks.js:858 +msgid "this" msgstr "" -#: js/FlowBlocks.js:820 -msgid "while" +#: js/blocks/NumberBlocks.js:858 +msgid "that" msgstr "" -#: js/FlowBlocks.js:903 -#: js/FlowBlocks.js:968 -#: js/FlowBlocks.js:979 -msgid "In this example if the mouse button is pressed a snare drum will play." +#: js/blocks/NumberBlocks.js:913 +msgid "The Random block returns a random number." msgstr "" -#: js/FlowBlocks.js:925 -#: js/FlowBlocks.js:988 -msgid "if" -msgstr "jos" +#: js/blocks/NumberBlocks.js:920 +msgid "random" +msgstr "sattumanvarainen" -#: js/FlowBlocks.js:927 -#: js/FlowBlocks.js:990 -msgid "then" -msgstr "sitten" +#: js/blocks/NumberBlocks.js:922 +msgid "min" +msgstr "min" -#: js/FlowBlocks.js:927 -msgid "else" -msgstr "muuten" +#: js/blocks/NumberBlocks.js:922 +msgid "max" +msgstr "max" -#: js/FlowBlocks.js:1025 -msgid "The Forever block will repeat the contained blocks forever." +#: js/blocks/NumberBlocks.js:986 +msgid "The Number block holds a number." msgstr "" -#: js/FlowBlocks.js:1037 -msgid "forever" -msgstr "ikuisesti" - -#: js/FlowBlocks.js:1073 -msgid "The Repeat block will repeat the contained blocks." +#: js/blocks/OrnamentBlocks.js:32 +msgid "staccato factor" msgstr "" -#: js/FlowBlocks.js:1075 -msgid "In this example the note will be played 4 times." +#: js/blocks/OrnamentBlocks.js:108 +msgid "slur factor" msgstr "" -#: js/FlowBlocks.js:1083 -msgid "repeat" -msgstr "toista" - -#: js/FlowBlocks.js:1123 -msgid "duplicate factor" +#: js/blocks/OrnamentBlocks.js:217 +#: js/blocks/OrnamentBlocks.js:309 +#.TRANS: the neighbor refers to a neighboring note, e.g., D is a neighbor of C +msgid "neighbor" msgstr "" -#: js/PitchBlocks.js:39 -#: js/musicutils.js:722 -#: js/musicutils.js:1117 -#: js/synthutils.js:112 -#.TRANS: square wave -msgid "square" +#: js/blocks/OrnamentBlocks.js:293 +msgid "The Neighbor block rapidly switches between neighboring pitches." msgstr "" -#: js/PitchBlocks.js:62 -#: js/ToneBlocks.js:39 -#: js/musicutils.js:723 -#: js/musicutils.js:1118 -#: js/synthutils.js:116 -#.TRANS: triangle wave -msgid "triangle" +#: js/blocks/OrnamentBlocks.js:364 +msgid "glide" msgstr "" -#: js/PitchBlocks.js:85 -#: js/musicutils.js:721 -#: js/musicutils.js:1116 -#: js/synthutils.js:110 -#.TRANS: sine wave -msgid "sine" +#: js/blocks/OrnamentBlocks.js:479 +#: js/blocks/OrnamentBlocks.js:643 +msgid "slur" msgstr "" -#: js/PitchBlocks.js:108 -#: js/musicutils.js:724 -#: js/musicutils.js:1119 -#: js/synthutils.js:114 -#.TRANS: sawtooth wave -msgid "sawtooth" +#: js/blocks/OrnamentBlocks.js:558 +#: js/blocks/OrnamentBlocks.js:710 +#.TRANS: play each note sharply detached from the others +msgid "staccato" msgstr "" -#: js/PitchBlocks.js:141 -#.TRANS: musical transposition (adjustment of pitch up or down) -msgid "transposition" +#: js/blocks/RhythmBlocks.js:182 +#: js/blocks/RhythmBlocks.js:1086 +#: js/blocks/RhythmBlocks.js:1162 +msgid "Note value must be greater than 0." msgstr "" -#: js/PitchBlocks.js:168 -#.TRANS: step down one note in current musical scale -msgid "scalar step down" +#: js/blocks/RhythmBlocks.js:215 +#: js/blocks/RhythmBlocks.js:278 +#: js/blocks/RhythmBlocks.js:350 +#.TRANS: swing is a rhythmic variation that emphasises the offbeat +msgid "swing" msgstr "" -#: js/PitchBlocks.js:172 -msgid "The Scalar step down block returns the number of semi-tones down to the previous note in the current key and mode." +#: js/blocks/RhythmBlocks.js:355 +#.TRANS: the amount to shift to the offbeat note +msgid "swing value" msgstr "" -#: js/PitchBlocks.js:190 -#.TRANS: step up one note in current musical scale -msgid "scalar step up" +#: js/blocks/RhythmBlocks.js:419 +msgid "The Skip notes block will cause notes to be skipped." msgstr "" -#: js/PitchBlocks.js:194 -msgid "The Scalar step up block returns the number of semi-tones up to the next note in the current key and mode." +#: js/blocks/RhythmBlocks.js:427 +#.TRANS: substitute rests on notes being skipped +msgid "skip notes" msgstr "" -#: js/PitchBlocks.js:212 -#.TRANS: the change measured in half-steps between the current pitch and the previous pitch -msgid "change in pitch" +#: js/blocks/RhythmBlocks.js:489 +#.TRANS: speed up note duration by some factor, e.g. convert 1/4 to 1/8 notes by using a factor of 2 +msgid "multiply note value" msgstr "" -#: js/PitchBlocks.js:216 -msgid "The Change in pitch block is the difference (in half steps) between the current pitch being played and the previous pitch played." +#: js/blocks/RhythmBlocks.js:542 +msgid "The Tie block works on pairs of notes, combining them into one note." msgstr "" -#: js/PitchBlocks.js:243 -#.TRANS: the change measured in scale-steps between the current pitch and the previous pitch -msgid "scalar change in pitch" +#: js/blocks/RhythmBlocks.js:550 +#.TRANS: tie notes together into one longer note +msgid "tie" msgstr "" -#: js/PitchBlocks.js:250 -#: js/PitchBlocks.js:432 -#: js/PitchBlocks.js:1629 -#: js/DictActions.js:89 -#: js/temperament.js:477 -#: js/temperament.js:481 -#: js/temperament.js:714 -#.TRANS: convert current note to piano key (1-88) -#.TRANS: a mapping of pitch to the 88 piano keys -msgid "pitch number" +#: js/blocks/RhythmBlocks.js:591 +#: js/blocks/RhythmBlocks.js:671 +#.TRANS: a dotted note is played for 1.5x its value, e.g., 1/8. --> 3/16 +msgid "dot" msgstr "" -#: js/PitchBlocks.js:256 -msgid "The Pitch number block is the value of the pitch of the note currently being played." +#: js/blocks/RhythmBlocks.js:619 +#: js/turtleactions/RhythmActions.js:221 +msgid "An argument of -1 results in a note value of 0." msgstr "" -#: js/PitchBlocks.js:329 -#: js/PitchBlocks.js:433 -#.TRANS: the current pitch expressed in Hertz -msgid "pitch in hertz" +#: js/blocks/RhythmBlocks.js:661 +msgid "The Dot block extends the duration of a note by 50%." msgstr "" -#: js/PitchBlocks.js:334 -msgid "The Pitch in Hertz block is the value in Hertz of the pitch of the note currently being played." +#: js/blocks/RhythmBlocks.js:663 +msgid "Eg a dotted quarter note will play for 3/8 (1/4 + 1/8) of a beat." msgstr "" -#: js/PitchBlocks.js:367 -#: js/DictActions.js:87 -msgid "current pitch" +#: js/blocks/RhythmBlocks.js:765 +#.TRANS: Japanese only: note value block for drum +msgid "note value drum" msgstr "" -#: js/PitchBlocks.js:373 -msgid "The Current Pitch block is used with the Pitch Converter block. In the example above, current pitch, sol 4, is displayed as 392 hertz." +#: js/blocks/RhythmBlocks.js:829 +msgid "392 hertz" msgstr "" -#: js/PitchBlocks.js:410 -msgid "This block converts the pitch value of the last note played into different formats such as hertz, letter name, pitch number, et al." +#: js/blocks/RhythmBlocks.js:1119 +msgid "The Note block is a container for one or more Pitch blocks." msgstr "" -#: js/PitchBlocks.js:434 -msgid "alphabet" +#: js/blocks/RhythmBlocks.js:1121 +msgid "The Note block specifies the duration (note value) of its contents." msgstr "" -#: js/PitchBlocks.js:436 -#.TRANS: Translate as "alphabet class" -msgid "letter class" +#: js/blocks/RhythmBlocks.js:1128 +#: js/blocks/PitchBlocks.js:974 +#: js/blocks/PitchBlocks.js:1007 +#: js/blocks/ProgramBlocks.js:1186 +#: js/blocks/ProgramBlocks.js:1227 +#: js/widgets/status.js:190 +#: js/widgets/temperament.js:464 +#: js/widgets/temperament.js:486 +#: js/widgets/temperament.js:496 +#: js/widgets/temperament.js:617 +#: plugins/rodi.rtp:192 +#.TRANS: a musical note consisting of pitch and duration +msgid "note" msgstr "" -#: js/PitchBlocks.js:437 -msgid "solfege class" +#: js/blocks/RhythmBlocks.js:1130 +msgid "value2" msgstr "" -#: js/PitchBlocks.js:438 -msgid "staff y" +#: js/blocks/RhythmBlocks.js:1200 +msgid "define frequency" msgstr "" -#: js/PitchBlocks.js:439 -msgid "solfege syllable" +#: js/blocks/RhythmBlocks.js:1218 +#: js/widgets/temperament.js:787 +#: js/widgets/temperament.js:1587 +msgid "octave space" msgstr "" -#: js/PitchBlocks.js:440 -msgid "pitch class" +#: js/blocks/SensorsBlocks.js:36 +msgid "The Input block prompts for keyboard input." msgstr "" -#: js/PitchBlocks.js:441 -msgid "scalar class" +#: js/blocks/SensorsBlocks.js:46 +msgid "input" msgstr "" -#: js/PitchBlocks.js:443 -msgid "nth degree" +#: js/blocks/SensorsBlocks.js:64 +msgid "Input a value" msgstr "" -#: js/PitchBlocks.js:444 -msgid "pitch to shade" +#: js/blocks/SensorsBlocks.js:126 +msgid "input value" msgstr "" -#: js/PitchBlocks.js:445 -msgid "pitch to color" +#: js/blocks/SensorsBlocks.js:131 +msgid "The Input-value block stores the input." msgstr "" -#: js/PitchBlocks.js:629 -#: js/musickeyboard.js:565 -#.TRANS: MIDI is a technical standard for electronic music -msgid "MIDI" +#: js/blocks/SensorsBlocks.js:238 +msgid "loudness" msgstr "" -#: js/PitchBlocks.js:642 -#.TRANS: set an offset associated with the numeric piano keyboard mapping -msgid "set pitch number offset" +#: js/blocks/SensorsBlocks.js:245 +msgid "The Loudness block returns the volume detected by the microphone." msgstr "" -#: js/PitchBlocks.js:645 -msgid "The Set pitch number offset block is used to set the offset for mapping pitch numbers to pitch and octave." +#: js/blocks/SensorsBlocks.js:300 +msgid "click" msgstr "" -#: js/PitchBlocks.js:679 -#.TRANS: convert piano key number (1-88) to pitch -msgid "number to pitch" +#: js/blocks/SensorsBlocks.js:306 +msgid "The Click block triggers an event if a mouse has been clicked." msgstr "" -#: js/PitchBlocks.js:682 -msgid "The Number to pitch block will convert a pitch number to a pich name." +#: js/blocks/SensorsBlocks.js:313 +msgid "The Click block triggers an event if a turtle has been clicked." msgstr "" -#: js/PitchBlocks.js:715 -#.TRANS: convert piano key number (1-88) to octave -msgid "number to octave" +#: js/blocks/SensorsBlocks.js:342 +msgid "cursor over" msgstr "" -#: js/PitchBlocks.js:717 -msgid "The Number to octave block will convert a pitch number to an octave." +#: js/blocks/SensorsBlocks.js:387 +msgid "cursor out" msgstr "" -#: js/PitchBlocks.js:726 -msgid "y to pitch" +#: js/blocks/SensorsBlocks.js:433 +msgid "cursor button down" msgstr "" -#: js/PitchBlocks.js:729 -msgid "Y to pitch block will convert a staff y position to corresponding pitch notation." +#: js/blocks/SensorsBlocks.js:477 +msgid "cursor button up" msgstr "" -#: js/PitchBlocks.js:841 -msgid "accidental selector" +#: js/blocks/SensorsBlocks.js:521 +#: js/blocks/PenBlocks.js:48 +#: plugins/rodi.rtp:219 +msgid "blue" msgstr "" -#: js/PitchBlocks.js:844 -msgid "The Accidental selector block is used to choose between double-sharp, sharp, natural, flat, and double-flat." +#: js/blocks/SensorsBlocks.js:577 +#: js/blocks/PenBlocks.js:64 +#: plugins/rodi.rtp:218 +msgid "green" msgstr "" -#: js/PitchBlocks.js:858 -msgid "Pitch can be specified in terms of ni dha pa ma ga re sa." +#: js/blocks/SensorsBlocks.js:633 +#: js/blocks/PenBlocks.js:112 +#: plugins/rodi.rtp:217 +msgid "red" msgstr "" -#: js/PitchBlocks.js:872 -msgid "Pitch can be specified in terms of C D E F G A B." +#: js/blocks/SensorsBlocks.js:638 +msgid "The Get red block returns the red component of the pixel under the mouse." msgstr "" -#: js/PitchBlocks.js:883 -msgid "solfege" +#: js/blocks/SensorsBlocks.js:644 +msgid "The Get red block returns the red component of the pixel under the turtle." msgstr "" -#: js/PitchBlocks.js:886 -msgid "Pitch can be specified in terms of do re mi fa sol la ti." +#: js/blocks/SensorsBlocks.js:685 +#: plugins/rodi.rtp:216 +msgid "pixel color" msgstr "" -#: js/PitchBlocks.js:920 -msgid "The Invert block rotates any contained notes around a target note." +#: js/blocks/SensorsBlocks.js:690 +msgid "The Get pixel block returns the color of the pixel under the mouse." msgstr "" -#: js/PitchBlocks.js:927 -#.TRANS: pitch inversion rotates a pitch around another pitch -msgid "invert" +#: js/blocks/SensorsBlocks.js:696 +msgid "The Get pixel block returns the color of the pixel under the turtle." msgstr "" -#: js/PitchBlocks.js:929 -#: js/PitchBlocks.js:935 -#: js/PitchActions.js:727 -#: js/musicutils.js:726 -#: js/musicutils.js:902 -#.TRANS: invert based on even or odd number or musical scale -#.TRANS: even numbers -msgid "even" +#: js/blocks/SensorsBlocks.js:758 +msgid "time" msgstr "" -#: js/PitchBlocks.js:935 -#: js/PitchActions.js:729 -#: js/musicutils.js:728 -#: js/musicutils.js:903 -#.TRANS: odd numbers -msgid "odd" +#: js/blocks/SensorsBlocks.js:804 +msgid "cursor y" msgstr "" -#: js/PitchBlocks.js:935 -#: js/PitchActions.js:731 -#: js/musicutils.js:729 -#: js/musicutils.js:904 -msgid "scalar" +#: js/blocks/SensorsBlocks.js:809 +msgid "The Cursor Y block returns the vertical position of the mouse." msgstr "" -#: js/PitchBlocks.js:966 -#.TRANS: pitch inversion rotates a pitch around another pitch (odd number) -msgid "invert (odd)" +#: js/blocks/SensorsBlocks.js:845 +msgid "cursor x" msgstr "" -#: js/PitchBlocks.js:999 -#.TRANS: pitch inversion rotates a pitch around another pitch (even number) -msgid "invert (even)" +#: js/blocks/SensorsBlocks.js:850 +msgid "The Cursor X block returns the horizontal position of the mouse." msgstr "" -#: js/PitchBlocks.js:1020 -#.TRANS: register is the octave of the current pitch -msgid "register" +#: js/blocks/SensorsBlocks.js:886 +msgid "mouse button" msgstr "" -#: js/PitchBlocks.js:1024 -msgid "The Register block provides an easy way to modify the register (octave) of the notes that follow it." +#: js/blocks/SensorsBlocks.js:888 +msgid "The Mouse-button block returns True if the mouse button is pressed." msgstr "" -#: js/PitchBlocks.js:1074 -msgid "The Semi-tone transposition block will shift the pitches contained inside Note blocks up (or down) by half steps." +#: js/blocks/SensorsBlocks.js:934 +msgid "to ASCII" msgstr "" -#: js/PitchBlocks.js:1076 -msgid "In the example shown above, sol is shifted up to sol#." +#: js/blocks/SensorsBlocks.js:938 +msgid "The To ASCII block converts numbers to letters." msgstr "" -#: js/PitchBlocks.js:1082 -#.TRANS: adjust the amount of shift (up or down) of a pitch -msgid "semi-tone transpose" +#: js/blocks/SensorsBlocks.js:1005 +msgid "The Keyboard block returns computer keyboard input." msgstr "" -#: js/PitchBlocks.js:1115 -msgid "The Transpose by Ratio block will shift the pitches contained inside Note blocks up (or down) by a ratio" +#: js/blocks/RhythmBlockPaletteBlocks.js:50 +#: js/blocks/RhythmBlockPaletteBlocks.js:233 +#.TRANS: rhythm block +#.TRANS: translate "rhythm1" as rhythm +msgid "rhythm1" msgstr "" -#: js/PitchBlocks.js:1121 -#.TRANS: adjust the amount of shift (up or down) of a pitch -msgid "transpose by ratio" +#: js/blocks/RhythmBlockPaletteBlocks.js:70 +#: js/blocks/RhythmBlockPaletteBlocks.js:252 +#: js/blocks/RhythmBlockPaletteBlocks.js:485 +#: js/blocks/RhythmBlockPaletteBlocks.js:554 +#: js/blocks/RhythmBlockPaletteBlocks.js:875 +msgid "number of notes" msgstr "" -#: js/PitchBlocks.js:1204 -#.TRANS: down sixth means the note is five scale degrees below current note -msgid "down sixth" +#: js/blocks/RhythmBlockPaletteBlocks.js:126 +msgid "polyphonic rhythm" msgstr "" -#: js/PitchBlocks.js:1223 -#.TRANS: down third means the note is two scale degrees below current note -msgid "down third" +#: js/blocks/RhythmBlockPaletteBlocks.js:219 +msgid "The Rhythm block is used to generate rhythm patterns." msgstr "" -#: js/PitchBlocks.js:1242 -#.TRANS: seventh means the note is the six scale degrees above current note -msgid "seventh" +#: js/blocks/RhythmBlockPaletteBlocks.js:280 +msgid "1/64 note" msgstr "" -#: js/PitchBlocks.js:1261 -#.TRANS: sixth means the note is the five scale degrees above current note -msgid "sixth" +#: js/blocks/RhythmBlockPaletteBlocks.js:304 +msgid "1/32 note" msgstr "" -#: js/PitchBlocks.js:1280 -#.TRANS: fifth means the note is the four scale degrees above current note -msgid "fifth" +#: js/blocks/RhythmBlockPaletteBlocks.js:332 +msgid "1/16 note" msgstr "" -#: js/PitchBlocks.js:1300 -#.TRANS: fourth means the note is three scale degrees above current note -msgid "fourth" +#: js/blocks/RhythmBlockPaletteBlocks.js:360 +msgid "eighth note" msgstr "" -#: js/PitchBlocks.js:1319 -#.TRANS: third means the note is two scale degrees above current note -msgid "third" +#: js/blocks/RhythmBlockPaletteBlocks.js:388 +msgid "quarter note" msgstr "" -#: js/PitchBlocks.js:1338 -#.TRANS: second means the note is one scale degree above current note -msgid "second" +#: js/blocks/RhythmBlockPaletteBlocks.js:416 +msgid "half note" msgstr "" -#: js/PitchBlocks.js:1379 -msgid "The Scalar transposition block will shift the pitches contained inside Note blocks up (or down) the scale." +#: js/blocks/RhythmBlockPaletteBlocks.js:444 +msgid "whole note" msgstr "" -#: js/PitchBlocks.js:1381 -msgid "In the example shown above, sol is shifted up to la." +#: js/blocks/RhythmBlockPaletteBlocks.js:482 +#: js/blocks/RhythmBlockPaletteBlocks.js:551 +#: js/blocks/RhythmBlockPaletteBlocks.js:602 +#.TRANS: A tuplet is a note value divided into irregular time values. +msgid "tuplet" msgstr "" -#: js/PitchBlocks.js:1388 -#.TRANS: adjust the amount of shift (up or down) of a pitch by musical scale (scalar) steps -msgid "scalar transpose" +#: js/blocks/RhythmBlockPaletteBlocks.js:768 +msgid "septuplet" msgstr "" -#: js/PitchBlocks.js:1423 -msgid "The Accidental block is used to create sharps and flats" +#: js/blocks/RhythmBlockPaletteBlocks.js:796 +msgid "quintuplet" msgstr "" -#: js/PitchBlocks.js:1430 -#.TRANS: An accidental is a modification to a pitch, e.g., sharp or flat. -msgid "accidental override" +#: js/blocks/RhythmBlockPaletteBlocks.js:824 +msgid "triplet" msgstr "" -#: js/PitchBlocks.js:1543 -msgid "The Hertz block (in combination with a Number block) will play a sound at the specified frequency." +#: js/blocks/RhythmBlockPaletteBlocks.js:851 +msgid "simple tuplet" msgstr "" -#: js/PitchBlocks.js:1633 -msgid "The Pitch Number block will play a pitch associated by its number, e.g. 0 for C and 7 for G." +#: js/blocks/RhythmBlockPaletteBlocks.js:861 +msgid "Tuplets are a collection of notes that get scaled to a specific duration." msgstr "" -#: js/PitchBlocks.js:1665 -#: js/PitchBlocks.js:1707 -#.TRANS: a numeric mapping of the notes in an octave based on the musical mode -#.TRANS: a numeric mapping of the notes in an octave based on the musical mode -msgid "nth modal pitch" +#: js/blocks/DrumBlocks.js:59 +msgid "The Noise name block is used to select a noise synthesizer." msgstr "" -#: js/PitchBlocks.js:1668 -msgid "n^th Modal Pitch takes the pattern of pitches in semitones for a mode and makes each point a degree of the mode," +#: js/blocks/DrumBlocks.js:102 +msgid "The Drum name block is used to select a drum." msgstr "" -#: js/PitchBlocks.js:1670 -msgid "starting from 1 and regardless of tonal framework (i.e. not always 8 notes in the octave)" +#: js/blocks/DrumBlocks.js:146 +msgid "The Effects name block is used to select a sound effect." msgstr "" -#: js/PitchBlocks.js:1711 -msgid "N^th Modal Pitch takes a number as an input as the n^th degree for the given mode. 0 is the first position, 1 is the second, -1 is the note before the first etc." +#: js/blocks/DrumBlocks.js:163 +msgid "noise" msgstr "" -#: js/PitchBlocks.js:1713 -msgid "The pitches change according to the mode specified without any need for respellings." +#: js/blocks/DrumBlocks.js:177 +msgid "The Play noise block will generate white, pink, or brown noise." msgstr "" -#: js/PitchBlocks.js:1752 -msgid "Scale Degree is a common convention in music. Scale Degree offers seven possible positions in the scale (1-7) and can be modified via accidentals." +#: js/blocks/DrumBlocks.js:317 +msgid "Replace every instance of a pitch with a drum sound." msgstr "" -#: js/PitchBlocks.js:1754 -msgid "Scale Degree 1 is always the first pitch in a given scale, regardless of octave." +#: js/blocks/DrumBlocks.js:328 +#.TRANS: map a pitch to a drum sound +msgid "map pitch to drum" msgstr "" -#: js/PitchBlocks.js:1776 -#.TRANS: step some number of notes in current musical scale -msgid "scalar step" +#: js/blocks/DrumBlocks.js:395 +msgid "In the example above, a kick drum sound will be played instead of sol." msgstr "" -#: js/PitchBlocks.js:1781 -msgid "The Scalar Step block (in combination with a Number block) will play the next pitch in a scale," +#: js/blocks/DrumBlocks.js:407 +#.TRANS: set the current drum sound for playback +msgid "set drum" msgstr "" -#: js/PitchBlocks.js:1783 -msgid "eg if the last note played was sol, Scalar Step 1 will play la." +#: js/blocks/DrumBlocks.js:451 +msgid "sound effect" msgstr "" -#: js/PitchBlocks.js:1818 -msgid "The Pitch block specifies the pitch name and octave of a note that together determine the frequency of the note." +#: js/blocks/DrumBlocks.js:489 +msgid "You can use multiple Drum blocks within a Note block." msgstr "" -#: js/GraphicsBlocks.js:46 -#: js/DictActions.js:77 -#: js/DictActions.js:155 -#: js/DictActions.js:189 +#: js/blocks/GraphicsBlocks.js:46 +#: js/turtleactions/DictActions.js:77 +#: js/turtleactions/DictActions.js:144 +#: js/turtleactions/DictActions.js:173 msgid "heading" msgstr "otsikko" -#: js/GraphicsBlocks.js:56 +#: js/blocks/GraphicsBlocks.js:56 msgid "The Heading block returns the orientation of the mouse." msgstr "" -#: js/GraphicsBlocks.js:62 +#: js/blocks/GraphicsBlocks.js:62 msgid "The Heading block returns the orientation of the turtle." msgstr "" -#: js/GraphicsBlocks.js:133 +#: js/blocks/GraphicsBlocks.js:133 msgid "The Y block returns the vertical position of the mouse." msgstr "" -#: js/GraphicsBlocks.js:140 +#: js/blocks/GraphicsBlocks.js:140 msgid "The Y block returns the vertical position of the turtle." msgstr "" -#: js/GraphicsBlocks.js:149 +#: js/blocks/GraphicsBlocks.js:149 msgid "y3" msgstr "" -#: js/GraphicsBlocks.js:219 +#: js/blocks/GraphicsBlocks.js:219 msgid "The X block returns the horizontal position of the mouse." msgstr "" -#: js/GraphicsBlocks.js:226 +#: js/blocks/GraphicsBlocks.js:226 msgid "The X block returns the horizontal position of the turtle." msgstr "" -#: js/GraphicsBlocks.js:235 +#: js/blocks/GraphicsBlocks.js:235 msgid "x3" msgstr "" -#: js/GraphicsBlocks.js:295 +#: js/blocks/GraphicsBlocks.js:295 msgid "scroll xy" msgstr "" -#: js/GraphicsBlocks.js:303 +#: js/blocks/GraphicsBlocks.js:303 msgid "The Scroll XY block moves the canvas." msgstr "" -#: js/GraphicsBlocks.js:313 +#: js/blocks/GraphicsBlocks.js:313 msgid "x2" msgstr "" -#: js/GraphicsBlocks.js:313 +#: js/blocks/GraphicsBlocks.js:313 msgid "y2" msgstr "" -#: js/GraphicsBlocks.js:373 -#: js/temperament.js:213 -#: js/temperament.js:241 +#: js/blocks/GraphicsBlocks.js:373 +#: js/widgets/temperament.js:319 +#: js/widgets/temperament.js:347 msgid "clear" msgstr "" -#: js/GraphicsBlocks.js:426 +#: js/blocks/GraphicsBlocks.js:426 msgid "The Control-point 2 block sets the second control point for the Bezier curve." msgstr "" -#: js/GraphicsBlocks.js:433 +#: js/blocks/GraphicsBlocks.js:433 msgid "control point 2" msgstr "" -#: js/GraphicsBlocks.js:436 -#: js/GraphicsBlocks.js:487 -#: js/GraphicsBlocks.js:534 -#: js/GraphicsBlocks.js:750 +#: js/blocks/GraphicsBlocks.js:436 +#: js/blocks/GraphicsBlocks.js:487 +#: js/blocks/GraphicsBlocks.js:534 +#: js/blocks/GraphicsBlocks.js:750 msgid "x1" msgstr "" -#: js/GraphicsBlocks.js:436 -#: js/GraphicsBlocks.js:487 -#: js/GraphicsBlocks.js:534 -#: js/GraphicsBlocks.js:750 +#: js/blocks/GraphicsBlocks.js:436 +#: js/blocks/GraphicsBlocks.js:487 +#: js/blocks/GraphicsBlocks.js:534 +#: js/blocks/GraphicsBlocks.js:750 msgid "y1" msgstr "" -#: js/GraphicsBlocks.js:477 +#: js/blocks/GraphicsBlocks.js:477 msgid "The Control-point 1 block sets the first control point for the Bezier curve." msgstr "" -#: js/GraphicsBlocks.js:484 +#: js/blocks/GraphicsBlocks.js:484 msgid "control point 1" msgstr "" -#: js/GraphicsBlocks.js:527 +#: js/blocks/GraphicsBlocks.js:527 msgid "The Bezier block draws a Bezier curve." msgstr "" -#: js/GraphicsBlocks.js:531 +#: js/blocks/GraphicsBlocks.js:531 msgid "bezier" msgstr "" -#: js/GraphicsBlocks.js:592 +#: js/blocks/GraphicsBlocks.js:592 msgid "The Arc block moves the turtle in an arc." msgstr "" -#: js/GraphicsBlocks.js:600 +#: js/blocks/GraphicsBlocks.js:600 msgid "arc" msgstr "kaari" -#: js/GraphicsBlocks.js:603 +#: js/blocks/GraphicsBlocks.js:603 msgid "angle" msgstr "kulma" -#: js/GraphicsBlocks.js:603 +#: js/blocks/GraphicsBlocks.js:603 msgid "radius" msgstr "säde" -#: js/GraphicsBlocks.js:620 -#: js/GraphicsBlocks.js:767 -#: js/GraphicsBlocks.js:1010 -#: js/GraphicsBlocks.js:1093 +#: js/blocks/GraphicsBlocks.js:620 +#: js/blocks/GraphicsBlocks.js:767 +#: js/blocks/GraphicsBlocks.js:1010 +#: js/blocks/GraphicsBlocks.js:1093 msgid "Value must be within -5000 to 5000 when Wrap Mode is off." msgstr "" -#: js/GraphicsBlocks.js:622 -#: js/GraphicsBlocks.js:769 -#: js/GraphicsBlocks.js:1012 -#: js/GraphicsBlocks.js:1095 +#: js/blocks/GraphicsBlocks.js:622 +#: js/blocks/GraphicsBlocks.js:769 +#: js/blocks/GraphicsBlocks.js:1012 +#: js/blocks/GraphicsBlocks.js:1095 msgid "Value must be within -20000 to 20000 when Wrap Mode is on." msgstr "" -#: js/GraphicsBlocks.js:660 +#: js/blocks/GraphicsBlocks.js:660 msgid "set heading" msgstr "seth" -#: js/GraphicsBlocks.js:673 +#: js/blocks/GraphicsBlocks.js:673 msgid "The Set heading block sets the heading of the turtle." msgstr "" -#: js/GraphicsBlocks.js:733 +#: js/blocks/GraphicsBlocks.js:733 msgid "The Set XY block moves the mouse to a specific position on the screen." msgstr "" -#: js/GraphicsBlocks.js:739 +#: js/blocks/GraphicsBlocks.js:739 msgid "The Set XY block moves the turtle to a specific position on the screen." msgstr "" -#: js/GraphicsBlocks.js:747 +#: js/blocks/GraphicsBlocks.js:747 msgid "set xy" msgstr "aseta xy" -#: js/GraphicsBlocks.js:819 +#: js/blocks/GraphicsBlocks.js:819 msgid "The Right block turns the mouse to the right." msgstr "" -#: js/GraphicsBlocks.js:826 +#: js/blocks/GraphicsBlocks.js:826 msgid "The Right block turns the turtle to the right." msgstr "" -#: js/GraphicsBlocks.js:835 +#: js/blocks/GraphicsBlocks.js:835 msgid "right1" msgstr "" -#: js/GraphicsBlocks.js:835 +#: js/blocks/GraphicsBlocks.js:835 #: plugins/rodi.rtp:77 #: plugins/rodi.rtp:340 #: plugins/rodi.rtp:375 msgid "right" msgstr "oikea" -#: js/GraphicsBlocks.js:899 +#: js/blocks/GraphicsBlocks.js:899 msgid "The Left block turns the mouse to the left." msgstr "" -#: js/GraphicsBlocks.js:906 +#: js/blocks/GraphicsBlocks.js:906 msgid "The Left block turns the turtle to the left." msgstr "" -#: js/GraphicsBlocks.js:915 +#: js/blocks/GraphicsBlocks.js:915 msgid "left1" msgstr "" -#: js/GraphicsBlocks.js:915 +#: js/blocks/GraphicsBlocks.js:915 #: plugins/rodi.rtp:79 #: plugins/rodi.rtp:339 #: plugins/rodi.rtp:362 msgid "left" msgstr "vasen" -#: js/GraphicsBlocks.js:967 -#: js/temperament.js:734 -#: js/temperament.js:933 +#: js/blocks/GraphicsBlocks.js:967 +#: js/widgets/temperament.js:875 +#: js/widgets/temperament.js:1078 #: plugins/rodi.rtp:69 #: plugins/rodi.rtp:387 msgid "back" msgstr "takaisin" -#: js/GraphicsBlocks.js:976 +#: js/blocks/GraphicsBlocks.js:976 msgid "The Back block moves the mouse backward." msgstr "" -#: js/GraphicsBlocks.js:983 +#: js/blocks/GraphicsBlocks.js:983 msgid "The Back block moves the turtle backward." msgstr "" -#: js/GraphicsBlocks.js:1050 +#: js/blocks/GraphicsBlocks.js:1050 #: plugins/rodi.rtp:71 #: plugins/rodi.rtp:400 msgid "forward" msgstr "eteenpäin" -#: js/GraphicsBlocks.js:1059 +#: js/blocks/GraphicsBlocks.js:1059 msgid "The Forward block moves the mouse forward." msgstr "" -#: js/GraphicsBlocks.js:1066 +#: js/blocks/GraphicsBlocks.js:1066 msgid "The Forward block moves the turtle forward." msgstr "" -#: js/GraphicsBlocks.js:1154 -#: js/GraphicsBlocks.js:1172 +#: js/blocks/GraphicsBlocks.js:1154 +#: js/blocks/GraphicsBlocks.js:1172 msgid "wrap" msgstr "" -#: js/OrnamentBlocks.js:32 -msgid "staccato factor" -msgstr "" - -#: js/OrnamentBlocks.js:108 -msgid "slur factor" -msgstr "" - -#: js/OrnamentBlocks.js:217 -#: js/OrnamentBlocks.js:309 -#.TRANS: the neighbor refers to a neighboring note, e.g., D is a neighbor of C -msgid "neighbor" -msgstr "" - -#: js/OrnamentBlocks.js:293 -msgid "The Neighbor block rapidly switches between neighboring pitches." -msgstr "" - -#: js/OrnamentBlocks.js:364 -msgid "glide" -msgstr "" - -#: js/OrnamentBlocks.js:479 -#: js/OrnamentBlocks.js:643 -msgid "slur" -msgstr "" - -#: js/OrnamentBlocks.js:558 -#: js/OrnamentBlocks.js:710 -#.TRANS: play each note sharply detached from the others -msgid "staccato" -msgstr "" - -#: js/PenBlocks.js:24 +#: js/blocks/PenBlocks.js:30 msgid "purple" msgstr "" -#: js/PenBlocks.js:37 -#: js/SensorsBlocks.js:521 -#: plugins/rodi.rtp:219 -msgid "blue" -msgstr "" - -#: js/PenBlocks.js:50 -#: js/SensorsBlocks.js:577 -#: plugins/rodi.rtp:218 -msgid "green" -msgstr "" - -#: js/PenBlocks.js:63 +#: js/blocks/PenBlocks.js:80 msgid "yellow" msgstr "" -#: js/PenBlocks.js:76 +#: js/blocks/PenBlocks.js:96 #: plugins/nutrition.rtp:164 msgid "orange" msgstr "" -#: js/PenBlocks.js:89 -#: js/SensorsBlocks.js:633 -#: plugins/rodi.rtp:217 -msgid "red" -msgstr "" - -#: js/PenBlocks.js:102 +#: js/blocks/PenBlocks.js:128 msgid "white" msgstr "" -#: js/PenBlocks.js:115 +#: js/blocks/PenBlocks.js:144 msgid "black" msgstr "" -#: js/PenBlocks.js:128 +#: js/blocks/PenBlocks.js:163 msgid "begin fill" msgstr "" -#: js/PenBlocks.js:143 +#: js/blocks/PenBlocks.js:190 msgid "end fill" msgstr "" -#: js/PenBlocks.js:159 -#: js/PenBlocks.js:386 +#: js/blocks/PenBlocks.js:212 +#: js/blocks/PenBlocks.js:560 #.TRANS: set the background color msgid "background" msgstr "" -#: js/PenBlocks.js:206 -#: js/DictActions.js:71 -#: js/DictActions.js:149 -#: js/DictActions.js:186 +#: js/blocks/PenBlocks.js:274 +#: js/turtleactions/DictActions.js:71 +#: js/turtleactions/DictActions.js:138 +#: js/turtleactions/DictActions.js:170 msgid "grey" msgstr "" -#: js/PenBlocks.js:210 +#: js/blocks/PenBlocks.js:282 msgid "The Grey block returns the current pen grey value." msgstr "" -#: js/PenBlocks.js:243 -#: js/DictActions.js:69 -#: js/DictActions.js:147 -#: js/DictActions.js:185 +#: js/blocks/PenBlocks.js:340 +#: js/turtleactions/DictActions.js:69 +#: js/turtleactions/DictActions.js:136 +#: js/turtleactions/DictActions.js:169 msgid "shade" msgstr "sävy" -#: js/PenBlocks.js:247 +#: js/blocks/PenBlocks.js:347 msgid "The Shade block returns the current pen shade value." msgstr "" -#: js/PenBlocks.js:280 -#: js/DictActions.js:67 -#: js/DictActions.js:145 -#: js/DictActions.js:184 +#: js/blocks/PenBlocks.js:405 +#: js/turtleactions/DictActions.js:67 +#: js/turtleactions/DictActions.js:134 +#: js/turtleactions/DictActions.js:168 msgid "color" msgstr "väri" -#: js/PenBlocks.js:285 +#: js/blocks/PenBlocks.js:415 msgid "The Color block returns the current pen color." msgstr "" -#: js/PenBlocks.js:318 -#: js/DictActions.js:73 -#: js/DictActions.js:151 -#: js/DictActions.js:187 +#: js/blocks/PenBlocks.js:470 +#: js/turtleactions/DictActions.js:73 +#: js/turtleactions/DictActions.js:140 +#: js/turtleactions/DictActions.js:171 msgid "pen size" msgstr "kynän koko" -#: js/PenBlocks.js:322 +#: js/blocks/PenBlocks.js:474 msgid "The Pen size block returns the current pen size value." msgstr "" -#: js/PenBlocks.js:355 +#: js/blocks/PenBlocks.js:513 msgid "set font" msgstr "" -#: js/PenBlocks.js:358 +#: js/blocks/PenBlocks.js:518 msgid "The Set font block sets the font used by the Show block." msgstr "" -#: js/PenBlocks.js:391 +#: js/blocks/PenBlocks.js:567 msgid "The Background block sets the window background color." msgstr "" -#: js/PenBlocks.js:408 +#: js/blocks/PenBlocks.js:598 msgid "The Hollow line block creates a line with a hollow center." msgstr "" -#: js/PenBlocks.js:415 +#: js/blocks/PenBlocks.js:606 #.TRANS: draw a line logo has a hollow space down its center msgid "hollow line" msgstr "" -#: js/PenBlocks.js:462 +#: js/blocks/PenBlocks.js:675 msgid "The Fill block fills in a shape with a color." msgstr "" -#: js/PenBlocks.js:470 +#: js/blocks/PenBlocks.js:684 #.TRANS: fill in as a solid color msgid "fill" msgstr "" -#: js/PenBlocks.js:527 +#: js/blocks/PenBlocks.js:761 #.TRANS: raise up the pen so logo it does not draw when it is moved msgid "pen up" msgstr "kynä ylös" -#: js/PenBlocks.js:532 +#: js/blocks/PenBlocks.js:768 msgid "The Pen-up block raises the pen so that it does not draw." msgstr "" -#: js/PenBlocks.js:552 +#: js/blocks/PenBlocks.js:802 #.TRANS: put down the pen so logo it draws when it is moved msgid "pen down" msgstr "kynä alas" -#: js/PenBlocks.js:557 +#: js/blocks/PenBlocks.js:810 msgid "The Pen-down block lowers the pen so that it draws." msgstr "" -#: js/PenBlocks.js:577 +#: js/blocks/PenBlocks.js:844 #.TRANS: set the width of the line drawn by the pen msgid "set pen size" msgstr "aseta kynän koko" -#: js/PenBlocks.js:583 +#: js/blocks/PenBlocks.js:854 msgid "The Set-pen-size block changes the size of the pen." msgstr "" -#: js/PenBlocks.js:623 +#: js/blocks/PenBlocks.js:913 #.TRANS: set degree of translucence of the pen color msgid "set translucency" msgstr "" -#: js/PenBlocks.js:627 +#: js/blocks/PenBlocks.js:921 msgid "The Set translucency block changes the opacity of the pen." msgstr "" -#: js/PenBlocks.js:668 +#: js/blocks/PenBlocks.js:981 msgid "set hue" msgstr "" -#: js/PenBlocks.js:672 +#: js/blocks/PenBlocks.js:989 msgid "The Set hue block changes the color of the pen." msgstr "" -#: js/PenBlocks.js:711 +#: js/blocks/PenBlocks.js:1047 msgid "set shade" msgstr "aseta sävy" -#: js/PenBlocks.js:717 +#: js/blocks/PenBlocks.js:1057 msgid "The Set-shade block changes the pen color from dark to light." msgstr "" -#: js/PenBlocks.js:757 +#: js/blocks/PenBlocks.js:1111 #.TRANS: set the level of vividness of the pen color msgid "set grey" msgstr "" -#: js/PenBlocks.js:761 +#: js/blocks/PenBlocks.js:1119 msgid "The Set grey block changes the vividness of the pen color." msgstr "" -#: js/PenBlocks.js:800 +#: js/blocks/PenBlocks.js:1172 msgid "set color" msgstr "aseta väri" -#: js/PenBlocks.js:806 +#: js/blocks/PenBlocks.js:1182 msgid "The Set-color block changes the pen color." msgstr "" -#: js/VolumeBlocks.js:35 -msgid "synth volume" -msgstr "" - -#: js/VolumeBlocks.js:39 -msgid "The Synth volume block returns the current volume of the current synthesizer." -msgstr "" - -#: js/VolumeBlocks.js:47 -#: js/musicutils.js:730 -#: js/synthutils.js:56 -#.TRANS: musical instrument -msgid "piano" -msgstr "" - -#: js/VolumeBlocks.js:105 -msgid "master volume" -msgstr "" - -#: js/VolumeBlocks.js:109 -msgid "The Master volume block returns the master volume." -msgstr "" - -#: js/VolumeBlocks.js:355 -#: js/VolumeBlocks.js:524 -msgid "set synth volume" -msgstr "" - -#: js/VolumeBlocks.js:362 -#: js/VolumeBlocks.js:545 -msgid "synth" -msgstr "" - -#: js/VolumeBlocks.js:403 -#: js/VolumeBlocks.js:577 -#: js/VolumeBlocks.js:740 -#: js/VolumeActions.js:173 -msgid "Setting volume to 0." -msgstr "" - -#: js/VolumeBlocks.js:440 -msgid "Synth not found" -msgstr "" - -#: js/VolumeBlocks.js:494 -msgid "set drum volume" -msgstr "" - -#: js/VolumeBlocks.js:530 -msgid "The Set synth volume block will change the volume of a particular synth," -msgstr "" - -#: js/VolumeBlocks.js:532 -msgid "eg guitar violin snare drum etc." -msgstr "" - -#: js/VolumeBlocks.js:534 -msgid "The default volume is 50." -msgstr "" - -#: js/VolumeBlocks.js:536 -msgid "The range is 0 for silence to 100 for full volume." -msgstr "" - -#: js/VolumeBlocks.js:597 -msgid "set panning" -msgstr "" - -#: js/VolumeBlocks.js:603 -msgid "The Set Panning block sets the panning for all synthesizers." -msgstr "" - -#: js/VolumeBlocks.js:625 -msgid "Warning: Sound is coming out from only the left or right side." -msgstr "" - -#: js/VolumeBlocks.js:647 -#: js/VolumeBlocks.js:695 -msgid "set master volume" -msgstr "" - -#: js/VolumeBlocks.js:653 -msgid "The Set master volume block sets the volume for all synthesizers." -msgstr "" - -#: js/VolumeBlocks.js:784 -msgid "The Set relative volume block changes the volume of the contained notes." -msgstr "" - -#: js/VolumeBlocks.js:791 -msgid "set relative volume" -msgstr "" - -#: js/VolumeBlocks.js:857 -msgid "decrescendo" -msgstr "" - -#: js/VolumeBlocks.js:921 -msgid "crescendo" -msgstr "" - -#: js/ToneBlocks.js:34 -msgid "oscillator" -msgstr "" - -#: js/ToneBlocks.js:44 -#: js/timbre.js:1562 -#.TRANS: Partials refers to the number of sine waves combined into the sound. -msgid "partials" -msgstr "" - -#: js/ToneBlocks.js:76 -msgid "You are adding multiple oscillator blocks." -msgstr "" - -#: js/ToneBlocks.js:144 -#: js/timbre.js:1225 -#.TRANS: a duo synthesizer combines a synth with a sequencer -msgid "duo synth" -msgstr "" - -#: js/ToneBlocks.js:149 -msgid "The Duo synth block is a duo-frequency modulator used to define a timbre." -msgstr "" - -#: js/ToneBlocks.js:157 -#: js/timbre.js:1476 -msgid "vibrato rate" -msgstr "" - -#: js/ToneBlocks.js:157 -msgid "vibrato intensity" -msgstr "" - -#: js/ToneBlocks.js:185 -#: js/timbre.js:1221 -#.TRANS: AM (amplitude modulation) synthesizer -msgid "AM synth" -msgstr "" - -#: js/ToneBlocks.js:189 -msgid "The AM synth block is an amplitude modulator used to define a timbre." -msgstr "" - -#: js/ToneBlocks.js:224 -#: js/timbre.js:1223 -#.TRANS: FM (frequency modulation) synthesizer -msgid "FM synth" +#: js/blocks/PitchBlocks.js:141 +#.TRANS: musical transposition (adjustment of pitch up or down) +msgid "transposition" msgstr "" -#: js/ToneBlocks.js:228 -msgid "The FM synth block is a frequency modulator used to define a timbre." +#: js/blocks/PitchBlocks.js:168 +#.TRANS: step down one note in current musical scale +msgid "scalar step down" msgstr "" -#: js/ToneBlocks.js:262 -msgid "partial" +#: js/blocks/PitchBlocks.js:172 +msgid "The Scalar step down block returns the number of semi-tones down to the previous note in the current key and mode." msgstr "" -#: js/ToneBlocks.js:265 -msgid "The Partial block is used to specify a weight for a specific partial harmonic." +#: js/blocks/PitchBlocks.js:190 +#.TRANS: step up one note in current musical scale +msgid "scalar step up" msgstr "" -#: js/ToneBlocks.js:284 -#.TRANS: partials are weighted components in a harmonic series -msgid "Partial weight must be between 0 and 1." +#: js/blocks/PitchBlocks.js:194 +msgid "The Scalar step up block returns the number of semi-tones up to the next note in the current key and mode." msgstr "" -#: js/ToneBlocks.js:297 -#.TRANS: partials are weighted components in a harmonic series -msgid "Partial block should be used inside of a Weighted-partials block." +#: js/blocks/PitchBlocks.js:212 +#.TRANS: the change measured in half-steps between the current pitch and the previous pitch +msgid "change in pitch" msgstr "" -#: js/ToneBlocks.js:325 -#.TRANS: partials are weighted components in a harmonic series -msgid "weighted partials" +#: js/blocks/PitchBlocks.js:216 +msgid "The Change in pitch block is the difference (in half steps) between the current pitch being played and the previous pitch played." msgstr "" -#: js/ToneBlocks.js:383 -msgid "The Harmonic block will add harmonics to the contained notes." +#: js/blocks/PitchBlocks.js:243 +#.TRANS: the change measured in scale-steps between the current pitch and the previous pitch +msgid "scalar change in pitch" msgstr "" -#: js/ToneBlocks.js:390 -#.TRANS: A harmonic is an overtone. -msgid "harmonic" +#: js/blocks/PitchBlocks.js:250 +#: js/blocks/PitchBlocks.js:432 +#: js/blocks/PitchBlocks.js:1667 +#: js/turtleactions/DictActions.js:89 +#: js/widgets/temperament.js:610 +#: js/widgets/temperament.js:614 +#: js/widgets/temperament.js:855 +#.TRANS: convert current note to piano key (1-88) +#.TRANS: a mapping of pitch to the 88 piano keys +msgid "pitch number" msgstr "" -#: js/ToneBlocks.js:431 -msgid "The Distortion block adds distortion to the pitch." +#: js/blocks/PitchBlocks.js:256 +msgid "The Pitch number block is the value of the pitch of the note currently being played." msgstr "" -#: js/ToneBlocks.js:438 -#: js/timbre.js:2100 -#.TRANS: distortion is an alteration in the sound -msgid "distortion" +#: js/blocks/PitchBlocks.js:329 +#: js/blocks/PitchBlocks.js:433 +#.TRANS: the current pitch expressed in Hertz +msgid "pitch in hertz" msgstr "" -#: js/ToneBlocks.js:487 -msgid "The Tremolo block adds a wavering effect." +#: js/blocks/PitchBlocks.js:334 +msgid "The Pitch in Hertz block is the value in Hertz of the pitch of the note currently being played." msgstr "" -#: js/ToneBlocks.js:495 -#: js/timbre.js:2092 -#.TRANS: a wavering effect in a musical tone -msgid "tremolo" +#: js/blocks/PitchBlocks.js:367 +#: js/turtleactions/DictActions.js:87 +msgid "current pitch" msgstr "" -#: js/ToneBlocks.js:500 -#: js/ToneBlocks.js:569 -#: js/ToneBlocks.js:630 -#: js/ToneBlocks.js:689 -#: js/timbre.js:2134 -#: js/timbre.js:2222 -#: js/timbre.js:2317 -#: js/timbre.js:2419 -#.TRANS: rate at which tremolo wavers -msgid "rate" +#: js/blocks/PitchBlocks.js:373 +msgid "The Current Pitch block is used with the Pitch Converter block. In the example above, current pitch, sol 4, is displayed as 392 hertz." msgstr "" -#: js/ToneBlocks.js:502 -#: js/ToneBlocks.js:630 -#: js/timbre.js:2137 -#: js/timbre.js:2328 -#.TRANS: amplitude of tremolo waver -msgid "depth" +#: js/blocks/PitchBlocks.js:410 +msgid "This block converts the pitch value of the last note played into different formats such as hertz, letter name, pitch number, et al." msgstr "" -#: js/ToneBlocks.js:559 -msgid "The Phaser block adds a sweeping sound." +#: js/blocks/PitchBlocks.js:434 +msgid "alphabet" msgstr "" -#: js/ToneBlocks.js:566 -#: js/timbre.js:2098 -#.TRANS: alter the phase of the sound -msgid "phaser" +#: js/blocks/PitchBlocks.js:436 +#.TRANS: Translate as "alphabet class" +msgid "letter class" msgstr "" -#: js/ToneBlocks.js:569 -#: js/timbre.js:2422 -msgid "octaves" +#: js/blocks/PitchBlocks.js:437 +msgid "solfege class" msgstr "" -#: js/ToneBlocks.js:569 -#: js/timbre.js:2425 -msgid "base frequency" +#: js/blocks/PitchBlocks.js:438 +msgid "staff y" msgstr "" -#: js/ToneBlocks.js:619 -msgid "The Chorus block adds a chorus effect." +#: js/blocks/PitchBlocks.js:439 +msgid "solfege syllable" msgstr "" -#: js/ToneBlocks.js:627 -#: js/timbre.js:2096 -#.TRANS: musical effect to simulate a choral sound -msgid "chorus" +#: js/blocks/PitchBlocks.js:440 +msgid "pitch class" msgstr "" -#: js/ToneBlocks.js:630 -msgid "delay" +#: js/blocks/PitchBlocks.js:441 +msgid "scalar class" msgstr "" -#: js/ToneBlocks.js:678 -msgid "The Vibrato block adds a rapid, slight variation in pitch." +#: js/blocks/PitchBlocks.js:443 +msgid "nth degree" msgstr "" -#: js/ToneBlocks.js:686 -#: js/timbre.js:2094 -#.TRANS: a rapid, slight variation in pitch -msgid "vibrato" +#: js/blocks/PitchBlocks.js:444 +msgid "pitch to shade" msgstr "" -#: js/ToneBlocks.js:689 -#: js/timbre.js:2221 -msgid "intensity" +#: js/blocks/PitchBlocks.js:445 +msgid "pitch to color" msgstr "" -#: js/ToneBlocks.js:733 -#.TRANS: select synthesizer -msgid "set synth" +#: js/blocks/PitchBlocks.js:629 +#: js/widgets/musickeyboard.js:735 +#.TRANS: MIDI is a technical standard for electronic music +msgid "MIDI" msgstr "" -#: js/ToneBlocks.js:804 -msgid "synth name" +#: js/blocks/PitchBlocks.js:642 +#.TRANS: set an offset associated with the numeric piano keyboard mapping +msgid "set pitch number offset" msgstr "" -#: js/ToneBlocks.js:842 -msgid "set default instrument" +#: js/blocks/PitchBlocks.js:645 +msgid "The Set pitch number offset block is used to set the offset for mapping pitch numbers to pitch and octave." msgstr "" -#: js/ToneBlocks.js:895 -#: js/ToneBlocks.js:943 -#.TRANS: set the characteristics of a custom instrument -msgid "set instrument" +#: js/blocks/PitchBlocks.js:679 +#.TRANS: convert piano key number (1-88) to pitch +msgid "number to pitch" msgstr "" -#: js/ToneBlocks.js:898 -#: js/ToneBlocks.js:926 -#: js/ToneBlocks.js:932 -msgid "The Set instrument block selects a voice for the synthesizer," +#: js/blocks/PitchBlocks.js:682 +msgid "The Number to pitch block will convert a pitch number to a pich name." msgstr "" -#: js/ToneBlocks.js:900 -#: js/ToneBlocks.js:934 -msgid "eg guitar piano violin or cello." +#: js/blocks/PitchBlocks.js:715 +#.TRANS: convert piano key number (1-88) to octave +msgid "number to octave" msgstr "" -#: js/ToneBlocks.js:1015 -msgid "Import a sound file to use as an instrument and set its pitch center." +#: js/blocks/PitchBlocks.js:717 +msgid "The Number to octave block will convert a pitch number to an octave." msgstr "" -#: js/ToneBlocks.js:1110 -msgid "Upload a sound file to connect with the sample block." +#: js/blocks/PitchBlocks.js:726 +msgid "y to pitch" msgstr "" -#: js/MeterBlocks.js:34 -#.TRANS: musical meter (time signature), e.g., 4:4 -msgid "current meter" +#: js/blocks/PitchBlocks.js:729 +msgid "Y to pitch block will convert a staff y position to corresponding pitch notation." msgstr "" -#: js/MeterBlocks.js:85 -#.TRANS: number of beats per minute -msgid "beat factor" +#: js/blocks/PitchBlocks.js:841 +msgid "accidental selector" msgstr "" -#: js/MeterBlocks.js:161 -msgid "The Beats per minute block returns the current beats per minute." +#: js/blocks/PitchBlocks.js:844 +msgid "The Accidental selector block is used to choose between double-sharp, sharp, natural, flat, and double-flat." msgstr "" -#: js/MeterBlocks.js:169 -#: js/status.js:152 -#.TRANS: number of beats played per minute -msgid "beats per minute2" +#: js/blocks/PitchBlocks.js:858 +msgid "Pitch can be specified in terms of ni dha pa ma ga re sa." msgstr "" -#: js/MeterBlocks.js:169 -#: js/MeterBlocks.js:1056 -#: js/MeterBlocks.js:1133 -#: js/MeterBlocks.js:1211 -#.TRANS: sets tempo by defining a beat and beats per minute -msgid "beats per minute" +#: js/blocks/PitchBlocks.js:872 +msgid "Pitch can be specified in terms of C D E F G A B." msgstr "" -#: js/MeterBlocks.js:233 -#.TRANS: count of current musical measure in meter -msgid "measure count" +#: js/blocks/PitchBlocks.js:884 +msgid "solfege" msgstr "" -#: js/MeterBlocks.js:241 -msgid "The Measure count block returns the current measure." +#: js/blocks/PitchBlocks.js:887 +msgid "Pitch can be specified in terms of do re mi fa sol la ti." msgstr "" -#: js/MeterBlocks.js:290 -#.TRANS: count of current beat in the meter -msgid "beat count" +#: js/blocks/PitchBlocks.js:922 +msgid "The Invert block rotates any contained notes around a target note." msgstr "" -#: js/MeterBlocks.js:300 -#: js/MeterBlocks.js:311 -#: js/MeterBlocks.js:565 -#: js/MeterBlocks.js:576 -msgid "The Beat count block is the number of the current beat," +#: js/blocks/PitchBlocks.js:929 +#.TRANS: pitch inversion rotates a pitch around another pitch +msgid "invert" msgstr "" -#: js/MeterBlocks.js:313 -#: js/MeterBlocks.js:578 -msgid "eg 1, 2, 3, or 4." +#: js/blocks/PitchBlocks.js:968 +#.TRANS: pitch inversion rotates a pitch around another pitch (odd number) +msgid "invert (odd)" msgstr "" -#: js/MeterBlocks.js:368 -#.TRANS: count the number of notes -msgid "sum note values" +#: js/blocks/PitchBlocks.js:1001 +#.TRANS: pitch inversion rotates a pitch around another pitch (even number) +msgid "invert (even)" msgstr "" -#: js/MeterBlocks.js:376 -#: js/MeterBlocks.js:440 -msgid "The Note counter block can be used to count the number of contained notes." +#: js/blocks/PitchBlocks.js:1022 +#.TRANS: register is the octave of the current pitch +msgid "register" msgstr "" -#: js/MeterBlocks.js:432 -#.TRANS: count the number of notes -msgid "note counter" +#: js/blocks/PitchBlocks.js:1026 +msgid "The Register block provides an easy way to modify the register (octave) of the notes that follow it." msgstr "" -#: js/MeterBlocks.js:496 -#.TRANS: number of whole notes that have been played -msgid "whole notes played" +#: js/blocks/PitchBlocks.js:1047 +#.TRANS: cents are units used to specify the ratio between pitches. There are 100 cents between successive notes. +msgid "50 cents" msgstr "" -#: js/MeterBlocks.js:505 -msgid "The Whole notes played block returns the total number of whole notes played." +#: js/blocks/PitchBlocks.js:1102 +msgid "The Semi-tone transposition block will shift the pitches contained inside Note blocks up (or down) by half steps." msgstr "" -#: js/MeterBlocks.js:555 -#: js/DictActions.js:83 -#.TRANS: number of notes that have been played -msgid "notes played" +#: js/blocks/PitchBlocks.js:1104 +msgid "In the example shown above, sol is shifted up to sol#." msgstr "" -#: js/MeterBlocks.js:653 -msgid "The No clock block decouples the notes from the master clock." +#: js/blocks/PitchBlocks.js:1110 +#.TRANS: adjust the amount of shift (up or down) of a pitch +msgid "semi-tone transpose" msgstr "" -#: js/MeterBlocks.js:661 -#.TRANS: don't lock notes to master clock -msgid "no clock" +#: js/blocks/PitchBlocks.js:1143 +msgid "The Transpose by Ratio block will shift the pitches contained inside Note blocks up (or down) by a ratio" msgstr "" -#: js/MeterBlocks.js:700 -msgid "on weak beat do" +#: js/blocks/PitchBlocks.js:1149 +#.TRANS: adjust the amount of shift (up or down) of a pitch +msgid "transpose by ratio" msgstr "" -#: js/MeterBlocks.js:705 -msgid "The On-weak-beat block lets you specify actions to take on weak (off) beats." +#: js/blocks/PitchBlocks.js:1232 +#.TRANS: down sixth means the note is five scale degrees below current note +msgid "down sixth" msgstr "" -#: js/MeterBlocks.js:750 -msgid "on strong beat" +#: js/blocks/PitchBlocks.js:1251 +#.TRANS: down third means the note is two scale degrees below current note +msgid "down third" msgstr "" -#: js/MeterBlocks.js:758 -msgid "The On-strong-beat block lets you specify actions to take on specified beats." +#: js/blocks/PitchBlocks.js:1270 +#.TRANS: seventh means the note is the six scale degrees above current note +msgid "seventh" msgstr "" -#: js/MeterBlocks.js:769 -msgid "beat" +#: js/blocks/PitchBlocks.js:1289 +#.TRANS: sixth means the note is the five scale degrees above current note +msgid "sixth" msgstr "" -#: js/MeterBlocks.js:813 -msgid "on every beat do" +#: js/blocks/PitchBlocks.js:1308 +#.TRANS: fifth means the note is the four scale degrees above current note +msgid "fifth" msgstr "" -#: js/MeterBlocks.js:821 -msgid "The On-every-beat block lets you specify actions to take on every beat." +#: js/blocks/PitchBlocks.js:1328 +#.TRANS: fourth means the note is three scale degrees above current note +msgid "fourth" msgstr "" -#: js/MeterBlocks.js:874 -msgid "on every note do" +#: js/blocks/PitchBlocks.js:1347 +#.TRANS: third means the note is two scale degrees above current note +msgid "third" msgstr "" -#: js/MeterBlocks.js:882 -msgid "The On-every-note block lets you specify actions to take on every note." +#: js/blocks/PitchBlocks.js:1366 +#.TRANS: second means the note is one scale degree above current note +msgid "second" msgstr "" -#: js/MeterBlocks.js:928 -#: js/MeterBlocks.js:999 -#.TRANS: sets tempo by defining a beat and beats per minute -msgid "master beats per minute" +#: js/blocks/PitchBlocks.js:1407 +msgid "The Scalar transposition block will shift the pitches contained inside Note blocks up (or down) the scale." msgstr "" -#: js/MeterBlocks.js:952 -#: js/MeterBlocks.js:1078 -#: js/MeterBlocks.js:1135 -msgid "bpm" +#: js/blocks/PitchBlocks.js:1409 +msgid "In the example shown above, sol is shifted up to la." msgstr "" -#: js/MeterBlocks.js:952 -#: js/MeterBlocks.js:1078 -#: js/MeterBlocks.js:1135 -msgid "beat value" +#: js/blocks/PitchBlocks.js:1416 +#.TRANS: adjust the amount of shift (up or down) of a pitch by musical scale (scalar) steps +msgid "scalar transpose" msgstr "" -#: js/MeterBlocks.js:1024 -#: js/MeterBlocks.js:1167 -#: js/MeterBlocks.js:1241 -msgid "Beats per minute must be > 30." +#: js/blocks/PitchBlocks.js:1451 +msgid "The Accidental block is used to create sharps and flats" msgstr "" -#: js/MeterBlocks.js:1027 -#: js/MeterBlocks.js:1170 -#: js/MeterBlocks.js:1244 -msgid "Maximum beats per minute is 1000." +#: js/blocks/PitchBlocks.js:1458 +#.TRANS: An accidental is a modification to a pitch, e.g., sharp or flat. +msgid "accidental override" msgstr "" -#: js/MeterBlocks.js:1068 -msgid "The Beats per minute block sets the number of 1/4 notes per minute." +#: js/blocks/PitchBlocks.js:1581 +msgid "The Hertz block (in combination with a Number block) will play a sound at the specified frequency." msgstr "" -#: js/MeterBlocks.js:1279 -#.TRANS: anacrusis -msgid "pickup" +#: js/blocks/PitchBlocks.js:1671 +msgid "The Pitch Number block will play a pitch associated by its number, e.g. 0 for C and 7 for G." msgstr "" -#: js/MeterBlocks.js:1367 -msgid "number of beats" +#: js/blocks/PitchBlocks.js:1703 +#: js/blocks/PitchBlocks.js:1745 +#.TRANS: a numeric mapping of the notes in an octave based on the musical mode +#.TRANS: a numeric mapping of the notes in an octave based on the musical mode +msgid "nth modal pitch" msgstr "" -#: js/DictBlocks.js:77 -msgid "show dictionary" +#: js/blocks/PitchBlocks.js:1706 +msgid "n^th Modal Pitch takes the pattern of pitches in semitones for a mode and makes each point a degree of the mode," msgstr "" -#: js/DictBlocks.js:129 -msgid "The Dictionary block returns a dictionary." +#: js/blocks/PitchBlocks.js:1708 +msgid "starting from 1 and regardless of tonal framework (i.e. not always 8 notes in the octave)" msgstr "" -#: js/DictBlocks.js:197 -#: js/DictBlocks.js:339 -msgid "The Get-dict block returns a value in the dictionary for a specified key." +#: js/blocks/PitchBlocks.js:1749 +msgid "N^th Modal Pitch takes a number as an input as the n^th degree for the given mode. 0 is the first position, 1 is the second, -1 is the note before the first etc." msgstr "" -#: js/DictBlocks.js:212 -#: js/DictBlocks.js:354 -#.TRANS: retrieve a value from the dictionary with a given key -msgid "get value" +#: js/blocks/PitchBlocks.js:1751 +msgid "The pitches change according to the mode specified without any need for respellings." msgstr "" -#: js/DictBlocks.js:215 -#: js/DictBlocks.js:216 -#: js/DictBlocks.js:289 -#: js/DictBlocks.js:290 -#: js/DictBlocks.js:357 -#: js/DictBlocks.js:430 -#: js/DictBlocks.js:431 -msgid "key2" +#: js/blocks/PitchBlocks.js:1790 +msgid "Scale Degree is a common convention in music. Scale Degree offers seven possible positions in the scale (1-7) and can be modified via accidentals." msgstr "" -#: js/DictBlocks.js:271 -#: js/DictBlocks.js:411 -msgid "The Set-dict block sets a value in the dictionary for a specified key." +#: js/blocks/PitchBlocks.js:1792 +msgid "Scale Degree 1 is always the first pitch in a given scale, regardless of octave." msgstr "" -#: js/DictBlocks.js:286 -#: js/DictBlocks.js:427 -#.TRANS: set a value in the dictionary for a given key -msgid "set value" +#: js/blocks/PitchBlocks.js:1814 +#.TRANS: step some number of notes in current musical scale +msgid "scalar step" msgstr "" -#: js/ExtrasBlocks.js:33 -msgid "fraction" +#: js/blocks/PitchBlocks.js:1819 +msgid "The Scalar Step block (in combination with a Number block) will play the next pitch in a scale," msgstr "" -#: js/ExtrasBlocks.js:36 -msgid "Convert a float to a fraction" +#: js/blocks/PitchBlocks.js:1821 +msgid "eg if the last note played was sol, Scalar Step 1 will play la." msgstr "" -#: js/ExtrasBlocks.js:93 -msgid "save as ABC" +#: js/blocks/PitchBlocks.js:1857 +msgid "The Pitch block specifies the pitch name and octave of a note that together determine the frequency of the note." msgstr "" -#: js/ExtrasBlocks.js:96 -#: js/ExtrasBlocks.js:132 -#: js/ExtrasBlocks.js:168 -msgid "title" +#: js/blocks/ProgramBlocks.js:33 +msgid "The Load-heap-from-app block loads the heap from a web page." msgstr "" -#: js/ExtrasBlocks.js:129 -msgid "save as Lilypond" +#: js/blocks/ProgramBlocks.js:44 +#.TRANS: load the heap contents from a URL +msgid "load heap from App" msgstr "" -#: js/ExtrasBlocks.js:165 -msgid "save as SVG" +#: js/blocks/ProgramBlocks.js:95 +msgid "Error parsing JSON data:" msgstr "" -#: js/ExtrasBlocks.js:216 -msgid "no background" +#: js/blocks/ProgramBlocks.js:100 +msgid "404: Page not found" msgstr "" -#: js/ExtrasBlocks.js:219 -msgid "The No background block eliminates the background from the saved SVG output." +#: js/blocks/ProgramBlocks.js:133 +msgid "The Save-heap-to-app block saves the heap to a web page." msgstr "" -#: js/ExtrasBlocks.js:247 -msgid "show blocks" +#: js/blocks/ProgramBlocks.js:144 +#.TRANS: save the heap contents to a URL +msgid "save heap to App" msgstr "" -#: js/ExtrasBlocks.js:249 -msgid "The Show blocks block shows the blocks." +#: js/blocks/ProgramBlocks.js:189 +msgid "Cannot find a valid heap for" msgstr "" -#: js/ExtrasBlocks.js:274 -msgid "hide blocks" +#: js/blocks/ProgramBlocks.js:206 +msgid "The Load-heap block loads the heap from a file." msgstr "" -#: js/ExtrasBlocks.js:276 -msgid "The Hide blocks block hides the blocks." +#: js/blocks/ProgramBlocks.js:217 +#.TRANS: load the heap from a file +msgid "load heap" msgstr "" -#: js/ExtrasBlocks.js:305 -#: js/ExtrasBlocks.js:335 -msgid "The Space block is used to add space between blocks." +#: js/blocks/ProgramBlocks.js:270 +msgid "The file you selected does not contain a valid heap." msgstr "" -#: js/ExtrasBlocks.js:373 -msgid "wait" -msgstr "odota" - -#: js/ExtrasBlocks.js:376 -msgid "The Wait block pauses the program for a specified number of seconds." +#: js/blocks/ProgramBlocks.js:275 +msgid "The loadHeap block needs a loadFile block." msgstr "" -#: js/ExtrasBlocks.js:430 -#: plugins/facebook.rtp:30 -msgid "comment" +#: js/blocks/ProgramBlocks.js:291 +msgid "The Set-heap block loads the heap." msgstr "" -#: js/ExtrasBlocks.js:466 -msgid "print" +#: js/blocks/ProgramBlocks.js:340 +msgid "The block you selected does not contain a valid heap." msgstr "" -#: js/ExtrasBlocks.js:473 -msgid "The Print block displays text at the top of the screen." +#: js/blocks/ProgramBlocks.js:343 +msgid "The Set heap block needs a heap." msgstr "" -#: js/ExtrasBlocks.js:579 -msgid "display grid" +#: js/blocks/ProgramBlocks.js:360 +msgid "The Load-dictionary block loads a dictionary from a file." msgstr "" -#: js/ExtrasBlocks.js:584 -msgid "The Display Grid Block changes the grid type" +#: js/blocks/ProgramBlocks.js:372 +#.TRANS: load a dictionary from a file +msgid "load dictionary" msgstr "" -#: js/ExtrasBlocks.js:686 -#: js/ExtrasBlocks.js:705 -#: js/ExtrasBlocks.js:728 -#: js/ExtrasBlocks.js:751 -#: js/ExtrasBlocks.js:769 -#: js/ExtrasBlocks.js:788 -#: js/ExtrasBlocks.js:807 -#: js/ExtrasBlocks.js:826 -msgid "unknown" +#: js/blocks/ProgramBlocks.js:390 +#: js/blocks/ProgramBlocks.js:658 +#: js/blocks/ToneBlocks.js:1025 +msgid "file" msgstr "" -#: js/SensorsBlocks.js:36 -msgid "The Input block prompts for keyboard input." +#: js/blocks/ProgramBlocks.js:444 +msgid "The file you selected does not contain a valid dictionary." msgstr "" -#: js/SensorsBlocks.js:46 -msgid "input" +#: js/blocks/ProgramBlocks.js:449 +msgid "The load dictionary block needs a load file block." msgstr "" -#: js/SensorsBlocks.js:64 -msgid "Input a value" +#: js/blocks/ProgramBlocks.js:466 +msgid "The Set-dictionary block loads a dictionary." msgstr "" -#: js/SensorsBlocks.js:126 -msgid "input value" +#: js/blocks/ProgramBlocks.js:477 +#.TRANS: load a dictionary from a JSON +msgid "set dictionary" msgstr "" -#: js/SensorsBlocks.js:131 -msgid "The Input-value block stores the input." +#: js/blocks/ProgramBlocks.js:546 +msgid "The block you selected does not contain a valid dictionary." msgstr "" -#: js/SensorsBlocks.js:238 -msgid "loudness" +#: js/blocks/ProgramBlocks.js:550 +msgid "The set dictionary block needs a dictionary." msgstr "" -#: js/SensorsBlocks.js:245 -msgid "The Loudness block returns the volume detected by the microphone." +#: js/blocks/ProgramBlocks.js:567 +msgid "The Save-heap block saves the heap to a file." msgstr "" -#: js/SensorsBlocks.js:300 -msgid "click" +#: js/blocks/ProgramBlocks.js:578 +#.TRANS: save the heap to a file +msgid "save heap" msgstr "" -#: js/SensorsBlocks.js:306 -msgid "The Click block triggers an event if a mouse has been clicked." +#: js/blocks/ProgramBlocks.js:629 +msgid "The Save-dictionary block saves a dictionary to a file." msgstr "" -#: js/SensorsBlocks.js:313 -msgid "The Click block triggers an event if a turtle has been clicked." +#: js/blocks/ProgramBlocks.js:640 +#.TRANS: save a dictionary to a file +msgid "save dictionary" msgstr "" -#: js/SensorsBlocks.js:342 -msgid "cursor over" +#: js/blocks/ProgramBlocks.js:720 +msgid "The Open palette block opens a palette." msgstr "" -#: js/SensorsBlocks.js:387 -msgid "cursor out" +#: js/blocks/ProgramBlocks.js:727 +msgid "open palette" msgstr "" -#: js/SensorsBlocks.js:433 -msgid "cursor button down" +#: js/blocks/ProgramBlocks.js:785 +msgid "The Delete block block removes a block." msgstr "" -#: js/SensorsBlocks.js:477 -msgid "cursor button up" +#: js/blocks/ProgramBlocks.js:797 +#.TRANS: Move this block to the trash. +msgid "delete block" msgstr "" -#: js/SensorsBlocks.js:638 -msgid "The Get red block returns the red component of the pixel under the mouse." +#: js/blocks/ProgramBlocks.js:861 +msgid "The Move block block moves a block." msgstr "" -#: js/SensorsBlocks.js:644 -msgid "The Get red block returns the red component of the pixel under the turtle." +#: js/blocks/ProgramBlocks.js:869 +#.TRANS: Move the position of a block on the screen. +msgid "move block" msgstr "" -#: js/SensorsBlocks.js:685 -#: plugins/rodi.rtp:216 -msgid "pixel color" +#: js/blocks/ProgramBlocks.js:881 +#: js/blocks/ProgramBlocks.js:1048 +msgid "block number" msgstr "" -#: js/SensorsBlocks.js:690 -msgid "The Get pixel block returns the color of the pixel under the mouse." +#: js/blocks/ProgramBlocks.js:935 +#.TRANS: Run program beginning at this block. +msgid "run block" msgstr "" -#: js/SensorsBlocks.js:696 -msgid "The Get pixel block returns the color of the pixel under the turtle." +#: js/blocks/ProgramBlocks.js:1025 +msgid "The Dock block block connections two blocks." msgstr "" -#: js/SensorsBlocks.js:758 -msgid "time" +#: js/blocks/ProgramBlocks.js:1036 +#.TRANS: We can connect a block to another block. +msgid "connect blocks" msgstr "" -#: js/SensorsBlocks.js:804 -msgid "cursor y" +#: js/blocks/ProgramBlocks.js:1048 +msgid "target block" msgstr "" -#: js/SensorsBlocks.js:809 -msgid "The Cursor Y block returns the vertical position of the mouse." +#: js/blocks/ProgramBlocks.js:1048 +msgid "connection number" msgstr "" -#: js/SensorsBlocks.js:845 -msgid "cursor x" +#: js/blocks/ProgramBlocks.js:1140 +msgid "The Make block block creates a new block." msgstr "" -#: js/SensorsBlocks.js:850 -msgid "The Cursor X block returns the horizontal position of the mouse." +#: js/blocks/ProgramBlocks.js:1152 +#.TRANS: Create a new block +msgid "make block" msgstr "" -#: js/SensorsBlocks.js:886 -msgid "mouse button" +#: js/blocks/ProgramBlocks.js:1285 +msgid "Cannot find block" msgstr "" -#: js/SensorsBlocks.js:888 -msgid "The Mouse-button block returns True if the mouse button is pressed." +#: js/blocks/ProgramBlocks.js:1304 +#: js/blocks/ProgramBlocks.js:1313 +msgid "Warning: block argument type mismatch" msgstr "" -#: js/SensorsBlocks.js:934 -msgid "to ASCII" +#: js/blocks/ProgramBlocks.js:1347 +msgid "The Open project block is used to open a project from a web page." msgstr "" -#: js/SensorsBlocks.js:938 -msgid "The To ASCII block converts numbers to letters." +#: js/blocks/ProgramBlocks.js:1357 +msgid "open project" msgstr "" -#: js/SensorsBlocks.js:1005 -msgid "The Keyboard block returns computer keyboard input." +#: js/blocks/ProgramBlocks.js:1410 +msgid "Please enter a valid URL." msgstr "" -#: js/IntervalsActions.js:216 -msgid "Adding missing pitch number 0." +#: js/blocks/ToneBlocks.js:34 +msgid "oscillator" msgstr "" -#: js/IntervalsActions.js:224 -msgid "Ignoring pitch numbers less than zero or greater than eleven." +#: js/blocks/ToneBlocks.js:42 +#: js/blocks/WidgetBlocks.js:179 +#: js/widgets/timbre.js:1558 +#: js/widgets/timbre.js:1808 +#.TRANS: there are different types (sine, triangle, square...) of oscillators. +#.TRANS: type of filter, e.g., lowpass, highpass, etc. +msgid "type" msgstr "" -#: js/IntervalsActions.js:230 -msgid "Ignoring duplicate pitch numbers." +#: js/blocks/ToneBlocks.js:44 +#: js/widgets/timbre.js:1562 +#.TRANS: Partials refers to the number of sine waves combined into the sound. +msgid "partials" msgstr "" -#: js/PitchActions.js:88 -msgid "The Scalar Step Block must be used inside of a Note Block." +#: js/blocks/ToneBlocks.js:76 +msgid "You are adding multiple oscillator blocks." msgstr "" -#: js/PitchActions.js:107 -msgid "The Scalar Step Block must be preceded by a Pitch Block." +#: js/blocks/ToneBlocks.js:144 +#: js/widgets/timbre.js:1225 +#.TRANS: a duo synthesizer combines a synth with a sequencer +msgid "duo synth" msgstr "" -#: js/DrumActions.js:231 -msgid "Noise Block: Did you mean to use a Note block?" +#: js/blocks/ToneBlocks.js:149 +msgid "The Duo synth block is a duo-frequency modulator used to define a timbre." msgstr "" -#: js/MeterActions.js:101 -#: js/MeterActions.js:139 -msgid "beats per minute must be greater than" +#: js/blocks/ToneBlocks.js:157 +#: js/widgets/timbre.js:1476 +msgid "vibrato rate" msgstr "" -#: js/MeterActions.js:111 -#: js/MeterActions.js:149 -msgid "maximum" +#: js/blocks/ToneBlocks.js:157 +msgid "vibrato intensity" msgstr "" -#: js/MeterActions.js:117 -#: js/MeterActions.js:155 -msgid "beats per minute is" +#: js/blocks/ToneBlocks.js:185 +#: js/widgets/timbre.js:1221 +#.TRANS: AM (amplitude modulation) synthesizer +msgid "AM synth" msgstr "" -#: js/ToneActions.js:134 -msgid "Vibrato intensity must be between 1 and 100." +#: js/blocks/ToneBlocks.js:189 +msgid "The AM synth block is an amplitude modulator used to define a timbre." msgstr "" -#: js/ToneActions.js:139 -msgid "Vibrato rate must be greater than 0." +#: js/blocks/ToneBlocks.js:224 +#: js/widgets/timbre.js:1223 +#.TRANS: FM (frequency modulation) synthesizer +msgid "FM synth" msgstr "" -#: js/ToneActions.js:192 -#: js/ToneActions.js:265 -#.TRANS: Depth is the intesity of the tremolo or chorus effect. -msgid "Depth is out of range." +#: js/blocks/ToneBlocks.js:228 +msgid "The FM synth block is a frequency modulator used to define a timbre." msgstr "" -#: js/ToneActions.js:301 -msgid "Distortion must be from 0 to 100." +#: js/blocks/ToneBlocks.js:262 +msgid "partial" msgstr "" -#: js/ToneActions.js:332 -#.TRANS: partials components in a harmonic series -msgid "Partial must be greater than or equal to 0." +#: js/blocks/ToneBlocks.js:265 +msgid "The Partial block is used to specify a weight for a specific partial harmonic." msgstr "" -#: js/ToneActions.js:378 -#: js/ToneActions.js:417 -#: js/ToneActions.js:456 -#: js/timbre.js:782 -msgid "Unable to use synth due to existing oscillator" +#: js/blocks/ToneBlocks.js:284 +#.TRANS: partials are weighted components in a harmonic series +msgid "Partial weight must be between 0 and 1." msgstr "" -#: js/ToneActions.js:388 -#: js/ToneActions.js:427 -msgid "The input cannot be negative." +#: js/blocks/ToneBlocks.js:297 +#.TRANS: partials are weighted components in a harmonic series +msgid "Partial block should be used inside of a Weighted-partials block." msgstr "" -#: js/DictActions.js:75 -#: js/DictActions.js:153 -#: js/DictActions.js:188 -msgid "font" +#: js/blocks/ToneBlocks.js:325 +#.TRANS: partials are weighted components in a harmonic series +msgid "weighted partials" msgstr "" -#: js/musicutils.js:363 -#: js/musicutils.js:471 -#: js/pitchdrummatrix.js:151 -#: js/musickeyboard.js:2563 -msgid "rest" +#: js/blocks/ToneBlocks.js:383 +msgid "The Harmonic block will add harmonics to the contained notes." msgstr "" -#: js/musicutils.js:565 -#.TRANS: ordinal number. Please keep exactly one space between each number. -msgid "1st 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th" +#: js/blocks/ToneBlocks.js:390 +#.TRANS: A harmonic is an overtone. +msgid "harmonic" msgstr "" -#: js/musicutils.js:629 -#: js/musicutils.js:812 -#: js/musicutils.js:911 -#.TRANS: augmented is a music term related to intervals -msgid "augmented" +#: js/blocks/ToneBlocks.js:431 +msgid "The Distortion block adds distortion to the pitch." msgstr "" -#: js/musicutils.js:631 -#: js/musicutils.js:813 -#: js/musicutils.js:910 -#.TRANS: diminished is a music term related to intervals and mode -msgid "diminished" +#: js/blocks/ToneBlocks.js:438 +#: js/widgets/timbre.js:2100 +#.TRANS: distortion is an alteration in the sound +msgid "distortion" msgstr "" -#: js/musicutils.js:639 -#.TRANS: twelve semi-tone scale for music -msgid "chromatic" +#: js/blocks/ToneBlocks.js:487 +msgid "The Tremolo block adds a wavering effect." msgstr "" -#: js/musicutils.js:640 -msgid "algerian" +#: js/blocks/ToneBlocks.js:495 +#: js/widgets/timbre.js:2092 +#.TRANS: a wavering effect in a musical tone +msgid "tremolo" msgstr "" -#: js/musicutils.js:641 -msgid "spanish" +#: js/blocks/ToneBlocks.js:500 +#: js/blocks/ToneBlocks.js:569 +#: js/blocks/ToneBlocks.js:630 +#: js/blocks/ToneBlocks.js:689 +#: js/widgets/timbre.js:2134 +#: js/widgets/timbre.js:2222 +#: js/widgets/timbre.js:2317 +#: js/widgets/timbre.js:2419 +#.TRANS: rate at which tremolo wavers +msgid "rate" msgstr "" -#: js/musicutils.js:643 -#.TRANS: modal scale in music -msgid "octatonic" +#: js/blocks/ToneBlocks.js:502 +#: js/blocks/ToneBlocks.js:630 +#: js/widgets/timbre.js:2137 +#: js/widgets/timbre.js:2328 +#.TRANS: amplitude of tremolo waver +msgid "depth" msgstr "" -#: js/musicutils.js:645 -#.TRANS: harmonic major scale in music -msgid "harmonic major" +#: js/blocks/ToneBlocks.js:559 +msgid "The Phaser block adds a sweeping sound." msgstr "" -#: js/musicutils.js:647 -#.TRANS: natural minor scales in music -msgid "natural minor" +#: js/blocks/ToneBlocks.js:566 +#: js/widgets/timbre.js:2098 +#.TRANS: alter the phase of the sound +msgid "phaser" msgstr "" -#: js/musicutils.js:649 -#.TRANS: harmonic minor scale in music -msgid "harmonic minor" +#: js/blocks/ToneBlocks.js:569 +#: js/turtleactions/IntervalsActions.js:114 +#: js/widgets/timbre.js:2422 +msgid "octaves" msgstr "" -#: js/musicutils.js:651 -#.TRANS: melodic minor scale in music -msgid "melodic minor" +#: js/blocks/ToneBlocks.js:569 +#: js/widgets/timbre.js:2425 +msgid "base frequency" msgstr "" -#: js/musicutils.js:655 -#.TRANS: modal scale for music -msgid "dorian" +#: js/blocks/ToneBlocks.js:619 +msgid "The Chorus block adds a chorus effect." msgstr "" -#: js/musicutils.js:657 -#.TRANS: modal scale for music -msgid "phrygian" +#: js/blocks/ToneBlocks.js:627 +#: js/widgets/timbre.js:2096 +#.TRANS: musical effect to simulate a choral sound +msgid "chorus" msgstr "" -#: js/musicutils.js:659 -#.TRANS: modal scale for music -msgid "lydian" +#: js/blocks/ToneBlocks.js:630 +msgid "delay" msgstr "" -#: js/musicutils.js:661 -#.TRANS: modal scale for music -msgid "mixolydian" +#: js/blocks/ToneBlocks.js:678 +msgid "The Vibrato block adds a rapid, slight variation in pitch." msgstr "" -#: js/musicutils.js:665 -#.TRANS: modal scale for music -msgid "locrian" +#: js/blocks/ToneBlocks.js:686 +#: js/widgets/timbre.js:2094 +#.TRANS: a rapid, slight variation in pitch +msgid "vibrato" msgstr "" -#: js/musicutils.js:667 -#.TRANS: minor jazz scale for music -msgid "jazz minor" +#: js/blocks/ToneBlocks.js:689 +#: js/widgets/timbre.js:2221 +msgid "intensity" msgstr "" -#: js/musicutils.js:669 -#.TRANS: bebop scale for music -msgid "bebop" +#: js/blocks/ToneBlocks.js:733 +#.TRANS: select synthesizer +msgid "set synth" msgstr "" -#: js/musicutils.js:670 -msgid "arabic" +#: js/blocks/ToneBlocks.js:804 +msgid "synth name" msgstr "" -#: js/musicutils.js:671 -msgid "byzantine" +#: js/blocks/ToneBlocks.js:842 +msgid "set default instrument" msgstr "" -#: js/musicutils.js:673 -#.TRANS: musical scale for music by Verdi -msgid "enigmatic" +#: js/blocks/ToneBlocks.js:895 +#: js/blocks/ToneBlocks.js:943 +#.TRANS: set the characteristics of a custom instrument +msgid "set instrument" msgstr "" -#: js/musicutils.js:674 -msgid "ethiopian" +#: js/blocks/ToneBlocks.js:898 +#: js/blocks/ToneBlocks.js:926 +#: js/blocks/ToneBlocks.js:932 +msgid "The Set instrument block selects a voice for the synthesizer," msgstr "" -#: js/musicutils.js:676 -#.TRANS: Ethiopic scale for music -msgid "geez" +#: js/blocks/ToneBlocks.js:900 +#: js/blocks/ToneBlocks.js:934 +msgid "eg guitar piano violin or cello." msgstr "" -#: js/musicutils.js:677 -msgid "hindu" +#: js/blocks/ToneBlocks.js:1015 +msgid "Import a sound file to use as an instrument and set its pitch center." msgstr "" -#: js/musicutils.js:678 -msgid "hungarian" +#: js/blocks/ToneBlocks.js:1110 +msgid "Upload a sound file to connect with the sample block." msgstr "" -#: js/musicutils.js:680 -#.TRANS: minor Romanian scale for music -msgid "romanian minor" +#: js/blocks/VolumeBlocks.js:35 +msgid "synth volume" msgstr "" -#: js/musicutils.js:681 -msgid "spanish gypsy" +#: js/blocks/VolumeBlocks.js:39 +msgid "The Synth volume block returns the current volume of the current synthesizer." msgstr "" -#: js/musicutils.js:683 -#.TRANS: musical scale for Mid-Eastern music -msgid "maqam" +#: js/blocks/VolumeBlocks.js:105 +msgid "master volume" msgstr "" -#: js/musicutils.js:685 -#.TRANS: minor blues scale for music -msgid "minor blues" +#: js/blocks/VolumeBlocks.js:109 +msgid "The Master volume block returns the master volume." msgstr "" -#: js/musicutils.js:687 -#.TRANS: major blues scale for music -msgid "major blues" +#: js/blocks/VolumeBlocks.js:355 +#: js/blocks/VolumeBlocks.js:524 +msgid "set synth volume" msgstr "" -#: js/musicutils.js:688 -msgid "whole tone" +#: js/blocks/VolumeBlocks.js:362 +#: js/blocks/VolumeBlocks.js:545 +msgid "synth" msgstr "" -#: js/musicutils.js:690 -#.TRANS: pentatonic is a general term that means "five note scale". This scale is typically known as "minor pentatonic" -msgid "minor pentatonic" +#: js/blocks/VolumeBlocks.js:403 +#: js/blocks/VolumeBlocks.js:577 +#: js/blocks/VolumeBlocks.js:740 +#: js/turtleactions/VolumeActions.js:173 +msgid "Setting volume to 0." msgstr "" -#: js/musicutils.js:692 -#.TRANS: pentatonic is a general term that means "five note scale". This scale is typically known as "major pentatonic" -msgid "major pentatonic" +#: js/blocks/VolumeBlocks.js:440 +msgid "Synth not found" msgstr "" -#: js/musicutils.js:693 -msgid "chinese" +#: js/blocks/VolumeBlocks.js:494 +msgid "set drum volume" msgstr "" -#: js/musicutils.js:694 -msgid "egyptian" +#: js/blocks/VolumeBlocks.js:530 +msgid "The Set synth volume block will change the volume of a particular synth," msgstr "" -#: js/musicutils.js:696 -#.TRANS: https://en.wikipedia.org/wiki/Hirajoshi_scale NOTE: There are three different versions of this scale -msgid "hirajoshi" +#: js/blocks/VolumeBlocks.js:532 +msgid "eg guitar violin snare drum etc." msgstr "" -#: js/musicutils.js:697 -msgid "Japan" +#: js/blocks/VolumeBlocks.js:534 +msgid "The default volume is 50." msgstr "" -#: js/musicutils.js:699 -#.TRANS: https://en.wikipedia.org/wiki/In_scale and https://en.wikipedia.org/wiki/Sakura_Sakura -msgid "in" +#: js/blocks/VolumeBlocks.js:536 +msgid "The range is 0 for silence to 100 for full volume." msgstr "" -#: js/musicutils.js:701 -#.TRANS: https://en.wikipedia.org/wiki/Miny%C5%8D_scale -msgid "minyo" +#: js/blocks/VolumeBlocks.js:597 +msgid "set panning" msgstr "" -#: js/musicutils.js:703 -#.TRANS: Italian mathematician -msgid "fibonacci" +#: js/blocks/VolumeBlocks.js:603 +msgid "The Set Panning block sets the panning for all synthesizers." msgstr "" -#: js/musicutils.js:708 -#: js/musicutils.js:1106 -#.TRANS: lowpass filter -msgid "lowpass" +#: js/blocks/VolumeBlocks.js:625 +msgid "Warning: Sound is coming out from only the left or right side." msgstr "" -#: js/musicutils.js:710 -#: js/musicutils.js:1107 -#.TRANS: bandpass filter -msgid "bandpass" +#: js/blocks/VolumeBlocks.js:647 +#: js/blocks/VolumeBlocks.js:695 +msgid "set master volume" msgstr "" -#: js/musicutils.js:712 -#: js/musicutils.js:1108 -#.TRANS: high-shelf filter -msgid "highshelf" +#: js/blocks/VolumeBlocks.js:653 +msgid "The Set master volume block sets the volume for all synthesizers." msgstr "" -#: js/musicutils.js:714 -#: js/musicutils.js:1109 -#.TRANS: low-shelf filter -msgid "lowshelf" +#: js/blocks/VolumeBlocks.js:784 +msgid "The Set relative volume block changes the volume of the contained notes." msgstr "" -#: js/musicutils.js:716 -#: js/musicutils.js:1110 -#.TRANS: notch-shelf filter -msgid "notch" +#: js/blocks/VolumeBlocks.js:791 +msgid "set relative volume" msgstr "" -#: js/musicutils.js:718 -#: js/musicutils.js:1111 -#.TRANS: all-pass filter -msgid "allpass" +#: js/blocks/VolumeBlocks.js:857 +msgid "decrescendo" msgstr "" -#: js/musicutils.js:720 -#: js/musicutils.js:1112 -#.TRANS: peaking filter -msgid "peaking" +#: js/blocks/VolumeBlocks.js:921 +msgid "crescendo" msgstr "" -#: js/musicutils.js:731 -#: js/synthutils.js:58 -#.TRANS: musical instrument -msgid "violin" +#: js/blocks/WidgetBlocks.js:81 +#.TRANS: sound envelope (ADSR) +msgid "envelope" msgstr "" -#: js/musicutils.js:732 -#: js/synthutils.js:60 -#.TRANS: viola musical instrument -msgid "viola" +#: js/blocks/WidgetBlocks.js:89 +#.TRANS: Attack time is the time taken for initial run-up of level from nil to peak, beginning when the key is first pressed. +msgid "attack" msgstr "" -#: js/musicutils.js:733 -#: js/synthutils.js:98 -#.TRANS: xylophone musical instrument -msgid "xylophone" +#: js/blocks/WidgetBlocks.js:91 +#.TRANS: Decay time is the time taken for the subsequent run down from the attack level to the designated sustain level. +msgid "decay" msgstr "" -#: js/musicutils.js:734 -#: js/synthutils.js:120 -#.TRANS: vibraphone musical instrument -msgid "vibraphone" +#: js/blocks/WidgetBlocks.js:93 +#.TRANS: Sustain level is the level during the main sequence of the sound's duration, until the key is released. +msgid "sustain" msgstr "" -#: js/musicutils.js:735 -#: js/synthutils.js:62 -#.TRANS: musical instrument -msgid "cello" +#: js/blocks/WidgetBlocks.js:95 +#.TRANS: Release time is the time taken for the level to decay from the sustain level to zero after the key is released. +msgid "release" msgstr "" -#: js/musicutils.js:737 -#: js/synthutils.js:66 -#.TRANS: viola musical instrument -msgid "double bass" +#: js/blocks/WidgetBlocks.js:113 +msgid "Attack value should be from 0 to 100." msgstr "" -#: js/musicutils.js:738 -#: js/synthutils.js:68 -#: js/rhythmruler.js:2119 -#.TRANS: musical instrument -msgid "guitar" +#: js/blocks/WidgetBlocks.js:116 +msgid "Decay value should be from 0 to 100." msgstr "" -#: js/musicutils.js:739 -#: js/synthutils.js:70 -#.TRANS: musical instrument -msgid "acoustic guitar" +#: js/blocks/WidgetBlocks.js:119 +msgid "Sustain value should be from 0 to 100." msgstr "" -#: js/musicutils.js:740 -#: js/synthutils.js:72 -#.TRANS: musical instrument -msgid "flute" +#: js/blocks/WidgetBlocks.js:122 +msgid "Release value should be from 0-100." msgstr "" -#: js/musicutils.js:741 -#: js/synthutils.js:74 -#.TRANS: musical instrument -msgid "clarinet" +#: js/blocks/WidgetBlocks.js:140 +msgid "You are adding multiple envelope blocks." msgstr "" -#: js/musicutils.js:742 -#: js/synthutils.js:76 -#.TRANS: musical instrument -msgid "saxophone" +#: js/blocks/WidgetBlocks.js:171 +#.TRANS: a filter removes some unwanted components from a signal +msgid "filter" msgstr "" -#: js/musicutils.js:743 -#: js/synthutils.js:78 -#.TRANS: musical instrument -msgid "tuba" +#: js/blocks/WidgetBlocks.js:181 +#: js/widgets/timbre.js:1818 +#.TRANS: rolloff is the steepness of a change in frequency. +msgid "rolloff" msgstr "" -#: js/musicutils.js:744 -#: js/synthutils.js:80 -#.TRANS: musical instrument -msgid "trumpet" +#: js/blocks/WidgetBlocks.js:213 +#.TRANS: rolloff is the steepness of a change in frequency. +msgid "Rolloff value should be either -12, -24, -48, or -96 decibels/octave." msgstr "" -#: js/musicutils.js:745 -#: js/synthutils.js:82 -#.TRANS: musical instrument -msgid "oboe" +#: js/blocks/WidgetBlocks.js:252 +msgid "The Temperament tool is used to define custom tuning." msgstr "" -#: js/musicutils.js:746 -#: js/synthutils.js:84 -#.TRANS: musical instrument -msgid "trombone" +#: js/blocks/WidgetBlocks.js:332 +#: js/blocks/WidgetBlocks.js:1573 +#: js/widgets/sampler.js:547 +msgid "Upload a sample and adjust its pitch center." msgstr "" -#: js/musicutils.js:747 -#: js/synthutils.js:100 -#.TRANS: polytone synthesizer -msgid "electronic synth" +#: js/blocks/WidgetBlocks.js:339 +#.TRANS: the speed at music is should be played. +msgid "sampler" msgstr "" -#: js/musicutils.js:748 -#: js/synthutils.js:102 -#.TRANS: simple monotone synthesizer -msgid "simple 1" +#: js/blocks/WidgetBlocks.js:517 +msgid "The Meter block opens a tool to select strong beats for the meter." msgstr "" -#: js/musicutils.js:749 -msgid "simple 2" +#: js/blocks/WidgetBlocks.js:573 +msgid "The oscilloscope block opens a tool to visualize waveforms." msgstr "" -#: js/musicutils.js:750 -msgid "simple 3" +#: js/blocks/WidgetBlocks.js:578 +msgid "oscilloscope" msgstr "" -#: js/musicutils.js:751 -msgid "simple 4" +#: js/blocks/WidgetBlocks.js:645 +msgid "The Custom mode block opens a tool to explore musical mode (the spacing of the notes in a scale)." msgstr "" -#: js/musicutils.js:753 -#: js/synthutils.js:49 -#.TRANS: brown noise synthesizer -msgid "brown noise" +#: js/blocks/WidgetBlocks.js:651 +#.TRANS: musical mode is the pattern of half-steps in an octave, e.g., Major or Minor modes +msgid "custom mode" msgstr "" -#: js/musicutils.js:754 -#: js/synthutils.js:51 -#.TRANS: pink noise synthesizer -msgid "pink noise" +#: js/blocks/WidgetBlocks.js:700 +msgid "The Tempo block opens a metronome to visualize the beat." msgstr "" -#: js/musicutils.js:756 -#: js/synthutils.js:127 -#: js/rhythmruler.js:1670 -#: js/rhythmruler.js:1928 -#.TRANS: musical instrument -msgid "snare drum" +#: js/blocks/WidgetBlocks.js:762 +msgid "The Arpeggio Widget is used to compose chord sequences." msgstr "" -#: js/musicutils.js:757 -#: js/synthutils.js:129 -#.TRANS: musical instrument -msgid "kick drum" +#: js/blocks/WidgetBlocks.js:837 +msgid "The Pitch drum matrix is used to map pitches to drum sounds." msgstr "" -#: js/musicutils.js:758 -#: js/synthutils.js:131 -#.TRANS: musical instrument -msgid "tom tom" +#: js/blocks/WidgetBlocks.js:842 +#.TRANS: makes a mapping between pitches and drum sounds +msgid "pitch-drum mapper" msgstr "" -#: js/musicutils.js:759 -#: js/synthutils.js:133 -#.TRANS: musical instrument -msgid "floor tom" +#: js/blocks/WidgetBlocks.js:891 +msgid "You must have at least one pitch block and one drum block in the matrix." msgstr "" -#: js/musicutils.js:760 -#: js/synthutils.js:135 -#.TRANS: musical instrument -msgid "bass drum" +#: js/blocks/WidgetBlocks.js:920 +msgid "The Pitch slider tool to is used to generate pitches at selected frequencies." msgstr "" -#: js/musicutils.js:761 -#: js/synthutils.js:137 -#.TRANS: a drum made from an inverted cup -msgid "cup drum" +#: js/blocks/WidgetBlocks.js:925 +#.TRANS: widget to generate pitches using a slider +msgid "pitch slider" msgstr "" -#: js/musicutils.js:762 -#: js/synthutils.js:139 -#.TRANS: musical instrument -msgid "darbuka drum" +#: js/blocks/WidgetBlocks.js:977 +msgid "chromatic keyboard" msgstr "" -#: js/musicutils.js:763 -#: js/synthutils.js:143 -#.TRANS: musical instrument -msgid "hi hat" +#: js/blocks/WidgetBlocks.js:1011 +#: js/blocks/WidgetBlocks.js:1077 +#.TRANS: widget to generate pitches using a slider +msgid "music keyboard" msgstr "" -#: js/musicutils.js:764 -#: js/synthutils.js:145 -#.TRANS: a small metal bell -msgid "ride bell" +#: js/blocks/WidgetBlocks.js:1062 +#: js/blocks/WidgetBlocks.js:1069 +msgid "The Music keyboard block opens a piano keyboard that can be used to create notes." msgstr "" -#: js/musicutils.js:765 -#: js/synthutils.js:147 -#.TRANS: musical instrument -msgid "cow bell" +#: js/blocks/WidgetBlocks.js:1128 +msgid "The Pitch staircase tool to is used to generate pitches from a given ratio." msgstr "" -#: js/musicutils.js:766 -msgid "japanese drum" +#: js/blocks/WidgetBlocks.js:1135 +#.TRANS: generate a progressive sequence of pitches +msgid "pitch staircase" msgstr "" -#: js/musicutils.js:767 -#: js/synthutils.js:153 -#.TRANS: musical instrument -msgid "japanese bell" +#: js/blocks/WidgetBlocks.js:1222 +msgid "The Rhythm Maker block opens a tool to create drum machines." msgstr "" -#: js/musicutils.js:768 -#: js/synthutils.js:149 -#.TRANS: musical instrument -msgid "triangle bell" +#: js/blocks/WidgetBlocks.js:1291 +msgid "G major scale" msgstr "" -#: js/musicutils.js:769 -#: js/synthutils.js:151 -#.TRANS: musical instrument -msgid "finger cymbals" +#: js/blocks/WidgetBlocks.js:1326 +msgid "C major scale" msgstr "" -#: js/musicutils.js:770 -#: js/synthutils.js:155 -#.TRANS: a musically tuned set of bells -msgid "chime" +#: js/blocks/WidgetBlocks.js:1366 +msgid "The Phrase Maker block opens a tool to create musical phrases." msgstr "" -#: js/musicutils.js:771 -#: js/synthutils.js:157 -#.TRANS: a musical instrument -msgid "gong" +#: js/blocks/WidgetBlocks.js:1373 +#.TRANS: assigns pitch to a sequence of beats to generate a melody +msgid "phrase maker" msgstr "" -#: js/musicutils.js:772 -#: js/synthutils.js:159 -#.TRANS: sound effect -msgid "clang" +#: js/blocks/WidgetBlocks.js:1444 +msgid "You must have at least one pitch block and one rhythm block in the matrix." msgstr "" -#: js/musicutils.js:773 -#: js/synthutils.js:161 -#.TRANS: sound effect -msgid "crash" +#: js/blocks/WidgetBlocks.js:1503 +msgid "The Status block opens a tool for inspecting the status of Music Blocks as it is running." msgstr "" -#: js/musicutils.js:774 -#: js/synthutils.js:163 -#.TRANS: sound effect -msgid "bottle" +#: js/blocks/WidgetBlocks.js:1580 +#.TRANS: AI-generated music +msgid "aimusic" msgstr "" -#: js/musicutils.js:775 -#: js/synthutils.js:165 -#.TRANS: sound effect -msgid "clap" +#: js/turtleactions/MeterActions.js:101 +#: js/turtleactions/MeterActions.js:139 +msgid "beats per minute must be greater than" msgstr "" -#: js/musicutils.js:776 -#: js/synthutils.js:167 -#.TRANS: sound effect -msgid "slap" +#: js/turtleactions/MeterActions.js:111 +#: js/turtleactions/MeterActions.js:149 +msgid "maximum" msgstr "" -#: js/musicutils.js:777 -#: js/synthutils.js:169 -#.TRANS: sound effect -msgid "splash" +#: js/turtleactions/MeterActions.js:117 +#: js/turtleactions/MeterActions.js:155 +msgid "beats per minute is" msgstr "" -#: js/musicutils.js:778 -#: js/synthutils.js:171 -#.TRANS: sound effect -msgid "bubbles" +#: js/turtleactions/DictActions.js:75 +#: js/turtleactions/DictActions.js:142 +#: js/turtleactions/DictActions.js:172 +msgid "font" msgstr "" -#: js/musicutils.js:779 -#: js/synthutils.js:173 -#.TRANS: sound effect -msgid "raindrop" +#: js/turtleactions/DictActions.js:255 +msgid "Dictionary with this name does not exist" msgstr "" -#: js/musicutils.js:780 -#: js/synthutils.js:175 -#.TRANS: animal sound effect -msgid "cat" +#: js/turtleactions/DictActions.js:259 +msgid "Key with this name does not exist in " msgstr "" -#: js/musicutils.js:781 -#: js/synthutils.js:177 -#.TRANS: animal sound effect -msgid "cricket" +#: js/turtleactions/DrumActions.js:227 +msgid "Noise Block: Did you mean to use a Note block?" msgstr "" -#: js/musicutils.js:782 -#: js/synthutils.js:179 -#.TRANS: animal sound effect -msgid "dog" +#: js/turtleactions/IntervalsActions.js:113 +msgid "one" msgstr "" -#: js/musicutils.js:784 -#: js/synthutils.js:86 -#.TRANS: musical instrument -msgid "banjo" +#: js/turtleactions/IntervalsActions.js:113 +msgid "two" msgstr "" -#: js/musicutils.js:785 -#: js/synthutils.js:88 -#.TRANS: musical instrument -msgid "koto" +#: js/turtleactions/IntervalsActions.js:113 +msgid "three" msgstr "" -#: js/musicutils.js:786 -#: js/synthutils.js:90 -#.TRANS: musical instrument -msgid "dulcimer" +#: js/turtleactions/IntervalsActions.js:113 +msgid "four" msgstr "" -#: js/musicutils.js:787 -#: js/synthutils.js:92 -#.TRANS: musical instrument -msgid "electric guitar" +#: js/turtleactions/IntervalsActions.js:113 +msgid "five" msgstr "" -#: js/musicutils.js:788 -#: js/synthutils.js:94 -#.TRANS: musical instrument -msgid "bassoon" +#: js/turtleactions/IntervalsActions.js:113 +msgid "six" msgstr "" -#: js/musicutils.js:789 -#: js/synthutils.js:96 -#.TRANS: musical instrument -msgid "celeste" +#: js/turtleactions/IntervalsActions.js:113 +msgid "seven" msgstr "" -#: js/musicutils.js:791 -#: js/musicutils.js:1123 -#: js/musicutils.js:1131 -#: js/temperament.js:650 -#.TRANS: musical temperament -msgid "equal" +#: js/turtleactions/IntervalsActions.js:113 +msgid "eight" msgstr "" -#: js/musicutils.js:793 -#: js/musicutils.js:1125 -#: js/musicutils.js:1133 -#.TRANS: musical temperament -msgid "Pythagorean" +#: js/turtleactions/IntervalsActions.js:113 +msgid "nine" msgstr "" -#: js/musicutils.js:795 -#: js/musicutils.js:1124 -#: js/musicutils.js:1132 -#.TRANS: musical temperament -msgid "just intonation" +#: js/turtleactions/IntervalsActions.js:119 +msgid "a" msgstr "" -#: js/musicutils.js:797 -#: js/musicutils.js:1126 -#: js/musicutils.js:1127 -#: js/musicutils.js:1134 -#: js/musicutils.js:1135 -#.TRANS: musical temperament -msgid "meantone" +#: js/turtleactions/IntervalsActions.js:120 +msgid "below" msgstr "" -#: js/musicutils.js:814 -msgid "major 7th" +#: js/turtleactions/IntervalsActions.js:124 +msgid "above" msgstr "" -#: js/musicutils.js:815 -msgid "minor 7th" +#: js/turtleactions/IntervalsActions.js:131 +msgid "plus" msgstr "" -#: js/musicutils.js:816 -msgid "dominant 7th" +#: js/turtleactions/IntervalsActions.js:139 +msgid " below" msgstr "" -#: js/musicutils.js:817 -msgid "minor-major 7th" +#: js/turtleactions/IntervalsActions.js:257 +msgid "Adding missing pitch number 0." msgstr "" -#: js/musicutils.js:818 -msgid "fully-diminished 7th" +#: js/turtleactions/IntervalsActions.js:265 +msgid "Ignoring pitch numbers less than zero or greater than eleven." msgstr "" -#: js/musicutils.js:819 -msgid "half-diminished 7th" +#: js/turtleactions/IntervalsActions.js:271 +msgid "Ignoring duplicate pitch numbers." msgstr "" -#: js/musicutils.js:4379 -#: js/musicutils.js:4416 -msgid "current" +#: js/turtleactions/ToneActions.js:134 +msgid "Vibrato intensity must be between 1 and 100." msgstr "" -#: js/musicutils.js:4382 -#: js/musicutils.js:4407 -msgid "next" +#: js/turtleactions/ToneActions.js:139 +msgid "Vibrato rate must be greater than 0." msgstr "" -#: js/musicutils.js:4385 -#: js/musicutils.js:4412 -msgid "previous" +#: js/turtleactions/ToneActions.js:192 +#: js/turtleactions/ToneActions.js:265 +#.TRANS: Depth is the intesity of the tremolo or chorus effect. +msgid "Depth is out of range." msgstr "" -#: js/synthutils.js:104 -#.TRANS: simple monotone synthesizer -msgid "simple-2" +#: js/turtleactions/ToneActions.js:301 +msgid "Distortion must be from 0 to 100." msgstr "" -#: js/synthutils.js:106 -#.TRANS: simple monotone synthesizer -msgid "simple-3" +#: js/turtleactions/ToneActions.js:332 +#.TRANS: partials components in a harmonic series +msgid "Partial must be greater than or equal to 0." msgstr "" -#: js/synthutils.js:108 -#.TRANS: simple monotone synthesizer -msgid "simple-4" +#: js/turtleactions/ToneActions.js:378 +#: js/turtleactions/ToneActions.js:417 +#: js/turtleactions/ToneActions.js:456 +#: js/widgets/timbre.js:782 +msgid "Unable to use synth due to existing oscillator" msgstr "" -#: js/synthutils.js:141 -#.TRANS: musical instrument -msgid "taiko" +#: js/turtleactions/ToneActions.js:388 +#: js/turtleactions/ToneActions.js:427 +msgid "The input cannot be negative." msgstr "" -#: js/modewidget.js:86 -#: js/modewidget.js:88 -#: js/modewidget.js:642 -#: js/modewidget.js:644 -#: js/modewidget.js:712 -#: js/modewidget.js:714 -#: js/temperament.js:2078 -#: js/rhythmruler.js:189 -#: js/rhythmruler.js:1410 -#: js/rhythmruler.js:1412 -#: js/rhythmruler.js:1435 -#: js/rhythmruler.js:1437 -#: js/meterwidget.js:89 -#: js/meterwidget.js:91 +#: js/widgets/modewidget.js:86 +#: js/widgets/modewidget.js:88 +#: js/widgets/modewidget.js:642 +#: js/widgets/modewidget.js:644 +#: js/widgets/modewidget.js:712 +#: js/widgets/modewidget.js:714 +#: js/widgets/meterwidget.js:194 +#: js/widgets/meterwidget.js:196 +#: js/widgets/temperament.js:2236 +#: js/widgets/rhythmruler.js:457 +#: js/widgets/rhythmruler.js:1790 +#: js/widgets/rhythmruler.js:1792 +#: js/widgets/rhythmruler.js:1816 +#: js/widgets/rhythmruler.js:1818 msgid "Play all" msgstr "" -#: js/modewidget.js:115 -#: js/pitchstaircase.js:641 -#: js/phrasemaker.js:339 -#: js/pitchdrummatrix.js:94 -#: js/pitchslider.js:125 -#: js/temperament.js:2083 -#: js/musickeyboard.js:530 -#: js/timbre.js:756 -#: js/meterwidget.js:124 -#: js/arpeggio.js:103 +#: js/widgets/modewidget.js:115 +#: js/widgets/meterwidget.js:229 +#: js/widgets/pitchdrummatrix.js:166 +#: js/widgets/pitchslider.js:125 +#: js/widgets/pitchstaircase.js:641 +#: js/widgets/temperament.js:2244 +#: js/widgets/timbre.js:756 +#: js/widgets/arpeggio.js:103 +#: js/widgets/musickeyboard.js:688 +#: js/widgets/phrasemaker.js:550 msgid "Save" msgstr "" -#: js/modewidget.js:121 -#: js/pitchstaircase.js:686 -#: js/phrasemaker.js:356 -#: js/pitchdrummatrix.js:109 -#: js/musickeyboard.js:534 -#: js/rhythmruler.js:269 -#: js/arpeggio.js:118 +#: js/widgets/modewidget.js:121 +#: js/widgets/pitchdrummatrix.js:181 +#: js/widgets/pitchstaircase.js:686 +#: js/widgets/arpeggio.js:118 +#: js/widgets/musickeyboard.js:696 +#: js/widgets/phrasemaker.js:567 +#: js/widgets/rhythmruler.js:601 #.TRANS: clear all subdivisions from the ruler. msgid "Clear" msgstr "" -#: js/modewidget.js:127 +#: js/widgets/modewidget.js:127 msgid "Rotate counter clockwise" msgstr "" -#: js/modewidget.js:133 +#: js/widgets/modewidget.js:133 msgid "Rotate clockwise" msgstr "" -#: js/modewidget.js:139 +#: js/widgets/modewidget.js:139 msgid "Invert" msgstr "" -#: js/modewidget.js:145 -#: js/pitchstaircase.js:678 -#: js/rhythmruler.js:258 -#: js/timbre.js:963 +#: js/widgets/modewidget.js:145 +#: js/widgets/pitchstaircase.js:678 +#: js/widgets/timbre.js:963 +#: js/widgets/rhythmruler.js:578 msgid "Undo" msgstr "" -#: js/modewidget.js:163 +#: js/widgets/modewidget.js:163 #.TRANS: A circle of notes represents the musical mode. msgid "Click in the circle to select notes for the mode." msgstr "" -#: js/modewidget.js:1017 -#: js/pitchstaircase.js:580 -#: js/phrasemaker.js:4855 -#: js/temperament.js:1754 -#: js/rhythmruler.js:1865 -#: js/rhythmruler.js:2081 -#: js/tempo.js:414 +#: js/widgets/modewidget.js:1017 +#: js/widgets/pitchstaircase.js:580 +#: js/widgets/temperament.js:1929 +#: js/widgets/tempo.js:414 +#: js/widgets/phrasemaker.js:5356 +#: js/widgets/rhythmruler.js:2254 +#: js/widgets/rhythmruler.js:2472 msgid "New action block generated!" msgstr "" -#: js/oscilloscope.js:79 -msgid "Zoom In" -msgstr "" - -#: js/oscilloscope.js:88 -msgid "Zoom Out" -msgstr "" - -#: js/pitchstaircase.js:624 -msgid "Play chord" -msgstr "" - -#: js/pitchstaircase.js:632 -msgid "Play scale" +#: js/widgets/meterwidget.js:275 +msgid "Reset" msgstr "" -#: js/pitchstaircase.js:696 -msgid "Click on a note to create a new step." +#: js/widgets/meterwidget.js:301 +msgid "Click in the circle to select strong beats for the meter." msgstr "" -#: js/phrasemaker.js:363 -msgid "Export" +#: js/widgets/oscilloscope.js:79 +msgid "Zoom In" msgstr "" -#: js/phrasemaker.js:370 -msgid "Sort" +#: js/widgets/oscilloscope.js:88 +msgid "Zoom Out" msgstr "" -#: js/phrasemaker.js:373 -#: js/musickeyboard.js:559 -msgid "Add note" +#: js/widgets/pitchdrummatrix.js:356 +#: js/widgets/pitchdrummatrix.js:752 +msgid "Click in the grid to map notes to drums." msgstr "" -#: js/phrasemaker.js:764 -msgid "Click on the table to add notes." +#: js/widgets/pitchslider.js:103 +msgid "Move up" msgstr "" -#: js/phrasemaker.js:2414 -#: js/phrasemaker.js:2543 -msgid "tuplet value" +#: js/widgets/pitchslider.js:114 +msgid "Move down" msgstr "" -#: js/pitchdrummatrix.js:270 -#: js/pitchdrummatrix.js:639 -msgid "Click in the grid to map notes to drums." +#: js/widgets/pitchslider.js:136 +msgid "Click on the slider to create a note block." msgstr "" -#: js/pitchslider.js:103 -msgid "Move up" +#: js/widgets/pitchstaircase.js:624 +msgid "Play chord" msgstr "" -#: js/pitchslider.js:114 -msgid "Move down" +#: js/widgets/pitchstaircase.js:632 +msgid "Play scale" msgstr "" -#: js/pitchslider.js:136 -msgid "Click on the slider to create a note block." +#: js/widgets/pitchstaircase.js:696 +msgid "Click on a note to create a new step." msgstr "" -#: js/temperament.js:215 +#: js/widgets/temperament.js:321 msgid "back to 2:1 octave space" msgstr "" -#: js/temperament.js:323 +#: js/widgets/temperament.js:447 msgid "edit" msgstr "" -#: js/temperament.js:330 -#: js/temperament.js:332 -#: js/temperament.js:1336 -#: js/temperament.js:1338 +#: js/widgets/temperament.js:454 +#: js/widgets/temperament.js:456 +#: js/widgets/temperament.js:1493 +#: js/widgets/temperament.js:1495 msgid "close" msgstr "" -#: js/temperament.js:423 -#: js/temperament.js:736 -#: js/temperament.js:743 -#: js/temperament.js:845 -#: js/temperament.js:935 -#: js/temperament.js:942 -#: js/temperament.js:1015 -#: js/temperament.js:1284 -#: js/temperament.js:1354 -#: js/temperament.js:1430 +#: js/widgets/temperament.js:552 +#: js/widgets/temperament.js:877 +#: js/widgets/temperament.js:884 +#: js/widgets/temperament.js:986 +#: js/widgets/temperament.js:1080 +#: js/widgets/temperament.js:1087 +#: js/widgets/temperament.js:1160 +#: js/widgets/temperament.js:1433 +#: js/widgets/temperament.js:1511 +#: js/widgets/temperament.js:1596 msgid "done" msgstr "" -#: js/temperament.js:477 -#: js/temperament.js:482 -#: js/temperament.js:918 +#: js/widgets/temperament.js:610 +#: js/widgets/temperament.js:615 +#: js/widgets/temperament.js:1063 msgid "ratio" msgstr "" -#: js/temperament.js:483 +#: js/widgets/temperament.js:616 msgid "interval" msgstr "" -#: js/temperament.js:611 +#: js/widgets/temperament.js:744 msgid "non scalar" msgstr "" -#: js/temperament.js:650 +#: js/widgets/temperament.js:787 msgid "ratios" msgstr "" -#: js/temperament.js:650 +#: js/widgets/temperament.js:787 msgid "arbitrary" msgstr "" -#: js/temperament.js:719 +#: js/widgets/temperament.js:860 msgid "number of divisions" msgstr "" -#: js/temperament.js:741 -#: js/temperament.js:858 -#: js/temperament.js:940 -#: js/temperament.js:1033 +#: js/widgets/temperament.js:882 +#: js/widgets/temperament.js:999 +#: js/widgets/temperament.js:1085 +#: js/widgets/temperament.js:1178 msgid "preview" msgstr "" -#: js/temperament.js:788 +#: js/widgets/temperament.js:929 msgid "The Number of divisions is too large." msgstr "" -#: js/temperament.js:921 +#: js/widgets/temperament.js:1066 msgid "recursion" msgstr "" -#: js/temperament.js:1450 +#: js/widgets/temperament.js:1616 msgid "The octave ratio has changed. This changes temperament significantly." msgstr "" -#: js/temperament.js:2087 +#: js/widgets/temperament.js:2248 msgid "Table" msgstr "" -#: js/temperament.js:2185 +#: js/widgets/temperament.js:2356 msgid "Add pitches" msgstr "" -#: js/musickeyboard.js:570 -msgid "Metronome" +#: js/widgets/tempo.js:78 +#: js/widgets/tempo.js:97 +#: js/widgets/tempo.js:99 +#: js/widgets/aiwidget.js:134 +#: js/widgets/aiwidget.js:136 +#: js/widgets/rhythmruler.js:681 +#: js/widgets/rhythmruler.js:683 +#: js/widgets/rhythmruler.js:1864 +#: js/widgets/rhythmruler.js:1866 +#: js/widgets/sampler.js:180 +#: js/widgets/sampler.js:182 +msgid "Pause" msgstr "" -#: js/musickeyboard.js:1296 -#: plugins/rodi.rtp:193 -msgid "duration" +#: js/widgets/tempo.js:113 +msgid "Save tempo" msgstr "" -#: js/musickeyboard.js:2840 -msgid "New action blocks generated!" +#: js/widgets/tempo.js:144 +msgid "speed up" msgstr "" -#: js/musickeyboard.js:2841 -msgid "New action block generated" +#: js/widgets/tempo.js:150 +msgid "slow down" msgstr "" -#: js/musickeyboard.js:2984 -#: js/musickeyboard.js:2992 -msgid "MIDI device present." +#: js/widgets/tempo.js:194 +msgid "Adjust the tempo with the buttons." msgstr "" -#: js/musickeyboard.js:2995 -msgid "No MIDI device found." +#: js/widgets/tempo.js:261 +msgid "Please enter a number between 30 and 1000" msgstr "" -#: js/musickeyboard.js:3000 -msgid "Failed to get MIDI access in browser." +#: js/widgets/tempo.js:268 +#: js/widgets/tempo.js:271 +msgid "The beats per minute must be between 30 and 1000." msgstr "" -#: js/rhythmruler.js:202 -msgid "Save rhythms" +#: js/widgets/tempo.js:287 +msgid "The beats per minute must be below 1000." msgstr "" -#: js/rhythmruler.js:222 -msgid "Save drum machine" +#: js/widgets/tempo.js:303 +msgid "The beats per minute must be above 30" msgstr "" -#: js/rhythmruler.js:263 -#.TRANS: user can tap out a rhythm by clicking on a ruler. -msgid "Tap a rhythm" +#: js/widgets/timbre.js:766 +msgid "Synthesizer" msgstr "" -#: js/rhythmruler.js:342 -#: js/rhythmruler.js:344 -#: js/rhythmruler.js:1481 -#: js/rhythmruler.js:1483 -#: js/sampler.js:110 -#: js/sampler.js:112 -#: js/tempo.js:78 -#: js/tempo.js:97 -#: js/tempo.js:99 -msgid "Pause" +#: js/widgets/timbre.js:789 +msgid "Oscillator" msgstr "" -#: js/rhythmruler.js:478 -msgid "Click on the ruler to divide it." +#: js/widgets/timbre.js:840 +msgid "Envelope" msgstr "" -#: js/rhythmruler.js:603 -#: js/rhythmruler.js:605 -#: js/rhythmruler.js:804 -#: js/rhythmruler.js:806 -#: js/rhythmruler.js:1386 -#: js/rhythmruler.js:1388 -msgid "tap a rhythm" +#: js/widgets/timbre.js:886 +#: planet/js/GlobalTag.js:50 +#.TRANS: On the Planet, we use labels to tag projects. +msgid "Effects" msgstr "" -#: js/rhythmruler.js:1084 -msgid "Maximum value of 256 has been exceeded." +#: js/widgets/timbre.js:904 +msgid "Filter" msgstr "" -#: js/sampler.js:137 -msgid "Warning: Sample is bigger than 1MB." +#: js/widgets/timbre.js:946 +msgid "Add filter" msgstr "" -#: js/sampler.js:142 -msgid "Upload failed: Sample is not a .wav file." +#: js/widgets/timbre.js:987 +msgid "Click on buttons to open the timbre design tools." msgstr "" -#: js/sampler.js:164 -msgid "A new sample block was generated." +#: js/widgets/timbre.js:1273 +msgid "harmonicity" msgstr "" -#: js/sampler.js:255 -msgid "Upload sample" +#: js/widgets/timbre.js:1340 +#: js/widgets/timbre.js:1406 +msgid "modulation index" msgstr "" -#: js/sampler.js:306 -msgid "Save sample" +#: js/widgets/timbre.js:1484 +msgid "vibrato amount" msgstr "" -#: js/sampler.js:697 -#.TRANS: The reference tone is a sound used for comparison. -msgid "reference tone" +#: js/widgets/timbre.js:1919 +msgid "Filter already present." msgstr "" -#: js/tempo.js:113 -msgid "Save tempo" +#: js/widgets/timbre.js:2322 +msgid "delay (MS)" msgstr "" -#: js/tempo.js:144 -msgid "speed up" +#: js/widgets/timbre.js:2507 +msgid "distortion amount" msgstr "" -#: js/tempo.js:150 -msgid "slow down" +#: js/widgets/aiwidget.js:180 +#: js/widgets/sampler.js:227 +msgid "Warning: Sample is bigger than 1MB." msgstr "" -#: js/tempo.js:194 -msgid "Adjust the tempo with the buttons." +#: js/widgets/aiwidget.js:539 +msgid "New start block generated" msgstr "" -#: js/tempo.js:261 -msgid "Please enter a number between 30 and 1000" +#: js/widgets/aiwidget.js:541 +msgid "MIDI loading. This may take some time depending upon the number of notes in the track" msgstr "" -#: js/tempo.js:268 -#: js/tempo.js:271 -msgid "The beats per minute must be between 30 and 1000." +#: js/widgets/aiwidget.js:551 +#: js/widgets/sampler.js:254 +msgid "Upload failed: Sample is not a .wav file." msgstr "" -#: js/tempo.js:287 -msgid "The beats per minute must be below 1000." +#: js/widgets/aiwidget.js:679 +#: js/widgets/sampler.js:432 +msgid "Save sample" msgstr "" -#: js/tempo.js:303 -msgid "The beats per minute must be above 30" +#: js/widgets/aiwidget.js:701 +msgid "AI Music" msgstr "" -#: js/timbre.js:766 -msgid "Synthesizer" +#: js/widgets/arpeggio.js:239 +msgid "Click in the grid to add steps to the arpeggio." msgstr "" -#: js/timbre.js:789 -msgid "Oscillator" +#: js/widgets/help.js:95 +#: js/widgets/help.js:125 +#: js/widgets/help.js:146 +#: js/widgets/help.js:158 +#: js/widgets/help.js:376 +#: js/widgets/help.js:391 +msgid "Take a tour" msgstr "" -#: js/timbre.js:840 -msgid "Envelope" +#: js/widgets/musickeyboard.js:725 +#: js/widgets/phrasemaker.js:584 +msgid "Add note" msgstr "" -#: js/timbre.js:886 -#: js/GlobalTag.js:50 -#.TRANS: On the Planet, we use labels to tag projects. -msgid "Effects" +#: js/widgets/musickeyboard.js:744 +msgid "Metronome" +msgstr "" + +#: js/widgets/musickeyboard.js:1549 +#: plugins/rodi.rtp:193 +msgid "duration" +msgstr "" + +#: js/widgets/musickeyboard.js:3179 +msgid "New action blocks generated" +msgstr "" + +#: js/widgets/musickeyboard.js:3180 +msgid "New action block generated" msgstr "" -#: js/timbre.js:904 -msgid "Filter" +#: js/widgets/musickeyboard.js:3365 +#: js/widgets/musickeyboard.js:3373 +msgid "MIDI device present." msgstr "" -#: js/timbre.js:946 -msgid "Add filter" +#: js/widgets/musickeyboard.js:3376 +msgid "No MIDI device found." msgstr "" -#: js/timbre.js:987 -msgid "Click on buttons to open the timbre design tools." +#: js/widgets/musickeyboard.js:3386 +msgid "Failed to get MIDI access in browser." msgstr "" -#: js/timbre.js:1273 -msgid "harmonicity" +#: js/widgets/phrasemaker.js:574 +msgid "Export" msgstr "" -#: js/timbre.js:1340 -#: js/timbre.js:1406 -msgid "modulation index" +#: js/widgets/phrasemaker.js:581 +msgid "Sort" msgstr "" -#: js/timbre.js:1484 -msgid "vibrato amount" +#: js/widgets/phrasemaker.js:975 +msgid "Click on the table to add notes." msgstr "" -#: js/timbre.js:1919 -msgid "Filter already present." +#: js/widgets/phrasemaker.js:2677 +#: js/widgets/phrasemaker.js:2819 +msgid "tuplet value" msgstr "" -#: js/timbre.js:2322 -msgid "delay (MS)" +#: js/widgets/rhythmruler.js:486 +msgid "Save rhythms" msgstr "" -#: js/timbre.js:2507 -msgid "distortion amount" +#: js/widgets/rhythmruler.js:512 +msgid "Save drum machine" msgstr "" -#: js/meterwidget.js:170 -msgid "Reset" +#: js/widgets/rhythmruler.js:589 +#.TRANS: user can tap out a rhythm by clicking on a ruler. +msgid "Tap a rhythm" msgstr "" -#: js/meterwidget.js:196 -msgid "Click in the circle to select strong beats for the meter." +#: js/widgets/rhythmruler.js:817 +msgid "Click on the ruler to divide it." msgstr "" -#: js/arpeggio.js:239 -msgid "Click in the grid to add steps to the arpeggio." +#: js/widgets/rhythmruler.js:950 +#: js/widgets/rhythmruler.js:952 +#: js/widgets/rhythmruler.js:1152 +#: js/widgets/rhythmruler.js:1154 +#: js/widgets/rhythmruler.js:1765 +#: js/widgets/rhythmruler.js:1767 +msgid "tap a rhythm" msgstr "" -#: js/ProjectStorage.js:243 -msgid "anonymous" +#: js/widgets/rhythmruler.js:1459 +msgid "Maximum value of 256 has been exceeded." msgstr "" -#: js/GlobalCard.js:68 -msgid "Share" +#: js/widgets/sampler.js:237 +msgid "Recording started..." msgstr "" -#: js/GlobalCard.js:74 -msgid "Flags" +#: js/widgets/sampler.js:245 +msgid "Recording complete..." msgstr "" -#: js/LocalCard.js:36 -msgid "View published project" +#: js/widgets/sampler.js:283 +msgid "A new sample block was generated." msgstr "" -#: js/LocalCard.js:42 -msgid "Publish project" +#: js/widgets/sampler.js:378 +msgid "Upload sample" msgstr "" -#: js/LocalCard.js:51 -msgid "Edit project" +#: js/widgets/sampler.js:399 +msgid "Warning: Your sample cannot be loaded because it is >1MB." msgstr "" -#: js/LocalCard.js:52 -msgid "Delete project" +#: js/widgets/sampler.js:448 +msgid "Toggle Mic" msgstr "" -#: js/LocalCard.js:53 -msgid "Download project" +#: js/widgets/sampler.js:458 +msgid "Playback" msgstr "" -#: js/LocalCard.js:55 -msgid "Duplicate project" +#: js/widgets/sampler.js:979 +#.TRANS: The reference tone is a sound used for comparison. +msgid "reference tone" msgstr "" -#: js/GlobalTag.js:28 +#: planet/js/GlobalTag.js:28 #.TRANS: On the Planet, we use labels to tag projects. msgid "All Projects" msgstr "" -#: js/GlobalTag.js:30 -#: js/StringHelper.js:37 +#: planet/js/GlobalTag.js:30 +#: planet/js/StringHelper.js:37 #.TRANS: On the Planet, we use labels to tag projects. msgid "My Projects" msgstr "" -#: js/GlobalTag.js:32 +#: planet/js/GlobalTag.js:32 #.TRANS: On the Planet, we use labels to tag projects. msgid "Examples" msgstr "" -#: js/GlobalTag.js:34 +#: planet/js/GlobalTag.js:34 #.TRANS: On the Planet, we use labels to tag projects. msgid "Music" msgstr "" -#: js/GlobalTag.js:36 +#: planet/js/GlobalTag.js:36 #.TRANS: On the Planet, we use labels to tag projects. msgid "Art" msgstr "" -#: js/GlobalTag.js:38 +#: planet/js/GlobalTag.js:38 #.TRANS: On the Planet, we use labels to tag projects. msgid "Math" msgstr "" -#: js/GlobalTag.js:40 +#: planet/js/GlobalTag.js:40 #.TRANS: On the Planet, we use labels to tag projects. msgid "Interactive" msgstr "" -#: js/GlobalTag.js:42 +#: planet/js/GlobalTag.js:42 #.TRANS: On the Planet, we use labels to tag projects. msgid "Design" msgstr "" -#: js/GlobalTag.js:44 +#: planet/js/GlobalTag.js:44 #.TRANS: On the Planet, we use labels to tag projects. msgid "Game" msgstr "" -#: js/GlobalTag.js:46 +#: planet/js/GlobalTag.js:46 #.TRANS: On the Planet, we use labels to tag projects. msgid "Media" msgstr "" -#: js/GlobalTag.js:48 +#: planet/js/GlobalTag.js:48 #.TRANS: On the Planet, we use labels to tag projects. msgid "Sensors" msgstr "" -#: js/GlobalTag.js:52 +#: planet/js/GlobalTag.js:52 #.TRANS: On the Planet, we use labels to tag projects. msgid "Code Snippet" msgstr "" -#: js/helper.js:149 -#: js/StringHelper.js:49 -msgid "Show more tags" +#: planet/js/LocalCard.js:36 +msgid "View published project" msgstr "" -#: js/helper.js:150 -msgid "Show fewer tags" +#: planet/js/LocalCard.js:42 +msgid "Publish project" +msgstr "" + +#: planet/js/LocalCard.js:51 +msgid "Edit project" +msgstr "" + +#: planet/js/LocalCard.js:52 +msgid "Delete project" +msgstr "" + +#: planet/js/LocalCard.js:53 +msgid "Download project" +msgstr "" + +#: planet/js/LocalCard.js:55 +msgid "Duplicate project" +msgstr "" + +#: planet/js/ProjectStorage.js:243 +msgid "anonymous" +msgstr "" + +#: planet/js/SaveInterface.js:34 +msgid "Open in Music Blocks" +msgstr "" + +#: planet/js/SaveInterface.js:35 +msgid "Open in Turtle Blocks" +msgstr "" + +#: planet/js/GlobalCard.js:68 +msgid "Share" +msgstr "" + +#: planet/js/GlobalCard.js:74 +msgid "Flags" +msgstr "" + +#: planet/js/GlobalPlanet.js:35 +msgid "No results found." +msgstr "" + +#: planet/js/GlobalPlanet.js:51 +msgid "Remix of" +msgstr "" + +#: planet/js/GlobalPlanet.js:509 +msgid "Cannot connect to server" msgstr "" -#: js/ProjectViewer.js:30 +#: planet/js/ProjectViewer.js:30 msgid "Error: Report could not be submitted. Try again later." msgstr "" -#: js/ProjectViewer.js:31 +#: planet/js/ProjectViewer.js:31 msgid "Thank you for reporting this project. A moderator will review the project shortly, to verify violation of the Sugar Labs Code of Conduct." msgstr "" -#: js/ProjectViewer.js:32 -#: js/StringHelper.js:62 -#: js/StringHelper.js:64 -#: js/StringHelper.js:68 +#: planet/js/ProjectViewer.js:32 +#: planet/js/StringHelper.js:62 +#: planet/js/StringHelper.js:64 +#: planet/js/StringHelper.js:68 msgid "Report Project" msgstr "" -#: js/ProjectViewer.js:33 -#: js/StringHelper.js:63 +#: planet/js/ProjectViewer.js:33 +#: planet/js/StringHelper.js:63 msgid "Project Reported" msgstr "" -#: js/ProjectViewer.js:34 +#: planet/js/ProjectViewer.js:34 msgid "Report description required" msgstr "" -#: js/ProjectViewer.js:35 +#: planet/js/ProjectViewer.js:35 msgid "Report description too long" msgstr "" -#: js/StringHelper.js:30 +#: planet/js/Publisher.js:30 +msgid "Feature unavailable - cannot connect to server. Reload Music Blocks to try again." +msgstr "" + +#: planet/js/Publisher.js:220 +#: planet/js/Publisher.js:237 +msgid "This field is required" +msgstr "" + +#: planet/js/Publisher.js:227 +msgid "Title too long" +msgstr "" + +#: planet/js/Publisher.js:244 +msgid "Description too long" +msgstr "" + +#: planet/js/Publisher.js:341 +msgid "Server Error" +msgstr "" + +#: planet/js/Publisher.js:341 +msgid "Try Again" +msgstr "" + +#: planet/js/StringHelper.js:30 msgid "Planet" msgstr "" -#: js/StringHelper.js:31 +#: planet/js/StringHelper.js:31 msgid "Close Planet" msgstr "" -#: js/StringHelper.js:32 +#: planet/js/StringHelper.js:32 msgid "Open project from file" msgstr "" -#: js/StringHelper.js:34 +#: planet/js/StringHelper.js:34 msgid "Local" msgstr "" -#: js/StringHelper.js:35 +#: planet/js/StringHelper.js:35 msgid "Global" msgstr "" -#: js/StringHelper.js:36 +#: planet/js/StringHelper.js:36 msgid "Search for a project" msgstr "" -#: js/StringHelper.js:38 +#: planet/js/StringHelper.js:38 msgid "Publish Project" msgstr "" -#: js/StringHelper.js:40 +#: planet/js/StringHelper.js:40 msgid "Tags (max 5)" msgstr "" -#: js/StringHelper.js:41 -#: js/StringHelper.js:61 +#: planet/js/StringHelper.js:41 +#: planet/js/StringHelper.js:61 msgid "Description" msgstr "" -#: js/StringHelper.js:42 -#: js/StringHelper.js:67 +#: planet/js/StringHelper.js:42 +#: planet/js/StringHelper.js:67 msgid "Submit" msgstr "" -#: js/StringHelper.js:43 -#: js/StringHelper.js:47 +#: planet/js/StringHelper.js:43 +#: planet/js/StringHelper.js:47 msgid "Cancel" msgstr "" -#: js/StringHelper.js:44 +#: planet/js/StringHelper.js:44 msgid "Delete \\"\\"?" msgstr "" -#: js/StringHelper.js:45 +#: planet/js/StringHelper.js:45 msgid "Permanently delete project \\"\\"?" msgstr "" -#: js/StringHelper.js:48 +#: planet/js/StringHelper.js:48 msgid "Explore Projects" msgstr "" -#: js/StringHelper.js:50 +#: planet/js/StringHelper.js:49 +#: planet/js/helper.js:149 +msgid "Show more tags" +msgstr "" + +#: planet/js/StringHelper.js:50 msgid "Most recent" msgstr "" -#: js/StringHelper.js:51 +#: planet/js/StringHelper.js:51 msgid "Most liked" msgstr "" -#: js/StringHelper.js:52 +#: planet/js/StringHelper.js:52 msgid "Most downloaded" msgstr "" -#: js/StringHelper.js:53 +#: planet/js/StringHelper.js:53 msgid "A-Z" msgstr "" -#: js/StringHelper.js:54 +#: planet/js/StringHelper.js:54 msgid "Sort by" msgstr "" -#: js/StringHelper.js:55 +#: planet/js/StringHelper.js:55 msgid "Load More Projects" msgstr "" -#: js/StringHelper.js:56 +#: planet/js/StringHelper.js:56 msgid "Last Updated" msgstr "" -#: js/StringHelper.js:57 +#: planet/js/StringHelper.js:57 msgid "Creation Date" msgstr "" -#: js/StringHelper.js:58 +#: planet/js/StringHelper.js:58 msgid "Number of Downloads:" msgstr "" -#: js/StringHelper.js:59 +#: planet/js/StringHelper.js:59 msgid "Number of Likes:" msgstr "" -#: js/StringHelper.js:60 +#: planet/js/StringHelper.js:60 msgid "Tags:" msgstr "" -#: js/StringHelper.js:65 +#: planet/js/StringHelper.js:65 msgid "Report projects which violate the Sugar Labs Code of Conduct." msgstr "" -#: js/StringHelper.js:66 +#: planet/js/StringHelper.js:66 msgid "Reason for reporting project" msgstr "" -#: js/StringHelper.js:70 +#: planet/js/StringHelper.js:70 msgid "Download as File" msgstr "" -#: js/GlobalPlanet.js:35 -msgid "No results found." -msgstr "" - -#: js/GlobalPlanet.js:51 -msgid "Remix of" -msgstr "" - -#: js/GlobalPlanet.js:509 -msgid "Cannot connect to server" -msgstr "" - -#: js/Publisher.js:30 -msgid "Feature unavailable - cannot connect to server. Reload Music Blocks to try again." -msgstr "" - -#: js/Publisher.js:218 -#: js/Publisher.js:235 -msgid "This field is required" -msgstr "" - -#: js/Publisher.js:225 -msgid "Title too long" +#: planet/js/helper.js:150 +msgid "Show fewer tags" msgstr "" -#: js/Publisher.js:242 -msgid "Description too long" +#: plugins/accelerometer.rtp:48 +msgid "motion x" msgstr "" -#: js/Publisher.js:339 -msgid "Server Error" +#: plugins/accelerometer.rtp:56 +msgid "motion y" msgstr "" -#: js/Publisher.js:339 -msgid "Try Again" +#: plugins/accelerometer.rtp:64 +msgid "motion z" msgstr "" -#: js/SaveInterface.js:34 -msgid "Open in Music Blocks" +#: plugins/facebook.rtp:27 +msgid "publish" msgstr "" -#: js/SaveInterface.js:35 -msgid "Open in Turtle Blocks" +#: plugins/maths.rtp:62 +msgid "power" msgstr "" -#: plugins/weather.rtp:68 -#: plugins/weather.rtp:97 -msgid "Days ahead must be in the range of -1 to 5." +#: plugins/maths.rtp:62 +msgid "base" msgstr "" -#: plugins/weather.rtp:122 -msgid "forecast" +#: plugins/maths.rtp:62 +msgid "exp" msgstr "" -#: plugins/weather.rtp:123 -#: plugins/weather.rtp:137 -#: plugins/weather.rtp:150 -msgid "city" +#: plugins/maths.rtp:99 +msgid "floor" msgstr "" -#: plugins/weather.rtp:124 -#: plugins/weather.rtp:138 -#: plugins/weather.rtp:151 -msgid "day" +#: plugins/maths.rtp:104 +msgid "ceiling" msgstr "" -#: plugins/weather.rtp:136 -msgid "high" +#: plugins/maths.rtp:109 +msgid "to degrees" msgstr "" -#: plugins/weather.rtp:149 -msgid "low" +#: plugins/maths.rtp:114 +msgid "to radians" msgstr "" #: plugins/nutrition.rtp:104 @@ -9458,45 +9867,6 @@ msgstr "" msgid "water" msgstr "" -#: plugins/maths.rtp:62 -#: plugins/examples.rtp:93 -msgid "power" -msgstr "" - -#: plugins/maths.rtp:62 -#: plugins/examples.rtp:93 -msgid "base" -msgstr "" - -#: plugins/maths.rtp:62 -#: plugins/examples.rtp:93 -msgid "exp" -msgstr "" - -#: plugins/maths.rtp:99 -#: plugins/examples.rtp:130 -msgid "floor" -msgstr "" - -#: plugins/maths.rtp:104 -#: plugins/examples.rtp:135 -msgid "ceiling" -msgstr "" - -#: plugins/maths.rtp:109 -#: plugins/examples.rtp:140 -msgid "to degrees" -msgstr "" - -#: plugins/maths.rtp:114 -#: plugins/examples.rtp:145 -msgid "to radians" -msgstr "" - -#: plugins/facebook.rtp:27 -msgid "publish" -msgstr "" - #: plugins/rodi.rtp:172 msgid "blink" msgstr "" @@ -9525,18 +9895,66 @@ msgstr "" msgid "move" msgstr "" -#: plugins/accelerometer.rtp:48 -msgid "motion x" +#: plugins/weather.rtp:68 +#: plugins/weather.rtp:97 +msgid "Days ahead must be in the range of -1 to 5." msgstr "" -#: plugins/accelerometer.rtp:56 -msgid "motion y" +#: plugins/weather.rtp:122 +msgid "forecast" msgstr "" -#: plugins/accelerometer.rtp:64 -msgid "motion z" +#: plugins/weather.rtp:123 +#: plugins/weather.rtp:137 +#: plugins/weather.rtp:150 +msgid "city" +msgstr "" + +#: plugins/weather.rtp:124 +#: plugins/weather.rtp:138 +#: plugins/weather.rtp:151 +msgid "day" +msgstr "" + +#: plugins/weather.rtp:136 +msgid "high" +msgstr "" + +#: plugins/weather.rtp:149 +msgid "low" msgstr "" +#: js/toolbar.js:70 + +#: js/toolbar.js:130 + +#: js/toolbar.js:194 + +#: js/toolbar.js:249 + +#~msgid "Toggle JavaScript Editor" +#~msgstr "" + +#: js/EnsembleBlocks.js:643 + +#~msgid "The Turrle pitch block returns the current pitch number being played by the specified turtle." +#~msgstr "" + +#: js/PitchActions.js:88 + +#~msgid "The Scalar Step Block must be used inside of a Note Block." +#~msgstr "" + +#: js/PitchActions.js:107 + +#~msgid "The Scalar Step Block must be preceded by a Pitch Block." +#~msgstr "" + +#: js/musickeyboard.js:2840 + +#~msgid "New action blocks generated!" +#~msgstr "" + #: js/toolbar.js:110 #: js/toolbar.js:204 @@ -9877,11 +10295,6 @@ msgstr "" #~msgid "The Time block returns the number of seconds that the program has been running." #~msgstr "" -#: js/help.js:95 - -#~msgid "Take a tour" -#~msgstr "" - #: js/GlobalCard.js:48 #~msgid "More Details" @@ -12780,11 +13193,6 @@ msgstr "" #~msgid "The save-stack button saves a stack onto a custom palette. It appears after a \"long press\" on a stack." #~msgstr "" -#: js/musicutils.js:254 - -#~msgid "Custom" -#~msgstr "" - #: js/basicblocks.js:4785 #~msgid "Rhythm" diff --git a/po/fil.po b/po/fil.po index cd2e950649..7d658cbe8c 100644 --- a/po/fil.po +++ b/po/fil.po @@ -2129,276 +2129,131 @@ #: js/planetInterface.js:104 #: js/planetInterface.js:104 #: js/planetInterface.js:104 -msgid "project undefined" -msgstr "" - -#: js/logo.js:61 -msgid "Not a valid pitch name" -msgstr "" - -#: js/logo.js:507 -#: js/ProgramBlocks.js:258 -#: js/ProgramBlocks.js:427 -msgid "You must select a file." -msgstr "" - -#: js/logo.js:1184 -#: js/turtles.js:118 -#: js/turtle-painter.js:1192 -#: js/turtle-painter.js:1193 -#: js/block.js:1463 -#: js/lilypond.js:757 -#: js/lilypond.js:921 -#: js/lilypond.js:959 -#: js/ActionBlocks.js:1223 -#: js/ProgramBlocks.js:1267 -msgid "start" -msgstr "" - -#: js/logo.js:1696 -msgid "Playback is ready." -msgstr "" - -#: js/blocks.js:1011 -#: js/blocks.js:3427 -#: js/blocks.js:3428 -#: js/blocks.js:3653 -#: js/blocks.js:4012 -#: js/blocks.js:4205 -#: js/blocks.js:5343 -#: js/blocks.js:6474 -#: js/palette.js:527 -#: js/palette.js:536 -#: js/palette.js:545 -#: js/palette.js:554 -#: js/palette.js:1131 -#: js/palette.js:1142 -#: js/palette.js:1153 -#: js/palette.js:1164 -#: js/palette.js:1183 -#: js/rubrics.js:529 -#: js/macros.js:170 -#: js/macros.js:266 -#: js/macros.js:267 -#: js/macros.js:276 -#: js/macros.js:828 -#: js/block.js:1449 -#: js/block.js:4164 -#: js/block.js:4182 -#: js/block.js:4193 -#: js/turtledefs.js:128 -#: js/turtledefs.js:230 -#: js/ActionBlocks.js:254 -#: js/ActionBlocks.js:307 -#: js/ActionBlocks.js:617 -#: js/ActionBlocks.js:716 -#: js/ActionBlocks.js:961 -#: js/ActionBlocks.js:1049 -#: js/ActionBlocks.js:1322 -#: js/ActionBlocks.js:1325 -#: js/ActionBlocks.js:1337 -#: js/ActionBlocks.js:1404 -#: js/MeterBlocks.js:715 -#: js/MeterBlocks.js:768 -#: js/MeterBlocks.js:831 -#: js/MeterBlocks.js:892 -#: js/phrasemaker.js:4412 -#: js/musickeyboard.js:2647 -#: js/rhythmruler.js:1928 -#: js/rhythmruler.js:1935 -#: js/rhythmruler.js:2119 -#: js/rhythmruler.js:2126 -msgid "action" -msgstr "" - -#: js/blocks.js:1205 -#: js/blocks.js:3380 -#: js/blocks.js:3770 -#: js/blocks.js:3801 -#: js/blocks.js:3850 -#: js/blocks.js:3885 -#: js/blocks.js:6497 -#: js/palette.js:509 -#: js/palette.js:638 -#: js/palette.js:1107 -#: js/BoxesBlocks.js:282 -#: js/BoxesBlocks.js:285 -#: js/BoxesBlocks.js:405 -#: js/BoxesBlocks.js:594 -msgid "box" -msgstr "" - -#: js/blocks.js:1680 -msgid "Consider breaking this stack into parts." +#: js/SaveInterface.js:59 +#: js/SaveInterface.js:61 +#: js/SaveInterface.js:93 +msgid "Music Blocks Project" msgstr "" -#: js/blocks.js:2408 -#: js/palette.js:653 -#: js/MediaBlocks.js:602 -msgid "open file" +#: js/SaveInterface.js:63 +msgid "This project was created in Music Blocks" msgstr "" -#: js/blocks.js:2415 -#: js/blocks.js:2423 -#: js/activity.js:1875 -msgid "audio file" +#: js/SaveInterface.js:67 +msgid "Music Blocks is a Free/Libre Software application." msgstr "" -#: js/blocks.js:2536 -#: js/blocks.js:3147 -#: js/block.js:3543 -msgid "on2" +#: js/SaveInterface.js:69 +msgid "The source code can be accessed at" msgstr "" -#: js/blocks.js:2538 -#: js/blocks.js:3149 -#: js/block.js:3545 -msgid "off" +#: js/SaveInterface.js:72 +msgid "For more information, please consult the" msgstr "" -#: js/blocks.js:2543 -#: js/blocks.js:3154 -#: js/palette.js:618 -#: js/block.js:3466 -#: js/BooleanBlocks.js:77 -#: js/BooleanBlocks.js:167 -#: js/BooleanBlocks.js:251 -#: js/BooleanBlocks.js:335 -#: js/BooleanBlocks.js:433 -#: js/BooleanBlocks.js:539 -#: js/BooleanBlocks.js:640 -#: js/BooleanBlocks.js:741 -#: js/BooleanBlocks.js:847 -#: js/BooleanBlocks.js:948 -#: js/BooleanBlocks.js:1033 -#: js/SensorsBlocks.js:910 -msgid "true" +#: js/SaveInterface.js:76 +#: js/turtledefs.js:795 +msgid "Music Blocks Guide" msgstr "" -#: js/blocks.js:2545 -#: js/blocks.js:3156 -#: js/block.js:3466 -#: js/BooleanBlocks.js:79 -#: js/BooleanBlocks.js:169 -#: js/BooleanBlocks.js:253 -#: js/BooleanBlocks.js:337 -#: js/BooleanBlocks.js:435 -#: js/BooleanBlocks.js:541 -#: js/BooleanBlocks.js:642 -#: js/BooleanBlocks.js:743 -#: js/BooleanBlocks.js:849 -#: js/BooleanBlocks.js:950 -#: js/SensorsBlocks.js:912 -msgid "false" +#: js/SaveInterface.js:83 +msgid "Alternatively, open the file in Music Blocks using the Load project button." msgstr "" -#: js/blocks.js:3183 -#: js/palette.js:574 -#: js/MediaBlocks.js:892 -#: js/MediaBlocks.js:963 -msgid "text" +#: js/SaveInterface.js:85 +msgid "Project Code" msgstr "" -#: js/blocks.js:3379 -#: js/palette.js:641 -#: js/palette.js:642 -#: js/BoxesBlocks.js:514 -msgid "store in box" +#: js/SaveInterface.js:87 +msgid "This code stores data about the blocks in a project." msgstr "" -#: js/blocks.js:3384 -#: js/blocks.js:3824 -#: js/blocks.js:3859 -#: js/blocks.js:3894 -#: js/blocks.js:5773 -#: js/blocks.js:5794 -#: js/BoxesBlocks.js:772 -msgid "box1" +#: js/SaveInterface.js:89 +msgid "Show" msgstr "" -#: js/blocks.js:3386 -#: js/blocks.js:3826 -#: js/blocks.js:3861 -#: js/blocks.js:3896 -#: js/blocks.js:5775 -#: js/blocks.js:5796 -#: js/BoxesBlocks.js:663 -msgid "box2" +#: js/SaveInterface.js:91 +msgid "Hide" msgstr "" -#: js/blocks.js:4058 -#: js/palette.js:639 -#: js/palette.js:644 -#: js/palette.js:1043 -#: js/BoxesBlocks.js:591 -msgid "store in" +#: js/SaveInterface.js:131 +#: js/SaveInterface.js:204 +#: js/SaveInterface.js:262 +#: js/SaveInterface.js:389 +#: js/SaveInterface.js:417 +#: js/activity.js:4884 +#: planet/js/ProjectStorage.js:27 +#: planet/js/GlobalPlanet.js:467 +#: planet/js/GlobalPlanet.js:469 +#: planet/js/GlobalPlanet.js:495 +#.TRANS: default project title when saving as Lilypond +msgid "My Project" msgstr "" -#: js/blocks.js:4058 -#: js/EnsembleBlocks.js:391 -#: js/EnsembleBlocks.js:402 -#: js/MediaBlocks.js:746 -#: js/ProgramBlocks.js:390 -#: js/ProgramBlocks.js:495 -#: js/ProgramBlocks.js:658 -#: js/BoxesBlocks.js:595 -#: js/PitchBlocks.js:656 -#: js/PitchBlocks.js:932 -#: js/PitchBlocks.js:1827 -#: js/ToneBlocks.js:1025 -#: js/DictBlocks.js:215 -#: js/DictBlocks.js:289 -msgid "name" +#: js/SaveInterface.js:197 +#: planet/js/SaveInterface.js:58 +msgid "No description provided" msgstr "" -#: js/blocks.js:4058 -#: js/RhythmBlocks.js:1130 -#: js/BoxesBlocks.js:75 -#: js/BoxesBlocks.js:595 -#: js/HeapBlocks.js:544 -#: js/DictBlocks.js:289 -#: js/DictBlocks.js:430 -msgid "value" +#: js/SaveInterface.js:332 +msgid "Your recording is in progress." msgstr "" -#: js/blocks.js:4907 -msgid "There is no block selected." +#: js/SaveInterface.js:401 +#.TRANS: File name prompt for save as Lilypond +msgid "File name" msgstr "" -#: js/blocks.js:5002 -#: js/MediaBlocks.js:888 -msgid "show" +#: js/SaveInterface.js:403 +#: planet/js/StringHelper.js:39 +#.TRANS: Project title prompt for save as Lilypond +msgid "Project title" msgstr "" -#: js/blocks.js:5005 -#: js/MediaBlocks.js:803 -#.TRANS: Avatar is the image used to determine the appearance of the mouse. -msgid "avatar" +#: js/SaveInterface.js:405 +#.TRANS: Project title prompt for save as Lilypond +msgid "Project author" msgstr "" -#: js/blocks.js:5008 -#: js/ToneBlocks.js:1010 -#: js/sampler.js:693 -#.TRANS: The sound sample that the user uploads. -msgid "sample" +#: js/SaveInterface.js:407 +#.TRANS: MIDI prompt for save as Lilypond +msgid "Include MIDI output?" msgstr "" -#: js/turtles.js:874 -msgid "Grid" +#: js/SaveInterface.js:409 +#.TRANS: Guitar prompt for save as Lilypond +msgid "Include guitar tablature output?" msgstr "" -#: js/turtles.js:891 -#: js/turtledefs.js:626 -msgid "Clean" +#: js/SaveInterface.js:411 +#.TRANS: Lilypond is a scripting language for generating sheet music +msgid "Save as Lilypond" msgstr "" -#: js/turtles.js:912 -#: js/turtledefs.js:632 -msgid "Collapse" +#: js/SaveInterface.js:426 +#: js/blocks/EnsembleBlocks.js:75 +#: js/blocks/EnsembleBlocks.js:154 +#: js/blocks/EnsembleBlocks.js:216 +#: js/blocks/EnsembleBlocks.js:302 +#: js/blocks/EnsembleBlocks.js:348 +#: js/blocks/EnsembleBlocks.js:389 +#: js/blocks/EnsembleBlocks.js:441 +#: js/blocks/EnsembleBlocks.js:490 +#: js/blocks/EnsembleBlocks.js:536 +#: js/blocks/EnsembleBlocks.js:583 +#: js/blocks/EnsembleBlocks.js:637 +#: js/blocks/EnsembleBlocks.js:753 +#: js/blocks/EnsembleBlocks.js:840 +#: js/blocks/EnsembleBlocks.js:899 +#: js/blocks/EnsembleBlocks.js:942 +#: js/blocks/EnsembleBlocks.js:1212 +#: js/blocks/EnsembleBlocks.js:1280 +#.TRANS: default project author when saving as Lilypond +msgid "Mr. Mouse" msgstr "" -#: js/turtles.js:940 -msgid "Expand" +#: js/SaveInterface.js:573 +msgid "The Lilypond code is copied to clipboard. You can paste it here: " msgstr "" #: js/languagebox.js:198 @@ -2409,6933 +2264,7487 @@ msgstr "" msgid "Music Blocks is already set to this language." msgstr "" -#: js/piemenus.js:200 -#: js/musicutils.js:808 -#: js/musicutils.js:824 -#: js/phrasemaker.js:1672 -#: js/musickeyboard.js:2041 -#: js/sampler.js:544 -#.TRANS: double sharp is a music term related to pitch -msgid "double sharp" +#: js/planetInterface.js:131 +msgid "project undefined" msgstr "" -#: js/piemenus.js:201 -#: js/PitchBlocks.js:1510 -#: js/PitchActions.js:580 -#: js/musicutils.js:806 -#: js/musicutils.js:825 -#: js/phrasemaker.js:1673 -#: js/musickeyboard.js:2042 -#: js/sampler.js:545 -#.TRANS: sharp is a half-step up in pitch -#.TRANS: sharp is a music term related to pitch -msgid "sharp" +#: js/rubrics.js:523 +#: js/turtledefs.js:119 +#: js/turtledefs.js:221 +#: js/blocks/RhythmBlockPaletteBlocks.js:52 +#: js/blocks/RhythmBlockPaletteBlocks.js:234 +#: js/blocks/ProgramBlocks.js:745 +#: js/widgets/rhythmruler.js:2057 +#: js/widgets/rhythmruler.js:2064 +#: js/widgets/rhythmruler.js:2133 +#: js/widgets/rhythmruler.js:2140 +#: js/widgets/rhythmruler.js:2219 +#.TRANS: an arrangement of notes based on duration +msgid "rhythm" msgstr "" -#: js/piemenus.js:202 -#: js/musicutils.js:804 -#: js/musicutils.js:826 -#: js/phrasemaker.js:1674 -#: js/musickeyboard.js:2043 -#: js/sampler.js:546 -#.TRANS: natural is a music term related to pitch -msgid "natural" +#: js/rubrics.js:524 +#: js/turtledefs.js:121 +#: js/turtledefs.js:223 +#: js/block-verbose.js:2622 +#: js/block.js:2550 +#: js/blocks/IntervalsBlocks.js:63 +#: js/blocks/SensorsBlocks.js:178 +#: js/blocks/PitchBlocks.js:1839 +#: js/blocks/PitchBlocks.js:1853 +#: js/widgets/musickeyboard.js:1935 +#: js/widgets/phrasemaker.js:1036 +#.TRANS: pitch number +#.TRANS: pitch number +#.TRANS: we specify pitch in terms of a name and an octave. The name can be CDEFGAB or Do Re Mi Fa Sol La Ti. Octave is a number between 1 and 8. +msgid "pitch" msgstr "" -#: js/piemenus.js:203 -#: js/PitchBlocks.js:1469 -#: js/PitchActions.js:583 -#: js/musicutils.js:802 -#: js/musicutils.js:827 -#: js/phrasemaker.js:1675 -#: js/musickeyboard.js:2044 -#: js/sampler.js:547 -#.TRANS: flat is a half-step down in pitch -#.TRANS: flat is a music term related to pitch -msgid "flat" +#: js/rubrics.js:525 +#: js/turtledefs.js:123 +#: js/turtledefs.js:225 +msgid "tone" msgstr "" -#: js/piemenus.js:204 -#: js/musicutils.js:800 -#: js/musicutils.js:828 -#: js/phrasemaker.js:1676 -#: js/musickeyboard.js:2045 -#: js/sampler.js:548 -#.TRANS: double flat is a music term related to pitch -msgid "double flat" +#: js/rubrics.js:526 +#: js/lilypond.js:605 +#: js/lilypond.js:904 +#: js/lilypond.js:910 +#: js/lilypond.js:948 +msgid "mouse" msgstr "" -#: js/piemenus.js:2861 -#: js/PitchBlocks.js:1357 -#: js/musicutils.js:627 -#.TRANS: unison means the note is the same as the current note -#.TRANS: unison is a music term related to intervals -msgid "unison" +#: js/rubrics.js:527 +#: js/turtledefs.js:132 +#: js/turtledefs.js:234 +#: js/widgets/phrasemaker.js:1040 +msgid "pen" msgstr "" -#: js/piemenus.js:3015 -#: js/piemenus.js:3088 -#: js/musicutils.js:635 -#: js/musicutils.js:810 -#: js/musicutils.js:912 -#.TRANS: major is a music term related to intervals and mode -msgid "major" +#: js/rubrics.js:528 +#: js/turtledefs.js:133 +#: js/turtledefs.js:235 +#: js/blocks/NumberBlocks.js:981 +#: js/blocks/PitchBlocks.js:1717 +#: js/blocks/PitchBlocks.js:1758 +msgid "number" msgstr "" -#: js/piemenus.js:3015 -#: js/piemenus.js:3088 -#: js/musicutils.js:653 -#.TRANS: modal scale for music -msgid "ionian" +#: js/rubrics.js:529 +#: js/turtledefs.js:127 +#: js/turtledefs.js:229 +msgid "flow" msgstr "" -#: js/piemenus.js:3017 -#: js/piemenus.js:3092 -#: js/musicutils.js:633 -#: js/musicutils.js:811 -#: js/musicutils.js:909 -#.TRANS: minor is a music term related to intervals and mode -msgid "minor" +#: js/rubrics.js:530 +#: js/turtledefs.js:128 +#: js/turtledefs.js:230 +#: js/block-verbose.js:1609 +#: js/block-verbose.js:4559 +#: js/block-verbose.js:4577 +#: js/block-verbose.js:4588 +#: js/block.js:1573 +#: js/block.js:4483 +#: js/block.js:4501 +#: js/block.js:4512 +#: js/blocks.js:1018 +#: js/blocks.js:3491 +#: js/blocks.js:3492 +#: js/blocks.js:3717 +#: js/blocks.js:4076 +#: js/blocks.js:4269 +#: js/blocks.js:5432 +#: js/blocks.js:6563 +#: js/macros.js:170 +#: js/macros.js:266 +#: js/macros.js:267 +#: js/macros.js:276 +#: js/macros.js:828 +#: js/palette.js:527 +#: js/palette.js:536 +#: js/palette.js:545 +#: js/palette.js:554 +#: js/palette.js:1129 +#: js/palette.js:1140 +#: js/palette.js:1151 +#: js/palette.js:1162 +#: js/palette.js:1181 +#: js/blocks/ActionBlocks.js:254 +#: js/blocks/ActionBlocks.js:307 +#: js/blocks/ActionBlocks.js:617 +#: js/blocks/ActionBlocks.js:716 +#: js/blocks/ActionBlocks.js:961 +#: js/blocks/ActionBlocks.js:1049 +#: js/blocks/ActionBlocks.js:1322 +#: js/blocks/ActionBlocks.js:1325 +#: js/blocks/ActionBlocks.js:1337 +#: js/blocks/ActionBlocks.js:1404 +#: js/blocks/MeterBlocks.js:715 +#: js/blocks/MeterBlocks.js:768 +#: js/blocks/MeterBlocks.js:831 +#: js/blocks/MeterBlocks.js:892 +#: js/widgets/musickeyboard.js:2986 +#: js/widgets/phrasemaker.js:4913 +#: js/widgets/rhythmruler.js:2319 +#: js/widgets/rhythmruler.js:2326 +#: js/widgets/rhythmruler.js:2511 +#: js/widgets/rhythmruler.js:2518 +msgid "action" msgstr "" -#: js/piemenus.js:3017 -#: js/piemenus.js:3092 -#: js/musicutils.js:663 -#.TRANS: modal scale for music -msgid "aeolian" +#: js/rubrics.js:531 +#: js/turtledefs.js:136 +#: js/turtledefs.js:238 +msgid "sensors" msgstr "" -#: js/piemenus.js:3407 -msgid "Duplicate" +#: js/rubrics.js:532 +#: js/turtledefs.js:135 +#: js/turtledefs.js:237 +#: js/blocks/MediaBlocks.js:930 +msgid "media" msgstr "" -#: js/piemenus.js:3408 -#: js/turtledefs.js:534 -msgid "Extract" +#: js/rubrics.js:533 +msgid "mice" msgstr "" -#: js/piemenus.js:3409 -msgid "Move to trash" +#: js/toolbar.js:48 +#: js/toolbar.js:109 +msgid "About Music Blocks" msgstr "" -#: js/piemenus.js:3410 -#: js/timbre.js:968 -#: js/StringHelper.js:69 -msgid "Close" +#: js/toolbar.js:49 +#: js/toolbar.js:110 +#: js/toolbar.js:175 +#: js/toolbar.js:231 +#: js/turtledefs.js:445 +#: js/turtledefs.js:482 +#: js/activity.js:2660 +#: js/activity.js:2671 +#: js/activity.js:2902 +#: js/widgets/modewidget.js:77 +#: js/widgets/meterwidget.js:185 +#: js/widgets/pitchdrummatrix.js:147 +#: js/widgets/pitchdrummatrix.js:687 +#: js/widgets/pitchdrummatrix.js:689 +#: js/widgets/pitchdrummatrix.js:741 +#: js/widgets/pitchdrummatrix.js:743 +#: js/widgets/pitchdrummatrix.js:758 +#: js/widgets/pitchdrummatrix.js:760 +#: js/widgets/pitchdrummatrix.js:789 +#: js/widgets/pitchdrummatrix.js:791 +#: js/widgets/pitchstaircase.js:121 +#: js/widgets/temperament.js:610 +#: js/widgets/temperament.js:613 +#: js/widgets/temperament.js:673 +#: js/widgets/temperament.js:675 +#: js/widgets/temperament.js:2017 +#: js/widgets/temperament.js:2019 +#: js/widgets/tempo.js:84 +#: js/widgets/tempo.js:86 +#: js/widgets/timbre.js:432 +#: js/widgets/timbre.js:434 +#: js/widgets/timbre.js:465 +#: js/widgets/timbre.js:467 +#: js/widgets/timbre.js:746 +#: js/widgets/aiwidget.js:647 +#: js/widgets/aiwidget.js:654 +#: js/widgets/aiwidget.js:656 +#: js/widgets/arpeggio.js:90 +#: js/widgets/arpeggio.js:547 +#: js/widgets/arpeggio.js:549 +#: js/widgets/arpeggio.js:644 +#: js/widgets/arpeggio.js:646 +#: js/widgets/musickeyboard.js:676 +#: js/widgets/musickeyboard.js:872 +#: js/widgets/musickeyboard.js:874 +#: js/widgets/musickeyboard.js:953 +#: js/widgets/musickeyboard.js:955 +#: js/widgets/phrasemaker.js:513 +#: js/widgets/phrasemaker.js:523 +#: js/widgets/phrasemaker.js:525 +#: js/widgets/phrasemaker.js:4304 +#: js/widgets/phrasemaker.js:4528 +#: js/widgets/phrasemaker.js:4533 +#: js/widgets/phrasemaker.js:4535 +#: js/widgets/phrasemaker.js:4650 +#: js/widgets/rhythmruler.js:637 +#: js/widgets/rhythmruler.js:639 +#: js/widgets/rhythmruler.js:653 +#: js/widgets/rhythmruler.js:655 +#: js/widgets/sampler.js:162 +#: js/widgets/sampler.js:164 +#: js/widgets/sampler.js:363 +msgid "Play" msgstr "" -#: js/piemenus.js:3416 -msgid "Save stack" +#: js/toolbar.js:50 +#: js/toolbar.js:111 +#: js/toolbar.js:176 +#: js/toolbar.js:232 +#: js/turtledefs.js:451 +#: js/turtledefs.js:488 +#: js/activity.js:2679 +#: js/widgets/modewidget.js:99 +#: js/widgets/modewidget.js:101 +#: js/widgets/meterwidget.js:206 +#: js/widgets/meterwidget.js:208 +#: js/widgets/pitchdrummatrix.js:674 +#: js/widgets/pitchdrummatrix.js:676 +#: js/widgets/temperament.js:2002 +#: js/widgets/temperament.js:2004 +#: js/widgets/arpeggio.js:534 +#: js/widgets/arpeggio.js:536 +#: js/widgets/phrasemaker.js:534 +#: js/widgets/phrasemaker.js:536 +msgid "Stop" msgstr "" -#: js/piemenus.js:3420 -#: js/toolbar.js:60 -#: js/toolbar.js:120 -#: js/toolbar.js:185 -#: js/toolbar.js:240 -#: js/turtledefs.js:752 -msgid "Help" +#: js/toolbar.js:51 +#: js/toolbar.js:112 +#: js/toolbar.js:177 +#: js/toolbar.js:233 +#: js/turtledefs.js:498 +msgid "Record" msgstr "" -#: js/piemenus.js:3762 -msgid "You have chosen key " +#: js/toolbar.js:52 +#: js/toolbar.js:53 +msgid "Full screen" msgstr "" -#: js/piemenus.js:3766 -msgid " for your pitch preview." +#: js/toolbar.js:54 +#: js/toolbar.js:115 +#: js/toolbar.js:180 +#: js/toolbar.js:236 +#: js/turtledefs.js:504 +msgid "Toggle Fullscreen" +msgstr "" + +#: js/toolbar.js:55 +#: js/toolbar.js:116 +#: js/toolbar.js:181 +#: js/toolbar.js:237 +#: js/turtledefs.js:510 +#: planet/js/StringHelper.js:33 +msgid "New project" +msgstr "" + +#: js/toolbar.js:56 +#: js/toolbar.js:117 +#: js/toolbar.js:182 +#: js/toolbar.js:238 +#: js/turtledefs.js:516 +msgid "Load project from file" +msgstr "" + +#: js/toolbar.js:57 +#: js/toolbar.js:118 +#: js/toolbar.js:119 +#: js/toolbar.js:183 +#: js/toolbar.js:239 +#: js/turtledefs.js:541 +#: js/turtledefs.js:550 +#: js/turtledefs.js:571 +msgid "Save project" +msgstr "" + +#: js/toolbar.js:58 +#: js/toolbar.js:77 +#: js/toolbar.js:79 +#: js/toolbar.js:138 +#: js/toolbar.js:147 +#: js/toolbar.js:149 +#: js/toolbar.js:184 +#: js/toolbar.js:202 +#: js/toolbar.js:204 +#: js/toolbar.js:240 +#: js/toolbar.js:258 +#: js/toolbar.js:260 +msgid "Save project as HTML" +msgstr "" + +#: js/toolbar.js:59 +#: js/toolbar.js:120 +#: js/toolbar.js:185 +#: js/toolbar.js:241 +msgid "Find and share projects" +msgstr "" + +#: js/toolbar.js:60 +#: js/toolbar.js:121 +#: js/toolbar.js:186 +#: js/toolbar.js:242 +msgid "Offline. Sharing is unavailable" +msgstr "" + +#: js/toolbar.js:61 +#: js/toolbar.js:122 +#: js/toolbar.js:187 +#: js/toolbar.js:243 +msgid "Auxiliary menu" +msgstr "" + +#: js/toolbar.js:62 +#: js/toolbar.js:123 +#: js/toolbar.js:188 +#: js/toolbar.js:244 +#: js/turtledefs.js:752 +#: js/piemenus.js:3423 +msgid "Help" +msgstr "" + +#: js/toolbar.js:63 +#: js/toolbar.js:124 +#: js/toolbar.js:189 +#: js/toolbar.js:245 +msgid "Run slowly" +msgstr "" + +#: js/toolbar.js:64 +#: js/toolbar.js:125 +#: js/toolbar.js:190 +#: js/toolbar.js:246 +#: js/turtledefs.js:682 +msgid "Run step by step" +msgstr "" + +#: js/toolbar.js:65 +#: js/toolbar.js:126 +#: js/toolbar.js:191 +#: js/toolbar.js:247 +#: js/turtledefs.js:689 +msgid "Display statistics" +msgstr "" + +#: js/toolbar.js:66 +#: js/toolbar.js:127 +#: js/toolbar.js:192 +#: js/toolbar.js:248 +msgid "Load plugin" +msgstr "" + +#: js/toolbar.js:67 +#: js/toolbar.js:128 +#: js/toolbar.js:193 +#: js/toolbar.js:249 +#: js/turtledefs.js:696 +msgid "Delete plugin" +msgstr "" + +#: js/toolbar.js:68 +#: js/toolbar.js:129 +#: js/toolbar.js:194 +#: js/toolbar.js:250 +msgid "Enable horizontal scrolling" +msgstr "" + +#: js/toolbar.js:69 +#: js/toolbar.js:130 +#: js/toolbar.js:195 +#: js/toolbar.js:251 +msgid "Disable horizontal scrolling" +msgstr "" + +#: js/toolbar.js:70 +#: js/toolbar.js:131 +#: js/toolbar.js:196 +#: js/toolbar.js:252 +#: planet/js/LocalCard.js:54 +#: planet/js/StringHelper.js:71 +msgid "Merge with current project" +msgstr "" + +#: js/toolbar.js:71 +#: js/toolbar.js:132 +msgid "Set Pitch Preview" +msgstr "" + +#: js/toolbar.js:72 +#: js/toolbar.js:133 +#: js/toolbar.js:197 +#: js/toolbar.js:253 +msgid "JavaScript Editor" +msgstr "" + +#: js/toolbar.js:73 +#: js/toolbar.js:134 +#: js/toolbar.js:198 +#: js/toolbar.js:254 +#: js/turtledefs.js:724 +msgid "Restore" +msgstr "" + +#: js/toolbar.js:74 +#: js/toolbar.js:135 +#: js/toolbar.js:199 +#: js/toolbar.js:255 +msgid "Switch to beginner mode" +msgstr "" + +#: js/toolbar.js:75 +#: js/toolbar.js:136 +#: js/toolbar.js:200 +#: js/toolbar.js:256 +msgid "Switch to advanced mode" +msgstr "" + +#: js/toolbar.js:76 +#: js/toolbar.js:137 +#: js/toolbar.js:146 +#: js/toolbar.js:201 +#: js/toolbar.js:257 +#: js/turtledefs.js:738 +msgid "Select language" +msgstr "" + +#: js/toolbar.js:78 +#: js/toolbar.js:81 +#: js/toolbar.js:140 +#: js/turtledefs.js:579 +msgid "Save mouse artwork as PNG" +msgstr "" + +#: js/toolbar.js:80 +#: js/toolbar.js:139 +#: js/turtledefs.js:575 +msgid "Save mouse artwork as SVG" +msgstr "" + +#: js/toolbar.js:82 +#: js/toolbar.js:141 +#: js/turtledefs.js:583 +msgid "Save music as WAV" +msgstr "" + +#: js/toolbar.js:83 +#: js/toolbar.js:142 +#: js/turtledefs.js:587 +msgid "Save sheet music as ABC" +msgstr "" + +#: js/toolbar.js:84 +#: js/toolbar.js:143 +#: js/turtledefs.js:591 +msgid "Save sheet music as Lilypond" +msgstr "" + +#: js/toolbar.js:85 +msgid "Save sheet music as MusicXML" +msgstr "" + +#: js/toolbar.js:86 +#: js/toolbar.js:144 +#: js/toolbar.js:152 +#: js/toolbar.js:207 +#: js/toolbar.js:263 +#: js/turtledefs.js:562 +#: js/turtledefs.js:595 +msgid "Save block artwork as SVG" +msgstr "" + +#: js/toolbar.js:87 +#: js/toolbar.js:145 +#: js/toolbar.js:153 +#: js/toolbar.js:208 +#: js/toolbar.js:264 +#: js/turtles.js:911 +msgid "Confirm" +msgstr "" + +#: js/toolbar.js:88 +#: js/toolbar.js:154 +#: js/toolbar.js:209 +#: js/toolbar.js:265 +msgid "English (United States)" +msgstr "" + +#: js/toolbar.js:89 +#: js/toolbar.js:155 +#: js/toolbar.js:210 +#: js/toolbar.js:266 +msgid "English (United Kingdom)" +msgstr "" + +#: js/toolbar.js:90 +#: js/toolbar.js:156 +#: js/toolbar.js:211 +#: js/toolbar.js:267 +msgid "日本語" +msgstr "" + +#: js/toolbar.js:91 +msgid "한국어" +msgstr "" + +#: js/toolbar.js:92 +#: js/toolbar.js:158 +#: js/toolbar.js:213 +#: js/toolbar.js:269 +msgid "español" +msgstr "" + +#: js/toolbar.js:93 +#: js/toolbar.js:159 +#: js/toolbar.js:214 +#: js/toolbar.js:270 +msgid "português" +msgstr "" + +#: js/toolbar.js:94 +#: js/toolbar.js:160 +#: js/toolbar.js:215 +#: js/toolbar.js:271 +msgid "にほんご" +msgstr "" + +#: js/toolbar.js:95 +#: js/toolbar.js:161 +#: js/toolbar.js:216 +#: js/toolbar.js:272 +msgid "中文" +msgstr "" + +#: js/toolbar.js:96 +#: js/toolbar.js:162 +#: js/toolbar.js:217 +#: js/toolbar.js:273 +msgid "ภาษาไทย" +msgstr "" + +#: js/toolbar.js:97 +#: js/toolbar.js:163 +#: js/toolbar.js:218 +#: js/toolbar.js:274 +msgid "aymara" +msgstr "" + +#: js/toolbar.js:98 +#: js/toolbar.js:164 +#: js/toolbar.js:219 +#: js/toolbar.js:275 +msgid "quechua" +msgstr "" + +#: js/toolbar.js:99 +#: js/toolbar.js:165 +#: js/toolbar.js:220 +#: js/toolbar.js:276 +msgid "guarani" +msgstr "" + +#: js/toolbar.js:100 +#: js/toolbar.js:166 +#: js/toolbar.js:221 +#: js/toolbar.js:277 +msgid "हिंदी" +msgstr "" + +#: js/toolbar.js:101 +#: js/toolbar.js:168 +#: js/toolbar.js:222 +#: js/toolbar.js:279 +msgid "igbo" +msgstr "" + +#: js/toolbar.js:102 +#: js/toolbar.js:169 +#: js/toolbar.js:223 +#: js/toolbar.js:280 +msgid "عربى" +msgstr "" + +#: js/toolbar.js:103 +#: js/toolbar.js:167 +#: js/toolbar.js:224 +#: js/toolbar.js:278 +msgid "తెలుగు" +msgstr "" + +#: js/toolbar.js:104 +#: js/toolbar.js:170 +#: js/toolbar.js:225 +#: js/toolbar.js:281 +msgid "עִברִית" +msgstr "" + +#: js/toolbar.js:113 +#: js/toolbar.js:114 +#: js/toolbar.js:178 +#: js/toolbar.js:179 +#: js/toolbar.js:234 +#: js/toolbar.js:235 +msgid "Full Screen" +msgstr "" + +#: js/toolbar.js:148 +#: js/toolbar.js:151 +#: js/toolbar.js:203 +#: js/toolbar.js:206 +#: js/toolbar.js:259 +#: js/toolbar.js:262 +#: js/turtledefs.js:558 +msgid "Save turtle artwork as PNG" +msgstr "" + +#: js/toolbar.js:150 +#: js/toolbar.js:205 +#: js/toolbar.js:261 +#: js/turtledefs.js:554 +msgid "Save turtle artwork as SVG" +msgstr "" + +#: js/toolbar.js:157 +#: js/toolbar.js:212 +#: js/toolbar.js:268 +msgid "한국인" +msgstr "" + +#: js/toolbar.js:174 +#: js/toolbar.js:230 +msgid "About Turtle Blocks" +msgstr "" + +#: js/toolbar.js:446 +#: js/toolbar.js:457 +#: js/toolbar.js:497 +msgid "Turtle Wrap Off" +msgstr "" + +#: js/toolbar.js:466 +#: js/toolbar.js:506 +msgid "Turtle Wrap On" +msgstr "" + +#: js/turtle-painter.js:1192 +#: js/turtle-painter.js:1193 +#: js/turtles.js:118 +#: js/block-verbose.js:1623 +#: js/block.js:1587 +#: js/lilypond.js:749 +#: js/lilypond.js:913 +#: js/lilypond.js:951 +#: js/logo.js:1184 +#: js/blocks/ActionBlocks.js:1223 +#: js/blocks/ProgramBlocks.js:1267 +msgid "start" +msgstr "" + +#: js/turtledefs.js:40 +#.TRANS: put the URL to the guide here, e.g., https://github.com/sugarlabs/turtleblocksjs/tree/master/guide/README.md +msgid "guide url" +msgstr "" + +#: js/turtledefs.js:85 +#: js/turtledefs.js:437 +msgid "Turtle Blocks is a Logo-inspired turtle that draws colorful pictures with snap-together visual-programming blocks." +msgstr "" + +#: js/turtledefs.js:118 +#: js/turtledefs.js:220 +msgid "search" +msgstr "" + +#: js/turtledefs.js:120 +#: js/turtledefs.js:222 +#: js/blocks/MeterBlocks.js:1343 +#: js/blocks/WidgetBlocks.js:522 +#.TRANS: musical meter (time signature), e.g., 4:4 +msgid "meter" +msgstr "" + +#: js/turtledefs.js:122 +#: js/turtledefs.js:224 +msgid "intervals" +msgstr "" + +#: js/turtledefs.js:124 +#: js/turtledefs.js:226 +msgid "ornament" +msgstr "" + +#: js/turtledefs.js:125 +#: js/turtledefs.js:227 +#: js/blocks/VolumeBlocks.js:362 +#: js/blocks/VolumeBlocks.js:502 +#: js/blocks/VolumeBlocks.js:545 +msgid "volume" +msgstr "" + +#: js/turtledefs.js:126 +#: js/turtledefs.js:228 +#: js/block-verbose.js:1700 +#: js/block-verbose.js:2626 +#: js/block.js:1664 +#: js/block.js:2554 +#: js/lilypond.js:732 +#: js/lilypond.js:897 +#: js/lilypond.js:941 +#: js/palette.js:577 +#: js/blocks/RhythmBlocks.js:766 +#: js/blocks/DrumBlocks.js:477 +#: js/blocks/VolumeBlocks.js:502 +#: js/widgets/phrasemaker.js:1038 +msgid "drum" +msgstr "" + +#: js/turtledefs.js:129 +#: js/turtledefs.js:231 +msgid "boxes" +msgstr "" + +#: js/turtledefs.js:130 +#: js/turtledefs.js:232 +msgid "widgets" +msgstr "" + +#: js/turtledefs.js:131 +#: js/turtledefs.js:233 +#: js/widgets/phrasemaker.js:1039 +msgid "graphics" +msgstr "" + +#: js/turtledefs.js:134 +#: js/turtledefs.js:236 +msgid "boolean" +msgstr "" + +#: js/turtledefs.js:137 +#: js/turtledefs.js:239 +#: js/blocks/HeapBlocks.js:59 +#: js/widgets/status.js:147 +msgid "heap" +msgstr "" + +#: js/turtledefs.js:138 +#: js/turtledefs.js:240 +#: js/blocks/DictBlocks.js:142 +#: js/blocks/ProgramBlocks.js:495 +msgid "dictionary" +msgstr "" + +#: js/turtledefs.js:139 +#: js/turtledefs.js:241 +msgid "ensemble" +msgstr "" + +#: js/turtledefs.js:140 +#: js/turtledefs.js:242 +msgid "extras" +msgstr "" + +#: js/turtledefs.js:142 +#: js/turtledefs.js:244 +#.TRANS: program as in computer program +#.TRANS: program as in computer program +msgid "program" +msgstr "" + +#: js/turtledefs.js:143 +#: js/turtledefs.js:245 +msgid "my blocks" +msgstr "" + +#: js/turtledefs.js:185 +#: js/turtledefs.js:281 +msgid "artwork" +msgstr "" + +#: js/turtledefs.js:185 +#: js/turtledefs.js:281 +msgid "logic" +msgstr "" + +#: js/turtledefs.js:185 +#: js/turtledefs.js:281 +msgid "music" +msgstr "" + +#: js/turtledefs.js:187 +#: js/turtledefs.js:463 +msgid "Music Blocks is a collection of tools for exploring fundamental musical concepts in a fun way." +msgstr "" + +#: js/turtledefs.js:436 +msgid "Welcome to Turtle Blocks" +msgstr "" + +#: js/turtledefs.js:438 +#: js/turtledefs.js:465 +#: js/turtledefs.js:774 +#: js/turtledefs.js:805 +msgid "The current version is" +msgstr "" + +#: js/turtledefs.js:446 +#: js/turtledefs.js:483 +msgid "Click the run button to run the project in fast mode." +msgstr "" + +#: js/turtledefs.js:452 +msgid "Stop the turtle." +msgstr "" + +#: js/turtledefs.js:454 +#: js/turtledefs.js:491 +msgid "You can also type Alt-S to stop." +msgstr "" + +#: js/turtledefs.js:462 +#: js/widgets/help.js:333 +msgid "Welcome to Music Blocks" +msgstr "" + +#: js/turtledefs.js:472 +#: js/widgets/help.js:334 +msgid "Meet Mr. Mouse!" +msgstr "" + +#: js/turtledefs.js:473 +msgid "Mr Mouse is our Music Blocks conductor." +msgstr "" + +#: js/turtledefs.js:475 +msgid "Mr Mouse encourages you to explore Music Blocks." +msgstr "" + +#: js/turtledefs.js:477 +msgid "Let us start our tour!" +msgstr "" + +#: js/turtledefs.js:489 +msgid "Stop the music (and the mice)." +msgstr "" + +#: js/turtledefs.js:499 +msgid "Record your project as video." +msgstr "" + +#: js/turtledefs.js:505 +msgid "Toggle Fullscreen mode." +msgstr "" + +#: js/turtledefs.js:511 +msgid "Initialize a new project." +msgstr "" + +#: js/turtledefs.js:517 +msgid "You can also load projects from the file system." +msgstr "" + +#: js/turtledefs.js:522 +#: planet/js/StringHelper.js:46 +msgid "Delete" +msgstr "" + +#: js/turtledefs.js:523 +msgid "To delete a block, just right-click on it, then you will be able to see the delete option" +msgstr "" + +#: js/turtledefs.js:528 +#: js/activity.js:2649 +#: planet/js/LocalCard.js:31 +msgid "Copy" +msgstr "" + +#: js/turtledefs.js:529 +msgid "To copy a block, just right-click on it, then you will be able to see the copy option" +msgstr "" + +#: js/turtledefs.js:534 +#: js/piemenus.js:3411 +msgid "Extract" +msgstr "" + +#: js/turtledefs.js:535 +msgid "To extract a block, just right-click on it, then you will be able to see the extract option" +msgstr "" + +#: js/turtledefs.js:542 +#: js/turtledefs.js:552 +#: js/turtledefs.js:573 +msgid "Save your project to a file." +msgstr "" + +#: js/turtledefs.js:549 +#: js/turtledefs.js:570 +msgid "save" +msgstr "" + +#: js/turtledefs.js:556 +#: js/turtledefs.js:577 +msgid "Save graphics from your project to as SVG." +msgstr "" + +#: js/turtledefs.js:560 +#: js/turtledefs.js:581 +msgid "Save graphics from your project as PNG." +msgstr "" + +#: js/turtledefs.js:564 +#: js/turtledefs.js:597 +msgid "Save block artwork as an SVG file." +msgstr "" + +#: js/turtledefs.js:585 +msgid "Save audio from your project as WAV." +msgstr "" + +#: js/turtledefs.js:589 +msgid "Save your project to as an ABC file." +msgstr "" + +#: js/turtledefs.js:593 +msgid "Save your project to as a Lilypond file." +msgstr "" + +#: js/turtledefs.js:604 +msgid "Load samples from server" +msgstr "" + +#: js/turtledefs.js:605 +msgid "This button opens a viewer for loading example projects." +msgstr "" + +#: js/turtledefs.js:611 +msgid "Palette buttons" +msgstr "" + +#: js/turtledefs.js:612 +msgid "This toolbar contains the palette buttons including Rhythm Pitch Tone Action and more." +msgstr "" + +#: js/turtledefs.js:614 +msgid "Click to show the palettes of blocks and drag blocks from the palettes onto the canvas to use them." +msgstr "" + +#: js/turtledefs.js:620 +msgid "Cartesian/Polar" +msgstr "" + +#: js/turtledefs.js:621 +msgid "Show or hide a coordinate grid." +msgstr "" + +#: js/turtledefs.js:626 +#: js/turtles.js:902 +msgid "Clean" +msgstr "" + +#: js/turtledefs.js:627 +msgid "Clear the screen and return the mice to their initial positions." +msgstr "" + +#: js/turtledefs.js:632 +#: js/turtles.js:955 +msgid "Collapse" +msgstr "" + +#: js/turtledefs.js:633 +msgid "Collapse the graphics window." msgstr "" -#: js/palette.js:571 -msgid "grid" +#: js/turtledefs.js:638 +#: js/activity.js:5684 +msgid "Home" msgstr "" -#: js/palette.js:577 -#: js/block.js:1540 -#: js/block.js:2343 -#: js/turtledefs.js:126 -#: js/turtledefs.js:228 -#: js/lilypond.js:740 -#: js/lilypond.js:905 -#: js/lilypond.js:949 -#: js/DrumBlocks.js:486 -#: js/RhythmBlocks.js:766 -#: js/VolumeBlocks.js:502 -#: js/phrasemaker.js:823 -msgid "drum" +#: js/turtledefs.js:639 +msgid "Return all blocks to the center of the screen." msgstr "" -#: js/palette.js:580 -msgid "effect" +#: js/turtledefs.js:644 +msgid "Show/hide blocks" msgstr "" -#: js/palette.js:586 -msgid "sargam" +#: js/turtledefs.js:645 +msgid "Hide or show the blocks and the palettes." msgstr "" -#: js/palette.js:589 -#: js/activity.js:1833 -#: js/RhythmBlocks.js:923 -#: js/PitchBlocks.js:442 -#: js/PitchBlocks.js:1748 -#.TRANS: a numeric mapping of the notes in an octave based on the musical mode -msgid "scale degree" +#: js/turtledefs.js:650 +msgid "Expand/collapse collapsable blocks" msgstr "" -#: js/palette.js:592 -#: js/activity.js:1860 -msgid "mode name" +#: js/turtledefs.js:651 +msgid "Expand or collapse start and action stacks." msgstr "" -#: js/palette.js:595 -#: js/activity.js:1839 -msgid "invert mode" +#: js/turtledefs.js:658 +#: js/activity.js:5704 +msgid "Decrease block size" msgstr "" -#: js/palette.js:598 -#: js/activity.js:1836 -msgid "voice name" +#: js/turtledefs.js:659 +msgid "Decrease the size of the blocks." msgstr "" -#: js/palette.js:601 -#: js/PitchBlocks.js:1181 -msgid "custom pitch" +#: js/turtledefs.js:664 +#: js/activity.js:5710 +msgid "Increase block size" msgstr "" -#: js/palette.js:605 -#: js/block.js:1456 -#: js/block.js:1575 -#: js/WidgetBlocks.js:218 -#: js/IntervalsBlocks.js:63 -msgid "temperament" +#: js/turtledefs.js:665 +msgid "Increase the size of the blocks." msgstr "" -#: js/palette.js:609 -msgid "accidental" +#: js/turtledefs.js:670 +msgid "Expand/collapse option toolbar" msgstr "" -#: js/palette.js:615 -#: js/activity.js:1866 -msgid "interval name" +#: js/turtledefs.js:671 +msgid "Click this button to expand or collapse the auxillary toolbar." msgstr "" -#: js/palette.js:633 -#: js/PitchBlocks.js:405 -msgid "pitch converter" +#: js/turtledefs.js:676 +msgid "Run slow" msgstr "" -#: js/rubrics.js:522 -#: js/turtledefs.js:119 -#: js/turtledefs.js:221 -#: js/RhythmBlockPaletteBlocks.js:52 -#: js/RhythmBlockPaletteBlocks.js:233 -#: js/ProgramBlocks.js:745 -#: js/rhythmruler.js:1670 -#: js/rhythmruler.js:1677 -#: js/rhythmruler.js:1745 -#: js/rhythmruler.js:1752 -#: js/rhythmruler.js:1830 -#.TRANS: an arrangement of notes based on duration -msgid "rhythm" +#: js/turtledefs.js:677 +msgid "Click to run the project in slow mode." msgstr "" -#: js/rubrics.js:523 -#: js/block.js:2339 -#: js/turtledefs.js:121 -#: js/turtledefs.js:223 -#: js/IntervalsBlocks.js:63 -#: js/PitchBlocks.js:1801 -#: js/PitchBlocks.js:1814 -#: js/SensorsBlocks.js:178 -#: js/phrasemaker.js:821 -#: js/musickeyboard.js:1653 -#.TRANS: pitch number -#.TRANS: we specify pitch in terms of a name and an octave. The name can be CDEFGAB or Do Re Mi Fa Sol La Ti. Octave is a number between 1 and 8. -msgid "pitch" +#: js/turtledefs.js:683 +msgid "Click to run the project step by step." msgstr "" -#: js/rubrics.js:524 -#: js/turtledefs.js:123 -#: js/turtledefs.js:225 -msgid "tone" +#: js/turtledefs.js:690 +msgid "Display statistics about your Music project." msgstr "" -#: js/rubrics.js:525 -#: js/lilypond.js:613 -#: js/lilypond.js:912 -#: js/lilypond.js:918 -#: js/lilypond.js:956 -msgid "mouse" +#: js/turtledefs.js:697 +msgid "Delete a selected plugin." msgstr "" -#: js/rubrics.js:526 -#: js/turtledefs.js:132 -#: js/turtledefs.js:234 -#: js/phrasemaker.js:825 -msgid "pen" +#: js/turtledefs.js:704 +msgid "Enable scrolling" msgstr "" -#: js/rubrics.js:527 -#: js/turtledefs.js:133 -#: js/turtledefs.js:235 -#: js/NumberBlocks.js:905 -#: js/PitchBlocks.js:1679 -#: js/PitchBlocks.js:1720 -msgid "number" +#: js/turtledefs.js:705 +msgid "You can scroll the blocks on the canvas." msgstr "" -#: js/rubrics.js:528 -#: js/turtledefs.js:127 -#: js/turtledefs.js:229 -msgid "flow" +#: js/turtledefs.js:714 +msgid "Wrap Turtle" msgstr "" -#: js/rubrics.js:530 -#: js/turtledefs.js:136 -#: js/turtledefs.js:238 -msgid "sensors" +#: js/turtledefs.js:715 +msgid "Turn Turtle wrapping On or Off." msgstr "" -#: js/rubrics.js:531 -#: js/turtledefs.js:135 -#: js/turtledefs.js:237 -#: js/MediaBlocks.js:930 -msgid "media" +#: js/turtledefs.js:725 +msgid "Restore blocks from the trash." msgstr "" -#: js/rubrics.js:532 -msgid "mice" +#: js/turtledefs.js:732 +msgid "Switch mode" msgstr "" -#: js/macros.js:711 -#: js/musicutils.js:783 -#: js/synthutils.js:181 -#.TRANS: animal sound effect -msgid "duck" +#: js/turtledefs.js:733 +msgid "Switch between beginner and advance modes." msgstr "" -#: js/toolbar.js:46 -#: js/toolbar.js:107 -msgid "About Music Blocks" +#: js/turtledefs.js:739 +msgid "Select your language preference." msgstr "" -#: js/toolbar.js:47 -#: js/toolbar.js:108 -#: js/toolbar.js:172 -#: js/toolbar.js:228 -#: js/turtledefs.js:445 -#: js/turtledefs.js:482 -#: js/activity.js:2281 -#: js/activity.js:2289 -#: js/activity.js:2520 -#: js/modewidget.js:77 -#: js/pitchstaircase.js:121 -#: js/phrasemaker.js:302 -#: js/phrasemaker.js:312 -#: js/phrasemaker.js:314 -#: js/phrasemaker.js:3901 -#: js/phrasemaker.js:4061 -#: js/phrasemaker.js:4066 -#: js/phrasemaker.js:4068 -#: js/phrasemaker.js:4183 -#: js/pitchdrummatrix.js:81 -#: js/pitchdrummatrix.js:574 -#: js/pitchdrummatrix.js:576 -#: js/pitchdrummatrix.js:628 -#: js/pitchdrummatrix.js:630 -#: js/pitchdrummatrix.js:645 -#: js/pitchdrummatrix.js:647 -#: js/pitchdrummatrix.js:674 -#: js/pitchdrummatrix.js:676 -#: js/temperament.js:477 -#: js/temperament.js:480 -#: js/temperament.js:540 -#: js/temperament.js:542 -#: js/temperament.js:1835 -#: js/temperament.js:1837 -#: js/temperament.js:1986 -#: js/temperament.js:1988 -#: js/musickeyboard.js:522 -#: js/musickeyboard.js:682 -#: js/musickeyboard.js:684 -#: js/musickeyboard.js:756 -#: js/musickeyboard.js:758 -#: js/rhythmruler.js:298 -#: js/rhythmruler.js:300 -#: js/rhythmruler.js:314 -#: js/rhythmruler.js:316 -#: js/sampler.js:96 -#: js/sampler.js:98 -#: js/sampler.js:229 -#: js/sampler.js:235 -#: js/sampler.js:237 -#: js/tempo.js:84 -#: js/tempo.js:86 -#: js/timbre.js:432 -#: js/timbre.js:434 -#: js/timbre.js:465 -#: js/timbre.js:467 -#: js/timbre.js:746 -#: js/meterwidget.js:80 -#: js/arpeggio.js:90 -#: js/arpeggio.js:547 -#: js/arpeggio.js:549 -#: js/arpeggio.js:644 -#: js/arpeggio.js:646 -msgid "Play" +#: js/turtledefs.js:745 +msgid "Keyboard shortcuts" msgstr "" -#: js/toolbar.js:48 -#: js/toolbar.js:109 -#: js/toolbar.js:173 -#: js/toolbar.js:229 -#: js/turtledefs.js:451 -#: js/turtledefs.js:488 -#: js/activity.js:2297 -#: js/modewidget.js:99 -#: js/modewidget.js:101 -#: js/phrasemaker.js:323 -#: js/phrasemaker.js:325 -#: js/pitchdrummatrix.js:561 -#: js/pitchdrummatrix.js:563 -#: js/temperament.js:1820 -#: js/temperament.js:1822 -#: js/meterwidget.js:101 -#: js/meterwidget.js:103 -#: js/arpeggio.js:534 -#: js/arpeggio.js:536 -msgid "Stop" +#: js/turtledefs.js:746 +msgid "You can type d to create a do block and r to create a re block etc." msgstr "" -#: js/toolbar.js:49 -#: js/toolbar.js:110 -#: js/toolbar.js:174 -#: js/toolbar.js:230 -#: js/turtledefs.js:498 -msgid "Record" +#: js/turtledefs.js:753 +msgid "Show these messages." msgstr "" -#: js/toolbar.js:50 -#: js/toolbar.js:51 -msgid "Full screen" +#: js/turtledefs.js:759 +#: js/turtledefs.js:790 +#: js/widgets/help.js:335 +msgid "Guide" msgstr "" -#: js/toolbar.js:52 -#: js/toolbar.js:112 -#: js/toolbar.js:177 -#: js/toolbar.js:232 -#: js/turtledefs.js:504 -msgid "Toggle Fullscreen" +#: js/turtledefs.js:760 +msgid "A detailed guide to Turtle Blocks is available." msgstr "" -#: js/toolbar.js:53 -#: js/toolbar.js:113 -#: js/toolbar.js:178 -#: js/toolbar.js:233 -#: js/turtledefs.js:510 -#: js/StringHelper.js:33 -msgid "New project" +#: js/turtledefs.js:764 +msgid "Turtle Blocks Guide" msgstr "" -#: js/toolbar.js:54 -#: js/toolbar.js:114 -#: js/toolbar.js:179 -#: js/toolbar.js:234 -#: js/turtledefs.js:516 -msgid "Load project from file" +#: js/turtledefs.js:767 +#: js/turtledefs.js:798 +#: js/widgets/help.js:336 +msgid "About" msgstr "" -#: js/toolbar.js:55 -#: js/toolbar.js:115 -#: js/toolbar.js:116 -#: js/toolbar.js:180 -#: js/toolbar.js:235 -#: js/turtledefs.js:541 -#: js/turtledefs.js:550 -#: js/turtledefs.js:571 -msgid "Save project" +#: js/turtledefs.js:768 +msgid "Turtle Blocks is an open source collection of tools for exploring musical concepts." msgstr "" -#: js/toolbar.js:56 -#: js/toolbar.js:75 -#: js/toolbar.js:77 -#: js/toolbar.js:135 -#: js/toolbar.js:144 -#: js/toolbar.js:146 -#: js/toolbar.js:181 -#: js/toolbar.js:199 -#: js/toolbar.js:201 -#: js/toolbar.js:236 -#: js/toolbar.js:254 -#: js/toolbar.js:256 -msgid "Save project as HTML" +#: js/turtledefs.js:770 +msgid "A full list of contributors can be found in the Turtle Blocks GitHub repository." +msgstr "" + +#: js/turtledefs.js:772 +msgid "Turtle Blocks is licensed under the AGPL." +msgstr "" + +#: js/turtledefs.js:780 +msgid "Turtle Blocks GitHub repository" +msgstr "" + +#: js/turtledefs.js:783 +#: js/turtledefs.js:814 +#: js/widgets/help.js:337 +#: js/widgets/help.js:359 +msgid "Congratulations." +msgstr "" + +#: js/turtledefs.js:784 +msgid "You have finished the tour. Please enjoy Turtle Blocks!" +msgstr "" + +#: js/turtledefs.js:791 +msgid "A detailed guide to Music Blocks is available." +msgstr "" + +#: js/turtledefs.js:799 +msgid "Music Blocks is an open source collection of tools for exploring musical concepts." +msgstr "" + +#: js/turtledefs.js:801 +msgid "A full list of contributors can be found in the Music Blocks GitHub repository." +msgstr "" + +#: js/turtledefs.js:803 +msgid "Music Blocks is licensed under the AGPL." +msgstr "" + +#: js/turtledefs.js:811 +msgid "Music Blocks GitHub repository" +msgstr "" + +#: js/turtledefs.js:815 +msgid "You have finished the tour. Please enjoy Music Blocks!" +msgstr "" + +#: js/turtles.js:882 +msgid "Grid" +msgstr "" + +#: js/turtles.js:1024 +msgid "Expand" +msgstr "" + +#: js/block-verbose.js:1616 +#: js/block-verbose.js:1735 +#: js/block.js:1580 +#: js/block.js:1699 +#: js/palette.js:605 +#: js/blocks/IntervalsBlocks.js:63 +#: js/blocks/WidgetBlocks.js:259 +msgid "temperament" +msgstr "" + +#: js/block-verbose.js:1630 +#: js/block.js:1594 +msgid "matrix" msgstr "" -#: js/toolbar.js:57 -#: js/toolbar.js:117 -#: js/toolbar.js:182 -#: js/toolbar.js:237 -msgid "Find and share projects" +#: js/block-verbose.js:1637 +#: js/block.js:1601 +#: js/blocks/WidgetBlocks.js:1509 +#: plugins/rodi.rtp:324 +msgid "status" msgstr "" -#: js/toolbar.js:58 -#: js/toolbar.js:118 -#: js/toolbar.js:183 -#: js/toolbar.js:238 -msgid "Offline. Sharing is unavailable" +#: js/block-verbose.js:1644 +#: js/block.js:1608 +msgid "drum mapper" msgstr "" -#: js/toolbar.js:59 -#: js/toolbar.js:119 -#: js/toolbar.js:184 -#: js/toolbar.js:239 -msgid "Auxiliary menu" +#: js/block-verbose.js:1651 +#: js/block.js:1615 +msgid "ruler" msgstr "" -#: js/toolbar.js:61 -#: js/toolbar.js:121 -#: js/toolbar.js:186 -#: js/toolbar.js:241 -msgid "Run slowly" +#: js/block-verbose.js:1658 +#: js/block.js:1622 +#: js/blocks/WidgetBlocks.js:397 +#.TRANS: timbre is the character or quality of a musical sound +msgid "timbre" msgstr "" -#: js/toolbar.js:62 -#: js/toolbar.js:122 -#: js/toolbar.js:187 -#: js/toolbar.js:242 -#: js/turtledefs.js:682 -msgid "Run step by step" +#: js/block-verbose.js:1665 +#: js/block.js:1629 +msgid "stair" msgstr "" -#: js/toolbar.js:63 -#: js/toolbar.js:123 -#: js/toolbar.js:188 -#: js/toolbar.js:243 -#: js/turtledefs.js:689 -msgid "Display statistics" +#: js/block-verbose.js:1672 +#: js/block.js:1636 +#: js/blocks/WidgetBlocks.js:707 +#.TRANS: the speed at music is should be played. +msgid "tempo" msgstr "" -#: js/toolbar.js:64 -#: js/toolbar.js:124 -#: js/toolbar.js:189 -#: js/toolbar.js:244 -msgid "Load plugin" +#: js/block-verbose.js:1679 +#: js/block-verbose.js:1742 +#: js/block.js:1643 +#: js/block.js:1706 +#: js/blocks/IntervalsBlocks.js:1464 +#.TRANS: mode, e.g., Major in C Major +msgid "mode" msgstr "" -#: js/toolbar.js:65 -#: js/toolbar.js:125 -#: js/toolbar.js:190 -#: js/toolbar.js:245 -#: js/turtledefs.js:696 -msgid "Delete plugin" +#: js/block-verbose.js:1686 +#: js/block.js:1650 +msgid "slider" msgstr "" -#: js/toolbar.js:66 -#: js/toolbar.js:126 -#: js/toolbar.js:191 -#: js/toolbar.js:246 -msgid "Enable horizontal scrolling" +#: js/block-verbose.js:1693 +#: js/block.js:1657 +#: js/blocks/SensorsBlocks.js:1001 +msgid "keyboard" msgstr "" -#: js/toolbar.js:67 -#: js/toolbar.js:127 -#: js/toolbar.js:192 -#: js/toolbar.js:247 -msgid "Disable horizontal scrolling" +#: js/block-verbose.js:1707 +#: js/block.js:1671 +#: js/blocks/WidgetBlocks.js:1190 +#: js/blocks/WidgetBlocks.js:1228 +#.TRANS: widget for subdividing a measure into distinct rhythmic elements +msgid "rhythm maker" msgstr "" -#: js/toolbar.js:68 -#: js/toolbar.js:128 -#: js/toolbar.js:193 -#: js/toolbar.js:248 -#: js/LocalCard.js:54 -#: js/StringHelper.js:71 -msgid "Merge with current project" +#: js/block-verbose.js:1714 +#: js/block-verbose.js:2457 +#: js/block-verbose.js:2514 +#: js/block.js:1678 +#: js/block.js:2385 +#: js/block.js:2442 +#: js/blocks/MeterBlocks.js:1367 +#: js/blocks/OrnamentBlocks.js:220 +#: js/blocks/OrnamentBlocks.js:312 +#: js/blocks/RhythmBlocks.js:33 +#: js/blocks/RhythmBlocks.js:356 +#: js/blocks/RhythmBlocks.js:766 +#: js/blocks/RhythmBlocks.js:806 +#: js/blocks/RhythmBlockPaletteBlocks.js:70 +#: js/blocks/RhythmBlockPaletteBlocks.js:252 +#: js/blocks/RhythmBlockPaletteBlocks.js:485 +#: js/blocks/RhythmBlockPaletteBlocks.js:554 +#: js/blocks/RhythmBlockPaletteBlocks.js:605 +#: js/blocks/RhythmBlockPaletteBlocks.js:875 +#: js/turtleactions/DictActions.js:85 +#: js/widgets/phrasemaker.js:942 +#: js/widgets/phrasemaker.js:2656 +#: js/widgets/phrasemaker.js:2699 +#: js/widgets/phrasemaker.js:2810 +#.TRANS: the value (e.g., 1/4 note) of the note being played. +msgid "note value" msgstr "" -#: js/toolbar.js:69 -#: js/toolbar.js:129 -msgid "Set Pitch Preview" +#: js/block-verbose.js:1721 +#: js/block-verbose.js:2382 +#: js/block-verbose.js:2405 +#: js/block.js:1685 +#: js/block.js:2310 +#: js/block.js:2333 +#: js/blocks/IntervalsBlocks.js:1071 +#: js/blocks/OrnamentBlocks.js:312 +#.TRANS: calculate a relative step between notes based on semi-tones +msgid "scalar interval" msgstr "" -#: js/toolbar.js:70 -#: js/toolbar.js:130 -#: js/toolbar.js:194 -#: js/toolbar.js:249 -msgid "Toggle JavaScript Editor" +#: js/block-verbose.js:1728 +#: js/block.js:1692 +#: js/blocks/RhythmBlocks.js:148 +msgid "milliseconds" msgstr "" -#: js/toolbar.js:71 -#: js/toolbar.js:131 -#: js/toolbar.js:195 -#: js/toolbar.js:250 -#: js/turtledefs.js:724 -msgid "Restore" +#: js/block-verbose.js:2455 +#: js/block-verbose.js:2459 +#: js/block-verbose.js:2512 +#: js/block-verbose.js:2628 +#: js/block.js:2383 +#: js/block.js:2387 +#: js/block.js:2440 +#: js/block.js:2556 +#: js/blocks/RhythmBlocks.js:712 +#: js/blocks/ProgramBlocks.js:1273 +#: js/widgets/rhythmruler.js:1183 +#: js/widgets/rhythmruler.js:1329 +msgid "silence" msgstr "" -#: js/toolbar.js:72 -#: js/toolbar.js:132 -#: js/toolbar.js:196 -#: js/toolbar.js:251 -msgid "Switch to beginner mode" +#: js/block-verbose.js:2548 +#: js/block-verbose.js:3492 +#: js/block-verbose.js:3509 +#: js/activity.js:2718 +#: js/activity.js:2769 +#: js/block.js:2476 +#: js/block.js:3416 +#: js/block.js:3433 +#: js/utils/musicutils.js:3780 +#: js/utils/musicutils.js:5273 +#.TRANS: the note names must be separated by single spaces +#.TRANS: the note names must be separated by single spaces +#.TRANS: the note names must be separated by single spaces +msgid "ti la sol fa mi re do" msgstr "" -#: js/toolbar.js:73 -#: js/toolbar.js:133 -#: js/toolbar.js:197 -#: js/toolbar.js:252 -msgid "Switch to advanced mode" +#: js/block-verbose.js:2616 +#: js/block.js:2544 +#.TRANS: scalar step +#.TRANS: scalar step +msgid "down" msgstr "" -#: js/toolbar.js:74 -#: js/toolbar.js:134 -#: js/toolbar.js:143 -#: js/toolbar.js:198 -#: js/toolbar.js:253 -#: js/turtledefs.js:738 -msgid "Select language" +#: js/block-verbose.js:2617 +#: js/block.js:2545 +msgid "up" msgstr "" -#: js/toolbar.js:76 -#: js/toolbar.js:79 -#: js/toolbar.js:137 -#: js/turtledefs.js:579 -msgid "Save mouse artwork as PNG" +#: js/block-verbose.js:3026 +#: js/block.js:2950 +msgid "Silence block cannot be removed." msgstr "" -#: js/toolbar.js:78 -#: js/toolbar.js:136 -#: js/turtledefs.js:575 -msgid "Save mouse artwork as SVG" +#: js/block-verbose.js:3824 +#: js/block.js:3748 +#: js/blocks.js:2607 +#: js/blocks.js:3218 +#: js/palette.js:618 +#: js/blocks/BooleanBlocks.js:77 +#: js/blocks/BooleanBlocks.js:167 +#: js/blocks/BooleanBlocks.js:251 +#: js/blocks/BooleanBlocks.js:335 +#: js/blocks/BooleanBlocks.js:433 +#: js/blocks/BooleanBlocks.js:539 +#: js/blocks/BooleanBlocks.js:640 +#: js/blocks/BooleanBlocks.js:741 +#: js/blocks/BooleanBlocks.js:847 +#: js/blocks/BooleanBlocks.js:948 +#: js/blocks/BooleanBlocks.js:1033 +#: js/blocks/SensorsBlocks.js:910 +msgid "true" msgstr "" -#: js/toolbar.js:80 -#: js/toolbar.js:138 -#: js/turtledefs.js:583 -msgid "Save music as WAV" +#: js/block-verbose.js:3824 +#: js/block.js:3748 +#: js/blocks.js:2609 +#: js/blocks.js:3220 +#: js/blocks/BooleanBlocks.js:79 +#: js/blocks/BooleanBlocks.js:169 +#: js/blocks/BooleanBlocks.js:253 +#: js/blocks/BooleanBlocks.js:337 +#: js/blocks/BooleanBlocks.js:435 +#: js/blocks/BooleanBlocks.js:541 +#: js/blocks/BooleanBlocks.js:642 +#: js/blocks/BooleanBlocks.js:743 +#: js/blocks/BooleanBlocks.js:849 +#: js/blocks/BooleanBlocks.js:950 +#: js/blocks/SensorsBlocks.js:912 +msgid "false" msgstr "" -#: js/toolbar.js:81 -#: js/toolbar.js:139 -#: js/turtledefs.js:587 -msgid "Save sheet music as ABC" +#: js/block-verbose.js:3835 +#: js/block-verbose.js:3848 +#: js/block.js:3759 +#: js/block.js:3772 +#: js/blocks/ExtrasBlocks.js:615 +msgid "Cartesian" msgstr "" -#: js/toolbar.js:82 -#: js/toolbar.js:140 -#: js/turtledefs.js:591 -msgid "Save sheet music as Lilypond" +#: js/block-verbose.js:3836 +#: js/block-verbose.js:3849 +#: js/block.js:3760 +#: js/block.js:3773 +#: js/blocks/ExtrasBlocks.js:619 +msgid "polar" msgstr "" -#: js/toolbar.js:83 -msgid "Save sheet music as MusicXML" +#: js/block-verbose.js:3837 +#: js/block-verbose.js:3850 +#: js/block.js:3761 +#: js/block.js:3774 +#: js/blocks/ExtrasBlocks.js:623 +msgid "Cartesian+polar" msgstr "" -#: js/toolbar.js:84 -#: js/toolbar.js:141 -#: js/toolbar.js:149 -#: js/toolbar.js:204 -#: js/toolbar.js:259 -#: js/turtledefs.js:562 -#: js/turtledefs.js:595 -msgid "Save block artwork as SVG" +#: js/block-verbose.js:3838 +#: js/block-verbose.js:3857 +#: js/block.js:3762 +#: js/block.js:3781 +#: js/blocks/ExtrasBlocks.js:652 +msgid "none" msgstr "" -#: js/toolbar.js:85 -#: js/toolbar.js:142 -#: js/toolbar.js:150 -#: js/toolbar.js:205 -#: js/toolbar.js:260 -msgid "Confirm" +#: js/block-verbose.js:3851 +#: js/block.js:3775 +#: js/blocks/ExtrasBlocks.js:628 +msgid "treble" msgstr "" -#: js/toolbar.js:86 -#: js/toolbar.js:151 -#: js/toolbar.js:206 -#: js/toolbar.js:261 -msgid "English (United States)" +#: js/block-verbose.js:3852 +#: js/block.js:3776 +#: js/blocks/ExtrasBlocks.js:632 +msgid "grand staff" msgstr "" -#: js/toolbar.js:87 -#: js/toolbar.js:152 -#: js/toolbar.js:207 -#: js/toolbar.js:262 -msgid "English (United Kingdom)" +#: js/block-verbose.js:3853 +#: js/block.js:3777 +#: js/blocks/ExtrasBlocks.js:636 +msgid "mezzo-soprano" msgstr "" -#: js/toolbar.js:88 -#: js/toolbar.js:153 -#: js/toolbar.js:208 -#: js/toolbar.js:263 -msgid "日本語" +#: js/block-verbose.js:3854 +#: js/block.js:3778 +#: js/blocks/ExtrasBlocks.js:640 +msgid "alto" msgstr "" -#: js/toolbar.js:89 -msgid "한국어" +#: js/block-verbose.js:3855 +#: js/block.js:3779 +#: js/blocks/ExtrasBlocks.js:644 +msgid "tenor" msgstr "" -#: js/toolbar.js:90 -#: js/toolbar.js:155 -#: js/toolbar.js:210 -#: js/toolbar.js:265 -msgid "español" +#: js/block-verbose.js:3856 +#: js/block.js:3780 +#: js/utils/musicutils.js:1115 +#: js/utils/synthutils.js:80 +#: js/blocks/ExtrasBlocks.js:648 +#.TRANS: musical instrument +msgid "bass" msgstr "" -#: js/toolbar.js:91 -#: js/toolbar.js:156 -#: js/toolbar.js:211 -#: js/toolbar.js:266 -msgid "português" +#: js/block-verbose.js:3901 +#: js/block.js:3825 +#: js/blocks.js:2600 +#: js/blocks.js:3211 +msgid "on2" msgstr "" -#: js/toolbar.js:92 -#: js/toolbar.js:157 -#: js/toolbar.js:212 -#: js/toolbar.js:267 -msgid "にほんご" +#: js/block-verbose.js:3903 +#: js/block.js:3827 +#: js/blocks.js:2602 +#: js/blocks.js:3213 +msgid "off" msgstr "" -#: js/toolbar.js:93 -#: js/toolbar.js:158 -#: js/toolbar.js:213 -#: js/toolbar.js:268 -msgid "中文" +#: js/block-verbose.js:4470 +#: js/block.js:4394 +msgid "Not a number" msgstr "" -#: js/toolbar.js:94 -#: js/toolbar.js:159 -#: js/toolbar.js:214 -#: js/toolbar.js:269 -msgid "ภาษาไทย" +#: js/block-verbose.js:4477 +#: js/block.js:4401 +msgid "Octave value must be between 1 and 10." msgstr "" -#: js/toolbar.js:95 -#: js/toolbar.js:160 -#: js/toolbar.js:215 -#: js/toolbar.js:270 -msgid "aymara" +#: js/block-verbose.js:4485 +#: js/block.js:4409 +msgid "Numbers can have at most 10 digits." msgstr "" -#: js/toolbar.js:96 -#: js/toolbar.js:161 -#: js/toolbar.js:216 -#: js/toolbar.js:271 -msgid "quechua" +#: js/activity.js:390 +#: js/activity.js:395 +msgid "Search for blocks" msgstr "" -#: js/toolbar.js:97 -#: js/toolbar.js:162 -#: js/toolbar.js:217 -#: js/toolbar.js:272 -msgid "guarani" +#: js/activity.js:1413 +msgid "Refresh your browser to change to advanced mode." msgstr "" -#: js/toolbar.js:98 -#: js/toolbar.js:163 -#: js/toolbar.js:218 -#: js/toolbar.js:273 -msgid "हिंदी" +#: js/activity.js:1418 +msgid "Refresh your browser to change to beginner mode." msgstr "" -#: js/toolbar.js:99 -#: js/toolbar.js:165 -#: js/toolbar.js:219 -#: js/toolbar.js:275 -msgid "igbo" +#: js/activity.js:1477 +msgid "Catching mice" +msgstr "" + +#: js/activity.js:1478 +msgid "Cleaning the instruments" +msgstr "" + +#: js/activity.js:1479 +msgid "Testing key pieces" +msgstr "" + +#: js/activity.js:1480 +msgid "Sight-reading" +msgstr "" + +#: js/activity.js:1481 +msgid "Combining math and music" msgstr "" -#: js/toolbar.js:100 -#: js/toolbar.js:166 -#: js/toolbar.js:220 -#: js/toolbar.js:276 -msgid "عربى" +#: js/activity.js:1482 +msgid "Generating more blocks" msgstr "" -#: js/toolbar.js:101 -#: js/toolbar.js:164 -#: js/toolbar.js:221 -#: js/toolbar.js:274 -msgid "తెలుగు" +#: js/activity.js:1483 +msgid "Do Re Mi Fa Sol La Ti Do" msgstr "" -#: js/toolbar.js:102 -#: js/toolbar.js:167 -#: js/toolbar.js:222 -#: js/toolbar.js:277 -msgid "עִברִית" +#: js/activity.js:1484 +msgid "Tuning string instruments" msgstr "" -#: js/toolbar.js:111 -#: js/toolbar.js:175 -#: js/toolbar.js:176 -#: js/toolbar.js:231 -msgid "Full Screen" +#: js/activity.js:1485 +msgid "Pressing random keys" msgstr "" -#: js/toolbar.js:145 -#: js/toolbar.js:148 -#: js/toolbar.js:200 -#: js/toolbar.js:203 -#: js/toolbar.js:255 -#: js/toolbar.js:258 -#: js/turtledefs.js:558 -msgid "Save turtle artwork as PNG" +#: js/activity.js:1663 +msgid "plugins will be removed upon restart." msgstr "" -#: js/toolbar.js:147 -#: js/toolbar.js:202 -#: js/toolbar.js:257 -#: js/turtledefs.js:554 -msgid "Save turtle artwork as SVG" +#: js/activity.js:1672 +msgid "show Cartesian" msgstr "" -#: js/toolbar.js:154 -#: js/toolbar.js:209 -#: js/toolbar.js:264 -msgid "한국인" +#: js/activity.js:2211 +#: js/palette.js:589 +#: js/blocks/RhythmBlocks.js:923 +#: js/blocks/PitchBlocks.js:442 +#: js/blocks/PitchBlocks.js:1786 +#.TRANS: a numeric mapping of the notes in an octave based on the musical mode +msgid "scale degree" msgstr "" -#: js/toolbar.js:171 -#: js/toolbar.js:227 -msgid "About Turtle Blocks" +#: js/activity.js:2214 +#: js/palette.js:598 +msgid "voice name" msgstr "" -#: js/toolbar.js:429 -#: js/toolbar.js:440 -msgid "Turtle Wrap Off" +#: js/activity.js:2217 +#: js/palette.js:595 +msgid "invert mode" msgstr "" -#: js/toolbar.js:442 -msgid "Turtle Wrap On" +#: js/activity.js:2220 +msgid "output tools" msgstr "" -#: js/block.js:1470 -msgid "matrix" +#: js/activity.js:2223 +msgid "custom note" msgstr "" -#: js/block.js:1477 -#: js/WidgetBlocks.js:1226 -#: plugins/rodi.rtp:324 -msgid "status" +#: js/activity.js:2226 +msgid "accidental name" msgstr "" -#: js/block.js:1484 -msgid "drum mapper" +#: js/activity.js:2229 +#: js/blocks/PitchBlocks.js:855 +msgid "east indian solfege" msgstr "" -#: js/block.js:1491 -msgid "ruler" +#: js/activity.js:2232 +#: js/blocks/PitchBlocks.js:869 +msgid "note name" msgstr "" -#: js/block.js:1498 -#: js/WidgetBlocks.js:327 -#.TRANS: timbre is the character or quality of a musical sound -msgid "timbre" +#: js/activity.js:2235 +#: js/blocks/IntervalsBlocks.js:94 +msgid "temperament name" msgstr "" -#: js/block.js:1505 -msgid "stair" +#: js/activity.js:2238 +#: js/palette.js:592 +msgid "mode name" msgstr "" -#: js/block.js:1512 -#: js/WidgetBlocks.js:577 -#.TRANS: the speed at music is should be played. -msgid "tempo" +#: js/activity.js:2241 +msgid "chord name" msgstr "" -#: js/block.js:1519 -#: js/block.js:1582 -#: js/IntervalsBlocks.js:1268 -#.TRANS: mode, e.g., Major in C Major -msgid "mode" +#: js/activity.js:2244 +#: js/palette.js:615 +msgid "interval name" msgstr "" -#: js/block.js:1526 -msgid "slider" +#: js/activity.js:2247 +msgid "filter type" msgstr "" -#: js/block.js:1533 -#: js/SensorsBlocks.js:1001 -msgid "keyboard" +#: js/activity.js:2250 +msgid "oscillator type" msgstr "" -#: js/block.js:1547 -#: js/WidgetBlocks.js:957 -#: js/WidgetBlocks.js:988 -#.TRANS: widget for subdividing a measure into distinct rhythmic elements -msgid "rhythm maker" +#: js/activity.js:2253 +#: js/blocks.js:2479 +#: js/blocks.js:2487 +msgid "audio file" msgstr "" -#: js/block.js:1554 -#: js/block.js:2182 -#: js/block.js:2236 -#: js/RhythmBlockPaletteBlocks.js:70 -#: js/RhythmBlockPaletteBlocks.js:251 -#: js/RhythmBlockPaletteBlocks.js:484 -#: js/RhythmBlockPaletteBlocks.js:553 -#: js/RhythmBlockPaletteBlocks.js:604 -#: js/RhythmBlockPaletteBlocks.js:874 -#: js/RhythmBlocks.js:33 -#: js/RhythmBlocks.js:356 -#: js/RhythmBlocks.js:766 -#: js/RhythmBlocks.js:806 -#: js/OrnamentBlocks.js:220 -#: js/OrnamentBlocks.js:312 -#: js/MeterBlocks.js:1367 -#: js/DictActions.js:85 -#: js/phrasemaker.js:731 -#: js/phrasemaker.js:2393 -#: js/phrasemaker.js:2436 -#: js/phrasemaker.js:2534 -#.TRANS: the value (e.g., 1/4 note) of the note being played. -msgid "note value" +#: js/activity.js:2256 +#: js/blocks/DrumBlocks.js:32 +msgid "noise name" msgstr "" -#: js/block.js:1561 -#: js/block.js:2110 -#: js/block.js:2133 -#: js/IntervalsBlocks.js:875 -#: js/OrnamentBlocks.js:312 -#.TRANS: calculate a relative step between notes based on semi-tones -msgid "scalar interval" +#: js/activity.js:2259 +#: js/blocks/DrumBlocks.js:75 +msgid "drum name" msgstr "" -#: js/block.js:1568 -#: js/RhythmBlocks.js:148 -msgid "milliseconds" +#: js/activity.js:2262 +#: js/blocks/DrumBlocks.js:119 +msgid "effects name" msgstr "" -#: js/block.js:2180 -#: js/block.js:2184 -#: js/block.js:2234 -#: js/block.js:2345 -#: js/ProgramBlocks.js:1273 -#: js/RhythmBlocks.js:712 -#: js/rhythmruler.js:834 -#: js/rhythmruler.js:961 -msgid "silence" +#: js/activity.js:2265 +msgid "wrap mode" msgstr "" -#: js/block.js:2265 -#: js/block.js:3134 -#: js/block.js:3151 -#: js/activity.js:2336 -#: js/activity.js:2387 -#: js/musicutils.js:2932 -#: js/musicutils.js:4287 -#.TRANS: the note names must be separated by single spaces -#.TRANS: the note names must be separated by single spaces -msgid "ti la sol fa mi re do" +#: js/activity.js:2268 +msgid "load file" msgstr "" -#: js/block.js:2333 -#.TRANS: scalar step -msgid "down" +#: js/activity.js:2435 +#: js/activity.js:5851 +msgid "This block is deprecated." msgstr "" -#: js/block.js:2334 -msgid "up" +#: js/activity.js:2437 +#: js/activity.js:5853 +msgid "Block cannot be found." msgstr "" -#: js/block.js:3477 -#: js/block.js:3490 -#: js/ExtrasBlocks.js:612 -msgid "Cartesian" +#: js/activity.js:2645 +msgid "Saving block artwork" msgstr "" -#: js/block.js:3478 -#: js/block.js:3491 -#: js/ExtrasBlocks.js:616 -msgid "polar" +#: js/activity.js:2656 +msgid "Erase" msgstr "" -#: js/block.js:3479 -#: js/block.js:3492 -#: js/ExtrasBlocks.js:620 -msgid "Cartesian+polar" +#: js/activity.js:2683 +#: js/activity.js:2705 +msgid "Paste" msgstr "" -#: js/block.js:3480 -#: js/block.js:3499 -#: js/ExtrasBlocks.js:649 -msgid "none" +#: js/activity.js:2687 +msgid "Save block help" msgstr "" -#: js/block.js:3493 -#: js/ExtrasBlocks.js:625 -msgid "treble" +#: js/activity.js:2772 +msgid "Jumping to the bottom of the page." msgstr "" -#: js/block.js:3494 -#: js/ExtrasBlocks.js:629 -msgid "grand staff" +#: js/activity.js:2778 +msgid "Scrolling up." msgstr "" -#: js/block.js:3495 -#: js/ExtrasBlocks.js:633 -msgid "mezzo-soprano" +#: js/activity.js:2783 +msgid "Scrolling down." msgstr "" -#: js/block.js:3496 -#: js/ExtrasBlocks.js:637 -msgid "alto" +#: js/activity.js:2788 +msgid "Extracting block" msgstr "" -#: js/block.js:3497 -#: js/ExtrasBlocks.js:641 -msgid "tenor" +#: js/activity.js:2796 +msgid "Moving block up." msgstr "" -#: js/block.js:3498 -#: js/ExtrasBlocks.js:645 -#: js/musicutils.js:736 -#: js/synthutils.js:64 -#.TRANS: musical instrument -msgid "bass" +#: js/activity.js:2817 +msgid "Moving block down." msgstr "" -#: js/block.js:4075 -msgid "Not a number" +#: js/activity.js:2838 +msgid "Moving block left." msgstr "" -#: js/block.js:4082 -msgid "Octave value must be between 1 and 10." +#: js/activity.js:2855 +msgid "Moving block right." msgstr "" -#: js/block.js:4090 -msgid "Numbers can have at most 10 digits." +#: js/activity.js:2870 +msgid "Jump to home position." msgstr "" -#: js/notation.js:353 -msgid "Lilypond cannot process pickup of " +#: js/activity.js:2897 +msgid "Hide blocks" msgstr "" -#: js/turtledefs.js:40 -#.TRANS: put the URL to the guide here, e.g., https://github.com/sugarlabs/turtleblocksjs/tree/master/guide/README.md -msgid "guide url" +#: js/activity.js:4500 +msgid "Click the run button to run the project." msgstr "" -#: js/turtledefs.js:85 -#: js/turtledefs.js:437 -msgid "Turtle Blocks is a Logo-inspired turtle that draws colorful pictures with snap-together visual-programming blocks." +#: js/activity.js:5692 +msgid "Show/hide block" msgstr "" -#: js/turtledefs.js:118 -#: js/turtledefs.js:220 -msgid "search" +#: js/activity.js:5698 +msgid "Expand/collapse blocks" msgstr "" -#: js/turtledefs.js:120 -#: js/turtledefs.js:222 -#: js/WidgetBlocks.js:437 -#: js/MeterBlocks.js:1343 -#.TRANS: musical meter (time signature), e.g., 4:4 -msgid "meter" +#: js/activity.js:5976 +msgid "Could not parse JSON input." msgstr "" -#: js/turtledefs.js:122 -#: js/turtledefs.js:224 -msgid "intervals" +#: js/activity.js:6475 +#: js/activity.js:6580 +#: js/activity.js:6631 +msgid "Cannot load project from the file. Please check the file type." msgstr "" -#: js/turtledefs.js:124 -#: js/turtledefs.js:226 -msgid "ornament" +#: js/activity.js:6917 +msgid "Invalid parameters" msgstr "" -#: js/turtledefs.js:125 -#: js/turtledefs.js:227 -#: js/VolumeBlocks.js:362 -#: js/VolumeBlocks.js:502 -#: js/VolumeBlocks.js:545 -msgid "volume" +#: js/blocks.js:1212 +#: js/blocks.js:3444 +#: js/blocks.js:3834 +#: js/blocks.js:3865 +#: js/blocks.js:3914 +#: js/blocks.js:3949 +#: js/blocks.js:6586 +#: js/palette.js:509 +#: js/palette.js:638 +#: js/palette.js:1105 +#: js/blocks/BoxesBlocks.js:282 +#: js/blocks/BoxesBlocks.js:285 +#: js/blocks/BoxesBlocks.js:405 +#: js/blocks/BoxesBlocks.js:594 +msgid "box" msgstr "" -#: js/turtledefs.js:129 -#: js/turtledefs.js:231 -msgid "boxes" +#: js/blocks.js:1713 +msgid "Consider breaking this stack into parts." msgstr "" -#: js/turtledefs.js:130 -#: js/turtledefs.js:232 -msgid "widgets" +#: js/blocks.js:2472 +#: js/palette.js:653 +#: js/blocks/MediaBlocks.js:602 +msgid "open file" msgstr "" -#: js/turtledefs.js:131 -#: js/turtledefs.js:233 -#: js/phrasemaker.js:824 -msgid "graphics" +#: js/blocks.js:3247 +#: js/palette.js:574 +#: js/blocks/MediaBlocks.js:892 +#: js/blocks/MediaBlocks.js:963 +msgid "text" msgstr "" -#: js/turtledefs.js:134 -#: js/turtledefs.js:236 -msgid "boolean" +#: js/blocks.js:3443 +#: js/palette.js:641 +#: js/palette.js:642 +#: js/blocks/BoxesBlocks.js:514 +msgid "store in box" msgstr "" -#: js/turtledefs.js:137 -#: js/turtledefs.js:239 -#: js/HeapBlocks.js:59 -#: js/status.js:147 -msgid "heap" +#: js/blocks.js:3448 +#: js/blocks.js:3888 +#: js/blocks.js:3923 +#: js/blocks.js:3958 +#: js/blocks.js:5862 +#: js/blocks.js:5883 +#: js/blocks/BoxesBlocks.js:772 +msgid "box1" msgstr "" -#: js/turtledefs.js:138 -#: js/turtledefs.js:240 -#: js/ProgramBlocks.js:495 -#: js/DictBlocks.js:142 -msgid "dictionary" +#: js/blocks.js:3450 +#: js/blocks.js:3890 +#: js/blocks.js:3925 +#: js/blocks.js:3960 +#: js/blocks.js:5864 +#: js/blocks.js:5885 +#: js/blocks/BoxesBlocks.js:663 +msgid "box2" msgstr "" -#: js/turtledefs.js:139 -#: js/turtledefs.js:241 -msgid "ensemble" +#: js/blocks.js:4122 +#: js/palette.js:639 +#: js/palette.js:644 +#: js/palette.js:1041 +#: js/blocks/BoxesBlocks.js:591 +msgid "store in" msgstr "" -#: js/turtledefs.js:140 -#: js/turtledefs.js:242 -msgid "extras" +#: js/blocks.js:4122 +#: js/blocks/BoxesBlocks.js:595 +#: js/blocks/DictBlocks.js:215 +#: js/blocks/DictBlocks.js:289 +#: js/blocks/EnsembleBlocks.js:391 +#: js/blocks/EnsembleBlocks.js:402 +#: js/blocks/MediaBlocks.js:746 +#: js/blocks/PitchBlocks.js:656 +#: js/blocks/PitchBlocks.js:934 +#: js/blocks/PitchBlocks.js:1866 +#: js/blocks/ProgramBlocks.js:390 +#: js/blocks/ProgramBlocks.js:495 +#: js/blocks/ProgramBlocks.js:658 +#: js/blocks/ToneBlocks.js:1025 +msgid "name" msgstr "" -#: js/turtledefs.js:142 -#: js/turtledefs.js:244 -#.TRANS: program as in computer program -#.TRANS: program as in computer program -msgid "program" +#: js/blocks.js:4122 +#: js/blocks/BoxesBlocks.js:75 +#: js/blocks/BoxesBlocks.js:595 +#: js/blocks/DictBlocks.js:289 +#: js/blocks/DictBlocks.js:430 +#: js/blocks/HeapBlocks.js:544 +#: js/blocks/RhythmBlocks.js:1130 +msgid "value" msgstr "" -#: js/turtledefs.js:143 -#: js/turtledefs.js:245 -msgid "my blocks" +#: js/blocks.js:4465 +msgid "Forever loop detected inside a note value block. Unexpected things may happen." msgstr "" -#: js/turtledefs.js:185 -#: js/turtledefs.js:281 -msgid "artwork" +#: js/blocks.js:4988 +msgid "There is no block selected." msgstr "" -#: js/turtledefs.js:185 -#: js/turtledefs.js:281 -msgid "logic" +#: js/blocks.js:5091 +#: js/blocks/MediaBlocks.js:888 +msgid "show" msgstr "" -#: js/turtledefs.js:185 -#: js/turtledefs.js:281 -msgid "music" +#: js/blocks.js:5094 +#: js/blocks/MediaBlocks.js:803 +#.TRANS: Avatar is the image used to determine the appearance of the mouse. +msgid "avatar" msgstr "" -#: js/turtledefs.js:187 -#: js/turtledefs.js:463 -msgid "Music Blocks is a collection of tools for exploring fundamental musical concepts in a fun way." +#: js/blocks.js:5097 +#: js/blocks/ToneBlocks.js:1010 +#: js/widgets/sampler.js:975 +#.TRANS: The sound sample that the user uploads. +msgid "sample" msgstr "" -#: js/turtledefs.js:436 -msgid "Welcome to Turtle Blocks" +#: js/lilypond.js:606 +msgid "brown rat" msgstr "" -#: js/turtledefs.js:438 -#: js/turtledefs.js:465 -#: js/turtledefs.js:774 -#: js/turtledefs.js:805 -msgid "The current version is" +#: js/lilypond.js:607 +msgid "mole" msgstr "" -#: js/turtledefs.js:446 -#: js/turtledefs.js:483 -msgid "Click the run button to run the project in fast mode." +#: js/lilypond.js:608 +msgid "chipmunk" msgstr "" -#: js/turtledefs.js:452 -msgid "Stop the turtle." +#: js/lilypond.js:609 +msgid "red squirrel" msgstr "" -#: js/turtledefs.js:454 -#: js/turtledefs.js:491 -msgid "You can also type Alt-S to stop." +#: js/lilypond.js:610 +msgid "guinea pig" +msgstr "" + +#: js/lilypond.js:611 +msgid "capybara" msgstr "" -#: js/turtledefs.js:462 -#: js/help.js:333 -msgid "Welcome to Music Blocks" +#: js/lilypond.js:612 +msgid "coypu" msgstr "" -#: js/turtledefs.js:472 -#: js/help.js:334 -msgid "Meet Mr. Mouse!" +#: js/lilypond.js:613 +msgid "black rat" msgstr "" -#: js/turtledefs.js:473 -msgid "Mr Mouse is our Music Blocks conductor." +#: js/lilypond.js:614 +msgid "grey squirrel" msgstr "" -#: js/turtledefs.js:475 -msgid "Mr Mouse encourages you to explore Music Blocks." +#: js/lilypond.js:615 +msgid "flying squirrel" msgstr "" -#: js/turtledefs.js:477 -msgid "Let us start our tour!" +#: js/lilypond.js:616 +msgid "bat" msgstr "" -#: js/turtledefs.js:489 -msgid "Stop the music (and the mice)." +#: js/lilypond.js:749 +#: js/lilypond.js:913 +#: js/lilypond.js:951 +#: js/blocks/ActionBlocks.js:1256 +#: js/blocks/ExtrasBlocks.js:556 +msgid "start drum" msgstr "" -#: js/turtledefs.js:499 -msgid "Record your project as video." +#: js/logo.js:61 +msgid "Not a valid pitch name" msgstr "" -#: js/turtledefs.js:505 -msgid "Toggle Fullscreen mode." +#: js/logo.js:507 +#: js/blocks/ProgramBlocks.js:258 +#: js/blocks/ProgramBlocks.js:427 +msgid "You must select a file." msgstr "" -#: js/turtledefs.js:511 -msgid "Initialize a new project." +#: js/logo.js:1696 +msgid "Playback is ready." msgstr "" -#: js/turtledefs.js:517 -msgid "You can also load projects from the file system." +#: js/macros.js:711 +#: js/utils/musicutils.js:1162 +#: js/utils/synthutils.js:202 +#.TRANS: animal sound effect +msgid "duck" msgstr "" -#: js/turtledefs.js:522 -#: js/StringHelper.js:46 -msgid "Delete" +#: js/notation.js:353 +msgid "Lilypond cannot process pickup of " msgstr "" -#: js/turtledefs.js:523 -msgid "To delete a block, just right-click on it, then you will be able to see the delete option" +#: js/palette.js:571 +msgid "grid" msgstr "" -#: js/turtledefs.js:528 -#: js/activity.js:2270 -#: js/LocalCard.js:31 -msgid "Copy" +#: js/palette.js:580 +msgid "effect" msgstr "" -#: js/turtledefs.js:529 -msgid "To copy a block, just right-click on it, then you will be able to see the copy option" +#: js/palette.js:586 +msgid "sargam" msgstr "" -#: js/turtledefs.js:535 -msgid "To extract a block, just right-click on it, then you will be able to see the extract option" +#: js/palette.js:601 +#: js/blocks/PitchBlocks.js:1209 +msgid "custom pitch" msgstr "" -#: js/turtledefs.js:542 -#: js/turtledefs.js:552 -#: js/turtledefs.js:573 -msgid "Save your project to a file." +#: js/palette.js:609 +msgid "accidental" msgstr "" -#: js/turtledefs.js:549 -#: js/turtledefs.js:570 -msgid "save" +#: js/palette.js:633 +#: js/blocks/PitchBlocks.js:405 +msgid "pitch converter" msgstr "" -#: js/turtledefs.js:556 -#: js/turtledefs.js:577 -msgid "Save graphics from your project to as SVG." +#: js/piemenus.js:200 +#: js/utils/musicutils.js:1187 +#: js/utils/musicutils.js:1207 +#: js/widgets/musickeyboard.js:2341 +#: js/widgets/phrasemaker.js:1908 +#: js/widgets/sampler.js:810 +#.TRANS: double sharp is a music term related to pitch +msgid "double sharp" msgstr "" -#: js/turtledefs.js:560 -#: js/turtledefs.js:581 -msgid "Save graphics from your project as PNG." +#: js/piemenus.js:201 +#: js/utils/musicutils.js:1185 +#: js/utils/musicutils.js:1208 +#: js/blocks/PitchBlocks.js:1539 +#: js/turtleactions/PitchActions.js:323 +#: js/widgets/musickeyboard.js:2342 +#: js/widgets/phrasemaker.js:1909 +#: js/widgets/sampler.js:811 +#.TRANS: sharp is a music term related to pitch +#.TRANS: sharp is a half-step up in pitch +msgid "sharp" msgstr "" -#: js/turtledefs.js:564 -#: js/turtledefs.js:597 -msgid "Save block artwork as an SVG file." +#: js/piemenus.js:202 +#: js/utils/musicutils.js:1183 +#: js/utils/musicutils.js:1209 +#: js/widgets/musickeyboard.js:2343 +#: js/widgets/phrasemaker.js:1910 +#: js/widgets/sampler.js:812 +#.TRANS: natural is a music term related to pitch +msgid "natural" msgstr "" -#: js/turtledefs.js:585 -msgid "Save audio from your project as WAV." +#: js/piemenus.js:203 +#: js/utils/musicutils.js:1181 +#: js/utils/musicutils.js:1210 +#: js/blocks/PitchBlocks.js:1498 +#: js/turtleactions/PitchActions.js:326 +#: js/widgets/musickeyboard.js:2344 +#: js/widgets/phrasemaker.js:1911 +#: js/widgets/sampler.js:813 +#.TRANS: flat is a music term related to pitch +#.TRANS: flat is a half-step down in pitch +msgid "flat" msgstr "" -#: js/turtledefs.js:589 -msgid "Save your project to as an ABC file." +#: js/piemenus.js:204 +#: js/utils/musicutils.js:1179 +#: js/utils/musicutils.js:1211 +#: js/widgets/musickeyboard.js:2345 +#: js/widgets/phrasemaker.js:1912 +#: js/widgets/sampler.js:814 +#.TRANS: double flat is a music term related to pitch +msgid "double flat" msgstr "" -#: js/turtledefs.js:593 -msgid "Save your project to as a Lilypond file." +#: js/piemenus.js:2864 +#: js/utils/musicutils.js:1006 +#: js/blocks/PitchBlocks.js:1385 +#.TRANS: unison is a music term related to intervals +#.TRANS: unison means the note is the same as the current note +msgid "unison" msgstr "" -#: js/turtledefs.js:604 -msgid "Load samples from server" +#: js/piemenus.js:3018 +#: js/piemenus.js:3091 +#: js/utils/musicutils.js:1014 +#: js/utils/musicutils.js:1189 +#: js/utils/musicutils.js:1326 +#.TRANS: major is a music term related to intervals and mode +msgid "major" msgstr "" -#: js/turtledefs.js:605 -msgid "This button opens a viewer for loading example projects." +#: js/piemenus.js:3018 +#: js/piemenus.js:3091 +#: js/utils/musicutils.js:1032 +#.TRANS: modal scale for music +msgid "ionian" msgstr "" -#: js/turtledefs.js:611 -msgid "Palette buttons" +#: js/piemenus.js:3020 +#: js/piemenus.js:3095 +#: js/utils/musicutils.js:1012 +#: js/utils/musicutils.js:1190 +#: js/utils/musicutils.js:1323 +#.TRANS: minor is a music term related to intervals and mode +msgid "minor" msgstr "" -#: js/turtledefs.js:612 -msgid "This toolbar contains the palette buttons including Rhythm Pitch Tone Action and more." +#: js/piemenus.js:3020 +#: js/piemenus.js:3095 +#: js/utils/musicutils.js:1042 +#.TRANS: modal scale for music +msgid "aeolian" msgstr "" -#: js/turtledefs.js:614 -msgid "Click to show the palettes of blocks and drag blocks from the palettes onto the canvas to use them." +#: js/piemenus.js:3410 +msgid "Duplicate" msgstr "" -#: js/turtledefs.js:620 -msgid "Cartesian/Polar" +#: js/piemenus.js:3412 +msgid "Move to trash" msgstr "" -#: js/turtledefs.js:621 -msgid "Show or hide a coordinate grid." +#: js/piemenus.js:3413 +#: js/widgets/timbre.js:968 +#: planet/js/StringHelper.js:69 +msgid "Close" msgstr "" -#: js/turtledefs.js:627 -msgid "Clear the screen and return the mice to their initial positions." +#: js/piemenus.js:3419 +msgid "Save stack" msgstr "" -#: js/turtledefs.js:633 -msgid "Collapse the graphics window." +#: js/piemenus.js:3449 +msgid "In order to copy a sample, you must reload the widget, import the sample again, and export it." msgstr "" -#: js/turtledefs.js:638 -#: js/activity.js:4256 -#: js/activity.js:4256 -msgid "Home" +#: js/piemenus.js:3812 +msgid "You have chosen key " msgstr "" -#: js/turtledefs.js:639 -msgid "Return all blocks to the center of the screen." +#: js/piemenus.js:3816 +msgid " for your pitch preview." msgstr "" -#: js/turtledefs.js:644 -msgid "Show/hide blocks" +#: js/turtle-singer.js:1363 +#.TRANS: partials are weighted components in a harmonic series +msgid "You must have at least one Partial block inside of a Weighted-partial block" msgstr "" -#: js/turtledefs.js:645 -msgid "Hide or show the blocks and the palettes." +#: js/turtle-singer.js:2077 +msgid "synth cannot play chords." msgstr "" -#: js/turtledefs.js:650 -msgid "Expand/collapse collapsable blocks" +#: js/utils/musicutils.js:505 +#: js/utils/musicutils.js:645 +#: js/widgets/pitchdrummatrix.js:228 +#: js/widgets/musickeyboard.js:2885 +msgid "rest" msgstr "" -#: js/turtledefs.js:651 -msgid "Expand or collapse start and action stacks." +#: js/utils/musicutils.js:689 +msgid "Perfect unison" msgstr "" -#: js/turtledefs.js:658 -#: js/activity.js:4265 -msgid "Decrease block size" +#: js/utils/musicutils.js:689 +msgid "Diminished second" msgstr "" -#: js/turtledefs.js:659 -msgid "Decrease the size of the blocks." +#: js/utils/musicutils.js:690 +msgid "Minor second" msgstr "" -#: js/turtledefs.js:664 -#: js/activity.js:4267 -msgid "Increase block size" +#: js/utils/musicutils.js:690 +msgid "Augmented unison" msgstr "" -#: js/turtledefs.js:665 -msgid "Increase the size of the blocks." +#: js/utils/musicutils.js:691 +msgid "Major second" msgstr "" -#: js/turtledefs.js:670 -msgid "Expand/collapse option toolbar" +#: js/utils/musicutils.js:691 +msgid "Diminished third" msgstr "" -#: js/turtledefs.js:671 -msgid "Click this button to expand or collapse the auxillary toolbar." +#: js/utils/musicutils.js:692 +msgid "Minor third" msgstr "" -#: js/turtledefs.js:676 -msgid "Run slow" +#: js/utils/musicutils.js:692 +msgid "Augmented second" msgstr "" -#: js/turtledefs.js:677 -msgid "Click to run the project in slow mode." +#: js/utils/musicutils.js:693 +msgid "Major third" msgstr "" -#: js/turtledefs.js:683 -msgid "Click to run the project step by step." +#: js/utils/musicutils.js:693 +msgid "Diminished fourth" msgstr "" -#: js/turtledefs.js:690 -msgid "Display statistics about your Music project." +#: js/utils/musicutils.js:694 +msgid "Perfect fourth" msgstr "" -#: js/turtledefs.js:697 -msgid "Delete a selected plugin." +#: js/utils/musicutils.js:694 +msgid "Augmented third" msgstr "" -#: js/turtledefs.js:704 -msgid "Enable scrolling" +#: js/utils/musicutils.js:695 +msgid "Diminished fifth" msgstr "" -#: js/turtledefs.js:705 -msgid "You can scroll the blocks on the canvas." +#: js/utils/musicutils.js:695 +msgid "Augmented fourth" msgstr "" -#: js/turtledefs.js:714 -msgid "Wrap Turtle" +#: js/utils/musicutils.js:696 +msgid "Perfect fifth" msgstr "" -#: js/turtledefs.js:715 -msgid "Turn Turtle wrapping On or Off." +#: js/utils/musicutils.js:696 +msgid "Diminished sixth" msgstr "" -#: js/turtledefs.js:725 -msgid "Restore blocks from the trash." +#: js/utils/musicutils.js:697 +msgid "Minor sixth" msgstr "" -#: js/turtledefs.js:732 -msgid "Switch mode" +#: js/utils/musicutils.js:697 +msgid "Augmented fifth" msgstr "" -#: js/turtledefs.js:733 -msgid "Switch between beginner and advance modes." +#: js/utils/musicutils.js:698 +msgid "Major sixth" msgstr "" -#: js/turtledefs.js:739 -msgid "Select your language preference." +#: js/utils/musicutils.js:698 +msgid "Diminished seventh" msgstr "" -#: js/turtledefs.js:745 -msgid "Keyboard shortcuts" +#: js/utils/musicutils.js:699 +msgid "Minor seventh" msgstr "" -#: js/turtledefs.js:746 -msgid "You can type d to create a do block and r to create a re block etc." +#: js/utils/musicutils.js:699 +msgid "Augmented sixth" msgstr "" -#: js/turtledefs.js:753 -msgid "Show these messages." +#: js/utils/musicutils.js:700 +msgid "Major seventh" msgstr "" -#: js/turtledefs.js:759 -#: js/turtledefs.js:790 -#: js/help.js:335 -msgid "Guide" +#: js/utils/musicutils.js:700 +msgid "Diminished octave" msgstr "" -#: js/turtledefs.js:760 -msgid "A detailed guide to Turtle Blocks is available." +#: js/utils/musicutils.js:701 +msgid "Perfect octave" msgstr "" -#: js/turtledefs.js:764 -msgid "Turtle Blocks Guide" +#: js/utils/musicutils.js:701 +msgid "Augmented seventh" msgstr "" -#: js/turtledefs.js:767 -#: js/turtledefs.js:798 -#: js/help.js:336 -msgid "About" +#: js/utils/musicutils.js:702 +msgid "Minor ninth" msgstr "" -#: js/turtledefs.js:768 -msgid "Turtle Blocks is an open source collection of tools for exploring musical concepts." +#: js/utils/musicutils.js:702 +msgid "Augmented octave" msgstr "" -#: js/turtledefs.js:770 -msgid "A full list of contributors can be found in the Turtle Blocks GitHub repository." +#: js/utils/musicutils.js:703 +msgid "Major ninth" msgstr "" -#: js/turtledefs.js:772 -msgid "Turtle Blocks is licensed under the AGPL." +#: js/utils/musicutils.js:703 +msgid "Diminished tenth" msgstr "" -#: js/turtledefs.js:780 -msgid "Turtle Blocks GitHub repository" +#: js/utils/musicutils.js:704 +msgid "Minor tenth" msgstr "" -#: js/turtledefs.js:783 -#: js/turtledefs.js:814 -#: js/help.js:337 -#: js/help.js:359 -msgid "Congratulations." +#: js/utils/musicutils.js:704 +msgid "Augmented ninth" msgstr "" -#: js/turtledefs.js:784 -msgid "You have finished the tour. Please enjoy Turtle Blocks!" +#: js/utils/musicutils.js:705 +msgid "Major tenth" msgstr "" -#: js/turtledefs.js:791 -msgid "A detailed guide to Music Blocks is available." +#: js/utils/musicutils.js:705 +msgid "Diminished eleventh" msgstr "" -#: js/turtledefs.js:795 -#: js/SaveInterface.js:76 -msgid "Music Blocks Guide" +#: js/utils/musicutils.js:706 +msgid "Perfect eleventh" msgstr "" -#: js/turtledefs.js:799 -msgid "Music Blocks is an open source collection of tools for exploring musical concepts." +#: js/utils/musicutils.js:706 +msgid "Augmented tenth" msgstr "" -#: js/turtledefs.js:801 -msgid "A full list of contributors can be found in the Music Blocks GitHub repository." +#: js/utils/musicutils.js:707 +msgid "Diminished twelfth" msgstr "" -#: js/turtledefs.js:803 -msgid "Music Blocks is licensed under the AGPL." +#: js/utils/musicutils.js:707 +msgid "Augmented eleventh" msgstr "" -#: js/turtledefs.js:811 -msgid "Music Blocks GitHub repository" +#: js/utils/musicutils.js:708 +msgid "Perfect twelfth" msgstr "" -#: js/turtledefs.js:815 -msgid "You have finished the tour. Please enjoy Music Blocks!" +#: js/utils/musicutils.js:708 +msgid "Diminished thirteenth" msgstr "" -#: js/activity.js:369 -msgid "Search for blocks" +#: js/utils/musicutils.js:709 +msgid "Minor thirteenth" msgstr "" -#: js/activity.js:1145 -msgid "Refresh your browser to change to advanced mode." +#: js/utils/musicutils.js:709 +msgid "Augmented fifth, plus an octave" msgstr "" -#: js/activity.js:1150 -msgid "Refresh your browser to change to beginner mode." +#: js/utils/musicutils.js:710 +msgid "Major thirteenth" msgstr "" -#: js/activity.js:1184 -msgid "Catching mice" +#: js/utils/musicutils.js:710 +msgid "Diminished seventh, plus an octave" msgstr "" -#: js/activity.js:1185 -msgid "Cleaning the instruments" +#: js/utils/musicutils.js:838 +#.TRANS: ordinal number. Please keep exactly one space between each number. +msgid "1st 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th" msgstr "" -#: js/activity.js:1186 -msgid "Testing key pieces" +#: js/utils/musicutils.js:1008 +#: js/utils/musicutils.js:1191 +#: js/utils/musicutils.js:1325 +#.TRANS: augmented is a music term related to intervals +msgid "augmented" msgstr "" -#: js/activity.js:1187 -msgid "Sight-reading" +#: js/utils/musicutils.js:1010 +#: js/utils/musicutils.js:1192 +#: js/utils/musicutils.js:1324 +#.TRANS: diminished is a music term related to intervals and mode +msgid "diminished" msgstr "" -#: js/activity.js:1188 -msgid "Combining math and music" +#: js/utils/musicutils.js:1016 +#: js/utils/musicutils.js:1322 +#: js/blocks/IntervalsBlocks.js:649 +#: js/turtleactions/IntervalsActions.js:120 +#: js/turtleactions/IntervalsActions.js:124 +#.TRANS: perfect is a music term related to intervals +msgid "perfect" +msgstr "" + +#: js/utils/musicutils.js:1018 +#.TRANS: twelve semi-tone scale for music +msgid "chromatic" msgstr "" -#: js/activity.js:1189 -msgid "Generating more blocks" +#: js/utils/musicutils.js:1019 +msgid "algerian" msgstr "" -#: js/activity.js:1190 -msgid "Do Re Mi Fa Sol La Ti Do" +#: js/utils/musicutils.js:1020 +msgid "spanish" msgstr "" -#: js/activity.js:1191 -msgid "Tuning string instruments" +#: js/utils/musicutils.js:1022 +#.TRANS: modal scale in music +msgid "octatonic" msgstr "" -#: js/activity.js:1192 -msgid "Pressing random keys" +#: js/utils/musicutils.js:1024 +#.TRANS: harmonic major scale in music +msgid "harmonic major" msgstr "" -#: js/activity.js:1351 -msgid "plugins will be removed upon restart." +#: js/utils/musicutils.js:1026 +#.TRANS: natural minor scales in music +msgid "natural minor" msgstr "" -#: js/activity.js:1360 -msgid "show Cartesian" +#: js/utils/musicutils.js:1028 +#.TRANS: harmonic minor scale in music +msgid "harmonic minor" msgstr "" -#: js/activity.js:1842 -msgid "output tools" +#: js/utils/musicutils.js:1030 +#.TRANS: melodic minor scale in music +msgid "melodic minor" msgstr "" -#: js/activity.js:1845 -msgid "custom note" +#: js/utils/musicutils.js:1034 +#.TRANS: modal scale for music +msgid "dorian" msgstr "" -#: js/activity.js:1848 -msgid "accidental name" +#: js/utils/musicutils.js:1036 +#.TRANS: modal scale for music +msgid "phrygian" msgstr "" -#: js/activity.js:1851 -#: js/PitchBlocks.js:855 -msgid "east indian solfege" +#: js/utils/musicutils.js:1038 +#.TRANS: modal scale for music +msgid "lydian" msgstr "" -#: js/activity.js:1854 -#: js/PitchBlocks.js:869 -msgid "note name" +#: js/utils/musicutils.js:1040 +#.TRANS: modal scale for music +msgid "mixolydian" msgstr "" -#: js/activity.js:1857 -#: js/IntervalsBlocks.js:94 -msgid "temperament name" +#: js/utils/musicutils.js:1044 +#.TRANS: modal scale for music +msgid "locrian" msgstr "" -#: js/activity.js:1863 -msgid "chord name" +#: js/utils/musicutils.js:1046 +#.TRANS: minor jazz scale for music +msgid "jazz minor" msgstr "" -#: js/activity.js:1869 -msgid "filter type" +#: js/utils/musicutils.js:1048 +#.TRANS: bebop scale for music +msgid "bebop" msgstr "" -#: js/activity.js:1872 -msgid "oscillator type" +#: js/utils/musicutils.js:1049 +msgid "arabic" msgstr "" -#: js/activity.js:1878 -#: js/DrumBlocks.js:32 -msgid "noise name" +#: js/utils/musicutils.js:1050 +msgid "byzantine" msgstr "" -#: js/activity.js:1881 -#: js/DrumBlocks.js:75 -msgid "drum name" +#: js/utils/musicutils.js:1052 +#.TRANS: musical scale for music by Verdi +msgid "enigmatic" msgstr "" -#: js/activity.js:1884 -#: js/DrumBlocks.js:119 -msgid "effects name" +#: js/utils/musicutils.js:1053 +msgid "ethiopian" msgstr "" -#: js/activity.js:1887 -msgid "wrap mode" +#: js/utils/musicutils.js:1055 +#.TRANS: Ethiopic scale for music +msgid "geez" msgstr "" -#: js/activity.js:1890 -msgid "load file" +#: js/utils/musicutils.js:1056 +msgid "hindu" msgstr "" -#: js/activity.js:2056 -msgid "This block is deprecated." +#: js/utils/musicutils.js:1057 +msgid "hungarian" msgstr "" -#: js/activity.js:2058 -msgid "Block cannot be found." +#: js/utils/musicutils.js:1059 +#.TRANS: minor Romanian scale for music +msgid "romanian minor" msgstr "" -#: js/activity.js:2266 -msgid "Saving block artwork" +#: js/utils/musicutils.js:1060 +msgid "spanish gypsy" msgstr "" -#: js/activity.js:2277 -msgid "Erase" +#: js/utils/musicutils.js:1062 +#.TRANS: musical scale for Mid-Eastern music +msgid "maqam" msgstr "" -#: js/activity.js:2301 -#: js/activity.js:2323 -msgid "Paste" +#: js/utils/musicutils.js:1064 +#.TRANS: minor blues scale for music +msgid "minor blues" msgstr "" -#: js/activity.js:2305 -msgid "Save block help" +#: js/utils/musicutils.js:1066 +#.TRANS: major blues scale for music +msgid "major blues" msgstr "" -#: js/activity.js:2390 -msgid "Jumping to the bottom of the page." +#: js/utils/musicutils.js:1067 +msgid "whole tone" msgstr "" -#: js/activity.js:2396 -msgid "Scrolling up." +#: js/utils/musicutils.js:1069 +#.TRANS: pentatonic is a general term that means "five note scale". This scale is typically known as "minor pentatonic" +msgid "minor pentatonic" msgstr "" -#: js/activity.js:2401 -msgid "Scrolling down." +#: js/utils/musicutils.js:1071 +#.TRANS: pentatonic is a general term that means "five note scale". This scale is typically known as "major pentatonic" +msgid "major pentatonic" msgstr "" -#: js/activity.js:2406 -msgid "Extracting block" +#: js/utils/musicutils.js:1072 +msgid "chinese" msgstr "" -#: js/activity.js:2414 -msgid "Moving block up." +#: js/utils/musicutils.js:1073 +msgid "egyptian" msgstr "" -#: js/activity.js:2435 -msgid "Moving block down." +#: js/utils/musicutils.js:1075 +#.TRANS: https://en.wikipedia.org/wiki/Hirajoshi_scale NOTE: There are three different versions of this scale +msgid "hirajoshi" msgstr "" -#: js/activity.js:2456 -msgid "Moving block left." +#: js/utils/musicutils.js:1076 +msgid "Japan" msgstr "" -#: js/activity.js:2473 -msgid "Moving block right." +#: js/utils/musicutils.js:1078 +#.TRANS: https://en.wikipedia.org/wiki/In_scale and https://en.wikipedia.org/wiki/Sakura_Sakura +msgid "in" msgstr "" -#: js/activity.js:2488 -msgid "Jump to home position." +#: js/utils/musicutils.js:1080 +#.TRANS: https://en.wikipedia.org/wiki/Miny%C5%8D_scale +msgid "minyo" msgstr "" -#: js/activity.js:2515 -msgid "Hide blocks" +#: js/utils/musicutils.js:1082 +#.TRANS: Italian mathematician +msgid "fibonacci" msgstr "" -#: js/activity.js:3389 -msgid "Click the run button to run the project." +#: js/utils/musicutils.js:1083 +#: js/utils/musicutils.js:1134 +#: js/utils/musicutils.js:1177 +#: js/utils/musicutils.js:1199 +#: js/utils/synthutils.js:134 +#: js/blocks/IntervalsBlocks.js:1124 +#: js/blocks/ToneBlocks.js:946 +#: js/blocks/VolumeBlocks.js:411 +#: js/blocks/WidgetBlocks.js:399 +#: js/blocks/WidgetBlocks.js:404 +#: js/turtleactions/VolumeActions.js:218 +#: js/widgets/modewidget.js:919 +#.TRANS: customize voice +msgid "custom" msgstr "" -#: js/activity.js:3456 -#: js/SaveInterface.js:131 -#: js/SaveInterface.js:204 -#: js/SaveInterface.js:262 -#: js/SaveInterface.js:389 -#: js/SaveInterface.js:417 -#: js/ProjectStorage.js:27 -#: js/GlobalPlanet.js:467 -#: js/GlobalPlanet.js:469 -#: js/GlobalPlanet.js:495 -#.TRANS: default project title when saving as Lilypond -msgid "My Project" +#: js/utils/musicutils.js:1085 +#: js/utils/musicutils.js:1531 +#: js/blocks/WidgetBlocks.js:176 +#.TRANS: highpass filter +msgid "highpass" msgstr "" -#: js/activity.js:4261 -msgid "Show/hide block" +#: js/utils/musicutils.js:1087 +#: js/utils/musicutils.js:1532 +#.TRANS: lowpass filter +msgid "lowpass" msgstr "" -#: js/activity.js:4263 -msgid "Expand/collapse blocks" +#: js/utils/musicutils.js:1089 +#: js/utils/musicutils.js:1533 +#.TRANS: bandpass filter +msgid "bandpass" msgstr "" -#: js/activity.js:4381 -msgid "Could not parse JSON input." +#: js/utils/musicutils.js:1091 +#: js/utils/musicutils.js:1534 +#.TRANS: high-shelf filter +msgid "highshelf" msgstr "" -#: js/activity.js:4684 -#: js/activity.js:4771 -#: js/activity.js:4821 -msgid "Cannot load project from the file. Please check the file type." +#: js/utils/musicutils.js:1093 +#: js/utils/musicutils.js:1535 +#.TRANS: low-shelf filter +msgid "lowshelf" msgstr "" -#: js/activity.js:5051 -msgid "Invalid parameters" +#: js/utils/musicutils.js:1095 +#: js/utils/musicutils.js:1536 +#.TRANS: notch-shelf filter +msgid "notch" msgstr "" -#: js/turtle-singer.js:1334 -#.TRANS: partials are weighted components in a harmonic series -msgid "You must have at least one Partial block inside of a Weighted-partial block" +#: js/utils/musicutils.js:1097 +#: js/utils/musicutils.js:1537 +#.TRANS: all-pass filter +msgid "allpass" msgstr "" -#: js/turtle-singer.js:2048 -msgid "synth cannot play chords." +#: js/utils/musicutils.js:1099 +#: js/utils/musicutils.js:1538 +#.TRANS: peaking filter +msgid "peaking" msgstr "" -#: js/lilypond.js:614 -msgid "brown rat" +#: js/utils/musicutils.js:1100 +#: js/utils/musicutils.js:1546 +#: js/utils/synthutils.js:126 +#: js/blocks/PitchBlocks.js:85 +#.TRANS: sine wave +msgid "sine" msgstr "" -#: js/lilypond.js:615 -msgid "mole" +#: js/utils/musicutils.js:1101 +#: js/utils/musicutils.js:1547 +#: js/utils/synthutils.js:128 +#: js/blocks/PitchBlocks.js:39 +#.TRANS: square wave +msgid "square" msgstr "" -#: js/lilypond.js:616 -msgid "chipmunk" +#: js/utils/musicutils.js:1102 +#: js/utils/musicutils.js:1548 +#: js/utils/synthutils.js:132 +#: js/blocks/PitchBlocks.js:62 +#: js/blocks/ToneBlocks.js:39 +#.TRANS: triangle wave +msgid "triangle" msgstr "" -#: js/lilypond.js:617 -msgid "red squirrel" +#: js/utils/musicutils.js:1103 +#: js/utils/musicutils.js:1549 +#: js/utils/synthutils.js:130 +#: js/blocks/PitchBlocks.js:108 +#.TRANS: sawtooth wave +msgid "sawtooth" msgstr "" -#: js/lilypond.js:618 -msgid "guinea pig" +#: js/utils/musicutils.js:1105 +#: js/utils/musicutils.js:1312 +#: js/blocks/PitchBlocks.js:931 +#: js/blocks/PitchBlocks.js:937 +#: js/turtleactions/PitchActions.js:469 +#.TRANS: even numbers +#.TRANS: invert based on even or odd number or musical scale +msgid "even" msgstr "" -#: js/lilypond.js:619 -msgid "capybara" +#: js/utils/musicutils.js:1107 +#: js/utils/musicutils.js:1313 +#: js/blocks/PitchBlocks.js:937 +#: js/turtleactions/PitchActions.js:471 +#.TRANS: odd numbers +msgid "odd" msgstr "" -#: js/lilypond.js:620 -msgid "coypu" +#: js/utils/musicutils.js:1108 +#: js/utils/musicutils.js:1314 +#: js/blocks/PitchBlocks.js:937 +#: js/turtleactions/PitchActions.js:473 +msgid "scalar" msgstr "" -#: js/lilypond.js:621 -msgid "black rat" +#: js/utils/musicutils.js:1109 +#: js/utils/synthutils.js:72 +#: js/blocks/VolumeBlocks.js:47 +#.TRANS: musical instrument +msgid "piano" msgstr "" -#: js/lilypond.js:622 -msgid "grey squirrel" +#: js/utils/musicutils.js:1110 +#: js/utils/synthutils.js:74 +#.TRANS: musical instrument +msgid "violin" msgstr "" -#: js/lilypond.js:623 -msgid "flying squirrel" +#: js/utils/musicutils.js:1111 +#: js/utils/synthutils.js:76 +#.TRANS: viola musical instrument +msgid "viola" msgstr "" -#: js/lilypond.js:624 -msgid "bat" +#: js/utils/musicutils.js:1112 +#: js/utils/synthutils.js:114 +#.TRANS: xylophone musical instrument +msgid "xylophone" msgstr "" -#: js/lilypond.js:757 -#: js/lilypond.js:921 -#: js/lilypond.js:959 -#: js/ActionBlocks.js:1256 -#: js/ExtrasBlocks.js:553 -msgid "start drum" +#: js/utils/musicutils.js:1113 +#: js/utils/synthutils.js:136 +#.TRANS: vibraphone musical instrument +msgid "vibraphone" msgstr "" -#: js/SaveInterface.js:59 -#: js/SaveInterface.js:61 -#: js/SaveInterface.js:93 -msgid "Music Blocks Project" +#: js/utils/musicutils.js:1114 +#: js/utils/synthutils.js:78 +#.TRANS: musical instrument +msgid "cello" msgstr "" -#: js/SaveInterface.js:63 -msgid "This project was created in Music Blocks" +#: js/utils/musicutils.js:1116 +#: js/utils/synthutils.js:82 +#.TRANS: viola musical instrument +msgid "double bass" msgstr "" -#: js/SaveInterface.js:67 -msgid "Music Blocks is a Free/Libre Software application." +#: js/utils/musicutils.js:1117 +#: js/utils/synthutils.js:84 +#: js/widgets/rhythmruler.js:2511 +#.TRANS: musical instrument +msgid "guitar" msgstr "" -#: js/SaveInterface.js:69 -msgid "The source code can be accessed at" +#: js/utils/musicutils.js:1118 +#: js/utils/synthutils.js:86 +#.TRANS: musical instrument +msgid "acoustic guitar" msgstr "" -#: js/SaveInterface.js:72 -msgid "For more information, please consult the" +#: js/utils/musicutils.js:1119 +#: js/utils/synthutils.js:88 +#.TRANS: musical instrument +msgid "flute" msgstr "" -#: js/SaveInterface.js:83 -msgid "Alternatively, open the file in Music Blocks using the Load project button." +#: js/utils/musicutils.js:1120 +#: js/utils/synthutils.js:90 +#.TRANS: musical instrument +msgid "clarinet" msgstr "" -#: js/SaveInterface.js:85 -msgid "Project Code" +#: js/utils/musicutils.js:1121 +#: js/utils/synthutils.js:92 +#.TRANS: musical instrument +msgid "saxophone" msgstr "" -#: js/SaveInterface.js:87 -msgid "This code stores data about the blocks in a project." +#: js/utils/musicutils.js:1122 +#: js/utils/synthutils.js:94 +#.TRANS: musical instrument +msgid "tuba" msgstr "" -#: js/SaveInterface.js:89 -msgid "Show" +#: js/utils/musicutils.js:1123 +#: js/utils/synthutils.js:96 +#.TRANS: musical instrument +msgid "trumpet" msgstr "" -#: js/SaveInterface.js:91 -msgid "Hide" +#: js/utils/musicutils.js:1124 +#: js/utils/synthutils.js:98 +#.TRANS: musical instrument +msgid "oboe" msgstr "" -#: js/SaveInterface.js:197 -#: js/SaveInterface.js:58 -msgid "No description provided" +#: js/utils/musicutils.js:1125 +#: js/utils/synthutils.js:100 +#.TRANS: musical instrument +msgid "trombone" msgstr "" -#: js/SaveInterface.js:332 -msgid "Your recording is in progress." +#: js/utils/musicutils.js:1126 +#: js/utils/synthutils.js:116 +#.TRANS: polytone synthesizer +msgid "electronic synth" msgstr "" -#: js/SaveInterface.js:401 -#.TRANS: File name prompt for save as Lilypond -msgid "File name" +#: js/utils/musicutils.js:1127 +#: js/utils/synthutils.js:118 +#.TRANS: simple monotone synthesizer +msgid "simple 1" msgstr "" -#: js/SaveInterface.js:403 -#: js/StringHelper.js:39 -#.TRANS: Project title prompt for save as Lilypond -msgid "Project title" +#: js/utils/musicutils.js:1128 +msgid "simple 2" msgstr "" -#: js/SaveInterface.js:405 -#.TRANS: Project title prompt for save as Lilypond -msgid "Project author" +#: js/utils/musicutils.js:1129 +msgid "simple 3" msgstr "" -#: js/SaveInterface.js:407 -#.TRANS: MIDI prompt for save as Lilypond -msgid "Include MIDI output?" +#: js/utils/musicutils.js:1130 +msgid "simple 4" msgstr "" -#: js/SaveInterface.js:409 -#.TRANS: Guitar prompt for save as Lilypond -msgid "Include guitar tablature output?" +#: js/utils/musicutils.js:1131 +#: js/utils/synthutils.js:58 +#: js/blocks/DrumBlocks.js:191 +#.TRANS: white noise synthesizer +msgid "white noise" msgstr "" -#: js/SaveInterface.js:411 -#.TRANS: Lilypond is a scripting language for generating sheet music -msgid "Save as Lilypond" +#: js/utils/musicutils.js:1132 +#: js/utils/synthutils.js:60 +#.TRANS: brown noise synthesizer +msgid "brown noise" msgstr "" -#: js/SaveInterface.js:426 -#: js/EnsembleBlocks.js:75 -#: js/EnsembleBlocks.js:154 -#: js/EnsembleBlocks.js:216 -#: js/EnsembleBlocks.js:302 -#: js/EnsembleBlocks.js:348 -#: js/EnsembleBlocks.js:389 -#: js/EnsembleBlocks.js:441 -#: js/EnsembleBlocks.js:490 -#: js/EnsembleBlocks.js:536 -#: js/EnsembleBlocks.js:583 -#: js/EnsembleBlocks.js:637 -#: js/EnsembleBlocks.js:753 -#: js/EnsembleBlocks.js:840 -#: js/EnsembleBlocks.js:899 -#: js/EnsembleBlocks.js:942 -#: js/EnsembleBlocks.js:1212 -#: js/EnsembleBlocks.js:1280 -#.TRANS: default project author when saving as Lilypond -msgid "Mr. Mouse" +#: js/utils/musicutils.js:1133 +#: js/utils/synthutils.js:62 +#.TRANS: pink noise synthesizer +msgid "pink noise" msgstr "" -#: js/SaveInterface.js:573 -msgid "The Lilypond code is copied to clipboard. You can paste it here: " +#: js/utils/musicutils.js:1135 +#: js/utils/synthutils.js:148 +#: js/widgets/rhythmruler.js:2057 +#: js/widgets/rhythmruler.js:2319 +#.TRANS: musical instrument +msgid "snare drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:50 -#: js/RhythmBlockPaletteBlocks.js:232 -#.TRANS: rhythm block -#.TRANS: translate "rhythm1" as rhythm -msgid "rhythm1" +#: js/utils/musicutils.js:1136 +#: js/utils/synthutils.js:150 +#.TRANS: musical instrument +msgid "kick drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:70 -#: js/RhythmBlockPaletteBlocks.js:251 -#: js/RhythmBlockPaletteBlocks.js:484 -#: js/RhythmBlockPaletteBlocks.js:553 -#: js/RhythmBlockPaletteBlocks.js:874 -msgid "number of notes" +#: js/utils/musicutils.js:1137 +#: js/utils/synthutils.js:152 +#.TRANS: musical instrument +msgid "tom tom" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:126 -msgid "polyphonic rhythm" +#: js/utils/musicutils.js:1138 +#: js/utils/synthutils.js:154 +#.TRANS: musical instrument +msgid "floor tom" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:218 -msgid "The Rhythm block is used to generate rhythm patterns." +#: js/utils/musicutils.js:1139 +#: js/utils/synthutils.js:156 +#.TRANS: musical instrument +msgid "bass drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:279 -msgid "1/64 note" +#: js/utils/musicutils.js:1140 +#: js/utils/synthutils.js:158 +#.TRANS: a drum made from an inverted cup +msgid "cup drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:303 -msgid "1/32 note" +#: js/utils/musicutils.js:1141 +#: js/utils/synthutils.js:160 +#.TRANS: musical instrument +msgid "darbuka drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:331 -msgid "1/16 note" +#: js/utils/musicutils.js:1142 +#: js/utils/synthutils.js:164 +#.TRANS: musical instrument +msgid "hi hat" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:359 -msgid "eighth note" +#: js/utils/musicutils.js:1143 +#: js/utils/synthutils.js:166 +#.TRANS: a small metal bell +msgid "ride bell" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:387 -msgid "quarter note" +#: js/utils/musicutils.js:1144 +#: js/utils/synthutils.js:168 +#.TRANS: musical instrument +msgid "cow bell" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:415 -msgid "half note" +#: js/utils/musicutils.js:1145 +msgid "japanese drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:443 -msgid "whole note" +#: js/utils/musicutils.js:1146 +#: js/utils/synthutils.js:174 +#.TRANS: musical instrument +msgid "japanese bell" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:481 -#: js/RhythmBlockPaletteBlocks.js:550 -#: js/RhythmBlockPaletteBlocks.js:601 -#.TRANS: A tuplet is a note value divided into irregular time values. -msgid "tuplet" +#: js/utils/musicutils.js:1147 +#: js/utils/synthutils.js:170 +#.TRANS: musical instrument +msgid "triangle bell" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:767 -msgid "septuplet" +#: js/utils/musicutils.js:1148 +#: js/utils/synthutils.js:172 +#.TRANS: musical instrument +msgid "finger cymbals" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:795 -msgid "quintuplet" +#: js/utils/musicutils.js:1149 +#: js/utils/synthutils.js:176 +#.TRANS: a musically tuned set of bells +msgid "chime" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:823 -msgid "triplet" +#: js/utils/musicutils.js:1150 +#: js/utils/synthutils.js:178 +#.TRANS: a musical instrument +msgid "gong" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:850 -msgid "simple tuplet" +#: js/utils/musicutils.js:1151 +#: js/utils/synthutils.js:180 +#.TRANS: sound effect +msgid "clang" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:860 -msgid "Tuplets are a collection of notes that get scaled to a specific duration." +#: js/utils/musicutils.js:1152 +#: js/utils/synthutils.js:182 +#.TRANS: sound effect +msgid "crash" msgstr "" -#: js/WidgetBlocks.js:71 -#.TRANS: sound envelope (ADSR) -msgid "envelope" +#: js/utils/musicutils.js:1153 +#: js/utils/synthutils.js:184 +#.TRANS: sound effect +msgid "bottle" msgstr "" -#: js/WidgetBlocks.js:79 -#.TRANS: Attack time is the time taken for initial run-up of level from nil to peak, beginning when the key is first pressed. -msgid "attack" +#: js/utils/musicutils.js:1154 +#: js/utils/synthutils.js:186 +#.TRANS: sound effect +msgid "clap" msgstr "" -#: js/WidgetBlocks.js:81 -#.TRANS: Decay time is the time taken for the subsequent run down from the attack level to the designated sustain level. -msgid "decay" +#: js/utils/musicutils.js:1155 +#: js/utils/synthutils.js:188 +#.TRANS: sound effect +msgid "slap" msgstr "" -#: js/WidgetBlocks.js:83 -#.TRANS: Sustain level is the level during the main sequence of the sound's duration, until the key is released. -msgid "sustain" +#: js/utils/musicutils.js:1156 +#: js/utils/synthutils.js:190 +#.TRANS: sound effect +msgid "splash" msgstr "" -#: js/WidgetBlocks.js:85 -#.TRANS: Release time is the time taken for the level to decay from the sustain level to zero after the key is released. -msgid "release" +#: js/utils/musicutils.js:1157 +#: js/utils/synthutils.js:192 +#.TRANS: sound effect +msgid "bubbles" msgstr "" -#: js/WidgetBlocks.js:96 -msgid "Attack value should be from 0 to 100." +#: js/utils/musicutils.js:1158 +#: js/utils/synthutils.js:194 +#.TRANS: sound effect +msgid "raindrop" msgstr "" -#: js/WidgetBlocks.js:99 -msgid "Decay value should be from 0 to 100." +#: js/utils/musicutils.js:1159 +#: js/utils/synthutils.js:196 +#.TRANS: animal sound effect +msgid "cat" msgstr "" -#: js/WidgetBlocks.js:102 -msgid "Sustain value should be from 0 to 100." +#: js/utils/musicutils.js:1160 +#: js/utils/synthutils.js:198 +#.TRANS: animal sound effect +msgid "cricket" msgstr "" -#: js/WidgetBlocks.js:105 -msgid "Release value should be from 0-100." +#: js/utils/musicutils.js:1161 +#: js/utils/synthutils.js:200 +#.TRANS: animal sound effect +msgid "dog" msgstr "" -#: js/WidgetBlocks.js:121 -msgid "You are adding multiple envelope blocks." +#: js/utils/musicutils.js:1163 +#: js/utils/synthutils.js:102 +#.TRANS: musical instrument +msgid "banjo" msgstr "" -#: js/WidgetBlocks.js:144 -#.TRANS: a filter removes some unwanted components from a signal -msgid "filter" +#: js/utils/musicutils.js:1164 +#: js/utils/synthutils.js:104 +#.TRANS: musical instrument +msgid "koto" msgstr "" -#: js/WidgetBlocks.js:149 -#: js/musicutils.js:706 -#: js/musicutils.js:1105 -#.TRANS: highpass filter -msgid "highpass" +#: js/utils/musicutils.js:1165 +#: js/utils/synthutils.js:106 +#.TRANS: musical instrument +msgid "dulcimer" msgstr "" -#: js/WidgetBlocks.js:152 -#: js/ToneBlocks.js:42 -#: js/timbre.js:1558 -#: js/timbre.js:1808 -#.TRANS: type of filter, e.g., lowpass, highpass, etc. -#.TRANS: there are different types (sine, triangle, square...) of oscillators. -msgid "type" +#: js/utils/musicutils.js:1166 +#: js/utils/synthutils.js:108 +#.TRANS: musical instrument +msgid "electric guitar" msgstr "" -#: js/WidgetBlocks.js:154 -#: js/timbre.js:1818 -#.TRANS: rolloff is the steepness of a change in frequency. -msgid "rolloff" +#: js/utils/musicutils.js:1167 +#: js/utils/synthutils.js:110 +#.TRANS: musical instrument +msgid "bassoon" msgstr "" -#: js/WidgetBlocks.js:155 -#: js/MediaBlocks.js:692 -#: js/temperament.js:382 -#: js/temperament.js:417 -#: js/temperament.js:477 -#: js/temperament.js:485 -#: js/temperament.js:1348 -#: js/timbre.js:1842 -msgid "frequency" +#: js/utils/musicutils.js:1168 +#: js/utils/synthutils.js:112 +#.TRANS: musical instrument +msgid "celeste" msgstr "" -#: js/WidgetBlocks.js:179 -#.TRANS: rolloff is the steepness of a change in frequency. -msgid "Rolloff value should be either -12, -24, -48, or -96 decibels/octave." +#: js/utils/musicutils.js:1170 +#: js/widgets/temperament.js:787 +#.TRANS: musical temperament +msgid "equal" msgstr "" -#: js/WidgetBlocks.js:211 -msgid "The Temperament tool is used to define custom tuning." +#: js/utils/musicutils.js:1172 +#.TRANS: musical temperament +msgid "Pythagorean" msgstr "" -#: js/WidgetBlocks.js:277 -#: js/sampler.js:329 -msgid "Upload a sample and adjust its pitch center." +#: js/utils/musicutils.js:1174 +#.TRANS: musical temperament +msgid "just intonation" msgstr "" -#: js/WidgetBlocks.js:284 -#.TRANS: the speed at music is should be played. -msgid "sampler" +#: js/utils/musicutils.js:1176 +#.TRANS: musical temperament +msgid "meantone" msgstr "" -#: js/WidgetBlocks.js:329 -#: js/WidgetBlocks.js:334 -#: js/IntervalsBlocks.js:928 -#: js/VolumeBlocks.js:411 -#: js/ToneBlocks.js:946 -#: js/VolumeActions.js:218 -#: js/musicutils.js:704 -#: js/musicutils.js:755 -#: js/musicutils.js:798 -#: js/musicutils.js:820 -#: js/musicutils.js:1136 -#: js/synthutils.js:118 -#: js/modewidget.js:919 -#.TRANS: customize voice -msgid "custom" +#: js/utils/musicutils.js:1193 +msgid "major 7th" msgstr "" -#: js/WidgetBlocks.js:432 -msgid "The Meter block opens a tool to select strong beats for the meter." +#: js/utils/musicutils.js:1194 +msgid "minor 7th" msgstr "" -#: js/WidgetBlocks.js:473 -msgid "The oscilloscope block opens a tool to visualize waveforms." +#: js/utils/musicutils.js:1195 +msgid "dominant 7th" msgstr "" -#: js/WidgetBlocks.js:478 -msgid "oscilloscope" +#: js/utils/musicutils.js:1196 +msgid "minor-major 7th" msgstr "" -#: js/WidgetBlocks.js:530 -msgid "The Custom mode block opens a tool to explore musical mode (the spacing of the notes in a scale)." +#: js/utils/musicutils.js:1197 +msgid "fully-diminished 7th" msgstr "" -#: js/WidgetBlocks.js:536 -#.TRANS: musical mode is the pattern of half-steps in an octave, e.g., Major or Minor modes -msgid "custom mode" +#: js/utils/musicutils.js:1198 +msgid "half-diminished 7th" msgstr "" -#: js/WidgetBlocks.js:570 -msgid "The Tempo block opens a metronome to visualize the beat." +#: js/utils/musicutils.js:1557 +#: js/utils/musicutils.js:1569 +msgid "Equal (12EDO)" msgstr "" -#: js/WidgetBlocks.js:617 -msgid "The Arpeggio Widget is used to compose chord sequences." +#: js/utils/musicutils.js:1558 +#: js/utils/musicutils.js:1570 +msgid "5-limit Just Intonation" msgstr "" -#: js/WidgetBlocks.js:623 -#: js/IntervalsBlocks.js:683 -msgid "arpeggio" +#: js/utils/musicutils.js:1559 +#: js/utils/musicutils.js:1571 +msgid "Pythagorean (3-limit JI)" msgstr "" -#: js/WidgetBlocks.js:677 -msgid "The Pitch drum matrix is used to map pitches to drum sounds." +#: js/utils/musicutils.js:1560 +#: js/utils/musicutils.js:1561 +#: js/utils/musicutils.js:1572 +#: js/utils/musicutils.js:1573 +msgid "Meantone" msgstr "" -#: js/WidgetBlocks.js:682 -#.TRANS: makes a mapping between pitches and drum sounds -msgid "pitch-drum mapper" +#: js/utils/musicutils.js:1574 +msgid "Custom" msgstr "" -#: js/WidgetBlocks.js:724 -msgid "You must have at least one pitch block and one drum block in the matrix." +#: js/utils/musicutils.js:5387 +#: js/utils/musicutils.js:5430 +msgid "current" msgstr "" -#: js/WidgetBlocks.js:746 -msgid "The Pitch slider tool to is used to generate pitches at selected frequencies." +#: js/utils/musicutils.js:5390 +#: js/utils/musicutils.js:5421 +msgid "next" msgstr "" -#: js/WidgetBlocks.js:751 -#.TRANS: widget to generate pitches using a slider -msgid "pitch slider" +#: js/utils/musicutils.js:5393 +#: js/utils/musicutils.js:5426 +msgid "previous" msgstr "" -#: js/WidgetBlocks.js:788 -msgid "chromatic keyboard" +#: js/utils/synthutils.js:120 +#.TRANS: simple monotone synthesizer +msgid "simple-2" msgstr "" -#: js/WidgetBlocks.js:815 -#: js/WidgetBlocks.js:874 -#.TRANS: widget to generate pitches using a slider -msgid "music keyboard" +#: js/utils/synthutils.js:122 +#.TRANS: simple monotone synthesizer +msgid "simple-3" msgstr "" -#: js/WidgetBlocks.js:859 -#: js/WidgetBlocks.js:866 -msgid "The Music keyboard block opens a piano keyboard that can be used to create notes." +#: js/utils/synthutils.js:124 +#.TRANS: simple monotone synthesizer +msgid "simple-4" msgstr "" -#: js/WidgetBlocks.js:910 -msgid "The Pitch staircase tool to is used to generate pitches from a given ratio." +#: js/utils/synthutils.js:162 +#.TRANS: musical instrument +msgid "taiko" msgstr "" -#: js/WidgetBlocks.js:917 -#.TRANS: generate a progressive sequence of pitches -msgid "pitch staircase" +#: js/blocks/ActionBlocks.js:58 +msgid "The Return block will return a value from an action." msgstr "" -#: js/WidgetBlocks.js:982 -msgid "The Rhythm Maker block opens a tool to create drum machines." +#: js/blocks/ActionBlocks.js:75 +msgid "return" msgstr "" -#: js/WidgetBlocks.js:1036 -msgid "G major scale" +#: js/blocks/ActionBlocks.js:128 +msgid "The Return to URL block will return a value to a webpage." msgstr "" -#: js/WidgetBlocks.js:1064 -msgid "C major scale" +#: js/blocks/ActionBlocks.js:145 +msgid "return to URL" msgstr "" -#: js/WidgetBlocks.js:1097 -msgid "The Phrase Maker block opens a tool to create musical phrases." +#: js/blocks/ActionBlocks.js:233 +#: js/blocks/ActionBlocks.js:290 +#: js/blocks/ActionBlocks.js:501 +#: js/blocks/ActionBlocks.js:688 +msgid "The Calculate block returns a value calculated by an action." msgstr "" -#: js/WidgetBlocks.js:1104 -#.TRANS: assigns pitch to a sequence of beats to generate a melody -msgid "phrase maker" +#: js/blocks/ActionBlocks.js:251 +#: js/blocks/ActionBlocks.js:517 +#: js/blocks/ActionBlocks.js:707 +msgid "calculate" msgstr "" -#: js/WidgetBlocks.js:1168 -msgid "You must have at least one pitch block and one rhythm block in the matrix." +#: js/blocks/ActionBlocks.js:376 +#: js/blocks/ActionBlocks.js:593 +#: js/blocks/ActionBlocks.js:942 +#: js/blocks/ActionBlocks.js:1389 +#.TRANS: do is the do something or take an action. +msgid "The Do block is used to initiate an action." msgstr "" -#: js/WidgetBlocks.js:1220 -msgid "The Status block opens a tool for inspecting the status of Music Blocks as it is running." +#: js/blocks/ActionBlocks.js:390 +#: js/blocks/ActionBlocks.js:610 +#: js/blocks/ActionBlocks.js:959 +#: js/blocks/ActionBlocks.js:1048 +#: js/blocks/MeterBlocks.js:769 +msgid "do1" msgstr "" -#: js/IntervalsBlocks.js:45 -msgid "set temperament" +#: js/blocks/ActionBlocks.js:390 +#: js/blocks/ActionBlocks.js:610 +#: js/blocks/ActionBlocks.js:959 +#: js/blocks/ActionBlocks.js:1048 +#: js/blocks/FlowBlocks.js:742 +#: js/blocks/FlowBlocks.js:822 +#: js/blocks/MeterBlocks.js:769 +msgid "do" msgstr "" -#: js/IntervalsBlocks.js:63 -#: js/MediaBlocks.js:746 -#: js/PitchBlocks.js:657 -#: js/PitchBlocks.js:933 -#: js/PitchBlocks.js:972 -#: js/PitchBlocks.js:1005 -#: js/PitchBlocks.js:1166 -#: js/PitchBlocks.js:1679 -#: js/PitchBlocks.js:1720 -#: js/PitchBlocks.js:1827 -#: js/ToneBlocks.js:1025 -#.TRANS: adjusts the shift up or down by one octave (twelve half-steps in the interval between two notes, one having twice or half the frequency in Hz of the other.) -msgid "octave" +#: js/blocks/ActionBlocks.js:791 +#: js/blocks/ActionBlocks.js:865 +msgid "The Arg block contains the value of an argument passed to an action." msgstr "" -#: js/IntervalsBlocks.js:99 -msgid "The Temperament name block is used to select a tuning method." +#: js/blocks/ActionBlocks.js:806 +#: js/blocks/ActionBlocks.js:878 +msgid "arg" msgstr "" -#: js/IntervalsBlocks.js:161 -msgid "doubly" +#: js/blocks/ActionBlocks.js:836 +#: js/blocks/ActionBlocks.js:900 +#: js/blocks/ActionBlocks.js:908 +msgid "Invalid argument" msgstr "" -#: js/IntervalsBlocks.js:166 -msgid "The Doubly block will double the size of an interval." +#: js/blocks/ActionBlocks.js:944 +msgid "In the example, it is used with the One of block to choose a random phase." msgstr "" -#: js/IntervalsBlocks.js:262 -msgid "interval number" +#: js/blocks/ActionBlocks.js:1019 +#: js/blocks/ActionBlocks.js:1026 +msgid "The Listen block is used to listen for an event such as a mouse click." msgstr "" -#: js/IntervalsBlocks.js:330 -#.TRANS: measure the distance between two pitches in semi-tones -msgid "semi-tone interval measure" +#: js/blocks/ActionBlocks.js:1028 +msgid "When the event happens, an action is taken." msgstr "" -#: js/IntervalsBlocks.js:397 -#: js/IntervalsBlocks.js:513 -msgid "You must use two pitch blocks when measuring an interval." +#: js/blocks/ActionBlocks.js:1045 +msgid "on" msgstr "" -#: js/IntervalsBlocks.js:439 -msgid "The Scalar interval block measures the distance between two notes in the current key and mode." +#: js/blocks/ActionBlocks.js:1048 +#: js/blocks/ActionBlocks.js:1049 +#: js/blocks/ActionBlocks.js:1153 +msgid "event" msgstr "" -#: js/IntervalsBlocks.js:445 -#.TRANS: measure the distance between two pitches in steps of musical scale -msgid "scalar interval measure" +#: js/blocks/ActionBlocks.js:1133 +msgid "The Broadcast block is used to trigger an event." msgstr "" -#: js/IntervalsBlocks.js:592 -#: js/musicutils.js:637 -#: js/musicutils.js:908 -#.TRANS: perfect is a music term related to intervals -msgid "perfect" +#: js/blocks/ActionBlocks.js:1151 +msgid "broadcast" msgstr "" -#: js/IntervalsBlocks.js:621 -msgid "In the figure, we add sol# to sol." +#: js/blocks/ActionBlocks.js:1208 +msgid "Each Start block is a separate voice." msgstr "" -#: js/IntervalsBlocks.js:627 -#: js/OrnamentBlocks.js:220 -#.TRANS: calculate a relative step between notes based on semi-tones -msgid "semi-tone interval" +#: js/blocks/ActionBlocks.js:1304 +msgid "It is often used for storing a phrase of music that is repeated." msgstr "" -#: js/IntervalsBlocks.js:676 -msgid "The output of the example is: do, mi, sol, sol, ti, mi" +#: js/blocks/ActionBlocks.js:1495 +msgid "define temperament" msgstr "" -#: js/IntervalsBlocks.js:735 -msgid "The Chord block calculates common chords." +#: js/blocks/BooleanBlocks.js:44 +msgid "The Not block is the logical not operator." msgstr "" -#: js/IntervalsBlocks.js:737 -msgid "In the figure, we generate a C-major chord." +#: js/blocks/BooleanBlocks.js:62 +msgid "not" msgstr "" -#: js/IntervalsBlocks.js:742 -msgid "chord" +#: js/blocks/BooleanBlocks.js:134 +msgid "The And block is the logical and operator." msgstr "" -#: js/IntervalsBlocks.js:794 -msgid "The Ratio Interval block calculates an interval based on a ratio." +#: js/blocks/BooleanBlocks.js:152 +msgid "and" msgstr "" -#: js/IntervalsBlocks.js:799 -msgid "ratio interval" +#: js/blocks/BooleanBlocks.js:218 +msgid "The Or block is the logical or operator." msgstr "" -#: js/IntervalsBlocks.js:868 -msgid "In the figure, we add la to sol." +#: js/blocks/BooleanBlocks.js:236 +msgid "or" msgstr "" -#: js/IntervalsBlocks.js:924 -#.TRANS: define a custom mode -msgid "define mode" +#: js/blocks/BooleanBlocks.js:302 +msgid "The XOR block is the logical XOR operator." msgstr "" -#: js/IntervalsBlocks.js:977 -msgid "movable Do" +#: js/blocks/BooleanBlocks.js:320 +msgid "xor" msgstr "" -#: js/IntervalsBlocks.js:1028 -#.TRANS: mode length is the number of notes in the mode, e.g., 7 for major and minor scales; 12 for chromatic scales -msgid "mode length" +#: js/blocks/BooleanBlocks.js:808 +msgid "The Equal block returns True if the two numbers are equal." msgstr "" -#: js/IntervalsBlocks.js:1037 -msgid "The Mode length block is the number of notes in the current scale." +#: js/blocks/BooleanBlocks.js:909 +msgid "The Not-equal-to block returns True if the two numbers are not equal to each other." msgstr "" -#: js/IntervalsBlocks.js:1039 -msgid "Most Western scales have 7 notes." +#: js/blocks/BooleanBlocks.js:1008 +msgid "The Boolean block is used to specify true or false." msgstr "" -#: js/IntervalsBlocks.js:1088 -#.TRANS: the mode in music is 'major', 'minor', etc. -msgid "current mode" +#: js/blocks/BoxesBlocks.js:53 +#: js/blocks/BoxesBlocks.js:59 +msgid "The Add-to block is used to add to the value stored in a box." msgstr "" -#: js/IntervalsBlocks.js:1141 -#.TRANS: the key is a group of pitches with which a music composition is created -msgid "current key" +#: js/blocks/BoxesBlocks.js:61 +msgid "It can also be used with other blocks such as Color and Pen size." msgstr "" -#: js/IntervalsBlocks.js:1193 -#: js/IntervalsBlocks.js:1238 -#.TRANS: set the key and mode, e.g. C Major -msgid "set key" +#: js/blocks/BoxesBlocks.js:73 +msgid "add" msgstr "" -#: js/IntervalsBlocks.js:1247 -#: js/IntervalsBlocks.js:1253 -msgid "The Set key block is used to set the key and mode," +#: js/blocks/BoxesBlocks.js:75 +#: js/widgets/temperament.js:857 +msgid "to" msgstr "" -#: js/IntervalsBlocks.js:1253 -msgid "eg C Major" +#: js/blocks/BoxesBlocks.js:75 +#: js/blocks/BoxesBlocks.js:595 +#: js/blocks/HeapBlocks.js:544 +msgid "value1" msgstr "" -#: js/IntervalsBlocks.js:1266 -#: js/DictBlocks.js:215 -#: js/DictBlocks.js:216 -#: js/DictBlocks.js:289 -#: js/DictBlocks.js:290 -#: js/DictBlocks.js:357 -#: js/DictBlocks.js:430 -#: js/DictBlocks.js:431 -#.TRANS: key, e.g., C in C Major -msgid "key" +#: js/blocks/BoxesBlocks.js:118 +msgid "Block does not support incrementing." msgstr "" -#: js/ActionBlocks.js:58 -msgid "The Return block will return a value from an action." +#: js/blocks/BoxesBlocks.js:152 +msgid "The Add-1-to block adds one to the value stored in a box." msgstr "" -#: js/ActionBlocks.js:75 -msgid "return" +#: js/blocks/BoxesBlocks.js:163 +msgid "add 1 to" msgstr "" -#: js/ActionBlocks.js:128 -msgid "The Return to URL block will return a value to a webpage." +#: js/blocks/BoxesBlocks.js:211 +msgid "The Subtract-1-from block subtracts one from the value stored in a box." msgstr "" -#: js/ActionBlocks.js:145 -msgid "return to URL" +#: js/blocks/BoxesBlocks.js:222 +msgid "subtract 1 from" msgstr "" -#: js/ActionBlocks.js:233 -#: js/ActionBlocks.js:290 -#: js/ActionBlocks.js:501 -#: js/ActionBlocks.js:688 -msgid "The Calculate block returns a value calculated by an action." +#: js/blocks/BoxesBlocks.js:270 +#: js/blocks/BoxesBlocks.js:387 +msgid "The Box block returns the value stored in a box." msgstr "" -#: js/ActionBlocks.js:251 -#: js/ActionBlocks.js:517 -#: js/ActionBlocks.js:707 -msgid "calculate" +#: js/blocks/BoxesBlocks.js:500 +#: js/blocks/BoxesBlocks.js:576 +msgid "The Store in block will store a value in a box." msgstr "" -#: js/ActionBlocks.js:376 -#: js/ActionBlocks.js:593 -#: js/ActionBlocks.js:942 -#: js/ActionBlocks.js:1389 -#.TRANS: do is the do something or take an action. -msgid "The Do block is used to initiate an action." +#: js/blocks/BoxesBlocks.js:595 +#: js/blocks/EnsembleBlocks.js:391 +#: js/blocks/EnsembleBlocks.js:402 +msgid "name1" msgstr "" -#: js/ActionBlocks.js:390 -#: js/ActionBlocks.js:610 -#: js/ActionBlocks.js:959 -#: js/ActionBlocks.js:1048 -#: js/MeterBlocks.js:769 -msgid "do1" +#: js/blocks/BoxesBlocks.js:652 +msgid "The Box2 block returns the value stored in Box2." msgstr "" -#: js/ActionBlocks.js:390 -#: js/ActionBlocks.js:610 -#: js/ActionBlocks.js:959 -#: js/ActionBlocks.js:1048 -#: js/FlowBlocks.js:742 -#: js/FlowBlocks.js:822 -#: js/MeterBlocks.js:769 -msgid "do" +#: js/blocks/BoxesBlocks.js:703 +msgid "The Store in Box2 block is used to store a value in Box2." msgstr "" -#: js/ActionBlocks.js:791 -#: js/ActionBlocks.js:865 -msgid "The Arg block contains the value of an argument passed to an action." +#: js/blocks/BoxesBlocks.js:715 +msgid "store in box2" msgstr "" -#: js/ActionBlocks.js:806 -#: js/ActionBlocks.js:878 -msgid "arg" +#: js/blocks/BoxesBlocks.js:761 +msgid "The Box1 block returns the value stored in Box1." msgstr "" -#: js/ActionBlocks.js:836 -#: js/ActionBlocks.js:900 -#: js/ActionBlocks.js:908 -msgid "Invalid argument" +#: js/blocks/BoxesBlocks.js:812 +msgid "The Store in Box1 block is used to store a value in Box1." msgstr "" -#: js/ActionBlocks.js:944 -msgid "In the example, it is used with the One of block to choose a random phase." +#: js/blocks/BoxesBlocks.js:826 +msgid "store in box1" msgstr "" -#: js/ActionBlocks.js:1019 -#: js/ActionBlocks.js:1026 -msgid "The Listen block is used to listen for an event such as a mouse click." +#: js/blocks/DictBlocks.js:77 +msgid "show dictionary" msgstr "" -#: js/ActionBlocks.js:1028 -msgid "When the event happens, an action is taken." +#: js/blocks/DictBlocks.js:80 +#: js/blocks/DictBlocks.js:145 +#: js/blocks/DictBlocks.js:216 +#: js/blocks/DictBlocks.js:290 +#: js/blocks/ProgramBlocks.js:396 +#: js/blocks/ProgramBlocks.js:501 +#: js/blocks/ProgramBlocks.js:664 +msgid "My Dictionary" msgstr "" -#: js/ActionBlocks.js:1045 -msgid "on" +#: js/blocks/DictBlocks.js:129 +msgid "The Dictionary block returns a dictionary." msgstr "" -#: js/ActionBlocks.js:1048 -#: js/ActionBlocks.js:1049 -#: js/ActionBlocks.js:1153 -msgid "event" +#: js/blocks/DictBlocks.js:197 +#: js/blocks/DictBlocks.js:339 +msgid "The Get-dict block returns a value in the dictionary for a specified key." msgstr "" -#: js/ActionBlocks.js:1133 -msgid "The Broadcast block is used to trigger an event." +#: js/blocks/DictBlocks.js:212 +#: js/blocks/DictBlocks.js:354 +#.TRANS: retrieve a value from the dictionary with a given key +msgid "get value" msgstr "" -#: js/ActionBlocks.js:1151 -msgid "broadcast" +#: js/blocks/DictBlocks.js:215 +#: js/blocks/DictBlocks.js:216 +#: js/blocks/DictBlocks.js:289 +#: js/blocks/DictBlocks.js:290 +#: js/blocks/DictBlocks.js:357 +#: js/blocks/DictBlocks.js:430 +#: js/blocks/DictBlocks.js:431 +msgid "key2" msgstr "" -#: js/ActionBlocks.js:1208 -msgid "Each Start block is a separate voice." +#: js/blocks/DictBlocks.js:215 +#: js/blocks/DictBlocks.js:216 +#: js/blocks/DictBlocks.js:289 +#: js/blocks/DictBlocks.js:290 +#: js/blocks/DictBlocks.js:357 +#: js/blocks/DictBlocks.js:430 +#: js/blocks/DictBlocks.js:431 +#: js/blocks/IntervalsBlocks.js:1462 +#.TRANS: key, e.g., C in C Major +msgid "key" msgstr "" -#: js/ActionBlocks.js:1304 -msgid "It is often used for storing a phrase of music that is repeated." +#: js/blocks/DictBlocks.js:271 +#: js/blocks/DictBlocks.js:411 +msgid "The Set-dict block sets a value in the dictionary for a specified key." msgstr "" -#: js/ActionBlocks.js:1495 -msgid "define temperament" +#: js/blocks/DictBlocks.js:286 +#: js/blocks/DictBlocks.js:427 +#.TRANS: set a value in the dictionary for a given key +msgid "set value" msgstr "" -#: js/EnsembleBlocks.js:66 +#: js/blocks/EnsembleBlocks.js:66 msgid "mouse index heap" msgstr "" -#: js/EnsembleBlocks.js:68 +#: js/blocks/EnsembleBlocks.js:68 msgid "The Mouse index heap block returns a value in the heap at a specified location for a specified mouse." msgstr "" -#: js/EnsembleBlocks.js:77 -#: js/EnsembleBlocks.js:1080 +#: js/blocks/EnsembleBlocks.js:77 +#: js/blocks/EnsembleBlocks.js:1080 msgid "mouse name" msgstr "" -#: js/EnsembleBlocks.js:77 -#: js/EnsembleBlocks.js:92 -#: js/HeapBlocks.js:544 +#: js/blocks/EnsembleBlocks.js:77 +#: js/blocks/EnsembleBlocks.js:92 +#: js/blocks/HeapBlocks.js:544 #.TRANS: value1 is a numeric value (JAPANESE ONLY) msgid "index" msgstr "" -#: js/EnsembleBlocks.js:80 +#: js/blocks/EnsembleBlocks.js:80 msgid "turtle index heap" msgstr "" -#: js/EnsembleBlocks.js:82 +#: js/blocks/EnsembleBlocks.js:82 msgid "The Turtle index heap block returns a value in the heap at a specified location for a specified turtle." msgstr "" -#: js/EnsembleBlocks.js:90 -#: js/EnsembleBlocks.js:167 -#: js/EnsembleBlocks.js:230 -#: js/EnsembleBlocks.js:316 -#: js/EnsembleBlocks.js:362 -#: js/EnsembleBlocks.js:400 -#: js/EnsembleBlocks.js:454 -#: js/EnsembleBlocks.js:504 -#: js/EnsembleBlocks.js:550 -#: js/EnsembleBlocks.js:597 -#: js/EnsembleBlocks.js:651 -#: js/EnsembleBlocks.js:763 -#: js/EnsembleBlocks.js:854 -#: js/EnsembleBlocks.js:915 -#: js/EnsembleBlocks.js:955 -#: js/EnsembleBlocks.js:1219 -#: js/EnsembleBlocks.js:1293 +#: js/blocks/EnsembleBlocks.js:90 +#: js/blocks/EnsembleBlocks.js:167 +#: js/blocks/EnsembleBlocks.js:230 +#: js/blocks/EnsembleBlocks.js:316 +#: js/blocks/EnsembleBlocks.js:362 +#: js/blocks/EnsembleBlocks.js:400 +#: js/blocks/EnsembleBlocks.js:454 +#: js/blocks/EnsembleBlocks.js:504 +#: js/blocks/EnsembleBlocks.js:550 +#: js/blocks/EnsembleBlocks.js:597 +#: js/blocks/EnsembleBlocks.js:651 +#: js/blocks/EnsembleBlocks.js:763 +#: js/blocks/EnsembleBlocks.js:854 +#: js/blocks/EnsembleBlocks.js:915 +#: js/blocks/EnsembleBlocks.js:955 +#: js/blocks/EnsembleBlocks.js:1219 +#: js/blocks/EnsembleBlocks.js:1293 #.TRANS: Yertle is the name of a turtle. msgid "Yertle" msgstr "" -#: js/EnsembleBlocks.js:92 -#: js/EnsembleBlocks.js:1089 +#: js/blocks/EnsembleBlocks.js:92 +#: js/blocks/EnsembleBlocks.js:1089 msgid "turtle name" msgstr "" -#: js/EnsembleBlocks.js:122 -#: js/EnsembleBlocks.js:1197 -#: js/HeapBlocks.js:474 -#: js/HeapBlocks.js:572 +#: js/blocks/EnsembleBlocks.js:122 +#: js/blocks/EnsembleBlocks.js:1197 +#: js/blocks/HeapBlocks.js:474 +#: js/blocks/HeapBlocks.js:572 msgid "Index must be > 0." msgstr "" -#: js/EnsembleBlocks.js:127 -#: js/HeapBlocks.js:479 -#: js/HeapBlocks.js:577 +#: js/blocks/EnsembleBlocks.js:127 +#: js/blocks/HeapBlocks.js:479 +#: js/blocks/HeapBlocks.js:577 msgid "Maximum heap size is 1000." msgstr "" -#: js/EnsembleBlocks.js:145 +#: js/blocks/EnsembleBlocks.js:145 msgid "stop mouse" msgstr "" -#: js/EnsembleBlocks.js:147 +#: js/blocks/EnsembleBlocks.js:147 msgid "The Stop mouse block stops the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:158 +#: js/blocks/EnsembleBlocks.js:158 msgid "stop turtle" msgstr "" -#: js/EnsembleBlocks.js:160 +#: js/blocks/EnsembleBlocks.js:160 msgid "The Stop turtle block stops the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:184 -#: js/EnsembleBlocks.js:247 -#: js/EnsembleBlocks.js:413 -#: js/EnsembleBlocks.js:468 -#: js/EnsembleBlocks.js:706 -#: js/EnsembleBlocks.js:808 -#: js/EnsembleBlocks.js:870 -#: js/EnsembleBlocks.js:1190 -#: js/EnsembleBlocks.js:1253 +#: js/blocks/EnsembleBlocks.js:184 +#: js/blocks/EnsembleBlocks.js:247 +#: js/blocks/EnsembleBlocks.js:413 +#: js/blocks/EnsembleBlocks.js:468 +#: js/blocks/EnsembleBlocks.js:706 +#: js/blocks/EnsembleBlocks.js:808 +#: js/blocks/EnsembleBlocks.js:870 +#: js/blocks/EnsembleBlocks.js:1190 +#: js/blocks/EnsembleBlocks.js:1253 msgid "Cannot find mouse" msgstr "" -#: js/EnsembleBlocks.js:186 -#: js/EnsembleBlocks.js:249 -#: js/EnsembleBlocks.js:415 -#: js/EnsembleBlocks.js:470 -#: js/EnsembleBlocks.js:708 -#: js/EnsembleBlocks.js:810 -#: js/EnsembleBlocks.js:872 -#: js/EnsembleBlocks.js:1192 -#: js/EnsembleBlocks.js:1255 +#: js/blocks/EnsembleBlocks.js:186 +#: js/blocks/EnsembleBlocks.js:249 +#: js/blocks/EnsembleBlocks.js:415 +#: js/blocks/EnsembleBlocks.js:470 +#: js/blocks/EnsembleBlocks.js:708 +#: js/blocks/EnsembleBlocks.js:810 +#: js/blocks/EnsembleBlocks.js:872 +#: js/blocks/EnsembleBlocks.js:1192 +#: js/blocks/EnsembleBlocks.js:1255 msgid "Cannot find turtle" msgstr "" -#: js/EnsembleBlocks.js:206 +#: js/blocks/EnsembleBlocks.js:206 msgid "start mouse" msgstr "" -#: js/EnsembleBlocks.js:209 +#: js/blocks/EnsembleBlocks.js:209 msgid "The Start mouse block starts the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:220 +#: js/blocks/EnsembleBlocks.js:220 msgid "start turtle" msgstr "" -#: js/EnsembleBlocks.js:223 +#: js/blocks/EnsembleBlocks.js:223 msgid "The Start turtle block starts the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:256 +#: js/blocks/EnsembleBlocks.js:256 msgid "Mouse is already running." msgstr "" -#: js/EnsembleBlocks.js:258 +#: js/blocks/EnsembleBlocks.js:258 msgid "Turtle is already running." msgstr "" -#: js/EnsembleBlocks.js:282 +#: js/blocks/EnsembleBlocks.js:282 msgid "Cannot find start block" msgstr "" -#: js/EnsembleBlocks.js:292 +#: js/blocks/EnsembleBlocks.js:292 #.TRANS: pen color for this mouse msgid "mouse color" msgstr "" -#: js/EnsembleBlocks.js:294 +#: js/blocks/EnsembleBlocks.js:294 msgid "The Mouse color block returns the pen color of the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:306 +#: js/blocks/EnsembleBlocks.js:306 #.TRANS: pen color for this turtle msgid "turtle color" msgstr "" -#: js/EnsembleBlocks.js:308 +#: js/blocks/EnsembleBlocks.js:308 msgid "The Turtle color block returns the pen color of the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:338 +#: js/blocks/EnsembleBlocks.js:338 #.TRANS: heading (compass direction) for this mouse msgid "mouse heading" msgstr "" -#: js/EnsembleBlocks.js:340 +#: js/blocks/EnsembleBlocks.js:340 msgid "The Mouse heading block returns the heading of the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:352 +#: js/blocks/EnsembleBlocks.js:352 #.TRANS: heading (compass direction) for this turtle msgid "turtle heading" msgstr "" -#: js/EnsembleBlocks.js:354 +#: js/blocks/EnsembleBlocks.js:354 msgid "The Turtle heading block returns the heading of the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:384 -#: js/EnsembleBlocks.js:439 +#: js/blocks/EnsembleBlocks.js:384 +#: js/blocks/EnsembleBlocks.js:439 #.TRANS: set xy position for this mouse msgid "set mouse" msgstr "" -#: js/EnsembleBlocks.js:391 -#: js/EnsembleBlocks.js:402 -#: js/BoxesBlocks.js:595 -msgid "name1" -msgstr "" - -#: js/EnsembleBlocks.js:391 -#: js/EnsembleBlocks.js:402 -#: js/ProgramBlocks.js:881 -#: js/GraphicsBlocks.js:235 -#: js/GraphicsBlocks.js:313 -#: js/GraphicsBlocks.js:436 -#: js/GraphicsBlocks.js:487 -#: js/GraphicsBlocks.js:534 -#: js/GraphicsBlocks.js:750 +#: js/blocks/EnsembleBlocks.js:391 +#: js/blocks/EnsembleBlocks.js:402 +#: js/blocks/GraphicsBlocks.js:235 +#: js/blocks/GraphicsBlocks.js:313 +#: js/blocks/GraphicsBlocks.js:436 +#: js/blocks/GraphicsBlocks.js:487 +#: js/blocks/GraphicsBlocks.js:534 +#: js/blocks/GraphicsBlocks.js:750 +#: js/blocks/ProgramBlocks.js:881 msgid "x" msgstr "" -#: js/EnsembleBlocks.js:391 -#: js/EnsembleBlocks.js:402 -#: js/ProgramBlocks.js:881 -#: js/GraphicsBlocks.js:149 -#: js/GraphicsBlocks.js:313 -#: js/GraphicsBlocks.js:436 -#: js/GraphicsBlocks.js:487 -#: js/GraphicsBlocks.js:534 -#: js/GraphicsBlocks.js:750 +#: js/blocks/EnsembleBlocks.js:391 +#: js/blocks/EnsembleBlocks.js:402 +#: js/blocks/GraphicsBlocks.js:149 +#: js/blocks/GraphicsBlocks.js:313 +#: js/blocks/GraphicsBlocks.js:436 +#: js/blocks/GraphicsBlocks.js:487 +#: js/blocks/GraphicsBlocks.js:534 +#: js/blocks/GraphicsBlocks.js:750 +#: js/blocks/ProgramBlocks.js:881 msgid "y" msgstr "" -#: js/EnsembleBlocks.js:395 -#: js/EnsembleBlocks.js:452 +#: js/blocks/EnsembleBlocks.js:395 +#: js/blocks/EnsembleBlocks.js:452 #.TRANS: set xy position for this turtle msgid "set turtle" msgstr "" -#: js/EnsembleBlocks.js:433 +#: js/blocks/EnsembleBlocks.js:433 msgid "The Set mouse block sends a stack of blocks to be run by the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:446 +#: js/blocks/EnsembleBlocks.js:446 msgid "The Set turtle block sends a stack of blocks to be run by the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:480 +#: js/blocks/EnsembleBlocks.js:480 #.TRANS: y position for this mouse msgid "mouse y" msgstr "" -#: js/EnsembleBlocks.js:482 +#: js/blocks/EnsembleBlocks.js:482 msgid "The Y mouse block returns the Y position of the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:494 +#: js/blocks/EnsembleBlocks.js:494 #.TRANS: y position for this turtle msgid "turtle y" msgstr "" -#: js/EnsembleBlocks.js:496 +#: js/blocks/EnsembleBlocks.js:496 msgid "The Y turtle block returns the Y position of the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:526 +#: js/blocks/EnsembleBlocks.js:526 #.TRANS: x position for this mouse msgid "mouse x" msgstr "" -#: js/EnsembleBlocks.js:528 +#: js/blocks/EnsembleBlocks.js:528 msgid "The X mouse block returns the X position of the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:540 +#: js/blocks/EnsembleBlocks.js:540 #.TRANS: x position for this turtle msgid "turtle x" msgstr "" -#: js/EnsembleBlocks.js:542 +#: js/blocks/EnsembleBlocks.js:542 msgid "The X turtle block returns the X position of the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:573 +#: js/blocks/EnsembleBlocks.js:573 #.TRANS: notes played by this mouse msgid "mouse notes played" msgstr "" -#: js/EnsembleBlocks.js:575 +#: js/blocks/EnsembleBlocks.js:575 msgid "The Mouse elapse notes block returns the number of notes played by the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:587 +#: js/blocks/EnsembleBlocks.js:587 #.TRANS: notes played by this turtle msgid "turtle notes played" msgstr "" -#: js/EnsembleBlocks.js:589 +#: js/blocks/EnsembleBlocks.js:589 msgid "The Turtle elapse notes block returns the number of notes played by the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:627 +#: js/blocks/EnsembleBlocks.js:627 #.TRANS: convert current note for this turtle to piano key (1-88) msgid "mouse pitch number" msgstr "" -#: js/EnsembleBlocks.js:629 +#: js/blocks/EnsembleBlocks.js:629 msgid "The Mouse pitch block returns the current pitch number being played by the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:641 +#: js/blocks/EnsembleBlocks.js:641 #.TRANS: convert current note for this turtle to piano key (1-88) msgid "turtle pitch number" msgstr "" -#: js/EnsembleBlocks.js:643 -msgid "The Turrle pitch block returns the current pitch number being played by the specified turtle." +#: js/blocks/EnsembleBlocks.js:643 +msgid "The Turtle pitch block returns the current pitch number being played by the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:747 -#: js/EnsembleBlocks.js:819 +#: js/blocks/EnsembleBlocks.js:747 +#: js/blocks/EnsembleBlocks.js:819 #.TRANS: note value is the duration of the note played by this mouse msgid "mouse note value" msgstr "" -#: js/EnsembleBlocks.js:757 +#: js/blocks/EnsembleBlocks.js:757 #.TRANS: note value is the duration of the note played by this turtle msgid "turtle note value" msgstr "" -#: js/EnsembleBlocks.js:830 +#: js/blocks/EnsembleBlocks.js:830 #.TRANS: sync is short for synchronization msgid "mouse sync" msgstr "" -#: js/EnsembleBlocks.js:832 +#: js/blocks/EnsembleBlocks.js:832 msgid "The Mouse sync block aligns the beat count between mice." msgstr "" -#: js/EnsembleBlocks.js:844 +#: js/blocks/EnsembleBlocks.js:844 #.TRANS: sync is short for synchronization msgid "turtle sync" msgstr "" -#: js/EnsembleBlocks.js:846 +#: js/blocks/EnsembleBlocks.js:846 msgid "The Turtle sync block aligns the beat count between turtles." msgstr "" -#: js/EnsembleBlocks.js:887 +#: js/blocks/EnsembleBlocks.js:887 msgid "The Found mouse block will return true if the specified mouse can be found." msgstr "" -#: js/EnsembleBlocks.js:893 +#: js/blocks/EnsembleBlocks.js:893 msgid "found mouse" msgstr "" -#: js/EnsembleBlocks.js:903 +#: js/blocks/EnsembleBlocks.js:903 msgid "The Found turtle block will return true if the specified turtle can be found." msgstr "" -#: js/EnsembleBlocks.js:909 +#: js/blocks/EnsembleBlocks.js:909 msgid "found turtle" msgstr "" -#: js/EnsembleBlocks.js:932 +#: js/blocks/EnsembleBlocks.js:932 msgid "new mouse" msgstr "" -#: js/EnsembleBlocks.js:934 +#: js/blocks/EnsembleBlocks.js:934 msgid "The New mouse block will create a new mouse." msgstr "" -#: js/EnsembleBlocks.js:945 +#: js/blocks/EnsembleBlocks.js:945 msgid "new turtle" msgstr "" -#: js/EnsembleBlocks.js:947 +#: js/blocks/EnsembleBlocks.js:947 msgid "The New turtle block will create a new turtle." msgstr "" -#: js/EnsembleBlocks.js:1011 +#: js/blocks/EnsembleBlocks.js:1011 msgid "set mouse color" msgstr "" -#: js/EnsembleBlocks.js:1014 +#: js/blocks/EnsembleBlocks.js:1014 msgid "The Set-mouse-color block is used to set the color of a mouse." msgstr "" -#: js/EnsembleBlocks.js:1020 +#: js/blocks/EnsembleBlocks.js:1020 msgid "set turtle color" msgstr "" -#: js/EnsembleBlocks.js:1023 +#: js/blocks/EnsembleBlocks.js:1023 msgid "The Set-turtle-color block is used to set the color of a turtle." msgstr "" -#: js/EnsembleBlocks.js:1083 +#: js/blocks/EnsembleBlocks.js:1083 msgid "The Mouse-name block returns the name of a mouse." msgstr "" -#: js/EnsembleBlocks.js:1092 +#: js/blocks/EnsembleBlocks.js:1092 msgid "The Turtle-name block returns the name of a turtle." msgstr "" -#: js/EnsembleBlocks.js:1115 +#: js/blocks/EnsembleBlocks.js:1115 msgid "mouse count" msgstr "" -#: js/EnsembleBlocks.js:1118 +#: js/blocks/EnsembleBlocks.js:1118 msgid "The Mouse-count block returns the number of mice." msgstr "" -#: js/EnsembleBlocks.js:1124 +#: js/blocks/EnsembleBlocks.js:1124 msgid "turtle count" msgstr "" -#: js/EnsembleBlocks.js:1127 +#: js/blocks/EnsembleBlocks.js:1127 msgid "The Turtle-count block returns the number of turtles." msgstr "" -#: js/EnsembleBlocks.js:1149 +#: js/blocks/EnsembleBlocks.js:1149 msgid "nth mouse name" msgstr "" -#: js/EnsembleBlocks.js:1152 +#: js/blocks/EnsembleBlocks.js:1152 msgid "The Nth-Mouse name block returns the name of the nth mouse." msgstr "" -#: js/EnsembleBlocks.js:1158 +#: js/blocks/EnsembleBlocks.js:1158 msgid "nth turtle name" msgstr "" -#: js/EnsembleBlocks.js:1161 +#: js/blocks/EnsembleBlocks.js:1161 msgid "The Nth-Turtle name block returns the name of the nth turtle." msgstr "" -#: js/EnsembleBlocks.js:1205 -#: js/EnsembleBlocks.js:1265 +#: js/blocks/EnsembleBlocks.js:1205 +#: js/blocks/EnsembleBlocks.js:1265 msgid "set name" msgstr "" -#: js/EnsembleBlocks.js:1214 -#: js/EnsembleBlocks.js:1221 +#: js/blocks/EnsembleBlocks.js:1214 +#: js/blocks/EnsembleBlocks.js:1221 msgid "source" msgstr "" -#: js/EnsembleBlocks.js:1214 -#: js/EnsembleBlocks.js:1221 +#: js/blocks/EnsembleBlocks.js:1214 +#: js/blocks/EnsembleBlocks.js:1221 msgid "target" msgstr "" -#: js/EnsembleBlocks.js:1271 +#: js/blocks/EnsembleBlocks.js:1271 msgid "The Set-name block is used to name a mouse." msgstr "" -#: js/EnsembleBlocks.js:1284 +#: js/blocks/EnsembleBlocks.js:1284 msgid "The Set-name block is used to name a turtle." msgstr "" -#: js/BooleanBlocks.js:44 -msgid "The Not block is the logical not operator." -msgstr "" - -#: js/BooleanBlocks.js:62 -msgid "not" -msgstr "" - -#: js/BooleanBlocks.js:134 -msgid "The And block is the logical and operator." -msgstr "" - -#: js/BooleanBlocks.js:152 -msgid "and" -msgstr "" - -#: js/BooleanBlocks.js:218 -msgid "The Or block is the logical or operator." -msgstr "" - -#: js/BooleanBlocks.js:236 -msgid "or" -msgstr "" - -#: js/BooleanBlocks.js:302 -msgid "The XOR block is the logical XOR operator." -msgstr "" - -#: js/BooleanBlocks.js:320 -msgid "xor" -msgstr "" - -#: js/BooleanBlocks.js:808 -msgid "The Equal block returns True if the two numbers are equal." -msgstr "" - -#: js/BooleanBlocks.js:909 -msgid "The Not-equal-to block returns True if the two numbers are not equal to each other." -msgstr "" - -#: js/BooleanBlocks.js:1008 -msgid "The Boolean block is used to specify true or false." -msgstr "" - -#: js/MediaBlocks.js:35 -#.TRANS: right side of the screen -msgid "right (screen)" -msgstr "" - -#: js/MediaBlocks.js:45 -#: js/MediaBlocks.js:56 -msgid "The Right block returns the position of the right of the canvas." -msgstr "" - -#: js/MediaBlocks.js:97 -#.TRANS: left side of the screen -msgid "left (screen)" -msgstr "" - -#: js/MediaBlocks.js:107 -#: js/MediaBlocks.js:118 -msgid "The Left block returns the position of the left of the canvas." -msgstr "" - -#: js/MediaBlocks.js:158 -msgid "top (screen)" -msgstr "" - -#: js/MediaBlocks.js:168 -#: js/MediaBlocks.js:179 -msgid "The Top block returns the position of the top of the canvas." -msgstr "" - -#: js/MediaBlocks.js:219 -msgid "bottom (screen)" +#: js/blocks/ExtrasBlocks.js:33 +msgid "fraction" msgstr "" -#: js/MediaBlocks.js:229 -#: js/MediaBlocks.js:240 -msgid "The Bottom block returns the position of the bottom of the canvas." +#: js/blocks/ExtrasBlocks.js:36 +msgid "Convert a float to a fraction" msgstr "" -#: js/MediaBlocks.js:282 -msgid "width" +#: js/blocks/ExtrasBlocks.js:93 +msgid "save as ABC" msgstr "" -#: js/MediaBlocks.js:291 -msgid "The Width block returns the width of the canvas." +#: js/blocks/ExtrasBlocks.js:96 +#: js/blocks/ExtrasBlocks.js:132 +#: js/blocks/ExtrasBlocks.js:168 +msgid "title" msgstr "" -#: js/MediaBlocks.js:325 -msgid "height" +#: js/blocks/ExtrasBlocks.js:129 +msgid "save as Lilypond" msgstr "" -#: js/MediaBlocks.js:334 -msgid "The Height block returns the height of the canvas." +#: js/blocks/ExtrasBlocks.js:165 +msgid "save as SVG" msgstr "" -#: js/MediaBlocks.js:369 -#.TRANS: stops playback of an audio recording -msgid "stop play" +#: js/blocks/ExtrasBlocks.js:216 +msgid "no background" msgstr "" -#: js/MediaBlocks.js:404 -#.TRANS: Erases the images and text -msgid "erase media" +#: js/blocks/ExtrasBlocks.js:219 +msgid "The No background block eliminates the background from the saved SVG output." msgstr "" -#: js/MediaBlocks.js:409 -msgid "The Erase Media block erases text and images." +#: js/blocks/ExtrasBlocks.js:247 +msgid "show blocks" msgstr "" -#: js/MediaBlocks.js:439 -#.TRANS: play an audio recording -msgid "play back" +#: js/blocks/ExtrasBlocks.js:249 +msgid "The Show blocks block shows the blocks." msgstr "" -#: js/MediaBlocks.js:487 -msgid "speak" +#: js/blocks/ExtrasBlocks.js:274 +msgid "hide blocks" msgstr "" -#: js/MediaBlocks.js:495 -msgid "The Speak block outputs to the text-to-speech synthesizer" +#: js/blocks/ExtrasBlocks.js:276 +msgid "The Hide blocks block hides the blocks." msgstr "" -#: js/MediaBlocks.js:546 -msgid "camera" +#: js/blocks/ExtrasBlocks.js:305 +#: js/blocks/ExtrasBlocks.js:338 +msgid "The Space block is used to add space between blocks." msgstr "" -#: js/MediaBlocks.js:551 -msgid "The Camera block connects a webcam to the Show block." +#: js/blocks/ExtrasBlocks.js:376 +msgid "wait" msgstr "" -#: js/MediaBlocks.js:574 -msgid "video" +#: js/blocks/ExtrasBlocks.js:379 +msgid "The Wait block pauses the program for a specified number of seconds." msgstr "" -#: js/MediaBlocks.js:579 -msgid "The Video block selects video for use with the Show block." +#: js/blocks/ExtrasBlocks.js:433 +#: plugins/facebook.rtp:30 +msgid "comment" msgstr "" -#: js/MediaBlocks.js:607 -msgid "The Open file block opens a file for use with the Show block." +#: js/blocks/ExtrasBlocks.js:469 +msgid "print" msgstr "" -#: js/MediaBlocks.js:645 -msgid "stop media" +#: js/blocks/ExtrasBlocks.js:476 +msgid "The Print block displays text at the top of the screen." msgstr "" -#: js/MediaBlocks.js:650 -msgid "The Stop media block stops audio or video playback." +#: js/blocks/ExtrasBlocks.js:582 +msgid "display grid" msgstr "" -#: js/MediaBlocks.js:679 -#: js/PitchBlocks.js:1539 -#: js/phrasemaker.js:822 -#: js/musickeyboard.js:1654 -#.TRANS: a measure of frequency: one cycle per second -msgid "hertz" +#: js/blocks/ExtrasBlocks.js:587 +msgid "The Display Grid Block changes the grid type" msgstr "" -#: js/MediaBlocks.js:692 -msgid "duration (ms)" +#: js/blocks/ExtrasBlocks.js:689 +#: js/blocks/ExtrasBlocks.js:708 +#: js/blocks/ExtrasBlocks.js:731 +#: js/blocks/ExtrasBlocks.js:754 +#: js/blocks/ExtrasBlocks.js:772 +#: js/blocks/ExtrasBlocks.js:791 +#: js/blocks/ExtrasBlocks.js:810 +#: js/blocks/ExtrasBlocks.js:829 +msgid "unknown" msgstr "" -#: js/MediaBlocks.js:728 -#.TRANS: translate a note into hertz, e.g., A4 -> 440HZ -msgid "note to frequency" +#: js/blocks/FlowBlocks.js:41 +msgid "The Backward block runs code in reverse order (Musical retrograde)." msgstr "" -#: js/MediaBlocks.js:736 -msgid "The To frequency block converts a pitch name and octave to Hertz." +#: js/blocks/FlowBlocks.js:48 +msgid "backward" msgstr "" -#: js/MediaBlocks.js:746 -#: js/PitchBlocks.js:656 -#: js/PitchBlocks.js:932 -#: js/PitchBlocks.js:1827 -#.TRANS: name2 is name as in name of pitch (JAPANESE ONLY) -msgid "name2" +#: js/blocks/FlowBlocks.js:124 +msgid "The Duplicate block will run each block multiple times." msgstr "" -#: js/MediaBlocks.js:812 -msgid "The Avatar block is used to change the appearance of the mouse." +#: js/blocks/FlowBlocks.js:136 +msgid "duplicate" msgstr "" -#: js/MediaBlocks.js:819 -msgid "The Avatar block is used to change the appearance of the turtle." +#: js/blocks/FlowBlocks.js:334 +msgid "The Default block is used inside of a Switch to define the default action." msgstr "" -#: js/MediaBlocks.js:831 -#: js/MediaBlocks.js:891 -#.TRANS: a media object -msgid "size" +#: js/blocks/FlowBlocks.js:342 +msgid "default" msgstr "" -#: js/MediaBlocks.js:831 -msgid "image" +#: js/blocks/FlowBlocks.js:361 +#: js/blocks/FlowBlocks.js:418 +msgid "The Case Block must be used inside of a Switch Block." msgstr "" -#: js/MediaBlocks.js:880 -msgid "The Show block is used to display text or images on the canvas." +#: js/blocks/FlowBlocks.js:389 +msgid "The Case block is used inside of a Switch to define matches." msgstr "" -#: js/MediaBlocks.js:888 -#.TRANS: show1 is show as in display an image or text on the screen. -msgid "show1" +#: js/blocks/FlowBlocks.js:397 +msgid "case" msgstr "" -#: js/MediaBlocks.js:891 -msgid "obj" +#: js/blocks/FlowBlocks.js:446 +msgid "The Switch block will run the code in the matching Case." msgstr "" -#: js/MediaBlocks.js:938 -msgid "The Media block is used to import an image." +#: js/blocks/FlowBlocks.js:454 +msgid "switch" msgstr "" -#: js/MediaBlocks.js:973 -msgid "The Text block holds a text string." +#: js/blocks/FlowBlocks.js:595 +msgid "The Stop block will stop a loop" msgstr "" -#: js/ProgramBlocks.js:33 -msgid "The Load-heap-from-app block loads the heap from a web page." +#: js/blocks/FlowBlocks.js:597 +msgid "Forever, Repeat, While, or Until." msgstr "" -#: js/ProgramBlocks.js:44 -#.TRANS: load the heap contents from a URL -msgid "load heap from App" +#: js/blocks/FlowBlocks.js:604 +#: js/widgets/timbre.js:417 +#: js/widgets/timbre.js:419 +#: js/widgets/musickeyboard.js:819 +#: js/widgets/musickeyboard.js:821 +#: js/widgets/phrasemaker.js:4202 +#: plugins/rodi.rtp:29 +#: plugins/rodi.rtp:73 +#: plugins/rodi.rtp:413 +msgid "stop" msgstr "" -#: js/ProgramBlocks.js:95 -msgid "Error parsing JSON data:" +#: js/blocks/FlowBlocks.js:653 +msgid "The Waitfor block will wait until the condition is true." msgstr "" -#: js/ProgramBlocks.js:100 -msgid "404: Page not found" +#: js/blocks/FlowBlocks.js:661 +msgid "wait for" msgstr "" -#: js/ProgramBlocks.js:133 -msgid "The Save-heap-to-app block saves the heap to a web page." +#: js/blocks/FlowBlocks.js:732 +msgid "The Until block will repeat until the condition is true." msgstr "" -#: js/ProgramBlocks.js:144 -#.TRANS: save the heap contents to a URL -msgid "save heap to App" +#: js/blocks/FlowBlocks.js:740 +msgid "until" msgstr "" -#: js/ProgramBlocks.js:189 -msgid "Cannot find a valid heap for" +#: js/blocks/FlowBlocks.js:742 +#: js/blocks/FlowBlocks.js:822 +msgid "do2" msgstr "" -#: js/ProgramBlocks.js:206 -msgid "The Load-heap block loads the heap from a file." +#: js/blocks/FlowBlocks.js:812 +msgid "The While block will repeat while the condition is true." msgstr "" -#: js/ProgramBlocks.js:217 -#.TRANS: load the heap from a file -msgid "load heap" +#: js/blocks/FlowBlocks.js:820 +msgid "while" msgstr "" -#: js/ProgramBlocks.js:270 -msgid "The file you selected does not contain a valid heap." +#: js/blocks/FlowBlocks.js:903 +#: js/blocks/FlowBlocks.js:968 +#: js/blocks/FlowBlocks.js:979 +msgid "In this example if the mouse button is pressed a snare drum will play." msgstr "" -#: js/ProgramBlocks.js:275 -msgid "The loadHeap block needs a loadFile block." +#: js/blocks/FlowBlocks.js:925 +#: js/blocks/FlowBlocks.js:988 +msgid "if" msgstr "" -#: js/ProgramBlocks.js:291 -msgid "The Set-heap block loads the heap." +#: js/blocks/FlowBlocks.js:927 +#: js/blocks/FlowBlocks.js:990 +msgid "then" msgstr "" -#: js/ProgramBlocks.js:299 -#: js/HeapBlocks.js:539 -#.TRANS: load the heap from a JSON encoding -msgid "set heap" +#: js/blocks/FlowBlocks.js:927 +msgid "else" msgstr "" -#: js/ProgramBlocks.js:340 -msgid "The block you selected does not contain a valid heap." +#: js/blocks/FlowBlocks.js:1025 +msgid "The Forever block will repeat the contained blocks forever." msgstr "" -#: js/ProgramBlocks.js:343 -msgid "The Set heap block needs a heap." +#: js/blocks/FlowBlocks.js:1037 +msgid "forever" msgstr "" -#: js/ProgramBlocks.js:360 -msgid "The Load-dictionary block loads a dictionary from a file." +#: js/blocks/FlowBlocks.js:1073 +msgid "The Repeat block will repeat the contained blocks." msgstr "" -#: js/ProgramBlocks.js:372 -#.TRANS: load a dictionary from a file -msgid "load dictionary" +#: js/blocks/FlowBlocks.js:1075 +msgid "In this example the note will be played 4 times." msgstr "" -#: js/ProgramBlocks.js:390 -#: js/ProgramBlocks.js:658 -#: js/ToneBlocks.js:1025 -msgid "file" +#: js/blocks/FlowBlocks.js:1083 +msgid "repeat" msgstr "" -#: js/ProgramBlocks.js:396 -#: js/ProgramBlocks.js:501 -#: js/ProgramBlocks.js:664 -#: js/DictBlocks.js:80 -#: js/DictBlocks.js:145 -#: js/DictBlocks.js:216 -#: js/DictBlocks.js:290 -msgid "My Dictionary" +#: js/blocks/FlowBlocks.js:1123 +msgid "duplicate factor" msgstr "" -#: js/ProgramBlocks.js:444 -msgid "The file you selected does not contain a valid dictionary." +#: js/blocks/HeapBlocks.js:49 +msgid "The Heap block returns the heap." msgstr "" -#: js/ProgramBlocks.js:449 -msgid "The load dictionary block needs a load file block." +#: js/blocks/HeapBlocks.js:133 +msgid "show heap" msgstr "" -#: js/ProgramBlocks.js:466 -msgid "The Set-dictionary block loads a dictionary." +#: js/blocks/HeapBlocks.js:181 +msgid "The Heap-length block returns the length of the heap." msgstr "" -#: js/ProgramBlocks.js:477 -#.TRANS: load a dictionary from a JSON -msgid "set dictionary" +#: js/blocks/HeapBlocks.js:195 +msgid "heap length" msgstr "" -#: js/ProgramBlocks.js:546 -msgid "The block you selected does not contain a valid dictionary." +#: js/blocks/HeapBlocks.js:254 +msgid "The Heap-empty? block returns true if the heap is empty." msgstr "" -#: js/ProgramBlocks.js:550 -msgid "The set dictionary block needs a dictionary." +#: js/blocks/HeapBlocks.js:268 +#.TRANS: Is the heap empty? +msgid "heap empty?" msgstr "" -#: js/ProgramBlocks.js:567 -msgid "The Save-heap block saves the heap to a file." +#: js/blocks/HeapBlocks.js:317 +msgid "The Empty-heap block empties the heap." msgstr "" -#: js/ProgramBlocks.js:578 -#.TRANS: save the heap to a file -msgid "save heap" +#: js/blocks/HeapBlocks.js:327 +#: js/blocks/HeapBlocks.js:647 +#.TRANS: empty the heap +msgid "empty heap" msgstr "" -#: js/ProgramBlocks.js:629 -msgid "The Save-dictionary block saves a dictionary to a file." +#: js/blocks/HeapBlocks.js:371 +msgid "The Reverse-heap block reverses the order of the heap." msgstr "" -#: js/ProgramBlocks.js:640 -#.TRANS: save a dictionary to a file -msgid "save dictionary" +#: js/blocks/HeapBlocks.js:384 +#.TRANS: reverse the order of the heap +msgid "reverse heap" msgstr "" -#: js/ProgramBlocks.js:720 -msgid "The Open palette block opens a palette." +#: js/blocks/HeapBlocks.js:428 +msgid "The Index-heap block returns a value in the heap at a specified location." msgstr "" -#: js/ProgramBlocks.js:727 -msgid "open palette" +#: js/blocks/HeapBlocks.js:443 +#.TRANS: retrieve a value from the heap at index position in the heap +msgid "index heap" msgstr "" -#: js/ProgramBlocks.js:785 -msgid "The Delete block block removes a block." +#: js/blocks/HeapBlocks.js:523 +msgid "The Set-heap entry block sets a value in he heap at the specified location." msgstr "" -#: js/ProgramBlocks.js:797 -#.TRANS: Move this block to the trash. -msgid "delete block" +#: js/blocks/HeapBlocks.js:539 +#: js/blocks/ProgramBlocks.js:299 +#.TRANS: load the heap from a JSON encoding +msgid "set heap" msgstr "" -#: js/ProgramBlocks.js:861 -msgid "The Move block block moves a block." +#: js/blocks/HeapBlocks.js:619 +msgid "The Pop block removes the value at the top of the heap." msgstr "" -#: js/ProgramBlocks.js:869 -#.TRANS: Move the position of a block on the screen. -msgid "move block" +#: js/blocks/HeapBlocks.js:633 +#.TRANS: pop a value off the top of the heap +msgid "pop" msgstr "" -#: js/ProgramBlocks.js:881 -#: js/ProgramBlocks.js:1048 -msgid "block number" +#: js/blocks/HeapBlocks.js:680 +msgid "The Push block adds a value to the top of the heap." msgstr "" -#: js/ProgramBlocks.js:935 -#.TRANS: Run program beginning at this block. -msgid "run block" +#: js/blocks/HeapBlocks.js:696 +#.TRANS: push a value onto the top of the heap +msgid "push" msgstr "" -#: js/ProgramBlocks.js:1025 -msgid "The Dock block block connections two blocks." +#: js/blocks/IntervalsBlocks.js:45 +msgid "set temperament" msgstr "" -#: js/ProgramBlocks.js:1036 -#.TRANS: We can connect a block to another block. -msgid "connect blocks" +#: js/blocks/IntervalsBlocks.js:63 +#: js/blocks/MediaBlocks.js:746 +#: js/blocks/PitchBlocks.js:657 +#: js/blocks/PitchBlocks.js:935 +#: js/blocks/PitchBlocks.js:974 +#: js/blocks/PitchBlocks.js:1007 +#: js/blocks/PitchBlocks.js:1194 +#: js/blocks/PitchBlocks.js:1717 +#: js/blocks/PitchBlocks.js:1758 +#: js/blocks/PitchBlocks.js:1866 +#: js/blocks/ToneBlocks.js:1025 +#: js/turtleactions/IntervalsActions.js:114 +#.TRANS: adjusts the shift up or down by one octave (twelve half-steps in the interval between two notes, one having twice or half the frequency in Hz of the other.) +msgid "octave" msgstr "" -#: js/ProgramBlocks.js:1048 -msgid "target block" +#: js/blocks/IntervalsBlocks.js:99 +msgid "The Temperament name block is used to select a tuning method." msgstr "" -#: js/ProgramBlocks.js:1048 -msgid "connection number" +#: js/blocks/IntervalsBlocks.js:161 +msgid "doubly" msgstr "" -#: js/ProgramBlocks.js:1140 -msgid "The Make block block creates a new block." +#: js/blocks/IntervalsBlocks.js:166 +msgid "The Doubly block will double the size of an interval." msgstr "" -#: js/ProgramBlocks.js:1152 -#.TRANS: Create a new block -msgid "make block" +#: js/blocks/IntervalsBlocks.js:262 +msgid "interval number" msgstr "" -#: js/ProgramBlocks.js:1186 -#: js/ProgramBlocks.js:1227 -#: js/RhythmBlocks.js:1128 -#: js/PitchBlocks.js:972 -#: js/PitchBlocks.js:1005 -#: js/temperament.js:340 -#: js/temperament.js:362 -#: js/temperament.js:372 -#: js/temperament.js:484 -#: js/status.js:190 -#: plugins/rodi.rtp:192 -#.TRANS: a musical note consisting of pitch and duration -msgid "note" +#: js/blocks/IntervalsBlocks.js:317 +msgid "current interval" msgstr "" -#: js/ProgramBlocks.js:1285 -msgid "Cannot find block" +#: js/blocks/IntervalsBlocks.js:387 +#.TRANS: measure the distance between two pitches in semi-tones +msgid "semi-tone interval measure" msgstr "" -#: js/ProgramBlocks.js:1304 -#: js/ProgramBlocks.js:1313 -msgid "Warning: block argument type mismatch" +#: js/blocks/IntervalsBlocks.js:454 +#: js/blocks/IntervalsBlocks.js:570 +msgid "You must use two pitch blocks when measuring an interval." msgstr "" -#: js/ProgramBlocks.js:1347 -msgid "The Open project block is used to open a project from a web page." +#: js/blocks/IntervalsBlocks.js:496 +msgid "The Scalar interval block measures the distance between two notes in the current key and mode." msgstr "" -#: js/ProgramBlocks.js:1357 -msgid "open project" +#: js/blocks/IntervalsBlocks.js:502 +#.TRANS: measure the distance between two pitches in steps of musical scale +msgid "scalar interval measure" msgstr "" -#: js/ProgramBlocks.js:1410 -msgid "Please enter a valid URL." +#: js/blocks/IntervalsBlocks.js:678 +msgid "In the figure, we add sol# to sol." msgstr "" -#: js/DrumBlocks.js:59 -msgid "The Noise name block is used to select a noise synthesizer." +#: js/blocks/IntervalsBlocks.js:684 +#: js/blocks/OrnamentBlocks.js:220 +#.TRANS: calculate a relative step between notes based on semi-tones +msgid "semi-tone interval" msgstr "" -#: js/DrumBlocks.js:102 -msgid "The Drum name block is used to select a drum." +#: js/blocks/IntervalsBlocks.js:733 +msgid "The output of the example is: do, mi, sol, sol, ti, mi" msgstr "" -#: js/DrumBlocks.js:146 -msgid "The Effects name block is used to select a sound effect." +#: js/blocks/IntervalsBlocks.js:740 +#: js/blocks/WidgetBlocks.js:768 +msgid "arpeggio" msgstr "" -#: js/DrumBlocks.js:163 -msgid "noise" +#: js/blocks/IntervalsBlocks.js:931 +msgid "The Chord block calculates common chords." msgstr "" -#: js/DrumBlocks.js:177 -msgid "The Play noise block will generate white, pink, or brown noise." +#: js/blocks/IntervalsBlocks.js:933 +msgid "In the figure, we generate a C-major chord." msgstr "" -#: js/DrumBlocks.js:191 -#: js/musicutils.js:752 -#: js/synthutils.js:47 -#.TRANS: white noise synthesizer -msgid "white noise" +#: js/blocks/IntervalsBlocks.js:938 +msgid "chord" msgstr "" -#: js/DrumBlocks.js:326 -msgid "Replace every instance of a pitch with a drum sound." +#: js/blocks/IntervalsBlocks.js:990 +msgid "The Ratio Interval block calculates an interval based on a ratio." msgstr "" -#: js/DrumBlocks.js:337 -#.TRANS: map a pitch to a drum sound -msgid "map pitch to drum" +#: js/blocks/IntervalsBlocks.js:995 +msgid "ratio interval" msgstr "" -#: js/DrumBlocks.js:404 -msgid "In the example above, a kick drum sound will be played instead of sol." +#: js/blocks/IntervalsBlocks.js:1064 +msgid "In the figure, we add la to sol." msgstr "" -#: js/DrumBlocks.js:416 -#.TRANS: set the current drum sound for playback -msgid "set drum" +#: js/blocks/IntervalsBlocks.js:1120 +#.TRANS: define a custom mode +msgid "define mode" msgstr "" -#: js/DrumBlocks.js:460 -msgid "sound effect" +#: js/blocks/IntervalsBlocks.js:1173 +msgid "movable Do" msgstr "" -#: js/DrumBlocks.js:498 -msgid "You can use multiple Drum blocks within a Note block." +#: js/blocks/IntervalsBlocks.js:1224 +#.TRANS: mode length is the number of notes in the mode, e.g., 7 for major and minor scales; 12 for chromatic scales +msgid "mode length" msgstr "" -#: js/RhythmBlocks.js:182 -#: js/RhythmBlocks.js:1086 -#: js/RhythmBlocks.js:1162 -msgid "Note value must be greater than 0." +#: js/blocks/IntervalsBlocks.js:1233 +msgid "The Mode length block is the number of notes in the current scale." msgstr "" -#: js/RhythmBlocks.js:215 -#: js/RhythmBlocks.js:278 -#: js/RhythmBlocks.js:350 -#.TRANS: swing is a rhythmic variation that emphasises the offbeat -msgid "swing" +#: js/blocks/IntervalsBlocks.js:1235 +msgid "Most Western scales have 7 notes." msgstr "" -#: js/RhythmBlocks.js:355 -#.TRANS: the amount to shift to the offbeat note -msgid "swing value" +#: js/blocks/IntervalsBlocks.js:1284 +#.TRANS: the mode in music is 'major', 'minor', etc. +msgid "current mode" msgstr "" -#: js/RhythmBlocks.js:419 -msgid "The Skip notes block will cause notes to be skipped." +#: js/blocks/IntervalsBlocks.js:1337 +#.TRANS: the key is a group of pitches with which a music composition is created +msgid "current key" msgstr "" -#: js/RhythmBlocks.js:427 -#.TRANS: substitute rests on notes being skipped -msgid "skip notes" +#: js/blocks/IntervalsBlocks.js:1389 +#: js/blocks/IntervalsBlocks.js:1434 +#.TRANS: set the key and mode, e.g. C Major +msgid "set key" msgstr "" -#: js/RhythmBlocks.js:489 -#.TRANS: speed up note duration by some factor, e.g. convert 1/4 to 1/8 notes by using a factor of 2 -msgid "multiply note value" +#: js/blocks/IntervalsBlocks.js:1443 +#: js/blocks/IntervalsBlocks.js:1449 +msgid "The Set key block is used to set the key and mode," msgstr "" -#: js/RhythmBlocks.js:542 -msgid "The Tie block works on pairs of notes, combining them into one note." +#: js/blocks/IntervalsBlocks.js:1449 +msgid "eg C Major" msgstr "" -#: js/RhythmBlocks.js:550 -#.TRANS: tie notes together into one longer note -msgid "tie" +#: js/blocks/MediaBlocks.js:35 +#.TRANS: right side of the screen +msgid "right (screen)" msgstr "" -#: js/RhythmBlocks.js:591 -#: js/RhythmBlocks.js:671 -#.TRANS: a dotted note is played for 1.5x its value, e.g., 1/8. --> 3/16 -msgid "dot" +#: js/blocks/MediaBlocks.js:45 +#: js/blocks/MediaBlocks.js:56 +msgid "The Right block returns the position of the right of the canvas." msgstr "" -#: js/RhythmBlocks.js:619 -#: js/RhythmActions.js:221 -msgid "An argument of -1 results in a note value of 0." +#: js/blocks/MediaBlocks.js:97 +#.TRANS: left side of the screen +msgid "left (screen)" msgstr "" -#: js/RhythmBlocks.js:661 -msgid "The Dot block extends the duration of a note by 50%." +#: js/blocks/MediaBlocks.js:107 +#: js/blocks/MediaBlocks.js:118 +msgid "The Left block returns the position of the left of the canvas." msgstr "" -#: js/RhythmBlocks.js:663 -msgid "Eg a dotted quarter note will play for 3/8 (1/4 + 1/8) of a beat." +#: js/blocks/MediaBlocks.js:158 +msgid "top (screen)" msgstr "" -#: js/RhythmBlocks.js:765 -#.TRANS: Japanese only: note value block for drum -msgid "note value drum" +#: js/blocks/MediaBlocks.js:168 +#: js/blocks/MediaBlocks.js:179 +msgid "The Top block returns the position of the top of the canvas." msgstr "" -#: js/RhythmBlocks.js:829 -msgid "392 hertz" +#: js/blocks/MediaBlocks.js:219 +msgid "bottom (screen)" msgstr "" -#: js/RhythmBlocks.js:1119 -msgid "The Note block is a container for one or more Pitch blocks." +#: js/blocks/MediaBlocks.js:229 +#: js/blocks/MediaBlocks.js:240 +msgid "The Bottom block returns the position of the bottom of the canvas." msgstr "" -#: js/RhythmBlocks.js:1121 -msgid "The Note block specifies the duration (note value) of its contents." +#: js/blocks/MediaBlocks.js:282 +msgid "width" msgstr "" -#: js/RhythmBlocks.js:1130 -msgid "value2" +#: js/blocks/MediaBlocks.js:291 +msgid "The Width block returns the width of the canvas." msgstr "" -#: js/RhythmBlocks.js:1200 -msgid "define frequency" +#: js/blocks/MediaBlocks.js:325 +msgid "height" msgstr "" -#: js/RhythmBlocks.js:1218 -#: js/temperament.js:650 -#: js/temperament.js:1421 -msgid "octave space" +#: js/blocks/MediaBlocks.js:334 +msgid "The Height block returns the height of the canvas." msgstr "" -#: js/NumberBlocks.js:28 -msgid "The Int block returns an integer." +#: js/blocks/MediaBlocks.js:369 +#.TRANS: stops playback of an audio recording +msgid "stop play" msgstr "" -#: js/NumberBlocks.js:34 -msgid "int" +#: js/blocks/MediaBlocks.js:404 +#.TRANS: Erases the images and text +msgid "erase media" msgstr "" -#: js/NumberBlocks.js:73 -msgid "The Mod block returns the remainder from a division." +#: js/blocks/MediaBlocks.js:409 +msgid "The Erase Media block erases text and images." msgstr "" -#: js/NumberBlocks.js:79 -msgid "mod" +#: js/blocks/MediaBlocks.js:439 +#.TRANS: play an audio recording +msgid "play back" msgstr "" -#: js/NumberBlocks.js:123 -msgid "The Power block calculates a power function." +#: js/blocks/MediaBlocks.js:487 +msgid "speak" msgstr "" -#: js/NumberBlocks.js:178 -msgid "The Sqrt block returns the square root." +#: js/blocks/MediaBlocks.js:495 +msgid "The Speak block outputs to the text-to-speech synthesizer" msgstr "" -#: js/NumberBlocks.js:184 -msgid "sqrt" +#: js/blocks/MediaBlocks.js:546 +msgid "camera" msgstr "" -#: js/NumberBlocks.js:230 -msgid "The Abs block returns the absolute value." +#: js/blocks/MediaBlocks.js:551 +msgid "The Camera block connects a webcam to the Show block." msgstr "" -#: js/NumberBlocks.js:236 -msgid "abs" +#: js/blocks/MediaBlocks.js:574 +msgid "video" msgstr "" -#: js/NumberBlocks.js:277 -msgid "The Distance block returns the distance between two points. For example, between the mouse and the center of the screen." +#: js/blocks/MediaBlocks.js:579 +msgid "The Video block selects video for use with the Show block." msgstr "" -#: js/NumberBlocks.js:283 -#: plugins/rodi.rtp:310 -msgid "distance" +#: js/blocks/MediaBlocks.js:607 +msgid "The Open file block opens a file for use with the Show block." msgstr "" -#: js/NumberBlocks.js:343 -msgid "The Divide block is used to divide." +#: js/blocks/MediaBlocks.js:645 +msgid "stop media" msgstr "" -#: js/NumberBlocks.js:411 -msgid "The Multiply block is used to multiply." +#: js/blocks/MediaBlocks.js:650 +msgid "The Stop media block stops audio or video playback." msgstr "" -#: js/NumberBlocks.js:554 -msgid "The Minus block is used to subtract." +#: js/blocks/MediaBlocks.js:679 +#: js/blocks/PitchBlocks.js:1577 +#: js/widgets/musickeyboard.js:1936 +#: js/widgets/phrasemaker.js:1037 +#.TRANS: a measure of frequency: one cycle per second +msgid "hertz" msgstr "" -#: js/NumberBlocks.js:647 -msgid "The Plus block is used to add." +#: js/blocks/MediaBlocks.js:692 +#: js/blocks/WidgetBlocks.js:182 +#: js/widgets/temperament.js:506 +#: js/widgets/temperament.js:546 +#: js/widgets/temperament.js:610 +#: js/widgets/temperament.js:618 +#: js/widgets/temperament.js:1505 +#: js/widgets/timbre.js:1842 +msgid "frequency" msgstr "" -#: js/NumberBlocks.js:773 -msgid "The One-of block returns one of two choices." +#: js/blocks/MediaBlocks.js:692 +msgid "duration (ms)" msgstr "" -#: js/NumberBlocks.js:780 -#: js/PitchBlocks.js:616 -msgid "one of" +#: js/blocks/MediaBlocks.js:728 +#.TRANS: translate a note into hertz, e.g., A4 -> 440HZ +msgid "note to frequency" msgstr "" -#: js/NumberBlocks.js:782 -msgid "this" +#: js/blocks/MediaBlocks.js:736 +msgid "The To frequency block converts a pitch name and octave to Hertz." msgstr "" -#: js/NumberBlocks.js:782 -msgid "that" +#: js/blocks/MediaBlocks.js:746 +#: js/blocks/PitchBlocks.js:656 +#: js/blocks/PitchBlocks.js:934 +#: js/blocks/PitchBlocks.js:1866 +#.TRANS: name2 is name as in name of pitch (JAPANESE ONLY) +msgid "name2" msgstr "" -#: js/NumberBlocks.js:837 -msgid "The Random block returns a random number." +#: js/blocks/MediaBlocks.js:812 +msgid "The Avatar block is used to change the appearance of the mouse." msgstr "" -#: js/NumberBlocks.js:844 -msgid "random" +#: js/blocks/MediaBlocks.js:819 +msgid "The Avatar block is used to change the appearance of the turtle." msgstr "" -#: js/NumberBlocks.js:846 -msgid "min" +#: js/blocks/MediaBlocks.js:831 +#: js/blocks/MediaBlocks.js:891 +#.TRANS: a media object +msgid "size" msgstr "" -#: js/NumberBlocks.js:846 -msgid "max" +#: js/blocks/MediaBlocks.js:831 +msgid "image" msgstr "" -#: js/NumberBlocks.js:910 -msgid "The Number block holds a number." +#: js/blocks/MediaBlocks.js:880 +msgid "The Show block is used to display text or images on the canvas." msgstr "" -#: js/BoxesBlocks.js:53 -#: js/BoxesBlocks.js:59 -msgid "The Add-to block is used to add to the value stored in a box." +#: js/blocks/MediaBlocks.js:888 +#.TRANS: show1 is show as in display an image or text on the screen. +msgid "show1" msgstr "" -#: js/BoxesBlocks.js:61 -msgid "It can also be used with other blocks such as Color and Pen size." +#: js/blocks/MediaBlocks.js:891 +msgid "obj" msgstr "" -#: js/BoxesBlocks.js:73 -msgid "add" +#: js/blocks/MediaBlocks.js:938 +msgid "The Media block is used to import an image." msgstr "" -#: js/BoxesBlocks.js:75 -#: js/temperament.js:716 -msgid "to" +#: js/blocks/MediaBlocks.js:973 +msgid "The Text block holds a text string." msgstr "" -#: js/BoxesBlocks.js:75 -#: js/BoxesBlocks.js:595 -#: js/HeapBlocks.js:544 -msgid "value1" +#: js/blocks/MeterBlocks.js:34 +#.TRANS: musical meter (time signature), e.g., 4:4 +msgid "current meter" msgstr "" -#: js/BoxesBlocks.js:118 -msgid "Block does not support incrementing." +#: js/blocks/MeterBlocks.js:85 +#.TRANS: number of beats per minute +msgid "beat factor" msgstr "" -#: js/BoxesBlocks.js:152 -msgid "The Add-1-to block adds one to the value stored in a box." +#: js/blocks/MeterBlocks.js:161 +msgid "The Beats per minute block returns the current beats per minute." msgstr "" -#: js/BoxesBlocks.js:163 -msgid "add 1 to" +#: js/blocks/MeterBlocks.js:169 +#: js/widgets/status.js:152 +#.TRANS: number of beats played per minute +msgid "beats per minute2" msgstr "" -#: js/BoxesBlocks.js:211 -msgid "The Subtract-1-from block subtracts one from the value stored in a box." +#: js/blocks/MeterBlocks.js:169 +#: js/blocks/MeterBlocks.js:1056 +#: js/blocks/MeterBlocks.js:1133 +#: js/blocks/MeterBlocks.js:1211 +#.TRANS: sets tempo by defining a beat and beats per minute +msgid "beats per minute" msgstr "" -#: js/BoxesBlocks.js:222 -msgid "subtract 1 from" +#: js/blocks/MeterBlocks.js:233 +#.TRANS: count of current musical measure in meter +msgid "measure count" msgstr "" -#: js/BoxesBlocks.js:270 -#: js/BoxesBlocks.js:387 -msgid "The Box block returns the value stored in a box." +#: js/blocks/MeterBlocks.js:241 +msgid "The Measure count block returns the current measure." msgstr "" -#: js/BoxesBlocks.js:500 -#: js/BoxesBlocks.js:576 -msgid "The Store in block will store a value in a box." +#: js/blocks/MeterBlocks.js:290 +#.TRANS: count of current beat in the meter +msgid "beat count" msgstr "" -#: js/BoxesBlocks.js:652 -msgid "The Box2 block returns the value stored in Box2." +#: js/blocks/MeterBlocks.js:300 +#: js/blocks/MeterBlocks.js:311 +#: js/blocks/MeterBlocks.js:565 +#: js/blocks/MeterBlocks.js:576 +msgid "The Beat count block is the number of the current beat," msgstr "" -#: js/BoxesBlocks.js:703 -msgid "The Store in Box2 block is used to store a value in Box2." +#: js/blocks/MeterBlocks.js:313 +#: js/blocks/MeterBlocks.js:578 +msgid "eg 1, 2, 3, or 4." msgstr "" -#: js/BoxesBlocks.js:715 -msgid "store in box2" +#: js/blocks/MeterBlocks.js:368 +#.TRANS: count the number of notes +msgid "sum note values" msgstr "" -#: js/BoxesBlocks.js:761 -msgid "The Box1 block returns the value stored in Box1." +#: js/blocks/MeterBlocks.js:376 +#: js/blocks/MeterBlocks.js:440 +msgid "The Note counter block can be used to count the number of contained notes." msgstr "" -#: js/BoxesBlocks.js:812 -msgid "The Store in Box1 block is used to store a value in Box1." +#: js/blocks/MeterBlocks.js:432 +#.TRANS: count the number of notes +msgid "note counter" msgstr "" -#: js/BoxesBlocks.js:826 -msgid "store in box1" +#: js/blocks/MeterBlocks.js:496 +#.TRANS: number of whole notes that have been played +msgid "whole notes played" msgstr "" -#: js/HeapBlocks.js:49 -msgid "The Heap block returns the heap." +#: js/blocks/MeterBlocks.js:505 +msgid "The Whole notes played block returns the total number of whole notes played." msgstr "" -#: js/HeapBlocks.js:133 -msgid "show heap" +#: js/blocks/MeterBlocks.js:555 +#: js/turtleactions/DictActions.js:83 +#.TRANS: number of notes that have been played +msgid "notes played" msgstr "" -#: js/HeapBlocks.js:181 -msgid "The Heap-length block returns the length of the heap." +#: js/blocks/MeterBlocks.js:653 +msgid "The No clock block decouples the notes from the master clock." msgstr "" -#: js/HeapBlocks.js:195 -msgid "heap length" +#: js/blocks/MeterBlocks.js:661 +#.TRANS: don't lock notes to master clock +msgid "no clock" msgstr "" -#: js/HeapBlocks.js:254 -msgid "The Heap-empty? block returns true if the heap is empty." +#: js/blocks/MeterBlocks.js:700 +msgid "on weak beat do" msgstr "" -#: js/HeapBlocks.js:268 -#.TRANS: Is the heap empty? -msgid "heap empty?" +#: js/blocks/MeterBlocks.js:705 +msgid "The On-weak-beat block lets you specify actions to take on weak (off) beats." msgstr "" -#: js/HeapBlocks.js:317 -msgid "The Empty-heap block empties the heap." +#: js/blocks/MeterBlocks.js:750 +msgid "on strong beat" msgstr "" -#: js/HeapBlocks.js:327 -#: js/HeapBlocks.js:647 -#.TRANS: empty the heap -msgid "empty heap" +#: js/blocks/MeterBlocks.js:758 +msgid "The On-strong-beat block lets you specify actions to take on specified beats." msgstr "" -#: js/HeapBlocks.js:371 -msgid "The Reverse-heap block reverses the order of the heap." +#: js/blocks/MeterBlocks.js:769 +msgid "beat" msgstr "" -#: js/HeapBlocks.js:384 -#.TRANS: reverse the order of the heap -msgid "reverse heap" +#: js/blocks/MeterBlocks.js:813 +msgid "on every beat do" msgstr "" -#: js/HeapBlocks.js:428 -msgid "The Index-heap block returns a value in the heap at a specified location." +#: js/blocks/MeterBlocks.js:821 +msgid "The On-every-beat block lets you specify actions to take on every beat." msgstr "" -#: js/HeapBlocks.js:443 -#.TRANS: retrieve a value from the heap at index position in the heap -msgid "index heap" +#: js/blocks/MeterBlocks.js:874 +msgid "on every note do" msgstr "" -#: js/HeapBlocks.js:523 -msgid "The Set-heap entry block sets a value in he heap at the specified location." +#: js/blocks/MeterBlocks.js:882 +msgid "The On-every-note block lets you specify actions to take on every note." msgstr "" -#: js/HeapBlocks.js:619 -msgid "The Pop block removes the value at the top of the heap." +#: js/blocks/MeterBlocks.js:928 +#: js/blocks/MeterBlocks.js:999 +#.TRANS: sets tempo by defining a beat and beats per minute +msgid "master beats per minute" msgstr "" -#: js/HeapBlocks.js:633 -#.TRANS: pop a value off the top of the heap -msgid "pop" +#: js/blocks/MeterBlocks.js:952 +#: js/blocks/MeterBlocks.js:1078 +#: js/blocks/MeterBlocks.js:1135 +msgid "bpm" msgstr "" -#: js/HeapBlocks.js:680 -msgid "The Push block adds a value to the top of the heap." +#: js/blocks/MeterBlocks.js:952 +#: js/blocks/MeterBlocks.js:1078 +#: js/blocks/MeterBlocks.js:1135 +msgid "beat value" msgstr "" -#: js/HeapBlocks.js:696 -#.TRANS: push a value onto the top of the heap -msgid "push" +#: js/blocks/MeterBlocks.js:1024 +#: js/blocks/MeterBlocks.js:1167 +#: js/blocks/MeterBlocks.js:1241 +msgid "Beats per minute must be > 30." msgstr "" -#: js/FlowBlocks.js:41 -msgid "The Backward block runs code in reverse order (Musical retrograde)." +#: js/blocks/MeterBlocks.js:1027 +#: js/blocks/MeterBlocks.js:1170 +#: js/blocks/MeterBlocks.js:1244 +msgid "Maximum beats per minute is 1000." msgstr "" -#: js/FlowBlocks.js:48 -msgid "backward" +#: js/blocks/MeterBlocks.js:1068 +msgid "The Beats per minute block sets the number of 1/4 notes per minute." msgstr "" -#: js/FlowBlocks.js:124 -msgid "The Duplicate block will run each block multiple times." +#: js/blocks/MeterBlocks.js:1279 +#.TRANS: anacrusis +msgid "pickup" msgstr "" -#: js/FlowBlocks.js:136 -msgid "duplicate" +#: js/blocks/MeterBlocks.js:1367 +msgid "number of beats" msgstr "" -#: js/FlowBlocks.js:334 -msgid "The Default block is used inside of a Switch to define the default action." +#: js/blocks/NumberBlocks.js:28 +msgid "The Int block returns an integer." msgstr "" -#: js/FlowBlocks.js:342 -msgid "default" +#: js/blocks/NumberBlocks.js:34 +msgid "int" msgstr "" -#: js/FlowBlocks.js:361 -#: js/FlowBlocks.js:418 -msgid "The Case Block must be used inside of a Switch Block." +#: js/blocks/NumberBlocks.js:73 +msgid "The Mod block returns the remainder from a division." msgstr "" -#: js/FlowBlocks.js:389 -msgid "The Case block is used inside of a Switch to define matches." +#: js/blocks/NumberBlocks.js:79 +msgid "mod" msgstr "" -#: js/FlowBlocks.js:397 -msgid "case" +#: js/blocks/NumberBlocks.js:141 +msgid "The Power block calculates a power function." msgstr "" -#: js/FlowBlocks.js:446 -msgid "The Switch block will run the code in the matching Case." +#: js/blocks/NumberBlocks.js:196 +msgid "The Sqrt block returns the square root." msgstr "" -#: js/FlowBlocks.js:454 -msgid "switch" +#: js/blocks/NumberBlocks.js:202 +msgid "sqrt" msgstr "" -#: js/FlowBlocks.js:595 -msgid "The Stop block will stop a loop" +#: js/blocks/NumberBlocks.js:248 +msgid "The Abs block returns the absolute value." msgstr "" -#: js/FlowBlocks.js:597 -msgid "Forever, Repeat, While, or Until." +#: js/blocks/NumberBlocks.js:254 +msgid "abs" msgstr "" -#: js/FlowBlocks.js:604 -#: js/phrasemaker.js:3799 -#: js/musickeyboard.js:629 -#: js/musickeyboard.js:631 -#: js/timbre.js:417 -#: js/timbre.js:419 -#: plugins/rodi.rtp:29 -#: plugins/rodi.rtp:73 -#: plugins/rodi.rtp:413 -msgid "stop" +#: js/blocks/NumberBlocks.js:295 +msgid "The Distance block returns the distance between two points. For example, between the mouse and the center of the screen." msgstr "" -#: js/FlowBlocks.js:653 -msgid "The Waitfor block will wait until the condition is true." +#: js/blocks/NumberBlocks.js:301 +#: plugins/rodi.rtp:310 +msgid "distance" msgstr "" -#: js/FlowBlocks.js:661 -msgid "wait for" +#: js/blocks/NumberBlocks.js:361 +msgid "The Divide block is used to divide." msgstr "" -#: js/FlowBlocks.js:732 -msgid "The Until block will repeat until the condition is true." +#: js/blocks/NumberBlocks.js:441 +msgid "The Multiply block is used to multiply." msgstr "" -#: js/FlowBlocks.js:740 -msgid "until" +#: js/blocks/NumberBlocks.js:612 +msgid "The Minus block is used to subtract." msgstr "" -#: js/FlowBlocks.js:742 -#: js/FlowBlocks.js:822 -msgid "do2" +#: js/blocks/NumberBlocks.js:723 +msgid "The Plus block is used to add." msgstr "" -#: js/FlowBlocks.js:812 -msgid "The While block will repeat while the condition is true." +#: js/blocks/NumberBlocks.js:849 +msgid "The One-of block returns one of two choices." msgstr "" -#: js/FlowBlocks.js:820 -msgid "while" +#: js/blocks/NumberBlocks.js:856 +#: js/blocks/PitchBlocks.js:616 +msgid "one of" msgstr "" -#: js/FlowBlocks.js:903 -#: js/FlowBlocks.js:968 -#: js/FlowBlocks.js:979 -msgid "In this example if the mouse button is pressed a snare drum will play." +#: js/blocks/NumberBlocks.js:858 +msgid "this" msgstr "" -#: js/FlowBlocks.js:925 -#: js/FlowBlocks.js:988 -msgid "if" +#: js/blocks/NumberBlocks.js:858 +msgid "that" msgstr "" -#: js/FlowBlocks.js:927 -#: js/FlowBlocks.js:990 -msgid "then" +#: js/blocks/NumberBlocks.js:913 +msgid "The Random block returns a random number." msgstr "" -#: js/FlowBlocks.js:927 -msgid "else" +#: js/blocks/NumberBlocks.js:920 +msgid "random" msgstr "" -#: js/FlowBlocks.js:1025 -msgid "The Forever block will repeat the contained blocks forever." +#: js/blocks/NumberBlocks.js:922 +msgid "min" msgstr "" -#: js/FlowBlocks.js:1037 -msgid "forever" +#: js/blocks/NumberBlocks.js:922 +msgid "max" msgstr "" -#: js/FlowBlocks.js:1073 -msgid "The Repeat block will repeat the contained blocks." +#: js/blocks/NumberBlocks.js:986 +msgid "The Number block holds a number." msgstr "" -#: js/FlowBlocks.js:1075 -msgid "In this example the note will be played 4 times." +#: js/blocks/OrnamentBlocks.js:32 +msgid "staccato factor" msgstr "" -#: js/FlowBlocks.js:1083 -msgid "repeat" +#: js/blocks/OrnamentBlocks.js:108 +msgid "slur factor" msgstr "" -#: js/FlowBlocks.js:1123 -msgid "duplicate factor" +#: js/blocks/OrnamentBlocks.js:217 +#: js/blocks/OrnamentBlocks.js:309 +#.TRANS: the neighbor refers to a neighboring note, e.g., D is a neighbor of C +msgid "neighbor" msgstr "" -#: js/PitchBlocks.js:39 -#: js/musicutils.js:722 -#: js/musicutils.js:1117 -#: js/synthutils.js:112 -#.TRANS: square wave -msgid "square" +#: js/blocks/OrnamentBlocks.js:293 +msgid "The Neighbor block rapidly switches between neighboring pitches." msgstr "" -#: js/PitchBlocks.js:62 -#: js/ToneBlocks.js:39 -#: js/musicutils.js:723 -#: js/musicutils.js:1118 -#: js/synthutils.js:116 -#.TRANS: triangle wave -msgid "triangle" +#: js/blocks/OrnamentBlocks.js:364 +msgid "glide" msgstr "" -#: js/PitchBlocks.js:85 -#: js/musicutils.js:721 -#: js/musicutils.js:1116 -#: js/synthutils.js:110 -#.TRANS: sine wave -msgid "sine" +#: js/blocks/OrnamentBlocks.js:479 +#: js/blocks/OrnamentBlocks.js:643 +msgid "slur" msgstr "" -#: js/PitchBlocks.js:108 -#: js/musicutils.js:724 -#: js/musicutils.js:1119 -#: js/synthutils.js:114 -#.TRANS: sawtooth wave -msgid "sawtooth" +#: js/blocks/OrnamentBlocks.js:558 +#: js/blocks/OrnamentBlocks.js:710 +#.TRANS: play each note sharply detached from the others +msgid "staccato" msgstr "" -#: js/PitchBlocks.js:141 -#.TRANS: musical transposition (adjustment of pitch up or down) -msgid "transposition" +#: js/blocks/RhythmBlocks.js:182 +#: js/blocks/RhythmBlocks.js:1086 +#: js/blocks/RhythmBlocks.js:1162 +msgid "Note value must be greater than 0." msgstr "" -#: js/PitchBlocks.js:168 -#.TRANS: step down one note in current musical scale -msgid "scalar step down" +#: js/blocks/RhythmBlocks.js:215 +#: js/blocks/RhythmBlocks.js:278 +#: js/blocks/RhythmBlocks.js:350 +#.TRANS: swing is a rhythmic variation that emphasises the offbeat +msgid "swing" msgstr "" -#: js/PitchBlocks.js:172 -msgid "The Scalar step down block returns the number of semi-tones down to the previous note in the current key and mode." +#: js/blocks/RhythmBlocks.js:355 +#.TRANS: the amount to shift to the offbeat note +msgid "swing value" msgstr "" -#: js/PitchBlocks.js:190 -#.TRANS: step up one note in current musical scale -msgid "scalar step up" +#: js/blocks/RhythmBlocks.js:419 +msgid "The Skip notes block will cause notes to be skipped." msgstr "" -#: js/PitchBlocks.js:194 -msgid "The Scalar step up block returns the number of semi-tones up to the next note in the current key and mode." +#: js/blocks/RhythmBlocks.js:427 +#.TRANS: substitute rests on notes being skipped +msgid "skip notes" msgstr "" -#: js/PitchBlocks.js:212 -#.TRANS: the change measured in half-steps between the current pitch and the previous pitch -msgid "change in pitch" +#: js/blocks/RhythmBlocks.js:489 +#.TRANS: speed up note duration by some factor, e.g. convert 1/4 to 1/8 notes by using a factor of 2 +msgid "multiply note value" msgstr "" -#: js/PitchBlocks.js:216 -msgid "The Change in pitch block is the difference (in half steps) between the current pitch being played and the previous pitch played." +#: js/blocks/RhythmBlocks.js:542 +msgid "The Tie block works on pairs of notes, combining them into one note." msgstr "" -#: js/PitchBlocks.js:243 -#.TRANS: the change measured in scale-steps between the current pitch and the previous pitch -msgid "scalar change in pitch" +#: js/blocks/RhythmBlocks.js:550 +#.TRANS: tie notes together into one longer note +msgid "tie" msgstr "" -#: js/PitchBlocks.js:250 -#: js/PitchBlocks.js:432 -#: js/PitchBlocks.js:1629 -#: js/DictActions.js:89 -#: js/temperament.js:477 -#: js/temperament.js:481 -#: js/temperament.js:714 -#.TRANS: convert current note to piano key (1-88) -#.TRANS: a mapping of pitch to the 88 piano keys -msgid "pitch number" +#: js/blocks/RhythmBlocks.js:591 +#: js/blocks/RhythmBlocks.js:671 +#.TRANS: a dotted note is played for 1.5x its value, e.g., 1/8. --> 3/16 +msgid "dot" msgstr "" -#: js/PitchBlocks.js:256 -msgid "The Pitch number block is the value of the pitch of the note currently being played." +#: js/blocks/RhythmBlocks.js:619 +#: js/turtleactions/RhythmActions.js:221 +msgid "An argument of -1 results in a note value of 0." msgstr "" -#: js/PitchBlocks.js:329 -#: js/PitchBlocks.js:433 -#.TRANS: the current pitch expressed in Hertz -msgid "pitch in hertz" +#: js/blocks/RhythmBlocks.js:661 +msgid "The Dot block extends the duration of a note by 50%." msgstr "" -#: js/PitchBlocks.js:334 -msgid "The Pitch in Hertz block is the value in Hertz of the pitch of the note currently being played." +#: js/blocks/RhythmBlocks.js:663 +msgid "Eg a dotted quarter note will play for 3/8 (1/4 + 1/8) of a beat." msgstr "" -#: js/PitchBlocks.js:367 -#: js/DictActions.js:87 -msgid "current pitch" +#: js/blocks/RhythmBlocks.js:765 +#.TRANS: Japanese only: note value block for drum +msgid "note value drum" msgstr "" -#: js/PitchBlocks.js:373 -msgid "The Current Pitch block is used with the Pitch Converter block. In the example above, current pitch, sol 4, is displayed as 392 hertz." +#: js/blocks/RhythmBlocks.js:829 +msgid "392 hertz" msgstr "" -#: js/PitchBlocks.js:410 -msgid "This block converts the pitch value of the last note played into different formats such as hertz, letter name, pitch number, et al." +#: js/blocks/RhythmBlocks.js:1119 +msgid "The Note block is a container for one or more Pitch blocks." msgstr "" -#: js/PitchBlocks.js:434 -msgid "alphabet" +#: js/blocks/RhythmBlocks.js:1121 +msgid "The Note block specifies the duration (note value) of its contents." msgstr "" -#: js/PitchBlocks.js:436 -#.TRANS: Translate as "alphabet class" -msgid "letter class" +#: js/blocks/RhythmBlocks.js:1128 +#: js/blocks/PitchBlocks.js:974 +#: js/blocks/PitchBlocks.js:1007 +#: js/blocks/ProgramBlocks.js:1186 +#: js/blocks/ProgramBlocks.js:1227 +#: js/widgets/status.js:190 +#: js/widgets/temperament.js:464 +#: js/widgets/temperament.js:486 +#: js/widgets/temperament.js:496 +#: js/widgets/temperament.js:617 +#: plugins/rodi.rtp:192 +#.TRANS: a musical note consisting of pitch and duration +msgid "note" msgstr "" -#: js/PitchBlocks.js:437 -msgid "solfege class" +#: js/blocks/RhythmBlocks.js:1130 +msgid "value2" msgstr "" -#: js/PitchBlocks.js:438 -msgid "staff y" +#: js/blocks/RhythmBlocks.js:1200 +msgid "define frequency" msgstr "" -#: js/PitchBlocks.js:439 -msgid "solfege syllable" +#: js/blocks/RhythmBlocks.js:1218 +#: js/widgets/temperament.js:787 +#: js/widgets/temperament.js:1587 +msgid "octave space" msgstr "" -#: js/PitchBlocks.js:440 -msgid "pitch class" +#: js/blocks/SensorsBlocks.js:36 +msgid "The Input block prompts for keyboard input." msgstr "" -#: js/PitchBlocks.js:441 -msgid "scalar class" +#: js/blocks/SensorsBlocks.js:46 +msgid "input" msgstr "" -#: js/PitchBlocks.js:443 -msgid "nth degree" +#: js/blocks/SensorsBlocks.js:64 +msgid "Input a value" msgstr "" -#: js/PitchBlocks.js:444 -msgid "pitch to shade" +#: js/blocks/SensorsBlocks.js:126 +msgid "input value" msgstr "" -#: js/PitchBlocks.js:445 -msgid "pitch to color" +#: js/blocks/SensorsBlocks.js:131 +msgid "The Input-value block stores the input." msgstr "" -#: js/PitchBlocks.js:629 -#: js/musickeyboard.js:565 -#.TRANS: MIDI is a technical standard for electronic music -msgid "MIDI" +#: js/blocks/SensorsBlocks.js:238 +msgid "loudness" msgstr "" -#: js/PitchBlocks.js:642 -#.TRANS: set an offset associated with the numeric piano keyboard mapping -msgid "set pitch number offset" +#: js/blocks/SensorsBlocks.js:245 +msgid "The Loudness block returns the volume detected by the microphone." msgstr "" -#: js/PitchBlocks.js:645 -msgid "The Set pitch number offset block is used to set the offset for mapping pitch numbers to pitch and octave." +#: js/blocks/SensorsBlocks.js:300 +msgid "click" msgstr "" -#: js/PitchBlocks.js:679 -#.TRANS: convert piano key number (1-88) to pitch -msgid "number to pitch" +#: js/blocks/SensorsBlocks.js:306 +msgid "The Click block triggers an event if a mouse has been clicked." msgstr "" -#: js/PitchBlocks.js:682 -msgid "The Number to pitch block will convert a pitch number to a pich name." +#: js/blocks/SensorsBlocks.js:313 +msgid "The Click block triggers an event if a turtle has been clicked." msgstr "" -#: js/PitchBlocks.js:715 -#.TRANS: convert piano key number (1-88) to octave -msgid "number to octave" +#: js/blocks/SensorsBlocks.js:342 +msgid "cursor over" msgstr "" -#: js/PitchBlocks.js:717 -msgid "The Number to octave block will convert a pitch number to an octave." +#: js/blocks/SensorsBlocks.js:387 +msgid "cursor out" msgstr "" -#: js/PitchBlocks.js:726 -msgid "y to pitch" +#: js/blocks/SensorsBlocks.js:433 +msgid "cursor button down" msgstr "" -#: js/PitchBlocks.js:729 -msgid "Y to pitch block will convert a staff y position to corresponding pitch notation." +#: js/blocks/SensorsBlocks.js:477 +msgid "cursor button up" msgstr "" -#: js/PitchBlocks.js:841 -msgid "accidental selector" +#: js/blocks/SensorsBlocks.js:521 +#: js/blocks/PenBlocks.js:48 +#: plugins/rodi.rtp:219 +msgid "blue" msgstr "" -#: js/PitchBlocks.js:844 -msgid "The Accidental selector block is used to choose between double-sharp, sharp, natural, flat, and double-flat." +#: js/blocks/SensorsBlocks.js:577 +#: js/blocks/PenBlocks.js:64 +#: plugins/rodi.rtp:218 +msgid "green" msgstr "" -#: js/PitchBlocks.js:858 -msgid "Pitch can be specified in terms of ni dha pa ma ga re sa." +#: js/blocks/SensorsBlocks.js:633 +#: js/blocks/PenBlocks.js:112 +#: plugins/rodi.rtp:217 +msgid "red" msgstr "" -#: js/PitchBlocks.js:872 -msgid "Pitch can be specified in terms of C D E F G A B." +#: js/blocks/SensorsBlocks.js:638 +msgid "The Get red block returns the red component of the pixel under the mouse." msgstr "" -#: js/PitchBlocks.js:883 -msgid "solfege" +#: js/blocks/SensorsBlocks.js:644 +msgid "The Get red block returns the red component of the pixel under the turtle." msgstr "" -#: js/PitchBlocks.js:886 -msgid "Pitch can be specified in terms of do re mi fa sol la ti." +#: js/blocks/SensorsBlocks.js:685 +#: plugins/rodi.rtp:216 +msgid "pixel color" msgstr "" -#: js/PitchBlocks.js:920 -msgid "The Invert block rotates any contained notes around a target note." +#: js/blocks/SensorsBlocks.js:690 +msgid "The Get pixel block returns the color of the pixel under the mouse." msgstr "" -#: js/PitchBlocks.js:927 -#.TRANS: pitch inversion rotates a pitch around another pitch -msgid "invert" +#: js/blocks/SensorsBlocks.js:696 +msgid "The Get pixel block returns the color of the pixel under the turtle." msgstr "" -#: js/PitchBlocks.js:929 -#: js/PitchBlocks.js:935 -#: js/PitchActions.js:727 -#: js/musicutils.js:726 -#: js/musicutils.js:902 -#.TRANS: invert based on even or odd number or musical scale -#.TRANS: even numbers -msgid "even" +#: js/blocks/SensorsBlocks.js:758 +msgid "time" msgstr "" -#: js/PitchBlocks.js:935 -#: js/PitchActions.js:729 -#: js/musicutils.js:728 -#: js/musicutils.js:903 -#.TRANS: odd numbers -msgid "odd" +#: js/blocks/SensorsBlocks.js:804 +msgid "cursor y" msgstr "" -#: js/PitchBlocks.js:935 -#: js/PitchActions.js:731 -#: js/musicutils.js:729 -#: js/musicutils.js:904 -msgid "scalar" +#: js/blocks/SensorsBlocks.js:809 +msgid "The Cursor Y block returns the vertical position of the mouse." msgstr "" -#: js/PitchBlocks.js:966 -#.TRANS: pitch inversion rotates a pitch around another pitch (odd number) -msgid "invert (odd)" +#: js/blocks/SensorsBlocks.js:845 +msgid "cursor x" msgstr "" -#: js/PitchBlocks.js:999 -#.TRANS: pitch inversion rotates a pitch around another pitch (even number) -msgid "invert (even)" +#: js/blocks/SensorsBlocks.js:850 +msgid "The Cursor X block returns the horizontal position of the mouse." msgstr "" -#: js/PitchBlocks.js:1020 -#.TRANS: register is the octave of the current pitch -msgid "register" +#: js/blocks/SensorsBlocks.js:886 +msgid "mouse button" msgstr "" -#: js/PitchBlocks.js:1024 -msgid "The Register block provides an easy way to modify the register (octave) of the notes that follow it." +#: js/blocks/SensorsBlocks.js:888 +msgid "The Mouse-button block returns True if the mouse button is pressed." msgstr "" -#: js/PitchBlocks.js:1074 -msgid "The Semi-tone transposition block will shift the pitches contained inside Note blocks up (or down) by half steps." +#: js/blocks/SensorsBlocks.js:934 +msgid "to ASCII" msgstr "" -#: js/PitchBlocks.js:1076 -msgid "In the example shown above, sol is shifted up to sol#." +#: js/blocks/SensorsBlocks.js:938 +msgid "The To ASCII block converts numbers to letters." msgstr "" -#: js/PitchBlocks.js:1082 -#.TRANS: adjust the amount of shift (up or down) of a pitch -msgid "semi-tone transpose" +#: js/blocks/SensorsBlocks.js:1005 +msgid "The Keyboard block returns computer keyboard input." msgstr "" -#: js/PitchBlocks.js:1115 -msgid "The Transpose by Ratio block will shift the pitches contained inside Note blocks up (or down) by a ratio" +#: js/blocks/RhythmBlockPaletteBlocks.js:50 +#: js/blocks/RhythmBlockPaletteBlocks.js:233 +#.TRANS: rhythm block +#.TRANS: translate "rhythm1" as rhythm +msgid "rhythm1" msgstr "" -#: js/PitchBlocks.js:1121 -#.TRANS: adjust the amount of shift (up or down) of a pitch -msgid "transpose by ratio" +#: js/blocks/RhythmBlockPaletteBlocks.js:70 +#: js/blocks/RhythmBlockPaletteBlocks.js:252 +#: js/blocks/RhythmBlockPaletteBlocks.js:485 +#: js/blocks/RhythmBlockPaletteBlocks.js:554 +#: js/blocks/RhythmBlockPaletteBlocks.js:875 +msgid "number of notes" msgstr "" -#: js/PitchBlocks.js:1204 -#.TRANS: down sixth means the note is five scale degrees below current note -msgid "down sixth" +#: js/blocks/RhythmBlockPaletteBlocks.js:126 +msgid "polyphonic rhythm" msgstr "" -#: js/PitchBlocks.js:1223 -#.TRANS: down third means the note is two scale degrees below current note -msgid "down third" +#: js/blocks/RhythmBlockPaletteBlocks.js:219 +msgid "The Rhythm block is used to generate rhythm patterns." msgstr "" -#: js/PitchBlocks.js:1242 -#.TRANS: seventh means the note is the six scale degrees above current note -msgid "seventh" +#: js/blocks/RhythmBlockPaletteBlocks.js:280 +msgid "1/64 note" msgstr "" -#: js/PitchBlocks.js:1261 -#.TRANS: sixth means the note is the five scale degrees above current note -msgid "sixth" +#: js/blocks/RhythmBlockPaletteBlocks.js:304 +msgid "1/32 note" msgstr "" -#: js/PitchBlocks.js:1280 -#.TRANS: fifth means the note is the four scale degrees above current note -msgid "fifth" +#: js/blocks/RhythmBlockPaletteBlocks.js:332 +msgid "1/16 note" msgstr "" -#: js/PitchBlocks.js:1300 -#.TRANS: fourth means the note is three scale degrees above current note -msgid "fourth" +#: js/blocks/RhythmBlockPaletteBlocks.js:360 +msgid "eighth note" msgstr "" -#: js/PitchBlocks.js:1319 -#.TRANS: third means the note is two scale degrees above current note -msgid "third" +#: js/blocks/RhythmBlockPaletteBlocks.js:388 +msgid "quarter note" msgstr "" -#: js/PitchBlocks.js:1338 -#.TRANS: second means the note is one scale degree above current note -msgid "second" +#: js/blocks/RhythmBlockPaletteBlocks.js:416 +msgid "half note" msgstr "" -#: js/PitchBlocks.js:1379 -msgid "The Scalar transposition block will shift the pitches contained inside Note blocks up (or down) the scale." +#: js/blocks/RhythmBlockPaletteBlocks.js:444 +msgid "whole note" msgstr "" -#: js/PitchBlocks.js:1381 -msgid "In the example shown above, sol is shifted up to la." +#: js/blocks/RhythmBlockPaletteBlocks.js:482 +#: js/blocks/RhythmBlockPaletteBlocks.js:551 +#: js/blocks/RhythmBlockPaletteBlocks.js:602 +#.TRANS: A tuplet is a note value divided into irregular time values. +msgid "tuplet" msgstr "" -#: js/PitchBlocks.js:1388 -#.TRANS: adjust the amount of shift (up or down) of a pitch by musical scale (scalar) steps -msgid "scalar transpose" +#: js/blocks/RhythmBlockPaletteBlocks.js:768 +msgid "septuplet" msgstr "" -#: js/PitchBlocks.js:1423 -msgid "The Accidental block is used to create sharps and flats" +#: js/blocks/RhythmBlockPaletteBlocks.js:796 +msgid "quintuplet" msgstr "" -#: js/PitchBlocks.js:1430 -#.TRANS: An accidental is a modification to a pitch, e.g., sharp or flat. -msgid "accidental override" +#: js/blocks/RhythmBlockPaletteBlocks.js:824 +msgid "triplet" msgstr "" -#: js/PitchBlocks.js:1543 -msgid "The Hertz block (in combination with a Number block) will play a sound at the specified frequency." +#: js/blocks/RhythmBlockPaletteBlocks.js:851 +msgid "simple tuplet" msgstr "" -#: js/PitchBlocks.js:1633 -msgid "The Pitch Number block will play a pitch associated by its number, e.g. 0 for C and 7 for G." +#: js/blocks/RhythmBlockPaletteBlocks.js:861 +msgid "Tuplets are a collection of notes that get scaled to a specific duration." msgstr "" -#: js/PitchBlocks.js:1665 -#: js/PitchBlocks.js:1707 -#.TRANS: a numeric mapping of the notes in an octave based on the musical mode -#.TRANS: a numeric mapping of the notes in an octave based on the musical mode -msgid "nth modal pitch" +#: js/blocks/DrumBlocks.js:59 +msgid "The Noise name block is used to select a noise synthesizer." msgstr "" -#: js/PitchBlocks.js:1668 -msgid "n^th Modal Pitch takes the pattern of pitches in semitones for a mode and makes each point a degree of the mode," +#: js/blocks/DrumBlocks.js:102 +msgid "The Drum name block is used to select a drum." msgstr "" -#: js/PitchBlocks.js:1670 -msgid "starting from 1 and regardless of tonal framework (i.e. not always 8 notes in the octave)" +#: js/blocks/DrumBlocks.js:146 +msgid "The Effects name block is used to select a sound effect." msgstr "" -#: js/PitchBlocks.js:1711 -msgid "N^th Modal Pitch takes a number as an input as the n^th degree for the given mode. 0 is the first position, 1 is the second, -1 is the note before the first etc." +#: js/blocks/DrumBlocks.js:163 +msgid "noise" msgstr "" -#: js/PitchBlocks.js:1713 -msgid "The pitches change according to the mode specified without any need for respellings." +#: js/blocks/DrumBlocks.js:177 +msgid "The Play noise block will generate white, pink, or brown noise." msgstr "" -#: js/PitchBlocks.js:1752 -msgid "Scale Degree is a common convention in music. Scale Degree offers seven possible positions in the scale (1-7) and can be modified via accidentals." +#: js/blocks/DrumBlocks.js:317 +msgid "Replace every instance of a pitch with a drum sound." msgstr "" -#: js/PitchBlocks.js:1754 -msgid "Scale Degree 1 is always the first pitch in a given scale, regardless of octave." +#: js/blocks/DrumBlocks.js:328 +#.TRANS: map a pitch to a drum sound +msgid "map pitch to drum" msgstr "" -#: js/PitchBlocks.js:1776 -#.TRANS: step some number of notes in current musical scale -msgid "scalar step" +#: js/blocks/DrumBlocks.js:395 +msgid "In the example above, a kick drum sound will be played instead of sol." msgstr "" -#: js/PitchBlocks.js:1781 -msgid "The Scalar Step block (in combination with a Number block) will play the next pitch in a scale," +#: js/blocks/DrumBlocks.js:407 +#.TRANS: set the current drum sound for playback +msgid "set drum" msgstr "" -#: js/PitchBlocks.js:1783 -msgid "eg if the last note played was sol, Scalar Step 1 will play la." +#: js/blocks/DrumBlocks.js:451 +msgid "sound effect" msgstr "" -#: js/PitchBlocks.js:1818 -msgid "The Pitch block specifies the pitch name and octave of a note that together determine the frequency of the note." +#: js/blocks/DrumBlocks.js:489 +msgid "You can use multiple Drum blocks within a Note block." msgstr "" -#: js/GraphicsBlocks.js:46 -#: js/DictActions.js:77 -#: js/DictActions.js:155 -#: js/DictActions.js:189 +#: js/blocks/GraphicsBlocks.js:46 +#: js/turtleactions/DictActions.js:77 +#: js/turtleactions/DictActions.js:144 +#: js/turtleactions/DictActions.js:173 msgid "heading" msgstr "" -#: js/GraphicsBlocks.js:56 +#: js/blocks/GraphicsBlocks.js:56 msgid "The Heading block returns the orientation of the mouse." msgstr "" -#: js/GraphicsBlocks.js:62 +#: js/blocks/GraphicsBlocks.js:62 msgid "The Heading block returns the orientation of the turtle." msgstr "" -#: js/GraphicsBlocks.js:133 +#: js/blocks/GraphicsBlocks.js:133 msgid "The Y block returns the vertical position of the mouse." msgstr "" -#: js/GraphicsBlocks.js:140 +#: js/blocks/GraphicsBlocks.js:140 msgid "The Y block returns the vertical position of the turtle." msgstr "" -#: js/GraphicsBlocks.js:149 +#: js/blocks/GraphicsBlocks.js:149 msgid "y3" msgstr "" -#: js/GraphicsBlocks.js:219 +#: js/blocks/GraphicsBlocks.js:219 msgid "The X block returns the horizontal position of the mouse." msgstr "" -#: js/GraphicsBlocks.js:226 +#: js/blocks/GraphicsBlocks.js:226 msgid "The X block returns the horizontal position of the turtle." msgstr "" -#: js/GraphicsBlocks.js:235 +#: js/blocks/GraphicsBlocks.js:235 msgid "x3" msgstr "" -#: js/GraphicsBlocks.js:295 +#: js/blocks/GraphicsBlocks.js:295 msgid "scroll xy" msgstr "" -#: js/GraphicsBlocks.js:303 +#: js/blocks/GraphicsBlocks.js:303 msgid "The Scroll XY block moves the canvas." msgstr "" -#: js/GraphicsBlocks.js:313 +#: js/blocks/GraphicsBlocks.js:313 msgid "x2" msgstr "" -#: js/GraphicsBlocks.js:313 +#: js/blocks/GraphicsBlocks.js:313 msgid "y2" msgstr "" -#: js/GraphicsBlocks.js:373 -#: js/temperament.js:213 -#: js/temperament.js:241 +#: js/blocks/GraphicsBlocks.js:373 +#: js/widgets/temperament.js:319 +#: js/widgets/temperament.js:347 msgid "clear" msgstr "" -#: js/GraphicsBlocks.js:426 +#: js/blocks/GraphicsBlocks.js:426 msgid "The Control-point 2 block sets the second control point for the Bezier curve." msgstr "" -#: js/GraphicsBlocks.js:433 +#: js/blocks/GraphicsBlocks.js:433 msgid "control point 2" msgstr "" -#: js/GraphicsBlocks.js:436 -#: js/GraphicsBlocks.js:487 -#: js/GraphicsBlocks.js:534 -#: js/GraphicsBlocks.js:750 +#: js/blocks/GraphicsBlocks.js:436 +#: js/blocks/GraphicsBlocks.js:487 +#: js/blocks/GraphicsBlocks.js:534 +#: js/blocks/GraphicsBlocks.js:750 msgid "x1" msgstr "" -#: js/GraphicsBlocks.js:436 -#: js/GraphicsBlocks.js:487 -#: js/GraphicsBlocks.js:534 -#: js/GraphicsBlocks.js:750 +#: js/blocks/GraphicsBlocks.js:436 +#: js/blocks/GraphicsBlocks.js:487 +#: js/blocks/GraphicsBlocks.js:534 +#: js/blocks/GraphicsBlocks.js:750 msgid "y1" msgstr "" -#: js/GraphicsBlocks.js:477 +#: js/blocks/GraphicsBlocks.js:477 msgid "The Control-point 1 block sets the first control point for the Bezier curve." msgstr "" -#: js/GraphicsBlocks.js:484 +#: js/blocks/GraphicsBlocks.js:484 msgid "control point 1" msgstr "" -#: js/GraphicsBlocks.js:527 +#: js/blocks/GraphicsBlocks.js:527 msgid "The Bezier block draws a Bezier curve." msgstr "" -#: js/GraphicsBlocks.js:531 +#: js/blocks/GraphicsBlocks.js:531 msgid "bezier" msgstr "" -#: js/GraphicsBlocks.js:592 +#: js/blocks/GraphicsBlocks.js:592 msgid "The Arc block moves the turtle in an arc." msgstr "" -#: js/GraphicsBlocks.js:600 +#: js/blocks/GraphicsBlocks.js:600 msgid "arc" msgstr "" -#: js/GraphicsBlocks.js:603 +#: js/blocks/GraphicsBlocks.js:603 msgid "angle" msgstr "" -#: js/GraphicsBlocks.js:603 +#: js/blocks/GraphicsBlocks.js:603 msgid "radius" msgstr "" -#: js/GraphicsBlocks.js:620 -#: js/GraphicsBlocks.js:767 -#: js/GraphicsBlocks.js:1010 -#: js/GraphicsBlocks.js:1093 +#: js/blocks/GraphicsBlocks.js:620 +#: js/blocks/GraphicsBlocks.js:767 +#: js/blocks/GraphicsBlocks.js:1010 +#: js/blocks/GraphicsBlocks.js:1093 msgid "Value must be within -5000 to 5000 when Wrap Mode is off." msgstr "" -#: js/GraphicsBlocks.js:622 -#: js/GraphicsBlocks.js:769 -#: js/GraphicsBlocks.js:1012 -#: js/GraphicsBlocks.js:1095 +#: js/blocks/GraphicsBlocks.js:622 +#: js/blocks/GraphicsBlocks.js:769 +#: js/blocks/GraphicsBlocks.js:1012 +#: js/blocks/GraphicsBlocks.js:1095 msgid "Value must be within -20000 to 20000 when Wrap Mode is on." msgstr "" -#: js/GraphicsBlocks.js:660 +#: js/blocks/GraphicsBlocks.js:660 msgid "set heading" msgstr "" -#: js/GraphicsBlocks.js:673 +#: js/blocks/GraphicsBlocks.js:673 msgid "The Set heading block sets the heading of the turtle." msgstr "" -#: js/GraphicsBlocks.js:733 +#: js/blocks/GraphicsBlocks.js:733 msgid "The Set XY block moves the mouse to a specific position on the screen." msgstr "" -#: js/GraphicsBlocks.js:739 +#: js/blocks/GraphicsBlocks.js:739 msgid "The Set XY block moves the turtle to a specific position on the screen." msgstr "" -#: js/GraphicsBlocks.js:747 +#: js/blocks/GraphicsBlocks.js:747 msgid "set xy" msgstr "" -#: js/GraphicsBlocks.js:819 +#: js/blocks/GraphicsBlocks.js:819 msgid "The Right block turns the mouse to the right." msgstr "" -#: js/GraphicsBlocks.js:826 +#: js/blocks/GraphicsBlocks.js:826 msgid "The Right block turns the turtle to the right." msgstr "" -#: js/GraphicsBlocks.js:835 +#: js/blocks/GraphicsBlocks.js:835 msgid "right1" msgstr "" -#: js/GraphicsBlocks.js:835 +#: js/blocks/GraphicsBlocks.js:835 #: plugins/rodi.rtp:77 #: plugins/rodi.rtp:340 #: plugins/rodi.rtp:375 msgid "right" msgstr "" -#: js/GraphicsBlocks.js:899 +#: js/blocks/GraphicsBlocks.js:899 msgid "The Left block turns the mouse to the left." msgstr "" -#: js/GraphicsBlocks.js:906 +#: js/blocks/GraphicsBlocks.js:906 msgid "The Left block turns the turtle to the left." msgstr "" -#: js/GraphicsBlocks.js:915 +#: js/blocks/GraphicsBlocks.js:915 msgid "left1" msgstr "" -#: js/GraphicsBlocks.js:915 +#: js/blocks/GraphicsBlocks.js:915 #: plugins/rodi.rtp:79 #: plugins/rodi.rtp:339 #: plugins/rodi.rtp:362 msgid "left" msgstr "" -#: js/GraphicsBlocks.js:967 -#: js/temperament.js:734 -#: js/temperament.js:933 +#: js/blocks/GraphicsBlocks.js:967 +#: js/widgets/temperament.js:875 +#: js/widgets/temperament.js:1078 #: plugins/rodi.rtp:69 #: plugins/rodi.rtp:387 msgid "back" msgstr "" -#: js/GraphicsBlocks.js:976 +#: js/blocks/GraphicsBlocks.js:976 msgid "The Back block moves the mouse backward." msgstr "" -#: js/GraphicsBlocks.js:983 +#: js/blocks/GraphicsBlocks.js:983 msgid "The Back block moves the turtle backward." msgstr "" -#: js/GraphicsBlocks.js:1050 +#: js/blocks/GraphicsBlocks.js:1050 #: plugins/rodi.rtp:71 #: plugins/rodi.rtp:400 msgid "forward" msgstr "" -#: js/GraphicsBlocks.js:1059 +#: js/blocks/GraphicsBlocks.js:1059 msgid "The Forward block moves the mouse forward." msgstr "" -#: js/GraphicsBlocks.js:1066 +#: js/blocks/GraphicsBlocks.js:1066 msgid "The Forward block moves the turtle forward." msgstr "" -#: js/GraphicsBlocks.js:1154 -#: js/GraphicsBlocks.js:1172 +#: js/blocks/GraphicsBlocks.js:1154 +#: js/blocks/GraphicsBlocks.js:1172 msgid "wrap" msgstr "" -#: js/OrnamentBlocks.js:32 -msgid "staccato factor" -msgstr "" - -#: js/OrnamentBlocks.js:108 -msgid "slur factor" -msgstr "" - -#: js/OrnamentBlocks.js:217 -#: js/OrnamentBlocks.js:309 -#.TRANS: the neighbor refers to a neighboring note, e.g., D is a neighbor of C -msgid "neighbor" -msgstr "" - -#: js/OrnamentBlocks.js:293 -msgid "The Neighbor block rapidly switches between neighboring pitches." -msgstr "" - -#: js/OrnamentBlocks.js:364 -msgid "glide" -msgstr "" - -#: js/OrnamentBlocks.js:479 -#: js/OrnamentBlocks.js:643 -msgid "slur" -msgstr "" - -#: js/OrnamentBlocks.js:558 -#: js/OrnamentBlocks.js:710 -#.TRANS: play each note sharply detached from the others -msgid "staccato" -msgstr "" - -#: js/PenBlocks.js:24 +#: js/blocks/PenBlocks.js:30 msgid "purple" msgstr "" -#: js/PenBlocks.js:37 -#: js/SensorsBlocks.js:521 -#: plugins/rodi.rtp:219 -msgid "blue" -msgstr "" - -#: js/PenBlocks.js:50 -#: js/SensorsBlocks.js:577 -#: plugins/rodi.rtp:218 -msgid "green" -msgstr "" - -#: js/PenBlocks.js:63 +#: js/blocks/PenBlocks.js:80 msgid "yellow" msgstr "" -#: js/PenBlocks.js:76 +#: js/blocks/PenBlocks.js:96 #: plugins/nutrition.rtp:164 msgid "orange" msgstr "" -#: js/PenBlocks.js:89 -#: js/SensorsBlocks.js:633 -#: plugins/rodi.rtp:217 -msgid "red" -msgstr "" - -#: js/PenBlocks.js:102 +#: js/blocks/PenBlocks.js:128 msgid "white" msgstr "" -#: js/PenBlocks.js:115 +#: js/blocks/PenBlocks.js:144 msgid "black" msgstr "" -#: js/PenBlocks.js:128 +#: js/blocks/PenBlocks.js:163 msgid "begin fill" msgstr "" -#: js/PenBlocks.js:143 +#: js/blocks/PenBlocks.js:190 msgid "end fill" msgstr "" -#: js/PenBlocks.js:159 -#: js/PenBlocks.js:386 +#: js/blocks/PenBlocks.js:212 +#: js/blocks/PenBlocks.js:560 #.TRANS: set the background color msgid "background" msgstr "" -#: js/PenBlocks.js:206 -#: js/DictActions.js:71 -#: js/DictActions.js:149 -#: js/DictActions.js:186 +#: js/blocks/PenBlocks.js:274 +#: js/turtleactions/DictActions.js:71 +#: js/turtleactions/DictActions.js:138 +#: js/turtleactions/DictActions.js:170 msgid "grey" msgstr "" -#: js/PenBlocks.js:210 +#: js/blocks/PenBlocks.js:282 msgid "The Grey block returns the current pen grey value." msgstr "" -#: js/PenBlocks.js:243 -#: js/DictActions.js:69 -#: js/DictActions.js:147 -#: js/DictActions.js:185 +#: js/blocks/PenBlocks.js:340 +#: js/turtleactions/DictActions.js:69 +#: js/turtleactions/DictActions.js:136 +#: js/turtleactions/DictActions.js:169 msgid "shade" msgstr "" -#: js/PenBlocks.js:247 +#: js/blocks/PenBlocks.js:347 msgid "The Shade block returns the current pen shade value." msgstr "" -#: js/PenBlocks.js:280 -#: js/DictActions.js:67 -#: js/DictActions.js:145 -#: js/DictActions.js:184 +#: js/blocks/PenBlocks.js:405 +#: js/turtleactions/DictActions.js:67 +#: js/turtleactions/DictActions.js:134 +#: js/turtleactions/DictActions.js:168 msgid "color" msgstr "" -#: js/PenBlocks.js:285 +#: js/blocks/PenBlocks.js:415 msgid "The Color block returns the current pen color." msgstr "" -#: js/PenBlocks.js:318 -#: js/DictActions.js:73 -#: js/DictActions.js:151 -#: js/DictActions.js:187 +#: js/blocks/PenBlocks.js:470 +#: js/turtleactions/DictActions.js:73 +#: js/turtleactions/DictActions.js:140 +#: js/turtleactions/DictActions.js:171 msgid "pen size" msgstr "" -#: js/PenBlocks.js:322 +#: js/blocks/PenBlocks.js:474 msgid "The Pen size block returns the current pen size value." msgstr "" -#: js/PenBlocks.js:355 +#: js/blocks/PenBlocks.js:513 msgid "set font" msgstr "" -#: js/PenBlocks.js:358 +#: js/blocks/PenBlocks.js:518 msgid "The Set font block sets the font used by the Show block." msgstr "" -#: js/PenBlocks.js:391 +#: js/blocks/PenBlocks.js:567 msgid "The Background block sets the window background color." msgstr "" -#: js/PenBlocks.js:408 +#: js/blocks/PenBlocks.js:598 msgid "The Hollow line block creates a line with a hollow center." msgstr "" -#: js/PenBlocks.js:415 +#: js/blocks/PenBlocks.js:606 #.TRANS: draw a line logo has a hollow space down its center msgid "hollow line" msgstr "" -#: js/PenBlocks.js:462 +#: js/blocks/PenBlocks.js:675 msgid "The Fill block fills in a shape with a color." msgstr "" -#: js/PenBlocks.js:470 +#: js/blocks/PenBlocks.js:684 #.TRANS: fill in as a solid color msgid "fill" msgstr "" -#: js/PenBlocks.js:527 +#: js/blocks/PenBlocks.js:761 #.TRANS: raise up the pen so logo it does not draw when it is moved msgid "pen up" msgstr "" -#: js/PenBlocks.js:532 +#: js/blocks/PenBlocks.js:768 msgid "The Pen-up block raises the pen so that it does not draw." msgstr "" -#: js/PenBlocks.js:552 +#: js/blocks/PenBlocks.js:802 #.TRANS: put down the pen so logo it draws when it is moved msgid "pen down" msgstr "" -#: js/PenBlocks.js:557 +#: js/blocks/PenBlocks.js:810 msgid "The Pen-down block lowers the pen so that it draws." msgstr "" -#: js/PenBlocks.js:577 +#: js/blocks/PenBlocks.js:844 #.TRANS: set the width of the line drawn by the pen msgid "set pen size" msgstr "" -#: js/PenBlocks.js:583 +#: js/blocks/PenBlocks.js:854 msgid "The Set-pen-size block changes the size of the pen." msgstr "" -#: js/PenBlocks.js:623 +#: js/blocks/PenBlocks.js:913 #.TRANS: set degree of translucence of the pen color msgid "set translucency" msgstr "" -#: js/PenBlocks.js:627 +#: js/blocks/PenBlocks.js:921 msgid "The Set translucency block changes the opacity of the pen." msgstr "" -#: js/PenBlocks.js:668 +#: js/blocks/PenBlocks.js:981 msgid "set hue" msgstr "" -#: js/PenBlocks.js:672 +#: js/blocks/PenBlocks.js:989 msgid "The Set hue block changes the color of the pen." msgstr "" -#: js/PenBlocks.js:711 +#: js/blocks/PenBlocks.js:1047 msgid "set shade" msgstr "" -#: js/PenBlocks.js:717 +#: js/blocks/PenBlocks.js:1057 msgid "The Set-shade block changes the pen color from dark to light." msgstr "" -#: js/PenBlocks.js:757 +#: js/blocks/PenBlocks.js:1111 #.TRANS: set the level of vividness of the pen color msgid "set grey" msgstr "" -#: js/PenBlocks.js:761 +#: js/blocks/PenBlocks.js:1119 msgid "The Set grey block changes the vividness of the pen color." msgstr "" -#: js/PenBlocks.js:800 +#: js/blocks/PenBlocks.js:1172 msgid "set color" msgstr "" -#: js/PenBlocks.js:806 +#: js/blocks/PenBlocks.js:1182 msgid "The Set-color block changes the pen color." msgstr "" -#: js/VolumeBlocks.js:35 -msgid "synth volume" -msgstr "" - -#: js/VolumeBlocks.js:39 -msgid "The Synth volume block returns the current volume of the current synthesizer." -msgstr "" - -#: js/VolumeBlocks.js:47 -#: js/musicutils.js:730 -#: js/synthutils.js:56 -#.TRANS: musical instrument -msgid "piano" -msgstr "" - -#: js/VolumeBlocks.js:105 -msgid "master volume" -msgstr "" - -#: js/VolumeBlocks.js:109 -msgid "The Master volume block returns the master volume." -msgstr "" - -#: js/VolumeBlocks.js:355 -#: js/VolumeBlocks.js:524 -msgid "set synth volume" -msgstr "" - -#: js/VolumeBlocks.js:362 -#: js/VolumeBlocks.js:545 -msgid "synth" -msgstr "" - -#: js/VolumeBlocks.js:403 -#: js/VolumeBlocks.js:577 -#: js/VolumeBlocks.js:740 -#: js/VolumeActions.js:173 -msgid "Setting volume to 0." -msgstr "" - -#: js/VolumeBlocks.js:440 -msgid "Synth not found" -msgstr "" - -#: js/VolumeBlocks.js:494 -msgid "set drum volume" -msgstr "" - -#: js/VolumeBlocks.js:530 -msgid "The Set synth volume block will change the volume of a particular synth," -msgstr "" - -#: js/VolumeBlocks.js:532 -msgid "eg guitar violin snare drum etc." -msgstr "" - -#: js/VolumeBlocks.js:534 -msgid "The default volume is 50." -msgstr "" - -#: js/VolumeBlocks.js:536 -msgid "The range is 0 for silence to 100 for full volume." -msgstr "" - -#: js/VolumeBlocks.js:597 -msgid "set panning" -msgstr "" - -#: js/VolumeBlocks.js:603 -msgid "The Set Panning block sets the panning for all synthesizers." -msgstr "" - -#: js/VolumeBlocks.js:625 -msgid "Warning: Sound is coming out from only the left or right side." -msgstr "" - -#: js/VolumeBlocks.js:647 -#: js/VolumeBlocks.js:695 -msgid "set master volume" -msgstr "" - -#: js/VolumeBlocks.js:653 -msgid "The Set master volume block sets the volume for all synthesizers." -msgstr "" - -#: js/VolumeBlocks.js:784 -msgid "The Set relative volume block changes the volume of the contained notes." -msgstr "" - -#: js/VolumeBlocks.js:791 -msgid "set relative volume" -msgstr "" - -#: js/VolumeBlocks.js:857 -msgid "decrescendo" -msgstr "" - -#: js/VolumeBlocks.js:921 -msgid "crescendo" -msgstr "" - -#: js/ToneBlocks.js:34 -msgid "oscillator" -msgstr "" - -#: js/ToneBlocks.js:44 -#: js/timbre.js:1562 -#.TRANS: Partials refers to the number of sine waves combined into the sound. -msgid "partials" -msgstr "" - -#: js/ToneBlocks.js:76 -msgid "You are adding multiple oscillator blocks." -msgstr "" - -#: js/ToneBlocks.js:144 -#: js/timbre.js:1225 -#.TRANS: a duo synthesizer combines a synth with a sequencer -msgid "duo synth" -msgstr "" - -#: js/ToneBlocks.js:149 -msgid "The Duo synth block is a duo-frequency modulator used to define a timbre." -msgstr "" - -#: js/ToneBlocks.js:157 -#: js/timbre.js:1476 -msgid "vibrato rate" -msgstr "" - -#: js/ToneBlocks.js:157 -msgid "vibrato intensity" -msgstr "" - -#: js/ToneBlocks.js:185 -#: js/timbre.js:1221 -#.TRANS: AM (amplitude modulation) synthesizer -msgid "AM synth" -msgstr "" - -#: js/ToneBlocks.js:189 -msgid "The AM synth block is an amplitude modulator used to define a timbre." -msgstr "" - -#: js/ToneBlocks.js:224 -#: js/timbre.js:1223 -#.TRANS: FM (frequency modulation) synthesizer -msgid "FM synth" -msgstr "" - -#: js/ToneBlocks.js:228 -msgid "The FM synth block is a frequency modulator used to define a timbre." +#: js/blocks/PitchBlocks.js:141 +#.TRANS: musical transposition (adjustment of pitch up or down) +msgid "transposition" msgstr "" -#: js/ToneBlocks.js:262 -msgid "partial" +#: js/blocks/PitchBlocks.js:168 +#.TRANS: step down one note in current musical scale +msgid "scalar step down" msgstr "" -#: js/ToneBlocks.js:265 -msgid "The Partial block is used to specify a weight for a specific partial harmonic." +#: js/blocks/PitchBlocks.js:172 +msgid "The Scalar step down block returns the number of semi-tones down to the previous note in the current key and mode." msgstr "" -#: js/ToneBlocks.js:284 -#.TRANS: partials are weighted components in a harmonic series -msgid "Partial weight must be between 0 and 1." +#: js/blocks/PitchBlocks.js:190 +#.TRANS: step up one note in current musical scale +msgid "scalar step up" msgstr "" -#: js/ToneBlocks.js:297 -#.TRANS: partials are weighted components in a harmonic series -msgid "Partial block should be used inside of a Weighted-partials block." +#: js/blocks/PitchBlocks.js:194 +msgid "The Scalar step up block returns the number of semi-tones up to the next note in the current key and mode." msgstr "" -#: js/ToneBlocks.js:325 -#.TRANS: partials are weighted components in a harmonic series -msgid "weighted partials" +#: js/blocks/PitchBlocks.js:212 +#.TRANS: the change measured in half-steps between the current pitch and the previous pitch +msgid "change in pitch" msgstr "" -#: js/ToneBlocks.js:383 -msgid "The Harmonic block will add harmonics to the contained notes." +#: js/blocks/PitchBlocks.js:216 +msgid "The Change in pitch block is the difference (in half steps) between the current pitch being played and the previous pitch played." msgstr "" -#: js/ToneBlocks.js:390 -#.TRANS: A harmonic is an overtone. -msgid "harmonic" +#: js/blocks/PitchBlocks.js:243 +#.TRANS: the change measured in scale-steps between the current pitch and the previous pitch +msgid "scalar change in pitch" msgstr "" -#: js/ToneBlocks.js:431 -msgid "The Distortion block adds distortion to the pitch." +#: js/blocks/PitchBlocks.js:250 +#: js/blocks/PitchBlocks.js:432 +#: js/blocks/PitchBlocks.js:1667 +#: js/turtleactions/DictActions.js:89 +#: js/widgets/temperament.js:610 +#: js/widgets/temperament.js:614 +#: js/widgets/temperament.js:855 +#.TRANS: convert current note to piano key (1-88) +#.TRANS: a mapping of pitch to the 88 piano keys +msgid "pitch number" msgstr "" -#: js/ToneBlocks.js:438 -#: js/timbre.js:2100 -#.TRANS: distortion is an alteration in the sound -msgid "distortion" +#: js/blocks/PitchBlocks.js:256 +msgid "The Pitch number block is the value of the pitch of the note currently being played." msgstr "" -#: js/ToneBlocks.js:487 -msgid "The Tremolo block adds a wavering effect." +#: js/blocks/PitchBlocks.js:329 +#: js/blocks/PitchBlocks.js:433 +#.TRANS: the current pitch expressed in Hertz +msgid "pitch in hertz" msgstr "" -#: js/ToneBlocks.js:495 -#: js/timbre.js:2092 -#.TRANS: a wavering effect in a musical tone -msgid "tremolo" +#: js/blocks/PitchBlocks.js:334 +msgid "The Pitch in Hertz block is the value in Hertz of the pitch of the note currently being played." msgstr "" -#: js/ToneBlocks.js:500 -#: js/ToneBlocks.js:569 -#: js/ToneBlocks.js:630 -#: js/ToneBlocks.js:689 -#: js/timbre.js:2134 -#: js/timbre.js:2222 -#: js/timbre.js:2317 -#: js/timbre.js:2419 -#.TRANS: rate at which tremolo wavers -msgid "rate" +#: js/blocks/PitchBlocks.js:367 +#: js/turtleactions/DictActions.js:87 +msgid "current pitch" msgstr "" -#: js/ToneBlocks.js:502 -#: js/ToneBlocks.js:630 -#: js/timbre.js:2137 -#: js/timbre.js:2328 -#.TRANS: amplitude of tremolo waver -msgid "depth" +#: js/blocks/PitchBlocks.js:373 +msgid "The Current Pitch block is used with the Pitch Converter block. In the example above, current pitch, sol 4, is displayed as 392 hertz." msgstr "" -#: js/ToneBlocks.js:559 -msgid "The Phaser block adds a sweeping sound." +#: js/blocks/PitchBlocks.js:410 +msgid "This block converts the pitch value of the last note played into different formats such as hertz, letter name, pitch number, et al." msgstr "" -#: js/ToneBlocks.js:566 -#: js/timbre.js:2098 -#.TRANS: alter the phase of the sound -msgid "phaser" +#: js/blocks/PitchBlocks.js:434 +msgid "alphabet" msgstr "" -#: js/ToneBlocks.js:569 -#: js/timbre.js:2422 -msgid "octaves" +#: js/blocks/PitchBlocks.js:436 +#.TRANS: Translate as "alphabet class" +msgid "letter class" msgstr "" -#: js/ToneBlocks.js:569 -#: js/timbre.js:2425 -msgid "base frequency" +#: js/blocks/PitchBlocks.js:437 +msgid "solfege class" msgstr "" -#: js/ToneBlocks.js:619 -msgid "The Chorus block adds a chorus effect." +#: js/blocks/PitchBlocks.js:438 +msgid "staff y" msgstr "" -#: js/ToneBlocks.js:627 -#: js/timbre.js:2096 -#.TRANS: musical effect to simulate a choral sound -msgid "chorus" +#: js/blocks/PitchBlocks.js:439 +msgid "solfege syllable" msgstr "" -#: js/ToneBlocks.js:630 -msgid "delay" +#: js/blocks/PitchBlocks.js:440 +msgid "pitch class" msgstr "" -#: js/ToneBlocks.js:678 -msgid "The Vibrato block adds a rapid, slight variation in pitch." +#: js/blocks/PitchBlocks.js:441 +msgid "scalar class" msgstr "" -#: js/ToneBlocks.js:686 -#: js/timbre.js:2094 -#.TRANS: a rapid, slight variation in pitch -msgid "vibrato" +#: js/blocks/PitchBlocks.js:443 +msgid "nth degree" msgstr "" -#: js/ToneBlocks.js:689 -#: js/timbre.js:2221 -msgid "intensity" +#: js/blocks/PitchBlocks.js:444 +msgid "pitch to shade" msgstr "" -#: js/ToneBlocks.js:733 -#.TRANS: select synthesizer -msgid "set synth" +#: js/blocks/PitchBlocks.js:445 +msgid "pitch to color" msgstr "" -#: js/ToneBlocks.js:804 -msgid "synth name" +#: js/blocks/PitchBlocks.js:629 +#: js/widgets/musickeyboard.js:735 +#.TRANS: MIDI is a technical standard for electronic music +msgid "MIDI" msgstr "" -#: js/ToneBlocks.js:842 -msgid "set default instrument" +#: js/blocks/PitchBlocks.js:642 +#.TRANS: set an offset associated with the numeric piano keyboard mapping +msgid "set pitch number offset" msgstr "" -#: js/ToneBlocks.js:895 -#: js/ToneBlocks.js:943 -#.TRANS: set the characteristics of a custom instrument -msgid "set instrument" +#: js/blocks/PitchBlocks.js:645 +msgid "The Set pitch number offset block is used to set the offset for mapping pitch numbers to pitch and octave." msgstr "" -#: js/ToneBlocks.js:898 -#: js/ToneBlocks.js:926 -#: js/ToneBlocks.js:932 -msgid "The Set instrument block selects a voice for the synthesizer," +#: js/blocks/PitchBlocks.js:679 +#.TRANS: convert piano key number (1-88) to pitch +msgid "number to pitch" msgstr "" -#: js/ToneBlocks.js:900 -#: js/ToneBlocks.js:934 -msgid "eg guitar piano violin or cello." +#: js/blocks/PitchBlocks.js:682 +msgid "The Number to pitch block will convert a pitch number to a pich name." msgstr "" -#: js/ToneBlocks.js:1015 -msgid "Import a sound file to use as an instrument and set its pitch center." +#: js/blocks/PitchBlocks.js:715 +#.TRANS: convert piano key number (1-88) to octave +msgid "number to octave" msgstr "" -#: js/ToneBlocks.js:1110 -msgid "Upload a sound file to connect with the sample block." +#: js/blocks/PitchBlocks.js:717 +msgid "The Number to octave block will convert a pitch number to an octave." msgstr "" -#: js/MeterBlocks.js:34 -#.TRANS: musical meter (time signature), e.g., 4:4 -msgid "current meter" +#: js/blocks/PitchBlocks.js:726 +msgid "y to pitch" msgstr "" -#: js/MeterBlocks.js:85 -#.TRANS: number of beats per minute -msgid "beat factor" +#: js/blocks/PitchBlocks.js:729 +msgid "Y to pitch block will convert a staff y position to corresponding pitch notation." msgstr "" -#: js/MeterBlocks.js:161 -msgid "The Beats per minute block returns the current beats per minute." +#: js/blocks/PitchBlocks.js:841 +msgid "accidental selector" msgstr "" -#: js/MeterBlocks.js:169 -#: js/status.js:152 -#.TRANS: number of beats played per minute -msgid "beats per minute2" +#: js/blocks/PitchBlocks.js:844 +msgid "The Accidental selector block is used to choose between double-sharp, sharp, natural, flat, and double-flat." msgstr "" -#: js/MeterBlocks.js:169 -#: js/MeterBlocks.js:1056 -#: js/MeterBlocks.js:1133 -#: js/MeterBlocks.js:1211 -#.TRANS: sets tempo by defining a beat and beats per minute -msgid "beats per minute" +#: js/blocks/PitchBlocks.js:858 +msgid "Pitch can be specified in terms of ni dha pa ma ga re sa." msgstr "" -#: js/MeterBlocks.js:233 -#.TRANS: count of current musical measure in meter -msgid "measure count" +#: js/blocks/PitchBlocks.js:872 +msgid "Pitch can be specified in terms of C D E F G A B." msgstr "" -#: js/MeterBlocks.js:241 -msgid "The Measure count block returns the current measure." +#: js/blocks/PitchBlocks.js:884 +msgid "solfege" msgstr "" -#: js/MeterBlocks.js:290 -#.TRANS: count of current beat in the meter -msgid "beat count" +#: js/blocks/PitchBlocks.js:887 +msgid "Pitch can be specified in terms of do re mi fa sol la ti." msgstr "" -#: js/MeterBlocks.js:300 -#: js/MeterBlocks.js:311 -#: js/MeterBlocks.js:565 -#: js/MeterBlocks.js:576 -msgid "The Beat count block is the number of the current beat," +#: js/blocks/PitchBlocks.js:922 +msgid "The Invert block rotates any contained notes around a target note." msgstr "" -#: js/MeterBlocks.js:313 -#: js/MeterBlocks.js:578 -msgid "eg 1, 2, 3, or 4." +#: js/blocks/PitchBlocks.js:929 +#.TRANS: pitch inversion rotates a pitch around another pitch +msgid "invert" msgstr "" -#: js/MeterBlocks.js:368 -#.TRANS: count the number of notes -msgid "sum note values" +#: js/blocks/PitchBlocks.js:968 +#.TRANS: pitch inversion rotates a pitch around another pitch (odd number) +msgid "invert (odd)" msgstr "" -#: js/MeterBlocks.js:376 -#: js/MeterBlocks.js:440 -msgid "The Note counter block can be used to count the number of contained notes." +#: js/blocks/PitchBlocks.js:1001 +#.TRANS: pitch inversion rotates a pitch around another pitch (even number) +msgid "invert (even)" msgstr "" -#: js/MeterBlocks.js:432 -#.TRANS: count the number of notes -msgid "note counter" +#: js/blocks/PitchBlocks.js:1022 +#.TRANS: register is the octave of the current pitch +msgid "register" msgstr "" -#: js/MeterBlocks.js:496 -#.TRANS: number of whole notes that have been played -msgid "whole notes played" +#: js/blocks/PitchBlocks.js:1026 +msgid "The Register block provides an easy way to modify the register (octave) of the notes that follow it." msgstr "" -#: js/MeterBlocks.js:505 -msgid "The Whole notes played block returns the total number of whole notes played." +#: js/blocks/PitchBlocks.js:1047 +#.TRANS: cents are units used to specify the ratio between pitches. There are 100 cents between successive notes. +msgid "50 cents" msgstr "" -#: js/MeterBlocks.js:555 -#: js/DictActions.js:83 -#.TRANS: number of notes that have been played -msgid "notes played" +#: js/blocks/PitchBlocks.js:1102 +msgid "The Semi-tone transposition block will shift the pitches contained inside Note blocks up (or down) by half steps." msgstr "" -#: js/MeterBlocks.js:653 -msgid "The No clock block decouples the notes from the master clock." +#: js/blocks/PitchBlocks.js:1104 +msgid "In the example shown above, sol is shifted up to sol#." msgstr "" -#: js/MeterBlocks.js:661 -#.TRANS: don't lock notes to master clock -msgid "no clock" +#: js/blocks/PitchBlocks.js:1110 +#.TRANS: adjust the amount of shift (up or down) of a pitch +msgid "semi-tone transpose" msgstr "" -#: js/MeterBlocks.js:700 -msgid "on weak beat do" +#: js/blocks/PitchBlocks.js:1143 +msgid "The Transpose by Ratio block will shift the pitches contained inside Note blocks up (or down) by a ratio" msgstr "" -#: js/MeterBlocks.js:705 -msgid "The On-weak-beat block lets you specify actions to take on weak (off) beats." +#: js/blocks/PitchBlocks.js:1149 +#.TRANS: adjust the amount of shift (up or down) of a pitch +msgid "transpose by ratio" msgstr "" -#: js/MeterBlocks.js:750 -msgid "on strong beat" +#: js/blocks/PitchBlocks.js:1232 +#.TRANS: down sixth means the note is five scale degrees below current note +msgid "down sixth" msgstr "" -#: js/MeterBlocks.js:758 -msgid "The On-strong-beat block lets you specify actions to take on specified beats." +#: js/blocks/PitchBlocks.js:1251 +#.TRANS: down third means the note is two scale degrees below current note +msgid "down third" msgstr "" -#: js/MeterBlocks.js:769 -msgid "beat" +#: js/blocks/PitchBlocks.js:1270 +#.TRANS: seventh means the note is the six scale degrees above current note +msgid "seventh" msgstr "" -#: js/MeterBlocks.js:813 -msgid "on every beat do" +#: js/blocks/PitchBlocks.js:1289 +#.TRANS: sixth means the note is the five scale degrees above current note +msgid "sixth" msgstr "" -#: js/MeterBlocks.js:821 -msgid "The On-every-beat block lets you specify actions to take on every beat." +#: js/blocks/PitchBlocks.js:1308 +#.TRANS: fifth means the note is the four scale degrees above current note +msgid "fifth" msgstr "" -#: js/MeterBlocks.js:874 -msgid "on every note do" +#: js/blocks/PitchBlocks.js:1328 +#.TRANS: fourth means the note is three scale degrees above current note +msgid "fourth" msgstr "" -#: js/MeterBlocks.js:882 -msgid "The On-every-note block lets you specify actions to take on every note." +#: js/blocks/PitchBlocks.js:1347 +#.TRANS: third means the note is two scale degrees above current note +msgid "third" msgstr "" -#: js/MeterBlocks.js:928 -#: js/MeterBlocks.js:999 -#.TRANS: sets tempo by defining a beat and beats per minute -msgid "master beats per minute" +#: js/blocks/PitchBlocks.js:1366 +#.TRANS: second means the note is one scale degree above current note +msgid "second" msgstr "" -#: js/MeterBlocks.js:952 -#: js/MeterBlocks.js:1078 -#: js/MeterBlocks.js:1135 -msgid "bpm" +#: js/blocks/PitchBlocks.js:1407 +msgid "The Scalar transposition block will shift the pitches contained inside Note blocks up (or down) the scale." msgstr "" -#: js/MeterBlocks.js:952 -#: js/MeterBlocks.js:1078 -#: js/MeterBlocks.js:1135 -msgid "beat value" +#: js/blocks/PitchBlocks.js:1409 +msgid "In the example shown above, sol is shifted up to la." msgstr "" -#: js/MeterBlocks.js:1024 -#: js/MeterBlocks.js:1167 -#: js/MeterBlocks.js:1241 -msgid "Beats per minute must be > 30." +#: js/blocks/PitchBlocks.js:1416 +#.TRANS: adjust the amount of shift (up or down) of a pitch by musical scale (scalar) steps +msgid "scalar transpose" msgstr "" -#: js/MeterBlocks.js:1027 -#: js/MeterBlocks.js:1170 -#: js/MeterBlocks.js:1244 -msgid "Maximum beats per minute is 1000." +#: js/blocks/PitchBlocks.js:1451 +msgid "The Accidental block is used to create sharps and flats" msgstr "" -#: js/MeterBlocks.js:1068 -msgid "The Beats per minute block sets the number of 1/4 notes per minute." +#: js/blocks/PitchBlocks.js:1458 +#.TRANS: An accidental is a modification to a pitch, e.g., sharp or flat. +msgid "accidental override" msgstr "" -#: js/MeterBlocks.js:1279 -#.TRANS: anacrusis -msgid "pickup" +#: js/blocks/PitchBlocks.js:1581 +msgid "The Hertz block (in combination with a Number block) will play a sound at the specified frequency." msgstr "" -#: js/MeterBlocks.js:1367 -msgid "number of beats" +#: js/blocks/PitchBlocks.js:1671 +msgid "The Pitch Number block will play a pitch associated by its number, e.g. 0 for C and 7 for G." msgstr "" -#: js/DictBlocks.js:77 -msgid "show dictionary" +#: js/blocks/PitchBlocks.js:1703 +#: js/blocks/PitchBlocks.js:1745 +#.TRANS: a numeric mapping of the notes in an octave based on the musical mode +#.TRANS: a numeric mapping of the notes in an octave based on the musical mode +msgid "nth modal pitch" msgstr "" -#: js/DictBlocks.js:129 -msgid "The Dictionary block returns a dictionary." +#: js/blocks/PitchBlocks.js:1706 +msgid "n^th Modal Pitch takes the pattern of pitches in semitones for a mode and makes each point a degree of the mode," msgstr "" -#: js/DictBlocks.js:197 -#: js/DictBlocks.js:339 -msgid "The Get-dict block returns a value in the dictionary for a specified key." +#: js/blocks/PitchBlocks.js:1708 +msgid "starting from 1 and regardless of tonal framework (i.e. not always 8 notes in the octave)" msgstr "" -#: js/DictBlocks.js:212 -#: js/DictBlocks.js:354 -#.TRANS: retrieve a value from the dictionary with a given key -msgid "get value" +#: js/blocks/PitchBlocks.js:1749 +msgid "N^th Modal Pitch takes a number as an input as the n^th degree for the given mode. 0 is the first position, 1 is the second, -1 is the note before the first etc." msgstr "" -#: js/DictBlocks.js:215 -#: js/DictBlocks.js:216 -#: js/DictBlocks.js:289 -#: js/DictBlocks.js:290 -#: js/DictBlocks.js:357 -#: js/DictBlocks.js:430 -#: js/DictBlocks.js:431 -msgid "key2" +#: js/blocks/PitchBlocks.js:1751 +msgid "The pitches change according to the mode specified without any need for respellings." msgstr "" -#: js/DictBlocks.js:271 -#: js/DictBlocks.js:411 -msgid "The Set-dict block sets a value in the dictionary for a specified key." +#: js/blocks/PitchBlocks.js:1790 +msgid "Scale Degree is a common convention in music. Scale Degree offers seven possible positions in the scale (1-7) and can be modified via accidentals." msgstr "" -#: js/DictBlocks.js:286 -#: js/DictBlocks.js:427 -#.TRANS: set a value in the dictionary for a given key -msgid "set value" +#: js/blocks/PitchBlocks.js:1792 +msgid "Scale Degree 1 is always the first pitch in a given scale, regardless of octave." msgstr "" -#: js/ExtrasBlocks.js:33 -msgid "fraction" +#: js/blocks/PitchBlocks.js:1814 +#.TRANS: step some number of notes in current musical scale +msgid "scalar step" msgstr "" -#: js/ExtrasBlocks.js:36 -msgid "Convert a float to a fraction" +#: js/blocks/PitchBlocks.js:1819 +msgid "The Scalar Step block (in combination with a Number block) will play the next pitch in a scale," msgstr "" -#: js/ExtrasBlocks.js:93 -msgid "save as ABC" +#: js/blocks/PitchBlocks.js:1821 +msgid "eg if the last note played was sol, Scalar Step 1 will play la." msgstr "" -#: js/ExtrasBlocks.js:96 -#: js/ExtrasBlocks.js:132 -#: js/ExtrasBlocks.js:168 -msgid "title" +#: js/blocks/PitchBlocks.js:1857 +msgid "The Pitch block specifies the pitch name and octave of a note that together determine the frequency of the note." msgstr "" -#: js/ExtrasBlocks.js:129 -msgid "save as Lilypond" +#: js/blocks/ProgramBlocks.js:33 +msgid "The Load-heap-from-app block loads the heap from a web page." msgstr "" -#: js/ExtrasBlocks.js:165 -msgid "save as SVG" +#: js/blocks/ProgramBlocks.js:44 +#.TRANS: load the heap contents from a URL +msgid "load heap from App" msgstr "" -#: js/ExtrasBlocks.js:216 -msgid "no background" +#: js/blocks/ProgramBlocks.js:95 +msgid "Error parsing JSON data:" msgstr "" -#: js/ExtrasBlocks.js:219 -msgid "The No background block eliminates the background from the saved SVG output." +#: js/blocks/ProgramBlocks.js:100 +msgid "404: Page not found" msgstr "" -#: js/ExtrasBlocks.js:247 -msgid "show blocks" +#: js/blocks/ProgramBlocks.js:133 +msgid "The Save-heap-to-app block saves the heap to a web page." msgstr "" -#: js/ExtrasBlocks.js:249 -msgid "The Show blocks block shows the blocks." +#: js/blocks/ProgramBlocks.js:144 +#.TRANS: save the heap contents to a URL +msgid "save heap to App" msgstr "" -#: js/ExtrasBlocks.js:274 -msgid "hide blocks" +#: js/blocks/ProgramBlocks.js:189 +msgid "Cannot find a valid heap for" msgstr "" -#: js/ExtrasBlocks.js:276 -msgid "The Hide blocks block hides the blocks." +#: js/blocks/ProgramBlocks.js:206 +msgid "The Load-heap block loads the heap from a file." msgstr "" -#: js/ExtrasBlocks.js:305 -#: js/ExtrasBlocks.js:335 -msgid "The Space block is used to add space between blocks." +#: js/blocks/ProgramBlocks.js:217 +#.TRANS: load the heap from a file +msgid "load heap" msgstr "" -#: js/ExtrasBlocks.js:373 -msgid "wait" +#: js/blocks/ProgramBlocks.js:270 +msgid "The file you selected does not contain a valid heap." msgstr "" -#: js/ExtrasBlocks.js:376 -msgid "The Wait block pauses the program for a specified number of seconds." +#: js/blocks/ProgramBlocks.js:275 +msgid "The loadHeap block needs a loadFile block." msgstr "" -#: js/ExtrasBlocks.js:430 -#: plugins/facebook.rtp:30 -msgid "comment" +#: js/blocks/ProgramBlocks.js:291 +msgid "The Set-heap block loads the heap." msgstr "" -#: js/ExtrasBlocks.js:466 -msgid "print" +#: js/blocks/ProgramBlocks.js:340 +msgid "The block you selected does not contain a valid heap." msgstr "" -#: js/ExtrasBlocks.js:473 -msgid "The Print block displays text at the top of the screen." +#: js/blocks/ProgramBlocks.js:343 +msgid "The Set heap block needs a heap." msgstr "" -#: js/ExtrasBlocks.js:579 -msgid "display grid" +#: js/blocks/ProgramBlocks.js:360 +msgid "The Load-dictionary block loads a dictionary from a file." msgstr "" -#: js/ExtrasBlocks.js:584 -msgid "The Display Grid Block changes the grid type" +#: js/blocks/ProgramBlocks.js:372 +#.TRANS: load a dictionary from a file +msgid "load dictionary" msgstr "" -#: js/ExtrasBlocks.js:686 -#: js/ExtrasBlocks.js:705 -#: js/ExtrasBlocks.js:728 -#: js/ExtrasBlocks.js:751 -#: js/ExtrasBlocks.js:769 -#: js/ExtrasBlocks.js:788 -#: js/ExtrasBlocks.js:807 -#: js/ExtrasBlocks.js:826 -msgid "unknown" +#: js/blocks/ProgramBlocks.js:390 +#: js/blocks/ProgramBlocks.js:658 +#: js/blocks/ToneBlocks.js:1025 +msgid "file" msgstr "" -#: js/SensorsBlocks.js:36 -msgid "The Input block prompts for keyboard input." +#: js/blocks/ProgramBlocks.js:444 +msgid "The file you selected does not contain a valid dictionary." msgstr "" -#: js/SensorsBlocks.js:46 -msgid "input" +#: js/blocks/ProgramBlocks.js:449 +msgid "The load dictionary block needs a load file block." msgstr "" -#: js/SensorsBlocks.js:64 -msgid "Input a value" +#: js/blocks/ProgramBlocks.js:466 +msgid "The Set-dictionary block loads a dictionary." msgstr "" -#: js/SensorsBlocks.js:126 -msgid "input value" +#: js/blocks/ProgramBlocks.js:477 +#.TRANS: load a dictionary from a JSON +msgid "set dictionary" msgstr "" -#: js/SensorsBlocks.js:131 -msgid "The Input-value block stores the input." +#: js/blocks/ProgramBlocks.js:546 +msgid "The block you selected does not contain a valid dictionary." msgstr "" -#: js/SensorsBlocks.js:238 -msgid "loudness" +#: js/blocks/ProgramBlocks.js:550 +msgid "The set dictionary block needs a dictionary." msgstr "" -#: js/SensorsBlocks.js:245 -msgid "The Loudness block returns the volume detected by the microphone." +#: js/blocks/ProgramBlocks.js:567 +msgid "The Save-heap block saves the heap to a file." msgstr "" -#: js/SensorsBlocks.js:300 -msgid "click" +#: js/blocks/ProgramBlocks.js:578 +#.TRANS: save the heap to a file +msgid "save heap" msgstr "" -#: js/SensorsBlocks.js:306 -msgid "The Click block triggers an event if a mouse has been clicked." +#: js/blocks/ProgramBlocks.js:629 +msgid "The Save-dictionary block saves a dictionary to a file." msgstr "" -#: js/SensorsBlocks.js:313 -msgid "The Click block triggers an event if a turtle has been clicked." +#: js/blocks/ProgramBlocks.js:640 +#.TRANS: save a dictionary to a file +msgid "save dictionary" msgstr "" -#: js/SensorsBlocks.js:342 -msgid "cursor over" +#: js/blocks/ProgramBlocks.js:720 +msgid "The Open palette block opens a palette." msgstr "" -#: js/SensorsBlocks.js:387 -msgid "cursor out" +#: js/blocks/ProgramBlocks.js:727 +msgid "open palette" msgstr "" -#: js/SensorsBlocks.js:433 -msgid "cursor button down" +#: js/blocks/ProgramBlocks.js:785 +msgid "The Delete block block removes a block." msgstr "" -#: js/SensorsBlocks.js:477 -msgid "cursor button up" +#: js/blocks/ProgramBlocks.js:797 +#.TRANS: Move this block to the trash. +msgid "delete block" msgstr "" -#: js/SensorsBlocks.js:638 -msgid "The Get red block returns the red component of the pixel under the mouse." +#: js/blocks/ProgramBlocks.js:861 +msgid "The Move block block moves a block." msgstr "" -#: js/SensorsBlocks.js:644 -msgid "The Get red block returns the red component of the pixel under the turtle." +#: js/blocks/ProgramBlocks.js:869 +#.TRANS: Move the position of a block on the screen. +msgid "move block" msgstr "" -#: js/SensorsBlocks.js:685 -#: plugins/rodi.rtp:216 -msgid "pixel color" +#: js/blocks/ProgramBlocks.js:881 +#: js/blocks/ProgramBlocks.js:1048 +msgid "block number" msgstr "" -#: js/SensorsBlocks.js:690 -msgid "The Get pixel block returns the color of the pixel under the mouse." +#: js/blocks/ProgramBlocks.js:935 +#.TRANS: Run program beginning at this block. +msgid "run block" msgstr "" -#: js/SensorsBlocks.js:696 -msgid "The Get pixel block returns the color of the pixel under the turtle." +#: js/blocks/ProgramBlocks.js:1025 +msgid "The Dock block block connections two blocks." msgstr "" -#: js/SensorsBlocks.js:758 -msgid "time" +#: js/blocks/ProgramBlocks.js:1036 +#.TRANS: We can connect a block to another block. +msgid "connect blocks" msgstr "" -#: js/SensorsBlocks.js:804 -msgid "cursor y" +#: js/blocks/ProgramBlocks.js:1048 +msgid "target block" msgstr "" -#: js/SensorsBlocks.js:809 -msgid "The Cursor Y block returns the vertical position of the mouse." +#: js/blocks/ProgramBlocks.js:1048 +msgid "connection number" msgstr "" -#: js/SensorsBlocks.js:845 -msgid "cursor x" +#: js/blocks/ProgramBlocks.js:1140 +msgid "The Make block block creates a new block." msgstr "" -#: js/SensorsBlocks.js:850 -msgid "The Cursor X block returns the horizontal position of the mouse." +#: js/blocks/ProgramBlocks.js:1152 +#.TRANS: Create a new block +msgid "make block" msgstr "" -#: js/SensorsBlocks.js:886 -msgid "mouse button" +#: js/blocks/ProgramBlocks.js:1285 +msgid "Cannot find block" msgstr "" -#: js/SensorsBlocks.js:888 -msgid "The Mouse-button block returns True if the mouse button is pressed." +#: js/blocks/ProgramBlocks.js:1304 +#: js/blocks/ProgramBlocks.js:1313 +msgid "Warning: block argument type mismatch" msgstr "" -#: js/SensorsBlocks.js:934 -msgid "to ASCII" +#: js/blocks/ProgramBlocks.js:1347 +msgid "The Open project block is used to open a project from a web page." msgstr "" -#: js/SensorsBlocks.js:938 -msgid "The To ASCII block converts numbers to letters." +#: js/blocks/ProgramBlocks.js:1357 +msgid "open project" msgstr "" -#: js/SensorsBlocks.js:1005 -msgid "The Keyboard block returns computer keyboard input." +#: js/blocks/ProgramBlocks.js:1410 +msgid "Please enter a valid URL." msgstr "" -#: js/IntervalsActions.js:216 -msgid "Adding missing pitch number 0." +#: js/blocks/ToneBlocks.js:34 +msgid "oscillator" msgstr "" -#: js/IntervalsActions.js:224 -msgid "Ignoring pitch numbers less than zero or greater than eleven." +#: js/blocks/ToneBlocks.js:42 +#: js/blocks/WidgetBlocks.js:179 +#: js/widgets/timbre.js:1558 +#: js/widgets/timbre.js:1808 +#.TRANS: there are different types (sine, triangle, square...) of oscillators. +#.TRANS: type of filter, e.g., lowpass, highpass, etc. +msgid "type" msgstr "" -#: js/IntervalsActions.js:230 -msgid "Ignoring duplicate pitch numbers." +#: js/blocks/ToneBlocks.js:44 +#: js/widgets/timbre.js:1562 +#.TRANS: Partials refers to the number of sine waves combined into the sound. +msgid "partials" msgstr "" -#: js/PitchActions.js:88 -msgid "The Scalar Step Block must be used inside of a Note Block." +#: js/blocks/ToneBlocks.js:76 +msgid "You are adding multiple oscillator blocks." msgstr "" -#: js/PitchActions.js:107 -msgid "The Scalar Step Block must be preceded by a Pitch Block." +#: js/blocks/ToneBlocks.js:144 +#: js/widgets/timbre.js:1225 +#.TRANS: a duo synthesizer combines a synth with a sequencer +msgid "duo synth" msgstr "" -#: js/DrumActions.js:231 -msgid "Noise Block: Did you mean to use a Note block?" +#: js/blocks/ToneBlocks.js:149 +msgid "The Duo synth block is a duo-frequency modulator used to define a timbre." msgstr "" -#: js/MeterActions.js:101 -#: js/MeterActions.js:139 -msgid "beats per minute must be greater than" +#: js/blocks/ToneBlocks.js:157 +#: js/widgets/timbre.js:1476 +msgid "vibrato rate" msgstr "" -#: js/MeterActions.js:111 -#: js/MeterActions.js:149 -msgid "maximum" +#: js/blocks/ToneBlocks.js:157 +msgid "vibrato intensity" msgstr "" -#: js/MeterActions.js:117 -#: js/MeterActions.js:155 -msgid "beats per minute is" +#: js/blocks/ToneBlocks.js:185 +#: js/widgets/timbre.js:1221 +#.TRANS: AM (amplitude modulation) synthesizer +msgid "AM synth" msgstr "" -#: js/ToneActions.js:134 -msgid "Vibrato intensity must be between 1 and 100." +#: js/blocks/ToneBlocks.js:189 +msgid "The AM synth block is an amplitude modulator used to define a timbre." msgstr "" -#: js/ToneActions.js:139 -msgid "Vibrato rate must be greater than 0." +#: js/blocks/ToneBlocks.js:224 +#: js/widgets/timbre.js:1223 +#.TRANS: FM (frequency modulation) synthesizer +msgid "FM synth" msgstr "" -#: js/ToneActions.js:192 -#: js/ToneActions.js:265 -#.TRANS: Depth is the intesity of the tremolo or chorus effect. -msgid "Depth is out of range." +#: js/blocks/ToneBlocks.js:228 +msgid "The FM synth block is a frequency modulator used to define a timbre." msgstr "" -#: js/ToneActions.js:301 -msgid "Distortion must be from 0 to 100." +#: js/blocks/ToneBlocks.js:262 +msgid "partial" msgstr "" -#: js/ToneActions.js:332 -#.TRANS: partials components in a harmonic series -msgid "Partial must be greater than or equal to 0." +#: js/blocks/ToneBlocks.js:265 +msgid "The Partial block is used to specify a weight for a specific partial harmonic." msgstr "" -#: js/ToneActions.js:378 -#: js/ToneActions.js:417 -#: js/ToneActions.js:456 -#: js/timbre.js:782 -msgid "Unable to use synth due to existing oscillator" +#: js/blocks/ToneBlocks.js:284 +#.TRANS: partials are weighted components in a harmonic series +msgid "Partial weight must be between 0 and 1." msgstr "" -#: js/ToneActions.js:388 -#: js/ToneActions.js:427 -msgid "The input cannot be negative." +#: js/blocks/ToneBlocks.js:297 +#.TRANS: partials are weighted components in a harmonic series +msgid "Partial block should be used inside of a Weighted-partials block." msgstr "" -#: js/DictActions.js:75 -#: js/DictActions.js:153 -#: js/DictActions.js:188 -msgid "font" +#: js/blocks/ToneBlocks.js:325 +#.TRANS: partials are weighted components in a harmonic series +msgid "weighted partials" msgstr "" -#: js/musicutils.js:363 -#: js/musicutils.js:471 -#: js/pitchdrummatrix.js:151 -#: js/musickeyboard.js:2563 -msgid "rest" +#: js/blocks/ToneBlocks.js:383 +msgid "The Harmonic block will add harmonics to the contained notes." msgstr "" -#: js/musicutils.js:565 -#.TRANS: ordinal number. Please keep exactly one space between each number. -msgid "1st 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th" +#: js/blocks/ToneBlocks.js:390 +#.TRANS: A harmonic is an overtone. +msgid "harmonic" msgstr "" -#: js/musicutils.js:629 -#: js/musicutils.js:812 -#: js/musicutils.js:911 -#.TRANS: augmented is a music term related to intervals -msgid "augmented" +#: js/blocks/ToneBlocks.js:431 +msgid "The Distortion block adds distortion to the pitch." msgstr "" -#: js/musicutils.js:631 -#: js/musicutils.js:813 -#: js/musicutils.js:910 -#.TRANS: diminished is a music term related to intervals and mode -msgid "diminished" +#: js/blocks/ToneBlocks.js:438 +#: js/widgets/timbre.js:2100 +#.TRANS: distortion is an alteration in the sound +msgid "distortion" msgstr "" -#: js/musicutils.js:639 -#.TRANS: twelve semi-tone scale for music -msgid "chromatic" +#: js/blocks/ToneBlocks.js:487 +msgid "The Tremolo block adds a wavering effect." msgstr "" -#: js/musicutils.js:640 -msgid "algerian" +#: js/blocks/ToneBlocks.js:495 +#: js/widgets/timbre.js:2092 +#.TRANS: a wavering effect in a musical tone +msgid "tremolo" msgstr "" -#: js/musicutils.js:641 -msgid "spanish" +#: js/blocks/ToneBlocks.js:500 +#: js/blocks/ToneBlocks.js:569 +#: js/blocks/ToneBlocks.js:630 +#: js/blocks/ToneBlocks.js:689 +#: js/widgets/timbre.js:2134 +#: js/widgets/timbre.js:2222 +#: js/widgets/timbre.js:2317 +#: js/widgets/timbre.js:2419 +#.TRANS: rate at which tremolo wavers +msgid "rate" msgstr "" -#: js/musicutils.js:643 -#.TRANS: modal scale in music -msgid "octatonic" +#: js/blocks/ToneBlocks.js:502 +#: js/blocks/ToneBlocks.js:630 +#: js/widgets/timbre.js:2137 +#: js/widgets/timbre.js:2328 +#.TRANS: amplitude of tremolo waver +msgid "depth" msgstr "" -#: js/musicutils.js:645 -#.TRANS: harmonic major scale in music -msgid "harmonic major" +#: js/blocks/ToneBlocks.js:559 +msgid "The Phaser block adds a sweeping sound." msgstr "" -#: js/musicutils.js:647 -#.TRANS: natural minor scales in music -msgid "natural minor" +#: js/blocks/ToneBlocks.js:566 +#: js/widgets/timbre.js:2098 +#.TRANS: alter the phase of the sound +msgid "phaser" msgstr "" -#: js/musicutils.js:649 -#.TRANS: harmonic minor scale in music -msgid "harmonic minor" +#: js/blocks/ToneBlocks.js:569 +#: js/turtleactions/IntervalsActions.js:114 +#: js/widgets/timbre.js:2422 +msgid "octaves" msgstr "" -#: js/musicutils.js:651 -#.TRANS: melodic minor scale in music -msgid "melodic minor" +#: js/blocks/ToneBlocks.js:569 +#: js/widgets/timbre.js:2425 +msgid "base frequency" msgstr "" -#: js/musicutils.js:655 -#.TRANS: modal scale for music -msgid "dorian" +#: js/blocks/ToneBlocks.js:619 +msgid "The Chorus block adds a chorus effect." msgstr "" -#: js/musicutils.js:657 -#.TRANS: modal scale for music -msgid "phrygian" +#: js/blocks/ToneBlocks.js:627 +#: js/widgets/timbre.js:2096 +#.TRANS: musical effect to simulate a choral sound +msgid "chorus" msgstr "" -#: js/musicutils.js:659 -#.TRANS: modal scale for music -msgid "lydian" +#: js/blocks/ToneBlocks.js:630 +msgid "delay" msgstr "" -#: js/musicutils.js:661 -#.TRANS: modal scale for music -msgid "mixolydian" +#: js/blocks/ToneBlocks.js:678 +msgid "The Vibrato block adds a rapid, slight variation in pitch." msgstr "" -#: js/musicutils.js:665 -#.TRANS: modal scale for music -msgid "locrian" +#: js/blocks/ToneBlocks.js:686 +#: js/widgets/timbre.js:2094 +#.TRANS: a rapid, slight variation in pitch +msgid "vibrato" msgstr "" -#: js/musicutils.js:667 -#.TRANS: minor jazz scale for music -msgid "jazz minor" +#: js/blocks/ToneBlocks.js:689 +#: js/widgets/timbre.js:2221 +msgid "intensity" msgstr "" -#: js/musicutils.js:669 -#.TRANS: bebop scale for music -msgid "bebop" +#: js/blocks/ToneBlocks.js:733 +#.TRANS: select synthesizer +msgid "set synth" msgstr "" -#: js/musicutils.js:670 -msgid "arabic" +#: js/blocks/ToneBlocks.js:804 +msgid "synth name" msgstr "" -#: js/musicutils.js:671 -msgid "byzantine" +#: js/blocks/ToneBlocks.js:842 +msgid "set default instrument" msgstr "" -#: js/musicutils.js:673 -#.TRANS: musical scale for music by Verdi -msgid "enigmatic" +#: js/blocks/ToneBlocks.js:895 +#: js/blocks/ToneBlocks.js:943 +#.TRANS: set the characteristics of a custom instrument +msgid "set instrument" msgstr "" -#: js/musicutils.js:674 -msgid "ethiopian" +#: js/blocks/ToneBlocks.js:898 +#: js/blocks/ToneBlocks.js:926 +#: js/blocks/ToneBlocks.js:932 +msgid "The Set instrument block selects a voice for the synthesizer," msgstr "" -#: js/musicutils.js:676 -#.TRANS: Ethiopic scale for music -msgid "geez" +#: js/blocks/ToneBlocks.js:900 +#: js/blocks/ToneBlocks.js:934 +msgid "eg guitar piano violin or cello." msgstr "" -#: js/musicutils.js:677 -msgid "hindu" +#: js/blocks/ToneBlocks.js:1015 +msgid "Import a sound file to use as an instrument and set its pitch center." msgstr "" -#: js/musicutils.js:678 -msgid "hungarian" +#: js/blocks/ToneBlocks.js:1110 +msgid "Upload a sound file to connect with the sample block." msgstr "" -#: js/musicutils.js:680 -#.TRANS: minor Romanian scale for music -msgid "romanian minor" +#: js/blocks/VolumeBlocks.js:35 +msgid "synth volume" msgstr "" -#: js/musicutils.js:681 -msgid "spanish gypsy" +#: js/blocks/VolumeBlocks.js:39 +msgid "The Synth volume block returns the current volume of the current synthesizer." msgstr "" -#: js/musicutils.js:683 -#.TRANS: musical scale for Mid-Eastern music -msgid "maqam" +#: js/blocks/VolumeBlocks.js:105 +msgid "master volume" msgstr "" -#: js/musicutils.js:685 -#.TRANS: minor blues scale for music -msgid "minor blues" +#: js/blocks/VolumeBlocks.js:109 +msgid "The Master volume block returns the master volume." msgstr "" -#: js/musicutils.js:687 -#.TRANS: major blues scale for music -msgid "major blues" +#: js/blocks/VolumeBlocks.js:355 +#: js/blocks/VolumeBlocks.js:524 +msgid "set synth volume" msgstr "" -#: js/musicutils.js:688 -msgid "whole tone" +#: js/blocks/VolumeBlocks.js:362 +#: js/blocks/VolumeBlocks.js:545 +msgid "synth" msgstr "" -#: js/musicutils.js:690 -#.TRANS: pentatonic is a general term that means "five note scale". This scale is typically known as "minor pentatonic" -msgid "minor pentatonic" +#: js/blocks/VolumeBlocks.js:403 +#: js/blocks/VolumeBlocks.js:577 +#: js/blocks/VolumeBlocks.js:740 +#: js/turtleactions/VolumeActions.js:173 +msgid "Setting volume to 0." msgstr "" -#: js/musicutils.js:692 -#.TRANS: pentatonic is a general term that means "five note scale". This scale is typically known as "major pentatonic" -msgid "major pentatonic" +#: js/blocks/VolumeBlocks.js:440 +msgid "Synth not found" msgstr "" -#: js/musicutils.js:693 -msgid "chinese" +#: js/blocks/VolumeBlocks.js:494 +msgid "set drum volume" msgstr "" -#: js/musicutils.js:694 -msgid "egyptian" +#: js/blocks/VolumeBlocks.js:530 +msgid "The Set synth volume block will change the volume of a particular synth," msgstr "" -#: js/musicutils.js:696 -#.TRANS: https://en.wikipedia.org/wiki/Hirajoshi_scale NOTE: There are three different versions of this scale -msgid "hirajoshi" +#: js/blocks/VolumeBlocks.js:532 +msgid "eg guitar violin snare drum etc." msgstr "" -#: js/musicutils.js:697 -msgid "Japan" +#: js/blocks/VolumeBlocks.js:534 +msgid "The default volume is 50." msgstr "" -#: js/musicutils.js:699 -#.TRANS: https://en.wikipedia.org/wiki/In_scale and https://en.wikipedia.org/wiki/Sakura_Sakura -msgid "in" +#: js/blocks/VolumeBlocks.js:536 +msgid "The range is 0 for silence to 100 for full volume." msgstr "" -#: js/musicutils.js:701 -#.TRANS: https://en.wikipedia.org/wiki/Miny%C5%8D_scale -msgid "minyo" +#: js/blocks/VolumeBlocks.js:597 +msgid "set panning" msgstr "" -#: js/musicutils.js:703 -#.TRANS: Italian mathematician -msgid "fibonacci" +#: js/blocks/VolumeBlocks.js:603 +msgid "The Set Panning block sets the panning for all synthesizers." msgstr "" -#: js/musicutils.js:708 -#: js/musicutils.js:1106 -#.TRANS: lowpass filter -msgid "lowpass" +#: js/blocks/VolumeBlocks.js:625 +msgid "Warning: Sound is coming out from only the left or right side." msgstr "" -#: js/musicutils.js:710 -#: js/musicutils.js:1107 -#.TRANS: bandpass filter -msgid "bandpass" +#: js/blocks/VolumeBlocks.js:647 +#: js/blocks/VolumeBlocks.js:695 +msgid "set master volume" msgstr "" -#: js/musicutils.js:712 -#: js/musicutils.js:1108 -#.TRANS: high-shelf filter -msgid "highshelf" +#: js/blocks/VolumeBlocks.js:653 +msgid "The Set master volume block sets the volume for all synthesizers." msgstr "" -#: js/musicutils.js:714 -#: js/musicutils.js:1109 -#.TRANS: low-shelf filter -msgid "lowshelf" +#: js/blocks/VolumeBlocks.js:784 +msgid "The Set relative volume block changes the volume of the contained notes." msgstr "" -#: js/musicutils.js:716 -#: js/musicutils.js:1110 -#.TRANS: notch-shelf filter -msgid "notch" +#: js/blocks/VolumeBlocks.js:791 +msgid "set relative volume" msgstr "" -#: js/musicutils.js:718 -#: js/musicutils.js:1111 -#.TRANS: all-pass filter -msgid "allpass" +#: js/blocks/VolumeBlocks.js:857 +msgid "decrescendo" msgstr "" -#: js/musicutils.js:720 -#: js/musicutils.js:1112 -#.TRANS: peaking filter -msgid "peaking" +#: js/blocks/VolumeBlocks.js:921 +msgid "crescendo" msgstr "" -#: js/musicutils.js:731 -#: js/synthutils.js:58 -#.TRANS: musical instrument -msgid "violin" +#: js/blocks/WidgetBlocks.js:81 +#.TRANS: sound envelope (ADSR) +msgid "envelope" msgstr "" -#: js/musicutils.js:732 -#: js/synthutils.js:60 -#.TRANS: viola musical instrument -msgid "viola" +#: js/blocks/WidgetBlocks.js:89 +#.TRANS: Attack time is the time taken for initial run-up of level from nil to peak, beginning when the key is first pressed. +msgid "attack" msgstr "" -#: js/musicutils.js:733 -#: js/synthutils.js:98 -#.TRANS: xylophone musical instrument -msgid "xylophone" +#: js/blocks/WidgetBlocks.js:91 +#.TRANS: Decay time is the time taken for the subsequent run down from the attack level to the designated sustain level. +msgid "decay" msgstr "" -#: js/musicutils.js:734 -#: js/synthutils.js:120 -#.TRANS: vibraphone musical instrument -msgid "vibraphone" +#: js/blocks/WidgetBlocks.js:93 +#.TRANS: Sustain level is the level during the main sequence of the sound's duration, until the key is released. +msgid "sustain" msgstr "" -#: js/musicutils.js:735 -#: js/synthutils.js:62 -#.TRANS: musical instrument -msgid "cello" +#: js/blocks/WidgetBlocks.js:95 +#.TRANS: Release time is the time taken for the level to decay from the sustain level to zero after the key is released. +msgid "release" msgstr "" -#: js/musicutils.js:737 -#: js/synthutils.js:66 -#.TRANS: viola musical instrument -msgid "double bass" +#: js/blocks/WidgetBlocks.js:113 +msgid "Attack value should be from 0 to 100." msgstr "" -#: js/musicutils.js:738 -#: js/synthutils.js:68 -#: js/rhythmruler.js:2119 -#.TRANS: musical instrument -msgid "guitar" +#: js/blocks/WidgetBlocks.js:116 +msgid "Decay value should be from 0 to 100." msgstr "" -#: js/musicutils.js:739 -#: js/synthutils.js:70 -#.TRANS: musical instrument -msgid "acoustic guitar" +#: js/blocks/WidgetBlocks.js:119 +msgid "Sustain value should be from 0 to 100." msgstr "" -#: js/musicutils.js:740 -#: js/synthutils.js:72 -#.TRANS: musical instrument -msgid "flute" +#: js/blocks/WidgetBlocks.js:122 +msgid "Release value should be from 0-100." msgstr "" -#: js/musicutils.js:741 -#: js/synthutils.js:74 -#.TRANS: musical instrument -msgid "clarinet" +#: js/blocks/WidgetBlocks.js:140 +msgid "You are adding multiple envelope blocks." msgstr "" -#: js/musicutils.js:742 -#: js/synthutils.js:76 -#.TRANS: musical instrument -msgid "saxophone" +#: js/blocks/WidgetBlocks.js:171 +#.TRANS: a filter removes some unwanted components from a signal +msgid "filter" msgstr "" -#: js/musicutils.js:743 -#: js/synthutils.js:78 -#.TRANS: musical instrument -msgid "tuba" +#: js/blocks/WidgetBlocks.js:181 +#: js/widgets/timbre.js:1818 +#.TRANS: rolloff is the steepness of a change in frequency. +msgid "rolloff" msgstr "" -#: js/musicutils.js:744 -#: js/synthutils.js:80 -#.TRANS: musical instrument -msgid "trumpet" +#: js/blocks/WidgetBlocks.js:213 +#.TRANS: rolloff is the steepness of a change in frequency. +msgid "Rolloff value should be either -12, -24, -48, or -96 decibels/octave." msgstr "" -#: js/musicutils.js:745 -#: js/synthutils.js:82 -#.TRANS: musical instrument -msgid "oboe" +#: js/blocks/WidgetBlocks.js:252 +msgid "The Temperament tool is used to define custom tuning." msgstr "" -#: js/musicutils.js:746 -#: js/synthutils.js:84 -#.TRANS: musical instrument -msgid "trombone" +#: js/blocks/WidgetBlocks.js:332 +#: js/blocks/WidgetBlocks.js:1573 +#: js/widgets/sampler.js:547 +msgid "Upload a sample and adjust its pitch center." msgstr "" -#: js/musicutils.js:747 -#: js/synthutils.js:100 -#.TRANS: polytone synthesizer -msgid "electronic synth" +#: js/blocks/WidgetBlocks.js:339 +#.TRANS: the speed at music is should be played. +msgid "sampler" msgstr "" -#: js/musicutils.js:748 -#: js/synthutils.js:102 -#.TRANS: simple monotone synthesizer -msgid "simple 1" +#: js/blocks/WidgetBlocks.js:517 +msgid "The Meter block opens a tool to select strong beats for the meter." msgstr "" -#: js/musicutils.js:749 -msgid "simple 2" +#: js/blocks/WidgetBlocks.js:573 +msgid "The oscilloscope block opens a tool to visualize waveforms." msgstr "" -#: js/musicutils.js:750 -msgid "simple 3" +#: js/blocks/WidgetBlocks.js:578 +msgid "oscilloscope" msgstr "" -#: js/musicutils.js:751 -msgid "simple 4" +#: js/blocks/WidgetBlocks.js:645 +msgid "The Custom mode block opens a tool to explore musical mode (the spacing of the notes in a scale)." msgstr "" -#: js/musicutils.js:753 -#: js/synthutils.js:49 -#.TRANS: brown noise synthesizer -msgid "brown noise" +#: js/blocks/WidgetBlocks.js:651 +#.TRANS: musical mode is the pattern of half-steps in an octave, e.g., Major or Minor modes +msgid "custom mode" msgstr "" -#: js/musicutils.js:754 -#: js/synthutils.js:51 -#.TRANS: pink noise synthesizer -msgid "pink noise" +#: js/blocks/WidgetBlocks.js:700 +msgid "The Tempo block opens a metronome to visualize the beat." msgstr "" -#: js/musicutils.js:756 -#: js/synthutils.js:127 -#: js/rhythmruler.js:1670 -#: js/rhythmruler.js:1928 -#.TRANS: musical instrument -msgid "snare drum" +#: js/blocks/WidgetBlocks.js:762 +msgid "The Arpeggio Widget is used to compose chord sequences." msgstr "" -#: js/musicutils.js:757 -#: js/synthutils.js:129 -#.TRANS: musical instrument -msgid "kick drum" +#: js/blocks/WidgetBlocks.js:837 +msgid "The Pitch drum matrix is used to map pitches to drum sounds." msgstr "" -#: js/musicutils.js:758 -#: js/synthutils.js:131 -#.TRANS: musical instrument -msgid "tom tom" +#: js/blocks/WidgetBlocks.js:842 +#.TRANS: makes a mapping between pitches and drum sounds +msgid "pitch-drum mapper" msgstr "" -#: js/musicutils.js:759 -#: js/synthutils.js:133 -#.TRANS: musical instrument -msgid "floor tom" +#: js/blocks/WidgetBlocks.js:891 +msgid "You must have at least one pitch block and one drum block in the matrix." msgstr "" -#: js/musicutils.js:760 -#: js/synthutils.js:135 -#.TRANS: musical instrument -msgid "bass drum" +#: js/blocks/WidgetBlocks.js:920 +msgid "The Pitch slider tool to is used to generate pitches at selected frequencies." msgstr "" -#: js/musicutils.js:761 -#: js/synthutils.js:137 -#.TRANS: a drum made from an inverted cup -msgid "cup drum" +#: js/blocks/WidgetBlocks.js:925 +#.TRANS: widget to generate pitches using a slider +msgid "pitch slider" msgstr "" -#: js/musicutils.js:762 -#: js/synthutils.js:139 -#.TRANS: musical instrument -msgid "darbuka drum" +#: js/blocks/WidgetBlocks.js:977 +msgid "chromatic keyboard" msgstr "" -#: js/musicutils.js:763 -#: js/synthutils.js:143 -#.TRANS: musical instrument -msgid "hi hat" +#: js/blocks/WidgetBlocks.js:1011 +#: js/blocks/WidgetBlocks.js:1077 +#.TRANS: widget to generate pitches using a slider +msgid "music keyboard" msgstr "" -#: js/musicutils.js:764 -#: js/synthutils.js:145 -#.TRANS: a small metal bell -msgid "ride bell" +#: js/blocks/WidgetBlocks.js:1062 +#: js/blocks/WidgetBlocks.js:1069 +msgid "The Music keyboard block opens a piano keyboard that can be used to create notes." msgstr "" -#: js/musicutils.js:765 -#: js/synthutils.js:147 -#.TRANS: musical instrument -msgid "cow bell" +#: js/blocks/WidgetBlocks.js:1128 +msgid "The Pitch staircase tool to is used to generate pitches from a given ratio." msgstr "" -#: js/musicutils.js:766 -msgid "japanese drum" +#: js/blocks/WidgetBlocks.js:1135 +#.TRANS: generate a progressive sequence of pitches +msgid "pitch staircase" msgstr "" -#: js/musicutils.js:767 -#: js/synthutils.js:153 -#.TRANS: musical instrument -msgid "japanese bell" +#: js/blocks/WidgetBlocks.js:1222 +msgid "The Rhythm Maker block opens a tool to create drum machines." msgstr "" -#: js/musicutils.js:768 -#: js/synthutils.js:149 -#.TRANS: musical instrument -msgid "triangle bell" +#: js/blocks/WidgetBlocks.js:1291 +msgid "G major scale" msgstr "" -#: js/musicutils.js:769 -#: js/synthutils.js:151 -#.TRANS: musical instrument -msgid "finger cymbals" +#: js/blocks/WidgetBlocks.js:1326 +msgid "C major scale" msgstr "" -#: js/musicutils.js:770 -#: js/synthutils.js:155 -#.TRANS: a musically tuned set of bells -msgid "chime" +#: js/blocks/WidgetBlocks.js:1366 +msgid "The Phrase Maker block opens a tool to create musical phrases." msgstr "" -#: js/musicutils.js:771 -#: js/synthutils.js:157 -#.TRANS: a musical instrument -msgid "gong" +#: js/blocks/WidgetBlocks.js:1373 +#.TRANS: assigns pitch to a sequence of beats to generate a melody +msgid "phrase maker" msgstr "" -#: js/musicutils.js:772 -#: js/synthutils.js:159 -#.TRANS: sound effect -msgid "clang" +#: js/blocks/WidgetBlocks.js:1444 +msgid "You must have at least one pitch block and one rhythm block in the matrix." msgstr "" -#: js/musicutils.js:773 -#: js/synthutils.js:161 -#.TRANS: sound effect -msgid "crash" +#: js/blocks/WidgetBlocks.js:1503 +msgid "The Status block opens a tool for inspecting the status of Music Blocks as it is running." msgstr "" -#: js/musicutils.js:774 -#: js/synthutils.js:163 -#.TRANS: sound effect -msgid "bottle" +#: js/blocks/WidgetBlocks.js:1580 +#.TRANS: AI-generated music +msgid "aimusic" msgstr "" -#: js/musicutils.js:775 -#: js/synthutils.js:165 -#.TRANS: sound effect -msgid "clap" +#: js/turtleactions/MeterActions.js:101 +#: js/turtleactions/MeterActions.js:139 +msgid "beats per minute must be greater than" msgstr "" -#: js/musicutils.js:776 -#: js/synthutils.js:167 -#.TRANS: sound effect -msgid "slap" +#: js/turtleactions/MeterActions.js:111 +#: js/turtleactions/MeterActions.js:149 +msgid "maximum" msgstr "" -#: js/musicutils.js:777 -#: js/synthutils.js:169 -#.TRANS: sound effect -msgid "splash" +#: js/turtleactions/MeterActions.js:117 +#: js/turtleactions/MeterActions.js:155 +msgid "beats per minute is" msgstr "" -#: js/musicutils.js:778 -#: js/synthutils.js:171 -#.TRANS: sound effect -msgid "bubbles" +#: js/turtleactions/DictActions.js:75 +#: js/turtleactions/DictActions.js:142 +#: js/turtleactions/DictActions.js:172 +msgid "font" msgstr "" -#: js/musicutils.js:779 -#: js/synthutils.js:173 -#.TRANS: sound effect -msgid "raindrop" +#: js/turtleactions/DictActions.js:255 +msgid "Dictionary with this name does not exist" msgstr "" -#: js/musicutils.js:780 -#: js/synthutils.js:175 -#.TRANS: animal sound effect -msgid "cat" +#: js/turtleactions/DictActions.js:259 +msgid "Key with this name does not exist in " msgstr "" -#: js/musicutils.js:781 -#: js/synthutils.js:177 -#.TRANS: animal sound effect -msgid "cricket" +#: js/turtleactions/DrumActions.js:227 +msgid "Noise Block: Did you mean to use a Note block?" msgstr "" -#: js/musicutils.js:782 -#: js/synthutils.js:179 -#.TRANS: animal sound effect -msgid "dog" +#: js/turtleactions/IntervalsActions.js:113 +msgid "one" msgstr "" -#: js/musicutils.js:784 -#: js/synthutils.js:86 -#.TRANS: musical instrument -msgid "banjo" +#: js/turtleactions/IntervalsActions.js:113 +msgid "two" msgstr "" -#: js/musicutils.js:785 -#: js/synthutils.js:88 -#.TRANS: musical instrument -msgid "koto" +#: js/turtleactions/IntervalsActions.js:113 +msgid "three" msgstr "" -#: js/musicutils.js:786 -#: js/synthutils.js:90 -#.TRANS: musical instrument -msgid "dulcimer" +#: js/turtleactions/IntervalsActions.js:113 +msgid "four" msgstr "" -#: js/musicutils.js:787 -#: js/synthutils.js:92 -#.TRANS: musical instrument -msgid "electric guitar" +#: js/turtleactions/IntervalsActions.js:113 +msgid "five" msgstr "" -#: js/musicutils.js:788 -#: js/synthutils.js:94 -#.TRANS: musical instrument -msgid "bassoon" +#: js/turtleactions/IntervalsActions.js:113 +msgid "six" msgstr "" -#: js/musicutils.js:789 -#: js/synthutils.js:96 -#.TRANS: musical instrument -msgid "celeste" +#: js/turtleactions/IntervalsActions.js:113 +msgid "seven" msgstr "" -#: js/musicutils.js:791 -#: js/musicutils.js:1123 -#: js/musicutils.js:1131 -#: js/temperament.js:650 -#.TRANS: musical temperament -msgid "equal" +#: js/turtleactions/IntervalsActions.js:113 +msgid "eight" msgstr "" -#: js/musicutils.js:793 -#: js/musicutils.js:1125 -#: js/musicutils.js:1133 -#.TRANS: musical temperament -msgid "Pythagorean" +#: js/turtleactions/IntervalsActions.js:113 +msgid "nine" msgstr "" -#: js/musicutils.js:795 -#: js/musicutils.js:1124 -#: js/musicutils.js:1132 -#.TRANS: musical temperament -msgid "just intonation" +#: js/turtleactions/IntervalsActions.js:119 +msgid "a" msgstr "" -#: js/musicutils.js:797 -#: js/musicutils.js:1126 -#: js/musicutils.js:1127 -#: js/musicutils.js:1134 -#: js/musicutils.js:1135 -#.TRANS: musical temperament -msgid "meantone" +#: js/turtleactions/IntervalsActions.js:120 +msgid "below" msgstr "" -#: js/musicutils.js:814 -msgid "major 7th" +#: js/turtleactions/IntervalsActions.js:124 +msgid "above" msgstr "" -#: js/musicutils.js:815 -msgid "minor 7th" +#: js/turtleactions/IntervalsActions.js:131 +msgid "plus" msgstr "" -#: js/musicutils.js:816 -msgid "dominant 7th" +#: js/turtleactions/IntervalsActions.js:139 +msgid " below" msgstr "" -#: js/musicutils.js:817 -msgid "minor-major 7th" +#: js/turtleactions/IntervalsActions.js:257 +msgid "Adding missing pitch number 0." msgstr "" -#: js/musicutils.js:818 -msgid "fully-diminished 7th" +#: js/turtleactions/IntervalsActions.js:265 +msgid "Ignoring pitch numbers less than zero or greater than eleven." msgstr "" -#: js/musicutils.js:819 -msgid "half-diminished 7th" +#: js/turtleactions/IntervalsActions.js:271 +msgid "Ignoring duplicate pitch numbers." msgstr "" -#: js/musicutils.js:4379 -#: js/musicutils.js:4416 -msgid "current" +#: js/turtleactions/ToneActions.js:134 +msgid "Vibrato intensity must be between 1 and 100." msgstr "" -#: js/musicutils.js:4382 -#: js/musicutils.js:4407 -msgid "next" +#: js/turtleactions/ToneActions.js:139 +msgid "Vibrato rate must be greater than 0." msgstr "" -#: js/musicutils.js:4385 -#: js/musicutils.js:4412 -msgid "previous" +#: js/turtleactions/ToneActions.js:192 +#: js/turtleactions/ToneActions.js:265 +#.TRANS: Depth is the intesity of the tremolo or chorus effect. +msgid "Depth is out of range." msgstr "" -#: js/synthutils.js:104 -#.TRANS: simple monotone synthesizer -msgid "simple-2" +#: js/turtleactions/ToneActions.js:301 +msgid "Distortion must be from 0 to 100." msgstr "" -#: js/synthutils.js:106 -#.TRANS: simple monotone synthesizer -msgid "simple-3" +#: js/turtleactions/ToneActions.js:332 +#.TRANS: partials components in a harmonic series +msgid "Partial must be greater than or equal to 0." msgstr "" -#: js/synthutils.js:108 -#.TRANS: simple monotone synthesizer -msgid "simple-4" +#: js/turtleactions/ToneActions.js:378 +#: js/turtleactions/ToneActions.js:417 +#: js/turtleactions/ToneActions.js:456 +#: js/widgets/timbre.js:782 +msgid "Unable to use synth due to existing oscillator" msgstr "" -#: js/synthutils.js:141 -#.TRANS: musical instrument -msgid "taiko" +#: js/turtleactions/ToneActions.js:388 +#: js/turtleactions/ToneActions.js:427 +msgid "The input cannot be negative." msgstr "" -#: js/modewidget.js:86 -#: js/modewidget.js:88 -#: js/modewidget.js:642 -#: js/modewidget.js:644 -#: js/modewidget.js:712 -#: js/modewidget.js:714 -#: js/temperament.js:2078 -#: js/rhythmruler.js:189 -#: js/rhythmruler.js:1410 -#: js/rhythmruler.js:1412 -#: js/rhythmruler.js:1435 -#: js/rhythmruler.js:1437 -#: js/meterwidget.js:89 -#: js/meterwidget.js:91 +#: js/widgets/modewidget.js:86 +#: js/widgets/modewidget.js:88 +#: js/widgets/modewidget.js:642 +#: js/widgets/modewidget.js:644 +#: js/widgets/modewidget.js:712 +#: js/widgets/modewidget.js:714 +#: js/widgets/meterwidget.js:194 +#: js/widgets/meterwidget.js:196 +#: js/widgets/temperament.js:2236 +#: js/widgets/rhythmruler.js:457 +#: js/widgets/rhythmruler.js:1790 +#: js/widgets/rhythmruler.js:1792 +#: js/widgets/rhythmruler.js:1816 +#: js/widgets/rhythmruler.js:1818 msgid "Play all" msgstr "" -#: js/modewidget.js:115 -#: js/pitchstaircase.js:641 -#: js/phrasemaker.js:339 -#: js/pitchdrummatrix.js:94 -#: js/pitchslider.js:125 -#: js/temperament.js:2083 -#: js/musickeyboard.js:530 -#: js/timbre.js:756 -#: js/meterwidget.js:124 -#: js/arpeggio.js:103 +#: js/widgets/modewidget.js:115 +#: js/widgets/meterwidget.js:229 +#: js/widgets/pitchdrummatrix.js:166 +#: js/widgets/pitchslider.js:125 +#: js/widgets/pitchstaircase.js:641 +#: js/widgets/temperament.js:2244 +#: js/widgets/timbre.js:756 +#: js/widgets/arpeggio.js:103 +#: js/widgets/musickeyboard.js:688 +#: js/widgets/phrasemaker.js:550 msgid "Save" msgstr "" -#: js/modewidget.js:121 -#: js/pitchstaircase.js:686 -#: js/phrasemaker.js:356 -#: js/pitchdrummatrix.js:109 -#: js/musickeyboard.js:534 -#: js/rhythmruler.js:269 -#: js/arpeggio.js:118 +#: js/widgets/modewidget.js:121 +#: js/widgets/pitchdrummatrix.js:181 +#: js/widgets/pitchstaircase.js:686 +#: js/widgets/arpeggio.js:118 +#: js/widgets/musickeyboard.js:696 +#: js/widgets/phrasemaker.js:567 +#: js/widgets/rhythmruler.js:601 #.TRANS: clear all subdivisions from the ruler. msgid "Clear" msgstr "" -#: js/modewidget.js:127 +#: js/widgets/modewidget.js:127 msgid "Rotate counter clockwise" msgstr "" -#: js/modewidget.js:133 +#: js/widgets/modewidget.js:133 msgid "Rotate clockwise" msgstr "" -#: js/modewidget.js:139 +#: js/widgets/modewidget.js:139 msgid "Invert" msgstr "" -#: js/modewidget.js:145 -#: js/pitchstaircase.js:678 -#: js/rhythmruler.js:258 -#: js/timbre.js:963 +#: js/widgets/modewidget.js:145 +#: js/widgets/pitchstaircase.js:678 +#: js/widgets/timbre.js:963 +#: js/widgets/rhythmruler.js:578 msgid "Undo" msgstr "" -#: js/modewidget.js:163 +#: js/widgets/modewidget.js:163 #.TRANS: A circle of notes represents the musical mode. msgid "Click in the circle to select notes for the mode." msgstr "" -#: js/modewidget.js:1017 -#: js/pitchstaircase.js:580 -#: js/phrasemaker.js:4855 -#: js/temperament.js:1754 -#: js/rhythmruler.js:1865 -#: js/rhythmruler.js:2081 -#: js/tempo.js:414 +#: js/widgets/modewidget.js:1017 +#: js/widgets/pitchstaircase.js:580 +#: js/widgets/temperament.js:1929 +#: js/widgets/tempo.js:414 +#: js/widgets/phrasemaker.js:5356 +#: js/widgets/rhythmruler.js:2254 +#: js/widgets/rhythmruler.js:2472 msgid "New action block generated!" msgstr "" -#: js/oscilloscope.js:79 -msgid "Zoom In" -msgstr "" - -#: js/oscilloscope.js:88 -msgid "Zoom Out" -msgstr "" - -#: js/pitchstaircase.js:624 -msgid "Play chord" -msgstr "" - -#: js/pitchstaircase.js:632 -msgid "Play scale" +#: js/widgets/meterwidget.js:275 +msgid "Reset" msgstr "" -#: js/pitchstaircase.js:696 -msgid "Click on a note to create a new step." +#: js/widgets/meterwidget.js:301 +msgid "Click in the circle to select strong beats for the meter." msgstr "" -#: js/phrasemaker.js:363 -msgid "Export" +#: js/widgets/oscilloscope.js:79 +msgid "Zoom In" msgstr "" -#: js/phrasemaker.js:370 -msgid "Sort" +#: js/widgets/oscilloscope.js:88 +msgid "Zoom Out" msgstr "" -#: js/phrasemaker.js:373 -#: js/musickeyboard.js:559 -msgid "Add note" +#: js/widgets/pitchdrummatrix.js:356 +#: js/widgets/pitchdrummatrix.js:752 +msgid "Click in the grid to map notes to drums." msgstr "" -#: js/phrasemaker.js:764 -msgid "Click on the table to add notes." +#: js/widgets/pitchslider.js:103 +msgid "Move up" msgstr "" -#: js/phrasemaker.js:2414 -#: js/phrasemaker.js:2543 -msgid "tuplet value" +#: js/widgets/pitchslider.js:114 +msgid "Move down" msgstr "" -#: js/pitchdrummatrix.js:270 -#: js/pitchdrummatrix.js:639 -msgid "Click in the grid to map notes to drums." +#: js/widgets/pitchslider.js:136 +msgid "Click on the slider to create a note block." msgstr "" -#: js/pitchslider.js:103 -msgid "Move up" +#: js/widgets/pitchstaircase.js:624 +msgid "Play chord" msgstr "" -#: js/pitchslider.js:114 -msgid "Move down" +#: js/widgets/pitchstaircase.js:632 +msgid "Play scale" msgstr "" -#: js/pitchslider.js:136 -msgid "Click on the slider to create a note block." +#: js/widgets/pitchstaircase.js:696 +msgid "Click on a note to create a new step." msgstr "" -#: js/temperament.js:215 +#: js/widgets/temperament.js:321 msgid "back to 2:1 octave space" msgstr "" -#: js/temperament.js:323 +#: js/widgets/temperament.js:447 msgid "edit" msgstr "" -#: js/temperament.js:330 -#: js/temperament.js:332 -#: js/temperament.js:1336 -#: js/temperament.js:1338 +#: js/widgets/temperament.js:454 +#: js/widgets/temperament.js:456 +#: js/widgets/temperament.js:1493 +#: js/widgets/temperament.js:1495 msgid "close" msgstr "" -#: js/temperament.js:423 -#: js/temperament.js:736 -#: js/temperament.js:743 -#: js/temperament.js:845 -#: js/temperament.js:935 -#: js/temperament.js:942 -#: js/temperament.js:1015 -#: js/temperament.js:1284 -#: js/temperament.js:1354 -#: js/temperament.js:1430 +#: js/widgets/temperament.js:552 +#: js/widgets/temperament.js:877 +#: js/widgets/temperament.js:884 +#: js/widgets/temperament.js:986 +#: js/widgets/temperament.js:1080 +#: js/widgets/temperament.js:1087 +#: js/widgets/temperament.js:1160 +#: js/widgets/temperament.js:1433 +#: js/widgets/temperament.js:1511 +#: js/widgets/temperament.js:1596 msgid "done" msgstr "" -#: js/temperament.js:477 -#: js/temperament.js:482 -#: js/temperament.js:918 +#: js/widgets/temperament.js:610 +#: js/widgets/temperament.js:615 +#: js/widgets/temperament.js:1063 msgid "ratio" msgstr "" -#: js/temperament.js:483 +#: js/widgets/temperament.js:616 msgid "interval" msgstr "" -#: js/temperament.js:611 +#: js/widgets/temperament.js:744 msgid "non scalar" msgstr "" -#: js/temperament.js:650 +#: js/widgets/temperament.js:787 msgid "ratios" msgstr "" -#: js/temperament.js:650 +#: js/widgets/temperament.js:787 msgid "arbitrary" msgstr "" -#: js/temperament.js:719 +#: js/widgets/temperament.js:860 msgid "number of divisions" msgstr "" -#: js/temperament.js:741 -#: js/temperament.js:858 -#: js/temperament.js:940 -#: js/temperament.js:1033 +#: js/widgets/temperament.js:882 +#: js/widgets/temperament.js:999 +#: js/widgets/temperament.js:1085 +#: js/widgets/temperament.js:1178 msgid "preview" msgstr "" -#: js/temperament.js:788 +#: js/widgets/temperament.js:929 msgid "The Number of divisions is too large." msgstr "" -#: js/temperament.js:921 +#: js/widgets/temperament.js:1066 msgid "recursion" msgstr "" -#: js/temperament.js:1450 +#: js/widgets/temperament.js:1616 msgid "The octave ratio has changed. This changes temperament significantly." msgstr "" -#: js/temperament.js:2087 +#: js/widgets/temperament.js:2248 msgid "Table" msgstr "" -#: js/temperament.js:2185 +#: js/widgets/temperament.js:2356 msgid "Add pitches" msgstr "" -#: js/musickeyboard.js:570 -msgid "Metronome" +#: js/widgets/tempo.js:78 +#: js/widgets/tempo.js:97 +#: js/widgets/tempo.js:99 +#: js/widgets/aiwidget.js:134 +#: js/widgets/aiwidget.js:136 +#: js/widgets/rhythmruler.js:681 +#: js/widgets/rhythmruler.js:683 +#: js/widgets/rhythmruler.js:1864 +#: js/widgets/rhythmruler.js:1866 +#: js/widgets/sampler.js:180 +#: js/widgets/sampler.js:182 +msgid "Pause" msgstr "" -#: js/musickeyboard.js:1296 -#: plugins/rodi.rtp:193 -msgid "duration" +#: js/widgets/tempo.js:113 +msgid "Save tempo" msgstr "" -#: js/musickeyboard.js:2840 -msgid "New action blocks generated!" +#: js/widgets/tempo.js:144 +msgid "speed up" msgstr "" -#: js/musickeyboard.js:2841 -msgid "New action block generated" +#: js/widgets/tempo.js:150 +msgid "slow down" msgstr "" -#: js/musickeyboard.js:2984 -#: js/musickeyboard.js:2992 -msgid "MIDI device present." +#: js/widgets/tempo.js:194 +msgid "Adjust the tempo with the buttons." msgstr "" -#: js/musickeyboard.js:2995 -msgid "No MIDI device found." +#: js/widgets/tempo.js:261 +msgid "Please enter a number between 30 and 1000" msgstr "" -#: js/musickeyboard.js:3000 -msgid "Failed to get MIDI access in browser." +#: js/widgets/tempo.js:268 +#: js/widgets/tempo.js:271 +msgid "The beats per minute must be between 30 and 1000." msgstr "" -#: js/rhythmruler.js:202 -msgid "Save rhythms" +#: js/widgets/tempo.js:287 +msgid "The beats per minute must be below 1000." msgstr "" -#: js/rhythmruler.js:222 -msgid "Save drum machine" +#: js/widgets/tempo.js:303 +msgid "The beats per minute must be above 30" msgstr "" -#: js/rhythmruler.js:263 -#.TRANS: user can tap out a rhythm by clicking on a ruler. -msgid "Tap a rhythm" +#: js/widgets/timbre.js:766 +msgid "Synthesizer" msgstr "" -#: js/rhythmruler.js:342 -#: js/rhythmruler.js:344 -#: js/rhythmruler.js:1481 -#: js/rhythmruler.js:1483 -#: js/sampler.js:110 -#: js/sampler.js:112 -#: js/tempo.js:78 -#: js/tempo.js:97 -#: js/tempo.js:99 -msgid "Pause" +#: js/widgets/timbre.js:789 +msgid "Oscillator" msgstr "" -#: js/rhythmruler.js:478 -msgid "Click on the ruler to divide it." +#: js/widgets/timbre.js:840 +msgid "Envelope" msgstr "" -#: js/rhythmruler.js:603 -#: js/rhythmruler.js:605 -#: js/rhythmruler.js:804 -#: js/rhythmruler.js:806 -#: js/rhythmruler.js:1386 -#: js/rhythmruler.js:1388 -msgid "tap a rhythm" +#: js/widgets/timbre.js:886 +#: planet/js/GlobalTag.js:50 +#.TRANS: On the Planet, we use labels to tag projects. +msgid "Effects" msgstr "" -#: js/rhythmruler.js:1084 -msgid "Maximum value of 256 has been exceeded." +#: js/widgets/timbre.js:904 +msgid "Filter" msgstr "" -#: js/sampler.js:137 -msgid "Warning: Sample is bigger than 1MB." +#: js/widgets/timbre.js:946 +msgid "Add filter" msgstr "" -#: js/sampler.js:142 -msgid "Upload failed: Sample is not a .wav file." +#: js/widgets/timbre.js:987 +msgid "Click on buttons to open the timbre design tools." msgstr "" -#: js/sampler.js:164 -msgid "A new sample block was generated." +#: js/widgets/timbre.js:1273 +msgid "harmonicity" msgstr "" -#: js/sampler.js:255 -msgid "Upload sample" +#: js/widgets/timbre.js:1340 +#: js/widgets/timbre.js:1406 +msgid "modulation index" msgstr "" -#: js/sampler.js:306 -msgid "Save sample" +#: js/widgets/timbre.js:1484 +msgid "vibrato amount" msgstr "" -#: js/sampler.js:697 -#.TRANS: The reference tone is a sound used for comparison. -msgid "reference tone" +#: js/widgets/timbre.js:1919 +msgid "Filter already present." msgstr "" -#: js/tempo.js:113 -msgid "Save tempo" +#: js/widgets/timbre.js:2322 +msgid "delay (MS)" msgstr "" -#: js/tempo.js:144 -msgid "speed up" +#: js/widgets/timbre.js:2507 +msgid "distortion amount" msgstr "" -#: js/tempo.js:150 -msgid "slow down" +#: js/widgets/aiwidget.js:180 +#: js/widgets/sampler.js:227 +msgid "Warning: Sample is bigger than 1MB." msgstr "" -#: js/tempo.js:194 -msgid "Adjust the tempo with the buttons." +#: js/widgets/aiwidget.js:539 +msgid "New start block generated" msgstr "" -#: js/tempo.js:261 -msgid "Please enter a number between 30 and 1000" +#: js/widgets/aiwidget.js:541 +msgid "MIDI loading. This may take some time depending upon the number of notes in the track" msgstr "" -#: js/tempo.js:268 -#: js/tempo.js:271 -msgid "The beats per minute must be between 30 and 1000." +#: js/widgets/aiwidget.js:551 +#: js/widgets/sampler.js:254 +msgid "Upload failed: Sample is not a .wav file." msgstr "" -#: js/tempo.js:287 -msgid "The beats per minute must be below 1000." +#: js/widgets/aiwidget.js:679 +#: js/widgets/sampler.js:432 +msgid "Save sample" msgstr "" -#: js/tempo.js:303 -msgid "The beats per minute must be above 30" +#: js/widgets/aiwidget.js:701 +msgid "AI Music" msgstr "" -#: js/timbre.js:766 -msgid "Synthesizer" +#: js/widgets/arpeggio.js:239 +msgid "Click in the grid to add steps to the arpeggio." msgstr "" -#: js/timbre.js:789 -msgid "Oscillator" +#: js/widgets/help.js:95 +#: js/widgets/help.js:125 +#: js/widgets/help.js:146 +#: js/widgets/help.js:158 +#: js/widgets/help.js:376 +#: js/widgets/help.js:391 +msgid "Take a tour" msgstr "" -#: js/timbre.js:840 -msgid "Envelope" +#: js/widgets/musickeyboard.js:725 +#: js/widgets/phrasemaker.js:584 +msgid "Add note" msgstr "" -#: js/timbre.js:886 -#: js/GlobalTag.js:50 -#.TRANS: On the Planet, we use labels to tag projects. -msgid "Effects" +#: js/widgets/musickeyboard.js:744 +msgid "Metronome" +msgstr "" + +#: js/widgets/musickeyboard.js:1549 +#: plugins/rodi.rtp:193 +msgid "duration" +msgstr "" + +#: js/widgets/musickeyboard.js:3179 +msgid "New action blocks generated" +msgstr "" + +#: js/widgets/musickeyboard.js:3180 +msgid "New action block generated" msgstr "" -#: js/timbre.js:904 -msgid "Filter" +#: js/widgets/musickeyboard.js:3365 +#: js/widgets/musickeyboard.js:3373 +msgid "MIDI device present." msgstr "" -#: js/timbre.js:946 -msgid "Add filter" +#: js/widgets/musickeyboard.js:3376 +msgid "No MIDI device found." msgstr "" -#: js/timbre.js:987 -msgid "Click on buttons to open the timbre design tools." +#: js/widgets/musickeyboard.js:3386 +msgid "Failed to get MIDI access in browser." msgstr "" -#: js/timbre.js:1273 -msgid "harmonicity" +#: js/widgets/phrasemaker.js:574 +msgid "Export" msgstr "" -#: js/timbre.js:1340 -#: js/timbre.js:1406 -msgid "modulation index" +#: js/widgets/phrasemaker.js:581 +msgid "Sort" msgstr "" -#: js/timbre.js:1484 -msgid "vibrato amount" +#: js/widgets/phrasemaker.js:975 +msgid "Click on the table to add notes." msgstr "" -#: js/timbre.js:1919 -msgid "Filter already present." +#: js/widgets/phrasemaker.js:2677 +#: js/widgets/phrasemaker.js:2819 +msgid "tuplet value" msgstr "" -#: js/timbre.js:2322 -msgid "delay (MS)" +#: js/widgets/rhythmruler.js:486 +msgid "Save rhythms" msgstr "" -#: js/timbre.js:2507 -msgid "distortion amount" +#: js/widgets/rhythmruler.js:512 +msgid "Save drum machine" msgstr "" -#: js/meterwidget.js:170 -msgid "Reset" +#: js/widgets/rhythmruler.js:589 +#.TRANS: user can tap out a rhythm by clicking on a ruler. +msgid "Tap a rhythm" msgstr "" -#: js/meterwidget.js:196 -msgid "Click in the circle to select strong beats for the meter." +#: js/widgets/rhythmruler.js:817 +msgid "Click on the ruler to divide it." msgstr "" -#: js/arpeggio.js:239 -msgid "Click in the grid to add steps to the arpeggio." +#: js/widgets/rhythmruler.js:950 +#: js/widgets/rhythmruler.js:952 +#: js/widgets/rhythmruler.js:1152 +#: js/widgets/rhythmruler.js:1154 +#: js/widgets/rhythmruler.js:1765 +#: js/widgets/rhythmruler.js:1767 +msgid "tap a rhythm" msgstr "" -#: js/ProjectStorage.js:243 -msgid "anonymous" +#: js/widgets/rhythmruler.js:1459 +msgid "Maximum value of 256 has been exceeded." msgstr "" -#: js/GlobalCard.js:68 -msgid "Share" +#: js/widgets/sampler.js:237 +msgid "Recording started..." msgstr "" -#: js/GlobalCard.js:74 -msgid "Flags" +#: js/widgets/sampler.js:245 +msgid "Recording complete..." msgstr "" -#: js/LocalCard.js:36 -msgid "View published project" +#: js/widgets/sampler.js:283 +msgid "A new sample block was generated." msgstr "" -#: js/LocalCard.js:42 -msgid "Publish project" +#: js/widgets/sampler.js:378 +msgid "Upload sample" msgstr "" -#: js/LocalCard.js:51 -msgid "Edit project" +#: js/widgets/sampler.js:399 +msgid "Warning: Your sample cannot be loaded because it is >1MB." msgstr "" -#: js/LocalCard.js:52 -msgid "Delete project" +#: js/widgets/sampler.js:448 +msgid "Toggle Mic" msgstr "" -#: js/LocalCard.js:53 -msgid "Download project" +#: js/widgets/sampler.js:458 +msgid "Playback" msgstr "" -#: js/LocalCard.js:55 -msgid "Duplicate project" +#: js/widgets/sampler.js:979 +#.TRANS: The reference tone is a sound used for comparison. +msgid "reference tone" msgstr "" -#: js/GlobalTag.js:28 +#: planet/js/GlobalTag.js:28 #.TRANS: On the Planet, we use labels to tag projects. msgid "All Projects" msgstr "" -#: js/GlobalTag.js:30 -#: js/StringHelper.js:37 +#: planet/js/GlobalTag.js:30 +#: planet/js/StringHelper.js:37 #.TRANS: On the Planet, we use labels to tag projects. msgid "My Projects" msgstr "" -#: js/GlobalTag.js:32 +#: planet/js/GlobalTag.js:32 #.TRANS: On the Planet, we use labels to tag projects. msgid "Examples" msgstr "" -#: js/GlobalTag.js:34 +#: planet/js/GlobalTag.js:34 #.TRANS: On the Planet, we use labels to tag projects. msgid "Music" msgstr "" -#: js/GlobalTag.js:36 +#: planet/js/GlobalTag.js:36 #.TRANS: On the Planet, we use labels to tag projects. msgid "Art" msgstr "" -#: js/GlobalTag.js:38 +#: planet/js/GlobalTag.js:38 #.TRANS: On the Planet, we use labels to tag projects. msgid "Math" msgstr "" -#: js/GlobalTag.js:40 +#: planet/js/GlobalTag.js:40 #.TRANS: On the Planet, we use labels to tag projects. msgid "Interactive" msgstr "" -#: js/GlobalTag.js:42 +#: planet/js/GlobalTag.js:42 #.TRANS: On the Planet, we use labels to tag projects. msgid "Design" msgstr "" -#: js/GlobalTag.js:44 +#: planet/js/GlobalTag.js:44 #.TRANS: On the Planet, we use labels to tag projects. msgid "Game" msgstr "" -#: js/GlobalTag.js:46 +#: planet/js/GlobalTag.js:46 #.TRANS: On the Planet, we use labels to tag projects. msgid "Media" msgstr "" -#: js/GlobalTag.js:48 +#: planet/js/GlobalTag.js:48 #.TRANS: On the Planet, we use labels to tag projects. msgid "Sensors" msgstr "" -#: js/GlobalTag.js:52 +#: planet/js/GlobalTag.js:52 #.TRANS: On the Planet, we use labels to tag projects. msgid "Code Snippet" msgstr "" -#: js/helper.js:149 -#: js/StringHelper.js:49 -msgid "Show more tags" +#: planet/js/LocalCard.js:36 +msgid "View published project" msgstr "" -#: js/helper.js:150 -msgid "Show fewer tags" +#: planet/js/LocalCard.js:42 +msgid "Publish project" +msgstr "" + +#: planet/js/LocalCard.js:51 +msgid "Edit project" +msgstr "" + +#: planet/js/LocalCard.js:52 +msgid "Delete project" +msgstr "" + +#: planet/js/LocalCard.js:53 +msgid "Download project" +msgstr "" + +#: planet/js/LocalCard.js:55 +msgid "Duplicate project" +msgstr "" + +#: planet/js/ProjectStorage.js:243 +msgid "anonymous" +msgstr "" + +#: planet/js/SaveInterface.js:34 +msgid "Open in Music Blocks" +msgstr "" + +#: planet/js/SaveInterface.js:35 +msgid "Open in Turtle Blocks" +msgstr "" + +#: planet/js/GlobalCard.js:68 +msgid "Share" +msgstr "" + +#: planet/js/GlobalCard.js:74 +msgid "Flags" +msgstr "" + +#: planet/js/GlobalPlanet.js:35 +msgid "No results found." +msgstr "" + +#: planet/js/GlobalPlanet.js:51 +msgid "Remix of" +msgstr "" + +#: planet/js/GlobalPlanet.js:509 +msgid "Cannot connect to server" msgstr "" -#: js/ProjectViewer.js:30 +#: planet/js/ProjectViewer.js:30 msgid "Error: Report could not be submitted. Try again later." msgstr "" -#: js/ProjectViewer.js:31 +#: planet/js/ProjectViewer.js:31 msgid "Thank you for reporting this project. A moderator will review the project shortly, to verify violation of the Sugar Labs Code of Conduct." msgstr "" -#: js/ProjectViewer.js:32 -#: js/StringHelper.js:62 -#: js/StringHelper.js:64 -#: js/StringHelper.js:68 +#: planet/js/ProjectViewer.js:32 +#: planet/js/StringHelper.js:62 +#: planet/js/StringHelper.js:64 +#: planet/js/StringHelper.js:68 msgid "Report Project" msgstr "" -#: js/ProjectViewer.js:33 -#: js/StringHelper.js:63 +#: planet/js/ProjectViewer.js:33 +#: planet/js/StringHelper.js:63 msgid "Project Reported" msgstr "" -#: js/ProjectViewer.js:34 +#: planet/js/ProjectViewer.js:34 msgid "Report description required" msgstr "" -#: js/ProjectViewer.js:35 +#: planet/js/ProjectViewer.js:35 msgid "Report description too long" msgstr "" -#: js/StringHelper.js:30 +#: planet/js/Publisher.js:30 +msgid "Feature unavailable - cannot connect to server. Reload Music Blocks to try again." +msgstr "" + +#: planet/js/Publisher.js:220 +#: planet/js/Publisher.js:237 +msgid "This field is required" +msgstr "" + +#: planet/js/Publisher.js:227 +msgid "Title too long" +msgstr "" + +#: planet/js/Publisher.js:244 +msgid "Description too long" +msgstr "" + +#: planet/js/Publisher.js:341 +msgid "Server Error" +msgstr "" + +#: planet/js/Publisher.js:341 +msgid "Try Again" +msgstr "" + +#: planet/js/StringHelper.js:30 msgid "Planet" msgstr "" -#: js/StringHelper.js:31 +#: planet/js/StringHelper.js:31 msgid "Close Planet" msgstr "" -#: js/StringHelper.js:32 +#: planet/js/StringHelper.js:32 msgid "Open project from file" msgstr "" -#: js/StringHelper.js:34 +#: planet/js/StringHelper.js:34 msgid "Local" msgstr "" -#: js/StringHelper.js:35 +#: planet/js/StringHelper.js:35 msgid "Global" msgstr "" -#: js/StringHelper.js:36 +#: planet/js/StringHelper.js:36 msgid "Search for a project" msgstr "" -#: js/StringHelper.js:38 +#: planet/js/StringHelper.js:38 msgid "Publish Project" msgstr "" -#: js/StringHelper.js:40 +#: planet/js/StringHelper.js:40 msgid "Tags (max 5)" msgstr "" -#: js/StringHelper.js:41 -#: js/StringHelper.js:61 +#: planet/js/StringHelper.js:41 +#: planet/js/StringHelper.js:61 msgid "Description" msgstr "" -#: js/StringHelper.js:42 -#: js/StringHelper.js:67 +#: planet/js/StringHelper.js:42 +#: planet/js/StringHelper.js:67 msgid "Submit" msgstr "" -#: js/StringHelper.js:43 -#: js/StringHelper.js:47 +#: planet/js/StringHelper.js:43 +#: planet/js/StringHelper.js:47 msgid "Cancel" msgstr "" -#: js/StringHelper.js:44 +#: planet/js/StringHelper.js:44 msgid "Delete \\"\\"?" msgstr "" -#: js/StringHelper.js:45 +#: planet/js/StringHelper.js:45 msgid "Permanently delete project \\"\\"?" msgstr "" -#: js/StringHelper.js:48 +#: planet/js/StringHelper.js:48 msgid "Explore Projects" msgstr "" -#: js/StringHelper.js:50 +#: planet/js/StringHelper.js:49 +#: planet/js/helper.js:149 +msgid "Show more tags" +msgstr "" + +#: planet/js/StringHelper.js:50 msgid "Most recent" msgstr "" -#: js/StringHelper.js:51 +#: planet/js/StringHelper.js:51 msgid "Most liked" msgstr "" -#: js/StringHelper.js:52 +#: planet/js/StringHelper.js:52 msgid "Most downloaded" msgstr "" -#: js/StringHelper.js:53 +#: planet/js/StringHelper.js:53 msgid "A-Z" msgstr "" -#: js/StringHelper.js:54 +#: planet/js/StringHelper.js:54 msgid "Sort by" msgstr "" -#: js/StringHelper.js:55 +#: planet/js/StringHelper.js:55 msgid "Load More Projects" msgstr "" -#: js/StringHelper.js:56 +#: planet/js/StringHelper.js:56 msgid "Last Updated" msgstr "" -#: js/StringHelper.js:57 +#: planet/js/StringHelper.js:57 msgid "Creation Date" msgstr "" -#: js/StringHelper.js:58 +#: planet/js/StringHelper.js:58 msgid "Number of Downloads:" msgstr "" -#: js/StringHelper.js:59 +#: planet/js/StringHelper.js:59 msgid "Number of Likes:" msgstr "" -#: js/StringHelper.js:60 +#: planet/js/StringHelper.js:60 msgid "Tags:" msgstr "" -#: js/StringHelper.js:65 +#: planet/js/StringHelper.js:65 msgid "Report projects which violate the Sugar Labs Code of Conduct." msgstr "" -#: js/StringHelper.js:66 +#: planet/js/StringHelper.js:66 msgid "Reason for reporting project" msgstr "" -#: js/StringHelper.js:70 +#: planet/js/StringHelper.js:70 msgid "Download as File" msgstr "" -#: js/GlobalPlanet.js:35 -msgid "No results found." -msgstr "" - -#: js/GlobalPlanet.js:51 -msgid "Remix of" -msgstr "" - -#: js/GlobalPlanet.js:509 -msgid "Cannot connect to server" -msgstr "" - -#: js/Publisher.js:30 -msgid "Feature unavailable - cannot connect to server. Reload Music Blocks to try again." -msgstr "" - -#: js/Publisher.js:218 -#: js/Publisher.js:235 -msgid "This field is required" -msgstr "" - -#: js/Publisher.js:225 -msgid "Title too long" +#: planet/js/helper.js:150 +msgid "Show fewer tags" msgstr "" -#: js/Publisher.js:242 -msgid "Description too long" +#: plugins/accelerometer.rtp:48 +msgid "motion x" msgstr "" -#: js/Publisher.js:339 -msgid "Server Error" +#: plugins/accelerometer.rtp:56 +msgid "motion y" msgstr "" -#: js/Publisher.js:339 -msgid "Try Again" +#: plugins/accelerometer.rtp:64 +msgid "motion z" msgstr "" -#: js/SaveInterface.js:34 -msgid "Open in Music Blocks" +#: plugins/facebook.rtp:27 +msgid "publish" msgstr "" -#: js/SaveInterface.js:35 -msgid "Open in Turtle Blocks" +#: plugins/maths.rtp:62 +msgid "power" msgstr "" -#: plugins/weather.rtp:68 -#: plugins/weather.rtp:97 -msgid "Days ahead must be in the range of -1 to 5." +#: plugins/maths.rtp:62 +msgid "base" msgstr "" -#: plugins/weather.rtp:122 -msgid "forecast" +#: plugins/maths.rtp:62 +msgid "exp" msgstr "" -#: plugins/weather.rtp:123 -#: plugins/weather.rtp:137 -#: plugins/weather.rtp:150 -msgid "city" +#: plugins/maths.rtp:99 +msgid "floor" msgstr "" -#: plugins/weather.rtp:124 -#: plugins/weather.rtp:138 -#: plugins/weather.rtp:151 -msgid "day" +#: plugins/maths.rtp:104 +msgid "ceiling" msgstr "" -#: plugins/weather.rtp:136 -msgid "high" +#: plugins/maths.rtp:109 +msgid "to degrees" msgstr "" -#: plugins/weather.rtp:149 -msgid "low" +#: plugins/maths.rtp:114 +msgid "to radians" msgstr "" #: plugins/nutrition.rtp:104 @@ -9458,45 +9867,6 @@ msgstr "" msgid "water" msgstr "" -#: plugins/maths.rtp:62 -#: plugins/examples.rtp:93 -msgid "power" -msgstr "" - -#: plugins/maths.rtp:62 -#: plugins/examples.rtp:93 -msgid "base" -msgstr "" - -#: plugins/maths.rtp:62 -#: plugins/examples.rtp:93 -msgid "exp" -msgstr "" - -#: plugins/maths.rtp:99 -#: plugins/examples.rtp:130 -msgid "floor" -msgstr "" - -#: plugins/maths.rtp:104 -#: plugins/examples.rtp:135 -msgid "ceiling" -msgstr "" - -#: plugins/maths.rtp:109 -#: plugins/examples.rtp:140 -msgid "to degrees" -msgstr "" - -#: plugins/maths.rtp:114 -#: plugins/examples.rtp:145 -msgid "to radians" -msgstr "" - -#: plugins/facebook.rtp:27 -msgid "publish" -msgstr "" - #: plugins/rodi.rtp:172 msgid "blink" msgstr "" @@ -9525,18 +9895,66 @@ msgstr "" msgid "move" msgstr "" -#: plugins/accelerometer.rtp:48 -msgid "motion x" +#: plugins/weather.rtp:68 +#: plugins/weather.rtp:97 +msgid "Days ahead must be in the range of -1 to 5." msgstr "" -#: plugins/accelerometer.rtp:56 -msgid "motion y" +#: plugins/weather.rtp:122 +msgid "forecast" msgstr "" -#: plugins/accelerometer.rtp:64 -msgid "motion z" +#: plugins/weather.rtp:123 +#: plugins/weather.rtp:137 +#: plugins/weather.rtp:150 +msgid "city" +msgstr "" + +#: plugins/weather.rtp:124 +#: plugins/weather.rtp:138 +#: plugins/weather.rtp:151 +msgid "day" +msgstr "" + +#: plugins/weather.rtp:136 +msgid "high" +msgstr "" + +#: plugins/weather.rtp:149 +msgid "low" msgstr "" +#: js/toolbar.js:70 + +#: js/toolbar.js:130 + +#: js/toolbar.js:194 + +#: js/toolbar.js:249 + +#~msgid "Toggle JavaScript Editor" +#~msgstr "" + +#: js/EnsembleBlocks.js:643 + +#~msgid "The Turrle pitch block returns the current pitch number being played by the specified turtle." +#~msgstr "" + +#: js/PitchActions.js:88 + +#~msgid "The Scalar Step Block must be used inside of a Note Block." +#~msgstr "" + +#: js/PitchActions.js:107 + +#~msgid "The Scalar Step Block must be preceded by a Pitch Block." +#~msgstr "" + +#: js/musickeyboard.js:2840 + +#~msgid "New action blocks generated!" +#~msgstr "" + #: js/toolbar.js:110 #: js/toolbar.js:204 @@ -9877,11 +10295,6 @@ msgstr "" #~msgid "The Time block returns the number of seconds that the program has been running." #~msgstr "" -#: js/help.js:95 - -#~msgid "Take a tour" -#~msgstr "" - #: js/GlobalCard.js:48 #~msgid "More Details" @@ -12780,11 +13193,6 @@ msgstr "" #~msgid "The save-stack button saves a stack onto a custom palette. It appears after a \"long press\" on a stack." #~msgstr "" -#: js/musicutils.js:254 - -#~msgid "Custom" -#~msgstr "" - #: js/basicblocks.js:4785 #~msgid "Rhythm" diff --git a/po/fr.po b/po/fr.po index 295a97391d..3a058bf037 100644 --- a/po/fr.po +++ b/po/fr.po @@ -2130,276 +2130,131 @@ #: js/planetInterface.js:104 #: js/planetInterface.js:104 #: js/planetInterface.js:104 -msgid "project undefined" +#: js/SaveInterface.js:59 +#: js/SaveInterface.js:61 +#: js/SaveInterface.js:93 +msgid "Music Blocks Project" msgstr "" -#: js/logo.js:61 -msgid "Not a valid pitch name" +#: js/SaveInterface.js:63 +msgid "This project was created in Music Blocks" msgstr "" -#: js/logo.js:507 -#: js/ProgramBlocks.js:258 -#: js/ProgramBlocks.js:427 -msgid "You must select a file." +#: js/SaveInterface.js:67 +msgid "Music Blocks is a Free/Libre Software application." msgstr "" -#: js/logo.js:1184 -#: js/turtles.js:118 -#: js/turtle-painter.js:1192 -#: js/turtle-painter.js:1193 -#: js/block.js:1463 -#: js/lilypond.js:757 -#: js/lilypond.js:921 -#: js/lilypond.js:959 -#: js/ActionBlocks.js:1223 -#: js/ProgramBlocks.js:1267 -msgid "start" -msgstr "commence" - -#: js/logo.js:1696 -msgid "Playback is ready." +#: js/SaveInterface.js:69 +msgid "The source code can be accessed at" msgstr "" -#: js/blocks.js:1011 -#: js/blocks.js:3427 -#: js/blocks.js:3428 -#: js/blocks.js:3653 -#: js/blocks.js:4012 -#: js/blocks.js:4205 -#: js/blocks.js:5343 -#: js/blocks.js:6474 -#: js/palette.js:527 -#: js/palette.js:536 -#: js/palette.js:545 -#: js/palette.js:554 -#: js/palette.js:1131 -#: js/palette.js:1142 -#: js/palette.js:1153 -#: js/palette.js:1164 -#: js/palette.js:1183 -#: js/rubrics.js:529 -#: js/macros.js:170 -#: js/macros.js:266 -#: js/macros.js:267 -#: js/macros.js:276 -#: js/macros.js:828 -#: js/block.js:1449 -#: js/block.js:4164 -#: js/block.js:4182 -#: js/block.js:4193 -#: js/turtledefs.js:128 -#: js/turtledefs.js:230 -#: js/ActionBlocks.js:254 -#: js/ActionBlocks.js:307 -#: js/ActionBlocks.js:617 -#: js/ActionBlocks.js:716 -#: js/ActionBlocks.js:961 -#: js/ActionBlocks.js:1049 -#: js/ActionBlocks.js:1322 -#: js/ActionBlocks.js:1325 -#: js/ActionBlocks.js:1337 -#: js/ActionBlocks.js:1404 -#: js/MeterBlocks.js:715 -#: js/MeterBlocks.js:768 -#: js/MeterBlocks.js:831 -#: js/MeterBlocks.js:892 -#: js/phrasemaker.js:4412 -#: js/musickeyboard.js:2647 -#: js/rhythmruler.js:1928 -#: js/rhythmruler.js:1935 -#: js/rhythmruler.js:2119 -#: js/rhythmruler.js:2126 -msgid "action" -msgstr "action" - -#: js/blocks.js:1205 -#: js/blocks.js:3380 -#: js/blocks.js:3770 -#: js/blocks.js:3801 -#: js/blocks.js:3850 -#: js/blocks.js:3885 -#: js/blocks.js:6497 -#: js/palette.js:509 -#: js/palette.js:638 -#: js/palette.js:1107 -#: js/BoxesBlocks.js:282 -#: js/BoxesBlocks.js:285 -#: js/BoxesBlocks.js:405 -#: js/BoxesBlocks.js:594 -msgid "box" -msgstr "boîte" - -#: js/blocks.js:1680 -msgid "Consider breaking this stack into parts." +#: js/SaveInterface.js:72 +msgid "For more information, please consult the" msgstr "" -#: js/blocks.js:2408 -#: js/palette.js:653 -#: js/MediaBlocks.js:602 -msgid "open file" -msgstr "fichier ouvert" - -#: js/blocks.js:2415 -#: js/blocks.js:2423 -#: js/activity.js:1875 -msgid "audio file" +#: js/SaveInterface.js:76 +#: js/turtledefs.js:795 +msgid "Music Blocks Guide" msgstr "" -#: js/blocks.js:2536 -#: js/blocks.js:3147 -#: js/block.js:3543 -msgid "on2" +#: js/SaveInterface.js:83 +msgid "Alternatively, open the file in Music Blocks using the Load project button." msgstr "" -#: js/blocks.js:2538 -#: js/blocks.js:3149 -#: js/block.js:3545 -msgid "off" +#: js/SaveInterface.js:85 +msgid "Project Code" msgstr "" -#: js/blocks.js:2543 -#: js/blocks.js:3154 -#: js/palette.js:618 -#: js/block.js:3466 -#: js/BooleanBlocks.js:77 -#: js/BooleanBlocks.js:167 -#: js/BooleanBlocks.js:251 -#: js/BooleanBlocks.js:335 -#: js/BooleanBlocks.js:433 -#: js/BooleanBlocks.js:539 -#: js/BooleanBlocks.js:640 -#: js/BooleanBlocks.js:741 -#: js/BooleanBlocks.js:847 -#: js/BooleanBlocks.js:948 -#: js/BooleanBlocks.js:1033 -#: js/SensorsBlocks.js:910 -msgid "true" +#: js/SaveInterface.js:87 +msgid "This code stores data about the blocks in a project." msgstr "" -#: js/blocks.js:2545 -#: js/blocks.js:3156 -#: js/block.js:3466 -#: js/BooleanBlocks.js:79 -#: js/BooleanBlocks.js:169 -#: js/BooleanBlocks.js:253 -#: js/BooleanBlocks.js:337 -#: js/BooleanBlocks.js:435 -#: js/BooleanBlocks.js:541 -#: js/BooleanBlocks.js:642 -#: js/BooleanBlocks.js:743 -#: js/BooleanBlocks.js:849 -#: js/BooleanBlocks.js:950 -#: js/SensorsBlocks.js:912 -msgid "false" +#: js/SaveInterface.js:89 +msgid "Show" msgstr "" -#: js/blocks.js:3183 -#: js/palette.js:574 -#: js/MediaBlocks.js:892 -#: js/MediaBlocks.js:963 -msgid "text" -msgstr "texte" - -#: js/blocks.js:3379 -#: js/palette.js:641 -#: js/palette.js:642 -#: js/BoxesBlocks.js:514 -msgid "store in box" +#: js/SaveInterface.js:91 +msgid "Hide" msgstr "" -#: js/blocks.js:3384 -#: js/blocks.js:3824 -#: js/blocks.js:3859 -#: js/blocks.js:3894 -#: js/blocks.js:5773 -#: js/blocks.js:5794 -#: js/BoxesBlocks.js:772 -msgid "box1" +#: js/SaveInterface.js:131 +#: js/SaveInterface.js:204 +#: js/SaveInterface.js:262 +#: js/SaveInterface.js:389 +#: js/SaveInterface.js:417 +#: js/activity.js:4884 +#: planet/js/ProjectStorage.js:27 +#: planet/js/GlobalPlanet.js:467 +#: planet/js/GlobalPlanet.js:469 +#: planet/js/GlobalPlanet.js:495 +#.TRANS: default project title when saving as Lilypond +msgid "My Project" msgstr "" -#: js/blocks.js:3386 -#: js/blocks.js:3826 -#: js/blocks.js:3861 -#: js/blocks.js:3896 -#: js/blocks.js:5775 -#: js/blocks.js:5796 -#: js/BoxesBlocks.js:663 -msgid "box2" +#: js/SaveInterface.js:197 +#: planet/js/SaveInterface.js:58 +msgid "No description provided" msgstr "" -#: js/blocks.js:4058 -#: js/palette.js:639 -#: js/palette.js:644 -#: js/palette.js:1043 -#: js/BoxesBlocks.js:591 -msgid "store in" -msgstr "range dans" - -#: js/blocks.js:4058 -#: js/EnsembleBlocks.js:391 -#: js/EnsembleBlocks.js:402 -#: js/MediaBlocks.js:746 -#: js/ProgramBlocks.js:390 -#: js/ProgramBlocks.js:495 -#: js/ProgramBlocks.js:658 -#: js/BoxesBlocks.js:595 -#: js/PitchBlocks.js:656 -#: js/PitchBlocks.js:932 -#: js/PitchBlocks.js:1827 -#: js/ToneBlocks.js:1025 -#: js/DictBlocks.js:215 -#: js/DictBlocks.js:289 -msgid "name" -msgstr "nom" - -#: js/blocks.js:4058 -#: js/RhythmBlocks.js:1130 -#: js/BoxesBlocks.js:75 -#: js/BoxesBlocks.js:595 -#: js/HeapBlocks.js:544 -#: js/DictBlocks.js:289 -#: js/DictBlocks.js:430 -msgid "value" -msgstr "valor" +#: js/SaveInterface.js:332 +msgid "Your recording is in progress." +msgstr "" -#: js/blocks.js:4907 -msgid "There is no block selected." +#: js/SaveInterface.js:401 +#.TRANS: File name prompt for save as Lilypond +msgid "File name" msgstr "" -#: js/blocks.js:5002 -#: js/MediaBlocks.js:888 -msgid "show" -msgstr "montre" +#: js/SaveInterface.js:403 +#: planet/js/StringHelper.js:39 +#.TRANS: Project title prompt for save as Lilypond +msgid "Project title" +msgstr "" -#: js/blocks.js:5005 -#: js/MediaBlocks.js:803 -#.TRANS: Avatar is the image used to determine the appearance of the mouse. -msgid "avatar" +#: js/SaveInterface.js:405 +#.TRANS: Project title prompt for save as Lilypond +msgid "Project author" msgstr "" -#: js/blocks.js:5008 -#: js/ToneBlocks.js:1010 -#: js/sampler.js:693 -#.TRANS: The sound sample that the user uploads. -msgid "sample" +#: js/SaveInterface.js:407 +#.TRANS: MIDI prompt for save as Lilypond +msgid "Include MIDI output?" msgstr "" -#: js/turtles.js:874 -msgid "Grid" +#: js/SaveInterface.js:409 +#.TRANS: Guitar prompt for save as Lilypond +msgid "Include guitar tablature output?" msgstr "" -#: js/turtles.js:891 -#: js/turtledefs.js:626 -msgid "Clean" -msgstr "Efface" +#: js/SaveInterface.js:411 +#.TRANS: Lilypond is a scripting language for generating sheet music +msgid "Save as Lilypond" +msgstr "" -#: js/turtles.js:912 -#: js/turtledefs.js:632 -msgid "Collapse" +#: js/SaveInterface.js:426 +#: js/blocks/EnsembleBlocks.js:75 +#: js/blocks/EnsembleBlocks.js:154 +#: js/blocks/EnsembleBlocks.js:216 +#: js/blocks/EnsembleBlocks.js:302 +#: js/blocks/EnsembleBlocks.js:348 +#: js/blocks/EnsembleBlocks.js:389 +#: js/blocks/EnsembleBlocks.js:441 +#: js/blocks/EnsembleBlocks.js:490 +#: js/blocks/EnsembleBlocks.js:536 +#: js/blocks/EnsembleBlocks.js:583 +#: js/blocks/EnsembleBlocks.js:637 +#: js/blocks/EnsembleBlocks.js:753 +#: js/blocks/EnsembleBlocks.js:840 +#: js/blocks/EnsembleBlocks.js:899 +#: js/blocks/EnsembleBlocks.js:942 +#: js/blocks/EnsembleBlocks.js:1212 +#: js/blocks/EnsembleBlocks.js:1280 +#.TRANS: default project author when saving as Lilypond +msgid "Mr. Mouse" msgstr "" -#: js/turtles.js:940 -msgid "Expand" +#: js/SaveInterface.js:573 +msgid "The Lilypond code is copied to clipboard. You can paste it here: " msgstr "" #: js/languagebox.js:198 @@ -2410,6933 +2265,7487 @@ msgstr "" msgid "Music Blocks is already set to this language." msgstr "" -#: js/piemenus.js:200 -#: js/musicutils.js:808 -#: js/musicutils.js:824 -#: js/phrasemaker.js:1672 -#: js/musickeyboard.js:2041 -#: js/sampler.js:544 -#.TRANS: double sharp is a music term related to pitch -msgid "double sharp" +#: js/planetInterface.js:131 +msgid "project undefined" msgstr "" -#: js/piemenus.js:201 -#: js/PitchBlocks.js:1510 -#: js/PitchActions.js:580 -#: js/musicutils.js:806 -#: js/musicutils.js:825 -#: js/phrasemaker.js:1673 -#: js/musickeyboard.js:2042 -#: js/sampler.js:545 -#.TRANS: sharp is a half-step up in pitch -#.TRANS: sharp is a music term related to pitch -msgid "sharp" +#: js/rubrics.js:523 +#: js/turtledefs.js:119 +#: js/turtledefs.js:221 +#: js/blocks/RhythmBlockPaletteBlocks.js:52 +#: js/blocks/RhythmBlockPaletteBlocks.js:234 +#: js/blocks/ProgramBlocks.js:745 +#: js/widgets/rhythmruler.js:2057 +#: js/widgets/rhythmruler.js:2064 +#: js/widgets/rhythmruler.js:2133 +#: js/widgets/rhythmruler.js:2140 +#: js/widgets/rhythmruler.js:2219 +#.TRANS: an arrangement of notes based on duration +msgid "rhythm" msgstr "" -#: js/piemenus.js:202 -#: js/musicutils.js:804 -#: js/musicutils.js:826 -#: js/phrasemaker.js:1674 -#: js/musickeyboard.js:2043 -#: js/sampler.js:546 -#.TRANS: natural is a music term related to pitch -msgid "natural" +#: js/rubrics.js:524 +#: js/turtledefs.js:121 +#: js/turtledefs.js:223 +#: js/block-verbose.js:2622 +#: js/block.js:2550 +#: js/blocks/IntervalsBlocks.js:63 +#: js/blocks/SensorsBlocks.js:178 +#: js/blocks/PitchBlocks.js:1839 +#: js/blocks/PitchBlocks.js:1853 +#: js/widgets/musickeyboard.js:1935 +#: js/widgets/phrasemaker.js:1036 +#.TRANS: pitch number +#.TRANS: pitch number +#.TRANS: we specify pitch in terms of a name and an octave. The name can be CDEFGAB or Do Re Mi Fa Sol La Ti. Octave is a number between 1 and 8. +msgid "pitch" msgstr "" -#: js/piemenus.js:203 -#: js/PitchBlocks.js:1469 -#: js/PitchActions.js:583 -#: js/musicutils.js:802 -#: js/musicutils.js:827 -#: js/phrasemaker.js:1675 -#: js/musickeyboard.js:2044 -#: js/sampler.js:547 -#.TRANS: flat is a half-step down in pitch -#.TRANS: flat is a music term related to pitch -msgid "flat" +#: js/rubrics.js:525 +#: js/turtledefs.js:123 +#: js/turtledefs.js:225 +msgid "tone" msgstr "" -#: js/piemenus.js:204 -#: js/musicutils.js:800 -#: js/musicutils.js:828 -#: js/phrasemaker.js:1676 -#: js/musickeyboard.js:2045 -#: js/sampler.js:548 -#.TRANS: double flat is a music term related to pitch -msgid "double flat" +#: js/rubrics.js:526 +#: js/lilypond.js:605 +#: js/lilypond.js:904 +#: js/lilypond.js:910 +#: js/lilypond.js:948 +msgid "mouse" msgstr "" -#: js/piemenus.js:2861 -#: js/PitchBlocks.js:1357 -#: js/musicutils.js:627 -#.TRANS: unison means the note is the same as the current note -#.TRANS: unison is a music term related to intervals -msgid "unison" +#: js/rubrics.js:527 +#: js/turtledefs.js:132 +#: js/turtledefs.js:234 +#: js/widgets/phrasemaker.js:1040 +msgid "pen" msgstr "" -#: js/piemenus.js:3015 -#: js/piemenus.js:3088 -#: js/musicutils.js:635 -#: js/musicutils.js:810 -#: js/musicutils.js:912 -#.TRANS: major is a music term related to intervals and mode -msgid "major" -msgstr "" +#: js/rubrics.js:528 +#: js/turtledefs.js:133 +#: js/turtledefs.js:235 +#: js/blocks/NumberBlocks.js:981 +#: js/blocks/PitchBlocks.js:1717 +#: js/blocks/PitchBlocks.js:1758 +msgid "number" +msgstr "nombre" -#: js/piemenus.js:3015 -#: js/piemenus.js:3088 -#: js/musicutils.js:653 -#.TRANS: modal scale for music -msgid "ionian" -msgstr "" +#: js/rubrics.js:529 +#: js/turtledefs.js:127 +#: js/turtledefs.js:229 +msgid "flow" +msgstr "flux" -#: js/piemenus.js:3017 -#: js/piemenus.js:3092 -#: js/musicutils.js:633 -#: js/musicutils.js:811 -#: js/musicutils.js:909 -#.TRANS: minor is a music term related to intervals and mode -msgid "minor" -msgstr "" +#: js/rubrics.js:530 +#: js/turtledefs.js:128 +#: js/turtledefs.js:230 +#: js/block-verbose.js:1609 +#: js/block-verbose.js:4559 +#: js/block-verbose.js:4577 +#: js/block-verbose.js:4588 +#: js/block.js:1573 +#: js/block.js:4483 +#: js/block.js:4501 +#: js/block.js:4512 +#: js/blocks.js:1018 +#: js/blocks.js:3491 +#: js/blocks.js:3492 +#: js/blocks.js:3717 +#: js/blocks.js:4076 +#: js/blocks.js:4269 +#: js/blocks.js:5432 +#: js/blocks.js:6563 +#: js/macros.js:170 +#: js/macros.js:266 +#: js/macros.js:267 +#: js/macros.js:276 +#: js/macros.js:828 +#: js/palette.js:527 +#: js/palette.js:536 +#: js/palette.js:545 +#: js/palette.js:554 +#: js/palette.js:1129 +#: js/palette.js:1140 +#: js/palette.js:1151 +#: js/palette.js:1162 +#: js/palette.js:1181 +#: js/blocks/ActionBlocks.js:254 +#: js/blocks/ActionBlocks.js:307 +#: js/blocks/ActionBlocks.js:617 +#: js/blocks/ActionBlocks.js:716 +#: js/blocks/ActionBlocks.js:961 +#: js/blocks/ActionBlocks.js:1049 +#: js/blocks/ActionBlocks.js:1322 +#: js/blocks/ActionBlocks.js:1325 +#: js/blocks/ActionBlocks.js:1337 +#: js/blocks/ActionBlocks.js:1404 +#: js/blocks/MeterBlocks.js:715 +#: js/blocks/MeterBlocks.js:768 +#: js/blocks/MeterBlocks.js:831 +#: js/blocks/MeterBlocks.js:892 +#: js/widgets/musickeyboard.js:2986 +#: js/widgets/phrasemaker.js:4913 +#: js/widgets/rhythmruler.js:2319 +#: js/widgets/rhythmruler.js:2326 +#: js/widgets/rhythmruler.js:2511 +#: js/widgets/rhythmruler.js:2518 +msgid "action" +msgstr "action" -#: js/piemenus.js:3017 -#: js/piemenus.js:3092 -#: js/musicutils.js:663 -#.TRANS: modal scale for music -msgid "aeolian" -msgstr "" +#: js/rubrics.js:531 +#: js/turtledefs.js:136 +#: js/turtledefs.js:238 +msgid "sensors" +msgstr "capteur" -#: js/piemenus.js:3407 -msgid "Duplicate" +#: js/rubrics.js:532 +#: js/turtledefs.js:135 +#: js/turtledefs.js:237 +#: js/blocks/MediaBlocks.js:930 +msgid "media" msgstr "" -#: js/piemenus.js:3408 -#: js/turtledefs.js:534 -msgid "Extract" +#: js/rubrics.js:533 +msgid "mice" msgstr "" -#: js/piemenus.js:3409 -msgid "Move to trash" +#: js/toolbar.js:48 +#: js/toolbar.js:109 +msgid "About Music Blocks" msgstr "" -#: js/piemenus.js:3410 -#: js/timbre.js:968 -#: js/StringHelper.js:69 -msgid "Close" +#: js/toolbar.js:49 +#: js/toolbar.js:110 +#: js/toolbar.js:175 +#: js/toolbar.js:231 +#: js/turtledefs.js:445 +#: js/turtledefs.js:482 +#: js/activity.js:2660 +#: js/activity.js:2671 +#: js/activity.js:2902 +#: js/widgets/modewidget.js:77 +#: js/widgets/meterwidget.js:185 +#: js/widgets/pitchdrummatrix.js:147 +#: js/widgets/pitchdrummatrix.js:687 +#: js/widgets/pitchdrummatrix.js:689 +#: js/widgets/pitchdrummatrix.js:741 +#: js/widgets/pitchdrummatrix.js:743 +#: js/widgets/pitchdrummatrix.js:758 +#: js/widgets/pitchdrummatrix.js:760 +#: js/widgets/pitchdrummatrix.js:789 +#: js/widgets/pitchdrummatrix.js:791 +#: js/widgets/pitchstaircase.js:121 +#: js/widgets/temperament.js:610 +#: js/widgets/temperament.js:613 +#: js/widgets/temperament.js:673 +#: js/widgets/temperament.js:675 +#: js/widgets/temperament.js:2017 +#: js/widgets/temperament.js:2019 +#: js/widgets/tempo.js:84 +#: js/widgets/tempo.js:86 +#: js/widgets/timbre.js:432 +#: js/widgets/timbre.js:434 +#: js/widgets/timbre.js:465 +#: js/widgets/timbre.js:467 +#: js/widgets/timbre.js:746 +#: js/widgets/aiwidget.js:647 +#: js/widgets/aiwidget.js:654 +#: js/widgets/aiwidget.js:656 +#: js/widgets/arpeggio.js:90 +#: js/widgets/arpeggio.js:547 +#: js/widgets/arpeggio.js:549 +#: js/widgets/arpeggio.js:644 +#: js/widgets/arpeggio.js:646 +#: js/widgets/musickeyboard.js:676 +#: js/widgets/musickeyboard.js:872 +#: js/widgets/musickeyboard.js:874 +#: js/widgets/musickeyboard.js:953 +#: js/widgets/musickeyboard.js:955 +#: js/widgets/phrasemaker.js:513 +#: js/widgets/phrasemaker.js:523 +#: js/widgets/phrasemaker.js:525 +#: js/widgets/phrasemaker.js:4304 +#: js/widgets/phrasemaker.js:4528 +#: js/widgets/phrasemaker.js:4533 +#: js/widgets/phrasemaker.js:4535 +#: js/widgets/phrasemaker.js:4650 +#: js/widgets/rhythmruler.js:637 +#: js/widgets/rhythmruler.js:639 +#: js/widgets/rhythmruler.js:653 +#: js/widgets/rhythmruler.js:655 +#: js/widgets/sampler.js:162 +#: js/widgets/sampler.js:164 +#: js/widgets/sampler.js:363 +msgid "Play" msgstr "" -#: js/piemenus.js:3416 -msgid "Save stack" -msgstr "" +#: js/toolbar.js:50 +#: js/toolbar.js:111 +#: js/toolbar.js:176 +#: js/toolbar.js:232 +#: js/turtledefs.js:451 +#: js/turtledefs.js:488 +#: js/activity.js:2679 +#: js/widgets/modewidget.js:99 +#: js/widgets/modewidget.js:101 +#: js/widgets/meterwidget.js:206 +#: js/widgets/meterwidget.js:208 +#: js/widgets/pitchdrummatrix.js:674 +#: js/widgets/pitchdrummatrix.js:676 +#: js/widgets/temperament.js:2002 +#: js/widgets/temperament.js:2004 +#: js/widgets/arpeggio.js:534 +#: js/widgets/arpeggio.js:536 +#: js/widgets/phrasemaker.js:534 +#: js/widgets/phrasemaker.js:536 +msgid "Stop" +msgstr "Arrêter" -#: js/piemenus.js:3420 -#: js/toolbar.js:60 +#: js/toolbar.js:51 +#: js/toolbar.js:112 +#: js/toolbar.js:177 +#: js/toolbar.js:233 +#: js/turtledefs.js:498 +msgid "Record" +msgstr "" + +#: js/toolbar.js:52 +#: js/toolbar.js:53 +msgid "Full screen" +msgstr "" + +#: js/toolbar.js:54 +#: js/toolbar.js:115 +#: js/toolbar.js:180 +#: js/toolbar.js:236 +#: js/turtledefs.js:504 +msgid "Toggle Fullscreen" +msgstr "" + +#: js/toolbar.js:55 +#: js/toolbar.js:116 +#: js/toolbar.js:181 +#: js/toolbar.js:237 +#: js/turtledefs.js:510 +#: planet/js/StringHelper.js:33 +msgid "New project" +msgstr "" + +#: js/toolbar.js:56 +#: js/toolbar.js:117 +#: js/toolbar.js:182 +#: js/toolbar.js:238 +#: js/turtledefs.js:516 +msgid "Load project from file" +msgstr "" + +#: js/toolbar.js:57 +#: js/toolbar.js:118 +#: js/toolbar.js:119 +#: js/toolbar.js:183 +#: js/toolbar.js:239 +#: js/turtledefs.js:541 +#: js/turtledefs.js:550 +#: js/turtledefs.js:571 +msgid "Save project" +msgstr "" + +#: js/toolbar.js:58 +#: js/toolbar.js:77 +#: js/toolbar.js:79 +#: js/toolbar.js:138 +#: js/toolbar.js:147 +#: js/toolbar.js:149 +#: js/toolbar.js:184 +#: js/toolbar.js:202 +#: js/toolbar.js:204 +#: js/toolbar.js:240 +#: js/toolbar.js:258 +#: js/toolbar.js:260 +msgid "Save project as HTML" +msgstr "" + +#: js/toolbar.js:59 #: js/toolbar.js:120 #: js/toolbar.js:185 -#: js/toolbar.js:240 +#: js/toolbar.js:241 +msgid "Find and share projects" +msgstr "" + +#: js/toolbar.js:60 +#: js/toolbar.js:121 +#: js/toolbar.js:186 +#: js/toolbar.js:242 +msgid "Offline. Sharing is unavailable" +msgstr "" + +#: js/toolbar.js:61 +#: js/toolbar.js:122 +#: js/toolbar.js:187 +#: js/toolbar.js:243 +msgid "Auxiliary menu" +msgstr "" + +#: js/toolbar.js:62 +#: js/toolbar.js:123 +#: js/toolbar.js:188 +#: js/toolbar.js:244 #: js/turtledefs.js:752 +#: js/piemenus.js:3423 msgid "Help" msgstr "Aide" -#: js/piemenus.js:3762 -msgid "You have chosen key " +#: js/toolbar.js:63 +#: js/toolbar.js:124 +#: js/toolbar.js:189 +#: js/toolbar.js:245 +msgid "Run slowly" msgstr "" -#: js/piemenus.js:3766 -msgid " for your pitch preview." +#: js/toolbar.js:64 +#: js/toolbar.js:125 +#: js/toolbar.js:190 +#: js/toolbar.js:246 +#: js/turtledefs.js:682 +msgid "Run step by step" +msgstr "Exécuter pas à pas" + +#: js/toolbar.js:65 +#: js/toolbar.js:126 +#: js/toolbar.js:191 +#: js/toolbar.js:247 +#: js/turtledefs.js:689 +msgid "Display statistics" msgstr "" -#: js/palette.js:571 -msgid "grid" +#: js/toolbar.js:66 +#: js/toolbar.js:127 +#: js/toolbar.js:192 +#: js/toolbar.js:248 +msgid "Load plugin" +msgstr "" + +#: js/toolbar.js:67 +#: js/toolbar.js:128 +#: js/toolbar.js:193 +#: js/toolbar.js:249 +#: js/turtledefs.js:696 +msgid "Delete plugin" +msgstr "" + +#: js/toolbar.js:68 +#: js/toolbar.js:129 +#: js/toolbar.js:194 +#: js/toolbar.js:250 +msgid "Enable horizontal scrolling" +msgstr "" + +#: js/toolbar.js:69 +#: js/toolbar.js:130 +#: js/toolbar.js:195 +#: js/toolbar.js:251 +msgid "Disable horizontal scrolling" +msgstr "" + +#: js/toolbar.js:70 +#: js/toolbar.js:131 +#: js/toolbar.js:196 +#: js/toolbar.js:252 +#: planet/js/LocalCard.js:54 +#: planet/js/StringHelper.js:71 +msgid "Merge with current project" +msgstr "" + +#: js/toolbar.js:71 +#: js/toolbar.js:132 +msgid "Set Pitch Preview" +msgstr "" + +#: js/toolbar.js:72 +#: js/toolbar.js:133 +#: js/toolbar.js:197 +#: js/toolbar.js:253 +msgid "JavaScript Editor" +msgstr "" + +#: js/toolbar.js:73 +#: js/toolbar.js:134 +#: js/toolbar.js:198 +#: js/toolbar.js:254 +#: js/turtledefs.js:724 +msgid "Restore" +msgstr "" + +#: js/toolbar.js:74 +#: js/toolbar.js:135 +#: js/toolbar.js:199 +#: js/toolbar.js:255 +msgid "Switch to beginner mode" +msgstr "" + +#: js/toolbar.js:75 +#: js/toolbar.js:136 +#: js/toolbar.js:200 +#: js/toolbar.js:256 +msgid "Switch to advanced mode" +msgstr "" + +#: js/toolbar.js:76 +#: js/toolbar.js:137 +#: js/toolbar.js:146 +#: js/toolbar.js:201 +#: js/toolbar.js:257 +#: js/turtledefs.js:738 +msgid "Select language" +msgstr "" + +#: js/toolbar.js:78 +#: js/toolbar.js:81 +#: js/toolbar.js:140 +#: js/turtledefs.js:579 +msgid "Save mouse artwork as PNG" +msgstr "" + +#: js/toolbar.js:80 +#: js/toolbar.js:139 +#: js/turtledefs.js:575 +msgid "Save mouse artwork as SVG" +msgstr "" + +#: js/toolbar.js:82 +#: js/toolbar.js:141 +#: js/turtledefs.js:583 +msgid "Save music as WAV" +msgstr "" + +#: js/toolbar.js:83 +#: js/toolbar.js:142 +#: js/turtledefs.js:587 +msgid "Save sheet music as ABC" +msgstr "" + +#: js/toolbar.js:84 +#: js/toolbar.js:143 +#: js/turtledefs.js:591 +msgid "Save sheet music as Lilypond" +msgstr "" + +#: js/toolbar.js:85 +msgid "Save sheet music as MusicXML" +msgstr "" + +#: js/toolbar.js:86 +#: js/toolbar.js:144 +#: js/toolbar.js:152 +#: js/toolbar.js:207 +#: js/toolbar.js:263 +#: js/turtledefs.js:562 +#: js/turtledefs.js:595 +msgid "Save block artwork as SVG" +msgstr "" + +#: js/toolbar.js:87 +#: js/toolbar.js:145 +#: js/toolbar.js:153 +#: js/toolbar.js:208 +#: js/toolbar.js:264 +#: js/turtles.js:911 +msgid "Confirm" +msgstr "" + +#: js/toolbar.js:88 +#: js/toolbar.js:154 +#: js/toolbar.js:209 +#: js/toolbar.js:265 +msgid "English (United States)" +msgstr "" + +#: js/toolbar.js:89 +#: js/toolbar.js:155 +#: js/toolbar.js:210 +#: js/toolbar.js:266 +msgid "English (United Kingdom)" +msgstr "" + +#: js/toolbar.js:90 +#: js/toolbar.js:156 +#: js/toolbar.js:211 +#: js/toolbar.js:267 +msgid "日本語" +msgstr "" + +#: js/toolbar.js:91 +msgid "한국어" +msgstr "" + +#: js/toolbar.js:92 +#: js/toolbar.js:158 +#: js/toolbar.js:213 +#: js/toolbar.js:269 +msgid "español" +msgstr "" + +#: js/toolbar.js:93 +#: js/toolbar.js:159 +#: js/toolbar.js:214 +#: js/toolbar.js:270 +msgid "português" +msgstr "" + +#: js/toolbar.js:94 +#: js/toolbar.js:160 +#: js/toolbar.js:215 +#: js/toolbar.js:271 +msgid "にほんご" +msgstr "" + +#: js/toolbar.js:95 +#: js/toolbar.js:161 +#: js/toolbar.js:216 +#: js/toolbar.js:272 +msgid "中文" +msgstr "" + +#: js/toolbar.js:96 +#: js/toolbar.js:162 +#: js/toolbar.js:217 +#: js/toolbar.js:273 +msgid "ภาษาไทย" +msgstr "" + +#: js/toolbar.js:97 +#: js/toolbar.js:163 +#: js/toolbar.js:218 +#: js/toolbar.js:274 +msgid "aymara" +msgstr "" + +#: js/toolbar.js:98 +#: js/toolbar.js:164 +#: js/toolbar.js:219 +#: js/toolbar.js:275 +msgid "quechua" +msgstr "" + +#: js/toolbar.js:99 +#: js/toolbar.js:165 +#: js/toolbar.js:220 +#: js/toolbar.js:276 +msgid "guarani" +msgstr "" + +#: js/toolbar.js:100 +#: js/toolbar.js:166 +#: js/toolbar.js:221 +#: js/toolbar.js:277 +msgid "हिंदी" +msgstr "" + +#: js/toolbar.js:101 +#: js/toolbar.js:168 +#: js/toolbar.js:222 +#: js/toolbar.js:279 +msgid "igbo" +msgstr "" + +#: js/toolbar.js:102 +#: js/toolbar.js:169 +#: js/toolbar.js:223 +#: js/toolbar.js:280 +msgid "عربى" +msgstr "" + +#: js/toolbar.js:103 +#: js/toolbar.js:167 +#: js/toolbar.js:224 +#: js/toolbar.js:278 +msgid "తెలుగు" +msgstr "" + +#: js/toolbar.js:104 +#: js/toolbar.js:170 +#: js/toolbar.js:225 +#: js/toolbar.js:281 +msgid "עִברִית" +msgstr "" + +#: js/toolbar.js:113 +#: js/toolbar.js:114 +#: js/toolbar.js:178 +#: js/toolbar.js:179 +#: js/toolbar.js:234 +#: js/toolbar.js:235 +msgid "Full Screen" +msgstr "" + +#: js/toolbar.js:148 +#: js/toolbar.js:151 +#: js/toolbar.js:203 +#: js/toolbar.js:206 +#: js/toolbar.js:259 +#: js/toolbar.js:262 +#: js/turtledefs.js:558 +msgid "Save turtle artwork as PNG" +msgstr "" + +#: js/toolbar.js:150 +#: js/toolbar.js:205 +#: js/toolbar.js:261 +#: js/turtledefs.js:554 +msgid "Save turtle artwork as SVG" +msgstr "" + +#: js/toolbar.js:157 +#: js/toolbar.js:212 +#: js/toolbar.js:268 +msgid "한국인" +msgstr "" + +#: js/toolbar.js:174 +#: js/toolbar.js:230 +msgid "About Turtle Blocks" +msgstr "" + +#: js/toolbar.js:446 +#: js/toolbar.js:457 +#: js/toolbar.js:497 +msgid "Turtle Wrap Off" +msgstr "" + +#: js/toolbar.js:466 +#: js/toolbar.js:506 +msgid "Turtle Wrap On" +msgstr "" + +#: js/turtle-painter.js:1192 +#: js/turtle-painter.js:1193 +#: js/turtles.js:118 +#: js/block-verbose.js:1623 +#: js/block.js:1587 +#: js/lilypond.js:749 +#: js/lilypond.js:913 +#: js/lilypond.js:951 +#: js/logo.js:1184 +#: js/blocks/ActionBlocks.js:1223 +#: js/blocks/ProgramBlocks.js:1267 +msgid "start" +msgstr "commence" + +#: js/turtledefs.js:40 +#.TRANS: put the URL to the guide here, e.g., https://github.com/sugarlabs/turtleblocksjs/tree/master/guide/README.md +msgid "guide url" +msgstr "" + +#: js/turtledefs.js:85 +#: js/turtledefs.js:437 +msgid "Turtle Blocks is a Logo-inspired turtle that draws colorful pictures with snap-together visual-programming blocks." +msgstr "" + +#: js/turtledefs.js:118 +#: js/turtledefs.js:220 +msgid "search" +msgstr "" + +#: js/turtledefs.js:120 +#: js/turtledefs.js:222 +#: js/blocks/MeterBlocks.js:1343 +#: js/blocks/WidgetBlocks.js:522 +#.TRANS: musical meter (time signature), e.g., 4:4 +msgid "meter" +msgstr "" + +#: js/turtledefs.js:122 +#: js/turtledefs.js:224 +msgid "intervals" +msgstr "" + +#: js/turtledefs.js:124 +#: js/turtledefs.js:226 +msgid "ornament" +msgstr "" + +#: js/turtledefs.js:125 +#: js/turtledefs.js:227 +#: js/blocks/VolumeBlocks.js:362 +#: js/blocks/VolumeBlocks.js:502 +#: js/blocks/VolumeBlocks.js:545 +msgid "volume" msgstr "" -#: js/palette.js:577 -#: js/block.js:1540 -#: js/block.js:2343 #: js/turtledefs.js:126 #: js/turtledefs.js:228 -#: js/lilypond.js:740 -#: js/lilypond.js:905 -#: js/lilypond.js:949 -#: js/DrumBlocks.js:486 -#: js/RhythmBlocks.js:766 -#: js/VolumeBlocks.js:502 -#: js/phrasemaker.js:823 +#: js/block-verbose.js:1700 +#: js/block-verbose.js:2626 +#: js/block.js:1664 +#: js/block.js:2554 +#: js/lilypond.js:732 +#: js/lilypond.js:897 +#: js/lilypond.js:941 +#: js/palette.js:577 +#: js/blocks/RhythmBlocks.js:766 +#: js/blocks/DrumBlocks.js:477 +#: js/blocks/VolumeBlocks.js:502 +#: js/widgets/phrasemaker.js:1038 msgid "drum" msgstr "" -#: js/palette.js:580 -msgid "effect" +#: js/turtledefs.js:129 +#: js/turtledefs.js:231 +msgid "boxes" +msgstr "" + +#: js/turtledefs.js:130 +#: js/turtledefs.js:232 +msgid "widgets" +msgstr "" + +#: js/turtledefs.js:131 +#: js/turtledefs.js:233 +#: js/widgets/phrasemaker.js:1039 +msgid "graphics" +msgstr "" + +#: js/turtledefs.js:134 +#: js/turtledefs.js:236 +msgid "boolean" +msgstr "boolean" + +#: js/turtledefs.js:137 +#: js/turtledefs.js:239 +#: js/blocks/HeapBlocks.js:59 +#: js/widgets/status.js:147 +msgid "heap" +msgstr "" + +#: js/turtledefs.js:138 +#: js/turtledefs.js:240 +#: js/blocks/DictBlocks.js:142 +#: js/blocks/ProgramBlocks.js:495 +msgid "dictionary" +msgstr "" + +#: js/turtledefs.js:139 +#: js/turtledefs.js:241 +msgid "ensemble" +msgstr "" + +#: js/turtledefs.js:140 +#: js/turtledefs.js:242 +msgid "extras" +msgstr "extras" + +#: js/turtledefs.js:142 +#: js/turtledefs.js:244 +#.TRANS: program as in computer program +#.TRANS: program as in computer program +msgid "program" +msgstr "" + +#: js/turtledefs.js:143 +#: js/turtledefs.js:245 +msgid "my blocks" +msgstr "" + +#: js/turtledefs.js:185 +#: js/turtledefs.js:281 +msgid "artwork" +msgstr "" + +#: js/turtledefs.js:185 +#: js/turtledefs.js:281 +msgid "logic" +msgstr "logique" + +#: js/turtledefs.js:185 +#: js/turtledefs.js:281 +msgid "music" msgstr "" -#: js/palette.js:586 -msgid "sargam" +#: js/turtledefs.js:187 +#: js/turtledefs.js:463 +msgid "Music Blocks is a collection of tools for exploring fundamental musical concepts in a fun way." msgstr "" -#: js/palette.js:589 -#: js/activity.js:1833 -#: js/RhythmBlocks.js:923 -#: js/PitchBlocks.js:442 -#: js/PitchBlocks.js:1748 -#.TRANS: a numeric mapping of the notes in an octave based on the musical mode -msgid "scale degree" +#: js/turtledefs.js:436 +msgid "Welcome to Turtle Blocks" msgstr "" -#: js/palette.js:592 -#: js/activity.js:1860 -msgid "mode name" +#: js/turtledefs.js:438 +#: js/turtledefs.js:465 +#: js/turtledefs.js:774 +#: js/turtledefs.js:805 +msgid "The current version is" msgstr "" -#: js/palette.js:595 -#: js/activity.js:1839 -msgid "invert mode" +#: js/turtledefs.js:446 +#: js/turtledefs.js:483 +msgid "Click the run button to run the project in fast mode." msgstr "" -#: js/palette.js:598 -#: js/activity.js:1836 -msgid "voice name" +#: js/turtledefs.js:452 +msgid "Stop the turtle." msgstr "" -#: js/palette.js:601 -#: js/PitchBlocks.js:1181 -msgid "custom pitch" +#: js/turtledefs.js:454 +#: js/turtledefs.js:491 +msgid "You can also type Alt-S to stop." msgstr "" -#: js/palette.js:605 -#: js/block.js:1456 -#: js/block.js:1575 -#: js/WidgetBlocks.js:218 -#: js/IntervalsBlocks.js:63 -msgid "temperament" +#: js/turtledefs.js:462 +#: js/widgets/help.js:333 +msgid "Welcome to Music Blocks" msgstr "" -#: js/palette.js:609 -msgid "accidental" +#: js/turtledefs.js:472 +#: js/widgets/help.js:334 +msgid "Meet Mr. Mouse!" msgstr "" -#: js/palette.js:615 -#: js/activity.js:1866 -msgid "interval name" +#: js/turtledefs.js:473 +msgid "Mr Mouse is our Music Blocks conductor." msgstr "" -#: js/palette.js:633 -#: js/PitchBlocks.js:405 -msgid "pitch converter" +#: js/turtledefs.js:475 +msgid "Mr Mouse encourages you to explore Music Blocks." msgstr "" -#: js/rubrics.js:522 -#: js/turtledefs.js:119 -#: js/turtledefs.js:221 -#: js/RhythmBlockPaletteBlocks.js:52 -#: js/RhythmBlockPaletteBlocks.js:233 -#: js/ProgramBlocks.js:745 -#: js/rhythmruler.js:1670 -#: js/rhythmruler.js:1677 -#: js/rhythmruler.js:1745 -#: js/rhythmruler.js:1752 -#: js/rhythmruler.js:1830 -#.TRANS: an arrangement of notes based on duration -msgid "rhythm" +#: js/turtledefs.js:477 +msgid "Let us start our tour!" msgstr "" -#: js/rubrics.js:523 -#: js/block.js:2339 -#: js/turtledefs.js:121 -#: js/turtledefs.js:223 -#: js/IntervalsBlocks.js:63 -#: js/PitchBlocks.js:1801 -#: js/PitchBlocks.js:1814 -#: js/SensorsBlocks.js:178 -#: js/phrasemaker.js:821 -#: js/musickeyboard.js:1653 -#.TRANS: pitch number -#.TRANS: we specify pitch in terms of a name and an octave. The name can be CDEFGAB or Do Re Mi Fa Sol La Ti. Octave is a number between 1 and 8. -msgid "pitch" +#: js/turtledefs.js:489 +msgid "Stop the music (and the mice)." msgstr "" -#: js/rubrics.js:524 -#: js/turtledefs.js:123 -#: js/turtledefs.js:225 -msgid "tone" +#: js/turtledefs.js:499 +msgid "Record your project as video." msgstr "" -#: js/rubrics.js:525 -#: js/lilypond.js:613 -#: js/lilypond.js:912 -#: js/lilypond.js:918 -#: js/lilypond.js:956 -msgid "mouse" +#: js/turtledefs.js:505 +msgid "Toggle Fullscreen mode." msgstr "" -#: js/rubrics.js:526 -#: js/turtledefs.js:132 -#: js/turtledefs.js:234 -#: js/phrasemaker.js:825 -msgid "pen" +#: js/turtledefs.js:511 +msgid "Initialize a new project." msgstr "" -#: js/rubrics.js:527 -#: js/turtledefs.js:133 -#: js/turtledefs.js:235 -#: js/NumberBlocks.js:905 -#: js/PitchBlocks.js:1679 -#: js/PitchBlocks.js:1720 -msgid "number" -msgstr "nombre" +#: js/turtledefs.js:517 +msgid "You can also load projects from the file system." +msgstr "Vous pouvez également charger des projets à partir du système de fichiers." -#: js/rubrics.js:528 -#: js/turtledefs.js:127 -#: js/turtledefs.js:229 -msgid "flow" -msgstr "flux" +#: js/turtledefs.js:522 +#: planet/js/StringHelper.js:46 +msgid "Delete" +msgstr "" -#: js/rubrics.js:530 -#: js/turtledefs.js:136 -#: js/turtledefs.js:238 -msgid "sensors" -msgstr "capteur" +#: js/turtledefs.js:523 +msgid "To delete a block, just right-click on it, then you will be able to see the delete option" +msgstr "" -#: js/rubrics.js:531 -#: js/turtledefs.js:135 -#: js/turtledefs.js:237 -#: js/MediaBlocks.js:930 -msgid "media" +#: js/turtledefs.js:528 +#: js/activity.js:2649 +#: planet/js/LocalCard.js:31 +msgid "Copy" msgstr "" -#: js/rubrics.js:532 -msgid "mice" +#: js/turtledefs.js:529 +msgid "To copy a block, just right-click on it, then you will be able to see the copy option" msgstr "" -#: js/macros.js:711 -#: js/musicutils.js:783 -#: js/synthutils.js:181 -#.TRANS: animal sound effect -msgid "duck" +#: js/turtledefs.js:534 +#: js/piemenus.js:3411 +msgid "Extract" msgstr "" -#: js/toolbar.js:46 -#: js/toolbar.js:107 -msgid "About Music Blocks" +#: js/turtledefs.js:535 +msgid "To extract a block, just right-click on it, then you will be able to see the extract option" msgstr "" -#: js/toolbar.js:47 -#: js/toolbar.js:108 -#: js/toolbar.js:172 -#: js/toolbar.js:228 -#: js/turtledefs.js:445 -#: js/turtledefs.js:482 -#: js/activity.js:2281 -#: js/activity.js:2289 -#: js/activity.js:2520 -#: js/modewidget.js:77 -#: js/pitchstaircase.js:121 -#: js/phrasemaker.js:302 -#: js/phrasemaker.js:312 -#: js/phrasemaker.js:314 -#: js/phrasemaker.js:3901 -#: js/phrasemaker.js:4061 -#: js/phrasemaker.js:4066 -#: js/phrasemaker.js:4068 -#: js/phrasemaker.js:4183 -#: js/pitchdrummatrix.js:81 -#: js/pitchdrummatrix.js:574 -#: js/pitchdrummatrix.js:576 -#: js/pitchdrummatrix.js:628 -#: js/pitchdrummatrix.js:630 -#: js/pitchdrummatrix.js:645 -#: js/pitchdrummatrix.js:647 -#: js/pitchdrummatrix.js:674 -#: js/pitchdrummatrix.js:676 -#: js/temperament.js:477 -#: js/temperament.js:480 -#: js/temperament.js:540 -#: js/temperament.js:542 -#: js/temperament.js:1835 -#: js/temperament.js:1837 -#: js/temperament.js:1986 -#: js/temperament.js:1988 -#: js/musickeyboard.js:522 -#: js/musickeyboard.js:682 -#: js/musickeyboard.js:684 -#: js/musickeyboard.js:756 -#: js/musickeyboard.js:758 -#: js/rhythmruler.js:298 -#: js/rhythmruler.js:300 -#: js/rhythmruler.js:314 -#: js/rhythmruler.js:316 -#: js/sampler.js:96 -#: js/sampler.js:98 -#: js/sampler.js:229 -#: js/sampler.js:235 -#: js/sampler.js:237 -#: js/tempo.js:84 -#: js/tempo.js:86 -#: js/timbre.js:432 -#: js/timbre.js:434 -#: js/timbre.js:465 -#: js/timbre.js:467 -#: js/timbre.js:746 -#: js/meterwidget.js:80 -#: js/arpeggio.js:90 -#: js/arpeggio.js:547 -#: js/arpeggio.js:549 -#: js/arpeggio.js:644 -#: js/arpeggio.js:646 -msgid "Play" +#: js/turtledefs.js:542 +#: js/turtledefs.js:552 +#: js/turtledefs.js:573 +msgid "Save your project to a file." msgstr "" -#: js/toolbar.js:48 -#: js/toolbar.js:109 -#: js/toolbar.js:173 -#: js/toolbar.js:229 -#: js/turtledefs.js:451 -#: js/turtledefs.js:488 -#: js/activity.js:2297 -#: js/modewidget.js:99 -#: js/modewidget.js:101 -#: js/phrasemaker.js:323 -#: js/phrasemaker.js:325 -#: js/pitchdrummatrix.js:561 -#: js/pitchdrummatrix.js:563 -#: js/temperament.js:1820 -#: js/temperament.js:1822 -#: js/meterwidget.js:101 -#: js/meterwidget.js:103 -#: js/arpeggio.js:534 -#: js/arpeggio.js:536 -msgid "Stop" -msgstr "Arrêter" +#: js/turtledefs.js:549 +#: js/turtledefs.js:570 +msgid "save" +msgstr "" -#: js/toolbar.js:49 -#: js/toolbar.js:110 -#: js/toolbar.js:174 -#: js/toolbar.js:230 -#: js/turtledefs.js:498 -msgid "Record" +#: js/turtledefs.js:556 +#: js/turtledefs.js:577 +msgid "Save graphics from your project to as SVG." msgstr "" -#: js/toolbar.js:50 -#: js/toolbar.js:51 -msgid "Full screen" +#: js/turtledefs.js:560 +#: js/turtledefs.js:581 +msgid "Save graphics from your project as PNG." msgstr "" -#: js/toolbar.js:52 -#: js/toolbar.js:112 -#: js/toolbar.js:177 -#: js/toolbar.js:232 -#: js/turtledefs.js:504 -msgid "Toggle Fullscreen" +#: js/turtledefs.js:564 +#: js/turtledefs.js:597 +msgid "Save block artwork as an SVG file." msgstr "" -#: js/toolbar.js:53 -#: js/toolbar.js:113 -#: js/toolbar.js:178 -#: js/toolbar.js:233 -#: js/turtledefs.js:510 -#: js/StringHelper.js:33 -msgid "New project" +#: js/turtledefs.js:585 +msgid "Save audio from your project as WAV." msgstr "" -#: js/toolbar.js:54 -#: js/toolbar.js:114 -#: js/toolbar.js:179 -#: js/toolbar.js:234 -#: js/turtledefs.js:516 -msgid "Load project from file" +#: js/turtledefs.js:589 +msgid "Save your project to as an ABC file." msgstr "" -#: js/toolbar.js:55 -#: js/toolbar.js:115 -#: js/toolbar.js:116 -#: js/toolbar.js:180 -#: js/toolbar.js:235 -#: js/turtledefs.js:541 -#: js/turtledefs.js:550 -#: js/turtledefs.js:571 -msgid "Save project" +#: js/turtledefs.js:593 +msgid "Save your project to as a Lilypond file." msgstr "" -#: js/toolbar.js:56 -#: js/toolbar.js:75 -#: js/toolbar.js:77 -#: js/toolbar.js:135 -#: js/toolbar.js:144 -#: js/toolbar.js:146 -#: js/toolbar.js:181 -#: js/toolbar.js:199 -#: js/toolbar.js:201 -#: js/toolbar.js:236 -#: js/toolbar.js:254 -#: js/toolbar.js:256 -msgid "Save project as HTML" +#: js/turtledefs.js:604 +msgid "Load samples from server" +msgstr "Charger des exemples depuis un serveur" + +#: js/turtledefs.js:605 +msgid "This button opens a viewer for loading example projects." +msgstr "Ce bouton ouvre une visionneuse pour charger des exemples de projets." + +#: js/turtledefs.js:611 +msgid "Palette buttons" +msgstr "Les boutons de la palette" + +#: js/turtledefs.js:612 +msgid "This toolbar contains the palette buttons including Rhythm Pitch Tone Action and more." msgstr "" -#: js/toolbar.js:57 -#: js/toolbar.js:117 -#: js/toolbar.js:182 -#: js/toolbar.js:237 -msgid "Find and share projects" +#: js/turtledefs.js:614 +msgid "Click to show the palettes of blocks and drag blocks from the palettes onto the canvas to use them." msgstr "" -#: js/toolbar.js:58 -#: js/toolbar.js:118 -#: js/toolbar.js:183 -#: js/toolbar.js:238 -msgid "Offline. Sharing is unavailable" +#: js/turtledefs.js:620 +msgid "Cartesian/Polar" msgstr "" -#: js/toolbar.js:59 -#: js/toolbar.js:119 -#: js/toolbar.js:184 -#: js/toolbar.js:239 -msgid "Auxiliary menu" +#: js/turtledefs.js:621 +msgid "Show or hide a coordinate grid." msgstr "" -#: js/toolbar.js:61 -#: js/toolbar.js:121 -#: js/toolbar.js:186 -#: js/toolbar.js:241 -msgid "Run slowly" +#: js/turtledefs.js:626 +#: js/turtles.js:902 +msgid "Clean" +msgstr "Efface" + +#: js/turtledefs.js:627 +msgid "Clear the screen and return the mice to their initial positions." msgstr "" -#: js/toolbar.js:62 -#: js/toolbar.js:122 -#: js/toolbar.js:187 -#: js/toolbar.js:242 -#: js/turtledefs.js:682 -msgid "Run step by step" -msgstr "Exécuter pas à pas" - -#: js/toolbar.js:63 -#: js/toolbar.js:123 -#: js/toolbar.js:188 -#: js/toolbar.js:243 -#: js/turtledefs.js:689 -msgid "Display statistics" +#: js/turtledefs.js:632 +#: js/turtles.js:955 +msgid "Collapse" msgstr "" -#: js/toolbar.js:64 -#: js/toolbar.js:124 -#: js/toolbar.js:189 -#: js/toolbar.js:244 -msgid "Load plugin" +#: js/turtledefs.js:633 +msgid "Collapse the graphics window." msgstr "" -#: js/toolbar.js:65 -#: js/toolbar.js:125 -#: js/toolbar.js:190 -#: js/toolbar.js:245 -#: js/turtledefs.js:696 -msgid "Delete plugin" +#: js/turtledefs.js:638 +#: js/activity.js:5684 +msgid "Home" msgstr "" -#: js/toolbar.js:66 -#: js/toolbar.js:126 -#: js/toolbar.js:191 -#: js/toolbar.js:246 -msgid "Enable horizontal scrolling" +#: js/turtledefs.js:639 +msgid "Return all blocks to the center of the screen." msgstr "" -#: js/toolbar.js:67 -#: js/toolbar.js:127 -#: js/toolbar.js:192 -#: js/toolbar.js:247 -msgid "Disable horizontal scrolling" +#: js/turtledefs.js:644 +msgid "Show/hide blocks" msgstr "" -#: js/toolbar.js:68 -#: js/toolbar.js:128 -#: js/toolbar.js:193 -#: js/toolbar.js:248 -#: js/LocalCard.js:54 -#: js/StringHelper.js:71 -msgid "Merge with current project" +#: js/turtledefs.js:645 +msgid "Hide or show the blocks and the palettes." msgstr "" -#: js/toolbar.js:69 -#: js/toolbar.js:129 -msgid "Set Pitch Preview" +#: js/turtledefs.js:650 +msgid "Expand/collapse collapsable blocks" msgstr "" -#: js/toolbar.js:70 -#: js/toolbar.js:130 -#: js/toolbar.js:194 -#: js/toolbar.js:249 -msgid "Toggle JavaScript Editor" +#: js/turtledefs.js:651 +msgid "Expand or collapse start and action stacks." msgstr "" -#: js/toolbar.js:71 -#: js/toolbar.js:131 -#: js/toolbar.js:195 -#: js/toolbar.js:250 -#: js/turtledefs.js:724 -msgid "Restore" +#: js/turtledefs.js:658 +#: js/activity.js:5704 +msgid "Decrease block size" msgstr "" -#: js/toolbar.js:72 -#: js/toolbar.js:132 -#: js/toolbar.js:196 -#: js/toolbar.js:251 -msgid "Switch to beginner mode" +#: js/turtledefs.js:659 +msgid "Decrease the size of the blocks." msgstr "" -#: js/toolbar.js:73 -#: js/toolbar.js:133 -#: js/toolbar.js:197 -#: js/toolbar.js:252 -msgid "Switch to advanced mode" +#: js/turtledefs.js:664 +#: js/activity.js:5710 +msgid "Increase block size" msgstr "" -#: js/toolbar.js:74 -#: js/toolbar.js:134 -#: js/toolbar.js:143 -#: js/toolbar.js:198 -#: js/toolbar.js:253 -#: js/turtledefs.js:738 -msgid "Select language" +#: js/turtledefs.js:665 +msgid "Increase the size of the blocks." msgstr "" -#: js/toolbar.js:76 -#: js/toolbar.js:79 -#: js/toolbar.js:137 -#: js/turtledefs.js:579 -msgid "Save mouse artwork as PNG" +#: js/turtledefs.js:670 +msgid "Expand/collapse option toolbar" msgstr "" -#: js/toolbar.js:78 -#: js/toolbar.js:136 -#: js/turtledefs.js:575 -msgid "Save mouse artwork as SVG" +#: js/turtledefs.js:671 +msgid "Click this button to expand or collapse the auxillary toolbar." msgstr "" -#: js/toolbar.js:80 -#: js/toolbar.js:138 -#: js/turtledefs.js:583 -msgid "Save music as WAV" +#: js/turtledefs.js:676 +msgid "Run slow" +msgstr "Exécuter lentement" + +#: js/turtledefs.js:677 +msgid "Click to run the project in slow mode." msgstr "" -#: js/toolbar.js:81 -#: js/toolbar.js:139 -#: js/turtledefs.js:587 -msgid "Save sheet music as ABC" +#: js/turtledefs.js:683 +msgid "Click to run the project step by step." msgstr "" -#: js/toolbar.js:82 -#: js/toolbar.js:140 -#: js/turtledefs.js:591 -msgid "Save sheet music as Lilypond" +#: js/turtledefs.js:690 +msgid "Display statistics about your Music project." msgstr "" -#: js/toolbar.js:83 -msgid "Save sheet music as MusicXML" +#: js/turtledefs.js:697 +msgid "Delete a selected plugin." msgstr "" -#: js/toolbar.js:84 -#: js/toolbar.js:141 -#: js/toolbar.js:149 -#: js/toolbar.js:204 -#: js/toolbar.js:259 -#: js/turtledefs.js:562 -#: js/turtledefs.js:595 -msgid "Save block artwork as SVG" +#: js/turtledefs.js:704 +msgid "Enable scrolling" msgstr "" -#: js/toolbar.js:85 -#: js/toolbar.js:142 -#: js/toolbar.js:150 -#: js/toolbar.js:205 -#: js/toolbar.js:260 -msgid "Confirm" +#: js/turtledefs.js:705 +msgid "You can scroll the blocks on the canvas." msgstr "" -#: js/toolbar.js:86 -#: js/toolbar.js:151 -#: js/toolbar.js:206 -#: js/toolbar.js:261 -msgid "English (United States)" +#: js/turtledefs.js:714 +msgid "Wrap Turtle" msgstr "" -#: js/toolbar.js:87 -#: js/toolbar.js:152 -#: js/toolbar.js:207 -#: js/toolbar.js:262 -msgid "English (United Kingdom)" +#: js/turtledefs.js:715 +msgid "Turn Turtle wrapping On or Off." msgstr "" -#: js/toolbar.js:88 -#: js/toolbar.js:153 -#: js/toolbar.js:208 -#: js/toolbar.js:263 -msgid "日本語" +#: js/turtledefs.js:725 +msgid "Restore blocks from the trash." +msgstr "Restaurer blocs de la poubelle." + +#: js/turtledefs.js:732 +msgid "Switch mode" msgstr "" -#: js/toolbar.js:89 -msgid "한국어" +#: js/turtledefs.js:733 +msgid "Switch between beginner and advance modes." msgstr "" -#: js/toolbar.js:90 -#: js/toolbar.js:155 -#: js/toolbar.js:210 -#: js/toolbar.js:265 -msgid "español" +#: js/turtledefs.js:739 +msgid "Select your language preference." msgstr "" -#: js/toolbar.js:91 -#: js/toolbar.js:156 -#: js/toolbar.js:211 -#: js/toolbar.js:266 -msgid "português" +#: js/turtledefs.js:745 +msgid "Keyboard shortcuts" msgstr "" -#: js/toolbar.js:92 -#: js/toolbar.js:157 -#: js/toolbar.js:212 -#: js/toolbar.js:267 -msgid "にほんご" +#: js/turtledefs.js:746 +msgid "You can type d to create a do block and r to create a re block etc." msgstr "" -#: js/toolbar.js:93 -#: js/toolbar.js:158 -#: js/toolbar.js:213 -#: js/toolbar.js:268 -msgid "中文" +#: js/turtledefs.js:753 +msgid "Show these messages." +msgstr "Montrer ces messages." + +#: js/turtledefs.js:759 +#: js/turtledefs.js:790 +#: js/widgets/help.js:335 +msgid "Guide" msgstr "" -#: js/toolbar.js:94 -#: js/toolbar.js:159 -#: js/toolbar.js:214 -#: js/toolbar.js:269 -msgid "ภาษาไทย" +#: js/turtledefs.js:760 +msgid "A detailed guide to Turtle Blocks is available." msgstr "" -#: js/toolbar.js:95 -#: js/toolbar.js:160 -#: js/toolbar.js:215 -#: js/toolbar.js:270 -msgid "aymara" +#: js/turtledefs.js:764 +msgid "Turtle Blocks Guide" msgstr "" -#: js/toolbar.js:96 -#: js/toolbar.js:161 -#: js/toolbar.js:216 -#: js/toolbar.js:271 -msgid "quechua" +#: js/turtledefs.js:767 +#: js/turtledefs.js:798 +#: js/widgets/help.js:336 +msgid "About" msgstr "" -#: js/toolbar.js:97 -#: js/toolbar.js:162 -#: js/toolbar.js:217 -#: js/toolbar.js:272 -msgid "guarani" +#: js/turtledefs.js:768 +msgid "Turtle Blocks is an open source collection of tools for exploring musical concepts." msgstr "" -#: js/toolbar.js:98 -#: js/toolbar.js:163 -#: js/toolbar.js:218 -#: js/toolbar.js:273 -msgid "हिंदी" +#: js/turtledefs.js:770 +msgid "A full list of contributors can be found in the Turtle Blocks GitHub repository." msgstr "" -#: js/toolbar.js:99 -#: js/toolbar.js:165 -#: js/toolbar.js:219 -#: js/toolbar.js:275 -msgid "igbo" +#: js/turtledefs.js:772 +msgid "Turtle Blocks is licensed under the AGPL." msgstr "" -#: js/toolbar.js:100 -#: js/toolbar.js:166 -#: js/toolbar.js:220 -#: js/toolbar.js:276 -msgid "عربى" +#: js/turtledefs.js:780 +msgid "Turtle Blocks GitHub repository" msgstr "" -#: js/toolbar.js:101 -#: js/toolbar.js:164 -#: js/toolbar.js:221 -#: js/toolbar.js:274 -msgid "తెలుగు" +#: js/turtledefs.js:783 +#: js/turtledefs.js:814 +#: js/widgets/help.js:337 +#: js/widgets/help.js:359 +msgid "Congratulations." +msgstr "Félicitations." + +#: js/turtledefs.js:784 +msgid "You have finished the tour. Please enjoy Turtle Blocks!" msgstr "" -#: js/toolbar.js:102 -#: js/toolbar.js:167 -#: js/toolbar.js:222 -#: js/toolbar.js:277 -msgid "עִברִית" +#: js/turtledefs.js:791 +msgid "A detailed guide to Music Blocks is available." msgstr "" -#: js/toolbar.js:111 -#: js/toolbar.js:175 -#: js/toolbar.js:176 -#: js/toolbar.js:231 -msgid "Full Screen" +#: js/turtledefs.js:799 +msgid "Music Blocks is an open source collection of tools for exploring musical concepts." msgstr "" -#: js/toolbar.js:145 -#: js/toolbar.js:148 -#: js/toolbar.js:200 -#: js/toolbar.js:203 -#: js/toolbar.js:255 -#: js/toolbar.js:258 -#: js/turtledefs.js:558 -msgid "Save turtle artwork as PNG" +#: js/turtledefs.js:801 +msgid "A full list of contributors can be found in the Music Blocks GitHub repository." msgstr "" -#: js/toolbar.js:147 -#: js/toolbar.js:202 -#: js/toolbar.js:257 -#: js/turtledefs.js:554 -msgid "Save turtle artwork as SVG" +#: js/turtledefs.js:803 +msgid "Music Blocks is licensed under the AGPL." msgstr "" -#: js/toolbar.js:154 -#: js/toolbar.js:209 -#: js/toolbar.js:264 -msgid "한국인" +#: js/turtledefs.js:811 +msgid "Music Blocks GitHub repository" msgstr "" -#: js/toolbar.js:171 -#: js/toolbar.js:227 -msgid "About Turtle Blocks" +#: js/turtledefs.js:815 +msgid "You have finished the tour. Please enjoy Music Blocks!" msgstr "" -#: js/toolbar.js:429 -#: js/toolbar.js:440 -msgid "Turtle Wrap Off" +#: js/turtles.js:882 +msgid "Grid" msgstr "" -#: js/toolbar.js:442 -msgid "Turtle Wrap On" +#: js/turtles.js:1024 +msgid "Expand" +msgstr "" + +#: js/block-verbose.js:1616 +#: js/block-verbose.js:1735 +#: js/block.js:1580 +#: js/block.js:1699 +#: js/palette.js:605 +#: js/blocks/IntervalsBlocks.js:63 +#: js/blocks/WidgetBlocks.js:259 +msgid "temperament" msgstr "" -#: js/block.js:1470 +#: js/block-verbose.js:1630 +#: js/block.js:1594 msgid "matrix" msgstr "" -#: js/block.js:1477 -#: js/WidgetBlocks.js:1226 +#: js/block-verbose.js:1637 +#: js/block.js:1601 +#: js/blocks/WidgetBlocks.js:1509 #: plugins/rodi.rtp:324 msgid "status" msgstr "" -#: js/block.js:1484 +#: js/block-verbose.js:1644 +#: js/block.js:1608 msgid "drum mapper" msgstr "" -#: js/block.js:1491 +#: js/block-verbose.js:1651 +#: js/block.js:1615 msgid "ruler" msgstr "" -#: js/block.js:1498 -#: js/WidgetBlocks.js:327 +#: js/block-verbose.js:1658 +#: js/block.js:1622 +#: js/blocks/WidgetBlocks.js:397 #.TRANS: timbre is the character or quality of a musical sound msgid "timbre" msgstr "" -#: js/block.js:1505 +#: js/block-verbose.js:1665 +#: js/block.js:1629 msgid "stair" msgstr "" -#: js/block.js:1512 -#: js/WidgetBlocks.js:577 +#: js/block-verbose.js:1672 +#: js/block.js:1636 +#: js/blocks/WidgetBlocks.js:707 #.TRANS: the speed at music is should be played. msgid "tempo" msgstr "" -#: js/block.js:1519 -#: js/block.js:1582 -#: js/IntervalsBlocks.js:1268 +#: js/block-verbose.js:1679 +#: js/block-verbose.js:1742 +#: js/block.js:1643 +#: js/block.js:1706 +#: js/blocks/IntervalsBlocks.js:1464 #.TRANS: mode, e.g., Major in C Major msgid "mode" msgstr "" -#: js/block.js:1526 +#: js/block-verbose.js:1686 +#: js/block.js:1650 msgid "slider" msgstr "" -#: js/block.js:1533 -#: js/SensorsBlocks.js:1001 +#: js/block-verbose.js:1693 +#: js/block.js:1657 +#: js/blocks/SensorsBlocks.js:1001 msgid "keyboard" msgstr "clavier" -#: js/block.js:1547 -#: js/WidgetBlocks.js:957 -#: js/WidgetBlocks.js:988 +#: js/block-verbose.js:1707 +#: js/block.js:1671 +#: js/blocks/WidgetBlocks.js:1190 +#: js/blocks/WidgetBlocks.js:1228 #.TRANS: widget for subdividing a measure into distinct rhythmic elements msgid "rhythm maker" msgstr "" -#: js/block.js:1554 -#: js/block.js:2182 -#: js/block.js:2236 -#: js/RhythmBlockPaletteBlocks.js:70 -#: js/RhythmBlockPaletteBlocks.js:251 -#: js/RhythmBlockPaletteBlocks.js:484 -#: js/RhythmBlockPaletteBlocks.js:553 -#: js/RhythmBlockPaletteBlocks.js:604 -#: js/RhythmBlockPaletteBlocks.js:874 -#: js/RhythmBlocks.js:33 -#: js/RhythmBlocks.js:356 -#: js/RhythmBlocks.js:766 -#: js/RhythmBlocks.js:806 -#: js/OrnamentBlocks.js:220 -#: js/OrnamentBlocks.js:312 -#: js/MeterBlocks.js:1367 -#: js/DictActions.js:85 -#: js/phrasemaker.js:731 -#: js/phrasemaker.js:2393 -#: js/phrasemaker.js:2436 -#: js/phrasemaker.js:2534 +#: js/block-verbose.js:1714 +#: js/block-verbose.js:2457 +#: js/block-verbose.js:2514 +#: js/block.js:1678 +#: js/block.js:2385 +#: js/block.js:2442 +#: js/blocks/MeterBlocks.js:1367 +#: js/blocks/OrnamentBlocks.js:220 +#: js/blocks/OrnamentBlocks.js:312 +#: js/blocks/RhythmBlocks.js:33 +#: js/blocks/RhythmBlocks.js:356 +#: js/blocks/RhythmBlocks.js:766 +#: js/blocks/RhythmBlocks.js:806 +#: js/blocks/RhythmBlockPaletteBlocks.js:70 +#: js/blocks/RhythmBlockPaletteBlocks.js:252 +#: js/blocks/RhythmBlockPaletteBlocks.js:485 +#: js/blocks/RhythmBlockPaletteBlocks.js:554 +#: js/blocks/RhythmBlockPaletteBlocks.js:605 +#: js/blocks/RhythmBlockPaletteBlocks.js:875 +#: js/turtleactions/DictActions.js:85 +#: js/widgets/phrasemaker.js:942 +#: js/widgets/phrasemaker.js:2656 +#: js/widgets/phrasemaker.js:2699 +#: js/widgets/phrasemaker.js:2810 #.TRANS: the value (e.g., 1/4 note) of the note being played. msgid "note value" msgstr "" -#: js/block.js:1561 -#: js/block.js:2110 -#: js/block.js:2133 -#: js/IntervalsBlocks.js:875 -#: js/OrnamentBlocks.js:312 +#: js/block-verbose.js:1721 +#: js/block-verbose.js:2382 +#: js/block-verbose.js:2405 +#: js/block.js:1685 +#: js/block.js:2310 +#: js/block.js:2333 +#: js/blocks/IntervalsBlocks.js:1071 +#: js/blocks/OrnamentBlocks.js:312 #.TRANS: calculate a relative step between notes based on semi-tones msgid "scalar interval" msgstr "" -#: js/block.js:1568 -#: js/RhythmBlocks.js:148 +#: js/block-verbose.js:1728 +#: js/block.js:1692 +#: js/blocks/RhythmBlocks.js:148 msgid "milliseconds" msgstr "" -#: js/block.js:2180 -#: js/block.js:2184 -#: js/block.js:2234 -#: js/block.js:2345 -#: js/ProgramBlocks.js:1273 -#: js/RhythmBlocks.js:712 -#: js/rhythmruler.js:834 -#: js/rhythmruler.js:961 +#: js/block-verbose.js:2455 +#: js/block-verbose.js:2459 +#: js/block-verbose.js:2512 +#: js/block-verbose.js:2628 +#: js/block.js:2383 +#: js/block.js:2387 +#: js/block.js:2440 +#: js/block.js:2556 +#: js/blocks/RhythmBlocks.js:712 +#: js/blocks/ProgramBlocks.js:1273 +#: js/widgets/rhythmruler.js:1183 +#: js/widgets/rhythmruler.js:1329 msgid "silence" msgstr "" -#: js/block.js:2265 -#: js/block.js:3134 -#: js/block.js:3151 -#: js/activity.js:2336 -#: js/activity.js:2387 -#: js/musicutils.js:2932 -#: js/musicutils.js:4287 +#: js/block-verbose.js:2548 +#: js/block-verbose.js:3492 +#: js/block-verbose.js:3509 +#: js/activity.js:2718 +#: js/activity.js:2769 +#: js/block.js:2476 +#: js/block.js:3416 +#: js/block.js:3433 +#: js/utils/musicutils.js:3780 +#: js/utils/musicutils.js:5273 +#.TRANS: the note names must be separated by single spaces #.TRANS: the note names must be separated by single spaces #.TRANS: the note names must be separated by single spaces msgid "ti la sol fa mi re do" msgstr "" -#: js/block.js:2333 +#: js/block-verbose.js:2616 +#: js/block.js:2544 +#.TRANS: scalar step #.TRANS: scalar step msgid "down" msgstr "" -#: js/block.js:2334 +#: js/block-verbose.js:2617 +#: js/block.js:2545 msgid "up" msgstr "" -#: js/block.js:3477 -#: js/block.js:3490 -#: js/ExtrasBlocks.js:612 +#: js/block-verbose.js:3026 +#: js/block.js:2950 +msgid "Silence block cannot be removed." +msgstr "" + +#: js/block-verbose.js:3824 +#: js/block.js:3748 +#: js/blocks.js:2607 +#: js/blocks.js:3218 +#: js/palette.js:618 +#: js/blocks/BooleanBlocks.js:77 +#: js/blocks/BooleanBlocks.js:167 +#: js/blocks/BooleanBlocks.js:251 +#: js/blocks/BooleanBlocks.js:335 +#: js/blocks/BooleanBlocks.js:433 +#: js/blocks/BooleanBlocks.js:539 +#: js/blocks/BooleanBlocks.js:640 +#: js/blocks/BooleanBlocks.js:741 +#: js/blocks/BooleanBlocks.js:847 +#: js/blocks/BooleanBlocks.js:948 +#: js/blocks/BooleanBlocks.js:1033 +#: js/blocks/SensorsBlocks.js:910 +msgid "true" +msgstr "" + +#: js/block-verbose.js:3824 +#: js/block.js:3748 +#: js/blocks.js:2609 +#: js/blocks.js:3220 +#: js/blocks/BooleanBlocks.js:79 +#: js/blocks/BooleanBlocks.js:169 +#: js/blocks/BooleanBlocks.js:253 +#: js/blocks/BooleanBlocks.js:337 +#: js/blocks/BooleanBlocks.js:435 +#: js/blocks/BooleanBlocks.js:541 +#: js/blocks/BooleanBlocks.js:642 +#: js/blocks/BooleanBlocks.js:743 +#: js/blocks/BooleanBlocks.js:849 +#: js/blocks/BooleanBlocks.js:950 +#: js/blocks/SensorsBlocks.js:912 +msgid "false" +msgstr "" + +#: js/block-verbose.js:3835 +#: js/block-verbose.js:3848 +#: js/block.js:3759 +#: js/block.js:3772 +#: js/blocks/ExtrasBlocks.js:615 msgid "Cartesian" msgstr "Coordonnées cartésiennes" -#: js/block.js:3478 -#: js/block.js:3491 -#: js/ExtrasBlocks.js:616 +#: js/block-verbose.js:3836 +#: js/block-verbose.js:3849 +#: js/block.js:3760 +#: js/block.js:3773 +#: js/blocks/ExtrasBlocks.js:619 msgid "polar" msgstr "" -#: js/block.js:3479 -#: js/block.js:3492 -#: js/ExtrasBlocks.js:620 +#: js/block-verbose.js:3837 +#: js/block-verbose.js:3850 +#: js/block.js:3761 +#: js/block.js:3774 +#: js/blocks/ExtrasBlocks.js:623 msgid "Cartesian+polar" msgstr "" -#: js/block.js:3480 -#: js/block.js:3499 -#: js/ExtrasBlocks.js:649 +#: js/block-verbose.js:3838 +#: js/block-verbose.js:3857 +#: js/block.js:3762 +#: js/block.js:3781 +#: js/blocks/ExtrasBlocks.js:652 msgid "none" msgstr "" -#: js/block.js:3493 -#: js/ExtrasBlocks.js:625 +#: js/block-verbose.js:3851 +#: js/block.js:3775 +#: js/blocks/ExtrasBlocks.js:628 msgid "treble" msgstr "" -#: js/block.js:3494 -#: js/ExtrasBlocks.js:629 +#: js/block-verbose.js:3852 +#: js/block.js:3776 +#: js/blocks/ExtrasBlocks.js:632 msgid "grand staff" msgstr "" -#: js/block.js:3495 -#: js/ExtrasBlocks.js:633 +#: js/block-verbose.js:3853 +#: js/block.js:3777 +#: js/blocks/ExtrasBlocks.js:636 msgid "mezzo-soprano" msgstr "" -#: js/block.js:3496 -#: js/ExtrasBlocks.js:637 +#: js/block-verbose.js:3854 +#: js/block.js:3778 +#: js/blocks/ExtrasBlocks.js:640 msgid "alto" msgstr "" -#: js/block.js:3497 -#: js/ExtrasBlocks.js:641 +#: js/block-verbose.js:3855 +#: js/block.js:3779 +#: js/blocks/ExtrasBlocks.js:644 msgid "tenor" msgstr "" -#: js/block.js:3498 -#: js/ExtrasBlocks.js:645 -#: js/musicutils.js:736 -#: js/synthutils.js:64 +#: js/block-verbose.js:3856 +#: js/block.js:3780 +#: js/utils/musicutils.js:1115 +#: js/utils/synthutils.js:80 +#: js/blocks/ExtrasBlocks.js:648 #.TRANS: musical instrument msgid "bass" msgstr "" -#: js/block.js:4075 +#: js/block-verbose.js:3901 +#: js/block.js:3825 +#: js/blocks.js:2600 +#: js/blocks.js:3211 +msgid "on2" +msgstr "" + +#: js/block-verbose.js:3903 +#: js/block.js:3827 +#: js/blocks.js:2602 +#: js/blocks.js:3213 +msgid "off" +msgstr "" + +#: js/block-verbose.js:4470 +#: js/block.js:4394 msgid "Not a number" msgstr "" -#: js/block.js:4082 +#: js/block-verbose.js:4477 +#: js/block.js:4401 msgid "Octave value must be between 1 and 10." msgstr "" -#: js/block.js:4090 +#: js/block-verbose.js:4485 +#: js/block.js:4409 msgid "Numbers can have at most 10 digits." msgstr "" -#: js/notation.js:353 -msgid "Lilypond cannot process pickup of " +#: js/activity.js:390 +#: js/activity.js:395 +msgid "Search for blocks" msgstr "" -#: js/turtledefs.js:40 -#.TRANS: put the URL to the guide here, e.g., https://github.com/sugarlabs/turtleblocksjs/tree/master/guide/README.md -msgid "guide url" +#: js/activity.js:1413 +msgid "Refresh your browser to change to advanced mode." msgstr "" -#: js/turtledefs.js:85 -#: js/turtledefs.js:437 -msgid "Turtle Blocks is a Logo-inspired turtle that draws colorful pictures with snap-together visual-programming blocks." +#: js/activity.js:1418 +msgid "Refresh your browser to change to beginner mode." msgstr "" -#: js/turtledefs.js:118 -#: js/turtledefs.js:220 -msgid "search" +#: js/activity.js:1477 +msgid "Catching mice" msgstr "" -#: js/turtledefs.js:120 -#: js/turtledefs.js:222 -#: js/WidgetBlocks.js:437 -#: js/MeterBlocks.js:1343 -#.TRANS: musical meter (time signature), e.g., 4:4 -msgid "meter" +#: js/activity.js:1478 +msgid "Cleaning the instruments" msgstr "" -#: js/turtledefs.js:122 -#: js/turtledefs.js:224 -msgid "intervals" +#: js/activity.js:1479 +msgid "Testing key pieces" msgstr "" -#: js/turtledefs.js:124 -#: js/turtledefs.js:226 -msgid "ornament" +#: js/activity.js:1480 +msgid "Sight-reading" msgstr "" -#: js/turtledefs.js:125 -#: js/turtledefs.js:227 -#: js/VolumeBlocks.js:362 -#: js/VolumeBlocks.js:502 -#: js/VolumeBlocks.js:545 -msgid "volume" +#: js/activity.js:1481 +msgid "Combining math and music" +msgstr "" + +#: js/activity.js:1482 +msgid "Generating more blocks" +msgstr "" + +#: js/activity.js:1483 +msgid "Do Re Mi Fa Sol La Ti Do" +msgstr "" + +#: js/activity.js:1484 +msgid "Tuning string instruments" +msgstr "" + +#: js/activity.js:1485 +msgid "Pressing random keys" +msgstr "" + +#: js/activity.js:1663 +msgid "plugins will be removed upon restart." +msgstr "" + +#: js/activity.js:1672 +msgid "show Cartesian" +msgstr "" + +#: js/activity.js:2211 +#: js/palette.js:589 +#: js/blocks/RhythmBlocks.js:923 +#: js/blocks/PitchBlocks.js:442 +#: js/blocks/PitchBlocks.js:1786 +#.TRANS: a numeric mapping of the notes in an octave based on the musical mode +msgid "scale degree" +msgstr "" + +#: js/activity.js:2214 +#: js/palette.js:598 +msgid "voice name" +msgstr "" + +#: js/activity.js:2217 +#: js/palette.js:595 +msgid "invert mode" +msgstr "" + +#: js/activity.js:2220 +msgid "output tools" +msgstr "" + +#: js/activity.js:2223 +msgid "custom note" +msgstr "" + +#: js/activity.js:2226 +msgid "accidental name" +msgstr "" + +#: js/activity.js:2229 +#: js/blocks/PitchBlocks.js:855 +msgid "east indian solfege" +msgstr "" + +#: js/activity.js:2232 +#: js/blocks/PitchBlocks.js:869 +msgid "note name" +msgstr "" + +#: js/activity.js:2235 +#: js/blocks/IntervalsBlocks.js:94 +msgid "temperament name" +msgstr "" + +#: js/activity.js:2238 +#: js/palette.js:592 +msgid "mode name" +msgstr "" + +#: js/activity.js:2241 +msgid "chord name" +msgstr "" + +#: js/activity.js:2244 +#: js/palette.js:615 +msgid "interval name" +msgstr "" + +#: js/activity.js:2247 +msgid "filter type" +msgstr "" + +#: js/activity.js:2250 +msgid "oscillator type" +msgstr "" + +#: js/activity.js:2253 +#: js/blocks.js:2479 +#: js/blocks.js:2487 +msgid "audio file" +msgstr "" + +#: js/activity.js:2256 +#: js/blocks/DrumBlocks.js:32 +msgid "noise name" +msgstr "" + +#: js/activity.js:2259 +#: js/blocks/DrumBlocks.js:75 +msgid "drum name" +msgstr "" + +#: js/activity.js:2262 +#: js/blocks/DrumBlocks.js:119 +msgid "effects name" +msgstr "" + +#: js/activity.js:2265 +msgid "wrap mode" +msgstr "" + +#: js/activity.js:2268 +msgid "load file" +msgstr "" + +#: js/activity.js:2435 +#: js/activity.js:5851 +msgid "This block is deprecated." +msgstr "" + +#: js/activity.js:2437 +#: js/activity.js:5853 +msgid "Block cannot be found." +msgstr "" + +#: js/activity.js:2645 +msgid "Saving block artwork" +msgstr "" + +#: js/activity.js:2656 +msgid "Erase" +msgstr "" + +#: js/activity.js:2683 +#: js/activity.js:2705 +msgid "Paste" +msgstr "Coller" + +#: js/activity.js:2687 +msgid "Save block help" +msgstr "" + +#: js/activity.js:2772 +msgid "Jumping to the bottom of the page." +msgstr "" + +#: js/activity.js:2778 +msgid "Scrolling up." +msgstr "" + +#: js/activity.js:2783 +msgid "Scrolling down." +msgstr "" + +#: js/activity.js:2788 +msgid "Extracting block" +msgstr "" + +#: js/activity.js:2796 +msgid "Moving block up." +msgstr "" + +#: js/activity.js:2817 +msgid "Moving block down." +msgstr "" + +#: js/activity.js:2838 +msgid "Moving block left." +msgstr "" + +#: js/activity.js:2855 +msgid "Moving block right." +msgstr "" + +#: js/activity.js:2870 +msgid "Jump to home position." +msgstr "" + +#: js/activity.js:2897 +msgid "Hide blocks" +msgstr "" + +#: js/activity.js:4500 +msgid "Click the run button to run the project." msgstr "" -#: js/turtledefs.js:129 -#: js/turtledefs.js:231 -msgid "boxes" +#: js/activity.js:5692 +msgid "Show/hide block" msgstr "" -#: js/turtledefs.js:130 -#: js/turtledefs.js:232 -msgid "widgets" +#: js/activity.js:5698 +msgid "Expand/collapse blocks" msgstr "" -#: js/turtledefs.js:131 -#: js/turtledefs.js:233 -#: js/phrasemaker.js:824 -msgid "graphics" +#: js/activity.js:5976 +msgid "Could not parse JSON input." msgstr "" -#: js/turtledefs.js:134 -#: js/turtledefs.js:236 -msgid "boolean" -msgstr "boolean" - -#: js/turtledefs.js:137 -#: js/turtledefs.js:239 -#: js/HeapBlocks.js:59 -#: js/status.js:147 -msgid "heap" +#: js/activity.js:6475 +#: js/activity.js:6580 +#: js/activity.js:6631 +msgid "Cannot load project from the file. Please check the file type." msgstr "" -#: js/turtledefs.js:138 -#: js/turtledefs.js:240 -#: js/ProgramBlocks.js:495 -#: js/DictBlocks.js:142 -msgid "dictionary" +#: js/activity.js:6917 +msgid "Invalid parameters" msgstr "" -#: js/turtledefs.js:139 -#: js/turtledefs.js:241 -msgid "ensemble" +#: js/blocks.js:1212 +#: js/blocks.js:3444 +#: js/blocks.js:3834 +#: js/blocks.js:3865 +#: js/blocks.js:3914 +#: js/blocks.js:3949 +#: js/blocks.js:6586 +#: js/palette.js:509 +#: js/palette.js:638 +#: js/palette.js:1105 +#: js/blocks/BoxesBlocks.js:282 +#: js/blocks/BoxesBlocks.js:285 +#: js/blocks/BoxesBlocks.js:405 +#: js/blocks/BoxesBlocks.js:594 +msgid "box" +msgstr "boîte" + +#: js/blocks.js:1713 +msgid "Consider breaking this stack into parts." msgstr "" -#: js/turtledefs.js:140 -#: js/turtledefs.js:242 -msgid "extras" -msgstr "extras" +#: js/blocks.js:2472 +#: js/palette.js:653 +#: js/blocks/MediaBlocks.js:602 +msgid "open file" +msgstr "fichier ouvert" -#: js/turtledefs.js:142 -#: js/turtledefs.js:244 -#.TRANS: program as in computer program -#.TRANS: program as in computer program -msgid "program" +#: js/blocks.js:3247 +#: js/palette.js:574 +#: js/blocks/MediaBlocks.js:892 +#: js/blocks/MediaBlocks.js:963 +msgid "text" +msgstr "texte" + +#: js/blocks.js:3443 +#: js/palette.js:641 +#: js/palette.js:642 +#: js/blocks/BoxesBlocks.js:514 +msgid "store in box" msgstr "" -#: js/turtledefs.js:143 -#: js/turtledefs.js:245 -msgid "my blocks" +#: js/blocks.js:3448 +#: js/blocks.js:3888 +#: js/blocks.js:3923 +#: js/blocks.js:3958 +#: js/blocks.js:5862 +#: js/blocks.js:5883 +#: js/blocks/BoxesBlocks.js:772 +msgid "box1" msgstr "" -#: js/turtledefs.js:185 -#: js/turtledefs.js:281 -msgid "artwork" +#: js/blocks.js:3450 +#: js/blocks.js:3890 +#: js/blocks.js:3925 +#: js/blocks.js:3960 +#: js/blocks.js:5864 +#: js/blocks.js:5885 +#: js/blocks/BoxesBlocks.js:663 +msgid "box2" msgstr "" -#: js/turtledefs.js:185 -#: js/turtledefs.js:281 -msgid "logic" -msgstr "logique" +#: js/blocks.js:4122 +#: js/palette.js:639 +#: js/palette.js:644 +#: js/palette.js:1041 +#: js/blocks/BoxesBlocks.js:591 +msgid "store in" +msgstr "range dans" -#: js/turtledefs.js:185 -#: js/turtledefs.js:281 -msgid "music" -msgstr "" +#: js/blocks.js:4122 +#: js/blocks/BoxesBlocks.js:595 +#: js/blocks/DictBlocks.js:215 +#: js/blocks/DictBlocks.js:289 +#: js/blocks/EnsembleBlocks.js:391 +#: js/blocks/EnsembleBlocks.js:402 +#: js/blocks/MediaBlocks.js:746 +#: js/blocks/PitchBlocks.js:656 +#: js/blocks/PitchBlocks.js:934 +#: js/blocks/PitchBlocks.js:1866 +#: js/blocks/ProgramBlocks.js:390 +#: js/blocks/ProgramBlocks.js:495 +#: js/blocks/ProgramBlocks.js:658 +#: js/blocks/ToneBlocks.js:1025 +msgid "name" +msgstr "nom" -#: js/turtledefs.js:187 -#: js/turtledefs.js:463 -msgid "Music Blocks is a collection of tools for exploring fundamental musical concepts in a fun way." +#: js/blocks.js:4122 +#: js/blocks/BoxesBlocks.js:75 +#: js/blocks/BoxesBlocks.js:595 +#: js/blocks/DictBlocks.js:289 +#: js/blocks/DictBlocks.js:430 +#: js/blocks/HeapBlocks.js:544 +#: js/blocks/RhythmBlocks.js:1130 +msgid "value" +msgstr "valor" + +#: js/blocks.js:4465 +msgid "Forever loop detected inside a note value block. Unexpected things may happen." msgstr "" -#: js/turtledefs.js:436 -msgid "Welcome to Turtle Blocks" +#: js/blocks.js:4988 +msgid "There is no block selected." msgstr "" -#: js/turtledefs.js:438 -#: js/turtledefs.js:465 -#: js/turtledefs.js:774 -#: js/turtledefs.js:805 -msgid "The current version is" +#: js/blocks.js:5091 +#: js/blocks/MediaBlocks.js:888 +msgid "show" +msgstr "montre" + +#: js/blocks.js:5094 +#: js/blocks/MediaBlocks.js:803 +#.TRANS: Avatar is the image used to determine the appearance of the mouse. +msgid "avatar" msgstr "" -#: js/turtledefs.js:446 -#: js/turtledefs.js:483 -msgid "Click the run button to run the project in fast mode." +#: js/blocks.js:5097 +#: js/blocks/ToneBlocks.js:1010 +#: js/widgets/sampler.js:975 +#.TRANS: The sound sample that the user uploads. +msgid "sample" msgstr "" -#: js/turtledefs.js:452 -msgid "Stop the turtle." +#: js/lilypond.js:606 +msgid "brown rat" msgstr "" -#: js/turtledefs.js:454 -#: js/turtledefs.js:491 -msgid "You can also type Alt-S to stop." +#: js/lilypond.js:607 +msgid "mole" msgstr "" -#: js/turtledefs.js:462 -#: js/help.js:333 -msgid "Welcome to Music Blocks" +#: js/lilypond.js:608 +msgid "chipmunk" msgstr "" -#: js/turtledefs.js:472 -#: js/help.js:334 -msgid "Meet Mr. Mouse!" +#: js/lilypond.js:609 +msgid "red squirrel" msgstr "" -#: js/turtledefs.js:473 -msgid "Mr Mouse is our Music Blocks conductor." +#: js/lilypond.js:610 +msgid "guinea pig" msgstr "" -#: js/turtledefs.js:475 -msgid "Mr Mouse encourages you to explore Music Blocks." +#: js/lilypond.js:611 +msgid "capybara" msgstr "" -#: js/turtledefs.js:477 -msgid "Let us start our tour!" +#: js/lilypond.js:612 +msgid "coypu" msgstr "" -#: js/turtledefs.js:489 -msgid "Stop the music (and the mice)." +#: js/lilypond.js:613 +msgid "black rat" msgstr "" -#: js/turtledefs.js:499 -msgid "Record your project as video." +#: js/lilypond.js:614 +msgid "grey squirrel" msgstr "" -#: js/turtledefs.js:505 -msgid "Toggle Fullscreen mode." +#: js/lilypond.js:615 +msgid "flying squirrel" msgstr "" -#: js/turtledefs.js:511 -msgid "Initialize a new project." +#: js/lilypond.js:616 +msgid "bat" msgstr "" -#: js/turtledefs.js:517 -msgid "You can also load projects from the file system." -msgstr "Vous pouvez également charger des projets à partir du système de fichiers." +#: js/lilypond.js:749 +#: js/lilypond.js:913 +#: js/lilypond.js:951 +#: js/blocks/ActionBlocks.js:1256 +#: js/blocks/ExtrasBlocks.js:556 +msgid "start drum" +msgstr "" -#: js/turtledefs.js:522 -#: js/StringHelper.js:46 -msgid "Delete" +#: js/logo.js:61 +msgid "Not a valid pitch name" msgstr "" -#: js/turtledefs.js:523 -msgid "To delete a block, just right-click on it, then you will be able to see the delete option" +#: js/logo.js:507 +#: js/blocks/ProgramBlocks.js:258 +#: js/blocks/ProgramBlocks.js:427 +msgid "You must select a file." msgstr "" -#: js/turtledefs.js:528 -#: js/activity.js:2270 -#: js/LocalCard.js:31 -msgid "Copy" +#: js/logo.js:1696 +msgid "Playback is ready." msgstr "" -#: js/turtledefs.js:529 -msgid "To copy a block, just right-click on it, then you will be able to see the copy option" +#: js/macros.js:711 +#: js/utils/musicutils.js:1162 +#: js/utils/synthutils.js:202 +#.TRANS: animal sound effect +msgid "duck" msgstr "" -#: js/turtledefs.js:535 -msgid "To extract a block, just right-click on it, then you will be able to see the extract option" +#: js/notation.js:353 +msgid "Lilypond cannot process pickup of " msgstr "" -#: js/turtledefs.js:542 -#: js/turtledefs.js:552 -#: js/turtledefs.js:573 -msgid "Save your project to a file." +#: js/palette.js:571 +msgid "grid" msgstr "" -#: js/turtledefs.js:549 -#: js/turtledefs.js:570 -msgid "save" +#: js/palette.js:580 +msgid "effect" msgstr "" -#: js/turtledefs.js:556 -#: js/turtledefs.js:577 -msgid "Save graphics from your project to as SVG." +#: js/palette.js:586 +msgid "sargam" msgstr "" -#: js/turtledefs.js:560 -#: js/turtledefs.js:581 -msgid "Save graphics from your project as PNG." +#: js/palette.js:601 +#: js/blocks/PitchBlocks.js:1209 +msgid "custom pitch" msgstr "" -#: js/turtledefs.js:564 -#: js/turtledefs.js:597 -msgid "Save block artwork as an SVG file." +#: js/palette.js:609 +msgid "accidental" msgstr "" -#: js/turtledefs.js:585 -msgid "Save audio from your project as WAV." +#: js/palette.js:633 +#: js/blocks/PitchBlocks.js:405 +msgid "pitch converter" msgstr "" -#: js/turtledefs.js:589 -msgid "Save your project to as an ABC file." +#: js/piemenus.js:200 +#: js/utils/musicutils.js:1187 +#: js/utils/musicutils.js:1207 +#: js/widgets/musickeyboard.js:2341 +#: js/widgets/phrasemaker.js:1908 +#: js/widgets/sampler.js:810 +#.TRANS: double sharp is a music term related to pitch +msgid "double sharp" msgstr "" -#: js/turtledefs.js:593 -msgid "Save your project to as a Lilypond file." +#: js/piemenus.js:201 +#: js/utils/musicutils.js:1185 +#: js/utils/musicutils.js:1208 +#: js/blocks/PitchBlocks.js:1539 +#: js/turtleactions/PitchActions.js:323 +#: js/widgets/musickeyboard.js:2342 +#: js/widgets/phrasemaker.js:1909 +#: js/widgets/sampler.js:811 +#.TRANS: sharp is a music term related to pitch +#.TRANS: sharp is a half-step up in pitch +msgid "sharp" msgstr "" -#: js/turtledefs.js:604 -msgid "Load samples from server" -msgstr "Charger des exemples depuis un serveur" +#: js/piemenus.js:202 +#: js/utils/musicutils.js:1183 +#: js/utils/musicutils.js:1209 +#: js/widgets/musickeyboard.js:2343 +#: js/widgets/phrasemaker.js:1910 +#: js/widgets/sampler.js:812 +#.TRANS: natural is a music term related to pitch +msgid "natural" +msgstr "" -#: js/turtledefs.js:605 -msgid "This button opens a viewer for loading example projects." -msgstr "Ce bouton ouvre une visionneuse pour charger des exemples de projets." +#: js/piemenus.js:203 +#: js/utils/musicutils.js:1181 +#: js/utils/musicutils.js:1210 +#: js/blocks/PitchBlocks.js:1498 +#: js/turtleactions/PitchActions.js:326 +#: js/widgets/musickeyboard.js:2344 +#: js/widgets/phrasemaker.js:1911 +#: js/widgets/sampler.js:813 +#.TRANS: flat is a music term related to pitch +#.TRANS: flat is a half-step down in pitch +msgid "flat" +msgstr "" -#: js/turtledefs.js:611 -msgid "Palette buttons" -msgstr "Les boutons de la palette" +#: js/piemenus.js:204 +#: js/utils/musicutils.js:1179 +#: js/utils/musicutils.js:1211 +#: js/widgets/musickeyboard.js:2345 +#: js/widgets/phrasemaker.js:1912 +#: js/widgets/sampler.js:814 +#.TRANS: double flat is a music term related to pitch +msgid "double flat" +msgstr "" -#: js/turtledefs.js:612 -msgid "This toolbar contains the palette buttons including Rhythm Pitch Tone Action and more." +#: js/piemenus.js:2864 +#: js/utils/musicutils.js:1006 +#: js/blocks/PitchBlocks.js:1385 +#.TRANS: unison is a music term related to intervals +#.TRANS: unison means the note is the same as the current note +msgid "unison" msgstr "" -#: js/turtledefs.js:614 -msgid "Click to show the palettes of blocks and drag blocks from the palettes onto the canvas to use them." +#: js/piemenus.js:3018 +#: js/piemenus.js:3091 +#: js/utils/musicutils.js:1014 +#: js/utils/musicutils.js:1189 +#: js/utils/musicutils.js:1326 +#.TRANS: major is a music term related to intervals and mode +msgid "major" msgstr "" -#: js/turtledefs.js:620 -msgid "Cartesian/Polar" +#: js/piemenus.js:3018 +#: js/piemenus.js:3091 +#: js/utils/musicutils.js:1032 +#.TRANS: modal scale for music +msgid "ionian" msgstr "" -#: js/turtledefs.js:621 -msgid "Show or hide a coordinate grid." +#: js/piemenus.js:3020 +#: js/piemenus.js:3095 +#: js/utils/musicutils.js:1012 +#: js/utils/musicutils.js:1190 +#: js/utils/musicutils.js:1323 +#.TRANS: minor is a music term related to intervals and mode +msgid "minor" msgstr "" -#: js/turtledefs.js:627 -msgid "Clear the screen and return the mice to their initial positions." +#: js/piemenus.js:3020 +#: js/piemenus.js:3095 +#: js/utils/musicutils.js:1042 +#.TRANS: modal scale for music +msgid "aeolian" msgstr "" -#: js/turtledefs.js:633 -msgid "Collapse the graphics window." +#: js/piemenus.js:3410 +msgid "Duplicate" msgstr "" -#: js/turtledefs.js:638 -#: js/activity.js:4256 -#: js/activity.js:4256 -msgid "Home" +#: js/piemenus.js:3412 +msgid "Move to trash" msgstr "" -#: js/turtledefs.js:639 -msgid "Return all blocks to the center of the screen." +#: js/piemenus.js:3413 +#: js/widgets/timbre.js:968 +#: planet/js/StringHelper.js:69 +msgid "Close" msgstr "" -#: js/turtledefs.js:644 -msgid "Show/hide blocks" +#: js/piemenus.js:3419 +msgid "Save stack" msgstr "" -#: js/turtledefs.js:645 -msgid "Hide or show the blocks and the palettes." +#: js/piemenus.js:3449 +msgid "In order to copy a sample, you must reload the widget, import the sample again, and export it." msgstr "" -#: js/turtledefs.js:650 -msgid "Expand/collapse collapsable blocks" +#: js/piemenus.js:3812 +msgid "You have chosen key " msgstr "" -#: js/turtledefs.js:651 -msgid "Expand or collapse start and action stacks." +#: js/piemenus.js:3816 +msgid " for your pitch preview." msgstr "" -#: js/turtledefs.js:658 -#: js/activity.js:4265 -msgid "Decrease block size" +#: js/turtle-singer.js:1363 +#.TRANS: partials are weighted components in a harmonic series +msgid "You must have at least one Partial block inside of a Weighted-partial block" msgstr "" -#: js/turtledefs.js:659 -msgid "Decrease the size of the blocks." +#: js/turtle-singer.js:2077 +msgid "synth cannot play chords." msgstr "" -#: js/turtledefs.js:664 -#: js/activity.js:4267 -msgid "Increase block size" +#: js/utils/musicutils.js:505 +#: js/utils/musicutils.js:645 +#: js/widgets/pitchdrummatrix.js:228 +#: js/widgets/musickeyboard.js:2885 +msgid "rest" msgstr "" -#: js/turtledefs.js:665 -msgid "Increase the size of the blocks." +#: js/utils/musicutils.js:689 +msgid "Perfect unison" msgstr "" -#: js/turtledefs.js:670 -msgid "Expand/collapse option toolbar" +#: js/utils/musicutils.js:689 +msgid "Diminished second" msgstr "" -#: js/turtledefs.js:671 -msgid "Click this button to expand or collapse the auxillary toolbar." +#: js/utils/musicutils.js:690 +msgid "Minor second" msgstr "" -#: js/turtledefs.js:676 -msgid "Run slow" -msgstr "Exécuter lentement" +#: js/utils/musicutils.js:690 +msgid "Augmented unison" +msgstr "" -#: js/turtledefs.js:677 -msgid "Click to run the project in slow mode." +#: js/utils/musicutils.js:691 +msgid "Major second" msgstr "" -#: js/turtledefs.js:683 -msgid "Click to run the project step by step." +#: js/utils/musicutils.js:691 +msgid "Diminished third" msgstr "" -#: js/turtledefs.js:690 -msgid "Display statistics about your Music project." +#: js/utils/musicutils.js:692 +msgid "Minor third" msgstr "" -#: js/turtledefs.js:697 -msgid "Delete a selected plugin." +#: js/utils/musicutils.js:692 +msgid "Augmented second" msgstr "" -#: js/turtledefs.js:704 -msgid "Enable scrolling" +#: js/utils/musicutils.js:693 +msgid "Major third" msgstr "" -#: js/turtledefs.js:705 -msgid "You can scroll the blocks on the canvas." +#: js/utils/musicutils.js:693 +msgid "Diminished fourth" msgstr "" -#: js/turtledefs.js:714 -msgid "Wrap Turtle" +#: js/utils/musicutils.js:694 +msgid "Perfect fourth" msgstr "" -#: js/turtledefs.js:715 -msgid "Turn Turtle wrapping On or Off." +#: js/utils/musicutils.js:694 +msgid "Augmented third" msgstr "" -#: js/turtledefs.js:725 -msgid "Restore blocks from the trash." -msgstr "Restaurer blocs de la poubelle." +#: js/utils/musicutils.js:695 +msgid "Diminished fifth" +msgstr "" -#: js/turtledefs.js:732 -msgid "Switch mode" +#: js/utils/musicutils.js:695 +msgid "Augmented fourth" msgstr "" -#: js/turtledefs.js:733 -msgid "Switch between beginner and advance modes." +#: js/utils/musicutils.js:696 +msgid "Perfect fifth" msgstr "" -#: js/turtledefs.js:739 -msgid "Select your language preference." +#: js/utils/musicutils.js:696 +msgid "Diminished sixth" msgstr "" -#: js/turtledefs.js:745 -msgid "Keyboard shortcuts" +#: js/utils/musicutils.js:697 +msgid "Minor sixth" msgstr "" -#: js/turtledefs.js:746 -msgid "You can type d to create a do block and r to create a re block etc." +#: js/utils/musicutils.js:697 +msgid "Augmented fifth" msgstr "" -#: js/turtledefs.js:753 -msgid "Show these messages." -msgstr "Montrer ces messages." +#: js/utils/musicutils.js:698 +msgid "Major sixth" +msgstr "" -#: js/turtledefs.js:759 -#: js/turtledefs.js:790 -#: js/help.js:335 -msgid "Guide" +#: js/utils/musicutils.js:698 +msgid "Diminished seventh" msgstr "" -#: js/turtledefs.js:760 -msgid "A detailed guide to Turtle Blocks is available." +#: js/utils/musicutils.js:699 +msgid "Minor seventh" msgstr "" -#: js/turtledefs.js:764 -msgid "Turtle Blocks Guide" +#: js/utils/musicutils.js:699 +msgid "Augmented sixth" msgstr "" -#: js/turtledefs.js:767 -#: js/turtledefs.js:798 -#: js/help.js:336 -msgid "About" +#: js/utils/musicutils.js:700 +msgid "Major seventh" msgstr "" -#: js/turtledefs.js:768 -msgid "Turtle Blocks is an open source collection of tools for exploring musical concepts." +#: js/utils/musicutils.js:700 +msgid "Diminished octave" msgstr "" -#: js/turtledefs.js:770 -msgid "A full list of contributors can be found in the Turtle Blocks GitHub repository." +#: js/utils/musicutils.js:701 +msgid "Perfect octave" msgstr "" -#: js/turtledefs.js:772 -msgid "Turtle Blocks is licensed under the AGPL." +#: js/utils/musicutils.js:701 +msgid "Augmented seventh" msgstr "" -#: js/turtledefs.js:780 -msgid "Turtle Blocks GitHub repository" +#: js/utils/musicutils.js:702 +msgid "Minor ninth" msgstr "" -#: js/turtledefs.js:783 -#: js/turtledefs.js:814 -#: js/help.js:337 -#: js/help.js:359 -msgid "Congratulations." -msgstr "Félicitations." +#: js/utils/musicutils.js:702 +msgid "Augmented octave" +msgstr "" -#: js/turtledefs.js:784 -msgid "You have finished the tour. Please enjoy Turtle Blocks!" +#: js/utils/musicutils.js:703 +msgid "Major ninth" msgstr "" -#: js/turtledefs.js:791 -msgid "A detailed guide to Music Blocks is available." +#: js/utils/musicutils.js:703 +msgid "Diminished tenth" msgstr "" -#: js/turtledefs.js:795 -#: js/SaveInterface.js:76 -msgid "Music Blocks Guide" +#: js/utils/musicutils.js:704 +msgid "Minor tenth" msgstr "" -#: js/turtledefs.js:799 -msgid "Music Blocks is an open source collection of tools for exploring musical concepts." +#: js/utils/musicutils.js:704 +msgid "Augmented ninth" msgstr "" -#: js/turtledefs.js:801 -msgid "A full list of contributors can be found in the Music Blocks GitHub repository." +#: js/utils/musicutils.js:705 +msgid "Major tenth" msgstr "" -#: js/turtledefs.js:803 -msgid "Music Blocks is licensed under the AGPL." +#: js/utils/musicutils.js:705 +msgid "Diminished eleventh" msgstr "" -#: js/turtledefs.js:811 -msgid "Music Blocks GitHub repository" +#: js/utils/musicutils.js:706 +msgid "Perfect eleventh" msgstr "" -#: js/turtledefs.js:815 -msgid "You have finished the tour. Please enjoy Music Blocks!" +#: js/utils/musicutils.js:706 +msgid "Augmented tenth" msgstr "" -#: js/activity.js:369 -msgid "Search for blocks" +#: js/utils/musicutils.js:707 +msgid "Diminished twelfth" msgstr "" -#: js/activity.js:1145 -msgid "Refresh your browser to change to advanced mode." +#: js/utils/musicutils.js:707 +msgid "Augmented eleventh" msgstr "" -#: js/activity.js:1150 -msgid "Refresh your browser to change to beginner mode." +#: js/utils/musicutils.js:708 +msgid "Perfect twelfth" msgstr "" -#: js/activity.js:1184 -msgid "Catching mice" +#: js/utils/musicutils.js:708 +msgid "Diminished thirteenth" msgstr "" -#: js/activity.js:1185 -msgid "Cleaning the instruments" +#: js/utils/musicutils.js:709 +msgid "Minor thirteenth" msgstr "" -#: js/activity.js:1186 -msgid "Testing key pieces" +#: js/utils/musicutils.js:709 +msgid "Augmented fifth, plus an octave" msgstr "" -#: js/activity.js:1187 -msgid "Sight-reading" +#: js/utils/musicutils.js:710 +msgid "Major thirteenth" msgstr "" -#: js/activity.js:1188 -msgid "Combining math and music" +#: js/utils/musicutils.js:710 +msgid "Diminished seventh, plus an octave" msgstr "" -#: js/activity.js:1189 -msgid "Generating more blocks" +#: js/utils/musicutils.js:838 +#.TRANS: ordinal number. Please keep exactly one space between each number. +msgid "1st 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th" msgstr "" -#: js/activity.js:1190 -msgid "Do Re Mi Fa Sol La Ti Do" +#: js/utils/musicutils.js:1008 +#: js/utils/musicutils.js:1191 +#: js/utils/musicutils.js:1325 +#.TRANS: augmented is a music term related to intervals +msgid "augmented" msgstr "" -#: js/activity.js:1191 -msgid "Tuning string instruments" +#: js/utils/musicutils.js:1010 +#: js/utils/musicutils.js:1192 +#: js/utils/musicutils.js:1324 +#.TRANS: diminished is a music term related to intervals and mode +msgid "diminished" msgstr "" -#: js/activity.js:1192 -msgid "Pressing random keys" +#: js/utils/musicutils.js:1016 +#: js/utils/musicutils.js:1322 +#: js/blocks/IntervalsBlocks.js:649 +#: js/turtleactions/IntervalsActions.js:120 +#: js/turtleactions/IntervalsActions.js:124 +#.TRANS: perfect is a music term related to intervals +msgid "perfect" msgstr "" -#: js/activity.js:1351 -msgid "plugins will be removed upon restart." +#: js/utils/musicutils.js:1018 +#.TRANS: twelve semi-tone scale for music +msgid "chromatic" msgstr "" -#: js/activity.js:1360 -msgid "show Cartesian" +#: js/utils/musicutils.js:1019 +msgid "algerian" msgstr "" -#: js/activity.js:1842 -msgid "output tools" +#: js/utils/musicutils.js:1020 +msgid "spanish" msgstr "" -#: js/activity.js:1845 -msgid "custom note" +#: js/utils/musicutils.js:1022 +#.TRANS: modal scale in music +msgid "octatonic" msgstr "" -#: js/activity.js:1848 -msgid "accidental name" +#: js/utils/musicutils.js:1024 +#.TRANS: harmonic major scale in music +msgid "harmonic major" msgstr "" -#: js/activity.js:1851 -#: js/PitchBlocks.js:855 -msgid "east indian solfege" +#: js/utils/musicutils.js:1026 +#.TRANS: natural minor scales in music +msgid "natural minor" msgstr "" -#: js/activity.js:1854 -#: js/PitchBlocks.js:869 -msgid "note name" +#: js/utils/musicutils.js:1028 +#.TRANS: harmonic minor scale in music +msgid "harmonic minor" msgstr "" -#: js/activity.js:1857 -#: js/IntervalsBlocks.js:94 -msgid "temperament name" +#: js/utils/musicutils.js:1030 +#.TRANS: melodic minor scale in music +msgid "melodic minor" msgstr "" -#: js/activity.js:1863 -msgid "chord name" +#: js/utils/musicutils.js:1034 +#.TRANS: modal scale for music +msgid "dorian" msgstr "" -#: js/activity.js:1869 -msgid "filter type" +#: js/utils/musicutils.js:1036 +#.TRANS: modal scale for music +msgid "phrygian" msgstr "" -#: js/activity.js:1872 -msgid "oscillator type" +#: js/utils/musicutils.js:1038 +#.TRANS: modal scale for music +msgid "lydian" msgstr "" -#: js/activity.js:1878 -#: js/DrumBlocks.js:32 -msgid "noise name" +#: js/utils/musicutils.js:1040 +#.TRANS: modal scale for music +msgid "mixolydian" msgstr "" -#: js/activity.js:1881 -#: js/DrumBlocks.js:75 -msgid "drum name" +#: js/utils/musicutils.js:1044 +#.TRANS: modal scale for music +msgid "locrian" msgstr "" -#: js/activity.js:1884 -#: js/DrumBlocks.js:119 -msgid "effects name" +#: js/utils/musicutils.js:1046 +#.TRANS: minor jazz scale for music +msgid "jazz minor" msgstr "" -#: js/activity.js:1887 -msgid "wrap mode" +#: js/utils/musicutils.js:1048 +#.TRANS: bebop scale for music +msgid "bebop" msgstr "" -#: js/activity.js:1890 -msgid "load file" +#: js/utils/musicutils.js:1049 +msgid "arabic" msgstr "" -#: js/activity.js:2056 -msgid "This block is deprecated." +#: js/utils/musicutils.js:1050 +msgid "byzantine" msgstr "" -#: js/activity.js:2058 -msgid "Block cannot be found." +#: js/utils/musicutils.js:1052 +#.TRANS: musical scale for music by Verdi +msgid "enigmatic" msgstr "" -#: js/activity.js:2266 -msgid "Saving block artwork" +#: js/utils/musicutils.js:1053 +msgid "ethiopian" msgstr "" -#: js/activity.js:2277 -msgid "Erase" +#: js/utils/musicutils.js:1055 +#.TRANS: Ethiopic scale for music +msgid "geez" msgstr "" -#: js/activity.js:2301 -#: js/activity.js:2323 -msgid "Paste" -msgstr "Coller" +#: js/utils/musicutils.js:1056 +msgid "hindu" +msgstr "" -#: js/activity.js:2305 -msgid "Save block help" +#: js/utils/musicutils.js:1057 +msgid "hungarian" msgstr "" -#: js/activity.js:2390 -msgid "Jumping to the bottom of the page." +#: js/utils/musicutils.js:1059 +#.TRANS: minor Romanian scale for music +msgid "romanian minor" msgstr "" -#: js/activity.js:2396 -msgid "Scrolling up." +#: js/utils/musicutils.js:1060 +msgid "spanish gypsy" msgstr "" -#: js/activity.js:2401 -msgid "Scrolling down." +#: js/utils/musicutils.js:1062 +#.TRANS: musical scale for Mid-Eastern music +msgid "maqam" msgstr "" -#: js/activity.js:2406 -msgid "Extracting block" +#: js/utils/musicutils.js:1064 +#.TRANS: minor blues scale for music +msgid "minor blues" msgstr "" -#: js/activity.js:2414 -msgid "Moving block up." +#: js/utils/musicutils.js:1066 +#.TRANS: major blues scale for music +msgid "major blues" msgstr "" -#: js/activity.js:2435 -msgid "Moving block down." +#: js/utils/musicutils.js:1067 +msgid "whole tone" msgstr "" -#: js/activity.js:2456 -msgid "Moving block left." +#: js/utils/musicutils.js:1069 +#.TRANS: pentatonic is a general term that means "five note scale". This scale is typically known as "minor pentatonic" +msgid "minor pentatonic" msgstr "" -#: js/activity.js:2473 -msgid "Moving block right." +#: js/utils/musicutils.js:1071 +#.TRANS: pentatonic is a general term that means "five note scale". This scale is typically known as "major pentatonic" +msgid "major pentatonic" msgstr "" -#: js/activity.js:2488 -msgid "Jump to home position." +#: js/utils/musicutils.js:1072 +msgid "chinese" msgstr "" -#: js/activity.js:2515 -msgid "Hide blocks" +#: js/utils/musicutils.js:1073 +msgid "egyptian" msgstr "" -#: js/activity.js:3389 -msgid "Click the run button to run the project." +#: js/utils/musicutils.js:1075 +#.TRANS: https://en.wikipedia.org/wiki/Hirajoshi_scale NOTE: There are three different versions of this scale +msgid "hirajoshi" msgstr "" -#: js/activity.js:3456 -#: js/SaveInterface.js:131 -#: js/SaveInterface.js:204 -#: js/SaveInterface.js:262 -#: js/SaveInterface.js:389 -#: js/SaveInterface.js:417 -#: js/ProjectStorage.js:27 -#: js/GlobalPlanet.js:467 -#: js/GlobalPlanet.js:469 -#: js/GlobalPlanet.js:495 -#.TRANS: default project title when saving as Lilypond -msgid "My Project" +#: js/utils/musicutils.js:1076 +msgid "Japan" msgstr "" -#: js/activity.js:4261 -msgid "Show/hide block" +#: js/utils/musicutils.js:1078 +#.TRANS: https://en.wikipedia.org/wiki/In_scale and https://en.wikipedia.org/wiki/Sakura_Sakura +msgid "in" msgstr "" -#: js/activity.js:4263 -msgid "Expand/collapse blocks" +#: js/utils/musicutils.js:1080 +#.TRANS: https://en.wikipedia.org/wiki/Miny%C5%8D_scale +msgid "minyo" msgstr "" -#: js/activity.js:4381 -msgid "Could not parse JSON input." +#: js/utils/musicutils.js:1082 +#.TRANS: Italian mathematician +msgid "fibonacci" msgstr "" -#: js/activity.js:4684 -#: js/activity.js:4771 -#: js/activity.js:4821 -msgid "Cannot load project from the file. Please check the file type." +#: js/utils/musicutils.js:1083 +#: js/utils/musicutils.js:1134 +#: js/utils/musicutils.js:1177 +#: js/utils/musicutils.js:1199 +#: js/utils/synthutils.js:134 +#: js/blocks/IntervalsBlocks.js:1124 +#: js/blocks/ToneBlocks.js:946 +#: js/blocks/VolumeBlocks.js:411 +#: js/blocks/WidgetBlocks.js:399 +#: js/blocks/WidgetBlocks.js:404 +#: js/turtleactions/VolumeActions.js:218 +#: js/widgets/modewidget.js:919 +#.TRANS: customize voice +msgid "custom" msgstr "" -#: js/activity.js:5051 -msgid "Invalid parameters" +#: js/utils/musicutils.js:1085 +#: js/utils/musicutils.js:1531 +#: js/blocks/WidgetBlocks.js:176 +#.TRANS: highpass filter +msgid "highpass" msgstr "" -#: js/turtle-singer.js:1334 -#.TRANS: partials are weighted components in a harmonic series -msgid "You must have at least one Partial block inside of a Weighted-partial block" +#: js/utils/musicutils.js:1087 +#: js/utils/musicutils.js:1532 +#.TRANS: lowpass filter +msgid "lowpass" msgstr "" -#: js/turtle-singer.js:2048 -msgid "synth cannot play chords." +#: js/utils/musicutils.js:1089 +#: js/utils/musicutils.js:1533 +#.TRANS: bandpass filter +msgid "bandpass" msgstr "" -#: js/lilypond.js:614 -msgid "brown rat" +#: js/utils/musicutils.js:1091 +#: js/utils/musicutils.js:1534 +#.TRANS: high-shelf filter +msgid "highshelf" msgstr "" -#: js/lilypond.js:615 -msgid "mole" +#: js/utils/musicutils.js:1093 +#: js/utils/musicutils.js:1535 +#.TRANS: low-shelf filter +msgid "lowshelf" msgstr "" -#: js/lilypond.js:616 -msgid "chipmunk" +#: js/utils/musicutils.js:1095 +#: js/utils/musicutils.js:1536 +#.TRANS: notch-shelf filter +msgid "notch" msgstr "" -#: js/lilypond.js:617 -msgid "red squirrel" +#: js/utils/musicutils.js:1097 +#: js/utils/musicutils.js:1537 +#.TRANS: all-pass filter +msgid "allpass" msgstr "" -#: js/lilypond.js:618 -msgid "guinea pig" +#: js/utils/musicutils.js:1099 +#: js/utils/musicutils.js:1538 +#.TRANS: peaking filter +msgid "peaking" msgstr "" -#: js/lilypond.js:619 -msgid "capybara" +#: js/utils/musicutils.js:1100 +#: js/utils/musicutils.js:1546 +#: js/utils/synthutils.js:126 +#: js/blocks/PitchBlocks.js:85 +#.TRANS: sine wave +msgid "sine" msgstr "" -#: js/lilypond.js:620 -msgid "coypu" +#: js/utils/musicutils.js:1101 +#: js/utils/musicutils.js:1547 +#: js/utils/synthutils.js:128 +#: js/blocks/PitchBlocks.js:39 +#.TRANS: square wave +msgid "square" msgstr "" -#: js/lilypond.js:621 -msgid "black rat" +#: js/utils/musicutils.js:1102 +#: js/utils/musicutils.js:1548 +#: js/utils/synthutils.js:132 +#: js/blocks/PitchBlocks.js:62 +#: js/blocks/ToneBlocks.js:39 +#.TRANS: triangle wave +msgid "triangle" msgstr "" -#: js/lilypond.js:622 -msgid "grey squirrel" +#: js/utils/musicutils.js:1103 +#: js/utils/musicutils.js:1549 +#: js/utils/synthutils.js:130 +#: js/blocks/PitchBlocks.js:108 +#.TRANS: sawtooth wave +msgid "sawtooth" msgstr "" -#: js/lilypond.js:623 -msgid "flying squirrel" +#: js/utils/musicutils.js:1105 +#: js/utils/musicutils.js:1312 +#: js/blocks/PitchBlocks.js:931 +#: js/blocks/PitchBlocks.js:937 +#: js/turtleactions/PitchActions.js:469 +#.TRANS: even numbers +#.TRANS: invert based on even or odd number or musical scale +msgid "even" msgstr "" -#: js/lilypond.js:624 -msgid "bat" +#: js/utils/musicutils.js:1107 +#: js/utils/musicutils.js:1313 +#: js/blocks/PitchBlocks.js:937 +#: js/turtleactions/PitchActions.js:471 +#.TRANS: odd numbers +msgid "odd" msgstr "" -#: js/lilypond.js:757 -#: js/lilypond.js:921 -#: js/lilypond.js:959 -#: js/ActionBlocks.js:1256 -#: js/ExtrasBlocks.js:553 -msgid "start drum" +#: js/utils/musicutils.js:1108 +#: js/utils/musicutils.js:1314 +#: js/blocks/PitchBlocks.js:937 +#: js/turtleactions/PitchActions.js:473 +msgid "scalar" msgstr "" -#: js/SaveInterface.js:59 -#: js/SaveInterface.js:61 -#: js/SaveInterface.js:93 -msgid "Music Blocks Project" +#: js/utils/musicutils.js:1109 +#: js/utils/synthutils.js:72 +#: js/blocks/VolumeBlocks.js:47 +#.TRANS: musical instrument +msgid "piano" msgstr "" -#: js/SaveInterface.js:63 -msgid "This project was created in Music Blocks" +#: js/utils/musicutils.js:1110 +#: js/utils/synthutils.js:74 +#.TRANS: musical instrument +msgid "violin" msgstr "" -#: js/SaveInterface.js:67 -msgid "Music Blocks is a Free/Libre Software application." +#: js/utils/musicutils.js:1111 +#: js/utils/synthutils.js:76 +#.TRANS: viola musical instrument +msgid "viola" msgstr "" -#: js/SaveInterface.js:69 -msgid "The source code can be accessed at" +#: js/utils/musicutils.js:1112 +#: js/utils/synthutils.js:114 +#.TRANS: xylophone musical instrument +msgid "xylophone" msgstr "" -#: js/SaveInterface.js:72 -msgid "For more information, please consult the" +#: js/utils/musicutils.js:1113 +#: js/utils/synthutils.js:136 +#.TRANS: vibraphone musical instrument +msgid "vibraphone" msgstr "" -#: js/SaveInterface.js:83 -msgid "Alternatively, open the file in Music Blocks using the Load project button." +#: js/utils/musicutils.js:1114 +#: js/utils/synthutils.js:78 +#.TRANS: musical instrument +msgid "cello" msgstr "" -#: js/SaveInterface.js:85 -msgid "Project Code" +#: js/utils/musicutils.js:1116 +#: js/utils/synthutils.js:82 +#.TRANS: viola musical instrument +msgid "double bass" msgstr "" -#: js/SaveInterface.js:87 -msgid "This code stores data about the blocks in a project." +#: js/utils/musicutils.js:1117 +#: js/utils/synthutils.js:84 +#: js/widgets/rhythmruler.js:2511 +#.TRANS: musical instrument +msgid "guitar" msgstr "" -#: js/SaveInterface.js:89 -msgid "Show" +#: js/utils/musicutils.js:1118 +#: js/utils/synthutils.js:86 +#.TRANS: musical instrument +msgid "acoustic guitar" msgstr "" -#: js/SaveInterface.js:91 -msgid "Hide" +#: js/utils/musicutils.js:1119 +#: js/utils/synthutils.js:88 +#.TRANS: musical instrument +msgid "flute" msgstr "" -#: js/SaveInterface.js:197 -#: js/SaveInterface.js:58 -msgid "No description provided" +#: js/utils/musicutils.js:1120 +#: js/utils/synthutils.js:90 +#.TRANS: musical instrument +msgid "clarinet" msgstr "" -#: js/SaveInterface.js:332 -msgid "Your recording is in progress." +#: js/utils/musicutils.js:1121 +#: js/utils/synthutils.js:92 +#.TRANS: musical instrument +msgid "saxophone" msgstr "" -#: js/SaveInterface.js:401 -#.TRANS: File name prompt for save as Lilypond -msgid "File name" +#: js/utils/musicutils.js:1122 +#: js/utils/synthutils.js:94 +#.TRANS: musical instrument +msgid "tuba" msgstr "" -#: js/SaveInterface.js:403 -#: js/StringHelper.js:39 -#.TRANS: Project title prompt for save as Lilypond -msgid "Project title" +#: js/utils/musicutils.js:1123 +#: js/utils/synthutils.js:96 +#.TRANS: musical instrument +msgid "trumpet" msgstr "" -#: js/SaveInterface.js:405 -#.TRANS: Project title prompt for save as Lilypond -msgid "Project author" +#: js/utils/musicutils.js:1124 +#: js/utils/synthutils.js:98 +#.TRANS: musical instrument +msgid "oboe" msgstr "" -#: js/SaveInterface.js:407 -#.TRANS: MIDI prompt for save as Lilypond -msgid "Include MIDI output?" +#: js/utils/musicutils.js:1125 +#: js/utils/synthutils.js:100 +#.TRANS: musical instrument +msgid "trombone" msgstr "" -#: js/SaveInterface.js:409 -#.TRANS: Guitar prompt for save as Lilypond -msgid "Include guitar tablature output?" +#: js/utils/musicutils.js:1126 +#: js/utils/synthutils.js:116 +#.TRANS: polytone synthesizer +msgid "electronic synth" msgstr "" -#: js/SaveInterface.js:411 -#.TRANS: Lilypond is a scripting language for generating sheet music -msgid "Save as Lilypond" +#: js/utils/musicutils.js:1127 +#: js/utils/synthutils.js:118 +#.TRANS: simple monotone synthesizer +msgid "simple 1" msgstr "" -#: js/SaveInterface.js:426 -#: js/EnsembleBlocks.js:75 -#: js/EnsembleBlocks.js:154 -#: js/EnsembleBlocks.js:216 -#: js/EnsembleBlocks.js:302 -#: js/EnsembleBlocks.js:348 -#: js/EnsembleBlocks.js:389 -#: js/EnsembleBlocks.js:441 -#: js/EnsembleBlocks.js:490 -#: js/EnsembleBlocks.js:536 -#: js/EnsembleBlocks.js:583 -#: js/EnsembleBlocks.js:637 -#: js/EnsembleBlocks.js:753 -#: js/EnsembleBlocks.js:840 -#: js/EnsembleBlocks.js:899 -#: js/EnsembleBlocks.js:942 -#: js/EnsembleBlocks.js:1212 -#: js/EnsembleBlocks.js:1280 -#.TRANS: default project author when saving as Lilypond -msgid "Mr. Mouse" +#: js/utils/musicutils.js:1128 +msgid "simple 2" msgstr "" -#: js/SaveInterface.js:573 -msgid "The Lilypond code is copied to clipboard. You can paste it here: " +#: js/utils/musicutils.js:1129 +msgid "simple 3" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:50 -#: js/RhythmBlockPaletteBlocks.js:232 -#.TRANS: rhythm block -#.TRANS: translate "rhythm1" as rhythm -msgid "rhythm1" +#: js/utils/musicutils.js:1130 +msgid "simple 4" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:70 -#: js/RhythmBlockPaletteBlocks.js:251 -#: js/RhythmBlockPaletteBlocks.js:484 -#: js/RhythmBlockPaletteBlocks.js:553 -#: js/RhythmBlockPaletteBlocks.js:874 -msgid "number of notes" +#: js/utils/musicutils.js:1131 +#: js/utils/synthutils.js:58 +#: js/blocks/DrumBlocks.js:191 +#.TRANS: white noise synthesizer +msgid "white noise" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:126 -msgid "polyphonic rhythm" +#: js/utils/musicutils.js:1132 +#: js/utils/synthutils.js:60 +#.TRANS: brown noise synthesizer +msgid "brown noise" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:218 -msgid "The Rhythm block is used to generate rhythm patterns." +#: js/utils/musicutils.js:1133 +#: js/utils/synthutils.js:62 +#.TRANS: pink noise synthesizer +msgid "pink noise" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:279 -msgid "1/64 note" +#: js/utils/musicutils.js:1135 +#: js/utils/synthutils.js:148 +#: js/widgets/rhythmruler.js:2057 +#: js/widgets/rhythmruler.js:2319 +#.TRANS: musical instrument +msgid "snare drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:303 -msgid "1/32 note" +#: js/utils/musicutils.js:1136 +#: js/utils/synthutils.js:150 +#.TRANS: musical instrument +msgid "kick drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:331 -msgid "1/16 note" +#: js/utils/musicutils.js:1137 +#: js/utils/synthutils.js:152 +#.TRANS: musical instrument +msgid "tom tom" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:359 -msgid "eighth note" +#: js/utils/musicutils.js:1138 +#: js/utils/synthutils.js:154 +#.TRANS: musical instrument +msgid "floor tom" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:387 -msgid "quarter note" +#: js/utils/musicutils.js:1139 +#: js/utils/synthutils.js:156 +#.TRANS: musical instrument +msgid "bass drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:415 -msgid "half note" +#: js/utils/musicutils.js:1140 +#: js/utils/synthutils.js:158 +#.TRANS: a drum made from an inverted cup +msgid "cup drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:443 -msgid "whole note" +#: js/utils/musicutils.js:1141 +#: js/utils/synthutils.js:160 +#.TRANS: musical instrument +msgid "darbuka drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:481 -#: js/RhythmBlockPaletteBlocks.js:550 -#: js/RhythmBlockPaletteBlocks.js:601 -#.TRANS: A tuplet is a note value divided into irregular time values. -msgid "tuplet" +#: js/utils/musicutils.js:1142 +#: js/utils/synthutils.js:164 +#.TRANS: musical instrument +msgid "hi hat" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:767 -msgid "septuplet" +#: js/utils/musicutils.js:1143 +#: js/utils/synthutils.js:166 +#.TRANS: a small metal bell +msgid "ride bell" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:795 -msgid "quintuplet" +#: js/utils/musicutils.js:1144 +#: js/utils/synthutils.js:168 +#.TRANS: musical instrument +msgid "cow bell" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:823 -msgid "triplet" +#: js/utils/musicutils.js:1145 +msgid "japanese drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:850 -msgid "simple tuplet" +#: js/utils/musicutils.js:1146 +#: js/utils/synthutils.js:174 +#.TRANS: musical instrument +msgid "japanese bell" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:860 -msgid "Tuplets are a collection of notes that get scaled to a specific duration." +#: js/utils/musicutils.js:1147 +#: js/utils/synthutils.js:170 +#.TRANS: musical instrument +msgid "triangle bell" msgstr "" -#: js/WidgetBlocks.js:71 -#.TRANS: sound envelope (ADSR) -msgid "envelope" +#: js/utils/musicutils.js:1148 +#: js/utils/synthutils.js:172 +#.TRANS: musical instrument +msgid "finger cymbals" msgstr "" -#: js/WidgetBlocks.js:79 -#.TRANS: Attack time is the time taken for initial run-up of level from nil to peak, beginning when the key is first pressed. -msgid "attack" +#: js/utils/musicutils.js:1149 +#: js/utils/synthutils.js:176 +#.TRANS: a musically tuned set of bells +msgid "chime" msgstr "" -#: js/WidgetBlocks.js:81 -#.TRANS: Decay time is the time taken for the subsequent run down from the attack level to the designated sustain level. -msgid "decay" +#: js/utils/musicutils.js:1150 +#: js/utils/synthutils.js:178 +#.TRANS: a musical instrument +msgid "gong" msgstr "" -#: js/WidgetBlocks.js:83 -#.TRANS: Sustain level is the level during the main sequence of the sound's duration, until the key is released. -msgid "sustain" +#: js/utils/musicutils.js:1151 +#: js/utils/synthutils.js:180 +#.TRANS: sound effect +msgid "clang" msgstr "" -#: js/WidgetBlocks.js:85 -#.TRANS: Release time is the time taken for the level to decay from the sustain level to zero after the key is released. -msgid "release" +#: js/utils/musicutils.js:1152 +#: js/utils/synthutils.js:182 +#.TRANS: sound effect +msgid "crash" msgstr "" -#: js/WidgetBlocks.js:96 -msgid "Attack value should be from 0 to 100." +#: js/utils/musicutils.js:1153 +#: js/utils/synthutils.js:184 +#.TRANS: sound effect +msgid "bottle" msgstr "" -#: js/WidgetBlocks.js:99 -msgid "Decay value should be from 0 to 100." +#: js/utils/musicutils.js:1154 +#: js/utils/synthutils.js:186 +#.TRANS: sound effect +msgid "clap" msgstr "" -#: js/WidgetBlocks.js:102 -msgid "Sustain value should be from 0 to 100." +#: js/utils/musicutils.js:1155 +#: js/utils/synthutils.js:188 +#.TRANS: sound effect +msgid "slap" msgstr "" -#: js/WidgetBlocks.js:105 -msgid "Release value should be from 0-100." +#: js/utils/musicutils.js:1156 +#: js/utils/synthutils.js:190 +#.TRANS: sound effect +msgid "splash" msgstr "" -#: js/WidgetBlocks.js:121 -msgid "You are adding multiple envelope blocks." +#: js/utils/musicutils.js:1157 +#: js/utils/synthutils.js:192 +#.TRANS: sound effect +msgid "bubbles" msgstr "" -#: js/WidgetBlocks.js:144 -#.TRANS: a filter removes some unwanted components from a signal -msgid "filter" +#: js/utils/musicutils.js:1158 +#: js/utils/synthutils.js:194 +#.TRANS: sound effect +msgid "raindrop" msgstr "" -#: js/WidgetBlocks.js:149 -#: js/musicutils.js:706 -#: js/musicutils.js:1105 -#.TRANS: highpass filter -msgid "highpass" +#: js/utils/musicutils.js:1159 +#: js/utils/synthutils.js:196 +#.TRANS: animal sound effect +msgid "cat" msgstr "" -#: js/WidgetBlocks.js:152 -#: js/ToneBlocks.js:42 -#: js/timbre.js:1558 -#: js/timbre.js:1808 -#.TRANS: type of filter, e.g., lowpass, highpass, etc. -#.TRANS: there are different types (sine, triangle, square...) of oscillators. -msgid "type" +#: js/utils/musicutils.js:1160 +#: js/utils/synthutils.js:198 +#.TRANS: animal sound effect +msgid "cricket" msgstr "" -#: js/WidgetBlocks.js:154 -#: js/timbre.js:1818 -#.TRANS: rolloff is the steepness of a change in frequency. -msgid "rolloff" +#: js/utils/musicutils.js:1161 +#: js/utils/synthutils.js:200 +#.TRANS: animal sound effect +msgid "dog" msgstr "" -#: js/WidgetBlocks.js:155 -#: js/MediaBlocks.js:692 -#: js/temperament.js:382 -#: js/temperament.js:417 -#: js/temperament.js:477 -#: js/temperament.js:485 -#: js/temperament.js:1348 -#: js/timbre.js:1842 -msgid "frequency" +#: js/utils/musicutils.js:1163 +#: js/utils/synthutils.js:102 +#.TRANS: musical instrument +msgid "banjo" msgstr "" -#: js/WidgetBlocks.js:179 -#.TRANS: rolloff is the steepness of a change in frequency. -msgid "Rolloff value should be either -12, -24, -48, or -96 decibels/octave." +#: js/utils/musicutils.js:1164 +#: js/utils/synthutils.js:104 +#.TRANS: musical instrument +msgid "koto" msgstr "" -#: js/WidgetBlocks.js:211 -msgid "The Temperament tool is used to define custom tuning." +#: js/utils/musicutils.js:1165 +#: js/utils/synthutils.js:106 +#.TRANS: musical instrument +msgid "dulcimer" msgstr "" -#: js/WidgetBlocks.js:277 -#: js/sampler.js:329 -msgid "Upload a sample and adjust its pitch center." +#: js/utils/musicutils.js:1166 +#: js/utils/synthutils.js:108 +#.TRANS: musical instrument +msgid "electric guitar" msgstr "" -#: js/WidgetBlocks.js:284 -#.TRANS: the speed at music is should be played. -msgid "sampler" +#: js/utils/musicutils.js:1167 +#: js/utils/synthutils.js:110 +#.TRANS: musical instrument +msgid "bassoon" msgstr "" -#: js/WidgetBlocks.js:329 -#: js/WidgetBlocks.js:334 -#: js/IntervalsBlocks.js:928 -#: js/VolumeBlocks.js:411 -#: js/ToneBlocks.js:946 -#: js/VolumeActions.js:218 -#: js/musicutils.js:704 -#: js/musicutils.js:755 -#: js/musicutils.js:798 -#: js/musicutils.js:820 -#: js/musicutils.js:1136 -#: js/synthutils.js:118 -#: js/modewidget.js:919 -#.TRANS: customize voice -msgid "custom" +#: js/utils/musicutils.js:1168 +#: js/utils/synthutils.js:112 +#.TRANS: musical instrument +msgid "celeste" msgstr "" -#: js/WidgetBlocks.js:432 -msgid "The Meter block opens a tool to select strong beats for the meter." +#: js/utils/musicutils.js:1170 +#: js/widgets/temperament.js:787 +#.TRANS: musical temperament +msgid "equal" msgstr "" -#: js/WidgetBlocks.js:473 -msgid "The oscilloscope block opens a tool to visualize waveforms." +#: js/utils/musicutils.js:1172 +#.TRANS: musical temperament +msgid "Pythagorean" msgstr "" -#: js/WidgetBlocks.js:478 -msgid "oscilloscope" +#: js/utils/musicutils.js:1174 +#.TRANS: musical temperament +msgid "just intonation" msgstr "" -#: js/WidgetBlocks.js:530 -msgid "The Custom mode block opens a tool to explore musical mode (the spacing of the notes in a scale)." +#: js/utils/musicutils.js:1176 +#.TRANS: musical temperament +msgid "meantone" msgstr "" -#: js/WidgetBlocks.js:536 -#.TRANS: musical mode is the pattern of half-steps in an octave, e.g., Major or Minor modes -msgid "custom mode" +#: js/utils/musicutils.js:1193 +msgid "major 7th" msgstr "" -#: js/WidgetBlocks.js:570 -msgid "The Tempo block opens a metronome to visualize the beat." +#: js/utils/musicutils.js:1194 +msgid "minor 7th" msgstr "" -#: js/WidgetBlocks.js:617 -msgid "The Arpeggio Widget is used to compose chord sequences." +#: js/utils/musicutils.js:1195 +msgid "dominant 7th" msgstr "" -#: js/WidgetBlocks.js:623 -#: js/IntervalsBlocks.js:683 -msgid "arpeggio" +#: js/utils/musicutils.js:1196 +msgid "minor-major 7th" msgstr "" -#: js/WidgetBlocks.js:677 -msgid "The Pitch drum matrix is used to map pitches to drum sounds." +#: js/utils/musicutils.js:1197 +msgid "fully-diminished 7th" msgstr "" -#: js/WidgetBlocks.js:682 -#.TRANS: makes a mapping between pitches and drum sounds -msgid "pitch-drum mapper" +#: js/utils/musicutils.js:1198 +msgid "half-diminished 7th" msgstr "" -#: js/WidgetBlocks.js:724 -msgid "You must have at least one pitch block and one drum block in the matrix." +#: js/utils/musicutils.js:1557 +#: js/utils/musicutils.js:1569 +msgid "Equal (12EDO)" msgstr "" -#: js/WidgetBlocks.js:746 -msgid "The Pitch slider tool to is used to generate pitches at selected frequencies." +#: js/utils/musicutils.js:1558 +#: js/utils/musicutils.js:1570 +msgid "5-limit Just Intonation" msgstr "" -#: js/WidgetBlocks.js:751 -#.TRANS: widget to generate pitches using a slider -msgid "pitch slider" +#: js/utils/musicutils.js:1559 +#: js/utils/musicutils.js:1571 +msgid "Pythagorean (3-limit JI)" msgstr "" -#: js/WidgetBlocks.js:788 -msgid "chromatic keyboard" +#: js/utils/musicutils.js:1560 +#: js/utils/musicutils.js:1561 +#: js/utils/musicutils.js:1572 +#: js/utils/musicutils.js:1573 +msgid "Meantone" msgstr "" -#: js/WidgetBlocks.js:815 -#: js/WidgetBlocks.js:874 -#.TRANS: widget to generate pitches using a slider -msgid "music keyboard" +#: js/utils/musicutils.js:1574 +msgid "Custom" msgstr "" -#: js/WidgetBlocks.js:859 -#: js/WidgetBlocks.js:866 -msgid "The Music keyboard block opens a piano keyboard that can be used to create notes." +#: js/utils/musicutils.js:5387 +#: js/utils/musicutils.js:5430 +msgid "current" msgstr "" -#: js/WidgetBlocks.js:910 -msgid "The Pitch staircase tool to is used to generate pitches from a given ratio." +#: js/utils/musicutils.js:5390 +#: js/utils/musicutils.js:5421 +msgid "next" msgstr "" -#: js/WidgetBlocks.js:917 -#.TRANS: generate a progressive sequence of pitches -msgid "pitch staircase" +#: js/utils/musicutils.js:5393 +#: js/utils/musicutils.js:5426 +msgid "previous" msgstr "" -#: js/WidgetBlocks.js:982 -msgid "The Rhythm Maker block opens a tool to create drum machines." +#: js/utils/synthutils.js:120 +#.TRANS: simple monotone synthesizer +msgid "simple-2" msgstr "" -#: js/WidgetBlocks.js:1036 -msgid "G major scale" +#: js/utils/synthutils.js:122 +#.TRANS: simple monotone synthesizer +msgid "simple-3" msgstr "" -#: js/WidgetBlocks.js:1064 -msgid "C major scale" +#: js/utils/synthutils.js:124 +#.TRANS: simple monotone synthesizer +msgid "simple-4" msgstr "" -#: js/WidgetBlocks.js:1097 -msgid "The Phrase Maker block opens a tool to create musical phrases." +#: js/utils/synthutils.js:162 +#.TRANS: musical instrument +msgid "taiko" msgstr "" -#: js/WidgetBlocks.js:1104 -#.TRANS: assigns pitch to a sequence of beats to generate a melody -msgid "phrase maker" +#: js/blocks/ActionBlocks.js:58 +msgid "The Return block will return a value from an action." msgstr "" -#: js/WidgetBlocks.js:1168 -msgid "You must have at least one pitch block and one rhythm block in the matrix." +#: js/blocks/ActionBlocks.js:75 +msgid "return" msgstr "" -#: js/WidgetBlocks.js:1220 -msgid "The Status block opens a tool for inspecting the status of Music Blocks as it is running." +#: js/blocks/ActionBlocks.js:128 +msgid "The Return to URL block will return a value to a webpage." msgstr "" -#: js/IntervalsBlocks.js:45 -msgid "set temperament" +#: js/blocks/ActionBlocks.js:145 +msgid "return to URL" msgstr "" -#: js/IntervalsBlocks.js:63 -#: js/MediaBlocks.js:746 -#: js/PitchBlocks.js:657 -#: js/PitchBlocks.js:933 -#: js/PitchBlocks.js:972 -#: js/PitchBlocks.js:1005 -#: js/PitchBlocks.js:1166 -#: js/PitchBlocks.js:1679 -#: js/PitchBlocks.js:1720 -#: js/PitchBlocks.js:1827 -#: js/ToneBlocks.js:1025 -#.TRANS: adjusts the shift up or down by one octave (twelve half-steps in the interval between two notes, one having twice or half the frequency in Hz of the other.) -msgid "octave" +#: js/blocks/ActionBlocks.js:233 +#: js/blocks/ActionBlocks.js:290 +#: js/blocks/ActionBlocks.js:501 +#: js/blocks/ActionBlocks.js:688 +msgid "The Calculate block returns a value calculated by an action." msgstr "" -#: js/IntervalsBlocks.js:99 -msgid "The Temperament name block is used to select a tuning method." +#: js/blocks/ActionBlocks.js:251 +#: js/blocks/ActionBlocks.js:517 +#: js/blocks/ActionBlocks.js:707 +msgid "calculate" msgstr "" -#: js/IntervalsBlocks.js:161 -msgid "doubly" +#: js/blocks/ActionBlocks.js:376 +#: js/blocks/ActionBlocks.js:593 +#: js/blocks/ActionBlocks.js:942 +#: js/blocks/ActionBlocks.js:1389 +#.TRANS: do is the do something or take an action. +msgid "The Do block is used to initiate an action." msgstr "" -#: js/IntervalsBlocks.js:166 -msgid "The Doubly block will double the size of an interval." +#: js/blocks/ActionBlocks.js:390 +#: js/blocks/ActionBlocks.js:610 +#: js/blocks/ActionBlocks.js:959 +#: js/blocks/ActionBlocks.js:1048 +#: js/blocks/MeterBlocks.js:769 +msgid "do1" msgstr "" -#: js/IntervalsBlocks.js:262 -msgid "interval number" -msgstr "" +#: js/blocks/ActionBlocks.js:390 +#: js/blocks/ActionBlocks.js:610 +#: js/blocks/ActionBlocks.js:959 +#: js/blocks/ActionBlocks.js:1048 +#: js/blocks/FlowBlocks.js:742 +#: js/blocks/FlowBlocks.js:822 +#: js/blocks/MeterBlocks.js:769 +msgid "do" +msgstr "faire" -#: js/IntervalsBlocks.js:330 -#.TRANS: measure the distance between two pitches in semi-tones -msgid "semi-tone interval measure" +#: js/blocks/ActionBlocks.js:791 +#: js/blocks/ActionBlocks.js:865 +msgid "The Arg block contains the value of an argument passed to an action." msgstr "" -#: js/IntervalsBlocks.js:397 -#: js/IntervalsBlocks.js:513 -msgid "You must use two pitch blocks when measuring an interval." +#: js/blocks/ActionBlocks.js:806 +#: js/blocks/ActionBlocks.js:878 +msgid "arg" msgstr "" -#: js/IntervalsBlocks.js:439 -msgid "The Scalar interval block measures the distance between two notes in the current key and mode." +#: js/blocks/ActionBlocks.js:836 +#: js/blocks/ActionBlocks.js:900 +#: js/blocks/ActionBlocks.js:908 +msgid "Invalid argument" msgstr "" -#: js/IntervalsBlocks.js:445 -#.TRANS: measure the distance between two pitches in steps of musical scale -msgid "scalar interval measure" +#: js/blocks/ActionBlocks.js:944 +msgid "In the example, it is used with the One of block to choose a random phase." msgstr "" -#: js/IntervalsBlocks.js:592 -#: js/musicutils.js:637 -#: js/musicutils.js:908 -#.TRANS: perfect is a music term related to intervals -msgid "perfect" +#: js/blocks/ActionBlocks.js:1019 +#: js/blocks/ActionBlocks.js:1026 +msgid "The Listen block is used to listen for an event such as a mouse click." msgstr "" -#: js/IntervalsBlocks.js:621 -msgid "In the figure, we add sol# to sol." +#: js/blocks/ActionBlocks.js:1028 +msgid "When the event happens, an action is taken." msgstr "" -#: js/IntervalsBlocks.js:627 -#: js/OrnamentBlocks.js:220 -#.TRANS: calculate a relative step between notes based on semi-tones -msgid "semi-tone interval" +#: js/blocks/ActionBlocks.js:1045 +msgid "on" msgstr "" -#: js/IntervalsBlocks.js:676 -msgid "The output of the example is: do, mi, sol, sol, ti, mi" +#: js/blocks/ActionBlocks.js:1048 +#: js/blocks/ActionBlocks.js:1049 +#: js/blocks/ActionBlocks.js:1153 +msgid "event" msgstr "" -#: js/IntervalsBlocks.js:735 -msgid "The Chord block calculates common chords." +#: js/blocks/ActionBlocks.js:1133 +msgid "The Broadcast block is used to trigger an event." msgstr "" -#: js/IntervalsBlocks.js:737 -msgid "In the figure, we generate a C-major chord." +#: js/blocks/ActionBlocks.js:1151 +msgid "broadcast" msgstr "" -#: js/IntervalsBlocks.js:742 -msgid "chord" +#: js/blocks/ActionBlocks.js:1208 +msgid "Each Start block is a separate voice." msgstr "" -#: js/IntervalsBlocks.js:794 -msgid "The Ratio Interval block calculates an interval based on a ratio." +#: js/blocks/ActionBlocks.js:1304 +msgid "It is often used for storing a phrase of music that is repeated." msgstr "" -#: js/IntervalsBlocks.js:799 -msgid "ratio interval" +#: js/blocks/ActionBlocks.js:1495 +msgid "define temperament" msgstr "" -#: js/IntervalsBlocks.js:868 -msgid "In the figure, we add la to sol." +#: js/blocks/BooleanBlocks.js:44 +msgid "The Not block is the logical not operator." msgstr "" -#: js/IntervalsBlocks.js:924 -#.TRANS: define a custom mode -msgid "define mode" +#: js/blocks/BooleanBlocks.js:62 +msgid "not" +msgstr "non" + +#: js/blocks/BooleanBlocks.js:134 +msgid "The And block is the logical and operator." msgstr "" -#: js/IntervalsBlocks.js:977 -msgid "movable Do" +#: js/blocks/BooleanBlocks.js:152 +msgid "and" +msgstr "et" + +#: js/blocks/BooleanBlocks.js:218 +msgid "The Or block is the logical or operator." msgstr "" -#: js/IntervalsBlocks.js:1028 -#.TRANS: mode length is the number of notes in the mode, e.g., 7 for major and minor scales; 12 for chromatic scales -msgid "mode length" +#: js/blocks/BooleanBlocks.js:236 +msgid "or" +msgstr "ou" + +#: js/blocks/BooleanBlocks.js:302 +msgid "The XOR block is the logical XOR operator." msgstr "" -#: js/IntervalsBlocks.js:1037 -msgid "The Mode length block is the number of notes in the current scale." +#: js/blocks/BooleanBlocks.js:320 +msgid "xor" msgstr "" -#: js/IntervalsBlocks.js:1039 -msgid "Most Western scales have 7 notes." +#: js/blocks/BooleanBlocks.js:808 +msgid "The Equal block returns True if the two numbers are equal." msgstr "" -#: js/IntervalsBlocks.js:1088 -#.TRANS: the mode in music is 'major', 'minor', etc. -msgid "current mode" +#: js/blocks/BooleanBlocks.js:909 +msgid "The Not-equal-to block returns True if the two numbers are not equal to each other." msgstr "" -#: js/IntervalsBlocks.js:1141 -#.TRANS: the key is a group of pitches with which a music composition is created -msgid "current key" +#: js/blocks/BooleanBlocks.js:1008 +msgid "The Boolean block is used to specify true or false." msgstr "" -#: js/IntervalsBlocks.js:1193 -#: js/IntervalsBlocks.js:1238 -#.TRANS: set the key and mode, e.g. C Major -msgid "set key" +#: js/blocks/BoxesBlocks.js:53 +#: js/blocks/BoxesBlocks.js:59 +msgid "The Add-to block is used to add to the value stored in a box." msgstr "" -#: js/IntervalsBlocks.js:1247 -#: js/IntervalsBlocks.js:1253 -msgid "The Set key block is used to set the key and mode," +#: js/blocks/BoxesBlocks.js:61 +msgid "It can also be used with other blocks such as Color and Pen size." msgstr "" -#: js/IntervalsBlocks.js:1253 -msgid "eg C Major" +#: js/blocks/BoxesBlocks.js:73 +msgid "add" +msgstr "ajouter" + +#: js/blocks/BoxesBlocks.js:75 +#: js/widgets/temperament.js:857 +msgid "to" msgstr "" -#: js/IntervalsBlocks.js:1266 -#: js/DictBlocks.js:215 -#: js/DictBlocks.js:216 -#: js/DictBlocks.js:289 -#: js/DictBlocks.js:290 -#: js/DictBlocks.js:357 -#: js/DictBlocks.js:430 -#: js/DictBlocks.js:431 -#.TRANS: key, e.g., C in C Major -msgid "key" +#: js/blocks/BoxesBlocks.js:75 +#: js/blocks/BoxesBlocks.js:595 +#: js/blocks/HeapBlocks.js:544 +msgid "value1" msgstr "" -#: js/ActionBlocks.js:58 -msgid "The Return block will return a value from an action." +#: js/blocks/BoxesBlocks.js:118 +msgid "Block does not support incrementing." msgstr "" -#: js/ActionBlocks.js:75 -msgid "return" +#: js/blocks/BoxesBlocks.js:152 +msgid "The Add-1-to block adds one to the value stored in a box." msgstr "" -#: js/ActionBlocks.js:128 -msgid "The Return to URL block will return a value to a webpage." +#: js/blocks/BoxesBlocks.js:163 +msgid "add 1 to" +msgstr "ajouter 1 à" + +#: js/blocks/BoxesBlocks.js:211 +msgid "The Subtract-1-from block subtracts one from the value stored in a box." msgstr "" -#: js/ActionBlocks.js:145 -msgid "return to URL" +#: js/blocks/BoxesBlocks.js:222 +msgid "subtract 1 from" msgstr "" -#: js/ActionBlocks.js:233 -#: js/ActionBlocks.js:290 -#: js/ActionBlocks.js:501 -#: js/ActionBlocks.js:688 -msgid "The Calculate block returns a value calculated by an action." +#: js/blocks/BoxesBlocks.js:270 +#: js/blocks/BoxesBlocks.js:387 +msgid "The Box block returns the value stored in a box." msgstr "" -#: js/ActionBlocks.js:251 -#: js/ActionBlocks.js:517 -#: js/ActionBlocks.js:707 -msgid "calculate" +#: js/blocks/BoxesBlocks.js:500 +#: js/blocks/BoxesBlocks.js:576 +msgid "The Store in block will store a value in a box." msgstr "" -#: js/ActionBlocks.js:376 -#: js/ActionBlocks.js:593 -#: js/ActionBlocks.js:942 -#: js/ActionBlocks.js:1389 -#.TRANS: do is the do something or take an action. -msgid "The Do block is used to initiate an action." +#: js/blocks/BoxesBlocks.js:595 +#: js/blocks/EnsembleBlocks.js:391 +#: js/blocks/EnsembleBlocks.js:402 +msgid "name1" msgstr "" -#: js/ActionBlocks.js:390 -#: js/ActionBlocks.js:610 -#: js/ActionBlocks.js:959 -#: js/ActionBlocks.js:1048 -#: js/MeterBlocks.js:769 -msgid "do1" +#: js/blocks/BoxesBlocks.js:652 +msgid "The Box2 block returns the value stored in Box2." msgstr "" -#: js/ActionBlocks.js:390 -#: js/ActionBlocks.js:610 -#: js/ActionBlocks.js:959 -#: js/ActionBlocks.js:1048 -#: js/FlowBlocks.js:742 -#: js/FlowBlocks.js:822 -#: js/MeterBlocks.js:769 -msgid "do" -msgstr "faire" +#: js/blocks/BoxesBlocks.js:703 +msgid "The Store in Box2 block is used to store a value in Box2." +msgstr "" -#: js/ActionBlocks.js:791 -#: js/ActionBlocks.js:865 -msgid "The Arg block contains the value of an argument passed to an action." +#: js/blocks/BoxesBlocks.js:715 +msgid "store in box2" msgstr "" -#: js/ActionBlocks.js:806 -#: js/ActionBlocks.js:878 -msgid "arg" +#: js/blocks/BoxesBlocks.js:761 +msgid "The Box1 block returns the value stored in Box1." msgstr "" -#: js/ActionBlocks.js:836 -#: js/ActionBlocks.js:900 -#: js/ActionBlocks.js:908 -msgid "Invalid argument" +#: js/blocks/BoxesBlocks.js:812 +msgid "The Store in Box1 block is used to store a value in Box1." msgstr "" -#: js/ActionBlocks.js:944 -msgid "In the example, it is used with the One of block to choose a random phase." +#: js/blocks/BoxesBlocks.js:826 +msgid "store in box1" msgstr "" -#: js/ActionBlocks.js:1019 -#: js/ActionBlocks.js:1026 -msgid "The Listen block is used to listen for an event such as a mouse click." +#: js/blocks/DictBlocks.js:77 +msgid "show dictionary" msgstr "" -#: js/ActionBlocks.js:1028 -msgid "When the event happens, an action is taken." +#: js/blocks/DictBlocks.js:80 +#: js/blocks/DictBlocks.js:145 +#: js/blocks/DictBlocks.js:216 +#: js/blocks/DictBlocks.js:290 +#: js/blocks/ProgramBlocks.js:396 +#: js/blocks/ProgramBlocks.js:501 +#: js/blocks/ProgramBlocks.js:664 +msgid "My Dictionary" msgstr "" -#: js/ActionBlocks.js:1045 -msgid "on" +#: js/blocks/DictBlocks.js:129 +msgid "The Dictionary block returns a dictionary." msgstr "" -#: js/ActionBlocks.js:1048 -#: js/ActionBlocks.js:1049 -#: js/ActionBlocks.js:1153 -msgid "event" +#: js/blocks/DictBlocks.js:197 +#: js/blocks/DictBlocks.js:339 +msgid "The Get-dict block returns a value in the dictionary for a specified key." msgstr "" -#: js/ActionBlocks.js:1133 -msgid "The Broadcast block is used to trigger an event." +#: js/blocks/DictBlocks.js:212 +#: js/blocks/DictBlocks.js:354 +#.TRANS: retrieve a value from the dictionary with a given key +msgid "get value" msgstr "" -#: js/ActionBlocks.js:1151 -msgid "broadcast" +#: js/blocks/DictBlocks.js:215 +#: js/blocks/DictBlocks.js:216 +#: js/blocks/DictBlocks.js:289 +#: js/blocks/DictBlocks.js:290 +#: js/blocks/DictBlocks.js:357 +#: js/blocks/DictBlocks.js:430 +#: js/blocks/DictBlocks.js:431 +msgid "key2" msgstr "" -#: js/ActionBlocks.js:1208 -msgid "Each Start block is a separate voice." +#: js/blocks/DictBlocks.js:215 +#: js/blocks/DictBlocks.js:216 +#: js/blocks/DictBlocks.js:289 +#: js/blocks/DictBlocks.js:290 +#: js/blocks/DictBlocks.js:357 +#: js/blocks/DictBlocks.js:430 +#: js/blocks/DictBlocks.js:431 +#: js/blocks/IntervalsBlocks.js:1462 +#.TRANS: key, e.g., C in C Major +msgid "key" msgstr "" -#: js/ActionBlocks.js:1304 -msgid "It is often used for storing a phrase of music that is repeated." +#: js/blocks/DictBlocks.js:271 +#: js/blocks/DictBlocks.js:411 +msgid "The Set-dict block sets a value in the dictionary for a specified key." msgstr "" -#: js/ActionBlocks.js:1495 -msgid "define temperament" +#: js/blocks/DictBlocks.js:286 +#: js/blocks/DictBlocks.js:427 +#.TRANS: set a value in the dictionary for a given key +msgid "set value" msgstr "" -#: js/EnsembleBlocks.js:66 +#: js/blocks/EnsembleBlocks.js:66 msgid "mouse index heap" msgstr "" -#: js/EnsembleBlocks.js:68 +#: js/blocks/EnsembleBlocks.js:68 msgid "The Mouse index heap block returns a value in the heap at a specified location for a specified mouse." msgstr "" -#: js/EnsembleBlocks.js:77 -#: js/EnsembleBlocks.js:1080 +#: js/blocks/EnsembleBlocks.js:77 +#: js/blocks/EnsembleBlocks.js:1080 msgid "mouse name" msgstr "" -#: js/EnsembleBlocks.js:77 -#: js/EnsembleBlocks.js:92 -#: js/HeapBlocks.js:544 +#: js/blocks/EnsembleBlocks.js:77 +#: js/blocks/EnsembleBlocks.js:92 +#: js/blocks/HeapBlocks.js:544 #.TRANS: value1 is a numeric value (JAPANESE ONLY) msgid "index" msgstr "" -#: js/EnsembleBlocks.js:80 +#: js/blocks/EnsembleBlocks.js:80 msgid "turtle index heap" msgstr "" -#: js/EnsembleBlocks.js:82 +#: js/blocks/EnsembleBlocks.js:82 msgid "The Turtle index heap block returns a value in the heap at a specified location for a specified turtle." msgstr "" -#: js/EnsembleBlocks.js:90 -#: js/EnsembleBlocks.js:167 -#: js/EnsembleBlocks.js:230 -#: js/EnsembleBlocks.js:316 -#: js/EnsembleBlocks.js:362 -#: js/EnsembleBlocks.js:400 -#: js/EnsembleBlocks.js:454 -#: js/EnsembleBlocks.js:504 -#: js/EnsembleBlocks.js:550 -#: js/EnsembleBlocks.js:597 -#: js/EnsembleBlocks.js:651 -#: js/EnsembleBlocks.js:763 -#: js/EnsembleBlocks.js:854 -#: js/EnsembleBlocks.js:915 -#: js/EnsembleBlocks.js:955 -#: js/EnsembleBlocks.js:1219 -#: js/EnsembleBlocks.js:1293 +#: js/blocks/EnsembleBlocks.js:90 +#: js/blocks/EnsembleBlocks.js:167 +#: js/blocks/EnsembleBlocks.js:230 +#: js/blocks/EnsembleBlocks.js:316 +#: js/blocks/EnsembleBlocks.js:362 +#: js/blocks/EnsembleBlocks.js:400 +#: js/blocks/EnsembleBlocks.js:454 +#: js/blocks/EnsembleBlocks.js:504 +#: js/blocks/EnsembleBlocks.js:550 +#: js/blocks/EnsembleBlocks.js:597 +#: js/blocks/EnsembleBlocks.js:651 +#: js/blocks/EnsembleBlocks.js:763 +#: js/blocks/EnsembleBlocks.js:854 +#: js/blocks/EnsembleBlocks.js:915 +#: js/blocks/EnsembleBlocks.js:955 +#: js/blocks/EnsembleBlocks.js:1219 +#: js/blocks/EnsembleBlocks.js:1293 #.TRANS: Yertle is the name of a turtle. msgid "Yertle" msgstr "" -#: js/EnsembleBlocks.js:92 -#: js/EnsembleBlocks.js:1089 +#: js/blocks/EnsembleBlocks.js:92 +#: js/blocks/EnsembleBlocks.js:1089 msgid "turtle name" msgstr "" -#: js/EnsembleBlocks.js:122 -#: js/EnsembleBlocks.js:1197 -#: js/HeapBlocks.js:474 -#: js/HeapBlocks.js:572 +#: js/blocks/EnsembleBlocks.js:122 +#: js/blocks/EnsembleBlocks.js:1197 +#: js/blocks/HeapBlocks.js:474 +#: js/blocks/HeapBlocks.js:572 msgid "Index must be > 0." msgstr "" -#: js/EnsembleBlocks.js:127 -#: js/HeapBlocks.js:479 -#: js/HeapBlocks.js:577 +#: js/blocks/EnsembleBlocks.js:127 +#: js/blocks/HeapBlocks.js:479 +#: js/blocks/HeapBlocks.js:577 msgid "Maximum heap size is 1000." msgstr "" -#: js/EnsembleBlocks.js:145 +#: js/blocks/EnsembleBlocks.js:145 msgid "stop mouse" msgstr "" -#: js/EnsembleBlocks.js:147 +#: js/blocks/EnsembleBlocks.js:147 msgid "The Stop mouse block stops the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:158 +#: js/blocks/EnsembleBlocks.js:158 msgid "stop turtle" msgstr "" -#: js/EnsembleBlocks.js:160 +#: js/blocks/EnsembleBlocks.js:160 msgid "The Stop turtle block stops the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:184 -#: js/EnsembleBlocks.js:247 -#: js/EnsembleBlocks.js:413 -#: js/EnsembleBlocks.js:468 -#: js/EnsembleBlocks.js:706 -#: js/EnsembleBlocks.js:808 -#: js/EnsembleBlocks.js:870 -#: js/EnsembleBlocks.js:1190 -#: js/EnsembleBlocks.js:1253 +#: js/blocks/EnsembleBlocks.js:184 +#: js/blocks/EnsembleBlocks.js:247 +#: js/blocks/EnsembleBlocks.js:413 +#: js/blocks/EnsembleBlocks.js:468 +#: js/blocks/EnsembleBlocks.js:706 +#: js/blocks/EnsembleBlocks.js:808 +#: js/blocks/EnsembleBlocks.js:870 +#: js/blocks/EnsembleBlocks.js:1190 +#: js/blocks/EnsembleBlocks.js:1253 msgid "Cannot find mouse" msgstr "" -#: js/EnsembleBlocks.js:186 -#: js/EnsembleBlocks.js:249 -#: js/EnsembleBlocks.js:415 -#: js/EnsembleBlocks.js:470 -#: js/EnsembleBlocks.js:708 -#: js/EnsembleBlocks.js:810 -#: js/EnsembleBlocks.js:872 -#: js/EnsembleBlocks.js:1192 -#: js/EnsembleBlocks.js:1255 +#: js/blocks/EnsembleBlocks.js:186 +#: js/blocks/EnsembleBlocks.js:249 +#: js/blocks/EnsembleBlocks.js:415 +#: js/blocks/EnsembleBlocks.js:470 +#: js/blocks/EnsembleBlocks.js:708 +#: js/blocks/EnsembleBlocks.js:810 +#: js/blocks/EnsembleBlocks.js:872 +#: js/blocks/EnsembleBlocks.js:1192 +#: js/blocks/EnsembleBlocks.js:1255 msgid "Cannot find turtle" msgstr "" -#: js/EnsembleBlocks.js:206 +#: js/blocks/EnsembleBlocks.js:206 msgid "start mouse" msgstr "" -#: js/EnsembleBlocks.js:209 +#: js/blocks/EnsembleBlocks.js:209 msgid "The Start mouse block starts the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:220 +#: js/blocks/EnsembleBlocks.js:220 msgid "start turtle" msgstr "" -#: js/EnsembleBlocks.js:223 +#: js/blocks/EnsembleBlocks.js:223 msgid "The Start turtle block starts the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:256 +#: js/blocks/EnsembleBlocks.js:256 msgid "Mouse is already running." msgstr "" -#: js/EnsembleBlocks.js:258 +#: js/blocks/EnsembleBlocks.js:258 msgid "Turtle is already running." msgstr "" -#: js/EnsembleBlocks.js:282 +#: js/blocks/EnsembleBlocks.js:282 msgid "Cannot find start block" msgstr "" -#: js/EnsembleBlocks.js:292 +#: js/blocks/EnsembleBlocks.js:292 #.TRANS: pen color for this mouse msgid "mouse color" msgstr "" -#: js/EnsembleBlocks.js:294 +#: js/blocks/EnsembleBlocks.js:294 msgid "The Mouse color block returns the pen color of the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:306 +#: js/blocks/EnsembleBlocks.js:306 #.TRANS: pen color for this turtle msgid "turtle color" msgstr "" -#: js/EnsembleBlocks.js:308 +#: js/blocks/EnsembleBlocks.js:308 msgid "The Turtle color block returns the pen color of the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:338 +#: js/blocks/EnsembleBlocks.js:338 #.TRANS: heading (compass direction) for this mouse msgid "mouse heading" msgstr "" -#: js/EnsembleBlocks.js:340 +#: js/blocks/EnsembleBlocks.js:340 msgid "The Mouse heading block returns the heading of the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:352 +#: js/blocks/EnsembleBlocks.js:352 #.TRANS: heading (compass direction) for this turtle msgid "turtle heading" msgstr "" -#: js/EnsembleBlocks.js:354 +#: js/blocks/EnsembleBlocks.js:354 msgid "The Turtle heading block returns the heading of the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:384 -#: js/EnsembleBlocks.js:439 +#: js/blocks/EnsembleBlocks.js:384 +#: js/blocks/EnsembleBlocks.js:439 #.TRANS: set xy position for this mouse msgid "set mouse" msgstr "" -#: js/EnsembleBlocks.js:391 -#: js/EnsembleBlocks.js:402 -#: js/BoxesBlocks.js:595 -msgid "name1" -msgstr "" - -#: js/EnsembleBlocks.js:391 -#: js/EnsembleBlocks.js:402 -#: js/ProgramBlocks.js:881 -#: js/GraphicsBlocks.js:235 -#: js/GraphicsBlocks.js:313 -#: js/GraphicsBlocks.js:436 -#: js/GraphicsBlocks.js:487 -#: js/GraphicsBlocks.js:534 -#: js/GraphicsBlocks.js:750 +#: js/blocks/EnsembleBlocks.js:391 +#: js/blocks/EnsembleBlocks.js:402 +#: js/blocks/GraphicsBlocks.js:235 +#: js/blocks/GraphicsBlocks.js:313 +#: js/blocks/GraphicsBlocks.js:436 +#: js/blocks/GraphicsBlocks.js:487 +#: js/blocks/GraphicsBlocks.js:534 +#: js/blocks/GraphicsBlocks.js:750 +#: js/blocks/ProgramBlocks.js:881 msgid "x" msgstr "x" -#: js/EnsembleBlocks.js:391 -#: js/EnsembleBlocks.js:402 -#: js/ProgramBlocks.js:881 -#: js/GraphicsBlocks.js:149 -#: js/GraphicsBlocks.js:313 -#: js/GraphicsBlocks.js:436 -#: js/GraphicsBlocks.js:487 -#: js/GraphicsBlocks.js:534 -#: js/GraphicsBlocks.js:750 +#: js/blocks/EnsembleBlocks.js:391 +#: js/blocks/EnsembleBlocks.js:402 +#: js/blocks/GraphicsBlocks.js:149 +#: js/blocks/GraphicsBlocks.js:313 +#: js/blocks/GraphicsBlocks.js:436 +#: js/blocks/GraphicsBlocks.js:487 +#: js/blocks/GraphicsBlocks.js:534 +#: js/blocks/GraphicsBlocks.js:750 +#: js/blocks/ProgramBlocks.js:881 msgid "y" msgstr "y" -#: js/EnsembleBlocks.js:395 -#: js/EnsembleBlocks.js:452 +#: js/blocks/EnsembleBlocks.js:395 +#: js/blocks/EnsembleBlocks.js:452 #.TRANS: set xy position for this turtle msgid "set turtle" msgstr "" -#: js/EnsembleBlocks.js:433 +#: js/blocks/EnsembleBlocks.js:433 msgid "The Set mouse block sends a stack of blocks to be run by the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:446 +#: js/blocks/EnsembleBlocks.js:446 msgid "The Set turtle block sends a stack of blocks to be run by the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:480 +#: js/blocks/EnsembleBlocks.js:480 #.TRANS: y position for this mouse msgid "mouse y" msgstr "" -#: js/EnsembleBlocks.js:482 +#: js/blocks/EnsembleBlocks.js:482 msgid "The Y mouse block returns the Y position of the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:494 +#: js/blocks/EnsembleBlocks.js:494 #.TRANS: y position for this turtle msgid "turtle y" msgstr "" -#: js/EnsembleBlocks.js:496 +#: js/blocks/EnsembleBlocks.js:496 msgid "The Y turtle block returns the Y position of the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:526 +#: js/blocks/EnsembleBlocks.js:526 #.TRANS: x position for this mouse msgid "mouse x" msgstr "" -#: js/EnsembleBlocks.js:528 +#: js/blocks/EnsembleBlocks.js:528 msgid "The X mouse block returns the X position of the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:540 +#: js/blocks/EnsembleBlocks.js:540 #.TRANS: x position for this turtle msgid "turtle x" msgstr "" -#: js/EnsembleBlocks.js:542 +#: js/blocks/EnsembleBlocks.js:542 msgid "The X turtle block returns the X position of the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:573 +#: js/blocks/EnsembleBlocks.js:573 #.TRANS: notes played by this mouse msgid "mouse notes played" msgstr "" -#: js/EnsembleBlocks.js:575 +#: js/blocks/EnsembleBlocks.js:575 msgid "The Mouse elapse notes block returns the number of notes played by the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:587 +#: js/blocks/EnsembleBlocks.js:587 #.TRANS: notes played by this turtle msgid "turtle notes played" msgstr "" -#: js/EnsembleBlocks.js:589 +#: js/blocks/EnsembleBlocks.js:589 msgid "The Turtle elapse notes block returns the number of notes played by the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:627 +#: js/blocks/EnsembleBlocks.js:627 #.TRANS: convert current note for this turtle to piano key (1-88) msgid "mouse pitch number" msgstr "" -#: js/EnsembleBlocks.js:629 +#: js/blocks/EnsembleBlocks.js:629 msgid "The Mouse pitch block returns the current pitch number being played by the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:641 +#: js/blocks/EnsembleBlocks.js:641 #.TRANS: convert current note for this turtle to piano key (1-88) msgid "turtle pitch number" msgstr "" -#: js/EnsembleBlocks.js:643 -msgid "The Turrle pitch block returns the current pitch number being played by the specified turtle." +#: js/blocks/EnsembleBlocks.js:643 +msgid "The Turtle pitch block returns the current pitch number being played by the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:747 -#: js/EnsembleBlocks.js:819 +#: js/blocks/EnsembleBlocks.js:747 +#: js/blocks/EnsembleBlocks.js:819 #.TRANS: note value is the duration of the note played by this mouse msgid "mouse note value" msgstr "" -#: js/EnsembleBlocks.js:757 +#: js/blocks/EnsembleBlocks.js:757 #.TRANS: note value is the duration of the note played by this turtle msgid "turtle note value" msgstr "" -#: js/EnsembleBlocks.js:830 +#: js/blocks/EnsembleBlocks.js:830 #.TRANS: sync is short for synchronization msgid "mouse sync" msgstr "" -#: js/EnsembleBlocks.js:832 +#: js/blocks/EnsembleBlocks.js:832 msgid "The Mouse sync block aligns the beat count between mice." msgstr "" -#: js/EnsembleBlocks.js:844 +#: js/blocks/EnsembleBlocks.js:844 #.TRANS: sync is short for synchronization msgid "turtle sync" msgstr "" -#: js/EnsembleBlocks.js:846 +#: js/blocks/EnsembleBlocks.js:846 msgid "The Turtle sync block aligns the beat count between turtles." msgstr "" -#: js/EnsembleBlocks.js:887 +#: js/blocks/EnsembleBlocks.js:887 msgid "The Found mouse block will return true if the specified mouse can be found." msgstr "" -#: js/EnsembleBlocks.js:893 +#: js/blocks/EnsembleBlocks.js:893 msgid "found mouse" msgstr "" -#: js/EnsembleBlocks.js:903 +#: js/blocks/EnsembleBlocks.js:903 msgid "The Found turtle block will return true if the specified turtle can be found." msgstr "" -#: js/EnsembleBlocks.js:909 +#: js/blocks/EnsembleBlocks.js:909 msgid "found turtle" msgstr "" -#: js/EnsembleBlocks.js:932 +#: js/blocks/EnsembleBlocks.js:932 msgid "new mouse" msgstr "" -#: js/EnsembleBlocks.js:934 +#: js/blocks/EnsembleBlocks.js:934 msgid "The New mouse block will create a new mouse." msgstr "" -#: js/EnsembleBlocks.js:945 +#: js/blocks/EnsembleBlocks.js:945 msgid "new turtle" msgstr "" -#: js/EnsembleBlocks.js:947 +#: js/blocks/EnsembleBlocks.js:947 msgid "The New turtle block will create a new turtle." msgstr "" -#: js/EnsembleBlocks.js:1011 +#: js/blocks/EnsembleBlocks.js:1011 msgid "set mouse color" msgstr "" -#: js/EnsembleBlocks.js:1014 +#: js/blocks/EnsembleBlocks.js:1014 msgid "The Set-mouse-color block is used to set the color of a mouse." msgstr "" -#: js/EnsembleBlocks.js:1020 +#: js/blocks/EnsembleBlocks.js:1020 msgid "set turtle color" msgstr "" -#: js/EnsembleBlocks.js:1023 +#: js/blocks/EnsembleBlocks.js:1023 msgid "The Set-turtle-color block is used to set the color of a turtle." msgstr "" -#: js/EnsembleBlocks.js:1083 +#: js/blocks/EnsembleBlocks.js:1083 msgid "The Mouse-name block returns the name of a mouse." msgstr "" -#: js/EnsembleBlocks.js:1092 +#: js/blocks/EnsembleBlocks.js:1092 msgid "The Turtle-name block returns the name of a turtle." msgstr "" -#: js/EnsembleBlocks.js:1115 +#: js/blocks/EnsembleBlocks.js:1115 msgid "mouse count" msgstr "" -#: js/EnsembleBlocks.js:1118 -msgid "The Mouse-count block returns the number of mice." -msgstr "" - -#: js/EnsembleBlocks.js:1124 -msgid "turtle count" -msgstr "" - -#: js/EnsembleBlocks.js:1127 -msgid "The Turtle-count block returns the number of turtles." -msgstr "" - -#: js/EnsembleBlocks.js:1149 -msgid "nth mouse name" -msgstr "" - -#: js/EnsembleBlocks.js:1152 -msgid "The Nth-Mouse name block returns the name of the nth mouse." -msgstr "" - -#: js/EnsembleBlocks.js:1158 -msgid "nth turtle name" -msgstr "" - -#: js/EnsembleBlocks.js:1161 -msgid "The Nth-Turtle name block returns the name of the nth turtle." -msgstr "" - -#: js/EnsembleBlocks.js:1205 -#: js/EnsembleBlocks.js:1265 -msgid "set name" -msgstr "" - -#: js/EnsembleBlocks.js:1214 -#: js/EnsembleBlocks.js:1221 -msgid "source" -msgstr "" - -#: js/EnsembleBlocks.js:1214 -#: js/EnsembleBlocks.js:1221 -msgid "target" -msgstr "" - -#: js/EnsembleBlocks.js:1271 -msgid "The Set-name block is used to name a mouse." -msgstr "" - -#: js/EnsembleBlocks.js:1284 -msgid "The Set-name block is used to name a turtle." -msgstr "" - -#: js/BooleanBlocks.js:44 -msgid "The Not block is the logical not operator." -msgstr "" - -#: js/BooleanBlocks.js:62 -msgid "not" -msgstr "non" - -#: js/BooleanBlocks.js:134 -msgid "The And block is the logical and operator." -msgstr "" - -#: js/BooleanBlocks.js:152 -msgid "and" -msgstr "et" - -#: js/BooleanBlocks.js:218 -msgid "The Or block is the logical or operator." -msgstr "" - -#: js/BooleanBlocks.js:236 -msgid "or" -msgstr "ou" - -#: js/BooleanBlocks.js:302 -msgid "The XOR block is the logical XOR operator." -msgstr "" - -#: js/BooleanBlocks.js:320 -msgid "xor" -msgstr "" - -#: js/BooleanBlocks.js:808 -msgid "The Equal block returns True if the two numbers are equal." -msgstr "" - -#: js/BooleanBlocks.js:909 -msgid "The Not-equal-to block returns True if the two numbers are not equal to each other." +#: js/blocks/EnsembleBlocks.js:1118 +msgid "The Mouse-count block returns the number of mice." msgstr "" -#: js/BooleanBlocks.js:1008 -msgid "The Boolean block is used to specify true or false." +#: js/blocks/EnsembleBlocks.js:1124 +msgid "turtle count" msgstr "" -#: js/MediaBlocks.js:35 -#.TRANS: right side of the screen -msgid "right (screen)" +#: js/blocks/EnsembleBlocks.js:1127 +msgid "The Turtle-count block returns the number of turtles." msgstr "" -#: js/MediaBlocks.js:45 -#: js/MediaBlocks.js:56 -msgid "The Right block returns the position of the right of the canvas." +#: js/blocks/EnsembleBlocks.js:1149 +msgid "nth mouse name" msgstr "" -#: js/MediaBlocks.js:97 -#.TRANS: left side of the screen -msgid "left (screen)" +#: js/blocks/EnsembleBlocks.js:1152 +msgid "The Nth-Mouse name block returns the name of the nth mouse." msgstr "" -#: js/MediaBlocks.js:107 -#: js/MediaBlocks.js:118 -msgid "The Left block returns the position of the left of the canvas." +#: js/blocks/EnsembleBlocks.js:1158 +msgid "nth turtle name" msgstr "" -#: js/MediaBlocks.js:158 -msgid "top (screen)" +#: js/blocks/EnsembleBlocks.js:1161 +msgid "The Nth-Turtle name block returns the name of the nth turtle." msgstr "" -#: js/MediaBlocks.js:168 -#: js/MediaBlocks.js:179 -msgid "The Top block returns the position of the top of the canvas." +#: js/blocks/EnsembleBlocks.js:1205 +#: js/blocks/EnsembleBlocks.js:1265 +msgid "set name" msgstr "" -#: js/MediaBlocks.js:219 -msgid "bottom (screen)" +#: js/blocks/EnsembleBlocks.js:1214 +#: js/blocks/EnsembleBlocks.js:1221 +msgid "source" msgstr "" -#: js/MediaBlocks.js:229 -#: js/MediaBlocks.js:240 -msgid "The Bottom block returns the position of the bottom of the canvas." +#: js/blocks/EnsembleBlocks.js:1214 +#: js/blocks/EnsembleBlocks.js:1221 +msgid "target" msgstr "" -#: js/MediaBlocks.js:282 -msgid "width" +#: js/blocks/EnsembleBlocks.js:1271 +msgid "The Set-name block is used to name a mouse." msgstr "" -#: js/MediaBlocks.js:291 -msgid "The Width block returns the width of the canvas." +#: js/blocks/EnsembleBlocks.js:1284 +msgid "The Set-name block is used to name a turtle." msgstr "" -#: js/MediaBlocks.js:325 -msgid "height" +#: js/blocks/ExtrasBlocks.js:33 +msgid "fraction" msgstr "" -#: js/MediaBlocks.js:334 -msgid "The Height block returns the height of the canvas." +#: js/blocks/ExtrasBlocks.js:36 +msgid "Convert a float to a fraction" msgstr "" -#: js/MediaBlocks.js:369 -#.TRANS: stops playback of an audio recording -msgid "stop play" +#: js/blocks/ExtrasBlocks.js:93 +msgid "save as ABC" msgstr "" -#: js/MediaBlocks.js:404 -#.TRANS: Erases the images and text -msgid "erase media" -msgstr "" +#: js/blocks/ExtrasBlocks.js:96 +#: js/blocks/ExtrasBlocks.js:132 +#: js/blocks/ExtrasBlocks.js:168 +msgid "title" +msgstr "título" -#: js/MediaBlocks.js:409 -msgid "The Erase Media block erases text and images." +#: js/blocks/ExtrasBlocks.js:129 +msgid "save as Lilypond" msgstr "" -#: js/MediaBlocks.js:439 -#.TRANS: play an audio recording -msgid "play back" +#: js/blocks/ExtrasBlocks.js:165 +msgid "save as SVG" msgstr "" -#: js/MediaBlocks.js:487 -msgid "speak" -msgstr "parler" +#: js/blocks/ExtrasBlocks.js:216 +msgid "no background" +msgstr "" -#: js/MediaBlocks.js:495 -msgid "The Speak block outputs to the text-to-speech synthesizer" +#: js/blocks/ExtrasBlocks.js:219 +msgid "The No background block eliminates the background from the saved SVG output." msgstr "" -#: js/MediaBlocks.js:546 -msgid "camera" +#: js/blocks/ExtrasBlocks.js:247 +msgid "show blocks" msgstr "" -#: js/MediaBlocks.js:551 -msgid "The Camera block connects a webcam to the Show block." +#: js/blocks/ExtrasBlocks.js:249 +msgid "The Show blocks block shows the blocks." msgstr "" -#: js/MediaBlocks.js:574 -msgid "video" +#: js/blocks/ExtrasBlocks.js:274 +msgid "hide blocks" msgstr "" -#: js/MediaBlocks.js:579 -msgid "The Video block selects video for use with the Show block." +#: js/blocks/ExtrasBlocks.js:276 +msgid "The Hide blocks block hides the blocks." msgstr "" -#: js/MediaBlocks.js:607 -msgid "The Open file block opens a file for use with the Show block." +#: js/blocks/ExtrasBlocks.js:305 +#: js/blocks/ExtrasBlocks.js:338 +msgid "The Space block is used to add space between blocks." msgstr "" -#: js/MediaBlocks.js:645 -msgid "stop media" -msgstr "arrêt média" +#: js/blocks/ExtrasBlocks.js:376 +msgid "wait" +msgstr "attend" -#: js/MediaBlocks.js:650 -msgid "The Stop media block stops audio or video playback." +#: js/blocks/ExtrasBlocks.js:379 +msgid "The Wait block pauses the program for a specified number of seconds." msgstr "" -#: js/MediaBlocks.js:679 -#: js/PitchBlocks.js:1539 -#: js/phrasemaker.js:822 -#: js/musickeyboard.js:1654 -#.TRANS: a measure of frequency: one cycle per second -msgid "hertz" +#: js/blocks/ExtrasBlocks.js:433 +#: plugins/facebook.rtp:30 +msgid "comment" msgstr "" -#: js/MediaBlocks.js:692 -msgid "duration (ms)" -msgstr "" +#: js/blocks/ExtrasBlocks.js:469 +msgid "print" +msgstr "montre" -#: js/MediaBlocks.js:728 -#.TRANS: translate a note into hertz, e.g., A4 -> 440HZ -msgid "note to frequency" +#: js/blocks/ExtrasBlocks.js:476 +msgid "The Print block displays text at the top of the screen." msgstr "" -#: js/MediaBlocks.js:736 -msgid "The To frequency block converts a pitch name and octave to Hertz." +#: js/blocks/ExtrasBlocks.js:582 +msgid "display grid" msgstr "" -#: js/MediaBlocks.js:746 -#: js/PitchBlocks.js:656 -#: js/PitchBlocks.js:932 -#: js/PitchBlocks.js:1827 -#.TRANS: name2 is name as in name of pitch (JAPANESE ONLY) -msgid "name2" +#: js/blocks/ExtrasBlocks.js:587 +msgid "The Display Grid Block changes the grid type" msgstr "" -#: js/MediaBlocks.js:812 -msgid "The Avatar block is used to change the appearance of the mouse." -msgstr "" +#: js/blocks/ExtrasBlocks.js:689 +#: js/blocks/ExtrasBlocks.js:708 +#: js/blocks/ExtrasBlocks.js:731 +#: js/blocks/ExtrasBlocks.js:754 +#: js/blocks/ExtrasBlocks.js:772 +#: js/blocks/ExtrasBlocks.js:791 +#: js/blocks/ExtrasBlocks.js:810 +#: js/blocks/ExtrasBlocks.js:829 +msgid "unknown" +msgstr "ignoré" -#: js/MediaBlocks.js:819 -msgid "The Avatar block is used to change the appearance of the turtle." +#: js/blocks/FlowBlocks.js:41 +msgid "The Backward block runs code in reverse order (Musical retrograde)." msgstr "" -#: js/MediaBlocks.js:831 -#: js/MediaBlocks.js:891 -#.TRANS: a media object -msgid "size" +#: js/blocks/FlowBlocks.js:48 +msgid "backward" msgstr "" -#: js/MediaBlocks.js:831 -msgid "image" -msgstr "image" - -#: js/MediaBlocks.js:880 -msgid "The Show block is used to display text or images on the canvas." +#: js/blocks/FlowBlocks.js:124 +msgid "The Duplicate block will run each block multiple times." msgstr "" -#: js/MediaBlocks.js:888 -#.TRANS: show1 is show as in display an image or text on the screen. -msgid "show1" +#: js/blocks/FlowBlocks.js:136 +msgid "duplicate" msgstr "" -#: js/MediaBlocks.js:891 -msgid "obj" -msgstr "objet" +#: js/blocks/FlowBlocks.js:334 +msgid "The Default block is used inside of a Switch to define the default action." +msgstr "" -#: js/MediaBlocks.js:938 -msgid "The Media block is used to import an image." +#: js/blocks/FlowBlocks.js:342 +msgid "default" msgstr "" -#: js/MediaBlocks.js:973 -msgid "The Text block holds a text string." +#: js/blocks/FlowBlocks.js:361 +#: js/blocks/FlowBlocks.js:418 +msgid "The Case Block must be used inside of a Switch Block." msgstr "" -#: js/ProgramBlocks.js:33 -msgid "The Load-heap-from-app block loads the heap from a web page." +#: js/blocks/FlowBlocks.js:389 +msgid "The Case block is used inside of a Switch to define matches." msgstr "" -#: js/ProgramBlocks.js:44 -#.TRANS: load the heap contents from a URL -msgid "load heap from App" +#: js/blocks/FlowBlocks.js:397 +msgid "case" msgstr "" -#: js/ProgramBlocks.js:95 -msgid "Error parsing JSON data:" +#: js/blocks/FlowBlocks.js:446 +msgid "The Switch block will run the code in the matching Case." msgstr "" -#: js/ProgramBlocks.js:100 -msgid "404: Page not found" +#: js/blocks/FlowBlocks.js:454 +msgid "switch" msgstr "" -#: js/ProgramBlocks.js:133 -msgid "The Save-heap-to-app block saves the heap to a web page." +#: js/blocks/FlowBlocks.js:595 +msgid "The Stop block will stop a loop" msgstr "" -#: js/ProgramBlocks.js:144 -#.TRANS: save the heap contents to a URL -msgid "save heap to App" +#: js/blocks/FlowBlocks.js:597 +msgid "Forever, Repeat, While, or Until." msgstr "" -#: js/ProgramBlocks.js:189 -msgid "Cannot find a valid heap for" +#: js/blocks/FlowBlocks.js:604 +#: js/widgets/timbre.js:417 +#: js/widgets/timbre.js:419 +#: js/widgets/musickeyboard.js:819 +#: js/widgets/musickeyboard.js:821 +#: js/widgets/phrasemaker.js:4202 +#: plugins/rodi.rtp:29 +#: plugins/rodi.rtp:73 +#: plugins/rodi.rtp:413 +msgid "stop" +msgstr "arrêt" + +#: js/blocks/FlowBlocks.js:653 +msgid "The Waitfor block will wait until the condition is true." msgstr "" -#: js/ProgramBlocks.js:206 -msgid "The Load-heap block loads the heap from a file." +#: js/blocks/FlowBlocks.js:661 +msgid "wait for" +msgstr "attendre" + +#: js/blocks/FlowBlocks.js:732 +msgid "The Until block will repeat until the condition is true." msgstr "" -#: js/ProgramBlocks.js:217 -#.TRANS: load the heap from a file -msgid "load heap" +#: js/blocks/FlowBlocks.js:740 +msgid "until" +msgstr "jusqu'à" + +#: js/blocks/FlowBlocks.js:742 +#: js/blocks/FlowBlocks.js:822 +msgid "do2" msgstr "" -#: js/ProgramBlocks.js:270 -msgid "The file you selected does not contain a valid heap." +#: js/blocks/FlowBlocks.js:812 +msgid "The While block will repeat while the condition is true." msgstr "" -#: js/ProgramBlocks.js:275 -msgid "The loadHeap block needs a loadFile block." +#: js/blocks/FlowBlocks.js:820 +msgid "while" +msgstr "tant que" + +#: js/blocks/FlowBlocks.js:903 +#: js/blocks/FlowBlocks.js:968 +#: js/blocks/FlowBlocks.js:979 +msgid "In this example if the mouse button is pressed a snare drum will play." msgstr "" -#: js/ProgramBlocks.js:291 -msgid "The Set-heap block loads the heap." +#: js/blocks/FlowBlocks.js:925 +#: js/blocks/FlowBlocks.js:988 +msgid "if" +msgstr "si" + +#: js/blocks/FlowBlocks.js:927 +#: js/blocks/FlowBlocks.js:990 +msgid "then" +msgstr "alors" + +#: js/blocks/FlowBlocks.js:927 +msgid "else" +msgstr "sinon" + +#: js/blocks/FlowBlocks.js:1025 +msgid "The Forever block will repeat the contained blocks forever." msgstr "" -#: js/ProgramBlocks.js:299 -#: js/HeapBlocks.js:539 -#.TRANS: load the heap from a JSON encoding -msgid "set heap" +#: js/blocks/FlowBlocks.js:1037 +msgid "forever" +msgstr "toujours" + +#: js/blocks/FlowBlocks.js:1073 +msgid "The Repeat block will repeat the contained blocks." msgstr "" -#: js/ProgramBlocks.js:340 -msgid "The block you selected does not contain a valid heap." +#: js/blocks/FlowBlocks.js:1075 +msgid "In this example the note will be played 4 times." msgstr "" -#: js/ProgramBlocks.js:343 -msgid "The Set heap block needs a heap." +#: js/blocks/FlowBlocks.js:1083 +msgid "repeat" +msgstr "répète" + +#: js/blocks/FlowBlocks.js:1123 +msgid "duplicate factor" msgstr "" -#: js/ProgramBlocks.js:360 -msgid "The Load-dictionary block loads a dictionary from a file." +#: js/blocks/HeapBlocks.js:49 +msgid "The Heap block returns the heap." msgstr "" -#: js/ProgramBlocks.js:372 -#.TRANS: load a dictionary from a file -msgid "load dictionary" +#: js/blocks/HeapBlocks.js:133 +msgid "show heap" msgstr "" -#: js/ProgramBlocks.js:390 -#: js/ProgramBlocks.js:658 -#: js/ToneBlocks.js:1025 -msgid "file" +#: js/blocks/HeapBlocks.js:181 +msgid "The Heap-length block returns the length of the heap." msgstr "" -#: js/ProgramBlocks.js:396 -#: js/ProgramBlocks.js:501 -#: js/ProgramBlocks.js:664 -#: js/DictBlocks.js:80 -#: js/DictBlocks.js:145 -#: js/DictBlocks.js:216 -#: js/DictBlocks.js:290 -msgid "My Dictionary" +#: js/blocks/HeapBlocks.js:195 +msgid "heap length" msgstr "" -#: js/ProgramBlocks.js:444 -msgid "The file you selected does not contain a valid dictionary." +#: js/blocks/HeapBlocks.js:254 +msgid "The Heap-empty? block returns true if the heap is empty." msgstr "" -#: js/ProgramBlocks.js:449 -msgid "The load dictionary block needs a load file block." +#: js/blocks/HeapBlocks.js:268 +#.TRANS: Is the heap empty? +msgid "heap empty?" msgstr "" -#: js/ProgramBlocks.js:466 -msgid "The Set-dictionary block loads a dictionary." +#: js/blocks/HeapBlocks.js:317 +msgid "The Empty-heap block empties the heap." msgstr "" -#: js/ProgramBlocks.js:477 -#.TRANS: load a dictionary from a JSON -msgid "set dictionary" +#: js/blocks/HeapBlocks.js:327 +#: js/blocks/HeapBlocks.js:647 +#.TRANS: empty the heap +msgid "empty heap" msgstr "" -#: js/ProgramBlocks.js:546 -msgid "The block you selected does not contain a valid dictionary." +#: js/blocks/HeapBlocks.js:371 +msgid "The Reverse-heap block reverses the order of the heap." msgstr "" -#: js/ProgramBlocks.js:550 -msgid "The set dictionary block needs a dictionary." +#: js/blocks/HeapBlocks.js:384 +#.TRANS: reverse the order of the heap +msgid "reverse heap" msgstr "" -#: js/ProgramBlocks.js:567 -msgid "The Save-heap block saves the heap to a file." +#: js/blocks/HeapBlocks.js:428 +msgid "The Index-heap block returns a value in the heap at a specified location." msgstr "" -#: js/ProgramBlocks.js:578 -#.TRANS: save the heap to a file -msgid "save heap" +#: js/blocks/HeapBlocks.js:443 +#.TRANS: retrieve a value from the heap at index position in the heap +msgid "index heap" msgstr "" -#: js/ProgramBlocks.js:629 -msgid "The Save-dictionary block saves a dictionary to a file." +#: js/blocks/HeapBlocks.js:523 +msgid "The Set-heap entry block sets a value in he heap at the specified location." msgstr "" -#: js/ProgramBlocks.js:640 -#.TRANS: save a dictionary to a file -msgid "save dictionary" +#: js/blocks/HeapBlocks.js:539 +#: js/blocks/ProgramBlocks.js:299 +#.TRANS: load the heap from a JSON encoding +msgid "set heap" msgstr "" -#: js/ProgramBlocks.js:720 -msgid "The Open palette block opens a palette." +#: js/blocks/HeapBlocks.js:619 +msgid "The Pop block removes the value at the top of the heap." msgstr "" -#: js/ProgramBlocks.js:727 -msgid "open palette" +#: js/blocks/HeapBlocks.js:633 +#.TRANS: pop a value off the top of the heap +msgid "pop" msgstr "" -#: js/ProgramBlocks.js:785 -msgid "The Delete block block removes a block." +#: js/blocks/HeapBlocks.js:680 +msgid "The Push block adds a value to the top of the heap." msgstr "" -#: js/ProgramBlocks.js:797 -#.TRANS: Move this block to the trash. -msgid "delete block" +#: js/blocks/HeapBlocks.js:696 +#.TRANS: push a value onto the top of the heap +msgid "push" msgstr "" -#: js/ProgramBlocks.js:861 -msgid "The Move block block moves a block." +#: js/blocks/IntervalsBlocks.js:45 +msgid "set temperament" msgstr "" -#: js/ProgramBlocks.js:869 -#.TRANS: Move the position of a block on the screen. -msgid "move block" +#: js/blocks/IntervalsBlocks.js:63 +#: js/blocks/MediaBlocks.js:746 +#: js/blocks/PitchBlocks.js:657 +#: js/blocks/PitchBlocks.js:935 +#: js/blocks/PitchBlocks.js:974 +#: js/blocks/PitchBlocks.js:1007 +#: js/blocks/PitchBlocks.js:1194 +#: js/blocks/PitchBlocks.js:1717 +#: js/blocks/PitchBlocks.js:1758 +#: js/blocks/PitchBlocks.js:1866 +#: js/blocks/ToneBlocks.js:1025 +#: js/turtleactions/IntervalsActions.js:114 +#.TRANS: adjusts the shift up or down by one octave (twelve half-steps in the interval between two notes, one having twice or half the frequency in Hz of the other.) +msgid "octave" msgstr "" -#: js/ProgramBlocks.js:881 -#: js/ProgramBlocks.js:1048 -msgid "block number" +#: js/blocks/IntervalsBlocks.js:99 +msgid "The Temperament name block is used to select a tuning method." msgstr "" -#: js/ProgramBlocks.js:935 -#.TRANS: Run program beginning at this block. -msgid "run block" +#: js/blocks/IntervalsBlocks.js:161 +msgid "doubly" msgstr "" -#: js/ProgramBlocks.js:1025 -msgid "The Dock block block connections two blocks." +#: js/blocks/IntervalsBlocks.js:166 +msgid "The Doubly block will double the size of an interval." msgstr "" -#: js/ProgramBlocks.js:1036 -#.TRANS: We can connect a block to another block. -msgid "connect blocks" +#: js/blocks/IntervalsBlocks.js:262 +msgid "interval number" msgstr "" -#: js/ProgramBlocks.js:1048 -msgid "target block" +#: js/blocks/IntervalsBlocks.js:317 +msgid "current interval" msgstr "" -#: js/ProgramBlocks.js:1048 -msgid "connection number" +#: js/blocks/IntervalsBlocks.js:387 +#.TRANS: measure the distance between two pitches in semi-tones +msgid "semi-tone interval measure" msgstr "" -#: js/ProgramBlocks.js:1140 -msgid "The Make block block creates a new block." +#: js/blocks/IntervalsBlocks.js:454 +#: js/blocks/IntervalsBlocks.js:570 +msgid "You must use two pitch blocks when measuring an interval." msgstr "" -#: js/ProgramBlocks.js:1152 -#.TRANS: Create a new block -msgid "make block" +#: js/blocks/IntervalsBlocks.js:496 +msgid "The Scalar interval block measures the distance between two notes in the current key and mode." msgstr "" -#: js/ProgramBlocks.js:1186 -#: js/ProgramBlocks.js:1227 -#: js/RhythmBlocks.js:1128 -#: js/PitchBlocks.js:972 -#: js/PitchBlocks.js:1005 -#: js/temperament.js:340 -#: js/temperament.js:362 -#: js/temperament.js:372 -#: js/temperament.js:484 -#: js/status.js:190 -#: plugins/rodi.rtp:192 -#.TRANS: a musical note consisting of pitch and duration -msgid "note" +#: js/blocks/IntervalsBlocks.js:502 +#.TRANS: measure the distance between two pitches in steps of musical scale +msgid "scalar interval measure" msgstr "" -#: js/ProgramBlocks.js:1285 -msgid "Cannot find block" +#: js/blocks/IntervalsBlocks.js:678 +msgid "In the figure, we add sol# to sol." msgstr "" -#: js/ProgramBlocks.js:1304 -#: js/ProgramBlocks.js:1313 -msgid "Warning: block argument type mismatch" +#: js/blocks/IntervalsBlocks.js:684 +#: js/blocks/OrnamentBlocks.js:220 +#.TRANS: calculate a relative step between notes based on semi-tones +msgid "semi-tone interval" msgstr "" -#: js/ProgramBlocks.js:1347 -msgid "The Open project block is used to open a project from a web page." +#: js/blocks/IntervalsBlocks.js:733 +msgid "The output of the example is: do, mi, sol, sol, ti, mi" msgstr "" -#: js/ProgramBlocks.js:1357 -msgid "open project" +#: js/blocks/IntervalsBlocks.js:740 +#: js/blocks/WidgetBlocks.js:768 +msgid "arpeggio" msgstr "" -#: js/ProgramBlocks.js:1410 -msgid "Please enter a valid URL." +#: js/blocks/IntervalsBlocks.js:931 +msgid "The Chord block calculates common chords." msgstr "" -#: js/DrumBlocks.js:59 -msgid "The Noise name block is used to select a noise synthesizer." +#: js/blocks/IntervalsBlocks.js:933 +msgid "In the figure, we generate a C-major chord." msgstr "" -#: js/DrumBlocks.js:102 -msgid "The Drum name block is used to select a drum." +#: js/blocks/IntervalsBlocks.js:938 +msgid "chord" msgstr "" -#: js/DrumBlocks.js:146 -msgid "The Effects name block is used to select a sound effect." +#: js/blocks/IntervalsBlocks.js:990 +msgid "The Ratio Interval block calculates an interval based on a ratio." msgstr "" -#: js/DrumBlocks.js:163 -msgid "noise" +#: js/blocks/IntervalsBlocks.js:995 +msgid "ratio interval" msgstr "" -#: js/DrumBlocks.js:177 -msgid "The Play noise block will generate white, pink, or brown noise." +#: js/blocks/IntervalsBlocks.js:1064 +msgid "In the figure, we add la to sol." msgstr "" -#: js/DrumBlocks.js:191 -#: js/musicutils.js:752 -#: js/synthutils.js:47 -#.TRANS: white noise synthesizer -msgid "white noise" +#: js/blocks/IntervalsBlocks.js:1120 +#.TRANS: define a custom mode +msgid "define mode" msgstr "" -#: js/DrumBlocks.js:326 -msgid "Replace every instance of a pitch with a drum sound." +#: js/blocks/IntervalsBlocks.js:1173 +msgid "movable Do" msgstr "" -#: js/DrumBlocks.js:337 -#.TRANS: map a pitch to a drum sound -msgid "map pitch to drum" +#: js/blocks/IntervalsBlocks.js:1224 +#.TRANS: mode length is the number of notes in the mode, e.g., 7 for major and minor scales; 12 for chromatic scales +msgid "mode length" msgstr "" -#: js/DrumBlocks.js:404 -msgid "In the example above, a kick drum sound will be played instead of sol." +#: js/blocks/IntervalsBlocks.js:1233 +msgid "The Mode length block is the number of notes in the current scale." msgstr "" -#: js/DrumBlocks.js:416 -#.TRANS: set the current drum sound for playback -msgid "set drum" +#: js/blocks/IntervalsBlocks.js:1235 +msgid "Most Western scales have 7 notes." msgstr "" -#: js/DrumBlocks.js:460 -msgid "sound effect" +#: js/blocks/IntervalsBlocks.js:1284 +#.TRANS: the mode in music is 'major', 'minor', etc. +msgid "current mode" msgstr "" -#: js/DrumBlocks.js:498 -msgid "You can use multiple Drum blocks within a Note block." +#: js/blocks/IntervalsBlocks.js:1337 +#.TRANS: the key is a group of pitches with which a music composition is created +msgid "current key" msgstr "" -#: js/RhythmBlocks.js:182 -#: js/RhythmBlocks.js:1086 -#: js/RhythmBlocks.js:1162 -msgid "Note value must be greater than 0." +#: js/blocks/IntervalsBlocks.js:1389 +#: js/blocks/IntervalsBlocks.js:1434 +#.TRANS: set the key and mode, e.g. C Major +msgid "set key" msgstr "" -#: js/RhythmBlocks.js:215 -#: js/RhythmBlocks.js:278 -#: js/RhythmBlocks.js:350 -#.TRANS: swing is a rhythmic variation that emphasises the offbeat -msgid "swing" +#: js/blocks/IntervalsBlocks.js:1443 +#: js/blocks/IntervalsBlocks.js:1449 +msgid "The Set key block is used to set the key and mode," msgstr "" -#: js/RhythmBlocks.js:355 -#.TRANS: the amount to shift to the offbeat note -msgid "swing value" +#: js/blocks/IntervalsBlocks.js:1449 +msgid "eg C Major" msgstr "" -#: js/RhythmBlocks.js:419 -msgid "The Skip notes block will cause notes to be skipped." +#: js/blocks/MediaBlocks.js:35 +#.TRANS: right side of the screen +msgid "right (screen)" msgstr "" -#: js/RhythmBlocks.js:427 -#.TRANS: substitute rests on notes being skipped -msgid "skip notes" +#: js/blocks/MediaBlocks.js:45 +#: js/blocks/MediaBlocks.js:56 +msgid "The Right block returns the position of the right of the canvas." msgstr "" -#: js/RhythmBlocks.js:489 -#.TRANS: speed up note duration by some factor, e.g. convert 1/4 to 1/8 notes by using a factor of 2 -msgid "multiply note value" +#: js/blocks/MediaBlocks.js:97 +#.TRANS: left side of the screen +msgid "left (screen)" msgstr "" -#: js/RhythmBlocks.js:542 -msgid "The Tie block works on pairs of notes, combining them into one note." +#: js/blocks/MediaBlocks.js:107 +#: js/blocks/MediaBlocks.js:118 +msgid "The Left block returns the position of the left of the canvas." msgstr "" -#: js/RhythmBlocks.js:550 -#.TRANS: tie notes together into one longer note -msgid "tie" +#: js/blocks/MediaBlocks.js:158 +msgid "top (screen)" msgstr "" -#: js/RhythmBlocks.js:591 -#: js/RhythmBlocks.js:671 -#.TRANS: a dotted note is played for 1.5x its value, e.g., 1/8. --> 3/16 -msgid "dot" +#: js/blocks/MediaBlocks.js:168 +#: js/blocks/MediaBlocks.js:179 +msgid "The Top block returns the position of the top of the canvas." msgstr "" -#: js/RhythmBlocks.js:619 -#: js/RhythmActions.js:221 -msgid "An argument of -1 results in a note value of 0." +#: js/blocks/MediaBlocks.js:219 +msgid "bottom (screen)" msgstr "" -#: js/RhythmBlocks.js:661 -msgid "The Dot block extends the duration of a note by 50%." +#: js/blocks/MediaBlocks.js:229 +#: js/blocks/MediaBlocks.js:240 +msgid "The Bottom block returns the position of the bottom of the canvas." msgstr "" -#: js/RhythmBlocks.js:663 -msgid "Eg a dotted quarter note will play for 3/8 (1/4 + 1/8) of a beat." +#: js/blocks/MediaBlocks.js:282 +msgid "width" msgstr "" -#: js/RhythmBlocks.js:765 -#.TRANS: Japanese only: note value block for drum -msgid "note value drum" +#: js/blocks/MediaBlocks.js:291 +msgid "The Width block returns the width of the canvas." msgstr "" -#: js/RhythmBlocks.js:829 -msgid "392 hertz" +#: js/blocks/MediaBlocks.js:325 +msgid "height" msgstr "" -#: js/RhythmBlocks.js:1119 -msgid "The Note block is a container for one or more Pitch blocks." +#: js/blocks/MediaBlocks.js:334 +msgid "The Height block returns the height of the canvas." msgstr "" -#: js/RhythmBlocks.js:1121 -msgid "The Note block specifies the duration (note value) of its contents." +#: js/blocks/MediaBlocks.js:369 +#.TRANS: stops playback of an audio recording +msgid "stop play" msgstr "" -#: js/RhythmBlocks.js:1130 -msgid "value2" +#: js/blocks/MediaBlocks.js:404 +#.TRANS: Erases the images and text +msgid "erase media" msgstr "" -#: js/RhythmBlocks.js:1200 -msgid "define frequency" +#: js/blocks/MediaBlocks.js:409 +msgid "The Erase Media block erases text and images." msgstr "" -#: js/RhythmBlocks.js:1218 -#: js/temperament.js:650 -#: js/temperament.js:1421 -msgid "octave space" +#: js/blocks/MediaBlocks.js:439 +#.TRANS: play an audio recording +msgid "play back" msgstr "" -#: js/NumberBlocks.js:28 -msgid "The Int block returns an integer." +#: js/blocks/MediaBlocks.js:487 +msgid "speak" +msgstr "parler" + +#: js/blocks/MediaBlocks.js:495 +msgid "The Speak block outputs to the text-to-speech synthesizer" msgstr "" -#: js/NumberBlocks.js:34 -msgid "int" +#: js/blocks/MediaBlocks.js:546 +msgid "camera" msgstr "" -#: js/NumberBlocks.js:73 -msgid "The Mod block returns the remainder from a division." +#: js/blocks/MediaBlocks.js:551 +msgid "The Camera block connects a webcam to the Show block." msgstr "" -#: js/NumberBlocks.js:79 -msgid "mod" -msgstr "mod" +#: js/blocks/MediaBlocks.js:574 +msgid "video" +msgstr "" -#: js/NumberBlocks.js:123 -msgid "The Power block calculates a power function." +#: js/blocks/MediaBlocks.js:579 +msgid "The Video block selects video for use with the Show block." msgstr "" -#: js/NumberBlocks.js:178 -msgid "The Sqrt block returns the square root." +#: js/blocks/MediaBlocks.js:607 +msgid "The Open file block opens a file for use with the Show block." msgstr "" -#: js/NumberBlocks.js:184 -msgid "sqrt" -msgstr "racine carré" +#: js/blocks/MediaBlocks.js:645 +msgid "stop media" +msgstr "arrêt média" -#: js/NumberBlocks.js:230 -msgid "The Abs block returns the absolute value." +#: js/blocks/MediaBlocks.js:650 +msgid "The Stop media block stops audio or video playback." msgstr "" -#: js/NumberBlocks.js:236 -msgid "abs" +#: js/blocks/MediaBlocks.js:679 +#: js/blocks/PitchBlocks.js:1577 +#: js/widgets/musickeyboard.js:1936 +#: js/widgets/phrasemaker.js:1037 +#.TRANS: a measure of frequency: one cycle per second +msgid "hertz" msgstr "" -#: js/NumberBlocks.js:277 -msgid "The Distance block returns the distance between two points. For example, between the mouse and the center of the screen." +#: js/blocks/MediaBlocks.js:692 +#: js/blocks/WidgetBlocks.js:182 +#: js/widgets/temperament.js:506 +#: js/widgets/temperament.js:546 +#: js/widgets/temperament.js:610 +#: js/widgets/temperament.js:618 +#: js/widgets/temperament.js:1505 +#: js/widgets/timbre.js:1842 +msgid "frequency" msgstr "" -#: js/NumberBlocks.js:283 -#: plugins/rodi.rtp:310 -msgid "distance" +#: js/blocks/MediaBlocks.js:692 +msgid "duration (ms)" msgstr "" -#: js/NumberBlocks.js:343 -msgid "The Divide block is used to divide." +#: js/blocks/MediaBlocks.js:728 +#.TRANS: translate a note into hertz, e.g., A4 -> 440HZ +msgid "note to frequency" msgstr "" -#: js/NumberBlocks.js:411 -msgid "The Multiply block is used to multiply." +#: js/blocks/MediaBlocks.js:736 +msgid "The To frequency block converts a pitch name and octave to Hertz." msgstr "" -#: js/NumberBlocks.js:554 -msgid "The Minus block is used to subtract." +#: js/blocks/MediaBlocks.js:746 +#: js/blocks/PitchBlocks.js:656 +#: js/blocks/PitchBlocks.js:934 +#: js/blocks/PitchBlocks.js:1866 +#.TRANS: name2 is name as in name of pitch (JAPANESE ONLY) +msgid "name2" msgstr "" -#: js/NumberBlocks.js:647 -msgid "The Plus block is used to add." +#: js/blocks/MediaBlocks.js:812 +msgid "The Avatar block is used to change the appearance of the mouse." msgstr "" -#: js/NumberBlocks.js:773 -msgid "The One-of block returns one of two choices." +#: js/blocks/MediaBlocks.js:819 +msgid "The Avatar block is used to change the appearance of the turtle." msgstr "" -#: js/NumberBlocks.js:780 -#: js/PitchBlocks.js:616 -msgid "one of" +#: js/blocks/MediaBlocks.js:831 +#: js/blocks/MediaBlocks.js:891 +#.TRANS: a media object +msgid "size" msgstr "" -#: js/NumberBlocks.js:782 -msgid "this" -msgstr "" +#: js/blocks/MediaBlocks.js:831 +msgid "image" +msgstr "image" -#: js/NumberBlocks.js:782 -msgid "that" +#: js/blocks/MediaBlocks.js:880 +msgid "The Show block is used to display text or images on the canvas." msgstr "" -#: js/NumberBlocks.js:837 -msgid "The Random block returns a random number." +#: js/blocks/MediaBlocks.js:888 +#.TRANS: show1 is show as in display an image or text on the screen. +msgid "show1" msgstr "" -#: js/NumberBlocks.js:844 -msgid "random" -msgstr "aléatoire" +#: js/blocks/MediaBlocks.js:891 +msgid "obj" +msgstr "objet" -#: js/NumberBlocks.js:846 -msgid "min" -msgstr "min" +#: js/blocks/MediaBlocks.js:938 +msgid "The Media block is used to import an image." +msgstr "" -#: js/NumberBlocks.js:846 -msgid "max" -msgstr "max" +#: js/blocks/MediaBlocks.js:973 +msgid "The Text block holds a text string." +msgstr "" -#: js/NumberBlocks.js:910 -msgid "The Number block holds a number." +#: js/blocks/MeterBlocks.js:34 +#.TRANS: musical meter (time signature), e.g., 4:4 +msgid "current meter" msgstr "" -#: js/BoxesBlocks.js:53 -#: js/BoxesBlocks.js:59 -msgid "The Add-to block is used to add to the value stored in a box." +#: js/blocks/MeterBlocks.js:85 +#.TRANS: number of beats per minute +msgid "beat factor" msgstr "" -#: js/BoxesBlocks.js:61 -msgid "It can also be used with other blocks such as Color and Pen size." +#: js/blocks/MeterBlocks.js:161 +msgid "The Beats per minute block returns the current beats per minute." msgstr "" -#: js/BoxesBlocks.js:73 -msgid "add" -msgstr "ajouter" +#: js/blocks/MeterBlocks.js:169 +#: js/widgets/status.js:152 +#.TRANS: number of beats played per minute +msgid "beats per minute2" +msgstr "" -#: js/BoxesBlocks.js:75 -#: js/temperament.js:716 -msgid "to" +#: js/blocks/MeterBlocks.js:169 +#: js/blocks/MeterBlocks.js:1056 +#: js/blocks/MeterBlocks.js:1133 +#: js/blocks/MeterBlocks.js:1211 +#.TRANS: sets tempo by defining a beat and beats per minute +msgid "beats per minute" msgstr "" -#: js/BoxesBlocks.js:75 -#: js/BoxesBlocks.js:595 -#: js/HeapBlocks.js:544 -msgid "value1" +#: js/blocks/MeterBlocks.js:233 +#.TRANS: count of current musical measure in meter +msgid "measure count" msgstr "" -#: js/BoxesBlocks.js:118 -msgid "Block does not support incrementing." +#: js/blocks/MeterBlocks.js:241 +msgid "The Measure count block returns the current measure." msgstr "" -#: js/BoxesBlocks.js:152 -msgid "The Add-1-to block adds one to the value stored in a box." +#: js/blocks/MeterBlocks.js:290 +#.TRANS: count of current beat in the meter +msgid "beat count" msgstr "" -#: js/BoxesBlocks.js:163 -msgid "add 1 to" -msgstr "ajouter 1 à" +#: js/blocks/MeterBlocks.js:300 +#: js/blocks/MeterBlocks.js:311 +#: js/blocks/MeterBlocks.js:565 +#: js/blocks/MeterBlocks.js:576 +msgid "The Beat count block is the number of the current beat," +msgstr "" -#: js/BoxesBlocks.js:211 -msgid "The Subtract-1-from block subtracts one from the value stored in a box." +#: js/blocks/MeterBlocks.js:313 +#: js/blocks/MeterBlocks.js:578 +msgid "eg 1, 2, 3, or 4." msgstr "" -#: js/BoxesBlocks.js:222 -msgid "subtract 1 from" +#: js/blocks/MeterBlocks.js:368 +#.TRANS: count the number of notes +msgid "sum note values" msgstr "" -#: js/BoxesBlocks.js:270 -#: js/BoxesBlocks.js:387 -msgid "The Box block returns the value stored in a box." +#: js/blocks/MeterBlocks.js:376 +#: js/blocks/MeterBlocks.js:440 +msgid "The Note counter block can be used to count the number of contained notes." msgstr "" -#: js/BoxesBlocks.js:500 -#: js/BoxesBlocks.js:576 -msgid "The Store in block will store a value in a box." +#: js/blocks/MeterBlocks.js:432 +#.TRANS: count the number of notes +msgid "note counter" msgstr "" -#: js/BoxesBlocks.js:652 -msgid "The Box2 block returns the value stored in Box2." +#: js/blocks/MeterBlocks.js:496 +#.TRANS: number of whole notes that have been played +msgid "whole notes played" msgstr "" -#: js/BoxesBlocks.js:703 -msgid "The Store in Box2 block is used to store a value in Box2." +#: js/blocks/MeterBlocks.js:505 +msgid "The Whole notes played block returns the total number of whole notes played." msgstr "" -#: js/BoxesBlocks.js:715 -msgid "store in box2" +#: js/blocks/MeterBlocks.js:555 +#: js/turtleactions/DictActions.js:83 +#.TRANS: number of notes that have been played +msgid "notes played" msgstr "" -#: js/BoxesBlocks.js:761 -msgid "The Box1 block returns the value stored in Box1." +#: js/blocks/MeterBlocks.js:653 +msgid "The No clock block decouples the notes from the master clock." msgstr "" -#: js/BoxesBlocks.js:812 -msgid "The Store in Box1 block is used to store a value in Box1." +#: js/blocks/MeterBlocks.js:661 +#.TRANS: don't lock notes to master clock +msgid "no clock" msgstr "" -#: js/BoxesBlocks.js:826 -msgid "store in box1" +#: js/blocks/MeterBlocks.js:700 +msgid "on weak beat do" msgstr "" -#: js/HeapBlocks.js:49 -msgid "The Heap block returns the heap." +#: js/blocks/MeterBlocks.js:705 +msgid "The On-weak-beat block lets you specify actions to take on weak (off) beats." msgstr "" -#: js/HeapBlocks.js:133 -msgid "show heap" +#: js/blocks/MeterBlocks.js:750 +msgid "on strong beat" msgstr "" -#: js/HeapBlocks.js:181 -msgid "The Heap-length block returns the length of the heap." +#: js/blocks/MeterBlocks.js:758 +msgid "The On-strong-beat block lets you specify actions to take on specified beats." msgstr "" -#: js/HeapBlocks.js:195 -msgid "heap length" +#: js/blocks/MeterBlocks.js:769 +msgid "beat" msgstr "" -#: js/HeapBlocks.js:254 -msgid "The Heap-empty? block returns true if the heap is empty." +#: js/blocks/MeterBlocks.js:813 +msgid "on every beat do" msgstr "" -#: js/HeapBlocks.js:268 -#.TRANS: Is the heap empty? -msgid "heap empty?" +#: js/blocks/MeterBlocks.js:821 +msgid "The On-every-beat block lets you specify actions to take on every beat." msgstr "" -#: js/HeapBlocks.js:317 -msgid "The Empty-heap block empties the heap." +#: js/blocks/MeterBlocks.js:874 +msgid "on every note do" msgstr "" -#: js/HeapBlocks.js:327 -#: js/HeapBlocks.js:647 -#.TRANS: empty the heap -msgid "empty heap" +#: js/blocks/MeterBlocks.js:882 +msgid "The On-every-note block lets you specify actions to take on every note." msgstr "" -#: js/HeapBlocks.js:371 -msgid "The Reverse-heap block reverses the order of the heap." +#: js/blocks/MeterBlocks.js:928 +#: js/blocks/MeterBlocks.js:999 +#.TRANS: sets tempo by defining a beat and beats per minute +msgid "master beats per minute" msgstr "" -#: js/HeapBlocks.js:384 -#.TRANS: reverse the order of the heap -msgid "reverse heap" +#: js/blocks/MeterBlocks.js:952 +#: js/blocks/MeterBlocks.js:1078 +#: js/blocks/MeterBlocks.js:1135 +msgid "bpm" msgstr "" -#: js/HeapBlocks.js:428 -msgid "The Index-heap block returns a value in the heap at a specified location." +#: js/blocks/MeterBlocks.js:952 +#: js/blocks/MeterBlocks.js:1078 +#: js/blocks/MeterBlocks.js:1135 +msgid "beat value" msgstr "" -#: js/HeapBlocks.js:443 -#.TRANS: retrieve a value from the heap at index position in the heap -msgid "index heap" +#: js/blocks/MeterBlocks.js:1024 +#: js/blocks/MeterBlocks.js:1167 +#: js/blocks/MeterBlocks.js:1241 +msgid "Beats per minute must be > 30." msgstr "" -#: js/HeapBlocks.js:523 -msgid "The Set-heap entry block sets a value in he heap at the specified location." +#: js/blocks/MeterBlocks.js:1027 +#: js/blocks/MeterBlocks.js:1170 +#: js/blocks/MeterBlocks.js:1244 +msgid "Maximum beats per minute is 1000." msgstr "" -#: js/HeapBlocks.js:619 -msgid "The Pop block removes the value at the top of the heap." +#: js/blocks/MeterBlocks.js:1068 +msgid "The Beats per minute block sets the number of 1/4 notes per minute." msgstr "" -#: js/HeapBlocks.js:633 -#.TRANS: pop a value off the top of the heap -msgid "pop" +#: js/blocks/MeterBlocks.js:1279 +#.TRANS: anacrusis +msgid "pickup" msgstr "" -#: js/HeapBlocks.js:680 -msgid "The Push block adds a value to the top of the heap." +#: js/blocks/MeterBlocks.js:1367 +msgid "number of beats" msgstr "" -#: js/HeapBlocks.js:696 -#.TRANS: push a value onto the top of the heap -msgid "push" +#: js/blocks/NumberBlocks.js:28 +msgid "The Int block returns an integer." msgstr "" -#: js/FlowBlocks.js:41 -msgid "The Backward block runs code in reverse order (Musical retrograde)." +#: js/blocks/NumberBlocks.js:34 +msgid "int" msgstr "" -#: js/FlowBlocks.js:48 -msgid "backward" +#: js/blocks/NumberBlocks.js:73 +msgid "The Mod block returns the remainder from a division." msgstr "" -#: js/FlowBlocks.js:124 -msgid "The Duplicate block will run each block multiple times." +#: js/blocks/NumberBlocks.js:79 +msgid "mod" +msgstr "mod" + +#: js/blocks/NumberBlocks.js:141 +msgid "The Power block calculates a power function." msgstr "" -#: js/FlowBlocks.js:136 -msgid "duplicate" +#: js/blocks/NumberBlocks.js:196 +msgid "The Sqrt block returns the square root." msgstr "" -#: js/FlowBlocks.js:334 -msgid "The Default block is used inside of a Switch to define the default action." -msgstr "" +#: js/blocks/NumberBlocks.js:202 +msgid "sqrt" +msgstr "racine carré" -#: js/FlowBlocks.js:342 -msgid "default" +#: js/blocks/NumberBlocks.js:248 +msgid "The Abs block returns the absolute value." msgstr "" -#: js/FlowBlocks.js:361 -#: js/FlowBlocks.js:418 -msgid "The Case Block must be used inside of a Switch Block." +#: js/blocks/NumberBlocks.js:254 +msgid "abs" msgstr "" -#: js/FlowBlocks.js:389 -msgid "The Case block is used inside of a Switch to define matches." +#: js/blocks/NumberBlocks.js:295 +msgid "The Distance block returns the distance between two points. For example, between the mouse and the center of the screen." msgstr "" -#: js/FlowBlocks.js:397 -msgid "case" +#: js/blocks/NumberBlocks.js:301 +#: plugins/rodi.rtp:310 +msgid "distance" msgstr "" -#: js/FlowBlocks.js:446 -msgid "The Switch block will run the code in the matching Case." +#: js/blocks/NumberBlocks.js:361 +msgid "The Divide block is used to divide." msgstr "" -#: js/FlowBlocks.js:454 -msgid "switch" +#: js/blocks/NumberBlocks.js:441 +msgid "The Multiply block is used to multiply." msgstr "" -#: js/FlowBlocks.js:595 -msgid "The Stop block will stop a loop" +#: js/blocks/NumberBlocks.js:612 +msgid "The Minus block is used to subtract." msgstr "" -#: js/FlowBlocks.js:597 -msgid "Forever, Repeat, While, or Until." +#: js/blocks/NumberBlocks.js:723 +msgid "The Plus block is used to add." msgstr "" -#: js/FlowBlocks.js:604 -#: js/phrasemaker.js:3799 -#: js/musickeyboard.js:629 -#: js/musickeyboard.js:631 -#: js/timbre.js:417 -#: js/timbre.js:419 -#: plugins/rodi.rtp:29 -#: plugins/rodi.rtp:73 -#: plugins/rodi.rtp:413 -msgid "stop" -msgstr "arrêt" - -#: js/FlowBlocks.js:653 -msgid "The Waitfor block will wait until the condition is true." +#: js/blocks/NumberBlocks.js:849 +msgid "The One-of block returns one of two choices." msgstr "" -#: js/FlowBlocks.js:661 -msgid "wait for" -msgstr "attendre" - -#: js/FlowBlocks.js:732 -msgid "The Until block will repeat until the condition is true." +#: js/blocks/NumberBlocks.js:856 +#: js/blocks/PitchBlocks.js:616 +msgid "one of" msgstr "" -#: js/FlowBlocks.js:740 -msgid "until" -msgstr "jusqu'à" - -#: js/FlowBlocks.js:742 -#: js/FlowBlocks.js:822 -msgid "do2" +#: js/blocks/NumberBlocks.js:858 +msgid "this" msgstr "" -#: js/FlowBlocks.js:812 -msgid "The While block will repeat while the condition is true." +#: js/blocks/NumberBlocks.js:858 +msgid "that" msgstr "" -#: js/FlowBlocks.js:820 -msgid "while" -msgstr "tant que" - -#: js/FlowBlocks.js:903 -#: js/FlowBlocks.js:968 -#: js/FlowBlocks.js:979 -msgid "In this example if the mouse button is pressed a snare drum will play." +#: js/blocks/NumberBlocks.js:913 +msgid "The Random block returns a random number." msgstr "" -#: js/FlowBlocks.js:925 -#: js/FlowBlocks.js:988 -msgid "if" -msgstr "si" +#: js/blocks/NumberBlocks.js:920 +msgid "random" +msgstr "aléatoire" -#: js/FlowBlocks.js:927 -#: js/FlowBlocks.js:990 -msgid "then" -msgstr "alors" +#: js/blocks/NumberBlocks.js:922 +msgid "min" +msgstr "min" -#: js/FlowBlocks.js:927 -msgid "else" -msgstr "sinon" +#: js/blocks/NumberBlocks.js:922 +msgid "max" +msgstr "max" -#: js/FlowBlocks.js:1025 -msgid "The Forever block will repeat the contained blocks forever." +#: js/blocks/NumberBlocks.js:986 +msgid "The Number block holds a number." msgstr "" -#: js/FlowBlocks.js:1037 -msgid "forever" -msgstr "toujours" - -#: js/FlowBlocks.js:1073 -msgid "The Repeat block will repeat the contained blocks." +#: js/blocks/OrnamentBlocks.js:32 +msgid "staccato factor" msgstr "" -#: js/FlowBlocks.js:1075 -msgid "In this example the note will be played 4 times." +#: js/blocks/OrnamentBlocks.js:108 +msgid "slur factor" msgstr "" -#: js/FlowBlocks.js:1083 -msgid "repeat" -msgstr "répète" - -#: js/FlowBlocks.js:1123 -msgid "duplicate factor" +#: js/blocks/OrnamentBlocks.js:217 +#: js/blocks/OrnamentBlocks.js:309 +#.TRANS: the neighbor refers to a neighboring note, e.g., D is a neighbor of C +msgid "neighbor" msgstr "" -#: js/PitchBlocks.js:39 -#: js/musicutils.js:722 -#: js/musicutils.js:1117 -#: js/synthutils.js:112 -#.TRANS: square wave -msgid "square" +#: js/blocks/OrnamentBlocks.js:293 +msgid "The Neighbor block rapidly switches between neighboring pitches." msgstr "" -#: js/PitchBlocks.js:62 -#: js/ToneBlocks.js:39 -#: js/musicutils.js:723 -#: js/musicutils.js:1118 -#: js/synthutils.js:116 -#.TRANS: triangle wave -msgid "triangle" +#: js/blocks/OrnamentBlocks.js:364 +msgid "glide" msgstr "" -#: js/PitchBlocks.js:85 -#: js/musicutils.js:721 -#: js/musicutils.js:1116 -#: js/synthutils.js:110 -#.TRANS: sine wave -msgid "sine" +#: js/blocks/OrnamentBlocks.js:479 +#: js/blocks/OrnamentBlocks.js:643 +msgid "slur" msgstr "" -#: js/PitchBlocks.js:108 -#: js/musicutils.js:724 -#: js/musicutils.js:1119 -#: js/synthutils.js:114 -#.TRANS: sawtooth wave -msgid "sawtooth" +#: js/blocks/OrnamentBlocks.js:558 +#: js/blocks/OrnamentBlocks.js:710 +#.TRANS: play each note sharply detached from the others +msgid "staccato" msgstr "" -#: js/PitchBlocks.js:141 -#.TRANS: musical transposition (adjustment of pitch up or down) -msgid "transposition" +#: js/blocks/RhythmBlocks.js:182 +#: js/blocks/RhythmBlocks.js:1086 +#: js/blocks/RhythmBlocks.js:1162 +msgid "Note value must be greater than 0." msgstr "" -#: js/PitchBlocks.js:168 -#.TRANS: step down one note in current musical scale -msgid "scalar step down" +#: js/blocks/RhythmBlocks.js:215 +#: js/blocks/RhythmBlocks.js:278 +#: js/blocks/RhythmBlocks.js:350 +#.TRANS: swing is a rhythmic variation that emphasises the offbeat +msgid "swing" msgstr "" -#: js/PitchBlocks.js:172 -msgid "The Scalar step down block returns the number of semi-tones down to the previous note in the current key and mode." +#: js/blocks/RhythmBlocks.js:355 +#.TRANS: the amount to shift to the offbeat note +msgid "swing value" msgstr "" -#: js/PitchBlocks.js:190 -#.TRANS: step up one note in current musical scale -msgid "scalar step up" +#: js/blocks/RhythmBlocks.js:419 +msgid "The Skip notes block will cause notes to be skipped." msgstr "" -#: js/PitchBlocks.js:194 -msgid "The Scalar step up block returns the number of semi-tones up to the next note in the current key and mode." +#: js/blocks/RhythmBlocks.js:427 +#.TRANS: substitute rests on notes being skipped +msgid "skip notes" msgstr "" -#: js/PitchBlocks.js:212 -#.TRANS: the change measured in half-steps between the current pitch and the previous pitch -msgid "change in pitch" +#: js/blocks/RhythmBlocks.js:489 +#.TRANS: speed up note duration by some factor, e.g. convert 1/4 to 1/8 notes by using a factor of 2 +msgid "multiply note value" msgstr "" -#: js/PitchBlocks.js:216 -msgid "The Change in pitch block is the difference (in half steps) between the current pitch being played and the previous pitch played." +#: js/blocks/RhythmBlocks.js:542 +msgid "The Tie block works on pairs of notes, combining them into one note." msgstr "" -#: js/PitchBlocks.js:243 -#.TRANS: the change measured in scale-steps between the current pitch and the previous pitch -msgid "scalar change in pitch" +#: js/blocks/RhythmBlocks.js:550 +#.TRANS: tie notes together into one longer note +msgid "tie" msgstr "" -#: js/PitchBlocks.js:250 -#: js/PitchBlocks.js:432 -#: js/PitchBlocks.js:1629 -#: js/DictActions.js:89 -#: js/temperament.js:477 -#: js/temperament.js:481 -#: js/temperament.js:714 -#.TRANS: convert current note to piano key (1-88) -#.TRANS: a mapping of pitch to the 88 piano keys -msgid "pitch number" +#: js/blocks/RhythmBlocks.js:591 +#: js/blocks/RhythmBlocks.js:671 +#.TRANS: a dotted note is played for 1.5x its value, e.g., 1/8. --> 3/16 +msgid "dot" msgstr "" -#: js/PitchBlocks.js:256 -msgid "The Pitch number block is the value of the pitch of the note currently being played." +#: js/blocks/RhythmBlocks.js:619 +#: js/turtleactions/RhythmActions.js:221 +msgid "An argument of -1 results in a note value of 0." msgstr "" -#: js/PitchBlocks.js:329 -#: js/PitchBlocks.js:433 -#.TRANS: the current pitch expressed in Hertz -msgid "pitch in hertz" +#: js/blocks/RhythmBlocks.js:661 +msgid "The Dot block extends the duration of a note by 50%." msgstr "" -#: js/PitchBlocks.js:334 -msgid "The Pitch in Hertz block is the value in Hertz of the pitch of the note currently being played." +#: js/blocks/RhythmBlocks.js:663 +msgid "Eg a dotted quarter note will play for 3/8 (1/4 + 1/8) of a beat." msgstr "" -#: js/PitchBlocks.js:367 -#: js/DictActions.js:87 -msgid "current pitch" +#: js/blocks/RhythmBlocks.js:765 +#.TRANS: Japanese only: note value block for drum +msgid "note value drum" msgstr "" -#: js/PitchBlocks.js:373 -msgid "The Current Pitch block is used with the Pitch Converter block. In the example above, current pitch, sol 4, is displayed as 392 hertz." +#: js/blocks/RhythmBlocks.js:829 +msgid "392 hertz" msgstr "" -#: js/PitchBlocks.js:410 -msgid "This block converts the pitch value of the last note played into different formats such as hertz, letter name, pitch number, et al." +#: js/blocks/RhythmBlocks.js:1119 +msgid "The Note block is a container for one or more Pitch blocks." msgstr "" -#: js/PitchBlocks.js:434 -msgid "alphabet" +#: js/blocks/RhythmBlocks.js:1121 +msgid "The Note block specifies the duration (note value) of its contents." msgstr "" -#: js/PitchBlocks.js:436 -#.TRANS: Translate as "alphabet class" -msgid "letter class" +#: js/blocks/RhythmBlocks.js:1128 +#: js/blocks/PitchBlocks.js:974 +#: js/blocks/PitchBlocks.js:1007 +#: js/blocks/ProgramBlocks.js:1186 +#: js/blocks/ProgramBlocks.js:1227 +#: js/widgets/status.js:190 +#: js/widgets/temperament.js:464 +#: js/widgets/temperament.js:486 +#: js/widgets/temperament.js:496 +#: js/widgets/temperament.js:617 +#: plugins/rodi.rtp:192 +#.TRANS: a musical note consisting of pitch and duration +msgid "note" msgstr "" -#: js/PitchBlocks.js:437 -msgid "solfege class" +#: js/blocks/RhythmBlocks.js:1130 +msgid "value2" msgstr "" -#: js/PitchBlocks.js:438 -msgid "staff y" +#: js/blocks/RhythmBlocks.js:1200 +msgid "define frequency" msgstr "" -#: js/PitchBlocks.js:439 -msgid "solfege syllable" +#: js/blocks/RhythmBlocks.js:1218 +#: js/widgets/temperament.js:787 +#: js/widgets/temperament.js:1587 +msgid "octave space" msgstr "" -#: js/PitchBlocks.js:440 -msgid "pitch class" +#: js/blocks/SensorsBlocks.js:36 +msgid "The Input block prompts for keyboard input." msgstr "" -#: js/PitchBlocks.js:441 -msgid "scalar class" +#: js/blocks/SensorsBlocks.js:46 +msgid "input" msgstr "" -#: js/PitchBlocks.js:443 -msgid "nth degree" +#: js/blocks/SensorsBlocks.js:64 +msgid "Input a value" msgstr "" -#: js/PitchBlocks.js:444 -msgid "pitch to shade" +#: js/blocks/SensorsBlocks.js:126 +msgid "input value" msgstr "" -#: js/PitchBlocks.js:445 -msgid "pitch to color" +#: js/blocks/SensorsBlocks.js:131 +msgid "The Input-value block stores the input." msgstr "" -#: js/PitchBlocks.js:629 -#: js/musickeyboard.js:565 -#.TRANS: MIDI is a technical standard for electronic music -msgid "MIDI" -msgstr "" +#: js/blocks/SensorsBlocks.js:238 +msgid "loudness" +msgstr "volume" -#: js/PitchBlocks.js:642 -#.TRANS: set an offset associated with the numeric piano keyboard mapping -msgid "set pitch number offset" +#: js/blocks/SensorsBlocks.js:245 +msgid "The Loudness block returns the volume detected by the microphone." msgstr "" -#: js/PitchBlocks.js:645 -msgid "The Set pitch number offset block is used to set the offset for mapping pitch numbers to pitch and octave." +#: js/blocks/SensorsBlocks.js:300 +msgid "click" msgstr "" -#: js/PitchBlocks.js:679 -#.TRANS: convert piano key number (1-88) to pitch -msgid "number to pitch" +#: js/blocks/SensorsBlocks.js:306 +msgid "The Click block triggers an event if a mouse has been clicked." msgstr "" -#: js/PitchBlocks.js:682 -msgid "The Number to pitch block will convert a pitch number to a pich name." +#: js/blocks/SensorsBlocks.js:313 +msgid "The Click block triggers an event if a turtle has been clicked." msgstr "" -#: js/PitchBlocks.js:715 -#.TRANS: convert piano key number (1-88) to octave -msgid "number to octave" +#: js/blocks/SensorsBlocks.js:342 +msgid "cursor over" msgstr "" -#: js/PitchBlocks.js:717 -msgid "The Number to octave block will convert a pitch number to an octave." +#: js/blocks/SensorsBlocks.js:387 +msgid "cursor out" msgstr "" -#: js/PitchBlocks.js:726 -msgid "y to pitch" +#: js/blocks/SensorsBlocks.js:433 +msgid "cursor button down" msgstr "" -#: js/PitchBlocks.js:729 -msgid "Y to pitch block will convert a staff y position to corresponding pitch notation." +#: js/blocks/SensorsBlocks.js:477 +msgid "cursor button up" msgstr "" -#: js/PitchBlocks.js:841 -msgid "accidental selector" +#: js/blocks/SensorsBlocks.js:521 +#: js/blocks/PenBlocks.js:48 +#: plugins/rodi.rtp:219 +msgid "blue" msgstr "" -#: js/PitchBlocks.js:844 -msgid "The Accidental selector block is used to choose between double-sharp, sharp, natural, flat, and double-flat." +#: js/blocks/SensorsBlocks.js:577 +#: js/blocks/PenBlocks.js:64 +#: plugins/rodi.rtp:218 +msgid "green" msgstr "" -#: js/PitchBlocks.js:858 -msgid "Pitch can be specified in terms of ni dha pa ma ga re sa." +#: js/blocks/SensorsBlocks.js:633 +#: js/blocks/PenBlocks.js:112 +#: plugins/rodi.rtp:217 +msgid "red" msgstr "" -#: js/PitchBlocks.js:872 -msgid "Pitch can be specified in terms of C D E F G A B." +#: js/blocks/SensorsBlocks.js:638 +msgid "The Get red block returns the red component of the pixel under the mouse." msgstr "" -#: js/PitchBlocks.js:883 -msgid "solfege" +#: js/blocks/SensorsBlocks.js:644 +msgid "The Get red block returns the red component of the pixel under the turtle." msgstr "" -#: js/PitchBlocks.js:886 -msgid "Pitch can be specified in terms of do re mi fa sol la ti." +#: js/blocks/SensorsBlocks.js:685 +#: plugins/rodi.rtp:216 +msgid "pixel color" msgstr "" -#: js/PitchBlocks.js:920 -msgid "The Invert block rotates any contained notes around a target note." +#: js/blocks/SensorsBlocks.js:690 +msgid "The Get pixel block returns the color of the pixel under the mouse." msgstr "" -#: js/PitchBlocks.js:927 -#.TRANS: pitch inversion rotates a pitch around another pitch -msgid "invert" +#: js/blocks/SensorsBlocks.js:696 +msgid "The Get pixel block returns the color of the pixel under the turtle." msgstr "" -#: js/PitchBlocks.js:929 -#: js/PitchBlocks.js:935 -#: js/PitchActions.js:727 -#: js/musicutils.js:726 -#: js/musicutils.js:902 -#.TRANS: invert based on even or odd number or musical scale -#.TRANS: even numbers -msgid "even" -msgstr "" +#: js/blocks/SensorsBlocks.js:758 +msgid "time" +msgstr "temps" -#: js/PitchBlocks.js:935 -#: js/PitchActions.js:729 -#: js/musicutils.js:728 -#: js/musicutils.js:903 -#.TRANS: odd numbers -msgid "odd" +#: js/blocks/SensorsBlocks.js:804 +msgid "cursor y" msgstr "" -#: js/PitchBlocks.js:935 -#: js/PitchActions.js:731 -#: js/musicutils.js:729 -#: js/musicutils.js:904 -msgid "scalar" +#: js/blocks/SensorsBlocks.js:809 +msgid "The Cursor Y block returns the vertical position of the mouse." msgstr "" -#: js/PitchBlocks.js:966 -#.TRANS: pitch inversion rotates a pitch around another pitch (odd number) -msgid "invert (odd)" +#: js/blocks/SensorsBlocks.js:845 +msgid "cursor x" msgstr "" -#: js/PitchBlocks.js:999 -#.TRANS: pitch inversion rotates a pitch around another pitch (even number) -msgid "invert (even)" +#: js/blocks/SensorsBlocks.js:850 +msgid "The Cursor X block returns the horizontal position of the mouse." msgstr "" -#: js/PitchBlocks.js:1020 -#.TRANS: register is the octave of the current pitch -msgid "register" -msgstr "" +#: js/blocks/SensorsBlocks.js:886 +msgid "mouse button" +msgstr "bouton de la souris" -#: js/PitchBlocks.js:1024 -msgid "The Register block provides an easy way to modify the register (octave) of the notes that follow it." +#: js/blocks/SensorsBlocks.js:888 +msgid "The Mouse-button block returns True if the mouse button is pressed." msgstr "" -#: js/PitchBlocks.js:1074 -msgid "The Semi-tone transposition block will shift the pitches contained inside Note blocks up (or down) by half steps." +#: js/blocks/SensorsBlocks.js:934 +msgid "to ASCII" msgstr "" -#: js/PitchBlocks.js:1076 -msgid "In the example shown above, sol is shifted up to sol#." +#: js/blocks/SensorsBlocks.js:938 +msgid "The To ASCII block converts numbers to letters." msgstr "" -#: js/PitchBlocks.js:1082 -#.TRANS: adjust the amount of shift (up or down) of a pitch -msgid "semi-tone transpose" +#: js/blocks/SensorsBlocks.js:1005 +msgid "The Keyboard block returns computer keyboard input." msgstr "" -#: js/PitchBlocks.js:1115 -msgid "The Transpose by Ratio block will shift the pitches contained inside Note blocks up (or down) by a ratio" +#: js/blocks/RhythmBlockPaletteBlocks.js:50 +#: js/blocks/RhythmBlockPaletteBlocks.js:233 +#.TRANS: rhythm block +#.TRANS: translate "rhythm1" as rhythm +msgid "rhythm1" msgstr "" -#: js/PitchBlocks.js:1121 -#.TRANS: adjust the amount of shift (up or down) of a pitch -msgid "transpose by ratio" +#: js/blocks/RhythmBlockPaletteBlocks.js:70 +#: js/blocks/RhythmBlockPaletteBlocks.js:252 +#: js/blocks/RhythmBlockPaletteBlocks.js:485 +#: js/blocks/RhythmBlockPaletteBlocks.js:554 +#: js/blocks/RhythmBlockPaletteBlocks.js:875 +msgid "number of notes" msgstr "" -#: js/PitchBlocks.js:1204 -#.TRANS: down sixth means the note is five scale degrees below current note -msgid "down sixth" +#: js/blocks/RhythmBlockPaletteBlocks.js:126 +msgid "polyphonic rhythm" msgstr "" -#: js/PitchBlocks.js:1223 -#.TRANS: down third means the note is two scale degrees below current note -msgid "down third" +#: js/blocks/RhythmBlockPaletteBlocks.js:219 +msgid "The Rhythm block is used to generate rhythm patterns." msgstr "" -#: js/PitchBlocks.js:1242 -#.TRANS: seventh means the note is the six scale degrees above current note -msgid "seventh" +#: js/blocks/RhythmBlockPaletteBlocks.js:280 +msgid "1/64 note" msgstr "" -#: js/PitchBlocks.js:1261 -#.TRANS: sixth means the note is the five scale degrees above current note -msgid "sixth" +#: js/blocks/RhythmBlockPaletteBlocks.js:304 +msgid "1/32 note" msgstr "" -#: js/PitchBlocks.js:1280 -#.TRANS: fifth means the note is the four scale degrees above current note -msgid "fifth" +#: js/blocks/RhythmBlockPaletteBlocks.js:332 +msgid "1/16 note" msgstr "" -#: js/PitchBlocks.js:1300 -#.TRANS: fourth means the note is three scale degrees above current note -msgid "fourth" +#: js/blocks/RhythmBlockPaletteBlocks.js:360 +msgid "eighth note" msgstr "" -#: js/PitchBlocks.js:1319 -#.TRANS: third means the note is two scale degrees above current note -msgid "third" +#: js/blocks/RhythmBlockPaletteBlocks.js:388 +msgid "quarter note" msgstr "" -#: js/PitchBlocks.js:1338 -#.TRANS: second means the note is one scale degree above current note -msgid "second" +#: js/blocks/RhythmBlockPaletteBlocks.js:416 +msgid "half note" msgstr "" -#: js/PitchBlocks.js:1379 -msgid "The Scalar transposition block will shift the pitches contained inside Note blocks up (or down) the scale." +#: js/blocks/RhythmBlockPaletteBlocks.js:444 +msgid "whole note" msgstr "" -#: js/PitchBlocks.js:1381 -msgid "In the example shown above, sol is shifted up to la." +#: js/blocks/RhythmBlockPaletteBlocks.js:482 +#: js/blocks/RhythmBlockPaletteBlocks.js:551 +#: js/blocks/RhythmBlockPaletteBlocks.js:602 +#.TRANS: A tuplet is a note value divided into irregular time values. +msgid "tuplet" msgstr "" -#: js/PitchBlocks.js:1388 -#.TRANS: adjust the amount of shift (up or down) of a pitch by musical scale (scalar) steps -msgid "scalar transpose" +#: js/blocks/RhythmBlockPaletteBlocks.js:768 +msgid "septuplet" msgstr "" -#: js/PitchBlocks.js:1423 -msgid "The Accidental block is used to create sharps and flats" +#: js/blocks/RhythmBlockPaletteBlocks.js:796 +msgid "quintuplet" msgstr "" -#: js/PitchBlocks.js:1430 -#.TRANS: An accidental is a modification to a pitch, e.g., sharp or flat. -msgid "accidental override" +#: js/blocks/RhythmBlockPaletteBlocks.js:824 +msgid "triplet" msgstr "" -#: js/PitchBlocks.js:1543 -msgid "The Hertz block (in combination with a Number block) will play a sound at the specified frequency." +#: js/blocks/RhythmBlockPaletteBlocks.js:851 +msgid "simple tuplet" msgstr "" -#: js/PitchBlocks.js:1633 -msgid "The Pitch Number block will play a pitch associated by its number, e.g. 0 for C and 7 for G." +#: js/blocks/RhythmBlockPaletteBlocks.js:861 +msgid "Tuplets are a collection of notes that get scaled to a specific duration." msgstr "" -#: js/PitchBlocks.js:1665 -#: js/PitchBlocks.js:1707 -#.TRANS: a numeric mapping of the notes in an octave based on the musical mode -#.TRANS: a numeric mapping of the notes in an octave based on the musical mode -msgid "nth modal pitch" +#: js/blocks/DrumBlocks.js:59 +msgid "The Noise name block is used to select a noise synthesizer." msgstr "" -#: js/PitchBlocks.js:1668 -msgid "n^th Modal Pitch takes the pattern of pitches in semitones for a mode and makes each point a degree of the mode," +#: js/blocks/DrumBlocks.js:102 +msgid "The Drum name block is used to select a drum." msgstr "" -#: js/PitchBlocks.js:1670 -msgid "starting from 1 and regardless of tonal framework (i.e. not always 8 notes in the octave)" +#: js/blocks/DrumBlocks.js:146 +msgid "The Effects name block is used to select a sound effect." msgstr "" -#: js/PitchBlocks.js:1711 -msgid "N^th Modal Pitch takes a number as an input as the n^th degree for the given mode. 0 is the first position, 1 is the second, -1 is the note before the first etc." +#: js/blocks/DrumBlocks.js:163 +msgid "noise" msgstr "" -#: js/PitchBlocks.js:1713 -msgid "The pitches change according to the mode specified without any need for respellings." +#: js/blocks/DrumBlocks.js:177 +msgid "The Play noise block will generate white, pink, or brown noise." msgstr "" -#: js/PitchBlocks.js:1752 -msgid "Scale Degree is a common convention in music. Scale Degree offers seven possible positions in the scale (1-7) and can be modified via accidentals." +#: js/blocks/DrumBlocks.js:317 +msgid "Replace every instance of a pitch with a drum sound." msgstr "" -#: js/PitchBlocks.js:1754 -msgid "Scale Degree 1 is always the first pitch in a given scale, regardless of octave." +#: js/blocks/DrumBlocks.js:328 +#.TRANS: map a pitch to a drum sound +msgid "map pitch to drum" msgstr "" -#: js/PitchBlocks.js:1776 -#.TRANS: step some number of notes in current musical scale -msgid "scalar step" +#: js/blocks/DrumBlocks.js:395 +msgid "In the example above, a kick drum sound will be played instead of sol." msgstr "" -#: js/PitchBlocks.js:1781 -msgid "The Scalar Step block (in combination with a Number block) will play the next pitch in a scale," +#: js/blocks/DrumBlocks.js:407 +#.TRANS: set the current drum sound for playback +msgid "set drum" msgstr "" -#: js/PitchBlocks.js:1783 -msgid "eg if the last note played was sol, Scalar Step 1 will play la." +#: js/blocks/DrumBlocks.js:451 +msgid "sound effect" msgstr "" -#: js/PitchBlocks.js:1818 -msgid "The Pitch block specifies the pitch name and octave of a note that together determine the frequency of the note." +#: js/blocks/DrumBlocks.js:489 +msgid "You can use multiple Drum blocks within a Note block." msgstr "" -#: js/GraphicsBlocks.js:46 -#: js/DictActions.js:77 -#: js/DictActions.js:155 -#: js/DictActions.js:189 +#: js/blocks/GraphicsBlocks.js:46 +#: js/turtleactions/DictActions.js:77 +#: js/turtleactions/DictActions.js:144 +#: js/turtleactions/DictActions.js:173 msgid "heading" msgstr "le cap" -#: js/GraphicsBlocks.js:56 +#: js/blocks/GraphicsBlocks.js:56 msgid "The Heading block returns the orientation of the mouse." msgstr "" -#: js/GraphicsBlocks.js:62 +#: js/blocks/GraphicsBlocks.js:62 msgid "The Heading block returns the orientation of the turtle." msgstr "" -#: js/GraphicsBlocks.js:133 +#: js/blocks/GraphicsBlocks.js:133 msgid "The Y block returns the vertical position of the mouse." msgstr "" -#: js/GraphicsBlocks.js:140 +#: js/blocks/GraphicsBlocks.js:140 msgid "The Y block returns the vertical position of the turtle." msgstr "" -#: js/GraphicsBlocks.js:149 +#: js/blocks/GraphicsBlocks.js:149 msgid "y3" msgstr "" -#: js/GraphicsBlocks.js:219 +#: js/blocks/GraphicsBlocks.js:219 msgid "The X block returns the horizontal position of the mouse." msgstr "" -#: js/GraphicsBlocks.js:226 +#: js/blocks/GraphicsBlocks.js:226 msgid "The X block returns the horizontal position of the turtle." msgstr "" -#: js/GraphicsBlocks.js:235 +#: js/blocks/GraphicsBlocks.js:235 msgid "x3" msgstr "" -#: js/GraphicsBlocks.js:295 +#: js/blocks/GraphicsBlocks.js:295 msgid "scroll xy" msgstr "" -#: js/GraphicsBlocks.js:303 +#: js/blocks/GraphicsBlocks.js:303 msgid "The Scroll XY block moves the canvas." msgstr "" -#: js/GraphicsBlocks.js:313 +#: js/blocks/GraphicsBlocks.js:313 msgid "x2" msgstr "" -#: js/GraphicsBlocks.js:313 +#: js/blocks/GraphicsBlocks.js:313 msgid "y2" msgstr "" -#: js/GraphicsBlocks.js:373 -#: js/temperament.js:213 -#: js/temperament.js:241 +#: js/blocks/GraphicsBlocks.js:373 +#: js/widgets/temperament.js:319 +#: js/widgets/temperament.js:347 msgid "clear" msgstr "efface" -#: js/GraphicsBlocks.js:426 +#: js/blocks/GraphicsBlocks.js:426 msgid "The Control-point 2 block sets the second control point for the Bezier curve." msgstr "" -#: js/GraphicsBlocks.js:433 +#: js/blocks/GraphicsBlocks.js:433 msgid "control point 2" msgstr "" -#: js/GraphicsBlocks.js:436 -#: js/GraphicsBlocks.js:487 -#: js/GraphicsBlocks.js:534 -#: js/GraphicsBlocks.js:750 +#: js/blocks/GraphicsBlocks.js:436 +#: js/blocks/GraphicsBlocks.js:487 +#: js/blocks/GraphicsBlocks.js:534 +#: js/blocks/GraphicsBlocks.js:750 msgid "x1" msgstr "" -#: js/GraphicsBlocks.js:436 -#: js/GraphicsBlocks.js:487 -#: js/GraphicsBlocks.js:534 -#: js/GraphicsBlocks.js:750 +#: js/blocks/GraphicsBlocks.js:436 +#: js/blocks/GraphicsBlocks.js:487 +#: js/blocks/GraphicsBlocks.js:534 +#: js/blocks/GraphicsBlocks.js:750 msgid "y1" msgstr "" -#: js/GraphicsBlocks.js:477 +#: js/blocks/GraphicsBlocks.js:477 msgid "The Control-point 1 block sets the first control point for the Bezier curve." msgstr "" -#: js/GraphicsBlocks.js:484 +#: js/blocks/GraphicsBlocks.js:484 msgid "control point 1" msgstr "" -#: js/GraphicsBlocks.js:527 +#: js/blocks/GraphicsBlocks.js:527 msgid "The Bezier block draws a Bezier curve." msgstr "" -#: js/GraphicsBlocks.js:531 +#: js/blocks/GraphicsBlocks.js:531 msgid "bezier" msgstr "" -#: js/GraphicsBlocks.js:592 +#: js/blocks/GraphicsBlocks.js:592 msgid "The Arc block moves the turtle in an arc." msgstr "" -#: js/GraphicsBlocks.js:600 +#: js/blocks/GraphicsBlocks.js:600 msgid "arc" msgstr "arc" -#: js/GraphicsBlocks.js:603 +#: js/blocks/GraphicsBlocks.js:603 msgid "angle" msgstr "angle" -#: js/GraphicsBlocks.js:603 +#: js/blocks/GraphicsBlocks.js:603 msgid "radius" msgstr "rayon" -#: js/GraphicsBlocks.js:620 -#: js/GraphicsBlocks.js:767 -#: js/GraphicsBlocks.js:1010 -#: js/GraphicsBlocks.js:1093 +#: js/blocks/GraphicsBlocks.js:620 +#: js/blocks/GraphicsBlocks.js:767 +#: js/blocks/GraphicsBlocks.js:1010 +#: js/blocks/GraphicsBlocks.js:1093 msgid "Value must be within -5000 to 5000 when Wrap Mode is off." msgstr "" -#: js/GraphicsBlocks.js:622 -#: js/GraphicsBlocks.js:769 -#: js/GraphicsBlocks.js:1012 -#: js/GraphicsBlocks.js:1095 +#: js/blocks/GraphicsBlocks.js:622 +#: js/blocks/GraphicsBlocks.js:769 +#: js/blocks/GraphicsBlocks.js:1012 +#: js/blocks/GraphicsBlocks.js:1095 msgid "Value must be within -20000 to 20000 when Wrap Mode is on." msgstr "" -#: js/GraphicsBlocks.js:660 +#: js/blocks/GraphicsBlocks.js:660 msgid "set heading" msgstr "fixe le cap" -#: js/GraphicsBlocks.js:673 +#: js/blocks/GraphicsBlocks.js:673 msgid "The Set heading block sets the heading of the turtle." msgstr "" -#: js/GraphicsBlocks.js:733 +#: js/blocks/GraphicsBlocks.js:733 msgid "The Set XY block moves the mouse to a specific position on the screen." msgstr "" -#: js/GraphicsBlocks.js:739 +#: js/blocks/GraphicsBlocks.js:739 msgid "The Set XY block moves the turtle to a specific position on the screen." msgstr "" -#: js/GraphicsBlocks.js:747 +#: js/blocks/GraphicsBlocks.js:747 msgid "set xy" msgstr "fixe xy" -#: js/GraphicsBlocks.js:819 +#: js/blocks/GraphicsBlocks.js:819 msgid "The Right block turns the mouse to the right." msgstr "" -#: js/GraphicsBlocks.js:826 +#: js/blocks/GraphicsBlocks.js:826 msgid "The Right block turns the turtle to the right." msgstr "" -#: js/GraphicsBlocks.js:835 +#: js/blocks/GraphicsBlocks.js:835 msgid "right1" msgstr "" -#: js/GraphicsBlocks.js:835 +#: js/blocks/GraphicsBlocks.js:835 #: plugins/rodi.rtp:77 #: plugins/rodi.rtp:340 #: plugins/rodi.rtp:375 msgid "right" msgstr "droite" -#: js/GraphicsBlocks.js:899 +#: js/blocks/GraphicsBlocks.js:899 msgid "The Left block turns the mouse to the left." msgstr "" -#: js/GraphicsBlocks.js:906 +#: js/blocks/GraphicsBlocks.js:906 msgid "The Left block turns the turtle to the left." msgstr "" -#: js/GraphicsBlocks.js:915 +#: js/blocks/GraphicsBlocks.js:915 msgid "left1" msgstr "" -#: js/GraphicsBlocks.js:915 +#: js/blocks/GraphicsBlocks.js:915 #: plugins/rodi.rtp:79 #: plugins/rodi.rtp:339 #: plugins/rodi.rtp:362 msgid "left" msgstr "gauche" -#: js/GraphicsBlocks.js:967 -#: js/temperament.js:734 -#: js/temperament.js:933 +#: js/blocks/GraphicsBlocks.js:967 +#: js/widgets/temperament.js:875 +#: js/widgets/temperament.js:1078 #: plugins/rodi.rtp:69 #: plugins/rodi.rtp:387 msgid "back" msgstr "recule" -#: js/GraphicsBlocks.js:976 +#: js/blocks/GraphicsBlocks.js:976 msgid "The Back block moves the mouse backward." msgstr "" -#: js/GraphicsBlocks.js:983 +#: js/blocks/GraphicsBlocks.js:983 msgid "The Back block moves the turtle backward." msgstr "" -#: js/GraphicsBlocks.js:1050 +#: js/blocks/GraphicsBlocks.js:1050 #: plugins/rodi.rtp:71 #: plugins/rodi.rtp:400 msgid "forward" msgstr "avance" -#: js/GraphicsBlocks.js:1059 +#: js/blocks/GraphicsBlocks.js:1059 msgid "The Forward block moves the mouse forward." msgstr "" -#: js/GraphicsBlocks.js:1066 +#: js/blocks/GraphicsBlocks.js:1066 msgid "The Forward block moves the turtle forward." msgstr "" -#: js/GraphicsBlocks.js:1154 -#: js/GraphicsBlocks.js:1172 +#: js/blocks/GraphicsBlocks.js:1154 +#: js/blocks/GraphicsBlocks.js:1172 msgid "wrap" msgstr "" -#: js/OrnamentBlocks.js:32 -msgid "staccato factor" -msgstr "" - -#: js/OrnamentBlocks.js:108 -msgid "slur factor" -msgstr "" - -#: js/OrnamentBlocks.js:217 -#: js/OrnamentBlocks.js:309 -#.TRANS: the neighbor refers to a neighboring note, e.g., D is a neighbor of C -msgid "neighbor" -msgstr "" - -#: js/OrnamentBlocks.js:293 -msgid "The Neighbor block rapidly switches between neighboring pitches." -msgstr "" - -#: js/OrnamentBlocks.js:364 -msgid "glide" -msgstr "" - -#: js/OrnamentBlocks.js:479 -#: js/OrnamentBlocks.js:643 -msgid "slur" -msgstr "" - -#: js/OrnamentBlocks.js:558 -#: js/OrnamentBlocks.js:710 -#.TRANS: play each note sharply detached from the others -msgid "staccato" -msgstr "" - -#: js/PenBlocks.js:24 +#: js/blocks/PenBlocks.js:30 msgid "purple" msgstr "" -#: js/PenBlocks.js:37 -#: js/SensorsBlocks.js:521 -#: plugins/rodi.rtp:219 -msgid "blue" -msgstr "" - -#: js/PenBlocks.js:50 -#: js/SensorsBlocks.js:577 -#: plugins/rodi.rtp:218 -msgid "green" -msgstr "" - -#: js/PenBlocks.js:63 +#: js/blocks/PenBlocks.js:80 msgid "yellow" msgstr "" -#: js/PenBlocks.js:76 +#: js/blocks/PenBlocks.js:96 #: plugins/nutrition.rtp:164 msgid "orange" msgstr "" -#: js/PenBlocks.js:89 -#: js/SensorsBlocks.js:633 -#: plugins/rodi.rtp:217 -msgid "red" -msgstr "" - -#: js/PenBlocks.js:102 +#: js/blocks/PenBlocks.js:128 msgid "white" msgstr "" -#: js/PenBlocks.js:115 +#: js/blocks/PenBlocks.js:144 msgid "black" msgstr "" -#: js/PenBlocks.js:128 +#: js/blocks/PenBlocks.js:163 msgid "begin fill" msgstr "commence le remplissage" -#: js/PenBlocks.js:143 +#: js/blocks/PenBlocks.js:190 msgid "end fill" msgstr "arrête le remplissage" -#: js/PenBlocks.js:159 -#: js/PenBlocks.js:386 +#: js/blocks/PenBlocks.js:212 +#: js/blocks/PenBlocks.js:560 #.TRANS: set the background color msgid "background" msgstr "le fond" -#: js/PenBlocks.js:206 -#: js/DictActions.js:71 -#: js/DictActions.js:149 -#: js/DictActions.js:186 +#: js/blocks/PenBlocks.js:274 +#: js/turtleactions/DictActions.js:71 +#: js/turtleactions/DictActions.js:138 +#: js/turtleactions/DictActions.js:170 msgid "grey" msgstr "gris" -#: js/PenBlocks.js:210 +#: js/blocks/PenBlocks.js:282 msgid "The Grey block returns the current pen grey value." msgstr "" -#: js/PenBlocks.js:243 -#: js/DictActions.js:69 -#: js/DictActions.js:147 -#: js/DictActions.js:185 +#: js/blocks/PenBlocks.js:340 +#: js/turtleactions/DictActions.js:69 +#: js/turtleactions/DictActions.js:136 +#: js/turtleactions/DictActions.js:169 msgid "shade" msgstr "l'ombre" -#: js/PenBlocks.js:247 +#: js/blocks/PenBlocks.js:347 msgid "The Shade block returns the current pen shade value." msgstr "" -#: js/PenBlocks.js:280 -#: js/DictActions.js:67 -#: js/DictActions.js:145 -#: js/DictActions.js:184 +#: js/blocks/PenBlocks.js:405 +#: js/turtleactions/DictActions.js:67 +#: js/turtleactions/DictActions.js:134 +#: js/turtleactions/DictActions.js:168 msgid "color" msgstr "la couleur" -#: js/PenBlocks.js:285 +#: js/blocks/PenBlocks.js:415 msgid "The Color block returns the current pen color." msgstr "" -#: js/PenBlocks.js:318 -#: js/DictActions.js:73 -#: js/DictActions.js:151 -#: js/DictActions.js:187 +#: js/blocks/PenBlocks.js:470 +#: js/turtleactions/DictActions.js:73 +#: js/turtleactions/DictActions.js:140 +#: js/turtleactions/DictActions.js:171 msgid "pen size" msgstr "épaisseur du trait" -#: js/PenBlocks.js:322 +#: js/blocks/PenBlocks.js:474 msgid "The Pen size block returns the current pen size value." msgstr "" -#: js/PenBlocks.js:355 +#: js/blocks/PenBlocks.js:513 msgid "set font" msgstr "" -#: js/PenBlocks.js:358 +#: js/blocks/PenBlocks.js:518 msgid "The Set font block sets the font used by the Show block." msgstr "" -#: js/PenBlocks.js:391 +#: js/blocks/PenBlocks.js:567 msgid "The Background block sets the window background color." msgstr "" -#: js/PenBlocks.js:408 +#: js/blocks/PenBlocks.js:598 msgid "The Hollow line block creates a line with a hollow center." msgstr "" -#: js/PenBlocks.js:415 +#: js/blocks/PenBlocks.js:606 #.TRANS: draw a line logo has a hollow space down its center msgid "hollow line" msgstr "" -#: js/PenBlocks.js:462 +#: js/blocks/PenBlocks.js:675 msgid "The Fill block fills in a shape with a color." msgstr "" -#: js/PenBlocks.js:470 +#: js/blocks/PenBlocks.js:684 #.TRANS: fill in as a solid color msgid "fill" msgstr "" -#: js/PenBlocks.js:527 +#: js/blocks/PenBlocks.js:761 #.TRANS: raise up the pen so logo it does not draw when it is moved msgid "pen up" msgstr "crayon levé" -#: js/PenBlocks.js:532 +#: js/blocks/PenBlocks.js:768 msgid "The Pen-up block raises the pen so that it does not draw." msgstr "" -#: js/PenBlocks.js:552 +#: js/blocks/PenBlocks.js:802 #.TRANS: put down the pen so logo it draws when it is moved msgid "pen down" msgstr "crayon abaissé" -#: js/PenBlocks.js:557 +#: js/blocks/PenBlocks.js:810 msgid "The Pen-down block lowers the pen so that it draws." msgstr "" -#: js/PenBlocks.js:577 +#: js/blocks/PenBlocks.js:844 #.TRANS: set the width of the line drawn by the pen msgid "set pen size" msgstr "fixe l'épaisseur" -#: js/PenBlocks.js:583 +#: js/blocks/PenBlocks.js:854 msgid "The Set-pen-size block changes the size of the pen." msgstr "" -#: js/PenBlocks.js:623 +#: js/blocks/PenBlocks.js:913 #.TRANS: set degree of translucence of the pen color msgid "set translucency" msgstr "" -#: js/PenBlocks.js:627 +#: js/blocks/PenBlocks.js:921 msgid "The Set translucency block changes the opacity of the pen." msgstr "" -#: js/PenBlocks.js:668 +#: js/blocks/PenBlocks.js:981 msgid "set hue" msgstr "fixe la teinte" -#: js/PenBlocks.js:672 +#: js/blocks/PenBlocks.js:989 msgid "The Set hue block changes the color of the pen." msgstr "" -#: js/PenBlocks.js:711 +#: js/blocks/PenBlocks.js:1047 msgid "set shade" msgstr "fixe l'ombre" -#: js/PenBlocks.js:717 +#: js/blocks/PenBlocks.js:1057 msgid "The Set-shade block changes the pen color from dark to light." msgstr "" -#: js/PenBlocks.js:757 +#: js/blocks/PenBlocks.js:1111 #.TRANS: set the level of vividness of the pen color msgid "set grey" msgstr "fixe gris" -#: js/PenBlocks.js:761 +#: js/blocks/PenBlocks.js:1119 msgid "The Set grey block changes the vividness of the pen color." msgstr "" -#: js/PenBlocks.js:800 +#: js/blocks/PenBlocks.js:1172 msgid "set color" msgstr "fixe la couleur" -#: js/PenBlocks.js:806 +#: js/blocks/PenBlocks.js:1182 msgid "The Set-color block changes the pen color." msgstr "" -#: js/VolumeBlocks.js:35 -msgid "synth volume" -msgstr "" - -#: js/VolumeBlocks.js:39 -msgid "The Synth volume block returns the current volume of the current synthesizer." -msgstr "" - -#: js/VolumeBlocks.js:47 -#: js/musicutils.js:730 -#: js/synthutils.js:56 -#.TRANS: musical instrument -msgid "piano" -msgstr "" - -#: js/VolumeBlocks.js:105 -msgid "master volume" -msgstr "" - -#: js/VolumeBlocks.js:109 -msgid "The Master volume block returns the master volume." -msgstr "" - -#: js/VolumeBlocks.js:355 -#: js/VolumeBlocks.js:524 -msgid "set synth volume" -msgstr "" - -#: js/VolumeBlocks.js:362 -#: js/VolumeBlocks.js:545 -msgid "synth" -msgstr "" - -#: js/VolumeBlocks.js:403 -#: js/VolumeBlocks.js:577 -#: js/VolumeBlocks.js:740 -#: js/VolumeActions.js:173 -msgid "Setting volume to 0." -msgstr "" - -#: js/VolumeBlocks.js:440 -msgid "Synth not found" -msgstr "" - -#: js/VolumeBlocks.js:494 -msgid "set drum volume" -msgstr "" - -#: js/VolumeBlocks.js:530 -msgid "The Set synth volume block will change the volume of a particular synth," -msgstr "" - -#: js/VolumeBlocks.js:532 -msgid "eg guitar violin snare drum etc." -msgstr "" - -#: js/VolumeBlocks.js:534 -msgid "The default volume is 50." -msgstr "" - -#: js/VolumeBlocks.js:536 -msgid "The range is 0 for silence to 100 for full volume." -msgstr "" - -#: js/VolumeBlocks.js:597 -msgid "set panning" -msgstr "" - -#: js/VolumeBlocks.js:603 -msgid "The Set Panning block sets the panning for all synthesizers." -msgstr "" - -#: js/VolumeBlocks.js:625 -msgid "Warning: Sound is coming out from only the left or right side." -msgstr "" - -#: js/VolumeBlocks.js:647 -#: js/VolumeBlocks.js:695 -msgid "set master volume" -msgstr "" - -#: js/VolumeBlocks.js:653 -msgid "The Set master volume block sets the volume for all synthesizers." -msgstr "" - -#: js/VolumeBlocks.js:784 -msgid "The Set relative volume block changes the volume of the contained notes." -msgstr "" - -#: js/VolumeBlocks.js:791 -msgid "set relative volume" -msgstr "" - -#: js/VolumeBlocks.js:857 -msgid "decrescendo" -msgstr "" - -#: js/VolumeBlocks.js:921 -msgid "crescendo" -msgstr "" - -#: js/ToneBlocks.js:34 -msgid "oscillator" -msgstr "" - -#: js/ToneBlocks.js:44 -#: js/timbre.js:1562 -#.TRANS: Partials refers to the number of sine waves combined into the sound. -msgid "partials" -msgstr "" - -#: js/ToneBlocks.js:76 -msgid "You are adding multiple oscillator blocks." -msgstr "" - -#: js/ToneBlocks.js:144 -#: js/timbre.js:1225 -#.TRANS: a duo synthesizer combines a synth with a sequencer -msgid "duo synth" -msgstr "" - -#: js/ToneBlocks.js:149 -msgid "The Duo synth block is a duo-frequency modulator used to define a timbre." -msgstr "" - -#: js/ToneBlocks.js:157 -#: js/timbre.js:1476 -msgid "vibrato rate" -msgstr "" - -#: js/ToneBlocks.js:157 -msgid "vibrato intensity" +#: js/blocks/PitchBlocks.js:141 +#.TRANS: musical transposition (adjustment of pitch up or down) +msgid "transposition" msgstr "" -#: js/ToneBlocks.js:185 -#: js/timbre.js:1221 -#.TRANS: AM (amplitude modulation) synthesizer -msgid "AM synth" +#: js/blocks/PitchBlocks.js:168 +#.TRANS: step down one note in current musical scale +msgid "scalar step down" msgstr "" -#: js/ToneBlocks.js:189 -msgid "The AM synth block is an amplitude modulator used to define a timbre." +#: js/blocks/PitchBlocks.js:172 +msgid "The Scalar step down block returns the number of semi-tones down to the previous note in the current key and mode." msgstr "" -#: js/ToneBlocks.js:224 -#: js/timbre.js:1223 -#.TRANS: FM (frequency modulation) synthesizer -msgid "FM synth" +#: js/blocks/PitchBlocks.js:190 +#.TRANS: step up one note in current musical scale +msgid "scalar step up" msgstr "" -#: js/ToneBlocks.js:228 -msgid "The FM synth block is a frequency modulator used to define a timbre." +#: js/blocks/PitchBlocks.js:194 +msgid "The Scalar step up block returns the number of semi-tones up to the next note in the current key and mode." msgstr "" -#: js/ToneBlocks.js:262 -msgid "partial" +#: js/blocks/PitchBlocks.js:212 +#.TRANS: the change measured in half-steps between the current pitch and the previous pitch +msgid "change in pitch" msgstr "" -#: js/ToneBlocks.js:265 -msgid "The Partial block is used to specify a weight for a specific partial harmonic." +#: js/blocks/PitchBlocks.js:216 +msgid "The Change in pitch block is the difference (in half steps) between the current pitch being played and the previous pitch played." msgstr "" -#: js/ToneBlocks.js:284 -#.TRANS: partials are weighted components in a harmonic series -msgid "Partial weight must be between 0 and 1." +#: js/blocks/PitchBlocks.js:243 +#.TRANS: the change measured in scale-steps between the current pitch and the previous pitch +msgid "scalar change in pitch" msgstr "" -#: js/ToneBlocks.js:297 -#.TRANS: partials are weighted components in a harmonic series -msgid "Partial block should be used inside of a Weighted-partials block." +#: js/blocks/PitchBlocks.js:250 +#: js/blocks/PitchBlocks.js:432 +#: js/blocks/PitchBlocks.js:1667 +#: js/turtleactions/DictActions.js:89 +#: js/widgets/temperament.js:610 +#: js/widgets/temperament.js:614 +#: js/widgets/temperament.js:855 +#.TRANS: convert current note to piano key (1-88) +#.TRANS: a mapping of pitch to the 88 piano keys +msgid "pitch number" msgstr "" -#: js/ToneBlocks.js:325 -#.TRANS: partials are weighted components in a harmonic series -msgid "weighted partials" +#: js/blocks/PitchBlocks.js:256 +msgid "The Pitch number block is the value of the pitch of the note currently being played." msgstr "" -#: js/ToneBlocks.js:383 -msgid "The Harmonic block will add harmonics to the contained notes." +#: js/blocks/PitchBlocks.js:329 +#: js/blocks/PitchBlocks.js:433 +#.TRANS: the current pitch expressed in Hertz +msgid "pitch in hertz" msgstr "" -#: js/ToneBlocks.js:390 -#.TRANS: A harmonic is an overtone. -msgid "harmonic" +#: js/blocks/PitchBlocks.js:334 +msgid "The Pitch in Hertz block is the value in Hertz of the pitch of the note currently being played." msgstr "" -#: js/ToneBlocks.js:431 -msgid "The Distortion block adds distortion to the pitch." +#: js/blocks/PitchBlocks.js:367 +#: js/turtleactions/DictActions.js:87 +msgid "current pitch" msgstr "" -#: js/ToneBlocks.js:438 -#: js/timbre.js:2100 -#.TRANS: distortion is an alteration in the sound -msgid "distortion" +#: js/blocks/PitchBlocks.js:373 +msgid "The Current Pitch block is used with the Pitch Converter block. In the example above, current pitch, sol 4, is displayed as 392 hertz." msgstr "" -#: js/ToneBlocks.js:487 -msgid "The Tremolo block adds a wavering effect." +#: js/blocks/PitchBlocks.js:410 +msgid "This block converts the pitch value of the last note played into different formats such as hertz, letter name, pitch number, et al." msgstr "" -#: js/ToneBlocks.js:495 -#: js/timbre.js:2092 -#.TRANS: a wavering effect in a musical tone -msgid "tremolo" +#: js/blocks/PitchBlocks.js:434 +msgid "alphabet" msgstr "" -#: js/ToneBlocks.js:500 -#: js/ToneBlocks.js:569 -#: js/ToneBlocks.js:630 -#: js/ToneBlocks.js:689 -#: js/timbre.js:2134 -#: js/timbre.js:2222 -#: js/timbre.js:2317 -#: js/timbre.js:2419 -#.TRANS: rate at which tremolo wavers -msgid "rate" +#: js/blocks/PitchBlocks.js:436 +#.TRANS: Translate as "alphabet class" +msgid "letter class" msgstr "" -#: js/ToneBlocks.js:502 -#: js/ToneBlocks.js:630 -#: js/timbre.js:2137 -#: js/timbre.js:2328 -#.TRANS: amplitude of tremolo waver -msgid "depth" +#: js/blocks/PitchBlocks.js:437 +msgid "solfege class" msgstr "" -#: js/ToneBlocks.js:559 -msgid "The Phaser block adds a sweeping sound." +#: js/blocks/PitchBlocks.js:438 +msgid "staff y" msgstr "" -#: js/ToneBlocks.js:566 -#: js/timbre.js:2098 -#.TRANS: alter the phase of the sound -msgid "phaser" +#: js/blocks/PitchBlocks.js:439 +msgid "solfege syllable" msgstr "" -#: js/ToneBlocks.js:569 -#: js/timbre.js:2422 -msgid "octaves" +#: js/blocks/PitchBlocks.js:440 +msgid "pitch class" msgstr "" -#: js/ToneBlocks.js:569 -#: js/timbre.js:2425 -msgid "base frequency" +#: js/blocks/PitchBlocks.js:441 +msgid "scalar class" msgstr "" -#: js/ToneBlocks.js:619 -msgid "The Chorus block adds a chorus effect." +#: js/blocks/PitchBlocks.js:443 +msgid "nth degree" msgstr "" -#: js/ToneBlocks.js:627 -#: js/timbre.js:2096 -#.TRANS: musical effect to simulate a choral sound -msgid "chorus" +#: js/blocks/PitchBlocks.js:444 +msgid "pitch to shade" msgstr "" -#: js/ToneBlocks.js:630 -msgid "delay" +#: js/blocks/PitchBlocks.js:445 +msgid "pitch to color" msgstr "" -#: js/ToneBlocks.js:678 -msgid "The Vibrato block adds a rapid, slight variation in pitch." +#: js/blocks/PitchBlocks.js:629 +#: js/widgets/musickeyboard.js:735 +#.TRANS: MIDI is a technical standard for electronic music +msgid "MIDI" msgstr "" -#: js/ToneBlocks.js:686 -#: js/timbre.js:2094 -#.TRANS: a rapid, slight variation in pitch -msgid "vibrato" +#: js/blocks/PitchBlocks.js:642 +#.TRANS: set an offset associated with the numeric piano keyboard mapping +msgid "set pitch number offset" msgstr "" -#: js/ToneBlocks.js:689 -#: js/timbre.js:2221 -msgid "intensity" +#: js/blocks/PitchBlocks.js:645 +msgid "The Set pitch number offset block is used to set the offset for mapping pitch numbers to pitch and octave." msgstr "" -#: js/ToneBlocks.js:733 -#.TRANS: select synthesizer -msgid "set synth" +#: js/blocks/PitchBlocks.js:679 +#.TRANS: convert piano key number (1-88) to pitch +msgid "number to pitch" msgstr "" -#: js/ToneBlocks.js:804 -msgid "synth name" +#: js/blocks/PitchBlocks.js:682 +msgid "The Number to pitch block will convert a pitch number to a pich name." msgstr "" -#: js/ToneBlocks.js:842 -msgid "set default instrument" +#: js/blocks/PitchBlocks.js:715 +#.TRANS: convert piano key number (1-88) to octave +msgid "number to octave" msgstr "" -#: js/ToneBlocks.js:895 -#: js/ToneBlocks.js:943 -#.TRANS: set the characteristics of a custom instrument -msgid "set instrument" +#: js/blocks/PitchBlocks.js:717 +msgid "The Number to octave block will convert a pitch number to an octave." msgstr "" -#: js/ToneBlocks.js:898 -#: js/ToneBlocks.js:926 -#: js/ToneBlocks.js:932 -msgid "The Set instrument block selects a voice for the synthesizer," +#: js/blocks/PitchBlocks.js:726 +msgid "y to pitch" msgstr "" -#: js/ToneBlocks.js:900 -#: js/ToneBlocks.js:934 -msgid "eg guitar piano violin or cello." +#: js/blocks/PitchBlocks.js:729 +msgid "Y to pitch block will convert a staff y position to corresponding pitch notation." msgstr "" -#: js/ToneBlocks.js:1015 -msgid "Import a sound file to use as an instrument and set its pitch center." +#: js/blocks/PitchBlocks.js:841 +msgid "accidental selector" msgstr "" -#: js/ToneBlocks.js:1110 -msgid "Upload a sound file to connect with the sample block." +#: js/blocks/PitchBlocks.js:844 +msgid "The Accidental selector block is used to choose between double-sharp, sharp, natural, flat, and double-flat." msgstr "" -#: js/MeterBlocks.js:34 -#.TRANS: musical meter (time signature), e.g., 4:4 -msgid "current meter" +#: js/blocks/PitchBlocks.js:858 +msgid "Pitch can be specified in terms of ni dha pa ma ga re sa." msgstr "" -#: js/MeterBlocks.js:85 -#.TRANS: number of beats per minute -msgid "beat factor" +#: js/blocks/PitchBlocks.js:872 +msgid "Pitch can be specified in terms of C D E F G A B." msgstr "" -#: js/MeterBlocks.js:161 -msgid "The Beats per minute block returns the current beats per minute." +#: js/blocks/PitchBlocks.js:884 +msgid "solfege" msgstr "" -#: js/MeterBlocks.js:169 -#: js/status.js:152 -#.TRANS: number of beats played per minute -msgid "beats per minute2" +#: js/blocks/PitchBlocks.js:887 +msgid "Pitch can be specified in terms of do re mi fa sol la ti." msgstr "" -#: js/MeterBlocks.js:169 -#: js/MeterBlocks.js:1056 -#: js/MeterBlocks.js:1133 -#: js/MeterBlocks.js:1211 -#.TRANS: sets tempo by defining a beat and beats per minute -msgid "beats per minute" +#: js/blocks/PitchBlocks.js:922 +msgid "The Invert block rotates any contained notes around a target note." msgstr "" -#: js/MeterBlocks.js:233 -#.TRANS: count of current musical measure in meter -msgid "measure count" +#: js/blocks/PitchBlocks.js:929 +#.TRANS: pitch inversion rotates a pitch around another pitch +msgid "invert" msgstr "" -#: js/MeterBlocks.js:241 -msgid "The Measure count block returns the current measure." +#: js/blocks/PitchBlocks.js:968 +#.TRANS: pitch inversion rotates a pitch around another pitch (odd number) +msgid "invert (odd)" msgstr "" -#: js/MeterBlocks.js:290 -#.TRANS: count of current beat in the meter -msgid "beat count" +#: js/blocks/PitchBlocks.js:1001 +#.TRANS: pitch inversion rotates a pitch around another pitch (even number) +msgid "invert (even)" msgstr "" -#: js/MeterBlocks.js:300 -#: js/MeterBlocks.js:311 -#: js/MeterBlocks.js:565 -#: js/MeterBlocks.js:576 -msgid "The Beat count block is the number of the current beat," +#: js/blocks/PitchBlocks.js:1022 +#.TRANS: register is the octave of the current pitch +msgid "register" msgstr "" -#: js/MeterBlocks.js:313 -#: js/MeterBlocks.js:578 -msgid "eg 1, 2, 3, or 4." +#: js/blocks/PitchBlocks.js:1026 +msgid "The Register block provides an easy way to modify the register (octave) of the notes that follow it." msgstr "" -#: js/MeterBlocks.js:368 -#.TRANS: count the number of notes -msgid "sum note values" +#: js/blocks/PitchBlocks.js:1047 +#.TRANS: cents are units used to specify the ratio between pitches. There are 100 cents between successive notes. +msgid "50 cents" msgstr "" -#: js/MeterBlocks.js:376 -#: js/MeterBlocks.js:440 -msgid "The Note counter block can be used to count the number of contained notes." +#: js/blocks/PitchBlocks.js:1102 +msgid "The Semi-tone transposition block will shift the pitches contained inside Note blocks up (or down) by half steps." msgstr "" -#: js/MeterBlocks.js:432 -#.TRANS: count the number of notes -msgid "note counter" +#: js/blocks/PitchBlocks.js:1104 +msgid "In the example shown above, sol is shifted up to sol#." msgstr "" -#: js/MeterBlocks.js:496 -#.TRANS: number of whole notes that have been played -msgid "whole notes played" +#: js/blocks/PitchBlocks.js:1110 +#.TRANS: adjust the amount of shift (up or down) of a pitch +msgid "semi-tone transpose" msgstr "" -#: js/MeterBlocks.js:505 -msgid "The Whole notes played block returns the total number of whole notes played." +#: js/blocks/PitchBlocks.js:1143 +msgid "The Transpose by Ratio block will shift the pitches contained inside Note blocks up (or down) by a ratio" msgstr "" -#: js/MeterBlocks.js:555 -#: js/DictActions.js:83 -#.TRANS: number of notes that have been played -msgid "notes played" +#: js/blocks/PitchBlocks.js:1149 +#.TRANS: adjust the amount of shift (up or down) of a pitch +msgid "transpose by ratio" msgstr "" -#: js/MeterBlocks.js:653 -msgid "The No clock block decouples the notes from the master clock." +#: js/blocks/PitchBlocks.js:1232 +#.TRANS: down sixth means the note is five scale degrees below current note +msgid "down sixth" msgstr "" -#: js/MeterBlocks.js:661 -#.TRANS: don't lock notes to master clock -msgid "no clock" +#: js/blocks/PitchBlocks.js:1251 +#.TRANS: down third means the note is two scale degrees below current note +msgid "down third" msgstr "" -#: js/MeterBlocks.js:700 -msgid "on weak beat do" +#: js/blocks/PitchBlocks.js:1270 +#.TRANS: seventh means the note is the six scale degrees above current note +msgid "seventh" msgstr "" -#: js/MeterBlocks.js:705 -msgid "The On-weak-beat block lets you specify actions to take on weak (off) beats." +#: js/blocks/PitchBlocks.js:1289 +#.TRANS: sixth means the note is the five scale degrees above current note +msgid "sixth" msgstr "" -#: js/MeterBlocks.js:750 -msgid "on strong beat" +#: js/blocks/PitchBlocks.js:1308 +#.TRANS: fifth means the note is the four scale degrees above current note +msgid "fifth" msgstr "" -#: js/MeterBlocks.js:758 -msgid "The On-strong-beat block lets you specify actions to take on specified beats." +#: js/blocks/PitchBlocks.js:1328 +#.TRANS: fourth means the note is three scale degrees above current note +msgid "fourth" msgstr "" -#: js/MeterBlocks.js:769 -msgid "beat" +#: js/blocks/PitchBlocks.js:1347 +#.TRANS: third means the note is two scale degrees above current note +msgid "third" msgstr "" -#: js/MeterBlocks.js:813 -msgid "on every beat do" +#: js/blocks/PitchBlocks.js:1366 +#.TRANS: second means the note is one scale degree above current note +msgid "second" msgstr "" -#: js/MeterBlocks.js:821 -msgid "The On-every-beat block lets you specify actions to take on every beat." +#: js/blocks/PitchBlocks.js:1407 +msgid "The Scalar transposition block will shift the pitches contained inside Note blocks up (or down) the scale." msgstr "" -#: js/MeterBlocks.js:874 -msgid "on every note do" +#: js/blocks/PitchBlocks.js:1409 +msgid "In the example shown above, sol is shifted up to la." msgstr "" -#: js/MeterBlocks.js:882 -msgid "The On-every-note block lets you specify actions to take on every note." +#: js/blocks/PitchBlocks.js:1416 +#.TRANS: adjust the amount of shift (up or down) of a pitch by musical scale (scalar) steps +msgid "scalar transpose" msgstr "" -#: js/MeterBlocks.js:928 -#: js/MeterBlocks.js:999 -#.TRANS: sets tempo by defining a beat and beats per minute -msgid "master beats per minute" +#: js/blocks/PitchBlocks.js:1451 +msgid "The Accidental block is used to create sharps and flats" msgstr "" -#: js/MeterBlocks.js:952 -#: js/MeterBlocks.js:1078 -#: js/MeterBlocks.js:1135 -msgid "bpm" +#: js/blocks/PitchBlocks.js:1458 +#.TRANS: An accidental is a modification to a pitch, e.g., sharp or flat. +msgid "accidental override" msgstr "" -#: js/MeterBlocks.js:952 -#: js/MeterBlocks.js:1078 -#: js/MeterBlocks.js:1135 -msgid "beat value" +#: js/blocks/PitchBlocks.js:1581 +msgid "The Hertz block (in combination with a Number block) will play a sound at the specified frequency." msgstr "" -#: js/MeterBlocks.js:1024 -#: js/MeterBlocks.js:1167 -#: js/MeterBlocks.js:1241 -msgid "Beats per minute must be > 30." +#: js/blocks/PitchBlocks.js:1671 +msgid "The Pitch Number block will play a pitch associated by its number, e.g. 0 for C and 7 for G." msgstr "" -#: js/MeterBlocks.js:1027 -#: js/MeterBlocks.js:1170 -#: js/MeterBlocks.js:1244 -msgid "Maximum beats per minute is 1000." +#: js/blocks/PitchBlocks.js:1703 +#: js/blocks/PitchBlocks.js:1745 +#.TRANS: a numeric mapping of the notes in an octave based on the musical mode +#.TRANS: a numeric mapping of the notes in an octave based on the musical mode +msgid "nth modal pitch" msgstr "" -#: js/MeterBlocks.js:1068 -msgid "The Beats per minute block sets the number of 1/4 notes per minute." +#: js/blocks/PitchBlocks.js:1706 +msgid "n^th Modal Pitch takes the pattern of pitches in semitones for a mode and makes each point a degree of the mode," msgstr "" -#: js/MeterBlocks.js:1279 -#.TRANS: anacrusis -msgid "pickup" +#: js/blocks/PitchBlocks.js:1708 +msgid "starting from 1 and regardless of tonal framework (i.e. not always 8 notes in the octave)" msgstr "" -#: js/MeterBlocks.js:1367 -msgid "number of beats" +#: js/blocks/PitchBlocks.js:1749 +msgid "N^th Modal Pitch takes a number as an input as the n^th degree for the given mode. 0 is the first position, 1 is the second, -1 is the note before the first etc." msgstr "" -#: js/DictBlocks.js:77 -msgid "show dictionary" +#: js/blocks/PitchBlocks.js:1751 +msgid "The pitches change according to the mode specified without any need for respellings." msgstr "" -#: js/DictBlocks.js:129 -msgid "The Dictionary block returns a dictionary." +#: js/blocks/PitchBlocks.js:1790 +msgid "Scale Degree is a common convention in music. Scale Degree offers seven possible positions in the scale (1-7) and can be modified via accidentals." msgstr "" -#: js/DictBlocks.js:197 -#: js/DictBlocks.js:339 -msgid "The Get-dict block returns a value in the dictionary for a specified key." +#: js/blocks/PitchBlocks.js:1792 +msgid "Scale Degree 1 is always the first pitch in a given scale, regardless of octave." msgstr "" -#: js/DictBlocks.js:212 -#: js/DictBlocks.js:354 -#.TRANS: retrieve a value from the dictionary with a given key -msgid "get value" +#: js/blocks/PitchBlocks.js:1814 +#.TRANS: step some number of notes in current musical scale +msgid "scalar step" msgstr "" -#: js/DictBlocks.js:215 -#: js/DictBlocks.js:216 -#: js/DictBlocks.js:289 -#: js/DictBlocks.js:290 -#: js/DictBlocks.js:357 -#: js/DictBlocks.js:430 -#: js/DictBlocks.js:431 -msgid "key2" +#: js/blocks/PitchBlocks.js:1819 +msgid "The Scalar Step block (in combination with a Number block) will play the next pitch in a scale," msgstr "" -#: js/DictBlocks.js:271 -#: js/DictBlocks.js:411 -msgid "The Set-dict block sets a value in the dictionary for a specified key." +#: js/blocks/PitchBlocks.js:1821 +msgid "eg if the last note played was sol, Scalar Step 1 will play la." msgstr "" -#: js/DictBlocks.js:286 -#: js/DictBlocks.js:427 -#.TRANS: set a value in the dictionary for a given key -msgid "set value" +#: js/blocks/PitchBlocks.js:1857 +msgid "The Pitch block specifies the pitch name and octave of a note that together determine the frequency of the note." msgstr "" -#: js/ExtrasBlocks.js:33 -msgid "fraction" +#: js/blocks/ProgramBlocks.js:33 +msgid "The Load-heap-from-app block loads the heap from a web page." msgstr "" -#: js/ExtrasBlocks.js:36 -msgid "Convert a float to a fraction" +#: js/blocks/ProgramBlocks.js:44 +#.TRANS: load the heap contents from a URL +msgid "load heap from App" msgstr "" -#: js/ExtrasBlocks.js:93 -msgid "save as ABC" +#: js/blocks/ProgramBlocks.js:95 +msgid "Error parsing JSON data:" msgstr "" -#: js/ExtrasBlocks.js:96 -#: js/ExtrasBlocks.js:132 -#: js/ExtrasBlocks.js:168 -msgid "title" -msgstr "título" - -#: js/ExtrasBlocks.js:129 -msgid "save as Lilypond" +#: js/blocks/ProgramBlocks.js:100 +msgid "404: Page not found" msgstr "" -#: js/ExtrasBlocks.js:165 -msgid "save as SVG" +#: js/blocks/ProgramBlocks.js:133 +msgid "The Save-heap-to-app block saves the heap to a web page." msgstr "" -#: js/ExtrasBlocks.js:216 -msgid "no background" +#: js/blocks/ProgramBlocks.js:144 +#.TRANS: save the heap contents to a URL +msgid "save heap to App" msgstr "" -#: js/ExtrasBlocks.js:219 -msgid "The No background block eliminates the background from the saved SVG output." +#: js/blocks/ProgramBlocks.js:189 +msgid "Cannot find a valid heap for" msgstr "" -#: js/ExtrasBlocks.js:247 -msgid "show blocks" +#: js/blocks/ProgramBlocks.js:206 +msgid "The Load-heap block loads the heap from a file." msgstr "" -#: js/ExtrasBlocks.js:249 -msgid "The Show blocks block shows the blocks." +#: js/blocks/ProgramBlocks.js:217 +#.TRANS: load the heap from a file +msgid "load heap" msgstr "" -#: js/ExtrasBlocks.js:274 -msgid "hide blocks" +#: js/blocks/ProgramBlocks.js:270 +msgid "The file you selected does not contain a valid heap." msgstr "" -#: js/ExtrasBlocks.js:276 -msgid "The Hide blocks block hides the blocks." +#: js/blocks/ProgramBlocks.js:275 +msgid "The loadHeap block needs a loadFile block." msgstr "" -#: js/ExtrasBlocks.js:305 -#: js/ExtrasBlocks.js:335 -msgid "The Space block is used to add space between blocks." +#: js/blocks/ProgramBlocks.js:291 +msgid "The Set-heap block loads the heap." msgstr "" -#: js/ExtrasBlocks.js:373 -msgid "wait" -msgstr "attend" - -#: js/ExtrasBlocks.js:376 -msgid "The Wait block pauses the program for a specified number of seconds." +#: js/blocks/ProgramBlocks.js:340 +msgid "The block you selected does not contain a valid heap." msgstr "" -#: js/ExtrasBlocks.js:430 -#: plugins/facebook.rtp:30 -msgid "comment" +#: js/blocks/ProgramBlocks.js:343 +msgid "The Set heap block needs a heap." msgstr "" -#: js/ExtrasBlocks.js:466 -msgid "print" -msgstr "montre" - -#: js/ExtrasBlocks.js:473 -msgid "The Print block displays text at the top of the screen." +#: js/blocks/ProgramBlocks.js:360 +msgid "The Load-dictionary block loads a dictionary from a file." msgstr "" -#: js/ExtrasBlocks.js:579 -msgid "display grid" +#: js/blocks/ProgramBlocks.js:372 +#.TRANS: load a dictionary from a file +msgid "load dictionary" msgstr "" -#: js/ExtrasBlocks.js:584 -msgid "The Display Grid Block changes the grid type" +#: js/blocks/ProgramBlocks.js:390 +#: js/blocks/ProgramBlocks.js:658 +#: js/blocks/ToneBlocks.js:1025 +msgid "file" msgstr "" -#: js/ExtrasBlocks.js:686 -#: js/ExtrasBlocks.js:705 -#: js/ExtrasBlocks.js:728 -#: js/ExtrasBlocks.js:751 -#: js/ExtrasBlocks.js:769 -#: js/ExtrasBlocks.js:788 -#: js/ExtrasBlocks.js:807 -#: js/ExtrasBlocks.js:826 -msgid "unknown" -msgstr "ignoré" - -#: js/SensorsBlocks.js:36 -msgid "The Input block prompts for keyboard input." +#: js/blocks/ProgramBlocks.js:444 +msgid "The file you selected does not contain a valid dictionary." msgstr "" -#: js/SensorsBlocks.js:46 -msgid "input" +#: js/blocks/ProgramBlocks.js:449 +msgid "The load dictionary block needs a load file block." msgstr "" -#: js/SensorsBlocks.js:64 -msgid "Input a value" +#: js/blocks/ProgramBlocks.js:466 +msgid "The Set-dictionary block loads a dictionary." msgstr "" -#: js/SensorsBlocks.js:126 -msgid "input value" +#: js/blocks/ProgramBlocks.js:477 +#.TRANS: load a dictionary from a JSON +msgid "set dictionary" msgstr "" -#: js/SensorsBlocks.js:131 -msgid "The Input-value block stores the input." +#: js/blocks/ProgramBlocks.js:546 +msgid "The block you selected does not contain a valid dictionary." msgstr "" -#: js/SensorsBlocks.js:238 -msgid "loudness" -msgstr "volume" +#: js/blocks/ProgramBlocks.js:550 +msgid "The set dictionary block needs a dictionary." +msgstr "" -#: js/SensorsBlocks.js:245 -msgid "The Loudness block returns the volume detected by the microphone." +#: js/blocks/ProgramBlocks.js:567 +msgid "The Save-heap block saves the heap to a file." msgstr "" -#: js/SensorsBlocks.js:300 -msgid "click" +#: js/blocks/ProgramBlocks.js:578 +#.TRANS: save the heap to a file +msgid "save heap" msgstr "" -#: js/SensorsBlocks.js:306 -msgid "The Click block triggers an event if a mouse has been clicked." +#: js/blocks/ProgramBlocks.js:629 +msgid "The Save-dictionary block saves a dictionary to a file." msgstr "" -#: js/SensorsBlocks.js:313 -msgid "The Click block triggers an event if a turtle has been clicked." +#: js/blocks/ProgramBlocks.js:640 +#.TRANS: save a dictionary to a file +msgid "save dictionary" msgstr "" -#: js/SensorsBlocks.js:342 -msgid "cursor over" +#: js/blocks/ProgramBlocks.js:720 +msgid "The Open palette block opens a palette." msgstr "" -#: js/SensorsBlocks.js:387 -msgid "cursor out" +#: js/blocks/ProgramBlocks.js:727 +msgid "open palette" msgstr "" -#: js/SensorsBlocks.js:433 -msgid "cursor button down" +#: js/blocks/ProgramBlocks.js:785 +msgid "The Delete block block removes a block." msgstr "" -#: js/SensorsBlocks.js:477 -msgid "cursor button up" +#: js/blocks/ProgramBlocks.js:797 +#.TRANS: Move this block to the trash. +msgid "delete block" msgstr "" -#: js/SensorsBlocks.js:638 -msgid "The Get red block returns the red component of the pixel under the mouse." +#: js/blocks/ProgramBlocks.js:861 +msgid "The Move block block moves a block." msgstr "" -#: js/SensorsBlocks.js:644 -msgid "The Get red block returns the red component of the pixel under the turtle." +#: js/blocks/ProgramBlocks.js:869 +#.TRANS: Move the position of a block on the screen. +msgid "move block" msgstr "" -#: js/SensorsBlocks.js:685 -#: plugins/rodi.rtp:216 -msgid "pixel color" +#: js/blocks/ProgramBlocks.js:881 +#: js/blocks/ProgramBlocks.js:1048 +msgid "block number" msgstr "" -#: js/SensorsBlocks.js:690 -msgid "The Get pixel block returns the color of the pixel under the mouse." +#: js/blocks/ProgramBlocks.js:935 +#.TRANS: Run program beginning at this block. +msgid "run block" msgstr "" -#: js/SensorsBlocks.js:696 -msgid "The Get pixel block returns the color of the pixel under the turtle." +#: js/blocks/ProgramBlocks.js:1025 +msgid "The Dock block block connections two blocks." msgstr "" -#: js/SensorsBlocks.js:758 -msgid "time" -msgstr "temps" +#: js/blocks/ProgramBlocks.js:1036 +#.TRANS: We can connect a block to another block. +msgid "connect blocks" +msgstr "" -#: js/SensorsBlocks.js:804 -msgid "cursor y" +#: js/blocks/ProgramBlocks.js:1048 +msgid "target block" msgstr "" -#: js/SensorsBlocks.js:809 -msgid "The Cursor Y block returns the vertical position of the mouse." +#: js/blocks/ProgramBlocks.js:1048 +msgid "connection number" msgstr "" -#: js/SensorsBlocks.js:845 -msgid "cursor x" +#: js/blocks/ProgramBlocks.js:1140 +msgid "The Make block block creates a new block." msgstr "" -#: js/SensorsBlocks.js:850 -msgid "The Cursor X block returns the horizontal position of the mouse." +#: js/blocks/ProgramBlocks.js:1152 +#.TRANS: Create a new block +msgid "make block" msgstr "" -#: js/SensorsBlocks.js:886 -msgid "mouse button" -msgstr "bouton de la souris" +#: js/blocks/ProgramBlocks.js:1285 +msgid "Cannot find block" +msgstr "" -#: js/SensorsBlocks.js:888 -msgid "The Mouse-button block returns True if the mouse button is pressed." +#: js/blocks/ProgramBlocks.js:1304 +#: js/blocks/ProgramBlocks.js:1313 +msgid "Warning: block argument type mismatch" msgstr "" -#: js/SensorsBlocks.js:934 -msgid "to ASCII" +#: js/blocks/ProgramBlocks.js:1347 +msgid "The Open project block is used to open a project from a web page." msgstr "" -#: js/SensorsBlocks.js:938 -msgid "The To ASCII block converts numbers to letters." +#: js/blocks/ProgramBlocks.js:1357 +msgid "open project" msgstr "" -#: js/SensorsBlocks.js:1005 -msgid "The Keyboard block returns computer keyboard input." +#: js/blocks/ProgramBlocks.js:1410 +msgid "Please enter a valid URL." msgstr "" -#: js/IntervalsActions.js:216 -msgid "Adding missing pitch number 0." +#: js/blocks/ToneBlocks.js:34 +msgid "oscillator" msgstr "" -#: js/IntervalsActions.js:224 -msgid "Ignoring pitch numbers less than zero or greater than eleven." +#: js/blocks/ToneBlocks.js:42 +#: js/blocks/WidgetBlocks.js:179 +#: js/widgets/timbre.js:1558 +#: js/widgets/timbre.js:1808 +#.TRANS: there are different types (sine, triangle, square...) of oscillators. +#.TRANS: type of filter, e.g., lowpass, highpass, etc. +msgid "type" msgstr "" -#: js/IntervalsActions.js:230 -msgid "Ignoring duplicate pitch numbers." +#: js/blocks/ToneBlocks.js:44 +#: js/widgets/timbre.js:1562 +#.TRANS: Partials refers to the number of sine waves combined into the sound. +msgid "partials" msgstr "" -#: js/PitchActions.js:88 -msgid "The Scalar Step Block must be used inside of a Note Block." +#: js/blocks/ToneBlocks.js:76 +msgid "You are adding multiple oscillator blocks." msgstr "" -#: js/PitchActions.js:107 -msgid "The Scalar Step Block must be preceded by a Pitch Block." +#: js/blocks/ToneBlocks.js:144 +#: js/widgets/timbre.js:1225 +#.TRANS: a duo synthesizer combines a synth with a sequencer +msgid "duo synth" msgstr "" -#: js/DrumActions.js:231 -msgid "Noise Block: Did you mean to use a Note block?" +#: js/blocks/ToneBlocks.js:149 +msgid "The Duo synth block is a duo-frequency modulator used to define a timbre." msgstr "" -#: js/MeterActions.js:101 -#: js/MeterActions.js:139 -msgid "beats per minute must be greater than" +#: js/blocks/ToneBlocks.js:157 +#: js/widgets/timbre.js:1476 +msgid "vibrato rate" msgstr "" -#: js/MeterActions.js:111 -#: js/MeterActions.js:149 -msgid "maximum" +#: js/blocks/ToneBlocks.js:157 +msgid "vibrato intensity" msgstr "" -#: js/MeterActions.js:117 -#: js/MeterActions.js:155 -msgid "beats per minute is" +#: js/blocks/ToneBlocks.js:185 +#: js/widgets/timbre.js:1221 +#.TRANS: AM (amplitude modulation) synthesizer +msgid "AM synth" msgstr "" -#: js/ToneActions.js:134 -msgid "Vibrato intensity must be between 1 and 100." +#: js/blocks/ToneBlocks.js:189 +msgid "The AM synth block is an amplitude modulator used to define a timbre." msgstr "" -#: js/ToneActions.js:139 -msgid "Vibrato rate must be greater than 0." +#: js/blocks/ToneBlocks.js:224 +#: js/widgets/timbre.js:1223 +#.TRANS: FM (frequency modulation) synthesizer +msgid "FM synth" msgstr "" -#: js/ToneActions.js:192 -#: js/ToneActions.js:265 -#.TRANS: Depth is the intesity of the tremolo or chorus effect. -msgid "Depth is out of range." +#: js/blocks/ToneBlocks.js:228 +msgid "The FM synth block is a frequency modulator used to define a timbre." msgstr "" -#: js/ToneActions.js:301 -msgid "Distortion must be from 0 to 100." +#: js/blocks/ToneBlocks.js:262 +msgid "partial" msgstr "" -#: js/ToneActions.js:332 -#.TRANS: partials components in a harmonic series -msgid "Partial must be greater than or equal to 0." +#: js/blocks/ToneBlocks.js:265 +msgid "The Partial block is used to specify a weight for a specific partial harmonic." msgstr "" -#: js/ToneActions.js:378 -#: js/ToneActions.js:417 -#: js/ToneActions.js:456 -#: js/timbre.js:782 -msgid "Unable to use synth due to existing oscillator" +#: js/blocks/ToneBlocks.js:284 +#.TRANS: partials are weighted components in a harmonic series +msgid "Partial weight must be between 0 and 1." msgstr "" -#: js/ToneActions.js:388 -#: js/ToneActions.js:427 -msgid "The input cannot be negative." +#: js/blocks/ToneBlocks.js:297 +#.TRANS: partials are weighted components in a harmonic series +msgid "Partial block should be used inside of a Weighted-partials block." msgstr "" -#: js/DictActions.js:75 -#: js/DictActions.js:153 -#: js/DictActions.js:188 -msgid "font" +#: js/blocks/ToneBlocks.js:325 +#.TRANS: partials are weighted components in a harmonic series +msgid "weighted partials" msgstr "" -#: js/musicutils.js:363 -#: js/musicutils.js:471 -#: js/pitchdrummatrix.js:151 -#: js/musickeyboard.js:2563 -msgid "rest" +#: js/blocks/ToneBlocks.js:383 +msgid "The Harmonic block will add harmonics to the contained notes." msgstr "" -#: js/musicutils.js:565 -#.TRANS: ordinal number. Please keep exactly one space between each number. -msgid "1st 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th" +#: js/blocks/ToneBlocks.js:390 +#.TRANS: A harmonic is an overtone. +msgid "harmonic" msgstr "" -#: js/musicutils.js:629 -#: js/musicutils.js:812 -#: js/musicutils.js:911 -#.TRANS: augmented is a music term related to intervals -msgid "augmented" +#: js/blocks/ToneBlocks.js:431 +msgid "The Distortion block adds distortion to the pitch." msgstr "" -#: js/musicutils.js:631 -#: js/musicutils.js:813 -#: js/musicutils.js:910 -#.TRANS: diminished is a music term related to intervals and mode -msgid "diminished" +#: js/blocks/ToneBlocks.js:438 +#: js/widgets/timbre.js:2100 +#.TRANS: distortion is an alteration in the sound +msgid "distortion" msgstr "" -#: js/musicutils.js:639 -#.TRANS: twelve semi-tone scale for music -msgid "chromatic" +#: js/blocks/ToneBlocks.js:487 +msgid "The Tremolo block adds a wavering effect." msgstr "" -#: js/musicutils.js:640 -msgid "algerian" +#: js/blocks/ToneBlocks.js:495 +#: js/widgets/timbre.js:2092 +#.TRANS: a wavering effect in a musical tone +msgid "tremolo" msgstr "" -#: js/musicutils.js:641 -msgid "spanish" +#: js/blocks/ToneBlocks.js:500 +#: js/blocks/ToneBlocks.js:569 +#: js/blocks/ToneBlocks.js:630 +#: js/blocks/ToneBlocks.js:689 +#: js/widgets/timbre.js:2134 +#: js/widgets/timbre.js:2222 +#: js/widgets/timbre.js:2317 +#: js/widgets/timbre.js:2419 +#.TRANS: rate at which tremolo wavers +msgid "rate" msgstr "" -#: js/musicutils.js:643 -#.TRANS: modal scale in music -msgid "octatonic" +#: js/blocks/ToneBlocks.js:502 +#: js/blocks/ToneBlocks.js:630 +#: js/widgets/timbre.js:2137 +#: js/widgets/timbre.js:2328 +#.TRANS: amplitude of tremolo waver +msgid "depth" msgstr "" -#: js/musicutils.js:645 -#.TRANS: harmonic major scale in music -msgid "harmonic major" +#: js/blocks/ToneBlocks.js:559 +msgid "The Phaser block adds a sweeping sound." msgstr "" -#: js/musicutils.js:647 -#.TRANS: natural minor scales in music -msgid "natural minor" +#: js/blocks/ToneBlocks.js:566 +#: js/widgets/timbre.js:2098 +#.TRANS: alter the phase of the sound +msgid "phaser" msgstr "" -#: js/musicutils.js:649 -#.TRANS: harmonic minor scale in music -msgid "harmonic minor" +#: js/blocks/ToneBlocks.js:569 +#: js/turtleactions/IntervalsActions.js:114 +#: js/widgets/timbre.js:2422 +msgid "octaves" msgstr "" -#: js/musicutils.js:651 -#.TRANS: melodic minor scale in music -msgid "melodic minor" +#: js/blocks/ToneBlocks.js:569 +#: js/widgets/timbre.js:2425 +msgid "base frequency" msgstr "" -#: js/musicutils.js:655 -#.TRANS: modal scale for music -msgid "dorian" +#: js/blocks/ToneBlocks.js:619 +msgid "The Chorus block adds a chorus effect." msgstr "" -#: js/musicutils.js:657 -#.TRANS: modal scale for music -msgid "phrygian" +#: js/blocks/ToneBlocks.js:627 +#: js/widgets/timbre.js:2096 +#.TRANS: musical effect to simulate a choral sound +msgid "chorus" msgstr "" -#: js/musicutils.js:659 -#.TRANS: modal scale for music -msgid "lydian" +#: js/blocks/ToneBlocks.js:630 +msgid "delay" msgstr "" -#: js/musicutils.js:661 -#.TRANS: modal scale for music -msgid "mixolydian" +#: js/blocks/ToneBlocks.js:678 +msgid "The Vibrato block adds a rapid, slight variation in pitch." msgstr "" -#: js/musicutils.js:665 -#.TRANS: modal scale for music -msgid "locrian" +#: js/blocks/ToneBlocks.js:686 +#: js/widgets/timbre.js:2094 +#.TRANS: a rapid, slight variation in pitch +msgid "vibrato" msgstr "" -#: js/musicutils.js:667 -#.TRANS: minor jazz scale for music -msgid "jazz minor" +#: js/blocks/ToneBlocks.js:689 +#: js/widgets/timbre.js:2221 +msgid "intensity" msgstr "" -#: js/musicutils.js:669 -#.TRANS: bebop scale for music -msgid "bebop" +#: js/blocks/ToneBlocks.js:733 +#.TRANS: select synthesizer +msgid "set synth" msgstr "" -#: js/musicutils.js:670 -msgid "arabic" +#: js/blocks/ToneBlocks.js:804 +msgid "synth name" msgstr "" -#: js/musicutils.js:671 -msgid "byzantine" +#: js/blocks/ToneBlocks.js:842 +msgid "set default instrument" msgstr "" -#: js/musicutils.js:673 -#.TRANS: musical scale for music by Verdi -msgid "enigmatic" +#: js/blocks/ToneBlocks.js:895 +#: js/blocks/ToneBlocks.js:943 +#.TRANS: set the characteristics of a custom instrument +msgid "set instrument" msgstr "" -#: js/musicutils.js:674 -msgid "ethiopian" +#: js/blocks/ToneBlocks.js:898 +#: js/blocks/ToneBlocks.js:926 +#: js/blocks/ToneBlocks.js:932 +msgid "The Set instrument block selects a voice for the synthesizer," msgstr "" -#: js/musicutils.js:676 -#.TRANS: Ethiopic scale for music -msgid "geez" +#: js/blocks/ToneBlocks.js:900 +#: js/blocks/ToneBlocks.js:934 +msgid "eg guitar piano violin or cello." msgstr "" -#: js/musicutils.js:677 -msgid "hindu" +#: js/blocks/ToneBlocks.js:1015 +msgid "Import a sound file to use as an instrument and set its pitch center." msgstr "" -#: js/musicutils.js:678 -msgid "hungarian" +#: js/blocks/ToneBlocks.js:1110 +msgid "Upload a sound file to connect with the sample block." msgstr "" -#: js/musicutils.js:680 -#.TRANS: minor Romanian scale for music -msgid "romanian minor" +#: js/blocks/VolumeBlocks.js:35 +msgid "synth volume" msgstr "" -#: js/musicutils.js:681 -msgid "spanish gypsy" +#: js/blocks/VolumeBlocks.js:39 +msgid "The Synth volume block returns the current volume of the current synthesizer." msgstr "" -#: js/musicutils.js:683 -#.TRANS: musical scale for Mid-Eastern music -msgid "maqam" +#: js/blocks/VolumeBlocks.js:105 +msgid "master volume" msgstr "" -#: js/musicutils.js:685 -#.TRANS: minor blues scale for music -msgid "minor blues" +#: js/blocks/VolumeBlocks.js:109 +msgid "The Master volume block returns the master volume." msgstr "" -#: js/musicutils.js:687 -#.TRANS: major blues scale for music -msgid "major blues" +#: js/blocks/VolumeBlocks.js:355 +#: js/blocks/VolumeBlocks.js:524 +msgid "set synth volume" msgstr "" -#: js/musicutils.js:688 -msgid "whole tone" +#: js/blocks/VolumeBlocks.js:362 +#: js/blocks/VolumeBlocks.js:545 +msgid "synth" msgstr "" -#: js/musicutils.js:690 -#.TRANS: pentatonic is a general term that means "five note scale". This scale is typically known as "minor pentatonic" -msgid "minor pentatonic" +#: js/blocks/VolumeBlocks.js:403 +#: js/blocks/VolumeBlocks.js:577 +#: js/blocks/VolumeBlocks.js:740 +#: js/turtleactions/VolumeActions.js:173 +msgid "Setting volume to 0." msgstr "" -#: js/musicutils.js:692 -#.TRANS: pentatonic is a general term that means "five note scale". This scale is typically known as "major pentatonic" -msgid "major pentatonic" +#: js/blocks/VolumeBlocks.js:440 +msgid "Synth not found" msgstr "" -#: js/musicutils.js:693 -msgid "chinese" +#: js/blocks/VolumeBlocks.js:494 +msgid "set drum volume" msgstr "" -#: js/musicutils.js:694 -msgid "egyptian" +#: js/blocks/VolumeBlocks.js:530 +msgid "The Set synth volume block will change the volume of a particular synth," msgstr "" -#: js/musicutils.js:696 -#.TRANS: https://en.wikipedia.org/wiki/Hirajoshi_scale NOTE: There are three different versions of this scale -msgid "hirajoshi" +#: js/blocks/VolumeBlocks.js:532 +msgid "eg guitar violin snare drum etc." msgstr "" -#: js/musicutils.js:697 -msgid "Japan" +#: js/blocks/VolumeBlocks.js:534 +msgid "The default volume is 50." msgstr "" -#: js/musicutils.js:699 -#.TRANS: https://en.wikipedia.org/wiki/In_scale and https://en.wikipedia.org/wiki/Sakura_Sakura -msgid "in" +#: js/blocks/VolumeBlocks.js:536 +msgid "The range is 0 for silence to 100 for full volume." msgstr "" -#: js/musicutils.js:701 -#.TRANS: https://en.wikipedia.org/wiki/Miny%C5%8D_scale -msgid "minyo" +#: js/blocks/VolumeBlocks.js:597 +msgid "set panning" msgstr "" -#: js/musicutils.js:703 -#.TRANS: Italian mathematician -msgid "fibonacci" +#: js/blocks/VolumeBlocks.js:603 +msgid "The Set Panning block sets the panning for all synthesizers." msgstr "" -#: js/musicutils.js:708 -#: js/musicutils.js:1106 -#.TRANS: lowpass filter -msgid "lowpass" +#: js/blocks/VolumeBlocks.js:625 +msgid "Warning: Sound is coming out from only the left or right side." msgstr "" -#: js/musicutils.js:710 -#: js/musicutils.js:1107 -#.TRANS: bandpass filter -msgid "bandpass" +#: js/blocks/VolumeBlocks.js:647 +#: js/blocks/VolumeBlocks.js:695 +msgid "set master volume" msgstr "" -#: js/musicutils.js:712 -#: js/musicutils.js:1108 -#.TRANS: high-shelf filter -msgid "highshelf" +#: js/blocks/VolumeBlocks.js:653 +msgid "The Set master volume block sets the volume for all synthesizers." msgstr "" -#: js/musicutils.js:714 -#: js/musicutils.js:1109 -#.TRANS: low-shelf filter -msgid "lowshelf" +#: js/blocks/VolumeBlocks.js:784 +msgid "The Set relative volume block changes the volume of the contained notes." msgstr "" -#: js/musicutils.js:716 -#: js/musicutils.js:1110 -#.TRANS: notch-shelf filter -msgid "notch" +#: js/blocks/VolumeBlocks.js:791 +msgid "set relative volume" msgstr "" -#: js/musicutils.js:718 -#: js/musicutils.js:1111 -#.TRANS: all-pass filter -msgid "allpass" +#: js/blocks/VolumeBlocks.js:857 +msgid "decrescendo" msgstr "" -#: js/musicutils.js:720 -#: js/musicutils.js:1112 -#.TRANS: peaking filter -msgid "peaking" +#: js/blocks/VolumeBlocks.js:921 +msgid "crescendo" msgstr "" -#: js/musicutils.js:731 -#: js/synthutils.js:58 -#.TRANS: musical instrument -msgid "violin" +#: js/blocks/WidgetBlocks.js:81 +#.TRANS: sound envelope (ADSR) +msgid "envelope" msgstr "" -#: js/musicutils.js:732 -#: js/synthutils.js:60 -#.TRANS: viola musical instrument -msgid "viola" +#: js/blocks/WidgetBlocks.js:89 +#.TRANS: Attack time is the time taken for initial run-up of level from nil to peak, beginning when the key is first pressed. +msgid "attack" msgstr "" -#: js/musicutils.js:733 -#: js/synthutils.js:98 -#.TRANS: xylophone musical instrument -msgid "xylophone" +#: js/blocks/WidgetBlocks.js:91 +#.TRANS: Decay time is the time taken for the subsequent run down from the attack level to the designated sustain level. +msgid "decay" msgstr "" -#: js/musicutils.js:734 -#: js/synthutils.js:120 -#.TRANS: vibraphone musical instrument -msgid "vibraphone" +#: js/blocks/WidgetBlocks.js:93 +#.TRANS: Sustain level is the level during the main sequence of the sound's duration, until the key is released. +msgid "sustain" msgstr "" -#: js/musicutils.js:735 -#: js/synthutils.js:62 -#.TRANS: musical instrument -msgid "cello" +#: js/blocks/WidgetBlocks.js:95 +#.TRANS: Release time is the time taken for the level to decay from the sustain level to zero after the key is released. +msgid "release" msgstr "" -#: js/musicutils.js:737 -#: js/synthutils.js:66 -#.TRANS: viola musical instrument -msgid "double bass" +#: js/blocks/WidgetBlocks.js:113 +msgid "Attack value should be from 0 to 100." msgstr "" -#: js/musicutils.js:738 -#: js/synthutils.js:68 -#: js/rhythmruler.js:2119 -#.TRANS: musical instrument -msgid "guitar" +#: js/blocks/WidgetBlocks.js:116 +msgid "Decay value should be from 0 to 100." msgstr "" -#: js/musicutils.js:739 -#: js/synthutils.js:70 -#.TRANS: musical instrument -msgid "acoustic guitar" +#: js/blocks/WidgetBlocks.js:119 +msgid "Sustain value should be from 0 to 100." msgstr "" -#: js/musicutils.js:740 -#: js/synthutils.js:72 -#.TRANS: musical instrument -msgid "flute" +#: js/blocks/WidgetBlocks.js:122 +msgid "Release value should be from 0-100." msgstr "" -#: js/musicutils.js:741 -#: js/synthutils.js:74 -#.TRANS: musical instrument -msgid "clarinet" +#: js/blocks/WidgetBlocks.js:140 +msgid "You are adding multiple envelope blocks." msgstr "" -#: js/musicutils.js:742 -#: js/synthutils.js:76 -#.TRANS: musical instrument -msgid "saxophone" +#: js/blocks/WidgetBlocks.js:171 +#.TRANS: a filter removes some unwanted components from a signal +msgid "filter" msgstr "" -#: js/musicutils.js:743 -#: js/synthutils.js:78 -#.TRANS: musical instrument -msgid "tuba" +#: js/blocks/WidgetBlocks.js:181 +#: js/widgets/timbre.js:1818 +#.TRANS: rolloff is the steepness of a change in frequency. +msgid "rolloff" msgstr "" -#: js/musicutils.js:744 -#: js/synthutils.js:80 -#.TRANS: musical instrument -msgid "trumpet" +#: js/blocks/WidgetBlocks.js:213 +#.TRANS: rolloff is the steepness of a change in frequency. +msgid "Rolloff value should be either -12, -24, -48, or -96 decibels/octave." msgstr "" -#: js/musicutils.js:745 -#: js/synthutils.js:82 -#.TRANS: musical instrument -msgid "oboe" +#: js/blocks/WidgetBlocks.js:252 +msgid "The Temperament tool is used to define custom tuning." msgstr "" -#: js/musicutils.js:746 -#: js/synthutils.js:84 -#.TRANS: musical instrument -msgid "trombone" +#: js/blocks/WidgetBlocks.js:332 +#: js/blocks/WidgetBlocks.js:1573 +#: js/widgets/sampler.js:547 +msgid "Upload a sample and adjust its pitch center." msgstr "" -#: js/musicutils.js:747 -#: js/synthutils.js:100 -#.TRANS: polytone synthesizer -msgid "electronic synth" +#: js/blocks/WidgetBlocks.js:339 +#.TRANS: the speed at music is should be played. +msgid "sampler" msgstr "" -#: js/musicutils.js:748 -#: js/synthutils.js:102 -#.TRANS: simple monotone synthesizer -msgid "simple 1" +#: js/blocks/WidgetBlocks.js:517 +msgid "The Meter block opens a tool to select strong beats for the meter." msgstr "" -#: js/musicutils.js:749 -msgid "simple 2" +#: js/blocks/WidgetBlocks.js:573 +msgid "The oscilloscope block opens a tool to visualize waveforms." msgstr "" -#: js/musicutils.js:750 -msgid "simple 3" +#: js/blocks/WidgetBlocks.js:578 +msgid "oscilloscope" msgstr "" -#: js/musicutils.js:751 -msgid "simple 4" +#: js/blocks/WidgetBlocks.js:645 +msgid "The Custom mode block opens a tool to explore musical mode (the spacing of the notes in a scale)." msgstr "" -#: js/musicutils.js:753 -#: js/synthutils.js:49 -#.TRANS: brown noise synthesizer -msgid "brown noise" +#: js/blocks/WidgetBlocks.js:651 +#.TRANS: musical mode is the pattern of half-steps in an octave, e.g., Major or Minor modes +msgid "custom mode" msgstr "" -#: js/musicutils.js:754 -#: js/synthutils.js:51 -#.TRANS: pink noise synthesizer -msgid "pink noise" +#: js/blocks/WidgetBlocks.js:700 +msgid "The Tempo block opens a metronome to visualize the beat." msgstr "" -#: js/musicutils.js:756 -#: js/synthutils.js:127 -#: js/rhythmruler.js:1670 -#: js/rhythmruler.js:1928 -#.TRANS: musical instrument -msgid "snare drum" +#: js/blocks/WidgetBlocks.js:762 +msgid "The Arpeggio Widget is used to compose chord sequences." msgstr "" -#: js/musicutils.js:757 -#: js/synthutils.js:129 -#.TRANS: musical instrument -msgid "kick drum" +#: js/blocks/WidgetBlocks.js:837 +msgid "The Pitch drum matrix is used to map pitches to drum sounds." msgstr "" -#: js/musicutils.js:758 -#: js/synthutils.js:131 -#.TRANS: musical instrument -msgid "tom tom" +#: js/blocks/WidgetBlocks.js:842 +#.TRANS: makes a mapping between pitches and drum sounds +msgid "pitch-drum mapper" msgstr "" -#: js/musicutils.js:759 -#: js/synthutils.js:133 -#.TRANS: musical instrument -msgid "floor tom" +#: js/blocks/WidgetBlocks.js:891 +msgid "You must have at least one pitch block and one drum block in the matrix." msgstr "" -#: js/musicutils.js:760 -#: js/synthutils.js:135 -#.TRANS: musical instrument -msgid "bass drum" +#: js/blocks/WidgetBlocks.js:920 +msgid "The Pitch slider tool to is used to generate pitches at selected frequencies." msgstr "" -#: js/musicutils.js:761 -#: js/synthutils.js:137 -#.TRANS: a drum made from an inverted cup -msgid "cup drum" +#: js/blocks/WidgetBlocks.js:925 +#.TRANS: widget to generate pitches using a slider +msgid "pitch slider" msgstr "" -#: js/musicutils.js:762 -#: js/synthutils.js:139 -#.TRANS: musical instrument -msgid "darbuka drum" +#: js/blocks/WidgetBlocks.js:977 +msgid "chromatic keyboard" msgstr "" -#: js/musicutils.js:763 -#: js/synthutils.js:143 -#.TRANS: musical instrument -msgid "hi hat" +#: js/blocks/WidgetBlocks.js:1011 +#: js/blocks/WidgetBlocks.js:1077 +#.TRANS: widget to generate pitches using a slider +msgid "music keyboard" msgstr "" -#: js/musicutils.js:764 -#: js/synthutils.js:145 -#.TRANS: a small metal bell -msgid "ride bell" +#: js/blocks/WidgetBlocks.js:1062 +#: js/blocks/WidgetBlocks.js:1069 +msgid "The Music keyboard block opens a piano keyboard that can be used to create notes." msgstr "" -#: js/musicutils.js:765 -#: js/synthutils.js:147 -#.TRANS: musical instrument -msgid "cow bell" +#: js/blocks/WidgetBlocks.js:1128 +msgid "The Pitch staircase tool to is used to generate pitches from a given ratio." msgstr "" -#: js/musicutils.js:766 -msgid "japanese drum" +#: js/blocks/WidgetBlocks.js:1135 +#.TRANS: generate a progressive sequence of pitches +msgid "pitch staircase" msgstr "" -#: js/musicutils.js:767 -#: js/synthutils.js:153 -#.TRANS: musical instrument -msgid "japanese bell" +#: js/blocks/WidgetBlocks.js:1222 +msgid "The Rhythm Maker block opens a tool to create drum machines." msgstr "" -#: js/musicutils.js:768 -#: js/synthutils.js:149 -#.TRANS: musical instrument -msgid "triangle bell" +#: js/blocks/WidgetBlocks.js:1291 +msgid "G major scale" msgstr "" -#: js/musicutils.js:769 -#: js/synthutils.js:151 -#.TRANS: musical instrument -msgid "finger cymbals" +#: js/blocks/WidgetBlocks.js:1326 +msgid "C major scale" msgstr "" -#: js/musicutils.js:770 -#: js/synthutils.js:155 -#.TRANS: a musically tuned set of bells -msgid "chime" +#: js/blocks/WidgetBlocks.js:1366 +msgid "The Phrase Maker block opens a tool to create musical phrases." msgstr "" -#: js/musicutils.js:771 -#: js/synthutils.js:157 -#.TRANS: a musical instrument -msgid "gong" +#: js/blocks/WidgetBlocks.js:1373 +#.TRANS: assigns pitch to a sequence of beats to generate a melody +msgid "phrase maker" msgstr "" -#: js/musicutils.js:772 -#: js/synthutils.js:159 -#.TRANS: sound effect -msgid "clang" +#: js/blocks/WidgetBlocks.js:1444 +msgid "You must have at least one pitch block and one rhythm block in the matrix." msgstr "" -#: js/musicutils.js:773 -#: js/synthutils.js:161 -#.TRANS: sound effect -msgid "crash" +#: js/blocks/WidgetBlocks.js:1503 +msgid "The Status block opens a tool for inspecting the status of Music Blocks as it is running." msgstr "" -#: js/musicutils.js:774 -#: js/synthutils.js:163 -#.TRANS: sound effect -msgid "bottle" +#: js/blocks/WidgetBlocks.js:1580 +#.TRANS: AI-generated music +msgid "aimusic" msgstr "" -#: js/musicutils.js:775 -#: js/synthutils.js:165 -#.TRANS: sound effect -msgid "clap" +#: js/turtleactions/MeterActions.js:101 +#: js/turtleactions/MeterActions.js:139 +msgid "beats per minute must be greater than" msgstr "" -#: js/musicutils.js:776 -#: js/synthutils.js:167 -#.TRANS: sound effect -msgid "slap" +#: js/turtleactions/MeterActions.js:111 +#: js/turtleactions/MeterActions.js:149 +msgid "maximum" msgstr "" -#: js/musicutils.js:777 -#: js/synthutils.js:169 -#.TRANS: sound effect -msgid "splash" +#: js/turtleactions/MeterActions.js:117 +#: js/turtleactions/MeterActions.js:155 +msgid "beats per minute is" msgstr "" -#: js/musicutils.js:778 -#: js/synthutils.js:171 -#.TRANS: sound effect -msgid "bubbles" +#: js/turtleactions/DictActions.js:75 +#: js/turtleactions/DictActions.js:142 +#: js/turtleactions/DictActions.js:172 +msgid "font" msgstr "" -#: js/musicutils.js:779 -#: js/synthutils.js:173 -#.TRANS: sound effect -msgid "raindrop" +#: js/turtleactions/DictActions.js:255 +msgid "Dictionary with this name does not exist" msgstr "" -#: js/musicutils.js:780 -#: js/synthutils.js:175 -#.TRANS: animal sound effect -msgid "cat" +#: js/turtleactions/DictActions.js:259 +msgid "Key with this name does not exist in " msgstr "" -#: js/musicutils.js:781 -#: js/synthutils.js:177 -#.TRANS: animal sound effect -msgid "cricket" +#: js/turtleactions/DrumActions.js:227 +msgid "Noise Block: Did you mean to use a Note block?" msgstr "" -#: js/musicutils.js:782 -#: js/synthutils.js:179 -#.TRANS: animal sound effect -msgid "dog" +#: js/turtleactions/IntervalsActions.js:113 +msgid "one" msgstr "" -#: js/musicutils.js:784 -#: js/synthutils.js:86 -#.TRANS: musical instrument -msgid "banjo" +#: js/turtleactions/IntervalsActions.js:113 +msgid "two" msgstr "" -#: js/musicutils.js:785 -#: js/synthutils.js:88 -#.TRANS: musical instrument -msgid "koto" +#: js/turtleactions/IntervalsActions.js:113 +msgid "three" msgstr "" -#: js/musicutils.js:786 -#: js/synthutils.js:90 -#.TRANS: musical instrument -msgid "dulcimer" +#: js/turtleactions/IntervalsActions.js:113 +msgid "four" msgstr "" -#: js/musicutils.js:787 -#: js/synthutils.js:92 -#.TRANS: musical instrument -msgid "electric guitar" +#: js/turtleactions/IntervalsActions.js:113 +msgid "five" msgstr "" -#: js/musicutils.js:788 -#: js/synthutils.js:94 -#.TRANS: musical instrument -msgid "bassoon" +#: js/turtleactions/IntervalsActions.js:113 +msgid "six" msgstr "" -#: js/musicutils.js:789 -#: js/synthutils.js:96 -#.TRANS: musical instrument -msgid "celeste" +#: js/turtleactions/IntervalsActions.js:113 +msgid "seven" msgstr "" -#: js/musicutils.js:791 -#: js/musicutils.js:1123 -#: js/musicutils.js:1131 -#: js/temperament.js:650 -#.TRANS: musical temperament -msgid "equal" +#: js/turtleactions/IntervalsActions.js:113 +msgid "eight" msgstr "" -#: js/musicutils.js:793 -#: js/musicutils.js:1125 -#: js/musicutils.js:1133 -#.TRANS: musical temperament -msgid "Pythagorean" +#: js/turtleactions/IntervalsActions.js:113 +msgid "nine" msgstr "" -#: js/musicutils.js:795 -#: js/musicutils.js:1124 -#: js/musicutils.js:1132 -#.TRANS: musical temperament -msgid "just intonation" +#: js/turtleactions/IntervalsActions.js:119 +msgid "a" msgstr "" -#: js/musicutils.js:797 -#: js/musicutils.js:1126 -#: js/musicutils.js:1127 -#: js/musicutils.js:1134 -#: js/musicutils.js:1135 -#.TRANS: musical temperament -msgid "meantone" +#: js/turtleactions/IntervalsActions.js:120 +msgid "below" msgstr "" -#: js/musicutils.js:814 -msgid "major 7th" +#: js/turtleactions/IntervalsActions.js:124 +msgid "above" msgstr "" -#: js/musicutils.js:815 -msgid "minor 7th" +#: js/turtleactions/IntervalsActions.js:131 +msgid "plus" msgstr "" -#: js/musicutils.js:816 -msgid "dominant 7th" +#: js/turtleactions/IntervalsActions.js:139 +msgid " below" msgstr "" -#: js/musicutils.js:817 -msgid "minor-major 7th" +#: js/turtleactions/IntervalsActions.js:257 +msgid "Adding missing pitch number 0." msgstr "" -#: js/musicutils.js:818 -msgid "fully-diminished 7th" +#: js/turtleactions/IntervalsActions.js:265 +msgid "Ignoring pitch numbers less than zero or greater than eleven." msgstr "" -#: js/musicutils.js:819 -msgid "half-diminished 7th" +#: js/turtleactions/IntervalsActions.js:271 +msgid "Ignoring duplicate pitch numbers." msgstr "" -#: js/musicutils.js:4379 -#: js/musicutils.js:4416 -msgid "current" +#: js/turtleactions/ToneActions.js:134 +msgid "Vibrato intensity must be between 1 and 100." msgstr "" -#: js/musicutils.js:4382 -#: js/musicutils.js:4407 -msgid "next" +#: js/turtleactions/ToneActions.js:139 +msgid "Vibrato rate must be greater than 0." msgstr "" -#: js/musicutils.js:4385 -#: js/musicutils.js:4412 -msgid "previous" +#: js/turtleactions/ToneActions.js:192 +#: js/turtleactions/ToneActions.js:265 +#.TRANS: Depth is the intesity of the tremolo or chorus effect. +msgid "Depth is out of range." msgstr "" -#: js/synthutils.js:104 -#.TRANS: simple monotone synthesizer -msgid "simple-2" +#: js/turtleactions/ToneActions.js:301 +msgid "Distortion must be from 0 to 100." msgstr "" -#: js/synthutils.js:106 -#.TRANS: simple monotone synthesizer -msgid "simple-3" +#: js/turtleactions/ToneActions.js:332 +#.TRANS: partials components in a harmonic series +msgid "Partial must be greater than or equal to 0." msgstr "" -#: js/synthutils.js:108 -#.TRANS: simple monotone synthesizer -msgid "simple-4" +#: js/turtleactions/ToneActions.js:378 +#: js/turtleactions/ToneActions.js:417 +#: js/turtleactions/ToneActions.js:456 +#: js/widgets/timbre.js:782 +msgid "Unable to use synth due to existing oscillator" msgstr "" -#: js/synthutils.js:141 -#.TRANS: musical instrument -msgid "taiko" +#: js/turtleactions/ToneActions.js:388 +#: js/turtleactions/ToneActions.js:427 +msgid "The input cannot be negative." msgstr "" -#: js/modewidget.js:86 -#: js/modewidget.js:88 -#: js/modewidget.js:642 -#: js/modewidget.js:644 -#: js/modewidget.js:712 -#: js/modewidget.js:714 -#: js/temperament.js:2078 -#: js/rhythmruler.js:189 -#: js/rhythmruler.js:1410 -#: js/rhythmruler.js:1412 -#: js/rhythmruler.js:1435 -#: js/rhythmruler.js:1437 -#: js/meterwidget.js:89 -#: js/meterwidget.js:91 +#: js/widgets/modewidget.js:86 +#: js/widgets/modewidget.js:88 +#: js/widgets/modewidget.js:642 +#: js/widgets/modewidget.js:644 +#: js/widgets/modewidget.js:712 +#: js/widgets/modewidget.js:714 +#: js/widgets/meterwidget.js:194 +#: js/widgets/meterwidget.js:196 +#: js/widgets/temperament.js:2236 +#: js/widgets/rhythmruler.js:457 +#: js/widgets/rhythmruler.js:1790 +#: js/widgets/rhythmruler.js:1792 +#: js/widgets/rhythmruler.js:1816 +#: js/widgets/rhythmruler.js:1818 msgid "Play all" msgstr "" -#: js/modewidget.js:115 -#: js/pitchstaircase.js:641 -#: js/phrasemaker.js:339 -#: js/pitchdrummatrix.js:94 -#: js/pitchslider.js:125 -#: js/temperament.js:2083 -#: js/musickeyboard.js:530 -#: js/timbre.js:756 -#: js/meterwidget.js:124 -#: js/arpeggio.js:103 +#: js/widgets/modewidget.js:115 +#: js/widgets/meterwidget.js:229 +#: js/widgets/pitchdrummatrix.js:166 +#: js/widgets/pitchslider.js:125 +#: js/widgets/pitchstaircase.js:641 +#: js/widgets/temperament.js:2244 +#: js/widgets/timbre.js:756 +#: js/widgets/arpeggio.js:103 +#: js/widgets/musickeyboard.js:688 +#: js/widgets/phrasemaker.js:550 msgid "Save" msgstr "" -#: js/modewidget.js:121 -#: js/pitchstaircase.js:686 -#: js/phrasemaker.js:356 -#: js/pitchdrummatrix.js:109 -#: js/musickeyboard.js:534 -#: js/rhythmruler.js:269 -#: js/arpeggio.js:118 +#: js/widgets/modewidget.js:121 +#: js/widgets/pitchdrummatrix.js:181 +#: js/widgets/pitchstaircase.js:686 +#: js/widgets/arpeggio.js:118 +#: js/widgets/musickeyboard.js:696 +#: js/widgets/phrasemaker.js:567 +#: js/widgets/rhythmruler.js:601 #.TRANS: clear all subdivisions from the ruler. msgid "Clear" msgstr "" -#: js/modewidget.js:127 +#: js/widgets/modewidget.js:127 msgid "Rotate counter clockwise" msgstr "" -#: js/modewidget.js:133 +#: js/widgets/modewidget.js:133 msgid "Rotate clockwise" msgstr "" -#: js/modewidget.js:139 +#: js/widgets/modewidget.js:139 msgid "Invert" msgstr "" -#: js/modewidget.js:145 -#: js/pitchstaircase.js:678 -#: js/rhythmruler.js:258 -#: js/timbre.js:963 +#: js/widgets/modewidget.js:145 +#: js/widgets/pitchstaircase.js:678 +#: js/widgets/timbre.js:963 +#: js/widgets/rhythmruler.js:578 msgid "Undo" msgstr "Annuler" -#: js/modewidget.js:163 +#: js/widgets/modewidget.js:163 #.TRANS: A circle of notes represents the musical mode. msgid "Click in the circle to select notes for the mode." msgstr "" -#: js/modewidget.js:1017 -#: js/pitchstaircase.js:580 -#: js/phrasemaker.js:4855 -#: js/temperament.js:1754 -#: js/rhythmruler.js:1865 -#: js/rhythmruler.js:2081 -#: js/tempo.js:414 +#: js/widgets/modewidget.js:1017 +#: js/widgets/pitchstaircase.js:580 +#: js/widgets/temperament.js:1929 +#: js/widgets/tempo.js:414 +#: js/widgets/phrasemaker.js:5356 +#: js/widgets/rhythmruler.js:2254 +#: js/widgets/rhythmruler.js:2472 msgid "New action block generated!" msgstr "" -#: js/oscilloscope.js:79 -msgid "Zoom In" -msgstr "" - -#: js/oscilloscope.js:88 -msgid "Zoom Out" -msgstr "" - -#: js/pitchstaircase.js:624 -msgid "Play chord" -msgstr "" - -#: js/pitchstaircase.js:632 -msgid "Play scale" +#: js/widgets/meterwidget.js:275 +msgid "Reset" msgstr "" -#: js/pitchstaircase.js:696 -msgid "Click on a note to create a new step." +#: js/widgets/meterwidget.js:301 +msgid "Click in the circle to select strong beats for the meter." msgstr "" -#: js/phrasemaker.js:363 -msgid "Export" +#: js/widgets/oscilloscope.js:79 +msgid "Zoom In" msgstr "" -#: js/phrasemaker.js:370 -msgid "Sort" +#: js/widgets/oscilloscope.js:88 +msgid "Zoom Out" msgstr "" -#: js/phrasemaker.js:373 -#: js/musickeyboard.js:559 -msgid "Add note" +#: js/widgets/pitchdrummatrix.js:356 +#: js/widgets/pitchdrummatrix.js:752 +msgid "Click in the grid to map notes to drums." msgstr "" -#: js/phrasemaker.js:764 -msgid "Click on the table to add notes." +#: js/widgets/pitchslider.js:103 +msgid "Move up" msgstr "" -#: js/phrasemaker.js:2414 -#: js/phrasemaker.js:2543 -msgid "tuplet value" +#: js/widgets/pitchslider.js:114 +msgid "Move down" msgstr "" -#: js/pitchdrummatrix.js:270 -#: js/pitchdrummatrix.js:639 -msgid "Click in the grid to map notes to drums." +#: js/widgets/pitchslider.js:136 +msgid "Click on the slider to create a note block." msgstr "" -#: js/pitchslider.js:103 -msgid "Move up" +#: js/widgets/pitchstaircase.js:624 +msgid "Play chord" msgstr "" -#: js/pitchslider.js:114 -msgid "Move down" +#: js/widgets/pitchstaircase.js:632 +msgid "Play scale" msgstr "" -#: js/pitchslider.js:136 -msgid "Click on the slider to create a note block." +#: js/widgets/pitchstaircase.js:696 +msgid "Click on a note to create a new step." msgstr "" -#: js/temperament.js:215 +#: js/widgets/temperament.js:321 msgid "back to 2:1 octave space" msgstr "" -#: js/temperament.js:323 +#: js/widgets/temperament.js:447 msgid "edit" msgstr "" -#: js/temperament.js:330 -#: js/temperament.js:332 -#: js/temperament.js:1336 -#: js/temperament.js:1338 +#: js/widgets/temperament.js:454 +#: js/widgets/temperament.js:456 +#: js/widgets/temperament.js:1493 +#: js/widgets/temperament.js:1495 msgid "close" msgstr "" -#: js/temperament.js:423 -#: js/temperament.js:736 -#: js/temperament.js:743 -#: js/temperament.js:845 -#: js/temperament.js:935 -#: js/temperament.js:942 -#: js/temperament.js:1015 -#: js/temperament.js:1284 -#: js/temperament.js:1354 -#: js/temperament.js:1430 +#: js/widgets/temperament.js:552 +#: js/widgets/temperament.js:877 +#: js/widgets/temperament.js:884 +#: js/widgets/temperament.js:986 +#: js/widgets/temperament.js:1080 +#: js/widgets/temperament.js:1087 +#: js/widgets/temperament.js:1160 +#: js/widgets/temperament.js:1433 +#: js/widgets/temperament.js:1511 +#: js/widgets/temperament.js:1596 msgid "done" msgstr "" -#: js/temperament.js:477 -#: js/temperament.js:482 -#: js/temperament.js:918 +#: js/widgets/temperament.js:610 +#: js/widgets/temperament.js:615 +#: js/widgets/temperament.js:1063 msgid "ratio" msgstr "" -#: js/temperament.js:483 +#: js/widgets/temperament.js:616 msgid "interval" msgstr "" -#: js/temperament.js:611 +#: js/widgets/temperament.js:744 msgid "non scalar" msgstr "" -#: js/temperament.js:650 +#: js/widgets/temperament.js:787 msgid "ratios" msgstr "" -#: js/temperament.js:650 +#: js/widgets/temperament.js:787 msgid "arbitrary" msgstr "" -#: js/temperament.js:719 +#: js/widgets/temperament.js:860 msgid "number of divisions" msgstr "" -#: js/temperament.js:741 -#: js/temperament.js:858 -#: js/temperament.js:940 -#: js/temperament.js:1033 +#: js/widgets/temperament.js:882 +#: js/widgets/temperament.js:999 +#: js/widgets/temperament.js:1085 +#: js/widgets/temperament.js:1178 msgid "preview" msgstr "" -#: js/temperament.js:788 +#: js/widgets/temperament.js:929 msgid "The Number of divisions is too large." msgstr "" -#: js/temperament.js:921 +#: js/widgets/temperament.js:1066 msgid "recursion" msgstr "" -#: js/temperament.js:1450 +#: js/widgets/temperament.js:1616 msgid "The octave ratio has changed. This changes temperament significantly." msgstr "" -#: js/temperament.js:2087 +#: js/widgets/temperament.js:2248 msgid "Table" msgstr "" -#: js/temperament.js:2185 +#: js/widgets/temperament.js:2356 msgid "Add pitches" msgstr "" -#: js/musickeyboard.js:570 -msgid "Metronome" +#: js/widgets/tempo.js:78 +#: js/widgets/tempo.js:97 +#: js/widgets/tempo.js:99 +#: js/widgets/aiwidget.js:134 +#: js/widgets/aiwidget.js:136 +#: js/widgets/rhythmruler.js:681 +#: js/widgets/rhythmruler.js:683 +#: js/widgets/rhythmruler.js:1864 +#: js/widgets/rhythmruler.js:1866 +#: js/widgets/sampler.js:180 +#: js/widgets/sampler.js:182 +msgid "Pause" msgstr "" -#: js/musickeyboard.js:1296 -#: plugins/rodi.rtp:193 -msgid "duration" +#: js/widgets/tempo.js:113 +msgid "Save tempo" msgstr "" -#: js/musickeyboard.js:2840 -msgid "New action blocks generated!" +#: js/widgets/tempo.js:144 +msgid "speed up" msgstr "" -#: js/musickeyboard.js:2841 -msgid "New action block generated" +#: js/widgets/tempo.js:150 +msgid "slow down" msgstr "" -#: js/musickeyboard.js:2984 -#: js/musickeyboard.js:2992 -msgid "MIDI device present." +#: js/widgets/tempo.js:194 +msgid "Adjust the tempo with the buttons." msgstr "" -#: js/musickeyboard.js:2995 -msgid "No MIDI device found." +#: js/widgets/tempo.js:261 +msgid "Please enter a number between 30 and 1000" msgstr "" -#: js/musickeyboard.js:3000 -msgid "Failed to get MIDI access in browser." +#: js/widgets/tempo.js:268 +#: js/widgets/tempo.js:271 +msgid "The beats per minute must be between 30 and 1000." msgstr "" -#: js/rhythmruler.js:202 -msgid "Save rhythms" +#: js/widgets/tempo.js:287 +msgid "The beats per minute must be below 1000." msgstr "" -#: js/rhythmruler.js:222 -msgid "Save drum machine" +#: js/widgets/tempo.js:303 +msgid "The beats per minute must be above 30" msgstr "" -#: js/rhythmruler.js:263 -#.TRANS: user can tap out a rhythm by clicking on a ruler. -msgid "Tap a rhythm" +#: js/widgets/timbre.js:766 +msgid "Synthesizer" msgstr "" -#: js/rhythmruler.js:342 -#: js/rhythmruler.js:344 -#: js/rhythmruler.js:1481 -#: js/rhythmruler.js:1483 -#: js/sampler.js:110 -#: js/sampler.js:112 -#: js/tempo.js:78 -#: js/tempo.js:97 -#: js/tempo.js:99 -msgid "Pause" +#: js/widgets/timbre.js:789 +msgid "Oscillator" msgstr "" -#: js/rhythmruler.js:478 -msgid "Click on the ruler to divide it." +#: js/widgets/timbre.js:840 +msgid "Envelope" msgstr "" -#: js/rhythmruler.js:603 -#: js/rhythmruler.js:605 -#: js/rhythmruler.js:804 -#: js/rhythmruler.js:806 -#: js/rhythmruler.js:1386 -#: js/rhythmruler.js:1388 -msgid "tap a rhythm" +#: js/widgets/timbre.js:886 +#: planet/js/GlobalTag.js:50 +#.TRANS: On the Planet, we use labels to tag projects. +msgid "Effects" msgstr "" -#: js/rhythmruler.js:1084 -msgid "Maximum value of 256 has been exceeded." +#: js/widgets/timbre.js:904 +msgid "Filter" msgstr "" -#: js/sampler.js:137 -msgid "Warning: Sample is bigger than 1MB." +#: js/widgets/timbre.js:946 +msgid "Add filter" msgstr "" -#: js/sampler.js:142 -msgid "Upload failed: Sample is not a .wav file." +#: js/widgets/timbre.js:987 +msgid "Click on buttons to open the timbre design tools." msgstr "" -#: js/sampler.js:164 -msgid "A new sample block was generated." +#: js/widgets/timbre.js:1273 +msgid "harmonicity" msgstr "" -#: js/sampler.js:255 -msgid "Upload sample" +#: js/widgets/timbre.js:1340 +#: js/widgets/timbre.js:1406 +msgid "modulation index" msgstr "" -#: js/sampler.js:306 -msgid "Save sample" +#: js/widgets/timbre.js:1484 +msgid "vibrato amount" msgstr "" -#: js/sampler.js:697 -#.TRANS: The reference tone is a sound used for comparison. -msgid "reference tone" +#: js/widgets/timbre.js:1919 +msgid "Filter already present." msgstr "" -#: js/tempo.js:113 -msgid "Save tempo" +#: js/widgets/timbre.js:2322 +msgid "delay (MS)" msgstr "" -#: js/tempo.js:144 -msgid "speed up" +#: js/widgets/timbre.js:2507 +msgid "distortion amount" msgstr "" -#: js/tempo.js:150 -msgid "slow down" +#: js/widgets/aiwidget.js:180 +#: js/widgets/sampler.js:227 +msgid "Warning: Sample is bigger than 1MB." msgstr "" -#: js/tempo.js:194 -msgid "Adjust the tempo with the buttons." +#: js/widgets/aiwidget.js:539 +msgid "New start block generated" msgstr "" -#: js/tempo.js:261 -msgid "Please enter a number between 30 and 1000" +#: js/widgets/aiwidget.js:541 +msgid "MIDI loading. This may take some time depending upon the number of notes in the track" msgstr "" -#: js/tempo.js:268 -#: js/tempo.js:271 -msgid "The beats per minute must be between 30 and 1000." +#: js/widgets/aiwidget.js:551 +#: js/widgets/sampler.js:254 +msgid "Upload failed: Sample is not a .wav file." msgstr "" -#: js/tempo.js:287 -msgid "The beats per minute must be below 1000." +#: js/widgets/aiwidget.js:679 +#: js/widgets/sampler.js:432 +msgid "Save sample" msgstr "" -#: js/tempo.js:303 -msgid "The beats per minute must be above 30" +#: js/widgets/aiwidget.js:701 +msgid "AI Music" msgstr "" -#: js/timbre.js:766 -msgid "Synthesizer" +#: js/widgets/arpeggio.js:239 +msgid "Click in the grid to add steps to the arpeggio." msgstr "" -#: js/timbre.js:789 -msgid "Oscillator" +#: js/widgets/help.js:95 +#: js/widgets/help.js:125 +#: js/widgets/help.js:146 +#: js/widgets/help.js:158 +#: js/widgets/help.js:376 +#: js/widgets/help.js:391 +msgid "Take a tour" msgstr "" -#: js/timbre.js:840 -msgid "Envelope" +#: js/widgets/musickeyboard.js:725 +#: js/widgets/phrasemaker.js:584 +msgid "Add note" msgstr "" -#: js/timbre.js:886 -#: js/GlobalTag.js:50 -#.TRANS: On the Planet, we use labels to tag projects. -msgid "Effects" +#: js/widgets/musickeyboard.js:744 +msgid "Metronome" +msgstr "" + +#: js/widgets/musickeyboard.js:1549 +#: plugins/rodi.rtp:193 +msgid "duration" +msgstr "" + +#: js/widgets/musickeyboard.js:3179 +msgid "New action blocks generated" +msgstr "" + +#: js/widgets/musickeyboard.js:3180 +msgid "New action block generated" msgstr "" -#: js/timbre.js:904 -msgid "Filter" +#: js/widgets/musickeyboard.js:3365 +#: js/widgets/musickeyboard.js:3373 +msgid "MIDI device present." msgstr "" -#: js/timbre.js:946 -msgid "Add filter" +#: js/widgets/musickeyboard.js:3376 +msgid "No MIDI device found." msgstr "" -#: js/timbre.js:987 -msgid "Click on buttons to open the timbre design tools." +#: js/widgets/musickeyboard.js:3386 +msgid "Failed to get MIDI access in browser." msgstr "" -#: js/timbre.js:1273 -msgid "harmonicity" +#: js/widgets/phrasemaker.js:574 +msgid "Export" msgstr "" -#: js/timbre.js:1340 -#: js/timbre.js:1406 -msgid "modulation index" +#: js/widgets/phrasemaker.js:581 +msgid "Sort" msgstr "" -#: js/timbre.js:1484 -msgid "vibrato amount" +#: js/widgets/phrasemaker.js:975 +msgid "Click on the table to add notes." msgstr "" -#: js/timbre.js:1919 -msgid "Filter already present." +#: js/widgets/phrasemaker.js:2677 +#: js/widgets/phrasemaker.js:2819 +msgid "tuplet value" msgstr "" -#: js/timbre.js:2322 -msgid "delay (MS)" +#: js/widgets/rhythmruler.js:486 +msgid "Save rhythms" msgstr "" -#: js/timbre.js:2507 -msgid "distortion amount" +#: js/widgets/rhythmruler.js:512 +msgid "Save drum machine" msgstr "" -#: js/meterwidget.js:170 -msgid "Reset" +#: js/widgets/rhythmruler.js:589 +#.TRANS: user can tap out a rhythm by clicking on a ruler. +msgid "Tap a rhythm" msgstr "" -#: js/meterwidget.js:196 -msgid "Click in the circle to select strong beats for the meter." +#: js/widgets/rhythmruler.js:817 +msgid "Click on the ruler to divide it." msgstr "" -#: js/arpeggio.js:239 -msgid "Click in the grid to add steps to the arpeggio." +#: js/widgets/rhythmruler.js:950 +#: js/widgets/rhythmruler.js:952 +#: js/widgets/rhythmruler.js:1152 +#: js/widgets/rhythmruler.js:1154 +#: js/widgets/rhythmruler.js:1765 +#: js/widgets/rhythmruler.js:1767 +msgid "tap a rhythm" msgstr "" -#: js/ProjectStorage.js:243 -msgid "anonymous" +#: js/widgets/rhythmruler.js:1459 +msgid "Maximum value of 256 has been exceeded." msgstr "" -#: js/GlobalCard.js:68 -msgid "Share" +#: js/widgets/sampler.js:237 +msgid "Recording started..." msgstr "" -#: js/GlobalCard.js:74 -msgid "Flags" +#: js/widgets/sampler.js:245 +msgid "Recording complete..." msgstr "" -#: js/LocalCard.js:36 -msgid "View published project" +#: js/widgets/sampler.js:283 +msgid "A new sample block was generated." msgstr "" -#: js/LocalCard.js:42 -msgid "Publish project" +#: js/widgets/sampler.js:378 +msgid "Upload sample" msgstr "" -#: js/LocalCard.js:51 -msgid "Edit project" +#: js/widgets/sampler.js:399 +msgid "Warning: Your sample cannot be loaded because it is >1MB." msgstr "" -#: js/LocalCard.js:52 -msgid "Delete project" +#: js/widgets/sampler.js:448 +msgid "Toggle Mic" msgstr "" -#: js/LocalCard.js:53 -msgid "Download project" +#: js/widgets/sampler.js:458 +msgid "Playback" msgstr "" -#: js/LocalCard.js:55 -msgid "Duplicate project" +#: js/widgets/sampler.js:979 +#.TRANS: The reference tone is a sound used for comparison. +msgid "reference tone" msgstr "" -#: js/GlobalTag.js:28 +#: planet/js/GlobalTag.js:28 #.TRANS: On the Planet, we use labels to tag projects. msgid "All Projects" msgstr "" -#: js/GlobalTag.js:30 -#: js/StringHelper.js:37 +#: planet/js/GlobalTag.js:30 +#: planet/js/StringHelper.js:37 #.TRANS: On the Planet, we use labels to tag projects. msgid "My Projects" msgstr "" -#: js/GlobalTag.js:32 +#: planet/js/GlobalTag.js:32 #.TRANS: On the Planet, we use labels to tag projects. msgid "Examples" msgstr "" -#: js/GlobalTag.js:34 +#: planet/js/GlobalTag.js:34 #.TRANS: On the Planet, we use labels to tag projects. msgid "Music" msgstr "" -#: js/GlobalTag.js:36 +#: planet/js/GlobalTag.js:36 #.TRANS: On the Planet, we use labels to tag projects. msgid "Art" msgstr "" -#: js/GlobalTag.js:38 +#: planet/js/GlobalTag.js:38 #.TRANS: On the Planet, we use labels to tag projects. msgid "Math" msgstr "" -#: js/GlobalTag.js:40 +#: planet/js/GlobalTag.js:40 #.TRANS: On the Planet, we use labels to tag projects. msgid "Interactive" msgstr "" -#: js/GlobalTag.js:42 +#: planet/js/GlobalTag.js:42 #.TRANS: On the Planet, we use labels to tag projects. msgid "Design" msgstr "" -#: js/GlobalTag.js:44 +#: planet/js/GlobalTag.js:44 #.TRANS: On the Planet, we use labels to tag projects. msgid "Game" msgstr "" -#: js/GlobalTag.js:46 +#: planet/js/GlobalTag.js:46 #.TRANS: On the Planet, we use labels to tag projects. msgid "Media" msgstr "" -#: js/GlobalTag.js:48 +#: planet/js/GlobalTag.js:48 #.TRANS: On the Planet, we use labels to tag projects. msgid "Sensors" msgstr "" -#: js/GlobalTag.js:52 +#: planet/js/GlobalTag.js:52 #.TRANS: On the Planet, we use labels to tag projects. msgid "Code Snippet" msgstr "" -#: js/helper.js:149 -#: js/StringHelper.js:49 -msgid "Show more tags" +#: planet/js/LocalCard.js:36 +msgid "View published project" msgstr "" -#: js/helper.js:150 -msgid "Show fewer tags" +#: planet/js/LocalCard.js:42 +msgid "Publish project" +msgstr "" + +#: planet/js/LocalCard.js:51 +msgid "Edit project" +msgstr "" + +#: planet/js/LocalCard.js:52 +msgid "Delete project" +msgstr "" + +#: planet/js/LocalCard.js:53 +msgid "Download project" +msgstr "" + +#: planet/js/LocalCard.js:55 +msgid "Duplicate project" +msgstr "" + +#: planet/js/ProjectStorage.js:243 +msgid "anonymous" +msgstr "" + +#: planet/js/SaveInterface.js:34 +msgid "Open in Music Blocks" +msgstr "" + +#: planet/js/SaveInterface.js:35 +msgid "Open in Turtle Blocks" +msgstr "" + +#: planet/js/GlobalCard.js:68 +msgid "Share" +msgstr "" + +#: planet/js/GlobalCard.js:74 +msgid "Flags" +msgstr "" + +#: planet/js/GlobalPlanet.js:35 +msgid "No results found." +msgstr "" + +#: planet/js/GlobalPlanet.js:51 +msgid "Remix of" +msgstr "" + +#: planet/js/GlobalPlanet.js:509 +msgid "Cannot connect to server" msgstr "" -#: js/ProjectViewer.js:30 +#: planet/js/ProjectViewer.js:30 msgid "Error: Report could not be submitted. Try again later." msgstr "" -#: js/ProjectViewer.js:31 +#: planet/js/ProjectViewer.js:31 msgid "Thank you for reporting this project. A moderator will review the project shortly, to verify violation of the Sugar Labs Code of Conduct." msgstr "" -#: js/ProjectViewer.js:32 -#: js/StringHelper.js:62 -#: js/StringHelper.js:64 -#: js/StringHelper.js:68 +#: planet/js/ProjectViewer.js:32 +#: planet/js/StringHelper.js:62 +#: planet/js/StringHelper.js:64 +#: planet/js/StringHelper.js:68 msgid "Report Project" msgstr "" -#: js/ProjectViewer.js:33 -#: js/StringHelper.js:63 +#: planet/js/ProjectViewer.js:33 +#: planet/js/StringHelper.js:63 msgid "Project Reported" msgstr "" -#: js/ProjectViewer.js:34 +#: planet/js/ProjectViewer.js:34 msgid "Report description required" msgstr "" -#: js/ProjectViewer.js:35 +#: planet/js/ProjectViewer.js:35 msgid "Report description too long" msgstr "" -#: js/StringHelper.js:30 +#: planet/js/Publisher.js:30 +msgid "Feature unavailable - cannot connect to server. Reload Music Blocks to try again." +msgstr "" + +#: planet/js/Publisher.js:220 +#: planet/js/Publisher.js:237 +msgid "This field is required" +msgstr "" + +#: planet/js/Publisher.js:227 +msgid "Title too long" +msgstr "" + +#: planet/js/Publisher.js:244 +msgid "Description too long" +msgstr "" + +#: planet/js/Publisher.js:341 +msgid "Server Error" +msgstr "" + +#: planet/js/Publisher.js:341 +msgid "Try Again" +msgstr "" + +#: planet/js/StringHelper.js:30 msgid "Planet" msgstr "" -#: js/StringHelper.js:31 +#: planet/js/StringHelper.js:31 msgid "Close Planet" msgstr "" -#: js/StringHelper.js:32 +#: planet/js/StringHelper.js:32 msgid "Open project from file" msgstr "" -#: js/StringHelper.js:34 +#: planet/js/StringHelper.js:34 msgid "Local" msgstr "" -#: js/StringHelper.js:35 +#: planet/js/StringHelper.js:35 msgid "Global" msgstr "" -#: js/StringHelper.js:36 +#: planet/js/StringHelper.js:36 msgid "Search for a project" msgstr "" -#: js/StringHelper.js:38 +#: planet/js/StringHelper.js:38 msgid "Publish Project" msgstr "" -#: js/StringHelper.js:40 +#: planet/js/StringHelper.js:40 msgid "Tags (max 5)" msgstr "" -#: js/StringHelper.js:41 -#: js/StringHelper.js:61 +#: planet/js/StringHelper.js:41 +#: planet/js/StringHelper.js:61 msgid "Description" msgstr "" -#: js/StringHelper.js:42 -#: js/StringHelper.js:67 +#: planet/js/StringHelper.js:42 +#: planet/js/StringHelper.js:67 msgid "Submit" msgstr "" -#: js/StringHelper.js:43 -#: js/StringHelper.js:47 +#: planet/js/StringHelper.js:43 +#: planet/js/StringHelper.js:47 msgid "Cancel" msgstr "" -#: js/StringHelper.js:44 +#: planet/js/StringHelper.js:44 msgid "Delete \\"\\"?" msgstr "" -#: js/StringHelper.js:45 +#: planet/js/StringHelper.js:45 msgid "Permanently delete project \\"\\"?" msgstr "" -#: js/StringHelper.js:48 +#: planet/js/StringHelper.js:48 msgid "Explore Projects" msgstr "" -#: js/StringHelper.js:50 +#: planet/js/StringHelper.js:49 +#: planet/js/helper.js:149 +msgid "Show more tags" +msgstr "" + +#: planet/js/StringHelper.js:50 msgid "Most recent" msgstr "" -#: js/StringHelper.js:51 +#: planet/js/StringHelper.js:51 msgid "Most liked" msgstr "" -#: js/StringHelper.js:52 +#: planet/js/StringHelper.js:52 msgid "Most downloaded" msgstr "" -#: js/StringHelper.js:53 +#: planet/js/StringHelper.js:53 msgid "A-Z" msgstr "" -#: js/StringHelper.js:54 +#: planet/js/StringHelper.js:54 msgid "Sort by" msgstr "" -#: js/StringHelper.js:55 +#: planet/js/StringHelper.js:55 msgid "Load More Projects" msgstr "" -#: js/StringHelper.js:56 +#: planet/js/StringHelper.js:56 msgid "Last Updated" msgstr "" -#: js/StringHelper.js:57 +#: planet/js/StringHelper.js:57 msgid "Creation Date" msgstr "" -#: js/StringHelper.js:58 +#: planet/js/StringHelper.js:58 msgid "Number of Downloads:" msgstr "" -#: js/StringHelper.js:59 +#: planet/js/StringHelper.js:59 msgid "Number of Likes:" msgstr "" -#: js/StringHelper.js:60 +#: planet/js/StringHelper.js:60 msgid "Tags:" msgstr "" -#: js/StringHelper.js:65 +#: planet/js/StringHelper.js:65 msgid "Report projects which violate the Sugar Labs Code of Conduct." msgstr "" -#: js/StringHelper.js:66 +#: planet/js/StringHelper.js:66 msgid "Reason for reporting project" msgstr "" -#: js/StringHelper.js:70 +#: planet/js/StringHelper.js:70 msgid "Download as File" msgstr "" -#: js/GlobalPlanet.js:35 -msgid "No results found." -msgstr "" - -#: js/GlobalPlanet.js:51 -msgid "Remix of" -msgstr "" - -#: js/GlobalPlanet.js:509 -msgid "Cannot connect to server" -msgstr "" - -#: js/Publisher.js:30 -msgid "Feature unavailable - cannot connect to server. Reload Music Blocks to try again." -msgstr "" - -#: js/Publisher.js:218 -#: js/Publisher.js:235 -msgid "This field is required" -msgstr "" - -#: js/Publisher.js:225 -msgid "Title too long" +#: planet/js/helper.js:150 +msgid "Show fewer tags" msgstr "" -#: js/Publisher.js:242 -msgid "Description too long" +#: plugins/accelerometer.rtp:48 +msgid "motion x" msgstr "" -#: js/Publisher.js:339 -msgid "Server Error" +#: plugins/accelerometer.rtp:56 +msgid "motion y" msgstr "" -#: js/Publisher.js:339 -msgid "Try Again" +#: plugins/accelerometer.rtp:64 +msgid "motion z" msgstr "" -#: js/SaveInterface.js:34 -msgid "Open in Music Blocks" +#: plugins/facebook.rtp:27 +msgid "publish" msgstr "" -#: js/SaveInterface.js:35 -msgid "Open in Turtle Blocks" +#: plugins/maths.rtp:62 +msgid "power" msgstr "" -#: plugins/weather.rtp:68 -#: plugins/weather.rtp:97 -msgid "Days ahead must be in the range of -1 to 5." +#: plugins/maths.rtp:62 +msgid "base" msgstr "" -#: plugins/weather.rtp:122 -msgid "forecast" +#: plugins/maths.rtp:62 +msgid "exp" msgstr "" -#: plugins/weather.rtp:123 -#: plugins/weather.rtp:137 -#: plugins/weather.rtp:150 -msgid "city" +#: plugins/maths.rtp:99 +msgid "floor" msgstr "" -#: plugins/weather.rtp:124 -#: plugins/weather.rtp:138 -#: plugins/weather.rtp:151 -msgid "day" +#: plugins/maths.rtp:104 +msgid "ceiling" msgstr "" -#: plugins/weather.rtp:136 -msgid "high" +#: plugins/maths.rtp:109 +msgid "to degrees" msgstr "" -#: plugins/weather.rtp:149 -msgid "low" +#: plugins/maths.rtp:114 +msgid "to radians" msgstr "" #: plugins/nutrition.rtp:104 @@ -9459,45 +9868,6 @@ msgstr "" msgid "water" msgstr "" -#: plugins/maths.rtp:62 -#: plugins/examples.rtp:93 -msgid "power" -msgstr "" - -#: plugins/maths.rtp:62 -#: plugins/examples.rtp:93 -msgid "base" -msgstr "" - -#: plugins/maths.rtp:62 -#: plugins/examples.rtp:93 -msgid "exp" -msgstr "" - -#: plugins/maths.rtp:99 -#: plugins/examples.rtp:130 -msgid "floor" -msgstr "" - -#: plugins/maths.rtp:104 -#: plugins/examples.rtp:135 -msgid "ceiling" -msgstr "" - -#: plugins/maths.rtp:109 -#: plugins/examples.rtp:140 -msgid "to degrees" -msgstr "" - -#: plugins/maths.rtp:114 -#: plugins/examples.rtp:145 -msgid "to radians" -msgstr "" - -#: plugins/facebook.rtp:27 -msgid "publish" -msgstr "" - #: plugins/rodi.rtp:172 msgid "blink" msgstr "" @@ -9526,18 +9896,66 @@ msgstr "" msgid "move" msgstr "" -#: plugins/accelerometer.rtp:48 -msgid "motion x" +#: plugins/weather.rtp:68 +#: plugins/weather.rtp:97 +msgid "Days ahead must be in the range of -1 to 5." msgstr "" -#: plugins/accelerometer.rtp:56 -msgid "motion y" +#: plugins/weather.rtp:122 +msgid "forecast" msgstr "" -#: plugins/accelerometer.rtp:64 -msgid "motion z" +#: plugins/weather.rtp:123 +#: plugins/weather.rtp:137 +#: plugins/weather.rtp:150 +msgid "city" +msgstr "" + +#: plugins/weather.rtp:124 +#: plugins/weather.rtp:138 +#: plugins/weather.rtp:151 +msgid "day" +msgstr "" + +#: plugins/weather.rtp:136 +msgid "high" +msgstr "" + +#: plugins/weather.rtp:149 +msgid "low" msgstr "" +#: js/toolbar.js:70 + +#: js/toolbar.js:130 + +#: js/toolbar.js:194 + +#: js/toolbar.js:249 + +#~msgid "Toggle JavaScript Editor" +#~msgstr "" + +#: js/EnsembleBlocks.js:643 + +#~msgid "The Turrle pitch block returns the current pitch number being played by the specified turtle." +#~msgstr "" + +#: js/PitchActions.js:88 + +#~msgid "The Scalar Step Block must be used inside of a Note Block." +#~msgstr "" + +#: js/PitchActions.js:107 + +#~msgid "The Scalar Step Block must be preceded by a Pitch Block." +#~msgstr "" + +#: js/musickeyboard.js:2840 + +#~msgid "New action blocks generated!" +#~msgstr "" + #: js/toolbar.js:110 #: js/toolbar.js:204 @@ -9878,11 +10296,6 @@ msgstr "" #~msgid "The Time block returns the number of seconds that the program has been running." #~msgstr "" -#: js/help.js:95 - -#~msgid "Take a tour" -#~msgstr "" - #: js/GlobalCard.js:48 #~msgid "More Details" @@ -12781,11 +13194,6 @@ msgstr "" #~msgid "The save-stack button saves a stack onto a custom palette. It appears after a \"long press\" on a stack." #~msgstr "" -#: js/musicutils.js:254 - -#~msgid "Custom" -#~msgstr "" - #: js/basicblocks.js:4785 #~msgid "Rhythm" diff --git a/po/gn.po b/po/gn.po index 1f43b545eb..18bd22a057 100644 --- a/po/gn.po +++ b/po/gn.po @@ -2129,276 +2129,131 @@ #: js/planetInterface.js:104 #: js/planetInterface.js:104 #: js/planetInterface.js:104 -msgid "project undefined" -msgstr "" - -#: js/logo.js:61 -msgid "Not a valid pitch name" -msgstr "" - -#: js/logo.js:507 -#: js/ProgramBlocks.js:258 -#: js/ProgramBlocks.js:427 -msgid "You must select a file." -msgstr "" - -#: js/logo.js:1184 -#: js/turtles.js:118 -#: js/turtle-painter.js:1192 -#: js/turtle-painter.js:1193 -#: js/block.js:1463 -#: js/lilypond.js:757 -#: js/lilypond.js:921 -#: js/lilypond.js:959 -#: js/ActionBlocks.js:1223 -#: js/ProgramBlocks.js:1267 -msgid "start" -msgstr "" - -#: js/logo.js:1696 -msgid "Playback is ready." -msgstr "" - -#: js/blocks.js:1011 -#: js/blocks.js:3427 -#: js/blocks.js:3428 -#: js/blocks.js:3653 -#: js/blocks.js:4012 -#: js/blocks.js:4205 -#: js/blocks.js:5343 -#: js/blocks.js:6474 -#: js/palette.js:527 -#: js/palette.js:536 -#: js/palette.js:545 -#: js/palette.js:554 -#: js/palette.js:1131 -#: js/palette.js:1142 -#: js/palette.js:1153 -#: js/palette.js:1164 -#: js/palette.js:1183 -#: js/rubrics.js:529 -#: js/macros.js:170 -#: js/macros.js:266 -#: js/macros.js:267 -#: js/macros.js:276 -#: js/macros.js:828 -#: js/block.js:1449 -#: js/block.js:4164 -#: js/block.js:4182 -#: js/block.js:4193 -#: js/turtledefs.js:128 -#: js/turtledefs.js:230 -#: js/ActionBlocks.js:254 -#: js/ActionBlocks.js:307 -#: js/ActionBlocks.js:617 -#: js/ActionBlocks.js:716 -#: js/ActionBlocks.js:961 -#: js/ActionBlocks.js:1049 -#: js/ActionBlocks.js:1322 -#: js/ActionBlocks.js:1325 -#: js/ActionBlocks.js:1337 -#: js/ActionBlocks.js:1404 -#: js/MeterBlocks.js:715 -#: js/MeterBlocks.js:768 -#: js/MeterBlocks.js:831 -#: js/MeterBlocks.js:892 -#: js/phrasemaker.js:4412 -#: js/musickeyboard.js:2647 -#: js/rhythmruler.js:1928 -#: js/rhythmruler.js:1935 -#: js/rhythmruler.js:2119 -#: js/rhythmruler.js:2126 -msgid "action" -msgstr "" - -#: js/blocks.js:1205 -#: js/blocks.js:3380 -#: js/blocks.js:3770 -#: js/blocks.js:3801 -#: js/blocks.js:3850 -#: js/blocks.js:3885 -#: js/blocks.js:6497 -#: js/palette.js:509 -#: js/palette.js:638 -#: js/palette.js:1107 -#: js/BoxesBlocks.js:282 -#: js/BoxesBlocks.js:285 -#: js/BoxesBlocks.js:405 -#: js/BoxesBlocks.js:594 -msgid "box" -msgstr "" - -#: js/blocks.js:1680 -msgid "Consider breaking this stack into parts." +#: js/SaveInterface.js:59 +#: js/SaveInterface.js:61 +#: js/SaveInterface.js:93 +msgid "Music Blocks Project" msgstr "" -#: js/blocks.js:2408 -#: js/palette.js:653 -#: js/MediaBlocks.js:602 -msgid "open file" +#: js/SaveInterface.js:63 +msgid "This project was created in Music Blocks" msgstr "" -#: js/blocks.js:2415 -#: js/blocks.js:2423 -#: js/activity.js:1875 -msgid "audio file" +#: js/SaveInterface.js:67 +msgid "Music Blocks is a Free/Libre Software application." msgstr "" -#: js/blocks.js:2536 -#: js/blocks.js:3147 -#: js/block.js:3543 -msgid "on2" +#: js/SaveInterface.js:69 +msgid "The source code can be accessed at" msgstr "" -#: js/blocks.js:2538 -#: js/blocks.js:3149 -#: js/block.js:3545 -msgid "off" +#: js/SaveInterface.js:72 +msgid "For more information, please consult the" msgstr "" -#: js/blocks.js:2543 -#: js/blocks.js:3154 -#: js/palette.js:618 -#: js/block.js:3466 -#: js/BooleanBlocks.js:77 -#: js/BooleanBlocks.js:167 -#: js/BooleanBlocks.js:251 -#: js/BooleanBlocks.js:335 -#: js/BooleanBlocks.js:433 -#: js/BooleanBlocks.js:539 -#: js/BooleanBlocks.js:640 -#: js/BooleanBlocks.js:741 -#: js/BooleanBlocks.js:847 -#: js/BooleanBlocks.js:948 -#: js/BooleanBlocks.js:1033 -#: js/SensorsBlocks.js:910 -msgid "true" +#: js/SaveInterface.js:76 +#: js/turtledefs.js:795 +msgid "Music Blocks Guide" msgstr "" -#: js/blocks.js:2545 -#: js/blocks.js:3156 -#: js/block.js:3466 -#: js/BooleanBlocks.js:79 -#: js/BooleanBlocks.js:169 -#: js/BooleanBlocks.js:253 -#: js/BooleanBlocks.js:337 -#: js/BooleanBlocks.js:435 -#: js/BooleanBlocks.js:541 -#: js/BooleanBlocks.js:642 -#: js/BooleanBlocks.js:743 -#: js/BooleanBlocks.js:849 -#: js/BooleanBlocks.js:950 -#: js/SensorsBlocks.js:912 -msgid "false" +#: js/SaveInterface.js:83 +msgid "Alternatively, open the file in Music Blocks using the Load project button." msgstr "" -#: js/blocks.js:3183 -#: js/palette.js:574 -#: js/MediaBlocks.js:892 -#: js/MediaBlocks.js:963 -msgid "text" +#: js/SaveInterface.js:85 +msgid "Project Code" msgstr "" -#: js/blocks.js:3379 -#: js/palette.js:641 -#: js/palette.js:642 -#: js/BoxesBlocks.js:514 -msgid "store in box" +#: js/SaveInterface.js:87 +msgid "This code stores data about the blocks in a project." msgstr "" -#: js/blocks.js:3384 -#: js/blocks.js:3824 -#: js/blocks.js:3859 -#: js/blocks.js:3894 -#: js/blocks.js:5773 -#: js/blocks.js:5794 -#: js/BoxesBlocks.js:772 -msgid "box1" +#: js/SaveInterface.js:89 +msgid "Show" msgstr "" -#: js/blocks.js:3386 -#: js/blocks.js:3826 -#: js/blocks.js:3861 -#: js/blocks.js:3896 -#: js/blocks.js:5775 -#: js/blocks.js:5796 -#: js/BoxesBlocks.js:663 -msgid "box2" +#: js/SaveInterface.js:91 +msgid "Hide" msgstr "" -#: js/blocks.js:4058 -#: js/palette.js:639 -#: js/palette.js:644 -#: js/palette.js:1043 -#: js/BoxesBlocks.js:591 -msgid "store in" +#: js/SaveInterface.js:131 +#: js/SaveInterface.js:204 +#: js/SaveInterface.js:262 +#: js/SaveInterface.js:389 +#: js/SaveInterface.js:417 +#: js/activity.js:4884 +#: planet/js/ProjectStorage.js:27 +#: planet/js/GlobalPlanet.js:467 +#: planet/js/GlobalPlanet.js:469 +#: planet/js/GlobalPlanet.js:495 +#.TRANS: default project title when saving as Lilypond +msgid "My Project" msgstr "" -#: js/blocks.js:4058 -#: js/EnsembleBlocks.js:391 -#: js/EnsembleBlocks.js:402 -#: js/MediaBlocks.js:746 -#: js/ProgramBlocks.js:390 -#: js/ProgramBlocks.js:495 -#: js/ProgramBlocks.js:658 -#: js/BoxesBlocks.js:595 -#: js/PitchBlocks.js:656 -#: js/PitchBlocks.js:932 -#: js/PitchBlocks.js:1827 -#: js/ToneBlocks.js:1025 -#: js/DictBlocks.js:215 -#: js/DictBlocks.js:289 -msgid "name" +#: js/SaveInterface.js:197 +#: planet/js/SaveInterface.js:58 +msgid "No description provided" msgstr "" -#: js/blocks.js:4058 -#: js/RhythmBlocks.js:1130 -#: js/BoxesBlocks.js:75 -#: js/BoxesBlocks.js:595 -#: js/HeapBlocks.js:544 -#: js/DictBlocks.js:289 -#: js/DictBlocks.js:430 -msgid "value" +#: js/SaveInterface.js:332 +msgid "Your recording is in progress." msgstr "" -#: js/blocks.js:4907 -msgid "There is no block selected." +#: js/SaveInterface.js:401 +#.TRANS: File name prompt for save as Lilypond +msgid "File name" msgstr "" -#: js/blocks.js:5002 -#: js/MediaBlocks.js:888 -msgid "show" +#: js/SaveInterface.js:403 +#: planet/js/StringHelper.js:39 +#.TRANS: Project title prompt for save as Lilypond +msgid "Project title" msgstr "" -#: js/blocks.js:5005 -#: js/MediaBlocks.js:803 -#.TRANS: Avatar is the image used to determine the appearance of the mouse. -msgid "avatar" +#: js/SaveInterface.js:405 +#.TRANS: Project title prompt for save as Lilypond +msgid "Project author" msgstr "" -#: js/blocks.js:5008 -#: js/ToneBlocks.js:1010 -#: js/sampler.js:693 -#.TRANS: The sound sample that the user uploads. -msgid "sample" +#: js/SaveInterface.js:407 +#.TRANS: MIDI prompt for save as Lilypond +msgid "Include MIDI output?" msgstr "" -#: js/turtles.js:874 -msgid "Grid" +#: js/SaveInterface.js:409 +#.TRANS: Guitar prompt for save as Lilypond +msgid "Include guitar tablature output?" msgstr "" -#: js/turtles.js:891 -#: js/turtledefs.js:626 -msgid "Clean" +#: js/SaveInterface.js:411 +#.TRANS: Lilypond is a scripting language for generating sheet music +msgid "Save as Lilypond" msgstr "" -#: js/turtles.js:912 -#: js/turtledefs.js:632 -msgid "Collapse" +#: js/SaveInterface.js:426 +#: js/blocks/EnsembleBlocks.js:75 +#: js/blocks/EnsembleBlocks.js:154 +#: js/blocks/EnsembleBlocks.js:216 +#: js/blocks/EnsembleBlocks.js:302 +#: js/blocks/EnsembleBlocks.js:348 +#: js/blocks/EnsembleBlocks.js:389 +#: js/blocks/EnsembleBlocks.js:441 +#: js/blocks/EnsembleBlocks.js:490 +#: js/blocks/EnsembleBlocks.js:536 +#: js/blocks/EnsembleBlocks.js:583 +#: js/blocks/EnsembleBlocks.js:637 +#: js/blocks/EnsembleBlocks.js:753 +#: js/blocks/EnsembleBlocks.js:840 +#: js/blocks/EnsembleBlocks.js:899 +#: js/blocks/EnsembleBlocks.js:942 +#: js/blocks/EnsembleBlocks.js:1212 +#: js/blocks/EnsembleBlocks.js:1280 +#.TRANS: default project author when saving as Lilypond +msgid "Mr. Mouse" msgstr "" -#: js/turtles.js:940 -msgid "Expand" +#: js/SaveInterface.js:573 +msgid "The Lilypond code is copied to clipboard. You can paste it here: " msgstr "" #: js/languagebox.js:198 @@ -2409,6933 +2264,7487 @@ msgstr "" msgid "Music Blocks is already set to this language." msgstr "" -#: js/piemenus.js:200 -#: js/musicutils.js:808 -#: js/musicutils.js:824 -#: js/phrasemaker.js:1672 -#: js/musickeyboard.js:2041 -#: js/sampler.js:544 -#.TRANS: double sharp is a music term related to pitch -msgid "double sharp" +#: js/planetInterface.js:131 +msgid "project undefined" msgstr "" -#: js/piemenus.js:201 -#: js/PitchBlocks.js:1510 -#: js/PitchActions.js:580 -#: js/musicutils.js:806 -#: js/musicutils.js:825 -#: js/phrasemaker.js:1673 -#: js/musickeyboard.js:2042 -#: js/sampler.js:545 -#.TRANS: sharp is a half-step up in pitch -#.TRANS: sharp is a music term related to pitch -msgid "sharp" +#: js/rubrics.js:523 +#: js/turtledefs.js:119 +#: js/turtledefs.js:221 +#: js/blocks/RhythmBlockPaletteBlocks.js:52 +#: js/blocks/RhythmBlockPaletteBlocks.js:234 +#: js/blocks/ProgramBlocks.js:745 +#: js/widgets/rhythmruler.js:2057 +#: js/widgets/rhythmruler.js:2064 +#: js/widgets/rhythmruler.js:2133 +#: js/widgets/rhythmruler.js:2140 +#: js/widgets/rhythmruler.js:2219 +#.TRANS: an arrangement of notes based on duration +msgid "rhythm" msgstr "" -#: js/piemenus.js:202 -#: js/musicutils.js:804 -#: js/musicutils.js:826 -#: js/phrasemaker.js:1674 -#: js/musickeyboard.js:2043 -#: js/sampler.js:546 -#.TRANS: natural is a music term related to pitch -msgid "natural" +#: js/rubrics.js:524 +#: js/turtledefs.js:121 +#: js/turtledefs.js:223 +#: js/block-verbose.js:2622 +#: js/block.js:2550 +#: js/blocks/IntervalsBlocks.js:63 +#: js/blocks/SensorsBlocks.js:178 +#: js/blocks/PitchBlocks.js:1839 +#: js/blocks/PitchBlocks.js:1853 +#: js/widgets/musickeyboard.js:1935 +#: js/widgets/phrasemaker.js:1036 +#.TRANS: pitch number +#.TRANS: pitch number +#.TRANS: we specify pitch in terms of a name and an octave. The name can be CDEFGAB or Do Re Mi Fa Sol La Ti. Octave is a number between 1 and 8. +msgid "pitch" msgstr "" -#: js/piemenus.js:203 -#: js/PitchBlocks.js:1469 -#: js/PitchActions.js:583 -#: js/musicutils.js:802 -#: js/musicutils.js:827 -#: js/phrasemaker.js:1675 -#: js/musickeyboard.js:2044 -#: js/sampler.js:547 -#.TRANS: flat is a half-step down in pitch -#.TRANS: flat is a music term related to pitch -msgid "flat" +#: js/rubrics.js:525 +#: js/turtledefs.js:123 +#: js/turtledefs.js:225 +msgid "tone" msgstr "" -#: js/piemenus.js:204 -#: js/musicutils.js:800 -#: js/musicutils.js:828 -#: js/phrasemaker.js:1676 -#: js/musickeyboard.js:2045 -#: js/sampler.js:548 -#.TRANS: double flat is a music term related to pitch -msgid "double flat" +#: js/rubrics.js:526 +#: js/lilypond.js:605 +#: js/lilypond.js:904 +#: js/lilypond.js:910 +#: js/lilypond.js:948 +msgid "mouse" msgstr "" -#: js/piemenus.js:2861 -#: js/PitchBlocks.js:1357 -#: js/musicutils.js:627 -#.TRANS: unison means the note is the same as the current note -#.TRANS: unison is a music term related to intervals -msgid "unison" +#: js/rubrics.js:527 +#: js/turtledefs.js:132 +#: js/turtledefs.js:234 +#: js/widgets/phrasemaker.js:1040 +msgid "pen" msgstr "" -#: js/piemenus.js:3015 -#: js/piemenus.js:3088 -#: js/musicutils.js:635 -#: js/musicutils.js:810 -#: js/musicutils.js:912 -#.TRANS: major is a music term related to intervals and mode -msgid "major" +#: js/rubrics.js:528 +#: js/turtledefs.js:133 +#: js/turtledefs.js:235 +#: js/blocks/NumberBlocks.js:981 +#: js/blocks/PitchBlocks.js:1717 +#: js/blocks/PitchBlocks.js:1758 +msgid "number" msgstr "" -#: js/piemenus.js:3015 -#: js/piemenus.js:3088 -#: js/musicutils.js:653 -#.TRANS: modal scale for music -msgid "ionian" +#: js/rubrics.js:529 +#: js/turtledefs.js:127 +#: js/turtledefs.js:229 +msgid "flow" msgstr "" -#: js/piemenus.js:3017 -#: js/piemenus.js:3092 -#: js/musicutils.js:633 -#: js/musicutils.js:811 -#: js/musicutils.js:909 -#.TRANS: minor is a music term related to intervals and mode -msgid "minor" +#: js/rubrics.js:530 +#: js/turtledefs.js:128 +#: js/turtledefs.js:230 +#: js/block-verbose.js:1609 +#: js/block-verbose.js:4559 +#: js/block-verbose.js:4577 +#: js/block-verbose.js:4588 +#: js/block.js:1573 +#: js/block.js:4483 +#: js/block.js:4501 +#: js/block.js:4512 +#: js/blocks.js:1018 +#: js/blocks.js:3491 +#: js/blocks.js:3492 +#: js/blocks.js:3717 +#: js/blocks.js:4076 +#: js/blocks.js:4269 +#: js/blocks.js:5432 +#: js/blocks.js:6563 +#: js/macros.js:170 +#: js/macros.js:266 +#: js/macros.js:267 +#: js/macros.js:276 +#: js/macros.js:828 +#: js/palette.js:527 +#: js/palette.js:536 +#: js/palette.js:545 +#: js/palette.js:554 +#: js/palette.js:1129 +#: js/palette.js:1140 +#: js/palette.js:1151 +#: js/palette.js:1162 +#: js/palette.js:1181 +#: js/blocks/ActionBlocks.js:254 +#: js/blocks/ActionBlocks.js:307 +#: js/blocks/ActionBlocks.js:617 +#: js/blocks/ActionBlocks.js:716 +#: js/blocks/ActionBlocks.js:961 +#: js/blocks/ActionBlocks.js:1049 +#: js/blocks/ActionBlocks.js:1322 +#: js/blocks/ActionBlocks.js:1325 +#: js/blocks/ActionBlocks.js:1337 +#: js/blocks/ActionBlocks.js:1404 +#: js/blocks/MeterBlocks.js:715 +#: js/blocks/MeterBlocks.js:768 +#: js/blocks/MeterBlocks.js:831 +#: js/blocks/MeterBlocks.js:892 +#: js/widgets/musickeyboard.js:2986 +#: js/widgets/phrasemaker.js:4913 +#: js/widgets/rhythmruler.js:2319 +#: js/widgets/rhythmruler.js:2326 +#: js/widgets/rhythmruler.js:2511 +#: js/widgets/rhythmruler.js:2518 +msgid "action" msgstr "" -#: js/piemenus.js:3017 -#: js/piemenus.js:3092 -#: js/musicutils.js:663 -#.TRANS: modal scale for music -msgid "aeolian" +#: js/rubrics.js:531 +#: js/turtledefs.js:136 +#: js/turtledefs.js:238 +msgid "sensors" msgstr "" -#: js/piemenus.js:3407 -msgid "Duplicate" +#: js/rubrics.js:532 +#: js/turtledefs.js:135 +#: js/turtledefs.js:237 +#: js/blocks/MediaBlocks.js:930 +msgid "media" msgstr "" -#: js/piemenus.js:3408 -#: js/turtledefs.js:534 -msgid "Extract" +#: js/rubrics.js:533 +msgid "mice" msgstr "" -#: js/piemenus.js:3409 -msgid "Move to trash" +#: js/toolbar.js:48 +#: js/toolbar.js:109 +msgid "About Music Blocks" msgstr "" -#: js/piemenus.js:3410 -#: js/timbre.js:968 -#: js/StringHelper.js:69 -msgid "Close" +#: js/toolbar.js:49 +#: js/toolbar.js:110 +#: js/toolbar.js:175 +#: js/toolbar.js:231 +#: js/turtledefs.js:445 +#: js/turtledefs.js:482 +#: js/activity.js:2660 +#: js/activity.js:2671 +#: js/activity.js:2902 +#: js/widgets/modewidget.js:77 +#: js/widgets/meterwidget.js:185 +#: js/widgets/pitchdrummatrix.js:147 +#: js/widgets/pitchdrummatrix.js:687 +#: js/widgets/pitchdrummatrix.js:689 +#: js/widgets/pitchdrummatrix.js:741 +#: js/widgets/pitchdrummatrix.js:743 +#: js/widgets/pitchdrummatrix.js:758 +#: js/widgets/pitchdrummatrix.js:760 +#: js/widgets/pitchdrummatrix.js:789 +#: js/widgets/pitchdrummatrix.js:791 +#: js/widgets/pitchstaircase.js:121 +#: js/widgets/temperament.js:610 +#: js/widgets/temperament.js:613 +#: js/widgets/temperament.js:673 +#: js/widgets/temperament.js:675 +#: js/widgets/temperament.js:2017 +#: js/widgets/temperament.js:2019 +#: js/widgets/tempo.js:84 +#: js/widgets/tempo.js:86 +#: js/widgets/timbre.js:432 +#: js/widgets/timbre.js:434 +#: js/widgets/timbre.js:465 +#: js/widgets/timbre.js:467 +#: js/widgets/timbre.js:746 +#: js/widgets/aiwidget.js:647 +#: js/widgets/aiwidget.js:654 +#: js/widgets/aiwidget.js:656 +#: js/widgets/arpeggio.js:90 +#: js/widgets/arpeggio.js:547 +#: js/widgets/arpeggio.js:549 +#: js/widgets/arpeggio.js:644 +#: js/widgets/arpeggio.js:646 +#: js/widgets/musickeyboard.js:676 +#: js/widgets/musickeyboard.js:872 +#: js/widgets/musickeyboard.js:874 +#: js/widgets/musickeyboard.js:953 +#: js/widgets/musickeyboard.js:955 +#: js/widgets/phrasemaker.js:513 +#: js/widgets/phrasemaker.js:523 +#: js/widgets/phrasemaker.js:525 +#: js/widgets/phrasemaker.js:4304 +#: js/widgets/phrasemaker.js:4528 +#: js/widgets/phrasemaker.js:4533 +#: js/widgets/phrasemaker.js:4535 +#: js/widgets/phrasemaker.js:4650 +#: js/widgets/rhythmruler.js:637 +#: js/widgets/rhythmruler.js:639 +#: js/widgets/rhythmruler.js:653 +#: js/widgets/rhythmruler.js:655 +#: js/widgets/sampler.js:162 +#: js/widgets/sampler.js:164 +#: js/widgets/sampler.js:363 +msgid "Play" msgstr "" -#: js/piemenus.js:3416 -msgid "Save stack" +#: js/toolbar.js:50 +#: js/toolbar.js:111 +#: js/toolbar.js:176 +#: js/toolbar.js:232 +#: js/turtledefs.js:451 +#: js/turtledefs.js:488 +#: js/activity.js:2679 +#: js/widgets/modewidget.js:99 +#: js/widgets/modewidget.js:101 +#: js/widgets/meterwidget.js:206 +#: js/widgets/meterwidget.js:208 +#: js/widgets/pitchdrummatrix.js:674 +#: js/widgets/pitchdrummatrix.js:676 +#: js/widgets/temperament.js:2002 +#: js/widgets/temperament.js:2004 +#: js/widgets/arpeggio.js:534 +#: js/widgets/arpeggio.js:536 +#: js/widgets/phrasemaker.js:534 +#: js/widgets/phrasemaker.js:536 +msgid "Stop" msgstr "" -#: js/piemenus.js:3420 -#: js/toolbar.js:60 -#: js/toolbar.js:120 -#: js/toolbar.js:185 -#: js/toolbar.js:240 -#: js/turtledefs.js:752 -msgid "Help" +#: js/toolbar.js:51 +#: js/toolbar.js:112 +#: js/toolbar.js:177 +#: js/toolbar.js:233 +#: js/turtledefs.js:498 +msgid "Record" msgstr "" -#: js/piemenus.js:3762 -msgid "You have chosen key " +#: js/toolbar.js:52 +#: js/toolbar.js:53 +msgid "Full screen" msgstr "" -#: js/piemenus.js:3766 -msgid " for your pitch preview." +#: js/toolbar.js:54 +#: js/toolbar.js:115 +#: js/toolbar.js:180 +#: js/toolbar.js:236 +#: js/turtledefs.js:504 +msgid "Toggle Fullscreen" +msgstr "" + +#: js/toolbar.js:55 +#: js/toolbar.js:116 +#: js/toolbar.js:181 +#: js/toolbar.js:237 +#: js/turtledefs.js:510 +#: planet/js/StringHelper.js:33 +msgid "New project" +msgstr "" + +#: js/toolbar.js:56 +#: js/toolbar.js:117 +#: js/toolbar.js:182 +#: js/toolbar.js:238 +#: js/turtledefs.js:516 +msgid "Load project from file" +msgstr "" + +#: js/toolbar.js:57 +#: js/toolbar.js:118 +#: js/toolbar.js:119 +#: js/toolbar.js:183 +#: js/toolbar.js:239 +#: js/turtledefs.js:541 +#: js/turtledefs.js:550 +#: js/turtledefs.js:571 +msgid "Save project" +msgstr "" + +#: js/toolbar.js:58 +#: js/toolbar.js:77 +#: js/toolbar.js:79 +#: js/toolbar.js:138 +#: js/toolbar.js:147 +#: js/toolbar.js:149 +#: js/toolbar.js:184 +#: js/toolbar.js:202 +#: js/toolbar.js:204 +#: js/toolbar.js:240 +#: js/toolbar.js:258 +#: js/toolbar.js:260 +msgid "Save project as HTML" +msgstr "" + +#: js/toolbar.js:59 +#: js/toolbar.js:120 +#: js/toolbar.js:185 +#: js/toolbar.js:241 +msgid "Find and share projects" +msgstr "" + +#: js/toolbar.js:60 +#: js/toolbar.js:121 +#: js/toolbar.js:186 +#: js/toolbar.js:242 +msgid "Offline. Sharing is unavailable" +msgstr "" + +#: js/toolbar.js:61 +#: js/toolbar.js:122 +#: js/toolbar.js:187 +#: js/toolbar.js:243 +msgid "Auxiliary menu" +msgstr "" + +#: js/toolbar.js:62 +#: js/toolbar.js:123 +#: js/toolbar.js:188 +#: js/toolbar.js:244 +#: js/turtledefs.js:752 +#: js/piemenus.js:3423 +msgid "Help" +msgstr "" + +#: js/toolbar.js:63 +#: js/toolbar.js:124 +#: js/toolbar.js:189 +#: js/toolbar.js:245 +msgid "Run slowly" +msgstr "" + +#: js/toolbar.js:64 +#: js/toolbar.js:125 +#: js/toolbar.js:190 +#: js/toolbar.js:246 +#: js/turtledefs.js:682 +msgid "Run step by step" +msgstr "" + +#: js/toolbar.js:65 +#: js/toolbar.js:126 +#: js/toolbar.js:191 +#: js/toolbar.js:247 +#: js/turtledefs.js:689 +msgid "Display statistics" +msgstr "" + +#: js/toolbar.js:66 +#: js/toolbar.js:127 +#: js/toolbar.js:192 +#: js/toolbar.js:248 +msgid "Load plugin" +msgstr "" + +#: js/toolbar.js:67 +#: js/toolbar.js:128 +#: js/toolbar.js:193 +#: js/toolbar.js:249 +#: js/turtledefs.js:696 +msgid "Delete plugin" +msgstr "" + +#: js/toolbar.js:68 +#: js/toolbar.js:129 +#: js/toolbar.js:194 +#: js/toolbar.js:250 +msgid "Enable horizontal scrolling" +msgstr "" + +#: js/toolbar.js:69 +#: js/toolbar.js:130 +#: js/toolbar.js:195 +#: js/toolbar.js:251 +msgid "Disable horizontal scrolling" +msgstr "" + +#: js/toolbar.js:70 +#: js/toolbar.js:131 +#: js/toolbar.js:196 +#: js/toolbar.js:252 +#: planet/js/LocalCard.js:54 +#: planet/js/StringHelper.js:71 +msgid "Merge with current project" +msgstr "" + +#: js/toolbar.js:71 +#: js/toolbar.js:132 +msgid "Set Pitch Preview" +msgstr "" + +#: js/toolbar.js:72 +#: js/toolbar.js:133 +#: js/toolbar.js:197 +#: js/toolbar.js:253 +msgid "JavaScript Editor" +msgstr "" + +#: js/toolbar.js:73 +#: js/toolbar.js:134 +#: js/toolbar.js:198 +#: js/toolbar.js:254 +#: js/turtledefs.js:724 +msgid "Restore" +msgstr "" + +#: js/toolbar.js:74 +#: js/toolbar.js:135 +#: js/toolbar.js:199 +#: js/toolbar.js:255 +msgid "Switch to beginner mode" +msgstr "" + +#: js/toolbar.js:75 +#: js/toolbar.js:136 +#: js/toolbar.js:200 +#: js/toolbar.js:256 +msgid "Switch to advanced mode" +msgstr "" + +#: js/toolbar.js:76 +#: js/toolbar.js:137 +#: js/toolbar.js:146 +#: js/toolbar.js:201 +#: js/toolbar.js:257 +#: js/turtledefs.js:738 +msgid "Select language" +msgstr "" + +#: js/toolbar.js:78 +#: js/toolbar.js:81 +#: js/toolbar.js:140 +#: js/turtledefs.js:579 +msgid "Save mouse artwork as PNG" +msgstr "" + +#: js/toolbar.js:80 +#: js/toolbar.js:139 +#: js/turtledefs.js:575 +msgid "Save mouse artwork as SVG" +msgstr "" + +#: js/toolbar.js:82 +#: js/toolbar.js:141 +#: js/turtledefs.js:583 +msgid "Save music as WAV" +msgstr "" + +#: js/toolbar.js:83 +#: js/toolbar.js:142 +#: js/turtledefs.js:587 +msgid "Save sheet music as ABC" +msgstr "" + +#: js/toolbar.js:84 +#: js/toolbar.js:143 +#: js/turtledefs.js:591 +msgid "Save sheet music as Lilypond" +msgstr "" + +#: js/toolbar.js:85 +msgid "Save sheet music as MusicXML" +msgstr "" + +#: js/toolbar.js:86 +#: js/toolbar.js:144 +#: js/toolbar.js:152 +#: js/toolbar.js:207 +#: js/toolbar.js:263 +#: js/turtledefs.js:562 +#: js/turtledefs.js:595 +msgid "Save block artwork as SVG" +msgstr "" + +#: js/toolbar.js:87 +#: js/toolbar.js:145 +#: js/toolbar.js:153 +#: js/toolbar.js:208 +#: js/toolbar.js:264 +#: js/turtles.js:911 +msgid "Confirm" +msgstr "" + +#: js/toolbar.js:88 +#: js/toolbar.js:154 +#: js/toolbar.js:209 +#: js/toolbar.js:265 +msgid "English (United States)" +msgstr "" + +#: js/toolbar.js:89 +#: js/toolbar.js:155 +#: js/toolbar.js:210 +#: js/toolbar.js:266 +msgid "English (United Kingdom)" +msgstr "" + +#: js/toolbar.js:90 +#: js/toolbar.js:156 +#: js/toolbar.js:211 +#: js/toolbar.js:267 +msgid "日本語" +msgstr "" + +#: js/toolbar.js:91 +msgid "한국어" +msgstr "" + +#: js/toolbar.js:92 +#: js/toolbar.js:158 +#: js/toolbar.js:213 +#: js/toolbar.js:269 +msgid "español" +msgstr "" + +#: js/toolbar.js:93 +#: js/toolbar.js:159 +#: js/toolbar.js:214 +#: js/toolbar.js:270 +msgid "português" +msgstr "" + +#: js/toolbar.js:94 +#: js/toolbar.js:160 +#: js/toolbar.js:215 +#: js/toolbar.js:271 +msgid "にほんご" +msgstr "" + +#: js/toolbar.js:95 +#: js/toolbar.js:161 +#: js/toolbar.js:216 +#: js/toolbar.js:272 +msgid "中文" +msgstr "" + +#: js/toolbar.js:96 +#: js/toolbar.js:162 +#: js/toolbar.js:217 +#: js/toolbar.js:273 +msgid "ภาษาไทย" +msgstr "" + +#: js/toolbar.js:97 +#: js/toolbar.js:163 +#: js/toolbar.js:218 +#: js/toolbar.js:274 +msgid "aymara" +msgstr "" + +#: js/toolbar.js:98 +#: js/toolbar.js:164 +#: js/toolbar.js:219 +#: js/toolbar.js:275 +msgid "quechua" +msgstr "" + +#: js/toolbar.js:99 +#: js/toolbar.js:165 +#: js/toolbar.js:220 +#: js/toolbar.js:276 +msgid "guarani" +msgstr "" + +#: js/toolbar.js:100 +#: js/toolbar.js:166 +#: js/toolbar.js:221 +#: js/toolbar.js:277 +msgid "हिंदी" +msgstr "" + +#: js/toolbar.js:101 +#: js/toolbar.js:168 +#: js/toolbar.js:222 +#: js/toolbar.js:279 +msgid "igbo" +msgstr "" + +#: js/toolbar.js:102 +#: js/toolbar.js:169 +#: js/toolbar.js:223 +#: js/toolbar.js:280 +msgid "عربى" +msgstr "" + +#: js/toolbar.js:103 +#: js/toolbar.js:167 +#: js/toolbar.js:224 +#: js/toolbar.js:278 +msgid "తెలుగు" +msgstr "" + +#: js/toolbar.js:104 +#: js/toolbar.js:170 +#: js/toolbar.js:225 +#: js/toolbar.js:281 +msgid "עִברִית" +msgstr "" + +#: js/toolbar.js:113 +#: js/toolbar.js:114 +#: js/toolbar.js:178 +#: js/toolbar.js:179 +#: js/toolbar.js:234 +#: js/toolbar.js:235 +msgid "Full Screen" +msgstr "" + +#: js/toolbar.js:148 +#: js/toolbar.js:151 +#: js/toolbar.js:203 +#: js/toolbar.js:206 +#: js/toolbar.js:259 +#: js/toolbar.js:262 +#: js/turtledefs.js:558 +msgid "Save turtle artwork as PNG" +msgstr "" + +#: js/toolbar.js:150 +#: js/toolbar.js:205 +#: js/toolbar.js:261 +#: js/turtledefs.js:554 +msgid "Save turtle artwork as SVG" +msgstr "" + +#: js/toolbar.js:157 +#: js/toolbar.js:212 +#: js/toolbar.js:268 +msgid "한국인" +msgstr "" + +#: js/toolbar.js:174 +#: js/toolbar.js:230 +msgid "About Turtle Blocks" +msgstr "" + +#: js/toolbar.js:446 +#: js/toolbar.js:457 +#: js/toolbar.js:497 +msgid "Turtle Wrap Off" +msgstr "" + +#: js/toolbar.js:466 +#: js/toolbar.js:506 +msgid "Turtle Wrap On" +msgstr "" + +#: js/turtle-painter.js:1192 +#: js/turtle-painter.js:1193 +#: js/turtles.js:118 +#: js/block-verbose.js:1623 +#: js/block.js:1587 +#: js/lilypond.js:749 +#: js/lilypond.js:913 +#: js/lilypond.js:951 +#: js/logo.js:1184 +#: js/blocks/ActionBlocks.js:1223 +#: js/blocks/ProgramBlocks.js:1267 +msgid "start" +msgstr "" + +#: js/turtledefs.js:40 +#.TRANS: put the URL to the guide here, e.g., https://github.com/sugarlabs/turtleblocksjs/tree/master/guide/README.md +msgid "guide url" +msgstr "" + +#: js/turtledefs.js:85 +#: js/turtledefs.js:437 +msgid "Turtle Blocks is a Logo-inspired turtle that draws colorful pictures with snap-together visual-programming blocks." +msgstr "" + +#: js/turtledefs.js:118 +#: js/turtledefs.js:220 +msgid "search" +msgstr "" + +#: js/turtledefs.js:120 +#: js/turtledefs.js:222 +#: js/blocks/MeterBlocks.js:1343 +#: js/blocks/WidgetBlocks.js:522 +#.TRANS: musical meter (time signature), e.g., 4:4 +msgid "meter" +msgstr "" + +#: js/turtledefs.js:122 +#: js/turtledefs.js:224 +msgid "intervals" +msgstr "" + +#: js/turtledefs.js:124 +#: js/turtledefs.js:226 +msgid "ornament" +msgstr "" + +#: js/turtledefs.js:125 +#: js/turtledefs.js:227 +#: js/blocks/VolumeBlocks.js:362 +#: js/blocks/VolumeBlocks.js:502 +#: js/blocks/VolumeBlocks.js:545 +msgid "volume" +msgstr "" + +#: js/turtledefs.js:126 +#: js/turtledefs.js:228 +#: js/block-verbose.js:1700 +#: js/block-verbose.js:2626 +#: js/block.js:1664 +#: js/block.js:2554 +#: js/lilypond.js:732 +#: js/lilypond.js:897 +#: js/lilypond.js:941 +#: js/palette.js:577 +#: js/blocks/RhythmBlocks.js:766 +#: js/blocks/DrumBlocks.js:477 +#: js/blocks/VolumeBlocks.js:502 +#: js/widgets/phrasemaker.js:1038 +msgid "drum" +msgstr "" + +#: js/turtledefs.js:129 +#: js/turtledefs.js:231 +msgid "boxes" +msgstr "" + +#: js/turtledefs.js:130 +#: js/turtledefs.js:232 +msgid "widgets" +msgstr "" + +#: js/turtledefs.js:131 +#: js/turtledefs.js:233 +#: js/widgets/phrasemaker.js:1039 +msgid "graphics" +msgstr "" + +#: js/turtledefs.js:134 +#: js/turtledefs.js:236 +msgid "boolean" +msgstr "" + +#: js/turtledefs.js:137 +#: js/turtledefs.js:239 +#: js/blocks/HeapBlocks.js:59 +#: js/widgets/status.js:147 +msgid "heap" +msgstr "" + +#: js/turtledefs.js:138 +#: js/turtledefs.js:240 +#: js/blocks/DictBlocks.js:142 +#: js/blocks/ProgramBlocks.js:495 +msgid "dictionary" +msgstr "" + +#: js/turtledefs.js:139 +#: js/turtledefs.js:241 +msgid "ensemble" +msgstr "" + +#: js/turtledefs.js:140 +#: js/turtledefs.js:242 +msgid "extras" +msgstr "" + +#: js/turtledefs.js:142 +#: js/turtledefs.js:244 +#.TRANS: program as in computer program +#.TRANS: program as in computer program +msgid "program" +msgstr "" + +#: js/turtledefs.js:143 +#: js/turtledefs.js:245 +msgid "my blocks" +msgstr "" + +#: js/turtledefs.js:185 +#: js/turtledefs.js:281 +msgid "artwork" +msgstr "" + +#: js/turtledefs.js:185 +#: js/turtledefs.js:281 +msgid "logic" +msgstr "" + +#: js/turtledefs.js:185 +#: js/turtledefs.js:281 +msgid "music" +msgstr "" + +#: js/turtledefs.js:187 +#: js/turtledefs.js:463 +msgid "Music Blocks is a collection of tools for exploring fundamental musical concepts in a fun way." +msgstr "" + +#: js/turtledefs.js:436 +msgid "Welcome to Turtle Blocks" +msgstr "" + +#: js/turtledefs.js:438 +#: js/turtledefs.js:465 +#: js/turtledefs.js:774 +#: js/turtledefs.js:805 +msgid "The current version is" +msgstr "" + +#: js/turtledefs.js:446 +#: js/turtledefs.js:483 +msgid "Click the run button to run the project in fast mode." +msgstr "" + +#: js/turtledefs.js:452 +msgid "Stop the turtle." +msgstr "" + +#: js/turtledefs.js:454 +#: js/turtledefs.js:491 +msgid "You can also type Alt-S to stop." +msgstr "" + +#: js/turtledefs.js:462 +#: js/widgets/help.js:333 +msgid "Welcome to Music Blocks" +msgstr "" + +#: js/turtledefs.js:472 +#: js/widgets/help.js:334 +msgid "Meet Mr. Mouse!" +msgstr "" + +#: js/turtledefs.js:473 +msgid "Mr Mouse is our Music Blocks conductor." +msgstr "" + +#: js/turtledefs.js:475 +msgid "Mr Mouse encourages you to explore Music Blocks." +msgstr "" + +#: js/turtledefs.js:477 +msgid "Let us start our tour!" +msgstr "" + +#: js/turtledefs.js:489 +msgid "Stop the music (and the mice)." +msgstr "" + +#: js/turtledefs.js:499 +msgid "Record your project as video." +msgstr "" + +#: js/turtledefs.js:505 +msgid "Toggle Fullscreen mode." +msgstr "" + +#: js/turtledefs.js:511 +msgid "Initialize a new project." +msgstr "" + +#: js/turtledefs.js:517 +msgid "You can also load projects from the file system." +msgstr "" + +#: js/turtledefs.js:522 +#: planet/js/StringHelper.js:46 +msgid "Delete" +msgstr "" + +#: js/turtledefs.js:523 +msgid "To delete a block, just right-click on it, then you will be able to see the delete option" +msgstr "" + +#: js/turtledefs.js:528 +#: js/activity.js:2649 +#: planet/js/LocalCard.js:31 +msgid "Copy" +msgstr "" + +#: js/turtledefs.js:529 +msgid "To copy a block, just right-click on it, then you will be able to see the copy option" +msgstr "" + +#: js/turtledefs.js:534 +#: js/piemenus.js:3411 +msgid "Extract" +msgstr "" + +#: js/turtledefs.js:535 +msgid "To extract a block, just right-click on it, then you will be able to see the extract option" +msgstr "" + +#: js/turtledefs.js:542 +#: js/turtledefs.js:552 +#: js/turtledefs.js:573 +msgid "Save your project to a file." +msgstr "" + +#: js/turtledefs.js:549 +#: js/turtledefs.js:570 +msgid "save" +msgstr "" + +#: js/turtledefs.js:556 +#: js/turtledefs.js:577 +msgid "Save graphics from your project to as SVG." +msgstr "" + +#: js/turtledefs.js:560 +#: js/turtledefs.js:581 +msgid "Save graphics from your project as PNG." +msgstr "" + +#: js/turtledefs.js:564 +#: js/turtledefs.js:597 +msgid "Save block artwork as an SVG file." +msgstr "" + +#: js/turtledefs.js:585 +msgid "Save audio from your project as WAV." +msgstr "" + +#: js/turtledefs.js:589 +msgid "Save your project to as an ABC file." +msgstr "" + +#: js/turtledefs.js:593 +msgid "Save your project to as a Lilypond file." +msgstr "" + +#: js/turtledefs.js:604 +msgid "Load samples from server" +msgstr "" + +#: js/turtledefs.js:605 +msgid "This button opens a viewer for loading example projects." +msgstr "" + +#: js/turtledefs.js:611 +msgid "Palette buttons" +msgstr "" + +#: js/turtledefs.js:612 +msgid "This toolbar contains the palette buttons including Rhythm Pitch Tone Action and more." +msgstr "" + +#: js/turtledefs.js:614 +msgid "Click to show the palettes of blocks and drag blocks from the palettes onto the canvas to use them." +msgstr "" + +#: js/turtledefs.js:620 +msgid "Cartesian/Polar" +msgstr "" + +#: js/turtledefs.js:621 +msgid "Show or hide a coordinate grid." +msgstr "" + +#: js/turtledefs.js:626 +#: js/turtles.js:902 +msgid "Clean" +msgstr "" + +#: js/turtledefs.js:627 +msgid "Clear the screen and return the mice to their initial positions." +msgstr "" + +#: js/turtledefs.js:632 +#: js/turtles.js:955 +msgid "Collapse" +msgstr "" + +#: js/turtledefs.js:633 +msgid "Collapse the graphics window." msgstr "" -#: js/palette.js:571 -msgid "grid" +#: js/turtledefs.js:638 +#: js/activity.js:5684 +msgid "Home" msgstr "" -#: js/palette.js:577 -#: js/block.js:1540 -#: js/block.js:2343 -#: js/turtledefs.js:126 -#: js/turtledefs.js:228 -#: js/lilypond.js:740 -#: js/lilypond.js:905 -#: js/lilypond.js:949 -#: js/DrumBlocks.js:486 -#: js/RhythmBlocks.js:766 -#: js/VolumeBlocks.js:502 -#: js/phrasemaker.js:823 -msgid "drum" +#: js/turtledefs.js:639 +msgid "Return all blocks to the center of the screen." msgstr "" -#: js/palette.js:580 -msgid "effect" +#: js/turtledefs.js:644 +msgid "Show/hide blocks" msgstr "" -#: js/palette.js:586 -msgid "sargam" +#: js/turtledefs.js:645 +msgid "Hide or show the blocks and the palettes." msgstr "" -#: js/palette.js:589 -#: js/activity.js:1833 -#: js/RhythmBlocks.js:923 -#: js/PitchBlocks.js:442 -#: js/PitchBlocks.js:1748 -#.TRANS: a numeric mapping of the notes in an octave based on the musical mode -msgid "scale degree" +#: js/turtledefs.js:650 +msgid "Expand/collapse collapsable blocks" msgstr "" -#: js/palette.js:592 -#: js/activity.js:1860 -msgid "mode name" +#: js/turtledefs.js:651 +msgid "Expand or collapse start and action stacks." msgstr "" -#: js/palette.js:595 -#: js/activity.js:1839 -msgid "invert mode" +#: js/turtledefs.js:658 +#: js/activity.js:5704 +msgid "Decrease block size" msgstr "" -#: js/palette.js:598 -#: js/activity.js:1836 -msgid "voice name" +#: js/turtledefs.js:659 +msgid "Decrease the size of the blocks." msgstr "" -#: js/palette.js:601 -#: js/PitchBlocks.js:1181 -msgid "custom pitch" +#: js/turtledefs.js:664 +#: js/activity.js:5710 +msgid "Increase block size" msgstr "" -#: js/palette.js:605 -#: js/block.js:1456 -#: js/block.js:1575 -#: js/WidgetBlocks.js:218 -#: js/IntervalsBlocks.js:63 -msgid "temperament" +#: js/turtledefs.js:665 +msgid "Increase the size of the blocks." msgstr "" -#: js/palette.js:609 -msgid "accidental" +#: js/turtledefs.js:670 +msgid "Expand/collapse option toolbar" msgstr "" -#: js/palette.js:615 -#: js/activity.js:1866 -msgid "interval name" +#: js/turtledefs.js:671 +msgid "Click this button to expand or collapse the auxillary toolbar." msgstr "" -#: js/palette.js:633 -#: js/PitchBlocks.js:405 -msgid "pitch converter" +#: js/turtledefs.js:676 +msgid "Run slow" msgstr "" -#: js/rubrics.js:522 -#: js/turtledefs.js:119 -#: js/turtledefs.js:221 -#: js/RhythmBlockPaletteBlocks.js:52 -#: js/RhythmBlockPaletteBlocks.js:233 -#: js/ProgramBlocks.js:745 -#: js/rhythmruler.js:1670 -#: js/rhythmruler.js:1677 -#: js/rhythmruler.js:1745 -#: js/rhythmruler.js:1752 -#: js/rhythmruler.js:1830 -#.TRANS: an arrangement of notes based on duration -msgid "rhythm" +#: js/turtledefs.js:677 +msgid "Click to run the project in slow mode." msgstr "" -#: js/rubrics.js:523 -#: js/block.js:2339 -#: js/turtledefs.js:121 -#: js/turtledefs.js:223 -#: js/IntervalsBlocks.js:63 -#: js/PitchBlocks.js:1801 -#: js/PitchBlocks.js:1814 -#: js/SensorsBlocks.js:178 -#: js/phrasemaker.js:821 -#: js/musickeyboard.js:1653 -#.TRANS: pitch number -#.TRANS: we specify pitch in terms of a name and an octave. The name can be CDEFGAB or Do Re Mi Fa Sol La Ti. Octave is a number between 1 and 8. -msgid "pitch" +#: js/turtledefs.js:683 +msgid "Click to run the project step by step." msgstr "" -#: js/rubrics.js:524 -#: js/turtledefs.js:123 -#: js/turtledefs.js:225 -msgid "tone" +#: js/turtledefs.js:690 +msgid "Display statistics about your Music project." msgstr "" -#: js/rubrics.js:525 -#: js/lilypond.js:613 -#: js/lilypond.js:912 -#: js/lilypond.js:918 -#: js/lilypond.js:956 -msgid "mouse" +#: js/turtledefs.js:697 +msgid "Delete a selected plugin." msgstr "" -#: js/rubrics.js:526 -#: js/turtledefs.js:132 -#: js/turtledefs.js:234 -#: js/phrasemaker.js:825 -msgid "pen" +#: js/turtledefs.js:704 +msgid "Enable scrolling" msgstr "" -#: js/rubrics.js:527 -#: js/turtledefs.js:133 -#: js/turtledefs.js:235 -#: js/NumberBlocks.js:905 -#: js/PitchBlocks.js:1679 -#: js/PitchBlocks.js:1720 -msgid "number" +#: js/turtledefs.js:705 +msgid "You can scroll the blocks on the canvas." msgstr "" -#: js/rubrics.js:528 -#: js/turtledefs.js:127 -#: js/turtledefs.js:229 -msgid "flow" +#: js/turtledefs.js:714 +msgid "Wrap Turtle" msgstr "" -#: js/rubrics.js:530 -#: js/turtledefs.js:136 -#: js/turtledefs.js:238 -msgid "sensors" +#: js/turtledefs.js:715 +msgid "Turn Turtle wrapping On or Off." msgstr "" -#: js/rubrics.js:531 -#: js/turtledefs.js:135 -#: js/turtledefs.js:237 -#: js/MediaBlocks.js:930 -msgid "media" +#: js/turtledefs.js:725 +msgid "Restore blocks from the trash." msgstr "" -#: js/rubrics.js:532 -msgid "mice" +#: js/turtledefs.js:732 +msgid "Switch mode" msgstr "" -#: js/macros.js:711 -#: js/musicutils.js:783 -#: js/synthutils.js:181 -#.TRANS: animal sound effect -msgid "duck" +#: js/turtledefs.js:733 +msgid "Switch between beginner and advance modes." msgstr "" -#: js/toolbar.js:46 -#: js/toolbar.js:107 -msgid "About Music Blocks" +#: js/turtledefs.js:739 +msgid "Select your language preference." msgstr "" -#: js/toolbar.js:47 -#: js/toolbar.js:108 -#: js/toolbar.js:172 -#: js/toolbar.js:228 -#: js/turtledefs.js:445 -#: js/turtledefs.js:482 -#: js/activity.js:2281 -#: js/activity.js:2289 -#: js/activity.js:2520 -#: js/modewidget.js:77 -#: js/pitchstaircase.js:121 -#: js/phrasemaker.js:302 -#: js/phrasemaker.js:312 -#: js/phrasemaker.js:314 -#: js/phrasemaker.js:3901 -#: js/phrasemaker.js:4061 -#: js/phrasemaker.js:4066 -#: js/phrasemaker.js:4068 -#: js/phrasemaker.js:4183 -#: js/pitchdrummatrix.js:81 -#: js/pitchdrummatrix.js:574 -#: js/pitchdrummatrix.js:576 -#: js/pitchdrummatrix.js:628 -#: js/pitchdrummatrix.js:630 -#: js/pitchdrummatrix.js:645 -#: js/pitchdrummatrix.js:647 -#: js/pitchdrummatrix.js:674 -#: js/pitchdrummatrix.js:676 -#: js/temperament.js:477 -#: js/temperament.js:480 -#: js/temperament.js:540 -#: js/temperament.js:542 -#: js/temperament.js:1835 -#: js/temperament.js:1837 -#: js/temperament.js:1986 -#: js/temperament.js:1988 -#: js/musickeyboard.js:522 -#: js/musickeyboard.js:682 -#: js/musickeyboard.js:684 -#: js/musickeyboard.js:756 -#: js/musickeyboard.js:758 -#: js/rhythmruler.js:298 -#: js/rhythmruler.js:300 -#: js/rhythmruler.js:314 -#: js/rhythmruler.js:316 -#: js/sampler.js:96 -#: js/sampler.js:98 -#: js/sampler.js:229 -#: js/sampler.js:235 -#: js/sampler.js:237 -#: js/tempo.js:84 -#: js/tempo.js:86 -#: js/timbre.js:432 -#: js/timbre.js:434 -#: js/timbre.js:465 -#: js/timbre.js:467 -#: js/timbre.js:746 -#: js/meterwidget.js:80 -#: js/arpeggio.js:90 -#: js/arpeggio.js:547 -#: js/arpeggio.js:549 -#: js/arpeggio.js:644 -#: js/arpeggio.js:646 -msgid "Play" +#: js/turtledefs.js:745 +msgid "Keyboard shortcuts" msgstr "" -#: js/toolbar.js:48 -#: js/toolbar.js:109 -#: js/toolbar.js:173 -#: js/toolbar.js:229 -#: js/turtledefs.js:451 -#: js/turtledefs.js:488 -#: js/activity.js:2297 -#: js/modewidget.js:99 -#: js/modewidget.js:101 -#: js/phrasemaker.js:323 -#: js/phrasemaker.js:325 -#: js/pitchdrummatrix.js:561 -#: js/pitchdrummatrix.js:563 -#: js/temperament.js:1820 -#: js/temperament.js:1822 -#: js/meterwidget.js:101 -#: js/meterwidget.js:103 -#: js/arpeggio.js:534 -#: js/arpeggio.js:536 -msgid "Stop" +#: js/turtledefs.js:746 +msgid "You can type d to create a do block and r to create a re block etc." msgstr "" -#: js/toolbar.js:49 -#: js/toolbar.js:110 -#: js/toolbar.js:174 -#: js/toolbar.js:230 -#: js/turtledefs.js:498 -msgid "Record" +#: js/turtledefs.js:753 +msgid "Show these messages." msgstr "" -#: js/toolbar.js:50 -#: js/toolbar.js:51 -msgid "Full screen" +#: js/turtledefs.js:759 +#: js/turtledefs.js:790 +#: js/widgets/help.js:335 +msgid "Guide" msgstr "" -#: js/toolbar.js:52 -#: js/toolbar.js:112 -#: js/toolbar.js:177 -#: js/toolbar.js:232 -#: js/turtledefs.js:504 -msgid "Toggle Fullscreen" +#: js/turtledefs.js:760 +msgid "A detailed guide to Turtle Blocks is available." msgstr "" -#: js/toolbar.js:53 -#: js/toolbar.js:113 -#: js/toolbar.js:178 -#: js/toolbar.js:233 -#: js/turtledefs.js:510 -#: js/StringHelper.js:33 -msgid "New project" +#: js/turtledefs.js:764 +msgid "Turtle Blocks Guide" msgstr "" -#: js/toolbar.js:54 -#: js/toolbar.js:114 -#: js/toolbar.js:179 -#: js/toolbar.js:234 -#: js/turtledefs.js:516 -msgid "Load project from file" +#: js/turtledefs.js:767 +#: js/turtledefs.js:798 +#: js/widgets/help.js:336 +msgid "About" msgstr "" -#: js/toolbar.js:55 -#: js/toolbar.js:115 -#: js/toolbar.js:116 -#: js/toolbar.js:180 -#: js/toolbar.js:235 -#: js/turtledefs.js:541 -#: js/turtledefs.js:550 -#: js/turtledefs.js:571 -msgid "Save project" +#: js/turtledefs.js:768 +msgid "Turtle Blocks is an open source collection of tools for exploring musical concepts." msgstr "" -#: js/toolbar.js:56 -#: js/toolbar.js:75 -#: js/toolbar.js:77 -#: js/toolbar.js:135 -#: js/toolbar.js:144 -#: js/toolbar.js:146 -#: js/toolbar.js:181 -#: js/toolbar.js:199 -#: js/toolbar.js:201 -#: js/toolbar.js:236 -#: js/toolbar.js:254 -#: js/toolbar.js:256 -msgid "Save project as HTML" +#: js/turtledefs.js:770 +msgid "A full list of contributors can be found in the Turtle Blocks GitHub repository." +msgstr "" + +#: js/turtledefs.js:772 +msgid "Turtle Blocks is licensed under the AGPL." +msgstr "" + +#: js/turtledefs.js:780 +msgid "Turtle Blocks GitHub repository" +msgstr "" + +#: js/turtledefs.js:783 +#: js/turtledefs.js:814 +#: js/widgets/help.js:337 +#: js/widgets/help.js:359 +msgid "Congratulations." +msgstr "" + +#: js/turtledefs.js:784 +msgid "You have finished the tour. Please enjoy Turtle Blocks!" +msgstr "" + +#: js/turtledefs.js:791 +msgid "A detailed guide to Music Blocks is available." +msgstr "" + +#: js/turtledefs.js:799 +msgid "Music Blocks is an open source collection of tools for exploring musical concepts." +msgstr "" + +#: js/turtledefs.js:801 +msgid "A full list of contributors can be found in the Music Blocks GitHub repository." +msgstr "" + +#: js/turtledefs.js:803 +msgid "Music Blocks is licensed under the AGPL." +msgstr "" + +#: js/turtledefs.js:811 +msgid "Music Blocks GitHub repository" +msgstr "" + +#: js/turtledefs.js:815 +msgid "You have finished the tour. Please enjoy Music Blocks!" +msgstr "" + +#: js/turtles.js:882 +msgid "Grid" +msgstr "" + +#: js/turtles.js:1024 +msgid "Expand" +msgstr "" + +#: js/block-verbose.js:1616 +#: js/block-verbose.js:1735 +#: js/block.js:1580 +#: js/block.js:1699 +#: js/palette.js:605 +#: js/blocks/IntervalsBlocks.js:63 +#: js/blocks/WidgetBlocks.js:259 +msgid "temperament" +msgstr "" + +#: js/block-verbose.js:1630 +#: js/block.js:1594 +msgid "matrix" msgstr "" -#: js/toolbar.js:57 -#: js/toolbar.js:117 -#: js/toolbar.js:182 -#: js/toolbar.js:237 -msgid "Find and share projects" +#: js/block-verbose.js:1637 +#: js/block.js:1601 +#: js/blocks/WidgetBlocks.js:1509 +#: plugins/rodi.rtp:324 +msgid "status" msgstr "" -#: js/toolbar.js:58 -#: js/toolbar.js:118 -#: js/toolbar.js:183 -#: js/toolbar.js:238 -msgid "Offline. Sharing is unavailable" +#: js/block-verbose.js:1644 +#: js/block.js:1608 +msgid "drum mapper" msgstr "" -#: js/toolbar.js:59 -#: js/toolbar.js:119 -#: js/toolbar.js:184 -#: js/toolbar.js:239 -msgid "Auxiliary menu" +#: js/block-verbose.js:1651 +#: js/block.js:1615 +msgid "ruler" msgstr "" -#: js/toolbar.js:61 -#: js/toolbar.js:121 -#: js/toolbar.js:186 -#: js/toolbar.js:241 -msgid "Run slowly" +#: js/block-verbose.js:1658 +#: js/block.js:1622 +#: js/blocks/WidgetBlocks.js:397 +#.TRANS: timbre is the character or quality of a musical sound +msgid "timbre" msgstr "" -#: js/toolbar.js:62 -#: js/toolbar.js:122 -#: js/toolbar.js:187 -#: js/toolbar.js:242 -#: js/turtledefs.js:682 -msgid "Run step by step" +#: js/block-verbose.js:1665 +#: js/block.js:1629 +msgid "stair" msgstr "" -#: js/toolbar.js:63 -#: js/toolbar.js:123 -#: js/toolbar.js:188 -#: js/toolbar.js:243 -#: js/turtledefs.js:689 -msgid "Display statistics" +#: js/block-verbose.js:1672 +#: js/block.js:1636 +#: js/blocks/WidgetBlocks.js:707 +#.TRANS: the speed at music is should be played. +msgid "tempo" msgstr "" -#: js/toolbar.js:64 -#: js/toolbar.js:124 -#: js/toolbar.js:189 -#: js/toolbar.js:244 -msgid "Load plugin" +#: js/block-verbose.js:1679 +#: js/block-verbose.js:1742 +#: js/block.js:1643 +#: js/block.js:1706 +#: js/blocks/IntervalsBlocks.js:1464 +#.TRANS: mode, e.g., Major in C Major +msgid "mode" msgstr "" -#: js/toolbar.js:65 -#: js/toolbar.js:125 -#: js/toolbar.js:190 -#: js/toolbar.js:245 -#: js/turtledefs.js:696 -msgid "Delete plugin" +#: js/block-verbose.js:1686 +#: js/block.js:1650 +msgid "slider" msgstr "" -#: js/toolbar.js:66 -#: js/toolbar.js:126 -#: js/toolbar.js:191 -#: js/toolbar.js:246 -msgid "Enable horizontal scrolling" +#: js/block-verbose.js:1693 +#: js/block.js:1657 +#: js/blocks/SensorsBlocks.js:1001 +msgid "keyboard" msgstr "" -#: js/toolbar.js:67 -#: js/toolbar.js:127 -#: js/toolbar.js:192 -#: js/toolbar.js:247 -msgid "Disable horizontal scrolling" +#: js/block-verbose.js:1707 +#: js/block.js:1671 +#: js/blocks/WidgetBlocks.js:1190 +#: js/blocks/WidgetBlocks.js:1228 +#.TRANS: widget for subdividing a measure into distinct rhythmic elements +msgid "rhythm maker" msgstr "" -#: js/toolbar.js:68 -#: js/toolbar.js:128 -#: js/toolbar.js:193 -#: js/toolbar.js:248 -#: js/LocalCard.js:54 -#: js/StringHelper.js:71 -msgid "Merge with current project" +#: js/block-verbose.js:1714 +#: js/block-verbose.js:2457 +#: js/block-verbose.js:2514 +#: js/block.js:1678 +#: js/block.js:2385 +#: js/block.js:2442 +#: js/blocks/MeterBlocks.js:1367 +#: js/blocks/OrnamentBlocks.js:220 +#: js/blocks/OrnamentBlocks.js:312 +#: js/blocks/RhythmBlocks.js:33 +#: js/blocks/RhythmBlocks.js:356 +#: js/blocks/RhythmBlocks.js:766 +#: js/blocks/RhythmBlocks.js:806 +#: js/blocks/RhythmBlockPaletteBlocks.js:70 +#: js/blocks/RhythmBlockPaletteBlocks.js:252 +#: js/blocks/RhythmBlockPaletteBlocks.js:485 +#: js/blocks/RhythmBlockPaletteBlocks.js:554 +#: js/blocks/RhythmBlockPaletteBlocks.js:605 +#: js/blocks/RhythmBlockPaletteBlocks.js:875 +#: js/turtleactions/DictActions.js:85 +#: js/widgets/phrasemaker.js:942 +#: js/widgets/phrasemaker.js:2656 +#: js/widgets/phrasemaker.js:2699 +#: js/widgets/phrasemaker.js:2810 +#.TRANS: the value (e.g., 1/4 note) of the note being played. +msgid "note value" msgstr "" -#: js/toolbar.js:69 -#: js/toolbar.js:129 -msgid "Set Pitch Preview" +#: js/block-verbose.js:1721 +#: js/block-verbose.js:2382 +#: js/block-verbose.js:2405 +#: js/block.js:1685 +#: js/block.js:2310 +#: js/block.js:2333 +#: js/blocks/IntervalsBlocks.js:1071 +#: js/blocks/OrnamentBlocks.js:312 +#.TRANS: calculate a relative step between notes based on semi-tones +msgid "scalar interval" msgstr "" -#: js/toolbar.js:70 -#: js/toolbar.js:130 -#: js/toolbar.js:194 -#: js/toolbar.js:249 -msgid "Toggle JavaScript Editor" +#: js/block-verbose.js:1728 +#: js/block.js:1692 +#: js/blocks/RhythmBlocks.js:148 +msgid "milliseconds" msgstr "" -#: js/toolbar.js:71 -#: js/toolbar.js:131 -#: js/toolbar.js:195 -#: js/toolbar.js:250 -#: js/turtledefs.js:724 -msgid "Restore" +#: js/block-verbose.js:2455 +#: js/block-verbose.js:2459 +#: js/block-verbose.js:2512 +#: js/block-verbose.js:2628 +#: js/block.js:2383 +#: js/block.js:2387 +#: js/block.js:2440 +#: js/block.js:2556 +#: js/blocks/RhythmBlocks.js:712 +#: js/blocks/ProgramBlocks.js:1273 +#: js/widgets/rhythmruler.js:1183 +#: js/widgets/rhythmruler.js:1329 +msgid "silence" msgstr "" -#: js/toolbar.js:72 -#: js/toolbar.js:132 -#: js/toolbar.js:196 -#: js/toolbar.js:251 -msgid "Switch to beginner mode" +#: js/block-verbose.js:2548 +#: js/block-verbose.js:3492 +#: js/block-verbose.js:3509 +#: js/activity.js:2718 +#: js/activity.js:2769 +#: js/block.js:2476 +#: js/block.js:3416 +#: js/block.js:3433 +#: js/utils/musicutils.js:3780 +#: js/utils/musicutils.js:5273 +#.TRANS: the note names must be separated by single spaces +#.TRANS: the note names must be separated by single spaces +#.TRANS: the note names must be separated by single spaces +msgid "ti la sol fa mi re do" msgstr "" -#: js/toolbar.js:73 -#: js/toolbar.js:133 -#: js/toolbar.js:197 -#: js/toolbar.js:252 -msgid "Switch to advanced mode" +#: js/block-verbose.js:2616 +#: js/block.js:2544 +#.TRANS: scalar step +#.TRANS: scalar step +msgid "down" msgstr "" -#: js/toolbar.js:74 -#: js/toolbar.js:134 -#: js/toolbar.js:143 -#: js/toolbar.js:198 -#: js/toolbar.js:253 -#: js/turtledefs.js:738 -msgid "Select language" +#: js/block-verbose.js:2617 +#: js/block.js:2545 +msgid "up" msgstr "" -#: js/toolbar.js:76 -#: js/toolbar.js:79 -#: js/toolbar.js:137 -#: js/turtledefs.js:579 -msgid "Save mouse artwork as PNG" +#: js/block-verbose.js:3026 +#: js/block.js:2950 +msgid "Silence block cannot be removed." msgstr "" -#: js/toolbar.js:78 -#: js/toolbar.js:136 -#: js/turtledefs.js:575 -msgid "Save mouse artwork as SVG" +#: js/block-verbose.js:3824 +#: js/block.js:3748 +#: js/blocks.js:2607 +#: js/blocks.js:3218 +#: js/palette.js:618 +#: js/blocks/BooleanBlocks.js:77 +#: js/blocks/BooleanBlocks.js:167 +#: js/blocks/BooleanBlocks.js:251 +#: js/blocks/BooleanBlocks.js:335 +#: js/blocks/BooleanBlocks.js:433 +#: js/blocks/BooleanBlocks.js:539 +#: js/blocks/BooleanBlocks.js:640 +#: js/blocks/BooleanBlocks.js:741 +#: js/blocks/BooleanBlocks.js:847 +#: js/blocks/BooleanBlocks.js:948 +#: js/blocks/BooleanBlocks.js:1033 +#: js/blocks/SensorsBlocks.js:910 +msgid "true" msgstr "" -#: js/toolbar.js:80 -#: js/toolbar.js:138 -#: js/turtledefs.js:583 -msgid "Save music as WAV" +#: js/block-verbose.js:3824 +#: js/block.js:3748 +#: js/blocks.js:2609 +#: js/blocks.js:3220 +#: js/blocks/BooleanBlocks.js:79 +#: js/blocks/BooleanBlocks.js:169 +#: js/blocks/BooleanBlocks.js:253 +#: js/blocks/BooleanBlocks.js:337 +#: js/blocks/BooleanBlocks.js:435 +#: js/blocks/BooleanBlocks.js:541 +#: js/blocks/BooleanBlocks.js:642 +#: js/blocks/BooleanBlocks.js:743 +#: js/blocks/BooleanBlocks.js:849 +#: js/blocks/BooleanBlocks.js:950 +#: js/blocks/SensorsBlocks.js:912 +msgid "false" msgstr "" -#: js/toolbar.js:81 -#: js/toolbar.js:139 -#: js/turtledefs.js:587 -msgid "Save sheet music as ABC" +#: js/block-verbose.js:3835 +#: js/block-verbose.js:3848 +#: js/block.js:3759 +#: js/block.js:3772 +#: js/blocks/ExtrasBlocks.js:615 +msgid "Cartesian" msgstr "" -#: js/toolbar.js:82 -#: js/toolbar.js:140 -#: js/turtledefs.js:591 -msgid "Save sheet music as Lilypond" +#: js/block-verbose.js:3836 +#: js/block-verbose.js:3849 +#: js/block.js:3760 +#: js/block.js:3773 +#: js/blocks/ExtrasBlocks.js:619 +msgid "polar" msgstr "" -#: js/toolbar.js:83 -msgid "Save sheet music as MusicXML" +#: js/block-verbose.js:3837 +#: js/block-verbose.js:3850 +#: js/block.js:3761 +#: js/block.js:3774 +#: js/blocks/ExtrasBlocks.js:623 +msgid "Cartesian+polar" msgstr "" -#: js/toolbar.js:84 -#: js/toolbar.js:141 -#: js/toolbar.js:149 -#: js/toolbar.js:204 -#: js/toolbar.js:259 -#: js/turtledefs.js:562 -#: js/turtledefs.js:595 -msgid "Save block artwork as SVG" +#: js/block-verbose.js:3838 +#: js/block-verbose.js:3857 +#: js/block.js:3762 +#: js/block.js:3781 +#: js/blocks/ExtrasBlocks.js:652 +msgid "none" msgstr "" -#: js/toolbar.js:85 -#: js/toolbar.js:142 -#: js/toolbar.js:150 -#: js/toolbar.js:205 -#: js/toolbar.js:260 -msgid "Confirm" +#: js/block-verbose.js:3851 +#: js/block.js:3775 +#: js/blocks/ExtrasBlocks.js:628 +msgid "treble" msgstr "" -#: js/toolbar.js:86 -#: js/toolbar.js:151 -#: js/toolbar.js:206 -#: js/toolbar.js:261 -msgid "English (United States)" +#: js/block-verbose.js:3852 +#: js/block.js:3776 +#: js/blocks/ExtrasBlocks.js:632 +msgid "grand staff" msgstr "" -#: js/toolbar.js:87 -#: js/toolbar.js:152 -#: js/toolbar.js:207 -#: js/toolbar.js:262 -msgid "English (United Kingdom)" +#: js/block-verbose.js:3853 +#: js/block.js:3777 +#: js/blocks/ExtrasBlocks.js:636 +msgid "mezzo-soprano" msgstr "" -#: js/toolbar.js:88 -#: js/toolbar.js:153 -#: js/toolbar.js:208 -#: js/toolbar.js:263 -msgid "日本語" +#: js/block-verbose.js:3854 +#: js/block.js:3778 +#: js/blocks/ExtrasBlocks.js:640 +msgid "alto" msgstr "" -#: js/toolbar.js:89 -msgid "한국어" +#: js/block-verbose.js:3855 +#: js/block.js:3779 +#: js/blocks/ExtrasBlocks.js:644 +msgid "tenor" msgstr "" -#: js/toolbar.js:90 -#: js/toolbar.js:155 -#: js/toolbar.js:210 -#: js/toolbar.js:265 -msgid "español" +#: js/block-verbose.js:3856 +#: js/block.js:3780 +#: js/utils/musicutils.js:1115 +#: js/utils/synthutils.js:80 +#: js/blocks/ExtrasBlocks.js:648 +#.TRANS: musical instrument +msgid "bass" msgstr "" -#: js/toolbar.js:91 -#: js/toolbar.js:156 -#: js/toolbar.js:211 -#: js/toolbar.js:266 -msgid "português" +#: js/block-verbose.js:3901 +#: js/block.js:3825 +#: js/blocks.js:2600 +#: js/blocks.js:3211 +msgid "on2" msgstr "" -#: js/toolbar.js:92 -#: js/toolbar.js:157 -#: js/toolbar.js:212 -#: js/toolbar.js:267 -msgid "にほんご" +#: js/block-verbose.js:3903 +#: js/block.js:3827 +#: js/blocks.js:2602 +#: js/blocks.js:3213 +msgid "off" msgstr "" -#: js/toolbar.js:93 -#: js/toolbar.js:158 -#: js/toolbar.js:213 -#: js/toolbar.js:268 -msgid "中文" +#: js/block-verbose.js:4470 +#: js/block.js:4394 +msgid "Not a number" msgstr "" -#: js/toolbar.js:94 -#: js/toolbar.js:159 -#: js/toolbar.js:214 -#: js/toolbar.js:269 -msgid "ภาษาไทย" +#: js/block-verbose.js:4477 +#: js/block.js:4401 +msgid "Octave value must be between 1 and 10." msgstr "" -#: js/toolbar.js:95 -#: js/toolbar.js:160 -#: js/toolbar.js:215 -#: js/toolbar.js:270 -msgid "aymara" +#: js/block-verbose.js:4485 +#: js/block.js:4409 +msgid "Numbers can have at most 10 digits." msgstr "" -#: js/toolbar.js:96 -#: js/toolbar.js:161 -#: js/toolbar.js:216 -#: js/toolbar.js:271 -msgid "quechua" +#: js/activity.js:390 +#: js/activity.js:395 +msgid "Search for blocks" msgstr "" -#: js/toolbar.js:97 -#: js/toolbar.js:162 -#: js/toolbar.js:217 -#: js/toolbar.js:272 -msgid "guarani" +#: js/activity.js:1413 +msgid "Refresh your browser to change to advanced mode." msgstr "" -#: js/toolbar.js:98 -#: js/toolbar.js:163 -#: js/toolbar.js:218 -#: js/toolbar.js:273 -msgid "हिंदी" +#: js/activity.js:1418 +msgid "Refresh your browser to change to beginner mode." msgstr "" -#: js/toolbar.js:99 -#: js/toolbar.js:165 -#: js/toolbar.js:219 -#: js/toolbar.js:275 -msgid "igbo" +#: js/activity.js:1477 +msgid "Catching mice" +msgstr "" + +#: js/activity.js:1478 +msgid "Cleaning the instruments" +msgstr "" + +#: js/activity.js:1479 +msgid "Testing key pieces" +msgstr "" + +#: js/activity.js:1480 +msgid "Sight-reading" +msgstr "" + +#: js/activity.js:1481 +msgid "Combining math and music" msgstr "" -#: js/toolbar.js:100 -#: js/toolbar.js:166 -#: js/toolbar.js:220 -#: js/toolbar.js:276 -msgid "عربى" +#: js/activity.js:1482 +msgid "Generating more blocks" msgstr "" -#: js/toolbar.js:101 -#: js/toolbar.js:164 -#: js/toolbar.js:221 -#: js/toolbar.js:274 -msgid "తెలుగు" +#: js/activity.js:1483 +msgid "Do Re Mi Fa Sol La Ti Do" msgstr "" -#: js/toolbar.js:102 -#: js/toolbar.js:167 -#: js/toolbar.js:222 -#: js/toolbar.js:277 -msgid "עִברִית" +#: js/activity.js:1484 +msgid "Tuning string instruments" msgstr "" -#: js/toolbar.js:111 -#: js/toolbar.js:175 -#: js/toolbar.js:176 -#: js/toolbar.js:231 -msgid "Full Screen" +#: js/activity.js:1485 +msgid "Pressing random keys" msgstr "" -#: js/toolbar.js:145 -#: js/toolbar.js:148 -#: js/toolbar.js:200 -#: js/toolbar.js:203 -#: js/toolbar.js:255 -#: js/toolbar.js:258 -#: js/turtledefs.js:558 -msgid "Save turtle artwork as PNG" +#: js/activity.js:1663 +msgid "plugins will be removed upon restart." msgstr "" -#: js/toolbar.js:147 -#: js/toolbar.js:202 -#: js/toolbar.js:257 -#: js/turtledefs.js:554 -msgid "Save turtle artwork as SVG" +#: js/activity.js:1672 +msgid "show Cartesian" msgstr "" -#: js/toolbar.js:154 -#: js/toolbar.js:209 -#: js/toolbar.js:264 -msgid "한국인" +#: js/activity.js:2211 +#: js/palette.js:589 +#: js/blocks/RhythmBlocks.js:923 +#: js/blocks/PitchBlocks.js:442 +#: js/blocks/PitchBlocks.js:1786 +#.TRANS: a numeric mapping of the notes in an octave based on the musical mode +msgid "scale degree" msgstr "" -#: js/toolbar.js:171 -#: js/toolbar.js:227 -msgid "About Turtle Blocks" +#: js/activity.js:2214 +#: js/palette.js:598 +msgid "voice name" msgstr "" -#: js/toolbar.js:429 -#: js/toolbar.js:440 -msgid "Turtle Wrap Off" +#: js/activity.js:2217 +#: js/palette.js:595 +msgid "invert mode" msgstr "" -#: js/toolbar.js:442 -msgid "Turtle Wrap On" +#: js/activity.js:2220 +msgid "output tools" msgstr "" -#: js/block.js:1470 -msgid "matrix" +#: js/activity.js:2223 +msgid "custom note" msgstr "" -#: js/block.js:1477 -#: js/WidgetBlocks.js:1226 -#: plugins/rodi.rtp:324 -msgid "status" +#: js/activity.js:2226 +msgid "accidental name" msgstr "" -#: js/block.js:1484 -msgid "drum mapper" +#: js/activity.js:2229 +#: js/blocks/PitchBlocks.js:855 +msgid "east indian solfege" msgstr "" -#: js/block.js:1491 -msgid "ruler" +#: js/activity.js:2232 +#: js/blocks/PitchBlocks.js:869 +msgid "note name" msgstr "" -#: js/block.js:1498 -#: js/WidgetBlocks.js:327 -#.TRANS: timbre is the character or quality of a musical sound -msgid "timbre" +#: js/activity.js:2235 +#: js/blocks/IntervalsBlocks.js:94 +msgid "temperament name" msgstr "" -#: js/block.js:1505 -msgid "stair" +#: js/activity.js:2238 +#: js/palette.js:592 +msgid "mode name" msgstr "" -#: js/block.js:1512 -#: js/WidgetBlocks.js:577 -#.TRANS: the speed at music is should be played. -msgid "tempo" +#: js/activity.js:2241 +msgid "chord name" msgstr "" -#: js/block.js:1519 -#: js/block.js:1582 -#: js/IntervalsBlocks.js:1268 -#.TRANS: mode, e.g., Major in C Major -msgid "mode" +#: js/activity.js:2244 +#: js/palette.js:615 +msgid "interval name" msgstr "" -#: js/block.js:1526 -msgid "slider" +#: js/activity.js:2247 +msgid "filter type" msgstr "" -#: js/block.js:1533 -#: js/SensorsBlocks.js:1001 -msgid "keyboard" +#: js/activity.js:2250 +msgid "oscillator type" msgstr "" -#: js/block.js:1547 -#: js/WidgetBlocks.js:957 -#: js/WidgetBlocks.js:988 -#.TRANS: widget for subdividing a measure into distinct rhythmic elements -msgid "rhythm maker" +#: js/activity.js:2253 +#: js/blocks.js:2479 +#: js/blocks.js:2487 +msgid "audio file" msgstr "" -#: js/block.js:1554 -#: js/block.js:2182 -#: js/block.js:2236 -#: js/RhythmBlockPaletteBlocks.js:70 -#: js/RhythmBlockPaletteBlocks.js:251 -#: js/RhythmBlockPaletteBlocks.js:484 -#: js/RhythmBlockPaletteBlocks.js:553 -#: js/RhythmBlockPaletteBlocks.js:604 -#: js/RhythmBlockPaletteBlocks.js:874 -#: js/RhythmBlocks.js:33 -#: js/RhythmBlocks.js:356 -#: js/RhythmBlocks.js:766 -#: js/RhythmBlocks.js:806 -#: js/OrnamentBlocks.js:220 -#: js/OrnamentBlocks.js:312 -#: js/MeterBlocks.js:1367 -#: js/DictActions.js:85 -#: js/phrasemaker.js:731 -#: js/phrasemaker.js:2393 -#: js/phrasemaker.js:2436 -#: js/phrasemaker.js:2534 -#.TRANS: the value (e.g., 1/4 note) of the note being played. -msgid "note value" +#: js/activity.js:2256 +#: js/blocks/DrumBlocks.js:32 +msgid "noise name" msgstr "" -#: js/block.js:1561 -#: js/block.js:2110 -#: js/block.js:2133 -#: js/IntervalsBlocks.js:875 -#: js/OrnamentBlocks.js:312 -#.TRANS: calculate a relative step between notes based on semi-tones -msgid "scalar interval" +#: js/activity.js:2259 +#: js/blocks/DrumBlocks.js:75 +msgid "drum name" msgstr "" -#: js/block.js:1568 -#: js/RhythmBlocks.js:148 -msgid "milliseconds" +#: js/activity.js:2262 +#: js/blocks/DrumBlocks.js:119 +msgid "effects name" msgstr "" -#: js/block.js:2180 -#: js/block.js:2184 -#: js/block.js:2234 -#: js/block.js:2345 -#: js/ProgramBlocks.js:1273 -#: js/RhythmBlocks.js:712 -#: js/rhythmruler.js:834 -#: js/rhythmruler.js:961 -msgid "silence" +#: js/activity.js:2265 +msgid "wrap mode" msgstr "" -#: js/block.js:2265 -#: js/block.js:3134 -#: js/block.js:3151 -#: js/activity.js:2336 -#: js/activity.js:2387 -#: js/musicutils.js:2932 -#: js/musicutils.js:4287 -#.TRANS: the note names must be separated by single spaces -#.TRANS: the note names must be separated by single spaces -msgid "ti la sol fa mi re do" +#: js/activity.js:2268 +msgid "load file" msgstr "" -#: js/block.js:2333 -#.TRANS: scalar step -msgid "down" +#: js/activity.js:2435 +#: js/activity.js:5851 +msgid "This block is deprecated." msgstr "" -#: js/block.js:2334 -msgid "up" +#: js/activity.js:2437 +#: js/activity.js:5853 +msgid "Block cannot be found." msgstr "" -#: js/block.js:3477 -#: js/block.js:3490 -#: js/ExtrasBlocks.js:612 -msgid "Cartesian" +#: js/activity.js:2645 +msgid "Saving block artwork" msgstr "" -#: js/block.js:3478 -#: js/block.js:3491 -#: js/ExtrasBlocks.js:616 -msgid "polar" +#: js/activity.js:2656 +msgid "Erase" msgstr "" -#: js/block.js:3479 -#: js/block.js:3492 -#: js/ExtrasBlocks.js:620 -msgid "Cartesian+polar" +#: js/activity.js:2683 +#: js/activity.js:2705 +msgid "Paste" msgstr "" -#: js/block.js:3480 -#: js/block.js:3499 -#: js/ExtrasBlocks.js:649 -msgid "none" +#: js/activity.js:2687 +msgid "Save block help" msgstr "" -#: js/block.js:3493 -#: js/ExtrasBlocks.js:625 -msgid "treble" +#: js/activity.js:2772 +msgid "Jumping to the bottom of the page." msgstr "" -#: js/block.js:3494 -#: js/ExtrasBlocks.js:629 -msgid "grand staff" +#: js/activity.js:2778 +msgid "Scrolling up." msgstr "" -#: js/block.js:3495 -#: js/ExtrasBlocks.js:633 -msgid "mezzo-soprano" +#: js/activity.js:2783 +msgid "Scrolling down." msgstr "" -#: js/block.js:3496 -#: js/ExtrasBlocks.js:637 -msgid "alto" +#: js/activity.js:2788 +msgid "Extracting block" msgstr "" -#: js/block.js:3497 -#: js/ExtrasBlocks.js:641 -msgid "tenor" +#: js/activity.js:2796 +msgid "Moving block up." msgstr "" -#: js/block.js:3498 -#: js/ExtrasBlocks.js:645 -#: js/musicutils.js:736 -#: js/synthutils.js:64 -#.TRANS: musical instrument -msgid "bass" +#: js/activity.js:2817 +msgid "Moving block down." msgstr "" -#: js/block.js:4075 -msgid "Not a number" +#: js/activity.js:2838 +msgid "Moving block left." msgstr "" -#: js/block.js:4082 -msgid "Octave value must be between 1 and 10." +#: js/activity.js:2855 +msgid "Moving block right." msgstr "" -#: js/block.js:4090 -msgid "Numbers can have at most 10 digits." +#: js/activity.js:2870 +msgid "Jump to home position." msgstr "" -#: js/notation.js:353 -msgid "Lilypond cannot process pickup of " +#: js/activity.js:2897 +msgid "Hide blocks" msgstr "" -#: js/turtledefs.js:40 -#.TRANS: put the URL to the guide here, e.g., https://github.com/sugarlabs/turtleblocksjs/tree/master/guide/README.md -msgid "guide url" +#: js/activity.js:4500 +msgid "Click the run button to run the project." msgstr "" -#: js/turtledefs.js:85 -#: js/turtledefs.js:437 -msgid "Turtle Blocks is a Logo-inspired turtle that draws colorful pictures with snap-together visual-programming blocks." +#: js/activity.js:5692 +msgid "Show/hide block" msgstr "" -#: js/turtledefs.js:118 -#: js/turtledefs.js:220 -msgid "search" +#: js/activity.js:5698 +msgid "Expand/collapse blocks" msgstr "" -#: js/turtledefs.js:120 -#: js/turtledefs.js:222 -#: js/WidgetBlocks.js:437 -#: js/MeterBlocks.js:1343 -#.TRANS: musical meter (time signature), e.g., 4:4 -msgid "meter" +#: js/activity.js:5976 +msgid "Could not parse JSON input." msgstr "" -#: js/turtledefs.js:122 -#: js/turtledefs.js:224 -msgid "intervals" +#: js/activity.js:6475 +#: js/activity.js:6580 +#: js/activity.js:6631 +msgid "Cannot load project from the file. Please check the file type." msgstr "" -#: js/turtledefs.js:124 -#: js/turtledefs.js:226 -msgid "ornament" +#: js/activity.js:6917 +msgid "Invalid parameters" msgstr "" -#: js/turtledefs.js:125 -#: js/turtledefs.js:227 -#: js/VolumeBlocks.js:362 -#: js/VolumeBlocks.js:502 -#: js/VolumeBlocks.js:545 -msgid "volume" +#: js/blocks.js:1212 +#: js/blocks.js:3444 +#: js/blocks.js:3834 +#: js/blocks.js:3865 +#: js/blocks.js:3914 +#: js/blocks.js:3949 +#: js/blocks.js:6586 +#: js/palette.js:509 +#: js/palette.js:638 +#: js/palette.js:1105 +#: js/blocks/BoxesBlocks.js:282 +#: js/blocks/BoxesBlocks.js:285 +#: js/blocks/BoxesBlocks.js:405 +#: js/blocks/BoxesBlocks.js:594 +msgid "box" msgstr "" -#: js/turtledefs.js:129 -#: js/turtledefs.js:231 -msgid "boxes" +#: js/blocks.js:1713 +msgid "Consider breaking this stack into parts." msgstr "" -#: js/turtledefs.js:130 -#: js/turtledefs.js:232 -msgid "widgets" +#: js/blocks.js:2472 +#: js/palette.js:653 +#: js/blocks/MediaBlocks.js:602 +msgid "open file" msgstr "" -#: js/turtledefs.js:131 -#: js/turtledefs.js:233 -#: js/phrasemaker.js:824 -msgid "graphics" +#: js/blocks.js:3247 +#: js/palette.js:574 +#: js/blocks/MediaBlocks.js:892 +#: js/blocks/MediaBlocks.js:963 +msgid "text" msgstr "" -#: js/turtledefs.js:134 -#: js/turtledefs.js:236 -msgid "boolean" +#: js/blocks.js:3443 +#: js/palette.js:641 +#: js/palette.js:642 +#: js/blocks/BoxesBlocks.js:514 +msgid "store in box" msgstr "" -#: js/turtledefs.js:137 -#: js/turtledefs.js:239 -#: js/HeapBlocks.js:59 -#: js/status.js:147 -msgid "heap" +#: js/blocks.js:3448 +#: js/blocks.js:3888 +#: js/blocks.js:3923 +#: js/blocks.js:3958 +#: js/blocks.js:5862 +#: js/blocks.js:5883 +#: js/blocks/BoxesBlocks.js:772 +msgid "box1" msgstr "" -#: js/turtledefs.js:138 -#: js/turtledefs.js:240 -#: js/ProgramBlocks.js:495 -#: js/DictBlocks.js:142 -msgid "dictionary" +#: js/blocks.js:3450 +#: js/blocks.js:3890 +#: js/blocks.js:3925 +#: js/blocks.js:3960 +#: js/blocks.js:5864 +#: js/blocks.js:5885 +#: js/blocks/BoxesBlocks.js:663 +msgid "box2" msgstr "" -#: js/turtledefs.js:139 -#: js/turtledefs.js:241 -msgid "ensemble" +#: js/blocks.js:4122 +#: js/palette.js:639 +#: js/palette.js:644 +#: js/palette.js:1041 +#: js/blocks/BoxesBlocks.js:591 +msgid "store in" msgstr "" -#: js/turtledefs.js:140 -#: js/turtledefs.js:242 -msgid "extras" +#: js/blocks.js:4122 +#: js/blocks/BoxesBlocks.js:595 +#: js/blocks/DictBlocks.js:215 +#: js/blocks/DictBlocks.js:289 +#: js/blocks/EnsembleBlocks.js:391 +#: js/blocks/EnsembleBlocks.js:402 +#: js/blocks/MediaBlocks.js:746 +#: js/blocks/PitchBlocks.js:656 +#: js/blocks/PitchBlocks.js:934 +#: js/blocks/PitchBlocks.js:1866 +#: js/blocks/ProgramBlocks.js:390 +#: js/blocks/ProgramBlocks.js:495 +#: js/blocks/ProgramBlocks.js:658 +#: js/blocks/ToneBlocks.js:1025 +msgid "name" msgstr "" -#: js/turtledefs.js:142 -#: js/turtledefs.js:244 -#.TRANS: program as in computer program -#.TRANS: program as in computer program -msgid "program" +#: js/blocks.js:4122 +#: js/blocks/BoxesBlocks.js:75 +#: js/blocks/BoxesBlocks.js:595 +#: js/blocks/DictBlocks.js:289 +#: js/blocks/DictBlocks.js:430 +#: js/blocks/HeapBlocks.js:544 +#: js/blocks/RhythmBlocks.js:1130 +msgid "value" msgstr "" -#: js/turtledefs.js:143 -#: js/turtledefs.js:245 -msgid "my blocks" +#: js/blocks.js:4465 +msgid "Forever loop detected inside a note value block. Unexpected things may happen." msgstr "" -#: js/turtledefs.js:185 -#: js/turtledefs.js:281 -msgid "artwork" +#: js/blocks.js:4988 +msgid "There is no block selected." msgstr "" -#: js/turtledefs.js:185 -#: js/turtledefs.js:281 -msgid "logic" +#: js/blocks.js:5091 +#: js/blocks/MediaBlocks.js:888 +msgid "show" msgstr "" -#: js/turtledefs.js:185 -#: js/turtledefs.js:281 -msgid "music" +#: js/blocks.js:5094 +#: js/blocks/MediaBlocks.js:803 +#.TRANS: Avatar is the image used to determine the appearance of the mouse. +msgid "avatar" msgstr "" -#: js/turtledefs.js:187 -#: js/turtledefs.js:463 -msgid "Music Blocks is a collection of tools for exploring fundamental musical concepts in a fun way." +#: js/blocks.js:5097 +#: js/blocks/ToneBlocks.js:1010 +#: js/widgets/sampler.js:975 +#.TRANS: The sound sample that the user uploads. +msgid "sample" msgstr "" -#: js/turtledefs.js:436 -msgid "Welcome to Turtle Blocks" +#: js/lilypond.js:606 +msgid "brown rat" msgstr "" -#: js/turtledefs.js:438 -#: js/turtledefs.js:465 -#: js/turtledefs.js:774 -#: js/turtledefs.js:805 -msgid "The current version is" +#: js/lilypond.js:607 +msgid "mole" msgstr "" -#: js/turtledefs.js:446 -#: js/turtledefs.js:483 -msgid "Click the run button to run the project in fast mode." +#: js/lilypond.js:608 +msgid "chipmunk" msgstr "" -#: js/turtledefs.js:452 -msgid "Stop the turtle." +#: js/lilypond.js:609 +msgid "red squirrel" msgstr "" -#: js/turtledefs.js:454 -#: js/turtledefs.js:491 -msgid "You can also type Alt-S to stop." +#: js/lilypond.js:610 +msgid "guinea pig" +msgstr "" + +#: js/lilypond.js:611 +msgid "capybara" msgstr "" -#: js/turtledefs.js:462 -#: js/help.js:333 -msgid "Welcome to Music Blocks" +#: js/lilypond.js:612 +msgid "coypu" msgstr "" -#: js/turtledefs.js:472 -#: js/help.js:334 -msgid "Meet Mr. Mouse!" +#: js/lilypond.js:613 +msgid "black rat" msgstr "" -#: js/turtledefs.js:473 -msgid "Mr Mouse is our Music Blocks conductor." +#: js/lilypond.js:614 +msgid "grey squirrel" msgstr "" -#: js/turtledefs.js:475 -msgid "Mr Mouse encourages you to explore Music Blocks." +#: js/lilypond.js:615 +msgid "flying squirrel" msgstr "" -#: js/turtledefs.js:477 -msgid "Let us start our tour!" +#: js/lilypond.js:616 +msgid "bat" msgstr "" -#: js/turtledefs.js:489 -msgid "Stop the music (and the mice)." +#: js/lilypond.js:749 +#: js/lilypond.js:913 +#: js/lilypond.js:951 +#: js/blocks/ActionBlocks.js:1256 +#: js/blocks/ExtrasBlocks.js:556 +msgid "start drum" msgstr "" -#: js/turtledefs.js:499 -msgid "Record your project as video." +#: js/logo.js:61 +msgid "Not a valid pitch name" msgstr "" -#: js/turtledefs.js:505 -msgid "Toggle Fullscreen mode." +#: js/logo.js:507 +#: js/blocks/ProgramBlocks.js:258 +#: js/blocks/ProgramBlocks.js:427 +msgid "You must select a file." msgstr "" -#: js/turtledefs.js:511 -msgid "Initialize a new project." +#: js/logo.js:1696 +msgid "Playback is ready." msgstr "" -#: js/turtledefs.js:517 -msgid "You can also load projects from the file system." +#: js/macros.js:711 +#: js/utils/musicutils.js:1162 +#: js/utils/synthutils.js:202 +#.TRANS: animal sound effect +msgid "duck" msgstr "" -#: js/turtledefs.js:522 -#: js/StringHelper.js:46 -msgid "Delete" +#: js/notation.js:353 +msgid "Lilypond cannot process pickup of " msgstr "" -#: js/turtledefs.js:523 -msgid "To delete a block, just right-click on it, then you will be able to see the delete option" +#: js/palette.js:571 +msgid "grid" msgstr "" -#: js/turtledefs.js:528 -#: js/activity.js:2270 -#: js/LocalCard.js:31 -msgid "Copy" +#: js/palette.js:580 +msgid "effect" msgstr "" -#: js/turtledefs.js:529 -msgid "To copy a block, just right-click on it, then you will be able to see the copy option" +#: js/palette.js:586 +msgid "sargam" msgstr "" -#: js/turtledefs.js:535 -msgid "To extract a block, just right-click on it, then you will be able to see the extract option" +#: js/palette.js:601 +#: js/blocks/PitchBlocks.js:1209 +msgid "custom pitch" msgstr "" -#: js/turtledefs.js:542 -#: js/turtledefs.js:552 -#: js/turtledefs.js:573 -msgid "Save your project to a file." +#: js/palette.js:609 +msgid "accidental" msgstr "" -#: js/turtledefs.js:549 -#: js/turtledefs.js:570 -msgid "save" +#: js/palette.js:633 +#: js/blocks/PitchBlocks.js:405 +msgid "pitch converter" msgstr "" -#: js/turtledefs.js:556 -#: js/turtledefs.js:577 -msgid "Save graphics from your project to as SVG." +#: js/piemenus.js:200 +#: js/utils/musicutils.js:1187 +#: js/utils/musicutils.js:1207 +#: js/widgets/musickeyboard.js:2341 +#: js/widgets/phrasemaker.js:1908 +#: js/widgets/sampler.js:810 +#.TRANS: double sharp is a music term related to pitch +msgid "double sharp" msgstr "" -#: js/turtledefs.js:560 -#: js/turtledefs.js:581 -msgid "Save graphics from your project as PNG." +#: js/piemenus.js:201 +#: js/utils/musicutils.js:1185 +#: js/utils/musicutils.js:1208 +#: js/blocks/PitchBlocks.js:1539 +#: js/turtleactions/PitchActions.js:323 +#: js/widgets/musickeyboard.js:2342 +#: js/widgets/phrasemaker.js:1909 +#: js/widgets/sampler.js:811 +#.TRANS: sharp is a music term related to pitch +#.TRANS: sharp is a half-step up in pitch +msgid "sharp" msgstr "" -#: js/turtledefs.js:564 -#: js/turtledefs.js:597 -msgid "Save block artwork as an SVG file." +#: js/piemenus.js:202 +#: js/utils/musicutils.js:1183 +#: js/utils/musicutils.js:1209 +#: js/widgets/musickeyboard.js:2343 +#: js/widgets/phrasemaker.js:1910 +#: js/widgets/sampler.js:812 +#.TRANS: natural is a music term related to pitch +msgid "natural" msgstr "" -#: js/turtledefs.js:585 -msgid "Save audio from your project as WAV." +#: js/piemenus.js:203 +#: js/utils/musicutils.js:1181 +#: js/utils/musicutils.js:1210 +#: js/blocks/PitchBlocks.js:1498 +#: js/turtleactions/PitchActions.js:326 +#: js/widgets/musickeyboard.js:2344 +#: js/widgets/phrasemaker.js:1911 +#: js/widgets/sampler.js:813 +#.TRANS: flat is a music term related to pitch +#.TRANS: flat is a half-step down in pitch +msgid "flat" msgstr "" -#: js/turtledefs.js:589 -msgid "Save your project to as an ABC file." +#: js/piemenus.js:204 +#: js/utils/musicutils.js:1179 +#: js/utils/musicutils.js:1211 +#: js/widgets/musickeyboard.js:2345 +#: js/widgets/phrasemaker.js:1912 +#: js/widgets/sampler.js:814 +#.TRANS: double flat is a music term related to pitch +msgid "double flat" msgstr "" -#: js/turtledefs.js:593 -msgid "Save your project to as a Lilypond file." +#: js/piemenus.js:2864 +#: js/utils/musicutils.js:1006 +#: js/blocks/PitchBlocks.js:1385 +#.TRANS: unison is a music term related to intervals +#.TRANS: unison means the note is the same as the current note +msgid "unison" msgstr "" -#: js/turtledefs.js:604 -msgid "Load samples from server" +#: js/piemenus.js:3018 +#: js/piemenus.js:3091 +#: js/utils/musicutils.js:1014 +#: js/utils/musicutils.js:1189 +#: js/utils/musicutils.js:1326 +#.TRANS: major is a music term related to intervals and mode +msgid "major" msgstr "" -#: js/turtledefs.js:605 -msgid "This button opens a viewer for loading example projects." +#: js/piemenus.js:3018 +#: js/piemenus.js:3091 +#: js/utils/musicutils.js:1032 +#.TRANS: modal scale for music +msgid "ionian" msgstr "" -#: js/turtledefs.js:611 -msgid "Palette buttons" +#: js/piemenus.js:3020 +#: js/piemenus.js:3095 +#: js/utils/musicutils.js:1012 +#: js/utils/musicutils.js:1190 +#: js/utils/musicutils.js:1323 +#.TRANS: minor is a music term related to intervals and mode +msgid "minor" msgstr "" -#: js/turtledefs.js:612 -msgid "This toolbar contains the palette buttons including Rhythm Pitch Tone Action and more." +#: js/piemenus.js:3020 +#: js/piemenus.js:3095 +#: js/utils/musicutils.js:1042 +#.TRANS: modal scale for music +msgid "aeolian" msgstr "" -#: js/turtledefs.js:614 -msgid "Click to show the palettes of blocks and drag blocks from the palettes onto the canvas to use them." +#: js/piemenus.js:3410 +msgid "Duplicate" msgstr "" -#: js/turtledefs.js:620 -msgid "Cartesian/Polar" +#: js/piemenus.js:3412 +msgid "Move to trash" msgstr "" -#: js/turtledefs.js:621 -msgid "Show or hide a coordinate grid." +#: js/piemenus.js:3413 +#: js/widgets/timbre.js:968 +#: planet/js/StringHelper.js:69 +msgid "Close" msgstr "" -#: js/turtledefs.js:627 -msgid "Clear the screen and return the mice to their initial positions." +#: js/piemenus.js:3419 +msgid "Save stack" msgstr "" -#: js/turtledefs.js:633 -msgid "Collapse the graphics window." +#: js/piemenus.js:3449 +msgid "In order to copy a sample, you must reload the widget, import the sample again, and export it." msgstr "" -#: js/turtledefs.js:638 -#: js/activity.js:4256 -#: js/activity.js:4256 -msgid "Home" +#: js/piemenus.js:3812 +msgid "You have chosen key " msgstr "" -#: js/turtledefs.js:639 -msgid "Return all blocks to the center of the screen." +#: js/piemenus.js:3816 +msgid " for your pitch preview." msgstr "" -#: js/turtledefs.js:644 -msgid "Show/hide blocks" +#: js/turtle-singer.js:1363 +#.TRANS: partials are weighted components in a harmonic series +msgid "You must have at least one Partial block inside of a Weighted-partial block" msgstr "" -#: js/turtledefs.js:645 -msgid "Hide or show the blocks and the palettes." +#: js/turtle-singer.js:2077 +msgid "synth cannot play chords." msgstr "" -#: js/turtledefs.js:650 -msgid "Expand/collapse collapsable blocks" +#: js/utils/musicutils.js:505 +#: js/utils/musicutils.js:645 +#: js/widgets/pitchdrummatrix.js:228 +#: js/widgets/musickeyboard.js:2885 +msgid "rest" msgstr "" -#: js/turtledefs.js:651 -msgid "Expand or collapse start and action stacks." +#: js/utils/musicutils.js:689 +msgid "Perfect unison" msgstr "" -#: js/turtledefs.js:658 -#: js/activity.js:4265 -msgid "Decrease block size" +#: js/utils/musicutils.js:689 +msgid "Diminished second" msgstr "" -#: js/turtledefs.js:659 -msgid "Decrease the size of the blocks." +#: js/utils/musicutils.js:690 +msgid "Minor second" msgstr "" -#: js/turtledefs.js:664 -#: js/activity.js:4267 -msgid "Increase block size" +#: js/utils/musicutils.js:690 +msgid "Augmented unison" msgstr "" -#: js/turtledefs.js:665 -msgid "Increase the size of the blocks." +#: js/utils/musicutils.js:691 +msgid "Major second" msgstr "" -#: js/turtledefs.js:670 -msgid "Expand/collapse option toolbar" +#: js/utils/musicutils.js:691 +msgid "Diminished third" msgstr "" -#: js/turtledefs.js:671 -msgid "Click this button to expand or collapse the auxillary toolbar." +#: js/utils/musicutils.js:692 +msgid "Minor third" msgstr "" -#: js/turtledefs.js:676 -msgid "Run slow" +#: js/utils/musicutils.js:692 +msgid "Augmented second" msgstr "" -#: js/turtledefs.js:677 -msgid "Click to run the project in slow mode." +#: js/utils/musicutils.js:693 +msgid "Major third" msgstr "" -#: js/turtledefs.js:683 -msgid "Click to run the project step by step." +#: js/utils/musicutils.js:693 +msgid "Diminished fourth" msgstr "" -#: js/turtledefs.js:690 -msgid "Display statistics about your Music project." +#: js/utils/musicutils.js:694 +msgid "Perfect fourth" msgstr "" -#: js/turtledefs.js:697 -msgid "Delete a selected plugin." +#: js/utils/musicutils.js:694 +msgid "Augmented third" msgstr "" -#: js/turtledefs.js:704 -msgid "Enable scrolling" +#: js/utils/musicutils.js:695 +msgid "Diminished fifth" msgstr "" -#: js/turtledefs.js:705 -msgid "You can scroll the blocks on the canvas." +#: js/utils/musicutils.js:695 +msgid "Augmented fourth" msgstr "" -#: js/turtledefs.js:714 -msgid "Wrap Turtle" +#: js/utils/musicutils.js:696 +msgid "Perfect fifth" msgstr "" -#: js/turtledefs.js:715 -msgid "Turn Turtle wrapping On or Off." +#: js/utils/musicutils.js:696 +msgid "Diminished sixth" msgstr "" -#: js/turtledefs.js:725 -msgid "Restore blocks from the trash." +#: js/utils/musicutils.js:697 +msgid "Minor sixth" msgstr "" -#: js/turtledefs.js:732 -msgid "Switch mode" +#: js/utils/musicutils.js:697 +msgid "Augmented fifth" msgstr "" -#: js/turtledefs.js:733 -msgid "Switch between beginner and advance modes." +#: js/utils/musicutils.js:698 +msgid "Major sixth" msgstr "" -#: js/turtledefs.js:739 -msgid "Select your language preference." +#: js/utils/musicutils.js:698 +msgid "Diminished seventh" msgstr "" -#: js/turtledefs.js:745 -msgid "Keyboard shortcuts" +#: js/utils/musicutils.js:699 +msgid "Minor seventh" msgstr "" -#: js/turtledefs.js:746 -msgid "You can type d to create a do block and r to create a re block etc." +#: js/utils/musicutils.js:699 +msgid "Augmented sixth" msgstr "" -#: js/turtledefs.js:753 -msgid "Show these messages." +#: js/utils/musicutils.js:700 +msgid "Major seventh" msgstr "" -#: js/turtledefs.js:759 -#: js/turtledefs.js:790 -#: js/help.js:335 -msgid "Guide" +#: js/utils/musicutils.js:700 +msgid "Diminished octave" msgstr "" -#: js/turtledefs.js:760 -msgid "A detailed guide to Turtle Blocks is available." +#: js/utils/musicutils.js:701 +msgid "Perfect octave" msgstr "" -#: js/turtledefs.js:764 -msgid "Turtle Blocks Guide" +#: js/utils/musicutils.js:701 +msgid "Augmented seventh" msgstr "" -#: js/turtledefs.js:767 -#: js/turtledefs.js:798 -#: js/help.js:336 -msgid "About" +#: js/utils/musicutils.js:702 +msgid "Minor ninth" msgstr "" -#: js/turtledefs.js:768 -msgid "Turtle Blocks is an open source collection of tools for exploring musical concepts." +#: js/utils/musicutils.js:702 +msgid "Augmented octave" msgstr "" -#: js/turtledefs.js:770 -msgid "A full list of contributors can be found in the Turtle Blocks GitHub repository." +#: js/utils/musicutils.js:703 +msgid "Major ninth" msgstr "" -#: js/turtledefs.js:772 -msgid "Turtle Blocks is licensed under the AGPL." +#: js/utils/musicutils.js:703 +msgid "Diminished tenth" msgstr "" -#: js/turtledefs.js:780 -msgid "Turtle Blocks GitHub repository" +#: js/utils/musicutils.js:704 +msgid "Minor tenth" msgstr "" -#: js/turtledefs.js:783 -#: js/turtledefs.js:814 -#: js/help.js:337 -#: js/help.js:359 -msgid "Congratulations." +#: js/utils/musicutils.js:704 +msgid "Augmented ninth" msgstr "" -#: js/turtledefs.js:784 -msgid "You have finished the tour. Please enjoy Turtle Blocks!" +#: js/utils/musicutils.js:705 +msgid "Major tenth" msgstr "" -#: js/turtledefs.js:791 -msgid "A detailed guide to Music Blocks is available." +#: js/utils/musicutils.js:705 +msgid "Diminished eleventh" msgstr "" -#: js/turtledefs.js:795 -#: js/SaveInterface.js:76 -msgid "Music Blocks Guide" +#: js/utils/musicutils.js:706 +msgid "Perfect eleventh" msgstr "" -#: js/turtledefs.js:799 -msgid "Music Blocks is an open source collection of tools for exploring musical concepts." +#: js/utils/musicutils.js:706 +msgid "Augmented tenth" msgstr "" -#: js/turtledefs.js:801 -msgid "A full list of contributors can be found in the Music Blocks GitHub repository." +#: js/utils/musicutils.js:707 +msgid "Diminished twelfth" msgstr "" -#: js/turtledefs.js:803 -msgid "Music Blocks is licensed under the AGPL." +#: js/utils/musicutils.js:707 +msgid "Augmented eleventh" msgstr "" -#: js/turtledefs.js:811 -msgid "Music Blocks GitHub repository" +#: js/utils/musicutils.js:708 +msgid "Perfect twelfth" msgstr "" -#: js/turtledefs.js:815 -msgid "You have finished the tour. Please enjoy Music Blocks!" +#: js/utils/musicutils.js:708 +msgid "Diminished thirteenth" msgstr "" -#: js/activity.js:369 -msgid "Search for blocks" +#: js/utils/musicutils.js:709 +msgid "Minor thirteenth" msgstr "" -#: js/activity.js:1145 -msgid "Refresh your browser to change to advanced mode." +#: js/utils/musicutils.js:709 +msgid "Augmented fifth, plus an octave" msgstr "" -#: js/activity.js:1150 -msgid "Refresh your browser to change to beginner mode." +#: js/utils/musicutils.js:710 +msgid "Major thirteenth" msgstr "" -#: js/activity.js:1184 -msgid "Catching mice" +#: js/utils/musicutils.js:710 +msgid "Diminished seventh, plus an octave" msgstr "" -#: js/activity.js:1185 -msgid "Cleaning the instruments" +#: js/utils/musicutils.js:838 +#.TRANS: ordinal number. Please keep exactly one space between each number. +msgid "1st 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th" msgstr "" -#: js/activity.js:1186 -msgid "Testing key pieces" +#: js/utils/musicutils.js:1008 +#: js/utils/musicutils.js:1191 +#: js/utils/musicutils.js:1325 +#.TRANS: augmented is a music term related to intervals +msgid "augmented" msgstr "" -#: js/activity.js:1187 -msgid "Sight-reading" +#: js/utils/musicutils.js:1010 +#: js/utils/musicutils.js:1192 +#: js/utils/musicutils.js:1324 +#.TRANS: diminished is a music term related to intervals and mode +msgid "diminished" msgstr "" -#: js/activity.js:1188 -msgid "Combining math and music" +#: js/utils/musicutils.js:1016 +#: js/utils/musicutils.js:1322 +#: js/blocks/IntervalsBlocks.js:649 +#: js/turtleactions/IntervalsActions.js:120 +#: js/turtleactions/IntervalsActions.js:124 +#.TRANS: perfect is a music term related to intervals +msgid "perfect" +msgstr "" + +#: js/utils/musicutils.js:1018 +#.TRANS: twelve semi-tone scale for music +msgid "chromatic" msgstr "" -#: js/activity.js:1189 -msgid "Generating more blocks" +#: js/utils/musicutils.js:1019 +msgid "algerian" msgstr "" -#: js/activity.js:1190 -msgid "Do Re Mi Fa Sol La Ti Do" +#: js/utils/musicutils.js:1020 +msgid "spanish" msgstr "" -#: js/activity.js:1191 -msgid "Tuning string instruments" +#: js/utils/musicutils.js:1022 +#.TRANS: modal scale in music +msgid "octatonic" msgstr "" -#: js/activity.js:1192 -msgid "Pressing random keys" +#: js/utils/musicutils.js:1024 +#.TRANS: harmonic major scale in music +msgid "harmonic major" msgstr "" -#: js/activity.js:1351 -msgid "plugins will be removed upon restart." +#: js/utils/musicutils.js:1026 +#.TRANS: natural minor scales in music +msgid "natural minor" msgstr "" -#: js/activity.js:1360 -msgid "show Cartesian" +#: js/utils/musicutils.js:1028 +#.TRANS: harmonic minor scale in music +msgid "harmonic minor" msgstr "" -#: js/activity.js:1842 -msgid "output tools" +#: js/utils/musicutils.js:1030 +#.TRANS: melodic minor scale in music +msgid "melodic minor" msgstr "" -#: js/activity.js:1845 -msgid "custom note" +#: js/utils/musicutils.js:1034 +#.TRANS: modal scale for music +msgid "dorian" msgstr "" -#: js/activity.js:1848 -msgid "accidental name" +#: js/utils/musicutils.js:1036 +#.TRANS: modal scale for music +msgid "phrygian" msgstr "" -#: js/activity.js:1851 -#: js/PitchBlocks.js:855 -msgid "east indian solfege" +#: js/utils/musicutils.js:1038 +#.TRANS: modal scale for music +msgid "lydian" msgstr "" -#: js/activity.js:1854 -#: js/PitchBlocks.js:869 -msgid "note name" +#: js/utils/musicutils.js:1040 +#.TRANS: modal scale for music +msgid "mixolydian" msgstr "" -#: js/activity.js:1857 -#: js/IntervalsBlocks.js:94 -msgid "temperament name" +#: js/utils/musicutils.js:1044 +#.TRANS: modal scale for music +msgid "locrian" msgstr "" -#: js/activity.js:1863 -msgid "chord name" +#: js/utils/musicutils.js:1046 +#.TRANS: minor jazz scale for music +msgid "jazz minor" msgstr "" -#: js/activity.js:1869 -msgid "filter type" +#: js/utils/musicutils.js:1048 +#.TRANS: bebop scale for music +msgid "bebop" msgstr "" -#: js/activity.js:1872 -msgid "oscillator type" +#: js/utils/musicutils.js:1049 +msgid "arabic" msgstr "" -#: js/activity.js:1878 -#: js/DrumBlocks.js:32 -msgid "noise name" +#: js/utils/musicutils.js:1050 +msgid "byzantine" msgstr "" -#: js/activity.js:1881 -#: js/DrumBlocks.js:75 -msgid "drum name" +#: js/utils/musicutils.js:1052 +#.TRANS: musical scale for music by Verdi +msgid "enigmatic" msgstr "" -#: js/activity.js:1884 -#: js/DrumBlocks.js:119 -msgid "effects name" +#: js/utils/musicutils.js:1053 +msgid "ethiopian" msgstr "" -#: js/activity.js:1887 -msgid "wrap mode" +#: js/utils/musicutils.js:1055 +#.TRANS: Ethiopic scale for music +msgid "geez" msgstr "" -#: js/activity.js:1890 -msgid "load file" +#: js/utils/musicutils.js:1056 +msgid "hindu" msgstr "" -#: js/activity.js:2056 -msgid "This block is deprecated." +#: js/utils/musicutils.js:1057 +msgid "hungarian" msgstr "" -#: js/activity.js:2058 -msgid "Block cannot be found." +#: js/utils/musicutils.js:1059 +#.TRANS: minor Romanian scale for music +msgid "romanian minor" msgstr "" -#: js/activity.js:2266 -msgid "Saving block artwork" +#: js/utils/musicutils.js:1060 +msgid "spanish gypsy" msgstr "" -#: js/activity.js:2277 -msgid "Erase" +#: js/utils/musicutils.js:1062 +#.TRANS: musical scale for Mid-Eastern music +msgid "maqam" msgstr "" -#: js/activity.js:2301 -#: js/activity.js:2323 -msgid "Paste" +#: js/utils/musicutils.js:1064 +#.TRANS: minor blues scale for music +msgid "minor blues" msgstr "" -#: js/activity.js:2305 -msgid "Save block help" +#: js/utils/musicutils.js:1066 +#.TRANS: major blues scale for music +msgid "major blues" msgstr "" -#: js/activity.js:2390 -msgid "Jumping to the bottom of the page." +#: js/utils/musicutils.js:1067 +msgid "whole tone" msgstr "" -#: js/activity.js:2396 -msgid "Scrolling up." +#: js/utils/musicutils.js:1069 +#.TRANS: pentatonic is a general term that means "five note scale". This scale is typically known as "minor pentatonic" +msgid "minor pentatonic" msgstr "" -#: js/activity.js:2401 -msgid "Scrolling down." +#: js/utils/musicutils.js:1071 +#.TRANS: pentatonic is a general term that means "five note scale". This scale is typically known as "major pentatonic" +msgid "major pentatonic" msgstr "" -#: js/activity.js:2406 -msgid "Extracting block" +#: js/utils/musicutils.js:1072 +msgid "chinese" msgstr "" -#: js/activity.js:2414 -msgid "Moving block up." +#: js/utils/musicutils.js:1073 +msgid "egyptian" msgstr "" -#: js/activity.js:2435 -msgid "Moving block down." +#: js/utils/musicutils.js:1075 +#.TRANS: https://en.wikipedia.org/wiki/Hirajoshi_scale NOTE: There are three different versions of this scale +msgid "hirajoshi" msgstr "" -#: js/activity.js:2456 -msgid "Moving block left." +#: js/utils/musicutils.js:1076 +msgid "Japan" msgstr "" -#: js/activity.js:2473 -msgid "Moving block right." +#: js/utils/musicutils.js:1078 +#.TRANS: https://en.wikipedia.org/wiki/In_scale and https://en.wikipedia.org/wiki/Sakura_Sakura +msgid "in" msgstr "" -#: js/activity.js:2488 -msgid "Jump to home position." +#: js/utils/musicutils.js:1080 +#.TRANS: https://en.wikipedia.org/wiki/Miny%C5%8D_scale +msgid "minyo" msgstr "" -#: js/activity.js:2515 -msgid "Hide blocks" +#: js/utils/musicutils.js:1082 +#.TRANS: Italian mathematician +msgid "fibonacci" msgstr "" -#: js/activity.js:3389 -msgid "Click the run button to run the project." +#: js/utils/musicutils.js:1083 +#: js/utils/musicutils.js:1134 +#: js/utils/musicutils.js:1177 +#: js/utils/musicutils.js:1199 +#: js/utils/synthutils.js:134 +#: js/blocks/IntervalsBlocks.js:1124 +#: js/blocks/ToneBlocks.js:946 +#: js/blocks/VolumeBlocks.js:411 +#: js/blocks/WidgetBlocks.js:399 +#: js/blocks/WidgetBlocks.js:404 +#: js/turtleactions/VolumeActions.js:218 +#: js/widgets/modewidget.js:919 +#.TRANS: customize voice +msgid "custom" msgstr "" -#: js/activity.js:3456 -#: js/SaveInterface.js:131 -#: js/SaveInterface.js:204 -#: js/SaveInterface.js:262 -#: js/SaveInterface.js:389 -#: js/SaveInterface.js:417 -#: js/ProjectStorage.js:27 -#: js/GlobalPlanet.js:467 -#: js/GlobalPlanet.js:469 -#: js/GlobalPlanet.js:495 -#.TRANS: default project title when saving as Lilypond -msgid "My Project" +#: js/utils/musicutils.js:1085 +#: js/utils/musicutils.js:1531 +#: js/blocks/WidgetBlocks.js:176 +#.TRANS: highpass filter +msgid "highpass" msgstr "" -#: js/activity.js:4261 -msgid "Show/hide block" +#: js/utils/musicutils.js:1087 +#: js/utils/musicutils.js:1532 +#.TRANS: lowpass filter +msgid "lowpass" msgstr "" -#: js/activity.js:4263 -msgid "Expand/collapse blocks" +#: js/utils/musicutils.js:1089 +#: js/utils/musicutils.js:1533 +#.TRANS: bandpass filter +msgid "bandpass" msgstr "" -#: js/activity.js:4381 -msgid "Could not parse JSON input." +#: js/utils/musicutils.js:1091 +#: js/utils/musicutils.js:1534 +#.TRANS: high-shelf filter +msgid "highshelf" msgstr "" -#: js/activity.js:4684 -#: js/activity.js:4771 -#: js/activity.js:4821 -msgid "Cannot load project from the file. Please check the file type." +#: js/utils/musicutils.js:1093 +#: js/utils/musicutils.js:1535 +#.TRANS: low-shelf filter +msgid "lowshelf" msgstr "" -#: js/activity.js:5051 -msgid "Invalid parameters" +#: js/utils/musicutils.js:1095 +#: js/utils/musicutils.js:1536 +#.TRANS: notch-shelf filter +msgid "notch" msgstr "" -#: js/turtle-singer.js:1334 -#.TRANS: partials are weighted components in a harmonic series -msgid "You must have at least one Partial block inside of a Weighted-partial block" +#: js/utils/musicutils.js:1097 +#: js/utils/musicutils.js:1537 +#.TRANS: all-pass filter +msgid "allpass" msgstr "" -#: js/turtle-singer.js:2048 -msgid "synth cannot play chords." +#: js/utils/musicutils.js:1099 +#: js/utils/musicutils.js:1538 +#.TRANS: peaking filter +msgid "peaking" msgstr "" -#: js/lilypond.js:614 -msgid "brown rat" +#: js/utils/musicutils.js:1100 +#: js/utils/musicutils.js:1546 +#: js/utils/synthutils.js:126 +#: js/blocks/PitchBlocks.js:85 +#.TRANS: sine wave +msgid "sine" msgstr "" -#: js/lilypond.js:615 -msgid "mole" +#: js/utils/musicutils.js:1101 +#: js/utils/musicutils.js:1547 +#: js/utils/synthutils.js:128 +#: js/blocks/PitchBlocks.js:39 +#.TRANS: square wave +msgid "square" msgstr "" -#: js/lilypond.js:616 -msgid "chipmunk" +#: js/utils/musicutils.js:1102 +#: js/utils/musicutils.js:1548 +#: js/utils/synthutils.js:132 +#: js/blocks/PitchBlocks.js:62 +#: js/blocks/ToneBlocks.js:39 +#.TRANS: triangle wave +msgid "triangle" msgstr "" -#: js/lilypond.js:617 -msgid "red squirrel" +#: js/utils/musicutils.js:1103 +#: js/utils/musicutils.js:1549 +#: js/utils/synthutils.js:130 +#: js/blocks/PitchBlocks.js:108 +#.TRANS: sawtooth wave +msgid "sawtooth" msgstr "" -#: js/lilypond.js:618 -msgid "guinea pig" +#: js/utils/musicutils.js:1105 +#: js/utils/musicutils.js:1312 +#: js/blocks/PitchBlocks.js:931 +#: js/blocks/PitchBlocks.js:937 +#: js/turtleactions/PitchActions.js:469 +#.TRANS: even numbers +#.TRANS: invert based on even or odd number or musical scale +msgid "even" msgstr "" -#: js/lilypond.js:619 -msgid "capybara" +#: js/utils/musicutils.js:1107 +#: js/utils/musicutils.js:1313 +#: js/blocks/PitchBlocks.js:937 +#: js/turtleactions/PitchActions.js:471 +#.TRANS: odd numbers +msgid "odd" msgstr "" -#: js/lilypond.js:620 -msgid "coypu" +#: js/utils/musicutils.js:1108 +#: js/utils/musicutils.js:1314 +#: js/blocks/PitchBlocks.js:937 +#: js/turtleactions/PitchActions.js:473 +msgid "scalar" msgstr "" -#: js/lilypond.js:621 -msgid "black rat" +#: js/utils/musicutils.js:1109 +#: js/utils/synthutils.js:72 +#: js/blocks/VolumeBlocks.js:47 +#.TRANS: musical instrument +msgid "piano" msgstr "" -#: js/lilypond.js:622 -msgid "grey squirrel" +#: js/utils/musicutils.js:1110 +#: js/utils/synthutils.js:74 +#.TRANS: musical instrument +msgid "violin" msgstr "" -#: js/lilypond.js:623 -msgid "flying squirrel" +#: js/utils/musicutils.js:1111 +#: js/utils/synthutils.js:76 +#.TRANS: viola musical instrument +msgid "viola" msgstr "" -#: js/lilypond.js:624 -msgid "bat" +#: js/utils/musicutils.js:1112 +#: js/utils/synthutils.js:114 +#.TRANS: xylophone musical instrument +msgid "xylophone" msgstr "" -#: js/lilypond.js:757 -#: js/lilypond.js:921 -#: js/lilypond.js:959 -#: js/ActionBlocks.js:1256 -#: js/ExtrasBlocks.js:553 -msgid "start drum" +#: js/utils/musicutils.js:1113 +#: js/utils/synthutils.js:136 +#.TRANS: vibraphone musical instrument +msgid "vibraphone" msgstr "" -#: js/SaveInterface.js:59 -#: js/SaveInterface.js:61 -#: js/SaveInterface.js:93 -msgid "Music Blocks Project" +#: js/utils/musicutils.js:1114 +#: js/utils/synthutils.js:78 +#.TRANS: musical instrument +msgid "cello" msgstr "" -#: js/SaveInterface.js:63 -msgid "This project was created in Music Blocks" +#: js/utils/musicutils.js:1116 +#: js/utils/synthutils.js:82 +#.TRANS: viola musical instrument +msgid "double bass" msgstr "" -#: js/SaveInterface.js:67 -msgid "Music Blocks is a Free/Libre Software application." +#: js/utils/musicutils.js:1117 +#: js/utils/synthutils.js:84 +#: js/widgets/rhythmruler.js:2511 +#.TRANS: musical instrument +msgid "guitar" msgstr "" -#: js/SaveInterface.js:69 -msgid "The source code can be accessed at" +#: js/utils/musicutils.js:1118 +#: js/utils/synthutils.js:86 +#.TRANS: musical instrument +msgid "acoustic guitar" msgstr "" -#: js/SaveInterface.js:72 -msgid "For more information, please consult the" +#: js/utils/musicutils.js:1119 +#: js/utils/synthutils.js:88 +#.TRANS: musical instrument +msgid "flute" msgstr "" -#: js/SaveInterface.js:83 -msgid "Alternatively, open the file in Music Blocks using the Load project button." +#: js/utils/musicutils.js:1120 +#: js/utils/synthutils.js:90 +#.TRANS: musical instrument +msgid "clarinet" msgstr "" -#: js/SaveInterface.js:85 -msgid "Project Code" +#: js/utils/musicutils.js:1121 +#: js/utils/synthutils.js:92 +#.TRANS: musical instrument +msgid "saxophone" msgstr "" -#: js/SaveInterface.js:87 -msgid "This code stores data about the blocks in a project." +#: js/utils/musicutils.js:1122 +#: js/utils/synthutils.js:94 +#.TRANS: musical instrument +msgid "tuba" msgstr "" -#: js/SaveInterface.js:89 -msgid "Show" +#: js/utils/musicutils.js:1123 +#: js/utils/synthutils.js:96 +#.TRANS: musical instrument +msgid "trumpet" msgstr "" -#: js/SaveInterface.js:91 -msgid "Hide" +#: js/utils/musicutils.js:1124 +#: js/utils/synthutils.js:98 +#.TRANS: musical instrument +msgid "oboe" msgstr "" -#: js/SaveInterface.js:197 -#: js/SaveInterface.js:58 -msgid "No description provided" +#: js/utils/musicutils.js:1125 +#: js/utils/synthutils.js:100 +#.TRANS: musical instrument +msgid "trombone" msgstr "" -#: js/SaveInterface.js:332 -msgid "Your recording is in progress." +#: js/utils/musicutils.js:1126 +#: js/utils/synthutils.js:116 +#.TRANS: polytone synthesizer +msgid "electronic synth" msgstr "" -#: js/SaveInterface.js:401 -#.TRANS: File name prompt for save as Lilypond -msgid "File name" +#: js/utils/musicutils.js:1127 +#: js/utils/synthutils.js:118 +#.TRANS: simple monotone synthesizer +msgid "simple 1" msgstr "" -#: js/SaveInterface.js:403 -#: js/StringHelper.js:39 -#.TRANS: Project title prompt for save as Lilypond -msgid "Project title" +#: js/utils/musicutils.js:1128 +msgid "simple 2" msgstr "" -#: js/SaveInterface.js:405 -#.TRANS: Project title prompt for save as Lilypond -msgid "Project author" +#: js/utils/musicutils.js:1129 +msgid "simple 3" msgstr "" -#: js/SaveInterface.js:407 -#.TRANS: MIDI prompt for save as Lilypond -msgid "Include MIDI output?" +#: js/utils/musicutils.js:1130 +msgid "simple 4" msgstr "" -#: js/SaveInterface.js:409 -#.TRANS: Guitar prompt for save as Lilypond -msgid "Include guitar tablature output?" +#: js/utils/musicutils.js:1131 +#: js/utils/synthutils.js:58 +#: js/blocks/DrumBlocks.js:191 +#.TRANS: white noise synthesizer +msgid "white noise" msgstr "" -#: js/SaveInterface.js:411 -#.TRANS: Lilypond is a scripting language for generating sheet music -msgid "Save as Lilypond" +#: js/utils/musicutils.js:1132 +#: js/utils/synthutils.js:60 +#.TRANS: brown noise synthesizer +msgid "brown noise" msgstr "" -#: js/SaveInterface.js:426 -#: js/EnsembleBlocks.js:75 -#: js/EnsembleBlocks.js:154 -#: js/EnsembleBlocks.js:216 -#: js/EnsembleBlocks.js:302 -#: js/EnsembleBlocks.js:348 -#: js/EnsembleBlocks.js:389 -#: js/EnsembleBlocks.js:441 -#: js/EnsembleBlocks.js:490 -#: js/EnsembleBlocks.js:536 -#: js/EnsembleBlocks.js:583 -#: js/EnsembleBlocks.js:637 -#: js/EnsembleBlocks.js:753 -#: js/EnsembleBlocks.js:840 -#: js/EnsembleBlocks.js:899 -#: js/EnsembleBlocks.js:942 -#: js/EnsembleBlocks.js:1212 -#: js/EnsembleBlocks.js:1280 -#.TRANS: default project author when saving as Lilypond -msgid "Mr. Mouse" +#: js/utils/musicutils.js:1133 +#: js/utils/synthutils.js:62 +#.TRANS: pink noise synthesizer +msgid "pink noise" msgstr "" -#: js/SaveInterface.js:573 -msgid "The Lilypond code is copied to clipboard. You can paste it here: " +#: js/utils/musicutils.js:1135 +#: js/utils/synthutils.js:148 +#: js/widgets/rhythmruler.js:2057 +#: js/widgets/rhythmruler.js:2319 +#.TRANS: musical instrument +msgid "snare drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:50 -#: js/RhythmBlockPaletteBlocks.js:232 -#.TRANS: rhythm block -#.TRANS: translate "rhythm1" as rhythm -msgid "rhythm1" +#: js/utils/musicutils.js:1136 +#: js/utils/synthutils.js:150 +#.TRANS: musical instrument +msgid "kick drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:70 -#: js/RhythmBlockPaletteBlocks.js:251 -#: js/RhythmBlockPaletteBlocks.js:484 -#: js/RhythmBlockPaletteBlocks.js:553 -#: js/RhythmBlockPaletteBlocks.js:874 -msgid "number of notes" +#: js/utils/musicutils.js:1137 +#: js/utils/synthutils.js:152 +#.TRANS: musical instrument +msgid "tom tom" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:126 -msgid "polyphonic rhythm" +#: js/utils/musicutils.js:1138 +#: js/utils/synthutils.js:154 +#.TRANS: musical instrument +msgid "floor tom" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:218 -msgid "The Rhythm block is used to generate rhythm patterns." +#: js/utils/musicutils.js:1139 +#: js/utils/synthutils.js:156 +#.TRANS: musical instrument +msgid "bass drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:279 -msgid "1/64 note" +#: js/utils/musicutils.js:1140 +#: js/utils/synthutils.js:158 +#.TRANS: a drum made from an inverted cup +msgid "cup drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:303 -msgid "1/32 note" +#: js/utils/musicutils.js:1141 +#: js/utils/synthutils.js:160 +#.TRANS: musical instrument +msgid "darbuka drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:331 -msgid "1/16 note" +#: js/utils/musicutils.js:1142 +#: js/utils/synthutils.js:164 +#.TRANS: musical instrument +msgid "hi hat" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:359 -msgid "eighth note" +#: js/utils/musicutils.js:1143 +#: js/utils/synthutils.js:166 +#.TRANS: a small metal bell +msgid "ride bell" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:387 -msgid "quarter note" +#: js/utils/musicutils.js:1144 +#: js/utils/synthutils.js:168 +#.TRANS: musical instrument +msgid "cow bell" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:415 -msgid "half note" +#: js/utils/musicutils.js:1145 +msgid "japanese drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:443 -msgid "whole note" +#: js/utils/musicutils.js:1146 +#: js/utils/synthutils.js:174 +#.TRANS: musical instrument +msgid "japanese bell" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:481 -#: js/RhythmBlockPaletteBlocks.js:550 -#: js/RhythmBlockPaletteBlocks.js:601 -#.TRANS: A tuplet is a note value divided into irregular time values. -msgid "tuplet" +#: js/utils/musicutils.js:1147 +#: js/utils/synthutils.js:170 +#.TRANS: musical instrument +msgid "triangle bell" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:767 -msgid "septuplet" +#: js/utils/musicutils.js:1148 +#: js/utils/synthutils.js:172 +#.TRANS: musical instrument +msgid "finger cymbals" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:795 -msgid "quintuplet" +#: js/utils/musicutils.js:1149 +#: js/utils/synthutils.js:176 +#.TRANS: a musically tuned set of bells +msgid "chime" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:823 -msgid "triplet" +#: js/utils/musicutils.js:1150 +#: js/utils/synthutils.js:178 +#.TRANS: a musical instrument +msgid "gong" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:850 -msgid "simple tuplet" +#: js/utils/musicutils.js:1151 +#: js/utils/synthutils.js:180 +#.TRANS: sound effect +msgid "clang" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:860 -msgid "Tuplets are a collection of notes that get scaled to a specific duration." +#: js/utils/musicutils.js:1152 +#: js/utils/synthutils.js:182 +#.TRANS: sound effect +msgid "crash" msgstr "" -#: js/WidgetBlocks.js:71 -#.TRANS: sound envelope (ADSR) -msgid "envelope" +#: js/utils/musicutils.js:1153 +#: js/utils/synthutils.js:184 +#.TRANS: sound effect +msgid "bottle" msgstr "" -#: js/WidgetBlocks.js:79 -#.TRANS: Attack time is the time taken for initial run-up of level from nil to peak, beginning when the key is first pressed. -msgid "attack" +#: js/utils/musicutils.js:1154 +#: js/utils/synthutils.js:186 +#.TRANS: sound effect +msgid "clap" msgstr "" -#: js/WidgetBlocks.js:81 -#.TRANS: Decay time is the time taken for the subsequent run down from the attack level to the designated sustain level. -msgid "decay" +#: js/utils/musicutils.js:1155 +#: js/utils/synthutils.js:188 +#.TRANS: sound effect +msgid "slap" msgstr "" -#: js/WidgetBlocks.js:83 -#.TRANS: Sustain level is the level during the main sequence of the sound's duration, until the key is released. -msgid "sustain" +#: js/utils/musicutils.js:1156 +#: js/utils/synthutils.js:190 +#.TRANS: sound effect +msgid "splash" msgstr "" -#: js/WidgetBlocks.js:85 -#.TRANS: Release time is the time taken for the level to decay from the sustain level to zero after the key is released. -msgid "release" +#: js/utils/musicutils.js:1157 +#: js/utils/synthutils.js:192 +#.TRANS: sound effect +msgid "bubbles" msgstr "" -#: js/WidgetBlocks.js:96 -msgid "Attack value should be from 0 to 100." +#: js/utils/musicutils.js:1158 +#: js/utils/synthutils.js:194 +#.TRANS: sound effect +msgid "raindrop" msgstr "" -#: js/WidgetBlocks.js:99 -msgid "Decay value should be from 0 to 100." +#: js/utils/musicutils.js:1159 +#: js/utils/synthutils.js:196 +#.TRANS: animal sound effect +msgid "cat" msgstr "" -#: js/WidgetBlocks.js:102 -msgid "Sustain value should be from 0 to 100." +#: js/utils/musicutils.js:1160 +#: js/utils/synthutils.js:198 +#.TRANS: animal sound effect +msgid "cricket" msgstr "" -#: js/WidgetBlocks.js:105 -msgid "Release value should be from 0-100." +#: js/utils/musicutils.js:1161 +#: js/utils/synthutils.js:200 +#.TRANS: animal sound effect +msgid "dog" msgstr "" -#: js/WidgetBlocks.js:121 -msgid "You are adding multiple envelope blocks." +#: js/utils/musicutils.js:1163 +#: js/utils/synthutils.js:102 +#.TRANS: musical instrument +msgid "banjo" msgstr "" -#: js/WidgetBlocks.js:144 -#.TRANS: a filter removes some unwanted components from a signal -msgid "filter" +#: js/utils/musicutils.js:1164 +#: js/utils/synthutils.js:104 +#.TRANS: musical instrument +msgid "koto" msgstr "" -#: js/WidgetBlocks.js:149 -#: js/musicutils.js:706 -#: js/musicutils.js:1105 -#.TRANS: highpass filter -msgid "highpass" +#: js/utils/musicutils.js:1165 +#: js/utils/synthutils.js:106 +#.TRANS: musical instrument +msgid "dulcimer" msgstr "" -#: js/WidgetBlocks.js:152 -#: js/ToneBlocks.js:42 -#: js/timbre.js:1558 -#: js/timbre.js:1808 -#.TRANS: type of filter, e.g., lowpass, highpass, etc. -#.TRANS: there are different types (sine, triangle, square...) of oscillators. -msgid "type" +#: js/utils/musicutils.js:1166 +#: js/utils/synthutils.js:108 +#.TRANS: musical instrument +msgid "electric guitar" msgstr "" -#: js/WidgetBlocks.js:154 -#: js/timbre.js:1818 -#.TRANS: rolloff is the steepness of a change in frequency. -msgid "rolloff" +#: js/utils/musicutils.js:1167 +#: js/utils/synthutils.js:110 +#.TRANS: musical instrument +msgid "bassoon" msgstr "" -#: js/WidgetBlocks.js:155 -#: js/MediaBlocks.js:692 -#: js/temperament.js:382 -#: js/temperament.js:417 -#: js/temperament.js:477 -#: js/temperament.js:485 -#: js/temperament.js:1348 -#: js/timbre.js:1842 -msgid "frequency" +#: js/utils/musicutils.js:1168 +#: js/utils/synthutils.js:112 +#.TRANS: musical instrument +msgid "celeste" msgstr "" -#: js/WidgetBlocks.js:179 -#.TRANS: rolloff is the steepness of a change in frequency. -msgid "Rolloff value should be either -12, -24, -48, or -96 decibels/octave." +#: js/utils/musicutils.js:1170 +#: js/widgets/temperament.js:787 +#.TRANS: musical temperament +msgid "equal" msgstr "" -#: js/WidgetBlocks.js:211 -msgid "The Temperament tool is used to define custom tuning." +#: js/utils/musicutils.js:1172 +#.TRANS: musical temperament +msgid "Pythagorean" msgstr "" -#: js/WidgetBlocks.js:277 -#: js/sampler.js:329 -msgid "Upload a sample and adjust its pitch center." +#: js/utils/musicutils.js:1174 +#.TRANS: musical temperament +msgid "just intonation" msgstr "" -#: js/WidgetBlocks.js:284 -#.TRANS: the speed at music is should be played. -msgid "sampler" +#: js/utils/musicutils.js:1176 +#.TRANS: musical temperament +msgid "meantone" msgstr "" -#: js/WidgetBlocks.js:329 -#: js/WidgetBlocks.js:334 -#: js/IntervalsBlocks.js:928 -#: js/VolumeBlocks.js:411 -#: js/ToneBlocks.js:946 -#: js/VolumeActions.js:218 -#: js/musicutils.js:704 -#: js/musicutils.js:755 -#: js/musicutils.js:798 -#: js/musicutils.js:820 -#: js/musicutils.js:1136 -#: js/synthutils.js:118 -#: js/modewidget.js:919 -#.TRANS: customize voice -msgid "custom" +#: js/utils/musicutils.js:1193 +msgid "major 7th" msgstr "" -#: js/WidgetBlocks.js:432 -msgid "The Meter block opens a tool to select strong beats for the meter." +#: js/utils/musicutils.js:1194 +msgid "minor 7th" msgstr "" -#: js/WidgetBlocks.js:473 -msgid "The oscilloscope block opens a tool to visualize waveforms." +#: js/utils/musicutils.js:1195 +msgid "dominant 7th" msgstr "" -#: js/WidgetBlocks.js:478 -msgid "oscilloscope" +#: js/utils/musicutils.js:1196 +msgid "minor-major 7th" msgstr "" -#: js/WidgetBlocks.js:530 -msgid "The Custom mode block opens a tool to explore musical mode (the spacing of the notes in a scale)." +#: js/utils/musicutils.js:1197 +msgid "fully-diminished 7th" msgstr "" -#: js/WidgetBlocks.js:536 -#.TRANS: musical mode is the pattern of half-steps in an octave, e.g., Major or Minor modes -msgid "custom mode" +#: js/utils/musicutils.js:1198 +msgid "half-diminished 7th" msgstr "" -#: js/WidgetBlocks.js:570 -msgid "The Tempo block opens a metronome to visualize the beat." +#: js/utils/musicutils.js:1557 +#: js/utils/musicutils.js:1569 +msgid "Equal (12EDO)" msgstr "" -#: js/WidgetBlocks.js:617 -msgid "The Arpeggio Widget is used to compose chord sequences." +#: js/utils/musicutils.js:1558 +#: js/utils/musicutils.js:1570 +msgid "5-limit Just Intonation" msgstr "" -#: js/WidgetBlocks.js:623 -#: js/IntervalsBlocks.js:683 -msgid "arpeggio" +#: js/utils/musicutils.js:1559 +#: js/utils/musicutils.js:1571 +msgid "Pythagorean (3-limit JI)" msgstr "" -#: js/WidgetBlocks.js:677 -msgid "The Pitch drum matrix is used to map pitches to drum sounds." +#: js/utils/musicutils.js:1560 +#: js/utils/musicutils.js:1561 +#: js/utils/musicutils.js:1572 +#: js/utils/musicutils.js:1573 +msgid "Meantone" msgstr "" -#: js/WidgetBlocks.js:682 -#.TRANS: makes a mapping between pitches and drum sounds -msgid "pitch-drum mapper" +#: js/utils/musicutils.js:1574 +msgid "Custom" msgstr "" -#: js/WidgetBlocks.js:724 -msgid "You must have at least one pitch block and one drum block in the matrix." +#: js/utils/musicutils.js:5387 +#: js/utils/musicutils.js:5430 +msgid "current" msgstr "" -#: js/WidgetBlocks.js:746 -msgid "The Pitch slider tool to is used to generate pitches at selected frequencies." +#: js/utils/musicutils.js:5390 +#: js/utils/musicutils.js:5421 +msgid "next" msgstr "" -#: js/WidgetBlocks.js:751 -#.TRANS: widget to generate pitches using a slider -msgid "pitch slider" +#: js/utils/musicutils.js:5393 +#: js/utils/musicutils.js:5426 +msgid "previous" msgstr "" -#: js/WidgetBlocks.js:788 -msgid "chromatic keyboard" +#: js/utils/synthutils.js:120 +#.TRANS: simple monotone synthesizer +msgid "simple-2" msgstr "" -#: js/WidgetBlocks.js:815 -#: js/WidgetBlocks.js:874 -#.TRANS: widget to generate pitches using a slider -msgid "music keyboard" +#: js/utils/synthutils.js:122 +#.TRANS: simple monotone synthesizer +msgid "simple-3" msgstr "" -#: js/WidgetBlocks.js:859 -#: js/WidgetBlocks.js:866 -msgid "The Music keyboard block opens a piano keyboard that can be used to create notes." +#: js/utils/synthutils.js:124 +#.TRANS: simple monotone synthesizer +msgid "simple-4" msgstr "" -#: js/WidgetBlocks.js:910 -msgid "The Pitch staircase tool to is used to generate pitches from a given ratio." +#: js/utils/synthutils.js:162 +#.TRANS: musical instrument +msgid "taiko" msgstr "" -#: js/WidgetBlocks.js:917 -#.TRANS: generate a progressive sequence of pitches -msgid "pitch staircase" +#: js/blocks/ActionBlocks.js:58 +msgid "The Return block will return a value from an action." msgstr "" -#: js/WidgetBlocks.js:982 -msgid "The Rhythm Maker block opens a tool to create drum machines." +#: js/blocks/ActionBlocks.js:75 +msgid "return" msgstr "" -#: js/WidgetBlocks.js:1036 -msgid "G major scale" +#: js/blocks/ActionBlocks.js:128 +msgid "The Return to URL block will return a value to a webpage." msgstr "" -#: js/WidgetBlocks.js:1064 -msgid "C major scale" +#: js/blocks/ActionBlocks.js:145 +msgid "return to URL" msgstr "" -#: js/WidgetBlocks.js:1097 -msgid "The Phrase Maker block opens a tool to create musical phrases." +#: js/blocks/ActionBlocks.js:233 +#: js/blocks/ActionBlocks.js:290 +#: js/blocks/ActionBlocks.js:501 +#: js/blocks/ActionBlocks.js:688 +msgid "The Calculate block returns a value calculated by an action." msgstr "" -#: js/WidgetBlocks.js:1104 -#.TRANS: assigns pitch to a sequence of beats to generate a melody -msgid "phrase maker" +#: js/blocks/ActionBlocks.js:251 +#: js/blocks/ActionBlocks.js:517 +#: js/blocks/ActionBlocks.js:707 +msgid "calculate" msgstr "" -#: js/WidgetBlocks.js:1168 -msgid "You must have at least one pitch block and one rhythm block in the matrix." +#: js/blocks/ActionBlocks.js:376 +#: js/blocks/ActionBlocks.js:593 +#: js/blocks/ActionBlocks.js:942 +#: js/blocks/ActionBlocks.js:1389 +#.TRANS: do is the do something or take an action. +msgid "The Do block is used to initiate an action." msgstr "" -#: js/WidgetBlocks.js:1220 -msgid "The Status block opens a tool for inspecting the status of Music Blocks as it is running." +#: js/blocks/ActionBlocks.js:390 +#: js/blocks/ActionBlocks.js:610 +#: js/blocks/ActionBlocks.js:959 +#: js/blocks/ActionBlocks.js:1048 +#: js/blocks/MeterBlocks.js:769 +msgid "do1" msgstr "" -#: js/IntervalsBlocks.js:45 -msgid "set temperament" +#: js/blocks/ActionBlocks.js:390 +#: js/blocks/ActionBlocks.js:610 +#: js/blocks/ActionBlocks.js:959 +#: js/blocks/ActionBlocks.js:1048 +#: js/blocks/FlowBlocks.js:742 +#: js/blocks/FlowBlocks.js:822 +#: js/blocks/MeterBlocks.js:769 +msgid "do" msgstr "" -#: js/IntervalsBlocks.js:63 -#: js/MediaBlocks.js:746 -#: js/PitchBlocks.js:657 -#: js/PitchBlocks.js:933 -#: js/PitchBlocks.js:972 -#: js/PitchBlocks.js:1005 -#: js/PitchBlocks.js:1166 -#: js/PitchBlocks.js:1679 -#: js/PitchBlocks.js:1720 -#: js/PitchBlocks.js:1827 -#: js/ToneBlocks.js:1025 -#.TRANS: adjusts the shift up or down by one octave (twelve half-steps in the interval between two notes, one having twice or half the frequency in Hz of the other.) -msgid "octave" +#: js/blocks/ActionBlocks.js:791 +#: js/blocks/ActionBlocks.js:865 +msgid "The Arg block contains the value of an argument passed to an action." msgstr "" -#: js/IntervalsBlocks.js:99 -msgid "The Temperament name block is used to select a tuning method." +#: js/blocks/ActionBlocks.js:806 +#: js/blocks/ActionBlocks.js:878 +msgid "arg" msgstr "" -#: js/IntervalsBlocks.js:161 -msgid "doubly" +#: js/blocks/ActionBlocks.js:836 +#: js/blocks/ActionBlocks.js:900 +#: js/blocks/ActionBlocks.js:908 +msgid "Invalid argument" msgstr "" -#: js/IntervalsBlocks.js:166 -msgid "The Doubly block will double the size of an interval." +#: js/blocks/ActionBlocks.js:944 +msgid "In the example, it is used with the One of block to choose a random phase." msgstr "" -#: js/IntervalsBlocks.js:262 -msgid "interval number" +#: js/blocks/ActionBlocks.js:1019 +#: js/blocks/ActionBlocks.js:1026 +msgid "The Listen block is used to listen for an event such as a mouse click." msgstr "" -#: js/IntervalsBlocks.js:330 -#.TRANS: measure the distance between two pitches in semi-tones -msgid "semi-tone interval measure" +#: js/blocks/ActionBlocks.js:1028 +msgid "When the event happens, an action is taken." msgstr "" -#: js/IntervalsBlocks.js:397 -#: js/IntervalsBlocks.js:513 -msgid "You must use two pitch blocks when measuring an interval." +#: js/blocks/ActionBlocks.js:1045 +msgid "on" msgstr "" -#: js/IntervalsBlocks.js:439 -msgid "The Scalar interval block measures the distance between two notes in the current key and mode." +#: js/blocks/ActionBlocks.js:1048 +#: js/blocks/ActionBlocks.js:1049 +#: js/blocks/ActionBlocks.js:1153 +msgid "event" msgstr "" -#: js/IntervalsBlocks.js:445 -#.TRANS: measure the distance between two pitches in steps of musical scale -msgid "scalar interval measure" +#: js/blocks/ActionBlocks.js:1133 +msgid "The Broadcast block is used to trigger an event." msgstr "" -#: js/IntervalsBlocks.js:592 -#: js/musicutils.js:637 -#: js/musicutils.js:908 -#.TRANS: perfect is a music term related to intervals -msgid "perfect" +#: js/blocks/ActionBlocks.js:1151 +msgid "broadcast" msgstr "" -#: js/IntervalsBlocks.js:621 -msgid "In the figure, we add sol# to sol." +#: js/blocks/ActionBlocks.js:1208 +msgid "Each Start block is a separate voice." msgstr "" -#: js/IntervalsBlocks.js:627 -#: js/OrnamentBlocks.js:220 -#.TRANS: calculate a relative step between notes based on semi-tones -msgid "semi-tone interval" +#: js/blocks/ActionBlocks.js:1304 +msgid "It is often used for storing a phrase of music that is repeated." msgstr "" -#: js/IntervalsBlocks.js:676 -msgid "The output of the example is: do, mi, sol, sol, ti, mi" +#: js/blocks/ActionBlocks.js:1495 +msgid "define temperament" msgstr "" -#: js/IntervalsBlocks.js:735 -msgid "The Chord block calculates common chords." +#: js/blocks/BooleanBlocks.js:44 +msgid "The Not block is the logical not operator." msgstr "" -#: js/IntervalsBlocks.js:737 -msgid "In the figure, we generate a C-major chord." +#: js/blocks/BooleanBlocks.js:62 +msgid "not" msgstr "" -#: js/IntervalsBlocks.js:742 -msgid "chord" +#: js/blocks/BooleanBlocks.js:134 +msgid "The And block is the logical and operator." msgstr "" -#: js/IntervalsBlocks.js:794 -msgid "The Ratio Interval block calculates an interval based on a ratio." +#: js/blocks/BooleanBlocks.js:152 +msgid "and" msgstr "" -#: js/IntervalsBlocks.js:799 -msgid "ratio interval" +#: js/blocks/BooleanBlocks.js:218 +msgid "The Or block is the logical or operator." msgstr "" -#: js/IntervalsBlocks.js:868 -msgid "In the figure, we add la to sol." +#: js/blocks/BooleanBlocks.js:236 +msgid "or" msgstr "" -#: js/IntervalsBlocks.js:924 -#.TRANS: define a custom mode -msgid "define mode" +#: js/blocks/BooleanBlocks.js:302 +msgid "The XOR block is the logical XOR operator." msgstr "" -#: js/IntervalsBlocks.js:977 -msgid "movable Do" +#: js/blocks/BooleanBlocks.js:320 +msgid "xor" msgstr "" -#: js/IntervalsBlocks.js:1028 -#.TRANS: mode length is the number of notes in the mode, e.g., 7 for major and minor scales; 12 for chromatic scales -msgid "mode length" +#: js/blocks/BooleanBlocks.js:808 +msgid "The Equal block returns True if the two numbers are equal." msgstr "" -#: js/IntervalsBlocks.js:1037 -msgid "The Mode length block is the number of notes in the current scale." +#: js/blocks/BooleanBlocks.js:909 +msgid "The Not-equal-to block returns True if the two numbers are not equal to each other." msgstr "" -#: js/IntervalsBlocks.js:1039 -msgid "Most Western scales have 7 notes." +#: js/blocks/BooleanBlocks.js:1008 +msgid "The Boolean block is used to specify true or false." msgstr "" -#: js/IntervalsBlocks.js:1088 -#.TRANS: the mode in music is 'major', 'minor', etc. -msgid "current mode" +#: js/blocks/BoxesBlocks.js:53 +#: js/blocks/BoxesBlocks.js:59 +msgid "The Add-to block is used to add to the value stored in a box." msgstr "" -#: js/IntervalsBlocks.js:1141 -#.TRANS: the key is a group of pitches with which a music composition is created -msgid "current key" +#: js/blocks/BoxesBlocks.js:61 +msgid "It can also be used with other blocks such as Color and Pen size." msgstr "" -#: js/IntervalsBlocks.js:1193 -#: js/IntervalsBlocks.js:1238 -#.TRANS: set the key and mode, e.g. C Major -msgid "set key" +#: js/blocks/BoxesBlocks.js:73 +msgid "add" msgstr "" -#: js/IntervalsBlocks.js:1247 -#: js/IntervalsBlocks.js:1253 -msgid "The Set key block is used to set the key and mode," +#: js/blocks/BoxesBlocks.js:75 +#: js/widgets/temperament.js:857 +msgid "to" msgstr "" -#: js/IntervalsBlocks.js:1253 -msgid "eg C Major" +#: js/blocks/BoxesBlocks.js:75 +#: js/blocks/BoxesBlocks.js:595 +#: js/blocks/HeapBlocks.js:544 +msgid "value1" msgstr "" -#: js/IntervalsBlocks.js:1266 -#: js/DictBlocks.js:215 -#: js/DictBlocks.js:216 -#: js/DictBlocks.js:289 -#: js/DictBlocks.js:290 -#: js/DictBlocks.js:357 -#: js/DictBlocks.js:430 -#: js/DictBlocks.js:431 -#.TRANS: key, e.g., C in C Major -msgid "key" +#: js/blocks/BoxesBlocks.js:118 +msgid "Block does not support incrementing." msgstr "" -#: js/ActionBlocks.js:58 -msgid "The Return block will return a value from an action." +#: js/blocks/BoxesBlocks.js:152 +msgid "The Add-1-to block adds one to the value stored in a box." msgstr "" -#: js/ActionBlocks.js:75 -msgid "return" +#: js/blocks/BoxesBlocks.js:163 +msgid "add 1 to" msgstr "" -#: js/ActionBlocks.js:128 -msgid "The Return to URL block will return a value to a webpage." +#: js/blocks/BoxesBlocks.js:211 +msgid "The Subtract-1-from block subtracts one from the value stored in a box." msgstr "" -#: js/ActionBlocks.js:145 -msgid "return to URL" +#: js/blocks/BoxesBlocks.js:222 +msgid "subtract 1 from" msgstr "" -#: js/ActionBlocks.js:233 -#: js/ActionBlocks.js:290 -#: js/ActionBlocks.js:501 -#: js/ActionBlocks.js:688 -msgid "The Calculate block returns a value calculated by an action." +#: js/blocks/BoxesBlocks.js:270 +#: js/blocks/BoxesBlocks.js:387 +msgid "The Box block returns the value stored in a box." msgstr "" -#: js/ActionBlocks.js:251 -#: js/ActionBlocks.js:517 -#: js/ActionBlocks.js:707 -msgid "calculate" +#: js/blocks/BoxesBlocks.js:500 +#: js/blocks/BoxesBlocks.js:576 +msgid "The Store in block will store a value in a box." msgstr "" -#: js/ActionBlocks.js:376 -#: js/ActionBlocks.js:593 -#: js/ActionBlocks.js:942 -#: js/ActionBlocks.js:1389 -#.TRANS: do is the do something or take an action. -msgid "The Do block is used to initiate an action." +#: js/blocks/BoxesBlocks.js:595 +#: js/blocks/EnsembleBlocks.js:391 +#: js/blocks/EnsembleBlocks.js:402 +msgid "name1" msgstr "" -#: js/ActionBlocks.js:390 -#: js/ActionBlocks.js:610 -#: js/ActionBlocks.js:959 -#: js/ActionBlocks.js:1048 -#: js/MeterBlocks.js:769 -msgid "do1" +#: js/blocks/BoxesBlocks.js:652 +msgid "The Box2 block returns the value stored in Box2." msgstr "" -#: js/ActionBlocks.js:390 -#: js/ActionBlocks.js:610 -#: js/ActionBlocks.js:959 -#: js/ActionBlocks.js:1048 -#: js/FlowBlocks.js:742 -#: js/FlowBlocks.js:822 -#: js/MeterBlocks.js:769 -msgid "do" +#: js/blocks/BoxesBlocks.js:703 +msgid "The Store in Box2 block is used to store a value in Box2." msgstr "" -#: js/ActionBlocks.js:791 -#: js/ActionBlocks.js:865 -msgid "The Arg block contains the value of an argument passed to an action." +#: js/blocks/BoxesBlocks.js:715 +msgid "store in box2" msgstr "" -#: js/ActionBlocks.js:806 -#: js/ActionBlocks.js:878 -msgid "arg" +#: js/blocks/BoxesBlocks.js:761 +msgid "The Box1 block returns the value stored in Box1." msgstr "" -#: js/ActionBlocks.js:836 -#: js/ActionBlocks.js:900 -#: js/ActionBlocks.js:908 -msgid "Invalid argument" +#: js/blocks/BoxesBlocks.js:812 +msgid "The Store in Box1 block is used to store a value in Box1." msgstr "" -#: js/ActionBlocks.js:944 -msgid "In the example, it is used with the One of block to choose a random phase." +#: js/blocks/BoxesBlocks.js:826 +msgid "store in box1" msgstr "" -#: js/ActionBlocks.js:1019 -#: js/ActionBlocks.js:1026 -msgid "The Listen block is used to listen for an event such as a mouse click." +#: js/blocks/DictBlocks.js:77 +msgid "show dictionary" msgstr "" -#: js/ActionBlocks.js:1028 -msgid "When the event happens, an action is taken." +#: js/blocks/DictBlocks.js:80 +#: js/blocks/DictBlocks.js:145 +#: js/blocks/DictBlocks.js:216 +#: js/blocks/DictBlocks.js:290 +#: js/blocks/ProgramBlocks.js:396 +#: js/blocks/ProgramBlocks.js:501 +#: js/blocks/ProgramBlocks.js:664 +msgid "My Dictionary" msgstr "" -#: js/ActionBlocks.js:1045 -msgid "on" +#: js/blocks/DictBlocks.js:129 +msgid "The Dictionary block returns a dictionary." msgstr "" -#: js/ActionBlocks.js:1048 -#: js/ActionBlocks.js:1049 -#: js/ActionBlocks.js:1153 -msgid "event" +#: js/blocks/DictBlocks.js:197 +#: js/blocks/DictBlocks.js:339 +msgid "The Get-dict block returns a value in the dictionary for a specified key." msgstr "" -#: js/ActionBlocks.js:1133 -msgid "The Broadcast block is used to trigger an event." +#: js/blocks/DictBlocks.js:212 +#: js/blocks/DictBlocks.js:354 +#.TRANS: retrieve a value from the dictionary with a given key +msgid "get value" msgstr "" -#: js/ActionBlocks.js:1151 -msgid "broadcast" +#: js/blocks/DictBlocks.js:215 +#: js/blocks/DictBlocks.js:216 +#: js/blocks/DictBlocks.js:289 +#: js/blocks/DictBlocks.js:290 +#: js/blocks/DictBlocks.js:357 +#: js/blocks/DictBlocks.js:430 +#: js/blocks/DictBlocks.js:431 +msgid "key2" msgstr "" -#: js/ActionBlocks.js:1208 -msgid "Each Start block is a separate voice." +#: js/blocks/DictBlocks.js:215 +#: js/blocks/DictBlocks.js:216 +#: js/blocks/DictBlocks.js:289 +#: js/blocks/DictBlocks.js:290 +#: js/blocks/DictBlocks.js:357 +#: js/blocks/DictBlocks.js:430 +#: js/blocks/DictBlocks.js:431 +#: js/blocks/IntervalsBlocks.js:1462 +#.TRANS: key, e.g., C in C Major +msgid "key" msgstr "" -#: js/ActionBlocks.js:1304 -msgid "It is often used for storing a phrase of music that is repeated." +#: js/blocks/DictBlocks.js:271 +#: js/blocks/DictBlocks.js:411 +msgid "The Set-dict block sets a value in the dictionary for a specified key." msgstr "" -#: js/ActionBlocks.js:1495 -msgid "define temperament" +#: js/blocks/DictBlocks.js:286 +#: js/blocks/DictBlocks.js:427 +#.TRANS: set a value in the dictionary for a given key +msgid "set value" msgstr "" -#: js/EnsembleBlocks.js:66 +#: js/blocks/EnsembleBlocks.js:66 msgid "mouse index heap" msgstr "" -#: js/EnsembleBlocks.js:68 +#: js/blocks/EnsembleBlocks.js:68 msgid "The Mouse index heap block returns a value in the heap at a specified location for a specified mouse." msgstr "" -#: js/EnsembleBlocks.js:77 -#: js/EnsembleBlocks.js:1080 +#: js/blocks/EnsembleBlocks.js:77 +#: js/blocks/EnsembleBlocks.js:1080 msgid "mouse name" msgstr "" -#: js/EnsembleBlocks.js:77 -#: js/EnsembleBlocks.js:92 -#: js/HeapBlocks.js:544 +#: js/blocks/EnsembleBlocks.js:77 +#: js/blocks/EnsembleBlocks.js:92 +#: js/blocks/HeapBlocks.js:544 #.TRANS: value1 is a numeric value (JAPANESE ONLY) msgid "index" msgstr "" -#: js/EnsembleBlocks.js:80 +#: js/blocks/EnsembleBlocks.js:80 msgid "turtle index heap" msgstr "" -#: js/EnsembleBlocks.js:82 +#: js/blocks/EnsembleBlocks.js:82 msgid "The Turtle index heap block returns a value in the heap at a specified location for a specified turtle." msgstr "" -#: js/EnsembleBlocks.js:90 -#: js/EnsembleBlocks.js:167 -#: js/EnsembleBlocks.js:230 -#: js/EnsembleBlocks.js:316 -#: js/EnsembleBlocks.js:362 -#: js/EnsembleBlocks.js:400 -#: js/EnsembleBlocks.js:454 -#: js/EnsembleBlocks.js:504 -#: js/EnsembleBlocks.js:550 -#: js/EnsembleBlocks.js:597 -#: js/EnsembleBlocks.js:651 -#: js/EnsembleBlocks.js:763 -#: js/EnsembleBlocks.js:854 -#: js/EnsembleBlocks.js:915 -#: js/EnsembleBlocks.js:955 -#: js/EnsembleBlocks.js:1219 -#: js/EnsembleBlocks.js:1293 +#: js/blocks/EnsembleBlocks.js:90 +#: js/blocks/EnsembleBlocks.js:167 +#: js/blocks/EnsembleBlocks.js:230 +#: js/blocks/EnsembleBlocks.js:316 +#: js/blocks/EnsembleBlocks.js:362 +#: js/blocks/EnsembleBlocks.js:400 +#: js/blocks/EnsembleBlocks.js:454 +#: js/blocks/EnsembleBlocks.js:504 +#: js/blocks/EnsembleBlocks.js:550 +#: js/blocks/EnsembleBlocks.js:597 +#: js/blocks/EnsembleBlocks.js:651 +#: js/blocks/EnsembleBlocks.js:763 +#: js/blocks/EnsembleBlocks.js:854 +#: js/blocks/EnsembleBlocks.js:915 +#: js/blocks/EnsembleBlocks.js:955 +#: js/blocks/EnsembleBlocks.js:1219 +#: js/blocks/EnsembleBlocks.js:1293 #.TRANS: Yertle is the name of a turtle. msgid "Yertle" msgstr "" -#: js/EnsembleBlocks.js:92 -#: js/EnsembleBlocks.js:1089 +#: js/blocks/EnsembleBlocks.js:92 +#: js/blocks/EnsembleBlocks.js:1089 msgid "turtle name" msgstr "" -#: js/EnsembleBlocks.js:122 -#: js/EnsembleBlocks.js:1197 -#: js/HeapBlocks.js:474 -#: js/HeapBlocks.js:572 +#: js/blocks/EnsembleBlocks.js:122 +#: js/blocks/EnsembleBlocks.js:1197 +#: js/blocks/HeapBlocks.js:474 +#: js/blocks/HeapBlocks.js:572 msgid "Index must be > 0." msgstr "" -#: js/EnsembleBlocks.js:127 -#: js/HeapBlocks.js:479 -#: js/HeapBlocks.js:577 +#: js/blocks/EnsembleBlocks.js:127 +#: js/blocks/HeapBlocks.js:479 +#: js/blocks/HeapBlocks.js:577 msgid "Maximum heap size is 1000." msgstr "" -#: js/EnsembleBlocks.js:145 +#: js/blocks/EnsembleBlocks.js:145 msgid "stop mouse" msgstr "" -#: js/EnsembleBlocks.js:147 +#: js/blocks/EnsembleBlocks.js:147 msgid "The Stop mouse block stops the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:158 +#: js/blocks/EnsembleBlocks.js:158 msgid "stop turtle" msgstr "" -#: js/EnsembleBlocks.js:160 +#: js/blocks/EnsembleBlocks.js:160 msgid "The Stop turtle block stops the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:184 -#: js/EnsembleBlocks.js:247 -#: js/EnsembleBlocks.js:413 -#: js/EnsembleBlocks.js:468 -#: js/EnsembleBlocks.js:706 -#: js/EnsembleBlocks.js:808 -#: js/EnsembleBlocks.js:870 -#: js/EnsembleBlocks.js:1190 -#: js/EnsembleBlocks.js:1253 +#: js/blocks/EnsembleBlocks.js:184 +#: js/blocks/EnsembleBlocks.js:247 +#: js/blocks/EnsembleBlocks.js:413 +#: js/blocks/EnsembleBlocks.js:468 +#: js/blocks/EnsembleBlocks.js:706 +#: js/blocks/EnsembleBlocks.js:808 +#: js/blocks/EnsembleBlocks.js:870 +#: js/blocks/EnsembleBlocks.js:1190 +#: js/blocks/EnsembleBlocks.js:1253 msgid "Cannot find mouse" msgstr "" -#: js/EnsembleBlocks.js:186 -#: js/EnsembleBlocks.js:249 -#: js/EnsembleBlocks.js:415 -#: js/EnsembleBlocks.js:470 -#: js/EnsembleBlocks.js:708 -#: js/EnsembleBlocks.js:810 -#: js/EnsembleBlocks.js:872 -#: js/EnsembleBlocks.js:1192 -#: js/EnsembleBlocks.js:1255 +#: js/blocks/EnsembleBlocks.js:186 +#: js/blocks/EnsembleBlocks.js:249 +#: js/blocks/EnsembleBlocks.js:415 +#: js/blocks/EnsembleBlocks.js:470 +#: js/blocks/EnsembleBlocks.js:708 +#: js/blocks/EnsembleBlocks.js:810 +#: js/blocks/EnsembleBlocks.js:872 +#: js/blocks/EnsembleBlocks.js:1192 +#: js/blocks/EnsembleBlocks.js:1255 msgid "Cannot find turtle" msgstr "" -#: js/EnsembleBlocks.js:206 +#: js/blocks/EnsembleBlocks.js:206 msgid "start mouse" msgstr "" -#: js/EnsembleBlocks.js:209 +#: js/blocks/EnsembleBlocks.js:209 msgid "The Start mouse block starts the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:220 +#: js/blocks/EnsembleBlocks.js:220 msgid "start turtle" msgstr "" -#: js/EnsembleBlocks.js:223 +#: js/blocks/EnsembleBlocks.js:223 msgid "The Start turtle block starts the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:256 +#: js/blocks/EnsembleBlocks.js:256 msgid "Mouse is already running." msgstr "" -#: js/EnsembleBlocks.js:258 +#: js/blocks/EnsembleBlocks.js:258 msgid "Turtle is already running." msgstr "" -#: js/EnsembleBlocks.js:282 +#: js/blocks/EnsembleBlocks.js:282 msgid "Cannot find start block" msgstr "" -#: js/EnsembleBlocks.js:292 +#: js/blocks/EnsembleBlocks.js:292 #.TRANS: pen color for this mouse msgid "mouse color" msgstr "" -#: js/EnsembleBlocks.js:294 +#: js/blocks/EnsembleBlocks.js:294 msgid "The Mouse color block returns the pen color of the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:306 +#: js/blocks/EnsembleBlocks.js:306 #.TRANS: pen color for this turtle msgid "turtle color" msgstr "" -#: js/EnsembleBlocks.js:308 +#: js/blocks/EnsembleBlocks.js:308 msgid "The Turtle color block returns the pen color of the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:338 +#: js/blocks/EnsembleBlocks.js:338 #.TRANS: heading (compass direction) for this mouse msgid "mouse heading" msgstr "" -#: js/EnsembleBlocks.js:340 +#: js/blocks/EnsembleBlocks.js:340 msgid "The Mouse heading block returns the heading of the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:352 +#: js/blocks/EnsembleBlocks.js:352 #.TRANS: heading (compass direction) for this turtle msgid "turtle heading" msgstr "" -#: js/EnsembleBlocks.js:354 +#: js/blocks/EnsembleBlocks.js:354 msgid "The Turtle heading block returns the heading of the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:384 -#: js/EnsembleBlocks.js:439 +#: js/blocks/EnsembleBlocks.js:384 +#: js/blocks/EnsembleBlocks.js:439 #.TRANS: set xy position for this mouse msgid "set mouse" msgstr "" -#: js/EnsembleBlocks.js:391 -#: js/EnsembleBlocks.js:402 -#: js/BoxesBlocks.js:595 -msgid "name1" -msgstr "" - -#: js/EnsembleBlocks.js:391 -#: js/EnsembleBlocks.js:402 -#: js/ProgramBlocks.js:881 -#: js/GraphicsBlocks.js:235 -#: js/GraphicsBlocks.js:313 -#: js/GraphicsBlocks.js:436 -#: js/GraphicsBlocks.js:487 -#: js/GraphicsBlocks.js:534 -#: js/GraphicsBlocks.js:750 +#: js/blocks/EnsembleBlocks.js:391 +#: js/blocks/EnsembleBlocks.js:402 +#: js/blocks/GraphicsBlocks.js:235 +#: js/blocks/GraphicsBlocks.js:313 +#: js/blocks/GraphicsBlocks.js:436 +#: js/blocks/GraphicsBlocks.js:487 +#: js/blocks/GraphicsBlocks.js:534 +#: js/blocks/GraphicsBlocks.js:750 +#: js/blocks/ProgramBlocks.js:881 msgid "x" msgstr "" -#: js/EnsembleBlocks.js:391 -#: js/EnsembleBlocks.js:402 -#: js/ProgramBlocks.js:881 -#: js/GraphicsBlocks.js:149 -#: js/GraphicsBlocks.js:313 -#: js/GraphicsBlocks.js:436 -#: js/GraphicsBlocks.js:487 -#: js/GraphicsBlocks.js:534 -#: js/GraphicsBlocks.js:750 +#: js/blocks/EnsembleBlocks.js:391 +#: js/blocks/EnsembleBlocks.js:402 +#: js/blocks/GraphicsBlocks.js:149 +#: js/blocks/GraphicsBlocks.js:313 +#: js/blocks/GraphicsBlocks.js:436 +#: js/blocks/GraphicsBlocks.js:487 +#: js/blocks/GraphicsBlocks.js:534 +#: js/blocks/GraphicsBlocks.js:750 +#: js/blocks/ProgramBlocks.js:881 msgid "y" msgstr "" -#: js/EnsembleBlocks.js:395 -#: js/EnsembleBlocks.js:452 +#: js/blocks/EnsembleBlocks.js:395 +#: js/blocks/EnsembleBlocks.js:452 #.TRANS: set xy position for this turtle msgid "set turtle" msgstr "" -#: js/EnsembleBlocks.js:433 +#: js/blocks/EnsembleBlocks.js:433 msgid "The Set mouse block sends a stack of blocks to be run by the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:446 +#: js/blocks/EnsembleBlocks.js:446 msgid "The Set turtle block sends a stack of blocks to be run by the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:480 +#: js/blocks/EnsembleBlocks.js:480 #.TRANS: y position for this mouse msgid "mouse y" msgstr "" -#: js/EnsembleBlocks.js:482 +#: js/blocks/EnsembleBlocks.js:482 msgid "The Y mouse block returns the Y position of the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:494 +#: js/blocks/EnsembleBlocks.js:494 #.TRANS: y position for this turtle msgid "turtle y" msgstr "" -#: js/EnsembleBlocks.js:496 +#: js/blocks/EnsembleBlocks.js:496 msgid "The Y turtle block returns the Y position of the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:526 +#: js/blocks/EnsembleBlocks.js:526 #.TRANS: x position for this mouse msgid "mouse x" msgstr "" -#: js/EnsembleBlocks.js:528 +#: js/blocks/EnsembleBlocks.js:528 msgid "The X mouse block returns the X position of the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:540 +#: js/blocks/EnsembleBlocks.js:540 #.TRANS: x position for this turtle msgid "turtle x" msgstr "" -#: js/EnsembleBlocks.js:542 +#: js/blocks/EnsembleBlocks.js:542 msgid "The X turtle block returns the X position of the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:573 +#: js/blocks/EnsembleBlocks.js:573 #.TRANS: notes played by this mouse msgid "mouse notes played" msgstr "" -#: js/EnsembleBlocks.js:575 +#: js/blocks/EnsembleBlocks.js:575 msgid "The Mouse elapse notes block returns the number of notes played by the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:587 +#: js/blocks/EnsembleBlocks.js:587 #.TRANS: notes played by this turtle msgid "turtle notes played" msgstr "" -#: js/EnsembleBlocks.js:589 +#: js/blocks/EnsembleBlocks.js:589 msgid "The Turtle elapse notes block returns the number of notes played by the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:627 +#: js/blocks/EnsembleBlocks.js:627 #.TRANS: convert current note for this turtle to piano key (1-88) msgid "mouse pitch number" msgstr "" -#: js/EnsembleBlocks.js:629 +#: js/blocks/EnsembleBlocks.js:629 msgid "The Mouse pitch block returns the current pitch number being played by the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:641 +#: js/blocks/EnsembleBlocks.js:641 #.TRANS: convert current note for this turtle to piano key (1-88) msgid "turtle pitch number" msgstr "" -#: js/EnsembleBlocks.js:643 -msgid "The Turrle pitch block returns the current pitch number being played by the specified turtle." +#: js/blocks/EnsembleBlocks.js:643 +msgid "The Turtle pitch block returns the current pitch number being played by the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:747 -#: js/EnsembleBlocks.js:819 +#: js/blocks/EnsembleBlocks.js:747 +#: js/blocks/EnsembleBlocks.js:819 #.TRANS: note value is the duration of the note played by this mouse msgid "mouse note value" msgstr "" -#: js/EnsembleBlocks.js:757 +#: js/blocks/EnsembleBlocks.js:757 #.TRANS: note value is the duration of the note played by this turtle msgid "turtle note value" msgstr "" -#: js/EnsembleBlocks.js:830 +#: js/blocks/EnsembleBlocks.js:830 #.TRANS: sync is short for synchronization msgid "mouse sync" msgstr "" -#: js/EnsembleBlocks.js:832 +#: js/blocks/EnsembleBlocks.js:832 msgid "The Mouse sync block aligns the beat count between mice." msgstr "" -#: js/EnsembleBlocks.js:844 +#: js/blocks/EnsembleBlocks.js:844 #.TRANS: sync is short for synchronization msgid "turtle sync" msgstr "" -#: js/EnsembleBlocks.js:846 +#: js/blocks/EnsembleBlocks.js:846 msgid "The Turtle sync block aligns the beat count between turtles." msgstr "" -#: js/EnsembleBlocks.js:887 +#: js/blocks/EnsembleBlocks.js:887 msgid "The Found mouse block will return true if the specified mouse can be found." msgstr "" -#: js/EnsembleBlocks.js:893 +#: js/blocks/EnsembleBlocks.js:893 msgid "found mouse" msgstr "" -#: js/EnsembleBlocks.js:903 +#: js/blocks/EnsembleBlocks.js:903 msgid "The Found turtle block will return true if the specified turtle can be found." msgstr "" -#: js/EnsembleBlocks.js:909 +#: js/blocks/EnsembleBlocks.js:909 msgid "found turtle" msgstr "" -#: js/EnsembleBlocks.js:932 +#: js/blocks/EnsembleBlocks.js:932 msgid "new mouse" msgstr "" -#: js/EnsembleBlocks.js:934 +#: js/blocks/EnsembleBlocks.js:934 msgid "The New mouse block will create a new mouse." msgstr "" -#: js/EnsembleBlocks.js:945 +#: js/blocks/EnsembleBlocks.js:945 msgid "new turtle" msgstr "" -#: js/EnsembleBlocks.js:947 +#: js/blocks/EnsembleBlocks.js:947 msgid "The New turtle block will create a new turtle." msgstr "" -#: js/EnsembleBlocks.js:1011 +#: js/blocks/EnsembleBlocks.js:1011 msgid "set mouse color" msgstr "" -#: js/EnsembleBlocks.js:1014 +#: js/blocks/EnsembleBlocks.js:1014 msgid "The Set-mouse-color block is used to set the color of a mouse." msgstr "" -#: js/EnsembleBlocks.js:1020 +#: js/blocks/EnsembleBlocks.js:1020 msgid "set turtle color" msgstr "" -#: js/EnsembleBlocks.js:1023 +#: js/blocks/EnsembleBlocks.js:1023 msgid "The Set-turtle-color block is used to set the color of a turtle." msgstr "" -#: js/EnsembleBlocks.js:1083 +#: js/blocks/EnsembleBlocks.js:1083 msgid "The Mouse-name block returns the name of a mouse." msgstr "" -#: js/EnsembleBlocks.js:1092 +#: js/blocks/EnsembleBlocks.js:1092 msgid "The Turtle-name block returns the name of a turtle." msgstr "" -#: js/EnsembleBlocks.js:1115 +#: js/blocks/EnsembleBlocks.js:1115 msgid "mouse count" msgstr "" -#: js/EnsembleBlocks.js:1118 +#: js/blocks/EnsembleBlocks.js:1118 msgid "The Mouse-count block returns the number of mice." msgstr "" -#: js/EnsembleBlocks.js:1124 +#: js/blocks/EnsembleBlocks.js:1124 msgid "turtle count" msgstr "" -#: js/EnsembleBlocks.js:1127 +#: js/blocks/EnsembleBlocks.js:1127 msgid "The Turtle-count block returns the number of turtles." msgstr "" -#: js/EnsembleBlocks.js:1149 +#: js/blocks/EnsembleBlocks.js:1149 msgid "nth mouse name" msgstr "" -#: js/EnsembleBlocks.js:1152 +#: js/blocks/EnsembleBlocks.js:1152 msgid "The Nth-Mouse name block returns the name of the nth mouse." msgstr "" -#: js/EnsembleBlocks.js:1158 +#: js/blocks/EnsembleBlocks.js:1158 msgid "nth turtle name" msgstr "" -#: js/EnsembleBlocks.js:1161 +#: js/blocks/EnsembleBlocks.js:1161 msgid "The Nth-Turtle name block returns the name of the nth turtle." msgstr "" -#: js/EnsembleBlocks.js:1205 -#: js/EnsembleBlocks.js:1265 +#: js/blocks/EnsembleBlocks.js:1205 +#: js/blocks/EnsembleBlocks.js:1265 msgid "set name" msgstr "" -#: js/EnsembleBlocks.js:1214 -#: js/EnsembleBlocks.js:1221 +#: js/blocks/EnsembleBlocks.js:1214 +#: js/blocks/EnsembleBlocks.js:1221 msgid "source" msgstr "" -#: js/EnsembleBlocks.js:1214 -#: js/EnsembleBlocks.js:1221 +#: js/blocks/EnsembleBlocks.js:1214 +#: js/blocks/EnsembleBlocks.js:1221 msgid "target" msgstr "" -#: js/EnsembleBlocks.js:1271 +#: js/blocks/EnsembleBlocks.js:1271 msgid "The Set-name block is used to name a mouse." msgstr "" -#: js/EnsembleBlocks.js:1284 +#: js/blocks/EnsembleBlocks.js:1284 msgid "The Set-name block is used to name a turtle." msgstr "" -#: js/BooleanBlocks.js:44 -msgid "The Not block is the logical not operator." -msgstr "" - -#: js/BooleanBlocks.js:62 -msgid "not" -msgstr "" - -#: js/BooleanBlocks.js:134 -msgid "The And block is the logical and operator." -msgstr "" - -#: js/BooleanBlocks.js:152 -msgid "and" -msgstr "" - -#: js/BooleanBlocks.js:218 -msgid "The Or block is the logical or operator." -msgstr "" - -#: js/BooleanBlocks.js:236 -msgid "or" -msgstr "" - -#: js/BooleanBlocks.js:302 -msgid "The XOR block is the logical XOR operator." -msgstr "" - -#: js/BooleanBlocks.js:320 -msgid "xor" -msgstr "" - -#: js/BooleanBlocks.js:808 -msgid "The Equal block returns True if the two numbers are equal." -msgstr "" - -#: js/BooleanBlocks.js:909 -msgid "The Not-equal-to block returns True if the two numbers are not equal to each other." -msgstr "" - -#: js/BooleanBlocks.js:1008 -msgid "The Boolean block is used to specify true or false." -msgstr "" - -#: js/MediaBlocks.js:35 -#.TRANS: right side of the screen -msgid "right (screen)" -msgstr "" - -#: js/MediaBlocks.js:45 -#: js/MediaBlocks.js:56 -msgid "The Right block returns the position of the right of the canvas." -msgstr "" - -#: js/MediaBlocks.js:97 -#.TRANS: left side of the screen -msgid "left (screen)" -msgstr "" - -#: js/MediaBlocks.js:107 -#: js/MediaBlocks.js:118 -msgid "The Left block returns the position of the left of the canvas." -msgstr "" - -#: js/MediaBlocks.js:158 -msgid "top (screen)" -msgstr "" - -#: js/MediaBlocks.js:168 -#: js/MediaBlocks.js:179 -msgid "The Top block returns the position of the top of the canvas." -msgstr "" - -#: js/MediaBlocks.js:219 -msgid "bottom (screen)" +#: js/blocks/ExtrasBlocks.js:33 +msgid "fraction" msgstr "" -#: js/MediaBlocks.js:229 -#: js/MediaBlocks.js:240 -msgid "The Bottom block returns the position of the bottom of the canvas." +#: js/blocks/ExtrasBlocks.js:36 +msgid "Convert a float to a fraction" msgstr "" -#: js/MediaBlocks.js:282 -msgid "width" +#: js/blocks/ExtrasBlocks.js:93 +msgid "save as ABC" msgstr "" -#: js/MediaBlocks.js:291 -msgid "The Width block returns the width of the canvas." +#: js/blocks/ExtrasBlocks.js:96 +#: js/blocks/ExtrasBlocks.js:132 +#: js/blocks/ExtrasBlocks.js:168 +msgid "title" msgstr "" -#: js/MediaBlocks.js:325 -msgid "height" +#: js/blocks/ExtrasBlocks.js:129 +msgid "save as Lilypond" msgstr "" -#: js/MediaBlocks.js:334 -msgid "The Height block returns the height of the canvas." +#: js/blocks/ExtrasBlocks.js:165 +msgid "save as SVG" msgstr "" -#: js/MediaBlocks.js:369 -#.TRANS: stops playback of an audio recording -msgid "stop play" +#: js/blocks/ExtrasBlocks.js:216 +msgid "no background" msgstr "" -#: js/MediaBlocks.js:404 -#.TRANS: Erases the images and text -msgid "erase media" +#: js/blocks/ExtrasBlocks.js:219 +msgid "The No background block eliminates the background from the saved SVG output." msgstr "" -#: js/MediaBlocks.js:409 -msgid "The Erase Media block erases text and images." +#: js/blocks/ExtrasBlocks.js:247 +msgid "show blocks" msgstr "" -#: js/MediaBlocks.js:439 -#.TRANS: play an audio recording -msgid "play back" +#: js/blocks/ExtrasBlocks.js:249 +msgid "The Show blocks block shows the blocks." msgstr "" -#: js/MediaBlocks.js:487 -msgid "speak" +#: js/blocks/ExtrasBlocks.js:274 +msgid "hide blocks" msgstr "" -#: js/MediaBlocks.js:495 -msgid "The Speak block outputs to the text-to-speech synthesizer" +#: js/blocks/ExtrasBlocks.js:276 +msgid "The Hide blocks block hides the blocks." msgstr "" -#: js/MediaBlocks.js:546 -msgid "camera" +#: js/blocks/ExtrasBlocks.js:305 +#: js/blocks/ExtrasBlocks.js:338 +msgid "The Space block is used to add space between blocks." msgstr "" -#: js/MediaBlocks.js:551 -msgid "The Camera block connects a webcam to the Show block." +#: js/blocks/ExtrasBlocks.js:376 +msgid "wait" msgstr "" -#: js/MediaBlocks.js:574 -msgid "video" +#: js/blocks/ExtrasBlocks.js:379 +msgid "The Wait block pauses the program for a specified number of seconds." msgstr "" -#: js/MediaBlocks.js:579 -msgid "The Video block selects video for use with the Show block." +#: js/blocks/ExtrasBlocks.js:433 +#: plugins/facebook.rtp:30 +msgid "comment" msgstr "" -#: js/MediaBlocks.js:607 -msgid "The Open file block opens a file for use with the Show block." +#: js/blocks/ExtrasBlocks.js:469 +msgid "print" msgstr "" -#: js/MediaBlocks.js:645 -msgid "stop media" +#: js/blocks/ExtrasBlocks.js:476 +msgid "The Print block displays text at the top of the screen." msgstr "" -#: js/MediaBlocks.js:650 -msgid "The Stop media block stops audio or video playback." +#: js/blocks/ExtrasBlocks.js:582 +msgid "display grid" msgstr "" -#: js/MediaBlocks.js:679 -#: js/PitchBlocks.js:1539 -#: js/phrasemaker.js:822 -#: js/musickeyboard.js:1654 -#.TRANS: a measure of frequency: one cycle per second -msgid "hertz" +#: js/blocks/ExtrasBlocks.js:587 +msgid "The Display Grid Block changes the grid type" msgstr "" -#: js/MediaBlocks.js:692 -msgid "duration (ms)" +#: js/blocks/ExtrasBlocks.js:689 +#: js/blocks/ExtrasBlocks.js:708 +#: js/blocks/ExtrasBlocks.js:731 +#: js/blocks/ExtrasBlocks.js:754 +#: js/blocks/ExtrasBlocks.js:772 +#: js/blocks/ExtrasBlocks.js:791 +#: js/blocks/ExtrasBlocks.js:810 +#: js/blocks/ExtrasBlocks.js:829 +msgid "unknown" msgstr "" -#: js/MediaBlocks.js:728 -#.TRANS: translate a note into hertz, e.g., A4 -> 440HZ -msgid "note to frequency" +#: js/blocks/FlowBlocks.js:41 +msgid "The Backward block runs code in reverse order (Musical retrograde)." msgstr "" -#: js/MediaBlocks.js:736 -msgid "The To frequency block converts a pitch name and octave to Hertz." +#: js/blocks/FlowBlocks.js:48 +msgid "backward" msgstr "" -#: js/MediaBlocks.js:746 -#: js/PitchBlocks.js:656 -#: js/PitchBlocks.js:932 -#: js/PitchBlocks.js:1827 -#.TRANS: name2 is name as in name of pitch (JAPANESE ONLY) -msgid "name2" +#: js/blocks/FlowBlocks.js:124 +msgid "The Duplicate block will run each block multiple times." msgstr "" -#: js/MediaBlocks.js:812 -msgid "The Avatar block is used to change the appearance of the mouse." +#: js/blocks/FlowBlocks.js:136 +msgid "duplicate" msgstr "" -#: js/MediaBlocks.js:819 -msgid "The Avatar block is used to change the appearance of the turtle." +#: js/blocks/FlowBlocks.js:334 +msgid "The Default block is used inside of a Switch to define the default action." msgstr "" -#: js/MediaBlocks.js:831 -#: js/MediaBlocks.js:891 -#.TRANS: a media object -msgid "size" +#: js/blocks/FlowBlocks.js:342 +msgid "default" msgstr "" -#: js/MediaBlocks.js:831 -msgid "image" +#: js/blocks/FlowBlocks.js:361 +#: js/blocks/FlowBlocks.js:418 +msgid "The Case Block must be used inside of a Switch Block." msgstr "" -#: js/MediaBlocks.js:880 -msgid "The Show block is used to display text or images on the canvas." +#: js/blocks/FlowBlocks.js:389 +msgid "The Case block is used inside of a Switch to define matches." msgstr "" -#: js/MediaBlocks.js:888 -#.TRANS: show1 is show as in display an image or text on the screen. -msgid "show1" +#: js/blocks/FlowBlocks.js:397 +msgid "case" msgstr "" -#: js/MediaBlocks.js:891 -msgid "obj" +#: js/blocks/FlowBlocks.js:446 +msgid "The Switch block will run the code in the matching Case." msgstr "" -#: js/MediaBlocks.js:938 -msgid "The Media block is used to import an image." +#: js/blocks/FlowBlocks.js:454 +msgid "switch" msgstr "" -#: js/MediaBlocks.js:973 -msgid "The Text block holds a text string." +#: js/blocks/FlowBlocks.js:595 +msgid "The Stop block will stop a loop" msgstr "" -#: js/ProgramBlocks.js:33 -msgid "The Load-heap-from-app block loads the heap from a web page." +#: js/blocks/FlowBlocks.js:597 +msgid "Forever, Repeat, While, or Until." msgstr "" -#: js/ProgramBlocks.js:44 -#.TRANS: load the heap contents from a URL -msgid "load heap from App" +#: js/blocks/FlowBlocks.js:604 +#: js/widgets/timbre.js:417 +#: js/widgets/timbre.js:419 +#: js/widgets/musickeyboard.js:819 +#: js/widgets/musickeyboard.js:821 +#: js/widgets/phrasemaker.js:4202 +#: plugins/rodi.rtp:29 +#: plugins/rodi.rtp:73 +#: plugins/rodi.rtp:413 +msgid "stop" msgstr "" -#: js/ProgramBlocks.js:95 -msgid "Error parsing JSON data:" +#: js/blocks/FlowBlocks.js:653 +msgid "The Waitfor block will wait until the condition is true." msgstr "" -#: js/ProgramBlocks.js:100 -msgid "404: Page not found" +#: js/blocks/FlowBlocks.js:661 +msgid "wait for" msgstr "" -#: js/ProgramBlocks.js:133 -msgid "The Save-heap-to-app block saves the heap to a web page." +#: js/blocks/FlowBlocks.js:732 +msgid "The Until block will repeat until the condition is true." msgstr "" -#: js/ProgramBlocks.js:144 -#.TRANS: save the heap contents to a URL -msgid "save heap to App" +#: js/blocks/FlowBlocks.js:740 +msgid "until" msgstr "" -#: js/ProgramBlocks.js:189 -msgid "Cannot find a valid heap for" +#: js/blocks/FlowBlocks.js:742 +#: js/blocks/FlowBlocks.js:822 +msgid "do2" msgstr "" -#: js/ProgramBlocks.js:206 -msgid "The Load-heap block loads the heap from a file." +#: js/blocks/FlowBlocks.js:812 +msgid "The While block will repeat while the condition is true." msgstr "" -#: js/ProgramBlocks.js:217 -#.TRANS: load the heap from a file -msgid "load heap" +#: js/blocks/FlowBlocks.js:820 +msgid "while" msgstr "" -#: js/ProgramBlocks.js:270 -msgid "The file you selected does not contain a valid heap." +#: js/blocks/FlowBlocks.js:903 +#: js/blocks/FlowBlocks.js:968 +#: js/blocks/FlowBlocks.js:979 +msgid "In this example if the mouse button is pressed a snare drum will play." msgstr "" -#: js/ProgramBlocks.js:275 -msgid "The loadHeap block needs a loadFile block." +#: js/blocks/FlowBlocks.js:925 +#: js/blocks/FlowBlocks.js:988 +msgid "if" msgstr "" -#: js/ProgramBlocks.js:291 -msgid "The Set-heap block loads the heap." +#: js/blocks/FlowBlocks.js:927 +#: js/blocks/FlowBlocks.js:990 +msgid "then" msgstr "" -#: js/ProgramBlocks.js:299 -#: js/HeapBlocks.js:539 -#.TRANS: load the heap from a JSON encoding -msgid "set heap" +#: js/blocks/FlowBlocks.js:927 +msgid "else" msgstr "" -#: js/ProgramBlocks.js:340 -msgid "The block you selected does not contain a valid heap." +#: js/blocks/FlowBlocks.js:1025 +msgid "The Forever block will repeat the contained blocks forever." msgstr "" -#: js/ProgramBlocks.js:343 -msgid "The Set heap block needs a heap." +#: js/blocks/FlowBlocks.js:1037 +msgid "forever" msgstr "" -#: js/ProgramBlocks.js:360 -msgid "The Load-dictionary block loads a dictionary from a file." +#: js/blocks/FlowBlocks.js:1073 +msgid "The Repeat block will repeat the contained blocks." msgstr "" -#: js/ProgramBlocks.js:372 -#.TRANS: load a dictionary from a file -msgid "load dictionary" +#: js/blocks/FlowBlocks.js:1075 +msgid "In this example the note will be played 4 times." msgstr "" -#: js/ProgramBlocks.js:390 -#: js/ProgramBlocks.js:658 -#: js/ToneBlocks.js:1025 -msgid "file" +#: js/blocks/FlowBlocks.js:1083 +msgid "repeat" msgstr "" -#: js/ProgramBlocks.js:396 -#: js/ProgramBlocks.js:501 -#: js/ProgramBlocks.js:664 -#: js/DictBlocks.js:80 -#: js/DictBlocks.js:145 -#: js/DictBlocks.js:216 -#: js/DictBlocks.js:290 -msgid "My Dictionary" +#: js/blocks/FlowBlocks.js:1123 +msgid "duplicate factor" msgstr "" -#: js/ProgramBlocks.js:444 -msgid "The file you selected does not contain a valid dictionary." +#: js/blocks/HeapBlocks.js:49 +msgid "The Heap block returns the heap." msgstr "" -#: js/ProgramBlocks.js:449 -msgid "The load dictionary block needs a load file block." +#: js/blocks/HeapBlocks.js:133 +msgid "show heap" msgstr "" -#: js/ProgramBlocks.js:466 -msgid "The Set-dictionary block loads a dictionary." +#: js/blocks/HeapBlocks.js:181 +msgid "The Heap-length block returns the length of the heap." msgstr "" -#: js/ProgramBlocks.js:477 -#.TRANS: load a dictionary from a JSON -msgid "set dictionary" +#: js/blocks/HeapBlocks.js:195 +msgid "heap length" msgstr "" -#: js/ProgramBlocks.js:546 -msgid "The block you selected does not contain a valid dictionary." +#: js/blocks/HeapBlocks.js:254 +msgid "The Heap-empty? block returns true if the heap is empty." msgstr "" -#: js/ProgramBlocks.js:550 -msgid "The set dictionary block needs a dictionary." +#: js/blocks/HeapBlocks.js:268 +#.TRANS: Is the heap empty? +msgid "heap empty?" msgstr "" -#: js/ProgramBlocks.js:567 -msgid "The Save-heap block saves the heap to a file." +#: js/blocks/HeapBlocks.js:317 +msgid "The Empty-heap block empties the heap." msgstr "" -#: js/ProgramBlocks.js:578 -#.TRANS: save the heap to a file -msgid "save heap" +#: js/blocks/HeapBlocks.js:327 +#: js/blocks/HeapBlocks.js:647 +#.TRANS: empty the heap +msgid "empty heap" msgstr "" -#: js/ProgramBlocks.js:629 -msgid "The Save-dictionary block saves a dictionary to a file." +#: js/blocks/HeapBlocks.js:371 +msgid "The Reverse-heap block reverses the order of the heap." msgstr "" -#: js/ProgramBlocks.js:640 -#.TRANS: save a dictionary to a file -msgid "save dictionary" +#: js/blocks/HeapBlocks.js:384 +#.TRANS: reverse the order of the heap +msgid "reverse heap" msgstr "" -#: js/ProgramBlocks.js:720 -msgid "The Open palette block opens a palette." +#: js/blocks/HeapBlocks.js:428 +msgid "The Index-heap block returns a value in the heap at a specified location." msgstr "" -#: js/ProgramBlocks.js:727 -msgid "open palette" +#: js/blocks/HeapBlocks.js:443 +#.TRANS: retrieve a value from the heap at index position in the heap +msgid "index heap" msgstr "" -#: js/ProgramBlocks.js:785 -msgid "The Delete block block removes a block." +#: js/blocks/HeapBlocks.js:523 +msgid "The Set-heap entry block sets a value in he heap at the specified location." msgstr "" -#: js/ProgramBlocks.js:797 -#.TRANS: Move this block to the trash. -msgid "delete block" +#: js/blocks/HeapBlocks.js:539 +#: js/blocks/ProgramBlocks.js:299 +#.TRANS: load the heap from a JSON encoding +msgid "set heap" msgstr "" -#: js/ProgramBlocks.js:861 -msgid "The Move block block moves a block." +#: js/blocks/HeapBlocks.js:619 +msgid "The Pop block removes the value at the top of the heap." msgstr "" -#: js/ProgramBlocks.js:869 -#.TRANS: Move the position of a block on the screen. -msgid "move block" +#: js/blocks/HeapBlocks.js:633 +#.TRANS: pop a value off the top of the heap +msgid "pop" msgstr "" -#: js/ProgramBlocks.js:881 -#: js/ProgramBlocks.js:1048 -msgid "block number" +#: js/blocks/HeapBlocks.js:680 +msgid "The Push block adds a value to the top of the heap." msgstr "" -#: js/ProgramBlocks.js:935 -#.TRANS: Run program beginning at this block. -msgid "run block" +#: js/blocks/HeapBlocks.js:696 +#.TRANS: push a value onto the top of the heap +msgid "push" msgstr "" -#: js/ProgramBlocks.js:1025 -msgid "The Dock block block connections two blocks." +#: js/blocks/IntervalsBlocks.js:45 +msgid "set temperament" msgstr "" -#: js/ProgramBlocks.js:1036 -#.TRANS: We can connect a block to another block. -msgid "connect blocks" +#: js/blocks/IntervalsBlocks.js:63 +#: js/blocks/MediaBlocks.js:746 +#: js/blocks/PitchBlocks.js:657 +#: js/blocks/PitchBlocks.js:935 +#: js/blocks/PitchBlocks.js:974 +#: js/blocks/PitchBlocks.js:1007 +#: js/blocks/PitchBlocks.js:1194 +#: js/blocks/PitchBlocks.js:1717 +#: js/blocks/PitchBlocks.js:1758 +#: js/blocks/PitchBlocks.js:1866 +#: js/blocks/ToneBlocks.js:1025 +#: js/turtleactions/IntervalsActions.js:114 +#.TRANS: adjusts the shift up or down by one octave (twelve half-steps in the interval between two notes, one having twice or half the frequency in Hz of the other.) +msgid "octave" msgstr "" -#: js/ProgramBlocks.js:1048 -msgid "target block" +#: js/blocks/IntervalsBlocks.js:99 +msgid "The Temperament name block is used to select a tuning method." msgstr "" -#: js/ProgramBlocks.js:1048 -msgid "connection number" +#: js/blocks/IntervalsBlocks.js:161 +msgid "doubly" msgstr "" -#: js/ProgramBlocks.js:1140 -msgid "The Make block block creates a new block." +#: js/blocks/IntervalsBlocks.js:166 +msgid "The Doubly block will double the size of an interval." msgstr "" -#: js/ProgramBlocks.js:1152 -#.TRANS: Create a new block -msgid "make block" +#: js/blocks/IntervalsBlocks.js:262 +msgid "interval number" msgstr "" -#: js/ProgramBlocks.js:1186 -#: js/ProgramBlocks.js:1227 -#: js/RhythmBlocks.js:1128 -#: js/PitchBlocks.js:972 -#: js/PitchBlocks.js:1005 -#: js/temperament.js:340 -#: js/temperament.js:362 -#: js/temperament.js:372 -#: js/temperament.js:484 -#: js/status.js:190 -#: plugins/rodi.rtp:192 -#.TRANS: a musical note consisting of pitch and duration -msgid "note" +#: js/blocks/IntervalsBlocks.js:317 +msgid "current interval" msgstr "" -#: js/ProgramBlocks.js:1285 -msgid "Cannot find block" +#: js/blocks/IntervalsBlocks.js:387 +#.TRANS: measure the distance between two pitches in semi-tones +msgid "semi-tone interval measure" msgstr "" -#: js/ProgramBlocks.js:1304 -#: js/ProgramBlocks.js:1313 -msgid "Warning: block argument type mismatch" +#: js/blocks/IntervalsBlocks.js:454 +#: js/blocks/IntervalsBlocks.js:570 +msgid "You must use two pitch blocks when measuring an interval." msgstr "" -#: js/ProgramBlocks.js:1347 -msgid "The Open project block is used to open a project from a web page." +#: js/blocks/IntervalsBlocks.js:496 +msgid "The Scalar interval block measures the distance between two notes in the current key and mode." msgstr "" -#: js/ProgramBlocks.js:1357 -msgid "open project" +#: js/blocks/IntervalsBlocks.js:502 +#.TRANS: measure the distance between two pitches in steps of musical scale +msgid "scalar interval measure" msgstr "" -#: js/ProgramBlocks.js:1410 -msgid "Please enter a valid URL." +#: js/blocks/IntervalsBlocks.js:678 +msgid "In the figure, we add sol# to sol." msgstr "" -#: js/DrumBlocks.js:59 -msgid "The Noise name block is used to select a noise synthesizer." +#: js/blocks/IntervalsBlocks.js:684 +#: js/blocks/OrnamentBlocks.js:220 +#.TRANS: calculate a relative step between notes based on semi-tones +msgid "semi-tone interval" msgstr "" -#: js/DrumBlocks.js:102 -msgid "The Drum name block is used to select a drum." +#: js/blocks/IntervalsBlocks.js:733 +msgid "The output of the example is: do, mi, sol, sol, ti, mi" msgstr "" -#: js/DrumBlocks.js:146 -msgid "The Effects name block is used to select a sound effect." +#: js/blocks/IntervalsBlocks.js:740 +#: js/blocks/WidgetBlocks.js:768 +msgid "arpeggio" msgstr "" -#: js/DrumBlocks.js:163 -msgid "noise" +#: js/blocks/IntervalsBlocks.js:931 +msgid "The Chord block calculates common chords." msgstr "" -#: js/DrumBlocks.js:177 -msgid "The Play noise block will generate white, pink, or brown noise." +#: js/blocks/IntervalsBlocks.js:933 +msgid "In the figure, we generate a C-major chord." msgstr "" -#: js/DrumBlocks.js:191 -#: js/musicutils.js:752 -#: js/synthutils.js:47 -#.TRANS: white noise synthesizer -msgid "white noise" +#: js/blocks/IntervalsBlocks.js:938 +msgid "chord" msgstr "" -#: js/DrumBlocks.js:326 -msgid "Replace every instance of a pitch with a drum sound." +#: js/blocks/IntervalsBlocks.js:990 +msgid "The Ratio Interval block calculates an interval based on a ratio." msgstr "" -#: js/DrumBlocks.js:337 -#.TRANS: map a pitch to a drum sound -msgid "map pitch to drum" +#: js/blocks/IntervalsBlocks.js:995 +msgid "ratio interval" msgstr "" -#: js/DrumBlocks.js:404 -msgid "In the example above, a kick drum sound will be played instead of sol." +#: js/blocks/IntervalsBlocks.js:1064 +msgid "In the figure, we add la to sol." msgstr "" -#: js/DrumBlocks.js:416 -#.TRANS: set the current drum sound for playback -msgid "set drum" +#: js/blocks/IntervalsBlocks.js:1120 +#.TRANS: define a custom mode +msgid "define mode" msgstr "" -#: js/DrumBlocks.js:460 -msgid "sound effect" +#: js/blocks/IntervalsBlocks.js:1173 +msgid "movable Do" msgstr "" -#: js/DrumBlocks.js:498 -msgid "You can use multiple Drum blocks within a Note block." +#: js/blocks/IntervalsBlocks.js:1224 +#.TRANS: mode length is the number of notes in the mode, e.g., 7 for major and minor scales; 12 for chromatic scales +msgid "mode length" msgstr "" -#: js/RhythmBlocks.js:182 -#: js/RhythmBlocks.js:1086 -#: js/RhythmBlocks.js:1162 -msgid "Note value must be greater than 0." +#: js/blocks/IntervalsBlocks.js:1233 +msgid "The Mode length block is the number of notes in the current scale." msgstr "" -#: js/RhythmBlocks.js:215 -#: js/RhythmBlocks.js:278 -#: js/RhythmBlocks.js:350 -#.TRANS: swing is a rhythmic variation that emphasises the offbeat -msgid "swing" +#: js/blocks/IntervalsBlocks.js:1235 +msgid "Most Western scales have 7 notes." msgstr "" -#: js/RhythmBlocks.js:355 -#.TRANS: the amount to shift to the offbeat note -msgid "swing value" +#: js/blocks/IntervalsBlocks.js:1284 +#.TRANS: the mode in music is 'major', 'minor', etc. +msgid "current mode" msgstr "" -#: js/RhythmBlocks.js:419 -msgid "The Skip notes block will cause notes to be skipped." +#: js/blocks/IntervalsBlocks.js:1337 +#.TRANS: the key is a group of pitches with which a music composition is created +msgid "current key" msgstr "" -#: js/RhythmBlocks.js:427 -#.TRANS: substitute rests on notes being skipped -msgid "skip notes" +#: js/blocks/IntervalsBlocks.js:1389 +#: js/blocks/IntervalsBlocks.js:1434 +#.TRANS: set the key and mode, e.g. C Major +msgid "set key" msgstr "" -#: js/RhythmBlocks.js:489 -#.TRANS: speed up note duration by some factor, e.g. convert 1/4 to 1/8 notes by using a factor of 2 -msgid "multiply note value" +#: js/blocks/IntervalsBlocks.js:1443 +#: js/blocks/IntervalsBlocks.js:1449 +msgid "The Set key block is used to set the key and mode," msgstr "" -#: js/RhythmBlocks.js:542 -msgid "The Tie block works on pairs of notes, combining them into one note." +#: js/blocks/IntervalsBlocks.js:1449 +msgid "eg C Major" msgstr "" -#: js/RhythmBlocks.js:550 -#.TRANS: tie notes together into one longer note -msgid "tie" +#: js/blocks/MediaBlocks.js:35 +#.TRANS: right side of the screen +msgid "right (screen)" msgstr "" -#: js/RhythmBlocks.js:591 -#: js/RhythmBlocks.js:671 -#.TRANS: a dotted note is played for 1.5x its value, e.g., 1/8. --> 3/16 -msgid "dot" +#: js/blocks/MediaBlocks.js:45 +#: js/blocks/MediaBlocks.js:56 +msgid "The Right block returns the position of the right of the canvas." msgstr "" -#: js/RhythmBlocks.js:619 -#: js/RhythmActions.js:221 -msgid "An argument of -1 results in a note value of 0." +#: js/blocks/MediaBlocks.js:97 +#.TRANS: left side of the screen +msgid "left (screen)" msgstr "" -#: js/RhythmBlocks.js:661 -msgid "The Dot block extends the duration of a note by 50%." +#: js/blocks/MediaBlocks.js:107 +#: js/blocks/MediaBlocks.js:118 +msgid "The Left block returns the position of the left of the canvas." msgstr "" -#: js/RhythmBlocks.js:663 -msgid "Eg a dotted quarter note will play for 3/8 (1/4 + 1/8) of a beat." +#: js/blocks/MediaBlocks.js:158 +msgid "top (screen)" msgstr "" -#: js/RhythmBlocks.js:765 -#.TRANS: Japanese only: note value block for drum -msgid "note value drum" +#: js/blocks/MediaBlocks.js:168 +#: js/blocks/MediaBlocks.js:179 +msgid "The Top block returns the position of the top of the canvas." msgstr "" -#: js/RhythmBlocks.js:829 -msgid "392 hertz" +#: js/blocks/MediaBlocks.js:219 +msgid "bottom (screen)" msgstr "" -#: js/RhythmBlocks.js:1119 -msgid "The Note block is a container for one or more Pitch blocks." +#: js/blocks/MediaBlocks.js:229 +#: js/blocks/MediaBlocks.js:240 +msgid "The Bottom block returns the position of the bottom of the canvas." msgstr "" -#: js/RhythmBlocks.js:1121 -msgid "The Note block specifies the duration (note value) of its contents." +#: js/blocks/MediaBlocks.js:282 +msgid "width" msgstr "" -#: js/RhythmBlocks.js:1130 -msgid "value2" +#: js/blocks/MediaBlocks.js:291 +msgid "The Width block returns the width of the canvas." msgstr "" -#: js/RhythmBlocks.js:1200 -msgid "define frequency" +#: js/blocks/MediaBlocks.js:325 +msgid "height" msgstr "" -#: js/RhythmBlocks.js:1218 -#: js/temperament.js:650 -#: js/temperament.js:1421 -msgid "octave space" +#: js/blocks/MediaBlocks.js:334 +msgid "The Height block returns the height of the canvas." msgstr "" -#: js/NumberBlocks.js:28 -msgid "The Int block returns an integer." +#: js/blocks/MediaBlocks.js:369 +#.TRANS: stops playback of an audio recording +msgid "stop play" msgstr "" -#: js/NumberBlocks.js:34 -msgid "int" +#: js/blocks/MediaBlocks.js:404 +#.TRANS: Erases the images and text +msgid "erase media" msgstr "" -#: js/NumberBlocks.js:73 -msgid "The Mod block returns the remainder from a division." +#: js/blocks/MediaBlocks.js:409 +msgid "The Erase Media block erases text and images." msgstr "" -#: js/NumberBlocks.js:79 -msgid "mod" +#: js/blocks/MediaBlocks.js:439 +#.TRANS: play an audio recording +msgid "play back" msgstr "" -#: js/NumberBlocks.js:123 -msgid "The Power block calculates a power function." +#: js/blocks/MediaBlocks.js:487 +msgid "speak" msgstr "" -#: js/NumberBlocks.js:178 -msgid "The Sqrt block returns the square root." +#: js/blocks/MediaBlocks.js:495 +msgid "The Speak block outputs to the text-to-speech synthesizer" msgstr "" -#: js/NumberBlocks.js:184 -msgid "sqrt" +#: js/blocks/MediaBlocks.js:546 +msgid "camera" msgstr "" -#: js/NumberBlocks.js:230 -msgid "The Abs block returns the absolute value." +#: js/blocks/MediaBlocks.js:551 +msgid "The Camera block connects a webcam to the Show block." msgstr "" -#: js/NumberBlocks.js:236 -msgid "abs" +#: js/blocks/MediaBlocks.js:574 +msgid "video" msgstr "" -#: js/NumberBlocks.js:277 -msgid "The Distance block returns the distance between two points. For example, between the mouse and the center of the screen." +#: js/blocks/MediaBlocks.js:579 +msgid "The Video block selects video for use with the Show block." msgstr "" -#: js/NumberBlocks.js:283 -#: plugins/rodi.rtp:310 -msgid "distance" +#: js/blocks/MediaBlocks.js:607 +msgid "The Open file block opens a file for use with the Show block." msgstr "" -#: js/NumberBlocks.js:343 -msgid "The Divide block is used to divide." +#: js/blocks/MediaBlocks.js:645 +msgid "stop media" msgstr "" -#: js/NumberBlocks.js:411 -msgid "The Multiply block is used to multiply." +#: js/blocks/MediaBlocks.js:650 +msgid "The Stop media block stops audio or video playback." msgstr "" -#: js/NumberBlocks.js:554 -msgid "The Minus block is used to subtract." +#: js/blocks/MediaBlocks.js:679 +#: js/blocks/PitchBlocks.js:1577 +#: js/widgets/musickeyboard.js:1936 +#: js/widgets/phrasemaker.js:1037 +#.TRANS: a measure of frequency: one cycle per second +msgid "hertz" msgstr "" -#: js/NumberBlocks.js:647 -msgid "The Plus block is used to add." +#: js/blocks/MediaBlocks.js:692 +#: js/blocks/WidgetBlocks.js:182 +#: js/widgets/temperament.js:506 +#: js/widgets/temperament.js:546 +#: js/widgets/temperament.js:610 +#: js/widgets/temperament.js:618 +#: js/widgets/temperament.js:1505 +#: js/widgets/timbre.js:1842 +msgid "frequency" msgstr "" -#: js/NumberBlocks.js:773 -msgid "The One-of block returns one of two choices." +#: js/blocks/MediaBlocks.js:692 +msgid "duration (ms)" msgstr "" -#: js/NumberBlocks.js:780 -#: js/PitchBlocks.js:616 -msgid "one of" +#: js/blocks/MediaBlocks.js:728 +#.TRANS: translate a note into hertz, e.g., A4 -> 440HZ +msgid "note to frequency" msgstr "" -#: js/NumberBlocks.js:782 -msgid "this" +#: js/blocks/MediaBlocks.js:736 +msgid "The To frequency block converts a pitch name and octave to Hertz." msgstr "" -#: js/NumberBlocks.js:782 -msgid "that" +#: js/blocks/MediaBlocks.js:746 +#: js/blocks/PitchBlocks.js:656 +#: js/blocks/PitchBlocks.js:934 +#: js/blocks/PitchBlocks.js:1866 +#.TRANS: name2 is name as in name of pitch (JAPANESE ONLY) +msgid "name2" msgstr "" -#: js/NumberBlocks.js:837 -msgid "The Random block returns a random number." +#: js/blocks/MediaBlocks.js:812 +msgid "The Avatar block is used to change the appearance of the mouse." msgstr "" -#: js/NumberBlocks.js:844 -msgid "random" +#: js/blocks/MediaBlocks.js:819 +msgid "The Avatar block is used to change the appearance of the turtle." msgstr "" -#: js/NumberBlocks.js:846 -msgid "min" +#: js/blocks/MediaBlocks.js:831 +#: js/blocks/MediaBlocks.js:891 +#.TRANS: a media object +msgid "size" msgstr "" -#: js/NumberBlocks.js:846 -msgid "max" +#: js/blocks/MediaBlocks.js:831 +msgid "image" msgstr "" -#: js/NumberBlocks.js:910 -msgid "The Number block holds a number." +#: js/blocks/MediaBlocks.js:880 +msgid "The Show block is used to display text or images on the canvas." msgstr "" -#: js/BoxesBlocks.js:53 -#: js/BoxesBlocks.js:59 -msgid "The Add-to block is used to add to the value stored in a box." +#: js/blocks/MediaBlocks.js:888 +#.TRANS: show1 is show as in display an image or text on the screen. +msgid "show1" msgstr "" -#: js/BoxesBlocks.js:61 -msgid "It can also be used with other blocks such as Color and Pen size." +#: js/blocks/MediaBlocks.js:891 +msgid "obj" msgstr "" -#: js/BoxesBlocks.js:73 -msgid "add" +#: js/blocks/MediaBlocks.js:938 +msgid "The Media block is used to import an image." msgstr "" -#: js/BoxesBlocks.js:75 -#: js/temperament.js:716 -msgid "to" +#: js/blocks/MediaBlocks.js:973 +msgid "The Text block holds a text string." msgstr "" -#: js/BoxesBlocks.js:75 -#: js/BoxesBlocks.js:595 -#: js/HeapBlocks.js:544 -msgid "value1" +#: js/blocks/MeterBlocks.js:34 +#.TRANS: musical meter (time signature), e.g., 4:4 +msgid "current meter" msgstr "" -#: js/BoxesBlocks.js:118 -msgid "Block does not support incrementing." +#: js/blocks/MeterBlocks.js:85 +#.TRANS: number of beats per minute +msgid "beat factor" msgstr "" -#: js/BoxesBlocks.js:152 -msgid "The Add-1-to block adds one to the value stored in a box." +#: js/blocks/MeterBlocks.js:161 +msgid "The Beats per minute block returns the current beats per minute." msgstr "" -#: js/BoxesBlocks.js:163 -msgid "add 1 to" +#: js/blocks/MeterBlocks.js:169 +#: js/widgets/status.js:152 +#.TRANS: number of beats played per minute +msgid "beats per minute2" msgstr "" -#: js/BoxesBlocks.js:211 -msgid "The Subtract-1-from block subtracts one from the value stored in a box." +#: js/blocks/MeterBlocks.js:169 +#: js/blocks/MeterBlocks.js:1056 +#: js/blocks/MeterBlocks.js:1133 +#: js/blocks/MeterBlocks.js:1211 +#.TRANS: sets tempo by defining a beat and beats per minute +msgid "beats per minute" msgstr "" -#: js/BoxesBlocks.js:222 -msgid "subtract 1 from" +#: js/blocks/MeterBlocks.js:233 +#.TRANS: count of current musical measure in meter +msgid "measure count" msgstr "" -#: js/BoxesBlocks.js:270 -#: js/BoxesBlocks.js:387 -msgid "The Box block returns the value stored in a box." +#: js/blocks/MeterBlocks.js:241 +msgid "The Measure count block returns the current measure." msgstr "" -#: js/BoxesBlocks.js:500 -#: js/BoxesBlocks.js:576 -msgid "The Store in block will store a value in a box." +#: js/blocks/MeterBlocks.js:290 +#.TRANS: count of current beat in the meter +msgid "beat count" msgstr "" -#: js/BoxesBlocks.js:652 -msgid "The Box2 block returns the value stored in Box2." +#: js/blocks/MeterBlocks.js:300 +#: js/blocks/MeterBlocks.js:311 +#: js/blocks/MeterBlocks.js:565 +#: js/blocks/MeterBlocks.js:576 +msgid "The Beat count block is the number of the current beat," msgstr "" -#: js/BoxesBlocks.js:703 -msgid "The Store in Box2 block is used to store a value in Box2." +#: js/blocks/MeterBlocks.js:313 +#: js/blocks/MeterBlocks.js:578 +msgid "eg 1, 2, 3, or 4." msgstr "" -#: js/BoxesBlocks.js:715 -msgid "store in box2" +#: js/blocks/MeterBlocks.js:368 +#.TRANS: count the number of notes +msgid "sum note values" msgstr "" -#: js/BoxesBlocks.js:761 -msgid "The Box1 block returns the value stored in Box1." +#: js/blocks/MeterBlocks.js:376 +#: js/blocks/MeterBlocks.js:440 +msgid "The Note counter block can be used to count the number of contained notes." msgstr "" -#: js/BoxesBlocks.js:812 -msgid "The Store in Box1 block is used to store a value in Box1." +#: js/blocks/MeterBlocks.js:432 +#.TRANS: count the number of notes +msgid "note counter" msgstr "" -#: js/BoxesBlocks.js:826 -msgid "store in box1" +#: js/blocks/MeterBlocks.js:496 +#.TRANS: number of whole notes that have been played +msgid "whole notes played" msgstr "" -#: js/HeapBlocks.js:49 -msgid "The Heap block returns the heap." +#: js/blocks/MeterBlocks.js:505 +msgid "The Whole notes played block returns the total number of whole notes played." msgstr "" -#: js/HeapBlocks.js:133 -msgid "show heap" +#: js/blocks/MeterBlocks.js:555 +#: js/turtleactions/DictActions.js:83 +#.TRANS: number of notes that have been played +msgid "notes played" msgstr "" -#: js/HeapBlocks.js:181 -msgid "The Heap-length block returns the length of the heap." +#: js/blocks/MeterBlocks.js:653 +msgid "The No clock block decouples the notes from the master clock." msgstr "" -#: js/HeapBlocks.js:195 -msgid "heap length" +#: js/blocks/MeterBlocks.js:661 +#.TRANS: don't lock notes to master clock +msgid "no clock" msgstr "" -#: js/HeapBlocks.js:254 -msgid "The Heap-empty? block returns true if the heap is empty." +#: js/blocks/MeterBlocks.js:700 +msgid "on weak beat do" msgstr "" -#: js/HeapBlocks.js:268 -#.TRANS: Is the heap empty? -msgid "heap empty?" +#: js/blocks/MeterBlocks.js:705 +msgid "The On-weak-beat block lets you specify actions to take on weak (off) beats." msgstr "" -#: js/HeapBlocks.js:317 -msgid "The Empty-heap block empties the heap." +#: js/blocks/MeterBlocks.js:750 +msgid "on strong beat" msgstr "" -#: js/HeapBlocks.js:327 -#: js/HeapBlocks.js:647 -#.TRANS: empty the heap -msgid "empty heap" +#: js/blocks/MeterBlocks.js:758 +msgid "The On-strong-beat block lets you specify actions to take on specified beats." msgstr "" -#: js/HeapBlocks.js:371 -msgid "The Reverse-heap block reverses the order of the heap." +#: js/blocks/MeterBlocks.js:769 +msgid "beat" msgstr "" -#: js/HeapBlocks.js:384 -#.TRANS: reverse the order of the heap -msgid "reverse heap" +#: js/blocks/MeterBlocks.js:813 +msgid "on every beat do" msgstr "" -#: js/HeapBlocks.js:428 -msgid "The Index-heap block returns a value in the heap at a specified location." +#: js/blocks/MeterBlocks.js:821 +msgid "The On-every-beat block lets you specify actions to take on every beat." msgstr "" -#: js/HeapBlocks.js:443 -#.TRANS: retrieve a value from the heap at index position in the heap -msgid "index heap" +#: js/blocks/MeterBlocks.js:874 +msgid "on every note do" msgstr "" -#: js/HeapBlocks.js:523 -msgid "The Set-heap entry block sets a value in he heap at the specified location." +#: js/blocks/MeterBlocks.js:882 +msgid "The On-every-note block lets you specify actions to take on every note." msgstr "" -#: js/HeapBlocks.js:619 -msgid "The Pop block removes the value at the top of the heap." +#: js/blocks/MeterBlocks.js:928 +#: js/blocks/MeterBlocks.js:999 +#.TRANS: sets tempo by defining a beat and beats per minute +msgid "master beats per minute" msgstr "" -#: js/HeapBlocks.js:633 -#.TRANS: pop a value off the top of the heap -msgid "pop" +#: js/blocks/MeterBlocks.js:952 +#: js/blocks/MeterBlocks.js:1078 +#: js/blocks/MeterBlocks.js:1135 +msgid "bpm" msgstr "" -#: js/HeapBlocks.js:680 -msgid "The Push block adds a value to the top of the heap." +#: js/blocks/MeterBlocks.js:952 +#: js/blocks/MeterBlocks.js:1078 +#: js/blocks/MeterBlocks.js:1135 +msgid "beat value" msgstr "" -#: js/HeapBlocks.js:696 -#.TRANS: push a value onto the top of the heap -msgid "push" +#: js/blocks/MeterBlocks.js:1024 +#: js/blocks/MeterBlocks.js:1167 +#: js/blocks/MeterBlocks.js:1241 +msgid "Beats per minute must be > 30." msgstr "" -#: js/FlowBlocks.js:41 -msgid "The Backward block runs code in reverse order (Musical retrograde)." +#: js/blocks/MeterBlocks.js:1027 +#: js/blocks/MeterBlocks.js:1170 +#: js/blocks/MeterBlocks.js:1244 +msgid "Maximum beats per minute is 1000." msgstr "" -#: js/FlowBlocks.js:48 -msgid "backward" +#: js/blocks/MeterBlocks.js:1068 +msgid "The Beats per minute block sets the number of 1/4 notes per minute." msgstr "" -#: js/FlowBlocks.js:124 -msgid "The Duplicate block will run each block multiple times." +#: js/blocks/MeterBlocks.js:1279 +#.TRANS: anacrusis +msgid "pickup" msgstr "" -#: js/FlowBlocks.js:136 -msgid "duplicate" +#: js/blocks/MeterBlocks.js:1367 +msgid "number of beats" msgstr "" -#: js/FlowBlocks.js:334 -msgid "The Default block is used inside of a Switch to define the default action." +#: js/blocks/NumberBlocks.js:28 +msgid "The Int block returns an integer." msgstr "" -#: js/FlowBlocks.js:342 -msgid "default" +#: js/blocks/NumberBlocks.js:34 +msgid "int" msgstr "" -#: js/FlowBlocks.js:361 -#: js/FlowBlocks.js:418 -msgid "The Case Block must be used inside of a Switch Block." +#: js/blocks/NumberBlocks.js:73 +msgid "The Mod block returns the remainder from a division." msgstr "" -#: js/FlowBlocks.js:389 -msgid "The Case block is used inside of a Switch to define matches." +#: js/blocks/NumberBlocks.js:79 +msgid "mod" msgstr "" -#: js/FlowBlocks.js:397 -msgid "case" +#: js/blocks/NumberBlocks.js:141 +msgid "The Power block calculates a power function." msgstr "" -#: js/FlowBlocks.js:446 -msgid "The Switch block will run the code in the matching Case." +#: js/blocks/NumberBlocks.js:196 +msgid "The Sqrt block returns the square root." msgstr "" -#: js/FlowBlocks.js:454 -msgid "switch" +#: js/blocks/NumberBlocks.js:202 +msgid "sqrt" msgstr "" -#: js/FlowBlocks.js:595 -msgid "The Stop block will stop a loop" +#: js/blocks/NumberBlocks.js:248 +msgid "The Abs block returns the absolute value." msgstr "" -#: js/FlowBlocks.js:597 -msgid "Forever, Repeat, While, or Until." +#: js/blocks/NumberBlocks.js:254 +msgid "abs" msgstr "" -#: js/FlowBlocks.js:604 -#: js/phrasemaker.js:3799 -#: js/musickeyboard.js:629 -#: js/musickeyboard.js:631 -#: js/timbre.js:417 -#: js/timbre.js:419 -#: plugins/rodi.rtp:29 -#: plugins/rodi.rtp:73 -#: plugins/rodi.rtp:413 -msgid "stop" +#: js/blocks/NumberBlocks.js:295 +msgid "The Distance block returns the distance between two points. For example, between the mouse and the center of the screen." msgstr "" -#: js/FlowBlocks.js:653 -msgid "The Waitfor block will wait until the condition is true." +#: js/blocks/NumberBlocks.js:301 +#: plugins/rodi.rtp:310 +msgid "distance" msgstr "" -#: js/FlowBlocks.js:661 -msgid "wait for" +#: js/blocks/NumberBlocks.js:361 +msgid "The Divide block is used to divide." msgstr "" -#: js/FlowBlocks.js:732 -msgid "The Until block will repeat until the condition is true." +#: js/blocks/NumberBlocks.js:441 +msgid "The Multiply block is used to multiply." msgstr "" -#: js/FlowBlocks.js:740 -msgid "until" +#: js/blocks/NumberBlocks.js:612 +msgid "The Minus block is used to subtract." msgstr "" -#: js/FlowBlocks.js:742 -#: js/FlowBlocks.js:822 -msgid "do2" +#: js/blocks/NumberBlocks.js:723 +msgid "The Plus block is used to add." msgstr "" -#: js/FlowBlocks.js:812 -msgid "The While block will repeat while the condition is true." +#: js/blocks/NumberBlocks.js:849 +msgid "The One-of block returns one of two choices." msgstr "" -#: js/FlowBlocks.js:820 -msgid "while" +#: js/blocks/NumberBlocks.js:856 +#: js/blocks/PitchBlocks.js:616 +msgid "one of" msgstr "" -#: js/FlowBlocks.js:903 -#: js/FlowBlocks.js:968 -#: js/FlowBlocks.js:979 -msgid "In this example if the mouse button is pressed a snare drum will play." +#: js/blocks/NumberBlocks.js:858 +msgid "this" msgstr "" -#: js/FlowBlocks.js:925 -#: js/FlowBlocks.js:988 -msgid "if" +#: js/blocks/NumberBlocks.js:858 +msgid "that" msgstr "" -#: js/FlowBlocks.js:927 -#: js/FlowBlocks.js:990 -msgid "then" +#: js/blocks/NumberBlocks.js:913 +msgid "The Random block returns a random number." msgstr "" -#: js/FlowBlocks.js:927 -msgid "else" +#: js/blocks/NumberBlocks.js:920 +msgid "random" msgstr "" -#: js/FlowBlocks.js:1025 -msgid "The Forever block will repeat the contained blocks forever." +#: js/blocks/NumberBlocks.js:922 +msgid "min" msgstr "" -#: js/FlowBlocks.js:1037 -msgid "forever" +#: js/blocks/NumberBlocks.js:922 +msgid "max" msgstr "" -#: js/FlowBlocks.js:1073 -msgid "The Repeat block will repeat the contained blocks." +#: js/blocks/NumberBlocks.js:986 +msgid "The Number block holds a number." msgstr "" -#: js/FlowBlocks.js:1075 -msgid "In this example the note will be played 4 times." +#: js/blocks/OrnamentBlocks.js:32 +msgid "staccato factor" msgstr "" -#: js/FlowBlocks.js:1083 -msgid "repeat" +#: js/blocks/OrnamentBlocks.js:108 +msgid "slur factor" msgstr "" -#: js/FlowBlocks.js:1123 -msgid "duplicate factor" +#: js/blocks/OrnamentBlocks.js:217 +#: js/blocks/OrnamentBlocks.js:309 +#.TRANS: the neighbor refers to a neighboring note, e.g., D is a neighbor of C +msgid "neighbor" msgstr "" -#: js/PitchBlocks.js:39 -#: js/musicutils.js:722 -#: js/musicutils.js:1117 -#: js/synthutils.js:112 -#.TRANS: square wave -msgid "square" +#: js/blocks/OrnamentBlocks.js:293 +msgid "The Neighbor block rapidly switches between neighboring pitches." msgstr "" -#: js/PitchBlocks.js:62 -#: js/ToneBlocks.js:39 -#: js/musicutils.js:723 -#: js/musicutils.js:1118 -#: js/synthutils.js:116 -#.TRANS: triangle wave -msgid "triangle" +#: js/blocks/OrnamentBlocks.js:364 +msgid "glide" msgstr "" -#: js/PitchBlocks.js:85 -#: js/musicutils.js:721 -#: js/musicutils.js:1116 -#: js/synthutils.js:110 -#.TRANS: sine wave -msgid "sine" +#: js/blocks/OrnamentBlocks.js:479 +#: js/blocks/OrnamentBlocks.js:643 +msgid "slur" msgstr "" -#: js/PitchBlocks.js:108 -#: js/musicutils.js:724 -#: js/musicutils.js:1119 -#: js/synthutils.js:114 -#.TRANS: sawtooth wave -msgid "sawtooth" +#: js/blocks/OrnamentBlocks.js:558 +#: js/blocks/OrnamentBlocks.js:710 +#.TRANS: play each note sharply detached from the others +msgid "staccato" msgstr "" -#: js/PitchBlocks.js:141 -#.TRANS: musical transposition (adjustment of pitch up or down) -msgid "transposition" +#: js/blocks/RhythmBlocks.js:182 +#: js/blocks/RhythmBlocks.js:1086 +#: js/blocks/RhythmBlocks.js:1162 +msgid "Note value must be greater than 0." msgstr "" -#: js/PitchBlocks.js:168 -#.TRANS: step down one note in current musical scale -msgid "scalar step down" +#: js/blocks/RhythmBlocks.js:215 +#: js/blocks/RhythmBlocks.js:278 +#: js/blocks/RhythmBlocks.js:350 +#.TRANS: swing is a rhythmic variation that emphasises the offbeat +msgid "swing" msgstr "" -#: js/PitchBlocks.js:172 -msgid "The Scalar step down block returns the number of semi-tones down to the previous note in the current key and mode." +#: js/blocks/RhythmBlocks.js:355 +#.TRANS: the amount to shift to the offbeat note +msgid "swing value" msgstr "" -#: js/PitchBlocks.js:190 -#.TRANS: step up one note in current musical scale -msgid "scalar step up" +#: js/blocks/RhythmBlocks.js:419 +msgid "The Skip notes block will cause notes to be skipped." msgstr "" -#: js/PitchBlocks.js:194 -msgid "The Scalar step up block returns the number of semi-tones up to the next note in the current key and mode." +#: js/blocks/RhythmBlocks.js:427 +#.TRANS: substitute rests on notes being skipped +msgid "skip notes" msgstr "" -#: js/PitchBlocks.js:212 -#.TRANS: the change measured in half-steps between the current pitch and the previous pitch -msgid "change in pitch" +#: js/blocks/RhythmBlocks.js:489 +#.TRANS: speed up note duration by some factor, e.g. convert 1/4 to 1/8 notes by using a factor of 2 +msgid "multiply note value" msgstr "" -#: js/PitchBlocks.js:216 -msgid "The Change in pitch block is the difference (in half steps) between the current pitch being played and the previous pitch played." +#: js/blocks/RhythmBlocks.js:542 +msgid "The Tie block works on pairs of notes, combining them into one note." msgstr "" -#: js/PitchBlocks.js:243 -#.TRANS: the change measured in scale-steps between the current pitch and the previous pitch -msgid "scalar change in pitch" +#: js/blocks/RhythmBlocks.js:550 +#.TRANS: tie notes together into one longer note +msgid "tie" msgstr "" -#: js/PitchBlocks.js:250 -#: js/PitchBlocks.js:432 -#: js/PitchBlocks.js:1629 -#: js/DictActions.js:89 -#: js/temperament.js:477 -#: js/temperament.js:481 -#: js/temperament.js:714 -#.TRANS: convert current note to piano key (1-88) -#.TRANS: a mapping of pitch to the 88 piano keys -msgid "pitch number" +#: js/blocks/RhythmBlocks.js:591 +#: js/blocks/RhythmBlocks.js:671 +#.TRANS: a dotted note is played for 1.5x its value, e.g., 1/8. --> 3/16 +msgid "dot" msgstr "" -#: js/PitchBlocks.js:256 -msgid "The Pitch number block is the value of the pitch of the note currently being played." +#: js/blocks/RhythmBlocks.js:619 +#: js/turtleactions/RhythmActions.js:221 +msgid "An argument of -1 results in a note value of 0." msgstr "" -#: js/PitchBlocks.js:329 -#: js/PitchBlocks.js:433 -#.TRANS: the current pitch expressed in Hertz -msgid "pitch in hertz" +#: js/blocks/RhythmBlocks.js:661 +msgid "The Dot block extends the duration of a note by 50%." msgstr "" -#: js/PitchBlocks.js:334 -msgid "The Pitch in Hertz block is the value in Hertz of the pitch of the note currently being played." +#: js/blocks/RhythmBlocks.js:663 +msgid "Eg a dotted quarter note will play for 3/8 (1/4 + 1/8) of a beat." msgstr "" -#: js/PitchBlocks.js:367 -#: js/DictActions.js:87 -msgid "current pitch" +#: js/blocks/RhythmBlocks.js:765 +#.TRANS: Japanese only: note value block for drum +msgid "note value drum" msgstr "" -#: js/PitchBlocks.js:373 -msgid "The Current Pitch block is used with the Pitch Converter block. In the example above, current pitch, sol 4, is displayed as 392 hertz." +#: js/blocks/RhythmBlocks.js:829 +msgid "392 hertz" msgstr "" -#: js/PitchBlocks.js:410 -msgid "This block converts the pitch value of the last note played into different formats such as hertz, letter name, pitch number, et al." +#: js/blocks/RhythmBlocks.js:1119 +msgid "The Note block is a container for one or more Pitch blocks." msgstr "" -#: js/PitchBlocks.js:434 -msgid "alphabet" +#: js/blocks/RhythmBlocks.js:1121 +msgid "The Note block specifies the duration (note value) of its contents." msgstr "" -#: js/PitchBlocks.js:436 -#.TRANS: Translate as "alphabet class" -msgid "letter class" +#: js/blocks/RhythmBlocks.js:1128 +#: js/blocks/PitchBlocks.js:974 +#: js/blocks/PitchBlocks.js:1007 +#: js/blocks/ProgramBlocks.js:1186 +#: js/blocks/ProgramBlocks.js:1227 +#: js/widgets/status.js:190 +#: js/widgets/temperament.js:464 +#: js/widgets/temperament.js:486 +#: js/widgets/temperament.js:496 +#: js/widgets/temperament.js:617 +#: plugins/rodi.rtp:192 +#.TRANS: a musical note consisting of pitch and duration +msgid "note" msgstr "" -#: js/PitchBlocks.js:437 -msgid "solfege class" +#: js/blocks/RhythmBlocks.js:1130 +msgid "value2" msgstr "" -#: js/PitchBlocks.js:438 -msgid "staff y" +#: js/blocks/RhythmBlocks.js:1200 +msgid "define frequency" msgstr "" -#: js/PitchBlocks.js:439 -msgid "solfege syllable" +#: js/blocks/RhythmBlocks.js:1218 +#: js/widgets/temperament.js:787 +#: js/widgets/temperament.js:1587 +msgid "octave space" msgstr "" -#: js/PitchBlocks.js:440 -msgid "pitch class" +#: js/blocks/SensorsBlocks.js:36 +msgid "The Input block prompts for keyboard input." msgstr "" -#: js/PitchBlocks.js:441 -msgid "scalar class" +#: js/blocks/SensorsBlocks.js:46 +msgid "input" msgstr "" -#: js/PitchBlocks.js:443 -msgid "nth degree" +#: js/blocks/SensorsBlocks.js:64 +msgid "Input a value" msgstr "" -#: js/PitchBlocks.js:444 -msgid "pitch to shade" +#: js/blocks/SensorsBlocks.js:126 +msgid "input value" msgstr "" -#: js/PitchBlocks.js:445 -msgid "pitch to color" +#: js/blocks/SensorsBlocks.js:131 +msgid "The Input-value block stores the input." msgstr "" -#: js/PitchBlocks.js:629 -#: js/musickeyboard.js:565 -#.TRANS: MIDI is a technical standard for electronic music -msgid "MIDI" +#: js/blocks/SensorsBlocks.js:238 +msgid "loudness" msgstr "" -#: js/PitchBlocks.js:642 -#.TRANS: set an offset associated with the numeric piano keyboard mapping -msgid "set pitch number offset" +#: js/blocks/SensorsBlocks.js:245 +msgid "The Loudness block returns the volume detected by the microphone." msgstr "" -#: js/PitchBlocks.js:645 -msgid "The Set pitch number offset block is used to set the offset for mapping pitch numbers to pitch and octave." +#: js/blocks/SensorsBlocks.js:300 +msgid "click" msgstr "" -#: js/PitchBlocks.js:679 -#.TRANS: convert piano key number (1-88) to pitch -msgid "number to pitch" +#: js/blocks/SensorsBlocks.js:306 +msgid "The Click block triggers an event if a mouse has been clicked." msgstr "" -#: js/PitchBlocks.js:682 -msgid "The Number to pitch block will convert a pitch number to a pich name." +#: js/blocks/SensorsBlocks.js:313 +msgid "The Click block triggers an event if a turtle has been clicked." msgstr "" -#: js/PitchBlocks.js:715 -#.TRANS: convert piano key number (1-88) to octave -msgid "number to octave" +#: js/blocks/SensorsBlocks.js:342 +msgid "cursor over" msgstr "" -#: js/PitchBlocks.js:717 -msgid "The Number to octave block will convert a pitch number to an octave." +#: js/blocks/SensorsBlocks.js:387 +msgid "cursor out" msgstr "" -#: js/PitchBlocks.js:726 -msgid "y to pitch" +#: js/blocks/SensorsBlocks.js:433 +msgid "cursor button down" msgstr "" -#: js/PitchBlocks.js:729 -msgid "Y to pitch block will convert a staff y position to corresponding pitch notation." +#: js/blocks/SensorsBlocks.js:477 +msgid "cursor button up" msgstr "" -#: js/PitchBlocks.js:841 -msgid "accidental selector" +#: js/blocks/SensorsBlocks.js:521 +#: js/blocks/PenBlocks.js:48 +#: plugins/rodi.rtp:219 +msgid "blue" msgstr "" -#: js/PitchBlocks.js:844 -msgid "The Accidental selector block is used to choose between double-sharp, sharp, natural, flat, and double-flat." +#: js/blocks/SensorsBlocks.js:577 +#: js/blocks/PenBlocks.js:64 +#: plugins/rodi.rtp:218 +msgid "green" msgstr "" -#: js/PitchBlocks.js:858 -msgid "Pitch can be specified in terms of ni dha pa ma ga re sa." +#: js/blocks/SensorsBlocks.js:633 +#: js/blocks/PenBlocks.js:112 +#: plugins/rodi.rtp:217 +msgid "red" msgstr "" -#: js/PitchBlocks.js:872 -msgid "Pitch can be specified in terms of C D E F G A B." +#: js/blocks/SensorsBlocks.js:638 +msgid "The Get red block returns the red component of the pixel under the mouse." msgstr "" -#: js/PitchBlocks.js:883 -msgid "solfege" +#: js/blocks/SensorsBlocks.js:644 +msgid "The Get red block returns the red component of the pixel under the turtle." msgstr "" -#: js/PitchBlocks.js:886 -msgid "Pitch can be specified in terms of do re mi fa sol la ti." +#: js/blocks/SensorsBlocks.js:685 +#: plugins/rodi.rtp:216 +msgid "pixel color" msgstr "" -#: js/PitchBlocks.js:920 -msgid "The Invert block rotates any contained notes around a target note." +#: js/blocks/SensorsBlocks.js:690 +msgid "The Get pixel block returns the color of the pixel under the mouse." msgstr "" -#: js/PitchBlocks.js:927 -#.TRANS: pitch inversion rotates a pitch around another pitch -msgid "invert" +#: js/blocks/SensorsBlocks.js:696 +msgid "The Get pixel block returns the color of the pixel under the turtle." msgstr "" -#: js/PitchBlocks.js:929 -#: js/PitchBlocks.js:935 -#: js/PitchActions.js:727 -#: js/musicutils.js:726 -#: js/musicutils.js:902 -#.TRANS: invert based on even or odd number or musical scale -#.TRANS: even numbers -msgid "even" +#: js/blocks/SensorsBlocks.js:758 +msgid "time" msgstr "" -#: js/PitchBlocks.js:935 -#: js/PitchActions.js:729 -#: js/musicutils.js:728 -#: js/musicutils.js:903 -#.TRANS: odd numbers -msgid "odd" +#: js/blocks/SensorsBlocks.js:804 +msgid "cursor y" msgstr "" -#: js/PitchBlocks.js:935 -#: js/PitchActions.js:731 -#: js/musicutils.js:729 -#: js/musicutils.js:904 -msgid "scalar" +#: js/blocks/SensorsBlocks.js:809 +msgid "The Cursor Y block returns the vertical position of the mouse." msgstr "" -#: js/PitchBlocks.js:966 -#.TRANS: pitch inversion rotates a pitch around another pitch (odd number) -msgid "invert (odd)" +#: js/blocks/SensorsBlocks.js:845 +msgid "cursor x" msgstr "" -#: js/PitchBlocks.js:999 -#.TRANS: pitch inversion rotates a pitch around another pitch (even number) -msgid "invert (even)" +#: js/blocks/SensorsBlocks.js:850 +msgid "The Cursor X block returns the horizontal position of the mouse." msgstr "" -#: js/PitchBlocks.js:1020 -#.TRANS: register is the octave of the current pitch -msgid "register" +#: js/blocks/SensorsBlocks.js:886 +msgid "mouse button" msgstr "" -#: js/PitchBlocks.js:1024 -msgid "The Register block provides an easy way to modify the register (octave) of the notes that follow it." +#: js/blocks/SensorsBlocks.js:888 +msgid "The Mouse-button block returns True if the mouse button is pressed." msgstr "" -#: js/PitchBlocks.js:1074 -msgid "The Semi-tone transposition block will shift the pitches contained inside Note blocks up (or down) by half steps." +#: js/blocks/SensorsBlocks.js:934 +msgid "to ASCII" msgstr "" -#: js/PitchBlocks.js:1076 -msgid "In the example shown above, sol is shifted up to sol#." +#: js/blocks/SensorsBlocks.js:938 +msgid "The To ASCII block converts numbers to letters." msgstr "" -#: js/PitchBlocks.js:1082 -#.TRANS: adjust the amount of shift (up or down) of a pitch -msgid "semi-tone transpose" +#: js/blocks/SensorsBlocks.js:1005 +msgid "The Keyboard block returns computer keyboard input." msgstr "" -#: js/PitchBlocks.js:1115 -msgid "The Transpose by Ratio block will shift the pitches contained inside Note blocks up (or down) by a ratio" +#: js/blocks/RhythmBlockPaletteBlocks.js:50 +#: js/blocks/RhythmBlockPaletteBlocks.js:233 +#.TRANS: rhythm block +#.TRANS: translate "rhythm1" as rhythm +msgid "rhythm1" msgstr "" -#: js/PitchBlocks.js:1121 -#.TRANS: adjust the amount of shift (up or down) of a pitch -msgid "transpose by ratio" +#: js/blocks/RhythmBlockPaletteBlocks.js:70 +#: js/blocks/RhythmBlockPaletteBlocks.js:252 +#: js/blocks/RhythmBlockPaletteBlocks.js:485 +#: js/blocks/RhythmBlockPaletteBlocks.js:554 +#: js/blocks/RhythmBlockPaletteBlocks.js:875 +msgid "number of notes" msgstr "" -#: js/PitchBlocks.js:1204 -#.TRANS: down sixth means the note is five scale degrees below current note -msgid "down sixth" +#: js/blocks/RhythmBlockPaletteBlocks.js:126 +msgid "polyphonic rhythm" msgstr "" -#: js/PitchBlocks.js:1223 -#.TRANS: down third means the note is two scale degrees below current note -msgid "down third" +#: js/blocks/RhythmBlockPaletteBlocks.js:219 +msgid "The Rhythm block is used to generate rhythm patterns." msgstr "" -#: js/PitchBlocks.js:1242 -#.TRANS: seventh means the note is the six scale degrees above current note -msgid "seventh" +#: js/blocks/RhythmBlockPaletteBlocks.js:280 +msgid "1/64 note" msgstr "" -#: js/PitchBlocks.js:1261 -#.TRANS: sixth means the note is the five scale degrees above current note -msgid "sixth" +#: js/blocks/RhythmBlockPaletteBlocks.js:304 +msgid "1/32 note" msgstr "" -#: js/PitchBlocks.js:1280 -#.TRANS: fifth means the note is the four scale degrees above current note -msgid "fifth" +#: js/blocks/RhythmBlockPaletteBlocks.js:332 +msgid "1/16 note" msgstr "" -#: js/PitchBlocks.js:1300 -#.TRANS: fourth means the note is three scale degrees above current note -msgid "fourth" +#: js/blocks/RhythmBlockPaletteBlocks.js:360 +msgid "eighth note" msgstr "" -#: js/PitchBlocks.js:1319 -#.TRANS: third means the note is two scale degrees above current note -msgid "third" +#: js/blocks/RhythmBlockPaletteBlocks.js:388 +msgid "quarter note" msgstr "" -#: js/PitchBlocks.js:1338 -#.TRANS: second means the note is one scale degree above current note -msgid "second" +#: js/blocks/RhythmBlockPaletteBlocks.js:416 +msgid "half note" msgstr "" -#: js/PitchBlocks.js:1379 -msgid "The Scalar transposition block will shift the pitches contained inside Note blocks up (or down) the scale." +#: js/blocks/RhythmBlockPaletteBlocks.js:444 +msgid "whole note" msgstr "" -#: js/PitchBlocks.js:1381 -msgid "In the example shown above, sol is shifted up to la." +#: js/blocks/RhythmBlockPaletteBlocks.js:482 +#: js/blocks/RhythmBlockPaletteBlocks.js:551 +#: js/blocks/RhythmBlockPaletteBlocks.js:602 +#.TRANS: A tuplet is a note value divided into irregular time values. +msgid "tuplet" msgstr "" -#: js/PitchBlocks.js:1388 -#.TRANS: adjust the amount of shift (up or down) of a pitch by musical scale (scalar) steps -msgid "scalar transpose" +#: js/blocks/RhythmBlockPaletteBlocks.js:768 +msgid "septuplet" msgstr "" -#: js/PitchBlocks.js:1423 -msgid "The Accidental block is used to create sharps and flats" +#: js/blocks/RhythmBlockPaletteBlocks.js:796 +msgid "quintuplet" msgstr "" -#: js/PitchBlocks.js:1430 -#.TRANS: An accidental is a modification to a pitch, e.g., sharp or flat. -msgid "accidental override" +#: js/blocks/RhythmBlockPaletteBlocks.js:824 +msgid "triplet" msgstr "" -#: js/PitchBlocks.js:1543 -msgid "The Hertz block (in combination with a Number block) will play a sound at the specified frequency." +#: js/blocks/RhythmBlockPaletteBlocks.js:851 +msgid "simple tuplet" msgstr "" -#: js/PitchBlocks.js:1633 -msgid "The Pitch Number block will play a pitch associated by its number, e.g. 0 for C and 7 for G." +#: js/blocks/RhythmBlockPaletteBlocks.js:861 +msgid "Tuplets are a collection of notes that get scaled to a specific duration." msgstr "" -#: js/PitchBlocks.js:1665 -#: js/PitchBlocks.js:1707 -#.TRANS: a numeric mapping of the notes in an octave based on the musical mode -#.TRANS: a numeric mapping of the notes in an octave based on the musical mode -msgid "nth modal pitch" +#: js/blocks/DrumBlocks.js:59 +msgid "The Noise name block is used to select a noise synthesizer." msgstr "" -#: js/PitchBlocks.js:1668 -msgid "n^th Modal Pitch takes the pattern of pitches in semitones for a mode and makes each point a degree of the mode," +#: js/blocks/DrumBlocks.js:102 +msgid "The Drum name block is used to select a drum." msgstr "" -#: js/PitchBlocks.js:1670 -msgid "starting from 1 and regardless of tonal framework (i.e. not always 8 notes in the octave)" +#: js/blocks/DrumBlocks.js:146 +msgid "The Effects name block is used to select a sound effect." msgstr "" -#: js/PitchBlocks.js:1711 -msgid "N^th Modal Pitch takes a number as an input as the n^th degree for the given mode. 0 is the first position, 1 is the second, -1 is the note before the first etc." +#: js/blocks/DrumBlocks.js:163 +msgid "noise" msgstr "" -#: js/PitchBlocks.js:1713 -msgid "The pitches change according to the mode specified without any need for respellings." +#: js/blocks/DrumBlocks.js:177 +msgid "The Play noise block will generate white, pink, or brown noise." msgstr "" -#: js/PitchBlocks.js:1752 -msgid "Scale Degree is a common convention in music. Scale Degree offers seven possible positions in the scale (1-7) and can be modified via accidentals." +#: js/blocks/DrumBlocks.js:317 +msgid "Replace every instance of a pitch with a drum sound." msgstr "" -#: js/PitchBlocks.js:1754 -msgid "Scale Degree 1 is always the first pitch in a given scale, regardless of octave." +#: js/blocks/DrumBlocks.js:328 +#.TRANS: map a pitch to a drum sound +msgid "map pitch to drum" msgstr "" -#: js/PitchBlocks.js:1776 -#.TRANS: step some number of notes in current musical scale -msgid "scalar step" +#: js/blocks/DrumBlocks.js:395 +msgid "In the example above, a kick drum sound will be played instead of sol." msgstr "" -#: js/PitchBlocks.js:1781 -msgid "The Scalar Step block (in combination with a Number block) will play the next pitch in a scale," +#: js/blocks/DrumBlocks.js:407 +#.TRANS: set the current drum sound for playback +msgid "set drum" msgstr "" -#: js/PitchBlocks.js:1783 -msgid "eg if the last note played was sol, Scalar Step 1 will play la." +#: js/blocks/DrumBlocks.js:451 +msgid "sound effect" msgstr "" -#: js/PitchBlocks.js:1818 -msgid "The Pitch block specifies the pitch name and octave of a note that together determine the frequency of the note." +#: js/blocks/DrumBlocks.js:489 +msgid "You can use multiple Drum blocks within a Note block." msgstr "" -#: js/GraphicsBlocks.js:46 -#: js/DictActions.js:77 -#: js/DictActions.js:155 -#: js/DictActions.js:189 +#: js/blocks/GraphicsBlocks.js:46 +#: js/turtleactions/DictActions.js:77 +#: js/turtleactions/DictActions.js:144 +#: js/turtleactions/DictActions.js:173 msgid "heading" msgstr "" -#: js/GraphicsBlocks.js:56 +#: js/blocks/GraphicsBlocks.js:56 msgid "The Heading block returns the orientation of the mouse." msgstr "" -#: js/GraphicsBlocks.js:62 +#: js/blocks/GraphicsBlocks.js:62 msgid "The Heading block returns the orientation of the turtle." msgstr "" -#: js/GraphicsBlocks.js:133 +#: js/blocks/GraphicsBlocks.js:133 msgid "The Y block returns the vertical position of the mouse." msgstr "" -#: js/GraphicsBlocks.js:140 +#: js/blocks/GraphicsBlocks.js:140 msgid "The Y block returns the vertical position of the turtle." msgstr "" -#: js/GraphicsBlocks.js:149 +#: js/blocks/GraphicsBlocks.js:149 msgid "y3" msgstr "" -#: js/GraphicsBlocks.js:219 +#: js/blocks/GraphicsBlocks.js:219 msgid "The X block returns the horizontal position of the mouse." msgstr "" -#: js/GraphicsBlocks.js:226 +#: js/blocks/GraphicsBlocks.js:226 msgid "The X block returns the horizontal position of the turtle." msgstr "" -#: js/GraphicsBlocks.js:235 +#: js/blocks/GraphicsBlocks.js:235 msgid "x3" msgstr "" -#: js/GraphicsBlocks.js:295 +#: js/blocks/GraphicsBlocks.js:295 msgid "scroll xy" msgstr "" -#: js/GraphicsBlocks.js:303 +#: js/blocks/GraphicsBlocks.js:303 msgid "The Scroll XY block moves the canvas." msgstr "" -#: js/GraphicsBlocks.js:313 +#: js/blocks/GraphicsBlocks.js:313 msgid "x2" msgstr "" -#: js/GraphicsBlocks.js:313 +#: js/blocks/GraphicsBlocks.js:313 msgid "y2" msgstr "" -#: js/GraphicsBlocks.js:373 -#: js/temperament.js:213 -#: js/temperament.js:241 +#: js/blocks/GraphicsBlocks.js:373 +#: js/widgets/temperament.js:319 +#: js/widgets/temperament.js:347 msgid "clear" msgstr "" -#: js/GraphicsBlocks.js:426 +#: js/blocks/GraphicsBlocks.js:426 msgid "The Control-point 2 block sets the second control point for the Bezier curve." msgstr "" -#: js/GraphicsBlocks.js:433 +#: js/blocks/GraphicsBlocks.js:433 msgid "control point 2" msgstr "" -#: js/GraphicsBlocks.js:436 -#: js/GraphicsBlocks.js:487 -#: js/GraphicsBlocks.js:534 -#: js/GraphicsBlocks.js:750 +#: js/blocks/GraphicsBlocks.js:436 +#: js/blocks/GraphicsBlocks.js:487 +#: js/blocks/GraphicsBlocks.js:534 +#: js/blocks/GraphicsBlocks.js:750 msgid "x1" msgstr "" -#: js/GraphicsBlocks.js:436 -#: js/GraphicsBlocks.js:487 -#: js/GraphicsBlocks.js:534 -#: js/GraphicsBlocks.js:750 +#: js/blocks/GraphicsBlocks.js:436 +#: js/blocks/GraphicsBlocks.js:487 +#: js/blocks/GraphicsBlocks.js:534 +#: js/blocks/GraphicsBlocks.js:750 msgid "y1" msgstr "" -#: js/GraphicsBlocks.js:477 +#: js/blocks/GraphicsBlocks.js:477 msgid "The Control-point 1 block sets the first control point for the Bezier curve." msgstr "" -#: js/GraphicsBlocks.js:484 +#: js/blocks/GraphicsBlocks.js:484 msgid "control point 1" msgstr "" -#: js/GraphicsBlocks.js:527 +#: js/blocks/GraphicsBlocks.js:527 msgid "The Bezier block draws a Bezier curve." msgstr "" -#: js/GraphicsBlocks.js:531 +#: js/blocks/GraphicsBlocks.js:531 msgid "bezier" msgstr "" -#: js/GraphicsBlocks.js:592 +#: js/blocks/GraphicsBlocks.js:592 msgid "The Arc block moves the turtle in an arc." msgstr "" -#: js/GraphicsBlocks.js:600 +#: js/blocks/GraphicsBlocks.js:600 msgid "arc" msgstr "" -#: js/GraphicsBlocks.js:603 +#: js/blocks/GraphicsBlocks.js:603 msgid "angle" msgstr "" -#: js/GraphicsBlocks.js:603 +#: js/blocks/GraphicsBlocks.js:603 msgid "radius" msgstr "" -#: js/GraphicsBlocks.js:620 -#: js/GraphicsBlocks.js:767 -#: js/GraphicsBlocks.js:1010 -#: js/GraphicsBlocks.js:1093 +#: js/blocks/GraphicsBlocks.js:620 +#: js/blocks/GraphicsBlocks.js:767 +#: js/blocks/GraphicsBlocks.js:1010 +#: js/blocks/GraphicsBlocks.js:1093 msgid "Value must be within -5000 to 5000 when Wrap Mode is off." msgstr "" -#: js/GraphicsBlocks.js:622 -#: js/GraphicsBlocks.js:769 -#: js/GraphicsBlocks.js:1012 -#: js/GraphicsBlocks.js:1095 +#: js/blocks/GraphicsBlocks.js:622 +#: js/blocks/GraphicsBlocks.js:769 +#: js/blocks/GraphicsBlocks.js:1012 +#: js/blocks/GraphicsBlocks.js:1095 msgid "Value must be within -20000 to 20000 when Wrap Mode is on." msgstr "" -#: js/GraphicsBlocks.js:660 +#: js/blocks/GraphicsBlocks.js:660 msgid "set heading" msgstr "" -#: js/GraphicsBlocks.js:673 +#: js/blocks/GraphicsBlocks.js:673 msgid "The Set heading block sets the heading of the turtle." msgstr "" -#: js/GraphicsBlocks.js:733 +#: js/blocks/GraphicsBlocks.js:733 msgid "The Set XY block moves the mouse to a specific position on the screen." msgstr "" -#: js/GraphicsBlocks.js:739 +#: js/blocks/GraphicsBlocks.js:739 msgid "The Set XY block moves the turtle to a specific position on the screen." msgstr "" -#: js/GraphicsBlocks.js:747 +#: js/blocks/GraphicsBlocks.js:747 msgid "set xy" msgstr "" -#: js/GraphicsBlocks.js:819 +#: js/blocks/GraphicsBlocks.js:819 msgid "The Right block turns the mouse to the right." msgstr "" -#: js/GraphicsBlocks.js:826 +#: js/blocks/GraphicsBlocks.js:826 msgid "The Right block turns the turtle to the right." msgstr "" -#: js/GraphicsBlocks.js:835 +#: js/blocks/GraphicsBlocks.js:835 msgid "right1" msgstr "" -#: js/GraphicsBlocks.js:835 +#: js/blocks/GraphicsBlocks.js:835 #: plugins/rodi.rtp:77 #: plugins/rodi.rtp:340 #: plugins/rodi.rtp:375 msgid "right" msgstr "" -#: js/GraphicsBlocks.js:899 +#: js/blocks/GraphicsBlocks.js:899 msgid "The Left block turns the mouse to the left." msgstr "" -#: js/GraphicsBlocks.js:906 +#: js/blocks/GraphicsBlocks.js:906 msgid "The Left block turns the turtle to the left." msgstr "" -#: js/GraphicsBlocks.js:915 +#: js/blocks/GraphicsBlocks.js:915 msgid "left1" msgstr "" -#: js/GraphicsBlocks.js:915 +#: js/blocks/GraphicsBlocks.js:915 #: plugins/rodi.rtp:79 #: plugins/rodi.rtp:339 #: plugins/rodi.rtp:362 msgid "left" msgstr "" -#: js/GraphicsBlocks.js:967 -#: js/temperament.js:734 -#: js/temperament.js:933 +#: js/blocks/GraphicsBlocks.js:967 +#: js/widgets/temperament.js:875 +#: js/widgets/temperament.js:1078 #: plugins/rodi.rtp:69 #: plugins/rodi.rtp:387 msgid "back" msgstr "" -#: js/GraphicsBlocks.js:976 +#: js/blocks/GraphicsBlocks.js:976 msgid "The Back block moves the mouse backward." msgstr "" -#: js/GraphicsBlocks.js:983 +#: js/blocks/GraphicsBlocks.js:983 msgid "The Back block moves the turtle backward." msgstr "" -#: js/GraphicsBlocks.js:1050 +#: js/blocks/GraphicsBlocks.js:1050 #: plugins/rodi.rtp:71 #: plugins/rodi.rtp:400 msgid "forward" msgstr "" -#: js/GraphicsBlocks.js:1059 +#: js/blocks/GraphicsBlocks.js:1059 msgid "The Forward block moves the mouse forward." msgstr "" -#: js/GraphicsBlocks.js:1066 +#: js/blocks/GraphicsBlocks.js:1066 msgid "The Forward block moves the turtle forward." msgstr "" -#: js/GraphicsBlocks.js:1154 -#: js/GraphicsBlocks.js:1172 +#: js/blocks/GraphicsBlocks.js:1154 +#: js/blocks/GraphicsBlocks.js:1172 msgid "wrap" msgstr "" -#: js/OrnamentBlocks.js:32 -msgid "staccato factor" -msgstr "" - -#: js/OrnamentBlocks.js:108 -msgid "slur factor" -msgstr "" - -#: js/OrnamentBlocks.js:217 -#: js/OrnamentBlocks.js:309 -#.TRANS: the neighbor refers to a neighboring note, e.g., D is a neighbor of C -msgid "neighbor" -msgstr "" - -#: js/OrnamentBlocks.js:293 -msgid "The Neighbor block rapidly switches between neighboring pitches." -msgstr "" - -#: js/OrnamentBlocks.js:364 -msgid "glide" -msgstr "" - -#: js/OrnamentBlocks.js:479 -#: js/OrnamentBlocks.js:643 -msgid "slur" -msgstr "" - -#: js/OrnamentBlocks.js:558 -#: js/OrnamentBlocks.js:710 -#.TRANS: play each note sharply detached from the others -msgid "staccato" -msgstr "" - -#: js/PenBlocks.js:24 +#: js/blocks/PenBlocks.js:30 msgid "purple" msgstr "" -#: js/PenBlocks.js:37 -#: js/SensorsBlocks.js:521 -#: plugins/rodi.rtp:219 -msgid "blue" -msgstr "" - -#: js/PenBlocks.js:50 -#: js/SensorsBlocks.js:577 -#: plugins/rodi.rtp:218 -msgid "green" -msgstr "" - -#: js/PenBlocks.js:63 +#: js/blocks/PenBlocks.js:80 msgid "yellow" msgstr "" -#: js/PenBlocks.js:76 +#: js/blocks/PenBlocks.js:96 #: plugins/nutrition.rtp:164 msgid "orange" msgstr "" -#: js/PenBlocks.js:89 -#: js/SensorsBlocks.js:633 -#: plugins/rodi.rtp:217 -msgid "red" -msgstr "" - -#: js/PenBlocks.js:102 +#: js/blocks/PenBlocks.js:128 msgid "white" msgstr "" -#: js/PenBlocks.js:115 +#: js/blocks/PenBlocks.js:144 msgid "black" msgstr "" -#: js/PenBlocks.js:128 +#: js/blocks/PenBlocks.js:163 msgid "begin fill" msgstr "" -#: js/PenBlocks.js:143 +#: js/blocks/PenBlocks.js:190 msgid "end fill" msgstr "" -#: js/PenBlocks.js:159 -#: js/PenBlocks.js:386 +#: js/blocks/PenBlocks.js:212 +#: js/blocks/PenBlocks.js:560 #.TRANS: set the background color msgid "background" msgstr "" -#: js/PenBlocks.js:206 -#: js/DictActions.js:71 -#: js/DictActions.js:149 -#: js/DictActions.js:186 +#: js/blocks/PenBlocks.js:274 +#: js/turtleactions/DictActions.js:71 +#: js/turtleactions/DictActions.js:138 +#: js/turtleactions/DictActions.js:170 msgid "grey" msgstr "" -#: js/PenBlocks.js:210 +#: js/blocks/PenBlocks.js:282 msgid "The Grey block returns the current pen grey value." msgstr "" -#: js/PenBlocks.js:243 -#: js/DictActions.js:69 -#: js/DictActions.js:147 -#: js/DictActions.js:185 +#: js/blocks/PenBlocks.js:340 +#: js/turtleactions/DictActions.js:69 +#: js/turtleactions/DictActions.js:136 +#: js/turtleactions/DictActions.js:169 msgid "shade" msgstr "" -#: js/PenBlocks.js:247 +#: js/blocks/PenBlocks.js:347 msgid "The Shade block returns the current pen shade value." msgstr "" -#: js/PenBlocks.js:280 -#: js/DictActions.js:67 -#: js/DictActions.js:145 -#: js/DictActions.js:184 +#: js/blocks/PenBlocks.js:405 +#: js/turtleactions/DictActions.js:67 +#: js/turtleactions/DictActions.js:134 +#: js/turtleactions/DictActions.js:168 msgid "color" msgstr "" -#: js/PenBlocks.js:285 +#: js/blocks/PenBlocks.js:415 msgid "The Color block returns the current pen color." msgstr "" -#: js/PenBlocks.js:318 -#: js/DictActions.js:73 -#: js/DictActions.js:151 -#: js/DictActions.js:187 +#: js/blocks/PenBlocks.js:470 +#: js/turtleactions/DictActions.js:73 +#: js/turtleactions/DictActions.js:140 +#: js/turtleactions/DictActions.js:171 msgid "pen size" msgstr "" -#: js/PenBlocks.js:322 +#: js/blocks/PenBlocks.js:474 msgid "The Pen size block returns the current pen size value." msgstr "" -#: js/PenBlocks.js:355 +#: js/blocks/PenBlocks.js:513 msgid "set font" msgstr "" -#: js/PenBlocks.js:358 +#: js/blocks/PenBlocks.js:518 msgid "The Set font block sets the font used by the Show block." msgstr "" -#: js/PenBlocks.js:391 +#: js/blocks/PenBlocks.js:567 msgid "The Background block sets the window background color." msgstr "" -#: js/PenBlocks.js:408 +#: js/blocks/PenBlocks.js:598 msgid "The Hollow line block creates a line with a hollow center." msgstr "" -#: js/PenBlocks.js:415 +#: js/blocks/PenBlocks.js:606 #.TRANS: draw a line logo has a hollow space down its center msgid "hollow line" msgstr "" -#: js/PenBlocks.js:462 +#: js/blocks/PenBlocks.js:675 msgid "The Fill block fills in a shape with a color." msgstr "" -#: js/PenBlocks.js:470 +#: js/blocks/PenBlocks.js:684 #.TRANS: fill in as a solid color msgid "fill" msgstr "" -#: js/PenBlocks.js:527 +#: js/blocks/PenBlocks.js:761 #.TRANS: raise up the pen so logo it does not draw when it is moved msgid "pen up" msgstr "" -#: js/PenBlocks.js:532 +#: js/blocks/PenBlocks.js:768 msgid "The Pen-up block raises the pen so that it does not draw." msgstr "" -#: js/PenBlocks.js:552 +#: js/blocks/PenBlocks.js:802 #.TRANS: put down the pen so logo it draws when it is moved msgid "pen down" msgstr "" -#: js/PenBlocks.js:557 +#: js/blocks/PenBlocks.js:810 msgid "The Pen-down block lowers the pen so that it draws." msgstr "" -#: js/PenBlocks.js:577 +#: js/blocks/PenBlocks.js:844 #.TRANS: set the width of the line drawn by the pen msgid "set pen size" msgstr "" -#: js/PenBlocks.js:583 +#: js/blocks/PenBlocks.js:854 msgid "The Set-pen-size block changes the size of the pen." msgstr "" -#: js/PenBlocks.js:623 +#: js/blocks/PenBlocks.js:913 #.TRANS: set degree of translucence of the pen color msgid "set translucency" msgstr "" -#: js/PenBlocks.js:627 +#: js/blocks/PenBlocks.js:921 msgid "The Set translucency block changes the opacity of the pen." msgstr "" -#: js/PenBlocks.js:668 +#: js/blocks/PenBlocks.js:981 msgid "set hue" msgstr "" -#: js/PenBlocks.js:672 +#: js/blocks/PenBlocks.js:989 msgid "The Set hue block changes the color of the pen." msgstr "" -#: js/PenBlocks.js:711 +#: js/blocks/PenBlocks.js:1047 msgid "set shade" msgstr "" -#: js/PenBlocks.js:717 +#: js/blocks/PenBlocks.js:1057 msgid "The Set-shade block changes the pen color from dark to light." msgstr "" -#: js/PenBlocks.js:757 +#: js/blocks/PenBlocks.js:1111 #.TRANS: set the level of vividness of the pen color msgid "set grey" msgstr "" -#: js/PenBlocks.js:761 +#: js/blocks/PenBlocks.js:1119 msgid "The Set grey block changes the vividness of the pen color." msgstr "" -#: js/PenBlocks.js:800 +#: js/blocks/PenBlocks.js:1172 msgid "set color" msgstr "" -#: js/PenBlocks.js:806 +#: js/blocks/PenBlocks.js:1182 msgid "The Set-color block changes the pen color." msgstr "" -#: js/VolumeBlocks.js:35 -msgid "synth volume" -msgstr "" - -#: js/VolumeBlocks.js:39 -msgid "The Synth volume block returns the current volume of the current synthesizer." -msgstr "" - -#: js/VolumeBlocks.js:47 -#: js/musicutils.js:730 -#: js/synthutils.js:56 -#.TRANS: musical instrument -msgid "piano" -msgstr "" - -#: js/VolumeBlocks.js:105 -msgid "master volume" -msgstr "" - -#: js/VolumeBlocks.js:109 -msgid "The Master volume block returns the master volume." -msgstr "" - -#: js/VolumeBlocks.js:355 -#: js/VolumeBlocks.js:524 -msgid "set synth volume" -msgstr "" - -#: js/VolumeBlocks.js:362 -#: js/VolumeBlocks.js:545 -msgid "synth" -msgstr "" - -#: js/VolumeBlocks.js:403 -#: js/VolumeBlocks.js:577 -#: js/VolumeBlocks.js:740 -#: js/VolumeActions.js:173 -msgid "Setting volume to 0." -msgstr "" - -#: js/VolumeBlocks.js:440 -msgid "Synth not found" -msgstr "" - -#: js/VolumeBlocks.js:494 -msgid "set drum volume" -msgstr "" - -#: js/VolumeBlocks.js:530 -msgid "The Set synth volume block will change the volume of a particular synth," -msgstr "" - -#: js/VolumeBlocks.js:532 -msgid "eg guitar violin snare drum etc." -msgstr "" - -#: js/VolumeBlocks.js:534 -msgid "The default volume is 50." -msgstr "" - -#: js/VolumeBlocks.js:536 -msgid "The range is 0 for silence to 100 for full volume." -msgstr "" - -#: js/VolumeBlocks.js:597 -msgid "set panning" -msgstr "" - -#: js/VolumeBlocks.js:603 -msgid "The Set Panning block sets the panning for all synthesizers." -msgstr "" - -#: js/VolumeBlocks.js:625 -msgid "Warning: Sound is coming out from only the left or right side." -msgstr "" - -#: js/VolumeBlocks.js:647 -#: js/VolumeBlocks.js:695 -msgid "set master volume" -msgstr "" - -#: js/VolumeBlocks.js:653 -msgid "The Set master volume block sets the volume for all synthesizers." -msgstr "" - -#: js/VolumeBlocks.js:784 -msgid "The Set relative volume block changes the volume of the contained notes." -msgstr "" - -#: js/VolumeBlocks.js:791 -msgid "set relative volume" -msgstr "" - -#: js/VolumeBlocks.js:857 -msgid "decrescendo" -msgstr "" - -#: js/VolumeBlocks.js:921 -msgid "crescendo" -msgstr "" - -#: js/ToneBlocks.js:34 -msgid "oscillator" -msgstr "" - -#: js/ToneBlocks.js:44 -#: js/timbre.js:1562 -#.TRANS: Partials refers to the number of sine waves combined into the sound. -msgid "partials" -msgstr "" - -#: js/ToneBlocks.js:76 -msgid "You are adding multiple oscillator blocks." -msgstr "" - -#: js/ToneBlocks.js:144 -#: js/timbre.js:1225 -#.TRANS: a duo synthesizer combines a synth with a sequencer -msgid "duo synth" -msgstr "" - -#: js/ToneBlocks.js:149 -msgid "The Duo synth block is a duo-frequency modulator used to define a timbre." -msgstr "" - -#: js/ToneBlocks.js:157 -#: js/timbre.js:1476 -msgid "vibrato rate" -msgstr "" - -#: js/ToneBlocks.js:157 -msgid "vibrato intensity" -msgstr "" - -#: js/ToneBlocks.js:185 -#: js/timbre.js:1221 -#.TRANS: AM (amplitude modulation) synthesizer -msgid "AM synth" -msgstr "" - -#: js/ToneBlocks.js:189 -msgid "The AM synth block is an amplitude modulator used to define a timbre." -msgstr "" - -#: js/ToneBlocks.js:224 -#: js/timbre.js:1223 -#.TRANS: FM (frequency modulation) synthesizer -msgid "FM synth" -msgstr "" - -#: js/ToneBlocks.js:228 -msgid "The FM synth block is a frequency modulator used to define a timbre." +#: js/blocks/PitchBlocks.js:141 +#.TRANS: musical transposition (adjustment of pitch up or down) +msgid "transposition" msgstr "" -#: js/ToneBlocks.js:262 -msgid "partial" +#: js/blocks/PitchBlocks.js:168 +#.TRANS: step down one note in current musical scale +msgid "scalar step down" msgstr "" -#: js/ToneBlocks.js:265 -msgid "The Partial block is used to specify a weight for a specific partial harmonic." +#: js/blocks/PitchBlocks.js:172 +msgid "The Scalar step down block returns the number of semi-tones down to the previous note in the current key and mode." msgstr "" -#: js/ToneBlocks.js:284 -#.TRANS: partials are weighted components in a harmonic series -msgid "Partial weight must be between 0 and 1." +#: js/blocks/PitchBlocks.js:190 +#.TRANS: step up one note in current musical scale +msgid "scalar step up" msgstr "" -#: js/ToneBlocks.js:297 -#.TRANS: partials are weighted components in a harmonic series -msgid "Partial block should be used inside of a Weighted-partials block." +#: js/blocks/PitchBlocks.js:194 +msgid "The Scalar step up block returns the number of semi-tones up to the next note in the current key and mode." msgstr "" -#: js/ToneBlocks.js:325 -#.TRANS: partials are weighted components in a harmonic series -msgid "weighted partials" +#: js/blocks/PitchBlocks.js:212 +#.TRANS: the change measured in half-steps between the current pitch and the previous pitch +msgid "change in pitch" msgstr "" -#: js/ToneBlocks.js:383 -msgid "The Harmonic block will add harmonics to the contained notes." +#: js/blocks/PitchBlocks.js:216 +msgid "The Change in pitch block is the difference (in half steps) between the current pitch being played and the previous pitch played." msgstr "" -#: js/ToneBlocks.js:390 -#.TRANS: A harmonic is an overtone. -msgid "harmonic" +#: js/blocks/PitchBlocks.js:243 +#.TRANS: the change measured in scale-steps between the current pitch and the previous pitch +msgid "scalar change in pitch" msgstr "" -#: js/ToneBlocks.js:431 -msgid "The Distortion block adds distortion to the pitch." +#: js/blocks/PitchBlocks.js:250 +#: js/blocks/PitchBlocks.js:432 +#: js/blocks/PitchBlocks.js:1667 +#: js/turtleactions/DictActions.js:89 +#: js/widgets/temperament.js:610 +#: js/widgets/temperament.js:614 +#: js/widgets/temperament.js:855 +#.TRANS: convert current note to piano key (1-88) +#.TRANS: a mapping of pitch to the 88 piano keys +msgid "pitch number" msgstr "" -#: js/ToneBlocks.js:438 -#: js/timbre.js:2100 -#.TRANS: distortion is an alteration in the sound -msgid "distortion" +#: js/blocks/PitchBlocks.js:256 +msgid "The Pitch number block is the value of the pitch of the note currently being played." msgstr "" -#: js/ToneBlocks.js:487 -msgid "The Tremolo block adds a wavering effect." +#: js/blocks/PitchBlocks.js:329 +#: js/blocks/PitchBlocks.js:433 +#.TRANS: the current pitch expressed in Hertz +msgid "pitch in hertz" msgstr "" -#: js/ToneBlocks.js:495 -#: js/timbre.js:2092 -#.TRANS: a wavering effect in a musical tone -msgid "tremolo" +#: js/blocks/PitchBlocks.js:334 +msgid "The Pitch in Hertz block is the value in Hertz of the pitch of the note currently being played." msgstr "" -#: js/ToneBlocks.js:500 -#: js/ToneBlocks.js:569 -#: js/ToneBlocks.js:630 -#: js/ToneBlocks.js:689 -#: js/timbre.js:2134 -#: js/timbre.js:2222 -#: js/timbre.js:2317 -#: js/timbre.js:2419 -#.TRANS: rate at which tremolo wavers -msgid "rate" +#: js/blocks/PitchBlocks.js:367 +#: js/turtleactions/DictActions.js:87 +msgid "current pitch" msgstr "" -#: js/ToneBlocks.js:502 -#: js/ToneBlocks.js:630 -#: js/timbre.js:2137 -#: js/timbre.js:2328 -#.TRANS: amplitude of tremolo waver -msgid "depth" +#: js/blocks/PitchBlocks.js:373 +msgid "The Current Pitch block is used with the Pitch Converter block. In the example above, current pitch, sol 4, is displayed as 392 hertz." msgstr "" -#: js/ToneBlocks.js:559 -msgid "The Phaser block adds a sweeping sound." +#: js/blocks/PitchBlocks.js:410 +msgid "This block converts the pitch value of the last note played into different formats such as hertz, letter name, pitch number, et al." msgstr "" -#: js/ToneBlocks.js:566 -#: js/timbre.js:2098 -#.TRANS: alter the phase of the sound -msgid "phaser" +#: js/blocks/PitchBlocks.js:434 +msgid "alphabet" msgstr "" -#: js/ToneBlocks.js:569 -#: js/timbre.js:2422 -msgid "octaves" +#: js/blocks/PitchBlocks.js:436 +#.TRANS: Translate as "alphabet class" +msgid "letter class" msgstr "" -#: js/ToneBlocks.js:569 -#: js/timbre.js:2425 -msgid "base frequency" +#: js/blocks/PitchBlocks.js:437 +msgid "solfege class" msgstr "" -#: js/ToneBlocks.js:619 -msgid "The Chorus block adds a chorus effect." +#: js/blocks/PitchBlocks.js:438 +msgid "staff y" msgstr "" -#: js/ToneBlocks.js:627 -#: js/timbre.js:2096 -#.TRANS: musical effect to simulate a choral sound -msgid "chorus" +#: js/blocks/PitchBlocks.js:439 +msgid "solfege syllable" msgstr "" -#: js/ToneBlocks.js:630 -msgid "delay" +#: js/blocks/PitchBlocks.js:440 +msgid "pitch class" msgstr "" -#: js/ToneBlocks.js:678 -msgid "The Vibrato block adds a rapid, slight variation in pitch." +#: js/blocks/PitchBlocks.js:441 +msgid "scalar class" msgstr "" -#: js/ToneBlocks.js:686 -#: js/timbre.js:2094 -#.TRANS: a rapid, slight variation in pitch -msgid "vibrato" +#: js/blocks/PitchBlocks.js:443 +msgid "nth degree" msgstr "" -#: js/ToneBlocks.js:689 -#: js/timbre.js:2221 -msgid "intensity" +#: js/blocks/PitchBlocks.js:444 +msgid "pitch to shade" msgstr "" -#: js/ToneBlocks.js:733 -#.TRANS: select synthesizer -msgid "set synth" +#: js/blocks/PitchBlocks.js:445 +msgid "pitch to color" msgstr "" -#: js/ToneBlocks.js:804 -msgid "synth name" +#: js/blocks/PitchBlocks.js:629 +#: js/widgets/musickeyboard.js:735 +#.TRANS: MIDI is a technical standard for electronic music +msgid "MIDI" msgstr "" -#: js/ToneBlocks.js:842 -msgid "set default instrument" +#: js/blocks/PitchBlocks.js:642 +#.TRANS: set an offset associated with the numeric piano keyboard mapping +msgid "set pitch number offset" msgstr "" -#: js/ToneBlocks.js:895 -#: js/ToneBlocks.js:943 -#.TRANS: set the characteristics of a custom instrument -msgid "set instrument" +#: js/blocks/PitchBlocks.js:645 +msgid "The Set pitch number offset block is used to set the offset for mapping pitch numbers to pitch and octave." msgstr "" -#: js/ToneBlocks.js:898 -#: js/ToneBlocks.js:926 -#: js/ToneBlocks.js:932 -msgid "The Set instrument block selects a voice for the synthesizer," +#: js/blocks/PitchBlocks.js:679 +#.TRANS: convert piano key number (1-88) to pitch +msgid "number to pitch" msgstr "" -#: js/ToneBlocks.js:900 -#: js/ToneBlocks.js:934 -msgid "eg guitar piano violin or cello." +#: js/blocks/PitchBlocks.js:682 +msgid "The Number to pitch block will convert a pitch number to a pich name." msgstr "" -#: js/ToneBlocks.js:1015 -msgid "Import a sound file to use as an instrument and set its pitch center." +#: js/blocks/PitchBlocks.js:715 +#.TRANS: convert piano key number (1-88) to octave +msgid "number to octave" msgstr "" -#: js/ToneBlocks.js:1110 -msgid "Upload a sound file to connect with the sample block." +#: js/blocks/PitchBlocks.js:717 +msgid "The Number to octave block will convert a pitch number to an octave." msgstr "" -#: js/MeterBlocks.js:34 -#.TRANS: musical meter (time signature), e.g., 4:4 -msgid "current meter" +#: js/blocks/PitchBlocks.js:726 +msgid "y to pitch" msgstr "" -#: js/MeterBlocks.js:85 -#.TRANS: number of beats per minute -msgid "beat factor" +#: js/blocks/PitchBlocks.js:729 +msgid "Y to pitch block will convert a staff y position to corresponding pitch notation." msgstr "" -#: js/MeterBlocks.js:161 -msgid "The Beats per minute block returns the current beats per minute." +#: js/blocks/PitchBlocks.js:841 +msgid "accidental selector" msgstr "" -#: js/MeterBlocks.js:169 -#: js/status.js:152 -#.TRANS: number of beats played per minute -msgid "beats per minute2" +#: js/blocks/PitchBlocks.js:844 +msgid "The Accidental selector block is used to choose between double-sharp, sharp, natural, flat, and double-flat." msgstr "" -#: js/MeterBlocks.js:169 -#: js/MeterBlocks.js:1056 -#: js/MeterBlocks.js:1133 -#: js/MeterBlocks.js:1211 -#.TRANS: sets tempo by defining a beat and beats per minute -msgid "beats per minute" +#: js/blocks/PitchBlocks.js:858 +msgid "Pitch can be specified in terms of ni dha pa ma ga re sa." msgstr "" -#: js/MeterBlocks.js:233 -#.TRANS: count of current musical measure in meter -msgid "measure count" +#: js/blocks/PitchBlocks.js:872 +msgid "Pitch can be specified in terms of C D E F G A B." msgstr "" -#: js/MeterBlocks.js:241 -msgid "The Measure count block returns the current measure." +#: js/blocks/PitchBlocks.js:884 +msgid "solfege" msgstr "" -#: js/MeterBlocks.js:290 -#.TRANS: count of current beat in the meter -msgid "beat count" +#: js/blocks/PitchBlocks.js:887 +msgid "Pitch can be specified in terms of do re mi fa sol la ti." msgstr "" -#: js/MeterBlocks.js:300 -#: js/MeterBlocks.js:311 -#: js/MeterBlocks.js:565 -#: js/MeterBlocks.js:576 -msgid "The Beat count block is the number of the current beat," +#: js/blocks/PitchBlocks.js:922 +msgid "The Invert block rotates any contained notes around a target note." msgstr "" -#: js/MeterBlocks.js:313 -#: js/MeterBlocks.js:578 -msgid "eg 1, 2, 3, or 4." +#: js/blocks/PitchBlocks.js:929 +#.TRANS: pitch inversion rotates a pitch around another pitch +msgid "invert" msgstr "" -#: js/MeterBlocks.js:368 -#.TRANS: count the number of notes -msgid "sum note values" +#: js/blocks/PitchBlocks.js:968 +#.TRANS: pitch inversion rotates a pitch around another pitch (odd number) +msgid "invert (odd)" msgstr "" -#: js/MeterBlocks.js:376 -#: js/MeterBlocks.js:440 -msgid "The Note counter block can be used to count the number of contained notes." +#: js/blocks/PitchBlocks.js:1001 +#.TRANS: pitch inversion rotates a pitch around another pitch (even number) +msgid "invert (even)" msgstr "" -#: js/MeterBlocks.js:432 -#.TRANS: count the number of notes -msgid "note counter" +#: js/blocks/PitchBlocks.js:1022 +#.TRANS: register is the octave of the current pitch +msgid "register" msgstr "" -#: js/MeterBlocks.js:496 -#.TRANS: number of whole notes that have been played -msgid "whole notes played" +#: js/blocks/PitchBlocks.js:1026 +msgid "The Register block provides an easy way to modify the register (octave) of the notes that follow it." msgstr "" -#: js/MeterBlocks.js:505 -msgid "The Whole notes played block returns the total number of whole notes played." +#: js/blocks/PitchBlocks.js:1047 +#.TRANS: cents are units used to specify the ratio between pitches. There are 100 cents between successive notes. +msgid "50 cents" msgstr "" -#: js/MeterBlocks.js:555 -#: js/DictActions.js:83 -#.TRANS: number of notes that have been played -msgid "notes played" +#: js/blocks/PitchBlocks.js:1102 +msgid "The Semi-tone transposition block will shift the pitches contained inside Note blocks up (or down) by half steps." msgstr "" -#: js/MeterBlocks.js:653 -msgid "The No clock block decouples the notes from the master clock." +#: js/blocks/PitchBlocks.js:1104 +msgid "In the example shown above, sol is shifted up to sol#." msgstr "" -#: js/MeterBlocks.js:661 -#.TRANS: don't lock notes to master clock -msgid "no clock" +#: js/blocks/PitchBlocks.js:1110 +#.TRANS: adjust the amount of shift (up or down) of a pitch +msgid "semi-tone transpose" msgstr "" -#: js/MeterBlocks.js:700 -msgid "on weak beat do" +#: js/blocks/PitchBlocks.js:1143 +msgid "The Transpose by Ratio block will shift the pitches contained inside Note blocks up (or down) by a ratio" msgstr "" -#: js/MeterBlocks.js:705 -msgid "The On-weak-beat block lets you specify actions to take on weak (off) beats." +#: js/blocks/PitchBlocks.js:1149 +#.TRANS: adjust the amount of shift (up or down) of a pitch +msgid "transpose by ratio" msgstr "" -#: js/MeterBlocks.js:750 -msgid "on strong beat" +#: js/blocks/PitchBlocks.js:1232 +#.TRANS: down sixth means the note is five scale degrees below current note +msgid "down sixth" msgstr "" -#: js/MeterBlocks.js:758 -msgid "The On-strong-beat block lets you specify actions to take on specified beats." +#: js/blocks/PitchBlocks.js:1251 +#.TRANS: down third means the note is two scale degrees below current note +msgid "down third" msgstr "" -#: js/MeterBlocks.js:769 -msgid "beat" +#: js/blocks/PitchBlocks.js:1270 +#.TRANS: seventh means the note is the six scale degrees above current note +msgid "seventh" msgstr "" -#: js/MeterBlocks.js:813 -msgid "on every beat do" +#: js/blocks/PitchBlocks.js:1289 +#.TRANS: sixth means the note is the five scale degrees above current note +msgid "sixth" msgstr "" -#: js/MeterBlocks.js:821 -msgid "The On-every-beat block lets you specify actions to take on every beat." +#: js/blocks/PitchBlocks.js:1308 +#.TRANS: fifth means the note is the four scale degrees above current note +msgid "fifth" msgstr "" -#: js/MeterBlocks.js:874 -msgid "on every note do" +#: js/blocks/PitchBlocks.js:1328 +#.TRANS: fourth means the note is three scale degrees above current note +msgid "fourth" msgstr "" -#: js/MeterBlocks.js:882 -msgid "The On-every-note block lets you specify actions to take on every note." +#: js/blocks/PitchBlocks.js:1347 +#.TRANS: third means the note is two scale degrees above current note +msgid "third" msgstr "" -#: js/MeterBlocks.js:928 -#: js/MeterBlocks.js:999 -#.TRANS: sets tempo by defining a beat and beats per minute -msgid "master beats per minute" +#: js/blocks/PitchBlocks.js:1366 +#.TRANS: second means the note is one scale degree above current note +msgid "second" msgstr "" -#: js/MeterBlocks.js:952 -#: js/MeterBlocks.js:1078 -#: js/MeterBlocks.js:1135 -msgid "bpm" +#: js/blocks/PitchBlocks.js:1407 +msgid "The Scalar transposition block will shift the pitches contained inside Note blocks up (or down) the scale." msgstr "" -#: js/MeterBlocks.js:952 -#: js/MeterBlocks.js:1078 -#: js/MeterBlocks.js:1135 -msgid "beat value" +#: js/blocks/PitchBlocks.js:1409 +msgid "In the example shown above, sol is shifted up to la." msgstr "" -#: js/MeterBlocks.js:1024 -#: js/MeterBlocks.js:1167 -#: js/MeterBlocks.js:1241 -msgid "Beats per minute must be > 30." +#: js/blocks/PitchBlocks.js:1416 +#.TRANS: adjust the amount of shift (up or down) of a pitch by musical scale (scalar) steps +msgid "scalar transpose" msgstr "" -#: js/MeterBlocks.js:1027 -#: js/MeterBlocks.js:1170 -#: js/MeterBlocks.js:1244 -msgid "Maximum beats per minute is 1000." +#: js/blocks/PitchBlocks.js:1451 +msgid "The Accidental block is used to create sharps and flats" msgstr "" -#: js/MeterBlocks.js:1068 -msgid "The Beats per minute block sets the number of 1/4 notes per minute." +#: js/blocks/PitchBlocks.js:1458 +#.TRANS: An accidental is a modification to a pitch, e.g., sharp or flat. +msgid "accidental override" msgstr "" -#: js/MeterBlocks.js:1279 -#.TRANS: anacrusis -msgid "pickup" +#: js/blocks/PitchBlocks.js:1581 +msgid "The Hertz block (in combination with a Number block) will play a sound at the specified frequency." msgstr "" -#: js/MeterBlocks.js:1367 -msgid "number of beats" +#: js/blocks/PitchBlocks.js:1671 +msgid "The Pitch Number block will play a pitch associated by its number, e.g. 0 for C and 7 for G." msgstr "" -#: js/DictBlocks.js:77 -msgid "show dictionary" +#: js/blocks/PitchBlocks.js:1703 +#: js/blocks/PitchBlocks.js:1745 +#.TRANS: a numeric mapping of the notes in an octave based on the musical mode +#.TRANS: a numeric mapping of the notes in an octave based on the musical mode +msgid "nth modal pitch" msgstr "" -#: js/DictBlocks.js:129 -msgid "The Dictionary block returns a dictionary." +#: js/blocks/PitchBlocks.js:1706 +msgid "n^th Modal Pitch takes the pattern of pitches in semitones for a mode and makes each point a degree of the mode," msgstr "" -#: js/DictBlocks.js:197 -#: js/DictBlocks.js:339 -msgid "The Get-dict block returns a value in the dictionary for a specified key." +#: js/blocks/PitchBlocks.js:1708 +msgid "starting from 1 and regardless of tonal framework (i.e. not always 8 notes in the octave)" msgstr "" -#: js/DictBlocks.js:212 -#: js/DictBlocks.js:354 -#.TRANS: retrieve a value from the dictionary with a given key -msgid "get value" +#: js/blocks/PitchBlocks.js:1749 +msgid "N^th Modal Pitch takes a number as an input as the n^th degree for the given mode. 0 is the first position, 1 is the second, -1 is the note before the first etc." msgstr "" -#: js/DictBlocks.js:215 -#: js/DictBlocks.js:216 -#: js/DictBlocks.js:289 -#: js/DictBlocks.js:290 -#: js/DictBlocks.js:357 -#: js/DictBlocks.js:430 -#: js/DictBlocks.js:431 -msgid "key2" +#: js/blocks/PitchBlocks.js:1751 +msgid "The pitches change according to the mode specified without any need for respellings." msgstr "" -#: js/DictBlocks.js:271 -#: js/DictBlocks.js:411 -msgid "The Set-dict block sets a value in the dictionary for a specified key." +#: js/blocks/PitchBlocks.js:1790 +msgid "Scale Degree is a common convention in music. Scale Degree offers seven possible positions in the scale (1-7) and can be modified via accidentals." msgstr "" -#: js/DictBlocks.js:286 -#: js/DictBlocks.js:427 -#.TRANS: set a value in the dictionary for a given key -msgid "set value" +#: js/blocks/PitchBlocks.js:1792 +msgid "Scale Degree 1 is always the first pitch in a given scale, regardless of octave." msgstr "" -#: js/ExtrasBlocks.js:33 -msgid "fraction" +#: js/blocks/PitchBlocks.js:1814 +#.TRANS: step some number of notes in current musical scale +msgid "scalar step" msgstr "" -#: js/ExtrasBlocks.js:36 -msgid "Convert a float to a fraction" +#: js/blocks/PitchBlocks.js:1819 +msgid "The Scalar Step block (in combination with a Number block) will play the next pitch in a scale," msgstr "" -#: js/ExtrasBlocks.js:93 -msgid "save as ABC" +#: js/blocks/PitchBlocks.js:1821 +msgid "eg if the last note played was sol, Scalar Step 1 will play la." msgstr "" -#: js/ExtrasBlocks.js:96 -#: js/ExtrasBlocks.js:132 -#: js/ExtrasBlocks.js:168 -msgid "title" +#: js/blocks/PitchBlocks.js:1857 +msgid "The Pitch block specifies the pitch name and octave of a note that together determine the frequency of the note." msgstr "" -#: js/ExtrasBlocks.js:129 -msgid "save as Lilypond" +#: js/blocks/ProgramBlocks.js:33 +msgid "The Load-heap-from-app block loads the heap from a web page." msgstr "" -#: js/ExtrasBlocks.js:165 -msgid "save as SVG" +#: js/blocks/ProgramBlocks.js:44 +#.TRANS: load the heap contents from a URL +msgid "load heap from App" msgstr "" -#: js/ExtrasBlocks.js:216 -msgid "no background" +#: js/blocks/ProgramBlocks.js:95 +msgid "Error parsing JSON data:" msgstr "" -#: js/ExtrasBlocks.js:219 -msgid "The No background block eliminates the background from the saved SVG output." +#: js/blocks/ProgramBlocks.js:100 +msgid "404: Page not found" msgstr "" -#: js/ExtrasBlocks.js:247 -msgid "show blocks" +#: js/blocks/ProgramBlocks.js:133 +msgid "The Save-heap-to-app block saves the heap to a web page." msgstr "" -#: js/ExtrasBlocks.js:249 -msgid "The Show blocks block shows the blocks." +#: js/blocks/ProgramBlocks.js:144 +#.TRANS: save the heap contents to a URL +msgid "save heap to App" msgstr "" -#: js/ExtrasBlocks.js:274 -msgid "hide blocks" +#: js/blocks/ProgramBlocks.js:189 +msgid "Cannot find a valid heap for" msgstr "" -#: js/ExtrasBlocks.js:276 -msgid "The Hide blocks block hides the blocks." +#: js/blocks/ProgramBlocks.js:206 +msgid "The Load-heap block loads the heap from a file." msgstr "" -#: js/ExtrasBlocks.js:305 -#: js/ExtrasBlocks.js:335 -msgid "The Space block is used to add space between blocks." +#: js/blocks/ProgramBlocks.js:217 +#.TRANS: load the heap from a file +msgid "load heap" msgstr "" -#: js/ExtrasBlocks.js:373 -msgid "wait" +#: js/blocks/ProgramBlocks.js:270 +msgid "The file you selected does not contain a valid heap." msgstr "" -#: js/ExtrasBlocks.js:376 -msgid "The Wait block pauses the program for a specified number of seconds." +#: js/blocks/ProgramBlocks.js:275 +msgid "The loadHeap block needs a loadFile block." msgstr "" -#: js/ExtrasBlocks.js:430 -#: plugins/facebook.rtp:30 -msgid "comment" +#: js/blocks/ProgramBlocks.js:291 +msgid "The Set-heap block loads the heap." msgstr "" -#: js/ExtrasBlocks.js:466 -msgid "print" +#: js/blocks/ProgramBlocks.js:340 +msgid "The block you selected does not contain a valid heap." msgstr "" -#: js/ExtrasBlocks.js:473 -msgid "The Print block displays text at the top of the screen." +#: js/blocks/ProgramBlocks.js:343 +msgid "The Set heap block needs a heap." msgstr "" -#: js/ExtrasBlocks.js:579 -msgid "display grid" +#: js/blocks/ProgramBlocks.js:360 +msgid "The Load-dictionary block loads a dictionary from a file." msgstr "" -#: js/ExtrasBlocks.js:584 -msgid "The Display Grid Block changes the grid type" +#: js/blocks/ProgramBlocks.js:372 +#.TRANS: load a dictionary from a file +msgid "load dictionary" msgstr "" -#: js/ExtrasBlocks.js:686 -#: js/ExtrasBlocks.js:705 -#: js/ExtrasBlocks.js:728 -#: js/ExtrasBlocks.js:751 -#: js/ExtrasBlocks.js:769 -#: js/ExtrasBlocks.js:788 -#: js/ExtrasBlocks.js:807 -#: js/ExtrasBlocks.js:826 -msgid "unknown" +#: js/blocks/ProgramBlocks.js:390 +#: js/blocks/ProgramBlocks.js:658 +#: js/blocks/ToneBlocks.js:1025 +msgid "file" msgstr "" -#: js/SensorsBlocks.js:36 -msgid "The Input block prompts for keyboard input." +#: js/blocks/ProgramBlocks.js:444 +msgid "The file you selected does not contain a valid dictionary." msgstr "" -#: js/SensorsBlocks.js:46 -msgid "input" +#: js/blocks/ProgramBlocks.js:449 +msgid "The load dictionary block needs a load file block." msgstr "" -#: js/SensorsBlocks.js:64 -msgid "Input a value" +#: js/blocks/ProgramBlocks.js:466 +msgid "The Set-dictionary block loads a dictionary." msgstr "" -#: js/SensorsBlocks.js:126 -msgid "input value" +#: js/blocks/ProgramBlocks.js:477 +#.TRANS: load a dictionary from a JSON +msgid "set dictionary" msgstr "" -#: js/SensorsBlocks.js:131 -msgid "The Input-value block stores the input." +#: js/blocks/ProgramBlocks.js:546 +msgid "The block you selected does not contain a valid dictionary." msgstr "" -#: js/SensorsBlocks.js:238 -msgid "loudness" +#: js/blocks/ProgramBlocks.js:550 +msgid "The set dictionary block needs a dictionary." msgstr "" -#: js/SensorsBlocks.js:245 -msgid "The Loudness block returns the volume detected by the microphone." +#: js/blocks/ProgramBlocks.js:567 +msgid "The Save-heap block saves the heap to a file." msgstr "" -#: js/SensorsBlocks.js:300 -msgid "click" +#: js/blocks/ProgramBlocks.js:578 +#.TRANS: save the heap to a file +msgid "save heap" msgstr "" -#: js/SensorsBlocks.js:306 -msgid "The Click block triggers an event if a mouse has been clicked." +#: js/blocks/ProgramBlocks.js:629 +msgid "The Save-dictionary block saves a dictionary to a file." msgstr "" -#: js/SensorsBlocks.js:313 -msgid "The Click block triggers an event if a turtle has been clicked." +#: js/blocks/ProgramBlocks.js:640 +#.TRANS: save a dictionary to a file +msgid "save dictionary" msgstr "" -#: js/SensorsBlocks.js:342 -msgid "cursor over" +#: js/blocks/ProgramBlocks.js:720 +msgid "The Open palette block opens a palette." msgstr "" -#: js/SensorsBlocks.js:387 -msgid "cursor out" +#: js/blocks/ProgramBlocks.js:727 +msgid "open palette" msgstr "" -#: js/SensorsBlocks.js:433 -msgid "cursor button down" +#: js/blocks/ProgramBlocks.js:785 +msgid "The Delete block block removes a block." msgstr "" -#: js/SensorsBlocks.js:477 -msgid "cursor button up" +#: js/blocks/ProgramBlocks.js:797 +#.TRANS: Move this block to the trash. +msgid "delete block" msgstr "" -#: js/SensorsBlocks.js:638 -msgid "The Get red block returns the red component of the pixel under the mouse." +#: js/blocks/ProgramBlocks.js:861 +msgid "The Move block block moves a block." msgstr "" -#: js/SensorsBlocks.js:644 -msgid "The Get red block returns the red component of the pixel under the turtle." +#: js/blocks/ProgramBlocks.js:869 +#.TRANS: Move the position of a block on the screen. +msgid "move block" msgstr "" -#: js/SensorsBlocks.js:685 -#: plugins/rodi.rtp:216 -msgid "pixel color" +#: js/blocks/ProgramBlocks.js:881 +#: js/blocks/ProgramBlocks.js:1048 +msgid "block number" msgstr "" -#: js/SensorsBlocks.js:690 -msgid "The Get pixel block returns the color of the pixel under the mouse." +#: js/blocks/ProgramBlocks.js:935 +#.TRANS: Run program beginning at this block. +msgid "run block" msgstr "" -#: js/SensorsBlocks.js:696 -msgid "The Get pixel block returns the color of the pixel under the turtle." +#: js/blocks/ProgramBlocks.js:1025 +msgid "The Dock block block connections two blocks." msgstr "" -#: js/SensorsBlocks.js:758 -msgid "time" +#: js/blocks/ProgramBlocks.js:1036 +#.TRANS: We can connect a block to another block. +msgid "connect blocks" msgstr "" -#: js/SensorsBlocks.js:804 -msgid "cursor y" +#: js/blocks/ProgramBlocks.js:1048 +msgid "target block" msgstr "" -#: js/SensorsBlocks.js:809 -msgid "The Cursor Y block returns the vertical position of the mouse." +#: js/blocks/ProgramBlocks.js:1048 +msgid "connection number" msgstr "" -#: js/SensorsBlocks.js:845 -msgid "cursor x" +#: js/blocks/ProgramBlocks.js:1140 +msgid "The Make block block creates a new block." msgstr "" -#: js/SensorsBlocks.js:850 -msgid "The Cursor X block returns the horizontal position of the mouse." +#: js/blocks/ProgramBlocks.js:1152 +#.TRANS: Create a new block +msgid "make block" msgstr "" -#: js/SensorsBlocks.js:886 -msgid "mouse button" +#: js/blocks/ProgramBlocks.js:1285 +msgid "Cannot find block" msgstr "" -#: js/SensorsBlocks.js:888 -msgid "The Mouse-button block returns True if the mouse button is pressed." +#: js/blocks/ProgramBlocks.js:1304 +#: js/blocks/ProgramBlocks.js:1313 +msgid "Warning: block argument type mismatch" msgstr "" -#: js/SensorsBlocks.js:934 -msgid "to ASCII" +#: js/blocks/ProgramBlocks.js:1347 +msgid "The Open project block is used to open a project from a web page." msgstr "" -#: js/SensorsBlocks.js:938 -msgid "The To ASCII block converts numbers to letters." +#: js/blocks/ProgramBlocks.js:1357 +msgid "open project" msgstr "" -#: js/SensorsBlocks.js:1005 -msgid "The Keyboard block returns computer keyboard input." +#: js/blocks/ProgramBlocks.js:1410 +msgid "Please enter a valid URL." msgstr "" -#: js/IntervalsActions.js:216 -msgid "Adding missing pitch number 0." +#: js/blocks/ToneBlocks.js:34 +msgid "oscillator" msgstr "" -#: js/IntervalsActions.js:224 -msgid "Ignoring pitch numbers less than zero or greater than eleven." +#: js/blocks/ToneBlocks.js:42 +#: js/blocks/WidgetBlocks.js:179 +#: js/widgets/timbre.js:1558 +#: js/widgets/timbre.js:1808 +#.TRANS: there are different types (sine, triangle, square...) of oscillators. +#.TRANS: type of filter, e.g., lowpass, highpass, etc. +msgid "type" msgstr "" -#: js/IntervalsActions.js:230 -msgid "Ignoring duplicate pitch numbers." +#: js/blocks/ToneBlocks.js:44 +#: js/widgets/timbre.js:1562 +#.TRANS: Partials refers to the number of sine waves combined into the sound. +msgid "partials" msgstr "" -#: js/PitchActions.js:88 -msgid "The Scalar Step Block must be used inside of a Note Block." +#: js/blocks/ToneBlocks.js:76 +msgid "You are adding multiple oscillator blocks." msgstr "" -#: js/PitchActions.js:107 -msgid "The Scalar Step Block must be preceded by a Pitch Block." +#: js/blocks/ToneBlocks.js:144 +#: js/widgets/timbre.js:1225 +#.TRANS: a duo synthesizer combines a synth with a sequencer +msgid "duo synth" msgstr "" -#: js/DrumActions.js:231 -msgid "Noise Block: Did you mean to use a Note block?" +#: js/blocks/ToneBlocks.js:149 +msgid "The Duo synth block is a duo-frequency modulator used to define a timbre." msgstr "" -#: js/MeterActions.js:101 -#: js/MeterActions.js:139 -msgid "beats per minute must be greater than" +#: js/blocks/ToneBlocks.js:157 +#: js/widgets/timbre.js:1476 +msgid "vibrato rate" msgstr "" -#: js/MeterActions.js:111 -#: js/MeterActions.js:149 -msgid "maximum" +#: js/blocks/ToneBlocks.js:157 +msgid "vibrato intensity" msgstr "" -#: js/MeterActions.js:117 -#: js/MeterActions.js:155 -msgid "beats per minute is" +#: js/blocks/ToneBlocks.js:185 +#: js/widgets/timbre.js:1221 +#.TRANS: AM (amplitude modulation) synthesizer +msgid "AM synth" msgstr "" -#: js/ToneActions.js:134 -msgid "Vibrato intensity must be between 1 and 100." +#: js/blocks/ToneBlocks.js:189 +msgid "The AM synth block is an amplitude modulator used to define a timbre." msgstr "" -#: js/ToneActions.js:139 -msgid "Vibrato rate must be greater than 0." +#: js/blocks/ToneBlocks.js:224 +#: js/widgets/timbre.js:1223 +#.TRANS: FM (frequency modulation) synthesizer +msgid "FM synth" msgstr "" -#: js/ToneActions.js:192 -#: js/ToneActions.js:265 -#.TRANS: Depth is the intesity of the tremolo or chorus effect. -msgid "Depth is out of range." +#: js/blocks/ToneBlocks.js:228 +msgid "The FM synth block is a frequency modulator used to define a timbre." msgstr "" -#: js/ToneActions.js:301 -msgid "Distortion must be from 0 to 100." +#: js/blocks/ToneBlocks.js:262 +msgid "partial" msgstr "" -#: js/ToneActions.js:332 -#.TRANS: partials components in a harmonic series -msgid "Partial must be greater than or equal to 0." +#: js/blocks/ToneBlocks.js:265 +msgid "The Partial block is used to specify a weight for a specific partial harmonic." msgstr "" -#: js/ToneActions.js:378 -#: js/ToneActions.js:417 -#: js/ToneActions.js:456 -#: js/timbre.js:782 -msgid "Unable to use synth due to existing oscillator" +#: js/blocks/ToneBlocks.js:284 +#.TRANS: partials are weighted components in a harmonic series +msgid "Partial weight must be between 0 and 1." msgstr "" -#: js/ToneActions.js:388 -#: js/ToneActions.js:427 -msgid "The input cannot be negative." +#: js/blocks/ToneBlocks.js:297 +#.TRANS: partials are weighted components in a harmonic series +msgid "Partial block should be used inside of a Weighted-partials block." msgstr "" -#: js/DictActions.js:75 -#: js/DictActions.js:153 -#: js/DictActions.js:188 -msgid "font" +#: js/blocks/ToneBlocks.js:325 +#.TRANS: partials are weighted components in a harmonic series +msgid "weighted partials" msgstr "" -#: js/musicutils.js:363 -#: js/musicutils.js:471 -#: js/pitchdrummatrix.js:151 -#: js/musickeyboard.js:2563 -msgid "rest" +#: js/blocks/ToneBlocks.js:383 +msgid "The Harmonic block will add harmonics to the contained notes." msgstr "" -#: js/musicutils.js:565 -#.TRANS: ordinal number. Please keep exactly one space between each number. -msgid "1st 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th" +#: js/blocks/ToneBlocks.js:390 +#.TRANS: A harmonic is an overtone. +msgid "harmonic" msgstr "" -#: js/musicutils.js:629 -#: js/musicutils.js:812 -#: js/musicutils.js:911 -#.TRANS: augmented is a music term related to intervals -msgid "augmented" +#: js/blocks/ToneBlocks.js:431 +msgid "The Distortion block adds distortion to the pitch." msgstr "" -#: js/musicutils.js:631 -#: js/musicutils.js:813 -#: js/musicutils.js:910 -#.TRANS: diminished is a music term related to intervals and mode -msgid "diminished" +#: js/blocks/ToneBlocks.js:438 +#: js/widgets/timbre.js:2100 +#.TRANS: distortion is an alteration in the sound +msgid "distortion" msgstr "" -#: js/musicutils.js:639 -#.TRANS: twelve semi-tone scale for music -msgid "chromatic" +#: js/blocks/ToneBlocks.js:487 +msgid "The Tremolo block adds a wavering effect." msgstr "" -#: js/musicutils.js:640 -msgid "algerian" +#: js/blocks/ToneBlocks.js:495 +#: js/widgets/timbre.js:2092 +#.TRANS: a wavering effect in a musical tone +msgid "tremolo" msgstr "" -#: js/musicutils.js:641 -msgid "spanish" +#: js/blocks/ToneBlocks.js:500 +#: js/blocks/ToneBlocks.js:569 +#: js/blocks/ToneBlocks.js:630 +#: js/blocks/ToneBlocks.js:689 +#: js/widgets/timbre.js:2134 +#: js/widgets/timbre.js:2222 +#: js/widgets/timbre.js:2317 +#: js/widgets/timbre.js:2419 +#.TRANS: rate at which tremolo wavers +msgid "rate" msgstr "" -#: js/musicutils.js:643 -#.TRANS: modal scale in music -msgid "octatonic" +#: js/blocks/ToneBlocks.js:502 +#: js/blocks/ToneBlocks.js:630 +#: js/widgets/timbre.js:2137 +#: js/widgets/timbre.js:2328 +#.TRANS: amplitude of tremolo waver +msgid "depth" msgstr "" -#: js/musicutils.js:645 -#.TRANS: harmonic major scale in music -msgid "harmonic major" +#: js/blocks/ToneBlocks.js:559 +msgid "The Phaser block adds a sweeping sound." msgstr "" -#: js/musicutils.js:647 -#.TRANS: natural minor scales in music -msgid "natural minor" +#: js/blocks/ToneBlocks.js:566 +#: js/widgets/timbre.js:2098 +#.TRANS: alter the phase of the sound +msgid "phaser" msgstr "" -#: js/musicutils.js:649 -#.TRANS: harmonic minor scale in music -msgid "harmonic minor" +#: js/blocks/ToneBlocks.js:569 +#: js/turtleactions/IntervalsActions.js:114 +#: js/widgets/timbre.js:2422 +msgid "octaves" msgstr "" -#: js/musicutils.js:651 -#.TRANS: melodic minor scale in music -msgid "melodic minor" +#: js/blocks/ToneBlocks.js:569 +#: js/widgets/timbre.js:2425 +msgid "base frequency" msgstr "" -#: js/musicutils.js:655 -#.TRANS: modal scale for music -msgid "dorian" +#: js/blocks/ToneBlocks.js:619 +msgid "The Chorus block adds a chorus effect." msgstr "" -#: js/musicutils.js:657 -#.TRANS: modal scale for music -msgid "phrygian" +#: js/blocks/ToneBlocks.js:627 +#: js/widgets/timbre.js:2096 +#.TRANS: musical effect to simulate a choral sound +msgid "chorus" msgstr "" -#: js/musicutils.js:659 -#.TRANS: modal scale for music -msgid "lydian" +#: js/blocks/ToneBlocks.js:630 +msgid "delay" msgstr "" -#: js/musicutils.js:661 -#.TRANS: modal scale for music -msgid "mixolydian" +#: js/blocks/ToneBlocks.js:678 +msgid "The Vibrato block adds a rapid, slight variation in pitch." msgstr "" -#: js/musicutils.js:665 -#.TRANS: modal scale for music -msgid "locrian" +#: js/blocks/ToneBlocks.js:686 +#: js/widgets/timbre.js:2094 +#.TRANS: a rapid, slight variation in pitch +msgid "vibrato" msgstr "" -#: js/musicutils.js:667 -#.TRANS: minor jazz scale for music -msgid "jazz minor" +#: js/blocks/ToneBlocks.js:689 +#: js/widgets/timbre.js:2221 +msgid "intensity" msgstr "" -#: js/musicutils.js:669 -#.TRANS: bebop scale for music -msgid "bebop" +#: js/blocks/ToneBlocks.js:733 +#.TRANS: select synthesizer +msgid "set synth" msgstr "" -#: js/musicutils.js:670 -msgid "arabic" +#: js/blocks/ToneBlocks.js:804 +msgid "synth name" msgstr "" -#: js/musicutils.js:671 -msgid "byzantine" +#: js/blocks/ToneBlocks.js:842 +msgid "set default instrument" msgstr "" -#: js/musicutils.js:673 -#.TRANS: musical scale for music by Verdi -msgid "enigmatic" +#: js/blocks/ToneBlocks.js:895 +#: js/blocks/ToneBlocks.js:943 +#.TRANS: set the characteristics of a custom instrument +msgid "set instrument" msgstr "" -#: js/musicutils.js:674 -msgid "ethiopian" +#: js/blocks/ToneBlocks.js:898 +#: js/blocks/ToneBlocks.js:926 +#: js/blocks/ToneBlocks.js:932 +msgid "The Set instrument block selects a voice for the synthesizer," msgstr "" -#: js/musicutils.js:676 -#.TRANS: Ethiopic scale for music -msgid "geez" +#: js/blocks/ToneBlocks.js:900 +#: js/blocks/ToneBlocks.js:934 +msgid "eg guitar piano violin or cello." msgstr "" -#: js/musicutils.js:677 -msgid "hindu" +#: js/blocks/ToneBlocks.js:1015 +msgid "Import a sound file to use as an instrument and set its pitch center." msgstr "" -#: js/musicutils.js:678 -msgid "hungarian" +#: js/blocks/ToneBlocks.js:1110 +msgid "Upload a sound file to connect with the sample block." msgstr "" -#: js/musicutils.js:680 -#.TRANS: minor Romanian scale for music -msgid "romanian minor" +#: js/blocks/VolumeBlocks.js:35 +msgid "synth volume" msgstr "" -#: js/musicutils.js:681 -msgid "spanish gypsy" +#: js/blocks/VolumeBlocks.js:39 +msgid "The Synth volume block returns the current volume of the current synthesizer." msgstr "" -#: js/musicutils.js:683 -#.TRANS: musical scale for Mid-Eastern music -msgid "maqam" +#: js/blocks/VolumeBlocks.js:105 +msgid "master volume" msgstr "" -#: js/musicutils.js:685 -#.TRANS: minor blues scale for music -msgid "minor blues" +#: js/blocks/VolumeBlocks.js:109 +msgid "The Master volume block returns the master volume." msgstr "" -#: js/musicutils.js:687 -#.TRANS: major blues scale for music -msgid "major blues" +#: js/blocks/VolumeBlocks.js:355 +#: js/blocks/VolumeBlocks.js:524 +msgid "set synth volume" msgstr "" -#: js/musicutils.js:688 -msgid "whole tone" +#: js/blocks/VolumeBlocks.js:362 +#: js/blocks/VolumeBlocks.js:545 +msgid "synth" msgstr "" -#: js/musicutils.js:690 -#.TRANS: pentatonic is a general term that means "five note scale". This scale is typically known as "minor pentatonic" -msgid "minor pentatonic" +#: js/blocks/VolumeBlocks.js:403 +#: js/blocks/VolumeBlocks.js:577 +#: js/blocks/VolumeBlocks.js:740 +#: js/turtleactions/VolumeActions.js:173 +msgid "Setting volume to 0." msgstr "" -#: js/musicutils.js:692 -#.TRANS: pentatonic is a general term that means "five note scale". This scale is typically known as "major pentatonic" -msgid "major pentatonic" +#: js/blocks/VolumeBlocks.js:440 +msgid "Synth not found" msgstr "" -#: js/musicutils.js:693 -msgid "chinese" +#: js/blocks/VolumeBlocks.js:494 +msgid "set drum volume" msgstr "" -#: js/musicutils.js:694 -msgid "egyptian" +#: js/blocks/VolumeBlocks.js:530 +msgid "The Set synth volume block will change the volume of a particular synth," msgstr "" -#: js/musicutils.js:696 -#.TRANS: https://en.wikipedia.org/wiki/Hirajoshi_scale NOTE: There are three different versions of this scale -msgid "hirajoshi" +#: js/blocks/VolumeBlocks.js:532 +msgid "eg guitar violin snare drum etc." msgstr "" -#: js/musicutils.js:697 -msgid "Japan" +#: js/blocks/VolumeBlocks.js:534 +msgid "The default volume is 50." msgstr "" -#: js/musicutils.js:699 -#.TRANS: https://en.wikipedia.org/wiki/In_scale and https://en.wikipedia.org/wiki/Sakura_Sakura -msgid "in" +#: js/blocks/VolumeBlocks.js:536 +msgid "The range is 0 for silence to 100 for full volume." msgstr "" -#: js/musicutils.js:701 -#.TRANS: https://en.wikipedia.org/wiki/Miny%C5%8D_scale -msgid "minyo" +#: js/blocks/VolumeBlocks.js:597 +msgid "set panning" msgstr "" -#: js/musicutils.js:703 -#.TRANS: Italian mathematician -msgid "fibonacci" +#: js/blocks/VolumeBlocks.js:603 +msgid "The Set Panning block sets the panning for all synthesizers." msgstr "" -#: js/musicutils.js:708 -#: js/musicutils.js:1106 -#.TRANS: lowpass filter -msgid "lowpass" +#: js/blocks/VolumeBlocks.js:625 +msgid "Warning: Sound is coming out from only the left or right side." msgstr "" -#: js/musicutils.js:710 -#: js/musicutils.js:1107 -#.TRANS: bandpass filter -msgid "bandpass" +#: js/blocks/VolumeBlocks.js:647 +#: js/blocks/VolumeBlocks.js:695 +msgid "set master volume" msgstr "" -#: js/musicutils.js:712 -#: js/musicutils.js:1108 -#.TRANS: high-shelf filter -msgid "highshelf" +#: js/blocks/VolumeBlocks.js:653 +msgid "The Set master volume block sets the volume for all synthesizers." msgstr "" -#: js/musicutils.js:714 -#: js/musicutils.js:1109 -#.TRANS: low-shelf filter -msgid "lowshelf" +#: js/blocks/VolumeBlocks.js:784 +msgid "The Set relative volume block changes the volume of the contained notes." msgstr "" -#: js/musicutils.js:716 -#: js/musicutils.js:1110 -#.TRANS: notch-shelf filter -msgid "notch" +#: js/blocks/VolumeBlocks.js:791 +msgid "set relative volume" msgstr "" -#: js/musicutils.js:718 -#: js/musicutils.js:1111 -#.TRANS: all-pass filter -msgid "allpass" +#: js/blocks/VolumeBlocks.js:857 +msgid "decrescendo" msgstr "" -#: js/musicutils.js:720 -#: js/musicutils.js:1112 -#.TRANS: peaking filter -msgid "peaking" +#: js/blocks/VolumeBlocks.js:921 +msgid "crescendo" msgstr "" -#: js/musicutils.js:731 -#: js/synthutils.js:58 -#.TRANS: musical instrument -msgid "violin" +#: js/blocks/WidgetBlocks.js:81 +#.TRANS: sound envelope (ADSR) +msgid "envelope" msgstr "" -#: js/musicutils.js:732 -#: js/synthutils.js:60 -#.TRANS: viola musical instrument -msgid "viola" +#: js/blocks/WidgetBlocks.js:89 +#.TRANS: Attack time is the time taken for initial run-up of level from nil to peak, beginning when the key is first pressed. +msgid "attack" msgstr "" -#: js/musicutils.js:733 -#: js/synthutils.js:98 -#.TRANS: xylophone musical instrument -msgid "xylophone" +#: js/blocks/WidgetBlocks.js:91 +#.TRANS: Decay time is the time taken for the subsequent run down from the attack level to the designated sustain level. +msgid "decay" msgstr "" -#: js/musicutils.js:734 -#: js/synthutils.js:120 -#.TRANS: vibraphone musical instrument -msgid "vibraphone" +#: js/blocks/WidgetBlocks.js:93 +#.TRANS: Sustain level is the level during the main sequence of the sound's duration, until the key is released. +msgid "sustain" msgstr "" -#: js/musicutils.js:735 -#: js/synthutils.js:62 -#.TRANS: musical instrument -msgid "cello" +#: js/blocks/WidgetBlocks.js:95 +#.TRANS: Release time is the time taken for the level to decay from the sustain level to zero after the key is released. +msgid "release" msgstr "" -#: js/musicutils.js:737 -#: js/synthutils.js:66 -#.TRANS: viola musical instrument -msgid "double bass" +#: js/blocks/WidgetBlocks.js:113 +msgid "Attack value should be from 0 to 100." msgstr "" -#: js/musicutils.js:738 -#: js/synthutils.js:68 -#: js/rhythmruler.js:2119 -#.TRANS: musical instrument -msgid "guitar" +#: js/blocks/WidgetBlocks.js:116 +msgid "Decay value should be from 0 to 100." msgstr "" -#: js/musicutils.js:739 -#: js/synthutils.js:70 -#.TRANS: musical instrument -msgid "acoustic guitar" +#: js/blocks/WidgetBlocks.js:119 +msgid "Sustain value should be from 0 to 100." msgstr "" -#: js/musicutils.js:740 -#: js/synthutils.js:72 -#.TRANS: musical instrument -msgid "flute" +#: js/blocks/WidgetBlocks.js:122 +msgid "Release value should be from 0-100." msgstr "" -#: js/musicutils.js:741 -#: js/synthutils.js:74 -#.TRANS: musical instrument -msgid "clarinet" +#: js/blocks/WidgetBlocks.js:140 +msgid "You are adding multiple envelope blocks." msgstr "" -#: js/musicutils.js:742 -#: js/synthutils.js:76 -#.TRANS: musical instrument -msgid "saxophone" +#: js/blocks/WidgetBlocks.js:171 +#.TRANS: a filter removes some unwanted components from a signal +msgid "filter" msgstr "" -#: js/musicutils.js:743 -#: js/synthutils.js:78 -#.TRANS: musical instrument -msgid "tuba" +#: js/blocks/WidgetBlocks.js:181 +#: js/widgets/timbre.js:1818 +#.TRANS: rolloff is the steepness of a change in frequency. +msgid "rolloff" msgstr "" -#: js/musicutils.js:744 -#: js/synthutils.js:80 -#.TRANS: musical instrument -msgid "trumpet" +#: js/blocks/WidgetBlocks.js:213 +#.TRANS: rolloff is the steepness of a change in frequency. +msgid "Rolloff value should be either -12, -24, -48, or -96 decibels/octave." msgstr "" -#: js/musicutils.js:745 -#: js/synthutils.js:82 -#.TRANS: musical instrument -msgid "oboe" +#: js/blocks/WidgetBlocks.js:252 +msgid "The Temperament tool is used to define custom tuning." msgstr "" -#: js/musicutils.js:746 -#: js/synthutils.js:84 -#.TRANS: musical instrument -msgid "trombone" +#: js/blocks/WidgetBlocks.js:332 +#: js/blocks/WidgetBlocks.js:1573 +#: js/widgets/sampler.js:547 +msgid "Upload a sample and adjust its pitch center." msgstr "" -#: js/musicutils.js:747 -#: js/synthutils.js:100 -#.TRANS: polytone synthesizer -msgid "electronic synth" +#: js/blocks/WidgetBlocks.js:339 +#.TRANS: the speed at music is should be played. +msgid "sampler" msgstr "" -#: js/musicutils.js:748 -#: js/synthutils.js:102 -#.TRANS: simple monotone synthesizer -msgid "simple 1" +#: js/blocks/WidgetBlocks.js:517 +msgid "The Meter block opens a tool to select strong beats for the meter." msgstr "" -#: js/musicutils.js:749 -msgid "simple 2" +#: js/blocks/WidgetBlocks.js:573 +msgid "The oscilloscope block opens a tool to visualize waveforms." msgstr "" -#: js/musicutils.js:750 -msgid "simple 3" +#: js/blocks/WidgetBlocks.js:578 +msgid "oscilloscope" msgstr "" -#: js/musicutils.js:751 -msgid "simple 4" +#: js/blocks/WidgetBlocks.js:645 +msgid "The Custom mode block opens a tool to explore musical mode (the spacing of the notes in a scale)." msgstr "" -#: js/musicutils.js:753 -#: js/synthutils.js:49 -#.TRANS: brown noise synthesizer -msgid "brown noise" +#: js/blocks/WidgetBlocks.js:651 +#.TRANS: musical mode is the pattern of half-steps in an octave, e.g., Major or Minor modes +msgid "custom mode" msgstr "" -#: js/musicutils.js:754 -#: js/synthutils.js:51 -#.TRANS: pink noise synthesizer -msgid "pink noise" +#: js/blocks/WidgetBlocks.js:700 +msgid "The Tempo block opens a metronome to visualize the beat." msgstr "" -#: js/musicutils.js:756 -#: js/synthutils.js:127 -#: js/rhythmruler.js:1670 -#: js/rhythmruler.js:1928 -#.TRANS: musical instrument -msgid "snare drum" +#: js/blocks/WidgetBlocks.js:762 +msgid "The Arpeggio Widget is used to compose chord sequences." msgstr "" -#: js/musicutils.js:757 -#: js/synthutils.js:129 -#.TRANS: musical instrument -msgid "kick drum" +#: js/blocks/WidgetBlocks.js:837 +msgid "The Pitch drum matrix is used to map pitches to drum sounds." msgstr "" -#: js/musicutils.js:758 -#: js/synthutils.js:131 -#.TRANS: musical instrument -msgid "tom tom" +#: js/blocks/WidgetBlocks.js:842 +#.TRANS: makes a mapping between pitches and drum sounds +msgid "pitch-drum mapper" msgstr "" -#: js/musicutils.js:759 -#: js/synthutils.js:133 -#.TRANS: musical instrument -msgid "floor tom" +#: js/blocks/WidgetBlocks.js:891 +msgid "You must have at least one pitch block and one drum block in the matrix." msgstr "" -#: js/musicutils.js:760 -#: js/synthutils.js:135 -#.TRANS: musical instrument -msgid "bass drum" +#: js/blocks/WidgetBlocks.js:920 +msgid "The Pitch slider tool to is used to generate pitches at selected frequencies." msgstr "" -#: js/musicutils.js:761 -#: js/synthutils.js:137 -#.TRANS: a drum made from an inverted cup -msgid "cup drum" +#: js/blocks/WidgetBlocks.js:925 +#.TRANS: widget to generate pitches using a slider +msgid "pitch slider" msgstr "" -#: js/musicutils.js:762 -#: js/synthutils.js:139 -#.TRANS: musical instrument -msgid "darbuka drum" +#: js/blocks/WidgetBlocks.js:977 +msgid "chromatic keyboard" msgstr "" -#: js/musicutils.js:763 -#: js/synthutils.js:143 -#.TRANS: musical instrument -msgid "hi hat" +#: js/blocks/WidgetBlocks.js:1011 +#: js/blocks/WidgetBlocks.js:1077 +#.TRANS: widget to generate pitches using a slider +msgid "music keyboard" msgstr "" -#: js/musicutils.js:764 -#: js/synthutils.js:145 -#.TRANS: a small metal bell -msgid "ride bell" +#: js/blocks/WidgetBlocks.js:1062 +#: js/blocks/WidgetBlocks.js:1069 +msgid "The Music keyboard block opens a piano keyboard that can be used to create notes." msgstr "" -#: js/musicutils.js:765 -#: js/synthutils.js:147 -#.TRANS: musical instrument -msgid "cow bell" +#: js/blocks/WidgetBlocks.js:1128 +msgid "The Pitch staircase tool to is used to generate pitches from a given ratio." msgstr "" -#: js/musicutils.js:766 -msgid "japanese drum" +#: js/blocks/WidgetBlocks.js:1135 +#.TRANS: generate a progressive sequence of pitches +msgid "pitch staircase" msgstr "" -#: js/musicutils.js:767 -#: js/synthutils.js:153 -#.TRANS: musical instrument -msgid "japanese bell" +#: js/blocks/WidgetBlocks.js:1222 +msgid "The Rhythm Maker block opens a tool to create drum machines." msgstr "" -#: js/musicutils.js:768 -#: js/synthutils.js:149 -#.TRANS: musical instrument -msgid "triangle bell" +#: js/blocks/WidgetBlocks.js:1291 +msgid "G major scale" msgstr "" -#: js/musicutils.js:769 -#: js/synthutils.js:151 -#.TRANS: musical instrument -msgid "finger cymbals" +#: js/blocks/WidgetBlocks.js:1326 +msgid "C major scale" msgstr "" -#: js/musicutils.js:770 -#: js/synthutils.js:155 -#.TRANS: a musically tuned set of bells -msgid "chime" +#: js/blocks/WidgetBlocks.js:1366 +msgid "The Phrase Maker block opens a tool to create musical phrases." msgstr "" -#: js/musicutils.js:771 -#: js/synthutils.js:157 -#.TRANS: a musical instrument -msgid "gong" +#: js/blocks/WidgetBlocks.js:1373 +#.TRANS: assigns pitch to a sequence of beats to generate a melody +msgid "phrase maker" msgstr "" -#: js/musicutils.js:772 -#: js/synthutils.js:159 -#.TRANS: sound effect -msgid "clang" +#: js/blocks/WidgetBlocks.js:1444 +msgid "You must have at least one pitch block and one rhythm block in the matrix." msgstr "" -#: js/musicutils.js:773 -#: js/synthutils.js:161 -#.TRANS: sound effect -msgid "crash" +#: js/blocks/WidgetBlocks.js:1503 +msgid "The Status block opens a tool for inspecting the status of Music Blocks as it is running." msgstr "" -#: js/musicutils.js:774 -#: js/synthutils.js:163 -#.TRANS: sound effect -msgid "bottle" +#: js/blocks/WidgetBlocks.js:1580 +#.TRANS: AI-generated music +msgid "aimusic" msgstr "" -#: js/musicutils.js:775 -#: js/synthutils.js:165 -#.TRANS: sound effect -msgid "clap" +#: js/turtleactions/MeterActions.js:101 +#: js/turtleactions/MeterActions.js:139 +msgid "beats per minute must be greater than" msgstr "" -#: js/musicutils.js:776 -#: js/synthutils.js:167 -#.TRANS: sound effect -msgid "slap" +#: js/turtleactions/MeterActions.js:111 +#: js/turtleactions/MeterActions.js:149 +msgid "maximum" msgstr "" -#: js/musicutils.js:777 -#: js/synthutils.js:169 -#.TRANS: sound effect -msgid "splash" +#: js/turtleactions/MeterActions.js:117 +#: js/turtleactions/MeterActions.js:155 +msgid "beats per minute is" msgstr "" -#: js/musicutils.js:778 -#: js/synthutils.js:171 -#.TRANS: sound effect -msgid "bubbles" +#: js/turtleactions/DictActions.js:75 +#: js/turtleactions/DictActions.js:142 +#: js/turtleactions/DictActions.js:172 +msgid "font" msgstr "" -#: js/musicutils.js:779 -#: js/synthutils.js:173 -#.TRANS: sound effect -msgid "raindrop" +#: js/turtleactions/DictActions.js:255 +msgid "Dictionary with this name does not exist" msgstr "" -#: js/musicutils.js:780 -#: js/synthutils.js:175 -#.TRANS: animal sound effect -msgid "cat" +#: js/turtleactions/DictActions.js:259 +msgid "Key with this name does not exist in " msgstr "" -#: js/musicutils.js:781 -#: js/synthutils.js:177 -#.TRANS: animal sound effect -msgid "cricket" +#: js/turtleactions/DrumActions.js:227 +msgid "Noise Block: Did you mean to use a Note block?" msgstr "" -#: js/musicutils.js:782 -#: js/synthutils.js:179 -#.TRANS: animal sound effect -msgid "dog" +#: js/turtleactions/IntervalsActions.js:113 +msgid "one" msgstr "" -#: js/musicutils.js:784 -#: js/synthutils.js:86 -#.TRANS: musical instrument -msgid "banjo" +#: js/turtleactions/IntervalsActions.js:113 +msgid "two" msgstr "" -#: js/musicutils.js:785 -#: js/synthutils.js:88 -#.TRANS: musical instrument -msgid "koto" +#: js/turtleactions/IntervalsActions.js:113 +msgid "three" msgstr "" -#: js/musicutils.js:786 -#: js/synthutils.js:90 -#.TRANS: musical instrument -msgid "dulcimer" +#: js/turtleactions/IntervalsActions.js:113 +msgid "four" msgstr "" -#: js/musicutils.js:787 -#: js/synthutils.js:92 -#.TRANS: musical instrument -msgid "electric guitar" +#: js/turtleactions/IntervalsActions.js:113 +msgid "five" msgstr "" -#: js/musicutils.js:788 -#: js/synthutils.js:94 -#.TRANS: musical instrument -msgid "bassoon" +#: js/turtleactions/IntervalsActions.js:113 +msgid "six" msgstr "" -#: js/musicutils.js:789 -#: js/synthutils.js:96 -#.TRANS: musical instrument -msgid "celeste" +#: js/turtleactions/IntervalsActions.js:113 +msgid "seven" msgstr "" -#: js/musicutils.js:791 -#: js/musicutils.js:1123 -#: js/musicutils.js:1131 -#: js/temperament.js:650 -#.TRANS: musical temperament -msgid "equal" +#: js/turtleactions/IntervalsActions.js:113 +msgid "eight" msgstr "" -#: js/musicutils.js:793 -#: js/musicutils.js:1125 -#: js/musicutils.js:1133 -#.TRANS: musical temperament -msgid "Pythagorean" +#: js/turtleactions/IntervalsActions.js:113 +msgid "nine" msgstr "" -#: js/musicutils.js:795 -#: js/musicutils.js:1124 -#: js/musicutils.js:1132 -#.TRANS: musical temperament -msgid "just intonation" +#: js/turtleactions/IntervalsActions.js:119 +msgid "a" msgstr "" -#: js/musicutils.js:797 -#: js/musicutils.js:1126 -#: js/musicutils.js:1127 -#: js/musicutils.js:1134 -#: js/musicutils.js:1135 -#.TRANS: musical temperament -msgid "meantone" +#: js/turtleactions/IntervalsActions.js:120 +msgid "below" msgstr "" -#: js/musicutils.js:814 -msgid "major 7th" +#: js/turtleactions/IntervalsActions.js:124 +msgid "above" msgstr "" -#: js/musicutils.js:815 -msgid "minor 7th" +#: js/turtleactions/IntervalsActions.js:131 +msgid "plus" msgstr "" -#: js/musicutils.js:816 -msgid "dominant 7th" +#: js/turtleactions/IntervalsActions.js:139 +msgid " below" msgstr "" -#: js/musicutils.js:817 -msgid "minor-major 7th" +#: js/turtleactions/IntervalsActions.js:257 +msgid "Adding missing pitch number 0." msgstr "" -#: js/musicutils.js:818 -msgid "fully-diminished 7th" +#: js/turtleactions/IntervalsActions.js:265 +msgid "Ignoring pitch numbers less than zero or greater than eleven." msgstr "" -#: js/musicutils.js:819 -msgid "half-diminished 7th" +#: js/turtleactions/IntervalsActions.js:271 +msgid "Ignoring duplicate pitch numbers." msgstr "" -#: js/musicutils.js:4379 -#: js/musicutils.js:4416 -msgid "current" +#: js/turtleactions/ToneActions.js:134 +msgid "Vibrato intensity must be between 1 and 100." msgstr "" -#: js/musicutils.js:4382 -#: js/musicutils.js:4407 -msgid "next" +#: js/turtleactions/ToneActions.js:139 +msgid "Vibrato rate must be greater than 0." msgstr "" -#: js/musicutils.js:4385 -#: js/musicutils.js:4412 -msgid "previous" +#: js/turtleactions/ToneActions.js:192 +#: js/turtleactions/ToneActions.js:265 +#.TRANS: Depth is the intesity of the tremolo or chorus effect. +msgid "Depth is out of range." msgstr "" -#: js/synthutils.js:104 -#.TRANS: simple monotone synthesizer -msgid "simple-2" +#: js/turtleactions/ToneActions.js:301 +msgid "Distortion must be from 0 to 100." msgstr "" -#: js/synthutils.js:106 -#.TRANS: simple monotone synthesizer -msgid "simple-3" +#: js/turtleactions/ToneActions.js:332 +#.TRANS: partials components in a harmonic series +msgid "Partial must be greater than or equal to 0." msgstr "" -#: js/synthutils.js:108 -#.TRANS: simple monotone synthesizer -msgid "simple-4" +#: js/turtleactions/ToneActions.js:378 +#: js/turtleactions/ToneActions.js:417 +#: js/turtleactions/ToneActions.js:456 +#: js/widgets/timbre.js:782 +msgid "Unable to use synth due to existing oscillator" msgstr "" -#: js/synthutils.js:141 -#.TRANS: musical instrument -msgid "taiko" +#: js/turtleactions/ToneActions.js:388 +#: js/turtleactions/ToneActions.js:427 +msgid "The input cannot be negative." msgstr "" -#: js/modewidget.js:86 -#: js/modewidget.js:88 -#: js/modewidget.js:642 -#: js/modewidget.js:644 -#: js/modewidget.js:712 -#: js/modewidget.js:714 -#: js/temperament.js:2078 -#: js/rhythmruler.js:189 -#: js/rhythmruler.js:1410 -#: js/rhythmruler.js:1412 -#: js/rhythmruler.js:1435 -#: js/rhythmruler.js:1437 -#: js/meterwidget.js:89 -#: js/meterwidget.js:91 +#: js/widgets/modewidget.js:86 +#: js/widgets/modewidget.js:88 +#: js/widgets/modewidget.js:642 +#: js/widgets/modewidget.js:644 +#: js/widgets/modewidget.js:712 +#: js/widgets/modewidget.js:714 +#: js/widgets/meterwidget.js:194 +#: js/widgets/meterwidget.js:196 +#: js/widgets/temperament.js:2236 +#: js/widgets/rhythmruler.js:457 +#: js/widgets/rhythmruler.js:1790 +#: js/widgets/rhythmruler.js:1792 +#: js/widgets/rhythmruler.js:1816 +#: js/widgets/rhythmruler.js:1818 msgid "Play all" msgstr "" -#: js/modewidget.js:115 -#: js/pitchstaircase.js:641 -#: js/phrasemaker.js:339 -#: js/pitchdrummatrix.js:94 -#: js/pitchslider.js:125 -#: js/temperament.js:2083 -#: js/musickeyboard.js:530 -#: js/timbre.js:756 -#: js/meterwidget.js:124 -#: js/arpeggio.js:103 +#: js/widgets/modewidget.js:115 +#: js/widgets/meterwidget.js:229 +#: js/widgets/pitchdrummatrix.js:166 +#: js/widgets/pitchslider.js:125 +#: js/widgets/pitchstaircase.js:641 +#: js/widgets/temperament.js:2244 +#: js/widgets/timbre.js:756 +#: js/widgets/arpeggio.js:103 +#: js/widgets/musickeyboard.js:688 +#: js/widgets/phrasemaker.js:550 msgid "Save" msgstr "" -#: js/modewidget.js:121 -#: js/pitchstaircase.js:686 -#: js/phrasemaker.js:356 -#: js/pitchdrummatrix.js:109 -#: js/musickeyboard.js:534 -#: js/rhythmruler.js:269 -#: js/arpeggio.js:118 +#: js/widgets/modewidget.js:121 +#: js/widgets/pitchdrummatrix.js:181 +#: js/widgets/pitchstaircase.js:686 +#: js/widgets/arpeggio.js:118 +#: js/widgets/musickeyboard.js:696 +#: js/widgets/phrasemaker.js:567 +#: js/widgets/rhythmruler.js:601 #.TRANS: clear all subdivisions from the ruler. msgid "Clear" msgstr "" -#: js/modewidget.js:127 +#: js/widgets/modewidget.js:127 msgid "Rotate counter clockwise" msgstr "" -#: js/modewidget.js:133 +#: js/widgets/modewidget.js:133 msgid "Rotate clockwise" msgstr "" -#: js/modewidget.js:139 +#: js/widgets/modewidget.js:139 msgid "Invert" msgstr "" -#: js/modewidget.js:145 -#: js/pitchstaircase.js:678 -#: js/rhythmruler.js:258 -#: js/timbre.js:963 +#: js/widgets/modewidget.js:145 +#: js/widgets/pitchstaircase.js:678 +#: js/widgets/timbre.js:963 +#: js/widgets/rhythmruler.js:578 msgid "Undo" msgstr "" -#: js/modewidget.js:163 +#: js/widgets/modewidget.js:163 #.TRANS: A circle of notes represents the musical mode. msgid "Click in the circle to select notes for the mode." msgstr "" -#: js/modewidget.js:1017 -#: js/pitchstaircase.js:580 -#: js/phrasemaker.js:4855 -#: js/temperament.js:1754 -#: js/rhythmruler.js:1865 -#: js/rhythmruler.js:2081 -#: js/tempo.js:414 +#: js/widgets/modewidget.js:1017 +#: js/widgets/pitchstaircase.js:580 +#: js/widgets/temperament.js:1929 +#: js/widgets/tempo.js:414 +#: js/widgets/phrasemaker.js:5356 +#: js/widgets/rhythmruler.js:2254 +#: js/widgets/rhythmruler.js:2472 msgid "New action block generated!" msgstr "" -#: js/oscilloscope.js:79 -msgid "Zoom In" -msgstr "" - -#: js/oscilloscope.js:88 -msgid "Zoom Out" -msgstr "" - -#: js/pitchstaircase.js:624 -msgid "Play chord" -msgstr "" - -#: js/pitchstaircase.js:632 -msgid "Play scale" +#: js/widgets/meterwidget.js:275 +msgid "Reset" msgstr "" -#: js/pitchstaircase.js:696 -msgid "Click on a note to create a new step." +#: js/widgets/meterwidget.js:301 +msgid "Click in the circle to select strong beats for the meter." msgstr "" -#: js/phrasemaker.js:363 -msgid "Export" +#: js/widgets/oscilloscope.js:79 +msgid "Zoom In" msgstr "" -#: js/phrasemaker.js:370 -msgid "Sort" +#: js/widgets/oscilloscope.js:88 +msgid "Zoom Out" msgstr "" -#: js/phrasemaker.js:373 -#: js/musickeyboard.js:559 -msgid "Add note" +#: js/widgets/pitchdrummatrix.js:356 +#: js/widgets/pitchdrummatrix.js:752 +msgid "Click in the grid to map notes to drums." msgstr "" -#: js/phrasemaker.js:764 -msgid "Click on the table to add notes." +#: js/widgets/pitchslider.js:103 +msgid "Move up" msgstr "" -#: js/phrasemaker.js:2414 -#: js/phrasemaker.js:2543 -msgid "tuplet value" +#: js/widgets/pitchslider.js:114 +msgid "Move down" msgstr "" -#: js/pitchdrummatrix.js:270 -#: js/pitchdrummatrix.js:639 -msgid "Click in the grid to map notes to drums." +#: js/widgets/pitchslider.js:136 +msgid "Click on the slider to create a note block." msgstr "" -#: js/pitchslider.js:103 -msgid "Move up" +#: js/widgets/pitchstaircase.js:624 +msgid "Play chord" msgstr "" -#: js/pitchslider.js:114 -msgid "Move down" +#: js/widgets/pitchstaircase.js:632 +msgid "Play scale" msgstr "" -#: js/pitchslider.js:136 -msgid "Click on the slider to create a note block." +#: js/widgets/pitchstaircase.js:696 +msgid "Click on a note to create a new step." msgstr "" -#: js/temperament.js:215 +#: js/widgets/temperament.js:321 msgid "back to 2:1 octave space" msgstr "" -#: js/temperament.js:323 +#: js/widgets/temperament.js:447 msgid "edit" msgstr "" -#: js/temperament.js:330 -#: js/temperament.js:332 -#: js/temperament.js:1336 -#: js/temperament.js:1338 +#: js/widgets/temperament.js:454 +#: js/widgets/temperament.js:456 +#: js/widgets/temperament.js:1493 +#: js/widgets/temperament.js:1495 msgid "close" msgstr "" -#: js/temperament.js:423 -#: js/temperament.js:736 -#: js/temperament.js:743 -#: js/temperament.js:845 -#: js/temperament.js:935 -#: js/temperament.js:942 -#: js/temperament.js:1015 -#: js/temperament.js:1284 -#: js/temperament.js:1354 -#: js/temperament.js:1430 +#: js/widgets/temperament.js:552 +#: js/widgets/temperament.js:877 +#: js/widgets/temperament.js:884 +#: js/widgets/temperament.js:986 +#: js/widgets/temperament.js:1080 +#: js/widgets/temperament.js:1087 +#: js/widgets/temperament.js:1160 +#: js/widgets/temperament.js:1433 +#: js/widgets/temperament.js:1511 +#: js/widgets/temperament.js:1596 msgid "done" msgstr "" -#: js/temperament.js:477 -#: js/temperament.js:482 -#: js/temperament.js:918 +#: js/widgets/temperament.js:610 +#: js/widgets/temperament.js:615 +#: js/widgets/temperament.js:1063 msgid "ratio" msgstr "" -#: js/temperament.js:483 +#: js/widgets/temperament.js:616 msgid "interval" msgstr "" -#: js/temperament.js:611 +#: js/widgets/temperament.js:744 msgid "non scalar" msgstr "" -#: js/temperament.js:650 +#: js/widgets/temperament.js:787 msgid "ratios" msgstr "" -#: js/temperament.js:650 +#: js/widgets/temperament.js:787 msgid "arbitrary" msgstr "" -#: js/temperament.js:719 +#: js/widgets/temperament.js:860 msgid "number of divisions" msgstr "" -#: js/temperament.js:741 -#: js/temperament.js:858 -#: js/temperament.js:940 -#: js/temperament.js:1033 +#: js/widgets/temperament.js:882 +#: js/widgets/temperament.js:999 +#: js/widgets/temperament.js:1085 +#: js/widgets/temperament.js:1178 msgid "preview" msgstr "" -#: js/temperament.js:788 +#: js/widgets/temperament.js:929 msgid "The Number of divisions is too large." msgstr "" -#: js/temperament.js:921 +#: js/widgets/temperament.js:1066 msgid "recursion" msgstr "" -#: js/temperament.js:1450 +#: js/widgets/temperament.js:1616 msgid "The octave ratio has changed. This changes temperament significantly." msgstr "" -#: js/temperament.js:2087 +#: js/widgets/temperament.js:2248 msgid "Table" msgstr "" -#: js/temperament.js:2185 +#: js/widgets/temperament.js:2356 msgid "Add pitches" msgstr "" -#: js/musickeyboard.js:570 -msgid "Metronome" +#: js/widgets/tempo.js:78 +#: js/widgets/tempo.js:97 +#: js/widgets/tempo.js:99 +#: js/widgets/aiwidget.js:134 +#: js/widgets/aiwidget.js:136 +#: js/widgets/rhythmruler.js:681 +#: js/widgets/rhythmruler.js:683 +#: js/widgets/rhythmruler.js:1864 +#: js/widgets/rhythmruler.js:1866 +#: js/widgets/sampler.js:180 +#: js/widgets/sampler.js:182 +msgid "Pause" msgstr "" -#: js/musickeyboard.js:1296 -#: plugins/rodi.rtp:193 -msgid "duration" +#: js/widgets/tempo.js:113 +msgid "Save tempo" msgstr "" -#: js/musickeyboard.js:2840 -msgid "New action blocks generated!" +#: js/widgets/tempo.js:144 +msgid "speed up" msgstr "" -#: js/musickeyboard.js:2841 -msgid "New action block generated" +#: js/widgets/tempo.js:150 +msgid "slow down" msgstr "" -#: js/musickeyboard.js:2984 -#: js/musickeyboard.js:2992 -msgid "MIDI device present." +#: js/widgets/tempo.js:194 +msgid "Adjust the tempo with the buttons." msgstr "" -#: js/musickeyboard.js:2995 -msgid "No MIDI device found." +#: js/widgets/tempo.js:261 +msgid "Please enter a number between 30 and 1000" msgstr "" -#: js/musickeyboard.js:3000 -msgid "Failed to get MIDI access in browser." +#: js/widgets/tempo.js:268 +#: js/widgets/tempo.js:271 +msgid "The beats per minute must be between 30 and 1000." msgstr "" -#: js/rhythmruler.js:202 -msgid "Save rhythms" +#: js/widgets/tempo.js:287 +msgid "The beats per minute must be below 1000." msgstr "" -#: js/rhythmruler.js:222 -msgid "Save drum machine" +#: js/widgets/tempo.js:303 +msgid "The beats per minute must be above 30" msgstr "" -#: js/rhythmruler.js:263 -#.TRANS: user can tap out a rhythm by clicking on a ruler. -msgid "Tap a rhythm" +#: js/widgets/timbre.js:766 +msgid "Synthesizer" msgstr "" -#: js/rhythmruler.js:342 -#: js/rhythmruler.js:344 -#: js/rhythmruler.js:1481 -#: js/rhythmruler.js:1483 -#: js/sampler.js:110 -#: js/sampler.js:112 -#: js/tempo.js:78 -#: js/tempo.js:97 -#: js/tempo.js:99 -msgid "Pause" +#: js/widgets/timbre.js:789 +msgid "Oscillator" msgstr "" -#: js/rhythmruler.js:478 -msgid "Click on the ruler to divide it." +#: js/widgets/timbre.js:840 +msgid "Envelope" msgstr "" -#: js/rhythmruler.js:603 -#: js/rhythmruler.js:605 -#: js/rhythmruler.js:804 -#: js/rhythmruler.js:806 -#: js/rhythmruler.js:1386 -#: js/rhythmruler.js:1388 -msgid "tap a rhythm" +#: js/widgets/timbre.js:886 +#: planet/js/GlobalTag.js:50 +#.TRANS: On the Planet, we use labels to tag projects. +msgid "Effects" msgstr "" -#: js/rhythmruler.js:1084 -msgid "Maximum value of 256 has been exceeded." +#: js/widgets/timbre.js:904 +msgid "Filter" msgstr "" -#: js/sampler.js:137 -msgid "Warning: Sample is bigger than 1MB." +#: js/widgets/timbre.js:946 +msgid "Add filter" msgstr "" -#: js/sampler.js:142 -msgid "Upload failed: Sample is not a .wav file." +#: js/widgets/timbre.js:987 +msgid "Click on buttons to open the timbre design tools." msgstr "" -#: js/sampler.js:164 -msgid "A new sample block was generated." +#: js/widgets/timbre.js:1273 +msgid "harmonicity" msgstr "" -#: js/sampler.js:255 -msgid "Upload sample" +#: js/widgets/timbre.js:1340 +#: js/widgets/timbre.js:1406 +msgid "modulation index" msgstr "" -#: js/sampler.js:306 -msgid "Save sample" +#: js/widgets/timbre.js:1484 +msgid "vibrato amount" msgstr "" -#: js/sampler.js:697 -#.TRANS: The reference tone is a sound used for comparison. -msgid "reference tone" +#: js/widgets/timbre.js:1919 +msgid "Filter already present." msgstr "" -#: js/tempo.js:113 -msgid "Save tempo" +#: js/widgets/timbre.js:2322 +msgid "delay (MS)" msgstr "" -#: js/tempo.js:144 -msgid "speed up" +#: js/widgets/timbre.js:2507 +msgid "distortion amount" msgstr "" -#: js/tempo.js:150 -msgid "slow down" +#: js/widgets/aiwidget.js:180 +#: js/widgets/sampler.js:227 +msgid "Warning: Sample is bigger than 1MB." msgstr "" -#: js/tempo.js:194 -msgid "Adjust the tempo with the buttons." +#: js/widgets/aiwidget.js:539 +msgid "New start block generated" msgstr "" -#: js/tempo.js:261 -msgid "Please enter a number between 30 and 1000" +#: js/widgets/aiwidget.js:541 +msgid "MIDI loading. This may take some time depending upon the number of notes in the track" msgstr "" -#: js/tempo.js:268 -#: js/tempo.js:271 -msgid "The beats per minute must be between 30 and 1000." +#: js/widgets/aiwidget.js:551 +#: js/widgets/sampler.js:254 +msgid "Upload failed: Sample is not a .wav file." msgstr "" -#: js/tempo.js:287 -msgid "The beats per minute must be below 1000." +#: js/widgets/aiwidget.js:679 +#: js/widgets/sampler.js:432 +msgid "Save sample" msgstr "" -#: js/tempo.js:303 -msgid "The beats per minute must be above 30" +#: js/widgets/aiwidget.js:701 +msgid "AI Music" msgstr "" -#: js/timbre.js:766 -msgid "Synthesizer" +#: js/widgets/arpeggio.js:239 +msgid "Click in the grid to add steps to the arpeggio." msgstr "" -#: js/timbre.js:789 -msgid "Oscillator" +#: js/widgets/help.js:95 +#: js/widgets/help.js:125 +#: js/widgets/help.js:146 +#: js/widgets/help.js:158 +#: js/widgets/help.js:376 +#: js/widgets/help.js:391 +msgid "Take a tour" msgstr "" -#: js/timbre.js:840 -msgid "Envelope" +#: js/widgets/musickeyboard.js:725 +#: js/widgets/phrasemaker.js:584 +msgid "Add note" msgstr "" -#: js/timbre.js:886 -#: js/GlobalTag.js:50 -#.TRANS: On the Planet, we use labels to tag projects. -msgid "Effects" +#: js/widgets/musickeyboard.js:744 +msgid "Metronome" +msgstr "" + +#: js/widgets/musickeyboard.js:1549 +#: plugins/rodi.rtp:193 +msgid "duration" +msgstr "" + +#: js/widgets/musickeyboard.js:3179 +msgid "New action blocks generated" +msgstr "" + +#: js/widgets/musickeyboard.js:3180 +msgid "New action block generated" msgstr "" -#: js/timbre.js:904 -msgid "Filter" +#: js/widgets/musickeyboard.js:3365 +#: js/widgets/musickeyboard.js:3373 +msgid "MIDI device present." msgstr "" -#: js/timbre.js:946 -msgid "Add filter" +#: js/widgets/musickeyboard.js:3376 +msgid "No MIDI device found." msgstr "" -#: js/timbre.js:987 -msgid "Click on buttons to open the timbre design tools." +#: js/widgets/musickeyboard.js:3386 +msgid "Failed to get MIDI access in browser." msgstr "" -#: js/timbre.js:1273 -msgid "harmonicity" +#: js/widgets/phrasemaker.js:574 +msgid "Export" msgstr "" -#: js/timbre.js:1340 -#: js/timbre.js:1406 -msgid "modulation index" +#: js/widgets/phrasemaker.js:581 +msgid "Sort" msgstr "" -#: js/timbre.js:1484 -msgid "vibrato amount" +#: js/widgets/phrasemaker.js:975 +msgid "Click on the table to add notes." msgstr "" -#: js/timbre.js:1919 -msgid "Filter already present." +#: js/widgets/phrasemaker.js:2677 +#: js/widgets/phrasemaker.js:2819 +msgid "tuplet value" msgstr "" -#: js/timbre.js:2322 -msgid "delay (MS)" +#: js/widgets/rhythmruler.js:486 +msgid "Save rhythms" msgstr "" -#: js/timbre.js:2507 -msgid "distortion amount" +#: js/widgets/rhythmruler.js:512 +msgid "Save drum machine" msgstr "" -#: js/meterwidget.js:170 -msgid "Reset" +#: js/widgets/rhythmruler.js:589 +#.TRANS: user can tap out a rhythm by clicking on a ruler. +msgid "Tap a rhythm" msgstr "" -#: js/meterwidget.js:196 -msgid "Click in the circle to select strong beats for the meter." +#: js/widgets/rhythmruler.js:817 +msgid "Click on the ruler to divide it." msgstr "" -#: js/arpeggio.js:239 -msgid "Click in the grid to add steps to the arpeggio." +#: js/widgets/rhythmruler.js:950 +#: js/widgets/rhythmruler.js:952 +#: js/widgets/rhythmruler.js:1152 +#: js/widgets/rhythmruler.js:1154 +#: js/widgets/rhythmruler.js:1765 +#: js/widgets/rhythmruler.js:1767 +msgid "tap a rhythm" msgstr "" -#: js/ProjectStorage.js:243 -msgid "anonymous" +#: js/widgets/rhythmruler.js:1459 +msgid "Maximum value of 256 has been exceeded." msgstr "" -#: js/GlobalCard.js:68 -msgid "Share" +#: js/widgets/sampler.js:237 +msgid "Recording started..." msgstr "" -#: js/GlobalCard.js:74 -msgid "Flags" +#: js/widgets/sampler.js:245 +msgid "Recording complete..." msgstr "" -#: js/LocalCard.js:36 -msgid "View published project" +#: js/widgets/sampler.js:283 +msgid "A new sample block was generated." msgstr "" -#: js/LocalCard.js:42 -msgid "Publish project" +#: js/widgets/sampler.js:378 +msgid "Upload sample" msgstr "" -#: js/LocalCard.js:51 -msgid "Edit project" +#: js/widgets/sampler.js:399 +msgid "Warning: Your sample cannot be loaded because it is >1MB." msgstr "" -#: js/LocalCard.js:52 -msgid "Delete project" +#: js/widgets/sampler.js:448 +msgid "Toggle Mic" msgstr "" -#: js/LocalCard.js:53 -msgid "Download project" +#: js/widgets/sampler.js:458 +msgid "Playback" msgstr "" -#: js/LocalCard.js:55 -msgid "Duplicate project" +#: js/widgets/sampler.js:979 +#.TRANS: The reference tone is a sound used for comparison. +msgid "reference tone" msgstr "" -#: js/GlobalTag.js:28 +#: planet/js/GlobalTag.js:28 #.TRANS: On the Planet, we use labels to tag projects. msgid "All Projects" msgstr "" -#: js/GlobalTag.js:30 -#: js/StringHelper.js:37 +#: planet/js/GlobalTag.js:30 +#: planet/js/StringHelper.js:37 #.TRANS: On the Planet, we use labels to tag projects. msgid "My Projects" msgstr "" -#: js/GlobalTag.js:32 +#: planet/js/GlobalTag.js:32 #.TRANS: On the Planet, we use labels to tag projects. msgid "Examples" msgstr "" -#: js/GlobalTag.js:34 +#: planet/js/GlobalTag.js:34 #.TRANS: On the Planet, we use labels to tag projects. msgid "Music" msgstr "" -#: js/GlobalTag.js:36 +#: planet/js/GlobalTag.js:36 #.TRANS: On the Planet, we use labels to tag projects. msgid "Art" msgstr "" -#: js/GlobalTag.js:38 +#: planet/js/GlobalTag.js:38 #.TRANS: On the Planet, we use labels to tag projects. msgid "Math" msgstr "" -#: js/GlobalTag.js:40 +#: planet/js/GlobalTag.js:40 #.TRANS: On the Planet, we use labels to tag projects. msgid "Interactive" msgstr "" -#: js/GlobalTag.js:42 +#: planet/js/GlobalTag.js:42 #.TRANS: On the Planet, we use labels to tag projects. msgid "Design" msgstr "" -#: js/GlobalTag.js:44 +#: planet/js/GlobalTag.js:44 #.TRANS: On the Planet, we use labels to tag projects. msgid "Game" msgstr "" -#: js/GlobalTag.js:46 +#: planet/js/GlobalTag.js:46 #.TRANS: On the Planet, we use labels to tag projects. msgid "Media" msgstr "" -#: js/GlobalTag.js:48 +#: planet/js/GlobalTag.js:48 #.TRANS: On the Planet, we use labels to tag projects. msgid "Sensors" msgstr "" -#: js/GlobalTag.js:52 +#: planet/js/GlobalTag.js:52 #.TRANS: On the Planet, we use labels to tag projects. msgid "Code Snippet" msgstr "" -#: js/helper.js:149 -#: js/StringHelper.js:49 -msgid "Show more tags" +#: planet/js/LocalCard.js:36 +msgid "View published project" msgstr "" -#: js/helper.js:150 -msgid "Show fewer tags" +#: planet/js/LocalCard.js:42 +msgid "Publish project" +msgstr "" + +#: planet/js/LocalCard.js:51 +msgid "Edit project" +msgstr "" + +#: planet/js/LocalCard.js:52 +msgid "Delete project" +msgstr "" + +#: planet/js/LocalCard.js:53 +msgid "Download project" +msgstr "" + +#: planet/js/LocalCard.js:55 +msgid "Duplicate project" +msgstr "" + +#: planet/js/ProjectStorage.js:243 +msgid "anonymous" +msgstr "" + +#: planet/js/SaveInterface.js:34 +msgid "Open in Music Blocks" +msgstr "" + +#: planet/js/SaveInterface.js:35 +msgid "Open in Turtle Blocks" +msgstr "" + +#: planet/js/GlobalCard.js:68 +msgid "Share" +msgstr "" + +#: planet/js/GlobalCard.js:74 +msgid "Flags" +msgstr "" + +#: planet/js/GlobalPlanet.js:35 +msgid "No results found." +msgstr "" + +#: planet/js/GlobalPlanet.js:51 +msgid "Remix of" +msgstr "" + +#: planet/js/GlobalPlanet.js:509 +msgid "Cannot connect to server" msgstr "" -#: js/ProjectViewer.js:30 +#: planet/js/ProjectViewer.js:30 msgid "Error: Report could not be submitted. Try again later." msgstr "" -#: js/ProjectViewer.js:31 +#: planet/js/ProjectViewer.js:31 msgid "Thank you for reporting this project. A moderator will review the project shortly, to verify violation of the Sugar Labs Code of Conduct." msgstr "" -#: js/ProjectViewer.js:32 -#: js/StringHelper.js:62 -#: js/StringHelper.js:64 -#: js/StringHelper.js:68 +#: planet/js/ProjectViewer.js:32 +#: planet/js/StringHelper.js:62 +#: planet/js/StringHelper.js:64 +#: planet/js/StringHelper.js:68 msgid "Report Project" msgstr "" -#: js/ProjectViewer.js:33 -#: js/StringHelper.js:63 +#: planet/js/ProjectViewer.js:33 +#: planet/js/StringHelper.js:63 msgid "Project Reported" msgstr "" -#: js/ProjectViewer.js:34 +#: planet/js/ProjectViewer.js:34 msgid "Report description required" msgstr "" -#: js/ProjectViewer.js:35 +#: planet/js/ProjectViewer.js:35 msgid "Report description too long" msgstr "" -#: js/StringHelper.js:30 +#: planet/js/Publisher.js:30 +msgid "Feature unavailable - cannot connect to server. Reload Music Blocks to try again." +msgstr "" + +#: planet/js/Publisher.js:220 +#: planet/js/Publisher.js:237 +msgid "This field is required" +msgstr "" + +#: planet/js/Publisher.js:227 +msgid "Title too long" +msgstr "" + +#: planet/js/Publisher.js:244 +msgid "Description too long" +msgstr "" + +#: planet/js/Publisher.js:341 +msgid "Server Error" +msgstr "" + +#: planet/js/Publisher.js:341 +msgid "Try Again" +msgstr "" + +#: planet/js/StringHelper.js:30 msgid "Planet" msgstr "" -#: js/StringHelper.js:31 +#: planet/js/StringHelper.js:31 msgid "Close Planet" msgstr "" -#: js/StringHelper.js:32 +#: planet/js/StringHelper.js:32 msgid "Open project from file" msgstr "" -#: js/StringHelper.js:34 +#: planet/js/StringHelper.js:34 msgid "Local" msgstr "" -#: js/StringHelper.js:35 +#: planet/js/StringHelper.js:35 msgid "Global" msgstr "" -#: js/StringHelper.js:36 +#: planet/js/StringHelper.js:36 msgid "Search for a project" msgstr "" -#: js/StringHelper.js:38 +#: planet/js/StringHelper.js:38 msgid "Publish Project" msgstr "" -#: js/StringHelper.js:40 +#: planet/js/StringHelper.js:40 msgid "Tags (max 5)" msgstr "" -#: js/StringHelper.js:41 -#: js/StringHelper.js:61 +#: planet/js/StringHelper.js:41 +#: planet/js/StringHelper.js:61 msgid "Description" msgstr "" -#: js/StringHelper.js:42 -#: js/StringHelper.js:67 +#: planet/js/StringHelper.js:42 +#: planet/js/StringHelper.js:67 msgid "Submit" msgstr "" -#: js/StringHelper.js:43 -#: js/StringHelper.js:47 +#: planet/js/StringHelper.js:43 +#: planet/js/StringHelper.js:47 msgid "Cancel" msgstr "" -#: js/StringHelper.js:44 +#: planet/js/StringHelper.js:44 msgid "Delete \\"\\"?" msgstr "" -#: js/StringHelper.js:45 +#: planet/js/StringHelper.js:45 msgid "Permanently delete project \\"\\"?" msgstr "" -#: js/StringHelper.js:48 +#: planet/js/StringHelper.js:48 msgid "Explore Projects" msgstr "" -#: js/StringHelper.js:50 +#: planet/js/StringHelper.js:49 +#: planet/js/helper.js:149 +msgid "Show more tags" +msgstr "" + +#: planet/js/StringHelper.js:50 msgid "Most recent" msgstr "" -#: js/StringHelper.js:51 +#: planet/js/StringHelper.js:51 msgid "Most liked" msgstr "" -#: js/StringHelper.js:52 +#: planet/js/StringHelper.js:52 msgid "Most downloaded" msgstr "" -#: js/StringHelper.js:53 +#: planet/js/StringHelper.js:53 msgid "A-Z" msgstr "" -#: js/StringHelper.js:54 +#: planet/js/StringHelper.js:54 msgid "Sort by" msgstr "" -#: js/StringHelper.js:55 +#: planet/js/StringHelper.js:55 msgid "Load More Projects" msgstr "" -#: js/StringHelper.js:56 +#: planet/js/StringHelper.js:56 msgid "Last Updated" msgstr "" -#: js/StringHelper.js:57 +#: planet/js/StringHelper.js:57 msgid "Creation Date" msgstr "" -#: js/StringHelper.js:58 +#: planet/js/StringHelper.js:58 msgid "Number of Downloads:" msgstr "" -#: js/StringHelper.js:59 +#: planet/js/StringHelper.js:59 msgid "Number of Likes:" msgstr "" -#: js/StringHelper.js:60 +#: planet/js/StringHelper.js:60 msgid "Tags:" msgstr "" -#: js/StringHelper.js:65 +#: planet/js/StringHelper.js:65 msgid "Report projects which violate the Sugar Labs Code of Conduct." msgstr "" -#: js/StringHelper.js:66 +#: planet/js/StringHelper.js:66 msgid "Reason for reporting project" msgstr "" -#: js/StringHelper.js:70 +#: planet/js/StringHelper.js:70 msgid "Download as File" msgstr "" -#: js/GlobalPlanet.js:35 -msgid "No results found." -msgstr "" - -#: js/GlobalPlanet.js:51 -msgid "Remix of" -msgstr "" - -#: js/GlobalPlanet.js:509 -msgid "Cannot connect to server" -msgstr "" - -#: js/Publisher.js:30 -msgid "Feature unavailable - cannot connect to server. Reload Music Blocks to try again." -msgstr "" - -#: js/Publisher.js:218 -#: js/Publisher.js:235 -msgid "This field is required" -msgstr "" - -#: js/Publisher.js:225 -msgid "Title too long" +#: planet/js/helper.js:150 +msgid "Show fewer tags" msgstr "" -#: js/Publisher.js:242 -msgid "Description too long" +#: plugins/accelerometer.rtp:48 +msgid "motion x" msgstr "" -#: js/Publisher.js:339 -msgid "Server Error" +#: plugins/accelerometer.rtp:56 +msgid "motion y" msgstr "" -#: js/Publisher.js:339 -msgid "Try Again" +#: plugins/accelerometer.rtp:64 +msgid "motion z" msgstr "" -#: js/SaveInterface.js:34 -msgid "Open in Music Blocks" +#: plugins/facebook.rtp:27 +msgid "publish" msgstr "" -#: js/SaveInterface.js:35 -msgid "Open in Turtle Blocks" +#: plugins/maths.rtp:62 +msgid "power" msgstr "" -#: plugins/weather.rtp:68 -#: plugins/weather.rtp:97 -msgid "Days ahead must be in the range of -1 to 5." +#: plugins/maths.rtp:62 +msgid "base" msgstr "" -#: plugins/weather.rtp:122 -msgid "forecast" +#: plugins/maths.rtp:62 +msgid "exp" msgstr "" -#: plugins/weather.rtp:123 -#: plugins/weather.rtp:137 -#: plugins/weather.rtp:150 -msgid "city" +#: plugins/maths.rtp:99 +msgid "floor" msgstr "" -#: plugins/weather.rtp:124 -#: plugins/weather.rtp:138 -#: plugins/weather.rtp:151 -msgid "day" +#: plugins/maths.rtp:104 +msgid "ceiling" msgstr "" -#: plugins/weather.rtp:136 -msgid "high" +#: plugins/maths.rtp:109 +msgid "to degrees" msgstr "" -#: plugins/weather.rtp:149 -msgid "low" +#: plugins/maths.rtp:114 +msgid "to radians" msgstr "" #: plugins/nutrition.rtp:104 @@ -9458,45 +9867,6 @@ msgstr "" msgid "water" msgstr "" -#: plugins/maths.rtp:62 -#: plugins/examples.rtp:93 -msgid "power" -msgstr "" - -#: plugins/maths.rtp:62 -#: plugins/examples.rtp:93 -msgid "base" -msgstr "" - -#: plugins/maths.rtp:62 -#: plugins/examples.rtp:93 -msgid "exp" -msgstr "" - -#: plugins/maths.rtp:99 -#: plugins/examples.rtp:130 -msgid "floor" -msgstr "" - -#: plugins/maths.rtp:104 -#: plugins/examples.rtp:135 -msgid "ceiling" -msgstr "" - -#: plugins/maths.rtp:109 -#: plugins/examples.rtp:140 -msgid "to degrees" -msgstr "" - -#: plugins/maths.rtp:114 -#: plugins/examples.rtp:145 -msgid "to radians" -msgstr "" - -#: plugins/facebook.rtp:27 -msgid "publish" -msgstr "" - #: plugins/rodi.rtp:172 msgid "blink" msgstr "" @@ -9525,18 +9895,66 @@ msgstr "" msgid "move" msgstr "" -#: plugins/accelerometer.rtp:48 -msgid "motion x" +#: plugins/weather.rtp:68 +#: plugins/weather.rtp:97 +msgid "Days ahead must be in the range of -1 to 5." msgstr "" -#: plugins/accelerometer.rtp:56 -msgid "motion y" +#: plugins/weather.rtp:122 +msgid "forecast" msgstr "" -#: plugins/accelerometer.rtp:64 -msgid "motion z" +#: plugins/weather.rtp:123 +#: plugins/weather.rtp:137 +#: plugins/weather.rtp:150 +msgid "city" +msgstr "" + +#: plugins/weather.rtp:124 +#: plugins/weather.rtp:138 +#: plugins/weather.rtp:151 +msgid "day" +msgstr "" + +#: plugins/weather.rtp:136 +msgid "high" +msgstr "" + +#: plugins/weather.rtp:149 +msgid "low" msgstr "" +#: js/toolbar.js:70 + +#: js/toolbar.js:130 + +#: js/toolbar.js:194 + +#: js/toolbar.js:249 + +#~msgid "Toggle JavaScript Editor" +#~msgstr "" + +#: js/EnsembleBlocks.js:643 + +#~msgid "The Turrle pitch block returns the current pitch number being played by the specified turtle." +#~msgstr "" + +#: js/PitchActions.js:88 + +#~msgid "The Scalar Step Block must be used inside of a Note Block." +#~msgstr "" + +#: js/PitchActions.js:107 + +#~msgid "The Scalar Step Block must be preceded by a Pitch Block." +#~msgstr "" + +#: js/musickeyboard.js:2840 + +#~msgid "New action blocks generated!" +#~msgstr "" + #: js/toolbar.js:110 #: js/toolbar.js:204 @@ -9877,11 +10295,6 @@ msgstr "" #~msgid "The Time block returns the number of seconds that the program has been running." #~msgstr "" -#: js/help.js:95 - -#~msgid "Take a tour" -#~msgstr "" - #: js/GlobalCard.js:48 #~msgid "More Details" @@ -12780,11 +13193,6 @@ msgstr "" #~msgid "The save-stack button saves a stack onto a custom palette. It appears after a \"long press\" on a stack." #~msgstr "" -#: js/musicutils.js:254 - -#~msgid "Custom" -#~msgstr "" - #: js/basicblocks.js:4785 #~msgid "Rhythm" diff --git a/po/gug.po b/po/gug.po index ff211d84ce..e384f9a832 100644 --- a/po/gug.po +++ b/po/gug.po @@ -20,2268 +20,153 @@ #js/toolbar.js:230 #js/turtledefs.js:504 #js/turtledefs.js:505 -msgid: "Toggle Fullscreen" -msgstr: "Tekove pantalla oî" - -#: js/block.js:632 -#: js/pitchdrummatrix.js:178 -#: js/musicutils.js:37 -#: js/block.js:632 -#: js/pitchdrummatrix.js:178 -#: js/musicutils.js:37 -#: js/block.js:565 -#: js/pitchdrummatrix.js:235 -#: js/musicutils.js:48 -#: js/musicutils.js:57 -#: js/block.js:565 -#: js/pitchdrummatrix.js:235 -#: js/musicutils.js:48 -#: js/musicutils.js:57 -#: js/block.js:567 -#: js/pitchdrummatrix.js:235 -#: js/musicutils.js:48 -#: js/musicutils.js:57 -#: js/block.js:720 -#: js/block.js:3892 -#: js/block.js:3901 -#: js/block.js:3912 -#: js/activity.js:2732 -#: js/analytics.js:475 -#: js/palette.js:676 -#: js/palette.js:685 -#: js/palette.js:694 -#: js/palette.js:703 -#: js/palette.js:1978 -#: js/palette.js:1989 -#: js/palette.js:2000 -#: js/palette.js:2011 -#: js/turtledefs.js:23 -#: js/basicblocks.js:1148 -#: js/basicblocks.js:1159 -#: js/basicblocks.js:2806 -#: js/basicblocks.js:2837 -#: js/basicblocks.js:2844 -#: js/basicblocks.js:2873 -#: js/basicblocks.js:2883 -#: js/basicblocks.js:2915 -#: js/basicblocks.js:2960 -#: js/basicblocks.js:2964 -#: js/basicblocks.js:2970 -#: js/macros.js:44 -#: js/blocks.js:784 -#: js/blocks.js:2385 -#: js/blocks.js:2386 -#: js/blocks.js:2578 -#: js/blocks.js:2784 -#: js/blocks.js:2940 -#: js/blocks.js:3503 -#: js/blocks.js:4308 -#: js/block.js:720 -#: js/block.js:3892 -#: js/block.js:3901 -#: js/block.js:3912 -#: js/activity.js:2732 -#: js/analytics.js:475 -#: js/palette.js:681 -#: js/palette.js:690 -#: js/palette.js:699 -#: js/palette.js:708 -#: js/palette.js:1983 -#: js/palette.js:1994 -#: js/palette.js:2005 -#: js/palette.js:2016 -#: js/turtledefs.js:23 -#: js/basicblocks.js:1148 -#: js/basicblocks.js:1159 -#: js/basicblocks.js:1170 -#: js/basicblocks.js:2817 -#: js/basicblocks.js:2848 -#: js/basicblocks.js:2855 -#: js/basicblocks.js:2884 -#: js/basicblocks.js:2894 -#: js/basicblocks.js:2926 -#: js/basicblocks.js:2971 -#: js/basicblocks.js:2975 -#: js/basicblocks.js:2981 -#: js/macros.js:44 -#: js/blocks.js:784 -#: js/blocks.js:2385 -#: js/blocks.js:2386 -#: js/blocks.js:2578 -#: js/blocks.js:2784 -#: js/blocks.js:2940 -#: js/blocks.js:3514 -#: js/blocks.js:4319 -#: js/block.js:720 -#: js/block.js:3892 -#: js/block.js:3901 -#: js/block.js:3912 -#: js/activity.js:2732 -#: js/analytics.js:475 -#: js/palette.js:681 -#: js/palette.js:690 -#: js/palette.js:699 -#: js/palette.js:708 -#: js/palette.js:1983 -#: js/palette.js:1994 -#: js/palette.js:2005 -#: js/palette.js:2016 -#: js/turtledefs.js:23 -#: js/basicblocks.js:1148 -#: js/basicblocks.js:1159 -#: js/basicblocks.js:1170 -#: js/basicblocks.js:2817 -#: js/basicblocks.js:2848 -#: js/basicblocks.js:2855 -#: js/basicblocks.js:2884 -#: js/basicblocks.js:2894 -#: js/basicblocks.js:2926 -#: js/basicblocks.js:2971 -#: js/basicblocks.js:2975 -#: js/basicblocks.js:2981 -#: js/macros.js:44 -#: js/blocks.js:784 -#: js/blocks.js:2385 -#: js/blocks.js:2386 -#: js/blocks.js:2578 -#: js/blocks.js:2784 -#: js/blocks.js:2940 -#: js/blocks.js:3514 -#: js/blocks.js:4319 -#: js/block.js:863 -#: js/block.js:4105 -#: js/block.js:4114 -#: js/block.js:4125 -#: js/activity.js:2934 -#: js/palette.js:734 -#: js/palette.js:745 -#: js/palette.js:754 -#: js/palette.js:763 -#: js/palette.js:2076 -#: js/palette.js:2088 -#: js/palette.js:2099 -#: js/palette.js:2110 -#: js/turtledefs.js:23 -#: js/basicblocks.js:1406 -#: js/basicblocks.js:1420 -#: js/basicblocks.js:1434 -#: js/basicblocks.js:3700 -#: js/basicblocks.js:3740 -#: js/basicblocks.js:3750 -#: js/basicblocks.js:3788 -#: js/basicblocks.js:3801 -#: js/basicblocks.js:3852 -#: js/basicblocks.js:3897 -#: js/basicblocks.js:3902 -#: js/basicblocks.js:3907 -#: js/rubrics.js:475 -#: js/macros.js:44 -#: js/blocks.js:863 -#: js/blocks.js:2466 -#: js/blocks.js:2467 -#: js/blocks.js:2659 -#: js/blocks.js:2865 -#: js/blocks.js:3021 -#: js/blocks.js:3661 -#: js/blocks.js:4458 -#: js/rhythmruler.js:1138 -#: js/rhythmruler.js:1140 -#: js/rhythmruler.js:1240 -#: js/rhythmruler.js:1242 -#: js/block.js:876 -#: js/block.js:4289 -#: js/block.js:4298 -#: js/block.js:4309 -#: js/activity.js:3042 -#: js/palette.js:750 -#: js/palette.js:759 -#: js/palette.js:768 -#: js/palette.js:777 -#: js/palette.js:2057 -#: js/palette.js:2068 -#: js/palette.js:2079 -#: js/palette.js:2090 -#: js/palette.js:2100 -#: js/turtledefs.js:23 -#: js/basicblocks.js:1407 -#: js/basicblocks.js:1421 -#: js/basicblocks.js:1435 -#: js/basicblocks.js:3720 -#: js/basicblocks.js:3760 -#: js/basicblocks.js:3770 -#: js/basicblocks.js:3808 -#: js/basicblocks.js:3821 -#: js/basicblocks.js:3862 -#: js/basicblocks.js:3917 -#: js/basicblocks.js:3922 -#: js/basicblocks.js:3927 -#: js/rubrics.js:476 -#: js/macros.js:44 -#: js/blocks.js:863 -#: js/blocks.js:2475 -#: js/blocks.js:2476 -#: js/blocks.js:2668 -#: js/blocks.js:2874 -#: js/blocks.js:3030 -#: js/blocks.js:3851 -#: js/blocks.js:4668 -#: js/rhythmruler.js:1149 -#: js/rhythmruler.js:1151 -#: js/rhythmruler.js:1251 -#: js/rhythmruler.js:1253 -#: js/block.js:923 -#: js/block.js:4637 -#: js/block.js:4646 -#: js/block.js:4657 -#: js/activity.js:3061 -#: js/palette.js:737 -#: js/palette.js:746 -#: js/palette.js:755 -#: js/palette.js:764 -#: js/palette.js:2043 -#: js/palette.js:2054 -#: js/palette.js:2065 -#: js/palette.js:2076 -#: js/palette.js:2086 -#: js/turtledefs.js:23 -#: js/basicblocks.js:1445 -#: js/basicblocks.js:1459 -#: js/basicblocks.js:1473 -#: js/basicblocks.js:3776 -#: js/basicblocks.js:3816 -#: js/basicblocks.js:3826 -#: js/basicblocks.js:3864 -#: js/basicblocks.js:3877 -#: js/basicblocks.js:3918 -#: js/basicblocks.js:3973 -#: js/basicblocks.js:3978 -#: js/basicblocks.js:3983 -#: js/rubrics.js:477 -#: js/macros.js:45 -#: js/blocks.js:816 -#: js/blocks.js:2432 -#: js/blocks.js:2433 -#: js/blocks.js:2625 -#: js/blocks.js:2869 -#: js/blocks.js:3025 -#: js/blocks.js:3866 -#: js/blocks.js:4705 -#: js/rhythmruler.js:1149 -#: js/rhythmruler.js:1151 -#: js/rhythmruler.js:1251 -#: js/rhythmruler.js:1253 -#: js/block.js:923 -#: js/block.js:4823 -#: js/block.js:4832 -#: js/block.js:4843 -#: js/activity.js:3079 -#: js/palette.js:737 -#: js/palette.js:746 -#: js/palette.js:755 -#: js/palette.js:764 -#: js/palette.js:2043 -#: js/palette.js:2054 -#: js/palette.js:2065 -#: js/palette.js:2076 -#: js/palette.js:2086 -#: js/turtledefs.js:23 -#: js/basicblocks.js:1441 -#: js/basicblocks.js:1455 -#: js/basicblocks.js:1469 -#: js/basicblocks.js:3762 -#: js/basicblocks.js:3802 -#: js/basicblocks.js:3812 -#: js/basicblocks.js:3850 -#: js/basicblocks.js:3863 -#: js/basicblocks.js:3904 -#: js/basicblocks.js:3959 -#: js/basicblocks.js:3964 -#: js/basicblocks.js:3969 -#: js/rubrics.js:477 -#: js/macros.js:45 -#: js/blocks.js:816 -#: js/blocks.js:2430 -#: js/blocks.js:2431 -#: js/blocks.js:2623 -#: js/blocks.js:2867 -#: js/blocks.js:3023 -#: js/blocks.js:3864 -#: js/blocks.js:4702 -#: js/rhythmruler.js:1149 -#: js/rhythmruler.js:1151 -#: js/rhythmruler.js:1251 -#: js/rhythmruler.js:1253 -#: js/block.js:923 -#: js/block.js:4836 -#: js/block.js:4845 -#: js/block.js:4856 -#: js/activity.js:3089 -#: js/palette.js:737 -#: js/palette.js:746 -#: js/palette.js:755 -#: js/palette.js:764 -#: js/palette.js:2043 -#: js/palette.js:2054 -#: js/palette.js:2065 -#: js/palette.js:2076 -#: js/palette.js:2086 -#: js/turtledefs.js:23 -#: js/basicblocks.js:1441 -#: js/basicblocks.js:1455 -#: js/basicblocks.js:1469 -#: js/basicblocks.js:3762 -#: js/basicblocks.js:3802 -#: js/basicblocks.js:3812 -#: js/basicblocks.js:3850 -#: js/basicblocks.js:3863 -#: js/basicblocks.js:3904 -#: js/basicblocks.js:3959 -#: js/basicblocks.js:3964 -#: js/basicblocks.js:3969 -#: js/rubrics.js:477 -#: js/macros.js:45 -#: js/blocks.js:816 -#: js/blocks.js:2432 -#: js/blocks.js:2433 -#: js/blocks.js:2625 -#: js/blocks.js:2869 -#: js/blocks.js:3025 -#: js/blocks.js:3866 -#: js/blocks.js:4704 -#: js/rhythmruler.js:1149 -#: js/rhythmruler.js:1151 -#: js/rhythmruler.js:1251 -#: js/rhythmruler.js:1253 -#: js/block.js:923 -#: js/block.js:4841 -#: js/block.js:4850 -#: js/block.js:4861 -#: js/activity.js:3079 -#: js/palette.js:737 -#: js/palette.js:746 -#: js/palette.js:755 -#: js/palette.js:764 -#: js/palette.js:2043 -#: js/palette.js:2054 -#: js/palette.js:2065 -#: js/palette.js:2076 -#: js/palette.js:2086 -#: js/turtledefs.js:23 -#: js/basicblocks.js:1474 -#: js/basicblocks.js:1488 -#: js/basicblocks.js:1502 -#: js/basicblocks.js:3808 -#: js/basicblocks.js:3848 -#: js/basicblocks.js:3858 -#: js/basicblocks.js:3896 -#: js/basicblocks.js:3909 -#: js/basicblocks.js:3950 -#: js/basicblocks.js:4005 -#: js/basicblocks.js:4010 -#: js/basicblocks.js:4015 -#: js/rubrics.js:477 -#: js/macros.js:45 -#: js/blocks.js:816 -#: js/blocks.js:2433 -#: js/blocks.js:2434 -#: js/blocks.js:2626 -#: js/blocks.js:2870 -#: js/blocks.js:3026 -#: js/blocks.js:3867 -#: js/blocks.js:4705 -#: js/rhythmruler.js:1157 -#: js/rhythmruler.js:1159 -#: js/rhythmruler.js:1259 -#: js/rhythmruler.js:1261 -#: js/block.js:923 -#: js/block.js:4845 -#: js/block.js:4854 -#: js/block.js:4865 -#: js/activity.js:3083 -#: js/palette.js:765 -#: js/palette.js:774 -#: js/palette.js:783 -#: js/palette.js:792 -#: js/palette.js:2072 -#: js/palette.js:2083 -#: js/palette.js:2094 -#: js/palette.js:2105 -#: js/palette.js:2115 -#: js/turtledefs.js:25 -#: js/basicblocks.js:1474 -#: js/basicblocks.js:1488 -#: js/basicblocks.js:1502 -#: js/basicblocks.js:3808 -#: js/basicblocks.js:3848 -#: js/basicblocks.js:3858 -#: js/basicblocks.js:3896 -#: js/basicblocks.js:3909 -#: js/basicblocks.js:3950 -#: js/basicblocks.js:4005 -#: js/basicblocks.js:4010 -#: js/basicblocks.js:4015 -#: js/rubrics.js:477 -#: js/macros.js:45 -#: js/blocks.js:816 -#: js/blocks.js:2433 -#: js/blocks.js:2434 -#: js/blocks.js:2626 -#: js/blocks.js:2870 -#: js/blocks.js:3026 -#: js/blocks.js:3867 -#: js/blocks.js:4705 -#: js/rhythmruler.js:1157 -#: js/rhythmruler.js:1159 -#: js/rhythmruler.js:1259 -#: js/rhythmruler.js:1261 -#: js/block.js:923 -#: js/block.js:4845 -#: js/block.js:4854 -#: js/block.js:4865 -#: js/activity.js:3083 -#: js/palette.js:765 -#: js/palette.js:774 -#: js/palette.js:783 -#: js/palette.js:792 -#: js/palette.js:2072 -#: js/palette.js:2083 -#: js/palette.js:2094 -#: js/palette.js:2105 -#: js/palette.js:2115 -#: js/turtledefs.js:25 -#: js/basicblocks.js:1474 -#: js/basicblocks.js:1488 -#: js/basicblocks.js:1502 -#: js/basicblocks.js:3808 -#: js/basicblocks.js:3848 -#: js/basicblocks.js:3858 -#: js/basicblocks.js:3896 -#: js/basicblocks.js:3909 -#: js/basicblocks.js:3950 -#: js/basicblocks.js:4005 -#: js/basicblocks.js:4010 -#: js/basicblocks.js:4015 -#: js/rubrics.js:477 -#: js/macros.js:45 -#: js/blocks.js:816 -#: js/blocks.js:2433 -#: js/blocks.js:2434 -#: js/blocks.js:2626 -#: js/blocks.js:2870 -#: js/blocks.js:3026 -#: js/blocks.js:3867 -#: js/blocks.js:4705 -#: js/rhythmruler.js:1157 -#: js/rhythmruler.js:1159 -#: js/rhythmruler.js:1259 -#: js/rhythmruler.js:1261 -#: js/block.js:923 -#: js/block.js:4845 -#: js/block.js:4854 -#: js/block.js:4865 -#: js/activity.js:3083 -#: js/palette.js:765 -#: js/palette.js:774 -#: js/palette.js:783 -#: js/palette.js:792 -#: js/palette.js:2072 -#: js/palette.js:2083 -#: js/palette.js:2094 -#: js/palette.js:2105 -#: js/palette.js:2115 -#: js/turtledefs.js:25 -#: js/basicblocks.js:1474 -#: js/basicblocks.js:1488 -#: js/basicblocks.js:1502 -#: js/basicblocks.js:3808 -#: js/basicblocks.js:3848 -#: js/basicblocks.js:3858 -#: js/basicblocks.js:3896 -#: js/basicblocks.js:3909 -#: js/basicblocks.js:3950 -#: js/basicblocks.js:4005 -#: js/basicblocks.js:4010 -#: js/basicblocks.js:4015 -#: js/rubrics.js:477 -#: js/macros.js:45 -#: js/blocks.js:816 -#: js/blocks.js:2433 -#: js/blocks.js:2434 -#: js/blocks.js:2626 -#: js/blocks.js:2870 -#: js/blocks.js:3026 -#: js/blocks.js:3867 -#: js/blocks.js:4705 -#: js/rhythmruler.js:1157 -#: js/rhythmruler.js:1159 -#: js/rhythmruler.js:1259 -#: js/rhythmruler.js:1261 -#: js/block.js:926 -#: js/block.js:4883 -#: js/block.js:4892 -#: js/block.js:4903 -#: js/activity.js:3083 -#: js/palette.js:765 -#: js/palette.js:774 -#: js/palette.js:783 -#: js/palette.js:792 -#: js/palette.js:2075 -#: js/palette.js:2086 -#: js/palette.js:2097 -#: js/palette.js:2108 -#: js/palette.js:2118 -#: js/turtledefs.js:25 -#: js/basicblocks.js:1474 -#: js/basicblocks.js:1488 -#: js/basicblocks.js:1502 -#: js/basicblocks.js:3830 -#: js/basicblocks.js:3870 -#: js/basicblocks.js:3880 -#: js/basicblocks.js:3918 -#: js/basicblocks.js:3931 -#: js/basicblocks.js:3972 -#: js/basicblocks.js:4027 -#: js/basicblocks.js:4032 -#: js/basicblocks.js:4037 -#: js/rubrics.js:478 -#: js/macros.js:45 -#: js/blocks.js:816 -#: js/blocks.js:2437 -#: js/blocks.js:2438 -#: js/blocks.js:2630 -#: js/blocks.js:2874 -#: js/blocks.js:3030 -#: js/blocks.js:3871 -#: js/blocks.js:4724 -#: js/rhythmruler.js:1157 -#: js/rhythmruler.js:1159 -#: js/rhythmruler.js:1259 -#: js/rhythmruler.js:1261 -#: js/block.js:926 -#: js/block.js:4883 -#: js/block.js:4892 -#: js/block.js:4903 -#: js/activity.js:3078 -#: js/palette.js:765 -#: js/palette.js:774 -#: js/palette.js:783 -#: js/palette.js:792 -#: js/palette.js:2075 -#: js/palette.js:2086 -#: js/palette.js:2097 -#: js/palette.js:2108 -#: js/palette.js:2118 -#: js/turtledefs.js:25 -#: js/basicblocks.js:1475 -#: js/basicblocks.js:1489 -#: js/basicblocks.js:1503 -#: js/basicblocks.js:3832 -#: js/basicblocks.js:3872 -#: js/basicblocks.js:3882 -#: js/basicblocks.js:3920 -#: js/basicblocks.js:3933 -#: js/basicblocks.js:3974 -#: js/basicblocks.js:4029 -#: js/basicblocks.js:4034 -#: js/basicblocks.js:4039 -#: js/rubrics.js:478 -#: js/macros.js:45 -#: js/blocks.js:816 -#: js/blocks.js:2437 -#: js/blocks.js:2438 -#: js/blocks.js:2630 -#: js/blocks.js:2874 -#: js/blocks.js:3030 -#: js/blocks.js:3871 -#: js/blocks.js:4724 -#: js/rhythmruler.js:1162 -#: js/rhythmruler.js:1164 -#: js/rhythmruler.js:1272 -#: js/rhythmruler.js:1274 -#: js/block.js:1046 -#: js/block.js:5109 -#: js/block.js:5118 -#: js/block.js:5129 -#: js/activity.js:3147 -#: js/palette.js:766 -#: js/palette.js:775 -#: js/palette.js:784 -#: js/palette.js:793 -#: js/palette.js:2076 -#: js/palette.js:2087 -#: js/palette.js:2098 -#: js/palette.js:2109 -#: js/palette.js:2119 -#: js/turtledefs.js:25 -#: js/basicblocks.js:1504 -#: js/basicblocks.js:1524 -#: js/basicblocks.js:1538 -#: js/basicblocks.js:3894 -#: js/basicblocks.js:3934 -#: js/basicblocks.js:3944 -#: js/basicblocks.js:3992 -#: js/basicblocks.js:4005 -#: js/basicblocks.js:4052 -#: js/basicblocks.js:4107 -#: js/basicblocks.js:4112 -#: js/basicblocks.js:4117 -#: js/rubrics.js:478 -#: js/macros.js:45 -#: js/blocks.js:816 -#: js/blocks.js:2437 -#: js/blocks.js:2438 -#: js/blocks.js:2630 -#: js/blocks.js:2874 -#: js/blocks.js:3030 -#: js/blocks.js:3940 -#: js/blocks.js:4793 -#: js/rhythmruler.js:1162 -#: js/rhythmruler.js:1164 -#: js/rhythmruler.js:1272 -#: js/rhythmruler.js:1274 -#: js/block.js:1050 -#: js/block.js:5120 -#: js/block.js:5129 -#: js/block.js:5140 -#: js/activity.js:2267 -#: js/palette.js:766 -#: js/palette.js:775 -#: js/palette.js:784 -#: js/palette.js:793 -#: js/palette.js:2094 -#: js/palette.js:2105 -#: js/palette.js:2116 -#: js/palette.js:2127 -#: js/palette.js:2137 -#: js/turtledefs.js:25 -#: js/basicblocks.js:1514 -#: js/basicblocks.js:1534 -#: js/basicblocks.js:1548 -#: js/basicblocks.js:3942 -#: js/basicblocks.js:3982 -#: js/basicblocks.js:3992 -#: js/basicblocks.js:4040 -#: js/basicblocks.js:4053 -#: js/basicblocks.js:4100 -#: js/basicblocks.js:4155 -#: js/basicblocks.js:4160 -#: js/basicblocks.js:4165 -#: js/rubrics.js:478 -#: js/macros.js:45 -#: js/blocks.js:809 -#: js/blocks.js:2430 -#: js/blocks.js:2431 -#: js/blocks.js:2623 -#: js/blocks.js:2867 -#: js/blocks.js:3023 -#: js/blocks.js:3931 -#: js/blocks.js:4784 -#: js/rhythmruler.js:1162 -#: js/rhythmruler.js:1164 -#: js/rhythmruler.js:1272 -#: js/rhythmruler.js:1274 -#: js/block.js:1050 -#: js/block.js:5120 -#: js/block.js:5129 -#: js/block.js:5140 -#: js/activity.js:2267 -#: js/palette.js:766 -#: js/palette.js:775 -#: js/palette.js:784 -#: js/palette.js:793 -#: js/palette.js:2094 -#: js/palette.js:2105 -#: js/palette.js:2116 -#: js/palette.js:2127 -#: js/palette.js:2137 -#: js/turtledefs.js:25 -#: js/basicblocks.js:1519 -#: js/basicblocks.js:1539 -#: js/basicblocks.js:1553 -#: js/basicblocks.js:3959 -#: js/basicblocks.js:3999 -#: js/basicblocks.js:4009 -#: js/basicblocks.js:4057 -#: js/basicblocks.js:4070 -#: js/basicblocks.js:4117 -#: js/basicblocks.js:4172 -#: js/basicblocks.js:4177 -#: js/basicblocks.js:4182 -#: js/rubrics.js:478 -#: js/macros.js:45 -#: js/blocks.js:809 -#: js/blocks.js:2430 -#: js/blocks.js:2431 -#: js/blocks.js:2623 -#: js/blocks.js:2867 -#: js/blocks.js:3023 -#: js/blocks.js:3931 -#: js/blocks.js:4784 -#: js/rhythmruler.js:1162 -#: js/rhythmruler.js:1164 -#: js/rhythmruler.js:1272 -#: js/rhythmruler.js:1274 -#: js/block.js:1050 -#: js/block.js:5120 -#: js/block.js:5129 -#: js/block.js:5140 -#: js/activity.js:2267 -#: js/palette.js:766 -#: js/palette.js:775 -#: js/palette.js:784 -#: js/palette.js:793 -#: js/palette.js:2094 -#: js/palette.js:2105 -#: js/palette.js:2116 -#: js/palette.js:2127 -#: js/palette.js:2137 -#: js/turtledefs.js:25 -#: js/basicblocks.js:1519 -#: js/basicblocks.js:1539 -#: js/basicblocks.js:1553 -#: js/basicblocks.js:3959 -#: js/basicblocks.js:3999 -#: js/basicblocks.js:4009 -#: js/basicblocks.js:4057 -#: js/basicblocks.js:4070 -#: js/basicblocks.js:4117 -#: js/basicblocks.js:4172 -#: js/basicblocks.js:4177 -#: js/basicblocks.js:4182 -#: js/rubrics.js:478 -#: js/macros.js:45 -#: js/blocks.js:808 -#: js/blocks.js:2429 -#: js/blocks.js:2430 -#: js/blocks.js:2622 -#: js/blocks.js:2866 -#: js/blocks.js:3022 -#: js/blocks.js:3930 -#: js/blocks.js:4783 -#: js/rhythmruler.js:1162 -#: js/rhythmruler.js:1164 -#: js/rhythmruler.js:1272 -#: js/rhythmruler.js:1274 -#: js/block.js:1050 -#: js/block.js:5120 -#: js/block.js:5129 -#: js/block.js:5140 -#: js/activity.js:2267 -#: js/palette.js:766 -#: js/palette.js:775 -#: js/palette.js:784 -#: js/palette.js:793 -#: js/palette.js:2094 -#: js/palette.js:2105 -#: js/palette.js:2116 -#: js/palette.js:2127 -#: js/palette.js:2137 -#: js/turtledefs.js:25 -#: js/basicblocks.js:1519 -#: js/basicblocks.js:1539 -#: js/basicblocks.js:1553 -#: js/basicblocks.js:3959 -#: js/basicblocks.js:3999 -#: js/basicblocks.js:4009 -#: js/basicblocks.js:4057 -#: js/basicblocks.js:4070 -#: js/basicblocks.js:4117 -#: js/basicblocks.js:4172 -#: js/basicblocks.js:4177 -#: js/basicblocks.js:4182 -#: js/rubrics.js:478 -#: js/macros.js:45 -#: js/blocks.js:808 -#: js/blocks.js:2429 -#: js/blocks.js:2430 -#: js/blocks.js:2622 -#: js/blocks.js:2866 -#: js/blocks.js:3022 -#: js/blocks.js:3930 -#: js/blocks.js:4783 -#: js/rhythmruler.js:1162 -#: js/rhythmruler.js:1164 -#: js/rhythmruler.js:1272 -#: js/rhythmruler.js:1274 -#: js/block.js:1050 -#: js/block.js:5120 -#: js/block.js:5129 -#: js/block.js:5140 -#: js/activity.js:2267 -#: js/palette.js:766 -#: js/palette.js:775 -#: js/palette.js:784 -#: js/palette.js:793 -#: js/palette.js:2094 -#: js/palette.js:2105 -#: js/palette.js:2116 -#: js/palette.js:2127 -#: js/palette.js:2137 -#: js/turtledefs.js:25 -#: js/basicblocks.js:1526 -#: js/basicblocks.js:1546 -#: js/basicblocks.js:1560 -#: js/basicblocks.js:3966 -#: js/basicblocks.js:4006 -#: js/basicblocks.js:4016 -#: js/basicblocks.js:4064 -#: js/basicblocks.js:4077 -#: js/basicblocks.js:4124 -#: js/basicblocks.js:4179 -#: js/basicblocks.js:4184 -#: js/basicblocks.js:4189 -#: js/rubrics.js:478 -#: js/macros.js:45 -#: js/blocks.js:808 -#: js/blocks.js:2429 -#: js/blocks.js:2430 -#: js/blocks.js:2622 -#: js/blocks.js:2866 -#: js/blocks.js:3022 -#: js/blocks.js:3930 -#: js/blocks.js:4783 -#: js/rhythmruler.js:1162 -#: js/rhythmruler.js:1164 -#: js/rhythmruler.js:1272 -#: js/rhythmruler.js:1274 -#: js/block.js:1162 -#: js/block.js:5410 -#: js/block.js:5419 -#: js/block.js:5430 -#: js/activity.js:2268 -#: js/palette.js:770 -#: js/palette.js:779 -#: js/palette.js:788 -#: js/palette.js:797 -#: js/palette.js:2098 -#: js/palette.js:2109 -#: js/palette.js:2120 -#: js/palette.js:2131 -#: js/palette.js:2141 -#: js/turtledefs.js:31 -#: js/basicblocks.js:1528 -#: js/basicblocks.js:1548 -#: js/basicblocks.js:1562 -#: js/basicblocks.js:3968 -#: js/basicblocks.js:4008 -#: js/basicblocks.js:4018 -#: js/basicblocks.js:4066 -#: js/basicblocks.js:4079 -#: js/basicblocks.js:4126 -#: js/basicblocks.js:4181 -#: js/basicblocks.js:4186 -#: js/basicblocks.js:4191 -#: js/rubrics.js:478 -#: js/macros.js:45 -#: js/blocks.js:1023 -#: js/blocks.js:2839 -#: js/blocks.js:2840 -#: js/blocks.js:3054 -#: js/blocks.js:3356 -#: js/blocks.js:3549 -#: js/blocks.js:4588 -#: js/blocks.js:5446 -#: js/musickeyboard.js:369 -#: js/pitchtimematrix.js:1612 -#: js/rhythmruler.js:1171 -#: js/rhythmruler.js:1173 -#: js/rhythmruler.js:1281 -#: js/rhythmruler.js:1283 -#: js/block.js:1162 -#: js/block.js:5410 -#: js/block.js:5419 -#: js/block.js:5430 -#: js/activity.js:2268 -#: js/palette.js:770 -#: js/palette.js:779 -#: js/palette.js:788 -#: js/palette.js:797 -#: js/palette.js:2098 -#: js/palette.js:2109 -#: js/palette.js:2120 -#: js/palette.js:2131 -#: js/palette.js:2141 -#: js/turtledefs.js:35 -#: js/basicblocks.js:1528 -#: js/basicblocks.js:1548 -#: js/basicblocks.js:1562 -#: js/basicblocks.js:3968 -#: js/basicblocks.js:4008 -#: js/basicblocks.js:4018 -#: js/basicblocks.js:4066 -#: js/basicblocks.js:4079 -#: js/basicblocks.js:4126 -#: js/basicblocks.js:4181 -#: js/basicblocks.js:4186 -#: js/basicblocks.js:4191 -#: js/rubrics.js:478 -#: js/macros.js:45 -#: js/blocks.js:1023 -#: js/blocks.js:2839 -#: js/blocks.js:2840 -#: js/blocks.js:3054 -#: js/blocks.js:3356 -#: js/blocks.js:3549 -#: js/blocks.js:4588 -#: js/blocks.js:5446 -#: js/musickeyboard.js:369 -#: js/pitchtimematrix.js:1612 -#: js/rhythmruler.js:1171 -#: js/rhythmruler.js:1173 -#: js/rhythmruler.js:1281 -#: js/rhythmruler.js:1283 -#: js/block.js:1162 -#: js/block.js:5410 -#: js/block.js:5419 -#: js/block.js:5430 -#: js/activity.js:2133 -#: js/palette.js:770 -#: js/palette.js:779 -#: js/palette.js:788 -#: js/palette.js:797 -#: js/palette.js:2098 -#: js/palette.js:2109 -#: js/palette.js:2120 -#: js/palette.js:2131 -#: js/palette.js:2141 -#: js/turtledefs.js:35 -#: js/basicblocks.js:1528 -#: js/basicblocks.js:1548 -#: js/basicblocks.js:1562 -#: js/basicblocks.js:3968 -#: js/basicblocks.js:4008 -#: js/basicblocks.js:4018 -#: js/basicblocks.js:4066 -#: js/basicblocks.js:4079 -#: js/basicblocks.js:4126 -#: js/basicblocks.js:4181 -#: js/basicblocks.js:4186 -#: js/basicblocks.js:4191 -#: js/rubrics.js:478 -#: js/macros.js:45 -#: js/blocks.js:1023 -#: js/blocks.js:2839 -#: js/blocks.js:2840 -#: js/blocks.js:3054 -#: js/blocks.js:3356 -#: js/blocks.js:3549 -#: js/blocks.js:4588 -#: js/blocks.js:5446 -#: js/musickeyboard.js:369 -#: js/pitchtimematrix.js:1612 -#: js/rhythmruler.js:1171 -#: js/rhythmruler.js:1173 -#: js/rhythmruler.js:1281 -#: js/rhythmruler.js:1283 -#: js/block.js:1162 -#: js/block.js:5410 -#: js/block.js:5419 -#: js/block.js:5430 -#: js/activity.js:2133 -#: js/palette.js:770 -#: js/palette.js:779 -#: js/palette.js:788 -#: js/palette.js:797 -#: js/palette.js:2098 -#: js/palette.js:2109 -#: js/palette.js:2120 -#: js/palette.js:2131 -#: js/palette.js:2141 -#: js/turtledefs.js:35 -#: js/basicblocks.js:1528 -#: js/basicblocks.js:1548 -#: js/basicblocks.js:1562 -#: js/basicblocks.js:3968 -#: js/basicblocks.js:4008 -#: js/basicblocks.js:4018 -#: js/basicblocks.js:4066 -#: js/basicblocks.js:4079 -#: js/basicblocks.js:4126 -#: js/basicblocks.js:4181 -#: js/basicblocks.js:4186 -#: js/basicblocks.js:4191 -#: js/rubrics.js:478 -#: js/macros.js:45 -#: js/blocks.js:1023 -#: js/blocks.js:2839 -#: js/blocks.js:2840 -#: js/blocks.js:3054 -#: js/blocks.js:3356 -#: js/blocks.js:3549 -#: js/blocks.js:4588 -#: js/blocks.js:5446 -#: js/musickeyboard.js:369 -#: js/pitchtimematrix.js:1612 -#: js/rhythmruler.js:1171 -#: js/rhythmruler.js:1173 -#: js/rhythmruler.js:1281 -#: js/rhythmruler.js:1283 -#: js/block.js:1162 -#: js/block.js:5410 -#: js/block.js:5419 -#: js/block.js:5430 -#: js/activity.js:2127 -#: js/palette.js:770 -#: js/palette.js:779 -#: js/palette.js:788 -#: js/palette.js:797 -#: js/palette.js:2098 -#: js/palette.js:2109 -#: js/palette.js:2120 -#: js/palette.js:2131 -#: js/palette.js:2141 -#: js/turtledefs.js:35 -#: js/basicblocks.js:1528 -#: js/basicblocks.js:1548 -#: js/basicblocks.js:1562 -#: js/basicblocks.js:3968 -#: js/basicblocks.js:4008 -#: js/basicblocks.js:4018 -#: js/basicblocks.js:4066 -#: js/basicblocks.js:4079 -#: js/basicblocks.js:4127 -#: js/basicblocks.js:4182 -#: js/basicblocks.js:4187 -#: js/basicblocks.js:4192 -#: js/rubrics.js:478 -#: js/macros.js:45 -#: js/blocks.js:1023 -#: js/blocks.js:2849 -#: js/blocks.js:2850 -#: js/blocks.js:3064 -#: js/blocks.js:3366 -#: js/blocks.js:3559 -#: js/blocks.js:4598 -#: js/blocks.js:5455 -#: js/musickeyboard.js:369 -#: js/pitchtimematrix.js:1612 -#: js/rhythmruler.js:1171 -#: js/rhythmruler.js:1173 -#: js/rhythmruler.js:1281 -#: js/rhythmruler.js:1283 -#: js/block.js:1162 -#: js/block.js:5410 -#: js/block.js:5419 -#: js/block.js:5430 -#: js/activity.js:2127 -#: js/palette.js:770 -#: js/palette.js:779 -#: js/palette.js:788 -#: js/palette.js:797 -#: js/palette.js:2098 -#: js/palette.js:2109 -#: js/palette.js:2120 -#: js/palette.js:2131 -#: js/palette.js:2141 -#: js/turtledefs.js:35 -#: js/basicblocks.js:1527 -#: js/basicblocks.js:1547 -#: js/basicblocks.js:1561 -#: js/basicblocks.js:3967 -#: js/basicblocks.js:4007 -#: js/basicblocks.js:4017 -#: js/basicblocks.js:4065 -#: js/basicblocks.js:4078 -#: js/basicblocks.js:4126 -#: js/basicblocks.js:4181 -#: js/basicblocks.js:4186 -#: js/basicblocks.js:4191 -#: js/rubrics.js:478 -#: js/macros.js:45 -#: js/blocks.js:1023 -#: js/blocks.js:2849 -#: js/blocks.js:2850 -#: js/blocks.js:3064 -#: js/blocks.js:3366 -#: js/blocks.js:3559 -#: js/blocks.js:4598 -#: js/blocks.js:5455 -#: js/musickeyboard.js:369 -#: js/pitchtimematrix.js:1612 -#: js/rhythmruler.js:1171 -#: js/rhythmruler.js:1173 -#: js/rhythmruler.js:1281 -#: js/rhythmruler.js:1283 -#: js/block.js:1162 -#: js/block.js:5410 -#: js/block.js:5419 -#: js/block.js:5430 -#: js/activity.js:2127 -#: js/palette.js:770 -#: js/palette.js:779 -#: js/palette.js:788 -#: js/palette.js:797 -#: js/palette.js:2098 -#: js/palette.js:2109 -#: js/palette.js:2120 -#: js/palette.js:2131 -#: js/palette.js:2141 -#: js/turtledefs.js:35 -#: js/basicblocks.js:1527 -#: js/basicblocks.js:1547 -#: js/basicblocks.js:1561 -#: js/basicblocks.js:3967 -#: js/basicblocks.js:4007 -#: js/basicblocks.js:4017 -#: js/basicblocks.js:4065 -#: js/basicblocks.js:4078 -#: js/basicblocks.js:4126 -#: js/basicblocks.js:4181 -#: js/basicblocks.js:4186 -#: js/basicblocks.js:4191 -#: js/rubrics.js:478 -#: js/macros.js:45 -#: js/blocks.js:1023 -#: js/blocks.js:2849 -#: js/blocks.js:2850 -#: js/blocks.js:3064 -#: js/blocks.js:3366 -#: js/blocks.js:3559 -#: js/blocks.js:4598 -#: js/blocks.js:5455 -#: js/musickeyboard.js:369 -#: js/pitchtimematrix.js:1612 -#: js/rhythmruler.js:1171 -#: js/rhythmruler.js:1173 -#: js/rhythmruler.js:1281 -#: js/rhythmruler.js:1283 -#: js/block.js:1162 -#: js/block.js:5410 -#: js/block.js:5419 -#: js/block.js:5430 -#: js/activity.js:2127 -#: js/palette.js:770 -#: js/palette.js:779 -#: js/palette.js:788 -#: js/palette.js:797 -#: js/palette.js:2098 -#: js/palette.js:2109 -#: js/palette.js:2120 -#: js/palette.js:2131 -#: js/palette.js:2141 -#: js/turtledefs.js:35 -#: js/basicblocks.js:1527 -#: js/basicblocks.js:1547 -#: js/basicblocks.js:1561 -#: js/basicblocks.js:3967 -#: js/basicblocks.js:4007 -#: js/basicblocks.js:4017 -#: js/basicblocks.js:4065 -#: js/basicblocks.js:4078 -#: js/basicblocks.js:4126 -#: js/basicblocks.js:4181 -#: js/basicblocks.js:4186 -#: js/basicblocks.js:4191 -#: js/rubrics.js:478 -#: js/macros.js:45 -#: js/blocks.js:1023 -#: js/blocks.js:2849 -#: js/blocks.js:2850 -#: js/blocks.js:3064 -#: js/blocks.js:3366 -#: js/blocks.js:3559 -#: js/blocks.js:4598 -#: js/blocks.js:5455 -#: js/musickeyboard.js:369 -#: js/pitchtimematrix.js:1612 -#: js/rhythmruler.js:1171 -#: js/rhythmruler.js:1173 -#: js/rhythmruler.js:1281 -#: js/rhythmruler.js:1283 -#: js/block.js:1162 -#: js/block.js:5410 -#: js/block.js:5419 -#: js/block.js:5430 -#: js/activity.js:2127 -#: js/palette.js:770 -#: js/palette.js:779 -#: js/palette.js:788 -#: js/palette.js:797 -#: js/palette.js:2098 -#: js/palette.js:2109 -#: js/palette.js:2120 -#: js/palette.js:2131 -#: js/palette.js:2141 -#: js/turtledefs.js:35 -#: js/basicblocks.js:1531 -#: js/basicblocks.js:1551 -#: js/basicblocks.js:1565 -#: js/basicblocks.js:3971 -#: js/basicblocks.js:4011 -#: js/basicblocks.js:4021 -#: js/basicblocks.js:4069 -#: js/basicblocks.js:4082 -#: js/basicblocks.js:4130 -#: js/basicblocks.js:4185 -#: js/basicblocks.js:4190 -#: js/basicblocks.js:4195 -#: js/rubrics.js:478 -#: js/macros.js:45 -#: js/blocks.js:1023 -#: js/blocks.js:2849 -#: js/blocks.js:2850 -#: js/blocks.js:3064 -#: js/blocks.js:3366 -#: js/blocks.js:3559 -#: js/blocks.js:4598 -#: js/blocks.js:5455 -#: js/musickeyboard.js:369 -#: js/pitchtimematrix.js:1612 -#: js/rhythmruler.js:1171 -#: js/rhythmruler.js:1173 -#: js/rhythmruler.js:1281 -#: js/rhythmruler.js:1283 -#: js/block.js:1162 -#: js/block.js:5410 -#: js/block.js:5419 -#: js/block.js:5430 -#: js/activity.js:2127 -#: js/palette.js:770 -#: js/palette.js:779 -#: js/palette.js:788 -#: js/palette.js:797 -#: js/palette.js:2098 -#: js/palette.js:2109 -#: js/palette.js:2120 -#: js/palette.js:2131 -#: js/palette.js:2141 -#: js/turtledefs.js:35 -#: js/basicblocks.js:1531 -#: js/basicblocks.js:1551 -#: js/basicblocks.js:1565 -#: js/basicblocks.js:3971 -#: js/basicblocks.js:4011 -#: js/basicblocks.js:4021 -#: js/basicblocks.js:4069 -#: js/basicblocks.js:4082 -#: js/basicblocks.js:4130 -#: js/basicblocks.js:4185 -#: js/basicblocks.js:4190 -#: js/basicblocks.js:4195 -#: js/rubrics.js:478 -#: js/macros.js:45 -#: js/blocks.js:1023 -#: js/blocks.js:2849 -#: js/blocks.js:2850 -#: js/blocks.js:3064 -#: js/blocks.js:3366 -#: js/blocks.js:3559 -#: js/blocks.js:4598 -#: js/blocks.js:5455 -#: js/musickeyboard.js:369 -#: js/pitchtimematrix.js:1612 -#: js/rhythmruler.js:1171 -#: js/rhythmruler.js:1173 -#: js/rhythmruler.js:1281 -#: js/rhythmruler.js:1283 -#: js/block.js:1162 -#: js/block.js:5410 -#: js/block.js:5419 -#: js/block.js:5430 -#: js/activity.js:2127 -#: js/palette.js:770 -#: js/palette.js:779 -#: js/palette.js:788 -#: js/palette.js:797 -#: js/palette.js:2098 -#: js/palette.js:2109 -#: js/palette.js:2120 -#: js/palette.js:2131 -#: js/palette.js:2141 -#: js/turtledefs.js:35 -#: js/basicblocks.js:1531 -#: js/basicblocks.js:1551 -#: js/basicblocks.js:1565 -#: js/basicblocks.js:3971 -#: js/basicblocks.js:4011 -#: js/basicblocks.js:4021 -#: js/basicblocks.js:4069 -#: js/basicblocks.js:4082 -#: js/basicblocks.js:4130 -#: js/basicblocks.js:4185 -#: js/basicblocks.js:4190 -#: js/basicblocks.js:4195 -#: js/rubrics.js:478 -#: js/macros.js:45 -#: js/blocks.js:1023 -#: js/blocks.js:2849 -#: js/blocks.js:2850 -#: js/blocks.js:3064 -#: js/blocks.js:3366 -#: js/blocks.js:3559 -#: js/blocks.js:4598 -#: js/blocks.js:5455 -#: js/musickeyboard.js:369 -#: js/pitchtimematrix.js:1612 -#: js/rhythmruler.js:1171 -#: js/rhythmruler.js:1173 -#: js/rhythmruler.js:1281 -#: js/rhythmruler.js:1283 -#: js/block.js:1162 -#: js/block.js:5413 -#: js/block.js:5422 -#: js/block.js:5433 -#: js/activity.js:2127 -#: js/palette.js:770 -#: js/palette.js:779 -#: js/palette.js:788 -#: js/palette.js:797 -#: js/palette.js:2098 -#: js/palette.js:2109 -#: js/palette.js:2120 -#: js/palette.js:2131 -#: js/palette.js:2141 -#: js/turtledefs.js:35 -#: js/basicblocks.js:1537 -#: js/basicblocks.js:1557 -#: js/basicblocks.js:1571 -#: js/basicblocks.js:3977 -#: js/basicblocks.js:4017 -#: js/basicblocks.js:4027 -#: js/basicblocks.js:4075 -#: js/basicblocks.js:4088 -#: js/basicblocks.js:4136 -#: js/basicblocks.js:4191 -#: js/basicblocks.js:4196 -#: js/basicblocks.js:4201 -#: js/rubrics.js:478 -#: js/macros.js:45 -#: js/blocks.js:1023 -#: js/blocks.js:2849 -#: js/blocks.js:2850 -#: js/blocks.js:3064 -#: js/blocks.js:3366 -#: js/blocks.js:3559 -#: js/blocks.js:4598 -#: js/blocks.js:5455 -#: js/musickeyboard.js:369 -#: js/pitchtimematrix.js:1612 -#: js/rhythmruler.js:1171 -#: js/rhythmruler.js:1173 -#: js/rhythmruler.js:1281 -#: js/rhythmruler.js:1283 -#: js/block.js:1162 -#: js/block.js:5430 -#: js/block.js:5439 -#: js/block.js:5450 -#: js/activity.js:2134 -#: js/palette.js:810 -#: js/palette.js:819 -#: js/palette.js:828 -#: js/palette.js:837 -#: js/palette.js:2142 -#: js/palette.js:2153 -#: js/palette.js:2164 -#: js/palette.js:2175 -#: js/palette.js:2185 -#: js/turtledefs.js:35 -#: js/basicblocks.js:1542 -#: js/basicblocks.js:1562 -#: js/basicblocks.js:1576 -#: js/basicblocks.js:3982 -#: js/basicblocks.js:4022 -#: js/basicblocks.js:4032 -#: js/basicblocks.js:4080 -#: js/basicblocks.js:4093 -#: js/basicblocks.js:4141 -#: js/basicblocks.js:4196 -#: js/basicblocks.js:4201 -#: js/basicblocks.js:4206 -#: js/rubrics.js:478 -#: js/macros.js:45 -#: js/blocks.js:1023 -#: js/blocks.js:2849 -#: js/blocks.js:2850 -#: js/blocks.js:3064 -#: js/blocks.js:3366 -#: js/blocks.js:3559 -#: js/blocks.js:4600 -#: js/blocks.js:5457 -#: js/musickeyboard.js:369 -#: js/pitchtimematrix.js:1612 -#: js/rhythmruler.js:1176 -#: js/rhythmruler.js:1178 -#: js/rhythmruler.js:1286 -#: js/rhythmruler.js:1288 -#: js/block.js:1162 -#: js/block.js:5430 -#: js/block.js:5439 -#: js/block.js:5450 -#: js/activity.js:2134 -#: js/palette.js:810 -#: js/palette.js:819 -#: js/palette.js:828 -#: js/palette.js:837 -#: js/palette.js:2142 -#: js/palette.js:2153 -#: js/palette.js:2164 -#: js/palette.js:2175 -#: js/palette.js:2185 -#: js/turtledefs.js:35 -#: js/basicblocks.js:1542 -#: js/basicblocks.js:1562 -#: js/basicblocks.js:1576 -#: js/basicblocks.js:3982 -#: js/basicblocks.js:4022 -#: js/basicblocks.js:4032 -#: js/basicblocks.js:4080 -#: js/basicblocks.js:4093 -#: js/basicblocks.js:4141 -#: js/basicblocks.js:4196 -#: js/basicblocks.js:4201 -#: js/basicblocks.js:4206 -#: js/rubrics.js:478 -#: js/macros.js:45 -#: js/blocks.js:1023 -#: js/blocks.js:2849 -#: js/blocks.js:2850 -#: js/blocks.js:3064 -#: js/blocks.js:3366 -#: js/blocks.js:3559 -#: js/blocks.js:4600 -#: js/blocks.js:5457 -#: js/musickeyboard.js:369 -#: js/pitchtimematrix.js:1612 -#: js/rhythmruler.js:1176 -#: js/rhythmruler.js:1178 -#: js/rhythmruler.js:1286 -#: js/rhythmruler.js:1288 -#: js/block.js:1162 -#: js/block.js:5430 -#: js/block.js:5439 -#: js/block.js:5450 -#: js/activity.js:2134 -#: js/palette.js:810 -#: js/palette.js:819 -#: js/palette.js:828 -#: js/palette.js:837 -#: js/palette.js:2142 -#: js/palette.js:2153 -#: js/palette.js:2164 -#: js/palette.js:2175 -#: js/palette.js:2185 -#: js/turtledefs.js:35 -#: js/basicblocks.js:1542 -#: js/basicblocks.js:1562 -#: js/basicblocks.js:1576 -#: js/basicblocks.js:3982 -#: js/basicblocks.js:4022 -#: js/basicblocks.js:4032 -#: js/basicblocks.js:4080 -#: js/basicblocks.js:4093 -#: js/basicblocks.js:4141 -#: js/basicblocks.js:4196 -#: js/basicblocks.js:4201 -#: js/basicblocks.js:4206 -#: js/rubrics.js:478 -#: js/macros.js:45 -#: js/blocks.js:1023 -#: js/blocks.js:2849 -#: js/blocks.js:2850 -#: js/blocks.js:3064 -#: js/blocks.js:3366 -#: js/blocks.js:3559 -#: js/blocks.js:4600 -#: js/blocks.js:5457 -#: js/musickeyboard.js:369 -#: js/pitchtimematrix.js:1612 -#: js/rhythmruler.js:1176 -#: js/rhythmruler.js:1178 -#: js/rhythmruler.js:1286 -#: js/rhythmruler.js:1288 -#: js/block.js:1162 -#: js/block.js:5445 -#: js/block.js:5454 -#: js/block.js:5465 -#: js/activity.js:2137 -#: js/palette.js:810 -#: js/palette.js:819 -#: js/palette.js:828 -#: js/palette.js:837 -#: js/palette.js:2142 -#: js/palette.js:2153 -#: js/palette.js:2164 -#: js/palette.js:2175 -#: js/palette.js:2185 -#: js/turtledefs.js:35 -#: js/basicblocks.js:1553 -#: js/basicblocks.js:1573 -#: js/basicblocks.js:1587 -#: js/basicblocks.js:3993 -#: js/basicblocks.js:4033 -#: js/basicblocks.js:4043 -#: js/basicblocks.js:4091 -#: js/basicblocks.js:4104 -#: js/basicblocks.js:4152 -#: js/basicblocks.js:4207 -#: js/basicblocks.js:4212 -#: js/basicblocks.js:4217 -#: js/rubrics.js:478 -#: js/macros.js:45 -#: js/blocks.js:1023 -#: js/blocks.js:2849 -#: js/blocks.js:2850 -#: js/blocks.js:3064 -#: js/blocks.js:3366 -#: js/blocks.js:3559 -#: js/blocks.js:4600 -#: js/blocks.js:5457 -#: js/musickeyboard.js:370 -#: js/pitchtimematrix.js:1642 -#: js/rhythmruler.js:1176 -#: js/rhythmruler.js:1178 -#: js/rhythmruler.js:1286 -#: js/rhythmruler.js:1288 -#: js/block.js:1165 -#: js/block.js:5575 -#: js/block.js:5584 -#: js/block.js:5595 -#: js/activity.js:2240 -#: js/palette.js:812 -#: js/palette.js:821 -#: js/palette.js:830 -#: js/palette.js:839 -#: js/palette.js:2144 -#: js/palette.js:2155 -#: js/palette.js:2166 -#: js/palette.js:2177 -#: js/palette.js:2187 -#: js/turtledefs.js:35 -#: js/basicblocks.js:1559 -#: js/basicblocks.js:1579 -#: js/basicblocks.js:1593 -#: js/basicblocks.js:4003 -#: js/basicblocks.js:4043 -#: js/basicblocks.js:4053 -#: js/basicblocks.js:4101 -#: js/basicblocks.js:4114 -#: js/basicblocks.js:4162 -#: js/basicblocks.js:4217 -#: js/basicblocks.js:4222 -#: js/basicblocks.js:4227 -#: js/rubrics.js:478 -#: js/macros.js:45 -#: js/macros.js:46 -#: js/blocks.js:1025 -#: js/blocks.js:2860 -#: js/blocks.js:2861 -#: js/blocks.js:3075 -#: js/blocks.js:3377 -#: js/blocks.js:3570 -#: js/blocks.js:4612 -#: js/blocks.js:5477 -#: js/musickeyboard.js:375 -#: js/pitchtimematrix.js:1716 -#: js/rhythmruler.js:1176 -#: js/rhythmruler.js:1178 -#: js/rhythmruler.js:1286 -#: js/rhythmruler.js:1288 -#: js/RhythmBlockPaletteBlocks.js:14 -#: js/RhythmBlockPaletteBlocks.js:177 -#: js/RhythmBlockPaletteBlocks.js:14 -#: js/RhythmBlockPaletteBlocks.js:177 -#: js/RhythmBlockPaletteBlocks.js:14 -#: js/RhythmBlockPaletteBlocks.js:177 -#: js/RhythmBlockPaletteBlocks.js:14 -#: js/RhythmBlockPaletteBlocks.js:170 -#: js/block.js:1436 -#: js/block.js:7910 -#: js/block.js:7931 -#: js/block.js:7948 -#: js/activity.js:2693 -#: js/palette.js:932 -#: js/palette.js:941 -#: js/palette.js:950 -#: js/palette.js:959 -#: js/palette.js:2511 -#: js/palette.js:2522 -#: js/palette.js:2533 -#: js/palette.js:2544 -#: js/palette.js:2563 -#: js/turtledefs.js:76 -#: js/rubrics.js:497 -#: js/macros.js:153 -#: js/macros.js:249 -#: js/macros.js:250 -#: js/macros.js:259 -#: js/macros.js:801 -#: js/blocks.js:1120 -#: js/blocks.js:3549 -#: js/blocks.js:3550 -#: js/blocks.js:3786 -#: js/blocks.js:4168 -#: js/blocks.js:4363 -#: js/blocks.js:5526 -#: js/blocks.js:6776 -#: js/ActionBlocks.js:99 -#: js/ActionBlocks.js:147 -#: js/ActionBlocks.js:350 -#: js/ActionBlocks.js:415 -#: js/ActionBlocks.js:569 -#: js/ActionBlocks.js:629 -#: js/ActionBlocks.js:765 -#: js/ActionBlocks.js:768 -#: js/ActionBlocks.js:773 -#: js/ActionBlocks.js:805 -#: js/MeterBlocks.js:412 -#: js/MeterBlocks.js:479 -#: js/MeterBlocks.js:568 -#: js/MeterBlocks.js:669 -#: js/musickeyboard.js:2360 -#: js/pitchtimematrix.js:4708 -#: js/rhythmruler.js:1602 -#: js/rhythmruler.js:1610 -#: js/rhythmruler.js:1911 -#: js/rhythmruler.js:1919 -#: js/block.js:1436 -#: js/block.js:8089 -#: js/block.js:8110 -#: js/block.js:8127 -#: js/activity.js:2968 -#: js/palette.js:503 -#: js/palette.js:512 -#: js/palette.js:521 -#: js/palette.js:530 -#: js/palette.js:1122 -#: js/palette.js:1133 -#: js/palette.js:1144 -#: js/palette.js:1155 -#: js/palette.js:1174 -#: js/turtledefs.js:76 -#: js/rubrics.js:497 -#: js/macros.js:153 -#: js/macros.js:249 -#: js/macros.js:250 -#: js/macros.js:259 -#: js/macros.js:801 -#: js/blocks.js:1120 -#: js/blocks.js:3572 -#: js/blocks.js:3573 -#: js/blocks.js:3809 -#: js/blocks.js:4191 -#: js/blocks.js:4382 -#: js/blocks.js:5545 -#: js/blocks.js:6795 -#: js/ActionBlocks.js:99 -#: js/ActionBlocks.js:147 -#: js/ActionBlocks.js:343 -#: js/ActionBlocks.js:408 -#: js/ActionBlocks.js:562 -#: js/ActionBlocks.js:622 -#: js/ActionBlocks.js:749 -#: js/ActionBlocks.js:752 -#: js/ActionBlocks.js:757 -#: js/ActionBlocks.js:789 -#: js/MeterBlocks.js:390 -#: js/MeterBlocks.js:419 -#: js/MeterBlocks.js:455 -#: js/MeterBlocks.js:494 -#: js/musickeyboard.js:2421 -#: js/pitchtimematrix.js:4706 -#: js/rhythmruler.js:1602 -#: js/rhythmruler.js:1610 -#: js/rhythmruler.js:1911 -#: js/rhythmruler.js:1919 -#: js/block.js:1436 -#: js/block.js:8073 -#: js/block.js:8094 -#: js/block.js:8111 -#: js/activity.js:2984 -#: js/palette.js:503 -#: js/palette.js:512 -#: js/palette.js:521 -#: js/palette.js:530 -#: js/palette.js:1122 -#: js/palette.js:1133 -#: js/palette.js:1144 -#: js/palette.js:1155 -#: js/palette.js:1174 -#: js/turtledefs.js:78 -#: js/rubrics.js:501 -#: js/macros.js:153 -#: js/macros.js:249 -#: js/macros.js:250 -#: js/macros.js:259 -#: js/macros.js:801 -#: js/blocks.js:1112 -#: js/blocks.js:3545 -#: js/blocks.js:3546 -#: js/blocks.js:3779 -#: js/blocks.js:4160 -#: js/blocks.js:4346 -#: js/blocks.js:5496 -#: js/blocks.js:6721 -#: js/ActionBlocks.js:99 -#: js/ActionBlocks.js:147 -#: js/ActionBlocks.js:343 -#: js/ActionBlocks.js:408 -#: js/ActionBlocks.js:562 -#: js/ActionBlocks.js:622 -#: js/ActionBlocks.js:750 -#: js/ActionBlocks.js:753 -#: js/ActionBlocks.js:758 -#: js/ActionBlocks.js:790 -#: js/MeterBlocks.js:396 -#: js/MeterBlocks.js:425 -#: js/MeterBlocks.js:461 -#: js/MeterBlocks.js:500 -#: js/musickeyboard.js:2495 -#: js/pitchtimematrix.js:4718 -#: js/rhythmruler.js:1602 -#: js/rhythmruler.js:1610 -#: js/rhythmruler.js:1911 -#: js/rhythmruler.js:1919 -#: js/block.js:1436 -#: js/block.js:8073 -#: js/block.js:8094 -#: js/block.js:8111 -#: js/activity.js:2984 -#: js/palette.js:503 -#: js/palette.js:512 -#: js/palette.js:521 -#: js/palette.js:530 -#: js/palette.js:1122 -#: js/palette.js:1133 -#: js/palette.js:1144 -#: js/palette.js:1155 -#: js/palette.js:1174 -#: js/turtledefs.js:78 -#: js/rubrics.js:501 -#: js/macros.js:153 -#: js/macros.js:249 -#: js/macros.js:250 -#: js/macros.js:259 -#: js/macros.js:801 -#: js/blocks.js:1112 -#: js/blocks.js:3545 -#: js/blocks.js:3546 -#: js/blocks.js:3779 -#: js/blocks.js:4160 -#: js/blocks.js:4346 -#: js/blocks.js:5496 -#: js/blocks.js:6721 -#: js/ActionBlocks.js:99 -#: js/ActionBlocks.js:147 -#: js/ActionBlocks.js:343 -#: js/ActionBlocks.js:408 -#: js/ActionBlocks.js:562 -#: js/ActionBlocks.js:622 -#: js/ActionBlocks.js:750 -#: js/ActionBlocks.js:753 -#: js/ActionBlocks.js:758 -#: js/ActionBlocks.js:790 -#: js/MeterBlocks.js:396 -#: js/MeterBlocks.js:425 -#: js/MeterBlocks.js:461 -#: js/MeterBlocks.js:500 -#: js/musickeyboard.js:2495 -#: js/pitchtimematrix.js:4718 -#: js/rhythmruler.js:1602 -#: js/rhythmruler.js:1610 -#: js/rhythmruler.js:1911 -#: js/rhythmruler.js:1919 -#: js/block.js:1436 -#: js/block.js:8073 -#: js/block.js:8094 -#: js/block.js:8111 -#: js/activity.js:2984 -#: js/palette.js:506 -#: js/palette.js:515 -#: js/palette.js:524 -#: js/palette.js:533 -#: js/palette.js:1128 -#: js/palette.js:1139 -#: js/palette.js:1150 -#: js/palette.js:1161 -#: js/palette.js:1180 -#: js/turtledefs.js:78 -#: js/rubrics.js:501 -#: js/macros.js:153 -#: js/macros.js:249 -#: js/macros.js:250 -#: js/macros.js:259 -#: js/macros.js:801 -#: js/blocks.js:1112 -#: js/blocks.js:3545 -#: js/blocks.js:3546 -#: js/blocks.js:3779 -#: js/blocks.js:4160 -#: js/blocks.js:4346 -#: js/blocks.js:5496 -#: js/blocks.js:6721 -#: js/ActionBlocks.js:99 -#: js/ActionBlocks.js:147 -#: js/ActionBlocks.js:343 -#: js/ActionBlocks.js:408 -#: js/ActionBlocks.js:562 -#: js/ActionBlocks.js:622 -#: js/ActionBlocks.js:750 -#: js/ActionBlocks.js:753 -#: js/ActionBlocks.js:758 -#: js/ActionBlocks.js:790 -#: js/MeterBlocks.js:396 -#: js/MeterBlocks.js:425 -#: js/MeterBlocks.js:461 -#: js/MeterBlocks.js:500 -#: js/musickeyboard.js:2495 -#: js/pitchtimematrix.js:4718 -#: js/rhythmruler.js:1602 -#: js/rhythmruler.js:1610 -#: js/rhythmruler.js:1911 -#: js/rhythmruler.js:1919 -#: js/block.js:1414 -#: js/block.js:4018 -#: js/block.js:4036 -#: js/block.js:4047 -#: js/activity.js:2899 -#: js/palette.js:486 -#: js/palette.js:495 -#: js/palette.js:504 -#: js/palette.js:513 -#: js/palette.js:1089 -#: js/palette.js:1100 -#: js/palette.js:1111 -#: js/palette.js:1122 -#: js/palette.js:1141 -#: js/turtledefs.js:78 -#: js/rubrics.js:501 -#: js/macros.js:170 -#: js/macros.js:266 -#: js/macros.js:267 -#: js/macros.js:276 -#: js/macros.js:828 -#: js/blocks.js:1071 -#: js/blocks.js:3210 -#: js/blocks.js:3211 -#: js/blocks.js:3428 -#: js/blocks.js:3752 -#: js/blocks.js:3932 -#: js/blocks.js:4976 -#: js/blocks.js:5845 -#: js/ActionBlocks.js:99 -#: js/ActionBlocks.js:147 -#: js/ActionBlocks.js:343 -#: js/ActionBlocks.js:408 -#: js/ActionBlocks.js:562 -#: js/ActionBlocks.js:622 -#: js/ActionBlocks.js:750 -#: js/ActionBlocks.js:753 -#: js/ActionBlocks.js:758 -#: js/ActionBlocks.js:790 -#: js/MeterBlocks.js:396 -#: js/MeterBlocks.js:426 -#: js/MeterBlocks.js:462 -#: js/MeterBlocks.js:501 -#: js/musickeyboard.js:2495 -#: js/rhythmruler.js:1874 -#: js/rhythmruler.js:1881 -#: js/rhythmruler.js:2065 -#: js/rhythmruler.js:2072 -#: js/phrasemaker.js:4226 -#: js/block.js:1414 -#: js/block.js:4020 -#: js/block.js:4038 -#: js/block.js:4049 -#: js/activity.js:2899 -#: js/palette.js:486 -#: js/palette.js:495 -#: js/palette.js:504 -#: js/palette.js:513 -#: js/palette.js:1089 -#: js/palette.js:1100 -#: js/palette.js:1111 -#: js/palette.js:1122 -#: js/palette.js:1141 -#: js/turtledefs.js:78 -#: js/rubrics.js:501 -#: js/macros.js:170 -#: js/macros.js:266 -#: js/macros.js:267 -#: js/macros.js:276 -#: js/macros.js:828 -#: js/blocks.js:1071 -#: js/blocks.js:3210 -#: js/blocks.js:3211 -#: js/blocks.js:3428 -#: js/blocks.js:3752 -#: js/blocks.js:3932 -#: js/blocks.js:4976 -#: js/blocks.js:5845 -#: js/ActionBlocks.js:99 -#: js/ActionBlocks.js:147 -#: js/ActionBlocks.js:343 -#: js/ActionBlocks.js:408 -#: js/ActionBlocks.js:562 -#: js/ActionBlocks.js:622 -#: js/ActionBlocks.js:750 -#: js/ActionBlocks.js:753 -#: js/ActionBlocks.js:758 -#: js/ActionBlocks.js:790 -#: js/MeterBlocks.js:396 -#: js/MeterBlocks.js:426 -#: js/MeterBlocks.js:462 -#: js/MeterBlocks.js:501 -#: js/musickeyboard.js:2495 -#: js/rhythmruler.js:1874 -#: js/rhythmruler.js:1881 -#: js/rhythmruler.js:2065 -#: js/rhythmruler.js:2072 -#: js/phrasemaker.js:4226 -#: js/block.js:1439 -#: js/block.js:4063 -#: js/block.js:4081 -#: js/block.js:4092 -#: js/palette.js:505 -#: js/palette.js:514 -#: js/palette.js:523 -#: js/palette.js:532 -#: js/palette.js:1125 -#: js/palette.js:1136 -#: js/palette.js:1147 -#: js/palette.js:1158 -#: js/palette.js:1177 -#: js/turtledefs.js:101 -#: js/rubrics.js:522 -#: js/macros.js:168 -#: js/macros.js:264 -#: js/macros.js:265 -#: js/macros.js:274 -#: js/macros.js:826 -#: js/blocks.js:1001 -#: js/blocks.js:3394 -#: js/blocks.js:3395 -#: js/blocks.js:3620 -#: js/blocks.js:3981 -#: js/blocks.js:4172 -#: js/blocks.js:5305 -#: js/blocks.js:6432 -#: js/ActionBlocks.js:119 -#: js/ActionBlocks.js:167 -#: js/ActionBlocks.js:364 -#: js/ActionBlocks.js:429 -#: js/ActionBlocks.js:582 -#: js/ActionBlocks.js:643 -#: js/ActionBlocks.js:772 -#: js/ActionBlocks.js:775 -#: js/ActionBlocks.js:780 -#: js/ActionBlocks.js:813 -#: js/MeterBlocks.js:416 -#: js/MeterBlocks.js:446 -#: js/MeterBlocks.js:482 -#: js/MeterBlocks.js:521 -#: js/musickeyboard.js:2564 -#: js/rhythmruler.js:1925 -#: js/rhythmruler.js:1932 -#: js/rhythmruler.js:2116 -#: js/rhythmruler.js:2123 -#: js/phrasemaker.js:4402 -#: js/planetInterface.js:101 -#: js/planetInterface.js:101 -#: js/planetInterface.js:101 -#: js/planetInterface.js:101 -#: js/planetInterface.js:102 -#: js/planetInterface.js:104 -#: js/planetInterface.js:104 -#: js/planetInterface.js:104 -#.TRANS: El proyecto no está definido. -msgid "project undefined" +#: js/SaveInterface.js:59 +#: js/SaveInterface.js:61 +#: js/SaveInterface.js:93 +#.TRANS: Proyecto de Bloques de Música +msgid "Music Blocks Project" msgstr "" -#: js/logo.js:61 -#.TRANS: No es un nombre de tono válido. -msgid "Not a valid pitch name" +#: js/SaveInterface.js:63 +#.TRANS: Este proyecto fue creado en Bloques de Música +msgid "This project was created in Music Blocks" msgstr "" -#: js/logo.js:507 -#: js/ProgramBlocks.js:258 -#: js/ProgramBlocks.js:427 -#.TRANS: Debe seleccionar un archivo. -msgid "You must select a file." -msgstr "Eiporavo vaera peteĩ ñongatupyre" - -#: js/logo.js:1184 -#: js/turtles.js:118 -#: js/turtle-painter.js:1192 -#: js/turtle-painter.js:1193 -#: js/block.js:1463 -#: js/lilypond.js:757 -#: js/lilypond.js:921 -#: js/lilypond.js:959 -#: js/ActionBlocks.js:1223 -#: js/ProgramBlocks.js:1267 -#.TRANS: iniciar -msgid "start" -msgstr "ñepyrũ" - -#: js/logo.js:1696 -#.TRANS: La reproducción está preparada. -msgid "Playback is ready." +#: js/SaveInterface.js:67 +#.TRANS: Bloques de Música es una aplicación de Software Libre +msgid "Music Blocks is a Free/Libre Software application." msgstr "" -#: js/blocks.js:1011 -#: js/blocks.js:3427 -#: js/blocks.js:3428 -#: js/blocks.js:3653 -#: js/blocks.js:4012 -#: js/blocks.js:4205 -#: js/blocks.js:5343 -#: js/blocks.js:6474 -#: js/palette.js:527 -#: js/palette.js:536 -#: js/palette.js:545 -#: js/palette.js:554 -#: js/palette.js:1131 -#: js/palette.js:1142 -#: js/palette.js:1153 -#: js/palette.js:1164 -#: js/palette.js:1183 -#: js/rubrics.js:529 -#: js/macros.js:170 -#: js/macros.js:266 -#: js/macros.js:267 -#: js/macros.js:276 -#: js/macros.js:828 -#: js/block.js:1449 -#: js/block.js:4164 -#: js/block.js:4182 -#: js/block.js:4193 -#: js/turtledefs.js:128 -#: js/turtledefs.js:230 -#: js/ActionBlocks.js:254 -#: js/ActionBlocks.js:307 -#: js/ActionBlocks.js:617 -#: js/ActionBlocks.js:716 -#: js/ActionBlocks.js:961 -#: js/ActionBlocks.js:1049 -#: js/ActionBlocks.js:1322 -#: js/ActionBlocks.js:1325 -#: js/ActionBlocks.js:1337 -#: js/ActionBlocks.js:1404 -#: js/MeterBlocks.js:715 -#: js/MeterBlocks.js:768 -#: js/MeterBlocks.js:831 -#: js/MeterBlocks.js:892 -#: js/phrasemaker.js:4412 -#: js/musickeyboard.js:2647 -#: js/rhythmruler.js:1928 -#: js/rhythmruler.js:1935 -#: js/rhythmruler.js:2119 -#: js/rhythmruler.js:2126 -#.TRANS: acción -msgid "action" -msgstr "apopy" - -#: js/blocks.js:1205 -#: js/blocks.js:3380 -#: js/blocks.js:3770 -#: js/blocks.js:3801 -#: js/blocks.js:3850 -#: js/blocks.js:3885 -#: js/blocks.js:6497 -#: js/palette.js:509 -#: js/palette.js:638 -#: js/palette.js:1107 -#: js/BoxesBlocks.js:282 -#: js/BoxesBlocks.js:285 -#: js/BoxesBlocks.js:405 -#: js/BoxesBlocks.js:594 -#.TRANS: caja -msgid "box" -msgstr "mba’eryru" - -#: js/blocks.js:1680 -#.TRANS: Considera dividir esta pila en partes. -msgid "Consider breaking this stack into parts." +#: js/SaveInterface.js:69 +#.TRANS: Se puede acceder al código fuente en +msgid "The source code can be accessed at" msgstr "" -#: js/blocks.js:2408 -#: js/palette.js:653 -#: js/MediaBlocks.js:602 -#.TRANS: abrir archivo -msgid "open file" -msgstr "eipe’a ñongatuha" - -#: js/blocks.js:2415 -#: js/blocks.js:2423 -#: js/activity.js:1875 -#.TRANS: archivo de audio -msgid "audio file" +#: js/SaveInterface.js:72 +#.TRANS: Para más información, consulte el +msgid "For more information, please consult the" msgstr "" -#: js/blocks.js:2536 -#: js/blocks.js:3147 -#: js/block.js:3543 -#.TRANS: encendido -msgid "on2" +#: js/SaveInterface.js:76 +#: js/turtledefs.js:795 +#.TRANS: Guía de Bloques de Música +msgid "Music Blocks Guide" msgstr "" -#: js/blocks.js:2538 -#: js/blocks.js:3149 -#: js/block.js:3545 -#.TRANS: apagado -msgid "off" +#: js/SaveInterface.js:83 +#.TRANS: Alternativamente, abra el archivo en Bloques de Música usando el botón Cargar proyecto. +msgid "Alternatively, open the file in Music Blocks using the Load project button." msgstr "" -#: js/blocks.js:2543 -#: js/blocks.js:3154 -#: js/palette.js:618 -#: js/block.js:3466 -#: js/BooleanBlocks.js:77 -#: js/BooleanBlocks.js:167 -#: js/BooleanBlocks.js:251 -#: js/BooleanBlocks.js:335 -#: js/BooleanBlocks.js:433 -#: js/BooleanBlocks.js:539 -#: js/BooleanBlocks.js:640 -#: js/BooleanBlocks.js:741 -#: js/BooleanBlocks.js:847 -#: js/BooleanBlocks.js:948 -#: js/BooleanBlocks.js:1033 -#: js/SensorsBlocks.js:910 -#.TRANS: verdadero -msgid "true" -msgstr "añetete" - -#: js/blocks.js:2545 -#: js/blocks.js:3156 -#: js/block.js:3466 -#: js/BooleanBlocks.js:79 -#: js/BooleanBlocks.js:169 -#: js/BooleanBlocks.js:253 -#: js/BooleanBlocks.js:337 -#: js/BooleanBlocks.js:435 -#: js/BooleanBlocks.js:541 -#: js/BooleanBlocks.js:642 -#: js/BooleanBlocks.js:743 -#: js/BooleanBlocks.js:849 -#: js/BooleanBlocks.js:950 -#: js/SensorsBlocks.js:912 -#.TRANS: falso -msgid "false" -msgstr "japu" - -#: js/blocks.js:3183 -#: js/palette.js:574 -#: js/MediaBlocks.js:892 -#: js/MediaBlocks.js:963 -#.TRANS: texto -msgid "text" -msgstr "haipyre" +#: js/SaveInterface.js:85 +#.TRANS: Código de proyecto +msgid "Project Code" +msgstr "" -#: js/blocks.js:3379 -#: js/palette.js:641 -#: js/palette.js:642 -#: js/BoxesBlocks.js:514 -#.TRANS: guardar en caja -msgid "store in box" +#: js/SaveInterface.js:87 +#.TRANS: Este código almacena datos sobre los bloques en un proyecto. +msgid "This code stores data about the blocks in a project." msgstr "" -#: js/blocks.js:3384 -#: js/blocks.js:3824 -#: js/blocks.js:3859 -#: js/blocks.js:3894 -#: js/blocks.js:5773 -#: js/blocks.js:5794 -#: js/BoxesBlocks.js:772 -#.TRANS: caja1 -msgid "box1" +#: js/SaveInterface.js:89 +#.TRANS: Mostrar +msgid "Show" msgstr "" -#: js/blocks.js:3386 -#: js/blocks.js:3826 -#: js/blocks.js:3861 -#: js/blocks.js:3896 -#: js/blocks.js:5775 -#: js/blocks.js:5796 -#: js/BoxesBlocks.js:663 -#.TRANS: caja2 -msgid "box2" +#: js/SaveInterface.js:91 +#.TRANS: Ocultar +msgid "Hide" msgstr "" -#: js/blocks.js:4058 -#: js/palette.js:639 -#: js/palette.js:644 -#: js/palette.js:1043 -#: js/BoxesBlocks.js:591 -#.TRANS: guardar en -msgid "store in" -msgstr "eñongatu... pe" +#: js/SaveInterface.js:131 +#: js/SaveInterface.js:204 +#: js/SaveInterface.js:262 +#: js/SaveInterface.js:389 +#: js/SaveInterface.js:417 +#: js/activity.js:4884 +#: planet/js/ProjectStorage.js:27 +#: planet/js/GlobalPlanet.js:467 +#: planet/js/GlobalPlanet.js:469 +#: planet/js/GlobalPlanet.js:495 +#.TRANS: default project title when saving as Lilypond +#.TRANS: Mi proyecto +msgid "My Project" +msgstr "Che ajaposéva" -#: js/blocks.js:4058 -#: js/EnsembleBlocks.js:391 -#: js/EnsembleBlocks.js:402 -#: js/MediaBlocks.js:746 -#: js/ProgramBlocks.js:390 -#: js/ProgramBlocks.js:495 -#: js/ProgramBlocks.js:658 -#: js/BoxesBlocks.js:595 -#: js/PitchBlocks.js:656 -#: js/PitchBlocks.js:932 -#: js/PitchBlocks.js:1827 -#: js/ToneBlocks.js:1025 -#: js/DictBlocks.js:215 -#: js/DictBlocks.js:289 -#.TRANS: nombre -msgid "name" -msgstr "Téra" +#: js/SaveInterface.js:197 +#: planet/js/SaveInterface.js:58 +#.TRANS: Ninguna descripción provista +msgid "No description provided" +msgstr "" -#: js/blocks.js:4058 -#: js/RhythmBlocks.js:1130 -#: js/BoxesBlocks.js:75 -#: js/BoxesBlocks.js:595 -#: js/HeapBlocks.js:544 -#: js/DictBlocks.js:289 -#: js/DictBlocks.js:430 -#.TRANS: valor -msgid "value" -msgstr "tepy" +#: js/SaveInterface.js:332 +#.TRANS: Tu grabación está en curso. +msgid "Your recording is in progress." +msgstr "" -#: js/blocks.js:4907 -#.TRANS: No hay bloque seleccionado. -msgid "There is no block selected." +#: js/SaveInterface.js:401 +#.TRANS: File name prompt for save as Lilypond +#.TRANS: Nombre del archivo +msgid "File name" msgstr "" -#: js/blocks.js:5002 -#: js/MediaBlocks.js:888 -#.TRANS: mostrar -msgid "show" -msgstr "hechauka" +#: js/SaveInterface.js:403 +#: planet/js/StringHelper.js:39 +#.TRANS: Project title prompt for save as Lilypond +#.TRANS: Título del proyecto +msgid "Project title" +msgstr "" -#: js/blocks.js:5005 -#: js/MediaBlocks.js:803 -#.TRANS: Avatar is the image used to determine the appearance of the mouse. -#.TRANS: avatar -msgid "avatar" +#: js/SaveInterface.js:405 +#.TRANS: Project title prompt for save as Lilypond +#.TRANS: Autor del Proyecto +msgid "Project author" msgstr "" -#: js/blocks.js:5008 -#: js/ToneBlocks.js:1010 -#: js/sampler.js:693 -#.TRANS: The sound sample that the user uploads. -#.TRANS: muestra de audio -msgid "sample" +#: js/SaveInterface.js:407 +#.TRANS: MIDI prompt for save as Lilypond +#.TRANS: Incluye MIDI? +msgid "Include MIDI output?" msgstr "" -#: js/turtles.js:874 -#.TRANS: Cuadrícula -msgid "Grid" +#: js/SaveInterface.js:409 +#.TRANS: Guitar prompt for save as Lilypond +#.TRANS: Incluye tablatura de guitarra +msgid "Include guitar tablature output?" msgstr "" -#: js/turtles.js:891 -#: js/turtledefs.js:626 -#.TRANS: Limpiar -msgid "Clean" -msgstr "Mopot ĩ" +#: js/SaveInterface.js:411 +#.TRANS: Lilypond is a scripting language for generating sheet music +#.TRANS: Guardar como lilypond +msgid "Save as Lilypond" +msgstr "" -#: js/turtles.js:912 -#: js/turtledefs.js:632 -#.TRANS: Contraer -msgid "Collapse" +#: js/SaveInterface.js:426 +#: js/blocks/EnsembleBlocks.js:75 +#: js/blocks/EnsembleBlocks.js:154 +#: js/blocks/EnsembleBlocks.js:216 +#: js/blocks/EnsembleBlocks.js:302 +#: js/blocks/EnsembleBlocks.js:348 +#: js/blocks/EnsembleBlocks.js:389 +#: js/blocks/EnsembleBlocks.js:441 +#: js/blocks/EnsembleBlocks.js:490 +#: js/blocks/EnsembleBlocks.js:536 +#: js/blocks/EnsembleBlocks.js:583 +#: js/blocks/EnsembleBlocks.js:637 +#: js/blocks/EnsembleBlocks.js:753 +#: js/blocks/EnsembleBlocks.js:840 +#: js/blocks/EnsembleBlocks.js:899 +#: js/blocks/EnsembleBlocks.js:942 +#: js/blocks/EnsembleBlocks.js:1212 +#: js/blocks/EnsembleBlocks.js:1280 +#.TRANS: default project author when saving as Lilypond +#.TRANS: Sr. Ratón +msgid "Mr. Mouse" msgstr "" -#: js/turtles.js:940 -#.TRANS: Expandir -msgid "Expand" +#: js/SaveInterface.js:573 +#.TRANS: El código de Lilypond se copia al portapapeles. Puedes pegarlo aquí: +msgid "The Lilypond code is copied to clipboard. You can paste it here: " msgstr "" #: js/languagebox.js:198 @@ -2294,318 +179,80 @@ msgstr "" msgid "Music Blocks is already set to this language." msgstr "Music Blocks ya está configurado en este idioma." -#: js/piemenus.js:200 -#: js/musicutils.js:808 -#: js/musicutils.js:824 -#: js/phrasemaker.js:1672 -#: js/musickeyboard.js:2041 -#: js/sampler.js:544 -#.TRANS: double sharp is a music term related to pitch -#.TRANS: doble agudas -msgid "double sharp" +#: js/planetInterface.js:131 +#.TRANS: El proyecto no está definido. +msgid "project undefined" msgstr "" -#: js/piemenus.js:201 -#: js/PitchBlocks.js:1510 -#: js/PitchActions.js:580 -#: js/musicutils.js:806 -#: js/musicutils.js:825 -#: js/phrasemaker.js:1673 -#: js/musickeyboard.js:2042 -#: js/sampler.js:545 -#.TRANS: sharp is a half-step up in pitch -#.TRANS: sharp is a music term related to pitch -#.TRANS: agudas -msgid "sharp" -msgstr "Agudas" - -#: js/piemenus.js:202 -#: js/musicutils.js:804 -#: js/musicutils.js:826 -#: js/phrasemaker.js:1674 -#: js/musickeyboard.js:2043 -#: js/sampler.js:546 -#.TRANS: natural is a music term related to pitch -#.TRANS: normal -msgid "natural" -msgstr "" +#: js/rubrics.js:523 +#: js/turtledefs.js:119 +#: js/turtledefs.js:221 +#: js/blocks/RhythmBlockPaletteBlocks.js:52 +#: js/blocks/RhythmBlockPaletteBlocks.js:234 +#: js/blocks/ProgramBlocks.js:745 +#: js/widgets/rhythmruler.js:2057 +#: js/widgets/rhythmruler.js:2064 +#: js/widgets/rhythmruler.js:2133 +#: js/widgets/rhythmruler.js:2140 +#: js/widgets/rhythmruler.js:2219 +#.TRANS: an arrangement of notes based on duration +#.TRANS: ritmo +msgid "rhythm" +msgstr "rítmo" -#: js/piemenus.js:203 -#: js/PitchBlocks.js:1469 -#: js/PitchActions.js:583 -#: js/musicutils.js:802 -#: js/musicutils.js:827 -#: js/phrasemaker.js:1675 -#: js/musickeyboard.js:2044 -#: js/sampler.js:547 -#.TRANS: flat is a half-step down in pitch -#.TRANS: flat is a music term related to pitch -#.TRANS: planas -msgid "flat" -msgstr "Pe" - -#: js/piemenus.js:204 -#: js/musicutils.js:800 -#: js/musicutils.js:828 -#: js/phrasemaker.js:1676 -#: js/musickeyboard.js:2045 -#: js/sampler.js:548 -#.TRANS: double flat is a music term related to pitch -#.TRANS: doble planas -msgid "double flat" -msgstr "" - -#: js/piemenus.js:2861 -#: js/PitchBlocks.js:1357 -#: js/musicutils.js:627 -#.TRANS: unison means the note is the same as the current note -#.TRANS: unison is a music term related to intervals -#.TRANS: unísono -msgid "unison" -msgstr "" - -#: js/piemenus.js:3015 -#: js/piemenus.js:3088 -#: js/musicutils.js:635 -#: js/musicutils.js:810 -#: js/musicutils.js:912 -#.TRANS: major is a music term related to intervals and mode -#.TRANS: mayor -msgid "major" -msgstr "guasuve" - -#: js/piemenus.js:3015 -#: js/piemenus.js:3088 -#: js/musicutils.js:653 -#.TRANS: modal scale for music -#.TRANS: ionian -msgid "ionian" -msgstr "jónico" - -#: js/piemenus.js:3017 -#: js/piemenus.js:3092 -#: js/musicutils.js:633 -#: js/musicutils.js:811 -#: js/musicutils.js:909 -#.TRANS: minor is a music term related to intervals and mode -#.TRANS: menor -msgid "minor" -msgstr "michĩve" - -#: js/piemenus.js:3017 -#: js/piemenus.js:3092 -#: js/musicutils.js:663 -#.TRANS: modal scale for music -#.TRANS: aeolian -msgid "aeolian" -msgstr "eólico" - -#: js/piemenus.js:3407 -#.TRANS: Duplicar -msgid "Duplicate" -msgstr "" - -#: js/piemenus.js:3408 -#: js/turtledefs.js:534 -#.TRANS: Extraer -msgid "Extract" -msgstr "" - -#: js/piemenus.js:3409 -#.TRANS: Mover para recargar -msgid "Move to trash" -msgstr "" - -#: js/piemenus.js:3410 -#: js/timbre.js:968 -#: js/StringHelper.js:69 -#.TRANS: Cerrar -msgid "Close" -msgstr "Mboty" - -#: js/piemenus.js:3416 -#.TRANS: Guardar pila -msgid "Save stack" -msgstr "Eñongatu aty" - -#: js/piemenus.js:3420 -#: js/toolbar.js:60 -#: js/toolbar.js:120 -#: js/toolbar.js:185 -#: js/toolbar.js:240 -#: js/turtledefs.js:752 -#.TRANS: Ayuda -msgid "Help" -msgstr " Ñepytyvõ" - -#: js/piemenus.js:3762 -#.TRANS: Ha elegido la tecla -msgid "You have chosen key " -msgstr "" - -#: js/piemenus.js:3766 -#.TRANS: para la vista previa de su tono. -msgid " for your pitch preview." -msgstr "" - -#: js/palette.js:571 -#.TRANS: cuadrícula -msgid "grid" -msgstr "" - -#: js/palette.js:577 -#: js/block.js:1540 -#: js/block.js:2343 -#: js/turtledefs.js:126 -#: js/turtledefs.js:228 -#: js/lilypond.js:740 -#: js/lilypond.js:905 -#: js/lilypond.js:949 -#: js/DrumBlocks.js:486 -#: js/RhythmBlocks.js:766 -#: js/VolumeBlocks.js:502 -#: js/phrasemaker.js:823 -#.TRANS: tambor -msgid "drum" -msgstr "angu’atarara" - -#: js/palette.js:580 -#.TRANS: efecto -msgid "effect" -msgstr "" - -#: js/palette.js:586 -#.TRANS: -msgid "sargam" -msgstr "" - -#: js/palette.js:589 -#: js/activity.js:1833 -#: js/RhythmBlocks.js:923 -#: js/PitchBlocks.js:442 -#: js/PitchBlocks.js:1748 -#.TRANS: a numeric mapping of the notes in an octave based on the musical mode -#.TRANS: grado de escala -msgid "scale degree" -msgstr "ojupijupi" - -#: js/palette.js:592 -#: js/activity.js:1860 -#.TRANS: nombre de modo -msgid "mode name" -msgstr "" - -#: js/palette.js:595 -#: js/activity.js:1839 -#.TRANS: modo invertido -msgid "invert mode" -msgstr "" - -#: js/palette.js:598 -#: js/activity.js:1836 -#.TRANS: nombre de voz -msgid "voice name" -msgstr "" - -#: js/palette.js:601 -#: js/PitchBlocks.js:1181 -#.TRANS: personalizado tono -msgid "custom pitch" -msgstr "" - -#: js/palette.js:605 -#: js/block.js:1456 -#: js/block.js:1575 -#: js/WidgetBlocks.js:218 -#: js/IntervalsBlocks.js:63 -#.TRANS: temperamento -msgid "temperament" -msgstr "" - -#: js/palette.js:609 -#.TRANS: accidental -msgid "accidental" -msgstr "" - -#: js/palette.js:615 -#: js/activity.js:1866 -#.TRANS: nombre de intervalo -msgid "interval name" -msgstr "" - -#: js/palette.js:633 -#: js/PitchBlocks.js:405 -#.TRANS: convertidor de tono -msgid "pitch converter" -msgstr "" - -#: js/rubrics.js:522 -#: js/turtledefs.js:119 -#: js/turtledefs.js:221 -#: js/RhythmBlockPaletteBlocks.js:52 -#: js/RhythmBlockPaletteBlocks.js:233 -#: js/ProgramBlocks.js:745 -#: js/rhythmruler.js:1670 -#: js/rhythmruler.js:1677 -#: js/rhythmruler.js:1745 -#: js/rhythmruler.js:1752 -#: js/rhythmruler.js:1830 -#.TRANS: an arrangement of notes based on duration -#.TRANS: ritmo -msgid "rhythm" -msgstr "rítmo" - -#: js/rubrics.js:523 -#: js/block.js:2339 +#: js/rubrics.js:524 #: js/turtledefs.js:121 #: js/turtledefs.js:223 -#: js/IntervalsBlocks.js:63 -#: js/PitchBlocks.js:1801 -#: js/PitchBlocks.js:1814 -#: js/SensorsBlocks.js:178 -#: js/phrasemaker.js:821 -#: js/musickeyboard.js:1653 +#: js/block-verbose.js:2622 +#: js/block.js:2550 +#: js/blocks/IntervalsBlocks.js:63 +#: js/blocks/SensorsBlocks.js:178 +#: js/blocks/PitchBlocks.js:1839 +#: js/blocks/PitchBlocks.js:1853 +#: js/widgets/musickeyboard.js:1935 +#: js/widgets/phrasemaker.js:1036 +#.TRANS: pitch number #.TRANS: pitch number #.TRANS: we specify pitch in terms of a name and an octave. The name can be CDEFGAB or Do Re Mi Fa Sol La Ti. Octave is a number between 1 and 8. #.TRANS: tono msgid "pitch" msgstr "pu" -#: js/rubrics.js:524 +#: js/rubrics.js:525 #: js/turtledefs.js:123 #: js/turtledefs.js:225 #.TRANS: tono msgid "tone" msgstr "pu" -#: js/rubrics.js:525 -#: js/lilypond.js:613 -#: js/lilypond.js:912 -#: js/lilypond.js:918 -#: js/lilypond.js:956 +#: js/rubrics.js:526 +#: js/lilypond.js:605 +#: js/lilypond.js:904 +#: js/lilypond.js:910 +#: js/lilypond.js:948 #.TRANS: ratón msgid "mouse" msgstr "anguja" -#: js/rubrics.js:526 +#: js/rubrics.js:527 #: js/turtledefs.js:132 #: js/turtledefs.js:234 -#: js/phrasemaker.js:825 +#: js/widgets/phrasemaker.js:1040 #.TRANS: pluma msgid "pen" msgstr "guyra rague" -#: js/rubrics.js:527 +#: js/rubrics.js:528 #: js/turtledefs.js:133 #: js/turtledefs.js:235 -#: js/NumberBlocks.js:905 -#: js/PitchBlocks.js:1679 -#: js/PitchBlocks.js:1720 +#: js/blocks/NumberBlocks.js:981 +#: js/blocks/PitchBlocks.js:1717 +#: js/blocks/PitchBlocks.js:1758 #.TRANS: número msgid "number" msgstr "papaha" -#: js/rubrics.js:528 +#: js/rubrics.js:529 #: js/turtledefs.js:127 #: js/turtledefs.js:229 #.TRANS: flujo @@ -2613,177 +260,225 @@ msgid "flow" msgstr "syry" #: js/rubrics.js:530 +#: js/turtledefs.js:128 +#: js/turtledefs.js:230 +#: js/block-verbose.js:1609 +#: js/block-verbose.js:4559 +#: js/block-verbose.js:4577 +#: js/block-verbose.js:4588 +#: js/block.js:1573 +#: js/block.js:4483 +#: js/block.js:4501 +#: js/block.js:4512 +#: js/blocks.js:1018 +#: js/blocks.js:3491 +#: js/blocks.js:3492 +#: js/blocks.js:3717 +#: js/blocks.js:4076 +#: js/blocks.js:4269 +#: js/blocks.js:5432 +#: js/blocks.js:6563 +#: js/macros.js:170 +#: js/macros.js:266 +#: js/macros.js:267 +#: js/macros.js:276 +#: js/macros.js:828 +#: js/palette.js:527 +#: js/palette.js:536 +#: js/palette.js:545 +#: js/palette.js:554 +#: js/palette.js:1129 +#: js/palette.js:1140 +#: js/palette.js:1151 +#: js/palette.js:1162 +#: js/palette.js:1181 +#: js/blocks/ActionBlocks.js:254 +#: js/blocks/ActionBlocks.js:307 +#: js/blocks/ActionBlocks.js:617 +#: js/blocks/ActionBlocks.js:716 +#: js/blocks/ActionBlocks.js:961 +#: js/blocks/ActionBlocks.js:1049 +#: js/blocks/ActionBlocks.js:1322 +#: js/blocks/ActionBlocks.js:1325 +#: js/blocks/ActionBlocks.js:1337 +#: js/blocks/ActionBlocks.js:1404 +#: js/blocks/MeterBlocks.js:715 +#: js/blocks/MeterBlocks.js:768 +#: js/blocks/MeterBlocks.js:831 +#: js/blocks/MeterBlocks.js:892 +#: js/widgets/musickeyboard.js:2986 +#: js/widgets/phrasemaker.js:4913 +#: js/widgets/rhythmruler.js:2319 +#: js/widgets/rhythmruler.js:2326 +#: js/widgets/rhythmruler.js:2511 +#: js/widgets/rhythmruler.js:2518 +#.TRANS: acción +msgid "action" +msgstr "apopy" + +#: js/rubrics.js:531 #: js/turtledefs.js:136 #: js/turtledefs.js:238 #.TRANS: sensores msgid "sensors" msgstr "andúva" -#: js/rubrics.js:531 +#: js/rubrics.js:532 #: js/turtledefs.js:135 #: js/turtledefs.js:237 -#: js/MediaBlocks.js:930 +#: js/blocks/MediaBlocks.js:930 #.TRANS: medios msgid "media" msgstr "omombyte" -#: js/rubrics.js:532 +#: js/rubrics.js:533 #.TRANS: ratón msgid "mice" msgstr "" -#: js/macros.js:711 -#: js/musicutils.js:783 -#: js/synthutils.js:181 -#.TRANS: animal sound effect -#.TRANS: pato -msgid "duck" -msgstr "ype" - -#: js/toolbar.js:46 -#: js/toolbar.js:107 +#: js/toolbar.js:48 +#: js/toolbar.js:109 #.TRANS: Acerca de los Bloques de Música msgid "About Music Blocks" msgstr "" -#: js/toolbar.js:47 -#: js/toolbar.js:108 -#: js/toolbar.js:172 -#: js/toolbar.js:228 +#: js/toolbar.js:49 +#: js/toolbar.js:110 +#: js/toolbar.js:175 +#: js/toolbar.js:231 #: js/turtledefs.js:445 #: js/turtledefs.js:482 -#: js/activity.js:2281 -#: js/activity.js:2289 -#: js/activity.js:2520 -#: js/modewidget.js:77 -#: js/pitchstaircase.js:121 -#: js/phrasemaker.js:302 -#: js/phrasemaker.js:312 -#: js/phrasemaker.js:314 -#: js/phrasemaker.js:3901 -#: js/phrasemaker.js:4061 -#: js/phrasemaker.js:4066 -#: js/phrasemaker.js:4068 -#: js/phrasemaker.js:4183 -#: js/pitchdrummatrix.js:81 -#: js/pitchdrummatrix.js:574 -#: js/pitchdrummatrix.js:576 -#: js/pitchdrummatrix.js:628 -#: js/pitchdrummatrix.js:630 -#: js/pitchdrummatrix.js:645 -#: js/pitchdrummatrix.js:647 -#: js/pitchdrummatrix.js:674 -#: js/pitchdrummatrix.js:676 -#: js/temperament.js:477 -#: js/temperament.js:480 -#: js/temperament.js:540 -#: js/temperament.js:542 -#: js/temperament.js:1835 -#: js/temperament.js:1837 -#: js/temperament.js:1986 -#: js/temperament.js:1988 -#: js/musickeyboard.js:522 -#: js/musickeyboard.js:682 -#: js/musickeyboard.js:684 -#: js/musickeyboard.js:756 -#: js/musickeyboard.js:758 -#: js/rhythmruler.js:298 -#: js/rhythmruler.js:300 -#: js/rhythmruler.js:314 -#: js/rhythmruler.js:316 -#: js/sampler.js:96 -#: js/sampler.js:98 -#: js/sampler.js:229 -#: js/sampler.js:235 -#: js/sampler.js:237 -#: js/tempo.js:84 -#: js/tempo.js:86 -#: js/timbre.js:432 -#: js/timbre.js:434 -#: js/timbre.js:465 -#: js/timbre.js:467 -#: js/timbre.js:746 -#: js/meterwidget.js:80 -#: js/arpeggio.js:90 -#: js/arpeggio.js:547 -#: js/arpeggio.js:549 -#: js/arpeggio.js:644 -#: js/arpeggio.js:646 +#: js/activity.js:2660 +#: js/activity.js:2671 +#: js/activity.js:2902 +#: js/widgets/modewidget.js:77 +#: js/widgets/meterwidget.js:185 +#: js/widgets/pitchdrummatrix.js:147 +#: js/widgets/pitchdrummatrix.js:687 +#: js/widgets/pitchdrummatrix.js:689 +#: js/widgets/pitchdrummatrix.js:741 +#: js/widgets/pitchdrummatrix.js:743 +#: js/widgets/pitchdrummatrix.js:758 +#: js/widgets/pitchdrummatrix.js:760 +#: js/widgets/pitchdrummatrix.js:789 +#: js/widgets/pitchdrummatrix.js:791 +#: js/widgets/pitchstaircase.js:121 +#: js/widgets/temperament.js:610 +#: js/widgets/temperament.js:613 +#: js/widgets/temperament.js:673 +#: js/widgets/temperament.js:675 +#: js/widgets/temperament.js:2017 +#: js/widgets/temperament.js:2019 +#: js/widgets/tempo.js:84 +#: js/widgets/tempo.js:86 +#: js/widgets/timbre.js:432 +#: js/widgets/timbre.js:434 +#: js/widgets/timbre.js:465 +#: js/widgets/timbre.js:467 +#: js/widgets/timbre.js:746 +#: js/widgets/aiwidget.js:647 +#: js/widgets/aiwidget.js:654 +#: js/widgets/aiwidget.js:656 +#: js/widgets/arpeggio.js:90 +#: js/widgets/arpeggio.js:547 +#: js/widgets/arpeggio.js:549 +#: js/widgets/arpeggio.js:644 +#: js/widgets/arpeggio.js:646 +#: js/widgets/musickeyboard.js:676 +#: js/widgets/musickeyboard.js:872 +#: js/widgets/musickeyboard.js:874 +#: js/widgets/musickeyboard.js:953 +#: js/widgets/musickeyboard.js:955 +#: js/widgets/phrasemaker.js:513 +#: js/widgets/phrasemaker.js:523 +#: js/widgets/phrasemaker.js:525 +#: js/widgets/phrasemaker.js:4304 +#: js/widgets/phrasemaker.js:4528 +#: js/widgets/phrasemaker.js:4533 +#: js/widgets/phrasemaker.js:4535 +#: js/widgets/phrasemaker.js:4650 +#: js/widgets/rhythmruler.js:637 +#: js/widgets/rhythmruler.js:639 +#: js/widgets/rhythmruler.js:653 +#: js/widgets/rhythmruler.js:655 +#: js/widgets/sampler.js:162 +#: js/widgets/sampler.js:164 +#: js/widgets/sampler.js:363 #.TRANS: Tocar msgid "Play" msgstr "" -#: js/toolbar.js:48 -#: js/toolbar.js:109 -#: js/toolbar.js:173 -#: js/toolbar.js:229 +#: js/toolbar.js:50 +#: js/toolbar.js:111 +#: js/toolbar.js:176 +#: js/toolbar.js:232 #: js/turtledefs.js:451 #: js/turtledefs.js:488 -#: js/activity.js:2297 -#: js/modewidget.js:99 -#: js/modewidget.js:101 -#: js/phrasemaker.js:323 -#: js/phrasemaker.js:325 -#: js/pitchdrummatrix.js:561 -#: js/pitchdrummatrix.js:563 -#: js/temperament.js:1820 -#: js/temperament.js:1822 -#: js/meterwidget.js:101 -#: js/meterwidget.js:103 -#: js/arpeggio.js:534 -#: js/arpeggio.js:536 +#: js/activity.js:2679 +#: js/widgets/modewidget.js:99 +#: js/widgets/modewidget.js:101 +#: js/widgets/meterwidget.js:206 +#: js/widgets/meterwidget.js:208 +#: js/widgets/pitchdrummatrix.js:674 +#: js/widgets/pitchdrummatrix.js:676 +#: js/widgets/temperament.js:2002 +#: js/widgets/temperament.js:2004 +#: js/widgets/arpeggio.js:534 +#: js/widgets/arpeggio.js:536 +#: js/widgets/phrasemaker.js:534 +#: js/widgets/phrasemaker.js:536 #.TRANS: Detener msgid "Stop" msgstr "Joko" -#: js/toolbar.js:49 -#: js/toolbar.js:110 -#: js/toolbar.js:174 -#: js/toolbar.js:230 +#: js/toolbar.js:51 +#: js/toolbar.js:112 +#: js/toolbar.js:177 +#: js/toolbar.js:233 #: js/turtledefs.js:498 #.TRANS: Grabar msgid "Record" msgstr "" -#: js/toolbar.js:50 -#: js/toolbar.js:51 +#: js/toolbar.js:52 +#: js/toolbar.js:53 #.TRANS: Pantalla completa msgid "Full screen" msgstr "" -#: js/toolbar.js:52 -#: js/toolbar.js:112 -#: js/toolbar.js:177 -#: js/toolbar.js:232 +#: js/toolbar.js:54 +#: js/toolbar.js:115 +#: js/toolbar.js:180 +#: js/toolbar.js:236 #: js/turtledefs.js:504 #.TRANS: Alternar pantalla completa msgid "Toggle Fullscreen" msgstr "" -#: js/toolbar.js:53 -#: js/toolbar.js:113 -#: js/toolbar.js:178 -#: js/toolbar.js:233 +#: js/toolbar.js:55 +#: js/toolbar.js:116 +#: js/toolbar.js:181 +#: js/toolbar.js:237 #: js/turtledefs.js:510 -#: js/StringHelper.js:33 +#: planet/js/StringHelper.js:33 #.TRANS: Nuevo proyecto msgid "New project" msgstr "" -#: js/toolbar.js:54 -#: js/toolbar.js:114 -#: js/toolbar.js:179 -#: js/toolbar.js:234 +#: js/toolbar.js:56 +#: js/toolbar.js:117 +#: js/toolbar.js:182 +#: js/toolbar.js:238 #: js/turtledefs.js:516 #.TRANS: Cargar proyecto de archivo msgid "Load project from file" msgstr "Ehupi jejaposéva ñongatuhape" -#: js/toolbar.js:55 -#: js/toolbar.js:115 -#: js/toolbar.js:116 -#: js/toolbar.js:180 -#: js/toolbar.js:235 +#: js/toolbar.js:57 +#: js/toolbar.js:118 +#: js/toolbar.js:119 +#: js/toolbar.js:183 +#: js/toolbar.js:239 #: js/turtledefs.js:541 #: js/turtledefs.js:550 #: js/turtledefs.js:571 @@ -2791,4793 +486,5938 @@ msgstr "Ehupi jejaposéva ñongatuhape" msgid "Save project" msgstr "Eñongatu jejaposéva" -#: js/toolbar.js:56 -#: js/toolbar.js:75 +#: js/toolbar.js:58 #: js/toolbar.js:77 -#: js/toolbar.js:135 -#: js/toolbar.js:144 -#: js/toolbar.js:146 -#: js/toolbar.js:181 -#: js/toolbar.js:199 -#: js/toolbar.js:201 -#: js/toolbar.js:236 -#: js/toolbar.js:254 -#: js/toolbar.js:256 +#: js/toolbar.js:79 +#: js/toolbar.js:138 +#: js/toolbar.js:147 +#: js/toolbar.js:149 +#: js/toolbar.js:184 +#: js/toolbar.js:202 +#: js/toolbar.js:204 +#: js/toolbar.js:240 +#: js/toolbar.js:258 +#: js/toolbar.js:260 #.TRANS: Guardar como HTML msgid "Save project as HTML" msgstr "" -#: js/toolbar.js:57 -#: js/toolbar.js:117 -#: js/toolbar.js:182 -#: js/toolbar.js:237 +#: js/toolbar.js:59 +#: js/toolbar.js:120 +#: js/toolbar.js:185 +#: js/toolbar.js:241 #.TRANS: Encuentra y comparte proyectos msgid "Find and share projects" msgstr "" -#: js/toolbar.js:58 -#: js/toolbar.js:118 -#: js/toolbar.js:183 -#: js/toolbar.js:238 +#: js/toolbar.js:60 +#: js/toolbar.js:121 +#: js/toolbar.js:186 +#: js/toolbar.js:242 #.TRANS: Desconectado. Compartir no está disponible. msgid "Offline. Sharing is unavailable" msgstr "" -#: js/toolbar.js:59 -#: js/toolbar.js:119 -#: js/toolbar.js:184 -#: js/toolbar.js:239 +#: js/toolbar.js:61 +#: js/toolbar.js:122 +#: js/toolbar.js:187 +#: js/toolbar.js:243 #.TRANS: Menú auxiliar msgid "Auxiliary menu" msgstr "" -#: js/toolbar.js:61 -#: js/toolbar.js:121 -#: js/toolbar.js:186 -#: js/toolbar.js:241 +#: js/toolbar.js:62 +#: js/toolbar.js:123 +#: js/toolbar.js:188 +#: js/toolbar.js:244 +#: js/turtledefs.js:752 +#: js/piemenus.js:3423 +#.TRANS: Ayuda +msgid "Help" +msgstr " Ñepytyvõ" + +#: js/toolbar.js:63 +#: js/toolbar.js:124 +#: js/toolbar.js:189 +#: js/toolbar.js:245 #.TRANS: Tocar lentamente msgid "Run slowly" msgstr "" -#: js/toolbar.js:62 -#: js/toolbar.js:122 -#: js/toolbar.js:187 -#: js/toolbar.js:242 +#: js/toolbar.js:64 +#: js/toolbar.js:125 +#: js/toolbar.js:190 +#: js/toolbar.js:246 #: js/turtledefs.js:682 #.TRANS: Ejecutar paso a paso msgid "Run step by step" msgstr "Embopu guatahápe" -#: js/toolbar.js:63 -#: js/toolbar.js:123 -#: js/toolbar.js:188 -#: js/toolbar.js:243 +#: js/toolbar.js:65 +#: js/toolbar.js:126 +#: js/toolbar.js:191 +#: js/toolbar.js:247 #: js/turtledefs.js:689 #.TRANS: Analizar msgid "Display statistics" msgstr "Ma’e pypuku" -#: js/toolbar.js:64 -#: js/toolbar.js:124 -#: js/toolbar.js:189 -#: js/toolbar.js:244 +#: js/toolbar.js:66 +#: js/toolbar.js:127 +#: js/toolbar.js:192 +#: js/toolbar.js:248 #.TRANS: Cargar plugin msgid "Load plugin" msgstr "" -#: js/toolbar.js:65 -#: js/toolbar.js:125 -#: js/toolbar.js:190 -#: js/toolbar.js:245 +#: js/toolbar.js:67 +#: js/toolbar.js:128 +#: js/toolbar.js:193 +#: js/toolbar.js:249 #: js/turtledefs.js:696 #.TRANS: Eliminar plugin msgid "Delete plugin" msgstr "" -#: js/toolbar.js:66 -#: js/toolbar.js:126 -#: js/toolbar.js:191 -#: js/toolbar.js:246 +#: js/toolbar.js:68 +#: js/toolbar.js:129 +#: js/toolbar.js:194 +#: js/toolbar.js:250 #.TRANS: Habilitar desplazamiento horizontal msgid "Enable horizontal scrolling" msgstr "" -#: js/toolbar.js:67 -#: js/toolbar.js:127 -#: js/toolbar.js:192 -#: js/toolbar.js:247 +#: js/toolbar.js:69 +#: js/toolbar.js:130 +#: js/toolbar.js:195 +#: js/toolbar.js:251 #.TRANS: Deshabilitar desplazamiento horizontal msgid "Disable horizontal scrolling" msgstr "" -#: js/toolbar.js:68 -#: js/toolbar.js:128 -#: js/toolbar.js:193 -#: js/toolbar.js:248 -#: js/LocalCard.js:54 -#: js/StringHelper.js:71 +#: js/toolbar.js:70 +#: js/toolbar.js:131 +#: js/toolbar.js:196 +#: js/toolbar.js:252 +#: planet/js/LocalCard.js:54 +#: planet/js/StringHelper.js:71 #.TRANS: Unir con el proyecto actual msgid "Merge with current project" msgstr "" -#: js/toolbar.js:69 -#: js/toolbar.js:129 +#: js/toolbar.js:71 +#: js/toolbar.js:132 #.TRANS: Establecer vista previa de tono msgid "Set Pitch Preview" msgstr "" -#: js/toolbar.js:70 -#: js/toolbar.js:130 -#: js/toolbar.js:194 -#: js/toolbar.js:249 -#.TRANS: Alternar editor de JavaScript -msgid "Toggle JavaScript Editor" +#: js/toolbar.js:72 +#: js/toolbar.js:133 +#: js/toolbar.js:197 +#: js/toolbar.js:253 +#.TRANS: Editor de Javascript +msgid "JavaScript Editor" msgstr "" -#: js/toolbar.js:71 -#: js/toolbar.js:131 -#: js/toolbar.js:195 -#: js/toolbar.js:250 +#: js/toolbar.js:73 +#: js/toolbar.js:134 +#: js/toolbar.js:198 +#: js/toolbar.js:254 #: js/turtledefs.js:724 #.TRANS: Restaurar msgid "Restore" msgstr "" -#: js/toolbar.js:72 -#: js/toolbar.js:132 -#: js/toolbar.js:196 -#: js/toolbar.js:251 +#: js/toolbar.js:74 +#: js/toolbar.js:135 +#: js/toolbar.js:199 +#: js/toolbar.js:255 #.TRANS: Cambiar al modo principiante msgid "Switch to beginner mode" msgstr "" -#: js/toolbar.js:73 -#: js/toolbar.js:133 -#: js/toolbar.js:197 -#: js/toolbar.js:252 +#: js/toolbar.js:75 +#: js/toolbar.js:136 +#: js/toolbar.js:200 +#: js/toolbar.js:256 #.TRANS: Cambiar a modo avanzado msgid "Switch to advanced mode" msgstr "" -#: js/toolbar.js:74 -#: js/toolbar.js:134 -#: js/toolbar.js:143 -#: js/toolbar.js:198 -#: js/toolbar.js:253 +#: js/toolbar.js:76 +#: js/toolbar.js:137 +#: js/toolbar.js:146 +#: js/toolbar.js:201 +#: js/toolbar.js:257 #: js/turtledefs.js:738 #.TRANS: Seleccione el idioma msgid "Select language" msgstr "" -#: js/toolbar.js:76 -#: js/toolbar.js:79 -#: js/toolbar.js:137 +#: js/toolbar.js:78 +#: js/toolbar.js:81 +#: js/toolbar.js:140 #: js/turtledefs.js:579 #.TRANS: Guardar ilustraciones del ratón como PNG msgid "Save mouse artwork as PNG" msgstr "" -#: js/toolbar.js:78 -#: js/toolbar.js:136 +#: js/toolbar.js:80 +#: js/toolbar.js:139 #: js/turtledefs.js:575 #.TRANS: Guardar ilustraciones del ratón como SVG msgid "Save mouse artwork as SVG" msgstr "" -#: js/toolbar.js:80 -#: js/toolbar.js:138 +#: js/toolbar.js:82 +#: js/toolbar.js:141 #: js/turtledefs.js:583 #.TRANS: Guarda música como WAV msgid "Save music as WAV" msgstr "" -#: js/toolbar.js:81 -#: js/toolbar.js:139 +#: js/toolbar.js:83 +#: js/toolbar.js:142 #: js/turtledefs.js:587 #.TRANS: Guardar partituras como ABC msgid "Save sheet music as ABC" msgstr "" -#: js/toolbar.js:82 -#: js/toolbar.js:140 +#: js/toolbar.js:84 +#: js/toolbar.js:143 #: js/turtledefs.js:591 #.TRANS: Guardar partituras como Lilypond. msgid "Save sheet music as Lilypond" msgstr "" -#: js/toolbar.js:83 +#: js/toolbar.js:85 #.TRANS: Guardar partituras como MusicXML msgid "Save sheet music as MusicXML" msgstr "" -#: js/toolbar.js:84 -#: js/toolbar.js:141 -#: js/toolbar.js:149 -#: js/toolbar.js:204 -#: js/toolbar.js:259 +#: js/toolbar.js:86 +#: js/toolbar.js:144 +#: js/toolbar.js:152 +#: js/toolbar.js:207 +#: js/toolbar.js:263 #: js/turtledefs.js:562 #: js/turtledefs.js:595 #.TRANS: Guardar bloque de ilustraciones como SVG msgid "Save block artwork as SVG" msgstr "" -#: js/toolbar.js:85 -#: js/toolbar.js:142 -#: js/toolbar.js:150 -#: js/toolbar.js:205 -#: js/toolbar.js:260 +#: js/toolbar.js:87 +#: js/toolbar.js:145 +#: js/toolbar.js:153 +#: js/toolbar.js:208 +#: js/toolbar.js:264 +#: js/turtles.js:911 #.TRANS: Confirmar msgid "Confirm" msgstr "" -#: js/toolbar.js:86 -#: js/toolbar.js:151 -#: js/toolbar.js:206 -#: js/toolbar.js:261 -#.TRANS: -msgid "English (United States)" +#: js/toolbar.js:88 +#: js/toolbar.js:154 +#: js/toolbar.js:209 +#: js/toolbar.js:265 +#.TRANS: +msgid "English (United States)" +msgstr "" + +#: js/toolbar.js:89 +#: js/toolbar.js:155 +#: js/toolbar.js:210 +#: js/toolbar.js:266 +#.TRANS: +msgid "English (United Kingdom)" +msgstr "" + +#: js/toolbar.js:90 +#: js/toolbar.js:156 +#: js/toolbar.js:211 +#: js/toolbar.js:267 +#.TRANS: +msgid "日本語" +msgstr "" + +#: js/toolbar.js:91 +#.TRANS: +msgid "한국어" +msgstr "" + +#: js/toolbar.js:92 +#: js/toolbar.js:158 +#: js/toolbar.js:213 +#: js/toolbar.js:269 +#.TRANS: +msgid "español" +msgstr "" + +#: js/toolbar.js:93 +#: js/toolbar.js:159 +#: js/toolbar.js:214 +#: js/toolbar.js:270 +#.TRANS: +msgid "português" +msgstr "" + +#: js/toolbar.js:94 +#: js/toolbar.js:160 +#: js/toolbar.js:215 +#: js/toolbar.js:271 +#.TRANS: +msgid "にほんご" +msgstr "" + +#: js/toolbar.js:95 +#: js/toolbar.js:161 +#: js/toolbar.js:216 +#: js/toolbar.js:272 +#.TRANS: +msgid "中文" +msgstr "" + +#: js/toolbar.js:96 +#: js/toolbar.js:162 +#: js/toolbar.js:217 +#: js/toolbar.js:273 +#.TRANS: +msgid "ภาษาไทย" +msgstr "" + +#: js/toolbar.js:97 +#: js/toolbar.js:163 +#: js/toolbar.js:218 +#: js/toolbar.js:274 +#.TRANS: +msgid "aymara" +msgstr "" + +#: js/toolbar.js:98 +#: js/toolbar.js:164 +#: js/toolbar.js:219 +#: js/toolbar.js:275 +#.TRANS: +msgid "quechua" +msgstr "" + +#: js/toolbar.js:99 +#: js/toolbar.js:165 +#: js/toolbar.js:220 +#: js/toolbar.js:276 +#.TRANS: +msgid "guarani" +msgstr "" + +#: js/toolbar.js:100 +#: js/toolbar.js:166 +#: js/toolbar.js:221 +#: js/toolbar.js:277 +#.TRANS: +msgid "हिंदी" +msgstr "" + +#: js/toolbar.js:101 +#: js/toolbar.js:168 +#: js/toolbar.js:222 +#: js/toolbar.js:279 +#.TRANS: +msgid "igbo" +msgstr "" + +#: js/toolbar.js:102 +#: js/toolbar.js:169 +#: js/toolbar.js:223 +#: js/toolbar.js:280 +#.TRANS: +msgid "عربى" +msgstr "" + +#: js/toolbar.js:103 +#: js/toolbar.js:167 +#: js/toolbar.js:224 +#: js/toolbar.js:278 +#.TRANS: +msgid "తెలుగు" +msgstr "" + +#: js/toolbar.js:104 +#: js/toolbar.js:170 +#: js/toolbar.js:225 +#: js/toolbar.js:281 +#.TRANS: +msgid "עִברִית" +msgstr "" + +#: js/toolbar.js:113 +#: js/toolbar.js:114 +#: js/toolbar.js:178 +#: js/toolbar.js:179 +#: js/toolbar.js:234 +#: js/toolbar.js:235 +#.TRANS: Pantalla completa +msgid "Full Screen" +msgstr "" + +#: js/toolbar.js:148 +#: js/toolbar.js:151 +#: js/toolbar.js:203 +#: js/toolbar.js:206 +#: js/toolbar.js:259 +#: js/toolbar.js:262 +#: js/turtledefs.js:558 +#.TRANS: Guardar la ilustración de la tortuga como PNG +msgid "Save turtle artwork as PNG" +msgstr "" + +#: js/toolbar.js:150 +#: js/toolbar.js:205 +#: js/toolbar.js:261 +#: js/turtledefs.js:554 +#.TRANS: Guardar la ilustración de la tortuga como SVG +msgid "Save turtle artwork as SVG" +msgstr "" + +#: js/toolbar.js:157 +#: js/toolbar.js:212 +#: js/toolbar.js:268 +#.TRANS: +msgid "한국인" +msgstr "" + +#: js/toolbar.js:174 +#: js/toolbar.js:230 +#.TRANS: Sobre Bloques de Tortuga +msgid "About Turtle Blocks" +msgstr "" + +#: js/toolbar.js:446 +#: js/toolbar.js:457 +#: js/toolbar.js:497 +#.TRANS: No Envolver +msgid "Turtle Wrap Off" +msgstr "" + +#: js/toolbar.js:466 +#: js/toolbar.js:506 +#.TRANS: Envolver +msgid "Turtle Wrap On" +msgstr "" + +#: js/turtle-painter.js:1192 +#: js/turtle-painter.js:1193 +#: js/turtles.js:118 +#: js/block-verbose.js:1623 +#: js/block.js:1587 +#: js/lilypond.js:749 +#: js/lilypond.js:913 +#: js/lilypond.js:951 +#: js/logo.js:1184 +#: js/blocks/ActionBlocks.js:1223 +#: js/blocks/ProgramBlocks.js:1267 +#.TRANS: iniciar +msgid "start" +msgstr "ñepyrũ" + +#: js/turtledefs.js:40 +#.TRANS: put the URL to the guide here, e.g., https://github.com/sugarlabs/turtleblocksjs/tree/master/guide/README.md +#.TRANS: https://github.com/sugarlabs/musicblocks/tree/master/guide-es/README.md +msgid "guide url" +msgstr "" + +#: js/turtledefs.js:85 +#: js/turtledefs.js:437 +#.TRANS: Turtle Blocks es una tortuga basada en Logo que dibuja imágenes coloridas programable de una forma visual con bloques encastrables. +msgid "Turtle Blocks is a Logo-inspired turtle that draws colorful pictures with snap-together visual-programming blocks." +msgstr "" + +#: js/turtledefs.js:118 +#: js/turtledefs.js:220 +#.TRANS: buscar +msgid "search" +msgstr "" + +#: js/turtledefs.js:120 +#: js/turtledefs.js:222 +#: js/blocks/MeterBlocks.js:1343 +#: js/blocks/WidgetBlocks.js:522 +#.TRANS: musical meter (time signature), e.g., 4:4 +#.TRANS: metro +msgid "meter" +msgstr "ta’ãha" + +#: js/turtledefs.js:122 +#: js/turtledefs.js:224 +#.TRANS: intervalos +msgid "intervals" +msgstr "intervalos" + +#: js/turtledefs.js:124 +#: js/turtledefs.js:226 +#.TRANS: ornamento +msgid "ornament" +msgstr "" + +#: js/turtledefs.js:125 +#: js/turtledefs.js:227 +#: js/blocks/VolumeBlocks.js:362 +#: js/blocks/VolumeBlocks.js:502 +#: js/blocks/VolumeBlocks.js:545 +#.TRANS: volumen +msgid "volume" +msgstr "" + +#: js/turtledefs.js:126 +#: js/turtledefs.js:228 +#: js/block-verbose.js:1700 +#: js/block-verbose.js:2626 +#: js/block.js:1664 +#: js/block.js:2554 +#: js/lilypond.js:732 +#: js/lilypond.js:897 +#: js/lilypond.js:941 +#: js/palette.js:577 +#: js/blocks/RhythmBlocks.js:766 +#: js/blocks/DrumBlocks.js:477 +#: js/blocks/VolumeBlocks.js:502 +#: js/widgets/phrasemaker.js:1038 +#.TRANS: tambor +msgid "drum" +msgstr "angu’atarara" + +#: js/turtledefs.js:129 +#: js/turtledefs.js:231 +#.TRANS: cajas +msgid "boxes" +msgstr "mba’eryru" + +#: js/turtledefs.js:130 +#: js/turtledefs.js:232 +#.TRANS: aparatos +msgid "widgets" +msgstr "mba’e" + +#: js/turtledefs.js:131 +#: js/turtledefs.js:233 +#: js/widgets/phrasemaker.js:1039 +#.TRANS: gráficos +msgid "graphics" +msgstr "" + +#: js/turtledefs.js:134 +#: js/turtledefs.js:236 +#.TRANS: booleano +msgid "boolean" +msgstr "boleano" + +#: js/turtledefs.js:137 +#: js/turtledefs.js:239 +#: js/blocks/HeapBlocks.js:59 +#: js/widgets/status.js:147 +#.TRANS: pila +msgid "heap" +msgstr "chovi" + +#: js/turtledefs.js:138 +#: js/turtledefs.js:240 +#: js/blocks/DictBlocks.js:142 +#: js/blocks/ProgramBlocks.js:495 +#.TRANS: diccionario +msgid "dictionary" +msgstr "" + +#: js/turtledefs.js:139 +#: js/turtledefs.js:241 +#.TRANS: conjunto +msgid "ensemble" +msgstr "" + +#: js/turtledefs.js:140 +#: js/turtledefs.js:242 +#.TRANS: extras +msgid "extras" +msgstr "ijykepegua" + +#: js/turtledefs.js:142 +#: js/turtledefs.js:244 +#.TRANS: program as in computer program +#.TRANS: program as in computer program +#.TRANS: programa +msgid "program" +msgstr "" + +#: js/turtledefs.js:143 +#: js/turtledefs.js:245 +#.TRANS: mis bloques +msgid "my blocks" +msgstr "" + +#: js/turtledefs.js:185 +#: js/turtledefs.js:281 +#.TRANS: arte +msgid "artwork" +msgstr "" + +#: js/turtledefs.js:185 +#: js/turtledefs.js:281 +#.TRANS: lógica +msgid "logic" +msgstr "" + +#: js/turtledefs.js:185 +#: js/turtledefs.js:281 +#.TRANS: música +msgid "music" +msgstr "" + +#: js/turtledefs.js:187 +#: js/turtledefs.js:463 +#.TRANS: Bloques de Música es una colección de herramientas de manipulación para explorar conceptos musicales fundamentales de una manera integradora y divertido. +msgid "Music Blocks is a collection of tools for exploring fundamental musical concepts in a fun way." +msgstr " Bloques de Música es una colección de herramientas de manipulación para explorar conceptos musicales fundamentales de una manera integradora y divertido." + +#: js/turtledefs.js:436 +#.TRANS: Bienvenidos a TortuBloques +msgid "Welcome to Turtle Blocks" +msgstr "" + +#: js/turtledefs.js:438 +#: js/turtledefs.js:465 +#: js/turtledefs.js:774 +#: js/turtledefs.js:805 +#.TRANS: La versión actual es +msgid "The current version is" +msgstr "" + +#: js/turtledefs.js:446 +#: js/turtledefs.js:483 +#.TRANS: Haga clic para ejecutar el proyecto en modo rápido. +msgid "Click the run button to run the project in fast mode." +msgstr "" + +#: js/turtledefs.js:452 +#.TRANS: Detener la tortuga. +msgid "Stop the turtle." +msgstr "" + +#: js/turtledefs.js:454 +#: js/turtledefs.js:491 +#.TRANS: También puede escribir Alt-S para detenerse. +msgid "You can also type Alt-S to stop." +msgstr "" + +#: js/turtledefs.js:462 +#: js/widgets/help.js:333 +#.TRANS: Bienvenido a Bloques de Música +msgid "Welcome to Music Blocks" +msgstr "Tereg̃uaheporãite Vore puporãpe" + +#: js/turtledefs.js:472 +#: js/widgets/help.js:334 +#.TRANS: Conoce Sr. Ratón +msgid "Meet Mr. Mouse!" +msgstr "Eikuaa karai angujape" + +#: js/turtledefs.js:473 +#.TRANS: Sr. Ratón es nuestro conductor de Bloques de Música. +msgid "Mr Mouse is our Music Blocks conductor." +msgstr "Karai anguja ha’e ñande sambyhyha Vore puporãpe" + +#: js/turtledefs.js:475 +#.TRANS: Sr. Ratón le anima a explorar los Bloques de Música. +msgid "Mr Mouse encourages you to explore Music Blocks." +msgstr " Karai anguja omoingove jepovyvy Vore puporã" + +#: js/turtledefs.js:477 +#.TRANS: Vamos a empezar nuestro recorrido! +msgid "Let us start our tour!" +msgstr "Ñañepyrũ ñande rape" + +#: js/turtledefs.js:489 +#.TRANS: Detener la música (y los ratones) +msgid "Stop the music (and the mice)." +msgstr "" + +#: js/turtledefs.js:499 +#.TRANS: Grabe su proyecto como video. +msgid "Record your project as video." +msgstr "" + +#: js/turtledefs.js:505 +#.TRANS: Alternar el modo de pantalla completa +msgid "Toggle Fullscreen mode." +msgstr "" + +#: js/turtledefs.js:511 +#.TRANS: Inicializar un nuevo proyecto. +msgid "Initialize a new project." +msgstr "" + +#: js/turtledefs.js:517 +#.TRANS: También puede cargar proyectos desde el sistema de archivos. +msgid "You can also load projects from the file system." +msgstr "Ikatu avei ehupi jejaposéva ñongatuha rire" + +#: js/turtledefs.js:522 +#: planet/js/StringHelper.js:46 +#.TRANS: Borrar +msgid "Delete" +msgstr "mbogue" + +#: js/turtledefs.js:523 +#.TRANS: Para eliminar un bloque, simplemente haz clic derecho sobre él, luego podrás ver la opción de eliminar. +msgid "To delete a block, just right-click on it, then you will be able to see the delete option" +msgstr "" + +#: js/turtledefs.js:528 +#: js/activity.js:2649 +#: planet/js/LocalCard.js:31 +#.TRANS: Copiar +msgid "Copy" +msgstr "Mbohesegua" + +#: js/turtledefs.js:529 +#.TRANS: Para copiar un bloque, simplemente haz clic derecho sobre él, luego podrás ver la opción de copiar. +msgid "To copy a block, just right-click on it, then you will be able to see the copy option" +msgstr "" + +#: js/turtledefs.js:534 +#: js/piemenus.js:3411 +#.TRANS: Extraer +msgid "Extract" +msgstr "" + +#: js/turtledefs.js:535 +#.TRANS: Para extraer un bloque, simplemente haz clic derecho sobre él, luego podrás ver la opción de extracción. +msgid "To extract a block, just right-click on it, then you will be able to see the extract option" +msgstr "" + +#: js/turtledefs.js:542 +#: js/turtledefs.js:552 +#: js/turtledefs.js:573 +#.TRANS: Guarde proyecto en archivo +msgid "Save your project to a file." +msgstr "Eñongatu jejaposéva ñongatuhápe" + +#: js/turtledefs.js:549 +#: js/turtledefs.js:570 +#.TRANS: guardar +msgid "save" +msgstr "ñongatu" + +#: js/turtledefs.js:556 +#: js/turtledefs.js:577 +#.TRANS: Guardar gráficos de su proyecto como SVG +msgid "Save graphics from your project to as SVG." +msgstr "" + +#: js/turtledefs.js:560 +#: js/turtledefs.js:581 +#.TRANS: Guardar gráficos de su proyecto como PNG +msgid "Save graphics from your project as PNG." +msgstr "" + +#: js/turtledefs.js:564 +#: js/turtledefs.js:597 +#.TRANS: Guardar bloque de ilustraciones como un archivo de SVG +msgid "Save block artwork as an SVG file." +msgstr "" + +#: js/turtledefs.js:585 +#.TRANS: Guarda audio de tu proyecto como WAV. +msgid "Save audio from your project as WAV." +msgstr "" + +#: js/turtledefs.js:589 +#.TRANS: Guarda tu proyecto como un archivo ABC. +msgid "Save your project to as an ABC file." +msgstr "" + +#: js/turtledefs.js:593 +#.TRANS: Guarde el proyecto como un archivo de LilyPond. +msgid "Save your project to as a Lilypond file." +msgstr "Eñongatu jejaposéva ñongatuhápe LilyPond pe" + +#: js/turtledefs.js:604 +#.TRANS: Cargar ejemplos desde el servidor +msgid "Load samples from server" +msgstr "Ehupi techapyrãkuéra" + +#: js/turtledefs.js:605 +#.TRANS: Este botón abre la pantalla de carga de proyectos de ejemplo. +msgid "This button opens a viewer for loading example projects." +msgstr "Ko votõ oipe’a tendahesaperã jejaposéva techapyrã" + +#: js/turtledefs.js:611 +#.TRANS: Botones de paleta +msgid "Palette buttons" +msgstr "Yvyra pe votõkuera" + +#: js/turtledefs.js:612 +#.TRANS: Esta barra de herramientas contiene los botones de la paleta de Ritmo, Tono, Tortuga, y más. +msgid "This toolbar contains the palette buttons including Rhythm Pitch Tone Action and more." +msgstr "" + +#: js/turtledefs.js:614 +#.TRANS: Haga clic para mostrar las paletas de bloques y bloques de arrastre de las gamas de colores en el lienzo para usarlos. +msgid "Click to show the palettes of blocks and drag blocks from the palettes onto the canvas to use them." +msgstr "Eyopy clic oichuka haguã Yvyra pe vorekuera ha avei mbotyryryha vorekuera aorã sa’y eipuruhaguã" + +#: js/turtledefs.js:620 +#.TRANS: Cartesiano/Polar +msgid "Cartesian/Polar" +msgstr "" + +#: js/turtledefs.js:621 +#.TRANS: Mostrar u ocultar las rejillas de coordenadas. +msgid "Show or hide a coordinate grid." +msgstr "" + +#: js/turtledefs.js:626 +#: js/turtles.js:902 +#.TRANS: Limpiar +msgid "Clean" +msgstr "Mopot ĩ" + +#: js/turtledefs.js:627 +#.TRANS: Borre la pantalla y devuelva los ratones a sus posiciones iniciales. +msgid "Clear the screen and return the mice to their initial positions." +msgstr "" + +#: js/turtledefs.js:632 +#: js/turtles.js:955 +#.TRANS: Contraer +msgid "Collapse" +msgstr "" + +#: js/turtledefs.js:633 +#.TRANS: Contraer la ventana de gráficos. +msgid "Collapse the graphics window." +msgstr "" + +#: js/turtledefs.js:638 +#: js/activity.js:5684 +#.TRANS: Casa +msgid "Home" +msgstr "Óga" + +#: js/turtledefs.js:639 +#.TRANS: Devolver todos los bloques para el centro de la pantalla. +msgid "Return all blocks to the center of the screen." +msgstr "Emyengovia vorekuéra tendahesaperã mbytépe" + +#: js/turtledefs.js:644 +#.TRANS: Mostrar u ocultar los bloques. +msgid "Show/hide blocks" +msgstr "Ehechauka tér ã emokañy vorekuéra" + +#: js/turtledefs.js:645 +#.TRANS: Ocultar o mostrar los bloques y las paletas. +msgid "Hide or show the blocks and the palettes." +msgstr "Emongañy tera eichuka Yvyra pe ha vorekuera" + +#: js/turtledefs.js:650 +#.TRANS: Expandir/contraer los bloques +msgid "Expand/collapse collapsable blocks" +msgstr "" + +#: js/turtledefs.js:651 +#.TRANS: Expandir o colapsar los bloques colapsables, cómo por ejemplo los bloques de empezar y los de acción. +msgid "Expand or collapse start and action stacks." +msgstr "Eipyso terã emboty vorekuéra oñembotykuaava" + +#: js/turtledefs.js:658 +#: js/activity.js:5704 +#.TRANS: Disminuir el tamaño de los bloques +msgid "Decrease block size" +msgstr "Emomichĩ jakatuha vorekuéra" + +#: js/turtledefs.js:659 +#.TRANS: Disminuye el tamaño de los bloques +msgid "Decrease the size of the blocks." +msgstr "Omomichĩ jakatuha vorekuéra" + +#: js/turtledefs.js:664 +#: js/activity.js:5710 +#.TRANS: Incrementar tamaño de bloques +msgid "Increase block size" +msgstr "Embotuicha jakatuha vorekuéra" + +#: js/turtledefs.js:665 +#.TRANS: Incrementa el tamaño de los bloques. +msgid "Increase the size of the blocks." +msgstr "Ombotuicha jakatuha vorekuéra" + +#: js/turtledefs.js:670 +#.TRANS: Expandir/colapsar la barra de opciones. +msgid "Expand/collapse option toolbar" +msgstr " Eipyso/emboty yvyra pe poravokuaaha" + +#: js/turtledefs.js:671 +#.TRANS: Haga clic en este botón para expandir o contraer la barra de herramientas auxiliar. +msgid "Click this button to expand or collapse the auxillary toolbar." +msgstr "Ejopy clic votõ Eipyso/emboty haguã yvyra pe tembipuru ryru" + +#: js/turtledefs.js:676 +#.TRANS: Ejecutar lentamente +msgid "Run slow" +msgstr "Ejapo mbegueve" + +#: js/turtledefs.js:677 +#.TRANS: Haz click para ejecutar el proyecto en modo lento. +msgid "Click to run the project in slow mode." +msgstr "Eyopy clic ejapo haguã jejaposéva mbegueve " + +#: js/turtledefs.js:683 +#.TRANS: Haz click para ejecutar el proyecto en modo paso a paso. +msgid "Click to run the project step by step." +msgstr "Eyopy clic ejapo haguã jejaposéva michĩmimi" + +#: js/turtledefs.js:690 +#.TRANS: Analizar los tipos de bloques usados. +msgid "Display statistics about your Music project." +msgstr "Ma’e pypuku vorekuéra ojeipurúva" + +#: js/turtledefs.js:697 +#.TRANS: Eliminar un plugin seleccionado. +msgid "Delete a selected plugin." +msgstr "" + +#: js/turtledefs.js:704 +#.TRANS: Activar scroll +msgid "Enable scrolling" +msgstr "Emoingo scroll" + +#: js/turtledefs.js:705 +#.TRANS: Puedes mover los bloques por el área de trabajo +msgid "You can scroll the blocks on the canvas." +msgstr "Ikatu emomyi vorekuéra mba’apoha rupi" + +#: js/turtledefs.js:714 +#.TRANS: Envolver tortuga +msgid "Wrap Turtle" msgstr "" -#: js/toolbar.js:87 -#: js/toolbar.js:152 -#: js/toolbar.js:207 -#: js/toolbar.js:262 -#.TRANS: -msgid "English (United Kingdom)" +#: js/turtledefs.js:715 +#.TRANS: Encender / apagar la envoltura de tortugas +msgid "Turn Turtle wrapping On or Off." msgstr "" -#: js/toolbar.js:88 -#: js/toolbar.js:153 -#: js/toolbar.js:208 -#: js/toolbar.js:263 -#.TRANS: -msgid "日本語" +#: js/turtledefs.js:725 +#.TRANS: Restaurar bloques de la papelera. +msgid "Restore blocks from the trash." +msgstr "Eru jey vorekuéra kuatiaryrugi" + +#: js/turtledefs.js:732 +#.TRANS: Cambiar el modo +msgid "Switch mode" msgstr "" -#: js/toolbar.js:89 -#.TRANS: -msgid "한국어" +#: js/turtledefs.js:733 +#.TRANS: Cambia entre los modos principiante y avanzado. +msgid "Switch between beginner and advance modes." msgstr "" -#: js/toolbar.js:90 -#: js/toolbar.js:155 -#: js/toolbar.js:210 -#: js/toolbar.js:265 -#.TRANS: -msgid "español" +#: js/turtledefs.js:739 +#.TRANS: Seleccione su preferencia de idioma. +msgid "Select your language preference." msgstr "" -#: js/toolbar.js:91 -#: js/toolbar.js:156 -#: js/toolbar.js:211 -#: js/toolbar.js:266 -#.TRANS: -msgid "português" +#: js/turtledefs.js:745 +#.TRANS: Atajos de teclado +msgid "Keyboard shortcuts" msgstr "" -#: js/toolbar.js:92 -#: js/toolbar.js:157 -#: js/toolbar.js:212 -#: js/toolbar.js:267 -#.TRANS: -msgid "にほんご" +#: js/turtledefs.js:746 +#.TRANS: Puede escribir \"d\" para crear un bloque \"do\", \"r\" para crear un bloque \"re\", etc. +msgid "You can type d to create a do block and r to create a re block etc." msgstr "" -#: js/toolbar.js:93 -#: js/toolbar.js:158 -#: js/toolbar.js:213 -#: js/toolbar.js:268 -#.TRANS: -msgid "中文" +#: js/turtledefs.js:753 +#.TRANS: Mostrar estos mensajes. +msgid "Show these messages." +msgstr "Eichuka ñe’ẽmondo kuéra" + +#: js/turtledefs.js:759 +#: js/turtledefs.js:790 +#: js/widgets/help.js:335 +#.TRANS: Guía +msgid "Guide" msgstr "" -#: js/toolbar.js:94 -#: js/toolbar.js:159 -#: js/toolbar.js:214 -#: js/toolbar.js:269 -#.TRANS: -msgid "ภาษาไทย" +#: js/turtledefs.js:760 +#.TRANS: Se encuentra disponible una guía detallada de TortuBloques. +msgid "A detailed guide to Turtle Blocks is available." msgstr "" -#: js/toolbar.js:95 -#: js/toolbar.js:160 -#: js/toolbar.js:215 -#: js/toolbar.js:270 -#.TRANS: -msgid "aymara" +#: js/turtledefs.js:764 +#.TRANS: Guía de TortuBloques +msgid "Turtle Blocks Guide" msgstr "" -#: js/toolbar.js:96 -#: js/toolbar.js:161 -#: js/toolbar.js:216 -#: js/toolbar.js:271 -#.TRANS: -msgid "quechua" +#: js/turtledefs.js:767 +#: js/turtledefs.js:798 +#: js/widgets/help.js:336 +#.TRANS: Acerca +msgid "About" msgstr "" -#: js/toolbar.js:97 -#: js/toolbar.js:162 -#: js/toolbar.js:217 -#: js/toolbar.js:272 -#.TRANS: -msgid "guarani" +#: js/turtledefs.js:768 +#.TRANS: TortuBloques es una colección de herramientas de Software Libre para explorar conceptos musicales. +msgid "Turtle Blocks is an open source collection of tools for exploring musical concepts." msgstr "" -#: js/toolbar.js:98 -#: js/toolbar.js:163 -#: js/toolbar.js:218 -#: js/toolbar.js:273 -#.TRANS: -msgid "हिंदी" +#: js/turtledefs.js:770 +#.TRANS: Se puede encontrar una lista completa de colaboradores en el repositorio GitHub de TortuBloques. +msgid "A full list of contributors can be found in the Turtle Blocks GitHub repository." msgstr "" -#: js/toolbar.js:99 -#: js/toolbar.js:165 -#: js/toolbar.js:219 -#: js/toolbar.js:275 -#.TRANS: -msgid "igbo" +#: js/turtledefs.js:772 +#.TRANS: TortuBloques está licenciado bajo el AGPL. +msgid "Turtle Blocks is licensed under the AGPL." msgstr "" -#: js/toolbar.js:100 -#: js/toolbar.js:166 -#: js/toolbar.js:220 -#: js/toolbar.js:276 -#.TRANS: -msgid "عربى" +#: js/turtledefs.js:780 +#.TRANS: El repositorio de GitHub de TortuBloques +msgid "Turtle Blocks GitHub repository" msgstr "" -#: js/toolbar.js:101 -#: js/toolbar.js:164 -#: js/toolbar.js:221 -#: js/toolbar.js:274 -msgid "తెలుగు" +#: js/turtledefs.js:783 +#: js/turtledefs.js:814 +#: js/widgets/help.js:337 +#: js/widgets/help.js:359 +#.TRANS: Felicitaciones. +msgid "Congratulations." +msgstr "Vy’apave" + +#: js/turtledefs.js:784 +#.TRANS: Ha terminado la gira. Por favor, disfrutar de TortuBloques +msgid "You have finished the tour. Please enjoy Turtle Blocks!" msgstr "" -#: js/toolbar.js:102 -#: js/toolbar.js:167 -#: js/toolbar.js:222 -#: js/toolbar.js:277 -#.TRANS: -msgid "עִברִית" +#: js/turtledefs.js:791 +#.TRANS: Una guía detallada de Bloques de Música está disponible. +msgid "A detailed guide to Music Blocks is available." msgstr "" -#: js/toolbar.js:111 -#: js/toolbar.js:175 -#: js/toolbar.js:176 -#: js/toolbar.js:231 -#.TRANS: Pantalla completa -msgid "Full Screen" +#: js/turtledefs.js:799 +#.TRANS: Bloques de Música es una colección de herramientas de Software Libre para explorar conceptos musicales. +msgid "Music Blocks is an open source collection of tools for exploring musical concepts." msgstr "" -#: js/toolbar.js:145 -#: js/toolbar.js:148 -#: js/toolbar.js:200 -#: js/toolbar.js:203 -#: js/toolbar.js:255 -#: js/toolbar.js:258 -#: js/turtledefs.js:558 -#.TRANS: Guardar la ilustración de la tortuga como PNG -msgid "Save turtle artwork as PNG" +#: js/turtledefs.js:801 +#.TRANS: Se puede encontrar una lista completa de colaboradores en el repositorio GitHub de Bloques de Música. +msgid "A full list of contributors can be found in the Music Blocks GitHub repository." msgstr "" -#: js/toolbar.js:147 -#: js/toolbar.js:202 -#: js/toolbar.js:257 -#: js/turtledefs.js:554 -#.TRANS: Guardar la ilustración de la tortuga como SVG -msgid "Save turtle artwork as SVG" +#: js/turtledefs.js:803 +#.TRANS: Bloques de Música está licenciado bajo el AGPL. +msgid "Music Blocks is licensed under the AGPL." msgstr "" -#: js/toolbar.js:154 -#: js/toolbar.js:209 -#: js/toolbar.js:264 -#.TRANS: -msgid "한국인" +#: js/turtledefs.js:811 +#.TRANS: El repositorio de GitHub de Bloques de Música +msgid "Music Blocks GitHub repository" msgstr "" -#: js/toolbar.js:171 -#: js/toolbar.js:227 -#.TRANS: Sobre Bloques de Tortuga -msgid "About Turtle Blocks" +#: js/turtledefs.js:815 +#.TRANS: Ha terminado la gira. Por favor, disfrutar de Bloques de Música! +msgid "You have finished the tour. Please enjoy Music Blocks!" +msgstr "Opa ojereva, ikatu eipuruvy’a vorekuéra pupoty" + +#: js/turtles.js:882 +#.TRANS: Cuadrícula +msgid "Grid" msgstr "" -#: js/toolbar.js:429 -#: js/toolbar.js:440 -#.TRANS: No Envolver -msgid "Turtle Wrap Off" +#: js/turtles.js:1024 +#.TRANS: Expandir +msgid "Expand" msgstr "" -#: js/toolbar.js:442 -#.TRANS: Envolver -msgid "Turtle Wrap On" +#: js/block-verbose.js:1616 +#: js/block-verbose.js:1735 +#: js/block.js:1580 +#: js/block.js:1699 +#: js/palette.js:605 +#: js/blocks/IntervalsBlocks.js:63 +#: js/blocks/WidgetBlocks.js:259 +#.TRANS: temperamento +msgid "temperament" msgstr "" -#: js/block.js:1470 +#: js/block-verbose.js:1630 +#: js/block.js:1594 #.TRANS: matriz msgid "matrix" msgstr "moñepyrũmbygua" -#: js/block.js:1477 -#: js/WidgetBlocks.js:1226 +#: js/block-verbose.js:1637 +#: js/block.js:1601 +#: js/blocks/WidgetBlocks.js:1509 #: plugins/rodi.rtp:324 #.TRANS: estatus msgid "status" msgstr "henda" -#: js/block.js:1484 +#: js/block-verbose.js:1644 +#: js/block.js:1608 #.TRANS: mapa del tambor msgid "drum mapper" msgstr "" -#: js/block.js:1491 +#: js/block-verbose.js:1651 +#: js/block.js:1615 #.TRANS: regla msgid "ruler" msgstr "mbojojaha" -#: js/block.js:1498 -#: js/WidgetBlocks.js:327 +#: js/block-verbose.js:1658 +#: js/block.js:1622 +#: js/blocks/WidgetBlocks.js:397 #.TRANS: timbre is the character or quality of a musical sound #.TRANS: timbre msgid "timbre" msgstr "" -#: js/block.js:1505 +#: js/block-verbose.js:1665 +#: js/block.js:1629 #.TRANS: escalera msgid "stair" msgstr "jupiha" -#: js/block.js:1512 -#: js/WidgetBlocks.js:577 +#: js/block-verbose.js:1672 +#: js/block.js:1636 +#: js/blocks/WidgetBlocks.js:707 #.TRANS: the speed at music is should be played. #.TRANS: tempo msgid "tempo" msgstr "tempo" -#: js/block.js:1519 -#: js/block.js:1582 -#: js/IntervalsBlocks.js:1268 +#: js/block-verbose.js:1679 +#: js/block-verbose.js:1742 +#: js/block.js:1643 +#: js/block.js:1706 +#: js/blocks/IntervalsBlocks.js:1464 #.TRANS: mode, e.g., Major in C Major #.TRANS: modo msgid "mode" msgstr "kokatu" -#: js/block.js:1526 +#: js/block-verbose.js:1686 +#: js/block.js:1650 #.TRANS: deslizador msgid "slider" msgstr "embosyrỹi" -#: js/block.js:1533 -#: js/SensorsBlocks.js:1001 +#: js/block-verbose.js:1693 +#: js/block.js:1657 +#: js/blocks/SensorsBlocks.js:1001 #.TRANS: teclado msgid "keyboard" msgstr "votõkuéra renda" -#: js/block.js:1547 -#: js/WidgetBlocks.js:957 -#: js/WidgetBlocks.js:988 +#: js/block-verbose.js:1707 +#: js/block.js:1671 +#: js/blocks/WidgetBlocks.js:1190 +#: js/blocks/WidgetBlocks.js:1228 #.TRANS: widget for subdividing a measure into distinct rhythmic elements #.TRANS: hacer un ritmo msgid "rhythm maker" msgstr "" -#: js/block.js:1554 -#: js/block.js:2182 -#: js/block.js:2236 -#: js/RhythmBlockPaletteBlocks.js:70 -#: js/RhythmBlockPaletteBlocks.js:251 -#: js/RhythmBlockPaletteBlocks.js:484 -#: js/RhythmBlockPaletteBlocks.js:553 -#: js/RhythmBlockPaletteBlocks.js:604 -#: js/RhythmBlockPaletteBlocks.js:874 -#: js/RhythmBlocks.js:33 -#: js/RhythmBlocks.js:356 -#: js/RhythmBlocks.js:766 -#: js/RhythmBlocks.js:806 -#: js/OrnamentBlocks.js:220 -#: js/OrnamentBlocks.js:312 -#: js/MeterBlocks.js:1367 -#: js/DictActions.js:85 -#: js/phrasemaker.js:731 -#: js/phrasemaker.js:2393 -#: js/phrasemaker.js:2436 -#: js/phrasemaker.js:2534 +#: js/block-verbose.js:1714 +#: js/block-verbose.js:2457 +#: js/block-verbose.js:2514 +#: js/block.js:1678 +#: js/block.js:2385 +#: js/block.js:2442 +#: js/blocks/MeterBlocks.js:1367 +#: js/blocks/OrnamentBlocks.js:220 +#: js/blocks/OrnamentBlocks.js:312 +#: js/blocks/RhythmBlocks.js:33 +#: js/blocks/RhythmBlocks.js:356 +#: js/blocks/RhythmBlocks.js:766 +#: js/blocks/RhythmBlocks.js:806 +#: js/blocks/RhythmBlockPaletteBlocks.js:70 +#: js/blocks/RhythmBlockPaletteBlocks.js:252 +#: js/blocks/RhythmBlockPaletteBlocks.js:485 +#: js/blocks/RhythmBlockPaletteBlocks.js:554 +#: js/blocks/RhythmBlockPaletteBlocks.js:605 +#: js/blocks/RhythmBlockPaletteBlocks.js:875 +#: js/turtleactions/DictActions.js:85 +#: js/widgets/phrasemaker.js:942 +#: js/widgets/phrasemaker.js:2656 +#: js/widgets/phrasemaker.js:2699 +#: js/widgets/phrasemaker.js:2810 #.TRANS: the value (e.g., 1/4 note) of the note being played. #.TRANS: valor de la nota msgid "note value" msgstr "kuatia’ihai repy" -#: js/block.js:1561 -#: js/block.js:2110 -#: js/block.js:2133 -#: js/IntervalsBlocks.js:875 -#: js/OrnamentBlocks.js:312 +#: js/block-verbose.js:1721 +#: js/block-verbose.js:2382 +#: js/block-verbose.js:2405 +#: js/block.js:1685 +#: js/block.js:2310 +#: js/block.js:2333 +#: js/blocks/IntervalsBlocks.js:1071 +#: js/blocks/OrnamentBlocks.js:312 #.TRANS: calculate a relative step between notes based on semi-tones #.TRANS: intervalo escalar msgid "scalar interval" msgstr "" -#: js/block.js:1568 -#: js/RhythmBlocks.js:148 +#: js/block-verbose.js:1728 +#: js/block.js:1692 +#: js/blocks/RhythmBlocks.js:148 #.TRANS: milisegundos msgid "milliseconds" msgstr "" -#: js/block.js:2180 -#: js/block.js:2184 -#: js/block.js:2234 -#: js/block.js:2345 -#: js/ProgramBlocks.js:1273 -#: js/RhythmBlocks.js:712 -#: js/rhythmruler.js:834 -#: js/rhythmruler.js:961 +#: js/block-verbose.js:2455 +#: js/block-verbose.js:2459 +#: js/block-verbose.js:2512 +#: js/block-verbose.js:2628 +#: js/block.js:2383 +#: js/block.js:2387 +#: js/block.js:2440 +#: js/block.js:2556 +#: js/blocks/RhythmBlocks.js:712 +#: js/blocks/ProgramBlocks.js:1273 +#: js/widgets/rhythmruler.js:1183 +#: js/widgets/rhythmruler.js:1329 #.TRANS: silencio msgid "silence" msgstr "kirirĩ" -#: js/block.js:2265 -#: js/block.js:3134 -#: js/block.js:3151 -#: js/activity.js:2336 -#: js/activity.js:2387 -#: js/musicutils.js:2932 -#: js/musicutils.js:4287 +#: js/block-verbose.js:2548 +#: js/block-verbose.js:3492 +#: js/block-verbose.js:3509 +#: js/activity.js:2718 +#: js/activity.js:2769 +#: js/block.js:2476 +#: js/block.js:3416 +#: js/block.js:3433 +#: js/utils/musicutils.js:3780 +#: js/utils/musicutils.js:5273 +#.TRANS: the note names must be separated by single spaces #.TRANS: the note names must be separated by single spaces #.TRANS: the note names must be separated by single spaces #.TRANS: si la sol fa mi re do msgid "ti la sol fa mi re do" msgstr "si la sol fa mi re do" -#: js/block.js:2333 +#: js/block-verbose.js:2616 +#: js/block.js:2544 +#.TRANS: scalar step #.TRANS: scalar step #.TRANS: abajo msgid "down" msgstr "" -#: js/block.js:2334 +#: js/block-verbose.js:2617 +#: js/block.js:2545 #.TRANS: arriba msgid "up" msgstr "" -#: js/block.js:3477 -#: js/block.js:3490 -#: js/ExtrasBlocks.js:612 +#: js/block-verbose.js:3026 +#: js/block.js:2950 +#.TRANS: El bloqueo de silencio no se puede eliminar. +msgid "Silence block cannot be removed." +msgstr "" + +#: js/block-verbose.js:3824 +#: js/block.js:3748 +#: js/blocks.js:2607 +#: js/blocks.js:3218 +#: js/palette.js:618 +#: js/blocks/BooleanBlocks.js:77 +#: js/blocks/BooleanBlocks.js:167 +#: js/blocks/BooleanBlocks.js:251 +#: js/blocks/BooleanBlocks.js:335 +#: js/blocks/BooleanBlocks.js:433 +#: js/blocks/BooleanBlocks.js:539 +#: js/blocks/BooleanBlocks.js:640 +#: js/blocks/BooleanBlocks.js:741 +#: js/blocks/BooleanBlocks.js:847 +#: js/blocks/BooleanBlocks.js:948 +#: js/blocks/BooleanBlocks.js:1033 +#: js/blocks/SensorsBlocks.js:910 +#.TRANS: verdadero +msgid "true" +msgstr "añetete" + +#: js/block-verbose.js:3824 +#: js/block.js:3748 +#: js/blocks.js:2609 +#: js/blocks.js:3220 +#: js/blocks/BooleanBlocks.js:79 +#: js/blocks/BooleanBlocks.js:169 +#: js/blocks/BooleanBlocks.js:253 +#: js/blocks/BooleanBlocks.js:337 +#: js/blocks/BooleanBlocks.js:435 +#: js/blocks/BooleanBlocks.js:541 +#: js/blocks/BooleanBlocks.js:642 +#: js/blocks/BooleanBlocks.js:743 +#: js/blocks/BooleanBlocks.js:849 +#: js/blocks/BooleanBlocks.js:950 +#: js/blocks/SensorsBlocks.js:912 +#.TRANS: falso +msgid "false" +msgstr "japu" + +#: js/block-verbose.js:3835 +#: js/block-verbose.js:3848 +#: js/block.js:3759 +#: js/block.js:3772 +#: js/blocks/ExtrasBlocks.js:615 #.TRANS: Cartesiano msgid "Cartesian" msgstr "Cartesiano" -#: js/block.js:3478 -#: js/block.js:3491 -#: js/ExtrasBlocks.js:616 +#: js/block-verbose.js:3836 +#: js/block-verbose.js:3849 +#: js/block.js:3760 +#: js/block.js:3773 +#: js/blocks/ExtrasBlocks.js:619 #.TRANS: polar msgid "polar" msgstr "" -#: js/block.js:3479 -#: js/block.js:3492 -#: js/ExtrasBlocks.js:620 +#: js/block-verbose.js:3837 +#: js/block-verbose.js:3850 +#: js/block.js:3761 +#: js/block.js:3774 +#: js/blocks/ExtrasBlocks.js:623 #.TRANS: Cartesiano+polar msgid "Cartesian+polar" msgstr "" -#: js/block.js:3480 -#: js/block.js:3499 -#: js/ExtrasBlocks.js:649 +#: js/block-verbose.js:3838 +#: js/block-verbose.js:3857 +#: js/block.js:3762 +#: js/block.js:3781 +#: js/blocks/ExtrasBlocks.js:652 #.TRANS: ninguno msgid "none" msgstr "" -#: js/block.js:3493 -#: js/ExtrasBlocks.js:625 +#: js/block-verbose.js:3851 +#: js/block.js:3775 +#: js/blocks/ExtrasBlocks.js:628 #.TRANS: agudos msgid "treble" msgstr "" -#: js/block.js:3494 -#: js/ExtrasBlocks.js:629 +#: js/block-verbose.js:3852 +#: js/block.js:3776 +#: js/blocks/ExtrasBlocks.js:632 #.TRANS: staff grande msgid "grand staff" msgstr "" -#: js/block.js:3495 -#: js/ExtrasBlocks.js:633 +#: js/block-verbose.js:3853 +#: js/block.js:3777 +#: js/blocks/ExtrasBlocks.js:636 #.TRANS: mezzo-soprano msgid "mezzo-soprano" msgstr "" -#: js/block.js:3496 -#: js/ExtrasBlocks.js:637 +#: js/block-verbose.js:3854 +#: js/block.js:3778 +#: js/blocks/ExtrasBlocks.js:640 #.TRANS: alto msgid "alto" msgstr "" -#: js/block.js:3497 -#: js/ExtrasBlocks.js:641 +#: js/block-verbose.js:3855 +#: js/block.js:3779 +#: js/blocks/ExtrasBlocks.js:644 #.TRANS: tenor msgid "tenor" msgstr "" -#: js/block.js:3498 -#: js/ExtrasBlocks.js:645 -#: js/musicutils.js:736 -#: js/synthutils.js:64 +#: js/block-verbose.js:3856 +#: js/block.js:3780 +#: js/utils/musicutils.js:1115 +#: js/utils/synthutils.js:80 +#: js/blocks/ExtrasBlocks.js:648 #.TRANS: musical instrument #.TRANS: bass msgid "bass" msgstr "" -#: js/block.js:4075 +#: js/block-verbose.js:3901 +#: js/block.js:3825 +#: js/blocks.js:2600 +#: js/blocks.js:3211 +#.TRANS: encendido +msgid "on2" +msgstr "" + +#: js/block-verbose.js:3903 +#: js/block.js:3827 +#: js/blocks.js:2602 +#: js/blocks.js:3213 +#.TRANS: apagado +msgid "off" +msgstr "" + +#: js/block-verbose.js:4470 +#: js/block.js:4394 #.TRANS: no es un número msgid "Not a number" msgstr "" -#: js/block.js:4082 +#: js/block-verbose.js:4477 +#: js/block.js:4401 +#.TRANS: El bloqueo de silencio no se puede eliminar. msgid "Octave value must be between 1 and 10." msgstr "" -#: js/block.js:4090 -msgid "Numbers can have at most 10 digits." +#: js/block-verbose.js:4485 +#: js/block.js:4409 +#.TRANS: El bloqueo de silencio no se puede eliminar. +msgid "Numbers can have at most 10 digits." +msgstr "" + +#: js/activity.js:390 +#: js/activity.js:395 +#.TRANS: Buscar bloques +msgid "Search for blocks" +msgstr "" + +#: js/activity.js:1413 +#.TRANS: Actualice su navegador para cambiar al modo avanzado. +msgid "Refresh your browser to change to advanced mode." msgstr "" -#: js/notation.js:353 -#.TRANS: Lilypond no puede procesar pickup de -msgid "Lilypond cannot process pickup of " +#: js/activity.js:1418 +#.TRANS: Actualice su navegador para cambiar al modo principiante. +msgid "Refresh your browser to change to beginner mode." msgstr "" -#: js/turtledefs.js:40 -#.TRANS: put the URL to the guide here, e.g., https://github.com/sugarlabs/turtleblocksjs/tree/master/guide/README.md -#.TRANS: https://github.com/sugarlabs/musicblocks/tree/master/guide-es/README.md -msgid "guide url" +#: js/activity.js:1477 +#.TRANS: atrapar ratones +msgid "Catching mice" msgstr "" -#: js/turtledefs.js:85 -#: js/turtledefs.js:437 -#.TRANS: Turtle Blocks es una tortuga basada en Logo que dibuja imágenes coloridas programable de una forma visual con bloques encastrables. -msgid "Turtle Blocks is a Logo-inspired turtle that draws colorful pictures with snap-together visual-programming blocks." +#: js/activity.js:1478 +#.TRANS: limpiar los instrumentos +msgid "Cleaning the instruments" msgstr "" -#: js/turtledefs.js:118 -#: js/turtledefs.js:220 -#.TRANS: buscar -msgid "search" +#: js/activity.js:1479 +#.TRANS: probando piezas clave +msgid "Testing key pieces" msgstr "" -#: js/turtledefs.js:120 -#: js/turtledefs.js:222 -#: js/WidgetBlocks.js:437 -#: js/MeterBlocks.js:1343 -#.TRANS: musical meter (time signature), e.g., 4:4 -#.TRANS: metro -msgid "meter" -msgstr "ta’ãha" +#: js/activity.js:1480 +#.TRANS: lectura a primera vista +msgid "Sight-reading" +msgstr "" -#: js/turtledefs.js:122 -#: js/turtledefs.js:224 -#.TRANS: intervalos -msgid "intervals" -msgstr "intervalos" +#: js/activity.js:1481 +#.TRANS: combinando matemáticas y música +msgid "Combining math and music" +msgstr "" -#: js/turtledefs.js:124 -#: js/turtledefs.js:226 -#.TRANS: ornamento -msgid "ornament" +#: js/activity.js:1482 +#.TRANS: generando más bloques +msgid "Generating more blocks" msgstr "" -#: js/turtledefs.js:125 -#: js/turtledefs.js:227 -#: js/VolumeBlocks.js:362 -#: js/VolumeBlocks.js:502 -#: js/VolumeBlocks.js:545 -#.TRANS: volumen -msgid "volume" +#: js/activity.js:1483 +#.TRANS: Do Re Mi Fa Sol La Si Do +msgid "Do Re Mi Fa Sol La Ti Do" msgstr "" -#: js/turtledefs.js:129 -#: js/turtledefs.js:231 -#.TRANS: cajas -msgid "boxes" -msgstr "mba’eryru" +#: js/activity.js:1484 +#.TRANS: afinar instrumentos de cuerda +msgid "Tuning string instruments" +msgstr "" -#: js/turtledefs.js:130 -#: js/turtledefs.js:232 -#.TRANS: aparatos -msgid "widgets" -msgstr "mba’e" +#: js/activity.js:1485 +#.TRANS: presionando teclas aleatorias +msgid "Pressing random keys" +msgstr "" -#: js/turtledefs.js:131 -#: js/turtledefs.js:233 -#: js/phrasemaker.js:824 -#.TRANS: gráficos -msgid "graphics" +#: js/activity.js:1663 +#.TRANS: los plugins se eliminarán al reiniciar. +msgid "plugins will be removed upon restart." msgstr "" -#: js/turtledefs.js:134 -#: js/turtledefs.js:236 -#.TRANS: booleano -msgid "boolean" -msgstr "boleano" +#: js/activity.js:1672 +#.TRANS: Mostrar Cartesiano +msgid "show Cartesian" +msgstr "" -#: js/turtledefs.js:137 -#: js/turtledefs.js:239 -#: js/HeapBlocks.js:59 -#: js/status.js:147 -#.TRANS: pila -msgid "heap" -msgstr "chovi" +#: js/activity.js:2211 +#: js/palette.js:589 +#: js/blocks/RhythmBlocks.js:923 +#: js/blocks/PitchBlocks.js:442 +#: js/blocks/PitchBlocks.js:1786 +#.TRANS: a numeric mapping of the notes in an octave based on the musical mode +#.TRANS: grado de escala +msgid "scale degree" +msgstr "ojupijupi" -#: js/turtledefs.js:138 -#: js/turtledefs.js:240 -#: js/ProgramBlocks.js:495 -#: js/DictBlocks.js:142 -#.TRANS: diccionario -msgid "dictionary" +#: js/activity.js:2214 +#: js/palette.js:598 +#.TRANS: nombre de voz +msgid "voice name" msgstr "" -#: js/turtledefs.js:139 -#: js/turtledefs.js:241 -#.TRANS: conjunto -msgid "ensemble" +#: js/activity.js:2217 +#: js/palette.js:595 +#.TRANS: modo invertido +msgid "invert mode" msgstr "" -#: js/turtledefs.js:140 -#: js/turtledefs.js:242 -#.TRANS: extras -msgid "extras" -msgstr "ijykepegua" - -#: js/turtledefs.js:142 -#: js/turtledefs.js:244 -#.TRANS: program as in computer program -#.TRANS: program as in computer program -#.TRANS: programa -msgid "program" +#: js/activity.js:2220 +#.TRANS: herramientas de producción +msgid "output tools" msgstr "" -#: js/turtledefs.js:143 -#: js/turtledefs.js:245 -#.TRANS: mis bloques -msgid "my blocks" +#: js/activity.js:2223 +#.TRANS: nota personalizada +msgid "custom note" msgstr "" -#: js/turtledefs.js:185 -#: js/turtledefs.js:281 -#.TRANS: arte -msgid "artwork" +#: js/activity.js:2226 +#.TRANS: nombre accidental +msgid "accidental name" msgstr "" -#: js/turtledefs.js:185 -#: js/turtledefs.js:281 -#.TRANS: lógica -msgid "logic" +#: js/activity.js:2229 +#: js/blocks/PitchBlocks.js:855 +#.TRANS: +msgid "east indian solfege" msgstr "" -#: js/turtledefs.js:185 -#: js/turtledefs.js:281 -#.TRANS: música -msgid "music" +#: js/activity.js:2232 +#: js/blocks/PitchBlocks.js:869 +#.TRANS: nombre de la nota +msgid "note name" msgstr "" -#: js/turtledefs.js:187 -#: js/turtledefs.js:463 -#.TRANS: Bloques de Música es una colección de herramientas de manipulación para explorar conceptos musicales fundamentales de una manera integradora y divertido. -msgid "Music Blocks is a collection of tools for exploring fundamental musical concepts in a fun way." -msgstr " Bloques de Música es una colección de herramientas de manipulación para explorar conceptos musicales fundamentales de una manera integradora y divertido." - -#: js/turtledefs.js:436 -#.TRANS: Bienvenidos a TortuBloques -msgid "Welcome to Turtle Blocks" +#: js/activity.js:2235 +#: js/blocks/IntervalsBlocks.js:94 +#.TRANS: nombre de temperamento +msgid "temperament name" msgstr "" -#: js/turtledefs.js:438 -#: js/turtledefs.js:465 -#: js/turtledefs.js:774 -#: js/turtledefs.js:805 -#.TRANS: La versión actual es -msgid "The current version is" +#: js/activity.js:2238 +#: js/palette.js:592 +#.TRANS: nombre de modo +msgid "mode name" msgstr "" -#: js/turtledefs.js:446 -#: js/turtledefs.js:483 -#.TRANS: Haga clic para ejecutar el proyecto en modo rápido. -msgid "Click the run button to run the project in fast mode." +#: js/activity.js:2241 +#.TRANS: nombre de achorde +msgid "chord name" msgstr "" -#: js/turtledefs.js:452 -#.TRANS: Detener la tortuga. -msgid "Stop the turtle." +#: js/activity.js:2244 +#: js/palette.js:615 +#.TRANS: nombre de intervalo +msgid "interval name" msgstr "" -#: js/turtledefs.js:454 -#: js/turtledefs.js:491 -#.TRANS: También puede escribir Alt-S para detenerse. -msgid "You can also type Alt-S to stop." +#: js/activity.js:2247 +#.TRANS: tipo de filtro +msgid "filter type" msgstr "" -#: js/turtledefs.js:462 -#: js/help.js:333 -#.TRANS: Bienvenido a Bloques de Música -msgid "Welcome to Music Blocks" -msgstr "Tereg̃uaheporãite Vore puporãpe" +#: js/activity.js:2250 +#.TRANS: tipo de oscilador +msgid "oscillator type" +msgstr "" -#: js/turtledefs.js:472 -#: js/help.js:334 -#.TRANS: Conoce Sr. Ratón -msgid "Meet Mr. Mouse!" -msgstr "Eikuaa karai angujape" +#: js/activity.js:2253 +#: js/blocks.js:2479 +#: js/blocks.js:2487 +#.TRANS: archivo de audio +msgid "audio file" +msgstr "" -#: js/turtledefs.js:473 -#.TRANS: Sr. Ratón es nuestro conductor de Bloques de Música. -msgid "Mr Mouse is our Music Blocks conductor." -msgstr "Karai anguja ha’e ñande sambyhyha Vore puporãpe" +#: js/activity.js:2256 +#: js/blocks/DrumBlocks.js:32 +#.TRANS: nombre de ruido +msgid "noise name" +msgstr "" -#: js/turtledefs.js:475 -#.TRANS: Sr. Ratón le anima a explorar los Bloques de Música. -msgid "Mr Mouse encourages you to explore Music Blocks." -msgstr " Karai anguja omoingove jepovyvy Vore puporã" +#: js/activity.js:2259 +#: js/blocks/DrumBlocks.js:75 +#.TRANS: nombre del tambor +msgid "drum name" +msgstr "" -#: js/turtledefs.js:477 -#.TRANS: Vamos a empezar nuestro recorrido! -msgid "Let us start our tour!" -msgstr "Ñañepyrũ ñande rape" +#: js/activity.js:2262 +#: js/blocks/DrumBlocks.js:119 +#.TRANS: nombre de efectos +msgid "effects name" +msgstr "" -#: js/turtledefs.js:489 -#.TRANS: Detener la música (y los ratones) -msgid "Stop the music (and the mice)." +#: js/activity.js:2265 +#.TRANS: modo de envoltura +msgid "wrap mode" msgstr "" -#: js/turtledefs.js:499 -#.TRANS: Grabe su proyecto como video. -msgid "Record your project as video." +#: js/activity.js:2268 +#.TRANS: cargar archivo +msgid "load file" msgstr "" -#: js/turtledefs.js:505 -#.TRANS: Alternar el modo de pantalla completa -msgid "Toggle Fullscreen mode." +#: js/activity.js:2435 +#: js/activity.js:5851 +#.TRANS: Este bloque está en desuso. +msgid "This block is deprecated." msgstr "" -#: js/turtledefs.js:511 -#.TRANS: Inicializar un nuevo proyecto. -msgid "Initialize a new project." +#: js/activity.js:2437 +#: js/activity.js:5853 +#.TRANS: Este bloque no se puede encontrar. +msgid "Block cannot be found." msgstr "" -#: js/turtledefs.js:517 -#.TRANS: También puede cargar proyectos desde el sistema de archivos. -msgid "You can also load projects from the file system." -msgstr "Ikatu avei ehupi jejaposéva ñongatuha rire" +#: js/activity.js:2645 +#.TRANS: Guardar ilustraciones de bloques +msgid "Saving block artwork" +msgstr "" -#: js/turtledefs.js:522 -#: js/StringHelper.js:46 +#: js/activity.js:2656 #.TRANS: Borrar -msgid "Delete" -msgstr "mbogue" +msgid "Erase" +msgstr "" + +#: js/activity.js:2683 +#: js/activity.js:2705 +#.TRANS: Pegar +msgid "Paste" +msgstr "Mboja" -#: js/turtledefs.js:523 -msgid "To delete a block, just right-click on it, then you will be able to see the delete option" +#: js/activity.js:2687 +#.TRANS: Guardar ayuda de bloque +msgid "Save block help" msgstr "" -#: js/turtledefs.js:528 -#: js/activity.js:2270 -#: js/LocalCard.js:31 -#.TRANS: Copiar -msgid "Copy" -msgstr "Mbohesegua" +#: js/activity.js:2772 +#.TRANS: Saltando al final de la página +msgid "Jumping to the bottom of the page." +msgstr "" -#: js/turtledefs.js:529 -msgid "To copy a block, just right-click on it, then you will be able to see the copy option" +#: js/activity.js:2778 +#.TRANS: Desplazarse hacia arriba +msgid "Scrolling up." msgstr "" -#: js/turtledefs.js:535 -msgid "To extract a block, just right-click on it, then you will be able to see the extract option" +#: js/activity.js:2783 +#.TRANS: Desplazarse hacia abajo +msgid "Scrolling down." msgstr "" -#: js/turtledefs.js:542 -#: js/turtledefs.js:552 -#: js/turtledefs.js:573 -#.TRANS: Guarde proyecto en archivo -msgid "Save your project to a file." -msgstr "Eñongatu jejaposéva ñongatuhápe" +#: js/activity.js:2788 +#.TRANS: Bloque de extracción +msgid "Extracting block" +msgstr "" -#: js/turtledefs.js:549 -#: js/turtledefs.js:570 -#.TRANS: guardar -msgid "save" -msgstr "ñongatu" +#: js/activity.js:2796 +#.TRANS: Mover bloque hacia arriba +msgid "Moving block up." +msgstr "" -#: js/turtledefs.js:556 -#: js/turtledefs.js:577 -#.TRANS: Guardar gráficos de su proyecto como SVG -msgid "Save graphics from your project to as SVG." +#: js/activity.js:2817 +#.TRANS: Mover bloque hacia abajo +msgid "Moving block down." msgstr "" -#: js/turtledefs.js:560 -#: js/turtledefs.js:581 -#.TRANS: Guardar gráficos de su proyecto como PNG -msgid "Save graphics from your project as PNG." +#: js/activity.js:2838 +#.TRANS: Mover bloque a la izquierda +msgid "Moving block left." msgstr "" -#: js/turtledefs.js:564 -#: js/turtledefs.js:597 -#.TRANS: Guardar bloque de ilustraciones como un archivo de SVG -msgid "Save block artwork as an SVG file." +#: js/activity.js:2855 +#.TRANS: Mover bloque a la derecha +msgid "Moving block right." msgstr "" -#: js/turtledefs.js:585 -#.TRANS: Guarda audio de tu proyecto como WAV. -msgid "Save audio from your project as WAV." +#: js/activity.js:2870 +#.TRANS: Saltar a la posición inicial +msgid "Jump to home position." msgstr "" -#: js/turtledefs.js:589 -#.TRANS: Guarda tu proyecto como un archivo ABC. -msgid "Save your project to as an ABC file." +#: js/activity.js:2897 +#.TRANS: Ocultar bloques +msgid "Hide blocks" msgstr "" -#: js/turtledefs.js:593 -#.TRANS: Guarde el proyecto como un archivo de LilyPond. -msgid "Save your project to as a Lilypond file." -msgstr "Eñongatu jejaposéva ñongatuhápe LilyPond pe" +#: js/activity.js:4500 +#.TRANS: Haga clic en el botón ejecutar para ejecutar el proyecto. +msgid "Click the run button to run the project." +msgstr "" -#: js/turtledefs.js:604 -#.TRANS: Cargar ejemplos desde el servidor -msgid "Load samples from server" -msgstr "Ehupi techapyrãkuéra" +#: js/activity.js:5692 +#.TRANS: Mostrar/ocultar bloques +msgid "Show/hide block" +msgstr "" -#: js/turtledefs.js:605 -#.TRANS: Este botón abre la pantalla de carga de proyectos de ejemplo. -msgid "This button opens a viewer for loading example projects." -msgstr "Ko votõ oipe’a tendahesaperã jejaposéva techapyrã" +#: js/activity.js:5698 +#.TRANS: Expandir / Contraer bloques +msgid "Expand/collapse blocks" +msgstr "" -#: js/turtledefs.js:611 -#.TRANS: Botones de paleta -msgid "Palette buttons" -msgstr "Yvyra pe votõkuera" +#: js/activity.js:5976 +#.TRANS: No se pudo analizar la entrada de JSON. +msgid "Could not parse JSON input." +msgstr "" -#: js/turtledefs.js:612 -#.TRANS: Esta barra de herramientas contiene los botones de la paleta de Ritmo, Tono, Tortuga, y más. -msgid "This toolbar contains the palette buttons including Rhythm Pitch Tone Action and more." +#: js/activity.js:6475 +#: js/activity.js:6580 +#: js/activity.js:6631 +#.TRANS: No se puede cargar el proyecto desde el archivo. Compruebe el tipo de archivo. +msgid "Cannot load project from the file. Please check the file type." msgstr "" -#: js/turtledefs.js:614 -#.TRANS: Haga clic para mostrar las paletas de bloques y bloques de arrastre de las gamas de colores en el lienzo para usarlos. -msgid "Click to show the palettes of blocks and drag blocks from the palettes onto the canvas to use them." -msgstr "Eyopy clic oichuka haguã Yvyra pe vorekuera ha avei mbotyryryha vorekuera aorã sa’y eipuruhaguã" +#: js/activity.js:6917 +#.TRANS: El parametro es invalido. +msgid "Invalid parameters" +msgstr "" -#: js/turtledefs.js:620 -#.TRANS: Cartesiano/Polar -msgid "Cartesian/Polar" +#: js/blocks.js:1212 +#: js/blocks.js:3444 +#: js/blocks.js:3834 +#: js/blocks.js:3865 +#: js/blocks.js:3914 +#: js/blocks.js:3949 +#: js/blocks.js:6586 +#: js/palette.js:509 +#: js/palette.js:638 +#: js/palette.js:1105 +#: js/blocks/BoxesBlocks.js:282 +#: js/blocks/BoxesBlocks.js:285 +#: js/blocks/BoxesBlocks.js:405 +#: js/blocks/BoxesBlocks.js:594 +#.TRANS: caja +msgid "box" +msgstr "mba’eryru" + +#: js/blocks.js:1713 +#.TRANS: Considera dividir esta pila en partes. +msgid "Consider breaking this stack into parts." msgstr "" -#: js/turtledefs.js:621 -#.TRANS: Mostrar u ocultar las rejillas de coordenadas. -msgid "Show or hide a coordinate grid." +#: js/blocks.js:2472 +#: js/palette.js:653 +#: js/blocks/MediaBlocks.js:602 +#.TRANS: abrir archivo +msgid "open file" +msgstr "eipe’a ñongatuha" + +#: js/blocks.js:3247 +#: js/palette.js:574 +#: js/blocks/MediaBlocks.js:892 +#: js/blocks/MediaBlocks.js:963 +#.TRANS: texto +msgid "text" +msgstr "haipyre" + +#: js/blocks.js:3443 +#: js/palette.js:641 +#: js/palette.js:642 +#: js/blocks/BoxesBlocks.js:514 +#.TRANS: guardar en caja +msgid "store in box" msgstr "" -#: js/turtledefs.js:627 -#.TRANS: Borre la pantalla y devuelva los ratones a sus posiciones iniciales. -msgid "Clear the screen and return the mice to their initial positions." +#: js/blocks.js:3448 +#: js/blocks.js:3888 +#: js/blocks.js:3923 +#: js/blocks.js:3958 +#: js/blocks.js:5862 +#: js/blocks.js:5883 +#: js/blocks/BoxesBlocks.js:772 +#.TRANS: caja1 +msgid "box1" msgstr "" -#: js/turtledefs.js:633 -#.TRANS: Contraer la ventana de gráficos. -msgid "Collapse the graphics window." +#: js/blocks.js:3450 +#: js/blocks.js:3890 +#: js/blocks.js:3925 +#: js/blocks.js:3960 +#: js/blocks.js:5864 +#: js/blocks.js:5885 +#: js/blocks/BoxesBlocks.js:663 +#.TRANS: caja2 +msgid "box2" msgstr "" -#: js/turtledefs.js:638 -#: js/activity.js:4256 -#: js/activity.js:4256 -#.TRANS: Casa -msgid "Home" -msgstr "Óga" +#: js/blocks.js:4122 +#: js/palette.js:639 +#: js/palette.js:644 +#: js/palette.js:1041 +#: js/blocks/BoxesBlocks.js:591 +#.TRANS: guardar en +msgid "store in" +msgstr "eñongatu... pe" -#: js/turtledefs.js:639 -#.TRANS: Devolver todos los bloques para el centro de la pantalla. -msgid "Return all blocks to the center of the screen." -msgstr "Emyengovia vorekuéra tendahesaperã mbytépe" +#: js/blocks.js:4122 +#: js/blocks/BoxesBlocks.js:595 +#: js/blocks/DictBlocks.js:215 +#: js/blocks/DictBlocks.js:289 +#: js/blocks/EnsembleBlocks.js:391 +#: js/blocks/EnsembleBlocks.js:402 +#: js/blocks/MediaBlocks.js:746 +#: js/blocks/PitchBlocks.js:656 +#: js/blocks/PitchBlocks.js:934 +#: js/blocks/PitchBlocks.js:1866 +#: js/blocks/ProgramBlocks.js:390 +#: js/blocks/ProgramBlocks.js:495 +#: js/blocks/ProgramBlocks.js:658 +#: js/blocks/ToneBlocks.js:1025 +#.TRANS: nombre +msgid "name" +msgstr "Téra" -#: js/turtledefs.js:644 -#.TRANS: Mostrar u ocultar los bloques. -msgid "Show/hide blocks" -msgstr "Ehechauka tér ã emokañy vorekuéra" +#: js/blocks.js:4122 +#: js/blocks/BoxesBlocks.js:75 +#: js/blocks/BoxesBlocks.js:595 +#: js/blocks/DictBlocks.js:289 +#: js/blocks/DictBlocks.js:430 +#: js/blocks/HeapBlocks.js:544 +#: js/blocks/RhythmBlocks.js:1130 +#.TRANS: valor +msgid "value" +msgstr "tepy" -#: js/turtledefs.js:645 -#.TRANS: Ocultar o mostrar los bloques y las paletas. -msgid "Hide or show the blocks and the palettes." -msgstr "Emongañy tera eichuka Yvyra pe ha vorekuera" +#: js/blocks.js:4465 +#.TRANS: Se detectó un bucle indefinido dentro de un bloque de valor de nota. Pueden ocurrir cosas inesperadas. +msgid "Forever loop detected inside a note value block. Unexpected things may happen." +msgstr "" -#: js/turtledefs.js:650 -#.TRANS: Expandir/contraer los bloques -msgid "Expand/collapse collapsable blocks" +#: js/blocks.js:4988 +#.TRANS: No hay bloque seleccionado. +msgid "There is no block selected." msgstr "" -#: js/turtledefs.js:651 -#.TRANS: Expandir o colapsar los bloques colapsables, cómo por ejemplo los bloques de empezar y los de acción. -msgid "Expand or collapse start and action stacks." -msgstr "Eipyso terã emboty vorekuéra oñembotykuaava" +#: js/blocks.js:5091 +#: js/blocks/MediaBlocks.js:888 +#.TRANS: mostrar +msgid "show" +msgstr "hechauka" -#: js/turtledefs.js:658 -#: js/activity.js:4265 -#.TRANS: Disminuir el tamaño de los bloques -msgid "Decrease block size" -msgstr "Emomichĩ jakatuha vorekuéra" +#: js/blocks.js:5094 +#: js/blocks/MediaBlocks.js:803 +#.TRANS: Avatar is the image used to determine the appearance of the mouse. +#.TRANS: avatar +msgid "avatar" +msgstr "" -#: js/turtledefs.js:659 -#.TRANS: Disminuye el tamaño de los bloques -msgid "Decrease the size of the blocks." -msgstr "Omomichĩ jakatuha vorekuéra" +#: js/blocks.js:5097 +#: js/blocks/ToneBlocks.js:1010 +#: js/widgets/sampler.js:975 +#.TRANS: The sound sample that the user uploads. +#.TRANS: muestra de audio +msgid "sample" +msgstr "" -#: js/turtledefs.js:664 -#: js/activity.js:4267 -#.TRANS: Incrementar tamaño de bloques -msgid "Increase block size" -msgstr "Embotuicha jakatuha vorekuéra" +#: js/lilypond.js:606 +#.TRANS: rata marrón +msgid "brown rat" +msgstr "anguja marrón" -#: js/turtledefs.js:665 -#.TRANS: Incrementa el tamaño de los bloques. -msgid "Increase the size of the blocks." -msgstr "Ombotuicha jakatuha vorekuéra" +#: js/lilypond.js:607 +#.TRANS: topo +msgid "mole" +msgstr "topo" -#: js/turtledefs.js:670 -#.TRANS: Expandir/colapsar la barra de opciones. -msgid "Expand/collapse option toolbar" -msgstr " Eipyso/emboty yvyra pe poravokuaaha" +#: js/lilypond.js:608 +#.TRANS: ardilla +msgid "chipmunk" +msgstr "ardilla" -#: js/turtledefs.js:671 -#.TRANS: Haga clic en este botón para expandir o contraer la barra de herramientas auxiliar. -msgid "Click this button to expand or collapse the auxillary toolbar." -msgstr "Ejopy clic votõ Eipyso/emboty haguã yvyra pe tembipuru ryru" +#: js/lilypond.js:609 +#.TRANS: ardilla roja +msgid "red squirrel" +msgstr "ardilla roja" -#: js/turtledefs.js:676 -#.TRANS: Ejecutar lentamente -msgid "Run slow" -msgstr "Ejapo mbegueve" +#: js/lilypond.js:610 +#.TRANS: conejillo de indias +msgid "guinea pig" +msgstr "tapiti india gua" -#: js/turtledefs.js:677 -#.TRANS: Haz click para ejecutar el proyecto en modo lento. -msgid "Click to run the project in slow mode." -msgstr "Eyopy clic ejapo haguã jejaposéva mbegueve " +#: js/lilypond.js:611 +#.TRANS: capybara +msgid "capybara" +msgstr "carpincho" -#: js/turtledefs.js:683 -#.TRANS: Haz click para ejecutar el proyecto en modo paso a paso. -msgid "Click to run the project step by step." -msgstr "Eyopy clic ejapo haguã jejaposéva michĩmimi" +#: js/lilypond.js:612 +#.TRANS: coypu +msgid "coypu" +msgstr "coipu" -#: js/turtledefs.js:690 -#.TRANS: Analizar los tipos de bloques usados. -msgid "Display statistics about your Music project." -msgstr "Ma’e pypuku vorekuéra ojeipurúva" +#: js/lilypond.js:613 +#.TRANS: rata negra +msgid "black rat" +msgstr "anguja hũ" -#: js/turtledefs.js:697 -#.TRANS: Eliminar un plugin seleccionado. -msgid "Delete a selected plugin." -msgstr "" +#: js/lilypond.js:614 +#.TRANS: ardilla gris +msgid "grey squirrel" +msgstr "ardilla gris" -#: js/turtledefs.js:704 -#.TRANS: Activar scroll -msgid "Enable scrolling" -msgstr "Emoingo scroll" +#: js/lilypond.js:615 +#.TRANS: ardilla voladora +msgid "flying squirrel" +msgstr "ardilla voladora" -#: js/turtledefs.js:705 -#.TRANS: Puedes mover los bloques por el área de trabajo -msgid "You can scroll the blocks on the canvas." -msgstr "Ikatu emomyi vorekuéra mba’apoha rupi" +#: js/lilypond.js:616 +#.TRANS: murciélago +msgid "bat" +msgstr "mbopi" -#: js/turtledefs.js:714 -#.TRANS: Envolver tortuga -msgid "Wrap Turtle" -msgstr "" +#: js/lilypond.js:749 +#: js/lilypond.js:913 +#: js/lilypond.js:951 +#: js/blocks/ActionBlocks.js:1256 +#: js/blocks/ExtrasBlocks.js:556 +#.TRANS: iniciar tambor +msgid "start drum" +msgstr "ñepỹru angu’atarara" -#: js/turtledefs.js:715 -#.TRANS: Encender / apagar la envoltura de tortugas -msgid "Turn Turtle wrapping On or Off." +#: js/logo.js:61 +#.TRANS: No es un nombre de tono válido. +msgid "Not a valid pitch name" msgstr "" -#: js/turtledefs.js:725 -#.TRANS: Restaurar bloques de la papelera. -msgid "Restore blocks from the trash." -msgstr "Eru jey vorekuéra kuatiaryrugi" +#: js/logo.js:507 +#: js/blocks/ProgramBlocks.js:258 +#: js/blocks/ProgramBlocks.js:427 +#.TRANS: Debe seleccionar un archivo. +msgid "You must select a file." +msgstr "Eiporavo vaera peteĩ ñongatupyre" -#: js/turtledefs.js:732 -#.TRANS: Cambiar el modo -msgid "Switch mode" +#: js/logo.js:1696 +#.TRANS: La reproducción está preparada. +msgid "Playback is ready." msgstr "" -#: js/turtledefs.js:733 -#.TRANS: Cambia entre los modos principiante y avanzado. -msgid "Switch between beginner and advance modes." -msgstr "" +#: js/macros.js:711 +#: js/utils/musicutils.js:1162 +#: js/utils/synthutils.js:202 +#.TRANS: animal sound effect +#.TRANS: pato +msgid "duck" +msgstr "ype" -#: js/turtledefs.js:739 -#.TRANS: Seleccione su preferencia de idioma. -msgid "Select your language preference." +#: js/notation.js:353 +#.TRANS: Lilypond no puede procesar pickup de +msgid "Lilypond cannot process pickup of " msgstr "" -#: js/turtledefs.js:745 -#.TRANS: Atajos de teclado -msgid "Keyboard shortcuts" +#: js/palette.js:571 +#.TRANS: cuadrícula +msgid "grid" msgstr "" -#: js/turtledefs.js:746 -#.TRANS: Puede escribir \"d\" para crear un bloque \"do\", \"r\" para crear un bloque \"re\", etc. -msgid "You can type d to create a do block and r to create a re block etc." +#: js/palette.js:580 +#.TRANS: efecto +msgid "effect" msgstr "" -#: js/turtledefs.js:753 -#.TRANS: Mostrar estos mensajes. -msgid "Show these messages." -msgstr "Eichuka ñe’ẽmondo kuéra" - -#: js/turtledefs.js:759 -#: js/turtledefs.js:790 -#: js/help.js:335 -#.TRANS: Guía -msgid "Guide" +#: js/palette.js:586 +#.TRANS: +msgid "sargam" msgstr "" -#: js/turtledefs.js:760 -#.TRANS: Se encuentra disponible una guía detallada de TortuBloques. -msgid "A detailed guide to Turtle Blocks is available." +#: js/palette.js:601 +#: js/blocks/PitchBlocks.js:1209 +#.TRANS: personalizado tono +msgid "custom pitch" msgstr "" -#: js/turtledefs.js:764 -#.TRANS: Guía de TortuBloques -msgid "Turtle Blocks Guide" +#: js/palette.js:609 +#.TRANS: accidental +msgid "accidental" msgstr "" -#: js/turtledefs.js:767 -#: js/turtledefs.js:798 -#: js/help.js:336 -#.TRANS: Acerca -msgid "About" +#: js/palette.js:633 +#: js/blocks/PitchBlocks.js:405 +#.TRANS: convertidor de tono +msgid "pitch converter" msgstr "" -#: js/turtledefs.js:768 -#.TRANS: TortuBloques es una colección de herramientas de Software Libre para explorar conceptos musicales. -msgid "Turtle Blocks is an open source collection of tools for exploring musical concepts." +#: js/piemenus.js:200 +#: js/utils/musicutils.js:1187 +#: js/utils/musicutils.js:1207 +#: js/widgets/musickeyboard.js:2341 +#: js/widgets/phrasemaker.js:1908 +#: js/widgets/sampler.js:810 +#.TRANS: double sharp is a music term related to pitch +#.TRANS: doble agudas +msgid "double sharp" msgstr "" -#: js/turtledefs.js:770 -#.TRANS: Se puede encontrar una lista completa de colaboradores en el repositorio GitHub de TortuBloques. -msgid "A full list of contributors can be found in the Turtle Blocks GitHub repository." +#: js/piemenus.js:201 +#: js/utils/musicutils.js:1185 +#: js/utils/musicutils.js:1208 +#: js/blocks/PitchBlocks.js:1539 +#: js/turtleactions/PitchActions.js:323 +#: js/widgets/musickeyboard.js:2342 +#: js/widgets/phrasemaker.js:1909 +#: js/widgets/sampler.js:811 +#.TRANS: sharp is a music term related to pitch +#.TRANS: sharp is a half-step up in pitch +#.TRANS: agudas +msgid "sharp" +msgstr "Agudas" + +#: js/piemenus.js:202 +#: js/utils/musicutils.js:1183 +#: js/utils/musicutils.js:1209 +#: js/widgets/musickeyboard.js:2343 +#: js/widgets/phrasemaker.js:1910 +#: js/widgets/sampler.js:812 +#.TRANS: natural is a music term related to pitch +#.TRANS: normal +msgid "natural" msgstr "" -#: js/turtledefs.js:772 -#.TRANS: TortuBloques está licenciado bajo el AGPL. -msgid "Turtle Blocks is licensed under the AGPL." +#: js/piemenus.js:203 +#: js/utils/musicutils.js:1181 +#: js/utils/musicutils.js:1210 +#: js/blocks/PitchBlocks.js:1498 +#: js/turtleactions/PitchActions.js:326 +#: js/widgets/musickeyboard.js:2344 +#: js/widgets/phrasemaker.js:1911 +#: js/widgets/sampler.js:813 +#.TRANS: flat is a music term related to pitch +#.TRANS: flat is a half-step down in pitch +#.TRANS: planas +msgid "flat" +msgstr "Pe" + +#: js/piemenus.js:204 +#: js/utils/musicutils.js:1179 +#: js/utils/musicutils.js:1211 +#: js/widgets/musickeyboard.js:2345 +#: js/widgets/phrasemaker.js:1912 +#: js/widgets/sampler.js:814 +#.TRANS: double flat is a music term related to pitch +#.TRANS: doble planas +msgid "double flat" msgstr "" -#: js/turtledefs.js:780 -#.TRANS: El repositorio de GitHub de TortuBloques -msgid "Turtle Blocks GitHub repository" +#: js/piemenus.js:2864 +#: js/utils/musicutils.js:1006 +#: js/blocks/PitchBlocks.js:1385 +#.TRANS: unison is a music term related to intervals +#.TRANS: unison means the note is the same as the current note +#.TRANS: unísono +msgid "unison" msgstr "" -#: js/turtledefs.js:783 -#: js/turtledefs.js:814 -#: js/help.js:337 -#: js/help.js:359 -#.TRANS: Felicitaciones. -msgid "Congratulations." -msgstr "Vy’apave" +#: js/piemenus.js:3018 +#: js/piemenus.js:3091 +#: js/utils/musicutils.js:1014 +#: js/utils/musicutils.js:1189 +#: js/utils/musicutils.js:1326 +#.TRANS: major is a music term related to intervals and mode +#.TRANS: mayor +msgid "major" +msgstr "guasuve" -#: js/turtledefs.js:784 -#.TRANS: Ha terminado la gira. Por favor, disfrutar de TortuBloques -msgid "You have finished the tour. Please enjoy Turtle Blocks!" -msgstr "" +#: js/piemenus.js:3018 +#: js/piemenus.js:3091 +#: js/utils/musicutils.js:1032 +#.TRANS: modal scale for music +#.TRANS: ionian +msgid "ionian" +msgstr "jónico" -#: js/turtledefs.js:791 -#.TRANS: Una guía detallada de Bloques de Música está disponible. -msgid "A detailed guide to Music Blocks is available." -msgstr "" +#: js/piemenus.js:3020 +#: js/piemenus.js:3095 +#: js/utils/musicutils.js:1012 +#: js/utils/musicutils.js:1190 +#: js/utils/musicutils.js:1323 +#.TRANS: minor is a music term related to intervals and mode +#.TRANS: menor +msgid "minor" +msgstr "michĩve" -#: js/turtledefs.js:795 -#: js/SaveInterface.js:76 -#.TRANS: Guía de Bloques de Música -msgid "Music Blocks Guide" -msgstr "" +#: js/piemenus.js:3020 +#: js/piemenus.js:3095 +#: js/utils/musicutils.js:1042 +#.TRANS: modal scale for music +#.TRANS: aeolian +msgid "aeolian" +msgstr "eólico" -#: js/turtledefs.js:799 -#.TRANS: Bloques de Música es una colección de herramientas de Software Libre para explorar conceptos musicales. -msgid "Music Blocks is an open source collection of tools for exploring musical concepts." +#: js/piemenus.js:3410 +#.TRANS: Duplicar +msgid "Duplicate" msgstr "" -#: js/turtledefs.js:801 -#.TRANS: Se puede encontrar una lista completa de colaboradores en el repositorio GitHub de Bloques de Música. -msgid "A full list of contributors can be found in the Music Blocks GitHub repository." +#: js/piemenus.js:3412 +#.TRANS: Mover para recargar +msgid "Move to trash" msgstr "" -#: js/turtledefs.js:803 -#.TRANS: Bloques de Música está licenciado bajo el AGPL. -msgid "Music Blocks is licensed under the AGPL." -msgstr "" +#: js/piemenus.js:3413 +#: js/widgets/timbre.js:968 +#: planet/js/StringHelper.js:69 +#.TRANS: Cerrar +msgid "Close" +msgstr "Mboty" -#: js/turtledefs.js:811 -#.TRANS: El repositorio de GitHub de Bloques de Música -msgid "Music Blocks GitHub repository" -msgstr "" +#: js/piemenus.js:3419 +#.TRANS: Guardar pila +msgid "Save stack" +msgstr "Eñongatu aty" -#: js/turtledefs.js:815 -#.TRANS: Ha terminado la gira. Por favor, disfrutar de Bloques de Música! -msgid "You have finished the tour. Please enjoy Music Blocks!" -msgstr "Opa ojereva, ikatu eipuruvy’a vorekuéra pupoty" +#: js/piemenus.js:3449 +#.TRANS: Se detectó un bucle indefinido dentro de un bloque de valor de nota. Pueden ocurrir cosas inesperadas. +msgid "In order to copy a sample, you must reload the widget, import the sample again, and export it." +msgstr "" -#: js/activity.js:369 -#.TRANS: Buscar bloques -msgid "Search for blocks" +#: js/piemenus.js:3812 +#.TRANS: Ha elegido la tecla +msgid "You have chosen key " msgstr "" -#: js/activity.js:1145 -#.TRANS: Actualice su navegador para cambiar al modo avanzado. -msgid "Refresh your browser to change to advanced mode." +#: js/piemenus.js:3816 +#.TRANS: para la vista previa de su tono. +msgid " for your pitch preview." msgstr "" -#: js/activity.js:1150 -#.TRANS: Actualice su navegador para cambiar al modo principiante. -msgid "Refresh your browser to change to beginner mode." +#: js/turtle-singer.js:1363 +#.TRANS: partials are weighted components in a harmonic series +#.TRANS: Debe tener al menos un bloque parcial dentro de un bloque parcial ponderado. +msgid "You must have at least one Partial block inside of a Weighted-partial block" msgstr "" -#: js/activity.js:1184 -#.TRANS: atrapar ratones -msgid "Catching mice" +#: js/turtle-singer.js:2077 +#.TRANS: Synth no puede tocar acordes. +msgid "synth cannot play chords." +msgstr " Synth ndaikatui ambopu" + +#: js/utils/musicutils.js:505 +#: js/utils/musicutils.js:645 +#: js/widgets/pitchdrummatrix.js:228 +#: js/widgets/musickeyboard.js:2885 +#.TRANS: descanso +msgid "rest" +msgstr "pytu’u" + +#: js/utils/musicutils.js:689 +#.TRANS: Unísono perfecto +msgid "Perfect unison" msgstr "" -#: js/activity.js:1185 -#.TRANS: limpiar los instrumentos -msgid "Cleaning the instruments" +#: js/utils/musicutils.js:689 +#.TRANS: Segundo disminuido +msgid "Diminished second" msgstr "" -#: js/activity.js:1186 -#.TRANS: probando piezas clave -msgid "Testing key pieces" +#: js/utils/musicutils.js:690 +#.TRANS: Segundo menor +msgid "Minor second" msgstr "" -#: js/activity.js:1187 -#.TRANS: lectura a primera vista -msgid "Sight-reading" +#: js/utils/musicutils.js:690 +#.TRANS: Unísono aumentado +msgid "Augmented unison" msgstr "" -#: js/activity.js:1188 -#.TRANS: combinando matemáticas y música -msgid "Combining math and music" +#: js/utils/musicutils.js:691 +#.TRANS: Segundo mayor +msgid "Major second" msgstr "" -#: js/activity.js:1189 -#.TRANS: generando más bloques -msgid "Generating more blocks" +#: js/utils/musicutils.js:691 +#.TRANS: Tercio disminuido +msgid "Diminished third" msgstr "" -#: js/activity.js:1190 -#.TRANS: Do Re Mi Fa Sol La Si Do -msgid "Do Re Mi Fa Sol La Ti Do" +#: js/utils/musicutils.js:692 +#.TRANS: Tercio menor +msgid "Minor third" msgstr "" -#: js/activity.js:1191 -#.TRANS: afinar instrumentos de cuerda -msgid "Tuning string instruments" +#: js/utils/musicutils.js:692 +#.TRANS: Segundo aumentado +msgid "Augmented second" msgstr "" -#: js/activity.js:1192 -#.TRANS: presionando teclas aleatorias -msgid "Pressing random keys" +#: js/utils/musicutils.js:693 +#.TRANS: Tercio mayor +msgid "Major third" msgstr "" -#: js/activity.js:1351 -#.TRANS: los plugins se eliminarán al reiniciar. -msgid "plugins will be removed upon restart." +#: js/utils/musicutils.js:693 +#.TRANS: Cuarta disminuida +msgid "Diminished fourth" msgstr "" -#: js/activity.js:1360 -#.TRANS: Mostrar Cartesiano -msgid "show Cartesian" +#: js/utils/musicutils.js:694 +#.TRANS: Cuarta perfecta +msgid "Perfect fourth" msgstr "" -#: js/activity.js:1842 -#.TRANS: herramientas de producción -msgid "output tools" +#: js/utils/musicutils.js:694 +#.TRANS: Tercio aumentado +msgid "Augmented third" msgstr "" -#: js/activity.js:1845 -#.TRANS: nota personalizada -msgid "custom note" +#: js/utils/musicutils.js:695 +#.TRANS: Quinta disminuida +msgid "Diminished fifth" msgstr "" -#: js/activity.js:1848 -#.TRANS: nombre accidental -msgid "accidental name" +#: js/utils/musicutils.js:695 +#.TRANS: Cuarta aumentada +msgid "Augmented fourth" msgstr "" -#: js/activity.js:1851 -#: js/PitchBlocks.js:855 -#.TRANS: -msgid "east indian solfege" +#: js/utils/musicutils.js:696 +#.TRANS: Quinta perfecta +msgid "Perfect fifth" msgstr "" -#: js/activity.js:1854 -#: js/PitchBlocks.js:869 -#.TRANS: nombre de la nota -msgid "note name" +#: js/utils/musicutils.js:696 +#.TRANS: Sexto disminuido +msgid "Diminished sixth" msgstr "" -#: js/activity.js:1857 -#: js/IntervalsBlocks.js:94 -#.TRANS: nombre de temperamento -msgid "temperament name" +#: js/utils/musicutils.js:697 +#.TRANS: Sexto menor +msgid "Minor sixth" msgstr "" -#: js/activity.js:1863 -#.TRANS: -msgid "chord name" +#: js/utils/musicutils.js:697 +#.TRANS: Quinta aumentada +msgid "Augmented fifth" msgstr "" -#: js/activity.js:1869 -#.TRANS: tipo de filtro -msgid "filter type" +#: js/utils/musicutils.js:698 +#.TRANS: Sexto mayor +msgid "Major sixth" msgstr "" -#: js/activity.js:1872 -#.TRANS: tipo de oscilador -msgid "oscillator type" +#: js/utils/musicutils.js:698 +#.TRANS: Séptimo disminuido +msgid "Diminished seventh" msgstr "" -#: js/activity.js:1878 -#: js/DrumBlocks.js:32 -#.TRANS: nombre de ruido -msgid "noise name" +#: js/utils/musicutils.js:699 +#.TRANS: Séptimo menor +msgid "Minor seventh" msgstr "" -#: js/activity.js:1881 -#: js/DrumBlocks.js:75 -#.TRANS: nombre del tambor -msgid "drum name" +#: js/utils/musicutils.js:699 +#.TRANS: Sexto aumentado +msgid "Augmented sixth" msgstr "" -#: js/activity.js:1884 -#: js/DrumBlocks.js:119 -#.TRANS: nombre de efectos -msgid "effects name" +#: js/utils/musicutils.js:700 +#.TRANS: Séptimo mayor +msgid "Major seventh" msgstr "" -#: js/activity.js:1887 -#.TRANS: modo de envoltura -msgid "wrap mode" +#: js/utils/musicutils.js:700 +#.TRANS: Octavo disminuido +msgid "Diminished octave" msgstr "" -#: js/activity.js:1890 -#.TRANS: cargar archivo -msgid "load file" +#: js/utils/musicutils.js:701 +#.TRANS: Octavo perfecto +msgid "Perfect octave" msgstr "" -#: js/activity.js:2056 -#.TRANS: Este bloque está en desuso. -msgid "This block is deprecated." +#: js/utils/musicutils.js:701 +#.TRANS: Séptimo aumentado +msgid "Augmented seventh" msgstr "" -#: js/activity.js:2058 -#.TRANS: Este bloque no se puede encontrar. -msgid "Block cannot be found." +#: js/utils/musicutils.js:702 +#.TRANS: Novena menor +msgid "Minor ninth" msgstr "" -#: js/activity.js:2266 -#.TRANS: Guardar ilustraciones de bloques -msgid "Saving block artwork" +#: js/utils/musicutils.js:702 +#.TRANS: Octavo aumentado +msgid "Augmented octave" msgstr "" -#: js/activity.js:2277 -#.TRANS: Borrar -msgid "Erase" +#: js/utils/musicutils.js:703 +#.TRANS: Novena mayor +msgid "Major ninth" msgstr "" -#: js/activity.js:2301 -#: js/activity.js:2323 -#.TRANS: Pegar -msgid "Paste" -msgstr "Mboja" +#: js/utils/musicutils.js:703 +#.TRANS: Décima disminuida +msgid "Diminished tenth" +msgstr "" -#: js/activity.js:2305 -#.TRANS: Guardar ayuda de bloque -msgid "Save block help" +#: js/utils/musicutils.js:704 +#.TRANS: Décima menor +msgid "Minor tenth" msgstr "" -#: js/activity.js:2390 -#.TRANS: Saltando al final de la página -msgid "Jumping to the bottom of the page." +#: js/utils/musicutils.js:704 +#.TRANS: Novena aumentada +msgid "Augmented ninth" msgstr "" -#: js/activity.js:2396 -#.TRANS: Desplazarse hacia arriba -msgid "Scrolling up." +#: js/utils/musicutils.js:705 +#.TRANS: Décima mayor +msgid "Major tenth" msgstr "" -#: js/activity.js:2401 -#.TRANS: Desplazarse hacia abajo -msgid "Scrolling down." +#: js/utils/musicutils.js:705 +#.TRANS: Undécimo disminuido +msgid "Diminished eleventh" msgstr "" -#: js/activity.js:2406 -#.TRANS: Bloque de extracción -msgid "Extracting block" +#: js/utils/musicutils.js:706 +#.TRANS: Undécimo perfecto +msgid "Perfect eleventh" msgstr "" -#: js/activity.js:2414 -#.TRANS: Mover bloque hacia arriba -msgid "Moving block up." +#: js/utils/musicutils.js:706 +#.TRANS: Décima aumentada +msgid "Augmented tenth" msgstr "" -#: js/activity.js:2435 -#.TRANS: Mover bloque hacia abajo -msgid "Moving block down." +#: js/utils/musicutils.js:707 +#.TRANS: Doce disminuido +msgid "Diminished twelfth" msgstr "" -#: js/activity.js:2456 -#.TRANS: Mover bloque a la izquierda -msgid "Moving block left." +#: js/utils/musicutils.js:707 +#.TRANS: Undécimo aumentado +msgid "Augmented eleventh" msgstr "" -#: js/activity.js:2473 -#.TRANS: Mover bloque a la derecha -msgid "Moving block right." +#: js/utils/musicutils.js:708 +#.TRANS: Doce perfecto +msgid "Perfect twelfth" msgstr "" -#: js/activity.js:2488 -#.TRANS: Saltar a la posición inicial -msgid "Jump to home position." +#: js/utils/musicutils.js:708 +#.TRANS: Decimotercero disminuido +msgid "Diminished thirteenth" msgstr "" -#: js/activity.js:2515 -#.TRANS: Ocultar bloques -msgid "Hide blocks" +#: js/utils/musicutils.js:709 +#.TRANS: Doce menor +msgid "Minor thirteenth" msgstr "" -#: js/activity.js:3389 -#.TRANS: Haga clic en el botón ejecutar para ejecutar el proyecto. -msgid "Click the run button to run the project." +#: js/utils/musicutils.js:709 +#.TRANS: Quinta aumentada, más una octava +msgid "Augmented fifth, plus an octave" msgstr "" -#: js/activity.js:3456 -#: js/SaveInterface.js:131 -#: js/SaveInterface.js:204 -#: js/SaveInterface.js:262 -#: js/SaveInterface.js:389 -#: js/SaveInterface.js:417 -#: js/ProjectStorage.js:27 -#: js/GlobalPlanet.js:467 -#: js/GlobalPlanet.js:469 -#: js/GlobalPlanet.js:495 -#.TRANS: default project title when saving as Lilypond -#.TRANS: Mi proyecto -msgid "My Project" -msgstr "Che ajaposéva" +#: js/utils/musicutils.js:710 +#.TRANS: Decimotercero mayor +msgid "Major thirteenth" +msgstr "" -#: js/activity.js:4261 -#.TRANS: Mostrar/ocultar bloques -msgid "Show/hide block" +#: js/utils/musicutils.js:710 +#.TRANS: Séptimo disminuido, más una octava +msgid "Diminished seventh, plus an octave" msgstr "" -#: js/activity.js:4263 -#.TRANS: Expandir / Contraer bloques -msgid "Expand/collapse blocks" +#: js/utils/musicutils.js:838 +#.TRANS: ordinal number. Please keep exactly one space between each number. +#.TRANS: 1º 2º 3º 4º 5º 6º 7º 8º 9º 10º 11º 12º +msgid "1st 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th" msgstr "" -#: js/activity.js:4381 -#.TRANS: No se pudo analizar la entrada de JSON. -msgid "Could not parse JSON input." +#: js/utils/musicutils.js:1008 +#: js/utils/musicutils.js:1191 +#: js/utils/musicutils.js:1325 +#.TRANS: augmented is a music term related to intervals +#.TRANS: aumentado +msgid "augmented" +msgstr "mbohetapyre" + +#: js/utils/musicutils.js:1010 +#: js/utils/musicutils.js:1192 +#: js/utils/musicutils.js:1324 +#.TRANS: diminished is a music term related to intervals and mode +#.TRANS: disminuido +msgid "diminished" +msgstr "momichĩ" + +#: js/utils/musicutils.js:1016 +#: js/utils/musicutils.js:1322 +#: js/blocks/IntervalsBlocks.js:649 +#: js/turtleactions/IntervalsActions.js:120 +#: js/turtleactions/IntervalsActions.js:124 +#.TRANS: perfect is a music term related to intervals +#.TRANS: perfecto +msgid "perfect" +msgstr "porã jepéva" + +#: js/utils/musicutils.js:1018 +#.TRANS: twelve semi-tone scale for music +#.TRANS: cromático +msgid "chromatic" +msgstr "cromatico" + +#: js/utils/musicutils.js:1019 +#.TRANS: argelino +msgid "algerian" +msgstr "argelino" + +#: js/utils/musicutils.js:1020 +#.TRANS: español +msgid "spanish" +msgstr "españaygua" + +#: js/utils/musicutils.js:1022 +#.TRANS: modal scale in music +#.TRANS: octatonic +msgid "octatonic" +msgstr "octatónico" + +#: js/utils/musicutils.js:1024 +#.TRANS: harmonic major scale in music +#.TRANS: armónico mayor +msgid "harmonic major" msgstr "" -#: js/activity.js:4684 -#: js/activity.js:4771 -#: js/activity.js:4821 -#.TRANS: No se puede cargar el proyecto desde el archivo. Compruebe el tipo de archivo. -msgid "Cannot load project from the file. Please check the file type." +#: js/utils/musicutils.js:1026 +#.TRANS: natural minor scales in music +#.TRANS: natural menor +msgid "natural minor" msgstr "" -#: js/activity.js:5051 -#.TRANS: El parametro es invalido. -msgid "Invalid parameters" +#: js/utils/musicutils.js:1028 +#.TRANS: harmonic minor scale in music +#.TRANS: armónico menor +msgid "harmonic minor" msgstr "" -#: js/turtle-singer.js:1334 -#.TRANS: partials are weighted components in a harmonic series -#.TRANS: Debe tener al menos un bloque parcial dentro de un bloque parcial ponderado. -msgid "You must have at least one Partial block inside of a Weighted-partial block" +#: js/utils/musicutils.js:1030 +#.TRANS: melodic minor scale in music +#.TRANS: melódico menor +msgid "melodic minor" msgstr "" -#: js/turtle-singer.js:2048 -#.TRANS: Synth no puede tocar acordes. -msgid "synth cannot play chords." -msgstr " Synth ndaikatui ambopu" +#: js/utils/musicutils.js:1034 +#.TRANS: modal scale for music +#.TRANS: dorio +msgid "dorian" +msgstr "dorio" -#: js/lilypond.js:614 -#.TRANS: rata marrón -msgid "brown rat" -msgstr "anguja marrón" +#: js/utils/musicutils.js:1036 +#.TRANS: modal scale for music +#.TRANS: frigio +msgid "phrygian" +msgstr "frigio" -#: js/lilypond.js:615 -#.TRANS: topo -msgid "mole" -msgstr "topo" +#: js/utils/musicutils.js:1038 +#.TRANS: modal scale for music +#.TRANS: lidio +msgid "lydian" +msgstr "lidio" -#: js/lilypond.js:616 -#.TRANS: ardilla -msgid "chipmunk" -msgstr "ardilla" +#: js/utils/musicutils.js:1040 +#.TRANS: modal scale for music +#.TRANS: mixolidio +msgid "mixolydian" +msgstr "mixolidio" -#: js/lilypond.js:617 -#.TRANS: ardilla roja -msgid "red squirrel" -msgstr "ardilla roja" +#: js/utils/musicutils.js:1044 +#.TRANS: modal scale for music +#.TRANS: locrian +msgid "locrian" +msgstr "locrio" -#: js/lilypond.js:618 -#.TRANS: conejillo de indias -msgid "guinea pig" -msgstr "tapiti india gua" +#: js/utils/musicutils.js:1046 +#.TRANS: minor jazz scale for music +#.TRANS: jazz menor +msgid "jazz minor" +msgstr "" -#: js/lilypond.js:619 -#.TRANS: capybara -msgid "capybara" -msgstr "carpincho" +#: js/utils/musicutils.js:1048 +#.TRANS: bebop scale for music +#.TRANS: bebop +msgid "bebop" +msgstr "bebop" -#: js/lilypond.js:620 -#.TRANS: coypu -msgid "coypu" -msgstr "coipu" +#: js/utils/musicutils.js:1049 +#.TRANS: arábica +msgid "arabic" +msgstr "arabica" -#: js/lilypond.js:621 -#.TRANS: rata negra -msgid "black rat" -msgstr "anguja hũ" +#: js/utils/musicutils.js:1050 +#.TRANS: bizantino +msgid "byzantine" +msgstr "bizantino" -#: js/lilypond.js:622 -#.TRANS: ardilla gris -msgid "grey squirrel" -msgstr "ardilla gris" +#: js/utils/musicutils.js:1052 +#.TRANS: musical scale for music by Verdi +#.TRANS: enigmático +msgid "enigmatic" +msgstr "enigmatico" -#: js/lilypond.js:623 -#.TRANS: ardilla voladora -msgid "flying squirrel" -msgstr "ardilla voladora" +#: js/utils/musicutils.js:1053 +#.TRANS: etíope +msgid "ethiopian" +msgstr "etiope" -#: js/lilypond.js:624 -#.TRANS: murciélago -msgid "bat" -msgstr "mbopi" +#: js/utils/musicutils.js:1055 +#.TRANS: Ethiopic scale for music +#.TRANS: geez +msgid "geez" +msgstr "geez" -#: js/lilypond.js:757 -#: js/lilypond.js:921 -#: js/lilypond.js:959 -#: js/ActionBlocks.js:1256 -#: js/ExtrasBlocks.js:553 -#.TRANS: iniciar tambor -msgid "start drum" -msgstr "ñepỹru angu’atarara" +#: js/utils/musicutils.js:1056 +#.TRANS: hindú +msgid "hindu" +msgstr "hindu" -#: js/SaveInterface.js:59 -#: js/SaveInterface.js:61 -#: js/SaveInterface.js:93 -#.TRANS: Proyecto de Bloques de Música -msgid "Music Blocks Project" +#: js/utils/musicutils.js:1057 +#.TRANS: húngaro +msgid "hungarian" +msgstr "hungaro" + +#: js/utils/musicutils.js:1059 +#.TRANS: minor Romanian scale for music +#.TRANS: romano menor +msgid "romanian minor" +msgstr "" + +#: js/utils/musicutils.js:1060 +#.TRANS: gitana española +msgid "spanish gypsy" +msgstr "" + +#: js/utils/musicutils.js:1062 +#.TRANS: musical scale for Mid-Eastern music +#.TRANS: maqam +msgid "maqam" +msgstr "maqam" + +#: js/utils/musicutils.js:1064 +#.TRANS: minor blues scale for music +#.TRANS: blues menor +msgid "minor blues" +msgstr "" + +#: js/utils/musicutils.js:1066 +#.TRANS: major blues scale for music +#.TRANS: blues mayor +msgid "major blues" msgstr "" -#: js/SaveInterface.js:63 -#.TRANS: Este proyecto fue creado en Bloques de Música -msgid "This project was created in Music Blocks" +#: js/utils/musicutils.js:1067 +#.TRANS: tono completo +msgid "whole tone" msgstr "" -#: js/SaveInterface.js:67 -#.TRANS: Bloques de Música es una aplicación de Software Libre -msgid "Music Blocks is a Free/Libre Software application." +#: js/utils/musicutils.js:1069 +#.TRANS: pentatonic is a general term that means "five note scale". This scale is typically known as "minor pentatonic" +#.TRANS: pentatonic minor +msgid "minor pentatonic" msgstr "" -#: js/SaveInterface.js:69 -#.TRANS: Se puede acceder al código fuente en -msgid "The source code can be accessed at" +#: js/utils/musicutils.js:1071 +#.TRANS: pentatonic is a general term that means "five note scale". This scale is typically known as "major pentatonic" +#.TRANS: pentatonic mayor +msgid "major pentatonic" msgstr "" -#: js/SaveInterface.js:72 -#.TRANS: Para más información, consulte el -msgid "For more information, please consult the" +#: js/utils/musicutils.js:1072 +#.TRANS: chino +msgid "chinese" +msgstr "chino" + +#: js/utils/musicutils.js:1073 +#.TRANS: egipcio +msgid "egyptian" +msgstr "egipcio" + +#: js/utils/musicutils.js:1075 +#.TRANS: https://en.wikipedia.org/wiki/Hirajoshi_scale NOTE: There are three different versions of this scale +#.TRANS: hirajoshi +msgid "hirajoshi" +msgstr "hirajoshi" + +#: js/utils/musicutils.js:1076 +#.TRANS: Japón +msgid "Japan" +msgstr "japonés" + +#: js/utils/musicutils.js:1078 +#.TRANS: https://en.wikipedia.org/wiki/In_scale and https://en.wikipedia.org/wiki/Sakura_Sakura +#.TRANS: in +msgid "in" msgstr "" -#: js/SaveInterface.js:83 -#.TRANS: Alternativamente, abra el archivo en Bloques de Música usando el botón Cargar proyecto. -msgid "Alternatively, open the file in Music Blocks using the Load project button." +#: js/utils/musicutils.js:1080 +#.TRANS: https://en.wikipedia.org/wiki/Miny%C5%8D_scale +#.TRANS: minyo +msgid "minyo" msgstr "" -#: js/SaveInterface.js:85 -#.TRANS: Código de proyecto -msgid "Project Code" +#: js/utils/musicutils.js:1082 +#.TRANS: Italian mathematician +#.TRANS: fibonacci +msgid "fibonacci" +msgstr "fibonacci" + +#: js/utils/musicutils.js:1083 +#: js/utils/musicutils.js:1134 +#: js/utils/musicutils.js:1177 +#: js/utils/musicutils.js:1199 +#: js/utils/synthutils.js:134 +#: js/blocks/IntervalsBlocks.js:1124 +#: js/blocks/ToneBlocks.js:946 +#: js/blocks/VolumeBlocks.js:411 +#: js/blocks/WidgetBlocks.js:399 +#: js/blocks/WidgetBlocks.js:404 +#: js/turtleactions/VolumeActions.js:218 +#: js/widgets/modewidget.js:919 +#.TRANS: customize voice +#.TRANS: personalizado +msgid "custom" +msgstr "mboavarekoha" + +#: js/utils/musicutils.js:1085 +#: js/utils/musicutils.js:1531 +#: js/blocks/WidgetBlocks.js:176 +#.TRANS: highpass filter +#.TRANS: highpass +msgid "highpass" msgstr "" -#: js/SaveInterface.js:87 -#.TRANS: Este código almacena datos sobre los bloques en un proyecto. -msgid "This code stores data about the blocks in a project." +#: js/utils/musicutils.js:1087 +#: js/utils/musicutils.js:1532 +#.TRANS: lowpass filter +#.TRANS: +msgid "lowpass" msgstr "" -#: js/SaveInterface.js:89 -#.TRANS: Mostrar -msgid "Show" +#: js/utils/musicutils.js:1089 +#: js/utils/musicutils.js:1533 +#.TRANS: bandpass filter +#.TRANS: +msgid "bandpass" msgstr "" -#: js/SaveInterface.js:91 -#.TRANS: Ocultar -msgid "Hide" +#: js/utils/musicutils.js:1091 +#: js/utils/musicutils.js:1534 +#.TRANS: high-shelf filter +#.TRANS: +msgid "highshelf" msgstr "" -#: js/SaveInterface.js:197 -#: js/SaveInterface.js:58 -#.TRANS: Ninguna descripción provista -msgid "No description provided" +#: js/utils/musicutils.js:1093 +#: js/utils/musicutils.js:1535 +#.TRANS: low-shelf filter +#.TRANS: +msgid "lowshelf" msgstr "" -#: js/SaveInterface.js:332 -#.TRANS: Tu grabación está en curso. -msgid "Your recording is in progress." +#: js/utils/musicutils.js:1095 +#: js/utils/musicutils.js:1536 +#.TRANS: notch-shelf filter +#.TRANS: +msgid "notch" msgstr "" -#: js/SaveInterface.js:401 -#.TRANS: File name prompt for save as Lilypond -#.TRANS: Nombre del archivo -msgid "File name" +#: js/utils/musicutils.js:1097 +#: js/utils/musicutils.js:1537 +#.TRANS: all-pass filter +#.TRANS: +msgid "allpass" msgstr "" -#: js/SaveInterface.js:403 -#: js/StringHelper.js:39 -#.TRANS: Project title prompt for save as Lilypond -#.TRANS: Título del proyecto -msgid "Project title" +#: js/utils/musicutils.js:1099 +#: js/utils/musicutils.js:1538 +#.TRANS: peaking filter +#.TRANS: +msgid "peaking" msgstr "" -#: js/SaveInterface.js:405 -#.TRANS: Project title prompt for save as Lilypond -#.TRANS: Autor del Proyecto -msgid "Project author" +#: js/utils/musicutils.js:1100 +#: js/utils/musicutils.js:1546 +#: js/utils/synthutils.js:126 +#: js/blocks/PitchBlocks.js:85 +#.TRANS: sine wave +#.TRANS: sine +msgid "sine" +msgstr "pyti’a" + +#: js/utils/musicutils.js:1101 +#: js/utils/musicutils.js:1547 +#: js/utils/synthutils.js:128 +#: js/blocks/PitchBlocks.js:39 +#.TRANS: square wave +#.TRANS: cuadrado +msgid "square" +msgstr "irundy yke" + +#: js/utils/musicutils.js:1102 +#: js/utils/musicutils.js:1548 +#: js/utils/synthutils.js:132 +#: js/blocks/PitchBlocks.js:62 +#: js/blocks/ToneBlocks.js:39 +#.TRANS: triangle wave +#.TRANS: triángulo +msgid "triangle" +msgstr " mbohapy takamby" + +#: js/utils/musicutils.js:1103 +#: js/utils/musicutils.js:1549 +#: js/utils/synthutils.js:130 +#: js/blocks/PitchBlocks.js:108 +#.TRANS: sawtooth wave +#.TRANS: diente de sierra +msgid "sawtooth" +msgstr "tãi akua" + +#: js/utils/musicutils.js:1105 +#: js/utils/musicutils.js:1312 +#: js/blocks/PitchBlocks.js:931 +#: js/blocks/PitchBlocks.js:937 +#: js/turtleactions/PitchActions.js:469 +#.TRANS: even numbers +#.TRANS: invert based on even or odd number or musical scale +#.TRANS: par +msgid "even" +msgstr "mokõi" + +#: js/utils/musicutils.js:1107 +#: js/utils/musicutils.js:1313 +#: js/blocks/PitchBlocks.js:937 +#: js/turtleactions/PitchActions.js:471 +#.TRANS: odd numbers +#.TRANS: impar +msgid "odd" +msgstr "jojaha’ỹ" + +#: js/utils/musicutils.js:1108 +#: js/utils/musicutils.js:1314 +#: js/blocks/PitchBlocks.js:937 +#: js/turtleactions/PitchActions.js:473 +#.TRANS: escalar +msgid "scalar" msgstr "" -#: js/SaveInterface.js:407 -#.TRANS: MIDI prompt for save as Lilypond -#.TRANS: Incluye MIDI? -msgid "Include MIDI output?" +#: js/utils/musicutils.js:1109 +#: js/utils/synthutils.js:72 +#: js/blocks/VolumeBlocks.js:47 +#.TRANS: musical instrument +#.TRANS: piano +msgid "piano" msgstr "" -#: js/SaveInterface.js:409 -#.TRANS: Guitar prompt for save as Lilypond -#.TRANS: Incluye tablatura de guitarra -msgid "Include guitar tablature output?" +#: js/utils/musicutils.js:1110 +#: js/utils/synthutils.js:74 +#.TRANS: musical instrument +#.TRANS: violín +msgid "violin" +msgstr "mbaraka’i hasẽngy" + +#: js/utils/musicutils.js:1111 +#: js/utils/synthutils.js:76 +#.TRANS: viola musical instrument +#.TRANS: viola +msgid "viola" msgstr "" -#: js/SaveInterface.js:411 -#.TRANS: Lilypond is a scripting language for generating sheet music -#.TRANS: Guardar como lilypond -msgid "Save as Lilypond" +#: js/utils/musicutils.js:1112 +#: js/utils/synthutils.js:114 +#.TRANS: xylophone musical instrument +#.TRANS: xilófono +msgid "xylophone" msgstr "" -#: js/SaveInterface.js:426 -#: js/EnsembleBlocks.js:75 -#: js/EnsembleBlocks.js:154 -#: js/EnsembleBlocks.js:216 -#: js/EnsembleBlocks.js:302 -#: js/EnsembleBlocks.js:348 -#: js/EnsembleBlocks.js:389 -#: js/EnsembleBlocks.js:441 -#: js/EnsembleBlocks.js:490 -#: js/EnsembleBlocks.js:536 -#: js/EnsembleBlocks.js:583 -#: js/EnsembleBlocks.js:637 -#: js/EnsembleBlocks.js:753 -#: js/EnsembleBlocks.js:840 -#: js/EnsembleBlocks.js:899 -#: js/EnsembleBlocks.js:942 -#: js/EnsembleBlocks.js:1212 -#: js/EnsembleBlocks.js:1280 -#.TRANS: default project author when saving as Lilypond -#.TRANS: Sr. Ratón -msgid "Mr. Mouse" +#: js/utils/musicutils.js:1113 +#: js/utils/synthutils.js:136 +#.TRANS: vibraphone musical instrument +#.TRANS: vibráfono +msgid "vibraphone" msgstr "" -#: js/SaveInterface.js:573 -#.TRANS: El código de Lilypond se copia al portapapeles. Puedes pegarlo aquí: -msgid "The Lilypond code is copied to clipboard. You can paste it here: " +#: js/utils/musicutils.js:1114 +#: js/utils/synthutils.js:78 +#.TRANS: musical instrument +#.TRANS: violonchelo +msgid "cello" +msgstr "violonchelo" + +#: js/utils/musicutils.js:1116 +#: js/utils/synthutils.js:82 +#.TRANS: viola musical instrument +#.TRANS: contrabajo +msgid "double bass" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:50 -#: js/RhythmBlockPaletteBlocks.js:232 -#.TRANS: rhythm block -#.TRANS: translate "rhythm1" as rhythm -#.TRANS: ritmo -msgid "rhythm1" +#: js/utils/musicutils.js:1117 +#: js/utils/synthutils.js:84 +#: js/widgets/rhythmruler.js:2511 +#.TRANS: musical instrument +#.TRANS: guitarra +msgid "guitar" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:70 -#: js/RhythmBlockPaletteBlocks.js:251 -#: js/RhythmBlockPaletteBlocks.js:484 -#: js/RhythmBlockPaletteBlocks.js:553 -#: js/RhythmBlockPaletteBlocks.js:874 -#.TRANS: número de notas -msgid "number of notes" -msgstr "notas papaha" +#: js/utils/musicutils.js:1118 +#: js/utils/synthutils.js:86 +#.TRANS: musical instrument +#.TRANS: guitarra acustica +msgid "acoustic guitar" +msgstr "" -#: js/RhythmBlockPaletteBlocks.js:126 -#.TRANS: ritmo polifónico -msgid "polyphonic rhythm" +#: js/utils/musicutils.js:1119 +#: js/utils/synthutils.js:88 +#.TRANS: musical instrument +#.TRANS: flauta +msgid "flute" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:218 -#.TRANS: El bloque Ritmo se utiliza para generar patrones de ritmo. -msgid "The Rhythm block is used to generate rhythm patterns." +#: js/utils/musicutils.js:1120 +#: js/utils/synthutils.js:90 +#.TRANS: musical instrument +#.TRANS: clarinete +msgid "clarinet" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:279 -#.TRANS: 1/64 nota -msgid "1/64 note" -msgstr "1/64 nota" +#: js/utils/musicutils.js:1121 +#: js/utils/synthutils.js:92 +#.TRANS: musical instrument +#.TRANS: saxofón +msgid "saxophone" +msgstr "" -#: js/RhythmBlockPaletteBlocks.js:303 -#.TRANS: 1/32 nota -msgid "1/32 note" -msgstr "1/32 nota" +#: js/utils/musicutils.js:1122 +#: js/utils/synthutils.js:94 +#.TRANS: musical instrument +#.TRANS: tuba +msgid "tuba" +msgstr "" -#: js/RhythmBlockPaletteBlocks.js:331 -#.TRANS: 1/16 nota -msgid "1/16 note" -msgstr "1/16 nota" +#: js/utils/musicutils.js:1123 +#: js/utils/synthutils.js:96 +#.TRANS: musical instrument +#.TRANS: trompeta +msgid "trumpet" +msgstr "" -#: js/RhythmBlockPaletteBlocks.js:359 -#.TRANS: 1/8 nota -msgid "eighth note" -msgstr "1/8 nota" +#: js/utils/musicutils.js:1124 +#: js/utils/synthutils.js:98 +#.TRANS: musical instrument +#.TRANS: oboe +msgid "oboe" +msgstr "" -#: js/RhythmBlockPaletteBlocks.js:387 -#.TRANS: 1/4 nota -msgid "quarter note" -msgstr "1/4 nota" +#: js/utils/musicutils.js:1125 +#: js/utils/synthutils.js:100 +#.TRANS: musical instrument +#.TRANS: trombón +msgid "trombone" +msgstr "" -#: js/RhythmBlockPaletteBlocks.js:415 -#.TRANS: 1/2 nota -msgid "half note" -msgstr "1/2 nota" +#: js/utils/musicutils.js:1126 +#: js/utils/synthutils.js:116 +#.TRANS: polytone synthesizer +#.TRANS: sintetizador electronico +msgid "electronic synth" +msgstr "" -#: js/RhythmBlockPaletteBlocks.js:443 -#.TRANS: nota completa -msgid "whole note" -msgstr "nota oimbáva" +#: js/utils/musicutils.js:1127 +#: js/utils/synthutils.js:118 +#.TRANS: simple monotone synthesizer +#.TRANS: simple-1 +msgid "simple 1" +msgstr "" -#: js/RhythmBlockPaletteBlocks.js:481 -#: js/RhythmBlockPaletteBlocks.js:550 -#: js/RhythmBlockPaletteBlocks.js:601 -#.TRANS: A tuplet is a note value divided into irregular time values. -#.TRANS: tuplet -msgid "tuplet" -msgstr "tuplet" +#: js/utils/musicutils.js:1128 +#.TRANS: simple 2 +msgid "simple 2" +msgstr "" -#: js/RhythmBlockPaletteBlocks.js:767 -#.TRANS: septeto -msgid "septuplet" -msgstr " septuplet" +#: js/utils/musicutils.js:1129 +#.TRANS: simple 3 +msgid "simple 3" +msgstr "" -#: js/RhythmBlockPaletteBlocks.js:795 -#.TRANS: quinteto -msgid "quintuplet" -msgstr "quintuplet" +#: js/utils/musicutils.js:1130 +#.TRANS: simple 4 +msgid "simple 4" +msgstr "" -#: js/RhythmBlockPaletteBlocks.js:823 -#.TRANS: trillizo -msgid "triplet" -msgstr "triplet" +#: js/utils/musicutils.js:1131 +#: js/utils/synthutils.js:58 +#: js/blocks/DrumBlocks.js:191 +#.TRANS: white noise synthesizer +#.TRANS: ruido blanco +msgid "white noise" +msgstr "" -#: js/RhythmBlockPaletteBlocks.js:850 -#.TRANS: tuplet simple -msgid "simple tuplet" -msgstr "simple tuplet" +#: js/utils/musicutils.js:1132 +#: js/utils/synthutils.js:60 +#.TRANS: brown noise synthesizer +#.TRANS: ruido marrón +msgid "brown noise" +msgstr "" -#: js/RhythmBlockPaletteBlocks.js:860 -#.TRANS: Tuplets son una colección de notas que se escalan a una duración específica. -msgid "Tuplets are a collection of notes that get scaled to a specific duration." +#: js/utils/musicutils.js:1133 +#: js/utils/synthutils.js:62 +#.TRANS: pink noise synthesizer +#.TRANS: ruido rosa +msgid "pink noise" msgstr "" -#: js/WidgetBlocks.js:71 -#.TRANS: sound envelope (ADSR) -#.TRANS: envolventes -msgid "envelope" +#: js/utils/musicutils.js:1135 +#: js/utils/synthutils.js:148 +#: js/widgets/rhythmruler.js:2057 +#: js/widgets/rhythmruler.js:2319 +#.TRANS: musical instrument +#.TRANS: tambor militar pequeño +msgid "snare drum" msgstr "" -#: js/WidgetBlocks.js:79 -#.TRANS: Attack time is the time taken for initial run-up of level from nil to peak, beginning when the key is first pressed. -#.TRANS: atacar -msgid "attack" +#: js/utils/musicutils.js:1136 +#: js/utils/synthutils.js:150 +#.TRANS: musical instrument +#.TRANS: tambor de patada +msgid "kick drum" msgstr "" -#: js/WidgetBlocks.js:81 -#.TRANS: Decay time is the time taken for the subsequent run down from the attack level to the designated sustain level. -#.TRANS: decaer -msgid "decay" +#: js/utils/musicutils.js:1137 +#: js/utils/synthutils.js:152 +#.TRANS: musical instrument +#.TRANS: tom tom +msgid "tom tom" msgstr "" -#: js/WidgetBlocks.js:83 -#.TRANS: Sustain level is the level during the main sequence of the sound's duration, until the key is released. -#.TRANS: sostener -msgid "sustain" +#: js/utils/musicutils.js:1138 +#: js/utils/synthutils.js:154 +#.TRANS: musical instrument +#.TRANS: piso tom +msgid "floor tom" +msgstr " tom tom yvy atã pegua" + +#: js/utils/musicutils.js:1139 +#: js/utils/synthutils.js:156 +#.TRANS: musical instrument +#.TRANS: tambor de bajo +msgid "bass drum" msgstr "" -#: js/WidgetBlocks.js:85 -#.TRANS: Release time is the time taken for the level to decay from the sustain level to zero after the key is released. -#.TRANS: liberar -msgid "release" +#: js/utils/musicutils.js:1140 +#: js/utils/synthutils.js:158 +#.TRANS: a drum made from an inverted cup +#.TRANS: taza de tambor +msgid "cup drum" msgstr "" -#: js/WidgetBlocks.js:96 -#.TRANS: El valor de atacar debe estar entre 0 y 100. -msgid "Attack value should be from 0 to 100." +#: js/utils/musicutils.js:1141 +#: js/utils/synthutils.js:160 +#.TRANS: musical instrument +#.TRANS: darbuka +msgid "darbuka drum" msgstr "" -#: js/WidgetBlocks.js:99 -#.TRANS: El valor de decaer debe estar entre 0 y 100. -msgid "Decay value should be from 0 to 100." +#: js/utils/musicutils.js:1142 +#: js/utils/synthutils.js:164 +#.TRANS: musical instrument +#.TRANS: +msgid "hi hat" msgstr "" -#: js/WidgetBlocks.js:102 -#.TRANS: El valor de sostener debe estar entre 0 y 100. -msgid "Sustain value should be from 0 to 100." +#: js/utils/musicutils.js:1143 +#: js/utils/synthutils.js:166 +#.TRANS: a small metal bell +#.TRANS: campana de paseo +msgid "ride bell" msgstr "" -#: js/WidgetBlocks.js:105 -#.TRANS: El valor de liberar debe estar entre 0 y 100. -msgid "Release value should be from 0-100." +#: js/utils/musicutils.js:1144 +#: js/utils/synthutils.js:168 +#.TRANS: musical instrument +#.TRANS: campana de vaca +msgid "cow bell" msgstr "" -#: js/WidgetBlocks.js:121 -#.TRANS: Está agregando varios bloques de envolvente. -msgid "You are adding multiple envelope blocks." +#: js/utils/musicutils.js:1145 +#.TRANS: tambor japonés +msgid "japanese drum" msgstr "" -#: js/WidgetBlocks.js:144 -#.TRANS: a filter removes some unwanted components from a signal -#.TRANS: filtrar -msgid "filter" +#: js/utils/musicutils.js:1146 +#: js/utils/synthutils.js:174 +#.TRANS: musical instrument +#.TRANS: campana japonesa +msgid "japanese bell" msgstr "" -#: js/WidgetBlocks.js:149 -#: js/musicutils.js:706 -#: js/musicutils.js:1105 -#.TRANS: highpass filter -#.TRANS: highpass -msgid "highpass" +#: js/utils/musicutils.js:1147 +#: js/utils/synthutils.js:170 +#.TRANS: musical instrument +#.TRANS: campana triangular +msgid "triangle bell" msgstr "" -#: js/WidgetBlocks.js:152 -#: js/ToneBlocks.js:42 -#: js/timbre.js:1558 -#: js/timbre.js:1808 -#.TRANS: type of filter, e.g., lowpass, highpass, etc. -#.TRANS: there are different types (sine, triangle, square...) of oscillators. -#.TRANS: typo -msgid "type" +#: js/utils/musicutils.js:1148 +#: js/utils/synthutils.js:172 +#.TRANS: musical instrument +#.TRANS: castañuelas +msgid "finger cymbals" +msgstr "castañuelas" + +#: js/utils/musicutils.js:1149 +#: js/utils/synthutils.js:176 +#.TRANS: a musically tuned set of bells +#.TRANS: campaneo +msgid "chime" msgstr "" -#: js/WidgetBlocks.js:154 -#: js/timbre.js:1818 -#.TRANS: rolloff is the steepness of a change in frequency. -#.TRANS: rodar -msgid "rolloff" +#: js/utils/musicutils.js:1150 +#: js/utils/synthutils.js:178 +#.TRANS: a musical instrument +#.TRANS: gong +msgid "gong" msgstr "" -#: js/WidgetBlocks.js:155 -#: js/MediaBlocks.js:692 -#: js/temperament.js:382 -#: js/temperament.js:417 -#: js/temperament.js:477 -#: js/temperament.js:485 -#: js/temperament.js:1348 -#: js/timbre.js:1842 -#.TRANS: frecuencia -msgid "frequency" -msgstr "osyryha" +#: js/utils/musicutils.js:1151 +#: js/utils/synthutils.js:180 +#.TRANS: sound effect +#.TRANS: estruendo +msgid "clang" +msgstr "sunu" -#: js/WidgetBlocks.js:179 -#.TRANS: rolloff is the steepness of a change in frequency. -#.TRANS: Roll off valor debe ser -12, -24, -48, o -96 decibelios. -msgid "Rolloff value should be either -12, -24, -48, or -96 decibels/octave." +#: js/utils/musicutils.js:1152 +#: js/utils/synthutils.js:182 +#.TRANS: sound effect +#.TRANS: choque +msgid "crash" +msgstr "ombeti" + +#: js/utils/musicutils.js:1153 +#: js/utils/synthutils.js:184 +#.TRANS: sound effect +#.TRANS: botella +msgid "bottle" +msgstr "liméta" + +#: js/utils/musicutils.js:1154 +#: js/utils/synthutils.js:186 +#.TRANS: sound effect +#.TRANS: palmada +msgid "clap" +msgstr "popete" + +#: js/utils/musicutils.js:1155 +#: js/utils/synthutils.js:188 +#.TRANS: sound effect +#.TRANS: bofetada +msgid "slap" +msgstr "tovapete" + +#: js/utils/musicutils.js:1156 +#: js/utils/synthutils.js:190 +#.TRANS: sound effect +#.TRANS: salpicadura +msgid "splash" +msgstr "hypyi" + +#: js/utils/musicutils.js:1157 +#: js/utils/synthutils.js:192 +#.TRANS: sound effect +#.TRANS: burbujas +msgid "bubbles" +msgstr "tyjúi" + +#: js/utils/musicutils.js:1158 +#: js/utils/synthutils.js:194 +#.TRANS: sound effect +#.TRANS: gota de agua +msgid "raindrop" msgstr "" -#: js/WidgetBlocks.js:211 -#.TRANS: La Herramienta temperamento se utiliza para definir la afinación personalizada. -msgid "The Temperament tool is used to define custom tuning." +#: js/utils/musicutils.js:1159 +#: js/utils/synthutils.js:196 +#.TRANS: animal sound effect +#.TRANS: gato +msgid "cat" +msgstr "mbarakaja" + +#: js/utils/musicutils.js:1160 +#: js/utils/synthutils.js:198 +#.TRANS: animal sound effect +#.TRANS: grillo +msgid "cricket" +msgstr "kyju" + +#: js/utils/musicutils.js:1161 +#: js/utils/synthutils.js:200 +#.TRANS: animal sound effect +#.TRANS: perro +msgid "dog" +msgstr "jagua" + +#: js/utils/musicutils.js:1163 +#: js/utils/synthutils.js:102 +#.TRANS: musical instrument +#.TRANS: banjo +msgid "banjo" msgstr "" -#: js/WidgetBlocks.js:277 -#: js/sampler.js:329 -#.TRANS: Sube una muestra de audio y ajusta su centro de tono. -msgid "Upload a sample and adjust its pitch center." +#: js/utils/musicutils.js:1164 +#: js/utils/synthutils.js:104 +#.TRANS: musical instrument +#.TRANS: koto +msgid "koto" msgstr "" -#: js/WidgetBlocks.js:284 -#.TRANS: the speed at music is should be played. -#.TRANS: muestreador de audio -msgid "sampler" +#: js/utils/musicutils.js:1165 +#: js/utils/synthutils.js:106 +#.TRANS: musical instrument +#.TRANS: dulcimer +msgid "dulcimer" msgstr "" -#: js/WidgetBlocks.js:329 -#: js/WidgetBlocks.js:334 -#: js/IntervalsBlocks.js:928 -#: js/VolumeBlocks.js:411 -#: js/ToneBlocks.js:946 -#: js/VolumeActions.js:218 -#: js/musicutils.js:704 -#: js/musicutils.js:755 -#: js/musicutils.js:798 -#: js/musicutils.js:820 -#: js/musicutils.js:1136 -#: js/synthutils.js:118 -#: js/modewidget.js:919 -#.TRANS: customize voice -#.TRANS: personalizado -msgid "custom" -msgstr "mboavarekoha" +#: js/utils/musicutils.js:1166 +#: js/utils/synthutils.js:108 +#.TRANS: musical instrument +#.TRANS: guitarra electrica +msgid "electric guitar" +msgstr "" -#: js/WidgetBlocks.js:432 -#.TRANS: El bloque Meter abre una herramienta para seleccionar golpes fuertes para el metro. -msgid "The Meter block opens a tool to select strong beats for the meter." +#: js/utils/musicutils.js:1167 +#: js/utils/synthutils.js:110 +#.TRANS: musical instrument +#.TRANS: fagot +msgid "bassoon" msgstr "" -#: js/WidgetBlocks.js:473 -#.TRANS: El bloque del osciloscopio abre una herramienta para visualizar formas de onda. -msgid "The oscilloscope block opens a tool to visualize waveforms." +#: js/utils/musicutils.js:1168 +#: js/utils/synthutils.js:112 +#.TRANS: musical instrument +#.TRANS: celeste +msgid "celeste" msgstr "" -#: js/WidgetBlocks.js:478 -#.TRANS: osciloscopio -msgid "oscilloscope" +#: js/utils/musicutils.js:1170 +#: js/widgets/temperament.js:787 +#.TRANS: musical temperament +#.TRANS: igual +msgid "equal" msgstr "" -#: js/WidgetBlocks.js:530 -#.TRANS: El bloque Modo personalizado abre una herramienta para explorar el modo musical (el espaciado de las notas en una escala). -msgid "The Custom mode block opens a tool to explore musical mode (the spacing of the notes in a scale)." +#: js/utils/musicutils.js:1172 +#.TRANS: musical temperament +#.TRANS: Pitagórico +msgid "Pythagorean" msgstr "" -#: js/WidgetBlocks.js:536 -#.TRANS: musical mode is the pattern of half-steps in an octave, e.g., Major or Minor modes -#.TRANS: modo personalizado -msgid "custom mode" -msgstr "kokatu avateĩgua" +#: js/utils/musicutils.js:1174 +#.TRANS: musical temperament +#.TRANS: solo entonación +msgid "just intonation" +msgstr "" -#: js/WidgetBlocks.js:570 -#.TRANS: El bloque Tempo abre un metrónomo para visualizar el ritmo. -msgid "The Tempo block opens a metronome to visualize the beat." +#: js/utils/musicutils.js:1176 +#.TRANS: musical temperament +#.TRANS: +msgid "meantone" msgstr "" -#: js/WidgetBlocks.js:617 -#.TRANS: El Arpegio Widget se usa para componer secuencias de acordes. -msgid "The Arpeggio Widget is used to compose chord sequences." +#: js/utils/musicutils.js:1193 +#.TRANS: 7mo mayor +msgid "major 7th" msgstr "" -#: js/WidgetBlocks.js:623 -#: js/IntervalsBlocks.js:683 -#.TRANS: arpegio -msgid "arpeggio" +#: js/utils/musicutils.js:1194 +#.TRANS: 7mo menor +msgid "minor 7th" msgstr "" -#: js/WidgetBlocks.js:677 -#.TRANS: La Matriz de percusión de tono se utiliza para asignar tonos a los sonidos de tambor. -msgid "The Pitch drum matrix is used to map pitches to drum sounds." +#: js/utils/musicutils.js:1195 +#.TRANS: 7ma dominante +msgid "dominant 7th" msgstr "" -#: js/WidgetBlocks.js:682 -#.TRANS: makes a mapping between pitches and drum sounds -#.TRANS: matriz de tono en tambor -msgid "pitch-drum mapper" +#: js/utils/musicutils.js:1196 +#.TRANS: 7mo menor-mayor +msgid "minor-major 7th" msgstr "" -#: js/WidgetBlocks.js:724 -#.TRANS: Debe tener al menos un bloque de tono y un bloque de tambor en la matriz. -msgid "You must have at least one pitch block and one drum block in the matrix." -msgstr "Oreko vaerã mbovyetéramo peteĩ vore ipuva ha peteĩ vore angu’atarara moñepyrũmbyguape" - -#: js/WidgetBlocks.js:746 -#.TRANS: La Herramienta de control deslizante tono se utiliza para generar tonos en las frecuencias seleccionadas. -msgid "The Pitch slider tool to is used to generate pitches at selected frequencies." +#: js/utils/musicutils.js:1197 +#.TRANS: 7º completamente disminuido +msgid "fully-diminished 7th" msgstr "" -#: js/WidgetBlocks.js:751 -#.TRANS: widget to generate pitches using a slider -#.TRANS: deslizante de tono -msgid "pitch slider" +#: js/utils/musicutils.js:1198 +#.TRANS: 7º medio disminuido +msgid "half-diminished 7th" msgstr "" -#: js/WidgetBlocks.js:788 -#.TRANS: teclado cromático -msgid "chromatic keyboard" +#: js/utils/musicutils.js:1557 +#: js/utils/musicutils.js:1569 +#.TRANS: Igual (12EDO) +msgid "Equal (12EDO)" msgstr "" -#: js/WidgetBlocks.js:815 -#: js/WidgetBlocks.js:874 -#.TRANS: widget to generate pitches using a slider -#.TRANS: teclado musical -msgid "music keyboard" +#: js/utils/musicutils.js:1558 +#: js/utils/musicutils.js:1570 +#.TRANS: 5-Límite de entonación justa +msgid "5-limit Just Intonation" msgstr "" -#: js/WidgetBlocks.js:859 -#: js/WidgetBlocks.js:866 -#.TRANS: El bloque Teclado de música abre un teclado de piano que puede usarse para crear notas. -msgid "The Music keyboard block opens a piano keyboard that can be used to create notes." +#: js/utils/musicutils.js:1559 +#: js/utils/musicutils.js:1571 +#.TRANS: Pythagorean (3-limite EJ) +msgid "Pythagorean (3-limit JI)" msgstr "" -#: js/WidgetBlocks.js:910 -#.TRANS: La Herramienta escalera de tono se utiliza para generar tonos a partir de una relación dada. -msgid "The Pitch staircase tool to is used to generate pitches from a given ratio." +#: js/utils/musicutils.js:1560 +#: js/utils/musicutils.js:1561 +#: js/utils/musicutils.js:1572 +#: js/utils/musicutils.js:1573 +#.TRANS: +msgid "Meantone" msgstr "" -#: js/WidgetBlocks.js:917 -#.TRANS: generate a progressive sequence of pitches -#.TRANS: escalera de tono -msgid "pitch staircase" -msgstr "jupiguejyha pu" +#: js/utils/musicutils.js:1574 +#.TRANS: Personalizado +msgid "Custom" +msgstr "Mboavarekoha" -#: js/WidgetBlocks.js:982 -#.TRANS: El bloque Hacer un ritmo abre una herramienta para crear cajas de ritmos. -msgid "The Rhythm Maker block opens a tool to create drum machines." +#: js/utils/musicutils.js:5387 +#: js/utils/musicutils.js:5430 +#.TRANS: actuales +msgid "current" +msgstr "ko’ãga" + +#: js/utils/musicutils.js:5390 +#: js/utils/musicutils.js:5421 +#.TRANS: próximo +msgid "next" +msgstr "tenondegua" + +#: js/utils/musicutils.js:5393 +#: js/utils/musicutils.js:5426 +#.TRANS: anterior +msgid "previous" +msgstr "mboyvegua" + +#: js/utils/synthutils.js:120 +#.TRANS: simple monotone synthesizer +#.TRANS: simple-2 +msgid "simple-2" msgstr "" -#: js/WidgetBlocks.js:1036 -#.TRANS: escala mayor G -msgid "G major scale" +#: js/utils/synthutils.js:122 +#.TRANS: simple monotone synthesizer +#.TRANS: simple-3 +msgid "simple-3" msgstr "" -#: js/WidgetBlocks.js:1064 -#.TRANS: escala mayor C -msgid "C major scale" +#: js/utils/synthutils.js:124 +#.TRANS: simple monotone synthesizer +#.TRANS: simple-4 +msgid "simple-4" msgstr "" -#: js/WidgetBlocks.js:1097 -#.TRANS: El bloque Matriz de tono y tiempo abre una herramienta para crear frases musicales. -msgid "The Phrase Maker block opens a tool to create musical phrases." +#: js/utils/synthutils.js:162 +#.TRANS: musical instrument +#.TRANS: taiko +msgid "taiko" msgstr "" -#: js/WidgetBlocks.js:1104 -#.TRANS: assigns pitch to a sequence of beats to generate a melody -#.TRANS: matriz de tono en tiempo -msgid "phrase maker" +#: js/blocks/ActionBlocks.js:58 +#.TRANS: El bloque Volver (Return) devolverá un valor de una acción. +msgid "The Return block will return a value from an action." msgstr "" -#: js/WidgetBlocks.js:1168 -#.TRANS: Debe tener al menos un bloque de tono y un bloque de ritmo en la matriz. -msgid "You must have at least one pitch block and one rhythm block in the matrix." -msgstr "Oreko vaerã mbovyetéramo peteĩ vore ipuva ha peteĩ vore orekova rítmo moñepyrũmbyguape" +#: js/blocks/ActionBlocks.js:75 +#.TRANS: retorno +msgid "return" +msgstr "oú jevy" -#: js/WidgetBlocks.js:1220 -#.TRANS: El bloque Estado abre una herramienta para inspeccionar el estado de Bloques de Música mientras se ejecuta. -msgid "The Status block opens a tool for inspecting the status of Music Blocks as it is running." +#: js/blocks/ActionBlocks.js:128 +#.TRANS: El bloque Volver a URL devolverá un valor a una página web. +msgid "The Return to URL block will return a value to a webpage." msgstr "" -#: js/IntervalsBlocks.js:45 -#.TRANS: fijar temperamento -msgid "set temperament" +#: js/blocks/ActionBlocks.js:145 +#.TRANS: retorno a URL +msgid "return to URL" +msgstr "oú jevy URL pe" + +#: js/blocks/ActionBlocks.js:233 +#: js/blocks/ActionBlocks.js:290 +#: js/blocks/ActionBlocks.js:501 +#: js/blocks/ActionBlocks.js:688 +#.TRANS: El bloque Calcular devuelve un valor calculado por una acción. +msgid "The Calculate block returns a value calculated by an action." msgstr "" -#: js/IntervalsBlocks.js:63 -#: js/MediaBlocks.js:746 -#: js/PitchBlocks.js:657 -#: js/PitchBlocks.js:933 -#: js/PitchBlocks.js:972 -#: js/PitchBlocks.js:1005 -#: js/PitchBlocks.js:1166 -#: js/PitchBlocks.js:1679 -#: js/PitchBlocks.js:1720 -#: js/PitchBlocks.js:1827 -#: js/ToneBlocks.js:1025 -#.TRANS: adjusts the shift up or down by one octave (twelve half-steps in the interval between two notes, one having twice or half the frequency in Hz of the other.) -#.TRANS: octava -msgid "octave" -msgstr "Octava" +#: js/blocks/ActionBlocks.js:251 +#: js/blocks/ActionBlocks.js:517 +#: js/blocks/ActionBlocks.js:707 +#.TRANS: calcular +msgid "calculate" +msgstr "papa" -#: js/IntervalsBlocks.js:99 -#.TRANS: El bloque Nombre Temperamento se utiliza para seleccionar un método de ajuste. -msgid "The Temperament name block is used to select a tuning method." +#: js/blocks/ActionBlocks.js:376 +#: js/blocks/ActionBlocks.js:593 +#: js/blocks/ActionBlocks.js:942 +#: js/blocks/ActionBlocks.js:1389 +#.TRANS: do is the do something or take an action. +#.TRANS: El bloque Hacer se utiliza para iniciar una acción. +msgid "The Do block is used to initiate an action." msgstr "" -#: js/IntervalsBlocks.js:161 -#.TRANS: doble -msgid "doubly" +#: js/blocks/ActionBlocks.js:390 +#: js/blocks/ActionBlocks.js:610 +#: js/blocks/ActionBlocks.js:959 +#: js/blocks/ActionBlocks.js:1048 +#: js/blocks/MeterBlocks.js:769 +#.TRANS: do +msgid "do1" msgstr "" -#: js/IntervalsBlocks.js:166 -#.TRANS: El bloque doble duplicará el tamaño de un intervalo. -msgid "The Doubly block will double the size of an interval." +#: js/blocks/ActionBlocks.js:390 +#: js/blocks/ActionBlocks.js:610 +#: js/blocks/ActionBlocks.js:959 +#: js/blocks/ActionBlocks.js:1048 +#: js/blocks/FlowBlocks.js:742 +#: js/blocks/FlowBlocks.js:822 +#: js/blocks/MeterBlocks.js:769 +#.TRANS: hacer +msgid "do" +msgstr "japo" + +#: js/blocks/ActionBlocks.js:791 +#: js/blocks/ActionBlocks.js:865 +#.TRANS: El bloque Arg contiene el valor de un argumento pasado a una acción. +msgid "The Arg block contains the value of an argument passed to an action." msgstr "" -#: js/IntervalsBlocks.js:262 -#.TRANS: número de intervalo -msgid "interval number" +#: js/blocks/ActionBlocks.js:806 +#: js/blocks/ActionBlocks.js:878 +#.TRANS: arg +msgid "arg" msgstr "" -#: js/IntervalsBlocks.js:330 -#.TRANS: measure the distance between two pitches in semi-tones -#.TRANS: medida de intervalo semitono -msgid "semi-tone interval measure" +#: js/blocks/ActionBlocks.js:836 +#: js/blocks/ActionBlocks.js:900 +#: js/blocks/ActionBlocks.js:908 +#.TRANS: argumento no válido +msgid "Invalid argument" msgstr "" -#: js/IntervalsBlocks.js:397 -#: js/IntervalsBlocks.js:513 -#.TRANS: Debe usar dos bloques de tono cuando mida un intervalo. -msgid "You must use two pitch blocks when measuring an interval." +#: js/blocks/ActionBlocks.js:944 +#.TRANS: En el ejemplo, se usa con el bloque Uno para elegir una fase aleatoria. +msgid "In the example, it is used with the One of block to choose a random phase." msgstr "" -#: js/IntervalsBlocks.js:439 -#.TRANS: El bloque Intervalo escalar mide la distancia entre dos notas en la clave y el modo actuales. -msgid "The Scalar interval block measures the distance between two notes in the current key and mode." +#: js/blocks/ActionBlocks.js:1019 +#: js/blocks/ActionBlocks.js:1026 +#.TRANS: El bloque de escucha se usa para escuchar un evento como un clic del ratón. +msgid "The Listen block is used to listen for an event such as a mouse click." msgstr "" -#: js/IntervalsBlocks.js:445 -#.TRANS: measure the distance between two pitches in steps of musical scale -#.TRANS: medida de intervalo escalar -msgid "scalar interval measure" +#: js/blocks/ActionBlocks.js:1028 +#.TRANS: Cuando ocurre el evento, se realiza una acción. +msgid "When the event happens, an action is taken." msgstr "" -#: js/IntervalsBlocks.js:592 -#: js/musicutils.js:637 -#: js/musicutils.js:908 -#.TRANS: perfect is a music term related to intervals -#.TRANS: perfecto -msgid "perfect" -msgstr "porã jepéva" +#: js/blocks/ActionBlocks.js:1045 +#.TRANS: cuando +msgid "on" +msgstr "araka’e" -#: js/IntervalsBlocks.js:621 -#.TRANS: En la figura, agregamos sol# a sol. -msgid "In the figure, we add sol# to sol." -msgstr "" +#: js/blocks/ActionBlocks.js:1048 +#: js/blocks/ActionBlocks.js:1049 +#: js/blocks/ActionBlocks.js:1153 +#.TRANS: señal +msgid "event" +msgstr "señal" -#: js/IntervalsBlocks.js:627 -#: js/OrnamentBlocks.js:220 -#.TRANS: calculate a relative step between notes based on semi-tones -#.TRANS: intervalo semitono -msgid "semi-tone interval" +#: js/blocks/ActionBlocks.js:1133 +#.TRANS: El bloque Emitir se utiliza para desencadenar un evento. +msgid "The Broadcast block is used to trigger an event." msgstr "" -#: js/IntervalsBlocks.js:676 -#.TRANS: La salida del ejemplo es: do, mi, sol, sol, ti, mi -msgid "The output of the example is: do, mi, sol, sol, ti, mi" -msgstr "" +#: js/blocks/ActionBlocks.js:1151 +#.TRANS: emitir +msgid "broadcast" +msgstr "ome’ẽ" -#: js/IntervalsBlocks.js:735 -#.TRANS: -msgid "The Chord block calculates common chords." +#: js/blocks/ActionBlocks.js:1208 +#.TRANS: Cada bloque de inicio es una voz separada. +msgid "Each Start block is a separate voice." msgstr "" -#: js/IntervalsBlocks.js:737 -#.TRANS: -msgid "In the figure, we generate a C-major chord." +#: js/blocks/ActionBlocks.js:1304 +#.TRANS: A menudo se utiliza para almacenar una frase de música que se repite. +msgid "It is often used for storing a phrase of music that is repeated." msgstr "" -#: js/IntervalsBlocks.js:742 -#.TRANS: acorde -msgid "chord" +#: js/blocks/ActionBlocks.js:1495 +#.TRANS: definir el temperamento +msgid "define temperament" msgstr "" -#: js/IntervalsBlocks.js:794 -#.TRANS: El bloque intervalo de razón calcula un intervalo basado en una razón" -msgid "The Ratio Interval block calculates an interval based on a ratio." +#: js/blocks/BooleanBlocks.js:44 +#.TRANS: El bloque No es el operador lógico no. +msgid "The Not block is the logical not operator." msgstr "" -#: js/IntervalsBlocks.js:799 -#.TRANS: intervalo de razón -msgid "ratio interval" -msgstr "" +#: js/blocks/BooleanBlocks.js:62 +#.TRANS: no +msgid "not" +msgstr "nahániri" -#: js/IntervalsBlocks.js:868 -#.TRANS: En la figura, sumamos la a sol. -msgid "In the figure, we add la to sol." +#: js/blocks/BooleanBlocks.js:134 +#.TRANS: El bloque Y es el lógico y el operador. +msgid "The And block is the logical and operator." msgstr "" -#: js/IntervalsBlocks.js:924 -#.TRANS: define a custom mode -#.TRANS: definir el modo -msgid "define mode" -msgstr "" +#: js/blocks/BooleanBlocks.js:152 +#.TRANS: y +msgid "and" +msgstr "ha" -#: js/IntervalsBlocks.js:977 -#.TRANS: movible Do -msgid "movable Do" +#: js/blocks/BooleanBlocks.js:218 +#.TRANS: El bloque O es el lógico o el operador. +msgid "The Or block is the logical or operator." msgstr "" -#: js/IntervalsBlocks.js:1028 -#.TRANS: mode length is the number of notes in the mode, e.g., 7 for major and minor scales; 12 for chromatic scales -#.TRANS: longitud de modo -msgid "mode length" -msgstr "" +#: js/blocks/BooleanBlocks.js:236 +#.TRANS: o +msgid "or" +msgstr "o" -#: js/IntervalsBlocks.js:1037 -#.TRANS: El bloque Longitud de modo es el número de notas en la escala actual. -msgid "The Mode length block is the number of notes in the current scale." +#: js/blocks/BooleanBlocks.js:302 +#.TRANS: El bloque XOR es el lógico XOR el operador. +msgid "The XOR block is the logical XOR operator." msgstr "" -#: js/IntervalsBlocks.js:1039 -#.TRANS: La mayoría de las escalas occidentales tienen 7 notas. -msgid "Most Western scales have 7 notes." +#: js/blocks/BooleanBlocks.js:320 +#.TRANS: xor +msgid "xor" msgstr "" -#: js/IntervalsBlocks.js:1088 -#.TRANS: the mode in music is 'major', 'minor', etc. -#.TRANS: modo actual -msgid "current mode" +#: js/blocks/BooleanBlocks.js:808 +#.TRANS: El bloque Igual devuelve verdadero si los dos números son iguales. +msgid "The Equal block returns True if the two numbers are equal." msgstr "" -#: js/IntervalsBlocks.js:1141 -#.TRANS: the key is a group of pitches with which a music composition is created -#.TRANS: clave actual -msgid "current key" +#: js/blocks/BooleanBlocks.js:909 +#.TRANS: El bloque No igual a devuelve Verdadero si los dos números no son iguales entre sí. +msgid "The Not-equal-to block returns True if the two numbers are not equal to each other." msgstr "" -#: js/IntervalsBlocks.js:1193 -#: js/IntervalsBlocks.js:1238 -#.TRANS: set the key and mode, e.g. C Major -#.TRANS: fijar clave -msgid "set key" -msgstr "emoĩ clave" +#: js/blocks/BooleanBlocks.js:1008 +#.TRANS: El bloque Booleano se utiliza para especificar verdadero o falso. +msgid "The Boolean block is used to specify true or false." +msgstr "" -#: js/IntervalsBlocks.js:1247 -#: js/IntervalsBlocks.js:1253 -#.TRANS: El bloque Fijar tecla se usa para configurar la tecla y el modo, -msgid "The Set key block is used to set the key and mode," +#: js/blocks/BoxesBlocks.js:53 +#: js/blocks/BoxesBlocks.js:59 +#.TRANS: El bloque Agregar a se usa para agregar al valor almacenado en un cuadro. +msgid "The Add-to block is used to add to the value stored in a box." msgstr "" -#: js/IntervalsBlocks.js:1253 -#.TRANS: por ejemplo, C Mayor -msgid "eg C Major" +#: js/blocks/BoxesBlocks.js:61 +#.TRANS: También se puede utilizar con otros bloques, como el color, el tamaño de la pluma. +msgid "It can also be used with other blocks such as Color and Pen size." msgstr "" -#: js/IntervalsBlocks.js:1266 -#: js/DictBlocks.js:215 -#: js/DictBlocks.js:216 -#: js/DictBlocks.js:289 -#: js/DictBlocks.js:290 -#: js/DictBlocks.js:357 -#: js/DictBlocks.js:430 -#: js/DictBlocks.js:431 -#.TRANS: key, e.g., C in C Major -#.TRANS: clave -msgid "key" -msgstr "clave" +#: js/blocks/BoxesBlocks.js:73 +#.TRANS: sumar +msgid "add" +msgstr "embojo’a" -#: js/ActionBlocks.js:58 -#.TRANS: El bloque Volver (Return) devolverá un valor de una acción. -msgid "The Return block will return a value from an action." +#: js/blocks/BoxesBlocks.js:75 +#: js/widgets/temperament.js:857 +#.TRANS: para +msgid "to" +msgstr "guarã" + +#: js/blocks/BoxesBlocks.js:75 +#: js/blocks/BoxesBlocks.js:595 +#: js/blocks/HeapBlocks.js:544 +#.TRANS: valor +msgid "value1" msgstr "" -#: js/ActionBlocks.js:75 -#.TRANS: retorno -msgid "return" -msgstr "oú jevy" +#: js/blocks/BoxesBlocks.js:118 +#.TRANS: Bloque no soporta incremento. +msgid "Block does not support incrementing." +msgstr "Vore ndikatui tuicha" -#: js/ActionBlocks.js:128 -#.TRANS: El bloque Volver a URL devolverá un valor a una página web. -msgid "The Return to URL block will return a value to a webpage." +#: js/blocks/BoxesBlocks.js:152 +#.TRANS: El bloque Sumar-1-a agrega uno al valor almacenado en un cuadro. +msgid "The Add-1-to block adds one to the value stored in a box." msgstr "" -#: js/ActionBlocks.js:145 -#.TRANS: retorno a URL -msgid "return to URL" -msgstr "oú jevy URL pe" +#: js/blocks/BoxesBlocks.js:163 +#.TRANS: sumar 1 a +msgid "add 1 to" +msgstr "embojo’a peteĩ " -#: js/ActionBlocks.js:233 -#: js/ActionBlocks.js:290 -#: js/ActionBlocks.js:501 -#: js/ActionBlocks.js:688 -#.TRANS: El bloque Calcular devuelve un valor calculado por una acción. -msgid "The Calculate block returns a value calculated by an action." +#: js/blocks/BoxesBlocks.js:211 +#.TRANS: El bloque restar-1-de resta uno al valor almacenado en un cuadro. +msgid "The Subtract-1-from block subtracts one from the value stored in a box." msgstr "" -#: js/ActionBlocks.js:251 -#: js/ActionBlocks.js:517 -#: js/ActionBlocks.js:707 -#.TRANS: calcular -msgid "calculate" -msgstr "papa" +#: js/blocks/BoxesBlocks.js:222 +#.TRANS: restar 1 de +msgid "subtract 1 from" +msgstr "" -#: js/ActionBlocks.js:376 -#: js/ActionBlocks.js:593 -#: js/ActionBlocks.js:942 -#: js/ActionBlocks.js:1389 -#.TRANS: do is the do something or take an action. -#.TRANS: El bloque Hacer se utiliza para iniciar una acción. -msgid "The Do block is used to initiate an action." +#: js/blocks/BoxesBlocks.js:270 +#: js/blocks/BoxesBlocks.js:387 +#.TRANS: El bloque Caja devuelve el valor almacenado en una caja . +msgid "The Box block returns the value stored in a box." msgstr "" -#: js/ActionBlocks.js:390 -#: js/ActionBlocks.js:610 -#: js/ActionBlocks.js:959 -#: js/ActionBlocks.js:1048 -#: js/MeterBlocks.js:769 -#.TRANS: do -msgid "do1" +#: js/blocks/BoxesBlocks.js:500 +#: js/blocks/BoxesBlocks.js:576 +#.TRANS: El bloque Guardar en caja se utiliza para almacenar un valor en una caja. +msgid "The Store in block will store a value in a box." msgstr "" -#: js/ActionBlocks.js:390 -#: js/ActionBlocks.js:610 -#: js/ActionBlocks.js:959 -#: js/ActionBlocks.js:1048 -#: js/FlowBlocks.js:742 -#: js/FlowBlocks.js:822 -#: js/MeterBlocks.js:769 -#.TRANS: hacer -msgid "do" -msgstr "japo" +#: js/blocks/BoxesBlocks.js:595 +#: js/blocks/EnsembleBlocks.js:391 +#: js/blocks/EnsembleBlocks.js:402 +#.TRANS: nombre +msgid "name1" +msgstr "" -#: js/ActionBlocks.js:791 -#: js/ActionBlocks.js:865 -#.TRANS: El bloque Arg contiene el valor de un argumento pasado a una acción. -msgid "The Arg block contains the value of an argument passed to an action." +#: js/blocks/BoxesBlocks.js:652 +#.TRANS: El bloque Caja 2 devuelve el valor almacenado en caja 2. +msgid "The Box2 block returns the value stored in Box2." msgstr "" -#: js/ActionBlocks.js:806 -#: js/ActionBlocks.js:878 -#.TRANS: arg -msgid "arg" +#: js/blocks/BoxesBlocks.js:703 +#.TRANS: El bloque Guardar en caja2 se utiliza para almacenar un valor en caja2. +msgid "The Store in Box2 block is used to store a value in Box2." msgstr "" -#: js/ActionBlocks.js:836 -#: js/ActionBlocks.js:900 -#: js/ActionBlocks.js:908 -#.TRANS: argumento no válido -msgid "Invalid argument" +#: js/blocks/BoxesBlocks.js:715 +#.TRANS: guardar en caja 2 +msgid "store in box2" msgstr "" -#: js/ActionBlocks.js:944 -msgid "In the example, it is used with the One of block to choose a random phase." +#: js/blocks/BoxesBlocks.js:761 +#.TRANS: El bloque Caja 1 devuelve el valor almacenado en caja 1. +msgid "The Box1 block returns the value stored in Box1." msgstr "" -#: js/ActionBlocks.js:1019 -#: js/ActionBlocks.js:1026 -#.TRANS: El bloque de escucha se usa para escuchar un evento como un clic del ratón. -msgid "The Listen block is used to listen for an event such as a mouse click." +#: js/blocks/BoxesBlocks.js:812 +#.TRANS: El bloque Guardar en caja1 se utiliza para almacenar un valor en caja1. +msgid "The Store in Box1 block is used to store a value in Box1." msgstr "" -#: js/ActionBlocks.js:1028 -#.TRANS: Cuando ocurre el evento, se realiza una acción. -msgid "When the event happens, an action is taken." +#: js/blocks/BoxesBlocks.js:826 +#.TRANS: guardar en caja 1 +msgid "store in box1" msgstr "" -#: js/ActionBlocks.js:1045 -#.TRANS: cuando -msgid "on" -msgstr "araka’e" +#: js/blocks/DictBlocks.js:77 +#.TRANS: mostrar diccionario +msgid "show dictionary" +msgstr "" -#: js/ActionBlocks.js:1048 -#: js/ActionBlocks.js:1049 -#: js/ActionBlocks.js:1153 -#.TRANS: señal -msgid "event" -msgstr "señal" +#: js/blocks/DictBlocks.js:80 +#: js/blocks/DictBlocks.js:145 +#: js/blocks/DictBlocks.js:216 +#: js/blocks/DictBlocks.js:290 +#: js/blocks/ProgramBlocks.js:396 +#: js/blocks/ProgramBlocks.js:501 +#: js/blocks/ProgramBlocks.js:664 +#.TRANS: mi diccionario +msgid "My Dictionary" +msgstr "" -#: js/ActionBlocks.js:1133 -#.TRANS: El bloque Emitir se utiliza para desencadenar un evento. -msgid "The Broadcast block is used to trigger an event." +#: js/blocks/DictBlocks.js:129 +#.TRANS: El bloque Diccionario devuelve un diccionario. +msgid "The Dictionary block returns a dictionary." msgstr "" -#: js/ActionBlocks.js:1151 -#.TRANS: emitir -msgid "broadcast" -msgstr "ome’ẽ" +#: js/blocks/DictBlocks.js:197 +#: js/blocks/DictBlocks.js:339 +#.TRANS: El bloque obtener-valor devuelve un valor en el diccionario para una clave especificada. +msgid "The Get-dict block returns a value in the dictionary for a specified key." +msgstr "" -#: js/ActionBlocks.js:1208 -#.TRANS: Cada bloque de inicio es una voz separada. -msgid "Each Start block is a separate voice." +#: js/blocks/DictBlocks.js:212 +#: js/blocks/DictBlocks.js:354 +#.TRANS: retrieve a value from the dictionary with a given key +#.TRANS: obtener valor +msgid "get value" msgstr "" -#: js/ActionBlocks.js:1304 -#.TRANS: A menudo se utiliza para almacenar una frase de música que se repite. -msgid "It is often used for storing a phrase of music that is repeated." +#: js/blocks/DictBlocks.js:215 +#: js/blocks/DictBlocks.js:216 +#: js/blocks/DictBlocks.js:289 +#: js/blocks/DictBlocks.js:290 +#: js/blocks/DictBlocks.js:357 +#: js/blocks/DictBlocks.js:430 +#: js/blocks/DictBlocks.js:431 +#.TRANS: clave +msgid "key2" msgstr "" -#: js/ActionBlocks.js:1495 -#.TRANS: definir el temperamento -msgid "define temperament" +#: js/blocks/DictBlocks.js:215 +#: js/blocks/DictBlocks.js:216 +#: js/blocks/DictBlocks.js:289 +#: js/blocks/DictBlocks.js:290 +#: js/blocks/DictBlocks.js:357 +#: js/blocks/DictBlocks.js:430 +#: js/blocks/DictBlocks.js:431 +#: js/blocks/IntervalsBlocks.js:1462 +#.TRANS: key, e.g., C in C Major +#.TRANS: clave +msgid "key" +msgstr "clave" + +#: js/blocks/DictBlocks.js:271 +#: js/blocks/DictBlocks.js:411 +#.TRANS: El bloque valor-adjusto establece un valor en el diccionario para una clave específica. +msgid "The Set-dict block sets a value in the dictionary for a specified key." +msgstr "" + +#: js/blocks/DictBlocks.js:286 +#: js/blocks/DictBlocks.js:427 +#.TRANS: set a value in the dictionary for a given key +#.TRANS: valor ajustado +msgid "set value" msgstr "" -#: js/EnsembleBlocks.js:66 +#: js/blocks/EnsembleBlocks.js:66 #.TRANS: valor en la pila de ratón msgid "mouse index heap" msgstr "" -#: js/EnsembleBlocks.js:68 +#: js/blocks/EnsembleBlocks.js:68 #.TRANS: El bloque de valor en la pila de ratón devuelve un valor en el almacenamiento dinámico en una ubicación específica para un mouse específico. msgid "The Mouse index heap block returns a value in the heap at a specified location for a specified mouse." msgstr "" -#: js/EnsembleBlocks.js:77 -#: js/EnsembleBlocks.js:1080 +#: js/blocks/EnsembleBlocks.js:77 +#: js/blocks/EnsembleBlocks.js:1080 #.TRANS: renombrar ratón msgid "mouse name" msgstr "embohéra anguja" -#: js/EnsembleBlocks.js:77 -#: js/EnsembleBlocks.js:92 -#: js/HeapBlocks.js:544 +#: js/blocks/EnsembleBlocks.js:77 +#: js/blocks/EnsembleBlocks.js:92 +#: js/blocks/HeapBlocks.js:544 #.TRANS: value1 is a numeric value (JAPANESE ONLY) #.TRANS: posición en la pila msgid "index" msgstr "henda aty pe" -#: js/EnsembleBlocks.js:80 +#: js/blocks/EnsembleBlocks.js:80 #.TRANS: valor en la pila de tortuga msgid "turtle index heap" msgstr "" -#: js/EnsembleBlocks.js:82 +#: js/blocks/EnsembleBlocks.js:82 #.TRANS: El bloque de valor en la pila de tortuga devuelve un valor en el almacenamiento dinámico en una ubicación específica para un mouse específico. msgid "The Turtle index heap block returns a value in the heap at a specified location for a specified turtle." msgstr "" -#: js/EnsembleBlocks.js:90 -#: js/EnsembleBlocks.js:167 -#: js/EnsembleBlocks.js:230 -#: js/EnsembleBlocks.js:316 -#: js/EnsembleBlocks.js:362 -#: js/EnsembleBlocks.js:400 -#: js/EnsembleBlocks.js:454 -#: js/EnsembleBlocks.js:504 -#: js/EnsembleBlocks.js:550 -#: js/EnsembleBlocks.js:597 -#: js/EnsembleBlocks.js:651 -#: js/EnsembleBlocks.js:763 -#: js/EnsembleBlocks.js:854 -#: js/EnsembleBlocks.js:915 -#: js/EnsembleBlocks.js:955 -#: js/EnsembleBlocks.js:1219 -#: js/EnsembleBlocks.js:1293 +#: js/blocks/EnsembleBlocks.js:90 +#: js/blocks/EnsembleBlocks.js:167 +#: js/blocks/EnsembleBlocks.js:230 +#: js/blocks/EnsembleBlocks.js:316 +#: js/blocks/EnsembleBlocks.js:362 +#: js/blocks/EnsembleBlocks.js:400 +#: js/blocks/EnsembleBlocks.js:454 +#: js/blocks/EnsembleBlocks.js:504 +#: js/blocks/EnsembleBlocks.js:550 +#: js/blocks/EnsembleBlocks.js:597 +#: js/blocks/EnsembleBlocks.js:651 +#: js/blocks/EnsembleBlocks.js:763 +#: js/blocks/EnsembleBlocks.js:854 +#: js/blocks/EnsembleBlocks.js:915 +#: js/blocks/EnsembleBlocks.js:955 +#: js/blocks/EnsembleBlocks.js:1219 +#: js/blocks/EnsembleBlocks.js:1293 #.TRANS: Yertle is the name of a turtle. #.TRANS: msgid "Yertle" msgstr "" -#: js/EnsembleBlocks.js:92 -#: js/EnsembleBlocks.js:1089 +#: js/blocks/EnsembleBlocks.js:92 +#: js/blocks/EnsembleBlocks.js:1089 #.TRANS: renombrar tortuga msgid "turtle name" msgstr "karumbe mbohéra" -#: js/EnsembleBlocks.js:122 -#: js/EnsembleBlocks.js:1197 -#: js/HeapBlocks.js:474 -#: js/HeapBlocks.js:572 +#: js/blocks/EnsembleBlocks.js:122 +#: js/blocks/EnsembleBlocks.js:1197 +#: js/blocks/HeapBlocks.js:474 +#: js/blocks/HeapBlocks.js:572 #.TRANS: El índice debe ser > 0. msgid "Index must be > 0." msgstr "Rysýi tuichave vaerã mba’evegui" -#: js/EnsembleBlocks.js:127 -#: js/HeapBlocks.js:479 -#: js/HeapBlocks.js:577 +#: js/blocks/EnsembleBlocks.js:127 +#: js/blocks/HeapBlocks.js:479 +#: js/blocks/HeapBlocks.js:577 #.TRANS: El tamaño máximo de pilas es 1000. msgid "Maximum heap size is 1000." msgstr "" -#: js/EnsembleBlocks.js:145 +#: js/blocks/EnsembleBlocks.js:145 #.TRANS: parar ratón msgid "stop mouse" msgstr "ejoko anguja" -#: js/EnsembleBlocks.js:147 +#: js/blocks/EnsembleBlocks.js:147 #.TRANS: El bloque parar ratón parar el ratón especificado. msgid "The Stop mouse block stops the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:158 +#: js/blocks/EnsembleBlocks.js:158 #.TRANS: detener tortuga msgid "stop turtle" msgstr "ejoko karumbe" -#: js/EnsembleBlocks.js:160 +#: js/blocks/EnsembleBlocks.js:160 #.TRANS: El bloque parar tortuga parar el ratón especificado. msgid "The Stop turtle block stops the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:184 -#: js/EnsembleBlocks.js:247 -#: js/EnsembleBlocks.js:413 -#: js/EnsembleBlocks.js:468 -#: js/EnsembleBlocks.js:706 -#: js/EnsembleBlocks.js:808 -#: js/EnsembleBlocks.js:870 -#: js/EnsembleBlocks.js:1190 -#: js/EnsembleBlocks.js:1253 +#: js/blocks/EnsembleBlocks.js:184 +#: js/blocks/EnsembleBlocks.js:247 +#: js/blocks/EnsembleBlocks.js:413 +#: js/blocks/EnsembleBlocks.js:468 +#: js/blocks/EnsembleBlocks.js:706 +#: js/blocks/EnsembleBlocks.js:808 +#: js/blocks/EnsembleBlocks.js:870 +#: js/blocks/EnsembleBlocks.js:1190 +#: js/blocks/EnsembleBlocks.js:1253 #.TRANS: No se puede encontrar ratón msgid "Cannot find mouse" msgstr "" -#: js/EnsembleBlocks.js:186 -#: js/EnsembleBlocks.js:249 -#: js/EnsembleBlocks.js:415 -#: js/EnsembleBlocks.js:470 -#: js/EnsembleBlocks.js:708 -#: js/EnsembleBlocks.js:810 -#: js/EnsembleBlocks.js:872 -#: js/EnsembleBlocks.js:1192 -#: js/EnsembleBlocks.js:1255 +#: js/blocks/EnsembleBlocks.js:186 +#: js/blocks/EnsembleBlocks.js:249 +#: js/blocks/EnsembleBlocks.js:415 +#: js/blocks/EnsembleBlocks.js:470 +#: js/blocks/EnsembleBlocks.js:708 +#: js/blocks/EnsembleBlocks.js:810 +#: js/blocks/EnsembleBlocks.js:872 +#: js/blocks/EnsembleBlocks.js:1192 +#: js/blocks/EnsembleBlocks.js:1255 #.TRANS: No se puede encontrar tortuga. msgid "Cannot find turtle" msgstr "" -#: js/EnsembleBlocks.js:206 +#: js/blocks/EnsembleBlocks.js:206 #.TRANS: comenzar ratón msgid "start mouse" msgstr "ñepyrũ anguja" -#: js/EnsembleBlocks.js:209 +#: js/blocks/EnsembleBlocks.js:209 #.TRANS: El bloque comenzar ratón inicia el ratón especificado. msgid "The Start mouse block starts the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:220 +#: js/blocks/EnsembleBlocks.js:220 #.TRANS: iniciar tortuga msgid "start turtle" msgstr "ñepỹru karumbe" -#: js/EnsembleBlocks.js:223 +#: js/blocks/EnsembleBlocks.js:223 #.TRANS: El bloque comenzar tortuga inicia el ratón especificado. msgid "The Start turtle block starts the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:256 +#: js/blocks/EnsembleBlocks.js:256 #.TRANS: Ratón ya ha comenzado. msgid "Mouse is already running." msgstr "" -#: js/EnsembleBlocks.js:258 +#: js/blocks/EnsembleBlocks.js:258 #.TRANS: Tortuga ya ha comenzado. msgid "Turtle is already running." msgstr "" -#: js/EnsembleBlocks.js:282 +#: js/blocks/EnsembleBlocks.js:282 #.TRANS: No se puede encontrar el bloque de inicar. msgid "Cannot find start block" msgstr "" -#: js/EnsembleBlocks.js:292 +#: js/blocks/EnsembleBlocks.js:292 #.TRANS: pen color for this mouse #.TRANS: color de ratón msgid "mouse color" msgstr "" -#: js/EnsembleBlocks.js:294 +#: js/blocks/EnsembleBlocks.js:294 #.TRANS: El bloque de color del ratón devuelve el color del lápiz del ratón especificado. msgid "The Mouse color block returns the pen color of the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:306 +#: js/blocks/EnsembleBlocks.js:306 #.TRANS: pen color for this turtle #.TRANS: color de tortuga msgid "turtle color" msgstr "" -#: js/EnsembleBlocks.js:308 +#: js/blocks/EnsembleBlocks.js:308 #.TRANS: El bloque de color de la tortuga devuelve el color del lápiz de la tortuga especificado. msgid "The Turtle color block returns the pen color of the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:338 +#: js/blocks/EnsembleBlocks.js:338 #.TRANS: heading (compass direction) for this mouse #.TRANS: rumbo de ratón msgid "mouse heading" msgstr "" -#: js/EnsembleBlocks.js:340 +#: js/blocks/EnsembleBlocks.js:340 #.TRANS: El bloque de rumbo del ratón devuelve el rumbo del lápiz del ratón especificado. msgid "The Mouse heading block returns the heading of the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:352 +#: js/blocks/EnsembleBlocks.js:352 #.TRANS: heading (compass direction) for this turtle #.TRANS: rumbo de tortuga msgid "turtle heading" msgstr "" -#: js/EnsembleBlocks.js:354 +#: js/blocks/EnsembleBlocks.js:354 #.TRANS: El bloque de rumbo de la tortuga devuelve el rumbo del lápiz de la tortuga especificado. msgid "The Turtle heading block returns the heading of the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:384 -#: js/EnsembleBlocks.js:439 +#: js/blocks/EnsembleBlocks.js:384 +#: js/blocks/EnsembleBlocks.js:439 #.TRANS: set xy position for this mouse #.TRANS: fijar ratón msgid "set mouse" msgstr "" -#: js/EnsembleBlocks.js:391 -#: js/EnsembleBlocks.js:402 -#: js/BoxesBlocks.js:595 -#.TRANS: nombre -msgid "name1" -msgstr "" - -#: js/EnsembleBlocks.js:391 -#: js/EnsembleBlocks.js:402 -#: js/ProgramBlocks.js:881 -#: js/GraphicsBlocks.js:235 -#: js/GraphicsBlocks.js:313 -#: js/GraphicsBlocks.js:436 -#: js/GraphicsBlocks.js:487 -#: js/GraphicsBlocks.js:534 -#: js/GraphicsBlocks.js:750 +#: js/blocks/EnsembleBlocks.js:391 +#: js/blocks/EnsembleBlocks.js:402 +#: js/blocks/GraphicsBlocks.js:235 +#: js/blocks/GraphicsBlocks.js:313 +#: js/blocks/GraphicsBlocks.js:436 +#: js/blocks/GraphicsBlocks.js:487 +#: js/blocks/GraphicsBlocks.js:534 +#: js/blocks/GraphicsBlocks.js:750 +#: js/blocks/ProgramBlocks.js:881 #.TRANS: x msgid "x" msgstr "x" -#: js/EnsembleBlocks.js:391 -#: js/EnsembleBlocks.js:402 -#: js/ProgramBlocks.js:881 -#: js/GraphicsBlocks.js:149 -#: js/GraphicsBlocks.js:313 -#: js/GraphicsBlocks.js:436 -#: js/GraphicsBlocks.js:487 -#: js/GraphicsBlocks.js:534 -#: js/GraphicsBlocks.js:750 +#: js/blocks/EnsembleBlocks.js:391 +#: js/blocks/EnsembleBlocks.js:402 +#: js/blocks/GraphicsBlocks.js:149 +#: js/blocks/GraphicsBlocks.js:313 +#: js/blocks/GraphicsBlocks.js:436 +#: js/blocks/GraphicsBlocks.js:487 +#: js/blocks/GraphicsBlocks.js:534 +#: js/blocks/GraphicsBlocks.js:750 +#: js/blocks/ProgramBlocks.js:881 #.TRANS: y msgid "y" msgstr "y" -#: js/EnsembleBlocks.js:395 -#: js/EnsembleBlocks.js:452 +#: js/blocks/EnsembleBlocks.js:395 +#: js/blocks/EnsembleBlocks.js:452 #.TRANS: set xy position for this turtle #.TRANS: fijar tortuga msgid "set turtle" msgstr "" -#: js/EnsembleBlocks.js:433 +#: js/blocks/EnsembleBlocks.js:433 #.TRANS: El bloque de ratón establecer envía una pila de bloques para que los ejecute el ratón especificado. msgid "The Set mouse block sends a stack of blocks to be run by the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:446 +#: js/blocks/EnsembleBlocks.js:446 #.TRANS: El bloque de tortuga establecer envía una pila de bloques para que los ejecute el tortuga especificado. msgid "The Set turtle block sends a stack of blocks to be run by the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:480 +#: js/blocks/EnsembleBlocks.js:480 #.TRANS: y position for this mouse #.TRANS: ratón y msgid "mouse y" msgstr "anguja y" -#: js/EnsembleBlocks.js:482 +#: js/blocks/EnsembleBlocks.js:482 #.TRANS: El bloque del ratón Y devuelve la posición Y del ratón especificado. msgid "The Y mouse block returns the Y position of the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:494 +#: js/blocks/EnsembleBlocks.js:494 #.TRANS: y position for this turtle #.TRANS: tortuga y msgid "turtle y" msgstr "karumbe y" -#: js/EnsembleBlocks.js:496 +#: js/blocks/EnsembleBlocks.js:496 #.TRANS: El bloque de la tortuga Y devuelve la posición Y de la tortuga especificado. msgid "The Y turtle block returns the Y position of the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:526 +#: js/blocks/EnsembleBlocks.js:526 #.TRANS: x position for this mouse #.TRANS: ratón x msgid "mouse x" msgstr "anguja x" -#: js/EnsembleBlocks.js:528 +#: js/blocks/EnsembleBlocks.js:528 #.TRANS: El bloque del ratón X devuelve la posición X del ratón especificado. msgid "The X mouse block returns the X position of the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:540 +#: js/blocks/EnsembleBlocks.js:540 #.TRANS: x position for this turtle #.TRANS: tortuga x msgid "turtle x" msgstr "karumbe x" -#: js/EnsembleBlocks.js:542 +#: js/blocks/EnsembleBlocks.js:542 #.TRANS: El bloque de la tortuga X devuelve la posición X de la tortuga especificado. msgid "The X turtle block returns the X position of the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:573 +#: js/blocks/EnsembleBlocks.js:573 #.TRANS: notes played by this mouse #.TRANS: notas jugadas de ratón msgid "mouse notes played" msgstr "" -#: js/EnsembleBlocks.js:575 +#: js/blocks/EnsembleBlocks.js:575 #.TRANS: El bloque de notas jugadas del ratón devuelve el número de notas tocadas por el ratón especificado. msgid "The Mouse elapse notes block returns the number of notes played by the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:587 +#: js/blocks/EnsembleBlocks.js:587 #.TRANS: notes played by this turtle #.TRANS: notas jugadas de tortuga msgid "turtle notes played" msgstr "" -#: js/EnsembleBlocks.js:589 +#: js/blocks/EnsembleBlocks.js:589 #.TRANS: El bloque de notas jugadas de la tortuga devuelve el número de notas tocadas por la tortuga especificado. msgid "The Turtle elapse notes block returns the number of notes played by the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:627 +#: js/blocks/EnsembleBlocks.js:627 #.TRANS: convert current note for this turtle to piano key (1-88) #.TRANS: número de tono de ratón msgid "mouse pitch number" msgstr "Papaha anguja pu" -#: js/EnsembleBlocks.js:629 +#: js/blocks/EnsembleBlocks.js:629 #.TRANS: El bloque de tono del ratón devuelve el número de tono actual que está reproduciendo el ratón especificado. msgid "The Mouse pitch block returns the current pitch number being played by the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:641 +#: js/blocks/EnsembleBlocks.js:641 #.TRANS: convert current note for this turtle to piano key (1-88) #.TRANS: número de tono de tortuga msgid "turtle pitch number" msgstr "karumbre jepoi papaha" -#: js/EnsembleBlocks.js:643 -#.TRANS: El bloque de tono de la tortuga devuelve el número de tono actual que está reproduciendo la tortuga especificado. -msgid "The Turrle pitch block returns the current pitch number being played by the specified turtle." +#: js/blocks/EnsembleBlocks.js:643 +#.TRANS: El bloque de tono de tortuga devuelve el número de tono actual que está tocando la tortuga especificada. +msgid "The Turtle pitch block returns the current pitch number being played by the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:747 -#: js/EnsembleBlocks.js:819 +#: js/blocks/EnsembleBlocks.js:747 +#: js/blocks/EnsembleBlocks.js:819 #.TRANS: note value is the duration of the note played by this mouse #.TRANS: valor de la nota del ratón msgid "mouse note value" msgstr "anguja nota orekóva" -#: js/EnsembleBlocks.js:757 +#: js/blocks/EnsembleBlocks.js:757 #.TRANS: note value is the duration of the note played by this turtle #.TRANS: valor de la nota de la tortuga msgid "turtle note value" msgstr "karumbe nota repy" -#: js/EnsembleBlocks.js:830 +#: js/blocks/EnsembleBlocks.js:830 #.TRANS: sync is short for synchronization #.TRANS: sincronizar msgid "mouse sync" msgstr "" -#: js/EnsembleBlocks.js:832 +#: js/blocks/EnsembleBlocks.js:832 #.TRANS: El bloque sincronizar alinea el conteo de latidos entre ratones. msgid "The Mouse sync block aligns the beat count between mice." msgstr "" -#: js/EnsembleBlocks.js:844 +#: js/blocks/EnsembleBlocks.js:844 #.TRANS: sync is short for synchronization #.TRANS: sincronizar msgid "turtle sync" msgstr "" -#: js/EnsembleBlocks.js:846 -#.TRANS: El bloque sincronizar alinea el conteo de latidos entre tortugas. -msgid "The Turtle sync block aligns the beat count between turtles." -msgstr "" - -#: js/EnsembleBlocks.js:887 -#.TRANS: El bloque de ratón encontrado devolverá verdadero si se puede encontrar el ratón especificado. -msgid "The Found mouse block will return true if the specified mouse can be found." -msgstr "" - -#: js/EnsembleBlocks.js:893 -#.TRANS: encontré el raton -msgid "found mouse" -msgstr "" - -#: js/EnsembleBlocks.js:903 -#.TRANS: El bloque de tortuga encontrado devolverá verdadero si se puede encontrar el tortuga especificado. -msgid "The Found turtle block will return true if the specified turtle can be found." -msgstr "" - -#: js/EnsembleBlocks.js:909 -#.TRANS: encontré la tortuga -msgid "found turtle" -msgstr "" - -#: js/EnsembleBlocks.js:932 -#.TRANS: nuevo ratón -msgid "new mouse" -msgstr "" - -#: js/EnsembleBlocks.js:934 -#.TRANS: El bloque nuevo ratón crea un nuevo ratón. -msgid "The New mouse block will create a new mouse." -msgstr "" - -#: js/EnsembleBlocks.js:945 -#.TRANS: nuevo tortuga -msgid "new turtle" -msgstr "" - -#: js/EnsembleBlocks.js:947 -#.TRANS: El bloque nuevo ratón crea un nuevo tortuga. -msgid "The New turtle block will create a new turtle." -msgstr "" - -#: js/EnsembleBlocks.js:1011 -#.TRANS: fijar color del ratón -msgid "set mouse color" -msgstr "" - -#: js/EnsembleBlocks.js:1014 -#.TRANS: El bloque fijar color del ratón se usa para fijar el color de un ratón. -msgid "The Set-mouse-color block is used to set the color of a mouse." -msgstr "" - -#: js/EnsembleBlocks.js:1020 -#.TRANS: fijar color de la tortuga -msgid "set turtle color" -msgstr "" - -#: js/EnsembleBlocks.js:1023 -#.TRANS: El bloque fijar color de la tortuga se usa para fijar el color de una tortuga. -msgid "The Set-turtle-color block is used to set the color of a turtle." -msgstr "" - -#: js/EnsembleBlocks.js:1083 -#.TRANS: El bloque Nombre del ratón devuelve el nombre de un ratón. -msgid "The Mouse-name block returns the name of a mouse." -msgstr "" - -#: js/EnsembleBlocks.js:1092 -#.TRANS: El bloque Nombre de la tortuga devuelve el nombre de una tortuga. -msgid "The Turtle-name block returns the name of a turtle." -msgstr "" - -#: js/EnsembleBlocks.js:1115 -#.TRANS: recuento de ratones -msgid "mouse count" -msgstr "" - -#: js/EnsembleBlocks.js:1118 -#.TRANS: El bloque recuento de ratones devuelve el número de ratones. -msgid "The Mouse-count block returns the number of mice." -msgstr "" - -#: js/EnsembleBlocks.js:1124 -#.TRANS: recuento de tortuga -msgid "turtle count" -msgstr "" - -#: js/EnsembleBlocks.js:1127 -#.TRANS: El bloque recuento de tortugas devuelve el número de tortugas. -msgid "The Turtle-count block returns the number of turtles." -msgstr "" - -#: js/EnsembleBlocks.js:1149 -#.TRANS: nombre de nth ratón -msgid "nth mouse name" -msgstr "" - -#: js/EnsembleBlocks.js:1152 -#.TRANS: El bloque de nombre Nth-ratón devuelve el nombre del enésimo ratón. -msgid "The Nth-Mouse name block returns the name of the nth mouse." -msgstr "" - -#: js/EnsembleBlocks.js:1158 -#.TRANS: nombre de nth tortuga -msgid "nth turtle name" -msgstr "" - -#: js/EnsembleBlocks.js:1161 -#.TRANS: El bloque de nombre Nth-tortuga devuelve el nombre del enésimo tortuga. -msgid "The Nth-Turtle name block returns the name of the nth turtle." -msgstr "" - -#: js/EnsembleBlocks.js:1205 -#: js/EnsembleBlocks.js:1265 -#.TRANS: fijar nombre -msgid "set name" -msgstr "" - -#: js/EnsembleBlocks.js:1214 -#: js/EnsembleBlocks.js:1221 -#.TRANS: origen -msgid "source" -msgstr "gua" - -#: js/EnsembleBlocks.js:1214 -#: js/EnsembleBlocks.js:1221 -#.TRANS: destino -msgid "target" -msgstr "poravi" - -#: js/EnsembleBlocks.js:1271 -#.TRANS: El bloque Fijar nombre se usa para nombrar un ratón. -msgid "The Set-name block is used to name a mouse." -msgstr "" - -#: js/EnsembleBlocks.js:1284 -#.TRANS: El bloque Fijar nombre se usa para nombrar una tortuga. -msgid "The Set-name block is used to name a turtle." -msgstr "" - -#: js/BooleanBlocks.js:44 -#.TRANS: El bloque No es el operador lógico no. -msgid "The Not block is the logical not operator." -msgstr "" - -#: js/BooleanBlocks.js:62 -#.TRANS: no -msgid "not" -msgstr "nahániri" - -#: js/BooleanBlocks.js:134 -#.TRANS: El bloque Y es el lógico y el operador. -msgid "The And block is the logical and operator." -msgstr "" - -#: js/BooleanBlocks.js:152 -#.TRANS: y -msgid "and" -msgstr "ha" - -#: js/BooleanBlocks.js:218 -#.TRANS: El bloque O es el lógico o el operador. -msgid "The Or block is the logical or operator." -msgstr "" - -#: js/BooleanBlocks.js:236 -#.TRANS: o -msgid "or" -msgstr "o" - -#: js/BooleanBlocks.js:302 -#.TRANS: El bloque XOR es el lógico XOR el operador. -msgid "The XOR block is the logical XOR operator." -msgstr "" - -#: js/BooleanBlocks.js:320 -#.TRANS: xor -msgid "xor" -msgstr "" - -#: js/BooleanBlocks.js:808 -#.TRANS: El bloque Igual devuelve verdadero si los dos números son iguales. -msgid "The Equal block returns True if the two numbers are equal." -msgstr "" - -#: js/BooleanBlocks.js:909 -msgid "The Not-equal-to block returns True if the two numbers are not equal to each other." -msgstr "" - -#: js/BooleanBlocks.js:1008 -#.TRANS: El bloque Booleano se utiliza para especificar verdadero o falso. -msgid "The Boolean block is used to specify true or false." +#: js/blocks/EnsembleBlocks.js:846 +#.TRANS: El bloque sincronizar alinea el conteo de latidos entre tortugas. +msgid "The Turtle sync block aligns the beat count between turtles." msgstr "" -#: js/MediaBlocks.js:35 -#.TRANS: right side of the screen -#.TRANS: derecha -msgid "right (screen)" +#: js/blocks/EnsembleBlocks.js:887 +#.TRANS: El bloque de ratón encontrado devolverá verdadero si se puede encontrar el ratón especificado. +msgid "The Found mouse block will return true if the specified mouse can be found." msgstr "" -#: js/MediaBlocks.js:45 -#: js/MediaBlocks.js:56 -#.TRANS: El bloque Derecha devuelve la posición de la derecha del lienzo. -msgid "The Right block returns the position of the right of the canvas." +#: js/blocks/EnsembleBlocks.js:893 +#.TRANS: encontré el raton +msgid "found mouse" msgstr "" -#: js/MediaBlocks.js:97 -#.TRANS: left side of the screen -#.TRANS: izquierdo -msgid "left (screen)" +#: js/blocks/EnsembleBlocks.js:903 +#.TRANS: El bloque de tortuga encontrado devolverá verdadero si se puede encontrar el tortuga especificado. +msgid "The Found turtle block will return true if the specified turtle can be found." msgstr "" -#: js/MediaBlocks.js:107 -#: js/MediaBlocks.js:118 -#.TRANS: El bloque Izquierdo devuelve la posición de la izquierda del lienzo. -msgid "The Left block returns the position of the left of the canvas." +#: js/blocks/EnsembleBlocks.js:909 +#.TRANS: encontré la tortuga +msgid "found turtle" msgstr "" -#: js/MediaBlocks.js:158 -#.TRANS: superior -msgid "top (screen)" +#: js/blocks/EnsembleBlocks.js:932 +#.TRANS: nuevo ratón +msgid "new mouse" msgstr "" -#: js/MediaBlocks.js:168 -#: js/MediaBlocks.js:179 -#.TRANS: El bloque superior devuelve la posición de la parte superior del lienzo. -msgid "The Top block returns the position of the top of the canvas." +#: js/blocks/EnsembleBlocks.js:934 +#.TRANS: El bloque nuevo ratón crea un nuevo ratón. +msgid "The New mouse block will create a new mouse." msgstr "" -#: js/MediaBlocks.js:219 -#.TRANS: inferior -msgid "bottom (screen)" +#: js/blocks/EnsembleBlocks.js:945 +#.TRANS: nuevo tortuga +msgid "new turtle" msgstr "" -#: js/MediaBlocks.js:229 -#: js/MediaBlocks.js:240 -#.TRANS: El bloque Inferior devuelve la posición de la parte inferior del lienzo. -msgid "The Bottom block returns the position of the bottom of the canvas." +#: js/blocks/EnsembleBlocks.js:947 +#.TRANS: El bloque nuevo ratón crea un nuevo tortuga. +msgid "The New turtle block will create a new turtle." msgstr "" -#: js/MediaBlocks.js:282 -#.TRANS: anchura -msgid "width" +#: js/blocks/EnsembleBlocks.js:1011 +#.TRANS: fijar color del ratón +msgid "set mouse color" msgstr "" -#: js/MediaBlocks.js:291 -#.TRANS: El bloque ancho devuelve el ancho del lienzo. -msgid "The Width block returns the width of the canvas." +#: js/blocks/EnsembleBlocks.js:1014 +#.TRANS: El bloque fijar color del ratón se usa para fijar el color de un ratón. +msgid "The Set-mouse-color block is used to set the color of a mouse." msgstr "" -#: js/MediaBlocks.js:325 -#.TRANS: altura -msgid "height" +#: js/blocks/EnsembleBlocks.js:1020 +#.TRANS: fijar color de la tortuga +msgid "set turtle color" msgstr "" -#: js/MediaBlocks.js:334 -#.TRANS: El bloque altura devuelve la altura del lienzo. -msgid "The Height block returns the height of the canvas." +#: js/blocks/EnsembleBlocks.js:1023 +#.TRANS: El bloque fijar color de la tortuga se usa para fijar el color de una tortuga. +msgid "The Set-turtle-color block is used to set the color of a turtle." msgstr "" -#: js/MediaBlocks.js:369 -#.TRANS: stops playback of an audio recording -#.TRANS: detener -msgid "stop play" -msgstr "ejoko" - -#: js/MediaBlocks.js:404 -#.TRANS: Erases the images and text -#.TRANS: borrar medios -msgid "erase media" +#: js/blocks/EnsembleBlocks.js:1083 +#.TRANS: El bloque Nombre del ratón devuelve el nombre de un ratón. +msgid "The Mouse-name block returns the name of a mouse." msgstr "" -#: js/MediaBlocks.js:409 -#.TRANS: El bloque Erase Media borra texto e imágenes. -msgid "The Erase Media block erases text and images." +#: js/blocks/EnsembleBlocks.js:1092 +#.TRANS: El bloque Nombre de la tortuga devuelve el nombre de una tortuga. +msgid "The Turtle-name block returns the name of a turtle." msgstr "" -#: js/MediaBlocks.js:439 -#.TRANS: play an audio recording -#.TRANS: reproducir -msgid "play back" -msgstr "emboguata" - -#: js/MediaBlocks.js:487 -#.TRANS: hablar -msgid "speak" -msgstr "ñe’ẽ" +#: js/blocks/EnsembleBlocks.js:1115 +#.TRANS: recuento de ratones +msgid "mouse count" +msgstr "" -#: js/MediaBlocks.js:495 -#.TRANS: El bloque Habla emite al sintetizador de texto a voz. -msgid "The Speak block outputs to the text-to-speech synthesizer" +#: js/blocks/EnsembleBlocks.js:1118 +#.TRANS: El bloque recuento de ratones devuelve el número de ratones. +msgid "The Mouse-count block returns the number of mice." msgstr "" -#: js/MediaBlocks.js:546 -#.TRANS: -msgid "camera" +#: js/blocks/EnsembleBlocks.js:1124 +#.TRANS: recuento de tortuga +msgid "turtle count" msgstr "" -#: js/MediaBlocks.js:551 -#.TRANS: El bloque cámara conecta una cámara web al bloque mostrar. -msgid "The Camera block connects a webcam to the Show block." +#: js/blocks/EnsembleBlocks.js:1127 +#.TRANS: El bloque recuento de tortugas devuelve el número de tortugas. +msgid "The Turtle-count block returns the number of turtles." msgstr "" -#: js/MediaBlocks.js:574 -#.TRANS: -msgid "video" +#: js/blocks/EnsembleBlocks.js:1149 +#.TRANS: nombre de nth ratón +msgid "nth mouse name" msgstr "" -#: js/MediaBlocks.js:579 -#.TRANS: El bloque video selecciona video para al bloque mostrar. -msgid "The Video block selects video for use with the Show block." +#: js/blocks/EnsembleBlocks.js:1152 +#.TRANS: El bloque de nombre Nth-ratón devuelve el nombre del enésimo ratón. +msgid "The Nth-Mouse name block returns the name of the nth mouse." msgstr "" -#: js/MediaBlocks.js:607 -#.TRANS: El bloque Abrir archivo abre un archivo para usar con el bloque Mostrar. -msgid "The Open file block opens a file for use with the Show block." +#: js/blocks/EnsembleBlocks.js:1158 +#.TRANS: nombre de nth tortuga +msgid "nth turtle name" msgstr "" -#: js/MediaBlocks.js:645 -#.TRANS: detener medios -msgid "stop media" -msgstr "ejoko medios" +#: js/blocks/EnsembleBlocks.js:1161 +#.TRANS: El bloque de nombre Nth-tortuga devuelve el nombre del enésimo tortuga. +msgid "The Nth-Turtle name block returns the name of the nth turtle." +msgstr "" -#: js/MediaBlocks.js:650 -#.TRANS: El bloque detener medios detiene la reproducción de audio o video. -msgid "The Stop media block stops audio or video playback." +#: js/blocks/EnsembleBlocks.js:1205 +#: js/blocks/EnsembleBlocks.js:1265 +#.TRANS: fijar nombre +msgid "set name" msgstr "" -#: js/MediaBlocks.js:679 -#: js/PitchBlocks.js:1539 -#: js/phrasemaker.js:822 -#: js/musickeyboard.js:1654 -#.TRANS: a measure of frequency: one cycle per second -#.TRANS: hertz -msgid "hertz" -msgstr "hertz" +#: js/blocks/EnsembleBlocks.js:1214 +#: js/blocks/EnsembleBlocks.js:1221 +#.TRANS: origen +msgid "source" +msgstr "gua" -#: js/MediaBlocks.js:692 -#.TRANS: duración (ms) -msgid "duration (ms)" -msgstr "pukukué" +#: js/blocks/EnsembleBlocks.js:1214 +#: js/blocks/EnsembleBlocks.js:1221 +#.TRANS: destino +msgid "target" +msgstr "poravi" -#: js/MediaBlocks.js:728 -#.TRANS: translate a note into hertz, e.g., A4 -> 440HZ -#.TRANS: nota a frecuencia -msgid "note to frequency" -msgstr "nota de frecuancia" +#: js/blocks/EnsembleBlocks.js:1271 +#.TRANS: El bloque Fijar nombre se usa para nombrar un ratón. +msgid "The Set-name block is used to name a mouse." +msgstr "" -#: js/MediaBlocks.js:736 -#.TRANS: El bloque A frecuencia convierte un nombre de tono y una octava a Hertz. -msgid "The To frequency block converts a pitch name and octave to Hertz." +#: js/blocks/EnsembleBlocks.js:1284 +#.TRANS: El bloque Fijar nombre se usa para nombrar una tortuga. +msgid "The Set-name block is used to name a turtle." msgstr "" -#: js/MediaBlocks.js:746 -#: js/PitchBlocks.js:656 -#: js/PitchBlocks.js:932 -#: js/PitchBlocks.js:1827 -#.TRANS: name2 is name as in name of pitch (JAPANESE ONLY) -#.TRANS: nombre -msgid "name2" +#: js/blocks/ExtrasBlocks.js:33 +#.TRANS: fracción +msgid "fraction" msgstr "" -#: js/MediaBlocks.js:812 -#.TRANS: El bloque Avatar se usa para cambiar la apariencia del ratón. -msgid "The Avatar block is used to change the appearance of the mouse." +#: js/blocks/ExtrasBlocks.js:36 +#.TRANS: convertir un número racional en fracción +msgid "Convert a float to a fraction" msgstr "" -#: js/MediaBlocks.js:819 -#.TRANS: El bloque Avatar se usa para cambiar la apariencia de la tortuga. -msgid "The Avatar block is used to change the appearance of the turtle." +#: js/blocks/ExtrasBlocks.js:93 +#.TRANS: guardar como ABC +msgid "save as ABC" msgstr "" -#: js/MediaBlocks.js:831 -#: js/MediaBlocks.js:891 -#.TRANS: a media object -#.TRANS: tamaño -msgid "size" -msgstr "jakatuha" +#: js/blocks/ExtrasBlocks.js:96 +#: js/blocks/ExtrasBlocks.js:132 +#: js/blocks/ExtrasBlocks.js:168 +#.TRANS: título +msgid "title" +msgstr "téra" -#: js/MediaBlocks.js:831 -#.TRANS: imagen -msgid "image" -msgstr "ta’anga" +#: js/blocks/ExtrasBlocks.js:129 +#.TRANS: guardar como Lilypond +msgid "save as Lilypond" +msgstr "" -#: js/MediaBlocks.js:880 -#.TRANS: El bloque Mostrar se utiliza para mostrar texto o imágenes en el lienzo. -msgid "The Show block is used to display text or images on the canvas." +#: js/blocks/ExtrasBlocks.js:165 +#.TRANS: guardar como SVG +msgid "save as SVG" msgstr "" -#: js/MediaBlocks.js:888 -#.TRANS: show1 is show as in display an image or text on the screen. -#.TRANS: mostrar -msgid "show1" +#: js/blocks/ExtrasBlocks.js:216 +#.TRANS: sin fondo +msgid "no background" +msgstr "hugua’ỹ" + +#: js/blocks/ExtrasBlocks.js:219 +#.TRANS: El bloque Sin fondo elimina el fondo de la salida SVG guardada. +msgid "The No background block eliminates the background from the saved SVG output." msgstr "" -#: js/MediaBlocks.js:891 -#.TRANS: objeto -msgid "obj" -msgstr "mba’e" +#: js/blocks/ExtrasBlocks.js:247 +#.TRANS: mostrar bloques +msgid "show blocks" +msgstr "oichuka vore" -#: js/MediaBlocks.js:938 -#.TRANS: El bloque Medios se utiliza para importar una imagen. -msgid "The Media block is used to import an image." +#: js/blocks/ExtrasBlocks.js:249 +#.TRANS: El bloque mostrar bloques muestra los bloques. +msgid "The Show blocks block shows the blocks." msgstr "" -#: js/MediaBlocks.js:973 -#.TRANS: El bloque Texto contiene una cadena de texto. -msgid "The Text block holds a text string." +#: js/blocks/ExtrasBlocks.js:274 +#.TRANS: ocultar bloques +msgid "hide blocks" +msgstr "oñongatu vore" + +#: js/blocks/ExtrasBlocks.js:276 +#.TRANS: El bloque ocultar esconde los bloques. +msgid "The Hide blocks block hides the blocks." msgstr "" -#: js/ProgramBlocks.js:33 -#.TRANS: El bloque Cargar-pila-en-app carga la pila en una página web. -msgid "The Load-heap-from-app block loads the heap from a web page." +#: js/blocks/ExtrasBlocks.js:305 +#: js/blocks/ExtrasBlocks.js:338 +#.TRANS: El bloque Espacio se utiliza para agregar espacio entre bloques. +msgid "The Space block is used to add space between blocks." msgstr "" -#: js/ProgramBlocks.js:44 -#.TRANS: load the heap contents from a URL -#.TRANS: cargar pila desde aplicación -msgid "load heap from App" -msgstr "ehupi aty aplicación rire" +#: js/blocks/ExtrasBlocks.js:376 +#.TRANS: esperar +msgid "wait" +msgstr "ha’ãro" -#: js/ProgramBlocks.js:95 -#.TRANS: Error de análisis de datos JSON. -msgid "Error parsing JSON data:" -msgstr "Jejavy hesa’ỹijo mba’ekuaa JSON" +#: js/blocks/ExtrasBlocks.js:379 +#.TRANS: El bloque Espera detiene el programa durante un número específico de segundos. +msgid "The Wait block pauses the program for a specified number of seconds." +msgstr "" -#: js/ProgramBlocks.js:100 -#.TRANS: 404: Página no encontrada. -msgid "404: Page not found" -msgstr "404: Kuatia rogue ndotopái" +#: js/blocks/ExtrasBlocks.js:433 +#: plugins/facebook.rtp:30 +#.TRANS: comentar +msgid "comment" +msgstr "mombe’u" -#: js/ProgramBlocks.js:133 -#.TRANS: El bloque Guardar-pila-en-app guarda la pila en una página web. -msgid "The Save-heap-to-app block saves the heap to a web page." -msgstr "" +#: js/blocks/ExtrasBlocks.js:469 +#.TRANS: imprimir +msgid "print" +msgstr "imprimir" -#: js/ProgramBlocks.js:144 -#.TRANS: save the heap contents to a URL -#.TRANS: guardar pila a aplicación -msgid "save heap to App" -msgstr "eñongatu aty aplicación rire" +#: js/blocks/ExtrasBlocks.js:476 +#.TRANS: El bloque Imprimir muestra texto en la parte superior de la pantalla. +msgid "The Print block displays text at the top of the screen." +msgstr "" -#: js/ProgramBlocks.js:189 -#.TRANS: Pilas tortuga no contiene un montón válida para -msgid "Cannot find a valid heap for" +#: js/blocks/ExtrasBlocks.js:582 +#.TRANS: mostrar cuadrícula +msgid "display grid" msgstr "" -#: js/ProgramBlocks.js:206 -#.TRANS: El bloque Cargar pila carga la pila de un archivo. -msgid "The Load-heap block loads the heap from a file." +#: js/blocks/ExtrasBlocks.js:587 +#.TRANS: Mostrar el bloque de cuadrícula cambia el tipo de cuadrícula +msgid "The Display Grid Block changes the grid type" msgstr "" -#: js/ProgramBlocks.js:217 -#.TRANS: load the heap from a file -#.TRANS: cargar pila -msgid "load heap" -msgstr "e hupi aty" +#: js/blocks/ExtrasBlocks.js:689 +#: js/blocks/ExtrasBlocks.js:708 +#: js/blocks/ExtrasBlocks.js:731 +#: js/blocks/ExtrasBlocks.js:754 +#: js/blocks/ExtrasBlocks.js:772 +#: js/blocks/ExtrasBlocks.js:791 +#: js/blocks/ExtrasBlocks.js:810 +#: js/blocks/ExtrasBlocks.js:829 +#.TRANS: desconocido +msgid "unknown" +msgstr "kuaa’ývã" -#: js/ProgramBlocks.js:270 -#.TRANS: El archivo seleccionado no contiene un pila válida. -msgid "The file you selected does not contain a valid heap." -msgstr "Pe mba’e ñongatupyre ndo rekói chovi oikóva" +#: js/blocks/FlowBlocks.js:41 +#.TRANS: El bloque Atrás ejecuta el código en orden inverso (retrógrado en la música). +msgid "The Backward block runs code in reverse order (Musical retrograde)." +msgstr "" -#: js/ProgramBlocks.js:275 -#.TRANS: El bloque Pila de carga necesita un bloque de archivo de carga. -msgid "The loadHeap block needs a loadFile block." -msgstr "Pe vore chovi hupiha oikoteve peteĩ vore ñongatuha hupiha" +#: js/blocks/FlowBlocks.js:48 +#.TRANS: hacia atrás +msgid "backward" +msgstr "tapykuéotyo" -#: js/ProgramBlocks.js:291 -#.TRANS: El bloque fijar pila carga la pila. -msgid "The Set-heap block loads the heap." +#: js/blocks/FlowBlocks.js:124 +#.TRANS: El bloque Duplicado ejecutará cada bloque varias veces. +msgid "The Duplicate block will run each block multiple times." msgstr "" -#: js/ProgramBlocks.js:299 -#: js/HeapBlocks.js:539 -#.TRANS: load the heap from a JSON encoding -#.TRANS: fijar pila -msgid "set heap" -msgstr "omoambue aty repy" +#: js/blocks/FlowBlocks.js:136 +#.TRANS: duplicar +msgid "duplicate" +msgstr "" -#: js/ProgramBlocks.js:340 -#.TRANS: El bloque que seleccionó no contiene una pila válido. -msgid "The block you selected does not contain a valid heap." +#: js/blocks/FlowBlocks.js:334 +#.TRANS: El bloque predeterminado se usa dentro de un bloque de switch para definir la acción predeterminada. +msgid "The Default block is used inside of a Switch to define the default action." msgstr "" -#: js/ProgramBlocks.js:343 -#.TRANS: El bloque fija pila necesita una pila. -msgid "The Set heap block needs a heap." +#: js/blocks/FlowBlocks.js:342 +#.TRANS: el caso de forma predeterminada +msgid "default" msgstr "" -#: js/ProgramBlocks.js:360 -#.TRANS: El bloque Carga-diccionario carga un diccionario desde un archivo. -msgid "The Load-dictionary block loads a dictionary from a file." +#: js/blocks/FlowBlocks.js:361 +#: js/blocks/FlowBlocks.js:418 +#.TRANS: El bloque Caso debe utilizarse dentro de un bloque de switch. +msgid "The Case Block must be used inside of a Switch Block." msgstr "" -#: js/ProgramBlocks.js:372 -#.TRANS: load a dictionary from a file -#.TRANS: carga diccionario -msgid "load dictionary" +#: js/blocks/FlowBlocks.js:389 +#.TRANS: El bloque Caso se utiliza dentro de un interruptor para definir coincidencias. +msgid "The Case block is used inside of a Switch to define matches." msgstr "" -#: js/ProgramBlocks.js:390 -#: js/ProgramBlocks.js:658 -#: js/ToneBlocks.js:1025 -#.TRANS: archivo -msgid "file" +#: js/blocks/FlowBlocks.js:397 +#.TRANS: caso +msgid "case" msgstr "" -#: js/ProgramBlocks.js:396 -#: js/ProgramBlocks.js:501 -#: js/ProgramBlocks.js:664 -#: js/DictBlocks.js:80 -#: js/DictBlocks.js:145 -#: js/DictBlocks.js:216 -#: js/DictBlocks.js:290 -#.TRANS: mi diccionario -msgid "My Dictionary" +#: js/blocks/FlowBlocks.js:446 +#.TRANS: El bloque Switch ejecutará el código en el caso correspondiente. +msgid "The Switch block will run the code in the matching Case." msgstr "" -#: js/ProgramBlocks.js:444 -#.TRANS: El archivo que seleccionó no contiene un diccionario válido. -msgid "The file you selected does not contain a valid dictionary." +#: js/blocks/FlowBlocks.js:454 +#.TRANS: switch +msgid "switch" msgstr "" -#: js/ProgramBlocks.js:449 -#.TRANS: El bloque de diccionario de carga necesita un bloque de archivo -msgid "The load dictionary block needs a load file block." +#: js/blocks/FlowBlocks.js:595 +#.TRANS: El bloque Parar detendrá un bucle. +msgid "The Stop block will stop a loop" msgstr "" -#: js/ProgramBlocks.js:466 -#.TRANS: El bloque fijar diccionario carga un diccionario. -msgid "The Set-dictionary block loads a dictionary." +#: js/blocks/FlowBlocks.js:597 +#.TRANS: Por siempre, Repetir, Mientras o Hasta. +msgid "Forever, Repeat, While, or Until." msgstr "" -#: js/ProgramBlocks.js:477 -#.TRANS: load a dictionary from a JSON -#.TRANS: fijar diccionario -msgid "set dictionary" +#: js/blocks/FlowBlocks.js:604 +#: js/widgets/timbre.js:417 +#: js/widgets/timbre.js:419 +#: js/widgets/musickeyboard.js:819 +#: js/widgets/musickeyboard.js:821 +#: js/widgets/phrasemaker.js:4202 +#: plugins/rodi.rtp:29 +#: plugins/rodi.rtp:73 +#: plugins/rodi.rtp:413 +#.TRANS: detener +msgid "stop" +msgstr "joko" + +#: js/blocks/FlowBlocks.js:653 +#.TRANS: El bloque Esperar esperará hasta que la condición sea verdadera. +msgid "The Waitfor block will wait until the condition is true." msgstr "" -#: js/ProgramBlocks.js:546 -#.TRANS: El bloque que seleccionó no contiene un diccionario válido. -msgid "The block you selected does not contain a valid dictionary." +#: js/blocks/FlowBlocks.js:661 +#.TRANS: esperar hasta +msgid "wait for" +msgstr "hã’arõ peẽ" + +#: js/blocks/FlowBlocks.js:732 +#.TRANS: El bloque Hasta se repetirá hasta que la condición sea verdadera. +msgid "The Until block will repeat until the condition is true." msgstr "" -#: js/ProgramBlocks.js:550 -#.TRANS: El bloque Fijar dictionario necesita un diccionario. -msgid "The set dictionary block needs a dictionary." +#: js/blocks/FlowBlocks.js:740 +#.TRANS: hasta +msgid "until" +msgstr "peẽ" + +#: js/blocks/FlowBlocks.js:742 +#: js/blocks/FlowBlocks.js:822 +#.TRANS: hacer +msgid "do2" msgstr "" -#: js/ProgramBlocks.js:567 -#.TRANS: El bloque Guardar pila guarda la pila en un archivo. -msgid "The Save-heap block saves the heap to a file." +#: js/blocks/FlowBlocks.js:812 +#.TRANS: El bloque Mientras se repetirá mientras la condición sea verdadera. +msgid "The While block will repeat while the condition is true." msgstr "" -#: js/ProgramBlocks.js:578 -#.TRANS: save the heap to a file -#.TRANS: guardar pila -msgid "save heap" -msgstr "eñongatu aty" +#: js/blocks/FlowBlocks.js:820 +#.TRANS: mientras +msgid "while" +msgstr "jave" -#: js/ProgramBlocks.js:629 -#.TRANS: El bloque Guardar diccionario guarda el diccionario en un archivo -msgid "The Save-dictionary block saves a dictionary to a file." +#: js/blocks/FlowBlocks.js:903 +#: js/blocks/FlowBlocks.js:968 +#: js/blocks/FlowBlocks.js:979 +#.TRANS: En este ejemplo, si se presiona el botón del mouse, se reproducirá una caja. +msgid "In this example if the mouse button is pressed a snare drum will play." msgstr "" -#: js/ProgramBlocks.js:640 -#.TRANS: save a dictionary to a file -#.TRANS: guardar diccionario -msgid "save dictionary" +#: js/blocks/FlowBlocks.js:925 +#: js/blocks/FlowBlocks.js:988 +#.TRANS: si +msgid "if" +msgstr "hẽe" + +#: js/blocks/FlowBlocks.js:927 +#: js/blocks/FlowBlocks.js:990 +#.TRANS: entonces +msgid "then" +msgstr "upéicharõ" + +#: js/blocks/FlowBlocks.js:927 +#.TRANS: sino +msgid "else" +msgstr "osino" + +#: js/blocks/FlowBlocks.js:1025 +#.TRANS: El bloque Por siempre repetirá los bloques contenidos para siempre. +msgid "The Forever block will repeat the contained blocks forever." msgstr "" -#: js/ProgramBlocks.js:720 -#.TRANS: El bloque abrir la paleta abre una paleta -msgid "The Open palette block opens a palette." +#: js/blocks/FlowBlocks.js:1037 +#.TRANS: por siempre +msgid "forever" +msgstr "tapiã guarã" + +#: js/blocks/FlowBlocks.js:1073 +#.TRANS: El bloque Repetir repetirá los bloques contenidos. +msgid "The Repeat block will repeat the contained blocks." msgstr "" -#: js/ProgramBlocks.js:727 -#.TRANS: abrir la paleta -msgid "open palette" +#: js/blocks/FlowBlocks.js:1075 +#.TRANS: En este ejemplo la nota se tocará 4 veces. +msgid "In this example the note will be played 4 times." msgstr "" -#: js/ProgramBlocks.js:785 -#.TRANS: El bloque eliminar bloque elimina un bloque -msgid "The Delete block block removes a block." +#: js/blocks/FlowBlocks.js:1083 +#.TRANS: repetir +msgid "repeat" +msgstr "jevy" + +#: js/blocks/FlowBlocks.js:1123 +#.TRANS: duplicar factor +msgid "duplicate factor" +msgstr "momokoĩ ypy" + +#: js/blocks/HeapBlocks.js:49 +#.TRANS: El bloque Pila devuelve la pila. +msgid "The Heap block returns the heap." msgstr "" -#: js/ProgramBlocks.js:797 -#.TRANS: Move this block to the trash. -#.TRANS: eliminar bloque -msgid "delete block" +#: js/blocks/HeapBlocks.js:133 +#.TRANS: mostrar pila +msgid "show heap" +msgstr "oichuka aty" + +#: js/blocks/HeapBlocks.js:181 +#.TRANS: El bloque Longitud de la pila devuelve la longitud de la pila. +msgid "The Heap-length block returns the length of the heap." msgstr "" -#: js/ProgramBlocks.js:861 -#.TRANS: El bloque mover bloque mueve un bloque. -msgid "The Move block block moves a block." +#: js/blocks/HeapBlocks.js:195 +#.TRANS: tamaño de la pila +msgid "heap length" +msgstr "aty jakatuha" + +#: js/blocks/HeapBlocks.js:254 +#.TRANS: El bloque Pila-vacío? devuelve verdadero si la pila está vacío. +msgid "The Heap-empty? block returns true if the heap is empty." msgstr "" -#: js/ProgramBlocks.js:869 -#.TRANS: Move the position of a block on the screen. -#.TRANS: mover bloque -msgid "move block" +#: js/blocks/HeapBlocks.js:268 +#.TRANS: Is the heap empty? +#.TRANS: ¿pila vacía? +msgid "heap empty?" +msgstr "aty nandi" + +#: js/blocks/HeapBlocks.js:317 +#.TRANS: El bloque Vacío pila vacía la pila. +msgid "The Empty-heap block empties the heap." msgstr "" -#: js/ProgramBlocks.js:881 -#: js/ProgramBlocks.js:1048 -#.TRANS: número de bloque -msgid "block number" +#: js/blocks/HeapBlocks.js:327 +#: js/blocks/HeapBlocks.js:647 +#.TRANS: empty the heap +#.TRANS: vaciar pila +msgid "empty heap" +msgstr "emonandi pe chovi" + +#: js/blocks/HeapBlocks.js:371 +#.TRANS: El bloque Pila inversa invierte el orden de la pila. +msgid "The Reverse-heap block reverses the order of the heap." msgstr "" -#: js/ProgramBlocks.js:935 -#.TRANS: Run program beginning at this block. -#.TRANS: ejecutar bloque -msgid "run block" +#: js/blocks/HeapBlocks.js:384 +#.TRANS: reverse the order of the heap +#.TRANS: revertir la pila +msgid "reverse heap" msgstr "" -#: js/ProgramBlocks.js:1025 -#.TRANS: El bloque connectar conecta dos bloques -msgid "The Dock block block connections two blocks." +#: js/blocks/HeapBlocks.js:428 +#.TRANS: El bloque Índice de pila devuelve un valor en la pila en una ubicación especificada. +msgid "The Index-heap block returns a value in the heap at a specified location." msgstr "" -#: js/ProgramBlocks.js:1036 -#.TRANS: We can connect a block to another block. -#.TRANS: connectar block -msgid "connect blocks" +#: js/blocks/HeapBlocks.js:443 +#.TRANS: retrieve a value from the heap at index position in the heap +#.TRANS: valor en la pila +msgid "index heap" +msgstr "tepy aty pe" + +#: js/blocks/HeapBlocks.js:523 +#.TRANS: El bloque Fijar entrada de pila establece un valor en la pila en la ubicación especificada. +msgid "The Set-heap entry block sets a value in he heap at the specified location." msgstr "" -#: js/ProgramBlocks.js:1048 -#.TRANS: bloque de destino -msgid "target block" +#: js/blocks/HeapBlocks.js:539 +#: js/blocks/ProgramBlocks.js:299 +#.TRANS: load the heap from a JSON encoding +#.TRANS: fijar pila +msgid "set heap" +msgstr "omoambue aty repy" + +#: js/blocks/HeapBlocks.js:619 +#.TRANS: El bloque Pop elimina el valor en la parte superior del pila. +msgid "The Pop block removes the value at the top of the heap." msgstr "" -#: js/ProgramBlocks.js:1048 -#.TRANS: número de conexion -msgid "connection number" +#: js/blocks/HeapBlocks.js:633 +#.TRANS: pop a value off the top of the heap +#.TRANS: sacar +msgid "pop" +msgstr "pe’a" + +#: js/blocks/HeapBlocks.js:680 +#.TRANS: El bloque Push agrega un valor a la parte superior del pila. +msgid "The Push block adds a value to the top of the heap." msgstr "" -#: js/ProgramBlocks.js:1140 -#.TRANS: El bloque crear bloque crea un bloque. -msgid "The Make block block creates a new block." +#: js/blocks/HeapBlocks.js:696 +#.TRANS: push a value onto the top of the heap +#.TRANS: apilar +msgid "push" +msgstr "atyha" + +#: js/blocks/IntervalsBlocks.js:45 +#.TRANS: fijar temperamento +msgid "set temperament" msgstr "" -#: js/ProgramBlocks.js:1152 -#.TRANS: Create a new block -#.TRANS: crear bloque -msgid "make block" +#: js/blocks/IntervalsBlocks.js:63 +#: js/blocks/MediaBlocks.js:746 +#: js/blocks/PitchBlocks.js:657 +#: js/blocks/PitchBlocks.js:935 +#: js/blocks/PitchBlocks.js:974 +#: js/blocks/PitchBlocks.js:1007 +#: js/blocks/PitchBlocks.js:1194 +#: js/blocks/PitchBlocks.js:1717 +#: js/blocks/PitchBlocks.js:1758 +#: js/blocks/PitchBlocks.js:1866 +#: js/blocks/ToneBlocks.js:1025 +#: js/turtleactions/IntervalsActions.js:114 +#.TRANS: adjusts the shift up or down by one octave (twelve half-steps in the interval between two notes, one having twice or half the frequency in Hz of the other.) +#.TRANS: octava +msgid "octave" +msgstr "Octava" + +#: js/blocks/IntervalsBlocks.js:99 +#.TRANS: El bloque Nombre Temperamento se utiliza para seleccionar un método de ajuste. +msgid "The Temperament name block is used to select a tuning method." msgstr "" -#: js/ProgramBlocks.js:1186 -#: js/ProgramBlocks.js:1227 -#: js/RhythmBlocks.js:1128 -#: js/PitchBlocks.js:972 -#: js/PitchBlocks.js:1005 -#: js/temperament.js:340 -#: js/temperament.js:362 -#: js/temperament.js:372 -#: js/temperament.js:484 -#: js/status.js:190 -#: plugins/rodi.rtp:192 -#.TRANS: a musical note consisting of pitch and duration -#.TRANS: nota -msgid "note" -msgstr "ohesaho" +#: js/blocks/IntervalsBlocks.js:161 +#.TRANS: doble +msgid "doubly" +msgstr "" -#: js/ProgramBlocks.js:1285 -#.TRANS: No se puede encontrar el bloque. -msgid "Cannot find block" +#: js/blocks/IntervalsBlocks.js:166 +#.TRANS: El bloque doble duplicará el tamaño de un intervalo. +msgid "The Doubly block will double the size of an interval." msgstr "" -#: js/ProgramBlocks.js:1304 -#: js/ProgramBlocks.js:1313 -#.TRANS: Advertencia: el tipo de argumento de bloque no coincide -msgid "Warning: block argument type mismatch" +#: js/blocks/IntervalsBlocks.js:262 +#.TRANS: número de intervalo +msgid "interval number" msgstr "" -#: js/ProgramBlocks.js:1347 -#.TRANS: El bloque Abrir proyecto se utiliza para abrir un proyecto desde una página web. -msgid "The Open project block is used to open a project from a web page." +#: js/blocks/IntervalsBlocks.js:317 +#.TRANS: intervalo actua +msgid "current interval" msgstr "" -#: js/ProgramBlocks.js:1357 -#.TRANS: abierto proyecto -msgid "open project" -msgstr "eipe’a jejaposéva" +#: js/blocks/IntervalsBlocks.js:387 +#.TRANS: measure the distance between two pitches in semi-tones +#.TRANS: medida de intervalo semitono +msgid "semi-tone interval measure" +msgstr "" -#: js/ProgramBlocks.js:1410 -#.TRANS: Por favor introduzca un URL válido. -msgid "Please enter a valid URL." +#: js/blocks/IntervalsBlocks.js:454 +#: js/blocks/IntervalsBlocks.js:570 +#.TRANS: Debe usar dos bloques de tono cuando mida un intervalo. +msgid "You must use two pitch blocks when measuring an interval." msgstr "" -#: js/DrumBlocks.js:59 -#.TRANS: El bloque Nombre de ruido se utiliza para seleccionar un sintetizador de ruido. -msgid "The Noise name block is used to select a noise synthesizer." +#: js/blocks/IntervalsBlocks.js:496 +#.TRANS: El bloque Intervalo escalar mide la distancia entre dos notas en la clave y el modo actuales. +msgid "The Scalar interval block measures the distance between two notes in the current key and mode." msgstr "" -#: js/DrumBlocks.js:102 -#.TRANS: El bloque nombre del tambor se utiliza para seleccionar un tambor. -msgid "The Drum name block is used to select a drum." +#: js/blocks/IntervalsBlocks.js:502 +#.TRANS: measure the distance between two pitches in steps of musical scale +#.TRANS: medida de intervalo escalar +msgid "scalar interval measure" msgstr "" -#: js/DrumBlocks.js:146 -#.TRANS: El bloque nombre de efectos se utiliza para seleccionar un efecto de sonido. -msgid "The Effects name block is used to select a sound effect." +#: js/blocks/IntervalsBlocks.js:678 +#.TRANS: En la figura, agregamos sol# a sol. +msgid "In the figure, we add sol# to sol." msgstr "" -#: js/DrumBlocks.js:163 -#.TRANS: ruido -msgid "noise" +#: js/blocks/IntervalsBlocks.js:684 +#: js/blocks/OrnamentBlocks.js:220 +#.TRANS: calculate a relative step between notes based on semi-tones +#.TRANS: intervalo semitono +msgid "semi-tone interval" msgstr "" -#: js/DrumBlocks.js:177 -#.TRANS: El bloque Ruido de reproducción generará ruido blanco, rosa o marrón. -msgid "The Play noise block will generate white, pink, or brown noise." +#: js/blocks/IntervalsBlocks.js:733 +#.TRANS: La salida del ejemplo es: do, mi, sol, sol, ti, mi +msgid "The output of the example is: do, mi, sol, sol, ti, mi" msgstr "" -#: js/DrumBlocks.js:191 -#: js/musicutils.js:752 -#: js/synthutils.js:47 -#.TRANS: white noise synthesizer -#.TRANS: ruido blanco -msgid "white noise" +#: js/blocks/IntervalsBlocks.js:740 +#: js/blocks/WidgetBlocks.js:768 +#.TRANS: arpegio +msgid "arpeggio" msgstr "" -#: js/DrumBlocks.js:326 -#.TRANS: Reemplace cada instancia de un tono con un sonido de tambor. -msgid "Replace every instance of a pitch with a drum sound." +#: js/blocks/IntervalsBlocks.js:931 +#.TRANS: El bloque Acordes calcula acordes comunes. +msgid "The Chord block calculates common chords." msgstr "" -#: js/DrumBlocks.js:337 -#.TRANS: map a pitch to a drum sound -#.TRANS: mapa de tono al tambor -msgid "map pitch to drum" +#: js/blocks/IntervalsBlocks.js:933 +#.TRANS: En la figura generamos un acorde de C-mayor. +msgid "In the figure, we generate a C-major chord." msgstr "" -#: js/DrumBlocks.js:404 -#.TRANS: En el ejemplo anterior, se reproducirá un sonido de bombo en lugar de sol. -msgid "In the example above, a kick drum sound will be played instead of sol." +#: js/blocks/IntervalsBlocks.js:938 +#.TRANS: acorde +msgid "chord" msgstr "" -#: js/DrumBlocks.js:416 -#.TRANS: set the current drum sound for playback -#.TRANS: fijar tambor -msgid "set drum" -msgstr "emoĩ angu’atarara" +#: js/blocks/IntervalsBlocks.js:990 +#.TRANS: El bloque intervalo de razón calcula un intervalo basado en una razón +msgid "The Ratio Interval block calculates an interval based on a ratio." +msgstr "" -#: js/DrumBlocks.js:460 -#.TRANS: efecto de sonido -msgid "sound effect" +#: js/blocks/IntervalsBlocks.js:995 +#.TRANS: intervalo de razón +msgid "ratio interval" msgstr "" -#: js/DrumBlocks.js:498 -#.TRANS: Puede utilizar varios bloques de percusión dentro de un bloque de notas. -msgid "You can use multiple Drum blocks within a Note block." +#: js/blocks/IntervalsBlocks.js:1064 +#.TRANS: En la figura, sumamos la a sol. +msgid "In the figure, we add la to sol." msgstr "" -#: js/RhythmBlocks.js:182 -#: js/RhythmBlocks.js:1086 -#: js/RhythmBlocks.js:1162 -#.TRANS: Valor de la nota debe ser mayor que 0. -msgid "Note value must be greater than 0." +#: js/blocks/IntervalsBlocks.js:1120 +#.TRANS: define a custom mode +#.TRANS: definir el modo +msgid "define mode" msgstr "" -#: js/RhythmBlocks.js:215 -#: js/RhythmBlocks.js:278 -#: js/RhythmBlocks.js:350 -#.TRANS: swing is a rhythmic variation that emphasises the offbeat -#.TRANS: swing -msgid "swing" -msgstr "swing" +#: js/blocks/IntervalsBlocks.js:1173 +#.TRANS: movible Do +msgid "movable Do" +msgstr "" -#: js/RhythmBlocks.js:355 -#.TRANS: the amount to shift to the offbeat note -#.TRANS: valor de swing -msgid "swing value" -msgstr "swing tepy" +#: js/blocks/IntervalsBlocks.js:1224 +#.TRANS: mode length is the number of notes in the mode, e.g., 7 for major and minor scales; 12 for chromatic scales +#.TRANS: longitud de modo +msgid "mode length" +msgstr "" -#: js/RhythmBlocks.js:419 -#.TRANS: El bloque Omitir notas hará que las notas se omitan. -msgid "The Skip notes block will cause notes to be skipped." +#: js/blocks/IntervalsBlocks.js:1233 +#.TRANS: El bloque Longitud de modo es el número de notas en la escala actual. +msgid "The Mode length block is the number of notes in the current scale." msgstr "" -#: js/RhythmBlocks.js:427 -#.TRANS: substitute rests on notes being skipped -#.TRANS: saltar notas -msgid "skip notes" -msgstr "epo notas ári" +#: js/blocks/IntervalsBlocks.js:1235 +#.TRANS: La mayoría de las escalas occidentales tienen 7 notas. +msgid "Most Western scales have 7 notes." +msgstr "" -#: js/RhythmBlocks.js:489 -#.TRANS: speed up note duration by some factor, e.g. convert 1/4 to 1/8 notes by using a factor of 2 -#.TRANS: ritmo multiplican -msgid "multiply note value" +#: js/blocks/IntervalsBlocks.js:1284 +#.TRANS: the mode in music is 'major', 'minor', etc. +#.TRANS: modo actual +msgid "current mode" msgstr "" -#: js/RhythmBlocks.js:542 -#.TRANS: El bloque Atar funciona en pares de notas, combinándolas en una sola nota. -msgid "The Tie block works on pairs of notes, combining them into one note." +#: js/blocks/IntervalsBlocks.js:1337 +#.TRANS: the key is a group of pitches with which a music composition is created +#.TRANS: clave actual +msgid "current key" msgstr "" -#: js/RhythmBlocks.js:550 -#.TRANS: tie notes together into one longer note -#.TRANS: atar -msgid "tie" -msgstr "tie" +#: js/blocks/IntervalsBlocks.js:1389 +#: js/blocks/IntervalsBlocks.js:1434 +#.TRANS: set the key and mode, e.g. C Major +#.TRANS: fijar clave +msgid "set key" +msgstr "emoĩ clave" -#: js/RhythmBlocks.js:591 -#: js/RhythmBlocks.js:671 -#.TRANS: a dotted note is played for 1.5x its value, e.g., 1/8. --> 3/16 -#.TRANS: punto -msgid "dot" -msgstr "kyta" +#: js/blocks/IntervalsBlocks.js:1443 +#: js/blocks/IntervalsBlocks.js:1449 +#.TRANS: El bloque Fijar tecla se usa para configurar la tecla y el modo, +msgid "The Set key block is used to set the key and mode," +msgstr "" -#: js/RhythmBlocks.js:619 -#: js/RhythmActions.js:221 -#.TRANS: Un argumento de -1 da como resultado un valor de nota de 0. -msgid "An argument of -1 results in a note value of 0." +#: js/blocks/IntervalsBlocks.js:1449 +#.TRANS: por ejemplo, C Mayor +msgid "eg C Major" msgstr "" -#: js/RhythmBlocks.js:661 -#.TRANS: El bloque Punto extiende la duración de una nota en un 50%. -msgid "The Dot block extends the duration of a note by 50%." +#: js/blocks/MediaBlocks.js:35 +#.TRANS: right side of the screen +#.TRANS: derecha +msgid "right (screen)" msgstr "" -#: js/RhythmBlocks.js:663 -#.TRANS: Por ejemplo, una nota de un cuarto de puntos se reproducirá a 3/8 (1/4 + 1/8) de un tiempo. -msgid "Eg a dotted quarter note will play for 3/8 (1/4 + 1/8) of a beat." +#: js/blocks/MediaBlocks.js:45 +#: js/blocks/MediaBlocks.js:56 +#.TRANS: El bloque Derecha devuelve la posición de la derecha del lienzo. +msgid "The Right block returns the position of the right of the canvas." msgstr "" -#: js/RhythmBlocks.js:765 -#.TRANS: Japanese only: note value block for drum -#.TRANS: Valor de nota tambor -msgid "note value drum" +#: js/blocks/MediaBlocks.js:97 +#.TRANS: left side of the screen +#.TRANS: izquierdo +msgid "left (screen)" msgstr "" -#: js/RhythmBlocks.js:829 -#.TRANS: 392 hertz -msgid "392 hertz" -msgstr "392 hertz" +#: js/blocks/MediaBlocks.js:107 +#: js/blocks/MediaBlocks.js:118 +#.TRANS: El bloque Izquierdo devuelve la posición de la izquierda del lienzo. +msgid "The Left block returns the position of the left of the canvas." +msgstr "" -#: js/RhythmBlocks.js:1119 -#.TRANS: El bloque Nota es un contenedor para uno o más bloques de tono. -msgid "The Note block is a container for one or more Pitch blocks." +#: js/blocks/MediaBlocks.js:158 +#.TRANS: superior +msgid "top (screen)" msgstr "" -#: js/RhythmBlocks.js:1121 -#.TRANS: El bloque Notas especifica la duración (valor de la nota) de su contenido. -msgid "The Note block specifies the duration (note value) of its contents." +#: js/blocks/MediaBlocks.js:168 +#: js/blocks/MediaBlocks.js:179 +#.TRANS: El bloque superior devuelve la posición de la parte superior del lienzo. +msgid "The Top block returns the position of the top of the canvas." msgstr "" -#: js/RhythmBlocks.js:1130 -#.TRANS: valor -msgid "value2" +#: js/blocks/MediaBlocks.js:219 +#.TRANS: inferior +msgid "bottom (screen)" msgstr "" -#: js/RhythmBlocks.js:1200 -#.TRANS: definir frecuencia -msgid "define frequency" +#: js/blocks/MediaBlocks.js:229 +#: js/blocks/MediaBlocks.js:240 +#.TRANS: El bloque Inferior devuelve la posición de la parte inferior del lienzo. +msgid "The Bottom block returns the position of the bottom of the canvas." msgstr "" -#: js/RhythmBlocks.js:1218 -#: js/temperament.js:650 -#: js/temperament.js:1421 -#.TRANS: espacio de octava -msgid "octave space" +#: js/blocks/MediaBlocks.js:282 +#.TRANS: anchura +msgid "width" msgstr "" -#: js/NumberBlocks.js:28 -#.TRANS: El bloque Int devuelve un entero. -msgid "The Int block returns an integer." +#: js/blocks/MediaBlocks.js:291 +#.TRANS: El bloque ancho devuelve el ancho del lienzo. +msgid "The Width block returns the width of the canvas." msgstr "" -#: js/NumberBlocks.js:34 -#.TRANS: int -msgid "int" -msgstr "convertir un número real a un entero" +#: js/blocks/MediaBlocks.js:325 +#.TRANS: altura +msgid "height" +msgstr "" -#: js/NumberBlocks.js:73 -#.TRANS: El bloque Mod devuelve el resto de una división. -msgid "The Mod block returns the remainder from a division." +#: js/blocks/MediaBlocks.js:334 +#.TRANS: El bloque altura devuelve la altura del lienzo. +msgid "The Height block returns the height of the canvas." msgstr "" -#: js/NumberBlocks.js:79 -#.TRANS: módulo -msgid "mod" -msgstr "módulo" +#: js/blocks/MediaBlocks.js:369 +#.TRANS: stops playback of an audio recording +#.TRANS: detener +msgid "stop play" +msgstr "ejoko" -#: js/NumberBlocks.js:123 -#.TRANS: El bloque de potencia calcula una función de potencia. -msgid "The Power block calculates a power function." +#: js/blocks/MediaBlocks.js:404 +#.TRANS: Erases the images and text +#.TRANS: borrar medios +msgid "erase media" msgstr "" -#: js/NumberBlocks.js:178 -#.TRANS: El bloque Sqrt devuelve la raíz cuadrada. -msgid "The Sqrt block returns the square root." +#: js/blocks/MediaBlocks.js:409 +#.TRANS: El bloque Erase Media borra texto e imágenes. +msgid "The Erase Media block erases text and images." msgstr "" -#: js/NumberBlocks.js:184 -#.TRANS: raíz -msgid "sqrt" -msgstr "hapó" +#: js/blocks/MediaBlocks.js:439 +#.TRANS: play an audio recording +#.TRANS: reproducir +msgid "play back" +msgstr "emboguata" -#: js/NumberBlocks.js:230 -#.TRANS: El bloque Abs devuelve el valor absoluto. -msgid "The Abs block returns the absolute value." -msgstr "" +#: js/blocks/MediaBlocks.js:487 +#.TRANS: hablar +msgid "speak" +msgstr "ñe’ẽ" -#: js/NumberBlocks.js:236 -#.TRANS: abs -msgid "abs" +#: js/blocks/MediaBlocks.js:495 +#.TRANS: El bloque Habla emite al sintetizador de texto a voz. +msgid "The Speak block outputs to the text-to-speech synthesizer" msgstr "" -#: js/NumberBlocks.js:277 -#.TRANS: El bloque Distancia devuelve la distancia entre dos puntos. Por ejemplo, entre el ratón y el centro de la pantalla. -msgid "The Distance block returns the distance between two points. For example, between the mouse and the center of the screen." +#: js/blocks/MediaBlocks.js:546 +#.TRANS: +msgid "camera" msgstr "" -#: js/NumberBlocks.js:283 -#: plugins/rodi.rtp:310 -#.TRANS: distancia -msgid "distance" -msgstr "mbyryguĩ" - -#: js/NumberBlocks.js:343 -#.TRANS: El bloque División se usa para dividir. -msgid "The Divide block is used to divide." +#: js/blocks/MediaBlocks.js:551 +#.TRANS: El bloque cámara conecta una cámara web al bloque mostrar. +msgid "The Camera block connects a webcam to the Show block." msgstr "" -#: js/NumberBlocks.js:411 -#.TRANS: El bloque Multiplicar se usa para multiplicar. -msgid "The Multiply block is used to multiply." +#: js/blocks/MediaBlocks.js:574 +#.TRANS: +msgid "video" msgstr "" -#: js/NumberBlocks.js:554 -#.TRANS: El bloque Minus se usa para restar. -msgid "The Minus block is used to subtract." +#: js/blocks/MediaBlocks.js:579 +#.TRANS: El bloque video selecciona video para al bloque mostrar. +msgid "The Video block selects video for use with the Show block." msgstr "" -#: js/NumberBlocks.js:647 -#.TRANS: El bloque Plus se utiliza para agregar. -msgid "The Plus block is used to add." +#: js/blocks/MediaBlocks.js:607 +#.TRANS: El bloque Abrir archivo abre un archivo para usar con el bloque Mostrar. +msgid "The Open file block opens a file for use with the Show block." msgstr "" -#: js/NumberBlocks.js:773 -#.TRANS: El bloque Uno de estos devuelve una de dos opciones. -msgid "The One-of block returns one of two choices." +#: js/blocks/MediaBlocks.js:645 +#.TRANS: detener medios +msgid "stop media" +msgstr "ejoko medios" + +#: js/blocks/MediaBlocks.js:650 +#.TRANS: El bloque detener medios detiene la reproducción de audio o video. +msgid "The Stop media block stops audio or video playback." msgstr "" -#: js/NumberBlocks.js:780 -#: js/PitchBlocks.js:616 -#.TRANS: uno de estos -msgid "one of" -msgstr "peteĩ áarehegua" +#: js/blocks/MediaBlocks.js:679 +#: js/blocks/PitchBlocks.js:1577 +#: js/widgets/musickeyboard.js:1936 +#: js/widgets/phrasemaker.js:1037 +#.TRANS: a measure of frequency: one cycle per second +#.TRANS: hertz +msgid "hertz" +msgstr "hertz" -#: js/NumberBlocks.js:782 -#.TRANS: éste -msgid "this" -msgstr "kóa" +#: js/blocks/MediaBlocks.js:692 +#: js/blocks/WidgetBlocks.js:182 +#: js/widgets/temperament.js:506 +#: js/widgets/temperament.js:546 +#: js/widgets/temperament.js:610 +#: js/widgets/temperament.js:618 +#: js/widgets/temperament.js:1505 +#: js/widgets/timbre.js:1842 +#.TRANS: frecuencia +msgid "frequency" +msgstr "osyryha" + +#: js/blocks/MediaBlocks.js:692 +#.TRANS: duración (ms) +msgid "duration (ms)" +msgstr "pukukué" + +#: js/blocks/MediaBlocks.js:728 +#.TRANS: translate a note into hertz, e.g., A4 -> 440HZ +#.TRANS: nota a frecuencia +msgid "note to frequency" +msgstr "nota de frecuancia" -#: js/NumberBlocks.js:782 -#.TRANS: ése -msgid "that" -msgstr "péa" +#: js/blocks/MediaBlocks.js:736 +#.TRANS: El bloque A frecuencia convierte un nombre de tono y una octava a Hertz. +msgid "The To frequency block converts a pitch name and octave to Hertz." +msgstr "" -#: js/NumberBlocks.js:837 -#.TRANS: El bloque Aleatorio devuelve un número aleatorio. -msgid "The Random block returns a random number." +#: js/blocks/MediaBlocks.js:746 +#: js/blocks/PitchBlocks.js:656 +#: js/blocks/PitchBlocks.js:934 +#: js/blocks/PitchBlocks.js:1866 +#.TRANS: name2 is name as in name of pitch (JAPANESE ONLY) +#.TRANS: nombre +msgid "name2" msgstr "" -#: js/NumberBlocks.js:844 -#.TRANS: aleatorio -msgid "random" -msgstr "oimerãea" +#: js/blocks/MediaBlocks.js:812 +#.TRANS: El bloque Avatar se usa para cambiar la apariencia del ratón. +msgid "The Avatar block is used to change the appearance of the mouse." +msgstr "" -#: js/NumberBlocks.js:846 -#.TRANS: min -msgid "min" -msgstr "sa’ivéva" +#: js/blocks/MediaBlocks.js:819 +#.TRANS: El bloque Avatar se usa para cambiar la apariencia de la tortuga. +msgid "The Avatar block is used to change the appearance of the turtle." +msgstr "" -#: js/NumberBlocks.js:846 -#.TRANS: max -msgid "max" -msgstr "tuichavéva" +#: js/blocks/MediaBlocks.js:831 +#: js/blocks/MediaBlocks.js:891 +#.TRANS: a media object +#.TRANS: tamaño +msgid "size" +msgstr "jakatuha" -#: js/NumberBlocks.js:910 -#.TRANS: El bloque Numérico contiene un número. -msgid "The Number block holds a number." -msgstr "" +#: js/blocks/MediaBlocks.js:831 +#.TRANS: imagen +msgid "image" +msgstr "ta’anga" -#: js/BoxesBlocks.js:53 -#: js/BoxesBlocks.js:59 -#.TRANS: El bloque Agregar a se usa para agregar al valor almacenado en un cuadro. -msgid "The Add-to block is used to add to the value stored in a box." +#: js/blocks/MediaBlocks.js:880 +#.TRANS: El bloque Mostrar se utiliza para mostrar texto o imágenes en el lienzo. +msgid "The Show block is used to display text or images on the canvas." msgstr "" -#: js/BoxesBlocks.js:61 -#.TRANS: También se puede utilizar con otros bloques, como el color, el tamaño de la pluma. -msgid "It can also be used with other blocks such as Color and Pen size." +#: js/blocks/MediaBlocks.js:888 +#.TRANS: show1 is show as in display an image or text on the screen. +#.TRANS: mostrar +msgid "show1" msgstr "" -#: js/BoxesBlocks.js:73 -#.TRANS: sumar -msgid "add" -msgstr "embojo’a" - -#: js/BoxesBlocks.js:75 -#: js/temperament.js:716 -#.TRANS: para -msgid "to" -msgstr "guarã" +#: js/blocks/MediaBlocks.js:891 +#.TRANS: objeto +msgid "obj" +msgstr "mba’e" -#: js/BoxesBlocks.js:75 -#: js/BoxesBlocks.js:595 -#: js/HeapBlocks.js:544 -#.TRANS: valor -msgid "value1" +#: js/blocks/MediaBlocks.js:938 +#.TRANS: El bloque Medios se utiliza para importar una imagen. +msgid "The Media block is used to import an image." msgstr "" -#: js/BoxesBlocks.js:118 -#.TRANS: Bloque no soporta incremento. -msgid "Block does not support incrementing." -msgstr "Vore ndikatui tuicha" +#: js/blocks/MediaBlocks.js:973 +#.TRANS: El bloque Texto contiene una cadena de texto. +msgid "The Text block holds a text string." +msgstr "" -#: js/BoxesBlocks.js:152 -#.TRANS: El bloque Sumar-1-a agrega uno al valor almacenado en un cuadro. -msgid "The Add-1-to block adds one to the value stored in a box." +#: js/blocks/MeterBlocks.js:34 +#.TRANS: musical meter (time signature), e.g., 4:4 +#.TRANS: meter actuale +msgid "current meter" msgstr "" -#: js/BoxesBlocks.js:163 -#.TRANS: sumar 1 a -msgid "add 1 to" -msgstr "embojo’a peteĩ " +#: js/blocks/MeterBlocks.js:85 +#.TRANS: number of beats per minute +#.TRANS: factor de ritmo +msgid "beat factor" +msgstr "ypy de ritmo" -#: js/BoxesBlocks.js:211 -#.TRANS: El bloque restar-1-de resta uno al valor almacenado en un cuadro. -msgid "The Subtract-1-from block subtracts one from the value stored in a box." +#: js/blocks/MeterBlocks.js:161 +#.TRANS: El bloque de latidos por minuto devuelve los latidos actuales por minuto. +msgid "The Beats per minute block returns the current beats per minute." msgstr "" -#: js/BoxesBlocks.js:222 -#.TRANS: restar 1 de -msgid "subtract 1 from" +#: js/blocks/MeterBlocks.js:169 +#: js/widgets/status.js:152 +#.TRANS: number of beats played per minute +#.TRANS: pulsaciones por minuto +msgid "beats per minute2" msgstr "" -#: js/BoxesBlocks.js:270 -#: js/BoxesBlocks.js:387 -#.TRANS: El bloque Caja devuelve el valor almacenado en una caja . -msgid "The Box block returns the value stored in a box." +#: js/blocks/MeterBlocks.js:169 +#: js/blocks/MeterBlocks.js:1056 +#: js/blocks/MeterBlocks.js:1133 +#: js/blocks/MeterBlocks.js:1211 +#.TRANS: sets tempo by defining a beat and beats per minute +#.TRANS: pulsaciones por minuto +msgid "beats per minute" +msgstr "mbopypyre aravo’igui" + +#: js/blocks/MeterBlocks.js:233 +#.TRANS: count of current musical measure in meter +#.TRANS: cuenta de medidas +msgid "measure count" msgstr "" -#: js/BoxesBlocks.js:500 -#: js/BoxesBlocks.js:576 -#.TRANS: El bloque Guardar en caja se utiliza para almacenar un valor en una caja. -msgid "The Store in block will store a value in a box." +#: js/blocks/MeterBlocks.js:241 +#.TRANS: El bloque de conteo de medidas devuelve la medida actual. +msgid "The Measure count block returns the current measure." msgstr "" -#: js/BoxesBlocks.js:652 -#.TRANS: El bloque Caja 2 devuelve el valor almacenado en caja 2. -msgid "The Box2 block returns the value stored in Box2." +#: js/blocks/MeterBlocks.js:290 +#.TRANS: count of current beat in the meter +#.TRANS: cuenta de latidos +msgid "beat count" msgstr "" -#: js/BoxesBlocks.js:703 -#.TRANS: El bloque Guardar en caja2 se utiliza para almacenar un valor en caja2. -msgid "The Store in Box2 block is used to store a value in Box2." +#: js/blocks/MeterBlocks.js:300 +#: js/blocks/MeterBlocks.js:311 +#: js/blocks/MeterBlocks.js:565 +#: js/blocks/MeterBlocks.js:576 +#.TRANS: El bloque Conteo de tiempos es el número del tiempo actual, +msgid "The Beat count block is the number of the current beat," msgstr "" -#: js/BoxesBlocks.js:715 -#.TRANS: guardar en caja 2 -msgid "store in box2" +#: js/blocks/MeterBlocks.js:313 +#: js/blocks/MeterBlocks.js:578 +#.TRANS: por ejemplo, 1, 2, 3, o 4. +msgid "eg 1, 2, 3, or 4." msgstr "" -#: js/BoxesBlocks.js:761 -#.TRANS: El bloque Caja 1 devuelve el valor almacenado en caja 1. -msgid "The Box1 block returns the value stored in Box1." +#: js/blocks/MeterBlocks.js:368 +#.TRANS: count the number of notes +#.TRANS: cuenta las notas +msgid "sum note values" msgstr "" -#: js/BoxesBlocks.js:812 -#.TRANS: El bloque Guardar en caja1 se utiliza para almacenar un valor en caja1. -msgid "The Store in Box1 block is used to store a value in Box1." +#: js/blocks/MeterBlocks.js:376 +#: js/blocks/MeterBlocks.js:440 +#.TRANS: El bloque Contador de notas se puede usar para contar el número de notas contenidas. +msgid "The Note counter block can be used to count the number of contained notes." msgstr "" -#: js/BoxesBlocks.js:826 -#.TRANS: guardar en caja 1 -msgid "store in box1" +#: js/blocks/MeterBlocks.js:432 +#.TRANS: count the number of notes +#.TRANS: cuenta las notas +msgid "note counter" +msgstr "nota papaha" + +#: js/blocks/MeterBlocks.js:496 +#.TRANS: number of whole notes that have been played +#.TRANS: notas completa jugadas +msgid "whole notes played" msgstr "" -#: js/HeapBlocks.js:49 -#.TRANS: El bloque Pila devuelve la pila. -msgid "The Heap block returns the heap." +#: js/blocks/MeterBlocks.js:505 +#.TRANS: El bloque Nota completa reproducidas devuelve el número total de notas completas reproducidas. +msgid "The Whole notes played block returns the total number of whole notes played." msgstr "" -#: js/HeapBlocks.js:133 -#.TRANS: mostrar pila -msgid "show heap" -msgstr "oichuka aty" +#: js/blocks/MeterBlocks.js:555 +#: js/turtleactions/DictActions.js:83 +#.TRANS: number of notes that have been played +#.TRANS: notas jugadas +msgid "notes played" +msgstr "notas ñembosaráipyre" -#: js/HeapBlocks.js:181 -#.TRANS: El bloque Longitud de la pila devuelve la longitud de la pila. -msgid "The Heap-length block returns the length of the heap." +#: js/blocks/MeterBlocks.js:653 +#.TRANS: El bloque Sin reloj desacopla las notas del reloj maestro. +msgid "The No clock block decouples the notes from the master clock." msgstr "" -#: js/HeapBlocks.js:195 -#.TRANS: tamaño de la pila -msgid "heap length" -msgstr "aty jakatuha" - -#: js/HeapBlocks.js:254 -#.TRANS: El bloque Pila-vacío? devuelve verdadero si la pila está vacío. -msgid "The Heap-empty? block returns true if the heap is empty." +#: js/blocks/MeterBlocks.js:661 +#.TRANS: don't lock notes to master clock +#.TRANS: sin reloj +msgid "no clock" msgstr "" -#: js/HeapBlocks.js:268 -#.TRANS: Is the heap empty? -#.TRANS: ¿pila vacía? -msgid "heap empty?" -msgstr "aty nandi" +#: js/blocks/MeterBlocks.js:700 +#.TRANS: en latido débil hacer +msgid "on weak beat do" +msgstr "" -#: js/HeapBlocks.js:317 -#.TRANS: El bloque Vacío pila vacía la pila. -msgid "The Empty-heap block empties the heap." +#: js/blocks/MeterBlocks.js:705 +#.TRANS: El bloque En-latido-débil-hacer te permite especificar acciones a realizar en latido débiles. +msgid "The On-weak-beat block lets you specify actions to take on weak (off) beats." msgstr "" -#: js/HeapBlocks.js:327 -#: js/HeapBlocks.js:647 -#.TRANS: empty the heap -#.TRANS: vaciar pila -msgid "empty heap" -msgstr "emonandi pe chovi" +#: js/blocks/MeterBlocks.js:750 +#.TRANS: en latido fuerte hacer +msgid "on strong beat" +msgstr "" -#: js/HeapBlocks.js:371 -#.TRANS: El bloque Pila inversa invierte el orden de la pila. -msgid "The Reverse-heap block reverses the order of the heap." +#: js/blocks/MeterBlocks.js:758 +#.TRANS: El bloque En-latido-fuerte-hacer le permite especificar acciones a realizar en latido específicos. +msgid "The On-strong-beat block lets you specify actions to take on specified beats." msgstr "" -#: js/HeapBlocks.js:384 -#.TRANS: reverse the order of the heap -#.TRANS: revertir la pila -msgid "reverse heap" +#: js/blocks/MeterBlocks.js:769 +#.TRANS: latidos +msgid "beat" msgstr "" -#: js/HeapBlocks.js:428 -#.TRANS: El bloque Índice de pila devuelve un valor en la pila en una ubicación especificada. -msgid "The Index-heap block returns a value in the heap at a specified location." +#: js/blocks/MeterBlocks.js:813 +#.TRANS: en cado latodo hacer +msgid "on every beat do" msgstr "" -#: js/HeapBlocks.js:443 -#.TRANS: retrieve a value from the heap at index position in the heap -#.TRANS: valor en la pila -msgid "index heap" -msgstr "tepy aty pe" +#: js/blocks/MeterBlocks.js:821 +#.TRANS: El bloque En-cado-latido-hacer le permite especificar acciones a realizar en cado latado. +msgid "The On-every-beat block lets you specify actions to take on every beat." +msgstr "" -#: js/HeapBlocks.js:523 -#.TRANS: El bloque Fijar entrada de pila establece un valor en la pila en la ubicación especificada. -msgid "The Set-heap entry block sets a value in he heap at the specified location." +#: js/blocks/MeterBlocks.js:874 +#.TRANS: en cada nota hacer +msgid "on every note do" msgstr "" -#: js/HeapBlocks.js:619 -#.TRANS: El bloque Pop elimina el valor en la parte superior del pila. -msgid "The Pop block removes the value at the top of the heap." +#: js/blocks/MeterBlocks.js:882 +#.TRANS: El bloque En-cada-nota-hacer le permite especificar acciones a realizar en cada nota. +msgid "The On-every-note block lets you specify actions to take on every note." msgstr "" -#: js/HeapBlocks.js:633 -#.TRANS: pop a value off the top of the heap -#.TRANS: sacar -msgid "pop" -msgstr "pe’a" +#: js/blocks/MeterBlocks.js:928 +#: js/blocks/MeterBlocks.js:999 +#.TRANS: sets tempo by defining a beat and beats per minute +#.TRANS: latidos por minuto de dominar +msgid "master beats per minute" +msgstr "latidos por minuto de dominar" -#: js/HeapBlocks.js:680 -#.TRANS: El bloque Push agrega un valor a la parte superior del pila. -msgid "The Push block adds a value to the top of the heap." +#: js/blocks/MeterBlocks.js:952 +#: js/blocks/MeterBlocks.js:1078 +#: js/blocks/MeterBlocks.js:1135 +#.TRANS: lpm +msgid "bpm" msgstr "" -#: js/HeapBlocks.js:696 -#.TRANS: push a value onto the top of the heap -#.TRANS: apilar -msgid "push" -msgstr "atyha" - -#: js/FlowBlocks.js:41 -#.TRANS: El bloque Atrás ejecuta el código en orden inverso (retrógrado en la música). -msgid "The Backward block runs code in reverse order (Musical retrograde)." +#: js/blocks/MeterBlocks.js:952 +#: js/blocks/MeterBlocks.js:1078 +#: js/blocks/MeterBlocks.js:1135 +#.TRANS: valor de latidos +msgid "beat value" msgstr "" -#: js/FlowBlocks.js:48 -#.TRANS: hacia atrás -msgid "backward" -msgstr "tapykuéotyo" +#: js/blocks/MeterBlocks.js:1024 +#: js/blocks/MeterBlocks.js:1167 +#: js/blocks/MeterBlocks.js:1241 +#.TRANS: Latidos por minuto debe ser > 30. +msgid "Beats per minute must be > 30." +msgstr "Tytýi peteĩ aravo’ipe tuichave vaerã mbohapypagui" -#: js/FlowBlocks.js:124 -#.TRANS: El bloque Duplicado ejecutará cada bloque varias veces. -msgid "The Duplicate block will run each block multiple times." +#: js/blocks/MeterBlocks.js:1027 +#: js/blocks/MeterBlocks.js:1170 +#: js/blocks/MeterBlocks.js:1244 +#.TRANS: Los latidos por minuto como máximo es de 1000. +msgid "Maximum beats per minute is 1000." +msgstr "Tytýi peteĩ aravo’ipe su pee" + +#: js/blocks/MeterBlocks.js:1068 +#.TRANS: El bloque Pulsaciones por minuto establece el número de 1/4 notas por minuto. +msgid "The Beats per minute block sets the number of 1/4 notes per minute." msgstr "" -#: js/FlowBlocks.js:136 -#.TRANS: duplicar -msgid "duplicate" +#: js/blocks/MeterBlocks.js:1279 +#.TRANS: anacrusis +#.TRANS: +msgid "pickup" msgstr "" -#: js/FlowBlocks.js:334 -#.TRANS: El bloque predeterminado se usa dentro de un bloque de switch para definir la acción predeterminada. -msgid "The Default block is used inside of a Switch to define the default action." +#: js/blocks/MeterBlocks.js:1367 +#.TRANS: número de latidos +msgid "number of beats" msgstr "" -#: js/FlowBlocks.js:342 -#.TRANS: el caso de forma predeterminada -msgid "default" +#: js/blocks/NumberBlocks.js:28 +#.TRANS: El bloque Int devuelve un entero. +msgid "The Int block returns an integer." msgstr "" -#: js/FlowBlocks.js:361 -#: js/FlowBlocks.js:418 -#.TRANS: El bloque Caso debe utilizarse dentro de un bloque de switch. -msgid "The Case Block must be used inside of a Switch Block." +#: js/blocks/NumberBlocks.js:34 +#.TRANS: int +msgid "int" +msgstr "convertir un número real a un entero" + +#: js/blocks/NumberBlocks.js:73 +#.TRANS: El bloque Mod devuelve el resto de una división. +msgid "The Mod block returns the remainder from a division." msgstr "" -#: js/FlowBlocks.js:389 -#.TRANS: El bloque Caso se utiliza dentro de un interruptor para definir coincidencias. -msgid "The Case block is used inside of a Switch to define matches." +#: js/blocks/NumberBlocks.js:79 +#.TRANS: módulo +msgid "mod" +msgstr "módulo" + +#: js/blocks/NumberBlocks.js:141 +#.TRANS: El bloque de potencia calcula una función de potencia. +msgid "The Power block calculates a power function." msgstr "" -#: js/FlowBlocks.js:397 -#.TRANS: caso -msgid "case" +#: js/blocks/NumberBlocks.js:196 +#.TRANS: El bloque Sqrt devuelve la raíz cuadrada. +msgid "The Sqrt block returns the square root." msgstr "" -#: js/FlowBlocks.js:446 -#.TRANS: El bloque Switch ejecutará el código en el caso correspondiente. -msgid "The Switch block will run the code in the matching Case." -msgstr "" +#: js/blocks/NumberBlocks.js:202 +#.TRANS: raíz +msgid "sqrt" +msgstr "hapó" -#: js/FlowBlocks.js:454 -#.TRANS: switch -msgid "switch" +#: js/blocks/NumberBlocks.js:248 +#.TRANS: El bloque Abs devuelve el valor absoluto. +msgid "The Abs block returns the absolute value." msgstr "" -#: js/FlowBlocks.js:595 -#.TRANS: El bloque Parar detendrá un bucle. -msgid "The Stop block will stop a loop" +#: js/blocks/NumberBlocks.js:254 +#.TRANS: abs +msgid "abs" msgstr "" -#: js/FlowBlocks.js:597 -#.TRANS: Por siempre, Repetir, Mientras o Hasta. -msgid "Forever, Repeat, While, or Until." +#: js/blocks/NumberBlocks.js:295 +#.TRANS: El bloque Distancia devuelve la distancia entre dos puntos. Por ejemplo, entre el ratón y el centro de la pantalla. +msgid "The Distance block returns the distance between two points. For example, between the mouse and the center of the screen." msgstr "" -#: js/FlowBlocks.js:604 -#: js/phrasemaker.js:3799 -#: js/musickeyboard.js:629 -#: js/musickeyboard.js:631 -#: js/timbre.js:417 -#: js/timbre.js:419 -#: plugins/rodi.rtp:29 -#: plugins/rodi.rtp:73 -#: plugins/rodi.rtp:413 -#.TRANS: detener -msgid "stop" -msgstr "joko" +#: js/blocks/NumberBlocks.js:301 +#: plugins/rodi.rtp:310 +#.TRANS: distancia +msgid "distance" +msgstr "mbyryguĩ" -#: js/FlowBlocks.js:653 -#.TRANS: El bloque Esperar esperará hasta que la condición sea verdadera. -msgid "The Waitfor block will wait until the condition is true." +#: js/blocks/NumberBlocks.js:361 +#.TRANS: El bloque División se usa para dividir. +msgid "The Divide block is used to divide." msgstr "" -#: js/FlowBlocks.js:661 -#.TRANS: esperar hasta -msgid "wait for" -msgstr "hã’arõ peẽ" - -#: js/FlowBlocks.js:732 -#.TRANS: El bloque Hasta se repetirá hasta que la condición sea verdadera. -msgid "The Until block will repeat until the condition is true." +#: js/blocks/NumberBlocks.js:441 +#.TRANS: El bloque Multiplicar se usa para multiplicar. +msgid "The Multiply block is used to multiply." msgstr "" -#: js/FlowBlocks.js:740 -#.TRANS: hasta -msgid "until" -msgstr "peẽ" - -#: js/FlowBlocks.js:742 -#: js/FlowBlocks.js:822 -#.TRANS: hacer -msgid "do2" +#: js/blocks/NumberBlocks.js:612 +#.TRANS: El bloque Minus se usa para restar. +msgid "The Minus block is used to subtract." msgstr "" -#: js/FlowBlocks.js:812 -#.TRANS: El bloque Mientras se repetirá mientras la condición sea verdadera. -msgid "The While block will repeat while the condition is true." +#: js/blocks/NumberBlocks.js:723 +#.TRANS: El bloque Plus se utiliza para agregar. +msgid "The Plus block is used to add." msgstr "" -#: js/FlowBlocks.js:820 -#.TRANS: mientras -msgid "while" -msgstr "jave" - -#: js/FlowBlocks.js:903 -#: js/FlowBlocks.js:968 -#: js/FlowBlocks.js:979 -#.TRANS: En este ejemplo, si se presiona el botón del mouse, se reproducirá una caja. -msgid "In this example if the mouse button is pressed a snare drum will play." +#: js/blocks/NumberBlocks.js:849 +#.TRANS: El bloque Uno de estos devuelve una de dos opciones. +msgid "The One-of block returns one of two choices." msgstr "" -#: js/FlowBlocks.js:925 -#: js/FlowBlocks.js:988 -#.TRANS: si -msgid "if" -msgstr "hẽe" +#: js/blocks/NumberBlocks.js:856 +#: js/blocks/PitchBlocks.js:616 +#.TRANS: uno de estos +msgid "one of" +msgstr "peteĩ áarehegua" -#: js/FlowBlocks.js:927 -#: js/FlowBlocks.js:990 -#.TRANS: entonces -msgid "then" -msgstr "upéicharõ" +#: js/blocks/NumberBlocks.js:858 +#.TRANS: éste +msgid "this" +msgstr "kóa" -#: js/FlowBlocks.js:927 -#.TRANS: sino -msgid "else" -msgstr "osino" +#: js/blocks/NumberBlocks.js:858 +#.TRANS: ése +msgid "that" +msgstr "péa" -#: js/FlowBlocks.js:1025 -#.TRANS: El bloque Por siempre repetirá los bloques contenidos para siempre. -msgid "The Forever block will repeat the contained blocks forever." +#: js/blocks/NumberBlocks.js:913 +#.TRANS: El bloque Aleatorio devuelve un número aleatorio. +msgid "The Random block returns a random number." msgstr "" -#: js/FlowBlocks.js:1037 -#.TRANS: por siempre -msgid "forever" -msgstr "tapiã guarã" +#: js/blocks/NumberBlocks.js:920 +#.TRANS: aleatorio +msgid "random" +msgstr "oimerãea" -#: js/FlowBlocks.js:1073 -#.TRANS: El bloque Repetir repetirá los bloques contenidos. -msgid "The Repeat block will repeat the contained blocks." -msgstr "" +#: js/blocks/NumberBlocks.js:922 +#.TRANS: min +msgid "min" +msgstr "sa’ivéva" -#: js/FlowBlocks.js:1075 -#.TRANS: En este ejemplo la nota se tocará 4 veces. -msgid "In this example the note will be played 4 times." +#: js/blocks/NumberBlocks.js:922 +#.TRANS: max +msgid "max" +msgstr "tuichavéva" + +#: js/blocks/NumberBlocks.js:986 +#.TRANS: El bloque Numérico contiene un número. +msgid "The Number block holds a number." msgstr "" -#: js/FlowBlocks.js:1083 -#.TRANS: repetir -msgid "repeat" -msgstr "jevy" +#: js/blocks/OrnamentBlocks.js:32 +#.TRANS: factor de staccato +msgid "staccato factor" +msgstr "staccato ypy" -#: js/FlowBlocks.js:1123 -#.TRANS: duplicar factor -msgid "duplicate factor" -msgstr "momokoĩ ypy" +#: js/blocks/OrnamentBlocks.js:108 +#.TRANS: factor de legato +msgid "slur factor" +msgstr "legato ypy" -#: js/PitchBlocks.js:39 -#: js/musicutils.js:722 -#: js/musicutils.js:1117 -#: js/synthutils.js:112 -#.TRANS: square wave -#.TRANS: cuadrado -msgid "square" -msgstr "irundy yke" +#: js/blocks/OrnamentBlocks.js:217 +#: js/blocks/OrnamentBlocks.js:309 +#.TRANS: the neighbor refers to a neighboring note, e.g., D is a neighbor of C +#.TRANS: vecino +msgid "neighbor" +msgstr "" -#: js/PitchBlocks.js:62 -#: js/ToneBlocks.js:39 -#: js/musicutils.js:723 -#: js/musicutils.js:1118 -#: js/synthutils.js:116 -#.TRANS: triangle wave -#.TRANS: triángulo -msgid "triangle" -msgstr " mbohapy takamby" +#: js/blocks/OrnamentBlocks.js:293 +#.TRANS: El bloque Vecino cambia rápidamente entre los tonos vecinos. +msgid "The Neighbor block rapidly switches between neighboring pitches." +msgstr "" -#: js/PitchBlocks.js:85 -#: js/musicutils.js:721 -#: js/musicutils.js:1116 -#: js/synthutils.js:110 -#.TRANS: sine wave -#.TRANS: sine -msgid "sine" -msgstr "pyti’a" +#: js/blocks/OrnamentBlocks.js:364 +#.TRANS: deslizarse +msgid "glide" +msgstr "" -#: js/PitchBlocks.js:108 -#: js/musicutils.js:724 -#: js/musicutils.js:1119 -#: js/synthutils.js:114 -#.TRANS: sawtooth wave -#.TRANS: diente de sierra -msgid "sawtooth" -msgstr "tãi akua" +#: js/blocks/OrnamentBlocks.js:479 +#: js/blocks/OrnamentBlocks.js:643 +#.TRANS: legato +msgid "slur" +msgstr "legato" -#: js/PitchBlocks.js:141 -#.TRANS: musical transposition (adjustment of pitch up or down) -#.TRANS: transposición -msgid "transposition" -msgstr "O’hasa hi’ari" +#: js/blocks/OrnamentBlocks.js:558 +#: js/blocks/OrnamentBlocks.js:710 +#.TRANS: play each note sharply detached from the others +#.TRANS: staccato +msgid "staccato" +msgstr "staccato" -#: js/PitchBlocks.js:168 -#.TRANS: step down one note in current musical scale -#.TRANS: escalar bajar -msgid "scalar step down" +#: js/blocks/RhythmBlocks.js:182 +#: js/blocks/RhythmBlocks.js:1086 +#: js/blocks/RhythmBlocks.js:1162 +#.TRANS: Valor de la nota debe ser mayor que 0. +msgid "Note value must be greater than 0." msgstr "" -#: js/PitchBlocks.js:172 -#.TRANS: El bloque Escalar bajar devuelve el número de semitonos a la nota anterior en la tecla y modo actuales. -msgid "The Scalar step down block returns the number of semi-tones down to the previous note in the current key and mode." -msgstr "" +#: js/blocks/RhythmBlocks.js:215 +#: js/blocks/RhythmBlocks.js:278 +#: js/blocks/RhythmBlocks.js:350 +#.TRANS: swing is a rhythmic variation that emphasises the offbeat +#.TRANS: swing +msgid "swing" +msgstr "swing" -#: js/PitchBlocks.js:190 -#.TRANS: step up one note in current musical scale -#.TRANS: escalar aumentar -msgid "scalar step up" -msgstr "" +#: js/blocks/RhythmBlocks.js:355 +#.TRANS: the amount to shift to the offbeat note +#.TRANS: valor de swing +msgid "swing value" +msgstr "swing tepy" -#: js/PitchBlocks.js:194 -#.TRANS: El bloque Escalar aumentar devuelve el número de semitonos hasta la siguiente nota en la tecla y modo actuales. -msgid "The Scalar step up block returns the number of semi-tones up to the next note in the current key and mode." +#: js/blocks/RhythmBlocks.js:419 +#.TRANS: El bloque Omitir notas hará que las notas se omitan. +msgid "The Skip notes block will cause notes to be skipped." msgstr "" -#: js/PitchBlocks.js:212 -#.TRANS: the change measured in half-steps between the current pitch and the previous pitch -#.TRANS: cambio en tono -msgid "change in pitch" -msgstr "" +#: js/blocks/RhythmBlocks.js:427 +#.TRANS: substitute rests on notes being skipped +#.TRANS: saltar notas +msgid "skip notes" +msgstr "epo notas ári" -#: js/PitchBlocks.js:216 -#.TRANS: El cambio en el bloque de tono es la diferencia (en medio pasos) entre el tono actual que se está reproduciendo y el tono anterior. -msgid "The Change in pitch block is the difference (in half steps) between the current pitch being played and the previous pitch played." +#: js/blocks/RhythmBlocks.js:489 +#.TRANS: speed up note duration by some factor, e.g. convert 1/4 to 1/8 notes by using a factor of 2 +#.TRANS: ritmo multiplican +msgid "multiply note value" msgstr "" -#: js/PitchBlocks.js:243 -#.TRANS: the change measured in scale-steps between the current pitch and the previous pitch -#.TRANS: cambio en tono escalar -msgid "scalar change in pitch" +#: js/blocks/RhythmBlocks.js:542 +#.TRANS: El bloque Atar funciona en pares de notas, combinándolas en una sola nota. +msgid "The Tie block works on pairs of notes, combining them into one note." msgstr "" -#: js/PitchBlocks.js:250 -#: js/PitchBlocks.js:432 -#: js/PitchBlocks.js:1629 -#: js/DictActions.js:89 -#: js/temperament.js:477 -#: js/temperament.js:481 -#: js/temperament.js:714 -#.TRANS: convert current note to piano key (1-88) -#.TRANS: a mapping of pitch to the 88 piano keys -#.TRANS: número de tono -msgid "pitch number" -msgstr "pu papaha" +#: js/blocks/RhythmBlocks.js:550 +#.TRANS: tie notes together into one longer note +#.TRANS: atar +msgid "tie" +msgstr "tie" -#: js/PitchBlocks.js:256 -#.TRANS: El bloque Número de tono es el valor del tono de la nota que se está reproduciendo actualmente. -msgid "The Pitch number block is the value of the pitch of the note currently being played." -msgstr "" +#: js/blocks/RhythmBlocks.js:591 +#: js/blocks/RhythmBlocks.js:671 +#.TRANS: a dotted note is played for 1.5x its value, e.g., 1/8. --> 3/16 +#.TRANS: punto +msgid "dot" +msgstr "kyta" -#: js/PitchBlocks.js:329 -#: js/PitchBlocks.js:433 -#.TRANS: the current pitch expressed in Hertz -#.TRANS: tono en hertz -msgid "pitch in hertz" +#: js/blocks/RhythmBlocks.js:619 +#: js/turtleactions/RhythmActions.js:221 +#.TRANS: Un argumento de -1 da como resultado un valor de nota de 0. +msgid "An argument of -1 results in a note value of 0." msgstr "" -#: js/PitchBlocks.js:334 -#.TRANS: El bloque Tono en Hertz es el valor en hercios del tono de la nota que se está reproduciendo actualmente. -msgid "The Pitch in Hertz block is the value in Hertz of the pitch of the note currently being played." +#: js/blocks/RhythmBlocks.js:661 +#.TRANS: El bloque Punto extiende la duración de una nota en un 50%. +msgid "The Dot block extends the duration of a note by 50%." msgstr "" -#: js/PitchBlocks.js:367 -#: js/DictActions.js:87 -#.TRANS: tono actual -msgid "current pitch" +#: js/blocks/RhythmBlocks.js:663 +#.TRANS: Por ejemplo, una nota de un cuarto de puntos se reproducirá a 3/8 (1/4 + 1/8) de un tiempo. +msgid "Eg a dotted quarter note will play for 3/8 (1/4 + 1/8) of a beat." msgstr "" -#: js/PitchBlocks.js:373 -#.TRANS: El bloque de tono actual se utiliza con el bloque convertidor de tono. En el ejemplo anterior, el tono actual, sol 4, se muestra como 392 hercios. -msgid "The Current Pitch block is used with the Pitch Converter block. In the example above, current pitch, sol 4, is displayed as 392 hertz." +#: js/blocks/RhythmBlocks.js:765 +#.TRANS: Japanese only: note value block for drum +#.TRANS: Valor de nota tambor +msgid "note value drum" msgstr "" -#: js/PitchBlocks.js:410 -#.TRANS: Este bloque convierte el valor de tono de la última nota tocada en diferentes formatos como hertz, nombre de letra, número de tono, etc. -msgid "This block converts the pitch value of the last note played into different formats such as hertz, letter name, pitch number, et al." -msgstr "" +#: js/blocks/RhythmBlocks.js:829 +#.TRANS: 392 hertz +msgid "392 hertz" +msgstr "392 hertz" -#: js/PitchBlocks.js:434 -#.TRANS: alfabeto -msgid "alphabet" +#: js/blocks/RhythmBlocks.js:1119 +#.TRANS: El bloque Nota es un contenedor para uno o más bloques de tono. +msgid "The Note block is a container for one or more Pitch blocks." msgstr "" -#: js/PitchBlocks.js:436 -#.TRANS: Translate as "alphabet class" -#.TRANS: clase de alfabeto -msgid "letter class" +#: js/blocks/RhythmBlocks.js:1121 +#.TRANS: El bloque Notas especifica la duración (valor de la nota) de su contenido. +msgid "The Note block specifies the duration (note value) of its contents." msgstr "" -#: js/PitchBlocks.js:437 -#.TRANS: clase de solfege -msgid "solfege class" -msgstr "" +#: js/blocks/RhythmBlocks.js:1128 +#: js/blocks/PitchBlocks.js:974 +#: js/blocks/PitchBlocks.js:1007 +#: js/blocks/ProgramBlocks.js:1186 +#: js/blocks/ProgramBlocks.js:1227 +#: js/widgets/status.js:190 +#: js/widgets/temperament.js:464 +#: js/widgets/temperament.js:486 +#: js/widgets/temperament.js:496 +#: js/widgets/temperament.js:617 +#: plugins/rodi.rtp:192 +#.TRANS: a musical note consisting of pitch and duration +#.TRANS: nota +msgid "note" +msgstr "ohesaho" -#: js/PitchBlocks.js:438 -#.TRANS: musical y -msgid "staff y" +#: js/blocks/RhythmBlocks.js:1130 +#.TRANS: valor +msgid "value2" msgstr "" -#: js/PitchBlocks.js:439 -#.TRANS: sílaba solfege -msgid "solfege syllable" +#: js/blocks/RhythmBlocks.js:1200 +#.TRANS: definir frecuencia +msgid "define frequency" msgstr "" -#: js/PitchBlocks.js:440 -#.TRANS: clase de tono -msgid "pitch class" +#: js/blocks/RhythmBlocks.js:1218 +#: js/widgets/temperament.js:787 +#: js/widgets/temperament.js:1587 +#.TRANS: espacio de octava +msgid "octave space" msgstr "" -#: js/PitchBlocks.js:441 -#.TRANS: clase de escala -msgid "scalar class" +#: js/blocks/SensorsBlocks.js:36 +#.TRANS: El bloque de entrada solicita la entrada del teclado. +msgid "The Input block prompts for keyboard input." msgstr "" -#: js/PitchBlocks.js:443 -#.TRANS: nth grado -msgid "nth degree" +#: js/blocks/SensorsBlocks.js:46 +#.TRANS: el input +msgid "input" msgstr "" -#: js/PitchBlocks.js:444 -#.TRANS: tono a la sombra -msgid "pitch to shade" +#: js/blocks/SensorsBlocks.js:64 +#.TRANS: ingrese un valor +msgid "Input a value" msgstr "" -#: js/PitchBlocks.js:445 -#.TRANS: tono a color -msgid "pitch to color" +#: js/blocks/SensorsBlocks.js:126 +#.TRANS: valor de entrada +msgid "input value" msgstr "" -#: js/PitchBlocks.js:629 -#: js/musickeyboard.js:565 -#.TRANS: MIDI is a technical standard for electronic music -#.TRANS: MIDI -msgid "MIDI" +#: js/blocks/SensorsBlocks.js:131 +#.TRANS: El bloque de valor de entrada almacena la entrada. +msgid "The Input-value block stores the input." msgstr "" -#: js/PitchBlocks.js:642 -#.TRANS: set an offset associated with the numeric piano keyboard mapping -#.TRANS: fijar offset del número de tono -msgid "set pitch number offset" -msgstr "Moĩ offset pu papaha" +#: js/blocks/SensorsBlocks.js:238 +#.TRANS: volumen +msgid "loudness" +msgstr "pu hatãngue" -#: js/PitchBlocks.js:645 -#.TRANS: El bloque Fijar del número de tono establecido se usa para establecer el desplazamiento para asignar números de tono a tono y octava. -msgid "The Set pitch number offset block is used to set the offset for mapping pitch numbers to pitch and octave." +#: js/blocks/SensorsBlocks.js:245 +#.TRANS: El bloque Volumen devuelve el volumen detectado por el micrófono. +msgid "The Loudness block returns the volume detected by the microphone." msgstr "" -#: js/PitchBlocks.js:679 -#.TRANS: convert piano key number (1-88) to pitch -#.TRANS: número a tono -msgid "number to pitch" -msgstr "Pu papaha" +#: js/blocks/SensorsBlocks.js:300 +#.TRANS: click +msgid "click" +msgstr "click" -#: js/PitchBlocks.js:682 -#.TRANS: El bloque Número a tono convertirá un número de tono en un nombre pich. -msgid "The Number to pitch block will convert a pitch number to a pich name." +#: js/blocks/SensorsBlocks.js:306 +#.TRANS: El bloque Click activa un evento si se ha hecho clic en un ratón. +msgid "The Click block triggers an event if a mouse has been clicked." msgstr "" -#: js/PitchBlocks.js:715 -#.TRANS: convert piano key number (1-88) to octave -#.TRANS: número a octava -msgid "number to octave" -msgstr "Octava papaha" - -#: js/PitchBlocks.js:717 -#.TRANS: El bloque Número a octava convertirá un número de tono en una octava. -msgid "The Number to octave block will convert a pitch number to an octave." +#: js/blocks/SensorsBlocks.js:313 +#.TRANS: El bloque Click activa un evento si se ha hecho clic en una tortuga. +msgid "The Click block triggers an event if a turtle has been clicked." msgstr "" -#: js/PitchBlocks.js:726 -#.TRANS: y para tono -msgid "y to pitch" +#: js/blocks/SensorsBlocks.js:342 +#.TRANS: cursor sobre +msgid "cursor over" msgstr "" -#: js/PitchBlocks.js:729 -#.TRANS: El bloque Y a tono convertirá una posición de pentagrama y a la notación de tono correspondiente. -msgid "Y to pitch block will convert a staff y position to corresponding pitch notation." +#: js/blocks/SensorsBlocks.js:387 +#.TRANS: cursor fuera +msgid "cursor out" msgstr "" -#: js/PitchBlocks.js:841 -#.TRANS: selector accidental -msgid "accidental selector" +#: js/blocks/SensorsBlocks.js:433 +#.TRANS: el botón presionado +msgid "cursor button down" msgstr "" -#: js/PitchBlocks.js:844 -#.TRANS: El bloque Selector de accidental se usa para elegir entre doble filo, agudo, natural, plano y doble plano. -msgid "The Accidental selector block is used to choose between double-sharp, sharp, natural, flat, and double-flat." +#: js/blocks/SensorsBlocks.js:477 +#.TRANS: el botón arriba +msgid "cursor button up" msgstr "" -#: js/PitchBlocks.js:858 -#.TRANS: El tono puede especificarse en términos de ni dha pa ma ga re sa. -msgid "Pitch can be specified in terms of ni dha pa ma ga re sa." -msgstr "" +#: js/blocks/SensorsBlocks.js:521 +#: js/blocks/PenBlocks.js:48 +#: plugins/rodi.rtp:219 +#.TRANS: azur +msgid "blue" +msgstr "hovy" -#: js/PitchBlocks.js:872 -#.TRANS: El tono puede especificarse en términos de C D E F G A B. -msgid "Pitch can be specified in terms of C D E F G A B." -msgstr "" +#: js/blocks/SensorsBlocks.js:577 +#: js/blocks/PenBlocks.js:64 +#: plugins/rodi.rtp:218 +#.TRANS: verde +msgid "green" +msgstr "hovy hũ" -#: js/PitchBlocks.js:883 -#.TRANS: -msgid "solfege" -msgstr "" +#: js/blocks/SensorsBlocks.js:633 +#: js/blocks/PenBlocks.js:112 +#: plugins/rodi.rtp:217 +#.TRANS: rojo +msgid "red" +msgstr "pytã" -#: js/PitchBlocks.js:886 -#.TRANS: El tono puede especificarse en términos de do re mi fa sol la si. -msgid "Pitch can be specified in terms of do re mi fa sol la ti." +#: js/blocks/SensorsBlocks.js:638 +#.TRANS: El bloque Obtener rojo devuelve el componente rojo del píxel debajo del ratón. +msgid "The Get red block returns the red component of the pixel under the mouse." msgstr "" -#: js/PitchBlocks.js:920 -#.TRANS: El bloque Invertir gira cualquier nota contenida alrededor de una nota de destino. -msgid "The Invert block rotates any contained notes around a target note." +#: js/blocks/SensorsBlocks.js:644 +#.TRANS: El bloque Obtener rojo devuelve el componente rojo del píxel debajo de la tortuga. +msgid "The Get red block returns the red component of the pixel under the turtle." msgstr "" -#: js/PitchBlocks.js:927 -#.TRANS: pitch inversion rotates a pitch around another pitch -#.TRANS: invertir -msgid "invert" -msgstr "Embojere" - -#: js/PitchBlocks.js:929 -#: js/PitchBlocks.js:935 -#: js/PitchActions.js:727 -#: js/musicutils.js:726 -#: js/musicutils.js:902 -#.TRANS: invert based on even or odd number or musical scale -#.TRANS: even numbers -#.TRANS: par -msgid "even" -msgstr "mokõi" +#: js/blocks/SensorsBlocks.js:685 +#: plugins/rodi.rtp:216 +#.TRANS: color del pixel +msgid "pixel color" +msgstr "pixel sa’y" -#: js/PitchBlocks.js:935 -#: js/PitchActions.js:729 -#: js/musicutils.js:728 -#: js/musicutils.js:903 -#.TRANS: odd numbers -#.TRANS: impar -msgid "odd" -msgstr "jojaha’ỹ" +#: js/blocks/SensorsBlocks.js:690 +#.TRANS: El bloque Obtener píxel devuelve el color del píxel debajo del ratón. +msgid "The Get pixel block returns the color of the pixel under the mouse." +msgstr "" -#: js/PitchBlocks.js:935 -#: js/PitchActions.js:731 -#: js/musicutils.js:729 -#: js/musicutils.js:904 -#.TRANS: escalar -msgid "scalar" +#: js/blocks/SensorsBlocks.js:696 +#.TRANS: El bloque Obtener píxel devuelve el color del píxel debajo de la tortuga. +msgid "The Get pixel block returns the color of the pixel under the turtle." msgstr "" -#: js/PitchBlocks.js:966 -#.TRANS: pitch inversion rotates a pitch around another pitch (odd number) -#.TRANS: invertir (impar) -msgid "invert (odd)" -msgstr "Embojere (joja’ỹva)" +#: js/blocks/SensorsBlocks.js:758 +#.TRANS: tiempo +msgid "time" +msgstr "ára" -#: js/PitchBlocks.js:999 -#.TRANS: pitch inversion rotates a pitch around another pitch (even number) -#.TRANS: invertir (par) -msgid "invert (even)" -msgstr "Embojere (jojava)" +#: js/blocks/SensorsBlocks.js:804 +#.TRANS: cursor y +msgid "cursor y" +msgstr "mbo’esyryha y" -#: js/PitchBlocks.js:1020 -#.TRANS: register is the octave of the current pitch -#.TRANS: registro -msgid "register" +#: js/blocks/SensorsBlocks.js:809 +#.TRANS: El bloque Cursor Y devuelve la posición vertical del cursor. +msgid "The Cursor Y block returns the vertical position of the mouse." msgstr "" -#: js/PitchBlocks.js:1024 -#.TRANS: El bloque Registro proporciona una manera fácil de modificar el registro (octava) de las notas que lo siguen. -msgid "The Register block provides an easy way to modify the register (octave) of the notes that follow it." -msgstr "" +#: js/blocks/SensorsBlocks.js:845 +#.TRANS: cursor x +msgid "cursor x" +msgstr "mbo’esyryha x" -#: js/PitchBlocks.js:1074 -#.TRANS: El bloque de transposición de semitono desplazará los pasos contenidos dentro de los bloques de notas hacia arriba (o hacia abajo) medio pasos. -msgid "The Semi-tone transposition block will shift the pitches contained inside Note blocks up (or down) by half steps." +#: js/blocks/SensorsBlocks.js:850 +#.TRANS: El bloque Cursor X devuelve la posición horizontal del ratón. +msgid "The Cursor X block returns the horizontal position of the mouse." msgstr "" -#: js/PitchBlocks.js:1076 -#.TRANS: En el ejemplo que se muestra arriba, sol se desplaza hasta sol#. -msgid "In the example shown above, sol is shifted up to sol#." -msgstr "" +#: js/blocks/SensorsBlocks.js:886 +#.TRANS: botón del ratón +msgid "mouse button" +msgstr "anguja votõ" -#: js/PitchBlocks.js:1082 -#.TRANS: adjust the amount of shift (up or down) of a pitch -#.TRANS: transposición semitono -msgid "semi-tone transpose" +#: js/blocks/SensorsBlocks.js:888 +#.TRANS: El bloque Botón del ratón devuelve Verdadero si se presiona el botón del ratón. +msgid "The Mouse-button block returns True if the mouse button is pressed." msgstr "" -#: js/PitchBlocks.js:1115 -#.TRANS: El bloque transponer por razón cambiará los tonos contenidos dentro de los bloques de notas hacia arriba (o hacia abajo) en una proporción -msgid "The Transpose by Ratio block will shift the pitches contained inside Note blocks up (or down) by a ratio" -msgstr "" +#: js/blocks/SensorsBlocks.js:934 +#.TRANS: a ASCII +msgid "to ASCII" +msgstr "ASCII pe" -#: js/PitchBlocks.js:1121 -#.TRANS: adjust the amount of shift (up or down) of a pitch -#.TRANS: transponer por razón -msgid "transpose by ratio" +#: js/blocks/SensorsBlocks.js:938 +#.TRANS: El bloque a ASCII convierte números a letras. +msgid "The To ASCII block converts numbers to letters." msgstr "" -#: js/PitchBlocks.js:1204 -#.TRANS: down sixth means the note is five scale degrees below current note -#.TRANS: sexto abajo -msgid "down sixth" +#: js/blocks/SensorsBlocks.js:1005 +#.TRANS: El bloque teclado devuelve entrada de teclado. +msgid "The Keyboard block returns computer keyboard input." msgstr "" -#: js/PitchBlocks.js:1223 -#.TRANS: down third means the note is two scale degrees below current note -#.TRANS: tercero abajo -msgid "down third" +#: js/blocks/RhythmBlockPaletteBlocks.js:50 +#: js/blocks/RhythmBlockPaletteBlocks.js:233 +#.TRANS: rhythm block +#.TRANS: translate "rhythm1" as rhythm +#.TRANS: ritmo +msgid "rhythm1" msgstr "" -#: js/PitchBlocks.js:1242 -#.TRANS: seventh means the note is the six scale degrees above current note -#.TRANS: séptimo -msgid "seventh" -msgstr "" +#: js/blocks/RhythmBlockPaletteBlocks.js:70 +#: js/blocks/RhythmBlockPaletteBlocks.js:252 +#: js/blocks/RhythmBlockPaletteBlocks.js:485 +#: js/blocks/RhythmBlockPaletteBlocks.js:554 +#: js/blocks/RhythmBlockPaletteBlocks.js:875 +#.TRANS: número de notas +msgid "number of notes" +msgstr "notas papaha" -#: js/PitchBlocks.js:1261 -#.TRANS: sixth means the note is the five scale degrees above current note -#.TRANS: sexto -msgid "sixth" +#: js/blocks/RhythmBlockPaletteBlocks.js:126 +#.TRANS: ritmo polifónico +msgid "polyphonic rhythm" msgstr "" -#: js/PitchBlocks.js:1280 -#.TRANS: fifth means the note is the four scale degrees above current note -#.TRANS: quinto -msgid "fifth" +#: js/blocks/RhythmBlockPaletteBlocks.js:219 +#.TRANS: El bloque Ritmo se utiliza para generar patrones de ritmo. +msgid "The Rhythm block is used to generate rhythm patterns." msgstr "" -#: js/PitchBlocks.js:1300 -#.TRANS: fourth means the note is three scale degrees above current note -#.TRANS: cuarto -msgid "fourth" -msgstr "" +#: js/blocks/RhythmBlockPaletteBlocks.js:280 +#.TRANS: 1/64 nota +msgid "1/64 note" +msgstr "1/64 nota" -#: js/PitchBlocks.js:1319 -#.TRANS: third means the note is two scale degrees above current note -#.TRANS: tercio -msgid "third" -msgstr "" +#: js/blocks/RhythmBlockPaletteBlocks.js:304 +#.TRANS: 1/32 nota +msgid "1/32 note" +msgstr "1/32 nota" -#: js/PitchBlocks.js:1338 -#.TRANS: second means the note is one scale degree above current note -#.TRANS: segundo -msgid "second" -msgstr "" +#: js/blocks/RhythmBlockPaletteBlocks.js:332 +#.TRANS: 1/16 nota +msgid "1/16 note" +msgstr "1/16 nota" -#: js/PitchBlocks.js:1379 -#.TRANS: El bloque Transposición escalar desplazará los tonos contenidos dentro de los bloques de notas hacia arriba (o hacia abajo) de la escala. -msgid "The Scalar transposition block will shift the pitches contained inside Note blocks up (or down) the scale." -msgstr "" +#: js/blocks/RhythmBlockPaletteBlocks.js:360 +#.TRANS: 1/8 nota +msgid "eighth note" +msgstr "1/8 nota" -#: js/PitchBlocks.js:1381 -#.TRANS: En el ejemplo que se muestra arriba, el sol se desplaza hacia arriba a la. -msgid "In the example shown above, sol is shifted up to la." -msgstr "" +#: js/blocks/RhythmBlockPaletteBlocks.js:388 +#.TRANS: 1/4 nota +msgid "quarter note" +msgstr "1/4 nota" + +#: js/blocks/RhythmBlockPaletteBlocks.js:416 +#.TRANS: 1/2 nota +msgid "half note" +msgstr "1/2 nota" + +#: js/blocks/RhythmBlockPaletteBlocks.js:444 +#.TRANS: nota completa +msgid "whole note" +msgstr "nota oimbáva" -#: js/PitchBlocks.js:1388 -#.TRANS: adjust the amount of shift (up or down) of a pitch by musical scale (scalar) steps -#.TRANS: transposición escalar -msgid "scalar transpose" -msgstr "" +#: js/blocks/RhythmBlockPaletteBlocks.js:482 +#: js/blocks/RhythmBlockPaletteBlocks.js:551 +#: js/blocks/RhythmBlockPaletteBlocks.js:602 +#.TRANS: A tuplet is a note value divided into irregular time values. +#.TRANS: tuplet +msgid "tuplet" +msgstr "tuplet" -#: js/PitchBlocks.js:1423 -#.TRANS: El bloque Accidental se utiliza para crear objetos punzantes y pisos. -msgid "The Accidental block is used to create sharps and flats" -msgstr "" +#: js/blocks/RhythmBlockPaletteBlocks.js:768 +#.TRANS: septeto +msgid "septuplet" +msgstr " septuplet" -#: js/PitchBlocks.js:1430 -#.TRANS: An accidental is a modification to a pitch, e.g., sharp or flat. -#.TRANS: anular accidental -msgid "accidental override" -msgstr "" +#: js/blocks/RhythmBlockPaletteBlocks.js:796 +#.TRANS: quinteto +msgid "quintuplet" +msgstr "quintuplet" -#: js/PitchBlocks.js:1543 -#.TRANS: El bloque Hertz (en combinación con un bloque numérico) reproducirá un sonido a la frecuencia especificada. -msgid "The Hertz block (in combination with a Number block) will play a sound at the specified frequency." -msgstr "" +#: js/blocks/RhythmBlockPaletteBlocks.js:824 +#.TRANS: trillizo +msgid "triplet" +msgstr "triplet" -#: js/PitchBlocks.js:1633 -#.TRANS: El bloque de número de tono reproducirá un tono asociado por su número, p. 0 para C y 7 para G. -msgid "The Pitch Number block will play a pitch associated by its number, e.g. 0 for C and 7 for G." -msgstr "" +#: js/blocks/RhythmBlockPaletteBlocks.js:851 +#.TRANS: tuplet simple +msgid "simple tuplet" +msgstr "simple tuplet" -#: js/PitchBlocks.js:1665 -#: js/PitchBlocks.js:1707 -#.TRANS: a numeric mapping of the notes in an octave based on the musical mode -#.TRANS: a numeric mapping of the notes in an octave based on the musical mode -#.TRANS: nth tono modal -msgid "nth modal pitch" +#: js/blocks/RhythmBlockPaletteBlocks.js:861 +#.TRANS: Tuplets son una colección de notas que se escalan a una duración específica. +msgid "Tuplets are a collection of notes that get scaled to a specific duration." msgstr "" -#: js/PitchBlocks.js:1668 -#.TRANS: Nth Modal Pitch toma el patrón de tonos en semitonos para un modo y hace que cada punto sea un grado del modo, -msgid "n^th Modal Pitch takes the pattern of pitches in semitones for a mode and makes each point a degree of the mode," +#: js/blocks/DrumBlocks.js:59 +#.TRANS: El bloque Nombre de ruido se utiliza para seleccionar un sintetizador de ruido. +msgid "The Noise name block is used to select a noise synthesizer." msgstr "" -#: js/PitchBlocks.js:1670 -#.TRANS: comenzando desde 1 e independientemente del marco tonal (es decir, no siempre 8 notas en la octava) -msgid "starting from 1 and regardless of tonal framework (i.e. not always 8 notes in the octave)" +#: js/blocks/DrumBlocks.js:102 +#.TRANS: El bloque nombre del tambor se utiliza para seleccionar un tambor. +msgid "The Drum name block is used to select a drum." msgstr "" -#: js/PitchBlocks.js:1711 -#.TRANS: Nth modal tono un número como entrada como el nth grado para el modo dado. 0 es la primera posición, 1 es la segunda, -1 es la nota anterior a la primera, etc. -msgid "N^th Modal Pitch takes a number as an input as the n^th degree for the given mode. 0 is the first position, 1 is the second, -1 is the note before the first etc." +#: js/blocks/DrumBlocks.js:146 +#.TRANS: El bloque nombre de efectos se utiliza para seleccionar un efecto de sonido. +msgid "The Effects name block is used to select a sound effect." msgstr "" -#: js/PitchBlocks.js:1713 -#.TRANS: Los tonos cambian según el modo especificado sin necesidad de grafías. -msgid "The pitches change according to the mode specified without any need for respellings." +#: js/blocks/DrumBlocks.js:163 +#.TRANS: ruido +msgid "noise" msgstr "" -#: js/PitchBlocks.js:1752 -#.TRANS: El grado de escala es una convención común en la música. El grado de ecala ofrece siete posiciones posibles en la escala (1-7) y puede modificarse mediante alteraciones. -msgid "Scale Degree is a common convention in music. Scale Degree offers seven possible positions in the scale (1-7) and can be modified via accidentals." +#: js/blocks/DrumBlocks.js:177 +#.TRANS: El bloque Ruido de reproducción generará ruido blanco, rosa o marrón. +msgid "The Play noise block will generate white, pink, or brown noise." msgstr "" -#: js/PitchBlocks.js:1754 -#.TRANS: El grado de la escala de 1 es siempre el primer tono de una escala determinada, independientemente de la octava. -msgid "Scale Degree 1 is always the first pitch in a given scale, regardless of octave." +#: js/blocks/DrumBlocks.js:317 +#.TRANS: Reemplace cada instancia de un tono con un sonido de tambor. +msgid "Replace every instance of a pitch with a drum sound." msgstr "" -#: js/PitchBlocks.js:1776 -#.TRANS: step some number of notes in current musical scale -#.TRANS: paso escalar -msgid "scalar step" +#: js/blocks/DrumBlocks.js:328 +#.TRANS: map a pitch to a drum sound +#.TRANS: mapa de tono al tambor +msgid "map pitch to drum" msgstr "" -#: js/PitchBlocks.js:1781 -#.TRANS: El bloque Paso escalar (en combinación con un bloque numérico) reproducirá el siguiente tono en una escala, -msgid "The Scalar Step block (in combination with a Number block) will play the next pitch in a scale," +#: js/blocks/DrumBlocks.js:395 +#.TRANS: En el ejemplo anterior, se reproducirá un sonido de bombo en lugar de sol. +msgid "In the example above, a kick drum sound will be played instead of sol." msgstr "" -#: js/PitchBlocks.js:1783 -#.TRANS: por ejemplo, si la última nota tocada fue sol, el paso escalar 1 tocará la. -msgid "eg if the last note played was sol, Scalar Step 1 will play la." +#: js/blocks/DrumBlocks.js:407 +#.TRANS: set the current drum sound for playback +#.TRANS: fijar tambor +msgid "set drum" +msgstr "emoĩ angu’atarara" + +#: js/blocks/DrumBlocks.js:451 +#.TRANS: efecto de sonido +msgid "sound effect" msgstr "" -#: js/PitchBlocks.js:1818 -#.TRANS: The Pitch block specifies the pitch name and octave of a note that together determine the frequency of the note. -msgid "The Pitch block specifies the pitch name and octave of a note that together determine the frequency of the note." +#: js/blocks/DrumBlocks.js:489 +#.TRANS: Puede utilizar varios bloques de percusión dentro de un bloque de notas. +msgid "You can use multiple Drum blocks within a Note block." msgstr "" -#: js/GraphicsBlocks.js:46 -#: js/DictActions.js:77 -#: js/DictActions.js:155 -#: js/DictActions.js:189 +#: js/blocks/GraphicsBlocks.js:46 +#: js/turtleactions/DictActions.js:77 +#: js/turtleactions/DictActions.js:144 +#: js/turtleactions/DictActions.js:173 #.TRANS: rumbo msgid "heading" msgstr "rumbo" -#: js/GraphicsBlocks.js:56 +#: js/blocks/GraphicsBlocks.js:56 #.TRANS: El bloque rumbo devuelve la orientación del ratón. msgid "The Heading block returns the orientation of the mouse." msgstr "" -#: js/GraphicsBlocks.js:62 +#: js/blocks/GraphicsBlocks.js:62 #.TRANS: El bloque rumbo devuelve la orientación de la tortuga. msgid "The Heading block returns the orientation of the turtle." msgstr "" -#: js/GraphicsBlocks.js:133 +#: js/blocks/GraphicsBlocks.js:133 #.TRANS: El bloque Y devuelve la posición horizontal del ratón. msgid "The Y block returns the vertical position of the mouse." msgstr "" -#: js/GraphicsBlocks.js:140 +#: js/blocks/GraphicsBlocks.js:140 #.TRANS: El bloque Y devuelve la posición horizontal de la tortuga. msgid "The Y block returns the vertical position of the turtle." msgstr "" -#: js/GraphicsBlocks.js:149 +#: js/blocks/GraphicsBlocks.js:149 #.TRANS: y msgid "y3" msgstr "" -#: js/GraphicsBlocks.js:219 +#: js/blocks/GraphicsBlocks.js:219 #.TRANS: El bloque X devuelve la posición horizontal del ratón. msgid "The X block returns the horizontal position of the mouse." msgstr "" -#: js/GraphicsBlocks.js:226 +#: js/blocks/GraphicsBlocks.js:226 #.TRANS: El bloque X devuelve la posición horizontal de la tortuga. msgid "The X block returns the horizontal position of the turtle." msgstr "" -#: js/GraphicsBlocks.js:235 +#: js/blocks/GraphicsBlocks.js:235 #.TRANS: x msgid "x3" msgstr "" -#: js/GraphicsBlocks.js:295 +#: js/blocks/GraphicsBlocks.js:295 #.TRANS: desplazar xy msgid "scroll xy" msgstr "" -#: js/GraphicsBlocks.js:303 +#: js/blocks/GraphicsBlocks.js:303 #.TRANS: El bloque Desplazar XY mueve el lienzo. msgid "The Scroll XY block moves the canvas." msgstr "" -#: js/GraphicsBlocks.js:313 +#: js/blocks/GraphicsBlocks.js:313 #.TRANS: x msgid "x2" msgstr "" -#: js/GraphicsBlocks.js:313 +#: js/blocks/GraphicsBlocks.js:313 #.TRANS: y msgid "y2" msgstr "" -#: js/GraphicsBlocks.js:373 -#: js/temperament.js:213 -#: js/temperament.js:241 +#: js/blocks/GraphicsBlocks.js:373 +#: js/widgets/temperament.js:319 +#: js/widgets/temperament.js:347 #.TRANS: limpiar msgid "clear" msgstr "mopotĩ" -#: js/GraphicsBlocks.js:426 +#: js/blocks/GraphicsBlocks.js:426 #.TRANS: El bloque Control-point 2 establece el segundo punto de control para la curva Bezier. msgid "The Control-point 2 block sets the second control point for the Bezier curve." msgstr "" -#: js/GraphicsBlocks.js:433 +#: js/blocks/GraphicsBlocks.js:433 #.TRANS: punto de control 2 msgid "control point 2" msgstr "kyta ñemañaha 2" -#: js/GraphicsBlocks.js:436 -#: js/GraphicsBlocks.js:487 -#: js/GraphicsBlocks.js:534 -#: js/GraphicsBlocks.js:750 +#: js/blocks/GraphicsBlocks.js:436 +#: js/blocks/GraphicsBlocks.js:487 +#: js/blocks/GraphicsBlocks.js:534 +#: js/blocks/GraphicsBlocks.js:750 #.TRANS: x msgid "x1" msgstr "" -#: js/GraphicsBlocks.js:436 -#: js/GraphicsBlocks.js:487 -#: js/GraphicsBlocks.js:534 -#: js/GraphicsBlocks.js:750 +#: js/blocks/GraphicsBlocks.js:436 +#: js/blocks/GraphicsBlocks.js:487 +#: js/blocks/GraphicsBlocks.js:534 +#: js/blocks/GraphicsBlocks.js:750 #.TRANS: y msgid "y1" msgstr "" -#: js/GraphicsBlocks.js:477 +#: js/blocks/GraphicsBlocks.js:477 #.TRANS: El bloque Control-point 1 establece el segundo punto de control para la curva Bezier. msgid "The Control-point 1 block sets the first control point for the Bezier curve." msgstr "" -#: js/GraphicsBlocks.js:484 +#: js/blocks/GraphicsBlocks.js:484 #.TRANS: punto de control 1 msgid "control point 1" msgstr "kyta ñemañaha 1" -#: js/GraphicsBlocks.js:527 +#: js/blocks/GraphicsBlocks.js:527 #.TRANS: El bloque bezier dibuja una curva bezier. msgid "The Bezier block draws a Bezier curve." msgstr "" -#: js/GraphicsBlocks.js:531 +#: js/blocks/GraphicsBlocks.js:531 #.TRANS: bezier msgid "bezier" msgstr "bezier" -#: js/GraphicsBlocks.js:592 +#: js/blocks/GraphicsBlocks.js:592 +#.TRANS: El bloque Arco mueve la tortuga en un arco. msgid "The Arc block moves the turtle in an arc." msgstr "" -#: js/GraphicsBlocks.js:600 +#: js/blocks/GraphicsBlocks.js:600 #.TRANS: arco msgid "arc" msgstr "yvyrapã" -#: js/GraphicsBlocks.js:603 +#: js/blocks/GraphicsBlocks.js:603 #.TRANS: ángulo msgid "angle" msgstr "takamby" -#: js/GraphicsBlocks.js:603 +#: js/blocks/GraphicsBlocks.js:603 #.TRANS: radio msgid "radius" msgstr "radio (geometría)" -#: js/GraphicsBlocks.js:620 -#: js/GraphicsBlocks.js:767 -#: js/GraphicsBlocks.js:1010 -#: js/GraphicsBlocks.js:1093 +#: js/blocks/GraphicsBlocks.js:620 +#: js/blocks/GraphicsBlocks.js:767 +#: js/blocks/GraphicsBlocks.js:1010 +#: js/blocks/GraphicsBlocks.js:1093 +#.TRANS: El valor debe estar entre -5000 y 5000 cuando el modo Wrap está desactivado. msgid "Value must be within -5000 to 5000 when Wrap Mode is off." msgstr "" -#: js/GraphicsBlocks.js:622 -#: js/GraphicsBlocks.js:769 -#: js/GraphicsBlocks.js:1012 -#: js/GraphicsBlocks.js:1095 +#: js/blocks/GraphicsBlocks.js:622 +#: js/blocks/GraphicsBlocks.js:769 +#: js/blocks/GraphicsBlocks.js:1012 +#: js/blocks/GraphicsBlocks.js:1095 +#.TRANS: El valor debe estar entre -20000 y 20000 cuando el modo Wrap está activado. msgid "Value must be within -20000 to 20000 when Wrap Mode is on." msgstr "" -#: js/GraphicsBlocks.js:660 +#: js/blocks/GraphicsBlocks.js:660 #.TRANS: fijar rumbo msgid "set heading" msgstr "amoĩ rumbo" -#: js/GraphicsBlocks.js:673 +#: js/blocks/GraphicsBlocks.js:673 #.TRANS: El bloque fijar rumbo establece el rumbo de la tortuga. msgid "The Set heading block sets the heading of the turtle." msgstr "" -#: js/GraphicsBlocks.js:733 +#: js/blocks/GraphicsBlocks.js:733 #.TRANS: El bloque Fijar XY mueve el ratón a una posición específica en la pantalla. msgid "The Set XY block moves the mouse to a specific position on the screen." msgstr "" -#: js/GraphicsBlocks.js:739 +#: js/blocks/GraphicsBlocks.js:739 #.TRANS: El bloque Fijar XY mueve la tortuga a una posición específica en la pantalla. msgid "The Set XY block moves the turtle to a specific position on the screen." msgstr "" -#: js/GraphicsBlocks.js:747 +#: js/blocks/GraphicsBlocks.js:747 #.TRANS: fijar xy msgid "set xy" msgstr "emoĩ xy" -#: js/GraphicsBlocks.js:819 +#: js/blocks/GraphicsBlocks.js:819 #.TRANS: El bloque Derecha gira el ratón hacia la derecha. msgid "The Right block turns the mouse to the right." msgstr "" -#: js/GraphicsBlocks.js:826 +#: js/blocks/GraphicsBlocks.js:826 #.TRANS: El bloque Derecha gira la tortuga hacia la derecha. msgid "The Right block turns the turtle to the right." msgstr "" -#: js/GraphicsBlocks.js:835 +#: js/blocks/GraphicsBlocks.js:835 #.TRANS: derecha msgid "right1" msgstr "" -#: js/GraphicsBlocks.js:835 +#: js/blocks/GraphicsBlocks.js:835 #: plugins/rodi.rtp:77 #: plugins/rodi.rtp:340 #: plugins/rodi.rtp:375 @@ -7585,22 +6425,22 @@ msgstr "" msgid "right" msgstr "akatúa" -#: js/GraphicsBlocks.js:899 +#: js/blocks/GraphicsBlocks.js:899 #.TRANS: El bloque izquierdo gira el ratón hacia la izquierda. msgid "The Left block turns the mouse to the left." msgstr "" -#: js/GraphicsBlocks.js:906 +#: js/blocks/GraphicsBlocks.js:906 #.TRANS: El bloque izquierdo gira la tortuga hacia la izquierda. msgid "The Left block turns the turtle to the left." msgstr "" -#: js/GraphicsBlocks.js:915 +#: js/blocks/GraphicsBlocks.js:915 #.TRANS: izquierda msgid "left1" msgstr "" -#: js/GraphicsBlocks.js:915 +#: js/blocks/GraphicsBlocks.js:915 #: plugins/rodi.rtp:79 #: plugins/rodi.rtp:339 #: plugins/rodi.rtp:362 @@ -7608,2972 +6448,2684 @@ msgstr "" msgid "left" msgstr "asúpe" -#: js/GraphicsBlocks.js:967 -#: js/temperament.js:734 -#: js/temperament.js:933 +#: js/blocks/GraphicsBlocks.js:967 +#: js/widgets/temperament.js:875 +#: js/widgets/temperament.js:1078 #: plugins/rodi.rtp:69 #: plugins/rodi.rtp:387 #.TRANS: atrás msgid "back" msgstr "tapykuépe" -#: js/GraphicsBlocks.js:976 +#: js/blocks/GraphicsBlocks.js:976 #.TRANS: El bloque Atrás mueve el ratón hacia atrás. msgid "The Back block moves the mouse backward." msgstr "" -#: js/GraphicsBlocks.js:983 +#: js/blocks/GraphicsBlocks.js:983 #.TRANS: El bloque Atrás mueve la tortuga hacia atrás. msgid "The Back block moves the turtle backward." msgstr "" -#: js/GraphicsBlocks.js:1050 +#: js/blocks/GraphicsBlocks.js:1050 #: plugins/rodi.rtp:71 #: plugins/rodi.rtp:400 #.TRANS: adelante msgid "forward" msgstr "tenondépe" -#: js/GraphicsBlocks.js:1059 +#: js/blocks/GraphicsBlocks.js:1059 #.TRANS: El bloque Adelante mueve el ratón hacia adelante. msgid "The Forward block moves the mouse forward." msgstr "" -#: js/GraphicsBlocks.js:1066 +#: js/blocks/GraphicsBlocks.js:1066 #.TRANS: El bloque Adelante mueve la tortuga hacia adelante. msgid "The Forward block moves the turtle forward." msgstr "" -#: js/GraphicsBlocks.js:1154 -#: js/GraphicsBlocks.js:1172 +#: js/blocks/GraphicsBlocks.js:1154 +#: js/blocks/GraphicsBlocks.js:1172 #.TRANS: envolver msgid "wrap" msgstr "" -#: js/OrnamentBlocks.js:32 -#.TRANS: factor de staccato -msgid "staccato factor" -msgstr "staccato ypy" - -#: js/OrnamentBlocks.js:108 -#.TRANS: factor de legato -msgid "slur factor" -msgstr "legato ypy" - -#: js/OrnamentBlocks.js:217 -#: js/OrnamentBlocks.js:309 -#.TRANS: the neighbor refers to a neighboring note, e.g., D is a neighbor of C -#.TRANS: vecino -msgid "neighbor" -msgstr "" - -#: js/OrnamentBlocks.js:293 -#.TRANS: El bloque Vecino cambia rápidamente entre los tonos vecinos. -msgid "The Neighbor block rapidly switches between neighboring pitches." -msgstr "" - -#: js/OrnamentBlocks.js:364 -#.TRANS: deslizarse -msgid "glide" -msgstr "" - -#: js/OrnamentBlocks.js:479 -#: js/OrnamentBlocks.js:643 -#.TRANS: legato -msgid "slur" -msgstr "legato" - -#: js/OrnamentBlocks.js:558 -#: js/OrnamentBlocks.js:710 -#.TRANS: play each note sharply detached from the others -#.TRANS: staccato -msgid "staccato" -msgstr "staccato" - -#: js/PenBlocks.js:24 +#: js/blocks/PenBlocks.js:30 #.TRANS: morado msgid "purple" msgstr "" -#: js/PenBlocks.js:37 -#: js/SensorsBlocks.js:521 -#: plugins/rodi.rtp:219 -#.TRANS: azur -msgid "blue" -msgstr "hovy" - -#: js/PenBlocks.js:50 -#: js/SensorsBlocks.js:577 -#: plugins/rodi.rtp:218 -#.TRANS: verde -msgid "green" -msgstr "hovy hũ" - -#: js/PenBlocks.js:63 +#: js/blocks/PenBlocks.js:80 #.TRANS: amarillo msgid "yellow" msgstr "" -#: js/PenBlocks.js:76 +#: js/blocks/PenBlocks.js:96 #: plugins/nutrition.rtp:164 #.TRANS: naranja msgid "orange" msgstr "narãha" -#: js/PenBlocks.js:89 -#: js/SensorsBlocks.js:633 -#: plugins/rodi.rtp:217 -#.TRANS: rojo -msgid "red" -msgstr "pytã" - -#: js/PenBlocks.js:102 +#: js/blocks/PenBlocks.js:128 #.TRANS: blanco msgid "white" msgstr "" -#: js/PenBlocks.js:115 +#: js/blocks/PenBlocks.js:144 #.TRANS: negro msgid "black" msgstr "" -#: js/PenBlocks.js:128 +#: js/blocks/PenBlocks.js:163 #.TRANS: iniciar relleno msgid "begin fill" msgstr "" -#: js/PenBlocks.js:143 +#: js/blocks/PenBlocks.js:190 #.TRANS: Cargar proyecto desde archivo msgid "end fill" msgstr "" -#: js/PenBlocks.js:159 -#: js/PenBlocks.js:386 +#: js/blocks/PenBlocks.js:212 +#: js/blocks/PenBlocks.js:560 #.TRANS: set the background color #.TRANS: rellenar pantalla msgid "background" msgstr "emyenyhe tendahesaperã" -#: js/PenBlocks.js:206 -#: js/DictActions.js:71 -#: js/DictActions.js:149 -#: js/DictActions.js:186 +#: js/blocks/PenBlocks.js:274 +#: js/turtleactions/DictActions.js:71 +#: js/turtleactions/DictActions.js:138 +#: js/turtleactions/DictActions.js:170 #.TRANS: gris msgid "grey" msgstr "hungy" -#: js/PenBlocks.js:210 +#: js/blocks/PenBlocks.js:282 #.TRANS: El bloque gris devuelve el valor gris actual de la pluma. msgid "The Grey block returns the current pen grey value." msgstr "" -#: js/PenBlocks.js:243 -#: js/DictActions.js:69 -#: js/DictActions.js:147 -#: js/DictActions.js:185 +#: js/blocks/PenBlocks.js:340 +#: js/turtleactions/DictActions.js:69 +#: js/turtleactions/DictActions.js:136 +#: js/turtleactions/DictActions.js:169 #.TRANS: sombra msgid "shade" msgstr "ã" -#: js/PenBlocks.js:247 +#: js/blocks/PenBlocks.js:347 #.TRANS: El bloque sombra devuelve la sombra actual de la pluma. msgid "The Shade block returns the current pen shade value." msgstr "" -#: js/PenBlocks.js:280 -#: js/DictActions.js:67 -#: js/DictActions.js:145 -#: js/DictActions.js:184 +#: js/blocks/PenBlocks.js:405 +#: js/turtleactions/DictActions.js:67 +#: js/turtleactions/DictActions.js:134 +#: js/turtleactions/DictActions.js:168 #.TRANS: color msgid "color" msgstr "sa’y" -#: js/PenBlocks.js:285 +#: js/blocks/PenBlocks.js:415 #.TRANS: El bloque color devuelve el color actual de la pluma. msgid "The Color block returns the current pen color." msgstr "" -#: js/PenBlocks.js:318 -#: js/DictActions.js:73 -#: js/DictActions.js:151 -#: js/DictActions.js:187 +#: js/blocks/PenBlocks.js:470 +#: js/turtleactions/DictActions.js:73 +#: js/turtleactions/DictActions.js:140 +#: js/turtleactions/DictActions.js:171 #.TRANS: tamaño de la pluma msgid "pen size" msgstr "jakatuha haiha" -#: js/PenBlocks.js:322 +#: js/blocks/PenBlocks.js:474 #.TRANS: El bloque tamaño de la pluma devuelve el tamaño actual de la pluma. msgid "The Pen size block returns the current pen size value." msgstr "" -#: js/PenBlocks.js:355 +#: js/blocks/PenBlocks.js:513 #.TRANS: fijar font msgid "set font" msgstr "emoĩ fuente" -#: js/PenBlocks.js:358 +#: js/blocks/PenBlocks.js:518 #.TRANS: El bloque fijar font establece el font utilizada por el bloque mostrar. msgid "The Set font block sets the font used by the Show block." msgstr "" -#: js/PenBlocks.js:391 +#: js/blocks/PenBlocks.js:567 #.TRANS: El bloque Fondo establece el color de fondo de la ventana. msgid "The Background block sets the window background color." msgstr "" -#: js/PenBlocks.js:408 +#: js/blocks/PenBlocks.js:598 #.TRANS: El bloque de línea sin relleno crea una línea con un centro hueco. msgid "The Hollow line block creates a line with a hollow center." msgstr "" -#: js/PenBlocks.js:415 +#: js/blocks/PenBlocks.js:606 #.TRANS: draw a line logo has a hollow space down its center #.TRANS: linea sin relleno msgid "hollow line" msgstr "rysýi emyenyhe ýre" -#: js/PenBlocks.js:462 +#: js/blocks/PenBlocks.js:675 #.TRANS: El bloque relleno rellena una forma con un color. msgid "The Fill block fills in a shape with a color." msgstr "" -#: js/PenBlocks.js:470 +#: js/blocks/PenBlocks.js:684 #.TRANS: fill in as a solid color #.TRANS: relleno msgid "fill" msgstr "myenyhe" -#: js/PenBlocks.js:527 +#: js/blocks/PenBlocks.js:761 #.TRANS: raise up the pen so logo it does not draw when it is moved #.TRANS: subir pluma msgid "pen up" msgstr "ehupi haiha" -#: js/PenBlocks.js:532 +#: js/blocks/PenBlocks.js:768 #.TRANS: El bloque Subir pluma levanta la pluma para que no dibuje. msgid "The Pen-up block raises the pen so that it does not draw." msgstr "" -#: js/PenBlocks.js:552 +#: js/blocks/PenBlocks.js:802 #.TRANS: put down the pen so logo it draws when it is moved #.TRANS: bajar pluma msgid "pen down" msgstr "emboguejy haiha" -#: js/PenBlocks.js:557 +#: js/blocks/PenBlocks.js:810 #.TRANS: El bloque de Haciar pluma abajo baja la pluma para que dibuje. msgid "The Pen-down block lowers the pen so that it draws." msgstr "" -#: js/PenBlocks.js:577 +#: js/blocks/PenBlocks.js:844 #.TRANS: set the width of the line drawn by the pen #.TRANS: fijar pluma msgid "set pen size" msgstr "emoĩ haiha" -#: js/PenBlocks.js:583 +#: js/blocks/PenBlocks.js:854 #.TRANS: El bloque Fijar tamaño de la pluma de ajuste cambia el tamaño de la pluma. msgid "The Set-pen-size block changes the size of the pen." msgstr "" -#: js/PenBlocks.js:623 +#: js/blocks/PenBlocks.js:913 #.TRANS: set degree of translucence of the pen color #.TRANS: fijar translucidez msgid "set translucency" msgstr "emoĩ translucidez" -#: js/PenBlocks.js:627 +#: js/blocks/PenBlocks.js:921 #.TRANS: El bloque fijar translucidez cambia la opacidad de la pluma. msgid "The Set translucency block changes the opacity of the pen." msgstr "" -#: js/PenBlocks.js:668 +#: js/blocks/PenBlocks.js:981 #.TRANS: fijar matiz msgid "set hue" msgstr "emoĩ matiz" -#: js/PenBlocks.js:672 +#: js/blocks/PenBlocks.js:989 #.TRANS: El bloque fijar matiz cambia la color de la pluma. msgid "The Set hue block changes the color of the pen." msgstr "" -#: js/PenBlocks.js:711 +#: js/blocks/PenBlocks.js:1047 #.TRANS: fijar sombra msgid "set shade" msgstr "emo ã" -#: js/PenBlocks.js:717 +#: js/blocks/PenBlocks.js:1057 #.TRANS: El bloque Fijar sombra cambia el color de la pluma de oscuro a claro. msgid "The Set-shade block changes the pen color from dark to light." msgstr "" -#: js/PenBlocks.js:757 +#: js/blocks/PenBlocks.js:1111 #.TRANS: set the level of vividness of the pen color #.TRANS: fijar gris msgid "set grey" msgstr "embo hungy" -#: js/PenBlocks.js:761 -#.TRANS: El bloque fijar gris cambia la intensidad de la pluma. -msgid "The Set grey block changes the vividness of the pen color." -msgstr "" - -#: js/PenBlocks.js:800 -#.TRANS: fijar color -msgid "set color" -msgstr "embo sa’y" - -#: js/PenBlocks.js:806 -#.TRANS: El bloque fijar color cambia el color de la pluma. -msgid "The Set-color block changes the pen color." -msgstr "" - -#: js/VolumeBlocks.js:35 -#.TRANS: volumen del sintetizador -msgid "synth volume" -msgstr "" - -#: js/VolumeBlocks.js:39 -#.TRANS: El bloque de volumen sintetizador devuelve el volumen actual del sintetizador actual. -msgid "The Synth volume block returns the current volume of the current synthesizer." -msgstr "" - -#: js/VolumeBlocks.js:47 -#: js/musicutils.js:730 -#: js/synthutils.js:56 -#.TRANS: musical instrument -#.TRANS: piano -msgid "piano" -msgstr "" - -#: js/VolumeBlocks.js:105 -#.TRANS: volumen maestro -msgid "master volume" -msgstr "" - -#: js/VolumeBlocks.js:109 -#.TRANS: El bloque volumen maestro devuelve nivel de volumen maestro. -msgid "The Master volume block returns the master volume." -msgstr "" - -#: js/VolumeBlocks.js:355 -#: js/VolumeBlocks.js:524 -#.TRANS: fijar volumen del sintetizador -msgid "set synth volume" -msgstr "" - -#: js/VolumeBlocks.js:362 -#: js/VolumeBlocks.js:545 -#.TRANS: sintetizador -msgid "synth" -msgstr "" - -#: js/VolumeBlocks.js:403 -#: js/VolumeBlocks.js:577 -#: js/VolumeBlocks.js:740 -#: js/VolumeActions.js:173 -#.TRANS: Ajuste el volumen a 0 -msgid "Setting volume to 0." -msgstr "" - -#: js/VolumeBlocks.js:440 -#.TRANS: No se encuentra el sintetizador. -msgid "Synth not found" -msgstr "" - -#: js/VolumeBlocks.js:494 -#.TRANS: filar volumen del tambor -msgid "set drum volume" -msgstr "" - -#: js/VolumeBlocks.js:530 -#.TRANS: El bloque Ajuste volumen del sintetizador cambiará el volumen de un sintetizador particular, -msgid "The Set synth volume block will change the volume of a particular synth," -msgstr "" - -#: js/VolumeBlocks.js:532 -#.TRANS: por ejemplo, guitarra, violín, tambor -msgid "eg guitar violin snare drum etc." -msgstr "" - -#: js/VolumeBlocks.js:534 -#.TRANS: El volumen predeterminado es 50. -msgid "The default volume is 50." -msgstr "" - -#: js/VolumeBlocks.js:536 -#.TRANS: El rango es de 0 para el silencio a 100 para el volumen completo. -msgid "The range is 0 for silence to 100 for full volume." -msgstr "" - -#: js/VolumeBlocks.js:597 -#.TRANS: establecer panorámica -msgid "set panning" -msgstr "" - -#: js/VolumeBlocks.js:603 -#.TRANS: El bloque Establecer Panorámica establece el panorama para todos los sintetizadores. -msgid "The Set Panning block sets the panning for all synthesizers." -msgstr "" - -#: js/VolumeBlocks.js:625 -#.TRANS: -msgid "Warning: Sound is coming out from only the left or right side." -msgstr "" - -#: js/VolumeBlocks.js:647 -#: js/VolumeBlocks.js:695 -#.TRANS: filar volumen maestro -msgid "set master volume" -msgstr "" - -#: js/VolumeBlocks.js:653 -#.TRANS: El bloque Ajuste volumen maestro establece el volumen para todos los sintetizadores. -msgid "The Set master volume block sets the volume for all synthesizers." -msgstr "" - -#: js/VolumeBlocks.js:784 -#.TRANS: El bloque Fijar volumen relativo cambia el volumen de las notas contenidas. -msgid "The Set relative volume block changes the volume of the contained notes." -msgstr "" - -#: js/VolumeBlocks.js:791 -#.TRANS: fijar volumen relativo -msgid "set relative volume" -msgstr "emoĩ volume relativo" - -#: js/VolumeBlocks.js:857 -#.TRANS: decrescendo -msgid "decrescendo" -msgstr "" - -#: js/VolumeBlocks.js:921 -#.TRANS: crescendo -msgid "crescendo" -msgstr "crescendo" - -#: js/ToneBlocks.js:34 -#.TRANS: oscilador -msgid "oscillator" -msgstr "" - -#: js/ToneBlocks.js:44 -#: js/timbre.js:1562 -#.TRANS: Partials refers to the number of sine waves combined into the sound. -#.TRANS: parciales -msgid "partials" -msgstr "" - -#: js/ToneBlocks.js:76 -#.TRANS: Está agregando varios bloques de oscilador. -msgid "You are adding multiple oscillator blocks." -msgstr "" - -#: js/ToneBlocks.js:144 -#: js/timbre.js:1225 -#.TRANS: a duo synthesizer combines a synth with a sequencer -#.TRANS: duo sintetizador -msgid "duo synth" -msgstr "" - -#: js/ToneBlocks.js:149 -#.TRANS: El bloque Sintetizador Duo es un modulador de frecuencia doble usado para definir un timbre. -msgid "The Duo synth block is a duo-frequency modulator used to define a timbre." +#: js/blocks/PenBlocks.js:1119 +#.TRANS: El bloque fijar gris cambia la intensidad de la pluma. +msgid "The Set grey block changes the vividness of the pen color." msgstr "" -#: js/ToneBlocks.js:157 -#: js/timbre.js:1476 -#.TRANS: velocidad del vibrato -msgid "vibrato rate" -msgstr "" +#: js/blocks/PenBlocks.js:1172 +#.TRANS: fijar color +msgid "set color" +msgstr "embo sa’y" -#: js/ToneBlocks.js:157 -#.TRANS: intensidad de vibrato -msgid "vibrato intensity" +#: js/blocks/PenBlocks.js:1182 +#.TRANS: El bloque fijar color cambia el color de la pluma. +msgid "The Set-color block changes the pen color." msgstr "" -#: js/ToneBlocks.js:185 -#: js/timbre.js:1221 -#.TRANS: AM (amplitude modulation) synthesizer -#.TRANS: AM sintetizador -msgid "AM synth" -msgstr "" +#: js/blocks/PitchBlocks.js:141 +#.TRANS: musical transposition (adjustment of pitch up or down) +#.TRANS: transposición +msgid "transposition" +msgstr "O’hasa hi’ari" -#: js/ToneBlocks.js:189 -#.TRANS: El bloque Sintetizador AM es un modulador de amplitud usado para definir un timbre. -msgid "The AM synth block is an amplitude modulator used to define a timbre." +#: js/blocks/PitchBlocks.js:168 +#.TRANS: step down one note in current musical scale +#.TRANS: escalar bajar +msgid "scalar step down" msgstr "" -#: js/ToneBlocks.js:224 -#: js/timbre.js:1223 -#.TRANS: FM (frequency modulation) synthesizer -#.TRANS: FM sintetizador -msgid "FM synth" +#: js/blocks/PitchBlocks.js:172 +#.TRANS: El bloque Escalar bajar devuelve el número de semitonos a la nota anterior en la tecla y modo actuales. +msgid "The Scalar step down block returns the number of semi-tones down to the previous note in the current key and mode." msgstr "" -#: js/ToneBlocks.js:228 -#.TRANS: El bloque Sintetizador de FM es un modulador de frecuencia utilizado para definir un timbre. -msgid "The FM synth block is a frequency modulator used to define a timbre." +#: js/blocks/PitchBlocks.js:190 +#.TRANS: step up one note in current musical scale +#.TRANS: escalar aumentar +msgid "scalar step up" msgstr "" -#: js/ToneBlocks.js:262 -#.TRANS: parcial -msgid "partial" +#: js/blocks/PitchBlocks.js:194 +#.TRANS: El bloque Escalar aumentar devuelve el número de semitonos hasta la siguiente nota en la tecla y modo actuales. +msgid "The Scalar step up block returns the number of semi-tones up to the next note in the current key and mode." msgstr "" -#: js/ToneBlocks.js:265 -msgid "The Partial block is used to specify a weight for a specific partial harmonic." +#: js/blocks/PitchBlocks.js:212 +#.TRANS: the change measured in half-steps between the current pitch and the previous pitch +#.TRANS: cambio en tono +msgid "change in pitch" msgstr "" -#: js/ToneBlocks.js:284 -#.TRANS: partials are weighted components in a harmonic series -#.TRANS: El peso parcial debe estar entre 0 y 1. -msgid "Partial weight must be between 0 and 1." +#: js/blocks/PitchBlocks.js:216 +#.TRANS: El cambio en el bloque de tono es la diferencia (en medio pasos) entre el tono actual que se está reproduciendo y el tono anterior. +msgid "The Change in pitch block is the difference (in half steps) between the current pitch being played and the previous pitch played." msgstr "" -#: js/ToneBlocks.js:297 -#.TRANS: partials are weighted components in a harmonic series -#.TRANS: El bloque Parcial debe usarse dentro de un bloque de parciales ponderados. -msgid "Partial block should be used inside of a Weighted-partials block." +#: js/blocks/PitchBlocks.js:243 +#.TRANS: the change measured in scale-steps between the current pitch and the previous pitch +#.TRANS: cambio en tono escalar +msgid "scalar change in pitch" msgstr "" -#: js/ToneBlocks.js:325 -#.TRANS: partials are weighted components in a harmonic series -#.TRANS: parcial ponderada -msgid "weighted partials" +#: js/blocks/PitchBlocks.js:250 +#: js/blocks/PitchBlocks.js:432 +#: js/blocks/PitchBlocks.js:1667 +#: js/turtleactions/DictActions.js:89 +#: js/widgets/temperament.js:610 +#: js/widgets/temperament.js:614 +#: js/widgets/temperament.js:855 +#.TRANS: convert current note to piano key (1-88) +#.TRANS: a mapping of pitch to the 88 piano keys +#.TRANS: número de tono +msgid "pitch number" +msgstr "pu papaha" + +#: js/blocks/PitchBlocks.js:256 +#.TRANS: El bloque Número de tono es el valor del tono de la nota que se está reproduciendo actualmente. +msgid "The Pitch number block is the value of the pitch of the note currently being played." msgstr "" -#: js/ToneBlocks.js:383 -#.TRANS: El bloque Armónicos agregará armónicos a las notas contenidas. -msgid "The Harmonic block will add harmonics to the contained notes." +#: js/blocks/PitchBlocks.js:329 +#: js/blocks/PitchBlocks.js:433 +#.TRANS: the current pitch expressed in Hertz +#.TRANS: tono en hertz +msgid "pitch in hertz" msgstr "" -#: js/ToneBlocks.js:390 -#.TRANS: A harmonic is an overtone. -#.TRANS: armónico -msgid "harmonic" +#: js/blocks/PitchBlocks.js:334 +#.TRANS: El bloque Tono en Hertz es el valor en hercios del tono de la nota que se está reproduciendo actualmente. +msgid "The Pitch in Hertz block is the value in Hertz of the pitch of the note currently being played." msgstr "" -#: js/ToneBlocks.js:431 -#.TRANS: El bloque Distorsión agrega distorsión al tono. -msgid "The Distortion block adds distortion to the pitch." +#: js/blocks/PitchBlocks.js:367 +#: js/turtleactions/DictActions.js:87 +#.TRANS: tono actual +msgid "current pitch" msgstr "" -#: js/ToneBlocks.js:438 -#: js/timbre.js:2100 -#.TRANS: distortion is an alteration in the sound -#.TRANS: distorsión -msgid "distortion" +#: js/blocks/PitchBlocks.js:373 +#.TRANS: El bloque de tono actual se utiliza con el bloque convertidor de tono. En el ejemplo anterior, el tono actual, sol 4, se muestra como 392 hercios. +msgid "The Current Pitch block is used with the Pitch Converter block. In the example above, current pitch, sol 4, is displayed as 392 hertz." msgstr "" -#: js/ToneBlocks.js:487 -#.TRANS: El bloque Tremolo añade un efecto de vacilación. -msgid "The Tremolo block adds a wavering effect." +#: js/blocks/PitchBlocks.js:410 +#.TRANS: Este bloque convierte el valor de tono de la última nota tocada en diferentes formatos como hertz, nombre de letra, número de tono, etc. +msgid "This block converts the pitch value of the last note played into different formats such as hertz, letter name, pitch number, et al." msgstr "" -#: js/ToneBlocks.js:495 -#: js/timbre.js:2092 -#.TRANS: a wavering effect in a musical tone -#.TRANS: tremolo -msgid "tremolo" +#: js/blocks/PitchBlocks.js:434 +#.TRANS: alfabeto +msgid "alphabet" msgstr "" -#: js/ToneBlocks.js:500 -#: js/ToneBlocks.js:569 -#: js/ToneBlocks.js:630 -#: js/ToneBlocks.js:689 -#: js/timbre.js:2134 -#: js/timbre.js:2222 -#: js/timbre.js:2317 -#: js/timbre.js:2419 -#.TRANS: rate at which tremolo wavers -#.TRANS: velocidad -msgid "rate" -msgstr "pya’ekue" +#: js/blocks/PitchBlocks.js:436 +#.TRANS: Translate as "alphabet class" +#.TRANS: clase de alfabeto +msgid "letter class" +msgstr "" -#: js/ToneBlocks.js:502 -#: js/ToneBlocks.js:630 -#: js/timbre.js:2137 -#: js/timbre.js:2328 -#.TRANS: amplitude of tremolo waver -#.TRANS: intensidad -msgid "depth" +#: js/blocks/PitchBlocks.js:437 +#.TRANS: clase de solfege +msgid "solfege class" msgstr "" -#: js/ToneBlocks.js:559 -#.TRANS: El bloque Phaser añade un sonido de barrido. -msgid "The Phaser block adds a sweeping sound." +#: js/blocks/PitchBlocks.js:438 +#.TRANS: musical y +msgid "staff y" msgstr "" -#: js/ToneBlocks.js:566 -#: js/timbre.js:2098 -#.TRANS: alter the phase of the sound -#.TRANS: phaser -msgid "phaser" +#: js/blocks/PitchBlocks.js:439 +#.TRANS: sílaba solfege +msgid "solfege syllable" msgstr "" -#: js/ToneBlocks.js:569 -#: js/timbre.js:2422 -#.TRANS: octavas -msgid "octaves" +#: js/blocks/PitchBlocks.js:440 +#.TRANS: clase de tono +msgid "pitch class" msgstr "" -#: js/ToneBlocks.js:569 -#: js/timbre.js:2425 -#.TRANS: frecuencia de base -msgid "base frequency" +#: js/blocks/PitchBlocks.js:441 +#.TRANS: clase de escala +msgid "scalar class" msgstr "" -#: js/ToneBlocks.js:619 -#.TRANS: El bloque Chorus añade un efecto chorus. -msgid "The Chorus block adds a chorus effect." +#: js/blocks/PitchBlocks.js:443 +#.TRANS: nth grado +msgid "nth degree" msgstr "" -#: js/ToneBlocks.js:627 -#: js/timbre.js:2096 -#.TRANS: musical effect to simulate a choral sound -#.TRANS: coro -msgid "chorus" +#: js/blocks/PitchBlocks.js:444 +#.TRANS: tono a la sombra +msgid "pitch to shade" msgstr "" -#: js/ToneBlocks.js:630 -#.TRANS: retraso -msgid "delay" +#: js/blocks/PitchBlocks.js:445 +#.TRANS: tono a color +msgid "pitch to color" msgstr "" -#: js/ToneBlocks.js:678 -#.TRANS: El bloque Vibrato agrega una variación rápida y leve en el tono. -msgid "The Vibrato block adds a rapid, slight variation in pitch." +#: js/blocks/PitchBlocks.js:629 +#: js/widgets/musickeyboard.js:735 +#.TRANS: MIDI is a technical standard for electronic music +#.TRANS: MIDI +msgid "MIDI" msgstr "" -#: js/ToneBlocks.js:686 -#: js/timbre.js:2094 -#.TRANS: a rapid, slight variation in pitch -#.TRANS: vibrato -msgid "vibrato" -msgstr "vibrato" +#: js/blocks/PitchBlocks.js:642 +#.TRANS: set an offset associated with the numeric piano keyboard mapping +#.TRANS: fijar offset del número de tono +msgid "set pitch number offset" +msgstr "Moĩ offset pu papaha" -#: js/ToneBlocks.js:689 -#: js/timbre.js:2221 -#.TRANS: intensidad -msgid "intensity" -msgstr "intensidad" +#: js/blocks/PitchBlocks.js:645 +#.TRANS: El bloque Fijar del número de tono establecido se usa para establecer el desplazamiento para asignar números de tono a tono y octava. +msgid "The Set pitch number offset block is used to set the offset for mapping pitch numbers to pitch and octave." +msgstr "" -#: js/ToneBlocks.js:733 -#.TRANS: select synthesizer -#.TRANS: fijar synth -msgid "set synth" -msgstr "emoĩ synth" +#: js/blocks/PitchBlocks.js:679 +#.TRANS: convert piano key number (1-88) to pitch +#.TRANS: número a tono +msgid "number to pitch" +msgstr "Pu papaha" -#: js/ToneBlocks.js:804 -#.TRANS: nombre del sintetizador -msgid "synth name" +#: js/blocks/PitchBlocks.js:682 +#.TRANS: El bloque Número a tono convertirá un número de tono en un nombre pich. +msgid "The Number to pitch block will convert a pitch number to a pich name." msgstr "" -#: js/ToneBlocks.js:842 -#.TRANS: fijar instrumento predeterminado -msgid "set default instrument" -msgstr "" +#: js/blocks/PitchBlocks.js:715 +#.TRANS: convert piano key number (1-88) to octave +#.TRANS: número a octava +msgid "number to octave" +msgstr "Octava papaha" -#: js/ToneBlocks.js:895 -#: js/ToneBlocks.js:943 -#.TRANS: set the characteristics of a custom instrument -#.TRANS: fijar instrumento -msgid "set instrument" +#: js/blocks/PitchBlocks.js:717 +#.TRANS: El bloque Número a octava convertirá un número de tono en una octava. +msgid "The Number to octave block will convert a pitch number to an octave." msgstr "" -#: js/ToneBlocks.js:898 -#: js/ToneBlocks.js:926 -#: js/ToneBlocks.js:932 -#.TRANS: El bloque Fijar Instrumentos selecciona una voz para el sintetizador, -msgid "The Set instrument block selects a voice for the synthesizer," +#: js/blocks/PitchBlocks.js:726 +#.TRANS: y para tono +msgid "y to pitch" msgstr "" -#: js/ToneBlocks.js:900 -#: js/ToneBlocks.js:934 -#.TRANS: Por ejemplo, guitarra, piano, violín o cello -msgid "eg guitar piano violin or cello." +#: js/blocks/PitchBlocks.js:729 +#.TRANS: El bloque Y a tono convertirá una posición de pentagrama y a la notación de tono correspondiente. +msgid "Y to pitch block will convert a staff y position to corresponding pitch notation." msgstr "" -#: js/ToneBlocks.js:1015 -#.TRANS: Importe un archivo de sonido para usarlo como instrumento y establezca su centro de tono. -msgid "Import a sound file to use as an instrument and set its pitch center." +#: js/blocks/PitchBlocks.js:841 +#.TRANS: selector accidental +msgid "accidental selector" msgstr "" -#: js/ToneBlocks.js:1110 -#.TRANS: Cargue un archivo de sonido para conectarlo con el bloque de muestra. -msgid "Upload a sound file to connect with the sample block." +#: js/blocks/PitchBlocks.js:844 +#.TRANS: El bloque Selector de accidental se usa para elegir entre doble filo, agudo, natural, plano y doble plano. +msgid "The Accidental selector block is used to choose between double-sharp, sharp, natural, flat, and double-flat." msgstr "" -#: js/MeterBlocks.js:34 -#.TRANS: musical meter (time signature), e.g., 4:4 -#.TRANS: meter actuale -msgid "current meter" +#: js/blocks/PitchBlocks.js:858 +#.TRANS: El tono puede especificarse en términos de ni dha pa ma ga re sa. +msgid "Pitch can be specified in terms of ni dha pa ma ga re sa." msgstr "" -#: js/MeterBlocks.js:85 -#.TRANS: number of beats per minute -#.TRANS: factor de ritmo -msgid "beat factor" -msgstr "ypy de ritmo" - -#: js/MeterBlocks.js:161 -#.TRANS: El bloque de latidos por minuto devuelve los latidos actuales por minuto. -msgid "The Beats per minute block returns the current beats per minute." +#: js/blocks/PitchBlocks.js:872 +#.TRANS: El tono puede especificarse en términos de C D E F G A B. +msgid "Pitch can be specified in terms of C D E F G A B." msgstr "" -#: js/MeterBlocks.js:169 -#: js/status.js:152 -#.TRANS: number of beats played per minute -#.TRANS: pulsaciones por minuto -msgid "beats per minute2" +#: js/blocks/PitchBlocks.js:884 +#.TRANS: +msgid "solfege" msgstr "" -#: js/MeterBlocks.js:169 -#: js/MeterBlocks.js:1056 -#: js/MeterBlocks.js:1133 -#: js/MeterBlocks.js:1211 -#.TRANS: sets tempo by defining a beat and beats per minute -#.TRANS: pulsaciones por minuto -msgid "beats per minute" -msgstr "mbopypyre aravo’igui" - -#: js/MeterBlocks.js:233 -#.TRANS: count of current musical measure in meter -#.TRANS: cuenta de medidas -msgid "measure count" +#: js/blocks/PitchBlocks.js:887 +#.TRANS: El tono puede especificarse en términos de do re mi fa sol la si. +msgid "Pitch can be specified in terms of do re mi fa sol la ti." msgstr "" -#: js/MeterBlocks.js:241 -#.TRANS: El bloque de conteo de medidas devuelve la medida actual. -msgid "The Measure count block returns the current measure." +#: js/blocks/PitchBlocks.js:922 +#.TRANS: El bloque Invertir gira cualquier nota contenida alrededor de una nota de destino. +msgid "The Invert block rotates any contained notes around a target note." msgstr "" -#: js/MeterBlocks.js:290 -#.TRANS: count of current beat in the meter -#.TRANS: cuenta de latidos -msgid "beat count" -msgstr "" +#: js/blocks/PitchBlocks.js:929 +#.TRANS: pitch inversion rotates a pitch around another pitch +#.TRANS: invertir +msgid "invert" +msgstr "Embojere" -#: js/MeterBlocks.js:300 -#: js/MeterBlocks.js:311 -#: js/MeterBlocks.js:565 -#: js/MeterBlocks.js:576 -#.TRANS: El bloque Conteo de tiempos es el número del tiempo actual, -msgid "The Beat count block is the number of the current beat," -msgstr "" +#: js/blocks/PitchBlocks.js:968 +#.TRANS: pitch inversion rotates a pitch around another pitch (odd number) +#.TRANS: invertir (impar) +msgid "invert (odd)" +msgstr "Embojere (joja’ỹva)" -#: js/MeterBlocks.js:313 -#: js/MeterBlocks.js:578 -#.TRANS: por ejemplo, 1, 2, 3, o 4. -msgid "eg 1, 2, 3, or 4." -msgstr "" +#: js/blocks/PitchBlocks.js:1001 +#.TRANS: pitch inversion rotates a pitch around another pitch (even number) +#.TRANS: invertir (par) +msgid "invert (even)" +msgstr "Embojere (jojava)" -#: js/MeterBlocks.js:368 -#.TRANS: count the number of notes -#.TRANS: cuenta las notas -msgid "sum note values" +#: js/blocks/PitchBlocks.js:1022 +#.TRANS: register is the octave of the current pitch +#.TRANS: registro +msgid "register" msgstr "" -#: js/MeterBlocks.js:376 -#: js/MeterBlocks.js:440 -#.TRANS: El bloque Contador de notas se puede usar para contar el número de notas contenidas. -msgid "The Note counter block can be used to count the number of contained notes." +#: js/blocks/PitchBlocks.js:1026 +#.TRANS: El bloque Registro proporciona una manera fácil de modificar el registro (octava) de las notas que lo siguen. +msgid "The Register block provides an easy way to modify the register (octave) of the notes that follow it." msgstr "" -#: js/MeterBlocks.js:432 -#.TRANS: count the number of notes -#.TRANS: cuenta las notas -msgid "note counter" -msgstr "nota papaha" - -#: js/MeterBlocks.js:496 -#.TRANS: number of whole notes that have been played -#.TRANS: notas completa jugadas -msgid "whole notes played" +#: js/blocks/PitchBlocks.js:1047 +#.TRANS: cents are units used to specify the ratio between pitches. There are 100 cents between successive notes. +#.TRANS: +msgid "50 cents" msgstr "" -#: js/MeterBlocks.js:505 -msgid "The Whole notes played block returns the total number of whole notes played." +#: js/blocks/PitchBlocks.js:1102 +#.TRANS: El bloque de transposición de semitono desplazará los pasos contenidos dentro de los bloques de notas hacia arriba (o hacia abajo) medio pasos. +msgid "The Semi-tone transposition block will shift the pitches contained inside Note blocks up (or down) by half steps." msgstr "" -#: js/MeterBlocks.js:555 -#: js/DictActions.js:83 -#.TRANS: number of notes that have been played -#.TRANS: notas jugadas -msgid "notes played" -msgstr "notas ñembosaráipyre" - -#: js/MeterBlocks.js:653 -msgid "The No clock block decouples the notes from the master clock." +#: js/blocks/PitchBlocks.js:1104 +#.TRANS: En el ejemplo que se muestra arriba, sol se desplaza hasta sol#. +msgid "In the example shown above, sol is shifted up to sol#." msgstr "" -#: js/MeterBlocks.js:661 -#.TRANS: don't lock notes to master clock -#.TRANS: sin reloj -msgid "no clock" +#: js/blocks/PitchBlocks.js:1110 +#.TRANS: adjust the amount of shift (up or down) of a pitch +#.TRANS: transposición semitono +msgid "semi-tone transpose" msgstr "" -#: js/MeterBlocks.js:700 -#.TRANS: en latido débil hacer -msgid "on weak beat do" +#: js/blocks/PitchBlocks.js:1143 +#.TRANS: El bloque transponer por razón cambiará los tonos contenidos dentro de los bloques de notas hacia arriba (o hacia abajo) en una proporción +msgid "The Transpose by Ratio block will shift the pitches contained inside Note blocks up (or down) by a ratio" msgstr "" -#: js/MeterBlocks.js:705 -msgid "The On-weak-beat block lets you specify actions to take on weak (off) beats." +#: js/blocks/PitchBlocks.js:1149 +#.TRANS: adjust the amount of shift (up or down) of a pitch +#.TRANS: transponer por razón +msgid "transpose by ratio" msgstr "" -#: js/MeterBlocks.js:750 -#.TRANS: en latido fuerte hacer -msgid "on strong beat" +#: js/blocks/PitchBlocks.js:1232 +#.TRANS: down sixth means the note is five scale degrees below current note +#.TRANS: sexto abajo +msgid "down sixth" msgstr "" -#: js/MeterBlocks.js:758 -msgid "The On-strong-beat block lets you specify actions to take on specified beats." +#: js/blocks/PitchBlocks.js:1251 +#.TRANS: down third means the note is two scale degrees below current note +#.TRANS: tercero abajo +msgid "down third" msgstr "" -#: js/MeterBlocks.js:769 -#.TRANS: latidos -msgid "beat" +#: js/blocks/PitchBlocks.js:1270 +#.TRANS: seventh means the note is the six scale degrees above current note +#.TRANS: séptimo +msgid "seventh" msgstr "" -#: js/MeterBlocks.js:813 -#.TRANS: en cada latodo hacer -msgid "on every beat do" +#: js/blocks/PitchBlocks.js:1289 +#.TRANS: sixth means the note is the five scale degrees above current note +#.TRANS: sexto +msgid "sixth" msgstr "" -#: js/MeterBlocks.js:821 -msgid "The On-every-beat block lets you specify actions to take on every beat." +#: js/blocks/PitchBlocks.js:1308 +#.TRANS: fifth means the note is the four scale degrees above current note +#.TRANS: quinto +msgid "fifth" msgstr "" -#: js/MeterBlocks.js:874 -#.TRANS: en cada nota hacer -msgid "on every note do" +#: js/blocks/PitchBlocks.js:1328 +#.TRANS: fourth means the note is three scale degrees above current note +#.TRANS: cuarto +msgid "fourth" msgstr "" -#: js/MeterBlocks.js:882 -msgid "The On-every-note block lets you specify actions to take on every note." +#: js/blocks/PitchBlocks.js:1347 +#.TRANS: third means the note is two scale degrees above current note +#.TRANS: tercio +msgid "third" msgstr "" -#: js/MeterBlocks.js:928 -#: js/MeterBlocks.js:999 -#.TRANS: sets tempo by defining a beat and beats per minute -#.TRANS: latidos por minuto de dominar -msgid "master beats per minute" -msgstr "latidos por minuto de dominar" - -#: js/MeterBlocks.js:952 -#: js/MeterBlocks.js:1078 -#: js/MeterBlocks.js:1135 -#.TRANS: lpm -msgid "bpm" +#: js/blocks/PitchBlocks.js:1366 +#.TRANS: second means the note is one scale degree above current note +#.TRANS: segundo +msgid "second" msgstr "" -#: js/MeterBlocks.js:952 -#: js/MeterBlocks.js:1078 -#: js/MeterBlocks.js:1135 -#.TRANS: valor de latidos -msgid "beat value" +#: js/blocks/PitchBlocks.js:1407 +#.TRANS: El bloque Transposición escalar desplazará los tonos contenidos dentro de los bloques de notas hacia arriba (o hacia abajo) de la escala. +msgid "The Scalar transposition block will shift the pitches contained inside Note blocks up (or down) the scale." msgstr "" -#: js/MeterBlocks.js:1024 -#: js/MeterBlocks.js:1167 -#: js/MeterBlocks.js:1241 -#.TRANS: Latidos por minuto debe ser > 30. -msgid "Beats per minute must be > 30." -msgstr "Tytýi peteĩ aravo’ipe tuichave vaerã mbohapypagui" +#: js/blocks/PitchBlocks.js:1409 +#.TRANS: En el ejemplo que se muestra arriba, el sol se desplaza hacia arriba a la. +msgid "In the example shown above, sol is shifted up to la." +msgstr "" -#: js/MeterBlocks.js:1027 -#: js/MeterBlocks.js:1170 -#: js/MeterBlocks.js:1244 -#.TRANS: Los latidos por minuto como máximo es de 1000. -msgid "Maximum beats per minute is 1000." -msgstr "Tytýi peteĩ aravo’ipe su pee" +#: js/blocks/PitchBlocks.js:1416 +#.TRANS: adjust the amount of shift (up or down) of a pitch by musical scale (scalar) steps +#.TRANS: transposición escalar +msgid "scalar transpose" +msgstr "" -#: js/MeterBlocks.js:1068 -msgid "The Beats per minute block sets the number of 1/4 notes per minute." +#: js/blocks/PitchBlocks.js:1451 +#.TRANS: El bloque Accidental se utiliza para crear objetos punzantes y pisos. +msgid "The Accidental block is used to create sharps and flats" msgstr "" -#: js/MeterBlocks.js:1279 -#.TRANS: anacrusis -#.TRANS: -msgid "pickup" +#: js/blocks/PitchBlocks.js:1458 +#.TRANS: An accidental is a modification to a pitch, e.g., sharp or flat. +#.TRANS: anular accidental +msgid "accidental override" msgstr "" -#: js/MeterBlocks.js:1367 -#.TRANS: número de latidos -msgid "number of beats" +#: js/blocks/PitchBlocks.js:1581 +#.TRANS: El bloque Hertz (en combinación con un bloque numérico) reproducirá un sonido a la frecuencia especificada. +msgid "The Hertz block (in combination with a Number block) will play a sound at the specified frequency." msgstr "" -#: js/DictBlocks.js:77 -#.TRANS: mostrar diccionario -msgid "show dictionary" +#: js/blocks/PitchBlocks.js:1671 +#.TRANS: El bloque de número de tono reproducirá un tono asociado por su número, p. 0 para C y 7 para G. +msgid "The Pitch Number block will play a pitch associated by its number, e.g. 0 for C and 7 for G." msgstr "" -#: js/DictBlocks.js:129 -#.TRANS: El bloque Diccionario devuelve un diccionario. -msgid "The Dictionary block returns a dictionary." +#: js/blocks/PitchBlocks.js:1703 +#: js/blocks/PitchBlocks.js:1745 +#.TRANS: a numeric mapping of the notes in an octave based on the musical mode +#.TRANS: a numeric mapping of the notes in an octave based on the musical mode +#.TRANS: nth tono modal +msgid "nth modal pitch" msgstr "" -#: js/DictBlocks.js:197 -#: js/DictBlocks.js:339 -#.TRANS: El bloque obtener-valor devuelve un valor en el diccionario para una clave especificada. -msgid "The Get-dict block returns a value in the dictionary for a specified key." +#: js/blocks/PitchBlocks.js:1706 +#.TRANS: Nth Modal Pitch toma el patrón de tonos en semitonos para un modo y hace que cada punto sea un grado del modo, +msgid "n^th Modal Pitch takes the pattern of pitches in semitones for a mode and makes each point a degree of the mode," msgstr "" -#: js/DictBlocks.js:212 -#: js/DictBlocks.js:354 -#.TRANS: retrieve a value from the dictionary with a given key -#.TRANS: obtener valor -msgid "get value" +#: js/blocks/PitchBlocks.js:1708 +#.TRANS: comenzando desde 1 e independientemente del marco tonal (es decir, no siempre 8 notas en la octava) +msgid "starting from 1 and regardless of tonal framework (i.e. not always 8 notes in the octave)" msgstr "" -#: js/DictBlocks.js:215 -#: js/DictBlocks.js:216 -#: js/DictBlocks.js:289 -#: js/DictBlocks.js:290 -#: js/DictBlocks.js:357 -#: js/DictBlocks.js:430 -#: js/DictBlocks.js:431 -#.TRANS: clave -msgid "key2" +#: js/blocks/PitchBlocks.js:1749 +#.TRANS: Nth modal tono un número como entrada como el nth grado para el modo dado. 0 es la primera posición, 1 es la segunda, -1 es la nota anterior a la primera, etc. +msgid "N^th Modal Pitch takes a number as an input as the n^th degree for the given mode. 0 is the first position, 1 is the second, -1 is the note before the first etc." msgstr "" -#: js/DictBlocks.js:271 -#: js/DictBlocks.js:411 -#.TRANS: El bloque valor-adjusto establece un valor en el diccionario para una clave específica. -msgid "The Set-dict block sets a value in the dictionary for a specified key." +#: js/blocks/PitchBlocks.js:1751 +#.TRANS: Los tonos cambian según el modo especificado sin necesidad de grafías. +msgid "The pitches change according to the mode specified without any need for respellings." msgstr "" -#: js/DictBlocks.js:286 -#: js/DictBlocks.js:427 -#.TRANS: set a value in the dictionary for a given key -#.TRANS: valor ajustado -msgid "set value" +#: js/blocks/PitchBlocks.js:1790 +#.TRANS: El grado de escala es una convención común en la música. El grado de ecala ofrece siete posiciones posibles en la escala (1-7) y puede modificarse mediante alteraciones. +msgid "Scale Degree is a common convention in music. Scale Degree offers seven possible positions in the scale (1-7) and can be modified via accidentals." msgstr "" -#: js/ExtrasBlocks.js:33 -#.TRANS: fracción -msgid "fraction" +#: js/blocks/PitchBlocks.js:1792 +#.TRANS: El grado de la escala de 1 es siempre el primer tono de una escala determinada, independientemente de la octava. +msgid "Scale Degree 1 is always the first pitch in a given scale, regardless of octave." msgstr "" -#: js/ExtrasBlocks.js:36 -#.TRANS: convertir un número racional en fracción -msgid "Convert a float to a fraction" +#: js/blocks/PitchBlocks.js:1814 +#.TRANS: step some number of notes in current musical scale +#.TRANS: paso escalar +msgid "scalar step" msgstr "" -#: js/ExtrasBlocks.js:93 -#.TRANS: guardar como ABC -msgid "save as ABC" +#: js/blocks/PitchBlocks.js:1819 +#.TRANS: El bloque Paso escalar (en combinación con un bloque numérico) reproducirá el siguiente tono en una escala, +msgid "The Scalar Step block (in combination with a Number block) will play the next pitch in a scale," msgstr "" -#: js/ExtrasBlocks.js:96 -#: js/ExtrasBlocks.js:132 -#: js/ExtrasBlocks.js:168 -#.TRANS: título -msgid "title" -msgstr "téra" +#: js/blocks/PitchBlocks.js:1821 +#.TRANS: por ejemplo, si la última nota tocada fue sol, el paso escalar 1 tocará la. +msgid "eg if the last note played was sol, Scalar Step 1 will play la." +msgstr "" -#: js/ExtrasBlocks.js:129 -#.TRANS: guardar como Lilypond -msgid "save as Lilypond" +#: js/blocks/PitchBlocks.js:1857 +#.TRANS: The Pitch block specifies the pitch name and octave of a note that together determine the frequency of the note. +msgid "The Pitch block specifies the pitch name and octave of a note that together determine the frequency of the note." msgstr "" -#: js/ExtrasBlocks.js:165 -#.TRANS: guardar como SVG -msgid "save as SVG" +#: js/blocks/ProgramBlocks.js:33 +#.TRANS: El bloque Cargar-pila-en-app carga la pila en una página web. +msgid "The Load-heap-from-app block loads the heap from a web page." msgstr "" -#: js/ExtrasBlocks.js:216 -#.TRANS: sin fondo -msgid "no background" -msgstr "hugua’ỹ" +#: js/blocks/ProgramBlocks.js:44 +#.TRANS: load the heap contents from a URL +#.TRANS: cargar pila desde aplicación +msgid "load heap from App" +msgstr "ehupi aty aplicación rire" -#: js/ExtrasBlocks.js:219 -#.TRANS: El bloque Sin fondo elimina el fondo de la salida SVG guardada. -msgid "The No background block eliminates the background from the saved SVG output." -msgstr "" +#: js/blocks/ProgramBlocks.js:95 +#.TRANS: Error de análisis de datos JSON. +msgid "Error parsing JSON data:" +msgstr "Jejavy hesa’ỹijo mba’ekuaa JSON" -#: js/ExtrasBlocks.js:247 -#.TRANS: mostrar bloques -msgid "show blocks" -msgstr "oichuka vore" +#: js/blocks/ProgramBlocks.js:100 +#.TRANS: 404: Página no encontrada. +msgid "404: Page not found" +msgstr "404: Kuatia rogue ndotopái" -#: js/ExtrasBlocks.js:249 -#.TRANS: El bloque mostrar bloques muestra los bloques. -msgid "The Show blocks block shows the blocks." +#: js/blocks/ProgramBlocks.js:133 +#.TRANS: El bloque Guardar-pila-en-app guarda la pila en una página web. +msgid "The Save-heap-to-app block saves the heap to a web page." msgstr "" -#: js/ExtrasBlocks.js:274 -#.TRANS: ocultar bloques -msgid "hide blocks" -msgstr "oñongatu vore" +#: js/blocks/ProgramBlocks.js:144 +#.TRANS: save the heap contents to a URL +#.TRANS: guardar pila a aplicación +msgid "save heap to App" +msgstr "eñongatu aty aplicación rire" -#: js/ExtrasBlocks.js:276 -#.TRANS: El bloque ocultar esconde los bloques. -msgid "The Hide blocks block hides the blocks." +#: js/blocks/ProgramBlocks.js:189 +#.TRANS: Pilas tortuga no contiene un montón válida para +msgid "Cannot find a valid heap for" msgstr "" -#: js/ExtrasBlocks.js:305 -#: js/ExtrasBlocks.js:335 -#.TRANS: El bloque Espacio se utiliza para agregar espacio entre bloques. -msgid "The Space block is used to add space between blocks." +#: js/blocks/ProgramBlocks.js:206 +#.TRANS: El bloque Cargar pila carga la pila de un archivo. +msgid "The Load-heap block loads the heap from a file." msgstr "" -#: js/ExtrasBlocks.js:373 -#.TRANS: esperar -msgid "wait" -msgstr "ha’ãro" +#: js/blocks/ProgramBlocks.js:217 +#.TRANS: load the heap from a file +#.TRANS: cargar pila +msgid "load heap" +msgstr "e hupi aty" -#: js/ExtrasBlocks.js:376 -#.TRANS: El bloque Espera detiene el programa durante un número específico de segundos. -msgid "The Wait block pauses the program for a specified number of seconds." +#: js/blocks/ProgramBlocks.js:270 +#.TRANS: El archivo seleccionado no contiene un pila válida. +msgid "The file you selected does not contain a valid heap." +msgstr "Pe mba’e ñongatupyre ndo rekói chovi oikóva" + +#: js/blocks/ProgramBlocks.js:275 +#.TRANS: El bloque Pila de carga necesita un bloque de archivo de carga. +msgid "The loadHeap block needs a loadFile block." +msgstr "Pe vore chovi hupiha oikoteve peteĩ vore ñongatuha hupiha" + +#: js/blocks/ProgramBlocks.js:291 +#.TRANS: El bloque fijar pila carga la pila. +msgid "The Set-heap block loads the heap." msgstr "" -#: js/ExtrasBlocks.js:430 -#: plugins/facebook.rtp:30 -#.TRANS: comentar -msgid "comment" -msgstr "mombe’u" +#: js/blocks/ProgramBlocks.js:340 +#.TRANS: El bloque que seleccionó no contiene una pila válido. +msgid "The block you selected does not contain a valid heap." +msgstr "" -#: js/ExtrasBlocks.js:466 -#.TRANS: imprimir -msgid "print" -msgstr "imprimir" +#: js/blocks/ProgramBlocks.js:343 +#.TRANS: El bloque fija pila necesita una pila. +msgid "The Set heap block needs a heap." +msgstr "" -#: js/ExtrasBlocks.js:473 -#.TRANS: El bloque Imprimir muestra texto en la parte superior de la pantalla. -msgid "The Print block displays text at the top of the screen." +#: js/blocks/ProgramBlocks.js:360 +#.TRANS: El bloque Carga-diccionario carga un diccionario desde un archivo. +msgid "The Load-dictionary block loads a dictionary from a file." msgstr "" -#: js/ExtrasBlocks.js:579 -#.TRANS: mostrar cuadrícula -msgid "display grid" +#: js/blocks/ProgramBlocks.js:372 +#.TRANS: load a dictionary from a file +#.TRANS: carga diccionario +msgid "load dictionary" msgstr "" -#: js/ExtrasBlocks.js:584 -#.TRANS: Mostrar el bloque de cuadrícula cambia el tipo de cuadrícula -msgid "The Display Grid Block changes the grid type" +#: js/blocks/ProgramBlocks.js:390 +#: js/blocks/ProgramBlocks.js:658 +#: js/blocks/ToneBlocks.js:1025 +#.TRANS: archivo +msgid "file" +msgstr "" + +#: js/blocks/ProgramBlocks.js:444 +#.TRANS: El archivo que seleccionó no contiene un diccionario válido. +msgid "The file you selected does not contain a valid dictionary." msgstr "" -#: js/ExtrasBlocks.js:686 -#: js/ExtrasBlocks.js:705 -#: js/ExtrasBlocks.js:728 -#: js/ExtrasBlocks.js:751 -#: js/ExtrasBlocks.js:769 -#: js/ExtrasBlocks.js:788 -#: js/ExtrasBlocks.js:807 -#: js/ExtrasBlocks.js:826 -#.TRANS: desconocido -msgid "unknown" -msgstr "kuaa’ývã" +#: js/blocks/ProgramBlocks.js:449 +#.TRANS: El bloque de diccionario de carga necesita un bloque de archivo +msgid "The load dictionary block needs a load file block." +msgstr "" -#: js/SensorsBlocks.js:36 -#.TRANS: El bloque de entrada solicita la entrada del teclado. -msgid "The Input block prompts for keyboard input." +#: js/blocks/ProgramBlocks.js:466 +#.TRANS: El bloque fijar diccionario carga un diccionario. +msgid "The Set-dictionary block loads a dictionary." msgstr "" -#: js/SensorsBlocks.js:46 -#.TRANS: el input -msgid "input" +#: js/blocks/ProgramBlocks.js:477 +#.TRANS: load a dictionary from a JSON +#.TRANS: fijar diccionario +msgid "set dictionary" msgstr "" -#: js/SensorsBlocks.js:64 -#.TRANS: ingrese un valor -msgid "Input a value" +#: js/blocks/ProgramBlocks.js:546 +#.TRANS: El bloque que seleccionó no contiene un diccionario válido. +msgid "The block you selected does not contain a valid dictionary." msgstr "" -#: js/SensorsBlocks.js:126 -#.TRANS: valor de entrada -msgid "input value" +#: js/blocks/ProgramBlocks.js:550 +#.TRANS: El bloque Fijar dictionario necesita un diccionario. +msgid "The set dictionary block needs a dictionary." msgstr "" -#: js/SensorsBlocks.js:131 -#.TRANS: El bloque de valor de entrada almacena la entrada. -msgid "The Input-value block stores the input." +#: js/blocks/ProgramBlocks.js:567 +#.TRANS: El bloque Guardar pila guarda la pila en un archivo. +msgid "The Save-heap block saves the heap to a file." msgstr "" -#: js/SensorsBlocks.js:238 -#.TRANS: volumen -msgid "loudness" -msgstr "pu hatãngue" +#: js/blocks/ProgramBlocks.js:578 +#.TRANS: save the heap to a file +#.TRANS: guardar pila +msgid "save heap" +msgstr "eñongatu aty" -#: js/SensorsBlocks.js:245 -#.TRANS: El bloque Volumen devuelve el volumen detectado por el micrófono. -msgid "The Loudness block returns the volume detected by the microphone." +#: js/blocks/ProgramBlocks.js:629 +#.TRANS: El bloque Guardar diccionario guarda el diccionario en un archivo +msgid "The Save-dictionary block saves a dictionary to a file." msgstr "" -#: js/SensorsBlocks.js:300 -#.TRANS: click -msgid "click" -msgstr "click" - -#: js/SensorsBlocks.js:306 -#.TRANS: El bloque Click activa un evento si se ha hecho clic en un ratón. -msgid "The Click block triggers an event if a mouse has been clicked." +#: js/blocks/ProgramBlocks.js:640 +#.TRANS: save a dictionary to a file +#.TRANS: guardar diccionario +msgid "save dictionary" msgstr "" -#: js/SensorsBlocks.js:313 -#.TRANS: El bloque Click activa un evento si se ha hecho clic en una tortuga. -msgid "The Click block triggers an event if a turtle has been clicked." +#: js/blocks/ProgramBlocks.js:720 +#.TRANS: El bloque abrir la paleta abre una paleta +msgid "The Open palette block opens a palette." msgstr "" -#: js/SensorsBlocks.js:342 -#.TRANS: cursor sobre -msgid "cursor over" +#: js/blocks/ProgramBlocks.js:727 +#.TRANS: abrir la paleta +msgid "open palette" msgstr "" -#: js/SensorsBlocks.js:387 -#.TRANS: cursor fuera -msgid "cursor out" +#: js/blocks/ProgramBlocks.js:785 +#.TRANS: El bloque eliminar bloque elimina un bloque +msgid "The Delete block block removes a block." msgstr "" -#: js/SensorsBlocks.js:433 -#.TRANS: el botón presionado -msgid "cursor button down" +#: js/blocks/ProgramBlocks.js:797 +#.TRANS: Move this block to the trash. +#.TRANS: eliminar bloque +msgid "delete block" msgstr "" -#: js/SensorsBlocks.js:477 -#.TRANS: el botón arriba -msgid "cursor button up" +#: js/blocks/ProgramBlocks.js:861 +#.TRANS: El bloque mover bloque mueve un bloque. +msgid "The Move block block moves a block." msgstr "" -#: js/SensorsBlocks.js:638 -#.TRANS: El bloque Obtener rojo devuelve el componente rojo del píxel debajo del ratón. -msgid "The Get red block returns the red component of the pixel under the mouse." +#: js/blocks/ProgramBlocks.js:869 +#.TRANS: Move the position of a block on the screen. +#.TRANS: mover bloque +msgid "move block" msgstr "" -#: js/SensorsBlocks.js:644 -#.TRANS: El bloque Obtener rojo devuelve el componente rojo del píxel debajo de la tortuga. -msgid "The Get red block returns the red component of the pixel under the turtle." +#: js/blocks/ProgramBlocks.js:881 +#: js/blocks/ProgramBlocks.js:1048 +#.TRANS: número de bloque +msgid "block number" msgstr "" -#: js/SensorsBlocks.js:685 -#: plugins/rodi.rtp:216 -#.TRANS: color del pixel -msgid "pixel color" -msgstr "pixel sa’y" +#: js/blocks/ProgramBlocks.js:935 +#.TRANS: Run program beginning at this block. +#.TRANS: ejecutar bloque +msgid "run block" +msgstr "" -#: js/SensorsBlocks.js:690 -#.TRANS: El bloque Obtener píxel devuelve el color del píxel debajo del ratón. -msgid "The Get pixel block returns the color of the pixel under the mouse." +#: js/blocks/ProgramBlocks.js:1025 +#.TRANS: El bloque connectar conecta dos bloques +msgid "The Dock block block connections two blocks." msgstr "" -#: js/SensorsBlocks.js:696 -#.TRANS: El bloque Obtener píxel devuelve el color del píxel debajo de la tortuga. -msgid "The Get pixel block returns the color of the pixel under the turtle." +#: js/blocks/ProgramBlocks.js:1036 +#.TRANS: We can connect a block to another block. +#.TRANS: connectar block +msgid "connect blocks" msgstr "" -#: js/SensorsBlocks.js:758 -#.TRANS: tiempo -msgid "time" -msgstr "ára" +#: js/blocks/ProgramBlocks.js:1048 +#.TRANS: bloque de destino +msgid "target block" +msgstr "" -#: js/SensorsBlocks.js:804 -#.TRANS: cursor y -msgid "cursor y" -msgstr "mbo’esyryha y" +#: js/blocks/ProgramBlocks.js:1048 +#.TRANS: número de conexion +msgid "connection number" +msgstr "" -#: js/SensorsBlocks.js:809 -#.TRANS: El bloque Cursor Y devuelve la posición vertical del cursor. -msgid "The Cursor Y block returns the vertical position of the mouse." +#: js/blocks/ProgramBlocks.js:1140 +#.TRANS: El bloque crear bloque crea un bloque. +msgid "The Make block block creates a new block." msgstr "" -#: js/SensorsBlocks.js:845 -#.TRANS: cursor x -msgid "cursor x" -msgstr "mbo’esyryha x" +#: js/blocks/ProgramBlocks.js:1152 +#.TRANS: Create a new block +#.TRANS: crear bloque +msgid "make block" +msgstr "" -#: js/SensorsBlocks.js:850 -#.TRANS: El bloque Cursor X devuelve la posición horizontal del ratón. -msgid "The Cursor X block returns the horizontal position of the mouse." +#: js/blocks/ProgramBlocks.js:1285 +#.TRANS: No se puede encontrar el bloque. +msgid "Cannot find block" msgstr "" -#: js/SensorsBlocks.js:886 -#.TRANS: botón del ratón -msgid "mouse button" -msgstr "anguja votõ" +#: js/blocks/ProgramBlocks.js:1304 +#: js/blocks/ProgramBlocks.js:1313 +#.TRANS: Advertencia: el tipo de argumento de bloque no coincide +msgid "Warning: block argument type mismatch" +msgstr "" -#: js/SensorsBlocks.js:888 -#.TRANS: El bloque Botón del ratón devuelve Verdadero si se presiona el botón del ratón. -msgid "The Mouse-button block returns True if the mouse button is pressed." +#: js/blocks/ProgramBlocks.js:1347 +#.TRANS: El bloque Abrir proyecto se utiliza para abrir un proyecto desde una página web. +msgid "The Open project block is used to open a project from a web page." msgstr "" -#: js/SensorsBlocks.js:934 -#.TRANS: a ASCII -msgid "to ASCII" -msgstr "ASCII pe" +#: js/blocks/ProgramBlocks.js:1357 +#.TRANS: abierto proyecto +msgid "open project" +msgstr "eipe’a jejaposéva" -#: js/SensorsBlocks.js:938 -#.TRANS: El bloque a ASCII convierte números a letras. -msgid "The To ASCII block converts numbers to letters." +#: js/blocks/ProgramBlocks.js:1410 +#.TRANS: Por favor introduzca un URL válido. +msgid "Please enter a valid URL." msgstr "" -#: js/SensorsBlocks.js:1005 -#.TRANS: El bloque teclado devuelve entrada de teclado. -msgid "The Keyboard block returns computer keyboard input." +#: js/blocks/ToneBlocks.js:34 +#.TRANS: oscilador +msgid "oscillator" msgstr "" -#: js/IntervalsActions.js:216 -#.TRANS: Agregar el número de tono que falta 0. -msgid "Adding missing pitch number 0." +#: js/blocks/ToneBlocks.js:42 +#: js/blocks/WidgetBlocks.js:179 +#: js/widgets/timbre.js:1558 +#: js/widgets/timbre.js:1808 +#.TRANS: there are different types (sine, triangle, square...) of oscillators. +#.TRANS: type of filter, e.g., lowpass, highpass, etc. +#.TRANS: typo +msgid "type" msgstr "" -#: js/IntervalsActions.js:224 -#.TRANS: Ignorando los números de tono menos de cero o más de once. -msgid "Ignoring pitch numbers less than zero or greater than eleven." +#: js/blocks/ToneBlocks.js:44 +#: js/widgets/timbre.js:1562 +#.TRANS: Partials refers to the number of sine waves combined into the sound. +#.TRANS: parciales +msgid "partials" msgstr "" -#: js/IntervalsActions.js:230 -#.TRANS: Ignorando números de tono duplicados. -msgid "Ignoring duplicate pitch numbers." +#: js/blocks/ToneBlocks.js:76 +#.TRANS: Está agregando varios bloques de oscilador. +msgid "You are adding multiple oscillator blocks." msgstr "" -#: js/PitchActions.js:88 -#.TRANS: El bloque Paso escalar debe utilizarse dentro de un bloque de nota. -msgid "The Scalar Step Block must be used inside of a Note Block." +#: js/blocks/ToneBlocks.js:144 +#: js/widgets/timbre.js:1225 +#.TRANS: a duo synthesizer combines a synth with a sequencer +#.TRANS: duo sintetizador +msgid "duo synth" msgstr "" -#: js/PitchActions.js:107 -#.TRANS: El bloque Paso escalar debe ir precedida de un bloque de tono. -msgid "The Scalar Step Block must be preceded by a Pitch Block." +#: js/blocks/ToneBlocks.js:149 +#.TRANS: El bloque Sintetizador Duo es un modulador de frecuencia doble usado para definir un timbre. +msgid "The Duo synth block is a duo-frequency modulator used to define a timbre." msgstr "" -#: js/DrumActions.js:231 -#.TRANS: Bloque de ruido: Quizás quiso decir utilizar un bloque de nota? -msgid "Noise Block: Did you mean to use a Note block?" +#: js/blocks/ToneBlocks.js:157 +#: js/widgets/timbre.js:1476 +#.TRANS: velocidad del vibrato +msgid "vibrato rate" msgstr "" -#: js/MeterActions.js:101 -#: js/MeterActions.js:139 -#.TRANS: latidos por minuto deben ser mayores que -msgid "beats per minute must be greater than" +#: js/blocks/ToneBlocks.js:157 +#.TRANS: intensidad de vibrato +msgid "vibrato intensity" msgstr "" -#: js/MeterActions.js:111 -#: js/MeterActions.js:149 -#.TRANS: máximo -msgid "maximum" +#: js/blocks/ToneBlocks.js:185 +#: js/widgets/timbre.js:1221 +#.TRANS: AM (amplitude modulation) synthesizer +#.TRANS: AM sintetizador +msgid "AM synth" msgstr "" -#: js/MeterActions.js:117 -#: js/MeterActions.js:155 -#.TRANS: latidos por minuto es -msgid "beats per minute is" +#: js/blocks/ToneBlocks.js:189 +#.TRANS: El bloque Sintetizador AM es un modulador de amplitud usado para definir un timbre. +msgid "The AM synth block is an amplitude modulator used to define a timbre." msgstr "" -#: js/ToneActions.js:134 -#.TRANS: La intensidad del vibrato debe estar entre 1 y 100. -msgid "Vibrato intensity must be between 1 and 100." -msgstr "Vibrato mbarete oime vaerã peteĩ ha sa apytepe" - -#: js/ToneActions.js:139 -#.TRANS: La velocidad del vibrato debe ser mayor que 0. -msgid "Vibrato rate must be greater than 0." -msgstr "Vibrato pya’ekue tuichave vaerã mba’evegui" - -#: js/ToneActions.js:192 -#: js/ToneActions.js:265 -#.TRANS: Depth is the intesity of the tremolo or chorus effect. -#.TRANS: El valor de profundidad está fuera de rango. -msgid "Depth is out of range." +#: js/blocks/ToneBlocks.js:224 +#: js/widgets/timbre.js:1223 +#.TRANS: FM (frequency modulation) synthesizer +#.TRANS: FM sintetizador +msgid "FM synth" msgstr "" -#: js/ToneActions.js:301 -#.TRANS: El valor de distorsión debe ser de 0 a 100. -msgid "Distortion must be from 0 to 100." +#: js/blocks/ToneBlocks.js:228 +#.TRANS: El bloque Sintetizador de FM es un modulador de frecuencia utilizado para definir un timbre. +msgid "The FM synth block is a frequency modulator used to define a timbre." msgstr "" -#: js/ToneActions.js:332 -#.TRANS: partials components in a harmonic series -#.TRANS: Parcial debe ser mayor o igual a 0. -msgid "Partial must be greater than or equal to 0." +#: js/blocks/ToneBlocks.js:262 +#.TRANS: parcial +msgid "partial" msgstr "" -#: js/ToneActions.js:378 -#: js/ToneActions.js:417 -#: js/ToneActions.js:456 -#: js/timbre.js:782 -#.TRANS: No se puede usar el sintetizador debido al bloqueo del oscilador. -msgid "Unable to use synth due to existing oscillator" +#: js/blocks/ToneBlocks.js:265 +#.TRANS: El bloque Parcial se utiliza para especificar un peso para un armónico parcial específico. +msgid "The Partial block is used to specify a weight for a specific partial harmonic." msgstr "" -#: js/ToneActions.js:388 -#: js/ToneActions.js:427 -#.TRANS: La entrada no puede ser negativa. -msgid "The input cannot be negative." +#: js/blocks/ToneBlocks.js:284 +#.TRANS: partials are weighted components in a harmonic series +#.TRANS: El peso parcial debe estar entre 0 y 1. +msgid "Partial weight must be between 0 and 1." msgstr "" -#: js/DictActions.js:75 -#: js/DictActions.js:153 -#: js/DictActions.js:188 -#.TRANS: fuente -msgid "font" +#: js/blocks/ToneBlocks.js:297 +#.TRANS: partials are weighted components in a harmonic series +#.TRANS: El bloque Parcial debe usarse dentro de un bloque de parciales ponderados. +msgid "Partial block should be used inside of a Weighted-partials block." msgstr "" -#: js/musicutils.js:363 -#: js/musicutils.js:471 -#: js/pitchdrummatrix.js:151 -#: js/musickeyboard.js:2563 -#.TRANS: descanso -msgid "rest" -msgstr "pytu’u" +#: js/blocks/ToneBlocks.js:325 +#.TRANS: partials are weighted components in a harmonic series +#.TRANS: parcial ponderada +msgid "weighted partials" +msgstr "" -#: js/musicutils.js:565 -#.TRANS: ordinal number. Please keep exactly one space between each number. -#.TRANS: 1º 2º 3º 4º 5º 6º 7º 8º 9º 10º 11º 12º -msgid "1st 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th" +#: js/blocks/ToneBlocks.js:383 +#.TRANS: El bloque Armónicos agregará armónicos a las notas contenidas. +msgid "The Harmonic block will add harmonics to the contained notes." msgstr "" -#: js/musicutils.js:629 -#: js/musicutils.js:812 -#: js/musicutils.js:911 -#.TRANS: augmented is a music term related to intervals -#.TRANS: aumentado -msgid "augmented" -msgstr "mbohetapyre" +#: js/blocks/ToneBlocks.js:390 +#.TRANS: A harmonic is an overtone. +#.TRANS: armónico +msgid "harmonic" +msgstr "" -#: js/musicutils.js:631 -#: js/musicutils.js:813 -#: js/musicutils.js:910 -#.TRANS: diminished is a music term related to intervals and mode -#.TRANS: disminuido -msgid "diminished" -msgstr "momichĩ" +#: js/blocks/ToneBlocks.js:431 +#.TRANS: El bloque Distorsión agrega distorsión al tono. +msgid "The Distortion block adds distortion to the pitch." +msgstr "" -#: js/musicutils.js:639 -#.TRANS: twelve semi-tone scale for music -#.TRANS: cromático -msgid "chromatic" -msgstr "cromatico" +#: js/blocks/ToneBlocks.js:438 +#: js/widgets/timbre.js:2100 +#.TRANS: distortion is an alteration in the sound +#.TRANS: distorsión +msgid "distortion" +msgstr "" -#: js/musicutils.js:640 -#.TRANS: argelino -msgid "algerian" -msgstr "argelino" +#: js/blocks/ToneBlocks.js:487 +#.TRANS: El bloque Tremolo añade un efecto de vacilación. +msgid "The Tremolo block adds a wavering effect." +msgstr "" -#: js/musicutils.js:641 -#.TRANS: español -msgid "spanish" -msgstr "españaygua" +#: js/blocks/ToneBlocks.js:495 +#: js/widgets/timbre.js:2092 +#.TRANS: a wavering effect in a musical tone +#.TRANS: tremolo +msgid "tremolo" +msgstr "" -#: js/musicutils.js:643 -#.TRANS: modal scale in music -#.TRANS: octatonic -msgid "octatonic" -msgstr "octatónico" +#: js/blocks/ToneBlocks.js:500 +#: js/blocks/ToneBlocks.js:569 +#: js/blocks/ToneBlocks.js:630 +#: js/blocks/ToneBlocks.js:689 +#: js/widgets/timbre.js:2134 +#: js/widgets/timbre.js:2222 +#: js/widgets/timbre.js:2317 +#: js/widgets/timbre.js:2419 +#.TRANS: rate at which tremolo wavers +#.TRANS: velocidad +msgid "rate" +msgstr "pya’ekue" -#: js/musicutils.js:645 -#.TRANS: harmonic major scale in music -#.TRANS: armónico mayor -msgid "harmonic major" +#: js/blocks/ToneBlocks.js:502 +#: js/blocks/ToneBlocks.js:630 +#: js/widgets/timbre.js:2137 +#: js/widgets/timbre.js:2328 +#.TRANS: amplitude of tremolo waver +#.TRANS: intensidad +msgid "depth" msgstr "" -#: js/musicutils.js:647 -#.TRANS: natural minor scales in music -#.TRANS: natural menor -msgid "natural minor" +#: js/blocks/ToneBlocks.js:559 +#.TRANS: El bloque Phaser añade un sonido de barrido. +msgid "The Phaser block adds a sweeping sound." msgstr "" -#: js/musicutils.js:649 -#.TRANS: harmonic minor scale in music -#.TRANS: armónico menor -msgid "harmonic minor" +#: js/blocks/ToneBlocks.js:566 +#: js/widgets/timbre.js:2098 +#.TRANS: alter the phase of the sound +#.TRANS: phaser +msgid "phaser" msgstr "" -#: js/musicutils.js:651 -#.TRANS: melodic minor scale in music -#.TRANS: melódico menor -msgid "melodic minor" +#: js/blocks/ToneBlocks.js:569 +#: js/turtleactions/IntervalsActions.js:114 +#: js/widgets/timbre.js:2422 +#.TRANS: octavas +msgid "octaves" msgstr "" -#: js/musicutils.js:655 -#.TRANS: modal scale for music -#.TRANS: dorio -msgid "dorian" -msgstr "dorio" - -#: js/musicutils.js:657 -#.TRANS: modal scale for music -#.TRANS: frigio -msgid "phrygian" -msgstr "frigio" +#: js/blocks/ToneBlocks.js:569 +#: js/widgets/timbre.js:2425 +#.TRANS: frecuencia de base +msgid "base frequency" +msgstr "" -#: js/musicutils.js:659 -#.TRANS: modal scale for music -#.TRANS: lidio -msgid "lydian" -msgstr "lidio" +#: js/blocks/ToneBlocks.js:619 +#.TRANS: El bloque Chorus añade un efecto chorus. +msgid "The Chorus block adds a chorus effect." +msgstr "" -#: js/musicutils.js:661 -#.TRANS: modal scale for music -#.TRANS: mixolidio -msgid "mixolydian" -msgstr "mixolidio" +#: js/blocks/ToneBlocks.js:627 +#: js/widgets/timbre.js:2096 +#.TRANS: musical effect to simulate a choral sound +#.TRANS: coro +msgid "chorus" +msgstr "" -#: js/musicutils.js:665 -#.TRANS: modal scale for music -#.TRANS: locrian -msgid "locrian" -msgstr "locrio" +#: js/blocks/ToneBlocks.js:630 +#.TRANS: retraso +msgid "delay" +msgstr "" -#: js/musicutils.js:667 -#.TRANS: minor jazz scale for music -#.TRANS: jazz menor -msgid "jazz minor" +#: js/blocks/ToneBlocks.js:678 +#.TRANS: El bloque Vibrato agrega una variación rápida y leve en el tono. +msgid "The Vibrato block adds a rapid, slight variation in pitch." msgstr "" -#: js/musicutils.js:669 -#.TRANS: bebop scale for music -#.TRANS: bebop -msgid "bebop" -msgstr "bebop" +#: js/blocks/ToneBlocks.js:686 +#: js/widgets/timbre.js:2094 +#.TRANS: a rapid, slight variation in pitch +#.TRANS: vibrato +msgid "vibrato" +msgstr "vibrato" -#: js/musicutils.js:670 -#.TRANS: arábica -msgid "arabic" -msgstr "arabica" +#: js/blocks/ToneBlocks.js:689 +#: js/widgets/timbre.js:2221 +#.TRANS: intensidad +msgid "intensity" +msgstr "intensidad" -#: js/musicutils.js:671 -#.TRANS: bizantino -msgid "byzantine" -msgstr "bizantino" +#: js/blocks/ToneBlocks.js:733 +#.TRANS: select synthesizer +#.TRANS: fijar synth +msgid "set synth" +msgstr "emoĩ synth" -#: js/musicutils.js:673 -#.TRANS: musical scale for music by Verdi -#.TRANS: enigmático -msgid "enigmatic" -msgstr "enigmatico" +#: js/blocks/ToneBlocks.js:804 +#.TRANS: nombre del sintetizador +msgid "synth name" +msgstr "" -#: js/musicutils.js:674 -#.TRANS: etíope -msgid "ethiopian" -msgstr "etiope" +#: js/blocks/ToneBlocks.js:842 +#.TRANS: fijar instrumento predeterminado +msgid "set default instrument" +msgstr "" -#: js/musicutils.js:676 -#.TRANS: Ethiopic scale for music -#.TRANS: geez -msgid "geez" -msgstr "geez" +#: js/blocks/ToneBlocks.js:895 +#: js/blocks/ToneBlocks.js:943 +#.TRANS: set the characteristics of a custom instrument +#.TRANS: fijar instrumento +msgid "set instrument" +msgstr "" -#: js/musicutils.js:677 -#.TRANS: hindú -msgid "hindu" -msgstr "hindu" +#: js/blocks/ToneBlocks.js:898 +#: js/blocks/ToneBlocks.js:926 +#: js/blocks/ToneBlocks.js:932 +#.TRANS: El bloque Fijar Instrumentos selecciona una voz para el sintetizador, +msgid "The Set instrument block selects a voice for the synthesizer," +msgstr "" -#: js/musicutils.js:678 -#.TRANS: húngaro -msgid "hungarian" -msgstr "hungaro" +#: js/blocks/ToneBlocks.js:900 +#: js/blocks/ToneBlocks.js:934 +#.TRANS: Por ejemplo, guitarra, piano, violín o cello +msgid "eg guitar piano violin or cello." +msgstr "" -#: js/musicutils.js:680 -#.TRANS: minor Romanian scale for music -#.TRANS: romano menor -msgid "romanian minor" +#: js/blocks/ToneBlocks.js:1015 +#.TRANS: Importe un archivo de sonido para usarlo como instrumento y establezca su centro de tono. +msgid "Import a sound file to use as an instrument and set its pitch center." msgstr "" -#: js/musicutils.js:681 -#.TRANS: gitana española -msgid "spanish gypsy" +#: js/blocks/ToneBlocks.js:1110 +#.TRANS: Cargue un archivo de sonido para conectarlo con el bloque de muestra. +msgid "Upload a sound file to connect with the sample block." msgstr "" -#: js/musicutils.js:683 -#.TRANS: musical scale for Mid-Eastern music -#.TRANS: maqam -msgid "maqam" -msgstr "maqam" +#: js/blocks/VolumeBlocks.js:35 +#.TRANS: volumen del sintetizador +msgid "synth volume" +msgstr "" -#: js/musicutils.js:685 -#.TRANS: minor blues scale for music -#.TRANS: blues menor -msgid "minor blues" +#: js/blocks/VolumeBlocks.js:39 +#.TRANS: El bloque de volumen sintetizador devuelve el volumen actual del sintetizador actual. +msgid "The Synth volume block returns the current volume of the current synthesizer." msgstr "" -#: js/musicutils.js:687 -#.TRANS: major blues scale for music -#.TRANS: blues mayor -msgid "major blues" +#: js/blocks/VolumeBlocks.js:105 +#.TRANS: volumen maestro +msgid "master volume" msgstr "" -#: js/musicutils.js:688 -#.TRANS: tono completo -msgid "whole tone" +#: js/blocks/VolumeBlocks.js:109 +#.TRANS: El bloque volumen maestro devuelve nivel de volumen maestro. +msgid "The Master volume block returns the master volume." msgstr "" -#: js/musicutils.js:690 -#.TRANS: pentatonic is a general term that means "five note scale". This scale is typically known as "minor pentatonic" -#.TRANS: pentatonic minor -msgid "minor pentatonic" +#: js/blocks/VolumeBlocks.js:355 +#: js/blocks/VolumeBlocks.js:524 +#.TRANS: fijar volumen del sintetizador +msgid "set synth volume" msgstr "" -#: js/musicutils.js:692 -#.TRANS: pentatonic is a general term that means "five note scale". This scale is typically known as "major pentatonic" -#.TRANS: pentatonic mayor -msgid "major pentatonic" +#: js/blocks/VolumeBlocks.js:362 +#: js/blocks/VolumeBlocks.js:545 +#.TRANS: sintetizador +msgid "synth" msgstr "" -#: js/musicutils.js:693 -#.TRANS: chino -msgid "chinese" -msgstr "chino" +#: js/blocks/VolumeBlocks.js:403 +#: js/blocks/VolumeBlocks.js:577 +#: js/blocks/VolumeBlocks.js:740 +#: js/turtleactions/VolumeActions.js:173 +#.TRANS: Ajuste el volumen a 0 +msgid "Setting volume to 0." +msgstr "" -#: js/musicutils.js:694 -#.TRANS: egipcio -msgid "egyptian" -msgstr "egipcio" +#: js/blocks/VolumeBlocks.js:440 +#.TRANS: No se encuentra el sintetizador. +msgid "Synth not found" +msgstr "" -#: js/musicutils.js:696 -#.TRANS: https://en.wikipedia.org/wiki/Hirajoshi_scale NOTE: There are three different versions of this scale -#.TRANS: hirajoshi -msgid "hirajoshi" -msgstr "hirajoshi" +#: js/blocks/VolumeBlocks.js:494 +#.TRANS: filar volumen del tambor +msgid "set drum volume" +msgstr "" -#: js/musicutils.js:697 -#.TRANS: Japón -msgid "Japan" -msgstr "japonés" +#: js/blocks/VolumeBlocks.js:530 +#.TRANS: El bloque Ajuste volumen del sintetizador cambiará el volumen de un sintetizador particular, +msgid "The Set synth volume block will change the volume of a particular synth," +msgstr "" -#: js/musicutils.js:699 -#.TRANS: https://en.wikipedia.org/wiki/In_scale and https://en.wikipedia.org/wiki/Sakura_Sakura -#.TRANS: in -msgid "in" +#: js/blocks/VolumeBlocks.js:532 +#.TRANS: por ejemplo, guitarra, violín, tambor +msgid "eg guitar violin snare drum etc." msgstr "" -#: js/musicutils.js:701 -#.TRANS: https://en.wikipedia.org/wiki/Miny%C5%8D_scale -#.TRANS: minyo -msgid "minyo" +#: js/blocks/VolumeBlocks.js:534 +#.TRANS: El volumen predeterminado es 50. +msgid "The default volume is 50." msgstr "" -#: js/musicutils.js:703 -#.TRANS: Italian mathematician -#.TRANS: fibonacci -msgid "fibonacci" -msgstr "fibonacci" +#: js/blocks/VolumeBlocks.js:536 +#.TRANS: El rango es de 0 para el silencio a 100 para el volumen completo. +msgid "The range is 0 for silence to 100 for full volume." +msgstr "" -#: js/musicutils.js:708 -#: js/musicutils.js:1106 -#.TRANS: lowpass filter -#.TRANS: -msgid "lowpass" +#: js/blocks/VolumeBlocks.js:597 +#.TRANS: establecer panorámica +msgid "set panning" msgstr "" -#: js/musicutils.js:710 -#: js/musicutils.js:1107 -#.TRANS: bandpass filter -#.TRANS: -msgid "bandpass" +#: js/blocks/VolumeBlocks.js:603 +#.TRANS: El bloque Establecer Panorámica establece el panorama para todos los sintetizadores. +msgid "The Set Panning block sets the panning for all synthesizers." msgstr "" -#: js/musicutils.js:712 -#: js/musicutils.js:1108 -#.TRANS: high-shelf filter -#.TRANS: -msgid "highshelf" +#: js/blocks/VolumeBlocks.js:625 +#.TRANS: Advertencia: El sonido sale solo del lado izquierdo o derecho. +msgid "Warning: Sound is coming out from only the left or right side." msgstr "" -#: js/musicutils.js:714 -#: js/musicutils.js:1109 -#.TRANS: low-shelf filter -#.TRANS: -msgid "lowshelf" +#: js/blocks/VolumeBlocks.js:647 +#: js/blocks/VolumeBlocks.js:695 +#.TRANS: filar volumen maestro +msgid "set master volume" msgstr "" -#: js/musicutils.js:716 -#: js/musicutils.js:1110 -#.TRANS: notch-shelf filter -#.TRANS: -msgid "notch" +#: js/blocks/VolumeBlocks.js:653 +#.TRANS: El bloque Ajuste volumen maestro establece el volumen para todos los sintetizadores. +msgid "The Set master volume block sets the volume for all synthesizers." msgstr "" -#: js/musicutils.js:718 -#: js/musicutils.js:1111 -#.TRANS: all-pass filter -#.TRANS: -msgid "allpass" +#: js/blocks/VolumeBlocks.js:784 +#.TRANS: El bloque Fijar volumen relativo cambia el volumen de las notas contenidas. +msgid "The Set relative volume block changes the volume of the contained notes." msgstr "" -#: js/musicutils.js:720 -#: js/musicutils.js:1112 -#.TRANS: peaking filter -#.TRANS: -msgid "peaking" +#: js/blocks/VolumeBlocks.js:791 +#.TRANS: fijar volumen relativo +msgid "set relative volume" +msgstr "emoĩ volume relativo" + +#: js/blocks/VolumeBlocks.js:857 +#.TRANS: decrescendo +msgid "decrescendo" msgstr "" -#: js/musicutils.js:731 -#: js/synthutils.js:58 -#.TRANS: musical instrument -#.TRANS: violín -msgid "violin" -msgstr "mbaraka’i hasẽngy" +#: js/blocks/VolumeBlocks.js:921 +#.TRANS: crescendo +msgid "crescendo" +msgstr "crescendo" -#: js/musicutils.js:732 -#: js/synthutils.js:60 -#.TRANS: viola musical instrument -#.TRANS: viola -msgid "viola" +#: js/blocks/WidgetBlocks.js:81 +#.TRANS: sound envelope (ADSR) +#.TRANS: envolventes +msgid "envelope" msgstr "" -#: js/musicutils.js:733 -#: js/synthutils.js:98 -#.TRANS: xylophone musical instrument -#.TRANS: xilófono -msgid "xylophone" +#: js/blocks/WidgetBlocks.js:89 +#.TRANS: Attack time is the time taken for initial run-up of level from nil to peak, beginning when the key is first pressed. +#.TRANS: atacar +msgid "attack" msgstr "" -#: js/musicutils.js:734 -#: js/synthutils.js:120 -#.TRANS: vibraphone musical instrument -#.TRANS: vibráfono -msgid "vibraphone" +#: js/blocks/WidgetBlocks.js:91 +#.TRANS: Decay time is the time taken for the subsequent run down from the attack level to the designated sustain level. +#.TRANS: decaer +msgid "decay" msgstr "" -#: js/musicutils.js:735 -#: js/synthutils.js:62 -#.TRANS: musical instrument -#.TRANS: violonchelo -msgid "cello" -msgstr "violonchelo" +#: js/blocks/WidgetBlocks.js:93 +#.TRANS: Sustain level is the level during the main sequence of the sound's duration, until the key is released. +#.TRANS: sostener +msgid "sustain" +msgstr "" -#: js/musicutils.js:737 -#: js/synthutils.js:66 -#.TRANS: viola musical instrument -#.TRANS: contrabajo -msgid "double bass" +#: js/blocks/WidgetBlocks.js:95 +#.TRANS: Release time is the time taken for the level to decay from the sustain level to zero after the key is released. +#.TRANS: liberar +msgid "release" msgstr "" -#: js/musicutils.js:738 -#: js/synthutils.js:68 -#: js/rhythmruler.js:2119 -#.TRANS: musical instrument -#.TRANS: guitarra -msgid "guitar" +#: js/blocks/WidgetBlocks.js:113 +#.TRANS: El valor de atacar debe estar entre 0 y 100. +msgid "Attack value should be from 0 to 100." msgstr "" -#: js/musicutils.js:739 -#: js/synthutils.js:70 -#.TRANS: musical instrument -#.TRANS: guitarra acustica -msgid "acoustic guitar" +#: js/blocks/WidgetBlocks.js:116 +#.TRANS: El valor de decaer debe estar entre 0 y 100. +msgid "Decay value should be from 0 to 100." msgstr "" -#: js/musicutils.js:740 -#: js/synthutils.js:72 -#.TRANS: musical instrument -#.TRANS: flauta -msgid "flute" +#: js/blocks/WidgetBlocks.js:119 +#.TRANS: El valor de sostener debe estar entre 0 y 100. +msgid "Sustain value should be from 0 to 100." msgstr "" -#: js/musicutils.js:741 -#: js/synthutils.js:74 -#.TRANS: musical instrument -#.TRANS: clarinete -msgid "clarinet" +#: js/blocks/WidgetBlocks.js:122 +#.TRANS: El valor de liberar debe estar entre 0 y 100. +msgid "Release value should be from 0-100." msgstr "" -#: js/musicutils.js:742 -#: js/synthutils.js:76 -#.TRANS: musical instrument -#.TRANS: saxofón -msgid "saxophone" +#: js/blocks/WidgetBlocks.js:140 +#.TRANS: Está agregando varios bloques de envolvente. +msgid "You are adding multiple envelope blocks." msgstr "" -#: js/musicutils.js:743 -#: js/synthutils.js:78 -#.TRANS: musical instrument -#.TRANS: tuba -msgid "tuba" +#: js/blocks/WidgetBlocks.js:171 +#.TRANS: a filter removes some unwanted components from a signal +#.TRANS: filtrar +msgid "filter" msgstr "" -#: js/musicutils.js:744 -#: js/synthutils.js:80 -#.TRANS: musical instrument -#.TRANS: trompeta -msgid "trumpet" +#: js/blocks/WidgetBlocks.js:181 +#: js/widgets/timbre.js:1818 +#.TRANS: rolloff is the steepness of a change in frequency. +#.TRANS: rodar +msgid "rolloff" msgstr "" -#: js/musicutils.js:745 -#: js/synthutils.js:82 -#.TRANS: musical instrument -#.TRANS: oboe -msgid "oboe" +#: js/blocks/WidgetBlocks.js:213 +#.TRANS: rolloff is the steepness of a change in frequency. +#.TRANS: Roll off valor debe ser -12, -24, -48, o -96 decibelios. +msgid "Rolloff value should be either -12, -24, -48, or -96 decibels/octave." msgstr "" -#: js/musicutils.js:746 -#: js/synthutils.js:84 -#.TRANS: musical instrument -#.TRANS: trombón -msgid "trombone" +#: js/blocks/WidgetBlocks.js:252 +#.TRANS: La Herramienta temperamento se utiliza para definir la afinación personalizada. +msgid "The Temperament tool is used to define custom tuning." msgstr "" -#: js/musicutils.js:747 -#: js/synthutils.js:100 -#.TRANS: polytone synthesizer -#.TRANS: sintetizador electronico -msgid "electronic synth" +#: js/blocks/WidgetBlocks.js:332 +#: js/blocks/WidgetBlocks.js:1573 +#: js/widgets/sampler.js:547 +#.TRANS: Sube una muestra de audio y ajusta su centro de tono. +msgid "Upload a sample and adjust its pitch center." msgstr "" -#: js/musicutils.js:748 -#: js/synthutils.js:102 -#.TRANS: simple monotone synthesizer -#.TRANS: simple-1 -msgid "simple 1" +#: js/blocks/WidgetBlocks.js:339 +#.TRANS: the speed at music is should be played. +#.TRANS: muestreador de audio +msgid "sampler" msgstr "" -#: js/musicutils.js:749 -#.TRANS: simple 2 -msgid "simple 2" +#: js/blocks/WidgetBlocks.js:517 +#.TRANS: El bloque Meter abre una herramienta para seleccionar golpes fuertes para el metro. +msgid "The Meter block opens a tool to select strong beats for the meter." msgstr "" -#: js/musicutils.js:750 -#.TRANS: simple 3 -msgid "simple 3" +#: js/blocks/WidgetBlocks.js:573 +#.TRANS: El bloque del osciloscopio abre una herramienta para visualizar formas de onda. +msgid "The oscilloscope block opens a tool to visualize waveforms." msgstr "" -#: js/musicutils.js:751 -#.TRANS: simple 4 -msgid "simple 4" +#: js/blocks/WidgetBlocks.js:578 +#.TRANS: osciloscopio +msgid "oscilloscope" msgstr "" -#: js/musicutils.js:753 -#: js/synthutils.js:49 -#.TRANS: brown noise synthesizer -#.TRANS: ruido marrón -msgid "brown noise" +#: js/blocks/WidgetBlocks.js:645 +#.TRANS: El bloque Modo personalizado abre una herramienta para explorar el modo musical (el espaciado de las notas en una escala). +msgid "The Custom mode block opens a tool to explore musical mode (the spacing of the notes in a scale)." msgstr "" -#: js/musicutils.js:754 -#: js/synthutils.js:51 -#.TRANS: pink noise synthesizer -#.TRANS: ruido rosa -msgid "pink noise" +#: js/blocks/WidgetBlocks.js:651 +#.TRANS: musical mode is the pattern of half-steps in an octave, e.g., Major or Minor modes +#.TRANS: modo personalizado +msgid "custom mode" +msgstr "kokatu avateĩgua" + +#: js/blocks/WidgetBlocks.js:700 +#.TRANS: El bloque Tempo abre un metrónomo para visualizar el ritmo. +msgid "The Tempo block opens a metronome to visualize the beat." msgstr "" -#: js/musicutils.js:756 -#: js/synthutils.js:127 -#: js/rhythmruler.js:1670 -#: js/rhythmruler.js:1928 -#.TRANS: musical instrument -#.TRANS: tambor militar pequeño -msgid "snare drum" +#: js/blocks/WidgetBlocks.js:762 +#.TRANS: El Arpegio Widget se usa para componer secuencias de acordes. +msgid "The Arpeggio Widget is used to compose chord sequences." msgstr "" -#: js/musicutils.js:757 -#: js/synthutils.js:129 -#.TRANS: musical instrument -#.TRANS: tambor de patada -msgid "kick drum" +#: js/blocks/WidgetBlocks.js:837 +#.TRANS: La Matriz de percusión de tono se utiliza para asignar tonos a los sonidos de tambor. +msgid "The Pitch drum matrix is used to map pitches to drum sounds." msgstr "" -#: js/musicutils.js:758 -#: js/synthutils.js:131 -#.TRANS: musical instrument -#.TRANS: tom tom -msgid "tom tom" +#: js/blocks/WidgetBlocks.js:842 +#.TRANS: makes a mapping between pitches and drum sounds +#.TRANS: matriz de tono en tambor +msgid "pitch-drum mapper" msgstr "" -#: js/musicutils.js:759 -#: js/synthutils.js:133 -#.TRANS: musical instrument -#.TRANS: piso tom -msgid "floor tom" -msgstr " tom tom yvy atã pegua" +#: js/blocks/WidgetBlocks.js:891 +#.TRANS: Debe tener al menos un bloque de tono y un bloque de tambor en la matriz. +msgid "You must have at least one pitch block and one drum block in the matrix." +msgstr "Oreko vaerã mbovyetéramo peteĩ vore ipuva ha peteĩ vore angu’atarara moñepyrũmbyguape" -#: js/musicutils.js:760 -#: js/synthutils.js:135 -#.TRANS: musical instrument -#.TRANS: tambor de bajo -msgid "bass drum" +#: js/blocks/WidgetBlocks.js:920 +#.TRANS: La Herramienta de control deslizante tono se utiliza para generar tonos en las frecuencias seleccionadas. +msgid "The Pitch slider tool to is used to generate pitches at selected frequencies." msgstr "" -#: js/musicutils.js:761 -#: js/synthutils.js:137 -#.TRANS: a drum made from an inverted cup -#.TRANS: taza de tambor -msgid "cup drum" +#: js/blocks/WidgetBlocks.js:925 +#.TRANS: widget to generate pitches using a slider +#.TRANS: deslizante de tono +msgid "pitch slider" msgstr "" -#: js/musicutils.js:762 -#: js/synthutils.js:139 -#.TRANS: musical instrument -#.TRANS: darbuka -msgid "darbuka drum" +#: js/blocks/WidgetBlocks.js:977 +#.TRANS: teclado cromático +msgid "chromatic keyboard" msgstr "" -#: js/musicutils.js:763 -#: js/synthutils.js:143 -#.TRANS: musical instrument -#.TRANS: -msgid "hi hat" +#: js/blocks/WidgetBlocks.js:1011 +#: js/blocks/WidgetBlocks.js:1077 +#.TRANS: widget to generate pitches using a slider +#.TRANS: teclado musical +msgid "music keyboard" msgstr "" -#: js/musicutils.js:764 -#: js/synthutils.js:145 -#.TRANS: a small metal bell -#.TRANS: campana de paseo -msgid "ride bell" +#: js/blocks/WidgetBlocks.js:1062 +#: js/blocks/WidgetBlocks.js:1069 +#.TRANS: El bloque Teclado de música abre un teclado de piano que puede usarse para crear notas. +msgid "The Music keyboard block opens a piano keyboard that can be used to create notes." msgstr "" -#: js/musicutils.js:765 -#: js/synthutils.js:147 -#.TRANS: musical instrument -#.TRANS: campana de vaca -msgid "cow bell" +#: js/blocks/WidgetBlocks.js:1128 +#.TRANS: La Herramienta escalera de tono se utiliza para generar tonos a partir de una relación dada. +msgid "The Pitch staircase tool to is used to generate pitches from a given ratio." msgstr "" -#: js/musicutils.js:766 -#.TRANS: tambor japonés -msgid "japanese drum" -msgstr "" +#: js/blocks/WidgetBlocks.js:1135 +#.TRANS: generate a progressive sequence of pitches +#.TRANS: escalera de tono +msgid "pitch staircase" +msgstr "jupiguejyha pu" -#: js/musicutils.js:767 -#: js/synthutils.js:153 -#.TRANS: musical instrument -#.TRANS: campana japonesa -msgid "japanese bell" +#: js/blocks/WidgetBlocks.js:1222 +#.TRANS: El bloque Hacer un ritmo abre una herramienta para crear cajas de ritmos. +msgid "The Rhythm Maker block opens a tool to create drum machines." msgstr "" -#: js/musicutils.js:768 -#: js/synthutils.js:149 -#.TRANS: musical instrument -#.TRANS: campana triangular -msgid "triangle bell" +#: js/blocks/WidgetBlocks.js:1291 +#.TRANS: escala mayor G +msgid "G major scale" msgstr "" -#: js/musicutils.js:769 -#: js/synthutils.js:151 -#.TRANS: musical instrument -#.TRANS: castañuelas -msgid "finger cymbals" -msgstr "castañuelas" - -#: js/musicutils.js:770 -#: js/synthutils.js:155 -#.TRANS: a musically tuned set of bells -#.TRANS: campaneo -msgid "chime" +#: js/blocks/WidgetBlocks.js:1326 +#.TRANS: escala mayor C +msgid "C major scale" msgstr "" -#: js/musicutils.js:771 -#: js/synthutils.js:157 -#.TRANS: a musical instrument -#.TRANS: gong -msgid "gong" +#: js/blocks/WidgetBlocks.js:1366 +#.TRANS: El bloque Matriz de tono y tiempo abre una herramienta para crear frases musicales. +msgid "The Phrase Maker block opens a tool to create musical phrases." msgstr "" -#: js/musicutils.js:772 -#: js/synthutils.js:159 -#.TRANS: sound effect -#.TRANS: estruendo -msgid "clang" -msgstr "sunu" - -#: js/musicutils.js:773 -#: js/synthutils.js:161 -#.TRANS: sound effect -#.TRANS: choque -msgid "crash" -msgstr "ombeti" +#: js/blocks/WidgetBlocks.js:1373 +#.TRANS: assigns pitch to a sequence of beats to generate a melody +#.TRANS: matriz de tono en tiempo +msgid "phrase maker" +msgstr "" -#: js/musicutils.js:774 -#: js/synthutils.js:163 -#.TRANS: sound effect -#.TRANS: botella -msgid "bottle" -msgstr "liméta" +#: js/blocks/WidgetBlocks.js:1444 +#.TRANS: Debe tener al menos un bloque de tono y un bloque de ritmo en la matriz. +msgid "You must have at least one pitch block and one rhythm block in the matrix." +msgstr "Oreko vaerã mbovyetéramo peteĩ vore ipuva ha peteĩ vore orekova rítmo moñepyrũmbyguape" -#: js/musicutils.js:775 -#: js/synthutils.js:165 -#.TRANS: sound effect -#.TRANS: palmada -msgid "clap" -msgstr "popete" +#: js/blocks/WidgetBlocks.js:1503 +#.TRANS: El bloque Estado abre una herramienta para inspeccionar el estado de Bloques de Música mientras se ejecuta. +msgid "The Status block opens a tool for inspecting the status of Music Blocks as it is running." +msgstr "" -#: js/musicutils.js:776 -#: js/synthutils.js:167 -#.TRANS: sound effect -#.TRANS: bofetada -msgid "slap" -msgstr "tovapete" +#: js/blocks/WidgetBlocks.js:1580 +#.TRANS: AI-generated music +#.TRANS: música ia +msgid "aimusic" +msgstr "" -#: js/musicutils.js:777 -#: js/synthutils.js:169 -#.TRANS: sound effect -#.TRANS: salpicadura -msgid "splash" -msgstr "hypyi" +#: js/turtleactions/MeterActions.js:101 +#: js/turtleactions/MeterActions.js:139 +#.TRANS: latidos por minuto deben ser mayores que +msgid "beats per minute must be greater than" +msgstr "" -#: js/musicutils.js:778 -#: js/synthutils.js:171 -#.TRANS: sound effect -#.TRANS: burbujas -msgid "bubbles" -msgstr "tyjúi" +#: js/turtleactions/MeterActions.js:111 +#: js/turtleactions/MeterActions.js:149 +#.TRANS: máximo +msgid "maximum" +msgstr "" -#: js/musicutils.js:779 -#: js/synthutils.js:173 -#.TRANS: sound effect -#.TRANS: gota de agua -msgid "raindrop" +#: js/turtleactions/MeterActions.js:117 +#: js/turtleactions/MeterActions.js:155 +#.TRANS: latidos por minuto es +msgid "beats per minute is" msgstr "" -#: js/musicutils.js:780 -#: js/synthutils.js:175 -#.TRANS: animal sound effect -#.TRANS: gato -msgid "cat" -msgstr "mbarakaja" +#: js/turtleactions/DictActions.js:75 +#: js/turtleactions/DictActions.js:142 +#: js/turtleactions/DictActions.js:172 +#.TRANS: fuente +msgid "font" +msgstr "" -#: js/musicutils.js:781 -#: js/synthutils.js:177 -#.TRANS: animal sound effect -#.TRANS: grillo -msgid "cricket" -msgstr "kyju" +#: js/turtleactions/DictActions.js:255 +#.TRANS: No existe diccionario con este nombre +msgid "Dictionary with this name does not exist" +msgstr "" -#: js/musicutils.js:782 -#: js/synthutils.js:179 -#.TRANS: animal sound effect -#.TRANS: perro -msgid "dog" -msgstr "jagua" +#: js/turtleactions/DictActions.js:259 +#.TRANS: La clave con este nombre no existe en +msgid "Key with this name does not exist in " +msgstr "" -#: js/musicutils.js:784 -#: js/synthutils.js:86 -#.TRANS: musical instrument -#.TRANS: banjo -msgid "banjo" +#: js/turtleactions/DrumActions.js:227 +#.TRANS: Bloque de ruido: Quizás quiso decir utilizar un bloque de nota? +msgid "Noise Block: Did you mean to use a Note block?" msgstr "" -#: js/musicutils.js:785 -#: js/synthutils.js:88 -#.TRANS: musical instrument -#.TRANS: koto -msgid "koto" +#: js/turtleactions/IntervalsActions.js:113 +#.TRANS: uno +msgid "one" msgstr "" -#: js/musicutils.js:786 -#: js/synthutils.js:90 -#.TRANS: musical instrument -#.TRANS: dulcimer -msgid "dulcimer" +#: js/turtleactions/IntervalsActions.js:113 +#.TRANS: dos +msgid "two" msgstr "" -#: js/musicutils.js:787 -#: js/synthutils.js:92 -#.TRANS: musical instrument -#.TRANS: guitarra electrica -msgid "electric guitar" +#: js/turtleactions/IntervalsActions.js:113 +#.TRANS: tres +msgid "three" msgstr "" -#: js/musicutils.js:788 -#: js/synthutils.js:94 -#.TRANS: musical instrument -#.TRANS: fagot -msgid "bassoon" +#: js/turtleactions/IntervalsActions.js:113 +#.TRANS: cuatro +msgid "four" msgstr "" -#: js/musicutils.js:789 -#: js/synthutils.js:96 -#.TRANS: musical instrument -#.TRANS: celeste -msgid "celeste" +#: js/turtleactions/IntervalsActions.js:113 +#.TRANS: cinco +msgid "five" msgstr "" -#: js/musicutils.js:791 -#: js/musicutils.js:1123 -#: js/musicutils.js:1131 -#: js/temperament.js:650 -#.TRANS: musical temperament -#.TRANS: igual -msgid "equal" +#: js/turtleactions/IntervalsActions.js:113 +#.TRANS: seis +msgid "six" msgstr "" -#: js/musicutils.js:793 -#: js/musicutils.js:1125 -#: js/musicutils.js:1133 -#.TRANS: musical temperament -#.TRANS: Pitagórico -msgid "Pythagorean" +#: js/turtleactions/IntervalsActions.js:113 +#.TRANS: siete +msgid "seven" msgstr "" -#: js/musicutils.js:795 -#: js/musicutils.js:1124 -#: js/musicutils.js:1132 -#.TRANS: musical temperament -#.TRANS: solo entonación -msgid "just intonation" +#: js/turtleactions/IntervalsActions.js:113 +#.TRANS: ocho +msgid "eight" msgstr "" -#: js/musicutils.js:797 -#: js/musicutils.js:1126 -#: js/musicutils.js:1127 -#: js/musicutils.js:1134 -#: js/musicutils.js:1135 -#.TRANS: musical temperament -#.TRANS: -msgid "meantone" +#: js/turtleactions/IntervalsActions.js:113 +#.TRANS: nueve +msgid "nine" msgstr "" -#: js/musicutils.js:814 +#: js/turtleactions/IntervalsActions.js:119 #.TRANS: -msgid "major 7th" +msgid "a" msgstr "" -#: js/musicutils.js:815 -#.TRANS: -msgid "minor 7th" +#: js/turtleactions/IntervalsActions.js:120 +#.TRANS: abajo +msgid "below" msgstr "" -#: js/musicutils.js:816 -#.TRANS: -msgid "dominant 7th" +#: js/turtleactions/IntervalsActions.js:124 +#.TRANS: arriba +msgid "above" msgstr "" -#: js/musicutils.js:817 -#.TRANS: -msgid "minor-major 7th" +#: js/turtleactions/IntervalsActions.js:131 +#.TRANS: más +msgid "plus" msgstr "" -#: js/musicutils.js:818 -#.TRANS: -msgid "fully-diminished 7th" +#: js/turtleactions/IntervalsActions.js:139 +#.TRANS: abajo +msgid " below" msgstr "" -#: js/musicutils.js:819 -#.TRANS: -msgid "half-diminished 7th" +#: js/turtleactions/IntervalsActions.js:257 +#.TRANS: Agregar el número de tono que falta 0. +msgid "Adding missing pitch number 0." msgstr "" -#: js/musicutils.js:4379 -#: js/musicutils.js:4416 -#.TRANS: actuales -msgid "current" -msgstr "ko’ãga" +#: js/turtleactions/IntervalsActions.js:265 +#.TRANS: Ignorando los números de tono menos de cero o más de once. +msgid "Ignoring pitch numbers less than zero or greater than eleven." +msgstr "" -#: js/musicutils.js:4382 -#: js/musicutils.js:4407 -#.TRANS: próximo -msgid "next" -msgstr "tenondegua" +#: js/turtleactions/IntervalsActions.js:271 +#.TRANS: Ignorando números de tono duplicados. +msgid "Ignoring duplicate pitch numbers." +msgstr "" -#: js/musicutils.js:4385 -#: js/musicutils.js:4412 -#.TRANS: anterior -msgid "previous" -msgstr "mboyvegua" +#: js/turtleactions/ToneActions.js:134 +#.TRANS: La intensidad del vibrato debe estar entre 1 y 100. +msgid "Vibrato intensity must be between 1 and 100." +msgstr "Vibrato mbarete oime vaerã peteĩ ha sa apytepe" -#: js/synthutils.js:104 -#.TRANS: simple monotone synthesizer -#.TRANS: simple-2 -msgid "simple-2" +#: js/turtleactions/ToneActions.js:139 +#.TRANS: La velocidad del vibrato debe ser mayor que 0. +msgid "Vibrato rate must be greater than 0." +msgstr "Vibrato pya’ekue tuichave vaerã mba’evegui" + +#: js/turtleactions/ToneActions.js:192 +#: js/turtleactions/ToneActions.js:265 +#.TRANS: Depth is the intesity of the tremolo or chorus effect. +#.TRANS: El valor de profundidad está fuera de rango. +msgid "Depth is out of range." msgstr "" -#: js/synthutils.js:106 -#.TRANS: simple monotone synthesizer -#.TRANS: simple-3 -msgid "simple-3" +#: js/turtleactions/ToneActions.js:301 +#.TRANS: El valor de distorsión debe ser de 0 a 100. +msgid "Distortion must be from 0 to 100." msgstr "" -#: js/synthutils.js:108 -#.TRANS: simple monotone synthesizer -#.TRANS: simple-4 -msgid "simple-4" +#: js/turtleactions/ToneActions.js:332 +#.TRANS: partials components in a harmonic series +#.TRANS: Parcial debe ser mayor o igual a 0. +msgid "Partial must be greater than or equal to 0." msgstr "" -#: js/synthutils.js:141 -#.TRANS: musical instrument -#.TRANS: taiko -msgid "taiko" +#: js/turtleactions/ToneActions.js:378 +#: js/turtleactions/ToneActions.js:417 +#: js/turtleactions/ToneActions.js:456 +#: js/widgets/timbre.js:782 +#.TRANS: No se puede usar el sintetizador debido al bloqueo del oscilador. +msgid "Unable to use synth due to existing oscillator" +msgstr "" + +#: js/turtleactions/ToneActions.js:388 +#: js/turtleactions/ToneActions.js:427 +#.TRANS: La entrada no puede ser negativa. +msgid "The input cannot be negative." msgstr "" -#: js/modewidget.js:86 -#: js/modewidget.js:88 -#: js/modewidget.js:642 -#: js/modewidget.js:644 -#: js/modewidget.js:712 -#: js/modewidget.js:714 -#: js/temperament.js:2078 -#: js/rhythmruler.js:189 -#: js/rhythmruler.js:1410 -#: js/rhythmruler.js:1412 -#: js/rhythmruler.js:1435 -#: js/rhythmruler.js:1437 -#: js/meterwidget.js:89 -#: js/meterwidget.js:91 +#: js/widgets/modewidget.js:86 +#: js/widgets/modewidget.js:88 +#: js/widgets/modewidget.js:642 +#: js/widgets/modewidget.js:644 +#: js/widgets/modewidget.js:712 +#: js/widgets/modewidget.js:714 +#: js/widgets/meterwidget.js:194 +#: js/widgets/meterwidget.js:196 +#: js/widgets/temperament.js:2236 +#: js/widgets/rhythmruler.js:457 +#: js/widgets/rhythmruler.js:1790 +#: js/widgets/rhythmruler.js:1792 +#: js/widgets/rhythmruler.js:1816 +#: js/widgets/rhythmruler.js:1818 #.TRANS: Jugar todo msgid "Play all" msgstr "" -#: js/modewidget.js:115 -#: js/pitchstaircase.js:641 -#: js/phrasemaker.js:339 -#: js/pitchdrummatrix.js:94 -#: js/pitchslider.js:125 -#: js/temperament.js:2083 -#: js/musickeyboard.js:530 -#: js/timbre.js:756 -#: js/meterwidget.js:124 -#: js/arpeggio.js:103 +#: js/widgets/modewidget.js:115 +#: js/widgets/meterwidget.js:229 +#: js/widgets/pitchdrummatrix.js:166 +#: js/widgets/pitchslider.js:125 +#: js/widgets/pitchstaircase.js:641 +#: js/widgets/temperament.js:2244 +#: js/widgets/timbre.js:756 +#: js/widgets/arpeggio.js:103 +#: js/widgets/musickeyboard.js:688 +#: js/widgets/phrasemaker.js:550 #.TRANS: Guardar msgid "Save" msgstr "" -#: js/modewidget.js:121 -#: js/pitchstaircase.js:686 -#: js/phrasemaker.js:356 -#: js/pitchdrummatrix.js:109 -#: js/musickeyboard.js:534 -#: js/rhythmruler.js:269 -#: js/arpeggio.js:118 +#: js/widgets/modewidget.js:121 +#: js/widgets/pitchdrummatrix.js:181 +#: js/widgets/pitchstaircase.js:686 +#: js/widgets/arpeggio.js:118 +#: js/widgets/musickeyboard.js:696 +#: js/widgets/phrasemaker.js:567 +#: js/widgets/rhythmruler.js:601 #.TRANS: clear all subdivisions from the ruler. #.TRANS: Borrar msgid "Clear" msgstr "" -#: js/modewidget.js:127 +#: js/widgets/modewidget.js:127 #.TRANS: Girar en sentido antihorario msgid "Rotate counter clockwise" msgstr "" -#: js/modewidget.js:133 +#: js/widgets/modewidget.js:133 #.TRANS: Girar en sentido horario msgid "Rotate clockwise" msgstr "" -#: js/modewidget.js:139 +#: js/widgets/modewidget.js:139 #.TRANS: Invertir msgid "Invert" msgstr "" -#: js/modewidget.js:145 -#: js/pitchstaircase.js:678 -#: js/rhythmruler.js:258 -#: js/timbre.js:963 +#: js/widgets/modewidget.js:145 +#: js/widgets/pitchstaircase.js:678 +#: js/widgets/timbre.js:963 +#: js/widgets/rhythmruler.js:578 #.TRANS: Deshacer msgid "Undo" msgstr "Mosarambi" -#: js/modewidget.js:163 +#: js/widgets/modewidget.js:163 #.TRANS: A circle of notes represents the musical mode. #.TRANS: Haga clic en el círculo para seleccionar notas para el modo. msgid "Click in the circle to select notes for the mode." msgstr "" -#: js/modewidget.js:1017 -#: js/pitchstaircase.js:580 -#: js/phrasemaker.js:4855 -#: js/temperament.js:1754 -#: js/rhythmruler.js:1865 -#: js/rhythmruler.js:2081 -#: js/tempo.js:414 +#: js/widgets/modewidget.js:1017 +#: js/widgets/pitchstaircase.js:580 +#: js/widgets/temperament.js:1929 +#: js/widgets/tempo.js:414 +#: js/widgets/phrasemaker.js:5356 +#: js/widgets/rhythmruler.js:2254 +#: js/widgets/rhythmruler.js:2472 #.TRANS: Nuevo bloque de acción creado! msgid "New action block generated!" msgstr "" -#: js/oscilloscope.js:79 -#.TRANS: Hacer zoom -msgid "Zoom In" -msgstr "" - -#: js/oscilloscope.js:88 -#.TRANS: Alejar -msgid "Zoom Out" -msgstr "" - -#: js/pitchstaircase.js:624 -#.TRANS: Tocar un acorde -msgid "Play chord" -msgstr "" - -#: js/pitchstaircase.js:632 -#.TRANS: Tocar una escala -msgid "Play scale" -msgstr "" - -#: js/pitchstaircase.js:696 -#.TRANS: Haga clic en una nota para crear un nuevo paso. -msgid "Click on a note to create a new step." -msgstr "" - -#: js/phrasemaker.js:363 -#.TRANS: Exportar -msgid "Export" +#: js/widgets/meterwidget.js:275 +#.TRANS: Reiniciar +msgid "Reset" msgstr "" -#: js/phrasemaker.js:370 -#.TRANS: Ordenar -msgid "Sort" +#: js/widgets/meterwidget.js:301 +#.TRANS: Haga clic en el círculo para seleccionar ritmos fuertes para el medidor. +msgid "Click in the circle to select strong beats for the meter." msgstr "" -#: js/phrasemaker.js:373 -#: js/musickeyboard.js:559 -#.TRANS: Agrega una nota -msgid "Add note" +#: js/widgets/oscilloscope.js:79 +#.TRANS: Hacer zoom +msgid "Zoom In" msgstr "" -#: js/phrasemaker.js:764 -#.TRANS: Haga clic en la tabla para agregar notas. -msgid "Click on the table to add notes." +#: js/widgets/oscilloscope.js:88 +#.TRANS: Alejar +msgid "Zoom Out" msgstr "" -#: js/phrasemaker.js:2414 -#: js/phrasemaker.js:2543 -#.TRANS: valor del tuplet -msgid "tuplet value" -msgstr "tuplet repy" - -#: js/pitchdrummatrix.js:270 -#: js/pitchdrummatrix.js:639 +#: js/widgets/pitchdrummatrix.js:356 +#: js/widgets/pitchdrummatrix.js:752 #.TRANS: Haga clic en la cuadrícula para asignar notas a sonidos de tambors msgid "Click in the grid to map notes to drums." msgstr "" -#: js/pitchslider.js:103 +#: js/widgets/pitchslider.js:103 #.TRANS: Ascender msgid "Move up" msgstr "" -#: js/pitchslider.js:114 +#: js/widgets/pitchslider.js:114 #.TRANS: Descender msgid "Move down" msgstr "" -#: js/pitchslider.js:136 +#: js/widgets/pitchslider.js:136 #.TRANS: Haga clic en el control deslizante para crear un bloque de notas. msgid "Click on the slider to create a note block." msgstr "" -#: js/temperament.js:215 +#: js/widgets/pitchstaircase.js:624 +#.TRANS: Tocar un acorde +msgid "Play chord" +msgstr "" + +#: js/widgets/pitchstaircase.js:632 +#.TRANS: Tocar una escala +msgid "Play scale" +msgstr "" + +#: js/widgets/pitchstaircase.js:696 +#.TRANS: Haga clic en una nota para crear un nuevo paso. +msgid "Click on a note to create a new step." +msgstr "" + +#: js/widgets/temperament.js:321 #.TRANS: volver al espacio de octava 2: 1 msgid "back to 2:1 octave space" msgstr "" -#: js/temperament.js:323 +#: js/widgets/temperament.js:447 #.TRANS: editar msgid "edit" msgstr "" -#: js/temperament.js:330 -#: js/temperament.js:332 -#: js/temperament.js:1336 -#: js/temperament.js:1338 +#: js/widgets/temperament.js:454 +#: js/widgets/temperament.js:456 +#: js/widgets/temperament.js:1493 +#: js/widgets/temperament.js:1495 #.TRANS: cerrar msgid "close" msgstr "mboty" -#: js/temperament.js:423 -#: js/temperament.js:736 -#: js/temperament.js:743 -#: js/temperament.js:845 -#: js/temperament.js:935 -#: js/temperament.js:942 -#: js/temperament.js:1015 -#: js/temperament.js:1284 -#: js/temperament.js:1354 -#: js/temperament.js:1430 -#.TRANS: terminado -msgid "done" -msgstr "" - -#: js/temperament.js:477 -#: js/temperament.js:482 -#: js/temperament.js:918 -#.TRANS: proporción -msgid "ratio" -msgstr "" - -#: js/temperament.js:483 -#.TRANS: intervalo -msgid "interval" -msgstr "intervalo" - -#: js/temperament.js:611 -#.TRANS: no escalar -msgid "non scalar" -msgstr "" - -#: js/temperament.js:650 -#.TRANS: proporcións -msgid "ratios" -msgstr "" - -#: js/temperament.js:650 -#.TRANS: arbitrario -msgid "arbitrary" -msgstr "" - -#: js/temperament.js:719 -#.TRANS: número de divisiones -msgid "number of divisions" -msgstr "" - -#: js/temperament.js:741 -#: js/temperament.js:858 -#: js/temperament.js:940 -#: js/temperament.js:1033 -#.TRANS: preestreno -msgid "preview" -msgstr "" - -#: js/temperament.js:788 -msgid "The Number of divisions is too large." -msgstr "" - -#: js/temperament.js:921 -#.TRANS: recursividad -msgid "recursion" -msgstr "" - -#: js/temperament.js:1450 -#.TRANS: La proporción de octavas ha cambiado. Esto cambia el temperamento de manera significativa. -msgid "The octave ratio has changed. This changes temperament significantly." -msgstr "" - -#: js/temperament.js:2087 -#.TRANS: Tabla -msgid "Table" -msgstr "" - -#: js/temperament.js:2185 -#.TRANS: añadir tonos -msgid "Add pitches" -msgstr "" - -#: js/musickeyboard.js:570 -#.TRANS: Metrónomo -msgid "Metronome" -msgstr "" - -#: js/musickeyboard.js:1296 -#: plugins/rodi.rtp:193 -#.TRANS: duración -msgid "duration" -msgstr "pukukué" - -#: js/musickeyboard.js:2840 -msgid "New action blocks generated!" -msgstr "" - -#: js/musickeyboard.js:2841 -msgid "New action block generated" -msgstr "" - -#: js/musickeyboard.js:2984 -#: js/musickeyboard.js:2992 -#.TRANS: Dispositivo MIDI presente. -msgid "MIDI device present." -msgstr "" - -#: js/musickeyboard.js:2995 -#.TRANS: No se encontró ningún dispositivo MIDI. -msgid "No MIDI device found." -msgstr "" - -#: js/musickeyboard.js:3000 -#.TRANS: Error al obtener acceso MIDI en el navegador. -msgid "Failed to get MIDI access in browser." +#: js/widgets/temperament.js:552 +#: js/widgets/temperament.js:877 +#: js/widgets/temperament.js:884 +#: js/widgets/temperament.js:986 +#: js/widgets/temperament.js:1080 +#: js/widgets/temperament.js:1087 +#: js/widgets/temperament.js:1160 +#: js/widgets/temperament.js:1433 +#: js/widgets/temperament.js:1511 +#: js/widgets/temperament.js:1596 +#.TRANS: terminado +msgid "done" msgstr "" -#: js/rhythmruler.js:202 -#.TRANS: Guardar ritmos -msgid "Save rhythms" +#: js/widgets/temperament.js:610 +#: js/widgets/temperament.js:615 +#: js/widgets/temperament.js:1063 +#.TRANS: proporción +msgid "ratio" msgstr "" -#: js/rhythmruler.js:222 -#.TRANS: Guardar la caja de ritmos -msgid "Save drum machine" -msgstr "" +#: js/widgets/temperament.js:616 +#.TRANS: intervalo +msgid "interval" +msgstr "intervalo" -#: js/rhythmruler.js:263 -#.TRANS: user can tap out a rhythm by clicking on a ruler. -#.TRANS: Toca un ritmo -msgid "Tap a rhythm" +#: js/widgets/temperament.js:744 +#.TRANS: no escalar +msgid "non scalar" msgstr "" -#: js/rhythmruler.js:342 -#: js/rhythmruler.js:344 -#: js/rhythmruler.js:1481 -#: js/rhythmruler.js:1483 -#: js/sampler.js:110 -#: js/sampler.js:112 -#: js/tempo.js:78 -#: js/tempo.js:97 -#: js/tempo.js:99 -#.TRANS: Pausa -msgid "Pause" +#: js/widgets/temperament.js:787 +#.TRANS: proporcións +msgid "ratios" msgstr "" -#: js/rhythmruler.js:478 -#.TRANS: Haga clic en la regla para dividirla. -msgid "Click on the ruler to divide it." +#: js/widgets/temperament.js:787 +#.TRANS: arbitrario +msgid "arbitrary" msgstr "" -#: js/rhythmruler.js:603 -#: js/rhythmruler.js:605 -#: js/rhythmruler.js:804 -#: js/rhythmruler.js:806 -#: js/rhythmruler.js:1386 -#: js/rhythmruler.js:1388 -#.TRANS: tocar un ritmo -msgid "tap a rhythm" +#: js/widgets/temperament.js:860 +#.TRANS: número de divisiones +msgid "number of divisions" msgstr "" -#: js/rhythmruler.js:1084 -#.TRANS: Se ha superado el valor máximo de 256. -msgid "Maximum value of 256 has been exceeded." +#: js/widgets/temperament.js:882 +#: js/widgets/temperament.js:999 +#: js/widgets/temperament.js:1085 +#: js/widgets/temperament.js:1178 +#.TRANS: preestreno +msgid "preview" msgstr "" -#: js/sampler.js:137 -#.TRANS: Advertencia: la muestra es más grande que 1 MB. -msgid "Warning: Sample is bigger than 1MB." +#: js/widgets/temperament.js:929 +#.TRANS: El número de divisiones es demasiado grande. +msgid "The Number of divisions is too large." msgstr "" -#: js/sampler.js:142 -#.TRANS: -msgid "Upload failed: Sample is not a .wav file." +#: js/widgets/temperament.js:1066 +#.TRANS: recursividad +msgid "recursion" msgstr "" -#: js/sampler.js:164 -#.TRANS: Se generó un nuevo bloque de muestra de audio. -msgid "A new sample block was generated." +#: js/widgets/temperament.js:1616 +#.TRANS: La proporción de octavas ha cambiado. Esto cambia el temperamento de manera significativa. +msgid "The octave ratio has changed. This changes temperament significantly." msgstr "" -#: js/sampler.js:255 -#.TRANS: Subir muestra de audio -msgid "Upload sample" +#: js/widgets/temperament.js:2248 +#.TRANS: Tabla +msgid "Table" msgstr "" -#: js/sampler.js:306 -#.TRANS: Guardar muestra de audio -msgid "Save sample" +#: js/widgets/temperament.js:2356 +#.TRANS: añadir tonos +msgid "Add pitches" msgstr "" -#: js/sampler.js:697 -#.TRANS: The reference tone is a sound used for comparison. -#.TRANS: tono de referencia -msgid "reference tone" +#: js/widgets/tempo.js:78 +#: js/widgets/tempo.js:97 +#: js/widgets/tempo.js:99 +#: js/widgets/aiwidget.js:134 +#: js/widgets/aiwidget.js:136 +#: js/widgets/rhythmruler.js:681 +#: js/widgets/rhythmruler.js:683 +#: js/widgets/rhythmruler.js:1864 +#: js/widgets/rhythmruler.js:1866 +#: js/widgets/sampler.js:180 +#: js/widgets/sampler.js:182 +#.TRANS: Pausa +msgid "Pause" msgstr "" -#: js/tempo.js:113 +#: js/widgets/tempo.js:113 #.TRANS: Guardar tempo msgid "Save tempo" msgstr "" -#: js/tempo.js:144 +#: js/widgets/tempo.js:144 #.TRANS: acelerar msgid "speed up" msgstr "" -#: js/tempo.js:150 +#: js/widgets/tempo.js:150 #.TRANS: retardar msgid "slow down" msgstr "mohã’arõ" -#: js/tempo.js:194 +#: js/widgets/tempo.js:194 #.TRANS: Ajusta el tempo con los botones. msgid "Adjust the tempo with the buttons." msgstr "" -#: js/tempo.js:261 +#: js/widgets/tempo.js:261 +#.TRANS: Por favor, introduzca un número entre 30 y 1000. msgid "Please enter a number between 30 and 1000" msgstr "" -#: js/tempo.js:268 -#: js/tempo.js:271 +#: js/widgets/tempo.js:268 +#: js/widgets/tempo.js:271 #.TRANS: Los latidos por minuto deben estar entre 30 y 1000. msgid "The beats per minute must be between 30 and 1000." msgstr "" -#: js/tempo.js:287 +#: js/widgets/tempo.js:287 #.TRANS: Los latidos por minuto deben estar por debajo de 1000. msgid "The beats per minute must be below 1000." msgstr "" -#: js/tempo.js:303 +#: js/widgets/tempo.js:303 #.TRANS: Los latidos por minuto deben ser superiores a 30. msgid "The beats per minute must be above 30" msgstr "" -#: js/timbre.js:766 +#: js/widgets/timbre.js:766 #.TRANS: Sintetizador msgid "Synthesizer" msgstr "" -#: js/timbre.js:789 +#: js/widgets/timbre.js:789 #.TRANS: Oscilador msgid "Oscillator" msgstr "" -#: js/timbre.js:840 +#: js/widgets/timbre.js:840 #.TRANS: Envolvente msgid "Envelope" msgstr "" -#: js/timbre.js:886 -#: js/GlobalTag.js:50 +#: js/widgets/timbre.js:886 +#: planet/js/GlobalTag.js:50 #.TRANS: On the Planet, we use labels to tag projects. #.TRANS: Efectos msgid "Effects" msgstr "" -#: js/timbre.js:904 +#: js/widgets/timbre.js:904 #.TRANS: Filtrar msgid "Filter" msgstr "" -#: js/timbre.js:946 +#: js/widgets/timbre.js:946 #.TRANS: Agregar un filtro msgid "Add filter" msgstr "" -#: js/timbre.js:987 +#: js/widgets/timbre.js:987 #.TRANS: Haga clic en los botones para abrir las herramientas de diseño de timbre. msgid "Click on buttons to open the timbre design tools." msgstr "" -#: js/timbre.js:1273 +#: js/widgets/timbre.js:1273 #.TRANS: armonía msgid "harmonicity" msgstr "" -#: js/timbre.js:1340 -#: js/timbre.js:1406 +#: js/widgets/timbre.js:1340 +#: js/widgets/timbre.js:1406 #.TRANS: índice de modulación msgid "modulation index" msgstr "" -#: js/timbre.js:1484 +#: js/widgets/timbre.js:1484 #.TRANS: cantidad de vibrato msgid "vibrato amount" msgstr "" -#: js/timbre.js:1919 +#: js/widgets/timbre.js:1919 #.TRANS: filtro ya presente msgid "Filter already present." msgstr "" -#: js/timbre.js:2322 +#: js/widgets/timbre.js:2322 #.TRANS: retraso (MS) msgid "delay (MS)" msgstr "" -#: js/timbre.js:2507 +#: js/widgets/timbre.js:2507 #.TRANS: cantidad de distorsión msgid "distortion amount" msgstr "" -#: js/meterwidget.js:170 -#.TRANS: Reiniciar -msgid "Reset" +#: js/widgets/aiwidget.js:180 +#: js/widgets/sampler.js:227 +#.TRANS: Advertencia: la muestra es más grande que 1 MB. +msgid "Warning: Sample is bigger than 1MB." msgstr "" -#: js/meterwidget.js:196 -#.TRANS: Haga clic en el círculo para seleccionar ritmos fuertes para el medidor. -msgid "Click in the circle to select strong beats for the meter." +#: js/widgets/aiwidget.js:539 +#.TRANS: Nuevo bloque de inicio generado +msgid "New start block generated" +msgstr "" + +#: js/widgets/aiwidget.js:541 +#.TRANS: Carga MIDI. Esto puede tardar un tiempo dependiendo de la cantidad de notas en la pista. +msgid "MIDI loading. This may take some time depending upon the number of notes in the track" +msgstr "" + +#: js/widgets/aiwidget.js:551 +#: js/widgets/sampler.js:254 +#.TRANS: Error en la carga: la muestra no es un archivo .WAV. +msgid "Upload failed: Sample is not a .wav file." +msgstr "" + +#: js/widgets/aiwidget.js:679 +#: js/widgets/sampler.js:432 +#.TRANS: Guardar muestra de audio +msgid "Save sample" +msgstr "" + +#: js/widgets/aiwidget.js:701 +#.TRANS: Música de IA +msgid "AI Music" msgstr "" -#: js/arpeggio.js:239 +#: js/widgets/arpeggio.js:239 #.TRANS: Haga clic en la cuadrícula para agregar pasos al arpegio. msgid "Click in the grid to add steps to the arpeggio." msgstr "" -#: js/ProjectStorage.js:243 -#.TRANS: anónimo -msgid "anonymous" +#: js/widgets/help.js:95 +#: js/widgets/help.js:125 +#: js/widgets/help.js:146 +#: js/widgets/help.js:158 +#: js/widgets/help.js:376 +#: js/widgets/help.js:391 +#.TRANS: Hacer un recorrido +msgid "Take a tour" msgstr "" -#: js/GlobalCard.js:68 -#.TRANS: Compartir -msgid "Share" -msgstr "mboja’o" +#: js/widgets/musickeyboard.js:725 +#: js/widgets/phrasemaker.js:584 +#.TRANS: Agrega una nota +msgid "Add note" +msgstr "" -#: js/GlobalCard.js:74 -#.TRANS: Banderas -msgid "Flags" +#: js/widgets/musickeyboard.js:744 +#.TRANS: Metrónomo +msgid "Metronome" msgstr "" -#: js/LocalCard.js:36 -#.TRANS: Ver proyecto publicado -msgid "View published project" +#: js/widgets/musickeyboard.js:1549 +#: plugins/rodi.rtp:193 +#.TRANS: duración +msgid "duration" +msgstr "pukukué" + +#: js/widgets/musickeyboard.js:3179 +#.TRANS: Nuevo bloques de acción creado +msgid "New action blocks generated" msgstr "" -#: js/LocalCard.js:42 -#.TRANS: Publicar proyecto -msgid "Publish project" +#: js/widgets/musickeyboard.js:3180 +#.TRANS: Nuevo bloque de acción creado +msgid "New action block generated" msgstr "" -#: js/LocalCard.js:51 -#.TRANS: Editar proyecto -msgid "Edit project" +#: js/widgets/musickeyboard.js:3365 +#: js/widgets/musickeyboard.js:3373 +#.TRANS: Dispositivo MIDI presente. +msgid "MIDI device present." msgstr "" -#: js/LocalCard.js:52 -#.TRANS: Borrar proyecto -msgid "Delete project" +#: js/widgets/musickeyboard.js:3376 +#.TRANS: No se encontró ningún dispositivo MIDI. +msgid "No MIDI device found." msgstr "" -#: js/LocalCard.js:53 -#.TRANS: Descargar proyecto -msgid "Download project" +#: js/widgets/musickeyboard.js:3386 +#.TRANS: Error al obtener acceso MIDI en el navegador. +msgid "Failed to get MIDI access in browser." msgstr "" -#: js/LocalCard.js:55 -#.TRANS: Duplucar proyecto -msgid "Duplicate project" +#: js/widgets/phrasemaker.js:574 +#.TRANS: Exportar +msgid "Export" +msgstr "" + +#: js/widgets/phrasemaker.js:581 +#.TRANS: Ordenar +msgid "Sort" +msgstr "" + +#: js/widgets/phrasemaker.js:975 +#.TRANS: Haga clic en la tabla para agregar notas. +msgid "Click on the table to add notes." +msgstr "" + +#: js/widgets/phrasemaker.js:2677 +#: js/widgets/phrasemaker.js:2819 +#.TRANS: valor del tuplet +msgid "tuplet value" +msgstr "tuplet repy" + +#: js/widgets/rhythmruler.js:486 +#.TRANS: Guardar ritmos +msgid "Save rhythms" +msgstr "" + +#: js/widgets/rhythmruler.js:512 +#.TRANS: Guardar la caja de ritmos +msgid "Save drum machine" +msgstr "" + +#: js/widgets/rhythmruler.js:589 +#.TRANS: user can tap out a rhythm by clicking on a ruler. +#.TRANS: Toca un ritmo +msgid "Tap a rhythm" +msgstr "" + +#: js/widgets/rhythmruler.js:817 +#.TRANS: Haga clic en la regla para dividirla. +msgid "Click on the ruler to divide it." +msgstr "" + +#: js/widgets/rhythmruler.js:950 +#: js/widgets/rhythmruler.js:952 +#: js/widgets/rhythmruler.js:1152 +#: js/widgets/rhythmruler.js:1154 +#: js/widgets/rhythmruler.js:1765 +#: js/widgets/rhythmruler.js:1767 +#.TRANS: tocar un ritmo +msgid "tap a rhythm" +msgstr "" + +#: js/widgets/rhythmruler.js:1459 +#.TRANS: Se ha superado el valor máximo de 256. +msgid "Maximum value of 256 has been exceeded." +msgstr "" + +#: js/widgets/sampler.js:237 +#.TRANS: Grabación comenzó... +msgid "Recording started..." +msgstr "" + +#: js/widgets/sampler.js:245 +#.TRANS: Grabación completa... +msgid "Recording complete..." +msgstr "" + +#: js/widgets/sampler.js:283 +#.TRANS: Se generó un nuevo bloque de muestra de audio. +msgid "A new sample block was generated." +msgstr "" + +#: js/widgets/sampler.js:378 +#.TRANS: Subir muestra de audio +msgid "Upload sample" +msgstr "" + +#: js/widgets/sampler.js:399 +#.TRANS: Advertencia: Su muestra no se puede cargar porque es >1 MB. +msgid "Warning: Your sample cannot be loaded because it is >1MB." +msgstr "" + +#: js/widgets/sampler.js:448 +#.TRANS: Alternar el micrófono +msgid "Toggle Mic" +msgstr "" + +#: js/widgets/sampler.js:458 +#.TRANS: Reproducir +msgid "Playback" +msgstr "" + +#: js/widgets/sampler.js:979 +#.TRANS: The reference tone is a sound used for comparison. +#.TRANS: tono de referencia +msgid "reference tone" msgstr "" -#: js/GlobalTag.js:28 +#: planet/js/GlobalTag.js:28 #.TRANS: On the Planet, we use labels to tag projects. #.TRANS: todos los proyectos msgid "All Projects" msgstr "" -#: js/GlobalTag.js:30 -#: js/StringHelper.js:37 +#: planet/js/GlobalTag.js:30 +#: planet/js/StringHelper.js:37 #.TRANS: On the Planet, we use labels to tag projects. #.TRANS: Mis proyectos msgid "My Projects" msgstr "" -#: js/GlobalTag.js:32 +#: planet/js/GlobalTag.js:32 #.TRANS: On the Planet, we use labels to tag projects. #.TRANS: ejemplos msgid "Examples" msgstr "" -#: js/GlobalTag.js:34 +#: planet/js/GlobalTag.js:34 #.TRANS: On the Planet, we use labels to tag projects. #.TRANS: música msgid "Music" msgstr "" -#: js/GlobalTag.js:36 +#: planet/js/GlobalTag.js:36 #.TRANS: On the Planet, we use labels to tag projects. #.TRANS: arte msgid "Art" msgstr "" -#: js/GlobalTag.js:38 +#: planet/js/GlobalTag.js:38 #.TRANS: On the Planet, we use labels to tag projects. #.TRANS: mates msgid "Math" msgstr "" -#: js/GlobalTag.js:40 +#: planet/js/GlobalTag.js:40 #.TRANS: On the Planet, we use labels to tag projects. #.TRANS: interactivo msgid "Interactive" msgstr "" -#: js/GlobalTag.js:42 +#: planet/js/GlobalTag.js:42 #.TRANS: On the Planet, we use labels to tag projects. #.TRANS: diseño msgid "Design" msgstr "" -#: js/GlobalTag.js:44 +#: planet/js/GlobalTag.js:44 #.TRANS: On the Planet, we use labels to tag projects. #.TRANS: juego msgid "Game" msgstr "" -#: js/GlobalTag.js:46 +#: planet/js/GlobalTag.js:46 #.TRANS: On the Planet, we use labels to tag projects. #.TRANS: medios msgid "Media" msgstr "" -#: js/GlobalTag.js:48 +#: planet/js/GlobalTag.js:48 #.TRANS: On the Planet, we use labels to tag projects. #.TRANS: sensores msgid "Sensors" msgstr "" -#: js/GlobalTag.js:52 +#: planet/js/GlobalTag.js:52 #.TRANS: On the Planet, we use labels to tag projects. #.TRANS: fragmento de código msgid "Code Snippet" msgstr "" -#: js/helper.js:149 -#: js/StringHelper.js:49 -#.TRANS: Mostrar más etiquetas -msgid "Show more tags" +#: planet/js/LocalCard.js:36 +#.TRANS: Ver proyecto publicado +msgid "View published project" msgstr "" -#: js/helper.js:150 -#.TRANS: Mostrar menos etiquetas -msgid "Show fewer tags" +#: planet/js/LocalCard.js:42 +#.TRANS: Publicar proyecto +msgid "Publish project" +msgstr "" + +#: planet/js/LocalCard.js:51 +#.TRANS: Editar proyecto +msgid "Edit project" +msgstr "" + +#: planet/js/LocalCard.js:52 +#.TRANS: Borrar proyecto +msgid "Delete project" msgstr "" -#: js/ProjectViewer.js:30 +#: planet/js/LocalCard.js:53 +#.TRANS: Descargar proyecto +msgid "Download project" +msgstr "" + +#: planet/js/LocalCard.js:55 +#.TRANS: Duplucar proyecto +msgid "Duplicate project" +msgstr "" + +#: planet/js/ProjectStorage.js:243 +#.TRANS: anónimo +msgid "anonymous" +msgstr "" + +#: planet/js/SaveInterface.js:34 +#.TRANS: Abrir en Bloques de Música +msgid "Open in Music Blocks" +msgstr "" + +#: planet/js/SaveInterface.js:35 +#.TRANS: Abierto en TortuBloques +msgid "Open in Turtle Blocks" +msgstr "" + +#: planet/js/GlobalCard.js:68 +#.TRANS: Compartir +msgid "Share" +msgstr "mboja’o" + +#: planet/js/GlobalCard.js:74 +#.TRANS: Banderas +msgid "Flags" +msgstr "" + +#: planet/js/GlobalPlanet.js:35 +#.TRANS: No se han encontrado resultados. +msgid "No results found." +msgstr "" + +#: planet/js/GlobalPlanet.js:51 +#.TRANS: Remix de +msgid "Remix of" +msgstr "" + +#: planet/js/GlobalPlanet.js:509 +#.TRANS: No es posible conectar con el servidor. +msgid "Cannot connect to server" +msgstr "" + +#: planet/js/ProjectViewer.js:30 #.TRANS: Error: No se pudo enviar el informe. Inténtalo de nuevo más tarde. msgid "Error: Report could not be submitted. Try again later." msgstr "" -#: js/ProjectViewer.js:31 -#.TRANS: Gracias por reportar este proyecto. Un moderador revisará el proyecto en breve para verificar la violación del Código de conducta de Sugar Labs. -msgid "Thank you for reporting this project. A moderator will review the project shortly, to verify violation of the Sugar Labs Code of Conduct." +#: planet/js/ProjectViewer.js:31 +#.TRANS: Gracias por reportar este proyecto. Un moderador revisará el proyecto en breve para verificar la violación del Código de conducta de Sugar Labs. +msgid "Thank you for reporting this project. A moderator will review the project shortly, to verify violation of the Sugar Labs Code of Conduct." +msgstr "" + +#: planet/js/ProjectViewer.js:32 +#: planet/js/StringHelper.js:62 +#: planet/js/StringHelper.js:64 +#: planet/js/StringHelper.js:68 +#.TRANS: Informe de proyecto +msgid "Report Project" +msgstr "" + +#: planet/js/ProjectViewer.js:33 +#: planet/js/StringHelper.js:63 +#.TRANS: Proyecto informado +msgid "Project Reported" +msgstr "" + +#: planet/js/ProjectViewer.js:34 +#.TRANS: Descripción requerida +msgid "Report description required" +msgstr "" + +#: planet/js/ProjectViewer.js:35 +#.TRANS: La descripción es demasiado larga. +msgid "Report description too long" +msgstr "" + +#: planet/js/Publisher.js:30 +#.TRANS: Característica no disponible: no se puede conectar al servidor. Vuelve a cargar Bloques de Música para intentarlo de nuevo. +msgid "Feature unavailable - cannot connect to server. Reload Music Blocks to try again." +msgstr "" + +#: planet/js/Publisher.js:220 +#: planet/js/Publisher.js:237 +#.TRANS: Este campo es requerido. +msgid "This field is required" msgstr "" -#: js/ProjectViewer.js:32 -#: js/StringHelper.js:62 -#: js/StringHelper.js:64 -#: js/StringHelper.js:68 -#.TRANS: Informe de proyecto -msgid "Report Project" +#: planet/js/Publisher.js:227 +#.TRANS: Título es demasiado largo. +msgid "Title too long" msgstr "" -#: js/ProjectViewer.js:33 -#: js/StringHelper.js:63 -#.TRANS: Proyecto informado -msgid "Project Reported" +#: planet/js/Publisher.js:244 +#.TRANS: La descripción es demasiado largo. +msgid "Description too long" msgstr "" -#: js/ProjectViewer.js:34 -#.TRANS: Descripción requerida -msgid "Report description required" +#: planet/js/Publisher.js:341 +#.TRANS: Error del Servidor +msgid "Server Error" msgstr "" -#: js/ProjectViewer.js:35 -#.TRANS: La descripción es demasiado larga. -msgid "Report description too long" +#: planet/js/Publisher.js:341 +#.TRANS: Inténtalo de nuevo +msgid "Try Again" msgstr "" -#: js/StringHelper.js:30 +#: planet/js/StringHelper.js:30 #.TRANS: Planeta msgid "Planet" msgstr "Mbyja kuarahyre ojereva" -#: js/StringHelper.js:31 +#: planet/js/StringHelper.js:31 #.TRANS: Cerrar Planeta msgid "Close Planet" msgstr "" -#: js/StringHelper.js:32 +#: planet/js/StringHelper.js:32 #.TRANS: Abrir proyecto desde archivo msgid "Open project from file" msgstr "" -#: js/StringHelper.js:34 +#: planet/js/StringHelper.js:34 #.TRANS: Local msgid "Local" msgstr "" -#: js/StringHelper.js:35 +#: planet/js/StringHelper.js:35 #.TRANS: Global msgid "Global" msgstr "" -#: js/StringHelper.js:36 +#: planet/js/StringHelper.js:36 #.TRANS: Buscar un proyecto msgid "Search for a project" msgstr "" -#: js/StringHelper.js:38 +#: planet/js/StringHelper.js:38 #.TRANS: Publicar el proyecto msgid "Publish Project" msgstr "" -#: js/StringHelper.js:40 +#: planet/js/StringHelper.js:40 #.TRANS: Etiquetas (max 5) msgid "Tags (max 5)" msgstr "" -#: js/StringHelper.js:41 -#: js/StringHelper.js:61 +#: planet/js/StringHelper.js:41 +#: planet/js/StringHelper.js:61 #.TRANS: Descripción msgid "Description" msgstr "" -#: js/StringHelper.js:42 -#: js/StringHelper.js:67 +#: planet/js/StringHelper.js:42 +#: planet/js/StringHelper.js:67 #.TRANS: Presentar msgid "Submit" msgstr "" -#: js/StringHelper.js:43 -#: js/StringHelper.js:47 +#: planet/js/StringHelper.js:43 +#: planet/js/StringHelper.js:47 #.TRANS: Cancelar msgid "Cancel" msgstr "" -#: js/StringHelper.js:44 +#: planet/js/StringHelper.js:44 #.TRANS: Borrar \\"\\"? msgid "Delete \\"\\"?" msgstr "" -#: js/StringHelper.js:45 +#: planet/js/StringHelper.js:45 #.TRANS: Eliminar permanentemente el proyecto \\"\\"? msgid "Permanently delete project \\"\\"?" msgstr "" -#: js/StringHelper.js:48 +#: planet/js/StringHelper.js:48 #.TRANS: Explorar proyectos msgid "Explore Projects" msgstr "" -#: js/StringHelper.js:50 +#: planet/js/StringHelper.js:49 +#: planet/js/helper.js:149 +#.TRANS: Mostrar más etiquetas +msgid "Show more tags" +msgstr "" + +#: planet/js/StringHelper.js:50 #.TRANS: Más reciente msgid "Most recent" msgstr "" -#: js/StringHelper.js:51 +#: planet/js/StringHelper.js:51 #.TRANS: Más gustado msgid "Most liked" msgstr "" -#: js/StringHelper.js:52 +#: planet/js/StringHelper.js:52 #.TRANS: Más descargados msgid "Most downloaded" msgstr "" -#: js/StringHelper.js:53 +#: planet/js/StringHelper.js:53 #.TRANS: A-Z msgid "A-Z" msgstr "" -#: js/StringHelper.js:54 +#: planet/js/StringHelper.js:54 #.TRANS: Ordenar por msgid "Sort by" msgstr "" -#: js/StringHelper.js:55 +#: planet/js/StringHelper.js:55 #.TRANS: Cargar más proyectos msgid "Load More Projects" msgstr "" -#: js/StringHelper.js:56 +#: planet/js/StringHelper.js:56 #.TRANS: Última actualización msgid "Last Updated" msgstr "" -#: js/StringHelper.js:57 +#: planet/js/StringHelper.js:57 #.TRANS: Fecha de creación msgid "Creation Date" msgstr "" -#: js/StringHelper.js:58 +#: planet/js/StringHelper.js:58 #.TRANS: Numero de descargas: msgid "Number of Downloads:" msgstr "" -#: js/StringHelper.js:59 +#: planet/js/StringHelper.js:59 #.TRANS: Número de me gusta: msgid "Number of Likes:" msgstr "" -#: js/StringHelper.js:60 +#: planet/js/StringHelper.js:60 #.TRANS: Etiquetas: msgid "Tags:" msgstr "" -#: js/StringHelper.js:65 +#: planet/js/StringHelper.js:65 #.TRANS: Reportar proyectos que violen el código de conducta de Sugar Labs. msgid "Report projects which violate the Sugar Labs Code of Conduct." msgstr "" -#: js/StringHelper.js:66 +#: planet/js/StringHelper.js:66 #.TRANS: Razón para informar el proyecto msgid "Reason for reporting project" msgstr "" -#: js/StringHelper.js:70 +#: planet/js/StringHelper.js:70 #.TRANS: Descargar como archivo msgid "Download as File" msgstr "" -#: js/GlobalPlanet.js:35 -#.TRANS: No se han encontrado resultados. -msgid "No results found." -msgstr "" - -#: js/GlobalPlanet.js:51 -#.TRANS: Remix de -msgid "Remix of" -msgstr "" - -#: js/GlobalPlanet.js:509 -#.TRANS: No es posible conectar con el servidor. -msgid "Cannot connect to server" -msgstr "" - -#: js/Publisher.js:30 -#.TRANS: Característica no disponible: no se puede conectar al servidor. Vuelve a cargar Bloques de Música para intentarlo de nuevo. -msgid "Feature unavailable - cannot connect to server. Reload Music Blocks to try again." -msgstr "" - -#: js/Publisher.js:218 -#: js/Publisher.js:235 -#.TRANS: Este campo es requerido. -msgid "This field is required" -msgstr "" - -#: js/Publisher.js:225 -#.TRANS: Título es demasiado largo. -msgid "Title too long" +#: planet/js/helper.js:150 +#.TRANS: Mostrar menos etiquetas +msgid "Show fewer tags" msgstr "" -#: js/Publisher.js:242 -#.TRANS: La descripción es demasiado largo. -msgid "Description too long" -msgstr "" +#: plugins/accelerometer.rtp:48 +#.TRANS: x del acelerómetro +msgid "motion x" +msgstr "x del acelerómetro" -#: js/Publisher.js:339 -#.TRANS: Error del Servidor -msgid "Server Error" -msgstr "" +#: plugins/accelerometer.rtp:56 +#.TRANS: y del acelerómetro +msgid "motion y" +msgstr "y del acelerómetro" -#: js/Publisher.js:339 -#.TRANS: Inténtalo de nuevo -msgid "Try Again" -msgstr "" +#: plugins/accelerometer.rtp:64 +#.TRANS: z del acelerómetro +msgid "motion z" +msgstr "z del acelerómetro" -#: js/SaveInterface.js:34 -#.TRANS: Abrir en Bloques de Música -msgid "Open in Music Blocks" -msgstr "" +#: plugins/facebook.rtp:27 +#.TRANS: publicar +msgid "publish" +msgstr "mbojekuaa" -#: js/SaveInterface.js:35 -#.TRANS: Abierto en TortuBloques -msgid "Open in Turtle Blocks" -msgstr "" +#: plugins/maths.rtp:62 +#.TRANS: poder +msgid "power" +msgstr "mbarete" -#: plugins/weather.rtp:68 -#: plugins/weather.rtp:97 -#.TRANS: Los días siguientes deben estar en el rango de -1 a 5. -msgid "Days ahead must be in the range of -1 to 5." -msgstr "Ára kuéra tenondegua oĩvaerã -1 ha 5 peve" +#: plugins/maths.rtp:62 +#.TRANS: base +msgid "base" +msgstr "topyta" -#: plugins/weather.rtp:122 -#.TRANS: pronóstico -msgid "forecast" -msgstr "pronóstico" +#: plugins/maths.rtp:62 +#.TRANS: exp +msgid "exp" +msgstr "exp" -#: plugins/weather.rtp:123 -#: plugins/weather.rtp:137 -#: plugins/weather.rtp:150 -#.TRANS: ciudad -msgid "city" -msgstr "táva" +#: plugins/maths.rtp:99 +#.TRANS: piso +msgid "floor" +msgstr "yvy atã" -#: plugins/weather.rtp:124 -#: plugins/weather.rtp:138 -#: plugins/weather.rtp:151 -#.TRANS: día -msgid "day" -msgstr "ára" +#: plugins/maths.rtp:104 +#.TRANS: techo +msgid "ceiling" +msgstr "ogahoja" -#: plugins/weather.rtp:136 -#.TRANS: alta -msgid "high" -msgstr "yvaté" +#: plugins/maths.rtp:109 +#.TRANS: a grados +msgid "to degrees" +msgstr "a grados" -#: plugins/weather.rtp:149 -#.TRANS: baja -msgid "low" -msgstr "karapé" +#: plugins/maths.rtp:114 +#.TRANS: a radianes +msgid "to radians" +msgstr "a radianes" #: plugins/nutrition.rtp:104 #.TRANS: obtener calorías @@ -10725,53 +9277,6 @@ msgstr "mbujape apu’a" msgid "water" msgstr "y" -#: plugins/maths.rtp:62 -#: plugins/examples.rtp:93 -#.TRANS: poder -msgid "power" -msgstr "mbarete" - -#: plugins/maths.rtp:62 -#: plugins/examples.rtp:93 -#.TRANS: base -msgid "base" -msgstr "topyta" - -#: plugins/maths.rtp:62 -#: plugins/examples.rtp:93 -#.TRANS: exp -msgid "exp" -msgstr "exp" - -#: plugins/maths.rtp:99 -#: plugins/examples.rtp:130 -#.TRANS: piso -msgid "floor" -msgstr "yvy atã" - -#: plugins/maths.rtp:104 -#: plugins/examples.rtp:135 -#.TRANS: techo -msgid "ceiling" -msgstr "ogahoja" - -#: plugins/maths.rtp:109 -#: plugins/examples.rtp:140 -#.TRANS: a grados -msgid "to degrees" -msgstr "a grados" - -#: plugins/maths.rtp:114 -#: plugins/examples.rtp:145 -#.TRANS: a radianes -msgid "to radians" -msgstr "a radianes" - -#: plugins/facebook.rtp:27 -#.TRANS: publicar -msgid "publish" -msgstr "mbojekuaa" - #: plugins/rodi.rtp:172 #.TRANS: parpadear msgid "blink" @@ -10807,26 +9312,79 @@ msgstr "hendy pytã (akatúa)" msgid "move" msgstr "mongu’e" -#: plugins/accelerometer.rtp:48 -#.TRANS: x del acelerómetro -msgid "motion x" -msgstr "x del acelerómetro" +#: plugins/weather.rtp:68 +#: plugins/weather.rtp:97 +#.TRANS: Los días siguientes deben estar en el rango de -1 a 5. +msgid "Days ahead must be in the range of -1 to 5." +msgstr "Ára kuéra tenondegua oĩvaerã -1 ha 5 peve" -#: plugins/accelerometer.rtp:56 -#.TRANS: y del acelerómetro -msgid "motion y" -msgstr "y del acelerómetro" +#: plugins/weather.rtp:122 +#.TRANS: pronóstico +msgid "forecast" +msgstr "pronóstico" -#: plugins/accelerometer.rtp:64 -#.TRANS: z del acelerómetro -msgid "motion z" -msgstr "z del acelerómetro" +#: plugins/weather.rtp:123 +#: plugins/weather.rtp:137 +#: plugins/weather.rtp:150 +#.TRANS: ciudad +msgid "city" +msgstr "táva" + +#: plugins/weather.rtp:124 +#: plugins/weather.rtp:138 +#: plugins/weather.rtp:151 +#.TRANS: día +msgid "day" +msgstr "ára" + +#: plugins/weather.rtp:136 +#.TRANS: alta +msgid "high" +msgstr "yvaté" + +#: plugins/weather.rtp:149 +#.TRANS: baja +msgid "low" +msgstr "karapé" + +#~msgid ""Toggle Fullscreen" +#~msgstr ""Tekove pantalla oî" + +#: js/toolbar.js:70 + +#: js/toolbar.js:130 + +#: js/toolbar.js:194 + +#: js/toolbar.js:249 + +#~msgid "Toggle JavaScript Editor" +#~msgstr "" + +#: js/EnsembleBlocks.js:643 + +#~msgid "The Turrle pitch block returns the current pitch number being played by the specified turtle." +#~msgstr "" + +#: js/PitchActions.js:88 + +#~msgid "The Scalar Step Block must be used inside of a Note Block." +#~msgstr "" + +#: js/PitchActions.js:107 + +#~msgid "The Scalar Step Block must be preceded by a Pitch Block." +#~msgstr "" + +#: js/musickeyboard.js:2840 + +#~msgid "New action blocks generated!" +#~msgstr "" #: js/toolbar.js:110 #: js/toolbar.js:204 -#.TRANS: Pantalla completa #~msgid "FullScreen" #~msgstr "" @@ -10837,85 +9395,71 @@ msgstr "z del acelerómetro" #: js/RhythmBlockPaletteBlocks.js:386 -#.TRANS: El bloque Tuplet se usa para generar un grupo de notas tocadas en una cantidad de tiempo condensada. #~msgid "The Tuplet block is used to generate a group of notes played in a condensed amount of time." #~msgstr "" #: js/RhythmBlockPaletteBlocks.js:601 -#.TRANS: Usar tuplets facilita la creación de grupos de notas que no se basan en una potencia de 2. #~msgid "Using tuplets makes it easy to create groups of notes that are not based on a power of 2." #~msgstr "" #: js/IntervalsBlocks.js:43 -#.TRANS: El bloque Fijar temperamento se usa para elegir el sistema de afinación usado por los Bloques de Música. #~msgid "The Set temperament block is used to choose the tuning system used by Music Blocks." #~msgstr "" #: js/IntervalsBlocks.js:175 -#.TRANS: El bloque de número de intervalo devuelve el número de pasos escalares en el intervalo actual. #~msgid "The Interval number block returns the number of scalar steps in the current interval." #~msgstr "" #: js/IntervalsBlocks.js:203 -#.TRANS: El bloque de intervalo semitono mide la distancia entre dos notas en semitonos. #~msgid "The Semi-tone interval block measures the distance between two notes in semi-tones." #~msgstr "" #: js/IntervalsBlocks.js:484 -#.TRANS: El bloque Intervalo de semitono calcula un intervalo relativo basado en la mitad de los pasos. #~msgid "The Semi-tone interval block calculates a relative interval based on half steps." #~msgstr "" #: js/IntervalsBlocks.js:522 -#.TRANS: El bloque Arpegio ejecutará cada bloque de notas varias veces, agregando una transposición basada en el acorde especificado. #~msgid "The Arpeggio block will run each note block multiple times, adding a transposition based on the specified chord." #~msgstr "" #: js/IntervalsBlocks.js:811 -#.TRANS: El bloque Intervalo escalar calcula un intervalo relativo basado en el modo actual, omitiendo todas las notas fuera del modo. #~msgid "The Scalar interval block calculates a relative interval based on the current mode, skipping all notes outside of the mode." #~msgstr "" #: js/IntervalsBlocks.js:845 -#.TRANS: El bloque Modo definir le permite definir un modo personalizado especificando números de tono. #~msgid "The Define mode block allows you define a custom mode by specifiying pitch numbers." #~msgstr "" #: js/IntervalsBlocks.js:894 -#.TRANS: Cuando Movible do es falso, los nombres de las notas de solfeo siempre están vinculados a tonos específicos, #~msgid "When Movable do is false, the solfege note names are always tied to specific pitches," #~msgstr "" #: js/IntervalsBlocks.js:896 -#.TRANS: Por ejemplo, \"do\" siempre es \"C-natural\" cuando Movible do es verdadero, los nombres de las notas del solfeo se asignan a grados de escala. \"do\" siempre es el primer grado de la escala mayor. #~msgid "eg \"do\" is always \"C-natural\" when Movable do is true, the solfege note names are assigned to scale degrees \"do\" is always the first degree of the major scale." #~msgstr "" #: js/ActionBlocks.js:750 -#.TRANS: El bloque Acción se utiliza para agrupar bloques de modo que puedan utilizarse más de una vez. #~msgid "The Action block is used to group together blocks so that they can be used more than once." #~msgstr "" #: js/BooleanBlocks.js:188 -#.TRANS: El bloque Mayor que devuelve verdadero si el número superior es mayor que el número inferior. #~msgid "The Greater-than block returns True if the top number is greater than the bottom number." #~msgstr "" #: js/BooleanBlocks.js:237 -#.TRANS: El bloque Menor que devuelve Verdadero si el número superior es menor que el número inferior. #~msgid "The Less-than block returns True if the top number is less than the bottom number." #~msgstr "" @@ -10923,7 +9467,6 @@ msgstr "z del acelerómetro" #: js/MediaBlocks.js:72 -#.TRANS: En este ejemplo, el ratón se mueve hacia la derecha hasta que alcanza el borde derecho del lienzo; luego reaparece a la izquierda del lienzo. #~msgid "In this example, the mouse moves right until it reaches the right edge of the canvas; then it reappears at the left of the canvas." #~msgstr "" @@ -10931,7 +9474,6 @@ msgstr "z del acelerómetro" #: js/MediaBlocks.js:81 -#.TRANS: En este ejemplo, la tortuga se mueve hacia la derecha hasta que alcanza el borde derecho del lienzo; luego reaparece a la izquierda del lienzo. #~msgid "In this example, the turtle moves right until it reaches the right edge of the canvas; then it reappears at the left of the canvas." #~msgstr "" @@ -10939,7 +9481,6 @@ msgstr "z del acelerómetro" #: js/MediaBlocks.js:150 -#.TRANS: En este ejemplo, el ratón se mueve hacia arriba hasta que alcanza el borde superior del lienzo; luego reaparece en la parte inferior del lienzo. #~msgid "In this example, the mouse moves upward until it reaches the top edge of the canvas; then it reappears at the bottom of the canvas." #~msgstr "" @@ -10947,19 +9488,16 @@ msgstr "z del acelerómetro" #: js/MediaBlocks.js:159 -#.TRANS: En este ejemplo, la tortuga se mueve hacia arriba hasta que alcanza el borde superior del lienzo; luego reaparece en la parte inferior del lienzo. #~msgid "In this example, the turtle moves upward until it reaches the top edge of the canvas; then it reappears at the bottom of the canvas." #~msgstr "" #: js/MediaBlocks.js:579 -#.TRANS: material de video #~msgid "video material" #~msgstr "" #: js/ProgramBlocks.js:581 -#.TRANS: El bloque Ejecutar bloque ejecuta un bloque. Acepta dos tipos de argumentos: número de bloque o nombre de bloque. #~msgid "The Run block block runs a block. It accepts two types of arguments: block number or block name." #~msgstr "" @@ -10967,49 +9505,41 @@ msgstr "z del acelerómetro" #: js/DrumBlocks.js:195 -#.TRANS: El bloque Fijar tambor de ajuste seleccionará un sonido de tambor para reemplazar el tono de cualquier nota contenida. #~msgid "The Set drum block will select a drum sound to replace the pitch of any contained notes." #~msgstr "" #: js/RhythmBlocks.js:30 -#.TRANS: El bloque Valor de la Nota es el valor de la duración de la nota que se está reproduciendo actualmente. #~msgid "The Note value block is the value of the duration of the note currently being played." #~msgstr "" #: js/RhythmBlocks.js:83 -#.TRANS: El bloque Milisegundos es similar a un bloque de nota, excepto que usa el tiempo (en MS) para especificar la duración de la nota. #~msgid "The Milliseconds block is similar to a Note block except that it uses time (in MS) to specify the note duration." #~msgstr "" #: js/RhythmBlocks.js:235 -#.TRANS: El bloque Swing funciona en pares de notas (especificado por el valor de la nota), agregando cierta duración (especificada por el valor del swing) a la primera nota y tomando la misma cantidad de la segunda nota. #~msgid "The Swing block works on pairs of notes (specified by note value), adding some duration (specified by swing value) to the first note and taking the same amount from the second note." #~msgstr "" #: js/RhythmBlocks.js:335 -#.TRANS: El bloque Multiplicar de valor de nota cambia la duración de las notas al cambiar sus valores de nota. #~msgid "The Multiply note value block changes the duration of notes by changing their note values." #~msgstr "" #: js/RhythmBlocks.js:506 -#.TRANS: Un resto de la duración del valor de nota especificado se puede construir utilizando un bloque de silencio. #~msgid "A rest of the specified note value duration can be constructed using a Silence block." #~msgstr "" #: js/HeapBlocks.js:60 -#.TRANS: El bloque Mostrar pila muestra el contenido de la pila en la parte superior de la pantalla. #~msgid "The Show-heap block displays the contents of the heap at the top of the screen." #~msgstr "" #: js/FlowBlocks.js:81 -#.TRANS: La salida del ejemplo es: Sol, Sol, Sol, Sol, Re, Re, Re, Re, Sol, Sol, Sol, Sol. #~msgid "The output of the example is: Sol, Sol, Sol, Sol, Re, Re, Re, Re, Sol, Sol, Sol, Sol." #~msgstr "" @@ -11021,103 +9551,86 @@ msgstr "z del acelerómetro" #: js/FlowBlocks.js:731 -#.TRANS: Los condicionales le permiten a su programa tomar diferentes acciones dependiendo de la condición. #~msgid "Conditionals lets your program take different actions depending on the condition." #~msgstr "" #: js/FlowBlocks.js:690 -#.TRANS: En este ejemplo, si se presiona el botón del mouse, se reproducirá una caja. Si no, tocará un bombo. #~msgid "In this example if the mouse button is pressed a snare drum will play, else a kick drum will play." #~msgstr "" #: js/FlowBlocks.js:764 -#.TRANS: En este ejemplo de una caja de ritmos simple, un bombo ejecutará 1/4 de notas para siempre. #~msgid "In this example of a simple drum machine a kick drum will play 1/4 notes forever." #~msgstr "" #: js/GraphicsBlocks.js:401 -#.TRANS: El bloque Arco mueve el ratón en un arco. #~msgid "The Arc block moves the mouse in a arc." #~msgstr "" #: js/GraphicsBlocks.js:408 -#.TRANS: El bloque Arco mueve la tortuga en un arco. #~msgid "The Arc block moves the turtle in a arc." #~msgstr "" #: js/GraphicsBlocks.js:464 -#.TRANS: El bloque fijar rumbo establece el rumbo del ratón. #~msgid "The Set heading block sets the heading of the mouse." #~msgstr "" #: js/GraphicsBlocks.js:810 -#.TRANS: El bloque Envolver habilita o deshabilita el ajuste de pantalla para las acciones gráficas dentro de él. #~msgid "The Wrap block enables or disables screen wrapping for the graphics actions within it." #~msgstr "" #: js/OrnamentBlocks.js:295 -#.TRANS: El bloque Slur alarga el sostenimiento de las notas mientras mantiene el valor rítmico especificado de las notas. #~msgid "The Slur block lengthens the sustain of notes while maintaining the specified rhythmic value of the notes." #~msgstr "" #: js/OrnamentBlocks.js:324 -#.TRANS: El bloque Staccato acorta la longitud de la nota real mientras mantiene el valor rítmico especificado de las notas. #~msgid "The Staccato block shortens the length of the actual note while maintaining the specified rhythmic value of the notes." #~msgstr "" #: js/VolumeBlocks.js:592 -#.TRANS: El bloque Decrescendo disminuirá el volumen de las notas contenidas en una cantidad específica por cada nota tocada. #~msgid "The Decrescendo block will decrease the volume of the contained notes by a specified amount for every note played." #~msgstr "" #: js/VolumeBlocks.js:594 -#.TRANS: Por ejemplo, si tiene 7 notas en secuencia contenidas en un bloque de Decrescendo con un valor de 5, la nota final será un 35% menos que el volumen inicial. #~msgid "For example if you have 7 notes in sequence contained in a Decrescendo block with a value of 5 the final note will be at 35% less than the starting volume." #~msgstr "" #: js/VolumeBlocks.js:632 -#.TRANS: El bloque Crescendo aumentará el volumen de las notas contenidas en una cantidad específica por cada nota tocada. #~msgid "The Crescendo block will increase the volume of the contained notes by a specified amount for every note played." #~msgstr "" #: js/VolumeBlocks.js:634 -#.TRANS: Por ejemplo, si tiene 7 notas en secuencia contenidas en un bloque de Crescendo con un valor de 5, la nota final será un 35% más que el volumen inicial. #~msgid "For example if you have 7 notes in sequence contained in a Crescendo block with a value of 5 the final note will be at 35% more than the starting volume." #~msgstr "" #: js/ToneBlocks.js:176 -#.TRANS: El bloque Parcial se usa para especificar un peso para un armónico particular. #~msgid "The Partial block is used to specify a weight for a specific partical harmonic." #~msgstr "" #: js/ToneBlocks.js:213 -#.TRANS: El bloque Parciales ponderados se utiliza para especificar los parciales asociados con un timbre. #~msgid "The Weighted partials block is used to specify the partials associated with a timbre." #~msgstr "" #: js/ToneBlocks.js:588 -#.TRANS: El bloque fijar instrumentos predeterminado establecido cambia el instrumento predeterminado de sintetizador electrónico al instrumento de su elección. #~msgid "The set default instrument block changes the default instrument from electronic synth to the instrument of your choice." #~msgstr "" #: js/MeterBlocks.js:54 -#.TRANS: El bloque Factor de Ritmo devuelve la relación entre el valor de la nota y el valor de la nota del medidor. #~msgid "The Beat factor block returns the ratio of the note value to meter note value." #~msgstr "" @@ -11125,151 +9638,121 @@ msgstr "z del acelerómetro" #: js/MeterBlocks.js:179 -#.TRANS: En la figura, se utiliza para realizar una acción en el primer tiempo de cada compás. #~msgid "In the figure, it is used to take an action on the first beat of each measure." #~msgstr "" #: js/MeterBlocks.js:317 -#.TRANS: (De forma predeterminada, cuenta las notas de un cuarto.) #~msgid "(By default, it counts quarter notes.)" #~msgstr "" #: js/DictBlocks.js:29 -#.TRANS: El bloque Mostrar diccionario muestra el contenido del diccionario en la parte superior de la pantalla. #~msgid "The Show-dictionary block displays the contents of the dictionary at the top of the screen." #~msgstr "" #: js/ExtrasBlocks.js:268 -#.TRANS: El bloque Comentario imprime un comentario en la parte superior de la pantalla cuando el programa se está ejecutando en modo lento. #~msgid "The Comment block prints a comment at the top of the screen when the program is running in slow mode." #~msgstr "" #: js/SensorsBlocks.js:235 -#.TRANS: El cursor sobre el bloque activa un evento cuando el cursor se mueve sobre un ratón. #~msgid "The Cursor over block triggers an event when the cursor is moved over a mouse." #~msgstr "" #: js/SensorsBlocks.js:242 -#.TRANS: El cursor sobre el bloque activa un evento cuando el cursor se mueve sobre una tortuga. #~msgid "The Cursor over block triggers an event when the cursor is moved over a turtle." #~msgstr "" #: js/SensorsBlocks.js:264 -#.TRANS: El bloque de salida del cursor desencadena un evento cuando el cursor se mueve fuera de un ratón. #~msgid "The Cursor out block triggers an event when the cursor is moved off of a mouse." #~msgstr "" #: js/SensorsBlocks.js:272 -#.TRANS: El bloque de salida del cursor desencadena un evento cuando el cursor se mueve fuera de una tortuga. #~msgid "The Cursor out block triggers an event when the cursor is moved off of a turtle." #~msgstr "" #: js/SensorsBlocks.js:292 -#.TRANS: El bloque hacia abajo del botón del cursor activa un evento cuando se presiona el botón del cursor en un ratón. #~msgid "The Cursor button down block triggers an event when the curson button is press on a mouse." #~msgstr "" #: js/SensorsBlocks.js:299 -#.TRANS: El bloque hacia abajo del botón del cursor activa un evento cuando se presiona el botón del cursor en una tortuga. #~msgid "The Cursor button down block triggers an event when the curson button is press on a turtle." #~msgstr "" #: js/SensorsBlocks.js:319 -#.TRANS: El bloque del botón del cursor hacia arriba desencadena un evento cuando se suelta el botón del cursor sobre un ratón. #~msgid "The Cursor button up block triggers an event when the cursor button is released while over a mouse." #~msgstr "" #: js/SensorsBlocks.js:326 -#.TRANS: El bloque del botón del cursor hacia arriba desencadena un evento cuando se suelta el botón del cursor sobre una tortuga. #~msgid "The Cursor button up block triggers an event when the cursor button is released while over a turtle." #~msgstr "" #: js/SensorsBlocks.js:346 -#.TRANS: El bloque Obtener azul devuelve el componente azul del píxel debajo del ratón. #~msgid "The Get blue block returns the blue component of the pixel under the mouse." #~msgstr "" #: js/SensorsBlocks.js:352 -#.TRANS: El bloque Obtener azul devuelve el componente azul del píxel debajo de la tortuga. #~msgid "The Get blue block returns the blue component of the pixel under the turtle." #~msgstr "" #: js/SensorsBlocks.js:379 -#.TRANS: El bloque Obtener verde devuelve el componente verde del píxel debajo del ratón. #~msgid "The Get green block returns the green component of the pixel under the mouse." #~msgstr "" #: js/SensorsBlocks.js:385 -#.TRANS: El bloque Obtener verde devuelve el componente verde del píxel debajo de la tortuga. #~msgid "The Get green block returns the green component of the pixel under the turtle." #~msgstr "" #: js/SensorsBlocks.js:500 -#.TRANS: El bloque de tiempo devuelve el número de segundos que el programa se ha estado ejecutando. #~msgid "The Time block returns the number of seconds that the program has been running." #~msgstr "" -#: js/help.js:95 - -#.TRANS: Hacer un recorrido -#~msgid "Take a tour" -#~msgstr "" - #: js/GlobalCard.js:48 -#.TRANS: Más detalles #~msgid "More Details" #~msgstr "" #: js/GlobalCard.js:54 -#.TRANS: Compartir proyecto #~msgid "Share project" #~msgstr "" #: js/GlobalCard.js:60 -#.TRANS: Copiar enlace al portapapeles #~msgid "Copy link to clipboard" #~msgstr "" #: js/GlobalCard.js:63 -#.TRANS: Ejecutar código al inicio. #~msgid "Run project on startup." #~msgstr "" #: js/GlobalCard.js:64 -#.TRANS: Mostrar código al inicio. #~msgid "Show code blocks on startup." #~msgstr "" #: js/GlobalCard.js:65 -#.TRANS: Contraer bloques al inicio. #~msgid "Collapse code blocks on startup." #~msgstr "" #: js/GlobalCard.js:70 -#.TRANS: Opciones avanzadas #~msgid "Advanced Options" #~msgstr "" @@ -13898,11 +12381,6 @@ msgstr "z del acelerómetro" #~msgid "The Repeat block will repeat the contained blocks. In this example, the note will be played 4 times." #~msgstr "" -#: js/musicutils.js:254 - -#~msgid "Custom" -#~msgstr "Mboavarekoha" - #: js/basicblocks.js:4785 #~msgid "Rhythm" diff --git a/po/ha.po b/po/ha.po index 18224fb952..8ad1e5a538 100644 --- a/po/ha.po +++ b/po/ha.po @@ -2129,276 +2129,131 @@ #: js/planetInterface.js:104 #: js/planetInterface.js:104 #: js/planetInterface.js:104 -msgid "project undefined" -msgstr "" - -#: js/logo.js:61 -msgid "Not a valid pitch name" -msgstr "" - -#: js/logo.js:507 -#: js/ProgramBlocks.js:258 -#: js/ProgramBlocks.js:427 -msgid "You must select a file." -msgstr "" - -#: js/logo.js:1184 -#: js/turtles.js:118 -#: js/turtle-painter.js:1192 -#: js/turtle-painter.js:1193 -#: js/block.js:1463 -#: js/lilypond.js:757 -#: js/lilypond.js:921 -#: js/lilypond.js:959 -#: js/ActionBlocks.js:1223 -#: js/ProgramBlocks.js:1267 -msgid "start" -msgstr "" - -#: js/logo.js:1696 -msgid "Playback is ready." -msgstr "" - -#: js/blocks.js:1011 -#: js/blocks.js:3427 -#: js/blocks.js:3428 -#: js/blocks.js:3653 -#: js/blocks.js:4012 -#: js/blocks.js:4205 -#: js/blocks.js:5343 -#: js/blocks.js:6474 -#: js/palette.js:527 -#: js/palette.js:536 -#: js/palette.js:545 -#: js/palette.js:554 -#: js/palette.js:1131 -#: js/palette.js:1142 -#: js/palette.js:1153 -#: js/palette.js:1164 -#: js/palette.js:1183 -#: js/rubrics.js:529 -#: js/macros.js:170 -#: js/macros.js:266 -#: js/macros.js:267 -#: js/macros.js:276 -#: js/macros.js:828 -#: js/block.js:1449 -#: js/block.js:4164 -#: js/block.js:4182 -#: js/block.js:4193 -#: js/turtledefs.js:128 -#: js/turtledefs.js:230 -#: js/ActionBlocks.js:254 -#: js/ActionBlocks.js:307 -#: js/ActionBlocks.js:617 -#: js/ActionBlocks.js:716 -#: js/ActionBlocks.js:961 -#: js/ActionBlocks.js:1049 -#: js/ActionBlocks.js:1322 -#: js/ActionBlocks.js:1325 -#: js/ActionBlocks.js:1337 -#: js/ActionBlocks.js:1404 -#: js/MeterBlocks.js:715 -#: js/MeterBlocks.js:768 -#: js/MeterBlocks.js:831 -#: js/MeterBlocks.js:892 -#: js/phrasemaker.js:4412 -#: js/musickeyboard.js:2647 -#: js/rhythmruler.js:1928 -#: js/rhythmruler.js:1935 -#: js/rhythmruler.js:2119 -#: js/rhythmruler.js:2126 -msgid "action" -msgstr "" - -#: js/blocks.js:1205 -#: js/blocks.js:3380 -#: js/blocks.js:3770 -#: js/blocks.js:3801 -#: js/blocks.js:3850 -#: js/blocks.js:3885 -#: js/blocks.js:6497 -#: js/palette.js:509 -#: js/palette.js:638 -#: js/palette.js:1107 -#: js/BoxesBlocks.js:282 -#: js/BoxesBlocks.js:285 -#: js/BoxesBlocks.js:405 -#: js/BoxesBlocks.js:594 -msgid "box" -msgstr "" - -#: js/blocks.js:1680 -msgid "Consider breaking this stack into parts." +#: js/SaveInterface.js:59 +#: js/SaveInterface.js:61 +#: js/SaveInterface.js:93 +msgid "Music Blocks Project" msgstr "" -#: js/blocks.js:2408 -#: js/palette.js:653 -#: js/MediaBlocks.js:602 -msgid "open file" +#: js/SaveInterface.js:63 +msgid "This project was created in Music Blocks" msgstr "" -#: js/blocks.js:2415 -#: js/blocks.js:2423 -#: js/activity.js:1875 -msgid "audio file" +#: js/SaveInterface.js:67 +msgid "Music Blocks is a Free/Libre Software application." msgstr "" -#: js/blocks.js:2536 -#: js/blocks.js:3147 -#: js/block.js:3543 -msgid "on2" +#: js/SaveInterface.js:69 +msgid "The source code can be accessed at" msgstr "" -#: js/blocks.js:2538 -#: js/blocks.js:3149 -#: js/block.js:3545 -msgid "off" +#: js/SaveInterface.js:72 +msgid "For more information, please consult the" msgstr "" -#: js/blocks.js:2543 -#: js/blocks.js:3154 -#: js/palette.js:618 -#: js/block.js:3466 -#: js/BooleanBlocks.js:77 -#: js/BooleanBlocks.js:167 -#: js/BooleanBlocks.js:251 -#: js/BooleanBlocks.js:335 -#: js/BooleanBlocks.js:433 -#: js/BooleanBlocks.js:539 -#: js/BooleanBlocks.js:640 -#: js/BooleanBlocks.js:741 -#: js/BooleanBlocks.js:847 -#: js/BooleanBlocks.js:948 -#: js/BooleanBlocks.js:1033 -#: js/SensorsBlocks.js:910 -msgid "true" +#: js/SaveInterface.js:76 +#: js/turtledefs.js:795 +msgid "Music Blocks Guide" msgstr "" -#: js/blocks.js:2545 -#: js/blocks.js:3156 -#: js/block.js:3466 -#: js/BooleanBlocks.js:79 -#: js/BooleanBlocks.js:169 -#: js/BooleanBlocks.js:253 -#: js/BooleanBlocks.js:337 -#: js/BooleanBlocks.js:435 -#: js/BooleanBlocks.js:541 -#: js/BooleanBlocks.js:642 -#: js/BooleanBlocks.js:743 -#: js/BooleanBlocks.js:849 -#: js/BooleanBlocks.js:950 -#: js/SensorsBlocks.js:912 -msgid "false" +#: js/SaveInterface.js:83 +msgid "Alternatively, open the file in Music Blocks using the Load project button." msgstr "" -#: js/blocks.js:3183 -#: js/palette.js:574 -#: js/MediaBlocks.js:892 -#: js/MediaBlocks.js:963 -msgid "text" +#: js/SaveInterface.js:85 +msgid "Project Code" msgstr "" -#: js/blocks.js:3379 -#: js/palette.js:641 -#: js/palette.js:642 -#: js/BoxesBlocks.js:514 -msgid "store in box" +#: js/SaveInterface.js:87 +msgid "This code stores data about the blocks in a project." msgstr "" -#: js/blocks.js:3384 -#: js/blocks.js:3824 -#: js/blocks.js:3859 -#: js/blocks.js:3894 -#: js/blocks.js:5773 -#: js/blocks.js:5794 -#: js/BoxesBlocks.js:772 -msgid "box1" +#: js/SaveInterface.js:89 +msgid "Show" msgstr "" -#: js/blocks.js:3386 -#: js/blocks.js:3826 -#: js/blocks.js:3861 -#: js/blocks.js:3896 -#: js/blocks.js:5775 -#: js/blocks.js:5796 -#: js/BoxesBlocks.js:663 -msgid "box2" +#: js/SaveInterface.js:91 +msgid "Hide" msgstr "" -#: js/blocks.js:4058 -#: js/palette.js:639 -#: js/palette.js:644 -#: js/palette.js:1043 -#: js/BoxesBlocks.js:591 -msgid "store in" +#: js/SaveInterface.js:131 +#: js/SaveInterface.js:204 +#: js/SaveInterface.js:262 +#: js/SaveInterface.js:389 +#: js/SaveInterface.js:417 +#: js/activity.js:4884 +#: planet/js/ProjectStorage.js:27 +#: planet/js/GlobalPlanet.js:467 +#: planet/js/GlobalPlanet.js:469 +#: planet/js/GlobalPlanet.js:495 +#.TRANS: default project title when saving as Lilypond +msgid "My Project" msgstr "" -#: js/blocks.js:4058 -#: js/EnsembleBlocks.js:391 -#: js/EnsembleBlocks.js:402 -#: js/MediaBlocks.js:746 -#: js/ProgramBlocks.js:390 -#: js/ProgramBlocks.js:495 -#: js/ProgramBlocks.js:658 -#: js/BoxesBlocks.js:595 -#: js/PitchBlocks.js:656 -#: js/PitchBlocks.js:932 -#: js/PitchBlocks.js:1827 -#: js/ToneBlocks.js:1025 -#: js/DictBlocks.js:215 -#: js/DictBlocks.js:289 -msgid "name" +#: js/SaveInterface.js:197 +#: planet/js/SaveInterface.js:58 +msgid "No description provided" msgstr "" -#: js/blocks.js:4058 -#: js/RhythmBlocks.js:1130 -#: js/BoxesBlocks.js:75 -#: js/BoxesBlocks.js:595 -#: js/HeapBlocks.js:544 -#: js/DictBlocks.js:289 -#: js/DictBlocks.js:430 -msgid "value" +#: js/SaveInterface.js:332 +msgid "Your recording is in progress." msgstr "" -#: js/blocks.js:4907 -msgid "There is no block selected." +#: js/SaveInterface.js:401 +#.TRANS: File name prompt for save as Lilypond +msgid "File name" msgstr "" -#: js/blocks.js:5002 -#: js/MediaBlocks.js:888 -msgid "show" +#: js/SaveInterface.js:403 +#: planet/js/StringHelper.js:39 +#.TRANS: Project title prompt for save as Lilypond +msgid "Project title" msgstr "" -#: js/blocks.js:5005 -#: js/MediaBlocks.js:803 -#.TRANS: Avatar is the image used to determine the appearance of the mouse. -msgid "avatar" +#: js/SaveInterface.js:405 +#.TRANS: Project title prompt for save as Lilypond +msgid "Project author" msgstr "" -#: js/blocks.js:5008 -#: js/ToneBlocks.js:1010 -#: js/sampler.js:693 -#.TRANS: The sound sample that the user uploads. -msgid "sample" +#: js/SaveInterface.js:407 +#.TRANS: MIDI prompt for save as Lilypond +msgid "Include MIDI output?" msgstr "" -#: js/turtles.js:874 -msgid "Grid" +#: js/SaveInterface.js:409 +#.TRANS: Guitar prompt for save as Lilypond +msgid "Include guitar tablature output?" msgstr "" -#: js/turtles.js:891 -#: js/turtledefs.js:626 -msgid "Clean" +#: js/SaveInterface.js:411 +#.TRANS: Lilypond is a scripting language for generating sheet music +msgid "Save as Lilypond" msgstr "" -#: js/turtles.js:912 -#: js/turtledefs.js:632 -msgid "Collapse" +#: js/SaveInterface.js:426 +#: js/blocks/EnsembleBlocks.js:75 +#: js/blocks/EnsembleBlocks.js:154 +#: js/blocks/EnsembleBlocks.js:216 +#: js/blocks/EnsembleBlocks.js:302 +#: js/blocks/EnsembleBlocks.js:348 +#: js/blocks/EnsembleBlocks.js:389 +#: js/blocks/EnsembleBlocks.js:441 +#: js/blocks/EnsembleBlocks.js:490 +#: js/blocks/EnsembleBlocks.js:536 +#: js/blocks/EnsembleBlocks.js:583 +#: js/blocks/EnsembleBlocks.js:637 +#: js/blocks/EnsembleBlocks.js:753 +#: js/blocks/EnsembleBlocks.js:840 +#: js/blocks/EnsembleBlocks.js:899 +#: js/blocks/EnsembleBlocks.js:942 +#: js/blocks/EnsembleBlocks.js:1212 +#: js/blocks/EnsembleBlocks.js:1280 +#.TRANS: default project author when saving as Lilypond +msgid "Mr. Mouse" msgstr "" -#: js/turtles.js:940 -msgid "Expand" +#: js/SaveInterface.js:573 +msgid "The Lilypond code is copied to clipboard. You can paste it here: " msgstr "" #: js/languagebox.js:198 @@ -2409,6933 +2264,7487 @@ msgstr "" msgid "Music Blocks is already set to this language." msgstr "" -#: js/piemenus.js:200 -#: js/musicutils.js:808 -#: js/musicutils.js:824 -#: js/phrasemaker.js:1672 -#: js/musickeyboard.js:2041 -#: js/sampler.js:544 -#.TRANS: double sharp is a music term related to pitch -msgid "double sharp" +#: js/planetInterface.js:131 +msgid "project undefined" msgstr "" -#: js/piemenus.js:201 -#: js/PitchBlocks.js:1510 -#: js/PitchActions.js:580 -#: js/musicutils.js:806 -#: js/musicutils.js:825 -#: js/phrasemaker.js:1673 -#: js/musickeyboard.js:2042 -#: js/sampler.js:545 -#.TRANS: sharp is a half-step up in pitch -#.TRANS: sharp is a music term related to pitch -msgid "sharp" +#: js/rubrics.js:523 +#: js/turtledefs.js:119 +#: js/turtledefs.js:221 +#: js/blocks/RhythmBlockPaletteBlocks.js:52 +#: js/blocks/RhythmBlockPaletteBlocks.js:234 +#: js/blocks/ProgramBlocks.js:745 +#: js/widgets/rhythmruler.js:2057 +#: js/widgets/rhythmruler.js:2064 +#: js/widgets/rhythmruler.js:2133 +#: js/widgets/rhythmruler.js:2140 +#: js/widgets/rhythmruler.js:2219 +#.TRANS: an arrangement of notes based on duration +msgid "rhythm" msgstr "" -#: js/piemenus.js:202 -#: js/musicutils.js:804 -#: js/musicutils.js:826 -#: js/phrasemaker.js:1674 -#: js/musickeyboard.js:2043 -#: js/sampler.js:546 -#.TRANS: natural is a music term related to pitch -msgid "natural" +#: js/rubrics.js:524 +#: js/turtledefs.js:121 +#: js/turtledefs.js:223 +#: js/block-verbose.js:2622 +#: js/block.js:2550 +#: js/blocks/IntervalsBlocks.js:63 +#: js/blocks/SensorsBlocks.js:178 +#: js/blocks/PitchBlocks.js:1839 +#: js/blocks/PitchBlocks.js:1853 +#: js/widgets/musickeyboard.js:1935 +#: js/widgets/phrasemaker.js:1036 +#.TRANS: pitch number +#.TRANS: pitch number +#.TRANS: we specify pitch in terms of a name and an octave. The name can be CDEFGAB or Do Re Mi Fa Sol La Ti. Octave is a number between 1 and 8. +msgid "pitch" msgstr "" -#: js/piemenus.js:203 -#: js/PitchBlocks.js:1469 -#: js/PitchActions.js:583 -#: js/musicutils.js:802 -#: js/musicutils.js:827 -#: js/phrasemaker.js:1675 -#: js/musickeyboard.js:2044 -#: js/sampler.js:547 -#.TRANS: flat is a half-step down in pitch -#.TRANS: flat is a music term related to pitch -msgid "flat" +#: js/rubrics.js:525 +#: js/turtledefs.js:123 +#: js/turtledefs.js:225 +msgid "tone" msgstr "" -#: js/piemenus.js:204 -#: js/musicutils.js:800 -#: js/musicutils.js:828 -#: js/phrasemaker.js:1676 -#: js/musickeyboard.js:2045 -#: js/sampler.js:548 -#.TRANS: double flat is a music term related to pitch -msgid "double flat" +#: js/rubrics.js:526 +#: js/lilypond.js:605 +#: js/lilypond.js:904 +#: js/lilypond.js:910 +#: js/lilypond.js:948 +msgid "mouse" msgstr "" -#: js/piemenus.js:2861 -#: js/PitchBlocks.js:1357 -#: js/musicutils.js:627 -#.TRANS: unison means the note is the same as the current note -#.TRANS: unison is a music term related to intervals -msgid "unison" +#: js/rubrics.js:527 +#: js/turtledefs.js:132 +#: js/turtledefs.js:234 +#: js/widgets/phrasemaker.js:1040 +msgid "pen" msgstr "" -#: js/piemenus.js:3015 -#: js/piemenus.js:3088 -#: js/musicutils.js:635 -#: js/musicutils.js:810 -#: js/musicutils.js:912 -#.TRANS: major is a music term related to intervals and mode -msgid "major" +#: js/rubrics.js:528 +#: js/turtledefs.js:133 +#: js/turtledefs.js:235 +#: js/blocks/NumberBlocks.js:981 +#: js/blocks/PitchBlocks.js:1717 +#: js/blocks/PitchBlocks.js:1758 +msgid "number" msgstr "" -#: js/piemenus.js:3015 -#: js/piemenus.js:3088 -#: js/musicutils.js:653 -#.TRANS: modal scale for music -msgid "ionian" +#: js/rubrics.js:529 +#: js/turtledefs.js:127 +#: js/turtledefs.js:229 +msgid "flow" msgstr "" -#: js/piemenus.js:3017 -#: js/piemenus.js:3092 -#: js/musicutils.js:633 -#: js/musicutils.js:811 -#: js/musicutils.js:909 -#.TRANS: minor is a music term related to intervals and mode -msgid "minor" +#: js/rubrics.js:530 +#: js/turtledefs.js:128 +#: js/turtledefs.js:230 +#: js/block-verbose.js:1609 +#: js/block-verbose.js:4559 +#: js/block-verbose.js:4577 +#: js/block-verbose.js:4588 +#: js/block.js:1573 +#: js/block.js:4483 +#: js/block.js:4501 +#: js/block.js:4512 +#: js/blocks.js:1018 +#: js/blocks.js:3491 +#: js/blocks.js:3492 +#: js/blocks.js:3717 +#: js/blocks.js:4076 +#: js/blocks.js:4269 +#: js/blocks.js:5432 +#: js/blocks.js:6563 +#: js/macros.js:170 +#: js/macros.js:266 +#: js/macros.js:267 +#: js/macros.js:276 +#: js/macros.js:828 +#: js/palette.js:527 +#: js/palette.js:536 +#: js/palette.js:545 +#: js/palette.js:554 +#: js/palette.js:1129 +#: js/palette.js:1140 +#: js/palette.js:1151 +#: js/palette.js:1162 +#: js/palette.js:1181 +#: js/blocks/ActionBlocks.js:254 +#: js/blocks/ActionBlocks.js:307 +#: js/blocks/ActionBlocks.js:617 +#: js/blocks/ActionBlocks.js:716 +#: js/blocks/ActionBlocks.js:961 +#: js/blocks/ActionBlocks.js:1049 +#: js/blocks/ActionBlocks.js:1322 +#: js/blocks/ActionBlocks.js:1325 +#: js/blocks/ActionBlocks.js:1337 +#: js/blocks/ActionBlocks.js:1404 +#: js/blocks/MeterBlocks.js:715 +#: js/blocks/MeterBlocks.js:768 +#: js/blocks/MeterBlocks.js:831 +#: js/blocks/MeterBlocks.js:892 +#: js/widgets/musickeyboard.js:2986 +#: js/widgets/phrasemaker.js:4913 +#: js/widgets/rhythmruler.js:2319 +#: js/widgets/rhythmruler.js:2326 +#: js/widgets/rhythmruler.js:2511 +#: js/widgets/rhythmruler.js:2518 +msgid "action" msgstr "" -#: js/piemenus.js:3017 -#: js/piemenus.js:3092 -#: js/musicutils.js:663 -#.TRANS: modal scale for music -msgid "aeolian" +#: js/rubrics.js:531 +#: js/turtledefs.js:136 +#: js/turtledefs.js:238 +msgid "sensors" msgstr "" -#: js/piemenus.js:3407 -msgid "Duplicate" +#: js/rubrics.js:532 +#: js/turtledefs.js:135 +#: js/turtledefs.js:237 +#: js/blocks/MediaBlocks.js:930 +msgid "media" msgstr "" -#: js/piemenus.js:3408 -#: js/turtledefs.js:534 -msgid "Extract" +#: js/rubrics.js:533 +msgid "mice" msgstr "" -#: js/piemenus.js:3409 -msgid "Move to trash" +#: js/toolbar.js:48 +#: js/toolbar.js:109 +msgid "About Music Blocks" msgstr "" -#: js/piemenus.js:3410 -#: js/timbre.js:968 -#: js/StringHelper.js:69 -msgid "Close" +#: js/toolbar.js:49 +#: js/toolbar.js:110 +#: js/toolbar.js:175 +#: js/toolbar.js:231 +#: js/turtledefs.js:445 +#: js/turtledefs.js:482 +#: js/activity.js:2660 +#: js/activity.js:2671 +#: js/activity.js:2902 +#: js/widgets/modewidget.js:77 +#: js/widgets/meterwidget.js:185 +#: js/widgets/pitchdrummatrix.js:147 +#: js/widgets/pitchdrummatrix.js:687 +#: js/widgets/pitchdrummatrix.js:689 +#: js/widgets/pitchdrummatrix.js:741 +#: js/widgets/pitchdrummatrix.js:743 +#: js/widgets/pitchdrummatrix.js:758 +#: js/widgets/pitchdrummatrix.js:760 +#: js/widgets/pitchdrummatrix.js:789 +#: js/widgets/pitchdrummatrix.js:791 +#: js/widgets/pitchstaircase.js:121 +#: js/widgets/temperament.js:610 +#: js/widgets/temperament.js:613 +#: js/widgets/temperament.js:673 +#: js/widgets/temperament.js:675 +#: js/widgets/temperament.js:2017 +#: js/widgets/temperament.js:2019 +#: js/widgets/tempo.js:84 +#: js/widgets/tempo.js:86 +#: js/widgets/timbre.js:432 +#: js/widgets/timbre.js:434 +#: js/widgets/timbre.js:465 +#: js/widgets/timbre.js:467 +#: js/widgets/timbre.js:746 +#: js/widgets/aiwidget.js:647 +#: js/widgets/aiwidget.js:654 +#: js/widgets/aiwidget.js:656 +#: js/widgets/arpeggio.js:90 +#: js/widgets/arpeggio.js:547 +#: js/widgets/arpeggio.js:549 +#: js/widgets/arpeggio.js:644 +#: js/widgets/arpeggio.js:646 +#: js/widgets/musickeyboard.js:676 +#: js/widgets/musickeyboard.js:872 +#: js/widgets/musickeyboard.js:874 +#: js/widgets/musickeyboard.js:953 +#: js/widgets/musickeyboard.js:955 +#: js/widgets/phrasemaker.js:513 +#: js/widgets/phrasemaker.js:523 +#: js/widgets/phrasemaker.js:525 +#: js/widgets/phrasemaker.js:4304 +#: js/widgets/phrasemaker.js:4528 +#: js/widgets/phrasemaker.js:4533 +#: js/widgets/phrasemaker.js:4535 +#: js/widgets/phrasemaker.js:4650 +#: js/widgets/rhythmruler.js:637 +#: js/widgets/rhythmruler.js:639 +#: js/widgets/rhythmruler.js:653 +#: js/widgets/rhythmruler.js:655 +#: js/widgets/sampler.js:162 +#: js/widgets/sampler.js:164 +#: js/widgets/sampler.js:363 +msgid "Play" msgstr "" -#: js/piemenus.js:3416 -msgid "Save stack" +#: js/toolbar.js:50 +#: js/toolbar.js:111 +#: js/toolbar.js:176 +#: js/toolbar.js:232 +#: js/turtledefs.js:451 +#: js/turtledefs.js:488 +#: js/activity.js:2679 +#: js/widgets/modewidget.js:99 +#: js/widgets/modewidget.js:101 +#: js/widgets/meterwidget.js:206 +#: js/widgets/meterwidget.js:208 +#: js/widgets/pitchdrummatrix.js:674 +#: js/widgets/pitchdrummatrix.js:676 +#: js/widgets/temperament.js:2002 +#: js/widgets/temperament.js:2004 +#: js/widgets/arpeggio.js:534 +#: js/widgets/arpeggio.js:536 +#: js/widgets/phrasemaker.js:534 +#: js/widgets/phrasemaker.js:536 +msgid "Stop" msgstr "" -#: js/piemenus.js:3420 -#: js/toolbar.js:60 -#: js/toolbar.js:120 -#: js/toolbar.js:185 -#: js/toolbar.js:240 -#: js/turtledefs.js:752 -msgid "Help" +#: js/toolbar.js:51 +#: js/toolbar.js:112 +#: js/toolbar.js:177 +#: js/toolbar.js:233 +#: js/turtledefs.js:498 +msgid "Record" msgstr "" -#: js/piemenus.js:3762 -msgid "You have chosen key " +#: js/toolbar.js:52 +#: js/toolbar.js:53 +msgid "Full screen" msgstr "" -#: js/piemenus.js:3766 -msgid " for your pitch preview." +#: js/toolbar.js:54 +#: js/toolbar.js:115 +#: js/toolbar.js:180 +#: js/toolbar.js:236 +#: js/turtledefs.js:504 +msgid "Toggle Fullscreen" +msgstr "" + +#: js/toolbar.js:55 +#: js/toolbar.js:116 +#: js/toolbar.js:181 +#: js/toolbar.js:237 +#: js/turtledefs.js:510 +#: planet/js/StringHelper.js:33 +msgid "New project" +msgstr "" + +#: js/toolbar.js:56 +#: js/toolbar.js:117 +#: js/toolbar.js:182 +#: js/toolbar.js:238 +#: js/turtledefs.js:516 +msgid "Load project from file" +msgstr "" + +#: js/toolbar.js:57 +#: js/toolbar.js:118 +#: js/toolbar.js:119 +#: js/toolbar.js:183 +#: js/toolbar.js:239 +#: js/turtledefs.js:541 +#: js/turtledefs.js:550 +#: js/turtledefs.js:571 +msgid "Save project" +msgstr "" + +#: js/toolbar.js:58 +#: js/toolbar.js:77 +#: js/toolbar.js:79 +#: js/toolbar.js:138 +#: js/toolbar.js:147 +#: js/toolbar.js:149 +#: js/toolbar.js:184 +#: js/toolbar.js:202 +#: js/toolbar.js:204 +#: js/toolbar.js:240 +#: js/toolbar.js:258 +#: js/toolbar.js:260 +msgid "Save project as HTML" +msgstr "" + +#: js/toolbar.js:59 +#: js/toolbar.js:120 +#: js/toolbar.js:185 +#: js/toolbar.js:241 +msgid "Find and share projects" +msgstr "" + +#: js/toolbar.js:60 +#: js/toolbar.js:121 +#: js/toolbar.js:186 +#: js/toolbar.js:242 +msgid "Offline. Sharing is unavailable" +msgstr "" + +#: js/toolbar.js:61 +#: js/toolbar.js:122 +#: js/toolbar.js:187 +#: js/toolbar.js:243 +msgid "Auxiliary menu" +msgstr "" + +#: js/toolbar.js:62 +#: js/toolbar.js:123 +#: js/toolbar.js:188 +#: js/toolbar.js:244 +#: js/turtledefs.js:752 +#: js/piemenus.js:3423 +msgid "Help" +msgstr "" + +#: js/toolbar.js:63 +#: js/toolbar.js:124 +#: js/toolbar.js:189 +#: js/toolbar.js:245 +msgid "Run slowly" +msgstr "" + +#: js/toolbar.js:64 +#: js/toolbar.js:125 +#: js/toolbar.js:190 +#: js/toolbar.js:246 +#: js/turtledefs.js:682 +msgid "Run step by step" +msgstr "" + +#: js/toolbar.js:65 +#: js/toolbar.js:126 +#: js/toolbar.js:191 +#: js/toolbar.js:247 +#: js/turtledefs.js:689 +msgid "Display statistics" +msgstr "" + +#: js/toolbar.js:66 +#: js/toolbar.js:127 +#: js/toolbar.js:192 +#: js/toolbar.js:248 +msgid "Load plugin" +msgstr "" + +#: js/toolbar.js:67 +#: js/toolbar.js:128 +#: js/toolbar.js:193 +#: js/toolbar.js:249 +#: js/turtledefs.js:696 +msgid "Delete plugin" +msgstr "" + +#: js/toolbar.js:68 +#: js/toolbar.js:129 +#: js/toolbar.js:194 +#: js/toolbar.js:250 +msgid "Enable horizontal scrolling" +msgstr "" + +#: js/toolbar.js:69 +#: js/toolbar.js:130 +#: js/toolbar.js:195 +#: js/toolbar.js:251 +msgid "Disable horizontal scrolling" +msgstr "" + +#: js/toolbar.js:70 +#: js/toolbar.js:131 +#: js/toolbar.js:196 +#: js/toolbar.js:252 +#: planet/js/LocalCard.js:54 +#: planet/js/StringHelper.js:71 +msgid "Merge with current project" +msgstr "" + +#: js/toolbar.js:71 +#: js/toolbar.js:132 +msgid "Set Pitch Preview" +msgstr "" + +#: js/toolbar.js:72 +#: js/toolbar.js:133 +#: js/toolbar.js:197 +#: js/toolbar.js:253 +msgid "JavaScript Editor" +msgstr "" + +#: js/toolbar.js:73 +#: js/toolbar.js:134 +#: js/toolbar.js:198 +#: js/toolbar.js:254 +#: js/turtledefs.js:724 +msgid "Restore" +msgstr "" + +#: js/toolbar.js:74 +#: js/toolbar.js:135 +#: js/toolbar.js:199 +#: js/toolbar.js:255 +msgid "Switch to beginner mode" +msgstr "" + +#: js/toolbar.js:75 +#: js/toolbar.js:136 +#: js/toolbar.js:200 +#: js/toolbar.js:256 +msgid "Switch to advanced mode" +msgstr "" + +#: js/toolbar.js:76 +#: js/toolbar.js:137 +#: js/toolbar.js:146 +#: js/toolbar.js:201 +#: js/toolbar.js:257 +#: js/turtledefs.js:738 +msgid "Select language" +msgstr "" + +#: js/toolbar.js:78 +#: js/toolbar.js:81 +#: js/toolbar.js:140 +#: js/turtledefs.js:579 +msgid "Save mouse artwork as PNG" +msgstr "" + +#: js/toolbar.js:80 +#: js/toolbar.js:139 +#: js/turtledefs.js:575 +msgid "Save mouse artwork as SVG" +msgstr "" + +#: js/toolbar.js:82 +#: js/toolbar.js:141 +#: js/turtledefs.js:583 +msgid "Save music as WAV" +msgstr "" + +#: js/toolbar.js:83 +#: js/toolbar.js:142 +#: js/turtledefs.js:587 +msgid "Save sheet music as ABC" +msgstr "" + +#: js/toolbar.js:84 +#: js/toolbar.js:143 +#: js/turtledefs.js:591 +msgid "Save sheet music as Lilypond" +msgstr "" + +#: js/toolbar.js:85 +msgid "Save sheet music as MusicXML" +msgstr "" + +#: js/toolbar.js:86 +#: js/toolbar.js:144 +#: js/toolbar.js:152 +#: js/toolbar.js:207 +#: js/toolbar.js:263 +#: js/turtledefs.js:562 +#: js/turtledefs.js:595 +msgid "Save block artwork as SVG" +msgstr "" + +#: js/toolbar.js:87 +#: js/toolbar.js:145 +#: js/toolbar.js:153 +#: js/toolbar.js:208 +#: js/toolbar.js:264 +#: js/turtles.js:911 +msgid "Confirm" +msgstr "" + +#: js/toolbar.js:88 +#: js/toolbar.js:154 +#: js/toolbar.js:209 +#: js/toolbar.js:265 +msgid "English (United States)" +msgstr "" + +#: js/toolbar.js:89 +#: js/toolbar.js:155 +#: js/toolbar.js:210 +#: js/toolbar.js:266 +msgid "English (United Kingdom)" +msgstr "" + +#: js/toolbar.js:90 +#: js/toolbar.js:156 +#: js/toolbar.js:211 +#: js/toolbar.js:267 +msgid "日本語" +msgstr "" + +#: js/toolbar.js:91 +msgid "한국어" +msgstr "" + +#: js/toolbar.js:92 +#: js/toolbar.js:158 +#: js/toolbar.js:213 +#: js/toolbar.js:269 +msgid "español" +msgstr "" + +#: js/toolbar.js:93 +#: js/toolbar.js:159 +#: js/toolbar.js:214 +#: js/toolbar.js:270 +msgid "português" +msgstr "" + +#: js/toolbar.js:94 +#: js/toolbar.js:160 +#: js/toolbar.js:215 +#: js/toolbar.js:271 +msgid "にほんご" +msgstr "" + +#: js/toolbar.js:95 +#: js/toolbar.js:161 +#: js/toolbar.js:216 +#: js/toolbar.js:272 +msgid "中文" +msgstr "" + +#: js/toolbar.js:96 +#: js/toolbar.js:162 +#: js/toolbar.js:217 +#: js/toolbar.js:273 +msgid "ภาษาไทย" +msgstr "" + +#: js/toolbar.js:97 +#: js/toolbar.js:163 +#: js/toolbar.js:218 +#: js/toolbar.js:274 +msgid "aymara" +msgstr "" + +#: js/toolbar.js:98 +#: js/toolbar.js:164 +#: js/toolbar.js:219 +#: js/toolbar.js:275 +msgid "quechua" +msgstr "" + +#: js/toolbar.js:99 +#: js/toolbar.js:165 +#: js/toolbar.js:220 +#: js/toolbar.js:276 +msgid "guarani" +msgstr "" + +#: js/toolbar.js:100 +#: js/toolbar.js:166 +#: js/toolbar.js:221 +#: js/toolbar.js:277 +msgid "हिंदी" +msgstr "" + +#: js/toolbar.js:101 +#: js/toolbar.js:168 +#: js/toolbar.js:222 +#: js/toolbar.js:279 +msgid "igbo" +msgstr "" + +#: js/toolbar.js:102 +#: js/toolbar.js:169 +#: js/toolbar.js:223 +#: js/toolbar.js:280 +msgid "عربى" +msgstr "" + +#: js/toolbar.js:103 +#: js/toolbar.js:167 +#: js/toolbar.js:224 +#: js/toolbar.js:278 +msgid "తెలుగు" +msgstr "" + +#: js/toolbar.js:104 +#: js/toolbar.js:170 +#: js/toolbar.js:225 +#: js/toolbar.js:281 +msgid "עִברִית" +msgstr "" + +#: js/toolbar.js:113 +#: js/toolbar.js:114 +#: js/toolbar.js:178 +#: js/toolbar.js:179 +#: js/toolbar.js:234 +#: js/toolbar.js:235 +msgid "Full Screen" +msgstr "" + +#: js/toolbar.js:148 +#: js/toolbar.js:151 +#: js/toolbar.js:203 +#: js/toolbar.js:206 +#: js/toolbar.js:259 +#: js/toolbar.js:262 +#: js/turtledefs.js:558 +msgid "Save turtle artwork as PNG" +msgstr "" + +#: js/toolbar.js:150 +#: js/toolbar.js:205 +#: js/toolbar.js:261 +#: js/turtledefs.js:554 +msgid "Save turtle artwork as SVG" +msgstr "" + +#: js/toolbar.js:157 +#: js/toolbar.js:212 +#: js/toolbar.js:268 +msgid "한국인" +msgstr "" + +#: js/toolbar.js:174 +#: js/toolbar.js:230 +msgid "About Turtle Blocks" +msgstr "" + +#: js/toolbar.js:446 +#: js/toolbar.js:457 +#: js/toolbar.js:497 +msgid "Turtle Wrap Off" +msgstr "" + +#: js/toolbar.js:466 +#: js/toolbar.js:506 +msgid "Turtle Wrap On" +msgstr "" + +#: js/turtle-painter.js:1192 +#: js/turtle-painter.js:1193 +#: js/turtles.js:118 +#: js/block-verbose.js:1623 +#: js/block.js:1587 +#: js/lilypond.js:749 +#: js/lilypond.js:913 +#: js/lilypond.js:951 +#: js/logo.js:1184 +#: js/blocks/ActionBlocks.js:1223 +#: js/blocks/ProgramBlocks.js:1267 +msgid "start" +msgstr "" + +#: js/turtledefs.js:40 +#.TRANS: put the URL to the guide here, e.g., https://github.com/sugarlabs/turtleblocksjs/tree/master/guide/README.md +msgid "guide url" +msgstr "" + +#: js/turtledefs.js:85 +#: js/turtledefs.js:437 +msgid "Turtle Blocks is a Logo-inspired turtle that draws colorful pictures with snap-together visual-programming blocks." +msgstr "" + +#: js/turtledefs.js:118 +#: js/turtledefs.js:220 +msgid "search" +msgstr "" + +#: js/turtledefs.js:120 +#: js/turtledefs.js:222 +#: js/blocks/MeterBlocks.js:1343 +#: js/blocks/WidgetBlocks.js:522 +#.TRANS: musical meter (time signature), e.g., 4:4 +msgid "meter" +msgstr "" + +#: js/turtledefs.js:122 +#: js/turtledefs.js:224 +msgid "intervals" +msgstr "" + +#: js/turtledefs.js:124 +#: js/turtledefs.js:226 +msgid "ornament" +msgstr "" + +#: js/turtledefs.js:125 +#: js/turtledefs.js:227 +#: js/blocks/VolumeBlocks.js:362 +#: js/blocks/VolumeBlocks.js:502 +#: js/blocks/VolumeBlocks.js:545 +msgid "volume" +msgstr "" + +#: js/turtledefs.js:126 +#: js/turtledefs.js:228 +#: js/block-verbose.js:1700 +#: js/block-verbose.js:2626 +#: js/block.js:1664 +#: js/block.js:2554 +#: js/lilypond.js:732 +#: js/lilypond.js:897 +#: js/lilypond.js:941 +#: js/palette.js:577 +#: js/blocks/RhythmBlocks.js:766 +#: js/blocks/DrumBlocks.js:477 +#: js/blocks/VolumeBlocks.js:502 +#: js/widgets/phrasemaker.js:1038 +msgid "drum" +msgstr "" + +#: js/turtledefs.js:129 +#: js/turtledefs.js:231 +msgid "boxes" +msgstr "" + +#: js/turtledefs.js:130 +#: js/turtledefs.js:232 +msgid "widgets" +msgstr "" + +#: js/turtledefs.js:131 +#: js/turtledefs.js:233 +#: js/widgets/phrasemaker.js:1039 +msgid "graphics" +msgstr "" + +#: js/turtledefs.js:134 +#: js/turtledefs.js:236 +msgid "boolean" +msgstr "" + +#: js/turtledefs.js:137 +#: js/turtledefs.js:239 +#: js/blocks/HeapBlocks.js:59 +#: js/widgets/status.js:147 +msgid "heap" +msgstr "" + +#: js/turtledefs.js:138 +#: js/turtledefs.js:240 +#: js/blocks/DictBlocks.js:142 +#: js/blocks/ProgramBlocks.js:495 +msgid "dictionary" +msgstr "" + +#: js/turtledefs.js:139 +#: js/turtledefs.js:241 +msgid "ensemble" +msgstr "" + +#: js/turtledefs.js:140 +#: js/turtledefs.js:242 +msgid "extras" +msgstr "" + +#: js/turtledefs.js:142 +#: js/turtledefs.js:244 +#.TRANS: program as in computer program +#.TRANS: program as in computer program +msgid "program" +msgstr "" + +#: js/turtledefs.js:143 +#: js/turtledefs.js:245 +msgid "my blocks" +msgstr "" + +#: js/turtledefs.js:185 +#: js/turtledefs.js:281 +msgid "artwork" +msgstr "" + +#: js/turtledefs.js:185 +#: js/turtledefs.js:281 +msgid "logic" +msgstr "" + +#: js/turtledefs.js:185 +#: js/turtledefs.js:281 +msgid "music" +msgstr "" + +#: js/turtledefs.js:187 +#: js/turtledefs.js:463 +msgid "Music Blocks is a collection of tools for exploring fundamental musical concepts in a fun way." +msgstr "" + +#: js/turtledefs.js:436 +msgid "Welcome to Turtle Blocks" +msgstr "" + +#: js/turtledefs.js:438 +#: js/turtledefs.js:465 +#: js/turtledefs.js:774 +#: js/turtledefs.js:805 +msgid "The current version is" +msgstr "" + +#: js/turtledefs.js:446 +#: js/turtledefs.js:483 +msgid "Click the run button to run the project in fast mode." +msgstr "" + +#: js/turtledefs.js:452 +msgid "Stop the turtle." +msgstr "" + +#: js/turtledefs.js:454 +#: js/turtledefs.js:491 +msgid "You can also type Alt-S to stop." +msgstr "" + +#: js/turtledefs.js:462 +#: js/widgets/help.js:333 +msgid "Welcome to Music Blocks" +msgstr "" + +#: js/turtledefs.js:472 +#: js/widgets/help.js:334 +msgid "Meet Mr. Mouse!" +msgstr "" + +#: js/turtledefs.js:473 +msgid "Mr Mouse is our Music Blocks conductor." +msgstr "" + +#: js/turtledefs.js:475 +msgid "Mr Mouse encourages you to explore Music Blocks." +msgstr "" + +#: js/turtledefs.js:477 +msgid "Let us start our tour!" +msgstr "" + +#: js/turtledefs.js:489 +msgid "Stop the music (and the mice)." +msgstr "" + +#: js/turtledefs.js:499 +msgid "Record your project as video." +msgstr "" + +#: js/turtledefs.js:505 +msgid "Toggle Fullscreen mode." +msgstr "" + +#: js/turtledefs.js:511 +msgid "Initialize a new project." +msgstr "" + +#: js/turtledefs.js:517 +msgid "You can also load projects from the file system." +msgstr "" + +#: js/turtledefs.js:522 +#: planet/js/StringHelper.js:46 +msgid "Delete" +msgstr "" + +#: js/turtledefs.js:523 +msgid "To delete a block, just right-click on it, then you will be able to see the delete option" +msgstr "" + +#: js/turtledefs.js:528 +#: js/activity.js:2649 +#: planet/js/LocalCard.js:31 +msgid "Copy" +msgstr "" + +#: js/turtledefs.js:529 +msgid "To copy a block, just right-click on it, then you will be able to see the copy option" +msgstr "" + +#: js/turtledefs.js:534 +#: js/piemenus.js:3411 +msgid "Extract" +msgstr "" + +#: js/turtledefs.js:535 +msgid "To extract a block, just right-click on it, then you will be able to see the extract option" +msgstr "" + +#: js/turtledefs.js:542 +#: js/turtledefs.js:552 +#: js/turtledefs.js:573 +msgid "Save your project to a file." +msgstr "" + +#: js/turtledefs.js:549 +#: js/turtledefs.js:570 +msgid "save" +msgstr "" + +#: js/turtledefs.js:556 +#: js/turtledefs.js:577 +msgid "Save graphics from your project to as SVG." +msgstr "" + +#: js/turtledefs.js:560 +#: js/turtledefs.js:581 +msgid "Save graphics from your project as PNG." +msgstr "" + +#: js/turtledefs.js:564 +#: js/turtledefs.js:597 +msgid "Save block artwork as an SVG file." +msgstr "" + +#: js/turtledefs.js:585 +msgid "Save audio from your project as WAV." +msgstr "" + +#: js/turtledefs.js:589 +msgid "Save your project to as an ABC file." +msgstr "" + +#: js/turtledefs.js:593 +msgid "Save your project to as a Lilypond file." +msgstr "" + +#: js/turtledefs.js:604 +msgid "Load samples from server" +msgstr "" + +#: js/turtledefs.js:605 +msgid "This button opens a viewer for loading example projects." +msgstr "" + +#: js/turtledefs.js:611 +msgid "Palette buttons" +msgstr "" + +#: js/turtledefs.js:612 +msgid "This toolbar contains the palette buttons including Rhythm Pitch Tone Action and more." +msgstr "" + +#: js/turtledefs.js:614 +msgid "Click to show the palettes of blocks and drag blocks from the palettes onto the canvas to use them." +msgstr "" + +#: js/turtledefs.js:620 +msgid "Cartesian/Polar" +msgstr "" + +#: js/turtledefs.js:621 +msgid "Show or hide a coordinate grid." +msgstr "" + +#: js/turtledefs.js:626 +#: js/turtles.js:902 +msgid "Clean" +msgstr "" + +#: js/turtledefs.js:627 +msgid "Clear the screen and return the mice to their initial positions." +msgstr "" + +#: js/turtledefs.js:632 +#: js/turtles.js:955 +msgid "Collapse" +msgstr "" + +#: js/turtledefs.js:633 +msgid "Collapse the graphics window." msgstr "" -#: js/palette.js:571 -msgid "grid" +#: js/turtledefs.js:638 +#: js/activity.js:5684 +msgid "Home" msgstr "" -#: js/palette.js:577 -#: js/block.js:1540 -#: js/block.js:2343 -#: js/turtledefs.js:126 -#: js/turtledefs.js:228 -#: js/lilypond.js:740 -#: js/lilypond.js:905 -#: js/lilypond.js:949 -#: js/DrumBlocks.js:486 -#: js/RhythmBlocks.js:766 -#: js/VolumeBlocks.js:502 -#: js/phrasemaker.js:823 -msgid "drum" +#: js/turtledefs.js:639 +msgid "Return all blocks to the center of the screen." msgstr "" -#: js/palette.js:580 -msgid "effect" +#: js/turtledefs.js:644 +msgid "Show/hide blocks" msgstr "" -#: js/palette.js:586 -msgid "sargam" +#: js/turtledefs.js:645 +msgid "Hide or show the blocks and the palettes." msgstr "" -#: js/palette.js:589 -#: js/activity.js:1833 -#: js/RhythmBlocks.js:923 -#: js/PitchBlocks.js:442 -#: js/PitchBlocks.js:1748 -#.TRANS: a numeric mapping of the notes in an octave based on the musical mode -msgid "scale degree" +#: js/turtledefs.js:650 +msgid "Expand/collapse collapsable blocks" msgstr "" -#: js/palette.js:592 -#: js/activity.js:1860 -msgid "mode name" +#: js/turtledefs.js:651 +msgid "Expand or collapse start and action stacks." msgstr "" -#: js/palette.js:595 -#: js/activity.js:1839 -msgid "invert mode" +#: js/turtledefs.js:658 +#: js/activity.js:5704 +msgid "Decrease block size" msgstr "" -#: js/palette.js:598 -#: js/activity.js:1836 -msgid "voice name" +#: js/turtledefs.js:659 +msgid "Decrease the size of the blocks." msgstr "" -#: js/palette.js:601 -#: js/PitchBlocks.js:1181 -msgid "custom pitch" +#: js/turtledefs.js:664 +#: js/activity.js:5710 +msgid "Increase block size" msgstr "" -#: js/palette.js:605 -#: js/block.js:1456 -#: js/block.js:1575 -#: js/WidgetBlocks.js:218 -#: js/IntervalsBlocks.js:63 -msgid "temperament" +#: js/turtledefs.js:665 +msgid "Increase the size of the blocks." msgstr "" -#: js/palette.js:609 -msgid "accidental" +#: js/turtledefs.js:670 +msgid "Expand/collapse option toolbar" msgstr "" -#: js/palette.js:615 -#: js/activity.js:1866 -msgid "interval name" +#: js/turtledefs.js:671 +msgid "Click this button to expand or collapse the auxillary toolbar." msgstr "" -#: js/palette.js:633 -#: js/PitchBlocks.js:405 -msgid "pitch converter" +#: js/turtledefs.js:676 +msgid "Run slow" msgstr "" -#: js/rubrics.js:522 -#: js/turtledefs.js:119 -#: js/turtledefs.js:221 -#: js/RhythmBlockPaletteBlocks.js:52 -#: js/RhythmBlockPaletteBlocks.js:233 -#: js/ProgramBlocks.js:745 -#: js/rhythmruler.js:1670 -#: js/rhythmruler.js:1677 -#: js/rhythmruler.js:1745 -#: js/rhythmruler.js:1752 -#: js/rhythmruler.js:1830 -#.TRANS: an arrangement of notes based on duration -msgid "rhythm" +#: js/turtledefs.js:677 +msgid "Click to run the project in slow mode." msgstr "" -#: js/rubrics.js:523 -#: js/block.js:2339 -#: js/turtledefs.js:121 -#: js/turtledefs.js:223 -#: js/IntervalsBlocks.js:63 -#: js/PitchBlocks.js:1801 -#: js/PitchBlocks.js:1814 -#: js/SensorsBlocks.js:178 -#: js/phrasemaker.js:821 -#: js/musickeyboard.js:1653 -#.TRANS: pitch number -#.TRANS: we specify pitch in terms of a name and an octave. The name can be CDEFGAB or Do Re Mi Fa Sol La Ti. Octave is a number between 1 and 8. -msgid "pitch" +#: js/turtledefs.js:683 +msgid "Click to run the project step by step." msgstr "" -#: js/rubrics.js:524 -#: js/turtledefs.js:123 -#: js/turtledefs.js:225 -msgid "tone" +#: js/turtledefs.js:690 +msgid "Display statistics about your Music project." msgstr "" -#: js/rubrics.js:525 -#: js/lilypond.js:613 -#: js/lilypond.js:912 -#: js/lilypond.js:918 -#: js/lilypond.js:956 -msgid "mouse" +#: js/turtledefs.js:697 +msgid "Delete a selected plugin." msgstr "" -#: js/rubrics.js:526 -#: js/turtledefs.js:132 -#: js/turtledefs.js:234 -#: js/phrasemaker.js:825 -msgid "pen" +#: js/turtledefs.js:704 +msgid "Enable scrolling" msgstr "" -#: js/rubrics.js:527 -#: js/turtledefs.js:133 -#: js/turtledefs.js:235 -#: js/NumberBlocks.js:905 -#: js/PitchBlocks.js:1679 -#: js/PitchBlocks.js:1720 -msgid "number" +#: js/turtledefs.js:705 +msgid "You can scroll the blocks on the canvas." msgstr "" -#: js/rubrics.js:528 -#: js/turtledefs.js:127 -#: js/turtledefs.js:229 -msgid "flow" +#: js/turtledefs.js:714 +msgid "Wrap Turtle" msgstr "" -#: js/rubrics.js:530 -#: js/turtledefs.js:136 -#: js/turtledefs.js:238 -msgid "sensors" +#: js/turtledefs.js:715 +msgid "Turn Turtle wrapping On or Off." msgstr "" -#: js/rubrics.js:531 -#: js/turtledefs.js:135 -#: js/turtledefs.js:237 -#: js/MediaBlocks.js:930 -msgid "media" +#: js/turtledefs.js:725 +msgid "Restore blocks from the trash." msgstr "" -#: js/rubrics.js:532 -msgid "mice" +#: js/turtledefs.js:732 +msgid "Switch mode" msgstr "" -#: js/macros.js:711 -#: js/musicutils.js:783 -#: js/synthutils.js:181 -#.TRANS: animal sound effect -msgid "duck" +#: js/turtledefs.js:733 +msgid "Switch between beginner and advance modes." msgstr "" -#: js/toolbar.js:46 -#: js/toolbar.js:107 -msgid "About Music Blocks" +#: js/turtledefs.js:739 +msgid "Select your language preference." msgstr "" -#: js/toolbar.js:47 -#: js/toolbar.js:108 -#: js/toolbar.js:172 -#: js/toolbar.js:228 -#: js/turtledefs.js:445 -#: js/turtledefs.js:482 -#: js/activity.js:2281 -#: js/activity.js:2289 -#: js/activity.js:2520 -#: js/modewidget.js:77 -#: js/pitchstaircase.js:121 -#: js/phrasemaker.js:302 -#: js/phrasemaker.js:312 -#: js/phrasemaker.js:314 -#: js/phrasemaker.js:3901 -#: js/phrasemaker.js:4061 -#: js/phrasemaker.js:4066 -#: js/phrasemaker.js:4068 -#: js/phrasemaker.js:4183 -#: js/pitchdrummatrix.js:81 -#: js/pitchdrummatrix.js:574 -#: js/pitchdrummatrix.js:576 -#: js/pitchdrummatrix.js:628 -#: js/pitchdrummatrix.js:630 -#: js/pitchdrummatrix.js:645 -#: js/pitchdrummatrix.js:647 -#: js/pitchdrummatrix.js:674 -#: js/pitchdrummatrix.js:676 -#: js/temperament.js:477 -#: js/temperament.js:480 -#: js/temperament.js:540 -#: js/temperament.js:542 -#: js/temperament.js:1835 -#: js/temperament.js:1837 -#: js/temperament.js:1986 -#: js/temperament.js:1988 -#: js/musickeyboard.js:522 -#: js/musickeyboard.js:682 -#: js/musickeyboard.js:684 -#: js/musickeyboard.js:756 -#: js/musickeyboard.js:758 -#: js/rhythmruler.js:298 -#: js/rhythmruler.js:300 -#: js/rhythmruler.js:314 -#: js/rhythmruler.js:316 -#: js/sampler.js:96 -#: js/sampler.js:98 -#: js/sampler.js:229 -#: js/sampler.js:235 -#: js/sampler.js:237 -#: js/tempo.js:84 -#: js/tempo.js:86 -#: js/timbre.js:432 -#: js/timbre.js:434 -#: js/timbre.js:465 -#: js/timbre.js:467 -#: js/timbre.js:746 -#: js/meterwidget.js:80 -#: js/arpeggio.js:90 -#: js/arpeggio.js:547 -#: js/arpeggio.js:549 -#: js/arpeggio.js:644 -#: js/arpeggio.js:646 -msgid "Play" +#: js/turtledefs.js:745 +msgid "Keyboard shortcuts" msgstr "" -#: js/toolbar.js:48 -#: js/toolbar.js:109 -#: js/toolbar.js:173 -#: js/toolbar.js:229 -#: js/turtledefs.js:451 -#: js/turtledefs.js:488 -#: js/activity.js:2297 -#: js/modewidget.js:99 -#: js/modewidget.js:101 -#: js/phrasemaker.js:323 -#: js/phrasemaker.js:325 -#: js/pitchdrummatrix.js:561 -#: js/pitchdrummatrix.js:563 -#: js/temperament.js:1820 -#: js/temperament.js:1822 -#: js/meterwidget.js:101 -#: js/meterwidget.js:103 -#: js/arpeggio.js:534 -#: js/arpeggio.js:536 -msgid "Stop" +#: js/turtledefs.js:746 +msgid "You can type d to create a do block and r to create a re block etc." msgstr "" -#: js/toolbar.js:49 -#: js/toolbar.js:110 -#: js/toolbar.js:174 -#: js/toolbar.js:230 -#: js/turtledefs.js:498 -msgid "Record" +#: js/turtledefs.js:753 +msgid "Show these messages." msgstr "" -#: js/toolbar.js:50 -#: js/toolbar.js:51 -msgid "Full screen" +#: js/turtledefs.js:759 +#: js/turtledefs.js:790 +#: js/widgets/help.js:335 +msgid "Guide" msgstr "" -#: js/toolbar.js:52 -#: js/toolbar.js:112 -#: js/toolbar.js:177 -#: js/toolbar.js:232 -#: js/turtledefs.js:504 -msgid "Toggle Fullscreen" +#: js/turtledefs.js:760 +msgid "A detailed guide to Turtle Blocks is available." msgstr "" -#: js/toolbar.js:53 -#: js/toolbar.js:113 -#: js/toolbar.js:178 -#: js/toolbar.js:233 -#: js/turtledefs.js:510 -#: js/StringHelper.js:33 -msgid "New project" +#: js/turtledefs.js:764 +msgid "Turtle Blocks Guide" msgstr "" -#: js/toolbar.js:54 -#: js/toolbar.js:114 -#: js/toolbar.js:179 -#: js/toolbar.js:234 -#: js/turtledefs.js:516 -msgid "Load project from file" +#: js/turtledefs.js:767 +#: js/turtledefs.js:798 +#: js/widgets/help.js:336 +msgid "About" msgstr "" -#: js/toolbar.js:55 -#: js/toolbar.js:115 -#: js/toolbar.js:116 -#: js/toolbar.js:180 -#: js/toolbar.js:235 -#: js/turtledefs.js:541 -#: js/turtledefs.js:550 -#: js/turtledefs.js:571 -msgid "Save project" +#: js/turtledefs.js:768 +msgid "Turtle Blocks is an open source collection of tools for exploring musical concepts." msgstr "" -#: js/toolbar.js:56 -#: js/toolbar.js:75 -#: js/toolbar.js:77 -#: js/toolbar.js:135 -#: js/toolbar.js:144 -#: js/toolbar.js:146 -#: js/toolbar.js:181 -#: js/toolbar.js:199 -#: js/toolbar.js:201 -#: js/toolbar.js:236 -#: js/toolbar.js:254 -#: js/toolbar.js:256 -msgid "Save project as HTML" +#: js/turtledefs.js:770 +msgid "A full list of contributors can be found in the Turtle Blocks GitHub repository." +msgstr "" + +#: js/turtledefs.js:772 +msgid "Turtle Blocks is licensed under the AGPL." +msgstr "" + +#: js/turtledefs.js:780 +msgid "Turtle Blocks GitHub repository" +msgstr "" + +#: js/turtledefs.js:783 +#: js/turtledefs.js:814 +#: js/widgets/help.js:337 +#: js/widgets/help.js:359 +msgid "Congratulations." +msgstr "" + +#: js/turtledefs.js:784 +msgid "You have finished the tour. Please enjoy Turtle Blocks!" +msgstr "" + +#: js/turtledefs.js:791 +msgid "A detailed guide to Music Blocks is available." +msgstr "" + +#: js/turtledefs.js:799 +msgid "Music Blocks is an open source collection of tools for exploring musical concepts." +msgstr "" + +#: js/turtledefs.js:801 +msgid "A full list of contributors can be found in the Music Blocks GitHub repository." +msgstr "" + +#: js/turtledefs.js:803 +msgid "Music Blocks is licensed under the AGPL." +msgstr "" + +#: js/turtledefs.js:811 +msgid "Music Blocks GitHub repository" +msgstr "" + +#: js/turtledefs.js:815 +msgid "You have finished the tour. Please enjoy Music Blocks!" +msgstr "" + +#: js/turtles.js:882 +msgid "Grid" +msgstr "" + +#: js/turtles.js:1024 +msgid "Expand" +msgstr "" + +#: js/block-verbose.js:1616 +#: js/block-verbose.js:1735 +#: js/block.js:1580 +#: js/block.js:1699 +#: js/palette.js:605 +#: js/blocks/IntervalsBlocks.js:63 +#: js/blocks/WidgetBlocks.js:259 +msgid "temperament" +msgstr "" + +#: js/block-verbose.js:1630 +#: js/block.js:1594 +msgid "matrix" msgstr "" -#: js/toolbar.js:57 -#: js/toolbar.js:117 -#: js/toolbar.js:182 -#: js/toolbar.js:237 -msgid "Find and share projects" +#: js/block-verbose.js:1637 +#: js/block.js:1601 +#: js/blocks/WidgetBlocks.js:1509 +#: plugins/rodi.rtp:324 +msgid "status" msgstr "" -#: js/toolbar.js:58 -#: js/toolbar.js:118 -#: js/toolbar.js:183 -#: js/toolbar.js:238 -msgid "Offline. Sharing is unavailable" +#: js/block-verbose.js:1644 +#: js/block.js:1608 +msgid "drum mapper" msgstr "" -#: js/toolbar.js:59 -#: js/toolbar.js:119 -#: js/toolbar.js:184 -#: js/toolbar.js:239 -msgid "Auxiliary menu" +#: js/block-verbose.js:1651 +#: js/block.js:1615 +msgid "ruler" msgstr "" -#: js/toolbar.js:61 -#: js/toolbar.js:121 -#: js/toolbar.js:186 -#: js/toolbar.js:241 -msgid "Run slowly" +#: js/block-verbose.js:1658 +#: js/block.js:1622 +#: js/blocks/WidgetBlocks.js:397 +#.TRANS: timbre is the character or quality of a musical sound +msgid "timbre" msgstr "" -#: js/toolbar.js:62 -#: js/toolbar.js:122 -#: js/toolbar.js:187 -#: js/toolbar.js:242 -#: js/turtledefs.js:682 -msgid "Run step by step" +#: js/block-verbose.js:1665 +#: js/block.js:1629 +msgid "stair" msgstr "" -#: js/toolbar.js:63 -#: js/toolbar.js:123 -#: js/toolbar.js:188 -#: js/toolbar.js:243 -#: js/turtledefs.js:689 -msgid "Display statistics" +#: js/block-verbose.js:1672 +#: js/block.js:1636 +#: js/blocks/WidgetBlocks.js:707 +#.TRANS: the speed at music is should be played. +msgid "tempo" msgstr "" -#: js/toolbar.js:64 -#: js/toolbar.js:124 -#: js/toolbar.js:189 -#: js/toolbar.js:244 -msgid "Load plugin" +#: js/block-verbose.js:1679 +#: js/block-verbose.js:1742 +#: js/block.js:1643 +#: js/block.js:1706 +#: js/blocks/IntervalsBlocks.js:1464 +#.TRANS: mode, e.g., Major in C Major +msgid "mode" msgstr "" -#: js/toolbar.js:65 -#: js/toolbar.js:125 -#: js/toolbar.js:190 -#: js/toolbar.js:245 -#: js/turtledefs.js:696 -msgid "Delete plugin" +#: js/block-verbose.js:1686 +#: js/block.js:1650 +msgid "slider" msgstr "" -#: js/toolbar.js:66 -#: js/toolbar.js:126 -#: js/toolbar.js:191 -#: js/toolbar.js:246 -msgid "Enable horizontal scrolling" +#: js/block-verbose.js:1693 +#: js/block.js:1657 +#: js/blocks/SensorsBlocks.js:1001 +msgid "keyboard" msgstr "" -#: js/toolbar.js:67 -#: js/toolbar.js:127 -#: js/toolbar.js:192 -#: js/toolbar.js:247 -msgid "Disable horizontal scrolling" +#: js/block-verbose.js:1707 +#: js/block.js:1671 +#: js/blocks/WidgetBlocks.js:1190 +#: js/blocks/WidgetBlocks.js:1228 +#.TRANS: widget for subdividing a measure into distinct rhythmic elements +msgid "rhythm maker" msgstr "" -#: js/toolbar.js:68 -#: js/toolbar.js:128 -#: js/toolbar.js:193 -#: js/toolbar.js:248 -#: js/LocalCard.js:54 -#: js/StringHelper.js:71 -msgid "Merge with current project" +#: js/block-verbose.js:1714 +#: js/block-verbose.js:2457 +#: js/block-verbose.js:2514 +#: js/block.js:1678 +#: js/block.js:2385 +#: js/block.js:2442 +#: js/blocks/MeterBlocks.js:1367 +#: js/blocks/OrnamentBlocks.js:220 +#: js/blocks/OrnamentBlocks.js:312 +#: js/blocks/RhythmBlocks.js:33 +#: js/blocks/RhythmBlocks.js:356 +#: js/blocks/RhythmBlocks.js:766 +#: js/blocks/RhythmBlocks.js:806 +#: js/blocks/RhythmBlockPaletteBlocks.js:70 +#: js/blocks/RhythmBlockPaletteBlocks.js:252 +#: js/blocks/RhythmBlockPaletteBlocks.js:485 +#: js/blocks/RhythmBlockPaletteBlocks.js:554 +#: js/blocks/RhythmBlockPaletteBlocks.js:605 +#: js/blocks/RhythmBlockPaletteBlocks.js:875 +#: js/turtleactions/DictActions.js:85 +#: js/widgets/phrasemaker.js:942 +#: js/widgets/phrasemaker.js:2656 +#: js/widgets/phrasemaker.js:2699 +#: js/widgets/phrasemaker.js:2810 +#.TRANS: the value (e.g., 1/4 note) of the note being played. +msgid "note value" msgstr "" -#: js/toolbar.js:69 -#: js/toolbar.js:129 -msgid "Set Pitch Preview" +#: js/block-verbose.js:1721 +#: js/block-verbose.js:2382 +#: js/block-verbose.js:2405 +#: js/block.js:1685 +#: js/block.js:2310 +#: js/block.js:2333 +#: js/blocks/IntervalsBlocks.js:1071 +#: js/blocks/OrnamentBlocks.js:312 +#.TRANS: calculate a relative step between notes based on semi-tones +msgid "scalar interval" msgstr "" -#: js/toolbar.js:70 -#: js/toolbar.js:130 -#: js/toolbar.js:194 -#: js/toolbar.js:249 -msgid "Toggle JavaScript Editor" +#: js/block-verbose.js:1728 +#: js/block.js:1692 +#: js/blocks/RhythmBlocks.js:148 +msgid "milliseconds" msgstr "" -#: js/toolbar.js:71 -#: js/toolbar.js:131 -#: js/toolbar.js:195 -#: js/toolbar.js:250 -#: js/turtledefs.js:724 -msgid "Restore" +#: js/block-verbose.js:2455 +#: js/block-verbose.js:2459 +#: js/block-verbose.js:2512 +#: js/block-verbose.js:2628 +#: js/block.js:2383 +#: js/block.js:2387 +#: js/block.js:2440 +#: js/block.js:2556 +#: js/blocks/RhythmBlocks.js:712 +#: js/blocks/ProgramBlocks.js:1273 +#: js/widgets/rhythmruler.js:1183 +#: js/widgets/rhythmruler.js:1329 +msgid "silence" msgstr "" -#: js/toolbar.js:72 -#: js/toolbar.js:132 -#: js/toolbar.js:196 -#: js/toolbar.js:251 -msgid "Switch to beginner mode" +#: js/block-verbose.js:2548 +#: js/block-verbose.js:3492 +#: js/block-verbose.js:3509 +#: js/activity.js:2718 +#: js/activity.js:2769 +#: js/block.js:2476 +#: js/block.js:3416 +#: js/block.js:3433 +#: js/utils/musicutils.js:3780 +#: js/utils/musicutils.js:5273 +#.TRANS: the note names must be separated by single spaces +#.TRANS: the note names must be separated by single spaces +#.TRANS: the note names must be separated by single spaces +msgid "ti la sol fa mi re do" msgstr "" -#: js/toolbar.js:73 -#: js/toolbar.js:133 -#: js/toolbar.js:197 -#: js/toolbar.js:252 -msgid "Switch to advanced mode" +#: js/block-verbose.js:2616 +#: js/block.js:2544 +#.TRANS: scalar step +#.TRANS: scalar step +msgid "down" msgstr "" -#: js/toolbar.js:74 -#: js/toolbar.js:134 -#: js/toolbar.js:143 -#: js/toolbar.js:198 -#: js/toolbar.js:253 -#: js/turtledefs.js:738 -msgid "Select language" +#: js/block-verbose.js:2617 +#: js/block.js:2545 +msgid "up" msgstr "" -#: js/toolbar.js:76 -#: js/toolbar.js:79 -#: js/toolbar.js:137 -#: js/turtledefs.js:579 -msgid "Save mouse artwork as PNG" +#: js/block-verbose.js:3026 +#: js/block.js:2950 +msgid "Silence block cannot be removed." msgstr "" -#: js/toolbar.js:78 -#: js/toolbar.js:136 -#: js/turtledefs.js:575 -msgid "Save mouse artwork as SVG" +#: js/block-verbose.js:3824 +#: js/block.js:3748 +#: js/blocks.js:2607 +#: js/blocks.js:3218 +#: js/palette.js:618 +#: js/blocks/BooleanBlocks.js:77 +#: js/blocks/BooleanBlocks.js:167 +#: js/blocks/BooleanBlocks.js:251 +#: js/blocks/BooleanBlocks.js:335 +#: js/blocks/BooleanBlocks.js:433 +#: js/blocks/BooleanBlocks.js:539 +#: js/blocks/BooleanBlocks.js:640 +#: js/blocks/BooleanBlocks.js:741 +#: js/blocks/BooleanBlocks.js:847 +#: js/blocks/BooleanBlocks.js:948 +#: js/blocks/BooleanBlocks.js:1033 +#: js/blocks/SensorsBlocks.js:910 +msgid "true" msgstr "" -#: js/toolbar.js:80 -#: js/toolbar.js:138 -#: js/turtledefs.js:583 -msgid "Save music as WAV" +#: js/block-verbose.js:3824 +#: js/block.js:3748 +#: js/blocks.js:2609 +#: js/blocks.js:3220 +#: js/blocks/BooleanBlocks.js:79 +#: js/blocks/BooleanBlocks.js:169 +#: js/blocks/BooleanBlocks.js:253 +#: js/blocks/BooleanBlocks.js:337 +#: js/blocks/BooleanBlocks.js:435 +#: js/blocks/BooleanBlocks.js:541 +#: js/blocks/BooleanBlocks.js:642 +#: js/blocks/BooleanBlocks.js:743 +#: js/blocks/BooleanBlocks.js:849 +#: js/blocks/BooleanBlocks.js:950 +#: js/blocks/SensorsBlocks.js:912 +msgid "false" msgstr "" -#: js/toolbar.js:81 -#: js/toolbar.js:139 -#: js/turtledefs.js:587 -msgid "Save sheet music as ABC" +#: js/block-verbose.js:3835 +#: js/block-verbose.js:3848 +#: js/block.js:3759 +#: js/block.js:3772 +#: js/blocks/ExtrasBlocks.js:615 +msgid "Cartesian" msgstr "" -#: js/toolbar.js:82 -#: js/toolbar.js:140 -#: js/turtledefs.js:591 -msgid "Save sheet music as Lilypond" +#: js/block-verbose.js:3836 +#: js/block-verbose.js:3849 +#: js/block.js:3760 +#: js/block.js:3773 +#: js/blocks/ExtrasBlocks.js:619 +msgid "polar" msgstr "" -#: js/toolbar.js:83 -msgid "Save sheet music as MusicXML" +#: js/block-verbose.js:3837 +#: js/block-verbose.js:3850 +#: js/block.js:3761 +#: js/block.js:3774 +#: js/blocks/ExtrasBlocks.js:623 +msgid "Cartesian+polar" msgstr "" -#: js/toolbar.js:84 -#: js/toolbar.js:141 -#: js/toolbar.js:149 -#: js/toolbar.js:204 -#: js/toolbar.js:259 -#: js/turtledefs.js:562 -#: js/turtledefs.js:595 -msgid "Save block artwork as SVG" +#: js/block-verbose.js:3838 +#: js/block-verbose.js:3857 +#: js/block.js:3762 +#: js/block.js:3781 +#: js/blocks/ExtrasBlocks.js:652 +msgid "none" msgstr "" -#: js/toolbar.js:85 -#: js/toolbar.js:142 -#: js/toolbar.js:150 -#: js/toolbar.js:205 -#: js/toolbar.js:260 -msgid "Confirm" +#: js/block-verbose.js:3851 +#: js/block.js:3775 +#: js/blocks/ExtrasBlocks.js:628 +msgid "treble" msgstr "" -#: js/toolbar.js:86 -#: js/toolbar.js:151 -#: js/toolbar.js:206 -#: js/toolbar.js:261 -msgid "English (United States)" +#: js/block-verbose.js:3852 +#: js/block.js:3776 +#: js/blocks/ExtrasBlocks.js:632 +msgid "grand staff" msgstr "" -#: js/toolbar.js:87 -#: js/toolbar.js:152 -#: js/toolbar.js:207 -#: js/toolbar.js:262 -msgid "English (United Kingdom)" +#: js/block-verbose.js:3853 +#: js/block.js:3777 +#: js/blocks/ExtrasBlocks.js:636 +msgid "mezzo-soprano" msgstr "" -#: js/toolbar.js:88 -#: js/toolbar.js:153 -#: js/toolbar.js:208 -#: js/toolbar.js:263 -msgid "日本語" +#: js/block-verbose.js:3854 +#: js/block.js:3778 +#: js/blocks/ExtrasBlocks.js:640 +msgid "alto" msgstr "" -#: js/toolbar.js:89 -msgid "한국어" +#: js/block-verbose.js:3855 +#: js/block.js:3779 +#: js/blocks/ExtrasBlocks.js:644 +msgid "tenor" msgstr "" -#: js/toolbar.js:90 -#: js/toolbar.js:155 -#: js/toolbar.js:210 -#: js/toolbar.js:265 -msgid "español" +#: js/block-verbose.js:3856 +#: js/block.js:3780 +#: js/utils/musicutils.js:1115 +#: js/utils/synthutils.js:80 +#: js/blocks/ExtrasBlocks.js:648 +#.TRANS: musical instrument +msgid "bass" msgstr "" -#: js/toolbar.js:91 -#: js/toolbar.js:156 -#: js/toolbar.js:211 -#: js/toolbar.js:266 -msgid "português" +#: js/block-verbose.js:3901 +#: js/block.js:3825 +#: js/blocks.js:2600 +#: js/blocks.js:3211 +msgid "on2" msgstr "" -#: js/toolbar.js:92 -#: js/toolbar.js:157 -#: js/toolbar.js:212 -#: js/toolbar.js:267 -msgid "にほんご" +#: js/block-verbose.js:3903 +#: js/block.js:3827 +#: js/blocks.js:2602 +#: js/blocks.js:3213 +msgid "off" msgstr "" -#: js/toolbar.js:93 -#: js/toolbar.js:158 -#: js/toolbar.js:213 -#: js/toolbar.js:268 -msgid "中文" +#: js/block-verbose.js:4470 +#: js/block.js:4394 +msgid "Not a number" msgstr "" -#: js/toolbar.js:94 -#: js/toolbar.js:159 -#: js/toolbar.js:214 -#: js/toolbar.js:269 -msgid "ภาษาไทย" +#: js/block-verbose.js:4477 +#: js/block.js:4401 +msgid "Octave value must be between 1 and 10." msgstr "" -#: js/toolbar.js:95 -#: js/toolbar.js:160 -#: js/toolbar.js:215 -#: js/toolbar.js:270 -msgid "aymara" +#: js/block-verbose.js:4485 +#: js/block.js:4409 +msgid "Numbers can have at most 10 digits." msgstr "" -#: js/toolbar.js:96 -#: js/toolbar.js:161 -#: js/toolbar.js:216 -#: js/toolbar.js:271 -msgid "quechua" +#: js/activity.js:390 +#: js/activity.js:395 +msgid "Search for blocks" msgstr "" -#: js/toolbar.js:97 -#: js/toolbar.js:162 -#: js/toolbar.js:217 -#: js/toolbar.js:272 -msgid "guarani" +#: js/activity.js:1413 +msgid "Refresh your browser to change to advanced mode." msgstr "" -#: js/toolbar.js:98 -#: js/toolbar.js:163 -#: js/toolbar.js:218 -#: js/toolbar.js:273 -msgid "हिंदी" +#: js/activity.js:1418 +msgid "Refresh your browser to change to beginner mode." msgstr "" -#: js/toolbar.js:99 -#: js/toolbar.js:165 -#: js/toolbar.js:219 -#: js/toolbar.js:275 -msgid "igbo" +#: js/activity.js:1477 +msgid "Catching mice" +msgstr "" + +#: js/activity.js:1478 +msgid "Cleaning the instruments" +msgstr "" + +#: js/activity.js:1479 +msgid "Testing key pieces" +msgstr "" + +#: js/activity.js:1480 +msgid "Sight-reading" +msgstr "" + +#: js/activity.js:1481 +msgid "Combining math and music" msgstr "" -#: js/toolbar.js:100 -#: js/toolbar.js:166 -#: js/toolbar.js:220 -#: js/toolbar.js:276 -msgid "عربى" +#: js/activity.js:1482 +msgid "Generating more blocks" msgstr "" -#: js/toolbar.js:101 -#: js/toolbar.js:164 -#: js/toolbar.js:221 -#: js/toolbar.js:274 -msgid "తెలుగు" +#: js/activity.js:1483 +msgid "Do Re Mi Fa Sol La Ti Do" msgstr "" -#: js/toolbar.js:102 -#: js/toolbar.js:167 -#: js/toolbar.js:222 -#: js/toolbar.js:277 -msgid "עִברִית" +#: js/activity.js:1484 +msgid "Tuning string instruments" msgstr "" -#: js/toolbar.js:111 -#: js/toolbar.js:175 -#: js/toolbar.js:176 -#: js/toolbar.js:231 -msgid "Full Screen" +#: js/activity.js:1485 +msgid "Pressing random keys" msgstr "" -#: js/toolbar.js:145 -#: js/toolbar.js:148 -#: js/toolbar.js:200 -#: js/toolbar.js:203 -#: js/toolbar.js:255 -#: js/toolbar.js:258 -#: js/turtledefs.js:558 -msgid "Save turtle artwork as PNG" +#: js/activity.js:1663 +msgid "plugins will be removed upon restart." msgstr "" -#: js/toolbar.js:147 -#: js/toolbar.js:202 -#: js/toolbar.js:257 -#: js/turtledefs.js:554 -msgid "Save turtle artwork as SVG" +#: js/activity.js:1672 +msgid "show Cartesian" msgstr "" -#: js/toolbar.js:154 -#: js/toolbar.js:209 -#: js/toolbar.js:264 -msgid "한국인" +#: js/activity.js:2211 +#: js/palette.js:589 +#: js/blocks/RhythmBlocks.js:923 +#: js/blocks/PitchBlocks.js:442 +#: js/blocks/PitchBlocks.js:1786 +#.TRANS: a numeric mapping of the notes in an octave based on the musical mode +msgid "scale degree" msgstr "" -#: js/toolbar.js:171 -#: js/toolbar.js:227 -msgid "About Turtle Blocks" +#: js/activity.js:2214 +#: js/palette.js:598 +msgid "voice name" msgstr "" -#: js/toolbar.js:429 -#: js/toolbar.js:440 -msgid "Turtle Wrap Off" +#: js/activity.js:2217 +#: js/palette.js:595 +msgid "invert mode" msgstr "" -#: js/toolbar.js:442 -msgid "Turtle Wrap On" +#: js/activity.js:2220 +msgid "output tools" msgstr "" -#: js/block.js:1470 -msgid "matrix" +#: js/activity.js:2223 +msgid "custom note" msgstr "" -#: js/block.js:1477 -#: js/WidgetBlocks.js:1226 -#: plugins/rodi.rtp:324 -msgid "status" +#: js/activity.js:2226 +msgid "accidental name" msgstr "" -#: js/block.js:1484 -msgid "drum mapper" +#: js/activity.js:2229 +#: js/blocks/PitchBlocks.js:855 +msgid "east indian solfege" msgstr "" -#: js/block.js:1491 -msgid "ruler" +#: js/activity.js:2232 +#: js/blocks/PitchBlocks.js:869 +msgid "note name" msgstr "" -#: js/block.js:1498 -#: js/WidgetBlocks.js:327 -#.TRANS: timbre is the character or quality of a musical sound -msgid "timbre" +#: js/activity.js:2235 +#: js/blocks/IntervalsBlocks.js:94 +msgid "temperament name" msgstr "" -#: js/block.js:1505 -msgid "stair" +#: js/activity.js:2238 +#: js/palette.js:592 +msgid "mode name" msgstr "" -#: js/block.js:1512 -#: js/WidgetBlocks.js:577 -#.TRANS: the speed at music is should be played. -msgid "tempo" +#: js/activity.js:2241 +msgid "chord name" msgstr "" -#: js/block.js:1519 -#: js/block.js:1582 -#: js/IntervalsBlocks.js:1268 -#.TRANS: mode, e.g., Major in C Major -msgid "mode" +#: js/activity.js:2244 +#: js/palette.js:615 +msgid "interval name" msgstr "" -#: js/block.js:1526 -msgid "slider" +#: js/activity.js:2247 +msgid "filter type" msgstr "" -#: js/block.js:1533 -#: js/SensorsBlocks.js:1001 -msgid "keyboard" +#: js/activity.js:2250 +msgid "oscillator type" msgstr "" -#: js/block.js:1547 -#: js/WidgetBlocks.js:957 -#: js/WidgetBlocks.js:988 -#.TRANS: widget for subdividing a measure into distinct rhythmic elements -msgid "rhythm maker" +#: js/activity.js:2253 +#: js/blocks.js:2479 +#: js/blocks.js:2487 +msgid "audio file" msgstr "" -#: js/block.js:1554 -#: js/block.js:2182 -#: js/block.js:2236 -#: js/RhythmBlockPaletteBlocks.js:70 -#: js/RhythmBlockPaletteBlocks.js:251 -#: js/RhythmBlockPaletteBlocks.js:484 -#: js/RhythmBlockPaletteBlocks.js:553 -#: js/RhythmBlockPaletteBlocks.js:604 -#: js/RhythmBlockPaletteBlocks.js:874 -#: js/RhythmBlocks.js:33 -#: js/RhythmBlocks.js:356 -#: js/RhythmBlocks.js:766 -#: js/RhythmBlocks.js:806 -#: js/OrnamentBlocks.js:220 -#: js/OrnamentBlocks.js:312 -#: js/MeterBlocks.js:1367 -#: js/DictActions.js:85 -#: js/phrasemaker.js:731 -#: js/phrasemaker.js:2393 -#: js/phrasemaker.js:2436 -#: js/phrasemaker.js:2534 -#.TRANS: the value (e.g., 1/4 note) of the note being played. -msgid "note value" +#: js/activity.js:2256 +#: js/blocks/DrumBlocks.js:32 +msgid "noise name" msgstr "" -#: js/block.js:1561 -#: js/block.js:2110 -#: js/block.js:2133 -#: js/IntervalsBlocks.js:875 -#: js/OrnamentBlocks.js:312 -#.TRANS: calculate a relative step between notes based on semi-tones -msgid "scalar interval" +#: js/activity.js:2259 +#: js/blocks/DrumBlocks.js:75 +msgid "drum name" msgstr "" -#: js/block.js:1568 -#: js/RhythmBlocks.js:148 -msgid "milliseconds" +#: js/activity.js:2262 +#: js/blocks/DrumBlocks.js:119 +msgid "effects name" msgstr "" -#: js/block.js:2180 -#: js/block.js:2184 -#: js/block.js:2234 -#: js/block.js:2345 -#: js/ProgramBlocks.js:1273 -#: js/RhythmBlocks.js:712 -#: js/rhythmruler.js:834 -#: js/rhythmruler.js:961 -msgid "silence" +#: js/activity.js:2265 +msgid "wrap mode" msgstr "" -#: js/block.js:2265 -#: js/block.js:3134 -#: js/block.js:3151 -#: js/activity.js:2336 -#: js/activity.js:2387 -#: js/musicutils.js:2932 -#: js/musicutils.js:4287 -#.TRANS: the note names must be separated by single spaces -#.TRANS: the note names must be separated by single spaces -msgid "ti la sol fa mi re do" +#: js/activity.js:2268 +msgid "load file" msgstr "" -#: js/block.js:2333 -#.TRANS: scalar step -msgid "down" +#: js/activity.js:2435 +#: js/activity.js:5851 +msgid "This block is deprecated." msgstr "" -#: js/block.js:2334 -msgid "up" +#: js/activity.js:2437 +#: js/activity.js:5853 +msgid "Block cannot be found." msgstr "" -#: js/block.js:3477 -#: js/block.js:3490 -#: js/ExtrasBlocks.js:612 -msgid "Cartesian" +#: js/activity.js:2645 +msgid "Saving block artwork" msgstr "" -#: js/block.js:3478 -#: js/block.js:3491 -#: js/ExtrasBlocks.js:616 -msgid "polar" +#: js/activity.js:2656 +msgid "Erase" msgstr "" -#: js/block.js:3479 -#: js/block.js:3492 -#: js/ExtrasBlocks.js:620 -msgid "Cartesian+polar" +#: js/activity.js:2683 +#: js/activity.js:2705 +msgid "Paste" msgstr "" -#: js/block.js:3480 -#: js/block.js:3499 -#: js/ExtrasBlocks.js:649 -msgid "none" +#: js/activity.js:2687 +msgid "Save block help" msgstr "" -#: js/block.js:3493 -#: js/ExtrasBlocks.js:625 -msgid "treble" +#: js/activity.js:2772 +msgid "Jumping to the bottom of the page." msgstr "" -#: js/block.js:3494 -#: js/ExtrasBlocks.js:629 -msgid "grand staff" +#: js/activity.js:2778 +msgid "Scrolling up." msgstr "" -#: js/block.js:3495 -#: js/ExtrasBlocks.js:633 -msgid "mezzo-soprano" +#: js/activity.js:2783 +msgid "Scrolling down." msgstr "" -#: js/block.js:3496 -#: js/ExtrasBlocks.js:637 -msgid "alto" +#: js/activity.js:2788 +msgid "Extracting block" msgstr "" -#: js/block.js:3497 -#: js/ExtrasBlocks.js:641 -msgid "tenor" +#: js/activity.js:2796 +msgid "Moving block up." msgstr "" -#: js/block.js:3498 -#: js/ExtrasBlocks.js:645 -#: js/musicutils.js:736 -#: js/synthutils.js:64 -#.TRANS: musical instrument -msgid "bass" +#: js/activity.js:2817 +msgid "Moving block down." msgstr "" -#: js/block.js:4075 -msgid "Not a number" +#: js/activity.js:2838 +msgid "Moving block left." msgstr "" -#: js/block.js:4082 -msgid "Octave value must be between 1 and 10." +#: js/activity.js:2855 +msgid "Moving block right." msgstr "" -#: js/block.js:4090 -msgid "Numbers can have at most 10 digits." +#: js/activity.js:2870 +msgid "Jump to home position." msgstr "" -#: js/notation.js:353 -msgid "Lilypond cannot process pickup of " +#: js/activity.js:2897 +msgid "Hide blocks" msgstr "" -#: js/turtledefs.js:40 -#.TRANS: put the URL to the guide here, e.g., https://github.com/sugarlabs/turtleblocksjs/tree/master/guide/README.md -msgid "guide url" +#: js/activity.js:4500 +msgid "Click the run button to run the project." msgstr "" -#: js/turtledefs.js:85 -#: js/turtledefs.js:437 -msgid "Turtle Blocks is a Logo-inspired turtle that draws colorful pictures with snap-together visual-programming blocks." +#: js/activity.js:5692 +msgid "Show/hide block" msgstr "" -#: js/turtledefs.js:118 -#: js/turtledefs.js:220 -msgid "search" +#: js/activity.js:5698 +msgid "Expand/collapse blocks" msgstr "" -#: js/turtledefs.js:120 -#: js/turtledefs.js:222 -#: js/WidgetBlocks.js:437 -#: js/MeterBlocks.js:1343 -#.TRANS: musical meter (time signature), e.g., 4:4 -msgid "meter" +#: js/activity.js:5976 +msgid "Could not parse JSON input." msgstr "" -#: js/turtledefs.js:122 -#: js/turtledefs.js:224 -msgid "intervals" +#: js/activity.js:6475 +#: js/activity.js:6580 +#: js/activity.js:6631 +msgid "Cannot load project from the file. Please check the file type." msgstr "" -#: js/turtledefs.js:124 -#: js/turtledefs.js:226 -msgid "ornament" +#: js/activity.js:6917 +msgid "Invalid parameters" msgstr "" -#: js/turtledefs.js:125 -#: js/turtledefs.js:227 -#: js/VolumeBlocks.js:362 -#: js/VolumeBlocks.js:502 -#: js/VolumeBlocks.js:545 -msgid "volume" +#: js/blocks.js:1212 +#: js/blocks.js:3444 +#: js/blocks.js:3834 +#: js/blocks.js:3865 +#: js/blocks.js:3914 +#: js/blocks.js:3949 +#: js/blocks.js:6586 +#: js/palette.js:509 +#: js/palette.js:638 +#: js/palette.js:1105 +#: js/blocks/BoxesBlocks.js:282 +#: js/blocks/BoxesBlocks.js:285 +#: js/blocks/BoxesBlocks.js:405 +#: js/blocks/BoxesBlocks.js:594 +msgid "box" msgstr "" -#: js/turtledefs.js:129 -#: js/turtledefs.js:231 -msgid "boxes" +#: js/blocks.js:1713 +msgid "Consider breaking this stack into parts." msgstr "" -#: js/turtledefs.js:130 -#: js/turtledefs.js:232 -msgid "widgets" +#: js/blocks.js:2472 +#: js/palette.js:653 +#: js/blocks/MediaBlocks.js:602 +msgid "open file" msgstr "" -#: js/turtledefs.js:131 -#: js/turtledefs.js:233 -#: js/phrasemaker.js:824 -msgid "graphics" +#: js/blocks.js:3247 +#: js/palette.js:574 +#: js/blocks/MediaBlocks.js:892 +#: js/blocks/MediaBlocks.js:963 +msgid "text" msgstr "" -#: js/turtledefs.js:134 -#: js/turtledefs.js:236 -msgid "boolean" +#: js/blocks.js:3443 +#: js/palette.js:641 +#: js/palette.js:642 +#: js/blocks/BoxesBlocks.js:514 +msgid "store in box" msgstr "" -#: js/turtledefs.js:137 -#: js/turtledefs.js:239 -#: js/HeapBlocks.js:59 -#: js/status.js:147 -msgid "heap" +#: js/blocks.js:3448 +#: js/blocks.js:3888 +#: js/blocks.js:3923 +#: js/blocks.js:3958 +#: js/blocks.js:5862 +#: js/blocks.js:5883 +#: js/blocks/BoxesBlocks.js:772 +msgid "box1" msgstr "" -#: js/turtledefs.js:138 -#: js/turtledefs.js:240 -#: js/ProgramBlocks.js:495 -#: js/DictBlocks.js:142 -msgid "dictionary" +#: js/blocks.js:3450 +#: js/blocks.js:3890 +#: js/blocks.js:3925 +#: js/blocks.js:3960 +#: js/blocks.js:5864 +#: js/blocks.js:5885 +#: js/blocks/BoxesBlocks.js:663 +msgid "box2" msgstr "" -#: js/turtledefs.js:139 -#: js/turtledefs.js:241 -msgid "ensemble" +#: js/blocks.js:4122 +#: js/palette.js:639 +#: js/palette.js:644 +#: js/palette.js:1041 +#: js/blocks/BoxesBlocks.js:591 +msgid "store in" msgstr "" -#: js/turtledefs.js:140 -#: js/turtledefs.js:242 -msgid "extras" +#: js/blocks.js:4122 +#: js/blocks/BoxesBlocks.js:595 +#: js/blocks/DictBlocks.js:215 +#: js/blocks/DictBlocks.js:289 +#: js/blocks/EnsembleBlocks.js:391 +#: js/blocks/EnsembleBlocks.js:402 +#: js/blocks/MediaBlocks.js:746 +#: js/blocks/PitchBlocks.js:656 +#: js/blocks/PitchBlocks.js:934 +#: js/blocks/PitchBlocks.js:1866 +#: js/blocks/ProgramBlocks.js:390 +#: js/blocks/ProgramBlocks.js:495 +#: js/blocks/ProgramBlocks.js:658 +#: js/blocks/ToneBlocks.js:1025 +msgid "name" msgstr "" -#: js/turtledefs.js:142 -#: js/turtledefs.js:244 -#.TRANS: program as in computer program -#.TRANS: program as in computer program -msgid "program" +#: js/blocks.js:4122 +#: js/blocks/BoxesBlocks.js:75 +#: js/blocks/BoxesBlocks.js:595 +#: js/blocks/DictBlocks.js:289 +#: js/blocks/DictBlocks.js:430 +#: js/blocks/HeapBlocks.js:544 +#: js/blocks/RhythmBlocks.js:1130 +msgid "value" msgstr "" -#: js/turtledefs.js:143 -#: js/turtledefs.js:245 -msgid "my blocks" +#: js/blocks.js:4465 +msgid "Forever loop detected inside a note value block. Unexpected things may happen." msgstr "" -#: js/turtledefs.js:185 -#: js/turtledefs.js:281 -msgid "artwork" +#: js/blocks.js:4988 +msgid "There is no block selected." msgstr "" -#: js/turtledefs.js:185 -#: js/turtledefs.js:281 -msgid "logic" +#: js/blocks.js:5091 +#: js/blocks/MediaBlocks.js:888 +msgid "show" msgstr "" -#: js/turtledefs.js:185 -#: js/turtledefs.js:281 -msgid "music" +#: js/blocks.js:5094 +#: js/blocks/MediaBlocks.js:803 +#.TRANS: Avatar is the image used to determine the appearance of the mouse. +msgid "avatar" msgstr "" -#: js/turtledefs.js:187 -#: js/turtledefs.js:463 -msgid "Music Blocks is a collection of tools for exploring fundamental musical concepts in a fun way." +#: js/blocks.js:5097 +#: js/blocks/ToneBlocks.js:1010 +#: js/widgets/sampler.js:975 +#.TRANS: The sound sample that the user uploads. +msgid "sample" msgstr "" -#: js/turtledefs.js:436 -msgid "Welcome to Turtle Blocks" +#: js/lilypond.js:606 +msgid "brown rat" msgstr "" -#: js/turtledefs.js:438 -#: js/turtledefs.js:465 -#: js/turtledefs.js:774 -#: js/turtledefs.js:805 -msgid "The current version is" +#: js/lilypond.js:607 +msgid "mole" msgstr "" -#: js/turtledefs.js:446 -#: js/turtledefs.js:483 -msgid "Click the run button to run the project in fast mode." +#: js/lilypond.js:608 +msgid "chipmunk" msgstr "" -#: js/turtledefs.js:452 -msgid "Stop the turtle." +#: js/lilypond.js:609 +msgid "red squirrel" msgstr "" -#: js/turtledefs.js:454 -#: js/turtledefs.js:491 -msgid "You can also type Alt-S to stop." +#: js/lilypond.js:610 +msgid "guinea pig" +msgstr "" + +#: js/lilypond.js:611 +msgid "capybara" msgstr "" -#: js/turtledefs.js:462 -#: js/help.js:333 -msgid "Welcome to Music Blocks" +#: js/lilypond.js:612 +msgid "coypu" msgstr "" -#: js/turtledefs.js:472 -#: js/help.js:334 -msgid "Meet Mr. Mouse!" +#: js/lilypond.js:613 +msgid "black rat" msgstr "" -#: js/turtledefs.js:473 -msgid "Mr Mouse is our Music Blocks conductor." +#: js/lilypond.js:614 +msgid "grey squirrel" msgstr "" -#: js/turtledefs.js:475 -msgid "Mr Mouse encourages you to explore Music Blocks." +#: js/lilypond.js:615 +msgid "flying squirrel" msgstr "" -#: js/turtledefs.js:477 -msgid "Let us start our tour!" +#: js/lilypond.js:616 +msgid "bat" msgstr "" -#: js/turtledefs.js:489 -msgid "Stop the music (and the mice)." +#: js/lilypond.js:749 +#: js/lilypond.js:913 +#: js/lilypond.js:951 +#: js/blocks/ActionBlocks.js:1256 +#: js/blocks/ExtrasBlocks.js:556 +msgid "start drum" msgstr "" -#: js/turtledefs.js:499 -msgid "Record your project as video." +#: js/logo.js:61 +msgid "Not a valid pitch name" msgstr "" -#: js/turtledefs.js:505 -msgid "Toggle Fullscreen mode." +#: js/logo.js:507 +#: js/blocks/ProgramBlocks.js:258 +#: js/blocks/ProgramBlocks.js:427 +msgid "You must select a file." msgstr "" -#: js/turtledefs.js:511 -msgid "Initialize a new project." +#: js/logo.js:1696 +msgid "Playback is ready." msgstr "" -#: js/turtledefs.js:517 -msgid "You can also load projects from the file system." +#: js/macros.js:711 +#: js/utils/musicutils.js:1162 +#: js/utils/synthutils.js:202 +#.TRANS: animal sound effect +msgid "duck" msgstr "" -#: js/turtledefs.js:522 -#: js/StringHelper.js:46 -msgid "Delete" +#: js/notation.js:353 +msgid "Lilypond cannot process pickup of " msgstr "" -#: js/turtledefs.js:523 -msgid "To delete a block, just right-click on it, then you will be able to see the delete option" +#: js/palette.js:571 +msgid "grid" msgstr "" -#: js/turtledefs.js:528 -#: js/activity.js:2270 -#: js/LocalCard.js:31 -msgid "Copy" +#: js/palette.js:580 +msgid "effect" msgstr "" -#: js/turtledefs.js:529 -msgid "To copy a block, just right-click on it, then you will be able to see the copy option" +#: js/palette.js:586 +msgid "sargam" msgstr "" -#: js/turtledefs.js:535 -msgid "To extract a block, just right-click on it, then you will be able to see the extract option" +#: js/palette.js:601 +#: js/blocks/PitchBlocks.js:1209 +msgid "custom pitch" msgstr "" -#: js/turtledefs.js:542 -#: js/turtledefs.js:552 -#: js/turtledefs.js:573 -msgid "Save your project to a file." +#: js/palette.js:609 +msgid "accidental" msgstr "" -#: js/turtledefs.js:549 -#: js/turtledefs.js:570 -msgid "save" +#: js/palette.js:633 +#: js/blocks/PitchBlocks.js:405 +msgid "pitch converter" msgstr "" -#: js/turtledefs.js:556 -#: js/turtledefs.js:577 -msgid "Save graphics from your project to as SVG." +#: js/piemenus.js:200 +#: js/utils/musicutils.js:1187 +#: js/utils/musicutils.js:1207 +#: js/widgets/musickeyboard.js:2341 +#: js/widgets/phrasemaker.js:1908 +#: js/widgets/sampler.js:810 +#.TRANS: double sharp is a music term related to pitch +msgid "double sharp" msgstr "" -#: js/turtledefs.js:560 -#: js/turtledefs.js:581 -msgid "Save graphics from your project as PNG." +#: js/piemenus.js:201 +#: js/utils/musicutils.js:1185 +#: js/utils/musicutils.js:1208 +#: js/blocks/PitchBlocks.js:1539 +#: js/turtleactions/PitchActions.js:323 +#: js/widgets/musickeyboard.js:2342 +#: js/widgets/phrasemaker.js:1909 +#: js/widgets/sampler.js:811 +#.TRANS: sharp is a music term related to pitch +#.TRANS: sharp is a half-step up in pitch +msgid "sharp" msgstr "" -#: js/turtledefs.js:564 -#: js/turtledefs.js:597 -msgid "Save block artwork as an SVG file." +#: js/piemenus.js:202 +#: js/utils/musicutils.js:1183 +#: js/utils/musicutils.js:1209 +#: js/widgets/musickeyboard.js:2343 +#: js/widgets/phrasemaker.js:1910 +#: js/widgets/sampler.js:812 +#.TRANS: natural is a music term related to pitch +msgid "natural" msgstr "" -#: js/turtledefs.js:585 -msgid "Save audio from your project as WAV." +#: js/piemenus.js:203 +#: js/utils/musicutils.js:1181 +#: js/utils/musicutils.js:1210 +#: js/blocks/PitchBlocks.js:1498 +#: js/turtleactions/PitchActions.js:326 +#: js/widgets/musickeyboard.js:2344 +#: js/widgets/phrasemaker.js:1911 +#: js/widgets/sampler.js:813 +#.TRANS: flat is a music term related to pitch +#.TRANS: flat is a half-step down in pitch +msgid "flat" msgstr "" -#: js/turtledefs.js:589 -msgid "Save your project to as an ABC file." +#: js/piemenus.js:204 +#: js/utils/musicutils.js:1179 +#: js/utils/musicutils.js:1211 +#: js/widgets/musickeyboard.js:2345 +#: js/widgets/phrasemaker.js:1912 +#: js/widgets/sampler.js:814 +#.TRANS: double flat is a music term related to pitch +msgid "double flat" msgstr "" -#: js/turtledefs.js:593 -msgid "Save your project to as a Lilypond file." +#: js/piemenus.js:2864 +#: js/utils/musicutils.js:1006 +#: js/blocks/PitchBlocks.js:1385 +#.TRANS: unison is a music term related to intervals +#.TRANS: unison means the note is the same as the current note +msgid "unison" msgstr "" -#: js/turtledefs.js:604 -msgid "Load samples from server" +#: js/piemenus.js:3018 +#: js/piemenus.js:3091 +#: js/utils/musicutils.js:1014 +#: js/utils/musicutils.js:1189 +#: js/utils/musicutils.js:1326 +#.TRANS: major is a music term related to intervals and mode +msgid "major" msgstr "" -#: js/turtledefs.js:605 -msgid "This button opens a viewer for loading example projects." +#: js/piemenus.js:3018 +#: js/piemenus.js:3091 +#: js/utils/musicutils.js:1032 +#.TRANS: modal scale for music +msgid "ionian" msgstr "" -#: js/turtledefs.js:611 -msgid "Palette buttons" +#: js/piemenus.js:3020 +#: js/piemenus.js:3095 +#: js/utils/musicutils.js:1012 +#: js/utils/musicutils.js:1190 +#: js/utils/musicutils.js:1323 +#.TRANS: minor is a music term related to intervals and mode +msgid "minor" msgstr "" -#: js/turtledefs.js:612 -msgid "This toolbar contains the palette buttons including Rhythm Pitch Tone Action and more." +#: js/piemenus.js:3020 +#: js/piemenus.js:3095 +#: js/utils/musicutils.js:1042 +#.TRANS: modal scale for music +msgid "aeolian" msgstr "" -#: js/turtledefs.js:614 -msgid "Click to show the palettes of blocks and drag blocks from the palettes onto the canvas to use them." +#: js/piemenus.js:3410 +msgid "Duplicate" msgstr "" -#: js/turtledefs.js:620 -msgid "Cartesian/Polar" +#: js/piemenus.js:3412 +msgid "Move to trash" msgstr "" -#: js/turtledefs.js:621 -msgid "Show or hide a coordinate grid." +#: js/piemenus.js:3413 +#: js/widgets/timbre.js:968 +#: planet/js/StringHelper.js:69 +msgid "Close" msgstr "" -#: js/turtledefs.js:627 -msgid "Clear the screen and return the mice to their initial positions." +#: js/piemenus.js:3419 +msgid "Save stack" msgstr "" -#: js/turtledefs.js:633 -msgid "Collapse the graphics window." +#: js/piemenus.js:3449 +msgid "In order to copy a sample, you must reload the widget, import the sample again, and export it." msgstr "" -#: js/turtledefs.js:638 -#: js/activity.js:4256 -#: js/activity.js:4256 -msgid "Home" +#: js/piemenus.js:3812 +msgid "You have chosen key " msgstr "" -#: js/turtledefs.js:639 -msgid "Return all blocks to the center of the screen." +#: js/piemenus.js:3816 +msgid " for your pitch preview." msgstr "" -#: js/turtledefs.js:644 -msgid "Show/hide blocks" +#: js/turtle-singer.js:1363 +#.TRANS: partials are weighted components in a harmonic series +msgid "You must have at least one Partial block inside of a Weighted-partial block" msgstr "" -#: js/turtledefs.js:645 -msgid "Hide or show the blocks and the palettes." +#: js/turtle-singer.js:2077 +msgid "synth cannot play chords." msgstr "" -#: js/turtledefs.js:650 -msgid "Expand/collapse collapsable blocks" +#: js/utils/musicutils.js:505 +#: js/utils/musicutils.js:645 +#: js/widgets/pitchdrummatrix.js:228 +#: js/widgets/musickeyboard.js:2885 +msgid "rest" msgstr "" -#: js/turtledefs.js:651 -msgid "Expand or collapse start and action stacks." +#: js/utils/musicutils.js:689 +msgid "Perfect unison" msgstr "" -#: js/turtledefs.js:658 -#: js/activity.js:4265 -msgid "Decrease block size" +#: js/utils/musicutils.js:689 +msgid "Diminished second" msgstr "" -#: js/turtledefs.js:659 -msgid "Decrease the size of the blocks." +#: js/utils/musicutils.js:690 +msgid "Minor second" msgstr "" -#: js/turtledefs.js:664 -#: js/activity.js:4267 -msgid "Increase block size" +#: js/utils/musicutils.js:690 +msgid "Augmented unison" msgstr "" -#: js/turtledefs.js:665 -msgid "Increase the size of the blocks." +#: js/utils/musicutils.js:691 +msgid "Major second" msgstr "" -#: js/turtledefs.js:670 -msgid "Expand/collapse option toolbar" +#: js/utils/musicutils.js:691 +msgid "Diminished third" msgstr "" -#: js/turtledefs.js:671 -msgid "Click this button to expand or collapse the auxillary toolbar." +#: js/utils/musicutils.js:692 +msgid "Minor third" msgstr "" -#: js/turtledefs.js:676 -msgid "Run slow" +#: js/utils/musicutils.js:692 +msgid "Augmented second" msgstr "" -#: js/turtledefs.js:677 -msgid "Click to run the project in slow mode." +#: js/utils/musicutils.js:693 +msgid "Major third" msgstr "" -#: js/turtledefs.js:683 -msgid "Click to run the project step by step." +#: js/utils/musicutils.js:693 +msgid "Diminished fourth" msgstr "" -#: js/turtledefs.js:690 -msgid "Display statistics about your Music project." +#: js/utils/musicutils.js:694 +msgid "Perfect fourth" msgstr "" -#: js/turtledefs.js:697 -msgid "Delete a selected plugin." +#: js/utils/musicutils.js:694 +msgid "Augmented third" msgstr "" -#: js/turtledefs.js:704 -msgid "Enable scrolling" +#: js/utils/musicutils.js:695 +msgid "Diminished fifth" msgstr "" -#: js/turtledefs.js:705 -msgid "You can scroll the blocks on the canvas." +#: js/utils/musicutils.js:695 +msgid "Augmented fourth" msgstr "" -#: js/turtledefs.js:714 -msgid "Wrap Turtle" +#: js/utils/musicutils.js:696 +msgid "Perfect fifth" msgstr "" -#: js/turtledefs.js:715 -msgid "Turn Turtle wrapping On or Off." +#: js/utils/musicutils.js:696 +msgid "Diminished sixth" msgstr "" -#: js/turtledefs.js:725 -msgid "Restore blocks from the trash." +#: js/utils/musicutils.js:697 +msgid "Minor sixth" msgstr "" -#: js/turtledefs.js:732 -msgid "Switch mode" +#: js/utils/musicutils.js:697 +msgid "Augmented fifth" msgstr "" -#: js/turtledefs.js:733 -msgid "Switch between beginner and advance modes." +#: js/utils/musicutils.js:698 +msgid "Major sixth" msgstr "" -#: js/turtledefs.js:739 -msgid "Select your language preference." +#: js/utils/musicutils.js:698 +msgid "Diminished seventh" msgstr "" -#: js/turtledefs.js:745 -msgid "Keyboard shortcuts" +#: js/utils/musicutils.js:699 +msgid "Minor seventh" msgstr "" -#: js/turtledefs.js:746 -msgid "You can type d to create a do block and r to create a re block etc." +#: js/utils/musicutils.js:699 +msgid "Augmented sixth" msgstr "" -#: js/turtledefs.js:753 -msgid "Show these messages." +#: js/utils/musicutils.js:700 +msgid "Major seventh" msgstr "" -#: js/turtledefs.js:759 -#: js/turtledefs.js:790 -#: js/help.js:335 -msgid "Guide" +#: js/utils/musicutils.js:700 +msgid "Diminished octave" msgstr "" -#: js/turtledefs.js:760 -msgid "A detailed guide to Turtle Blocks is available." +#: js/utils/musicutils.js:701 +msgid "Perfect octave" msgstr "" -#: js/turtledefs.js:764 -msgid "Turtle Blocks Guide" +#: js/utils/musicutils.js:701 +msgid "Augmented seventh" msgstr "" -#: js/turtledefs.js:767 -#: js/turtledefs.js:798 -#: js/help.js:336 -msgid "About" +#: js/utils/musicutils.js:702 +msgid "Minor ninth" msgstr "" -#: js/turtledefs.js:768 -msgid "Turtle Blocks is an open source collection of tools for exploring musical concepts." +#: js/utils/musicutils.js:702 +msgid "Augmented octave" msgstr "" -#: js/turtledefs.js:770 -msgid "A full list of contributors can be found in the Turtle Blocks GitHub repository." +#: js/utils/musicutils.js:703 +msgid "Major ninth" msgstr "" -#: js/turtledefs.js:772 -msgid "Turtle Blocks is licensed under the AGPL." +#: js/utils/musicutils.js:703 +msgid "Diminished tenth" msgstr "" -#: js/turtledefs.js:780 -msgid "Turtle Blocks GitHub repository" +#: js/utils/musicutils.js:704 +msgid "Minor tenth" msgstr "" -#: js/turtledefs.js:783 -#: js/turtledefs.js:814 -#: js/help.js:337 -#: js/help.js:359 -msgid "Congratulations." +#: js/utils/musicutils.js:704 +msgid "Augmented ninth" msgstr "" -#: js/turtledefs.js:784 -msgid "You have finished the tour. Please enjoy Turtle Blocks!" +#: js/utils/musicutils.js:705 +msgid "Major tenth" msgstr "" -#: js/turtledefs.js:791 -msgid "A detailed guide to Music Blocks is available." +#: js/utils/musicutils.js:705 +msgid "Diminished eleventh" msgstr "" -#: js/turtledefs.js:795 -#: js/SaveInterface.js:76 -msgid "Music Blocks Guide" +#: js/utils/musicutils.js:706 +msgid "Perfect eleventh" msgstr "" -#: js/turtledefs.js:799 -msgid "Music Blocks is an open source collection of tools for exploring musical concepts." +#: js/utils/musicutils.js:706 +msgid "Augmented tenth" msgstr "" -#: js/turtledefs.js:801 -msgid "A full list of contributors can be found in the Music Blocks GitHub repository." +#: js/utils/musicutils.js:707 +msgid "Diminished twelfth" msgstr "" -#: js/turtledefs.js:803 -msgid "Music Blocks is licensed under the AGPL." +#: js/utils/musicutils.js:707 +msgid "Augmented eleventh" msgstr "" -#: js/turtledefs.js:811 -msgid "Music Blocks GitHub repository" +#: js/utils/musicutils.js:708 +msgid "Perfect twelfth" msgstr "" -#: js/turtledefs.js:815 -msgid "You have finished the tour. Please enjoy Music Blocks!" +#: js/utils/musicutils.js:708 +msgid "Diminished thirteenth" msgstr "" -#: js/activity.js:369 -msgid "Search for blocks" +#: js/utils/musicutils.js:709 +msgid "Minor thirteenth" msgstr "" -#: js/activity.js:1145 -msgid "Refresh your browser to change to advanced mode." +#: js/utils/musicutils.js:709 +msgid "Augmented fifth, plus an octave" msgstr "" -#: js/activity.js:1150 -msgid "Refresh your browser to change to beginner mode." +#: js/utils/musicutils.js:710 +msgid "Major thirteenth" msgstr "" -#: js/activity.js:1184 -msgid "Catching mice" +#: js/utils/musicutils.js:710 +msgid "Diminished seventh, plus an octave" msgstr "" -#: js/activity.js:1185 -msgid "Cleaning the instruments" +#: js/utils/musicutils.js:838 +#.TRANS: ordinal number. Please keep exactly one space between each number. +msgid "1st 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th" msgstr "" -#: js/activity.js:1186 -msgid "Testing key pieces" +#: js/utils/musicutils.js:1008 +#: js/utils/musicutils.js:1191 +#: js/utils/musicutils.js:1325 +#.TRANS: augmented is a music term related to intervals +msgid "augmented" msgstr "" -#: js/activity.js:1187 -msgid "Sight-reading" +#: js/utils/musicutils.js:1010 +#: js/utils/musicutils.js:1192 +#: js/utils/musicutils.js:1324 +#.TRANS: diminished is a music term related to intervals and mode +msgid "diminished" msgstr "" -#: js/activity.js:1188 -msgid "Combining math and music" +#: js/utils/musicutils.js:1016 +#: js/utils/musicutils.js:1322 +#: js/blocks/IntervalsBlocks.js:649 +#: js/turtleactions/IntervalsActions.js:120 +#: js/turtleactions/IntervalsActions.js:124 +#.TRANS: perfect is a music term related to intervals +msgid "perfect" +msgstr "" + +#: js/utils/musicutils.js:1018 +#.TRANS: twelve semi-tone scale for music +msgid "chromatic" msgstr "" -#: js/activity.js:1189 -msgid "Generating more blocks" +#: js/utils/musicutils.js:1019 +msgid "algerian" msgstr "" -#: js/activity.js:1190 -msgid "Do Re Mi Fa Sol La Ti Do" +#: js/utils/musicutils.js:1020 +msgid "spanish" msgstr "" -#: js/activity.js:1191 -msgid "Tuning string instruments" +#: js/utils/musicutils.js:1022 +#.TRANS: modal scale in music +msgid "octatonic" msgstr "" -#: js/activity.js:1192 -msgid "Pressing random keys" +#: js/utils/musicutils.js:1024 +#.TRANS: harmonic major scale in music +msgid "harmonic major" msgstr "" -#: js/activity.js:1351 -msgid "plugins will be removed upon restart." +#: js/utils/musicutils.js:1026 +#.TRANS: natural minor scales in music +msgid "natural minor" msgstr "" -#: js/activity.js:1360 -msgid "show Cartesian" +#: js/utils/musicutils.js:1028 +#.TRANS: harmonic minor scale in music +msgid "harmonic minor" msgstr "" -#: js/activity.js:1842 -msgid "output tools" +#: js/utils/musicutils.js:1030 +#.TRANS: melodic minor scale in music +msgid "melodic minor" msgstr "" -#: js/activity.js:1845 -msgid "custom note" +#: js/utils/musicutils.js:1034 +#.TRANS: modal scale for music +msgid "dorian" msgstr "" -#: js/activity.js:1848 -msgid "accidental name" +#: js/utils/musicutils.js:1036 +#.TRANS: modal scale for music +msgid "phrygian" msgstr "" -#: js/activity.js:1851 -#: js/PitchBlocks.js:855 -msgid "east indian solfege" +#: js/utils/musicutils.js:1038 +#.TRANS: modal scale for music +msgid "lydian" msgstr "" -#: js/activity.js:1854 -#: js/PitchBlocks.js:869 -msgid "note name" +#: js/utils/musicutils.js:1040 +#.TRANS: modal scale for music +msgid "mixolydian" msgstr "" -#: js/activity.js:1857 -#: js/IntervalsBlocks.js:94 -msgid "temperament name" +#: js/utils/musicutils.js:1044 +#.TRANS: modal scale for music +msgid "locrian" msgstr "" -#: js/activity.js:1863 -msgid "chord name" +#: js/utils/musicutils.js:1046 +#.TRANS: minor jazz scale for music +msgid "jazz minor" msgstr "" -#: js/activity.js:1869 -msgid "filter type" +#: js/utils/musicutils.js:1048 +#.TRANS: bebop scale for music +msgid "bebop" msgstr "" -#: js/activity.js:1872 -msgid "oscillator type" +#: js/utils/musicutils.js:1049 +msgid "arabic" msgstr "" -#: js/activity.js:1878 -#: js/DrumBlocks.js:32 -msgid "noise name" +#: js/utils/musicutils.js:1050 +msgid "byzantine" msgstr "" -#: js/activity.js:1881 -#: js/DrumBlocks.js:75 -msgid "drum name" +#: js/utils/musicutils.js:1052 +#.TRANS: musical scale for music by Verdi +msgid "enigmatic" msgstr "" -#: js/activity.js:1884 -#: js/DrumBlocks.js:119 -msgid "effects name" +#: js/utils/musicutils.js:1053 +msgid "ethiopian" msgstr "" -#: js/activity.js:1887 -msgid "wrap mode" +#: js/utils/musicutils.js:1055 +#.TRANS: Ethiopic scale for music +msgid "geez" msgstr "" -#: js/activity.js:1890 -msgid "load file" +#: js/utils/musicutils.js:1056 +msgid "hindu" msgstr "" -#: js/activity.js:2056 -msgid "This block is deprecated." +#: js/utils/musicutils.js:1057 +msgid "hungarian" msgstr "" -#: js/activity.js:2058 -msgid "Block cannot be found." +#: js/utils/musicutils.js:1059 +#.TRANS: minor Romanian scale for music +msgid "romanian minor" msgstr "" -#: js/activity.js:2266 -msgid "Saving block artwork" +#: js/utils/musicutils.js:1060 +msgid "spanish gypsy" msgstr "" -#: js/activity.js:2277 -msgid "Erase" +#: js/utils/musicutils.js:1062 +#.TRANS: musical scale for Mid-Eastern music +msgid "maqam" msgstr "" -#: js/activity.js:2301 -#: js/activity.js:2323 -msgid "Paste" +#: js/utils/musicutils.js:1064 +#.TRANS: minor blues scale for music +msgid "minor blues" msgstr "" -#: js/activity.js:2305 -msgid "Save block help" +#: js/utils/musicutils.js:1066 +#.TRANS: major blues scale for music +msgid "major blues" msgstr "" -#: js/activity.js:2390 -msgid "Jumping to the bottom of the page." +#: js/utils/musicutils.js:1067 +msgid "whole tone" msgstr "" -#: js/activity.js:2396 -msgid "Scrolling up." +#: js/utils/musicutils.js:1069 +#.TRANS: pentatonic is a general term that means "five note scale". This scale is typically known as "minor pentatonic" +msgid "minor pentatonic" msgstr "" -#: js/activity.js:2401 -msgid "Scrolling down." +#: js/utils/musicutils.js:1071 +#.TRANS: pentatonic is a general term that means "five note scale". This scale is typically known as "major pentatonic" +msgid "major pentatonic" msgstr "" -#: js/activity.js:2406 -msgid "Extracting block" +#: js/utils/musicutils.js:1072 +msgid "chinese" msgstr "" -#: js/activity.js:2414 -msgid "Moving block up." +#: js/utils/musicutils.js:1073 +msgid "egyptian" msgstr "" -#: js/activity.js:2435 -msgid "Moving block down." +#: js/utils/musicutils.js:1075 +#.TRANS: https://en.wikipedia.org/wiki/Hirajoshi_scale NOTE: There are three different versions of this scale +msgid "hirajoshi" msgstr "" -#: js/activity.js:2456 -msgid "Moving block left." +#: js/utils/musicutils.js:1076 +msgid "Japan" msgstr "" -#: js/activity.js:2473 -msgid "Moving block right." +#: js/utils/musicutils.js:1078 +#.TRANS: https://en.wikipedia.org/wiki/In_scale and https://en.wikipedia.org/wiki/Sakura_Sakura +msgid "in" msgstr "" -#: js/activity.js:2488 -msgid "Jump to home position." +#: js/utils/musicutils.js:1080 +#.TRANS: https://en.wikipedia.org/wiki/Miny%C5%8D_scale +msgid "minyo" msgstr "" -#: js/activity.js:2515 -msgid "Hide blocks" +#: js/utils/musicutils.js:1082 +#.TRANS: Italian mathematician +msgid "fibonacci" msgstr "" -#: js/activity.js:3389 -msgid "Click the run button to run the project." +#: js/utils/musicutils.js:1083 +#: js/utils/musicutils.js:1134 +#: js/utils/musicutils.js:1177 +#: js/utils/musicutils.js:1199 +#: js/utils/synthutils.js:134 +#: js/blocks/IntervalsBlocks.js:1124 +#: js/blocks/ToneBlocks.js:946 +#: js/blocks/VolumeBlocks.js:411 +#: js/blocks/WidgetBlocks.js:399 +#: js/blocks/WidgetBlocks.js:404 +#: js/turtleactions/VolumeActions.js:218 +#: js/widgets/modewidget.js:919 +#.TRANS: customize voice +msgid "custom" msgstr "" -#: js/activity.js:3456 -#: js/SaveInterface.js:131 -#: js/SaveInterface.js:204 -#: js/SaveInterface.js:262 -#: js/SaveInterface.js:389 -#: js/SaveInterface.js:417 -#: js/ProjectStorage.js:27 -#: js/GlobalPlanet.js:467 -#: js/GlobalPlanet.js:469 -#: js/GlobalPlanet.js:495 -#.TRANS: default project title when saving as Lilypond -msgid "My Project" +#: js/utils/musicutils.js:1085 +#: js/utils/musicutils.js:1531 +#: js/blocks/WidgetBlocks.js:176 +#.TRANS: highpass filter +msgid "highpass" msgstr "" -#: js/activity.js:4261 -msgid "Show/hide block" +#: js/utils/musicutils.js:1087 +#: js/utils/musicutils.js:1532 +#.TRANS: lowpass filter +msgid "lowpass" msgstr "" -#: js/activity.js:4263 -msgid "Expand/collapse blocks" +#: js/utils/musicutils.js:1089 +#: js/utils/musicutils.js:1533 +#.TRANS: bandpass filter +msgid "bandpass" msgstr "" -#: js/activity.js:4381 -msgid "Could not parse JSON input." +#: js/utils/musicutils.js:1091 +#: js/utils/musicutils.js:1534 +#.TRANS: high-shelf filter +msgid "highshelf" msgstr "" -#: js/activity.js:4684 -#: js/activity.js:4771 -#: js/activity.js:4821 -msgid "Cannot load project from the file. Please check the file type." +#: js/utils/musicutils.js:1093 +#: js/utils/musicutils.js:1535 +#.TRANS: low-shelf filter +msgid "lowshelf" msgstr "" -#: js/activity.js:5051 -msgid "Invalid parameters" +#: js/utils/musicutils.js:1095 +#: js/utils/musicutils.js:1536 +#.TRANS: notch-shelf filter +msgid "notch" msgstr "" -#: js/turtle-singer.js:1334 -#.TRANS: partials are weighted components in a harmonic series -msgid "You must have at least one Partial block inside of a Weighted-partial block" +#: js/utils/musicutils.js:1097 +#: js/utils/musicutils.js:1537 +#.TRANS: all-pass filter +msgid "allpass" msgstr "" -#: js/turtle-singer.js:2048 -msgid "synth cannot play chords." +#: js/utils/musicutils.js:1099 +#: js/utils/musicutils.js:1538 +#.TRANS: peaking filter +msgid "peaking" msgstr "" -#: js/lilypond.js:614 -msgid "brown rat" +#: js/utils/musicutils.js:1100 +#: js/utils/musicutils.js:1546 +#: js/utils/synthutils.js:126 +#: js/blocks/PitchBlocks.js:85 +#.TRANS: sine wave +msgid "sine" msgstr "" -#: js/lilypond.js:615 -msgid "mole" +#: js/utils/musicutils.js:1101 +#: js/utils/musicutils.js:1547 +#: js/utils/synthutils.js:128 +#: js/blocks/PitchBlocks.js:39 +#.TRANS: square wave +msgid "square" msgstr "" -#: js/lilypond.js:616 -msgid "chipmunk" +#: js/utils/musicutils.js:1102 +#: js/utils/musicutils.js:1548 +#: js/utils/synthutils.js:132 +#: js/blocks/PitchBlocks.js:62 +#: js/blocks/ToneBlocks.js:39 +#.TRANS: triangle wave +msgid "triangle" msgstr "" -#: js/lilypond.js:617 -msgid "red squirrel" +#: js/utils/musicutils.js:1103 +#: js/utils/musicutils.js:1549 +#: js/utils/synthutils.js:130 +#: js/blocks/PitchBlocks.js:108 +#.TRANS: sawtooth wave +msgid "sawtooth" msgstr "" -#: js/lilypond.js:618 -msgid "guinea pig" +#: js/utils/musicutils.js:1105 +#: js/utils/musicutils.js:1312 +#: js/blocks/PitchBlocks.js:931 +#: js/blocks/PitchBlocks.js:937 +#: js/turtleactions/PitchActions.js:469 +#.TRANS: even numbers +#.TRANS: invert based on even or odd number or musical scale +msgid "even" msgstr "" -#: js/lilypond.js:619 -msgid "capybara" +#: js/utils/musicutils.js:1107 +#: js/utils/musicutils.js:1313 +#: js/blocks/PitchBlocks.js:937 +#: js/turtleactions/PitchActions.js:471 +#.TRANS: odd numbers +msgid "odd" msgstr "" -#: js/lilypond.js:620 -msgid "coypu" +#: js/utils/musicutils.js:1108 +#: js/utils/musicutils.js:1314 +#: js/blocks/PitchBlocks.js:937 +#: js/turtleactions/PitchActions.js:473 +msgid "scalar" msgstr "" -#: js/lilypond.js:621 -msgid "black rat" +#: js/utils/musicutils.js:1109 +#: js/utils/synthutils.js:72 +#: js/blocks/VolumeBlocks.js:47 +#.TRANS: musical instrument +msgid "piano" msgstr "" -#: js/lilypond.js:622 -msgid "grey squirrel" +#: js/utils/musicutils.js:1110 +#: js/utils/synthutils.js:74 +#.TRANS: musical instrument +msgid "violin" msgstr "" -#: js/lilypond.js:623 -msgid "flying squirrel" +#: js/utils/musicutils.js:1111 +#: js/utils/synthutils.js:76 +#.TRANS: viola musical instrument +msgid "viola" msgstr "" -#: js/lilypond.js:624 -msgid "bat" +#: js/utils/musicutils.js:1112 +#: js/utils/synthutils.js:114 +#.TRANS: xylophone musical instrument +msgid "xylophone" msgstr "" -#: js/lilypond.js:757 -#: js/lilypond.js:921 -#: js/lilypond.js:959 -#: js/ActionBlocks.js:1256 -#: js/ExtrasBlocks.js:553 -msgid "start drum" +#: js/utils/musicutils.js:1113 +#: js/utils/synthutils.js:136 +#.TRANS: vibraphone musical instrument +msgid "vibraphone" msgstr "" -#: js/SaveInterface.js:59 -#: js/SaveInterface.js:61 -#: js/SaveInterface.js:93 -msgid "Music Blocks Project" +#: js/utils/musicutils.js:1114 +#: js/utils/synthutils.js:78 +#.TRANS: musical instrument +msgid "cello" msgstr "" -#: js/SaveInterface.js:63 -msgid "This project was created in Music Blocks" +#: js/utils/musicutils.js:1116 +#: js/utils/synthutils.js:82 +#.TRANS: viola musical instrument +msgid "double bass" msgstr "" -#: js/SaveInterface.js:67 -msgid "Music Blocks is a Free/Libre Software application." +#: js/utils/musicutils.js:1117 +#: js/utils/synthutils.js:84 +#: js/widgets/rhythmruler.js:2511 +#.TRANS: musical instrument +msgid "guitar" msgstr "" -#: js/SaveInterface.js:69 -msgid "The source code can be accessed at" +#: js/utils/musicutils.js:1118 +#: js/utils/synthutils.js:86 +#.TRANS: musical instrument +msgid "acoustic guitar" msgstr "" -#: js/SaveInterface.js:72 -msgid "For more information, please consult the" +#: js/utils/musicutils.js:1119 +#: js/utils/synthutils.js:88 +#.TRANS: musical instrument +msgid "flute" msgstr "" -#: js/SaveInterface.js:83 -msgid "Alternatively, open the file in Music Blocks using the Load project button." +#: js/utils/musicutils.js:1120 +#: js/utils/synthutils.js:90 +#.TRANS: musical instrument +msgid "clarinet" msgstr "" -#: js/SaveInterface.js:85 -msgid "Project Code" +#: js/utils/musicutils.js:1121 +#: js/utils/synthutils.js:92 +#.TRANS: musical instrument +msgid "saxophone" msgstr "" -#: js/SaveInterface.js:87 -msgid "This code stores data about the blocks in a project." +#: js/utils/musicutils.js:1122 +#: js/utils/synthutils.js:94 +#.TRANS: musical instrument +msgid "tuba" msgstr "" -#: js/SaveInterface.js:89 -msgid "Show" +#: js/utils/musicutils.js:1123 +#: js/utils/synthutils.js:96 +#.TRANS: musical instrument +msgid "trumpet" msgstr "" -#: js/SaveInterface.js:91 -msgid "Hide" +#: js/utils/musicutils.js:1124 +#: js/utils/synthutils.js:98 +#.TRANS: musical instrument +msgid "oboe" msgstr "" -#: js/SaveInterface.js:197 -#: js/SaveInterface.js:58 -msgid "No description provided" +#: js/utils/musicutils.js:1125 +#: js/utils/synthutils.js:100 +#.TRANS: musical instrument +msgid "trombone" msgstr "" -#: js/SaveInterface.js:332 -msgid "Your recording is in progress." +#: js/utils/musicutils.js:1126 +#: js/utils/synthutils.js:116 +#.TRANS: polytone synthesizer +msgid "electronic synth" msgstr "" -#: js/SaveInterface.js:401 -#.TRANS: File name prompt for save as Lilypond -msgid "File name" +#: js/utils/musicutils.js:1127 +#: js/utils/synthutils.js:118 +#.TRANS: simple monotone synthesizer +msgid "simple 1" msgstr "" -#: js/SaveInterface.js:403 -#: js/StringHelper.js:39 -#.TRANS: Project title prompt for save as Lilypond -msgid "Project title" +#: js/utils/musicutils.js:1128 +msgid "simple 2" msgstr "" -#: js/SaveInterface.js:405 -#.TRANS: Project title prompt for save as Lilypond -msgid "Project author" +#: js/utils/musicutils.js:1129 +msgid "simple 3" msgstr "" -#: js/SaveInterface.js:407 -#.TRANS: MIDI prompt for save as Lilypond -msgid "Include MIDI output?" +#: js/utils/musicutils.js:1130 +msgid "simple 4" msgstr "" -#: js/SaveInterface.js:409 -#.TRANS: Guitar prompt for save as Lilypond -msgid "Include guitar tablature output?" +#: js/utils/musicutils.js:1131 +#: js/utils/synthutils.js:58 +#: js/blocks/DrumBlocks.js:191 +#.TRANS: white noise synthesizer +msgid "white noise" msgstr "" -#: js/SaveInterface.js:411 -#.TRANS: Lilypond is a scripting language for generating sheet music -msgid "Save as Lilypond" +#: js/utils/musicutils.js:1132 +#: js/utils/synthutils.js:60 +#.TRANS: brown noise synthesizer +msgid "brown noise" msgstr "" -#: js/SaveInterface.js:426 -#: js/EnsembleBlocks.js:75 -#: js/EnsembleBlocks.js:154 -#: js/EnsembleBlocks.js:216 -#: js/EnsembleBlocks.js:302 -#: js/EnsembleBlocks.js:348 -#: js/EnsembleBlocks.js:389 -#: js/EnsembleBlocks.js:441 -#: js/EnsembleBlocks.js:490 -#: js/EnsembleBlocks.js:536 -#: js/EnsembleBlocks.js:583 -#: js/EnsembleBlocks.js:637 -#: js/EnsembleBlocks.js:753 -#: js/EnsembleBlocks.js:840 -#: js/EnsembleBlocks.js:899 -#: js/EnsembleBlocks.js:942 -#: js/EnsembleBlocks.js:1212 -#: js/EnsembleBlocks.js:1280 -#.TRANS: default project author when saving as Lilypond -msgid "Mr. Mouse" +#: js/utils/musicutils.js:1133 +#: js/utils/synthutils.js:62 +#.TRANS: pink noise synthesizer +msgid "pink noise" msgstr "" -#: js/SaveInterface.js:573 -msgid "The Lilypond code is copied to clipboard. You can paste it here: " +#: js/utils/musicutils.js:1135 +#: js/utils/synthutils.js:148 +#: js/widgets/rhythmruler.js:2057 +#: js/widgets/rhythmruler.js:2319 +#.TRANS: musical instrument +msgid "snare drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:50 -#: js/RhythmBlockPaletteBlocks.js:232 -#.TRANS: rhythm block -#.TRANS: translate "rhythm1" as rhythm -msgid "rhythm1" +#: js/utils/musicutils.js:1136 +#: js/utils/synthutils.js:150 +#.TRANS: musical instrument +msgid "kick drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:70 -#: js/RhythmBlockPaletteBlocks.js:251 -#: js/RhythmBlockPaletteBlocks.js:484 -#: js/RhythmBlockPaletteBlocks.js:553 -#: js/RhythmBlockPaletteBlocks.js:874 -msgid "number of notes" +#: js/utils/musicutils.js:1137 +#: js/utils/synthutils.js:152 +#.TRANS: musical instrument +msgid "tom tom" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:126 -msgid "polyphonic rhythm" +#: js/utils/musicutils.js:1138 +#: js/utils/synthutils.js:154 +#.TRANS: musical instrument +msgid "floor tom" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:218 -msgid "The Rhythm block is used to generate rhythm patterns." +#: js/utils/musicutils.js:1139 +#: js/utils/synthutils.js:156 +#.TRANS: musical instrument +msgid "bass drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:279 -msgid "1/64 note" +#: js/utils/musicutils.js:1140 +#: js/utils/synthutils.js:158 +#.TRANS: a drum made from an inverted cup +msgid "cup drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:303 -msgid "1/32 note" +#: js/utils/musicutils.js:1141 +#: js/utils/synthutils.js:160 +#.TRANS: musical instrument +msgid "darbuka drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:331 -msgid "1/16 note" +#: js/utils/musicutils.js:1142 +#: js/utils/synthutils.js:164 +#.TRANS: musical instrument +msgid "hi hat" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:359 -msgid "eighth note" +#: js/utils/musicutils.js:1143 +#: js/utils/synthutils.js:166 +#.TRANS: a small metal bell +msgid "ride bell" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:387 -msgid "quarter note" +#: js/utils/musicutils.js:1144 +#: js/utils/synthutils.js:168 +#.TRANS: musical instrument +msgid "cow bell" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:415 -msgid "half note" +#: js/utils/musicutils.js:1145 +msgid "japanese drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:443 -msgid "whole note" +#: js/utils/musicutils.js:1146 +#: js/utils/synthutils.js:174 +#.TRANS: musical instrument +msgid "japanese bell" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:481 -#: js/RhythmBlockPaletteBlocks.js:550 -#: js/RhythmBlockPaletteBlocks.js:601 -#.TRANS: A tuplet is a note value divided into irregular time values. -msgid "tuplet" +#: js/utils/musicutils.js:1147 +#: js/utils/synthutils.js:170 +#.TRANS: musical instrument +msgid "triangle bell" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:767 -msgid "septuplet" +#: js/utils/musicutils.js:1148 +#: js/utils/synthutils.js:172 +#.TRANS: musical instrument +msgid "finger cymbals" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:795 -msgid "quintuplet" +#: js/utils/musicutils.js:1149 +#: js/utils/synthutils.js:176 +#.TRANS: a musically tuned set of bells +msgid "chime" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:823 -msgid "triplet" +#: js/utils/musicutils.js:1150 +#: js/utils/synthutils.js:178 +#.TRANS: a musical instrument +msgid "gong" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:850 -msgid "simple tuplet" +#: js/utils/musicutils.js:1151 +#: js/utils/synthutils.js:180 +#.TRANS: sound effect +msgid "clang" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:860 -msgid "Tuplets are a collection of notes that get scaled to a specific duration." +#: js/utils/musicutils.js:1152 +#: js/utils/synthutils.js:182 +#.TRANS: sound effect +msgid "crash" msgstr "" -#: js/WidgetBlocks.js:71 -#.TRANS: sound envelope (ADSR) -msgid "envelope" +#: js/utils/musicutils.js:1153 +#: js/utils/synthutils.js:184 +#.TRANS: sound effect +msgid "bottle" msgstr "" -#: js/WidgetBlocks.js:79 -#.TRANS: Attack time is the time taken for initial run-up of level from nil to peak, beginning when the key is first pressed. -msgid "attack" +#: js/utils/musicutils.js:1154 +#: js/utils/synthutils.js:186 +#.TRANS: sound effect +msgid "clap" msgstr "" -#: js/WidgetBlocks.js:81 -#.TRANS: Decay time is the time taken for the subsequent run down from the attack level to the designated sustain level. -msgid "decay" +#: js/utils/musicutils.js:1155 +#: js/utils/synthutils.js:188 +#.TRANS: sound effect +msgid "slap" msgstr "" -#: js/WidgetBlocks.js:83 -#.TRANS: Sustain level is the level during the main sequence of the sound's duration, until the key is released. -msgid "sustain" +#: js/utils/musicutils.js:1156 +#: js/utils/synthutils.js:190 +#.TRANS: sound effect +msgid "splash" msgstr "" -#: js/WidgetBlocks.js:85 -#.TRANS: Release time is the time taken for the level to decay from the sustain level to zero after the key is released. -msgid "release" +#: js/utils/musicutils.js:1157 +#: js/utils/synthutils.js:192 +#.TRANS: sound effect +msgid "bubbles" msgstr "" -#: js/WidgetBlocks.js:96 -msgid "Attack value should be from 0 to 100." +#: js/utils/musicutils.js:1158 +#: js/utils/synthutils.js:194 +#.TRANS: sound effect +msgid "raindrop" msgstr "" -#: js/WidgetBlocks.js:99 -msgid "Decay value should be from 0 to 100." +#: js/utils/musicutils.js:1159 +#: js/utils/synthutils.js:196 +#.TRANS: animal sound effect +msgid "cat" msgstr "" -#: js/WidgetBlocks.js:102 -msgid "Sustain value should be from 0 to 100." +#: js/utils/musicutils.js:1160 +#: js/utils/synthutils.js:198 +#.TRANS: animal sound effect +msgid "cricket" msgstr "" -#: js/WidgetBlocks.js:105 -msgid "Release value should be from 0-100." +#: js/utils/musicutils.js:1161 +#: js/utils/synthutils.js:200 +#.TRANS: animal sound effect +msgid "dog" msgstr "" -#: js/WidgetBlocks.js:121 -msgid "You are adding multiple envelope blocks." +#: js/utils/musicutils.js:1163 +#: js/utils/synthutils.js:102 +#.TRANS: musical instrument +msgid "banjo" msgstr "" -#: js/WidgetBlocks.js:144 -#.TRANS: a filter removes some unwanted components from a signal -msgid "filter" +#: js/utils/musicutils.js:1164 +#: js/utils/synthutils.js:104 +#.TRANS: musical instrument +msgid "koto" msgstr "" -#: js/WidgetBlocks.js:149 -#: js/musicutils.js:706 -#: js/musicutils.js:1105 -#.TRANS: highpass filter -msgid "highpass" +#: js/utils/musicutils.js:1165 +#: js/utils/synthutils.js:106 +#.TRANS: musical instrument +msgid "dulcimer" msgstr "" -#: js/WidgetBlocks.js:152 -#: js/ToneBlocks.js:42 -#: js/timbre.js:1558 -#: js/timbre.js:1808 -#.TRANS: type of filter, e.g., lowpass, highpass, etc. -#.TRANS: there are different types (sine, triangle, square...) of oscillators. -msgid "type" +#: js/utils/musicutils.js:1166 +#: js/utils/synthutils.js:108 +#.TRANS: musical instrument +msgid "electric guitar" msgstr "" -#: js/WidgetBlocks.js:154 -#: js/timbre.js:1818 -#.TRANS: rolloff is the steepness of a change in frequency. -msgid "rolloff" +#: js/utils/musicutils.js:1167 +#: js/utils/synthutils.js:110 +#.TRANS: musical instrument +msgid "bassoon" msgstr "" -#: js/WidgetBlocks.js:155 -#: js/MediaBlocks.js:692 -#: js/temperament.js:382 -#: js/temperament.js:417 -#: js/temperament.js:477 -#: js/temperament.js:485 -#: js/temperament.js:1348 -#: js/timbre.js:1842 -msgid "frequency" +#: js/utils/musicutils.js:1168 +#: js/utils/synthutils.js:112 +#.TRANS: musical instrument +msgid "celeste" msgstr "" -#: js/WidgetBlocks.js:179 -#.TRANS: rolloff is the steepness of a change in frequency. -msgid "Rolloff value should be either -12, -24, -48, or -96 decibels/octave." +#: js/utils/musicutils.js:1170 +#: js/widgets/temperament.js:787 +#.TRANS: musical temperament +msgid "equal" msgstr "" -#: js/WidgetBlocks.js:211 -msgid "The Temperament tool is used to define custom tuning." +#: js/utils/musicutils.js:1172 +#.TRANS: musical temperament +msgid "Pythagorean" msgstr "" -#: js/WidgetBlocks.js:277 -#: js/sampler.js:329 -msgid "Upload a sample and adjust its pitch center." +#: js/utils/musicutils.js:1174 +#.TRANS: musical temperament +msgid "just intonation" msgstr "" -#: js/WidgetBlocks.js:284 -#.TRANS: the speed at music is should be played. -msgid "sampler" +#: js/utils/musicutils.js:1176 +#.TRANS: musical temperament +msgid "meantone" msgstr "" -#: js/WidgetBlocks.js:329 -#: js/WidgetBlocks.js:334 -#: js/IntervalsBlocks.js:928 -#: js/VolumeBlocks.js:411 -#: js/ToneBlocks.js:946 -#: js/VolumeActions.js:218 -#: js/musicutils.js:704 -#: js/musicutils.js:755 -#: js/musicutils.js:798 -#: js/musicutils.js:820 -#: js/musicutils.js:1136 -#: js/synthutils.js:118 -#: js/modewidget.js:919 -#.TRANS: customize voice -msgid "custom" +#: js/utils/musicutils.js:1193 +msgid "major 7th" msgstr "" -#: js/WidgetBlocks.js:432 -msgid "The Meter block opens a tool to select strong beats for the meter." +#: js/utils/musicutils.js:1194 +msgid "minor 7th" msgstr "" -#: js/WidgetBlocks.js:473 -msgid "The oscilloscope block opens a tool to visualize waveforms." +#: js/utils/musicutils.js:1195 +msgid "dominant 7th" msgstr "" -#: js/WidgetBlocks.js:478 -msgid "oscilloscope" +#: js/utils/musicutils.js:1196 +msgid "minor-major 7th" msgstr "" -#: js/WidgetBlocks.js:530 -msgid "The Custom mode block opens a tool to explore musical mode (the spacing of the notes in a scale)." +#: js/utils/musicutils.js:1197 +msgid "fully-diminished 7th" msgstr "" -#: js/WidgetBlocks.js:536 -#.TRANS: musical mode is the pattern of half-steps in an octave, e.g., Major or Minor modes -msgid "custom mode" +#: js/utils/musicutils.js:1198 +msgid "half-diminished 7th" msgstr "" -#: js/WidgetBlocks.js:570 -msgid "The Tempo block opens a metronome to visualize the beat." +#: js/utils/musicutils.js:1557 +#: js/utils/musicutils.js:1569 +msgid "Equal (12EDO)" msgstr "" -#: js/WidgetBlocks.js:617 -msgid "The Arpeggio Widget is used to compose chord sequences." +#: js/utils/musicutils.js:1558 +#: js/utils/musicutils.js:1570 +msgid "5-limit Just Intonation" msgstr "" -#: js/WidgetBlocks.js:623 -#: js/IntervalsBlocks.js:683 -msgid "arpeggio" +#: js/utils/musicutils.js:1559 +#: js/utils/musicutils.js:1571 +msgid "Pythagorean (3-limit JI)" msgstr "" -#: js/WidgetBlocks.js:677 -msgid "The Pitch drum matrix is used to map pitches to drum sounds." +#: js/utils/musicutils.js:1560 +#: js/utils/musicutils.js:1561 +#: js/utils/musicutils.js:1572 +#: js/utils/musicutils.js:1573 +msgid "Meantone" msgstr "" -#: js/WidgetBlocks.js:682 -#.TRANS: makes a mapping between pitches and drum sounds -msgid "pitch-drum mapper" +#: js/utils/musicutils.js:1574 +msgid "Custom" msgstr "" -#: js/WidgetBlocks.js:724 -msgid "You must have at least one pitch block and one drum block in the matrix." +#: js/utils/musicutils.js:5387 +#: js/utils/musicutils.js:5430 +msgid "current" msgstr "" -#: js/WidgetBlocks.js:746 -msgid "The Pitch slider tool to is used to generate pitches at selected frequencies." +#: js/utils/musicutils.js:5390 +#: js/utils/musicutils.js:5421 +msgid "next" msgstr "" -#: js/WidgetBlocks.js:751 -#.TRANS: widget to generate pitches using a slider -msgid "pitch slider" +#: js/utils/musicutils.js:5393 +#: js/utils/musicutils.js:5426 +msgid "previous" msgstr "" -#: js/WidgetBlocks.js:788 -msgid "chromatic keyboard" +#: js/utils/synthutils.js:120 +#.TRANS: simple monotone synthesizer +msgid "simple-2" msgstr "" -#: js/WidgetBlocks.js:815 -#: js/WidgetBlocks.js:874 -#.TRANS: widget to generate pitches using a slider -msgid "music keyboard" +#: js/utils/synthutils.js:122 +#.TRANS: simple monotone synthesizer +msgid "simple-3" msgstr "" -#: js/WidgetBlocks.js:859 -#: js/WidgetBlocks.js:866 -msgid "The Music keyboard block opens a piano keyboard that can be used to create notes." +#: js/utils/synthutils.js:124 +#.TRANS: simple monotone synthesizer +msgid "simple-4" msgstr "" -#: js/WidgetBlocks.js:910 -msgid "The Pitch staircase tool to is used to generate pitches from a given ratio." +#: js/utils/synthutils.js:162 +#.TRANS: musical instrument +msgid "taiko" msgstr "" -#: js/WidgetBlocks.js:917 -#.TRANS: generate a progressive sequence of pitches -msgid "pitch staircase" +#: js/blocks/ActionBlocks.js:58 +msgid "The Return block will return a value from an action." msgstr "" -#: js/WidgetBlocks.js:982 -msgid "The Rhythm Maker block opens a tool to create drum machines." +#: js/blocks/ActionBlocks.js:75 +msgid "return" msgstr "" -#: js/WidgetBlocks.js:1036 -msgid "G major scale" +#: js/blocks/ActionBlocks.js:128 +msgid "The Return to URL block will return a value to a webpage." msgstr "" -#: js/WidgetBlocks.js:1064 -msgid "C major scale" +#: js/blocks/ActionBlocks.js:145 +msgid "return to URL" msgstr "" -#: js/WidgetBlocks.js:1097 -msgid "The Phrase Maker block opens a tool to create musical phrases." +#: js/blocks/ActionBlocks.js:233 +#: js/blocks/ActionBlocks.js:290 +#: js/blocks/ActionBlocks.js:501 +#: js/blocks/ActionBlocks.js:688 +msgid "The Calculate block returns a value calculated by an action." msgstr "" -#: js/WidgetBlocks.js:1104 -#.TRANS: assigns pitch to a sequence of beats to generate a melody -msgid "phrase maker" +#: js/blocks/ActionBlocks.js:251 +#: js/blocks/ActionBlocks.js:517 +#: js/blocks/ActionBlocks.js:707 +msgid "calculate" msgstr "" -#: js/WidgetBlocks.js:1168 -msgid "You must have at least one pitch block and one rhythm block in the matrix." +#: js/blocks/ActionBlocks.js:376 +#: js/blocks/ActionBlocks.js:593 +#: js/blocks/ActionBlocks.js:942 +#: js/blocks/ActionBlocks.js:1389 +#.TRANS: do is the do something or take an action. +msgid "The Do block is used to initiate an action." msgstr "" -#: js/WidgetBlocks.js:1220 -msgid "The Status block opens a tool for inspecting the status of Music Blocks as it is running." +#: js/blocks/ActionBlocks.js:390 +#: js/blocks/ActionBlocks.js:610 +#: js/blocks/ActionBlocks.js:959 +#: js/blocks/ActionBlocks.js:1048 +#: js/blocks/MeterBlocks.js:769 +msgid "do1" msgstr "" -#: js/IntervalsBlocks.js:45 -msgid "set temperament" +#: js/blocks/ActionBlocks.js:390 +#: js/blocks/ActionBlocks.js:610 +#: js/blocks/ActionBlocks.js:959 +#: js/blocks/ActionBlocks.js:1048 +#: js/blocks/FlowBlocks.js:742 +#: js/blocks/FlowBlocks.js:822 +#: js/blocks/MeterBlocks.js:769 +msgid "do" msgstr "" -#: js/IntervalsBlocks.js:63 -#: js/MediaBlocks.js:746 -#: js/PitchBlocks.js:657 -#: js/PitchBlocks.js:933 -#: js/PitchBlocks.js:972 -#: js/PitchBlocks.js:1005 -#: js/PitchBlocks.js:1166 -#: js/PitchBlocks.js:1679 -#: js/PitchBlocks.js:1720 -#: js/PitchBlocks.js:1827 -#: js/ToneBlocks.js:1025 -#.TRANS: adjusts the shift up or down by one octave (twelve half-steps in the interval between two notes, one having twice or half the frequency in Hz of the other.) -msgid "octave" +#: js/blocks/ActionBlocks.js:791 +#: js/blocks/ActionBlocks.js:865 +msgid "The Arg block contains the value of an argument passed to an action." msgstr "" -#: js/IntervalsBlocks.js:99 -msgid "The Temperament name block is used to select a tuning method." +#: js/blocks/ActionBlocks.js:806 +#: js/blocks/ActionBlocks.js:878 +msgid "arg" msgstr "" -#: js/IntervalsBlocks.js:161 -msgid "doubly" +#: js/blocks/ActionBlocks.js:836 +#: js/blocks/ActionBlocks.js:900 +#: js/blocks/ActionBlocks.js:908 +msgid "Invalid argument" msgstr "" -#: js/IntervalsBlocks.js:166 -msgid "The Doubly block will double the size of an interval." +#: js/blocks/ActionBlocks.js:944 +msgid "In the example, it is used with the One of block to choose a random phase." msgstr "" -#: js/IntervalsBlocks.js:262 -msgid "interval number" +#: js/blocks/ActionBlocks.js:1019 +#: js/blocks/ActionBlocks.js:1026 +msgid "The Listen block is used to listen for an event such as a mouse click." msgstr "" -#: js/IntervalsBlocks.js:330 -#.TRANS: measure the distance between two pitches in semi-tones -msgid "semi-tone interval measure" +#: js/blocks/ActionBlocks.js:1028 +msgid "When the event happens, an action is taken." msgstr "" -#: js/IntervalsBlocks.js:397 -#: js/IntervalsBlocks.js:513 -msgid "You must use two pitch blocks when measuring an interval." +#: js/blocks/ActionBlocks.js:1045 +msgid "on" msgstr "" -#: js/IntervalsBlocks.js:439 -msgid "The Scalar interval block measures the distance between two notes in the current key and mode." +#: js/blocks/ActionBlocks.js:1048 +#: js/blocks/ActionBlocks.js:1049 +#: js/blocks/ActionBlocks.js:1153 +msgid "event" msgstr "" -#: js/IntervalsBlocks.js:445 -#.TRANS: measure the distance between two pitches in steps of musical scale -msgid "scalar interval measure" +#: js/blocks/ActionBlocks.js:1133 +msgid "The Broadcast block is used to trigger an event." msgstr "" -#: js/IntervalsBlocks.js:592 -#: js/musicutils.js:637 -#: js/musicutils.js:908 -#.TRANS: perfect is a music term related to intervals -msgid "perfect" +#: js/blocks/ActionBlocks.js:1151 +msgid "broadcast" msgstr "" -#: js/IntervalsBlocks.js:621 -msgid "In the figure, we add sol# to sol." +#: js/blocks/ActionBlocks.js:1208 +msgid "Each Start block is a separate voice." msgstr "" -#: js/IntervalsBlocks.js:627 -#: js/OrnamentBlocks.js:220 -#.TRANS: calculate a relative step between notes based on semi-tones -msgid "semi-tone interval" +#: js/blocks/ActionBlocks.js:1304 +msgid "It is often used for storing a phrase of music that is repeated." msgstr "" -#: js/IntervalsBlocks.js:676 -msgid "The output of the example is: do, mi, sol, sol, ti, mi" +#: js/blocks/ActionBlocks.js:1495 +msgid "define temperament" msgstr "" -#: js/IntervalsBlocks.js:735 -msgid "The Chord block calculates common chords." +#: js/blocks/BooleanBlocks.js:44 +msgid "The Not block is the logical not operator." msgstr "" -#: js/IntervalsBlocks.js:737 -msgid "In the figure, we generate a C-major chord." +#: js/blocks/BooleanBlocks.js:62 +msgid "not" msgstr "" -#: js/IntervalsBlocks.js:742 -msgid "chord" +#: js/blocks/BooleanBlocks.js:134 +msgid "The And block is the logical and operator." msgstr "" -#: js/IntervalsBlocks.js:794 -msgid "The Ratio Interval block calculates an interval based on a ratio." +#: js/blocks/BooleanBlocks.js:152 +msgid "and" msgstr "" -#: js/IntervalsBlocks.js:799 -msgid "ratio interval" +#: js/blocks/BooleanBlocks.js:218 +msgid "The Or block is the logical or operator." msgstr "" -#: js/IntervalsBlocks.js:868 -msgid "In the figure, we add la to sol." +#: js/blocks/BooleanBlocks.js:236 +msgid "or" msgstr "" -#: js/IntervalsBlocks.js:924 -#.TRANS: define a custom mode -msgid "define mode" +#: js/blocks/BooleanBlocks.js:302 +msgid "The XOR block is the logical XOR operator." msgstr "" -#: js/IntervalsBlocks.js:977 -msgid "movable Do" +#: js/blocks/BooleanBlocks.js:320 +msgid "xor" msgstr "" -#: js/IntervalsBlocks.js:1028 -#.TRANS: mode length is the number of notes in the mode, e.g., 7 for major and minor scales; 12 for chromatic scales -msgid "mode length" +#: js/blocks/BooleanBlocks.js:808 +msgid "The Equal block returns True if the two numbers are equal." msgstr "" -#: js/IntervalsBlocks.js:1037 -msgid "The Mode length block is the number of notes in the current scale." +#: js/blocks/BooleanBlocks.js:909 +msgid "The Not-equal-to block returns True if the two numbers are not equal to each other." msgstr "" -#: js/IntervalsBlocks.js:1039 -msgid "Most Western scales have 7 notes." +#: js/blocks/BooleanBlocks.js:1008 +msgid "The Boolean block is used to specify true or false." msgstr "" -#: js/IntervalsBlocks.js:1088 -#.TRANS: the mode in music is 'major', 'minor', etc. -msgid "current mode" +#: js/blocks/BoxesBlocks.js:53 +#: js/blocks/BoxesBlocks.js:59 +msgid "The Add-to block is used to add to the value stored in a box." msgstr "" -#: js/IntervalsBlocks.js:1141 -#.TRANS: the key is a group of pitches with which a music composition is created -msgid "current key" +#: js/blocks/BoxesBlocks.js:61 +msgid "It can also be used with other blocks such as Color and Pen size." msgstr "" -#: js/IntervalsBlocks.js:1193 -#: js/IntervalsBlocks.js:1238 -#.TRANS: set the key and mode, e.g. C Major -msgid "set key" +#: js/blocks/BoxesBlocks.js:73 +msgid "add" msgstr "" -#: js/IntervalsBlocks.js:1247 -#: js/IntervalsBlocks.js:1253 -msgid "The Set key block is used to set the key and mode," +#: js/blocks/BoxesBlocks.js:75 +#: js/widgets/temperament.js:857 +msgid "to" msgstr "" -#: js/IntervalsBlocks.js:1253 -msgid "eg C Major" +#: js/blocks/BoxesBlocks.js:75 +#: js/blocks/BoxesBlocks.js:595 +#: js/blocks/HeapBlocks.js:544 +msgid "value1" msgstr "" -#: js/IntervalsBlocks.js:1266 -#: js/DictBlocks.js:215 -#: js/DictBlocks.js:216 -#: js/DictBlocks.js:289 -#: js/DictBlocks.js:290 -#: js/DictBlocks.js:357 -#: js/DictBlocks.js:430 -#: js/DictBlocks.js:431 -#.TRANS: key, e.g., C in C Major -msgid "key" +#: js/blocks/BoxesBlocks.js:118 +msgid "Block does not support incrementing." msgstr "" -#: js/ActionBlocks.js:58 -msgid "The Return block will return a value from an action." +#: js/blocks/BoxesBlocks.js:152 +msgid "The Add-1-to block adds one to the value stored in a box." msgstr "" -#: js/ActionBlocks.js:75 -msgid "return" +#: js/blocks/BoxesBlocks.js:163 +msgid "add 1 to" msgstr "" -#: js/ActionBlocks.js:128 -msgid "The Return to URL block will return a value to a webpage." +#: js/blocks/BoxesBlocks.js:211 +msgid "The Subtract-1-from block subtracts one from the value stored in a box." msgstr "" -#: js/ActionBlocks.js:145 -msgid "return to URL" +#: js/blocks/BoxesBlocks.js:222 +msgid "subtract 1 from" msgstr "" -#: js/ActionBlocks.js:233 -#: js/ActionBlocks.js:290 -#: js/ActionBlocks.js:501 -#: js/ActionBlocks.js:688 -msgid "The Calculate block returns a value calculated by an action." +#: js/blocks/BoxesBlocks.js:270 +#: js/blocks/BoxesBlocks.js:387 +msgid "The Box block returns the value stored in a box." msgstr "" -#: js/ActionBlocks.js:251 -#: js/ActionBlocks.js:517 -#: js/ActionBlocks.js:707 -msgid "calculate" +#: js/blocks/BoxesBlocks.js:500 +#: js/blocks/BoxesBlocks.js:576 +msgid "The Store in block will store a value in a box." msgstr "" -#: js/ActionBlocks.js:376 -#: js/ActionBlocks.js:593 -#: js/ActionBlocks.js:942 -#: js/ActionBlocks.js:1389 -#.TRANS: do is the do something or take an action. -msgid "The Do block is used to initiate an action." +#: js/blocks/BoxesBlocks.js:595 +#: js/blocks/EnsembleBlocks.js:391 +#: js/blocks/EnsembleBlocks.js:402 +msgid "name1" msgstr "" -#: js/ActionBlocks.js:390 -#: js/ActionBlocks.js:610 -#: js/ActionBlocks.js:959 -#: js/ActionBlocks.js:1048 -#: js/MeterBlocks.js:769 -msgid "do1" +#: js/blocks/BoxesBlocks.js:652 +msgid "The Box2 block returns the value stored in Box2." msgstr "" -#: js/ActionBlocks.js:390 -#: js/ActionBlocks.js:610 -#: js/ActionBlocks.js:959 -#: js/ActionBlocks.js:1048 -#: js/FlowBlocks.js:742 -#: js/FlowBlocks.js:822 -#: js/MeterBlocks.js:769 -msgid "do" +#: js/blocks/BoxesBlocks.js:703 +msgid "The Store in Box2 block is used to store a value in Box2." msgstr "" -#: js/ActionBlocks.js:791 -#: js/ActionBlocks.js:865 -msgid "The Arg block contains the value of an argument passed to an action." +#: js/blocks/BoxesBlocks.js:715 +msgid "store in box2" msgstr "" -#: js/ActionBlocks.js:806 -#: js/ActionBlocks.js:878 -msgid "arg" +#: js/blocks/BoxesBlocks.js:761 +msgid "The Box1 block returns the value stored in Box1." msgstr "" -#: js/ActionBlocks.js:836 -#: js/ActionBlocks.js:900 -#: js/ActionBlocks.js:908 -msgid "Invalid argument" +#: js/blocks/BoxesBlocks.js:812 +msgid "The Store in Box1 block is used to store a value in Box1." msgstr "" -#: js/ActionBlocks.js:944 -msgid "In the example, it is used with the One of block to choose a random phase." +#: js/blocks/BoxesBlocks.js:826 +msgid "store in box1" msgstr "" -#: js/ActionBlocks.js:1019 -#: js/ActionBlocks.js:1026 -msgid "The Listen block is used to listen for an event such as a mouse click." +#: js/blocks/DictBlocks.js:77 +msgid "show dictionary" msgstr "" -#: js/ActionBlocks.js:1028 -msgid "When the event happens, an action is taken." +#: js/blocks/DictBlocks.js:80 +#: js/blocks/DictBlocks.js:145 +#: js/blocks/DictBlocks.js:216 +#: js/blocks/DictBlocks.js:290 +#: js/blocks/ProgramBlocks.js:396 +#: js/blocks/ProgramBlocks.js:501 +#: js/blocks/ProgramBlocks.js:664 +msgid "My Dictionary" msgstr "" -#: js/ActionBlocks.js:1045 -msgid "on" +#: js/blocks/DictBlocks.js:129 +msgid "The Dictionary block returns a dictionary." msgstr "" -#: js/ActionBlocks.js:1048 -#: js/ActionBlocks.js:1049 -#: js/ActionBlocks.js:1153 -msgid "event" +#: js/blocks/DictBlocks.js:197 +#: js/blocks/DictBlocks.js:339 +msgid "The Get-dict block returns a value in the dictionary for a specified key." msgstr "" -#: js/ActionBlocks.js:1133 -msgid "The Broadcast block is used to trigger an event." +#: js/blocks/DictBlocks.js:212 +#: js/blocks/DictBlocks.js:354 +#.TRANS: retrieve a value from the dictionary with a given key +msgid "get value" msgstr "" -#: js/ActionBlocks.js:1151 -msgid "broadcast" +#: js/blocks/DictBlocks.js:215 +#: js/blocks/DictBlocks.js:216 +#: js/blocks/DictBlocks.js:289 +#: js/blocks/DictBlocks.js:290 +#: js/blocks/DictBlocks.js:357 +#: js/blocks/DictBlocks.js:430 +#: js/blocks/DictBlocks.js:431 +msgid "key2" msgstr "" -#: js/ActionBlocks.js:1208 -msgid "Each Start block is a separate voice." +#: js/blocks/DictBlocks.js:215 +#: js/blocks/DictBlocks.js:216 +#: js/blocks/DictBlocks.js:289 +#: js/blocks/DictBlocks.js:290 +#: js/blocks/DictBlocks.js:357 +#: js/blocks/DictBlocks.js:430 +#: js/blocks/DictBlocks.js:431 +#: js/blocks/IntervalsBlocks.js:1462 +#.TRANS: key, e.g., C in C Major +msgid "key" msgstr "" -#: js/ActionBlocks.js:1304 -msgid "It is often used for storing a phrase of music that is repeated." +#: js/blocks/DictBlocks.js:271 +#: js/blocks/DictBlocks.js:411 +msgid "The Set-dict block sets a value in the dictionary for a specified key." msgstr "" -#: js/ActionBlocks.js:1495 -msgid "define temperament" +#: js/blocks/DictBlocks.js:286 +#: js/blocks/DictBlocks.js:427 +#.TRANS: set a value in the dictionary for a given key +msgid "set value" msgstr "" -#: js/EnsembleBlocks.js:66 +#: js/blocks/EnsembleBlocks.js:66 msgid "mouse index heap" msgstr "" -#: js/EnsembleBlocks.js:68 +#: js/blocks/EnsembleBlocks.js:68 msgid "The Mouse index heap block returns a value in the heap at a specified location for a specified mouse." msgstr "" -#: js/EnsembleBlocks.js:77 -#: js/EnsembleBlocks.js:1080 +#: js/blocks/EnsembleBlocks.js:77 +#: js/blocks/EnsembleBlocks.js:1080 msgid "mouse name" msgstr "" -#: js/EnsembleBlocks.js:77 -#: js/EnsembleBlocks.js:92 -#: js/HeapBlocks.js:544 +#: js/blocks/EnsembleBlocks.js:77 +#: js/blocks/EnsembleBlocks.js:92 +#: js/blocks/HeapBlocks.js:544 #.TRANS: value1 is a numeric value (JAPANESE ONLY) msgid "index" msgstr "" -#: js/EnsembleBlocks.js:80 +#: js/blocks/EnsembleBlocks.js:80 msgid "turtle index heap" msgstr "" -#: js/EnsembleBlocks.js:82 +#: js/blocks/EnsembleBlocks.js:82 msgid "The Turtle index heap block returns a value in the heap at a specified location for a specified turtle." msgstr "" -#: js/EnsembleBlocks.js:90 -#: js/EnsembleBlocks.js:167 -#: js/EnsembleBlocks.js:230 -#: js/EnsembleBlocks.js:316 -#: js/EnsembleBlocks.js:362 -#: js/EnsembleBlocks.js:400 -#: js/EnsembleBlocks.js:454 -#: js/EnsembleBlocks.js:504 -#: js/EnsembleBlocks.js:550 -#: js/EnsembleBlocks.js:597 -#: js/EnsembleBlocks.js:651 -#: js/EnsembleBlocks.js:763 -#: js/EnsembleBlocks.js:854 -#: js/EnsembleBlocks.js:915 -#: js/EnsembleBlocks.js:955 -#: js/EnsembleBlocks.js:1219 -#: js/EnsembleBlocks.js:1293 +#: js/blocks/EnsembleBlocks.js:90 +#: js/blocks/EnsembleBlocks.js:167 +#: js/blocks/EnsembleBlocks.js:230 +#: js/blocks/EnsembleBlocks.js:316 +#: js/blocks/EnsembleBlocks.js:362 +#: js/blocks/EnsembleBlocks.js:400 +#: js/blocks/EnsembleBlocks.js:454 +#: js/blocks/EnsembleBlocks.js:504 +#: js/blocks/EnsembleBlocks.js:550 +#: js/blocks/EnsembleBlocks.js:597 +#: js/blocks/EnsembleBlocks.js:651 +#: js/blocks/EnsembleBlocks.js:763 +#: js/blocks/EnsembleBlocks.js:854 +#: js/blocks/EnsembleBlocks.js:915 +#: js/blocks/EnsembleBlocks.js:955 +#: js/blocks/EnsembleBlocks.js:1219 +#: js/blocks/EnsembleBlocks.js:1293 #.TRANS: Yertle is the name of a turtle. msgid "Yertle" msgstr "" -#: js/EnsembleBlocks.js:92 -#: js/EnsembleBlocks.js:1089 +#: js/blocks/EnsembleBlocks.js:92 +#: js/blocks/EnsembleBlocks.js:1089 msgid "turtle name" msgstr "" -#: js/EnsembleBlocks.js:122 -#: js/EnsembleBlocks.js:1197 -#: js/HeapBlocks.js:474 -#: js/HeapBlocks.js:572 +#: js/blocks/EnsembleBlocks.js:122 +#: js/blocks/EnsembleBlocks.js:1197 +#: js/blocks/HeapBlocks.js:474 +#: js/blocks/HeapBlocks.js:572 msgid "Index must be > 0." msgstr "" -#: js/EnsembleBlocks.js:127 -#: js/HeapBlocks.js:479 -#: js/HeapBlocks.js:577 +#: js/blocks/EnsembleBlocks.js:127 +#: js/blocks/HeapBlocks.js:479 +#: js/blocks/HeapBlocks.js:577 msgid "Maximum heap size is 1000." msgstr "" -#: js/EnsembleBlocks.js:145 +#: js/blocks/EnsembleBlocks.js:145 msgid "stop mouse" msgstr "" -#: js/EnsembleBlocks.js:147 +#: js/blocks/EnsembleBlocks.js:147 msgid "The Stop mouse block stops the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:158 +#: js/blocks/EnsembleBlocks.js:158 msgid "stop turtle" msgstr "" -#: js/EnsembleBlocks.js:160 +#: js/blocks/EnsembleBlocks.js:160 msgid "The Stop turtle block stops the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:184 -#: js/EnsembleBlocks.js:247 -#: js/EnsembleBlocks.js:413 -#: js/EnsembleBlocks.js:468 -#: js/EnsembleBlocks.js:706 -#: js/EnsembleBlocks.js:808 -#: js/EnsembleBlocks.js:870 -#: js/EnsembleBlocks.js:1190 -#: js/EnsembleBlocks.js:1253 +#: js/blocks/EnsembleBlocks.js:184 +#: js/blocks/EnsembleBlocks.js:247 +#: js/blocks/EnsembleBlocks.js:413 +#: js/blocks/EnsembleBlocks.js:468 +#: js/blocks/EnsembleBlocks.js:706 +#: js/blocks/EnsembleBlocks.js:808 +#: js/blocks/EnsembleBlocks.js:870 +#: js/blocks/EnsembleBlocks.js:1190 +#: js/blocks/EnsembleBlocks.js:1253 msgid "Cannot find mouse" msgstr "" -#: js/EnsembleBlocks.js:186 -#: js/EnsembleBlocks.js:249 -#: js/EnsembleBlocks.js:415 -#: js/EnsembleBlocks.js:470 -#: js/EnsembleBlocks.js:708 -#: js/EnsembleBlocks.js:810 -#: js/EnsembleBlocks.js:872 -#: js/EnsembleBlocks.js:1192 -#: js/EnsembleBlocks.js:1255 +#: js/blocks/EnsembleBlocks.js:186 +#: js/blocks/EnsembleBlocks.js:249 +#: js/blocks/EnsembleBlocks.js:415 +#: js/blocks/EnsembleBlocks.js:470 +#: js/blocks/EnsembleBlocks.js:708 +#: js/blocks/EnsembleBlocks.js:810 +#: js/blocks/EnsembleBlocks.js:872 +#: js/blocks/EnsembleBlocks.js:1192 +#: js/blocks/EnsembleBlocks.js:1255 msgid "Cannot find turtle" msgstr "" -#: js/EnsembleBlocks.js:206 +#: js/blocks/EnsembleBlocks.js:206 msgid "start mouse" msgstr "" -#: js/EnsembleBlocks.js:209 +#: js/blocks/EnsembleBlocks.js:209 msgid "The Start mouse block starts the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:220 +#: js/blocks/EnsembleBlocks.js:220 msgid "start turtle" msgstr "" -#: js/EnsembleBlocks.js:223 +#: js/blocks/EnsembleBlocks.js:223 msgid "The Start turtle block starts the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:256 +#: js/blocks/EnsembleBlocks.js:256 msgid "Mouse is already running." msgstr "" -#: js/EnsembleBlocks.js:258 +#: js/blocks/EnsembleBlocks.js:258 msgid "Turtle is already running." msgstr "" -#: js/EnsembleBlocks.js:282 +#: js/blocks/EnsembleBlocks.js:282 msgid "Cannot find start block" msgstr "" -#: js/EnsembleBlocks.js:292 +#: js/blocks/EnsembleBlocks.js:292 #.TRANS: pen color for this mouse msgid "mouse color" msgstr "" -#: js/EnsembleBlocks.js:294 +#: js/blocks/EnsembleBlocks.js:294 msgid "The Mouse color block returns the pen color of the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:306 +#: js/blocks/EnsembleBlocks.js:306 #.TRANS: pen color for this turtle msgid "turtle color" msgstr "" -#: js/EnsembleBlocks.js:308 +#: js/blocks/EnsembleBlocks.js:308 msgid "The Turtle color block returns the pen color of the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:338 +#: js/blocks/EnsembleBlocks.js:338 #.TRANS: heading (compass direction) for this mouse msgid "mouse heading" msgstr "" -#: js/EnsembleBlocks.js:340 +#: js/blocks/EnsembleBlocks.js:340 msgid "The Mouse heading block returns the heading of the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:352 +#: js/blocks/EnsembleBlocks.js:352 #.TRANS: heading (compass direction) for this turtle msgid "turtle heading" msgstr "" -#: js/EnsembleBlocks.js:354 +#: js/blocks/EnsembleBlocks.js:354 msgid "The Turtle heading block returns the heading of the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:384 -#: js/EnsembleBlocks.js:439 +#: js/blocks/EnsembleBlocks.js:384 +#: js/blocks/EnsembleBlocks.js:439 #.TRANS: set xy position for this mouse msgid "set mouse" msgstr "" -#: js/EnsembleBlocks.js:391 -#: js/EnsembleBlocks.js:402 -#: js/BoxesBlocks.js:595 -msgid "name1" -msgstr "" - -#: js/EnsembleBlocks.js:391 -#: js/EnsembleBlocks.js:402 -#: js/ProgramBlocks.js:881 -#: js/GraphicsBlocks.js:235 -#: js/GraphicsBlocks.js:313 -#: js/GraphicsBlocks.js:436 -#: js/GraphicsBlocks.js:487 -#: js/GraphicsBlocks.js:534 -#: js/GraphicsBlocks.js:750 +#: js/blocks/EnsembleBlocks.js:391 +#: js/blocks/EnsembleBlocks.js:402 +#: js/blocks/GraphicsBlocks.js:235 +#: js/blocks/GraphicsBlocks.js:313 +#: js/blocks/GraphicsBlocks.js:436 +#: js/blocks/GraphicsBlocks.js:487 +#: js/blocks/GraphicsBlocks.js:534 +#: js/blocks/GraphicsBlocks.js:750 +#: js/blocks/ProgramBlocks.js:881 msgid "x" msgstr "" -#: js/EnsembleBlocks.js:391 -#: js/EnsembleBlocks.js:402 -#: js/ProgramBlocks.js:881 -#: js/GraphicsBlocks.js:149 -#: js/GraphicsBlocks.js:313 -#: js/GraphicsBlocks.js:436 -#: js/GraphicsBlocks.js:487 -#: js/GraphicsBlocks.js:534 -#: js/GraphicsBlocks.js:750 +#: js/blocks/EnsembleBlocks.js:391 +#: js/blocks/EnsembleBlocks.js:402 +#: js/blocks/GraphicsBlocks.js:149 +#: js/blocks/GraphicsBlocks.js:313 +#: js/blocks/GraphicsBlocks.js:436 +#: js/blocks/GraphicsBlocks.js:487 +#: js/blocks/GraphicsBlocks.js:534 +#: js/blocks/GraphicsBlocks.js:750 +#: js/blocks/ProgramBlocks.js:881 msgid "y" msgstr "" -#: js/EnsembleBlocks.js:395 -#: js/EnsembleBlocks.js:452 +#: js/blocks/EnsembleBlocks.js:395 +#: js/blocks/EnsembleBlocks.js:452 #.TRANS: set xy position for this turtle msgid "set turtle" msgstr "" -#: js/EnsembleBlocks.js:433 +#: js/blocks/EnsembleBlocks.js:433 msgid "The Set mouse block sends a stack of blocks to be run by the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:446 +#: js/blocks/EnsembleBlocks.js:446 msgid "The Set turtle block sends a stack of blocks to be run by the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:480 +#: js/blocks/EnsembleBlocks.js:480 #.TRANS: y position for this mouse msgid "mouse y" msgstr "" -#: js/EnsembleBlocks.js:482 +#: js/blocks/EnsembleBlocks.js:482 msgid "The Y mouse block returns the Y position of the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:494 +#: js/blocks/EnsembleBlocks.js:494 #.TRANS: y position for this turtle msgid "turtle y" msgstr "" -#: js/EnsembleBlocks.js:496 +#: js/blocks/EnsembleBlocks.js:496 msgid "The Y turtle block returns the Y position of the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:526 +#: js/blocks/EnsembleBlocks.js:526 #.TRANS: x position for this mouse msgid "mouse x" msgstr "" -#: js/EnsembleBlocks.js:528 +#: js/blocks/EnsembleBlocks.js:528 msgid "The X mouse block returns the X position of the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:540 +#: js/blocks/EnsembleBlocks.js:540 #.TRANS: x position for this turtle msgid "turtle x" msgstr "" -#: js/EnsembleBlocks.js:542 +#: js/blocks/EnsembleBlocks.js:542 msgid "The X turtle block returns the X position of the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:573 +#: js/blocks/EnsembleBlocks.js:573 #.TRANS: notes played by this mouse msgid "mouse notes played" msgstr "" -#: js/EnsembleBlocks.js:575 +#: js/blocks/EnsembleBlocks.js:575 msgid "The Mouse elapse notes block returns the number of notes played by the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:587 +#: js/blocks/EnsembleBlocks.js:587 #.TRANS: notes played by this turtle msgid "turtle notes played" msgstr "" -#: js/EnsembleBlocks.js:589 +#: js/blocks/EnsembleBlocks.js:589 msgid "The Turtle elapse notes block returns the number of notes played by the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:627 +#: js/blocks/EnsembleBlocks.js:627 #.TRANS: convert current note for this turtle to piano key (1-88) msgid "mouse pitch number" msgstr "" -#: js/EnsembleBlocks.js:629 +#: js/blocks/EnsembleBlocks.js:629 msgid "The Mouse pitch block returns the current pitch number being played by the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:641 +#: js/blocks/EnsembleBlocks.js:641 #.TRANS: convert current note for this turtle to piano key (1-88) msgid "turtle pitch number" msgstr "" -#: js/EnsembleBlocks.js:643 -msgid "The Turrle pitch block returns the current pitch number being played by the specified turtle." +#: js/blocks/EnsembleBlocks.js:643 +msgid "The Turtle pitch block returns the current pitch number being played by the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:747 -#: js/EnsembleBlocks.js:819 +#: js/blocks/EnsembleBlocks.js:747 +#: js/blocks/EnsembleBlocks.js:819 #.TRANS: note value is the duration of the note played by this mouse msgid "mouse note value" msgstr "" -#: js/EnsembleBlocks.js:757 +#: js/blocks/EnsembleBlocks.js:757 #.TRANS: note value is the duration of the note played by this turtle msgid "turtle note value" msgstr "" -#: js/EnsembleBlocks.js:830 +#: js/blocks/EnsembleBlocks.js:830 #.TRANS: sync is short for synchronization msgid "mouse sync" msgstr "" -#: js/EnsembleBlocks.js:832 +#: js/blocks/EnsembleBlocks.js:832 msgid "The Mouse sync block aligns the beat count between mice." msgstr "" -#: js/EnsembleBlocks.js:844 +#: js/blocks/EnsembleBlocks.js:844 #.TRANS: sync is short for synchronization msgid "turtle sync" msgstr "" -#: js/EnsembleBlocks.js:846 +#: js/blocks/EnsembleBlocks.js:846 msgid "The Turtle sync block aligns the beat count between turtles." msgstr "" -#: js/EnsembleBlocks.js:887 +#: js/blocks/EnsembleBlocks.js:887 msgid "The Found mouse block will return true if the specified mouse can be found." msgstr "" -#: js/EnsembleBlocks.js:893 +#: js/blocks/EnsembleBlocks.js:893 msgid "found mouse" msgstr "" -#: js/EnsembleBlocks.js:903 +#: js/blocks/EnsembleBlocks.js:903 msgid "The Found turtle block will return true if the specified turtle can be found." msgstr "" -#: js/EnsembleBlocks.js:909 +#: js/blocks/EnsembleBlocks.js:909 msgid "found turtle" msgstr "" -#: js/EnsembleBlocks.js:932 +#: js/blocks/EnsembleBlocks.js:932 msgid "new mouse" msgstr "" -#: js/EnsembleBlocks.js:934 +#: js/blocks/EnsembleBlocks.js:934 msgid "The New mouse block will create a new mouse." msgstr "" -#: js/EnsembleBlocks.js:945 +#: js/blocks/EnsembleBlocks.js:945 msgid "new turtle" msgstr "" -#: js/EnsembleBlocks.js:947 +#: js/blocks/EnsembleBlocks.js:947 msgid "The New turtle block will create a new turtle." msgstr "" -#: js/EnsembleBlocks.js:1011 +#: js/blocks/EnsembleBlocks.js:1011 msgid "set mouse color" msgstr "" -#: js/EnsembleBlocks.js:1014 +#: js/blocks/EnsembleBlocks.js:1014 msgid "The Set-mouse-color block is used to set the color of a mouse." msgstr "" -#: js/EnsembleBlocks.js:1020 +#: js/blocks/EnsembleBlocks.js:1020 msgid "set turtle color" msgstr "" -#: js/EnsembleBlocks.js:1023 +#: js/blocks/EnsembleBlocks.js:1023 msgid "The Set-turtle-color block is used to set the color of a turtle." msgstr "" -#: js/EnsembleBlocks.js:1083 +#: js/blocks/EnsembleBlocks.js:1083 msgid "The Mouse-name block returns the name of a mouse." msgstr "" -#: js/EnsembleBlocks.js:1092 +#: js/blocks/EnsembleBlocks.js:1092 msgid "The Turtle-name block returns the name of a turtle." msgstr "" -#: js/EnsembleBlocks.js:1115 +#: js/blocks/EnsembleBlocks.js:1115 msgid "mouse count" msgstr "" -#: js/EnsembleBlocks.js:1118 +#: js/blocks/EnsembleBlocks.js:1118 msgid "The Mouse-count block returns the number of mice." msgstr "" -#: js/EnsembleBlocks.js:1124 +#: js/blocks/EnsembleBlocks.js:1124 msgid "turtle count" msgstr "" -#: js/EnsembleBlocks.js:1127 +#: js/blocks/EnsembleBlocks.js:1127 msgid "The Turtle-count block returns the number of turtles." msgstr "" -#: js/EnsembleBlocks.js:1149 +#: js/blocks/EnsembleBlocks.js:1149 msgid "nth mouse name" msgstr "" -#: js/EnsembleBlocks.js:1152 +#: js/blocks/EnsembleBlocks.js:1152 msgid "The Nth-Mouse name block returns the name of the nth mouse." msgstr "" -#: js/EnsembleBlocks.js:1158 +#: js/blocks/EnsembleBlocks.js:1158 msgid "nth turtle name" msgstr "" -#: js/EnsembleBlocks.js:1161 +#: js/blocks/EnsembleBlocks.js:1161 msgid "The Nth-Turtle name block returns the name of the nth turtle." msgstr "" -#: js/EnsembleBlocks.js:1205 -#: js/EnsembleBlocks.js:1265 +#: js/blocks/EnsembleBlocks.js:1205 +#: js/blocks/EnsembleBlocks.js:1265 msgid "set name" msgstr "" -#: js/EnsembleBlocks.js:1214 -#: js/EnsembleBlocks.js:1221 +#: js/blocks/EnsembleBlocks.js:1214 +#: js/blocks/EnsembleBlocks.js:1221 msgid "source" msgstr "" -#: js/EnsembleBlocks.js:1214 -#: js/EnsembleBlocks.js:1221 +#: js/blocks/EnsembleBlocks.js:1214 +#: js/blocks/EnsembleBlocks.js:1221 msgid "target" msgstr "" -#: js/EnsembleBlocks.js:1271 +#: js/blocks/EnsembleBlocks.js:1271 msgid "The Set-name block is used to name a mouse." msgstr "" -#: js/EnsembleBlocks.js:1284 +#: js/blocks/EnsembleBlocks.js:1284 msgid "The Set-name block is used to name a turtle." msgstr "" -#: js/BooleanBlocks.js:44 -msgid "The Not block is the logical not operator." -msgstr "" - -#: js/BooleanBlocks.js:62 -msgid "not" -msgstr "" - -#: js/BooleanBlocks.js:134 -msgid "The And block is the logical and operator." -msgstr "" - -#: js/BooleanBlocks.js:152 -msgid "and" -msgstr "" - -#: js/BooleanBlocks.js:218 -msgid "The Or block is the logical or operator." -msgstr "" - -#: js/BooleanBlocks.js:236 -msgid "or" -msgstr "" - -#: js/BooleanBlocks.js:302 -msgid "The XOR block is the logical XOR operator." -msgstr "" - -#: js/BooleanBlocks.js:320 -msgid "xor" -msgstr "" - -#: js/BooleanBlocks.js:808 -msgid "The Equal block returns True if the two numbers are equal." -msgstr "" - -#: js/BooleanBlocks.js:909 -msgid "The Not-equal-to block returns True if the two numbers are not equal to each other." -msgstr "" - -#: js/BooleanBlocks.js:1008 -msgid "The Boolean block is used to specify true or false." -msgstr "" - -#: js/MediaBlocks.js:35 -#.TRANS: right side of the screen -msgid "right (screen)" -msgstr "" - -#: js/MediaBlocks.js:45 -#: js/MediaBlocks.js:56 -msgid "The Right block returns the position of the right of the canvas." -msgstr "" - -#: js/MediaBlocks.js:97 -#.TRANS: left side of the screen -msgid "left (screen)" -msgstr "" - -#: js/MediaBlocks.js:107 -#: js/MediaBlocks.js:118 -msgid "The Left block returns the position of the left of the canvas." -msgstr "" - -#: js/MediaBlocks.js:158 -msgid "top (screen)" -msgstr "" - -#: js/MediaBlocks.js:168 -#: js/MediaBlocks.js:179 -msgid "The Top block returns the position of the top of the canvas." -msgstr "" - -#: js/MediaBlocks.js:219 -msgid "bottom (screen)" +#: js/blocks/ExtrasBlocks.js:33 +msgid "fraction" msgstr "" -#: js/MediaBlocks.js:229 -#: js/MediaBlocks.js:240 -msgid "The Bottom block returns the position of the bottom of the canvas." +#: js/blocks/ExtrasBlocks.js:36 +msgid "Convert a float to a fraction" msgstr "" -#: js/MediaBlocks.js:282 -msgid "width" +#: js/blocks/ExtrasBlocks.js:93 +msgid "save as ABC" msgstr "" -#: js/MediaBlocks.js:291 -msgid "The Width block returns the width of the canvas." +#: js/blocks/ExtrasBlocks.js:96 +#: js/blocks/ExtrasBlocks.js:132 +#: js/blocks/ExtrasBlocks.js:168 +msgid "title" msgstr "" -#: js/MediaBlocks.js:325 -msgid "height" +#: js/blocks/ExtrasBlocks.js:129 +msgid "save as Lilypond" msgstr "" -#: js/MediaBlocks.js:334 -msgid "The Height block returns the height of the canvas." +#: js/blocks/ExtrasBlocks.js:165 +msgid "save as SVG" msgstr "" -#: js/MediaBlocks.js:369 -#.TRANS: stops playback of an audio recording -msgid "stop play" +#: js/blocks/ExtrasBlocks.js:216 +msgid "no background" msgstr "" -#: js/MediaBlocks.js:404 -#.TRANS: Erases the images and text -msgid "erase media" +#: js/blocks/ExtrasBlocks.js:219 +msgid "The No background block eliminates the background from the saved SVG output." msgstr "" -#: js/MediaBlocks.js:409 -msgid "The Erase Media block erases text and images." +#: js/blocks/ExtrasBlocks.js:247 +msgid "show blocks" msgstr "" -#: js/MediaBlocks.js:439 -#.TRANS: play an audio recording -msgid "play back" +#: js/blocks/ExtrasBlocks.js:249 +msgid "The Show blocks block shows the blocks." msgstr "" -#: js/MediaBlocks.js:487 -msgid "speak" +#: js/blocks/ExtrasBlocks.js:274 +msgid "hide blocks" msgstr "" -#: js/MediaBlocks.js:495 -msgid "The Speak block outputs to the text-to-speech synthesizer" +#: js/blocks/ExtrasBlocks.js:276 +msgid "The Hide blocks block hides the blocks." msgstr "" -#: js/MediaBlocks.js:546 -msgid "camera" +#: js/blocks/ExtrasBlocks.js:305 +#: js/blocks/ExtrasBlocks.js:338 +msgid "The Space block is used to add space between blocks." msgstr "" -#: js/MediaBlocks.js:551 -msgid "The Camera block connects a webcam to the Show block." +#: js/blocks/ExtrasBlocks.js:376 +msgid "wait" msgstr "" -#: js/MediaBlocks.js:574 -msgid "video" +#: js/blocks/ExtrasBlocks.js:379 +msgid "The Wait block pauses the program for a specified number of seconds." msgstr "" -#: js/MediaBlocks.js:579 -msgid "The Video block selects video for use with the Show block." +#: js/blocks/ExtrasBlocks.js:433 +#: plugins/facebook.rtp:30 +msgid "comment" msgstr "" -#: js/MediaBlocks.js:607 -msgid "The Open file block opens a file for use with the Show block." +#: js/blocks/ExtrasBlocks.js:469 +msgid "print" msgstr "" -#: js/MediaBlocks.js:645 -msgid "stop media" +#: js/blocks/ExtrasBlocks.js:476 +msgid "The Print block displays text at the top of the screen." msgstr "" -#: js/MediaBlocks.js:650 -msgid "The Stop media block stops audio or video playback." +#: js/blocks/ExtrasBlocks.js:582 +msgid "display grid" msgstr "" -#: js/MediaBlocks.js:679 -#: js/PitchBlocks.js:1539 -#: js/phrasemaker.js:822 -#: js/musickeyboard.js:1654 -#.TRANS: a measure of frequency: one cycle per second -msgid "hertz" +#: js/blocks/ExtrasBlocks.js:587 +msgid "The Display Grid Block changes the grid type" msgstr "" -#: js/MediaBlocks.js:692 -msgid "duration (ms)" +#: js/blocks/ExtrasBlocks.js:689 +#: js/blocks/ExtrasBlocks.js:708 +#: js/blocks/ExtrasBlocks.js:731 +#: js/blocks/ExtrasBlocks.js:754 +#: js/blocks/ExtrasBlocks.js:772 +#: js/blocks/ExtrasBlocks.js:791 +#: js/blocks/ExtrasBlocks.js:810 +#: js/blocks/ExtrasBlocks.js:829 +msgid "unknown" msgstr "" -#: js/MediaBlocks.js:728 -#.TRANS: translate a note into hertz, e.g., A4 -> 440HZ -msgid "note to frequency" +#: js/blocks/FlowBlocks.js:41 +msgid "The Backward block runs code in reverse order (Musical retrograde)." msgstr "" -#: js/MediaBlocks.js:736 -msgid "The To frequency block converts a pitch name and octave to Hertz." +#: js/blocks/FlowBlocks.js:48 +msgid "backward" msgstr "" -#: js/MediaBlocks.js:746 -#: js/PitchBlocks.js:656 -#: js/PitchBlocks.js:932 -#: js/PitchBlocks.js:1827 -#.TRANS: name2 is name as in name of pitch (JAPANESE ONLY) -msgid "name2" +#: js/blocks/FlowBlocks.js:124 +msgid "The Duplicate block will run each block multiple times." msgstr "" -#: js/MediaBlocks.js:812 -msgid "The Avatar block is used to change the appearance of the mouse." +#: js/blocks/FlowBlocks.js:136 +msgid "duplicate" msgstr "" -#: js/MediaBlocks.js:819 -msgid "The Avatar block is used to change the appearance of the turtle." +#: js/blocks/FlowBlocks.js:334 +msgid "The Default block is used inside of a Switch to define the default action." msgstr "" -#: js/MediaBlocks.js:831 -#: js/MediaBlocks.js:891 -#.TRANS: a media object -msgid "size" +#: js/blocks/FlowBlocks.js:342 +msgid "default" msgstr "" -#: js/MediaBlocks.js:831 -msgid "image" +#: js/blocks/FlowBlocks.js:361 +#: js/blocks/FlowBlocks.js:418 +msgid "The Case Block must be used inside of a Switch Block." msgstr "" -#: js/MediaBlocks.js:880 -msgid "The Show block is used to display text or images on the canvas." +#: js/blocks/FlowBlocks.js:389 +msgid "The Case block is used inside of a Switch to define matches." msgstr "" -#: js/MediaBlocks.js:888 -#.TRANS: show1 is show as in display an image or text on the screen. -msgid "show1" +#: js/blocks/FlowBlocks.js:397 +msgid "case" msgstr "" -#: js/MediaBlocks.js:891 -msgid "obj" +#: js/blocks/FlowBlocks.js:446 +msgid "The Switch block will run the code in the matching Case." msgstr "" -#: js/MediaBlocks.js:938 -msgid "The Media block is used to import an image." +#: js/blocks/FlowBlocks.js:454 +msgid "switch" msgstr "" -#: js/MediaBlocks.js:973 -msgid "The Text block holds a text string." +#: js/blocks/FlowBlocks.js:595 +msgid "The Stop block will stop a loop" msgstr "" -#: js/ProgramBlocks.js:33 -msgid "The Load-heap-from-app block loads the heap from a web page." +#: js/blocks/FlowBlocks.js:597 +msgid "Forever, Repeat, While, or Until." msgstr "" -#: js/ProgramBlocks.js:44 -#.TRANS: load the heap contents from a URL -msgid "load heap from App" +#: js/blocks/FlowBlocks.js:604 +#: js/widgets/timbre.js:417 +#: js/widgets/timbre.js:419 +#: js/widgets/musickeyboard.js:819 +#: js/widgets/musickeyboard.js:821 +#: js/widgets/phrasemaker.js:4202 +#: plugins/rodi.rtp:29 +#: plugins/rodi.rtp:73 +#: plugins/rodi.rtp:413 +msgid "stop" msgstr "" -#: js/ProgramBlocks.js:95 -msgid "Error parsing JSON data:" +#: js/blocks/FlowBlocks.js:653 +msgid "The Waitfor block will wait until the condition is true." msgstr "" -#: js/ProgramBlocks.js:100 -msgid "404: Page not found" +#: js/blocks/FlowBlocks.js:661 +msgid "wait for" msgstr "" -#: js/ProgramBlocks.js:133 -msgid "The Save-heap-to-app block saves the heap to a web page." +#: js/blocks/FlowBlocks.js:732 +msgid "The Until block will repeat until the condition is true." msgstr "" -#: js/ProgramBlocks.js:144 -#.TRANS: save the heap contents to a URL -msgid "save heap to App" +#: js/blocks/FlowBlocks.js:740 +msgid "until" msgstr "" -#: js/ProgramBlocks.js:189 -msgid "Cannot find a valid heap for" +#: js/blocks/FlowBlocks.js:742 +#: js/blocks/FlowBlocks.js:822 +msgid "do2" msgstr "" -#: js/ProgramBlocks.js:206 -msgid "The Load-heap block loads the heap from a file." +#: js/blocks/FlowBlocks.js:812 +msgid "The While block will repeat while the condition is true." msgstr "" -#: js/ProgramBlocks.js:217 -#.TRANS: load the heap from a file -msgid "load heap" +#: js/blocks/FlowBlocks.js:820 +msgid "while" msgstr "" -#: js/ProgramBlocks.js:270 -msgid "The file you selected does not contain a valid heap." +#: js/blocks/FlowBlocks.js:903 +#: js/blocks/FlowBlocks.js:968 +#: js/blocks/FlowBlocks.js:979 +msgid "In this example if the mouse button is pressed a snare drum will play." msgstr "" -#: js/ProgramBlocks.js:275 -msgid "The loadHeap block needs a loadFile block." +#: js/blocks/FlowBlocks.js:925 +#: js/blocks/FlowBlocks.js:988 +msgid "if" msgstr "" -#: js/ProgramBlocks.js:291 -msgid "The Set-heap block loads the heap." +#: js/blocks/FlowBlocks.js:927 +#: js/blocks/FlowBlocks.js:990 +msgid "then" msgstr "" -#: js/ProgramBlocks.js:299 -#: js/HeapBlocks.js:539 -#.TRANS: load the heap from a JSON encoding -msgid "set heap" +#: js/blocks/FlowBlocks.js:927 +msgid "else" msgstr "" -#: js/ProgramBlocks.js:340 -msgid "The block you selected does not contain a valid heap." +#: js/blocks/FlowBlocks.js:1025 +msgid "The Forever block will repeat the contained blocks forever." msgstr "" -#: js/ProgramBlocks.js:343 -msgid "The Set heap block needs a heap." +#: js/blocks/FlowBlocks.js:1037 +msgid "forever" msgstr "" -#: js/ProgramBlocks.js:360 -msgid "The Load-dictionary block loads a dictionary from a file." +#: js/blocks/FlowBlocks.js:1073 +msgid "The Repeat block will repeat the contained blocks." msgstr "" -#: js/ProgramBlocks.js:372 -#.TRANS: load a dictionary from a file -msgid "load dictionary" +#: js/blocks/FlowBlocks.js:1075 +msgid "In this example the note will be played 4 times." msgstr "" -#: js/ProgramBlocks.js:390 -#: js/ProgramBlocks.js:658 -#: js/ToneBlocks.js:1025 -msgid "file" +#: js/blocks/FlowBlocks.js:1083 +msgid "repeat" msgstr "" -#: js/ProgramBlocks.js:396 -#: js/ProgramBlocks.js:501 -#: js/ProgramBlocks.js:664 -#: js/DictBlocks.js:80 -#: js/DictBlocks.js:145 -#: js/DictBlocks.js:216 -#: js/DictBlocks.js:290 -msgid "My Dictionary" +#: js/blocks/FlowBlocks.js:1123 +msgid "duplicate factor" msgstr "" -#: js/ProgramBlocks.js:444 -msgid "The file you selected does not contain a valid dictionary." +#: js/blocks/HeapBlocks.js:49 +msgid "The Heap block returns the heap." msgstr "" -#: js/ProgramBlocks.js:449 -msgid "The load dictionary block needs a load file block." +#: js/blocks/HeapBlocks.js:133 +msgid "show heap" msgstr "" -#: js/ProgramBlocks.js:466 -msgid "The Set-dictionary block loads a dictionary." +#: js/blocks/HeapBlocks.js:181 +msgid "The Heap-length block returns the length of the heap." msgstr "" -#: js/ProgramBlocks.js:477 -#.TRANS: load a dictionary from a JSON -msgid "set dictionary" +#: js/blocks/HeapBlocks.js:195 +msgid "heap length" msgstr "" -#: js/ProgramBlocks.js:546 -msgid "The block you selected does not contain a valid dictionary." +#: js/blocks/HeapBlocks.js:254 +msgid "The Heap-empty? block returns true if the heap is empty." msgstr "" -#: js/ProgramBlocks.js:550 -msgid "The set dictionary block needs a dictionary." +#: js/blocks/HeapBlocks.js:268 +#.TRANS: Is the heap empty? +msgid "heap empty?" msgstr "" -#: js/ProgramBlocks.js:567 -msgid "The Save-heap block saves the heap to a file." +#: js/blocks/HeapBlocks.js:317 +msgid "The Empty-heap block empties the heap." msgstr "" -#: js/ProgramBlocks.js:578 -#.TRANS: save the heap to a file -msgid "save heap" +#: js/blocks/HeapBlocks.js:327 +#: js/blocks/HeapBlocks.js:647 +#.TRANS: empty the heap +msgid "empty heap" msgstr "" -#: js/ProgramBlocks.js:629 -msgid "The Save-dictionary block saves a dictionary to a file." +#: js/blocks/HeapBlocks.js:371 +msgid "The Reverse-heap block reverses the order of the heap." msgstr "" -#: js/ProgramBlocks.js:640 -#.TRANS: save a dictionary to a file -msgid "save dictionary" +#: js/blocks/HeapBlocks.js:384 +#.TRANS: reverse the order of the heap +msgid "reverse heap" msgstr "" -#: js/ProgramBlocks.js:720 -msgid "The Open palette block opens a palette." +#: js/blocks/HeapBlocks.js:428 +msgid "The Index-heap block returns a value in the heap at a specified location." msgstr "" -#: js/ProgramBlocks.js:727 -msgid "open palette" +#: js/blocks/HeapBlocks.js:443 +#.TRANS: retrieve a value from the heap at index position in the heap +msgid "index heap" msgstr "" -#: js/ProgramBlocks.js:785 -msgid "The Delete block block removes a block." +#: js/blocks/HeapBlocks.js:523 +msgid "The Set-heap entry block sets a value in he heap at the specified location." msgstr "" -#: js/ProgramBlocks.js:797 -#.TRANS: Move this block to the trash. -msgid "delete block" +#: js/blocks/HeapBlocks.js:539 +#: js/blocks/ProgramBlocks.js:299 +#.TRANS: load the heap from a JSON encoding +msgid "set heap" msgstr "" -#: js/ProgramBlocks.js:861 -msgid "The Move block block moves a block." +#: js/blocks/HeapBlocks.js:619 +msgid "The Pop block removes the value at the top of the heap." msgstr "" -#: js/ProgramBlocks.js:869 -#.TRANS: Move the position of a block on the screen. -msgid "move block" +#: js/blocks/HeapBlocks.js:633 +#.TRANS: pop a value off the top of the heap +msgid "pop" msgstr "" -#: js/ProgramBlocks.js:881 -#: js/ProgramBlocks.js:1048 -msgid "block number" +#: js/blocks/HeapBlocks.js:680 +msgid "The Push block adds a value to the top of the heap." msgstr "" -#: js/ProgramBlocks.js:935 -#.TRANS: Run program beginning at this block. -msgid "run block" +#: js/blocks/HeapBlocks.js:696 +#.TRANS: push a value onto the top of the heap +msgid "push" msgstr "" -#: js/ProgramBlocks.js:1025 -msgid "The Dock block block connections two blocks." +#: js/blocks/IntervalsBlocks.js:45 +msgid "set temperament" msgstr "" -#: js/ProgramBlocks.js:1036 -#.TRANS: We can connect a block to another block. -msgid "connect blocks" +#: js/blocks/IntervalsBlocks.js:63 +#: js/blocks/MediaBlocks.js:746 +#: js/blocks/PitchBlocks.js:657 +#: js/blocks/PitchBlocks.js:935 +#: js/blocks/PitchBlocks.js:974 +#: js/blocks/PitchBlocks.js:1007 +#: js/blocks/PitchBlocks.js:1194 +#: js/blocks/PitchBlocks.js:1717 +#: js/blocks/PitchBlocks.js:1758 +#: js/blocks/PitchBlocks.js:1866 +#: js/blocks/ToneBlocks.js:1025 +#: js/turtleactions/IntervalsActions.js:114 +#.TRANS: adjusts the shift up or down by one octave (twelve half-steps in the interval between two notes, one having twice or half the frequency in Hz of the other.) +msgid "octave" msgstr "" -#: js/ProgramBlocks.js:1048 -msgid "target block" +#: js/blocks/IntervalsBlocks.js:99 +msgid "The Temperament name block is used to select a tuning method." msgstr "" -#: js/ProgramBlocks.js:1048 -msgid "connection number" +#: js/blocks/IntervalsBlocks.js:161 +msgid "doubly" msgstr "" -#: js/ProgramBlocks.js:1140 -msgid "The Make block block creates a new block." +#: js/blocks/IntervalsBlocks.js:166 +msgid "The Doubly block will double the size of an interval." msgstr "" -#: js/ProgramBlocks.js:1152 -#.TRANS: Create a new block -msgid "make block" +#: js/blocks/IntervalsBlocks.js:262 +msgid "interval number" msgstr "" -#: js/ProgramBlocks.js:1186 -#: js/ProgramBlocks.js:1227 -#: js/RhythmBlocks.js:1128 -#: js/PitchBlocks.js:972 -#: js/PitchBlocks.js:1005 -#: js/temperament.js:340 -#: js/temperament.js:362 -#: js/temperament.js:372 -#: js/temperament.js:484 -#: js/status.js:190 -#: plugins/rodi.rtp:192 -#.TRANS: a musical note consisting of pitch and duration -msgid "note" +#: js/blocks/IntervalsBlocks.js:317 +msgid "current interval" msgstr "" -#: js/ProgramBlocks.js:1285 -msgid "Cannot find block" +#: js/blocks/IntervalsBlocks.js:387 +#.TRANS: measure the distance between two pitches in semi-tones +msgid "semi-tone interval measure" msgstr "" -#: js/ProgramBlocks.js:1304 -#: js/ProgramBlocks.js:1313 -msgid "Warning: block argument type mismatch" +#: js/blocks/IntervalsBlocks.js:454 +#: js/blocks/IntervalsBlocks.js:570 +msgid "You must use two pitch blocks when measuring an interval." msgstr "" -#: js/ProgramBlocks.js:1347 -msgid "The Open project block is used to open a project from a web page." +#: js/blocks/IntervalsBlocks.js:496 +msgid "The Scalar interval block measures the distance between two notes in the current key and mode." msgstr "" -#: js/ProgramBlocks.js:1357 -msgid "open project" +#: js/blocks/IntervalsBlocks.js:502 +#.TRANS: measure the distance between two pitches in steps of musical scale +msgid "scalar interval measure" msgstr "" -#: js/ProgramBlocks.js:1410 -msgid "Please enter a valid URL." +#: js/blocks/IntervalsBlocks.js:678 +msgid "In the figure, we add sol# to sol." msgstr "" -#: js/DrumBlocks.js:59 -msgid "The Noise name block is used to select a noise synthesizer." +#: js/blocks/IntervalsBlocks.js:684 +#: js/blocks/OrnamentBlocks.js:220 +#.TRANS: calculate a relative step between notes based on semi-tones +msgid "semi-tone interval" msgstr "" -#: js/DrumBlocks.js:102 -msgid "The Drum name block is used to select a drum." +#: js/blocks/IntervalsBlocks.js:733 +msgid "The output of the example is: do, mi, sol, sol, ti, mi" msgstr "" -#: js/DrumBlocks.js:146 -msgid "The Effects name block is used to select a sound effect." +#: js/blocks/IntervalsBlocks.js:740 +#: js/blocks/WidgetBlocks.js:768 +msgid "arpeggio" msgstr "" -#: js/DrumBlocks.js:163 -msgid "noise" +#: js/blocks/IntervalsBlocks.js:931 +msgid "The Chord block calculates common chords." msgstr "" -#: js/DrumBlocks.js:177 -msgid "The Play noise block will generate white, pink, or brown noise." +#: js/blocks/IntervalsBlocks.js:933 +msgid "In the figure, we generate a C-major chord." msgstr "" -#: js/DrumBlocks.js:191 -#: js/musicutils.js:752 -#: js/synthutils.js:47 -#.TRANS: white noise synthesizer -msgid "white noise" +#: js/blocks/IntervalsBlocks.js:938 +msgid "chord" msgstr "" -#: js/DrumBlocks.js:326 -msgid "Replace every instance of a pitch with a drum sound." +#: js/blocks/IntervalsBlocks.js:990 +msgid "The Ratio Interval block calculates an interval based on a ratio." msgstr "" -#: js/DrumBlocks.js:337 -#.TRANS: map a pitch to a drum sound -msgid "map pitch to drum" +#: js/blocks/IntervalsBlocks.js:995 +msgid "ratio interval" msgstr "" -#: js/DrumBlocks.js:404 -msgid "In the example above, a kick drum sound will be played instead of sol." +#: js/blocks/IntervalsBlocks.js:1064 +msgid "In the figure, we add la to sol." msgstr "" -#: js/DrumBlocks.js:416 -#.TRANS: set the current drum sound for playback -msgid "set drum" +#: js/blocks/IntervalsBlocks.js:1120 +#.TRANS: define a custom mode +msgid "define mode" msgstr "" -#: js/DrumBlocks.js:460 -msgid "sound effect" +#: js/blocks/IntervalsBlocks.js:1173 +msgid "movable Do" msgstr "" -#: js/DrumBlocks.js:498 -msgid "You can use multiple Drum blocks within a Note block." +#: js/blocks/IntervalsBlocks.js:1224 +#.TRANS: mode length is the number of notes in the mode, e.g., 7 for major and minor scales; 12 for chromatic scales +msgid "mode length" msgstr "" -#: js/RhythmBlocks.js:182 -#: js/RhythmBlocks.js:1086 -#: js/RhythmBlocks.js:1162 -msgid "Note value must be greater than 0." +#: js/blocks/IntervalsBlocks.js:1233 +msgid "The Mode length block is the number of notes in the current scale." msgstr "" -#: js/RhythmBlocks.js:215 -#: js/RhythmBlocks.js:278 -#: js/RhythmBlocks.js:350 -#.TRANS: swing is a rhythmic variation that emphasises the offbeat -msgid "swing" +#: js/blocks/IntervalsBlocks.js:1235 +msgid "Most Western scales have 7 notes." msgstr "" -#: js/RhythmBlocks.js:355 -#.TRANS: the amount to shift to the offbeat note -msgid "swing value" +#: js/blocks/IntervalsBlocks.js:1284 +#.TRANS: the mode in music is 'major', 'minor', etc. +msgid "current mode" msgstr "" -#: js/RhythmBlocks.js:419 -msgid "The Skip notes block will cause notes to be skipped." +#: js/blocks/IntervalsBlocks.js:1337 +#.TRANS: the key is a group of pitches with which a music composition is created +msgid "current key" msgstr "" -#: js/RhythmBlocks.js:427 -#.TRANS: substitute rests on notes being skipped -msgid "skip notes" +#: js/blocks/IntervalsBlocks.js:1389 +#: js/blocks/IntervalsBlocks.js:1434 +#.TRANS: set the key and mode, e.g. C Major +msgid "set key" msgstr "" -#: js/RhythmBlocks.js:489 -#.TRANS: speed up note duration by some factor, e.g. convert 1/4 to 1/8 notes by using a factor of 2 -msgid "multiply note value" +#: js/blocks/IntervalsBlocks.js:1443 +#: js/blocks/IntervalsBlocks.js:1449 +msgid "The Set key block is used to set the key and mode," msgstr "" -#: js/RhythmBlocks.js:542 -msgid "The Tie block works on pairs of notes, combining them into one note." +#: js/blocks/IntervalsBlocks.js:1449 +msgid "eg C Major" msgstr "" -#: js/RhythmBlocks.js:550 -#.TRANS: tie notes together into one longer note -msgid "tie" +#: js/blocks/MediaBlocks.js:35 +#.TRANS: right side of the screen +msgid "right (screen)" msgstr "" -#: js/RhythmBlocks.js:591 -#: js/RhythmBlocks.js:671 -#.TRANS: a dotted note is played for 1.5x its value, e.g., 1/8. --> 3/16 -msgid "dot" +#: js/blocks/MediaBlocks.js:45 +#: js/blocks/MediaBlocks.js:56 +msgid "The Right block returns the position of the right of the canvas." msgstr "" -#: js/RhythmBlocks.js:619 -#: js/RhythmActions.js:221 -msgid "An argument of -1 results in a note value of 0." +#: js/blocks/MediaBlocks.js:97 +#.TRANS: left side of the screen +msgid "left (screen)" msgstr "" -#: js/RhythmBlocks.js:661 -msgid "The Dot block extends the duration of a note by 50%." +#: js/blocks/MediaBlocks.js:107 +#: js/blocks/MediaBlocks.js:118 +msgid "The Left block returns the position of the left of the canvas." msgstr "" -#: js/RhythmBlocks.js:663 -msgid "Eg a dotted quarter note will play for 3/8 (1/4 + 1/8) of a beat." +#: js/blocks/MediaBlocks.js:158 +msgid "top (screen)" msgstr "" -#: js/RhythmBlocks.js:765 -#.TRANS: Japanese only: note value block for drum -msgid "note value drum" +#: js/blocks/MediaBlocks.js:168 +#: js/blocks/MediaBlocks.js:179 +msgid "The Top block returns the position of the top of the canvas." msgstr "" -#: js/RhythmBlocks.js:829 -msgid "392 hertz" +#: js/blocks/MediaBlocks.js:219 +msgid "bottom (screen)" msgstr "" -#: js/RhythmBlocks.js:1119 -msgid "The Note block is a container for one or more Pitch blocks." +#: js/blocks/MediaBlocks.js:229 +#: js/blocks/MediaBlocks.js:240 +msgid "The Bottom block returns the position of the bottom of the canvas." msgstr "" -#: js/RhythmBlocks.js:1121 -msgid "The Note block specifies the duration (note value) of its contents." +#: js/blocks/MediaBlocks.js:282 +msgid "width" msgstr "" -#: js/RhythmBlocks.js:1130 -msgid "value2" +#: js/blocks/MediaBlocks.js:291 +msgid "The Width block returns the width of the canvas." msgstr "" -#: js/RhythmBlocks.js:1200 -msgid "define frequency" +#: js/blocks/MediaBlocks.js:325 +msgid "height" msgstr "" -#: js/RhythmBlocks.js:1218 -#: js/temperament.js:650 -#: js/temperament.js:1421 -msgid "octave space" +#: js/blocks/MediaBlocks.js:334 +msgid "The Height block returns the height of the canvas." msgstr "" -#: js/NumberBlocks.js:28 -msgid "The Int block returns an integer." +#: js/blocks/MediaBlocks.js:369 +#.TRANS: stops playback of an audio recording +msgid "stop play" msgstr "" -#: js/NumberBlocks.js:34 -msgid "int" +#: js/blocks/MediaBlocks.js:404 +#.TRANS: Erases the images and text +msgid "erase media" msgstr "" -#: js/NumberBlocks.js:73 -msgid "The Mod block returns the remainder from a division." +#: js/blocks/MediaBlocks.js:409 +msgid "The Erase Media block erases text and images." msgstr "" -#: js/NumberBlocks.js:79 -msgid "mod" +#: js/blocks/MediaBlocks.js:439 +#.TRANS: play an audio recording +msgid "play back" msgstr "" -#: js/NumberBlocks.js:123 -msgid "The Power block calculates a power function." +#: js/blocks/MediaBlocks.js:487 +msgid "speak" msgstr "" -#: js/NumberBlocks.js:178 -msgid "The Sqrt block returns the square root." +#: js/blocks/MediaBlocks.js:495 +msgid "The Speak block outputs to the text-to-speech synthesizer" msgstr "" -#: js/NumberBlocks.js:184 -msgid "sqrt" +#: js/blocks/MediaBlocks.js:546 +msgid "camera" msgstr "" -#: js/NumberBlocks.js:230 -msgid "The Abs block returns the absolute value." +#: js/blocks/MediaBlocks.js:551 +msgid "The Camera block connects a webcam to the Show block." msgstr "" -#: js/NumberBlocks.js:236 -msgid "abs" +#: js/blocks/MediaBlocks.js:574 +msgid "video" msgstr "" -#: js/NumberBlocks.js:277 -msgid "The Distance block returns the distance between two points. For example, between the mouse and the center of the screen." +#: js/blocks/MediaBlocks.js:579 +msgid "The Video block selects video for use with the Show block." msgstr "" -#: js/NumberBlocks.js:283 -#: plugins/rodi.rtp:310 -msgid "distance" +#: js/blocks/MediaBlocks.js:607 +msgid "The Open file block opens a file for use with the Show block." msgstr "" -#: js/NumberBlocks.js:343 -msgid "The Divide block is used to divide." +#: js/blocks/MediaBlocks.js:645 +msgid "stop media" msgstr "" -#: js/NumberBlocks.js:411 -msgid "The Multiply block is used to multiply." +#: js/blocks/MediaBlocks.js:650 +msgid "The Stop media block stops audio or video playback." msgstr "" -#: js/NumberBlocks.js:554 -msgid "The Minus block is used to subtract." +#: js/blocks/MediaBlocks.js:679 +#: js/blocks/PitchBlocks.js:1577 +#: js/widgets/musickeyboard.js:1936 +#: js/widgets/phrasemaker.js:1037 +#.TRANS: a measure of frequency: one cycle per second +msgid "hertz" msgstr "" -#: js/NumberBlocks.js:647 -msgid "The Plus block is used to add." +#: js/blocks/MediaBlocks.js:692 +#: js/blocks/WidgetBlocks.js:182 +#: js/widgets/temperament.js:506 +#: js/widgets/temperament.js:546 +#: js/widgets/temperament.js:610 +#: js/widgets/temperament.js:618 +#: js/widgets/temperament.js:1505 +#: js/widgets/timbre.js:1842 +msgid "frequency" msgstr "" -#: js/NumberBlocks.js:773 -msgid "The One-of block returns one of two choices." +#: js/blocks/MediaBlocks.js:692 +msgid "duration (ms)" msgstr "" -#: js/NumberBlocks.js:780 -#: js/PitchBlocks.js:616 -msgid "one of" +#: js/blocks/MediaBlocks.js:728 +#.TRANS: translate a note into hertz, e.g., A4 -> 440HZ +msgid "note to frequency" msgstr "" -#: js/NumberBlocks.js:782 -msgid "this" +#: js/blocks/MediaBlocks.js:736 +msgid "The To frequency block converts a pitch name and octave to Hertz." msgstr "" -#: js/NumberBlocks.js:782 -msgid "that" +#: js/blocks/MediaBlocks.js:746 +#: js/blocks/PitchBlocks.js:656 +#: js/blocks/PitchBlocks.js:934 +#: js/blocks/PitchBlocks.js:1866 +#.TRANS: name2 is name as in name of pitch (JAPANESE ONLY) +msgid "name2" msgstr "" -#: js/NumberBlocks.js:837 -msgid "The Random block returns a random number." +#: js/blocks/MediaBlocks.js:812 +msgid "The Avatar block is used to change the appearance of the mouse." msgstr "" -#: js/NumberBlocks.js:844 -msgid "random" +#: js/blocks/MediaBlocks.js:819 +msgid "The Avatar block is used to change the appearance of the turtle." msgstr "" -#: js/NumberBlocks.js:846 -msgid "min" +#: js/blocks/MediaBlocks.js:831 +#: js/blocks/MediaBlocks.js:891 +#.TRANS: a media object +msgid "size" msgstr "" -#: js/NumberBlocks.js:846 -msgid "max" +#: js/blocks/MediaBlocks.js:831 +msgid "image" msgstr "" -#: js/NumberBlocks.js:910 -msgid "The Number block holds a number." +#: js/blocks/MediaBlocks.js:880 +msgid "The Show block is used to display text or images on the canvas." msgstr "" -#: js/BoxesBlocks.js:53 -#: js/BoxesBlocks.js:59 -msgid "The Add-to block is used to add to the value stored in a box." +#: js/blocks/MediaBlocks.js:888 +#.TRANS: show1 is show as in display an image or text on the screen. +msgid "show1" msgstr "" -#: js/BoxesBlocks.js:61 -msgid "It can also be used with other blocks such as Color and Pen size." +#: js/blocks/MediaBlocks.js:891 +msgid "obj" msgstr "" -#: js/BoxesBlocks.js:73 -msgid "add" +#: js/blocks/MediaBlocks.js:938 +msgid "The Media block is used to import an image." msgstr "" -#: js/BoxesBlocks.js:75 -#: js/temperament.js:716 -msgid "to" +#: js/blocks/MediaBlocks.js:973 +msgid "The Text block holds a text string." msgstr "" -#: js/BoxesBlocks.js:75 -#: js/BoxesBlocks.js:595 -#: js/HeapBlocks.js:544 -msgid "value1" +#: js/blocks/MeterBlocks.js:34 +#.TRANS: musical meter (time signature), e.g., 4:4 +msgid "current meter" msgstr "" -#: js/BoxesBlocks.js:118 -msgid "Block does not support incrementing." +#: js/blocks/MeterBlocks.js:85 +#.TRANS: number of beats per minute +msgid "beat factor" msgstr "" -#: js/BoxesBlocks.js:152 -msgid "The Add-1-to block adds one to the value stored in a box." +#: js/blocks/MeterBlocks.js:161 +msgid "The Beats per minute block returns the current beats per minute." msgstr "" -#: js/BoxesBlocks.js:163 -msgid "add 1 to" +#: js/blocks/MeterBlocks.js:169 +#: js/widgets/status.js:152 +#.TRANS: number of beats played per minute +msgid "beats per minute2" msgstr "" -#: js/BoxesBlocks.js:211 -msgid "The Subtract-1-from block subtracts one from the value stored in a box." +#: js/blocks/MeterBlocks.js:169 +#: js/blocks/MeterBlocks.js:1056 +#: js/blocks/MeterBlocks.js:1133 +#: js/blocks/MeterBlocks.js:1211 +#.TRANS: sets tempo by defining a beat and beats per minute +msgid "beats per minute" msgstr "" -#: js/BoxesBlocks.js:222 -msgid "subtract 1 from" +#: js/blocks/MeterBlocks.js:233 +#.TRANS: count of current musical measure in meter +msgid "measure count" msgstr "" -#: js/BoxesBlocks.js:270 -#: js/BoxesBlocks.js:387 -msgid "The Box block returns the value stored in a box." +#: js/blocks/MeterBlocks.js:241 +msgid "The Measure count block returns the current measure." msgstr "" -#: js/BoxesBlocks.js:500 -#: js/BoxesBlocks.js:576 -msgid "The Store in block will store a value in a box." +#: js/blocks/MeterBlocks.js:290 +#.TRANS: count of current beat in the meter +msgid "beat count" msgstr "" -#: js/BoxesBlocks.js:652 -msgid "The Box2 block returns the value stored in Box2." +#: js/blocks/MeterBlocks.js:300 +#: js/blocks/MeterBlocks.js:311 +#: js/blocks/MeterBlocks.js:565 +#: js/blocks/MeterBlocks.js:576 +msgid "The Beat count block is the number of the current beat," msgstr "" -#: js/BoxesBlocks.js:703 -msgid "The Store in Box2 block is used to store a value in Box2." +#: js/blocks/MeterBlocks.js:313 +#: js/blocks/MeterBlocks.js:578 +msgid "eg 1, 2, 3, or 4." msgstr "" -#: js/BoxesBlocks.js:715 -msgid "store in box2" +#: js/blocks/MeterBlocks.js:368 +#.TRANS: count the number of notes +msgid "sum note values" msgstr "" -#: js/BoxesBlocks.js:761 -msgid "The Box1 block returns the value stored in Box1." +#: js/blocks/MeterBlocks.js:376 +#: js/blocks/MeterBlocks.js:440 +msgid "The Note counter block can be used to count the number of contained notes." msgstr "" -#: js/BoxesBlocks.js:812 -msgid "The Store in Box1 block is used to store a value in Box1." +#: js/blocks/MeterBlocks.js:432 +#.TRANS: count the number of notes +msgid "note counter" msgstr "" -#: js/BoxesBlocks.js:826 -msgid "store in box1" +#: js/blocks/MeterBlocks.js:496 +#.TRANS: number of whole notes that have been played +msgid "whole notes played" msgstr "" -#: js/HeapBlocks.js:49 -msgid "The Heap block returns the heap." +#: js/blocks/MeterBlocks.js:505 +msgid "The Whole notes played block returns the total number of whole notes played." msgstr "" -#: js/HeapBlocks.js:133 -msgid "show heap" +#: js/blocks/MeterBlocks.js:555 +#: js/turtleactions/DictActions.js:83 +#.TRANS: number of notes that have been played +msgid "notes played" msgstr "" -#: js/HeapBlocks.js:181 -msgid "The Heap-length block returns the length of the heap." +#: js/blocks/MeterBlocks.js:653 +msgid "The No clock block decouples the notes from the master clock." msgstr "" -#: js/HeapBlocks.js:195 -msgid "heap length" +#: js/blocks/MeterBlocks.js:661 +#.TRANS: don't lock notes to master clock +msgid "no clock" msgstr "" -#: js/HeapBlocks.js:254 -msgid "The Heap-empty? block returns true if the heap is empty." +#: js/blocks/MeterBlocks.js:700 +msgid "on weak beat do" msgstr "" -#: js/HeapBlocks.js:268 -#.TRANS: Is the heap empty? -msgid "heap empty?" +#: js/blocks/MeterBlocks.js:705 +msgid "The On-weak-beat block lets you specify actions to take on weak (off) beats." msgstr "" -#: js/HeapBlocks.js:317 -msgid "The Empty-heap block empties the heap." +#: js/blocks/MeterBlocks.js:750 +msgid "on strong beat" msgstr "" -#: js/HeapBlocks.js:327 -#: js/HeapBlocks.js:647 -#.TRANS: empty the heap -msgid "empty heap" +#: js/blocks/MeterBlocks.js:758 +msgid "The On-strong-beat block lets you specify actions to take on specified beats." msgstr "" -#: js/HeapBlocks.js:371 -msgid "The Reverse-heap block reverses the order of the heap." +#: js/blocks/MeterBlocks.js:769 +msgid "beat" msgstr "" -#: js/HeapBlocks.js:384 -#.TRANS: reverse the order of the heap -msgid "reverse heap" +#: js/blocks/MeterBlocks.js:813 +msgid "on every beat do" msgstr "" -#: js/HeapBlocks.js:428 -msgid "The Index-heap block returns a value in the heap at a specified location." +#: js/blocks/MeterBlocks.js:821 +msgid "The On-every-beat block lets you specify actions to take on every beat." msgstr "" -#: js/HeapBlocks.js:443 -#.TRANS: retrieve a value from the heap at index position in the heap -msgid "index heap" +#: js/blocks/MeterBlocks.js:874 +msgid "on every note do" msgstr "" -#: js/HeapBlocks.js:523 -msgid "The Set-heap entry block sets a value in he heap at the specified location." +#: js/blocks/MeterBlocks.js:882 +msgid "The On-every-note block lets you specify actions to take on every note." msgstr "" -#: js/HeapBlocks.js:619 -msgid "The Pop block removes the value at the top of the heap." +#: js/blocks/MeterBlocks.js:928 +#: js/blocks/MeterBlocks.js:999 +#.TRANS: sets tempo by defining a beat and beats per minute +msgid "master beats per minute" msgstr "" -#: js/HeapBlocks.js:633 -#.TRANS: pop a value off the top of the heap -msgid "pop" +#: js/blocks/MeterBlocks.js:952 +#: js/blocks/MeterBlocks.js:1078 +#: js/blocks/MeterBlocks.js:1135 +msgid "bpm" msgstr "" -#: js/HeapBlocks.js:680 -msgid "The Push block adds a value to the top of the heap." +#: js/blocks/MeterBlocks.js:952 +#: js/blocks/MeterBlocks.js:1078 +#: js/blocks/MeterBlocks.js:1135 +msgid "beat value" msgstr "" -#: js/HeapBlocks.js:696 -#.TRANS: push a value onto the top of the heap -msgid "push" +#: js/blocks/MeterBlocks.js:1024 +#: js/blocks/MeterBlocks.js:1167 +#: js/blocks/MeterBlocks.js:1241 +msgid "Beats per minute must be > 30." msgstr "" -#: js/FlowBlocks.js:41 -msgid "The Backward block runs code in reverse order (Musical retrograde)." +#: js/blocks/MeterBlocks.js:1027 +#: js/blocks/MeterBlocks.js:1170 +#: js/blocks/MeterBlocks.js:1244 +msgid "Maximum beats per minute is 1000." msgstr "" -#: js/FlowBlocks.js:48 -msgid "backward" +#: js/blocks/MeterBlocks.js:1068 +msgid "The Beats per minute block sets the number of 1/4 notes per minute." msgstr "" -#: js/FlowBlocks.js:124 -msgid "The Duplicate block will run each block multiple times." +#: js/blocks/MeterBlocks.js:1279 +#.TRANS: anacrusis +msgid "pickup" msgstr "" -#: js/FlowBlocks.js:136 -msgid "duplicate" +#: js/blocks/MeterBlocks.js:1367 +msgid "number of beats" msgstr "" -#: js/FlowBlocks.js:334 -msgid "The Default block is used inside of a Switch to define the default action." +#: js/blocks/NumberBlocks.js:28 +msgid "The Int block returns an integer." msgstr "" -#: js/FlowBlocks.js:342 -msgid "default" +#: js/blocks/NumberBlocks.js:34 +msgid "int" msgstr "" -#: js/FlowBlocks.js:361 -#: js/FlowBlocks.js:418 -msgid "The Case Block must be used inside of a Switch Block." +#: js/blocks/NumberBlocks.js:73 +msgid "The Mod block returns the remainder from a division." msgstr "" -#: js/FlowBlocks.js:389 -msgid "The Case block is used inside of a Switch to define matches." +#: js/blocks/NumberBlocks.js:79 +msgid "mod" msgstr "" -#: js/FlowBlocks.js:397 -msgid "case" +#: js/blocks/NumberBlocks.js:141 +msgid "The Power block calculates a power function." msgstr "" -#: js/FlowBlocks.js:446 -msgid "The Switch block will run the code in the matching Case." +#: js/blocks/NumberBlocks.js:196 +msgid "The Sqrt block returns the square root." msgstr "" -#: js/FlowBlocks.js:454 -msgid "switch" +#: js/blocks/NumberBlocks.js:202 +msgid "sqrt" msgstr "" -#: js/FlowBlocks.js:595 -msgid "The Stop block will stop a loop" +#: js/blocks/NumberBlocks.js:248 +msgid "The Abs block returns the absolute value." msgstr "" -#: js/FlowBlocks.js:597 -msgid "Forever, Repeat, While, or Until." +#: js/blocks/NumberBlocks.js:254 +msgid "abs" msgstr "" -#: js/FlowBlocks.js:604 -#: js/phrasemaker.js:3799 -#: js/musickeyboard.js:629 -#: js/musickeyboard.js:631 -#: js/timbre.js:417 -#: js/timbre.js:419 -#: plugins/rodi.rtp:29 -#: plugins/rodi.rtp:73 -#: plugins/rodi.rtp:413 -msgid "stop" +#: js/blocks/NumberBlocks.js:295 +msgid "The Distance block returns the distance between two points. For example, between the mouse and the center of the screen." msgstr "" -#: js/FlowBlocks.js:653 -msgid "The Waitfor block will wait until the condition is true." +#: js/blocks/NumberBlocks.js:301 +#: plugins/rodi.rtp:310 +msgid "distance" msgstr "" -#: js/FlowBlocks.js:661 -msgid "wait for" +#: js/blocks/NumberBlocks.js:361 +msgid "The Divide block is used to divide." msgstr "" -#: js/FlowBlocks.js:732 -msgid "The Until block will repeat until the condition is true." +#: js/blocks/NumberBlocks.js:441 +msgid "The Multiply block is used to multiply." msgstr "" -#: js/FlowBlocks.js:740 -msgid "until" +#: js/blocks/NumberBlocks.js:612 +msgid "The Minus block is used to subtract." msgstr "" -#: js/FlowBlocks.js:742 -#: js/FlowBlocks.js:822 -msgid "do2" +#: js/blocks/NumberBlocks.js:723 +msgid "The Plus block is used to add." msgstr "" -#: js/FlowBlocks.js:812 -msgid "The While block will repeat while the condition is true." +#: js/blocks/NumberBlocks.js:849 +msgid "The One-of block returns one of two choices." msgstr "" -#: js/FlowBlocks.js:820 -msgid "while" +#: js/blocks/NumberBlocks.js:856 +#: js/blocks/PitchBlocks.js:616 +msgid "one of" msgstr "" -#: js/FlowBlocks.js:903 -#: js/FlowBlocks.js:968 -#: js/FlowBlocks.js:979 -msgid "In this example if the mouse button is pressed a snare drum will play." +#: js/blocks/NumberBlocks.js:858 +msgid "this" msgstr "" -#: js/FlowBlocks.js:925 -#: js/FlowBlocks.js:988 -msgid "if" +#: js/blocks/NumberBlocks.js:858 +msgid "that" msgstr "" -#: js/FlowBlocks.js:927 -#: js/FlowBlocks.js:990 -msgid "then" +#: js/blocks/NumberBlocks.js:913 +msgid "The Random block returns a random number." msgstr "" -#: js/FlowBlocks.js:927 -msgid "else" +#: js/blocks/NumberBlocks.js:920 +msgid "random" msgstr "" -#: js/FlowBlocks.js:1025 -msgid "The Forever block will repeat the contained blocks forever." +#: js/blocks/NumberBlocks.js:922 +msgid "min" msgstr "" -#: js/FlowBlocks.js:1037 -msgid "forever" +#: js/blocks/NumberBlocks.js:922 +msgid "max" msgstr "" -#: js/FlowBlocks.js:1073 -msgid "The Repeat block will repeat the contained blocks." +#: js/blocks/NumberBlocks.js:986 +msgid "The Number block holds a number." msgstr "" -#: js/FlowBlocks.js:1075 -msgid "In this example the note will be played 4 times." +#: js/blocks/OrnamentBlocks.js:32 +msgid "staccato factor" msgstr "" -#: js/FlowBlocks.js:1083 -msgid "repeat" +#: js/blocks/OrnamentBlocks.js:108 +msgid "slur factor" msgstr "" -#: js/FlowBlocks.js:1123 -msgid "duplicate factor" +#: js/blocks/OrnamentBlocks.js:217 +#: js/blocks/OrnamentBlocks.js:309 +#.TRANS: the neighbor refers to a neighboring note, e.g., D is a neighbor of C +msgid "neighbor" msgstr "" -#: js/PitchBlocks.js:39 -#: js/musicutils.js:722 -#: js/musicutils.js:1117 -#: js/synthutils.js:112 -#.TRANS: square wave -msgid "square" +#: js/blocks/OrnamentBlocks.js:293 +msgid "The Neighbor block rapidly switches between neighboring pitches." msgstr "" -#: js/PitchBlocks.js:62 -#: js/ToneBlocks.js:39 -#: js/musicutils.js:723 -#: js/musicutils.js:1118 -#: js/synthutils.js:116 -#.TRANS: triangle wave -msgid "triangle" +#: js/blocks/OrnamentBlocks.js:364 +msgid "glide" msgstr "" -#: js/PitchBlocks.js:85 -#: js/musicutils.js:721 -#: js/musicutils.js:1116 -#: js/synthutils.js:110 -#.TRANS: sine wave -msgid "sine" +#: js/blocks/OrnamentBlocks.js:479 +#: js/blocks/OrnamentBlocks.js:643 +msgid "slur" msgstr "" -#: js/PitchBlocks.js:108 -#: js/musicutils.js:724 -#: js/musicutils.js:1119 -#: js/synthutils.js:114 -#.TRANS: sawtooth wave -msgid "sawtooth" +#: js/blocks/OrnamentBlocks.js:558 +#: js/blocks/OrnamentBlocks.js:710 +#.TRANS: play each note sharply detached from the others +msgid "staccato" msgstr "" -#: js/PitchBlocks.js:141 -#.TRANS: musical transposition (adjustment of pitch up or down) -msgid "transposition" +#: js/blocks/RhythmBlocks.js:182 +#: js/blocks/RhythmBlocks.js:1086 +#: js/blocks/RhythmBlocks.js:1162 +msgid "Note value must be greater than 0." msgstr "" -#: js/PitchBlocks.js:168 -#.TRANS: step down one note in current musical scale -msgid "scalar step down" +#: js/blocks/RhythmBlocks.js:215 +#: js/blocks/RhythmBlocks.js:278 +#: js/blocks/RhythmBlocks.js:350 +#.TRANS: swing is a rhythmic variation that emphasises the offbeat +msgid "swing" msgstr "" -#: js/PitchBlocks.js:172 -msgid "The Scalar step down block returns the number of semi-tones down to the previous note in the current key and mode." +#: js/blocks/RhythmBlocks.js:355 +#.TRANS: the amount to shift to the offbeat note +msgid "swing value" msgstr "" -#: js/PitchBlocks.js:190 -#.TRANS: step up one note in current musical scale -msgid "scalar step up" +#: js/blocks/RhythmBlocks.js:419 +msgid "The Skip notes block will cause notes to be skipped." msgstr "" -#: js/PitchBlocks.js:194 -msgid "The Scalar step up block returns the number of semi-tones up to the next note in the current key and mode." +#: js/blocks/RhythmBlocks.js:427 +#.TRANS: substitute rests on notes being skipped +msgid "skip notes" msgstr "" -#: js/PitchBlocks.js:212 -#.TRANS: the change measured in half-steps between the current pitch and the previous pitch -msgid "change in pitch" +#: js/blocks/RhythmBlocks.js:489 +#.TRANS: speed up note duration by some factor, e.g. convert 1/4 to 1/8 notes by using a factor of 2 +msgid "multiply note value" msgstr "" -#: js/PitchBlocks.js:216 -msgid "The Change in pitch block is the difference (in half steps) between the current pitch being played and the previous pitch played." +#: js/blocks/RhythmBlocks.js:542 +msgid "The Tie block works on pairs of notes, combining them into one note." msgstr "" -#: js/PitchBlocks.js:243 -#.TRANS: the change measured in scale-steps between the current pitch and the previous pitch -msgid "scalar change in pitch" +#: js/blocks/RhythmBlocks.js:550 +#.TRANS: tie notes together into one longer note +msgid "tie" msgstr "" -#: js/PitchBlocks.js:250 -#: js/PitchBlocks.js:432 -#: js/PitchBlocks.js:1629 -#: js/DictActions.js:89 -#: js/temperament.js:477 -#: js/temperament.js:481 -#: js/temperament.js:714 -#.TRANS: convert current note to piano key (1-88) -#.TRANS: a mapping of pitch to the 88 piano keys -msgid "pitch number" +#: js/blocks/RhythmBlocks.js:591 +#: js/blocks/RhythmBlocks.js:671 +#.TRANS: a dotted note is played for 1.5x its value, e.g., 1/8. --> 3/16 +msgid "dot" msgstr "" -#: js/PitchBlocks.js:256 -msgid "The Pitch number block is the value of the pitch of the note currently being played." +#: js/blocks/RhythmBlocks.js:619 +#: js/turtleactions/RhythmActions.js:221 +msgid "An argument of -1 results in a note value of 0." msgstr "" -#: js/PitchBlocks.js:329 -#: js/PitchBlocks.js:433 -#.TRANS: the current pitch expressed in Hertz -msgid "pitch in hertz" +#: js/blocks/RhythmBlocks.js:661 +msgid "The Dot block extends the duration of a note by 50%." msgstr "" -#: js/PitchBlocks.js:334 -msgid "The Pitch in Hertz block is the value in Hertz of the pitch of the note currently being played." +#: js/blocks/RhythmBlocks.js:663 +msgid "Eg a dotted quarter note will play for 3/8 (1/4 + 1/8) of a beat." msgstr "" -#: js/PitchBlocks.js:367 -#: js/DictActions.js:87 -msgid "current pitch" +#: js/blocks/RhythmBlocks.js:765 +#.TRANS: Japanese only: note value block for drum +msgid "note value drum" msgstr "" -#: js/PitchBlocks.js:373 -msgid "The Current Pitch block is used with the Pitch Converter block. In the example above, current pitch, sol 4, is displayed as 392 hertz." +#: js/blocks/RhythmBlocks.js:829 +msgid "392 hertz" msgstr "" -#: js/PitchBlocks.js:410 -msgid "This block converts the pitch value of the last note played into different formats such as hertz, letter name, pitch number, et al." +#: js/blocks/RhythmBlocks.js:1119 +msgid "The Note block is a container for one or more Pitch blocks." msgstr "" -#: js/PitchBlocks.js:434 -msgid "alphabet" +#: js/blocks/RhythmBlocks.js:1121 +msgid "The Note block specifies the duration (note value) of its contents." msgstr "" -#: js/PitchBlocks.js:436 -#.TRANS: Translate as "alphabet class" -msgid "letter class" +#: js/blocks/RhythmBlocks.js:1128 +#: js/blocks/PitchBlocks.js:974 +#: js/blocks/PitchBlocks.js:1007 +#: js/blocks/ProgramBlocks.js:1186 +#: js/blocks/ProgramBlocks.js:1227 +#: js/widgets/status.js:190 +#: js/widgets/temperament.js:464 +#: js/widgets/temperament.js:486 +#: js/widgets/temperament.js:496 +#: js/widgets/temperament.js:617 +#: plugins/rodi.rtp:192 +#.TRANS: a musical note consisting of pitch and duration +msgid "note" msgstr "" -#: js/PitchBlocks.js:437 -msgid "solfege class" +#: js/blocks/RhythmBlocks.js:1130 +msgid "value2" msgstr "" -#: js/PitchBlocks.js:438 -msgid "staff y" +#: js/blocks/RhythmBlocks.js:1200 +msgid "define frequency" msgstr "" -#: js/PitchBlocks.js:439 -msgid "solfege syllable" +#: js/blocks/RhythmBlocks.js:1218 +#: js/widgets/temperament.js:787 +#: js/widgets/temperament.js:1587 +msgid "octave space" msgstr "" -#: js/PitchBlocks.js:440 -msgid "pitch class" +#: js/blocks/SensorsBlocks.js:36 +msgid "The Input block prompts for keyboard input." msgstr "" -#: js/PitchBlocks.js:441 -msgid "scalar class" +#: js/blocks/SensorsBlocks.js:46 +msgid "input" msgstr "" -#: js/PitchBlocks.js:443 -msgid "nth degree" +#: js/blocks/SensorsBlocks.js:64 +msgid "Input a value" msgstr "" -#: js/PitchBlocks.js:444 -msgid "pitch to shade" +#: js/blocks/SensorsBlocks.js:126 +msgid "input value" msgstr "" -#: js/PitchBlocks.js:445 -msgid "pitch to color" +#: js/blocks/SensorsBlocks.js:131 +msgid "The Input-value block stores the input." msgstr "" -#: js/PitchBlocks.js:629 -#: js/musickeyboard.js:565 -#.TRANS: MIDI is a technical standard for electronic music -msgid "MIDI" +#: js/blocks/SensorsBlocks.js:238 +msgid "loudness" msgstr "" -#: js/PitchBlocks.js:642 -#.TRANS: set an offset associated with the numeric piano keyboard mapping -msgid "set pitch number offset" +#: js/blocks/SensorsBlocks.js:245 +msgid "The Loudness block returns the volume detected by the microphone." msgstr "" -#: js/PitchBlocks.js:645 -msgid "The Set pitch number offset block is used to set the offset for mapping pitch numbers to pitch and octave." +#: js/blocks/SensorsBlocks.js:300 +msgid "click" msgstr "" -#: js/PitchBlocks.js:679 -#.TRANS: convert piano key number (1-88) to pitch -msgid "number to pitch" +#: js/blocks/SensorsBlocks.js:306 +msgid "The Click block triggers an event if a mouse has been clicked." msgstr "" -#: js/PitchBlocks.js:682 -msgid "The Number to pitch block will convert a pitch number to a pich name." +#: js/blocks/SensorsBlocks.js:313 +msgid "The Click block triggers an event if a turtle has been clicked." msgstr "" -#: js/PitchBlocks.js:715 -#.TRANS: convert piano key number (1-88) to octave -msgid "number to octave" +#: js/blocks/SensorsBlocks.js:342 +msgid "cursor over" msgstr "" -#: js/PitchBlocks.js:717 -msgid "The Number to octave block will convert a pitch number to an octave." +#: js/blocks/SensorsBlocks.js:387 +msgid "cursor out" msgstr "" -#: js/PitchBlocks.js:726 -msgid "y to pitch" +#: js/blocks/SensorsBlocks.js:433 +msgid "cursor button down" msgstr "" -#: js/PitchBlocks.js:729 -msgid "Y to pitch block will convert a staff y position to corresponding pitch notation." +#: js/blocks/SensorsBlocks.js:477 +msgid "cursor button up" msgstr "" -#: js/PitchBlocks.js:841 -msgid "accidental selector" +#: js/blocks/SensorsBlocks.js:521 +#: js/blocks/PenBlocks.js:48 +#: plugins/rodi.rtp:219 +msgid "blue" msgstr "" -#: js/PitchBlocks.js:844 -msgid "The Accidental selector block is used to choose between double-sharp, sharp, natural, flat, and double-flat." +#: js/blocks/SensorsBlocks.js:577 +#: js/blocks/PenBlocks.js:64 +#: plugins/rodi.rtp:218 +msgid "green" msgstr "" -#: js/PitchBlocks.js:858 -msgid "Pitch can be specified in terms of ni dha pa ma ga re sa." +#: js/blocks/SensorsBlocks.js:633 +#: js/blocks/PenBlocks.js:112 +#: plugins/rodi.rtp:217 +msgid "red" msgstr "" -#: js/PitchBlocks.js:872 -msgid "Pitch can be specified in terms of C D E F G A B." +#: js/blocks/SensorsBlocks.js:638 +msgid "The Get red block returns the red component of the pixel under the mouse." msgstr "" -#: js/PitchBlocks.js:883 -msgid "solfege" +#: js/blocks/SensorsBlocks.js:644 +msgid "The Get red block returns the red component of the pixel under the turtle." msgstr "" -#: js/PitchBlocks.js:886 -msgid "Pitch can be specified in terms of do re mi fa sol la ti." +#: js/blocks/SensorsBlocks.js:685 +#: plugins/rodi.rtp:216 +msgid "pixel color" msgstr "" -#: js/PitchBlocks.js:920 -msgid "The Invert block rotates any contained notes around a target note." +#: js/blocks/SensorsBlocks.js:690 +msgid "The Get pixel block returns the color of the pixel under the mouse." msgstr "" -#: js/PitchBlocks.js:927 -#.TRANS: pitch inversion rotates a pitch around another pitch -msgid "invert" +#: js/blocks/SensorsBlocks.js:696 +msgid "The Get pixel block returns the color of the pixel under the turtle." msgstr "" -#: js/PitchBlocks.js:929 -#: js/PitchBlocks.js:935 -#: js/PitchActions.js:727 -#: js/musicutils.js:726 -#: js/musicutils.js:902 -#.TRANS: invert based on even or odd number or musical scale -#.TRANS: even numbers -msgid "even" +#: js/blocks/SensorsBlocks.js:758 +msgid "time" msgstr "" -#: js/PitchBlocks.js:935 -#: js/PitchActions.js:729 -#: js/musicutils.js:728 -#: js/musicutils.js:903 -#.TRANS: odd numbers -msgid "odd" +#: js/blocks/SensorsBlocks.js:804 +msgid "cursor y" msgstr "" -#: js/PitchBlocks.js:935 -#: js/PitchActions.js:731 -#: js/musicutils.js:729 -#: js/musicutils.js:904 -msgid "scalar" +#: js/blocks/SensorsBlocks.js:809 +msgid "The Cursor Y block returns the vertical position of the mouse." msgstr "" -#: js/PitchBlocks.js:966 -#.TRANS: pitch inversion rotates a pitch around another pitch (odd number) -msgid "invert (odd)" +#: js/blocks/SensorsBlocks.js:845 +msgid "cursor x" msgstr "" -#: js/PitchBlocks.js:999 -#.TRANS: pitch inversion rotates a pitch around another pitch (even number) -msgid "invert (even)" +#: js/blocks/SensorsBlocks.js:850 +msgid "The Cursor X block returns the horizontal position of the mouse." msgstr "" -#: js/PitchBlocks.js:1020 -#.TRANS: register is the octave of the current pitch -msgid "register" +#: js/blocks/SensorsBlocks.js:886 +msgid "mouse button" msgstr "" -#: js/PitchBlocks.js:1024 -msgid "The Register block provides an easy way to modify the register (octave) of the notes that follow it." +#: js/blocks/SensorsBlocks.js:888 +msgid "The Mouse-button block returns True if the mouse button is pressed." msgstr "" -#: js/PitchBlocks.js:1074 -msgid "The Semi-tone transposition block will shift the pitches contained inside Note blocks up (or down) by half steps." +#: js/blocks/SensorsBlocks.js:934 +msgid "to ASCII" msgstr "" -#: js/PitchBlocks.js:1076 -msgid "In the example shown above, sol is shifted up to sol#." +#: js/blocks/SensorsBlocks.js:938 +msgid "The To ASCII block converts numbers to letters." msgstr "" -#: js/PitchBlocks.js:1082 -#.TRANS: adjust the amount of shift (up or down) of a pitch -msgid "semi-tone transpose" +#: js/blocks/SensorsBlocks.js:1005 +msgid "The Keyboard block returns computer keyboard input." msgstr "" -#: js/PitchBlocks.js:1115 -msgid "The Transpose by Ratio block will shift the pitches contained inside Note blocks up (or down) by a ratio" +#: js/blocks/RhythmBlockPaletteBlocks.js:50 +#: js/blocks/RhythmBlockPaletteBlocks.js:233 +#.TRANS: rhythm block +#.TRANS: translate "rhythm1" as rhythm +msgid "rhythm1" msgstr "" -#: js/PitchBlocks.js:1121 -#.TRANS: adjust the amount of shift (up or down) of a pitch -msgid "transpose by ratio" +#: js/blocks/RhythmBlockPaletteBlocks.js:70 +#: js/blocks/RhythmBlockPaletteBlocks.js:252 +#: js/blocks/RhythmBlockPaletteBlocks.js:485 +#: js/blocks/RhythmBlockPaletteBlocks.js:554 +#: js/blocks/RhythmBlockPaletteBlocks.js:875 +msgid "number of notes" msgstr "" -#: js/PitchBlocks.js:1204 -#.TRANS: down sixth means the note is five scale degrees below current note -msgid "down sixth" +#: js/blocks/RhythmBlockPaletteBlocks.js:126 +msgid "polyphonic rhythm" msgstr "" -#: js/PitchBlocks.js:1223 -#.TRANS: down third means the note is two scale degrees below current note -msgid "down third" +#: js/blocks/RhythmBlockPaletteBlocks.js:219 +msgid "The Rhythm block is used to generate rhythm patterns." msgstr "" -#: js/PitchBlocks.js:1242 -#.TRANS: seventh means the note is the six scale degrees above current note -msgid "seventh" +#: js/blocks/RhythmBlockPaletteBlocks.js:280 +msgid "1/64 note" msgstr "" -#: js/PitchBlocks.js:1261 -#.TRANS: sixth means the note is the five scale degrees above current note -msgid "sixth" +#: js/blocks/RhythmBlockPaletteBlocks.js:304 +msgid "1/32 note" msgstr "" -#: js/PitchBlocks.js:1280 -#.TRANS: fifth means the note is the four scale degrees above current note -msgid "fifth" +#: js/blocks/RhythmBlockPaletteBlocks.js:332 +msgid "1/16 note" msgstr "" -#: js/PitchBlocks.js:1300 -#.TRANS: fourth means the note is three scale degrees above current note -msgid "fourth" +#: js/blocks/RhythmBlockPaletteBlocks.js:360 +msgid "eighth note" msgstr "" -#: js/PitchBlocks.js:1319 -#.TRANS: third means the note is two scale degrees above current note -msgid "third" +#: js/blocks/RhythmBlockPaletteBlocks.js:388 +msgid "quarter note" msgstr "" -#: js/PitchBlocks.js:1338 -#.TRANS: second means the note is one scale degree above current note -msgid "second" +#: js/blocks/RhythmBlockPaletteBlocks.js:416 +msgid "half note" msgstr "" -#: js/PitchBlocks.js:1379 -msgid "The Scalar transposition block will shift the pitches contained inside Note blocks up (or down) the scale." +#: js/blocks/RhythmBlockPaletteBlocks.js:444 +msgid "whole note" msgstr "" -#: js/PitchBlocks.js:1381 -msgid "In the example shown above, sol is shifted up to la." +#: js/blocks/RhythmBlockPaletteBlocks.js:482 +#: js/blocks/RhythmBlockPaletteBlocks.js:551 +#: js/blocks/RhythmBlockPaletteBlocks.js:602 +#.TRANS: A tuplet is a note value divided into irregular time values. +msgid "tuplet" msgstr "" -#: js/PitchBlocks.js:1388 -#.TRANS: adjust the amount of shift (up or down) of a pitch by musical scale (scalar) steps -msgid "scalar transpose" +#: js/blocks/RhythmBlockPaletteBlocks.js:768 +msgid "septuplet" msgstr "" -#: js/PitchBlocks.js:1423 -msgid "The Accidental block is used to create sharps and flats" +#: js/blocks/RhythmBlockPaletteBlocks.js:796 +msgid "quintuplet" msgstr "" -#: js/PitchBlocks.js:1430 -#.TRANS: An accidental is a modification to a pitch, e.g., sharp or flat. -msgid "accidental override" +#: js/blocks/RhythmBlockPaletteBlocks.js:824 +msgid "triplet" msgstr "" -#: js/PitchBlocks.js:1543 -msgid "The Hertz block (in combination with a Number block) will play a sound at the specified frequency." +#: js/blocks/RhythmBlockPaletteBlocks.js:851 +msgid "simple tuplet" msgstr "" -#: js/PitchBlocks.js:1633 -msgid "The Pitch Number block will play a pitch associated by its number, e.g. 0 for C and 7 for G." +#: js/blocks/RhythmBlockPaletteBlocks.js:861 +msgid "Tuplets are a collection of notes that get scaled to a specific duration." msgstr "" -#: js/PitchBlocks.js:1665 -#: js/PitchBlocks.js:1707 -#.TRANS: a numeric mapping of the notes in an octave based on the musical mode -#.TRANS: a numeric mapping of the notes in an octave based on the musical mode -msgid "nth modal pitch" +#: js/blocks/DrumBlocks.js:59 +msgid "The Noise name block is used to select a noise synthesizer." msgstr "" -#: js/PitchBlocks.js:1668 -msgid "n^th Modal Pitch takes the pattern of pitches in semitones for a mode and makes each point a degree of the mode," +#: js/blocks/DrumBlocks.js:102 +msgid "The Drum name block is used to select a drum." msgstr "" -#: js/PitchBlocks.js:1670 -msgid "starting from 1 and regardless of tonal framework (i.e. not always 8 notes in the octave)" +#: js/blocks/DrumBlocks.js:146 +msgid "The Effects name block is used to select a sound effect." msgstr "" -#: js/PitchBlocks.js:1711 -msgid "N^th Modal Pitch takes a number as an input as the n^th degree for the given mode. 0 is the first position, 1 is the second, -1 is the note before the first etc." +#: js/blocks/DrumBlocks.js:163 +msgid "noise" msgstr "" -#: js/PitchBlocks.js:1713 -msgid "The pitches change according to the mode specified without any need for respellings." +#: js/blocks/DrumBlocks.js:177 +msgid "The Play noise block will generate white, pink, or brown noise." msgstr "" -#: js/PitchBlocks.js:1752 -msgid "Scale Degree is a common convention in music. Scale Degree offers seven possible positions in the scale (1-7) and can be modified via accidentals." +#: js/blocks/DrumBlocks.js:317 +msgid "Replace every instance of a pitch with a drum sound." msgstr "" -#: js/PitchBlocks.js:1754 -msgid "Scale Degree 1 is always the first pitch in a given scale, regardless of octave." +#: js/blocks/DrumBlocks.js:328 +#.TRANS: map a pitch to a drum sound +msgid "map pitch to drum" msgstr "" -#: js/PitchBlocks.js:1776 -#.TRANS: step some number of notes in current musical scale -msgid "scalar step" +#: js/blocks/DrumBlocks.js:395 +msgid "In the example above, a kick drum sound will be played instead of sol." msgstr "" -#: js/PitchBlocks.js:1781 -msgid "The Scalar Step block (in combination with a Number block) will play the next pitch in a scale," +#: js/blocks/DrumBlocks.js:407 +#.TRANS: set the current drum sound for playback +msgid "set drum" msgstr "" -#: js/PitchBlocks.js:1783 -msgid "eg if the last note played was sol, Scalar Step 1 will play la." +#: js/blocks/DrumBlocks.js:451 +msgid "sound effect" msgstr "" -#: js/PitchBlocks.js:1818 -msgid "The Pitch block specifies the pitch name and octave of a note that together determine the frequency of the note." +#: js/blocks/DrumBlocks.js:489 +msgid "You can use multiple Drum blocks within a Note block." msgstr "" -#: js/GraphicsBlocks.js:46 -#: js/DictActions.js:77 -#: js/DictActions.js:155 -#: js/DictActions.js:189 +#: js/blocks/GraphicsBlocks.js:46 +#: js/turtleactions/DictActions.js:77 +#: js/turtleactions/DictActions.js:144 +#: js/turtleactions/DictActions.js:173 msgid "heading" msgstr "" -#: js/GraphicsBlocks.js:56 +#: js/blocks/GraphicsBlocks.js:56 msgid "The Heading block returns the orientation of the mouse." msgstr "" -#: js/GraphicsBlocks.js:62 +#: js/blocks/GraphicsBlocks.js:62 msgid "The Heading block returns the orientation of the turtle." msgstr "" -#: js/GraphicsBlocks.js:133 +#: js/blocks/GraphicsBlocks.js:133 msgid "The Y block returns the vertical position of the mouse." msgstr "" -#: js/GraphicsBlocks.js:140 +#: js/blocks/GraphicsBlocks.js:140 msgid "The Y block returns the vertical position of the turtle." msgstr "" -#: js/GraphicsBlocks.js:149 +#: js/blocks/GraphicsBlocks.js:149 msgid "y3" msgstr "" -#: js/GraphicsBlocks.js:219 +#: js/blocks/GraphicsBlocks.js:219 msgid "The X block returns the horizontal position of the mouse." msgstr "" -#: js/GraphicsBlocks.js:226 +#: js/blocks/GraphicsBlocks.js:226 msgid "The X block returns the horizontal position of the turtle." msgstr "" -#: js/GraphicsBlocks.js:235 +#: js/blocks/GraphicsBlocks.js:235 msgid "x3" msgstr "" -#: js/GraphicsBlocks.js:295 +#: js/blocks/GraphicsBlocks.js:295 msgid "scroll xy" msgstr "" -#: js/GraphicsBlocks.js:303 +#: js/blocks/GraphicsBlocks.js:303 msgid "The Scroll XY block moves the canvas." msgstr "" -#: js/GraphicsBlocks.js:313 +#: js/blocks/GraphicsBlocks.js:313 msgid "x2" msgstr "" -#: js/GraphicsBlocks.js:313 +#: js/blocks/GraphicsBlocks.js:313 msgid "y2" msgstr "" -#: js/GraphicsBlocks.js:373 -#: js/temperament.js:213 -#: js/temperament.js:241 +#: js/blocks/GraphicsBlocks.js:373 +#: js/widgets/temperament.js:319 +#: js/widgets/temperament.js:347 msgid "clear" msgstr "" -#: js/GraphicsBlocks.js:426 +#: js/blocks/GraphicsBlocks.js:426 msgid "The Control-point 2 block sets the second control point for the Bezier curve." msgstr "" -#: js/GraphicsBlocks.js:433 +#: js/blocks/GraphicsBlocks.js:433 msgid "control point 2" msgstr "" -#: js/GraphicsBlocks.js:436 -#: js/GraphicsBlocks.js:487 -#: js/GraphicsBlocks.js:534 -#: js/GraphicsBlocks.js:750 +#: js/blocks/GraphicsBlocks.js:436 +#: js/blocks/GraphicsBlocks.js:487 +#: js/blocks/GraphicsBlocks.js:534 +#: js/blocks/GraphicsBlocks.js:750 msgid "x1" msgstr "" -#: js/GraphicsBlocks.js:436 -#: js/GraphicsBlocks.js:487 -#: js/GraphicsBlocks.js:534 -#: js/GraphicsBlocks.js:750 +#: js/blocks/GraphicsBlocks.js:436 +#: js/blocks/GraphicsBlocks.js:487 +#: js/blocks/GraphicsBlocks.js:534 +#: js/blocks/GraphicsBlocks.js:750 msgid "y1" msgstr "" -#: js/GraphicsBlocks.js:477 +#: js/blocks/GraphicsBlocks.js:477 msgid "The Control-point 1 block sets the first control point for the Bezier curve." msgstr "" -#: js/GraphicsBlocks.js:484 +#: js/blocks/GraphicsBlocks.js:484 msgid "control point 1" msgstr "" -#: js/GraphicsBlocks.js:527 +#: js/blocks/GraphicsBlocks.js:527 msgid "The Bezier block draws a Bezier curve." msgstr "" -#: js/GraphicsBlocks.js:531 +#: js/blocks/GraphicsBlocks.js:531 msgid "bezier" msgstr "" -#: js/GraphicsBlocks.js:592 +#: js/blocks/GraphicsBlocks.js:592 msgid "The Arc block moves the turtle in an arc." msgstr "" -#: js/GraphicsBlocks.js:600 +#: js/blocks/GraphicsBlocks.js:600 msgid "arc" msgstr "" -#: js/GraphicsBlocks.js:603 +#: js/blocks/GraphicsBlocks.js:603 msgid "angle" msgstr "" -#: js/GraphicsBlocks.js:603 +#: js/blocks/GraphicsBlocks.js:603 msgid "radius" msgstr "" -#: js/GraphicsBlocks.js:620 -#: js/GraphicsBlocks.js:767 -#: js/GraphicsBlocks.js:1010 -#: js/GraphicsBlocks.js:1093 +#: js/blocks/GraphicsBlocks.js:620 +#: js/blocks/GraphicsBlocks.js:767 +#: js/blocks/GraphicsBlocks.js:1010 +#: js/blocks/GraphicsBlocks.js:1093 msgid "Value must be within -5000 to 5000 when Wrap Mode is off." msgstr "" -#: js/GraphicsBlocks.js:622 -#: js/GraphicsBlocks.js:769 -#: js/GraphicsBlocks.js:1012 -#: js/GraphicsBlocks.js:1095 +#: js/blocks/GraphicsBlocks.js:622 +#: js/blocks/GraphicsBlocks.js:769 +#: js/blocks/GraphicsBlocks.js:1012 +#: js/blocks/GraphicsBlocks.js:1095 msgid "Value must be within -20000 to 20000 when Wrap Mode is on." msgstr "" -#: js/GraphicsBlocks.js:660 +#: js/blocks/GraphicsBlocks.js:660 msgid "set heading" msgstr "seth" -#: js/GraphicsBlocks.js:673 +#: js/blocks/GraphicsBlocks.js:673 msgid "The Set heading block sets the heading of the turtle." msgstr "" -#: js/GraphicsBlocks.js:733 +#: js/blocks/GraphicsBlocks.js:733 msgid "The Set XY block moves the mouse to a specific position on the screen." msgstr "" -#: js/GraphicsBlocks.js:739 +#: js/blocks/GraphicsBlocks.js:739 msgid "The Set XY block moves the turtle to a specific position on the screen." msgstr "" -#: js/GraphicsBlocks.js:747 +#: js/blocks/GraphicsBlocks.js:747 msgid "set xy" msgstr "" -#: js/GraphicsBlocks.js:819 +#: js/blocks/GraphicsBlocks.js:819 msgid "The Right block turns the mouse to the right." msgstr "" -#: js/GraphicsBlocks.js:826 +#: js/blocks/GraphicsBlocks.js:826 msgid "The Right block turns the turtle to the right." msgstr "" -#: js/GraphicsBlocks.js:835 +#: js/blocks/GraphicsBlocks.js:835 msgid "right1" msgstr "" -#: js/GraphicsBlocks.js:835 +#: js/blocks/GraphicsBlocks.js:835 #: plugins/rodi.rtp:77 #: plugins/rodi.rtp:340 #: plugins/rodi.rtp:375 msgid "right" msgstr "" -#: js/GraphicsBlocks.js:899 +#: js/blocks/GraphicsBlocks.js:899 msgid "The Left block turns the mouse to the left." msgstr "" -#: js/GraphicsBlocks.js:906 +#: js/blocks/GraphicsBlocks.js:906 msgid "The Left block turns the turtle to the left." msgstr "" -#: js/GraphicsBlocks.js:915 +#: js/blocks/GraphicsBlocks.js:915 msgid "left1" msgstr "" -#: js/GraphicsBlocks.js:915 +#: js/blocks/GraphicsBlocks.js:915 #: plugins/rodi.rtp:79 #: plugins/rodi.rtp:339 #: plugins/rodi.rtp:362 msgid "left" msgstr "" -#: js/GraphicsBlocks.js:967 -#: js/temperament.js:734 -#: js/temperament.js:933 +#: js/blocks/GraphicsBlocks.js:967 +#: js/widgets/temperament.js:875 +#: js/widgets/temperament.js:1078 #: plugins/rodi.rtp:69 #: plugins/rodi.rtp:387 msgid "back" msgstr "" -#: js/GraphicsBlocks.js:976 +#: js/blocks/GraphicsBlocks.js:976 msgid "The Back block moves the mouse backward." msgstr "" -#: js/GraphicsBlocks.js:983 +#: js/blocks/GraphicsBlocks.js:983 msgid "The Back block moves the turtle backward." msgstr "" -#: js/GraphicsBlocks.js:1050 +#: js/blocks/GraphicsBlocks.js:1050 #: plugins/rodi.rtp:71 #: plugins/rodi.rtp:400 msgid "forward" msgstr "" -#: js/GraphicsBlocks.js:1059 +#: js/blocks/GraphicsBlocks.js:1059 msgid "The Forward block moves the mouse forward." msgstr "" -#: js/GraphicsBlocks.js:1066 +#: js/blocks/GraphicsBlocks.js:1066 msgid "The Forward block moves the turtle forward." msgstr "" -#: js/GraphicsBlocks.js:1154 -#: js/GraphicsBlocks.js:1172 +#: js/blocks/GraphicsBlocks.js:1154 +#: js/blocks/GraphicsBlocks.js:1172 msgid "wrap" msgstr "" -#: js/OrnamentBlocks.js:32 -msgid "staccato factor" -msgstr "" - -#: js/OrnamentBlocks.js:108 -msgid "slur factor" -msgstr "" - -#: js/OrnamentBlocks.js:217 -#: js/OrnamentBlocks.js:309 -#.TRANS: the neighbor refers to a neighboring note, e.g., D is a neighbor of C -msgid "neighbor" -msgstr "" - -#: js/OrnamentBlocks.js:293 -msgid "The Neighbor block rapidly switches between neighboring pitches." -msgstr "" - -#: js/OrnamentBlocks.js:364 -msgid "glide" -msgstr "" - -#: js/OrnamentBlocks.js:479 -#: js/OrnamentBlocks.js:643 -msgid "slur" -msgstr "" - -#: js/OrnamentBlocks.js:558 -#: js/OrnamentBlocks.js:710 -#.TRANS: play each note sharply detached from the others -msgid "staccato" -msgstr "" - -#: js/PenBlocks.js:24 +#: js/blocks/PenBlocks.js:30 msgid "purple" msgstr "" -#: js/PenBlocks.js:37 -#: js/SensorsBlocks.js:521 -#: plugins/rodi.rtp:219 -msgid "blue" -msgstr "" - -#: js/PenBlocks.js:50 -#: js/SensorsBlocks.js:577 -#: plugins/rodi.rtp:218 -msgid "green" -msgstr "" - -#: js/PenBlocks.js:63 +#: js/blocks/PenBlocks.js:80 msgid "yellow" msgstr "" -#: js/PenBlocks.js:76 +#: js/blocks/PenBlocks.js:96 #: plugins/nutrition.rtp:164 msgid "orange" msgstr "" -#: js/PenBlocks.js:89 -#: js/SensorsBlocks.js:633 -#: plugins/rodi.rtp:217 -msgid "red" -msgstr "" - -#: js/PenBlocks.js:102 +#: js/blocks/PenBlocks.js:128 msgid "white" msgstr "" -#: js/PenBlocks.js:115 +#: js/blocks/PenBlocks.js:144 msgid "black" msgstr "" -#: js/PenBlocks.js:128 +#: js/blocks/PenBlocks.js:163 msgid "begin fill" msgstr "" -#: js/PenBlocks.js:143 +#: js/blocks/PenBlocks.js:190 msgid "end fill" msgstr "" -#: js/PenBlocks.js:159 -#: js/PenBlocks.js:386 +#: js/blocks/PenBlocks.js:212 +#: js/blocks/PenBlocks.js:560 #.TRANS: set the background color msgid "background" msgstr "" -#: js/PenBlocks.js:206 -#: js/DictActions.js:71 -#: js/DictActions.js:149 -#: js/DictActions.js:186 +#: js/blocks/PenBlocks.js:274 +#: js/turtleactions/DictActions.js:71 +#: js/turtleactions/DictActions.js:138 +#: js/turtleactions/DictActions.js:170 msgid "grey" msgstr "" -#: js/PenBlocks.js:210 +#: js/blocks/PenBlocks.js:282 msgid "The Grey block returns the current pen grey value." msgstr "" -#: js/PenBlocks.js:243 -#: js/DictActions.js:69 -#: js/DictActions.js:147 -#: js/DictActions.js:185 +#: js/blocks/PenBlocks.js:340 +#: js/turtleactions/DictActions.js:69 +#: js/turtleactions/DictActions.js:136 +#: js/turtleactions/DictActions.js:169 msgid "shade" msgstr "" -#: js/PenBlocks.js:247 +#: js/blocks/PenBlocks.js:347 msgid "The Shade block returns the current pen shade value." msgstr "" -#: js/PenBlocks.js:280 -#: js/DictActions.js:67 -#: js/DictActions.js:145 -#: js/DictActions.js:184 +#: js/blocks/PenBlocks.js:405 +#: js/turtleactions/DictActions.js:67 +#: js/turtleactions/DictActions.js:134 +#: js/turtleactions/DictActions.js:168 msgid "color" msgstr "" -#: js/PenBlocks.js:285 +#: js/blocks/PenBlocks.js:415 msgid "The Color block returns the current pen color." msgstr "" -#: js/PenBlocks.js:318 -#: js/DictActions.js:73 -#: js/DictActions.js:151 -#: js/DictActions.js:187 +#: js/blocks/PenBlocks.js:470 +#: js/turtleactions/DictActions.js:73 +#: js/turtleactions/DictActions.js:140 +#: js/turtleactions/DictActions.js:171 msgid "pen size" msgstr "" -#: js/PenBlocks.js:322 +#: js/blocks/PenBlocks.js:474 msgid "The Pen size block returns the current pen size value." msgstr "" -#: js/PenBlocks.js:355 +#: js/blocks/PenBlocks.js:513 msgid "set font" msgstr "" -#: js/PenBlocks.js:358 +#: js/blocks/PenBlocks.js:518 msgid "The Set font block sets the font used by the Show block." msgstr "" -#: js/PenBlocks.js:391 +#: js/blocks/PenBlocks.js:567 msgid "The Background block sets the window background color." msgstr "" -#: js/PenBlocks.js:408 +#: js/blocks/PenBlocks.js:598 msgid "The Hollow line block creates a line with a hollow center." msgstr "" -#: js/PenBlocks.js:415 +#: js/blocks/PenBlocks.js:606 #.TRANS: draw a line logo has a hollow space down its center msgid "hollow line" msgstr "" -#: js/PenBlocks.js:462 +#: js/blocks/PenBlocks.js:675 msgid "The Fill block fills in a shape with a color." msgstr "" -#: js/PenBlocks.js:470 +#: js/blocks/PenBlocks.js:684 #.TRANS: fill in as a solid color msgid "fill" msgstr "" -#: js/PenBlocks.js:527 +#: js/blocks/PenBlocks.js:761 #.TRANS: raise up the pen so logo it does not draw when it is moved msgid "pen up" msgstr "" -#: js/PenBlocks.js:532 +#: js/blocks/PenBlocks.js:768 msgid "The Pen-up block raises the pen so that it does not draw." msgstr "" -#: js/PenBlocks.js:552 +#: js/blocks/PenBlocks.js:802 #.TRANS: put down the pen so logo it draws when it is moved msgid "pen down" msgstr "" -#: js/PenBlocks.js:557 +#: js/blocks/PenBlocks.js:810 msgid "The Pen-down block lowers the pen so that it draws." msgstr "" -#: js/PenBlocks.js:577 +#: js/blocks/PenBlocks.js:844 #.TRANS: set the width of the line drawn by the pen msgid "set pen size" msgstr "" -#: js/PenBlocks.js:583 +#: js/blocks/PenBlocks.js:854 msgid "The Set-pen-size block changes the size of the pen." msgstr "" -#: js/PenBlocks.js:623 +#: js/blocks/PenBlocks.js:913 #.TRANS: set degree of translucence of the pen color msgid "set translucency" msgstr "" -#: js/PenBlocks.js:627 +#: js/blocks/PenBlocks.js:921 msgid "The Set translucency block changes the opacity of the pen." msgstr "" -#: js/PenBlocks.js:668 +#: js/blocks/PenBlocks.js:981 msgid "set hue" msgstr "" -#: js/PenBlocks.js:672 +#: js/blocks/PenBlocks.js:989 msgid "The Set hue block changes the color of the pen." msgstr "" -#: js/PenBlocks.js:711 +#: js/blocks/PenBlocks.js:1047 msgid "set shade" msgstr "" -#: js/PenBlocks.js:717 +#: js/blocks/PenBlocks.js:1057 msgid "The Set-shade block changes the pen color from dark to light." msgstr "" -#: js/PenBlocks.js:757 +#: js/blocks/PenBlocks.js:1111 #.TRANS: set the level of vividness of the pen color msgid "set grey" msgstr "" -#: js/PenBlocks.js:761 +#: js/blocks/PenBlocks.js:1119 msgid "The Set grey block changes the vividness of the pen color." msgstr "" -#: js/PenBlocks.js:800 +#: js/blocks/PenBlocks.js:1172 msgid "set color" msgstr "" -#: js/PenBlocks.js:806 +#: js/blocks/PenBlocks.js:1182 msgid "The Set-color block changes the pen color." msgstr "" -#: js/VolumeBlocks.js:35 -msgid "synth volume" -msgstr "" - -#: js/VolumeBlocks.js:39 -msgid "The Synth volume block returns the current volume of the current synthesizer." -msgstr "" - -#: js/VolumeBlocks.js:47 -#: js/musicutils.js:730 -#: js/synthutils.js:56 -#.TRANS: musical instrument -msgid "piano" -msgstr "" - -#: js/VolumeBlocks.js:105 -msgid "master volume" -msgstr "" - -#: js/VolumeBlocks.js:109 -msgid "The Master volume block returns the master volume." -msgstr "" - -#: js/VolumeBlocks.js:355 -#: js/VolumeBlocks.js:524 -msgid "set synth volume" -msgstr "" - -#: js/VolumeBlocks.js:362 -#: js/VolumeBlocks.js:545 -msgid "synth" -msgstr "" - -#: js/VolumeBlocks.js:403 -#: js/VolumeBlocks.js:577 -#: js/VolumeBlocks.js:740 -#: js/VolumeActions.js:173 -msgid "Setting volume to 0." -msgstr "" - -#: js/VolumeBlocks.js:440 -msgid "Synth not found" -msgstr "" - -#: js/VolumeBlocks.js:494 -msgid "set drum volume" -msgstr "" - -#: js/VolumeBlocks.js:530 -msgid "The Set synth volume block will change the volume of a particular synth," -msgstr "" - -#: js/VolumeBlocks.js:532 -msgid "eg guitar violin snare drum etc." -msgstr "" - -#: js/VolumeBlocks.js:534 -msgid "The default volume is 50." -msgstr "" - -#: js/VolumeBlocks.js:536 -msgid "The range is 0 for silence to 100 for full volume." -msgstr "" - -#: js/VolumeBlocks.js:597 -msgid "set panning" -msgstr "" - -#: js/VolumeBlocks.js:603 -msgid "The Set Panning block sets the panning for all synthesizers." -msgstr "" - -#: js/VolumeBlocks.js:625 -msgid "Warning: Sound is coming out from only the left or right side." -msgstr "" - -#: js/VolumeBlocks.js:647 -#: js/VolumeBlocks.js:695 -msgid "set master volume" -msgstr "" - -#: js/VolumeBlocks.js:653 -msgid "The Set master volume block sets the volume for all synthesizers." -msgstr "" - -#: js/VolumeBlocks.js:784 -msgid "The Set relative volume block changes the volume of the contained notes." -msgstr "" - -#: js/VolumeBlocks.js:791 -msgid "set relative volume" -msgstr "" - -#: js/VolumeBlocks.js:857 -msgid "decrescendo" -msgstr "" - -#: js/VolumeBlocks.js:921 -msgid "crescendo" -msgstr "" - -#: js/ToneBlocks.js:34 -msgid "oscillator" -msgstr "" - -#: js/ToneBlocks.js:44 -#: js/timbre.js:1562 -#.TRANS: Partials refers to the number of sine waves combined into the sound. -msgid "partials" -msgstr "" - -#: js/ToneBlocks.js:76 -msgid "You are adding multiple oscillator blocks." -msgstr "" - -#: js/ToneBlocks.js:144 -#: js/timbre.js:1225 -#.TRANS: a duo synthesizer combines a synth with a sequencer -msgid "duo synth" -msgstr "" - -#: js/ToneBlocks.js:149 -msgid "The Duo synth block is a duo-frequency modulator used to define a timbre." -msgstr "" - -#: js/ToneBlocks.js:157 -#: js/timbre.js:1476 -msgid "vibrato rate" -msgstr "" - -#: js/ToneBlocks.js:157 -msgid "vibrato intensity" -msgstr "" - -#: js/ToneBlocks.js:185 -#: js/timbre.js:1221 -#.TRANS: AM (amplitude modulation) synthesizer -msgid "AM synth" -msgstr "" - -#: js/ToneBlocks.js:189 -msgid "The AM synth block is an amplitude modulator used to define a timbre." -msgstr "" - -#: js/ToneBlocks.js:224 -#: js/timbre.js:1223 -#.TRANS: FM (frequency modulation) synthesizer -msgid "FM synth" -msgstr "" - -#: js/ToneBlocks.js:228 -msgid "The FM synth block is a frequency modulator used to define a timbre." +#: js/blocks/PitchBlocks.js:141 +#.TRANS: musical transposition (adjustment of pitch up or down) +msgid "transposition" msgstr "" -#: js/ToneBlocks.js:262 -msgid "partial" +#: js/blocks/PitchBlocks.js:168 +#.TRANS: step down one note in current musical scale +msgid "scalar step down" msgstr "" -#: js/ToneBlocks.js:265 -msgid "The Partial block is used to specify a weight for a specific partial harmonic." +#: js/blocks/PitchBlocks.js:172 +msgid "The Scalar step down block returns the number of semi-tones down to the previous note in the current key and mode." msgstr "" -#: js/ToneBlocks.js:284 -#.TRANS: partials are weighted components in a harmonic series -msgid "Partial weight must be between 0 and 1." +#: js/blocks/PitchBlocks.js:190 +#.TRANS: step up one note in current musical scale +msgid "scalar step up" msgstr "" -#: js/ToneBlocks.js:297 -#.TRANS: partials are weighted components in a harmonic series -msgid "Partial block should be used inside of a Weighted-partials block." +#: js/blocks/PitchBlocks.js:194 +msgid "The Scalar step up block returns the number of semi-tones up to the next note in the current key and mode." msgstr "" -#: js/ToneBlocks.js:325 -#.TRANS: partials are weighted components in a harmonic series -msgid "weighted partials" +#: js/blocks/PitchBlocks.js:212 +#.TRANS: the change measured in half-steps between the current pitch and the previous pitch +msgid "change in pitch" msgstr "" -#: js/ToneBlocks.js:383 -msgid "The Harmonic block will add harmonics to the contained notes." +#: js/blocks/PitchBlocks.js:216 +msgid "The Change in pitch block is the difference (in half steps) between the current pitch being played and the previous pitch played." msgstr "" -#: js/ToneBlocks.js:390 -#.TRANS: A harmonic is an overtone. -msgid "harmonic" +#: js/blocks/PitchBlocks.js:243 +#.TRANS: the change measured in scale-steps between the current pitch and the previous pitch +msgid "scalar change in pitch" msgstr "" -#: js/ToneBlocks.js:431 -msgid "The Distortion block adds distortion to the pitch." +#: js/blocks/PitchBlocks.js:250 +#: js/blocks/PitchBlocks.js:432 +#: js/blocks/PitchBlocks.js:1667 +#: js/turtleactions/DictActions.js:89 +#: js/widgets/temperament.js:610 +#: js/widgets/temperament.js:614 +#: js/widgets/temperament.js:855 +#.TRANS: convert current note to piano key (1-88) +#.TRANS: a mapping of pitch to the 88 piano keys +msgid "pitch number" msgstr "" -#: js/ToneBlocks.js:438 -#: js/timbre.js:2100 -#.TRANS: distortion is an alteration in the sound -msgid "distortion" +#: js/blocks/PitchBlocks.js:256 +msgid "The Pitch number block is the value of the pitch of the note currently being played." msgstr "" -#: js/ToneBlocks.js:487 -msgid "The Tremolo block adds a wavering effect." +#: js/blocks/PitchBlocks.js:329 +#: js/blocks/PitchBlocks.js:433 +#.TRANS: the current pitch expressed in Hertz +msgid "pitch in hertz" msgstr "" -#: js/ToneBlocks.js:495 -#: js/timbre.js:2092 -#.TRANS: a wavering effect in a musical tone -msgid "tremolo" +#: js/blocks/PitchBlocks.js:334 +msgid "The Pitch in Hertz block is the value in Hertz of the pitch of the note currently being played." msgstr "" -#: js/ToneBlocks.js:500 -#: js/ToneBlocks.js:569 -#: js/ToneBlocks.js:630 -#: js/ToneBlocks.js:689 -#: js/timbre.js:2134 -#: js/timbre.js:2222 -#: js/timbre.js:2317 -#: js/timbre.js:2419 -#.TRANS: rate at which tremolo wavers -msgid "rate" +#: js/blocks/PitchBlocks.js:367 +#: js/turtleactions/DictActions.js:87 +msgid "current pitch" msgstr "" -#: js/ToneBlocks.js:502 -#: js/ToneBlocks.js:630 -#: js/timbre.js:2137 -#: js/timbre.js:2328 -#.TRANS: amplitude of tremolo waver -msgid "depth" +#: js/blocks/PitchBlocks.js:373 +msgid "The Current Pitch block is used with the Pitch Converter block. In the example above, current pitch, sol 4, is displayed as 392 hertz." msgstr "" -#: js/ToneBlocks.js:559 -msgid "The Phaser block adds a sweeping sound." +#: js/blocks/PitchBlocks.js:410 +msgid "This block converts the pitch value of the last note played into different formats such as hertz, letter name, pitch number, et al." msgstr "" -#: js/ToneBlocks.js:566 -#: js/timbre.js:2098 -#.TRANS: alter the phase of the sound -msgid "phaser" +#: js/blocks/PitchBlocks.js:434 +msgid "alphabet" msgstr "" -#: js/ToneBlocks.js:569 -#: js/timbre.js:2422 -msgid "octaves" +#: js/blocks/PitchBlocks.js:436 +#.TRANS: Translate as "alphabet class" +msgid "letter class" msgstr "" -#: js/ToneBlocks.js:569 -#: js/timbre.js:2425 -msgid "base frequency" +#: js/blocks/PitchBlocks.js:437 +msgid "solfege class" msgstr "" -#: js/ToneBlocks.js:619 -msgid "The Chorus block adds a chorus effect." +#: js/blocks/PitchBlocks.js:438 +msgid "staff y" msgstr "" -#: js/ToneBlocks.js:627 -#: js/timbre.js:2096 -#.TRANS: musical effect to simulate a choral sound -msgid "chorus" +#: js/blocks/PitchBlocks.js:439 +msgid "solfege syllable" msgstr "" -#: js/ToneBlocks.js:630 -msgid "delay" +#: js/blocks/PitchBlocks.js:440 +msgid "pitch class" msgstr "" -#: js/ToneBlocks.js:678 -msgid "The Vibrato block adds a rapid, slight variation in pitch." +#: js/blocks/PitchBlocks.js:441 +msgid "scalar class" msgstr "" -#: js/ToneBlocks.js:686 -#: js/timbre.js:2094 -#.TRANS: a rapid, slight variation in pitch -msgid "vibrato" +#: js/blocks/PitchBlocks.js:443 +msgid "nth degree" msgstr "" -#: js/ToneBlocks.js:689 -#: js/timbre.js:2221 -msgid "intensity" +#: js/blocks/PitchBlocks.js:444 +msgid "pitch to shade" msgstr "" -#: js/ToneBlocks.js:733 -#.TRANS: select synthesizer -msgid "set synth" +#: js/blocks/PitchBlocks.js:445 +msgid "pitch to color" msgstr "" -#: js/ToneBlocks.js:804 -msgid "synth name" +#: js/blocks/PitchBlocks.js:629 +#: js/widgets/musickeyboard.js:735 +#.TRANS: MIDI is a technical standard for electronic music +msgid "MIDI" msgstr "" -#: js/ToneBlocks.js:842 -msgid "set default instrument" +#: js/blocks/PitchBlocks.js:642 +#.TRANS: set an offset associated with the numeric piano keyboard mapping +msgid "set pitch number offset" msgstr "" -#: js/ToneBlocks.js:895 -#: js/ToneBlocks.js:943 -#.TRANS: set the characteristics of a custom instrument -msgid "set instrument" +#: js/blocks/PitchBlocks.js:645 +msgid "The Set pitch number offset block is used to set the offset for mapping pitch numbers to pitch and octave." msgstr "" -#: js/ToneBlocks.js:898 -#: js/ToneBlocks.js:926 -#: js/ToneBlocks.js:932 -msgid "The Set instrument block selects a voice for the synthesizer," +#: js/blocks/PitchBlocks.js:679 +#.TRANS: convert piano key number (1-88) to pitch +msgid "number to pitch" msgstr "" -#: js/ToneBlocks.js:900 -#: js/ToneBlocks.js:934 -msgid "eg guitar piano violin or cello." +#: js/blocks/PitchBlocks.js:682 +msgid "The Number to pitch block will convert a pitch number to a pich name." msgstr "" -#: js/ToneBlocks.js:1015 -msgid "Import a sound file to use as an instrument and set its pitch center." +#: js/blocks/PitchBlocks.js:715 +#.TRANS: convert piano key number (1-88) to octave +msgid "number to octave" msgstr "" -#: js/ToneBlocks.js:1110 -msgid "Upload a sound file to connect with the sample block." +#: js/blocks/PitchBlocks.js:717 +msgid "The Number to octave block will convert a pitch number to an octave." msgstr "" -#: js/MeterBlocks.js:34 -#.TRANS: musical meter (time signature), e.g., 4:4 -msgid "current meter" +#: js/blocks/PitchBlocks.js:726 +msgid "y to pitch" msgstr "" -#: js/MeterBlocks.js:85 -#.TRANS: number of beats per minute -msgid "beat factor" +#: js/blocks/PitchBlocks.js:729 +msgid "Y to pitch block will convert a staff y position to corresponding pitch notation." msgstr "" -#: js/MeterBlocks.js:161 -msgid "The Beats per minute block returns the current beats per minute." +#: js/blocks/PitchBlocks.js:841 +msgid "accidental selector" msgstr "" -#: js/MeterBlocks.js:169 -#: js/status.js:152 -#.TRANS: number of beats played per minute -msgid "beats per minute2" +#: js/blocks/PitchBlocks.js:844 +msgid "The Accidental selector block is used to choose between double-sharp, sharp, natural, flat, and double-flat." msgstr "" -#: js/MeterBlocks.js:169 -#: js/MeterBlocks.js:1056 -#: js/MeterBlocks.js:1133 -#: js/MeterBlocks.js:1211 -#.TRANS: sets tempo by defining a beat and beats per minute -msgid "beats per minute" +#: js/blocks/PitchBlocks.js:858 +msgid "Pitch can be specified in terms of ni dha pa ma ga re sa." msgstr "" -#: js/MeterBlocks.js:233 -#.TRANS: count of current musical measure in meter -msgid "measure count" +#: js/blocks/PitchBlocks.js:872 +msgid "Pitch can be specified in terms of C D E F G A B." msgstr "" -#: js/MeterBlocks.js:241 -msgid "The Measure count block returns the current measure." +#: js/blocks/PitchBlocks.js:884 +msgid "solfege" msgstr "" -#: js/MeterBlocks.js:290 -#.TRANS: count of current beat in the meter -msgid "beat count" +#: js/blocks/PitchBlocks.js:887 +msgid "Pitch can be specified in terms of do re mi fa sol la ti." msgstr "" -#: js/MeterBlocks.js:300 -#: js/MeterBlocks.js:311 -#: js/MeterBlocks.js:565 -#: js/MeterBlocks.js:576 -msgid "The Beat count block is the number of the current beat," +#: js/blocks/PitchBlocks.js:922 +msgid "The Invert block rotates any contained notes around a target note." msgstr "" -#: js/MeterBlocks.js:313 -#: js/MeterBlocks.js:578 -msgid "eg 1, 2, 3, or 4." +#: js/blocks/PitchBlocks.js:929 +#.TRANS: pitch inversion rotates a pitch around another pitch +msgid "invert" msgstr "" -#: js/MeterBlocks.js:368 -#.TRANS: count the number of notes -msgid "sum note values" +#: js/blocks/PitchBlocks.js:968 +#.TRANS: pitch inversion rotates a pitch around another pitch (odd number) +msgid "invert (odd)" msgstr "" -#: js/MeterBlocks.js:376 -#: js/MeterBlocks.js:440 -msgid "The Note counter block can be used to count the number of contained notes." +#: js/blocks/PitchBlocks.js:1001 +#.TRANS: pitch inversion rotates a pitch around another pitch (even number) +msgid "invert (even)" msgstr "" -#: js/MeterBlocks.js:432 -#.TRANS: count the number of notes -msgid "note counter" +#: js/blocks/PitchBlocks.js:1022 +#.TRANS: register is the octave of the current pitch +msgid "register" msgstr "" -#: js/MeterBlocks.js:496 -#.TRANS: number of whole notes that have been played -msgid "whole notes played" +#: js/blocks/PitchBlocks.js:1026 +msgid "The Register block provides an easy way to modify the register (octave) of the notes that follow it." msgstr "" -#: js/MeterBlocks.js:505 -msgid "The Whole notes played block returns the total number of whole notes played." +#: js/blocks/PitchBlocks.js:1047 +#.TRANS: cents are units used to specify the ratio between pitches. There are 100 cents between successive notes. +msgid "50 cents" msgstr "" -#: js/MeterBlocks.js:555 -#: js/DictActions.js:83 -#.TRANS: number of notes that have been played -msgid "notes played" +#: js/blocks/PitchBlocks.js:1102 +msgid "The Semi-tone transposition block will shift the pitches contained inside Note blocks up (or down) by half steps." msgstr "" -#: js/MeterBlocks.js:653 -msgid "The No clock block decouples the notes from the master clock." +#: js/blocks/PitchBlocks.js:1104 +msgid "In the example shown above, sol is shifted up to sol#." msgstr "" -#: js/MeterBlocks.js:661 -#.TRANS: don't lock notes to master clock -msgid "no clock" +#: js/blocks/PitchBlocks.js:1110 +#.TRANS: adjust the amount of shift (up or down) of a pitch +msgid "semi-tone transpose" msgstr "" -#: js/MeterBlocks.js:700 -msgid "on weak beat do" +#: js/blocks/PitchBlocks.js:1143 +msgid "The Transpose by Ratio block will shift the pitches contained inside Note blocks up (or down) by a ratio" msgstr "" -#: js/MeterBlocks.js:705 -msgid "The On-weak-beat block lets you specify actions to take on weak (off) beats." +#: js/blocks/PitchBlocks.js:1149 +#.TRANS: adjust the amount of shift (up or down) of a pitch +msgid "transpose by ratio" msgstr "" -#: js/MeterBlocks.js:750 -msgid "on strong beat" +#: js/blocks/PitchBlocks.js:1232 +#.TRANS: down sixth means the note is five scale degrees below current note +msgid "down sixth" msgstr "" -#: js/MeterBlocks.js:758 -msgid "The On-strong-beat block lets you specify actions to take on specified beats." +#: js/blocks/PitchBlocks.js:1251 +#.TRANS: down third means the note is two scale degrees below current note +msgid "down third" msgstr "" -#: js/MeterBlocks.js:769 -msgid "beat" +#: js/blocks/PitchBlocks.js:1270 +#.TRANS: seventh means the note is the six scale degrees above current note +msgid "seventh" msgstr "" -#: js/MeterBlocks.js:813 -msgid "on every beat do" +#: js/blocks/PitchBlocks.js:1289 +#.TRANS: sixth means the note is the five scale degrees above current note +msgid "sixth" msgstr "" -#: js/MeterBlocks.js:821 -msgid "The On-every-beat block lets you specify actions to take on every beat." +#: js/blocks/PitchBlocks.js:1308 +#.TRANS: fifth means the note is the four scale degrees above current note +msgid "fifth" msgstr "" -#: js/MeterBlocks.js:874 -msgid "on every note do" +#: js/blocks/PitchBlocks.js:1328 +#.TRANS: fourth means the note is three scale degrees above current note +msgid "fourth" msgstr "" -#: js/MeterBlocks.js:882 -msgid "The On-every-note block lets you specify actions to take on every note." +#: js/blocks/PitchBlocks.js:1347 +#.TRANS: third means the note is two scale degrees above current note +msgid "third" msgstr "" -#: js/MeterBlocks.js:928 -#: js/MeterBlocks.js:999 -#.TRANS: sets tempo by defining a beat and beats per minute -msgid "master beats per minute" +#: js/blocks/PitchBlocks.js:1366 +#.TRANS: second means the note is one scale degree above current note +msgid "second" msgstr "" -#: js/MeterBlocks.js:952 -#: js/MeterBlocks.js:1078 -#: js/MeterBlocks.js:1135 -msgid "bpm" +#: js/blocks/PitchBlocks.js:1407 +msgid "The Scalar transposition block will shift the pitches contained inside Note blocks up (or down) the scale." msgstr "" -#: js/MeterBlocks.js:952 -#: js/MeterBlocks.js:1078 -#: js/MeterBlocks.js:1135 -msgid "beat value" +#: js/blocks/PitchBlocks.js:1409 +msgid "In the example shown above, sol is shifted up to la." msgstr "" -#: js/MeterBlocks.js:1024 -#: js/MeterBlocks.js:1167 -#: js/MeterBlocks.js:1241 -msgid "Beats per minute must be > 30." +#: js/blocks/PitchBlocks.js:1416 +#.TRANS: adjust the amount of shift (up or down) of a pitch by musical scale (scalar) steps +msgid "scalar transpose" msgstr "" -#: js/MeterBlocks.js:1027 -#: js/MeterBlocks.js:1170 -#: js/MeterBlocks.js:1244 -msgid "Maximum beats per minute is 1000." +#: js/blocks/PitchBlocks.js:1451 +msgid "The Accidental block is used to create sharps and flats" msgstr "" -#: js/MeterBlocks.js:1068 -msgid "The Beats per minute block sets the number of 1/4 notes per minute." +#: js/blocks/PitchBlocks.js:1458 +#.TRANS: An accidental is a modification to a pitch, e.g., sharp or flat. +msgid "accidental override" msgstr "" -#: js/MeterBlocks.js:1279 -#.TRANS: anacrusis -msgid "pickup" +#: js/blocks/PitchBlocks.js:1581 +msgid "The Hertz block (in combination with a Number block) will play a sound at the specified frequency." msgstr "" -#: js/MeterBlocks.js:1367 -msgid "number of beats" +#: js/blocks/PitchBlocks.js:1671 +msgid "The Pitch Number block will play a pitch associated by its number, e.g. 0 for C and 7 for G." msgstr "" -#: js/DictBlocks.js:77 -msgid "show dictionary" +#: js/blocks/PitchBlocks.js:1703 +#: js/blocks/PitchBlocks.js:1745 +#.TRANS: a numeric mapping of the notes in an octave based on the musical mode +#.TRANS: a numeric mapping of the notes in an octave based on the musical mode +msgid "nth modal pitch" msgstr "" -#: js/DictBlocks.js:129 -msgid "The Dictionary block returns a dictionary." +#: js/blocks/PitchBlocks.js:1706 +msgid "n^th Modal Pitch takes the pattern of pitches in semitones for a mode and makes each point a degree of the mode," msgstr "" -#: js/DictBlocks.js:197 -#: js/DictBlocks.js:339 -msgid "The Get-dict block returns a value in the dictionary for a specified key." +#: js/blocks/PitchBlocks.js:1708 +msgid "starting from 1 and regardless of tonal framework (i.e. not always 8 notes in the octave)" msgstr "" -#: js/DictBlocks.js:212 -#: js/DictBlocks.js:354 -#.TRANS: retrieve a value from the dictionary with a given key -msgid "get value" +#: js/blocks/PitchBlocks.js:1749 +msgid "N^th Modal Pitch takes a number as an input as the n^th degree for the given mode. 0 is the first position, 1 is the second, -1 is the note before the first etc." msgstr "" -#: js/DictBlocks.js:215 -#: js/DictBlocks.js:216 -#: js/DictBlocks.js:289 -#: js/DictBlocks.js:290 -#: js/DictBlocks.js:357 -#: js/DictBlocks.js:430 -#: js/DictBlocks.js:431 -msgid "key2" +#: js/blocks/PitchBlocks.js:1751 +msgid "The pitches change according to the mode specified without any need for respellings." msgstr "" -#: js/DictBlocks.js:271 -#: js/DictBlocks.js:411 -msgid "The Set-dict block sets a value in the dictionary for a specified key." +#: js/blocks/PitchBlocks.js:1790 +msgid "Scale Degree is a common convention in music. Scale Degree offers seven possible positions in the scale (1-7) and can be modified via accidentals." msgstr "" -#: js/DictBlocks.js:286 -#: js/DictBlocks.js:427 -#.TRANS: set a value in the dictionary for a given key -msgid "set value" +#: js/blocks/PitchBlocks.js:1792 +msgid "Scale Degree 1 is always the first pitch in a given scale, regardless of octave." msgstr "" -#: js/ExtrasBlocks.js:33 -msgid "fraction" +#: js/blocks/PitchBlocks.js:1814 +#.TRANS: step some number of notes in current musical scale +msgid "scalar step" msgstr "" -#: js/ExtrasBlocks.js:36 -msgid "Convert a float to a fraction" +#: js/blocks/PitchBlocks.js:1819 +msgid "The Scalar Step block (in combination with a Number block) will play the next pitch in a scale," msgstr "" -#: js/ExtrasBlocks.js:93 -msgid "save as ABC" +#: js/blocks/PitchBlocks.js:1821 +msgid "eg if the last note played was sol, Scalar Step 1 will play la." msgstr "" -#: js/ExtrasBlocks.js:96 -#: js/ExtrasBlocks.js:132 -#: js/ExtrasBlocks.js:168 -msgid "title" +#: js/blocks/PitchBlocks.js:1857 +msgid "The Pitch block specifies the pitch name and octave of a note that together determine the frequency of the note." msgstr "" -#: js/ExtrasBlocks.js:129 -msgid "save as Lilypond" +#: js/blocks/ProgramBlocks.js:33 +msgid "The Load-heap-from-app block loads the heap from a web page." msgstr "" -#: js/ExtrasBlocks.js:165 -msgid "save as SVG" +#: js/blocks/ProgramBlocks.js:44 +#.TRANS: load the heap contents from a URL +msgid "load heap from App" msgstr "" -#: js/ExtrasBlocks.js:216 -msgid "no background" +#: js/blocks/ProgramBlocks.js:95 +msgid "Error parsing JSON data:" msgstr "" -#: js/ExtrasBlocks.js:219 -msgid "The No background block eliminates the background from the saved SVG output." +#: js/blocks/ProgramBlocks.js:100 +msgid "404: Page not found" msgstr "" -#: js/ExtrasBlocks.js:247 -msgid "show blocks" +#: js/blocks/ProgramBlocks.js:133 +msgid "The Save-heap-to-app block saves the heap to a web page." msgstr "" -#: js/ExtrasBlocks.js:249 -msgid "The Show blocks block shows the blocks." +#: js/blocks/ProgramBlocks.js:144 +#.TRANS: save the heap contents to a URL +msgid "save heap to App" msgstr "" -#: js/ExtrasBlocks.js:274 -msgid "hide blocks" +#: js/blocks/ProgramBlocks.js:189 +msgid "Cannot find a valid heap for" msgstr "" -#: js/ExtrasBlocks.js:276 -msgid "The Hide blocks block hides the blocks." +#: js/blocks/ProgramBlocks.js:206 +msgid "The Load-heap block loads the heap from a file." msgstr "" -#: js/ExtrasBlocks.js:305 -#: js/ExtrasBlocks.js:335 -msgid "The Space block is used to add space between blocks." +#: js/blocks/ProgramBlocks.js:217 +#.TRANS: load the heap from a file +msgid "load heap" msgstr "" -#: js/ExtrasBlocks.js:373 -msgid "wait" +#: js/blocks/ProgramBlocks.js:270 +msgid "The file you selected does not contain a valid heap." msgstr "" -#: js/ExtrasBlocks.js:376 -msgid "The Wait block pauses the program for a specified number of seconds." +#: js/blocks/ProgramBlocks.js:275 +msgid "The loadHeap block needs a loadFile block." msgstr "" -#: js/ExtrasBlocks.js:430 -#: plugins/facebook.rtp:30 -msgid "comment" +#: js/blocks/ProgramBlocks.js:291 +msgid "The Set-heap block loads the heap." msgstr "" -#: js/ExtrasBlocks.js:466 -msgid "print" +#: js/blocks/ProgramBlocks.js:340 +msgid "The block you selected does not contain a valid heap." msgstr "" -#: js/ExtrasBlocks.js:473 -msgid "The Print block displays text at the top of the screen." +#: js/blocks/ProgramBlocks.js:343 +msgid "The Set heap block needs a heap." msgstr "" -#: js/ExtrasBlocks.js:579 -msgid "display grid" +#: js/blocks/ProgramBlocks.js:360 +msgid "The Load-dictionary block loads a dictionary from a file." msgstr "" -#: js/ExtrasBlocks.js:584 -msgid "The Display Grid Block changes the grid type" +#: js/blocks/ProgramBlocks.js:372 +#.TRANS: load a dictionary from a file +msgid "load dictionary" msgstr "" -#: js/ExtrasBlocks.js:686 -#: js/ExtrasBlocks.js:705 -#: js/ExtrasBlocks.js:728 -#: js/ExtrasBlocks.js:751 -#: js/ExtrasBlocks.js:769 -#: js/ExtrasBlocks.js:788 -#: js/ExtrasBlocks.js:807 -#: js/ExtrasBlocks.js:826 -msgid "unknown" +#: js/blocks/ProgramBlocks.js:390 +#: js/blocks/ProgramBlocks.js:658 +#: js/blocks/ToneBlocks.js:1025 +msgid "file" msgstr "" -#: js/SensorsBlocks.js:36 -msgid "The Input block prompts for keyboard input." +#: js/blocks/ProgramBlocks.js:444 +msgid "The file you selected does not contain a valid dictionary." msgstr "" -#: js/SensorsBlocks.js:46 -msgid "input" +#: js/blocks/ProgramBlocks.js:449 +msgid "The load dictionary block needs a load file block." msgstr "" -#: js/SensorsBlocks.js:64 -msgid "Input a value" +#: js/blocks/ProgramBlocks.js:466 +msgid "The Set-dictionary block loads a dictionary." msgstr "" -#: js/SensorsBlocks.js:126 -msgid "input value" +#: js/blocks/ProgramBlocks.js:477 +#.TRANS: load a dictionary from a JSON +msgid "set dictionary" msgstr "" -#: js/SensorsBlocks.js:131 -msgid "The Input-value block stores the input." +#: js/blocks/ProgramBlocks.js:546 +msgid "The block you selected does not contain a valid dictionary." msgstr "" -#: js/SensorsBlocks.js:238 -msgid "loudness" +#: js/blocks/ProgramBlocks.js:550 +msgid "The set dictionary block needs a dictionary." msgstr "" -#: js/SensorsBlocks.js:245 -msgid "The Loudness block returns the volume detected by the microphone." +#: js/blocks/ProgramBlocks.js:567 +msgid "The Save-heap block saves the heap to a file." msgstr "" -#: js/SensorsBlocks.js:300 -msgid "click" +#: js/blocks/ProgramBlocks.js:578 +#.TRANS: save the heap to a file +msgid "save heap" msgstr "" -#: js/SensorsBlocks.js:306 -msgid "The Click block triggers an event if a mouse has been clicked." +#: js/blocks/ProgramBlocks.js:629 +msgid "The Save-dictionary block saves a dictionary to a file." msgstr "" -#: js/SensorsBlocks.js:313 -msgid "The Click block triggers an event if a turtle has been clicked." +#: js/blocks/ProgramBlocks.js:640 +#.TRANS: save a dictionary to a file +msgid "save dictionary" msgstr "" -#: js/SensorsBlocks.js:342 -msgid "cursor over" +#: js/blocks/ProgramBlocks.js:720 +msgid "The Open palette block opens a palette." msgstr "" -#: js/SensorsBlocks.js:387 -msgid "cursor out" +#: js/blocks/ProgramBlocks.js:727 +msgid "open palette" msgstr "" -#: js/SensorsBlocks.js:433 -msgid "cursor button down" +#: js/blocks/ProgramBlocks.js:785 +msgid "The Delete block block removes a block." msgstr "" -#: js/SensorsBlocks.js:477 -msgid "cursor button up" +#: js/blocks/ProgramBlocks.js:797 +#.TRANS: Move this block to the trash. +msgid "delete block" msgstr "" -#: js/SensorsBlocks.js:638 -msgid "The Get red block returns the red component of the pixel under the mouse." +#: js/blocks/ProgramBlocks.js:861 +msgid "The Move block block moves a block." msgstr "" -#: js/SensorsBlocks.js:644 -msgid "The Get red block returns the red component of the pixel under the turtle." +#: js/blocks/ProgramBlocks.js:869 +#.TRANS: Move the position of a block on the screen. +msgid "move block" msgstr "" -#: js/SensorsBlocks.js:685 -#: plugins/rodi.rtp:216 -msgid "pixel color" +#: js/blocks/ProgramBlocks.js:881 +#: js/blocks/ProgramBlocks.js:1048 +msgid "block number" msgstr "" -#: js/SensorsBlocks.js:690 -msgid "The Get pixel block returns the color of the pixel under the mouse." +#: js/blocks/ProgramBlocks.js:935 +#.TRANS: Run program beginning at this block. +msgid "run block" msgstr "" -#: js/SensorsBlocks.js:696 -msgid "The Get pixel block returns the color of the pixel under the turtle." +#: js/blocks/ProgramBlocks.js:1025 +msgid "The Dock block block connections two blocks." msgstr "" -#: js/SensorsBlocks.js:758 -msgid "time" +#: js/blocks/ProgramBlocks.js:1036 +#.TRANS: We can connect a block to another block. +msgid "connect blocks" msgstr "" -#: js/SensorsBlocks.js:804 -msgid "cursor y" +#: js/blocks/ProgramBlocks.js:1048 +msgid "target block" msgstr "" -#: js/SensorsBlocks.js:809 -msgid "The Cursor Y block returns the vertical position of the mouse." +#: js/blocks/ProgramBlocks.js:1048 +msgid "connection number" msgstr "" -#: js/SensorsBlocks.js:845 -msgid "cursor x" +#: js/blocks/ProgramBlocks.js:1140 +msgid "The Make block block creates a new block." msgstr "" -#: js/SensorsBlocks.js:850 -msgid "The Cursor X block returns the horizontal position of the mouse." +#: js/blocks/ProgramBlocks.js:1152 +#.TRANS: Create a new block +msgid "make block" msgstr "" -#: js/SensorsBlocks.js:886 -msgid "mouse button" +#: js/blocks/ProgramBlocks.js:1285 +msgid "Cannot find block" msgstr "" -#: js/SensorsBlocks.js:888 -msgid "The Mouse-button block returns True if the mouse button is pressed." +#: js/blocks/ProgramBlocks.js:1304 +#: js/blocks/ProgramBlocks.js:1313 +msgid "Warning: block argument type mismatch" msgstr "" -#: js/SensorsBlocks.js:934 -msgid "to ASCII" +#: js/blocks/ProgramBlocks.js:1347 +msgid "The Open project block is used to open a project from a web page." msgstr "" -#: js/SensorsBlocks.js:938 -msgid "The To ASCII block converts numbers to letters." +#: js/blocks/ProgramBlocks.js:1357 +msgid "open project" msgstr "" -#: js/SensorsBlocks.js:1005 -msgid "The Keyboard block returns computer keyboard input." +#: js/blocks/ProgramBlocks.js:1410 +msgid "Please enter a valid URL." msgstr "" -#: js/IntervalsActions.js:216 -msgid "Adding missing pitch number 0." +#: js/blocks/ToneBlocks.js:34 +msgid "oscillator" msgstr "" -#: js/IntervalsActions.js:224 -msgid "Ignoring pitch numbers less than zero or greater than eleven." +#: js/blocks/ToneBlocks.js:42 +#: js/blocks/WidgetBlocks.js:179 +#: js/widgets/timbre.js:1558 +#: js/widgets/timbre.js:1808 +#.TRANS: there are different types (sine, triangle, square...) of oscillators. +#.TRANS: type of filter, e.g., lowpass, highpass, etc. +msgid "type" msgstr "" -#: js/IntervalsActions.js:230 -msgid "Ignoring duplicate pitch numbers." +#: js/blocks/ToneBlocks.js:44 +#: js/widgets/timbre.js:1562 +#.TRANS: Partials refers to the number of sine waves combined into the sound. +msgid "partials" msgstr "" -#: js/PitchActions.js:88 -msgid "The Scalar Step Block must be used inside of a Note Block." +#: js/blocks/ToneBlocks.js:76 +msgid "You are adding multiple oscillator blocks." msgstr "" -#: js/PitchActions.js:107 -msgid "The Scalar Step Block must be preceded by a Pitch Block." +#: js/blocks/ToneBlocks.js:144 +#: js/widgets/timbre.js:1225 +#.TRANS: a duo synthesizer combines a synth with a sequencer +msgid "duo synth" msgstr "" -#: js/DrumActions.js:231 -msgid "Noise Block: Did you mean to use a Note block?" +#: js/blocks/ToneBlocks.js:149 +msgid "The Duo synth block is a duo-frequency modulator used to define a timbre." msgstr "" -#: js/MeterActions.js:101 -#: js/MeterActions.js:139 -msgid "beats per minute must be greater than" +#: js/blocks/ToneBlocks.js:157 +#: js/widgets/timbre.js:1476 +msgid "vibrato rate" msgstr "" -#: js/MeterActions.js:111 -#: js/MeterActions.js:149 -msgid "maximum" +#: js/blocks/ToneBlocks.js:157 +msgid "vibrato intensity" msgstr "" -#: js/MeterActions.js:117 -#: js/MeterActions.js:155 -msgid "beats per minute is" +#: js/blocks/ToneBlocks.js:185 +#: js/widgets/timbre.js:1221 +#.TRANS: AM (amplitude modulation) synthesizer +msgid "AM synth" msgstr "" -#: js/ToneActions.js:134 -msgid "Vibrato intensity must be between 1 and 100." +#: js/blocks/ToneBlocks.js:189 +msgid "The AM synth block is an amplitude modulator used to define a timbre." msgstr "" -#: js/ToneActions.js:139 -msgid "Vibrato rate must be greater than 0." +#: js/blocks/ToneBlocks.js:224 +#: js/widgets/timbre.js:1223 +#.TRANS: FM (frequency modulation) synthesizer +msgid "FM synth" msgstr "" -#: js/ToneActions.js:192 -#: js/ToneActions.js:265 -#.TRANS: Depth is the intesity of the tremolo or chorus effect. -msgid "Depth is out of range." +#: js/blocks/ToneBlocks.js:228 +msgid "The FM synth block is a frequency modulator used to define a timbre." msgstr "" -#: js/ToneActions.js:301 -msgid "Distortion must be from 0 to 100." +#: js/blocks/ToneBlocks.js:262 +msgid "partial" msgstr "" -#: js/ToneActions.js:332 -#.TRANS: partials components in a harmonic series -msgid "Partial must be greater than or equal to 0." +#: js/blocks/ToneBlocks.js:265 +msgid "The Partial block is used to specify a weight for a specific partial harmonic." msgstr "" -#: js/ToneActions.js:378 -#: js/ToneActions.js:417 -#: js/ToneActions.js:456 -#: js/timbre.js:782 -msgid "Unable to use synth due to existing oscillator" +#: js/blocks/ToneBlocks.js:284 +#.TRANS: partials are weighted components in a harmonic series +msgid "Partial weight must be between 0 and 1." msgstr "" -#: js/ToneActions.js:388 -#: js/ToneActions.js:427 -msgid "The input cannot be negative." +#: js/blocks/ToneBlocks.js:297 +#.TRANS: partials are weighted components in a harmonic series +msgid "Partial block should be used inside of a Weighted-partials block." msgstr "" -#: js/DictActions.js:75 -#: js/DictActions.js:153 -#: js/DictActions.js:188 -msgid "font" +#: js/blocks/ToneBlocks.js:325 +#.TRANS: partials are weighted components in a harmonic series +msgid "weighted partials" msgstr "" -#: js/musicutils.js:363 -#: js/musicutils.js:471 -#: js/pitchdrummatrix.js:151 -#: js/musickeyboard.js:2563 -msgid "rest" +#: js/blocks/ToneBlocks.js:383 +msgid "The Harmonic block will add harmonics to the contained notes." msgstr "" -#: js/musicutils.js:565 -#.TRANS: ordinal number. Please keep exactly one space between each number. -msgid "1st 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th" +#: js/blocks/ToneBlocks.js:390 +#.TRANS: A harmonic is an overtone. +msgid "harmonic" msgstr "" -#: js/musicutils.js:629 -#: js/musicutils.js:812 -#: js/musicutils.js:911 -#.TRANS: augmented is a music term related to intervals -msgid "augmented" +#: js/blocks/ToneBlocks.js:431 +msgid "The Distortion block adds distortion to the pitch." msgstr "" -#: js/musicutils.js:631 -#: js/musicutils.js:813 -#: js/musicutils.js:910 -#.TRANS: diminished is a music term related to intervals and mode -msgid "diminished" +#: js/blocks/ToneBlocks.js:438 +#: js/widgets/timbre.js:2100 +#.TRANS: distortion is an alteration in the sound +msgid "distortion" msgstr "" -#: js/musicutils.js:639 -#.TRANS: twelve semi-tone scale for music -msgid "chromatic" +#: js/blocks/ToneBlocks.js:487 +msgid "The Tremolo block adds a wavering effect." msgstr "" -#: js/musicutils.js:640 -msgid "algerian" +#: js/blocks/ToneBlocks.js:495 +#: js/widgets/timbre.js:2092 +#.TRANS: a wavering effect in a musical tone +msgid "tremolo" msgstr "" -#: js/musicutils.js:641 -msgid "spanish" +#: js/blocks/ToneBlocks.js:500 +#: js/blocks/ToneBlocks.js:569 +#: js/blocks/ToneBlocks.js:630 +#: js/blocks/ToneBlocks.js:689 +#: js/widgets/timbre.js:2134 +#: js/widgets/timbre.js:2222 +#: js/widgets/timbre.js:2317 +#: js/widgets/timbre.js:2419 +#.TRANS: rate at which tremolo wavers +msgid "rate" msgstr "" -#: js/musicutils.js:643 -#.TRANS: modal scale in music -msgid "octatonic" +#: js/blocks/ToneBlocks.js:502 +#: js/blocks/ToneBlocks.js:630 +#: js/widgets/timbre.js:2137 +#: js/widgets/timbre.js:2328 +#.TRANS: amplitude of tremolo waver +msgid "depth" msgstr "" -#: js/musicutils.js:645 -#.TRANS: harmonic major scale in music -msgid "harmonic major" +#: js/blocks/ToneBlocks.js:559 +msgid "The Phaser block adds a sweeping sound." msgstr "" -#: js/musicutils.js:647 -#.TRANS: natural minor scales in music -msgid "natural minor" +#: js/blocks/ToneBlocks.js:566 +#: js/widgets/timbre.js:2098 +#.TRANS: alter the phase of the sound +msgid "phaser" msgstr "" -#: js/musicutils.js:649 -#.TRANS: harmonic minor scale in music -msgid "harmonic minor" +#: js/blocks/ToneBlocks.js:569 +#: js/turtleactions/IntervalsActions.js:114 +#: js/widgets/timbre.js:2422 +msgid "octaves" msgstr "" -#: js/musicutils.js:651 -#.TRANS: melodic minor scale in music -msgid "melodic minor" +#: js/blocks/ToneBlocks.js:569 +#: js/widgets/timbre.js:2425 +msgid "base frequency" msgstr "" -#: js/musicutils.js:655 -#.TRANS: modal scale for music -msgid "dorian" +#: js/blocks/ToneBlocks.js:619 +msgid "The Chorus block adds a chorus effect." msgstr "" -#: js/musicutils.js:657 -#.TRANS: modal scale for music -msgid "phrygian" +#: js/blocks/ToneBlocks.js:627 +#: js/widgets/timbre.js:2096 +#.TRANS: musical effect to simulate a choral sound +msgid "chorus" msgstr "" -#: js/musicutils.js:659 -#.TRANS: modal scale for music -msgid "lydian" +#: js/blocks/ToneBlocks.js:630 +msgid "delay" msgstr "" -#: js/musicutils.js:661 -#.TRANS: modal scale for music -msgid "mixolydian" +#: js/blocks/ToneBlocks.js:678 +msgid "The Vibrato block adds a rapid, slight variation in pitch." msgstr "" -#: js/musicutils.js:665 -#.TRANS: modal scale for music -msgid "locrian" +#: js/blocks/ToneBlocks.js:686 +#: js/widgets/timbre.js:2094 +#.TRANS: a rapid, slight variation in pitch +msgid "vibrato" msgstr "" -#: js/musicutils.js:667 -#.TRANS: minor jazz scale for music -msgid "jazz minor" +#: js/blocks/ToneBlocks.js:689 +#: js/widgets/timbre.js:2221 +msgid "intensity" msgstr "" -#: js/musicutils.js:669 -#.TRANS: bebop scale for music -msgid "bebop" +#: js/blocks/ToneBlocks.js:733 +#.TRANS: select synthesizer +msgid "set synth" msgstr "" -#: js/musicutils.js:670 -msgid "arabic" +#: js/blocks/ToneBlocks.js:804 +msgid "synth name" msgstr "" -#: js/musicutils.js:671 -msgid "byzantine" +#: js/blocks/ToneBlocks.js:842 +msgid "set default instrument" msgstr "" -#: js/musicutils.js:673 -#.TRANS: musical scale for music by Verdi -msgid "enigmatic" +#: js/blocks/ToneBlocks.js:895 +#: js/blocks/ToneBlocks.js:943 +#.TRANS: set the characteristics of a custom instrument +msgid "set instrument" msgstr "" -#: js/musicutils.js:674 -msgid "ethiopian" +#: js/blocks/ToneBlocks.js:898 +#: js/blocks/ToneBlocks.js:926 +#: js/blocks/ToneBlocks.js:932 +msgid "The Set instrument block selects a voice for the synthesizer," msgstr "" -#: js/musicutils.js:676 -#.TRANS: Ethiopic scale for music -msgid "geez" +#: js/blocks/ToneBlocks.js:900 +#: js/blocks/ToneBlocks.js:934 +msgid "eg guitar piano violin or cello." msgstr "" -#: js/musicutils.js:677 -msgid "hindu" +#: js/blocks/ToneBlocks.js:1015 +msgid "Import a sound file to use as an instrument and set its pitch center." msgstr "" -#: js/musicutils.js:678 -msgid "hungarian" +#: js/blocks/ToneBlocks.js:1110 +msgid "Upload a sound file to connect with the sample block." msgstr "" -#: js/musicutils.js:680 -#.TRANS: minor Romanian scale for music -msgid "romanian minor" +#: js/blocks/VolumeBlocks.js:35 +msgid "synth volume" msgstr "" -#: js/musicutils.js:681 -msgid "spanish gypsy" +#: js/blocks/VolumeBlocks.js:39 +msgid "The Synth volume block returns the current volume of the current synthesizer." msgstr "" -#: js/musicutils.js:683 -#.TRANS: musical scale for Mid-Eastern music -msgid "maqam" +#: js/blocks/VolumeBlocks.js:105 +msgid "master volume" msgstr "" -#: js/musicutils.js:685 -#.TRANS: minor blues scale for music -msgid "minor blues" +#: js/blocks/VolumeBlocks.js:109 +msgid "The Master volume block returns the master volume." msgstr "" -#: js/musicutils.js:687 -#.TRANS: major blues scale for music -msgid "major blues" +#: js/blocks/VolumeBlocks.js:355 +#: js/blocks/VolumeBlocks.js:524 +msgid "set synth volume" msgstr "" -#: js/musicutils.js:688 -msgid "whole tone" +#: js/blocks/VolumeBlocks.js:362 +#: js/blocks/VolumeBlocks.js:545 +msgid "synth" msgstr "" -#: js/musicutils.js:690 -#.TRANS: pentatonic is a general term that means "five note scale". This scale is typically known as "minor pentatonic" -msgid "minor pentatonic" +#: js/blocks/VolumeBlocks.js:403 +#: js/blocks/VolumeBlocks.js:577 +#: js/blocks/VolumeBlocks.js:740 +#: js/turtleactions/VolumeActions.js:173 +msgid "Setting volume to 0." msgstr "" -#: js/musicutils.js:692 -#.TRANS: pentatonic is a general term that means "five note scale". This scale is typically known as "major pentatonic" -msgid "major pentatonic" +#: js/blocks/VolumeBlocks.js:440 +msgid "Synth not found" msgstr "" -#: js/musicutils.js:693 -msgid "chinese" +#: js/blocks/VolumeBlocks.js:494 +msgid "set drum volume" msgstr "" -#: js/musicutils.js:694 -msgid "egyptian" +#: js/blocks/VolumeBlocks.js:530 +msgid "The Set synth volume block will change the volume of a particular synth," msgstr "" -#: js/musicutils.js:696 -#.TRANS: https://en.wikipedia.org/wiki/Hirajoshi_scale NOTE: There are three different versions of this scale -msgid "hirajoshi" +#: js/blocks/VolumeBlocks.js:532 +msgid "eg guitar violin snare drum etc." msgstr "" -#: js/musicutils.js:697 -msgid "Japan" +#: js/blocks/VolumeBlocks.js:534 +msgid "The default volume is 50." msgstr "" -#: js/musicutils.js:699 -#.TRANS: https://en.wikipedia.org/wiki/In_scale and https://en.wikipedia.org/wiki/Sakura_Sakura -msgid "in" +#: js/blocks/VolumeBlocks.js:536 +msgid "The range is 0 for silence to 100 for full volume." msgstr "" -#: js/musicutils.js:701 -#.TRANS: https://en.wikipedia.org/wiki/Miny%C5%8D_scale -msgid "minyo" +#: js/blocks/VolumeBlocks.js:597 +msgid "set panning" msgstr "" -#: js/musicutils.js:703 -#.TRANS: Italian mathematician -msgid "fibonacci" +#: js/blocks/VolumeBlocks.js:603 +msgid "The Set Panning block sets the panning for all synthesizers." msgstr "" -#: js/musicutils.js:708 -#: js/musicutils.js:1106 -#.TRANS: lowpass filter -msgid "lowpass" +#: js/blocks/VolumeBlocks.js:625 +msgid "Warning: Sound is coming out from only the left or right side." msgstr "" -#: js/musicutils.js:710 -#: js/musicutils.js:1107 -#.TRANS: bandpass filter -msgid "bandpass" +#: js/blocks/VolumeBlocks.js:647 +#: js/blocks/VolumeBlocks.js:695 +msgid "set master volume" msgstr "" -#: js/musicutils.js:712 -#: js/musicutils.js:1108 -#.TRANS: high-shelf filter -msgid "highshelf" +#: js/blocks/VolumeBlocks.js:653 +msgid "The Set master volume block sets the volume for all synthesizers." msgstr "" -#: js/musicutils.js:714 -#: js/musicutils.js:1109 -#.TRANS: low-shelf filter -msgid "lowshelf" +#: js/blocks/VolumeBlocks.js:784 +msgid "The Set relative volume block changes the volume of the contained notes." msgstr "" -#: js/musicutils.js:716 -#: js/musicutils.js:1110 -#.TRANS: notch-shelf filter -msgid "notch" +#: js/blocks/VolumeBlocks.js:791 +msgid "set relative volume" msgstr "" -#: js/musicutils.js:718 -#: js/musicutils.js:1111 -#.TRANS: all-pass filter -msgid "allpass" +#: js/blocks/VolumeBlocks.js:857 +msgid "decrescendo" msgstr "" -#: js/musicutils.js:720 -#: js/musicutils.js:1112 -#.TRANS: peaking filter -msgid "peaking" +#: js/blocks/VolumeBlocks.js:921 +msgid "crescendo" msgstr "" -#: js/musicutils.js:731 -#: js/synthutils.js:58 -#.TRANS: musical instrument -msgid "violin" +#: js/blocks/WidgetBlocks.js:81 +#.TRANS: sound envelope (ADSR) +msgid "envelope" msgstr "" -#: js/musicutils.js:732 -#: js/synthutils.js:60 -#.TRANS: viola musical instrument -msgid "viola" +#: js/blocks/WidgetBlocks.js:89 +#.TRANS: Attack time is the time taken for initial run-up of level from nil to peak, beginning when the key is first pressed. +msgid "attack" msgstr "" -#: js/musicutils.js:733 -#: js/synthutils.js:98 -#.TRANS: xylophone musical instrument -msgid "xylophone" +#: js/blocks/WidgetBlocks.js:91 +#.TRANS: Decay time is the time taken for the subsequent run down from the attack level to the designated sustain level. +msgid "decay" msgstr "" -#: js/musicutils.js:734 -#: js/synthutils.js:120 -#.TRANS: vibraphone musical instrument -msgid "vibraphone" +#: js/blocks/WidgetBlocks.js:93 +#.TRANS: Sustain level is the level during the main sequence of the sound's duration, until the key is released. +msgid "sustain" msgstr "" -#: js/musicutils.js:735 -#: js/synthutils.js:62 -#.TRANS: musical instrument -msgid "cello" +#: js/blocks/WidgetBlocks.js:95 +#.TRANS: Release time is the time taken for the level to decay from the sustain level to zero after the key is released. +msgid "release" msgstr "" -#: js/musicutils.js:737 -#: js/synthutils.js:66 -#.TRANS: viola musical instrument -msgid "double bass" +#: js/blocks/WidgetBlocks.js:113 +msgid "Attack value should be from 0 to 100." msgstr "" -#: js/musicutils.js:738 -#: js/synthutils.js:68 -#: js/rhythmruler.js:2119 -#.TRANS: musical instrument -msgid "guitar" +#: js/blocks/WidgetBlocks.js:116 +msgid "Decay value should be from 0 to 100." msgstr "" -#: js/musicutils.js:739 -#: js/synthutils.js:70 -#.TRANS: musical instrument -msgid "acoustic guitar" +#: js/blocks/WidgetBlocks.js:119 +msgid "Sustain value should be from 0 to 100." msgstr "" -#: js/musicutils.js:740 -#: js/synthutils.js:72 -#.TRANS: musical instrument -msgid "flute" +#: js/blocks/WidgetBlocks.js:122 +msgid "Release value should be from 0-100." msgstr "" -#: js/musicutils.js:741 -#: js/synthutils.js:74 -#.TRANS: musical instrument -msgid "clarinet" +#: js/blocks/WidgetBlocks.js:140 +msgid "You are adding multiple envelope blocks." msgstr "" -#: js/musicutils.js:742 -#: js/synthutils.js:76 -#.TRANS: musical instrument -msgid "saxophone" +#: js/blocks/WidgetBlocks.js:171 +#.TRANS: a filter removes some unwanted components from a signal +msgid "filter" msgstr "" -#: js/musicutils.js:743 -#: js/synthutils.js:78 -#.TRANS: musical instrument -msgid "tuba" +#: js/blocks/WidgetBlocks.js:181 +#: js/widgets/timbre.js:1818 +#.TRANS: rolloff is the steepness of a change in frequency. +msgid "rolloff" msgstr "" -#: js/musicutils.js:744 -#: js/synthutils.js:80 -#.TRANS: musical instrument -msgid "trumpet" +#: js/blocks/WidgetBlocks.js:213 +#.TRANS: rolloff is the steepness of a change in frequency. +msgid "Rolloff value should be either -12, -24, -48, or -96 decibels/octave." msgstr "" -#: js/musicutils.js:745 -#: js/synthutils.js:82 -#.TRANS: musical instrument -msgid "oboe" +#: js/blocks/WidgetBlocks.js:252 +msgid "The Temperament tool is used to define custom tuning." msgstr "" -#: js/musicutils.js:746 -#: js/synthutils.js:84 -#.TRANS: musical instrument -msgid "trombone" +#: js/blocks/WidgetBlocks.js:332 +#: js/blocks/WidgetBlocks.js:1573 +#: js/widgets/sampler.js:547 +msgid "Upload a sample and adjust its pitch center." msgstr "" -#: js/musicutils.js:747 -#: js/synthutils.js:100 -#.TRANS: polytone synthesizer -msgid "electronic synth" +#: js/blocks/WidgetBlocks.js:339 +#.TRANS: the speed at music is should be played. +msgid "sampler" msgstr "" -#: js/musicutils.js:748 -#: js/synthutils.js:102 -#.TRANS: simple monotone synthesizer -msgid "simple 1" +#: js/blocks/WidgetBlocks.js:517 +msgid "The Meter block opens a tool to select strong beats for the meter." msgstr "" -#: js/musicutils.js:749 -msgid "simple 2" +#: js/blocks/WidgetBlocks.js:573 +msgid "The oscilloscope block opens a tool to visualize waveforms." msgstr "" -#: js/musicutils.js:750 -msgid "simple 3" +#: js/blocks/WidgetBlocks.js:578 +msgid "oscilloscope" msgstr "" -#: js/musicutils.js:751 -msgid "simple 4" +#: js/blocks/WidgetBlocks.js:645 +msgid "The Custom mode block opens a tool to explore musical mode (the spacing of the notes in a scale)." msgstr "" -#: js/musicutils.js:753 -#: js/synthutils.js:49 -#.TRANS: brown noise synthesizer -msgid "brown noise" +#: js/blocks/WidgetBlocks.js:651 +#.TRANS: musical mode is the pattern of half-steps in an octave, e.g., Major or Minor modes +msgid "custom mode" msgstr "" -#: js/musicutils.js:754 -#: js/synthutils.js:51 -#.TRANS: pink noise synthesizer -msgid "pink noise" +#: js/blocks/WidgetBlocks.js:700 +msgid "The Tempo block opens a metronome to visualize the beat." msgstr "" -#: js/musicutils.js:756 -#: js/synthutils.js:127 -#: js/rhythmruler.js:1670 -#: js/rhythmruler.js:1928 -#.TRANS: musical instrument -msgid "snare drum" +#: js/blocks/WidgetBlocks.js:762 +msgid "The Arpeggio Widget is used to compose chord sequences." msgstr "" -#: js/musicutils.js:757 -#: js/synthutils.js:129 -#.TRANS: musical instrument -msgid "kick drum" +#: js/blocks/WidgetBlocks.js:837 +msgid "The Pitch drum matrix is used to map pitches to drum sounds." msgstr "" -#: js/musicutils.js:758 -#: js/synthutils.js:131 -#.TRANS: musical instrument -msgid "tom tom" +#: js/blocks/WidgetBlocks.js:842 +#.TRANS: makes a mapping between pitches and drum sounds +msgid "pitch-drum mapper" msgstr "" -#: js/musicutils.js:759 -#: js/synthutils.js:133 -#.TRANS: musical instrument -msgid "floor tom" +#: js/blocks/WidgetBlocks.js:891 +msgid "You must have at least one pitch block and one drum block in the matrix." msgstr "" -#: js/musicutils.js:760 -#: js/synthutils.js:135 -#.TRANS: musical instrument -msgid "bass drum" +#: js/blocks/WidgetBlocks.js:920 +msgid "The Pitch slider tool to is used to generate pitches at selected frequencies." msgstr "" -#: js/musicutils.js:761 -#: js/synthutils.js:137 -#.TRANS: a drum made from an inverted cup -msgid "cup drum" +#: js/blocks/WidgetBlocks.js:925 +#.TRANS: widget to generate pitches using a slider +msgid "pitch slider" msgstr "" -#: js/musicutils.js:762 -#: js/synthutils.js:139 -#.TRANS: musical instrument -msgid "darbuka drum" +#: js/blocks/WidgetBlocks.js:977 +msgid "chromatic keyboard" msgstr "" -#: js/musicutils.js:763 -#: js/synthutils.js:143 -#.TRANS: musical instrument -msgid "hi hat" +#: js/blocks/WidgetBlocks.js:1011 +#: js/blocks/WidgetBlocks.js:1077 +#.TRANS: widget to generate pitches using a slider +msgid "music keyboard" msgstr "" -#: js/musicutils.js:764 -#: js/synthutils.js:145 -#.TRANS: a small metal bell -msgid "ride bell" +#: js/blocks/WidgetBlocks.js:1062 +#: js/blocks/WidgetBlocks.js:1069 +msgid "The Music keyboard block opens a piano keyboard that can be used to create notes." msgstr "" -#: js/musicutils.js:765 -#: js/synthutils.js:147 -#.TRANS: musical instrument -msgid "cow bell" +#: js/blocks/WidgetBlocks.js:1128 +msgid "The Pitch staircase tool to is used to generate pitches from a given ratio." msgstr "" -#: js/musicutils.js:766 -msgid "japanese drum" +#: js/blocks/WidgetBlocks.js:1135 +#.TRANS: generate a progressive sequence of pitches +msgid "pitch staircase" msgstr "" -#: js/musicutils.js:767 -#: js/synthutils.js:153 -#.TRANS: musical instrument -msgid "japanese bell" +#: js/blocks/WidgetBlocks.js:1222 +msgid "The Rhythm Maker block opens a tool to create drum machines." msgstr "" -#: js/musicutils.js:768 -#: js/synthutils.js:149 -#.TRANS: musical instrument -msgid "triangle bell" +#: js/blocks/WidgetBlocks.js:1291 +msgid "G major scale" msgstr "" -#: js/musicutils.js:769 -#: js/synthutils.js:151 -#.TRANS: musical instrument -msgid "finger cymbals" +#: js/blocks/WidgetBlocks.js:1326 +msgid "C major scale" msgstr "" -#: js/musicutils.js:770 -#: js/synthutils.js:155 -#.TRANS: a musically tuned set of bells -msgid "chime" +#: js/blocks/WidgetBlocks.js:1366 +msgid "The Phrase Maker block opens a tool to create musical phrases." msgstr "" -#: js/musicutils.js:771 -#: js/synthutils.js:157 -#.TRANS: a musical instrument -msgid "gong" +#: js/blocks/WidgetBlocks.js:1373 +#.TRANS: assigns pitch to a sequence of beats to generate a melody +msgid "phrase maker" msgstr "" -#: js/musicutils.js:772 -#: js/synthutils.js:159 -#.TRANS: sound effect -msgid "clang" +#: js/blocks/WidgetBlocks.js:1444 +msgid "You must have at least one pitch block and one rhythm block in the matrix." msgstr "" -#: js/musicutils.js:773 -#: js/synthutils.js:161 -#.TRANS: sound effect -msgid "crash" +#: js/blocks/WidgetBlocks.js:1503 +msgid "The Status block opens a tool for inspecting the status of Music Blocks as it is running." msgstr "" -#: js/musicutils.js:774 -#: js/synthutils.js:163 -#.TRANS: sound effect -msgid "bottle" +#: js/blocks/WidgetBlocks.js:1580 +#.TRANS: AI-generated music +msgid "aimusic" msgstr "" -#: js/musicutils.js:775 -#: js/synthutils.js:165 -#.TRANS: sound effect -msgid "clap" +#: js/turtleactions/MeterActions.js:101 +#: js/turtleactions/MeterActions.js:139 +msgid "beats per minute must be greater than" msgstr "" -#: js/musicutils.js:776 -#: js/synthutils.js:167 -#.TRANS: sound effect -msgid "slap" +#: js/turtleactions/MeterActions.js:111 +#: js/turtleactions/MeterActions.js:149 +msgid "maximum" msgstr "" -#: js/musicutils.js:777 -#: js/synthutils.js:169 -#.TRANS: sound effect -msgid "splash" +#: js/turtleactions/MeterActions.js:117 +#: js/turtleactions/MeterActions.js:155 +msgid "beats per minute is" msgstr "" -#: js/musicutils.js:778 -#: js/synthutils.js:171 -#.TRANS: sound effect -msgid "bubbles" +#: js/turtleactions/DictActions.js:75 +#: js/turtleactions/DictActions.js:142 +#: js/turtleactions/DictActions.js:172 +msgid "font" msgstr "" -#: js/musicutils.js:779 -#: js/synthutils.js:173 -#.TRANS: sound effect -msgid "raindrop" +#: js/turtleactions/DictActions.js:255 +msgid "Dictionary with this name does not exist" msgstr "" -#: js/musicutils.js:780 -#: js/synthutils.js:175 -#.TRANS: animal sound effect -msgid "cat" +#: js/turtleactions/DictActions.js:259 +msgid "Key with this name does not exist in " msgstr "" -#: js/musicutils.js:781 -#: js/synthutils.js:177 -#.TRANS: animal sound effect -msgid "cricket" +#: js/turtleactions/DrumActions.js:227 +msgid "Noise Block: Did you mean to use a Note block?" msgstr "" -#: js/musicutils.js:782 -#: js/synthutils.js:179 -#.TRANS: animal sound effect -msgid "dog" +#: js/turtleactions/IntervalsActions.js:113 +msgid "one" msgstr "" -#: js/musicutils.js:784 -#: js/synthutils.js:86 -#.TRANS: musical instrument -msgid "banjo" +#: js/turtleactions/IntervalsActions.js:113 +msgid "two" msgstr "" -#: js/musicutils.js:785 -#: js/synthutils.js:88 -#.TRANS: musical instrument -msgid "koto" +#: js/turtleactions/IntervalsActions.js:113 +msgid "three" msgstr "" -#: js/musicutils.js:786 -#: js/synthutils.js:90 -#.TRANS: musical instrument -msgid "dulcimer" +#: js/turtleactions/IntervalsActions.js:113 +msgid "four" msgstr "" -#: js/musicutils.js:787 -#: js/synthutils.js:92 -#.TRANS: musical instrument -msgid "electric guitar" +#: js/turtleactions/IntervalsActions.js:113 +msgid "five" msgstr "" -#: js/musicutils.js:788 -#: js/synthutils.js:94 -#.TRANS: musical instrument -msgid "bassoon" +#: js/turtleactions/IntervalsActions.js:113 +msgid "six" msgstr "" -#: js/musicutils.js:789 -#: js/synthutils.js:96 -#.TRANS: musical instrument -msgid "celeste" +#: js/turtleactions/IntervalsActions.js:113 +msgid "seven" msgstr "" -#: js/musicutils.js:791 -#: js/musicutils.js:1123 -#: js/musicutils.js:1131 -#: js/temperament.js:650 -#.TRANS: musical temperament -msgid "equal" +#: js/turtleactions/IntervalsActions.js:113 +msgid "eight" msgstr "" -#: js/musicutils.js:793 -#: js/musicutils.js:1125 -#: js/musicutils.js:1133 -#.TRANS: musical temperament -msgid "Pythagorean" +#: js/turtleactions/IntervalsActions.js:113 +msgid "nine" msgstr "" -#: js/musicutils.js:795 -#: js/musicutils.js:1124 -#: js/musicutils.js:1132 -#.TRANS: musical temperament -msgid "just intonation" +#: js/turtleactions/IntervalsActions.js:119 +msgid "a" msgstr "" -#: js/musicutils.js:797 -#: js/musicutils.js:1126 -#: js/musicutils.js:1127 -#: js/musicutils.js:1134 -#: js/musicutils.js:1135 -#.TRANS: musical temperament -msgid "meantone" +#: js/turtleactions/IntervalsActions.js:120 +msgid "below" msgstr "" -#: js/musicutils.js:814 -msgid "major 7th" +#: js/turtleactions/IntervalsActions.js:124 +msgid "above" msgstr "" -#: js/musicutils.js:815 -msgid "minor 7th" +#: js/turtleactions/IntervalsActions.js:131 +msgid "plus" msgstr "" -#: js/musicutils.js:816 -msgid "dominant 7th" +#: js/turtleactions/IntervalsActions.js:139 +msgid " below" msgstr "" -#: js/musicutils.js:817 -msgid "minor-major 7th" +#: js/turtleactions/IntervalsActions.js:257 +msgid "Adding missing pitch number 0." msgstr "" -#: js/musicutils.js:818 -msgid "fully-diminished 7th" +#: js/turtleactions/IntervalsActions.js:265 +msgid "Ignoring pitch numbers less than zero or greater than eleven." msgstr "" -#: js/musicutils.js:819 -msgid "half-diminished 7th" +#: js/turtleactions/IntervalsActions.js:271 +msgid "Ignoring duplicate pitch numbers." msgstr "" -#: js/musicutils.js:4379 -#: js/musicutils.js:4416 -msgid "current" +#: js/turtleactions/ToneActions.js:134 +msgid "Vibrato intensity must be between 1 and 100." msgstr "" -#: js/musicutils.js:4382 -#: js/musicutils.js:4407 -msgid "next" +#: js/turtleactions/ToneActions.js:139 +msgid "Vibrato rate must be greater than 0." msgstr "" -#: js/musicutils.js:4385 -#: js/musicutils.js:4412 -msgid "previous" +#: js/turtleactions/ToneActions.js:192 +#: js/turtleactions/ToneActions.js:265 +#.TRANS: Depth is the intesity of the tremolo or chorus effect. +msgid "Depth is out of range." msgstr "" -#: js/synthutils.js:104 -#.TRANS: simple monotone synthesizer -msgid "simple-2" +#: js/turtleactions/ToneActions.js:301 +msgid "Distortion must be from 0 to 100." msgstr "" -#: js/synthutils.js:106 -#.TRANS: simple monotone synthesizer -msgid "simple-3" +#: js/turtleactions/ToneActions.js:332 +#.TRANS: partials components in a harmonic series +msgid "Partial must be greater than or equal to 0." msgstr "" -#: js/synthutils.js:108 -#.TRANS: simple monotone synthesizer -msgid "simple-4" +#: js/turtleactions/ToneActions.js:378 +#: js/turtleactions/ToneActions.js:417 +#: js/turtleactions/ToneActions.js:456 +#: js/widgets/timbre.js:782 +msgid "Unable to use synth due to existing oscillator" msgstr "" -#: js/synthutils.js:141 -#.TRANS: musical instrument -msgid "taiko" +#: js/turtleactions/ToneActions.js:388 +#: js/turtleactions/ToneActions.js:427 +msgid "The input cannot be negative." msgstr "" -#: js/modewidget.js:86 -#: js/modewidget.js:88 -#: js/modewidget.js:642 -#: js/modewidget.js:644 -#: js/modewidget.js:712 -#: js/modewidget.js:714 -#: js/temperament.js:2078 -#: js/rhythmruler.js:189 -#: js/rhythmruler.js:1410 -#: js/rhythmruler.js:1412 -#: js/rhythmruler.js:1435 -#: js/rhythmruler.js:1437 -#: js/meterwidget.js:89 -#: js/meterwidget.js:91 +#: js/widgets/modewidget.js:86 +#: js/widgets/modewidget.js:88 +#: js/widgets/modewidget.js:642 +#: js/widgets/modewidget.js:644 +#: js/widgets/modewidget.js:712 +#: js/widgets/modewidget.js:714 +#: js/widgets/meterwidget.js:194 +#: js/widgets/meterwidget.js:196 +#: js/widgets/temperament.js:2236 +#: js/widgets/rhythmruler.js:457 +#: js/widgets/rhythmruler.js:1790 +#: js/widgets/rhythmruler.js:1792 +#: js/widgets/rhythmruler.js:1816 +#: js/widgets/rhythmruler.js:1818 msgid "Play all" msgstr "" -#: js/modewidget.js:115 -#: js/pitchstaircase.js:641 -#: js/phrasemaker.js:339 -#: js/pitchdrummatrix.js:94 -#: js/pitchslider.js:125 -#: js/temperament.js:2083 -#: js/musickeyboard.js:530 -#: js/timbre.js:756 -#: js/meterwidget.js:124 -#: js/arpeggio.js:103 +#: js/widgets/modewidget.js:115 +#: js/widgets/meterwidget.js:229 +#: js/widgets/pitchdrummatrix.js:166 +#: js/widgets/pitchslider.js:125 +#: js/widgets/pitchstaircase.js:641 +#: js/widgets/temperament.js:2244 +#: js/widgets/timbre.js:756 +#: js/widgets/arpeggio.js:103 +#: js/widgets/musickeyboard.js:688 +#: js/widgets/phrasemaker.js:550 msgid "Save" msgstr "" -#: js/modewidget.js:121 -#: js/pitchstaircase.js:686 -#: js/phrasemaker.js:356 -#: js/pitchdrummatrix.js:109 -#: js/musickeyboard.js:534 -#: js/rhythmruler.js:269 -#: js/arpeggio.js:118 +#: js/widgets/modewidget.js:121 +#: js/widgets/pitchdrummatrix.js:181 +#: js/widgets/pitchstaircase.js:686 +#: js/widgets/arpeggio.js:118 +#: js/widgets/musickeyboard.js:696 +#: js/widgets/phrasemaker.js:567 +#: js/widgets/rhythmruler.js:601 #.TRANS: clear all subdivisions from the ruler. msgid "Clear" msgstr "" -#: js/modewidget.js:127 +#: js/widgets/modewidget.js:127 msgid "Rotate counter clockwise" msgstr "" -#: js/modewidget.js:133 +#: js/widgets/modewidget.js:133 msgid "Rotate clockwise" msgstr "" -#: js/modewidget.js:139 +#: js/widgets/modewidget.js:139 msgid "Invert" msgstr "" -#: js/modewidget.js:145 -#: js/pitchstaircase.js:678 -#: js/rhythmruler.js:258 -#: js/timbre.js:963 +#: js/widgets/modewidget.js:145 +#: js/widgets/pitchstaircase.js:678 +#: js/widgets/timbre.js:963 +#: js/widgets/rhythmruler.js:578 msgid "Undo" msgstr "" -#: js/modewidget.js:163 +#: js/widgets/modewidget.js:163 #.TRANS: A circle of notes represents the musical mode. msgid "Click in the circle to select notes for the mode." msgstr "" -#: js/modewidget.js:1017 -#: js/pitchstaircase.js:580 -#: js/phrasemaker.js:4855 -#: js/temperament.js:1754 -#: js/rhythmruler.js:1865 -#: js/rhythmruler.js:2081 -#: js/tempo.js:414 +#: js/widgets/modewidget.js:1017 +#: js/widgets/pitchstaircase.js:580 +#: js/widgets/temperament.js:1929 +#: js/widgets/tempo.js:414 +#: js/widgets/phrasemaker.js:5356 +#: js/widgets/rhythmruler.js:2254 +#: js/widgets/rhythmruler.js:2472 msgid "New action block generated!" msgstr "" -#: js/oscilloscope.js:79 -msgid "Zoom In" -msgstr "" - -#: js/oscilloscope.js:88 -msgid "Zoom Out" -msgstr "" - -#: js/pitchstaircase.js:624 -msgid "Play chord" -msgstr "" - -#: js/pitchstaircase.js:632 -msgid "Play scale" +#: js/widgets/meterwidget.js:275 +msgid "Reset" msgstr "" -#: js/pitchstaircase.js:696 -msgid "Click on a note to create a new step." +#: js/widgets/meterwidget.js:301 +msgid "Click in the circle to select strong beats for the meter." msgstr "" -#: js/phrasemaker.js:363 -msgid "Export" +#: js/widgets/oscilloscope.js:79 +msgid "Zoom In" msgstr "" -#: js/phrasemaker.js:370 -msgid "Sort" +#: js/widgets/oscilloscope.js:88 +msgid "Zoom Out" msgstr "" -#: js/phrasemaker.js:373 -#: js/musickeyboard.js:559 -msgid "Add note" +#: js/widgets/pitchdrummatrix.js:356 +#: js/widgets/pitchdrummatrix.js:752 +msgid "Click in the grid to map notes to drums." msgstr "" -#: js/phrasemaker.js:764 -msgid "Click on the table to add notes." +#: js/widgets/pitchslider.js:103 +msgid "Move up" msgstr "" -#: js/phrasemaker.js:2414 -#: js/phrasemaker.js:2543 -msgid "tuplet value" +#: js/widgets/pitchslider.js:114 +msgid "Move down" msgstr "" -#: js/pitchdrummatrix.js:270 -#: js/pitchdrummatrix.js:639 -msgid "Click in the grid to map notes to drums." +#: js/widgets/pitchslider.js:136 +msgid "Click on the slider to create a note block." msgstr "" -#: js/pitchslider.js:103 -msgid "Move up" +#: js/widgets/pitchstaircase.js:624 +msgid "Play chord" msgstr "" -#: js/pitchslider.js:114 -msgid "Move down" +#: js/widgets/pitchstaircase.js:632 +msgid "Play scale" msgstr "" -#: js/pitchslider.js:136 -msgid "Click on the slider to create a note block." +#: js/widgets/pitchstaircase.js:696 +msgid "Click on a note to create a new step." msgstr "" -#: js/temperament.js:215 +#: js/widgets/temperament.js:321 msgid "back to 2:1 octave space" msgstr "" -#: js/temperament.js:323 +#: js/widgets/temperament.js:447 msgid "edit" msgstr "" -#: js/temperament.js:330 -#: js/temperament.js:332 -#: js/temperament.js:1336 -#: js/temperament.js:1338 +#: js/widgets/temperament.js:454 +#: js/widgets/temperament.js:456 +#: js/widgets/temperament.js:1493 +#: js/widgets/temperament.js:1495 msgid "close" msgstr "" -#: js/temperament.js:423 -#: js/temperament.js:736 -#: js/temperament.js:743 -#: js/temperament.js:845 -#: js/temperament.js:935 -#: js/temperament.js:942 -#: js/temperament.js:1015 -#: js/temperament.js:1284 -#: js/temperament.js:1354 -#: js/temperament.js:1430 +#: js/widgets/temperament.js:552 +#: js/widgets/temperament.js:877 +#: js/widgets/temperament.js:884 +#: js/widgets/temperament.js:986 +#: js/widgets/temperament.js:1080 +#: js/widgets/temperament.js:1087 +#: js/widgets/temperament.js:1160 +#: js/widgets/temperament.js:1433 +#: js/widgets/temperament.js:1511 +#: js/widgets/temperament.js:1596 msgid "done" msgstr "" -#: js/temperament.js:477 -#: js/temperament.js:482 -#: js/temperament.js:918 +#: js/widgets/temperament.js:610 +#: js/widgets/temperament.js:615 +#: js/widgets/temperament.js:1063 msgid "ratio" msgstr "" -#: js/temperament.js:483 +#: js/widgets/temperament.js:616 msgid "interval" msgstr "" -#: js/temperament.js:611 +#: js/widgets/temperament.js:744 msgid "non scalar" msgstr "" -#: js/temperament.js:650 +#: js/widgets/temperament.js:787 msgid "ratios" msgstr "" -#: js/temperament.js:650 +#: js/widgets/temperament.js:787 msgid "arbitrary" msgstr "" -#: js/temperament.js:719 +#: js/widgets/temperament.js:860 msgid "number of divisions" msgstr "" -#: js/temperament.js:741 -#: js/temperament.js:858 -#: js/temperament.js:940 -#: js/temperament.js:1033 +#: js/widgets/temperament.js:882 +#: js/widgets/temperament.js:999 +#: js/widgets/temperament.js:1085 +#: js/widgets/temperament.js:1178 msgid "preview" msgstr "" -#: js/temperament.js:788 +#: js/widgets/temperament.js:929 msgid "The Number of divisions is too large." msgstr "" -#: js/temperament.js:921 +#: js/widgets/temperament.js:1066 msgid "recursion" msgstr "" -#: js/temperament.js:1450 +#: js/widgets/temperament.js:1616 msgid "The octave ratio has changed. This changes temperament significantly." msgstr "" -#: js/temperament.js:2087 +#: js/widgets/temperament.js:2248 msgid "Table" msgstr "" -#: js/temperament.js:2185 +#: js/widgets/temperament.js:2356 msgid "Add pitches" msgstr "" -#: js/musickeyboard.js:570 -msgid "Metronome" +#: js/widgets/tempo.js:78 +#: js/widgets/tempo.js:97 +#: js/widgets/tempo.js:99 +#: js/widgets/aiwidget.js:134 +#: js/widgets/aiwidget.js:136 +#: js/widgets/rhythmruler.js:681 +#: js/widgets/rhythmruler.js:683 +#: js/widgets/rhythmruler.js:1864 +#: js/widgets/rhythmruler.js:1866 +#: js/widgets/sampler.js:180 +#: js/widgets/sampler.js:182 +msgid "Pause" msgstr "" -#: js/musickeyboard.js:1296 -#: plugins/rodi.rtp:193 -msgid "duration" +#: js/widgets/tempo.js:113 +msgid "Save tempo" msgstr "" -#: js/musickeyboard.js:2840 -msgid "New action blocks generated!" +#: js/widgets/tempo.js:144 +msgid "speed up" msgstr "" -#: js/musickeyboard.js:2841 -msgid "New action block generated" +#: js/widgets/tempo.js:150 +msgid "slow down" msgstr "" -#: js/musickeyboard.js:2984 -#: js/musickeyboard.js:2992 -msgid "MIDI device present." +#: js/widgets/tempo.js:194 +msgid "Adjust the tempo with the buttons." msgstr "" -#: js/musickeyboard.js:2995 -msgid "No MIDI device found." +#: js/widgets/tempo.js:261 +msgid "Please enter a number between 30 and 1000" msgstr "" -#: js/musickeyboard.js:3000 -msgid "Failed to get MIDI access in browser." +#: js/widgets/tempo.js:268 +#: js/widgets/tempo.js:271 +msgid "The beats per minute must be between 30 and 1000." msgstr "" -#: js/rhythmruler.js:202 -msgid "Save rhythms" +#: js/widgets/tempo.js:287 +msgid "The beats per minute must be below 1000." msgstr "" -#: js/rhythmruler.js:222 -msgid "Save drum machine" +#: js/widgets/tempo.js:303 +msgid "The beats per minute must be above 30" msgstr "" -#: js/rhythmruler.js:263 -#.TRANS: user can tap out a rhythm by clicking on a ruler. -msgid "Tap a rhythm" +#: js/widgets/timbre.js:766 +msgid "Synthesizer" msgstr "" -#: js/rhythmruler.js:342 -#: js/rhythmruler.js:344 -#: js/rhythmruler.js:1481 -#: js/rhythmruler.js:1483 -#: js/sampler.js:110 -#: js/sampler.js:112 -#: js/tempo.js:78 -#: js/tempo.js:97 -#: js/tempo.js:99 -msgid "Pause" +#: js/widgets/timbre.js:789 +msgid "Oscillator" msgstr "" -#: js/rhythmruler.js:478 -msgid "Click on the ruler to divide it." +#: js/widgets/timbre.js:840 +msgid "Envelope" msgstr "" -#: js/rhythmruler.js:603 -#: js/rhythmruler.js:605 -#: js/rhythmruler.js:804 -#: js/rhythmruler.js:806 -#: js/rhythmruler.js:1386 -#: js/rhythmruler.js:1388 -msgid "tap a rhythm" +#: js/widgets/timbre.js:886 +#: planet/js/GlobalTag.js:50 +#.TRANS: On the Planet, we use labels to tag projects. +msgid "Effects" msgstr "" -#: js/rhythmruler.js:1084 -msgid "Maximum value of 256 has been exceeded." +#: js/widgets/timbre.js:904 +msgid "Filter" msgstr "" -#: js/sampler.js:137 -msgid "Warning: Sample is bigger than 1MB." +#: js/widgets/timbre.js:946 +msgid "Add filter" msgstr "" -#: js/sampler.js:142 -msgid "Upload failed: Sample is not a .wav file." +#: js/widgets/timbre.js:987 +msgid "Click on buttons to open the timbre design tools." msgstr "" -#: js/sampler.js:164 -msgid "A new sample block was generated." +#: js/widgets/timbre.js:1273 +msgid "harmonicity" msgstr "" -#: js/sampler.js:255 -msgid "Upload sample" +#: js/widgets/timbre.js:1340 +#: js/widgets/timbre.js:1406 +msgid "modulation index" msgstr "" -#: js/sampler.js:306 -msgid "Save sample" +#: js/widgets/timbre.js:1484 +msgid "vibrato amount" msgstr "" -#: js/sampler.js:697 -#.TRANS: The reference tone is a sound used for comparison. -msgid "reference tone" +#: js/widgets/timbre.js:1919 +msgid "Filter already present." msgstr "" -#: js/tempo.js:113 -msgid "Save tempo" +#: js/widgets/timbre.js:2322 +msgid "delay (MS)" msgstr "" -#: js/tempo.js:144 -msgid "speed up" +#: js/widgets/timbre.js:2507 +msgid "distortion amount" msgstr "" -#: js/tempo.js:150 -msgid "slow down" +#: js/widgets/aiwidget.js:180 +#: js/widgets/sampler.js:227 +msgid "Warning: Sample is bigger than 1MB." msgstr "" -#: js/tempo.js:194 -msgid "Adjust the tempo with the buttons." +#: js/widgets/aiwidget.js:539 +msgid "New start block generated" msgstr "" -#: js/tempo.js:261 -msgid "Please enter a number between 30 and 1000" +#: js/widgets/aiwidget.js:541 +msgid "MIDI loading. This may take some time depending upon the number of notes in the track" msgstr "" -#: js/tempo.js:268 -#: js/tempo.js:271 -msgid "The beats per minute must be between 30 and 1000." +#: js/widgets/aiwidget.js:551 +#: js/widgets/sampler.js:254 +msgid "Upload failed: Sample is not a .wav file." msgstr "" -#: js/tempo.js:287 -msgid "The beats per minute must be below 1000." +#: js/widgets/aiwidget.js:679 +#: js/widgets/sampler.js:432 +msgid "Save sample" msgstr "" -#: js/tempo.js:303 -msgid "The beats per minute must be above 30" +#: js/widgets/aiwidget.js:701 +msgid "AI Music" msgstr "" -#: js/timbre.js:766 -msgid "Synthesizer" +#: js/widgets/arpeggio.js:239 +msgid "Click in the grid to add steps to the arpeggio." msgstr "" -#: js/timbre.js:789 -msgid "Oscillator" +#: js/widgets/help.js:95 +#: js/widgets/help.js:125 +#: js/widgets/help.js:146 +#: js/widgets/help.js:158 +#: js/widgets/help.js:376 +#: js/widgets/help.js:391 +msgid "Take a tour" msgstr "" -#: js/timbre.js:840 -msgid "Envelope" +#: js/widgets/musickeyboard.js:725 +#: js/widgets/phrasemaker.js:584 +msgid "Add note" msgstr "" -#: js/timbre.js:886 -#: js/GlobalTag.js:50 -#.TRANS: On the Planet, we use labels to tag projects. -msgid "Effects" +#: js/widgets/musickeyboard.js:744 +msgid "Metronome" +msgstr "" + +#: js/widgets/musickeyboard.js:1549 +#: plugins/rodi.rtp:193 +msgid "duration" +msgstr "" + +#: js/widgets/musickeyboard.js:3179 +msgid "New action blocks generated" +msgstr "" + +#: js/widgets/musickeyboard.js:3180 +msgid "New action block generated" msgstr "" -#: js/timbre.js:904 -msgid "Filter" +#: js/widgets/musickeyboard.js:3365 +#: js/widgets/musickeyboard.js:3373 +msgid "MIDI device present." msgstr "" -#: js/timbre.js:946 -msgid "Add filter" +#: js/widgets/musickeyboard.js:3376 +msgid "No MIDI device found." msgstr "" -#: js/timbre.js:987 -msgid "Click on buttons to open the timbre design tools." +#: js/widgets/musickeyboard.js:3386 +msgid "Failed to get MIDI access in browser." msgstr "" -#: js/timbre.js:1273 -msgid "harmonicity" +#: js/widgets/phrasemaker.js:574 +msgid "Export" msgstr "" -#: js/timbre.js:1340 -#: js/timbre.js:1406 -msgid "modulation index" +#: js/widgets/phrasemaker.js:581 +msgid "Sort" msgstr "" -#: js/timbre.js:1484 -msgid "vibrato amount" +#: js/widgets/phrasemaker.js:975 +msgid "Click on the table to add notes." msgstr "" -#: js/timbre.js:1919 -msgid "Filter already present." +#: js/widgets/phrasemaker.js:2677 +#: js/widgets/phrasemaker.js:2819 +msgid "tuplet value" msgstr "" -#: js/timbre.js:2322 -msgid "delay (MS)" +#: js/widgets/rhythmruler.js:486 +msgid "Save rhythms" msgstr "" -#: js/timbre.js:2507 -msgid "distortion amount" +#: js/widgets/rhythmruler.js:512 +msgid "Save drum machine" msgstr "" -#: js/meterwidget.js:170 -msgid "Reset" +#: js/widgets/rhythmruler.js:589 +#.TRANS: user can tap out a rhythm by clicking on a ruler. +msgid "Tap a rhythm" msgstr "" -#: js/meterwidget.js:196 -msgid "Click in the circle to select strong beats for the meter." +#: js/widgets/rhythmruler.js:817 +msgid "Click on the ruler to divide it." msgstr "" -#: js/arpeggio.js:239 -msgid "Click in the grid to add steps to the arpeggio." +#: js/widgets/rhythmruler.js:950 +#: js/widgets/rhythmruler.js:952 +#: js/widgets/rhythmruler.js:1152 +#: js/widgets/rhythmruler.js:1154 +#: js/widgets/rhythmruler.js:1765 +#: js/widgets/rhythmruler.js:1767 +msgid "tap a rhythm" msgstr "" -#: js/ProjectStorage.js:243 -msgid "anonymous" +#: js/widgets/rhythmruler.js:1459 +msgid "Maximum value of 256 has been exceeded." msgstr "" -#: js/GlobalCard.js:68 -msgid "Share" +#: js/widgets/sampler.js:237 +msgid "Recording started..." msgstr "" -#: js/GlobalCard.js:74 -msgid "Flags" +#: js/widgets/sampler.js:245 +msgid "Recording complete..." msgstr "" -#: js/LocalCard.js:36 -msgid "View published project" +#: js/widgets/sampler.js:283 +msgid "A new sample block was generated." msgstr "" -#: js/LocalCard.js:42 -msgid "Publish project" +#: js/widgets/sampler.js:378 +msgid "Upload sample" msgstr "" -#: js/LocalCard.js:51 -msgid "Edit project" +#: js/widgets/sampler.js:399 +msgid "Warning: Your sample cannot be loaded because it is >1MB." msgstr "" -#: js/LocalCard.js:52 -msgid "Delete project" +#: js/widgets/sampler.js:448 +msgid "Toggle Mic" msgstr "" -#: js/LocalCard.js:53 -msgid "Download project" +#: js/widgets/sampler.js:458 +msgid "Playback" msgstr "" -#: js/LocalCard.js:55 -msgid "Duplicate project" +#: js/widgets/sampler.js:979 +#.TRANS: The reference tone is a sound used for comparison. +msgid "reference tone" msgstr "" -#: js/GlobalTag.js:28 +#: planet/js/GlobalTag.js:28 #.TRANS: On the Planet, we use labels to tag projects. msgid "All Projects" msgstr "" -#: js/GlobalTag.js:30 -#: js/StringHelper.js:37 +#: planet/js/GlobalTag.js:30 +#: planet/js/StringHelper.js:37 #.TRANS: On the Planet, we use labels to tag projects. msgid "My Projects" msgstr "" -#: js/GlobalTag.js:32 +#: planet/js/GlobalTag.js:32 #.TRANS: On the Planet, we use labels to tag projects. msgid "Examples" msgstr "" -#: js/GlobalTag.js:34 +#: planet/js/GlobalTag.js:34 #.TRANS: On the Planet, we use labels to tag projects. msgid "Music" msgstr "" -#: js/GlobalTag.js:36 +#: planet/js/GlobalTag.js:36 #.TRANS: On the Planet, we use labels to tag projects. msgid "Art" msgstr "" -#: js/GlobalTag.js:38 +#: planet/js/GlobalTag.js:38 #.TRANS: On the Planet, we use labels to tag projects. msgid "Math" msgstr "" -#: js/GlobalTag.js:40 +#: planet/js/GlobalTag.js:40 #.TRANS: On the Planet, we use labels to tag projects. msgid "Interactive" msgstr "" -#: js/GlobalTag.js:42 +#: planet/js/GlobalTag.js:42 #.TRANS: On the Planet, we use labels to tag projects. msgid "Design" msgstr "" -#: js/GlobalTag.js:44 +#: planet/js/GlobalTag.js:44 #.TRANS: On the Planet, we use labels to tag projects. msgid "Game" msgstr "" -#: js/GlobalTag.js:46 +#: planet/js/GlobalTag.js:46 #.TRANS: On the Planet, we use labels to tag projects. msgid "Media" msgstr "" -#: js/GlobalTag.js:48 +#: planet/js/GlobalTag.js:48 #.TRANS: On the Planet, we use labels to tag projects. msgid "Sensors" msgstr "" -#: js/GlobalTag.js:52 +#: planet/js/GlobalTag.js:52 #.TRANS: On the Planet, we use labels to tag projects. msgid "Code Snippet" msgstr "" -#: js/helper.js:149 -#: js/StringHelper.js:49 -msgid "Show more tags" +#: planet/js/LocalCard.js:36 +msgid "View published project" msgstr "" -#: js/helper.js:150 -msgid "Show fewer tags" +#: planet/js/LocalCard.js:42 +msgid "Publish project" +msgstr "" + +#: planet/js/LocalCard.js:51 +msgid "Edit project" +msgstr "" + +#: planet/js/LocalCard.js:52 +msgid "Delete project" +msgstr "" + +#: planet/js/LocalCard.js:53 +msgid "Download project" +msgstr "" + +#: planet/js/LocalCard.js:55 +msgid "Duplicate project" +msgstr "" + +#: planet/js/ProjectStorage.js:243 +msgid "anonymous" +msgstr "" + +#: planet/js/SaveInterface.js:34 +msgid "Open in Music Blocks" +msgstr "" + +#: planet/js/SaveInterface.js:35 +msgid "Open in Turtle Blocks" +msgstr "" + +#: planet/js/GlobalCard.js:68 +msgid "Share" +msgstr "" + +#: planet/js/GlobalCard.js:74 +msgid "Flags" +msgstr "" + +#: planet/js/GlobalPlanet.js:35 +msgid "No results found." +msgstr "" + +#: planet/js/GlobalPlanet.js:51 +msgid "Remix of" +msgstr "" + +#: planet/js/GlobalPlanet.js:509 +msgid "Cannot connect to server" msgstr "" -#: js/ProjectViewer.js:30 +#: planet/js/ProjectViewer.js:30 msgid "Error: Report could not be submitted. Try again later." msgstr "" -#: js/ProjectViewer.js:31 +#: planet/js/ProjectViewer.js:31 msgid "Thank you for reporting this project. A moderator will review the project shortly, to verify violation of the Sugar Labs Code of Conduct." msgstr "" -#: js/ProjectViewer.js:32 -#: js/StringHelper.js:62 -#: js/StringHelper.js:64 -#: js/StringHelper.js:68 +#: planet/js/ProjectViewer.js:32 +#: planet/js/StringHelper.js:62 +#: planet/js/StringHelper.js:64 +#: planet/js/StringHelper.js:68 msgid "Report Project" msgstr "" -#: js/ProjectViewer.js:33 -#: js/StringHelper.js:63 +#: planet/js/ProjectViewer.js:33 +#: planet/js/StringHelper.js:63 msgid "Project Reported" msgstr "" -#: js/ProjectViewer.js:34 +#: planet/js/ProjectViewer.js:34 msgid "Report description required" msgstr "" -#: js/ProjectViewer.js:35 +#: planet/js/ProjectViewer.js:35 msgid "Report description too long" msgstr "" -#: js/StringHelper.js:30 +#: planet/js/Publisher.js:30 +msgid "Feature unavailable - cannot connect to server. Reload Music Blocks to try again." +msgstr "" + +#: planet/js/Publisher.js:220 +#: planet/js/Publisher.js:237 +msgid "This field is required" +msgstr "" + +#: planet/js/Publisher.js:227 +msgid "Title too long" +msgstr "" + +#: planet/js/Publisher.js:244 +msgid "Description too long" +msgstr "" + +#: planet/js/Publisher.js:341 +msgid "Server Error" +msgstr "" + +#: planet/js/Publisher.js:341 +msgid "Try Again" +msgstr "" + +#: planet/js/StringHelper.js:30 msgid "Planet" msgstr "" -#: js/StringHelper.js:31 +#: planet/js/StringHelper.js:31 msgid "Close Planet" msgstr "" -#: js/StringHelper.js:32 +#: planet/js/StringHelper.js:32 msgid "Open project from file" msgstr "" -#: js/StringHelper.js:34 +#: planet/js/StringHelper.js:34 msgid "Local" msgstr "" -#: js/StringHelper.js:35 +#: planet/js/StringHelper.js:35 msgid "Global" msgstr "" -#: js/StringHelper.js:36 +#: planet/js/StringHelper.js:36 msgid "Search for a project" msgstr "" -#: js/StringHelper.js:38 +#: planet/js/StringHelper.js:38 msgid "Publish Project" msgstr "" -#: js/StringHelper.js:40 +#: planet/js/StringHelper.js:40 msgid "Tags (max 5)" msgstr "" -#: js/StringHelper.js:41 -#: js/StringHelper.js:61 +#: planet/js/StringHelper.js:41 +#: planet/js/StringHelper.js:61 msgid "Description" msgstr "" -#: js/StringHelper.js:42 -#: js/StringHelper.js:67 +#: planet/js/StringHelper.js:42 +#: planet/js/StringHelper.js:67 msgid "Submit" msgstr "" -#: js/StringHelper.js:43 -#: js/StringHelper.js:47 +#: planet/js/StringHelper.js:43 +#: planet/js/StringHelper.js:47 msgid "Cancel" msgstr "" -#: js/StringHelper.js:44 +#: planet/js/StringHelper.js:44 msgid "Delete \\"\\"?" msgstr "" -#: js/StringHelper.js:45 +#: planet/js/StringHelper.js:45 msgid "Permanently delete project \\"\\"?" msgstr "" -#: js/StringHelper.js:48 +#: planet/js/StringHelper.js:48 msgid "Explore Projects" msgstr "" -#: js/StringHelper.js:50 +#: planet/js/StringHelper.js:49 +#: planet/js/helper.js:149 +msgid "Show more tags" +msgstr "" + +#: planet/js/StringHelper.js:50 msgid "Most recent" msgstr "" -#: js/StringHelper.js:51 +#: planet/js/StringHelper.js:51 msgid "Most liked" msgstr "" -#: js/StringHelper.js:52 +#: planet/js/StringHelper.js:52 msgid "Most downloaded" msgstr "" -#: js/StringHelper.js:53 +#: planet/js/StringHelper.js:53 msgid "A-Z" msgstr "" -#: js/StringHelper.js:54 +#: planet/js/StringHelper.js:54 msgid "Sort by" msgstr "" -#: js/StringHelper.js:55 +#: planet/js/StringHelper.js:55 msgid "Load More Projects" msgstr "" -#: js/StringHelper.js:56 +#: planet/js/StringHelper.js:56 msgid "Last Updated" msgstr "" -#: js/StringHelper.js:57 +#: planet/js/StringHelper.js:57 msgid "Creation Date" msgstr "" -#: js/StringHelper.js:58 +#: planet/js/StringHelper.js:58 msgid "Number of Downloads:" msgstr "" -#: js/StringHelper.js:59 +#: planet/js/StringHelper.js:59 msgid "Number of Likes:" msgstr "" -#: js/StringHelper.js:60 +#: planet/js/StringHelper.js:60 msgid "Tags:" msgstr "" -#: js/StringHelper.js:65 +#: planet/js/StringHelper.js:65 msgid "Report projects which violate the Sugar Labs Code of Conduct." msgstr "" -#: js/StringHelper.js:66 +#: planet/js/StringHelper.js:66 msgid "Reason for reporting project" msgstr "" -#: js/StringHelper.js:70 +#: planet/js/StringHelper.js:70 msgid "Download as File" msgstr "" -#: js/GlobalPlanet.js:35 -msgid "No results found." -msgstr "" - -#: js/GlobalPlanet.js:51 -msgid "Remix of" -msgstr "" - -#: js/GlobalPlanet.js:509 -msgid "Cannot connect to server" -msgstr "" - -#: js/Publisher.js:30 -msgid "Feature unavailable - cannot connect to server. Reload Music Blocks to try again." -msgstr "" - -#: js/Publisher.js:218 -#: js/Publisher.js:235 -msgid "This field is required" -msgstr "" - -#: js/Publisher.js:225 -msgid "Title too long" +#: planet/js/helper.js:150 +msgid "Show fewer tags" msgstr "" -#: js/Publisher.js:242 -msgid "Description too long" +#: plugins/accelerometer.rtp:48 +msgid "motion x" msgstr "" -#: js/Publisher.js:339 -msgid "Server Error" +#: plugins/accelerometer.rtp:56 +msgid "motion y" msgstr "" -#: js/Publisher.js:339 -msgid "Try Again" +#: plugins/accelerometer.rtp:64 +msgid "motion z" msgstr "" -#: js/SaveInterface.js:34 -msgid "Open in Music Blocks" +#: plugins/facebook.rtp:27 +msgid "publish" msgstr "" -#: js/SaveInterface.js:35 -msgid "Open in Turtle Blocks" +#: plugins/maths.rtp:62 +msgid "power" msgstr "" -#: plugins/weather.rtp:68 -#: plugins/weather.rtp:97 -msgid "Days ahead must be in the range of -1 to 5." +#: plugins/maths.rtp:62 +msgid "base" msgstr "" -#: plugins/weather.rtp:122 -msgid "forecast" +#: plugins/maths.rtp:62 +msgid "exp" msgstr "" -#: plugins/weather.rtp:123 -#: plugins/weather.rtp:137 -#: plugins/weather.rtp:150 -msgid "city" +#: plugins/maths.rtp:99 +msgid "floor" msgstr "" -#: plugins/weather.rtp:124 -#: plugins/weather.rtp:138 -#: plugins/weather.rtp:151 -msgid "day" +#: plugins/maths.rtp:104 +msgid "ceiling" msgstr "" -#: plugins/weather.rtp:136 -msgid "high" +#: plugins/maths.rtp:109 +msgid "to degrees" msgstr "" -#: plugins/weather.rtp:149 -msgid "low" +#: plugins/maths.rtp:114 +msgid "to radians" msgstr "" #: plugins/nutrition.rtp:104 @@ -9458,45 +9867,6 @@ msgstr "" msgid "water" msgstr "" -#: plugins/maths.rtp:62 -#: plugins/examples.rtp:93 -msgid "power" -msgstr "" - -#: plugins/maths.rtp:62 -#: plugins/examples.rtp:93 -msgid "base" -msgstr "" - -#: plugins/maths.rtp:62 -#: plugins/examples.rtp:93 -msgid "exp" -msgstr "" - -#: plugins/maths.rtp:99 -#: plugins/examples.rtp:130 -msgid "floor" -msgstr "" - -#: plugins/maths.rtp:104 -#: plugins/examples.rtp:135 -msgid "ceiling" -msgstr "" - -#: plugins/maths.rtp:109 -#: plugins/examples.rtp:140 -msgid "to degrees" -msgstr "" - -#: plugins/maths.rtp:114 -#: plugins/examples.rtp:145 -msgid "to radians" -msgstr "" - -#: plugins/facebook.rtp:27 -msgid "publish" -msgstr "" - #: plugins/rodi.rtp:172 msgid "blink" msgstr "" @@ -9525,18 +9895,66 @@ msgstr "" msgid "move" msgstr "" -#: plugins/accelerometer.rtp:48 -msgid "motion x" +#: plugins/weather.rtp:68 +#: plugins/weather.rtp:97 +msgid "Days ahead must be in the range of -1 to 5." msgstr "" -#: plugins/accelerometer.rtp:56 -msgid "motion y" +#: plugins/weather.rtp:122 +msgid "forecast" msgstr "" -#: plugins/accelerometer.rtp:64 -msgid "motion z" +#: plugins/weather.rtp:123 +#: plugins/weather.rtp:137 +#: plugins/weather.rtp:150 +msgid "city" +msgstr "" + +#: plugins/weather.rtp:124 +#: plugins/weather.rtp:138 +#: plugins/weather.rtp:151 +msgid "day" +msgstr "" + +#: plugins/weather.rtp:136 +msgid "high" +msgstr "" + +#: plugins/weather.rtp:149 +msgid "low" msgstr "" +#: js/toolbar.js:70 + +#: js/toolbar.js:130 + +#: js/toolbar.js:194 + +#: js/toolbar.js:249 + +#~msgid "Toggle JavaScript Editor" +#~msgstr "" + +#: js/EnsembleBlocks.js:643 + +#~msgid "The Turrle pitch block returns the current pitch number being played by the specified turtle." +#~msgstr "" + +#: js/PitchActions.js:88 + +#~msgid "The Scalar Step Block must be used inside of a Note Block." +#~msgstr "" + +#: js/PitchActions.js:107 + +#~msgid "The Scalar Step Block must be preceded by a Pitch Block." +#~msgstr "" + +#: js/musickeyboard.js:2840 + +#~msgid "New action blocks generated!" +#~msgstr "" + #: js/toolbar.js:110 #: js/toolbar.js:204 @@ -9877,11 +10295,6 @@ msgstr "" #~msgid "The Time block returns the number of seconds that the program has been running." #~msgstr "" -#: js/help.js:95 - -#~msgid "Take a tour" -#~msgstr "" - #: js/GlobalCard.js:48 #~msgid "More Details" @@ -12780,11 +13193,6 @@ msgstr "" #~msgid "The save-stack button saves a stack onto a custom palette. It appears after a \"long press\" on a stack." #~msgstr "" -#: js/musicutils.js:254 - -#~msgid "Custom" -#~msgstr "" - #: js/basicblocks.js:4785 #~msgid "Rhythm" diff --git a/po/he.po b/po/he.po index a4331f204a..e33c2188e9 100644 --- a/po/he.po +++ b/po/he.po @@ -12,277 +12,132 @@ "X-Generator: Pootle 2.0.5\n" #: js/planetInterface.js:104 -msgid "project undefined" -msgstr "פרויקט לא מוגדר" - -#: js/logo.js:61 -msgid "Not a valid pitch name" -msgstr "לא שם פיץ' חוקי" - -#: js/logo.js:507 -#: js/ProgramBlocks.js:258 -#: js/ProgramBlocks.js:427 -msgid "You must select a file." -msgstr "עליך לבחור קובץ." - -#: js/logo.js:1184 -#: js/turtles.js:118 -#: js/turtle-painter.js:1192 -#: js/turtle-painter.js:1193 -#: js/block.js:1463 -#: js/lilypond.js:757 -#: js/lilypond.js:921 -#: js/lilypond.js:959 -#: js/ActionBlocks.js:1223 -#: js/ProgramBlocks.js:1267 -msgid "start" -msgstr "התחל" - -#: js/logo.js:1696 -msgid "Playback is ready." -msgstr "ההשמעה מוכנה." - -#: js/blocks.js:1011 -#: js/blocks.js:3427 -#: js/blocks.js:3428 -#: js/blocks.js:3653 -#: js/blocks.js:4012 -#: js/blocks.js:4205 -#: js/blocks.js:5343 -#: js/blocks.js:6474 -#: js/palette.js:527 -#: js/palette.js:536 -#: js/palette.js:545 -#: js/palette.js:554 -#: js/palette.js:1131 -#: js/palette.js:1142 -#: js/palette.js:1153 -#: js/palette.js:1164 -#: js/palette.js:1183 -#: js/rubrics.js:529 -#: js/macros.js:170 -#: js/macros.js:266 -#: js/macros.js:267 -#: js/macros.js:276 -#: js/macros.js:828 -#: js/block.js:1449 -#: js/block.js:4164 -#: js/block.js:4182 -#: js/block.js:4193 -#: js/turtledefs.js:128 -#: js/turtledefs.js:230 -#: js/ActionBlocks.js:254 -#: js/ActionBlocks.js:307 -#: js/ActionBlocks.js:617 -#: js/ActionBlocks.js:716 -#: js/ActionBlocks.js:961 -#: js/ActionBlocks.js:1049 -#: js/ActionBlocks.js:1322 -#: js/ActionBlocks.js:1325 -#: js/ActionBlocks.js:1337 -#: js/ActionBlocks.js:1404 -#: js/MeterBlocks.js:715 -#: js/MeterBlocks.js:768 -#: js/MeterBlocks.js:831 -#: js/MeterBlocks.js:892 -#: js/phrasemaker.js:4412 -#: js/musickeyboard.js:2647 -#: js/rhythmruler.js:1928 -#: js/rhythmruler.js:1935 -#: js/rhythmruler.js:2119 -#: js/rhythmruler.js:2126 -msgid "action" -msgstr "פעולה" - -#: js/blocks.js:1205 -#: js/blocks.js:3380 -#: js/blocks.js:3770 -#: js/blocks.js:3801 -#: js/blocks.js:3850 -#: js/blocks.js:3885 -#: js/blocks.js:6497 -#: js/palette.js:509 -#: js/palette.js:638 -#: js/palette.js:1107 -#: js/BoxesBlocks.js:282 -#: js/BoxesBlocks.js:285 -#: js/BoxesBlocks.js:405 -#: js/BoxesBlocks.js:594 -msgid "box" -msgstr "תיבה" - -#: js/blocks.js:1680 -msgid "Consider breaking this stack into parts." -msgstr "שקול לפרק את הערימה הזו לחלקים." +#: js/SaveInterface.js:59 +#: js/SaveInterface.js:61 +#: js/SaveInterface.js:93 +msgid "Music Blocks Project" +msgstr "פרויקט Music Blocks" -#: js/blocks.js:2408 -#: js/palette.js:653 -#: js/MediaBlocks.js:602 -msgid "open file" -msgstr "פתיחת קובץ" +#: js/SaveInterface.js:63 +msgid "This project was created in Music Blocks" +msgstr "פרויקט זה נוצר ב-Music Blocks" -#: js/blocks.js:2415 -#: js/blocks.js:2423 -#: js/activity.js:1875 -msgid "audio file" -msgstr "קובץ שמע" +#: js/SaveInterface.js:67 +msgid "Music Blocks is a Free/Libre Software application." +msgstr "Music Blocks הוא יישום תוכנת FREE/LIBRE." -#: js/blocks.js:2536 -#: js/blocks.js:3147 -#: js/block.js:3543 -msgid "on2" -msgstr "עַל" +#: js/SaveInterface.js:69 +msgid "The source code can be accessed at" +msgstr "ניתן לגשת לקוד המקור בכתובת" -#: js/blocks.js:2538 -#: js/blocks.js:3149 -#: js/block.js:3545 -msgid "off" -msgstr "כבוי" +#: js/SaveInterface.js:72 +msgid "For more information, please consult the" +msgstr "למידע נוסף נא להתייעץ" -#: js/blocks.js:2543 -#: js/blocks.js:3154 -#: js/palette.js:618 -#: js/block.js:3466 -#: js/BooleanBlocks.js:77 -#: js/BooleanBlocks.js:167 -#: js/BooleanBlocks.js:251 -#: js/BooleanBlocks.js:335 -#: js/BooleanBlocks.js:433 -#: js/BooleanBlocks.js:539 -#: js/BooleanBlocks.js:640 -#: js/BooleanBlocks.js:741 -#: js/BooleanBlocks.js:847 -#: js/BooleanBlocks.js:948 -#: js/BooleanBlocks.js:1033 -#: js/SensorsBlocks.js:910 -msgid "true" -msgstr "נָכוֹן" +#: js/SaveInterface.js:76 +#: js/turtledefs.js:795 +msgid "Music Blocks Guide" +msgstr "מדריך Music Blocks" -#: js/blocks.js:2545 -#: js/blocks.js:3156 -#: js/block.js:3466 -#: js/BooleanBlocks.js:79 -#: js/BooleanBlocks.js:169 -#: js/BooleanBlocks.js:253 -#: js/BooleanBlocks.js:337 -#: js/BooleanBlocks.js:435 -#: js/BooleanBlocks.js:541 -#: js/BooleanBlocks.js:642 -#: js/BooleanBlocks.js:743 -#: js/BooleanBlocks.js:849 -#: js/BooleanBlocks.js:950 -#: js/SensorsBlocks.js:912 -msgid "false" -msgstr "שֶׁקֶר" +#: js/SaveInterface.js:83 +msgid "Alternatively, open the file in Music Blocks using the Load project button." +msgstr "לחלופין, פתח את הקובץ ב-Music Blocks באמצעות הלחצן Load project." -#: js/blocks.js:3183 -#: js/palette.js:574 -#: js/MediaBlocks.js:892 -#: js/MediaBlocks.js:963 -msgid "text" -msgstr "טקסט" +#: js/SaveInterface.js:85 +msgid "Project Code" +msgstr "קוד פרויקט" -#: js/blocks.js:3379 -#: js/palette.js:641 -#: js/palette.js:642 -#: js/BoxesBlocks.js:514 -msgid "store in box" -msgstr "לאחסן בקופסה" +#: js/SaveInterface.js:87 +msgid "This code stores data about the blocks in a project." +msgstr "קוד זה מאחסן נתונים על הבלוקים בפרויקט." -#: js/blocks.js:3384 -#: js/blocks.js:3824 -#: js/blocks.js:3859 -#: js/blocks.js:3894 -#: js/blocks.js:5773 -#: js/blocks.js:5794 -#: js/BoxesBlocks.js:772 -msgid "box1" -msgstr "קופסא 1" +#: js/SaveInterface.js:89 +msgid "Show" +msgstr ""לְהַרְאוֹ" -#: js/blocks.js:3386 -#: js/blocks.js:3826 -#: js/blocks.js:3861 -#: js/blocks.js:3896 -#: js/blocks.js:5775 -#: js/blocks.js:5796 -#: js/BoxesBlocks.js:663 -msgid "box2" -msgstr "קופסא 2" +#: js/SaveInterface.js:91 +msgid "Hide" +msgstr "להתחבא" -#: js/blocks.js:4058 -#: js/palette.js:639 -#: js/palette.js:644 -#: js/palette.js:1043 -#: js/BoxesBlocks.js:591 -msgid "store in" -msgstr "שמור ב" +#: js/SaveInterface.js:131 +#: js/SaveInterface.js:204 +#: js/SaveInterface.js:262 +#: js/SaveInterface.js:389 +#: js/SaveInterface.js:417 +#: js/activity.js:4884 +#: planet/js/ProjectStorage.js:27 +#: planet/js/GlobalPlanet.js:467 +#: planet/js/GlobalPlanet.js:469 +#: planet/js/GlobalPlanet.js:495 +#.TRANS: default project title when saving as Lilypond +msgid "My Project" +msgstr "הפרויקט שלי" -#: js/blocks.js:4058 -#: js/EnsembleBlocks.js:391 -#: js/EnsembleBlocks.js:402 -#: js/MediaBlocks.js:746 -#: js/ProgramBlocks.js:390 -#: js/ProgramBlocks.js:495 -#: js/ProgramBlocks.js:658 -#: js/BoxesBlocks.js:595 -#: js/PitchBlocks.js:656 -#: js/PitchBlocks.js:932 -#: js/PitchBlocks.js:1827 -#: js/ToneBlocks.js:1025 -#: js/DictBlocks.js:215 -#: js/DictBlocks.js:289 -msgid "name" -msgstr "שם" +#: js/SaveInterface.js:197 +#: planet/js/SaveInterface.js:58 +msgid "No description provided" +msgstr "לא סופק תיאור" -#: js/blocks.js:4058 -#: js/RhythmBlocks.js:1130 -#: js/BoxesBlocks.js:75 -#: js/BoxesBlocks.js:595 -#: js/HeapBlocks.js:544 -#: js/DictBlocks.js:289 -#: js/DictBlocks.js:430 -msgid "value" -msgstr "ערך" +#: js/SaveInterface.js:332 +msgid "Your recording is in progress." +msgstr "ההקלטה שלך בעיצומה." -#: js/blocks.js:4907 -msgid "There is no block selected." -msgstr "לא נבחר בלוק." +#: js/SaveInterface.js:401 +#.TRANS: File name prompt for save as Lilypond +msgid "File name" +msgstr "שם קובץ" -#: js/blocks.js:5002 -#: js/MediaBlocks.js:888 -msgid "show" -msgstr "הצג" +#: js/SaveInterface.js:403 +#: planet/js/StringHelper.js:39 +#.TRANS: Project title prompt for save as Lilypond +msgid "Project title" +msgstr "כותרת הפרויקט" -#: js/blocks.js:5005 -#: js/MediaBlocks.js:803 -#.TRANS: Avatar is the image used to determine the appearance of the mouse. -msgid "avatar" -msgstr "גִלגוּל" +#: js/SaveInterface.js:405 +#.TRANS: Project title prompt for save as Lilypond +msgid "Project author" +msgstr "מחבר הפרויקט" -#: js/blocks.js:5008 -#: js/ToneBlocks.js:1010 -#: js/sampler.js:693 -#.TRANS: The sound sample that the user uploads. -msgid "sample" -msgstr "דוּגמָה" +#: js/SaveInterface.js:407 +#.TRANS: MIDI prompt for save as Lilypond +msgid "Include MIDI output?" +msgstr "כולל פלט MIDI" -#: js/turtles.js:874 -msgid "Grid" -msgstr "רֶשֶׁת" +#: js/SaveInterface.js:409 +#.TRANS: Guitar prompt for save as Lilypond +msgid "Include guitar tablature output?" +msgstr "כלול פלט טבלטור גיטרה" -#: js/turtles.js:891 -#: js/turtledefs.js:626 -msgid "Clean" -msgstr "נקה" +#: js/SaveInterface.js:411 +#.TRANS: Lilypond is a scripting language for generating sheet music +msgid "Save as Lilypond" +msgstr "שמור בתור Lilypond" -#: js/turtles.js:912 -#: js/turtledefs.js:632 -msgid "Collapse" -msgstr "להתמוטט" +#: js/SaveInterface.js:426 +#: js/blocks/EnsembleBlocks.js:75 +#: js/blocks/EnsembleBlocks.js:154 +#: js/blocks/EnsembleBlocks.js:216 +#: js/blocks/EnsembleBlocks.js:302 +#: js/blocks/EnsembleBlocks.js:348 +#: js/blocks/EnsembleBlocks.js:389 +#: js/blocks/EnsembleBlocks.js:441 +#: js/blocks/EnsembleBlocks.js:490 +#: js/blocks/EnsembleBlocks.js:536 +#: js/blocks/EnsembleBlocks.js:583 +#: js/blocks/EnsembleBlocks.js:637 +#: js/blocks/EnsembleBlocks.js:753 +#: js/blocks/EnsembleBlocks.js:840 +#: js/blocks/EnsembleBlocks.js:899 +#: js/blocks/EnsembleBlocks.js:942 +#: js/blocks/EnsembleBlocks.js:1212 +#: js/blocks/EnsembleBlocks.js:1280 +#.TRANS: default project author when saving as Lilypond +msgid "Mr. Mouse" +msgstr "מר עכבר" -#: js/turtles.js:940 -msgid "Expand" -msgstr "להתרחב" +#: js/SaveInterface.js:573 +msgid "The Lilypond code is copied to clipboard. You can paste it here: " +msgstr "קוד Lilypond מועתק ללוח. אתה יכול להדביק אותו כאן:" #: js/languagebox.js:198 msgid "Refresh your browser to change your language preference." @@ -292,6934 +147,7488 @@ msgstr "רענן את הדפדפן שלך כדי לשנות את העדפת הש msgid "Music Blocks is already set to this language." msgstr "Music Blocks כבר מוגדר לשפה זו" -#: js/piemenus.js:200 -#: js/musicutils.js:808 -#: js/musicutils.js:824 -#: js/phrasemaker.js:1672 -#: js/musickeyboard.js:2041 -#: js/sampler.js:544 -#.TRANS: double sharp is a music term related to pitch -msgid "double sharp" -msgstr "חד כפול" - -#: js/piemenus.js:201 -#: js/PitchBlocks.js:1510 -#: js/PitchActions.js:580 -#: js/musicutils.js:806 -#: js/musicutils.js:825 -#: js/phrasemaker.js:1673 -#: js/musickeyboard.js:2042 -#: js/sampler.js:545 -#.TRANS: sharp is a half-step up in pitch -#.TRANS: sharp is a music term related to pitch -msgid "sharp" -msgstr "חַד" - -#: js/piemenus.js:202 -#: js/musicutils.js:804 -#: js/musicutils.js:826 -#: js/phrasemaker.js:1674 -#: js/musickeyboard.js:2043 -#: js/sampler.js:546 -#.TRANS: natural is a music term related to pitch -msgid "natural" -msgstr "" +#: js/planetInterface.js:131 +msgid "project undefined" +msgstr "פרויקט לא מוגדר" -#: js/piemenus.js:203 -#: js/PitchBlocks.js:1469 -#: js/PitchActions.js:583 -#: js/musicutils.js:802 -#: js/musicutils.js:827 -#: js/phrasemaker.js:1675 -#: js/musickeyboard.js:2044 -#: js/sampler.js:547 -#.TRANS: flat is a half-step down in pitch -#.TRANS: flat is a music term related to pitch -msgid "flat" -msgstr " זוגי" +#: js/rubrics.js:523 +#: js/turtledefs.js:119 +#: js/turtledefs.js:221 +#: js/blocks/RhythmBlockPaletteBlocks.js:52 +#: js/blocks/RhythmBlockPaletteBlocks.js:234 +#: js/blocks/ProgramBlocks.js:745 +#: js/widgets/rhythmruler.js:2057 +#: js/widgets/rhythmruler.js:2064 +#: js/widgets/rhythmruler.js:2133 +#: js/widgets/rhythmruler.js:2140 +#: js/widgets/rhythmruler.js:2219 +#.TRANS: an arrangement of notes based on duration +msgid "rhythm" +msgstr "קֶצֶב" -#: js/piemenus.js:204 -#: js/musicutils.js:800 -#: js/musicutils.js:828 -#: js/phrasemaker.js:1676 -#: js/musickeyboard.js:2045 -#: js/sampler.js:548 -#.TRANS: double flat is a music term related to pitch -msgid "double flat" -msgstr "שטוח זוגי" +#: js/rubrics.js:524 +#: js/turtledefs.js:121 +#: js/turtledefs.js:223 +#: js/block-verbose.js:2622 +#: js/block.js:2550 +#: js/blocks/IntervalsBlocks.js:63 +#: js/blocks/SensorsBlocks.js:178 +#: js/blocks/PitchBlocks.js:1839 +#: js/blocks/PitchBlocks.js:1853 +#: js/widgets/musickeyboard.js:1935 +#: js/widgets/phrasemaker.js:1036 +#.TRANS: pitch number +#.TRANS: pitch number +#.TRANS: we specify pitch in terms of a name and an octave. The name can be CDEFGAB or Do Re Mi Fa Sol La Ti. Octave is a number between 1 and 8. +msgid "pitch" +msgstr "מגרש מוזיקלי" -#: js/piemenus.js:2861 -#: js/PitchBlocks.js:1357 -#: js/musicutils.js:627 -#.TRANS: unison means the note is the same as the current note -#.TRANS: unison is a music term related to intervals -msgid "unison" -msgstr "" +#: js/rubrics.js:525 +#: js/turtledefs.js:123 +#: js/turtledefs.js:225 +msgid "tone" +msgstr "צְלִיל" -#: js/piemenus.js:3015 -#: js/piemenus.js:3088 -#: js/musicutils.js:635 -#: js/musicutils.js:810 -#: js/musicutils.js:912 -#.TRANS: major is a music term related to intervals and mode -msgid "major" -msgstr "" +#: js/rubrics.js:526 +#: js/lilypond.js:605 +#: js/lilypond.js:904 +#: js/lilypond.js:910 +#: js/lilypond.js:948 +msgid "mouse" +msgstr "עכבר" -#: js/piemenus.js:3015 -#: js/piemenus.js:3088 -#: js/musicutils.js:653 -#.TRANS: modal scale for music -msgid "ionian" -msgstr "" +#: js/rubrics.js:527 +#: js/turtledefs.js:132 +#: js/turtledefs.js:234 +#: js/widgets/phrasemaker.js:1040 +msgid "pen" +msgstr "עט" -#: js/piemenus.js:3017 -#: js/piemenus.js:3092 -#: js/musicutils.js:633 -#: js/musicutils.js:811 -#: js/musicutils.js:909 -#.TRANS: minor is a music term related to intervals and mode -msgid "minor" -msgstr "" +#: js/rubrics.js:528 +#: js/turtledefs.js:133 +#: js/turtledefs.js:235 +#: js/blocks/NumberBlocks.js:981 +#: js/blocks/PitchBlocks.js:1717 +#: js/blocks/PitchBlocks.js:1758 +msgid "number" +msgstr "מספר" -#: js/piemenus.js:3017 -#: js/piemenus.js:3092 -#: js/musicutils.js:663 -#.TRANS: modal scale for music -msgid "aeolian" -msgstr "" - -#: js/piemenus.js:3407 -msgid "Duplicate" -msgstr "לְשַׁכְפֵּל" - -#: js/piemenus.js:3408 -#: js/turtledefs.js:534 -msgid "Extract" -msgstr "לְהַעְתִיק" - -#: js/piemenus.js:3409 -msgid "Move to trash" -msgstr "העבר לאשפה" - -#: js/piemenus.js:3410 -#: js/timbre.js:968 -#: js/StringHelper.js:69 -msgid "Close" -msgstr "סגור" - -#: js/piemenus.js:3416 -msgid "Save stack" -msgstr "שמור את הקבוצה" - -#: js/piemenus.js:3420 -#: js/toolbar.js:60 -#: js/toolbar.js:120 -#: js/toolbar.js:185 -#: js/toolbar.js:240 -#: js/turtledefs.js:752 -msgid "Help" -msgstr "עזרה" - -#: js/piemenus.js:3762 -msgid "You have chosen key " -msgstr "אתה בחרת" - -#: js/piemenus.js:3766 -msgid " for your pitch preview." -msgstr "" - -#: js/palette.js:571 -msgid "grid" -msgstr "רֶשֶׁת" - -#: js/palette.js:577 -#: js/block.js:1540 -#: js/block.js:2343 -#: js/turtledefs.js:126 -#: js/turtledefs.js:228 -#: js/lilypond.js:740 -#: js/lilypond.js:905 -#: js/lilypond.js:949 -#: js/DrumBlocks.js:486 -#: js/RhythmBlocks.js:766 -#: js/VolumeBlocks.js:502 -#: js/phrasemaker.js:823 -msgid "drum" -msgstr "תוֹף" - -#: js/palette.js:580 -msgid "effect" -msgstr "אפקט שמע" - -#: js/palette.js:586 -msgid "sargam" -msgstr "" - -#: js/palette.js:589 -#: js/activity.js:1833 -#: js/RhythmBlocks.js:923 -#: js/PitchBlocks.js:442 -#: js/PitchBlocks.js:1748 -#.TRANS: a numeric mapping of the notes in an octave based on the musical mode -msgid "scale degree" -msgstr "" - -#: js/palette.js:592 -#: js/activity.js:1860 -msgid "mode name" -msgstr "" - -#: js/palette.js:595 -#: js/activity.js:1839 -msgid "invert mode" -msgstr "" - -#: js/palette.js:598 -#: js/activity.js:1836 -msgid "voice name" -msgstr "שם קול" - -#: js/palette.js:601 -#: js/PitchBlocks.js:1181 -msgid "custom pitch" -msgstr "" - -#: js/palette.js:605 -#: js/block.js:1456 -#: js/block.js:1575 -#: js/WidgetBlocks.js:218 -#: js/IntervalsBlocks.js:63 -msgid "temperament" -msgstr "הטמפרמנט" - -#: js/palette.js:609 -msgid "accidental" -msgstr "" - -#: js/palette.js:615 -#: js/activity.js:1866 -msgid "interval name" -msgstr "" - -#: js/palette.js:633 -#: js/PitchBlocks.js:405 -msgid "pitch converter" -msgstr "" - -#: js/rubrics.js:522 -#: js/turtledefs.js:119 -#: js/turtledefs.js:221 -#: js/RhythmBlockPaletteBlocks.js:52 -#: js/RhythmBlockPaletteBlocks.js:233 -#: js/ProgramBlocks.js:745 -#: js/rhythmruler.js:1670 -#: js/rhythmruler.js:1677 -#: js/rhythmruler.js:1745 -#: js/rhythmruler.js:1752 -#: js/rhythmruler.js:1830 -#.TRANS: an arrangement of notes based on duration -msgid "rhythm" -msgstr "קֶצֶב" - -#: js/rubrics.js:523 -#: js/block.js:2339 -#: js/turtledefs.js:121 -#: js/turtledefs.js:223 -#: js/IntervalsBlocks.js:63 -#: js/PitchBlocks.js:1801 -#: js/PitchBlocks.js:1814 -#: js/SensorsBlocks.js:178 -#: js/phrasemaker.js:821 -#: js/musickeyboard.js:1653 -#.TRANS: pitch number -#.TRANS: we specify pitch in terms of a name and an octave. The name can be CDEFGAB or Do Re Mi Fa Sol La Ti. Octave is a number between 1 and 8. -msgid "pitch" -msgstr "מגרש מוזיקלי" - -#: js/rubrics.js:524 -#: js/turtledefs.js:123 -#: js/turtledefs.js:225 -msgid "tone" -msgstr "צְלִיל" - -#: js/rubrics.js:525 -#: js/lilypond.js:613 -#: js/lilypond.js:912 -#: js/lilypond.js:918 -#: js/lilypond.js:956 -msgid "mouse" -msgstr "עכבר" - -#: js/rubrics.js:526 -#: js/turtledefs.js:132 -#: js/turtledefs.js:234 -#: js/phrasemaker.js:825 -msgid "pen" -msgstr "עט" - -#: js/rubrics.js:527 -#: js/turtledefs.js:133 -#: js/turtledefs.js:235 -#: js/NumberBlocks.js:905 -#: js/PitchBlocks.js:1679 -#: js/PitchBlocks.js:1720 -msgid "number" -msgstr "מספר" - -#: js/rubrics.js:528 -#: js/turtledefs.js:127 -#: js/turtledefs.js:229 -msgid "flow" -msgstr "זרם" +#: js/rubrics.js:529 +#: js/turtledefs.js:127 +#: js/turtledefs.js:229 +msgid "flow" +msgstr "זרם" #: js/rubrics.js:530 +#: js/turtledefs.js:128 +#: js/turtledefs.js:230 +#: js/block-verbose.js:1609 +#: js/block-verbose.js:4559 +#: js/block-verbose.js:4577 +#: js/block-verbose.js:4588 +#: js/block.js:1573 +#: js/block.js:4483 +#: js/block.js:4501 +#: js/block.js:4512 +#: js/blocks.js:1018 +#: js/blocks.js:3491 +#: js/blocks.js:3492 +#: js/blocks.js:3717 +#: js/blocks.js:4076 +#: js/blocks.js:4269 +#: js/blocks.js:5432 +#: js/blocks.js:6563 +#: js/macros.js:170 +#: js/macros.js:266 +#: js/macros.js:267 +#: js/macros.js:276 +#: js/macros.js:828 +#: js/palette.js:527 +#: js/palette.js:536 +#: js/palette.js:545 +#: js/palette.js:554 +#: js/palette.js:1129 +#: js/palette.js:1140 +#: js/palette.js:1151 +#: js/palette.js:1162 +#: js/palette.js:1181 +#: js/blocks/ActionBlocks.js:254 +#: js/blocks/ActionBlocks.js:307 +#: js/blocks/ActionBlocks.js:617 +#: js/blocks/ActionBlocks.js:716 +#: js/blocks/ActionBlocks.js:961 +#: js/blocks/ActionBlocks.js:1049 +#: js/blocks/ActionBlocks.js:1322 +#: js/blocks/ActionBlocks.js:1325 +#: js/blocks/ActionBlocks.js:1337 +#: js/blocks/ActionBlocks.js:1404 +#: js/blocks/MeterBlocks.js:715 +#: js/blocks/MeterBlocks.js:768 +#: js/blocks/MeterBlocks.js:831 +#: js/blocks/MeterBlocks.js:892 +#: js/widgets/musickeyboard.js:2986 +#: js/widgets/phrasemaker.js:4913 +#: js/widgets/rhythmruler.js:2319 +#: js/widgets/rhythmruler.js:2326 +#: js/widgets/rhythmruler.js:2511 +#: js/widgets/rhythmruler.js:2518 +msgid "action" +msgstr "פעולה" + +#: js/rubrics.js:531 #: js/turtledefs.js:136 #: js/turtledefs.js:238 msgid "sensors" msgstr "חיישנים" -#: js/rubrics.js:531 +#: js/rubrics.js:532 #: js/turtledefs.js:135 #: js/turtledefs.js:237 -#: js/MediaBlocks.js:930 +#: js/blocks/MediaBlocks.js:930 msgid "media" msgstr "מדיה" -#: js/rubrics.js:532 +#: js/rubrics.js:533 msgid "mice" msgstr "עכברים" -#: js/macros.js:711 -#: js/musicutils.js:783 -#: js/synthutils.js:181 -#.TRANS: animal sound effect -msgid "duck" -msgstr "ברווז" - -#: js/toolbar.js:46 -#: js/toolbar.js:107 +#: js/toolbar.js:48 +#: js/toolbar.js:109 msgid "About Music Blocks" msgstr "על Music Blocks" -#: js/toolbar.js:47 -#: js/toolbar.js:108 -#: js/toolbar.js:172 -#: js/toolbar.js:228 +#: js/toolbar.js:49 +#: js/toolbar.js:110 +#: js/toolbar.js:175 +#: js/toolbar.js:231 #: js/turtledefs.js:445 #: js/turtledefs.js:482 -#: js/activity.js:2281 -#: js/activity.js:2289 -#: js/activity.js:2520 -#: js/modewidget.js:77 -#: js/pitchstaircase.js:121 -#: js/phrasemaker.js:302 -#: js/phrasemaker.js:312 -#: js/phrasemaker.js:314 -#: js/phrasemaker.js:3901 -#: js/phrasemaker.js:4061 -#: js/phrasemaker.js:4066 -#: js/phrasemaker.js:4068 -#: js/phrasemaker.js:4183 -#: js/pitchdrummatrix.js:81 -#: js/pitchdrummatrix.js:574 -#: js/pitchdrummatrix.js:576 -#: js/pitchdrummatrix.js:628 -#: js/pitchdrummatrix.js:630 -#: js/pitchdrummatrix.js:645 -#: js/pitchdrummatrix.js:647 -#: js/pitchdrummatrix.js:674 -#: js/pitchdrummatrix.js:676 -#: js/temperament.js:477 -#: js/temperament.js:480 -#: js/temperament.js:540 -#: js/temperament.js:542 -#: js/temperament.js:1835 -#: js/temperament.js:1837 -#: js/temperament.js:1986 -#: js/temperament.js:1988 -#: js/musickeyboard.js:522 -#: js/musickeyboard.js:682 -#: js/musickeyboard.js:684 -#: js/musickeyboard.js:756 -#: js/musickeyboard.js:758 -#: js/rhythmruler.js:298 -#: js/rhythmruler.js:300 -#: js/rhythmruler.js:314 -#: js/rhythmruler.js:316 -#: js/sampler.js:96 -#: js/sampler.js:98 -#: js/sampler.js:229 -#: js/sampler.js:235 -#: js/sampler.js:237 -#: js/tempo.js:84 -#: js/tempo.js:86 -#: js/timbre.js:432 -#: js/timbre.js:434 -#: js/timbre.js:465 -#: js/timbre.js:467 -#: js/timbre.js:746 -#: js/meterwidget.js:80 -#: js/arpeggio.js:90 -#: js/arpeggio.js:547 -#: js/arpeggio.js:549 -#: js/arpeggio.js:644 -#: js/arpeggio.js:646 +#: js/activity.js:2660 +#: js/activity.js:2671 +#: js/activity.js:2902 +#: js/widgets/modewidget.js:77 +#: js/widgets/meterwidget.js:185 +#: js/widgets/pitchdrummatrix.js:147 +#: js/widgets/pitchdrummatrix.js:687 +#: js/widgets/pitchdrummatrix.js:689 +#: js/widgets/pitchdrummatrix.js:741 +#: js/widgets/pitchdrummatrix.js:743 +#: js/widgets/pitchdrummatrix.js:758 +#: js/widgets/pitchdrummatrix.js:760 +#: js/widgets/pitchdrummatrix.js:789 +#: js/widgets/pitchdrummatrix.js:791 +#: js/widgets/pitchstaircase.js:121 +#: js/widgets/temperament.js:610 +#: js/widgets/temperament.js:613 +#: js/widgets/temperament.js:673 +#: js/widgets/temperament.js:675 +#: js/widgets/temperament.js:2017 +#: js/widgets/temperament.js:2019 +#: js/widgets/tempo.js:84 +#: js/widgets/tempo.js:86 +#: js/widgets/timbre.js:432 +#: js/widgets/timbre.js:434 +#: js/widgets/timbre.js:465 +#: js/widgets/timbre.js:467 +#: js/widgets/timbre.js:746 +#: js/widgets/aiwidget.js:647 +#: js/widgets/aiwidget.js:654 +#: js/widgets/aiwidget.js:656 +#: js/widgets/arpeggio.js:90 +#: js/widgets/arpeggio.js:547 +#: js/widgets/arpeggio.js:549 +#: js/widgets/arpeggio.js:644 +#: js/widgets/arpeggio.js:646 +#: js/widgets/musickeyboard.js:676 +#: js/widgets/musickeyboard.js:872 +#: js/widgets/musickeyboard.js:874 +#: js/widgets/musickeyboard.js:953 +#: js/widgets/musickeyboard.js:955 +#: js/widgets/phrasemaker.js:513 +#: js/widgets/phrasemaker.js:523 +#: js/widgets/phrasemaker.js:525 +#: js/widgets/phrasemaker.js:4304 +#: js/widgets/phrasemaker.js:4528 +#: js/widgets/phrasemaker.js:4533 +#: js/widgets/phrasemaker.js:4535 +#: js/widgets/phrasemaker.js:4650 +#: js/widgets/rhythmruler.js:637 +#: js/widgets/rhythmruler.js:639 +#: js/widgets/rhythmruler.js:653 +#: js/widgets/rhythmruler.js:655 +#: js/widgets/sampler.js:162 +#: js/widgets/sampler.js:164 +#: js/widgets/sampler.js:363 msgid "Play" msgstr "לְשַׂחֵק" -#: js/toolbar.js:48 -#: js/toolbar.js:109 -#: js/toolbar.js:173 -#: js/toolbar.js:229 +#: js/toolbar.js:50 +#: js/toolbar.js:111 +#: js/toolbar.js:176 +#: js/toolbar.js:232 #: js/turtledefs.js:451 #: js/turtledefs.js:488 -#: js/activity.js:2297 -#: js/modewidget.js:99 -#: js/modewidget.js:101 -#: js/phrasemaker.js:323 -#: js/phrasemaker.js:325 -#: js/pitchdrummatrix.js:561 -#: js/pitchdrummatrix.js:563 -#: js/temperament.js:1820 -#: js/temperament.js:1822 -#: js/meterwidget.js:101 -#: js/meterwidget.js:103 -#: js/arpeggio.js:534 -#: js/arpeggio.js:536 +#: js/activity.js:2679 +#: js/widgets/modewidget.js:99 +#: js/widgets/modewidget.js:101 +#: js/widgets/meterwidget.js:206 +#: js/widgets/meterwidget.js:208 +#: js/widgets/pitchdrummatrix.js:674 +#: js/widgets/pitchdrummatrix.js:676 +#: js/widgets/temperament.js:2002 +#: js/widgets/temperament.js:2004 +#: js/widgets/arpeggio.js:534 +#: js/widgets/arpeggio.js:536 +#: js/widgets/phrasemaker.js:534 +#: js/widgets/phrasemaker.js:536 msgid "Stop" msgstr "עצור" -#: js/toolbar.js:49 -#: js/toolbar.js:110 -#: js/toolbar.js:174 -#: js/toolbar.js:230 +#: js/toolbar.js:51 +#: js/toolbar.js:112 +#: js/toolbar.js:177 +#: js/toolbar.js:233 #: js/turtledefs.js:498 msgid "Record" msgstr "תקליט" -#: js/toolbar.js:50 -#: js/toolbar.js:51 +#: js/toolbar.js:52 +#: js/toolbar.js:53 msgid "Full screen" msgstr "מסך מלא" -#: js/toolbar.js:52 -#: js/toolbar.js:112 -#: js/toolbar.js:177 -#: js/toolbar.js:232 +#: js/toolbar.js:54 +#: js/toolbar.js:115 +#: js/toolbar.js:180 +#: js/toolbar.js:236 #: js/turtledefs.js:504 msgid "Toggle Fullscreen" msgstr "החלף מסך מלא" -#: js/toolbar.js:53 -#: js/toolbar.js:113 -#: js/toolbar.js:178 -#: js/toolbar.js:233 +#: js/toolbar.js:55 +#: js/toolbar.js:116 +#: js/toolbar.js:181 +#: js/toolbar.js:237 #: js/turtledefs.js:510 -#: js/StringHelper.js:33 +#: planet/js/StringHelper.js:33 msgid "New project" msgstr "פרוייקט חדש" -#: js/toolbar.js:54 -#: js/toolbar.js:114 -#: js/toolbar.js:179 -#: js/toolbar.js:234 +#: js/toolbar.js:56 +#: js/toolbar.js:117 +#: js/toolbar.js:182 +#: js/toolbar.js:238 #: js/turtledefs.js:516 msgid "Load project from file" msgstr "העלאת פרויקטים מקובץ" -#: js/toolbar.js:55 -#: js/toolbar.js:115 -#: js/toolbar.js:116 -#: js/toolbar.js:180 -#: js/toolbar.js:235 +#: js/toolbar.js:57 +#: js/toolbar.js:118 +#: js/toolbar.js:119 +#: js/toolbar.js:183 +#: js/toolbar.js:239 #: js/turtledefs.js:541 #: js/turtledefs.js:550 #: js/turtledefs.js:571 msgid "Save project" msgstr "שמור פרויקט" -#: js/toolbar.js:56 -#: js/toolbar.js:75 +#: js/toolbar.js:58 #: js/toolbar.js:77 -#: js/toolbar.js:135 -#: js/toolbar.js:144 -#: js/toolbar.js:146 -#: js/toolbar.js:181 -#: js/toolbar.js:199 -#: js/toolbar.js:201 -#: js/toolbar.js:236 -#: js/toolbar.js:254 -#: js/toolbar.js:256 +#: js/toolbar.js:79 +#: js/toolbar.js:138 +#: js/toolbar.js:147 +#: js/toolbar.js:149 +#: js/toolbar.js:184 +#: js/toolbar.js:202 +#: js/toolbar.js:204 +#: js/toolbar.js:240 +#: js/toolbar.js:258 +#: js/toolbar.js:260 msgid "Save project as HTML" msgstr "שמור את הפרויקט כ-HTML" -#: js/toolbar.js:57 -#: js/toolbar.js:117 -#: js/toolbar.js:182 -#: js/toolbar.js:237 +#: js/toolbar.js:59 +#: js/toolbar.js:120 +#: js/toolbar.js:185 +#: js/toolbar.js:241 msgid "Find and share projects" msgstr "למצוא ולשתף פרויקטים" -#: js/toolbar.js:58 -#: js/toolbar.js:118 -#: js/toolbar.js:183 -#: js/toolbar.js:238 +#: js/toolbar.js:60 +#: js/toolbar.js:121 +#: js/toolbar.js:186 +#: js/toolbar.js:242 msgid "Offline. Sharing is unavailable" msgstr "לא מקוון. השיתוף אינו זמין." -#: js/toolbar.js:59 -#: js/toolbar.js:119 -#: js/toolbar.js:184 -#: js/toolbar.js:239 -msgid "Auxiliary menu" -msgstr "תפריט עזר" - #: js/toolbar.js:61 -#: js/toolbar.js:121 -#: js/toolbar.js:186 -#: js/toolbar.js:241 +#: js/toolbar.js:122 +#: js/toolbar.js:187 +#: js/toolbar.js:243 +msgid "Auxiliary menu" +msgstr "תפריט עזר" + +#: js/toolbar.js:62 +#: js/toolbar.js:123 +#: js/toolbar.js:188 +#: js/toolbar.js:244 +#: js/turtledefs.js:752 +#: js/piemenus.js:3423 +msgid "Help" +msgstr "עזרה" + +#: js/toolbar.js:63 +#: js/toolbar.js:124 +#: js/toolbar.js:189 +#: js/toolbar.js:245 msgid "Run slowly" msgstr "" -#: js/toolbar.js:62 -#: js/toolbar.js:122 -#: js/toolbar.js:187 -#: js/toolbar.js:242 +#: js/toolbar.js:64 +#: js/toolbar.js:125 +#: js/toolbar.js:190 +#: js/toolbar.js:246 #: js/turtledefs.js:682 msgid "Run step by step" msgstr "הרצה צעד אחרי צעד" -#: js/toolbar.js:63 -#: js/toolbar.js:123 -#: js/toolbar.js:188 -#: js/toolbar.js:243 +#: js/toolbar.js:65 +#: js/toolbar.js:126 +#: js/toolbar.js:191 +#: js/toolbar.js:247 #: js/turtledefs.js:689 msgid "Display statistics" msgstr "הצג סטטיסטיקות" -#: js/toolbar.js:64 -#: js/toolbar.js:124 -#: js/toolbar.js:189 -#: js/toolbar.js:244 +#: js/toolbar.js:66 +#: js/toolbar.js:127 +#: js/toolbar.js:192 +#: js/toolbar.js:248 msgid "Load plugin" msgstr "טען תוסף" -#: js/toolbar.js:65 -#: js/toolbar.js:125 -#: js/toolbar.js:190 -#: js/toolbar.js:245 +#: js/toolbar.js:67 +#: js/toolbar.js:128 +#: js/toolbar.js:193 +#: js/toolbar.js:249 #: js/turtledefs.js:696 msgid "Delete plugin" msgstr "למחוק תוסף" -#: js/toolbar.js:66 -#: js/toolbar.js:126 -#: js/toolbar.js:191 -#: js/toolbar.js:246 +#: js/toolbar.js:68 +#: js/toolbar.js:129 +#: js/toolbar.js:194 +#: js/toolbar.js:250 msgid "Enable horizontal scrolling" msgstr "אפשר גלילה אופקית" -#: js/toolbar.js:67 -#: js/toolbar.js:127 -#: js/toolbar.js:192 -#: js/toolbar.js:247 +#: js/toolbar.js:69 +#: js/toolbar.js:130 +#: js/toolbar.js:195 +#: js/toolbar.js:251 msgid "Disable horizontal scrolling" msgstr "השבת גלילה אופקית" -#: js/toolbar.js:68 -#: js/toolbar.js:128 -#: js/toolbar.js:193 -#: js/toolbar.js:248 -#: js/LocalCard.js:54 -#: js/StringHelper.js:71 +#: js/toolbar.js:70 +#: js/toolbar.js:131 +#: js/toolbar.js:196 +#: js/toolbar.js:252 +#: planet/js/LocalCard.js:54 +#: planet/js/StringHelper.js:71 msgid "Merge with current project" msgstr "להתמזג עם הפרויקט הנוכחי" -#: js/toolbar.js:69 -#: js/toolbar.js:129 +#: js/toolbar.js:71 +#: js/toolbar.js:132 msgid "Set Pitch Preview" msgstr "הגדר תצוגה מקדימה של גובה הצליל" -#: js/toolbar.js:70 -#: js/toolbar.js:130 -#: js/toolbar.js:194 -#: js/toolbar.js:249 -msgid "Toggle JavaScript Editor" -msgstr "החלף את עורך JavaScript" +#: js/toolbar.js:72 +#: js/toolbar.js:133 +#: js/toolbar.js:197 +#: js/toolbar.js:253 +msgid "JavaScript Editor" +msgstr "" -#: js/toolbar.js:71 -#: js/toolbar.js:131 -#: js/toolbar.js:195 -#: js/toolbar.js:250 +#: js/toolbar.js:73 +#: js/toolbar.js:134 +#: js/toolbar.js:198 +#: js/toolbar.js:254 #: js/turtledefs.js:724 msgid "Restore" msgstr "לשחזר" -#: js/toolbar.js:72 -#: js/toolbar.js:132 -#: js/toolbar.js:196 -#: js/toolbar.js:251 +#: js/toolbar.js:74 +#: js/toolbar.js:135 +#: js/toolbar.js:199 +#: js/toolbar.js:255 msgid "Switch to beginner mode" msgstr "לעבור למצב מתחיל" -#: js/toolbar.js:73 -#: js/toolbar.js:133 -#: js/toolbar.js:197 -#: js/toolbar.js:252 +#: js/toolbar.js:75 +#: js/toolbar.js:136 +#: js/toolbar.js:200 +#: js/toolbar.js:256 msgid "Switch to advanced mode" msgstr "עבור למצב מתקדם" -#: js/toolbar.js:74 -#: js/toolbar.js:134 -#: js/toolbar.js:143 -#: js/toolbar.js:198 -#: js/toolbar.js:253 +#: js/toolbar.js:76 +#: js/toolbar.js:137 +#: js/toolbar.js:146 +#: js/toolbar.js:201 +#: js/toolbar.js:257 #: js/turtledefs.js:738 msgid "Select language" msgstr "בחר שפה" -#: js/toolbar.js:76 -#: js/toolbar.js:79 -#: js/toolbar.js:137 +#: js/toolbar.js:78 +#: js/toolbar.js:81 +#: js/toolbar.js:140 #: js/turtledefs.js:579 msgid "Save mouse artwork as PNG" msgstr "שמור גרפיקה כ-PNG" -#: js/toolbar.js:78 -#: js/toolbar.js:136 +#: js/toolbar.js:80 +#: js/toolbar.js:139 #: js/turtledefs.js:575 msgid "Save mouse artwork as SVG" msgstr "שמור גרפיקה כ-SVG" -#: js/toolbar.js:80 -#: js/toolbar.js:138 +#: js/toolbar.js:82 +#: js/toolbar.js:141 #: js/turtledefs.js:583 msgid "Save music as WAV" msgstr "לשמור מוזיקה כ-WAV" -#: js/toolbar.js:81 -#: js/toolbar.js:139 +#: js/toolbar.js:83 +#: js/toolbar.js:142 #: js/turtledefs.js:587 msgid "Save sheet music as ABC" msgstr "לשמור מוזיקה כ-ABC" -#: js/toolbar.js:82 -#: js/toolbar.js:140 +#: js/toolbar.js:84 +#: js/toolbar.js:143 #: js/turtledefs.js:591 msgid "Save sheet music as Lilypond" msgstr "לשמור מוזיקה כ-Lilypond" -#: js/toolbar.js:83 +#: js/toolbar.js:85 msgid "Save sheet music as MusicXML" msgstr "לשמור מוזיקה כ-MusicXML" -#: js/toolbar.js:84 -#: js/toolbar.js:141 -#: js/toolbar.js:149 -#: js/toolbar.js:204 -#: js/toolbar.js:259 +#: js/toolbar.js:86 +#: js/toolbar.js:144 +#: js/toolbar.js:152 +#: js/toolbar.js:207 +#: js/toolbar.js:263 #: js/turtledefs.js:562 #: js/turtledefs.js:595 msgid "Save block artwork as SVG" msgstr "שמור בלוקים כ-SVG" -#: js/toolbar.js:85 -#: js/toolbar.js:142 -#: js/toolbar.js:150 -#: js/toolbar.js:205 -#: js/toolbar.js:260 +#: js/toolbar.js:87 +#: js/toolbar.js:145 +#: js/toolbar.js:153 +#: js/toolbar.js:208 +#: js/toolbar.js:264 +#: js/turtles.js:911 msgid "Confirm" msgstr "לְאַשֵׁר" -#: js/toolbar.js:86 -#: js/toolbar.js:151 -#: js/toolbar.js:206 -#: js/toolbar.js:261 -msgid "English (United States)" -msgstr "" - -#: js/toolbar.js:87 -#: js/toolbar.js:152 -#: js/toolbar.js:207 -#: js/toolbar.js:262 -msgid "English (United Kingdom)" -msgstr "" - #: js/toolbar.js:88 -#: js/toolbar.js:153 -#: js/toolbar.js:208 -#: js/toolbar.js:263 -msgid "日本語" +#: js/toolbar.js:154 +#: js/toolbar.js:209 +#: js/toolbar.js:265 +msgid "English (United States)" msgstr "" #: js/toolbar.js:89 -msgid "한국어" -msgstr "" - -#: js/toolbar.js:90 #: js/toolbar.js:155 #: js/toolbar.js:210 -#: js/toolbar.js:265 -msgid "español" +#: js/toolbar.js:266 +msgid "English (United Kingdom)" msgstr "" -#: js/toolbar.js:91 +#: js/toolbar.js:90 #: js/toolbar.js:156 #: js/toolbar.js:211 -#: js/toolbar.js:266 -msgid "português" +#: js/toolbar.js:267 +msgid "日本語" msgstr "" -#: js/toolbar.js:92 -#: js/toolbar.js:157 -#: js/toolbar.js:212 -#: js/toolbar.js:267 -msgid "にほんご" +#: js/toolbar.js:91 +msgid "한국어" msgstr "" -#: js/toolbar.js:93 +#: js/toolbar.js:92 #: js/toolbar.js:158 #: js/toolbar.js:213 -#: js/toolbar.js:268 -msgid "中文" +#: js/toolbar.js:269 +msgid "español" msgstr "" -#: js/toolbar.js:94 +#: js/toolbar.js:93 #: js/toolbar.js:159 #: js/toolbar.js:214 -#: js/toolbar.js:269 -msgid "ภาษาไทย" +#: js/toolbar.js:270 +msgid "português" msgstr "" -#: js/toolbar.js:95 +#: js/toolbar.js:94 #: js/toolbar.js:160 #: js/toolbar.js:215 -#: js/toolbar.js:270 -msgid "aymara" +#: js/toolbar.js:271 +msgid "にほんご" msgstr "" -#: js/toolbar.js:96 +#: js/toolbar.js:95 #: js/toolbar.js:161 #: js/toolbar.js:216 -#: js/toolbar.js:271 -msgid "quechua" +#: js/toolbar.js:272 +msgid "中文" msgstr "" -#: js/toolbar.js:97 +#: js/toolbar.js:96 #: js/toolbar.js:162 #: js/toolbar.js:217 -#: js/toolbar.js:272 -msgid "guarani" +#: js/toolbar.js:273 +msgid "ภาษาไทย" msgstr "" -#: js/toolbar.js:98 +#: js/toolbar.js:97 #: js/toolbar.js:163 #: js/toolbar.js:218 -#: js/toolbar.js:273 -msgid "हिंदी" +#: js/toolbar.js:274 +msgid "aymara" msgstr "" -#: js/toolbar.js:99 -#: js/toolbar.js:165 +#: js/toolbar.js:98 +#: js/toolbar.js:164 #: js/toolbar.js:219 #: js/toolbar.js:275 -msgid "igbo" +msgid "quechua" msgstr "" -#: js/toolbar.js:100 -#: js/toolbar.js:166 -#: js/toolbar.js:220 +#: js/toolbar.js:99 +#: js/toolbar.js:165 +#: js/toolbar.js:220 #: js/toolbar.js:276 -msgid "عربى" +msgid "guarani" msgstr "" -#: js/toolbar.js:101 -#: js/toolbar.js:164 +#: js/toolbar.js:100 +#: js/toolbar.js:166 #: js/toolbar.js:221 -#: js/toolbar.js:274 -msgid "తెలుగు" +#: js/toolbar.js:277 +msgid "हिंदी" +msgstr "" + +#: js/toolbar.js:101 +#: js/toolbar.js:168 +#: js/toolbar.js:222 +#: js/toolbar.js:279 +msgid "igbo" msgstr "" #: js/toolbar.js:102 +#: js/toolbar.js:169 +#: js/toolbar.js:223 +#: js/toolbar.js:280 +msgid "عربى" +msgstr "" + +#: js/toolbar.js:103 #: js/toolbar.js:167 -#: js/toolbar.js:222 -#: js/toolbar.js:277 +#: js/toolbar.js:224 +#: js/toolbar.js:278 +msgid "తెలుగు" +msgstr "" + +#: js/toolbar.js:104 +#: js/toolbar.js:170 +#: js/toolbar.js:225 +#: js/toolbar.js:281 msgid "עִברִית" msgstr "" -#: js/toolbar.js:111 -#: js/toolbar.js:175 -#: js/toolbar.js:176 -#: js/toolbar.js:231 +#: js/toolbar.js:113 +#: js/toolbar.js:114 +#: js/toolbar.js:178 +#: js/toolbar.js:179 +#: js/toolbar.js:234 +#: js/toolbar.js:235 msgid "Full Screen" msgstr "" -#: js/toolbar.js:145 #: js/toolbar.js:148 -#: js/toolbar.js:200 +#: js/toolbar.js:151 #: js/toolbar.js:203 -#: js/toolbar.js:255 -#: js/toolbar.js:258 +#: js/toolbar.js:206 +#: js/toolbar.js:259 +#: js/toolbar.js:262 #: js/turtledefs.js:558 msgid "Save turtle artwork as PNG" msgstr "שמור גרפיקה כ-PNG" -#: js/toolbar.js:147 -#: js/toolbar.js:202 -#: js/toolbar.js:257 +#: js/toolbar.js:150 +#: js/toolbar.js:205 +#: js/toolbar.js:261 #: js/turtledefs.js:554 msgid "Save turtle artwork as SVG" msgstr "שמור גרפיקה כ-SVG" -#: js/toolbar.js:154 -#: js/toolbar.js:209 -#: js/toolbar.js:264 +#: js/toolbar.js:157 +#: js/toolbar.js:212 +#: js/toolbar.js:268 msgid "한국인" msgstr "" -#: js/toolbar.js:171 -#: js/toolbar.js:227 +#: js/toolbar.js:174 +#: js/toolbar.js:230 msgid "About Turtle Blocks" msgstr "על Turtle Blocks" -#: js/toolbar.js:429 -#: js/toolbar.js:440 +#: js/toolbar.js:446 +#: js/toolbar.js:457 +#: js/toolbar.js:497 msgid "Turtle Wrap Off" msgstr "" -#: js/toolbar.js:442 +#: js/toolbar.js:466 +#: js/toolbar.js:506 msgid "Turtle Wrap On" msgstr "" -#: js/block.js:1470 +#: js/turtle-painter.js:1192 +#: js/turtle-painter.js:1193 +#: js/turtles.js:118 +#: js/block-verbose.js:1623 +#: js/block.js:1587 +#: js/lilypond.js:749 +#: js/lilypond.js:913 +#: js/lilypond.js:951 +#: js/logo.js:1184 +#: js/blocks/ActionBlocks.js:1223 +#: js/blocks/ProgramBlocks.js:1267 +msgid "start" +msgstr "התחל" + +#: js/turtledefs.js:40 +#.TRANS: put the URL to the guide here, e.g., https://github.com/sugarlabs/turtleblocksjs/tree/master/guide/README.md +msgid "guide url" +msgstr "כתובת אתר" + +#: js/turtledefs.js:85 +#: js/turtledefs.js:437 +msgid "Turtle Blocks is a Logo-inspired turtle that draws colorful pictures with snap-together visual-programming blocks." +msgstr "Turtle Blocks הוא צב בהשראת לוגו המצייר תמונות צבעוניות עם בלוקי תכנות חזותיים המוצמדים זה לזה." + +#: js/turtledefs.js:118 +#: js/turtledefs.js:220 +msgid "search" +msgstr "לחפש" + +#: js/turtledefs.js:120 +#: js/turtledefs.js:222 +#: js/blocks/MeterBlocks.js:1343 +#: js/blocks/WidgetBlocks.js:522 +#.TRANS: musical meter (time signature), e.g., 4:4 +msgid "meter" +msgstr "קֶצֶב" + +#: js/turtledefs.js:122 +#: js/turtledefs.js:224 +msgid "intervals" +msgstr "מרווחים" + +#: js/turtledefs.js:124 +#: js/turtledefs.js:226 +msgid "ornament" +msgstr "לְפַאֵר" + +#: js/turtledefs.js:125 +#: js/turtledefs.js:227 +#: js/blocks/VolumeBlocks.js:362 +#: js/blocks/VolumeBlocks.js:502 +#: js/blocks/VolumeBlocks.js:545 +msgid "volume" +msgstr "עָצמָה" + +#: js/turtledefs.js:126 +#: js/turtledefs.js:228 +#: js/block-verbose.js:1700 +#: js/block-verbose.js:2626 +#: js/block.js:1664 +#: js/block.js:2554 +#: js/lilypond.js:732 +#: js/lilypond.js:897 +#: js/lilypond.js:941 +#: js/palette.js:577 +#: js/blocks/RhythmBlocks.js:766 +#: js/blocks/DrumBlocks.js:477 +#: js/blocks/VolumeBlocks.js:502 +#: js/widgets/phrasemaker.js:1038 +msgid "drum" +msgstr "תוֹף" + +#: js/turtledefs.js:129 +#: js/turtledefs.js:231 +msgid "boxes" +msgstr "קופסאות" + +#: js/turtledefs.js:130 +#: js/turtledefs.js:232 +msgid "widgets" +msgstr "ווידג'טים" + +#: js/turtledefs.js:131 +#: js/turtledefs.js:233 +#: js/widgets/phrasemaker.js:1039 +msgid "graphics" +msgstr "גרָפִיקָה" + +#: js/turtledefs.js:134 +#: js/turtledefs.js:236 +msgid "boolean" +msgstr "בוליאני" + +#: js/turtledefs.js:137 +#: js/turtledefs.js:239 +#: js/blocks/HeapBlocks.js:59 +#: js/widgets/status.js:147 +msgid "heap" +msgstr "ערימה" + +#: js/turtledefs.js:138 +#: js/turtledefs.js:240 +#: js/blocks/DictBlocks.js:142 +#: js/blocks/ProgramBlocks.js:495 +msgid "dictionary" +msgstr "מילון" + +#: js/turtledefs.js:139 +#: js/turtledefs.js:241 +msgid "ensemble" +msgstr "אנסמבל" + +#: js/turtledefs.js:140 +#: js/turtledefs.js:242 +msgid "extras" +msgstr "אקסטרה" + +#: js/turtledefs.js:142 +#: js/turtledefs.js:244 +#.TRANS: program as in computer program +#.TRANS: program as in computer program +msgid "program" +msgstr "תכנית" + +#: js/turtledefs.js:143 +#: js/turtledefs.js:245 +msgid "my blocks" +msgstr "הבלוקים שלי" + +#: js/turtledefs.js:185 +#: js/turtledefs.js:281 +msgid "artwork" +msgstr "עבודת אומנות" + +#: js/turtledefs.js:185 +#: js/turtledefs.js:281 +msgid "logic" +msgstr "לוגיקה" + +#: js/turtledefs.js:185 +#: js/turtledefs.js:281 +msgid "music" +msgstr "מוּסִיקָה" + +#: js/turtledefs.js:187 +#: js/turtledefs.js:463 +msgid "Music Blocks is a collection of tools for exploring fundamental musical concepts in a fun way." +msgstr "Music Blocks הוא אוסף של כלים לחקר מושגים מוזיקליים בסיסיים בצורה מהנה." + +#: js/turtledefs.js:436 +msgid "Welcome to Turtle Blocks" +msgstr "ברוך הבא" + +#: js/turtledefs.js:438 +#: js/turtledefs.js:465 +#: js/turtledefs.js:774 +#: js/turtledefs.js:805 +msgid "The current version is" +msgstr "הגרסה הנוכחית" + +#: js/turtledefs.js:446 +#: js/turtledefs.js:483 +msgid "Click the run button to run the project in fast mode." +msgstr "לחץ על כפתור ההפעלה כדי להפעיל את הפרויקט במצב מהיר." + +#: js/turtledefs.js:452 +msgid "Stop the turtle." +msgstr "לעצור את הצב" + +#: js/turtledefs.js:454 +#: js/turtledefs.js:491 +msgid "You can also type Alt-S to stop." +msgstr "אתה יכול גם להקליד Alt-S כדי לעצור." + +#: js/turtledefs.js:462 +#: js/widgets/help.js:333 +msgid "Welcome to Music Blocks" +msgstr "ברוך הבא" + +#: js/turtledefs.js:472 +#: js/widgets/help.js:334 +msgid "Meet Mr. Mouse!" +msgstr "הכירו את מר מאוס" + +#: js/turtledefs.js:473 +msgid "Mr Mouse is our Music Blocks conductor." +msgstr "מר מאוס הוא המנצח שלנו ב-Music Blocks." + +#: js/turtledefs.js:475 +msgid "Mr Mouse encourages you to explore Music Blocks." +msgstr "מר עכבר מעודד אותך לחקור את בלוקי המוזיקה." + +#: js/turtledefs.js:477 +msgid "Let us start our tour!" +msgstr "בואו נתחיל את הסיור שלנו" + +#: js/turtledefs.js:489 +msgid "Stop the music (and the mice)." +msgstr "עצור את המוזיקה (ואת העכברים)." + +#: js/turtledefs.js:499 +msgid "Record your project as video." +msgstr "הקלט את הפרויקט שלך כווידאו." + +#: js/turtledefs.js:505 +msgid "Toggle Fullscreen mode." +msgstr "החלף מצב מסך מלא" + +#: js/turtledefs.js:511 +msgid "Initialize a new project." +msgstr "להתחיל פרויקט חדש" + +#: js/turtledefs.js:517 +msgid "You can also load projects from the file system." +msgstr "ניתן להעלות פרויקטים מתוך מערכת הקבצים" + +#: js/turtledefs.js:522 +#: planet/js/StringHelper.js:46 +msgid "Delete" +msgstr "מחיקה" + +#: js/turtledefs.js:523 +msgid "To delete a block, just right-click on it, then you will be able to see the delete option" +msgstr "כדי למחוק בלוק, פשוט לחץ עליו באמצעות לחצן העכבר הימני ואז תוכל לראות את אפשרות המחיקה" + +#: js/turtledefs.js:528 +#: js/activity.js:2649 +#: planet/js/LocalCard.js:31 +msgid "Copy" +msgstr "העתק" + +#: js/turtledefs.js:529 +msgid "To copy a block, just right-click on it, then you will be able to see the copy option" +msgstr "כדי להעתיק בלוק, פשוט לחץ עליו באמצעות לחצן העכבר הימני ואז תוכל לראות את אפשרות ההעתקה" + +#: js/turtledefs.js:534 +#: js/piemenus.js:3411 +msgid "Extract" +msgstr "לְהַעְתִיק" + +#: js/turtledefs.js:535 +msgid "To extract a block, just right-click on it, then you will be able to see the extract option" +msgstr "כדי לחלץ בלוק, פשוט לחץ עליו באמצעות לחצן העכבר הימני, ואז תוכל לראות את אפשרות החילוץ" + +#: js/turtledefs.js:542 +#: js/turtledefs.js:552 +#: js/turtledefs.js:573 +msgid "Save your project to a file." +msgstr "לשמור את הפרויקט שלך לקובץ" + +#: js/turtledefs.js:549 +#: js/turtledefs.js:570 +msgid "save" +msgstr "שמור" + +#: js/turtledefs.js:556 +#: js/turtledefs.js:577 +msgid "Save graphics from your project to as SVG." +msgstr "שמור גרפיקה מהפרויקט שלך כ-SVG." + +#: js/turtledefs.js:560 +#: js/turtledefs.js:581 +msgid "Save graphics from your project as PNG." +msgstr "שמור גרפיקה מהפרויקט שלך כ-PNG." + +#: js/turtledefs.js:564 +#: js/turtledefs.js:597 +msgid "Save block artwork as an SVG file." +msgstr "שמור גרפיקת בלוק כקובץ SVG." + +#: js/turtledefs.js:585 +msgid "Save audio from your project as WAV." +msgstr "שמור אודיו מהפרויקט שלך כ-WAV." + +#: js/turtledefs.js:589 +msgid "Save your project to as an ABC file." +msgstr "שמור את הפרויקט שלך כקובץ ABC." + +#: js/turtledefs.js:593 +msgid "Save your project to as a Lilypond file." +msgstr "שמור את הפרויקט שלך כקובץ Lilypond." + +#: js/turtledefs.js:604 +msgid "Load samples from server" +msgstr "העלאת דוגמאות מן השרת" + +#: js/turtledefs.js:605 +msgid "This button opens a viewer for loading example projects." +msgstr "כפתור זה פותח מציג להעלאת פרויקטים" + +#: js/turtledefs.js:611 +msgid "Palette buttons" +msgstr "סרגל כלים" + +#: js/turtledefs.js:612 +msgid "This toolbar contains the palette buttons including Rhythm Pitch Tone Action and more." +msgstr "סרגל כלים זה מכיל את כפתורי הצבעים הכוללים קצב, גובה גובה, טון, פעולה ועוד." + +#: js/turtledefs.js:614 +msgid "Click to show the palettes of blocks and drag blocks from the palettes onto the canvas to use them." +msgstr "לחץ כדי להציג את פלטות הבלוקים וגרור בלוקים מהלוחות אל הקנבס כדי להשתמש בהם." + +#: js/turtledefs.js:620 +msgid "Cartesian/Polar" +msgstr "קרטזיאני/קוטבי" + +#: js/turtledefs.js:621 +msgid "Show or hide a coordinate grid." +msgstr "הצג או הסתר רשת קואורדינטות." + +#: js/turtledefs.js:626 +#: js/turtles.js:902 +msgid "Clean" +msgstr "נקה" + +#: js/turtledefs.js:627 +msgid "Clear the screen and return the mice to their initial positions." +msgstr "נקה את המסך והחזר את העכברים למקומם ההתחלתי." + +#: js/turtledefs.js:632 +#: js/turtles.js:955 +msgid "Collapse" +msgstr "להתמוטט" + +#: js/turtledefs.js:633 +msgid "Collapse the graphics window." +msgstr "כווץ את חלון הגרפיקה." + +#: js/turtledefs.js:638 +#: js/activity.js:5684 +msgid "Home" +msgstr "בית" + +#: js/turtledefs.js:639 +msgid "Return all blocks to the center of the screen." +msgstr "החזר את כל הבלוקים למרכז המסך." + +#: js/turtledefs.js:644 +msgid "Show/hide blocks" +msgstr "הצג או הסתר את הבלוקים" + +#: js/turtledefs.js:645 +msgid "Hide or show the blocks and the palettes." +msgstr "הצג או הסתר את הבלוקים ואת הכלים" + +#: js/turtledefs.js:650 +msgid "Expand/collapse collapsable blocks" +msgstr "הרחב/כווץ בלוקים הניתנים לכיווץ" + +#: js/turtledefs.js:651 +msgid "Expand or collapse start and action stacks." +msgstr "הרחב או צמצם קבוצת בלוקים כמו קבוצת התחל או פעולה" + +#: js/turtledefs.js:658 +#: js/activity.js:5704 +msgid "Decrease block size" +msgstr "הקטן גודל בלוק" + +#: js/turtledefs.js:659 +msgid "Decrease the size of the blocks." +msgstr "הקטן את גודל הבלוקים" + +#: js/turtledefs.js:664 +#: js/activity.js:5710 +msgid "Increase block size" +msgstr "הגדל את גודל הבלוק" + +#: js/turtledefs.js:665 +msgid "Increase the size of the blocks." +msgstr "הגדל את גודל הבלוקים" + +#: js/turtledefs.js:670 +msgid "Expand/collapse option toolbar" +msgstr "הרחב/צמצם סרגל האפשרויות" + +#: js/turtledefs.js:671 +msgid "Click this button to expand or collapse the auxillary toolbar." +msgstr "לחצו על כפתור זה כדי להרחיב או לצמצם את סרגל כלי העזר" + +#: js/turtledefs.js:676 +msgid "Run slow" +msgstr "הרצה איטית" + +#: js/turtledefs.js:677 +msgid "Click to run the project in slow mode." +msgstr "לחצו כדי להריץ את הפרויקט במצב איטי" + +#: js/turtledefs.js:683 +msgid "Click to run the project step by step." +msgstr "לחצו כדי להריץ את הפרויקט צעד אחרי צעד" + +#: js/turtledefs.js:690 +msgid "Display statistics about your Music project." +msgstr "הצג סטטיסטיקות אודות פרויקט הצב שלך" + +#: js/turtledefs.js:697 +msgid "Delete a selected plugin." +msgstr "מחק תוסף שנבחר." + +#: js/turtledefs.js:704 +msgid "Enable scrolling" +msgstr "אפשר גלילה" + +#: js/turtledefs.js:705 +msgid "You can scroll the blocks on the canvas." +msgstr "אתה יכול לגלול את הבלוקים על הבד." + +#: js/turtledefs.js:714 +msgid "Wrap Turtle" +msgstr "לעטוף צב" + +#: js/turtledefs.js:715 +msgid "Turn Turtle wrapping On or Off." +msgstr "הפעל או כבה את העטיפה" + +#: js/turtledefs.js:725 +msgid "Restore blocks from the trash." +msgstr "שחזור בלוקים מסל המחזור" + +#: js/turtledefs.js:732 +msgid "Switch mode" +msgstr "להחליף מצב" + +#: js/turtledefs.js:733 +msgid "Switch between beginner and advance modes." +msgstr "מעבר בין מצבי מתחיל למצב מתקדם." + +#: js/turtledefs.js:739 +msgid "Select your language preference." +msgstr "בחר את העדפת השפה שלך." + +#: js/turtledefs.js:745 +msgid "Keyboard shortcuts" +msgstr "קיצורי דרך במקלדת" + +#: js/turtledefs.js:746 +msgid "You can type d to create a do block and r to create a re block etc." +msgstr "אתה יכול להקליד d כדי ליצור בלוק DO ו-r כדי ליצור בלוק RE וכו'." + +#: js/turtledefs.js:753 +msgid "Show these messages." +msgstr "הצג את הודעות אלה" + +#: js/turtledefs.js:759 +#: js/turtledefs.js:790 +#: js/widgets/help.js:335 +msgid "Guide" +msgstr "להנחות" + +#: js/turtledefs.js:760 +msgid "A detailed guide to Turtle Blocks is available." +msgstr "מדריך מפורט ל-Turtle Blocks זמין." + +#: js/turtledefs.js:764 +msgid "Turtle Blocks Guide" +msgstr "מדריך Turtle Blocks" + +#: js/turtledefs.js:767 +#: js/turtledefs.js:798 +#: js/widgets/help.js:336 +msgid "About" +msgstr "לגבי" + +#: js/turtledefs.js:768 +msgid "Turtle Blocks is an open source collection of tools for exploring musical concepts." +msgstr "Turtle Blocks הוא אוסף קוד פתוח של כלים לחקר מושגים מוזיקליים." + +#: js/turtledefs.js:770 +msgid "A full list of contributors can be found in the Turtle Blocks GitHub repository." +msgstr "רשימה מלאה של תורמים ניתן למצוא במאגר Turtle Blocks GitHub." + +#: js/turtledefs.js:772 +msgid "Turtle Blocks is licensed under the AGPL." +msgstr "Turtle Blocks מורשה תחת ה-AGPL." + +#: js/turtledefs.js:780 +msgid "Turtle Blocks GitHub repository" +msgstr "Turtle Blocks מאגר GitHub" + +#: js/turtledefs.js:783 +#: js/turtledefs.js:814 +#: js/widgets/help.js:337 +#: js/widgets/help.js:359 +msgid "Congratulations." +msgstr "איחולנו" + +#: js/turtledefs.js:784 +msgid "You have finished the tour. Please enjoy Turtle Blocks!" +msgstr "סיימת את הסיור. בבקשה תהנו מ-Turtle Blocks!" + +#: js/turtledefs.js:791 +msgid "A detailed guide to Music Blocks is available." +msgstr "מדריך מפורט ל-Music Blocks זמין." + +#: js/turtledefs.js:799 +msgid "Music Blocks is an open source collection of tools for exploring musical concepts." +msgstr "Music Blocks הוא אוסף קוד פתוח של כלים לחקר מושגים מוזיקליים." + +#: js/turtledefs.js:801 +msgid "A full list of contributors can be found in the Music Blocks GitHub repository." +msgstr "רשימה מלאה של תורמים ניתן למצוא במאגר Music Blocks GitHub." + +#: js/turtledefs.js:803 +msgid "Music Blocks is licensed under the AGPL." +msgstr "Music Blocks מורשה תחת ה-AGPL." + +#: js/turtledefs.js:811 +msgid "Music Blocks GitHub repository" +msgstr "Music Blocks מאגר GitHub" + +#: js/turtledefs.js:815 +msgid "You have finished the tour. Please enjoy Music Blocks!" +msgstr "סיימת את הסיור. בבקשה תהנו מ-Music Blocks!" + +#: js/turtles.js:882 +msgid "Grid" +msgstr "רֶשֶׁת" + +#: js/turtles.js:1024 +msgid "Expand" +msgstr "להתרחב" + +#: js/block-verbose.js:1616 +#: js/block-verbose.js:1735 +#: js/block.js:1580 +#: js/block.js:1699 +#: js/palette.js:605 +#: js/blocks/IntervalsBlocks.js:63 +#: js/blocks/WidgetBlocks.js:259 +msgid "temperament" +msgstr "הטמפרמנט" + +#: js/block-verbose.js:1630 +#: js/block.js:1594 msgid "matrix" msgstr "מַטרִיצָה" -#: js/block.js:1477 -#: js/WidgetBlocks.js:1226 +#: js/block-verbose.js:1637 +#: js/block.js:1601 +#: js/blocks/WidgetBlocks.js:1509 #: plugins/rodi.rtp:324 msgid "status" msgstr "מַצָב" -#: js/block.js:1484 +#: js/block-verbose.js:1644 +#: js/block.js:1608 msgid "drum mapper" msgstr "מפת תופים" -#: js/block.js:1491 +#: js/block-verbose.js:1651 +#: js/block.js:1615 msgid "ruler" msgstr "סַרְגֵל" -#: js/block.js:1498 -#: js/WidgetBlocks.js:327 +#: js/block-verbose.js:1658 +#: js/block.js:1622 +#: js/blocks/WidgetBlocks.js:397 #.TRANS: timbre is the character or quality of a musical sound msgid "timbre" msgstr "גָוֶן" -#: js/block.js:1505 +#: js/block-verbose.js:1665 +#: js/block.js:1629 msgid "stair" msgstr "מַדרֵגָה" -#: js/block.js:1512 -#: js/WidgetBlocks.js:577 +#: js/block-verbose.js:1672 +#: js/block.js:1636 +#: js/blocks/WidgetBlocks.js:707 #.TRANS: the speed at music is should be played. msgid "tempo" msgstr "טֶמפּוֹ" -#: js/block.js:1519 -#: js/block.js:1582 -#: js/IntervalsBlocks.js:1268 +#: js/block-verbose.js:1679 +#: js/block-verbose.js:1742 +#: js/block.js:1643 +#: js/block.js:1706 +#: js/blocks/IntervalsBlocks.js:1464 #.TRANS: mode, e.g., Major in C Major msgid "mode" msgstr "מצב מוזיקלי" -#: js/block.js:1526 +#: js/block-verbose.js:1686 +#: js/block.js:1650 msgid "slider" msgstr "המחוון" -#: js/block.js:1533 -#: js/SensorsBlocks.js:1001 +#: js/block-verbose.js:1693 +#: js/block.js:1657 +#: js/blocks/SensorsBlocks.js:1001 msgid "keyboard" msgstr "קלט מקלדת" -#: js/block.js:1547 -#: js/WidgetBlocks.js:957 -#: js/WidgetBlocks.js:988 +#: js/block-verbose.js:1707 +#: js/block.js:1671 +#: js/blocks/WidgetBlocks.js:1190 +#: js/blocks/WidgetBlocks.js:1228 #.TRANS: widget for subdividing a measure into distinct rhythmic elements msgid "rhythm maker" msgstr "יוצר קצב" -#: js/block.js:1554 -#: js/block.js:2182 -#: js/block.js:2236 -#: js/RhythmBlockPaletteBlocks.js:70 -#: js/RhythmBlockPaletteBlocks.js:251 -#: js/RhythmBlockPaletteBlocks.js:484 -#: js/RhythmBlockPaletteBlocks.js:553 -#: js/RhythmBlockPaletteBlocks.js:604 -#: js/RhythmBlockPaletteBlocks.js:874 -#: js/RhythmBlocks.js:33 -#: js/RhythmBlocks.js:356 -#: js/RhythmBlocks.js:766 -#: js/RhythmBlocks.js:806 -#: js/OrnamentBlocks.js:220 -#: js/OrnamentBlocks.js:312 -#: js/MeterBlocks.js:1367 -#: js/DictActions.js:85 -#: js/phrasemaker.js:731 -#: js/phrasemaker.js:2393 -#: js/phrasemaker.js:2436 -#: js/phrasemaker.js:2534 +#: js/block-verbose.js:1714 +#: js/block-verbose.js:2457 +#: js/block-verbose.js:2514 +#: js/block.js:1678 +#: js/block.js:2385 +#: js/block.js:2442 +#: js/blocks/MeterBlocks.js:1367 +#: js/blocks/OrnamentBlocks.js:220 +#: js/blocks/OrnamentBlocks.js:312 +#: js/blocks/RhythmBlocks.js:33 +#: js/blocks/RhythmBlocks.js:356 +#: js/blocks/RhythmBlocks.js:766 +#: js/blocks/RhythmBlocks.js:806 +#: js/blocks/RhythmBlockPaletteBlocks.js:70 +#: js/blocks/RhythmBlockPaletteBlocks.js:252 +#: js/blocks/RhythmBlockPaletteBlocks.js:485 +#: js/blocks/RhythmBlockPaletteBlocks.js:554 +#: js/blocks/RhythmBlockPaletteBlocks.js:605 +#: js/blocks/RhythmBlockPaletteBlocks.js:875 +#: js/turtleactions/DictActions.js:85 +#: js/widgets/phrasemaker.js:942 +#: js/widgets/phrasemaker.js:2656 +#: js/widgets/phrasemaker.js:2699 +#: js/widgets/phrasemaker.js:2810 #.TRANS: the value (e.g., 1/4 note) of the note being played. msgid "note value" msgstr "ערך תו מוזיקלי" -#: js/block.js:1561 -#: js/block.js:2110 -#: js/block.js:2133 -#: js/IntervalsBlocks.js:875 -#: js/OrnamentBlocks.js:312 +#: js/block-verbose.js:1721 +#: js/block-verbose.js:2382 +#: js/block-verbose.js:2405 +#: js/block.js:1685 +#: js/block.js:2310 +#: js/block.js:2333 +#: js/blocks/IntervalsBlocks.js:1071 +#: js/blocks/OrnamentBlocks.js:312 #.TRANS: calculate a relative step between notes based on semi-tones msgid "scalar interval" msgstr "מרווח סקלרי" -#: js/block.js:1568 -#: js/RhythmBlocks.js:148 +#: js/block-verbose.js:1728 +#: js/block.js:1692 +#: js/blocks/RhythmBlocks.js:148 msgid "milliseconds" msgstr "אלפיות השנייה" -#: js/block.js:2180 -#: js/block.js:2184 -#: js/block.js:2234 -#: js/block.js:2345 -#: js/ProgramBlocks.js:1273 -#: js/RhythmBlocks.js:712 -#: js/rhythmruler.js:834 -#: js/rhythmruler.js:961 +#: js/block-verbose.js:2455 +#: js/block-verbose.js:2459 +#: js/block-verbose.js:2512 +#: js/block-verbose.js:2628 +#: js/block.js:2383 +#: js/block.js:2387 +#: js/block.js:2440 +#: js/block.js:2556 +#: js/blocks/RhythmBlocks.js:712 +#: js/blocks/ProgramBlocks.js:1273 +#: js/widgets/rhythmruler.js:1183 +#: js/widgets/rhythmruler.js:1329 msgid "silence" msgstr "דְמָמָה" -#: js/block.js:2265 -#: js/block.js:3134 -#: js/block.js:3151 -#: js/activity.js:2336 -#: js/activity.js:2387 -#: js/musicutils.js:2932 -#: js/musicutils.js:4287 +#: js/block-verbose.js:2548 +#: js/block-verbose.js:3492 +#: js/block-verbose.js:3509 +#: js/activity.js:2718 +#: js/activity.js:2769 +#: js/block.js:2476 +#: js/block.js:3416 +#: js/block.js:3433 +#: js/utils/musicutils.js:3780 +#: js/utils/musicutils.js:5273 +#.TRANS: the note names must be separated by single spaces #.TRANS: the note names must be separated by single spaces #.TRANS: the note names must be separated by single spaces msgid "ti la sol fa mi re do" msgstr "" -#: js/block.js:2333 +#: js/block-verbose.js:2616 +#: js/block.js:2544 +#.TRANS: scalar step #.TRANS: scalar step msgid "down" msgstr "מטה" -#: js/block.js:2334 +#: js/block-verbose.js:2617 +#: js/block.js:2545 msgid "up" msgstr "מַעְלָה" -#: js/block.js:3477 -#: js/block.js:3490 -#: js/ExtrasBlocks.js:612 +#: js/block-verbose.js:3026 +#: js/block.js:2950 +msgid "Silence block cannot be removed." +msgstr "" + +#: js/block-verbose.js:3824 +#: js/block.js:3748 +#: js/blocks.js:2607 +#: js/blocks.js:3218 +#: js/palette.js:618 +#: js/blocks/BooleanBlocks.js:77 +#: js/blocks/BooleanBlocks.js:167 +#: js/blocks/BooleanBlocks.js:251 +#: js/blocks/BooleanBlocks.js:335 +#: js/blocks/BooleanBlocks.js:433 +#: js/blocks/BooleanBlocks.js:539 +#: js/blocks/BooleanBlocks.js:640 +#: js/blocks/BooleanBlocks.js:741 +#: js/blocks/BooleanBlocks.js:847 +#: js/blocks/BooleanBlocks.js:948 +#: js/blocks/BooleanBlocks.js:1033 +#: js/blocks/SensorsBlocks.js:910 +msgid "true" +msgstr "נָכוֹן" + +#: js/block-verbose.js:3824 +#: js/block.js:3748 +#: js/blocks.js:2609 +#: js/blocks.js:3220 +#: js/blocks/BooleanBlocks.js:79 +#: js/blocks/BooleanBlocks.js:169 +#: js/blocks/BooleanBlocks.js:253 +#: js/blocks/BooleanBlocks.js:337 +#: js/blocks/BooleanBlocks.js:435 +#: js/blocks/BooleanBlocks.js:541 +#: js/blocks/BooleanBlocks.js:642 +#: js/blocks/BooleanBlocks.js:743 +#: js/blocks/BooleanBlocks.js:849 +#: js/blocks/BooleanBlocks.js:950 +#: js/blocks/SensorsBlocks.js:912 +msgid "false" +msgstr "שֶׁקֶר" + +#: js/block-verbose.js:3835 +#: js/block-verbose.js:3848 +#: js/block.js:3759 +#: js/block.js:3772 +#: js/blocks/ExtrasBlocks.js:615 msgid "Cartesian" msgstr "קרטזיאני" -#: js/block.js:3478 -#: js/block.js:3491 -#: js/ExtrasBlocks.js:616 +#: js/block-verbose.js:3836 +#: js/block-verbose.js:3849 +#: js/block.js:3760 +#: js/block.js:3773 +#: js/blocks/ExtrasBlocks.js:619 msgid "polar" msgstr "קוֹטבִי" -#: js/block.js:3479 -#: js/block.js:3492 -#: js/ExtrasBlocks.js:620 +#: js/block-verbose.js:3837 +#: js/block-verbose.js:3850 +#: js/block.js:3761 +#: js/block.js:3774 +#: js/blocks/ExtrasBlocks.js:623 msgid "Cartesian+polar" msgstr "הקוטב והקרטזאי" -#: js/block.js:3480 -#: js/block.js:3499 -#: js/ExtrasBlocks.js:649 +#: js/block-verbose.js:3838 +#: js/block-verbose.js:3857 +#: js/block.js:3762 +#: js/block.js:3781 +#: js/blocks/ExtrasBlocks.js:652 msgid "none" msgstr "אף אחד" -#: js/block.js:3493 -#: js/ExtrasBlocks.js:625 +#: js/block-verbose.js:3851 +#: js/block.js:3775 +#: js/blocks/ExtrasBlocks.js:628 msgid "treble" msgstr "סוֹפּרָנוֹ" -#: js/block.js:3494 -#: js/ExtrasBlocks.js:629 +#: js/block-verbose.js:3852 +#: js/block.js:3776 +#: js/blocks/ExtrasBlocks.js:632 msgid "grand staff" msgstr "צוות גדול" -#: js/block.js:3495 -#: js/ExtrasBlocks.js:633 +#: js/block-verbose.js:3853 +#: js/block.js:3777 +#: js/blocks/ExtrasBlocks.js:636 msgid "mezzo-soprano" msgstr "מצו סופרן" -#: js/block.js:3496 -#: js/ExtrasBlocks.js:637 +#: js/block-verbose.js:3854 +#: js/block.js:3778 +#: js/blocks/ExtrasBlocks.js:640 msgid "alto" msgstr "אַלט" -#: js/block.js:3497 -#: js/ExtrasBlocks.js:641 +#: js/block-verbose.js:3855 +#: js/block.js:3779 +#: js/blocks/ExtrasBlocks.js:644 msgid "tenor" msgstr "טֶנוֹר" -#: js/block.js:3498 -#: js/ExtrasBlocks.js:645 -#: js/musicutils.js:736 -#: js/synthutils.js:64 +#: js/block-verbose.js:3856 +#: js/block.js:3780 +#: js/utils/musicutils.js:1115 +#: js/utils/synthutils.js:80 +#: js/blocks/ExtrasBlocks.js:648 #.TRANS: musical instrument msgid "bass" msgstr "בַּס" -#: js/block.js:4075 +#: js/block-verbose.js:3901 +#: js/block.js:3825 +#: js/blocks.js:2600 +#: js/blocks.js:3211 +msgid "on2" +msgstr "עַל" + +#: js/block-verbose.js:3903 +#: js/block.js:3827 +#: js/blocks.js:2602 +#: js/blocks.js:3213 +msgid "off" +msgstr "כבוי" + +#: js/block-verbose.js:4470 +#: js/block.js:4394 msgid "Not a number" msgstr "לא מספר" -#: js/block.js:4082 +#: js/block-verbose.js:4477 +#: js/block.js:4401 msgid "Octave value must be between 1 and 10." msgstr "ערך האוקטבה חייב להיות בין 1 ל-10." -#: js/block.js:4090 +#: js/block-verbose.js:4485 +#: js/block.js:4409 msgid "Numbers can have at most 10 digits." msgstr "מספרים יכולים להכיל 10 ספרות לכל היותר." -#: js/notation.js:353 -msgid "Lilypond cannot process pickup of " -msgstr "Lilypond לא יכול לעבד איסוף" +#: js/activity.js:390 +#: js/activity.js:395 +msgid "Search for blocks" +msgstr "חפש בלוקים" -#: js/turtledefs.js:40 -#.TRANS: put the URL to the guide here, e.g., https://github.com/sugarlabs/turtleblocksjs/tree/master/guide/README.md -msgid "guide url" -msgstr "כתובת אתר" +#: js/activity.js:1413 +msgid "Refresh your browser to change to advanced mode." +msgstr "רענן את הדפדפן כדי לעבור למצב מתקדם." -#: js/turtledefs.js:85 -#: js/turtledefs.js:437 -msgid "Turtle Blocks is a Logo-inspired turtle that draws colorful pictures with snap-together visual-programming blocks." -msgstr "Turtle Blocks הוא צב בהשראת לוגו המצייר תמונות צבעוניות עם בלוקי תכנות חזותיים המוצמדים זה לזה." +#: js/activity.js:1418 +msgid "Refresh your browser to change to beginner mode." +msgstr "רענן את הדפדפן שלך כדי לעבור למצב מתחיל." -#: js/turtledefs.js:118 -#: js/turtledefs.js:220 -msgid "search" -msgstr "לחפש" +#: js/activity.js:1477 +msgid "Catching mice" +msgstr "" -#: js/turtledefs.js:120 -#: js/turtledefs.js:222 -#: js/WidgetBlocks.js:437 -#: js/MeterBlocks.js:1343 -#.TRANS: musical meter (time signature), e.g., 4:4 -msgid "meter" -msgstr "קֶצֶב" +#: js/activity.js:1478 +msgid "Cleaning the instruments" +msgstr "" -#: js/turtledefs.js:122 -#: js/turtledefs.js:224 -msgid "intervals" -msgstr "מרווחים" +#: js/activity.js:1479 +msgid "Testing key pieces" +msgstr "" -#: js/turtledefs.js:124 -#: js/turtledefs.js:226 -msgid "ornament" -msgstr "לְפַאֵר" +#: js/activity.js:1480 +msgid "Sight-reading" +msgstr "" -#: js/turtledefs.js:125 -#: js/turtledefs.js:227 -#: js/VolumeBlocks.js:362 -#: js/VolumeBlocks.js:502 -#: js/VolumeBlocks.js:545 -msgid "volume" -msgstr "עָצמָה" +#: js/activity.js:1481 +msgid "Combining math and music" +msgstr "" -#: js/turtledefs.js:129 -#: js/turtledefs.js:231 -msgid "boxes" -msgstr "קופסאות" +#: js/activity.js:1482 +msgid "Generating more blocks" +msgstr "" -#: js/turtledefs.js:130 -#: js/turtledefs.js:232 -msgid "widgets" -msgstr "ווידג'טים" +#: js/activity.js:1483 +msgid "Do Re Mi Fa Sol La Ti Do" +msgstr "" + +#: js/activity.js:1484 +msgid "Tuning string instruments" +msgstr "" + +#: js/activity.js:1485 +msgid "Pressing random keys" +msgstr "" + +#: js/activity.js:1663 +msgid "plugins will be removed upon restart." +msgstr "תוספים יוסרו עם הפעלה מחדש." + +#: js/activity.js:1672 +msgid "show Cartesian" +msgstr "להראות קואורדינטות קרטזיות" + +#: js/activity.js:2211 +#: js/palette.js:589 +#: js/blocks/RhythmBlocks.js:923 +#: js/blocks/PitchBlocks.js:442 +#: js/blocks/PitchBlocks.js:1786 +#.TRANS: a numeric mapping of the notes in an octave based on the musical mode +msgid "scale degree" +msgstr "" + +#: js/activity.js:2214 +#: js/palette.js:598 +msgid "voice name" +msgstr "שם קול" + +#: js/activity.js:2217 +#: js/palette.js:595 +msgid "invert mode" +msgstr "" + +#: js/activity.js:2220 +msgid "output tools" +msgstr "כלים לתפוקה" + +#: js/activity.js:2223 +msgid "custom note" +msgstr "תו מוזיקלי מותאם אישית" + +#: js/activity.js:2226 +msgid "accidental name" +msgstr "" + +#: js/activity.js:2229 +#: js/blocks/PitchBlocks.js:855 +msgid "east indian solfege" +msgstr "" + +#: js/activity.js:2232 +#: js/blocks/PitchBlocks.js:869 +msgid "note name" +msgstr "" + +#: js/activity.js:2235 +#: js/blocks/IntervalsBlocks.js:94 +msgid "temperament name" +msgstr "שם טמפרמנט" + +#: js/activity.js:2238 +#: js/palette.js:592 +msgid "mode name" +msgstr "" + +#: js/activity.js:2241 +msgid "chord name" +msgstr "שם אקורד" + +#: js/activity.js:2244 +#: js/palette.js:615 +msgid "interval name" +msgstr "" + +#: js/activity.js:2247 +msgid "filter type" +msgstr "סוג מסנן" + +#: js/activity.js:2250 +msgid "oscillator type" +msgstr "סוג מתנד" + +#: js/activity.js:2253 +#: js/blocks.js:2479 +#: js/blocks.js:2487 +msgid "audio file" +msgstr "קובץ שמע" + +#: js/activity.js:2256 +#: js/blocks/DrumBlocks.js:32 +msgid "noise name" +msgstr "שם רעש" + +#: js/activity.js:2259 +#: js/blocks/DrumBlocks.js:75 +msgid "drum name" +msgstr "שם תוף" + +#: js/activity.js:2262 +#: js/blocks/DrumBlocks.js:119 +msgid "effects name" +msgstr "שם האפקטים" + +#: js/activity.js:2265 +msgid "wrap mode" +msgstr "" + +#: js/activity.js:2268 +msgid "load file" +msgstr "לטעון קובץ" + +#: js/activity.js:2435 +#: js/activity.js:5851 +msgid "This block is deprecated." +msgstr "בלוק זה הוצא משימוש." + +#: js/activity.js:2437 +#: js/activity.js:5853 +msgid "Block cannot be found." +msgstr "לא ניתן למצוא בלוק." + +#: js/activity.js:2645 +msgid "Saving block artwork" +msgstr "שומר יצירות אמנות בלוק" + +#: js/activity.js:2656 +msgid "Erase" +msgstr "לִמְחוֹק" + +#: js/activity.js:2683 +#: js/activity.js:2705 +msgid "Paste" +msgstr "הדבק" + +#: js/activity.js:2687 +msgid "Save block help" +msgstr "שמור עזרה לחסום" + +#: js/activity.js:2772 +msgid "Jumping to the bottom of the page." +msgstr "קופץ לתחתית העמוד." + +#: js/activity.js:2778 +msgid "Scrolling up." +msgstr "גלילה למעלה" + +#: js/activity.js:2783 +msgid "Scrolling down." +msgstr "גלילה למטה" + +#: js/activity.js:2788 +msgid "Extracting block" +msgstr "בלוק מחלץ" + +#: js/activity.js:2796 +msgid "Moving block up." +msgstr "העברת בלוק למעלה" + +#: js/activity.js:2817 +msgid "Moving block down." +msgstr "העברת בלוק למטה" + +#: js/activity.js:2838 +msgid "Moving block left." +msgstr "העברת בלוק שמאלה" + +#: js/activity.js:2855 +msgid "Moving block right." +msgstr "העברת בלוק ימינה" + +#: js/activity.js:2870 +msgid "Jump to home position." +msgstr "לך הביתה" + +#: js/activity.js:2897 +msgid "Hide blocks" +msgstr "להסתיר בלוקים" + +#: js/activity.js:4500 +msgid "Click the run button to run the project." +msgstr "לחץ על כפתור ההפעלה כדי להפעיל את הפרויקט." + +#: js/activity.js:5692 +msgid "Show/hide block" +msgstr "הצג או הסתר בלוק" + +#: js/activity.js:5698 +msgid "Expand/collapse blocks" +msgstr "להרחיב או לכווץ בלוק" + +#: js/activity.js:5976 +msgid "Could not parse JSON input." +msgstr "לא ניתן לנתח את JSON" + +#: js/activity.js:6475 +#: js/activity.js:6580 +#: js/activity.js:6631 +msgid "Cannot load project from the file. Please check the file type." +msgstr "לא ניתן לטעון את הפרויקט מהקובץ" + +#: js/activity.js:6917 +msgid "Invalid parameters" +msgstr "פרמטרים לא חוקיים" + +#: js/blocks.js:1212 +#: js/blocks.js:3444 +#: js/blocks.js:3834 +#: js/blocks.js:3865 +#: js/blocks.js:3914 +#: js/blocks.js:3949 +#: js/blocks.js:6586 +#: js/palette.js:509 +#: js/palette.js:638 +#: js/palette.js:1105 +#: js/blocks/BoxesBlocks.js:282 +#: js/blocks/BoxesBlocks.js:285 +#: js/blocks/BoxesBlocks.js:405 +#: js/blocks/BoxesBlocks.js:594 +msgid "box" +msgstr "תיבה" + +#: js/blocks.js:1713 +msgid "Consider breaking this stack into parts." +msgstr "שקול לפרק את הערימה הזו לחלקים." + +#: js/blocks.js:2472 +#: js/palette.js:653 +#: js/blocks/MediaBlocks.js:602 +msgid "open file" +msgstr "פתיחת קובץ" + +#: js/blocks.js:3247 +#: js/palette.js:574 +#: js/blocks/MediaBlocks.js:892 +#: js/blocks/MediaBlocks.js:963 +msgid "text" +msgstr "טקסט" + +#: js/blocks.js:3443 +#: js/palette.js:641 +#: js/palette.js:642 +#: js/blocks/BoxesBlocks.js:514 +msgid "store in box" +msgstr "לאחסן בקופסה" + +#: js/blocks.js:3448 +#: js/blocks.js:3888 +#: js/blocks.js:3923 +#: js/blocks.js:3958 +#: js/blocks.js:5862 +#: js/blocks.js:5883 +#: js/blocks/BoxesBlocks.js:772 +msgid "box1" +msgstr "קופסא 1" + +#: js/blocks.js:3450 +#: js/blocks.js:3890 +#: js/blocks.js:3925 +#: js/blocks.js:3960 +#: js/blocks.js:5864 +#: js/blocks.js:5885 +#: js/blocks/BoxesBlocks.js:663 +msgid "box2" +msgstr "קופסא 2" + +#: js/blocks.js:4122 +#: js/palette.js:639 +#: js/palette.js:644 +#: js/palette.js:1041 +#: js/blocks/BoxesBlocks.js:591 +msgid "store in" +msgstr "שמור ב" -#: js/turtledefs.js:131 -#: js/turtledefs.js:233 -#: js/phrasemaker.js:824 -msgid "graphics" -msgstr "גרָפִיקָה" +#: js/blocks.js:4122 +#: js/blocks/BoxesBlocks.js:595 +#: js/blocks/DictBlocks.js:215 +#: js/blocks/DictBlocks.js:289 +#: js/blocks/EnsembleBlocks.js:391 +#: js/blocks/EnsembleBlocks.js:402 +#: js/blocks/MediaBlocks.js:746 +#: js/blocks/PitchBlocks.js:656 +#: js/blocks/PitchBlocks.js:934 +#: js/blocks/PitchBlocks.js:1866 +#: js/blocks/ProgramBlocks.js:390 +#: js/blocks/ProgramBlocks.js:495 +#: js/blocks/ProgramBlocks.js:658 +#: js/blocks/ToneBlocks.js:1025 +msgid "name" +msgstr "שם" -#: js/turtledefs.js:134 -#: js/turtledefs.js:236 -msgid "boolean" -msgstr "בוליאני" +#: js/blocks.js:4122 +#: js/blocks/BoxesBlocks.js:75 +#: js/blocks/BoxesBlocks.js:595 +#: js/blocks/DictBlocks.js:289 +#: js/blocks/DictBlocks.js:430 +#: js/blocks/HeapBlocks.js:544 +#: js/blocks/RhythmBlocks.js:1130 +msgid "value" +msgstr "ערך" -#: js/turtledefs.js:137 -#: js/turtledefs.js:239 -#: js/HeapBlocks.js:59 -#: js/status.js:147 -msgid "heap" -msgstr "ערימה" +#: js/blocks.js:4465 +msgid "Forever loop detected inside a note value block. Unexpected things may happen." +msgstr "" -#: js/turtledefs.js:138 -#: js/turtledefs.js:240 -#: js/ProgramBlocks.js:495 -#: js/DictBlocks.js:142 -msgid "dictionary" -msgstr "מילון" +#: js/blocks.js:4988 +msgid "There is no block selected." +msgstr "לא נבחר בלוק." -#: js/turtledefs.js:139 -#: js/turtledefs.js:241 -msgid "ensemble" -msgstr "אנסמבל" +#: js/blocks.js:5091 +#: js/blocks/MediaBlocks.js:888 +msgid "show" +msgstr "הצג" -#: js/turtledefs.js:140 -#: js/turtledefs.js:242 -msgid "extras" -msgstr "אקסטרה" +#: js/blocks.js:5094 +#: js/blocks/MediaBlocks.js:803 +#.TRANS: Avatar is the image used to determine the appearance of the mouse. +msgid "avatar" +msgstr "גִלגוּל" -#: js/turtledefs.js:142 -#: js/turtledefs.js:244 -#.TRANS: program as in computer program -#.TRANS: program as in computer program -msgid "program" -msgstr "תכנית" +#: js/blocks.js:5097 +#: js/blocks/ToneBlocks.js:1010 +#: js/widgets/sampler.js:975 +#.TRANS: The sound sample that the user uploads. +msgid "sample" +msgstr "דוּגמָה" -#: js/turtledefs.js:143 -#: js/turtledefs.js:245 -msgid "my blocks" -msgstr "הבלוקים שלי" +#: js/lilypond.js:606 +msgid "brown rat" +msgstr "" -#: js/turtledefs.js:185 -#: js/turtledefs.js:281 -msgid "artwork" -msgstr "עבודת אומנות" +#: js/lilypond.js:607 +msgid "mole" +msgstr "" -#: js/turtledefs.js:185 -#: js/turtledefs.js:281 -msgid "logic" -msgstr "לוגיקה" +#: js/lilypond.js:608 +msgid "chipmunk" +msgstr "" -#: js/turtledefs.js:185 -#: js/turtledefs.js:281 -msgid "music" -msgstr "מוּסִיקָה" +#: js/lilypond.js:609 +msgid "red squirrel" +msgstr "" -#: js/turtledefs.js:187 -#: js/turtledefs.js:463 -msgid "Music Blocks is a collection of tools for exploring fundamental musical concepts in a fun way." -msgstr "Music Blocks הוא אוסף של כלים לחקר מושגים מוזיקליים בסיסיים בצורה מהנה." +#: js/lilypond.js:610 +msgid "guinea pig" +msgstr "" -#: js/turtledefs.js:436 -msgid "Welcome to Turtle Blocks" -msgstr "ברוך הבא" +#: js/lilypond.js:611 +msgid "capybara" +msgstr "" -#: js/turtledefs.js:438 -#: js/turtledefs.js:465 -#: js/turtledefs.js:774 -#: js/turtledefs.js:805 -msgid "The current version is" -msgstr "הגרסה הנוכחית" +#: js/lilypond.js:612 +msgid "coypu" +msgstr "" -#: js/turtledefs.js:446 -#: js/turtledefs.js:483 -msgid "Click the run button to run the project in fast mode." -msgstr "לחץ על כפתור ההפעלה כדי להפעיל את הפרויקט במצב מהיר." +#: js/lilypond.js:613 +msgid "black rat" +msgstr "" -#: js/turtledefs.js:452 -msgid "Stop the turtle." -msgstr "לעצור את הצב" +#: js/lilypond.js:614 +msgid "grey squirrel" +msgstr "" -#: js/turtledefs.js:454 -#: js/turtledefs.js:491 -msgid "You can also type Alt-S to stop." -msgstr "אתה יכול גם להקליד Alt-S כדי לעצור." +#: js/lilypond.js:615 +msgid "flying squirrel" +msgstr "" -#: js/turtledefs.js:462 -#: js/help.js:333 -msgid "Welcome to Music Blocks" -msgstr "ברוך הבא" +#: js/lilypond.js:616 +msgid "bat" +msgstr "" -#: js/turtledefs.js:472 -#: js/help.js:334 -msgid "Meet Mr. Mouse!" -msgstr "הכירו את מר מאוס" +#: js/lilypond.js:749 +#: js/lilypond.js:913 +#: js/lilypond.js:951 +#: js/blocks/ActionBlocks.js:1256 +#: js/blocks/ExtrasBlocks.js:556 +msgid "start drum" +msgstr "להתחיל תוף" -#: js/turtledefs.js:473 -msgid "Mr Mouse is our Music Blocks conductor." -msgstr "מר מאוס הוא המנצח שלנו ב-Music Blocks." +#: js/logo.js:61 +msgid "Not a valid pitch name" +msgstr "לא שם פיץ' חוקי" -#: js/turtledefs.js:475 -msgid "Mr Mouse encourages you to explore Music Blocks." -msgstr "מר עכבר מעודד אותך לחקור את בלוקי המוזיקה." +#: js/logo.js:507 +#: js/blocks/ProgramBlocks.js:258 +#: js/blocks/ProgramBlocks.js:427 +msgid "You must select a file." +msgstr "עליך לבחור קובץ." -#: js/turtledefs.js:477 -msgid "Let us start our tour!" -msgstr "בואו נתחיל את הסיור שלנו" +#: js/logo.js:1696 +msgid "Playback is ready." +msgstr "ההשמעה מוכנה." -#: js/turtledefs.js:489 -msgid "Stop the music (and the mice)." -msgstr "עצור את המוזיקה (ואת העכברים)." +#: js/macros.js:711 +#: js/utils/musicutils.js:1162 +#: js/utils/synthutils.js:202 +#.TRANS: animal sound effect +msgid "duck" +msgstr "ברווז" -#: js/turtledefs.js:499 -msgid "Record your project as video." -msgstr "הקלט את הפרויקט שלך כווידאו." +#: js/notation.js:353 +msgid "Lilypond cannot process pickup of " +msgstr "Lilypond לא יכול לעבד איסוף" -#: js/turtledefs.js:505 -msgid "Toggle Fullscreen mode." -msgstr "החלף מצב מסך מלא" +#: js/palette.js:571 +msgid "grid" +msgstr "רֶשֶׁת" -#: js/turtledefs.js:511 -msgid "Initialize a new project." -msgstr "להתחיל פרויקט חדש" +#: js/palette.js:580 +msgid "effect" +msgstr "אפקט שמע" -#: js/turtledefs.js:517 -msgid "You can also load projects from the file system." -msgstr "ניתן להעלות פרויקטים מתוך מערכת הקבצים" +#: js/palette.js:586 +msgid "sargam" +msgstr "" -#: js/turtledefs.js:522 -#: js/StringHelper.js:46 -msgid "Delete" -msgstr "מחיקה" +#: js/palette.js:601 +#: js/blocks/PitchBlocks.js:1209 +msgid "custom pitch" +msgstr "" -#: js/turtledefs.js:523 -msgid "To delete a block, just right-click on it, then you will be able to see the delete option" -msgstr "כדי למחוק בלוק, פשוט לחץ עליו באמצעות לחצן העכבר הימני ואז תוכל לראות את אפשרות המחיקה" +#: js/palette.js:609 +msgid "accidental" +msgstr "" -#: js/turtledefs.js:528 -#: js/activity.js:2270 -#: js/LocalCard.js:31 -msgid "Copy" -msgstr "העתק" +#: js/palette.js:633 +#: js/blocks/PitchBlocks.js:405 +msgid "pitch converter" +msgstr "" -#: js/turtledefs.js:529 -msgid "To copy a block, just right-click on it, then you will be able to see the copy option" -msgstr "כדי להעתיק בלוק, פשוט לחץ עליו באמצעות לחצן העכבר הימני ואז תוכל לראות את אפשרות ההעתקה" +#: js/piemenus.js:200 +#: js/utils/musicutils.js:1187 +#: js/utils/musicutils.js:1207 +#: js/widgets/musickeyboard.js:2341 +#: js/widgets/phrasemaker.js:1908 +#: js/widgets/sampler.js:810 +#.TRANS: double sharp is a music term related to pitch +msgid "double sharp" +msgstr "חד כפול" -#: js/turtledefs.js:535 -msgid "To extract a block, just right-click on it, then you will be able to see the extract option" -msgstr "כדי לחלץ בלוק, פשוט לחץ עליו באמצעות לחצן העכבר הימני, ואז תוכל לראות את אפשרות החילוץ" +#: js/piemenus.js:201 +#: js/utils/musicutils.js:1185 +#: js/utils/musicutils.js:1208 +#: js/blocks/PitchBlocks.js:1539 +#: js/turtleactions/PitchActions.js:323 +#: js/widgets/musickeyboard.js:2342 +#: js/widgets/phrasemaker.js:1909 +#: js/widgets/sampler.js:811 +#.TRANS: sharp is a music term related to pitch +#.TRANS: sharp is a half-step up in pitch +msgid "sharp" +msgstr "חַד" -#: js/turtledefs.js:542 -#: js/turtledefs.js:552 -#: js/turtledefs.js:573 -msgid "Save your project to a file." -msgstr "לשמור את הפרויקט שלך לקובץ" +#: js/piemenus.js:202 +#: js/utils/musicutils.js:1183 +#: js/utils/musicutils.js:1209 +#: js/widgets/musickeyboard.js:2343 +#: js/widgets/phrasemaker.js:1910 +#: js/widgets/sampler.js:812 +#.TRANS: natural is a music term related to pitch +msgid "natural" +msgstr "" -#: js/turtledefs.js:549 -#: js/turtledefs.js:570 -msgid "save" -msgstr "שמור" +#: js/piemenus.js:203 +#: js/utils/musicutils.js:1181 +#: js/utils/musicutils.js:1210 +#: js/blocks/PitchBlocks.js:1498 +#: js/turtleactions/PitchActions.js:326 +#: js/widgets/musickeyboard.js:2344 +#: js/widgets/phrasemaker.js:1911 +#: js/widgets/sampler.js:813 +#.TRANS: flat is a music term related to pitch +#.TRANS: flat is a half-step down in pitch +msgid "flat" +msgstr " זוגי" -#: js/turtledefs.js:556 -#: js/turtledefs.js:577 -msgid "Save graphics from your project to as SVG." -msgstr "שמור גרפיקה מהפרויקט שלך כ-SVG." +#: js/piemenus.js:204 +#: js/utils/musicutils.js:1179 +#: js/utils/musicutils.js:1211 +#: js/widgets/musickeyboard.js:2345 +#: js/widgets/phrasemaker.js:1912 +#: js/widgets/sampler.js:814 +#.TRANS: double flat is a music term related to pitch +msgid "double flat" +msgstr "שטוח זוגי" -#: js/turtledefs.js:560 -#: js/turtledefs.js:581 -msgid "Save graphics from your project as PNG." -msgstr "שמור גרפיקה מהפרויקט שלך כ-PNG." +#: js/piemenus.js:2864 +#: js/utils/musicutils.js:1006 +#: js/blocks/PitchBlocks.js:1385 +#.TRANS: unison is a music term related to intervals +#.TRANS: unison means the note is the same as the current note +msgid "unison" +msgstr "" -#: js/turtledefs.js:564 -#: js/turtledefs.js:597 -msgid "Save block artwork as an SVG file." -msgstr "שמור גרפיקת בלוק כקובץ SVG." +#: js/piemenus.js:3018 +#: js/piemenus.js:3091 +#: js/utils/musicutils.js:1014 +#: js/utils/musicutils.js:1189 +#: js/utils/musicutils.js:1326 +#.TRANS: major is a music term related to intervals and mode +msgid "major" +msgstr "" -#: js/turtledefs.js:585 -msgid "Save audio from your project as WAV." -msgstr "שמור אודיו מהפרויקט שלך כ-WAV." +#: js/piemenus.js:3018 +#: js/piemenus.js:3091 +#: js/utils/musicutils.js:1032 +#.TRANS: modal scale for music +msgid "ionian" +msgstr "" -#: js/turtledefs.js:589 -msgid "Save your project to as an ABC file." -msgstr "שמור את הפרויקט שלך כקובץ ABC." +#: js/piemenus.js:3020 +#: js/piemenus.js:3095 +#: js/utils/musicutils.js:1012 +#: js/utils/musicutils.js:1190 +#: js/utils/musicutils.js:1323 +#.TRANS: minor is a music term related to intervals and mode +msgid "minor" +msgstr "" -#: js/turtledefs.js:593 -msgid "Save your project to as a Lilypond file." -msgstr "שמור את הפרויקט שלך כקובץ Lilypond." +#: js/piemenus.js:3020 +#: js/piemenus.js:3095 +#: js/utils/musicutils.js:1042 +#.TRANS: modal scale for music +msgid "aeolian" +msgstr "" -#: js/turtledefs.js:604 -msgid "Load samples from server" -msgstr "העלאת דוגמאות מן השרת" +#: js/piemenus.js:3410 +msgid "Duplicate" +msgstr "לְשַׁכְפֵּל" -#: js/turtledefs.js:605 -msgid "This button opens a viewer for loading example projects." -msgstr "כפתור זה פותח מציג להעלאת פרויקטים" +#: js/piemenus.js:3412 +msgid "Move to trash" +msgstr "העבר לאשפה" -#: js/turtledefs.js:611 -msgid "Palette buttons" -msgstr "סרגל כלים" +#: js/piemenus.js:3413 +#: js/widgets/timbre.js:968 +#: planet/js/StringHelper.js:69 +msgid "Close" +msgstr "סגור" -#: js/turtledefs.js:612 -msgid "This toolbar contains the palette buttons including Rhythm Pitch Tone Action and more." -msgstr "סרגל כלים זה מכיל את כפתורי הצבעים הכוללים קצב, גובה גובה, טון, פעולה ועוד." +#: js/piemenus.js:3419 +msgid "Save stack" +msgstr "שמור את הקבוצה" -#: js/turtledefs.js:614 -msgid "Click to show the palettes of blocks and drag blocks from the palettes onto the canvas to use them." -msgstr "לחץ כדי להציג את פלטות הבלוקים וגרור בלוקים מהלוחות אל הקנבס כדי להשתמש בהם." +#: js/piemenus.js:3449 +msgid "In order to copy a sample, you must reload the widget, import the sample again, and export it." +msgstr "" -#: js/turtledefs.js:620 -msgid "Cartesian/Polar" -msgstr "קרטזיאני/קוטבי" +#: js/piemenus.js:3812 +msgid "You have chosen key " +msgstr "אתה בחרת" -#: js/turtledefs.js:621 -msgid "Show or hide a coordinate grid." -msgstr "הצג או הסתר רשת קואורדינטות." +#: js/piemenus.js:3816 +msgid " for your pitch preview." +msgstr "" -#: js/turtledefs.js:627 -msgid "Clear the screen and return the mice to their initial positions." -msgstr "נקה את המסך והחזר את העכברים למקומם ההתחלתי." +#: js/turtle-singer.js:1363 +#.TRANS: partials are weighted components in a harmonic series +msgid "You must have at least one Partial block inside of a Weighted-partial block" +msgstr "" -#: js/turtledefs.js:633 -msgid "Collapse the graphics window." -msgstr "כווץ את חלון הגרפיקה." +#: js/turtle-singer.js:2077 +msgid "synth cannot play chords." +msgstr "" -#: js/turtledefs.js:638 -#: js/activity.js:4256 -#: js/activity.js:4256 -msgid "Home" -msgstr "בית" +#: js/utils/musicutils.js:505 +#: js/utils/musicutils.js:645 +#: js/widgets/pitchdrummatrix.js:228 +#: js/widgets/musickeyboard.js:2885 +msgid "rest" +msgstr "" -#: js/turtledefs.js:639 -msgid "Return all blocks to the center of the screen." -msgstr "החזר את כל הבלוקים למרכז המסך." +#: js/utils/musicutils.js:689 +msgid "Perfect unison" +msgstr "" -#: js/turtledefs.js:644 -msgid "Show/hide blocks" -msgstr "הצג או הסתר את הבלוקים" +#: js/utils/musicutils.js:689 +msgid "Diminished second" +msgstr "" -#: js/turtledefs.js:645 -msgid "Hide or show the blocks and the palettes." -msgstr "הצג או הסתר את הבלוקים ואת הכלים" +#: js/utils/musicutils.js:690 +msgid "Minor second" +msgstr "" -#: js/turtledefs.js:650 -msgid "Expand/collapse collapsable blocks" -msgstr "הרחב/כווץ בלוקים הניתנים לכיווץ" +#: js/utils/musicutils.js:690 +msgid "Augmented unison" +msgstr "" -#: js/turtledefs.js:651 -msgid "Expand or collapse start and action stacks." -msgstr "הרחב או צמצם קבוצת בלוקים כמו קבוצת התחל או פעולה" +#: js/utils/musicutils.js:691 +msgid "Major second" +msgstr "" -#: js/turtledefs.js:658 -#: js/activity.js:4265 -msgid "Decrease block size" -msgstr "הקטן גודל בלוק" +#: js/utils/musicutils.js:691 +msgid "Diminished third" +msgstr "" -#: js/turtledefs.js:659 -msgid "Decrease the size of the blocks." -msgstr "הקטן את גודל הבלוקים" +#: js/utils/musicutils.js:692 +msgid "Minor third" +msgstr "" -#: js/turtledefs.js:664 -#: js/activity.js:4267 -msgid "Increase block size" -msgstr "הגדל את גודל הבלוק" +#: js/utils/musicutils.js:692 +msgid "Augmented second" +msgstr "" -#: js/turtledefs.js:665 -msgid "Increase the size of the blocks." -msgstr "הגדל את גודל הבלוקים" +#: js/utils/musicutils.js:693 +msgid "Major third" +msgstr "" -#: js/turtledefs.js:670 -msgid "Expand/collapse option toolbar" -msgstr "הרחב/צמצם סרגל האפשרויות" +#: js/utils/musicutils.js:693 +msgid "Diminished fourth" +msgstr "" -#: js/turtledefs.js:671 -msgid "Click this button to expand or collapse the auxillary toolbar." -msgstr "לחצו על כפתור זה כדי להרחיב או לצמצם את סרגל כלי העזר" +#: js/utils/musicutils.js:694 +msgid "Perfect fourth" +msgstr "" -#: js/turtledefs.js:676 -msgid "Run slow" -msgstr "הרצה איטית" +#: js/utils/musicutils.js:694 +msgid "Augmented third" +msgstr "" -#: js/turtledefs.js:677 -msgid "Click to run the project in slow mode." -msgstr "לחצו כדי להריץ את הפרויקט במצב איטי" +#: js/utils/musicutils.js:695 +msgid "Diminished fifth" +msgstr "" -#: js/turtledefs.js:683 -msgid "Click to run the project step by step." -msgstr "לחצו כדי להריץ את הפרויקט צעד אחרי צעד" +#: js/utils/musicutils.js:695 +msgid "Augmented fourth" +msgstr "" -#: js/turtledefs.js:690 -msgid "Display statistics about your Music project." -msgstr "הצג סטטיסטיקות אודות פרויקט הצב שלך" +#: js/utils/musicutils.js:696 +msgid "Perfect fifth" +msgstr "" -#: js/turtledefs.js:697 -msgid "Delete a selected plugin." -msgstr "מחק תוסף שנבחר." +#: js/utils/musicutils.js:696 +msgid "Diminished sixth" +msgstr "" -#: js/turtledefs.js:704 -msgid "Enable scrolling" -msgstr "אפשר גלילה" +#: js/utils/musicutils.js:697 +msgid "Minor sixth" +msgstr "" -#: js/turtledefs.js:705 -msgid "You can scroll the blocks on the canvas." -msgstr "אתה יכול לגלול את הבלוקים על הבד." +#: js/utils/musicutils.js:697 +msgid "Augmented fifth" +msgstr "" -#: js/turtledefs.js:714 -msgid "Wrap Turtle" -msgstr "לעטוף צב" +#: js/utils/musicutils.js:698 +msgid "Major sixth" +msgstr "" -#: js/turtledefs.js:715 -msgid "Turn Turtle wrapping On or Off." -msgstr "הפעל או כבה את העטיפה" +#: js/utils/musicutils.js:698 +msgid "Diminished seventh" +msgstr "" -#: js/turtledefs.js:725 -msgid "Restore blocks from the trash." -msgstr "שחזור בלוקים מסל המחזור" +#: js/utils/musicutils.js:699 +msgid "Minor seventh" +msgstr "" -#: js/turtledefs.js:732 -msgid "Switch mode" -msgstr "להחליף מצב" +#: js/utils/musicutils.js:699 +msgid "Augmented sixth" +msgstr "" -#: js/turtledefs.js:733 -msgid "Switch between beginner and advance modes." -msgstr "מעבר בין מצבי מתחיל למצב מתקדם." +#: js/utils/musicutils.js:700 +msgid "Major seventh" +msgstr "" -#: js/turtledefs.js:739 -msgid "Select your language preference." -msgstr "בחר את העדפת השפה שלך." +#: js/utils/musicutils.js:700 +msgid "Diminished octave" +msgstr "" -#: js/turtledefs.js:745 -msgid "Keyboard shortcuts" -msgstr "קיצורי דרך במקלדת" +#: js/utils/musicutils.js:701 +msgid "Perfect octave" +msgstr "" -#: js/turtledefs.js:746 -msgid "You can type d to create a do block and r to create a re block etc." -msgstr "אתה יכול להקליד d כדי ליצור בלוק DO ו-r כדי ליצור בלוק RE וכו'." +#: js/utils/musicutils.js:701 +msgid "Augmented seventh" +msgstr "" -#: js/turtledefs.js:753 -msgid "Show these messages." -msgstr "הצג את הודעות אלה" +#: js/utils/musicutils.js:702 +msgid "Minor ninth" +msgstr "" -#: js/turtledefs.js:759 -#: js/turtledefs.js:790 -#: js/help.js:335 -msgid "Guide" -msgstr "להנחות" +#: js/utils/musicutils.js:702 +msgid "Augmented octave" +msgstr "" -#: js/turtledefs.js:760 -msgid "A detailed guide to Turtle Blocks is available." -msgstr "מדריך מפורט ל-Turtle Blocks זמין." +#: js/utils/musicutils.js:703 +msgid "Major ninth" +msgstr "" -#: js/turtledefs.js:764 -msgid "Turtle Blocks Guide" -msgstr "מדריך Turtle Blocks" +#: js/utils/musicutils.js:703 +msgid "Diminished tenth" +msgstr "" -#: js/turtledefs.js:767 -#: js/turtledefs.js:798 -#: js/help.js:336 -msgid "About" -msgstr "לגבי" +#: js/utils/musicutils.js:704 +msgid "Minor tenth" +msgstr "" -#: js/turtledefs.js:768 -msgid "Turtle Blocks is an open source collection of tools for exploring musical concepts." -msgstr "Turtle Blocks הוא אוסף קוד פתוח של כלים לחקר מושגים מוזיקליים." +#: js/utils/musicutils.js:704 +msgid "Augmented ninth" +msgstr "" -#: js/turtledefs.js:770 -msgid "A full list of contributors can be found in the Turtle Blocks GitHub repository." -msgstr "רשימה מלאה של תורמים ניתן למצוא במאגר Turtle Blocks GitHub." +#: js/utils/musicutils.js:705 +msgid "Major tenth" +msgstr "" -#: js/turtledefs.js:772 -msgid "Turtle Blocks is licensed under the AGPL." -msgstr "Turtle Blocks מורשה תחת ה-AGPL." +#: js/utils/musicutils.js:705 +msgid "Diminished eleventh" +msgstr "" -#: js/turtledefs.js:780 -msgid "Turtle Blocks GitHub repository" -msgstr "Turtle Blocks מאגר GitHub" +#: js/utils/musicutils.js:706 +msgid "Perfect eleventh" +msgstr "" -#: js/turtledefs.js:783 -#: js/turtledefs.js:814 -#: js/help.js:337 -#: js/help.js:359 -msgid "Congratulations." -msgstr "איחולנו" +#: js/utils/musicutils.js:706 +msgid "Augmented tenth" +msgstr "" -#: js/turtledefs.js:784 -msgid "You have finished the tour. Please enjoy Turtle Blocks!" -msgstr "סיימת את הסיור. בבקשה תהנו מ-Turtle Blocks!" +#: js/utils/musicutils.js:707 +msgid "Diminished twelfth" +msgstr "" -#: js/turtledefs.js:791 -msgid "A detailed guide to Music Blocks is available." -msgstr "מדריך מפורט ל-Music Blocks זמין." +#: js/utils/musicutils.js:707 +msgid "Augmented eleventh" +msgstr "" -#: js/turtledefs.js:795 -#: js/SaveInterface.js:76 -msgid "Music Blocks Guide" -msgstr "מדריך Music Blocks" +#: js/utils/musicutils.js:708 +msgid "Perfect twelfth" +msgstr "" -#: js/turtledefs.js:799 -msgid "Music Blocks is an open source collection of tools for exploring musical concepts." -msgstr "Music Blocks הוא אוסף קוד פתוח של כלים לחקר מושגים מוזיקליים." +#: js/utils/musicutils.js:708 +msgid "Diminished thirteenth" +msgstr "" -#: js/turtledefs.js:801 -msgid "A full list of contributors can be found in the Music Blocks GitHub repository." -msgstr "רשימה מלאה של תורמים ניתן למצוא במאגר Music Blocks GitHub." +#: js/utils/musicutils.js:709 +msgid "Minor thirteenth" +msgstr "" -#: js/turtledefs.js:803 -msgid "Music Blocks is licensed under the AGPL." -msgstr "Music Blocks מורשה תחת ה-AGPL." +#: js/utils/musicutils.js:709 +msgid "Augmented fifth, plus an octave" +msgstr "" -#: js/turtledefs.js:811 -msgid "Music Blocks GitHub repository" -msgstr "Music Blocks מאגר GitHub" +#: js/utils/musicutils.js:710 +msgid "Major thirteenth" +msgstr "" -#: js/turtledefs.js:815 -msgid "You have finished the tour. Please enjoy Music Blocks!" -msgstr "סיימת את הסיור. בבקשה תהנו מ-Music Blocks!" +#: js/utils/musicutils.js:710 +msgid "Diminished seventh, plus an octave" +msgstr "" -#: js/activity.js:369 -msgid "Search for blocks" -msgstr "חפש בלוקים" +#: js/utils/musicutils.js:838 +#.TRANS: ordinal number. Please keep exactly one space between each number. +msgid "1st 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th" +msgstr "" -#: js/activity.js:1145 -msgid "Refresh your browser to change to advanced mode." -msgstr "רענן את הדפדפן כדי לעבור למצב מתקדם." +#: js/utils/musicutils.js:1008 +#: js/utils/musicutils.js:1191 +#: js/utils/musicutils.js:1325 +#.TRANS: augmented is a music term related to intervals +msgid "augmented" +msgstr "" -#: js/activity.js:1150 -msgid "Refresh your browser to change to beginner mode." -msgstr "רענן את הדפדפן שלך כדי לעבור למצב מתחיל." +#: js/utils/musicutils.js:1010 +#: js/utils/musicutils.js:1192 +#: js/utils/musicutils.js:1324 +#.TRANS: diminished is a music term related to intervals and mode +msgid "diminished" +msgstr "" -#: js/activity.js:1184 -msgid "Catching mice" +#: js/utils/musicutils.js:1016 +#: js/utils/musicutils.js:1322 +#: js/blocks/IntervalsBlocks.js:649 +#: js/turtleactions/IntervalsActions.js:120 +#: js/turtleactions/IntervalsActions.js:124 +#.TRANS: perfect is a music term related to intervals +msgid "perfect" msgstr "" -#: js/activity.js:1185 -msgid "Cleaning the instruments" +#: js/utils/musicutils.js:1018 +#.TRANS: twelve semi-tone scale for music +msgid "chromatic" msgstr "" -#: js/activity.js:1186 -msgid "Testing key pieces" +#: js/utils/musicutils.js:1019 +msgid "algerian" msgstr "" -#: js/activity.js:1187 -msgid "Sight-reading" +#: js/utils/musicutils.js:1020 +msgid "spanish" msgstr "" -#: js/activity.js:1188 -msgid "Combining math and music" +#: js/utils/musicutils.js:1022 +#.TRANS: modal scale in music +msgid "octatonic" msgstr "" -#: js/activity.js:1189 -msgid "Generating more blocks" +#: js/utils/musicutils.js:1024 +#.TRANS: harmonic major scale in music +msgid "harmonic major" msgstr "" -#: js/activity.js:1190 -msgid "Do Re Mi Fa Sol La Ti Do" +#: js/utils/musicutils.js:1026 +#.TRANS: natural minor scales in music +msgid "natural minor" msgstr "" -#: js/activity.js:1191 -msgid "Tuning string instruments" +#: js/utils/musicutils.js:1028 +#.TRANS: harmonic minor scale in music +msgid "harmonic minor" msgstr "" -#: js/activity.js:1192 -msgid "Pressing random keys" +#: js/utils/musicutils.js:1030 +#.TRANS: melodic minor scale in music +msgid "melodic minor" msgstr "" -#: js/activity.js:1351 -msgid "plugins will be removed upon restart." -msgstr "תוספים יוסרו עם הפעלה מחדש." - -#: js/activity.js:1360 -msgid "show Cartesian" -msgstr "להראות קואורדינטות קרטזיות" - -#: js/activity.js:1842 -msgid "output tools" -msgstr "כלים לתפוקה" - -#: js/activity.js:1845 -msgid "custom note" -msgstr "תו מוזיקלי מותאם אישית" - -#: js/activity.js:1848 -msgid "accidental name" +#: js/utils/musicutils.js:1034 +#.TRANS: modal scale for music +msgid "dorian" msgstr "" -#: js/activity.js:1851 -#: js/PitchBlocks.js:855 -msgid "east indian solfege" +#: js/utils/musicutils.js:1036 +#.TRANS: modal scale for music +msgid "phrygian" msgstr "" -#: js/activity.js:1854 -#: js/PitchBlocks.js:869 -msgid "note name" +#: js/utils/musicutils.js:1038 +#.TRANS: modal scale for music +msgid "lydian" msgstr "" -#: js/activity.js:1857 -#: js/IntervalsBlocks.js:94 -msgid "temperament name" -msgstr "שם טמפרמנט" - -#: js/activity.js:1863 -msgid "chord name" -msgstr "שם אקורד" +#: js/utils/musicutils.js:1040 +#.TRANS: modal scale for music +msgid "mixolydian" +msgstr "" -#: js/activity.js:1869 -msgid "filter type" -msgstr "סוג מסנן" +#: js/utils/musicutils.js:1044 +#.TRANS: modal scale for music +msgid "locrian" +msgstr "" -#: js/activity.js:1872 -msgid "oscillator type" -msgstr "סוג מתנד" +#: js/utils/musicutils.js:1046 +#.TRANS: minor jazz scale for music +msgid "jazz minor" +msgstr "" -#: js/activity.js:1878 -#: js/DrumBlocks.js:32 -msgid "noise name" -msgstr "שם רעש" +#: js/utils/musicutils.js:1048 +#.TRANS: bebop scale for music +msgid "bebop" +msgstr "" -#: js/activity.js:1881 -#: js/DrumBlocks.js:75 -msgid "drum name" -msgstr "שם תוף" +#: js/utils/musicutils.js:1049 +msgid "arabic" +msgstr "" -#: js/activity.js:1884 -#: js/DrumBlocks.js:119 -msgid "effects name" -msgstr "שם האפקטים" +#: js/utils/musicutils.js:1050 +msgid "byzantine" +msgstr "" -#: js/activity.js:1887 -msgid "wrap mode" +#: js/utils/musicutils.js:1052 +#.TRANS: musical scale for music by Verdi +msgid "enigmatic" msgstr "" -#: js/activity.js:1890 -msgid "load file" -msgstr "לטעון קובץ" +#: js/utils/musicutils.js:1053 +msgid "ethiopian" +msgstr "" -#: js/activity.js:2056 -msgid "This block is deprecated." -msgstr "בלוק זה הוצא משימוש." +#: js/utils/musicutils.js:1055 +#.TRANS: Ethiopic scale for music +msgid "geez" +msgstr "" -#: js/activity.js:2058 -msgid "Block cannot be found." -msgstr "לא ניתן למצוא בלוק." +#: js/utils/musicutils.js:1056 +msgid "hindu" +msgstr "" -#: js/activity.js:2266 -msgid "Saving block artwork" -msgstr "שומר יצירות אמנות בלוק" +#: js/utils/musicutils.js:1057 +msgid "hungarian" +msgstr "" -#: js/activity.js:2277 -msgid "Erase" -msgstr "לִמְחוֹק" +#: js/utils/musicutils.js:1059 +#.TRANS: minor Romanian scale for music +msgid "romanian minor" +msgstr "" -#: js/activity.js:2301 -#: js/activity.js:2323 -msgid "Paste" -msgstr "הדבק" +#: js/utils/musicutils.js:1060 +msgid "spanish gypsy" +msgstr "" -#: js/activity.js:2305 -msgid "Save block help" -msgstr "שמור עזרה לחסום" +#: js/utils/musicutils.js:1062 +#.TRANS: musical scale for Mid-Eastern music +msgid "maqam" +msgstr "" -#: js/activity.js:2390 -msgid "Jumping to the bottom of the page." -msgstr "קופץ לתחתית העמוד." +#: js/utils/musicutils.js:1064 +#.TRANS: minor blues scale for music +msgid "minor blues" +msgstr "" -#: js/activity.js:2396 -msgid "Scrolling up." -msgstr "גלילה למעלה" +#: js/utils/musicutils.js:1066 +#.TRANS: major blues scale for music +msgid "major blues" +msgstr "" -#: js/activity.js:2401 -msgid "Scrolling down." -msgstr "גלילה למטה" +#: js/utils/musicutils.js:1067 +msgid "whole tone" +msgstr "" -#: js/activity.js:2406 -msgid "Extracting block" -msgstr "בלוק מחלץ" +#: js/utils/musicutils.js:1069 +#.TRANS: pentatonic is a general term that means "five note scale". This scale is typically known as "minor pentatonic" +msgid "minor pentatonic" +msgstr "" -#: js/activity.js:2414 -msgid "Moving block up." -msgstr "העברת בלוק למעלה" +#: js/utils/musicutils.js:1071 +#.TRANS: pentatonic is a general term that means "five note scale". This scale is typically known as "major pentatonic" +msgid "major pentatonic" +msgstr "" -#: js/activity.js:2435 -msgid "Moving block down." -msgstr "העברת בלוק למטה" +#: js/utils/musicutils.js:1072 +msgid "chinese" +msgstr "" -#: js/activity.js:2456 -msgid "Moving block left." -msgstr "העברת בלוק שמאלה" +#: js/utils/musicutils.js:1073 +msgid "egyptian" +msgstr "" -#: js/activity.js:2473 -msgid "Moving block right." -msgstr "העברת בלוק ימינה" +#: js/utils/musicutils.js:1075 +#.TRANS: https://en.wikipedia.org/wiki/Hirajoshi_scale NOTE: There are three different versions of this scale +msgid "hirajoshi" +msgstr "" -#: js/activity.js:2488 -msgid "Jump to home position." -msgstr "לך הביתה" +#: js/utils/musicutils.js:1076 +msgid "Japan" +msgstr "" -#: js/activity.js:2515 -msgid "Hide blocks" -msgstr "להסתיר בלוקים" +#: js/utils/musicutils.js:1078 +#.TRANS: https://en.wikipedia.org/wiki/In_scale and https://en.wikipedia.org/wiki/Sakura_Sakura +msgid "in" +msgstr "" -#: js/activity.js:3389 -msgid "Click the run button to run the project." -msgstr "לחץ על כפתור ההפעלה כדי להפעיל את הפרויקט." +#: js/utils/musicutils.js:1080 +#.TRANS: https://en.wikipedia.org/wiki/Miny%C5%8D_scale +msgid "minyo" +msgstr "" -#: js/activity.js:3456 -#: js/SaveInterface.js:131 -#: js/SaveInterface.js:204 -#: js/SaveInterface.js:262 -#: js/SaveInterface.js:389 -#: js/SaveInterface.js:417 -#: js/ProjectStorage.js:27 -#: js/GlobalPlanet.js:467 -#: js/GlobalPlanet.js:469 -#: js/GlobalPlanet.js:495 -#.TRANS: default project title when saving as Lilypond -msgid "My Project" -msgstr "הפרויקט שלי" +#: js/utils/musicutils.js:1082 +#.TRANS: Italian mathematician +msgid "fibonacci" +msgstr "" -#: js/activity.js:4261 -msgid "Show/hide block" -msgstr "הצג או הסתר בלוק" +#: js/utils/musicutils.js:1083 +#: js/utils/musicutils.js:1134 +#: js/utils/musicutils.js:1177 +#: js/utils/musicutils.js:1199 +#: js/utils/synthutils.js:134 +#: js/blocks/IntervalsBlocks.js:1124 +#: js/blocks/ToneBlocks.js:946 +#: js/blocks/VolumeBlocks.js:411 +#: js/blocks/WidgetBlocks.js:399 +#: js/blocks/WidgetBlocks.js:404 +#: js/turtleactions/VolumeActions.js:218 +#: js/widgets/modewidget.js:919 +#.TRANS: customize voice +msgid "custom" +msgstr "" -#: js/activity.js:4263 -msgid "Expand/collapse blocks" -msgstr "להרחיב או לכווץ בלוק" +#: js/utils/musicutils.js:1085 +#: js/utils/musicutils.js:1531 +#: js/blocks/WidgetBlocks.js:176 +#.TRANS: highpass filter +msgid "highpass" +msgstr "" -#: js/activity.js:4381 -msgid "Could not parse JSON input." -msgstr "לא ניתן לנתח את JSON" +#: js/utils/musicutils.js:1087 +#: js/utils/musicutils.js:1532 +#.TRANS: lowpass filter +msgid "lowpass" +msgstr "" -#: js/activity.js:4684 -#: js/activity.js:4771 -#: js/activity.js:4821 -msgid "Cannot load project from the file. Please check the file type." -msgstr "לא ניתן לטעון את הפרויקט מהקובץ" +#: js/utils/musicutils.js:1089 +#: js/utils/musicutils.js:1533 +#.TRANS: bandpass filter +msgid "bandpass" +msgstr "" -#: js/activity.js:5051 -msgid "Invalid parameters" -msgstr "פרמטרים לא חוקיים" +#: js/utils/musicutils.js:1091 +#: js/utils/musicutils.js:1534 +#.TRANS: high-shelf filter +msgid "highshelf" +msgstr "" -#: js/turtle-singer.js:1334 -#.TRANS: partials are weighted components in a harmonic series -msgid "You must have at least one Partial block inside of a Weighted-partial block" +#: js/utils/musicutils.js:1093 +#: js/utils/musicutils.js:1535 +#.TRANS: low-shelf filter +msgid "lowshelf" msgstr "" -#: js/turtle-singer.js:2048 -msgid "synth cannot play chords." +#: js/utils/musicutils.js:1095 +#: js/utils/musicutils.js:1536 +#.TRANS: notch-shelf filter +msgid "notch" msgstr "" -#: js/lilypond.js:614 -msgid "brown rat" +#: js/utils/musicutils.js:1097 +#: js/utils/musicutils.js:1537 +#.TRANS: all-pass filter +msgid "allpass" msgstr "" -#: js/lilypond.js:615 -msgid "mole" +#: js/utils/musicutils.js:1099 +#: js/utils/musicutils.js:1538 +#.TRANS: peaking filter +msgid "peaking" msgstr "" -#: js/lilypond.js:616 -msgid "chipmunk" +#: js/utils/musicutils.js:1100 +#: js/utils/musicutils.js:1546 +#: js/utils/synthutils.js:126 +#: js/blocks/PitchBlocks.js:85 +#.TRANS: sine wave +msgid "sine" msgstr "" -#: js/lilypond.js:617 -msgid "red squirrel" +#: js/utils/musicutils.js:1101 +#: js/utils/musicutils.js:1547 +#: js/utils/synthutils.js:128 +#: js/blocks/PitchBlocks.js:39 +#.TRANS: square wave +msgid "square" msgstr "" -#: js/lilypond.js:618 -msgid "guinea pig" +#: js/utils/musicutils.js:1102 +#: js/utils/musicutils.js:1548 +#: js/utils/synthutils.js:132 +#: js/blocks/PitchBlocks.js:62 +#: js/blocks/ToneBlocks.js:39 +#.TRANS: triangle wave +msgid "triangle" msgstr "" -#: js/lilypond.js:619 -msgid "capybara" +#: js/utils/musicutils.js:1103 +#: js/utils/musicutils.js:1549 +#: js/utils/synthutils.js:130 +#: js/blocks/PitchBlocks.js:108 +#.TRANS: sawtooth wave +msgid "sawtooth" msgstr "" -#: js/lilypond.js:620 -msgid "coypu" +#: js/utils/musicutils.js:1105 +#: js/utils/musicutils.js:1312 +#: js/blocks/PitchBlocks.js:931 +#: js/blocks/PitchBlocks.js:937 +#: js/turtleactions/PitchActions.js:469 +#.TRANS: even numbers +#.TRANS: invert based on even or odd number or musical scale +msgid "even" msgstr "" -#: js/lilypond.js:621 -msgid "black rat" +#: js/utils/musicutils.js:1107 +#: js/utils/musicutils.js:1313 +#: js/blocks/PitchBlocks.js:937 +#: js/turtleactions/PitchActions.js:471 +#.TRANS: odd numbers +msgid "odd" msgstr "" -#: js/lilypond.js:622 -msgid "grey squirrel" +#: js/utils/musicutils.js:1108 +#: js/utils/musicutils.js:1314 +#: js/blocks/PitchBlocks.js:937 +#: js/turtleactions/PitchActions.js:473 +msgid "scalar" msgstr "" -#: js/lilypond.js:623 -msgid "flying squirrel" +#: js/utils/musicutils.js:1109 +#: js/utils/synthutils.js:72 +#: js/blocks/VolumeBlocks.js:47 +#.TRANS: musical instrument +msgid "piano" msgstr "" -#: js/lilypond.js:624 -msgid "bat" +#: js/utils/musicutils.js:1110 +#: js/utils/synthutils.js:74 +#.TRANS: musical instrument +msgid "violin" msgstr "" -#: js/lilypond.js:757 -#: js/lilypond.js:921 -#: js/lilypond.js:959 -#: js/ActionBlocks.js:1256 -#: js/ExtrasBlocks.js:553 -msgid "start drum" -msgstr "להתחיל תוף" +#: js/utils/musicutils.js:1111 +#: js/utils/synthutils.js:76 +#.TRANS: viola musical instrument +msgid "viola" +msgstr "" -#: js/SaveInterface.js:59 -#: js/SaveInterface.js:61 -#: js/SaveInterface.js:93 -msgid "Music Blocks Project" -msgstr "פרויקט Music Blocks" +#: js/utils/musicutils.js:1112 +#: js/utils/synthutils.js:114 +#.TRANS: xylophone musical instrument +msgid "xylophone" +msgstr "" -#: js/SaveInterface.js:63 -msgid "This project was created in Music Blocks" -msgstr "פרויקט זה נוצר ב-Music Blocks" +#: js/utils/musicutils.js:1113 +#: js/utils/synthutils.js:136 +#.TRANS: vibraphone musical instrument +msgid "vibraphone" +msgstr "" -#: js/SaveInterface.js:67 -msgid "Music Blocks is a Free/Libre Software application." -msgstr "Music Blocks הוא יישום תוכנת FREE/LIBRE." +#: js/utils/musicutils.js:1114 +#: js/utils/synthutils.js:78 +#.TRANS: musical instrument +msgid "cello" +msgstr "" -#: js/SaveInterface.js:69 -msgid "The source code can be accessed at" -msgstr "ניתן לגשת לקוד המקור בכתובת" +#: js/utils/musicutils.js:1116 +#: js/utils/synthutils.js:82 +#.TRANS: viola musical instrument +msgid "double bass" +msgstr "" -#: js/SaveInterface.js:72 -msgid "For more information, please consult the" -msgstr "למידע נוסף נא להתייעץ" +#: js/utils/musicutils.js:1117 +#: js/utils/synthutils.js:84 +#: js/widgets/rhythmruler.js:2511 +#.TRANS: musical instrument +msgid "guitar" +msgstr "" -#: js/SaveInterface.js:83 -msgid "Alternatively, open the file in Music Blocks using the Load project button." -msgstr "לחלופין, פתח את הקובץ ב-Music Blocks באמצעות הלחצן Load project." +#: js/utils/musicutils.js:1118 +#: js/utils/synthutils.js:86 +#.TRANS: musical instrument +msgid "acoustic guitar" +msgstr "" -#: js/SaveInterface.js:85 -msgid "Project Code" -msgstr "קוד פרויקט" +#: js/utils/musicutils.js:1119 +#: js/utils/synthutils.js:88 +#.TRANS: musical instrument +msgid "flute" +msgstr "" -#: js/SaveInterface.js:87 -msgid "This code stores data about the blocks in a project." -msgstr "קוד זה מאחסן נתונים על הבלוקים בפרויקט." +#: js/utils/musicutils.js:1120 +#: js/utils/synthutils.js:90 +#.TRANS: musical instrument +msgid "clarinet" +msgstr "" -#: js/SaveInterface.js:89 -msgid "Show" -msgstr ""לְהַרְאוֹת +#: js/utils/musicutils.js:1121 +#: js/utils/synthutils.js:92 +#.TRANS: musical instrument +msgid "saxophone" +msgstr "" -#: js/SaveInterface.js:91 -msgid "Hide" -msgstr "להתחבא" +#: js/utils/musicutils.js:1122 +#: js/utils/synthutils.js:94 +#.TRANS: musical instrument +msgid "tuba" +msgstr "" -#: js/SaveInterface.js:197 -#: js/SaveInterface.js:58 -msgid "No description provided" -msgstr "לא סופק תיאור" +#: js/utils/musicutils.js:1123 +#: js/utils/synthutils.js:96 +#.TRANS: musical instrument +msgid "trumpet" +msgstr "" -#: js/SaveInterface.js:332 -msgid "Your recording is in progress." -msgstr "ההקלטה שלך בעיצומה." +#: js/utils/musicutils.js:1124 +#: js/utils/synthutils.js:98 +#.TRANS: musical instrument +msgid "oboe" +msgstr "" -#: js/SaveInterface.js:401 -#.TRANS: File name prompt for save as Lilypond -msgid "File name" -msgstr "שם קובץ" +#: js/utils/musicutils.js:1125 +#: js/utils/synthutils.js:100 +#.TRANS: musical instrument +msgid "trombone" +msgstr "" -#: js/SaveInterface.js:403 -#: js/StringHelper.js:39 -#.TRANS: Project title prompt for save as Lilypond -msgid "Project title" -msgstr "כותרת הפרויקט" +#: js/utils/musicutils.js:1126 +#: js/utils/synthutils.js:116 +#.TRANS: polytone synthesizer +msgid "electronic synth" +msgstr "" -#: js/SaveInterface.js:405 -#.TRANS: Project title prompt for save as Lilypond -msgid "Project author" -msgstr "מחבר הפרויקט" +#: js/utils/musicutils.js:1127 +#: js/utils/synthutils.js:118 +#.TRANS: simple monotone synthesizer +msgid "simple 1" +msgstr "" -#: js/SaveInterface.js:407 -#.TRANS: MIDI prompt for save as Lilypond -msgid "Include MIDI output?" -msgstr "כולל פלט MIDI" +#: js/utils/musicutils.js:1128 +msgid "simple 2" +msgstr "" -#: js/SaveInterface.js:409 -#.TRANS: Guitar prompt for save as Lilypond -msgid "Include guitar tablature output?" -msgstr "כלול פלט טבלטור גיטרה" +#: js/utils/musicutils.js:1129 +msgid "simple 3" +msgstr "" -#: js/SaveInterface.js:411 -#.TRANS: Lilypond is a scripting language for generating sheet music -msgid "Save as Lilypond" -msgstr "שמור בתור Lilypond" +#: js/utils/musicutils.js:1130 +msgid "simple 4" +msgstr "" -#: js/SaveInterface.js:426 -#: js/EnsembleBlocks.js:75 -#: js/EnsembleBlocks.js:154 -#: js/EnsembleBlocks.js:216 -#: js/EnsembleBlocks.js:302 -#: js/EnsembleBlocks.js:348 -#: js/EnsembleBlocks.js:389 -#: js/EnsembleBlocks.js:441 -#: js/EnsembleBlocks.js:490 -#: js/EnsembleBlocks.js:536 -#: js/EnsembleBlocks.js:583 -#: js/EnsembleBlocks.js:637 -#: js/EnsembleBlocks.js:753 -#: js/EnsembleBlocks.js:840 -#: js/EnsembleBlocks.js:899 -#: js/EnsembleBlocks.js:942 -#: js/EnsembleBlocks.js:1212 -#: js/EnsembleBlocks.js:1280 -#.TRANS: default project author when saving as Lilypond -msgid "Mr. Mouse" -msgstr "מר עכבר" +#: js/utils/musicutils.js:1131 +#: js/utils/synthutils.js:58 +#: js/blocks/DrumBlocks.js:191 +#.TRANS: white noise synthesizer +msgid "white noise" +msgstr "" -#: js/SaveInterface.js:573 -msgid "The Lilypond code is copied to clipboard. You can paste it here: " -msgstr "קוד Lilypond מועתק ללוח. אתה יכול להדביק אותו כאן:" +#: js/utils/musicutils.js:1132 +#: js/utils/synthutils.js:60 +#.TRANS: brown noise synthesizer +msgid "brown noise" +msgstr "" -#: js/RhythmBlockPaletteBlocks.js:50 -#: js/RhythmBlockPaletteBlocks.js:232 -#.TRANS: rhythm block -#.TRANS: translate "rhythm1" as rhythm -msgid "rhythm1" -msgstr "קֶצֶב" +#: js/utils/musicutils.js:1133 +#: js/utils/synthutils.js:62 +#.TRANS: pink noise synthesizer +msgid "pink noise" +msgstr "" -#: js/RhythmBlockPaletteBlocks.js:70 -#: js/RhythmBlockPaletteBlocks.js:251 -#: js/RhythmBlockPaletteBlocks.js:484 -#: js/RhythmBlockPaletteBlocks.js:553 -#: js/RhythmBlockPaletteBlocks.js:874 -msgid "number of notes" -msgstr "מספר הערות" +#: js/utils/musicutils.js:1135 +#: js/utils/synthutils.js:148 +#: js/widgets/rhythmruler.js:2057 +#: js/widgets/rhythmruler.js:2319 +#.TRANS: musical instrument +msgid "snare drum" +msgstr "" -#: js/RhythmBlockPaletteBlocks.js:126 -msgid "polyphonic rhythm" -msgstr "קצב פוליפוני" +#: js/utils/musicutils.js:1136 +#: js/utils/synthutils.js:150 +#.TRANS: musical instrument +msgid "kick drum" +msgstr "" -#: js/RhythmBlockPaletteBlocks.js:218 -msgid "The Rhythm block is used to generate rhythm patterns." -msgstr "בלוק הקצב משמש ליצירת דפוסי קצב." +#: js/utils/musicutils.js:1137 +#: js/utils/synthutils.js:152 +#.TRANS: musical instrument +msgid "tom tom" +msgstr "" -#: js/RhythmBlockPaletteBlocks.js:279 -msgid "1/64 note" -msgstr "הערה 1/64" +#: js/utils/musicutils.js:1138 +#: js/utils/synthutils.js:154 +#.TRANS: musical instrument +msgid "floor tom" +msgstr "" -#: js/RhythmBlockPaletteBlocks.js:303 -msgid "1/32 note" -msgstr "הערה 1/32" +#: js/utils/musicutils.js:1139 +#: js/utils/synthutils.js:156 +#.TRANS: musical instrument +msgid "bass drum" +msgstr "" -#: js/RhythmBlockPaletteBlocks.js:331 -msgid "1/16 note" -msgstr "הערה 1/16" +#: js/utils/musicutils.js:1140 +#: js/utils/synthutils.js:158 +#.TRANS: a drum made from an inverted cup +msgid "cup drum" +msgstr "" -#: js/RhythmBlockPaletteBlocks.js:359 -msgid "eighth note" -msgstr "הערה 1/8" +#: js/utils/musicutils.js:1141 +#: js/utils/synthutils.js:160 +#.TRANS: musical instrument +msgid "darbuka drum" +msgstr "" -#: js/RhythmBlockPaletteBlocks.js:387 -msgid "quarter note" -msgstr "הערה 1/4" +#: js/utils/musicutils.js:1142 +#: js/utils/synthutils.js:164 +#.TRANS: musical instrument +msgid "hi hat" +msgstr "" -#: js/RhythmBlockPaletteBlocks.js:415 -msgid "half note" -msgstr "הערה 1/2" +#: js/utils/musicutils.js:1143 +#: js/utils/synthutils.js:166 +#.TRANS: a small metal bell +msgid "ride bell" +msgstr "" -#: js/RhythmBlockPaletteBlocks.js:443 -msgid "whole note" -msgstr "פתק שלם" +#: js/utils/musicutils.js:1144 +#: js/utils/synthutils.js:168 +#.TRANS: musical instrument +msgid "cow bell" +msgstr "" -#: js/RhythmBlockPaletteBlocks.js:481 -#: js/RhythmBlockPaletteBlocks.js:550 -#: js/RhythmBlockPaletteBlocks.js:601 -#.TRANS: A tuplet is a note value divided into irregular time values. -msgid "tuplet" -msgstr "טופלת" +#: js/utils/musicutils.js:1145 +msgid "japanese drum" +msgstr "" -#: js/RhythmBlockPaletteBlocks.js:767 -msgid "septuplet" +#: js/utils/musicutils.js:1146 +#: js/utils/synthutils.js:174 +#.TRANS: musical instrument +msgid "japanese bell" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:795 -msgid "quintuplet" +#: js/utils/musicutils.js:1147 +#: js/utils/synthutils.js:170 +#.TRANS: musical instrument +msgid "triangle bell" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:823 -msgid "triplet" -msgstr "שְׁלִישִׁיָה" +#: js/utils/musicutils.js:1148 +#: js/utils/synthutils.js:172 +#.TRANS: musical instrument +msgid "finger cymbals" +msgstr "" -#: js/RhythmBlockPaletteBlocks.js:850 -msgid "simple tuplet" +#: js/utils/musicutils.js:1149 +#: js/utils/synthutils.js:176 +#.TRANS: a musically tuned set of bells +msgid "chime" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:860 -msgid "Tuplets are a collection of notes that get scaled to a specific duration." -msgstr "Tuplets הם אוסף של הערות המותאמות לזמן מסוים." +#: js/utils/musicutils.js:1150 +#: js/utils/synthutils.js:178 +#.TRANS: a musical instrument +msgid "gong" +msgstr "" -#: js/WidgetBlocks.js:71 -#.TRANS: sound envelope (ADSR) -msgid "envelope" -msgstr "מעטפת קול" +#: js/utils/musicutils.js:1151 +#: js/utils/synthutils.js:180 +#.TRANS: sound effect +msgid "clang" +msgstr "" -#: js/WidgetBlocks.js:79 -#.TRANS: Attack time is the time taken for initial run-up of level from nil to peak, beginning when the key is first pressed. -msgid "attack" -msgstr "הַתקָפָה" +#: js/utils/musicutils.js:1152 +#: js/utils/synthutils.js:182 +#.TRANS: sound effect +msgid "crash" +msgstr "" -#: js/WidgetBlocks.js:81 -#.TRANS: Decay time is the time taken for the subsequent run down from the attack level to the designated sustain level. -msgid "decay" -msgstr "בְּלִי" +#: js/utils/musicutils.js:1153 +#: js/utils/synthutils.js:184 +#.TRANS: sound effect +msgid "bottle" +msgstr "" -#: js/WidgetBlocks.js:83 -#.TRANS: Sustain level is the level during the main sequence of the sound's duration, until the key is released. -msgid "sustain" -msgstr "לָשֵׂאת" +#: js/utils/musicutils.js:1154 +#: js/utils/synthutils.js:186 +#.TRANS: sound effect +msgid "clap" +msgstr "" -#: js/WidgetBlocks.js:85 -#.TRANS: Release time is the time taken for the level to decay from the sustain level to zero after the key is released. -msgid "release" -msgstr "לְשַׁחְרֵר" +#: js/utils/musicutils.js:1155 +#: js/utils/synthutils.js:188 +#.TRANS: sound effect +msgid "slap" +msgstr "" -#: js/WidgetBlocks.js:96 -msgid "Attack value should be from 0 to 100." +#: js/utils/musicutils.js:1156 +#: js/utils/synthutils.js:190 +#.TRANS: sound effect +msgid "splash" msgstr "" -#: js/WidgetBlocks.js:99 -msgid "Decay value should be from 0 to 100." +#: js/utils/musicutils.js:1157 +#: js/utils/synthutils.js:192 +#.TRANS: sound effect +msgid "bubbles" msgstr "" -#: js/WidgetBlocks.js:102 -msgid "Sustain value should be from 0 to 100." +#: js/utils/musicutils.js:1158 +#: js/utils/synthutils.js:194 +#.TRANS: sound effect +msgid "raindrop" msgstr "" -#: js/WidgetBlocks.js:105 -msgid "Release value should be from 0-100." +#: js/utils/musicutils.js:1159 +#: js/utils/synthutils.js:196 +#.TRANS: animal sound effect +msgid "cat" msgstr "" -#: js/WidgetBlocks.js:121 -msgid "You are adding multiple envelope blocks." +#: js/utils/musicutils.js:1160 +#: js/utils/synthutils.js:198 +#.TRANS: animal sound effect +msgid "cricket" msgstr "" -#: js/WidgetBlocks.js:144 -#.TRANS: a filter removes some unwanted components from a signal -msgid "filter" -msgstr "לְסַנֵן" +#: js/utils/musicutils.js:1161 +#: js/utils/synthutils.js:200 +#.TRANS: animal sound effect +msgid "dog" +msgstr "" -#: js/WidgetBlocks.js:149 -#: js/musicutils.js:706 -#: js/musicutils.js:1105 -#.TRANS: highpass filter -msgid "highpass" +#: js/utils/musicutils.js:1163 +#: js/utils/synthutils.js:102 +#.TRANS: musical instrument +msgid "banjo" msgstr "" -#: js/WidgetBlocks.js:152 -#: js/ToneBlocks.js:42 -#: js/timbre.js:1558 -#: js/timbre.js:1808 -#.TRANS: type of filter, e.g., lowpass, highpass, etc. -#.TRANS: there are different types (sine, triangle, square...) of oscillators. -msgid "type" +#: js/utils/musicutils.js:1164 +#: js/utils/synthutils.js:104 +#.TRANS: musical instrument +msgid "koto" msgstr "" -#: js/WidgetBlocks.js:154 -#: js/timbre.js:1818 -#.TRANS: rolloff is the steepness of a change in frequency. -msgid "rolloff" +#: js/utils/musicutils.js:1165 +#: js/utils/synthutils.js:106 +#.TRANS: musical instrument +msgid "dulcimer" msgstr "" -#: js/WidgetBlocks.js:155 -#: js/MediaBlocks.js:692 -#: js/temperament.js:382 -#: js/temperament.js:417 -#: js/temperament.js:477 -#: js/temperament.js:485 -#: js/temperament.js:1348 -#: js/timbre.js:1842 -msgid "frequency" +#: js/utils/musicutils.js:1166 +#: js/utils/synthutils.js:108 +#.TRANS: musical instrument +msgid "electric guitar" msgstr "" -#: js/WidgetBlocks.js:179 -#.TRANS: rolloff is the steepness of a change in frequency. -msgid "Rolloff value should be either -12, -24, -48, or -96 decibels/octave." +#: js/utils/musicutils.js:1167 +#: js/utils/synthutils.js:110 +#.TRANS: musical instrument +msgid "bassoon" msgstr "" -#: js/WidgetBlocks.js:211 -msgid "The Temperament tool is used to define custom tuning." +#: js/utils/musicutils.js:1168 +#: js/utils/synthutils.js:112 +#.TRANS: musical instrument +msgid "celeste" msgstr "" -#: js/WidgetBlocks.js:277 -#: js/sampler.js:329 -msgid "Upload a sample and adjust its pitch center." +#: js/utils/musicutils.js:1170 +#: js/widgets/temperament.js:787 +#.TRANS: musical temperament +msgid "equal" msgstr "" -#: js/WidgetBlocks.js:284 -#.TRANS: the speed at music is should be played. -msgid "sampler" +#: js/utils/musicutils.js:1172 +#.TRANS: musical temperament +msgid "Pythagorean" msgstr "" -#: js/WidgetBlocks.js:329 -#: js/WidgetBlocks.js:334 -#: js/IntervalsBlocks.js:928 -#: js/VolumeBlocks.js:411 -#: js/ToneBlocks.js:946 -#: js/VolumeActions.js:218 -#: js/musicutils.js:704 -#: js/musicutils.js:755 -#: js/musicutils.js:798 -#: js/musicutils.js:820 -#: js/musicutils.js:1136 -#: js/synthutils.js:118 -#: js/modewidget.js:919 -#.TRANS: customize voice -msgid "custom" +#: js/utils/musicutils.js:1174 +#.TRANS: musical temperament +msgid "just intonation" msgstr "" -#: js/WidgetBlocks.js:432 -msgid "The Meter block opens a tool to select strong beats for the meter." +#: js/utils/musicutils.js:1176 +#.TRANS: musical temperament +msgid "meantone" msgstr "" -#: js/WidgetBlocks.js:473 -msgid "The oscilloscope block opens a tool to visualize waveforms." +#: js/utils/musicutils.js:1193 +msgid "major 7th" msgstr "" -#: js/WidgetBlocks.js:478 -msgid "oscilloscope" -msgstr "אוֹסְצִילוֹסקוּפּ" +#: js/utils/musicutils.js:1194 +msgid "minor 7th" +msgstr "" -#: js/WidgetBlocks.js:530 -msgid "The Custom mode block opens a tool to explore musical mode (the spacing of the notes in a scale)." +#: js/utils/musicutils.js:1195 +msgid "dominant 7th" msgstr "" -#: js/WidgetBlocks.js:536 -#.TRANS: musical mode is the pattern of half-steps in an octave, e.g., Major or Minor modes -msgid "custom mode" -msgstr "מצב מותאם אישית" +#: js/utils/musicutils.js:1196 +msgid "minor-major 7th" +msgstr "" -#: js/WidgetBlocks.js:570 -msgid "The Tempo block opens a metronome to visualize the beat." +#: js/utils/musicutils.js:1197 +msgid "fully-diminished 7th" msgstr "" -#: js/WidgetBlocks.js:617 -msgid "The Arpeggio Widget is used to compose chord sequences." +#: js/utils/musicutils.js:1198 +msgid "half-diminished 7th" msgstr "" -#: js/WidgetBlocks.js:623 -#: js/IntervalsBlocks.js:683 -msgid "arpeggio" -msgstr "ארפג'יו" +#: js/utils/musicutils.js:1557 +#: js/utils/musicutils.js:1569 +msgid "Equal (12EDO)" +msgstr "" -#: js/WidgetBlocks.js:677 -msgid "The Pitch drum matrix is used to map pitches to drum sounds." +#: js/utils/musicutils.js:1558 +#: js/utils/musicutils.js:1570 +msgid "5-limit Just Intonation" msgstr "" -#: js/WidgetBlocks.js:682 -#.TRANS: makes a mapping between pitches and drum sounds -msgid "pitch-drum mapper" -msgstr "ממפה גובה-תוף" +#: js/utils/musicutils.js:1559 +#: js/utils/musicutils.js:1571 +msgid "Pythagorean (3-limit JI)" +msgstr "" -#: js/WidgetBlocks.js:724 -msgid "You must have at least one pitch block and one drum block in the matrix." +#: js/utils/musicutils.js:1560 +#: js/utils/musicutils.js:1561 +#: js/utils/musicutils.js:1572 +#: js/utils/musicutils.js:1573 +msgid "Meantone" msgstr "" -#: js/WidgetBlocks.js:746 -msgid "The Pitch slider tool to is used to generate pitches at selected frequencies." +#: js/utils/musicutils.js:1574 +msgid "Custom" msgstr "" -#: js/WidgetBlocks.js:751 -#.TRANS: widget to generate pitches using a slider -msgid "pitch slider" -msgstr "מחוון הגובה" +#: js/utils/musicutils.js:5387 +#: js/utils/musicutils.js:5430 +msgid "current" +msgstr "" -#: js/WidgetBlocks.js:788 -msgid "chromatic keyboard" -msgstr "מקלדת כרומטית" +#: js/utils/musicutils.js:5390 +#: js/utils/musicutils.js:5421 +msgid "next" +msgstr "" -#: js/WidgetBlocks.js:815 -#: js/WidgetBlocks.js:874 -#.TRANS: widget to generate pitches using a slider -msgid "music keyboard" -msgstr "מקלדת כרומטית" +#: js/utils/musicutils.js:5393 +#: js/utils/musicutils.js:5426 +msgid "previous" +msgstr "" -#: js/WidgetBlocks.js:859 -#: js/WidgetBlocks.js:866 -msgid "The Music keyboard block opens a piano keyboard that can be used to create notes." +#: js/utils/synthutils.js:120 +#.TRANS: simple monotone synthesizer +msgid "simple-2" msgstr "" -#: js/WidgetBlocks.js:910 -msgid "The Pitch staircase tool to is used to generate pitches from a given ratio." +#: js/utils/synthutils.js:122 +#.TRANS: simple monotone synthesizer +msgid "simple-3" msgstr "" -#: js/WidgetBlocks.js:917 -#.TRANS: generate a progressive sequence of pitches -msgid "pitch staircase" -msgstr "גרם מדרגות במגרש" +#: js/utils/synthutils.js:124 +#.TRANS: simple monotone synthesizer +msgid "simple-4" +msgstr "" -#: js/WidgetBlocks.js:982 -msgid "The Rhythm Maker block opens a tool to create drum machines." +#: js/utils/synthutils.js:162 +#.TRANS: musical instrument +msgid "taiko" msgstr "" -#: js/WidgetBlocks.js:1036 -msgid "G major scale" -msgstr "סולם ז' מז'ור" +#: js/blocks/ActionBlocks.js:58 +msgid "The Return block will return a value from an action." +msgstr "" -#: js/WidgetBlocks.js:1064 -msgid "C major scale" -msgstr "סולם ג מז'ור" +#: js/blocks/ActionBlocks.js:75 +msgid "return" +msgstr "" -#: js/WidgetBlocks.js:1097 -msgid "The Phrase Maker block opens a tool to create musical phrases." +#: js/blocks/ActionBlocks.js:128 +msgid "The Return to URL block will return a value to a webpage." msgstr "" -#: js/WidgetBlocks.js:1104 -#.TRANS: assigns pitch to a sequence of beats to generate a melody -msgid "phrase maker" -msgstr "יצרן ביטויים" +#: js/blocks/ActionBlocks.js:145 +msgid "return to URL" +msgstr "" -#: js/WidgetBlocks.js:1168 -msgid "You must have at least one pitch block and one rhythm block in the matrix." +#: js/blocks/ActionBlocks.js:233 +#: js/blocks/ActionBlocks.js:290 +#: js/blocks/ActionBlocks.js:501 +#: js/blocks/ActionBlocks.js:688 +msgid "The Calculate block returns a value calculated by an action." msgstr "" -#: js/WidgetBlocks.js:1220 -msgid "The Status block opens a tool for inspecting the status of Music Blocks as it is running." +#: js/blocks/ActionBlocks.js:251 +#: js/blocks/ActionBlocks.js:517 +#: js/blocks/ActionBlocks.js:707 +msgid "calculate" +msgstr "לְחַשֵׁב" + +#: js/blocks/ActionBlocks.js:376 +#: js/blocks/ActionBlocks.js:593 +#: js/blocks/ActionBlocks.js:942 +#: js/blocks/ActionBlocks.js:1389 +#.TRANS: do is the do something or take an action. +msgid "The Do block is used to initiate an action." msgstr "" -#: js/IntervalsBlocks.js:45 -msgid "set temperament" -msgstr "להגדיר מזג" +#: js/blocks/ActionBlocks.js:390 +#: js/blocks/ActionBlocks.js:610 +#: js/blocks/ActionBlocks.js:959 +#: js/blocks/ActionBlocks.js:1048 +#: js/blocks/MeterBlocks.js:769 +msgid "do1" +msgstr "בצע" -#: js/IntervalsBlocks.js:63 -#: js/MediaBlocks.js:746 -#: js/PitchBlocks.js:657 -#: js/PitchBlocks.js:933 -#: js/PitchBlocks.js:972 -#: js/PitchBlocks.js:1005 -#: js/PitchBlocks.js:1166 -#: js/PitchBlocks.js:1679 -#: js/PitchBlocks.js:1720 -#: js/PitchBlocks.js:1827 -#: js/ToneBlocks.js:1025 -#.TRANS: adjusts the shift up or down by one octave (twelve half-steps in the interval between two notes, one having twice or half the frequency in Hz of the other.) -msgid "octave" -msgstr "אוֹקְטָבָה" +#: js/blocks/ActionBlocks.js:390 +#: js/blocks/ActionBlocks.js:610 +#: js/blocks/ActionBlocks.js:959 +#: js/blocks/ActionBlocks.js:1048 +#: js/blocks/FlowBlocks.js:742 +#: js/blocks/FlowBlocks.js:822 +#: js/blocks/MeterBlocks.js:769 +msgid "do" +msgstr "בצע" -#: js/IntervalsBlocks.js:99 -msgid "The Temperament name block is used to select a tuning method." +#: js/blocks/ActionBlocks.js:791 +#: js/blocks/ActionBlocks.js:865 +msgid "The Arg block contains the value of an argument passed to an action." msgstr "" -#: js/IntervalsBlocks.js:161 -msgid "doubly" +#: js/blocks/ActionBlocks.js:806 +#: js/blocks/ActionBlocks.js:878 +msgid "arg" msgstr "" -#: js/IntervalsBlocks.js:166 -msgid "The Doubly block will double the size of an interval." +#: js/blocks/ActionBlocks.js:836 +#: js/blocks/ActionBlocks.js:900 +#: js/blocks/ActionBlocks.js:908 +msgid "Invalid argument" msgstr "" -#: js/IntervalsBlocks.js:262 -msgid "interval number" -msgstr "מספר מרווח" - -#: js/IntervalsBlocks.js:330 -#.TRANS: measure the distance between two pitches in semi-tones -msgid "semi-tone interval measure" -msgstr "מדידת מרווח חצי טון" +#: js/blocks/ActionBlocks.js:944 +msgid "In the example, it is used with the One of block to choose a random phase." +msgstr "" -#: js/IntervalsBlocks.js:397 -#: js/IntervalsBlocks.js:513 -msgid "You must use two pitch blocks when measuring an interval." +#: js/blocks/ActionBlocks.js:1019 +#: js/blocks/ActionBlocks.js:1026 +msgid "The Listen block is used to listen for an event such as a mouse click." msgstr "" -#: js/IntervalsBlocks.js:439 -msgid "The Scalar interval block measures the distance between two notes in the current key and mode." +#: js/blocks/ActionBlocks.js:1028 +msgid "When the event happens, an action is taken." msgstr "" -#: js/IntervalsBlocks.js:445 -#.TRANS: measure the distance between two pitches in steps of musical scale -msgid "scalar interval measure" +#: js/blocks/ActionBlocks.js:1045 +msgid "on" msgstr "" -#: js/IntervalsBlocks.js:592 -#: js/musicutils.js:637 -#: js/musicutils.js:908 -#.TRANS: perfect is a music term related to intervals -msgid "perfect" +#: js/blocks/ActionBlocks.js:1048 +#: js/blocks/ActionBlocks.js:1049 +#: js/blocks/ActionBlocks.js:1153 +msgid "event" msgstr "" -#: js/IntervalsBlocks.js:621 -msgid "In the figure, we add sol# to sol." +#: js/blocks/ActionBlocks.js:1133 +msgid "The Broadcast block is used to trigger an event." msgstr "" -#: js/IntervalsBlocks.js:627 -#: js/OrnamentBlocks.js:220 -#.TRANS: calculate a relative step between notes based on semi-tones -msgid "semi-tone interval" -msgstr "מרווח חצי טון" +#: js/blocks/ActionBlocks.js:1151 +msgid "broadcast" +msgstr "לשדר" -#: js/IntervalsBlocks.js:676 -msgid "The output of the example is: do, mi, sol, sol, ti, mi" +#: js/blocks/ActionBlocks.js:1208 +msgid "Each Start block is a separate voice." msgstr "" -#: js/IntervalsBlocks.js:735 -msgid "The Chord block calculates common chords." +#: js/blocks/ActionBlocks.js:1304 +msgid "It is often used for storing a phrase of music that is repeated." msgstr "" -#: js/IntervalsBlocks.js:737 -msgid "In the figure, we generate a C-major chord." -msgstr "" +#: js/blocks/ActionBlocks.js:1495 +msgid "define temperament" +msgstr "להגדיר מזג" -#: js/IntervalsBlocks.js:742 -msgid "chord" +#: js/blocks/BooleanBlocks.js:44 +msgid "The Not block is the logical not operator." msgstr "" -#: js/IntervalsBlocks.js:794 -msgid "The Ratio Interval block calculates an interval based on a ratio." +#: js/blocks/BooleanBlocks.js:62 +msgid "not" +msgstr "לא" + +#: js/blocks/BooleanBlocks.js:134 +msgid "The And block is the logical and operator." msgstr "" -#: js/IntervalsBlocks.js:799 -msgid "ratio interval" -msgstr "מרווח יחס" +#: js/blocks/BooleanBlocks.js:152 +msgid "and" +msgstr "וגם" -#: js/IntervalsBlocks.js:868 -msgid "In the figure, we add la to sol." +#: js/blocks/BooleanBlocks.js:218 +msgid "The Or block is the logical or operator." msgstr "" -#: js/IntervalsBlocks.js:924 -#.TRANS: define a custom mode -msgid "define mode" -msgstr "להגדיר מצב" - -#: js/IntervalsBlocks.js:977 -msgid "movable Do" -msgstr "DO מטלטלין" +#: js/blocks/BooleanBlocks.js:236 +msgid "or" +msgstr "או" -#: js/IntervalsBlocks.js:1028 -#.TRANS: mode length is the number of notes in the mode, e.g., 7 for major and minor scales; 12 for chromatic scales -msgid "mode length" -msgstr "אורך מצב" +#: js/blocks/BooleanBlocks.js:302 +msgid "The XOR block is the logical XOR operator." +msgstr "" -#: js/IntervalsBlocks.js:1037 -msgid "The Mode length block is the number of notes in the current scale." +#: js/blocks/BooleanBlocks.js:320 +msgid "xor" msgstr "" -#: js/IntervalsBlocks.js:1039 -msgid "Most Western scales have 7 notes." +#: js/blocks/BooleanBlocks.js:808 +msgid "The Equal block returns True if the two numbers are equal." msgstr "" -#: js/IntervalsBlocks.js:1088 -#.TRANS: the mode in music is 'major', 'minor', etc. -msgid "current mode" -msgstr "מצב נוכחי" +#: js/blocks/BooleanBlocks.js:909 +msgid "The Not-equal-to block returns True if the two numbers are not equal to each other." +msgstr "" -#: js/IntervalsBlocks.js:1141 -#.TRANS: the key is a group of pitches with which a music composition is created -msgid "current key" +#: js/blocks/BooleanBlocks.js:1008 +msgid "The Boolean block is used to specify true or false." msgstr "" -#: js/IntervalsBlocks.js:1193 -#: js/IntervalsBlocks.js:1238 -#.TRANS: set the key and mode, e.g. C Major -msgid "set key" +#: js/blocks/BoxesBlocks.js:53 +#: js/blocks/BoxesBlocks.js:59 +msgid "The Add-to block is used to add to the value stored in a box." msgstr "" -#: js/IntervalsBlocks.js:1247 -#: js/IntervalsBlocks.js:1253 -msgid "The Set key block is used to set the key and mode," +#: js/blocks/BoxesBlocks.js:61 +msgid "It can also be used with other blocks such as Color and Pen size." msgstr "" -#: js/IntervalsBlocks.js:1253 -msgid "eg C Major" +#: js/blocks/BoxesBlocks.js:73 +msgid "add" +msgstr "הוסף" + +#: js/blocks/BoxesBlocks.js:75 +#: js/widgets/temperament.js:857 +msgid "to" +msgstr "אל" + +#: js/blocks/BoxesBlocks.js:75 +#: js/blocks/BoxesBlocks.js:595 +#: js/blocks/HeapBlocks.js:544 +msgid "value1" msgstr "" -#: js/IntervalsBlocks.js:1266 -#: js/DictBlocks.js:215 -#: js/DictBlocks.js:216 -#: js/DictBlocks.js:289 -#: js/DictBlocks.js:290 -#: js/DictBlocks.js:357 -#: js/DictBlocks.js:430 -#: js/DictBlocks.js:431 -#.TRANS: key, e.g., C in C Major -msgid "key" +#: js/blocks/BoxesBlocks.js:118 +msgid "Block does not support incrementing." msgstr "" -#: js/ActionBlocks.js:58 -msgid "The Return block will return a value from an action." +#: js/blocks/BoxesBlocks.js:152 +msgid "The Add-1-to block adds one to the value stored in a box." msgstr "" -#: js/ActionBlocks.js:75 -msgid "return" +#: js/blocks/BoxesBlocks.js:163 +msgid "add 1 to" +msgstr "הוסף 1 ל" + +#: js/blocks/BoxesBlocks.js:211 +msgid "The Subtract-1-from block subtracts one from the value stored in a box." msgstr "" -#: js/ActionBlocks.js:128 -msgid "The Return to URL block will return a value to a webpage." +#: js/blocks/BoxesBlocks.js:222 +msgid "subtract 1 from" msgstr "" -#: js/ActionBlocks.js:145 -msgid "return to URL" +#: js/blocks/BoxesBlocks.js:270 +#: js/blocks/BoxesBlocks.js:387 +msgid "The Box block returns the value stored in a box." msgstr "" -#: js/ActionBlocks.js:233 -#: js/ActionBlocks.js:290 -#: js/ActionBlocks.js:501 -#: js/ActionBlocks.js:688 -msgid "The Calculate block returns a value calculated by an action." +#: js/blocks/BoxesBlocks.js:500 +#: js/blocks/BoxesBlocks.js:576 +msgid "The Store in block will store a value in a box." msgstr "" -#: js/ActionBlocks.js:251 -#: js/ActionBlocks.js:517 -#: js/ActionBlocks.js:707 -msgid "calculate" -msgstr "לְחַשֵׁב" +#: js/blocks/BoxesBlocks.js:595 +#: js/blocks/EnsembleBlocks.js:391 +#: js/blocks/EnsembleBlocks.js:402 +msgid "name1" +msgstr "כִּנוּי" -#: js/ActionBlocks.js:376 -#: js/ActionBlocks.js:593 -#: js/ActionBlocks.js:942 -#: js/ActionBlocks.js:1389 -#.TRANS: do is the do something or take an action. -msgid "The Do block is used to initiate an action." +#: js/blocks/BoxesBlocks.js:652 +msgid "The Box2 block returns the value stored in Box2." msgstr "" -#: js/ActionBlocks.js:390 -#: js/ActionBlocks.js:610 -#: js/ActionBlocks.js:959 -#: js/ActionBlocks.js:1048 -#: js/MeterBlocks.js:769 -msgid "do1" -msgstr "בצע" +#: js/blocks/BoxesBlocks.js:703 +msgid "The Store in Box2 block is used to store a value in Box2." +msgstr "" -#: js/ActionBlocks.js:390 -#: js/ActionBlocks.js:610 -#: js/ActionBlocks.js:959 -#: js/ActionBlocks.js:1048 -#: js/FlowBlocks.js:742 -#: js/FlowBlocks.js:822 -#: js/MeterBlocks.js:769 -msgid "do" -msgstr "בצע" +#: js/blocks/BoxesBlocks.js:715 +msgid "store in box2" +msgstr "" -#: js/ActionBlocks.js:791 -#: js/ActionBlocks.js:865 -msgid "The Arg block contains the value of an argument passed to an action." +#: js/blocks/BoxesBlocks.js:761 +msgid "The Box1 block returns the value stored in Box1." msgstr "" -#: js/ActionBlocks.js:806 -#: js/ActionBlocks.js:878 -msgid "arg" +#: js/blocks/BoxesBlocks.js:812 +msgid "The Store in Box1 block is used to store a value in Box1." msgstr "" -#: js/ActionBlocks.js:836 -#: js/ActionBlocks.js:900 -#: js/ActionBlocks.js:908 -msgid "Invalid argument" +#: js/blocks/BoxesBlocks.js:826 +msgid "store in box1" msgstr "" -#: js/ActionBlocks.js:944 -msgid "In the example, it is used with the One of block to choose a random phase." +#: js/blocks/DictBlocks.js:77 +msgid "show dictionary" msgstr "" -#: js/ActionBlocks.js:1019 -#: js/ActionBlocks.js:1026 -msgid "The Listen block is used to listen for an event such as a mouse click." +#: js/blocks/DictBlocks.js:80 +#: js/blocks/DictBlocks.js:145 +#: js/blocks/DictBlocks.js:216 +#: js/blocks/DictBlocks.js:290 +#: js/blocks/ProgramBlocks.js:396 +#: js/blocks/ProgramBlocks.js:501 +#: js/blocks/ProgramBlocks.js:664 +msgid "My Dictionary" msgstr "" -#: js/ActionBlocks.js:1028 -msgid "When the event happens, an action is taken." +#: js/blocks/DictBlocks.js:129 +msgid "The Dictionary block returns a dictionary." msgstr "" -#: js/ActionBlocks.js:1045 -msgid "on" +#: js/blocks/DictBlocks.js:197 +#: js/blocks/DictBlocks.js:339 +msgid "The Get-dict block returns a value in the dictionary for a specified key." msgstr "" -#: js/ActionBlocks.js:1048 -#: js/ActionBlocks.js:1049 -#: js/ActionBlocks.js:1153 -msgid "event" +#: js/blocks/DictBlocks.js:212 +#: js/blocks/DictBlocks.js:354 +#.TRANS: retrieve a value from the dictionary with a given key +msgid "get value" msgstr "" -#: js/ActionBlocks.js:1133 -msgid "The Broadcast block is used to trigger an event." +#: js/blocks/DictBlocks.js:215 +#: js/blocks/DictBlocks.js:216 +#: js/blocks/DictBlocks.js:289 +#: js/blocks/DictBlocks.js:290 +#: js/blocks/DictBlocks.js:357 +#: js/blocks/DictBlocks.js:430 +#: js/blocks/DictBlocks.js:431 +msgid "key2" msgstr "" -#: js/ActionBlocks.js:1151 -msgid "broadcast" -msgstr "לשדר" - -#: js/ActionBlocks.js:1208 -msgid "Each Start block is a separate voice." +#: js/blocks/DictBlocks.js:215 +#: js/blocks/DictBlocks.js:216 +#: js/blocks/DictBlocks.js:289 +#: js/blocks/DictBlocks.js:290 +#: js/blocks/DictBlocks.js:357 +#: js/blocks/DictBlocks.js:430 +#: js/blocks/DictBlocks.js:431 +#: js/blocks/IntervalsBlocks.js:1462 +#.TRANS: key, e.g., C in C Major +msgid "key" msgstr "" -#: js/ActionBlocks.js:1304 -msgid "It is often used for storing a phrase of music that is repeated." +#: js/blocks/DictBlocks.js:271 +#: js/blocks/DictBlocks.js:411 +msgid "The Set-dict block sets a value in the dictionary for a specified key." msgstr "" -#: js/ActionBlocks.js:1495 -msgid "define temperament" -msgstr "להגדיר מזג" +#: js/blocks/DictBlocks.js:286 +#: js/blocks/DictBlocks.js:427 +#.TRANS: set a value in the dictionary for a given key +msgid "set value" +msgstr "" -#: js/EnsembleBlocks.js:66 +#: js/blocks/EnsembleBlocks.js:66 msgid "mouse index heap" msgstr "" -#: js/EnsembleBlocks.js:68 +#: js/blocks/EnsembleBlocks.js:68 msgid "The Mouse index heap block returns a value in the heap at a specified location for a specified mouse." msgstr "" -#: js/EnsembleBlocks.js:77 -#: js/EnsembleBlocks.js:1080 +#: js/blocks/EnsembleBlocks.js:77 +#: js/blocks/EnsembleBlocks.js:1080 msgid "mouse name" msgstr "שם העכבר" -#: js/EnsembleBlocks.js:77 -#: js/EnsembleBlocks.js:92 -#: js/HeapBlocks.js:544 +#: js/blocks/EnsembleBlocks.js:77 +#: js/blocks/EnsembleBlocks.js:92 +#: js/blocks/HeapBlocks.js:544 #.TRANS: value1 is a numeric value (JAPANESE ONLY) msgid "index" msgstr "" -#: js/EnsembleBlocks.js:80 +#: js/blocks/EnsembleBlocks.js:80 msgid "turtle index heap" msgstr "" -#: js/EnsembleBlocks.js:82 +#: js/blocks/EnsembleBlocks.js:82 msgid "The Turtle index heap block returns a value in the heap at a specified location for a specified turtle." msgstr "" -#: js/EnsembleBlocks.js:90 -#: js/EnsembleBlocks.js:167 -#: js/EnsembleBlocks.js:230 -#: js/EnsembleBlocks.js:316 -#: js/EnsembleBlocks.js:362 -#: js/EnsembleBlocks.js:400 -#: js/EnsembleBlocks.js:454 -#: js/EnsembleBlocks.js:504 -#: js/EnsembleBlocks.js:550 -#: js/EnsembleBlocks.js:597 -#: js/EnsembleBlocks.js:651 -#: js/EnsembleBlocks.js:763 -#: js/EnsembleBlocks.js:854 -#: js/EnsembleBlocks.js:915 -#: js/EnsembleBlocks.js:955 -#: js/EnsembleBlocks.js:1219 -#: js/EnsembleBlocks.js:1293 +#: js/blocks/EnsembleBlocks.js:90 +#: js/blocks/EnsembleBlocks.js:167 +#: js/blocks/EnsembleBlocks.js:230 +#: js/blocks/EnsembleBlocks.js:316 +#: js/blocks/EnsembleBlocks.js:362 +#: js/blocks/EnsembleBlocks.js:400 +#: js/blocks/EnsembleBlocks.js:454 +#: js/blocks/EnsembleBlocks.js:504 +#: js/blocks/EnsembleBlocks.js:550 +#: js/blocks/EnsembleBlocks.js:597 +#: js/blocks/EnsembleBlocks.js:651 +#: js/blocks/EnsembleBlocks.js:763 +#: js/blocks/EnsembleBlocks.js:854 +#: js/blocks/EnsembleBlocks.js:915 +#: js/blocks/EnsembleBlocks.js:955 +#: js/blocks/EnsembleBlocks.js:1219 +#: js/blocks/EnsembleBlocks.js:1293 #.TRANS: Yertle is the name of a turtle. msgid "Yertle" msgstr "" -#: js/EnsembleBlocks.js:92 -#: js/EnsembleBlocks.js:1089 +#: js/blocks/EnsembleBlocks.js:92 +#: js/blocks/EnsembleBlocks.js:1089 msgid "turtle name" msgstr "שם צב" -#: js/EnsembleBlocks.js:122 -#: js/EnsembleBlocks.js:1197 -#: js/HeapBlocks.js:474 -#: js/HeapBlocks.js:572 +#: js/blocks/EnsembleBlocks.js:122 +#: js/blocks/EnsembleBlocks.js:1197 +#: js/blocks/HeapBlocks.js:474 +#: js/blocks/HeapBlocks.js:572 msgid "Index must be > 0." msgstr "" -#: js/EnsembleBlocks.js:127 -#: js/HeapBlocks.js:479 -#: js/HeapBlocks.js:577 +#: js/blocks/EnsembleBlocks.js:127 +#: js/blocks/HeapBlocks.js:479 +#: js/blocks/HeapBlocks.js:577 msgid "Maximum heap size is 1000." msgstr "" -#: js/EnsembleBlocks.js:145 +#: js/blocks/EnsembleBlocks.js:145 msgid "stop mouse" msgstr "עצור עכבר" -#: js/EnsembleBlocks.js:147 +#: js/blocks/EnsembleBlocks.js:147 msgid "The Stop mouse block stops the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:158 +#: js/blocks/EnsembleBlocks.js:158 msgid "stop turtle" msgstr "עצור צב" -#: js/EnsembleBlocks.js:160 +#: js/blocks/EnsembleBlocks.js:160 msgid "The Stop turtle block stops the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:184 -#: js/EnsembleBlocks.js:247 -#: js/EnsembleBlocks.js:413 -#: js/EnsembleBlocks.js:468 -#: js/EnsembleBlocks.js:706 -#: js/EnsembleBlocks.js:808 -#: js/EnsembleBlocks.js:870 -#: js/EnsembleBlocks.js:1190 -#: js/EnsembleBlocks.js:1253 +#: js/blocks/EnsembleBlocks.js:184 +#: js/blocks/EnsembleBlocks.js:247 +#: js/blocks/EnsembleBlocks.js:413 +#: js/blocks/EnsembleBlocks.js:468 +#: js/blocks/EnsembleBlocks.js:706 +#: js/blocks/EnsembleBlocks.js:808 +#: js/blocks/EnsembleBlocks.js:870 +#: js/blocks/EnsembleBlocks.js:1190 +#: js/blocks/EnsembleBlocks.js:1253 msgid "Cannot find mouse" msgstr "" -#: js/EnsembleBlocks.js:186 -#: js/EnsembleBlocks.js:249 -#: js/EnsembleBlocks.js:415 -#: js/EnsembleBlocks.js:470 -#: js/EnsembleBlocks.js:708 -#: js/EnsembleBlocks.js:810 -#: js/EnsembleBlocks.js:872 -#: js/EnsembleBlocks.js:1192 -#: js/EnsembleBlocks.js:1255 +#: js/blocks/EnsembleBlocks.js:186 +#: js/blocks/EnsembleBlocks.js:249 +#: js/blocks/EnsembleBlocks.js:415 +#: js/blocks/EnsembleBlocks.js:470 +#: js/blocks/EnsembleBlocks.js:708 +#: js/blocks/EnsembleBlocks.js:810 +#: js/blocks/EnsembleBlocks.js:872 +#: js/blocks/EnsembleBlocks.js:1192 +#: js/blocks/EnsembleBlocks.js:1255 msgid "Cannot find turtle" msgstr "" -#: js/EnsembleBlocks.js:206 +#: js/blocks/EnsembleBlocks.js:206 msgid "start mouse" msgstr "התחל עכבר" -#: js/EnsembleBlocks.js:209 +#: js/blocks/EnsembleBlocks.js:209 msgid "The Start mouse block starts the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:220 +#: js/blocks/EnsembleBlocks.js:220 msgid "start turtle" msgstr "התחל צב" -#: js/EnsembleBlocks.js:223 +#: js/blocks/EnsembleBlocks.js:223 msgid "The Start turtle block starts the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:256 +#: js/blocks/EnsembleBlocks.js:256 msgid "Mouse is already running." msgstr "" -#: js/EnsembleBlocks.js:258 +#: js/blocks/EnsembleBlocks.js:258 msgid "Turtle is already running." msgstr "" -#: js/EnsembleBlocks.js:282 +#: js/blocks/EnsembleBlocks.js:282 msgid "Cannot find start block" msgstr "" -#: js/EnsembleBlocks.js:292 +#: js/blocks/EnsembleBlocks.js:292 #.TRANS: pen color for this mouse msgid "mouse color" msgstr "צבע עכבר" -#: js/EnsembleBlocks.js:294 +#: js/blocks/EnsembleBlocks.js:294 msgid "The Mouse color block returns the pen color of the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:306 +#: js/blocks/EnsembleBlocks.js:306 #.TRANS: pen color for this turtle msgid "turtle color" msgstr "צבע צב" -#: js/EnsembleBlocks.js:308 +#: js/blocks/EnsembleBlocks.js:308 msgid "The Turtle color block returns the pen color of the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:338 +#: js/blocks/EnsembleBlocks.js:338 #.TRANS: heading (compass direction) for this mouse msgid "mouse heading" msgstr "כותרת עכבר" -#: js/EnsembleBlocks.js:340 +#: js/blocks/EnsembleBlocks.js:340 msgid "The Mouse heading block returns the heading of the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:352 +#: js/blocks/EnsembleBlocks.js:352 #.TRANS: heading (compass direction) for this turtle msgid "turtle heading" msgstr "כותרת צב" -#: js/EnsembleBlocks.js:354 +#: js/blocks/EnsembleBlocks.js:354 msgid "The Turtle heading block returns the heading of the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:384 -#: js/EnsembleBlocks.js:439 +#: js/blocks/EnsembleBlocks.js:384 +#: js/blocks/EnsembleBlocks.js:439 #.TRANS: set xy position for this mouse msgid "set mouse" msgstr "" -#: js/EnsembleBlocks.js:391 -#: js/EnsembleBlocks.js:402 -#: js/BoxesBlocks.js:595 -msgid "name1" -msgstr "כִּנוּי" - -#: js/EnsembleBlocks.js:391 -#: js/EnsembleBlocks.js:402 -#: js/ProgramBlocks.js:881 -#: js/GraphicsBlocks.js:235 -#: js/GraphicsBlocks.js:313 -#: js/GraphicsBlocks.js:436 -#: js/GraphicsBlocks.js:487 -#: js/GraphicsBlocks.js:534 -#: js/GraphicsBlocks.js:750 +#: js/blocks/EnsembleBlocks.js:391 +#: js/blocks/EnsembleBlocks.js:402 +#: js/blocks/GraphicsBlocks.js:235 +#: js/blocks/GraphicsBlocks.js:313 +#: js/blocks/GraphicsBlocks.js:436 +#: js/blocks/GraphicsBlocks.js:487 +#: js/blocks/GraphicsBlocks.js:534 +#: js/blocks/GraphicsBlocks.js:750 +#: js/blocks/ProgramBlocks.js:881 msgid "x" msgstr "x" -#: js/EnsembleBlocks.js:391 -#: js/EnsembleBlocks.js:402 -#: js/ProgramBlocks.js:881 -#: js/GraphicsBlocks.js:149 -#: js/GraphicsBlocks.js:313 -#: js/GraphicsBlocks.js:436 -#: js/GraphicsBlocks.js:487 -#: js/GraphicsBlocks.js:534 -#: js/GraphicsBlocks.js:750 +#: js/blocks/EnsembleBlocks.js:391 +#: js/blocks/EnsembleBlocks.js:402 +#: js/blocks/GraphicsBlocks.js:149 +#: js/blocks/GraphicsBlocks.js:313 +#: js/blocks/GraphicsBlocks.js:436 +#: js/blocks/GraphicsBlocks.js:487 +#: js/blocks/GraphicsBlocks.js:534 +#: js/blocks/GraphicsBlocks.js:750 +#: js/blocks/ProgramBlocks.js:881 msgid "y" msgstr "y" -#: js/EnsembleBlocks.js:395 -#: js/EnsembleBlocks.js:452 +#: js/blocks/EnsembleBlocks.js:395 +#: js/blocks/EnsembleBlocks.js:452 #.TRANS: set xy position for this turtle msgid "set turtle" msgstr "" -#: js/EnsembleBlocks.js:433 +#: js/blocks/EnsembleBlocks.js:433 msgid "The Set mouse block sends a stack of blocks to be run by the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:446 +#: js/blocks/EnsembleBlocks.js:446 msgid "The Set turtle block sends a stack of blocks to be run by the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:480 +#: js/blocks/EnsembleBlocks.js:480 #.TRANS: y position for this mouse msgid "mouse y" msgstr "עכבר y" -#: js/EnsembleBlocks.js:482 +#: js/blocks/EnsembleBlocks.js:482 msgid "The Y mouse block returns the Y position of the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:494 +#: js/blocks/EnsembleBlocks.js:494 #.TRANS: y position for this turtle msgid "turtle y" msgstr "y צב" -#: js/EnsembleBlocks.js:496 +#: js/blocks/EnsembleBlocks.js:496 msgid "The Y turtle block returns the Y position of the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:526 +#: js/blocks/EnsembleBlocks.js:526 #.TRANS: x position for this mouse msgid "mouse x" msgstr "עכבר x" -#: js/EnsembleBlocks.js:528 +#: js/blocks/EnsembleBlocks.js:528 msgid "The X mouse block returns the X position of the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:540 +#: js/blocks/EnsembleBlocks.js:540 #.TRANS: x position for this turtle msgid "turtle x" msgstr "צב x" -#: js/EnsembleBlocks.js:542 +#: js/blocks/EnsembleBlocks.js:542 msgid "The X turtle block returns the X position of the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:573 +#: js/blocks/EnsembleBlocks.js:573 #.TRANS: notes played by this mouse msgid "mouse notes played" msgstr "" -#: js/EnsembleBlocks.js:575 +#: js/blocks/EnsembleBlocks.js:575 msgid "The Mouse elapse notes block returns the number of notes played by the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:587 +#: js/blocks/EnsembleBlocks.js:587 #.TRANS: notes played by this turtle msgid "turtle notes played" msgstr "" -#: js/EnsembleBlocks.js:589 +#: js/blocks/EnsembleBlocks.js:589 msgid "The Turtle elapse notes block returns the number of notes played by the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:627 +#: js/blocks/EnsembleBlocks.js:627 #.TRANS: convert current note for this turtle to piano key (1-88) msgid "mouse pitch number" msgstr "" -#: js/EnsembleBlocks.js:629 +#: js/blocks/EnsembleBlocks.js:629 msgid "The Mouse pitch block returns the current pitch number being played by the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:641 +#: js/blocks/EnsembleBlocks.js:641 #.TRANS: convert current note for this turtle to piano key (1-88) msgid "turtle pitch number" msgstr "" -#: js/EnsembleBlocks.js:643 -msgid "The Turrle pitch block returns the current pitch number being played by the specified turtle." +#: js/blocks/EnsembleBlocks.js:643 +msgid "The Turtle pitch block returns the current pitch number being played by the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:747 -#: js/EnsembleBlocks.js:819 +#: js/blocks/EnsembleBlocks.js:747 +#: js/blocks/EnsembleBlocks.js:819 #.TRANS: note value is the duration of the note played by this mouse msgid "mouse note value" msgstr "" -#: js/EnsembleBlocks.js:757 +#: js/blocks/EnsembleBlocks.js:757 #.TRANS: note value is the duration of the note played by this turtle msgid "turtle note value" msgstr "" -#: js/EnsembleBlocks.js:830 +#: js/blocks/EnsembleBlocks.js:830 #.TRANS: sync is short for synchronization msgid "mouse sync" msgstr "" -#: js/EnsembleBlocks.js:832 +#: js/blocks/EnsembleBlocks.js:832 msgid "The Mouse sync block aligns the beat count between mice." msgstr "" -#: js/EnsembleBlocks.js:844 +#: js/blocks/EnsembleBlocks.js:844 #.TRANS: sync is short for synchronization msgid "turtle sync" msgstr "" -#: js/EnsembleBlocks.js:846 +#: js/blocks/EnsembleBlocks.js:846 msgid "The Turtle sync block aligns the beat count between turtles." msgstr "" -#: js/EnsembleBlocks.js:887 +#: js/blocks/EnsembleBlocks.js:887 msgid "The Found mouse block will return true if the specified mouse can be found." msgstr "" -#: js/EnsembleBlocks.js:893 +#: js/blocks/EnsembleBlocks.js:893 msgid "found mouse" msgstr "" -#: js/EnsembleBlocks.js:903 +#: js/blocks/EnsembleBlocks.js:903 msgid "The Found turtle block will return true if the specified turtle can be found." msgstr "" -#: js/EnsembleBlocks.js:909 +#: js/blocks/EnsembleBlocks.js:909 msgid "found turtle" msgstr "" -#: js/EnsembleBlocks.js:932 +#: js/blocks/EnsembleBlocks.js:932 msgid "new mouse" msgstr "עכבר חדש" -#: js/EnsembleBlocks.js:934 +#: js/blocks/EnsembleBlocks.js:934 msgid "The New mouse block will create a new mouse." msgstr "" -#: js/EnsembleBlocks.js:945 +#: js/blocks/EnsembleBlocks.js:945 msgid "new turtle" msgstr "צב חדש" -#: js/EnsembleBlocks.js:947 +#: js/blocks/EnsembleBlocks.js:947 msgid "The New turtle block will create a new turtle." msgstr "" -#: js/EnsembleBlocks.js:1011 +#: js/blocks/EnsembleBlocks.js:1011 msgid "set mouse color" msgstr "הגדר צבע עכבר" -#: js/EnsembleBlocks.js:1014 +#: js/blocks/EnsembleBlocks.js:1014 msgid "The Set-mouse-color block is used to set the color of a mouse." msgstr "" -#: js/EnsembleBlocks.js:1020 +#: js/blocks/EnsembleBlocks.js:1020 msgid "set turtle color" msgstr "להגדיר צבע צב" -#: js/EnsembleBlocks.js:1023 +#: js/blocks/EnsembleBlocks.js:1023 msgid "The Set-turtle-color block is used to set the color of a turtle." msgstr "" -#: js/EnsembleBlocks.js:1083 +#: js/blocks/EnsembleBlocks.js:1083 msgid "The Mouse-name block returns the name of a mouse." msgstr "" -#: js/EnsembleBlocks.js:1092 +#: js/blocks/EnsembleBlocks.js:1092 msgid "The Turtle-name block returns the name of a turtle." msgstr "" -#: js/EnsembleBlocks.js:1115 +#: js/blocks/EnsembleBlocks.js:1115 msgid "mouse count" msgstr "ספירת עכברים" -#: js/EnsembleBlocks.js:1118 +#: js/blocks/EnsembleBlocks.js:1118 msgid "The Mouse-count block returns the number of mice." msgstr "" -#: js/EnsembleBlocks.js:1124 +#: js/blocks/EnsembleBlocks.js:1124 msgid "turtle count" msgstr "ספירת צבים" -#: js/EnsembleBlocks.js:1127 +#: js/blocks/EnsembleBlocks.js:1127 msgid "The Turtle-count block returns the number of turtles." msgstr "" -#: js/EnsembleBlocks.js:1149 +#: js/blocks/EnsembleBlocks.js:1149 msgid "nth mouse name" msgstr "" -#: js/EnsembleBlocks.js:1152 +#: js/blocks/EnsembleBlocks.js:1152 msgid "The Nth-Mouse name block returns the name of the nth mouse." msgstr "" -#: js/EnsembleBlocks.js:1158 +#: js/blocks/EnsembleBlocks.js:1158 msgid "nth turtle name" msgstr "" -#: js/EnsembleBlocks.js:1161 +#: js/blocks/EnsembleBlocks.js:1161 msgid "The Nth-Turtle name block returns the name of the nth turtle." msgstr "" -#: js/EnsembleBlocks.js:1205 -#: js/EnsembleBlocks.js:1265 +#: js/blocks/EnsembleBlocks.js:1205 +#: js/blocks/EnsembleBlocks.js:1265 msgid "set name" msgstr "להגדיר שם" -#: js/EnsembleBlocks.js:1214 -#: js/EnsembleBlocks.js:1221 +#: js/blocks/EnsembleBlocks.js:1214 +#: js/blocks/EnsembleBlocks.js:1221 msgid "source" msgstr "מקור" -#: js/EnsembleBlocks.js:1214 -#: js/EnsembleBlocks.js:1221 +#: js/blocks/EnsembleBlocks.js:1214 +#: js/blocks/EnsembleBlocks.js:1221 msgid "target" msgstr "יעד" -#: js/EnsembleBlocks.js:1271 +#: js/blocks/EnsembleBlocks.js:1271 msgid "The Set-name block is used to name a mouse." msgstr "" -#: js/EnsembleBlocks.js:1284 +#: js/blocks/EnsembleBlocks.js:1284 msgid "The Set-name block is used to name a turtle." msgstr "" -#: js/BooleanBlocks.js:44 -msgid "The Not block is the logical not operator." -msgstr "" - -#: js/BooleanBlocks.js:62 -msgid "not" -msgstr "לא" - -#: js/BooleanBlocks.js:134 -msgid "The And block is the logical and operator." -msgstr "" - -#: js/BooleanBlocks.js:152 -msgid "and" -msgstr "וגם" - -#: js/BooleanBlocks.js:218 -msgid "The Or block is the logical or operator." -msgstr "" - -#: js/BooleanBlocks.js:236 -msgid "or" -msgstr "או" - -#: js/BooleanBlocks.js:302 -msgid "The XOR block is the logical XOR operator." -msgstr "" - -#: js/BooleanBlocks.js:320 -msgid "xor" -msgstr "" - -#: js/BooleanBlocks.js:808 -msgid "The Equal block returns True if the two numbers are equal." -msgstr "" - -#: js/BooleanBlocks.js:909 -msgid "The Not-equal-to block returns True if the two numbers are not equal to each other." -msgstr "" - -#: js/BooleanBlocks.js:1008 -msgid "The Boolean block is used to specify true or false." -msgstr "" - -#: js/MediaBlocks.js:35 -#.TRANS: right side of the screen -msgid "right (screen)" -msgstr "" - -#: js/MediaBlocks.js:45 -#: js/MediaBlocks.js:56 -msgid "The Right block returns the position of the right of the canvas." -msgstr "" - -#: js/MediaBlocks.js:97 -#.TRANS: left side of the screen -msgid "left (screen)" -msgstr "" - -#: js/MediaBlocks.js:107 -#: js/MediaBlocks.js:118 -msgid "The Left block returns the position of the left of the canvas." -msgstr "" - -#: js/MediaBlocks.js:158 -msgid "top (screen)" -msgstr "" - -#: js/MediaBlocks.js:168 -#: js/MediaBlocks.js:179 -msgid "The Top block returns the position of the top of the canvas." -msgstr "" - -#: js/MediaBlocks.js:219 -msgid "bottom (screen)" -msgstr "" - -#: js/MediaBlocks.js:229 -#: js/MediaBlocks.js:240 -msgid "The Bottom block returns the position of the bottom of the canvas." -msgstr "" - -#: js/MediaBlocks.js:282 -msgid "width" -msgstr "" - -#: js/MediaBlocks.js:291 -msgid "The Width block returns the width of the canvas." +#: js/blocks/ExtrasBlocks.js:33 +msgid "fraction" msgstr "" -#: js/MediaBlocks.js:325 -msgid "height" +#: js/blocks/ExtrasBlocks.js:36 +msgid "Convert a float to a fraction" msgstr "" -#: js/MediaBlocks.js:334 -msgid "The Height block returns the height of the canvas." +#: js/blocks/ExtrasBlocks.js:93 +msgid "save as ABC" msgstr "" -#: js/MediaBlocks.js:369 -#.TRANS: stops playback of an audio recording -msgid "stop play" -msgstr "הפסקת נגן" +#: js/blocks/ExtrasBlocks.js:96 +#: js/blocks/ExtrasBlocks.js:132 +#: js/blocks/ExtrasBlocks.js:168 +msgid "title" +msgstr "כותרת" -#: js/MediaBlocks.js:404 -#.TRANS: Erases the images and text -msgid "erase media" +#: js/blocks/ExtrasBlocks.js:129 +msgid "save as Lilypond" msgstr "" -#: js/MediaBlocks.js:409 -msgid "The Erase Media block erases text and images." +#: js/blocks/ExtrasBlocks.js:165 +msgid "save as SVG" msgstr "" -#: js/MediaBlocks.js:439 -#.TRANS: play an audio recording -msgid "play back" -msgstr "נגן" - -#: js/MediaBlocks.js:487 -msgid "speak" -msgstr "דבר" +#: js/blocks/ExtrasBlocks.js:216 +msgid "no background" +msgstr "ללא רקע" -#: js/MediaBlocks.js:495 -msgid "The Speak block outputs to the text-to-speech synthesizer" +#: js/blocks/ExtrasBlocks.js:219 +msgid "The No background block eliminates the background from the saved SVG output." msgstr "" -#: js/MediaBlocks.js:546 -msgid "camera" -msgstr "מַצלֵמָה" +#: js/blocks/ExtrasBlocks.js:247 +msgid "show blocks" +msgstr "הראה בלוקים" -#: js/MediaBlocks.js:551 -msgid "The Camera block connects a webcam to the Show block." +#: js/blocks/ExtrasBlocks.js:249 +msgid "The Show blocks block shows the blocks." msgstr "" -#: js/MediaBlocks.js:574 -msgid "video" -msgstr "וִידֵאוֹ" +#: js/blocks/ExtrasBlocks.js:274 +msgid "hide blocks" +msgstr "הסתר בלוקים" -#: js/MediaBlocks.js:579 -msgid "The Video block selects video for use with the Show block." +#: js/blocks/ExtrasBlocks.js:276 +msgid "The Hide blocks block hides the blocks." msgstr "" -#: js/MediaBlocks.js:607 -msgid "The Open file block opens a file for use with the Show block." +#: js/blocks/ExtrasBlocks.js:305 +#: js/blocks/ExtrasBlocks.js:338 +msgid "The Space block is used to add space between blocks." msgstr "" -#: js/MediaBlocks.js:645 -msgid "stop media" -msgstr "הפסק מדיה" - -#: js/MediaBlocks.js:650 -msgid "The Stop media block stops audio or video playback." -msgstr "" +#: js/blocks/ExtrasBlocks.js:376 +msgid "wait" +msgstr "המתן" -#: js/MediaBlocks.js:679 -#: js/PitchBlocks.js:1539 -#: js/phrasemaker.js:822 -#: js/musickeyboard.js:1654 -#.TRANS: a measure of frequency: one cycle per second -msgid "hertz" +#: js/blocks/ExtrasBlocks.js:379 +msgid "The Wait block pauses the program for a specified number of seconds." msgstr "" -#: js/MediaBlocks.js:692 -msgid "duration (ms)" -msgstr "" +#: js/blocks/ExtrasBlocks.js:433 +#: plugins/facebook.rtp:30 +msgid "comment" +msgstr "הערה" -#: js/MediaBlocks.js:728 -#.TRANS: translate a note into hertz, e.g., A4 -> 440HZ -msgid "note to frequency" -msgstr "" +#: js/blocks/ExtrasBlocks.js:469 +msgid "print" +msgstr "הודעה" -#: js/MediaBlocks.js:736 -msgid "The To frequency block converts a pitch name and octave to Hertz." +#: js/blocks/ExtrasBlocks.js:476 +msgid "The Print block displays text at the top of the screen." msgstr "" -#: js/MediaBlocks.js:746 -#: js/PitchBlocks.js:656 -#: js/PitchBlocks.js:932 -#: js/PitchBlocks.js:1827 -#.TRANS: name2 is name as in name of pitch (JAPANESE ONLY) -msgid "name2" -msgstr "כִּנוּי" - -#: js/MediaBlocks.js:812 -msgid "The Avatar block is used to change the appearance of the mouse." +#: js/blocks/ExtrasBlocks.js:582 +msgid "display grid" msgstr "" -#: js/MediaBlocks.js:819 -msgid "The Avatar block is used to change the appearance of the turtle." +#: js/blocks/ExtrasBlocks.js:587 +msgid "The Display Grid Block changes the grid type" msgstr "" -#: js/MediaBlocks.js:831 -#: js/MediaBlocks.js:891 -#.TRANS: a media object -msgid "size" -msgstr "גודל" - -#: js/MediaBlocks.js:831 -msgid "image" -msgstr "תמונה" +#: js/blocks/ExtrasBlocks.js:689 +#: js/blocks/ExtrasBlocks.js:708 +#: js/blocks/ExtrasBlocks.js:731 +#: js/blocks/ExtrasBlocks.js:754 +#: js/blocks/ExtrasBlocks.js:772 +#: js/blocks/ExtrasBlocks.js:791 +#: js/blocks/ExtrasBlocks.js:810 +#: js/blocks/ExtrasBlocks.js:829 +msgid "unknown" +msgstr "לא ידוע" -#: js/MediaBlocks.js:880 -msgid "The Show block is used to display text or images on the canvas." +#: js/blocks/FlowBlocks.js:41 +msgid "The Backward block runs code in reverse order (Musical retrograde)." msgstr "" -#: js/MediaBlocks.js:888 -#.TRANS: show1 is show as in display an image or text on the screen. -msgid "show1" -msgstr "לְהַצִיג" - -#: js/MediaBlocks.js:891 -msgid "obj" -msgstr "אובייקט" - -#: js/MediaBlocks.js:938 -msgid "The Media block is used to import an image." +#: js/blocks/FlowBlocks.js:48 +msgid "backward" msgstr "" -#: js/MediaBlocks.js:973 -msgid "The Text block holds a text string." +#: js/blocks/FlowBlocks.js:124 +msgid "The Duplicate block will run each block multiple times." msgstr "" -#: js/ProgramBlocks.js:33 -msgid "The Load-heap-from-app block loads the heap from a web page." +#: js/blocks/FlowBlocks.js:136 +msgid "duplicate" msgstr "" -#: js/ProgramBlocks.js:44 -#.TRANS: load the heap contents from a URL -msgid "load heap from App" +#: js/blocks/FlowBlocks.js:334 +msgid "The Default block is used inside of a Switch to define the default action." msgstr "" -#: js/ProgramBlocks.js:95 -msgid "Error parsing JSON data:" +#: js/blocks/FlowBlocks.js:342 +msgid "default" msgstr "" -#: js/ProgramBlocks.js:100 -msgid "404: Page not found" +#: js/blocks/FlowBlocks.js:361 +#: js/blocks/FlowBlocks.js:418 +msgid "The Case Block must be used inside of a Switch Block." msgstr "" -#: js/ProgramBlocks.js:133 -msgid "The Save-heap-to-app block saves the heap to a web page." +#: js/blocks/FlowBlocks.js:389 +msgid "The Case block is used inside of a Switch to define matches." msgstr "" -#: js/ProgramBlocks.js:144 -#.TRANS: save the heap contents to a URL -msgid "save heap to App" +#: js/blocks/FlowBlocks.js:397 +msgid "case" msgstr "" -#: js/ProgramBlocks.js:189 -msgid "Cannot find a valid heap for" +#: js/blocks/FlowBlocks.js:446 +msgid "The Switch block will run the code in the matching Case." msgstr "" -#: js/ProgramBlocks.js:206 -msgid "The Load-heap block loads the heap from a file." +#: js/blocks/FlowBlocks.js:454 +msgid "switch" msgstr "" -#: js/ProgramBlocks.js:217 -#.TRANS: load the heap from a file -msgid "load heap" -msgstr "פתח FILO" - -#: js/ProgramBlocks.js:270 -msgid "The file you selected does not contain a valid heap." +#: js/blocks/FlowBlocks.js:595 +msgid "The Stop block will stop a loop" msgstr "" -#: js/ProgramBlocks.js:275 -msgid "The loadHeap block needs a loadFile block." +#: js/blocks/FlowBlocks.js:597 +msgid "Forever, Repeat, While, or Until." msgstr "" -#: js/ProgramBlocks.js:291 -msgid "The Set-heap block loads the heap." -msgstr "" +#: js/blocks/FlowBlocks.js:604 +#: js/widgets/timbre.js:417 +#: js/widgets/timbre.js:419 +#: js/widgets/musickeyboard.js:819 +#: js/widgets/musickeyboard.js:821 +#: js/widgets/phrasemaker.js:4202 +#: plugins/rodi.rtp:29 +#: plugins/rodi.rtp:73 +#: plugins/rodi.rtp:413 +msgid "stop" +msgstr "עצור" -#: js/ProgramBlocks.js:299 -#: js/HeapBlocks.js:539 -#.TRANS: load the heap from a JSON encoding -msgid "set heap" +#: js/blocks/FlowBlocks.js:653 +msgid "The Waitfor block will wait until the condition is true." msgstr "" -#: js/ProgramBlocks.js:340 -msgid "The block you selected does not contain a valid heap." -msgstr "" +#: js/blocks/FlowBlocks.js:661 +msgid "wait for" +msgstr "לחכות ל" -#: js/ProgramBlocks.js:343 -msgid "The Set heap block needs a heap." +#: js/blocks/FlowBlocks.js:732 +msgid "The Until block will repeat until the condition is true." msgstr "" -#: js/ProgramBlocks.js:360 -msgid "The Load-dictionary block loads a dictionary from a file." -msgstr "" +#: js/blocks/FlowBlocks.js:740 +msgid "until" +msgstr "עד_ש" -#: js/ProgramBlocks.js:372 -#.TRANS: load a dictionary from a file -msgid "load dictionary" -msgstr "טען מילון" +#: js/blocks/FlowBlocks.js:742 +#: js/blocks/FlowBlocks.js:822 +msgid "do2" +msgstr "לְבַצֵעַ" -#: js/ProgramBlocks.js:390 -#: js/ProgramBlocks.js:658 -#: js/ToneBlocks.js:1025 -msgid "file" +#: js/blocks/FlowBlocks.js:812 +msgid "The While block will repeat while the condition is true." msgstr "" -#: js/ProgramBlocks.js:396 -#: js/ProgramBlocks.js:501 -#: js/ProgramBlocks.js:664 -#: js/DictBlocks.js:80 -#: js/DictBlocks.js:145 -#: js/DictBlocks.js:216 -#: js/DictBlocks.js:290 -msgid "My Dictionary" -msgstr "" +#: js/blocks/FlowBlocks.js:820 +msgid "while" +msgstr "כל-עוד" -#: js/ProgramBlocks.js:444 -msgid "The file you selected does not contain a valid dictionary." +#: js/blocks/FlowBlocks.js:903 +#: js/blocks/FlowBlocks.js:968 +#: js/blocks/FlowBlocks.js:979 +msgid "In this example if the mouse button is pressed a snare drum will play." msgstr "" -#: js/ProgramBlocks.js:449 -msgid "The load dictionary block needs a load file block." -msgstr "" +#: js/blocks/FlowBlocks.js:925 +#: js/blocks/FlowBlocks.js:988 +msgid "if" +msgstr "אם" -#: js/ProgramBlocks.js:466 -msgid "The Set-dictionary block loads a dictionary." -msgstr "" +#: js/blocks/FlowBlocks.js:927 +#: js/blocks/FlowBlocks.js:990 +msgid "then" +msgstr "אז" -#: js/ProgramBlocks.js:477 -#.TRANS: load a dictionary from a JSON -msgid "set dictionary" -msgstr "" +#: js/blocks/FlowBlocks.js:927 +msgid "else" +msgstr "ואם לא" -#: js/ProgramBlocks.js:546 -msgid "The block you selected does not contain a valid dictionary." +#: js/blocks/FlowBlocks.js:1025 +msgid "The Forever block will repeat the contained blocks forever." msgstr "" -#: js/ProgramBlocks.js:550 -msgid "The set dictionary block needs a dictionary." -msgstr "" +#: js/blocks/FlowBlocks.js:1037 +msgid "forever" +msgstr "תמיד" -#: js/ProgramBlocks.js:567 -msgid "The Save-heap block saves the heap to a file." +#: js/blocks/FlowBlocks.js:1073 +msgid "The Repeat block will repeat the contained blocks." msgstr "" -#: js/ProgramBlocks.js:578 -#.TRANS: save the heap to a file -msgid "save heap" -msgstr "שמור FILO" - -#: js/ProgramBlocks.js:629 -msgid "The Save-dictionary block saves a dictionary to a file." +#: js/blocks/FlowBlocks.js:1075 +msgid "In this example the note will be played 4 times." msgstr "" -#: js/ProgramBlocks.js:640 -#.TRANS: save a dictionary to a file -msgid "save dictionary" -msgstr "לשמור מילון" +#: js/blocks/FlowBlocks.js:1083 +msgid "repeat" +msgstr "חזור" -#: js/ProgramBlocks.js:720 -msgid "The Open palette block opens a palette." +#: js/blocks/FlowBlocks.js:1123 +msgid "duplicate factor" msgstr "" -#: js/ProgramBlocks.js:727 -msgid "open palette" +#: js/blocks/HeapBlocks.js:49 +msgid "The Heap block returns the heap." msgstr "" -#: js/ProgramBlocks.js:785 -msgid "The Delete block block removes a block." +#: js/blocks/HeapBlocks.js:133 +msgid "show heap" +msgstr "הצג מחסנית FILO" + +#: js/blocks/HeapBlocks.js:181 +msgid "The Heap-length block returns the length of the heap." msgstr "" -#: js/ProgramBlocks.js:797 -#.TRANS: Move this block to the trash. -msgid "delete block" +#: js/blocks/HeapBlocks.js:195 +msgid "heap length" msgstr "" -#: js/ProgramBlocks.js:861 -msgid "The Move block block moves a block." +#: js/blocks/HeapBlocks.js:254 +msgid "The Heap-empty? block returns true if the heap is empty." msgstr "" -#: js/ProgramBlocks.js:869 -#.TRANS: Move the position of a block on the screen. -msgid "move block" +#: js/blocks/HeapBlocks.js:268 +#.TRANS: Is the heap empty? +msgid "heap empty?" msgstr "" -#: js/ProgramBlocks.js:881 -#: js/ProgramBlocks.js:1048 -msgid "block number" +#: js/blocks/HeapBlocks.js:317 +msgid "The Empty-heap block empties the heap." msgstr "" -#: js/ProgramBlocks.js:935 -#.TRANS: Run program beginning at this block. -msgid "run block" +#: js/blocks/HeapBlocks.js:327 +#: js/blocks/HeapBlocks.js:647 +#.TRANS: empty the heap +msgid "empty heap" +msgstr "רוקן מחסנית FILO" + +#: js/blocks/HeapBlocks.js:371 +msgid "The Reverse-heap block reverses the order of the heap." msgstr "" -#: js/ProgramBlocks.js:1025 -msgid "The Dock block block connections two blocks." +#: js/blocks/HeapBlocks.js:384 +#.TRANS: reverse the order of the heap +msgid "reverse heap" msgstr "" -#: js/ProgramBlocks.js:1036 -#.TRANS: We can connect a block to another block. -msgid "connect blocks" +#: js/blocks/HeapBlocks.js:428 +msgid "The Index-heap block returns a value in the heap at a specified location." msgstr "" -#: js/ProgramBlocks.js:1048 -msgid "target block" +#: js/blocks/HeapBlocks.js:443 +#.TRANS: retrieve a value from the heap at index position in the heap +msgid "index heap" msgstr "" -#: js/ProgramBlocks.js:1048 -msgid "connection number" +#: js/blocks/HeapBlocks.js:523 +msgid "The Set-heap entry block sets a value in he heap at the specified location." msgstr "" -#: js/ProgramBlocks.js:1140 -msgid "The Make block block creates a new block." +#: js/blocks/HeapBlocks.js:539 +#: js/blocks/ProgramBlocks.js:299 +#.TRANS: load the heap from a JSON encoding +msgid "set heap" msgstr "" -#: js/ProgramBlocks.js:1152 -#.TRANS: Create a new block -msgid "make block" +#: js/blocks/HeapBlocks.js:619 +msgid "The Pop block removes the value at the top of the heap." msgstr "" -#: js/ProgramBlocks.js:1186 -#: js/ProgramBlocks.js:1227 -#: js/RhythmBlocks.js:1128 -#: js/PitchBlocks.js:972 -#: js/PitchBlocks.js:1005 -#: js/temperament.js:340 -#: js/temperament.js:362 -#: js/temperament.js:372 -#: js/temperament.js:484 -#: js/status.js:190 -#: plugins/rodi.rtp:192 -#.TRANS: a musical note consisting of pitch and duration -msgid "note" -msgstr "הערה" +#: js/blocks/HeapBlocks.js:633 +#.TRANS: pop a value off the top of the heap +msgid "pop" +msgstr "שלוף\\טען ערך" -#: js/ProgramBlocks.js:1285 -msgid "Cannot find block" +#: js/blocks/HeapBlocks.js:680 +msgid "The Push block adds a value to the top of the heap." msgstr "" -#: js/ProgramBlocks.js:1304 -#: js/ProgramBlocks.js:1313 -msgid "Warning: block argument type mismatch" -msgstr "" +#: js/blocks/HeapBlocks.js:696 +#.TRANS: push a value onto the top of the heap +msgid "push" +msgstr "דחוף\\שמור ערך" -#: js/ProgramBlocks.js:1347 -msgid "The Open project block is used to open a project from a web page." -msgstr "" +#: js/blocks/IntervalsBlocks.js:45 +msgid "set temperament" +msgstr "להגדיר מזג" -#: js/ProgramBlocks.js:1357 -msgid "open project" -msgstr "" +#: js/blocks/IntervalsBlocks.js:63 +#: js/blocks/MediaBlocks.js:746 +#: js/blocks/PitchBlocks.js:657 +#: js/blocks/PitchBlocks.js:935 +#: js/blocks/PitchBlocks.js:974 +#: js/blocks/PitchBlocks.js:1007 +#: js/blocks/PitchBlocks.js:1194 +#: js/blocks/PitchBlocks.js:1717 +#: js/blocks/PitchBlocks.js:1758 +#: js/blocks/PitchBlocks.js:1866 +#: js/blocks/ToneBlocks.js:1025 +#: js/turtleactions/IntervalsActions.js:114 +#.TRANS: adjusts the shift up or down by one octave (twelve half-steps in the interval between two notes, one having twice or half the frequency in Hz of the other.) +msgid "octave" +msgstr "אוֹקְטָבָה" -#: js/ProgramBlocks.js:1410 -msgid "Please enter a valid URL." +#: js/blocks/IntervalsBlocks.js:99 +msgid "The Temperament name block is used to select a tuning method." msgstr "" -#: js/DrumBlocks.js:59 -msgid "The Noise name block is used to select a noise synthesizer." +#: js/blocks/IntervalsBlocks.js:161 +msgid "doubly" msgstr "" -#: js/DrumBlocks.js:102 -msgid "The Drum name block is used to select a drum." +#: js/blocks/IntervalsBlocks.js:166 +msgid "The Doubly block will double the size of an interval." msgstr "" -#: js/DrumBlocks.js:146 -msgid "The Effects name block is used to select a sound effect." -msgstr "" +#: js/blocks/IntervalsBlocks.js:262 +msgid "interval number" +msgstr "מספר מרווח" -#: js/DrumBlocks.js:163 -msgid "noise" +#: js/blocks/IntervalsBlocks.js:317 +msgid "current interval" msgstr "" -#: js/DrumBlocks.js:177 -msgid "The Play noise block will generate white, pink, or brown noise." -msgstr "" +#: js/blocks/IntervalsBlocks.js:387 +#.TRANS: measure the distance between two pitches in semi-tones +msgid "semi-tone interval measure" +msgstr "מדידת מרווח חצי טון" -#: js/DrumBlocks.js:191 -#: js/musicutils.js:752 -#: js/synthutils.js:47 -#.TRANS: white noise synthesizer -msgid "white noise" +#: js/blocks/IntervalsBlocks.js:454 +#: js/blocks/IntervalsBlocks.js:570 +msgid "You must use two pitch blocks when measuring an interval." msgstr "" -#: js/DrumBlocks.js:326 -msgid "Replace every instance of a pitch with a drum sound." +#: js/blocks/IntervalsBlocks.js:496 +msgid "The Scalar interval block measures the distance between two notes in the current key and mode." msgstr "" -#: js/DrumBlocks.js:337 -#.TRANS: map a pitch to a drum sound -msgid "map pitch to drum" +#: js/blocks/IntervalsBlocks.js:502 +#.TRANS: measure the distance between two pitches in steps of musical scale +msgid "scalar interval measure" msgstr "" -#: js/DrumBlocks.js:404 -msgid "In the example above, a kick drum sound will be played instead of sol." +#: js/blocks/IntervalsBlocks.js:678 +msgid "In the figure, we add sol# to sol." msgstr "" -#: js/DrumBlocks.js:416 -#.TRANS: set the current drum sound for playback -msgid "set drum" -msgstr "" +#: js/blocks/IntervalsBlocks.js:684 +#: js/blocks/OrnamentBlocks.js:220 +#.TRANS: calculate a relative step between notes based on semi-tones +msgid "semi-tone interval" +msgstr "מרווח חצי טון" -#: js/DrumBlocks.js:460 -msgid "sound effect" +#: js/blocks/IntervalsBlocks.js:733 +msgid "The output of the example is: do, mi, sol, sol, ti, mi" msgstr "" -#: js/DrumBlocks.js:498 -msgid "You can use multiple Drum blocks within a Note block." -msgstr "" +#: js/blocks/IntervalsBlocks.js:740 +#: js/blocks/WidgetBlocks.js:768 +msgid "arpeggio" +msgstr "ארפג'יו" -#: js/RhythmBlocks.js:182 -#: js/RhythmBlocks.js:1086 -#: js/RhythmBlocks.js:1162 -msgid "Note value must be greater than 0." +#: js/blocks/IntervalsBlocks.js:931 +msgid "The Chord block calculates common chords." msgstr "" -#: js/RhythmBlocks.js:215 -#: js/RhythmBlocks.js:278 -#: js/RhythmBlocks.js:350 -#.TRANS: swing is a rhythmic variation that emphasises the offbeat -msgid "swing" +#: js/blocks/IntervalsBlocks.js:933 +msgid "In the figure, we generate a C-major chord." msgstr "" -#: js/RhythmBlocks.js:355 -#.TRANS: the amount to shift to the offbeat note -msgid "swing value" +#: js/blocks/IntervalsBlocks.js:938 +msgid "chord" msgstr "" -#: js/RhythmBlocks.js:419 -msgid "The Skip notes block will cause notes to be skipped." +#: js/blocks/IntervalsBlocks.js:990 +msgid "The Ratio Interval block calculates an interval based on a ratio." msgstr "" -#: js/RhythmBlocks.js:427 -#.TRANS: substitute rests on notes being skipped -msgid "skip notes" -msgstr "" +#: js/blocks/IntervalsBlocks.js:995 +msgid "ratio interval" +msgstr "מרווח יחס" -#: js/RhythmBlocks.js:489 -#.TRANS: speed up note duration by some factor, e.g. convert 1/4 to 1/8 notes by using a factor of 2 -msgid "multiply note value" +#: js/blocks/IntervalsBlocks.js:1064 +msgid "In the figure, we add la to sol." msgstr "" -#: js/RhythmBlocks.js:542 -msgid "The Tie block works on pairs of notes, combining them into one note." -msgstr "" +#: js/blocks/IntervalsBlocks.js:1120 +#.TRANS: define a custom mode +msgid "define mode" +msgstr "להגדיר מצב" -#: js/RhythmBlocks.js:550 -#.TRANS: tie notes together into one longer note -msgid "tie" +#: js/blocks/IntervalsBlocks.js:1173 +msgid "movable Do" +msgstr "DO מטלטלין" + +#: js/blocks/IntervalsBlocks.js:1224 +#.TRANS: mode length is the number of notes in the mode, e.g., 7 for major and minor scales; 12 for chromatic scales +msgid "mode length" +msgstr "אורך מצב" + +#: js/blocks/IntervalsBlocks.js:1233 +msgid "The Mode length block is the number of notes in the current scale." msgstr "" -#: js/RhythmBlocks.js:591 -#: js/RhythmBlocks.js:671 -#.TRANS: a dotted note is played for 1.5x its value, e.g., 1/8. --> 3/16 -msgid "dot" +#: js/blocks/IntervalsBlocks.js:1235 +msgid "Most Western scales have 7 notes." msgstr "" -#: js/RhythmBlocks.js:619 -#: js/RhythmActions.js:221 -msgid "An argument of -1 results in a note value of 0." +#: js/blocks/IntervalsBlocks.js:1284 +#.TRANS: the mode in music is 'major', 'minor', etc. +msgid "current mode" +msgstr "מצב נוכחי" + +#: js/blocks/IntervalsBlocks.js:1337 +#.TRANS: the key is a group of pitches with which a music composition is created +msgid "current key" msgstr "" -#: js/RhythmBlocks.js:661 -msgid "The Dot block extends the duration of a note by 50%." +#: js/blocks/IntervalsBlocks.js:1389 +#: js/blocks/IntervalsBlocks.js:1434 +#.TRANS: set the key and mode, e.g. C Major +msgid "set key" msgstr "" -#: js/RhythmBlocks.js:663 -msgid "Eg a dotted quarter note will play for 3/8 (1/4 + 1/8) of a beat." +#: js/blocks/IntervalsBlocks.js:1443 +#: js/blocks/IntervalsBlocks.js:1449 +msgid "The Set key block is used to set the key and mode," msgstr "" -#: js/RhythmBlocks.js:765 -#.TRANS: Japanese only: note value block for drum -msgid "note value drum" +#: js/blocks/IntervalsBlocks.js:1449 +msgid "eg C Major" msgstr "" -#: js/RhythmBlocks.js:829 -msgid "392 hertz" +#: js/blocks/MediaBlocks.js:35 +#.TRANS: right side of the screen +msgid "right (screen)" msgstr "" -#: js/RhythmBlocks.js:1119 -msgid "The Note block is a container for one or more Pitch blocks." +#: js/blocks/MediaBlocks.js:45 +#: js/blocks/MediaBlocks.js:56 +msgid "The Right block returns the position of the right of the canvas." msgstr "" -#: js/RhythmBlocks.js:1121 -msgid "The Note block specifies the duration (note value) of its contents." +#: js/blocks/MediaBlocks.js:97 +#.TRANS: left side of the screen +msgid "left (screen)" msgstr "" -#: js/RhythmBlocks.js:1130 -msgid "value2" +#: js/blocks/MediaBlocks.js:107 +#: js/blocks/MediaBlocks.js:118 +msgid "The Left block returns the position of the left of the canvas." msgstr "" -#: js/RhythmBlocks.js:1200 -msgid "define frequency" +#: js/blocks/MediaBlocks.js:158 +msgid "top (screen)" msgstr "" -#: js/RhythmBlocks.js:1218 -#: js/temperament.js:650 -#: js/temperament.js:1421 -msgid "octave space" +#: js/blocks/MediaBlocks.js:168 +#: js/blocks/MediaBlocks.js:179 +msgid "The Top block returns the position of the top of the canvas." msgstr "" -#: js/NumberBlocks.js:28 -msgid "The Int block returns an integer." +#: js/blocks/MediaBlocks.js:219 +msgid "bottom (screen)" msgstr "" -#: js/NumberBlocks.js:34 -msgid "int" +#: js/blocks/MediaBlocks.js:229 +#: js/blocks/MediaBlocks.js:240 +msgid "The Bottom block returns the position of the bottom of the canvas." msgstr "" -#: js/NumberBlocks.js:73 -msgid "The Mod block returns the remainder from a division." +#: js/blocks/MediaBlocks.js:282 +msgid "width" msgstr "" -#: js/NumberBlocks.js:79 -msgid "mod" -msgstr "mod" +#: js/blocks/MediaBlocks.js:291 +msgid "The Width block returns the width of the canvas." +msgstr "" -#: js/NumberBlocks.js:123 -msgid "The Power block calculates a power function." +#: js/blocks/MediaBlocks.js:325 +msgid "height" msgstr "" -#: js/NumberBlocks.js:178 -msgid "The Sqrt block returns the square root." +#: js/blocks/MediaBlocks.js:334 +msgid "The Height block returns the height of the canvas." msgstr "" -#: js/NumberBlocks.js:184 -msgid "sqrt" -msgstr "שורש ריבועי" +#: js/blocks/MediaBlocks.js:369 +#.TRANS: stops playback of an audio recording +msgid "stop play" +msgstr "הפסקת נגן" -#: js/NumberBlocks.js:230 -msgid "The Abs block returns the absolute value." +#: js/blocks/MediaBlocks.js:404 +#.TRANS: Erases the images and text +msgid "erase media" msgstr "" -#: js/NumberBlocks.js:236 -msgid "abs" +#: js/blocks/MediaBlocks.js:409 +msgid "The Erase Media block erases text and images." msgstr "" -#: js/NumberBlocks.js:277 -msgid "The Distance block returns the distance between two points. For example, between the mouse and the center of the screen." -msgstr "" +#: js/blocks/MediaBlocks.js:439 +#.TRANS: play an audio recording +msgid "play back" +msgstr "נגן" -#: js/NumberBlocks.js:283 -#: plugins/rodi.rtp:310 -msgid "distance" -msgstr "" +#: js/blocks/MediaBlocks.js:487 +msgid "speak" +msgstr "דבר" -#: js/NumberBlocks.js:343 -msgid "The Divide block is used to divide." +#: js/blocks/MediaBlocks.js:495 +msgid "The Speak block outputs to the text-to-speech synthesizer" msgstr "" -#: js/NumberBlocks.js:411 -msgid "The Multiply block is used to multiply." -msgstr "" +#: js/blocks/MediaBlocks.js:546 +msgid "camera" +msgstr "מַצלֵמָה" -#: js/NumberBlocks.js:554 -msgid "The Minus block is used to subtract." +#: js/blocks/MediaBlocks.js:551 +msgid "The Camera block connects a webcam to the Show block." msgstr "" -#: js/NumberBlocks.js:647 -msgid "The Plus block is used to add." -msgstr "" +#: js/blocks/MediaBlocks.js:574 +msgid "video" +msgstr "וִידֵאוֹ" -#: js/NumberBlocks.js:773 -msgid "The One-of block returns one of two choices." +#: js/blocks/MediaBlocks.js:579 +msgid "The Video block selects video for use with the Show block." msgstr "" -#: js/NumberBlocks.js:780 -#: js/PitchBlocks.js:616 -msgid "one of" -msgstr "אחד מ" - -#: js/NumberBlocks.js:782 -msgid "this" -msgstr "זה" +#: js/blocks/MediaBlocks.js:607 +msgid "The Open file block opens a file for use with the Show block." +msgstr "" -#: js/NumberBlocks.js:782 -msgid "that" -msgstr "זה" +#: js/blocks/MediaBlocks.js:645 +msgid "stop media" +msgstr "הפסק מדיה" -#: js/NumberBlocks.js:837 -msgid "The Random block returns a random number." +#: js/blocks/MediaBlocks.js:650 +msgid "The Stop media block stops audio or video playback." msgstr "" -#: js/NumberBlocks.js:844 -msgid "random" -msgstr "מספר אקראי" +#: js/blocks/MediaBlocks.js:679 +#: js/blocks/PitchBlocks.js:1577 +#: js/widgets/musickeyboard.js:1936 +#: js/widgets/phrasemaker.js:1037 +#.TRANS: a measure of frequency: one cycle per second +msgid "hertz" +msgstr "" -#: js/NumberBlocks.js:846 -msgid "min" -msgstr "מינימום" +#: js/blocks/MediaBlocks.js:692 +#: js/blocks/WidgetBlocks.js:182 +#: js/widgets/temperament.js:506 +#: js/widgets/temperament.js:546 +#: js/widgets/temperament.js:610 +#: js/widgets/temperament.js:618 +#: js/widgets/temperament.js:1505 +#: js/widgets/timbre.js:1842 +msgid "frequency" +msgstr "" -#: js/NumberBlocks.js:846 -msgid "max" -msgstr "מקסימום" +#: js/blocks/MediaBlocks.js:692 +msgid "duration (ms)" +msgstr "" -#: js/NumberBlocks.js:910 -msgid "The Number block holds a number." +#: js/blocks/MediaBlocks.js:728 +#.TRANS: translate a note into hertz, e.g., A4 -> 440HZ +msgid "note to frequency" msgstr "" -#: js/BoxesBlocks.js:53 -#: js/BoxesBlocks.js:59 -msgid "The Add-to block is used to add to the value stored in a box." +#: js/blocks/MediaBlocks.js:736 +msgid "The To frequency block converts a pitch name and octave to Hertz." msgstr "" -#: js/BoxesBlocks.js:61 -msgid "It can also be used with other blocks such as Color and Pen size." +#: js/blocks/MediaBlocks.js:746 +#: js/blocks/PitchBlocks.js:656 +#: js/blocks/PitchBlocks.js:934 +#: js/blocks/PitchBlocks.js:1866 +#.TRANS: name2 is name as in name of pitch (JAPANESE ONLY) +msgid "name2" +msgstr "כִּנוּי" + +#: js/blocks/MediaBlocks.js:812 +msgid "The Avatar block is used to change the appearance of the mouse." msgstr "" -#: js/BoxesBlocks.js:73 -msgid "add" -msgstr "הוסף" +#: js/blocks/MediaBlocks.js:819 +msgid "The Avatar block is used to change the appearance of the turtle." +msgstr "" -#: js/BoxesBlocks.js:75 -#: js/temperament.js:716 -msgid "to" -msgstr "אל" +#: js/blocks/MediaBlocks.js:831 +#: js/blocks/MediaBlocks.js:891 +#.TRANS: a media object +msgid "size" +msgstr "גודל" -#: js/BoxesBlocks.js:75 -#: js/BoxesBlocks.js:595 -#: js/HeapBlocks.js:544 -msgid "value1" -msgstr "" +#: js/blocks/MediaBlocks.js:831 +msgid "image" +msgstr "תמונה" -#: js/BoxesBlocks.js:118 -msgid "Block does not support incrementing." +#: js/blocks/MediaBlocks.js:880 +msgid "The Show block is used to display text or images on the canvas." msgstr "" -#: js/BoxesBlocks.js:152 -msgid "The Add-1-to block adds one to the value stored in a box." -msgstr "" +#: js/blocks/MediaBlocks.js:888 +#.TRANS: show1 is show as in display an image or text on the screen. +msgid "show1" +msgstr "לְהַצִיג" -#: js/BoxesBlocks.js:163 -msgid "add 1 to" -msgstr "הוסף 1 ל" +#: js/blocks/MediaBlocks.js:891 +msgid "obj" +msgstr "אובייקט" -#: js/BoxesBlocks.js:211 -msgid "The Subtract-1-from block subtracts one from the value stored in a box." +#: js/blocks/MediaBlocks.js:938 +msgid "The Media block is used to import an image." msgstr "" -#: js/BoxesBlocks.js:222 -msgid "subtract 1 from" +#: js/blocks/MediaBlocks.js:973 +msgid "The Text block holds a text string." msgstr "" -#: js/BoxesBlocks.js:270 -#: js/BoxesBlocks.js:387 -msgid "The Box block returns the value stored in a box." +#: js/blocks/MeterBlocks.js:34 +#.TRANS: musical meter (time signature), e.g., 4:4 +msgid "current meter" msgstr "" -#: js/BoxesBlocks.js:500 -#: js/BoxesBlocks.js:576 -msgid "The Store in block will store a value in a box." +#: js/blocks/MeterBlocks.js:85 +#.TRANS: number of beats per minute +msgid "beat factor" msgstr "" -#: js/BoxesBlocks.js:652 -msgid "The Box2 block returns the value stored in Box2." +#: js/blocks/MeterBlocks.js:161 +msgid "The Beats per minute block returns the current beats per minute." msgstr "" -#: js/BoxesBlocks.js:703 -msgid "The Store in Box2 block is used to store a value in Box2." +#: js/blocks/MeterBlocks.js:169 +#: js/widgets/status.js:152 +#.TRANS: number of beats played per minute +msgid "beats per minute2" msgstr "" -#: js/BoxesBlocks.js:715 -msgid "store in box2" +#: js/blocks/MeterBlocks.js:169 +#: js/blocks/MeterBlocks.js:1056 +#: js/blocks/MeterBlocks.js:1133 +#: js/blocks/MeterBlocks.js:1211 +#.TRANS: sets tempo by defining a beat and beats per minute +msgid "beats per minute" msgstr "" -#: js/BoxesBlocks.js:761 -msgid "The Box1 block returns the value stored in Box1." +#: js/blocks/MeterBlocks.js:233 +#.TRANS: count of current musical measure in meter +msgid "measure count" msgstr "" -#: js/BoxesBlocks.js:812 -msgid "The Store in Box1 block is used to store a value in Box1." +#: js/blocks/MeterBlocks.js:241 +msgid "The Measure count block returns the current measure." msgstr "" -#: js/BoxesBlocks.js:826 -msgid "store in box1" +#: js/blocks/MeterBlocks.js:290 +#.TRANS: count of current beat in the meter +msgid "beat count" msgstr "" -#: js/HeapBlocks.js:49 -msgid "The Heap block returns the heap." +#: js/blocks/MeterBlocks.js:300 +#: js/blocks/MeterBlocks.js:311 +#: js/blocks/MeterBlocks.js:565 +#: js/blocks/MeterBlocks.js:576 +msgid "The Beat count block is the number of the current beat," msgstr "" -#: js/HeapBlocks.js:133 -msgid "show heap" -msgstr "הצג מחסנית FILO" - -#: js/HeapBlocks.js:181 -msgid "The Heap-length block returns the length of the heap." +#: js/blocks/MeterBlocks.js:313 +#: js/blocks/MeterBlocks.js:578 +msgid "eg 1, 2, 3, or 4." msgstr "" -#: js/HeapBlocks.js:195 -msgid "heap length" +#: js/blocks/MeterBlocks.js:368 +#.TRANS: count the number of notes +msgid "sum note values" msgstr "" -#: js/HeapBlocks.js:254 -msgid "The Heap-empty? block returns true if the heap is empty." +#: js/blocks/MeterBlocks.js:376 +#: js/blocks/MeterBlocks.js:440 +msgid "The Note counter block can be used to count the number of contained notes." msgstr "" -#: js/HeapBlocks.js:268 -#.TRANS: Is the heap empty? -msgid "heap empty?" +#: js/blocks/MeterBlocks.js:432 +#.TRANS: count the number of notes +msgid "note counter" msgstr "" -#: js/HeapBlocks.js:317 -msgid "The Empty-heap block empties the heap." +#: js/blocks/MeterBlocks.js:496 +#.TRANS: number of whole notes that have been played +msgid "whole notes played" msgstr "" -#: js/HeapBlocks.js:327 -#: js/HeapBlocks.js:647 -#.TRANS: empty the heap -msgid "empty heap" -msgstr "רוקן מחסנית FILO" - -#: js/HeapBlocks.js:371 -msgid "The Reverse-heap block reverses the order of the heap." +#: js/blocks/MeterBlocks.js:505 +msgid "The Whole notes played block returns the total number of whole notes played." msgstr "" -#: js/HeapBlocks.js:384 -#.TRANS: reverse the order of the heap -msgid "reverse heap" +#: js/blocks/MeterBlocks.js:555 +#: js/turtleactions/DictActions.js:83 +#.TRANS: number of notes that have been played +msgid "notes played" msgstr "" -#: js/HeapBlocks.js:428 -msgid "The Index-heap block returns a value in the heap at a specified location." +#: js/blocks/MeterBlocks.js:653 +msgid "The No clock block decouples the notes from the master clock." msgstr "" -#: js/HeapBlocks.js:443 -#.TRANS: retrieve a value from the heap at index position in the heap -msgid "index heap" +#: js/blocks/MeterBlocks.js:661 +#.TRANS: don't lock notes to master clock +msgid "no clock" msgstr "" -#: js/HeapBlocks.js:523 -msgid "The Set-heap entry block sets a value in he heap at the specified location." +#: js/blocks/MeterBlocks.js:700 +msgid "on weak beat do" msgstr "" -#: js/HeapBlocks.js:619 -msgid "The Pop block removes the value at the top of the heap." +#: js/blocks/MeterBlocks.js:705 +msgid "The On-weak-beat block lets you specify actions to take on weak (off) beats." msgstr "" -#: js/HeapBlocks.js:633 -#.TRANS: pop a value off the top of the heap -msgid "pop" -msgstr "שלוף\\טען ערך" +#: js/blocks/MeterBlocks.js:750 +msgid "on strong beat" +msgstr "" -#: js/HeapBlocks.js:680 -msgid "The Push block adds a value to the top of the heap." +#: js/blocks/MeterBlocks.js:758 +msgid "The On-strong-beat block lets you specify actions to take on specified beats." msgstr "" -#: js/HeapBlocks.js:696 -#.TRANS: push a value onto the top of the heap -msgid "push" -msgstr "דחוף\\שמור ערך" +#: js/blocks/MeterBlocks.js:769 +msgid "beat" +msgstr "" -#: js/FlowBlocks.js:41 -msgid "The Backward block runs code in reverse order (Musical retrograde)." +#: js/blocks/MeterBlocks.js:813 +msgid "on every beat do" msgstr "" -#: js/FlowBlocks.js:48 -msgid "backward" +#: js/blocks/MeterBlocks.js:821 +msgid "The On-every-beat block lets you specify actions to take on every beat." msgstr "" -#: js/FlowBlocks.js:124 -msgid "The Duplicate block will run each block multiple times." +#: js/blocks/MeterBlocks.js:874 +msgid "on every note do" msgstr "" -#: js/FlowBlocks.js:136 -msgid "duplicate" +#: js/blocks/MeterBlocks.js:882 +msgid "The On-every-note block lets you specify actions to take on every note." msgstr "" -#: js/FlowBlocks.js:334 -msgid "The Default block is used inside of a Switch to define the default action." +#: js/blocks/MeterBlocks.js:928 +#: js/blocks/MeterBlocks.js:999 +#.TRANS: sets tempo by defining a beat and beats per minute +msgid "master beats per minute" msgstr "" -#: js/FlowBlocks.js:342 -msgid "default" +#: js/blocks/MeterBlocks.js:952 +#: js/blocks/MeterBlocks.js:1078 +#: js/blocks/MeterBlocks.js:1135 +msgid "bpm" msgstr "" -#: js/FlowBlocks.js:361 -#: js/FlowBlocks.js:418 -msgid "The Case Block must be used inside of a Switch Block." +#: js/blocks/MeterBlocks.js:952 +#: js/blocks/MeterBlocks.js:1078 +#: js/blocks/MeterBlocks.js:1135 +msgid "beat value" msgstr "" -#: js/FlowBlocks.js:389 -msgid "The Case block is used inside of a Switch to define matches." +#: js/blocks/MeterBlocks.js:1024 +#: js/blocks/MeterBlocks.js:1167 +#: js/blocks/MeterBlocks.js:1241 +msgid "Beats per minute must be > 30." msgstr "" -#: js/FlowBlocks.js:397 -msgid "case" +#: js/blocks/MeterBlocks.js:1027 +#: js/blocks/MeterBlocks.js:1170 +#: js/blocks/MeterBlocks.js:1244 +msgid "Maximum beats per minute is 1000." msgstr "" -#: js/FlowBlocks.js:446 -msgid "The Switch block will run the code in the matching Case." +#: js/blocks/MeterBlocks.js:1068 +msgid "The Beats per minute block sets the number of 1/4 notes per minute." msgstr "" -#: js/FlowBlocks.js:454 -msgid "switch" +#: js/blocks/MeterBlocks.js:1279 +#.TRANS: anacrusis +msgid "pickup" msgstr "" -#: js/FlowBlocks.js:595 -msgid "The Stop block will stop a loop" +#: js/blocks/MeterBlocks.js:1367 +msgid "number of beats" msgstr "" -#: js/FlowBlocks.js:597 -msgid "Forever, Repeat, While, or Until." +#: js/blocks/NumberBlocks.js:28 +msgid "The Int block returns an integer." msgstr "" -#: js/FlowBlocks.js:604 -#: js/phrasemaker.js:3799 -#: js/musickeyboard.js:629 -#: js/musickeyboard.js:631 -#: js/timbre.js:417 -#: js/timbre.js:419 -#: plugins/rodi.rtp:29 -#: plugins/rodi.rtp:73 -#: plugins/rodi.rtp:413 -msgid "stop" -msgstr "עצור" +#: js/blocks/NumberBlocks.js:34 +msgid "int" +msgstr "" -#: js/FlowBlocks.js:653 -msgid "The Waitfor block will wait until the condition is true." +#: js/blocks/NumberBlocks.js:73 +msgid "The Mod block returns the remainder from a division." msgstr "" -#: js/FlowBlocks.js:661 -msgid "wait for" -msgstr "לחכות ל" +#: js/blocks/NumberBlocks.js:79 +msgid "mod" +msgstr "mod" -#: js/FlowBlocks.js:732 -msgid "The Until block will repeat until the condition is true." +#: js/blocks/NumberBlocks.js:141 +msgid "The Power block calculates a power function." msgstr "" -#: js/FlowBlocks.js:740 -msgid "until" -msgstr "עד_ש" +#: js/blocks/NumberBlocks.js:196 +msgid "The Sqrt block returns the square root." +msgstr "" -#: js/FlowBlocks.js:742 -#: js/FlowBlocks.js:822 -msgid "do2" -msgstr "לְבַצֵעַ" +#: js/blocks/NumberBlocks.js:202 +msgid "sqrt" +msgstr "שורש ריבועי" -#: js/FlowBlocks.js:812 -msgid "The While block will repeat while the condition is true." +#: js/blocks/NumberBlocks.js:248 +msgid "The Abs block returns the absolute value." msgstr "" -#: js/FlowBlocks.js:820 -msgid "while" -msgstr "כל-עוד" - -#: js/FlowBlocks.js:903 -#: js/FlowBlocks.js:968 -#: js/FlowBlocks.js:979 -msgid "In this example if the mouse button is pressed a snare drum will play." +#: js/blocks/NumberBlocks.js:254 +msgid "abs" msgstr "" -#: js/FlowBlocks.js:925 -#: js/FlowBlocks.js:988 -msgid "if" -msgstr "אם" +#: js/blocks/NumberBlocks.js:295 +msgid "The Distance block returns the distance between two points. For example, between the mouse and the center of the screen." +msgstr "" -#: js/FlowBlocks.js:927 -#: js/FlowBlocks.js:990 -msgid "then" -msgstr "אז" +#: js/blocks/NumberBlocks.js:301 +#: plugins/rodi.rtp:310 +msgid "distance" +msgstr "" -#: js/FlowBlocks.js:927 -msgid "else" -msgstr "ואם לא" +#: js/blocks/NumberBlocks.js:361 +msgid "The Divide block is used to divide." +msgstr "" -#: js/FlowBlocks.js:1025 -msgid "The Forever block will repeat the contained blocks forever." +#: js/blocks/NumberBlocks.js:441 +msgid "The Multiply block is used to multiply." msgstr "" -#: js/FlowBlocks.js:1037 -msgid "forever" -msgstr "תמיד" +#: js/blocks/NumberBlocks.js:612 +msgid "The Minus block is used to subtract." +msgstr "" -#: js/FlowBlocks.js:1073 -msgid "The Repeat block will repeat the contained blocks." +#: js/blocks/NumberBlocks.js:723 +msgid "The Plus block is used to add." msgstr "" -#: js/FlowBlocks.js:1075 -msgid "In this example the note will be played 4 times." +#: js/blocks/NumberBlocks.js:849 +msgid "The One-of block returns one of two choices." msgstr "" -#: js/FlowBlocks.js:1083 -msgid "repeat" -msgstr "חזור" +#: js/blocks/NumberBlocks.js:856 +#: js/blocks/PitchBlocks.js:616 +msgid "one of" +msgstr "אחד מ" -#: js/FlowBlocks.js:1123 -msgid "duplicate factor" -msgstr "" +#: js/blocks/NumberBlocks.js:858 +msgid "this" +msgstr "זה" -#: js/PitchBlocks.js:39 -#: js/musicutils.js:722 -#: js/musicutils.js:1117 -#: js/synthutils.js:112 -#.TRANS: square wave -msgid "square" -msgstr "" +#: js/blocks/NumberBlocks.js:858 +msgid "that" +msgstr "זה" -#: js/PitchBlocks.js:62 -#: js/ToneBlocks.js:39 -#: js/musicutils.js:723 -#: js/musicutils.js:1118 -#: js/synthutils.js:116 -#.TRANS: triangle wave -msgid "triangle" +#: js/blocks/NumberBlocks.js:913 +msgid "The Random block returns a random number." msgstr "" -#: js/PitchBlocks.js:85 -#: js/musicutils.js:721 -#: js/musicutils.js:1116 -#: js/synthutils.js:110 -#.TRANS: sine wave -msgid "sine" +#: js/blocks/NumberBlocks.js:920 +msgid "random" +msgstr "מספר אקראי" + +#: js/blocks/NumberBlocks.js:922 +msgid "min" +msgstr "מינימום" + +#: js/blocks/NumberBlocks.js:922 +msgid "max" +msgstr "מקסימום" + +#: js/blocks/NumberBlocks.js:986 +msgid "The Number block holds a number." msgstr "" -#: js/PitchBlocks.js:108 -#: js/musicutils.js:724 -#: js/musicutils.js:1119 -#: js/synthutils.js:114 -#.TRANS: sawtooth wave -msgid "sawtooth" +#: js/blocks/OrnamentBlocks.js:32 +msgid "staccato factor" msgstr "" -#: js/PitchBlocks.js:141 -#.TRANS: musical transposition (adjustment of pitch up or down) -msgid "transposition" +#: js/blocks/OrnamentBlocks.js:108 +msgid "slur factor" msgstr "" -#: js/PitchBlocks.js:168 -#.TRANS: step down one note in current musical scale -msgid "scalar step down" +#: js/blocks/OrnamentBlocks.js:217 +#: js/blocks/OrnamentBlocks.js:309 +#.TRANS: the neighbor refers to a neighboring note, e.g., D is a neighbor of C +msgid "neighbor" msgstr "" -#: js/PitchBlocks.js:172 -msgid "The Scalar step down block returns the number of semi-tones down to the previous note in the current key and mode." +#: js/blocks/OrnamentBlocks.js:293 +msgid "The Neighbor block rapidly switches between neighboring pitches." msgstr "" -#: js/PitchBlocks.js:190 -#.TRANS: step up one note in current musical scale -msgid "scalar step up" +#: js/blocks/OrnamentBlocks.js:364 +msgid "glide" msgstr "" -#: js/PitchBlocks.js:194 -msgid "The Scalar step up block returns the number of semi-tones up to the next note in the current key and mode." +#: js/blocks/OrnamentBlocks.js:479 +#: js/blocks/OrnamentBlocks.js:643 +msgid "slur" msgstr "" -#: js/PitchBlocks.js:212 -#.TRANS: the change measured in half-steps between the current pitch and the previous pitch -msgid "change in pitch" +#: js/blocks/OrnamentBlocks.js:558 +#: js/blocks/OrnamentBlocks.js:710 +#.TRANS: play each note sharply detached from the others +msgid "staccato" msgstr "" -#: js/PitchBlocks.js:216 -msgid "The Change in pitch block is the difference (in half steps) between the current pitch being played and the previous pitch played." +#: js/blocks/RhythmBlocks.js:182 +#: js/blocks/RhythmBlocks.js:1086 +#: js/blocks/RhythmBlocks.js:1162 +msgid "Note value must be greater than 0." msgstr "" -#: js/PitchBlocks.js:243 -#.TRANS: the change measured in scale-steps between the current pitch and the previous pitch -msgid "scalar change in pitch" +#: js/blocks/RhythmBlocks.js:215 +#: js/blocks/RhythmBlocks.js:278 +#: js/blocks/RhythmBlocks.js:350 +#.TRANS: swing is a rhythmic variation that emphasises the offbeat +msgid "swing" msgstr "" -#: js/PitchBlocks.js:250 -#: js/PitchBlocks.js:432 -#: js/PitchBlocks.js:1629 -#: js/DictActions.js:89 -#: js/temperament.js:477 -#: js/temperament.js:481 -#: js/temperament.js:714 -#.TRANS: convert current note to piano key (1-88) -#.TRANS: a mapping of pitch to the 88 piano keys -msgid "pitch number" +#: js/blocks/RhythmBlocks.js:355 +#.TRANS: the amount to shift to the offbeat note +msgid "swing value" msgstr "" -#: js/PitchBlocks.js:256 -msgid "The Pitch number block is the value of the pitch of the note currently being played." +#: js/blocks/RhythmBlocks.js:419 +msgid "The Skip notes block will cause notes to be skipped." msgstr "" -#: js/PitchBlocks.js:329 -#: js/PitchBlocks.js:433 -#.TRANS: the current pitch expressed in Hertz -msgid "pitch in hertz" +#: js/blocks/RhythmBlocks.js:427 +#.TRANS: substitute rests on notes being skipped +msgid "skip notes" msgstr "" -#: js/PitchBlocks.js:334 -msgid "The Pitch in Hertz block is the value in Hertz of the pitch of the note currently being played." +#: js/blocks/RhythmBlocks.js:489 +#.TRANS: speed up note duration by some factor, e.g. convert 1/4 to 1/8 notes by using a factor of 2 +msgid "multiply note value" msgstr "" -#: js/PitchBlocks.js:367 -#: js/DictActions.js:87 -msgid "current pitch" +#: js/blocks/RhythmBlocks.js:542 +msgid "The Tie block works on pairs of notes, combining them into one note." msgstr "" -#: js/PitchBlocks.js:373 -msgid "The Current Pitch block is used with the Pitch Converter block. In the example above, current pitch, sol 4, is displayed as 392 hertz." +#: js/blocks/RhythmBlocks.js:550 +#.TRANS: tie notes together into one longer note +msgid "tie" msgstr "" -#: js/PitchBlocks.js:410 -msgid "This block converts the pitch value of the last note played into different formats such as hertz, letter name, pitch number, et al." +#: js/blocks/RhythmBlocks.js:591 +#: js/blocks/RhythmBlocks.js:671 +#.TRANS: a dotted note is played for 1.5x its value, e.g., 1/8. --> 3/16 +msgid "dot" msgstr "" -#: js/PitchBlocks.js:434 -msgid "alphabet" +#: js/blocks/RhythmBlocks.js:619 +#: js/turtleactions/RhythmActions.js:221 +msgid "An argument of -1 results in a note value of 0." msgstr "" -#: js/PitchBlocks.js:436 -#.TRANS: Translate as "alphabet class" -msgid "letter class" +#: js/blocks/RhythmBlocks.js:661 +msgid "The Dot block extends the duration of a note by 50%." msgstr "" -#: js/PitchBlocks.js:437 -msgid "solfege class" +#: js/blocks/RhythmBlocks.js:663 +msgid "Eg a dotted quarter note will play for 3/8 (1/4 + 1/8) of a beat." msgstr "" -#: js/PitchBlocks.js:438 -msgid "staff y" +#: js/blocks/RhythmBlocks.js:765 +#.TRANS: Japanese only: note value block for drum +msgid "note value drum" msgstr "" -#: js/PitchBlocks.js:439 -msgid "solfege syllable" +#: js/blocks/RhythmBlocks.js:829 +msgid "392 hertz" msgstr "" -#: js/PitchBlocks.js:440 -msgid "pitch class" +#: js/blocks/RhythmBlocks.js:1119 +msgid "The Note block is a container for one or more Pitch blocks." msgstr "" -#: js/PitchBlocks.js:441 -msgid "scalar class" +#: js/blocks/RhythmBlocks.js:1121 +msgid "The Note block specifies the duration (note value) of its contents." msgstr "" -#: js/PitchBlocks.js:443 -msgid "nth degree" -msgstr "" +#: js/blocks/RhythmBlocks.js:1128 +#: js/blocks/PitchBlocks.js:974 +#: js/blocks/PitchBlocks.js:1007 +#: js/blocks/ProgramBlocks.js:1186 +#: js/blocks/ProgramBlocks.js:1227 +#: js/widgets/status.js:190 +#: js/widgets/temperament.js:464 +#: js/widgets/temperament.js:486 +#: js/widgets/temperament.js:496 +#: js/widgets/temperament.js:617 +#: plugins/rodi.rtp:192 +#.TRANS: a musical note consisting of pitch and duration +msgid "note" +msgstr "הערה" -#: js/PitchBlocks.js:444 -msgid "pitch to shade" +#: js/blocks/RhythmBlocks.js:1130 +msgid "value2" msgstr "" -#: js/PitchBlocks.js:445 -msgid "pitch to color" +#: js/blocks/RhythmBlocks.js:1200 +msgid "define frequency" msgstr "" -#: js/PitchBlocks.js:629 -#: js/musickeyboard.js:565 -#.TRANS: MIDI is a technical standard for electronic music -msgid "MIDI" +#: js/blocks/RhythmBlocks.js:1218 +#: js/widgets/temperament.js:787 +#: js/widgets/temperament.js:1587 +msgid "octave space" msgstr "" -#: js/PitchBlocks.js:642 -#.TRANS: set an offset associated with the numeric piano keyboard mapping -msgid "set pitch number offset" +#: js/blocks/SensorsBlocks.js:36 +msgid "The Input block prompts for keyboard input." msgstr "" -#: js/PitchBlocks.js:645 -msgid "The Set pitch number offset block is used to set the offset for mapping pitch numbers to pitch and octave." +#: js/blocks/SensorsBlocks.js:46 +msgid "input" msgstr "" -#: js/PitchBlocks.js:679 -#.TRANS: convert piano key number (1-88) to pitch -msgid "number to pitch" +#: js/blocks/SensorsBlocks.js:64 +msgid "Input a value" msgstr "" -#: js/PitchBlocks.js:682 -msgid "The Number to pitch block will convert a pitch number to a pich name." +#: js/blocks/SensorsBlocks.js:126 +msgid "input value" msgstr "" -#: js/PitchBlocks.js:715 -#.TRANS: convert piano key number (1-88) to octave -msgid "number to octave" +#: js/blocks/SensorsBlocks.js:131 +msgid "The Input-value block stores the input." msgstr "" -#: js/PitchBlocks.js:717 -msgid "The Number to octave block will convert a pitch number to an octave." -msgstr "" +#: js/blocks/SensorsBlocks.js:238 +msgid "loudness" +msgstr "עוצמת קול" -#: js/PitchBlocks.js:726 -msgid "y to pitch" +#: js/blocks/SensorsBlocks.js:245 +msgid "The Loudness block returns the volume detected by the microphone." msgstr "" -#: js/PitchBlocks.js:729 -msgid "Y to pitch block will convert a staff y position to corresponding pitch notation." +#: js/blocks/SensorsBlocks.js:300 +msgid "click" msgstr "" -#: js/PitchBlocks.js:841 -msgid "accidental selector" +#: js/blocks/SensorsBlocks.js:306 +msgid "The Click block triggers an event if a mouse has been clicked." msgstr "" -#: js/PitchBlocks.js:844 -msgid "The Accidental selector block is used to choose between double-sharp, sharp, natural, flat, and double-flat." +#: js/blocks/SensorsBlocks.js:313 +msgid "The Click block triggers an event if a turtle has been clicked." msgstr "" -#: js/PitchBlocks.js:858 -msgid "Pitch can be specified in terms of ni dha pa ma ga re sa." +#: js/blocks/SensorsBlocks.js:342 +msgid "cursor over" msgstr "" -#: js/PitchBlocks.js:872 -msgid "Pitch can be specified in terms of C D E F G A B." +#: js/blocks/SensorsBlocks.js:387 +msgid "cursor out" msgstr "" -#: js/PitchBlocks.js:883 -msgid "solfege" +#: js/blocks/SensorsBlocks.js:433 +msgid "cursor button down" msgstr "" -#: js/PitchBlocks.js:886 -msgid "Pitch can be specified in terms of do re mi fa sol la ti." +#: js/blocks/SensorsBlocks.js:477 +msgid "cursor button up" msgstr "" -#: js/PitchBlocks.js:920 -msgid "The Invert block rotates any contained notes around a target note." +#: js/blocks/SensorsBlocks.js:521 +#: js/blocks/PenBlocks.js:48 +#: plugins/rodi.rtp:219 +msgid "blue" msgstr "" -#: js/PitchBlocks.js:927 -#.TRANS: pitch inversion rotates a pitch around another pitch -msgid "invert" +#: js/blocks/SensorsBlocks.js:577 +#: js/blocks/PenBlocks.js:64 +#: plugins/rodi.rtp:218 +msgid "green" msgstr "" -#: js/PitchBlocks.js:929 -#: js/PitchBlocks.js:935 -#: js/PitchActions.js:727 -#: js/musicutils.js:726 -#: js/musicutils.js:902 -#.TRANS: invert based on even or odd number or musical scale -#.TRANS: even numbers -msgid "even" +#: js/blocks/SensorsBlocks.js:633 +#: js/blocks/PenBlocks.js:112 +#: plugins/rodi.rtp:217 +msgid "red" msgstr "" -#: js/PitchBlocks.js:935 -#: js/PitchActions.js:729 -#: js/musicutils.js:728 -#: js/musicutils.js:903 -#.TRANS: odd numbers -msgid "odd" +#: js/blocks/SensorsBlocks.js:638 +msgid "The Get red block returns the red component of the pixel under the mouse." msgstr "" -#: js/PitchBlocks.js:935 -#: js/PitchActions.js:731 -#: js/musicutils.js:729 -#: js/musicutils.js:904 -msgid "scalar" +#: js/blocks/SensorsBlocks.js:644 +msgid "The Get red block returns the red component of the pixel under the turtle." msgstr "" -#: js/PitchBlocks.js:966 -#.TRANS: pitch inversion rotates a pitch around another pitch (odd number) -msgid "invert (odd)" -msgstr "" +#: js/blocks/SensorsBlocks.js:685 +#: plugins/rodi.rtp:216 +msgid "pixel color" +msgstr "צבע פיקסל" -#: js/PitchBlocks.js:999 -#.TRANS: pitch inversion rotates a pitch around another pitch (even number) -msgid "invert (even)" +#: js/blocks/SensorsBlocks.js:690 +msgid "The Get pixel block returns the color of the pixel under the mouse." msgstr "" -#: js/PitchBlocks.js:1020 -#.TRANS: register is the octave of the current pitch -msgid "register" +#: js/blocks/SensorsBlocks.js:696 +msgid "The Get pixel block returns the color of the pixel under the turtle." msgstr "" -#: js/PitchBlocks.js:1024 -msgid "The Register block provides an easy way to modify the register (octave) of the notes that follow it." -msgstr "" +#: js/blocks/SensorsBlocks.js:758 +msgid "time" +msgstr "זמן" -#: js/PitchBlocks.js:1074 -msgid "The Semi-tone transposition block will shift the pitches contained inside Note blocks up (or down) by half steps." +#: js/blocks/SensorsBlocks.js:804 +msgid "cursor y" msgstr "" -#: js/PitchBlocks.js:1076 -msgid "In the example shown above, sol is shifted up to sol#." +#: js/blocks/SensorsBlocks.js:809 +msgid "The Cursor Y block returns the vertical position of the mouse." msgstr "" -#: js/PitchBlocks.js:1082 -#.TRANS: adjust the amount of shift (up or down) of a pitch -msgid "semi-tone transpose" +#: js/blocks/SensorsBlocks.js:845 +msgid "cursor x" msgstr "" -#: js/PitchBlocks.js:1115 -msgid "The Transpose by Ratio block will shift the pitches contained inside Note blocks up (or down) by a ratio" +#: js/blocks/SensorsBlocks.js:850 +msgid "The Cursor X block returns the horizontal position of the mouse." msgstr "" -#: js/PitchBlocks.js:1121 -#.TRANS: adjust the amount of shift (up or down) of a pitch -msgid "transpose by ratio" -msgstr "" +#: js/blocks/SensorsBlocks.js:886 +msgid "mouse button" +msgstr "כפתור לחוץ" -#: js/PitchBlocks.js:1204 -#.TRANS: down sixth means the note is five scale degrees below current note -msgid "down sixth" +#: js/blocks/SensorsBlocks.js:888 +msgid "The Mouse-button block returns True if the mouse button is pressed." msgstr "" -#: js/PitchBlocks.js:1223 -#.TRANS: down third means the note is two scale degrees below current note -msgid "down third" +#: js/blocks/SensorsBlocks.js:934 +msgid "to ASCII" msgstr "" -#: js/PitchBlocks.js:1242 -#.TRANS: seventh means the note is the six scale degrees above current note -msgid "seventh" +#: js/blocks/SensorsBlocks.js:938 +msgid "The To ASCII block converts numbers to letters." msgstr "" -#: js/PitchBlocks.js:1261 -#.TRANS: sixth means the note is the five scale degrees above current note -msgid "sixth" +#: js/blocks/SensorsBlocks.js:1005 +msgid "The Keyboard block returns computer keyboard input." msgstr "" -#: js/PitchBlocks.js:1280 -#.TRANS: fifth means the note is the four scale degrees above current note -msgid "fifth" -msgstr "" +#: js/blocks/RhythmBlockPaletteBlocks.js:50 +#: js/blocks/RhythmBlockPaletteBlocks.js:233 +#.TRANS: rhythm block +#.TRANS: translate "rhythm1" as rhythm +msgid "rhythm1" +msgstr "קֶצֶב" -#: js/PitchBlocks.js:1300 -#.TRANS: fourth means the note is three scale degrees above current note -msgid "fourth" -msgstr "" +#: js/blocks/RhythmBlockPaletteBlocks.js:70 +#: js/blocks/RhythmBlockPaletteBlocks.js:252 +#: js/blocks/RhythmBlockPaletteBlocks.js:485 +#: js/blocks/RhythmBlockPaletteBlocks.js:554 +#: js/blocks/RhythmBlockPaletteBlocks.js:875 +msgid "number of notes" +msgstr "מספר הערות" -#: js/PitchBlocks.js:1319 -#.TRANS: third means the note is two scale degrees above current note -msgid "third" -msgstr "" +#: js/blocks/RhythmBlockPaletteBlocks.js:126 +msgid "polyphonic rhythm" +msgstr "קצב פוליפוני" -#: js/PitchBlocks.js:1338 -#.TRANS: second means the note is one scale degree above current note -msgid "second" -msgstr "" +#: js/blocks/RhythmBlockPaletteBlocks.js:219 +msgid "The Rhythm block is used to generate rhythm patterns." +msgstr "בלוק הקצב משמש ליצירת דפוסי קצב." -#: js/PitchBlocks.js:1379 -msgid "The Scalar transposition block will shift the pitches contained inside Note blocks up (or down) the scale." -msgstr "" +#: js/blocks/RhythmBlockPaletteBlocks.js:280 +msgid "1/64 note" +msgstr "הערה 1/64" -#: js/PitchBlocks.js:1381 -msgid "In the example shown above, sol is shifted up to la." -msgstr "" +#: js/blocks/RhythmBlockPaletteBlocks.js:304 +msgid "1/32 note" +msgstr "הערה 1/32" -#: js/PitchBlocks.js:1388 -#.TRANS: adjust the amount of shift (up or down) of a pitch by musical scale (scalar) steps -msgid "scalar transpose" -msgstr "" +#: js/blocks/RhythmBlockPaletteBlocks.js:332 +msgid "1/16 note" +msgstr "הערה 1/16" -#: js/PitchBlocks.js:1423 -msgid "The Accidental block is used to create sharps and flats" -msgstr "" +#: js/blocks/RhythmBlockPaletteBlocks.js:360 +msgid "eighth note" +msgstr "הערה 1/8" -#: js/PitchBlocks.js:1430 -#.TRANS: An accidental is a modification to a pitch, e.g., sharp or flat. -msgid "accidental override" +#: js/blocks/RhythmBlockPaletteBlocks.js:388 +msgid "quarter note" +msgstr "הערה 1/4" + +#: js/blocks/RhythmBlockPaletteBlocks.js:416 +msgid "half note" +msgstr "הערה 1/2" + +#: js/blocks/RhythmBlockPaletteBlocks.js:444 +msgid "whole note" +msgstr "פתק שלם" + +#: js/blocks/RhythmBlockPaletteBlocks.js:482 +#: js/blocks/RhythmBlockPaletteBlocks.js:551 +#: js/blocks/RhythmBlockPaletteBlocks.js:602 +#.TRANS: A tuplet is a note value divided into irregular time values. +msgid "tuplet" +msgstr "טופלת" + +#: js/blocks/RhythmBlockPaletteBlocks.js:768 +msgid "septuplet" msgstr "" -#: js/PitchBlocks.js:1543 -msgid "The Hertz block (in combination with a Number block) will play a sound at the specified frequency." +#: js/blocks/RhythmBlockPaletteBlocks.js:796 +msgid "quintuplet" msgstr "" -#: js/PitchBlocks.js:1633 -msgid "The Pitch Number block will play a pitch associated by its number, e.g. 0 for C and 7 for G." +#: js/blocks/RhythmBlockPaletteBlocks.js:824 +msgid "triplet" +msgstr "שְׁלִישִׁיָה" + +#: js/blocks/RhythmBlockPaletteBlocks.js:851 +msgid "simple tuplet" msgstr "" -#: js/PitchBlocks.js:1665 -#: js/PitchBlocks.js:1707 -#.TRANS: a numeric mapping of the notes in an octave based on the musical mode -#.TRANS: a numeric mapping of the notes in an octave based on the musical mode -msgid "nth modal pitch" +#: js/blocks/RhythmBlockPaletteBlocks.js:861 +msgid "Tuplets are a collection of notes that get scaled to a specific duration." +msgstr "Tuplets הם אוסף של הערות המותאמות לזמן מסוים." + +#: js/blocks/DrumBlocks.js:59 +msgid "The Noise name block is used to select a noise synthesizer." msgstr "" -#: js/PitchBlocks.js:1668 -msgid "n^th Modal Pitch takes the pattern of pitches in semitones for a mode and makes each point a degree of the mode," +#: js/blocks/DrumBlocks.js:102 +msgid "The Drum name block is used to select a drum." msgstr "" -#: js/PitchBlocks.js:1670 -msgid "starting from 1 and regardless of tonal framework (i.e. not always 8 notes in the octave)" +#: js/blocks/DrumBlocks.js:146 +msgid "The Effects name block is used to select a sound effect." msgstr "" -#: js/PitchBlocks.js:1711 -msgid "N^th Modal Pitch takes a number as an input as the n^th degree for the given mode. 0 is the first position, 1 is the second, -1 is the note before the first etc." +#: js/blocks/DrumBlocks.js:163 +msgid "noise" msgstr "" -#: js/PitchBlocks.js:1713 -msgid "The pitches change according to the mode specified without any need for respellings." +#: js/blocks/DrumBlocks.js:177 +msgid "The Play noise block will generate white, pink, or brown noise." msgstr "" -#: js/PitchBlocks.js:1752 -msgid "Scale Degree is a common convention in music. Scale Degree offers seven possible positions in the scale (1-7) and can be modified via accidentals." +#: js/blocks/DrumBlocks.js:317 +msgid "Replace every instance of a pitch with a drum sound." msgstr "" -#: js/PitchBlocks.js:1754 -msgid "Scale Degree 1 is always the first pitch in a given scale, regardless of octave." +#: js/blocks/DrumBlocks.js:328 +#.TRANS: map a pitch to a drum sound +msgid "map pitch to drum" msgstr "" -#: js/PitchBlocks.js:1776 -#.TRANS: step some number of notes in current musical scale -msgid "scalar step" +#: js/blocks/DrumBlocks.js:395 +msgid "In the example above, a kick drum sound will be played instead of sol." msgstr "" -#: js/PitchBlocks.js:1781 -msgid "The Scalar Step block (in combination with a Number block) will play the next pitch in a scale," +#: js/blocks/DrumBlocks.js:407 +#.TRANS: set the current drum sound for playback +msgid "set drum" msgstr "" -#: js/PitchBlocks.js:1783 -msgid "eg if the last note played was sol, Scalar Step 1 will play la." +#: js/blocks/DrumBlocks.js:451 +msgid "sound effect" msgstr "" -#: js/PitchBlocks.js:1818 -msgid "The Pitch block specifies the pitch name and octave of a note that together determine the frequency of the note." +#: js/blocks/DrumBlocks.js:489 +msgid "You can use multiple Drum blocks within a Note block." msgstr "" -#: js/GraphicsBlocks.js:46 -#: js/DictActions.js:77 -#: js/DictActions.js:155 -#: js/DictActions.js:189 +#: js/blocks/GraphicsBlocks.js:46 +#: js/turtleactions/DictActions.js:77 +#: js/turtleactions/DictActions.js:144 +#: js/turtleactions/DictActions.js:173 msgid "heading" msgstr "כיוון (אזימוט)" -#: js/GraphicsBlocks.js:56 +#: js/blocks/GraphicsBlocks.js:56 msgid "The Heading block returns the orientation of the mouse." msgstr "" -#: js/GraphicsBlocks.js:62 +#: js/blocks/GraphicsBlocks.js:62 msgid "The Heading block returns the orientation of the turtle." msgstr "" -#: js/GraphicsBlocks.js:133 +#: js/blocks/GraphicsBlocks.js:133 msgid "The Y block returns the vertical position of the mouse." msgstr "" -#: js/GraphicsBlocks.js:140 +#: js/blocks/GraphicsBlocks.js:140 msgid "The Y block returns the vertical position of the turtle." msgstr "" -#: js/GraphicsBlocks.js:149 +#: js/blocks/GraphicsBlocks.js:149 msgid "y3" msgstr "" -#: js/GraphicsBlocks.js:219 +#: js/blocks/GraphicsBlocks.js:219 msgid "The X block returns the horizontal position of the mouse." msgstr "" -#: js/GraphicsBlocks.js:226 +#: js/blocks/GraphicsBlocks.js:226 msgid "The X block returns the horizontal position of the turtle." msgstr "" -#: js/GraphicsBlocks.js:235 +#: js/blocks/GraphicsBlocks.js:235 msgid "x3" msgstr "" -#: js/GraphicsBlocks.js:295 +#: js/blocks/GraphicsBlocks.js:295 msgid "scroll xy" msgstr "" -#: js/GraphicsBlocks.js:303 +#: js/blocks/GraphicsBlocks.js:303 msgid "The Scroll XY block moves the canvas." msgstr "" -#: js/GraphicsBlocks.js:313 +#: js/blocks/GraphicsBlocks.js:313 msgid "x2" msgstr "" -#: js/GraphicsBlocks.js:313 +#: js/blocks/GraphicsBlocks.js:313 msgid "y2" msgstr "" -#: js/GraphicsBlocks.js:373 -#: js/temperament.js:213 -#: js/temperament.js:241 +#: js/blocks/GraphicsBlocks.js:373 +#: js/widgets/temperament.js:319 +#: js/widgets/temperament.js:347 msgid "clear" msgstr "נקה" -#: js/GraphicsBlocks.js:426 +#: js/blocks/GraphicsBlocks.js:426 msgid "The Control-point 2 block sets the second control point for the Bezier curve." msgstr "" -#: js/GraphicsBlocks.js:433 +#: js/blocks/GraphicsBlocks.js:433 msgid "control point 2" msgstr "" -#: js/GraphicsBlocks.js:436 -#: js/GraphicsBlocks.js:487 -#: js/GraphicsBlocks.js:534 -#: js/GraphicsBlocks.js:750 +#: js/blocks/GraphicsBlocks.js:436 +#: js/blocks/GraphicsBlocks.js:487 +#: js/blocks/GraphicsBlocks.js:534 +#: js/blocks/GraphicsBlocks.js:750 msgid "x1" msgstr "" -#: js/GraphicsBlocks.js:436 -#: js/GraphicsBlocks.js:487 -#: js/GraphicsBlocks.js:534 -#: js/GraphicsBlocks.js:750 +#: js/blocks/GraphicsBlocks.js:436 +#: js/blocks/GraphicsBlocks.js:487 +#: js/blocks/GraphicsBlocks.js:534 +#: js/blocks/GraphicsBlocks.js:750 msgid "y1" msgstr "" -#: js/GraphicsBlocks.js:477 +#: js/blocks/GraphicsBlocks.js:477 msgid "The Control-point 1 block sets the first control point for the Bezier curve." msgstr "" -#: js/GraphicsBlocks.js:484 +#: js/blocks/GraphicsBlocks.js:484 msgid "control point 1" msgstr "" -#: js/GraphicsBlocks.js:527 +#: js/blocks/GraphicsBlocks.js:527 msgid "The Bezier block draws a Bezier curve." msgstr "" -#: js/GraphicsBlocks.js:531 +#: js/blocks/GraphicsBlocks.js:531 msgid "bezier" msgstr "" -#: js/GraphicsBlocks.js:592 +#: js/blocks/GraphicsBlocks.js:592 msgid "The Arc block moves the turtle in an arc." msgstr "" -#: js/GraphicsBlocks.js:600 +#: js/blocks/GraphicsBlocks.js:600 msgid "arc" msgstr "קשת" -#: js/GraphicsBlocks.js:603 +#: js/blocks/GraphicsBlocks.js:603 msgid "angle" msgstr "זווית" -#: js/GraphicsBlocks.js:603 +#: js/blocks/GraphicsBlocks.js:603 msgid "radius" msgstr "רדיוס" -#: js/GraphicsBlocks.js:620 -#: js/GraphicsBlocks.js:767 -#: js/GraphicsBlocks.js:1010 -#: js/GraphicsBlocks.js:1093 +#: js/blocks/GraphicsBlocks.js:620 +#: js/blocks/GraphicsBlocks.js:767 +#: js/blocks/GraphicsBlocks.js:1010 +#: js/blocks/GraphicsBlocks.js:1093 msgid "Value must be within -5000 to 5000 when Wrap Mode is off." msgstr "" -#: js/GraphicsBlocks.js:622 -#: js/GraphicsBlocks.js:769 -#: js/GraphicsBlocks.js:1012 -#: js/GraphicsBlocks.js:1095 +#: js/blocks/GraphicsBlocks.js:622 +#: js/blocks/GraphicsBlocks.js:769 +#: js/blocks/GraphicsBlocks.js:1012 +#: js/blocks/GraphicsBlocks.js:1095 msgid "Value must be within -20000 to 20000 when Wrap Mode is on." msgstr "" -#: js/GraphicsBlocks.js:660 +#: js/blocks/GraphicsBlocks.js:660 msgid "set heading" msgstr "קבע אזימוט (כיוון)" -#: js/GraphicsBlocks.js:673 +#: js/blocks/GraphicsBlocks.js:673 msgid "The Set heading block sets the heading of the turtle." msgstr "" -#: js/GraphicsBlocks.js:733 +#: js/blocks/GraphicsBlocks.js:733 msgid "The Set XY block moves the mouse to a specific position on the screen." msgstr "" -#: js/GraphicsBlocks.js:739 +#: js/blocks/GraphicsBlocks.js:739 msgid "The Set XY block moves the turtle to a specific position on the screen." msgstr "" -#: js/GraphicsBlocks.js:747 +#: js/blocks/GraphicsBlocks.js:747 msgid "set xy" msgstr "XY קבע ערך" -#: js/GraphicsBlocks.js:819 +#: js/blocks/GraphicsBlocks.js:819 msgid "The Right block turns the mouse to the right." msgstr "" -#: js/GraphicsBlocks.js:826 +#: js/blocks/GraphicsBlocks.js:826 msgid "The Right block turns the turtle to the right." msgstr "" -#: js/GraphicsBlocks.js:835 +#: js/blocks/GraphicsBlocks.js:835 msgid "right1" msgstr "" -#: js/GraphicsBlocks.js:835 +#: js/blocks/GraphicsBlocks.js:835 #: plugins/rodi.rtp:77 #: plugins/rodi.rtp:340 #: plugins/rodi.rtp:375 msgid "right" msgstr "ימינה" -#: js/GraphicsBlocks.js:899 +#: js/blocks/GraphicsBlocks.js:899 msgid "The Left block turns the mouse to the left." msgstr "" -#: js/GraphicsBlocks.js:906 +#: js/blocks/GraphicsBlocks.js:906 msgid "The Left block turns the turtle to the left." msgstr "" -#: js/GraphicsBlocks.js:915 +#: js/blocks/GraphicsBlocks.js:915 msgid "left1" msgstr "" -#: js/GraphicsBlocks.js:915 +#: js/blocks/GraphicsBlocks.js:915 #: plugins/rodi.rtp:79 #: plugins/rodi.rtp:339 #: plugins/rodi.rtp:362 msgid "left" msgstr "שמאלה" -#: js/GraphicsBlocks.js:967 -#: js/temperament.js:734 -#: js/temperament.js:933 +#: js/blocks/GraphicsBlocks.js:967 +#: js/widgets/temperament.js:875 +#: js/widgets/temperament.js:1078 #: plugins/rodi.rtp:69 #: plugins/rodi.rtp:387 msgid "back" msgstr "אחורה" -#: js/GraphicsBlocks.js:976 +#: js/blocks/GraphicsBlocks.js:976 msgid "The Back block moves the mouse backward." msgstr "" -#: js/GraphicsBlocks.js:983 +#: js/blocks/GraphicsBlocks.js:983 msgid "The Back block moves the turtle backward." msgstr "" -#: js/GraphicsBlocks.js:1050 +#: js/blocks/GraphicsBlocks.js:1050 #: plugins/rodi.rtp:71 #: plugins/rodi.rtp:400 msgid "forward" msgstr "קדימה" -#: js/GraphicsBlocks.js:1059 +#: js/blocks/GraphicsBlocks.js:1059 msgid "The Forward block moves the mouse forward." msgstr "" -#: js/GraphicsBlocks.js:1066 +#: js/blocks/GraphicsBlocks.js:1066 msgid "The Forward block moves the turtle forward." msgstr "" - -#: js/GraphicsBlocks.js:1154 -#: js/GraphicsBlocks.js:1172 -msgid "wrap" -msgstr "" - -#: js/OrnamentBlocks.js:32 -msgid "staccato factor" -msgstr "" - -#: js/OrnamentBlocks.js:108 -msgid "slur factor" -msgstr "" - -#: js/OrnamentBlocks.js:217 -#: js/OrnamentBlocks.js:309 -#.TRANS: the neighbor refers to a neighboring note, e.g., D is a neighbor of C -msgid "neighbor" -msgstr "" - -#: js/OrnamentBlocks.js:293 -msgid "The Neighbor block rapidly switches between neighboring pitches." -msgstr "" - -#: js/OrnamentBlocks.js:364 -msgid "glide" -msgstr "" - -#: js/OrnamentBlocks.js:479 -#: js/OrnamentBlocks.js:643 -msgid "slur" -msgstr "" - -#: js/OrnamentBlocks.js:558 -#: js/OrnamentBlocks.js:710 -#.TRANS: play each note sharply detached from the others -msgid "staccato" -msgstr "" - -#: js/PenBlocks.js:24 -msgid "purple" -msgstr "" - -#: js/PenBlocks.js:37 -#: js/SensorsBlocks.js:521 -#: plugins/rodi.rtp:219 -msgid "blue" + +#: js/blocks/GraphicsBlocks.js:1154 +#: js/blocks/GraphicsBlocks.js:1172 +msgid "wrap" msgstr "" -#: js/PenBlocks.js:50 -#: js/SensorsBlocks.js:577 -#: plugins/rodi.rtp:218 -msgid "green" +#: js/blocks/PenBlocks.js:30 +msgid "purple" msgstr "" -#: js/PenBlocks.js:63 +#: js/blocks/PenBlocks.js:80 msgid "yellow" msgstr "" -#: js/PenBlocks.js:76 +#: js/blocks/PenBlocks.js:96 #: plugins/nutrition.rtp:164 msgid "orange" msgstr "תפוז" -#: js/PenBlocks.js:89 -#: js/SensorsBlocks.js:633 -#: plugins/rodi.rtp:217 -msgid "red" -msgstr "" - -#: js/PenBlocks.js:102 +#: js/blocks/PenBlocks.js:128 msgid "white" msgstr "" -#: js/PenBlocks.js:115 +#: js/blocks/PenBlocks.js:144 msgid "black" msgstr "" -#: js/PenBlocks.js:128 +#: js/blocks/PenBlocks.js:163 msgid "begin fill" msgstr "התחל מילוי" -#: js/PenBlocks.js:143 +#: js/blocks/PenBlocks.js:190 msgid "end fill" msgstr "סיים מילוי" -#: js/PenBlocks.js:159 -#: js/PenBlocks.js:386 +#: js/blocks/PenBlocks.js:212 +#: js/blocks/PenBlocks.js:560 #.TRANS: set the background color msgid "background" msgstr "מלא מסך" -#: js/PenBlocks.js:206 -#: js/DictActions.js:71 -#: js/DictActions.js:149 -#: js/DictActions.js:186 +#: js/blocks/PenBlocks.js:274 +#: js/turtleactions/DictActions.js:71 +#: js/turtleactions/DictActions.js:138 +#: js/turtleactions/DictActions.js:170 msgid "grey" msgstr "אפור" -#: js/PenBlocks.js:210 +#: js/blocks/PenBlocks.js:282 msgid "The Grey block returns the current pen grey value." msgstr "" -#: js/PenBlocks.js:243 -#: js/DictActions.js:69 -#: js/DictActions.js:147 -#: js/DictActions.js:185 +#: js/blocks/PenBlocks.js:340 +#: js/turtleactions/DictActions.js:69 +#: js/turtleactions/DictActions.js:136 +#: js/turtleactions/DictActions.js:169 msgid "shade" msgstr "גוון" -#: js/PenBlocks.js:247 +#: js/blocks/PenBlocks.js:347 msgid "The Shade block returns the current pen shade value." msgstr "" -#: js/PenBlocks.js:280 -#: js/DictActions.js:67 -#: js/DictActions.js:145 -#: js/DictActions.js:184 +#: js/blocks/PenBlocks.js:405 +#: js/turtleactions/DictActions.js:67 +#: js/turtleactions/DictActions.js:134 +#: js/turtleactions/DictActions.js:168 msgid "color" msgstr "צבע" -#: js/PenBlocks.js:285 +#: js/blocks/PenBlocks.js:415 msgid "The Color block returns the current pen color." msgstr "" -#: js/PenBlocks.js:318 -#: js/DictActions.js:73 -#: js/DictActions.js:151 -#: js/DictActions.js:187 +#: js/blocks/PenBlocks.js:470 +#: js/turtleactions/DictActions.js:73 +#: js/turtleactions/DictActions.js:140 +#: js/turtleactions/DictActions.js:171 msgid "pen size" msgstr "עובי עט" -#: js/PenBlocks.js:322 +#: js/blocks/PenBlocks.js:474 msgid "The Pen size block returns the current pen size value." msgstr "" -#: js/PenBlocks.js:355 +#: js/blocks/PenBlocks.js:513 msgid "set font" msgstr "" -#: js/PenBlocks.js:358 +#: js/blocks/PenBlocks.js:518 msgid "The Set font block sets the font used by the Show block." msgstr "" -#: js/PenBlocks.js:391 +#: js/blocks/PenBlocks.js:567 msgid "The Background block sets the window background color." msgstr "" -#: js/PenBlocks.js:408 +#: js/blocks/PenBlocks.js:598 msgid "The Hollow line block creates a line with a hollow center." msgstr "" -#: js/PenBlocks.js:415 +#: js/blocks/PenBlocks.js:606 #.TRANS: draw a line logo has a hollow space down its center msgid "hollow line" msgstr "" -#: js/PenBlocks.js:462 +#: js/blocks/PenBlocks.js:675 msgid "The Fill block fills in a shape with a color." msgstr "" -#: js/PenBlocks.js:470 +#: js/blocks/PenBlocks.js:684 #.TRANS: fill in as a solid color msgid "fill" msgstr "" -#: js/PenBlocks.js:527 +#: js/blocks/PenBlocks.js:761 #.TRANS: raise up the pen so logo it does not draw when it is moved msgid "pen up" msgstr "הרם עט" -#: js/PenBlocks.js:532 +#: js/blocks/PenBlocks.js:768 msgid "The Pen-up block raises the pen so that it does not draw." msgstr "" -#: js/PenBlocks.js:552 +#: js/blocks/PenBlocks.js:802 #.TRANS: put down the pen so logo it draws when it is moved msgid "pen down" msgstr "הורד עט" -#: js/PenBlocks.js:557 +#: js/blocks/PenBlocks.js:810 msgid "The Pen-down block lowers the pen so that it draws." msgstr "" -#: js/PenBlocks.js:577 +#: js/blocks/PenBlocks.js:844 #.TRANS: set the width of the line drawn by the pen msgid "set pen size" msgstr "קבע עובי עט" -#: js/PenBlocks.js:583 +#: js/blocks/PenBlocks.js:854 msgid "The Set-pen-size block changes the size of the pen." msgstr "" -#: js/PenBlocks.js:623 +#: js/blocks/PenBlocks.js:913 #.TRANS: set degree of translucence of the pen color msgid "set translucency" msgstr "" -#: js/PenBlocks.js:627 +#: js/blocks/PenBlocks.js:921 msgid "The Set translucency block changes the opacity of the pen." msgstr "" -#: js/PenBlocks.js:668 +#: js/blocks/PenBlocks.js:981 msgid "set hue" msgstr "קבע צבע" -#: js/PenBlocks.js:672 +#: js/blocks/PenBlocks.js:989 msgid "The Set hue block changes the color of the pen." msgstr "" -#: js/PenBlocks.js:711 +#: js/blocks/PenBlocks.js:1047 msgid "set shade" msgstr "קבע גוון" -#: js/PenBlocks.js:717 +#: js/blocks/PenBlocks.js:1057 msgid "The Set-shade block changes the pen color from dark to light." msgstr "" -#: js/PenBlocks.js:757 +#: js/blocks/PenBlocks.js:1111 #.TRANS: set the level of vividness of the pen color msgid "set grey" msgstr "קבע אפור" -#: js/PenBlocks.js:761 +#: js/blocks/PenBlocks.js:1119 msgid "The Set grey block changes the vividness of the pen color." msgstr "" -#: js/PenBlocks.js:800 +#: js/blocks/PenBlocks.js:1172 msgid "set color" msgstr "קבע צבע" -#: js/PenBlocks.js:806 +#: js/blocks/PenBlocks.js:1182 msgid "The Set-color block changes the pen color." msgstr "" -#: js/VolumeBlocks.js:35 -msgid "synth volume" -msgstr "" - -#: js/VolumeBlocks.js:39 -msgid "The Synth volume block returns the current volume of the current synthesizer." -msgstr "" - -#: js/VolumeBlocks.js:47 -#: js/musicutils.js:730 -#: js/synthutils.js:56 -#.TRANS: musical instrument -msgid "piano" -msgstr "" - -#: js/VolumeBlocks.js:105 -msgid "master volume" -msgstr "" - -#: js/VolumeBlocks.js:109 -msgid "The Master volume block returns the master volume." -msgstr "" - -#: js/VolumeBlocks.js:355 -#: js/VolumeBlocks.js:524 -msgid "set synth volume" -msgstr "" - -#: js/VolumeBlocks.js:362 -#: js/VolumeBlocks.js:545 -msgid "synth" -msgstr "" - -#: js/VolumeBlocks.js:403 -#: js/VolumeBlocks.js:577 -#: js/VolumeBlocks.js:740 -#: js/VolumeActions.js:173 -msgid "Setting volume to 0." -msgstr "" - -#: js/VolumeBlocks.js:440 -msgid "Synth not found" -msgstr "" - -#: js/VolumeBlocks.js:494 -msgid "set drum volume" -msgstr "" - -#: js/VolumeBlocks.js:530 -msgid "The Set synth volume block will change the volume of a particular synth," -msgstr "" - -#: js/VolumeBlocks.js:532 -msgid "eg guitar violin snare drum etc." -msgstr "" - -#: js/VolumeBlocks.js:534 -msgid "The default volume is 50." -msgstr "" - -#: js/VolumeBlocks.js:536 -msgid "The range is 0 for silence to 100 for full volume." -msgstr "" - -#: js/VolumeBlocks.js:597 -msgid "set panning" -msgstr "" - -#: js/VolumeBlocks.js:603 -msgid "The Set Panning block sets the panning for all synthesizers." -msgstr "" - -#: js/VolumeBlocks.js:625 -msgid "Warning: Sound is coming out from only the left or right side." -msgstr "" - -#: js/VolumeBlocks.js:647 -#: js/VolumeBlocks.js:695 -msgid "set master volume" -msgstr "" - -#: js/VolumeBlocks.js:653 -msgid "The Set master volume block sets the volume for all synthesizers." -msgstr "" - -#: js/VolumeBlocks.js:784 -msgid "The Set relative volume block changes the volume of the contained notes." -msgstr "" - -#: js/VolumeBlocks.js:791 -msgid "set relative volume" -msgstr "" - -#: js/VolumeBlocks.js:857 -msgid "decrescendo" -msgstr "" - -#: js/VolumeBlocks.js:921 -msgid "crescendo" -msgstr "" - -#: js/ToneBlocks.js:34 -msgid "oscillator" -msgstr "" - -#: js/ToneBlocks.js:44 -#: js/timbre.js:1562 -#.TRANS: Partials refers to the number of sine waves combined into the sound. -msgid "partials" -msgstr "" - -#: js/ToneBlocks.js:76 -msgid "You are adding multiple oscillator blocks." -msgstr "" - -#: js/ToneBlocks.js:144 -#: js/timbre.js:1225 -#.TRANS: a duo synthesizer combines a synth with a sequencer -msgid "duo synth" -msgstr "" - -#: js/ToneBlocks.js:149 -msgid "The Duo synth block is a duo-frequency modulator used to define a timbre." -msgstr "" - -#: js/ToneBlocks.js:157 -#: js/timbre.js:1476 -msgid "vibrato rate" -msgstr "" - -#: js/ToneBlocks.js:157 -msgid "vibrato intensity" -msgstr "" - -#: js/ToneBlocks.js:185 -#: js/timbre.js:1221 -#.TRANS: AM (amplitude modulation) synthesizer -msgid "AM synth" -msgstr "" - -#: js/ToneBlocks.js:189 -msgid "The AM synth block is an amplitude modulator used to define a timbre." +#: js/blocks/PitchBlocks.js:141 +#.TRANS: musical transposition (adjustment of pitch up or down) +msgid "transposition" msgstr "" -#: js/ToneBlocks.js:224 -#: js/timbre.js:1223 -#.TRANS: FM (frequency modulation) synthesizer -msgid "FM synth" +#: js/blocks/PitchBlocks.js:168 +#.TRANS: step down one note in current musical scale +msgid "scalar step down" msgstr "" -#: js/ToneBlocks.js:228 -msgid "The FM synth block is a frequency modulator used to define a timbre." +#: js/blocks/PitchBlocks.js:172 +msgid "The Scalar step down block returns the number of semi-tones down to the previous note in the current key and mode." msgstr "" -#: js/ToneBlocks.js:262 -msgid "partial" +#: js/blocks/PitchBlocks.js:190 +#.TRANS: step up one note in current musical scale +msgid "scalar step up" msgstr "" -#: js/ToneBlocks.js:265 -msgid "The Partial block is used to specify a weight for a specific partial harmonic." +#: js/blocks/PitchBlocks.js:194 +msgid "The Scalar step up block returns the number of semi-tones up to the next note in the current key and mode." msgstr "" -#: js/ToneBlocks.js:284 -#.TRANS: partials are weighted components in a harmonic series -msgid "Partial weight must be between 0 and 1." +#: js/blocks/PitchBlocks.js:212 +#.TRANS: the change measured in half-steps between the current pitch and the previous pitch +msgid "change in pitch" msgstr "" -#: js/ToneBlocks.js:297 -#.TRANS: partials are weighted components in a harmonic series -msgid "Partial block should be used inside of a Weighted-partials block." +#: js/blocks/PitchBlocks.js:216 +msgid "The Change in pitch block is the difference (in half steps) between the current pitch being played and the previous pitch played." msgstr "" -#: js/ToneBlocks.js:325 -#.TRANS: partials are weighted components in a harmonic series -msgid "weighted partials" +#: js/blocks/PitchBlocks.js:243 +#.TRANS: the change measured in scale-steps between the current pitch and the previous pitch +msgid "scalar change in pitch" msgstr "" -#: js/ToneBlocks.js:383 -msgid "The Harmonic block will add harmonics to the contained notes." +#: js/blocks/PitchBlocks.js:250 +#: js/blocks/PitchBlocks.js:432 +#: js/blocks/PitchBlocks.js:1667 +#: js/turtleactions/DictActions.js:89 +#: js/widgets/temperament.js:610 +#: js/widgets/temperament.js:614 +#: js/widgets/temperament.js:855 +#.TRANS: convert current note to piano key (1-88) +#.TRANS: a mapping of pitch to the 88 piano keys +msgid "pitch number" msgstr "" -#: js/ToneBlocks.js:390 -#.TRANS: A harmonic is an overtone. -msgid "harmonic" +#: js/blocks/PitchBlocks.js:256 +msgid "The Pitch number block is the value of the pitch of the note currently being played." msgstr "" -#: js/ToneBlocks.js:431 -msgid "The Distortion block adds distortion to the pitch." +#: js/blocks/PitchBlocks.js:329 +#: js/blocks/PitchBlocks.js:433 +#.TRANS: the current pitch expressed in Hertz +msgid "pitch in hertz" msgstr "" -#: js/ToneBlocks.js:438 -#: js/timbre.js:2100 -#.TRANS: distortion is an alteration in the sound -msgid "distortion" +#: js/blocks/PitchBlocks.js:334 +msgid "The Pitch in Hertz block is the value in Hertz of the pitch of the note currently being played." msgstr "" -#: js/ToneBlocks.js:487 -msgid "The Tremolo block adds a wavering effect." +#: js/blocks/PitchBlocks.js:367 +#: js/turtleactions/DictActions.js:87 +msgid "current pitch" msgstr "" -#: js/ToneBlocks.js:495 -#: js/timbre.js:2092 -#.TRANS: a wavering effect in a musical tone -msgid "tremolo" +#: js/blocks/PitchBlocks.js:373 +msgid "The Current Pitch block is used with the Pitch Converter block. In the example above, current pitch, sol 4, is displayed as 392 hertz." msgstr "" -#: js/ToneBlocks.js:500 -#: js/ToneBlocks.js:569 -#: js/ToneBlocks.js:630 -#: js/ToneBlocks.js:689 -#: js/timbre.js:2134 -#: js/timbre.js:2222 -#: js/timbre.js:2317 -#: js/timbre.js:2419 -#.TRANS: rate at which tremolo wavers -msgid "rate" +#: js/blocks/PitchBlocks.js:410 +msgid "This block converts the pitch value of the last note played into different formats such as hertz, letter name, pitch number, et al." msgstr "" -#: js/ToneBlocks.js:502 -#: js/ToneBlocks.js:630 -#: js/timbre.js:2137 -#: js/timbre.js:2328 -#.TRANS: amplitude of tremolo waver -msgid "depth" +#: js/blocks/PitchBlocks.js:434 +msgid "alphabet" msgstr "" -#: js/ToneBlocks.js:559 -msgid "The Phaser block adds a sweeping sound." +#: js/blocks/PitchBlocks.js:436 +#.TRANS: Translate as "alphabet class" +msgid "letter class" msgstr "" -#: js/ToneBlocks.js:566 -#: js/timbre.js:2098 -#.TRANS: alter the phase of the sound -msgid "phaser" +#: js/blocks/PitchBlocks.js:437 +msgid "solfege class" msgstr "" -#: js/ToneBlocks.js:569 -#: js/timbre.js:2422 -msgid "octaves" +#: js/blocks/PitchBlocks.js:438 +msgid "staff y" msgstr "" -#: js/ToneBlocks.js:569 -#: js/timbre.js:2425 -msgid "base frequency" +#: js/blocks/PitchBlocks.js:439 +msgid "solfege syllable" msgstr "" -#: js/ToneBlocks.js:619 -msgid "The Chorus block adds a chorus effect." +#: js/blocks/PitchBlocks.js:440 +msgid "pitch class" msgstr "" -#: js/ToneBlocks.js:627 -#: js/timbre.js:2096 -#.TRANS: musical effect to simulate a choral sound -msgid "chorus" +#: js/blocks/PitchBlocks.js:441 +msgid "scalar class" msgstr "" -#: js/ToneBlocks.js:630 -msgid "delay" +#: js/blocks/PitchBlocks.js:443 +msgid "nth degree" msgstr "" -#: js/ToneBlocks.js:678 -msgid "The Vibrato block adds a rapid, slight variation in pitch." +#: js/blocks/PitchBlocks.js:444 +msgid "pitch to shade" msgstr "" -#: js/ToneBlocks.js:686 -#: js/timbre.js:2094 -#.TRANS: a rapid, slight variation in pitch -msgid "vibrato" +#: js/blocks/PitchBlocks.js:445 +msgid "pitch to color" msgstr "" -#: js/ToneBlocks.js:689 -#: js/timbre.js:2221 -msgid "intensity" +#: js/blocks/PitchBlocks.js:629 +#: js/widgets/musickeyboard.js:735 +#.TRANS: MIDI is a technical standard for electronic music +msgid "MIDI" msgstr "" -#: js/ToneBlocks.js:733 -#.TRANS: select synthesizer -msgid "set synth" +#: js/blocks/PitchBlocks.js:642 +#.TRANS: set an offset associated with the numeric piano keyboard mapping +msgid "set pitch number offset" msgstr "" -#: js/ToneBlocks.js:804 -msgid "synth name" +#: js/blocks/PitchBlocks.js:645 +msgid "The Set pitch number offset block is used to set the offset for mapping pitch numbers to pitch and octave." msgstr "" -#: js/ToneBlocks.js:842 -msgid "set default instrument" +#: js/blocks/PitchBlocks.js:679 +#.TRANS: convert piano key number (1-88) to pitch +msgid "number to pitch" msgstr "" -#: js/ToneBlocks.js:895 -#: js/ToneBlocks.js:943 -#.TRANS: set the characteristics of a custom instrument -msgid "set instrument" +#: js/blocks/PitchBlocks.js:682 +msgid "The Number to pitch block will convert a pitch number to a pich name." msgstr "" -#: js/ToneBlocks.js:898 -#: js/ToneBlocks.js:926 -#: js/ToneBlocks.js:932 -msgid "The Set instrument block selects a voice for the synthesizer," +#: js/blocks/PitchBlocks.js:715 +#.TRANS: convert piano key number (1-88) to octave +msgid "number to octave" msgstr "" -#: js/ToneBlocks.js:900 -#: js/ToneBlocks.js:934 -msgid "eg guitar piano violin or cello." +#: js/blocks/PitchBlocks.js:717 +msgid "The Number to octave block will convert a pitch number to an octave." msgstr "" -#: js/ToneBlocks.js:1015 -msgid "Import a sound file to use as an instrument and set its pitch center." +#: js/blocks/PitchBlocks.js:726 +msgid "y to pitch" msgstr "" -#: js/ToneBlocks.js:1110 -msgid "Upload a sound file to connect with the sample block." +#: js/blocks/PitchBlocks.js:729 +msgid "Y to pitch block will convert a staff y position to corresponding pitch notation." msgstr "" -#: js/MeterBlocks.js:34 -#.TRANS: musical meter (time signature), e.g., 4:4 -msgid "current meter" +#: js/blocks/PitchBlocks.js:841 +msgid "accidental selector" msgstr "" -#: js/MeterBlocks.js:85 -#.TRANS: number of beats per minute -msgid "beat factor" +#: js/blocks/PitchBlocks.js:844 +msgid "The Accidental selector block is used to choose between double-sharp, sharp, natural, flat, and double-flat." msgstr "" -#: js/MeterBlocks.js:161 -msgid "The Beats per minute block returns the current beats per minute." +#: js/blocks/PitchBlocks.js:858 +msgid "Pitch can be specified in terms of ni dha pa ma ga re sa." msgstr "" -#: js/MeterBlocks.js:169 -#: js/status.js:152 -#.TRANS: number of beats played per minute -msgid "beats per minute2" +#: js/blocks/PitchBlocks.js:872 +msgid "Pitch can be specified in terms of C D E F G A B." msgstr "" -#: js/MeterBlocks.js:169 -#: js/MeterBlocks.js:1056 -#: js/MeterBlocks.js:1133 -#: js/MeterBlocks.js:1211 -#.TRANS: sets tempo by defining a beat and beats per minute -msgid "beats per minute" +#: js/blocks/PitchBlocks.js:884 +msgid "solfege" msgstr "" -#: js/MeterBlocks.js:233 -#.TRANS: count of current musical measure in meter -msgid "measure count" +#: js/blocks/PitchBlocks.js:887 +msgid "Pitch can be specified in terms of do re mi fa sol la ti." msgstr "" -#: js/MeterBlocks.js:241 -msgid "The Measure count block returns the current measure." +#: js/blocks/PitchBlocks.js:922 +msgid "The Invert block rotates any contained notes around a target note." msgstr "" -#: js/MeterBlocks.js:290 -#.TRANS: count of current beat in the meter -msgid "beat count" +#: js/blocks/PitchBlocks.js:929 +#.TRANS: pitch inversion rotates a pitch around another pitch +msgid "invert" msgstr "" -#: js/MeterBlocks.js:300 -#: js/MeterBlocks.js:311 -#: js/MeterBlocks.js:565 -#: js/MeterBlocks.js:576 -msgid "The Beat count block is the number of the current beat," +#: js/blocks/PitchBlocks.js:968 +#.TRANS: pitch inversion rotates a pitch around another pitch (odd number) +msgid "invert (odd)" msgstr "" -#: js/MeterBlocks.js:313 -#: js/MeterBlocks.js:578 -msgid "eg 1, 2, 3, or 4." +#: js/blocks/PitchBlocks.js:1001 +#.TRANS: pitch inversion rotates a pitch around another pitch (even number) +msgid "invert (even)" msgstr "" -#: js/MeterBlocks.js:368 -#.TRANS: count the number of notes -msgid "sum note values" +#: js/blocks/PitchBlocks.js:1022 +#.TRANS: register is the octave of the current pitch +msgid "register" msgstr "" -#: js/MeterBlocks.js:376 -#: js/MeterBlocks.js:440 -msgid "The Note counter block can be used to count the number of contained notes." +#: js/blocks/PitchBlocks.js:1026 +msgid "The Register block provides an easy way to modify the register (octave) of the notes that follow it." msgstr "" -#: js/MeterBlocks.js:432 -#.TRANS: count the number of notes -msgid "note counter" +#: js/blocks/PitchBlocks.js:1047 +#.TRANS: cents are units used to specify the ratio between pitches. There are 100 cents between successive notes. +msgid "50 cents" msgstr "" -#: js/MeterBlocks.js:496 -#.TRANS: number of whole notes that have been played -msgid "whole notes played" +#: js/blocks/PitchBlocks.js:1102 +msgid "The Semi-tone transposition block will shift the pitches contained inside Note blocks up (or down) by half steps." msgstr "" -#: js/MeterBlocks.js:505 -msgid "The Whole notes played block returns the total number of whole notes played." +#: js/blocks/PitchBlocks.js:1104 +msgid "In the example shown above, sol is shifted up to sol#." msgstr "" -#: js/MeterBlocks.js:555 -#: js/DictActions.js:83 -#.TRANS: number of notes that have been played -msgid "notes played" +#: js/blocks/PitchBlocks.js:1110 +#.TRANS: adjust the amount of shift (up or down) of a pitch +msgid "semi-tone transpose" msgstr "" -#: js/MeterBlocks.js:653 -msgid "The No clock block decouples the notes from the master clock." +#: js/blocks/PitchBlocks.js:1143 +msgid "The Transpose by Ratio block will shift the pitches contained inside Note blocks up (or down) by a ratio" msgstr "" -#: js/MeterBlocks.js:661 -#.TRANS: don't lock notes to master clock -msgid "no clock" +#: js/blocks/PitchBlocks.js:1149 +#.TRANS: adjust the amount of shift (up or down) of a pitch +msgid "transpose by ratio" msgstr "" -#: js/MeterBlocks.js:700 -msgid "on weak beat do" +#: js/blocks/PitchBlocks.js:1232 +#.TRANS: down sixth means the note is five scale degrees below current note +msgid "down sixth" msgstr "" -#: js/MeterBlocks.js:705 -msgid "The On-weak-beat block lets you specify actions to take on weak (off) beats." +#: js/blocks/PitchBlocks.js:1251 +#.TRANS: down third means the note is two scale degrees below current note +msgid "down third" msgstr "" -#: js/MeterBlocks.js:750 -msgid "on strong beat" +#: js/blocks/PitchBlocks.js:1270 +#.TRANS: seventh means the note is the six scale degrees above current note +msgid "seventh" msgstr "" -#: js/MeterBlocks.js:758 -msgid "The On-strong-beat block lets you specify actions to take on specified beats." +#: js/blocks/PitchBlocks.js:1289 +#.TRANS: sixth means the note is the five scale degrees above current note +msgid "sixth" msgstr "" -#: js/MeterBlocks.js:769 -msgid "beat" +#: js/blocks/PitchBlocks.js:1308 +#.TRANS: fifth means the note is the four scale degrees above current note +msgid "fifth" msgstr "" -#: js/MeterBlocks.js:813 -msgid "on every beat do" +#: js/blocks/PitchBlocks.js:1328 +#.TRANS: fourth means the note is three scale degrees above current note +msgid "fourth" msgstr "" -#: js/MeterBlocks.js:821 -msgid "The On-every-beat block lets you specify actions to take on every beat." +#: js/blocks/PitchBlocks.js:1347 +#.TRANS: third means the note is two scale degrees above current note +msgid "third" msgstr "" -#: js/MeterBlocks.js:874 -msgid "on every note do" +#: js/blocks/PitchBlocks.js:1366 +#.TRANS: second means the note is one scale degree above current note +msgid "second" msgstr "" -#: js/MeterBlocks.js:882 -msgid "The On-every-note block lets you specify actions to take on every note." +#: js/blocks/PitchBlocks.js:1407 +msgid "The Scalar transposition block will shift the pitches contained inside Note blocks up (or down) the scale." msgstr "" -#: js/MeterBlocks.js:928 -#: js/MeterBlocks.js:999 -#.TRANS: sets tempo by defining a beat and beats per minute -msgid "master beats per minute" +#: js/blocks/PitchBlocks.js:1409 +msgid "In the example shown above, sol is shifted up to la." msgstr "" -#: js/MeterBlocks.js:952 -#: js/MeterBlocks.js:1078 -#: js/MeterBlocks.js:1135 -msgid "bpm" +#: js/blocks/PitchBlocks.js:1416 +#.TRANS: adjust the amount of shift (up or down) of a pitch by musical scale (scalar) steps +msgid "scalar transpose" msgstr "" -#: js/MeterBlocks.js:952 -#: js/MeterBlocks.js:1078 -#: js/MeterBlocks.js:1135 -msgid "beat value" +#: js/blocks/PitchBlocks.js:1451 +msgid "The Accidental block is used to create sharps and flats" msgstr "" -#: js/MeterBlocks.js:1024 -#: js/MeterBlocks.js:1167 -#: js/MeterBlocks.js:1241 -msgid "Beats per minute must be > 30." +#: js/blocks/PitchBlocks.js:1458 +#.TRANS: An accidental is a modification to a pitch, e.g., sharp or flat. +msgid "accidental override" msgstr "" -#: js/MeterBlocks.js:1027 -#: js/MeterBlocks.js:1170 -#: js/MeterBlocks.js:1244 -msgid "Maximum beats per minute is 1000." +#: js/blocks/PitchBlocks.js:1581 +msgid "The Hertz block (in combination with a Number block) will play a sound at the specified frequency." msgstr "" -#: js/MeterBlocks.js:1068 -msgid "The Beats per minute block sets the number of 1/4 notes per minute." +#: js/blocks/PitchBlocks.js:1671 +msgid "The Pitch Number block will play a pitch associated by its number, e.g. 0 for C and 7 for G." msgstr "" -#: js/MeterBlocks.js:1279 -#.TRANS: anacrusis -msgid "pickup" +#: js/blocks/PitchBlocks.js:1703 +#: js/blocks/PitchBlocks.js:1745 +#.TRANS: a numeric mapping of the notes in an octave based on the musical mode +#.TRANS: a numeric mapping of the notes in an octave based on the musical mode +msgid "nth modal pitch" msgstr "" -#: js/MeterBlocks.js:1367 -msgid "number of beats" +#: js/blocks/PitchBlocks.js:1706 +msgid "n^th Modal Pitch takes the pattern of pitches in semitones for a mode and makes each point a degree of the mode," msgstr "" -#: js/DictBlocks.js:77 -msgid "show dictionary" +#: js/blocks/PitchBlocks.js:1708 +msgid "starting from 1 and regardless of tonal framework (i.e. not always 8 notes in the octave)" msgstr "" -#: js/DictBlocks.js:129 -msgid "The Dictionary block returns a dictionary." +#: js/blocks/PitchBlocks.js:1749 +msgid "N^th Modal Pitch takes a number as an input as the n^th degree for the given mode. 0 is the first position, 1 is the second, -1 is the note before the first etc." msgstr "" -#: js/DictBlocks.js:197 -#: js/DictBlocks.js:339 -msgid "The Get-dict block returns a value in the dictionary for a specified key." +#: js/blocks/PitchBlocks.js:1751 +msgid "The pitches change according to the mode specified without any need for respellings." msgstr "" -#: js/DictBlocks.js:212 -#: js/DictBlocks.js:354 -#.TRANS: retrieve a value from the dictionary with a given key -msgid "get value" +#: js/blocks/PitchBlocks.js:1790 +msgid "Scale Degree is a common convention in music. Scale Degree offers seven possible positions in the scale (1-7) and can be modified via accidentals." msgstr "" -#: js/DictBlocks.js:215 -#: js/DictBlocks.js:216 -#: js/DictBlocks.js:289 -#: js/DictBlocks.js:290 -#: js/DictBlocks.js:357 -#: js/DictBlocks.js:430 -#: js/DictBlocks.js:431 -msgid "key2" +#: js/blocks/PitchBlocks.js:1792 +msgid "Scale Degree 1 is always the first pitch in a given scale, regardless of octave." msgstr "" -#: js/DictBlocks.js:271 -#: js/DictBlocks.js:411 -msgid "The Set-dict block sets a value in the dictionary for a specified key." +#: js/blocks/PitchBlocks.js:1814 +#.TRANS: step some number of notes in current musical scale +msgid "scalar step" msgstr "" -#: js/DictBlocks.js:286 -#: js/DictBlocks.js:427 -#.TRANS: set a value in the dictionary for a given key -msgid "set value" +#: js/blocks/PitchBlocks.js:1819 +msgid "The Scalar Step block (in combination with a Number block) will play the next pitch in a scale," msgstr "" -#: js/ExtrasBlocks.js:33 -msgid "fraction" +#: js/blocks/PitchBlocks.js:1821 +msgid "eg if the last note played was sol, Scalar Step 1 will play la." msgstr "" -#: js/ExtrasBlocks.js:36 -msgid "Convert a float to a fraction" +#: js/blocks/PitchBlocks.js:1857 +msgid "The Pitch block specifies the pitch name and octave of a note that together determine the frequency of the note." msgstr "" -#: js/ExtrasBlocks.js:93 -msgid "save as ABC" +#: js/blocks/ProgramBlocks.js:33 +msgid "The Load-heap-from-app block loads the heap from a web page." msgstr "" -#: js/ExtrasBlocks.js:96 -#: js/ExtrasBlocks.js:132 -#: js/ExtrasBlocks.js:168 -msgid "title" -msgstr "כותרת" - -#: js/ExtrasBlocks.js:129 -msgid "save as Lilypond" +#: js/blocks/ProgramBlocks.js:44 +#.TRANS: load the heap contents from a URL +msgid "load heap from App" msgstr "" -#: js/ExtrasBlocks.js:165 -msgid "save as SVG" +#: js/blocks/ProgramBlocks.js:95 +msgid "Error parsing JSON data:" msgstr "" -#: js/ExtrasBlocks.js:216 -msgid "no background" -msgstr "ללא רקע" - -#: js/ExtrasBlocks.js:219 -msgid "The No background block eliminates the background from the saved SVG output." +#: js/blocks/ProgramBlocks.js:100 +msgid "404: Page not found" msgstr "" -#: js/ExtrasBlocks.js:247 -msgid "show blocks" -msgstr "הראה בלוקים" - -#: js/ExtrasBlocks.js:249 -msgid "The Show blocks block shows the blocks." +#: js/blocks/ProgramBlocks.js:133 +msgid "The Save-heap-to-app block saves the heap to a web page." msgstr "" -#: js/ExtrasBlocks.js:274 -msgid "hide blocks" -msgstr "הסתר בלוקים" +#: js/blocks/ProgramBlocks.js:144 +#.TRANS: save the heap contents to a URL +msgid "save heap to App" +msgstr "" -#: js/ExtrasBlocks.js:276 -msgid "The Hide blocks block hides the blocks." +#: js/blocks/ProgramBlocks.js:189 +msgid "Cannot find a valid heap for" msgstr "" -#: js/ExtrasBlocks.js:305 -#: js/ExtrasBlocks.js:335 -msgid "The Space block is used to add space between blocks." +#: js/blocks/ProgramBlocks.js:206 +msgid "The Load-heap block loads the heap from a file." msgstr "" -#: js/ExtrasBlocks.js:373 -msgid "wait" -msgstr "המתן" +#: js/blocks/ProgramBlocks.js:217 +#.TRANS: load the heap from a file +msgid "load heap" +msgstr "פתח FILO" -#: js/ExtrasBlocks.js:376 -msgid "The Wait block pauses the program for a specified number of seconds." +#: js/blocks/ProgramBlocks.js:270 +msgid "The file you selected does not contain a valid heap." msgstr "" -#: js/ExtrasBlocks.js:430 -#: plugins/facebook.rtp:30 -msgid "comment" -msgstr "הערה" +#: js/blocks/ProgramBlocks.js:275 +msgid "The loadHeap block needs a loadFile block." +msgstr "" -#: js/ExtrasBlocks.js:466 -msgid "print" -msgstr "הודעה" +#: js/blocks/ProgramBlocks.js:291 +msgid "The Set-heap block loads the heap." +msgstr "" -#: js/ExtrasBlocks.js:473 -msgid "The Print block displays text at the top of the screen." +#: js/blocks/ProgramBlocks.js:340 +msgid "The block you selected does not contain a valid heap." msgstr "" -#: js/ExtrasBlocks.js:579 -msgid "display grid" +#: js/blocks/ProgramBlocks.js:343 +msgid "The Set heap block needs a heap." msgstr "" -#: js/ExtrasBlocks.js:584 -msgid "The Display Grid Block changes the grid type" +#: js/blocks/ProgramBlocks.js:360 +msgid "The Load-dictionary block loads a dictionary from a file." msgstr "" -#: js/ExtrasBlocks.js:686 -#: js/ExtrasBlocks.js:705 -#: js/ExtrasBlocks.js:728 -#: js/ExtrasBlocks.js:751 -#: js/ExtrasBlocks.js:769 -#: js/ExtrasBlocks.js:788 -#: js/ExtrasBlocks.js:807 -#: js/ExtrasBlocks.js:826 -msgid "unknown" -msgstr "לא ידוע" +#: js/blocks/ProgramBlocks.js:372 +#.TRANS: load a dictionary from a file +msgid "load dictionary" +msgstr "טען מילון" -#: js/SensorsBlocks.js:36 -msgid "The Input block prompts for keyboard input." +#: js/blocks/ProgramBlocks.js:390 +#: js/blocks/ProgramBlocks.js:658 +#: js/blocks/ToneBlocks.js:1025 +msgid "file" msgstr "" -#: js/SensorsBlocks.js:46 -msgid "input" +#: js/blocks/ProgramBlocks.js:444 +msgid "The file you selected does not contain a valid dictionary." msgstr "" -#: js/SensorsBlocks.js:64 -msgid "Input a value" +#: js/blocks/ProgramBlocks.js:449 +msgid "The load dictionary block needs a load file block." msgstr "" -#: js/SensorsBlocks.js:126 -msgid "input value" +#: js/blocks/ProgramBlocks.js:466 +msgid "The Set-dictionary block loads a dictionary." msgstr "" -#: js/SensorsBlocks.js:131 -msgid "The Input-value block stores the input." +#: js/blocks/ProgramBlocks.js:477 +#.TRANS: load a dictionary from a JSON +msgid "set dictionary" msgstr "" -#: js/SensorsBlocks.js:238 -msgid "loudness" -msgstr "עוצמת קול" - -#: js/SensorsBlocks.js:245 -msgid "The Loudness block returns the volume detected by the microphone." +#: js/blocks/ProgramBlocks.js:546 +msgid "The block you selected does not contain a valid dictionary." msgstr "" -#: js/SensorsBlocks.js:300 -msgid "click" +#: js/blocks/ProgramBlocks.js:550 +msgid "The set dictionary block needs a dictionary." msgstr "" -#: js/SensorsBlocks.js:306 -msgid "The Click block triggers an event if a mouse has been clicked." +#: js/blocks/ProgramBlocks.js:567 +msgid "The Save-heap block saves the heap to a file." msgstr "" -#: js/SensorsBlocks.js:313 -msgid "The Click block triggers an event if a turtle has been clicked." -msgstr "" +#: js/blocks/ProgramBlocks.js:578 +#.TRANS: save the heap to a file +msgid "save heap" +msgstr "שמור FILO" -#: js/SensorsBlocks.js:342 -msgid "cursor over" +#: js/blocks/ProgramBlocks.js:629 +msgid "The Save-dictionary block saves a dictionary to a file." msgstr "" -#: js/SensorsBlocks.js:387 -msgid "cursor out" -msgstr "" +#: js/blocks/ProgramBlocks.js:640 +#.TRANS: save a dictionary to a file +msgid "save dictionary" +msgstr "לשמור מילון" -#: js/SensorsBlocks.js:433 -msgid "cursor button down" +#: js/blocks/ProgramBlocks.js:720 +msgid "The Open palette block opens a palette." msgstr "" -#: js/SensorsBlocks.js:477 -msgid "cursor button up" +#: js/blocks/ProgramBlocks.js:727 +msgid "open palette" msgstr "" -#: js/SensorsBlocks.js:638 -msgid "The Get red block returns the red component of the pixel under the mouse." +#: js/blocks/ProgramBlocks.js:785 +msgid "The Delete block block removes a block." msgstr "" -#: js/SensorsBlocks.js:644 -msgid "The Get red block returns the red component of the pixel under the turtle." +#: js/blocks/ProgramBlocks.js:797 +#.TRANS: Move this block to the trash. +msgid "delete block" msgstr "" -#: js/SensorsBlocks.js:685 -#: plugins/rodi.rtp:216 -msgid "pixel color" -msgstr "צבע פיקסל" - -#: js/SensorsBlocks.js:690 -msgid "The Get pixel block returns the color of the pixel under the mouse." +#: js/blocks/ProgramBlocks.js:861 +msgid "The Move block block moves a block." msgstr "" -#: js/SensorsBlocks.js:696 -msgid "The Get pixel block returns the color of the pixel under the turtle." +#: js/blocks/ProgramBlocks.js:869 +#.TRANS: Move the position of a block on the screen. +msgid "move block" msgstr "" -#: js/SensorsBlocks.js:758 -msgid "time" -msgstr "זמן" - -#: js/SensorsBlocks.js:804 -msgid "cursor y" +#: js/blocks/ProgramBlocks.js:881 +#: js/blocks/ProgramBlocks.js:1048 +msgid "block number" msgstr "" -#: js/SensorsBlocks.js:809 -msgid "The Cursor Y block returns the vertical position of the mouse." +#: js/blocks/ProgramBlocks.js:935 +#.TRANS: Run program beginning at this block. +msgid "run block" msgstr "" -#: js/SensorsBlocks.js:845 -msgid "cursor x" +#: js/blocks/ProgramBlocks.js:1025 +msgid "The Dock block block connections two blocks." msgstr "" -#: js/SensorsBlocks.js:850 -msgid "The Cursor X block returns the horizontal position of the mouse." +#: js/blocks/ProgramBlocks.js:1036 +#.TRANS: We can connect a block to another block. +msgid "connect blocks" msgstr "" -#: js/SensorsBlocks.js:886 -msgid "mouse button" -msgstr "כפתור לחוץ" - -#: js/SensorsBlocks.js:888 -msgid "The Mouse-button block returns True if the mouse button is pressed." +#: js/blocks/ProgramBlocks.js:1048 +msgid "target block" msgstr "" -#: js/SensorsBlocks.js:934 -msgid "to ASCII" +#: js/blocks/ProgramBlocks.js:1048 +msgid "connection number" msgstr "" -#: js/SensorsBlocks.js:938 -msgid "The To ASCII block converts numbers to letters." +#: js/blocks/ProgramBlocks.js:1140 +msgid "The Make block block creates a new block." msgstr "" -#: js/SensorsBlocks.js:1005 -msgid "The Keyboard block returns computer keyboard input." +#: js/blocks/ProgramBlocks.js:1152 +#.TRANS: Create a new block +msgid "make block" msgstr "" -#: js/IntervalsActions.js:216 -msgid "Adding missing pitch number 0." +#: js/blocks/ProgramBlocks.js:1285 +msgid "Cannot find block" msgstr "" -#: js/IntervalsActions.js:224 -msgid "Ignoring pitch numbers less than zero or greater than eleven." +#: js/blocks/ProgramBlocks.js:1304 +#: js/blocks/ProgramBlocks.js:1313 +msgid "Warning: block argument type mismatch" msgstr "" -#: js/IntervalsActions.js:230 -msgid "Ignoring duplicate pitch numbers." +#: js/blocks/ProgramBlocks.js:1347 +msgid "The Open project block is used to open a project from a web page." msgstr "" -#: js/PitchActions.js:88 -msgid "The Scalar Step Block must be used inside of a Note Block." +#: js/blocks/ProgramBlocks.js:1357 +msgid "open project" msgstr "" -#: js/PitchActions.js:107 -msgid "The Scalar Step Block must be preceded by a Pitch Block." +#: js/blocks/ProgramBlocks.js:1410 +msgid "Please enter a valid URL." msgstr "" -#: js/DrumActions.js:231 -msgid "Noise Block: Did you mean to use a Note block?" +#: js/blocks/ToneBlocks.js:34 +msgid "oscillator" msgstr "" -#: js/MeterActions.js:101 -#: js/MeterActions.js:139 -msgid "beats per minute must be greater than" +#: js/blocks/ToneBlocks.js:42 +#: js/blocks/WidgetBlocks.js:179 +#: js/widgets/timbre.js:1558 +#: js/widgets/timbre.js:1808 +#.TRANS: there are different types (sine, triangle, square...) of oscillators. +#.TRANS: type of filter, e.g., lowpass, highpass, etc. +msgid "type" msgstr "" -#: js/MeterActions.js:111 -#: js/MeterActions.js:149 -msgid "maximum" +#: js/blocks/ToneBlocks.js:44 +#: js/widgets/timbre.js:1562 +#.TRANS: Partials refers to the number of sine waves combined into the sound. +msgid "partials" msgstr "" -#: js/MeterActions.js:117 -#: js/MeterActions.js:155 -msgid "beats per minute is" +#: js/blocks/ToneBlocks.js:76 +msgid "You are adding multiple oscillator blocks." msgstr "" -#: js/ToneActions.js:134 -msgid "Vibrato intensity must be between 1 and 100." +#: js/blocks/ToneBlocks.js:144 +#: js/widgets/timbre.js:1225 +#.TRANS: a duo synthesizer combines a synth with a sequencer +msgid "duo synth" msgstr "" -#: js/ToneActions.js:139 -msgid "Vibrato rate must be greater than 0." +#: js/blocks/ToneBlocks.js:149 +msgid "The Duo synth block is a duo-frequency modulator used to define a timbre." msgstr "" -#: js/ToneActions.js:192 -#: js/ToneActions.js:265 -#.TRANS: Depth is the intesity of the tremolo or chorus effect. -msgid "Depth is out of range." +#: js/blocks/ToneBlocks.js:157 +#: js/widgets/timbre.js:1476 +msgid "vibrato rate" msgstr "" -#: js/ToneActions.js:301 -msgid "Distortion must be from 0 to 100." +#: js/blocks/ToneBlocks.js:157 +msgid "vibrato intensity" msgstr "" -#: js/ToneActions.js:332 -#.TRANS: partials components in a harmonic series -msgid "Partial must be greater than or equal to 0." +#: js/blocks/ToneBlocks.js:185 +#: js/widgets/timbre.js:1221 +#.TRANS: AM (amplitude modulation) synthesizer +msgid "AM synth" msgstr "" -#: js/ToneActions.js:378 -#: js/ToneActions.js:417 -#: js/ToneActions.js:456 -#: js/timbre.js:782 -msgid "Unable to use synth due to existing oscillator" +#: js/blocks/ToneBlocks.js:189 +msgid "The AM synth block is an amplitude modulator used to define a timbre." msgstr "" -#: js/ToneActions.js:388 -#: js/ToneActions.js:427 -msgid "The input cannot be negative." +#: js/blocks/ToneBlocks.js:224 +#: js/widgets/timbre.js:1223 +#.TRANS: FM (frequency modulation) synthesizer +msgid "FM synth" msgstr "" -#: js/DictActions.js:75 -#: js/DictActions.js:153 -#: js/DictActions.js:188 -msgid "font" +#: js/blocks/ToneBlocks.js:228 +msgid "The FM synth block is a frequency modulator used to define a timbre." msgstr "" -#: js/musicutils.js:363 -#: js/musicutils.js:471 -#: js/pitchdrummatrix.js:151 -#: js/musickeyboard.js:2563 -msgid "rest" +#: js/blocks/ToneBlocks.js:262 +msgid "partial" msgstr "" -#: js/musicutils.js:565 -#.TRANS: ordinal number. Please keep exactly one space between each number. -msgid "1st 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th" +#: js/blocks/ToneBlocks.js:265 +msgid "The Partial block is used to specify a weight for a specific partial harmonic." msgstr "" -#: js/musicutils.js:629 -#: js/musicutils.js:812 -#: js/musicutils.js:911 -#.TRANS: augmented is a music term related to intervals -msgid "augmented" +#: js/blocks/ToneBlocks.js:284 +#.TRANS: partials are weighted components in a harmonic series +msgid "Partial weight must be between 0 and 1." msgstr "" -#: js/musicutils.js:631 -#: js/musicutils.js:813 -#: js/musicutils.js:910 -#.TRANS: diminished is a music term related to intervals and mode -msgid "diminished" +#: js/blocks/ToneBlocks.js:297 +#.TRANS: partials are weighted components in a harmonic series +msgid "Partial block should be used inside of a Weighted-partials block." msgstr "" -#: js/musicutils.js:639 -#.TRANS: twelve semi-tone scale for music -msgid "chromatic" +#: js/blocks/ToneBlocks.js:325 +#.TRANS: partials are weighted components in a harmonic series +msgid "weighted partials" msgstr "" -#: js/musicutils.js:640 -msgid "algerian" +#: js/blocks/ToneBlocks.js:383 +msgid "The Harmonic block will add harmonics to the contained notes." msgstr "" -#: js/musicutils.js:641 -msgid "spanish" +#: js/blocks/ToneBlocks.js:390 +#.TRANS: A harmonic is an overtone. +msgid "harmonic" msgstr "" -#: js/musicutils.js:643 -#.TRANS: modal scale in music -msgid "octatonic" +#: js/blocks/ToneBlocks.js:431 +msgid "The Distortion block adds distortion to the pitch." msgstr "" -#: js/musicutils.js:645 -#.TRANS: harmonic major scale in music -msgid "harmonic major" +#: js/blocks/ToneBlocks.js:438 +#: js/widgets/timbre.js:2100 +#.TRANS: distortion is an alteration in the sound +msgid "distortion" msgstr "" -#: js/musicutils.js:647 -#.TRANS: natural minor scales in music -msgid "natural minor" +#: js/blocks/ToneBlocks.js:487 +msgid "The Tremolo block adds a wavering effect." msgstr "" -#: js/musicutils.js:649 -#.TRANS: harmonic minor scale in music -msgid "harmonic minor" +#: js/blocks/ToneBlocks.js:495 +#: js/widgets/timbre.js:2092 +#.TRANS: a wavering effect in a musical tone +msgid "tremolo" msgstr "" -#: js/musicutils.js:651 -#.TRANS: melodic minor scale in music -msgid "melodic minor" +#: js/blocks/ToneBlocks.js:500 +#: js/blocks/ToneBlocks.js:569 +#: js/blocks/ToneBlocks.js:630 +#: js/blocks/ToneBlocks.js:689 +#: js/widgets/timbre.js:2134 +#: js/widgets/timbre.js:2222 +#: js/widgets/timbre.js:2317 +#: js/widgets/timbre.js:2419 +#.TRANS: rate at which tremolo wavers +msgid "rate" msgstr "" -#: js/musicutils.js:655 -#.TRANS: modal scale for music -msgid "dorian" +#: js/blocks/ToneBlocks.js:502 +#: js/blocks/ToneBlocks.js:630 +#: js/widgets/timbre.js:2137 +#: js/widgets/timbre.js:2328 +#.TRANS: amplitude of tremolo waver +msgid "depth" msgstr "" -#: js/musicutils.js:657 -#.TRANS: modal scale for music -msgid "phrygian" +#: js/blocks/ToneBlocks.js:559 +msgid "The Phaser block adds a sweeping sound." msgstr "" -#: js/musicutils.js:659 -#.TRANS: modal scale for music -msgid "lydian" +#: js/blocks/ToneBlocks.js:566 +#: js/widgets/timbre.js:2098 +#.TRANS: alter the phase of the sound +msgid "phaser" msgstr "" -#: js/musicutils.js:661 -#.TRANS: modal scale for music -msgid "mixolydian" +#: js/blocks/ToneBlocks.js:569 +#: js/turtleactions/IntervalsActions.js:114 +#: js/widgets/timbre.js:2422 +msgid "octaves" msgstr "" -#: js/musicutils.js:665 -#.TRANS: modal scale for music -msgid "locrian" +#: js/blocks/ToneBlocks.js:569 +#: js/widgets/timbre.js:2425 +msgid "base frequency" msgstr "" -#: js/musicutils.js:667 -#.TRANS: minor jazz scale for music -msgid "jazz minor" +#: js/blocks/ToneBlocks.js:619 +msgid "The Chorus block adds a chorus effect." msgstr "" -#: js/musicutils.js:669 -#.TRANS: bebop scale for music -msgid "bebop" +#: js/blocks/ToneBlocks.js:627 +#: js/widgets/timbre.js:2096 +#.TRANS: musical effect to simulate a choral sound +msgid "chorus" msgstr "" -#: js/musicutils.js:670 -msgid "arabic" +#: js/blocks/ToneBlocks.js:630 +msgid "delay" msgstr "" -#: js/musicutils.js:671 -msgid "byzantine" +#: js/blocks/ToneBlocks.js:678 +msgid "The Vibrato block adds a rapid, slight variation in pitch." msgstr "" -#: js/musicutils.js:673 -#.TRANS: musical scale for music by Verdi -msgid "enigmatic" +#: js/blocks/ToneBlocks.js:686 +#: js/widgets/timbre.js:2094 +#.TRANS: a rapid, slight variation in pitch +msgid "vibrato" msgstr "" -#: js/musicutils.js:674 -msgid "ethiopian" +#: js/blocks/ToneBlocks.js:689 +#: js/widgets/timbre.js:2221 +msgid "intensity" msgstr "" -#: js/musicutils.js:676 -#.TRANS: Ethiopic scale for music -msgid "geez" +#: js/blocks/ToneBlocks.js:733 +#.TRANS: select synthesizer +msgid "set synth" msgstr "" -#: js/musicutils.js:677 -msgid "hindu" +#: js/blocks/ToneBlocks.js:804 +msgid "synth name" msgstr "" -#: js/musicutils.js:678 -msgid "hungarian" +#: js/blocks/ToneBlocks.js:842 +msgid "set default instrument" msgstr "" -#: js/musicutils.js:680 -#.TRANS: minor Romanian scale for music -msgid "romanian minor" +#: js/blocks/ToneBlocks.js:895 +#: js/blocks/ToneBlocks.js:943 +#.TRANS: set the characteristics of a custom instrument +msgid "set instrument" msgstr "" -#: js/musicutils.js:681 -msgid "spanish gypsy" +#: js/blocks/ToneBlocks.js:898 +#: js/blocks/ToneBlocks.js:926 +#: js/blocks/ToneBlocks.js:932 +msgid "The Set instrument block selects a voice for the synthesizer," msgstr "" -#: js/musicutils.js:683 -#.TRANS: musical scale for Mid-Eastern music -msgid "maqam" +#: js/blocks/ToneBlocks.js:900 +#: js/blocks/ToneBlocks.js:934 +msgid "eg guitar piano violin or cello." msgstr "" -#: js/musicutils.js:685 -#.TRANS: minor blues scale for music -msgid "minor blues" +#: js/blocks/ToneBlocks.js:1015 +msgid "Import a sound file to use as an instrument and set its pitch center." msgstr "" -#: js/musicutils.js:687 -#.TRANS: major blues scale for music -msgid "major blues" +#: js/blocks/ToneBlocks.js:1110 +msgid "Upload a sound file to connect with the sample block." msgstr "" -#: js/musicutils.js:688 -msgid "whole tone" +#: js/blocks/VolumeBlocks.js:35 +msgid "synth volume" msgstr "" -#: js/musicutils.js:690 -#.TRANS: pentatonic is a general term that means "five note scale". This scale is typically known as "minor pentatonic" -msgid "minor pentatonic" +#: js/blocks/VolumeBlocks.js:39 +msgid "The Synth volume block returns the current volume of the current synthesizer." msgstr "" -#: js/musicutils.js:692 -#.TRANS: pentatonic is a general term that means "five note scale". This scale is typically known as "major pentatonic" -msgid "major pentatonic" +#: js/blocks/VolumeBlocks.js:105 +msgid "master volume" msgstr "" -#: js/musicutils.js:693 -msgid "chinese" +#: js/blocks/VolumeBlocks.js:109 +msgid "The Master volume block returns the master volume." msgstr "" -#: js/musicutils.js:694 -msgid "egyptian" +#: js/blocks/VolumeBlocks.js:355 +#: js/blocks/VolumeBlocks.js:524 +msgid "set synth volume" msgstr "" -#: js/musicutils.js:696 -#.TRANS: https://en.wikipedia.org/wiki/Hirajoshi_scale NOTE: There are three different versions of this scale -msgid "hirajoshi" +#: js/blocks/VolumeBlocks.js:362 +#: js/blocks/VolumeBlocks.js:545 +msgid "synth" msgstr "" -#: js/musicutils.js:697 -msgid "Japan" +#: js/blocks/VolumeBlocks.js:403 +#: js/blocks/VolumeBlocks.js:577 +#: js/blocks/VolumeBlocks.js:740 +#: js/turtleactions/VolumeActions.js:173 +msgid "Setting volume to 0." msgstr "" -#: js/musicutils.js:699 -#.TRANS: https://en.wikipedia.org/wiki/In_scale and https://en.wikipedia.org/wiki/Sakura_Sakura -msgid "in" +#: js/blocks/VolumeBlocks.js:440 +msgid "Synth not found" msgstr "" -#: js/musicutils.js:701 -#.TRANS: https://en.wikipedia.org/wiki/Miny%C5%8D_scale -msgid "minyo" +#: js/blocks/VolumeBlocks.js:494 +msgid "set drum volume" msgstr "" -#: js/musicutils.js:703 -#.TRANS: Italian mathematician -msgid "fibonacci" +#: js/blocks/VolumeBlocks.js:530 +msgid "The Set synth volume block will change the volume of a particular synth," msgstr "" -#: js/musicutils.js:708 -#: js/musicutils.js:1106 -#.TRANS: lowpass filter -msgid "lowpass" +#: js/blocks/VolumeBlocks.js:532 +msgid "eg guitar violin snare drum etc." msgstr "" -#: js/musicutils.js:710 -#: js/musicutils.js:1107 -#.TRANS: bandpass filter -msgid "bandpass" +#: js/blocks/VolumeBlocks.js:534 +msgid "The default volume is 50." msgstr "" -#: js/musicutils.js:712 -#: js/musicutils.js:1108 -#.TRANS: high-shelf filter -msgid "highshelf" +#: js/blocks/VolumeBlocks.js:536 +msgid "The range is 0 for silence to 100 for full volume." msgstr "" -#: js/musicutils.js:714 -#: js/musicutils.js:1109 -#.TRANS: low-shelf filter -msgid "lowshelf" +#: js/blocks/VolumeBlocks.js:597 +msgid "set panning" msgstr "" -#: js/musicutils.js:716 -#: js/musicutils.js:1110 -#.TRANS: notch-shelf filter -msgid "notch" +#: js/blocks/VolumeBlocks.js:603 +msgid "The Set Panning block sets the panning for all synthesizers." msgstr "" -#: js/musicutils.js:718 -#: js/musicutils.js:1111 -#.TRANS: all-pass filter -msgid "allpass" +#: js/blocks/VolumeBlocks.js:625 +msgid "Warning: Sound is coming out from only the left or right side." msgstr "" -#: js/musicutils.js:720 -#: js/musicutils.js:1112 -#.TRANS: peaking filter -msgid "peaking" +#: js/blocks/VolumeBlocks.js:647 +#: js/blocks/VolumeBlocks.js:695 +msgid "set master volume" msgstr "" -#: js/musicutils.js:731 -#: js/synthutils.js:58 -#.TRANS: musical instrument -msgid "violin" +#: js/blocks/VolumeBlocks.js:653 +msgid "The Set master volume block sets the volume for all synthesizers." msgstr "" -#: js/musicutils.js:732 -#: js/synthutils.js:60 -#.TRANS: viola musical instrument -msgid "viola" +#: js/blocks/VolumeBlocks.js:784 +msgid "The Set relative volume block changes the volume of the contained notes." msgstr "" -#: js/musicutils.js:733 -#: js/synthutils.js:98 -#.TRANS: xylophone musical instrument -msgid "xylophone" +#: js/blocks/VolumeBlocks.js:791 +msgid "set relative volume" msgstr "" -#: js/musicutils.js:734 -#: js/synthutils.js:120 -#.TRANS: vibraphone musical instrument -msgid "vibraphone" +#: js/blocks/VolumeBlocks.js:857 +msgid "decrescendo" msgstr "" -#: js/musicutils.js:735 -#: js/synthutils.js:62 -#.TRANS: musical instrument -msgid "cello" +#: js/blocks/VolumeBlocks.js:921 +msgid "crescendo" msgstr "" -#: js/musicutils.js:737 -#: js/synthutils.js:66 -#.TRANS: viola musical instrument -msgid "double bass" -msgstr "" +#: js/blocks/WidgetBlocks.js:81 +#.TRANS: sound envelope (ADSR) +msgid "envelope" +msgstr "מעטפת קול" -#: js/musicutils.js:738 -#: js/synthutils.js:68 -#: js/rhythmruler.js:2119 -#.TRANS: musical instrument -msgid "guitar" -msgstr "" +#: js/blocks/WidgetBlocks.js:89 +#.TRANS: Attack time is the time taken for initial run-up of level from nil to peak, beginning when the key is first pressed. +msgid "attack" +msgstr "הַתקָפָה" -#: js/musicutils.js:739 -#: js/synthutils.js:70 -#.TRANS: musical instrument -msgid "acoustic guitar" -msgstr "" +#: js/blocks/WidgetBlocks.js:91 +#.TRANS: Decay time is the time taken for the subsequent run down from the attack level to the designated sustain level. +msgid "decay" +msgstr "בְּלִי" -#: js/musicutils.js:740 -#: js/synthutils.js:72 -#.TRANS: musical instrument -msgid "flute" -msgstr "" +#: js/blocks/WidgetBlocks.js:93 +#.TRANS: Sustain level is the level during the main sequence of the sound's duration, until the key is released. +msgid "sustain" +msgstr "לָשֵׂאת" -#: js/musicutils.js:741 -#: js/synthutils.js:74 -#.TRANS: musical instrument -msgid "clarinet" -msgstr "" +#: js/blocks/WidgetBlocks.js:95 +#.TRANS: Release time is the time taken for the level to decay from the sustain level to zero after the key is released. +msgid "release" +msgstr "לְשַׁחְרֵר" -#: js/musicutils.js:742 -#: js/synthutils.js:76 -#.TRANS: musical instrument -msgid "saxophone" +#: js/blocks/WidgetBlocks.js:113 +msgid "Attack value should be from 0 to 100." msgstr "" -#: js/musicutils.js:743 -#: js/synthutils.js:78 -#.TRANS: musical instrument -msgid "tuba" +#: js/blocks/WidgetBlocks.js:116 +msgid "Decay value should be from 0 to 100." msgstr "" -#: js/musicutils.js:744 -#: js/synthutils.js:80 -#.TRANS: musical instrument -msgid "trumpet" +#: js/blocks/WidgetBlocks.js:119 +msgid "Sustain value should be from 0 to 100." msgstr "" -#: js/musicutils.js:745 -#: js/synthutils.js:82 -#.TRANS: musical instrument -msgid "oboe" +#: js/blocks/WidgetBlocks.js:122 +msgid "Release value should be from 0-100." msgstr "" -#: js/musicutils.js:746 -#: js/synthutils.js:84 -#.TRANS: musical instrument -msgid "trombone" +#: js/blocks/WidgetBlocks.js:140 +msgid "You are adding multiple envelope blocks." msgstr "" -#: js/musicutils.js:747 -#: js/synthutils.js:100 -#.TRANS: polytone synthesizer -msgid "electronic synth" -msgstr "" +#: js/blocks/WidgetBlocks.js:171 +#.TRANS: a filter removes some unwanted components from a signal +msgid "filter" +msgstr "לְסַנֵן" -#: js/musicutils.js:748 -#: js/synthutils.js:102 -#.TRANS: simple monotone synthesizer -msgid "simple 1" +#: js/blocks/WidgetBlocks.js:181 +#: js/widgets/timbre.js:1818 +#.TRANS: rolloff is the steepness of a change in frequency. +msgid "rolloff" msgstr "" -#: js/musicutils.js:749 -msgid "simple 2" +#: js/blocks/WidgetBlocks.js:213 +#.TRANS: rolloff is the steepness of a change in frequency. +msgid "Rolloff value should be either -12, -24, -48, or -96 decibels/octave." msgstr "" -#: js/musicutils.js:750 -msgid "simple 3" +#: js/blocks/WidgetBlocks.js:252 +msgid "The Temperament tool is used to define custom tuning." msgstr "" -#: js/musicutils.js:751 -msgid "simple 4" +#: js/blocks/WidgetBlocks.js:332 +#: js/blocks/WidgetBlocks.js:1573 +#: js/widgets/sampler.js:547 +msgid "Upload a sample and adjust its pitch center." msgstr "" -#: js/musicutils.js:753 -#: js/synthutils.js:49 -#.TRANS: brown noise synthesizer -msgid "brown noise" +#: js/blocks/WidgetBlocks.js:339 +#.TRANS: the speed at music is should be played. +msgid "sampler" msgstr "" -#: js/musicutils.js:754 -#: js/synthutils.js:51 -#.TRANS: pink noise synthesizer -msgid "pink noise" +#: js/blocks/WidgetBlocks.js:517 +msgid "The Meter block opens a tool to select strong beats for the meter." msgstr "" -#: js/musicutils.js:756 -#: js/synthutils.js:127 -#: js/rhythmruler.js:1670 -#: js/rhythmruler.js:1928 -#.TRANS: musical instrument -msgid "snare drum" +#: js/blocks/WidgetBlocks.js:573 +msgid "The oscilloscope block opens a tool to visualize waveforms." msgstr "" -#: js/musicutils.js:757 -#: js/synthutils.js:129 -#.TRANS: musical instrument -msgid "kick drum" +#: js/blocks/WidgetBlocks.js:578 +msgid "oscilloscope" +msgstr "אוֹסְצִילוֹסקוּפּ" + +#: js/blocks/WidgetBlocks.js:645 +msgid "The Custom mode block opens a tool to explore musical mode (the spacing of the notes in a scale)." msgstr "" -#: js/musicutils.js:758 -#: js/synthutils.js:131 -#.TRANS: musical instrument -msgid "tom tom" +#: js/blocks/WidgetBlocks.js:651 +#.TRANS: musical mode is the pattern of half-steps in an octave, e.g., Major or Minor modes +msgid "custom mode" +msgstr "מצב מותאם אישית" + +#: js/blocks/WidgetBlocks.js:700 +msgid "The Tempo block opens a metronome to visualize the beat." msgstr "" -#: js/musicutils.js:759 -#: js/synthutils.js:133 -#.TRANS: musical instrument -msgid "floor tom" +#: js/blocks/WidgetBlocks.js:762 +msgid "The Arpeggio Widget is used to compose chord sequences." msgstr "" -#: js/musicutils.js:760 -#: js/synthutils.js:135 -#.TRANS: musical instrument -msgid "bass drum" +#: js/blocks/WidgetBlocks.js:837 +msgid "The Pitch drum matrix is used to map pitches to drum sounds." msgstr "" -#: js/musicutils.js:761 -#: js/synthutils.js:137 -#.TRANS: a drum made from an inverted cup -msgid "cup drum" +#: js/blocks/WidgetBlocks.js:842 +#.TRANS: makes a mapping between pitches and drum sounds +msgid "pitch-drum mapper" +msgstr "ממפה גובה-תוף" + +#: js/blocks/WidgetBlocks.js:891 +msgid "You must have at least one pitch block and one drum block in the matrix." msgstr "" -#: js/musicutils.js:762 -#: js/synthutils.js:139 -#.TRANS: musical instrument -msgid "darbuka drum" +#: js/blocks/WidgetBlocks.js:920 +msgid "The Pitch slider tool to is used to generate pitches at selected frequencies." msgstr "" -#: js/musicutils.js:763 -#: js/synthutils.js:143 -#.TRANS: musical instrument -msgid "hi hat" -msgstr "" +#: js/blocks/WidgetBlocks.js:925 +#.TRANS: widget to generate pitches using a slider +msgid "pitch slider" +msgstr "מחוון הגובה" + +#: js/blocks/WidgetBlocks.js:977 +msgid "chromatic keyboard" +msgstr "מקלדת כרומטית" + +#: js/blocks/WidgetBlocks.js:1011 +#: js/blocks/WidgetBlocks.js:1077 +#.TRANS: widget to generate pitches using a slider +msgid "music keyboard" +msgstr "מקלדת כרומטית" -#: js/musicutils.js:764 -#: js/synthutils.js:145 -#.TRANS: a small metal bell -msgid "ride bell" +#: js/blocks/WidgetBlocks.js:1062 +#: js/blocks/WidgetBlocks.js:1069 +msgid "The Music keyboard block opens a piano keyboard that can be used to create notes." msgstr "" -#: js/musicutils.js:765 -#: js/synthutils.js:147 -#.TRANS: musical instrument -msgid "cow bell" +#: js/blocks/WidgetBlocks.js:1128 +msgid "The Pitch staircase tool to is used to generate pitches from a given ratio." msgstr "" -#: js/musicutils.js:766 -msgid "japanese drum" -msgstr "" +#: js/blocks/WidgetBlocks.js:1135 +#.TRANS: generate a progressive sequence of pitches +msgid "pitch staircase" +msgstr "גרם מדרגות במגרש" -#: js/musicutils.js:767 -#: js/synthutils.js:153 -#.TRANS: musical instrument -msgid "japanese bell" +#: js/blocks/WidgetBlocks.js:1222 +msgid "The Rhythm Maker block opens a tool to create drum machines." msgstr "" -#: js/musicutils.js:768 -#: js/synthutils.js:149 -#.TRANS: musical instrument -msgid "triangle bell" -msgstr "" +#: js/blocks/WidgetBlocks.js:1291 +msgid "G major scale" +msgstr "סולם ז' מז'ור" -#: js/musicutils.js:769 -#: js/synthutils.js:151 -#.TRANS: musical instrument -msgid "finger cymbals" -msgstr "" +#: js/blocks/WidgetBlocks.js:1326 +msgid "C major scale" +msgstr "סולם ג מז'ור" -#: js/musicutils.js:770 -#: js/synthutils.js:155 -#.TRANS: a musically tuned set of bells -msgid "chime" +#: js/blocks/WidgetBlocks.js:1366 +msgid "The Phrase Maker block opens a tool to create musical phrases." msgstr "" -#: js/musicutils.js:771 -#: js/synthutils.js:157 -#.TRANS: a musical instrument -msgid "gong" -msgstr "" +#: js/blocks/WidgetBlocks.js:1373 +#.TRANS: assigns pitch to a sequence of beats to generate a melody +msgid "phrase maker" +msgstr "יצרן ביטויים" -#: js/musicutils.js:772 -#: js/synthutils.js:159 -#.TRANS: sound effect -msgid "clang" +#: js/blocks/WidgetBlocks.js:1444 +msgid "You must have at least one pitch block and one rhythm block in the matrix." msgstr "" -#: js/musicutils.js:773 -#: js/synthutils.js:161 -#.TRANS: sound effect -msgid "crash" +#: js/blocks/WidgetBlocks.js:1503 +msgid "The Status block opens a tool for inspecting the status of Music Blocks as it is running." msgstr "" -#: js/musicutils.js:774 -#: js/synthutils.js:163 -#.TRANS: sound effect -msgid "bottle" +#: js/blocks/WidgetBlocks.js:1580 +#.TRANS: AI-generated music +msgid "aimusic" msgstr "" -#: js/musicutils.js:775 -#: js/synthutils.js:165 -#.TRANS: sound effect -msgid "clap" +#: js/turtleactions/MeterActions.js:101 +#: js/turtleactions/MeterActions.js:139 +msgid "beats per minute must be greater than" msgstr "" -#: js/musicutils.js:776 -#: js/synthutils.js:167 -#.TRANS: sound effect -msgid "slap" +#: js/turtleactions/MeterActions.js:111 +#: js/turtleactions/MeterActions.js:149 +msgid "maximum" msgstr "" -#: js/musicutils.js:777 -#: js/synthutils.js:169 -#.TRANS: sound effect -msgid "splash" +#: js/turtleactions/MeterActions.js:117 +#: js/turtleactions/MeterActions.js:155 +msgid "beats per minute is" msgstr "" -#: js/musicutils.js:778 -#: js/synthutils.js:171 -#.TRANS: sound effect -msgid "bubbles" +#: js/turtleactions/DictActions.js:75 +#: js/turtleactions/DictActions.js:142 +#: js/turtleactions/DictActions.js:172 +msgid "font" msgstr "" -#: js/musicutils.js:779 -#: js/synthutils.js:173 -#.TRANS: sound effect -msgid "raindrop" +#: js/turtleactions/DictActions.js:255 +msgid "Dictionary with this name does not exist" msgstr "" -#: js/musicutils.js:780 -#: js/synthutils.js:175 -#.TRANS: animal sound effect -msgid "cat" +#: js/turtleactions/DictActions.js:259 +msgid "Key with this name does not exist in " msgstr "" -#: js/musicutils.js:781 -#: js/synthutils.js:177 -#.TRANS: animal sound effect -msgid "cricket" +#: js/turtleactions/DrumActions.js:227 +msgid "Noise Block: Did you mean to use a Note block?" msgstr "" -#: js/musicutils.js:782 -#: js/synthutils.js:179 -#.TRANS: animal sound effect -msgid "dog" +#: js/turtleactions/IntervalsActions.js:113 +msgid "one" msgstr "" -#: js/musicutils.js:784 -#: js/synthutils.js:86 -#.TRANS: musical instrument -msgid "banjo" +#: js/turtleactions/IntervalsActions.js:113 +msgid "two" msgstr "" -#: js/musicutils.js:785 -#: js/synthutils.js:88 -#.TRANS: musical instrument -msgid "koto" +#: js/turtleactions/IntervalsActions.js:113 +msgid "three" msgstr "" -#: js/musicutils.js:786 -#: js/synthutils.js:90 -#.TRANS: musical instrument -msgid "dulcimer" +#: js/turtleactions/IntervalsActions.js:113 +msgid "four" msgstr "" -#: js/musicutils.js:787 -#: js/synthutils.js:92 -#.TRANS: musical instrument -msgid "electric guitar" +#: js/turtleactions/IntervalsActions.js:113 +msgid "five" msgstr "" -#: js/musicutils.js:788 -#: js/synthutils.js:94 -#.TRANS: musical instrument -msgid "bassoon" +#: js/turtleactions/IntervalsActions.js:113 +msgid "six" msgstr "" -#: js/musicutils.js:789 -#: js/synthutils.js:96 -#.TRANS: musical instrument -msgid "celeste" +#: js/turtleactions/IntervalsActions.js:113 +msgid "seven" msgstr "" -#: js/musicutils.js:791 -#: js/musicutils.js:1123 -#: js/musicutils.js:1131 -#: js/temperament.js:650 -#.TRANS: musical temperament -msgid "equal" +#: js/turtleactions/IntervalsActions.js:113 +msgid "eight" msgstr "" -#: js/musicutils.js:793 -#: js/musicutils.js:1125 -#: js/musicutils.js:1133 -#.TRANS: musical temperament -msgid "Pythagorean" +#: js/turtleactions/IntervalsActions.js:113 +msgid "nine" msgstr "" -#: js/musicutils.js:795 -#: js/musicutils.js:1124 -#: js/musicutils.js:1132 -#.TRANS: musical temperament -msgid "just intonation" +#: js/turtleactions/IntervalsActions.js:119 +msgid "a" msgstr "" -#: js/musicutils.js:797 -#: js/musicutils.js:1126 -#: js/musicutils.js:1127 -#: js/musicutils.js:1134 -#: js/musicutils.js:1135 -#.TRANS: musical temperament -msgid "meantone" +#: js/turtleactions/IntervalsActions.js:120 +msgid "below" msgstr "" -#: js/musicutils.js:814 -msgid "major 7th" +#: js/turtleactions/IntervalsActions.js:124 +msgid "above" msgstr "" -#: js/musicutils.js:815 -msgid "minor 7th" +#: js/turtleactions/IntervalsActions.js:131 +msgid "plus" msgstr "" -#: js/musicutils.js:816 -msgid "dominant 7th" +#: js/turtleactions/IntervalsActions.js:139 +msgid " below" msgstr "" -#: js/musicutils.js:817 -msgid "minor-major 7th" +#: js/turtleactions/IntervalsActions.js:257 +msgid "Adding missing pitch number 0." msgstr "" -#: js/musicutils.js:818 -msgid "fully-diminished 7th" +#: js/turtleactions/IntervalsActions.js:265 +msgid "Ignoring pitch numbers less than zero or greater than eleven." msgstr "" -#: js/musicutils.js:819 -msgid "half-diminished 7th" +#: js/turtleactions/IntervalsActions.js:271 +msgid "Ignoring duplicate pitch numbers." msgstr "" -#: js/musicutils.js:4379 -#: js/musicutils.js:4416 -msgid "current" +#: js/turtleactions/ToneActions.js:134 +msgid "Vibrato intensity must be between 1 and 100." msgstr "" -#: js/musicutils.js:4382 -#: js/musicutils.js:4407 -msgid "next" +#: js/turtleactions/ToneActions.js:139 +msgid "Vibrato rate must be greater than 0." msgstr "" -#: js/musicutils.js:4385 -#: js/musicutils.js:4412 -msgid "previous" +#: js/turtleactions/ToneActions.js:192 +#: js/turtleactions/ToneActions.js:265 +#.TRANS: Depth is the intesity of the tremolo or chorus effect. +msgid "Depth is out of range." msgstr "" -#: js/synthutils.js:104 -#.TRANS: simple monotone synthesizer -msgid "simple-2" +#: js/turtleactions/ToneActions.js:301 +msgid "Distortion must be from 0 to 100." msgstr "" -#: js/synthutils.js:106 -#.TRANS: simple monotone synthesizer -msgid "simple-3" +#: js/turtleactions/ToneActions.js:332 +#.TRANS: partials components in a harmonic series +msgid "Partial must be greater than or equal to 0." msgstr "" -#: js/synthutils.js:108 -#.TRANS: simple monotone synthesizer -msgid "simple-4" +#: js/turtleactions/ToneActions.js:378 +#: js/turtleactions/ToneActions.js:417 +#: js/turtleactions/ToneActions.js:456 +#: js/widgets/timbre.js:782 +msgid "Unable to use synth due to existing oscillator" msgstr "" -#: js/synthutils.js:141 -#.TRANS: musical instrument -msgid "taiko" +#: js/turtleactions/ToneActions.js:388 +#: js/turtleactions/ToneActions.js:427 +msgid "The input cannot be negative." msgstr "" -#: js/modewidget.js:86 -#: js/modewidget.js:88 -#: js/modewidget.js:642 -#: js/modewidget.js:644 -#: js/modewidget.js:712 -#: js/modewidget.js:714 -#: js/temperament.js:2078 -#: js/rhythmruler.js:189 -#: js/rhythmruler.js:1410 -#: js/rhythmruler.js:1412 -#: js/rhythmruler.js:1435 -#: js/rhythmruler.js:1437 -#: js/meterwidget.js:89 -#: js/meterwidget.js:91 +#: js/widgets/modewidget.js:86 +#: js/widgets/modewidget.js:88 +#: js/widgets/modewidget.js:642 +#: js/widgets/modewidget.js:644 +#: js/widgets/modewidget.js:712 +#: js/widgets/modewidget.js:714 +#: js/widgets/meterwidget.js:194 +#: js/widgets/meterwidget.js:196 +#: js/widgets/temperament.js:2236 +#: js/widgets/rhythmruler.js:457 +#: js/widgets/rhythmruler.js:1790 +#: js/widgets/rhythmruler.js:1792 +#: js/widgets/rhythmruler.js:1816 +#: js/widgets/rhythmruler.js:1818 msgid "Play all" msgstr "" -#: js/modewidget.js:115 -#: js/pitchstaircase.js:641 -#: js/phrasemaker.js:339 -#: js/pitchdrummatrix.js:94 -#: js/pitchslider.js:125 -#: js/temperament.js:2083 -#: js/musickeyboard.js:530 -#: js/timbre.js:756 -#: js/meterwidget.js:124 -#: js/arpeggio.js:103 +#: js/widgets/modewidget.js:115 +#: js/widgets/meterwidget.js:229 +#: js/widgets/pitchdrummatrix.js:166 +#: js/widgets/pitchslider.js:125 +#: js/widgets/pitchstaircase.js:641 +#: js/widgets/temperament.js:2244 +#: js/widgets/timbre.js:756 +#: js/widgets/arpeggio.js:103 +#: js/widgets/musickeyboard.js:688 +#: js/widgets/phrasemaker.js:550 msgid "Save" msgstr "" -#: js/modewidget.js:121 -#: js/pitchstaircase.js:686 -#: js/phrasemaker.js:356 -#: js/pitchdrummatrix.js:109 -#: js/musickeyboard.js:534 -#: js/rhythmruler.js:269 -#: js/arpeggio.js:118 +#: js/widgets/modewidget.js:121 +#: js/widgets/pitchdrummatrix.js:181 +#: js/widgets/pitchstaircase.js:686 +#: js/widgets/arpeggio.js:118 +#: js/widgets/musickeyboard.js:696 +#: js/widgets/phrasemaker.js:567 +#: js/widgets/rhythmruler.js:601 #.TRANS: clear all subdivisions from the ruler. msgid "Clear" msgstr "" -#: js/modewidget.js:127 +#: js/widgets/modewidget.js:127 msgid "Rotate counter clockwise" msgstr "" -#: js/modewidget.js:133 +#: js/widgets/modewidget.js:133 msgid "Rotate clockwise" msgstr "" -#: js/modewidget.js:139 +#: js/widgets/modewidget.js:139 msgid "Invert" msgstr "" -#: js/modewidget.js:145 -#: js/pitchstaircase.js:678 -#: js/rhythmruler.js:258 -#: js/timbre.js:963 +#: js/widgets/modewidget.js:145 +#: js/widgets/pitchstaircase.js:678 +#: js/widgets/timbre.js:963 +#: js/widgets/rhythmruler.js:578 msgid "Undo" msgstr "לבטל" -#: js/modewidget.js:163 +#: js/widgets/modewidget.js:163 #.TRANS: A circle of notes represents the musical mode. msgid "Click in the circle to select notes for the mode." msgstr "" -#: js/modewidget.js:1017 -#: js/pitchstaircase.js:580 -#: js/phrasemaker.js:4855 -#: js/temperament.js:1754 -#: js/rhythmruler.js:1865 -#: js/rhythmruler.js:2081 -#: js/tempo.js:414 +#: js/widgets/modewidget.js:1017 +#: js/widgets/pitchstaircase.js:580 +#: js/widgets/temperament.js:1929 +#: js/widgets/tempo.js:414 +#: js/widgets/phrasemaker.js:5356 +#: js/widgets/rhythmruler.js:2254 +#: js/widgets/rhythmruler.js:2472 msgid "New action block generated!" msgstr "" -#: js/oscilloscope.js:79 -msgid "Zoom In" -msgstr "" - -#: js/oscilloscope.js:88 -msgid "Zoom Out" -msgstr "" - -#: js/pitchstaircase.js:624 -msgid "Play chord" -msgstr "" - -#: js/pitchstaircase.js:632 -msgid "Play scale" +#: js/widgets/meterwidget.js:275 +msgid "Reset" msgstr "" -#: js/pitchstaircase.js:696 -msgid "Click on a note to create a new step." +#: js/widgets/meterwidget.js:301 +msgid "Click in the circle to select strong beats for the meter." msgstr "" -#: js/phrasemaker.js:363 -msgid "Export" +#: js/widgets/oscilloscope.js:79 +msgid "Zoom In" msgstr "" -#: js/phrasemaker.js:370 -msgid "Sort" +#: js/widgets/oscilloscope.js:88 +msgid "Zoom Out" msgstr "" -#: js/phrasemaker.js:373 -#: js/musickeyboard.js:559 -msgid "Add note" +#: js/widgets/pitchdrummatrix.js:356 +#: js/widgets/pitchdrummatrix.js:752 +msgid "Click in the grid to map notes to drums." msgstr "" -#: js/phrasemaker.js:764 -msgid "Click on the table to add notes." +#: js/widgets/pitchslider.js:103 +msgid "Move up" msgstr "" -#: js/phrasemaker.js:2414 -#: js/phrasemaker.js:2543 -msgid "tuplet value" +#: js/widgets/pitchslider.js:114 +msgid "Move down" msgstr "" -#: js/pitchdrummatrix.js:270 -#: js/pitchdrummatrix.js:639 -msgid "Click in the grid to map notes to drums." +#: js/widgets/pitchslider.js:136 +msgid "Click on the slider to create a note block." msgstr "" -#: js/pitchslider.js:103 -msgid "Move up" +#: js/widgets/pitchstaircase.js:624 +msgid "Play chord" msgstr "" -#: js/pitchslider.js:114 -msgid "Move down" +#: js/widgets/pitchstaircase.js:632 +msgid "Play scale" msgstr "" -#: js/pitchslider.js:136 -msgid "Click on the slider to create a note block." +#: js/widgets/pitchstaircase.js:696 +msgid "Click on a note to create a new step." msgstr "" -#: js/temperament.js:215 +#: js/widgets/temperament.js:321 msgid "back to 2:1 octave space" msgstr "" -#: js/temperament.js:323 +#: js/widgets/temperament.js:447 msgid "edit" msgstr "" -#: js/temperament.js:330 -#: js/temperament.js:332 -#: js/temperament.js:1336 -#: js/temperament.js:1338 +#: js/widgets/temperament.js:454 +#: js/widgets/temperament.js:456 +#: js/widgets/temperament.js:1493 +#: js/widgets/temperament.js:1495 msgid "close" msgstr "" -#: js/temperament.js:423 -#: js/temperament.js:736 -#: js/temperament.js:743 -#: js/temperament.js:845 -#: js/temperament.js:935 -#: js/temperament.js:942 -#: js/temperament.js:1015 -#: js/temperament.js:1284 -#: js/temperament.js:1354 -#: js/temperament.js:1430 +#: js/widgets/temperament.js:552 +#: js/widgets/temperament.js:877 +#: js/widgets/temperament.js:884 +#: js/widgets/temperament.js:986 +#: js/widgets/temperament.js:1080 +#: js/widgets/temperament.js:1087 +#: js/widgets/temperament.js:1160 +#: js/widgets/temperament.js:1433 +#: js/widgets/temperament.js:1511 +#: js/widgets/temperament.js:1596 msgid "done" msgstr "" -#: js/temperament.js:477 -#: js/temperament.js:482 -#: js/temperament.js:918 +#: js/widgets/temperament.js:610 +#: js/widgets/temperament.js:615 +#: js/widgets/temperament.js:1063 msgid "ratio" msgstr "" -#: js/temperament.js:483 +#: js/widgets/temperament.js:616 msgid "interval" msgstr "" -#: js/temperament.js:611 +#: js/widgets/temperament.js:744 msgid "non scalar" msgstr "" -#: js/temperament.js:650 +#: js/widgets/temperament.js:787 msgid "ratios" msgstr "" -#: js/temperament.js:650 +#: js/widgets/temperament.js:787 msgid "arbitrary" msgstr "" -#: js/temperament.js:719 +#: js/widgets/temperament.js:860 msgid "number of divisions" msgstr "" -#: js/temperament.js:741 -#: js/temperament.js:858 -#: js/temperament.js:940 -#: js/temperament.js:1033 +#: js/widgets/temperament.js:882 +#: js/widgets/temperament.js:999 +#: js/widgets/temperament.js:1085 +#: js/widgets/temperament.js:1178 msgid "preview" msgstr "" -#: js/temperament.js:788 +#: js/widgets/temperament.js:929 msgid "The Number of divisions is too large." msgstr "" -#: js/temperament.js:921 +#: js/widgets/temperament.js:1066 msgid "recursion" msgstr "" -#: js/temperament.js:1450 +#: js/widgets/temperament.js:1616 msgid "The octave ratio has changed. This changes temperament significantly." msgstr "" -#: js/temperament.js:2087 +#: js/widgets/temperament.js:2248 msgid "Table" msgstr "" -#: js/temperament.js:2185 +#: js/widgets/temperament.js:2356 msgid "Add pitches" msgstr "" -#: js/musickeyboard.js:570 -msgid "Metronome" +#: js/widgets/tempo.js:78 +#: js/widgets/tempo.js:97 +#: js/widgets/tempo.js:99 +#: js/widgets/aiwidget.js:134 +#: js/widgets/aiwidget.js:136 +#: js/widgets/rhythmruler.js:681 +#: js/widgets/rhythmruler.js:683 +#: js/widgets/rhythmruler.js:1864 +#: js/widgets/rhythmruler.js:1866 +#: js/widgets/sampler.js:180 +#: js/widgets/sampler.js:182 +msgid "Pause" msgstr "" -#: js/musickeyboard.js:1296 -#: plugins/rodi.rtp:193 -msgid "duration" -msgstr "משך זמן" +#: js/widgets/tempo.js:113 +msgid "Save tempo" +msgstr "" -#: js/musickeyboard.js:2840 -msgid "New action blocks generated!" +#: js/widgets/tempo.js:144 +msgid "speed up" msgstr "" -#: js/musickeyboard.js:2841 -msgid "New action block generated" +#: js/widgets/tempo.js:150 +msgid "slow down" msgstr "" -#: js/musickeyboard.js:2984 -#: js/musickeyboard.js:2992 -msgid "MIDI device present." +#: js/widgets/tempo.js:194 +msgid "Adjust the tempo with the buttons." msgstr "" -#: js/musickeyboard.js:2995 -msgid "No MIDI device found." +#: js/widgets/tempo.js:261 +msgid "Please enter a number between 30 and 1000" msgstr "" -#: js/musickeyboard.js:3000 -msgid "Failed to get MIDI access in browser." +#: js/widgets/tempo.js:268 +#: js/widgets/tempo.js:271 +msgid "The beats per minute must be between 30 and 1000." msgstr "" -#: js/rhythmruler.js:202 -msgid "Save rhythms" +#: js/widgets/tempo.js:287 +msgid "The beats per minute must be below 1000." msgstr "" -#: js/rhythmruler.js:222 -msgid "Save drum machine" +#: js/widgets/tempo.js:303 +msgid "The beats per minute must be above 30" msgstr "" -#: js/rhythmruler.js:263 -#.TRANS: user can tap out a rhythm by clicking on a ruler. -msgid "Tap a rhythm" +#: js/widgets/timbre.js:766 +msgid "Synthesizer" msgstr "" -#: js/rhythmruler.js:342 -#: js/rhythmruler.js:344 -#: js/rhythmruler.js:1481 -#: js/rhythmruler.js:1483 -#: js/sampler.js:110 -#: js/sampler.js:112 -#: js/tempo.js:78 -#: js/tempo.js:97 -#: js/tempo.js:99 -msgid "Pause" +#: js/widgets/timbre.js:789 +msgid "Oscillator" msgstr "" -#: js/rhythmruler.js:478 -msgid "Click on the ruler to divide it." +#: js/widgets/timbre.js:840 +msgid "Envelope" msgstr "" -#: js/rhythmruler.js:603 -#: js/rhythmruler.js:605 -#: js/rhythmruler.js:804 -#: js/rhythmruler.js:806 -#: js/rhythmruler.js:1386 -#: js/rhythmruler.js:1388 -msgid "tap a rhythm" +#: js/widgets/timbre.js:886 +#: planet/js/GlobalTag.js:50 +#.TRANS: On the Planet, we use labels to tag projects. +msgid "Effects" msgstr "" -#: js/rhythmruler.js:1084 -msgid "Maximum value of 256 has been exceeded." +#: js/widgets/timbre.js:904 +msgid "Filter" msgstr "" -#: js/sampler.js:137 -msgid "Warning: Sample is bigger than 1MB." +#: js/widgets/timbre.js:946 +msgid "Add filter" msgstr "" -#: js/sampler.js:142 -msgid "Upload failed: Sample is not a .wav file." +#: js/widgets/timbre.js:987 +msgid "Click on buttons to open the timbre design tools." msgstr "" -#: js/sampler.js:164 -msgid "A new sample block was generated." +#: js/widgets/timbre.js:1273 +msgid "harmonicity" msgstr "" -#: js/sampler.js:255 -msgid "Upload sample" +#: js/widgets/timbre.js:1340 +#: js/widgets/timbre.js:1406 +msgid "modulation index" msgstr "" -#: js/sampler.js:306 -msgid "Save sample" +#: js/widgets/timbre.js:1484 +msgid "vibrato amount" msgstr "" -#: js/sampler.js:697 -#.TRANS: The reference tone is a sound used for comparison. -msgid "reference tone" +#: js/widgets/timbre.js:1919 +msgid "Filter already present." msgstr "" -#: js/tempo.js:113 -msgid "Save tempo" +#: js/widgets/timbre.js:2322 +msgid "delay (MS)" msgstr "" -#: js/tempo.js:144 -msgid "speed up" +#: js/widgets/timbre.js:2507 +msgid "distortion amount" msgstr "" -#: js/tempo.js:150 -msgid "slow down" +#: js/widgets/aiwidget.js:180 +#: js/widgets/sampler.js:227 +msgid "Warning: Sample is bigger than 1MB." msgstr "" -#: js/tempo.js:194 -msgid "Adjust the tempo with the buttons." +#: js/widgets/aiwidget.js:539 +msgid "New start block generated" msgstr "" -#: js/tempo.js:261 -msgid "Please enter a number between 30 and 1000" +#: js/widgets/aiwidget.js:541 +msgid "MIDI loading. This may take some time depending upon the number of notes in the track" msgstr "" -#: js/tempo.js:268 -#: js/tempo.js:271 -msgid "The beats per minute must be between 30 and 1000." +#: js/widgets/aiwidget.js:551 +#: js/widgets/sampler.js:254 +msgid "Upload failed: Sample is not a .wav file." msgstr "" -#: js/tempo.js:287 -msgid "The beats per minute must be below 1000." +#: js/widgets/aiwidget.js:679 +#: js/widgets/sampler.js:432 +msgid "Save sample" msgstr "" -#: js/tempo.js:303 -msgid "The beats per minute must be above 30" +#: js/widgets/aiwidget.js:701 +msgid "AI Music" msgstr "" -#: js/timbre.js:766 -msgid "Synthesizer" +#: js/widgets/arpeggio.js:239 +msgid "Click in the grid to add steps to the arpeggio." msgstr "" -#: js/timbre.js:789 -msgid "Oscillator" +#: js/widgets/help.js:95 +#: js/widgets/help.js:125 +#: js/widgets/help.js:146 +#: js/widgets/help.js:158 +#: js/widgets/help.js:376 +#: js/widgets/help.js:391 +msgid "Take a tour" msgstr "" -#: js/timbre.js:840 -msgid "Envelope" +#: js/widgets/musickeyboard.js:725 +#: js/widgets/phrasemaker.js:584 +msgid "Add note" msgstr "" -#: js/timbre.js:886 -#: js/GlobalTag.js:50 -#.TRANS: On the Planet, we use labels to tag projects. -msgid "Effects" +#: js/widgets/musickeyboard.js:744 +msgid "Metronome" msgstr "" -#: js/timbre.js:904 -msgid "Filter" +#: js/widgets/musickeyboard.js:1549 +#: plugins/rodi.rtp:193 +msgid "duration" +msgstr "משך זמן" + +#: js/widgets/musickeyboard.js:3179 +msgid "New action blocks generated" msgstr "" -#: js/timbre.js:946 -msgid "Add filter" +#: js/widgets/musickeyboard.js:3180 +msgid "New action block generated" msgstr "" -#: js/timbre.js:987 -msgid "Click on buttons to open the timbre design tools." +#: js/widgets/musickeyboard.js:3365 +#: js/widgets/musickeyboard.js:3373 +msgid "MIDI device present." msgstr "" -#: js/timbre.js:1273 -msgid "harmonicity" +#: js/widgets/musickeyboard.js:3376 +msgid "No MIDI device found." msgstr "" -#: js/timbre.js:1340 -#: js/timbre.js:1406 -msgid "modulation index" +#: js/widgets/musickeyboard.js:3386 +msgid "Failed to get MIDI access in browser." msgstr "" -#: js/timbre.js:1484 -msgid "vibrato amount" +#: js/widgets/phrasemaker.js:574 +msgid "Export" msgstr "" -#: js/timbre.js:1919 -msgid "Filter already present." +#: js/widgets/phrasemaker.js:581 +msgid "Sort" msgstr "" -#: js/timbre.js:2322 -msgid "delay (MS)" +#: js/widgets/phrasemaker.js:975 +msgid "Click on the table to add notes." msgstr "" -#: js/timbre.js:2507 -msgid "distortion amount" +#: js/widgets/phrasemaker.js:2677 +#: js/widgets/phrasemaker.js:2819 +msgid "tuplet value" msgstr "" -#: js/meterwidget.js:170 -msgid "Reset" +#: js/widgets/rhythmruler.js:486 +msgid "Save rhythms" msgstr "" -#: js/meterwidget.js:196 -msgid "Click in the circle to select strong beats for the meter." +#: js/widgets/rhythmruler.js:512 +msgid "Save drum machine" msgstr "" -#: js/arpeggio.js:239 -msgid "Click in the grid to add steps to the arpeggio." +#: js/widgets/rhythmruler.js:589 +#.TRANS: user can tap out a rhythm by clicking on a ruler. +msgid "Tap a rhythm" msgstr "" -#: js/ProjectStorage.js:243 -msgid "anonymous" +#: js/widgets/rhythmruler.js:817 +msgid "Click on the ruler to divide it." +msgstr "" + +#: js/widgets/rhythmruler.js:950 +#: js/widgets/rhythmruler.js:952 +#: js/widgets/rhythmruler.js:1152 +#: js/widgets/rhythmruler.js:1154 +#: js/widgets/rhythmruler.js:1765 +#: js/widgets/rhythmruler.js:1767 +msgid "tap a rhythm" +msgstr "" + +#: js/widgets/rhythmruler.js:1459 +msgid "Maximum value of 256 has been exceeded." msgstr "" -#: js/GlobalCard.js:68 -msgid "Share" +#: js/widgets/sampler.js:237 +msgid "Recording started..." msgstr "" -#: js/GlobalCard.js:74 -msgid "Flags" +#: js/widgets/sampler.js:245 +msgid "Recording complete..." msgstr "" -#: js/LocalCard.js:36 -msgid "View published project" +#: js/widgets/sampler.js:283 +msgid "A new sample block was generated." msgstr "" -#: js/LocalCard.js:42 -msgid "Publish project" +#: js/widgets/sampler.js:378 +msgid "Upload sample" msgstr "" -#: js/LocalCard.js:51 -msgid "Edit project" +#: js/widgets/sampler.js:399 +msgid "Warning: Your sample cannot be loaded because it is >1MB." msgstr "" -#: js/LocalCard.js:52 -msgid "Delete project" +#: js/widgets/sampler.js:448 +msgid "Toggle Mic" msgstr "" -#: js/LocalCard.js:53 -msgid "Download project" +#: js/widgets/sampler.js:458 +msgid "Playback" msgstr "" -#: js/LocalCard.js:55 -msgid "Duplicate project" +#: js/widgets/sampler.js:979 +#.TRANS: The reference tone is a sound used for comparison. +msgid "reference tone" msgstr "" -#: js/GlobalTag.js:28 +#: planet/js/GlobalTag.js:28 #.TRANS: On the Planet, we use labels to tag projects. msgid "All Projects" msgstr "" -#: js/GlobalTag.js:30 -#: js/StringHelper.js:37 +#: planet/js/GlobalTag.js:30 +#: planet/js/StringHelper.js:37 #.TRANS: On the Planet, we use labels to tag projects. msgid "My Projects" msgstr "" -#: js/GlobalTag.js:32 +#: planet/js/GlobalTag.js:32 #.TRANS: On the Planet, we use labels to tag projects. msgid "Examples" msgstr "" -#: js/GlobalTag.js:34 +#: planet/js/GlobalTag.js:34 #.TRANS: On the Planet, we use labels to tag projects. msgid "Music" msgstr "" -#: js/GlobalTag.js:36 +#: planet/js/GlobalTag.js:36 #.TRANS: On the Planet, we use labels to tag projects. msgid "Art" msgstr "" -#: js/GlobalTag.js:38 +#: planet/js/GlobalTag.js:38 #.TRANS: On the Planet, we use labels to tag projects. msgid "Math" msgstr "" -#: js/GlobalTag.js:40 +#: planet/js/GlobalTag.js:40 #.TRANS: On the Planet, we use labels to tag projects. msgid "Interactive" msgstr "" -#: js/GlobalTag.js:42 +#: planet/js/GlobalTag.js:42 #.TRANS: On the Planet, we use labels to tag projects. msgid "Design" msgstr "" -#: js/GlobalTag.js:44 +#: planet/js/GlobalTag.js:44 #.TRANS: On the Planet, we use labels to tag projects. msgid "Game" msgstr "" -#: js/GlobalTag.js:46 +#: planet/js/GlobalTag.js:46 #.TRANS: On the Planet, we use labels to tag projects. msgid "Media" msgstr "" -#: js/GlobalTag.js:48 +#: planet/js/GlobalTag.js:48 #.TRANS: On the Planet, we use labels to tag projects. msgid "Sensors" msgstr "" -#: js/GlobalTag.js:52 +#: planet/js/GlobalTag.js:52 #.TRANS: On the Planet, we use labels to tag projects. msgid "Code Snippet" msgstr "" -#: js/helper.js:149 -#: js/StringHelper.js:49 -msgid "Show more tags" +#: planet/js/LocalCard.js:36 +msgid "View published project" msgstr "" -#: js/helper.js:150 -msgid "Show fewer tags" +#: planet/js/LocalCard.js:42 +msgid "Publish project" +msgstr "" + +#: planet/js/LocalCard.js:51 +msgid "Edit project" +msgstr "" + +#: planet/js/LocalCard.js:52 +msgid "Delete project" +msgstr "" + +#: planet/js/LocalCard.js:53 +msgid "Download project" +msgstr "" + +#: planet/js/LocalCard.js:55 +msgid "Duplicate project" +msgstr "" + +#: planet/js/ProjectStorage.js:243 +msgid "anonymous" msgstr "" -#: js/ProjectViewer.js:30 +#: planet/js/SaveInterface.js:34 +msgid "Open in Music Blocks" +msgstr "" + +#: planet/js/SaveInterface.js:35 +msgid "Open in Turtle Blocks" +msgstr "" + +#: planet/js/GlobalCard.js:68 +msgid "Share" +msgstr "" + +#: planet/js/GlobalCard.js:74 +msgid "Flags" +msgstr "" + +#: planet/js/GlobalPlanet.js:35 +msgid "No results found." +msgstr "" + +#: planet/js/GlobalPlanet.js:51 +msgid "Remix of" +msgstr "" + +#: planet/js/GlobalPlanet.js:509 +msgid "Cannot connect to server" +msgstr "" + +#: planet/js/ProjectViewer.js:30 msgid "Error: Report could not be submitted. Try again later." msgstr "" -#: js/ProjectViewer.js:31 +#: planet/js/ProjectViewer.js:31 msgid "Thank you for reporting this project. A moderator will review the project shortly, to verify violation of the Sugar Labs Code of Conduct." msgstr "" -#: js/ProjectViewer.js:32 -#: js/StringHelper.js:62 -#: js/StringHelper.js:64 -#: js/StringHelper.js:68 +#: planet/js/ProjectViewer.js:32 +#: planet/js/StringHelper.js:62 +#: planet/js/StringHelper.js:64 +#: planet/js/StringHelper.js:68 msgid "Report Project" msgstr "" -#: js/ProjectViewer.js:33 -#: js/StringHelper.js:63 +#: planet/js/ProjectViewer.js:33 +#: planet/js/StringHelper.js:63 msgid "Project Reported" msgstr "" -#: js/ProjectViewer.js:34 +#: planet/js/ProjectViewer.js:34 msgid "Report description required" msgstr "" -#: js/ProjectViewer.js:35 +#: planet/js/ProjectViewer.js:35 msgid "Report description too long" msgstr "" -#: js/StringHelper.js:30 +#: planet/js/Publisher.js:30 +msgid "Feature unavailable - cannot connect to server. Reload Music Blocks to try again." +msgstr "" + +#: planet/js/Publisher.js:220 +#: planet/js/Publisher.js:237 +msgid "This field is required" +msgstr "" + +#: planet/js/Publisher.js:227 +msgid "Title too long" +msgstr "" + +#: planet/js/Publisher.js:244 +msgid "Description too long" +msgstr "" + +#: planet/js/Publisher.js:341 +msgid "Server Error" +msgstr "" + +#: planet/js/Publisher.js:341 +msgid "Try Again" +msgstr "" + +#: planet/js/StringHelper.js:30 msgid "Planet" msgstr "כוכב" -#: js/StringHelper.js:31 +#: planet/js/StringHelper.js:31 msgid "Close Planet" msgstr "" -#: js/StringHelper.js:32 +#: planet/js/StringHelper.js:32 msgid "Open project from file" msgstr "" -#: js/StringHelper.js:34 +#: planet/js/StringHelper.js:34 msgid "Local" msgstr "" -#: js/StringHelper.js:35 +#: planet/js/StringHelper.js:35 msgid "Global" msgstr "" -#: js/StringHelper.js:36 +#: planet/js/StringHelper.js:36 msgid "Search for a project" msgstr "" -#: js/StringHelper.js:38 +#: planet/js/StringHelper.js:38 msgid "Publish Project" msgstr "" -#: js/StringHelper.js:40 +#: planet/js/StringHelper.js:40 msgid "Tags (max 5)" msgstr "" -#: js/StringHelper.js:41 -#: js/StringHelper.js:61 +#: planet/js/StringHelper.js:41 +#: planet/js/StringHelper.js:61 msgid "Description" msgstr "" -#: js/StringHelper.js:42 -#: js/StringHelper.js:67 +#: planet/js/StringHelper.js:42 +#: planet/js/StringHelper.js:67 msgid "Submit" msgstr "" -#: js/StringHelper.js:43 -#: js/StringHelper.js:47 +#: planet/js/StringHelper.js:43 +#: planet/js/StringHelper.js:47 msgid "Cancel" msgstr "" -#: js/StringHelper.js:44 +#: planet/js/StringHelper.js:44 msgid "Delete \\"\\"?" msgstr "" -#: js/StringHelper.js:45 +#: planet/js/StringHelper.js:45 msgid "Permanently delete project \\"\\"?" msgstr "" -#: js/StringHelper.js:48 +#: planet/js/StringHelper.js:48 msgid "Explore Projects" msgstr "" -#: js/StringHelper.js:50 +#: planet/js/StringHelper.js:49 +#: planet/js/helper.js:149 +msgid "Show more tags" +msgstr "" + +#: planet/js/StringHelper.js:50 msgid "Most recent" msgstr "" -#: js/StringHelper.js:51 +#: planet/js/StringHelper.js:51 msgid "Most liked" msgstr "" -#: js/StringHelper.js:52 +#: planet/js/StringHelper.js:52 msgid "Most downloaded" msgstr "" -#: js/StringHelper.js:53 +#: planet/js/StringHelper.js:53 msgid "A-Z" msgstr "" -#: js/StringHelper.js:54 +#: planet/js/StringHelper.js:54 msgid "Sort by" msgstr "" -#: js/StringHelper.js:55 +#: planet/js/StringHelper.js:55 msgid "Load More Projects" msgstr "" -#: js/StringHelper.js:56 +#: planet/js/StringHelper.js:56 msgid "Last Updated" msgstr "" -#: js/StringHelper.js:57 +#: planet/js/StringHelper.js:57 msgid "Creation Date" msgstr "" -#: js/StringHelper.js:58 +#: planet/js/StringHelper.js:58 msgid "Number of Downloads:" msgstr "" -#: js/StringHelper.js:59 +#: planet/js/StringHelper.js:59 msgid "Number of Likes:" msgstr "" -#: js/StringHelper.js:60 +#: planet/js/StringHelper.js:60 msgid "Tags:" msgstr "" -#: js/StringHelper.js:65 +#: planet/js/StringHelper.js:65 msgid "Report projects which violate the Sugar Labs Code of Conduct." msgstr "" -#: js/StringHelper.js:66 +#: planet/js/StringHelper.js:66 msgid "Reason for reporting project" msgstr "" -#: js/StringHelper.js:70 +#: planet/js/StringHelper.js:70 msgid "Download as File" msgstr "" -#: js/GlobalPlanet.js:35 -msgid "No results found." -msgstr "" - -#: js/GlobalPlanet.js:51 -msgid "Remix of" -msgstr "" - -#: js/GlobalPlanet.js:509 -msgid "Cannot connect to server" -msgstr "" - -#: js/Publisher.js:30 -msgid "Feature unavailable - cannot connect to server. Reload Music Blocks to try again." -msgstr "" - -#: js/Publisher.js:218 -#: js/Publisher.js:235 -msgid "This field is required" -msgstr "" - -#: js/Publisher.js:225 -msgid "Title too long" +#: planet/js/helper.js:150 +msgid "Show fewer tags" msgstr "" -#: js/Publisher.js:242 -msgid "Description too long" -msgstr "" +#: plugins/accelerometer.rtp:48 +msgid "motion x" +msgstr "x תנועת" -#: js/Publisher.js:339 -msgid "Server Error" -msgstr "" +#: plugins/accelerometer.rtp:56 +msgid "motion y" +msgstr "y תנועת" -#: js/Publisher.js:339 -msgid "Try Again" -msgstr "" +#: plugins/accelerometer.rtp:64 +msgid "motion z" +msgstr "z תנועת" -#: js/SaveInterface.js:34 -msgid "Open in Music Blocks" -msgstr "" +#: plugins/facebook.rtp:27 +msgid "publish" +msgstr "פרסום" -#: js/SaveInterface.js:35 -msgid "Open in Turtle Blocks" -msgstr "" +#: plugins/maths.rtp:62 +msgid "power" +msgstr "כוח" -#: plugins/weather.rtp:68 -#: plugins/weather.rtp:97 -msgid "Days ahead must be in the range of -1 to 5." -msgstr "" +#: plugins/maths.rtp:62 +msgid "base" +msgstr "בסיס" -#: plugins/weather.rtp:122 -msgid "forecast" -msgstr "תחזית מזג אוויר" +#: plugins/maths.rtp:62 +msgid "exp" +msgstr "ביטוי" -#: plugins/weather.rtp:123 -#: plugins/weather.rtp:137 -#: plugins/weather.rtp:150 -msgid "city" -msgstr "עיר" +#: plugins/maths.rtp:99 +msgid "floor" +msgstr "רצפה" -#: plugins/weather.rtp:124 -#: plugins/weather.rtp:138 -#: plugins/weather.rtp:151 -msgid "day" -msgstr "יום" +#: plugins/maths.rtp:104 +msgid "ceiling" +msgstr "תקרה" -#: plugins/weather.rtp:136 -msgid "high" -msgstr "גבוה" +#: plugins/maths.rtp:109 +msgid "to degrees" +msgstr "למעלות" -#: plugins/weather.rtp:149 -msgid "low" -msgstr "נמוך" +#: plugins/maths.rtp:114 +msgid "to radians" +msgstr "לרדיאנים" #: plugins/nutrition.rtp:104 msgid "get calories" @@ -7341,45 +7750,6 @@ msgstr "עוגייה" msgid "water" msgstr "מים" -#: plugins/maths.rtp:62 -#: plugins/examples.rtp:93 -msgid "power" -msgstr "כוח" - -#: plugins/maths.rtp:62 -#: plugins/examples.rtp:93 -msgid "base" -msgstr "בסיס" - -#: plugins/maths.rtp:62 -#: plugins/examples.rtp:93 -msgid "exp" -msgstr "ביטוי" - -#: plugins/maths.rtp:99 -#: plugins/examples.rtp:130 -msgid "floor" -msgstr "רצפה" - -#: plugins/maths.rtp:104 -#: plugins/examples.rtp:135 -msgid "ceiling" -msgstr "תקרה" - -#: plugins/maths.rtp:109 -#: plugins/examples.rtp:140 -msgid "to degrees" -msgstr "למעלות" - -#: plugins/maths.rtp:114 -#: plugins/examples.rtp:145 -msgid "to radians" -msgstr "לרדיאנים" - -#: plugins/facebook.rtp:27 -msgid "publish" -msgstr "פרסום" - #: plugins/rodi.rtp:172 msgid "blink" msgstr "" @@ -7408,17 +7778,65 @@ msgstr "" msgid "move" msgstr "זוז" -#: plugins/accelerometer.rtp:48 -msgid "motion x" -msgstr "x תנועת" +#: plugins/weather.rtp:68 +#: plugins/weather.rtp:97 +msgid "Days ahead must be in the range of -1 to 5." +msgstr "" -#: plugins/accelerometer.rtp:56 -msgid "motion y" -msgstr "y תנועת" +#: plugins/weather.rtp:122 +msgid "forecast" +msgstr "תחזית מזג אוויר" -#: plugins/accelerometer.rtp:64 -msgid "motion z" -msgstr "z תנועת" +#: plugins/weather.rtp:123 +#: plugins/weather.rtp:137 +#: plugins/weather.rtp:150 +msgid "city" +msgstr "עיר" + +#: plugins/weather.rtp:124 +#: plugins/weather.rtp:138 +#: plugins/weather.rtp:151 +msgid "day" +msgstr "יום" + +#: plugins/weather.rtp:136 +msgid "high" +msgstr "גבוה" + +#: plugins/weather.rtp:149 +msgid "low" +msgstr "נמוך" + +#: js/toolbar.js:70 + +#: js/toolbar.js:130 + +#: js/toolbar.js:194 + +#: js/toolbar.js:249 + +#~msgid "Toggle JavaScript Editor" +#~msgstr "החלף את עורך JavaScript" + +#: js/EnsembleBlocks.js:643 + +#~msgid "The Turrle pitch block returns the current pitch number being played by the specified turtle." +#~msgstr "" + +#: js/PitchActions.js:88 + +#~msgid "The Scalar Step Block must be used inside of a Note Block." +#~msgstr "" + +#: js/PitchActions.js:107 + +#~msgid "The Scalar Step Block must be preceded by a Pitch Block." +#~msgstr "" + +#: js/musickeyboard.js:2840 + +#~msgid "New action blocks generated!" +#~msgstr "" #: js/toolbar.js:110 @@ -7760,11 +8178,6 @@ msgstr "z תנועת" #~msgid "The Time block returns the number of seconds that the program has been running." #~msgstr "" -#: js/help.js:95 - -#~msgid "Take a tour" -#~msgstr "" - #: js/GlobalCard.js:48 #~msgid "More Details" @@ -10663,11 +11076,6 @@ msgstr "z תנועת" #~msgid "The save-stack button saves a stack onto a custom palette. It appears after a \"long press\" on a stack." #~msgstr "" -#: js/musicutils.js:254 - -#~msgid "Custom" -#~msgstr "" - #: js/basicblocks.js:4785 #~msgid "Rhythm" diff --git a/po/hi.po b/po/hi.po index 4643c22074..df7f4021a1 100644 --- a/po/hi.po +++ b/po/hi.po @@ -15,436 +15,132 @@ #js/toolbar.js:230 #js/turtledefs.js:504 #js/turtledefs.js:505 -msgid: "Toggle Fullscreen" -msgstr: "पूर्ण स्क्रीन टॉगल करें" - -#: js/activity.js:445 -#: js/rhythmruler.js:1919 -#: js/block.js:1414 -#: js/block.js:4018 -#: js/block.js:4036 -#: js/block.js:4047 -#: js/activity.js:2899 -#: js/palette.js:486 -#: js/palette.js:495 -#: js/palette.js:504 -#: js/palette.js:513 -#: js/palette.js:1089 -#: js/palette.js:1100 -#: js/palette.js:1111 -#: js/palette.js:1122 -#: js/palette.js:1141 -#: js/turtledefs.js:78 -#: js/rubrics.js:501 -#: js/macros.js:170 -#: js/macros.js:266 -#: js/macros.js:267 -#: js/macros.js:276 -#: js/macros.js:828 -#: js/blocks.js:1071 -#: js/blocks.js:3210 -#: js/blocks.js:3211 -#: js/blocks.js:3428 -#: js/blocks.js:3752 -#: js/blocks.js:3932 -#: js/blocks.js:4976 -#: js/blocks.js:5845 -#: js/ActionBlocks.js:99 -#: js/ActionBlocks.js:147 -#: js/ActionBlocks.js:343 -#: js/ActionBlocks.js:408 -#: js/ActionBlocks.js:562 -#: js/ActionBlocks.js:622 -#: js/ActionBlocks.js:750 -#: js/ActionBlocks.js:753 -#: js/ActionBlocks.js:758 -#: js/ActionBlocks.js:790 -#: js/MeterBlocks.js:396 -#: js/MeterBlocks.js:426 -#: js/MeterBlocks.js:462 -#: js/MeterBlocks.js:501 -#: js/musickeyboard.js:2495 -#: js/rhythmruler.js:1874 -#: js/rhythmruler.js:1881 -#: js/rhythmruler.js:2065 -#: js/rhythmruler.js:2072 -#: js/phrasemaker.js:4226 -#: js/block.js:1414 -#: js/block.js:4020 -#: js/block.js:4038 -#: js/block.js:4049 -#: js/activity.js:2899 -#: js/palette.js:486 -#: js/palette.js:495 -#: js/palette.js:504 -#: js/palette.js:513 -#: js/palette.js:1089 -#: js/palette.js:1100 -#: js/palette.js:1111 -#: js/palette.js:1122 -#: js/palette.js:1141 -#: js/turtledefs.js:78 -#: js/rubrics.js:501 -#: js/macros.js:170 -#: js/macros.js:266 -#: js/macros.js:267 -#: js/macros.js:276 -#: js/macros.js:828 -#: js/blocks.js:1071 -#: js/blocks.js:3210 -#: js/blocks.js:3211 -#: js/blocks.js:3428 -#: js/blocks.js:3752 -#: js/blocks.js:3932 -#: js/blocks.js:4976 -#: js/blocks.js:5845 -#: js/ActionBlocks.js:99 -#: js/ActionBlocks.js:147 -#: js/ActionBlocks.js:343 -#: js/ActionBlocks.js:408 -#: js/ActionBlocks.js:562 -#: js/ActionBlocks.js:622 -#: js/ActionBlocks.js:750 -#: js/ActionBlocks.js:753 -#: js/ActionBlocks.js:758 -#: js/ActionBlocks.js:790 -#: js/MeterBlocks.js:396 -#: js/MeterBlocks.js:426 -#: js/MeterBlocks.js:462 -#: js/MeterBlocks.js:501 -#: js/musickeyboard.js:2495 -#: js/rhythmruler.js:1874 -#: js/rhythmruler.js:1881 -#: js/rhythmruler.js:2065 -#: js/rhythmruler.js:2072 -#: js/phrasemaker.js:4226 -#: js/block.js:1439 -#: js/block.js:4063 -#: js/block.js:4081 -#: js/block.js:4092 -#: js/palette.js:505 -#: js/palette.js:514 -#: js/palette.js:523 -#: js/palette.js:532 -#: js/palette.js:1125 -#: js/palette.js:1136 -#: js/palette.js:1147 -#: js/palette.js:1158 -#: js/palette.js:1177 -#: js/turtledefs.js:101 -#: js/rubrics.js:522 -#: js/macros.js:168 -#: js/macros.js:264 -#: js/macros.js:265 -#: js/macros.js:274 -#: js/macros.js:826 -#: js/blocks.js:1001 -#: js/blocks.js:3394 -#: js/blocks.js:3395 -#: js/blocks.js:3620 -#: js/blocks.js:3981 -#: js/blocks.js:4172 -#: js/blocks.js:5305 -#: js/blocks.js:6432 -#: js/ActionBlocks.js:119 -#: js/ActionBlocks.js:167 -#: js/ActionBlocks.js:364 -#: js/ActionBlocks.js:429 -#: js/ActionBlocks.js:582 -#: js/ActionBlocks.js:643 -#: js/ActionBlocks.js:772 -#: js/ActionBlocks.js:775 -#: js/ActionBlocks.js:780 -#: js/ActionBlocks.js:813 -#: js/MeterBlocks.js:416 -#: js/MeterBlocks.js:446 -#: js/MeterBlocks.js:482 -#: js/MeterBlocks.js:521 -#: js/musickeyboard.js:2564 -#: js/rhythmruler.js:1925 -#: js/rhythmruler.js:1932 -#: js/rhythmruler.js:2116 -#: js/rhythmruler.js:2123 -#: js/phrasemaker.js:4402 -#: js/planetInterface.js:101 -#: js/planetInterface.js:101 -#: js/planetInterface.js:101 -#: js/planetInterface.js:101 -#: js/planetInterface.js:102 -#: js/planetInterface.js:104 -#: js/planetInterface.js:104 -#: js/planetInterface.js:104 -msgid "project undefined" -msgstr "परियोजना अपरिभाषित" - -#: js/logo.js:61 -msgid "Not a valid pitch name" -msgstr "एक वैध पिच नाम नहीं" - -#: js/logo.js:507 -#: js/ProgramBlocks.js:258 -#: js/ProgramBlocks.js:427 -msgid "You must select a file." -msgstr "आपको एक फ़ाइल का चयन करना होगा।" - -#: js/logo.js:1184 -#: js/turtles.js:118 -#: js/turtle-painter.js:1192 -#: js/turtle-painter.js:1193 -#: js/block.js:1463 -#: js/lilypond.js:757 -#: js/lilypond.js:921 -#: js/lilypond.js:959 -#: js/ActionBlocks.js:1223 -#: js/ProgramBlocks.js:1267 -msgid "start" -msgstr "प्रारंभ" - -#: js/logo.js:1696 -msgid "Playback is ready." -msgstr "प्लेबैक तैयार है।" - -#: js/blocks.js:1011 -#: js/blocks.js:3427 -#: js/blocks.js:3428 -#: js/blocks.js:3653 -#: js/blocks.js:4012 -#: js/blocks.js:4205 -#: js/blocks.js:5343 -#: js/blocks.js:6474 -#: js/palette.js:527 -#: js/palette.js:536 -#: js/palette.js:545 -#: js/palette.js:554 -#: js/palette.js:1131 -#: js/palette.js:1142 -#: js/palette.js:1153 -#: js/palette.js:1164 -#: js/palette.js:1183 -#: js/rubrics.js:529 -#: js/macros.js:170 -#: js/macros.js:266 -#: js/macros.js:267 -#: js/macros.js:276 -#: js/macros.js:828 -#: js/block.js:1449 -#: js/block.js:4164 -#: js/block.js:4182 -#: js/block.js:4193 -#: js/turtledefs.js:128 -#: js/turtledefs.js:230 -#: js/ActionBlocks.js:254 -#: js/ActionBlocks.js:307 -#: js/ActionBlocks.js:617 -#: js/ActionBlocks.js:716 -#: js/ActionBlocks.js:961 -#: js/ActionBlocks.js:1049 -#: js/ActionBlocks.js:1322 -#: js/ActionBlocks.js:1325 -#: js/ActionBlocks.js:1337 -#: js/ActionBlocks.js:1404 -#: js/MeterBlocks.js:715 -#: js/MeterBlocks.js:768 -#: js/MeterBlocks.js:831 -#: js/MeterBlocks.js:892 -#: js/phrasemaker.js:4412 -#: js/musickeyboard.js:2647 -#: js/rhythmruler.js:1928 -#: js/rhythmruler.js:1935 -#: js/rhythmruler.js:2119 -#: js/rhythmruler.js:2126 -msgid "action" -msgstr "क्रिया" - -#: js/blocks.js:1205 -#: js/blocks.js:3380 -#: js/blocks.js:3770 -#: js/blocks.js:3801 -#: js/blocks.js:3850 -#: js/blocks.js:3885 -#: js/blocks.js:6497 -#: js/palette.js:509 -#: js/palette.js:638 -#: js/palette.js:1107 -#: js/BoxesBlocks.js:282 -#: js/BoxesBlocks.js:285 -#: js/BoxesBlocks.js:405 -#: js/BoxesBlocks.js:594 -msgid "box" -msgstr "बक्सा" - -#: js/blocks.js:1680 -msgid "Consider breaking this stack into parts." -msgstr "इस स्टैक को भागों में बाँटने का विचार करें।" +#: js/SaveInterface.js:59 +#: js/SaveInterface.js:61 +#: js/SaveInterface.js:93 +msgid "Music Blocks Project" +msgstr "संगीत ब्लॉक्स परियोजना" -#: js/blocks.js:2408 -#: js/palette.js:653 -#: js/MediaBlocks.js:602 -msgid "open file" -msgstr "फ़ाइल खोलें" +#: js/SaveInterface.js:63 +msgid "This project was created in Music Blocks" +msgstr "यह परियोजना म्यूज़िक ब्लॉक्स में बनाई गई थी" -#: js/blocks.js:2415 -#: js/blocks.js:2423 -#: js/activity.js:1875 -msgid "audio file" -msgstr "ऑडियो फ़ाइल" +#: js/SaveInterface.js:67 +msgid "Music Blocks is a Free/Libre Software application." +msgstr "म्यूज़िक ब्लॉक्स एक मुक्त/स्वतंत्र सॉफ़्टवेयर अनुप्रयोग है।" -#: js/blocks.js:2536 -#: js/blocks.js:3147 -#: js/block.js:3543 -msgid "on2" -msgstr "ऑन2" +#: js/SaveInterface.js:69 +msgid "The source code can be accessed at" +msgstr "स्रोत कोड को इस पर पहुँचा जा सकता है" -#: js/blocks.js:2538 -#: js/blocks.js:3149 -#: js/block.js:3545 -msgid "off" -msgstr "ऑफ" +#: js/SaveInterface.js:72 +msgid "For more information, please consult the" +msgstr "अधिक जानकारी के लिए कृपया संपर्क करें" -#: js/blocks.js:2543 -#: js/blocks.js:3154 -#: js/palette.js:618 -#: js/block.js:3466 -#: js/BooleanBlocks.js:77 -#: js/BooleanBlocks.js:167 -#: js/BooleanBlocks.js:251 -#: js/BooleanBlocks.js:335 -#: js/BooleanBlocks.js:433 -#: js/BooleanBlocks.js:539 -#: js/BooleanBlocks.js:640 -#: js/BooleanBlocks.js:741 -#: js/BooleanBlocks.js:847 -#: js/BooleanBlocks.js:948 -#: js/BooleanBlocks.js:1033 -#: js/SensorsBlocks.js:910 -msgid "true" -msgstr "सत्य" +#: js/SaveInterface.js:76 +#: js/turtledefs.js:795 +msgid "Music Blocks Guide" +msgstr "म्यूजिक ब्लॉक्स मार्गदर्शिका" -#: js/blocks.js:2545 -#: js/blocks.js:3156 -#: js/block.js:3466 -#: js/BooleanBlocks.js:79 -#: js/BooleanBlocks.js:169 -#: js/BooleanBlocks.js:253 -#: js/BooleanBlocks.js:337 -#: js/BooleanBlocks.js:435 -#: js/BooleanBlocks.js:541 -#: js/BooleanBlocks.js:642 -#: js/BooleanBlocks.js:743 -#: js/BooleanBlocks.js:849 -#: js/BooleanBlocks.js:950 -#: js/SensorsBlocks.js:912 -msgid "false" -msgstr "असत्य" +#: js/SaveInterface.js:83 +msgid "Alternatively, open the file in Music Blocks using the Load project button." +msgstr "विकल्प के रूप में, फ़ाइल को लोड परियोजना बटन का उपयोग करके म्यूज़िक ब्लॉक्स में खोलें।" -#: js/blocks.js:3183 -#: js/palette.js:574 -#: js/MediaBlocks.js:892 -#: js/MediaBlocks.js:963 -msgid "text" -msgstr "पाठ" +#: js/SaveInterface.js:85 +msgid "Project Code" +msgstr "परियोजना कोड" -#: js/blocks.js:3379 -#: js/palette.js:641 -#: js/palette.js:642 -#: js/BoxesBlocks.js:514 -msgid "store in box" -msgstr "बॉक्स में स्टोर करें" +#: js/SaveInterface.js:87 +msgid "This code stores data about the blocks in a project." +msgstr "यह कोड परियोजना में ब्लॉक्स के बारे में डेटा स्टोर करता है।" -#: js/blocks.js:3384 -#: js/blocks.js:3824 -#: js/blocks.js:3859 -#: js/blocks.js:3894 -#: js/blocks.js:5773 -#: js/blocks.js:5794 -#: js/BoxesBlocks.js:772 -msgid "box1" -msgstr "बॉक्स1" +#: js/SaveInterface.js:89 +msgid "Show" +msgstr "दिखाएँ" -#: js/blocks.js:3386 -#: js/blocks.js:3826 -#: js/blocks.js:3861 -#: js/blocks.js:3896 -#: js/blocks.js:5775 -#: js/blocks.js:5796 -#: js/BoxesBlocks.js:663 -msgid "box2" -msgstr "बॉक्स2" +#: js/SaveInterface.js:91 +msgid "Hide" +msgstr "छुपाएँ" -#: js/blocks.js:4058 -#: js/palette.js:639 -#: js/palette.js:644 -#: js/palette.js:1043 -#: js/BoxesBlocks.js:591 -msgid "store in" -msgstr "में भंडारित करें" +#: js/SaveInterface.js:131 +#: js/SaveInterface.js:204 +#: js/SaveInterface.js:262 +#: js/SaveInterface.js:389 +#: js/SaveInterface.js:417 +#: js/activity.js:4884 +#: planet/js/ProjectStorage.js:27 +#: planet/js/GlobalPlanet.js:467 +#: planet/js/GlobalPlanet.js:469 +#: planet/js/GlobalPlanet.js:495 +#.TRANS: default project title when saving as Lilypond +msgid "My Project" +msgstr "मेरा परियोजना" -#: js/blocks.js:4058 -#: js/EnsembleBlocks.js:391 -#: js/EnsembleBlocks.js:402 -#: js/MediaBlocks.js:746 -#: js/ProgramBlocks.js:390 -#: js/ProgramBlocks.js:495 -#: js/ProgramBlocks.js:658 -#: js/BoxesBlocks.js:595 -#: js/PitchBlocks.js:656 -#: js/PitchBlocks.js:932 -#: js/PitchBlocks.js:1827 -#: js/ToneBlocks.js:1025 -#: js/DictBlocks.js:215 -#: js/DictBlocks.js:289 -msgid "name" -msgstr "नाम" +#: js/SaveInterface.js:197 +#: planet/js/SaveInterface.js:58 +msgid "No description provided" +msgstr "कोई विवरण उपलब्ध नहीं है" -#: js/blocks.js:4058 -#: js/RhythmBlocks.js:1130 -#: js/BoxesBlocks.js:75 -#: js/BoxesBlocks.js:595 -#: js/HeapBlocks.js:544 -#: js/DictBlocks.js:289 -#: js/DictBlocks.js:430 -msgid "value" -msgstr "मान" +#: js/SaveInterface.js:332 +msgid "Your recording is in progress." +msgstr "आपका रिकॉर्डिंग प्रगति में है।" -#: js/blocks.js:4907 -msgid "There is no block selected." -msgstr "कोई ब्लॉक चयन नहीं किया गया है।" +#: js/SaveInterface.js:401 +#.TRANS: File name prompt for save as Lilypond +msgid "File name" +msgstr "फ़ाइल का नाम" -#: js/blocks.js:5002 -#: js/MediaBlocks.js:888 -msgid "show" -msgstr "दिखाएँ" +#: js/SaveInterface.js:403 +#: planet/js/StringHelper.js:39 +#.TRANS: Project title prompt for save as Lilypond +msgid "Project title" +msgstr "परियोजना का शीर्षक" -#: js/blocks.js:5005 -#: js/MediaBlocks.js:803 -#.TRANS: Avatar is the image used to determine the appearance of the mouse. -msgid "avatar" -msgstr "अवतार" +#: js/SaveInterface.js:405 +#.TRANS: Project title prompt for save as Lilypond +msgid "Project author" +msgstr "परियोजना का लेखक" -#: js/blocks.js:5008 -#: js/ToneBlocks.js:1010 -#: js/sampler.js:693 -#.TRANS: The sound sample that the user uploads. -msgid "sample" -msgstr "सैम्पल" +#: js/SaveInterface.js:407 +#.TRANS: MIDI prompt for save as Lilypond +msgid "Include MIDI output?" +msgstr "MIDI आउटपुट शामिल करें?" -#: js/turtles.js:874 -msgid "Grid" -msgstr "ग्रिड" +#: js/SaveInterface.js:409 +#.TRANS: Guitar prompt for save as Lilypond +msgid "Include guitar tablature output?" +msgstr "गिटार टैब्लेचर आउटपुट शामिल करें?" -#: js/turtles.js:891 -#: js/turtledefs.js:626 -msgid "Clean" -msgstr "साफ" +#: js/SaveInterface.js:411 +#.TRANS: Lilypond is a scripting language for generating sheet music +msgid "Save as Lilypond" +msgstr "लिलीपॉंड के रूप में सहेजें" -#: js/turtles.js:912 -#: js/turtledefs.js:632 -msgid "Collapse" -msgstr "ढहाना" +#: js/SaveInterface.js:426 +#: js/blocks/EnsembleBlocks.js:75 +#: js/blocks/EnsembleBlocks.js:154 +#: js/blocks/EnsembleBlocks.js:216 +#: js/blocks/EnsembleBlocks.js:302 +#: js/blocks/EnsembleBlocks.js:348 +#: js/blocks/EnsembleBlocks.js:389 +#: js/blocks/EnsembleBlocks.js:441 +#: js/blocks/EnsembleBlocks.js:490 +#: js/blocks/EnsembleBlocks.js:536 +#: js/blocks/EnsembleBlocks.js:583 +#: js/blocks/EnsembleBlocks.js:637 +#: js/blocks/EnsembleBlocks.js:753 +#: js/blocks/EnsembleBlocks.js:840 +#: js/blocks/EnsembleBlocks.js:899 +#: js/blocks/EnsembleBlocks.js:942 +#: js/blocks/EnsembleBlocks.js:1212 +#: js/blocks/EnsembleBlocks.js:1280 +#.TRANS: default project author when saving as Lilypond +msgid "Mr. Mouse" +msgstr "श्री माउस" -#: js/turtles.js:940 -msgid "Expand" -msgstr "विस्तार" +#: js/SaveInterface.js:573 +msgid "The Lilypond code is copied to clipboard. You can paste it here: " +msgstr "लिलीपॉंड कोड को क्लिपबोर्ड पर कॉपी किया गया है। आप इसे यहाँ पेस्ट कर सकते हैं:" #: js/languagebox.js:198 msgid "Refresh your browser to change your language preference." @@ -454,6934 +150,7488 @@ msgstr "अपनी भाषा पसंद बदलने के लिए msgid "Music Blocks is already set to this language." msgstr " म्यूजिक ब्लॉक्स पहले से ही इस भाषा पर सेट है।" -#: js/piemenus.js:200 -#: js/musicutils.js:808 -#: js/musicutils.js:824 -#: js/phrasemaker.js:1672 -#: js/musickeyboard.js:2041 -#: js/sampler.js:544 -#.TRANS: double sharp is a music term related to pitch -msgid "double sharp" -msgstr "डबल शार्प" +#: js/planetInterface.js:131 +msgid "project undefined" +msgstr "परियोजना अपरिभाषित" -#: js/piemenus.js:201 -#: js/PitchBlocks.js:1510 -#: js/PitchActions.js:580 -#: js/musicutils.js:806 -#: js/musicutils.js:825 -#: js/phrasemaker.js:1673 -#: js/musickeyboard.js:2042 -#: js/sampler.js:545 -#.TRANS: sharp is a half-step up in pitch -#.TRANS: sharp is a music term related to pitch -msgid "sharp" -msgstr "शार्प" +#: js/rubrics.js:523 +#: js/turtledefs.js:119 +#: js/turtledefs.js:221 +#: js/blocks/RhythmBlockPaletteBlocks.js:52 +#: js/blocks/RhythmBlockPaletteBlocks.js:234 +#: js/blocks/ProgramBlocks.js:745 +#: js/widgets/rhythmruler.js:2057 +#: js/widgets/rhythmruler.js:2064 +#: js/widgets/rhythmruler.js:2133 +#: js/widgets/rhythmruler.js:2140 +#: js/widgets/rhythmruler.js:2219 +#.TRANS: an arrangement of notes based on duration +msgid "rhythm" +msgstr "रिद्धम" -#: js/piemenus.js:202 -#: js/musicutils.js:804 -#: js/musicutils.js:826 -#: js/phrasemaker.js:1674 -#: js/musickeyboard.js:2043 -#: js/sampler.js:546 -#.TRANS: natural is a music term related to pitch -msgid "natural" -msgstr "नैचुरल" +#: js/rubrics.js:524 +#: js/turtledefs.js:121 +#: js/turtledefs.js:223 +#: js/block-verbose.js:2622 +#: js/block.js:2550 +#: js/blocks/IntervalsBlocks.js:63 +#: js/blocks/SensorsBlocks.js:178 +#: js/blocks/PitchBlocks.js:1839 +#: js/blocks/PitchBlocks.js:1853 +#: js/widgets/musickeyboard.js:1935 +#: js/widgets/phrasemaker.js:1036 +#.TRANS: pitch number +#.TRANS: pitch number +#.TRANS: we specify pitch in terms of a name and an octave. The name can be CDEFGAB or Do Re Mi Fa Sol La Ti. Octave is a number between 1 and 8. +msgid "pitch" +msgstr "पिच" -#: js/piemenus.js:203 -#: js/PitchBlocks.js:1469 -#: js/PitchActions.js:583 -#: js/musicutils.js:802 -#: js/musicutils.js:827 -#: js/phrasemaker.js:1675 -#: js/musickeyboard.js:2044 -#: js/sampler.js:547 -#.TRANS: flat is a half-step down in pitch -#.TRANS: flat is a music term related to pitch -msgid "flat" -msgstr "फ्लैट" +#: js/rubrics.js:525 +#: js/turtledefs.js:123 +#: js/turtledefs.js:225 +msgid "tone" +msgstr "स्वर" -#: js/piemenus.js:204 -#: js/musicutils.js:800 -#: js/musicutils.js:828 -#: js/phrasemaker.js:1676 -#: js/musickeyboard.js:2045 -#: js/sampler.js:548 -#.TRANS: double flat is a music term related to pitch -msgid "double flat" -msgstr "डबल फ्लैट" +#: js/rubrics.js:526 +#: js/lilypond.js:605 +#: js/lilypond.js:904 +#: js/lilypond.js:910 +#: js/lilypond.js:948 +msgid "mouse" +msgstr "माउस" -#: js/piemenus.js:2861 -#: js/PitchBlocks.js:1357 -#: js/musicutils.js:627 -#.TRANS: unison means the note is the same as the current note -#.TRANS: unison is a music term related to intervals -msgid "unison" -msgstr "एकस्वरता" +#: js/rubrics.js:527 +#: js/turtledefs.js:132 +#: js/turtledefs.js:234 +#: js/widgets/phrasemaker.js:1040 +msgid "pen" +msgstr "क़लम" -#: js/piemenus.js:3015 -#: js/piemenus.js:3088 -#: js/musicutils.js:635 -#: js/musicutils.js:810 -#: js/musicutils.js:912 -#.TRANS: major is a music term related to intervals and mode -msgid "major" -msgstr "मेजर" +#: js/rubrics.js:528 +#: js/turtledefs.js:133 +#: js/turtledefs.js:235 +#: js/blocks/NumberBlocks.js:981 +#: js/blocks/PitchBlocks.js:1717 +#: js/blocks/PitchBlocks.js:1758 +msgid "number" +msgstr "संख्या" -#: js/piemenus.js:3015 -#: js/piemenus.js:3088 -#: js/musicutils.js:653 -#.TRANS: modal scale for music -msgid "ionian" -msgstr "आयनियन" - -#: js/piemenus.js:3017 -#: js/piemenus.js:3092 -#: js/musicutils.js:633 -#: js/musicutils.js:811 -#: js/musicutils.js:909 -#.TRANS: minor is a music term related to intervals and mode -msgid "minor" -msgstr "माइनर" - -#: js/piemenus.js:3017 -#: js/piemenus.js:3092 -#: js/musicutils.js:663 -#.TRANS: modal scale for music -msgid "aeolian" -msgstr "एोलियन" - -#: js/piemenus.js:3407 -msgid "Duplicate" -msgstr "डुप्लीकेट" - -#: js/piemenus.js:3408 -#: js/turtledefs.js:534 -msgid "Extract" -msgstr "निकालें" - -#: js/piemenus.js:3409 -msgid "Move to trash" -msgstr "कूड़े में डालें" - -#: js/piemenus.js:3410 -#: js/timbre.js:968 -#: js/StringHelper.js:69 -msgid "Close" -msgstr "बंद करें" - -#: js/piemenus.js:3416 -msgid "Save stack" -msgstr "स्टैक को सेव करें" - -#: js/piemenus.js:3420 -#: js/toolbar.js:60 -#: js/toolbar.js:120 -#: js/toolbar.js:185 -#: js/toolbar.js:240 -#: js/turtledefs.js:752 -msgid "Help" -msgstr "मदद" - -#: js/piemenus.js:3762 -msgid "You have chosen key " -msgstr "आपने कुंजी चयन की है " - -#: js/piemenus.js:3766 -msgid " for your pitch preview." -msgstr " आपके पिच पूर्वावलोकन के लिए." - -#: js/palette.js:571 -msgid "grid" -msgstr "ग्रिड" - -#: js/palette.js:577 -#: js/block.js:1540 -#: js/block.js:2343 -#: js/turtledefs.js:126 -#: js/turtledefs.js:228 -#: js/lilypond.js:740 -#: js/lilypond.js:905 -#: js/lilypond.js:949 -#: js/DrumBlocks.js:486 -#: js/RhythmBlocks.js:766 -#: js/VolumeBlocks.js:502 -#: js/phrasemaker.js:823 -msgid "drum" -msgstr "ढोल" - -#: js/palette.js:580 -msgid "effect" -msgstr "प्रभाव" - -#: js/palette.js:586 -msgid "sargam" -msgstr "सरगम" - -#: js/palette.js:589 -#: js/activity.js:1833 -#: js/RhythmBlocks.js:923 -#: js/PitchBlocks.js:442 -#: js/PitchBlocks.js:1748 -#.TRANS: a numeric mapping of the notes in an octave based on the musical mode -msgid "scale degree" -msgstr "स्केल डिग्री" - -#: js/palette.js:592 -#: js/activity.js:1860 -msgid "mode name" -msgstr "मोड का नाम" - -#: js/palette.js:595 -#: js/activity.js:1839 -msgid "invert mode" -msgstr "मोड उलटें" - -#: js/palette.js:598 -#: js/activity.js:1836 -msgid "voice name" -msgstr "आवाज का नाम" - -#: js/palette.js:601 -#: js/PitchBlocks.js:1181 -msgid "custom pitch" -msgstr "कस्टम पिच" - -#: js/palette.js:605 -#: js/block.js:1456 -#: js/block.js:1575 -#: js/WidgetBlocks.js:218 -#: js/IntervalsBlocks.js:63 -msgid "temperament" -msgstr "स्वभाव" - -#: js/palette.js:609 -msgid "accidental" -msgstr "अक्सीडेंटल" - -#: js/palette.js:615 -#: js/activity.js:1866 -msgid "interval name" -msgstr "अंतराल का नाम" - -#: js/palette.js:633 -#: js/PitchBlocks.js:405 -msgid "pitch converter" -msgstr "पिच कनवर्टर" - -#: js/rubrics.js:522 -#: js/turtledefs.js:119 -#: js/turtledefs.js:221 -#: js/RhythmBlockPaletteBlocks.js:52 -#: js/RhythmBlockPaletteBlocks.js:233 -#: js/ProgramBlocks.js:745 -#: js/rhythmruler.js:1670 -#: js/rhythmruler.js:1677 -#: js/rhythmruler.js:1745 -#: js/rhythmruler.js:1752 -#: js/rhythmruler.js:1830 -#.TRANS: an arrangement of notes based on duration -msgid "rhythm" -msgstr "रिद्धम" - -#: js/rubrics.js:523 -#: js/block.js:2339 -#: js/turtledefs.js:121 -#: js/turtledefs.js:223 -#: js/IntervalsBlocks.js:63 -#: js/PitchBlocks.js:1801 -#: js/PitchBlocks.js:1814 -#: js/SensorsBlocks.js:178 -#: js/phrasemaker.js:821 -#: js/musickeyboard.js:1653 -#.TRANS: pitch number -#.TRANS: we specify pitch in terms of a name and an octave. The name can be CDEFGAB or Do Re Mi Fa Sol La Ti. Octave is a number between 1 and 8. -msgid "pitch" -msgstr "पिच" - -#: js/rubrics.js:524 -#: js/turtledefs.js:123 -#: js/turtledefs.js:225 -msgid "tone" -msgstr "स्वर" - -#: js/rubrics.js:525 -#: js/lilypond.js:613 -#: js/lilypond.js:912 -#: js/lilypond.js:918 -#: js/lilypond.js:956 -msgid "mouse" -msgstr "माउस" - -#: js/rubrics.js:526 -#: js/turtledefs.js:132 -#: js/turtledefs.js:234 -#: js/phrasemaker.js:825 -msgid "pen" -msgstr "क़लम" - -#: js/rubrics.js:527 -#: js/turtledefs.js:133 -#: js/turtledefs.js:235 -#: js/NumberBlocks.js:905 -#: js/PitchBlocks.js:1679 -#: js/PitchBlocks.js:1720 -msgid "number" -msgstr "संख्या" - -#: js/rubrics.js:528 +#: js/rubrics.js:529 #: js/turtledefs.js:127 #: js/turtledefs.js:229 msgid "flow" msgstr "बहाव" #: js/rubrics.js:530 +#: js/turtledefs.js:128 +#: js/turtledefs.js:230 +#: js/block-verbose.js:1609 +#: js/block-verbose.js:4559 +#: js/block-verbose.js:4577 +#: js/block-verbose.js:4588 +#: js/block.js:1573 +#: js/block.js:4483 +#: js/block.js:4501 +#: js/block.js:4512 +#: js/blocks.js:1018 +#: js/blocks.js:3491 +#: js/blocks.js:3492 +#: js/blocks.js:3717 +#: js/blocks.js:4076 +#: js/blocks.js:4269 +#: js/blocks.js:5432 +#: js/blocks.js:6563 +#: js/macros.js:170 +#: js/macros.js:266 +#: js/macros.js:267 +#: js/macros.js:276 +#: js/macros.js:828 +#: js/palette.js:527 +#: js/palette.js:536 +#: js/palette.js:545 +#: js/palette.js:554 +#: js/palette.js:1129 +#: js/palette.js:1140 +#: js/palette.js:1151 +#: js/palette.js:1162 +#: js/palette.js:1181 +#: js/blocks/ActionBlocks.js:254 +#: js/blocks/ActionBlocks.js:307 +#: js/blocks/ActionBlocks.js:617 +#: js/blocks/ActionBlocks.js:716 +#: js/blocks/ActionBlocks.js:961 +#: js/blocks/ActionBlocks.js:1049 +#: js/blocks/ActionBlocks.js:1322 +#: js/blocks/ActionBlocks.js:1325 +#: js/blocks/ActionBlocks.js:1337 +#: js/blocks/ActionBlocks.js:1404 +#: js/blocks/MeterBlocks.js:715 +#: js/blocks/MeterBlocks.js:768 +#: js/blocks/MeterBlocks.js:831 +#: js/blocks/MeterBlocks.js:892 +#: js/widgets/musickeyboard.js:2986 +#: js/widgets/phrasemaker.js:4913 +#: js/widgets/rhythmruler.js:2319 +#: js/widgets/rhythmruler.js:2326 +#: js/widgets/rhythmruler.js:2511 +#: js/widgets/rhythmruler.js:2518 +msgid "action" +msgstr "क्रिया" + +#: js/rubrics.js:531 #: js/turtledefs.js:136 #: js/turtledefs.js:238 msgid "sensors" msgstr "सेंसर" -#: js/rubrics.js:531 +#: js/rubrics.js:532 #: js/turtledefs.js:135 #: js/turtledefs.js:237 -#: js/MediaBlocks.js:930 +#: js/blocks/MediaBlocks.js:930 msgid "media" msgstr "मीडिया" -#: js/rubrics.js:532 +#: js/rubrics.js:533 msgid "mice" msgstr "माउस" -#: js/macros.js:711 -#: js/musicutils.js:783 -#: js/synthutils.js:181 -#.TRANS: animal sound effect -msgid "duck" -msgstr "बतख" - -#: js/toolbar.js:46 -#: js/toolbar.js:107 +#: js/toolbar.js:48 +#: js/toolbar.js:109 msgid "About Music Blocks" msgstr "म्यूज़िक ब्लॉक्स के बारे में" -#: js/toolbar.js:47 -#: js/toolbar.js:108 -#: js/toolbar.js:172 -#: js/toolbar.js:228 +#: js/toolbar.js:49 +#: js/toolbar.js:110 +#: js/toolbar.js:175 +#: js/toolbar.js:231 #: js/turtledefs.js:445 #: js/turtledefs.js:482 -#: js/activity.js:2281 -#: js/activity.js:2289 -#: js/activity.js:2520 -#: js/modewidget.js:77 -#: js/pitchstaircase.js:121 -#: js/phrasemaker.js:302 -#: js/phrasemaker.js:312 -#: js/phrasemaker.js:314 -#: js/phrasemaker.js:3901 -#: js/phrasemaker.js:4061 -#: js/phrasemaker.js:4066 -#: js/phrasemaker.js:4068 -#: js/phrasemaker.js:4183 -#: js/pitchdrummatrix.js:81 -#: js/pitchdrummatrix.js:574 -#: js/pitchdrummatrix.js:576 -#: js/pitchdrummatrix.js:628 -#: js/pitchdrummatrix.js:630 -#: js/pitchdrummatrix.js:645 -#: js/pitchdrummatrix.js:647 -#: js/pitchdrummatrix.js:674 -#: js/pitchdrummatrix.js:676 -#: js/temperament.js:477 -#: js/temperament.js:480 -#: js/temperament.js:540 -#: js/temperament.js:542 -#: js/temperament.js:1835 -#: js/temperament.js:1837 -#: js/temperament.js:1986 -#: js/temperament.js:1988 -#: js/musickeyboard.js:522 -#: js/musickeyboard.js:682 -#: js/musickeyboard.js:684 -#: js/musickeyboard.js:756 -#: js/musickeyboard.js:758 -#: js/rhythmruler.js:298 -#: js/rhythmruler.js:300 -#: js/rhythmruler.js:314 -#: js/rhythmruler.js:316 -#: js/sampler.js:96 -#: js/sampler.js:98 -#: js/sampler.js:229 -#: js/sampler.js:235 -#: js/sampler.js:237 -#: js/tempo.js:84 -#: js/tempo.js:86 -#: js/timbre.js:432 -#: js/timbre.js:434 -#: js/timbre.js:465 -#: js/timbre.js:467 -#: js/timbre.js:746 -#: js/meterwidget.js:80 -#: js/arpeggio.js:90 -#: js/arpeggio.js:547 -#: js/arpeggio.js:549 -#: js/arpeggio.js:644 -#: js/arpeggio.js:646 +#: js/activity.js:2660 +#: js/activity.js:2671 +#: js/activity.js:2902 +#: js/widgets/modewidget.js:77 +#: js/widgets/meterwidget.js:185 +#: js/widgets/pitchdrummatrix.js:147 +#: js/widgets/pitchdrummatrix.js:687 +#: js/widgets/pitchdrummatrix.js:689 +#: js/widgets/pitchdrummatrix.js:741 +#: js/widgets/pitchdrummatrix.js:743 +#: js/widgets/pitchdrummatrix.js:758 +#: js/widgets/pitchdrummatrix.js:760 +#: js/widgets/pitchdrummatrix.js:789 +#: js/widgets/pitchdrummatrix.js:791 +#: js/widgets/pitchstaircase.js:121 +#: js/widgets/temperament.js:610 +#: js/widgets/temperament.js:613 +#: js/widgets/temperament.js:673 +#: js/widgets/temperament.js:675 +#: js/widgets/temperament.js:2017 +#: js/widgets/temperament.js:2019 +#: js/widgets/tempo.js:84 +#: js/widgets/tempo.js:86 +#: js/widgets/timbre.js:432 +#: js/widgets/timbre.js:434 +#: js/widgets/timbre.js:465 +#: js/widgets/timbre.js:467 +#: js/widgets/timbre.js:746 +#: js/widgets/aiwidget.js:647 +#: js/widgets/aiwidget.js:654 +#: js/widgets/aiwidget.js:656 +#: js/widgets/arpeggio.js:90 +#: js/widgets/arpeggio.js:547 +#: js/widgets/arpeggio.js:549 +#: js/widgets/arpeggio.js:644 +#: js/widgets/arpeggio.js:646 +#: js/widgets/musickeyboard.js:676 +#: js/widgets/musickeyboard.js:872 +#: js/widgets/musickeyboard.js:874 +#: js/widgets/musickeyboard.js:953 +#: js/widgets/musickeyboard.js:955 +#: js/widgets/phrasemaker.js:513 +#: js/widgets/phrasemaker.js:523 +#: js/widgets/phrasemaker.js:525 +#: js/widgets/phrasemaker.js:4304 +#: js/widgets/phrasemaker.js:4528 +#: js/widgets/phrasemaker.js:4533 +#: js/widgets/phrasemaker.js:4535 +#: js/widgets/phrasemaker.js:4650 +#: js/widgets/rhythmruler.js:637 +#: js/widgets/rhythmruler.js:639 +#: js/widgets/rhythmruler.js:653 +#: js/widgets/rhythmruler.js:655 +#: js/widgets/sampler.js:162 +#: js/widgets/sampler.js:164 +#: js/widgets/sampler.js:363 msgid "Play" msgstr "बजाएं" -#: js/toolbar.js:48 -#: js/toolbar.js:109 -#: js/toolbar.js:173 -#: js/toolbar.js:229 +#: js/toolbar.js:50 +#: js/toolbar.js:111 +#: js/toolbar.js:176 +#: js/toolbar.js:232 #: js/turtledefs.js:451 #: js/turtledefs.js:488 -#: js/activity.js:2297 -#: js/modewidget.js:99 -#: js/modewidget.js:101 -#: js/phrasemaker.js:323 -#: js/phrasemaker.js:325 -#: js/pitchdrummatrix.js:561 -#: js/pitchdrummatrix.js:563 -#: js/temperament.js:1820 -#: js/temperament.js:1822 -#: js/meterwidget.js:101 -#: js/meterwidget.js:103 -#: js/arpeggio.js:534 -#: js/arpeggio.js:536 +#: js/activity.js:2679 +#: js/widgets/modewidget.js:99 +#: js/widgets/modewidget.js:101 +#: js/widgets/meterwidget.js:206 +#: js/widgets/meterwidget.js:208 +#: js/widgets/pitchdrummatrix.js:674 +#: js/widgets/pitchdrummatrix.js:676 +#: js/widgets/temperament.js:2002 +#: js/widgets/temperament.js:2004 +#: js/widgets/arpeggio.js:534 +#: js/widgets/arpeggio.js:536 +#: js/widgets/phrasemaker.js:534 +#: js/widgets/phrasemaker.js:536 msgid "Stop" msgstr "रुकें" -#: js/toolbar.js:49 -#: js/toolbar.js:110 -#: js/toolbar.js:174 -#: js/toolbar.js:230 +#: js/toolbar.js:51 +#: js/toolbar.js:112 +#: js/toolbar.js:177 +#: js/toolbar.js:233 #: js/turtledefs.js:498 msgid "Record" msgstr "रिकॉर्ड" -#: js/toolbar.js:50 -#: js/toolbar.js:51 +#: js/toolbar.js:52 +#: js/toolbar.js:53 msgid "Full screen" msgstr "पूर्ण स्क्रीन" -#: js/toolbar.js:52 -#: js/toolbar.js:112 -#: js/toolbar.js:177 -#: js/toolbar.js:232 +#: js/toolbar.js:54 +#: js/toolbar.js:115 +#: js/toolbar.js:180 +#: js/toolbar.js:236 #: js/turtledefs.js:504 msgid "Toggle Fullscreen" msgstr "" -#: js/toolbar.js:53 -#: js/toolbar.js:113 -#: js/toolbar.js:178 -#: js/toolbar.js:233 +#: js/toolbar.js:55 +#: js/toolbar.js:116 +#: js/toolbar.js:181 +#: js/toolbar.js:237 #: js/turtledefs.js:510 -#: js/StringHelper.js:33 +#: planet/js/StringHelper.js:33 msgid "New project" msgstr "नया काम" -#: js/toolbar.js:54 -#: js/toolbar.js:114 -#: js/toolbar.js:179 -#: js/toolbar.js:234 +#: js/toolbar.js:56 +#: js/toolbar.js:117 +#: js/toolbar.js:182 +#: js/toolbar.js:238 #: js/turtledefs.js:516 msgid "Load project from file" msgstr "फ़ाइल से प्रोजेक्ट लें" -#: js/toolbar.js:55 -#: js/toolbar.js:115 -#: js/toolbar.js:116 -#: js/toolbar.js:180 -#: js/toolbar.js:235 +#: js/toolbar.js:57 +#: js/toolbar.js:118 +#: js/toolbar.js:119 +#: js/toolbar.js:183 +#: js/toolbar.js:239 #: js/turtledefs.js:541 #: js/turtledefs.js:550 #: js/turtledefs.js:571 msgid "Save project" msgstr "प्रोजेक्ट को संचय करे" -#: js/toolbar.js:56 -#: js/toolbar.js:75 +#: js/toolbar.js:58 #: js/toolbar.js:77 -#: js/toolbar.js:135 -#: js/toolbar.js:144 -#: js/toolbar.js:146 -#: js/toolbar.js:181 -#: js/toolbar.js:199 -#: js/toolbar.js:201 -#: js/toolbar.js:236 -#: js/toolbar.js:254 -#: js/toolbar.js:256 +#: js/toolbar.js:79 +#: js/toolbar.js:138 +#: js/toolbar.js:147 +#: js/toolbar.js:149 +#: js/toolbar.js:184 +#: js/toolbar.js:202 +#: js/toolbar.js:204 +#: js/toolbar.js:240 +#: js/toolbar.js:258 +#: js/toolbar.js:260 msgid "Save project as HTML" msgstr "प्रोजेक्ट को HTML के रूप में संचय करें" -#: js/toolbar.js:57 -#: js/toolbar.js:117 -#: js/toolbar.js:182 -#: js/toolbar.js:237 +#: js/toolbar.js:59 +#: js/toolbar.js:120 +#: js/toolbar.js:185 +#: js/toolbar.js:241 msgid "Find and share projects" msgstr "परियोजनाएं खोजें और साझा करें" -#: js/toolbar.js:58 -#: js/toolbar.js:118 -#: js/toolbar.js:183 -#: js/toolbar.js:238 +#: js/toolbar.js:60 +#: js/toolbar.js:121 +#: js/toolbar.js:186 +#: js/toolbar.js:242 msgid "Offline. Sharing is unavailable" msgstr "ऑफ़लाइन। साझा करना अस्वीकृत है" -#: js/toolbar.js:59 -#: js/toolbar.js:119 -#: js/toolbar.js:184 -#: js/toolbar.js:239 +#: js/toolbar.js:61 +#: js/toolbar.js:122 +#: js/toolbar.js:187 +#: js/toolbar.js:243 msgid "Auxiliary menu" msgstr "सहायक मेनू" -#: js/toolbar.js:61 -#: js/toolbar.js:121 -#: js/toolbar.js:186 -#: js/toolbar.js:241 +#: js/toolbar.js:62 +#: js/toolbar.js:123 +#: js/toolbar.js:188 +#: js/toolbar.js:244 +#: js/turtledefs.js:752 +#: js/piemenus.js:3423 +msgid "Help" +msgstr "मदद" + +#: js/toolbar.js:63 +#: js/toolbar.js:124 +#: js/toolbar.js:189 +#: js/toolbar.js:245 msgid "Run slowly" msgstr "धीमे रूप से चलाएं" -#: js/toolbar.js:62 -#: js/toolbar.js:122 -#: js/toolbar.js:187 -#: js/toolbar.js:242 +#: js/toolbar.js:64 +#: js/toolbar.js:125 +#: js/toolbar.js:190 +#: js/toolbar.js:246 #: js/turtledefs.js:682 msgid "Run step by step" msgstr "क्रमशः चलाएं" -#: js/toolbar.js:63 -#: js/toolbar.js:123 -#: js/toolbar.js:188 -#: js/toolbar.js:243 +#: js/toolbar.js:65 +#: js/toolbar.js:126 +#: js/toolbar.js:191 +#: js/toolbar.js:247 #: js/turtledefs.js:689 msgid "Display statistics" msgstr "आँकड़े प्रदर्शित करें" -#: js/toolbar.js:64 -#: js/toolbar.js:124 -#: js/toolbar.js:189 -#: js/toolbar.js:244 +#: js/toolbar.js:66 +#: js/toolbar.js:127 +#: js/toolbar.js:192 +#: js/toolbar.js:248 msgid "Load plugin" msgstr "प्लगइन लोड करें" -#: js/toolbar.js:65 -#: js/toolbar.js:125 -#: js/toolbar.js:190 -#: js/toolbar.js:245 +#: js/toolbar.js:67 +#: js/toolbar.js:128 +#: js/toolbar.js:193 +#: js/toolbar.js:249 #: js/turtledefs.js:696 msgid "Delete plugin" msgstr "प्लगइन हटाएं" -#: js/toolbar.js:66 -#: js/toolbar.js:126 -#: js/toolbar.js:191 -#: js/toolbar.js:246 +#: js/toolbar.js:68 +#: js/toolbar.js:129 +#: js/toolbar.js:194 +#: js/toolbar.js:250 msgid "Enable horizontal scrolling" msgstr "क्षैतिज स्क्रोलिंग सक्षम करें" -#: js/toolbar.js:67 -#: js/toolbar.js:127 -#: js/toolbar.js:192 -#: js/toolbar.js:247 +#: js/toolbar.js:69 +#: js/toolbar.js:130 +#: js/toolbar.js:195 +#: js/toolbar.js:251 msgid "Disable horizontal scrolling" msgstr "क्षैतिज स्क्रोलिंग अक्षम करें" -#: js/toolbar.js:68 -#: js/toolbar.js:128 -#: js/toolbar.js:193 -#: js/toolbar.js:248 -#: js/LocalCard.js:54 -#: js/StringHelper.js:71 +#: js/toolbar.js:70 +#: js/toolbar.js:131 +#: js/toolbar.js:196 +#: js/toolbar.js:252 +#: planet/js/LocalCard.js:54 +#: planet/js/StringHelper.js:71 msgid "Merge with current project" msgstr "वर्तमान परियोजना के साथ मर्ज करें" -#: js/toolbar.js:69 -#: js/toolbar.js:129 +#: js/toolbar.js:71 +#: js/toolbar.js:132 msgid "Set Pitch Preview" msgstr "पिच पूर्वावलोकन सेट करें" -#: js/toolbar.js:70 -#: js/toolbar.js:130 -#: js/toolbar.js:194 -#: js/toolbar.js:249 -msgid "Toggle JavaScript Editor" -msgstr "जावास्क्रिप्ट संपादक को टॉगल करें" +#: js/toolbar.js:72 +#: js/toolbar.js:133 +#: js/toolbar.js:197 +#: js/toolbar.js:253 +msgid "JavaScript Editor" +msgstr "" -#: js/toolbar.js:71 -#: js/toolbar.js:131 -#: js/toolbar.js:195 -#: js/toolbar.js:250 +#: js/toolbar.js:73 +#: js/toolbar.js:134 +#: js/toolbar.js:198 +#: js/toolbar.js:254 #: js/turtledefs.js:724 msgid "Restore" msgstr "पुनर्स्थापित करें" -#: js/toolbar.js:72 -#: js/toolbar.js:132 -#: js/toolbar.js:196 -#: js/toolbar.js:251 +#: js/toolbar.js:74 +#: js/toolbar.js:135 +#: js/toolbar.js:199 +#: js/toolbar.js:255 msgid "Switch to beginner mode" msgstr "प्रारंभिक मोड में स्विच करें" -#: js/toolbar.js:73 -#: js/toolbar.js:133 -#: js/toolbar.js:197 -#: js/toolbar.js:252 +#: js/toolbar.js:75 +#: js/toolbar.js:136 +#: js/toolbar.js:200 +#: js/toolbar.js:256 msgid "Switch to advanced mode" msgstr "उन्नत मोड में स्विच करें" -#: js/toolbar.js:74 -#: js/toolbar.js:134 -#: js/toolbar.js:143 -#: js/toolbar.js:198 -#: js/toolbar.js:253 +#: js/toolbar.js:76 +#: js/toolbar.js:137 +#: js/toolbar.js:146 +#: js/toolbar.js:201 +#: js/toolbar.js:257 #: js/turtledefs.js:738 msgid "Select language" msgstr "भाषा चुनें" -#: js/toolbar.js:76 -#: js/toolbar.js:79 -#: js/toolbar.js:137 +#: js/toolbar.js:78 +#: js/toolbar.js:81 +#: js/toolbar.js:140 #: js/turtledefs.js:579 msgid "Save mouse artwork as PNG" msgstr "माउस आर्टवर्क को PNG के रूप में सहेजें" -#: js/toolbar.js:78 -#: js/toolbar.js:136 +#: js/toolbar.js:80 +#: js/toolbar.js:139 #: js/turtledefs.js:575 msgid "Save mouse artwork as SVG" msgstr "माउस आर्टवर्क को SVG के रूप में सहेजें" -#: js/toolbar.js:80 -#: js/toolbar.js:138 +#: js/toolbar.js:82 +#: js/toolbar.js:141 #: js/turtledefs.js:583 msgid "Save music as WAV" msgstr "संगीत को WAV के रूप में सहेजें" -#: js/toolbar.js:81 -#: js/toolbar.js:139 +#: js/toolbar.js:83 +#: js/toolbar.js:142 #: js/turtledefs.js:587 msgid "Save sheet music as ABC" msgstr "शीट संगीत को ABC के रूप में सहेजें" -#: js/toolbar.js:82 -#: js/toolbar.js:140 +#: js/toolbar.js:84 +#: js/toolbar.js:143 #: js/turtledefs.js:591 msgid "Save sheet music as Lilypond" msgstr "शीट संगीत को Lilypond के रूप में सहेजें" -#: js/toolbar.js:83 +#: js/toolbar.js:85 msgid "Save sheet music as MusicXML" msgstr "शीट संगीत को MusicXML के रूप में सहेजें" -#: js/toolbar.js:84 -#: js/toolbar.js:141 -#: js/toolbar.js:149 -#: js/toolbar.js:204 -#: js/toolbar.js:259 +#: js/toolbar.js:86 +#: js/toolbar.js:144 +#: js/toolbar.js:152 +#: js/toolbar.js:207 +#: js/toolbar.js:263 #: js/turtledefs.js:562 #: js/turtledefs.js:595 msgid "Save block artwork as SVG" msgstr "ब्लॉक आर्टवर्क को SVG के रूप में सहेजें" -#: js/toolbar.js:85 -#: js/toolbar.js:142 -#: js/toolbar.js:150 -#: js/toolbar.js:205 -#: js/toolbar.js:260 +#: js/toolbar.js:87 +#: js/toolbar.js:145 +#: js/toolbar.js:153 +#: js/toolbar.js:208 +#: js/toolbar.js:264 +#: js/turtles.js:911 msgid "Confirm" msgstr "पुष्टि करें" -#: js/toolbar.js:86 -#: js/toolbar.js:151 -#: js/toolbar.js:206 -#: js/toolbar.js:261 -msgid "English (United States)" -msgstr "" - -#: js/toolbar.js:87 -#: js/toolbar.js:152 -#: js/toolbar.js:207 -#: js/toolbar.js:262 -msgid "English (United Kingdom)" -msgstr "" - #: js/toolbar.js:88 -#: js/toolbar.js:153 -#: js/toolbar.js:208 -#: js/toolbar.js:263 -msgid "日本語" +#: js/toolbar.js:154 +#: js/toolbar.js:209 +#: js/toolbar.js:265 +msgid "English (United States)" msgstr "" #: js/toolbar.js:89 -msgid "한국어" -msgstr "" - -#: js/toolbar.js:90 #: js/toolbar.js:155 #: js/toolbar.js:210 -#: js/toolbar.js:265 -msgid "español" +#: js/toolbar.js:266 +msgid "English (United Kingdom)" msgstr "" -#: js/toolbar.js:91 +#: js/toolbar.js:90 #: js/toolbar.js:156 #: js/toolbar.js:211 -#: js/toolbar.js:266 -msgid "português" +#: js/toolbar.js:267 +msgid "日本語" msgstr "" -#: js/toolbar.js:92 -#: js/toolbar.js:157 -#: js/toolbar.js:212 -#: js/toolbar.js:267 -msgid "にほんご" +#: js/toolbar.js:91 +msgid "한국어" msgstr "" -#: js/toolbar.js:93 +#: js/toolbar.js:92 #: js/toolbar.js:158 #: js/toolbar.js:213 -#: js/toolbar.js:268 -msgid "中文" +#: js/toolbar.js:269 +msgid "español" msgstr "" -#: js/toolbar.js:94 +#: js/toolbar.js:93 #: js/toolbar.js:159 #: js/toolbar.js:214 -#: js/toolbar.js:269 -msgid "ภาษาไทย" +#: js/toolbar.js:270 +msgid "português" msgstr "" -#: js/toolbar.js:95 +#: js/toolbar.js:94 #: js/toolbar.js:160 #: js/toolbar.js:215 -#: js/toolbar.js:270 -msgid "aymara" +#: js/toolbar.js:271 +msgid "にほんご" msgstr "" -#: js/toolbar.js:96 +#: js/toolbar.js:95 #: js/toolbar.js:161 #: js/toolbar.js:216 -#: js/toolbar.js:271 -msgid "quechua" +#: js/toolbar.js:272 +msgid "中文" msgstr "" -#: js/toolbar.js:97 +#: js/toolbar.js:96 #: js/toolbar.js:162 #: js/toolbar.js:217 -#: js/toolbar.js:272 -msgid "guarani" +#: js/toolbar.js:273 +msgid "ภาษาไทย" msgstr "" -#: js/toolbar.js:98 +#: js/toolbar.js:97 #: js/toolbar.js:163 #: js/toolbar.js:218 -#: js/toolbar.js:273 -msgid "हिंदी" +#: js/toolbar.js:274 +msgid "aymara" msgstr "" -#: js/toolbar.js:99 -#: js/toolbar.js:165 +#: js/toolbar.js:98 +#: js/toolbar.js:164 #: js/toolbar.js:219 #: js/toolbar.js:275 -msgid "igbo" +msgid "quechua" msgstr "" -#: js/toolbar.js:100 -#: js/toolbar.js:166 -#: js/toolbar.js:220 -#: js/toolbar.js:276 -msgid "عربى" -msgstr "" +#: js/toolbar.js:99 +#: js/toolbar.js:165 +#: js/toolbar.js:220 +#: js/toolbar.js:276 +msgid "guarani" +msgstr "" + +#: js/toolbar.js:100 +#: js/toolbar.js:166 +#: js/toolbar.js:221 +#: js/toolbar.js:277 +msgid "हिंदी" +msgstr "" + +#: js/toolbar.js:101 +#: js/toolbar.js:168 +#: js/toolbar.js:222 +#: js/toolbar.js:279 +msgid "igbo" +msgstr "" + +#: js/toolbar.js:102 +#: js/toolbar.js:169 +#: js/toolbar.js:223 +#: js/toolbar.js:280 +msgid "عربى" +msgstr "" + +#: js/toolbar.js:103 +#: js/toolbar.js:167 +#: js/toolbar.js:224 +#: js/toolbar.js:278 +msgid "తెలుగు" +msgstr "" + +#: js/toolbar.js:104 +#: js/toolbar.js:170 +#: js/toolbar.js:225 +#: js/toolbar.js:281 +msgid "עִברִית" +msgstr "" + +#: js/toolbar.js:113 +#: js/toolbar.js:114 +#: js/toolbar.js:178 +#: js/toolbar.js:179 +#: js/toolbar.js:234 +#: js/toolbar.js:235 +msgid "Full Screen" +msgstr "पूर्ण स्क्रीन" + +#: js/toolbar.js:148 +#: js/toolbar.js:151 +#: js/toolbar.js:203 +#: js/toolbar.js:206 +#: js/toolbar.js:259 +#: js/toolbar.js:262 +#: js/turtledefs.js:558 +msgid "Save turtle artwork as PNG" +msgstr "टर्टल आर्टवर्क को PNG के रूप में सहेजें" + +#: js/toolbar.js:150 +#: js/toolbar.js:205 +#: js/toolbar.js:261 +#: js/turtledefs.js:554 +msgid "Save turtle artwork as SVG" +msgstr "टर्टल आर्टवर्क को SVG के रूप में सहेजें" + +#: js/toolbar.js:157 +#: js/toolbar.js:212 +#: js/toolbar.js:268 +msgid "한국인" +msgstr "" + +#: js/toolbar.js:174 +#: js/toolbar.js:230 +msgid "About Turtle Blocks" +msgstr "टर्टल ब्लॉक्स के बारे में" + +#: js/toolbar.js:446 +#: js/toolbar.js:457 +#: js/toolbar.js:497 +msgid "Turtle Wrap Off" +msgstr "टर्टल रैप बंद" + +#: js/toolbar.js:466 +#: js/toolbar.js:506 +msgid "Turtle Wrap On" +msgstr "टर्टल रैप चालू" + +#: js/turtle-painter.js:1192 +#: js/turtle-painter.js:1193 +#: js/turtles.js:118 +#: js/block-verbose.js:1623 +#: js/block.js:1587 +#: js/lilypond.js:749 +#: js/lilypond.js:913 +#: js/lilypond.js:951 +#: js/logo.js:1184 +#: js/blocks/ActionBlocks.js:1223 +#: js/blocks/ProgramBlocks.js:1267 +msgid "start" +msgstr "प्रारंभ" + +#: js/turtledefs.js:40 +#.TRANS: put the URL to the guide here, e.g., https://github.com/sugarlabs/turtleblocksjs/tree/master/guide/README.md +msgid "guide url" +msgstr "गाइड url" + +#: js/turtledefs.js:85 +#: js/turtledefs.js:437 +msgid "Turtle Blocks is a Logo-inspired turtle that draws colorful pictures with snap-together visual-programming blocks." +msgstr "टर्टल ब्लॉक्स एक लोगो-प्रेरित कछुआ है जो स्नैप-टूगेदर विजुअल-प्रोग्रामिंग ब्लॉक के साथ रंगीन तस्वीरें बनाता है।" + +#: js/turtledefs.js:118 +#: js/turtledefs.js:220 +msgid "search" +msgstr "खोज" + +#: js/turtledefs.js:120 +#: js/turtledefs.js:222 +#: js/blocks/MeterBlocks.js:1343 +#: js/blocks/WidgetBlocks.js:522 +#.TRANS: musical meter (time signature), e.g., 4:4 +msgid "meter" +msgstr "मीटर" + +#: js/turtledefs.js:122 +#: js/turtledefs.js:224 +msgid "intervals" +msgstr "अंतराल" + +#: js/turtledefs.js:124 +#: js/turtledefs.js:226 +msgid "ornament" +msgstr "आभूषण" + +#: js/turtledefs.js:125 +#: js/turtledefs.js:227 +#: js/blocks/VolumeBlocks.js:362 +#: js/blocks/VolumeBlocks.js:502 +#: js/blocks/VolumeBlocks.js:545 +msgid "volume" +msgstr "आवृत्ति" + +#: js/turtledefs.js:126 +#: js/turtledefs.js:228 +#: js/block-verbose.js:1700 +#: js/block-verbose.js:2626 +#: js/block.js:1664 +#: js/block.js:2554 +#: js/lilypond.js:732 +#: js/lilypond.js:897 +#: js/lilypond.js:941 +#: js/palette.js:577 +#: js/blocks/RhythmBlocks.js:766 +#: js/blocks/DrumBlocks.js:477 +#: js/blocks/VolumeBlocks.js:502 +#: js/widgets/phrasemaker.js:1038 +msgid "drum" +msgstr "ढोल" + +#: js/turtledefs.js:129 +#: js/turtledefs.js:231 +msgid "boxes" +msgstr "बॉक्स" + +#: js/turtledefs.js:130 +#: js/turtledefs.js:232 +msgid "widgets" +msgstr "विजेट्स" + +#: js/turtledefs.js:131 +#: js/turtledefs.js:233 +#: js/widgets/phrasemaker.js:1039 +msgid "graphics" +msgstr "ग्राफिक्स" + +#: js/turtledefs.js:134 +#: js/turtledefs.js:236 +msgid "boolean" +msgstr "बूलियन" + +#: js/turtledefs.js:137 +#: js/turtledefs.js:239 +#: js/blocks/HeapBlocks.js:59 +#: js/widgets/status.js:147 +msgid "heap" +msgstr "हीप" + +#: js/turtledefs.js:138 +#: js/turtledefs.js:240 +#: js/blocks/DictBlocks.js:142 +#: js/blocks/ProgramBlocks.js:495 +msgid "dictionary" +msgstr "शब्दकोश" + +#: js/turtledefs.js:139 +#: js/turtledefs.js:241 +msgid "ensemble" +msgstr "एंसेंबल" + +#: js/turtledefs.js:140 +#: js/turtledefs.js:242 +msgid "extras" +msgstr "अतिरिक्त" + +#: js/turtledefs.js:142 +#: js/turtledefs.js:244 +#.TRANS: program as in computer program +#.TRANS: program as in computer program +msgid "program" +msgstr "प्रोग्राम" + +#: js/turtledefs.js:143 +#: js/turtledefs.js:245 +msgid "my blocks" +msgstr "मेरे ब्लॉक्स" + +#: js/turtledefs.js:185 +#: js/turtledefs.js:281 +msgid "artwork" +msgstr "कला का कार्य" + +#: js/turtledefs.js:185 +#: js/turtledefs.js:281 +msgid "logic" +msgstr "तर्क" + +#: js/turtledefs.js:185 +#: js/turtledefs.js:281 +msgid "music" +msgstr "संगीत" + +#: js/turtledefs.js:187 +#: js/turtledefs.js:463 +msgid "Music Blocks is a collection of tools for exploring fundamental musical concepts in a fun way." +msgstr "म्यूजिक ब्लॉक्स संगीत के मौलिक अवधारणाओं का अन्वेषण करने के लिए एक मजेदार तरीके से सुझाव देता है।" + +#: js/turtledefs.js:436 +msgid "Welcome to Turtle Blocks" +msgstr "टर्टल ब्लॉक्स में आपका स्वागत है" + +#: js/turtledefs.js:438 +#: js/turtledefs.js:465 +#: js/turtledefs.js:774 +#: js/turtledefs.js:805 +msgid "The current version is" +msgstr "वर्तमान संस्करण है" + +#: js/turtledefs.js:446 +#: js/turtledefs.js:483 +msgid "Click the run button to run the project in fast mode." +msgstr "तेज मोड में परियोजना को चलाने के लिए रन बटन पर क्लिक करें।" + +#: js/turtledefs.js:452 +msgid "Stop the turtle." +msgstr "कछुआ को रोकें।" + +#: js/turtledefs.js:454 +#: js/turtledefs.js:491 +msgid "You can also type Alt-S to stop." +msgstr "आप रोकने के लिए Alt-S भी टाइप कर सकते हैं।" + +#: js/turtledefs.js:462 +#: js/widgets/help.js:333 +msgid "Welcome to Music Blocks" +msgstr "म्यूजिक ब्लॉक में आपका स्वागत है" + +#: js/turtledefs.js:472 +#: js/widgets/help.js:334 +msgid "Meet Mr. Mouse!" +msgstr "मिस्टर माउस से मिलें!" + +#: js/turtledefs.js:473 +msgid "Mr Mouse is our Music Blocks conductor." +msgstr "मिस्टर माउस हमारे संगीत ब्लॉक्स कंडक्टर हैं।" + +#: js/turtledefs.js:475 +msgid "Mr Mouse encourages you to explore Music Blocks." +msgstr "मिस्टर माउस आपको म्यूजिक ब्लॉक्स का अन्वेषण करने के लिए प्रेरित करता है।" + +#: js/turtledefs.js:477 +msgid "Let us start our tour!" +msgstr "आइए हमारा दौरा शुरू करें!" + +#: js/turtledefs.js:489 +msgid "Stop the music (and the mice)." +msgstr "संगीत को रोकें (और चूहे भी)।" + +#: js/turtledefs.js:499 +msgid "Record your project as video." +msgstr "अपने परियोजना को एक वीडियो के रूप में रिकॉर्ड करें।" + +#: js/turtledefs.js:505 +msgid "Toggle Fullscreen mode." +msgstr "" + +#: js/turtledefs.js:511 +msgid "Initialize a new project." +msgstr "एक नई परियोजना की शुरुआत करें।" + +#: js/turtledefs.js:517 +msgid "You can also load projects from the file system." +msgstr "आप फ़ाइल सिस्टम से भी परियोजनाएं लोड कर सकते हैं।" + +#: js/turtledefs.js:522 +#: planet/js/StringHelper.js:46 +msgid "Delete" +msgstr "हटाएं" + +#: js/turtledefs.js:523 +msgid "To delete a block, just right-click on it, then you will be able to see the delete option" +msgstr "" + +#: js/turtledefs.js:528 +#: js/activity.js:2649 +#: planet/js/LocalCard.js:31 +msgid "Copy" +msgstr "नक़ल" + +#: js/turtledefs.js:529 +msgid "To copy a block, just right-click on it, then you will be able to see the copy option" +msgstr "" + +#: js/turtledefs.js:534 +#: js/piemenus.js:3411 +msgid "Extract" +msgstr "निकालें" + +#: js/turtledefs.js:535 +msgid "To extract a block, just right-click on it, then you will be able to see the extract option" +msgstr "" + +#: js/turtledefs.js:542 +#: js/turtledefs.js:552 +#: js/turtledefs.js:573 +msgid "Save your project to a file." +msgstr "अपनी परियोजना को एक फ़ाइल में सहेजें।" + +#: js/turtledefs.js:549 +#: js/turtledefs.js:570 +msgid "save" +msgstr "सहेजें" + +#: js/turtledefs.js:556 +#: js/turtledefs.js:577 +msgid "Save graphics from your project to as SVG." +msgstr "अपनी परियोजना से ग्राफिक्स को एसवीजी के रूप में सहेजें।" + +#: js/turtledefs.js:560 +#: js/turtledefs.js:581 +msgid "Save graphics from your project as PNG." +msgstr "अपनी परियोजना से ग्राफिक्स को पीएनजी के रूप में सहेजें।" + +#: js/turtledefs.js:564 +#: js/turtledefs.js:597 +msgid "Save block artwork as an SVG file." +msgstr "ब्लॉक कला को एसवीजी फ़ाइल के रूप में सहेजें।" + +#: js/turtledefs.js:585 +msgid "Save audio from your project as WAV." +msgstr "अपनी परियोजना से ऑडियो को डब्लूएवी के रूप में सहेजें।" + +#: js/turtledefs.js:589 +msgid "Save your project to as an ABC file." +msgstr "अपनी परियोजना को एक एबीसी फ़ाइल के रूप में सहेजें।" + +#: js/turtledefs.js:593 +msgid "Save your project to as a Lilypond file." +msgstr "अपनी परियोजना को एक लिलीपॉंड फ़ाइल के रूप में सहेजें।" + +#: js/turtledefs.js:604 +msgid "Load samples from server" +msgstr "सर्वर से नमूना लोड करें" + +#: js/turtledefs.js:605 +msgid "This button opens a viewer for loading example projects." +msgstr "यह बटन नमूने देखने के लिए एक दर्शक खोलता है।" + +#: js/turtledefs.js:611 +msgid "Palette buttons" +msgstr "पैलेट बटन" + +#: js/turtledefs.js:612 +msgid "This toolbar contains the palette buttons including Rhythm Pitch Tone Action and more." +msgstr "यह टूलबार रिद्धि पिच टोन क्रिया और अन्य सहित पैलेट बटन्स को शामिल करता है।" + +#: js/turtledefs.js:614 +msgid "Click to show the palettes of blocks and drag blocks from the palettes onto the canvas to use them." +msgstr "ब्लॉक और पैलेट्स के पैलेट्स दिखाने के लिए क्लिक करें और इन्हें कैनवास पर खींचें ताकि आप उन्हें इस्तेमाल कर सकें।" + +#: js/turtledefs.js:620 +msgid "Cartesian/Polar" +msgstr "कार्टेसिय" + +#: js/turtledefs.js:621 +msgid "Show or hide a coordinate grid." +msgstr "कोआर्डिनेट ग्रिड दिखाएँ या छुपाएँ।" + +#: js/turtledefs.js:626 +#: js/turtles.js:902 +msgid "Clean" +msgstr "साफ" + +#: js/turtledefs.js:627 +msgid "Clear the screen and return the mice to their initial positions." +msgstr "स्क्रीन को साफ करें और माउस को उनकी प्रारंभिक स्थितियों में ले आएं।" + +#: js/turtledefs.js:632 +#: js/turtles.js:955 +msgid "Collapse" +msgstr "ढहाना" + +#: js/turtledefs.js:633 +msgid "Collapse the graphics window." +msgstr "ग्राफिक्स विंडो को संकुचित करें।" + +#: js/turtledefs.js:638 +#: js/activity.js:5684 +msgid "Home" +msgstr "होम" + +#: js/turtledefs.js:639 +msgid "Return all blocks to the center of the screen." +msgstr "सभी ब्लॉक्स को स्क्रीन के केंद्र में लौटाएं।" + +#: js/turtledefs.js:644 +msgid "Show/hide blocks" +msgstr "ब्लॉक्स दिखाएँ/छुपाएँ" + +#: js/turtledefs.js:645 +msgid "Hide or show the blocks and the palettes." +msgstr "ब्लॉक्स और पैलेट्स को छुपाएं या दिखाएं" + +#: js/turtledefs.js:650 +msgid "Expand/collapse collapsable blocks" +msgstr "विकल्प/संकुचन योग्य ब्लॉक्स को विस्तृत/संकुचित करें" + +#: js/turtledefs.js:651 +msgid "Expand or collapse start and action stacks." +msgstr "स्टार्ट और एक्शन स्टैक्स को विस्तृत या संकुचित करें।" + +#: js/turtledefs.js:658 +#: js/activity.js:5704 +msgid "Decrease block size" +msgstr "ब्लॊक का आकार घटाएं" + +#: js/turtledefs.js:659 +msgid "Decrease the size of the blocks." +msgstr "ब्लॉक्स का आकार घटाएं" + +#: js/turtledefs.js:664 +#: js/activity.js:5710 +msgid "Increase block size" +msgstr "ब्लॊक का आकार बढ़ाएं" + +#: js/turtledefs.js:665 +msgid "Increase the size of the blocks." +msgstr "ब्लॉक्स का आकार बढ़ाएं" + +#: js/turtledefs.js:670 +msgid "Expand/collapse option toolbar" +msgstr "विकल्प टूलबार को विस्तृत/संकुचित करें" + +#: js/turtledefs.js:671 +msgid "Click this button to expand or collapse the auxillary toolbar." +msgstr "" + +#: js/turtledefs.js:676 +msgid "Run slow" +msgstr "धीमे चलाएं" + +#: js/turtledefs.js:677 +msgid "Click to run the project in slow mode." +msgstr "प्रोजेक्ट को धीरे चलाने के लिए यहाँ क्लिक करें" + +#: js/turtledefs.js:683 +msgid "Click to run the project step by step." +msgstr "प्रोजेक्ट को क्रमशः चलने के लिए क्लिक करें" + +#: js/turtledefs.js:690 +msgid "Display statistics about your Music project." +msgstr "अपने संगीत प्रोजेक्ट के आँकड़े दिखाएँ।" + +#: js/turtledefs.js:697 +msgid "Delete a selected plugin." +msgstr "चयनित प्लगइन को हटाएं।" + +#: js/turtledefs.js:704 +msgid "Enable scrolling" +msgstr "स्क्रॉलिंग सक्षम करें" + +#: js/turtledefs.js:705 +msgid "You can scroll the blocks on the canvas." +msgstr "आप कैनवास पर ब्लॉक्स को स्क्रॉल कर सकते हैं।" + +#: js/turtledefs.js:714 +msgid "Wrap Turtle" +msgstr "टर्टल को लपेटें" + +#: js/turtledefs.js:715 +msgid "Turn Turtle wrapping On or Off." +msgstr "टर्टल लपेटें को चालू या बंद करें।" + +#: js/turtledefs.js:725 +msgid "Restore blocks from the trash." +msgstr "कचरे से ब्लॉक्स को बहाल करें।" + +#: js/turtledefs.js:732 +msgid "Switch mode" +msgstr "मोड स्विच करें" + +#: js/turtledefs.js:733 +msgid "Switch between beginner and advance modes." +msgstr "शुरुआती और उन्नत मोड के बीच स्विच करें।" + +#: js/turtledefs.js:739 +msgid "Select your language preference." +msgstr "अपनी भाषा प्राथमिकता का चयन करें।" + +#: js/turtledefs.js:745 +msgid "Keyboard shortcuts" +msgstr "कीबोर्ड शॉर्टकट्स" + +#: js/turtledefs.js:746 +msgid "You can type d to create a do block and r to create a re block etc." +msgstr "आप डू ब्लॉक बनाने के लिए डी और रे ब्लॉक बनाने के लिए आर इत्यादि टाइप कर सकते हैं।" + +#: js/turtledefs.js:753 +msgid "Show these messages." +msgstr "इन संदेशों को दिखाएँ।" + +#: js/turtledefs.js:759 +#: js/turtledefs.js:790 +#: js/widgets/help.js:335 +msgid "Guide" +msgstr "मार्गदर्शिका" + +#: js/turtledefs.js:760 +msgid "A detailed guide to Turtle Blocks is available." +msgstr "टर्टल ब्लॉक्स के लिए एक विस्तृत मार्गदर्शिका उपलब्ध है।" + +#: js/turtledefs.js:764 +msgid "Turtle Blocks Guide" +msgstr "टर्टल ब्लॉक्स मार्गदर्शिका" + +#: js/turtledefs.js:767 +#: js/turtledefs.js:798 +#: js/widgets/help.js:336 +msgid "About" +msgstr "बारे में" + +#: js/turtledefs.js:768 +msgid "Turtle Blocks is an open source collection of tools for exploring musical concepts." +msgstr "टर्टल ब्लॉक्स एक संगीत सिद्धांतों की खोज के लिए एक ओपन सोर्स संग्रह है।" + +#: js/turtledefs.js:770 +msgid "A full list of contributors can be found in the Turtle Blocks GitHub repository." +msgstr "टर्टल ब्लॉक्स GitHub रिपॉजिटरी में सभी योगदानकर्ताओं की पूरी सूची मिल सकती है।" + +#: js/turtledefs.js:772 +msgid "Turtle Blocks is licensed under the AGPL." +msgstr "टर्टल ब्लॉक्स AGPL लाइसेंस के तहत लाइसेंस प्राप्त करता है।" + +#: js/turtledefs.js:780 +msgid "Turtle Blocks GitHub repository" +msgstr "टर्टल ब्लॉक्स GitHub रिपॉजिटरी" + +#: js/turtledefs.js:783 +#: js/turtledefs.js:814 +#: js/widgets/help.js:337 +#: js/widgets/help.js:359 +msgid "Congratulations." +msgstr "बधाई हो।" + +#: js/turtledefs.js:784 +msgid "You have finished the tour. Please enjoy Turtle Blocks!" +msgstr "आपने दौरा समाप्त किया है। कृपया टर्टल ब्लॉक्स का आनंद लें!" + +#: js/turtledefs.js:791 +msgid "A detailed guide to Music Blocks is available." +msgstr "म्यूजिक ब्लॉक्स के लिए एक विस्तृत मार्गदर्शिका उपलब्ध है।" + +#: js/turtledefs.js:799 +msgid "Music Blocks is an open source collection of tools for exploring musical concepts." +msgstr "म्यूजिक ब्लॉक्स एक संगीत सिद्धांतों की खोज के लिए एक ओपन सोर्स संग्रह है।" + +#: js/turtledefs.js:801 +msgid "A full list of contributors can be found in the Music Blocks GitHub repository." +msgstr "म्यूजिक ब्लॉक्स GitHub रिपॉजिटरी में सभी योगदानकर्ताओं की पूरी सूची मिल सकती है।" + +#: js/turtledefs.js:803 +msgid "Music Blocks is licensed under the AGPL." +msgstr "म्यूजिक ब्लॉक्स AGPL लाइसेंस के तहत लाइसेंस प्राप्त करता है।" + +#: js/turtledefs.js:811 +msgid "Music Blocks GitHub repository" +msgstr "म्यूजिक ब्लॉक्स GitHub रेपॉजिटरी" + +#: js/turtledefs.js:815 +msgid "You have finished the tour. Please enjoy Music Blocks!" +msgstr "आपने यात्रा पूरी कर ली है। कृपया Music Blocks का आनंद लें!" + +#: js/turtles.js:882 +msgid "Grid" +msgstr "ग्रिड" + +#: js/turtles.js:1024 +msgid "Expand" +msgstr "विस्तार" + +#: js/block-verbose.js:1616 +#: js/block-verbose.js:1735 +#: js/block.js:1580 +#: js/block.js:1699 +#: js/palette.js:605 +#: js/blocks/IntervalsBlocks.js:63 +#: js/blocks/WidgetBlocks.js:259 +msgid "temperament" +msgstr "स्वभाव" + +#: js/block-verbose.js:1630 +#: js/block.js:1594 +msgid "matrix" +msgstr "मैट्रिक्स" + +#: js/block-verbose.js:1637 +#: js/block.js:1601 +#: js/blocks/WidgetBlocks.js:1509 +#: plugins/rodi.rtp:324 +msgid "status" +msgstr "स्थिति" + +#: js/block-verbose.js:1644 +#: js/block.js:1608 +msgid "drum mapper" +msgstr "ड्रम मैपर" + +#: js/block-verbose.js:1651 +#: js/block.js:1615 +msgid "ruler" +msgstr "रूलर" + +#: js/block-verbose.js:1658 +#: js/block.js:1622 +#: js/blocks/WidgetBlocks.js:397 +#.TRANS: timbre is the character or quality of a musical sound +msgid "timbre" +msgstr "टिम्बर" + +#: js/block-verbose.js:1665 +#: js/block.js:1629 +msgid "stair" +msgstr "सीढ़ी" + +#: js/block-verbose.js:1672 +#: js/block.js:1636 +#: js/blocks/WidgetBlocks.js:707 +#.TRANS: the speed at music is should be played. +msgid "tempo" +msgstr "टेम्पो" + +#: js/block-verbose.js:1679 +#: js/block-verbose.js:1742 +#: js/block.js:1643 +#: js/block.js:1706 +#: js/blocks/IntervalsBlocks.js:1464 +#.TRANS: mode, e.g., Major in C Major +msgid "mode" +msgstr "मोड" + +#: js/block-verbose.js:1686 +#: js/block.js:1650 +msgid "slider" +msgstr "स्लाइडर" + +#: js/block-verbose.js:1693 +#: js/block.js:1657 +#: js/blocks/SensorsBlocks.js:1001 +msgid "keyboard" +msgstr "कुंजीपट" + +#: js/block-verbose.js:1707 +#: js/block.js:1671 +#: js/blocks/WidgetBlocks.js:1190 +#: js/blocks/WidgetBlocks.js:1228 +#.TRANS: widget for subdividing a measure into distinct rhythmic elements +msgid "rhythm maker" +msgstr "रिदम बनाने वाला" + +#: js/block-verbose.js:1714 +#: js/block-verbose.js:2457 +#: js/block-verbose.js:2514 +#: js/block.js:1678 +#: js/block.js:2385 +#: js/block.js:2442 +#: js/blocks/MeterBlocks.js:1367 +#: js/blocks/OrnamentBlocks.js:220 +#: js/blocks/OrnamentBlocks.js:312 +#: js/blocks/RhythmBlocks.js:33 +#: js/blocks/RhythmBlocks.js:356 +#: js/blocks/RhythmBlocks.js:766 +#: js/blocks/RhythmBlocks.js:806 +#: js/blocks/RhythmBlockPaletteBlocks.js:70 +#: js/blocks/RhythmBlockPaletteBlocks.js:252 +#: js/blocks/RhythmBlockPaletteBlocks.js:485 +#: js/blocks/RhythmBlockPaletteBlocks.js:554 +#: js/blocks/RhythmBlockPaletteBlocks.js:605 +#: js/blocks/RhythmBlockPaletteBlocks.js:875 +#: js/turtleactions/DictActions.js:85 +#: js/widgets/phrasemaker.js:942 +#: js/widgets/phrasemaker.js:2656 +#: js/widgets/phrasemaker.js:2699 +#: js/widgets/phrasemaker.js:2810 +#.TRANS: the value (e.g., 1/4 note) of the note being played. +msgid "note value" +msgstr "नोट मूल्य" + +#: js/block-verbose.js:1721 +#: js/block-verbose.js:2382 +#: js/block-verbose.js:2405 +#: js/block.js:1685 +#: js/block.js:2310 +#: js/block.js:2333 +#: js/blocks/IntervalsBlocks.js:1071 +#: js/blocks/OrnamentBlocks.js:312 +#.TRANS: calculate a relative step between notes based on semi-tones +msgid "scalar interval" +msgstr "स्केलर इंटरवल" + +#: js/block-verbose.js:1728 +#: js/block.js:1692 +#: js/blocks/RhythmBlocks.js:148 +msgid "milliseconds" +msgstr "मिलीसेकंड" + +#: js/block-verbose.js:2455 +#: js/block-verbose.js:2459 +#: js/block-verbose.js:2512 +#: js/block-verbose.js:2628 +#: js/block.js:2383 +#: js/block.js:2387 +#: js/block.js:2440 +#: js/block.js:2556 +#: js/blocks/RhythmBlocks.js:712 +#: js/blocks/ProgramBlocks.js:1273 +#: js/widgets/rhythmruler.js:1183 +#: js/widgets/rhythmruler.js:1329 +msgid "silence" +msgstr "मौन" + +#: js/block-verbose.js:2548 +#: js/block-verbose.js:3492 +#: js/block-verbose.js:3509 +#: js/activity.js:2718 +#: js/activity.js:2769 +#: js/block.js:2476 +#: js/block.js:3416 +#: js/block.js:3433 +#: js/utils/musicutils.js:3780 +#: js/utils/musicutils.js:5273 +#.TRANS: the note names must be separated by single spaces +#.TRANS: the note names must be separated by single spaces +#.TRANS: the note names must be separated by single spaces +msgid "ti la sol fa mi re do" +msgstr "ती ला सोल फा मी रे दो" + +#: js/block-verbose.js:2616 +#: js/block.js:2544 +#.TRANS: scalar step +#.TRANS: scalar step +msgid "down" +msgstr "नीचे" + +#: js/block-verbose.js:2617 +#: js/block.js:2545 +msgid "up" +msgstr "ऊपर" + +#: js/block-verbose.js:3026 +#: js/block.js:2950 +msgid "Silence block cannot be removed." +msgstr "" + +#: js/block-verbose.js:3824 +#: js/block.js:3748 +#: js/blocks.js:2607 +#: js/blocks.js:3218 +#: js/palette.js:618 +#: js/blocks/BooleanBlocks.js:77 +#: js/blocks/BooleanBlocks.js:167 +#: js/blocks/BooleanBlocks.js:251 +#: js/blocks/BooleanBlocks.js:335 +#: js/blocks/BooleanBlocks.js:433 +#: js/blocks/BooleanBlocks.js:539 +#: js/blocks/BooleanBlocks.js:640 +#: js/blocks/BooleanBlocks.js:741 +#: js/blocks/BooleanBlocks.js:847 +#: js/blocks/BooleanBlocks.js:948 +#: js/blocks/BooleanBlocks.js:1033 +#: js/blocks/SensorsBlocks.js:910 +msgid "true" +msgstr "सत्य" + +#: js/block-verbose.js:3824 +#: js/block.js:3748 +#: js/blocks.js:2609 +#: js/blocks.js:3220 +#: js/blocks/BooleanBlocks.js:79 +#: js/blocks/BooleanBlocks.js:169 +#: js/blocks/BooleanBlocks.js:253 +#: js/blocks/BooleanBlocks.js:337 +#: js/blocks/BooleanBlocks.js:435 +#: js/blocks/BooleanBlocks.js:541 +#: js/blocks/BooleanBlocks.js:642 +#: js/blocks/BooleanBlocks.js:743 +#: js/blocks/BooleanBlocks.js:849 +#: js/blocks/BooleanBlocks.js:950 +#: js/blocks/SensorsBlocks.js:912 +msgid "false" +msgstr "असत्य" + +#: js/block-verbose.js:3835 +#: js/block-verbose.js:3848 +#: js/block.js:3759 +#: js/block.js:3772 +#: js/blocks/ExtrasBlocks.js:615 +msgid "Cartesian" +msgstr "कार्टेसियन" + +#: js/block-verbose.js:3836 +#: js/block-verbose.js:3849 +#: js/block.js:3760 +#: js/block.js:3773 +#: js/blocks/ExtrasBlocks.js:619 +msgid "polar" +msgstr "पोलर" + +#: js/block-verbose.js:3837 +#: js/block-verbose.js:3850 +#: js/block.js:3761 +#: js/block.js:3774 +#: js/blocks/ExtrasBlocks.js:623 +msgid "Cartesian+polar" +msgstr "कार्टेसियन + पोलर" + +#: js/block-verbose.js:3838 +#: js/block-verbose.js:3857 +#: js/block.js:3762 +#: js/block.js:3781 +#: js/blocks/ExtrasBlocks.js:652 +msgid "none" +msgstr "कोई नहीं" + +#: js/block-verbose.js:3851 +#: js/block.js:3775 +#: js/blocks/ExtrasBlocks.js:628 +msgid "treble" +msgstr "ट्रेबल" + +#: js/block-verbose.js:3852 +#: js/block.js:3776 +#: js/blocks/ExtrasBlocks.js:632 +msgid "grand staff" +msgstr "ग्रैंड स्टाफ" + +#: js/block-verbose.js:3853 +#: js/block.js:3777 +#: js/blocks/ExtrasBlocks.js:636 +msgid "mezzo-soprano" +msgstr "मेज़्ज़ो-सोप्रानो" + +#: js/block-verbose.js:3854 +#: js/block.js:3778 +#: js/blocks/ExtrasBlocks.js:640 +msgid "alto" +msgstr "आल्टो" + +#: js/block-verbose.js:3855 +#: js/block.js:3779 +#: js/blocks/ExtrasBlocks.js:644 +msgid "tenor" +msgstr "टेनर" + +#: js/block-verbose.js:3856 +#: js/block.js:3780 +#: js/utils/musicutils.js:1115 +#: js/utils/synthutils.js:80 +#: js/blocks/ExtrasBlocks.js:648 +#.TRANS: musical instrument +msgid "bass" +msgstr "बास" + +#: js/block-verbose.js:3901 +#: js/block.js:3825 +#: js/blocks.js:2600 +#: js/blocks.js:3211 +msgid "on2" +msgstr "ऑन2" + +#: js/block-verbose.js:3903 +#: js/block.js:3827 +#: js/blocks.js:2602 +#: js/blocks.js:3213 +msgid "off" +msgstr "ऑफ" + +#: js/block-verbose.js:4470 +#: js/block.js:4394 +msgid "Not a number" +msgstr "एक संख्या नहीं" + +#: js/block-verbose.js:4477 +#: js/block.js:4401 +msgid "Octave value must be between 1 and 10." +msgstr "" + +#: js/block-verbose.js:4485 +#: js/block.js:4409 +msgid "Numbers can have at most 10 digits." +msgstr "" + +#: js/activity.js:390 +#: js/activity.js:395 +msgid "Search for blocks" +msgstr "ब्लॉक्स के लिए खोजें" + +#: js/activity.js:1413 +msgid "Refresh your browser to change to advanced mode." +msgstr "उन्नत मोड में बदलने के लिए अपने ब्राउज़र को रिफ़्रेश करें।" + +#: js/activity.js:1418 +msgid "Refresh your browser to change to beginner mode." +msgstr "शुरुआती मोड में बदलने के लिए अपने ब्राउज़र को रिफ़्रेश करें।" + +#: js/activity.js:1477 +msgid "Catching mice" +msgstr "चूहों को पकड़ना" + +#: js/activity.js:1478 +msgid "Cleaning the instruments" +msgstr "उपकरणों की सफाई" + +#: js/activity.js:1479 +msgid "Testing key pieces" +msgstr "मुख्य हिस्से का परीक्षण" + +#: js/activity.js:1480 +msgid "Sight-reading" +msgstr "साइट-रीडिंग" + +#: js/activity.js:1481 +msgid "Combining math and music" +msgstr "गणित और संगीत को मिलाकर" + +#: js/activity.js:1482 +msgid "Generating more blocks" +msgstr "और ब्लॉक्स उत्पन्न करना" + +#: js/activity.js:1483 +msgid "Do Re Mi Fa Sol La Ti Do" +msgstr "डो रे मी फा सोल ला टी डो" + +#: js/activity.js:1484 +msgid "Tuning string instruments" +msgstr "स्ट्रिंग उपकरणों को स्वर समर्पित करना" + +#: js/activity.js:1485 +msgid "Pressing random keys" +msgstr "यादृच्छिक कुंजियाँ दबाना" + +#: js/activity.js:1663 +msgid "plugins will be removed upon restart." +msgstr "प्लगइन्स को पुनरारंभ पर हटा दिया जाएगा।" + +#: js/activity.js:1672 +msgid "show Cartesian" +msgstr "कार्टेशियन दिखाएँ" + +#: js/activity.js:2211 +#: js/palette.js:589 +#: js/blocks/RhythmBlocks.js:923 +#: js/blocks/PitchBlocks.js:442 +#: js/blocks/PitchBlocks.js:1786 +#.TRANS: a numeric mapping of the notes in an octave based on the musical mode +msgid "scale degree" +msgstr "स्केल डिग्री" + +#: js/activity.js:2214 +#: js/palette.js:598 +msgid "voice name" +msgstr "आवाज का नाम" + +#: js/activity.js:2217 +#: js/palette.js:595 +msgid "invert mode" +msgstr "मोड उलटें" + +#: js/activity.js:2220 +msgid "output tools" +msgstr "आउटपुट टूल्स" + +#: js/activity.js:2223 +msgid "custom note" +msgstr "कस्टम नोट" + +#: js/activity.js:2226 +msgid "accidental name" +msgstr "आकस्मिक नाम" + +#: js/activity.js:2229 +#: js/blocks/PitchBlocks.js:855 +msgid "east indian solfege" +msgstr "पूर्व भारतीय सोलफेज" + +#: js/activity.js:2232 +#: js/blocks/PitchBlocks.js:869 +msgid "note name" +msgstr "नोट का नाम" + +#: js/activity.js:2235 +#: js/blocks/IntervalsBlocks.js:94 +msgid "temperament name" +msgstr "स्वभाव नाम" + +#: js/activity.js:2238 +#: js/palette.js:592 +msgid "mode name" +msgstr "मोड का नाम" + +#: js/activity.js:2241 +msgid "chord name" +msgstr "छोड़ का नाम" + +#: js/activity.js:2244 +#: js/palette.js:615 +msgid "interval name" +msgstr "अंतराल का नाम" + +#: js/activity.js:2247 +msgid "filter type" +msgstr "फ़िल्टर का प्रकार" + +#: js/activity.js:2250 +msgid "oscillator type" +msgstr "ऑस्किलेटर का प्रकार" + +#: js/activity.js:2253 +#: js/blocks.js:2479 +#: js/blocks.js:2487 +msgid "audio file" +msgstr "ऑडियो फ़ाइल" + +#: js/activity.js:2256 +#: js/blocks/DrumBlocks.js:32 +msgid "noise name" +msgstr "शोर का नाम" + +#: js/activity.js:2259 +#: js/blocks/DrumBlocks.js:75 +msgid "drum name" +msgstr "ढोल का नाम" + +#: js/activity.js:2262 +#: js/blocks/DrumBlocks.js:119 +msgid "effects name" +msgstr "प्रभाव का नाम" + +#: js/activity.js:2265 +msgid "wrap mode" +msgstr "रैप मोड" + +#: js/activity.js:2268 +msgid "load file" +msgstr "फ़ाइल लोड करें" + +#: js/activity.js:2435 +#: js/activity.js:5851 +msgid "This block is deprecated." +msgstr "यह ब्लॉक पुराना हो गया है।" + +#: js/activity.js:2437 +#: js/activity.js:5853 +msgid "Block cannot be found." +msgstr "ब्लॉक नहीं मिल सकता है।" + +#: js/activity.js:2645 +msgid "Saving block artwork" +msgstr "ब्लॉक कला सहेज रहा हूँ" + +#: js/activity.js:2656 +msgid "Erase" +msgstr "मिटाएँ" + +#: js/activity.js:2683 +#: js/activity.js:2705 +msgid "Paste" +msgstr "चिपकाएँ" + +#: js/activity.js:2687 +msgid "Save block help" +msgstr "ब्लॉक सहायता सहेजें" + +#: js/activity.js:2772 +msgid "Jumping to the bottom of the page." +msgstr "पृष्ठ के नीचे जाना।" + +#: js/activity.js:2778 +msgid "Scrolling up." +msgstr "ऊपर स्क्रोल कर रहा है।" + +#: js/activity.js:2783 +msgid "Scrolling down." +msgstr "नीचे स्क्रोल कर रहा है।" + +#: js/activity.js:2788 +msgid "Extracting block" +msgstr "ब्लॉक निकाल रहा है" + +#: js/activity.js:2796 +msgid "Moving block up." +msgstr "ब्लॉक को ऊपर मोव कर रहा है।" + +#: js/activity.js:2817 +msgid "Moving block down." +msgstr "ब्लॉक को नीचे मोव कर रहा है।" + +#: js/activity.js:2838 +msgid "Moving block left." +msgstr "ब्लॉक को बाएँ मोव कर रहा है।" + +#: js/activity.js:2855 +msgid "Moving block right." +msgstr "ब्लॉक को दाएँ मोव कर रहा है।" + +#: js/activity.js:2870 +msgid "Jump to home position." +msgstr "होम स्थिति पर जाएँ।" + +#: js/activity.js:2897 +msgid "Hide blocks" +msgstr "ब्लॉक छुपाएँ" + +#: js/activity.js:4500 +msgid "Click the run button to run the project." +msgstr "परियोजना चलाने के लिए रन बटन पर क्लिक करें।" + +#: js/activity.js:5692 +msgid "Show/hide block" +msgstr "ब्लॉक दिखाएँ/छुपाएँ" + +#: js/activity.js:5698 +msgid "Expand/collapse blocks" +msgstr "ब्लॉक विस्तार करें/संकुचित करें" + +#: js/activity.js:5976 +msgid "Could not parse JSON input." +msgstr "JSON इनपुट को पार्स नहीं कर सका।" + +#: js/activity.js:6475 +#: js/activity.js:6580 +#: js/activity.js:6631 +msgid "Cannot load project from the file. Please check the file type." +msgstr "फ़ाइल से परियोजना लोड नहीं कर सकता है। कृपया फ़ाइल का प्रकार जांचें।" + +#: js/activity.js:6917 +msgid "Invalid parameters" +msgstr "अमान्य पैरामीटर्स" + +#: js/blocks.js:1212 +#: js/blocks.js:3444 +#: js/blocks.js:3834 +#: js/blocks.js:3865 +#: js/blocks.js:3914 +#: js/blocks.js:3949 +#: js/blocks.js:6586 +#: js/palette.js:509 +#: js/palette.js:638 +#: js/palette.js:1105 +#: js/blocks/BoxesBlocks.js:282 +#: js/blocks/BoxesBlocks.js:285 +#: js/blocks/BoxesBlocks.js:405 +#: js/blocks/BoxesBlocks.js:594 +msgid "box" +msgstr "बक्सा" + +#: js/blocks.js:1713 +msgid "Consider breaking this stack into parts." +msgstr "इस स्टैक को भागों में बाँटने का विचार करें।" + +#: js/blocks.js:2472 +#: js/palette.js:653 +#: js/blocks/MediaBlocks.js:602 +msgid "open file" +msgstr "फ़ाइल खोलें" + +#: js/blocks.js:3247 +#: js/palette.js:574 +#: js/blocks/MediaBlocks.js:892 +#: js/blocks/MediaBlocks.js:963 +msgid "text" +msgstr "पाठ" + +#: js/blocks.js:3443 +#: js/palette.js:641 +#: js/palette.js:642 +#: js/blocks/BoxesBlocks.js:514 +msgid "store in box" +msgstr "बॉक्स में स्टोर करें" + +#: js/blocks.js:3448 +#: js/blocks.js:3888 +#: js/blocks.js:3923 +#: js/blocks.js:3958 +#: js/blocks.js:5862 +#: js/blocks.js:5883 +#: js/blocks/BoxesBlocks.js:772 +msgid "box1" +msgstr "बॉक्स1" + +#: js/blocks.js:3450 +#: js/blocks.js:3890 +#: js/blocks.js:3925 +#: js/blocks.js:3960 +#: js/blocks.js:5864 +#: js/blocks.js:5885 +#: js/blocks/BoxesBlocks.js:663 +msgid "box2" +msgstr "बॉक्स2" + +#: js/blocks.js:4122 +#: js/palette.js:639 +#: js/palette.js:644 +#: js/palette.js:1041 +#: js/blocks/BoxesBlocks.js:591 +msgid "store in" +msgstr "में भंडारित करें" + +#: js/blocks.js:4122 +#: js/blocks/BoxesBlocks.js:595 +#: js/blocks/DictBlocks.js:215 +#: js/blocks/DictBlocks.js:289 +#: js/blocks/EnsembleBlocks.js:391 +#: js/blocks/EnsembleBlocks.js:402 +#: js/blocks/MediaBlocks.js:746 +#: js/blocks/PitchBlocks.js:656 +#: js/blocks/PitchBlocks.js:934 +#: js/blocks/PitchBlocks.js:1866 +#: js/blocks/ProgramBlocks.js:390 +#: js/blocks/ProgramBlocks.js:495 +#: js/blocks/ProgramBlocks.js:658 +#: js/blocks/ToneBlocks.js:1025 +msgid "name" +msgstr "नाम" + +#: js/blocks.js:4122 +#: js/blocks/BoxesBlocks.js:75 +#: js/blocks/BoxesBlocks.js:595 +#: js/blocks/DictBlocks.js:289 +#: js/blocks/DictBlocks.js:430 +#: js/blocks/HeapBlocks.js:544 +#: js/blocks/RhythmBlocks.js:1130 +msgid "value" +msgstr "मान" + +#: js/blocks.js:4465 +msgid "Forever loop detected inside a note value block. Unexpected things may happen." +msgstr "" + +#: js/blocks.js:4988 +msgid "There is no block selected." +msgstr "कोई ब्लॉक चयन नहीं किया गया है।" + +#: js/blocks.js:5091 +#: js/blocks/MediaBlocks.js:888 +msgid "show" +msgstr "दिखाएँ" + +#: js/blocks.js:5094 +#: js/blocks/MediaBlocks.js:803 +#.TRANS: Avatar is the image used to determine the appearance of the mouse. +msgid "avatar" +msgstr "अवतार" + +#: js/blocks.js:5097 +#: js/blocks/ToneBlocks.js:1010 +#: js/widgets/sampler.js:975 +#.TRANS: The sound sample that the user uploads. +msgid "sample" +msgstr "सैम्पल" + +#: js/lilypond.js:606 +msgid "brown rat" +msgstr "भूरा चूहा" + +#: js/lilypond.js:607 +msgid "mole" +msgstr "मौज" + +#: js/lilypond.js:608 +msgid "chipmunk" +msgstr "चिपमंक" + +#: js/lilypond.js:609 +msgid "red squirrel" +msgstr "लाल गिलहरी" + +#: js/lilypond.js:610 +msgid "guinea pig" +msgstr "गिनीपिग" + +#: js/lilypond.js:611 +msgid "capybara" +msgstr "कैपीबारा" + +#: js/lilypond.js:612 +msgid "coypu" +msgstr "कोयपू" + +#: js/lilypond.js:613 +msgid "black rat" +msgstr "काला चूहा" + +#: js/lilypond.js:614 +msgid "grey squirrel" +msgstr "स्लेटी गिलहरी" + +#: js/lilypond.js:615 +msgid "flying squirrel" +msgstr "उड़ती गिलहरी" + +#: js/lilypond.js:616 +msgid "bat" +msgstr "बैट" + +#: js/lilypond.js:749 +#: js/lilypond.js:913 +#: js/lilypond.js:951 +#: js/blocks/ActionBlocks.js:1256 +#: js/blocks/ExtrasBlocks.js:556 +msgid "start drum" +msgstr "ड्रम चालू करें" + +#: js/logo.js:61 +msgid "Not a valid pitch name" +msgstr "एक वैध पिच नाम नहीं" + +#: js/logo.js:507 +#: js/blocks/ProgramBlocks.js:258 +#: js/blocks/ProgramBlocks.js:427 +msgid "You must select a file." +msgstr "आपको एक फ़ाइल का चयन करना होगा।" + +#: js/logo.js:1696 +msgid "Playback is ready." +msgstr "प्लेबैक तैयार है।" + +#: js/macros.js:711 +#: js/utils/musicutils.js:1162 +#: js/utils/synthutils.js:202 +#.TRANS: animal sound effect +msgid "duck" +msgstr "बतख" + +#: js/notation.js:353 +msgid "Lilypond cannot process pickup of " +msgstr "लिलीपॉंड को पिकअप प्रोसेस करने में समर्थ नहीं" + +#: js/palette.js:571 +msgid "grid" +msgstr "ग्रिड" + +#: js/palette.js:580 +msgid "effect" +msgstr "प्रभाव" + +#: js/palette.js:586 +msgid "sargam" +msgstr "सरगम" + +#: js/palette.js:601 +#: js/blocks/PitchBlocks.js:1209 +msgid "custom pitch" +msgstr "कस्टम पिच" + +#: js/palette.js:609 +msgid "accidental" +msgstr "अक्सीडेंटल" + +#: js/palette.js:633 +#: js/blocks/PitchBlocks.js:405 +msgid "pitch converter" +msgstr "पिच कनवर्टर" + +#: js/piemenus.js:200 +#: js/utils/musicutils.js:1187 +#: js/utils/musicutils.js:1207 +#: js/widgets/musickeyboard.js:2341 +#: js/widgets/phrasemaker.js:1908 +#: js/widgets/sampler.js:810 +#.TRANS: double sharp is a music term related to pitch +msgid "double sharp" +msgstr "डबल शार्प" + +#: js/piemenus.js:201 +#: js/utils/musicutils.js:1185 +#: js/utils/musicutils.js:1208 +#: js/blocks/PitchBlocks.js:1539 +#: js/turtleactions/PitchActions.js:323 +#: js/widgets/musickeyboard.js:2342 +#: js/widgets/phrasemaker.js:1909 +#: js/widgets/sampler.js:811 +#.TRANS: sharp is a music term related to pitch +#.TRANS: sharp is a half-step up in pitch +msgid "sharp" +msgstr "शार्प" + +#: js/piemenus.js:202 +#: js/utils/musicutils.js:1183 +#: js/utils/musicutils.js:1209 +#: js/widgets/musickeyboard.js:2343 +#: js/widgets/phrasemaker.js:1910 +#: js/widgets/sampler.js:812 +#.TRANS: natural is a music term related to pitch +msgid "natural" +msgstr "नैचुरल" -#: js/toolbar.js:101 -#: js/toolbar.js:164 -#: js/toolbar.js:221 -#: js/toolbar.js:274 -msgid "తెలుగు" -msgstr "" +#: js/piemenus.js:203 +#: js/utils/musicutils.js:1181 +#: js/utils/musicutils.js:1210 +#: js/blocks/PitchBlocks.js:1498 +#: js/turtleactions/PitchActions.js:326 +#: js/widgets/musickeyboard.js:2344 +#: js/widgets/phrasemaker.js:1911 +#: js/widgets/sampler.js:813 +#.TRANS: flat is a music term related to pitch +#.TRANS: flat is a half-step down in pitch +msgid "flat" +msgstr "फ्लैट" -#: js/toolbar.js:102 -#: js/toolbar.js:167 -#: js/toolbar.js:222 -#: js/toolbar.js:277 -msgid "עִברִית" -msgstr "" +#: js/piemenus.js:204 +#: js/utils/musicutils.js:1179 +#: js/utils/musicutils.js:1211 +#: js/widgets/musickeyboard.js:2345 +#: js/widgets/phrasemaker.js:1912 +#: js/widgets/sampler.js:814 +#.TRANS: double flat is a music term related to pitch +msgid "double flat" +msgstr "डबल फ्लैट" -#: js/toolbar.js:111 -#: js/toolbar.js:175 -#: js/toolbar.js:176 -#: js/toolbar.js:231 -msgid "Full Screen" -msgstr "पूर्ण स्क्रीन" +#: js/piemenus.js:2864 +#: js/utils/musicutils.js:1006 +#: js/blocks/PitchBlocks.js:1385 +#.TRANS: unison is a music term related to intervals +#.TRANS: unison means the note is the same as the current note +msgid "unison" +msgstr "एकस्वरता" -#: js/toolbar.js:145 -#: js/toolbar.js:148 -#: js/toolbar.js:200 -#: js/toolbar.js:203 -#: js/toolbar.js:255 -#: js/toolbar.js:258 -#: js/turtledefs.js:558 -msgid "Save turtle artwork as PNG" -msgstr "टर्टल आर्टवर्क को PNG के रूप में सहेजें" +#: js/piemenus.js:3018 +#: js/piemenus.js:3091 +#: js/utils/musicutils.js:1014 +#: js/utils/musicutils.js:1189 +#: js/utils/musicutils.js:1326 +#.TRANS: major is a music term related to intervals and mode +msgid "major" +msgstr "मेजर" -#: js/toolbar.js:147 -#: js/toolbar.js:202 -#: js/toolbar.js:257 -#: js/turtledefs.js:554 -msgid "Save turtle artwork as SVG" -msgstr "टर्टल आर्टवर्क को SVG के रूप में सहेजें" +#: js/piemenus.js:3018 +#: js/piemenus.js:3091 +#: js/utils/musicutils.js:1032 +#.TRANS: modal scale for music +msgid "ionian" +msgstr "आयनियन" -#: js/toolbar.js:154 -#: js/toolbar.js:209 -#: js/toolbar.js:264 -msgid "한국인" -msgstr "" +#: js/piemenus.js:3020 +#: js/piemenus.js:3095 +#: js/utils/musicutils.js:1012 +#: js/utils/musicutils.js:1190 +#: js/utils/musicutils.js:1323 +#.TRANS: minor is a music term related to intervals and mode +msgid "minor" +msgstr "माइनर" -#: js/toolbar.js:171 -#: js/toolbar.js:227 -msgid "About Turtle Blocks" -msgstr "टर्टल ब्लॉक्स के बारे में" +#: js/piemenus.js:3020 +#: js/piemenus.js:3095 +#: js/utils/musicutils.js:1042 +#.TRANS: modal scale for music +msgid "aeolian" +msgstr "एोलियन" -#: js/toolbar.js:429 -#: js/toolbar.js:440 -msgid "Turtle Wrap Off" -msgstr "टर्टल रैप बंद" +#: js/piemenus.js:3410 +msgid "Duplicate" +msgstr "डुप्लीकेट" -#: js/toolbar.js:442 -msgid "Turtle Wrap On" -msgstr "टर्टल रैप चालू" +#: js/piemenus.js:3412 +msgid "Move to trash" +msgstr "कूड़े में डालें" -#: js/block.js:1470 -msgid "matrix" -msgstr "मैट्रिक्स" +#: js/piemenus.js:3413 +#: js/widgets/timbre.js:968 +#: planet/js/StringHelper.js:69 +msgid "Close" +msgstr "बंद करें" -#: js/block.js:1477 -#: js/WidgetBlocks.js:1226 -#: plugins/rodi.rtp:324 -msgid "status" -msgstr "स्थिति" +#: js/piemenus.js:3419 +msgid "Save stack" +msgstr "स्टैक को सेव करें" -#: js/block.js:1484 -msgid "drum mapper" -msgstr "ड्रम मैपर" +#: js/piemenus.js:3449 +msgid "In order to copy a sample, you must reload the widget, import the sample again, and export it." +msgstr "" -#: js/block.js:1491 -msgid "ruler" -msgstr "रूलर" +#: js/piemenus.js:3812 +msgid "You have chosen key " +msgstr "आपने कुंजी चयन की है " -#: js/block.js:1498 -#: js/WidgetBlocks.js:327 -#.TRANS: timbre is the character or quality of a musical sound -msgid "timbre" -msgstr "टिम्बर" +#: js/piemenus.js:3816 +msgid " for your pitch preview." +msgstr " आपके पिच पूर्वावलोकन के लिए." -#: js/block.js:1505 -msgid "stair" -msgstr "सीढ़ी" +#: js/turtle-singer.js:1363 +#.TRANS: partials are weighted components in a harmonic series +msgid "You must have at least one Partial block inside of a Weighted-partial block" +msgstr "आपके पास एक से अधिक पांचिक ब्लॉक के अंदर कम से कम एक आंशिक ब्लॉक होना चाहिए" -#: js/block.js:1512 -#: js/WidgetBlocks.js:577 -#.TRANS: the speed at music is should be played. -msgid "tempo" -msgstr "टेम्पो" +#: js/turtle-singer.js:2077 +msgid "synth cannot play chords." +msgstr "सिंथ कोड नहीं बजा सकता है।" -#: js/block.js:1519 -#: js/block.js:1582 -#: js/IntervalsBlocks.js:1268 -#.TRANS: mode, e.g., Major in C Major -msgid "mode" -msgstr "मोड" +#: js/utils/musicutils.js:505 +#: js/utils/musicutils.js:645 +#: js/widgets/pitchdrummatrix.js:228 +#: js/widgets/musickeyboard.js:2885 +msgid "rest" +msgstr "आराम" -#: js/block.js:1526 -msgid "slider" -msgstr "स्लाइडर" +#: js/utils/musicutils.js:689 +msgid "Perfect unison" +msgstr "" -#: js/block.js:1533 -#: js/SensorsBlocks.js:1001 -msgid "keyboard" -msgstr "कुंजीपट" +#: js/utils/musicutils.js:689 +msgid "Diminished second" +msgstr "" -#: js/block.js:1547 -#: js/WidgetBlocks.js:957 -#: js/WidgetBlocks.js:988 -#.TRANS: widget for subdividing a measure into distinct rhythmic elements -msgid "rhythm maker" -msgstr "रिदम बनाने वाला" +#: js/utils/musicutils.js:690 +msgid "Minor second" +msgstr "" -#: js/block.js:1554 -#: js/block.js:2182 -#: js/block.js:2236 -#: js/RhythmBlockPaletteBlocks.js:70 -#: js/RhythmBlockPaletteBlocks.js:251 -#: js/RhythmBlockPaletteBlocks.js:484 -#: js/RhythmBlockPaletteBlocks.js:553 -#: js/RhythmBlockPaletteBlocks.js:604 -#: js/RhythmBlockPaletteBlocks.js:874 -#: js/RhythmBlocks.js:33 -#: js/RhythmBlocks.js:356 -#: js/RhythmBlocks.js:766 -#: js/RhythmBlocks.js:806 -#: js/OrnamentBlocks.js:220 -#: js/OrnamentBlocks.js:312 -#: js/MeterBlocks.js:1367 -#: js/DictActions.js:85 -#: js/phrasemaker.js:731 -#: js/phrasemaker.js:2393 -#: js/phrasemaker.js:2436 -#: js/phrasemaker.js:2534 -#.TRANS: the value (e.g., 1/4 note) of the note being played. -msgid "note value" -msgstr "नोट मूल्य" +#: js/utils/musicutils.js:690 +msgid "Augmented unison" +msgstr "" -#: js/block.js:1561 -#: js/block.js:2110 -#: js/block.js:2133 -#: js/IntervalsBlocks.js:875 -#: js/OrnamentBlocks.js:312 -#.TRANS: calculate a relative step between notes based on semi-tones -msgid "scalar interval" -msgstr "स्केलर इंटरवल" +#: js/utils/musicutils.js:691 +msgid "Major second" +msgstr "" -#: js/block.js:1568 -#: js/RhythmBlocks.js:148 -msgid "milliseconds" -msgstr "मिलीसेकंड" +#: js/utils/musicutils.js:691 +msgid "Diminished third" +msgstr "" -#: js/block.js:2180 -#: js/block.js:2184 -#: js/block.js:2234 -#: js/block.js:2345 -#: js/ProgramBlocks.js:1273 -#: js/RhythmBlocks.js:712 -#: js/rhythmruler.js:834 -#: js/rhythmruler.js:961 -msgid "silence" -msgstr "मौन" +#: js/utils/musicutils.js:692 +msgid "Minor third" +msgstr "" -#: js/block.js:2265 -#: js/block.js:3134 -#: js/block.js:3151 -#: js/activity.js:2336 -#: js/activity.js:2387 -#: js/musicutils.js:2932 -#: js/musicutils.js:4287 -#.TRANS: the note names must be separated by single spaces -#.TRANS: the note names must be separated by single spaces -msgid "ti la sol fa mi re do" -msgstr "ती ला सोल फा मी रे दो" +#: js/utils/musicutils.js:692 +msgid "Augmented second" +msgstr "" -#: js/block.js:2333 -#.TRANS: scalar step -msgid "down" -msgstr "नीचे" +#: js/utils/musicutils.js:693 +msgid "Major third" +msgstr "" -#: js/block.js:2334 -msgid "up" -msgstr "ऊपर" +#: js/utils/musicutils.js:693 +msgid "Diminished fourth" +msgstr "" -#: js/block.js:3477 -#: js/block.js:3490 -#: js/ExtrasBlocks.js:612 -msgid "Cartesian" -msgstr "कार्टेसियन" +#: js/utils/musicutils.js:694 +msgid "Perfect fourth" +msgstr "" -#: js/block.js:3478 -#: js/block.js:3491 -#: js/ExtrasBlocks.js:616 -msgid "polar" -msgstr "पोलर" +#: js/utils/musicutils.js:694 +msgid "Augmented third" +msgstr "" -#: js/block.js:3479 -#: js/block.js:3492 -#: js/ExtrasBlocks.js:620 -msgid "Cartesian+polar" -msgstr "कार्टेसियन + पोलर" +#: js/utils/musicutils.js:695 +msgid "Diminished fifth" +msgstr "" -#: js/block.js:3480 -#: js/block.js:3499 -#: js/ExtrasBlocks.js:649 -msgid "none" -msgstr "कोई नहीं" +#: js/utils/musicutils.js:695 +msgid "Augmented fourth" +msgstr "" -#: js/block.js:3493 -#: js/ExtrasBlocks.js:625 -msgid "treble" -msgstr "ट्रेबल" +#: js/utils/musicutils.js:696 +msgid "Perfect fifth" +msgstr "" -#: js/block.js:3494 -#: js/ExtrasBlocks.js:629 -msgid "grand staff" -msgstr "ग्रैंड स्टाफ" +#: js/utils/musicutils.js:696 +msgid "Diminished sixth" +msgstr "" -#: js/block.js:3495 -#: js/ExtrasBlocks.js:633 -msgid "mezzo-soprano" -msgstr "मेज़्ज़ो-सोप्रानो" +#: js/utils/musicutils.js:697 +msgid "Minor sixth" +msgstr "" -#: js/block.js:3496 -#: js/ExtrasBlocks.js:637 -msgid "alto" -msgstr "आल्टो" +#: js/utils/musicutils.js:697 +msgid "Augmented fifth" +msgstr "" -#: js/block.js:3497 -#: js/ExtrasBlocks.js:641 -msgid "tenor" -msgstr "टेनर" +#: js/utils/musicutils.js:698 +msgid "Major sixth" +msgstr "" -#: js/block.js:3498 -#: js/ExtrasBlocks.js:645 -#: js/musicutils.js:736 -#: js/synthutils.js:64 -#.TRANS: musical instrument -msgid "bass" -msgstr "बास" +#: js/utils/musicutils.js:698 +msgid "Diminished seventh" +msgstr "" -#: js/block.js:4075 -msgid "Not a number" -msgstr "एक संख्या नहीं" +#: js/utils/musicutils.js:699 +msgid "Minor seventh" +msgstr "" -#: js/block.js:4082 -msgid "Octave value must be between 1 and 10." +#: js/utils/musicutils.js:699 +msgid "Augmented sixth" msgstr "" -#: js/block.js:4090 -msgid "Numbers can have at most 10 digits." +#: js/utils/musicutils.js:700 +msgid "Major seventh" msgstr "" -#: js/notation.js:353 -msgid "Lilypond cannot process pickup of " -msgstr "लिलीपॉंड को पिकअप प्रोसेस करने में समर्थ नहीं" +#: js/utils/musicutils.js:700 +msgid "Diminished octave" +msgstr "" -#: js/turtledefs.js:40 -#.TRANS: put the URL to the guide here, e.g., https://github.com/sugarlabs/turtleblocksjs/tree/master/guide/README.md -msgid "guide url" -msgstr "गाइड url" +#: js/utils/musicutils.js:701 +msgid "Perfect octave" +msgstr "" -#: js/turtledefs.js:85 -#: js/turtledefs.js:437 -msgid "Turtle Blocks is a Logo-inspired turtle that draws colorful pictures with snap-together visual-programming blocks." -msgstr "टर्टल ब्लॉक्स एक लोगो-प्रेरित कछुआ है जो स्नैप-टूगेदर विजुअल-प्रोग्रामिंग ब्लॉक के साथ रंगीन तस्वीरें बनाता है।" +#: js/utils/musicutils.js:701 +msgid "Augmented seventh" +msgstr "" -#: js/turtledefs.js:118 -#: js/turtledefs.js:220 -msgid "search" -msgstr "खोज" +#: js/utils/musicutils.js:702 +msgid "Minor ninth" +msgstr "" -#: js/turtledefs.js:120 -#: js/turtledefs.js:222 -#: js/WidgetBlocks.js:437 -#: js/MeterBlocks.js:1343 -#.TRANS: musical meter (time signature), e.g., 4:4 -msgid "meter" -msgstr "मीटर" +#: js/utils/musicutils.js:702 +msgid "Augmented octave" +msgstr "" -#: js/turtledefs.js:122 -#: js/turtledefs.js:224 -msgid "intervals" -msgstr "अंतराल" +#: js/utils/musicutils.js:703 +msgid "Major ninth" +msgstr "" -#: js/turtledefs.js:124 -#: js/turtledefs.js:226 -msgid "ornament" -msgstr "आभूषण" +#: js/utils/musicutils.js:703 +msgid "Diminished tenth" +msgstr "" -#: js/turtledefs.js:125 -#: js/turtledefs.js:227 -#: js/VolumeBlocks.js:362 -#: js/VolumeBlocks.js:502 -#: js/VolumeBlocks.js:545 -msgid "volume" -msgstr "आवृत्ति" +#: js/utils/musicutils.js:704 +msgid "Minor tenth" +msgstr "" -#: js/turtledefs.js:129 -#: js/turtledefs.js:231 -msgid "boxes" -msgstr "बॉक्स" +#: js/utils/musicutils.js:704 +msgid "Augmented ninth" +msgstr "" -#: js/turtledefs.js:130 -#: js/turtledefs.js:232 -msgid "widgets" -msgstr "विजेट्स" +#: js/utils/musicutils.js:705 +msgid "Major tenth" +msgstr "" -#: js/turtledefs.js:131 -#: js/turtledefs.js:233 -#: js/phrasemaker.js:824 -msgid "graphics" -msgstr "ग्राफिक्स" +#: js/utils/musicutils.js:705 +msgid "Diminished eleventh" +msgstr "" -#: js/turtledefs.js:134 -#: js/turtledefs.js:236 -msgid "boolean" -msgstr "बूलियन" +#: js/utils/musicutils.js:706 +msgid "Perfect eleventh" +msgstr "" + +#: js/utils/musicutils.js:706 +msgid "Augmented tenth" +msgstr "" -#: js/turtledefs.js:137 -#: js/turtledefs.js:239 -#: js/HeapBlocks.js:59 -#: js/status.js:147 -msgid "heap" -msgstr "हीप" +#: js/utils/musicutils.js:707 +msgid "Diminished twelfth" +msgstr "" -#: js/turtledefs.js:138 -#: js/turtledefs.js:240 -#: js/ProgramBlocks.js:495 -#: js/DictBlocks.js:142 -msgid "dictionary" -msgstr "शब्दकोश" +#: js/utils/musicutils.js:707 +msgid "Augmented eleventh" +msgstr "" -#: js/turtledefs.js:139 -#: js/turtledefs.js:241 -msgid "ensemble" -msgstr "एंसेंबल" +#: js/utils/musicutils.js:708 +msgid "Perfect twelfth" +msgstr "" -#: js/turtledefs.js:140 -#: js/turtledefs.js:242 -msgid "extras" -msgstr "अतिरिक्त" +#: js/utils/musicutils.js:708 +msgid "Diminished thirteenth" +msgstr "" -#: js/turtledefs.js:142 -#: js/turtledefs.js:244 -#.TRANS: program as in computer program -#.TRANS: program as in computer program -msgid "program" -msgstr "प्रोग्राम" +#: js/utils/musicutils.js:709 +msgid "Minor thirteenth" +msgstr "" -#: js/turtledefs.js:143 -#: js/turtledefs.js:245 -msgid "my blocks" -msgstr "मेरे ब्लॉक्स" +#: js/utils/musicutils.js:709 +msgid "Augmented fifth, plus an octave" +msgstr "" -#: js/turtledefs.js:185 -#: js/turtledefs.js:281 -msgid "artwork" -msgstr "कला का कार्य" +#: js/utils/musicutils.js:710 +msgid "Major thirteenth" +msgstr "" -#: js/turtledefs.js:185 -#: js/turtledefs.js:281 -msgid "logic" -msgstr "तर्क" +#: js/utils/musicutils.js:710 +msgid "Diminished seventh, plus an octave" +msgstr "" -#: js/turtledefs.js:185 -#: js/turtledefs.js:281 -msgid "music" -msgstr "संगीत" +#: js/utils/musicutils.js:838 +#.TRANS: ordinal number. Please keep exactly one space between each number. +msgid "1st 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th" +msgstr "1वा 2वा 3वा 4वा 5वा 6वा 7वा 8वा 9वा 10वा 11वा 12वा" -#: js/turtledefs.js:187 -#: js/turtledefs.js:463 -msgid "Music Blocks is a collection of tools for exploring fundamental musical concepts in a fun way." -msgstr "म्यूजिक ब्लॉक्स संगीत के मौलिक अवधारणाओं का अन्वेषण करने के लिए एक मजेदार तरीके से सुझाव देता है।" +#: js/utils/musicutils.js:1008 +#: js/utils/musicutils.js:1191 +#: js/utils/musicutils.js:1325 +#.TRANS: augmented is a music term related to intervals +msgid "augmented" +msgstr "बढ़ाया हुआ" -#: js/turtledefs.js:436 -msgid "Welcome to Turtle Blocks" -msgstr "टर्टल ब्लॉक्स में आपका स्वागत है" +#: js/utils/musicutils.js:1010 +#: js/utils/musicutils.js:1192 +#: js/utils/musicutils.js:1324 +#.TRANS: diminished is a music term related to intervals and mode +msgid "diminished" +msgstr "कम" -#: js/turtledefs.js:438 -#: js/turtledefs.js:465 -#: js/turtledefs.js:774 -#: js/turtledefs.js:805 -msgid "The current version is" -msgstr "वर्तमान संस्करण है" +#: js/utils/musicutils.js:1016 +#: js/utils/musicutils.js:1322 +#: js/blocks/IntervalsBlocks.js:649 +#: js/turtleactions/IntervalsActions.js:120 +#: js/turtleactions/IntervalsActions.js:124 +#.TRANS: perfect is a music term related to intervals +msgid "perfect" +msgstr "पूर्ण" -#: js/turtledefs.js:446 -#: js/turtledefs.js:483 -msgid "Click the run button to run the project in fast mode." -msgstr "तेज मोड में परियोजना को चलाने के लिए रन बटन पर क्लिक करें।" +#: js/utils/musicutils.js:1018 +#.TRANS: twelve semi-tone scale for music +msgid "chromatic" +msgstr "क्रोमैटिक" -#: js/turtledefs.js:452 -msgid "Stop the turtle." -msgstr "कछुआ को रोकें।" +#: js/utils/musicutils.js:1019 +msgid "algerian" +msgstr "अल्जीरियन" -#: js/turtledefs.js:454 -#: js/turtledefs.js:491 -msgid "You can also type Alt-S to stop." -msgstr "आप रोकने के लिए Alt-S भी टाइप कर सकते हैं।" +#: js/utils/musicutils.js:1020 +msgid "spanish" +msgstr "स्पेनिश" -#: js/turtledefs.js:462 -#: js/help.js:333 -msgid "Welcome to Music Blocks" -msgstr "म्यूजिक ब्लॉक में आपका स्वागत है" +#: js/utils/musicutils.js:1022 +#.TRANS: modal scale in music +msgid "octatonic" +msgstr "ऑक्टाटॉनिक" -#: js/turtledefs.js:472 -#: js/help.js:334 -msgid "Meet Mr. Mouse!" -msgstr "मिस्टर माउस से मिलें!" +#: js/utils/musicutils.js:1024 +#.TRANS: harmonic major scale in music +msgid "harmonic major" +msgstr "हार्मोनिक मेजर" -#: js/turtledefs.js:473 -msgid "Mr Mouse is our Music Blocks conductor." -msgstr "मिस्टर माउस हमारे संगीत ब्लॉक्स कंडक्टर हैं।" +#: js/utils/musicutils.js:1026 +#.TRANS: natural minor scales in music +msgid "natural minor" +msgstr "नैचुरल माइनर" -#: js/turtledefs.js:475 -msgid "Mr Mouse encourages you to explore Music Blocks." -msgstr "मिस्टर माउस आपको म्यूजिक ब्लॉक्स का अन्वेषण करने के लिए प्रेरित करता है।" +#: js/utils/musicutils.js:1028 +#.TRANS: harmonic minor scale in music +msgid "harmonic minor" +msgstr "हार्मोनिक माइनर" -#: js/turtledefs.js:477 -msgid "Let us start our tour!" -msgstr "आइए हमारा दौरा शुरू करें!" +#: js/utils/musicutils.js:1030 +#.TRANS: melodic minor scale in music +msgid "melodic minor" +msgstr "मेलोडिक माइनर" -#: js/turtledefs.js:489 -msgid "Stop the music (and the mice)." -msgstr "संगीत को रोकें (और चूहे भी)।" +#: js/utils/musicutils.js:1034 +#.TRANS: modal scale for music +msgid "dorian" +msgstr "डोरियन" -#: js/turtledefs.js:499 -msgid "Record your project as video." -msgstr "अपने परियोजना को एक वीडियो के रूप में रिकॉर्ड करें।" +#: js/utils/musicutils.js:1036 +#.TRANS: modal scale for music +msgid "phrygian" +msgstr "फ्रिजियन" -#: js/turtledefs.js:505 -msgid "Toggle Fullscreen mode." -msgstr "" +#: js/utils/musicutils.js:1038 +#.TRANS: modal scale for music +msgid "lydian" +msgstr "लिडियन" -#: js/turtledefs.js:511 -msgid "Initialize a new project." -msgstr "एक नई परियोजना की शुरुआत करें।" +#: js/utils/musicutils.js:1040 +#.TRANS: modal scale for music +msgid "mixolydian" +msgstr "मिक्सोलिडियन" -#: js/turtledefs.js:517 -msgid "You can also load projects from the file system." -msgstr "आप फ़ाइल सिस्टम से भी परियोजनाएं लोड कर सकते हैं।" +#: js/utils/musicutils.js:1044 +#.TRANS: modal scale for music +msgid "locrian" +msgstr "लोक्रियन" -#: js/turtledefs.js:522 -#: js/StringHelper.js:46 -msgid "Delete" -msgstr "हटाएं" +#: js/utils/musicutils.js:1046 +#.TRANS: minor jazz scale for music +msgid "jazz minor" +msgstr "जैज माइनर" -#: js/turtledefs.js:523 -msgid "To delete a block, just right-click on it, then you will be able to see the delete option" -msgstr "" +#: js/utils/musicutils.js:1048 +#.TRANS: bebop scale for music +msgid "bebop" +msgstr "बीबॉप" -#: js/turtledefs.js:528 -#: js/activity.js:2270 -#: js/LocalCard.js:31 -msgid "Copy" -msgstr "नक़ल" +#: js/utils/musicutils.js:1049 +msgid "arabic" +msgstr "अरबी" -#: js/turtledefs.js:529 -msgid "To copy a block, just right-click on it, then you will be able to see the copy option" -msgstr "" +#: js/utils/musicutils.js:1050 +msgid "byzantine" +msgstr "बाइज़ंटाइन" -#: js/turtledefs.js:535 -msgid "To extract a block, just right-click on it, then you will be able to see the extract option" -msgstr "" +#: js/utils/musicutils.js:1052 +#.TRANS: musical scale for music by Verdi +msgid "enigmatic" +msgstr "एनिगमैटिक" -#: js/turtledefs.js:542 -#: js/turtledefs.js:552 -#: js/turtledefs.js:573 -msgid "Save your project to a file." -msgstr "अपनी परियोजना को एक फ़ाइल में सहेजें।" +#: js/utils/musicutils.js:1053 +msgid "ethiopian" +msgstr "इथियोपियन" -#: js/turtledefs.js:549 -#: js/turtledefs.js:570 -msgid "save" -msgstr "सहेजें" +#: js/utils/musicutils.js:1055 +#.TRANS: Ethiopic scale for music +msgid "geez" +msgstr "गीज़" -#: js/turtledefs.js:556 -#: js/turtledefs.js:577 -msgid "Save graphics from your project to as SVG." -msgstr "अपनी परियोजना से ग्राफिक्स को एसवीजी के रूप में सहेजें।" +#: js/utils/musicutils.js:1056 +msgid "hindu" +msgstr "हिन्दू" -#: js/turtledefs.js:560 -#: js/turtledefs.js:581 -msgid "Save graphics from your project as PNG." -msgstr "अपनी परियोजना से ग्राफिक्स को पीएनजी के रूप में सहेजें।" +#: js/utils/musicutils.js:1057 +msgid "hungarian" +msgstr "हंगेरियन" -#: js/turtledefs.js:564 -#: js/turtledefs.js:597 -msgid "Save block artwork as an SVG file." -msgstr "ब्लॉक कला को एसवीजी फ़ाइल के रूप में सहेजें।" +#: js/utils/musicutils.js:1059 +#.TRANS: minor Romanian scale for music +msgid "romanian minor" +msgstr "रोमानियन माइनर" -#: js/turtledefs.js:585 -msgid "Save audio from your project as WAV." -msgstr "अपनी परियोजना से ऑडियो को डब्लूएवी के रूप में सहेजें।" +#: js/utils/musicutils.js:1060 +msgid "spanish gypsy" +msgstr "स्पैनिश जिप्सी" -#: js/turtledefs.js:589 -msgid "Save your project to as an ABC file." -msgstr "अपनी परियोजना को एक एबीसी फ़ाइल के रूप में सहेजें।" +#: js/utils/musicutils.js:1062 +#.TRANS: musical scale for Mid-Eastern music +msgid "maqam" +msgstr "मकाम" -#: js/turtledefs.js:593 -msgid "Save your project to as a Lilypond file." -msgstr "अपनी परियोजना को एक लिलीपॉंड फ़ाइल के रूप में सहेजें।" +#: js/utils/musicutils.js:1064 +#.TRANS: minor blues scale for music +msgid "minor blues" +msgstr "माइनर ब्लूज" -#: js/turtledefs.js:604 -msgid "Load samples from server" -msgstr "सर्वर से नमूना लोड करें" +#: js/utils/musicutils.js:1066 +#.TRANS: major blues scale for music +msgid "major blues" +msgstr "मेजर ब्लूज" -#: js/turtledefs.js:605 -msgid "This button opens a viewer for loading example projects." -msgstr "यह बटन नमूने देखने के लिए एक दर्शक खोलता है।" +#: js/utils/musicutils.js:1067 +msgid "whole tone" +msgstr "होल टोन" -#: js/turtledefs.js:611 -msgid "Palette buttons" -msgstr "पैलेट बटन" +#: js/utils/musicutils.js:1069 +#.TRANS: pentatonic is a general term that means "five note scale". This scale is typically known as "minor pentatonic" +msgid "minor pentatonic" +msgstr "माइनर पेंटाटॉनिक" -#: js/turtledefs.js:612 -msgid "This toolbar contains the palette buttons including Rhythm Pitch Tone Action and more." -msgstr "यह टूलबार रिद्धि पिच टोन क्रिया और अन्य सहित पैलेट बटन्स को शामिल करता है।" +#: js/utils/musicutils.js:1071 +#.TRANS: pentatonic is a general term that means "five note scale". This scale is typically known as "major pentatonic" +msgid "major pentatonic" +msgstr "मेजर पेंटाटॉनिक" -#: js/turtledefs.js:614 -msgid "Click to show the palettes of blocks and drag blocks from the palettes onto the canvas to use them." -msgstr "ब्लॉक और पैलेट्स के पैलेट्स दिखाने के लिए क्लिक करें और इन्हें कैनवास पर खींचें ताकि आप उन्हें इस्तेमाल कर सकें।" +#: js/utils/musicutils.js:1072 +msgid "chinese" +msgstr "चाइनीज़" -#: js/turtledefs.js:620 -msgid "Cartesian/Polar" -msgstr "कार्टेसिय" +#: js/utils/musicutils.js:1073 +msgid "egyptian" +msgstr "इज़िप्शियन" -#: js/turtledefs.js:621 -msgid "Show or hide a coordinate grid." -msgstr "कोआर्डिनेट ग्रिड दिखाएँ या छुपाएँ।" +#: js/utils/musicutils.js:1075 +#.TRANS: https://en.wikipedia.org/wiki/Hirajoshi_scale NOTE: There are three different versions of this scale +msgid "hirajoshi" +msgstr "हिराजोशी" -#: js/turtledefs.js:627 -msgid "Clear the screen and return the mice to their initial positions." -msgstr "स्क्रीन को साफ करें और माउस को उनकी प्रारंभिक स्थितियों में ले आएं।" +#: js/utils/musicutils.js:1076 +msgid "Japan" +msgstr "जापान" -#: js/turtledefs.js:633 -msgid "Collapse the graphics window." -msgstr "ग्राफिक्स विंडो को संकुचित करें।" +#: js/utils/musicutils.js:1078 +#.TRANS: https://en.wikipedia.org/wiki/In_scale and https://en.wikipedia.org/wiki/Sakura_Sakura +msgid "in" +msgstr "" -#: js/turtledefs.js:638 -#: js/activity.js:4256 -#: js/activity.js:4256 -msgid "Home" -msgstr "होम" +#: js/utils/musicutils.js:1080 +#.TRANS: https://en.wikipedia.org/wiki/Miny%C5%8D_scale +msgid "minyo" +msgstr "मिन्यो" -#: js/turtledefs.js:639 -msgid "Return all blocks to the center of the screen." -msgstr "सभी ब्लॉक्स को स्क्रीन के केंद्र में लौटाएं।" +#: js/utils/musicutils.js:1082 +#.TRANS: Italian mathematician +msgid "fibonacci" +msgstr "फिबोनाची" -#: js/turtledefs.js:644 -msgid "Show/hide blocks" -msgstr "ब्लॉक्स दिखाएँ/छुपाएँ" +#: js/utils/musicutils.js:1083 +#: js/utils/musicutils.js:1134 +#: js/utils/musicutils.js:1177 +#: js/utils/musicutils.js:1199 +#: js/utils/synthutils.js:134 +#: js/blocks/IntervalsBlocks.js:1124 +#: js/blocks/ToneBlocks.js:946 +#: js/blocks/VolumeBlocks.js:411 +#: js/blocks/WidgetBlocks.js:399 +#: js/blocks/WidgetBlocks.js:404 +#: js/turtleactions/VolumeActions.js:218 +#: js/widgets/modewidget.js:919 +#.TRANS: customize voice +msgid "custom" +msgstr "अनुकूलित" -#: js/turtledefs.js:645 -msgid "Hide or show the blocks and the palettes." -msgstr "ब्लॉक्स और पैलेट्स को छुपाएं या दिखाएं" +#: js/utils/musicutils.js:1085 +#: js/utils/musicutils.js:1531 +#: js/blocks/WidgetBlocks.js:176 +#.TRANS: highpass filter +msgid "highpass" +msgstr "हाईपास" -#: js/turtledefs.js:650 -msgid "Expand/collapse collapsable blocks" -msgstr "विकल्प/संकुचन योग्य ब्लॉक्स को विस्तृत/संकुचित करें" +#: js/utils/musicutils.js:1087 +#: js/utils/musicutils.js:1532 +#.TRANS: lowpass filter +msgid "lowpass" +msgstr "लोपास" -#: js/turtledefs.js:651 -msgid "Expand or collapse start and action stacks." -msgstr "स्टार्ट और एक्शन स्टैक्स को विस्तृत या संकुचित करें।" +#: js/utils/musicutils.js:1089 +#: js/utils/musicutils.js:1533 +#.TRANS: bandpass filter +msgid "bandpass" +msgstr "बैंडपास" -#: js/turtledefs.js:658 -#: js/activity.js:4265 -msgid "Decrease block size" -msgstr "ब्लॊक का आकार घटाएं" +#: js/utils/musicutils.js:1091 +#: js/utils/musicutils.js:1534 +#.TRANS: high-shelf filter +msgid "highshelf" +msgstr "हाईशेल्फ" -#: js/turtledefs.js:659 -msgid "Decrease the size of the blocks." -msgstr "ब्लॉक्स का आकार घटाएं" +#: js/utils/musicutils.js:1093 +#: js/utils/musicutils.js:1535 +#.TRANS: low-shelf filter +msgid "lowshelf" +msgstr "लोशेल्फ" -#: js/turtledefs.js:664 -#: js/activity.js:4267 -msgid "Increase block size" -msgstr "ब्लॊक का आकार बढ़ाएं" +#: js/utils/musicutils.js:1095 +#: js/utils/musicutils.js:1536 +#.TRANS: notch-shelf filter +msgid "notch" +msgstr "नॉच" -#: js/turtledefs.js:665 -msgid "Increase the size of the blocks." -msgstr "ब्लॉक्स का आकार बढ़ाएं" +#: js/utils/musicutils.js:1097 +#: js/utils/musicutils.js:1537 +#.TRANS: all-pass filter +msgid "allpass" +msgstr "ऑलपास" -#: js/turtledefs.js:670 -msgid "Expand/collapse option toolbar" -msgstr "विकल्प टूलबार को विस्तृत/संकुचित करें" +#: js/utils/musicutils.js:1099 +#: js/utils/musicutils.js:1538 +#.TRANS: peaking filter +msgid "peaking" +msgstr "पीकिंग" -#: js/turtledefs.js:671 -msgid "Click this button to expand or collapse the auxillary toolbar." -msgstr "" +#: js/utils/musicutils.js:1100 +#: js/utils/musicutils.js:1546 +#: js/utils/synthutils.js:126 +#: js/blocks/PitchBlocks.js:85 +#.TRANS: sine wave +msgid "sine" +msgstr "साइन" -#: js/turtledefs.js:676 -msgid "Run slow" -msgstr "धीमे चलाएं" +#: js/utils/musicutils.js:1101 +#: js/utils/musicutils.js:1547 +#: js/utils/synthutils.js:128 +#: js/blocks/PitchBlocks.js:39 +#.TRANS: square wave +msgid "square" +msgstr "वर्ग" -#: js/turtledefs.js:677 -msgid "Click to run the project in slow mode." -msgstr "प्रोजेक्ट को धीरे चलाने के लिए यहाँ क्लिक करें" +#: js/utils/musicutils.js:1102 +#: js/utils/musicutils.js:1548 +#: js/utils/synthutils.js:132 +#: js/blocks/PitchBlocks.js:62 +#: js/blocks/ToneBlocks.js:39 +#.TRANS: triangle wave +msgid "triangle" +msgstr "त्रिकोण" -#: js/turtledefs.js:683 -msgid "Click to run the project step by step." -msgstr "प्रोजेक्ट को क्रमशः चलने के लिए क्लिक करें" +#: js/utils/musicutils.js:1103 +#: js/utils/musicutils.js:1549 +#: js/utils/synthutils.js:130 +#: js/blocks/PitchBlocks.js:108 +#.TRANS: sawtooth wave +msgid "sawtooth" +msgstr "सॉटूथ" -#: js/turtledefs.js:690 -msgid "Display statistics about your Music project." -msgstr "अपने संगीत प्रोजेक्ट के आँकड़े दिखाएँ।" +#: js/utils/musicutils.js:1105 +#: js/utils/musicutils.js:1312 +#: js/blocks/PitchBlocks.js:931 +#: js/blocks/PitchBlocks.js:937 +#: js/turtleactions/PitchActions.js:469 +#.TRANS: even numbers +#.TRANS: invert based on even or odd number or musical scale +msgid "even" +msgstr "सम" -#: js/turtledefs.js:697 -msgid "Delete a selected plugin." -msgstr "चयनित प्लगइन को हटाएं।" +#: js/utils/musicutils.js:1107 +#: js/utils/musicutils.js:1313 +#: js/blocks/PitchBlocks.js:937 +#: js/turtleactions/PitchActions.js:471 +#.TRANS: odd numbers +msgid "odd" +msgstr "विषम" -#: js/turtledefs.js:704 -msgid "Enable scrolling" -msgstr "स्क्रॉलिंग सक्षम करें" +#: js/utils/musicutils.js:1108 +#: js/utils/musicutils.js:1314 +#: js/blocks/PitchBlocks.js:937 +#: js/turtleactions/PitchActions.js:473 +msgid "scalar" +msgstr "स्कैलर" -#: js/turtledefs.js:705 -msgid "You can scroll the blocks on the canvas." -msgstr "आप कैनवास पर ब्लॉक्स को स्क्रॉल कर सकते हैं।" +#: js/utils/musicutils.js:1109 +#: js/utils/synthutils.js:72 +#: js/blocks/VolumeBlocks.js:47 +#.TRANS: musical instrument +msgid "piano" +msgstr "पियानो" -#: js/turtledefs.js:714 -msgid "Wrap Turtle" -msgstr "टर्टल को लपेटें" +#: js/utils/musicutils.js:1110 +#: js/utils/synthutils.js:74 +#.TRANS: musical instrument +msgid "violin" +msgstr "वायलिन" -#: js/turtledefs.js:715 -msgid "Turn Turtle wrapping On or Off." -msgstr "टर्टल लपेटें को चालू या बंद करें।" +#: js/utils/musicutils.js:1111 +#: js/utils/synthutils.js:76 +#.TRANS: viola musical instrument +msgid "viola" +msgstr "वायोला" -#: js/turtledefs.js:725 -msgid "Restore blocks from the trash." -msgstr "कचरे से ब्लॉक्स को बहाल करें।" +#: js/utils/musicutils.js:1112 +#: js/utils/synthutils.js:114 +#.TRANS: xylophone musical instrument +msgid "xylophone" +msgstr "क्सीलोफ़ोन" -#: js/turtledefs.js:732 -msgid "Switch mode" -msgstr "मोड स्विच करें" +#: js/utils/musicutils.js:1113 +#: js/utils/synthutils.js:136 +#.TRANS: vibraphone musical instrument +msgid "vibraphone" +msgstr "वाइब्राफ़ोन" -#: js/turtledefs.js:733 -msgid "Switch between beginner and advance modes." -msgstr "शुरुआती और उन्नत मोड के बीच स्विच करें।" +#: js/utils/musicutils.js:1114 +#: js/utils/synthutils.js:78 +#.TRANS: musical instrument +msgid "cello" +msgstr "चेलो" -#: js/turtledefs.js:739 -msgid "Select your language preference." -msgstr "अपनी भाषा प्राथमिकता का चयन करें।" +#: js/utils/musicutils.js:1116 +#: js/utils/synthutils.js:82 +#.TRANS: viola musical instrument +msgid "double bass" +msgstr "डबल बास" -#: js/turtledefs.js:745 -msgid "Keyboard shortcuts" -msgstr "कीबोर्ड शॉर्टकट्स" +#: js/utils/musicutils.js:1117 +#: js/utils/synthutils.js:84 +#: js/widgets/rhythmruler.js:2511 +#.TRANS: musical instrument +msgid "guitar" +msgstr "गिटार" -#: js/turtledefs.js:746 -msgid "You can type d to create a do block and r to create a re block etc." -msgstr "आप डू ब्लॉक बनाने के लिए डी और रे ब्लॉक बनाने के लिए आर इत्यादि टाइप कर सकते हैं।" +#: js/utils/musicutils.js:1118 +#: js/utils/synthutils.js:86 +#.TRANS: musical instrument +msgid "acoustic guitar" +msgstr "एकॉस्टिक गिटार" -#: js/turtledefs.js:753 -msgid "Show these messages." -msgstr "इन संदेशों को दिखाएँ।" +#: js/utils/musicutils.js:1119 +#: js/utils/synthutils.js:88 +#.TRANS: musical instrument +msgid "flute" +msgstr "बांसुरी" -#: js/turtledefs.js:759 -#: js/turtledefs.js:790 -#: js/help.js:335 -msgid "Guide" -msgstr "मार्गदर्शिका" +#: js/utils/musicutils.js:1120 +#: js/utils/synthutils.js:90 +#.TRANS: musical instrument +msgid "clarinet" +msgstr "क्लैरिनेट" -#: js/turtledefs.js:760 -msgid "A detailed guide to Turtle Blocks is available." -msgstr "टर्टल ब्लॉक्स के लिए एक विस्तृत मार्गदर्शिका उपलब्ध है।" +#: js/utils/musicutils.js:1121 +#: js/utils/synthutils.js:92 +#.TRANS: musical instrument +msgid "saxophone" +msgstr "सैक्सोफोन" -#: js/turtledefs.js:764 -msgid "Turtle Blocks Guide" -msgstr "टर्टल ब्लॉक्स मार्गदर्शिका" +#: js/utils/musicutils.js:1122 +#: js/utils/synthutils.js:94 +#.TRANS: musical instrument +msgid "tuba" +msgstr "ट्यूबा" -#: js/turtledefs.js:767 -#: js/turtledefs.js:798 -#: js/help.js:336 -msgid "About" -msgstr "बारे में" +#: js/utils/musicutils.js:1123 +#: js/utils/synthutils.js:96 +#.TRANS: musical instrument +msgid "trumpet" +msgstr "ट्रंपेट" -#: js/turtledefs.js:768 -msgid "Turtle Blocks is an open source collection of tools for exploring musical concepts." -msgstr "टर्टल ब्लॉक्स एक संगीत सिद्धांतों की खोज के लिए एक ओपन सोर्स संग्रह है।" +#: js/utils/musicutils.js:1124 +#: js/utils/synthutils.js:98 +#.TRANS: musical instrument +msgid "oboe" +msgstr "ओबो" -#: js/turtledefs.js:770 -msgid "A full list of contributors can be found in the Turtle Blocks GitHub repository." -msgstr "टर्टल ब्लॉक्स GitHub रिपॉजिटरी में सभी योगदानकर्ताओं की पूरी सूची मिल सकती है।" +#: js/utils/musicutils.js:1125 +#: js/utils/synthutils.js:100 +#.TRANS: musical instrument +msgid "trombone" +msgstr "ट्रॉम्बोन" -#: js/turtledefs.js:772 -msgid "Turtle Blocks is licensed under the AGPL." -msgstr "टर्टल ब्लॉक्स AGPL लाइसेंस के तहत लाइसेंस प्राप्त करता है।" +#: js/utils/musicutils.js:1126 +#: js/utils/synthutils.js:116 +#.TRANS: polytone synthesizer +msgid "electronic synth" +msgstr "इलेक्ट्रॉनिक सिंथ" -#: js/turtledefs.js:780 -msgid "Turtle Blocks GitHub repository" -msgstr "टर्टल ब्लॉक्स GitHub रिपॉजिटरी" +#: js/utils/musicutils.js:1127 +#: js/utils/synthutils.js:118 +#.TRANS: simple monotone synthesizer +msgid "simple 1" +msgstr "सिम्पल 1" -#: js/turtledefs.js:783 -#: js/turtledefs.js:814 -#: js/help.js:337 -#: js/help.js:359 -msgid "Congratulations." -msgstr "बधाई हो।" +#: js/utils/musicutils.js:1128 +msgid "simple 2" +msgstr "सिम्पल 2" -#: js/turtledefs.js:784 -msgid "You have finished the tour. Please enjoy Turtle Blocks!" -msgstr "आपने दौरा समाप्त किया है। कृपया टर्टल ब्लॉक्स का आनंद लें!" +#: js/utils/musicutils.js:1129 +msgid "simple 3" +msgstr "सिम्पल 3" -#: js/turtledefs.js:791 -msgid "A detailed guide to Music Blocks is available." -msgstr "म्यूजिक ब्लॉक्स के लिए एक विस्तृत मार्गदर्शिका उपलब्ध है।" +#: js/utils/musicutils.js:1130 +msgid "simple 4" +msgstr "सिम्पल 4" -#: js/turtledefs.js:795 -#: js/SaveInterface.js:76 -msgid "Music Blocks Guide" -msgstr "म्यूजिक ब्लॉक्स मार्गदर्शिका" +#: js/utils/musicutils.js:1131 +#: js/utils/synthutils.js:58 +#: js/blocks/DrumBlocks.js:191 +#.TRANS: white noise synthesizer +msgid "white noise" +msgstr "" -#: js/turtledefs.js:799 -msgid "Music Blocks is an open source collection of tools for exploring musical concepts." -msgstr "म्यूजिक ब्लॉक्स एक संगीत सिद्धांतों की खोज के लिए एक ओपन सोर्स संग्रह है।" +#: js/utils/musicutils.js:1132 +#: js/utils/synthutils.js:60 +#.TRANS: brown noise synthesizer +msgid "brown noise" +msgstr "ब्राउन नॉइज़" -#: js/turtledefs.js:801 -msgid "A full list of contributors can be found in the Music Blocks GitHub repository." -msgstr "म्यूजिक ब्लॉक्स GitHub रिपॉजिटरी में सभी योगदानकर्ताओं की पूरी सूची मिल सकती है।" +#: js/utils/musicutils.js:1133 +#: js/utils/synthutils.js:62 +#.TRANS: pink noise synthesizer +msgid "pink noise" +msgstr "पिंक नॉइज़" -#: js/turtledefs.js:803 -msgid "Music Blocks is licensed under the AGPL." -msgstr "म्यूजिक ब्लॉक्स AGPL लाइसेंस के तहत लाइसेंस प्राप्त करता है।" +#: js/utils/musicutils.js:1135 +#: js/utils/synthutils.js:148 +#: js/widgets/rhythmruler.js:2057 +#: js/widgets/rhythmruler.js:2319 +#.TRANS: musical instrument +msgid "snare drum" +msgstr "स्नेयर ड्रम" -#: js/turtledefs.js:811 -msgid "Music Blocks GitHub repository" -msgstr "म्यूजिक ब्लॉक्स GitHub रेपॉजिटरी" +#: js/utils/musicutils.js:1136 +#: js/utils/synthutils.js:150 +#.TRANS: musical instrument +msgid "kick drum" +msgstr "किक ड्रम" -#: js/turtledefs.js:815 -msgid "You have finished the tour. Please enjoy Music Blocks!" -msgstr "आपने यात्रा पूरी कर ली है। कृपया Music Blocks का आनंद लें!" +#: js/utils/musicutils.js:1137 +#: js/utils/synthutils.js:152 +#.TRANS: musical instrument +msgid "tom tom" +msgstr "टॉम टॉम" -#: js/activity.js:369 -msgid "Search for blocks" -msgstr "ब्लॉक्स के लिए खोजें" +#: js/utils/musicutils.js:1138 +#: js/utils/synthutils.js:154 +#.TRANS: musical instrument +msgid "floor tom" +msgstr "फ्लोर टॉम" -#: js/activity.js:1145 -msgid "Refresh your browser to change to advanced mode." -msgstr "उन्नत मोड में बदलने के लिए अपने ब्राउज़र को रिफ़्रेश करें।" +#: js/utils/musicutils.js:1139 +#: js/utils/synthutils.js:156 +#.TRANS: musical instrument +msgid "bass drum" +msgstr "बेस ड्रम" -#: js/activity.js:1150 -msgid "Refresh your browser to change to beginner mode." -msgstr "शुरुआती मोड में बदलने के लिए अपने ब्राउज़र को रिफ़्रेश करें।" +#: js/utils/musicutils.js:1140 +#: js/utils/synthutils.js:158 +#.TRANS: a drum made from an inverted cup +msgid "cup drum" +msgstr "कप ड्रम" -#: js/activity.js:1184 -msgid "Catching mice" -msgstr "चूहों को पकड़ना" +#: js/utils/musicutils.js:1141 +#: js/utils/synthutils.js:160 +#.TRANS: musical instrument +msgid "darbuka drum" +msgstr "दरबूका ड्रम" -#: js/activity.js:1185 -msgid "Cleaning the instruments" -msgstr "उपकरणों की सफाई" +#: js/utils/musicutils.js:1142 +#: js/utils/synthutils.js:164 +#.TRANS: musical instrument +msgid "hi hat" +msgstr "हाई हैट" -#: js/activity.js:1186 -msgid "Testing key pieces" -msgstr "मुख्य हिस्से का परीक्षण" +#: js/utils/musicutils.js:1143 +#: js/utils/synthutils.js:166 +#.TRANS: a small metal bell +msgid "ride bell" +msgstr "राइड बेल" -#: js/activity.js:1187 -msgid "Sight-reading" -msgstr "साइट-रीडिंग" +#: js/utils/musicutils.js:1144 +#: js/utils/synthutils.js:168 +#.TRANS: musical instrument +msgid "cow bell" +msgstr "काउ बेल" -#: js/activity.js:1188 -msgid "Combining math and music" -msgstr "गणित और संगीत को मिलाकर" +#: js/utils/musicutils.js:1145 +msgid "japanese drum" +msgstr "जापानी ड्रम" -#: js/activity.js:1189 -msgid "Generating more blocks" -msgstr "और ब्लॉक्स उत्पन्न करना" +#: js/utils/musicutils.js:1146 +#: js/utils/synthutils.js:174 +#.TRANS: musical instrument +msgid "japanese bell" +msgstr "जापानी बेल" -#: js/activity.js:1190 -msgid "Do Re Mi Fa Sol La Ti Do" -msgstr "डो रे मी फा सोल ला टी डो" +#: js/utils/musicutils.js:1147 +#: js/utils/synthutils.js:170 +#.TRANS: musical instrument +msgid "triangle bell" +msgstr "त्रिकोण बेल" -#: js/activity.js:1191 -msgid "Tuning string instruments" -msgstr "स्ट्रिंग उपकरणों को स्वर समर्पित करना" +#: js/utils/musicutils.js:1148 +#: js/utils/synthutils.js:172 +#.TRANS: musical instrument +msgid "finger cymbals" +msgstr "फिंगर सिम्बल्स" -#: js/activity.js:1192 -msgid "Pressing random keys" -msgstr "यादृच्छिक कुंजियाँ दबाना" +#: js/utils/musicutils.js:1149 +#: js/utils/synthutils.js:176 +#.TRANS: a musically tuned set of bells +msgid "chime" +msgstr "चाइम" -#: js/activity.js:1351 -msgid "plugins will be removed upon restart." -msgstr "प्लगइन्स को पुनरारंभ पर हटा दिया जाएगा।" +#: js/utils/musicutils.js:1150 +#: js/utils/synthutils.js:178 +#.TRANS: a musical instrument +msgid "gong" +msgstr "गॉंग" -#: js/activity.js:1360 -msgid "show Cartesian" -msgstr "कार्टेशियन दिखाएँ" +#: js/utils/musicutils.js:1151 +#: js/utils/synthutils.js:180 +#.TRANS: sound effect +msgid "clang" +msgstr "क्लैंग" -#: js/activity.js:1842 -msgid "output tools" -msgstr "आउटपुट टूल्स" +#: js/utils/musicutils.js:1152 +#: js/utils/synthutils.js:182 +#.TRANS: sound effect +msgid "crash" +msgstr "क्रैश" -#: js/activity.js:1845 -msgid "custom note" -msgstr "कस्टम नोट" +#: js/utils/musicutils.js:1153 +#: js/utils/synthutils.js:184 +#.TRANS: sound effect +msgid "bottle" +msgstr "बॉटल" -#: js/activity.js:1848 -msgid "accidental name" -msgstr "आकस्मिक नाम" +#: js/utils/musicutils.js:1154 +#: js/utils/synthutils.js:186 +#.TRANS: sound effect +msgid "clap" +msgstr "क्लैप" -#: js/activity.js:1851 -#: js/PitchBlocks.js:855 -msgid "east indian solfege" -msgstr "पूर्व भारतीय सोलफेज" +#: js/utils/musicutils.js:1155 +#: js/utils/synthutils.js:188 +#.TRANS: sound effect +msgid "slap" +msgstr "स्लैप" -#: js/activity.js:1854 -#: js/PitchBlocks.js:869 -msgid "note name" -msgstr "नोट का नाम" +#: js/utils/musicutils.js:1156 +#: js/utils/synthutils.js:190 +#.TRANS: sound effect +msgid "splash" +msgstr "स्प्लैश" -#: js/activity.js:1857 -#: js/IntervalsBlocks.js:94 -msgid "temperament name" -msgstr "स्वभाव नाम" +#: js/utils/musicutils.js:1157 +#: js/utils/synthutils.js:192 +#.TRANS: sound effect +msgid "bubbles" +msgstr "बबल्स" -#: js/activity.js:1863 -msgid "chord name" -msgstr "छोड़ का नाम" +#: js/utils/musicutils.js:1158 +#: js/utils/synthutils.js:194 +#.TRANS: sound effect +msgid "raindrop" +msgstr "रेनड्रॉप" -#: js/activity.js:1869 -msgid "filter type" -msgstr "फ़िल्टर का प्रकार" +#: js/utils/musicutils.js:1159 +#: js/utils/synthutils.js:196 +#.TRANS: animal sound effect +msgid "cat" +msgstr "बिल्ली" -#: js/activity.js:1872 -msgid "oscillator type" -msgstr "ऑस्किलेटर का प्रकार" +#: js/utils/musicutils.js:1160 +#: js/utils/synthutils.js:198 +#.TRANS: animal sound effect +msgid "cricket" +msgstr "क्रिकेट" -#: js/activity.js:1878 -#: js/DrumBlocks.js:32 -msgid "noise name" -msgstr "शोर का नाम" +#: js/utils/musicutils.js:1161 +#: js/utils/synthutils.js:200 +#.TRANS: animal sound effect +msgid "dog" +msgstr "कुत्ता" -#: js/activity.js:1881 -#: js/DrumBlocks.js:75 -msgid "drum name" -msgstr "ढोल का नाम" +#: js/utils/musicutils.js:1163 +#: js/utils/synthutils.js:102 +#.TRANS: musical instrument +msgid "banjo" +msgstr "बैंजो" -#: js/activity.js:1884 -#: js/DrumBlocks.js:119 -msgid "effects name" -msgstr "प्रभाव का नाम" +#: js/utils/musicutils.js:1164 +#: js/utils/synthutils.js:104 +#.TRANS: musical instrument +msgid "koto" +msgstr "कोतो" -#: js/activity.js:1887 -msgid "wrap mode" -msgstr "रैप मोड" +#: js/utils/musicutils.js:1165 +#: js/utils/synthutils.js:106 +#.TRANS: musical instrument +msgid "dulcimer" +msgstr "डल्सिमर" -#: js/activity.js:1890 -msgid "load file" -msgstr "फ़ाइल लोड करें" +#: js/utils/musicutils.js:1166 +#: js/utils/synthutils.js:108 +#.TRANS: musical instrument +msgid "electric guitar" +msgstr "इलेक्ट्रिक गिटार" -#: js/activity.js:2056 -msgid "This block is deprecated." -msgstr "यह ब्लॉक पुराना हो गया है।" +#: js/utils/musicutils.js:1167 +#: js/utils/synthutils.js:110 +#.TRANS: musical instrument +msgid "bassoon" +msgstr "बैसून" -#: js/activity.js:2058 -msgid "Block cannot be found." -msgstr "ब्लॉक नहीं मिल सकता है।" +#: js/utils/musicutils.js:1168 +#: js/utils/synthutils.js:112 +#.TRANS: musical instrument +msgid "celeste" +msgstr "सेलेस्ट" -#: js/activity.js:2266 -msgid "Saving block artwork" -msgstr "ब्लॉक कला सहेज रहा हूँ" +#: js/utils/musicutils.js:1170 +#: js/widgets/temperament.js:787 +#.TRANS: musical temperament +msgid "equal" +msgstr "इक्वल" -#: js/activity.js:2277 -msgid "Erase" -msgstr "मिटाएँ" +#: js/utils/musicutils.js:1172 +#.TRANS: musical temperament +msgid "Pythagorean" +msgstr "पिथागोरियन" -#: js/activity.js:2301 -#: js/activity.js:2323 -msgid "Paste" -msgstr "चिपकाएँ" +#: js/utils/musicutils.js:1174 +#.TRANS: musical temperament +msgid "just intonation" +msgstr "जस्ट इंटोनेशन" -#: js/activity.js:2305 -msgid "Save block help" -msgstr "ब्लॉक सहायता सहेजें" +#: js/utils/musicutils.js:1176 +#.TRANS: musical temperament +msgid "meantone" +msgstr "मींटोन" -#: js/activity.js:2390 -msgid "Jumping to the bottom of the page." -msgstr "पृष्ठ के नीचे जाना।" +#: js/utils/musicutils.js:1193 +msgid "major 7th" +msgstr "मेजर 7वां" -#: js/activity.js:2396 -msgid "Scrolling up." -msgstr "ऊपर स्क्रोल कर रहा है।" +#: js/utils/musicutils.js:1194 +msgid "minor 7th" +msgstr "माइनर 7वां" -#: js/activity.js:2401 -msgid "Scrolling down." -msgstr "नीचे स्क्रोल कर रहा है।" +#: js/utils/musicutils.js:1195 +msgid "dominant 7th" +msgstr "डॉमिनेंट 7वां" -#: js/activity.js:2406 -msgid "Extracting block" -msgstr "ब्लॉक निकाल रहा है" +#: js/utils/musicutils.js:1196 +msgid "minor-major 7th" +msgstr "माइनर-मेजर 7वां" -#: js/activity.js:2414 -msgid "Moving block up." -msgstr "ब्लॉक को ऊपर मोव कर रहा है।" +#: js/utils/musicutils.js:1197 +msgid "fully-diminished 7th" +msgstr "फुली-डिमिनिश 7वां" -#: js/activity.js:2435 -msgid "Moving block down." -msgstr "ब्लॉक को नीचे मोव कर रहा है।" +#: js/utils/musicutils.js:1198 +msgid "half-diminished 7th" +msgstr "हाफ-डिमिनिश 7वां" -#: js/activity.js:2456 -msgid "Moving block left." -msgstr "ब्लॉक को बाएँ मोव कर रहा है।" +#: js/utils/musicutils.js:1557 +#: js/utils/musicutils.js:1569 +msgid "Equal (12EDO)" +msgstr "" -#: js/activity.js:2473 -msgid "Moving block right." -msgstr "ब्लॉक को दाएँ मोव कर रहा है।" +#: js/utils/musicutils.js:1558 +#: js/utils/musicutils.js:1570 +msgid "5-limit Just Intonation" +msgstr "" -#: js/activity.js:2488 -msgid "Jump to home position." -msgstr "होम स्थिति पर जाएँ।" +#: js/utils/musicutils.js:1559 +#: js/utils/musicutils.js:1571 +msgid "Pythagorean (3-limit JI)" +msgstr "" -#: js/activity.js:2515 -msgid "Hide blocks" -msgstr "ब्लॉक छुपाएँ" +#: js/utils/musicutils.js:1560 +#: js/utils/musicutils.js:1561 +#: js/utils/musicutils.js:1572 +#: js/utils/musicutils.js:1573 +msgid "Meantone" +msgstr "" -#: js/activity.js:3389 -msgid "Click the run button to run the project." -msgstr "परियोजना चलाने के लिए रन बटन पर क्लिक करें।" +#: js/utils/musicutils.js:1574 +msgid "Custom" +msgstr "" -#: js/activity.js:3456 -#: js/SaveInterface.js:131 -#: js/SaveInterface.js:204 -#: js/SaveInterface.js:262 -#: js/SaveInterface.js:389 -#: js/SaveInterface.js:417 -#: js/ProjectStorage.js:27 -#: js/GlobalPlanet.js:467 -#: js/GlobalPlanet.js:469 -#: js/GlobalPlanet.js:495 -#.TRANS: default project title when saving as Lilypond -msgid "My Project" -msgstr "मेरा परियोजना" +#: js/utils/musicutils.js:5387 +#: js/utils/musicutils.js:5430 +msgid "current" +msgstr "वर्तमान" -#: js/activity.js:4261 -msgid "Show/hide block" -msgstr "ब्लॉक दिखाएँ/छुपाएँ" +#: js/utils/musicutils.js:5390 +#: js/utils/musicutils.js:5421 +msgid "next" +msgstr "अगला" -#: js/activity.js:4263 -msgid "Expand/collapse blocks" -msgstr "ब्लॉक विस्तार करें/संकुचित करें" +#: js/utils/musicutils.js:5393 +#: js/utils/musicutils.js:5426 +msgid "previous" +msgstr "पिछला" -#: js/activity.js:4381 -msgid "Could not parse JSON input." -msgstr "JSON इनपुट को पार्स नहीं कर सका।" +#: js/utils/synthutils.js:120 +#.TRANS: simple monotone synthesizer +msgid "simple-2" +msgstr "सिंपल-2" -#: js/activity.js:4684 -#: js/activity.js:4771 -#: js/activity.js:4821 -msgid "Cannot load project from the file. Please check the file type." -msgstr "फ़ाइल से परियोजना लोड नहीं कर सकता है। कृपया फ़ाइल का प्रकार जांचें।" +#: js/utils/synthutils.js:122 +#.TRANS: simple monotone synthesizer +msgid "simple-3" +msgstr "सिंपल-3" -#: js/activity.js:5051 -msgid "Invalid parameters" -msgstr "अमान्य पैरामीटर्स" +#: js/utils/synthutils.js:124 +#.TRANS: simple monotone synthesizer +msgid "simple-4" +msgstr "सिंपल-4" -#: js/turtle-singer.js:1334 -#.TRANS: partials are weighted components in a harmonic series -msgid "You must have at least one Partial block inside of a Weighted-partial block" -msgstr "आपके पास एक से अधिक पांचिक ब्लॉक के अंदर कम से कम एक आंशिक ब्लॉक होना चाहिए" +#: js/utils/synthutils.js:162 +#.TRANS: musical instrument +msgid "taiko" +msgstr "ताइको" -#: js/turtle-singer.js:2048 -msgid "synth cannot play chords." -msgstr "सिंथ कोड नहीं बजा सकता है।" +#: js/blocks/ActionBlocks.js:58 +msgid "The Return block will return a value from an action." +msgstr "रिटर्न ब्लॉक एक क्रिया से मूल्य लौटाएगा।" -#: js/lilypond.js:614 -msgid "brown rat" -msgstr "भूरा चूहा" +#: js/blocks/ActionBlocks.js:75 +msgid "return" +msgstr "लौटाएं" -#: js/lilypond.js:615 -msgid "mole" -msgstr "मौज" +#: js/blocks/ActionBlocks.js:128 +msgid "The Return to URL block will return a value to a webpage." +msgstr "रिटर्न टू यूआरएल ब्लॉक एक मूल्य को एक वेबपेज को लौटाएगा।" -#: js/lilypond.js:616 -msgid "chipmunk" -msgstr "चिपमंक" +#: js/blocks/ActionBlocks.js:145 +msgid "return to URL" +msgstr "यूआरएल पर लौटाएं" -#: js/lilypond.js:617 -msgid "red squirrel" -msgstr "लाल गिलहरी" +#: js/blocks/ActionBlocks.js:233 +#: js/blocks/ActionBlocks.js:290 +#: js/blocks/ActionBlocks.js:501 +#: js/blocks/ActionBlocks.js:688 +msgid "The Calculate block returns a value calculated by an action." +msgstr "कैलक्यूलेट ब्लॉक एक क्रिया द्वारा गणना किए गए मूल्य को लौटाता है।" -#: js/lilypond.js:618 -msgid "guinea pig" -msgstr "गिनीपिग" +#: js/blocks/ActionBlocks.js:251 +#: js/blocks/ActionBlocks.js:517 +#: js/blocks/ActionBlocks.js:707 +msgid "calculate" +msgstr "गणना" -#: js/lilypond.js:619 -msgid "capybara" -msgstr "कैपीबारा" +#: js/blocks/ActionBlocks.js:376 +#: js/blocks/ActionBlocks.js:593 +#: js/blocks/ActionBlocks.js:942 +#: js/blocks/ActionBlocks.js:1389 +#.TRANS: do is the do something or take an action. +msgid "The Do block is used to initiate an action." +msgstr "डू ब्लॉक का उपयोग क्रिया आरंभ करने के लिए किया जाता है।" -#: js/lilypond.js:620 -msgid "coypu" -msgstr "कोयपू" +#: js/blocks/ActionBlocks.js:390 +#: js/blocks/ActionBlocks.js:610 +#: js/blocks/ActionBlocks.js:959 +#: js/blocks/ActionBlocks.js:1048 +#: js/blocks/MeterBlocks.js:769 +msgid "do1" +msgstr "" -#: js/lilypond.js:621 -msgid "black rat" -msgstr "काला चूहा" +#: js/blocks/ActionBlocks.js:390 +#: js/blocks/ActionBlocks.js:610 +#: js/blocks/ActionBlocks.js:959 +#: js/blocks/ActionBlocks.js:1048 +#: js/blocks/FlowBlocks.js:742 +#: js/blocks/FlowBlocks.js:822 +#: js/blocks/MeterBlocks.js:769 +msgid "do" +msgstr "करें" -#: js/lilypond.js:622 -msgid "grey squirrel" -msgstr "स्लेटी गिलहरी" +#: js/blocks/ActionBlocks.js:791 +#: js/blocks/ActionBlocks.js:865 +msgid "The Arg block contains the value of an argument passed to an action." +msgstr "आर्ग ब्लॉक में एक क्रिया को पारित किए गए एक तर्क का मूल्य होता है।" -#: js/lilypond.js:623 -msgid "flying squirrel" -msgstr "उड़ती गिलहरी" +#: js/blocks/ActionBlocks.js:806 +#: js/blocks/ActionBlocks.js:878 +msgid "arg" +msgstr "तर्क" -#: js/lilypond.js:624 -msgid "bat" -msgstr "बैट" +#: js/blocks/ActionBlocks.js:836 +#: js/blocks/ActionBlocks.js:900 +#: js/blocks/ActionBlocks.js:908 +msgid "Invalid argument" +msgstr "अवैध तर्क" -#: js/lilypond.js:757 -#: js/lilypond.js:921 -#: js/lilypond.js:959 -#: js/ActionBlocks.js:1256 -#: js/ExtrasBlocks.js:553 -msgid "start drum" -msgstr "ड्रम चालू करें" +#: js/blocks/ActionBlocks.js:944 +msgid "In the example, it is used with the One of block to choose a random phase." +msgstr "उदाहरण में, यह वन ऑफ ब्लॉक के साथ एक यादृच्छिक चरण चयन करने के लिए उपयोग किया गया है।" -#: js/SaveInterface.js:59 -#: js/SaveInterface.js:61 -#: js/SaveInterface.js:93 -msgid "Music Blocks Project" -msgstr "संगीत ब्लॉक्स परियोजना" +#: js/blocks/ActionBlocks.js:1019 +#: js/blocks/ActionBlocks.js:1026 +msgid "The Listen block is used to listen for an event such as a mouse click." +msgstr "लिसन ब्लॉक का उपयोग एक घटना के लिए सुनने के लिए किया जाता है, जैसे कि माउस क्लिक।" -#: js/SaveInterface.js:63 -msgid "This project was created in Music Blocks" -msgstr "यह परियोजना म्यूज़िक ब्लॉक्स में बनाई गई थी" +#: js/blocks/ActionBlocks.js:1028 +msgid "When the event happens, an action is taken." +msgstr "जब घटना होती है, तो क्रिया की जाती है।" -#: js/SaveInterface.js:67 -msgid "Music Blocks is a Free/Libre Software application." -msgstr "म्यूज़िक ब्लॉक्स एक मुक्त/स्वतंत्र सॉफ़्टवेयर अनुप्रयोग है।" +#: js/blocks/ActionBlocks.js:1045 +msgid "on" +msgstr "पर" -#: js/SaveInterface.js:69 -msgid "The source code can be accessed at" -msgstr "स्रोत कोड को इस पर पहुँचा जा सकता है" +#: js/blocks/ActionBlocks.js:1048 +#: js/blocks/ActionBlocks.js:1049 +#: js/blocks/ActionBlocks.js:1153 +msgid "event" +msgstr "घटना" -#: js/SaveInterface.js:72 -msgid "For more information, please consult the" -msgstr "अधिक जानकारी के लिए कृपया संपर्क करें" +#: js/blocks/ActionBlocks.js:1133 +msgid "The Broadcast block is used to trigger an event." +msgstr "ब्रॉडकास्ट ब्लॉक एक घटना को ट्रिगर करने के लिए किया जाता है।" -#: js/SaveInterface.js:83 -msgid "Alternatively, open the file in Music Blocks using the Load project button." -msgstr "विकल्प के रूप में, फ़ाइल को लोड परियोजना बटन का उपयोग करके म्यूज़िक ब्लॉक्स में खोलें।" +#: js/blocks/ActionBlocks.js:1151 +msgid "broadcast" +msgstr "प्रसारण" -#: js/SaveInterface.js:85 -msgid "Project Code" -msgstr "परियोजना कोड" +#: js/blocks/ActionBlocks.js:1208 +msgid "Each Start block is a separate voice." +msgstr "प्रत्येक स्टार्ट ब्लॉक एक अलग आवाज है।" -#: js/SaveInterface.js:87 -msgid "This code stores data about the blocks in a project." -msgstr "यह कोड परियोजना में ब्लॉक्स के बारे में डेटा स्टोर करता है।" +#: js/blocks/ActionBlocks.js:1304 +msgid "It is often used for storing a phrase of music that is repeated." +msgstr "इसे अक्सर एक बार फिराया जाने वाले संगीत के वाक्य को स्टोर करने के लिए उपयोग किया जाता है।" -#: js/SaveInterface.js:89 -msgid "Show" -msgstr "दिखाएँ" +#: js/blocks/ActionBlocks.js:1495 +msgid "define temperament" +msgstr "ताम्बुल निर्धारित करें" -#: js/SaveInterface.js:91 -msgid "Hide" -msgstr "छुपाएँ" +#: js/blocks/BooleanBlocks.js:44 +msgid "The Not block is the logical not operator." +msgstr "नॉट ब्लॉक तार्किक नॉट ऑपरेटर है।" -#: js/SaveInterface.js:197 -#: js/SaveInterface.js:58 -msgid "No description provided" -msgstr "कोई विवरण उपलब्ध नहीं है" +#: js/blocks/BooleanBlocks.js:62 +msgid "not" +msgstr "नहीं" -#: js/SaveInterface.js:332 -msgid "Your recording is in progress." -msgstr "आपका रिकॉर्डिंग प्रगति में है।" +#: js/blocks/BooleanBlocks.js:134 +msgid "The And block is the logical and operator." +msgstr "एंड ब्लॉक तार्किक एंड ऑपरेटर है।" -#: js/SaveInterface.js:401 -#.TRANS: File name prompt for save as Lilypond -msgid "File name" -msgstr "फ़ाइल का नाम" +#: js/blocks/BooleanBlocks.js:152 +msgid "and" +msgstr "और" -#: js/SaveInterface.js:403 -#: js/StringHelper.js:39 -#.TRANS: Project title prompt for save as Lilypond -msgid "Project title" -msgstr "परियोजना का शीर्षक" +#: js/blocks/BooleanBlocks.js:218 +msgid "The Or block is the logical or operator." +msgstr "" -#: js/SaveInterface.js:405 -#.TRANS: Project title prompt for save as Lilypond -msgid "Project author" -msgstr "परियोजना का लेखक" +#: js/blocks/BooleanBlocks.js:236 +msgid "or" +msgstr "या" -#: js/SaveInterface.js:407 -#.TRANS: MIDI prompt for save as Lilypond -msgid "Include MIDI output?" -msgstr "MIDI आउटपुट शामिल करें?" +#: js/blocks/BooleanBlocks.js:302 +msgid "The XOR block is the logical XOR operator." +msgstr "XOR ब्लॉक तार्किक XOR ऑपरेटर है।" -#: js/SaveInterface.js:409 -#.TRANS: Guitar prompt for save as Lilypond -msgid "Include guitar tablature output?" -msgstr "गिटार टैब्लेचर आउटपुट शामिल करें?" +#: js/blocks/BooleanBlocks.js:320 +msgid "xor" +msgstr "एक्सओआर" -#: js/SaveInterface.js:411 -#.TRANS: Lilypond is a scripting language for generating sheet music -msgid "Save as Lilypond" -msgstr "लिलीपॉंड के रूप में सहेजें" +#: js/blocks/BooleanBlocks.js:808 +msgid "The Equal block returns True if the two numbers are equal." +msgstr "इक्वल ब्लॉक यदि दो नंबर समान हैं तो True लौटाता है।" -#: js/SaveInterface.js:426 -#: js/EnsembleBlocks.js:75 -#: js/EnsembleBlocks.js:154 -#: js/EnsembleBlocks.js:216 -#: js/EnsembleBlocks.js:302 -#: js/EnsembleBlocks.js:348 -#: js/EnsembleBlocks.js:389 -#: js/EnsembleBlocks.js:441 -#: js/EnsembleBlocks.js:490 -#: js/EnsembleBlocks.js:536 -#: js/EnsembleBlocks.js:583 -#: js/EnsembleBlocks.js:637 -#: js/EnsembleBlocks.js:753 -#: js/EnsembleBlocks.js:840 -#: js/EnsembleBlocks.js:899 -#: js/EnsembleBlocks.js:942 -#: js/EnsembleBlocks.js:1212 -#: js/EnsembleBlocks.js:1280 -#.TRANS: default project author when saving as Lilypond -msgid "Mr. Mouse" -msgstr "श्री माउस" +#: js/blocks/BooleanBlocks.js:909 +msgid "The Not-equal-to block returns True if the two numbers are not equal to each other." +msgstr "" -#: js/SaveInterface.js:573 -msgid "The Lilypond code is copied to clipboard. You can paste it here: " -msgstr "लिलीपॉंड कोड को क्लिपबोर्ड पर कॉपी किया गया है। आप इसे यहाँ पेस्ट कर सकते हैं:" +#: js/blocks/BooleanBlocks.js:1008 +msgid "The Boolean block is used to specify true or false." +msgstr "बूलियन ब्लॉक सच या झूठ को निर्दिष्ट करने के लिए उपयोग होता है।" -#: js/RhythmBlockPaletteBlocks.js:50 -#: js/RhythmBlockPaletteBlocks.js:232 -#.TRANS: rhythm block -#.TRANS: translate "rhythm1" as rhythm -msgid "rhythm1" -msgstr "ताल1" +#: js/blocks/BoxesBlocks.js:53 +#: js/blocks/BoxesBlocks.js:59 +msgid "The Add-to block is used to add to the value stored in a box." +msgstr "एड-टू ब्लॉक का उपयोग बॉक में संग्रहित मूल्य में जोड़ने के लिए किया जाता है।" -#: js/RhythmBlockPaletteBlocks.js:70 -#: js/RhythmBlockPaletteBlocks.js:251 -#: js/RhythmBlockPaletteBlocks.js:484 -#: js/RhythmBlockPaletteBlocks.js:553 -#: js/RhythmBlockPaletteBlocks.js:874 -msgid "number of notes" -msgstr "नोटों की संख्या" +#: js/blocks/BoxesBlocks.js:61 +msgid "It can also be used with other blocks such as Color and Pen size." +msgstr "इसे कलर और पेन साइज़ जैसे अन्य ब्लॉक्स के साथ भी उपयोग किया जा सकता है।" -#: js/RhythmBlockPaletteBlocks.js:126 -msgid "polyphonic rhythm" -msgstr "बहुस्वर ताल" +#: js/blocks/BoxesBlocks.js:73 +msgid "add" +msgstr "जोड़ें" -#: js/RhythmBlockPaletteBlocks.js:218 -msgid "The Rhythm block is used to generate rhythm patterns." -msgstr "रिद्धम ब्लॉक का उपयोग ताल पैटर्न बनाने के लिए किया जाता है।" +#: js/blocks/BoxesBlocks.js:75 +#: js/widgets/temperament.js:857 +msgid "to" +msgstr "को" -#: js/RhythmBlockPaletteBlocks.js:279 -msgid "1/64 note" -msgstr "1/64 नोट" +#: js/blocks/BoxesBlocks.js:75 +#: js/blocks/BoxesBlocks.js:595 +#: js/blocks/HeapBlocks.js:544 +msgid "value1" +msgstr "मूल्य1" -#: js/RhythmBlockPaletteBlocks.js:303 -msgid "1/32 note" -msgstr "1/32 नोट" +#: js/blocks/BoxesBlocks.js:118 +msgid "Block does not support incrementing." +msgstr "ब्लॉक इक्रीमेंट को समर्थन नहीं करता है।" -#: js/RhythmBlockPaletteBlocks.js:331 -msgid "1/16 note" -msgstr "1/16 नोट" +#: js/blocks/BoxesBlocks.js:152 +msgid "The Add-1-to block adds one to the value stored in a box." +msgstr "एड-1-टू ब्लॉक बॉक में संग्रहित मूल्य में एक जोड़ता है।" -#: js/RhythmBlockPaletteBlocks.js:359 -msgid "eighth note" -msgstr "आठवीं नोट" +#: js/blocks/BoxesBlocks.js:163 +msgid "add 1 to" +msgstr "में 1 जोड़ें" -#: js/RhythmBlockPaletteBlocks.js:387 -msgid "quarter note" -msgstr "क्वॉर्टर नोट" +#: js/blocks/BoxesBlocks.js:211 +msgid "The Subtract-1-from block subtracts one from the value stored in a box." +msgstr "घटक में संग्रहित मूल्य से एक कम करने के लिए Subtract-1-from ब्लॉक।" -#: js/RhythmBlockPaletteBlocks.js:415 -msgid "half note" -msgstr "हाफ नोट" +#: js/blocks/BoxesBlocks.js:222 +msgid "subtract 1 from" +msgstr "से 1 कम करें" -#: js/RhythmBlockPaletteBlocks.js:443 -msgid "whole note" -msgstr "पूरा नोट" +#: js/blocks/BoxesBlocks.js:270 +#: js/blocks/BoxesBlocks.js:387 +msgid "The Box block returns the value stored in a box." +msgstr "बॉक्स ब्लॉक में संग्रहित मूल्य लौटाता है।" -#: js/RhythmBlockPaletteBlocks.js:481 -#: js/RhythmBlockPaletteBlocks.js:550 -#: js/RhythmBlockPaletteBlocks.js:601 -#.TRANS: A tuplet is a note value divided into irregular time values. -msgid "tuplet" -msgstr "टुपलेट" +#: js/blocks/BoxesBlocks.js:500 +#: js/blocks/BoxesBlocks.js:576 +msgid "The Store in block will store a value in a box." +msgstr "Store in ब्लॉक एक मूल्य को एक बॉक्स में संग्रहित करेगा।" + +#: js/blocks/BoxesBlocks.js:595 +#: js/blocks/EnsembleBlocks.js:391 +#: js/blocks/EnsembleBlocks.js:402 +msgid "name1" +msgstr "नाम1" + +#: js/blocks/BoxesBlocks.js:652 +msgid "The Box2 block returns the value stored in Box2." +msgstr "Box2 ब्लॉक में संग्रहित मूल्य लौटाता है।" + +#: js/blocks/BoxesBlocks.js:703 +msgid "The Store in Box2 block is used to store a value in Box2." +msgstr "Store in Box2 ब्लॉक का उपयोग Box2 में मूल्य संग्रहित करने के लिए किया जाता है।" -#: js/RhythmBlockPaletteBlocks.js:767 -msgid "septuplet" -msgstr "सेप्टुप्लेट" +#: js/blocks/BoxesBlocks.js:715 +msgid "store in box2" +msgstr "बॉक्स2 में संग्रहित करें" -#: js/RhythmBlockPaletteBlocks.js:795 -msgid "quintuplet" -msgstr "क्विंटुप्लेट" +#: js/blocks/BoxesBlocks.js:761 +msgid "The Box1 block returns the value stored in Box1." +msgstr "Box1 ब्लॉक में संग्रहित मूल्य लौटाता है।" -#: js/RhythmBlockPaletteBlocks.js:823 -msgid "triplet" -msgstr "त्रैपलेट" +#: js/blocks/BoxesBlocks.js:812 +msgid "The Store in Box1 block is used to store a value in Box1." +msgstr "Store in Box1 ब्लॉक का उपयोग Box1 में मूल्य संग्रहित करने के लिए किया जाता है।" -#: js/RhythmBlockPaletteBlocks.js:850 -msgid "simple tuplet" -msgstr "साधा टुपलेट" +#: js/blocks/BoxesBlocks.js:826 +msgid "store in box1" +msgstr "बॉक्स1 में संग्रहित करें" -#: js/RhythmBlockPaletteBlocks.js:860 -msgid "Tuplets are a collection of notes that get scaled to a specific duration." -msgstr "टुपलेट्स एक ऐसे समय की निर्दिष्ट अवधि के लिए स्केल करने वाले नोट्स का संग्रह होते हैं।" +#: js/blocks/DictBlocks.js:77 +msgid "show dictionary" +msgstr "डिक्शनरी दिखाएं" -#: js/WidgetBlocks.js:71 -#.TRANS: sound envelope (ADSR) -msgid "envelope" -msgstr "एनवेलोप" +#: js/blocks/DictBlocks.js:80 +#: js/blocks/DictBlocks.js:145 +#: js/blocks/DictBlocks.js:216 +#: js/blocks/DictBlocks.js:290 +#: js/blocks/ProgramBlocks.js:396 +#: js/blocks/ProgramBlocks.js:501 +#: js/blocks/ProgramBlocks.js:664 +msgid "My Dictionary" +msgstr "" -#: js/WidgetBlocks.js:79 -#.TRANS: Attack time is the time taken for initial run-up of level from nil to peak, beginning when the key is first pressed. -msgid "attack" -msgstr "आक्रमण" +#: js/blocks/DictBlocks.js:129 +msgid "The Dictionary block returns a dictionary." +msgstr "डिक्शनरी ब्लॉक एक डिक्शनरी लौटाता है।" -#: js/WidgetBlocks.js:81 -#.TRANS: Decay time is the time taken for the subsequent run down from the attack level to the designated sustain level. -msgid "decay" -msgstr "क्षय" +#: js/blocks/DictBlocks.js:197 +#: js/blocks/DictBlocks.js:339 +msgid "The Get-dict block returns a value in the dictionary for a specified key." +msgstr "गेट-डिक्ट ब्लॉक एक निर्दिष्ट कुंजी के लिए डिक्शनरी में एक मूल्य लौटाता है।" -#: js/WidgetBlocks.js:83 -#.TRANS: Sustain level is the level during the main sequence of the sound's duration, until the key is released. -msgid "sustain" -msgstr "सस्टेन" +#: js/blocks/DictBlocks.js:212 +#: js/blocks/DictBlocks.js:354 +#.TRANS: retrieve a value from the dictionary with a given key +msgid "get value" +msgstr "मूल्य प्राप्त करें" -#: js/WidgetBlocks.js:85 -#.TRANS: Release time is the time taken for the level to decay from the sustain level to zero after the key is released. -msgid "release" -msgstr "रिलीज" +#: js/blocks/DictBlocks.js:215 +#: js/blocks/DictBlocks.js:216 +#: js/blocks/DictBlocks.js:289 +#: js/blocks/DictBlocks.js:290 +#: js/blocks/DictBlocks.js:357 +#: js/blocks/DictBlocks.js:430 +#: js/blocks/DictBlocks.js:431 +msgid "key2" +msgstr "कुंजी2" -#: js/WidgetBlocks.js:96 -msgid "Attack value should be from 0 to 100." -msgstr "आक्रमण मूल्य 0 से 100 के बीच होना चाहिए।" +#: js/blocks/DictBlocks.js:215 +#: js/blocks/DictBlocks.js:216 +#: js/blocks/DictBlocks.js:289 +#: js/blocks/DictBlocks.js:290 +#: js/blocks/DictBlocks.js:357 +#: js/blocks/DictBlocks.js:430 +#: js/blocks/DictBlocks.js:431 +#: js/blocks/IntervalsBlocks.js:1462 +#.TRANS: key, e.g., C in C Major +msgid "key" +msgstr "कुंजी" -#: js/WidgetBlocks.js:99 -msgid "Decay value should be from 0 to 100." -msgstr "क्षय मूल्य 0 से 100 के बीच होना चाहिए।" +#: js/blocks/DictBlocks.js:271 +#: js/blocks/DictBlocks.js:411 +msgid "The Set-dict block sets a value in the dictionary for a specified key." +msgstr "सेट-डिक्ट ब्लॉक निर्दिष्ट कुंजी के लिए डिक्शनरी में एक मूल्य सेट करता है।" -#: js/WidgetBlocks.js:102 -msgid "Sustain value should be from 0 to 100." -msgstr "सस्टेन मूल्य 0 से 100 के बीच होना चाहिए।" +#: js/blocks/DictBlocks.js:286 +#: js/blocks/DictBlocks.js:427 +#.TRANS: set a value in the dictionary for a given key +msgid "set value" +msgstr "मूल्य सेट करें" -#: js/WidgetBlocks.js:105 -msgid "Release value should be from 0-100." -msgstr "रिलीज मूल्य 0 से 100 के बीच होना चाहिए।" +#: js/blocks/EnsembleBlocks.js:66 +msgid "mouse index heap" +msgstr "माउस सूची भंडार" -#: js/WidgetBlocks.js:121 -msgid "You are adding multiple envelope blocks." -msgstr "आप कई एनवेलोप ब्लॉक जोड़ रहे हैं।" +#: js/blocks/EnsembleBlocks.js:68 +msgid "The Mouse index heap block returns a value in the heap at a specified location for a specified mouse." +msgstr "माउस इंडेक्स हीप ब्लॉक एक निर्दिष्ट स्थान पर एक निर्दिष्ट माउस के लिए हीप में एक मूल्य लौटाता है।" -#: js/WidgetBlocks.js:144 -#.TRANS: a filter removes some unwanted components from a signal -msgid "filter" -msgstr "फ़िल्टर" +#: js/blocks/EnsembleBlocks.js:77 +#: js/blocks/EnsembleBlocks.js:1080 +msgid "mouse name" +msgstr "माउस नाम" -#: js/WidgetBlocks.js:149 -#: js/musicutils.js:706 -#: js/musicutils.js:1105 -#.TRANS: highpass filter -msgid "highpass" -msgstr "हाईपास" +#: js/blocks/EnsembleBlocks.js:77 +#: js/blocks/EnsembleBlocks.js:92 +#: js/blocks/HeapBlocks.js:544 +#.TRANS: value1 is a numeric value (JAPANESE ONLY) +msgid "index" +msgstr "सूची" -#: js/WidgetBlocks.js:152 -#: js/ToneBlocks.js:42 -#: js/timbre.js:1558 -#: js/timbre.js:1808 -#.TRANS: type of filter, e.g., lowpass, highpass, etc. -#.TRANS: there are different types (sine, triangle, square...) of oscillators. -msgid "type" -msgstr "प्रकार" +#: js/blocks/EnsembleBlocks.js:80 +msgid "turtle index heap" +msgstr "टर्टल सूची भंडार" -#: js/WidgetBlocks.js:154 -#: js/timbre.js:1818 -#.TRANS: rolloff is the steepness of a change in frequency. -msgid "rolloff" -msgstr "रोलऑफ" +#: js/blocks/EnsembleBlocks.js:82 +msgid "The Turtle index heap block returns a value in the heap at a specified location for a specified turtle." +msgstr "टर्टल इंडेक्स हीप ब्लॉक एक निर्दिष्ट स्थान पर एक निर्दिष्ट कछुआ के लिए हीप में एक मूल्य लौटाता है।" -#: js/WidgetBlocks.js:155 -#: js/MediaBlocks.js:692 -#: js/temperament.js:382 -#: js/temperament.js:417 -#: js/temperament.js:477 -#: js/temperament.js:485 -#: js/temperament.js:1348 -#: js/timbre.js:1842 -msgid "frequency" -msgstr "आवृत्ति" +#: js/blocks/EnsembleBlocks.js:90 +#: js/blocks/EnsembleBlocks.js:167 +#: js/blocks/EnsembleBlocks.js:230 +#: js/blocks/EnsembleBlocks.js:316 +#: js/blocks/EnsembleBlocks.js:362 +#: js/blocks/EnsembleBlocks.js:400 +#: js/blocks/EnsembleBlocks.js:454 +#: js/blocks/EnsembleBlocks.js:504 +#: js/blocks/EnsembleBlocks.js:550 +#: js/blocks/EnsembleBlocks.js:597 +#: js/blocks/EnsembleBlocks.js:651 +#: js/blocks/EnsembleBlocks.js:763 +#: js/blocks/EnsembleBlocks.js:854 +#: js/blocks/EnsembleBlocks.js:915 +#: js/blocks/EnsembleBlocks.js:955 +#: js/blocks/EnsembleBlocks.js:1219 +#: js/blocks/EnsembleBlocks.js:1293 +#.TRANS: Yertle is the name of a turtle. +msgid "Yertle" +msgstr "यर्टल" -#: js/WidgetBlocks.js:179 -#.TRANS: rolloff is the steepness of a change in frequency. -msgid "Rolloff value should be either -12, -24, -48, or -96 decibels/octave." -msgstr "रोलऑफ मूल्य -12, -24, -48, या -96 डेसिबल्स/ऑक्टेव होना चाहिए।" +#: js/blocks/EnsembleBlocks.js:92 +#: js/blocks/EnsembleBlocks.js:1089 +msgid "turtle name" +msgstr "कछुआ नाम" -#: js/WidgetBlocks.js:211 -msgid "The Temperament tool is used to define custom tuning." -msgstr "टेम्पेरमेंट टूल का उपयोग कस्टम ट्यूनिंग को निर्धारित करने के लिए किया जाता है।" +#: js/blocks/EnsembleBlocks.js:122 +#: js/blocks/EnsembleBlocks.js:1197 +#: js/blocks/HeapBlocks.js:474 +#: js/blocks/HeapBlocks.js:572 +msgid "Index must be > 0." +msgstr "सूची 0 से अधिक होनी चाहिए।" -#: js/WidgetBlocks.js:277 -#: js/sampler.js:329 -msgid "Upload a sample and adjust its pitch center." -msgstr "एक सैंपल अपलोड करें और इसके पिच केंद्र को समायोजित करें।" +#: js/blocks/EnsembleBlocks.js:127 +#: js/blocks/HeapBlocks.js:479 +#: js/blocks/HeapBlocks.js:577 +msgid "Maximum heap size is 1000." +msgstr "अधिकतम हीप आकार 1000 है।" -#: js/WidgetBlocks.js:284 -#.TRANS: the speed at music is should be played. -msgid "sampler" -msgstr "सैम्पलर" +#: js/blocks/EnsembleBlocks.js:145 +msgid "stop mouse" +msgstr "माउस रोकें" -#: js/WidgetBlocks.js:329 -#: js/WidgetBlocks.js:334 -#: js/IntervalsBlocks.js:928 -#: js/VolumeBlocks.js:411 -#: js/ToneBlocks.js:946 -#: js/VolumeActions.js:218 -#: js/musicutils.js:704 -#: js/musicutils.js:755 -#: js/musicutils.js:798 -#: js/musicutils.js:820 -#: js/musicutils.js:1136 -#: js/synthutils.js:118 -#: js/modewidget.js:919 -#.TRANS: customize voice -msgid "custom" -msgstr "अनुकूलित" +#: js/blocks/EnsembleBlocks.js:147 +msgid "The Stop mouse block stops the specified mouse." +msgstr "स्पष्ट किए गए माउस को रोक देता है।" -#: js/WidgetBlocks.js:432 -msgid "The Meter block opens a tool to select strong beats for the meter." -msgstr "मीटर ब्लॉक एक टूल" +#: js/blocks/EnsembleBlocks.js:158 +msgid "stop turtle" +msgstr "टर्टल रोकें" -#: js/WidgetBlocks.js:473 -msgid "The oscilloscope block opens a tool to visualize waveforms." -msgstr "ऑसिलोस्कोप ब्लॉक एक उपकरण खोलता है जिससे तरंगरूप दृष्टिकोण को दृष्टिगत किया जा सकता है।" +#: js/blocks/EnsembleBlocks.js:160 +msgid "The Stop turtle block stops the specified turtle." +msgstr "स्पष्ट किए गए कछुए को रोक देता है।" -#: js/WidgetBlocks.js:478 -msgid "oscilloscope" -msgstr "ऑसिलोस्कोप" +#: js/blocks/EnsembleBlocks.js:184 +#: js/blocks/EnsembleBlocks.js:247 +#: js/blocks/EnsembleBlocks.js:413 +#: js/blocks/EnsembleBlocks.js:468 +#: js/blocks/EnsembleBlocks.js:706 +#: js/blocks/EnsembleBlocks.js:808 +#: js/blocks/EnsembleBlocks.js:870 +#: js/blocks/EnsembleBlocks.js:1190 +#: js/blocks/EnsembleBlocks.js:1253 +msgid "Cannot find mouse" +msgstr "माउस नहीं मिल सकता" -#: js/WidgetBlocks.js:530 -msgid "The Custom mode block opens a tool to explore musical mode (the spacing of the notes in a scale)." -msgstr "कस्टम मोड ब्लॉक एक उपकरण खोलता है जिससे संगीतिक मोड (स्केल में नोट्स की जगह) का अन्वेषण किया जा सकता है।" +#: js/blocks/EnsembleBlocks.js:186 +#: js/blocks/EnsembleBlocks.js:249 +#: js/blocks/EnsembleBlocks.js:415 +#: js/blocks/EnsembleBlocks.js:470 +#: js/blocks/EnsembleBlocks.js:708 +#: js/blocks/EnsembleBlocks.js:810 +#: js/blocks/EnsembleBlocks.js:872 +#: js/blocks/EnsembleBlocks.js:1192 +#: js/blocks/EnsembleBlocks.js:1255 +msgid "Cannot find turtle" +msgstr "कछुआ नहीं मिल सकता" -#: js/WidgetBlocks.js:536 -#.TRANS: musical mode is the pattern of half-steps in an octave, e.g., Major or Minor modes -msgid "custom mode" -msgstr "कस्टम मोड" +#: js/blocks/EnsembleBlocks.js:206 +msgid "start mouse" +msgstr "माउस शुरू करें" -#: js/WidgetBlocks.js:570 -msgid "The Tempo block opens a metronome to visualize the beat." -msgstr "टेम्पो ब्लॉक एक मेट्रोनोम खोलता है जिससे बीट को दृष्टिगत किया जा सकता है।" +#: js/blocks/EnsembleBlocks.js:209 +msgid "The Start mouse block starts the specified mouse." +msgstr "स्पष्ट किए गए माउस को शुरू करता है।" -#: js/WidgetBlocks.js:617 -msgid "The Arpeggio Widget is used to compose chord sequences." -msgstr "आरपेजियो विजेट का उपयोग एकॉर्ड सीक्वेंस कंपोज करने के लिए किया जाता है।" +#: js/blocks/EnsembleBlocks.js:220 +msgid "start turtle" +msgstr "टरटल चालू करें" -#: js/WidgetBlocks.js:623 -#: js/IntervalsBlocks.js:683 -msgid "arpeggio" -msgstr "आरपेजियो" +#: js/blocks/EnsembleBlocks.js:223 +msgid "The Start turtle block starts the specified turtle." +msgstr "स्टार्ट टरटल ब्लॉक निर्दिष्ट की गई कछुआ को शुरू करता है।" -#: js/WidgetBlocks.js:677 -msgid "The Pitch drum matrix is used to map pitches to drum sounds." -msgstr "पिच ड्रम मैट्रिक्स का उपयोग पिच को ड्रम साउंड्स से मैप करने के लिए किया जाता है।" +#: js/blocks/EnsembleBlocks.js:256 +msgid "Mouse is already running." +msgstr "माउस पहले से ही चल रहा है।" -#: js/WidgetBlocks.js:682 -#.TRANS: makes a mapping between pitches and drum sounds -msgid "pitch-drum mapper" -msgstr "पिच-ड्रम मैपर" +#: js/blocks/EnsembleBlocks.js:258 +msgid "Turtle is already running." +msgstr "टरटल पहले से ही चल रहा है।" -#: js/WidgetBlocks.js:724 -msgid "You must have at least one pitch block and one drum block in the matrix." -msgstr "मैट्रिक्स में कम से कम एक पिच ब्लॉक और एक ड्रम ब्लॉक होना चाहिए।" +#: js/blocks/EnsembleBlocks.js:282 +msgid "Cannot find start block" +msgstr "स्टार्ट ब्लॉक नहीं मिल सकता" -#: js/WidgetBlocks.js:746 -msgid "The Pitch slider tool to is used to generate pitches at selected frequencies." -msgstr "" +#: js/blocks/EnsembleBlocks.js:292 +#.TRANS: pen color for this mouse +msgid "mouse color" +msgstr "माउस कलर" -#: js/WidgetBlocks.js:751 -#.TRANS: widget to generate pitches using a slider -msgid "pitch slider" -msgstr "पिच स्लाइडर" +#: js/blocks/EnsembleBlocks.js:294 +msgid "The Mouse color block returns the pen color of the specified mouse." +msgstr "माउस कलर ब्लॉक निर्दिष्ट माउस का पेन कलर वापस करता है।" -#: js/WidgetBlocks.js:788 -msgid "chromatic keyboard" -msgstr "क्रोमेटिक कीबोर्ड" +#: js/blocks/EnsembleBlocks.js:306 +#.TRANS: pen color for this turtle +msgid "turtle color" +msgstr "कछुआ कलर" -#: js/WidgetBlocks.js:815 -#: js/WidgetBlocks.js:874 -#.TRANS: widget to generate pitches using a slider -msgid "music keyboard" -msgstr "संगीत कीबोर्ड" +#: js/blocks/EnsembleBlocks.js:308 +msgid "The Turtle color block returns the pen color of the specified turtle." +msgstr "कछुआ कलर ब्लॉक निर्दिष्ट कछुए का पेन कलर वापस करता है।" -#: js/WidgetBlocks.js:859 -#: js/WidgetBlocks.js:866 -msgid "The Music keyboard block opens a piano keyboard that can be used to create notes." -msgstr "संगीत कीबोर्ड ब्लॉक एक पियानो कीबोर्ड खोलता है जिससे नोट बनाने के लिए उपयोग किया जा सकता है।" +#: js/blocks/EnsembleBlocks.js:338 +#.TRANS: heading (compass direction) for this mouse +msgid "mouse heading" +msgstr "माउस हेडिंग" -#: js/WidgetBlocks.js:910 -msgid "The Pitch staircase tool to is used to generate pitches from a given ratio." -msgstr "" +#: js/blocks/EnsembleBlocks.js:340 +msgid "The Mouse heading block returns the heading of the specified mouse." +msgstr "माउस हेडिंग ब्लॉक निर्दिष्ट माउस की हेडिंग वापस करता है।" -#: js/WidgetBlocks.js:917 -#.TRANS: generate a progressive sequence of pitches -msgid "pitch staircase" -msgstr "पिच स्टेयरकेस" +#: js/blocks/EnsembleBlocks.js:352 +#.TRANS: heading (compass direction) for this turtle +msgid "turtle heading" +msgstr "कछुआ हेडिंग" -#: js/WidgetBlocks.js:982 -msgid "The Rhythm Maker block opens a tool to create drum machines." -msgstr "रिदम मेकर ब्लॉक एक उपकरण खोलता है जिससे ड्रम मशीन बनाई जा सकती है।" +#: js/blocks/EnsembleBlocks.js:354 +msgid "The Turtle heading block returns the heading of the specified turtle." +msgstr "कछुआ हेडिंग ब्लॉक निर्दिष्ट कछुए की हेडिंग वापस करता है।" -#: js/WidgetBlocks.js:1036 -msgid "G major scale" -msgstr "जी मेजर स्केल" +#: js/blocks/EnsembleBlocks.js:384 +#: js/blocks/EnsembleBlocks.js:439 +#.TRANS: set xy position for this mouse +msgid "set mouse" +msgstr "माउस सेट करें" -#: js/WidgetBlocks.js:1064 -msgid "C major scale" -msgstr "सी मेजर स्केल" +#: js/blocks/EnsembleBlocks.js:391 +#: js/blocks/EnsembleBlocks.js:402 +#: js/blocks/GraphicsBlocks.js:235 +#: js/blocks/GraphicsBlocks.js:313 +#: js/blocks/GraphicsBlocks.js:436 +#: js/blocks/GraphicsBlocks.js:487 +#: js/blocks/GraphicsBlocks.js:534 +#: js/blocks/GraphicsBlocks.js:750 +#: js/blocks/ProgramBlocks.js:881 +msgid "x" +msgstr "एक्स" -#: js/WidgetBlocks.js:1097 -msgid "The Phrase Maker block opens a tool to create musical phrases." -msgstr "फ्रेज मेकर ब्लॉक एक उपकरण खोलता है जिससे संगीतिक वाक्य बनाए जा सकते हैं।" +#: js/blocks/EnsembleBlocks.js:391 +#: js/blocks/EnsembleBlocks.js:402 +#: js/blocks/GraphicsBlocks.js:149 +#: js/blocks/GraphicsBlocks.js:313 +#: js/blocks/GraphicsBlocks.js:436 +#: js/blocks/GraphicsBlocks.js:487 +#: js/blocks/GraphicsBlocks.js:534 +#: js/blocks/GraphicsBlocks.js:750 +#: js/blocks/ProgramBlocks.js:881 +msgid "y" +msgstr "वाई" -#: js/WidgetBlocks.js:1104 -#.TRANS: assigns pitch to a sequence of beats to generate a melody -msgid "phrase maker" -msgstr "वाक्य निर्माता" +#: js/blocks/EnsembleBlocks.js:395 +#: js/blocks/EnsembleBlocks.js:452 +#.TRANS: set xy position for this turtle +msgid "set turtle" +msgstr "कछुआ सेट करें" -#: js/WidgetBlocks.js:1168 -msgid "You must have at least one pitch block and one rhythm block in the matrix." -msgstr "मैट्रिक्स में कम से कम एक पिच ब्लॉक और एक रिदम ब्लॉक होना चाहिए।" +#: js/blocks/EnsembleBlocks.js:433 +msgid "The Set mouse block sends a stack of blocks to be run by the specified mouse." +msgstr "सेट माउस ब्लॉक एक स्टैक ब्लॉक को निर्दिष्ट माउस द्वारा चलाए जाने के लिए भेजता है।" -#: js/WidgetBlocks.js:1220 -msgid "The Status block opens a tool for inspecting the status of Music Blocks as it is running." -msgstr "स्थिति ब्लॉक एक उपकरण खोलता है जिससे चल रहे संगीत ब्लॉक्स की स्थिति की जाँच की जा सकती है।" +#: js/blocks/EnsembleBlocks.js:446 +msgid "The Set turtle block sends a stack of blocks to be run by the specified turtle." +msgstr "सेट कछुआ ब्लॉक एक स्टैक ब्लॉक को निर्दिष्ट कछुआ द्वारा चलाए जाने के लिए भेजता है।" -#: js/IntervalsBlocks.js:45 -msgid "set temperament" -msgstr "ताम्बुल सेट करें" +#: js/blocks/EnsembleBlocks.js:480 +#.TRANS: y position for this mouse +msgid "mouse y" +msgstr "माउस वाई" -#: js/IntervalsBlocks.js:63 -#: js/MediaBlocks.js:746 -#: js/PitchBlocks.js:657 -#: js/PitchBlocks.js:933 -#: js/PitchBlocks.js:972 -#: js/PitchBlocks.js:1005 -#: js/PitchBlocks.js:1166 -#: js/PitchBlocks.js:1679 -#: js/PitchBlocks.js:1720 -#: js/PitchBlocks.js:1827 -#: js/ToneBlocks.js:1025 -#.TRANS: adjusts the shift up or down by one octave (twelve half-steps in the interval between two notes, one having twice or half the frequency in Hz of the other.) -msgid "octave" -msgstr "ऑक्टेव" +#: js/blocks/EnsembleBlocks.js:482 +msgid "The Y mouse block returns the Y position of the specified mouse." +msgstr "Y माउस ब्लॉक निर्दिष्ट माउस की Y स्थिति वापस करता है।" -#: js/IntervalsBlocks.js:99 -msgid "The Temperament name block is used to select a tuning method." -msgstr "ताम्बुल नाम ब्लॉक का उपयोग एक सुर की विधि का चयन करने के लिए किया जाता है।" +#: js/blocks/EnsembleBlocks.js:494 +#.TRANS: y position for this turtle +msgid "turtle y" +msgstr "कछुआ वाई" -#: js/IntervalsBlocks.js:161 -msgid "doubly" -msgstr "दोगुना" +#: js/blocks/EnsembleBlocks.js:496 +msgid "The Y turtle block returns the Y position of the specified turtle." +msgstr "Y कछुआ ब्लॉक निर्दिष्ट कछुए की Y स्थिति वापस करता है।" -#: js/IntervalsBlocks.js:166 -msgid "The Doubly block will double the size of an interval." -msgstr "डबली ब्लॉक एक इंटरवल का आकार दोगुना करेगा।" +#: js/blocks/EnsembleBlocks.js:526 +#.TRANS: x position for this mouse +msgid "mouse x" +msgstr "माउस एक्स" -#: js/IntervalsBlocks.js:262 -msgid "interval number" -msgstr "इंटरवल संख्या" +#: js/blocks/EnsembleBlocks.js:528 +msgid "The X mouse block returns the X position of the specified mouse." +msgstr "X माउस ब्लॉक निर्दिष्ट माउस की X स्थिति वापस करता है।" -#: js/IntervalsBlocks.js:330 -#.TRANS: measure the distance between two pitches in semi-tones -msgid "semi-tone interval measure" -msgstr "सेमी-टोन इंटरवल माप" +#: js/blocks/EnsembleBlocks.js:540 +#.TRANS: x position for this turtle +msgid "turtle x" +msgstr "कछुआ एक्स" -#: js/IntervalsBlocks.js:397 -#: js/IntervalsBlocks.js:513 -msgid "You must use two pitch blocks when measuring an interval." -msgstr "आपको एक इंटरवल को मापते समय दो पिच ब्लॉक्स का उपयोग करना होगा।" +#: js/blocks/EnsembleBlocks.js:542 +msgid "The X turtle block returns the X position of the specified turtle." +msgstr "X कछुआ ब्लॉक निर्दिष्ट कछुए की X स्थिति वापस करता है।" -#: js/IntervalsBlocks.js:439 -msgid "The Scalar interval block measures the distance between two notes in the current key and mode." -msgstr "स्केलर इंटरवल ब्लॉक वर्तमान कुंजी और मोड में दो नोट्स के बीच की दूरी को मापता है।" +#: js/blocks/EnsembleBlocks.js:573 +#.TRANS: notes played by this mouse +msgid "mouse notes played" +msgstr "माउस बजाए गए स्वर" -#: js/IntervalsBlocks.js:445 -#.TRANS: measure the distance between two pitches in steps of musical scale -msgid "scalar interval measure" -msgstr "स्केलर इंटरवल माप" +#: js/blocks/EnsembleBlocks.js:575 +msgid "The Mouse elapse notes block returns the number of notes played by the specified mouse." +msgstr "माउस इलैप्स स्वर ब्लॉक निर्दिष्ट माउस द्वारा बजाए गए स्वरों की संख्या वापस करता है।" -#: js/IntervalsBlocks.js:592 -#: js/musicutils.js:637 -#: js/musicutils.js:908 -#.TRANS: perfect is a music term related to intervals -msgid "perfect" -msgstr "पूर्ण" +#: js/blocks/EnsembleBlocks.js:587 +#.TRANS: notes played by this turtle +msgid "turtle notes played" +msgstr "कछुआ बजाए गए स्वर" -#: js/IntervalsBlocks.js:621 -msgid "In the figure, we add sol# to sol." -msgstr "चित्र में, हम sol# को sol में जोड़ते हैं।" +#: js/blocks/EnsembleBlocks.js:589 +msgid "The Turtle elapse notes block returns the number of notes played by the specified turtle." +msgstr "कछुआ इलैप्स स्वर ब्लॉक निर्दिष्ट कछुए द्वारा बजाए गए स्वरों की संख्या वापस करता है।" -#: js/IntervalsBlocks.js:627 -#: js/OrnamentBlocks.js:220 -#.TRANS: calculate a relative step between notes based on semi-tones -msgid "semi-tone interval" -msgstr "सेमी-टोन इंटरवल" +#: js/blocks/EnsembleBlocks.js:627 +#.TRANS: convert current note for this turtle to piano key (1-88) +msgid "mouse pitch number" +msgstr "माउस पिच नंबर" -#: js/IntervalsBlocks.js:676 -msgid "The output of the example is: do, mi, sol, sol, ti, mi" -msgstr "उदाहरण का आउटपुट है: do, mi, sol, sol, ti, mi" +#: js/blocks/EnsembleBlocks.js:629 +msgid "The Mouse pitch block returns the current pitch number being played by the specified mouse." +msgstr "माउस पिच ब्लॉक विशिष्ट माउस द्वारा बजाए जा रहे वर्तमान पिच नंबर को वापस करता है।" -#: js/IntervalsBlocks.js:735 -msgid "The Chord block calculates common chords." -msgstr "कॉर्ड ब्लॉक सामान्य कॉर्ड की गणना करता है।" +#: js/blocks/EnsembleBlocks.js:641 +#.TRANS: convert current note for this turtle to piano key (1-88) +msgid "turtle pitch number" +msgstr "कछुआ पिच नंबर" -#: js/IntervalsBlocks.js:737 -msgid "In the figure, we generate a C-major chord." -msgstr "चित्र में, हम C मेजर कॉर्ड बनाते हैं।" +#: js/blocks/EnsembleBlocks.js:643 +msgid "The Turtle pitch block returns the current pitch number being played by the specified turtle." +msgstr "टर्टल पिच ब्लॉक विशिष्ट कछुआ द्वारा बजाए जा रहे वर्तमान पिच नंबर को वापस करता है।" -#: js/IntervalsBlocks.js:742 -msgid "chord" -msgstr "कॉर्ड" +#: js/blocks/EnsembleBlocks.js:747 +#: js/blocks/EnsembleBlocks.js:819 +#.TRANS: note value is the duration of the note played by this mouse +msgid "mouse note value" +msgstr "माउस नोट मूल्य" -#: js/IntervalsBlocks.js:794 -msgid "The Ratio Interval block calculates an interval based on a ratio." -msgstr "अनुपात इंटरवल ब्लॉक एक अनुपात पर आधारित इंटरवल की गणना करता है।" +#: js/blocks/EnsembleBlocks.js:757 +#.TRANS: note value is the duration of the note played by this turtle +msgid "turtle note value" +msgstr "कछुआ नोट मूल्य" -#: js/IntervalsBlocks.js:799 -msgid "ratio interval" -msgstr "अनुपात इंटरवल" +#: js/blocks/EnsembleBlocks.js:830 +#.TRANS: sync is short for synchronization +msgid "mouse sync" +msgstr "माउस सिंक" -#: js/IntervalsBlocks.js:868 -msgid "In the figure, we add la to sol." -msgstr "चित्र में, हम la को sol में जोड़ते हैं।" +#: js/blocks/EnsembleBlocks.js:832 +msgid "The Mouse sync block aligns the beat count between mice." +msgstr "माउस सिंक ब्लॉक माउस के बीट गिनती को समरेखित करता है।" -#: js/IntervalsBlocks.js:924 -#.TRANS: define a custom mode -msgid "define mode" -msgstr "मोड परिभाषित करें" +#: js/blocks/EnsembleBlocks.js:844 +#.TRANS: sync is short for synchronization +msgid "turtle sync" +msgstr "कछुआ सिंक" -#: js/IntervalsBlocks.js:977 -msgid "movable Do" -msgstr "मूवेबल डो" +#: js/blocks/EnsembleBlocks.js:846 +msgid "The Turtle sync block aligns the beat count between turtles." +msgstr "टर्टल सिंक ब्लॉक कछुओं के बीट गिनती को समरेखित करता है।" -#: js/IntervalsBlocks.js:1028 -#.TRANS: mode length is the number of notes in the mode, e.g., 7 for major and minor scales; 12 for chromatic scales -msgid "mode length" -msgstr "मोड लंबाई" +#: js/blocks/EnsembleBlocks.js:887 +msgid "The Found mouse block will return true if the specified mouse can be found." +msgstr "फाउंड माउस ब्लॉक विशिष्ट माउस को पहचाना जा सकता है तो सत्य वापस करेगा।" -#: js/IntervalsBlocks.js:1037 -msgid "The Mode length block is the number of notes in the current scale." -msgstr "मोड लंबाई ब्लॉक मौजूदा स्केल में स्वरों की संख्या है।" +#: js/blocks/EnsembleBlocks.js:893 +msgid "found mouse" +msgstr "मिला हुआ माउस" -#: js/IntervalsBlocks.js:1039 -msgid "Most Western scales have 7 notes." -msgstr "अधिकांश पश्चिमी स्केल में 7 स्वर होते हैं।" +#: js/blocks/EnsembleBlocks.js:903 +msgid "The Found turtle block will return true if the specified turtle can be found." +msgstr "फाउंड टर्टल ब्लॉक विशिष्ट कछुआ को पहचाना जा सकता है तो सत्य वापस करेगा।" -#: js/IntervalsBlocks.js:1088 -#.TRANS: the mode in music is 'major', 'minor', etc. -msgid "current mode" -msgstr "वर्तमान मोड" +#: js/blocks/EnsembleBlocks.js:909 +msgid "found turtle" +msgstr "मिला हुआ कछुआ" -#: js/IntervalsBlocks.js:1141 -#.TRANS: the key is a group of pitches with which a music composition is created -msgid "current key" -msgstr "वर्तमान कुंजी" +#: js/blocks/EnsembleBlocks.js:932 +msgid "new mouse" +msgstr "नया माउस" -#: js/IntervalsBlocks.js:1193 -#: js/IntervalsBlocks.js:1238 -#.TRANS: set the key and mode, e.g. C Major -msgid "set key" -msgstr "कुंजी सेट करें" +#: js/blocks/EnsembleBlocks.js:934 +msgid "The New mouse block will create a new mouse." +msgstr "नया माउस ब्लॉक नया माउस बनाएगा।" -#: js/IntervalsBlocks.js:1247 -#: js/IntervalsBlocks.js:1253 -msgid "The Set key block is used to set the key and mode," -msgstr "सेट कुंजी ब्लॉक का उपयोग कुंजी और मोड सेट करने के लिए किया जाता है," +#: js/blocks/EnsembleBlocks.js:945 +msgid "new turtle" +msgstr "नया कछुआ" -#: js/IntervalsBlocks.js:1253 -msgid "eg C Major" -msgstr "" +#: js/blocks/EnsembleBlocks.js:947 +msgid "The New turtle block will create a new turtle." +msgstr "नया टर्टल ब्लॉक नया कछुआ बनाएगा।" -#: js/IntervalsBlocks.js:1266 -#: js/DictBlocks.js:215 -#: js/DictBlocks.js:216 -#: js/DictBlocks.js:289 -#: js/DictBlocks.js:290 -#: js/DictBlocks.js:357 -#: js/DictBlocks.js:430 -#: js/DictBlocks.js:431 -#.TRANS: key, e.g., C in C Major -msgid "key" -msgstr "कुंजी" +#: js/blocks/EnsembleBlocks.js:1011 +msgid "set mouse color" +msgstr "माउस का रंग सेट करें" -#: js/ActionBlocks.js:58 -msgid "The Return block will return a value from an action." -msgstr "रिटर्न ब्लॉक एक क्रिया से मूल्य लौटाएगा।" +#: js/blocks/EnsembleBlocks.js:1014 +msgid "The Set-mouse-color block is used to set the color of a mouse." +msgstr "सेट-माउस-कलर ब्लॉक का उपयोग माउस के रंग को सेट करने के लिए किया जाता है।" -#: js/ActionBlocks.js:75 -msgid "return" -msgstr "लौटाएं" +#: js/blocks/EnsembleBlocks.js:1020 +msgid "set turtle color" +msgstr "कछुआ का रंग सेट करें" -#: js/ActionBlocks.js:128 -msgid "The Return to URL block will return a value to a webpage." -msgstr "रिटर्न टू यूआरएल ब्लॉक एक मूल्य को एक वेबपेज को लौटाएगा।" +#: js/blocks/EnsembleBlocks.js:1023 +msgid "The Set-turtle-color block is used to set the color of a turtle." +msgstr "सेट-टर्टल-कलर ब्लॉक का उपयोग कछुआ के रंग को सेट करने के लिए किया जाता है।" -#: js/ActionBlocks.js:145 -msgid "return to URL" -msgstr "यूआरएल पर लौटाएं" +#: js/blocks/EnsembleBlocks.js:1083 +msgid "The Mouse-name block returns the name of a mouse." +msgstr "माउस-नेम ब्लॉक एक माउस का नाम वापस करता है।" -#: js/ActionBlocks.js:233 -#: js/ActionBlocks.js:290 -#: js/ActionBlocks.js:501 -#: js/ActionBlocks.js:688 -msgid "The Calculate block returns a value calculated by an action." -msgstr "कैलक्यूलेट ब्लॉक एक क्रिया द्वारा गणना किए गए मूल्य को लौटाता है।" +#: js/blocks/EnsembleBlocks.js:1092 +msgid "The Turtle-name block returns the name of a turtle." +msgstr "टर्टल-नेम ब्लॉक एक कछुआ का नाम वापस करता है।" -#: js/ActionBlocks.js:251 -#: js/ActionBlocks.js:517 -#: js/ActionBlocks.js:707 -msgid "calculate" -msgstr "गणना" +#: js/blocks/EnsembleBlocks.js:1115 +msgid "mouse count" +msgstr "माउस गणना" -#: js/ActionBlocks.js:376 -#: js/ActionBlocks.js:593 -#: js/ActionBlocks.js:942 -#: js/ActionBlocks.js:1389 -#.TRANS: do is the do something or take an action. -msgid "The Do block is used to initiate an action." -msgstr "डू ब्लॉक का उपयोग क्रिया आरंभ करने के लिए किया जाता है।" +#: js/blocks/EnsembleBlocks.js:1118 +msgid "The Mouse-count block returns the number of mice." +msgstr "माउस-काउंट ब्लॉक माउस की संख्या वापस करता है।" -#: js/ActionBlocks.js:390 -#: js/ActionBlocks.js:610 -#: js/ActionBlocks.js:959 -#: js/ActionBlocks.js:1048 -#: js/MeterBlocks.js:769 -msgid "do1" -msgstr "" +#: js/blocks/EnsembleBlocks.js:1124 +msgid "turtle count" +msgstr "कछुआ गणना" -#: js/ActionBlocks.js:390 -#: js/ActionBlocks.js:610 -#: js/ActionBlocks.js:959 -#: js/ActionBlocks.js:1048 -#: js/FlowBlocks.js:742 -#: js/FlowBlocks.js:822 -#: js/MeterBlocks.js:769 -msgid "do" -msgstr "करें" +#: js/blocks/EnsembleBlocks.js:1127 +msgid "The Turtle-count block returns the number of turtles." +msgstr "टर्टल-काउंट ब्लॉक कछुओं की संख्या वापस करता है।" -#: js/ActionBlocks.js:791 -#: js/ActionBlocks.js:865 -msgid "The Arg block contains the value of an argument passed to an action." -msgstr "आर्ग ब्लॉक में एक क्रिया को पारित किए गए एक तर्क का मूल्य होता है।" +#: js/blocks/EnsembleBlocks.js:1149 +msgid "nth mouse name" +msgstr "एनथ माउस नाम" -#: js/ActionBlocks.js:806 -#: js/ActionBlocks.js:878 -msgid "arg" -msgstr "तर्क" +#: js/blocks/EnsembleBlocks.js:1152 +msgid "The Nth-Mouse name block returns the name of the nth mouse." +msgstr "एनथ-माउस-नेम ब्लॉक एनथ माउस का नाम वापस करता है।" -#: js/ActionBlocks.js:836 -#: js/ActionBlocks.js:900 -#: js/ActionBlocks.js:908 -msgid "Invalid argument" -msgstr "अवैध तर्क" +#: js/blocks/EnsembleBlocks.js:1158 +msgid "nth turtle name" +msgstr "एनथ कछुआ नाम" -#: js/ActionBlocks.js:944 -msgid "In the example, it is used with the One of block to choose a random phase." -msgstr "उदाहरण में, यह वन ऑफ ब्लॉक के साथ एक यादृच्छिक चरण चयन करने के लिए उपयोग किया गया है।" +#: js/blocks/EnsembleBlocks.js:1161 +msgid "The Nth-Turtle name block returns the name of the nth turtle." +msgstr "एनथ-टर्टल-नेम ब्लॉक एनथ कछुआ का नाम वापस करता है।" -#: js/ActionBlocks.js:1019 -#: js/ActionBlocks.js:1026 -msgid "The Listen block is used to listen for an event such as a mouse click." -msgstr "लिसन ब्लॉक का उपयोग एक घटना के लिए सुनने के लिए किया जाता है, जैसे कि माउस क्लिक।" +#: js/blocks/EnsembleBlocks.js:1205 +#: js/blocks/EnsembleBlocks.js:1265 +msgid "set name" +msgstr "नाम सेट करें" -#: js/ActionBlocks.js:1028 -msgid "When the event happens, an action is taken." -msgstr "जब घटना होती है, तो क्रिया की जाती है।" +#: js/blocks/EnsembleBlocks.js:1214 +#: js/blocks/EnsembleBlocks.js:1221 +msgid "source" +msgstr "स्रोत" -#: js/ActionBlocks.js:1045 -msgid "on" -msgstr "पर" +#: js/blocks/EnsembleBlocks.js:1214 +#: js/blocks/EnsembleBlocks.js:1221 +msgid "target" +msgstr "लक्ष्य" -#: js/ActionBlocks.js:1048 -#: js/ActionBlocks.js:1049 -#: js/ActionBlocks.js:1153 -msgid "event" -msgstr "घटना" +#: js/blocks/EnsembleBlocks.js:1271 +msgid "The Set-name block is used to name a mouse." +msgstr "सेट-नेम ब्लॉक का उपयोग माउस का नाम रखने के लिए किया जाता है।" -#: js/ActionBlocks.js:1133 -msgid "The Broadcast block is used to trigger an event." -msgstr "ब्रॉडकास्ट ब्लॉक एक घटना को ट्रिगर करने के लिए किया जाता है।" +#: js/blocks/EnsembleBlocks.js:1284 +msgid "The Set-name block is used to name a turtle." +msgstr "सेट-नेम ब्लॉक का उपयोग कछुआ का नाम रखने के लिए किया जाता है।" -#: js/ActionBlocks.js:1151 -msgid "broadcast" -msgstr "प्रसारण" +#: js/blocks/ExtrasBlocks.js:33 +msgid "fraction" +msgstr "अंश" -#: js/ActionBlocks.js:1208 -msgid "Each Start block is a separate voice." -msgstr "प्रत्येक स्टार्ट ब्लॉक एक अलग आवाज है।" +#: js/blocks/ExtrasBlocks.js:36 +msgid "Convert a float to a fraction" +msgstr "एक फ़्लोट को एक अंश में परिवर्तित करें" -#: js/ActionBlocks.js:1304 -msgid "It is often used for storing a phrase of music that is repeated." -msgstr "इसे अक्सर एक बार फिराया जाने वाले संगीत के वाक्य को स्टोर करने के लिए उपयोग किया जाता है।" +#: js/blocks/ExtrasBlocks.js:93 +msgid "save as ABC" +msgstr "ABC के रूप में सहेजें" -#: js/ActionBlocks.js:1495 -msgid "define temperament" -msgstr "ताम्बुल निर्धारित करें" +#: js/blocks/ExtrasBlocks.js:96 +#: js/blocks/ExtrasBlocks.js:132 +#: js/blocks/ExtrasBlocks.js:168 +msgid "title" +msgstr "शीर्षक" -#: js/EnsembleBlocks.js:66 -msgid "mouse index heap" -msgstr "माउस सूची भंडार" +#: js/blocks/ExtrasBlocks.js:129 +msgid "save as Lilypond" +msgstr "Lilypond के रूप में सहेजें" -#: js/EnsembleBlocks.js:68 -msgid "The Mouse index heap block returns a value in the heap at a specified location for a specified mouse." -msgstr "माउस इंडेक्स हीप ब्लॉक एक निर्दिष्ट स्थान पर एक निर्दिष्ट माउस के लिए हीप में एक मूल्य लौटाता है।" +#: js/blocks/ExtrasBlocks.js:165 +msgid "save as SVG" +msgstr "SVG के रूप में सहेजें" -#: js/EnsembleBlocks.js:77 -#: js/EnsembleBlocks.js:1080 -msgid "mouse name" -msgstr "माउस नाम" +#: js/blocks/ExtrasBlocks.js:216 +msgid "no background" +msgstr "कोई पृष्ठभूमि नहीं" -#: js/EnsembleBlocks.js:77 -#: js/EnsembleBlocks.js:92 -#: js/HeapBlocks.js:544 -#.TRANS: value1 is a numeric value (JAPANESE ONLY) -msgid "index" -msgstr "सूची" +#: js/blocks/ExtrasBlocks.js:219 +msgid "The No background block eliminates the background from the saved SVG output." +msgstr "नो बैकग्राउंड ब्लॉक निर्बाध एसवीजी आउटपुट से पृष्ठभूमि को हटा देता है।" -#: js/EnsembleBlocks.js:80 -msgid "turtle index heap" -msgstr "टर्टल सूची भंडार" +#: js/blocks/ExtrasBlocks.js:247 +msgid "show blocks" +msgstr "पिण्ड दिखाएँ" -#: js/EnsembleBlocks.js:82 -msgid "The Turtle index heap block returns a value in the heap at a specified location for a specified turtle." -msgstr "टर्टल इंडेक्स हीप ब्लॉक एक निर्दिष्ट स्थान पर एक निर्दिष्ट कछुआ के लिए हीप में एक मूल्य लौटाता है।" +#: js/blocks/ExtrasBlocks.js:249 +msgid "The Show blocks block shows the blocks." +msgstr "शो ब्लॉक्स ब्लॉक ब्लॉक्स दिखाता है।" -#: js/EnsembleBlocks.js:90 -#: js/EnsembleBlocks.js:167 -#: js/EnsembleBlocks.js:230 -#: js/EnsembleBlocks.js:316 -#: js/EnsembleBlocks.js:362 -#: js/EnsembleBlocks.js:400 -#: js/EnsembleBlocks.js:454 -#: js/EnsembleBlocks.js:504 -#: js/EnsembleBlocks.js:550 -#: js/EnsembleBlocks.js:597 -#: js/EnsembleBlocks.js:651 -#: js/EnsembleBlocks.js:763 -#: js/EnsembleBlocks.js:854 -#: js/EnsembleBlocks.js:915 -#: js/EnsembleBlocks.js:955 -#: js/EnsembleBlocks.js:1219 -#: js/EnsembleBlocks.js:1293 -#.TRANS: Yertle is the name of a turtle. -msgid "Yertle" -msgstr "यर्टल" +#: js/blocks/ExtrasBlocks.js:274 +msgid "hide blocks" +msgstr "खण्ड छुपाएँ" -#: js/EnsembleBlocks.js:92 -#: js/EnsembleBlocks.js:1089 -msgid "turtle name" -msgstr "कछुआ नाम" +#: js/blocks/ExtrasBlocks.js:276 +msgid "The Hide blocks block hides the blocks." +msgstr "हाइड ब्लॉक्स ब्लॉक ब्लॉक्स छुपा देता है।" -#: js/EnsembleBlocks.js:122 -#: js/EnsembleBlocks.js:1197 -#: js/HeapBlocks.js:474 -#: js/HeapBlocks.js:572 -msgid "Index must be > 0." -msgstr "सूची 0 से अधिक होनी चाहिए।" +#: js/blocks/ExtrasBlocks.js:305 +#: js/blocks/ExtrasBlocks.js:338 +msgid "The Space block is used to add space between blocks." +msgstr "स्थान ब्लॉक ब्लॉक्स के बीच स्थान जोड़ने के लिए उपयोग किया जाता है।" -#: js/EnsembleBlocks.js:127 -#: js/HeapBlocks.js:479 -#: js/HeapBlocks.js:577 -msgid "Maximum heap size is 1000." -msgstr "अधिकतम हीप आकार 1000 है।" +#: js/blocks/ExtrasBlocks.js:376 +msgid "wait" +msgstr "इंतजार करें" -#: js/EnsembleBlocks.js:145 -msgid "stop mouse" -msgstr "माउस रोकें" +#: js/blocks/ExtrasBlocks.js:379 +msgid "The Wait block pauses the program for a specified number of seconds." +msgstr "वेट ब्लॉक निर्दिष्ट सेकंड के लिए कार्यक्रम को रोक देता है।" -#: js/EnsembleBlocks.js:147 -msgid "The Stop mouse block stops the specified mouse." -msgstr "स्पष्ट किए गए माउस को रोक देता है।" +#: js/blocks/ExtrasBlocks.js:433 +#: plugins/facebook.rtp:30 +msgid "comment" +msgstr "टिप्पणी" -#: js/EnsembleBlocks.js:158 -msgid "stop turtle" -msgstr "टर्टल रोकें" +#: js/blocks/ExtrasBlocks.js:469 +msgid "print" +msgstr "छापें" -#: js/EnsembleBlocks.js:160 -msgid "The Stop turtle block stops the specified turtle." -msgstr "स्पष्ट किए गए कछुए को रोक देता है।" +#: js/blocks/ExtrasBlocks.js:476 +msgid "The Print block displays text at the top of the screen." +msgstr "प्रिंट ब्लॉक स्क्रीन के शीर्ष पर पाठ दिखाता है।" -#: js/EnsembleBlocks.js:184 -#: js/EnsembleBlocks.js:247 -#: js/EnsembleBlocks.js:413 -#: js/EnsembleBlocks.js:468 -#: js/EnsembleBlocks.js:706 -#: js/EnsembleBlocks.js:808 -#: js/EnsembleBlocks.js:870 -#: js/EnsembleBlocks.js:1190 -#: js/EnsembleBlocks.js:1253 -msgid "Cannot find mouse" -msgstr "माउस नहीं मिल सकता" +#: js/blocks/ExtrasBlocks.js:582 +msgid "display grid" +msgstr "ग्रिड दिखाएँ" -#: js/EnsembleBlocks.js:186 -#: js/EnsembleBlocks.js:249 -#: js/EnsembleBlocks.js:415 -#: js/EnsembleBlocks.js:470 -#: js/EnsembleBlocks.js:708 -#: js/EnsembleBlocks.js:810 -#: js/EnsembleBlocks.js:872 -#: js/EnsembleBlocks.js:1192 -#: js/EnsembleBlocks.js:1255 -msgid "Cannot find turtle" -msgstr "कछुआ नहीं मिल सकता" +#: js/blocks/ExtrasBlocks.js:587 +msgid "The Display Grid Block changes the grid type" +msgstr "डिस्प्ले ग्रिड ब्लॉक ग्रिड प्रकार बदलता है" -#: js/EnsembleBlocks.js:206 -msgid "start mouse" -msgstr "माउस शुरू करें" +#: js/blocks/ExtrasBlocks.js:689 +#: js/blocks/ExtrasBlocks.js:708 +#: js/blocks/ExtrasBlocks.js:731 +#: js/blocks/ExtrasBlocks.js:754 +#: js/blocks/ExtrasBlocks.js:772 +#: js/blocks/ExtrasBlocks.js:791 +#: js/blocks/ExtrasBlocks.js:810 +#: js/blocks/ExtrasBlocks.js:829 +msgid "unknown" +msgstr "अज्ञात" -#: js/EnsembleBlocks.js:209 -msgid "The Start mouse block starts the specified mouse." -msgstr "स्पष्ट किए गए माउस को शुरू करता है।" +#: js/blocks/FlowBlocks.js:41 +msgid "The Backward block runs code in reverse order (Musical retrograde)." +msgstr "बैकवर्ड ब्लॉक कोड को उल्टे क्रम में चलाता है (संगीत रेट्रोग्रेड)।" -#: js/EnsembleBlocks.js:220 -msgid "start turtle" -msgstr "टरटल चालू करें" +#: js/blocks/FlowBlocks.js:48 +msgid "backward" +msgstr "विपरीतक्रम" -#: js/EnsembleBlocks.js:223 -msgid "The Start turtle block starts the specified turtle." -msgstr "स्टार्ट टरटल ब्लॉक निर्दिष्ट की गई कछुआ को शुरू करता है।" +#: js/blocks/FlowBlocks.js:124 +msgid "The Duplicate block will run each block multiple times." +msgstr "डुप्लीकेट ब्लॉक प्रत्येक ब्लॉक को कई बार चलाएगा।" -#: js/EnsembleBlocks.js:256 -msgid "Mouse is already running." -msgstr "माउस पहले से ही चल रहा है।" +#: js/blocks/FlowBlocks.js:136 +msgid "duplicate" +msgstr "डुप्लीकेट" -#: js/EnsembleBlocks.js:258 -msgid "Turtle is already running." -msgstr "टरटल पहले से ही चल रहा है।" +#: js/blocks/FlowBlocks.js:334 +msgid "The Default block is used inside of a Switch to define the default action." +msgstr "डिफ़ॉल्ट ब्लॉक स्विच के भीतर डिफ़ॉल्ट क्रिया को परिभाषित करने के लिए उपयोग किया जाता है।" -#: js/EnsembleBlocks.js:282 -msgid "Cannot find start block" -msgstr "स्टार्ट ब्लॉक नहीं मिल सकता" +#: js/blocks/FlowBlocks.js:342 +msgid "default" +msgstr "डिफ़ॉल्ट" -#: js/EnsembleBlocks.js:292 -#.TRANS: pen color for this mouse -msgid "mouse color" -msgstr "माउस कलर" +#: js/blocks/FlowBlocks.js:361 +#: js/blocks/FlowBlocks.js:418 +msgid "The Case Block must be used inside of a Switch Block." +msgstr "केस ब्लॉक स्विच ब्लॉक के भीतर ही उपयोग किया जाना चाहिए।" -#: js/EnsembleBlocks.js:294 -msgid "The Mouse color block returns the pen color of the specified mouse." -msgstr "माउस कलर ब्लॉक निर्दिष्ट माउस का पेन कलर वापस करता है।" +#: js/blocks/FlowBlocks.js:389 +msgid "The Case block is used inside of a Switch to define matches." +msgstr "केस ब्लॉक स्विच के भीतर मैच को परिभाषित करने के लिए उपयोग किया जाता है।" -#: js/EnsembleBlocks.js:306 -#.TRANS: pen color for this turtle -msgid "turtle color" -msgstr "कछुआ कलर" +#: js/blocks/FlowBlocks.js:397 +msgid "case" +msgstr "केस" -#: js/EnsembleBlocks.js:308 -msgid "The Turtle color block returns the pen color of the specified turtle." -msgstr "कछुआ कलर ब्लॉक निर्दिष्ट कछुए का पेन कलर वापस करता है।" +#: js/blocks/FlowBlocks.js:446 +msgid "The Switch block will run the code in the matching Case." +msgstr "स्विच ब्लॉक मैचिंग केस में कोड चलाएगा।" -#: js/EnsembleBlocks.js:338 -#.TRANS: heading (compass direction) for this mouse -msgid "mouse heading" -msgstr "माउस हेडिंग" +#: js/blocks/FlowBlocks.js:454 +msgid "switch" +msgstr "स्विच" -#: js/EnsembleBlocks.js:340 -msgid "The Mouse heading block returns the heading of the specified mouse." -msgstr "माउस हेडिंग ब्लॉक निर्दिष्ट माउस की हेडिंग वापस करता है।" +#: js/blocks/FlowBlocks.js:595 +msgid "The Stop block will stop a loop" +msgstr "स्टॉप ब्लॉक एक लूप को रोक देगा" -#: js/EnsembleBlocks.js:352 -#.TRANS: heading (compass direction) for this turtle -msgid "turtle heading" -msgstr "कछुआ हेडिंग" +#: js/blocks/FlowBlocks.js:597 +msgid "Forever, Repeat, While, or Until." +msgstr "हमेशा, दोहराएँ, जब तक, या जब तक नहीं।" -#: js/EnsembleBlocks.js:354 -msgid "The Turtle heading block returns the heading of the specified turtle." -msgstr "कछुआ हेडिंग ब्लॉक निर्दिष्ट कछुए की हेडिंग वापस करता है।" +#: js/blocks/FlowBlocks.js:604 +#: js/widgets/timbre.js:417 +#: js/widgets/timbre.js:419 +#: js/widgets/musickeyboard.js:819 +#: js/widgets/musickeyboard.js:821 +#: js/widgets/phrasemaker.js:4202 +#: plugins/rodi.rtp:29 +#: plugins/rodi.rtp:73 +#: plugins/rodi.rtp:413 +msgid "stop" +msgstr "रोकें" -#: js/EnsembleBlocks.js:384 -#: js/EnsembleBlocks.js:439 -#.TRANS: set xy position for this mouse -msgid "set mouse" -msgstr "माउस सेट करें" +#: js/blocks/FlowBlocks.js:653 +msgid "The Waitfor block will wait until the condition is true." +msgstr "वेटफॉर ब्लॉक स्थिति सत्य होने तक प्रतीक्षा करेगा।" -#: js/EnsembleBlocks.js:391 -#: js/EnsembleBlocks.js:402 -#: js/BoxesBlocks.js:595 -msgid "name1" -msgstr "नाम1" +#: js/blocks/FlowBlocks.js:661 +msgid "wait for" +msgstr "अज्ञात" -#: js/EnsembleBlocks.js:391 -#: js/EnsembleBlocks.js:402 -#: js/ProgramBlocks.js:881 -#: js/GraphicsBlocks.js:235 -#: js/GraphicsBlocks.js:313 -#: js/GraphicsBlocks.js:436 -#: js/GraphicsBlocks.js:487 -#: js/GraphicsBlocks.js:534 -#: js/GraphicsBlocks.js:750 -msgid "x" -msgstr "एक्स" +#: js/blocks/FlowBlocks.js:732 +msgid "The Until block will repeat until the condition is true." +msgstr "अंत तक स्थिति सत्य होने तक दोहराएगा।" -#: js/EnsembleBlocks.js:391 -#: js/EnsembleBlocks.js:402 -#: js/ProgramBlocks.js:881 -#: js/GraphicsBlocks.js:149 -#: js/GraphicsBlocks.js:313 -#: js/GraphicsBlocks.js:436 -#: js/GraphicsBlocks.js:487 -#: js/GraphicsBlocks.js:534 -#: js/GraphicsBlocks.js:750 -msgid "y" -msgstr "वाई" +#: js/blocks/FlowBlocks.js:740 +msgid "until" +msgstr "जब तक" -#: js/EnsembleBlocks.js:395 -#: js/EnsembleBlocks.js:452 -#.TRANS: set xy position for this turtle -msgid "set turtle" -msgstr "कछुआ सेट करें" +#: js/blocks/FlowBlocks.js:742 +#: js/blocks/FlowBlocks.js:822 +msgid "do2" +msgstr "करें2" -#: js/EnsembleBlocks.js:433 -msgid "The Set mouse block sends a stack of blocks to be run by the specified mouse." -msgstr "सेट माउस ब्लॉक एक स्टैक ब्लॉक को निर्दिष्ट माउस द्वारा चलाए जाने के लिए भेजता है।" +#: js/blocks/FlowBlocks.js:812 +msgid "The While block will repeat while the condition is true." +msgstr "जब तक शर्त सत्य है, तब तक व्हाइल ब्लॉक दोहराएगा।" -#: js/EnsembleBlocks.js:446 -msgid "The Set turtle block sends a stack of blocks to be run by the specified turtle." -msgstr "सेट कछुआ ब्लॉक एक स्टैक ब्लॉक को निर्दिष्ट कछुआ द्वारा चलाए जाने के लिए भेजता है।" +#: js/blocks/FlowBlocks.js:820 +msgid "while" +msgstr "जबकि" -#: js/EnsembleBlocks.js:480 -#.TRANS: y position for this mouse -msgid "mouse y" -msgstr "माउस वाई" +#: js/blocks/FlowBlocks.js:903 +#: js/blocks/FlowBlocks.js:968 +#: js/blocks/FlowBlocks.js:979 +msgid "In this example if the mouse button is pressed a snare drum will play." +msgstr "इस उदाहरण में यदि माउस बटन दबाया जाता है तो एक स्नेयर ड्रम बजेगा।" -#: js/EnsembleBlocks.js:482 -msgid "The Y mouse block returns the Y position of the specified mouse." -msgstr "Y माउस ब्लॉक निर्दिष्ट माउस की Y स्थिति वापस करता है।" +#: js/blocks/FlowBlocks.js:925 +#: js/blocks/FlowBlocks.js:988 +msgid "if" +msgstr "यदि" -#: js/EnsembleBlocks.js:494 -#.TRANS: y position for this turtle -msgid "turtle y" -msgstr "कछुआ वाई" +#: js/blocks/FlowBlocks.js:927 +#: js/blocks/FlowBlocks.js:990 +msgid "then" +msgstr "तब" -#: js/EnsembleBlocks.js:496 -msgid "The Y turtle block returns the Y position of the specified turtle." -msgstr "Y कछुआ ब्लॉक निर्दिष्ट कछुए की Y स्थिति वापस करता है।" +#: js/blocks/FlowBlocks.js:927 +msgid "else" +msgstr "अन्यथा" -#: js/EnsembleBlocks.js:526 -#.TRANS: x position for this mouse -msgid "mouse x" -msgstr "माउस एक्स" +#: js/blocks/FlowBlocks.js:1025 +msgid "The Forever block will repeat the contained blocks forever." +msgstr "हमेशा के लिए फॉरएवर ब्लॉक निहित ब्लॉक्स को हमेशा के लिए दोहराएगा।" -#: js/EnsembleBlocks.js:528 -msgid "The X mouse block returns the X position of the specified mouse." -msgstr "X माउस ब्लॉक निर्दिष्ट माउस की X स्थिति वापस करता है।" +#: js/blocks/FlowBlocks.js:1037 +msgid "forever" +msgstr "हमेशा के लिए" -#: js/EnsembleBlocks.js:540 -#.TRANS: x position for this turtle -msgid "turtle x" -msgstr "कछुआ एक्स" +#: js/blocks/FlowBlocks.js:1073 +msgid "The Repeat block will repeat the contained blocks." +msgstr "रीपीट ब्लॉक निहित ब्लॉक्स को दोहराएगा।" -#: js/EnsembleBlocks.js:542 -msgid "The X turtle block returns the X position of the specified turtle." -msgstr "X कछुआ ब्लॉक निर्दिष्ट कछुए की X स्थिति वापस करता है।" +#: js/blocks/FlowBlocks.js:1075 +msgid "In this example the note will be played 4 times." +msgstr "" -#: js/EnsembleBlocks.js:573 -#.TRANS: notes played by this mouse -msgid "mouse notes played" -msgstr "माउस बजाए गए स्वर" +#: js/blocks/FlowBlocks.js:1083 +msgid "repeat" +msgstr "दोहराएँ" -#: js/EnsembleBlocks.js:575 -msgid "The Mouse elapse notes block returns the number of notes played by the specified mouse." -msgstr "माउस इलैप्स स्वर ब्लॉक निर्दिष्ट माउस द्वारा बजाए गए स्वरों की संख्या वापस करता है।" +#: js/blocks/FlowBlocks.js:1123 +msgid "duplicate factor" +msgstr "प्रतिलिपि कारक" -#: js/EnsembleBlocks.js:587 -#.TRANS: notes played by this turtle -msgid "turtle notes played" -msgstr "कछुआ बजाए गए स्वर" +#: js/blocks/HeapBlocks.js:49 +msgid "The Heap block returns the heap." +msgstr "हीप ब्लॉक हीप लौटाता है।" -#: js/EnsembleBlocks.js:589 -msgid "The Turtle elapse notes block returns the number of notes played by the specified turtle." -msgstr "कछुआ इलैप्स स्वर ब्लॉक निर्दिष्ट कछुए द्वारा बजाए गए स्वरों की संख्या वापस करता है।" +#: js/blocks/HeapBlocks.js:133 +msgid "show heap" +msgstr "हीप दिखाएँ" -#: js/EnsembleBlocks.js:627 -#.TRANS: convert current note for this turtle to piano key (1-88) -msgid "mouse pitch number" -msgstr "माउस पिच नंबर" +#: js/blocks/HeapBlocks.js:181 +msgid "The Heap-length block returns the length of the heap." +msgstr "हीप-लेंथ ब्लॉक हीप की लंबाई लौटाता है।" -#: js/EnsembleBlocks.js:629 -msgid "The Mouse pitch block returns the current pitch number being played by the specified mouse." -msgstr "माउस पिच ब्लॉक विशिष्ट माउस द्वारा बजाए जा रहे वर्तमान पिच नंबर को वापस करता है।" +#: js/blocks/HeapBlocks.js:195 +msgid "heap length" +msgstr "हीप लंबाई" -#: js/EnsembleBlocks.js:641 -#.TRANS: convert current note for this turtle to piano key (1-88) -msgid "turtle pitch number" -msgstr "कछुआ पिच नंबर" +#: js/blocks/HeapBlocks.js:254 +msgid "The Heap-empty? block returns true if the heap is empty." +msgstr "हीप-खाली? ब्लॉक हीप खाली है तो true लौटाता है।" -#: js/EnsembleBlocks.js:643 -msgid "The Turrle pitch block returns the current pitch number being played by the specified turtle." -msgstr "" +#: js/blocks/HeapBlocks.js:268 +#.TRANS: Is the heap empty? +msgid "heap empty?" +msgstr "हीप खाली है?" -#: js/EnsembleBlocks.js:747 -#: js/EnsembleBlocks.js:819 -#.TRANS: note value is the duration of the note played by this mouse -msgid "mouse note value" -msgstr "माउस नोट मूल्य" +#: js/blocks/HeapBlocks.js:317 +msgid "The Empty-heap block empties the heap." +msgstr "खाली-हीप ब्लॉक हीप को खाली करता है।" -#: js/EnsembleBlocks.js:757 -#.TRANS: note value is the duration of the note played by this turtle -msgid "turtle note value" -msgstr "कछुआ नोट मूल्य" +#: js/blocks/HeapBlocks.js:327 +#: js/blocks/HeapBlocks.js:647 +#.TRANS: empty the heap +msgid "empty heap" +msgstr "खाली हीप" -#: js/EnsembleBlocks.js:830 -#.TRANS: sync is short for synchronization -msgid "mouse sync" -msgstr "माउस सिंक" +#: js/blocks/HeapBlocks.js:371 +msgid "The Reverse-heap block reverses the order of the heap." +msgstr "रिवर्स-हीप ब्लॉक हीप का क्रम उलटा करता है।" -#: js/EnsembleBlocks.js:832 -msgid "The Mouse sync block aligns the beat count between mice." -msgstr "माउस सिंक ब्लॉक माउस के बीट गिनती को समरेखित करता है।" +#: js/blocks/HeapBlocks.js:384 +#.TRANS: reverse the order of the heap +msgid "reverse heap" +msgstr "हीप उलटें" -#: js/EnsembleBlocks.js:844 -#.TRANS: sync is short for synchronization -msgid "turtle sync" -msgstr "कछुआ सिंक" +#: js/blocks/HeapBlocks.js:428 +msgid "The Index-heap block returns a value in the heap at a specified location." +msgstr "इंडेक्स-हीप ब्लॉक निर्दिष्ट स्थान पर हीप में एक मूल्य लौटाता है।" -#: js/EnsembleBlocks.js:846 -msgid "The Turtle sync block aligns the beat count between turtles." -msgstr "टर्टल सिंक ब्लॉक कछुओं के बीट गिनती को समरेखित करता है।" +#: js/blocks/HeapBlocks.js:443 +#.TRANS: retrieve a value from the heap at index position in the heap +msgid "index heap" +msgstr "हीप में स्थिति में से मूल्य प्राप्त करें" -#: js/EnsembleBlocks.js:887 -msgid "The Found mouse block will return true if the specified mouse can be found." -msgstr "फाउंड माउस ब्लॉक विशिष्ट माउस को पहचाना जा सकता है तो सत्य वापस करेगा।" +#: js/blocks/HeapBlocks.js:523 +msgid "The Set-heap entry block sets a value in he heap at the specified location." +msgstr "सेट-हीप एंट्री ब्लॉक निर्दिष्ट स्थान पर हीप में मूल्य सेट करता है।" -#: js/EnsembleBlocks.js:893 -msgid "found mouse" -msgstr "मिला हुआ माउस" +#: js/blocks/HeapBlocks.js:539 +#: js/blocks/ProgramBlocks.js:299 +#.TRANS: load the heap from a JSON encoding +msgid "set heap" +msgstr "" -#: js/EnsembleBlocks.js:903 -msgid "The Found turtle block will return true if the specified turtle can be found." -msgstr "फाउंड टर्टल ब्लॉक विशिष्ट कछुआ को पहचाना जा सकता है तो सत्य वापस करेगा।" +#: js/blocks/HeapBlocks.js:619 +msgid "The Pop block removes the value at the top of the heap." +msgstr "पॉप ब्लॉक हीप के शीर्ष पर मूल्य को हटा देता है।" -#: js/EnsembleBlocks.js:909 -msgid "found turtle" -msgstr "मिला हुआ कछुआ" +#: js/blocks/HeapBlocks.js:633 +#.TRANS: pop a value off the top of the heap +msgid "pop" +msgstr "पॉप" -#: js/EnsembleBlocks.js:932 -msgid "new mouse" -msgstr "नया माउस" +#: js/blocks/HeapBlocks.js:680 +msgid "The Push block adds a value to the top of the heap." +msgstr "पुश ब्लॉक हीप के शीर्ष पर मूल्य जोड़ता है।" -#: js/EnsembleBlocks.js:934 -msgid "The New mouse block will create a new mouse." -msgstr "नया माउस ब्लॉक नया माउस बनाएगा।" +#: js/blocks/HeapBlocks.js:696 +#.TRANS: push a value onto the top of the heap +msgid "push" +msgstr "दबाएँ" -#: js/EnsembleBlocks.js:945 -msgid "new turtle" -msgstr "नया कछुआ" +#: js/blocks/IntervalsBlocks.js:45 +msgid "set temperament" +msgstr "ताम्बुल सेट करें" -#: js/EnsembleBlocks.js:947 -msgid "The New turtle block will create a new turtle." -msgstr "नया टर्टल ब्लॉक नया कछुआ बनाएगा।" +#: js/blocks/IntervalsBlocks.js:63 +#: js/blocks/MediaBlocks.js:746 +#: js/blocks/PitchBlocks.js:657 +#: js/blocks/PitchBlocks.js:935 +#: js/blocks/PitchBlocks.js:974 +#: js/blocks/PitchBlocks.js:1007 +#: js/blocks/PitchBlocks.js:1194 +#: js/blocks/PitchBlocks.js:1717 +#: js/blocks/PitchBlocks.js:1758 +#: js/blocks/PitchBlocks.js:1866 +#: js/blocks/ToneBlocks.js:1025 +#: js/turtleactions/IntervalsActions.js:114 +#.TRANS: adjusts the shift up or down by one octave (twelve half-steps in the interval between two notes, one having twice or half the frequency in Hz of the other.) +msgid "octave" +msgstr "ऑक्टेव" -#: js/EnsembleBlocks.js:1011 -msgid "set mouse color" -msgstr "माउस का रंग सेट करें" +#: js/blocks/IntervalsBlocks.js:99 +msgid "The Temperament name block is used to select a tuning method." +msgstr "ताम्बुल नाम ब्लॉक का उपयोग एक सुर की विधि का चयन करने के लिए किया जाता है।" -#: js/EnsembleBlocks.js:1014 -msgid "The Set-mouse-color block is used to set the color of a mouse." -msgstr "सेट-माउस-कलर ब्लॉक का उपयोग माउस के रंग को सेट करने के लिए किया जाता है।" +#: js/blocks/IntervalsBlocks.js:161 +msgid "doubly" +msgstr "दोगुना" -#: js/EnsembleBlocks.js:1020 -msgid "set turtle color" -msgstr "कछुआ का रंग सेट करें" +#: js/blocks/IntervalsBlocks.js:166 +msgid "The Doubly block will double the size of an interval." +msgstr "डबली ब्लॉक एक इंटरवल का आकार दोगुना करेगा।" -#: js/EnsembleBlocks.js:1023 -msgid "The Set-turtle-color block is used to set the color of a turtle." -msgstr "सेट-टर्टल-कलर ब्लॉक का उपयोग कछुआ के रंग को सेट करने के लिए किया जाता है।" +#: js/blocks/IntervalsBlocks.js:262 +msgid "interval number" +msgstr "इंटरवल संख्या" -#: js/EnsembleBlocks.js:1083 -msgid "The Mouse-name block returns the name of a mouse." -msgstr "माउस-नेम ब्लॉक एक माउस का नाम वापस करता है।" +#: js/blocks/IntervalsBlocks.js:317 +msgid "current interval" +msgstr "" -#: js/EnsembleBlocks.js:1092 -msgid "The Turtle-name block returns the name of a turtle." -msgstr "टर्टल-नेम ब्लॉक एक कछुआ का नाम वापस करता है।" +#: js/blocks/IntervalsBlocks.js:387 +#.TRANS: measure the distance between two pitches in semi-tones +msgid "semi-tone interval measure" +msgstr "सेमी-टोन इंटरवल माप" -#: js/EnsembleBlocks.js:1115 -msgid "mouse count" -msgstr "माउस गणना" +#: js/blocks/IntervalsBlocks.js:454 +#: js/blocks/IntervalsBlocks.js:570 +msgid "You must use two pitch blocks when measuring an interval." +msgstr "आपको एक इंटरवल को मापते समय दो पिच ब्लॉक्स का उपयोग करना होगा।" -#: js/EnsembleBlocks.js:1118 -msgid "The Mouse-count block returns the number of mice." -msgstr "माउस-काउंट ब्लॉक माउस की संख्या वापस करता है।" +#: js/blocks/IntervalsBlocks.js:496 +msgid "The Scalar interval block measures the distance between two notes in the current key and mode." +msgstr "स्केलर इंटरवल ब्लॉक वर्तमान कुंजी और मोड में दो नोट्स के बीच की दूरी को मापता है।" -#: js/EnsembleBlocks.js:1124 -msgid "turtle count" -msgstr "कछुआ गणना" +#: js/blocks/IntervalsBlocks.js:502 +#.TRANS: measure the distance between two pitches in steps of musical scale +msgid "scalar interval measure" +msgstr "स्केलर इंटरवल माप" -#: js/EnsembleBlocks.js:1127 -msgid "The Turtle-count block returns the number of turtles." -msgstr "टर्टल-काउंट ब्लॉक कछुओं की संख्या वापस करता है।" +#: js/blocks/IntervalsBlocks.js:678 +msgid "In the figure, we add sol# to sol." +msgstr "चित्र में, हम sol# को sol में जोड़ते हैं।" -#: js/EnsembleBlocks.js:1149 -msgid "nth mouse name" -msgstr "एनथ माउस नाम" +#: js/blocks/IntervalsBlocks.js:684 +#: js/blocks/OrnamentBlocks.js:220 +#.TRANS: calculate a relative step between notes based on semi-tones +msgid "semi-tone interval" +msgstr "सेमी-टोन इंटरवल" -#: js/EnsembleBlocks.js:1152 -msgid "The Nth-Mouse name block returns the name of the nth mouse." -msgstr "एनथ-माउस-नेम ब्लॉक एनथ माउस का नाम वापस करता है।" +#: js/blocks/IntervalsBlocks.js:733 +msgid "The output of the example is: do, mi, sol, sol, ti, mi" +msgstr "उदाहरण का आउटपुट है: do, mi, sol, sol, ti, mi" -#: js/EnsembleBlocks.js:1158 -msgid "nth turtle name" -msgstr "एनथ कछुआ नाम" +#: js/blocks/IntervalsBlocks.js:740 +#: js/blocks/WidgetBlocks.js:768 +msgid "arpeggio" +msgstr "आरपेजियो" -#: js/EnsembleBlocks.js:1161 -msgid "The Nth-Turtle name block returns the name of the nth turtle." -msgstr "एनथ-टर्टल-नेम ब्लॉक एनथ कछुआ का नाम वापस करता है।" +#: js/blocks/IntervalsBlocks.js:931 +msgid "The Chord block calculates common chords." +msgstr "कॉर्ड ब्लॉक सामान्य कॉर्ड की गणना करता है।" -#: js/EnsembleBlocks.js:1205 -#: js/EnsembleBlocks.js:1265 -msgid "set name" -msgstr "नाम सेट करें" +#: js/blocks/IntervalsBlocks.js:933 +msgid "In the figure, we generate a C-major chord." +msgstr "चित्र में, हम C मेजर कॉर्ड बनाते हैं।" -#: js/EnsembleBlocks.js:1214 -#: js/EnsembleBlocks.js:1221 -msgid "source" -msgstr "स्रोत" +#: js/blocks/IntervalsBlocks.js:938 +msgid "chord" +msgstr "कॉर्ड" -#: js/EnsembleBlocks.js:1214 -#: js/EnsembleBlocks.js:1221 -msgid "target" -msgstr "लक्ष्य" +#: js/blocks/IntervalsBlocks.js:990 +msgid "The Ratio Interval block calculates an interval based on a ratio." +msgstr "अनुपात इंटरवल ब्लॉक एक अनुपात पर आधारित इंटरवल की गणना करता है।" -#: js/EnsembleBlocks.js:1271 -msgid "The Set-name block is used to name a mouse." -msgstr "सेट-नेम ब्लॉक का उपयोग माउस का नाम रखने के लिए किया जाता है।" +#: js/blocks/IntervalsBlocks.js:995 +msgid "ratio interval" +msgstr "अनुपात इंटरवल" -#: js/EnsembleBlocks.js:1284 -msgid "The Set-name block is used to name a turtle." -msgstr "सेट-नेम ब्लॉक का उपयोग कछुआ का नाम रखने के लिए किया जाता है।" +#: js/blocks/IntervalsBlocks.js:1064 +msgid "In the figure, we add la to sol." +msgstr "चित्र में, हम la को sol में जोड़ते हैं।" -#: js/BooleanBlocks.js:44 -msgid "The Not block is the logical not operator." -msgstr "नॉट ब्लॉक तार्किक नॉट ऑपरेटर है।" +#: js/blocks/IntervalsBlocks.js:1120 +#.TRANS: define a custom mode +msgid "define mode" +msgstr "मोड परिभाषित करें" -#: js/BooleanBlocks.js:62 -msgid "not" -msgstr "नहीं" +#: js/blocks/IntervalsBlocks.js:1173 +msgid "movable Do" +msgstr "मूवेबल डो" -#: js/BooleanBlocks.js:134 -msgid "The And block is the logical and operator." -msgstr "एंड ब्लॉक तार्किक एंड ऑपरेटर है।" +#: js/blocks/IntervalsBlocks.js:1224 +#.TRANS: mode length is the number of notes in the mode, e.g., 7 for major and minor scales; 12 for chromatic scales +msgid "mode length" +msgstr "मोड लंबाई" -#: js/BooleanBlocks.js:152 -msgid "and" -msgstr "और" +#: js/blocks/IntervalsBlocks.js:1233 +msgid "The Mode length block is the number of notes in the current scale." +msgstr "मोड लंबाई ब्लॉक मौजूदा स्केल में स्वरों की संख्या है।" -#: js/BooleanBlocks.js:218 -msgid "The Or block is the logical or operator." -msgstr "" +#: js/blocks/IntervalsBlocks.js:1235 +msgid "Most Western scales have 7 notes." +msgstr "अधिकांश पश्चिमी स्केल में 7 स्वर होते हैं।" -#: js/BooleanBlocks.js:236 -msgid "or" -msgstr "या" +#: js/blocks/IntervalsBlocks.js:1284 +#.TRANS: the mode in music is 'major', 'minor', etc. +msgid "current mode" +msgstr "वर्तमान मोड" -#: js/BooleanBlocks.js:302 -msgid "The XOR block is the logical XOR operator." -msgstr "XOR ब्लॉक तार्किक XOR ऑपरेटर है।" +#: js/blocks/IntervalsBlocks.js:1337 +#.TRANS: the key is a group of pitches with which a music composition is created +msgid "current key" +msgstr "वर्तमान कुंजी" -#: js/BooleanBlocks.js:320 -msgid "xor" -msgstr "एक्सओआर" +#: js/blocks/IntervalsBlocks.js:1389 +#: js/blocks/IntervalsBlocks.js:1434 +#.TRANS: set the key and mode, e.g. C Major +msgid "set key" +msgstr "कुंजी सेट करें" -#: js/BooleanBlocks.js:808 -msgid "The Equal block returns True if the two numbers are equal." -msgstr "इक्वल ब्लॉक यदि दो नंबर समान हैं तो True लौटाता है।" +#: js/blocks/IntervalsBlocks.js:1443 +#: js/blocks/IntervalsBlocks.js:1449 +msgid "The Set key block is used to set the key and mode," +msgstr "सेट कुंजी ब्लॉक का उपयोग कुंजी और मोड सेट करने के लिए किया जाता है," -#: js/BooleanBlocks.js:909 -msgid "The Not-equal-to block returns True if the two numbers are not equal to each other." +#: js/blocks/IntervalsBlocks.js:1449 +msgid "eg C Major" msgstr "" -#: js/BooleanBlocks.js:1008 -msgid "The Boolean block is used to specify true or false." -msgstr "बूलियन ब्लॉक सच या झूठ को निर्दिष्ट करने के लिए उपयोग होता है।" - -#: js/MediaBlocks.js:35 +#: js/blocks/MediaBlocks.js:35 #.TRANS: right side of the screen msgid "right (screen)" msgstr "दाएं (स्क्रीन)" -#: js/MediaBlocks.js:45 -#: js/MediaBlocks.js:56 +#: js/blocks/MediaBlocks.js:45 +#: js/blocks/MediaBlocks.js:56 msgid "The Right block returns the position of the right of the canvas." msgstr "राइट ब्लॉक कैनवास के दाएं की स्थिति लौटाता है।" -#: js/MediaBlocks.js:97 +#: js/blocks/MediaBlocks.js:97 #.TRANS: left side of the screen msgid "left (screen)" msgstr "बाएं (स्क्रीन)" -#: js/MediaBlocks.js:107 -#: js/MediaBlocks.js:118 +#: js/blocks/MediaBlocks.js:107 +#: js/blocks/MediaBlocks.js:118 msgid "The Left block returns the position of the left of the canvas." msgstr "लेफ्ट ब्लॉक कैनवास के बाएं की स्थिति लौटाता है।" -#: js/MediaBlocks.js:158 +#: js/blocks/MediaBlocks.js:158 msgid "top (screen)" msgstr "शीर्ष (स्क्रीन)" -#: js/MediaBlocks.js:168 -#: js/MediaBlocks.js:179 +#: js/blocks/MediaBlocks.js:168 +#: js/blocks/MediaBlocks.js:179 msgid "The Top block returns the position of the top of the canvas." msgstr "टॉप ब्लॉक कैनवास के शीर्ष की स्थिति लौटाता है।" -#: js/MediaBlocks.js:219 +#: js/blocks/MediaBlocks.js:219 msgid "bottom (screen)" msgstr "नीचे (स्क्रीन)" -#: js/MediaBlocks.js:229 -#: js/MediaBlocks.js:240 +#: js/blocks/MediaBlocks.js:229 +#: js/blocks/MediaBlocks.js:240 msgid "The Bottom block returns the position of the bottom of the canvas." msgstr "बॉटम ब्लॉक कैनवास के नीचे की स्थिति लौटाता है।" -#: js/MediaBlocks.js:282 +#: js/blocks/MediaBlocks.js:282 msgid "width" msgstr "चौड़ाई" -#: js/MediaBlocks.js:291 +#: js/blocks/MediaBlocks.js:291 msgid "The Width block returns the width of the canvas." msgstr "विड्थ ब्लॉक कैनवास की चौड़ाई लौटाता है।" -#: js/MediaBlocks.js:325 +#: js/blocks/MediaBlocks.js:325 msgid "height" msgstr "ऊचाई" -#: js/MediaBlocks.js:334 +#: js/blocks/MediaBlocks.js:334 msgid "The Height block returns the height of the canvas." msgstr "हाइट ब्लॉक कैनवास की ऊचाई लौटाता है।" -#: js/MediaBlocks.js:369 -#.TRANS: stops playback of an audio recording -msgid "stop play" -msgstr "रुको प्ले" - -#: js/MediaBlocks.js:404 -#.TRANS: Erases the images and text -msgid "erase media" -msgstr "मीडिया मिटाओ" - -#: js/MediaBlocks.js:409 -msgid "The Erase Media block erases text and images." -msgstr "इरेस मीडिया ब्लॉक टेक्स्ट और छवियाँ मिटाता है।" - -#: js/MediaBlocks.js:439 -#.TRANS: play an audio recording -msgid "play back" -msgstr "प्ले बैक" - -#: js/MediaBlocks.js:487 -msgid "speak" -msgstr "बोलो" - -#: js/MediaBlocks.js:495 -msgid "The Speak block outputs to the text-to-speech synthesizer" -msgstr "स्पीक ब्लॉक टेक्स्ट-टू-स्पीच सिंथेसाइज़र को आउटपुट करता है।" - -#: js/MediaBlocks.js:546 -msgid "camera" -msgstr "कैमरा" - -#: js/MediaBlocks.js:551 -msgid "The Camera block connects a webcam to the Show block." -msgstr "" - -#: js/MediaBlocks.js:574 -msgid "video" -msgstr "" - -#: js/MediaBlocks.js:579 -msgid "The Video block selects video for use with the Show block." -msgstr "" - -#: js/MediaBlocks.js:607 -msgid "The Open file block opens a file for use with the Show block." -msgstr "" - -#: js/MediaBlocks.js:645 -msgid "stop media" -msgstr "मीडिया रोक" - -#: js/MediaBlocks.js:650 -msgid "The Stop media block stops audio or video playback." -msgstr "" - -#: js/MediaBlocks.js:679 -#: js/PitchBlocks.js:1539 -#: js/phrasemaker.js:822 -#: js/musickeyboard.js:1654 -#.TRANS: a measure of frequency: one cycle per second -msgid "hertz" -msgstr "" - -#: js/MediaBlocks.js:692 -msgid "duration (ms)" -msgstr "" - -#: js/MediaBlocks.js:728 -#.TRANS: translate a note into hertz, e.g., A4 -> 440HZ -msgid "note to frequency" -msgstr "" - -#: js/MediaBlocks.js:736 -msgid "The To frequency block converts a pitch name and octave to Hertz." -msgstr "" - -#: js/MediaBlocks.js:746 -#: js/PitchBlocks.js:656 -#: js/PitchBlocks.js:932 -#: js/PitchBlocks.js:1827 -#.TRANS: name2 is name as in name of pitch (JAPANESE ONLY) -msgid "name2" -msgstr "" - -#: js/MediaBlocks.js:812 -msgid "The Avatar block is used to change the appearance of the mouse." -msgstr "" - -#: js/MediaBlocks.js:819 -msgid "The Avatar block is used to change the appearance of the turtle." -msgstr "" - -#: js/MediaBlocks.js:831 -#: js/MediaBlocks.js:891 -#.TRANS: a media object -msgid "size" -msgstr "आकार" - -#: js/MediaBlocks.js:831 -msgid "image" -msgstr "फोटो" - -#: js/MediaBlocks.js:880 -msgid "The Show block is used to display text or images on the canvas." -msgstr "" - -#: js/MediaBlocks.js:888 -#.TRANS: show1 is show as in display an image or text on the screen. -msgid "show1" -msgstr "" - -#: js/MediaBlocks.js:891 -msgid "obj" -msgstr "वस्तु" - -#: js/MediaBlocks.js:938 -msgid "The Media block is used to import an image." -msgstr "" - -#: js/MediaBlocks.js:973 -msgid "The Text block holds a text string." -msgstr "" - -#: js/ProgramBlocks.js:33 -msgid "The Load-heap-from-app block loads the heap from a web page." -msgstr "" - -#: js/ProgramBlocks.js:44 -#.TRANS: load the heap contents from a URL -msgid "load heap from App" -msgstr "" - -#: js/ProgramBlocks.js:95 -msgid "Error parsing JSON data:" -msgstr "" - -#: js/ProgramBlocks.js:100 -msgid "404: Page not found" -msgstr "" - -#: js/ProgramBlocks.js:133 -msgid "The Save-heap-to-app block saves the heap to a web page." -msgstr "" - -#: js/ProgramBlocks.js:144 -#.TRANS: save the heap contents to a URL -msgid "save heap to App" -msgstr "" - -#: js/ProgramBlocks.js:189 -msgid "Cannot find a valid heap for" -msgstr "" - -#: js/ProgramBlocks.js:206 -msgid "The Load-heap block loads the heap from a file." -msgstr "" - -#: js/ProgramBlocks.js:217 -#.TRANS: load the heap from a file -msgid "load heap" -msgstr "ढेर को लोड करें" - -#: js/ProgramBlocks.js:270 -msgid "The file you selected does not contain a valid heap." -msgstr "" - -#: js/ProgramBlocks.js:275 -msgid "The loadHeap block needs a loadFile block." -msgstr "" - -#: js/ProgramBlocks.js:291 -msgid "The Set-heap block loads the heap." -msgstr "" - -#: js/ProgramBlocks.js:299 -#: js/HeapBlocks.js:539 -#.TRANS: load the heap from a JSON encoding -msgid "set heap" -msgstr "" +#: js/blocks/MediaBlocks.js:369 +#.TRANS: stops playback of an audio recording +msgid "stop play" +msgstr "रुको प्ले" -#: js/ProgramBlocks.js:340 -msgid "The block you selected does not contain a valid heap." -msgstr "" +#: js/blocks/MediaBlocks.js:404 +#.TRANS: Erases the images and text +msgid "erase media" +msgstr "मीडिया मिटाओ" -#: js/ProgramBlocks.js:343 -msgid "The Set heap block needs a heap." -msgstr "" +#: js/blocks/MediaBlocks.js:409 +msgid "The Erase Media block erases text and images." +msgstr "इरेस मीडिया ब्लॉक टेक्स्ट और छवियाँ मिटाता है।" -#: js/ProgramBlocks.js:360 -msgid "The Load-dictionary block loads a dictionary from a file." -msgstr "" +#: js/blocks/MediaBlocks.js:439 +#.TRANS: play an audio recording +msgid "play back" +msgstr "प्ले बैक" -#: js/ProgramBlocks.js:372 -#.TRANS: load a dictionary from a file -msgid "load dictionary" -msgstr "" +#: js/blocks/MediaBlocks.js:487 +msgid "speak" +msgstr "बोलो" -#: js/ProgramBlocks.js:390 -#: js/ProgramBlocks.js:658 -#: js/ToneBlocks.js:1025 -msgid "file" -msgstr "" +#: js/blocks/MediaBlocks.js:495 +msgid "The Speak block outputs to the text-to-speech synthesizer" +msgstr "स्पीक ब्लॉक टेक्स्ट-टू-स्पीच सिंथेसाइज़र को आउटपुट करता है।" -#: js/ProgramBlocks.js:396 -#: js/ProgramBlocks.js:501 -#: js/ProgramBlocks.js:664 -#: js/DictBlocks.js:80 -#: js/DictBlocks.js:145 -#: js/DictBlocks.js:216 -#: js/DictBlocks.js:290 -msgid "My Dictionary" -msgstr "" +#: js/blocks/MediaBlocks.js:546 +msgid "camera" +msgstr "कैमरा" -#: js/ProgramBlocks.js:444 -msgid "The file you selected does not contain a valid dictionary." +#: js/blocks/MediaBlocks.js:551 +msgid "The Camera block connects a webcam to the Show block." msgstr "" -#: js/ProgramBlocks.js:449 -msgid "The load dictionary block needs a load file block." +#: js/blocks/MediaBlocks.js:574 +msgid "video" msgstr "" -#: js/ProgramBlocks.js:466 -msgid "The Set-dictionary block loads a dictionary." +#: js/blocks/MediaBlocks.js:579 +msgid "The Video block selects video for use with the Show block." msgstr "" -#: js/ProgramBlocks.js:477 -#.TRANS: load a dictionary from a JSON -msgid "set dictionary" +#: js/blocks/MediaBlocks.js:607 +msgid "The Open file block opens a file for use with the Show block." msgstr "" -#: js/ProgramBlocks.js:546 -msgid "The block you selected does not contain a valid dictionary." -msgstr "" +#: js/blocks/MediaBlocks.js:645 +msgid "stop media" +msgstr "मीडिया रोक" -#: js/ProgramBlocks.js:550 -msgid "The set dictionary block needs a dictionary." +#: js/blocks/MediaBlocks.js:650 +msgid "The Stop media block stops audio or video playback." msgstr "" -#: js/ProgramBlocks.js:567 -msgid "The Save-heap block saves the heap to a file." +#: js/blocks/MediaBlocks.js:679 +#: js/blocks/PitchBlocks.js:1577 +#: js/widgets/musickeyboard.js:1936 +#: js/widgets/phrasemaker.js:1037 +#.TRANS: a measure of frequency: one cycle per second +msgid "hertz" msgstr "" -#: js/ProgramBlocks.js:578 -#.TRANS: save the heap to a file -msgid "save heap" -msgstr "ढेर सेव करें" +#: js/blocks/MediaBlocks.js:692 +#: js/blocks/WidgetBlocks.js:182 +#: js/widgets/temperament.js:506 +#: js/widgets/temperament.js:546 +#: js/widgets/temperament.js:610 +#: js/widgets/temperament.js:618 +#: js/widgets/temperament.js:1505 +#: js/widgets/timbre.js:1842 +msgid "frequency" +msgstr "आवृत्ति" -#: js/ProgramBlocks.js:629 -msgid "The Save-dictionary block saves a dictionary to a file." +#: js/blocks/MediaBlocks.js:692 +msgid "duration (ms)" msgstr "" -#: js/ProgramBlocks.js:640 -#.TRANS: save a dictionary to a file -msgid "save dictionary" +#: js/blocks/MediaBlocks.js:728 +#.TRANS: translate a note into hertz, e.g., A4 -> 440HZ +msgid "note to frequency" msgstr "" -#: js/ProgramBlocks.js:720 -msgid "The Open palette block opens a palette." +#: js/blocks/MediaBlocks.js:736 +msgid "The To frequency block converts a pitch name and octave to Hertz." msgstr "" -#: js/ProgramBlocks.js:727 -msgid "open palette" +#: js/blocks/MediaBlocks.js:746 +#: js/blocks/PitchBlocks.js:656 +#: js/blocks/PitchBlocks.js:934 +#: js/blocks/PitchBlocks.js:1866 +#.TRANS: name2 is name as in name of pitch (JAPANESE ONLY) +msgid "name2" msgstr "" -#: js/ProgramBlocks.js:785 -msgid "The Delete block block removes a block." +#: js/blocks/MediaBlocks.js:812 +msgid "The Avatar block is used to change the appearance of the mouse." msgstr "" -#: js/ProgramBlocks.js:797 -#.TRANS: Move this block to the trash. -msgid "delete block" +#: js/blocks/MediaBlocks.js:819 +msgid "The Avatar block is used to change the appearance of the turtle." msgstr "" -#: js/ProgramBlocks.js:861 -msgid "The Move block block moves a block." -msgstr "" +#: js/blocks/MediaBlocks.js:831 +#: js/blocks/MediaBlocks.js:891 +#.TRANS: a media object +msgid "size" +msgstr "आकार" -#: js/ProgramBlocks.js:869 -#.TRANS: Move the position of a block on the screen. -msgid "move block" -msgstr "" +#: js/blocks/MediaBlocks.js:831 +msgid "image" +msgstr "फोटो" -#: js/ProgramBlocks.js:881 -#: js/ProgramBlocks.js:1048 -msgid "block number" +#: js/blocks/MediaBlocks.js:880 +msgid "The Show block is used to display text or images on the canvas." msgstr "" -#: js/ProgramBlocks.js:935 -#.TRANS: Run program beginning at this block. -msgid "run block" +#: js/blocks/MediaBlocks.js:888 +#.TRANS: show1 is show as in display an image or text on the screen. +msgid "show1" msgstr "" -#: js/ProgramBlocks.js:1025 -msgid "The Dock block block connections two blocks." -msgstr "" +#: js/blocks/MediaBlocks.js:891 +msgid "obj" +msgstr "वस्तु" -#: js/ProgramBlocks.js:1036 -#.TRANS: We can connect a block to another block. -msgid "connect blocks" +#: js/blocks/MediaBlocks.js:938 +msgid "The Media block is used to import an image." msgstr "" -#: js/ProgramBlocks.js:1048 -msgid "target block" +#: js/blocks/MediaBlocks.js:973 +msgid "The Text block holds a text string." msgstr "" -#: js/ProgramBlocks.js:1048 -msgid "connection number" -msgstr "" +#: js/blocks/MeterBlocks.js:34 +#.TRANS: musical meter (time signature), e.g., 4:4 +msgid "current meter" +msgstr "वर्तमान मीटर" -#: js/ProgramBlocks.js:1140 -msgid "The Make block block creates a new block." -msgstr "" +#: js/blocks/MeterBlocks.js:85 +#.TRANS: number of beats per minute +msgid "beat factor" +msgstr "बीट कारक" -#: js/ProgramBlocks.js:1152 -#.TRANS: Create a new block -msgid "make block" -msgstr "" +#: js/blocks/MeterBlocks.js:161 +msgid "The Beats per minute block returns the current beats per minute." +msgstr "बीट्स पर मिनट ब्लॉक वर्तमान मिनट प्रति बीट लौटाता है।" -#: js/ProgramBlocks.js:1186 -#: js/ProgramBlocks.js:1227 -#: js/RhythmBlocks.js:1128 -#: js/PitchBlocks.js:972 -#: js/PitchBlocks.js:1005 -#: js/temperament.js:340 -#: js/temperament.js:362 -#: js/temperament.js:372 -#: js/temperament.js:484 -#: js/status.js:190 -#: plugins/rodi.rtp:192 -#.TRANS: a musical note consisting of pitch and duration -msgid "note" -msgstr "नोट" +#: js/blocks/MeterBlocks.js:169 +#: js/widgets/status.js:152 +#.TRANS: number of beats played per minute +msgid "beats per minute2" +msgstr "मिनट प्रति बीट" -#: js/ProgramBlocks.js:1285 -msgid "Cannot find block" -msgstr "" +#: js/blocks/MeterBlocks.js:169 +#: js/blocks/MeterBlocks.js:1056 +#: js/blocks/MeterBlocks.js:1133 +#: js/blocks/MeterBlocks.js:1211 +#.TRANS: sets tempo by defining a beat and beats per minute +msgid "beats per minute" +msgstr "मिनट प्रति बीट" -#: js/ProgramBlocks.js:1304 -#: js/ProgramBlocks.js:1313 -msgid "Warning: block argument type mismatch" -msgstr "" +#: js/blocks/MeterBlocks.js:233 +#.TRANS: count of current musical measure in meter +msgid "measure count" +msgstr "माप की गणना" -#: js/ProgramBlocks.js:1347 -msgid "The Open project block is used to open a project from a web page." -msgstr "" +#: js/blocks/MeterBlocks.js:241 +msgid "The Measure count block returns the current measure." +msgstr "मेजर काउंट ब्लॉक वर्तमान माप को लौटाता है।" -#: js/ProgramBlocks.js:1357 -msgid "open project" -msgstr "" +#: js/blocks/MeterBlocks.js:290 +#.TRANS: count of current beat in the meter +msgid "beat count" +msgstr "बीट काउंट" -#: js/ProgramBlocks.js:1410 -msgid "Please enter a valid URL." -msgstr "" +#: js/blocks/MeterBlocks.js:300 +#: js/blocks/MeterBlocks.js:311 +#: js/blocks/MeterBlocks.js:565 +#: js/blocks/MeterBlocks.js:576 +msgid "The Beat count block is the number of the current beat," +msgstr "बीट काउंट ब्लॉक वर्तमान बीट की संख्या है," -#: js/DrumBlocks.js:59 -msgid "The Noise name block is used to select a noise synthesizer." -msgstr "" +#: js/blocks/MeterBlocks.js:313 +#: js/blocks/MeterBlocks.js:578 +msgid "eg 1, 2, 3, or 4." +msgstr "उदाहरण के लिए 1, 2, 3, या 4।" -#: js/DrumBlocks.js:102 -msgid "The Drum name block is used to select a drum." -msgstr "" +#: js/blocks/MeterBlocks.js:368 +#.TRANS: count the number of notes +msgid "sum note values" +msgstr "नोट मूल्यों की गणना" -#: js/DrumBlocks.js:146 -msgid "The Effects name block is used to select a sound effect." -msgstr "" +#: js/blocks/MeterBlocks.js:376 +#: js/blocks/MeterBlocks.js:440 +msgid "The Note counter block can be used to count the number of contained notes." +msgstr "नोट काउंटर ब्लॉक का उपयोग शामिल नोट्स की संख्या को गिनने के लिए किया जा सकता है।" -#: js/DrumBlocks.js:163 -msgid "noise" -msgstr "" +#: js/blocks/MeterBlocks.js:432 +#.TRANS: count the number of notes +msgid "note counter" +msgstr "नोट काउंटर" -#: js/DrumBlocks.js:177 -msgid "The Play noise block will generate white, pink, or brown noise." -msgstr "" +#: js/blocks/MeterBlocks.js:496 +#.TRANS: number of whole notes that have been played +msgid "whole notes played" +msgstr "पूरे नोट बजे" -#: js/DrumBlocks.js:191 -#: js/musicutils.js:752 -#: js/synthutils.js:47 -#.TRANS: white noise synthesizer -msgid "white noise" -msgstr "" +#: js/blocks/MeterBlocks.js:505 +msgid "The Whole notes played block returns the total number of whole notes played." +msgstr "व्होल नोट्स प्लेड ब्लॉक प्लेड हुई संपूर्ण नोट्स की कुल संख्या लौटाता है।" -#: js/DrumBlocks.js:326 -msgid "Replace every instance of a pitch with a drum sound." -msgstr "" +#: js/blocks/MeterBlocks.js:555 +#: js/turtleactions/DictActions.js:83 +#.TRANS: number of notes that have been played +msgid "notes played" +msgstr "नोट्स बजे" -#: js/DrumBlocks.js:337 -#.TRANS: map a pitch to a drum sound -msgid "map pitch to drum" -msgstr "" +#: js/blocks/MeterBlocks.js:653 +msgid "The No clock block decouples the notes from the master clock." +msgstr "नो क्लॉक ब्लॉक नोट्स को मास्टर क्लॉक से अलग करता है।" -#: js/DrumBlocks.js:404 -msgid "In the example above, a kick drum sound will be played instead of sol." -msgstr "" +#: js/blocks/MeterBlocks.js:661 +#.TRANS: don't lock notes to master clock +msgid "no clock" +msgstr "कोई घड़ी नहीं" -#: js/DrumBlocks.js:416 -#.TRANS: set the current drum sound for playback -msgid "set drum" -msgstr "" +#: js/blocks/MeterBlocks.js:700 +msgid "on weak beat do" +msgstr "कमजोर बीट पर करें" -#: js/DrumBlocks.js:460 -msgid "sound effect" +#: js/blocks/MeterBlocks.js:705 +msgid "The On-weak-beat block lets you specify actions to take on weak (off) beats." msgstr "" -#: js/DrumBlocks.js:498 -msgid "You can use multiple Drum blocks within a Note block." -msgstr "" +#: js/blocks/MeterBlocks.js:750 +msgid "on strong beat" +msgstr "मजबूत बीट पर" -#: js/RhythmBlocks.js:182 -#: js/RhythmBlocks.js:1086 -#: js/RhythmBlocks.js:1162 -msgid "Note value must be greater than 0." +#: js/blocks/MeterBlocks.js:758 +msgid "The On-strong-beat block lets you specify actions to take on specified beats." msgstr "" -#: js/RhythmBlocks.js:215 -#: js/RhythmBlocks.js:278 -#: js/RhythmBlocks.js:350 -#.TRANS: swing is a rhythmic variation that emphasises the offbeat -msgid "swing" -msgstr "" +#: js/blocks/MeterBlocks.js:769 +msgid "beat" +msgstr "बीट" -#: js/RhythmBlocks.js:355 -#.TRANS: the amount to shift to the offbeat note -msgid "swing value" -msgstr "" +#: js/blocks/MeterBlocks.js:813 +msgid "on every beat do" +msgstr "प्रत्येक बीट पर करें" -#: js/RhythmBlocks.js:419 -msgid "The Skip notes block will cause notes to be skipped." +#: js/blocks/MeterBlocks.js:821 +msgid "The On-every-beat block lets you specify actions to take on every beat." msgstr "" -#: js/RhythmBlocks.js:427 -#.TRANS: substitute rests on notes being skipped -msgid "skip notes" -msgstr "" +#: js/blocks/MeterBlocks.js:874 +msgid "on every note do" +msgstr "प्रत्येक नोट पर करें" -#: js/RhythmBlocks.js:489 -#.TRANS: speed up note duration by some factor, e.g. convert 1/4 to 1/8 notes by using a factor of 2 -msgid "multiply note value" +#: js/blocks/MeterBlocks.js:882 +msgid "The On-every-note block lets you specify actions to take on every note." msgstr "" -#: js/RhythmBlocks.js:542 -msgid "The Tie block works on pairs of notes, combining them into one note." -msgstr "टाई ब्लॉक नोट्स के जोड़ों पर काम करता है, उन्हें एक नोट में मिलाकर।" - -#: js/RhythmBlocks.js:550 -#.TRANS: tie notes together into one longer note -msgid "tie" -msgstr "टाई" - -#: js/RhythmBlocks.js:591 -#: js/RhythmBlocks.js:671 -#.TRANS: a dotted note is played for 1.5x its value, e.g., 1/8. --> 3/16 -msgid "dot" -msgstr "डॉट" - -#: js/RhythmBlocks.js:619 -#: js/RhythmActions.js:221 -msgid "An argument of -1 results in a note value of 0." -msgstr "-1 का एक तर्क एक नोट मूल्य का परिणाम होता है।" - -#: js/RhythmBlocks.js:661 -msgid "The Dot block extends the duration of a note by 50%." -msgstr "डॉट ब्लॉक एक नोट की अवधि को 50% बढ़ाता है।" - -#: js/RhythmBlocks.js:663 -msgid "Eg a dotted quarter note will play for 3/8 (1/4 + 1/8) of a beat." -msgstr "उदा, एक डॉटेड क्वार्टर नोट 3/8 (1/4 + 1/8) बीट के लिए बजेगा।" +#: js/blocks/MeterBlocks.js:928 +#: js/blocks/MeterBlocks.js:999 +#.TRANS: sets tempo by defining a beat and beats per minute +msgid "master beats per minute" +msgstr "मास्टर बीट्स प्रति मिनट" -#: js/RhythmBlocks.js:765 -#.TRANS: Japanese only: note value block for drum -msgid "note value drum" -msgstr "नोट मूल्य ड्रम" +#: js/blocks/MeterBlocks.js:952 +#: js/blocks/MeterBlocks.js:1078 +#: js/blocks/MeterBlocks.js:1135 +msgid "bpm" +msgstr "बीपीएम" -#: js/RhythmBlocks.js:829 -msgid "392 hertz" -msgstr "392 हर्ट्ज" +#: js/blocks/MeterBlocks.js:952 +#: js/blocks/MeterBlocks.js:1078 +#: js/blocks/MeterBlocks.js:1135 +msgid "beat value" +msgstr "बीट मूल्य" -#: js/RhythmBlocks.js:1119 -msgid "The Note block is a container for one or more Pitch blocks." -msgstr "नोट ब्लॉक एक या एक से अधिक पिच ब्लॉक के लिए एक कंटेनर है।" +#: js/blocks/MeterBlocks.js:1024 +#: js/blocks/MeterBlocks.js:1167 +#: js/blocks/MeterBlocks.js:1241 +msgid "Beats per minute must be > 30." +msgstr "मिनट प्रति बीट 30 से अधिक होना चाहिए।" -#: js/RhythmBlocks.js:1121 -msgid "The Note block specifies the duration (note value) of its contents." -msgstr "नोट ब्लॉक अपने सामग्री की अवधि (नोट मूल्य) को निर्दिष्ट करता है।" +#: js/blocks/MeterBlocks.js:1027 +#: js/blocks/MeterBlocks.js:1170 +#: js/blocks/MeterBlocks.js:1244 +msgid "Maximum beats per minute is 1000." +msgstr "अधिकतम मिनट प्रति बीट 1000 है।" -#: js/RhythmBlocks.js:1130 -msgid "value2" -msgstr "मूल्य2" +#: js/blocks/MeterBlocks.js:1068 +msgid "The Beats per minute block sets the number of 1/4 notes per minute." +msgstr "प्रति मिनट 1/4 नोट्स की संख्या सेट करने के लिए बीट्स प्रति मिनट ब्लॉक।" -#: js/RhythmBlocks.js:1200 -msgid "define frequency" -msgstr "फ़्रीक्वेंसी को परिभाषित करें" +#: js/blocks/MeterBlocks.js:1279 +#.TRANS: anacrusis +msgid "pickup" +msgstr "पिकअप" -#: js/RhythmBlocks.js:1218 -#: js/temperament.js:650 -#: js/temperament.js:1421 -msgid "octave space" -msgstr "ऑक्टेव स्थान" +#: js/blocks/MeterBlocks.js:1367 +msgid "number of beats" +msgstr "बीट्स की संख्या" -#: js/NumberBlocks.js:28 +#: js/blocks/NumberBlocks.js:28 msgid "The Int block returns an integer." msgstr "इंट ब्लॉक एक पूर्णांक वापस करता है।" -#: js/NumberBlocks.js:34 +#: js/blocks/NumberBlocks.js:34 msgid "int" msgstr "पूर्णांक" -#: js/NumberBlocks.js:73 +#: js/blocks/NumberBlocks.js:73 msgid "The Mod block returns the remainder from a division." msgstr "मॉड ब्लॉक विभाजन से शेष प्राप्त करता है।" -#: js/NumberBlocks.js:79 +#: js/blocks/NumberBlocks.js:79 msgid "mod" msgstr "मॉड" -#: js/NumberBlocks.js:123 +#: js/blocks/NumberBlocks.js:141 msgid "The Power block calculates a power function." msgstr "पावर ब्लॉक एक शक्ति समीकरण की गणना करता है।" -#: js/NumberBlocks.js:178 +#: js/blocks/NumberBlocks.js:196 msgid "The Sqrt block returns the square root." msgstr "स्क्वायर रूट ब्लॉक वर्गमूल लौटाता है।" -#: js/NumberBlocks.js:184 +#: js/blocks/NumberBlocks.js:202 msgid "sqrt" msgstr "वर्गमूल" -#: js/NumberBlocks.js:230 +#: js/blocks/NumberBlocks.js:248 msgid "The Abs block returns the absolute value." msgstr "एब्स ब्लॉक पूर्णांक मान लौटाता है।" -#: js/NumberBlocks.js:236 +#: js/blocks/NumberBlocks.js:254 msgid "abs" msgstr "एब्स" -#: js/NumberBlocks.js:277 +#: js/blocks/NumberBlocks.js:295 msgid "The Distance block returns the distance between two points. For example, between the mouse and the center of the screen." msgstr "डिस्टेंस ब्लॉक दो बिंदुओं के बीच की दूरी लौटाता है। उदाहरण के लिए, माउस और स्क्रीन के केंद्र के बीच।" -#: js/NumberBlocks.js:283 +#: js/blocks/NumberBlocks.js:301 #: plugins/rodi.rtp:310 msgid "distance" msgstr "दूरी" -#: js/NumberBlocks.js:343 +#: js/blocks/NumberBlocks.js:361 msgid "The Divide block is used to divide." msgstr "डिवाइड ब्लॉक का उपयोग विभाजन के लिए किया जाता है।" -#: js/NumberBlocks.js:411 +#: js/blocks/NumberBlocks.js:441 msgid "The Multiply block is used to multiply." msgstr "मल्टिप्लाई ब्लॉक का उपयोग गुणा करने के लिए किया जाता है।" -#: js/NumberBlocks.js:554 +#: js/blocks/NumberBlocks.js:612 msgid "The Minus block is used to subtract." msgstr "माइनस ब्लॉक का उपयोग घटना के लिए किया जाता है।" -#: js/NumberBlocks.js:647 +#: js/blocks/NumberBlocks.js:723 msgid "The Plus block is used to add." msgstr "प्लस ब्लॉक का उपयोग जोड़ने के लिए किया जाता है।" -#: js/NumberBlocks.js:773 +#: js/blocks/NumberBlocks.js:849 msgid "The One-of block returns one of two choices." msgstr "वन-ऑफ़ ब्लॉक दो विकल्पों में से एक वापस करता है।" -#: js/NumberBlocks.js:780 -#: js/PitchBlocks.js:616 +#: js/blocks/NumberBlocks.js:856 +#: js/blocks/PitchBlocks.js:616 msgid "one of" msgstr "में से एक" -#: js/NumberBlocks.js:782 +#: js/blocks/NumberBlocks.js:858 msgid "this" msgstr "यह" -#: js/NumberBlocks.js:782 +#: js/blocks/NumberBlocks.js:858 msgid "that" msgstr "वह" -#: js/NumberBlocks.js:837 +#: js/blocks/NumberBlocks.js:913 msgid "The Random block returns a random number." msgstr "रैंडम ब्लॉक एक यादृच्छिक संख्या वापस करता है।" -#: js/NumberBlocks.js:844 +#: js/blocks/NumberBlocks.js:920 msgid "random" msgstr "बेतरतीब" -#: js/NumberBlocks.js:846 +#: js/blocks/NumberBlocks.js:922 msgid "min" msgstr "न्यून." -#: js/NumberBlocks.js:846 +#: js/blocks/NumberBlocks.js:922 msgid "max" msgstr "अधि." -#: js/NumberBlocks.js:910 +#: js/blocks/NumberBlocks.js:986 msgid "The Number block holds a number." msgstr "नंबर ब्लॉक एक संख्या को धारित करता है।" -#: js/BoxesBlocks.js:53 -#: js/BoxesBlocks.js:59 -msgid "The Add-to block is used to add to the value stored in a box." -msgstr "एड-टू ब्लॉक का उपयोग बॉक में संग्रहित मूल्य में जोड़ने के लिए किया जाता है।" - -#: js/BoxesBlocks.js:61 -msgid "It can also be used with other blocks such as Color and Pen size." -msgstr "इसे कलर और पेन साइज़ जैसे अन्य ब्लॉक्स के साथ भी उपयोग किया जा सकता है।" - -#: js/BoxesBlocks.js:73 -msgid "add" -msgstr "जोड़ें" - -#: js/BoxesBlocks.js:75 -#: js/temperament.js:716 -msgid "to" -msgstr "को" - -#: js/BoxesBlocks.js:75 -#: js/BoxesBlocks.js:595 -#: js/HeapBlocks.js:544 -msgid "value1" -msgstr "मूल्य1" - -#: js/BoxesBlocks.js:118 -msgid "Block does not support incrementing." -msgstr "ब्लॉक इक्रीमेंट को समर्थन नहीं करता है।" - -#: js/BoxesBlocks.js:152 -msgid "The Add-1-to block adds one to the value stored in a box." -msgstr "एड-1-टू ब्लॉक बॉक में संग्रहित मूल्य में एक जोड़ता है।" - -#: js/BoxesBlocks.js:163 -msgid "add 1 to" -msgstr "में 1 जोड़ें" - -#: js/BoxesBlocks.js:211 -msgid "The Subtract-1-from block subtracts one from the value stored in a box." -msgstr "घटक में संग्रहित मूल्य से एक कम करने के लिए Subtract-1-from ब्लॉक।" - -#: js/BoxesBlocks.js:222 -msgid "subtract 1 from" -msgstr "से 1 कम करें" - -#: js/BoxesBlocks.js:270 -#: js/BoxesBlocks.js:387 -msgid "The Box block returns the value stored in a box." -msgstr "बॉक्स ब्लॉक में संग्रहित मूल्य लौटाता है।" - -#: js/BoxesBlocks.js:500 -#: js/BoxesBlocks.js:576 -msgid "The Store in block will store a value in a box." -msgstr "Store in ब्लॉक एक मूल्य को एक बॉक्स में संग्रहित करेगा।" - -#: js/BoxesBlocks.js:652 -msgid "The Box2 block returns the value stored in Box2." -msgstr "Box2 ब्लॉक में संग्रहित मूल्य लौटाता है।" - -#: js/BoxesBlocks.js:703 -msgid "The Store in Box2 block is used to store a value in Box2." -msgstr "Store in Box2 ब्लॉक का उपयोग Box2 में मूल्य संग्रहित करने के लिए किया जाता है।" - -#: js/BoxesBlocks.js:715 -msgid "store in box2" -msgstr "बॉक्स2 में संग्रहित करें" - -#: js/BoxesBlocks.js:761 -msgid "The Box1 block returns the value stored in Box1." -msgstr "Box1 ब्लॉक में संग्रहित मूल्य लौटाता है।" - -#: js/BoxesBlocks.js:812 -msgid "The Store in Box1 block is used to store a value in Box1." -msgstr "Store in Box1 ब्लॉक का उपयोग Box1 में मूल्य संग्रहित करने के लिए किया जाता है।" - -#: js/BoxesBlocks.js:826 -msgid "store in box1" -msgstr "बॉक्स1 में संग्रहित करें" - -#: js/HeapBlocks.js:49 -msgid "The Heap block returns the heap." -msgstr "हीप ब्लॉक हीप लौटाता है।" - -#: js/HeapBlocks.js:133 -msgid "show heap" -msgstr "हीप दिखाएँ" - -#: js/HeapBlocks.js:181 -msgid "The Heap-length block returns the length of the heap." -msgstr "हीप-लेंथ ब्लॉक हीप की लंबाई लौटाता है।" - -#: js/HeapBlocks.js:195 -msgid "heap length" -msgstr "हीप लंबाई" - -#: js/HeapBlocks.js:254 -msgid "The Heap-empty? block returns true if the heap is empty." -msgstr "हीप-खाली? ब्लॉक हीप खाली है तो true लौटाता है।" - -#: js/HeapBlocks.js:268 -#.TRANS: Is the heap empty? -msgid "heap empty?" -msgstr "हीप खाली है?" - -#: js/HeapBlocks.js:317 -msgid "The Empty-heap block empties the heap." -msgstr "खाली-हीप ब्लॉक हीप को खाली करता है।" - -#: js/HeapBlocks.js:327 -#: js/HeapBlocks.js:647 -#.TRANS: empty the heap -msgid "empty heap" -msgstr "खाली हीप" - -#: js/HeapBlocks.js:371 -msgid "The Reverse-heap block reverses the order of the heap." -msgstr "रिवर्स-हीप ब्लॉक हीप का क्रम उलटा करता है।" - -#: js/HeapBlocks.js:384 -#.TRANS: reverse the order of the heap -msgid "reverse heap" -msgstr "हीप उलटें" - -#: js/HeapBlocks.js:428 -msgid "The Index-heap block returns a value in the heap at a specified location." -msgstr "इंडेक्स-हीप ब्लॉक निर्दिष्ट स्थान पर हीप में एक मूल्य लौटाता है।" - -#: js/HeapBlocks.js:443 -#.TRANS: retrieve a value from the heap at index position in the heap -msgid "index heap" -msgstr "हीप में स्थिति में से मूल्य प्राप्त करें" - -#: js/HeapBlocks.js:523 -msgid "The Set-heap entry block sets a value in he heap at the specified location." -msgstr "सेट-हीप एंट्री ब्लॉक निर्दिष्ट स्थान पर हीप में मूल्य सेट करता है।" - -#: js/HeapBlocks.js:619 -msgid "The Pop block removes the value at the top of the heap." -msgstr "पॉप ब्लॉक हीप के शीर्ष पर मूल्य को हटा देता है।" - -#: js/HeapBlocks.js:633 -#.TRANS: pop a value off the top of the heap -msgid "pop" -msgstr "पॉप" - -#: js/HeapBlocks.js:680 -msgid "The Push block adds a value to the top of the heap." -msgstr "पुश ब्लॉक हीप के शीर्ष पर मूल्य जोड़ता है।" - -#: js/HeapBlocks.js:696 -#.TRANS: push a value onto the top of the heap -msgid "push" -msgstr "दबाएँ" - -#: js/FlowBlocks.js:41 -msgid "The Backward block runs code in reverse order (Musical retrograde)." -msgstr "बैकवर्ड ब्लॉक कोड को उल्टे क्रम में चलाता है (संगीत रेट्रोग्रेड)।" - -#: js/FlowBlocks.js:48 -msgid "backward" -msgstr "विपरीतक्रम" - -#: js/FlowBlocks.js:124 -msgid "The Duplicate block will run each block multiple times." -msgstr "डुप्लीकेट ब्लॉक प्रत्येक ब्लॉक को कई बार चलाएगा।" - -#: js/FlowBlocks.js:136 -msgid "duplicate" -msgstr "डुप्लीकेट" - -#: js/FlowBlocks.js:334 -msgid "The Default block is used inside of a Switch to define the default action." -msgstr "डिफ़ॉल्ट ब्लॉक स्विच के भीतर डिफ़ॉल्ट क्रिया को परिभाषित करने के लिए उपयोग किया जाता है।" - -#: js/FlowBlocks.js:342 -msgid "default" -msgstr "डिफ़ॉल्ट" - -#: js/FlowBlocks.js:361 -#: js/FlowBlocks.js:418 -msgid "The Case Block must be used inside of a Switch Block." -msgstr "केस ब्लॉक स्विच ब्लॉक के भीतर ही उपयोग किया जाना चाहिए।" - -#: js/FlowBlocks.js:389 -msgid "The Case block is used inside of a Switch to define matches." -msgstr "केस ब्लॉक स्विच के भीतर मैच को परिभाषित करने के लिए उपयोग किया जाता है।" - -#: js/FlowBlocks.js:397 -msgid "case" -msgstr "केस" - -#: js/FlowBlocks.js:446 -msgid "The Switch block will run the code in the matching Case." -msgstr "स्विच ब्लॉक मैचिंग केस में कोड चलाएगा।" - -#: js/FlowBlocks.js:454 -msgid "switch" -msgstr "स्विच" - -#: js/FlowBlocks.js:595 -msgid "The Stop block will stop a loop" -msgstr "स्टॉप ब्लॉक एक लूप को रोक देगा" - -#: js/FlowBlocks.js:597 -msgid "Forever, Repeat, While, or Until." -msgstr "हमेशा, दोहराएँ, जब तक, या जब तक नहीं।" - -#: js/FlowBlocks.js:604 -#: js/phrasemaker.js:3799 -#: js/musickeyboard.js:629 -#: js/musickeyboard.js:631 -#: js/timbre.js:417 -#: js/timbre.js:419 -#: plugins/rodi.rtp:29 -#: plugins/rodi.rtp:73 -#: plugins/rodi.rtp:413 -msgid "stop" -msgstr "रोकें" - -#: js/FlowBlocks.js:653 -msgid "The Waitfor block will wait until the condition is true." -msgstr "वेटफॉर ब्लॉक स्थिति सत्य होने तक प्रतीक्षा करेगा।" - -#: js/FlowBlocks.js:661 -msgid "wait for" -msgstr "अज्ञात" - -#: js/FlowBlocks.js:732 -msgid "The Until block will repeat until the condition is true." -msgstr "अंत तक स्थिति सत्य होने तक दोहराएगा।" - -#: js/FlowBlocks.js:740 -msgid "until" -msgstr "जब तक" - -#: js/FlowBlocks.js:742 -#: js/FlowBlocks.js:822 -msgid "do2" -msgstr "करें2" - -#: js/FlowBlocks.js:812 -msgid "The While block will repeat while the condition is true." -msgstr "जब तक शर्त सत्य है, तब तक व्हाइल ब्लॉक दोहराएगा।" - -#: js/FlowBlocks.js:820 -msgid "while" -msgstr "जबकि" - -#: js/FlowBlocks.js:903 -#: js/FlowBlocks.js:968 -#: js/FlowBlocks.js:979 -msgid "In this example if the mouse button is pressed a snare drum will play." -msgstr "इस उदाहरण में यदि माउस बटन दबाया जाता है तो एक स्नेयर ड्रम बजेगा।" +#: js/blocks/OrnamentBlocks.js:32 +msgid "staccato factor" +msgstr "स्टाकेटो कारक" -#: js/FlowBlocks.js:925 -#: js/FlowBlocks.js:988 -msgid "if" -msgstr "यदि" +#: js/blocks/OrnamentBlocks.js:108 +msgid "slur factor" +msgstr "स्लर कारक" -#: js/FlowBlocks.js:927 -#: js/FlowBlocks.js:990 -msgid "then" -msgstr "तब" +#: js/blocks/OrnamentBlocks.js:217 +#: js/blocks/OrnamentBlocks.js:309 +#.TRANS: the neighbor refers to a neighboring note, e.g., D is a neighbor of C +msgid "neighbor" +msgstr "पड़ोसी" -#: js/FlowBlocks.js:927 -msgid "else" -msgstr "अन्यथा" +#: js/blocks/OrnamentBlocks.js:293 +msgid "The Neighbor block rapidly switches between neighboring pitches." +msgstr "नेबर ब्लॉक तेजी से पड़ोसी स्वरों के बीच स्विच करता है।" -#: js/FlowBlocks.js:1025 -msgid "The Forever block will repeat the contained blocks forever." -msgstr "हमेशा के लिए फॉरएवर ब्लॉक निहित ब्लॉक्स को हमेशा के लिए दोहराएगा।" +#: js/blocks/OrnamentBlocks.js:364 +msgid "glide" +msgstr "ग्लाइड" -#: js/FlowBlocks.js:1037 -msgid "forever" -msgstr "हमेशा के लिए" +#: js/blocks/OrnamentBlocks.js:479 +#: js/blocks/OrnamentBlocks.js:643 +msgid "slur" +msgstr "स्लर" -#: js/FlowBlocks.js:1073 -msgid "The Repeat block will repeat the contained blocks." -msgstr "रीपीट ब्लॉक निहित ब्लॉक्स को दोहराएगा।" +#: js/blocks/OrnamentBlocks.js:558 +#: js/blocks/OrnamentBlocks.js:710 +#.TRANS: play each note sharply detached from the others +msgid "staccato" +msgstr "स्टाकेटो" -#: js/FlowBlocks.js:1075 -msgid "In this example the note will be played 4 times." +#: js/blocks/RhythmBlocks.js:182 +#: js/blocks/RhythmBlocks.js:1086 +#: js/blocks/RhythmBlocks.js:1162 +msgid "Note value must be greater than 0." msgstr "" -#: js/FlowBlocks.js:1083 -msgid "repeat" -msgstr "दोहराएँ" - -#: js/FlowBlocks.js:1123 -msgid "duplicate factor" -msgstr "प्रतिलिपि कारक" - -#: js/PitchBlocks.js:39 -#: js/musicutils.js:722 -#: js/musicutils.js:1117 -#: js/synthutils.js:112 -#.TRANS: square wave -msgid "square" -msgstr "वर्ग" - -#: js/PitchBlocks.js:62 -#: js/ToneBlocks.js:39 -#: js/musicutils.js:723 -#: js/musicutils.js:1118 -#: js/synthutils.js:116 -#.TRANS: triangle wave -msgid "triangle" -msgstr "त्रिकोण" - -#: js/PitchBlocks.js:85 -#: js/musicutils.js:721 -#: js/musicutils.js:1116 -#: js/synthutils.js:110 -#.TRANS: sine wave -msgid "sine" -msgstr "साइन" - -#: js/PitchBlocks.js:108 -#: js/musicutils.js:724 -#: js/musicutils.js:1119 -#: js/synthutils.js:114 -#.TRANS: sawtooth wave -msgid "sawtooth" -msgstr "सॉटूथ" - -#: js/PitchBlocks.js:141 -#.TRANS: musical transposition (adjustment of pitch up or down) -msgid "transposition" -msgstr "स्वर स्थानांतरण" - -#: js/PitchBlocks.js:168 -#.TRANS: step down one note in current musical scale -msgid "scalar step down" -msgstr "स्केलर स्टेप डाउन" +#: js/blocks/RhythmBlocks.js:215 +#: js/blocks/RhythmBlocks.js:278 +#: js/blocks/RhythmBlocks.js:350 +#.TRANS: swing is a rhythmic variation that emphasises the offbeat +msgid "swing" +msgstr "" -#: js/PitchBlocks.js:172 -msgid "The Scalar step down block returns the number of semi-tones down to the previous note in the current key and mode." -msgstr "स्केलर स्टेप डाउन ब्लॉक वर्तमान कुंजी और मोड में पिछले नोट तक की सेमी-टोन की संख्या लौटाता है।" +#: js/blocks/RhythmBlocks.js:355 +#.TRANS: the amount to shift to the offbeat note +msgid "swing value" +msgstr "" -#: js/PitchBlocks.js:190 -#.TRANS: step up one note in current musical scale -msgid "scalar step up" -msgstr "स्केलर स्टेप अप" +#: js/blocks/RhythmBlocks.js:419 +msgid "The Skip notes block will cause notes to be skipped." +msgstr "" -#: js/PitchBlocks.js:194 -msgid "The Scalar step up block returns the number of semi-tones up to the next note in the current key and mode." -msgstr "स्केलर स्टेप अप ब्लॉक वर्तमान कुंजी और मोड में अगले नोट तक की सेमी-टोन की संख्या लौटाता है।" +#: js/blocks/RhythmBlocks.js:427 +#.TRANS: substitute rests on notes being skipped +msgid "skip notes" +msgstr "" -#: js/PitchBlocks.js:212 -#.TRANS: the change measured in half-steps between the current pitch and the previous pitch -msgid "change in pitch" -msgstr "स्वर में परिवर्तन" +#: js/blocks/RhythmBlocks.js:489 +#.TRANS: speed up note duration by some factor, e.g. convert 1/4 to 1/8 notes by using a factor of 2 +msgid "multiply note value" +msgstr "" -#: js/PitchBlocks.js:216 -msgid "The Change in pitch block is the difference (in half steps) between the current pitch being played and the previous pitch played." -msgstr "चेंज इन पिच ब्लॉक वह अंतर है (हैफ स्टेप में) जो वर्तमान पिच बजा रहा है और पिछले पिच बजा रहा है।" +#: js/blocks/RhythmBlocks.js:542 +msgid "The Tie block works on pairs of notes, combining them into one note." +msgstr "टाई ब्लॉक नोट्स के जोड़ों पर काम करता है, उन्हें एक नोट में मिलाकर।" -#: js/PitchBlocks.js:243 -#.TRANS: the change measured in scale-steps between the current pitch and the previous pitch -msgid "scalar change in pitch" -msgstr "स्केलर स्वर में परिवर्तन" +#: js/blocks/RhythmBlocks.js:550 +#.TRANS: tie notes together into one longer note +msgid "tie" +msgstr "टाई" -#: js/PitchBlocks.js:250 -#: js/PitchBlocks.js:432 -#: js/PitchBlocks.js:1629 -#: js/DictActions.js:89 -#: js/temperament.js:477 -#: js/temperament.js:481 -#: js/temperament.js:714 -#.TRANS: convert current note to piano key (1-88) -#.TRANS: a mapping of pitch to the 88 piano keys -msgid "pitch number" -msgstr "स्वर संख्या" +#: js/blocks/RhythmBlocks.js:591 +#: js/blocks/RhythmBlocks.js:671 +#.TRANS: a dotted note is played for 1.5x its value, e.g., 1/8. --> 3/16 +msgid "dot" +msgstr "डॉट" -#: js/PitchBlocks.js:256 -msgid "The Pitch number block is the value of the pitch of the note currently being played." -msgstr "पिच नंबर ब्लॉक वह मूल्य है जो वर्तमान में बजा रहे नोट के स्वर का है।" +#: js/blocks/RhythmBlocks.js:619 +#: js/turtleactions/RhythmActions.js:221 +msgid "An argument of -1 results in a note value of 0." +msgstr "-1 का एक तर्क एक नोट मूल्य का परिणाम होता है।" -#: js/PitchBlocks.js:329 -#: js/PitchBlocks.js:433 -#.TRANS: the current pitch expressed in Hertz -msgid "pitch in hertz" -msgstr "हर्ट्ज में स्वर" +#: js/blocks/RhythmBlocks.js:661 +msgid "The Dot block extends the duration of a note by 50%." +msgstr "डॉट ब्लॉक एक नोट की अवधि को 50% बढ़ाता है।" -#: js/PitchBlocks.js:334 -msgid "The Pitch in Hertz block is the value in Hertz of the pitch of the note currently being played." -msgstr "पिच इन हर्ट्ज ब्लॉक वर्तमान में बज रहे नोट के स्वर का हर्ट्ज में मूल्य है।" +#: js/blocks/RhythmBlocks.js:663 +msgid "Eg a dotted quarter note will play for 3/8 (1/4 + 1/8) of a beat." +msgstr "उदा, एक डॉटेड क्वार्टर नोट 3/8 (1/4 + 1/8) बीट के लिए बजेगा।" -#: js/PitchBlocks.js:367 -#: js/DictActions.js:87 -msgid "current pitch" -msgstr "वर्तमान स्वर" +#: js/blocks/RhythmBlocks.js:765 +#.TRANS: Japanese only: note value block for drum +msgid "note value drum" +msgstr "नोट मूल्य ड्रम" -#: js/PitchBlocks.js:373 -msgid "The Current Pitch block is used with the Pitch Converter block. In the example above, current pitch, sol 4, is displayed as 392 hertz." -msgstr "" +#: js/blocks/RhythmBlocks.js:829 +msgid "392 hertz" +msgstr "392 हर्ट्ज" -#: js/PitchBlocks.js:410 -msgid "This block converts the pitch value of the last note played into different formats such as hertz, letter name, pitch number, et al." -msgstr "यह ब्लॉक बजाए गए आखिरी नोट के स्वर मूल्य को हर्ट्ज, अक्षर नाम, स्वर संख्या, आदि के रूप में परिवर्तित करता है।" +#: js/blocks/RhythmBlocks.js:1119 +msgid "The Note block is a container for one or more Pitch blocks." +msgstr "नोट ब्लॉक एक या एक से अधिक पिच ब्लॉक के लिए एक कंटेनर है।" -#: js/PitchBlocks.js:434 -msgid "alphabet" -msgstr "वर्णमाला" +#: js/blocks/RhythmBlocks.js:1121 +msgid "The Note block specifies the duration (note value) of its contents." +msgstr "नोट ब्लॉक अपने सामग्री की अवधि (नोट मूल्य) को निर्दिष्ट करता है।" -#: js/PitchBlocks.js:436 -#.TRANS: Translate as "alphabet class" -msgid "letter class" -msgstr "अक्षर वर्ग" +#: js/blocks/RhythmBlocks.js:1128 +#: js/blocks/PitchBlocks.js:974 +#: js/blocks/PitchBlocks.js:1007 +#: js/blocks/ProgramBlocks.js:1186 +#: js/blocks/ProgramBlocks.js:1227 +#: js/widgets/status.js:190 +#: js/widgets/temperament.js:464 +#: js/widgets/temperament.js:486 +#: js/widgets/temperament.js:496 +#: js/widgets/temperament.js:617 +#: plugins/rodi.rtp:192 +#.TRANS: a musical note consisting of pitch and duration +msgid "note" +msgstr "नोट" -#: js/PitchBlocks.js:437 -msgid "solfege class" -msgstr "सोलफेज वर्ग" +#: js/blocks/RhythmBlocks.js:1130 +msgid "value2" +msgstr "मूल्य2" -#: js/PitchBlocks.js:438 -msgid "staff y" -msgstr "स्टाफ वाई" +#: js/blocks/RhythmBlocks.js:1200 +msgid "define frequency" +msgstr "फ़्रीक्वेंसी को परिभाषित करें" -#: js/PitchBlocks.js:439 -msgid "solfege syllable" -msgstr "सोलफेज सिलेबल" +#: js/blocks/RhythmBlocks.js:1218 +#: js/widgets/temperament.js:787 +#: js/widgets/temperament.js:1587 +msgid "octave space" +msgstr "ऑक्टेव स्थान" -#: js/PitchBlocks.js:440 -msgid "pitch class" -msgstr "स्वर वर्ग" +#: js/blocks/SensorsBlocks.js:36 +msgid "The Input block prompts for keyboard input." +msgstr "इनपुट ब्लॉक कुंजीपटल इनपुट के लिए प्रॉम्प्ट करता है।" -#: js/PitchBlocks.js:441 -msgid "scalar class" -msgstr "स्केलर वर्ग" +#: js/blocks/SensorsBlocks.js:46 +msgid "input" +msgstr "इनपुट" -#: js/PitchBlocks.js:443 -msgid "nth degree" -msgstr "एनथ डिग्री" +#: js/blocks/SensorsBlocks.js:64 +msgid "Input a value" +msgstr "एक मूल्य इनपुट करें" -#: js/PitchBlocks.js:444 -msgid "pitch to shade" -msgstr "स्वर को छाया में" +#: js/blocks/SensorsBlocks.js:126 +msgid "input value" +msgstr "इनपुट मूल्य" -#: js/PitchBlocks.js:445 -msgid "pitch to color" -msgstr "स्वर को रंग में" +#: js/blocks/SensorsBlocks.js:131 +msgid "The Input-value block stores the input." +msgstr "इनपुट-मूल्य ब्लॉक इनपुट को संग्रहित करता है।" -#: js/PitchBlocks.js:629 -#: js/musickeyboard.js:565 -#.TRANS: MIDI is a technical standard for electronic music -msgid "MIDI" -msgstr "मिडी" +#: js/blocks/SensorsBlocks.js:238 +msgid "loudness" +msgstr "आवाज़ की उंचाई" -#: js/PitchBlocks.js:642 -#.TRANS: set an offset associated with the numeric piano keyboard mapping -msgid "set pitch number offset" -msgstr "पिच नंबर ऑफसेट सेट करें" +#: js/blocks/SensorsBlocks.js:245 +msgid "The Loudness block returns the volume detected by the microphone." +msgstr "ध्वनि माइक्रोफ़ोन द्वारा पहचाने गए आवाज़ को लौडनेस ब्लॉक द्वारा लौटाता है।" -#: js/PitchBlocks.js:645 -msgid "The Set pitch number offset block is used to set the offset for mapping pitch numbers to pitch and octave." -msgstr "सेट पिच नंबर ऑफसेट ब्लॉक का उपयोग पिच और ऑक्टेव के मैपिंग के लिए ऑफसेट सेट करने के लिए किया जाता है।" +#: js/blocks/SensorsBlocks.js:300 +msgid "click" +msgstr "क्लिक" -#: js/PitchBlocks.js:679 -#.TRANS: convert piano key number (1-88) to pitch -msgid "number to pitch" -msgstr "संख्या से पिच" +#: js/blocks/SensorsBlocks.js:306 +msgid "The Click block triggers an event if a mouse has been clicked." +msgstr "क्लिक ब्लॉक एक घटना को ट्रिगर करता है अगर माउस पर क्लिक किया गया है।" -#: js/PitchBlocks.js:682 -msgid "The Number to pitch block will convert a pitch number to a pich name." -msgstr "" +#: js/blocks/SensorsBlocks.js:313 +msgid "The Click block triggers an event if a turtle has been clicked." +msgstr "क्लिक ब्लॉक एक घटना को ट्रिगर करता है अगर कछुआ पर क्लिक किया गया है।" -#: js/PitchBlocks.js:715 -#.TRANS: convert piano key number (1-88) to octave -msgid "number to octave" -msgstr "संख्या से ऑक्टेव" +#: js/blocks/SensorsBlocks.js:342 +msgid "cursor over" +msgstr "कर्सर ओवर" -#: js/PitchBlocks.js:717 -msgid "The Number to octave block will convert a pitch number to an octave." -msgstr "नंबर टू ऑक्टेव ब्लॉक एक पिच नंबर को एक ऑक्टेव में परिवर्तित करेगा।" +#: js/blocks/SensorsBlocks.js:387 +msgid "cursor out" +msgstr "कर्सर आउट" -#: js/PitchBlocks.js:726 -msgid "y to pitch" -msgstr "वाय को पिच" +#: js/blocks/SensorsBlocks.js:433 +msgid "cursor button down" +msgstr "कर्सर बटन नीचे" -#: js/PitchBlocks.js:729 -msgid "Y to pitch block will convert a staff y position to corresponding pitch notation." -msgstr "वाय टू पिच ब्लॉक एक स्टाफ वाय स्थिति को संबंधित पिच संकेत में परिवर्तित करेगा।" +#: js/blocks/SensorsBlocks.js:477 +msgid "cursor button up" +msgstr "कर्सर बटन ऊपर" -#: js/PitchBlocks.js:841 -msgid "accidental selector" -msgstr "अक्सीडेंटल सिलेक्टर" +#: js/blocks/SensorsBlocks.js:521 +#: js/blocks/PenBlocks.js:48 +#: plugins/rodi.rtp:219 +msgid "blue" +msgstr "नीला" -#: js/PitchBlocks.js:844 -msgid "The Accidental selector block is used to choose between double-sharp, sharp, natural, flat, and double-flat." -msgstr "एक्सीडेंटल सिलेक्टर ब्लॉक का उपयोग डबल-शार्प, शार्प, नैचुरल, फ्लैट, और डबल-फ्लैट के बीच चयन करने के लिए किया जाता है।" +#: js/blocks/SensorsBlocks.js:577 +#: js/blocks/PenBlocks.js:64 +#: plugins/rodi.rtp:218 +msgid "green" +msgstr "हरा" -#: js/PitchBlocks.js:858 -msgid "Pitch can be specified in terms of ni dha pa ma ga re sa." -msgstr "पिच को नी धा पा मा ग रे सा के रूप में निर्दिष्ट किया जा सकता है।" +#: js/blocks/SensorsBlocks.js:633 +#: js/blocks/PenBlocks.js:112 +#: plugins/rodi.rtp:217 +msgid "red" +msgstr "लाल" -#: js/PitchBlocks.js:872 -msgid "Pitch can be specified in terms of C D E F G A B." -msgstr "पिच को सी डी ई एफ जी ए बी के रूप में निर्दिष्ट किया जा सकता है।" +#: js/blocks/SensorsBlocks.js:638 +msgid "The Get red block returns the red component of the pixel under the mouse." +msgstr "गेट रेड ब्लॉक माउस के नीचे पिक्सेल का लाल घटक वापस करता है।" -#: js/PitchBlocks.js:883 -msgid "solfege" -msgstr "सोल्फेज" +#: js/blocks/SensorsBlocks.js:644 +msgid "The Get red block returns the red component of the pixel under the turtle." +msgstr "गेट रेड ब्लॉक कछुआ के नीचे पिक्सेल का लाल घटक वापस करता है।" -#: js/PitchBlocks.js:886 -msgid "Pitch can be specified in terms of do re mi fa sol la ti." -msgstr "पिच को डो रे मि फा सोल ला टी के रूप में निर्दिष्ट किया जा सकता है।" +#: js/blocks/SensorsBlocks.js:685 +#: plugins/rodi.rtp:216 +msgid "pixel color" +msgstr "पिक्सेल का रंग" -#: js/PitchBlocks.js:920 -msgid "The Invert block rotates any contained notes around a target note." -msgstr "इनवर्ट ब्लॉक एक लक्ष्य नोट के चारों ओर शामिल नोट को घुमाता है।" +#: js/blocks/SensorsBlocks.js:690 +msgid "The Get pixel block returns the color of the pixel under the mouse." +msgstr "गेट पिक्सेल ब्लॉक माउस के नीचे पिक्सेल का रंग वापस करता है।" -#: js/PitchBlocks.js:927 -#.TRANS: pitch inversion rotates a pitch around another pitch -msgid "invert" -msgstr "इनवर्ट" +#: js/blocks/SensorsBlocks.js:696 +msgid "The Get pixel block returns the color of the pixel under the turtle." +msgstr "गेट पिक्सेल ब्लॉक कछुआ के नीचे पिक्सेल का रंग वापस करता है।" -#: js/PitchBlocks.js:929 -#: js/PitchBlocks.js:935 -#: js/PitchActions.js:727 -#: js/musicutils.js:726 -#: js/musicutils.js:902 -#.TRANS: invert based on even or odd number or musical scale -#.TRANS: even numbers -msgid "even" -msgstr "सम" +#: js/blocks/SensorsBlocks.js:758 +msgid "time" +msgstr "समय" -#: js/PitchBlocks.js:935 -#: js/PitchActions.js:729 -#: js/musicutils.js:728 -#: js/musicutils.js:903 -#.TRANS: odd numbers -msgid "odd" -msgstr "विषम" +#: js/blocks/SensorsBlocks.js:804 +msgid "cursor y" +msgstr "कर्सर वाई" -#: js/PitchBlocks.js:935 -#: js/PitchActions.js:731 -#: js/musicutils.js:729 -#: js/musicutils.js:904 -msgid "scalar" -msgstr "स्कैलर" +#: js/blocks/SensorsBlocks.js:809 +msgid "The Cursor Y block returns the vertical position of the mouse." +msgstr "कर्सर वाई ब्लॉक माउस का उदाहरण दिखाता है।" -#: js/PitchBlocks.js:966 -#.TRANS: pitch inversion rotates a pitch around another pitch (odd number) -msgid "invert (odd)" -msgstr "इनवर्ट (विषम)" +#: js/blocks/SensorsBlocks.js:845 +msgid "cursor x" +msgstr "कर्सर एक्स" -#: js/PitchBlocks.js:999 -#.TRANS: pitch inversion rotates a pitch around another pitch (even number) -msgid "invert (even)" -msgstr "इनवर्ट (सम)" +#: js/blocks/SensorsBlocks.js:850 +msgid "The Cursor X block returns the horizontal position of the mouse." +msgstr "कर्सर एक्स ब्लॉक माउस का क्षैतिज स्थान वापस करता है।" -#: js/PitchBlocks.js:1020 -#.TRANS: register is the octave of the current pitch -msgid "register" -msgstr "रजिस्टर" +#: js/blocks/SensorsBlocks.js:886 +msgid "mouse button" +msgstr "माउस बटन" -#: js/PitchBlocks.js:1024 -msgid "The Register block provides an easy way to modify the register (octave) of the notes that follow it." -msgstr "रजिस्टर ब्लॉक निर्दिष्ट किए गए नोट के रजिस्टर (ऑक्टेव) को संशोधित करने का एक आसान तरीका प्रदान करता है।" +#: js/blocks/SensorsBlocks.js:888 +msgid "The Mouse-button block returns True if the mouse button is pressed." +msgstr "माउस-बटन ब्लॉक तब सच है जब माउस बटन दबाया गया है।" -#: js/PitchBlocks.js:1074 -msgid "The Semi-tone transposition block will shift the pitches contained inside Note blocks up (or down) by half steps." -msgstr "सेमी-टोन स्थानांतरण ब्लॉक नोट ब्लॉक्स में शामिल पिच को आधे कदम से ऊपर (या नीचे) करेगा।" +#: js/blocks/SensorsBlocks.js:934 +msgid "to ASCII" +msgstr "एस्की में" -#: js/PitchBlocks.js:1076 -msgid "In the example shown above, sol is shifted up to sol#." -msgstr "ऊपर दिखाए गए उदाहरण में, सोल को सोल# की ओर स्थानांतरित किया गया है।" +#: js/blocks/SensorsBlocks.js:938 +msgid "The To ASCII block converts numbers to letters." +msgstr "टू एस्की ब्लॉक संख्याओं को अक्षर में बदलता है।" -#: js/PitchBlocks.js:1082 -#.TRANS: adjust the amount of shift (up or down) of a pitch -msgid "semi-tone transpose" -msgstr "सेमी-टोन स्थानांतरण" +#: js/blocks/SensorsBlocks.js:1005 +msgid "The Keyboard block returns computer keyboard input." +msgstr "कीबोर्ड ब्लॉक कंप्यूटर कीबोर्ड इनपुट वापस करता है।" -#: js/PitchBlocks.js:1115 -msgid "The Transpose by Ratio block will shift the pitches contained inside Note blocks up (or down) by a ratio" -msgstr "ट्रांसपोज़ बाय रेशियो ब्लॉक नोट ब्लॉक्स में शामिल पिच को एक अनुपात से ऊपर (या नीचे) करेगा" +#: js/blocks/RhythmBlockPaletteBlocks.js:50 +#: js/blocks/RhythmBlockPaletteBlocks.js:233 +#.TRANS: rhythm block +#.TRANS: translate "rhythm1" as rhythm +msgid "rhythm1" +msgstr "ताल1" -#: js/PitchBlocks.js:1121 -#.TRANS: adjust the amount of shift (up or down) of a pitch -msgid "transpose by ratio" -msgstr "मात्रा के अनुसार समायोजित करें" +#: js/blocks/RhythmBlockPaletteBlocks.js:70 +#: js/blocks/RhythmBlockPaletteBlocks.js:252 +#: js/blocks/RhythmBlockPaletteBlocks.js:485 +#: js/blocks/RhythmBlockPaletteBlocks.js:554 +#: js/blocks/RhythmBlockPaletteBlocks.js:875 +msgid "number of notes" +msgstr "नोटों की संख्या" -#: js/PitchBlocks.js:1204 -#.TRANS: down sixth means the note is five scale degrees below current note -msgid "down sixth" -msgstr "डाउन सिक्स्थ" +#: js/blocks/RhythmBlockPaletteBlocks.js:126 +msgid "polyphonic rhythm" +msgstr "बहुस्वर ताल" -#: js/PitchBlocks.js:1223 -#.TRANS: down third means the note is two scale degrees below current note -msgid "down third" -msgstr "डाउन थर्ड" +#: js/blocks/RhythmBlockPaletteBlocks.js:219 +msgid "The Rhythm block is used to generate rhythm patterns." +msgstr "रिद्धम ब्लॉक का उपयोग ताल पैटर्न बनाने के लिए किया जाता है।" -#: js/PitchBlocks.js:1242 -#.TRANS: seventh means the note is the six scale degrees above current note -msgid "seventh" -msgstr "सेवेंथ" +#: js/blocks/RhythmBlockPaletteBlocks.js:280 +msgid "1/64 note" +msgstr "1/64 नोट" -#: js/PitchBlocks.js:1261 -#.TRANS: sixth means the note is the five scale degrees above current note -msgid "sixth" -msgstr "सिक्सथ" +#: js/blocks/RhythmBlockPaletteBlocks.js:304 +msgid "1/32 note" +msgstr "1/32 नोट" -#: js/PitchBlocks.js:1280 -#.TRANS: fifth means the note is the four scale degrees above current note -msgid "fifth" -msgstr "फिफ्थ" +#: js/blocks/RhythmBlockPaletteBlocks.js:332 +msgid "1/16 note" +msgstr "1/16 नोट" -#: js/PitchBlocks.js:1300 -#.TRANS: fourth means the note is three scale degrees above current note -msgid "fourth" -msgstr "फोर्थ" +#: js/blocks/RhythmBlockPaletteBlocks.js:360 +msgid "eighth note" +msgstr "आठवीं नोट" -#: js/PitchBlocks.js:1319 -#.TRANS: third means the note is two scale degrees above current note -msgid "third" -msgstr "थर्ड" +#: js/blocks/RhythmBlockPaletteBlocks.js:388 +msgid "quarter note" +msgstr "क्वॉर्टर नोट" -#: js/PitchBlocks.js:1338 -#.TRANS: second means the note is one scale degree above current note -msgid "second" -msgstr "सेकंड" +#: js/blocks/RhythmBlockPaletteBlocks.js:416 +msgid "half note" +msgstr "हाफ नोट" -#: js/PitchBlocks.js:1379 -msgid "The Scalar transposition block will shift the pitches contained inside Note blocks up (or down) the scale." -msgstr "स्केलर स्थानांतरण ब्लॉक नोट ब्लॉक्स में शामिल पिच को स्केल के अनुसार ऊपर (या नीचे) करेगा।" +#: js/blocks/RhythmBlockPaletteBlocks.js:444 +msgid "whole note" +msgstr "पूरा नोट" -#: js/PitchBlocks.js:1381 -msgid "In the example shown above, sol is shifted up to la." -msgstr "ऊपर दिखाए गए उदाहरण में, सोल को सोल# की ओर स्थानांतरित किया गया है।" +#: js/blocks/RhythmBlockPaletteBlocks.js:482 +#: js/blocks/RhythmBlockPaletteBlocks.js:551 +#: js/blocks/RhythmBlockPaletteBlocks.js:602 +#.TRANS: A tuplet is a note value divided into irregular time values. +msgid "tuplet" +msgstr "टुपलेट" -#: js/PitchBlocks.js:1388 -#.TRANS: adjust the amount of shift (up or down) of a pitch by musical scale (scalar) steps -msgid "scalar transpose" -msgstr "स्केलर स्थानांतरण" +#: js/blocks/RhythmBlockPaletteBlocks.js:768 +msgid "septuplet" +msgstr "सेप्टुप्लेट" -#: js/PitchBlocks.js:1423 -msgid "The Accidental block is used to create sharps and flats" -msgstr "अक्सीडेंटल ब्लॉक का उपयोग शार्प और फ्लैट बनाने के लिए किया जाता है" +#: js/blocks/RhythmBlockPaletteBlocks.js:796 +msgid "quintuplet" +msgstr "क्विंटुप्लेट" -#: js/PitchBlocks.js:1430 -#.TRANS: An accidental is a modification to a pitch, e.g., sharp or flat. -msgid "accidental override" -msgstr "एक्सीडेंटल ओवरराइड" +#: js/blocks/RhythmBlockPaletteBlocks.js:824 +msgid "triplet" +msgstr "त्रैपलेट" -#: js/PitchBlocks.js:1543 -msgid "The Hertz block (in combination with a Number block) will play a sound at the specified frequency." -msgstr "हर्ट्ज ब्लॉक (नंबर ब्लॉक के साथ मेल करके) निर्दिष्ट ताक़त पर ध्वनि बजाएगा।" +#: js/blocks/RhythmBlockPaletteBlocks.js:851 +msgid "simple tuplet" +msgstr "साधा टुपलेट" -#: js/PitchBlocks.js:1633 -msgid "The Pitch Number block will play a pitch associated by its number, e.g. 0 for C and 7 for G." -msgstr "पिच नंबर ब्लॉक उसकी संख्या से जुड़े एक पिच को बजाएगा, उदाहरण के लिए सी के लिए 0 और जी के लिए 7।" +#: js/blocks/RhythmBlockPaletteBlocks.js:861 +msgid "Tuplets are a collection of notes that get scaled to a specific duration." +msgstr "टुपलेट्स एक ऐसे समय की निर्दिष्ट अवधि के लिए स्केल करने वाले नोट्स का संग्रह होते हैं।" -#: js/PitchBlocks.js:1665 -#: js/PitchBlocks.js:1707 -#.TRANS: a numeric mapping of the notes in an octave based on the musical mode -#.TRANS: a numeric mapping of the notes in an octave based on the musical mode -msgid "nth modal pitch" -msgstr "एनथ मोडल पिच" +#: js/blocks/DrumBlocks.js:59 +msgid "The Noise name block is used to select a noise synthesizer." +msgstr "" -#: js/PitchBlocks.js:1668 -msgid "n^th Modal Pitch takes the pattern of pitches in semitones for a mode and makes each point a degree of the mode," -msgstr "एनथ मोडल पिच एक मोड के लिए सेमिटोन्स में पिच का पैटर्न लेता है और हर बिंदु को मोड का डिग्री बनाता है," +#: js/blocks/DrumBlocks.js:102 +msgid "The Drum name block is used to select a drum." +msgstr "" -#: js/PitchBlocks.js:1670 -msgid "starting from 1 and regardless of tonal framework (i.e. not always 8 notes in the octave)" -msgstr "1 से शुरू होकर और स्वर संरचना की परवाह किए बिना (अर्थात हमेशा ऑक्टेव में 8 नोट्स नहीं होतीं)" +#: js/blocks/DrumBlocks.js:146 +msgid "The Effects name block is used to select a sound effect." +msgstr "" -#: js/PitchBlocks.js:1711 -msgid "N^th Modal Pitch takes a number as an input as the n^th degree for the given mode. 0 is the first position, 1 is the second, -1 is the note before the first etc." -msgstr "एनथ मोडल पिच एक दिए गए मोड के लिए एनथ डिग्री के रूप में एक संख्या लेता है। 0 पहली पोज़िशन है, 1 दूसरी है, -1 पहले से पहले का नोट है इत्यादि।" +#: js/blocks/DrumBlocks.js:163 +msgid "noise" +msgstr "" -#: js/PitchBlocks.js:1713 -msgid "The pitches change according to the mode specified without any need for respellings." -msgstr "नोट्स दुबारा लिखने की आवश्यकता के बिना जिस प्रकार के मोड ने निर्दिष्ट किया है, उसके अनुसार बदल जाते हैं।" +#: js/blocks/DrumBlocks.js:177 +msgid "The Play noise block will generate white, pink, or brown noise." +msgstr "" -#: js/PitchBlocks.js:1752 -msgid "Scale Degree is a common convention in music. Scale Degree offers seven possible positions in the scale (1-7) and can be modified via accidentals." -msgstr "स्केल डिग्री संगीत में एक सामान्य सम्मिलन है। स्केल डिग्री स्केल में सात संभावित स्थान (1-7) प्रदान करती है और एक्सीडेंटल्स के माध्यम से संशोधित की जा सकती है।" +#: js/blocks/DrumBlocks.js:317 +msgid "Replace every instance of a pitch with a drum sound." +msgstr "" -#: js/PitchBlocks.js:1754 -msgid "Scale Degree 1 is always the first pitch in a given scale, regardless of octave." -msgstr "स्केल डिग्री 1 हमेशा एक दिए गए स्केल में पहला पिच है, ऑक्टेव की परवाह किए बिना।" +#: js/blocks/DrumBlocks.js:328 +#.TRANS: map a pitch to a drum sound +msgid "map pitch to drum" +msgstr "" -#: js/PitchBlocks.js:1776 -#.TRANS: step some number of notes in current musical scale -msgid "scalar step" -msgstr "स्केलर स्टेप" +#: js/blocks/DrumBlocks.js:395 +msgid "In the example above, a kick drum sound will be played instead of sol." +msgstr "" -#: js/PitchBlocks.js:1781 -msgid "The Scalar Step block (in combination with a Number block) will play the next pitch in a scale," -msgstr "स्केलर स्टेप ब्लॉक (नंबर ब्लॉक के साथ मेल करके) स्केल में अगला पिच बजाएगा," +#: js/blocks/DrumBlocks.js:407 +#.TRANS: set the current drum sound for playback +msgid "set drum" +msgstr "" -#: js/PitchBlocks.js:1783 -msgid "eg if the last note played was sol, Scalar Step 1 will play la." -msgstr "उदाहरण के लिए अगर आखिरी बजाए गए नोट सोल" +#: js/blocks/DrumBlocks.js:451 +msgid "sound effect" +msgstr "" -#: js/PitchBlocks.js:1818 -msgid "The Pitch block specifies the pitch name and octave of a note that together determine the frequency of the note." +#: js/blocks/DrumBlocks.js:489 +msgid "You can use multiple Drum blocks within a Note block." msgstr "" -#: js/GraphicsBlocks.js:46 -#: js/DictActions.js:77 -#: js/DictActions.js:155 -#: js/DictActions.js:189 +#: js/blocks/GraphicsBlocks.js:46 +#: js/turtleactions/DictActions.js:77 +#: js/turtleactions/DictActions.js:144 +#: js/turtleactions/DictActions.js:173 msgid "heading" msgstr "शीर्षक" -#: js/GraphicsBlocks.js:56 +#: js/blocks/GraphicsBlocks.js:56 msgid "The Heading block returns the orientation of the mouse." msgstr "" -#: js/GraphicsBlocks.js:62 +#: js/blocks/GraphicsBlocks.js:62 msgid "The Heading block returns the orientation of the turtle." msgstr "" -#: js/GraphicsBlocks.js:133 +#: js/blocks/GraphicsBlocks.js:133 msgid "The Y block returns the vertical position of the mouse." msgstr "" -#: js/GraphicsBlocks.js:140 +#: js/blocks/GraphicsBlocks.js:140 msgid "The Y block returns the vertical position of the turtle." msgstr "" -#: js/GraphicsBlocks.js:149 +#: js/blocks/GraphicsBlocks.js:149 msgid "y3" msgstr "" -#: js/GraphicsBlocks.js:219 +#: js/blocks/GraphicsBlocks.js:219 msgid "The X block returns the horizontal position of the mouse." msgstr "" -#: js/GraphicsBlocks.js:226 +#: js/blocks/GraphicsBlocks.js:226 msgid "The X block returns the horizontal position of the turtle." msgstr "" -#: js/GraphicsBlocks.js:235 +#: js/blocks/GraphicsBlocks.js:235 msgid "x3" msgstr "" -#: js/GraphicsBlocks.js:295 +#: js/blocks/GraphicsBlocks.js:295 msgid "scroll xy" msgstr "" -#: js/GraphicsBlocks.js:303 +#: js/blocks/GraphicsBlocks.js:303 msgid "The Scroll XY block moves the canvas." msgstr "" -#: js/GraphicsBlocks.js:313 +#: js/blocks/GraphicsBlocks.js:313 msgid "x2" msgstr "" -#: js/GraphicsBlocks.js:313 +#: js/blocks/GraphicsBlocks.js:313 msgid "y2" msgstr "" -#: js/GraphicsBlocks.js:373 -#: js/temperament.js:213 -#: js/temperament.js:241 +#: js/blocks/GraphicsBlocks.js:373 +#: js/widgets/temperament.js:319 +#: js/widgets/temperament.js:347 msgid "clear" msgstr "साफ़ करें" -#: js/GraphicsBlocks.js:426 +#: js/blocks/GraphicsBlocks.js:426 msgid "The Control-point 2 block sets the second control point for the Bezier curve." msgstr "" -#: js/GraphicsBlocks.js:433 +#: js/blocks/GraphicsBlocks.js:433 msgid "control point 2" msgstr "" -#: js/GraphicsBlocks.js:436 -#: js/GraphicsBlocks.js:487 -#: js/GraphicsBlocks.js:534 -#: js/GraphicsBlocks.js:750 +#: js/blocks/GraphicsBlocks.js:436 +#: js/blocks/GraphicsBlocks.js:487 +#: js/blocks/GraphicsBlocks.js:534 +#: js/blocks/GraphicsBlocks.js:750 msgid "x1" msgstr "" -#: js/GraphicsBlocks.js:436 -#: js/GraphicsBlocks.js:487 -#: js/GraphicsBlocks.js:534 -#: js/GraphicsBlocks.js:750 +#: js/blocks/GraphicsBlocks.js:436 +#: js/blocks/GraphicsBlocks.js:487 +#: js/blocks/GraphicsBlocks.js:534 +#: js/blocks/GraphicsBlocks.js:750 msgid "y1" msgstr "" -#: js/GraphicsBlocks.js:477 +#: js/blocks/GraphicsBlocks.js:477 msgid "The Control-point 1 block sets the first control point for the Bezier curve." msgstr "" -#: js/GraphicsBlocks.js:484 +#: js/blocks/GraphicsBlocks.js:484 msgid "control point 1" msgstr "" -#: js/GraphicsBlocks.js:527 +#: js/blocks/GraphicsBlocks.js:527 msgid "The Bezier block draws a Bezier curve." msgstr "" -#: js/GraphicsBlocks.js:531 +#: js/blocks/GraphicsBlocks.js:531 msgid "bezier" msgstr "" -#: js/GraphicsBlocks.js:592 +#: js/blocks/GraphicsBlocks.js:592 msgid "The Arc block moves the turtle in an arc." msgstr "" -#: js/GraphicsBlocks.js:600 +#: js/blocks/GraphicsBlocks.js:600 msgid "arc" msgstr "चाप" -#: js/GraphicsBlocks.js:603 +#: js/blocks/GraphicsBlocks.js:603 msgid "angle" msgstr "कोण" -#: js/GraphicsBlocks.js:603 +#: js/blocks/GraphicsBlocks.js:603 msgid "radius" msgstr "त्रिज्या" -#: js/GraphicsBlocks.js:620 -#: js/GraphicsBlocks.js:767 -#: js/GraphicsBlocks.js:1010 -#: js/GraphicsBlocks.js:1093 +#: js/blocks/GraphicsBlocks.js:620 +#: js/blocks/GraphicsBlocks.js:767 +#: js/blocks/GraphicsBlocks.js:1010 +#: js/blocks/GraphicsBlocks.js:1093 msgid "Value must be within -5000 to 5000 when Wrap Mode is off." msgstr "" -#: js/GraphicsBlocks.js:622 -#: js/GraphicsBlocks.js:769 -#: js/GraphicsBlocks.js:1012 -#: js/GraphicsBlocks.js:1095 +#: js/blocks/GraphicsBlocks.js:622 +#: js/blocks/GraphicsBlocks.js:769 +#: js/blocks/GraphicsBlocks.js:1012 +#: js/blocks/GraphicsBlocks.js:1095 msgid "Value must be within -20000 to 20000 when Wrap Mode is on." msgstr "" -#: js/GraphicsBlocks.js:660 +#: js/blocks/GraphicsBlocks.js:660 msgid "set heading" msgstr "शीर्षक सेट करें" -#: js/GraphicsBlocks.js:673 +#: js/blocks/GraphicsBlocks.js:673 msgid "The Set heading block sets the heading of the turtle." msgstr "" -#: js/GraphicsBlocks.js:733 +#: js/blocks/GraphicsBlocks.js:733 msgid "The Set XY block moves the mouse to a specific position on the screen." msgstr "" -#: js/GraphicsBlocks.js:739 +#: js/blocks/GraphicsBlocks.js:739 msgid "The Set XY block moves the turtle to a specific position on the screen." msgstr "" -#: js/GraphicsBlocks.js:747 +#: js/blocks/GraphicsBlocks.js:747 msgid "set xy" msgstr "xy सेट करें" -#: js/GraphicsBlocks.js:819 +#: js/blocks/GraphicsBlocks.js:819 msgid "The Right block turns the mouse to the right." msgstr "" -#: js/GraphicsBlocks.js:826 +#: js/blocks/GraphicsBlocks.js:826 msgid "The Right block turns the turtle to the right." msgstr "" -#: js/GraphicsBlocks.js:835 +#: js/blocks/GraphicsBlocks.js:835 msgid "right1" msgstr "" -#: js/GraphicsBlocks.js:835 +#: js/blocks/GraphicsBlocks.js:835 #: plugins/rodi.rtp:77 #: plugins/rodi.rtp:340 #: plugins/rodi.rtp:375 msgid "right" msgstr "दायाँ" -#: js/GraphicsBlocks.js:899 +#: js/blocks/GraphicsBlocks.js:899 msgid "The Left block turns the mouse to the left." msgstr "" -#: js/GraphicsBlocks.js:906 +#: js/blocks/GraphicsBlocks.js:906 msgid "The Left block turns the turtle to the left." msgstr "" -#: js/GraphicsBlocks.js:915 +#: js/blocks/GraphicsBlocks.js:915 msgid "left1" msgstr "" -#: js/GraphicsBlocks.js:915 +#: js/blocks/GraphicsBlocks.js:915 #: plugins/rodi.rtp:79 #: plugins/rodi.rtp:339 #: plugins/rodi.rtp:362 msgid "left" msgstr "बायाँ" -#: js/GraphicsBlocks.js:967 -#: js/temperament.js:734 -#: js/temperament.js:933 +#: js/blocks/GraphicsBlocks.js:967 +#: js/widgets/temperament.js:875 +#: js/widgets/temperament.js:1078 #: plugins/rodi.rtp:69 #: plugins/rodi.rtp:387 msgid "back" msgstr "पीछे" -#: js/GraphicsBlocks.js:976 +#: js/blocks/GraphicsBlocks.js:976 msgid "The Back block moves the mouse backward." msgstr "" -#: js/GraphicsBlocks.js:983 +#: js/blocks/GraphicsBlocks.js:983 msgid "The Back block moves the turtle backward." msgstr "" -#: js/GraphicsBlocks.js:1050 +#: js/blocks/GraphicsBlocks.js:1050 #: plugins/rodi.rtp:71 #: plugins/rodi.rtp:400 msgid "forward" msgstr "आगे" -#: js/GraphicsBlocks.js:1059 +#: js/blocks/GraphicsBlocks.js:1059 msgid "The Forward block moves the mouse forward." msgstr "" -#: js/GraphicsBlocks.js:1066 +#: js/blocks/GraphicsBlocks.js:1066 msgid "The Forward block moves the turtle forward." msgstr "" -#: js/GraphicsBlocks.js:1154 -#: js/GraphicsBlocks.js:1172 +#: js/blocks/GraphicsBlocks.js:1154 +#: js/blocks/GraphicsBlocks.js:1172 msgid "wrap" msgstr "" -#: js/OrnamentBlocks.js:32 -msgid "staccato factor" -msgstr "स्टाकेटो कारक" - -#: js/OrnamentBlocks.js:108 -msgid "slur factor" -msgstr "स्लर कारक" - -#: js/OrnamentBlocks.js:217 -#: js/OrnamentBlocks.js:309 -#.TRANS: the neighbor refers to a neighboring note, e.g., D is a neighbor of C -msgid "neighbor" -msgstr "पड़ोसी" - -#: js/OrnamentBlocks.js:293 -msgid "The Neighbor block rapidly switches between neighboring pitches." -msgstr "नेबर ब्लॉक तेजी से पड़ोसी स्वरों के बीच स्विच करता है।" - -#: js/OrnamentBlocks.js:364 -msgid "glide" -msgstr "ग्लाइड" - -#: js/OrnamentBlocks.js:479 -#: js/OrnamentBlocks.js:643 -msgid "slur" -msgstr "स्लर" - -#: js/OrnamentBlocks.js:558 -#: js/OrnamentBlocks.js:710 -#.TRANS: play each note sharply detached from the others -msgid "staccato" -msgstr "स्टाकेटो" - -#: js/PenBlocks.js:24 +#: js/blocks/PenBlocks.js:30 msgid "purple" msgstr "बैंगनी" -#: js/PenBlocks.js:37 -#: js/SensorsBlocks.js:521 -#: plugins/rodi.rtp:219 -msgid "blue" -msgstr "नीला" - -#: js/PenBlocks.js:50 -#: js/SensorsBlocks.js:577 -#: plugins/rodi.rtp:218 -msgid "green" -msgstr "हरा" - -#: js/PenBlocks.js:63 +#: js/blocks/PenBlocks.js:80 msgid "yellow" msgstr "पीला" -#: js/PenBlocks.js:76 +#: js/blocks/PenBlocks.js:96 #: plugins/nutrition.rtp:164 msgid "orange" msgstr "नारंगी" -#: js/PenBlocks.js:89 -#: js/SensorsBlocks.js:633 -#: plugins/rodi.rtp:217 -msgid "red" -msgstr "लाल" - -#: js/PenBlocks.js:102 +#: js/blocks/PenBlocks.js:128 msgid "white" msgstr "सफेद" -#: js/PenBlocks.js:115 +#: js/blocks/PenBlocks.js:144 msgid "black" msgstr "काला" -#: js/PenBlocks.js:128 +#: js/blocks/PenBlocks.js:163 msgid "begin fill" msgstr "भरना शुरू करें" -#: js/PenBlocks.js:143 +#: js/blocks/PenBlocks.js:190 msgid "end fill" msgstr "अंत भरें" -#: js/PenBlocks.js:159 -#: js/PenBlocks.js:386 +#: js/blocks/PenBlocks.js:212 +#: js/blocks/PenBlocks.js:560 #.TRANS: set the background color msgid "background" msgstr "पृष्ठभूमि" -#: js/PenBlocks.js:206 -#: js/DictActions.js:71 -#: js/DictActions.js:149 -#: js/DictActions.js:186 +#: js/blocks/PenBlocks.js:274 +#: js/turtleactions/DictActions.js:71 +#: js/turtleactions/DictActions.js:138 +#: js/turtleactions/DictActions.js:170 msgid "grey" msgstr "ग्रे" -#: js/PenBlocks.js:210 +#: js/blocks/PenBlocks.js:282 msgid "The Grey block returns the current pen grey value." msgstr "ग्रे ब्लॉक वर्तमान पेन का ग्रे मूल्य लौटाता है।" -#: js/PenBlocks.js:243 -#: js/DictActions.js:69 -#: js/DictActions.js:147 -#: js/DictActions.js:185 +#: js/blocks/PenBlocks.js:340 +#: js/turtleactions/DictActions.js:69 +#: js/turtleactions/DictActions.js:136 +#: js/turtleactions/DictActions.js:169 msgid "shade" msgstr "छाया" -#: js/PenBlocks.js:247 +#: js/blocks/PenBlocks.js:347 msgid "The Shade block returns the current pen shade value." msgstr "छाया ब्लॉक वर्तमान पेन का छाया मूल्य लौटाता है।" -#: js/PenBlocks.js:280 -#: js/DictActions.js:67 -#: js/DictActions.js:145 -#: js/DictActions.js:184 +#: js/blocks/PenBlocks.js:405 +#: js/turtleactions/DictActions.js:67 +#: js/turtleactions/DictActions.js:134 +#: js/turtleactions/DictActions.js:168 msgid "color" msgstr "रंग" -#: js/PenBlocks.js:285 +#: js/blocks/PenBlocks.js:415 msgid "The Color block returns the current pen color." msgstr "रंग ब्लॉक वर्तमान पेन का रंग लौटाता है।" -#: js/PenBlocks.js:318 -#: js/DictActions.js:73 -#: js/DictActions.js:151 -#: js/DictActions.js:187 +#: js/blocks/PenBlocks.js:470 +#: js/turtleactions/DictActions.js:73 +#: js/turtleactions/DictActions.js:140 +#: js/turtleactions/DictActions.js:171 msgid "pen size" msgstr "पेन आकार" -#: js/PenBlocks.js:322 +#: js/blocks/PenBlocks.js:474 msgid "The Pen size block returns the current pen size value." msgstr "पेन साइज ब्लॉक वर्तमान पेन का आकार मूल्य लौटाता है।" -#: js/PenBlocks.js:355 -msgid "set font" -msgstr "फॉन्ट सेट करें" - -#: js/PenBlocks.js:358 -msgid "The Set font block sets the font used by the Show block." -msgstr "सेट फॉन्ट ब्लॉक शो ब्लॉक द्वारा उपयोग किए जाने वाले फॉन्ट को सेट करता है।" - -#: js/PenBlocks.js:391 -msgid "The Background block sets the window background color." -msgstr "बैकग्राउंड ब्लॉक विंडो के पृष्ठभूमि का रंग सेट करता है।" - -#: js/PenBlocks.js:408 -msgid "The Hollow line block creates a line with a hollow center." -msgstr "होलो लाइन ब्लॉक एक होलो केंद्र के साथ एक रेखा बनाता है।" - -#: js/PenBlocks.js:415 -#.TRANS: draw a line logo has a hollow space down its center -msgid "hollow line" -msgstr "होलो रेखा" - -#: js/PenBlocks.js:462 -msgid "The Fill block fills in a shape with a color." -msgstr "फिल ब्लॉक एक रंग के साथ एक आकृति को भरता है।" - -#: js/PenBlocks.js:470 -#.TRANS: fill in as a solid color -msgid "fill" -msgstr "भरें" - -#: js/PenBlocks.js:527 -#.TRANS: raise up the pen so logo it does not draw when it is moved -msgid "pen up" -msgstr "पेन ऊपर" - -#: js/PenBlocks.js:532 -msgid "The Pen-up block raises the pen so that it does not draw." -msgstr "पेन-अप ब्लॉक पेन को उठाता है ताकि यह ड्रा न करे।" - -#: js/PenBlocks.js:552 -#.TRANS: put down the pen so logo it draws when it is moved -msgid "pen down" -msgstr "पेन नीचे" - -#: js/PenBlocks.js:557 -msgid "The Pen-down block lowers the pen so that it draws." -msgstr "पेन-डाउन ब्लॉक पेन को नीचे ले जाता है ताकि यह ड्रा करे।" - -#: js/PenBlocks.js:577 -#.TRANS: set the width of the line drawn by the pen -msgid "set pen size" -msgstr "पेन आकार सेट करें" - -#: js/PenBlocks.js:583 -msgid "The Set-pen-size block changes the size of the pen." -msgstr "सेट-पेन-साइज ब्लॉक पेन के आकार को बदलता है।" - -#: js/PenBlocks.js:623 -#.TRANS: set degree of translucence of the pen color -msgid "set translucency" -msgstr "पारदर्शिता सेट करें" - -#: js/PenBlocks.js:627 -msgid "The Set translucency block changes the opacity of the pen." -msgstr "सेट ट्रांसलूसेंसी ब्लॉक पेन की अपारदर्शिता को बदलता है।" - -#: js/PenBlocks.js:668 -msgid "set hue" -msgstr "रंग सेट करें" - -#: js/PenBlocks.js:672 -msgid "The Set hue block changes the color of the pen." -msgstr "सेट ह्यू ब्लॉक पेन का रंग बदलता है।" - -#: js/PenBlocks.js:711 -msgid "set shade" -msgstr "छाया सेट करें" - -#: js/PenBlocks.js:717 -msgid "The Set-shade block changes the pen color from dark to light." -msgstr "सेट-शेड ब्लॉक पेन का रंग काले से लाइट में बदलता है।" - -#: js/PenBlocks.js:757 -#.TRANS: set the level of vividness of the pen color -msgid "set grey" -msgstr "ग्रे सेट करें" - -#: js/PenBlocks.js:761 -msgid "The Set grey block changes the vividness of the pen color." -msgstr "सेट ग्रे ब्लॉक पेन के रंग की चमक को बदलता है।" - -#: js/PenBlocks.js:800 -msgid "set color" -msgstr "रंग सेट करें" - -#: js/PenBlocks.js:806 -msgid "The Set-color block changes the pen color." -msgstr "सेट-कलर ब्लॉक पेन का रंग बदलता है।" - -#: js/VolumeBlocks.js:35 -msgid "synth volume" -msgstr "सिंथ वॉल्यूम" - -#: js/VolumeBlocks.js:39 -msgid "The Synth volume block returns the current volume of the current synthesizer." -msgstr "सिंथ वॉल्यूम ब्लॉक वर्तमान सिंथाइज़र की वॉल्यूम लौटाता है।" - -#: js/VolumeBlocks.js:47 -#: js/musicutils.js:730 -#: js/synthutils.js:56 -#.TRANS: musical instrument -msgid "piano" -msgstr "पियानो" - -#: js/VolumeBlocks.js:105 -msgid "master volume" -msgstr "मास्टर वॉल्यूम" - -#: js/VolumeBlocks.js:109 -msgid "The Master volume block returns the master volume." -msgstr "मास्टर वॉल्यूम ब्लॉक मास्टर वॉल्यूम लौटाता है।" - -#: js/VolumeBlocks.js:355 -#: js/VolumeBlocks.js:524 -msgid "set synth volume" -msgstr "सिंथ वॉल्यूम सेट करें" - -#: js/VolumeBlocks.js:362 -#: js/VolumeBlocks.js:545 -msgid "synth" -msgstr "सिंथ" - -#: js/VolumeBlocks.js:403 -#: js/VolumeBlocks.js:577 -#: js/VolumeBlocks.js:740 -#: js/VolumeActions.js:173 -msgid "Setting volume to 0." -msgstr "वॉल्यूम को 0 पर सेट करना।" - -#: js/VolumeBlocks.js:440 -msgid "Synth not found" -msgstr "सिंथ नहीं मिला" - -#: js/VolumeBlocks.js:494 -msgid "set drum volume" -msgstr "ड्रम वॉल्यूम सेट करें" - -#: js/VolumeBlocks.js:530 -msgid "The Set synth volume block will change the volume of a particular synth," -msgstr "सेट सिंथ वॉल्यूम ब्लॉक एक विशिष्ट सिंथ की वॉल्यूम बदलेगा," - -#: js/VolumeBlocks.js:532 -msgid "eg guitar violin snare drum etc." -msgstr "जैसे गिटार वायलिन स्नेयर ड्रम आदि।" - -#: js/VolumeBlocks.js:534 -msgid "The default volume is 50." -msgstr "डिफ़ॉल्ट वॉल्यूम 50 है।" - -#: js/VolumeBlocks.js:536 -msgid "The range is 0 for silence to 100 for full volume." -msgstr "स्नेहिलता के लिए 0 से पूर्ण वॉल्यूम के लिए 100।" +#: js/blocks/PenBlocks.js:513 +msgid "set font" +msgstr "फॉन्ट सेट करें" -#: js/VolumeBlocks.js:597 -msgid "set panning" -msgstr "पैनिंग सेट करें" +#: js/blocks/PenBlocks.js:518 +msgid "The Set font block sets the font used by the Show block." +msgstr "सेट फॉन्ट ब्लॉक शो ब्लॉक द्वारा उपयोग किए जाने वाले फॉन्ट को सेट करता है।" -#: js/VolumeBlocks.js:603 -msgid "The Set Panning block sets the panning for all synthesizers." -msgstr "सेट पैनिंग ब्लॉक सभी सिंथाइज़र्स के लिए पैनिंग सेट करता है।" +#: js/blocks/PenBlocks.js:567 +msgid "The Background block sets the window background color." +msgstr "बैकग्राउंड ब्लॉक विंडो के पृष्ठभूमि का रंग सेट करता है।" -#: js/VolumeBlocks.js:625 -msgid "Warning: Sound is coming out from only the left or right side." -msgstr "चेतावनी: ध्वनि केवल बाएं या दाएं ओर से आ रही है।" +#: js/blocks/PenBlocks.js:598 +msgid "The Hollow line block creates a line with a hollow center." +msgstr "होलो लाइन ब्लॉक एक होलो केंद्र के साथ एक रेखा बनाता है।" -#: js/VolumeBlocks.js:647 -#: js/VolumeBlocks.js:695 -msgid "set master volume" -msgstr "मास्टर वॉल्यूम सेट करें" +#: js/blocks/PenBlocks.js:606 +#.TRANS: draw a line logo has a hollow space down its center +msgid "hollow line" +msgstr "होलो रेखा" -#: js/VolumeBlocks.js:653 -msgid "The Set master volume block sets the volume for all synthesizers." -msgstr "सेट मास्टर वॉल्यूम ब्लॉक सभी सिंथाइज़र्स के लिए वॉल्यूम सेट करता है।" +#: js/blocks/PenBlocks.js:675 +msgid "The Fill block fills in a shape with a color." +msgstr "फिल ब्लॉक एक रंग के साथ एक आकृति को भरता है।" -#: js/VolumeBlocks.js:784 -msgid "The Set relative volume block changes the volume of the contained notes." -msgstr "सेट रिलेटिव वॉल्यूम ब्लॉक शामिल नोट्स की वॉल्यूम को बदलता है।" +#: js/blocks/PenBlocks.js:684 +#.TRANS: fill in as a solid color +msgid "fill" +msgstr "भरें" -#: js/VolumeBlocks.js:791 -msgid "set relative volume" -msgstr "रिलेटिव वॉल्यूम सेट करें" +#: js/blocks/PenBlocks.js:761 +#.TRANS: raise up the pen so logo it does not draw when it is moved +msgid "pen up" +msgstr "पेन ऊपर" -#: js/VolumeBlocks.js:857 -msgid "decrescendo" -msgstr "डेक्रेसेंडो" +#: js/blocks/PenBlocks.js:768 +msgid "The Pen-up block raises the pen so that it does not draw." +msgstr "पेन-अप ब्लॉक पेन को उठाता है ताकि यह ड्रा न करे।" -#: js/VolumeBlocks.js:921 -msgid "crescendo" -msgstr "क्रेशेंडो" +#: js/blocks/PenBlocks.js:802 +#.TRANS: put down the pen so logo it draws when it is moved +msgid "pen down" +msgstr "पेन नीचे" -#: js/ToneBlocks.js:34 -msgid "oscillator" -msgstr "ऑस्किलेटर" +#: js/blocks/PenBlocks.js:810 +msgid "The Pen-down block lowers the pen so that it draws." +msgstr "पेन-डाउन ब्लॉक पेन को नीचे ले जाता है ताकि यह ड्रा करे।" -#: js/ToneBlocks.js:44 -#: js/timbre.js:1562 -#.TRANS: Partials refers to the number of sine waves combined into the sound. -msgid "partials" -msgstr "अंश" +#: js/blocks/PenBlocks.js:844 +#.TRANS: set the width of the line drawn by the pen +msgid "set pen size" +msgstr "पेन आकार सेट करें" -#: js/ToneBlocks.js:76 -msgid "You are adding multiple oscillator blocks." -msgstr "आप कई ऑस्किलेटर ब्लॉक जोड़ रहे हैं।" +#: js/blocks/PenBlocks.js:854 +msgid "The Set-pen-size block changes the size of the pen." +msgstr "सेट-पेन-साइज ब्लॉक पेन के आकार को बदलता है।" -#: js/ToneBlocks.js:144 -#: js/timbre.js:1225 -#.TRANS: a duo synthesizer combines a synth with a sequencer -msgid "duo synth" -msgstr "ड्यूओ सिंथ" +#: js/blocks/PenBlocks.js:913 +#.TRANS: set degree of translucence of the pen color +msgid "set translucency" +msgstr "पारदर्शिता सेट करें" -#: js/ToneBlocks.js:149 -msgid "The Duo synth block is a duo-frequency modulator used to define a timbre." -msgstr "ड्यूओ सिंथ ब्लॉक एक ड्यूओ-फ़्रीक्वेंसी मॉड्युलेटर है जिसे एक टिम्बर को परिभाषित करने के लिए उपयोग किया जाता है।" +#: js/blocks/PenBlocks.js:921 +msgid "The Set translucency block changes the opacity of the pen." +msgstr "सेट ट्रांसलूसेंसी ब्लॉक पेन की अपारदर्शिता को बदलता है।" -#: js/ToneBlocks.js:157 -#: js/timbre.js:1476 -msgid "vibrato rate" -msgstr "विब्रेटो दर" +#: js/blocks/PenBlocks.js:981 +msgid "set hue" +msgstr "रंग सेट करें" -#: js/ToneBlocks.js:157 -msgid "vibrato intensity" -msgstr "विब्रेटो तीव्रता" +#: js/blocks/PenBlocks.js:989 +msgid "The Set hue block changes the color of the pen." +msgstr "सेट ह्यू ब्लॉक पेन का रंग बदलता है।" -#: js/ToneBlocks.js:185 -#: js/timbre.js:1221 -#.TRANS: AM (amplitude modulation) synthesizer -msgid "AM synth" -msgstr "ए.एम. सिंथ" +#: js/blocks/PenBlocks.js:1047 +msgid "set shade" +msgstr "छाया सेट करें" -#: js/ToneBlocks.js:189 -msgid "The AM synth block is an amplitude modulator used to define a timbre." -msgstr "ए.एम. सिंथ ब्लॉक एक एम्प्लीट्यूड मॉड्युलेटर है जिसे एक टिम्बर को परिभाषित करने के लिए उपयोग किया जाता है।" +#: js/blocks/PenBlocks.js:1057 +msgid "The Set-shade block changes the pen color from dark to light." +msgstr "सेट-शेड ब्लॉक पेन का रंग काले से लाइट में बदलता है।" -#: js/ToneBlocks.js:224 -#: js/timbre.js:1223 -#.TRANS: FM (frequency modulation) synthesizer -msgid "FM synth" -msgstr "एफ.एम. सिंथ" +#: js/blocks/PenBlocks.js:1111 +#.TRANS: set the level of vividness of the pen color +msgid "set grey" +msgstr "ग्रे सेट करें" -#: js/ToneBlocks.js:228 -msgid "The FM synth block is a frequency modulator used to define a timbre." -msgstr "एफ.एम. सिंथ ब्लॉक एक फ़्रीक्वेंसी मॉड्युलेटर है जिसे एक टिम्बर को परिभाषित करने के लिए उपयोग किया जाता है।" +#: js/blocks/PenBlocks.js:1119 +msgid "The Set grey block changes the vividness of the pen color." +msgstr "सेट ग्रे ब्लॉक पेन के रंग की चमक को बदलता है।" -#: js/ToneBlocks.js:262 -msgid "partial" -msgstr "आंशिक" +#: js/blocks/PenBlocks.js:1172 +msgid "set color" +msgstr "रंग सेट करें" -#: js/ToneBlocks.js:265 -msgid "The Partial block is used to specify a weight for a specific partial harmonic." -msgstr "" +#: js/blocks/PenBlocks.js:1182 +msgid "The Set-color block changes the pen color." +msgstr "सेट-कलर ब्लॉक पेन का रंग बदलता है।" -#: js/ToneBlocks.js:284 -#.TRANS: partials are weighted components in a harmonic series -msgid "Partial weight must be between 0 and 1." -msgstr "पार्शियल वजन 0 और 1 के बीच होना चाहिए।" +#: js/blocks/PitchBlocks.js:141 +#.TRANS: musical transposition (adjustment of pitch up or down) +msgid "transposition" +msgstr "स्वर स्थानांतरण" -#: js/ToneBlocks.js:297 -#.TRANS: partials are weighted components in a harmonic series -msgid "Partial block should be used inside of a Weighted-partials block." -msgstr "पार्शियल ब्लॉक को एक वेटेड-पार्शियल्स ब्लॉक के अंदर उपयोग किया जाना चाहिए।" +#: js/blocks/PitchBlocks.js:168 +#.TRANS: step down one note in current musical scale +msgid "scalar step down" +msgstr "स्केलर स्टेप डाउन" -#: js/ToneBlocks.js:325 -#.TRANS: partials are weighted components in a harmonic series -msgid "weighted partials" -msgstr "वेटेड पार्शियल्स" +#: js/blocks/PitchBlocks.js:172 +msgid "The Scalar step down block returns the number of semi-tones down to the previous note in the current key and mode." +msgstr "स्केलर स्टेप डाउन ब्लॉक वर्तमान कुंजी और मोड में पिछले नोट तक की सेमी-टोन की संख्या लौटाता है।" -#: js/ToneBlocks.js:383 -msgid "The Harmonic block will add harmonics to the contained notes." -msgstr "हारमोनिक ब्लॉक नोट्स में हारमोनिक जोड़ेगा।" +#: js/blocks/PitchBlocks.js:190 +#.TRANS: step up one note in current musical scale +msgid "scalar step up" +msgstr "स्केलर स्टेप अप" -#: js/ToneBlocks.js:390 -#.TRANS: A harmonic is an overtone. -msgid "harmonic" -msgstr "हारमोनिक" +#: js/blocks/PitchBlocks.js:194 +msgid "The Scalar step up block returns the number of semi-tones up to the next note in the current key and mode." +msgstr "स्केलर स्टेप अप ब्लॉक वर्तमान कुंजी और मोड में अगले नोट तक की सेमी-टोन की संख्या लौटाता है।" -#: js/ToneBlocks.js:431 -msgid "The Distortion block adds distortion to the pitch." -msgstr "डिस्टोर्शन ब्लॉक ध्वनि में विकृति जोड़ता है।" +#: js/blocks/PitchBlocks.js:212 +#.TRANS: the change measured in half-steps between the current pitch and the previous pitch +msgid "change in pitch" +msgstr "स्वर में परिवर्तन" -#: js/ToneBlocks.js:438 -#: js/timbre.js:2100 -#.TRANS: distortion is an alteration in the sound -msgid "distortion" -msgstr "विकृति" +#: js/blocks/PitchBlocks.js:216 +msgid "The Change in pitch block is the difference (in half steps) between the current pitch being played and the previous pitch played." +msgstr "चेंज इन पिच ब्लॉक वह अंतर है (हैफ स्टेप में) जो वर्तमान पिच बजा रहा है और पिछले पिच बजा रहा है।" -#: js/ToneBlocks.js:487 -msgid "The Tremolo block adds a wavering effect." -msgstr "ट्रेमोलो ब्लॉक एक हिलने के प्रभाव को जोड़ता है।" +#: js/blocks/PitchBlocks.js:243 +#.TRANS: the change measured in scale-steps between the current pitch and the previous pitch +msgid "scalar change in pitch" +msgstr "स्केलर स्वर में परिवर्तन" -#: js/ToneBlocks.js:495 -#: js/timbre.js:2092 -#.TRANS: a wavering effect in a musical tone -msgid "tremolo" -msgstr "ट्रेमोलो" +#: js/blocks/PitchBlocks.js:250 +#: js/blocks/PitchBlocks.js:432 +#: js/blocks/PitchBlocks.js:1667 +#: js/turtleactions/DictActions.js:89 +#: js/widgets/temperament.js:610 +#: js/widgets/temperament.js:614 +#: js/widgets/temperament.js:855 +#.TRANS: convert current note to piano key (1-88) +#.TRANS: a mapping of pitch to the 88 piano keys +msgid "pitch number" +msgstr "स्वर संख्या" -#: js/ToneBlocks.js:500 -#: js/ToneBlocks.js:569 -#: js/ToneBlocks.js:630 -#: js/ToneBlocks.js:689 -#: js/timbre.js:2134 -#: js/timbre.js:2222 -#: js/timbre.js:2317 -#: js/timbre.js:2419 -#.TRANS: rate at which tremolo wavers -msgid "rate" -msgstr "दर" +#: js/blocks/PitchBlocks.js:256 +msgid "The Pitch number block is the value of the pitch of the note currently being played." +msgstr "पिच नंबर ब्लॉक वह मूल्य है जो वर्तमान में बजा रहे नोट के स्वर का है।" -#: js/ToneBlocks.js:502 -#: js/ToneBlocks.js:630 -#: js/timbre.js:2137 -#: js/timbre.js:2328 -#.TRANS: amplitude of tremolo waver -msgid "depth" -msgstr "गहराई" +#: js/blocks/PitchBlocks.js:329 +#: js/blocks/PitchBlocks.js:433 +#.TRANS: the current pitch expressed in Hertz +msgid "pitch in hertz" +msgstr "हर्ट्ज में स्वर" -#: js/ToneBlocks.js:559 -msgid "The Phaser block adds a sweeping sound." -msgstr "फेजर ब्लॉक एक स्वीपिंग साउंड जोड़ता है।" +#: js/blocks/PitchBlocks.js:334 +msgid "The Pitch in Hertz block is the value in Hertz of the pitch of the note currently being played." +msgstr "पिच इन हर्ट्ज ब्लॉक वर्तमान में बज रहे नोट के स्वर का हर्ट्ज में मूल्य है।" -#: js/ToneBlocks.js:566 -#: js/timbre.js:2098 -#.TRANS: alter the phase of the sound -msgid "phaser" -msgstr "फेजर" +#: js/blocks/PitchBlocks.js:367 +#: js/turtleactions/DictActions.js:87 +msgid "current pitch" +msgstr "वर्तमान स्वर" -#: js/ToneBlocks.js:569 -#: js/timbre.js:2422 -msgid "octaves" -msgstr "ऑक्टेव्स" +#: js/blocks/PitchBlocks.js:373 +msgid "The Current Pitch block is used with the Pitch Converter block. In the example above, current pitch, sol 4, is displayed as 392 hertz." +msgstr "" -#: js/ToneBlocks.js:569 -#: js/timbre.js:2425 -msgid "base frequency" -msgstr "मौलिक तड़ंत" +#: js/blocks/PitchBlocks.js:410 +msgid "This block converts the pitch value of the last note played into different formats such as hertz, letter name, pitch number, et al." +msgstr "यह ब्लॉक बजाए गए आखिरी नोट के स्वर मूल्य को हर्ट्ज, अक्षर नाम, स्वर संख्या, आदि के रूप में परिवर्तित करता है।" -#: js/ToneBlocks.js:619 -msgid "The Chorus block adds a chorus effect." -msgstr "कोरस ब्लॉक कोरस प्रभाव जोड़ता है।" +#: js/blocks/PitchBlocks.js:434 +msgid "alphabet" +msgstr "वर्णमाला" -#: js/ToneBlocks.js:627 -#: js/timbre.js:2096 -#.TRANS: musical effect to simulate a choral sound -msgid "chorus" -msgstr "कोरस" +#: js/blocks/PitchBlocks.js:436 +#.TRANS: Translate as "alphabet class" +msgid "letter class" +msgstr "अक्षर वर्ग" -#: js/ToneBlocks.js:630 -msgid "delay" -msgstr "विलंब" +#: js/blocks/PitchBlocks.js:437 +msgid "solfege class" +msgstr "सोलफेज वर्ग" -#: js/ToneBlocks.js:678 -msgid "The Vibrato block adds a rapid, slight variation in pitch." -msgstr "विब्रेटो ब्लॉक ध्वनि में तेज, स्लाइट वेरिएशन जोड़ता है।" +#: js/blocks/PitchBlocks.js:438 +msgid "staff y" +msgstr "स्टाफ वाई" -#: js/ToneBlocks.js:686 -#: js/timbre.js:2094 -#.TRANS: a rapid, slight variation in pitch -msgid "vibrato" -msgstr "विब्रेटो" +#: js/blocks/PitchBlocks.js:439 +msgid "solfege syllable" +msgstr "सोलफेज सिलेबल" -#: js/ToneBlocks.js:689 -#: js/timbre.js:2221 -msgid "intensity" -msgstr "तीव्रता" +#: js/blocks/PitchBlocks.js:440 +msgid "pitch class" +msgstr "स्वर वर्ग" -#: js/ToneBlocks.js:733 -#.TRANS: select synthesizer -msgid "set synth" -msgstr "सिंथ सेट करें" +#: js/blocks/PitchBlocks.js:441 +msgid "scalar class" +msgstr "स्केलर वर्ग" -#: js/ToneBlocks.js:804 -msgid "synth name" -msgstr "सिंथ का नाम" +#: js/blocks/PitchBlocks.js:443 +msgid "nth degree" +msgstr "एनथ डिग्री" -#: js/ToneBlocks.js:842 -msgid "set default instrument" -msgstr "डिफ़ॉल्ट इंस्ट्रुमेंट सेट करें" +#: js/blocks/PitchBlocks.js:444 +msgid "pitch to shade" +msgstr "स्वर को छाया में" -#: js/ToneBlocks.js:895 -#: js/ToneBlocks.js:943 -#.TRANS: set the characteristics of a custom instrument -msgid "set instrument" -msgstr "इंस्ट्रुमेंट सेट करें" +#: js/blocks/PitchBlocks.js:445 +msgid "pitch to color" +msgstr "स्वर को रंग में" -#: js/ToneBlocks.js:898 -#: js/ToneBlocks.js:926 -#: js/ToneBlocks.js:932 -msgid "The Set instrument block selects a voice for the synthesizer," -msgstr "सेट इंस्ट्रुमेंट ब्लॉक सिंथ के लिए एक आवाज चुनता है," +#: js/blocks/PitchBlocks.js:629 +#: js/widgets/musickeyboard.js:735 +#.TRANS: MIDI is a technical standard for electronic music +msgid "MIDI" +msgstr "मिडी" -#: js/ToneBlocks.js:900 -#: js/ToneBlocks.js:934 -msgid "eg guitar piano violin or cello." -msgstr "जैसे गिटार पियानो वायलिन या चेलो।" +#: js/blocks/PitchBlocks.js:642 +#.TRANS: set an offset associated with the numeric piano keyboard mapping +msgid "set pitch number offset" +msgstr "पिच नंबर ऑफसेट सेट करें" -#: js/ToneBlocks.js:1015 -msgid "Import a sound file to use as an instrument and set its pitch center." -msgstr "एक इंस्ट्रुमेंट के रूप में उपयोग के लिए एक साउंड फ़ाइल आयात करें और इसके पिच केंद्र सेट करें।" +#: js/blocks/PitchBlocks.js:645 +msgid "The Set pitch number offset block is used to set the offset for mapping pitch numbers to pitch and octave." +msgstr "सेट पिच नंबर ऑफसेट ब्लॉक का उपयोग पिच और ऑक्टेव के मैपिंग के लिए ऑफसेट सेट करने के लिए किया जाता है।" -#: js/ToneBlocks.js:1110 -msgid "Upload a sound file to connect with the sample block." -msgstr "सैंपल ब्लॉक से जुड़ने के लिए एक साउंड फ़ाइल अपलोड करें।" +#: js/blocks/PitchBlocks.js:679 +#.TRANS: convert piano key number (1-88) to pitch +msgid "number to pitch" +msgstr "संख्या से पिच" -#: js/MeterBlocks.js:34 -#.TRANS: musical meter (time signature), e.g., 4:4 -msgid "current meter" -msgstr "वर्तमान मीटर" +#: js/blocks/PitchBlocks.js:682 +msgid "The Number to pitch block will convert a pitch number to a pich name." +msgstr "" -#: js/MeterBlocks.js:85 -#.TRANS: number of beats per minute -msgid "beat factor" -msgstr "बीट कारक" +#: js/blocks/PitchBlocks.js:715 +#.TRANS: convert piano key number (1-88) to octave +msgid "number to octave" +msgstr "संख्या से ऑक्टेव" + +#: js/blocks/PitchBlocks.js:717 +msgid "The Number to octave block will convert a pitch number to an octave." +msgstr "नंबर टू ऑक्टेव ब्लॉक एक पिच नंबर को एक ऑक्टेव में परिवर्तित करेगा।" -#: js/MeterBlocks.js:161 -msgid "The Beats per minute block returns the current beats per minute." -msgstr "बीट्स पर मिनट ब्लॉक वर्तमान मिनट प्रति बीट लौटाता है।" +#: js/blocks/PitchBlocks.js:726 +msgid "y to pitch" +msgstr "वाय को पिच" -#: js/MeterBlocks.js:169 -#: js/status.js:152 -#.TRANS: number of beats played per minute -msgid "beats per minute2" -msgstr "मिनट प्रति बीट" +#: js/blocks/PitchBlocks.js:729 +msgid "Y to pitch block will convert a staff y position to corresponding pitch notation." +msgstr "वाय टू पिच ब्लॉक एक स्टाफ वाय स्थिति को संबंधित पिच संकेत में परिवर्तित करेगा।" -#: js/MeterBlocks.js:169 -#: js/MeterBlocks.js:1056 -#: js/MeterBlocks.js:1133 -#: js/MeterBlocks.js:1211 -#.TRANS: sets tempo by defining a beat and beats per minute -msgid "beats per minute" -msgstr "मिनट प्रति बीट" +#: js/blocks/PitchBlocks.js:841 +msgid "accidental selector" +msgstr "अक्सीडेंटल सिलेक्टर" -#: js/MeterBlocks.js:233 -#.TRANS: count of current musical measure in meter -msgid "measure count" -msgstr "माप की गणना" +#: js/blocks/PitchBlocks.js:844 +msgid "The Accidental selector block is used to choose between double-sharp, sharp, natural, flat, and double-flat." +msgstr "एक्सीडेंटल सिलेक्टर ब्लॉक का उपयोग डबल-शार्प, शार्प, नैचुरल, फ्लैट, और डबल-फ्लैट के बीच चयन करने के लिए किया जाता है।" -#: js/MeterBlocks.js:241 -msgid "The Measure count block returns the current measure." -msgstr "मेजर काउंट ब्लॉक वर्तमान माप को लौटाता है।" +#: js/blocks/PitchBlocks.js:858 +msgid "Pitch can be specified in terms of ni dha pa ma ga re sa." +msgstr "पिच को नी धा पा मा ग रे सा के रूप में निर्दिष्ट किया जा सकता है।" -#: js/MeterBlocks.js:290 -#.TRANS: count of current beat in the meter -msgid "beat count" -msgstr "बीट काउंट" +#: js/blocks/PitchBlocks.js:872 +msgid "Pitch can be specified in terms of C D E F G A B." +msgstr "पिच को सी डी ई एफ जी ए बी के रूप में निर्दिष्ट किया जा सकता है।" -#: js/MeterBlocks.js:300 -#: js/MeterBlocks.js:311 -#: js/MeterBlocks.js:565 -#: js/MeterBlocks.js:576 -msgid "The Beat count block is the number of the current beat," -msgstr "बीट काउंट ब्लॉक वर्तमान बीट की संख्या है," +#: js/blocks/PitchBlocks.js:884 +msgid "solfege" +msgstr "सोल्फेज" -#: js/MeterBlocks.js:313 -#: js/MeterBlocks.js:578 -msgid "eg 1, 2, 3, or 4." -msgstr "उदाहरण के लिए 1, 2, 3, या 4।" +#: js/blocks/PitchBlocks.js:887 +msgid "Pitch can be specified in terms of do re mi fa sol la ti." +msgstr "पिच को डो रे मि फा सोल ला टी के रूप में निर्दिष्ट किया जा सकता है।" -#: js/MeterBlocks.js:368 -#.TRANS: count the number of notes -msgid "sum note values" -msgstr "नोट मूल्यों की गणना" +#: js/blocks/PitchBlocks.js:922 +msgid "The Invert block rotates any contained notes around a target note." +msgstr "इनवर्ट ब्लॉक एक लक्ष्य नोट के चारों ओर शामिल नोट को घुमाता है।" -#: js/MeterBlocks.js:376 -#: js/MeterBlocks.js:440 -msgid "The Note counter block can be used to count the number of contained notes." -msgstr "नोट काउंटर ब्लॉक का उपयोग शामिल नोट्स की संख्या को गिनने के लिए किया जा सकता है।" +#: js/blocks/PitchBlocks.js:929 +#.TRANS: pitch inversion rotates a pitch around another pitch +msgid "invert" +msgstr "इनवर्ट" -#: js/MeterBlocks.js:432 -#.TRANS: count the number of notes -msgid "note counter" -msgstr "नोट काउंटर" +#: js/blocks/PitchBlocks.js:968 +#.TRANS: pitch inversion rotates a pitch around another pitch (odd number) +msgid "invert (odd)" +msgstr "इनवर्ट (विषम)" -#: js/MeterBlocks.js:496 -#.TRANS: number of whole notes that have been played -msgid "whole notes played" -msgstr "पूरे नोट बजे" +#: js/blocks/PitchBlocks.js:1001 +#.TRANS: pitch inversion rotates a pitch around another pitch (even number) +msgid "invert (even)" +msgstr "इनवर्ट (सम)" -#: js/MeterBlocks.js:505 -msgid "The Whole notes played block returns the total number of whole notes played." -msgstr "व्होल नोट्स प्लेड ब्लॉक प्लेड हुई संपूर्ण नोट्स की कुल संख्या लौटाता है।" +#: js/blocks/PitchBlocks.js:1022 +#.TRANS: register is the octave of the current pitch +msgid "register" +msgstr "रजिस्टर" -#: js/MeterBlocks.js:555 -#: js/DictActions.js:83 -#.TRANS: number of notes that have been played -msgid "notes played" -msgstr "नोट्स बजे" +#: js/blocks/PitchBlocks.js:1026 +msgid "The Register block provides an easy way to modify the register (octave) of the notes that follow it." +msgstr "रजिस्टर ब्लॉक निर्दिष्ट किए गए नोट के रजिस्टर (ऑक्टेव) को संशोधित करने का एक आसान तरीका प्रदान करता है।" -#: js/MeterBlocks.js:653 -msgid "The No clock block decouples the notes from the master clock." -msgstr "नो क्लॉक ब्लॉक नोट्स को मास्टर क्लॉक से अलग करता है।" +#: js/blocks/PitchBlocks.js:1047 +#.TRANS: cents are units used to specify the ratio between pitches. There are 100 cents between successive notes. +msgid "50 cents" +msgstr "" -#: js/MeterBlocks.js:661 -#.TRANS: don't lock notes to master clock -msgid "no clock" -msgstr "कोई घड़ी नहीं" +#: js/blocks/PitchBlocks.js:1102 +msgid "The Semi-tone transposition block will shift the pitches contained inside Note blocks up (or down) by half steps." +msgstr "सेमी-टोन स्थानांतरण ब्लॉक नोट ब्लॉक्स में शामिल पिच को आधे कदम से ऊपर (या नीचे) करेगा।" -#: js/MeterBlocks.js:700 -msgid "on weak beat do" -msgstr "कमजोर बीट पर करें" +#: js/blocks/PitchBlocks.js:1104 +msgid "In the example shown above, sol is shifted up to sol#." +msgstr "ऊपर दिखाए गए उदाहरण में, सोल को सोल# की ओर स्थानांतरित किया गया है।" -#: js/MeterBlocks.js:705 -msgid "The On-weak-beat block lets you specify actions to take on weak (off) beats." -msgstr "" +#: js/blocks/PitchBlocks.js:1110 +#.TRANS: adjust the amount of shift (up or down) of a pitch +msgid "semi-tone transpose" +msgstr "सेमी-टोन स्थानांतरण" -#: js/MeterBlocks.js:750 -msgid "on strong beat" -msgstr "मजबूत बीट पर" +#: js/blocks/PitchBlocks.js:1143 +msgid "The Transpose by Ratio block will shift the pitches contained inside Note blocks up (or down) by a ratio" +msgstr "ट्रांसपोज़ बाय रेशियो ब्लॉक नोट ब्लॉक्स में शामिल पिच को एक अनुपात से ऊपर (या नीचे) करेगा" -#: js/MeterBlocks.js:758 -msgid "The On-strong-beat block lets you specify actions to take on specified beats." -msgstr "" +#: js/blocks/PitchBlocks.js:1149 +#.TRANS: adjust the amount of shift (up or down) of a pitch +msgid "transpose by ratio" +msgstr "मात्रा के अनुसार समायोजित करें" -#: js/MeterBlocks.js:769 -msgid "beat" -msgstr "बीट" +#: js/blocks/PitchBlocks.js:1232 +#.TRANS: down sixth means the note is five scale degrees below current note +msgid "down sixth" +msgstr "डाउन सिक्स्थ" -#: js/MeterBlocks.js:813 -msgid "on every beat do" -msgstr "प्रत्येक बीट पर करें" +#: js/blocks/PitchBlocks.js:1251 +#.TRANS: down third means the note is two scale degrees below current note +msgid "down third" +msgstr "डाउन थर्ड" -#: js/MeterBlocks.js:821 -msgid "The On-every-beat block lets you specify actions to take on every beat." -msgstr "" +#: js/blocks/PitchBlocks.js:1270 +#.TRANS: seventh means the note is the six scale degrees above current note +msgid "seventh" +msgstr "सेवेंथ" -#: js/MeterBlocks.js:874 -msgid "on every note do" -msgstr "प्रत्येक नोट पर करें" +#: js/blocks/PitchBlocks.js:1289 +#.TRANS: sixth means the note is the five scale degrees above current note +msgid "sixth" +msgstr "सिक्सथ" -#: js/MeterBlocks.js:882 -msgid "The On-every-note block lets you specify actions to take on every note." -msgstr "" +#: js/blocks/PitchBlocks.js:1308 +#.TRANS: fifth means the note is the four scale degrees above current note +msgid "fifth" +msgstr "फिफ्थ" -#: js/MeterBlocks.js:928 -#: js/MeterBlocks.js:999 -#.TRANS: sets tempo by defining a beat and beats per minute -msgid "master beats per minute" -msgstr "मास्टर बीट्स प्रति मिनट" +#: js/blocks/PitchBlocks.js:1328 +#.TRANS: fourth means the note is three scale degrees above current note +msgid "fourth" +msgstr "फोर्थ" -#: js/MeterBlocks.js:952 -#: js/MeterBlocks.js:1078 -#: js/MeterBlocks.js:1135 -msgid "bpm" -msgstr "बीपीएम" +#: js/blocks/PitchBlocks.js:1347 +#.TRANS: third means the note is two scale degrees above current note +msgid "third" +msgstr "थर्ड" -#: js/MeterBlocks.js:952 -#: js/MeterBlocks.js:1078 -#: js/MeterBlocks.js:1135 -msgid "beat value" -msgstr "बीट मूल्य" +#: js/blocks/PitchBlocks.js:1366 +#.TRANS: second means the note is one scale degree above current note +msgid "second" +msgstr "सेकंड" -#: js/MeterBlocks.js:1024 -#: js/MeterBlocks.js:1167 -#: js/MeterBlocks.js:1241 -msgid "Beats per minute must be > 30." -msgstr "मिनट प्रति बीट 30 से अधिक होना चाहिए।" +#: js/blocks/PitchBlocks.js:1407 +msgid "The Scalar transposition block will shift the pitches contained inside Note blocks up (or down) the scale." +msgstr "स्केलर स्थानांतरण ब्लॉक नोट ब्लॉक्स में शामिल पिच को स्केल के अनुसार ऊपर (या नीचे) करेगा।" -#: js/MeterBlocks.js:1027 -#: js/MeterBlocks.js:1170 -#: js/MeterBlocks.js:1244 -msgid "Maximum beats per minute is 1000." -msgstr "अधिकतम मिनट प्रति बीट 1000 है।" +#: js/blocks/PitchBlocks.js:1409 +msgid "In the example shown above, sol is shifted up to la." +msgstr "ऊपर दिखाए गए उदाहरण में, सोल को सोल# की ओर स्थानांतरित किया गया है।" -#: js/MeterBlocks.js:1068 -msgid "The Beats per minute block sets the number of 1/4 notes per minute." -msgstr "प्रति मिनट 1/4 नोट्स की संख्या सेट करने के लिए बीट्स प्रति मिनट ब्लॉक।" +#: js/blocks/PitchBlocks.js:1416 +#.TRANS: adjust the amount of shift (up or down) of a pitch by musical scale (scalar) steps +msgid "scalar transpose" +msgstr "स्केलर स्थानांतरण" -#: js/MeterBlocks.js:1279 -#.TRANS: anacrusis -msgid "pickup" -msgstr "पिकअप" +#: js/blocks/PitchBlocks.js:1451 +msgid "The Accidental block is used to create sharps and flats" +msgstr "अक्सीडेंटल ब्लॉक का उपयोग शार्प और फ्लैट बनाने के लिए किया जाता है" -#: js/MeterBlocks.js:1367 -msgid "number of beats" -msgstr "बीट्स की संख्या" +#: js/blocks/PitchBlocks.js:1458 +#.TRANS: An accidental is a modification to a pitch, e.g., sharp or flat. +msgid "accidental override" +msgstr "एक्सीडेंटल ओवरराइड" -#: js/DictBlocks.js:77 -msgid "show dictionary" -msgstr "डिक्शनरी दिखाएं" +#: js/blocks/PitchBlocks.js:1581 +msgid "The Hertz block (in combination with a Number block) will play a sound at the specified frequency." +msgstr "हर्ट्ज ब्लॉक (नंबर ब्लॉक के साथ मेल करके) निर्दिष्ट ताक़त पर ध्वनि बजाएगा।" -#: js/DictBlocks.js:129 -msgid "The Dictionary block returns a dictionary." -msgstr "डिक्शनरी ब्लॉक एक डिक्शनरी लौटाता है।" +#: js/blocks/PitchBlocks.js:1671 +msgid "The Pitch Number block will play a pitch associated by its number, e.g. 0 for C and 7 for G." +msgstr "पिच नंबर ब्लॉक उसकी संख्या से जुड़े एक पिच को बजाएगा, उदाहरण के लिए सी के लिए 0 और जी के लिए 7।" -#: js/DictBlocks.js:197 -#: js/DictBlocks.js:339 -msgid "The Get-dict block returns a value in the dictionary for a specified key." -msgstr "गेट-डिक्ट ब्लॉक एक निर्दिष्ट कुंजी के लिए डिक्शनरी में एक मूल्य लौटाता है।" +#: js/blocks/PitchBlocks.js:1703 +#: js/blocks/PitchBlocks.js:1745 +#.TRANS: a numeric mapping of the notes in an octave based on the musical mode +#.TRANS: a numeric mapping of the notes in an octave based on the musical mode +msgid "nth modal pitch" +msgstr "एनथ मोडल पिच" -#: js/DictBlocks.js:212 -#: js/DictBlocks.js:354 -#.TRANS: retrieve a value from the dictionary with a given key -msgid "get value" -msgstr "मूल्य प्राप्त करें" +#: js/blocks/PitchBlocks.js:1706 +msgid "n^th Modal Pitch takes the pattern of pitches in semitones for a mode and makes each point a degree of the mode," +msgstr "एनथ मोडल पिच एक मोड के लिए सेमिटोन्स में पिच का पैटर्न लेता है और हर बिंदु को मोड का डिग्री बनाता है," -#: js/DictBlocks.js:215 -#: js/DictBlocks.js:216 -#: js/DictBlocks.js:289 -#: js/DictBlocks.js:290 -#: js/DictBlocks.js:357 -#: js/DictBlocks.js:430 -#: js/DictBlocks.js:431 -msgid "key2" -msgstr "कुंजी2" +#: js/blocks/PitchBlocks.js:1708 +msgid "starting from 1 and regardless of tonal framework (i.e. not always 8 notes in the octave)" +msgstr "1 से शुरू होकर और स्वर संरचना की परवाह किए बिना (अर्थात हमेशा ऑक्टेव में 8 नोट्स नहीं होतीं)" -#: js/DictBlocks.js:271 -#: js/DictBlocks.js:411 -msgid "The Set-dict block sets a value in the dictionary for a specified key." -msgstr "सेट-डिक्ट ब्लॉक निर्दिष्ट कुंजी के लिए डिक्शनरी में एक मूल्य सेट करता है।" +#: js/blocks/PitchBlocks.js:1749 +msgid "N^th Modal Pitch takes a number as an input as the n^th degree for the given mode. 0 is the first position, 1 is the second, -1 is the note before the first etc." +msgstr "एनथ मोडल पिच एक दिए गए मोड के लिए एनथ डिग्री के रूप में एक संख्या लेता है। 0 पहली पोज़िशन है, 1 दूसरी है, -1 पहले से पहले का नोट है इत्यादि।" -#: js/DictBlocks.js:286 -#: js/DictBlocks.js:427 -#.TRANS: set a value in the dictionary for a given key -msgid "set value" -msgstr "मूल्य सेट करें" +#: js/blocks/PitchBlocks.js:1751 +msgid "The pitches change according to the mode specified without any need for respellings." +msgstr "नोट्स दुबारा लिखने की आवश्यकता के बिना जिस प्रकार के मोड ने निर्दिष्ट किया है, उसके अनुसार बदल जाते हैं।" -#: js/ExtrasBlocks.js:33 -msgid "fraction" -msgstr "अंश" +#: js/blocks/PitchBlocks.js:1790 +msgid "Scale Degree is a common convention in music. Scale Degree offers seven possible positions in the scale (1-7) and can be modified via accidentals." +msgstr "स्केल डिग्री संगीत में एक सामान्य सम्मिलन है। स्केल डिग्री स्केल में सात संभावित स्थान (1-7) प्रदान करती है और एक्सीडेंटल्स के माध्यम से संशोधित की जा सकती है।" -#: js/ExtrasBlocks.js:36 -msgid "Convert a float to a fraction" -msgstr "एक फ़्लोट को एक अंश में परिवर्तित करें" +#: js/blocks/PitchBlocks.js:1792 +msgid "Scale Degree 1 is always the first pitch in a given scale, regardless of octave." +msgstr "स्केल डिग्री 1 हमेशा एक दिए गए स्केल में पहला पिच है, ऑक्टेव की परवाह किए बिना।" -#: js/ExtrasBlocks.js:93 -msgid "save as ABC" -msgstr "ABC के रूप में सहेजें" +#: js/blocks/PitchBlocks.js:1814 +#.TRANS: step some number of notes in current musical scale +msgid "scalar step" +msgstr "स्केलर स्टेप" -#: js/ExtrasBlocks.js:96 -#: js/ExtrasBlocks.js:132 -#: js/ExtrasBlocks.js:168 -msgid "title" -msgstr "शीर्षक" +#: js/blocks/PitchBlocks.js:1819 +msgid "The Scalar Step block (in combination with a Number block) will play the next pitch in a scale," +msgstr "स्केलर स्टेप ब्लॉक (नंबर ब्लॉक के साथ मेल करके) स्केल में अगला पिच बजाएगा," -#: js/ExtrasBlocks.js:129 -msgid "save as Lilypond" -msgstr "Lilypond के रूप में सहेजें" +#: js/blocks/PitchBlocks.js:1821 +msgid "eg if the last note played was sol, Scalar Step 1 will play la." +msgstr "उदाहरण के लिए अगर आखिरी बजाए गए नोट सोल" -#: js/ExtrasBlocks.js:165 -msgid "save as SVG" -msgstr "SVG के रूप में सहेजें" +#: js/blocks/PitchBlocks.js:1857 +msgid "The Pitch block specifies the pitch name and octave of a note that together determine the frequency of the note." +msgstr "" -#: js/ExtrasBlocks.js:216 -msgid "no background" -msgstr "कोई पृष्ठभूमि नहीं" +#: js/blocks/ProgramBlocks.js:33 +msgid "The Load-heap-from-app block loads the heap from a web page." +msgstr "" -#: js/ExtrasBlocks.js:219 -msgid "The No background block eliminates the background from the saved SVG output." -msgstr "नो बैकग्राउंड ब्लॉक निर्बाध एसवीजी आउटपुट से पृष्ठभूमि को हटा देता है।" +#: js/blocks/ProgramBlocks.js:44 +#.TRANS: load the heap contents from a URL +msgid "load heap from App" +msgstr "" -#: js/ExtrasBlocks.js:247 -msgid "show blocks" -msgstr "पिण्ड दिखाएँ" +#: js/blocks/ProgramBlocks.js:95 +msgid "Error parsing JSON data:" +msgstr "" -#: js/ExtrasBlocks.js:249 -msgid "The Show blocks block shows the blocks." -msgstr "शो ब्लॉक्स ब्लॉक ब्लॉक्स दिखाता है।" +#: js/blocks/ProgramBlocks.js:100 +msgid "404: Page not found" +msgstr "" -#: js/ExtrasBlocks.js:274 -msgid "hide blocks" -msgstr "खण्ड छुपाएँ" +#: js/blocks/ProgramBlocks.js:133 +msgid "The Save-heap-to-app block saves the heap to a web page." +msgstr "" -#: js/ExtrasBlocks.js:276 -msgid "The Hide blocks block hides the blocks." -msgstr "हाइड ब्लॉक्स ब्लॉक ब्लॉक्स छुपा देता है।" +#: js/blocks/ProgramBlocks.js:144 +#.TRANS: save the heap contents to a URL +msgid "save heap to App" +msgstr "" -#: js/ExtrasBlocks.js:305 -#: js/ExtrasBlocks.js:335 -msgid "The Space block is used to add space between blocks." -msgstr "स्थान ब्लॉक ब्लॉक्स के बीच स्थान जोड़ने के लिए उपयोग किया जाता है।" +#: js/blocks/ProgramBlocks.js:189 +msgid "Cannot find a valid heap for" +msgstr "" -#: js/ExtrasBlocks.js:373 -msgid "wait" -msgstr "इंतजार करें" +#: js/blocks/ProgramBlocks.js:206 +msgid "The Load-heap block loads the heap from a file." +msgstr "" -#: js/ExtrasBlocks.js:376 -msgid "The Wait block pauses the program for a specified number of seconds." -msgstr "वेट ब्लॉक निर्दिष्ट सेकंड के लिए कार्यक्रम को रोक देता है।" +#: js/blocks/ProgramBlocks.js:217 +#.TRANS: load the heap from a file +msgid "load heap" +msgstr "ढेर को लोड करें" -#: js/ExtrasBlocks.js:430 -#: plugins/facebook.rtp:30 -msgid "comment" -msgstr "टिप्पणी" +#: js/blocks/ProgramBlocks.js:270 +msgid "The file you selected does not contain a valid heap." +msgstr "" -#: js/ExtrasBlocks.js:466 -msgid "print" -msgstr "छापें" +#: js/blocks/ProgramBlocks.js:275 +msgid "The loadHeap block needs a loadFile block." +msgstr "" -#: js/ExtrasBlocks.js:473 -msgid "The Print block displays text at the top of the screen." -msgstr "प्रिंट ब्लॉक स्क्रीन के शीर्ष पर पाठ दिखाता है।" +#: js/blocks/ProgramBlocks.js:291 +msgid "The Set-heap block loads the heap." +msgstr "" -#: js/ExtrasBlocks.js:579 -msgid "display grid" -msgstr "ग्रिड दिखाएँ" +#: js/blocks/ProgramBlocks.js:340 +msgid "The block you selected does not contain a valid heap." +msgstr "" -#: js/ExtrasBlocks.js:584 -msgid "The Display Grid Block changes the grid type" -msgstr "डिस्प्ले ग्रिड ब्लॉक ग्रिड प्रकार बदलता है" +#: js/blocks/ProgramBlocks.js:343 +msgid "The Set heap block needs a heap." +msgstr "" -#: js/ExtrasBlocks.js:686 -#: js/ExtrasBlocks.js:705 -#: js/ExtrasBlocks.js:728 -#: js/ExtrasBlocks.js:751 -#: js/ExtrasBlocks.js:769 -#: js/ExtrasBlocks.js:788 -#: js/ExtrasBlocks.js:807 -#: js/ExtrasBlocks.js:826 -msgid "unknown" -msgstr "अज्ञात" +#: js/blocks/ProgramBlocks.js:360 +msgid "The Load-dictionary block loads a dictionary from a file." +msgstr "" -#: js/SensorsBlocks.js:36 -msgid "The Input block prompts for keyboard input." -msgstr "इनपुट ब्लॉक कुंजीपटल इनपुट के लिए प्रॉम्प्ट करता है।" +#: js/blocks/ProgramBlocks.js:372 +#.TRANS: load a dictionary from a file +msgid "load dictionary" +msgstr "" -#: js/SensorsBlocks.js:46 -msgid "input" -msgstr "इनपुट" +#: js/blocks/ProgramBlocks.js:390 +#: js/blocks/ProgramBlocks.js:658 +#: js/blocks/ToneBlocks.js:1025 +msgid "file" +msgstr "" -#: js/SensorsBlocks.js:64 -msgid "Input a value" -msgstr "एक मूल्य इनपुट करें" +#: js/blocks/ProgramBlocks.js:444 +msgid "The file you selected does not contain a valid dictionary." +msgstr "" -#: js/SensorsBlocks.js:126 -msgid "input value" -msgstr "इनपुट मूल्य" +#: js/blocks/ProgramBlocks.js:449 +msgid "The load dictionary block needs a load file block." +msgstr "" -#: js/SensorsBlocks.js:131 -msgid "The Input-value block stores the input." -msgstr "इनपुट-मूल्य ब्लॉक इनपुट को संग्रहित करता है।" +#: js/blocks/ProgramBlocks.js:466 +msgid "The Set-dictionary block loads a dictionary." +msgstr "" -#: js/SensorsBlocks.js:238 -msgid "loudness" -msgstr "आवाज़ की उंचाई" +#: js/blocks/ProgramBlocks.js:477 +#.TRANS: load a dictionary from a JSON +msgid "set dictionary" +msgstr "" -#: js/SensorsBlocks.js:245 -msgid "The Loudness block returns the volume detected by the microphone." -msgstr "ध्वनि माइक्रोफ़ोन द्वारा पहचाने गए आवाज़ को लौडनेस ब्लॉक द्वारा लौटाता है।" +#: js/blocks/ProgramBlocks.js:546 +msgid "The block you selected does not contain a valid dictionary." +msgstr "" -#: js/SensorsBlocks.js:300 -msgid "click" -msgstr "क्लिक" +#: js/blocks/ProgramBlocks.js:550 +msgid "The set dictionary block needs a dictionary." +msgstr "" -#: js/SensorsBlocks.js:306 -msgid "The Click block triggers an event if a mouse has been clicked." -msgstr "क्लिक ब्लॉक एक घटना को ट्रिगर करता है अगर माउस पर क्लिक किया गया है।" +#: js/blocks/ProgramBlocks.js:567 +msgid "The Save-heap block saves the heap to a file." +msgstr "" -#: js/SensorsBlocks.js:313 -msgid "The Click block triggers an event if a turtle has been clicked." -msgstr "क्लिक ब्लॉक एक घटना को ट्रिगर करता है अगर कछुआ पर क्लिक किया गया है।" +#: js/blocks/ProgramBlocks.js:578 +#.TRANS: save the heap to a file +msgid "save heap" +msgstr "ढेर सेव करें" -#: js/SensorsBlocks.js:342 -msgid "cursor over" -msgstr "कर्सर ओवर" +#: js/blocks/ProgramBlocks.js:629 +msgid "The Save-dictionary block saves a dictionary to a file." +msgstr "" -#: js/SensorsBlocks.js:387 -msgid "cursor out" -msgstr "कर्सर आउट" +#: js/blocks/ProgramBlocks.js:640 +#.TRANS: save a dictionary to a file +msgid "save dictionary" +msgstr "" -#: js/SensorsBlocks.js:433 -msgid "cursor button down" -msgstr "कर्सर बटन नीचे" +#: js/blocks/ProgramBlocks.js:720 +msgid "The Open palette block opens a palette." +msgstr "" -#: js/SensorsBlocks.js:477 -msgid "cursor button up" -msgstr "कर्सर बटन ऊपर" +#: js/blocks/ProgramBlocks.js:727 +msgid "open palette" +msgstr "" -#: js/SensorsBlocks.js:638 -msgid "The Get red block returns the red component of the pixel under the mouse." -msgstr "गेट रेड ब्लॉक माउस के नीचे पिक्सेल का लाल घटक वापस करता है।" +#: js/blocks/ProgramBlocks.js:785 +msgid "The Delete block block removes a block." +msgstr "" -#: js/SensorsBlocks.js:644 -msgid "The Get red block returns the red component of the pixel under the turtle." -msgstr "गेट रेड ब्लॉक कछुआ के नीचे पिक्सेल का लाल घटक वापस करता है।" +#: js/blocks/ProgramBlocks.js:797 +#.TRANS: Move this block to the trash. +msgid "delete block" +msgstr "" -#: js/SensorsBlocks.js:685 -#: plugins/rodi.rtp:216 -msgid "pixel color" -msgstr "पिक्सेल का रंग" +#: js/blocks/ProgramBlocks.js:861 +msgid "The Move block block moves a block." +msgstr "" -#: js/SensorsBlocks.js:690 -msgid "The Get pixel block returns the color of the pixel under the mouse." -msgstr "गेट पिक्सेल ब्लॉक माउस के नीचे पिक्सेल का रंग वापस करता है।" +#: js/blocks/ProgramBlocks.js:869 +#.TRANS: Move the position of a block on the screen. +msgid "move block" +msgstr "" -#: js/SensorsBlocks.js:696 -msgid "The Get pixel block returns the color of the pixel under the turtle." -msgstr "गेट पिक्सेल ब्लॉक कछुआ के नीचे पिक्सेल का रंग वापस करता है।" +#: js/blocks/ProgramBlocks.js:881 +#: js/blocks/ProgramBlocks.js:1048 +msgid "block number" +msgstr "" -#: js/SensorsBlocks.js:758 -msgid "time" -msgstr "समय" +#: js/blocks/ProgramBlocks.js:935 +#.TRANS: Run program beginning at this block. +msgid "run block" +msgstr "" -#: js/SensorsBlocks.js:804 -msgid "cursor y" -msgstr "कर्सर वाई" +#: js/blocks/ProgramBlocks.js:1025 +msgid "The Dock block block connections two blocks." +msgstr "" -#: js/SensorsBlocks.js:809 -msgid "The Cursor Y block returns the vertical position of the mouse." -msgstr "कर्सर वाई ब्लॉक माउस का उदाहरण दिखाता है।" +#: js/blocks/ProgramBlocks.js:1036 +#.TRANS: We can connect a block to another block. +msgid "connect blocks" +msgstr "" -#: js/SensorsBlocks.js:845 -msgid "cursor x" -msgstr "कर्सर एक्स" +#: js/blocks/ProgramBlocks.js:1048 +msgid "target block" +msgstr "" -#: js/SensorsBlocks.js:850 -msgid "The Cursor X block returns the horizontal position of the mouse." -msgstr "कर्सर एक्स ब्लॉक माउस का क्षैतिज स्थान वापस करता है।" +#: js/blocks/ProgramBlocks.js:1048 +msgid "connection number" +msgstr "" -#: js/SensorsBlocks.js:886 -msgid "mouse button" -msgstr "माउस बटन" +#: js/blocks/ProgramBlocks.js:1140 +msgid "The Make block block creates a new block." +msgstr "" -#: js/SensorsBlocks.js:888 -msgid "The Mouse-button block returns True if the mouse button is pressed." -msgstr "माउस-बटन ब्लॉक तब सच है जब माउस बटन दबाया गया है।" +#: js/blocks/ProgramBlocks.js:1152 +#.TRANS: Create a new block +msgid "make block" +msgstr "" -#: js/SensorsBlocks.js:934 -msgid "to ASCII" -msgstr "एस्की में" +#: js/blocks/ProgramBlocks.js:1285 +msgid "Cannot find block" +msgstr "" -#: js/SensorsBlocks.js:938 -msgid "The To ASCII block converts numbers to letters." -msgstr "टू एस्की ब्लॉक संख्याओं को अक्षर में बदलता है।" +#: js/blocks/ProgramBlocks.js:1304 +#: js/blocks/ProgramBlocks.js:1313 +msgid "Warning: block argument type mismatch" +msgstr "" -#: js/SensorsBlocks.js:1005 -msgid "The Keyboard block returns computer keyboard input." -msgstr "कीबोर्ड ब्लॉक कंप्यूटर कीबोर्ड इनपुट वापस करता है।" +#: js/blocks/ProgramBlocks.js:1347 +msgid "The Open project block is used to open a project from a web page." +msgstr "" -#: js/IntervalsActions.js:216 -msgid "Adding missing pitch number 0." -msgstr "गायन संख्या 0 जोड़ी जा रही है।" +#: js/blocks/ProgramBlocks.js:1357 +msgid "open project" +msgstr "" -#: js/IntervalsActions.js:224 -msgid "Ignoring pitch numbers less than zero or greater than eleven." -msgstr "0 से कम या 11 से अधिक स्वर संख्याओं को अनदेखा कर रहा है।" +#: js/blocks/ProgramBlocks.js:1410 +msgid "Please enter a valid URL." +msgstr "" -#: js/IntervalsActions.js:230 -msgid "Ignoring duplicate pitch numbers." -msgstr "डुप्लिकेट स्वर संख्याओं को अनदेखा कर रहा है।" +#: js/blocks/ToneBlocks.js:34 +msgid "oscillator" +msgstr "ऑस्किलेटर" -#: js/PitchActions.js:88 -msgid "The Scalar Step Block must be used inside of a Note Block." -msgstr "स्केलर स्टेप ब्लॉक को एक नोट ब्लॉक के अंदर उपयोग करना चाहिए।" +#: js/blocks/ToneBlocks.js:42 +#: js/blocks/WidgetBlocks.js:179 +#: js/widgets/timbre.js:1558 +#: js/widgets/timbre.js:1808 +#.TRANS: there are different types (sine, triangle, square...) of oscillators. +#.TRANS: type of filter, e.g., lowpass, highpass, etc. +msgid "type" +msgstr "प्रकार" -#: js/PitchActions.js:107 -msgid "The Scalar Step Block must be preceded by a Pitch Block." -msgstr "स्केलर स्टेप ब्लॉक को पिच ब्लॉक से पहले आना चाहिए।" +#: js/blocks/ToneBlocks.js:44 +#: js/widgets/timbre.js:1562 +#.TRANS: Partials refers to the number of sine waves combined into the sound. +msgid "partials" +msgstr "अंश" -#: js/DrumActions.js:231 -msgid "Noise Block: Did you mean to use a Note block?" -msgstr "नॉइज ब्लॉक: क्या आपने एक नोट ब्लॉक का इस्तेमाल करने का इरादा किया है?" +#: js/blocks/ToneBlocks.js:76 +msgid "You are adding multiple oscillator blocks." +msgstr "आप कई ऑस्किलेटर ब्लॉक जोड़ रहे हैं।" -#: js/MeterActions.js:101 -#: js/MeterActions.js:139 -msgid "beats per minute must be greater than" -msgstr "प्रति मिनट बीट 30 से अधिक होना चाहिए" +#: js/blocks/ToneBlocks.js:144 +#: js/widgets/timbre.js:1225 +#.TRANS: a duo synthesizer combines a synth with a sequencer +msgid "duo synth" +msgstr "ड्यूओ सिंथ" -#: js/MeterActions.js:111 -#: js/MeterActions.js:149 -msgid "maximum" -msgstr "अधिकतम" +#: js/blocks/ToneBlocks.js:149 +msgid "The Duo synth block is a duo-frequency modulator used to define a timbre." +msgstr "ड्यूओ सिंथ ब्लॉक एक ड्यूओ-फ़्रीक्वेंसी मॉड्युलेटर है जिसे एक टिम्बर को परिभाषित करने के लिए उपयोग किया जाता है।" -#: js/MeterActions.js:117 -#: js/MeterActions.js:155 -msgid "beats per minute is" -msgstr "प्रति मिनट बीट" +#: js/blocks/ToneBlocks.js:157 +#: js/widgets/timbre.js:1476 +msgid "vibrato rate" +msgstr "विब्रेटो दर" -#: js/ToneActions.js:134 -msgid "Vibrato intensity must be between 1 and 100." -msgstr "विब्राटो तीव्रता 1 और 100 के बीच होनी चाहिए।" +#: js/blocks/ToneBlocks.js:157 +msgid "vibrato intensity" +msgstr "विब्रेटो तीव्रता" -#: js/ToneActions.js:139 -msgid "Vibrato rate must be greater than 0." -msgstr "विब्राटो दर 0 से अधिक होनी चाहिए।" +#: js/blocks/ToneBlocks.js:185 +#: js/widgets/timbre.js:1221 +#.TRANS: AM (amplitude modulation) synthesizer +msgid "AM synth" +msgstr "ए.एम. सिंथ" -#: js/ToneActions.js:192 -#: js/ToneActions.js:265 -#.TRANS: Depth is the intesity of the tremolo or chorus effect. -msgid "Depth is out of range." -msgstr "गहराई सीमा से बाहर है।" +#: js/blocks/ToneBlocks.js:189 +msgid "The AM synth block is an amplitude modulator used to define a timbre." +msgstr "ए.एम. सिंथ ब्लॉक एक एम्प्लीट्यूड मॉड्युलेटर है जिसे एक टिम्बर को परिभाषित करने के लिए उपयोग किया जाता है।" -#: js/ToneActions.js:301 -msgid "Distortion must be from 0 to 100." -msgstr "विरुपण 0 से 100 के बीच होना चाहिए।" +#: js/blocks/ToneBlocks.js:224 +#: js/widgets/timbre.js:1223 +#.TRANS: FM (frequency modulation) synthesizer +msgid "FM synth" +msgstr "एफ.एम. सिंथ" -#: js/ToneActions.js:332 -#.TRANS: partials components in a harmonic series -msgid "Partial must be greater than or equal to 0." -msgstr "आंश 0 से अधिक या इसके बराबर होना चाहिए।" +#: js/blocks/ToneBlocks.js:228 +msgid "The FM synth block is a frequency modulator used to define a timbre." +msgstr "एफ.एम. सिंथ ब्लॉक एक फ़्रीक्वेंसी मॉड्युलेटर है जिसे एक टिम्बर को परिभाषित करने के लिए उपयोग किया जाता है।" -#: js/ToneActions.js:378 -#: js/ToneActions.js:417 -#: js/ToneActions.js:456 -#: js/timbre.js:782 -msgid "Unable to use synth due to existing oscillator" -msgstr "मौजूदा ऑस्किलेटर के कारण सिंथ का उपयोग नहीं किया जा सकता" +#: js/blocks/ToneBlocks.js:262 +msgid "partial" +msgstr "आंशिक" -#: js/ToneActions.js:388 -#: js/ToneActions.js:427 -msgid "The input cannot be negative." -msgstr "इनपुट नकारात्मक नहीं हो सकता।" +#: js/blocks/ToneBlocks.js:265 +msgid "The Partial block is used to specify a weight for a specific partial harmonic." +msgstr "" -#: js/DictActions.js:75 -#: js/DictActions.js:153 -#: js/DictActions.js:188 -msgid "font" -msgstr "फ़ॉन्ट" +#: js/blocks/ToneBlocks.js:284 +#.TRANS: partials are weighted components in a harmonic series +msgid "Partial weight must be between 0 and 1." +msgstr "पार्शियल वजन 0 और 1 के बीच होना चाहिए।" -#: js/musicutils.js:363 -#: js/musicutils.js:471 -#: js/pitchdrummatrix.js:151 -#: js/musickeyboard.js:2563 -msgid "rest" -msgstr "आराम" +#: js/blocks/ToneBlocks.js:297 +#.TRANS: partials are weighted components in a harmonic series +msgid "Partial block should be used inside of a Weighted-partials block." +msgstr "पार्शियल ब्लॉक को एक वेटेड-पार्शियल्स ब्लॉक के अंदर उपयोग किया जाना चाहिए।" -#: js/musicutils.js:565 -#.TRANS: ordinal number. Please keep exactly one space between each number. -msgid "1st 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th" -msgstr "1वा 2वा 3वा 4वा 5वा 6वा 7वा 8वा 9वा 10वा 11वा 12वा" +#: js/blocks/ToneBlocks.js:325 +#.TRANS: partials are weighted components in a harmonic series +msgid "weighted partials" +msgstr "वेटेड पार्शियल्स" -#: js/musicutils.js:629 -#: js/musicutils.js:812 -#: js/musicutils.js:911 -#.TRANS: augmented is a music term related to intervals -msgid "augmented" -msgstr "बढ़ाया हुआ" +#: js/blocks/ToneBlocks.js:383 +msgid "The Harmonic block will add harmonics to the contained notes." +msgstr "हारमोनिक ब्लॉक नोट्स में हारमोनिक जोड़ेगा।" -#: js/musicutils.js:631 -#: js/musicutils.js:813 -#: js/musicutils.js:910 -#.TRANS: diminished is a music term related to intervals and mode -msgid "diminished" -msgstr "कम" +#: js/blocks/ToneBlocks.js:390 +#.TRANS: A harmonic is an overtone. +msgid "harmonic" +msgstr "हारमोनिक" -#: js/musicutils.js:639 -#.TRANS: twelve semi-tone scale for music -msgid "chromatic" -msgstr "क्रोमैटिक" +#: js/blocks/ToneBlocks.js:431 +msgid "The Distortion block adds distortion to the pitch." +msgstr "डिस्टोर्शन ब्लॉक ध्वनि में विकृति जोड़ता है।" + +#: js/blocks/ToneBlocks.js:438 +#: js/widgets/timbre.js:2100 +#.TRANS: distortion is an alteration in the sound +msgid "distortion" +msgstr "विकृति" -#: js/musicutils.js:640 -msgid "algerian" -msgstr "अल्जीरियन" +#: js/blocks/ToneBlocks.js:487 +msgid "The Tremolo block adds a wavering effect." +msgstr "ट्रेमोलो ब्लॉक एक हिलने के प्रभाव को जोड़ता है।" -#: js/musicutils.js:641 -msgid "spanish" -msgstr "स्पेनिश" +#: js/blocks/ToneBlocks.js:495 +#: js/widgets/timbre.js:2092 +#.TRANS: a wavering effect in a musical tone +msgid "tremolo" +msgstr "ट्रेमोलो" -#: js/musicutils.js:643 -#.TRANS: modal scale in music -msgid "octatonic" -msgstr "ऑक्टाटॉनिक" +#: js/blocks/ToneBlocks.js:500 +#: js/blocks/ToneBlocks.js:569 +#: js/blocks/ToneBlocks.js:630 +#: js/blocks/ToneBlocks.js:689 +#: js/widgets/timbre.js:2134 +#: js/widgets/timbre.js:2222 +#: js/widgets/timbre.js:2317 +#: js/widgets/timbre.js:2419 +#.TRANS: rate at which tremolo wavers +msgid "rate" +msgstr "दर" -#: js/musicutils.js:645 -#.TRANS: harmonic major scale in music -msgid "harmonic major" -msgstr "हार्मोनिक मेजर" +#: js/blocks/ToneBlocks.js:502 +#: js/blocks/ToneBlocks.js:630 +#: js/widgets/timbre.js:2137 +#: js/widgets/timbre.js:2328 +#.TRANS: amplitude of tremolo waver +msgid "depth" +msgstr "गहराई" -#: js/musicutils.js:647 -#.TRANS: natural minor scales in music -msgid "natural minor" -msgstr "नैचुरल माइनर" +#: js/blocks/ToneBlocks.js:559 +msgid "The Phaser block adds a sweeping sound." +msgstr "फेजर ब्लॉक एक स्वीपिंग साउंड जोड़ता है।" -#: js/musicutils.js:649 -#.TRANS: harmonic minor scale in music -msgid "harmonic minor" -msgstr "हार्मोनिक माइनर" +#: js/blocks/ToneBlocks.js:566 +#: js/widgets/timbre.js:2098 +#.TRANS: alter the phase of the sound +msgid "phaser" +msgstr "फेजर" -#: js/musicutils.js:651 -#.TRANS: melodic minor scale in music -msgid "melodic minor" -msgstr "मेलोडिक माइनर" +#: js/blocks/ToneBlocks.js:569 +#: js/turtleactions/IntervalsActions.js:114 +#: js/widgets/timbre.js:2422 +msgid "octaves" +msgstr "ऑक्टेव्स" -#: js/musicutils.js:655 -#.TRANS: modal scale for music -msgid "dorian" -msgstr "डोरियन" +#: js/blocks/ToneBlocks.js:569 +#: js/widgets/timbre.js:2425 +msgid "base frequency" +msgstr "मौलिक तड़ंत" -#: js/musicutils.js:657 -#.TRANS: modal scale for music -msgid "phrygian" -msgstr "फ्रिजियन" +#: js/blocks/ToneBlocks.js:619 +msgid "The Chorus block adds a chorus effect." +msgstr "कोरस ब्लॉक कोरस प्रभाव जोड़ता है।" -#: js/musicutils.js:659 -#.TRANS: modal scale for music -msgid "lydian" -msgstr "लिडियन" +#: js/blocks/ToneBlocks.js:627 +#: js/widgets/timbre.js:2096 +#.TRANS: musical effect to simulate a choral sound +msgid "chorus" +msgstr "कोरस" -#: js/musicutils.js:661 -#.TRANS: modal scale for music -msgid "mixolydian" -msgstr "मिक्सोलिडियन" +#: js/blocks/ToneBlocks.js:630 +msgid "delay" +msgstr "विलंब" -#: js/musicutils.js:665 -#.TRANS: modal scale for music -msgid "locrian" -msgstr "लोक्रियन" +#: js/blocks/ToneBlocks.js:678 +msgid "The Vibrato block adds a rapid, slight variation in pitch." +msgstr "विब्रेटो ब्लॉक ध्वनि में तेज, स्लाइट वेरिएशन जोड़ता है।" -#: js/musicutils.js:667 -#.TRANS: minor jazz scale for music -msgid "jazz minor" -msgstr "जैज माइनर" +#: js/blocks/ToneBlocks.js:686 +#: js/widgets/timbre.js:2094 +#.TRANS: a rapid, slight variation in pitch +msgid "vibrato" +msgstr "विब्रेटो" -#: js/musicutils.js:669 -#.TRANS: bebop scale for music -msgid "bebop" -msgstr "बीबॉप" +#: js/blocks/ToneBlocks.js:689 +#: js/widgets/timbre.js:2221 +msgid "intensity" +msgstr "तीव्रता" -#: js/musicutils.js:670 -msgid "arabic" -msgstr "अरबी" +#: js/blocks/ToneBlocks.js:733 +#.TRANS: select synthesizer +msgid "set synth" +msgstr "सिंथ सेट करें" -#: js/musicutils.js:671 -msgid "byzantine" -msgstr "बाइज़ंटाइन" +#: js/blocks/ToneBlocks.js:804 +msgid "synth name" +msgstr "सिंथ का नाम" -#: js/musicutils.js:673 -#.TRANS: musical scale for music by Verdi -msgid "enigmatic" -msgstr "एनिगमैटिक" +#: js/blocks/ToneBlocks.js:842 +msgid "set default instrument" +msgstr "डिफ़ॉल्ट इंस्ट्रुमेंट सेट करें" -#: js/musicutils.js:674 -msgid "ethiopian" -msgstr "इथियोपियन" +#: js/blocks/ToneBlocks.js:895 +#: js/blocks/ToneBlocks.js:943 +#.TRANS: set the characteristics of a custom instrument +msgid "set instrument" +msgstr "इंस्ट्रुमेंट सेट करें" -#: js/musicutils.js:676 -#.TRANS: Ethiopic scale for music -msgid "geez" -msgstr "गीज़" +#: js/blocks/ToneBlocks.js:898 +#: js/blocks/ToneBlocks.js:926 +#: js/blocks/ToneBlocks.js:932 +msgid "The Set instrument block selects a voice for the synthesizer," +msgstr "सेट इंस्ट्रुमेंट ब्लॉक सिंथ के लिए एक आवाज चुनता है," -#: js/musicutils.js:677 -msgid "hindu" -msgstr "हिन्दू" +#: js/blocks/ToneBlocks.js:900 +#: js/blocks/ToneBlocks.js:934 +msgid "eg guitar piano violin or cello." +msgstr "जैसे गिटार पियानो वायलिन या चेलो।" -#: js/musicutils.js:678 -msgid "hungarian" -msgstr "हंगेरियन" +#: js/blocks/ToneBlocks.js:1015 +msgid "Import a sound file to use as an instrument and set its pitch center." +msgstr "एक इंस्ट्रुमेंट के रूप में उपयोग के लिए एक साउंड फ़ाइल आयात करें और इसके पिच केंद्र सेट करें।" -#: js/musicutils.js:680 -#.TRANS: minor Romanian scale for music -msgid "romanian minor" -msgstr "रोमानियन माइनर" +#: js/blocks/ToneBlocks.js:1110 +msgid "Upload a sound file to connect with the sample block." +msgstr "सैंपल ब्लॉक से जुड़ने के लिए एक साउंड फ़ाइल अपलोड करें।" -#: js/musicutils.js:681 -msgid "spanish gypsy" -msgstr "स्पैनिश जिप्सी" +#: js/blocks/VolumeBlocks.js:35 +msgid "synth volume" +msgstr "सिंथ वॉल्यूम" -#: js/musicutils.js:683 -#.TRANS: musical scale for Mid-Eastern music -msgid "maqam" -msgstr "मकाम" +#: js/blocks/VolumeBlocks.js:39 +msgid "The Synth volume block returns the current volume of the current synthesizer." +msgstr "सिंथ वॉल्यूम ब्लॉक वर्तमान सिंथाइज़र की वॉल्यूम लौटाता है।" -#: js/musicutils.js:685 -#.TRANS: minor blues scale for music -msgid "minor blues" -msgstr "माइनर ब्लूज" +#: js/blocks/VolumeBlocks.js:105 +msgid "master volume" +msgstr "मास्टर वॉल्यूम" -#: js/musicutils.js:687 -#.TRANS: major blues scale for music -msgid "major blues" -msgstr "मेजर ब्लूज" +#: js/blocks/VolumeBlocks.js:109 +msgid "The Master volume block returns the master volume." +msgstr "मास्टर वॉल्यूम ब्लॉक मास्टर वॉल्यूम लौटाता है।" -#: js/musicutils.js:688 -msgid "whole tone" -msgstr "होल टोन" +#: js/blocks/VolumeBlocks.js:355 +#: js/blocks/VolumeBlocks.js:524 +msgid "set synth volume" +msgstr "सिंथ वॉल्यूम सेट करें" -#: js/musicutils.js:690 -#.TRANS: pentatonic is a general term that means "five note scale". This scale is typically known as "minor pentatonic" -msgid "minor pentatonic" -msgstr "माइनर पेंटाटॉनिक" +#: js/blocks/VolumeBlocks.js:362 +#: js/blocks/VolumeBlocks.js:545 +msgid "synth" +msgstr "सिंथ" -#: js/musicutils.js:692 -#.TRANS: pentatonic is a general term that means "five note scale". This scale is typically known as "major pentatonic" -msgid "major pentatonic" -msgstr "मेजर पेंटाटॉनिक" +#: js/blocks/VolumeBlocks.js:403 +#: js/blocks/VolumeBlocks.js:577 +#: js/blocks/VolumeBlocks.js:740 +#: js/turtleactions/VolumeActions.js:173 +msgid "Setting volume to 0." +msgstr "वॉल्यूम को 0 पर सेट करना।" -#: js/musicutils.js:693 -msgid "chinese" -msgstr "चाइनीज़" +#: js/blocks/VolumeBlocks.js:440 +msgid "Synth not found" +msgstr "सिंथ नहीं मिला" -#: js/musicutils.js:694 -msgid "egyptian" -msgstr "इज़िप्शियन" +#: js/blocks/VolumeBlocks.js:494 +msgid "set drum volume" +msgstr "ड्रम वॉल्यूम सेट करें" -#: js/musicutils.js:696 -#.TRANS: https://en.wikipedia.org/wiki/Hirajoshi_scale NOTE: There are three different versions of this scale -msgid "hirajoshi" -msgstr "हिराजोशी" +#: js/blocks/VolumeBlocks.js:530 +msgid "The Set synth volume block will change the volume of a particular synth," +msgstr "सेट सिंथ वॉल्यूम ब्लॉक एक विशिष्ट सिंथ की वॉल्यूम बदलेगा," -#: js/musicutils.js:697 -msgid "Japan" -msgstr "जापान" +#: js/blocks/VolumeBlocks.js:532 +msgid "eg guitar violin snare drum etc." +msgstr "जैसे गिटार वायलिन स्नेयर ड्रम आदि।" -#: js/musicutils.js:699 -#.TRANS: https://en.wikipedia.org/wiki/In_scale and https://en.wikipedia.org/wiki/Sakura_Sakura -msgid "in" -msgstr "" +#: js/blocks/VolumeBlocks.js:534 +msgid "The default volume is 50." +msgstr "डिफ़ॉल्ट वॉल्यूम 50 है।" -#: js/musicutils.js:701 -#.TRANS: https://en.wikipedia.org/wiki/Miny%C5%8D_scale -msgid "minyo" -msgstr "मिन्यो" +#: js/blocks/VolumeBlocks.js:536 +msgid "The range is 0 for silence to 100 for full volume." +msgstr "स्नेहिलता के लिए 0 से पूर्ण वॉल्यूम के लिए 100।" -#: js/musicutils.js:703 -#.TRANS: Italian mathematician -msgid "fibonacci" -msgstr "फिबोनाची" +#: js/blocks/VolumeBlocks.js:597 +msgid "set panning" +msgstr "पैनिंग सेट करें" -#: js/musicutils.js:708 -#: js/musicutils.js:1106 -#.TRANS: lowpass filter -msgid "lowpass" -msgstr "लोपास" +#: js/blocks/VolumeBlocks.js:603 +msgid "The Set Panning block sets the panning for all synthesizers." +msgstr "सेट पैनिंग ब्लॉक सभी सिंथाइज़र्स के लिए पैनिंग सेट करता है।" -#: js/musicutils.js:710 -#: js/musicutils.js:1107 -#.TRANS: bandpass filter -msgid "bandpass" -msgstr "बैंडपास" +#: js/blocks/VolumeBlocks.js:625 +msgid "Warning: Sound is coming out from only the left or right side." +msgstr "चेतावनी: ध्वनि केवल बाएं या दाएं ओर से आ रही है।" -#: js/musicutils.js:712 -#: js/musicutils.js:1108 -#.TRANS: high-shelf filter -msgid "highshelf" -msgstr "हाईशेल्फ" +#: js/blocks/VolumeBlocks.js:647 +#: js/blocks/VolumeBlocks.js:695 +msgid "set master volume" +msgstr "मास्टर वॉल्यूम सेट करें" -#: js/musicutils.js:714 -#: js/musicutils.js:1109 -#.TRANS: low-shelf filter -msgid "lowshelf" -msgstr "लोशेल्फ" +#: js/blocks/VolumeBlocks.js:653 +msgid "The Set master volume block sets the volume for all synthesizers." +msgstr "सेट मास्टर वॉल्यूम ब्लॉक सभी सिंथाइज़र्स के लिए वॉल्यूम सेट करता है।" -#: js/musicutils.js:716 -#: js/musicutils.js:1110 -#.TRANS: notch-shelf filter -msgid "notch" -msgstr "नॉच" +#: js/blocks/VolumeBlocks.js:784 +msgid "The Set relative volume block changes the volume of the contained notes." +msgstr "सेट रिलेटिव वॉल्यूम ब्लॉक शामिल नोट्स की वॉल्यूम को बदलता है।" -#: js/musicutils.js:718 -#: js/musicutils.js:1111 -#.TRANS: all-pass filter -msgid "allpass" -msgstr "ऑलपास" +#: js/blocks/VolumeBlocks.js:791 +msgid "set relative volume" +msgstr "रिलेटिव वॉल्यूम सेट करें" -#: js/musicutils.js:720 -#: js/musicutils.js:1112 -#.TRANS: peaking filter -msgid "peaking" -msgstr "पीकिंग" +#: js/blocks/VolumeBlocks.js:857 +msgid "decrescendo" +msgstr "डेक्रेसेंडो" -#: js/musicutils.js:731 -#: js/synthutils.js:58 -#.TRANS: musical instrument -msgid "violin" -msgstr "वायलिन" +#: js/blocks/VolumeBlocks.js:921 +msgid "crescendo" +msgstr "क्रेशेंडो" -#: js/musicutils.js:732 -#: js/synthutils.js:60 -#.TRANS: viola musical instrument -msgid "viola" -msgstr "वायोला" +#: js/blocks/WidgetBlocks.js:81 +#.TRANS: sound envelope (ADSR) +msgid "envelope" +msgstr "एनवेलोप" -#: js/musicutils.js:733 -#: js/synthutils.js:98 -#.TRANS: xylophone musical instrument -msgid "xylophone" -msgstr "क्सीलोफ़ोन" +#: js/blocks/WidgetBlocks.js:89 +#.TRANS: Attack time is the time taken for initial run-up of level from nil to peak, beginning when the key is first pressed. +msgid "attack" +msgstr "आक्रमण" -#: js/musicutils.js:734 -#: js/synthutils.js:120 -#.TRANS: vibraphone musical instrument -msgid "vibraphone" -msgstr "वाइब्राफ़ोन" +#: js/blocks/WidgetBlocks.js:91 +#.TRANS: Decay time is the time taken for the subsequent run down from the attack level to the designated sustain level. +msgid "decay" +msgstr "क्षय" -#: js/musicutils.js:735 -#: js/synthutils.js:62 -#.TRANS: musical instrument -msgid "cello" -msgstr "चेलो" +#: js/blocks/WidgetBlocks.js:93 +#.TRANS: Sustain level is the level during the main sequence of the sound's duration, until the key is released. +msgid "sustain" +msgstr "सस्टेन" -#: js/musicutils.js:737 -#: js/synthutils.js:66 -#.TRANS: viola musical instrument -msgid "double bass" -msgstr "डबल बास" +#: js/blocks/WidgetBlocks.js:95 +#.TRANS: Release time is the time taken for the level to decay from the sustain level to zero after the key is released. +msgid "release" +msgstr "रिलीज" -#: js/musicutils.js:738 -#: js/synthutils.js:68 -#: js/rhythmruler.js:2119 -#.TRANS: musical instrument -msgid "guitar" -msgstr "गिटार" +#: js/blocks/WidgetBlocks.js:113 +msgid "Attack value should be from 0 to 100." +msgstr "आक्रमण मूल्य 0 से 100 के बीच होना चाहिए।" -#: js/musicutils.js:739 -#: js/synthutils.js:70 -#.TRANS: musical instrument -msgid "acoustic guitar" -msgstr "एकॉस्टिक गिटार" +#: js/blocks/WidgetBlocks.js:116 +msgid "Decay value should be from 0 to 100." +msgstr "क्षय मूल्य 0 से 100 के बीच होना चाहिए।" -#: js/musicutils.js:740 -#: js/synthutils.js:72 -#.TRANS: musical instrument -msgid "flute" -msgstr "बांसुरी" +#: js/blocks/WidgetBlocks.js:119 +msgid "Sustain value should be from 0 to 100." +msgstr "सस्टेन मूल्य 0 से 100 के बीच होना चाहिए।" -#: js/musicutils.js:741 -#: js/synthutils.js:74 -#.TRANS: musical instrument -msgid "clarinet" -msgstr "क्लैरिनेट" +#: js/blocks/WidgetBlocks.js:122 +msgid "Release value should be from 0-100." +msgstr "रिलीज मूल्य 0 से 100 के बीच होना चाहिए।" -#: js/musicutils.js:742 -#: js/synthutils.js:76 -#.TRANS: musical instrument -msgid "saxophone" -msgstr "सैक्सोफोन" +#: js/blocks/WidgetBlocks.js:140 +msgid "You are adding multiple envelope blocks." +msgstr "आप कई एनवेलोप ब्लॉक जोड़ रहे हैं।" -#: js/musicutils.js:743 -#: js/synthutils.js:78 -#.TRANS: musical instrument -msgid "tuba" -msgstr "ट्यूबा" +#: js/blocks/WidgetBlocks.js:171 +#.TRANS: a filter removes some unwanted components from a signal +msgid "filter" +msgstr "फ़िल्टर" -#: js/musicutils.js:744 -#: js/synthutils.js:80 -#.TRANS: musical instrument -msgid "trumpet" -msgstr "ट्रंपेट" +#: js/blocks/WidgetBlocks.js:181 +#: js/widgets/timbre.js:1818 +#.TRANS: rolloff is the steepness of a change in frequency. +msgid "rolloff" +msgstr "रोलऑफ" -#: js/musicutils.js:745 -#: js/synthutils.js:82 -#.TRANS: musical instrument -msgid "oboe" -msgstr "ओबो" +#: js/blocks/WidgetBlocks.js:213 +#.TRANS: rolloff is the steepness of a change in frequency. +msgid "Rolloff value should be either -12, -24, -48, or -96 decibels/octave." +msgstr "रोलऑफ मूल्य -12, -24, -48, या -96 डेसिबल्स/ऑक्टेव होना चाहिए।" -#: js/musicutils.js:746 -#: js/synthutils.js:84 -#.TRANS: musical instrument -msgid "trombone" -msgstr "ट्रॉम्बोन" +#: js/blocks/WidgetBlocks.js:252 +msgid "The Temperament tool is used to define custom tuning." +msgstr "टेम्पेरमेंट टूल का उपयोग कस्टम ट्यूनिंग को निर्धारित करने के लिए किया जाता है।" -#: js/musicutils.js:747 -#: js/synthutils.js:100 -#.TRANS: polytone synthesizer -msgid "electronic synth" -msgstr "इलेक्ट्रॉनिक सिंथ" +#: js/blocks/WidgetBlocks.js:332 +#: js/blocks/WidgetBlocks.js:1573 +#: js/widgets/sampler.js:547 +msgid "Upload a sample and adjust its pitch center." +msgstr "एक सैंपल अपलोड करें और इसके पिच केंद्र को समायोजित करें।" -#: js/musicutils.js:748 -#: js/synthutils.js:102 -#.TRANS: simple monotone synthesizer -msgid "simple 1" -msgstr "सिम्पल 1" +#: js/blocks/WidgetBlocks.js:339 +#.TRANS: the speed at music is should be played. +msgid "sampler" +msgstr "सैम्पलर" -#: js/musicutils.js:749 -msgid "simple 2" -msgstr "सिम्पल 2" +#: js/blocks/WidgetBlocks.js:517 +msgid "The Meter block opens a tool to select strong beats for the meter." +msgstr "मीटर ब्लॉक एक टूल" -#: js/musicutils.js:750 -msgid "simple 3" -msgstr "सिम्पल 3" +#: js/blocks/WidgetBlocks.js:573 +msgid "The oscilloscope block opens a tool to visualize waveforms." +msgstr "ऑसिलोस्कोप ब्लॉक एक उपकरण खोलता है जिससे तरंगरूप दृष्टिकोण को दृष्टिगत किया जा सकता है।" -#: js/musicutils.js:751 -msgid "simple 4" -msgstr "सिम्पल 4" +#: js/blocks/WidgetBlocks.js:578 +msgid "oscilloscope" +msgstr "ऑसिलोस्कोप" -#: js/musicutils.js:753 -#: js/synthutils.js:49 -#.TRANS: brown noise synthesizer -msgid "brown noise" -msgstr "ब्राउन नॉइज़" +#: js/blocks/WidgetBlocks.js:645 +msgid "The Custom mode block opens a tool to explore musical mode (the spacing of the notes in a scale)." +msgstr "कस्टम मोड ब्लॉक एक उपकरण खोलता है जिससे संगीतिक मोड (स्केल में नोट्स की जगह) का अन्वेषण किया जा सकता है।" -#: js/musicutils.js:754 -#: js/synthutils.js:51 -#.TRANS: pink noise synthesizer -msgid "pink noise" -msgstr "पिंक नॉइज़" +#: js/blocks/WidgetBlocks.js:651 +#.TRANS: musical mode is the pattern of half-steps in an octave, e.g., Major or Minor modes +msgid "custom mode" +msgstr "कस्टम मोड" -#: js/musicutils.js:756 -#: js/synthutils.js:127 -#: js/rhythmruler.js:1670 -#: js/rhythmruler.js:1928 -#.TRANS: musical instrument -msgid "snare drum" -msgstr "स्नेयर ड्रम" +#: js/blocks/WidgetBlocks.js:700 +msgid "The Tempo block opens a metronome to visualize the beat." +msgstr "टेम्पो ब्लॉक एक मेट्रोनोम खोलता है जिससे बीट को दृष्टिगत किया जा सकता है।" -#: js/musicutils.js:757 -#: js/synthutils.js:129 -#.TRANS: musical instrument -msgid "kick drum" -msgstr "किक ड्रम" +#: js/blocks/WidgetBlocks.js:762 +msgid "The Arpeggio Widget is used to compose chord sequences." +msgstr "आरपेजियो विजेट का उपयोग एकॉर्ड सीक्वेंस कंपोज करने के लिए किया जाता है।" -#: js/musicutils.js:758 -#: js/synthutils.js:131 -#.TRANS: musical instrument -msgid "tom tom" -msgstr "टॉम टॉम" +#: js/blocks/WidgetBlocks.js:837 +msgid "The Pitch drum matrix is used to map pitches to drum sounds." +msgstr "पिच ड्रम मैट्रिक्स का उपयोग पिच को ड्रम साउंड्स से मैप करने के लिए किया जाता है।" -#: js/musicutils.js:759 -#: js/synthutils.js:133 -#.TRANS: musical instrument -msgid "floor tom" -msgstr "फ्लोर टॉम" +#: js/blocks/WidgetBlocks.js:842 +#.TRANS: makes a mapping between pitches and drum sounds +msgid "pitch-drum mapper" +msgstr "पिच-ड्रम मैपर" -#: js/musicutils.js:760 -#: js/synthutils.js:135 -#.TRANS: musical instrument -msgid "bass drum" -msgstr "बेस ड्रम" +#: js/blocks/WidgetBlocks.js:891 +msgid "You must have at least one pitch block and one drum block in the matrix." +msgstr "मैट्रिक्स में कम से कम एक पिच ब्लॉक और एक ड्रम ब्लॉक होना चाहिए।" -#: js/musicutils.js:761 -#: js/synthutils.js:137 -#.TRANS: a drum made from an inverted cup -msgid "cup drum" -msgstr "कप ड्रम" +#: js/blocks/WidgetBlocks.js:920 +msgid "The Pitch slider tool to is used to generate pitches at selected frequencies." +msgstr "" -#: js/musicutils.js:762 -#: js/synthutils.js:139 -#.TRANS: musical instrument -msgid "darbuka drum" -msgstr "दरबूका ड्रम" +#: js/blocks/WidgetBlocks.js:925 +#.TRANS: widget to generate pitches using a slider +msgid "pitch slider" +msgstr "पिच स्लाइडर" -#: js/musicutils.js:763 -#: js/synthutils.js:143 -#.TRANS: musical instrument -msgid "hi hat" -msgstr "हाई हैट" +#: js/blocks/WidgetBlocks.js:977 +msgid "chromatic keyboard" +msgstr "क्रोमेटिक कीबोर्ड" -#: js/musicutils.js:764 -#: js/synthutils.js:145 -#.TRANS: a small metal bell -msgid "ride bell" -msgstr "राइड बेल" +#: js/blocks/WidgetBlocks.js:1011 +#: js/blocks/WidgetBlocks.js:1077 +#.TRANS: widget to generate pitches using a slider +msgid "music keyboard" +msgstr "संगीत कीबोर्ड" -#: js/musicutils.js:765 -#: js/synthutils.js:147 -#.TRANS: musical instrument -msgid "cow bell" -msgstr "काउ बेल" +#: js/blocks/WidgetBlocks.js:1062 +#: js/blocks/WidgetBlocks.js:1069 +msgid "The Music keyboard block opens a piano keyboard that can be used to create notes." +msgstr "संगीत कीबोर्ड ब्लॉक एक पियानो कीबोर्ड खोलता है जिससे नोट बनाने के लिए उपयोग किया जा सकता है।" -#: js/musicutils.js:766 -msgid "japanese drum" -msgstr "जापानी ड्रम" +#: js/blocks/WidgetBlocks.js:1128 +msgid "The Pitch staircase tool to is used to generate pitches from a given ratio." +msgstr "" -#: js/musicutils.js:767 -#: js/synthutils.js:153 -#.TRANS: musical instrument -msgid "japanese bell" -msgstr "जापानी बेल" +#: js/blocks/WidgetBlocks.js:1135 +#.TRANS: generate a progressive sequence of pitches +msgid "pitch staircase" +msgstr "पिच स्टेयरकेस" -#: js/musicutils.js:768 -#: js/synthutils.js:149 -#.TRANS: musical instrument -msgid "triangle bell" -msgstr "त्रिकोण बेल" +#: js/blocks/WidgetBlocks.js:1222 +msgid "The Rhythm Maker block opens a tool to create drum machines." +msgstr "रिदम मेकर ब्लॉक एक उपकरण खोलता है जिससे ड्रम मशीन बनाई जा सकती है।" -#: js/musicutils.js:769 -#: js/synthutils.js:151 -#.TRANS: musical instrument -msgid "finger cymbals" -msgstr "फिंगर सिम्बल्स" +#: js/blocks/WidgetBlocks.js:1291 +msgid "G major scale" +msgstr "जी मेजर स्केल" -#: js/musicutils.js:770 -#: js/synthutils.js:155 -#.TRANS: a musically tuned set of bells -msgid "chime" -msgstr "चाइम" +#: js/blocks/WidgetBlocks.js:1326 +msgid "C major scale" +msgstr "सी मेजर स्केल" -#: js/musicutils.js:771 -#: js/synthutils.js:157 -#.TRANS: a musical instrument -msgid "gong" -msgstr "गॉंग" +#: js/blocks/WidgetBlocks.js:1366 +msgid "The Phrase Maker block opens a tool to create musical phrases." +msgstr "फ्रेज मेकर ब्लॉक एक उपकरण खोलता है जिससे संगीतिक वाक्य बनाए जा सकते हैं।" -#: js/musicutils.js:772 -#: js/synthutils.js:159 -#.TRANS: sound effect -msgid "clang" -msgstr "क्लैंग" +#: js/blocks/WidgetBlocks.js:1373 +#.TRANS: assigns pitch to a sequence of beats to generate a melody +msgid "phrase maker" +msgstr "वाक्य निर्माता" -#: js/musicutils.js:773 -#: js/synthutils.js:161 -#.TRANS: sound effect -msgid "crash" -msgstr "क्रैश" +#: js/blocks/WidgetBlocks.js:1444 +msgid "You must have at least one pitch block and one rhythm block in the matrix." +msgstr "मैट्रिक्स में कम से कम एक पिच ब्लॉक और एक रिदम ब्लॉक होना चाहिए।" -#: js/musicutils.js:774 -#: js/synthutils.js:163 -#.TRANS: sound effect -msgid "bottle" -msgstr "बॉटल" +#: js/blocks/WidgetBlocks.js:1503 +msgid "The Status block opens a tool for inspecting the status of Music Blocks as it is running." +msgstr "स्थिति ब्लॉक एक उपकरण खोलता है जिससे चल रहे संगीत ब्लॉक्स की स्थिति की जाँच की जा सकती है।" -#: js/musicutils.js:775 -#: js/synthutils.js:165 -#.TRANS: sound effect -msgid "clap" -msgstr "क्लैप" +#: js/blocks/WidgetBlocks.js:1580 +#.TRANS: AI-generated music +msgid "aimusic" +msgstr "" -#: js/musicutils.js:776 -#: js/synthutils.js:167 -#.TRANS: sound effect -msgid "slap" -msgstr "स्लैप" +#: js/turtleactions/MeterActions.js:101 +#: js/turtleactions/MeterActions.js:139 +msgid "beats per minute must be greater than" +msgstr "प्रति मिनट बीट 30 से अधिक होना चाहिए" -#: js/musicutils.js:777 -#: js/synthutils.js:169 -#.TRANS: sound effect -msgid "splash" -msgstr "स्प्लैश" +#: js/turtleactions/MeterActions.js:111 +#: js/turtleactions/MeterActions.js:149 +msgid "maximum" +msgstr "अधिकतम" -#: js/musicutils.js:778 -#: js/synthutils.js:171 -#.TRANS: sound effect -msgid "bubbles" -msgstr "बबल्स" +#: js/turtleactions/MeterActions.js:117 +#: js/turtleactions/MeterActions.js:155 +msgid "beats per minute is" +msgstr "प्रति मिनट बीट" -#: js/musicutils.js:779 -#: js/synthutils.js:173 -#.TRANS: sound effect -msgid "raindrop" -msgstr "रेनड्रॉप" +#: js/turtleactions/DictActions.js:75 +#: js/turtleactions/DictActions.js:142 +#: js/turtleactions/DictActions.js:172 +msgid "font" +msgstr "फ़ॉन्ट" -#: js/musicutils.js:780 -#: js/synthutils.js:175 -#.TRANS: animal sound effect -msgid "cat" -msgstr "बिल्ली" +#: js/turtleactions/DictActions.js:255 +msgid "Dictionary with this name does not exist" +msgstr "" -#: js/musicutils.js:781 -#: js/synthutils.js:177 -#.TRANS: animal sound effect -msgid "cricket" -msgstr "क्रिकेट" +#: js/turtleactions/DictActions.js:259 +msgid "Key with this name does not exist in " +msgstr "" -#: js/musicutils.js:782 -#: js/synthutils.js:179 -#.TRANS: animal sound effect -msgid "dog" -msgstr "कुत्ता" +#: js/turtleactions/DrumActions.js:227 +msgid "Noise Block: Did you mean to use a Note block?" +msgstr "नॉइज ब्लॉक: क्या आपने एक नोट ब्लॉक का इस्तेमाल करने का इरादा किया है?" -#: js/musicutils.js:784 -#: js/synthutils.js:86 -#.TRANS: musical instrument -msgid "banjo" -msgstr "बैंजो" +#: js/turtleactions/IntervalsActions.js:113 +msgid "one" +msgstr "" -#: js/musicutils.js:785 -#: js/synthutils.js:88 -#.TRANS: musical instrument -msgid "koto" -msgstr "कोतो" +#: js/turtleactions/IntervalsActions.js:113 +msgid "two" +msgstr "" -#: js/musicutils.js:786 -#: js/synthutils.js:90 -#.TRANS: musical instrument -msgid "dulcimer" -msgstr "डल्सिमर" +#: js/turtleactions/IntervalsActions.js:113 +msgid "three" +msgstr "" -#: js/musicutils.js:787 -#: js/synthutils.js:92 -#.TRANS: musical instrument -msgid "electric guitar" -msgstr "इलेक्ट्रिक गिटार" +#: js/turtleactions/IntervalsActions.js:113 +msgid "four" +msgstr "" -#: js/musicutils.js:788 -#: js/synthutils.js:94 -#.TRANS: musical instrument -msgid "bassoon" -msgstr "बैसून" +#: js/turtleactions/IntervalsActions.js:113 +msgid "five" +msgstr "" -#: js/musicutils.js:789 -#: js/synthutils.js:96 -#.TRANS: musical instrument -msgid "celeste" -msgstr "सेलेस्ट" +#: js/turtleactions/IntervalsActions.js:113 +msgid "six" +msgstr "" -#: js/musicutils.js:791 -#: js/musicutils.js:1123 -#: js/musicutils.js:1131 -#: js/temperament.js:650 -#.TRANS: musical temperament -msgid "equal" -msgstr "इक्वल" +#: js/turtleactions/IntervalsActions.js:113 +msgid "seven" +msgstr "" -#: js/musicutils.js:793 -#: js/musicutils.js:1125 -#: js/musicutils.js:1133 -#.TRANS: musical temperament -msgid "Pythagorean" -msgstr "पिथागोरियन" +#: js/turtleactions/IntervalsActions.js:113 +msgid "eight" +msgstr "" -#: js/musicutils.js:795 -#: js/musicutils.js:1124 -#: js/musicutils.js:1132 -#.TRANS: musical temperament -msgid "just intonation" -msgstr "जस्ट इंटोनेशन" +#: js/turtleactions/IntervalsActions.js:113 +msgid "nine" +msgstr "" -#: js/musicutils.js:797 -#: js/musicutils.js:1126 -#: js/musicutils.js:1127 -#: js/musicutils.js:1134 -#: js/musicutils.js:1135 -#.TRANS: musical temperament -msgid "meantone" -msgstr "मींटोन" +#: js/turtleactions/IntervalsActions.js:119 +msgid "a" +msgstr "" -#: js/musicutils.js:814 -msgid "major 7th" -msgstr "मेजर 7वां" +#: js/turtleactions/IntervalsActions.js:120 +msgid "below" +msgstr "" -#: js/musicutils.js:815 -msgid "minor 7th" -msgstr "माइनर 7वां" +#: js/turtleactions/IntervalsActions.js:124 +msgid "above" +msgstr "" -#: js/musicutils.js:816 -msgid "dominant 7th" -msgstr "डॉमिनेंट 7वां" +#: js/turtleactions/IntervalsActions.js:131 +msgid "plus" +msgstr "" -#: js/musicutils.js:817 -msgid "minor-major 7th" -msgstr "माइनर-मेजर 7वां" +#: js/turtleactions/IntervalsActions.js:139 +msgid " below" +msgstr "" -#: js/musicutils.js:818 -msgid "fully-diminished 7th" -msgstr "फुली-डिमिनिश 7वां" +#: js/turtleactions/IntervalsActions.js:257 +msgid "Adding missing pitch number 0." +msgstr "गायन संख्या 0 जोड़ी जा रही है।" -#: js/musicutils.js:819 -msgid "half-diminished 7th" -msgstr "हाफ-डिमिनिश 7वां" +#: js/turtleactions/IntervalsActions.js:265 +msgid "Ignoring pitch numbers less than zero or greater than eleven." +msgstr "0 से कम या 11 से अधिक स्वर संख्याओं को अनदेखा कर रहा है।" -#: js/musicutils.js:4379 -#: js/musicutils.js:4416 -msgid "current" -msgstr "वर्तमान" +#: js/turtleactions/IntervalsActions.js:271 +msgid "Ignoring duplicate pitch numbers." +msgstr "डुप्लिकेट स्वर संख्याओं को अनदेखा कर रहा है।" -#: js/musicutils.js:4382 -#: js/musicutils.js:4407 -msgid "next" -msgstr "अगला" +#: js/turtleactions/ToneActions.js:134 +msgid "Vibrato intensity must be between 1 and 100." +msgstr "विब्राटो तीव्रता 1 और 100 के बीच होनी चाहिए।" -#: js/musicutils.js:4385 -#: js/musicutils.js:4412 -msgid "previous" -msgstr "पिछला" +#: js/turtleactions/ToneActions.js:139 +msgid "Vibrato rate must be greater than 0." +msgstr "विब्राटो दर 0 से अधिक होनी चाहिए।" -#: js/synthutils.js:104 -#.TRANS: simple monotone synthesizer -msgid "simple-2" -msgstr "सिंपल-2" +#: js/turtleactions/ToneActions.js:192 +#: js/turtleactions/ToneActions.js:265 +#.TRANS: Depth is the intesity of the tremolo or chorus effect. +msgid "Depth is out of range." +msgstr "गहराई सीमा से बाहर है।" -#: js/synthutils.js:106 -#.TRANS: simple monotone synthesizer -msgid "simple-3" -msgstr "सिंपल-3" +#: js/turtleactions/ToneActions.js:301 +msgid "Distortion must be from 0 to 100." +msgstr "विरुपण 0 से 100 के बीच होना चाहिए।" -#: js/synthutils.js:108 -#.TRANS: simple monotone synthesizer -msgid "simple-4" -msgstr "सिंपल-4" +#: js/turtleactions/ToneActions.js:332 +#.TRANS: partials components in a harmonic series +msgid "Partial must be greater than or equal to 0." +msgstr "आंश 0 से अधिक या इसके बराबर होना चाहिए।" -#: js/synthutils.js:141 -#.TRANS: musical instrument -msgid "taiko" -msgstr "ताइको" +#: js/turtleactions/ToneActions.js:378 +#: js/turtleactions/ToneActions.js:417 +#: js/turtleactions/ToneActions.js:456 +#: js/widgets/timbre.js:782 +msgid "Unable to use synth due to existing oscillator" +msgstr "मौजूदा ऑस्किलेटर के कारण सिंथ का उपयोग नहीं किया जा सकता" + +#: js/turtleactions/ToneActions.js:388 +#: js/turtleactions/ToneActions.js:427 +msgid "The input cannot be negative." +msgstr "इनपुट नकारात्मक नहीं हो सकता।" -#: js/modewidget.js:86 -#: js/modewidget.js:88 -#: js/modewidget.js:642 -#: js/modewidget.js:644 -#: js/modewidget.js:712 -#: js/modewidget.js:714 -#: js/temperament.js:2078 -#: js/rhythmruler.js:189 -#: js/rhythmruler.js:1410 -#: js/rhythmruler.js:1412 -#: js/rhythmruler.js:1435 -#: js/rhythmruler.js:1437 -#: js/meterwidget.js:89 -#: js/meterwidget.js:91 +#: js/widgets/modewidget.js:86 +#: js/widgets/modewidget.js:88 +#: js/widgets/modewidget.js:642 +#: js/widgets/modewidget.js:644 +#: js/widgets/modewidget.js:712 +#: js/widgets/modewidget.js:714 +#: js/widgets/meterwidget.js:194 +#: js/widgets/meterwidget.js:196 +#: js/widgets/temperament.js:2236 +#: js/widgets/rhythmruler.js:457 +#: js/widgets/rhythmruler.js:1790 +#: js/widgets/rhythmruler.js:1792 +#: js/widgets/rhythmruler.js:1816 +#: js/widgets/rhythmruler.js:1818 msgid "Play all" msgstr "सभी बजाएं" -#: js/modewidget.js:115 -#: js/pitchstaircase.js:641 -#: js/phrasemaker.js:339 -#: js/pitchdrummatrix.js:94 -#: js/pitchslider.js:125 -#: js/temperament.js:2083 -#: js/musickeyboard.js:530 -#: js/timbre.js:756 -#: js/meterwidget.js:124 -#: js/arpeggio.js:103 +#: js/widgets/modewidget.js:115 +#: js/widgets/meterwidget.js:229 +#: js/widgets/pitchdrummatrix.js:166 +#: js/widgets/pitchslider.js:125 +#: js/widgets/pitchstaircase.js:641 +#: js/widgets/temperament.js:2244 +#: js/widgets/timbre.js:756 +#: js/widgets/arpeggio.js:103 +#: js/widgets/musickeyboard.js:688 +#: js/widgets/phrasemaker.js:550 msgid "Save" msgstr "सहेजें" -#: js/modewidget.js:121 -#: js/pitchstaircase.js:686 -#: js/phrasemaker.js:356 -#: js/pitchdrummatrix.js:109 -#: js/musickeyboard.js:534 -#: js/rhythmruler.js:269 -#: js/arpeggio.js:118 +#: js/widgets/modewidget.js:121 +#: js/widgets/pitchdrummatrix.js:181 +#: js/widgets/pitchstaircase.js:686 +#: js/widgets/arpeggio.js:118 +#: js/widgets/musickeyboard.js:696 +#: js/widgets/phrasemaker.js:567 +#: js/widgets/rhythmruler.js:601 #.TRANS: clear all subdivisions from the ruler. msgid "Clear" msgstr "हटाएं" -#: js/modewidget.js:127 +#: js/widgets/modewidget.js:127 msgid "Rotate counter clockwise" msgstr "घड़ी की उल्टी दिशा में घुमाएं" -#: js/modewidget.js:133 +#: js/widgets/modewidget.js:133 msgid "Rotate clockwise" msgstr "घड़ी की दिशा में घुमाएं" -#: js/modewidget.js:139 +#: js/widgets/modewidget.js:139 msgid "Invert" msgstr "उलटाएं" -#: js/modewidget.js:145 -#: js/pitchstaircase.js:678 -#: js/rhythmruler.js:258 -#: js/timbre.js:963 +#: js/widgets/modewidget.js:145 +#: js/widgets/pitchstaircase.js:678 +#: js/widgets/timbre.js:963 +#: js/widgets/rhythmruler.js:578 msgid "Undo" msgstr "पूर्ववत् करें" -#: js/modewidget.js:163 +#: js/widgets/modewidget.js:163 #.TRANS: A circle of notes represents the musical mode. msgid "Click in the circle to select notes for the mode." msgstr "संगीतिक मोड के लिए नोट्स का चयन करने के लिए वृत्त में क्लिक करें." -#: js/modewidget.js:1017 -#: js/pitchstaircase.js:580 -#: js/phrasemaker.js:4855 -#: js/temperament.js:1754 -#: js/rhythmruler.js:1865 -#: js/rhythmruler.js:2081 -#: js/tempo.js:414 +#: js/widgets/modewidget.js:1017 +#: js/widgets/pitchstaircase.js:580 +#: js/widgets/temperament.js:1929 +#: js/widgets/tempo.js:414 +#: js/widgets/phrasemaker.js:5356 +#: js/widgets/rhythmruler.js:2254 +#: js/widgets/rhythmruler.js:2472 msgid "New action block generated!" msgstr "नया क्रिया ब्लॉक उत्पन्न हुआ!" -#: js/oscilloscope.js:79 +#: js/widgets/meterwidget.js:275 +msgid "Reset" +msgstr "रीसेट" + +#: js/widgets/meterwidget.js:301 +msgid "Click in the circle to select strong beats for the meter." +msgstr "मीटर के लिए मजबूत बीट्स का चयन करने के लिए वृत्त में क्लिक करें।" + +#: js/widgets/oscilloscope.js:79 msgid "Zoom In" msgstr "ज़ूम इन" -#: js/oscilloscope.js:88 +#: js/widgets/oscilloscope.js:88 msgid "Zoom Out" msgstr "ज़ूम आउट" -#: js/pitchstaircase.js:624 -msgid "Play chord" -msgstr "कॉर्ड बजाएं" - -#: js/pitchstaircase.js:632 -msgid "Play scale" -msgstr "स्केल बजाएं" - -#: js/pitchstaircase.js:696 -msgid "Click on a note to create a new step." -msgstr "नए स्टेप बनाने के लिए नोट पर क्लिक करें." - -#: js/phrasemaker.js:363 -msgid "Export" -msgstr "निर्यात करें" - -#: js/phrasemaker.js:370 -msgid "Sort" -msgstr "क्रमबद्ध करें" - -#: js/phrasemaker.js:373 -#: js/musickeyboard.js:559 -msgid "Add note" -msgstr "नोट जोड़ें" - -#: js/phrasemaker.js:764 -msgid "Click on the table to add notes." -msgstr "नोट्स जोड़ने के लिए तालिका पर क्लिक करें." - -#: js/phrasemaker.js:2414 -#: js/phrasemaker.js:2543 -msgid "tuplet value" -msgstr "ट्यूपलेट मूल्य" - -#: js/pitchdrummatrix.js:270 -#: js/pitchdrummatrix.js:639 +#: js/widgets/pitchdrummatrix.js:356 +#: js/widgets/pitchdrummatrix.js:752 msgid "Click in the grid to map notes to drums." msgstr "ग्रिड में नोट्स को ड्रम्स से मैप करने के लिए क्लिक करें." -#: js/pitchslider.js:103 +#: js/widgets/pitchslider.js:103 msgid "Move up" msgstr "ऊपर जाएं" -#: js/pitchslider.js:114 +#: js/widgets/pitchslider.js:114 msgid "Move down" msgstr "नीचे जाएं" -#: js/pitchslider.js:136 +#: js/widgets/pitchslider.js:136 msgid "Click on the slider to create a note block." msgstr "नोट ब्लॉक बनाने के लिए स्लाइडर पर क्लिक करें." -#: js/temperament.js:215 +#: js/widgets/pitchstaircase.js:624 +msgid "Play chord" +msgstr "कॉर्ड बजाएं" + +#: js/widgets/pitchstaircase.js:632 +msgid "Play scale" +msgstr "स्केल बजाएं" + +#: js/widgets/pitchstaircase.js:696 +msgid "Click on a note to create a new step." +msgstr "नए स्टेप बनाने के लिए नोट पर क्लिक करें." + +#: js/widgets/temperament.js:321 msgid "back to 2:1 octave space" msgstr "2:1 ऑक्टेव स्थान पर वापस जाएं" -#: js/temperament.js:323 +#: js/widgets/temperament.js:447 msgid "edit" msgstr "संपादित करें" -#: js/temperament.js:330 -#: js/temperament.js:332 -#: js/temperament.js:1336 -#: js/temperament.js:1338 +#: js/widgets/temperament.js:454 +#: js/widgets/temperament.js:456 +#: js/widgets/temperament.js:1493 +#: js/widgets/temperament.js:1495 msgid "close" msgstr "बंद करें" -#: js/temperament.js:423 -#: js/temperament.js:736 -#: js/temperament.js:743 -#: js/temperament.js:845 -#: js/temperament.js:935 -#: js/temperament.js:942 -#: js/temperament.js:1015 -#: js/temperament.js:1284 -#: js/temperament.js:1354 -#: js/temperament.js:1430 +#: js/widgets/temperament.js:552 +#: js/widgets/temperament.js:877 +#: js/widgets/temperament.js:884 +#: js/widgets/temperament.js:986 +#: js/widgets/temperament.js:1080 +#: js/widgets/temperament.js:1087 +#: js/widgets/temperament.js:1160 +#: js/widgets/temperament.js:1433 +#: js/widgets/temperament.js:1511 +#: js/widgets/temperament.js:1596 msgid "done" msgstr "किया हुआ" -#: js/temperament.js:477 -#: js/temperament.js:482 -#: js/temperament.js:918 +#: js/widgets/temperament.js:610 +#: js/widgets/temperament.js:615 +#: js/widgets/temperament.js:1063 msgid "ratio" msgstr "अनुपात" -#: js/temperament.js:483 +#: js/widgets/temperament.js:616 msgid "interval" msgstr "अंतराल" -#: js/temperament.js:611 +#: js/widgets/temperament.js:744 msgid "non scalar" msgstr "गैर स्केलर" -#: js/temperament.js:650 +#: js/widgets/temperament.js:787 msgid "ratios" msgstr "अनुपात" -#: js/temperament.js:650 +#: js/widgets/temperament.js:787 msgid "arbitrary" msgstr "मनमाना" -#: js/temperament.js:719 +#: js/widgets/temperament.js:860 msgid "number of divisions" msgstr "विभाजनों की संख्या" -#: js/temperament.js:741 -#: js/temperament.js:858 -#: js/temperament.js:940 -#: js/temperament.js:1033 +#: js/widgets/temperament.js:882 +#: js/widgets/temperament.js:999 +#: js/widgets/temperament.js:1085 +#: js/widgets/temperament.js:1178 msgid "preview" msgstr "पूर्वावलोकन" -#: js/temperament.js:788 +#: js/widgets/temperament.js:929 msgid "The Number of divisions is too large." msgstr "" -#: js/temperament.js:921 +#: js/widgets/temperament.js:1066 msgid "recursion" msgstr "पुनरावर्तन" -#: js/temperament.js:1450 +#: js/widgets/temperament.js:1616 msgid "The octave ratio has changed. This changes temperament significantly." msgstr "ऑक्टेव अनुपात बदल गया है। यह स्वभाव को काफी बदल देता है।" -#: js/temperament.js:2087 +#: js/widgets/temperament.js:2248 msgid "Table" msgstr "तालिका" -#: js/temperament.js:2185 +#: js/widgets/temperament.js:2356 msgid "Add pitches" msgstr "स्वर जोड़ें" -#: js/musickeyboard.js:570 -msgid "Metronome" -msgstr "मेट्रोनोम" - -#: js/musickeyboard.js:1296 -#: plugins/rodi.rtp:193 -msgid "duration" -msgstr "अवधि" - -#: js/musickeyboard.js:2840 -msgid "New action blocks generated!" -msgstr "" - -#: js/musickeyboard.js:2841 -msgid "New action block generated" -msgstr "" - -#: js/musickeyboard.js:2984 -#: js/musickeyboard.js:2992 -msgid "MIDI device present." -msgstr "MIDI उपकरण मौजूद है।" - -#: js/musickeyboard.js:2995 -msgid "No MIDI device found." -msgstr "कोई MIDI उपकरण नहीं मिला।" - -#: js/musickeyboard.js:3000 -msgid "Failed to get MIDI access in browser." -msgstr "ब्राउज़र में MIDI पहुँचने में विफल।" - -#: js/rhythmruler.js:202 -msgid "Save rhythms" -msgstr "तालें सहेजें" - -#: js/rhythmruler.js:222 -msgid "Save drum machine" -msgstr "ड्रम मशीन सहेजें" - -#: js/rhythmruler.js:263 -#.TRANS: user can tap out a rhythm by clicking on a ruler. -msgid "Tap a rhythm" -msgstr "एक ताल पर टैप करें" - -#: js/rhythmruler.js:342 -#: js/rhythmruler.js:344 -#: js/rhythmruler.js:1481 -#: js/rhythmruler.js:1483 -#: js/sampler.js:110 -#: js/sampler.js:112 -#: js/tempo.js:78 -#: js/tempo.js:97 -#: js/tempo.js:99 +#: js/widgets/tempo.js:78 +#: js/widgets/tempo.js:97 +#: js/widgets/tempo.js:99 +#: js/widgets/aiwidget.js:134 +#: js/widgets/aiwidget.js:136 +#: js/widgets/rhythmruler.js:681 +#: js/widgets/rhythmruler.js:683 +#: js/widgets/rhythmruler.js:1864 +#: js/widgets/rhythmruler.js:1866 +#: js/widgets/sampler.js:180 +#: js/widgets/sampler.js:182 msgid "Pause" msgstr "रुकें" -#: js/rhythmruler.js:478 -msgid "Click on the ruler to divide it." -msgstr "इसे विभाजित करने के लिए रुलर पर क्लिक करें।" - -#: js/rhythmruler.js:603 -#: js/rhythmruler.js:605 -#: js/rhythmruler.js:804 -#: js/rhythmruler.js:806 -#: js/rhythmruler.js:1386 -#: js/rhythmruler.js:1388 -msgid "tap a rhythm" -msgstr "एक ताल टैप करें" - -#: js/rhythmruler.js:1084 -msgid "Maximum value of 256 has been exceeded." -msgstr "256 का अधिकतम मूल्य पार कर गया है।" - -#: js/sampler.js:137 -msgid "Warning: Sample is bigger than 1MB." -msgstr "चेतावनी: सैंपल 1MB से बड़ा है।" - -#: js/sampler.js:142 -msgid "Upload failed: Sample is not a .wav file." -msgstr "अपलोड विफल: सैंपल .wav फ़ाइल नहीं है।" - -#: js/sampler.js:164 -msgid "A new sample block was generated." -msgstr "एक नया सैंपल ब्लॉक उत्पन्न हुआ था।" - -#: js/sampler.js:255 -msgid "Upload sample" -msgstr "सैंपल अपलोड करें" - -#: js/sampler.js:306 -msgid "Save sample" -msgstr "सैंपल सहेजें" - -#: js/sampler.js:697 -#.TRANS: The reference tone is a sound used for comparison. -msgid "reference tone" -msgstr "संदर्भ स्वर" - -#: js/tempo.js:113 +#: js/widgets/tempo.js:113 msgid "Save tempo" msgstr "ताल सहेजें" -#: js/tempo.js:144 +#: js/widgets/tempo.js:144 msgid "speed up" msgstr "तेजी से बढ़ाएं" -#: js/tempo.js:150 +#: js/widgets/tempo.js:150 msgid "slow down" msgstr "धीमे से बढ़ाएं" -#: js/tempo.js:194 +#: js/widgets/tempo.js:194 msgid "Adjust the tempo with the buttons." msgstr "बटन के साथ ताल को समायोजित करें।" -#: js/tempo.js:261 +#: js/widgets/tempo.js:261 msgid "Please enter a number between 30 and 1000" msgstr "" -#: js/tempo.js:268 -#: js/tempo.js:271 +#: js/widgets/tempo.js:268 +#: js/widgets/tempo.js:271 msgid "The beats per minute must be between 30 and 1000." msgstr "प्रति मिनट बीट 30 और 1000 के बीच होना चाहिए।" -#: js/tempo.js:287 +#: js/widgets/tempo.js:287 msgid "The beats per minute must be below 1000." msgstr "प्रति मिनट बीट 1000 के नीचे होना चाहिए।" -#: js/tempo.js:303 +#: js/widgets/tempo.js:303 msgid "The beats per minute must be above 30" msgstr "प्रति मिनट बीट 30 के ऊपर होना चाहिए" -#: js/timbre.js:766 +#: js/widgets/timbre.js:766 msgid "Synthesizer" msgstr "सिंथेसाइज़र" -#: js/timbre.js:789 +#: js/widgets/timbre.js:789 msgid "Oscillator" msgstr "ऑस्सिलेटर" -#: js/timbre.js:840 +#: js/widgets/timbre.js:840 msgid "Envelope" msgstr "एनवेलप" -#: js/timbre.js:886 -#: js/GlobalTag.js:50 +#: js/widgets/timbre.js:886 +#: planet/js/GlobalTag.js:50 #.TRANS: On the Planet, we use labels to tag projects. msgid "Effects" msgstr "प्रभाव" -#: js/timbre.js:904 +#: js/widgets/timbre.js:904 msgid "Filter" msgstr "फ़िल्टर" -#: js/timbre.js:946 +#: js/widgets/timbre.js:946 msgid "Add filter" msgstr "फ़िल्टर जोड़ें" -#: js/timbre.js:987 +#: js/widgets/timbre.js:987 msgid "Click on buttons to open the timbre design tools." msgstr "टिम्बर डिज़ाइन टूल्स खोलने के लिए बटन पर क्लिक करें।" -#: js/timbre.js:1273 +#: js/widgets/timbre.js:1273 msgid "harmonicity" msgstr "सवारी" -#: js/timbre.js:1340 -#: js/timbre.js:1406 +#: js/widgets/timbre.js:1340 +#: js/widgets/timbre.js:1406 msgid "modulation index" msgstr "मॉड्यूलेशन सूची" -#: js/timbre.js:1484 +#: js/widgets/timbre.js:1484 msgid "vibrato amount" msgstr "वाइब्रेटो मात्रा" -#: js/timbre.js:1919 +#: js/widgets/timbre.js:1919 msgid "Filter already present." msgstr "फ़िल्टर पहले से मौजूद है।" -#: js/timbre.js:2322 +#: js/widgets/timbre.js:2322 msgid "delay (MS)" msgstr "देरी (मि.से.)" -#: js/timbre.js:2507 +#: js/widgets/timbre.js:2507 msgid "distortion amount" msgstr "विकृति मात्रा" -#: js/meterwidget.js:170 -msgid "Reset" -msgstr "रीसेट" +#: js/widgets/aiwidget.js:180 +#: js/widgets/sampler.js:227 +msgid "Warning: Sample is bigger than 1MB." +msgstr "चेतावनी: सैंपल 1MB से बड़ा है।" -#: js/meterwidget.js:196 -msgid "Click in the circle to select strong beats for the meter." -msgstr "मीटर के लिए मजबूत बीट्स का चयन करने के लिए वृत्त में क्लिक करें।" +#: js/widgets/aiwidget.js:539 +msgid "New start block generated" +msgstr "" + +#: js/widgets/aiwidget.js:541 +msgid "MIDI loading. This may take some time depending upon the number of notes in the track" +msgstr "" + +#: js/widgets/aiwidget.js:551 +#: js/widgets/sampler.js:254 +msgid "Upload failed: Sample is not a .wav file." +msgstr "अपलोड विफल: सैंपल .wav फ़ाइल नहीं है।" + +#: js/widgets/aiwidget.js:679 +#: js/widgets/sampler.js:432 +msgid "Save sample" +msgstr "सैंपल सहेजें" -#: js/arpeggio.js:239 +#: js/widgets/aiwidget.js:701 +msgid "AI Music" +msgstr "" + +#: js/widgets/arpeggio.js:239 msgid "Click in the grid to add steps to the arpeggio." msgstr "आर्पेजियो में कदम जोड़ने के लिए ग्रिड में क्लिक करें।" -#: js/ProjectStorage.js:243 -msgid "anonymous" -msgstr "अनामक" +#: js/widgets/help.js:95 +#: js/widgets/help.js:125 +#: js/widgets/help.js:146 +#: js/widgets/help.js:158 +#: js/widgets/help.js:376 +#: js/widgets/help.js:391 +msgid "Take a tour" +msgstr "एक यात्रा करें" + +#: js/widgets/musickeyboard.js:725 +#: js/widgets/phrasemaker.js:584 +msgid "Add note" +msgstr "नोट जोड़ें" -#: js/GlobalCard.js:68 -msgid "Share" -msgstr "साझा करें" +#: js/widgets/musickeyboard.js:744 +msgid "Metronome" +msgstr "मेट्रोनोम" -#: js/GlobalCard.js:74 -msgid "Flags" -msgstr "फ़्लैग्स" +#: js/widgets/musickeyboard.js:1549 +#: plugins/rodi.rtp:193 +msgid "duration" +msgstr "अवधि" -#: js/LocalCard.js:36 -msgid "View published project" -msgstr "प्रकाशित परियोजना देखें" +#: js/widgets/musickeyboard.js:3179 +msgid "New action blocks generated" +msgstr "" -#: js/LocalCard.js:42 -msgid "Publish project" -msgstr "परियोजना प्रकाशित करें" +#: js/widgets/musickeyboard.js:3180 +msgid "New action block generated" +msgstr "" -#: js/LocalCard.js:51 -msgid "Edit project" -msgstr "परियोजना संपादित करें" +#: js/widgets/musickeyboard.js:3365 +#: js/widgets/musickeyboard.js:3373 +msgid "MIDI device present." +msgstr "MIDI उपकरण मौजूद है।" -#: js/LocalCard.js:52 -msgid "Delete project" -msgstr "परियोजना हटाएं" +#: js/widgets/musickeyboard.js:3376 +msgid "No MIDI device found." +msgstr "कोई MIDI उपकरण नहीं मिला।" -#: js/LocalCard.js:53 -msgid "Download project" -msgstr "परियोजना डाउनलोड करें" +#: js/widgets/musickeyboard.js:3386 +msgid "Failed to get MIDI access in browser." +msgstr "ब्राउज़र में MIDI पहुँचने में विफल।" + +#: js/widgets/phrasemaker.js:574 +msgid "Export" +msgstr "निर्यात करें" + +#: js/widgets/phrasemaker.js:581 +msgid "Sort" +msgstr "क्रमबद्ध करें" + +#: js/widgets/phrasemaker.js:975 +msgid "Click on the table to add notes." +msgstr "नोट्स जोड़ने के लिए तालिका पर क्लिक करें." + +#: js/widgets/phrasemaker.js:2677 +#: js/widgets/phrasemaker.js:2819 +msgid "tuplet value" +msgstr "ट्यूपलेट मूल्य" + +#: js/widgets/rhythmruler.js:486 +msgid "Save rhythms" +msgstr "तालें सहेजें" + +#: js/widgets/rhythmruler.js:512 +msgid "Save drum machine" +msgstr "ड्रम मशीन सहेजें" + +#: js/widgets/rhythmruler.js:589 +#.TRANS: user can tap out a rhythm by clicking on a ruler. +msgid "Tap a rhythm" +msgstr "एक ताल पर टैप करें" + +#: js/widgets/rhythmruler.js:817 +msgid "Click on the ruler to divide it." +msgstr "इसे विभाजित करने के लिए रुलर पर क्लिक करें।" + +#: js/widgets/rhythmruler.js:950 +#: js/widgets/rhythmruler.js:952 +#: js/widgets/rhythmruler.js:1152 +#: js/widgets/rhythmruler.js:1154 +#: js/widgets/rhythmruler.js:1765 +#: js/widgets/rhythmruler.js:1767 +msgid "tap a rhythm" +msgstr "एक ताल टैप करें" + +#: js/widgets/rhythmruler.js:1459 +msgid "Maximum value of 256 has been exceeded." +msgstr "256 का अधिकतम मूल्य पार कर गया है।" + +#: js/widgets/sampler.js:237 +msgid "Recording started..." +msgstr "" + +#: js/widgets/sampler.js:245 +msgid "Recording complete..." +msgstr "" + +#: js/widgets/sampler.js:283 +msgid "A new sample block was generated." +msgstr "एक नया सैंपल ब्लॉक उत्पन्न हुआ था।" + +#: js/widgets/sampler.js:378 +msgid "Upload sample" +msgstr "सैंपल अपलोड करें" + +#: js/widgets/sampler.js:399 +msgid "Warning: Your sample cannot be loaded because it is >1MB." +msgstr "" + +#: js/widgets/sampler.js:448 +msgid "Toggle Mic" +msgstr "" + +#: js/widgets/sampler.js:458 +msgid "Playback" +msgstr "" -#: js/LocalCard.js:55 -msgid "Duplicate project" -msgstr "परियोजना की प्रतिलिपि बनाएं" +#: js/widgets/sampler.js:979 +#.TRANS: The reference tone is a sound used for comparison. +msgid "reference tone" +msgstr "संदर्भ स्वर" -#: js/GlobalTag.js:28 +#: planet/js/GlobalTag.js:28 #.TRANS: On the Planet, we use labels to tag projects. msgid "All Projects" msgstr "सभी परियोजनाएं" -#: js/GlobalTag.js:30 -#: js/StringHelper.js:37 +#: planet/js/GlobalTag.js:30 +#: planet/js/StringHelper.js:37 #.TRANS: On the Planet, we use labels to tag projects. msgid "My Projects" msgstr "मेरी परियोजनाएं" -#: js/GlobalTag.js:32 +#: planet/js/GlobalTag.js:32 #.TRANS: On the Planet, we use labels to tag projects. msgid "Examples" msgstr "उदाहरण" -#: js/GlobalTag.js:34 +#: planet/js/GlobalTag.js:34 #.TRANS: On the Planet, we use labels to tag projects. msgid "Music" msgstr "संगीत" -#: js/GlobalTag.js:36 +#: planet/js/GlobalTag.js:36 #.TRANS: On the Planet, we use labels to tag projects. msgid "Art" msgstr "कला" -#: js/GlobalTag.js:38 +#: planet/js/GlobalTag.js:38 #.TRANS: On the Planet, we use labels to tag projects. msgid "Math" msgstr "गणित" -#: js/GlobalTag.js:40 +#: planet/js/GlobalTag.js:40 #.TRANS: On the Planet, we use labels to tag projects. msgid "Interactive" msgstr "इंटरएक्टिव" -#: js/GlobalTag.js:42 +#: planet/js/GlobalTag.js:42 #.TRANS: On the Planet, we use labels to tag projects. msgid "Design" msgstr "डिज़ाइन" -#: js/GlobalTag.js:44 +#: planet/js/GlobalTag.js:44 #.TRANS: On the Planet, we use labels to tag projects. msgid "Game" msgstr "खेल" -#: js/GlobalTag.js:46 +#: planet/js/GlobalTag.js:46 #.TRANS: On the Planet, we use labels to tag projects. msgid "Media" msgstr "मीडिया" -#: js/GlobalTag.js:48 +#: planet/js/GlobalTag.js:48 #.TRANS: On the Planet, we use labels to tag projects. msgid "Sensors" msgstr "सेंसर्स" -#: js/GlobalTag.js:52 +#: planet/js/GlobalTag.js:52 #.TRANS: On the Planet, we use labels to tag projects. msgid "Code Snippet" msgstr "कोड स्निपेट" -#: js/helper.js:149 -#: js/StringHelper.js:49 -msgid "Show more tags" -msgstr "और टैग दिखाएं" +#: planet/js/LocalCard.js:36 +msgid "View published project" +msgstr "प्रकाशित परियोजना देखें" -#: js/helper.js:150 -msgid "Show fewer tags" -msgstr "कम टैग दिखाएं" +#: planet/js/LocalCard.js:42 +msgid "Publish project" +msgstr "परियोजना प्रकाशित करें" + +#: planet/js/LocalCard.js:51 +msgid "Edit project" +msgstr "परियोजना संपादित करें" + +#: planet/js/LocalCard.js:52 +msgid "Delete project" +msgstr "परियोजना हटाएं" + +#: planet/js/LocalCard.js:53 +msgid "Download project" +msgstr "परियोजना डाउनलोड करें" + +#: planet/js/LocalCard.js:55 +msgid "Duplicate project" +msgstr "परियोजना की प्रतिलिपि बनाएं" + +#: planet/js/ProjectStorage.js:243 +msgid "anonymous" +msgstr "अनामक" + +#: planet/js/SaveInterface.js:34 +msgid "Open in Music Blocks" +msgstr "म्यूजिक ब्लॉक्स में खोलें" -#: js/ProjectViewer.js:30 +#: planet/js/SaveInterface.js:35 +msgid "Open in Turtle Blocks" +msgstr "" + +#: planet/js/GlobalCard.js:68 +msgid "Share" +msgstr "साझा करें" + +#: planet/js/GlobalCard.js:74 +msgid "Flags" +msgstr "फ़्लैग्स" + +#: planet/js/GlobalPlanet.js:35 +msgid "No results found." +msgstr "" + +#: planet/js/GlobalPlanet.js:51 +msgid "Remix of" +msgstr "" + +#: planet/js/GlobalPlanet.js:509 +msgid "Cannot connect to server" +msgstr "" + +#: planet/js/ProjectViewer.js:30 msgid "Error: Report could not be submitted. Try again later." msgstr "त्रुटि: रिपोर्ट सबमिट नहीं की जा सकी। बाद में पुन: प्रयास करें।" -#: js/ProjectViewer.js:31 +#: planet/js/ProjectViewer.js:31 msgid "Thank you for reporting this project. A moderator will review the project shortly, to verify violation of the Sugar Labs Code of Conduct." msgstr "इस परियोजना की रिपोर्ट करने के लिए धन्यवाद। एक मॉडरेटर जल्दी ही परियोजना की समीक्षा करेगा, ताकि यह सुगर लैब्स कोड ऑफ कंडक्ट का उल्लंघन सत्यापित किया जा सके।" -#: js/ProjectViewer.js:32 -#: js/StringHelper.js:62 -#: js/StringHelper.js:64 -#: js/StringHelper.js:68 +#: planet/js/ProjectViewer.js:32 +#: planet/js/StringHelper.js:62 +#: planet/js/StringHelper.js:64 +#: planet/js/StringHelper.js:68 msgid "Report Project" msgstr "परियोजना की रिपोर्ट करें" -#: js/ProjectViewer.js:33 -#: js/StringHelper.js:63 +#: planet/js/ProjectViewer.js:33 +#: planet/js/StringHelper.js:63 msgid "Project Reported" msgstr "परियोजना की रिपोर्ट की गई" -#: js/ProjectViewer.js:34 +#: planet/js/ProjectViewer.js:34 msgid "Report description required" msgstr "रिपोर्ट विवरण आवश्यक है" -#: js/ProjectViewer.js:35 +#: planet/js/ProjectViewer.js:35 msgid "Report description too long" msgstr "रिपोर्ट विवरण बहुत लंबा है" -#: js/StringHelper.js:30 +#: planet/js/Publisher.js:30 +msgid "Feature unavailable - cannot connect to server. Reload Music Blocks to try again." +msgstr "" + +#: planet/js/Publisher.js:220 +#: planet/js/Publisher.js:237 +msgid "This field is required" +msgstr "" + +#: planet/js/Publisher.js:227 +msgid "Title too long" +msgstr "" + +#: planet/js/Publisher.js:244 +msgid "Description too long" +msgstr "" + +#: planet/js/Publisher.js:341 +msgid "Server Error" +msgstr "" + +#: planet/js/Publisher.js:341 +msgid "Try Again" +msgstr "" + +#: planet/js/StringHelper.js:30 msgid "Planet" msgstr "ग्रह" -#: js/StringHelper.js:31 +#: planet/js/StringHelper.js:31 msgid "Close Planet" msgstr "प्लैनेट बंद करें" -#: js/StringHelper.js:32 +#: planet/js/StringHelper.js:32 msgid "Open project from file" msgstr "फ़ाइल से परियोजना खोलें" -#: js/StringHelper.js:34 +#: planet/js/StringHelper.js:34 msgid "Local" msgstr "स्थानीय" -#: js/StringHelper.js:35 +#: planet/js/StringHelper.js:35 msgid "Global" msgstr "वैश्विक" -#: js/StringHelper.js:36 +#: planet/js/StringHelper.js:36 msgid "Search for a project" msgstr "परियोजना के लिए खोजें" -#: js/StringHelper.js:38 +#: planet/js/StringHelper.js:38 msgid "Publish Project" msgstr "परियोजना प्रकाशित करें" -#: js/StringHelper.js:40 +#: planet/js/StringHelper.js:40 msgid "Tags (max 5)" msgstr "टैग (अधिकतम 5)" -#: js/StringHelper.js:41 -#: js/StringHelper.js:61 +#: planet/js/StringHelper.js:41 +#: planet/js/StringHelper.js:61 msgid "Description" msgstr "विवरण" -#: js/StringHelper.js:42 -#: js/StringHelper.js:67 +#: planet/js/StringHelper.js:42 +#: planet/js/StringHelper.js:67 msgid "Submit" msgstr "सबमिट" -#: js/StringHelper.js:43 -#: js/StringHelper.js:47 +#: planet/js/StringHelper.js:43 +#: planet/js/StringHelper.js:47 msgid "Cancel" msgstr "रद्द करें" -#: js/StringHelper.js:44 +#: planet/js/StringHelper.js:44 msgid "Delete \\"\\"?" msgstr "\\ को हटाएं?" -#: js/StringHelper.js:45 +#: planet/js/StringHelper.js:45 msgid "Permanently delete project \\"\\"?" msgstr "क्या आप \\ परियोजना को स्थायी रूप से हटाना चाहते हैं?" -#: js/StringHelper.js:48 +#: planet/js/StringHelper.js:48 msgid "Explore Projects" msgstr "परियोजनाएं अन्वेषण करें" -#: js/StringHelper.js:50 +#: planet/js/StringHelper.js:49 +#: planet/js/helper.js:149 +msgid "Show more tags" +msgstr "और टैग दिखाएं" + +#: planet/js/StringHelper.js:50 msgid "Most recent" msgstr "सबसे हाल का" -#: js/StringHelper.js:51 +#: planet/js/StringHelper.js:51 msgid "Most liked" msgstr "सबसे अधिक पसंद किया गया" -#: js/StringHelper.js:52 +#: planet/js/StringHelper.js:52 msgid "Most downloaded" msgstr "सबसे अधिक डाउनलोड किया गया" -#: js/StringHelper.js:53 +#: planet/js/StringHelper.js:53 msgid "A-Z" msgstr "A-Z" -#: js/StringHelper.js:54 +#: planet/js/StringHelper.js:54 msgid "Sort by" msgstr "क्रमबद्ध करें" -#: js/StringHelper.js:55 +#: planet/js/StringHelper.js:55 msgid "Load More Projects" msgstr "" -#: js/StringHelper.js:56 +#: planet/js/StringHelper.js:56 msgid "Last Updated" msgstr "" -#: js/StringHelper.js:57 +#: planet/js/StringHelper.js:57 msgid "Creation Date" msgstr "" -#: js/StringHelper.js:58 +#: planet/js/StringHelper.js:58 msgid "Number of Downloads:" msgstr "" -#: js/StringHelper.js:59 +#: planet/js/StringHelper.js:59 msgid "Number of Likes:" msgstr "" -#: js/StringHelper.js:60 +#: planet/js/StringHelper.js:60 msgid "Tags:" msgstr "" -#: js/StringHelper.js:65 +#: planet/js/StringHelper.js:65 msgid "Report projects which violate the Sugar Labs Code of Conduct." msgstr "" -#: js/StringHelper.js:66 +#: planet/js/StringHelper.js:66 msgid "Reason for reporting project" msgstr "" -#: js/StringHelper.js:70 +#: planet/js/StringHelper.js:70 msgid "Download as File" msgstr "" -#: js/GlobalPlanet.js:35 -msgid "No results found." -msgstr "" - -#: js/GlobalPlanet.js:51 -msgid "Remix of" -msgstr "" - -#: js/GlobalPlanet.js:509 -msgid "Cannot connect to server" -msgstr "" - -#: js/Publisher.js:30 -msgid "Feature unavailable - cannot connect to server. Reload Music Blocks to try again." -msgstr "" - -#: js/Publisher.js:218 -#: js/Publisher.js:235 -msgid "This field is required" -msgstr "" - -#: js/Publisher.js:225 -msgid "Title too long" -msgstr "" +#: planet/js/helper.js:150 +msgid "Show fewer tags" +msgstr "कम टैग दिखाएं" -#: js/Publisher.js:242 -msgid "Description too long" -msgstr "" +#: plugins/accelerometer.rtp:48 +msgid "motion x" +msgstr "'x'दिशा में गतिवान" -#: js/Publisher.js:339 -msgid "Server Error" -msgstr "" +#: plugins/accelerometer.rtp:56 +msgid "motion y" +msgstr "'y'दिशा में गतिवान" -#: js/Publisher.js:339 -msgid "Try Again" -msgstr "" +#: plugins/accelerometer.rtp:64 +msgid "motion z" +msgstr "'z'दिशा में गतिवान" -#: js/SaveInterface.js:34 -msgid "Open in Music Blocks" -msgstr "म्यूजिक ब्लॉक्स में खोलें" +#: plugins/facebook.rtp:27 +msgid "publish" +msgstr "प्रकाशित करें" -#: js/SaveInterface.js:35 -msgid "Open in Turtle Blocks" -msgstr "" +#: plugins/maths.rtp:62 +msgid "power" +msgstr "शक्ति" -#: plugins/weather.rtp:68 -#: plugins/weather.rtp:97 -msgid "Days ahead must be in the range of -1 to 5." -msgstr "" +#: plugins/maths.rtp:62 +msgid "base" +msgstr "आधार" -#: plugins/weather.rtp:122 -msgid "forecast" -msgstr "पूर्वानुमान" +#: plugins/maths.rtp:62 +msgid "exp" +msgstr "ऍक्स्प" -#: plugins/weather.rtp:123 -#: plugins/weather.rtp:137 -#: plugins/weather.rtp:150 -msgid "city" -msgstr "शहर" +#: plugins/maths.rtp:99 +msgid "floor" +msgstr "मंज़िल" -#: plugins/weather.rtp:124 -#: plugins/weather.rtp:138 -#: plugins/weather.rtp:151 -msgid "day" -msgstr "दिन" +#: plugins/maths.rtp:104 +msgid "ceiling" +msgstr "उच्चतम सीमा" -#: plugins/weather.rtp:136 -msgid "high" -msgstr "ऊंचा" +#: plugins/maths.rtp:109 +msgid "to degrees" +msgstr "डिग्री में" -#: plugins/weather.rtp:149 -msgid "low" -msgstr "नीचा" +#: plugins/maths.rtp:114 +msgid "to radians" +msgstr "रेडियंस में" #: plugins/nutrition.rtp:104 msgid "get calories" @@ -7503,45 +7753,6 @@ msgstr "कुकी" msgid "water" msgstr "जल" -#: plugins/maths.rtp:62 -#: plugins/examples.rtp:93 -msgid "power" -msgstr "शक्ति" - -#: plugins/maths.rtp:62 -#: plugins/examples.rtp:93 -msgid "base" -msgstr "आधार" - -#: plugins/maths.rtp:62 -#: plugins/examples.rtp:93 -msgid "exp" -msgstr "ऍक्स्प" - -#: plugins/maths.rtp:99 -#: plugins/examples.rtp:130 -msgid "floor" -msgstr "मंज़िल" - -#: plugins/maths.rtp:104 -#: plugins/examples.rtp:135 -msgid "ceiling" -msgstr "उच्चतम सीमा" - -#: plugins/maths.rtp:109 -#: plugins/examples.rtp:140 -msgid "to degrees" -msgstr "डिग्री में" - -#: plugins/maths.rtp:114 -#: plugins/examples.rtp:145 -msgid "to radians" -msgstr "रेडियंस में" - -#: plugins/facebook.rtp:27 -msgid "publish" -msgstr "प्रकाशित करें" - #: plugins/rodi.rtp:172 msgid "blink" msgstr "" @@ -7570,17 +7781,68 @@ msgstr "" msgid "move" msgstr "सरकाय" -#: plugins/accelerometer.rtp:48 -msgid "motion x" -msgstr "'x'दिशा में गतिवान" +#: plugins/weather.rtp:68 +#: plugins/weather.rtp:97 +msgid "Days ahead must be in the range of -1 to 5." +msgstr "" -#: plugins/accelerometer.rtp:56 -msgid "motion y" -msgstr "'y'दिशा में गतिवान" +#: plugins/weather.rtp:122 +msgid "forecast" +msgstr "पूर्वानुमान" -#: plugins/accelerometer.rtp:64 -msgid "motion z" -msgstr "'z'दिशा में गतिवान" +#: plugins/weather.rtp:123 +#: plugins/weather.rtp:137 +#: plugins/weather.rtp:150 +msgid "city" +msgstr "शहर" + +#: plugins/weather.rtp:124 +#: plugins/weather.rtp:138 +#: plugins/weather.rtp:151 +msgid "day" +msgstr "दिन" + +#: plugins/weather.rtp:136 +msgid "high" +msgstr "ऊंचा" + +#: plugins/weather.rtp:149 +msgid "low" +msgstr "नीचा" + +#~msgid ""Toggle Fullscreen" +#~msgstr ""पूर्ण स्क्रीन टॉगल करें" + +#: js/toolbar.js:70 + +#: js/toolbar.js:130 + +#: js/toolbar.js:194 + +#: js/toolbar.js:249 + +#~msgid "Toggle JavaScript Editor" +#~msgstr "जावास्क्रिप्ट संपादक को टॉगल करें" + +#: js/EnsembleBlocks.js:643 + +#~msgid "The Turrle pitch block returns the current pitch number being played by the specified turtle." +#~msgstr "" + +#: js/PitchActions.js:88 + +#~msgid "The Scalar Step Block must be used inside of a Note Block." +#~msgstr "स्केलर स्टेप ब्लॉक को एक नोट ब्लॉक के अंदर उपयोग करना चाहिए।" + +#: js/PitchActions.js:107 + +#~msgid "The Scalar Step Block must be preceded by a Pitch Block." +#~msgstr "स्केलर स्टेप ब्लॉक को पिच ब्लॉक से पहले आना चाहिए।" + +#: js/musickeyboard.js:2840 + +#~msgid "New action blocks generated!" +#~msgstr "" #: js/toolbar.js:110 @@ -7674,11 +7936,6 @@ msgstr "'z'दिशा में गतिवान" #~msgid "The Action block is used to group together blocks so that they can be used more than once." #~msgstr "एक्शन ब्लॉक ब्लॉक्स को समूह में जोड़ने के लिए किया जाता है ताकि उन्हें एक से अधिक बार उपयोग किया जा सके।" -#: js/EnsembleBlocks.js:643 - -#~msgid "The Turtle pitch block returns the current pitch number being played by the specified turtle." -#~msgstr "टर्टल पिच ब्लॉक विशिष्ट कछुआ द्वारा बजाए जा रहे वर्तमान पिच नंबर को वापस करता है।" - #: js/BooleanBlocks.js:188 #~msgid "The Greater-than block returns True if the top number is greater than the bottom number." @@ -7967,11 +8224,6 @@ msgstr "'z'दिशा में गतिवान" #~msgid "in"" #~msgstr """ -#: js/help.js:95 - -#~msgid "Take a tour" -#~msgstr "एक यात्रा करें" - #: js/GlobalCard.js:48 #~msgid "More Details" @@ -10860,11 +11112,6 @@ msgstr "'z'दिशा में गतिवान" #~msgid "The save-stack button saves a stack onto a custom palette. It appears after a \"long press\" on a stack." #~msgstr "" -#: js/musicutils.js:254 - -#~msgid "Custom" -#~msgstr "" - #: js/basicblocks.js:4785 #~msgid "Rhythm" diff --git a/po/ht.po b/po/ht.po index 38811cbff2..a2dd5e7f20 100644 --- a/po/ht.po +++ b/po/ht.po @@ -2128,276 +2128,131 @@ #: js/planetInterface.js:104 #: js/planetInterface.js:104 #: js/planetInterface.js:104 -msgid "project undefined" -msgstr "" - -#: js/logo.js:61 -msgid "Not a valid pitch name" -msgstr "" - -#: js/logo.js:507 -#: js/ProgramBlocks.js:258 -#: js/ProgramBlocks.js:427 -msgid "You must select a file." -msgstr "" - -#: js/logo.js:1184 -#: js/turtles.js:118 -#: js/turtle-painter.js:1192 -#: js/turtle-painter.js:1193 -#: js/block.js:1463 -#: js/lilypond.js:757 -#: js/lilypond.js:921 -#: js/lilypond.js:959 -#: js/ActionBlocks.js:1223 -#: js/ProgramBlocks.js:1267 -msgid "start" -msgstr "" - -#: js/logo.js:1696 -msgid "Playback is ready." -msgstr "" - -#: js/blocks.js:1011 -#: js/blocks.js:3427 -#: js/blocks.js:3428 -#: js/blocks.js:3653 -#: js/blocks.js:4012 -#: js/blocks.js:4205 -#: js/blocks.js:5343 -#: js/blocks.js:6474 -#: js/palette.js:527 -#: js/palette.js:536 -#: js/palette.js:545 -#: js/palette.js:554 -#: js/palette.js:1131 -#: js/palette.js:1142 -#: js/palette.js:1153 -#: js/palette.js:1164 -#: js/palette.js:1183 -#: js/rubrics.js:529 -#: js/macros.js:170 -#: js/macros.js:266 -#: js/macros.js:267 -#: js/macros.js:276 -#: js/macros.js:828 -#: js/block.js:1449 -#: js/block.js:4164 -#: js/block.js:4182 -#: js/block.js:4193 -#: js/turtledefs.js:128 -#: js/turtledefs.js:230 -#: js/ActionBlocks.js:254 -#: js/ActionBlocks.js:307 -#: js/ActionBlocks.js:617 -#: js/ActionBlocks.js:716 -#: js/ActionBlocks.js:961 -#: js/ActionBlocks.js:1049 -#: js/ActionBlocks.js:1322 -#: js/ActionBlocks.js:1325 -#: js/ActionBlocks.js:1337 -#: js/ActionBlocks.js:1404 -#: js/MeterBlocks.js:715 -#: js/MeterBlocks.js:768 -#: js/MeterBlocks.js:831 -#: js/MeterBlocks.js:892 -#: js/phrasemaker.js:4412 -#: js/musickeyboard.js:2647 -#: js/rhythmruler.js:1928 -#: js/rhythmruler.js:1935 -#: js/rhythmruler.js:2119 -#: js/rhythmruler.js:2126 -msgid "action" -msgstr "" - -#: js/blocks.js:1205 -#: js/blocks.js:3380 -#: js/blocks.js:3770 -#: js/blocks.js:3801 -#: js/blocks.js:3850 -#: js/blocks.js:3885 -#: js/blocks.js:6497 -#: js/palette.js:509 -#: js/palette.js:638 -#: js/palette.js:1107 -#: js/BoxesBlocks.js:282 -#: js/BoxesBlocks.js:285 -#: js/BoxesBlocks.js:405 -#: js/BoxesBlocks.js:594 -msgid "box" -msgstr "" - -#: js/blocks.js:1680 -msgid "Consider breaking this stack into parts." +#: js/SaveInterface.js:59 +#: js/SaveInterface.js:61 +#: js/SaveInterface.js:93 +msgid "Music Blocks Project" msgstr "" -#: js/blocks.js:2408 -#: js/palette.js:653 -#: js/MediaBlocks.js:602 -msgid "open file" +#: js/SaveInterface.js:63 +msgid "This project was created in Music Blocks" msgstr "" -#: js/blocks.js:2415 -#: js/blocks.js:2423 -#: js/activity.js:1875 -msgid "audio file" +#: js/SaveInterface.js:67 +msgid "Music Blocks is a Free/Libre Software application." msgstr "" -#: js/blocks.js:2536 -#: js/blocks.js:3147 -#: js/block.js:3543 -msgid "on2" +#: js/SaveInterface.js:69 +msgid "The source code can be accessed at" msgstr "" -#: js/blocks.js:2538 -#: js/blocks.js:3149 -#: js/block.js:3545 -msgid "off" +#: js/SaveInterface.js:72 +msgid "For more information, please consult the" msgstr "" -#: js/blocks.js:2543 -#: js/blocks.js:3154 -#: js/palette.js:618 -#: js/block.js:3466 -#: js/BooleanBlocks.js:77 -#: js/BooleanBlocks.js:167 -#: js/BooleanBlocks.js:251 -#: js/BooleanBlocks.js:335 -#: js/BooleanBlocks.js:433 -#: js/BooleanBlocks.js:539 -#: js/BooleanBlocks.js:640 -#: js/BooleanBlocks.js:741 -#: js/BooleanBlocks.js:847 -#: js/BooleanBlocks.js:948 -#: js/BooleanBlocks.js:1033 -#: js/SensorsBlocks.js:910 -msgid "true" +#: js/SaveInterface.js:76 +#: js/turtledefs.js:795 +msgid "Music Blocks Guide" msgstr "" -#: js/blocks.js:2545 -#: js/blocks.js:3156 -#: js/block.js:3466 -#: js/BooleanBlocks.js:79 -#: js/BooleanBlocks.js:169 -#: js/BooleanBlocks.js:253 -#: js/BooleanBlocks.js:337 -#: js/BooleanBlocks.js:435 -#: js/BooleanBlocks.js:541 -#: js/BooleanBlocks.js:642 -#: js/BooleanBlocks.js:743 -#: js/BooleanBlocks.js:849 -#: js/BooleanBlocks.js:950 -#: js/SensorsBlocks.js:912 -msgid "false" +#: js/SaveInterface.js:83 +msgid "Alternatively, open the file in Music Blocks using the Load project button." msgstr "" -#: js/blocks.js:3183 -#: js/palette.js:574 -#: js/MediaBlocks.js:892 -#: js/MediaBlocks.js:963 -msgid "text" +#: js/SaveInterface.js:85 +msgid "Project Code" msgstr "" -#: js/blocks.js:3379 -#: js/palette.js:641 -#: js/palette.js:642 -#: js/BoxesBlocks.js:514 -msgid "store in box" +#: js/SaveInterface.js:87 +msgid "This code stores data about the blocks in a project." msgstr "" -#: js/blocks.js:3384 -#: js/blocks.js:3824 -#: js/blocks.js:3859 -#: js/blocks.js:3894 -#: js/blocks.js:5773 -#: js/blocks.js:5794 -#: js/BoxesBlocks.js:772 -msgid "box1" +#: js/SaveInterface.js:89 +msgid "Show" msgstr "" -#: js/blocks.js:3386 -#: js/blocks.js:3826 -#: js/blocks.js:3861 -#: js/blocks.js:3896 -#: js/blocks.js:5775 -#: js/blocks.js:5796 -#: js/BoxesBlocks.js:663 -msgid "box2" +#: js/SaveInterface.js:91 +msgid "Hide" msgstr "" -#: js/blocks.js:4058 -#: js/palette.js:639 -#: js/palette.js:644 -#: js/palette.js:1043 -#: js/BoxesBlocks.js:591 -msgid "store in" +#: js/SaveInterface.js:131 +#: js/SaveInterface.js:204 +#: js/SaveInterface.js:262 +#: js/SaveInterface.js:389 +#: js/SaveInterface.js:417 +#: js/activity.js:4884 +#: planet/js/ProjectStorage.js:27 +#: planet/js/GlobalPlanet.js:467 +#: planet/js/GlobalPlanet.js:469 +#: planet/js/GlobalPlanet.js:495 +#.TRANS: default project title when saving as Lilypond +msgid "My Project" msgstr "" -#: js/blocks.js:4058 -#: js/EnsembleBlocks.js:391 -#: js/EnsembleBlocks.js:402 -#: js/MediaBlocks.js:746 -#: js/ProgramBlocks.js:390 -#: js/ProgramBlocks.js:495 -#: js/ProgramBlocks.js:658 -#: js/BoxesBlocks.js:595 -#: js/PitchBlocks.js:656 -#: js/PitchBlocks.js:932 -#: js/PitchBlocks.js:1827 -#: js/ToneBlocks.js:1025 -#: js/DictBlocks.js:215 -#: js/DictBlocks.js:289 -msgid "name" +#: js/SaveInterface.js:197 +#: planet/js/SaveInterface.js:58 +msgid "No description provided" msgstr "" -#: js/blocks.js:4058 -#: js/RhythmBlocks.js:1130 -#: js/BoxesBlocks.js:75 -#: js/BoxesBlocks.js:595 -#: js/HeapBlocks.js:544 -#: js/DictBlocks.js:289 -#: js/DictBlocks.js:430 -msgid "value" +#: js/SaveInterface.js:332 +msgid "Your recording is in progress." msgstr "" -#: js/blocks.js:4907 -msgid "There is no block selected." +#: js/SaveInterface.js:401 +#.TRANS: File name prompt for save as Lilypond +msgid "File name" msgstr "" -#: js/blocks.js:5002 -#: js/MediaBlocks.js:888 -msgid "show" +#: js/SaveInterface.js:403 +#: planet/js/StringHelper.js:39 +#.TRANS: Project title prompt for save as Lilypond +msgid "Project title" msgstr "" -#: js/blocks.js:5005 -#: js/MediaBlocks.js:803 -#.TRANS: Avatar is the image used to determine the appearance of the mouse. -msgid "avatar" +#: js/SaveInterface.js:405 +#.TRANS: Project title prompt for save as Lilypond +msgid "Project author" msgstr "" -#: js/blocks.js:5008 -#: js/ToneBlocks.js:1010 -#: js/sampler.js:693 -#.TRANS: The sound sample that the user uploads. -msgid "sample" +#: js/SaveInterface.js:407 +#.TRANS: MIDI prompt for save as Lilypond +msgid "Include MIDI output?" msgstr "" -#: js/turtles.js:874 -msgid "Grid" +#: js/SaveInterface.js:409 +#.TRANS: Guitar prompt for save as Lilypond +msgid "Include guitar tablature output?" msgstr "" -#: js/turtles.js:891 -#: js/turtledefs.js:626 -msgid "Clean" +#: js/SaveInterface.js:411 +#.TRANS: Lilypond is a scripting language for generating sheet music +msgid "Save as Lilypond" msgstr "" -#: js/turtles.js:912 -#: js/turtledefs.js:632 -msgid "Collapse" +#: js/SaveInterface.js:426 +#: js/blocks/EnsembleBlocks.js:75 +#: js/blocks/EnsembleBlocks.js:154 +#: js/blocks/EnsembleBlocks.js:216 +#: js/blocks/EnsembleBlocks.js:302 +#: js/blocks/EnsembleBlocks.js:348 +#: js/blocks/EnsembleBlocks.js:389 +#: js/blocks/EnsembleBlocks.js:441 +#: js/blocks/EnsembleBlocks.js:490 +#: js/blocks/EnsembleBlocks.js:536 +#: js/blocks/EnsembleBlocks.js:583 +#: js/blocks/EnsembleBlocks.js:637 +#: js/blocks/EnsembleBlocks.js:753 +#: js/blocks/EnsembleBlocks.js:840 +#: js/blocks/EnsembleBlocks.js:899 +#: js/blocks/EnsembleBlocks.js:942 +#: js/blocks/EnsembleBlocks.js:1212 +#: js/blocks/EnsembleBlocks.js:1280 +#.TRANS: default project author when saving as Lilypond +msgid "Mr. Mouse" msgstr "" -#: js/turtles.js:940 -msgid "Expand" +#: js/SaveInterface.js:573 +msgid "The Lilypond code is copied to clipboard. You can paste it here: " msgstr "" #: js/languagebox.js:198 @@ -2408,6933 +2263,7487 @@ msgstr "" msgid "Music Blocks is already set to this language." msgstr "" -#: js/piemenus.js:200 -#: js/musicutils.js:808 -#: js/musicutils.js:824 -#: js/phrasemaker.js:1672 -#: js/musickeyboard.js:2041 -#: js/sampler.js:544 -#.TRANS: double sharp is a music term related to pitch -msgid "double sharp" +#: js/planetInterface.js:131 +msgid "project undefined" msgstr "" -#: js/piemenus.js:201 -#: js/PitchBlocks.js:1510 -#: js/PitchActions.js:580 -#: js/musicutils.js:806 -#: js/musicutils.js:825 -#: js/phrasemaker.js:1673 -#: js/musickeyboard.js:2042 -#: js/sampler.js:545 -#.TRANS: sharp is a half-step up in pitch -#.TRANS: sharp is a music term related to pitch -msgid "sharp" +#: js/rubrics.js:523 +#: js/turtledefs.js:119 +#: js/turtledefs.js:221 +#: js/blocks/RhythmBlockPaletteBlocks.js:52 +#: js/blocks/RhythmBlockPaletteBlocks.js:234 +#: js/blocks/ProgramBlocks.js:745 +#: js/widgets/rhythmruler.js:2057 +#: js/widgets/rhythmruler.js:2064 +#: js/widgets/rhythmruler.js:2133 +#: js/widgets/rhythmruler.js:2140 +#: js/widgets/rhythmruler.js:2219 +#.TRANS: an arrangement of notes based on duration +msgid "rhythm" msgstr "" -#: js/piemenus.js:202 -#: js/musicutils.js:804 -#: js/musicutils.js:826 -#: js/phrasemaker.js:1674 -#: js/musickeyboard.js:2043 -#: js/sampler.js:546 -#.TRANS: natural is a music term related to pitch -msgid "natural" +#: js/rubrics.js:524 +#: js/turtledefs.js:121 +#: js/turtledefs.js:223 +#: js/block-verbose.js:2622 +#: js/block.js:2550 +#: js/blocks/IntervalsBlocks.js:63 +#: js/blocks/SensorsBlocks.js:178 +#: js/blocks/PitchBlocks.js:1839 +#: js/blocks/PitchBlocks.js:1853 +#: js/widgets/musickeyboard.js:1935 +#: js/widgets/phrasemaker.js:1036 +#.TRANS: pitch number +#.TRANS: pitch number +#.TRANS: we specify pitch in terms of a name and an octave. The name can be CDEFGAB or Do Re Mi Fa Sol La Ti. Octave is a number between 1 and 8. +msgid "pitch" msgstr "" -#: js/piemenus.js:203 -#: js/PitchBlocks.js:1469 -#: js/PitchActions.js:583 -#: js/musicutils.js:802 -#: js/musicutils.js:827 -#: js/phrasemaker.js:1675 -#: js/musickeyboard.js:2044 -#: js/sampler.js:547 -#.TRANS: flat is a half-step down in pitch -#.TRANS: flat is a music term related to pitch -msgid "flat" +#: js/rubrics.js:525 +#: js/turtledefs.js:123 +#: js/turtledefs.js:225 +msgid "tone" msgstr "" -#: js/piemenus.js:204 -#: js/musicutils.js:800 -#: js/musicutils.js:828 -#: js/phrasemaker.js:1676 -#: js/musickeyboard.js:2045 -#: js/sampler.js:548 -#.TRANS: double flat is a music term related to pitch -msgid "double flat" +#: js/rubrics.js:526 +#: js/lilypond.js:605 +#: js/lilypond.js:904 +#: js/lilypond.js:910 +#: js/lilypond.js:948 +msgid "mouse" msgstr "" -#: js/piemenus.js:2861 -#: js/PitchBlocks.js:1357 -#: js/musicutils.js:627 -#.TRANS: unison means the note is the same as the current note -#.TRANS: unison is a music term related to intervals -msgid "unison" +#: js/rubrics.js:527 +#: js/turtledefs.js:132 +#: js/turtledefs.js:234 +#: js/widgets/phrasemaker.js:1040 +msgid "pen" msgstr "" -#: js/piemenus.js:3015 -#: js/piemenus.js:3088 -#: js/musicutils.js:635 -#: js/musicutils.js:810 -#: js/musicutils.js:912 -#.TRANS: major is a music term related to intervals and mode -msgid "major" +#: js/rubrics.js:528 +#: js/turtledefs.js:133 +#: js/turtledefs.js:235 +#: js/blocks/NumberBlocks.js:981 +#: js/blocks/PitchBlocks.js:1717 +#: js/blocks/PitchBlocks.js:1758 +msgid "number" msgstr "" -#: js/piemenus.js:3015 -#: js/piemenus.js:3088 -#: js/musicutils.js:653 -#.TRANS: modal scale for music -msgid "ionian" +#: js/rubrics.js:529 +#: js/turtledefs.js:127 +#: js/turtledefs.js:229 +msgid "flow" msgstr "" -#: js/piemenus.js:3017 -#: js/piemenus.js:3092 -#: js/musicutils.js:633 -#: js/musicutils.js:811 -#: js/musicutils.js:909 -#.TRANS: minor is a music term related to intervals and mode -msgid "minor" +#: js/rubrics.js:530 +#: js/turtledefs.js:128 +#: js/turtledefs.js:230 +#: js/block-verbose.js:1609 +#: js/block-verbose.js:4559 +#: js/block-verbose.js:4577 +#: js/block-verbose.js:4588 +#: js/block.js:1573 +#: js/block.js:4483 +#: js/block.js:4501 +#: js/block.js:4512 +#: js/blocks.js:1018 +#: js/blocks.js:3491 +#: js/blocks.js:3492 +#: js/blocks.js:3717 +#: js/blocks.js:4076 +#: js/blocks.js:4269 +#: js/blocks.js:5432 +#: js/blocks.js:6563 +#: js/macros.js:170 +#: js/macros.js:266 +#: js/macros.js:267 +#: js/macros.js:276 +#: js/macros.js:828 +#: js/palette.js:527 +#: js/palette.js:536 +#: js/palette.js:545 +#: js/palette.js:554 +#: js/palette.js:1129 +#: js/palette.js:1140 +#: js/palette.js:1151 +#: js/palette.js:1162 +#: js/palette.js:1181 +#: js/blocks/ActionBlocks.js:254 +#: js/blocks/ActionBlocks.js:307 +#: js/blocks/ActionBlocks.js:617 +#: js/blocks/ActionBlocks.js:716 +#: js/blocks/ActionBlocks.js:961 +#: js/blocks/ActionBlocks.js:1049 +#: js/blocks/ActionBlocks.js:1322 +#: js/blocks/ActionBlocks.js:1325 +#: js/blocks/ActionBlocks.js:1337 +#: js/blocks/ActionBlocks.js:1404 +#: js/blocks/MeterBlocks.js:715 +#: js/blocks/MeterBlocks.js:768 +#: js/blocks/MeterBlocks.js:831 +#: js/blocks/MeterBlocks.js:892 +#: js/widgets/musickeyboard.js:2986 +#: js/widgets/phrasemaker.js:4913 +#: js/widgets/rhythmruler.js:2319 +#: js/widgets/rhythmruler.js:2326 +#: js/widgets/rhythmruler.js:2511 +#: js/widgets/rhythmruler.js:2518 +msgid "action" msgstr "" -#: js/piemenus.js:3017 -#: js/piemenus.js:3092 -#: js/musicutils.js:663 -#.TRANS: modal scale for music -msgid "aeolian" +#: js/rubrics.js:531 +#: js/turtledefs.js:136 +#: js/turtledefs.js:238 +msgid "sensors" msgstr "" -#: js/piemenus.js:3407 -msgid "Duplicate" +#: js/rubrics.js:532 +#: js/turtledefs.js:135 +#: js/turtledefs.js:237 +#: js/blocks/MediaBlocks.js:930 +msgid "media" msgstr "" -#: js/piemenus.js:3408 -#: js/turtledefs.js:534 -msgid "Extract" +#: js/rubrics.js:533 +msgid "mice" msgstr "" -#: js/piemenus.js:3409 -msgid "Move to trash" +#: js/toolbar.js:48 +#: js/toolbar.js:109 +msgid "About Music Blocks" msgstr "" -#: js/piemenus.js:3410 -#: js/timbre.js:968 -#: js/StringHelper.js:69 -msgid "Close" +#: js/toolbar.js:49 +#: js/toolbar.js:110 +#: js/toolbar.js:175 +#: js/toolbar.js:231 +#: js/turtledefs.js:445 +#: js/turtledefs.js:482 +#: js/activity.js:2660 +#: js/activity.js:2671 +#: js/activity.js:2902 +#: js/widgets/modewidget.js:77 +#: js/widgets/meterwidget.js:185 +#: js/widgets/pitchdrummatrix.js:147 +#: js/widgets/pitchdrummatrix.js:687 +#: js/widgets/pitchdrummatrix.js:689 +#: js/widgets/pitchdrummatrix.js:741 +#: js/widgets/pitchdrummatrix.js:743 +#: js/widgets/pitchdrummatrix.js:758 +#: js/widgets/pitchdrummatrix.js:760 +#: js/widgets/pitchdrummatrix.js:789 +#: js/widgets/pitchdrummatrix.js:791 +#: js/widgets/pitchstaircase.js:121 +#: js/widgets/temperament.js:610 +#: js/widgets/temperament.js:613 +#: js/widgets/temperament.js:673 +#: js/widgets/temperament.js:675 +#: js/widgets/temperament.js:2017 +#: js/widgets/temperament.js:2019 +#: js/widgets/tempo.js:84 +#: js/widgets/tempo.js:86 +#: js/widgets/timbre.js:432 +#: js/widgets/timbre.js:434 +#: js/widgets/timbre.js:465 +#: js/widgets/timbre.js:467 +#: js/widgets/timbre.js:746 +#: js/widgets/aiwidget.js:647 +#: js/widgets/aiwidget.js:654 +#: js/widgets/aiwidget.js:656 +#: js/widgets/arpeggio.js:90 +#: js/widgets/arpeggio.js:547 +#: js/widgets/arpeggio.js:549 +#: js/widgets/arpeggio.js:644 +#: js/widgets/arpeggio.js:646 +#: js/widgets/musickeyboard.js:676 +#: js/widgets/musickeyboard.js:872 +#: js/widgets/musickeyboard.js:874 +#: js/widgets/musickeyboard.js:953 +#: js/widgets/musickeyboard.js:955 +#: js/widgets/phrasemaker.js:513 +#: js/widgets/phrasemaker.js:523 +#: js/widgets/phrasemaker.js:525 +#: js/widgets/phrasemaker.js:4304 +#: js/widgets/phrasemaker.js:4528 +#: js/widgets/phrasemaker.js:4533 +#: js/widgets/phrasemaker.js:4535 +#: js/widgets/phrasemaker.js:4650 +#: js/widgets/rhythmruler.js:637 +#: js/widgets/rhythmruler.js:639 +#: js/widgets/rhythmruler.js:653 +#: js/widgets/rhythmruler.js:655 +#: js/widgets/sampler.js:162 +#: js/widgets/sampler.js:164 +#: js/widgets/sampler.js:363 +msgid "Play" msgstr "" -#: js/piemenus.js:3416 -msgid "Save stack" +#: js/toolbar.js:50 +#: js/toolbar.js:111 +#: js/toolbar.js:176 +#: js/toolbar.js:232 +#: js/turtledefs.js:451 +#: js/turtledefs.js:488 +#: js/activity.js:2679 +#: js/widgets/modewidget.js:99 +#: js/widgets/modewidget.js:101 +#: js/widgets/meterwidget.js:206 +#: js/widgets/meterwidget.js:208 +#: js/widgets/pitchdrummatrix.js:674 +#: js/widgets/pitchdrummatrix.js:676 +#: js/widgets/temperament.js:2002 +#: js/widgets/temperament.js:2004 +#: js/widgets/arpeggio.js:534 +#: js/widgets/arpeggio.js:536 +#: js/widgets/phrasemaker.js:534 +#: js/widgets/phrasemaker.js:536 +msgid "Stop" msgstr "" -#: js/piemenus.js:3420 -#: js/toolbar.js:60 -#: js/toolbar.js:120 -#: js/toolbar.js:185 -#: js/toolbar.js:240 -#: js/turtledefs.js:752 -msgid "Help" +#: js/toolbar.js:51 +#: js/toolbar.js:112 +#: js/toolbar.js:177 +#: js/toolbar.js:233 +#: js/turtledefs.js:498 +msgid "Record" msgstr "" -#: js/piemenus.js:3762 -msgid "You have chosen key " +#: js/toolbar.js:52 +#: js/toolbar.js:53 +msgid "Full screen" msgstr "" -#: js/piemenus.js:3766 -msgid " for your pitch preview." +#: js/toolbar.js:54 +#: js/toolbar.js:115 +#: js/toolbar.js:180 +#: js/toolbar.js:236 +#: js/turtledefs.js:504 +msgid "Toggle Fullscreen" +msgstr "" + +#: js/toolbar.js:55 +#: js/toolbar.js:116 +#: js/toolbar.js:181 +#: js/toolbar.js:237 +#: js/turtledefs.js:510 +#: planet/js/StringHelper.js:33 +msgid "New project" +msgstr "" + +#: js/toolbar.js:56 +#: js/toolbar.js:117 +#: js/toolbar.js:182 +#: js/toolbar.js:238 +#: js/turtledefs.js:516 +msgid "Load project from file" +msgstr "" + +#: js/toolbar.js:57 +#: js/toolbar.js:118 +#: js/toolbar.js:119 +#: js/toolbar.js:183 +#: js/toolbar.js:239 +#: js/turtledefs.js:541 +#: js/turtledefs.js:550 +#: js/turtledefs.js:571 +msgid "Save project" +msgstr "" + +#: js/toolbar.js:58 +#: js/toolbar.js:77 +#: js/toolbar.js:79 +#: js/toolbar.js:138 +#: js/toolbar.js:147 +#: js/toolbar.js:149 +#: js/toolbar.js:184 +#: js/toolbar.js:202 +#: js/toolbar.js:204 +#: js/toolbar.js:240 +#: js/toolbar.js:258 +#: js/toolbar.js:260 +msgid "Save project as HTML" +msgstr "" + +#: js/toolbar.js:59 +#: js/toolbar.js:120 +#: js/toolbar.js:185 +#: js/toolbar.js:241 +msgid "Find and share projects" +msgstr "" + +#: js/toolbar.js:60 +#: js/toolbar.js:121 +#: js/toolbar.js:186 +#: js/toolbar.js:242 +msgid "Offline. Sharing is unavailable" +msgstr "" + +#: js/toolbar.js:61 +#: js/toolbar.js:122 +#: js/toolbar.js:187 +#: js/toolbar.js:243 +msgid "Auxiliary menu" +msgstr "" + +#: js/toolbar.js:62 +#: js/toolbar.js:123 +#: js/toolbar.js:188 +#: js/toolbar.js:244 +#: js/turtledefs.js:752 +#: js/piemenus.js:3423 +msgid "Help" +msgstr "" + +#: js/toolbar.js:63 +#: js/toolbar.js:124 +#: js/toolbar.js:189 +#: js/toolbar.js:245 +msgid "Run slowly" +msgstr "" + +#: js/toolbar.js:64 +#: js/toolbar.js:125 +#: js/toolbar.js:190 +#: js/toolbar.js:246 +#: js/turtledefs.js:682 +msgid "Run step by step" +msgstr "" + +#: js/toolbar.js:65 +#: js/toolbar.js:126 +#: js/toolbar.js:191 +#: js/toolbar.js:247 +#: js/turtledefs.js:689 +msgid "Display statistics" +msgstr "" + +#: js/toolbar.js:66 +#: js/toolbar.js:127 +#: js/toolbar.js:192 +#: js/toolbar.js:248 +msgid "Load plugin" +msgstr "" + +#: js/toolbar.js:67 +#: js/toolbar.js:128 +#: js/toolbar.js:193 +#: js/toolbar.js:249 +#: js/turtledefs.js:696 +msgid "Delete plugin" +msgstr "" + +#: js/toolbar.js:68 +#: js/toolbar.js:129 +#: js/toolbar.js:194 +#: js/toolbar.js:250 +msgid "Enable horizontal scrolling" +msgstr "" + +#: js/toolbar.js:69 +#: js/toolbar.js:130 +#: js/toolbar.js:195 +#: js/toolbar.js:251 +msgid "Disable horizontal scrolling" +msgstr "" + +#: js/toolbar.js:70 +#: js/toolbar.js:131 +#: js/toolbar.js:196 +#: js/toolbar.js:252 +#: planet/js/LocalCard.js:54 +#: planet/js/StringHelper.js:71 +msgid "Merge with current project" +msgstr "" + +#: js/toolbar.js:71 +#: js/toolbar.js:132 +msgid "Set Pitch Preview" +msgstr "" + +#: js/toolbar.js:72 +#: js/toolbar.js:133 +#: js/toolbar.js:197 +#: js/toolbar.js:253 +msgid "JavaScript Editor" +msgstr "" + +#: js/toolbar.js:73 +#: js/toolbar.js:134 +#: js/toolbar.js:198 +#: js/toolbar.js:254 +#: js/turtledefs.js:724 +msgid "Restore" +msgstr "" + +#: js/toolbar.js:74 +#: js/toolbar.js:135 +#: js/toolbar.js:199 +#: js/toolbar.js:255 +msgid "Switch to beginner mode" +msgstr "" + +#: js/toolbar.js:75 +#: js/toolbar.js:136 +#: js/toolbar.js:200 +#: js/toolbar.js:256 +msgid "Switch to advanced mode" +msgstr "" + +#: js/toolbar.js:76 +#: js/toolbar.js:137 +#: js/toolbar.js:146 +#: js/toolbar.js:201 +#: js/toolbar.js:257 +#: js/turtledefs.js:738 +msgid "Select language" +msgstr "" + +#: js/toolbar.js:78 +#: js/toolbar.js:81 +#: js/toolbar.js:140 +#: js/turtledefs.js:579 +msgid "Save mouse artwork as PNG" +msgstr "" + +#: js/toolbar.js:80 +#: js/toolbar.js:139 +#: js/turtledefs.js:575 +msgid "Save mouse artwork as SVG" +msgstr "" + +#: js/toolbar.js:82 +#: js/toolbar.js:141 +#: js/turtledefs.js:583 +msgid "Save music as WAV" +msgstr "" + +#: js/toolbar.js:83 +#: js/toolbar.js:142 +#: js/turtledefs.js:587 +msgid "Save sheet music as ABC" +msgstr "" + +#: js/toolbar.js:84 +#: js/toolbar.js:143 +#: js/turtledefs.js:591 +msgid "Save sheet music as Lilypond" +msgstr "" + +#: js/toolbar.js:85 +msgid "Save sheet music as MusicXML" +msgstr "" + +#: js/toolbar.js:86 +#: js/toolbar.js:144 +#: js/toolbar.js:152 +#: js/toolbar.js:207 +#: js/toolbar.js:263 +#: js/turtledefs.js:562 +#: js/turtledefs.js:595 +msgid "Save block artwork as SVG" +msgstr "" + +#: js/toolbar.js:87 +#: js/toolbar.js:145 +#: js/toolbar.js:153 +#: js/toolbar.js:208 +#: js/toolbar.js:264 +#: js/turtles.js:911 +msgid "Confirm" +msgstr "" + +#: js/toolbar.js:88 +#: js/toolbar.js:154 +#: js/toolbar.js:209 +#: js/toolbar.js:265 +msgid "English (United States)" +msgstr "" + +#: js/toolbar.js:89 +#: js/toolbar.js:155 +#: js/toolbar.js:210 +#: js/toolbar.js:266 +msgid "English (United Kingdom)" +msgstr "" + +#: js/toolbar.js:90 +#: js/toolbar.js:156 +#: js/toolbar.js:211 +#: js/toolbar.js:267 +msgid "日本語" +msgstr "" + +#: js/toolbar.js:91 +msgid "한국어" +msgstr "" + +#: js/toolbar.js:92 +#: js/toolbar.js:158 +#: js/toolbar.js:213 +#: js/toolbar.js:269 +msgid "español" +msgstr "" + +#: js/toolbar.js:93 +#: js/toolbar.js:159 +#: js/toolbar.js:214 +#: js/toolbar.js:270 +msgid "português" +msgstr "" + +#: js/toolbar.js:94 +#: js/toolbar.js:160 +#: js/toolbar.js:215 +#: js/toolbar.js:271 +msgid "にほんご" +msgstr "" + +#: js/toolbar.js:95 +#: js/toolbar.js:161 +#: js/toolbar.js:216 +#: js/toolbar.js:272 +msgid "中文" +msgstr "" + +#: js/toolbar.js:96 +#: js/toolbar.js:162 +#: js/toolbar.js:217 +#: js/toolbar.js:273 +msgid "ภาษาไทย" +msgstr "" + +#: js/toolbar.js:97 +#: js/toolbar.js:163 +#: js/toolbar.js:218 +#: js/toolbar.js:274 +msgid "aymara" +msgstr "" + +#: js/toolbar.js:98 +#: js/toolbar.js:164 +#: js/toolbar.js:219 +#: js/toolbar.js:275 +msgid "quechua" +msgstr "" + +#: js/toolbar.js:99 +#: js/toolbar.js:165 +#: js/toolbar.js:220 +#: js/toolbar.js:276 +msgid "guarani" +msgstr "" + +#: js/toolbar.js:100 +#: js/toolbar.js:166 +#: js/toolbar.js:221 +#: js/toolbar.js:277 +msgid "हिंदी" +msgstr "" + +#: js/toolbar.js:101 +#: js/toolbar.js:168 +#: js/toolbar.js:222 +#: js/toolbar.js:279 +msgid "igbo" +msgstr "" + +#: js/toolbar.js:102 +#: js/toolbar.js:169 +#: js/toolbar.js:223 +#: js/toolbar.js:280 +msgid "عربى" +msgstr "" + +#: js/toolbar.js:103 +#: js/toolbar.js:167 +#: js/toolbar.js:224 +#: js/toolbar.js:278 +msgid "తెలుగు" +msgstr "" + +#: js/toolbar.js:104 +#: js/toolbar.js:170 +#: js/toolbar.js:225 +#: js/toolbar.js:281 +msgid "עִברִית" +msgstr "" + +#: js/toolbar.js:113 +#: js/toolbar.js:114 +#: js/toolbar.js:178 +#: js/toolbar.js:179 +#: js/toolbar.js:234 +#: js/toolbar.js:235 +msgid "Full Screen" +msgstr "" + +#: js/toolbar.js:148 +#: js/toolbar.js:151 +#: js/toolbar.js:203 +#: js/toolbar.js:206 +#: js/toolbar.js:259 +#: js/toolbar.js:262 +#: js/turtledefs.js:558 +msgid "Save turtle artwork as PNG" +msgstr "" + +#: js/toolbar.js:150 +#: js/toolbar.js:205 +#: js/toolbar.js:261 +#: js/turtledefs.js:554 +msgid "Save turtle artwork as SVG" +msgstr "" + +#: js/toolbar.js:157 +#: js/toolbar.js:212 +#: js/toolbar.js:268 +msgid "한국인" +msgstr "" + +#: js/toolbar.js:174 +#: js/toolbar.js:230 +msgid "About Turtle Blocks" +msgstr "" + +#: js/toolbar.js:446 +#: js/toolbar.js:457 +#: js/toolbar.js:497 +msgid "Turtle Wrap Off" +msgstr "" + +#: js/toolbar.js:466 +#: js/toolbar.js:506 +msgid "Turtle Wrap On" +msgstr "" + +#: js/turtle-painter.js:1192 +#: js/turtle-painter.js:1193 +#: js/turtles.js:118 +#: js/block-verbose.js:1623 +#: js/block.js:1587 +#: js/lilypond.js:749 +#: js/lilypond.js:913 +#: js/lilypond.js:951 +#: js/logo.js:1184 +#: js/blocks/ActionBlocks.js:1223 +#: js/blocks/ProgramBlocks.js:1267 +msgid "start" +msgstr "" + +#: js/turtledefs.js:40 +#.TRANS: put the URL to the guide here, e.g., https://github.com/sugarlabs/turtleblocksjs/tree/master/guide/README.md +msgid "guide url" +msgstr "" + +#: js/turtledefs.js:85 +#: js/turtledefs.js:437 +msgid "Turtle Blocks is a Logo-inspired turtle that draws colorful pictures with snap-together visual-programming blocks." +msgstr "" + +#: js/turtledefs.js:118 +#: js/turtledefs.js:220 +msgid "search" +msgstr "" + +#: js/turtledefs.js:120 +#: js/turtledefs.js:222 +#: js/blocks/MeterBlocks.js:1343 +#: js/blocks/WidgetBlocks.js:522 +#.TRANS: musical meter (time signature), e.g., 4:4 +msgid "meter" +msgstr "" + +#: js/turtledefs.js:122 +#: js/turtledefs.js:224 +msgid "intervals" +msgstr "" + +#: js/turtledefs.js:124 +#: js/turtledefs.js:226 +msgid "ornament" +msgstr "" + +#: js/turtledefs.js:125 +#: js/turtledefs.js:227 +#: js/blocks/VolumeBlocks.js:362 +#: js/blocks/VolumeBlocks.js:502 +#: js/blocks/VolumeBlocks.js:545 +msgid "volume" +msgstr "" + +#: js/turtledefs.js:126 +#: js/turtledefs.js:228 +#: js/block-verbose.js:1700 +#: js/block-verbose.js:2626 +#: js/block.js:1664 +#: js/block.js:2554 +#: js/lilypond.js:732 +#: js/lilypond.js:897 +#: js/lilypond.js:941 +#: js/palette.js:577 +#: js/blocks/RhythmBlocks.js:766 +#: js/blocks/DrumBlocks.js:477 +#: js/blocks/VolumeBlocks.js:502 +#: js/widgets/phrasemaker.js:1038 +msgid "drum" +msgstr "" + +#: js/turtledefs.js:129 +#: js/turtledefs.js:231 +msgid "boxes" +msgstr "" + +#: js/turtledefs.js:130 +#: js/turtledefs.js:232 +msgid "widgets" +msgstr "" + +#: js/turtledefs.js:131 +#: js/turtledefs.js:233 +#: js/widgets/phrasemaker.js:1039 +msgid "graphics" +msgstr "" + +#: js/turtledefs.js:134 +#: js/turtledefs.js:236 +msgid "boolean" +msgstr "" + +#: js/turtledefs.js:137 +#: js/turtledefs.js:239 +#: js/blocks/HeapBlocks.js:59 +#: js/widgets/status.js:147 +msgid "heap" +msgstr "" + +#: js/turtledefs.js:138 +#: js/turtledefs.js:240 +#: js/blocks/DictBlocks.js:142 +#: js/blocks/ProgramBlocks.js:495 +msgid "dictionary" +msgstr "" + +#: js/turtledefs.js:139 +#: js/turtledefs.js:241 +msgid "ensemble" +msgstr "" + +#: js/turtledefs.js:140 +#: js/turtledefs.js:242 +msgid "extras" +msgstr "" + +#: js/turtledefs.js:142 +#: js/turtledefs.js:244 +#.TRANS: program as in computer program +#.TRANS: program as in computer program +msgid "program" +msgstr "" + +#: js/turtledefs.js:143 +#: js/turtledefs.js:245 +msgid "my blocks" +msgstr "" + +#: js/turtledefs.js:185 +#: js/turtledefs.js:281 +msgid "artwork" +msgstr "" + +#: js/turtledefs.js:185 +#: js/turtledefs.js:281 +msgid "logic" +msgstr "" + +#: js/turtledefs.js:185 +#: js/turtledefs.js:281 +msgid "music" +msgstr "" + +#: js/turtledefs.js:187 +#: js/turtledefs.js:463 +msgid "Music Blocks is a collection of tools for exploring fundamental musical concepts in a fun way." +msgstr "" + +#: js/turtledefs.js:436 +msgid "Welcome to Turtle Blocks" +msgstr "" + +#: js/turtledefs.js:438 +#: js/turtledefs.js:465 +#: js/turtledefs.js:774 +#: js/turtledefs.js:805 +msgid "The current version is" +msgstr "" + +#: js/turtledefs.js:446 +#: js/turtledefs.js:483 +msgid "Click the run button to run the project in fast mode." +msgstr "" + +#: js/turtledefs.js:452 +msgid "Stop the turtle." +msgstr "" + +#: js/turtledefs.js:454 +#: js/turtledefs.js:491 +msgid "You can also type Alt-S to stop." +msgstr "" + +#: js/turtledefs.js:462 +#: js/widgets/help.js:333 +msgid "Welcome to Music Blocks" +msgstr "" + +#: js/turtledefs.js:472 +#: js/widgets/help.js:334 +msgid "Meet Mr. Mouse!" +msgstr "" + +#: js/turtledefs.js:473 +msgid "Mr Mouse is our Music Blocks conductor." +msgstr "" + +#: js/turtledefs.js:475 +msgid "Mr Mouse encourages you to explore Music Blocks." +msgstr "" + +#: js/turtledefs.js:477 +msgid "Let us start our tour!" +msgstr "" + +#: js/turtledefs.js:489 +msgid "Stop the music (and the mice)." +msgstr "" + +#: js/turtledefs.js:499 +msgid "Record your project as video." +msgstr "" + +#: js/turtledefs.js:505 +msgid "Toggle Fullscreen mode." +msgstr "" + +#: js/turtledefs.js:511 +msgid "Initialize a new project." +msgstr "" + +#: js/turtledefs.js:517 +msgid "You can also load projects from the file system." +msgstr "" + +#: js/turtledefs.js:522 +#: planet/js/StringHelper.js:46 +msgid "Delete" +msgstr "" + +#: js/turtledefs.js:523 +msgid "To delete a block, just right-click on it, then you will be able to see the delete option" +msgstr "" + +#: js/turtledefs.js:528 +#: js/activity.js:2649 +#: planet/js/LocalCard.js:31 +msgid "Copy" +msgstr "" + +#: js/turtledefs.js:529 +msgid "To copy a block, just right-click on it, then you will be able to see the copy option" +msgstr "" + +#: js/turtledefs.js:534 +#: js/piemenus.js:3411 +msgid "Extract" +msgstr "" + +#: js/turtledefs.js:535 +msgid "To extract a block, just right-click on it, then you will be able to see the extract option" +msgstr "" + +#: js/turtledefs.js:542 +#: js/turtledefs.js:552 +#: js/turtledefs.js:573 +msgid "Save your project to a file." +msgstr "" + +#: js/turtledefs.js:549 +#: js/turtledefs.js:570 +msgid "save" +msgstr "" + +#: js/turtledefs.js:556 +#: js/turtledefs.js:577 +msgid "Save graphics from your project to as SVG." +msgstr "" + +#: js/turtledefs.js:560 +#: js/turtledefs.js:581 +msgid "Save graphics from your project as PNG." +msgstr "" + +#: js/turtledefs.js:564 +#: js/turtledefs.js:597 +msgid "Save block artwork as an SVG file." +msgstr "" + +#: js/turtledefs.js:585 +msgid "Save audio from your project as WAV." +msgstr "" + +#: js/turtledefs.js:589 +msgid "Save your project to as an ABC file." +msgstr "" + +#: js/turtledefs.js:593 +msgid "Save your project to as a Lilypond file." +msgstr "" + +#: js/turtledefs.js:604 +msgid "Load samples from server" +msgstr "" + +#: js/turtledefs.js:605 +msgid "This button opens a viewer for loading example projects." +msgstr "" + +#: js/turtledefs.js:611 +msgid "Palette buttons" +msgstr "" + +#: js/turtledefs.js:612 +msgid "This toolbar contains the palette buttons including Rhythm Pitch Tone Action and more." +msgstr "" + +#: js/turtledefs.js:614 +msgid "Click to show the palettes of blocks and drag blocks from the palettes onto the canvas to use them." +msgstr "" + +#: js/turtledefs.js:620 +msgid "Cartesian/Polar" +msgstr "" + +#: js/turtledefs.js:621 +msgid "Show or hide a coordinate grid." +msgstr "" + +#: js/turtledefs.js:626 +#: js/turtles.js:902 +msgid "Clean" +msgstr "" + +#: js/turtledefs.js:627 +msgid "Clear the screen and return the mice to their initial positions." +msgstr "" + +#: js/turtledefs.js:632 +#: js/turtles.js:955 +msgid "Collapse" +msgstr "" + +#: js/turtledefs.js:633 +msgid "Collapse the graphics window." msgstr "" -#: js/palette.js:571 -msgid "grid" +#: js/turtledefs.js:638 +#: js/activity.js:5684 +msgid "Home" msgstr "" -#: js/palette.js:577 -#: js/block.js:1540 -#: js/block.js:2343 -#: js/turtledefs.js:126 -#: js/turtledefs.js:228 -#: js/lilypond.js:740 -#: js/lilypond.js:905 -#: js/lilypond.js:949 -#: js/DrumBlocks.js:486 -#: js/RhythmBlocks.js:766 -#: js/VolumeBlocks.js:502 -#: js/phrasemaker.js:823 -msgid "drum" +#: js/turtledefs.js:639 +msgid "Return all blocks to the center of the screen." msgstr "" -#: js/palette.js:580 -msgid "effect" +#: js/turtledefs.js:644 +msgid "Show/hide blocks" msgstr "" -#: js/palette.js:586 -msgid "sargam" +#: js/turtledefs.js:645 +msgid "Hide or show the blocks and the palettes." msgstr "" -#: js/palette.js:589 -#: js/activity.js:1833 -#: js/RhythmBlocks.js:923 -#: js/PitchBlocks.js:442 -#: js/PitchBlocks.js:1748 -#.TRANS: a numeric mapping of the notes in an octave based on the musical mode -msgid "scale degree" +#: js/turtledefs.js:650 +msgid "Expand/collapse collapsable blocks" msgstr "" -#: js/palette.js:592 -#: js/activity.js:1860 -msgid "mode name" +#: js/turtledefs.js:651 +msgid "Expand or collapse start and action stacks." msgstr "" -#: js/palette.js:595 -#: js/activity.js:1839 -msgid "invert mode" +#: js/turtledefs.js:658 +#: js/activity.js:5704 +msgid "Decrease block size" msgstr "" -#: js/palette.js:598 -#: js/activity.js:1836 -msgid "voice name" +#: js/turtledefs.js:659 +msgid "Decrease the size of the blocks." msgstr "" -#: js/palette.js:601 -#: js/PitchBlocks.js:1181 -msgid "custom pitch" +#: js/turtledefs.js:664 +#: js/activity.js:5710 +msgid "Increase block size" msgstr "" -#: js/palette.js:605 -#: js/block.js:1456 -#: js/block.js:1575 -#: js/WidgetBlocks.js:218 -#: js/IntervalsBlocks.js:63 -msgid "temperament" +#: js/turtledefs.js:665 +msgid "Increase the size of the blocks." msgstr "" -#: js/palette.js:609 -msgid "accidental" +#: js/turtledefs.js:670 +msgid "Expand/collapse option toolbar" msgstr "" -#: js/palette.js:615 -#: js/activity.js:1866 -msgid "interval name" +#: js/turtledefs.js:671 +msgid "Click this button to expand or collapse the auxillary toolbar." msgstr "" -#: js/palette.js:633 -#: js/PitchBlocks.js:405 -msgid "pitch converter" +#: js/turtledefs.js:676 +msgid "Run slow" msgstr "" -#: js/rubrics.js:522 -#: js/turtledefs.js:119 -#: js/turtledefs.js:221 -#: js/RhythmBlockPaletteBlocks.js:52 -#: js/RhythmBlockPaletteBlocks.js:233 -#: js/ProgramBlocks.js:745 -#: js/rhythmruler.js:1670 -#: js/rhythmruler.js:1677 -#: js/rhythmruler.js:1745 -#: js/rhythmruler.js:1752 -#: js/rhythmruler.js:1830 -#.TRANS: an arrangement of notes based on duration -msgid "rhythm" +#: js/turtledefs.js:677 +msgid "Click to run the project in slow mode." msgstr "" -#: js/rubrics.js:523 -#: js/block.js:2339 -#: js/turtledefs.js:121 -#: js/turtledefs.js:223 -#: js/IntervalsBlocks.js:63 -#: js/PitchBlocks.js:1801 -#: js/PitchBlocks.js:1814 -#: js/SensorsBlocks.js:178 -#: js/phrasemaker.js:821 -#: js/musickeyboard.js:1653 -#.TRANS: pitch number -#.TRANS: we specify pitch in terms of a name and an octave. The name can be CDEFGAB or Do Re Mi Fa Sol La Ti. Octave is a number between 1 and 8. -msgid "pitch" +#: js/turtledefs.js:683 +msgid "Click to run the project step by step." msgstr "" -#: js/rubrics.js:524 -#: js/turtledefs.js:123 -#: js/turtledefs.js:225 -msgid "tone" +#: js/turtledefs.js:690 +msgid "Display statistics about your Music project." msgstr "" -#: js/rubrics.js:525 -#: js/lilypond.js:613 -#: js/lilypond.js:912 -#: js/lilypond.js:918 -#: js/lilypond.js:956 -msgid "mouse" +#: js/turtledefs.js:697 +msgid "Delete a selected plugin." msgstr "" -#: js/rubrics.js:526 -#: js/turtledefs.js:132 -#: js/turtledefs.js:234 -#: js/phrasemaker.js:825 -msgid "pen" +#: js/turtledefs.js:704 +msgid "Enable scrolling" msgstr "" -#: js/rubrics.js:527 -#: js/turtledefs.js:133 -#: js/turtledefs.js:235 -#: js/NumberBlocks.js:905 -#: js/PitchBlocks.js:1679 -#: js/PitchBlocks.js:1720 -msgid "number" +#: js/turtledefs.js:705 +msgid "You can scroll the blocks on the canvas." msgstr "" -#: js/rubrics.js:528 -#: js/turtledefs.js:127 -#: js/turtledefs.js:229 -msgid "flow" +#: js/turtledefs.js:714 +msgid "Wrap Turtle" msgstr "" -#: js/rubrics.js:530 -#: js/turtledefs.js:136 -#: js/turtledefs.js:238 -msgid "sensors" +#: js/turtledefs.js:715 +msgid "Turn Turtle wrapping On or Off." msgstr "" -#: js/rubrics.js:531 -#: js/turtledefs.js:135 -#: js/turtledefs.js:237 -#: js/MediaBlocks.js:930 -msgid "media" +#: js/turtledefs.js:725 +msgid "Restore blocks from the trash." msgstr "" -#: js/rubrics.js:532 -msgid "mice" +#: js/turtledefs.js:732 +msgid "Switch mode" msgstr "" -#: js/macros.js:711 -#: js/musicutils.js:783 -#: js/synthutils.js:181 -#.TRANS: animal sound effect -msgid "duck" +#: js/turtledefs.js:733 +msgid "Switch between beginner and advance modes." msgstr "" -#: js/toolbar.js:46 -#: js/toolbar.js:107 -msgid "About Music Blocks" +#: js/turtledefs.js:739 +msgid "Select your language preference." msgstr "" -#: js/toolbar.js:47 -#: js/toolbar.js:108 -#: js/toolbar.js:172 -#: js/toolbar.js:228 -#: js/turtledefs.js:445 -#: js/turtledefs.js:482 -#: js/activity.js:2281 -#: js/activity.js:2289 -#: js/activity.js:2520 -#: js/modewidget.js:77 -#: js/pitchstaircase.js:121 -#: js/phrasemaker.js:302 -#: js/phrasemaker.js:312 -#: js/phrasemaker.js:314 -#: js/phrasemaker.js:3901 -#: js/phrasemaker.js:4061 -#: js/phrasemaker.js:4066 -#: js/phrasemaker.js:4068 -#: js/phrasemaker.js:4183 -#: js/pitchdrummatrix.js:81 -#: js/pitchdrummatrix.js:574 -#: js/pitchdrummatrix.js:576 -#: js/pitchdrummatrix.js:628 -#: js/pitchdrummatrix.js:630 -#: js/pitchdrummatrix.js:645 -#: js/pitchdrummatrix.js:647 -#: js/pitchdrummatrix.js:674 -#: js/pitchdrummatrix.js:676 -#: js/temperament.js:477 -#: js/temperament.js:480 -#: js/temperament.js:540 -#: js/temperament.js:542 -#: js/temperament.js:1835 -#: js/temperament.js:1837 -#: js/temperament.js:1986 -#: js/temperament.js:1988 -#: js/musickeyboard.js:522 -#: js/musickeyboard.js:682 -#: js/musickeyboard.js:684 -#: js/musickeyboard.js:756 -#: js/musickeyboard.js:758 -#: js/rhythmruler.js:298 -#: js/rhythmruler.js:300 -#: js/rhythmruler.js:314 -#: js/rhythmruler.js:316 -#: js/sampler.js:96 -#: js/sampler.js:98 -#: js/sampler.js:229 -#: js/sampler.js:235 -#: js/sampler.js:237 -#: js/tempo.js:84 -#: js/tempo.js:86 -#: js/timbre.js:432 -#: js/timbre.js:434 -#: js/timbre.js:465 -#: js/timbre.js:467 -#: js/timbre.js:746 -#: js/meterwidget.js:80 -#: js/arpeggio.js:90 -#: js/arpeggio.js:547 -#: js/arpeggio.js:549 -#: js/arpeggio.js:644 -#: js/arpeggio.js:646 -msgid "Play" +#: js/turtledefs.js:745 +msgid "Keyboard shortcuts" msgstr "" -#: js/toolbar.js:48 -#: js/toolbar.js:109 -#: js/toolbar.js:173 -#: js/toolbar.js:229 -#: js/turtledefs.js:451 -#: js/turtledefs.js:488 -#: js/activity.js:2297 -#: js/modewidget.js:99 -#: js/modewidget.js:101 -#: js/phrasemaker.js:323 -#: js/phrasemaker.js:325 -#: js/pitchdrummatrix.js:561 -#: js/pitchdrummatrix.js:563 -#: js/temperament.js:1820 -#: js/temperament.js:1822 -#: js/meterwidget.js:101 -#: js/meterwidget.js:103 -#: js/arpeggio.js:534 -#: js/arpeggio.js:536 -msgid "Stop" +#: js/turtledefs.js:746 +msgid "You can type d to create a do block and r to create a re block etc." msgstr "" -#: js/toolbar.js:49 -#: js/toolbar.js:110 -#: js/toolbar.js:174 -#: js/toolbar.js:230 -#: js/turtledefs.js:498 -msgid "Record" +#: js/turtledefs.js:753 +msgid "Show these messages." msgstr "" -#: js/toolbar.js:50 -#: js/toolbar.js:51 -msgid "Full screen" +#: js/turtledefs.js:759 +#: js/turtledefs.js:790 +#: js/widgets/help.js:335 +msgid "Guide" msgstr "" -#: js/toolbar.js:52 -#: js/toolbar.js:112 -#: js/toolbar.js:177 -#: js/toolbar.js:232 -#: js/turtledefs.js:504 -msgid "Toggle Fullscreen" +#: js/turtledefs.js:760 +msgid "A detailed guide to Turtle Blocks is available." msgstr "" -#: js/toolbar.js:53 -#: js/toolbar.js:113 -#: js/toolbar.js:178 -#: js/toolbar.js:233 -#: js/turtledefs.js:510 -#: js/StringHelper.js:33 -msgid "New project" +#: js/turtledefs.js:764 +msgid "Turtle Blocks Guide" msgstr "" -#: js/toolbar.js:54 -#: js/toolbar.js:114 -#: js/toolbar.js:179 -#: js/toolbar.js:234 -#: js/turtledefs.js:516 -msgid "Load project from file" +#: js/turtledefs.js:767 +#: js/turtledefs.js:798 +#: js/widgets/help.js:336 +msgid "About" msgstr "" -#: js/toolbar.js:55 -#: js/toolbar.js:115 -#: js/toolbar.js:116 -#: js/toolbar.js:180 -#: js/toolbar.js:235 -#: js/turtledefs.js:541 -#: js/turtledefs.js:550 -#: js/turtledefs.js:571 -msgid "Save project" +#: js/turtledefs.js:768 +msgid "Turtle Blocks is an open source collection of tools for exploring musical concepts." msgstr "" -#: js/toolbar.js:56 -#: js/toolbar.js:75 -#: js/toolbar.js:77 -#: js/toolbar.js:135 -#: js/toolbar.js:144 -#: js/toolbar.js:146 -#: js/toolbar.js:181 -#: js/toolbar.js:199 -#: js/toolbar.js:201 -#: js/toolbar.js:236 -#: js/toolbar.js:254 -#: js/toolbar.js:256 -msgid "Save project as HTML" +#: js/turtledefs.js:770 +msgid "A full list of contributors can be found in the Turtle Blocks GitHub repository." +msgstr "" + +#: js/turtledefs.js:772 +msgid "Turtle Blocks is licensed under the AGPL." +msgstr "" + +#: js/turtledefs.js:780 +msgid "Turtle Blocks GitHub repository" +msgstr "" + +#: js/turtledefs.js:783 +#: js/turtledefs.js:814 +#: js/widgets/help.js:337 +#: js/widgets/help.js:359 +msgid "Congratulations." +msgstr "" + +#: js/turtledefs.js:784 +msgid "You have finished the tour. Please enjoy Turtle Blocks!" +msgstr "" + +#: js/turtledefs.js:791 +msgid "A detailed guide to Music Blocks is available." +msgstr "" + +#: js/turtledefs.js:799 +msgid "Music Blocks is an open source collection of tools for exploring musical concepts." +msgstr "" + +#: js/turtledefs.js:801 +msgid "A full list of contributors can be found in the Music Blocks GitHub repository." +msgstr "" + +#: js/turtledefs.js:803 +msgid "Music Blocks is licensed under the AGPL." +msgstr "" + +#: js/turtledefs.js:811 +msgid "Music Blocks GitHub repository" +msgstr "" + +#: js/turtledefs.js:815 +msgid "You have finished the tour. Please enjoy Music Blocks!" +msgstr "" + +#: js/turtles.js:882 +msgid "Grid" +msgstr "" + +#: js/turtles.js:1024 +msgid "Expand" +msgstr "" + +#: js/block-verbose.js:1616 +#: js/block-verbose.js:1735 +#: js/block.js:1580 +#: js/block.js:1699 +#: js/palette.js:605 +#: js/blocks/IntervalsBlocks.js:63 +#: js/blocks/WidgetBlocks.js:259 +msgid "temperament" +msgstr "" + +#: js/block-verbose.js:1630 +#: js/block.js:1594 +msgid "matrix" msgstr "" -#: js/toolbar.js:57 -#: js/toolbar.js:117 -#: js/toolbar.js:182 -#: js/toolbar.js:237 -msgid "Find and share projects" +#: js/block-verbose.js:1637 +#: js/block.js:1601 +#: js/blocks/WidgetBlocks.js:1509 +#: plugins/rodi.rtp:324 +msgid "status" msgstr "" -#: js/toolbar.js:58 -#: js/toolbar.js:118 -#: js/toolbar.js:183 -#: js/toolbar.js:238 -msgid "Offline. Sharing is unavailable" +#: js/block-verbose.js:1644 +#: js/block.js:1608 +msgid "drum mapper" msgstr "" -#: js/toolbar.js:59 -#: js/toolbar.js:119 -#: js/toolbar.js:184 -#: js/toolbar.js:239 -msgid "Auxiliary menu" +#: js/block-verbose.js:1651 +#: js/block.js:1615 +msgid "ruler" msgstr "" -#: js/toolbar.js:61 -#: js/toolbar.js:121 -#: js/toolbar.js:186 -#: js/toolbar.js:241 -msgid "Run slowly" +#: js/block-verbose.js:1658 +#: js/block.js:1622 +#: js/blocks/WidgetBlocks.js:397 +#.TRANS: timbre is the character or quality of a musical sound +msgid "timbre" msgstr "" -#: js/toolbar.js:62 -#: js/toolbar.js:122 -#: js/toolbar.js:187 -#: js/toolbar.js:242 -#: js/turtledefs.js:682 -msgid "Run step by step" +#: js/block-verbose.js:1665 +#: js/block.js:1629 +msgid "stair" msgstr "" -#: js/toolbar.js:63 -#: js/toolbar.js:123 -#: js/toolbar.js:188 -#: js/toolbar.js:243 -#: js/turtledefs.js:689 -msgid "Display statistics" +#: js/block-verbose.js:1672 +#: js/block.js:1636 +#: js/blocks/WidgetBlocks.js:707 +#.TRANS: the speed at music is should be played. +msgid "tempo" msgstr "" -#: js/toolbar.js:64 -#: js/toolbar.js:124 -#: js/toolbar.js:189 -#: js/toolbar.js:244 -msgid "Load plugin" +#: js/block-verbose.js:1679 +#: js/block-verbose.js:1742 +#: js/block.js:1643 +#: js/block.js:1706 +#: js/blocks/IntervalsBlocks.js:1464 +#.TRANS: mode, e.g., Major in C Major +msgid "mode" msgstr "" -#: js/toolbar.js:65 -#: js/toolbar.js:125 -#: js/toolbar.js:190 -#: js/toolbar.js:245 -#: js/turtledefs.js:696 -msgid "Delete plugin" +#: js/block-verbose.js:1686 +#: js/block.js:1650 +msgid "slider" msgstr "" -#: js/toolbar.js:66 -#: js/toolbar.js:126 -#: js/toolbar.js:191 -#: js/toolbar.js:246 -msgid "Enable horizontal scrolling" +#: js/block-verbose.js:1693 +#: js/block.js:1657 +#: js/blocks/SensorsBlocks.js:1001 +msgid "keyboard" msgstr "" -#: js/toolbar.js:67 -#: js/toolbar.js:127 -#: js/toolbar.js:192 -#: js/toolbar.js:247 -msgid "Disable horizontal scrolling" +#: js/block-verbose.js:1707 +#: js/block.js:1671 +#: js/blocks/WidgetBlocks.js:1190 +#: js/blocks/WidgetBlocks.js:1228 +#.TRANS: widget for subdividing a measure into distinct rhythmic elements +msgid "rhythm maker" msgstr "" -#: js/toolbar.js:68 -#: js/toolbar.js:128 -#: js/toolbar.js:193 -#: js/toolbar.js:248 -#: js/LocalCard.js:54 -#: js/StringHelper.js:71 -msgid "Merge with current project" +#: js/block-verbose.js:1714 +#: js/block-verbose.js:2457 +#: js/block-verbose.js:2514 +#: js/block.js:1678 +#: js/block.js:2385 +#: js/block.js:2442 +#: js/blocks/MeterBlocks.js:1367 +#: js/blocks/OrnamentBlocks.js:220 +#: js/blocks/OrnamentBlocks.js:312 +#: js/blocks/RhythmBlocks.js:33 +#: js/blocks/RhythmBlocks.js:356 +#: js/blocks/RhythmBlocks.js:766 +#: js/blocks/RhythmBlocks.js:806 +#: js/blocks/RhythmBlockPaletteBlocks.js:70 +#: js/blocks/RhythmBlockPaletteBlocks.js:252 +#: js/blocks/RhythmBlockPaletteBlocks.js:485 +#: js/blocks/RhythmBlockPaletteBlocks.js:554 +#: js/blocks/RhythmBlockPaletteBlocks.js:605 +#: js/blocks/RhythmBlockPaletteBlocks.js:875 +#: js/turtleactions/DictActions.js:85 +#: js/widgets/phrasemaker.js:942 +#: js/widgets/phrasemaker.js:2656 +#: js/widgets/phrasemaker.js:2699 +#: js/widgets/phrasemaker.js:2810 +#.TRANS: the value (e.g., 1/4 note) of the note being played. +msgid "note value" msgstr "" -#: js/toolbar.js:69 -#: js/toolbar.js:129 -msgid "Set Pitch Preview" +#: js/block-verbose.js:1721 +#: js/block-verbose.js:2382 +#: js/block-verbose.js:2405 +#: js/block.js:1685 +#: js/block.js:2310 +#: js/block.js:2333 +#: js/blocks/IntervalsBlocks.js:1071 +#: js/blocks/OrnamentBlocks.js:312 +#.TRANS: calculate a relative step between notes based on semi-tones +msgid "scalar interval" msgstr "" -#: js/toolbar.js:70 -#: js/toolbar.js:130 -#: js/toolbar.js:194 -#: js/toolbar.js:249 -msgid "Toggle JavaScript Editor" +#: js/block-verbose.js:1728 +#: js/block.js:1692 +#: js/blocks/RhythmBlocks.js:148 +msgid "milliseconds" msgstr "" -#: js/toolbar.js:71 -#: js/toolbar.js:131 -#: js/toolbar.js:195 -#: js/toolbar.js:250 -#: js/turtledefs.js:724 -msgid "Restore" +#: js/block-verbose.js:2455 +#: js/block-verbose.js:2459 +#: js/block-verbose.js:2512 +#: js/block-verbose.js:2628 +#: js/block.js:2383 +#: js/block.js:2387 +#: js/block.js:2440 +#: js/block.js:2556 +#: js/blocks/RhythmBlocks.js:712 +#: js/blocks/ProgramBlocks.js:1273 +#: js/widgets/rhythmruler.js:1183 +#: js/widgets/rhythmruler.js:1329 +msgid "silence" msgstr "" -#: js/toolbar.js:72 -#: js/toolbar.js:132 -#: js/toolbar.js:196 -#: js/toolbar.js:251 -msgid "Switch to beginner mode" +#: js/block-verbose.js:2548 +#: js/block-verbose.js:3492 +#: js/block-verbose.js:3509 +#: js/activity.js:2718 +#: js/activity.js:2769 +#: js/block.js:2476 +#: js/block.js:3416 +#: js/block.js:3433 +#: js/utils/musicutils.js:3780 +#: js/utils/musicutils.js:5273 +#.TRANS: the note names must be separated by single spaces +#.TRANS: the note names must be separated by single spaces +#.TRANS: the note names must be separated by single spaces +msgid "ti la sol fa mi re do" msgstr "" -#: js/toolbar.js:73 -#: js/toolbar.js:133 -#: js/toolbar.js:197 -#: js/toolbar.js:252 -msgid "Switch to advanced mode" +#: js/block-verbose.js:2616 +#: js/block.js:2544 +#.TRANS: scalar step +#.TRANS: scalar step +msgid "down" msgstr "" -#: js/toolbar.js:74 -#: js/toolbar.js:134 -#: js/toolbar.js:143 -#: js/toolbar.js:198 -#: js/toolbar.js:253 -#: js/turtledefs.js:738 -msgid "Select language" +#: js/block-verbose.js:2617 +#: js/block.js:2545 +msgid "up" msgstr "" -#: js/toolbar.js:76 -#: js/toolbar.js:79 -#: js/toolbar.js:137 -#: js/turtledefs.js:579 -msgid "Save mouse artwork as PNG" +#: js/block-verbose.js:3026 +#: js/block.js:2950 +msgid "Silence block cannot be removed." msgstr "" -#: js/toolbar.js:78 -#: js/toolbar.js:136 -#: js/turtledefs.js:575 -msgid "Save mouse artwork as SVG" +#: js/block-verbose.js:3824 +#: js/block.js:3748 +#: js/blocks.js:2607 +#: js/blocks.js:3218 +#: js/palette.js:618 +#: js/blocks/BooleanBlocks.js:77 +#: js/blocks/BooleanBlocks.js:167 +#: js/blocks/BooleanBlocks.js:251 +#: js/blocks/BooleanBlocks.js:335 +#: js/blocks/BooleanBlocks.js:433 +#: js/blocks/BooleanBlocks.js:539 +#: js/blocks/BooleanBlocks.js:640 +#: js/blocks/BooleanBlocks.js:741 +#: js/blocks/BooleanBlocks.js:847 +#: js/blocks/BooleanBlocks.js:948 +#: js/blocks/BooleanBlocks.js:1033 +#: js/blocks/SensorsBlocks.js:910 +msgid "true" msgstr "" -#: js/toolbar.js:80 -#: js/toolbar.js:138 -#: js/turtledefs.js:583 -msgid "Save music as WAV" +#: js/block-verbose.js:3824 +#: js/block.js:3748 +#: js/blocks.js:2609 +#: js/blocks.js:3220 +#: js/blocks/BooleanBlocks.js:79 +#: js/blocks/BooleanBlocks.js:169 +#: js/blocks/BooleanBlocks.js:253 +#: js/blocks/BooleanBlocks.js:337 +#: js/blocks/BooleanBlocks.js:435 +#: js/blocks/BooleanBlocks.js:541 +#: js/blocks/BooleanBlocks.js:642 +#: js/blocks/BooleanBlocks.js:743 +#: js/blocks/BooleanBlocks.js:849 +#: js/blocks/BooleanBlocks.js:950 +#: js/blocks/SensorsBlocks.js:912 +msgid "false" msgstr "" -#: js/toolbar.js:81 -#: js/toolbar.js:139 -#: js/turtledefs.js:587 -msgid "Save sheet music as ABC" +#: js/block-verbose.js:3835 +#: js/block-verbose.js:3848 +#: js/block.js:3759 +#: js/block.js:3772 +#: js/blocks/ExtrasBlocks.js:615 +msgid "Cartesian" msgstr "" -#: js/toolbar.js:82 -#: js/toolbar.js:140 -#: js/turtledefs.js:591 -msgid "Save sheet music as Lilypond" +#: js/block-verbose.js:3836 +#: js/block-verbose.js:3849 +#: js/block.js:3760 +#: js/block.js:3773 +#: js/blocks/ExtrasBlocks.js:619 +msgid "polar" msgstr "" -#: js/toolbar.js:83 -msgid "Save sheet music as MusicXML" +#: js/block-verbose.js:3837 +#: js/block-verbose.js:3850 +#: js/block.js:3761 +#: js/block.js:3774 +#: js/blocks/ExtrasBlocks.js:623 +msgid "Cartesian+polar" msgstr "" -#: js/toolbar.js:84 -#: js/toolbar.js:141 -#: js/toolbar.js:149 -#: js/toolbar.js:204 -#: js/toolbar.js:259 -#: js/turtledefs.js:562 -#: js/turtledefs.js:595 -msgid "Save block artwork as SVG" +#: js/block-verbose.js:3838 +#: js/block-verbose.js:3857 +#: js/block.js:3762 +#: js/block.js:3781 +#: js/blocks/ExtrasBlocks.js:652 +msgid "none" msgstr "" -#: js/toolbar.js:85 -#: js/toolbar.js:142 -#: js/toolbar.js:150 -#: js/toolbar.js:205 -#: js/toolbar.js:260 -msgid "Confirm" +#: js/block-verbose.js:3851 +#: js/block.js:3775 +#: js/blocks/ExtrasBlocks.js:628 +msgid "treble" msgstr "" -#: js/toolbar.js:86 -#: js/toolbar.js:151 -#: js/toolbar.js:206 -#: js/toolbar.js:261 -msgid "English (United States)" +#: js/block-verbose.js:3852 +#: js/block.js:3776 +#: js/blocks/ExtrasBlocks.js:632 +msgid "grand staff" msgstr "" -#: js/toolbar.js:87 -#: js/toolbar.js:152 -#: js/toolbar.js:207 -#: js/toolbar.js:262 -msgid "English (United Kingdom)" +#: js/block-verbose.js:3853 +#: js/block.js:3777 +#: js/blocks/ExtrasBlocks.js:636 +msgid "mezzo-soprano" msgstr "" -#: js/toolbar.js:88 -#: js/toolbar.js:153 -#: js/toolbar.js:208 -#: js/toolbar.js:263 -msgid "日本語" +#: js/block-verbose.js:3854 +#: js/block.js:3778 +#: js/blocks/ExtrasBlocks.js:640 +msgid "alto" msgstr "" -#: js/toolbar.js:89 -msgid "한국어" +#: js/block-verbose.js:3855 +#: js/block.js:3779 +#: js/blocks/ExtrasBlocks.js:644 +msgid "tenor" msgstr "" -#: js/toolbar.js:90 -#: js/toolbar.js:155 -#: js/toolbar.js:210 -#: js/toolbar.js:265 -msgid "español" +#: js/block-verbose.js:3856 +#: js/block.js:3780 +#: js/utils/musicutils.js:1115 +#: js/utils/synthutils.js:80 +#: js/blocks/ExtrasBlocks.js:648 +#.TRANS: musical instrument +msgid "bass" msgstr "" -#: js/toolbar.js:91 -#: js/toolbar.js:156 -#: js/toolbar.js:211 -#: js/toolbar.js:266 -msgid "português" +#: js/block-verbose.js:3901 +#: js/block.js:3825 +#: js/blocks.js:2600 +#: js/blocks.js:3211 +msgid "on2" msgstr "" -#: js/toolbar.js:92 -#: js/toolbar.js:157 -#: js/toolbar.js:212 -#: js/toolbar.js:267 -msgid "にほんご" +#: js/block-verbose.js:3903 +#: js/block.js:3827 +#: js/blocks.js:2602 +#: js/blocks.js:3213 +msgid "off" msgstr "" -#: js/toolbar.js:93 -#: js/toolbar.js:158 -#: js/toolbar.js:213 -#: js/toolbar.js:268 -msgid "中文" +#: js/block-verbose.js:4470 +#: js/block.js:4394 +msgid "Not a number" msgstr "" -#: js/toolbar.js:94 -#: js/toolbar.js:159 -#: js/toolbar.js:214 -#: js/toolbar.js:269 -msgid "ภาษาไทย" +#: js/block-verbose.js:4477 +#: js/block.js:4401 +msgid "Octave value must be between 1 and 10." msgstr "" -#: js/toolbar.js:95 -#: js/toolbar.js:160 -#: js/toolbar.js:215 -#: js/toolbar.js:270 -msgid "aymara" +#: js/block-verbose.js:4485 +#: js/block.js:4409 +msgid "Numbers can have at most 10 digits." msgstr "" -#: js/toolbar.js:96 -#: js/toolbar.js:161 -#: js/toolbar.js:216 -#: js/toolbar.js:271 -msgid "quechua" +#: js/activity.js:390 +#: js/activity.js:395 +msgid "Search for blocks" msgstr "" -#: js/toolbar.js:97 -#: js/toolbar.js:162 -#: js/toolbar.js:217 -#: js/toolbar.js:272 -msgid "guarani" +#: js/activity.js:1413 +msgid "Refresh your browser to change to advanced mode." msgstr "" -#: js/toolbar.js:98 -#: js/toolbar.js:163 -#: js/toolbar.js:218 -#: js/toolbar.js:273 -msgid "हिंदी" +#: js/activity.js:1418 +msgid "Refresh your browser to change to beginner mode." msgstr "" -#: js/toolbar.js:99 -#: js/toolbar.js:165 -#: js/toolbar.js:219 -#: js/toolbar.js:275 -msgid "igbo" +#: js/activity.js:1477 +msgid "Catching mice" +msgstr "" + +#: js/activity.js:1478 +msgid "Cleaning the instruments" +msgstr "" + +#: js/activity.js:1479 +msgid "Testing key pieces" +msgstr "" + +#: js/activity.js:1480 +msgid "Sight-reading" +msgstr "" + +#: js/activity.js:1481 +msgid "Combining math and music" msgstr "" -#: js/toolbar.js:100 -#: js/toolbar.js:166 -#: js/toolbar.js:220 -#: js/toolbar.js:276 -msgid "عربى" +#: js/activity.js:1482 +msgid "Generating more blocks" msgstr "" -#: js/toolbar.js:101 -#: js/toolbar.js:164 -#: js/toolbar.js:221 -#: js/toolbar.js:274 -msgid "తెలుగు" +#: js/activity.js:1483 +msgid "Do Re Mi Fa Sol La Ti Do" msgstr "" -#: js/toolbar.js:102 -#: js/toolbar.js:167 -#: js/toolbar.js:222 -#: js/toolbar.js:277 -msgid "עִברִית" +#: js/activity.js:1484 +msgid "Tuning string instruments" msgstr "" -#: js/toolbar.js:111 -#: js/toolbar.js:175 -#: js/toolbar.js:176 -#: js/toolbar.js:231 -msgid "Full Screen" +#: js/activity.js:1485 +msgid "Pressing random keys" msgstr "" -#: js/toolbar.js:145 -#: js/toolbar.js:148 -#: js/toolbar.js:200 -#: js/toolbar.js:203 -#: js/toolbar.js:255 -#: js/toolbar.js:258 -#: js/turtledefs.js:558 -msgid "Save turtle artwork as PNG" +#: js/activity.js:1663 +msgid "plugins will be removed upon restart." msgstr "" -#: js/toolbar.js:147 -#: js/toolbar.js:202 -#: js/toolbar.js:257 -#: js/turtledefs.js:554 -msgid "Save turtle artwork as SVG" +#: js/activity.js:1672 +msgid "show Cartesian" msgstr "" -#: js/toolbar.js:154 -#: js/toolbar.js:209 -#: js/toolbar.js:264 -msgid "한국인" +#: js/activity.js:2211 +#: js/palette.js:589 +#: js/blocks/RhythmBlocks.js:923 +#: js/blocks/PitchBlocks.js:442 +#: js/blocks/PitchBlocks.js:1786 +#.TRANS: a numeric mapping of the notes in an octave based on the musical mode +msgid "scale degree" msgstr "" -#: js/toolbar.js:171 -#: js/toolbar.js:227 -msgid "About Turtle Blocks" +#: js/activity.js:2214 +#: js/palette.js:598 +msgid "voice name" msgstr "" -#: js/toolbar.js:429 -#: js/toolbar.js:440 -msgid "Turtle Wrap Off" +#: js/activity.js:2217 +#: js/palette.js:595 +msgid "invert mode" msgstr "" -#: js/toolbar.js:442 -msgid "Turtle Wrap On" +#: js/activity.js:2220 +msgid "output tools" msgstr "" -#: js/block.js:1470 -msgid "matrix" +#: js/activity.js:2223 +msgid "custom note" msgstr "" -#: js/block.js:1477 -#: js/WidgetBlocks.js:1226 -#: plugins/rodi.rtp:324 -msgid "status" +#: js/activity.js:2226 +msgid "accidental name" msgstr "" -#: js/block.js:1484 -msgid "drum mapper" +#: js/activity.js:2229 +#: js/blocks/PitchBlocks.js:855 +msgid "east indian solfege" msgstr "" -#: js/block.js:1491 -msgid "ruler" +#: js/activity.js:2232 +#: js/blocks/PitchBlocks.js:869 +msgid "note name" msgstr "" -#: js/block.js:1498 -#: js/WidgetBlocks.js:327 -#.TRANS: timbre is the character or quality of a musical sound -msgid "timbre" +#: js/activity.js:2235 +#: js/blocks/IntervalsBlocks.js:94 +msgid "temperament name" msgstr "" -#: js/block.js:1505 -msgid "stair" +#: js/activity.js:2238 +#: js/palette.js:592 +msgid "mode name" msgstr "" -#: js/block.js:1512 -#: js/WidgetBlocks.js:577 -#.TRANS: the speed at music is should be played. -msgid "tempo" +#: js/activity.js:2241 +msgid "chord name" msgstr "" -#: js/block.js:1519 -#: js/block.js:1582 -#: js/IntervalsBlocks.js:1268 -#.TRANS: mode, e.g., Major in C Major -msgid "mode" +#: js/activity.js:2244 +#: js/palette.js:615 +msgid "interval name" msgstr "" -#: js/block.js:1526 -msgid "slider" +#: js/activity.js:2247 +msgid "filter type" msgstr "" -#: js/block.js:1533 -#: js/SensorsBlocks.js:1001 -msgid "keyboard" +#: js/activity.js:2250 +msgid "oscillator type" msgstr "" -#: js/block.js:1547 -#: js/WidgetBlocks.js:957 -#: js/WidgetBlocks.js:988 -#.TRANS: widget for subdividing a measure into distinct rhythmic elements -msgid "rhythm maker" +#: js/activity.js:2253 +#: js/blocks.js:2479 +#: js/blocks.js:2487 +msgid "audio file" msgstr "" -#: js/block.js:1554 -#: js/block.js:2182 -#: js/block.js:2236 -#: js/RhythmBlockPaletteBlocks.js:70 -#: js/RhythmBlockPaletteBlocks.js:251 -#: js/RhythmBlockPaletteBlocks.js:484 -#: js/RhythmBlockPaletteBlocks.js:553 -#: js/RhythmBlockPaletteBlocks.js:604 -#: js/RhythmBlockPaletteBlocks.js:874 -#: js/RhythmBlocks.js:33 -#: js/RhythmBlocks.js:356 -#: js/RhythmBlocks.js:766 -#: js/RhythmBlocks.js:806 -#: js/OrnamentBlocks.js:220 -#: js/OrnamentBlocks.js:312 -#: js/MeterBlocks.js:1367 -#: js/DictActions.js:85 -#: js/phrasemaker.js:731 -#: js/phrasemaker.js:2393 -#: js/phrasemaker.js:2436 -#: js/phrasemaker.js:2534 -#.TRANS: the value (e.g., 1/4 note) of the note being played. -msgid "note value" +#: js/activity.js:2256 +#: js/blocks/DrumBlocks.js:32 +msgid "noise name" msgstr "" -#: js/block.js:1561 -#: js/block.js:2110 -#: js/block.js:2133 -#: js/IntervalsBlocks.js:875 -#: js/OrnamentBlocks.js:312 -#.TRANS: calculate a relative step between notes based on semi-tones -msgid "scalar interval" +#: js/activity.js:2259 +#: js/blocks/DrumBlocks.js:75 +msgid "drum name" msgstr "" -#: js/block.js:1568 -#: js/RhythmBlocks.js:148 -msgid "milliseconds" +#: js/activity.js:2262 +#: js/blocks/DrumBlocks.js:119 +msgid "effects name" msgstr "" -#: js/block.js:2180 -#: js/block.js:2184 -#: js/block.js:2234 -#: js/block.js:2345 -#: js/ProgramBlocks.js:1273 -#: js/RhythmBlocks.js:712 -#: js/rhythmruler.js:834 -#: js/rhythmruler.js:961 -msgid "silence" +#: js/activity.js:2265 +msgid "wrap mode" msgstr "" -#: js/block.js:2265 -#: js/block.js:3134 -#: js/block.js:3151 -#: js/activity.js:2336 -#: js/activity.js:2387 -#: js/musicutils.js:2932 -#: js/musicutils.js:4287 -#.TRANS: the note names must be separated by single spaces -#.TRANS: the note names must be separated by single spaces -msgid "ti la sol fa mi re do" +#: js/activity.js:2268 +msgid "load file" msgstr "" -#: js/block.js:2333 -#.TRANS: scalar step -msgid "down" +#: js/activity.js:2435 +#: js/activity.js:5851 +msgid "This block is deprecated." msgstr "" -#: js/block.js:2334 -msgid "up" +#: js/activity.js:2437 +#: js/activity.js:5853 +msgid "Block cannot be found." msgstr "" -#: js/block.js:3477 -#: js/block.js:3490 -#: js/ExtrasBlocks.js:612 -msgid "Cartesian" +#: js/activity.js:2645 +msgid "Saving block artwork" msgstr "" -#: js/block.js:3478 -#: js/block.js:3491 -#: js/ExtrasBlocks.js:616 -msgid "polar" +#: js/activity.js:2656 +msgid "Erase" msgstr "" -#: js/block.js:3479 -#: js/block.js:3492 -#: js/ExtrasBlocks.js:620 -msgid "Cartesian+polar" +#: js/activity.js:2683 +#: js/activity.js:2705 +msgid "Paste" msgstr "" -#: js/block.js:3480 -#: js/block.js:3499 -#: js/ExtrasBlocks.js:649 -msgid "none" +#: js/activity.js:2687 +msgid "Save block help" msgstr "" -#: js/block.js:3493 -#: js/ExtrasBlocks.js:625 -msgid "treble" +#: js/activity.js:2772 +msgid "Jumping to the bottom of the page." msgstr "" -#: js/block.js:3494 -#: js/ExtrasBlocks.js:629 -msgid "grand staff" +#: js/activity.js:2778 +msgid "Scrolling up." msgstr "" -#: js/block.js:3495 -#: js/ExtrasBlocks.js:633 -msgid "mezzo-soprano" +#: js/activity.js:2783 +msgid "Scrolling down." msgstr "" -#: js/block.js:3496 -#: js/ExtrasBlocks.js:637 -msgid "alto" +#: js/activity.js:2788 +msgid "Extracting block" msgstr "" -#: js/block.js:3497 -#: js/ExtrasBlocks.js:641 -msgid "tenor" +#: js/activity.js:2796 +msgid "Moving block up." msgstr "" -#: js/block.js:3498 -#: js/ExtrasBlocks.js:645 -#: js/musicutils.js:736 -#: js/synthutils.js:64 -#.TRANS: musical instrument -msgid "bass" +#: js/activity.js:2817 +msgid "Moving block down." msgstr "" -#: js/block.js:4075 -msgid "Not a number" +#: js/activity.js:2838 +msgid "Moving block left." msgstr "" -#: js/block.js:4082 -msgid "Octave value must be between 1 and 10." +#: js/activity.js:2855 +msgid "Moving block right." msgstr "" -#: js/block.js:4090 -msgid "Numbers can have at most 10 digits." +#: js/activity.js:2870 +msgid "Jump to home position." msgstr "" -#: js/notation.js:353 -msgid "Lilypond cannot process pickup of " +#: js/activity.js:2897 +msgid "Hide blocks" msgstr "" -#: js/turtledefs.js:40 -#.TRANS: put the URL to the guide here, e.g., https://github.com/sugarlabs/turtleblocksjs/tree/master/guide/README.md -msgid "guide url" +#: js/activity.js:4500 +msgid "Click the run button to run the project." msgstr "" -#: js/turtledefs.js:85 -#: js/turtledefs.js:437 -msgid "Turtle Blocks is a Logo-inspired turtle that draws colorful pictures with snap-together visual-programming blocks." +#: js/activity.js:5692 +msgid "Show/hide block" msgstr "" -#: js/turtledefs.js:118 -#: js/turtledefs.js:220 -msgid "search" +#: js/activity.js:5698 +msgid "Expand/collapse blocks" msgstr "" -#: js/turtledefs.js:120 -#: js/turtledefs.js:222 -#: js/WidgetBlocks.js:437 -#: js/MeterBlocks.js:1343 -#.TRANS: musical meter (time signature), e.g., 4:4 -msgid "meter" +#: js/activity.js:5976 +msgid "Could not parse JSON input." msgstr "" -#: js/turtledefs.js:122 -#: js/turtledefs.js:224 -msgid "intervals" +#: js/activity.js:6475 +#: js/activity.js:6580 +#: js/activity.js:6631 +msgid "Cannot load project from the file. Please check the file type." msgstr "" -#: js/turtledefs.js:124 -#: js/turtledefs.js:226 -msgid "ornament" +#: js/activity.js:6917 +msgid "Invalid parameters" msgstr "" -#: js/turtledefs.js:125 -#: js/turtledefs.js:227 -#: js/VolumeBlocks.js:362 -#: js/VolumeBlocks.js:502 -#: js/VolumeBlocks.js:545 -msgid "volume" +#: js/blocks.js:1212 +#: js/blocks.js:3444 +#: js/blocks.js:3834 +#: js/blocks.js:3865 +#: js/blocks.js:3914 +#: js/blocks.js:3949 +#: js/blocks.js:6586 +#: js/palette.js:509 +#: js/palette.js:638 +#: js/palette.js:1105 +#: js/blocks/BoxesBlocks.js:282 +#: js/blocks/BoxesBlocks.js:285 +#: js/blocks/BoxesBlocks.js:405 +#: js/blocks/BoxesBlocks.js:594 +msgid "box" msgstr "" -#: js/turtledefs.js:129 -#: js/turtledefs.js:231 -msgid "boxes" +#: js/blocks.js:1713 +msgid "Consider breaking this stack into parts." msgstr "" -#: js/turtledefs.js:130 -#: js/turtledefs.js:232 -msgid "widgets" +#: js/blocks.js:2472 +#: js/palette.js:653 +#: js/blocks/MediaBlocks.js:602 +msgid "open file" msgstr "" -#: js/turtledefs.js:131 -#: js/turtledefs.js:233 -#: js/phrasemaker.js:824 -msgid "graphics" +#: js/blocks.js:3247 +#: js/palette.js:574 +#: js/blocks/MediaBlocks.js:892 +#: js/blocks/MediaBlocks.js:963 +msgid "text" msgstr "" -#: js/turtledefs.js:134 -#: js/turtledefs.js:236 -msgid "boolean" +#: js/blocks.js:3443 +#: js/palette.js:641 +#: js/palette.js:642 +#: js/blocks/BoxesBlocks.js:514 +msgid "store in box" msgstr "" -#: js/turtledefs.js:137 -#: js/turtledefs.js:239 -#: js/HeapBlocks.js:59 -#: js/status.js:147 -msgid "heap" +#: js/blocks.js:3448 +#: js/blocks.js:3888 +#: js/blocks.js:3923 +#: js/blocks.js:3958 +#: js/blocks.js:5862 +#: js/blocks.js:5883 +#: js/blocks/BoxesBlocks.js:772 +msgid "box1" msgstr "" -#: js/turtledefs.js:138 -#: js/turtledefs.js:240 -#: js/ProgramBlocks.js:495 -#: js/DictBlocks.js:142 -msgid "dictionary" +#: js/blocks.js:3450 +#: js/blocks.js:3890 +#: js/blocks.js:3925 +#: js/blocks.js:3960 +#: js/blocks.js:5864 +#: js/blocks.js:5885 +#: js/blocks/BoxesBlocks.js:663 +msgid "box2" msgstr "" -#: js/turtledefs.js:139 -#: js/turtledefs.js:241 -msgid "ensemble" +#: js/blocks.js:4122 +#: js/palette.js:639 +#: js/palette.js:644 +#: js/palette.js:1041 +#: js/blocks/BoxesBlocks.js:591 +msgid "store in" msgstr "" -#: js/turtledefs.js:140 -#: js/turtledefs.js:242 -msgid "extras" +#: js/blocks.js:4122 +#: js/blocks/BoxesBlocks.js:595 +#: js/blocks/DictBlocks.js:215 +#: js/blocks/DictBlocks.js:289 +#: js/blocks/EnsembleBlocks.js:391 +#: js/blocks/EnsembleBlocks.js:402 +#: js/blocks/MediaBlocks.js:746 +#: js/blocks/PitchBlocks.js:656 +#: js/blocks/PitchBlocks.js:934 +#: js/blocks/PitchBlocks.js:1866 +#: js/blocks/ProgramBlocks.js:390 +#: js/blocks/ProgramBlocks.js:495 +#: js/blocks/ProgramBlocks.js:658 +#: js/blocks/ToneBlocks.js:1025 +msgid "name" msgstr "" -#: js/turtledefs.js:142 -#: js/turtledefs.js:244 -#.TRANS: program as in computer program -#.TRANS: program as in computer program -msgid "program" +#: js/blocks.js:4122 +#: js/blocks/BoxesBlocks.js:75 +#: js/blocks/BoxesBlocks.js:595 +#: js/blocks/DictBlocks.js:289 +#: js/blocks/DictBlocks.js:430 +#: js/blocks/HeapBlocks.js:544 +#: js/blocks/RhythmBlocks.js:1130 +msgid "value" msgstr "" -#: js/turtledefs.js:143 -#: js/turtledefs.js:245 -msgid "my blocks" +#: js/blocks.js:4465 +msgid "Forever loop detected inside a note value block. Unexpected things may happen." msgstr "" -#: js/turtledefs.js:185 -#: js/turtledefs.js:281 -msgid "artwork" +#: js/blocks.js:4988 +msgid "There is no block selected." msgstr "" -#: js/turtledefs.js:185 -#: js/turtledefs.js:281 -msgid "logic" +#: js/blocks.js:5091 +#: js/blocks/MediaBlocks.js:888 +msgid "show" msgstr "" -#: js/turtledefs.js:185 -#: js/turtledefs.js:281 -msgid "music" +#: js/blocks.js:5094 +#: js/blocks/MediaBlocks.js:803 +#.TRANS: Avatar is the image used to determine the appearance of the mouse. +msgid "avatar" msgstr "" -#: js/turtledefs.js:187 -#: js/turtledefs.js:463 -msgid "Music Blocks is a collection of tools for exploring fundamental musical concepts in a fun way." +#: js/blocks.js:5097 +#: js/blocks/ToneBlocks.js:1010 +#: js/widgets/sampler.js:975 +#.TRANS: The sound sample that the user uploads. +msgid "sample" msgstr "" -#: js/turtledefs.js:436 -msgid "Welcome to Turtle Blocks" +#: js/lilypond.js:606 +msgid "brown rat" msgstr "" -#: js/turtledefs.js:438 -#: js/turtledefs.js:465 -#: js/turtledefs.js:774 -#: js/turtledefs.js:805 -msgid "The current version is" +#: js/lilypond.js:607 +msgid "mole" msgstr "" -#: js/turtledefs.js:446 -#: js/turtledefs.js:483 -msgid "Click the run button to run the project in fast mode." +#: js/lilypond.js:608 +msgid "chipmunk" msgstr "" -#: js/turtledefs.js:452 -msgid "Stop the turtle." +#: js/lilypond.js:609 +msgid "red squirrel" msgstr "" -#: js/turtledefs.js:454 -#: js/turtledefs.js:491 -msgid "You can also type Alt-S to stop." +#: js/lilypond.js:610 +msgid "guinea pig" +msgstr "" + +#: js/lilypond.js:611 +msgid "capybara" msgstr "" -#: js/turtledefs.js:462 -#: js/help.js:333 -msgid "Welcome to Music Blocks" +#: js/lilypond.js:612 +msgid "coypu" msgstr "" -#: js/turtledefs.js:472 -#: js/help.js:334 -msgid "Meet Mr. Mouse!" +#: js/lilypond.js:613 +msgid "black rat" msgstr "" -#: js/turtledefs.js:473 -msgid "Mr Mouse is our Music Blocks conductor." +#: js/lilypond.js:614 +msgid "grey squirrel" msgstr "" -#: js/turtledefs.js:475 -msgid "Mr Mouse encourages you to explore Music Blocks." +#: js/lilypond.js:615 +msgid "flying squirrel" msgstr "" -#: js/turtledefs.js:477 -msgid "Let us start our tour!" +#: js/lilypond.js:616 +msgid "bat" msgstr "" -#: js/turtledefs.js:489 -msgid "Stop the music (and the mice)." +#: js/lilypond.js:749 +#: js/lilypond.js:913 +#: js/lilypond.js:951 +#: js/blocks/ActionBlocks.js:1256 +#: js/blocks/ExtrasBlocks.js:556 +msgid "start drum" msgstr "" -#: js/turtledefs.js:499 -msgid "Record your project as video." +#: js/logo.js:61 +msgid "Not a valid pitch name" msgstr "" -#: js/turtledefs.js:505 -msgid "Toggle Fullscreen mode." +#: js/logo.js:507 +#: js/blocks/ProgramBlocks.js:258 +#: js/blocks/ProgramBlocks.js:427 +msgid "You must select a file." msgstr "" -#: js/turtledefs.js:511 -msgid "Initialize a new project." +#: js/logo.js:1696 +msgid "Playback is ready." msgstr "" -#: js/turtledefs.js:517 -msgid "You can also load projects from the file system." +#: js/macros.js:711 +#: js/utils/musicutils.js:1162 +#: js/utils/synthutils.js:202 +#.TRANS: animal sound effect +msgid "duck" msgstr "" -#: js/turtledefs.js:522 -#: js/StringHelper.js:46 -msgid "Delete" +#: js/notation.js:353 +msgid "Lilypond cannot process pickup of " msgstr "" -#: js/turtledefs.js:523 -msgid "To delete a block, just right-click on it, then you will be able to see the delete option" +#: js/palette.js:571 +msgid "grid" msgstr "" -#: js/turtledefs.js:528 -#: js/activity.js:2270 -#: js/LocalCard.js:31 -msgid "Copy" +#: js/palette.js:580 +msgid "effect" msgstr "" -#: js/turtledefs.js:529 -msgid "To copy a block, just right-click on it, then you will be able to see the copy option" +#: js/palette.js:586 +msgid "sargam" msgstr "" -#: js/turtledefs.js:535 -msgid "To extract a block, just right-click on it, then you will be able to see the extract option" +#: js/palette.js:601 +#: js/blocks/PitchBlocks.js:1209 +msgid "custom pitch" msgstr "" -#: js/turtledefs.js:542 -#: js/turtledefs.js:552 -#: js/turtledefs.js:573 -msgid "Save your project to a file." +#: js/palette.js:609 +msgid "accidental" msgstr "" -#: js/turtledefs.js:549 -#: js/turtledefs.js:570 -msgid "save" +#: js/palette.js:633 +#: js/blocks/PitchBlocks.js:405 +msgid "pitch converter" msgstr "" -#: js/turtledefs.js:556 -#: js/turtledefs.js:577 -msgid "Save graphics from your project to as SVG." +#: js/piemenus.js:200 +#: js/utils/musicutils.js:1187 +#: js/utils/musicutils.js:1207 +#: js/widgets/musickeyboard.js:2341 +#: js/widgets/phrasemaker.js:1908 +#: js/widgets/sampler.js:810 +#.TRANS: double sharp is a music term related to pitch +msgid "double sharp" msgstr "" -#: js/turtledefs.js:560 -#: js/turtledefs.js:581 -msgid "Save graphics from your project as PNG." +#: js/piemenus.js:201 +#: js/utils/musicutils.js:1185 +#: js/utils/musicutils.js:1208 +#: js/blocks/PitchBlocks.js:1539 +#: js/turtleactions/PitchActions.js:323 +#: js/widgets/musickeyboard.js:2342 +#: js/widgets/phrasemaker.js:1909 +#: js/widgets/sampler.js:811 +#.TRANS: sharp is a music term related to pitch +#.TRANS: sharp is a half-step up in pitch +msgid "sharp" msgstr "" -#: js/turtledefs.js:564 -#: js/turtledefs.js:597 -msgid "Save block artwork as an SVG file." +#: js/piemenus.js:202 +#: js/utils/musicutils.js:1183 +#: js/utils/musicutils.js:1209 +#: js/widgets/musickeyboard.js:2343 +#: js/widgets/phrasemaker.js:1910 +#: js/widgets/sampler.js:812 +#.TRANS: natural is a music term related to pitch +msgid "natural" msgstr "" -#: js/turtledefs.js:585 -msgid "Save audio from your project as WAV." +#: js/piemenus.js:203 +#: js/utils/musicutils.js:1181 +#: js/utils/musicutils.js:1210 +#: js/blocks/PitchBlocks.js:1498 +#: js/turtleactions/PitchActions.js:326 +#: js/widgets/musickeyboard.js:2344 +#: js/widgets/phrasemaker.js:1911 +#: js/widgets/sampler.js:813 +#.TRANS: flat is a music term related to pitch +#.TRANS: flat is a half-step down in pitch +msgid "flat" msgstr "" -#: js/turtledefs.js:589 -msgid "Save your project to as an ABC file." +#: js/piemenus.js:204 +#: js/utils/musicutils.js:1179 +#: js/utils/musicutils.js:1211 +#: js/widgets/musickeyboard.js:2345 +#: js/widgets/phrasemaker.js:1912 +#: js/widgets/sampler.js:814 +#.TRANS: double flat is a music term related to pitch +msgid "double flat" msgstr "" -#: js/turtledefs.js:593 -msgid "Save your project to as a Lilypond file." +#: js/piemenus.js:2864 +#: js/utils/musicutils.js:1006 +#: js/blocks/PitchBlocks.js:1385 +#.TRANS: unison is a music term related to intervals +#.TRANS: unison means the note is the same as the current note +msgid "unison" msgstr "" -#: js/turtledefs.js:604 -msgid "Load samples from server" +#: js/piemenus.js:3018 +#: js/piemenus.js:3091 +#: js/utils/musicutils.js:1014 +#: js/utils/musicutils.js:1189 +#: js/utils/musicutils.js:1326 +#.TRANS: major is a music term related to intervals and mode +msgid "major" msgstr "" -#: js/turtledefs.js:605 -msgid "This button opens a viewer for loading example projects." +#: js/piemenus.js:3018 +#: js/piemenus.js:3091 +#: js/utils/musicutils.js:1032 +#.TRANS: modal scale for music +msgid "ionian" msgstr "" -#: js/turtledefs.js:611 -msgid "Palette buttons" +#: js/piemenus.js:3020 +#: js/piemenus.js:3095 +#: js/utils/musicutils.js:1012 +#: js/utils/musicutils.js:1190 +#: js/utils/musicutils.js:1323 +#.TRANS: minor is a music term related to intervals and mode +msgid "minor" msgstr "" -#: js/turtledefs.js:612 -msgid "This toolbar contains the palette buttons including Rhythm Pitch Tone Action and more." +#: js/piemenus.js:3020 +#: js/piemenus.js:3095 +#: js/utils/musicutils.js:1042 +#.TRANS: modal scale for music +msgid "aeolian" msgstr "" -#: js/turtledefs.js:614 -msgid "Click to show the palettes of blocks and drag blocks from the palettes onto the canvas to use them." +#: js/piemenus.js:3410 +msgid "Duplicate" msgstr "" -#: js/turtledefs.js:620 -msgid "Cartesian/Polar" +#: js/piemenus.js:3412 +msgid "Move to trash" msgstr "" -#: js/turtledefs.js:621 -msgid "Show or hide a coordinate grid." +#: js/piemenus.js:3413 +#: js/widgets/timbre.js:968 +#: planet/js/StringHelper.js:69 +msgid "Close" msgstr "" -#: js/turtledefs.js:627 -msgid "Clear the screen and return the mice to their initial positions." +#: js/piemenus.js:3419 +msgid "Save stack" msgstr "" -#: js/turtledefs.js:633 -msgid "Collapse the graphics window." +#: js/piemenus.js:3449 +msgid "In order to copy a sample, you must reload the widget, import the sample again, and export it." msgstr "" -#: js/turtledefs.js:638 -#: js/activity.js:4256 -#: js/activity.js:4256 -msgid "Home" +#: js/piemenus.js:3812 +msgid "You have chosen key " msgstr "" -#: js/turtledefs.js:639 -msgid "Return all blocks to the center of the screen." +#: js/piemenus.js:3816 +msgid " for your pitch preview." msgstr "" -#: js/turtledefs.js:644 -msgid "Show/hide blocks" +#: js/turtle-singer.js:1363 +#.TRANS: partials are weighted components in a harmonic series +msgid "You must have at least one Partial block inside of a Weighted-partial block" msgstr "" -#: js/turtledefs.js:645 -msgid "Hide or show the blocks and the palettes." +#: js/turtle-singer.js:2077 +msgid "synth cannot play chords." msgstr "" -#: js/turtledefs.js:650 -msgid "Expand/collapse collapsable blocks" +#: js/utils/musicutils.js:505 +#: js/utils/musicutils.js:645 +#: js/widgets/pitchdrummatrix.js:228 +#: js/widgets/musickeyboard.js:2885 +msgid "rest" msgstr "" -#: js/turtledefs.js:651 -msgid "Expand or collapse start and action stacks." +#: js/utils/musicutils.js:689 +msgid "Perfect unison" msgstr "" -#: js/turtledefs.js:658 -#: js/activity.js:4265 -msgid "Decrease block size" +#: js/utils/musicutils.js:689 +msgid "Diminished second" msgstr "" -#: js/turtledefs.js:659 -msgid "Decrease the size of the blocks." +#: js/utils/musicutils.js:690 +msgid "Minor second" msgstr "" -#: js/turtledefs.js:664 -#: js/activity.js:4267 -msgid "Increase block size" +#: js/utils/musicutils.js:690 +msgid "Augmented unison" msgstr "" -#: js/turtledefs.js:665 -msgid "Increase the size of the blocks." +#: js/utils/musicutils.js:691 +msgid "Major second" msgstr "" -#: js/turtledefs.js:670 -msgid "Expand/collapse option toolbar" +#: js/utils/musicutils.js:691 +msgid "Diminished third" msgstr "" -#: js/turtledefs.js:671 -msgid "Click this button to expand or collapse the auxillary toolbar." +#: js/utils/musicutils.js:692 +msgid "Minor third" msgstr "" -#: js/turtledefs.js:676 -msgid "Run slow" +#: js/utils/musicutils.js:692 +msgid "Augmented second" msgstr "" -#: js/turtledefs.js:677 -msgid "Click to run the project in slow mode." +#: js/utils/musicutils.js:693 +msgid "Major third" msgstr "" -#: js/turtledefs.js:683 -msgid "Click to run the project step by step." +#: js/utils/musicutils.js:693 +msgid "Diminished fourth" msgstr "" -#: js/turtledefs.js:690 -msgid "Display statistics about your Music project." +#: js/utils/musicutils.js:694 +msgid "Perfect fourth" msgstr "" -#: js/turtledefs.js:697 -msgid "Delete a selected plugin." +#: js/utils/musicutils.js:694 +msgid "Augmented third" msgstr "" -#: js/turtledefs.js:704 -msgid "Enable scrolling" +#: js/utils/musicutils.js:695 +msgid "Diminished fifth" msgstr "" -#: js/turtledefs.js:705 -msgid "You can scroll the blocks on the canvas." +#: js/utils/musicutils.js:695 +msgid "Augmented fourth" msgstr "" -#: js/turtledefs.js:714 -msgid "Wrap Turtle" +#: js/utils/musicutils.js:696 +msgid "Perfect fifth" msgstr "" -#: js/turtledefs.js:715 -msgid "Turn Turtle wrapping On or Off." +#: js/utils/musicutils.js:696 +msgid "Diminished sixth" msgstr "" -#: js/turtledefs.js:725 -msgid "Restore blocks from the trash." +#: js/utils/musicutils.js:697 +msgid "Minor sixth" msgstr "" -#: js/turtledefs.js:732 -msgid "Switch mode" +#: js/utils/musicutils.js:697 +msgid "Augmented fifth" msgstr "" -#: js/turtledefs.js:733 -msgid "Switch between beginner and advance modes." +#: js/utils/musicutils.js:698 +msgid "Major sixth" msgstr "" -#: js/turtledefs.js:739 -msgid "Select your language preference." +#: js/utils/musicutils.js:698 +msgid "Diminished seventh" msgstr "" -#: js/turtledefs.js:745 -msgid "Keyboard shortcuts" +#: js/utils/musicutils.js:699 +msgid "Minor seventh" msgstr "" -#: js/turtledefs.js:746 -msgid "You can type d to create a do block and r to create a re block etc." +#: js/utils/musicutils.js:699 +msgid "Augmented sixth" msgstr "" -#: js/turtledefs.js:753 -msgid "Show these messages." +#: js/utils/musicutils.js:700 +msgid "Major seventh" msgstr "" -#: js/turtledefs.js:759 -#: js/turtledefs.js:790 -#: js/help.js:335 -msgid "Guide" +#: js/utils/musicutils.js:700 +msgid "Diminished octave" msgstr "" -#: js/turtledefs.js:760 -msgid "A detailed guide to Turtle Blocks is available." +#: js/utils/musicutils.js:701 +msgid "Perfect octave" msgstr "" -#: js/turtledefs.js:764 -msgid "Turtle Blocks Guide" +#: js/utils/musicutils.js:701 +msgid "Augmented seventh" msgstr "" -#: js/turtledefs.js:767 -#: js/turtledefs.js:798 -#: js/help.js:336 -msgid "About" +#: js/utils/musicutils.js:702 +msgid "Minor ninth" msgstr "" -#: js/turtledefs.js:768 -msgid "Turtle Blocks is an open source collection of tools for exploring musical concepts." +#: js/utils/musicutils.js:702 +msgid "Augmented octave" msgstr "" -#: js/turtledefs.js:770 -msgid "A full list of contributors can be found in the Turtle Blocks GitHub repository." +#: js/utils/musicutils.js:703 +msgid "Major ninth" msgstr "" -#: js/turtledefs.js:772 -msgid "Turtle Blocks is licensed under the AGPL." +#: js/utils/musicutils.js:703 +msgid "Diminished tenth" msgstr "" -#: js/turtledefs.js:780 -msgid "Turtle Blocks GitHub repository" +#: js/utils/musicutils.js:704 +msgid "Minor tenth" msgstr "" -#: js/turtledefs.js:783 -#: js/turtledefs.js:814 -#: js/help.js:337 -#: js/help.js:359 -msgid "Congratulations." +#: js/utils/musicutils.js:704 +msgid "Augmented ninth" msgstr "" -#: js/turtledefs.js:784 -msgid "You have finished the tour. Please enjoy Turtle Blocks!" +#: js/utils/musicutils.js:705 +msgid "Major tenth" msgstr "" -#: js/turtledefs.js:791 -msgid "A detailed guide to Music Blocks is available." +#: js/utils/musicutils.js:705 +msgid "Diminished eleventh" msgstr "" -#: js/turtledefs.js:795 -#: js/SaveInterface.js:76 -msgid "Music Blocks Guide" +#: js/utils/musicutils.js:706 +msgid "Perfect eleventh" msgstr "" -#: js/turtledefs.js:799 -msgid "Music Blocks is an open source collection of tools for exploring musical concepts." +#: js/utils/musicutils.js:706 +msgid "Augmented tenth" msgstr "" -#: js/turtledefs.js:801 -msgid "A full list of contributors can be found in the Music Blocks GitHub repository." +#: js/utils/musicutils.js:707 +msgid "Diminished twelfth" msgstr "" -#: js/turtledefs.js:803 -msgid "Music Blocks is licensed under the AGPL." +#: js/utils/musicutils.js:707 +msgid "Augmented eleventh" msgstr "" -#: js/turtledefs.js:811 -msgid "Music Blocks GitHub repository" +#: js/utils/musicutils.js:708 +msgid "Perfect twelfth" msgstr "" -#: js/turtledefs.js:815 -msgid "You have finished the tour. Please enjoy Music Blocks!" +#: js/utils/musicutils.js:708 +msgid "Diminished thirteenth" msgstr "" -#: js/activity.js:369 -msgid "Search for blocks" +#: js/utils/musicutils.js:709 +msgid "Minor thirteenth" msgstr "" -#: js/activity.js:1145 -msgid "Refresh your browser to change to advanced mode." +#: js/utils/musicutils.js:709 +msgid "Augmented fifth, plus an octave" msgstr "" -#: js/activity.js:1150 -msgid "Refresh your browser to change to beginner mode." +#: js/utils/musicutils.js:710 +msgid "Major thirteenth" msgstr "" -#: js/activity.js:1184 -msgid "Catching mice" +#: js/utils/musicutils.js:710 +msgid "Diminished seventh, plus an octave" msgstr "" -#: js/activity.js:1185 -msgid "Cleaning the instruments" +#: js/utils/musicutils.js:838 +#.TRANS: ordinal number. Please keep exactly one space between each number. +msgid "1st 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th" msgstr "" -#: js/activity.js:1186 -msgid "Testing key pieces" +#: js/utils/musicutils.js:1008 +#: js/utils/musicutils.js:1191 +#: js/utils/musicutils.js:1325 +#.TRANS: augmented is a music term related to intervals +msgid "augmented" msgstr "" -#: js/activity.js:1187 -msgid "Sight-reading" +#: js/utils/musicutils.js:1010 +#: js/utils/musicutils.js:1192 +#: js/utils/musicutils.js:1324 +#.TRANS: diminished is a music term related to intervals and mode +msgid "diminished" msgstr "" -#: js/activity.js:1188 -msgid "Combining math and music" +#: js/utils/musicutils.js:1016 +#: js/utils/musicutils.js:1322 +#: js/blocks/IntervalsBlocks.js:649 +#: js/turtleactions/IntervalsActions.js:120 +#: js/turtleactions/IntervalsActions.js:124 +#.TRANS: perfect is a music term related to intervals +msgid "perfect" +msgstr "" + +#: js/utils/musicutils.js:1018 +#.TRANS: twelve semi-tone scale for music +msgid "chromatic" msgstr "" -#: js/activity.js:1189 -msgid "Generating more blocks" +#: js/utils/musicutils.js:1019 +msgid "algerian" msgstr "" -#: js/activity.js:1190 -msgid "Do Re Mi Fa Sol La Ti Do" +#: js/utils/musicutils.js:1020 +msgid "spanish" msgstr "" -#: js/activity.js:1191 -msgid "Tuning string instruments" +#: js/utils/musicutils.js:1022 +#.TRANS: modal scale in music +msgid "octatonic" msgstr "" -#: js/activity.js:1192 -msgid "Pressing random keys" +#: js/utils/musicutils.js:1024 +#.TRANS: harmonic major scale in music +msgid "harmonic major" msgstr "" -#: js/activity.js:1351 -msgid "plugins will be removed upon restart." +#: js/utils/musicutils.js:1026 +#.TRANS: natural minor scales in music +msgid "natural minor" msgstr "" -#: js/activity.js:1360 -msgid "show Cartesian" +#: js/utils/musicutils.js:1028 +#.TRANS: harmonic minor scale in music +msgid "harmonic minor" msgstr "" -#: js/activity.js:1842 -msgid "output tools" +#: js/utils/musicutils.js:1030 +#.TRANS: melodic minor scale in music +msgid "melodic minor" msgstr "" -#: js/activity.js:1845 -msgid "custom note" +#: js/utils/musicutils.js:1034 +#.TRANS: modal scale for music +msgid "dorian" msgstr "" -#: js/activity.js:1848 -msgid "accidental name" +#: js/utils/musicutils.js:1036 +#.TRANS: modal scale for music +msgid "phrygian" msgstr "" -#: js/activity.js:1851 -#: js/PitchBlocks.js:855 -msgid "east indian solfege" +#: js/utils/musicutils.js:1038 +#.TRANS: modal scale for music +msgid "lydian" msgstr "" -#: js/activity.js:1854 -#: js/PitchBlocks.js:869 -msgid "note name" +#: js/utils/musicutils.js:1040 +#.TRANS: modal scale for music +msgid "mixolydian" msgstr "" -#: js/activity.js:1857 -#: js/IntervalsBlocks.js:94 -msgid "temperament name" +#: js/utils/musicutils.js:1044 +#.TRANS: modal scale for music +msgid "locrian" msgstr "" -#: js/activity.js:1863 -msgid "chord name" +#: js/utils/musicutils.js:1046 +#.TRANS: minor jazz scale for music +msgid "jazz minor" msgstr "" -#: js/activity.js:1869 -msgid "filter type" +#: js/utils/musicutils.js:1048 +#.TRANS: bebop scale for music +msgid "bebop" msgstr "" -#: js/activity.js:1872 -msgid "oscillator type" +#: js/utils/musicutils.js:1049 +msgid "arabic" msgstr "" -#: js/activity.js:1878 -#: js/DrumBlocks.js:32 -msgid "noise name" +#: js/utils/musicutils.js:1050 +msgid "byzantine" msgstr "" -#: js/activity.js:1881 -#: js/DrumBlocks.js:75 -msgid "drum name" +#: js/utils/musicutils.js:1052 +#.TRANS: musical scale for music by Verdi +msgid "enigmatic" msgstr "" -#: js/activity.js:1884 -#: js/DrumBlocks.js:119 -msgid "effects name" +#: js/utils/musicutils.js:1053 +msgid "ethiopian" msgstr "" -#: js/activity.js:1887 -msgid "wrap mode" +#: js/utils/musicutils.js:1055 +#.TRANS: Ethiopic scale for music +msgid "geez" msgstr "" -#: js/activity.js:1890 -msgid "load file" +#: js/utils/musicutils.js:1056 +msgid "hindu" msgstr "" -#: js/activity.js:2056 -msgid "This block is deprecated." +#: js/utils/musicutils.js:1057 +msgid "hungarian" msgstr "" -#: js/activity.js:2058 -msgid "Block cannot be found." +#: js/utils/musicutils.js:1059 +#.TRANS: minor Romanian scale for music +msgid "romanian minor" msgstr "" -#: js/activity.js:2266 -msgid "Saving block artwork" +#: js/utils/musicutils.js:1060 +msgid "spanish gypsy" msgstr "" -#: js/activity.js:2277 -msgid "Erase" +#: js/utils/musicutils.js:1062 +#.TRANS: musical scale for Mid-Eastern music +msgid "maqam" msgstr "" -#: js/activity.js:2301 -#: js/activity.js:2323 -msgid "Paste" +#: js/utils/musicutils.js:1064 +#.TRANS: minor blues scale for music +msgid "minor blues" msgstr "" -#: js/activity.js:2305 -msgid "Save block help" +#: js/utils/musicutils.js:1066 +#.TRANS: major blues scale for music +msgid "major blues" msgstr "" -#: js/activity.js:2390 -msgid "Jumping to the bottom of the page." +#: js/utils/musicutils.js:1067 +msgid "whole tone" msgstr "" -#: js/activity.js:2396 -msgid "Scrolling up." +#: js/utils/musicutils.js:1069 +#.TRANS: pentatonic is a general term that means "five note scale". This scale is typically known as "minor pentatonic" +msgid "minor pentatonic" msgstr "" -#: js/activity.js:2401 -msgid "Scrolling down." +#: js/utils/musicutils.js:1071 +#.TRANS: pentatonic is a general term that means "five note scale". This scale is typically known as "major pentatonic" +msgid "major pentatonic" msgstr "" -#: js/activity.js:2406 -msgid "Extracting block" +#: js/utils/musicutils.js:1072 +msgid "chinese" msgstr "" -#: js/activity.js:2414 -msgid "Moving block up." +#: js/utils/musicutils.js:1073 +msgid "egyptian" msgstr "" -#: js/activity.js:2435 -msgid "Moving block down." +#: js/utils/musicutils.js:1075 +#.TRANS: https://en.wikipedia.org/wiki/Hirajoshi_scale NOTE: There are three different versions of this scale +msgid "hirajoshi" msgstr "" -#: js/activity.js:2456 -msgid "Moving block left." +#: js/utils/musicutils.js:1076 +msgid "Japan" msgstr "" -#: js/activity.js:2473 -msgid "Moving block right." +#: js/utils/musicutils.js:1078 +#.TRANS: https://en.wikipedia.org/wiki/In_scale and https://en.wikipedia.org/wiki/Sakura_Sakura +msgid "in" msgstr "" -#: js/activity.js:2488 -msgid "Jump to home position." +#: js/utils/musicutils.js:1080 +#.TRANS: https://en.wikipedia.org/wiki/Miny%C5%8D_scale +msgid "minyo" msgstr "" -#: js/activity.js:2515 -msgid "Hide blocks" +#: js/utils/musicutils.js:1082 +#.TRANS: Italian mathematician +msgid "fibonacci" msgstr "" -#: js/activity.js:3389 -msgid "Click the run button to run the project." +#: js/utils/musicutils.js:1083 +#: js/utils/musicutils.js:1134 +#: js/utils/musicutils.js:1177 +#: js/utils/musicutils.js:1199 +#: js/utils/synthutils.js:134 +#: js/blocks/IntervalsBlocks.js:1124 +#: js/blocks/ToneBlocks.js:946 +#: js/blocks/VolumeBlocks.js:411 +#: js/blocks/WidgetBlocks.js:399 +#: js/blocks/WidgetBlocks.js:404 +#: js/turtleactions/VolumeActions.js:218 +#: js/widgets/modewidget.js:919 +#.TRANS: customize voice +msgid "custom" msgstr "" -#: js/activity.js:3456 -#: js/SaveInterface.js:131 -#: js/SaveInterface.js:204 -#: js/SaveInterface.js:262 -#: js/SaveInterface.js:389 -#: js/SaveInterface.js:417 -#: js/ProjectStorage.js:27 -#: js/GlobalPlanet.js:467 -#: js/GlobalPlanet.js:469 -#: js/GlobalPlanet.js:495 -#.TRANS: default project title when saving as Lilypond -msgid "My Project" +#: js/utils/musicutils.js:1085 +#: js/utils/musicutils.js:1531 +#: js/blocks/WidgetBlocks.js:176 +#.TRANS: highpass filter +msgid "highpass" msgstr "" -#: js/activity.js:4261 -msgid "Show/hide block" +#: js/utils/musicutils.js:1087 +#: js/utils/musicutils.js:1532 +#.TRANS: lowpass filter +msgid "lowpass" msgstr "" -#: js/activity.js:4263 -msgid "Expand/collapse blocks" +#: js/utils/musicutils.js:1089 +#: js/utils/musicutils.js:1533 +#.TRANS: bandpass filter +msgid "bandpass" msgstr "" -#: js/activity.js:4381 -msgid "Could not parse JSON input." +#: js/utils/musicutils.js:1091 +#: js/utils/musicutils.js:1534 +#.TRANS: high-shelf filter +msgid "highshelf" msgstr "" -#: js/activity.js:4684 -#: js/activity.js:4771 -#: js/activity.js:4821 -msgid "Cannot load project from the file. Please check the file type." +#: js/utils/musicutils.js:1093 +#: js/utils/musicutils.js:1535 +#.TRANS: low-shelf filter +msgid "lowshelf" msgstr "" -#: js/activity.js:5051 -msgid "Invalid parameters" +#: js/utils/musicutils.js:1095 +#: js/utils/musicutils.js:1536 +#.TRANS: notch-shelf filter +msgid "notch" msgstr "" -#: js/turtle-singer.js:1334 -#.TRANS: partials are weighted components in a harmonic series -msgid "You must have at least one Partial block inside of a Weighted-partial block" +#: js/utils/musicutils.js:1097 +#: js/utils/musicutils.js:1537 +#.TRANS: all-pass filter +msgid "allpass" msgstr "" -#: js/turtle-singer.js:2048 -msgid "synth cannot play chords." +#: js/utils/musicutils.js:1099 +#: js/utils/musicutils.js:1538 +#.TRANS: peaking filter +msgid "peaking" msgstr "" -#: js/lilypond.js:614 -msgid "brown rat" +#: js/utils/musicutils.js:1100 +#: js/utils/musicutils.js:1546 +#: js/utils/synthutils.js:126 +#: js/blocks/PitchBlocks.js:85 +#.TRANS: sine wave +msgid "sine" msgstr "" -#: js/lilypond.js:615 -msgid "mole" +#: js/utils/musicutils.js:1101 +#: js/utils/musicutils.js:1547 +#: js/utils/synthutils.js:128 +#: js/blocks/PitchBlocks.js:39 +#.TRANS: square wave +msgid "square" msgstr "" -#: js/lilypond.js:616 -msgid "chipmunk" +#: js/utils/musicutils.js:1102 +#: js/utils/musicutils.js:1548 +#: js/utils/synthutils.js:132 +#: js/blocks/PitchBlocks.js:62 +#: js/blocks/ToneBlocks.js:39 +#.TRANS: triangle wave +msgid "triangle" msgstr "" -#: js/lilypond.js:617 -msgid "red squirrel" +#: js/utils/musicutils.js:1103 +#: js/utils/musicutils.js:1549 +#: js/utils/synthutils.js:130 +#: js/blocks/PitchBlocks.js:108 +#.TRANS: sawtooth wave +msgid "sawtooth" msgstr "" -#: js/lilypond.js:618 -msgid "guinea pig" +#: js/utils/musicutils.js:1105 +#: js/utils/musicutils.js:1312 +#: js/blocks/PitchBlocks.js:931 +#: js/blocks/PitchBlocks.js:937 +#: js/turtleactions/PitchActions.js:469 +#.TRANS: even numbers +#.TRANS: invert based on even or odd number or musical scale +msgid "even" msgstr "" -#: js/lilypond.js:619 -msgid "capybara" +#: js/utils/musicutils.js:1107 +#: js/utils/musicutils.js:1313 +#: js/blocks/PitchBlocks.js:937 +#: js/turtleactions/PitchActions.js:471 +#.TRANS: odd numbers +msgid "odd" msgstr "" -#: js/lilypond.js:620 -msgid "coypu" +#: js/utils/musicutils.js:1108 +#: js/utils/musicutils.js:1314 +#: js/blocks/PitchBlocks.js:937 +#: js/turtleactions/PitchActions.js:473 +msgid "scalar" msgstr "" -#: js/lilypond.js:621 -msgid "black rat" +#: js/utils/musicutils.js:1109 +#: js/utils/synthutils.js:72 +#: js/blocks/VolumeBlocks.js:47 +#.TRANS: musical instrument +msgid "piano" msgstr "" -#: js/lilypond.js:622 -msgid "grey squirrel" +#: js/utils/musicutils.js:1110 +#: js/utils/synthutils.js:74 +#.TRANS: musical instrument +msgid "violin" msgstr "" -#: js/lilypond.js:623 -msgid "flying squirrel" +#: js/utils/musicutils.js:1111 +#: js/utils/synthutils.js:76 +#.TRANS: viola musical instrument +msgid "viola" msgstr "" -#: js/lilypond.js:624 -msgid "bat" +#: js/utils/musicutils.js:1112 +#: js/utils/synthutils.js:114 +#.TRANS: xylophone musical instrument +msgid "xylophone" msgstr "" -#: js/lilypond.js:757 -#: js/lilypond.js:921 -#: js/lilypond.js:959 -#: js/ActionBlocks.js:1256 -#: js/ExtrasBlocks.js:553 -msgid "start drum" +#: js/utils/musicutils.js:1113 +#: js/utils/synthutils.js:136 +#.TRANS: vibraphone musical instrument +msgid "vibraphone" msgstr "" -#: js/SaveInterface.js:59 -#: js/SaveInterface.js:61 -#: js/SaveInterface.js:93 -msgid "Music Blocks Project" +#: js/utils/musicutils.js:1114 +#: js/utils/synthutils.js:78 +#.TRANS: musical instrument +msgid "cello" msgstr "" -#: js/SaveInterface.js:63 -msgid "This project was created in Music Blocks" +#: js/utils/musicutils.js:1116 +#: js/utils/synthutils.js:82 +#.TRANS: viola musical instrument +msgid "double bass" msgstr "" -#: js/SaveInterface.js:67 -msgid "Music Blocks is a Free/Libre Software application." +#: js/utils/musicutils.js:1117 +#: js/utils/synthutils.js:84 +#: js/widgets/rhythmruler.js:2511 +#.TRANS: musical instrument +msgid "guitar" msgstr "" -#: js/SaveInterface.js:69 -msgid "The source code can be accessed at" +#: js/utils/musicutils.js:1118 +#: js/utils/synthutils.js:86 +#.TRANS: musical instrument +msgid "acoustic guitar" msgstr "" -#: js/SaveInterface.js:72 -msgid "For more information, please consult the" +#: js/utils/musicutils.js:1119 +#: js/utils/synthutils.js:88 +#.TRANS: musical instrument +msgid "flute" msgstr "" -#: js/SaveInterface.js:83 -msgid "Alternatively, open the file in Music Blocks using the Load project button." +#: js/utils/musicutils.js:1120 +#: js/utils/synthutils.js:90 +#.TRANS: musical instrument +msgid "clarinet" msgstr "" -#: js/SaveInterface.js:85 -msgid "Project Code" +#: js/utils/musicutils.js:1121 +#: js/utils/synthutils.js:92 +#.TRANS: musical instrument +msgid "saxophone" msgstr "" -#: js/SaveInterface.js:87 -msgid "This code stores data about the blocks in a project." +#: js/utils/musicutils.js:1122 +#: js/utils/synthutils.js:94 +#.TRANS: musical instrument +msgid "tuba" msgstr "" -#: js/SaveInterface.js:89 -msgid "Show" +#: js/utils/musicutils.js:1123 +#: js/utils/synthutils.js:96 +#.TRANS: musical instrument +msgid "trumpet" msgstr "" -#: js/SaveInterface.js:91 -msgid "Hide" +#: js/utils/musicutils.js:1124 +#: js/utils/synthutils.js:98 +#.TRANS: musical instrument +msgid "oboe" msgstr "" -#: js/SaveInterface.js:197 -#: js/SaveInterface.js:58 -msgid "No description provided" +#: js/utils/musicutils.js:1125 +#: js/utils/synthutils.js:100 +#.TRANS: musical instrument +msgid "trombone" msgstr "" -#: js/SaveInterface.js:332 -msgid "Your recording is in progress." +#: js/utils/musicutils.js:1126 +#: js/utils/synthutils.js:116 +#.TRANS: polytone synthesizer +msgid "electronic synth" msgstr "" -#: js/SaveInterface.js:401 -#.TRANS: File name prompt for save as Lilypond -msgid "File name" +#: js/utils/musicutils.js:1127 +#: js/utils/synthutils.js:118 +#.TRANS: simple monotone synthesizer +msgid "simple 1" msgstr "" -#: js/SaveInterface.js:403 -#: js/StringHelper.js:39 -#.TRANS: Project title prompt for save as Lilypond -msgid "Project title" +#: js/utils/musicutils.js:1128 +msgid "simple 2" msgstr "" -#: js/SaveInterface.js:405 -#.TRANS: Project title prompt for save as Lilypond -msgid "Project author" +#: js/utils/musicutils.js:1129 +msgid "simple 3" msgstr "" -#: js/SaveInterface.js:407 -#.TRANS: MIDI prompt for save as Lilypond -msgid "Include MIDI output?" +#: js/utils/musicutils.js:1130 +msgid "simple 4" msgstr "" -#: js/SaveInterface.js:409 -#.TRANS: Guitar prompt for save as Lilypond -msgid "Include guitar tablature output?" +#: js/utils/musicutils.js:1131 +#: js/utils/synthutils.js:58 +#: js/blocks/DrumBlocks.js:191 +#.TRANS: white noise synthesizer +msgid "white noise" msgstr "" -#: js/SaveInterface.js:411 -#.TRANS: Lilypond is a scripting language for generating sheet music -msgid "Save as Lilypond" +#: js/utils/musicutils.js:1132 +#: js/utils/synthutils.js:60 +#.TRANS: brown noise synthesizer +msgid "brown noise" msgstr "" -#: js/SaveInterface.js:426 -#: js/EnsembleBlocks.js:75 -#: js/EnsembleBlocks.js:154 -#: js/EnsembleBlocks.js:216 -#: js/EnsembleBlocks.js:302 -#: js/EnsembleBlocks.js:348 -#: js/EnsembleBlocks.js:389 -#: js/EnsembleBlocks.js:441 -#: js/EnsembleBlocks.js:490 -#: js/EnsembleBlocks.js:536 -#: js/EnsembleBlocks.js:583 -#: js/EnsembleBlocks.js:637 -#: js/EnsembleBlocks.js:753 -#: js/EnsembleBlocks.js:840 -#: js/EnsembleBlocks.js:899 -#: js/EnsembleBlocks.js:942 -#: js/EnsembleBlocks.js:1212 -#: js/EnsembleBlocks.js:1280 -#.TRANS: default project author when saving as Lilypond -msgid "Mr. Mouse" +#: js/utils/musicutils.js:1133 +#: js/utils/synthutils.js:62 +#.TRANS: pink noise synthesizer +msgid "pink noise" msgstr "" -#: js/SaveInterface.js:573 -msgid "The Lilypond code is copied to clipboard. You can paste it here: " +#: js/utils/musicutils.js:1135 +#: js/utils/synthutils.js:148 +#: js/widgets/rhythmruler.js:2057 +#: js/widgets/rhythmruler.js:2319 +#.TRANS: musical instrument +msgid "snare drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:50 -#: js/RhythmBlockPaletteBlocks.js:232 -#.TRANS: rhythm block -#.TRANS: translate "rhythm1" as rhythm -msgid "rhythm1" +#: js/utils/musicutils.js:1136 +#: js/utils/synthutils.js:150 +#.TRANS: musical instrument +msgid "kick drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:70 -#: js/RhythmBlockPaletteBlocks.js:251 -#: js/RhythmBlockPaletteBlocks.js:484 -#: js/RhythmBlockPaletteBlocks.js:553 -#: js/RhythmBlockPaletteBlocks.js:874 -msgid "number of notes" +#: js/utils/musicutils.js:1137 +#: js/utils/synthutils.js:152 +#.TRANS: musical instrument +msgid "tom tom" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:126 -msgid "polyphonic rhythm" +#: js/utils/musicutils.js:1138 +#: js/utils/synthutils.js:154 +#.TRANS: musical instrument +msgid "floor tom" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:218 -msgid "The Rhythm block is used to generate rhythm patterns." +#: js/utils/musicutils.js:1139 +#: js/utils/synthutils.js:156 +#.TRANS: musical instrument +msgid "bass drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:279 -msgid "1/64 note" +#: js/utils/musicutils.js:1140 +#: js/utils/synthutils.js:158 +#.TRANS: a drum made from an inverted cup +msgid "cup drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:303 -msgid "1/32 note" +#: js/utils/musicutils.js:1141 +#: js/utils/synthutils.js:160 +#.TRANS: musical instrument +msgid "darbuka drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:331 -msgid "1/16 note" +#: js/utils/musicutils.js:1142 +#: js/utils/synthutils.js:164 +#.TRANS: musical instrument +msgid "hi hat" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:359 -msgid "eighth note" +#: js/utils/musicutils.js:1143 +#: js/utils/synthutils.js:166 +#.TRANS: a small metal bell +msgid "ride bell" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:387 -msgid "quarter note" +#: js/utils/musicutils.js:1144 +#: js/utils/synthutils.js:168 +#.TRANS: musical instrument +msgid "cow bell" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:415 -msgid "half note" +#: js/utils/musicutils.js:1145 +msgid "japanese drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:443 -msgid "whole note" +#: js/utils/musicutils.js:1146 +#: js/utils/synthutils.js:174 +#.TRANS: musical instrument +msgid "japanese bell" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:481 -#: js/RhythmBlockPaletteBlocks.js:550 -#: js/RhythmBlockPaletteBlocks.js:601 -#.TRANS: A tuplet is a note value divided into irregular time values. -msgid "tuplet" +#: js/utils/musicutils.js:1147 +#: js/utils/synthutils.js:170 +#.TRANS: musical instrument +msgid "triangle bell" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:767 -msgid "septuplet" +#: js/utils/musicutils.js:1148 +#: js/utils/synthutils.js:172 +#.TRANS: musical instrument +msgid "finger cymbals" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:795 -msgid "quintuplet" +#: js/utils/musicutils.js:1149 +#: js/utils/synthutils.js:176 +#.TRANS: a musically tuned set of bells +msgid "chime" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:823 -msgid "triplet" +#: js/utils/musicutils.js:1150 +#: js/utils/synthutils.js:178 +#.TRANS: a musical instrument +msgid "gong" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:850 -msgid "simple tuplet" +#: js/utils/musicutils.js:1151 +#: js/utils/synthutils.js:180 +#.TRANS: sound effect +msgid "clang" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:860 -msgid "Tuplets are a collection of notes that get scaled to a specific duration." +#: js/utils/musicutils.js:1152 +#: js/utils/synthutils.js:182 +#.TRANS: sound effect +msgid "crash" msgstr "" -#: js/WidgetBlocks.js:71 -#.TRANS: sound envelope (ADSR) -msgid "envelope" +#: js/utils/musicutils.js:1153 +#: js/utils/synthutils.js:184 +#.TRANS: sound effect +msgid "bottle" msgstr "" -#: js/WidgetBlocks.js:79 -#.TRANS: Attack time is the time taken for initial run-up of level from nil to peak, beginning when the key is first pressed. -msgid "attack" +#: js/utils/musicutils.js:1154 +#: js/utils/synthutils.js:186 +#.TRANS: sound effect +msgid "clap" msgstr "" -#: js/WidgetBlocks.js:81 -#.TRANS: Decay time is the time taken for the subsequent run down from the attack level to the designated sustain level. -msgid "decay" +#: js/utils/musicutils.js:1155 +#: js/utils/synthutils.js:188 +#.TRANS: sound effect +msgid "slap" msgstr "" -#: js/WidgetBlocks.js:83 -#.TRANS: Sustain level is the level during the main sequence of the sound's duration, until the key is released. -msgid "sustain" +#: js/utils/musicutils.js:1156 +#: js/utils/synthutils.js:190 +#.TRANS: sound effect +msgid "splash" msgstr "" -#: js/WidgetBlocks.js:85 -#.TRANS: Release time is the time taken for the level to decay from the sustain level to zero after the key is released. -msgid "release" +#: js/utils/musicutils.js:1157 +#: js/utils/synthutils.js:192 +#.TRANS: sound effect +msgid "bubbles" msgstr "" -#: js/WidgetBlocks.js:96 -msgid "Attack value should be from 0 to 100." +#: js/utils/musicutils.js:1158 +#: js/utils/synthutils.js:194 +#.TRANS: sound effect +msgid "raindrop" msgstr "" -#: js/WidgetBlocks.js:99 -msgid "Decay value should be from 0 to 100." +#: js/utils/musicutils.js:1159 +#: js/utils/synthutils.js:196 +#.TRANS: animal sound effect +msgid "cat" msgstr "" -#: js/WidgetBlocks.js:102 -msgid "Sustain value should be from 0 to 100." +#: js/utils/musicutils.js:1160 +#: js/utils/synthutils.js:198 +#.TRANS: animal sound effect +msgid "cricket" msgstr "" -#: js/WidgetBlocks.js:105 -msgid "Release value should be from 0-100." +#: js/utils/musicutils.js:1161 +#: js/utils/synthutils.js:200 +#.TRANS: animal sound effect +msgid "dog" msgstr "" -#: js/WidgetBlocks.js:121 -msgid "You are adding multiple envelope blocks." +#: js/utils/musicutils.js:1163 +#: js/utils/synthutils.js:102 +#.TRANS: musical instrument +msgid "banjo" msgstr "" -#: js/WidgetBlocks.js:144 -#.TRANS: a filter removes some unwanted components from a signal -msgid "filter" +#: js/utils/musicutils.js:1164 +#: js/utils/synthutils.js:104 +#.TRANS: musical instrument +msgid "koto" msgstr "" -#: js/WidgetBlocks.js:149 -#: js/musicutils.js:706 -#: js/musicutils.js:1105 -#.TRANS: highpass filter -msgid "highpass" +#: js/utils/musicutils.js:1165 +#: js/utils/synthutils.js:106 +#.TRANS: musical instrument +msgid "dulcimer" msgstr "" -#: js/WidgetBlocks.js:152 -#: js/ToneBlocks.js:42 -#: js/timbre.js:1558 -#: js/timbre.js:1808 -#.TRANS: type of filter, e.g., lowpass, highpass, etc. -#.TRANS: there are different types (sine, triangle, square...) of oscillators. -msgid "type" +#: js/utils/musicutils.js:1166 +#: js/utils/synthutils.js:108 +#.TRANS: musical instrument +msgid "electric guitar" msgstr "" -#: js/WidgetBlocks.js:154 -#: js/timbre.js:1818 -#.TRANS: rolloff is the steepness of a change in frequency. -msgid "rolloff" +#: js/utils/musicutils.js:1167 +#: js/utils/synthutils.js:110 +#.TRANS: musical instrument +msgid "bassoon" msgstr "" -#: js/WidgetBlocks.js:155 -#: js/MediaBlocks.js:692 -#: js/temperament.js:382 -#: js/temperament.js:417 -#: js/temperament.js:477 -#: js/temperament.js:485 -#: js/temperament.js:1348 -#: js/timbre.js:1842 -msgid "frequency" +#: js/utils/musicutils.js:1168 +#: js/utils/synthutils.js:112 +#.TRANS: musical instrument +msgid "celeste" msgstr "" -#: js/WidgetBlocks.js:179 -#.TRANS: rolloff is the steepness of a change in frequency. -msgid "Rolloff value should be either -12, -24, -48, or -96 decibels/octave." +#: js/utils/musicutils.js:1170 +#: js/widgets/temperament.js:787 +#.TRANS: musical temperament +msgid "equal" msgstr "" -#: js/WidgetBlocks.js:211 -msgid "The Temperament tool is used to define custom tuning." +#: js/utils/musicutils.js:1172 +#.TRANS: musical temperament +msgid "Pythagorean" msgstr "" -#: js/WidgetBlocks.js:277 -#: js/sampler.js:329 -msgid "Upload a sample and adjust its pitch center." +#: js/utils/musicutils.js:1174 +#.TRANS: musical temperament +msgid "just intonation" msgstr "" -#: js/WidgetBlocks.js:284 -#.TRANS: the speed at music is should be played. -msgid "sampler" +#: js/utils/musicutils.js:1176 +#.TRANS: musical temperament +msgid "meantone" msgstr "" -#: js/WidgetBlocks.js:329 -#: js/WidgetBlocks.js:334 -#: js/IntervalsBlocks.js:928 -#: js/VolumeBlocks.js:411 -#: js/ToneBlocks.js:946 -#: js/VolumeActions.js:218 -#: js/musicutils.js:704 -#: js/musicutils.js:755 -#: js/musicutils.js:798 -#: js/musicutils.js:820 -#: js/musicutils.js:1136 -#: js/synthutils.js:118 -#: js/modewidget.js:919 -#.TRANS: customize voice -msgid "custom" +#: js/utils/musicutils.js:1193 +msgid "major 7th" msgstr "" -#: js/WidgetBlocks.js:432 -msgid "The Meter block opens a tool to select strong beats for the meter." +#: js/utils/musicutils.js:1194 +msgid "minor 7th" msgstr "" -#: js/WidgetBlocks.js:473 -msgid "The oscilloscope block opens a tool to visualize waveforms." +#: js/utils/musicutils.js:1195 +msgid "dominant 7th" msgstr "" -#: js/WidgetBlocks.js:478 -msgid "oscilloscope" +#: js/utils/musicutils.js:1196 +msgid "minor-major 7th" msgstr "" -#: js/WidgetBlocks.js:530 -msgid "The Custom mode block opens a tool to explore musical mode (the spacing of the notes in a scale)." +#: js/utils/musicutils.js:1197 +msgid "fully-diminished 7th" msgstr "" -#: js/WidgetBlocks.js:536 -#.TRANS: musical mode is the pattern of half-steps in an octave, e.g., Major or Minor modes -msgid "custom mode" +#: js/utils/musicutils.js:1198 +msgid "half-diminished 7th" msgstr "" -#: js/WidgetBlocks.js:570 -msgid "The Tempo block opens a metronome to visualize the beat." +#: js/utils/musicutils.js:1557 +#: js/utils/musicutils.js:1569 +msgid "Equal (12EDO)" msgstr "" -#: js/WidgetBlocks.js:617 -msgid "The Arpeggio Widget is used to compose chord sequences." +#: js/utils/musicutils.js:1558 +#: js/utils/musicutils.js:1570 +msgid "5-limit Just Intonation" msgstr "" -#: js/WidgetBlocks.js:623 -#: js/IntervalsBlocks.js:683 -msgid "arpeggio" +#: js/utils/musicutils.js:1559 +#: js/utils/musicutils.js:1571 +msgid "Pythagorean (3-limit JI)" msgstr "" -#: js/WidgetBlocks.js:677 -msgid "The Pitch drum matrix is used to map pitches to drum sounds." +#: js/utils/musicutils.js:1560 +#: js/utils/musicutils.js:1561 +#: js/utils/musicutils.js:1572 +#: js/utils/musicutils.js:1573 +msgid "Meantone" msgstr "" -#: js/WidgetBlocks.js:682 -#.TRANS: makes a mapping between pitches and drum sounds -msgid "pitch-drum mapper" +#: js/utils/musicutils.js:1574 +msgid "Custom" msgstr "" -#: js/WidgetBlocks.js:724 -msgid "You must have at least one pitch block and one drum block in the matrix." +#: js/utils/musicutils.js:5387 +#: js/utils/musicutils.js:5430 +msgid "current" msgstr "" -#: js/WidgetBlocks.js:746 -msgid "The Pitch slider tool to is used to generate pitches at selected frequencies." +#: js/utils/musicutils.js:5390 +#: js/utils/musicutils.js:5421 +msgid "next" msgstr "" -#: js/WidgetBlocks.js:751 -#.TRANS: widget to generate pitches using a slider -msgid "pitch slider" +#: js/utils/musicutils.js:5393 +#: js/utils/musicutils.js:5426 +msgid "previous" msgstr "" -#: js/WidgetBlocks.js:788 -msgid "chromatic keyboard" +#: js/utils/synthutils.js:120 +#.TRANS: simple monotone synthesizer +msgid "simple-2" msgstr "" -#: js/WidgetBlocks.js:815 -#: js/WidgetBlocks.js:874 -#.TRANS: widget to generate pitches using a slider -msgid "music keyboard" +#: js/utils/synthutils.js:122 +#.TRANS: simple monotone synthesizer +msgid "simple-3" msgstr "" -#: js/WidgetBlocks.js:859 -#: js/WidgetBlocks.js:866 -msgid "The Music keyboard block opens a piano keyboard that can be used to create notes." +#: js/utils/synthutils.js:124 +#.TRANS: simple monotone synthesizer +msgid "simple-4" msgstr "" -#: js/WidgetBlocks.js:910 -msgid "The Pitch staircase tool to is used to generate pitches from a given ratio." +#: js/utils/synthutils.js:162 +#.TRANS: musical instrument +msgid "taiko" msgstr "" -#: js/WidgetBlocks.js:917 -#.TRANS: generate a progressive sequence of pitches -msgid "pitch staircase" +#: js/blocks/ActionBlocks.js:58 +msgid "The Return block will return a value from an action." msgstr "" -#: js/WidgetBlocks.js:982 -msgid "The Rhythm Maker block opens a tool to create drum machines." +#: js/blocks/ActionBlocks.js:75 +msgid "return" msgstr "" -#: js/WidgetBlocks.js:1036 -msgid "G major scale" +#: js/blocks/ActionBlocks.js:128 +msgid "The Return to URL block will return a value to a webpage." msgstr "" -#: js/WidgetBlocks.js:1064 -msgid "C major scale" +#: js/blocks/ActionBlocks.js:145 +msgid "return to URL" msgstr "" -#: js/WidgetBlocks.js:1097 -msgid "The Phrase Maker block opens a tool to create musical phrases." +#: js/blocks/ActionBlocks.js:233 +#: js/blocks/ActionBlocks.js:290 +#: js/blocks/ActionBlocks.js:501 +#: js/blocks/ActionBlocks.js:688 +msgid "The Calculate block returns a value calculated by an action." msgstr "" -#: js/WidgetBlocks.js:1104 -#.TRANS: assigns pitch to a sequence of beats to generate a melody -msgid "phrase maker" +#: js/blocks/ActionBlocks.js:251 +#: js/blocks/ActionBlocks.js:517 +#: js/blocks/ActionBlocks.js:707 +msgid "calculate" msgstr "" -#: js/WidgetBlocks.js:1168 -msgid "You must have at least one pitch block and one rhythm block in the matrix." +#: js/blocks/ActionBlocks.js:376 +#: js/blocks/ActionBlocks.js:593 +#: js/blocks/ActionBlocks.js:942 +#: js/blocks/ActionBlocks.js:1389 +#.TRANS: do is the do something or take an action. +msgid "The Do block is used to initiate an action." msgstr "" -#: js/WidgetBlocks.js:1220 -msgid "The Status block opens a tool for inspecting the status of Music Blocks as it is running." +#: js/blocks/ActionBlocks.js:390 +#: js/blocks/ActionBlocks.js:610 +#: js/blocks/ActionBlocks.js:959 +#: js/blocks/ActionBlocks.js:1048 +#: js/blocks/MeterBlocks.js:769 +msgid "do1" msgstr "" -#: js/IntervalsBlocks.js:45 -msgid "set temperament" +#: js/blocks/ActionBlocks.js:390 +#: js/blocks/ActionBlocks.js:610 +#: js/blocks/ActionBlocks.js:959 +#: js/blocks/ActionBlocks.js:1048 +#: js/blocks/FlowBlocks.js:742 +#: js/blocks/FlowBlocks.js:822 +#: js/blocks/MeterBlocks.js:769 +msgid "do" msgstr "" -#: js/IntervalsBlocks.js:63 -#: js/MediaBlocks.js:746 -#: js/PitchBlocks.js:657 -#: js/PitchBlocks.js:933 -#: js/PitchBlocks.js:972 -#: js/PitchBlocks.js:1005 -#: js/PitchBlocks.js:1166 -#: js/PitchBlocks.js:1679 -#: js/PitchBlocks.js:1720 -#: js/PitchBlocks.js:1827 -#: js/ToneBlocks.js:1025 -#.TRANS: adjusts the shift up or down by one octave (twelve half-steps in the interval between two notes, one having twice or half the frequency in Hz of the other.) -msgid "octave" +#: js/blocks/ActionBlocks.js:791 +#: js/blocks/ActionBlocks.js:865 +msgid "The Arg block contains the value of an argument passed to an action." msgstr "" -#: js/IntervalsBlocks.js:99 -msgid "The Temperament name block is used to select a tuning method." +#: js/blocks/ActionBlocks.js:806 +#: js/blocks/ActionBlocks.js:878 +msgid "arg" msgstr "" -#: js/IntervalsBlocks.js:161 -msgid "doubly" +#: js/blocks/ActionBlocks.js:836 +#: js/blocks/ActionBlocks.js:900 +#: js/blocks/ActionBlocks.js:908 +msgid "Invalid argument" msgstr "" -#: js/IntervalsBlocks.js:166 -msgid "The Doubly block will double the size of an interval." +#: js/blocks/ActionBlocks.js:944 +msgid "In the example, it is used with the One of block to choose a random phase." msgstr "" -#: js/IntervalsBlocks.js:262 -msgid "interval number" +#: js/blocks/ActionBlocks.js:1019 +#: js/blocks/ActionBlocks.js:1026 +msgid "The Listen block is used to listen for an event such as a mouse click." msgstr "" -#: js/IntervalsBlocks.js:330 -#.TRANS: measure the distance between two pitches in semi-tones -msgid "semi-tone interval measure" +#: js/blocks/ActionBlocks.js:1028 +msgid "When the event happens, an action is taken." msgstr "" -#: js/IntervalsBlocks.js:397 -#: js/IntervalsBlocks.js:513 -msgid "You must use two pitch blocks when measuring an interval." +#: js/blocks/ActionBlocks.js:1045 +msgid "on" msgstr "" -#: js/IntervalsBlocks.js:439 -msgid "The Scalar interval block measures the distance between two notes in the current key and mode." +#: js/blocks/ActionBlocks.js:1048 +#: js/blocks/ActionBlocks.js:1049 +#: js/blocks/ActionBlocks.js:1153 +msgid "event" msgstr "" -#: js/IntervalsBlocks.js:445 -#.TRANS: measure the distance between two pitches in steps of musical scale -msgid "scalar interval measure" +#: js/blocks/ActionBlocks.js:1133 +msgid "The Broadcast block is used to trigger an event." msgstr "" -#: js/IntervalsBlocks.js:592 -#: js/musicutils.js:637 -#: js/musicutils.js:908 -#.TRANS: perfect is a music term related to intervals -msgid "perfect" +#: js/blocks/ActionBlocks.js:1151 +msgid "broadcast" msgstr "" -#: js/IntervalsBlocks.js:621 -msgid "In the figure, we add sol# to sol." +#: js/blocks/ActionBlocks.js:1208 +msgid "Each Start block is a separate voice." msgstr "" -#: js/IntervalsBlocks.js:627 -#: js/OrnamentBlocks.js:220 -#.TRANS: calculate a relative step between notes based on semi-tones -msgid "semi-tone interval" +#: js/blocks/ActionBlocks.js:1304 +msgid "It is often used for storing a phrase of music that is repeated." msgstr "" -#: js/IntervalsBlocks.js:676 -msgid "The output of the example is: do, mi, sol, sol, ti, mi" +#: js/blocks/ActionBlocks.js:1495 +msgid "define temperament" msgstr "" -#: js/IntervalsBlocks.js:735 -msgid "The Chord block calculates common chords." +#: js/blocks/BooleanBlocks.js:44 +msgid "The Not block is the logical not operator." msgstr "" -#: js/IntervalsBlocks.js:737 -msgid "In the figure, we generate a C-major chord." +#: js/blocks/BooleanBlocks.js:62 +msgid "not" msgstr "" -#: js/IntervalsBlocks.js:742 -msgid "chord" +#: js/blocks/BooleanBlocks.js:134 +msgid "The And block is the logical and operator." msgstr "" -#: js/IntervalsBlocks.js:794 -msgid "The Ratio Interval block calculates an interval based on a ratio." +#: js/blocks/BooleanBlocks.js:152 +msgid "and" msgstr "" -#: js/IntervalsBlocks.js:799 -msgid "ratio interval" +#: js/blocks/BooleanBlocks.js:218 +msgid "The Or block is the logical or operator." msgstr "" -#: js/IntervalsBlocks.js:868 -msgid "In the figure, we add la to sol." +#: js/blocks/BooleanBlocks.js:236 +msgid "or" msgstr "" -#: js/IntervalsBlocks.js:924 -#.TRANS: define a custom mode -msgid "define mode" +#: js/blocks/BooleanBlocks.js:302 +msgid "The XOR block is the logical XOR operator." msgstr "" -#: js/IntervalsBlocks.js:977 -msgid "movable Do" +#: js/blocks/BooleanBlocks.js:320 +msgid "xor" msgstr "" -#: js/IntervalsBlocks.js:1028 -#.TRANS: mode length is the number of notes in the mode, e.g., 7 for major and minor scales; 12 for chromatic scales -msgid "mode length" +#: js/blocks/BooleanBlocks.js:808 +msgid "The Equal block returns True if the two numbers are equal." msgstr "" -#: js/IntervalsBlocks.js:1037 -msgid "The Mode length block is the number of notes in the current scale." +#: js/blocks/BooleanBlocks.js:909 +msgid "The Not-equal-to block returns True if the two numbers are not equal to each other." msgstr "" -#: js/IntervalsBlocks.js:1039 -msgid "Most Western scales have 7 notes." +#: js/blocks/BooleanBlocks.js:1008 +msgid "The Boolean block is used to specify true or false." msgstr "" -#: js/IntervalsBlocks.js:1088 -#.TRANS: the mode in music is 'major', 'minor', etc. -msgid "current mode" +#: js/blocks/BoxesBlocks.js:53 +#: js/blocks/BoxesBlocks.js:59 +msgid "The Add-to block is used to add to the value stored in a box." msgstr "" -#: js/IntervalsBlocks.js:1141 -#.TRANS: the key is a group of pitches with which a music composition is created -msgid "current key" +#: js/blocks/BoxesBlocks.js:61 +msgid "It can also be used with other blocks such as Color and Pen size." msgstr "" -#: js/IntervalsBlocks.js:1193 -#: js/IntervalsBlocks.js:1238 -#.TRANS: set the key and mode, e.g. C Major -msgid "set key" +#: js/blocks/BoxesBlocks.js:73 +msgid "add" msgstr "" -#: js/IntervalsBlocks.js:1247 -#: js/IntervalsBlocks.js:1253 -msgid "The Set key block is used to set the key and mode," +#: js/blocks/BoxesBlocks.js:75 +#: js/widgets/temperament.js:857 +msgid "to" msgstr "" -#: js/IntervalsBlocks.js:1253 -msgid "eg C Major" +#: js/blocks/BoxesBlocks.js:75 +#: js/blocks/BoxesBlocks.js:595 +#: js/blocks/HeapBlocks.js:544 +msgid "value1" msgstr "" -#: js/IntervalsBlocks.js:1266 -#: js/DictBlocks.js:215 -#: js/DictBlocks.js:216 -#: js/DictBlocks.js:289 -#: js/DictBlocks.js:290 -#: js/DictBlocks.js:357 -#: js/DictBlocks.js:430 -#: js/DictBlocks.js:431 -#.TRANS: key, e.g., C in C Major -msgid "key" +#: js/blocks/BoxesBlocks.js:118 +msgid "Block does not support incrementing." msgstr "" -#: js/ActionBlocks.js:58 -msgid "The Return block will return a value from an action." +#: js/blocks/BoxesBlocks.js:152 +msgid "The Add-1-to block adds one to the value stored in a box." msgstr "" -#: js/ActionBlocks.js:75 -msgid "return" +#: js/blocks/BoxesBlocks.js:163 +msgid "add 1 to" msgstr "" -#: js/ActionBlocks.js:128 -msgid "The Return to URL block will return a value to a webpage." +#: js/blocks/BoxesBlocks.js:211 +msgid "The Subtract-1-from block subtracts one from the value stored in a box." msgstr "" -#: js/ActionBlocks.js:145 -msgid "return to URL" +#: js/blocks/BoxesBlocks.js:222 +msgid "subtract 1 from" msgstr "" -#: js/ActionBlocks.js:233 -#: js/ActionBlocks.js:290 -#: js/ActionBlocks.js:501 -#: js/ActionBlocks.js:688 -msgid "The Calculate block returns a value calculated by an action." +#: js/blocks/BoxesBlocks.js:270 +#: js/blocks/BoxesBlocks.js:387 +msgid "The Box block returns the value stored in a box." msgstr "" -#: js/ActionBlocks.js:251 -#: js/ActionBlocks.js:517 -#: js/ActionBlocks.js:707 -msgid "calculate" +#: js/blocks/BoxesBlocks.js:500 +#: js/blocks/BoxesBlocks.js:576 +msgid "The Store in block will store a value in a box." msgstr "" -#: js/ActionBlocks.js:376 -#: js/ActionBlocks.js:593 -#: js/ActionBlocks.js:942 -#: js/ActionBlocks.js:1389 -#.TRANS: do is the do something or take an action. -msgid "The Do block is used to initiate an action." +#: js/blocks/BoxesBlocks.js:595 +#: js/blocks/EnsembleBlocks.js:391 +#: js/blocks/EnsembleBlocks.js:402 +msgid "name1" msgstr "" -#: js/ActionBlocks.js:390 -#: js/ActionBlocks.js:610 -#: js/ActionBlocks.js:959 -#: js/ActionBlocks.js:1048 -#: js/MeterBlocks.js:769 -msgid "do1" +#: js/blocks/BoxesBlocks.js:652 +msgid "The Box2 block returns the value stored in Box2." msgstr "" -#: js/ActionBlocks.js:390 -#: js/ActionBlocks.js:610 -#: js/ActionBlocks.js:959 -#: js/ActionBlocks.js:1048 -#: js/FlowBlocks.js:742 -#: js/FlowBlocks.js:822 -#: js/MeterBlocks.js:769 -msgid "do" +#: js/blocks/BoxesBlocks.js:703 +msgid "The Store in Box2 block is used to store a value in Box2." msgstr "" -#: js/ActionBlocks.js:791 -#: js/ActionBlocks.js:865 -msgid "The Arg block contains the value of an argument passed to an action." +#: js/blocks/BoxesBlocks.js:715 +msgid "store in box2" msgstr "" -#: js/ActionBlocks.js:806 -#: js/ActionBlocks.js:878 -msgid "arg" +#: js/blocks/BoxesBlocks.js:761 +msgid "The Box1 block returns the value stored in Box1." msgstr "" -#: js/ActionBlocks.js:836 -#: js/ActionBlocks.js:900 -#: js/ActionBlocks.js:908 -msgid "Invalid argument" +#: js/blocks/BoxesBlocks.js:812 +msgid "The Store in Box1 block is used to store a value in Box1." msgstr "" -#: js/ActionBlocks.js:944 -msgid "In the example, it is used with the One of block to choose a random phase." +#: js/blocks/BoxesBlocks.js:826 +msgid "store in box1" msgstr "" -#: js/ActionBlocks.js:1019 -#: js/ActionBlocks.js:1026 -msgid "The Listen block is used to listen for an event such as a mouse click." +#: js/blocks/DictBlocks.js:77 +msgid "show dictionary" msgstr "" -#: js/ActionBlocks.js:1028 -msgid "When the event happens, an action is taken." +#: js/blocks/DictBlocks.js:80 +#: js/blocks/DictBlocks.js:145 +#: js/blocks/DictBlocks.js:216 +#: js/blocks/DictBlocks.js:290 +#: js/blocks/ProgramBlocks.js:396 +#: js/blocks/ProgramBlocks.js:501 +#: js/blocks/ProgramBlocks.js:664 +msgid "My Dictionary" msgstr "" -#: js/ActionBlocks.js:1045 -msgid "on" +#: js/blocks/DictBlocks.js:129 +msgid "The Dictionary block returns a dictionary." msgstr "" -#: js/ActionBlocks.js:1048 -#: js/ActionBlocks.js:1049 -#: js/ActionBlocks.js:1153 -msgid "event" +#: js/blocks/DictBlocks.js:197 +#: js/blocks/DictBlocks.js:339 +msgid "The Get-dict block returns a value in the dictionary for a specified key." msgstr "" -#: js/ActionBlocks.js:1133 -msgid "The Broadcast block is used to trigger an event." +#: js/blocks/DictBlocks.js:212 +#: js/blocks/DictBlocks.js:354 +#.TRANS: retrieve a value from the dictionary with a given key +msgid "get value" msgstr "" -#: js/ActionBlocks.js:1151 -msgid "broadcast" +#: js/blocks/DictBlocks.js:215 +#: js/blocks/DictBlocks.js:216 +#: js/blocks/DictBlocks.js:289 +#: js/blocks/DictBlocks.js:290 +#: js/blocks/DictBlocks.js:357 +#: js/blocks/DictBlocks.js:430 +#: js/blocks/DictBlocks.js:431 +msgid "key2" msgstr "" -#: js/ActionBlocks.js:1208 -msgid "Each Start block is a separate voice." +#: js/blocks/DictBlocks.js:215 +#: js/blocks/DictBlocks.js:216 +#: js/blocks/DictBlocks.js:289 +#: js/blocks/DictBlocks.js:290 +#: js/blocks/DictBlocks.js:357 +#: js/blocks/DictBlocks.js:430 +#: js/blocks/DictBlocks.js:431 +#: js/blocks/IntervalsBlocks.js:1462 +#.TRANS: key, e.g., C in C Major +msgid "key" msgstr "" -#: js/ActionBlocks.js:1304 -msgid "It is often used for storing a phrase of music that is repeated." +#: js/blocks/DictBlocks.js:271 +#: js/blocks/DictBlocks.js:411 +msgid "The Set-dict block sets a value in the dictionary for a specified key." msgstr "" -#: js/ActionBlocks.js:1495 -msgid "define temperament" +#: js/blocks/DictBlocks.js:286 +#: js/blocks/DictBlocks.js:427 +#.TRANS: set a value in the dictionary for a given key +msgid "set value" msgstr "" -#: js/EnsembleBlocks.js:66 +#: js/blocks/EnsembleBlocks.js:66 msgid "mouse index heap" msgstr "" -#: js/EnsembleBlocks.js:68 +#: js/blocks/EnsembleBlocks.js:68 msgid "The Mouse index heap block returns a value in the heap at a specified location for a specified mouse." msgstr "" -#: js/EnsembleBlocks.js:77 -#: js/EnsembleBlocks.js:1080 +#: js/blocks/EnsembleBlocks.js:77 +#: js/blocks/EnsembleBlocks.js:1080 msgid "mouse name" msgstr "" -#: js/EnsembleBlocks.js:77 -#: js/EnsembleBlocks.js:92 -#: js/HeapBlocks.js:544 +#: js/blocks/EnsembleBlocks.js:77 +#: js/blocks/EnsembleBlocks.js:92 +#: js/blocks/HeapBlocks.js:544 #.TRANS: value1 is a numeric value (JAPANESE ONLY) msgid "index" msgstr "" -#: js/EnsembleBlocks.js:80 +#: js/blocks/EnsembleBlocks.js:80 msgid "turtle index heap" msgstr "" -#: js/EnsembleBlocks.js:82 +#: js/blocks/EnsembleBlocks.js:82 msgid "The Turtle index heap block returns a value in the heap at a specified location for a specified turtle." msgstr "" -#: js/EnsembleBlocks.js:90 -#: js/EnsembleBlocks.js:167 -#: js/EnsembleBlocks.js:230 -#: js/EnsembleBlocks.js:316 -#: js/EnsembleBlocks.js:362 -#: js/EnsembleBlocks.js:400 -#: js/EnsembleBlocks.js:454 -#: js/EnsembleBlocks.js:504 -#: js/EnsembleBlocks.js:550 -#: js/EnsembleBlocks.js:597 -#: js/EnsembleBlocks.js:651 -#: js/EnsembleBlocks.js:763 -#: js/EnsembleBlocks.js:854 -#: js/EnsembleBlocks.js:915 -#: js/EnsembleBlocks.js:955 -#: js/EnsembleBlocks.js:1219 -#: js/EnsembleBlocks.js:1293 +#: js/blocks/EnsembleBlocks.js:90 +#: js/blocks/EnsembleBlocks.js:167 +#: js/blocks/EnsembleBlocks.js:230 +#: js/blocks/EnsembleBlocks.js:316 +#: js/blocks/EnsembleBlocks.js:362 +#: js/blocks/EnsembleBlocks.js:400 +#: js/blocks/EnsembleBlocks.js:454 +#: js/blocks/EnsembleBlocks.js:504 +#: js/blocks/EnsembleBlocks.js:550 +#: js/blocks/EnsembleBlocks.js:597 +#: js/blocks/EnsembleBlocks.js:651 +#: js/blocks/EnsembleBlocks.js:763 +#: js/blocks/EnsembleBlocks.js:854 +#: js/blocks/EnsembleBlocks.js:915 +#: js/blocks/EnsembleBlocks.js:955 +#: js/blocks/EnsembleBlocks.js:1219 +#: js/blocks/EnsembleBlocks.js:1293 #.TRANS: Yertle is the name of a turtle. msgid "Yertle" msgstr "" -#: js/EnsembleBlocks.js:92 -#: js/EnsembleBlocks.js:1089 +#: js/blocks/EnsembleBlocks.js:92 +#: js/blocks/EnsembleBlocks.js:1089 msgid "turtle name" msgstr "" -#: js/EnsembleBlocks.js:122 -#: js/EnsembleBlocks.js:1197 -#: js/HeapBlocks.js:474 -#: js/HeapBlocks.js:572 +#: js/blocks/EnsembleBlocks.js:122 +#: js/blocks/EnsembleBlocks.js:1197 +#: js/blocks/HeapBlocks.js:474 +#: js/blocks/HeapBlocks.js:572 msgid "Index must be > 0." msgstr "" -#: js/EnsembleBlocks.js:127 -#: js/HeapBlocks.js:479 -#: js/HeapBlocks.js:577 +#: js/blocks/EnsembleBlocks.js:127 +#: js/blocks/HeapBlocks.js:479 +#: js/blocks/HeapBlocks.js:577 msgid "Maximum heap size is 1000." msgstr "" -#: js/EnsembleBlocks.js:145 +#: js/blocks/EnsembleBlocks.js:145 msgid "stop mouse" msgstr "" -#: js/EnsembleBlocks.js:147 +#: js/blocks/EnsembleBlocks.js:147 msgid "The Stop mouse block stops the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:158 +#: js/blocks/EnsembleBlocks.js:158 msgid "stop turtle" msgstr "" -#: js/EnsembleBlocks.js:160 +#: js/blocks/EnsembleBlocks.js:160 msgid "The Stop turtle block stops the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:184 -#: js/EnsembleBlocks.js:247 -#: js/EnsembleBlocks.js:413 -#: js/EnsembleBlocks.js:468 -#: js/EnsembleBlocks.js:706 -#: js/EnsembleBlocks.js:808 -#: js/EnsembleBlocks.js:870 -#: js/EnsembleBlocks.js:1190 -#: js/EnsembleBlocks.js:1253 +#: js/blocks/EnsembleBlocks.js:184 +#: js/blocks/EnsembleBlocks.js:247 +#: js/blocks/EnsembleBlocks.js:413 +#: js/blocks/EnsembleBlocks.js:468 +#: js/blocks/EnsembleBlocks.js:706 +#: js/blocks/EnsembleBlocks.js:808 +#: js/blocks/EnsembleBlocks.js:870 +#: js/blocks/EnsembleBlocks.js:1190 +#: js/blocks/EnsembleBlocks.js:1253 msgid "Cannot find mouse" msgstr "" -#: js/EnsembleBlocks.js:186 -#: js/EnsembleBlocks.js:249 -#: js/EnsembleBlocks.js:415 -#: js/EnsembleBlocks.js:470 -#: js/EnsembleBlocks.js:708 -#: js/EnsembleBlocks.js:810 -#: js/EnsembleBlocks.js:872 -#: js/EnsembleBlocks.js:1192 -#: js/EnsembleBlocks.js:1255 +#: js/blocks/EnsembleBlocks.js:186 +#: js/blocks/EnsembleBlocks.js:249 +#: js/blocks/EnsembleBlocks.js:415 +#: js/blocks/EnsembleBlocks.js:470 +#: js/blocks/EnsembleBlocks.js:708 +#: js/blocks/EnsembleBlocks.js:810 +#: js/blocks/EnsembleBlocks.js:872 +#: js/blocks/EnsembleBlocks.js:1192 +#: js/blocks/EnsembleBlocks.js:1255 msgid "Cannot find turtle" msgstr "" -#: js/EnsembleBlocks.js:206 +#: js/blocks/EnsembleBlocks.js:206 msgid "start mouse" msgstr "" -#: js/EnsembleBlocks.js:209 +#: js/blocks/EnsembleBlocks.js:209 msgid "The Start mouse block starts the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:220 +#: js/blocks/EnsembleBlocks.js:220 msgid "start turtle" msgstr "" -#: js/EnsembleBlocks.js:223 +#: js/blocks/EnsembleBlocks.js:223 msgid "The Start turtle block starts the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:256 +#: js/blocks/EnsembleBlocks.js:256 msgid "Mouse is already running." msgstr "" -#: js/EnsembleBlocks.js:258 +#: js/blocks/EnsembleBlocks.js:258 msgid "Turtle is already running." msgstr "" -#: js/EnsembleBlocks.js:282 +#: js/blocks/EnsembleBlocks.js:282 msgid "Cannot find start block" msgstr "" -#: js/EnsembleBlocks.js:292 +#: js/blocks/EnsembleBlocks.js:292 #.TRANS: pen color for this mouse msgid "mouse color" msgstr "" -#: js/EnsembleBlocks.js:294 +#: js/blocks/EnsembleBlocks.js:294 msgid "The Mouse color block returns the pen color of the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:306 +#: js/blocks/EnsembleBlocks.js:306 #.TRANS: pen color for this turtle msgid "turtle color" msgstr "" -#: js/EnsembleBlocks.js:308 +#: js/blocks/EnsembleBlocks.js:308 msgid "The Turtle color block returns the pen color of the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:338 +#: js/blocks/EnsembleBlocks.js:338 #.TRANS: heading (compass direction) for this mouse msgid "mouse heading" msgstr "" -#: js/EnsembleBlocks.js:340 +#: js/blocks/EnsembleBlocks.js:340 msgid "The Mouse heading block returns the heading of the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:352 +#: js/blocks/EnsembleBlocks.js:352 #.TRANS: heading (compass direction) for this turtle msgid "turtle heading" msgstr "" -#: js/EnsembleBlocks.js:354 +#: js/blocks/EnsembleBlocks.js:354 msgid "The Turtle heading block returns the heading of the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:384 -#: js/EnsembleBlocks.js:439 +#: js/blocks/EnsembleBlocks.js:384 +#: js/blocks/EnsembleBlocks.js:439 #.TRANS: set xy position for this mouse msgid "set mouse" msgstr "" -#: js/EnsembleBlocks.js:391 -#: js/EnsembleBlocks.js:402 -#: js/BoxesBlocks.js:595 -msgid "name1" -msgstr "" - -#: js/EnsembleBlocks.js:391 -#: js/EnsembleBlocks.js:402 -#: js/ProgramBlocks.js:881 -#: js/GraphicsBlocks.js:235 -#: js/GraphicsBlocks.js:313 -#: js/GraphicsBlocks.js:436 -#: js/GraphicsBlocks.js:487 -#: js/GraphicsBlocks.js:534 -#: js/GraphicsBlocks.js:750 +#: js/blocks/EnsembleBlocks.js:391 +#: js/blocks/EnsembleBlocks.js:402 +#: js/blocks/GraphicsBlocks.js:235 +#: js/blocks/GraphicsBlocks.js:313 +#: js/blocks/GraphicsBlocks.js:436 +#: js/blocks/GraphicsBlocks.js:487 +#: js/blocks/GraphicsBlocks.js:534 +#: js/blocks/GraphicsBlocks.js:750 +#: js/blocks/ProgramBlocks.js:881 msgid "x" msgstr "" -#: js/EnsembleBlocks.js:391 -#: js/EnsembleBlocks.js:402 -#: js/ProgramBlocks.js:881 -#: js/GraphicsBlocks.js:149 -#: js/GraphicsBlocks.js:313 -#: js/GraphicsBlocks.js:436 -#: js/GraphicsBlocks.js:487 -#: js/GraphicsBlocks.js:534 -#: js/GraphicsBlocks.js:750 +#: js/blocks/EnsembleBlocks.js:391 +#: js/blocks/EnsembleBlocks.js:402 +#: js/blocks/GraphicsBlocks.js:149 +#: js/blocks/GraphicsBlocks.js:313 +#: js/blocks/GraphicsBlocks.js:436 +#: js/blocks/GraphicsBlocks.js:487 +#: js/blocks/GraphicsBlocks.js:534 +#: js/blocks/GraphicsBlocks.js:750 +#: js/blocks/ProgramBlocks.js:881 msgid "y" msgstr "" -#: js/EnsembleBlocks.js:395 -#: js/EnsembleBlocks.js:452 +#: js/blocks/EnsembleBlocks.js:395 +#: js/blocks/EnsembleBlocks.js:452 #.TRANS: set xy position for this turtle msgid "set turtle" msgstr "" -#: js/EnsembleBlocks.js:433 +#: js/blocks/EnsembleBlocks.js:433 msgid "The Set mouse block sends a stack of blocks to be run by the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:446 +#: js/blocks/EnsembleBlocks.js:446 msgid "The Set turtle block sends a stack of blocks to be run by the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:480 +#: js/blocks/EnsembleBlocks.js:480 #.TRANS: y position for this mouse msgid "mouse y" msgstr "" -#: js/EnsembleBlocks.js:482 +#: js/blocks/EnsembleBlocks.js:482 msgid "The Y mouse block returns the Y position of the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:494 +#: js/blocks/EnsembleBlocks.js:494 #.TRANS: y position for this turtle msgid "turtle y" msgstr "" -#: js/EnsembleBlocks.js:496 +#: js/blocks/EnsembleBlocks.js:496 msgid "The Y turtle block returns the Y position of the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:526 +#: js/blocks/EnsembleBlocks.js:526 #.TRANS: x position for this mouse msgid "mouse x" msgstr "" -#: js/EnsembleBlocks.js:528 +#: js/blocks/EnsembleBlocks.js:528 msgid "The X mouse block returns the X position of the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:540 +#: js/blocks/EnsembleBlocks.js:540 #.TRANS: x position for this turtle msgid "turtle x" msgstr "" -#: js/EnsembleBlocks.js:542 +#: js/blocks/EnsembleBlocks.js:542 msgid "The X turtle block returns the X position of the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:573 +#: js/blocks/EnsembleBlocks.js:573 #.TRANS: notes played by this mouse msgid "mouse notes played" msgstr "" -#: js/EnsembleBlocks.js:575 +#: js/blocks/EnsembleBlocks.js:575 msgid "The Mouse elapse notes block returns the number of notes played by the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:587 +#: js/blocks/EnsembleBlocks.js:587 #.TRANS: notes played by this turtle msgid "turtle notes played" msgstr "" -#: js/EnsembleBlocks.js:589 +#: js/blocks/EnsembleBlocks.js:589 msgid "The Turtle elapse notes block returns the number of notes played by the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:627 +#: js/blocks/EnsembleBlocks.js:627 #.TRANS: convert current note for this turtle to piano key (1-88) msgid "mouse pitch number" msgstr "" -#: js/EnsembleBlocks.js:629 +#: js/blocks/EnsembleBlocks.js:629 msgid "The Mouse pitch block returns the current pitch number being played by the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:641 +#: js/blocks/EnsembleBlocks.js:641 #.TRANS: convert current note for this turtle to piano key (1-88) msgid "turtle pitch number" msgstr "" -#: js/EnsembleBlocks.js:643 -msgid "The Turrle pitch block returns the current pitch number being played by the specified turtle." +#: js/blocks/EnsembleBlocks.js:643 +msgid "The Turtle pitch block returns the current pitch number being played by the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:747 -#: js/EnsembleBlocks.js:819 +#: js/blocks/EnsembleBlocks.js:747 +#: js/blocks/EnsembleBlocks.js:819 #.TRANS: note value is the duration of the note played by this mouse msgid "mouse note value" msgstr "" -#: js/EnsembleBlocks.js:757 +#: js/blocks/EnsembleBlocks.js:757 #.TRANS: note value is the duration of the note played by this turtle msgid "turtle note value" msgstr "" -#: js/EnsembleBlocks.js:830 +#: js/blocks/EnsembleBlocks.js:830 #.TRANS: sync is short for synchronization msgid "mouse sync" msgstr "" -#: js/EnsembleBlocks.js:832 +#: js/blocks/EnsembleBlocks.js:832 msgid "The Mouse sync block aligns the beat count between mice." msgstr "" -#: js/EnsembleBlocks.js:844 +#: js/blocks/EnsembleBlocks.js:844 #.TRANS: sync is short for synchronization msgid "turtle sync" msgstr "" -#: js/EnsembleBlocks.js:846 +#: js/blocks/EnsembleBlocks.js:846 msgid "The Turtle sync block aligns the beat count between turtles." msgstr "" -#: js/EnsembleBlocks.js:887 +#: js/blocks/EnsembleBlocks.js:887 msgid "The Found mouse block will return true if the specified mouse can be found." msgstr "" -#: js/EnsembleBlocks.js:893 +#: js/blocks/EnsembleBlocks.js:893 msgid "found mouse" msgstr "" -#: js/EnsembleBlocks.js:903 +#: js/blocks/EnsembleBlocks.js:903 msgid "The Found turtle block will return true if the specified turtle can be found." msgstr "" -#: js/EnsembleBlocks.js:909 +#: js/blocks/EnsembleBlocks.js:909 msgid "found turtle" msgstr "" -#: js/EnsembleBlocks.js:932 +#: js/blocks/EnsembleBlocks.js:932 msgid "new mouse" msgstr "" -#: js/EnsembleBlocks.js:934 +#: js/blocks/EnsembleBlocks.js:934 msgid "The New mouse block will create a new mouse." msgstr "" -#: js/EnsembleBlocks.js:945 +#: js/blocks/EnsembleBlocks.js:945 msgid "new turtle" msgstr "" -#: js/EnsembleBlocks.js:947 +#: js/blocks/EnsembleBlocks.js:947 msgid "The New turtle block will create a new turtle." msgstr "" -#: js/EnsembleBlocks.js:1011 +#: js/blocks/EnsembleBlocks.js:1011 msgid "set mouse color" msgstr "" -#: js/EnsembleBlocks.js:1014 +#: js/blocks/EnsembleBlocks.js:1014 msgid "The Set-mouse-color block is used to set the color of a mouse." msgstr "" -#: js/EnsembleBlocks.js:1020 +#: js/blocks/EnsembleBlocks.js:1020 msgid "set turtle color" msgstr "" -#: js/EnsembleBlocks.js:1023 +#: js/blocks/EnsembleBlocks.js:1023 msgid "The Set-turtle-color block is used to set the color of a turtle." msgstr "" -#: js/EnsembleBlocks.js:1083 +#: js/blocks/EnsembleBlocks.js:1083 msgid "The Mouse-name block returns the name of a mouse." msgstr "" -#: js/EnsembleBlocks.js:1092 +#: js/blocks/EnsembleBlocks.js:1092 msgid "The Turtle-name block returns the name of a turtle." msgstr "" -#: js/EnsembleBlocks.js:1115 +#: js/blocks/EnsembleBlocks.js:1115 msgid "mouse count" msgstr "" -#: js/EnsembleBlocks.js:1118 +#: js/blocks/EnsembleBlocks.js:1118 msgid "The Mouse-count block returns the number of mice." msgstr "" -#: js/EnsembleBlocks.js:1124 +#: js/blocks/EnsembleBlocks.js:1124 msgid "turtle count" msgstr "" -#: js/EnsembleBlocks.js:1127 +#: js/blocks/EnsembleBlocks.js:1127 msgid "The Turtle-count block returns the number of turtles." msgstr "" -#: js/EnsembleBlocks.js:1149 +#: js/blocks/EnsembleBlocks.js:1149 msgid "nth mouse name" msgstr "" -#: js/EnsembleBlocks.js:1152 +#: js/blocks/EnsembleBlocks.js:1152 msgid "The Nth-Mouse name block returns the name of the nth mouse." msgstr "" -#: js/EnsembleBlocks.js:1158 +#: js/blocks/EnsembleBlocks.js:1158 msgid "nth turtle name" msgstr "" -#: js/EnsembleBlocks.js:1161 +#: js/blocks/EnsembleBlocks.js:1161 msgid "The Nth-Turtle name block returns the name of the nth turtle." msgstr "" -#: js/EnsembleBlocks.js:1205 -#: js/EnsembleBlocks.js:1265 +#: js/blocks/EnsembleBlocks.js:1205 +#: js/blocks/EnsembleBlocks.js:1265 msgid "set name" msgstr "" -#: js/EnsembleBlocks.js:1214 -#: js/EnsembleBlocks.js:1221 +#: js/blocks/EnsembleBlocks.js:1214 +#: js/blocks/EnsembleBlocks.js:1221 msgid "source" msgstr "" -#: js/EnsembleBlocks.js:1214 -#: js/EnsembleBlocks.js:1221 +#: js/blocks/EnsembleBlocks.js:1214 +#: js/blocks/EnsembleBlocks.js:1221 msgid "target" msgstr "" -#: js/EnsembleBlocks.js:1271 +#: js/blocks/EnsembleBlocks.js:1271 msgid "The Set-name block is used to name a mouse." msgstr "" -#: js/EnsembleBlocks.js:1284 +#: js/blocks/EnsembleBlocks.js:1284 msgid "The Set-name block is used to name a turtle." msgstr "" -#: js/BooleanBlocks.js:44 -msgid "The Not block is the logical not operator." -msgstr "" - -#: js/BooleanBlocks.js:62 -msgid "not" -msgstr "" - -#: js/BooleanBlocks.js:134 -msgid "The And block is the logical and operator." -msgstr "" - -#: js/BooleanBlocks.js:152 -msgid "and" -msgstr "" - -#: js/BooleanBlocks.js:218 -msgid "The Or block is the logical or operator." -msgstr "" - -#: js/BooleanBlocks.js:236 -msgid "or" -msgstr "" - -#: js/BooleanBlocks.js:302 -msgid "The XOR block is the logical XOR operator." -msgstr "" - -#: js/BooleanBlocks.js:320 -msgid "xor" -msgstr "" - -#: js/BooleanBlocks.js:808 -msgid "The Equal block returns True if the two numbers are equal." -msgstr "" - -#: js/BooleanBlocks.js:909 -msgid "The Not-equal-to block returns True if the two numbers are not equal to each other." -msgstr "" - -#: js/BooleanBlocks.js:1008 -msgid "The Boolean block is used to specify true or false." -msgstr "" - -#: js/MediaBlocks.js:35 -#.TRANS: right side of the screen -msgid "right (screen)" -msgstr "" - -#: js/MediaBlocks.js:45 -#: js/MediaBlocks.js:56 -msgid "The Right block returns the position of the right of the canvas." -msgstr "" - -#: js/MediaBlocks.js:97 -#.TRANS: left side of the screen -msgid "left (screen)" -msgstr "" - -#: js/MediaBlocks.js:107 -#: js/MediaBlocks.js:118 -msgid "The Left block returns the position of the left of the canvas." -msgstr "" - -#: js/MediaBlocks.js:158 -msgid "top (screen)" -msgstr "" - -#: js/MediaBlocks.js:168 -#: js/MediaBlocks.js:179 -msgid "The Top block returns the position of the top of the canvas." -msgstr "" - -#: js/MediaBlocks.js:219 -msgid "bottom (screen)" +#: js/blocks/ExtrasBlocks.js:33 +msgid "fraction" msgstr "" -#: js/MediaBlocks.js:229 -#: js/MediaBlocks.js:240 -msgid "The Bottom block returns the position of the bottom of the canvas." +#: js/blocks/ExtrasBlocks.js:36 +msgid "Convert a float to a fraction" msgstr "" -#: js/MediaBlocks.js:282 -msgid "width" +#: js/blocks/ExtrasBlocks.js:93 +msgid "save as ABC" msgstr "" -#: js/MediaBlocks.js:291 -msgid "The Width block returns the width of the canvas." +#: js/blocks/ExtrasBlocks.js:96 +#: js/blocks/ExtrasBlocks.js:132 +#: js/blocks/ExtrasBlocks.js:168 +msgid "title" msgstr "" -#: js/MediaBlocks.js:325 -msgid "height" +#: js/blocks/ExtrasBlocks.js:129 +msgid "save as Lilypond" msgstr "" -#: js/MediaBlocks.js:334 -msgid "The Height block returns the height of the canvas." +#: js/blocks/ExtrasBlocks.js:165 +msgid "save as SVG" msgstr "" -#: js/MediaBlocks.js:369 -#.TRANS: stops playback of an audio recording -msgid "stop play" +#: js/blocks/ExtrasBlocks.js:216 +msgid "no background" msgstr "" -#: js/MediaBlocks.js:404 -#.TRANS: Erases the images and text -msgid "erase media" +#: js/blocks/ExtrasBlocks.js:219 +msgid "The No background block eliminates the background from the saved SVG output." msgstr "" -#: js/MediaBlocks.js:409 -msgid "The Erase Media block erases text and images." +#: js/blocks/ExtrasBlocks.js:247 +msgid "show blocks" msgstr "" -#: js/MediaBlocks.js:439 -#.TRANS: play an audio recording -msgid "play back" +#: js/blocks/ExtrasBlocks.js:249 +msgid "The Show blocks block shows the blocks." msgstr "" -#: js/MediaBlocks.js:487 -msgid "speak" +#: js/blocks/ExtrasBlocks.js:274 +msgid "hide blocks" msgstr "" -#: js/MediaBlocks.js:495 -msgid "The Speak block outputs to the text-to-speech synthesizer" +#: js/blocks/ExtrasBlocks.js:276 +msgid "The Hide blocks block hides the blocks." msgstr "" -#: js/MediaBlocks.js:546 -msgid "camera" +#: js/blocks/ExtrasBlocks.js:305 +#: js/blocks/ExtrasBlocks.js:338 +msgid "The Space block is used to add space between blocks." msgstr "" -#: js/MediaBlocks.js:551 -msgid "The Camera block connects a webcam to the Show block." +#: js/blocks/ExtrasBlocks.js:376 +msgid "wait" msgstr "" -#: js/MediaBlocks.js:574 -msgid "video" +#: js/blocks/ExtrasBlocks.js:379 +msgid "The Wait block pauses the program for a specified number of seconds." msgstr "" -#: js/MediaBlocks.js:579 -msgid "The Video block selects video for use with the Show block." +#: js/blocks/ExtrasBlocks.js:433 +#: plugins/facebook.rtp:30 +msgid "comment" msgstr "" -#: js/MediaBlocks.js:607 -msgid "The Open file block opens a file for use with the Show block." +#: js/blocks/ExtrasBlocks.js:469 +msgid "print" msgstr "" -#: js/MediaBlocks.js:645 -msgid "stop media" +#: js/blocks/ExtrasBlocks.js:476 +msgid "The Print block displays text at the top of the screen." msgstr "" -#: js/MediaBlocks.js:650 -msgid "The Stop media block stops audio or video playback." +#: js/blocks/ExtrasBlocks.js:582 +msgid "display grid" msgstr "" -#: js/MediaBlocks.js:679 -#: js/PitchBlocks.js:1539 -#: js/phrasemaker.js:822 -#: js/musickeyboard.js:1654 -#.TRANS: a measure of frequency: one cycle per second -msgid "hertz" +#: js/blocks/ExtrasBlocks.js:587 +msgid "The Display Grid Block changes the grid type" msgstr "" -#: js/MediaBlocks.js:692 -msgid "duration (ms)" +#: js/blocks/ExtrasBlocks.js:689 +#: js/blocks/ExtrasBlocks.js:708 +#: js/blocks/ExtrasBlocks.js:731 +#: js/blocks/ExtrasBlocks.js:754 +#: js/blocks/ExtrasBlocks.js:772 +#: js/blocks/ExtrasBlocks.js:791 +#: js/blocks/ExtrasBlocks.js:810 +#: js/blocks/ExtrasBlocks.js:829 +msgid "unknown" msgstr "" -#: js/MediaBlocks.js:728 -#.TRANS: translate a note into hertz, e.g., A4 -> 440HZ -msgid "note to frequency" +#: js/blocks/FlowBlocks.js:41 +msgid "The Backward block runs code in reverse order (Musical retrograde)." msgstr "" -#: js/MediaBlocks.js:736 -msgid "The To frequency block converts a pitch name and octave to Hertz." +#: js/blocks/FlowBlocks.js:48 +msgid "backward" msgstr "" -#: js/MediaBlocks.js:746 -#: js/PitchBlocks.js:656 -#: js/PitchBlocks.js:932 -#: js/PitchBlocks.js:1827 -#.TRANS: name2 is name as in name of pitch (JAPANESE ONLY) -msgid "name2" +#: js/blocks/FlowBlocks.js:124 +msgid "The Duplicate block will run each block multiple times." msgstr "" -#: js/MediaBlocks.js:812 -msgid "The Avatar block is used to change the appearance of the mouse." +#: js/blocks/FlowBlocks.js:136 +msgid "duplicate" msgstr "" -#: js/MediaBlocks.js:819 -msgid "The Avatar block is used to change the appearance of the turtle." +#: js/blocks/FlowBlocks.js:334 +msgid "The Default block is used inside of a Switch to define the default action." msgstr "" -#: js/MediaBlocks.js:831 -#: js/MediaBlocks.js:891 -#.TRANS: a media object -msgid "size" +#: js/blocks/FlowBlocks.js:342 +msgid "default" msgstr "" -#: js/MediaBlocks.js:831 -msgid "image" +#: js/blocks/FlowBlocks.js:361 +#: js/blocks/FlowBlocks.js:418 +msgid "The Case Block must be used inside of a Switch Block." msgstr "" -#: js/MediaBlocks.js:880 -msgid "The Show block is used to display text or images on the canvas." +#: js/blocks/FlowBlocks.js:389 +msgid "The Case block is used inside of a Switch to define matches." msgstr "" -#: js/MediaBlocks.js:888 -#.TRANS: show1 is show as in display an image or text on the screen. -msgid "show1" +#: js/blocks/FlowBlocks.js:397 +msgid "case" msgstr "" -#: js/MediaBlocks.js:891 -msgid "obj" +#: js/blocks/FlowBlocks.js:446 +msgid "The Switch block will run the code in the matching Case." msgstr "" -#: js/MediaBlocks.js:938 -msgid "The Media block is used to import an image." +#: js/blocks/FlowBlocks.js:454 +msgid "switch" msgstr "" -#: js/MediaBlocks.js:973 -msgid "The Text block holds a text string." +#: js/blocks/FlowBlocks.js:595 +msgid "The Stop block will stop a loop" msgstr "" -#: js/ProgramBlocks.js:33 -msgid "The Load-heap-from-app block loads the heap from a web page." +#: js/blocks/FlowBlocks.js:597 +msgid "Forever, Repeat, While, or Until." msgstr "" -#: js/ProgramBlocks.js:44 -#.TRANS: load the heap contents from a URL -msgid "load heap from App" +#: js/blocks/FlowBlocks.js:604 +#: js/widgets/timbre.js:417 +#: js/widgets/timbre.js:419 +#: js/widgets/musickeyboard.js:819 +#: js/widgets/musickeyboard.js:821 +#: js/widgets/phrasemaker.js:4202 +#: plugins/rodi.rtp:29 +#: plugins/rodi.rtp:73 +#: plugins/rodi.rtp:413 +msgid "stop" msgstr "" -#: js/ProgramBlocks.js:95 -msgid "Error parsing JSON data:" +#: js/blocks/FlowBlocks.js:653 +msgid "The Waitfor block will wait until the condition is true." msgstr "" -#: js/ProgramBlocks.js:100 -msgid "404: Page not found" +#: js/blocks/FlowBlocks.js:661 +msgid "wait for" msgstr "" -#: js/ProgramBlocks.js:133 -msgid "The Save-heap-to-app block saves the heap to a web page." +#: js/blocks/FlowBlocks.js:732 +msgid "The Until block will repeat until the condition is true." msgstr "" -#: js/ProgramBlocks.js:144 -#.TRANS: save the heap contents to a URL -msgid "save heap to App" +#: js/blocks/FlowBlocks.js:740 +msgid "until" msgstr "" -#: js/ProgramBlocks.js:189 -msgid "Cannot find a valid heap for" +#: js/blocks/FlowBlocks.js:742 +#: js/blocks/FlowBlocks.js:822 +msgid "do2" msgstr "" -#: js/ProgramBlocks.js:206 -msgid "The Load-heap block loads the heap from a file." +#: js/blocks/FlowBlocks.js:812 +msgid "The While block will repeat while the condition is true." msgstr "" -#: js/ProgramBlocks.js:217 -#.TRANS: load the heap from a file -msgid "load heap" +#: js/blocks/FlowBlocks.js:820 +msgid "while" msgstr "" -#: js/ProgramBlocks.js:270 -msgid "The file you selected does not contain a valid heap." +#: js/blocks/FlowBlocks.js:903 +#: js/blocks/FlowBlocks.js:968 +#: js/blocks/FlowBlocks.js:979 +msgid "In this example if the mouse button is pressed a snare drum will play." msgstr "" -#: js/ProgramBlocks.js:275 -msgid "The loadHeap block needs a loadFile block." +#: js/blocks/FlowBlocks.js:925 +#: js/blocks/FlowBlocks.js:988 +msgid "if" msgstr "" -#: js/ProgramBlocks.js:291 -msgid "The Set-heap block loads the heap." +#: js/blocks/FlowBlocks.js:927 +#: js/blocks/FlowBlocks.js:990 +msgid "then" msgstr "" -#: js/ProgramBlocks.js:299 -#: js/HeapBlocks.js:539 -#.TRANS: load the heap from a JSON encoding -msgid "set heap" +#: js/blocks/FlowBlocks.js:927 +msgid "else" msgstr "" -#: js/ProgramBlocks.js:340 -msgid "The block you selected does not contain a valid heap." +#: js/blocks/FlowBlocks.js:1025 +msgid "The Forever block will repeat the contained blocks forever." msgstr "" -#: js/ProgramBlocks.js:343 -msgid "The Set heap block needs a heap." +#: js/blocks/FlowBlocks.js:1037 +msgid "forever" msgstr "" -#: js/ProgramBlocks.js:360 -msgid "The Load-dictionary block loads a dictionary from a file." +#: js/blocks/FlowBlocks.js:1073 +msgid "The Repeat block will repeat the contained blocks." msgstr "" -#: js/ProgramBlocks.js:372 -#.TRANS: load a dictionary from a file -msgid "load dictionary" +#: js/blocks/FlowBlocks.js:1075 +msgid "In this example the note will be played 4 times." msgstr "" -#: js/ProgramBlocks.js:390 -#: js/ProgramBlocks.js:658 -#: js/ToneBlocks.js:1025 -msgid "file" +#: js/blocks/FlowBlocks.js:1083 +msgid "repeat" msgstr "" -#: js/ProgramBlocks.js:396 -#: js/ProgramBlocks.js:501 -#: js/ProgramBlocks.js:664 -#: js/DictBlocks.js:80 -#: js/DictBlocks.js:145 -#: js/DictBlocks.js:216 -#: js/DictBlocks.js:290 -msgid "My Dictionary" +#: js/blocks/FlowBlocks.js:1123 +msgid "duplicate factor" msgstr "" -#: js/ProgramBlocks.js:444 -msgid "The file you selected does not contain a valid dictionary." +#: js/blocks/HeapBlocks.js:49 +msgid "The Heap block returns the heap." msgstr "" -#: js/ProgramBlocks.js:449 -msgid "The load dictionary block needs a load file block." +#: js/blocks/HeapBlocks.js:133 +msgid "show heap" msgstr "" -#: js/ProgramBlocks.js:466 -msgid "The Set-dictionary block loads a dictionary." +#: js/blocks/HeapBlocks.js:181 +msgid "The Heap-length block returns the length of the heap." msgstr "" -#: js/ProgramBlocks.js:477 -#.TRANS: load a dictionary from a JSON -msgid "set dictionary" +#: js/blocks/HeapBlocks.js:195 +msgid "heap length" msgstr "" -#: js/ProgramBlocks.js:546 -msgid "The block you selected does not contain a valid dictionary." +#: js/blocks/HeapBlocks.js:254 +msgid "The Heap-empty? block returns true if the heap is empty." msgstr "" -#: js/ProgramBlocks.js:550 -msgid "The set dictionary block needs a dictionary." +#: js/blocks/HeapBlocks.js:268 +#.TRANS: Is the heap empty? +msgid "heap empty?" msgstr "" -#: js/ProgramBlocks.js:567 -msgid "The Save-heap block saves the heap to a file." +#: js/blocks/HeapBlocks.js:317 +msgid "The Empty-heap block empties the heap." msgstr "" -#: js/ProgramBlocks.js:578 -#.TRANS: save the heap to a file -msgid "save heap" +#: js/blocks/HeapBlocks.js:327 +#: js/blocks/HeapBlocks.js:647 +#.TRANS: empty the heap +msgid "empty heap" msgstr "" -#: js/ProgramBlocks.js:629 -msgid "The Save-dictionary block saves a dictionary to a file." +#: js/blocks/HeapBlocks.js:371 +msgid "The Reverse-heap block reverses the order of the heap." msgstr "" -#: js/ProgramBlocks.js:640 -#.TRANS: save a dictionary to a file -msgid "save dictionary" +#: js/blocks/HeapBlocks.js:384 +#.TRANS: reverse the order of the heap +msgid "reverse heap" msgstr "" -#: js/ProgramBlocks.js:720 -msgid "The Open palette block opens a palette." +#: js/blocks/HeapBlocks.js:428 +msgid "The Index-heap block returns a value in the heap at a specified location." msgstr "" -#: js/ProgramBlocks.js:727 -msgid "open palette" +#: js/blocks/HeapBlocks.js:443 +#.TRANS: retrieve a value from the heap at index position in the heap +msgid "index heap" msgstr "" -#: js/ProgramBlocks.js:785 -msgid "The Delete block block removes a block." +#: js/blocks/HeapBlocks.js:523 +msgid "The Set-heap entry block sets a value in he heap at the specified location." msgstr "" -#: js/ProgramBlocks.js:797 -#.TRANS: Move this block to the trash. -msgid "delete block" +#: js/blocks/HeapBlocks.js:539 +#: js/blocks/ProgramBlocks.js:299 +#.TRANS: load the heap from a JSON encoding +msgid "set heap" msgstr "" -#: js/ProgramBlocks.js:861 -msgid "The Move block block moves a block." +#: js/blocks/HeapBlocks.js:619 +msgid "The Pop block removes the value at the top of the heap." msgstr "" -#: js/ProgramBlocks.js:869 -#.TRANS: Move the position of a block on the screen. -msgid "move block" +#: js/blocks/HeapBlocks.js:633 +#.TRANS: pop a value off the top of the heap +msgid "pop" msgstr "" -#: js/ProgramBlocks.js:881 -#: js/ProgramBlocks.js:1048 -msgid "block number" +#: js/blocks/HeapBlocks.js:680 +msgid "The Push block adds a value to the top of the heap." msgstr "" -#: js/ProgramBlocks.js:935 -#.TRANS: Run program beginning at this block. -msgid "run block" +#: js/blocks/HeapBlocks.js:696 +#.TRANS: push a value onto the top of the heap +msgid "push" msgstr "" -#: js/ProgramBlocks.js:1025 -msgid "The Dock block block connections two blocks." +#: js/blocks/IntervalsBlocks.js:45 +msgid "set temperament" msgstr "" -#: js/ProgramBlocks.js:1036 -#.TRANS: We can connect a block to another block. -msgid "connect blocks" +#: js/blocks/IntervalsBlocks.js:63 +#: js/blocks/MediaBlocks.js:746 +#: js/blocks/PitchBlocks.js:657 +#: js/blocks/PitchBlocks.js:935 +#: js/blocks/PitchBlocks.js:974 +#: js/blocks/PitchBlocks.js:1007 +#: js/blocks/PitchBlocks.js:1194 +#: js/blocks/PitchBlocks.js:1717 +#: js/blocks/PitchBlocks.js:1758 +#: js/blocks/PitchBlocks.js:1866 +#: js/blocks/ToneBlocks.js:1025 +#: js/turtleactions/IntervalsActions.js:114 +#.TRANS: adjusts the shift up or down by one octave (twelve half-steps in the interval between two notes, one having twice or half the frequency in Hz of the other.) +msgid "octave" msgstr "" -#: js/ProgramBlocks.js:1048 -msgid "target block" +#: js/blocks/IntervalsBlocks.js:99 +msgid "The Temperament name block is used to select a tuning method." msgstr "" -#: js/ProgramBlocks.js:1048 -msgid "connection number" +#: js/blocks/IntervalsBlocks.js:161 +msgid "doubly" msgstr "" -#: js/ProgramBlocks.js:1140 -msgid "The Make block block creates a new block." +#: js/blocks/IntervalsBlocks.js:166 +msgid "The Doubly block will double the size of an interval." msgstr "" -#: js/ProgramBlocks.js:1152 -#.TRANS: Create a new block -msgid "make block" +#: js/blocks/IntervalsBlocks.js:262 +msgid "interval number" msgstr "" -#: js/ProgramBlocks.js:1186 -#: js/ProgramBlocks.js:1227 -#: js/RhythmBlocks.js:1128 -#: js/PitchBlocks.js:972 -#: js/PitchBlocks.js:1005 -#: js/temperament.js:340 -#: js/temperament.js:362 -#: js/temperament.js:372 -#: js/temperament.js:484 -#: js/status.js:190 -#: plugins/rodi.rtp:192 -#.TRANS: a musical note consisting of pitch and duration -msgid "note" +#: js/blocks/IntervalsBlocks.js:317 +msgid "current interval" msgstr "" -#: js/ProgramBlocks.js:1285 -msgid "Cannot find block" +#: js/blocks/IntervalsBlocks.js:387 +#.TRANS: measure the distance between two pitches in semi-tones +msgid "semi-tone interval measure" msgstr "" -#: js/ProgramBlocks.js:1304 -#: js/ProgramBlocks.js:1313 -msgid "Warning: block argument type mismatch" +#: js/blocks/IntervalsBlocks.js:454 +#: js/blocks/IntervalsBlocks.js:570 +msgid "You must use two pitch blocks when measuring an interval." msgstr "" -#: js/ProgramBlocks.js:1347 -msgid "The Open project block is used to open a project from a web page." +#: js/blocks/IntervalsBlocks.js:496 +msgid "The Scalar interval block measures the distance between two notes in the current key and mode." msgstr "" -#: js/ProgramBlocks.js:1357 -msgid "open project" +#: js/blocks/IntervalsBlocks.js:502 +#.TRANS: measure the distance between two pitches in steps of musical scale +msgid "scalar interval measure" msgstr "" -#: js/ProgramBlocks.js:1410 -msgid "Please enter a valid URL." +#: js/blocks/IntervalsBlocks.js:678 +msgid "In the figure, we add sol# to sol." msgstr "" -#: js/DrumBlocks.js:59 -msgid "The Noise name block is used to select a noise synthesizer." +#: js/blocks/IntervalsBlocks.js:684 +#: js/blocks/OrnamentBlocks.js:220 +#.TRANS: calculate a relative step between notes based on semi-tones +msgid "semi-tone interval" msgstr "" -#: js/DrumBlocks.js:102 -msgid "The Drum name block is used to select a drum." +#: js/blocks/IntervalsBlocks.js:733 +msgid "The output of the example is: do, mi, sol, sol, ti, mi" msgstr "" -#: js/DrumBlocks.js:146 -msgid "The Effects name block is used to select a sound effect." +#: js/blocks/IntervalsBlocks.js:740 +#: js/blocks/WidgetBlocks.js:768 +msgid "arpeggio" msgstr "" -#: js/DrumBlocks.js:163 -msgid "noise" +#: js/blocks/IntervalsBlocks.js:931 +msgid "The Chord block calculates common chords." msgstr "" -#: js/DrumBlocks.js:177 -msgid "The Play noise block will generate white, pink, or brown noise." +#: js/blocks/IntervalsBlocks.js:933 +msgid "In the figure, we generate a C-major chord." msgstr "" -#: js/DrumBlocks.js:191 -#: js/musicutils.js:752 -#: js/synthutils.js:47 -#.TRANS: white noise synthesizer -msgid "white noise" +#: js/blocks/IntervalsBlocks.js:938 +msgid "chord" msgstr "" -#: js/DrumBlocks.js:326 -msgid "Replace every instance of a pitch with a drum sound." +#: js/blocks/IntervalsBlocks.js:990 +msgid "The Ratio Interval block calculates an interval based on a ratio." msgstr "" -#: js/DrumBlocks.js:337 -#.TRANS: map a pitch to a drum sound -msgid "map pitch to drum" +#: js/blocks/IntervalsBlocks.js:995 +msgid "ratio interval" msgstr "" -#: js/DrumBlocks.js:404 -msgid "In the example above, a kick drum sound will be played instead of sol." +#: js/blocks/IntervalsBlocks.js:1064 +msgid "In the figure, we add la to sol." msgstr "" -#: js/DrumBlocks.js:416 -#.TRANS: set the current drum sound for playback -msgid "set drum" +#: js/blocks/IntervalsBlocks.js:1120 +#.TRANS: define a custom mode +msgid "define mode" msgstr "" -#: js/DrumBlocks.js:460 -msgid "sound effect" +#: js/blocks/IntervalsBlocks.js:1173 +msgid "movable Do" msgstr "" -#: js/DrumBlocks.js:498 -msgid "You can use multiple Drum blocks within a Note block." +#: js/blocks/IntervalsBlocks.js:1224 +#.TRANS: mode length is the number of notes in the mode, e.g., 7 for major and minor scales; 12 for chromatic scales +msgid "mode length" msgstr "" -#: js/RhythmBlocks.js:182 -#: js/RhythmBlocks.js:1086 -#: js/RhythmBlocks.js:1162 -msgid "Note value must be greater than 0." +#: js/blocks/IntervalsBlocks.js:1233 +msgid "The Mode length block is the number of notes in the current scale." msgstr "" -#: js/RhythmBlocks.js:215 -#: js/RhythmBlocks.js:278 -#: js/RhythmBlocks.js:350 -#.TRANS: swing is a rhythmic variation that emphasises the offbeat -msgid "swing" +#: js/blocks/IntervalsBlocks.js:1235 +msgid "Most Western scales have 7 notes." msgstr "" -#: js/RhythmBlocks.js:355 -#.TRANS: the amount to shift to the offbeat note -msgid "swing value" +#: js/blocks/IntervalsBlocks.js:1284 +#.TRANS: the mode in music is 'major', 'minor', etc. +msgid "current mode" msgstr "" -#: js/RhythmBlocks.js:419 -msgid "The Skip notes block will cause notes to be skipped." +#: js/blocks/IntervalsBlocks.js:1337 +#.TRANS: the key is a group of pitches with which a music composition is created +msgid "current key" msgstr "" -#: js/RhythmBlocks.js:427 -#.TRANS: substitute rests on notes being skipped -msgid "skip notes" +#: js/blocks/IntervalsBlocks.js:1389 +#: js/blocks/IntervalsBlocks.js:1434 +#.TRANS: set the key and mode, e.g. C Major +msgid "set key" msgstr "" -#: js/RhythmBlocks.js:489 -#.TRANS: speed up note duration by some factor, e.g. convert 1/4 to 1/8 notes by using a factor of 2 -msgid "multiply note value" +#: js/blocks/IntervalsBlocks.js:1443 +#: js/blocks/IntervalsBlocks.js:1449 +msgid "The Set key block is used to set the key and mode," msgstr "" -#: js/RhythmBlocks.js:542 -msgid "The Tie block works on pairs of notes, combining them into one note." +#: js/blocks/IntervalsBlocks.js:1449 +msgid "eg C Major" msgstr "" -#: js/RhythmBlocks.js:550 -#.TRANS: tie notes together into one longer note -msgid "tie" +#: js/blocks/MediaBlocks.js:35 +#.TRANS: right side of the screen +msgid "right (screen)" msgstr "" -#: js/RhythmBlocks.js:591 -#: js/RhythmBlocks.js:671 -#.TRANS: a dotted note is played for 1.5x its value, e.g., 1/8. --> 3/16 -msgid "dot" +#: js/blocks/MediaBlocks.js:45 +#: js/blocks/MediaBlocks.js:56 +msgid "The Right block returns the position of the right of the canvas." msgstr "" -#: js/RhythmBlocks.js:619 -#: js/RhythmActions.js:221 -msgid "An argument of -1 results in a note value of 0." +#: js/blocks/MediaBlocks.js:97 +#.TRANS: left side of the screen +msgid "left (screen)" msgstr "" -#: js/RhythmBlocks.js:661 -msgid "The Dot block extends the duration of a note by 50%." +#: js/blocks/MediaBlocks.js:107 +#: js/blocks/MediaBlocks.js:118 +msgid "The Left block returns the position of the left of the canvas." msgstr "" -#: js/RhythmBlocks.js:663 -msgid "Eg a dotted quarter note will play for 3/8 (1/4 + 1/8) of a beat." +#: js/blocks/MediaBlocks.js:158 +msgid "top (screen)" msgstr "" -#: js/RhythmBlocks.js:765 -#.TRANS: Japanese only: note value block for drum -msgid "note value drum" +#: js/blocks/MediaBlocks.js:168 +#: js/blocks/MediaBlocks.js:179 +msgid "The Top block returns the position of the top of the canvas." msgstr "" -#: js/RhythmBlocks.js:829 -msgid "392 hertz" +#: js/blocks/MediaBlocks.js:219 +msgid "bottom (screen)" msgstr "" -#: js/RhythmBlocks.js:1119 -msgid "The Note block is a container for one or more Pitch blocks." +#: js/blocks/MediaBlocks.js:229 +#: js/blocks/MediaBlocks.js:240 +msgid "The Bottom block returns the position of the bottom of the canvas." msgstr "" -#: js/RhythmBlocks.js:1121 -msgid "The Note block specifies the duration (note value) of its contents." +#: js/blocks/MediaBlocks.js:282 +msgid "width" msgstr "" -#: js/RhythmBlocks.js:1130 -msgid "value2" +#: js/blocks/MediaBlocks.js:291 +msgid "The Width block returns the width of the canvas." msgstr "" -#: js/RhythmBlocks.js:1200 -msgid "define frequency" +#: js/blocks/MediaBlocks.js:325 +msgid "height" msgstr "" -#: js/RhythmBlocks.js:1218 -#: js/temperament.js:650 -#: js/temperament.js:1421 -msgid "octave space" +#: js/blocks/MediaBlocks.js:334 +msgid "The Height block returns the height of the canvas." msgstr "" -#: js/NumberBlocks.js:28 -msgid "The Int block returns an integer." +#: js/blocks/MediaBlocks.js:369 +#.TRANS: stops playback of an audio recording +msgid "stop play" msgstr "" -#: js/NumberBlocks.js:34 -msgid "int" +#: js/blocks/MediaBlocks.js:404 +#.TRANS: Erases the images and text +msgid "erase media" msgstr "" -#: js/NumberBlocks.js:73 -msgid "The Mod block returns the remainder from a division." +#: js/blocks/MediaBlocks.js:409 +msgid "The Erase Media block erases text and images." msgstr "" -#: js/NumberBlocks.js:79 -msgid "mod" +#: js/blocks/MediaBlocks.js:439 +#.TRANS: play an audio recording +msgid "play back" msgstr "" -#: js/NumberBlocks.js:123 -msgid "The Power block calculates a power function." +#: js/blocks/MediaBlocks.js:487 +msgid "speak" msgstr "" -#: js/NumberBlocks.js:178 -msgid "The Sqrt block returns the square root." +#: js/blocks/MediaBlocks.js:495 +msgid "The Speak block outputs to the text-to-speech synthesizer" msgstr "" -#: js/NumberBlocks.js:184 -msgid "sqrt" +#: js/blocks/MediaBlocks.js:546 +msgid "camera" msgstr "" -#: js/NumberBlocks.js:230 -msgid "The Abs block returns the absolute value." +#: js/blocks/MediaBlocks.js:551 +msgid "The Camera block connects a webcam to the Show block." msgstr "" -#: js/NumberBlocks.js:236 -msgid "abs" +#: js/blocks/MediaBlocks.js:574 +msgid "video" msgstr "" -#: js/NumberBlocks.js:277 -msgid "The Distance block returns the distance between two points. For example, between the mouse and the center of the screen." +#: js/blocks/MediaBlocks.js:579 +msgid "The Video block selects video for use with the Show block." msgstr "" -#: js/NumberBlocks.js:283 -#: plugins/rodi.rtp:310 -msgid "distance" +#: js/blocks/MediaBlocks.js:607 +msgid "The Open file block opens a file for use with the Show block." msgstr "" -#: js/NumberBlocks.js:343 -msgid "The Divide block is used to divide." +#: js/blocks/MediaBlocks.js:645 +msgid "stop media" msgstr "" -#: js/NumberBlocks.js:411 -msgid "The Multiply block is used to multiply." +#: js/blocks/MediaBlocks.js:650 +msgid "The Stop media block stops audio or video playback." msgstr "" -#: js/NumberBlocks.js:554 -msgid "The Minus block is used to subtract." +#: js/blocks/MediaBlocks.js:679 +#: js/blocks/PitchBlocks.js:1577 +#: js/widgets/musickeyboard.js:1936 +#: js/widgets/phrasemaker.js:1037 +#.TRANS: a measure of frequency: one cycle per second +msgid "hertz" msgstr "" -#: js/NumberBlocks.js:647 -msgid "The Plus block is used to add." +#: js/blocks/MediaBlocks.js:692 +#: js/blocks/WidgetBlocks.js:182 +#: js/widgets/temperament.js:506 +#: js/widgets/temperament.js:546 +#: js/widgets/temperament.js:610 +#: js/widgets/temperament.js:618 +#: js/widgets/temperament.js:1505 +#: js/widgets/timbre.js:1842 +msgid "frequency" msgstr "" -#: js/NumberBlocks.js:773 -msgid "The One-of block returns one of two choices." +#: js/blocks/MediaBlocks.js:692 +msgid "duration (ms)" msgstr "" -#: js/NumberBlocks.js:780 -#: js/PitchBlocks.js:616 -msgid "one of" +#: js/blocks/MediaBlocks.js:728 +#.TRANS: translate a note into hertz, e.g., A4 -> 440HZ +msgid "note to frequency" msgstr "" -#: js/NumberBlocks.js:782 -msgid "this" +#: js/blocks/MediaBlocks.js:736 +msgid "The To frequency block converts a pitch name and octave to Hertz." msgstr "" -#: js/NumberBlocks.js:782 -msgid "that" +#: js/blocks/MediaBlocks.js:746 +#: js/blocks/PitchBlocks.js:656 +#: js/blocks/PitchBlocks.js:934 +#: js/blocks/PitchBlocks.js:1866 +#.TRANS: name2 is name as in name of pitch (JAPANESE ONLY) +msgid "name2" msgstr "" -#: js/NumberBlocks.js:837 -msgid "The Random block returns a random number." +#: js/blocks/MediaBlocks.js:812 +msgid "The Avatar block is used to change the appearance of the mouse." msgstr "" -#: js/NumberBlocks.js:844 -msgid "random" +#: js/blocks/MediaBlocks.js:819 +msgid "The Avatar block is used to change the appearance of the turtle." msgstr "" -#: js/NumberBlocks.js:846 -msgid "min" +#: js/blocks/MediaBlocks.js:831 +#: js/blocks/MediaBlocks.js:891 +#.TRANS: a media object +msgid "size" msgstr "" -#: js/NumberBlocks.js:846 -msgid "max" +#: js/blocks/MediaBlocks.js:831 +msgid "image" msgstr "" -#: js/NumberBlocks.js:910 -msgid "The Number block holds a number." +#: js/blocks/MediaBlocks.js:880 +msgid "The Show block is used to display text or images on the canvas." msgstr "" -#: js/BoxesBlocks.js:53 -#: js/BoxesBlocks.js:59 -msgid "The Add-to block is used to add to the value stored in a box." +#: js/blocks/MediaBlocks.js:888 +#.TRANS: show1 is show as in display an image or text on the screen. +msgid "show1" msgstr "" -#: js/BoxesBlocks.js:61 -msgid "It can also be used with other blocks such as Color and Pen size." +#: js/blocks/MediaBlocks.js:891 +msgid "obj" msgstr "" -#: js/BoxesBlocks.js:73 -msgid "add" +#: js/blocks/MediaBlocks.js:938 +msgid "The Media block is used to import an image." msgstr "" -#: js/BoxesBlocks.js:75 -#: js/temperament.js:716 -msgid "to" +#: js/blocks/MediaBlocks.js:973 +msgid "The Text block holds a text string." msgstr "" -#: js/BoxesBlocks.js:75 -#: js/BoxesBlocks.js:595 -#: js/HeapBlocks.js:544 -msgid "value1" +#: js/blocks/MeterBlocks.js:34 +#.TRANS: musical meter (time signature), e.g., 4:4 +msgid "current meter" msgstr "" -#: js/BoxesBlocks.js:118 -msgid "Block does not support incrementing." +#: js/blocks/MeterBlocks.js:85 +#.TRANS: number of beats per minute +msgid "beat factor" msgstr "" -#: js/BoxesBlocks.js:152 -msgid "The Add-1-to block adds one to the value stored in a box." +#: js/blocks/MeterBlocks.js:161 +msgid "The Beats per minute block returns the current beats per minute." msgstr "" -#: js/BoxesBlocks.js:163 -msgid "add 1 to" +#: js/blocks/MeterBlocks.js:169 +#: js/widgets/status.js:152 +#.TRANS: number of beats played per minute +msgid "beats per minute2" msgstr "" -#: js/BoxesBlocks.js:211 -msgid "The Subtract-1-from block subtracts one from the value stored in a box." +#: js/blocks/MeterBlocks.js:169 +#: js/blocks/MeterBlocks.js:1056 +#: js/blocks/MeterBlocks.js:1133 +#: js/blocks/MeterBlocks.js:1211 +#.TRANS: sets tempo by defining a beat and beats per minute +msgid "beats per minute" msgstr "" -#: js/BoxesBlocks.js:222 -msgid "subtract 1 from" +#: js/blocks/MeterBlocks.js:233 +#.TRANS: count of current musical measure in meter +msgid "measure count" msgstr "" -#: js/BoxesBlocks.js:270 -#: js/BoxesBlocks.js:387 -msgid "The Box block returns the value stored in a box." +#: js/blocks/MeterBlocks.js:241 +msgid "The Measure count block returns the current measure." msgstr "" -#: js/BoxesBlocks.js:500 -#: js/BoxesBlocks.js:576 -msgid "The Store in block will store a value in a box." +#: js/blocks/MeterBlocks.js:290 +#.TRANS: count of current beat in the meter +msgid "beat count" msgstr "" -#: js/BoxesBlocks.js:652 -msgid "The Box2 block returns the value stored in Box2." +#: js/blocks/MeterBlocks.js:300 +#: js/blocks/MeterBlocks.js:311 +#: js/blocks/MeterBlocks.js:565 +#: js/blocks/MeterBlocks.js:576 +msgid "The Beat count block is the number of the current beat," msgstr "" -#: js/BoxesBlocks.js:703 -msgid "The Store in Box2 block is used to store a value in Box2." +#: js/blocks/MeterBlocks.js:313 +#: js/blocks/MeterBlocks.js:578 +msgid "eg 1, 2, 3, or 4." msgstr "" -#: js/BoxesBlocks.js:715 -msgid "store in box2" +#: js/blocks/MeterBlocks.js:368 +#.TRANS: count the number of notes +msgid "sum note values" msgstr "" -#: js/BoxesBlocks.js:761 -msgid "The Box1 block returns the value stored in Box1." +#: js/blocks/MeterBlocks.js:376 +#: js/blocks/MeterBlocks.js:440 +msgid "The Note counter block can be used to count the number of contained notes." msgstr "" -#: js/BoxesBlocks.js:812 -msgid "The Store in Box1 block is used to store a value in Box1." +#: js/blocks/MeterBlocks.js:432 +#.TRANS: count the number of notes +msgid "note counter" msgstr "" -#: js/BoxesBlocks.js:826 -msgid "store in box1" +#: js/blocks/MeterBlocks.js:496 +#.TRANS: number of whole notes that have been played +msgid "whole notes played" msgstr "" -#: js/HeapBlocks.js:49 -msgid "The Heap block returns the heap." +#: js/blocks/MeterBlocks.js:505 +msgid "The Whole notes played block returns the total number of whole notes played." msgstr "" -#: js/HeapBlocks.js:133 -msgid "show heap" +#: js/blocks/MeterBlocks.js:555 +#: js/turtleactions/DictActions.js:83 +#.TRANS: number of notes that have been played +msgid "notes played" msgstr "" -#: js/HeapBlocks.js:181 -msgid "The Heap-length block returns the length of the heap." +#: js/blocks/MeterBlocks.js:653 +msgid "The No clock block decouples the notes from the master clock." msgstr "" -#: js/HeapBlocks.js:195 -msgid "heap length" +#: js/blocks/MeterBlocks.js:661 +#.TRANS: don't lock notes to master clock +msgid "no clock" msgstr "" -#: js/HeapBlocks.js:254 -msgid "The Heap-empty? block returns true if the heap is empty." +#: js/blocks/MeterBlocks.js:700 +msgid "on weak beat do" msgstr "" -#: js/HeapBlocks.js:268 -#.TRANS: Is the heap empty? -msgid "heap empty?" +#: js/blocks/MeterBlocks.js:705 +msgid "The On-weak-beat block lets you specify actions to take on weak (off) beats." msgstr "" -#: js/HeapBlocks.js:317 -msgid "The Empty-heap block empties the heap." +#: js/blocks/MeterBlocks.js:750 +msgid "on strong beat" msgstr "" -#: js/HeapBlocks.js:327 -#: js/HeapBlocks.js:647 -#.TRANS: empty the heap -msgid "empty heap" +#: js/blocks/MeterBlocks.js:758 +msgid "The On-strong-beat block lets you specify actions to take on specified beats." msgstr "" -#: js/HeapBlocks.js:371 -msgid "The Reverse-heap block reverses the order of the heap." +#: js/blocks/MeterBlocks.js:769 +msgid "beat" msgstr "" -#: js/HeapBlocks.js:384 -#.TRANS: reverse the order of the heap -msgid "reverse heap" +#: js/blocks/MeterBlocks.js:813 +msgid "on every beat do" msgstr "" -#: js/HeapBlocks.js:428 -msgid "The Index-heap block returns a value in the heap at a specified location." +#: js/blocks/MeterBlocks.js:821 +msgid "The On-every-beat block lets you specify actions to take on every beat." msgstr "" -#: js/HeapBlocks.js:443 -#.TRANS: retrieve a value from the heap at index position in the heap -msgid "index heap" +#: js/blocks/MeterBlocks.js:874 +msgid "on every note do" msgstr "" -#: js/HeapBlocks.js:523 -msgid "The Set-heap entry block sets a value in he heap at the specified location." +#: js/blocks/MeterBlocks.js:882 +msgid "The On-every-note block lets you specify actions to take on every note." msgstr "" -#: js/HeapBlocks.js:619 -msgid "The Pop block removes the value at the top of the heap." +#: js/blocks/MeterBlocks.js:928 +#: js/blocks/MeterBlocks.js:999 +#.TRANS: sets tempo by defining a beat and beats per minute +msgid "master beats per minute" msgstr "" -#: js/HeapBlocks.js:633 -#.TRANS: pop a value off the top of the heap -msgid "pop" +#: js/blocks/MeterBlocks.js:952 +#: js/blocks/MeterBlocks.js:1078 +#: js/blocks/MeterBlocks.js:1135 +msgid "bpm" msgstr "" -#: js/HeapBlocks.js:680 -msgid "The Push block adds a value to the top of the heap." +#: js/blocks/MeterBlocks.js:952 +#: js/blocks/MeterBlocks.js:1078 +#: js/blocks/MeterBlocks.js:1135 +msgid "beat value" msgstr "" -#: js/HeapBlocks.js:696 -#.TRANS: push a value onto the top of the heap -msgid "push" +#: js/blocks/MeterBlocks.js:1024 +#: js/blocks/MeterBlocks.js:1167 +#: js/blocks/MeterBlocks.js:1241 +msgid "Beats per minute must be > 30." msgstr "" -#: js/FlowBlocks.js:41 -msgid "The Backward block runs code in reverse order (Musical retrograde)." +#: js/blocks/MeterBlocks.js:1027 +#: js/blocks/MeterBlocks.js:1170 +#: js/blocks/MeterBlocks.js:1244 +msgid "Maximum beats per minute is 1000." msgstr "" -#: js/FlowBlocks.js:48 -msgid "backward" +#: js/blocks/MeterBlocks.js:1068 +msgid "The Beats per minute block sets the number of 1/4 notes per minute." msgstr "" -#: js/FlowBlocks.js:124 -msgid "The Duplicate block will run each block multiple times." +#: js/blocks/MeterBlocks.js:1279 +#.TRANS: anacrusis +msgid "pickup" msgstr "" -#: js/FlowBlocks.js:136 -msgid "duplicate" +#: js/blocks/MeterBlocks.js:1367 +msgid "number of beats" msgstr "" -#: js/FlowBlocks.js:334 -msgid "The Default block is used inside of a Switch to define the default action." +#: js/blocks/NumberBlocks.js:28 +msgid "The Int block returns an integer." msgstr "" -#: js/FlowBlocks.js:342 -msgid "default" +#: js/blocks/NumberBlocks.js:34 +msgid "int" msgstr "" -#: js/FlowBlocks.js:361 -#: js/FlowBlocks.js:418 -msgid "The Case Block must be used inside of a Switch Block." +#: js/blocks/NumberBlocks.js:73 +msgid "The Mod block returns the remainder from a division." msgstr "" -#: js/FlowBlocks.js:389 -msgid "The Case block is used inside of a Switch to define matches." +#: js/blocks/NumberBlocks.js:79 +msgid "mod" msgstr "" -#: js/FlowBlocks.js:397 -msgid "case" +#: js/blocks/NumberBlocks.js:141 +msgid "The Power block calculates a power function." msgstr "" -#: js/FlowBlocks.js:446 -msgid "The Switch block will run the code in the matching Case." +#: js/blocks/NumberBlocks.js:196 +msgid "The Sqrt block returns the square root." msgstr "" -#: js/FlowBlocks.js:454 -msgid "switch" +#: js/blocks/NumberBlocks.js:202 +msgid "sqrt" msgstr "" -#: js/FlowBlocks.js:595 -msgid "The Stop block will stop a loop" +#: js/blocks/NumberBlocks.js:248 +msgid "The Abs block returns the absolute value." msgstr "" -#: js/FlowBlocks.js:597 -msgid "Forever, Repeat, While, or Until." +#: js/blocks/NumberBlocks.js:254 +msgid "abs" msgstr "" -#: js/FlowBlocks.js:604 -#: js/phrasemaker.js:3799 -#: js/musickeyboard.js:629 -#: js/musickeyboard.js:631 -#: js/timbre.js:417 -#: js/timbre.js:419 -#: plugins/rodi.rtp:29 -#: plugins/rodi.rtp:73 -#: plugins/rodi.rtp:413 -msgid "stop" +#: js/blocks/NumberBlocks.js:295 +msgid "The Distance block returns the distance between two points. For example, between the mouse and the center of the screen." msgstr "" -#: js/FlowBlocks.js:653 -msgid "The Waitfor block will wait until the condition is true." +#: js/blocks/NumberBlocks.js:301 +#: plugins/rodi.rtp:310 +msgid "distance" msgstr "" -#: js/FlowBlocks.js:661 -msgid "wait for" +#: js/blocks/NumberBlocks.js:361 +msgid "The Divide block is used to divide." msgstr "" -#: js/FlowBlocks.js:732 -msgid "The Until block will repeat until the condition is true." +#: js/blocks/NumberBlocks.js:441 +msgid "The Multiply block is used to multiply." msgstr "" -#: js/FlowBlocks.js:740 -msgid "until" +#: js/blocks/NumberBlocks.js:612 +msgid "The Minus block is used to subtract." msgstr "" -#: js/FlowBlocks.js:742 -#: js/FlowBlocks.js:822 -msgid "do2" +#: js/blocks/NumberBlocks.js:723 +msgid "The Plus block is used to add." msgstr "" -#: js/FlowBlocks.js:812 -msgid "The While block will repeat while the condition is true." +#: js/blocks/NumberBlocks.js:849 +msgid "The One-of block returns one of two choices." msgstr "" -#: js/FlowBlocks.js:820 -msgid "while" +#: js/blocks/NumberBlocks.js:856 +#: js/blocks/PitchBlocks.js:616 +msgid "one of" msgstr "" -#: js/FlowBlocks.js:903 -#: js/FlowBlocks.js:968 -#: js/FlowBlocks.js:979 -msgid "In this example if the mouse button is pressed a snare drum will play." +#: js/blocks/NumberBlocks.js:858 +msgid "this" msgstr "" -#: js/FlowBlocks.js:925 -#: js/FlowBlocks.js:988 -msgid "if" +#: js/blocks/NumberBlocks.js:858 +msgid "that" msgstr "" -#: js/FlowBlocks.js:927 -#: js/FlowBlocks.js:990 -msgid "then" +#: js/blocks/NumberBlocks.js:913 +msgid "The Random block returns a random number." msgstr "" -#: js/FlowBlocks.js:927 -msgid "else" +#: js/blocks/NumberBlocks.js:920 +msgid "random" msgstr "" -#: js/FlowBlocks.js:1025 -msgid "The Forever block will repeat the contained blocks forever." +#: js/blocks/NumberBlocks.js:922 +msgid "min" msgstr "" -#: js/FlowBlocks.js:1037 -msgid "forever" +#: js/blocks/NumberBlocks.js:922 +msgid "max" msgstr "" -#: js/FlowBlocks.js:1073 -msgid "The Repeat block will repeat the contained blocks." +#: js/blocks/NumberBlocks.js:986 +msgid "The Number block holds a number." msgstr "" -#: js/FlowBlocks.js:1075 -msgid "In this example the note will be played 4 times." +#: js/blocks/OrnamentBlocks.js:32 +msgid "staccato factor" msgstr "" -#: js/FlowBlocks.js:1083 -msgid "repeat" +#: js/blocks/OrnamentBlocks.js:108 +msgid "slur factor" msgstr "" -#: js/FlowBlocks.js:1123 -msgid "duplicate factor" +#: js/blocks/OrnamentBlocks.js:217 +#: js/blocks/OrnamentBlocks.js:309 +#.TRANS: the neighbor refers to a neighboring note, e.g., D is a neighbor of C +msgid "neighbor" msgstr "" -#: js/PitchBlocks.js:39 -#: js/musicutils.js:722 -#: js/musicutils.js:1117 -#: js/synthutils.js:112 -#.TRANS: square wave -msgid "square" +#: js/blocks/OrnamentBlocks.js:293 +msgid "The Neighbor block rapidly switches between neighboring pitches." msgstr "" -#: js/PitchBlocks.js:62 -#: js/ToneBlocks.js:39 -#: js/musicutils.js:723 -#: js/musicutils.js:1118 -#: js/synthutils.js:116 -#.TRANS: triangle wave -msgid "triangle" +#: js/blocks/OrnamentBlocks.js:364 +msgid "glide" msgstr "" -#: js/PitchBlocks.js:85 -#: js/musicutils.js:721 -#: js/musicutils.js:1116 -#: js/synthutils.js:110 -#.TRANS: sine wave -msgid "sine" +#: js/blocks/OrnamentBlocks.js:479 +#: js/blocks/OrnamentBlocks.js:643 +msgid "slur" msgstr "" -#: js/PitchBlocks.js:108 -#: js/musicutils.js:724 -#: js/musicutils.js:1119 -#: js/synthutils.js:114 -#.TRANS: sawtooth wave -msgid "sawtooth" +#: js/blocks/OrnamentBlocks.js:558 +#: js/blocks/OrnamentBlocks.js:710 +#.TRANS: play each note sharply detached from the others +msgid "staccato" msgstr "" -#: js/PitchBlocks.js:141 -#.TRANS: musical transposition (adjustment of pitch up or down) -msgid "transposition" +#: js/blocks/RhythmBlocks.js:182 +#: js/blocks/RhythmBlocks.js:1086 +#: js/blocks/RhythmBlocks.js:1162 +msgid "Note value must be greater than 0." msgstr "" -#: js/PitchBlocks.js:168 -#.TRANS: step down one note in current musical scale -msgid "scalar step down" +#: js/blocks/RhythmBlocks.js:215 +#: js/blocks/RhythmBlocks.js:278 +#: js/blocks/RhythmBlocks.js:350 +#.TRANS: swing is a rhythmic variation that emphasises the offbeat +msgid "swing" msgstr "" -#: js/PitchBlocks.js:172 -msgid "The Scalar step down block returns the number of semi-tones down to the previous note in the current key and mode." +#: js/blocks/RhythmBlocks.js:355 +#.TRANS: the amount to shift to the offbeat note +msgid "swing value" msgstr "" -#: js/PitchBlocks.js:190 -#.TRANS: step up one note in current musical scale -msgid "scalar step up" +#: js/blocks/RhythmBlocks.js:419 +msgid "The Skip notes block will cause notes to be skipped." msgstr "" -#: js/PitchBlocks.js:194 -msgid "The Scalar step up block returns the number of semi-tones up to the next note in the current key and mode." +#: js/blocks/RhythmBlocks.js:427 +#.TRANS: substitute rests on notes being skipped +msgid "skip notes" msgstr "" -#: js/PitchBlocks.js:212 -#.TRANS: the change measured in half-steps between the current pitch and the previous pitch -msgid "change in pitch" +#: js/blocks/RhythmBlocks.js:489 +#.TRANS: speed up note duration by some factor, e.g. convert 1/4 to 1/8 notes by using a factor of 2 +msgid "multiply note value" msgstr "" -#: js/PitchBlocks.js:216 -msgid "The Change in pitch block is the difference (in half steps) between the current pitch being played and the previous pitch played." +#: js/blocks/RhythmBlocks.js:542 +msgid "The Tie block works on pairs of notes, combining them into one note." msgstr "" -#: js/PitchBlocks.js:243 -#.TRANS: the change measured in scale-steps between the current pitch and the previous pitch -msgid "scalar change in pitch" +#: js/blocks/RhythmBlocks.js:550 +#.TRANS: tie notes together into one longer note +msgid "tie" msgstr "" -#: js/PitchBlocks.js:250 -#: js/PitchBlocks.js:432 -#: js/PitchBlocks.js:1629 -#: js/DictActions.js:89 -#: js/temperament.js:477 -#: js/temperament.js:481 -#: js/temperament.js:714 -#.TRANS: convert current note to piano key (1-88) -#.TRANS: a mapping of pitch to the 88 piano keys -msgid "pitch number" +#: js/blocks/RhythmBlocks.js:591 +#: js/blocks/RhythmBlocks.js:671 +#.TRANS: a dotted note is played for 1.5x its value, e.g., 1/8. --> 3/16 +msgid "dot" msgstr "" -#: js/PitchBlocks.js:256 -msgid "The Pitch number block is the value of the pitch of the note currently being played." +#: js/blocks/RhythmBlocks.js:619 +#: js/turtleactions/RhythmActions.js:221 +msgid "An argument of -1 results in a note value of 0." msgstr "" -#: js/PitchBlocks.js:329 -#: js/PitchBlocks.js:433 -#.TRANS: the current pitch expressed in Hertz -msgid "pitch in hertz" +#: js/blocks/RhythmBlocks.js:661 +msgid "The Dot block extends the duration of a note by 50%." msgstr "" -#: js/PitchBlocks.js:334 -msgid "The Pitch in Hertz block is the value in Hertz of the pitch of the note currently being played." +#: js/blocks/RhythmBlocks.js:663 +msgid "Eg a dotted quarter note will play for 3/8 (1/4 + 1/8) of a beat." msgstr "" -#: js/PitchBlocks.js:367 -#: js/DictActions.js:87 -msgid "current pitch" +#: js/blocks/RhythmBlocks.js:765 +#.TRANS: Japanese only: note value block for drum +msgid "note value drum" msgstr "" -#: js/PitchBlocks.js:373 -msgid "The Current Pitch block is used with the Pitch Converter block. In the example above, current pitch, sol 4, is displayed as 392 hertz." +#: js/blocks/RhythmBlocks.js:829 +msgid "392 hertz" msgstr "" -#: js/PitchBlocks.js:410 -msgid "This block converts the pitch value of the last note played into different formats such as hertz, letter name, pitch number, et al." +#: js/blocks/RhythmBlocks.js:1119 +msgid "The Note block is a container for one or more Pitch blocks." msgstr "" -#: js/PitchBlocks.js:434 -msgid "alphabet" +#: js/blocks/RhythmBlocks.js:1121 +msgid "The Note block specifies the duration (note value) of its contents." msgstr "" -#: js/PitchBlocks.js:436 -#.TRANS: Translate as "alphabet class" -msgid "letter class" +#: js/blocks/RhythmBlocks.js:1128 +#: js/blocks/PitchBlocks.js:974 +#: js/blocks/PitchBlocks.js:1007 +#: js/blocks/ProgramBlocks.js:1186 +#: js/blocks/ProgramBlocks.js:1227 +#: js/widgets/status.js:190 +#: js/widgets/temperament.js:464 +#: js/widgets/temperament.js:486 +#: js/widgets/temperament.js:496 +#: js/widgets/temperament.js:617 +#: plugins/rodi.rtp:192 +#.TRANS: a musical note consisting of pitch and duration +msgid "note" msgstr "" -#: js/PitchBlocks.js:437 -msgid "solfege class" +#: js/blocks/RhythmBlocks.js:1130 +msgid "value2" msgstr "" -#: js/PitchBlocks.js:438 -msgid "staff y" +#: js/blocks/RhythmBlocks.js:1200 +msgid "define frequency" msgstr "" -#: js/PitchBlocks.js:439 -msgid "solfege syllable" +#: js/blocks/RhythmBlocks.js:1218 +#: js/widgets/temperament.js:787 +#: js/widgets/temperament.js:1587 +msgid "octave space" msgstr "" -#: js/PitchBlocks.js:440 -msgid "pitch class" +#: js/blocks/SensorsBlocks.js:36 +msgid "The Input block prompts for keyboard input." msgstr "" -#: js/PitchBlocks.js:441 -msgid "scalar class" +#: js/blocks/SensorsBlocks.js:46 +msgid "input" msgstr "" -#: js/PitchBlocks.js:443 -msgid "nth degree" +#: js/blocks/SensorsBlocks.js:64 +msgid "Input a value" msgstr "" -#: js/PitchBlocks.js:444 -msgid "pitch to shade" +#: js/blocks/SensorsBlocks.js:126 +msgid "input value" msgstr "" -#: js/PitchBlocks.js:445 -msgid "pitch to color" +#: js/blocks/SensorsBlocks.js:131 +msgid "The Input-value block stores the input." msgstr "" -#: js/PitchBlocks.js:629 -#: js/musickeyboard.js:565 -#.TRANS: MIDI is a technical standard for electronic music -msgid "MIDI" +#: js/blocks/SensorsBlocks.js:238 +msgid "loudness" msgstr "" -#: js/PitchBlocks.js:642 -#.TRANS: set an offset associated with the numeric piano keyboard mapping -msgid "set pitch number offset" +#: js/blocks/SensorsBlocks.js:245 +msgid "The Loudness block returns the volume detected by the microphone." msgstr "" -#: js/PitchBlocks.js:645 -msgid "The Set pitch number offset block is used to set the offset for mapping pitch numbers to pitch and octave." +#: js/blocks/SensorsBlocks.js:300 +msgid "click" msgstr "" -#: js/PitchBlocks.js:679 -#.TRANS: convert piano key number (1-88) to pitch -msgid "number to pitch" +#: js/blocks/SensorsBlocks.js:306 +msgid "The Click block triggers an event if a mouse has been clicked." msgstr "" -#: js/PitchBlocks.js:682 -msgid "The Number to pitch block will convert a pitch number to a pich name." +#: js/blocks/SensorsBlocks.js:313 +msgid "The Click block triggers an event if a turtle has been clicked." msgstr "" -#: js/PitchBlocks.js:715 -#.TRANS: convert piano key number (1-88) to octave -msgid "number to octave" +#: js/blocks/SensorsBlocks.js:342 +msgid "cursor over" msgstr "" -#: js/PitchBlocks.js:717 -msgid "The Number to octave block will convert a pitch number to an octave." +#: js/blocks/SensorsBlocks.js:387 +msgid "cursor out" msgstr "" -#: js/PitchBlocks.js:726 -msgid "y to pitch" +#: js/blocks/SensorsBlocks.js:433 +msgid "cursor button down" msgstr "" -#: js/PitchBlocks.js:729 -msgid "Y to pitch block will convert a staff y position to corresponding pitch notation." +#: js/blocks/SensorsBlocks.js:477 +msgid "cursor button up" msgstr "" -#: js/PitchBlocks.js:841 -msgid "accidental selector" +#: js/blocks/SensorsBlocks.js:521 +#: js/blocks/PenBlocks.js:48 +#: plugins/rodi.rtp:219 +msgid "blue" msgstr "" -#: js/PitchBlocks.js:844 -msgid "The Accidental selector block is used to choose between double-sharp, sharp, natural, flat, and double-flat." +#: js/blocks/SensorsBlocks.js:577 +#: js/blocks/PenBlocks.js:64 +#: plugins/rodi.rtp:218 +msgid "green" msgstr "" -#: js/PitchBlocks.js:858 -msgid "Pitch can be specified in terms of ni dha pa ma ga re sa." +#: js/blocks/SensorsBlocks.js:633 +#: js/blocks/PenBlocks.js:112 +#: plugins/rodi.rtp:217 +msgid "red" msgstr "" -#: js/PitchBlocks.js:872 -msgid "Pitch can be specified in terms of C D E F G A B." +#: js/blocks/SensorsBlocks.js:638 +msgid "The Get red block returns the red component of the pixel under the mouse." msgstr "" -#: js/PitchBlocks.js:883 -msgid "solfege" +#: js/blocks/SensorsBlocks.js:644 +msgid "The Get red block returns the red component of the pixel under the turtle." msgstr "" -#: js/PitchBlocks.js:886 -msgid "Pitch can be specified in terms of do re mi fa sol la ti." +#: js/blocks/SensorsBlocks.js:685 +#: plugins/rodi.rtp:216 +msgid "pixel color" msgstr "" -#: js/PitchBlocks.js:920 -msgid "The Invert block rotates any contained notes around a target note." +#: js/blocks/SensorsBlocks.js:690 +msgid "The Get pixel block returns the color of the pixel under the mouse." msgstr "" -#: js/PitchBlocks.js:927 -#.TRANS: pitch inversion rotates a pitch around another pitch -msgid "invert" +#: js/blocks/SensorsBlocks.js:696 +msgid "The Get pixel block returns the color of the pixel under the turtle." msgstr "" -#: js/PitchBlocks.js:929 -#: js/PitchBlocks.js:935 -#: js/PitchActions.js:727 -#: js/musicutils.js:726 -#: js/musicutils.js:902 -#.TRANS: invert based on even or odd number or musical scale -#.TRANS: even numbers -msgid "even" +#: js/blocks/SensorsBlocks.js:758 +msgid "time" msgstr "" -#: js/PitchBlocks.js:935 -#: js/PitchActions.js:729 -#: js/musicutils.js:728 -#: js/musicutils.js:903 -#.TRANS: odd numbers -msgid "odd" +#: js/blocks/SensorsBlocks.js:804 +msgid "cursor y" msgstr "" -#: js/PitchBlocks.js:935 -#: js/PitchActions.js:731 -#: js/musicutils.js:729 -#: js/musicutils.js:904 -msgid "scalar" +#: js/blocks/SensorsBlocks.js:809 +msgid "The Cursor Y block returns the vertical position of the mouse." msgstr "" -#: js/PitchBlocks.js:966 -#.TRANS: pitch inversion rotates a pitch around another pitch (odd number) -msgid "invert (odd)" +#: js/blocks/SensorsBlocks.js:845 +msgid "cursor x" msgstr "" -#: js/PitchBlocks.js:999 -#.TRANS: pitch inversion rotates a pitch around another pitch (even number) -msgid "invert (even)" +#: js/blocks/SensorsBlocks.js:850 +msgid "The Cursor X block returns the horizontal position of the mouse." msgstr "" -#: js/PitchBlocks.js:1020 -#.TRANS: register is the octave of the current pitch -msgid "register" +#: js/blocks/SensorsBlocks.js:886 +msgid "mouse button" msgstr "" -#: js/PitchBlocks.js:1024 -msgid "The Register block provides an easy way to modify the register (octave) of the notes that follow it." +#: js/blocks/SensorsBlocks.js:888 +msgid "The Mouse-button block returns True if the mouse button is pressed." msgstr "" -#: js/PitchBlocks.js:1074 -msgid "The Semi-tone transposition block will shift the pitches contained inside Note blocks up (or down) by half steps." +#: js/blocks/SensorsBlocks.js:934 +msgid "to ASCII" msgstr "" -#: js/PitchBlocks.js:1076 -msgid "In the example shown above, sol is shifted up to sol#." +#: js/blocks/SensorsBlocks.js:938 +msgid "The To ASCII block converts numbers to letters." msgstr "" -#: js/PitchBlocks.js:1082 -#.TRANS: adjust the amount of shift (up or down) of a pitch -msgid "semi-tone transpose" +#: js/blocks/SensorsBlocks.js:1005 +msgid "The Keyboard block returns computer keyboard input." msgstr "" -#: js/PitchBlocks.js:1115 -msgid "The Transpose by Ratio block will shift the pitches contained inside Note blocks up (or down) by a ratio" +#: js/blocks/RhythmBlockPaletteBlocks.js:50 +#: js/blocks/RhythmBlockPaletteBlocks.js:233 +#.TRANS: rhythm block +#.TRANS: translate "rhythm1" as rhythm +msgid "rhythm1" msgstr "" -#: js/PitchBlocks.js:1121 -#.TRANS: adjust the amount of shift (up or down) of a pitch -msgid "transpose by ratio" +#: js/blocks/RhythmBlockPaletteBlocks.js:70 +#: js/blocks/RhythmBlockPaletteBlocks.js:252 +#: js/blocks/RhythmBlockPaletteBlocks.js:485 +#: js/blocks/RhythmBlockPaletteBlocks.js:554 +#: js/blocks/RhythmBlockPaletteBlocks.js:875 +msgid "number of notes" msgstr "" -#: js/PitchBlocks.js:1204 -#.TRANS: down sixth means the note is five scale degrees below current note -msgid "down sixth" +#: js/blocks/RhythmBlockPaletteBlocks.js:126 +msgid "polyphonic rhythm" msgstr "" -#: js/PitchBlocks.js:1223 -#.TRANS: down third means the note is two scale degrees below current note -msgid "down third" +#: js/blocks/RhythmBlockPaletteBlocks.js:219 +msgid "The Rhythm block is used to generate rhythm patterns." msgstr "" -#: js/PitchBlocks.js:1242 -#.TRANS: seventh means the note is the six scale degrees above current note -msgid "seventh" +#: js/blocks/RhythmBlockPaletteBlocks.js:280 +msgid "1/64 note" msgstr "" -#: js/PitchBlocks.js:1261 -#.TRANS: sixth means the note is the five scale degrees above current note -msgid "sixth" +#: js/blocks/RhythmBlockPaletteBlocks.js:304 +msgid "1/32 note" msgstr "" -#: js/PitchBlocks.js:1280 -#.TRANS: fifth means the note is the four scale degrees above current note -msgid "fifth" +#: js/blocks/RhythmBlockPaletteBlocks.js:332 +msgid "1/16 note" msgstr "" -#: js/PitchBlocks.js:1300 -#.TRANS: fourth means the note is three scale degrees above current note -msgid "fourth" +#: js/blocks/RhythmBlockPaletteBlocks.js:360 +msgid "eighth note" msgstr "" -#: js/PitchBlocks.js:1319 -#.TRANS: third means the note is two scale degrees above current note -msgid "third" +#: js/blocks/RhythmBlockPaletteBlocks.js:388 +msgid "quarter note" msgstr "" -#: js/PitchBlocks.js:1338 -#.TRANS: second means the note is one scale degree above current note -msgid "second" +#: js/blocks/RhythmBlockPaletteBlocks.js:416 +msgid "half note" msgstr "" -#: js/PitchBlocks.js:1379 -msgid "The Scalar transposition block will shift the pitches contained inside Note blocks up (or down) the scale." +#: js/blocks/RhythmBlockPaletteBlocks.js:444 +msgid "whole note" msgstr "" -#: js/PitchBlocks.js:1381 -msgid "In the example shown above, sol is shifted up to la." +#: js/blocks/RhythmBlockPaletteBlocks.js:482 +#: js/blocks/RhythmBlockPaletteBlocks.js:551 +#: js/blocks/RhythmBlockPaletteBlocks.js:602 +#.TRANS: A tuplet is a note value divided into irregular time values. +msgid "tuplet" msgstr "" -#: js/PitchBlocks.js:1388 -#.TRANS: adjust the amount of shift (up or down) of a pitch by musical scale (scalar) steps -msgid "scalar transpose" +#: js/blocks/RhythmBlockPaletteBlocks.js:768 +msgid "septuplet" msgstr "" -#: js/PitchBlocks.js:1423 -msgid "The Accidental block is used to create sharps and flats" +#: js/blocks/RhythmBlockPaletteBlocks.js:796 +msgid "quintuplet" msgstr "" -#: js/PitchBlocks.js:1430 -#.TRANS: An accidental is a modification to a pitch, e.g., sharp or flat. -msgid "accidental override" +#: js/blocks/RhythmBlockPaletteBlocks.js:824 +msgid "triplet" msgstr "" -#: js/PitchBlocks.js:1543 -msgid "The Hertz block (in combination with a Number block) will play a sound at the specified frequency." +#: js/blocks/RhythmBlockPaletteBlocks.js:851 +msgid "simple tuplet" msgstr "" -#: js/PitchBlocks.js:1633 -msgid "The Pitch Number block will play a pitch associated by its number, e.g. 0 for C and 7 for G." +#: js/blocks/RhythmBlockPaletteBlocks.js:861 +msgid "Tuplets are a collection of notes that get scaled to a specific duration." msgstr "" -#: js/PitchBlocks.js:1665 -#: js/PitchBlocks.js:1707 -#.TRANS: a numeric mapping of the notes in an octave based on the musical mode -#.TRANS: a numeric mapping of the notes in an octave based on the musical mode -msgid "nth modal pitch" +#: js/blocks/DrumBlocks.js:59 +msgid "The Noise name block is used to select a noise synthesizer." msgstr "" -#: js/PitchBlocks.js:1668 -msgid "n^th Modal Pitch takes the pattern of pitches in semitones for a mode and makes each point a degree of the mode," +#: js/blocks/DrumBlocks.js:102 +msgid "The Drum name block is used to select a drum." msgstr "" -#: js/PitchBlocks.js:1670 -msgid "starting from 1 and regardless of tonal framework (i.e. not always 8 notes in the octave)" +#: js/blocks/DrumBlocks.js:146 +msgid "The Effects name block is used to select a sound effect." msgstr "" -#: js/PitchBlocks.js:1711 -msgid "N^th Modal Pitch takes a number as an input as the n^th degree for the given mode. 0 is the first position, 1 is the second, -1 is the note before the first etc." +#: js/blocks/DrumBlocks.js:163 +msgid "noise" msgstr "" -#: js/PitchBlocks.js:1713 -msgid "The pitches change according to the mode specified without any need for respellings." +#: js/blocks/DrumBlocks.js:177 +msgid "The Play noise block will generate white, pink, or brown noise." msgstr "" -#: js/PitchBlocks.js:1752 -msgid "Scale Degree is a common convention in music. Scale Degree offers seven possible positions in the scale (1-7) and can be modified via accidentals." +#: js/blocks/DrumBlocks.js:317 +msgid "Replace every instance of a pitch with a drum sound." msgstr "" -#: js/PitchBlocks.js:1754 -msgid "Scale Degree 1 is always the first pitch in a given scale, regardless of octave." +#: js/blocks/DrumBlocks.js:328 +#.TRANS: map a pitch to a drum sound +msgid "map pitch to drum" msgstr "" -#: js/PitchBlocks.js:1776 -#.TRANS: step some number of notes in current musical scale -msgid "scalar step" +#: js/blocks/DrumBlocks.js:395 +msgid "In the example above, a kick drum sound will be played instead of sol." msgstr "" -#: js/PitchBlocks.js:1781 -msgid "The Scalar Step block (in combination with a Number block) will play the next pitch in a scale," +#: js/blocks/DrumBlocks.js:407 +#.TRANS: set the current drum sound for playback +msgid "set drum" msgstr "" -#: js/PitchBlocks.js:1783 -msgid "eg if the last note played was sol, Scalar Step 1 will play la." +#: js/blocks/DrumBlocks.js:451 +msgid "sound effect" msgstr "" -#: js/PitchBlocks.js:1818 -msgid "The Pitch block specifies the pitch name and octave of a note that together determine the frequency of the note." +#: js/blocks/DrumBlocks.js:489 +msgid "You can use multiple Drum blocks within a Note block." msgstr "" -#: js/GraphicsBlocks.js:46 -#: js/DictActions.js:77 -#: js/DictActions.js:155 -#: js/DictActions.js:189 +#: js/blocks/GraphicsBlocks.js:46 +#: js/turtleactions/DictActions.js:77 +#: js/turtleactions/DictActions.js:144 +#: js/turtleactions/DictActions.js:173 msgid "heading" msgstr "" -#: js/GraphicsBlocks.js:56 +#: js/blocks/GraphicsBlocks.js:56 msgid "The Heading block returns the orientation of the mouse." msgstr "" -#: js/GraphicsBlocks.js:62 +#: js/blocks/GraphicsBlocks.js:62 msgid "The Heading block returns the orientation of the turtle." msgstr "" -#: js/GraphicsBlocks.js:133 +#: js/blocks/GraphicsBlocks.js:133 msgid "The Y block returns the vertical position of the mouse." msgstr "" -#: js/GraphicsBlocks.js:140 +#: js/blocks/GraphicsBlocks.js:140 msgid "The Y block returns the vertical position of the turtle." msgstr "" -#: js/GraphicsBlocks.js:149 +#: js/blocks/GraphicsBlocks.js:149 msgid "y3" msgstr "" -#: js/GraphicsBlocks.js:219 +#: js/blocks/GraphicsBlocks.js:219 msgid "The X block returns the horizontal position of the mouse." msgstr "" -#: js/GraphicsBlocks.js:226 +#: js/blocks/GraphicsBlocks.js:226 msgid "The X block returns the horizontal position of the turtle." msgstr "" -#: js/GraphicsBlocks.js:235 +#: js/blocks/GraphicsBlocks.js:235 msgid "x3" msgstr "" -#: js/GraphicsBlocks.js:295 +#: js/blocks/GraphicsBlocks.js:295 msgid "scroll xy" msgstr "" -#: js/GraphicsBlocks.js:303 +#: js/blocks/GraphicsBlocks.js:303 msgid "The Scroll XY block moves the canvas." msgstr "" -#: js/GraphicsBlocks.js:313 +#: js/blocks/GraphicsBlocks.js:313 msgid "x2" msgstr "" -#: js/GraphicsBlocks.js:313 +#: js/blocks/GraphicsBlocks.js:313 msgid "y2" msgstr "" -#: js/GraphicsBlocks.js:373 -#: js/temperament.js:213 -#: js/temperament.js:241 +#: js/blocks/GraphicsBlocks.js:373 +#: js/widgets/temperament.js:319 +#: js/widgets/temperament.js:347 msgid "clear" msgstr "" -#: js/GraphicsBlocks.js:426 +#: js/blocks/GraphicsBlocks.js:426 msgid "The Control-point 2 block sets the second control point for the Bezier curve." msgstr "" -#: js/GraphicsBlocks.js:433 +#: js/blocks/GraphicsBlocks.js:433 msgid "control point 2" msgstr "" -#: js/GraphicsBlocks.js:436 -#: js/GraphicsBlocks.js:487 -#: js/GraphicsBlocks.js:534 -#: js/GraphicsBlocks.js:750 +#: js/blocks/GraphicsBlocks.js:436 +#: js/blocks/GraphicsBlocks.js:487 +#: js/blocks/GraphicsBlocks.js:534 +#: js/blocks/GraphicsBlocks.js:750 msgid "x1" msgstr "" -#: js/GraphicsBlocks.js:436 -#: js/GraphicsBlocks.js:487 -#: js/GraphicsBlocks.js:534 -#: js/GraphicsBlocks.js:750 +#: js/blocks/GraphicsBlocks.js:436 +#: js/blocks/GraphicsBlocks.js:487 +#: js/blocks/GraphicsBlocks.js:534 +#: js/blocks/GraphicsBlocks.js:750 msgid "y1" msgstr "" -#: js/GraphicsBlocks.js:477 +#: js/blocks/GraphicsBlocks.js:477 msgid "The Control-point 1 block sets the first control point for the Bezier curve." msgstr "" -#: js/GraphicsBlocks.js:484 +#: js/blocks/GraphicsBlocks.js:484 msgid "control point 1" msgstr "" -#: js/GraphicsBlocks.js:527 +#: js/blocks/GraphicsBlocks.js:527 msgid "The Bezier block draws a Bezier curve." msgstr "" -#: js/GraphicsBlocks.js:531 +#: js/blocks/GraphicsBlocks.js:531 msgid "bezier" msgstr "" -#: js/GraphicsBlocks.js:592 +#: js/blocks/GraphicsBlocks.js:592 msgid "The Arc block moves the turtle in an arc." msgstr "" -#: js/GraphicsBlocks.js:600 +#: js/blocks/GraphicsBlocks.js:600 msgid "arc" msgstr "" -#: js/GraphicsBlocks.js:603 +#: js/blocks/GraphicsBlocks.js:603 msgid "angle" msgstr "" -#: js/GraphicsBlocks.js:603 +#: js/blocks/GraphicsBlocks.js:603 msgid "radius" msgstr "" -#: js/GraphicsBlocks.js:620 -#: js/GraphicsBlocks.js:767 -#: js/GraphicsBlocks.js:1010 -#: js/GraphicsBlocks.js:1093 +#: js/blocks/GraphicsBlocks.js:620 +#: js/blocks/GraphicsBlocks.js:767 +#: js/blocks/GraphicsBlocks.js:1010 +#: js/blocks/GraphicsBlocks.js:1093 msgid "Value must be within -5000 to 5000 when Wrap Mode is off." msgstr "" -#: js/GraphicsBlocks.js:622 -#: js/GraphicsBlocks.js:769 -#: js/GraphicsBlocks.js:1012 -#: js/GraphicsBlocks.js:1095 +#: js/blocks/GraphicsBlocks.js:622 +#: js/blocks/GraphicsBlocks.js:769 +#: js/blocks/GraphicsBlocks.js:1012 +#: js/blocks/GraphicsBlocks.js:1095 msgid "Value must be within -20000 to 20000 when Wrap Mode is on." msgstr "" -#: js/GraphicsBlocks.js:660 +#: js/blocks/GraphicsBlocks.js:660 msgid "set heading" msgstr "seth" -#: js/GraphicsBlocks.js:673 +#: js/blocks/GraphicsBlocks.js:673 msgid "The Set heading block sets the heading of the turtle." msgstr "" -#: js/GraphicsBlocks.js:733 +#: js/blocks/GraphicsBlocks.js:733 msgid "The Set XY block moves the mouse to a specific position on the screen." msgstr "" -#: js/GraphicsBlocks.js:739 +#: js/blocks/GraphicsBlocks.js:739 msgid "The Set XY block moves the turtle to a specific position on the screen." msgstr "" -#: js/GraphicsBlocks.js:747 +#: js/blocks/GraphicsBlocks.js:747 msgid "set xy" msgstr "" -#: js/GraphicsBlocks.js:819 +#: js/blocks/GraphicsBlocks.js:819 msgid "The Right block turns the mouse to the right." msgstr "" -#: js/GraphicsBlocks.js:826 +#: js/blocks/GraphicsBlocks.js:826 msgid "The Right block turns the turtle to the right." msgstr "" -#: js/GraphicsBlocks.js:835 +#: js/blocks/GraphicsBlocks.js:835 msgid "right1" msgstr "" -#: js/GraphicsBlocks.js:835 +#: js/blocks/GraphicsBlocks.js:835 #: plugins/rodi.rtp:77 #: plugins/rodi.rtp:340 #: plugins/rodi.rtp:375 msgid "right" msgstr "" -#: js/GraphicsBlocks.js:899 +#: js/blocks/GraphicsBlocks.js:899 msgid "The Left block turns the mouse to the left." msgstr "" -#: js/GraphicsBlocks.js:906 +#: js/blocks/GraphicsBlocks.js:906 msgid "The Left block turns the turtle to the left." msgstr "" -#: js/GraphicsBlocks.js:915 +#: js/blocks/GraphicsBlocks.js:915 msgid "left1" msgstr "" -#: js/GraphicsBlocks.js:915 +#: js/blocks/GraphicsBlocks.js:915 #: plugins/rodi.rtp:79 #: plugins/rodi.rtp:339 #: plugins/rodi.rtp:362 msgid "left" msgstr "" -#: js/GraphicsBlocks.js:967 -#: js/temperament.js:734 -#: js/temperament.js:933 +#: js/blocks/GraphicsBlocks.js:967 +#: js/widgets/temperament.js:875 +#: js/widgets/temperament.js:1078 #: plugins/rodi.rtp:69 #: plugins/rodi.rtp:387 msgid "back" msgstr "" -#: js/GraphicsBlocks.js:976 +#: js/blocks/GraphicsBlocks.js:976 msgid "The Back block moves the mouse backward." msgstr "" -#: js/GraphicsBlocks.js:983 +#: js/blocks/GraphicsBlocks.js:983 msgid "The Back block moves the turtle backward." msgstr "" -#: js/GraphicsBlocks.js:1050 +#: js/blocks/GraphicsBlocks.js:1050 #: plugins/rodi.rtp:71 #: plugins/rodi.rtp:400 msgid "forward" msgstr "" -#: js/GraphicsBlocks.js:1059 +#: js/blocks/GraphicsBlocks.js:1059 msgid "The Forward block moves the mouse forward." msgstr "" -#: js/GraphicsBlocks.js:1066 +#: js/blocks/GraphicsBlocks.js:1066 msgid "The Forward block moves the turtle forward." msgstr "" -#: js/GraphicsBlocks.js:1154 -#: js/GraphicsBlocks.js:1172 +#: js/blocks/GraphicsBlocks.js:1154 +#: js/blocks/GraphicsBlocks.js:1172 msgid "wrap" msgstr "" -#: js/OrnamentBlocks.js:32 -msgid "staccato factor" -msgstr "" - -#: js/OrnamentBlocks.js:108 -msgid "slur factor" -msgstr "" - -#: js/OrnamentBlocks.js:217 -#: js/OrnamentBlocks.js:309 -#.TRANS: the neighbor refers to a neighboring note, e.g., D is a neighbor of C -msgid "neighbor" -msgstr "" - -#: js/OrnamentBlocks.js:293 -msgid "The Neighbor block rapidly switches between neighboring pitches." -msgstr "" - -#: js/OrnamentBlocks.js:364 -msgid "glide" -msgstr "" - -#: js/OrnamentBlocks.js:479 -#: js/OrnamentBlocks.js:643 -msgid "slur" -msgstr "" - -#: js/OrnamentBlocks.js:558 -#: js/OrnamentBlocks.js:710 -#.TRANS: play each note sharply detached from the others -msgid "staccato" -msgstr "" - -#: js/PenBlocks.js:24 +#: js/blocks/PenBlocks.js:30 msgid "purple" msgstr "" -#: js/PenBlocks.js:37 -#: js/SensorsBlocks.js:521 -#: plugins/rodi.rtp:219 -msgid "blue" -msgstr "" - -#: js/PenBlocks.js:50 -#: js/SensorsBlocks.js:577 -#: plugins/rodi.rtp:218 -msgid "green" -msgstr "" - -#: js/PenBlocks.js:63 +#: js/blocks/PenBlocks.js:80 msgid "yellow" msgstr "" -#: js/PenBlocks.js:76 +#: js/blocks/PenBlocks.js:96 #: plugins/nutrition.rtp:164 msgid "orange" msgstr "" -#: js/PenBlocks.js:89 -#: js/SensorsBlocks.js:633 -#: plugins/rodi.rtp:217 -msgid "red" -msgstr "" - -#: js/PenBlocks.js:102 +#: js/blocks/PenBlocks.js:128 msgid "white" msgstr "" -#: js/PenBlocks.js:115 +#: js/blocks/PenBlocks.js:144 msgid "black" msgstr "" -#: js/PenBlocks.js:128 +#: js/blocks/PenBlocks.js:163 msgid "begin fill" msgstr "" -#: js/PenBlocks.js:143 +#: js/blocks/PenBlocks.js:190 msgid "end fill" msgstr "" -#: js/PenBlocks.js:159 -#: js/PenBlocks.js:386 +#: js/blocks/PenBlocks.js:212 +#: js/blocks/PenBlocks.js:560 #.TRANS: set the background color msgid "background" msgstr "" -#: js/PenBlocks.js:206 -#: js/DictActions.js:71 -#: js/DictActions.js:149 -#: js/DictActions.js:186 +#: js/blocks/PenBlocks.js:274 +#: js/turtleactions/DictActions.js:71 +#: js/turtleactions/DictActions.js:138 +#: js/turtleactions/DictActions.js:170 msgid "grey" msgstr "" -#: js/PenBlocks.js:210 +#: js/blocks/PenBlocks.js:282 msgid "The Grey block returns the current pen grey value." msgstr "" -#: js/PenBlocks.js:243 -#: js/DictActions.js:69 -#: js/DictActions.js:147 -#: js/DictActions.js:185 +#: js/blocks/PenBlocks.js:340 +#: js/turtleactions/DictActions.js:69 +#: js/turtleactions/DictActions.js:136 +#: js/turtleactions/DictActions.js:169 msgid "shade" msgstr "" -#: js/PenBlocks.js:247 +#: js/blocks/PenBlocks.js:347 msgid "The Shade block returns the current pen shade value." msgstr "" -#: js/PenBlocks.js:280 -#: js/DictActions.js:67 -#: js/DictActions.js:145 -#: js/DictActions.js:184 +#: js/blocks/PenBlocks.js:405 +#: js/turtleactions/DictActions.js:67 +#: js/turtleactions/DictActions.js:134 +#: js/turtleactions/DictActions.js:168 msgid "color" msgstr "" -#: js/PenBlocks.js:285 +#: js/blocks/PenBlocks.js:415 msgid "The Color block returns the current pen color." msgstr "" -#: js/PenBlocks.js:318 -#: js/DictActions.js:73 -#: js/DictActions.js:151 -#: js/DictActions.js:187 +#: js/blocks/PenBlocks.js:470 +#: js/turtleactions/DictActions.js:73 +#: js/turtleactions/DictActions.js:140 +#: js/turtleactions/DictActions.js:171 msgid "pen size" msgstr "" -#: js/PenBlocks.js:322 +#: js/blocks/PenBlocks.js:474 msgid "The Pen size block returns the current pen size value." msgstr "" -#: js/PenBlocks.js:355 +#: js/blocks/PenBlocks.js:513 msgid "set font" msgstr "" -#: js/PenBlocks.js:358 +#: js/blocks/PenBlocks.js:518 msgid "The Set font block sets the font used by the Show block." msgstr "" -#: js/PenBlocks.js:391 +#: js/blocks/PenBlocks.js:567 msgid "The Background block sets the window background color." msgstr "" -#: js/PenBlocks.js:408 +#: js/blocks/PenBlocks.js:598 msgid "The Hollow line block creates a line with a hollow center." msgstr "" -#: js/PenBlocks.js:415 +#: js/blocks/PenBlocks.js:606 #.TRANS: draw a line logo has a hollow space down its center msgid "hollow line" msgstr "" -#: js/PenBlocks.js:462 +#: js/blocks/PenBlocks.js:675 msgid "The Fill block fills in a shape with a color." msgstr "" -#: js/PenBlocks.js:470 +#: js/blocks/PenBlocks.js:684 #.TRANS: fill in as a solid color msgid "fill" msgstr "" -#: js/PenBlocks.js:527 +#: js/blocks/PenBlocks.js:761 #.TRANS: raise up the pen so logo it does not draw when it is moved msgid "pen up" msgstr "" -#: js/PenBlocks.js:532 +#: js/blocks/PenBlocks.js:768 msgid "The Pen-up block raises the pen so that it does not draw." msgstr "" -#: js/PenBlocks.js:552 +#: js/blocks/PenBlocks.js:802 #.TRANS: put down the pen so logo it draws when it is moved msgid "pen down" msgstr "" -#: js/PenBlocks.js:557 +#: js/blocks/PenBlocks.js:810 msgid "The Pen-down block lowers the pen so that it draws." msgstr "" -#: js/PenBlocks.js:577 +#: js/blocks/PenBlocks.js:844 #.TRANS: set the width of the line drawn by the pen msgid "set pen size" msgstr "" -#: js/PenBlocks.js:583 +#: js/blocks/PenBlocks.js:854 msgid "The Set-pen-size block changes the size of the pen." msgstr "" -#: js/PenBlocks.js:623 +#: js/blocks/PenBlocks.js:913 #.TRANS: set degree of translucence of the pen color msgid "set translucency" msgstr "" -#: js/PenBlocks.js:627 +#: js/blocks/PenBlocks.js:921 msgid "The Set translucency block changes the opacity of the pen." msgstr "" -#: js/PenBlocks.js:668 +#: js/blocks/PenBlocks.js:981 msgid "set hue" msgstr "" -#: js/PenBlocks.js:672 +#: js/blocks/PenBlocks.js:989 msgid "The Set hue block changes the color of the pen." msgstr "" -#: js/PenBlocks.js:711 +#: js/blocks/PenBlocks.js:1047 msgid "set shade" msgstr "" -#: js/PenBlocks.js:717 +#: js/blocks/PenBlocks.js:1057 msgid "The Set-shade block changes the pen color from dark to light." msgstr "" -#: js/PenBlocks.js:757 +#: js/blocks/PenBlocks.js:1111 #.TRANS: set the level of vividness of the pen color msgid "set grey" msgstr "" -#: js/PenBlocks.js:761 +#: js/blocks/PenBlocks.js:1119 msgid "The Set grey block changes the vividness of the pen color." msgstr "" -#: js/PenBlocks.js:800 +#: js/blocks/PenBlocks.js:1172 msgid "set color" msgstr "" -#: js/PenBlocks.js:806 +#: js/blocks/PenBlocks.js:1182 msgid "The Set-color block changes the pen color." msgstr "" -#: js/VolumeBlocks.js:35 -msgid "synth volume" -msgstr "" - -#: js/VolumeBlocks.js:39 -msgid "The Synth volume block returns the current volume of the current synthesizer." -msgstr "" - -#: js/VolumeBlocks.js:47 -#: js/musicutils.js:730 -#: js/synthutils.js:56 -#.TRANS: musical instrument -msgid "piano" -msgstr "" - -#: js/VolumeBlocks.js:105 -msgid "master volume" -msgstr "" - -#: js/VolumeBlocks.js:109 -msgid "The Master volume block returns the master volume." -msgstr "" - -#: js/VolumeBlocks.js:355 -#: js/VolumeBlocks.js:524 -msgid "set synth volume" -msgstr "" - -#: js/VolumeBlocks.js:362 -#: js/VolumeBlocks.js:545 -msgid "synth" -msgstr "" - -#: js/VolumeBlocks.js:403 -#: js/VolumeBlocks.js:577 -#: js/VolumeBlocks.js:740 -#: js/VolumeActions.js:173 -msgid "Setting volume to 0." -msgstr "" - -#: js/VolumeBlocks.js:440 -msgid "Synth not found" -msgstr "" - -#: js/VolumeBlocks.js:494 -msgid "set drum volume" -msgstr "" - -#: js/VolumeBlocks.js:530 -msgid "The Set synth volume block will change the volume of a particular synth," -msgstr "" - -#: js/VolumeBlocks.js:532 -msgid "eg guitar violin snare drum etc." -msgstr "" - -#: js/VolumeBlocks.js:534 -msgid "The default volume is 50." -msgstr "" - -#: js/VolumeBlocks.js:536 -msgid "The range is 0 for silence to 100 for full volume." -msgstr "" - -#: js/VolumeBlocks.js:597 -msgid "set panning" -msgstr "" - -#: js/VolumeBlocks.js:603 -msgid "The Set Panning block sets the panning for all synthesizers." -msgstr "" - -#: js/VolumeBlocks.js:625 -msgid "Warning: Sound is coming out from only the left or right side." -msgstr "" - -#: js/VolumeBlocks.js:647 -#: js/VolumeBlocks.js:695 -msgid "set master volume" -msgstr "" - -#: js/VolumeBlocks.js:653 -msgid "The Set master volume block sets the volume for all synthesizers." -msgstr "" - -#: js/VolumeBlocks.js:784 -msgid "The Set relative volume block changes the volume of the contained notes." -msgstr "" - -#: js/VolumeBlocks.js:791 -msgid "set relative volume" -msgstr "" - -#: js/VolumeBlocks.js:857 -msgid "decrescendo" -msgstr "" - -#: js/VolumeBlocks.js:921 -msgid "crescendo" -msgstr "" - -#: js/ToneBlocks.js:34 -msgid "oscillator" -msgstr "" - -#: js/ToneBlocks.js:44 -#: js/timbre.js:1562 -#.TRANS: Partials refers to the number of sine waves combined into the sound. -msgid "partials" -msgstr "" - -#: js/ToneBlocks.js:76 -msgid "You are adding multiple oscillator blocks." -msgstr "" - -#: js/ToneBlocks.js:144 -#: js/timbre.js:1225 -#.TRANS: a duo synthesizer combines a synth with a sequencer -msgid "duo synth" -msgstr "" - -#: js/ToneBlocks.js:149 -msgid "The Duo synth block is a duo-frequency modulator used to define a timbre." -msgstr "" - -#: js/ToneBlocks.js:157 -#: js/timbre.js:1476 -msgid "vibrato rate" -msgstr "" - -#: js/ToneBlocks.js:157 -msgid "vibrato intensity" -msgstr "" - -#: js/ToneBlocks.js:185 -#: js/timbre.js:1221 -#.TRANS: AM (amplitude modulation) synthesizer -msgid "AM synth" -msgstr "" - -#: js/ToneBlocks.js:189 -msgid "The AM synth block is an amplitude modulator used to define a timbre." -msgstr "" - -#: js/ToneBlocks.js:224 -#: js/timbre.js:1223 -#.TRANS: FM (frequency modulation) synthesizer -msgid "FM synth" -msgstr "" - -#: js/ToneBlocks.js:228 -msgid "The FM synth block is a frequency modulator used to define a timbre." +#: js/blocks/PitchBlocks.js:141 +#.TRANS: musical transposition (adjustment of pitch up or down) +msgid "transposition" msgstr "" -#: js/ToneBlocks.js:262 -msgid "partial" +#: js/blocks/PitchBlocks.js:168 +#.TRANS: step down one note in current musical scale +msgid "scalar step down" msgstr "" -#: js/ToneBlocks.js:265 -msgid "The Partial block is used to specify a weight for a specific partial harmonic." +#: js/blocks/PitchBlocks.js:172 +msgid "The Scalar step down block returns the number of semi-tones down to the previous note in the current key and mode." msgstr "" -#: js/ToneBlocks.js:284 -#.TRANS: partials are weighted components in a harmonic series -msgid "Partial weight must be between 0 and 1." +#: js/blocks/PitchBlocks.js:190 +#.TRANS: step up one note in current musical scale +msgid "scalar step up" msgstr "" -#: js/ToneBlocks.js:297 -#.TRANS: partials are weighted components in a harmonic series -msgid "Partial block should be used inside of a Weighted-partials block." +#: js/blocks/PitchBlocks.js:194 +msgid "The Scalar step up block returns the number of semi-tones up to the next note in the current key and mode." msgstr "" -#: js/ToneBlocks.js:325 -#.TRANS: partials are weighted components in a harmonic series -msgid "weighted partials" +#: js/blocks/PitchBlocks.js:212 +#.TRANS: the change measured in half-steps between the current pitch and the previous pitch +msgid "change in pitch" msgstr "" -#: js/ToneBlocks.js:383 -msgid "The Harmonic block will add harmonics to the contained notes." +#: js/blocks/PitchBlocks.js:216 +msgid "The Change in pitch block is the difference (in half steps) between the current pitch being played and the previous pitch played." msgstr "" -#: js/ToneBlocks.js:390 -#.TRANS: A harmonic is an overtone. -msgid "harmonic" +#: js/blocks/PitchBlocks.js:243 +#.TRANS: the change measured in scale-steps between the current pitch and the previous pitch +msgid "scalar change in pitch" msgstr "" -#: js/ToneBlocks.js:431 -msgid "The Distortion block adds distortion to the pitch." +#: js/blocks/PitchBlocks.js:250 +#: js/blocks/PitchBlocks.js:432 +#: js/blocks/PitchBlocks.js:1667 +#: js/turtleactions/DictActions.js:89 +#: js/widgets/temperament.js:610 +#: js/widgets/temperament.js:614 +#: js/widgets/temperament.js:855 +#.TRANS: convert current note to piano key (1-88) +#.TRANS: a mapping of pitch to the 88 piano keys +msgid "pitch number" msgstr "" -#: js/ToneBlocks.js:438 -#: js/timbre.js:2100 -#.TRANS: distortion is an alteration in the sound -msgid "distortion" +#: js/blocks/PitchBlocks.js:256 +msgid "The Pitch number block is the value of the pitch of the note currently being played." msgstr "" -#: js/ToneBlocks.js:487 -msgid "The Tremolo block adds a wavering effect." +#: js/blocks/PitchBlocks.js:329 +#: js/blocks/PitchBlocks.js:433 +#.TRANS: the current pitch expressed in Hertz +msgid "pitch in hertz" msgstr "" -#: js/ToneBlocks.js:495 -#: js/timbre.js:2092 -#.TRANS: a wavering effect in a musical tone -msgid "tremolo" +#: js/blocks/PitchBlocks.js:334 +msgid "The Pitch in Hertz block is the value in Hertz of the pitch of the note currently being played." msgstr "" -#: js/ToneBlocks.js:500 -#: js/ToneBlocks.js:569 -#: js/ToneBlocks.js:630 -#: js/ToneBlocks.js:689 -#: js/timbre.js:2134 -#: js/timbre.js:2222 -#: js/timbre.js:2317 -#: js/timbre.js:2419 -#.TRANS: rate at which tremolo wavers -msgid "rate" +#: js/blocks/PitchBlocks.js:367 +#: js/turtleactions/DictActions.js:87 +msgid "current pitch" msgstr "" -#: js/ToneBlocks.js:502 -#: js/ToneBlocks.js:630 -#: js/timbre.js:2137 -#: js/timbre.js:2328 -#.TRANS: amplitude of tremolo waver -msgid "depth" +#: js/blocks/PitchBlocks.js:373 +msgid "The Current Pitch block is used with the Pitch Converter block. In the example above, current pitch, sol 4, is displayed as 392 hertz." msgstr "" -#: js/ToneBlocks.js:559 -msgid "The Phaser block adds a sweeping sound." +#: js/blocks/PitchBlocks.js:410 +msgid "This block converts the pitch value of the last note played into different formats such as hertz, letter name, pitch number, et al." msgstr "" -#: js/ToneBlocks.js:566 -#: js/timbre.js:2098 -#.TRANS: alter the phase of the sound -msgid "phaser" +#: js/blocks/PitchBlocks.js:434 +msgid "alphabet" msgstr "" -#: js/ToneBlocks.js:569 -#: js/timbre.js:2422 -msgid "octaves" +#: js/blocks/PitchBlocks.js:436 +#.TRANS: Translate as "alphabet class" +msgid "letter class" msgstr "" -#: js/ToneBlocks.js:569 -#: js/timbre.js:2425 -msgid "base frequency" +#: js/blocks/PitchBlocks.js:437 +msgid "solfege class" msgstr "" -#: js/ToneBlocks.js:619 -msgid "The Chorus block adds a chorus effect." +#: js/blocks/PitchBlocks.js:438 +msgid "staff y" msgstr "" -#: js/ToneBlocks.js:627 -#: js/timbre.js:2096 -#.TRANS: musical effect to simulate a choral sound -msgid "chorus" +#: js/blocks/PitchBlocks.js:439 +msgid "solfege syllable" msgstr "" -#: js/ToneBlocks.js:630 -msgid "delay" +#: js/blocks/PitchBlocks.js:440 +msgid "pitch class" msgstr "" -#: js/ToneBlocks.js:678 -msgid "The Vibrato block adds a rapid, slight variation in pitch." +#: js/blocks/PitchBlocks.js:441 +msgid "scalar class" msgstr "" -#: js/ToneBlocks.js:686 -#: js/timbre.js:2094 -#.TRANS: a rapid, slight variation in pitch -msgid "vibrato" +#: js/blocks/PitchBlocks.js:443 +msgid "nth degree" msgstr "" -#: js/ToneBlocks.js:689 -#: js/timbre.js:2221 -msgid "intensity" +#: js/blocks/PitchBlocks.js:444 +msgid "pitch to shade" msgstr "" -#: js/ToneBlocks.js:733 -#.TRANS: select synthesizer -msgid "set synth" +#: js/blocks/PitchBlocks.js:445 +msgid "pitch to color" msgstr "" -#: js/ToneBlocks.js:804 -msgid "synth name" +#: js/blocks/PitchBlocks.js:629 +#: js/widgets/musickeyboard.js:735 +#.TRANS: MIDI is a technical standard for electronic music +msgid "MIDI" msgstr "" -#: js/ToneBlocks.js:842 -msgid "set default instrument" +#: js/blocks/PitchBlocks.js:642 +#.TRANS: set an offset associated with the numeric piano keyboard mapping +msgid "set pitch number offset" msgstr "" -#: js/ToneBlocks.js:895 -#: js/ToneBlocks.js:943 -#.TRANS: set the characteristics of a custom instrument -msgid "set instrument" +#: js/blocks/PitchBlocks.js:645 +msgid "The Set pitch number offset block is used to set the offset for mapping pitch numbers to pitch and octave." msgstr "" -#: js/ToneBlocks.js:898 -#: js/ToneBlocks.js:926 -#: js/ToneBlocks.js:932 -msgid "The Set instrument block selects a voice for the synthesizer," +#: js/blocks/PitchBlocks.js:679 +#.TRANS: convert piano key number (1-88) to pitch +msgid "number to pitch" msgstr "" -#: js/ToneBlocks.js:900 -#: js/ToneBlocks.js:934 -msgid "eg guitar piano violin or cello." +#: js/blocks/PitchBlocks.js:682 +msgid "The Number to pitch block will convert a pitch number to a pich name." msgstr "" -#: js/ToneBlocks.js:1015 -msgid "Import a sound file to use as an instrument and set its pitch center." +#: js/blocks/PitchBlocks.js:715 +#.TRANS: convert piano key number (1-88) to octave +msgid "number to octave" msgstr "" -#: js/ToneBlocks.js:1110 -msgid "Upload a sound file to connect with the sample block." +#: js/blocks/PitchBlocks.js:717 +msgid "The Number to octave block will convert a pitch number to an octave." msgstr "" -#: js/MeterBlocks.js:34 -#.TRANS: musical meter (time signature), e.g., 4:4 -msgid "current meter" +#: js/blocks/PitchBlocks.js:726 +msgid "y to pitch" msgstr "" -#: js/MeterBlocks.js:85 -#.TRANS: number of beats per minute -msgid "beat factor" +#: js/blocks/PitchBlocks.js:729 +msgid "Y to pitch block will convert a staff y position to corresponding pitch notation." msgstr "" -#: js/MeterBlocks.js:161 -msgid "The Beats per minute block returns the current beats per minute." +#: js/blocks/PitchBlocks.js:841 +msgid "accidental selector" msgstr "" -#: js/MeterBlocks.js:169 -#: js/status.js:152 -#.TRANS: number of beats played per minute -msgid "beats per minute2" +#: js/blocks/PitchBlocks.js:844 +msgid "The Accidental selector block is used to choose between double-sharp, sharp, natural, flat, and double-flat." msgstr "" -#: js/MeterBlocks.js:169 -#: js/MeterBlocks.js:1056 -#: js/MeterBlocks.js:1133 -#: js/MeterBlocks.js:1211 -#.TRANS: sets tempo by defining a beat and beats per minute -msgid "beats per minute" +#: js/blocks/PitchBlocks.js:858 +msgid "Pitch can be specified in terms of ni dha pa ma ga re sa." msgstr "" -#: js/MeterBlocks.js:233 -#.TRANS: count of current musical measure in meter -msgid "measure count" +#: js/blocks/PitchBlocks.js:872 +msgid "Pitch can be specified in terms of C D E F G A B." msgstr "" -#: js/MeterBlocks.js:241 -msgid "The Measure count block returns the current measure." +#: js/blocks/PitchBlocks.js:884 +msgid "solfege" msgstr "" -#: js/MeterBlocks.js:290 -#.TRANS: count of current beat in the meter -msgid "beat count" +#: js/blocks/PitchBlocks.js:887 +msgid "Pitch can be specified in terms of do re mi fa sol la ti." msgstr "" -#: js/MeterBlocks.js:300 -#: js/MeterBlocks.js:311 -#: js/MeterBlocks.js:565 -#: js/MeterBlocks.js:576 -msgid "The Beat count block is the number of the current beat," +#: js/blocks/PitchBlocks.js:922 +msgid "The Invert block rotates any contained notes around a target note." msgstr "" -#: js/MeterBlocks.js:313 -#: js/MeterBlocks.js:578 -msgid "eg 1, 2, 3, or 4." +#: js/blocks/PitchBlocks.js:929 +#.TRANS: pitch inversion rotates a pitch around another pitch +msgid "invert" msgstr "" -#: js/MeterBlocks.js:368 -#.TRANS: count the number of notes -msgid "sum note values" +#: js/blocks/PitchBlocks.js:968 +#.TRANS: pitch inversion rotates a pitch around another pitch (odd number) +msgid "invert (odd)" msgstr "" -#: js/MeterBlocks.js:376 -#: js/MeterBlocks.js:440 -msgid "The Note counter block can be used to count the number of contained notes." +#: js/blocks/PitchBlocks.js:1001 +#.TRANS: pitch inversion rotates a pitch around another pitch (even number) +msgid "invert (even)" msgstr "" -#: js/MeterBlocks.js:432 -#.TRANS: count the number of notes -msgid "note counter" +#: js/blocks/PitchBlocks.js:1022 +#.TRANS: register is the octave of the current pitch +msgid "register" msgstr "" -#: js/MeterBlocks.js:496 -#.TRANS: number of whole notes that have been played -msgid "whole notes played" +#: js/blocks/PitchBlocks.js:1026 +msgid "The Register block provides an easy way to modify the register (octave) of the notes that follow it." msgstr "" -#: js/MeterBlocks.js:505 -msgid "The Whole notes played block returns the total number of whole notes played." +#: js/blocks/PitchBlocks.js:1047 +#.TRANS: cents are units used to specify the ratio between pitches. There are 100 cents between successive notes. +msgid "50 cents" msgstr "" -#: js/MeterBlocks.js:555 -#: js/DictActions.js:83 -#.TRANS: number of notes that have been played -msgid "notes played" +#: js/blocks/PitchBlocks.js:1102 +msgid "The Semi-tone transposition block will shift the pitches contained inside Note blocks up (or down) by half steps." msgstr "" -#: js/MeterBlocks.js:653 -msgid "The No clock block decouples the notes from the master clock." +#: js/blocks/PitchBlocks.js:1104 +msgid "In the example shown above, sol is shifted up to sol#." msgstr "" -#: js/MeterBlocks.js:661 -#.TRANS: don't lock notes to master clock -msgid "no clock" +#: js/blocks/PitchBlocks.js:1110 +#.TRANS: adjust the amount of shift (up or down) of a pitch +msgid "semi-tone transpose" msgstr "" -#: js/MeterBlocks.js:700 -msgid "on weak beat do" +#: js/blocks/PitchBlocks.js:1143 +msgid "The Transpose by Ratio block will shift the pitches contained inside Note blocks up (or down) by a ratio" msgstr "" -#: js/MeterBlocks.js:705 -msgid "The On-weak-beat block lets you specify actions to take on weak (off) beats." +#: js/blocks/PitchBlocks.js:1149 +#.TRANS: adjust the amount of shift (up or down) of a pitch +msgid "transpose by ratio" msgstr "" -#: js/MeterBlocks.js:750 -msgid "on strong beat" +#: js/blocks/PitchBlocks.js:1232 +#.TRANS: down sixth means the note is five scale degrees below current note +msgid "down sixth" msgstr "" -#: js/MeterBlocks.js:758 -msgid "The On-strong-beat block lets you specify actions to take on specified beats." +#: js/blocks/PitchBlocks.js:1251 +#.TRANS: down third means the note is two scale degrees below current note +msgid "down third" msgstr "" -#: js/MeterBlocks.js:769 -msgid "beat" +#: js/blocks/PitchBlocks.js:1270 +#.TRANS: seventh means the note is the six scale degrees above current note +msgid "seventh" msgstr "" -#: js/MeterBlocks.js:813 -msgid "on every beat do" +#: js/blocks/PitchBlocks.js:1289 +#.TRANS: sixth means the note is the five scale degrees above current note +msgid "sixth" msgstr "" -#: js/MeterBlocks.js:821 -msgid "The On-every-beat block lets you specify actions to take on every beat." +#: js/blocks/PitchBlocks.js:1308 +#.TRANS: fifth means the note is the four scale degrees above current note +msgid "fifth" msgstr "" -#: js/MeterBlocks.js:874 -msgid "on every note do" +#: js/blocks/PitchBlocks.js:1328 +#.TRANS: fourth means the note is three scale degrees above current note +msgid "fourth" msgstr "" -#: js/MeterBlocks.js:882 -msgid "The On-every-note block lets you specify actions to take on every note." +#: js/blocks/PitchBlocks.js:1347 +#.TRANS: third means the note is two scale degrees above current note +msgid "third" msgstr "" -#: js/MeterBlocks.js:928 -#: js/MeterBlocks.js:999 -#.TRANS: sets tempo by defining a beat and beats per minute -msgid "master beats per minute" +#: js/blocks/PitchBlocks.js:1366 +#.TRANS: second means the note is one scale degree above current note +msgid "second" msgstr "" -#: js/MeterBlocks.js:952 -#: js/MeterBlocks.js:1078 -#: js/MeterBlocks.js:1135 -msgid "bpm" +#: js/blocks/PitchBlocks.js:1407 +msgid "The Scalar transposition block will shift the pitches contained inside Note blocks up (or down) the scale." msgstr "" -#: js/MeterBlocks.js:952 -#: js/MeterBlocks.js:1078 -#: js/MeterBlocks.js:1135 -msgid "beat value" +#: js/blocks/PitchBlocks.js:1409 +msgid "In the example shown above, sol is shifted up to la." msgstr "" -#: js/MeterBlocks.js:1024 -#: js/MeterBlocks.js:1167 -#: js/MeterBlocks.js:1241 -msgid "Beats per minute must be > 30." +#: js/blocks/PitchBlocks.js:1416 +#.TRANS: adjust the amount of shift (up or down) of a pitch by musical scale (scalar) steps +msgid "scalar transpose" msgstr "" -#: js/MeterBlocks.js:1027 -#: js/MeterBlocks.js:1170 -#: js/MeterBlocks.js:1244 -msgid "Maximum beats per minute is 1000." +#: js/blocks/PitchBlocks.js:1451 +msgid "The Accidental block is used to create sharps and flats" msgstr "" -#: js/MeterBlocks.js:1068 -msgid "The Beats per minute block sets the number of 1/4 notes per minute." +#: js/blocks/PitchBlocks.js:1458 +#.TRANS: An accidental is a modification to a pitch, e.g., sharp or flat. +msgid "accidental override" msgstr "" -#: js/MeterBlocks.js:1279 -#.TRANS: anacrusis -msgid "pickup" +#: js/blocks/PitchBlocks.js:1581 +msgid "The Hertz block (in combination with a Number block) will play a sound at the specified frequency." msgstr "" -#: js/MeterBlocks.js:1367 -msgid "number of beats" +#: js/blocks/PitchBlocks.js:1671 +msgid "The Pitch Number block will play a pitch associated by its number, e.g. 0 for C and 7 for G." msgstr "" -#: js/DictBlocks.js:77 -msgid "show dictionary" +#: js/blocks/PitchBlocks.js:1703 +#: js/blocks/PitchBlocks.js:1745 +#.TRANS: a numeric mapping of the notes in an octave based on the musical mode +#.TRANS: a numeric mapping of the notes in an octave based on the musical mode +msgid "nth modal pitch" msgstr "" -#: js/DictBlocks.js:129 -msgid "The Dictionary block returns a dictionary." +#: js/blocks/PitchBlocks.js:1706 +msgid "n^th Modal Pitch takes the pattern of pitches in semitones for a mode and makes each point a degree of the mode," msgstr "" -#: js/DictBlocks.js:197 -#: js/DictBlocks.js:339 -msgid "The Get-dict block returns a value in the dictionary for a specified key." +#: js/blocks/PitchBlocks.js:1708 +msgid "starting from 1 and regardless of tonal framework (i.e. not always 8 notes in the octave)" msgstr "" -#: js/DictBlocks.js:212 -#: js/DictBlocks.js:354 -#.TRANS: retrieve a value from the dictionary with a given key -msgid "get value" +#: js/blocks/PitchBlocks.js:1749 +msgid "N^th Modal Pitch takes a number as an input as the n^th degree for the given mode. 0 is the first position, 1 is the second, -1 is the note before the first etc." msgstr "" -#: js/DictBlocks.js:215 -#: js/DictBlocks.js:216 -#: js/DictBlocks.js:289 -#: js/DictBlocks.js:290 -#: js/DictBlocks.js:357 -#: js/DictBlocks.js:430 -#: js/DictBlocks.js:431 -msgid "key2" +#: js/blocks/PitchBlocks.js:1751 +msgid "The pitches change according to the mode specified without any need for respellings." msgstr "" -#: js/DictBlocks.js:271 -#: js/DictBlocks.js:411 -msgid "The Set-dict block sets a value in the dictionary for a specified key." +#: js/blocks/PitchBlocks.js:1790 +msgid "Scale Degree is a common convention in music. Scale Degree offers seven possible positions in the scale (1-7) and can be modified via accidentals." msgstr "" -#: js/DictBlocks.js:286 -#: js/DictBlocks.js:427 -#.TRANS: set a value in the dictionary for a given key -msgid "set value" +#: js/blocks/PitchBlocks.js:1792 +msgid "Scale Degree 1 is always the first pitch in a given scale, regardless of octave." msgstr "" -#: js/ExtrasBlocks.js:33 -msgid "fraction" +#: js/blocks/PitchBlocks.js:1814 +#.TRANS: step some number of notes in current musical scale +msgid "scalar step" msgstr "" -#: js/ExtrasBlocks.js:36 -msgid "Convert a float to a fraction" +#: js/blocks/PitchBlocks.js:1819 +msgid "The Scalar Step block (in combination with a Number block) will play the next pitch in a scale," msgstr "" -#: js/ExtrasBlocks.js:93 -msgid "save as ABC" +#: js/blocks/PitchBlocks.js:1821 +msgid "eg if the last note played was sol, Scalar Step 1 will play la." msgstr "" -#: js/ExtrasBlocks.js:96 -#: js/ExtrasBlocks.js:132 -#: js/ExtrasBlocks.js:168 -msgid "title" +#: js/blocks/PitchBlocks.js:1857 +msgid "The Pitch block specifies the pitch name and octave of a note that together determine the frequency of the note." msgstr "" -#: js/ExtrasBlocks.js:129 -msgid "save as Lilypond" +#: js/blocks/ProgramBlocks.js:33 +msgid "The Load-heap-from-app block loads the heap from a web page." msgstr "" -#: js/ExtrasBlocks.js:165 -msgid "save as SVG" +#: js/blocks/ProgramBlocks.js:44 +#.TRANS: load the heap contents from a URL +msgid "load heap from App" msgstr "" -#: js/ExtrasBlocks.js:216 -msgid "no background" +#: js/blocks/ProgramBlocks.js:95 +msgid "Error parsing JSON data:" msgstr "" -#: js/ExtrasBlocks.js:219 -msgid "The No background block eliminates the background from the saved SVG output." +#: js/blocks/ProgramBlocks.js:100 +msgid "404: Page not found" msgstr "" -#: js/ExtrasBlocks.js:247 -msgid "show blocks" +#: js/blocks/ProgramBlocks.js:133 +msgid "The Save-heap-to-app block saves the heap to a web page." msgstr "" -#: js/ExtrasBlocks.js:249 -msgid "The Show blocks block shows the blocks." +#: js/blocks/ProgramBlocks.js:144 +#.TRANS: save the heap contents to a URL +msgid "save heap to App" msgstr "" -#: js/ExtrasBlocks.js:274 -msgid "hide blocks" +#: js/blocks/ProgramBlocks.js:189 +msgid "Cannot find a valid heap for" msgstr "" -#: js/ExtrasBlocks.js:276 -msgid "The Hide blocks block hides the blocks." +#: js/blocks/ProgramBlocks.js:206 +msgid "The Load-heap block loads the heap from a file." msgstr "" -#: js/ExtrasBlocks.js:305 -#: js/ExtrasBlocks.js:335 -msgid "The Space block is used to add space between blocks." +#: js/blocks/ProgramBlocks.js:217 +#.TRANS: load the heap from a file +msgid "load heap" msgstr "" -#: js/ExtrasBlocks.js:373 -msgid "wait" +#: js/blocks/ProgramBlocks.js:270 +msgid "The file you selected does not contain a valid heap." msgstr "" -#: js/ExtrasBlocks.js:376 -msgid "The Wait block pauses the program for a specified number of seconds." +#: js/blocks/ProgramBlocks.js:275 +msgid "The loadHeap block needs a loadFile block." msgstr "" -#: js/ExtrasBlocks.js:430 -#: plugins/facebook.rtp:30 -msgid "comment" +#: js/blocks/ProgramBlocks.js:291 +msgid "The Set-heap block loads the heap." msgstr "" -#: js/ExtrasBlocks.js:466 -msgid "print" +#: js/blocks/ProgramBlocks.js:340 +msgid "The block you selected does not contain a valid heap." msgstr "" -#: js/ExtrasBlocks.js:473 -msgid "The Print block displays text at the top of the screen." +#: js/blocks/ProgramBlocks.js:343 +msgid "The Set heap block needs a heap." msgstr "" -#: js/ExtrasBlocks.js:579 -msgid "display grid" +#: js/blocks/ProgramBlocks.js:360 +msgid "The Load-dictionary block loads a dictionary from a file." msgstr "" -#: js/ExtrasBlocks.js:584 -msgid "The Display Grid Block changes the grid type" +#: js/blocks/ProgramBlocks.js:372 +#.TRANS: load a dictionary from a file +msgid "load dictionary" msgstr "" -#: js/ExtrasBlocks.js:686 -#: js/ExtrasBlocks.js:705 -#: js/ExtrasBlocks.js:728 -#: js/ExtrasBlocks.js:751 -#: js/ExtrasBlocks.js:769 -#: js/ExtrasBlocks.js:788 -#: js/ExtrasBlocks.js:807 -#: js/ExtrasBlocks.js:826 -msgid "unknown" +#: js/blocks/ProgramBlocks.js:390 +#: js/blocks/ProgramBlocks.js:658 +#: js/blocks/ToneBlocks.js:1025 +msgid "file" msgstr "" -#: js/SensorsBlocks.js:36 -msgid "The Input block prompts for keyboard input." +#: js/blocks/ProgramBlocks.js:444 +msgid "The file you selected does not contain a valid dictionary." msgstr "" -#: js/SensorsBlocks.js:46 -msgid "input" +#: js/blocks/ProgramBlocks.js:449 +msgid "The load dictionary block needs a load file block." msgstr "" -#: js/SensorsBlocks.js:64 -msgid "Input a value" +#: js/blocks/ProgramBlocks.js:466 +msgid "The Set-dictionary block loads a dictionary." msgstr "" -#: js/SensorsBlocks.js:126 -msgid "input value" +#: js/blocks/ProgramBlocks.js:477 +#.TRANS: load a dictionary from a JSON +msgid "set dictionary" msgstr "" -#: js/SensorsBlocks.js:131 -msgid "The Input-value block stores the input." +#: js/blocks/ProgramBlocks.js:546 +msgid "The block you selected does not contain a valid dictionary." msgstr "" -#: js/SensorsBlocks.js:238 -msgid "loudness" +#: js/blocks/ProgramBlocks.js:550 +msgid "The set dictionary block needs a dictionary." msgstr "" -#: js/SensorsBlocks.js:245 -msgid "The Loudness block returns the volume detected by the microphone." +#: js/blocks/ProgramBlocks.js:567 +msgid "The Save-heap block saves the heap to a file." msgstr "" -#: js/SensorsBlocks.js:300 -msgid "click" +#: js/blocks/ProgramBlocks.js:578 +#.TRANS: save the heap to a file +msgid "save heap" msgstr "" -#: js/SensorsBlocks.js:306 -msgid "The Click block triggers an event if a mouse has been clicked." +#: js/blocks/ProgramBlocks.js:629 +msgid "The Save-dictionary block saves a dictionary to a file." msgstr "" -#: js/SensorsBlocks.js:313 -msgid "The Click block triggers an event if a turtle has been clicked." +#: js/blocks/ProgramBlocks.js:640 +#.TRANS: save a dictionary to a file +msgid "save dictionary" msgstr "" -#: js/SensorsBlocks.js:342 -msgid "cursor over" +#: js/blocks/ProgramBlocks.js:720 +msgid "The Open palette block opens a palette." msgstr "" -#: js/SensorsBlocks.js:387 -msgid "cursor out" +#: js/blocks/ProgramBlocks.js:727 +msgid "open palette" msgstr "" -#: js/SensorsBlocks.js:433 -msgid "cursor button down" +#: js/blocks/ProgramBlocks.js:785 +msgid "The Delete block block removes a block." msgstr "" -#: js/SensorsBlocks.js:477 -msgid "cursor button up" +#: js/blocks/ProgramBlocks.js:797 +#.TRANS: Move this block to the trash. +msgid "delete block" msgstr "" -#: js/SensorsBlocks.js:638 -msgid "The Get red block returns the red component of the pixel under the mouse." +#: js/blocks/ProgramBlocks.js:861 +msgid "The Move block block moves a block." msgstr "" -#: js/SensorsBlocks.js:644 -msgid "The Get red block returns the red component of the pixel under the turtle." +#: js/blocks/ProgramBlocks.js:869 +#.TRANS: Move the position of a block on the screen. +msgid "move block" msgstr "" -#: js/SensorsBlocks.js:685 -#: plugins/rodi.rtp:216 -msgid "pixel color" +#: js/blocks/ProgramBlocks.js:881 +#: js/blocks/ProgramBlocks.js:1048 +msgid "block number" msgstr "" -#: js/SensorsBlocks.js:690 -msgid "The Get pixel block returns the color of the pixel under the mouse." +#: js/blocks/ProgramBlocks.js:935 +#.TRANS: Run program beginning at this block. +msgid "run block" msgstr "" -#: js/SensorsBlocks.js:696 -msgid "The Get pixel block returns the color of the pixel under the turtle." +#: js/blocks/ProgramBlocks.js:1025 +msgid "The Dock block block connections two blocks." msgstr "" -#: js/SensorsBlocks.js:758 -msgid "time" +#: js/blocks/ProgramBlocks.js:1036 +#.TRANS: We can connect a block to another block. +msgid "connect blocks" msgstr "" -#: js/SensorsBlocks.js:804 -msgid "cursor y" +#: js/blocks/ProgramBlocks.js:1048 +msgid "target block" msgstr "" -#: js/SensorsBlocks.js:809 -msgid "The Cursor Y block returns the vertical position of the mouse." +#: js/blocks/ProgramBlocks.js:1048 +msgid "connection number" msgstr "" -#: js/SensorsBlocks.js:845 -msgid "cursor x" +#: js/blocks/ProgramBlocks.js:1140 +msgid "The Make block block creates a new block." msgstr "" -#: js/SensorsBlocks.js:850 -msgid "The Cursor X block returns the horizontal position of the mouse." +#: js/blocks/ProgramBlocks.js:1152 +#.TRANS: Create a new block +msgid "make block" msgstr "" -#: js/SensorsBlocks.js:886 -msgid "mouse button" +#: js/blocks/ProgramBlocks.js:1285 +msgid "Cannot find block" msgstr "" -#: js/SensorsBlocks.js:888 -msgid "The Mouse-button block returns True if the mouse button is pressed." +#: js/blocks/ProgramBlocks.js:1304 +#: js/blocks/ProgramBlocks.js:1313 +msgid "Warning: block argument type mismatch" msgstr "" -#: js/SensorsBlocks.js:934 -msgid "to ASCII" +#: js/blocks/ProgramBlocks.js:1347 +msgid "The Open project block is used to open a project from a web page." msgstr "" -#: js/SensorsBlocks.js:938 -msgid "The To ASCII block converts numbers to letters." +#: js/blocks/ProgramBlocks.js:1357 +msgid "open project" msgstr "" -#: js/SensorsBlocks.js:1005 -msgid "The Keyboard block returns computer keyboard input." +#: js/blocks/ProgramBlocks.js:1410 +msgid "Please enter a valid URL." msgstr "" -#: js/IntervalsActions.js:216 -msgid "Adding missing pitch number 0." +#: js/blocks/ToneBlocks.js:34 +msgid "oscillator" msgstr "" -#: js/IntervalsActions.js:224 -msgid "Ignoring pitch numbers less than zero or greater than eleven." +#: js/blocks/ToneBlocks.js:42 +#: js/blocks/WidgetBlocks.js:179 +#: js/widgets/timbre.js:1558 +#: js/widgets/timbre.js:1808 +#.TRANS: there are different types (sine, triangle, square...) of oscillators. +#.TRANS: type of filter, e.g., lowpass, highpass, etc. +msgid "type" msgstr "" -#: js/IntervalsActions.js:230 -msgid "Ignoring duplicate pitch numbers." +#: js/blocks/ToneBlocks.js:44 +#: js/widgets/timbre.js:1562 +#.TRANS: Partials refers to the number of sine waves combined into the sound. +msgid "partials" msgstr "" -#: js/PitchActions.js:88 -msgid "The Scalar Step Block must be used inside of a Note Block." +#: js/blocks/ToneBlocks.js:76 +msgid "You are adding multiple oscillator blocks." msgstr "" -#: js/PitchActions.js:107 -msgid "The Scalar Step Block must be preceded by a Pitch Block." +#: js/blocks/ToneBlocks.js:144 +#: js/widgets/timbre.js:1225 +#.TRANS: a duo synthesizer combines a synth with a sequencer +msgid "duo synth" msgstr "" -#: js/DrumActions.js:231 -msgid "Noise Block: Did you mean to use a Note block?" +#: js/blocks/ToneBlocks.js:149 +msgid "The Duo synth block is a duo-frequency modulator used to define a timbre." msgstr "" -#: js/MeterActions.js:101 -#: js/MeterActions.js:139 -msgid "beats per minute must be greater than" +#: js/blocks/ToneBlocks.js:157 +#: js/widgets/timbre.js:1476 +msgid "vibrato rate" msgstr "" -#: js/MeterActions.js:111 -#: js/MeterActions.js:149 -msgid "maximum" +#: js/blocks/ToneBlocks.js:157 +msgid "vibrato intensity" msgstr "" -#: js/MeterActions.js:117 -#: js/MeterActions.js:155 -msgid "beats per minute is" +#: js/blocks/ToneBlocks.js:185 +#: js/widgets/timbre.js:1221 +#.TRANS: AM (amplitude modulation) synthesizer +msgid "AM synth" msgstr "" -#: js/ToneActions.js:134 -msgid "Vibrato intensity must be between 1 and 100." +#: js/blocks/ToneBlocks.js:189 +msgid "The AM synth block is an amplitude modulator used to define a timbre." msgstr "" -#: js/ToneActions.js:139 -msgid "Vibrato rate must be greater than 0." +#: js/blocks/ToneBlocks.js:224 +#: js/widgets/timbre.js:1223 +#.TRANS: FM (frequency modulation) synthesizer +msgid "FM synth" msgstr "" -#: js/ToneActions.js:192 -#: js/ToneActions.js:265 -#.TRANS: Depth is the intesity of the tremolo or chorus effect. -msgid "Depth is out of range." +#: js/blocks/ToneBlocks.js:228 +msgid "The FM synth block is a frequency modulator used to define a timbre." msgstr "" -#: js/ToneActions.js:301 -msgid "Distortion must be from 0 to 100." +#: js/blocks/ToneBlocks.js:262 +msgid "partial" msgstr "" -#: js/ToneActions.js:332 -#.TRANS: partials components in a harmonic series -msgid "Partial must be greater than or equal to 0." +#: js/blocks/ToneBlocks.js:265 +msgid "The Partial block is used to specify a weight for a specific partial harmonic." msgstr "" -#: js/ToneActions.js:378 -#: js/ToneActions.js:417 -#: js/ToneActions.js:456 -#: js/timbre.js:782 -msgid "Unable to use synth due to existing oscillator" +#: js/blocks/ToneBlocks.js:284 +#.TRANS: partials are weighted components in a harmonic series +msgid "Partial weight must be between 0 and 1." msgstr "" -#: js/ToneActions.js:388 -#: js/ToneActions.js:427 -msgid "The input cannot be negative." +#: js/blocks/ToneBlocks.js:297 +#.TRANS: partials are weighted components in a harmonic series +msgid "Partial block should be used inside of a Weighted-partials block." msgstr "" -#: js/DictActions.js:75 -#: js/DictActions.js:153 -#: js/DictActions.js:188 -msgid "font" +#: js/blocks/ToneBlocks.js:325 +#.TRANS: partials are weighted components in a harmonic series +msgid "weighted partials" msgstr "" -#: js/musicutils.js:363 -#: js/musicutils.js:471 -#: js/pitchdrummatrix.js:151 -#: js/musickeyboard.js:2563 -msgid "rest" +#: js/blocks/ToneBlocks.js:383 +msgid "The Harmonic block will add harmonics to the contained notes." msgstr "" -#: js/musicutils.js:565 -#.TRANS: ordinal number. Please keep exactly one space between each number. -msgid "1st 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th" +#: js/blocks/ToneBlocks.js:390 +#.TRANS: A harmonic is an overtone. +msgid "harmonic" msgstr "" -#: js/musicutils.js:629 -#: js/musicutils.js:812 -#: js/musicutils.js:911 -#.TRANS: augmented is a music term related to intervals -msgid "augmented" +#: js/blocks/ToneBlocks.js:431 +msgid "The Distortion block adds distortion to the pitch." msgstr "" -#: js/musicutils.js:631 -#: js/musicutils.js:813 -#: js/musicutils.js:910 -#.TRANS: diminished is a music term related to intervals and mode -msgid "diminished" +#: js/blocks/ToneBlocks.js:438 +#: js/widgets/timbre.js:2100 +#.TRANS: distortion is an alteration in the sound +msgid "distortion" msgstr "" -#: js/musicutils.js:639 -#.TRANS: twelve semi-tone scale for music -msgid "chromatic" +#: js/blocks/ToneBlocks.js:487 +msgid "The Tremolo block adds a wavering effect." msgstr "" -#: js/musicutils.js:640 -msgid "algerian" +#: js/blocks/ToneBlocks.js:495 +#: js/widgets/timbre.js:2092 +#.TRANS: a wavering effect in a musical tone +msgid "tremolo" msgstr "" -#: js/musicutils.js:641 -msgid "spanish" +#: js/blocks/ToneBlocks.js:500 +#: js/blocks/ToneBlocks.js:569 +#: js/blocks/ToneBlocks.js:630 +#: js/blocks/ToneBlocks.js:689 +#: js/widgets/timbre.js:2134 +#: js/widgets/timbre.js:2222 +#: js/widgets/timbre.js:2317 +#: js/widgets/timbre.js:2419 +#.TRANS: rate at which tremolo wavers +msgid "rate" msgstr "" -#: js/musicutils.js:643 -#.TRANS: modal scale in music -msgid "octatonic" +#: js/blocks/ToneBlocks.js:502 +#: js/blocks/ToneBlocks.js:630 +#: js/widgets/timbre.js:2137 +#: js/widgets/timbre.js:2328 +#.TRANS: amplitude of tremolo waver +msgid "depth" msgstr "" -#: js/musicutils.js:645 -#.TRANS: harmonic major scale in music -msgid "harmonic major" +#: js/blocks/ToneBlocks.js:559 +msgid "The Phaser block adds a sweeping sound." msgstr "" -#: js/musicutils.js:647 -#.TRANS: natural minor scales in music -msgid "natural minor" +#: js/blocks/ToneBlocks.js:566 +#: js/widgets/timbre.js:2098 +#.TRANS: alter the phase of the sound +msgid "phaser" msgstr "" -#: js/musicutils.js:649 -#.TRANS: harmonic minor scale in music -msgid "harmonic minor" +#: js/blocks/ToneBlocks.js:569 +#: js/turtleactions/IntervalsActions.js:114 +#: js/widgets/timbre.js:2422 +msgid "octaves" msgstr "" -#: js/musicutils.js:651 -#.TRANS: melodic minor scale in music -msgid "melodic minor" +#: js/blocks/ToneBlocks.js:569 +#: js/widgets/timbre.js:2425 +msgid "base frequency" msgstr "" -#: js/musicutils.js:655 -#.TRANS: modal scale for music -msgid "dorian" +#: js/blocks/ToneBlocks.js:619 +msgid "The Chorus block adds a chorus effect." msgstr "" -#: js/musicutils.js:657 -#.TRANS: modal scale for music -msgid "phrygian" +#: js/blocks/ToneBlocks.js:627 +#: js/widgets/timbre.js:2096 +#.TRANS: musical effect to simulate a choral sound +msgid "chorus" msgstr "" -#: js/musicutils.js:659 -#.TRANS: modal scale for music -msgid "lydian" +#: js/blocks/ToneBlocks.js:630 +msgid "delay" msgstr "" -#: js/musicutils.js:661 -#.TRANS: modal scale for music -msgid "mixolydian" +#: js/blocks/ToneBlocks.js:678 +msgid "The Vibrato block adds a rapid, slight variation in pitch." msgstr "" -#: js/musicutils.js:665 -#.TRANS: modal scale for music -msgid "locrian" +#: js/blocks/ToneBlocks.js:686 +#: js/widgets/timbre.js:2094 +#.TRANS: a rapid, slight variation in pitch +msgid "vibrato" msgstr "" -#: js/musicutils.js:667 -#.TRANS: minor jazz scale for music -msgid "jazz minor" +#: js/blocks/ToneBlocks.js:689 +#: js/widgets/timbre.js:2221 +msgid "intensity" msgstr "" -#: js/musicutils.js:669 -#.TRANS: bebop scale for music -msgid "bebop" +#: js/blocks/ToneBlocks.js:733 +#.TRANS: select synthesizer +msgid "set synth" msgstr "" -#: js/musicutils.js:670 -msgid "arabic" +#: js/blocks/ToneBlocks.js:804 +msgid "synth name" msgstr "" -#: js/musicutils.js:671 -msgid "byzantine" +#: js/blocks/ToneBlocks.js:842 +msgid "set default instrument" msgstr "" -#: js/musicutils.js:673 -#.TRANS: musical scale for music by Verdi -msgid "enigmatic" +#: js/blocks/ToneBlocks.js:895 +#: js/blocks/ToneBlocks.js:943 +#.TRANS: set the characteristics of a custom instrument +msgid "set instrument" msgstr "" -#: js/musicutils.js:674 -msgid "ethiopian" +#: js/blocks/ToneBlocks.js:898 +#: js/blocks/ToneBlocks.js:926 +#: js/blocks/ToneBlocks.js:932 +msgid "The Set instrument block selects a voice for the synthesizer," msgstr "" -#: js/musicutils.js:676 -#.TRANS: Ethiopic scale for music -msgid "geez" +#: js/blocks/ToneBlocks.js:900 +#: js/blocks/ToneBlocks.js:934 +msgid "eg guitar piano violin or cello." msgstr "" -#: js/musicutils.js:677 -msgid "hindu" +#: js/blocks/ToneBlocks.js:1015 +msgid "Import a sound file to use as an instrument and set its pitch center." msgstr "" -#: js/musicutils.js:678 -msgid "hungarian" +#: js/blocks/ToneBlocks.js:1110 +msgid "Upload a sound file to connect with the sample block." msgstr "" -#: js/musicutils.js:680 -#.TRANS: minor Romanian scale for music -msgid "romanian minor" +#: js/blocks/VolumeBlocks.js:35 +msgid "synth volume" msgstr "" -#: js/musicutils.js:681 -msgid "spanish gypsy" +#: js/blocks/VolumeBlocks.js:39 +msgid "The Synth volume block returns the current volume of the current synthesizer." msgstr "" -#: js/musicutils.js:683 -#.TRANS: musical scale for Mid-Eastern music -msgid "maqam" +#: js/blocks/VolumeBlocks.js:105 +msgid "master volume" msgstr "" -#: js/musicutils.js:685 -#.TRANS: minor blues scale for music -msgid "minor blues" +#: js/blocks/VolumeBlocks.js:109 +msgid "The Master volume block returns the master volume." msgstr "" -#: js/musicutils.js:687 -#.TRANS: major blues scale for music -msgid "major blues" +#: js/blocks/VolumeBlocks.js:355 +#: js/blocks/VolumeBlocks.js:524 +msgid "set synth volume" msgstr "" -#: js/musicutils.js:688 -msgid "whole tone" +#: js/blocks/VolumeBlocks.js:362 +#: js/blocks/VolumeBlocks.js:545 +msgid "synth" msgstr "" -#: js/musicutils.js:690 -#.TRANS: pentatonic is a general term that means "five note scale". This scale is typically known as "minor pentatonic" -msgid "minor pentatonic" +#: js/blocks/VolumeBlocks.js:403 +#: js/blocks/VolumeBlocks.js:577 +#: js/blocks/VolumeBlocks.js:740 +#: js/turtleactions/VolumeActions.js:173 +msgid "Setting volume to 0." msgstr "" -#: js/musicutils.js:692 -#.TRANS: pentatonic is a general term that means "five note scale". This scale is typically known as "major pentatonic" -msgid "major pentatonic" +#: js/blocks/VolumeBlocks.js:440 +msgid "Synth not found" msgstr "" -#: js/musicutils.js:693 -msgid "chinese" +#: js/blocks/VolumeBlocks.js:494 +msgid "set drum volume" msgstr "" -#: js/musicutils.js:694 -msgid "egyptian" +#: js/blocks/VolumeBlocks.js:530 +msgid "The Set synth volume block will change the volume of a particular synth," msgstr "" -#: js/musicutils.js:696 -#.TRANS: https://en.wikipedia.org/wiki/Hirajoshi_scale NOTE: There are three different versions of this scale -msgid "hirajoshi" +#: js/blocks/VolumeBlocks.js:532 +msgid "eg guitar violin snare drum etc." msgstr "" -#: js/musicutils.js:697 -msgid "Japan" +#: js/blocks/VolumeBlocks.js:534 +msgid "The default volume is 50." msgstr "" -#: js/musicutils.js:699 -#.TRANS: https://en.wikipedia.org/wiki/In_scale and https://en.wikipedia.org/wiki/Sakura_Sakura -msgid "in" +#: js/blocks/VolumeBlocks.js:536 +msgid "The range is 0 for silence to 100 for full volume." msgstr "" -#: js/musicutils.js:701 -#.TRANS: https://en.wikipedia.org/wiki/Miny%C5%8D_scale -msgid "minyo" +#: js/blocks/VolumeBlocks.js:597 +msgid "set panning" msgstr "" -#: js/musicutils.js:703 -#.TRANS: Italian mathematician -msgid "fibonacci" +#: js/blocks/VolumeBlocks.js:603 +msgid "The Set Panning block sets the panning for all synthesizers." msgstr "" -#: js/musicutils.js:708 -#: js/musicutils.js:1106 -#.TRANS: lowpass filter -msgid "lowpass" +#: js/blocks/VolumeBlocks.js:625 +msgid "Warning: Sound is coming out from only the left or right side." msgstr "" -#: js/musicutils.js:710 -#: js/musicutils.js:1107 -#.TRANS: bandpass filter -msgid "bandpass" +#: js/blocks/VolumeBlocks.js:647 +#: js/blocks/VolumeBlocks.js:695 +msgid "set master volume" msgstr "" -#: js/musicutils.js:712 -#: js/musicutils.js:1108 -#.TRANS: high-shelf filter -msgid "highshelf" +#: js/blocks/VolumeBlocks.js:653 +msgid "The Set master volume block sets the volume for all synthesizers." msgstr "" -#: js/musicutils.js:714 -#: js/musicutils.js:1109 -#.TRANS: low-shelf filter -msgid "lowshelf" +#: js/blocks/VolumeBlocks.js:784 +msgid "The Set relative volume block changes the volume of the contained notes." msgstr "" -#: js/musicutils.js:716 -#: js/musicutils.js:1110 -#.TRANS: notch-shelf filter -msgid "notch" +#: js/blocks/VolumeBlocks.js:791 +msgid "set relative volume" msgstr "" -#: js/musicutils.js:718 -#: js/musicutils.js:1111 -#.TRANS: all-pass filter -msgid "allpass" +#: js/blocks/VolumeBlocks.js:857 +msgid "decrescendo" msgstr "" -#: js/musicutils.js:720 -#: js/musicutils.js:1112 -#.TRANS: peaking filter -msgid "peaking" +#: js/blocks/VolumeBlocks.js:921 +msgid "crescendo" msgstr "" -#: js/musicutils.js:731 -#: js/synthutils.js:58 -#.TRANS: musical instrument -msgid "violin" +#: js/blocks/WidgetBlocks.js:81 +#.TRANS: sound envelope (ADSR) +msgid "envelope" msgstr "" -#: js/musicutils.js:732 -#: js/synthutils.js:60 -#.TRANS: viola musical instrument -msgid "viola" +#: js/blocks/WidgetBlocks.js:89 +#.TRANS: Attack time is the time taken for initial run-up of level from nil to peak, beginning when the key is first pressed. +msgid "attack" msgstr "" -#: js/musicutils.js:733 -#: js/synthutils.js:98 -#.TRANS: xylophone musical instrument -msgid "xylophone" +#: js/blocks/WidgetBlocks.js:91 +#.TRANS: Decay time is the time taken for the subsequent run down from the attack level to the designated sustain level. +msgid "decay" msgstr "" -#: js/musicutils.js:734 -#: js/synthutils.js:120 -#.TRANS: vibraphone musical instrument -msgid "vibraphone" +#: js/blocks/WidgetBlocks.js:93 +#.TRANS: Sustain level is the level during the main sequence of the sound's duration, until the key is released. +msgid "sustain" msgstr "" -#: js/musicutils.js:735 -#: js/synthutils.js:62 -#.TRANS: musical instrument -msgid "cello" +#: js/blocks/WidgetBlocks.js:95 +#.TRANS: Release time is the time taken for the level to decay from the sustain level to zero after the key is released. +msgid "release" msgstr "" -#: js/musicutils.js:737 -#: js/synthutils.js:66 -#.TRANS: viola musical instrument -msgid "double bass" +#: js/blocks/WidgetBlocks.js:113 +msgid "Attack value should be from 0 to 100." msgstr "" -#: js/musicutils.js:738 -#: js/synthutils.js:68 -#: js/rhythmruler.js:2119 -#.TRANS: musical instrument -msgid "guitar" +#: js/blocks/WidgetBlocks.js:116 +msgid "Decay value should be from 0 to 100." msgstr "" -#: js/musicutils.js:739 -#: js/synthutils.js:70 -#.TRANS: musical instrument -msgid "acoustic guitar" +#: js/blocks/WidgetBlocks.js:119 +msgid "Sustain value should be from 0 to 100." msgstr "" -#: js/musicutils.js:740 -#: js/synthutils.js:72 -#.TRANS: musical instrument -msgid "flute" +#: js/blocks/WidgetBlocks.js:122 +msgid "Release value should be from 0-100." msgstr "" -#: js/musicutils.js:741 -#: js/synthutils.js:74 -#.TRANS: musical instrument -msgid "clarinet" +#: js/blocks/WidgetBlocks.js:140 +msgid "You are adding multiple envelope blocks." msgstr "" -#: js/musicutils.js:742 -#: js/synthutils.js:76 -#.TRANS: musical instrument -msgid "saxophone" +#: js/blocks/WidgetBlocks.js:171 +#.TRANS: a filter removes some unwanted components from a signal +msgid "filter" msgstr "" -#: js/musicutils.js:743 -#: js/synthutils.js:78 -#.TRANS: musical instrument -msgid "tuba" +#: js/blocks/WidgetBlocks.js:181 +#: js/widgets/timbre.js:1818 +#.TRANS: rolloff is the steepness of a change in frequency. +msgid "rolloff" msgstr "" -#: js/musicutils.js:744 -#: js/synthutils.js:80 -#.TRANS: musical instrument -msgid "trumpet" +#: js/blocks/WidgetBlocks.js:213 +#.TRANS: rolloff is the steepness of a change in frequency. +msgid "Rolloff value should be either -12, -24, -48, or -96 decibels/octave." msgstr "" -#: js/musicutils.js:745 -#: js/synthutils.js:82 -#.TRANS: musical instrument -msgid "oboe" +#: js/blocks/WidgetBlocks.js:252 +msgid "The Temperament tool is used to define custom tuning." msgstr "" -#: js/musicutils.js:746 -#: js/synthutils.js:84 -#.TRANS: musical instrument -msgid "trombone" +#: js/blocks/WidgetBlocks.js:332 +#: js/blocks/WidgetBlocks.js:1573 +#: js/widgets/sampler.js:547 +msgid "Upload a sample and adjust its pitch center." msgstr "" -#: js/musicutils.js:747 -#: js/synthutils.js:100 -#.TRANS: polytone synthesizer -msgid "electronic synth" +#: js/blocks/WidgetBlocks.js:339 +#.TRANS: the speed at music is should be played. +msgid "sampler" msgstr "" -#: js/musicutils.js:748 -#: js/synthutils.js:102 -#.TRANS: simple monotone synthesizer -msgid "simple 1" +#: js/blocks/WidgetBlocks.js:517 +msgid "The Meter block opens a tool to select strong beats for the meter." msgstr "" -#: js/musicutils.js:749 -msgid "simple 2" +#: js/blocks/WidgetBlocks.js:573 +msgid "The oscilloscope block opens a tool to visualize waveforms." msgstr "" -#: js/musicutils.js:750 -msgid "simple 3" +#: js/blocks/WidgetBlocks.js:578 +msgid "oscilloscope" msgstr "" -#: js/musicutils.js:751 -msgid "simple 4" +#: js/blocks/WidgetBlocks.js:645 +msgid "The Custom mode block opens a tool to explore musical mode (the spacing of the notes in a scale)." msgstr "" -#: js/musicutils.js:753 -#: js/synthutils.js:49 -#.TRANS: brown noise synthesizer -msgid "brown noise" +#: js/blocks/WidgetBlocks.js:651 +#.TRANS: musical mode is the pattern of half-steps in an octave, e.g., Major or Minor modes +msgid "custom mode" msgstr "" -#: js/musicutils.js:754 -#: js/synthutils.js:51 -#.TRANS: pink noise synthesizer -msgid "pink noise" +#: js/blocks/WidgetBlocks.js:700 +msgid "The Tempo block opens a metronome to visualize the beat." msgstr "" -#: js/musicutils.js:756 -#: js/synthutils.js:127 -#: js/rhythmruler.js:1670 -#: js/rhythmruler.js:1928 -#.TRANS: musical instrument -msgid "snare drum" +#: js/blocks/WidgetBlocks.js:762 +msgid "The Arpeggio Widget is used to compose chord sequences." msgstr "" -#: js/musicutils.js:757 -#: js/synthutils.js:129 -#.TRANS: musical instrument -msgid "kick drum" +#: js/blocks/WidgetBlocks.js:837 +msgid "The Pitch drum matrix is used to map pitches to drum sounds." msgstr "" -#: js/musicutils.js:758 -#: js/synthutils.js:131 -#.TRANS: musical instrument -msgid "tom tom" +#: js/blocks/WidgetBlocks.js:842 +#.TRANS: makes a mapping between pitches and drum sounds +msgid "pitch-drum mapper" msgstr "" -#: js/musicutils.js:759 -#: js/synthutils.js:133 -#.TRANS: musical instrument -msgid "floor tom" +#: js/blocks/WidgetBlocks.js:891 +msgid "You must have at least one pitch block and one drum block in the matrix." msgstr "" -#: js/musicutils.js:760 -#: js/synthutils.js:135 -#.TRANS: musical instrument -msgid "bass drum" +#: js/blocks/WidgetBlocks.js:920 +msgid "The Pitch slider tool to is used to generate pitches at selected frequencies." msgstr "" -#: js/musicutils.js:761 -#: js/synthutils.js:137 -#.TRANS: a drum made from an inverted cup -msgid "cup drum" +#: js/blocks/WidgetBlocks.js:925 +#.TRANS: widget to generate pitches using a slider +msgid "pitch slider" msgstr "" -#: js/musicutils.js:762 -#: js/synthutils.js:139 -#.TRANS: musical instrument -msgid "darbuka drum" +#: js/blocks/WidgetBlocks.js:977 +msgid "chromatic keyboard" msgstr "" -#: js/musicutils.js:763 -#: js/synthutils.js:143 -#.TRANS: musical instrument -msgid "hi hat" +#: js/blocks/WidgetBlocks.js:1011 +#: js/blocks/WidgetBlocks.js:1077 +#.TRANS: widget to generate pitches using a slider +msgid "music keyboard" msgstr "" -#: js/musicutils.js:764 -#: js/synthutils.js:145 -#.TRANS: a small metal bell -msgid "ride bell" +#: js/blocks/WidgetBlocks.js:1062 +#: js/blocks/WidgetBlocks.js:1069 +msgid "The Music keyboard block opens a piano keyboard that can be used to create notes." msgstr "" -#: js/musicutils.js:765 -#: js/synthutils.js:147 -#.TRANS: musical instrument -msgid "cow bell" +#: js/blocks/WidgetBlocks.js:1128 +msgid "The Pitch staircase tool to is used to generate pitches from a given ratio." msgstr "" -#: js/musicutils.js:766 -msgid "japanese drum" +#: js/blocks/WidgetBlocks.js:1135 +#.TRANS: generate a progressive sequence of pitches +msgid "pitch staircase" msgstr "" -#: js/musicutils.js:767 -#: js/synthutils.js:153 -#.TRANS: musical instrument -msgid "japanese bell" +#: js/blocks/WidgetBlocks.js:1222 +msgid "The Rhythm Maker block opens a tool to create drum machines." msgstr "" -#: js/musicutils.js:768 -#: js/synthutils.js:149 -#.TRANS: musical instrument -msgid "triangle bell" +#: js/blocks/WidgetBlocks.js:1291 +msgid "G major scale" msgstr "" -#: js/musicutils.js:769 -#: js/synthutils.js:151 -#.TRANS: musical instrument -msgid "finger cymbals" +#: js/blocks/WidgetBlocks.js:1326 +msgid "C major scale" msgstr "" -#: js/musicutils.js:770 -#: js/synthutils.js:155 -#.TRANS: a musically tuned set of bells -msgid "chime" +#: js/blocks/WidgetBlocks.js:1366 +msgid "The Phrase Maker block opens a tool to create musical phrases." msgstr "" -#: js/musicutils.js:771 -#: js/synthutils.js:157 -#.TRANS: a musical instrument -msgid "gong" +#: js/blocks/WidgetBlocks.js:1373 +#.TRANS: assigns pitch to a sequence of beats to generate a melody +msgid "phrase maker" msgstr "" -#: js/musicutils.js:772 -#: js/synthutils.js:159 -#.TRANS: sound effect -msgid "clang" +#: js/blocks/WidgetBlocks.js:1444 +msgid "You must have at least one pitch block and one rhythm block in the matrix." msgstr "" -#: js/musicutils.js:773 -#: js/synthutils.js:161 -#.TRANS: sound effect -msgid "crash" +#: js/blocks/WidgetBlocks.js:1503 +msgid "The Status block opens a tool for inspecting the status of Music Blocks as it is running." msgstr "" -#: js/musicutils.js:774 -#: js/synthutils.js:163 -#.TRANS: sound effect -msgid "bottle" +#: js/blocks/WidgetBlocks.js:1580 +#.TRANS: AI-generated music +msgid "aimusic" msgstr "" -#: js/musicutils.js:775 -#: js/synthutils.js:165 -#.TRANS: sound effect -msgid "clap" +#: js/turtleactions/MeterActions.js:101 +#: js/turtleactions/MeterActions.js:139 +msgid "beats per minute must be greater than" msgstr "" -#: js/musicutils.js:776 -#: js/synthutils.js:167 -#.TRANS: sound effect -msgid "slap" +#: js/turtleactions/MeterActions.js:111 +#: js/turtleactions/MeterActions.js:149 +msgid "maximum" msgstr "" -#: js/musicutils.js:777 -#: js/synthutils.js:169 -#.TRANS: sound effect -msgid "splash" +#: js/turtleactions/MeterActions.js:117 +#: js/turtleactions/MeterActions.js:155 +msgid "beats per minute is" msgstr "" -#: js/musicutils.js:778 -#: js/synthutils.js:171 -#.TRANS: sound effect -msgid "bubbles" +#: js/turtleactions/DictActions.js:75 +#: js/turtleactions/DictActions.js:142 +#: js/turtleactions/DictActions.js:172 +msgid "font" msgstr "" -#: js/musicutils.js:779 -#: js/synthutils.js:173 -#.TRANS: sound effect -msgid "raindrop" +#: js/turtleactions/DictActions.js:255 +msgid "Dictionary with this name does not exist" msgstr "" -#: js/musicutils.js:780 -#: js/synthutils.js:175 -#.TRANS: animal sound effect -msgid "cat" +#: js/turtleactions/DictActions.js:259 +msgid "Key with this name does not exist in " msgstr "" -#: js/musicutils.js:781 -#: js/synthutils.js:177 -#.TRANS: animal sound effect -msgid "cricket" +#: js/turtleactions/DrumActions.js:227 +msgid "Noise Block: Did you mean to use a Note block?" msgstr "" -#: js/musicutils.js:782 -#: js/synthutils.js:179 -#.TRANS: animal sound effect -msgid "dog" +#: js/turtleactions/IntervalsActions.js:113 +msgid "one" msgstr "" -#: js/musicutils.js:784 -#: js/synthutils.js:86 -#.TRANS: musical instrument -msgid "banjo" +#: js/turtleactions/IntervalsActions.js:113 +msgid "two" msgstr "" -#: js/musicutils.js:785 -#: js/synthutils.js:88 -#.TRANS: musical instrument -msgid "koto" +#: js/turtleactions/IntervalsActions.js:113 +msgid "three" msgstr "" -#: js/musicutils.js:786 -#: js/synthutils.js:90 -#.TRANS: musical instrument -msgid "dulcimer" +#: js/turtleactions/IntervalsActions.js:113 +msgid "four" msgstr "" -#: js/musicutils.js:787 -#: js/synthutils.js:92 -#.TRANS: musical instrument -msgid "electric guitar" +#: js/turtleactions/IntervalsActions.js:113 +msgid "five" msgstr "" -#: js/musicutils.js:788 -#: js/synthutils.js:94 -#.TRANS: musical instrument -msgid "bassoon" +#: js/turtleactions/IntervalsActions.js:113 +msgid "six" msgstr "" -#: js/musicutils.js:789 -#: js/synthutils.js:96 -#.TRANS: musical instrument -msgid "celeste" +#: js/turtleactions/IntervalsActions.js:113 +msgid "seven" msgstr "" -#: js/musicutils.js:791 -#: js/musicutils.js:1123 -#: js/musicutils.js:1131 -#: js/temperament.js:650 -#.TRANS: musical temperament -msgid "equal" +#: js/turtleactions/IntervalsActions.js:113 +msgid "eight" msgstr "" -#: js/musicutils.js:793 -#: js/musicutils.js:1125 -#: js/musicutils.js:1133 -#.TRANS: musical temperament -msgid "Pythagorean" +#: js/turtleactions/IntervalsActions.js:113 +msgid "nine" msgstr "" -#: js/musicutils.js:795 -#: js/musicutils.js:1124 -#: js/musicutils.js:1132 -#.TRANS: musical temperament -msgid "just intonation" +#: js/turtleactions/IntervalsActions.js:119 +msgid "a" msgstr "" -#: js/musicutils.js:797 -#: js/musicutils.js:1126 -#: js/musicutils.js:1127 -#: js/musicutils.js:1134 -#: js/musicutils.js:1135 -#.TRANS: musical temperament -msgid "meantone" +#: js/turtleactions/IntervalsActions.js:120 +msgid "below" msgstr "" -#: js/musicutils.js:814 -msgid "major 7th" +#: js/turtleactions/IntervalsActions.js:124 +msgid "above" msgstr "" -#: js/musicutils.js:815 -msgid "minor 7th" +#: js/turtleactions/IntervalsActions.js:131 +msgid "plus" msgstr "" -#: js/musicutils.js:816 -msgid "dominant 7th" +#: js/turtleactions/IntervalsActions.js:139 +msgid " below" msgstr "" -#: js/musicutils.js:817 -msgid "minor-major 7th" +#: js/turtleactions/IntervalsActions.js:257 +msgid "Adding missing pitch number 0." msgstr "" -#: js/musicutils.js:818 -msgid "fully-diminished 7th" +#: js/turtleactions/IntervalsActions.js:265 +msgid "Ignoring pitch numbers less than zero or greater than eleven." msgstr "" -#: js/musicutils.js:819 -msgid "half-diminished 7th" +#: js/turtleactions/IntervalsActions.js:271 +msgid "Ignoring duplicate pitch numbers." msgstr "" -#: js/musicutils.js:4379 -#: js/musicutils.js:4416 -msgid "current" +#: js/turtleactions/ToneActions.js:134 +msgid "Vibrato intensity must be between 1 and 100." msgstr "" -#: js/musicutils.js:4382 -#: js/musicutils.js:4407 -msgid "next" +#: js/turtleactions/ToneActions.js:139 +msgid "Vibrato rate must be greater than 0." msgstr "" -#: js/musicutils.js:4385 -#: js/musicutils.js:4412 -msgid "previous" +#: js/turtleactions/ToneActions.js:192 +#: js/turtleactions/ToneActions.js:265 +#.TRANS: Depth is the intesity of the tremolo or chorus effect. +msgid "Depth is out of range." msgstr "" -#: js/synthutils.js:104 -#.TRANS: simple monotone synthesizer -msgid "simple-2" +#: js/turtleactions/ToneActions.js:301 +msgid "Distortion must be from 0 to 100." msgstr "" -#: js/synthutils.js:106 -#.TRANS: simple monotone synthesizer -msgid "simple-3" +#: js/turtleactions/ToneActions.js:332 +#.TRANS: partials components in a harmonic series +msgid "Partial must be greater than or equal to 0." msgstr "" -#: js/synthutils.js:108 -#.TRANS: simple monotone synthesizer -msgid "simple-4" +#: js/turtleactions/ToneActions.js:378 +#: js/turtleactions/ToneActions.js:417 +#: js/turtleactions/ToneActions.js:456 +#: js/widgets/timbre.js:782 +msgid "Unable to use synth due to existing oscillator" msgstr "" -#: js/synthutils.js:141 -#.TRANS: musical instrument -msgid "taiko" +#: js/turtleactions/ToneActions.js:388 +#: js/turtleactions/ToneActions.js:427 +msgid "The input cannot be negative." msgstr "" -#: js/modewidget.js:86 -#: js/modewidget.js:88 -#: js/modewidget.js:642 -#: js/modewidget.js:644 -#: js/modewidget.js:712 -#: js/modewidget.js:714 -#: js/temperament.js:2078 -#: js/rhythmruler.js:189 -#: js/rhythmruler.js:1410 -#: js/rhythmruler.js:1412 -#: js/rhythmruler.js:1435 -#: js/rhythmruler.js:1437 -#: js/meterwidget.js:89 -#: js/meterwidget.js:91 +#: js/widgets/modewidget.js:86 +#: js/widgets/modewidget.js:88 +#: js/widgets/modewidget.js:642 +#: js/widgets/modewidget.js:644 +#: js/widgets/modewidget.js:712 +#: js/widgets/modewidget.js:714 +#: js/widgets/meterwidget.js:194 +#: js/widgets/meterwidget.js:196 +#: js/widgets/temperament.js:2236 +#: js/widgets/rhythmruler.js:457 +#: js/widgets/rhythmruler.js:1790 +#: js/widgets/rhythmruler.js:1792 +#: js/widgets/rhythmruler.js:1816 +#: js/widgets/rhythmruler.js:1818 msgid "Play all" msgstr "" -#: js/modewidget.js:115 -#: js/pitchstaircase.js:641 -#: js/phrasemaker.js:339 -#: js/pitchdrummatrix.js:94 -#: js/pitchslider.js:125 -#: js/temperament.js:2083 -#: js/musickeyboard.js:530 -#: js/timbre.js:756 -#: js/meterwidget.js:124 -#: js/arpeggio.js:103 +#: js/widgets/modewidget.js:115 +#: js/widgets/meterwidget.js:229 +#: js/widgets/pitchdrummatrix.js:166 +#: js/widgets/pitchslider.js:125 +#: js/widgets/pitchstaircase.js:641 +#: js/widgets/temperament.js:2244 +#: js/widgets/timbre.js:756 +#: js/widgets/arpeggio.js:103 +#: js/widgets/musickeyboard.js:688 +#: js/widgets/phrasemaker.js:550 msgid "Save" msgstr "" -#: js/modewidget.js:121 -#: js/pitchstaircase.js:686 -#: js/phrasemaker.js:356 -#: js/pitchdrummatrix.js:109 -#: js/musickeyboard.js:534 -#: js/rhythmruler.js:269 -#: js/arpeggio.js:118 +#: js/widgets/modewidget.js:121 +#: js/widgets/pitchdrummatrix.js:181 +#: js/widgets/pitchstaircase.js:686 +#: js/widgets/arpeggio.js:118 +#: js/widgets/musickeyboard.js:696 +#: js/widgets/phrasemaker.js:567 +#: js/widgets/rhythmruler.js:601 #.TRANS: clear all subdivisions from the ruler. msgid "Clear" msgstr "" -#: js/modewidget.js:127 +#: js/widgets/modewidget.js:127 msgid "Rotate counter clockwise" msgstr "" -#: js/modewidget.js:133 +#: js/widgets/modewidget.js:133 msgid "Rotate clockwise" msgstr "" -#: js/modewidget.js:139 +#: js/widgets/modewidget.js:139 msgid "Invert" msgstr "" -#: js/modewidget.js:145 -#: js/pitchstaircase.js:678 -#: js/rhythmruler.js:258 -#: js/timbre.js:963 +#: js/widgets/modewidget.js:145 +#: js/widgets/pitchstaircase.js:678 +#: js/widgets/timbre.js:963 +#: js/widgets/rhythmruler.js:578 msgid "Undo" msgstr "" -#: js/modewidget.js:163 +#: js/widgets/modewidget.js:163 #.TRANS: A circle of notes represents the musical mode. msgid "Click in the circle to select notes for the mode." msgstr "" -#: js/modewidget.js:1017 -#: js/pitchstaircase.js:580 -#: js/phrasemaker.js:4855 -#: js/temperament.js:1754 -#: js/rhythmruler.js:1865 -#: js/rhythmruler.js:2081 -#: js/tempo.js:414 +#: js/widgets/modewidget.js:1017 +#: js/widgets/pitchstaircase.js:580 +#: js/widgets/temperament.js:1929 +#: js/widgets/tempo.js:414 +#: js/widgets/phrasemaker.js:5356 +#: js/widgets/rhythmruler.js:2254 +#: js/widgets/rhythmruler.js:2472 msgid "New action block generated!" msgstr "" -#: js/oscilloscope.js:79 -msgid "Zoom In" -msgstr "" - -#: js/oscilloscope.js:88 -msgid "Zoom Out" -msgstr "" - -#: js/pitchstaircase.js:624 -msgid "Play chord" -msgstr "" - -#: js/pitchstaircase.js:632 -msgid "Play scale" +#: js/widgets/meterwidget.js:275 +msgid "Reset" msgstr "" -#: js/pitchstaircase.js:696 -msgid "Click on a note to create a new step." +#: js/widgets/meterwidget.js:301 +msgid "Click in the circle to select strong beats for the meter." msgstr "" -#: js/phrasemaker.js:363 -msgid "Export" +#: js/widgets/oscilloscope.js:79 +msgid "Zoom In" msgstr "" -#: js/phrasemaker.js:370 -msgid "Sort" +#: js/widgets/oscilloscope.js:88 +msgid "Zoom Out" msgstr "" -#: js/phrasemaker.js:373 -#: js/musickeyboard.js:559 -msgid "Add note" +#: js/widgets/pitchdrummatrix.js:356 +#: js/widgets/pitchdrummatrix.js:752 +msgid "Click in the grid to map notes to drums." msgstr "" -#: js/phrasemaker.js:764 -msgid "Click on the table to add notes." +#: js/widgets/pitchslider.js:103 +msgid "Move up" msgstr "" -#: js/phrasemaker.js:2414 -#: js/phrasemaker.js:2543 -msgid "tuplet value" +#: js/widgets/pitchslider.js:114 +msgid "Move down" msgstr "" -#: js/pitchdrummatrix.js:270 -#: js/pitchdrummatrix.js:639 -msgid "Click in the grid to map notes to drums." +#: js/widgets/pitchslider.js:136 +msgid "Click on the slider to create a note block." msgstr "" -#: js/pitchslider.js:103 -msgid "Move up" +#: js/widgets/pitchstaircase.js:624 +msgid "Play chord" msgstr "" -#: js/pitchslider.js:114 -msgid "Move down" +#: js/widgets/pitchstaircase.js:632 +msgid "Play scale" msgstr "" -#: js/pitchslider.js:136 -msgid "Click on the slider to create a note block." +#: js/widgets/pitchstaircase.js:696 +msgid "Click on a note to create a new step." msgstr "" -#: js/temperament.js:215 +#: js/widgets/temperament.js:321 msgid "back to 2:1 octave space" msgstr "" -#: js/temperament.js:323 +#: js/widgets/temperament.js:447 msgid "edit" msgstr "" -#: js/temperament.js:330 -#: js/temperament.js:332 -#: js/temperament.js:1336 -#: js/temperament.js:1338 +#: js/widgets/temperament.js:454 +#: js/widgets/temperament.js:456 +#: js/widgets/temperament.js:1493 +#: js/widgets/temperament.js:1495 msgid "close" msgstr "" -#: js/temperament.js:423 -#: js/temperament.js:736 -#: js/temperament.js:743 -#: js/temperament.js:845 -#: js/temperament.js:935 -#: js/temperament.js:942 -#: js/temperament.js:1015 -#: js/temperament.js:1284 -#: js/temperament.js:1354 -#: js/temperament.js:1430 +#: js/widgets/temperament.js:552 +#: js/widgets/temperament.js:877 +#: js/widgets/temperament.js:884 +#: js/widgets/temperament.js:986 +#: js/widgets/temperament.js:1080 +#: js/widgets/temperament.js:1087 +#: js/widgets/temperament.js:1160 +#: js/widgets/temperament.js:1433 +#: js/widgets/temperament.js:1511 +#: js/widgets/temperament.js:1596 msgid "done" msgstr "" -#: js/temperament.js:477 -#: js/temperament.js:482 -#: js/temperament.js:918 +#: js/widgets/temperament.js:610 +#: js/widgets/temperament.js:615 +#: js/widgets/temperament.js:1063 msgid "ratio" msgstr "" -#: js/temperament.js:483 +#: js/widgets/temperament.js:616 msgid "interval" msgstr "" -#: js/temperament.js:611 +#: js/widgets/temperament.js:744 msgid "non scalar" msgstr "" -#: js/temperament.js:650 +#: js/widgets/temperament.js:787 msgid "ratios" msgstr "" -#: js/temperament.js:650 +#: js/widgets/temperament.js:787 msgid "arbitrary" msgstr "" -#: js/temperament.js:719 +#: js/widgets/temperament.js:860 msgid "number of divisions" msgstr "" -#: js/temperament.js:741 -#: js/temperament.js:858 -#: js/temperament.js:940 -#: js/temperament.js:1033 +#: js/widgets/temperament.js:882 +#: js/widgets/temperament.js:999 +#: js/widgets/temperament.js:1085 +#: js/widgets/temperament.js:1178 msgid "preview" msgstr "" -#: js/temperament.js:788 +#: js/widgets/temperament.js:929 msgid "The Number of divisions is too large." msgstr "" -#: js/temperament.js:921 +#: js/widgets/temperament.js:1066 msgid "recursion" msgstr "" -#: js/temperament.js:1450 +#: js/widgets/temperament.js:1616 msgid "The octave ratio has changed. This changes temperament significantly." msgstr "" -#: js/temperament.js:2087 +#: js/widgets/temperament.js:2248 msgid "Table" msgstr "" -#: js/temperament.js:2185 +#: js/widgets/temperament.js:2356 msgid "Add pitches" msgstr "" -#: js/musickeyboard.js:570 -msgid "Metronome" +#: js/widgets/tempo.js:78 +#: js/widgets/tempo.js:97 +#: js/widgets/tempo.js:99 +#: js/widgets/aiwidget.js:134 +#: js/widgets/aiwidget.js:136 +#: js/widgets/rhythmruler.js:681 +#: js/widgets/rhythmruler.js:683 +#: js/widgets/rhythmruler.js:1864 +#: js/widgets/rhythmruler.js:1866 +#: js/widgets/sampler.js:180 +#: js/widgets/sampler.js:182 +msgid "Pause" msgstr "" -#: js/musickeyboard.js:1296 -#: plugins/rodi.rtp:193 -msgid "duration" +#: js/widgets/tempo.js:113 +msgid "Save tempo" msgstr "" -#: js/musickeyboard.js:2840 -msgid "New action blocks generated!" +#: js/widgets/tempo.js:144 +msgid "speed up" msgstr "" -#: js/musickeyboard.js:2841 -msgid "New action block generated" +#: js/widgets/tempo.js:150 +msgid "slow down" msgstr "" -#: js/musickeyboard.js:2984 -#: js/musickeyboard.js:2992 -msgid "MIDI device present." +#: js/widgets/tempo.js:194 +msgid "Adjust the tempo with the buttons." msgstr "" -#: js/musickeyboard.js:2995 -msgid "No MIDI device found." +#: js/widgets/tempo.js:261 +msgid "Please enter a number between 30 and 1000" msgstr "" -#: js/musickeyboard.js:3000 -msgid "Failed to get MIDI access in browser." +#: js/widgets/tempo.js:268 +#: js/widgets/tempo.js:271 +msgid "The beats per minute must be between 30 and 1000." msgstr "" -#: js/rhythmruler.js:202 -msgid "Save rhythms" +#: js/widgets/tempo.js:287 +msgid "The beats per minute must be below 1000." msgstr "" -#: js/rhythmruler.js:222 -msgid "Save drum machine" +#: js/widgets/tempo.js:303 +msgid "The beats per minute must be above 30" msgstr "" -#: js/rhythmruler.js:263 -#.TRANS: user can tap out a rhythm by clicking on a ruler. -msgid "Tap a rhythm" +#: js/widgets/timbre.js:766 +msgid "Synthesizer" msgstr "" -#: js/rhythmruler.js:342 -#: js/rhythmruler.js:344 -#: js/rhythmruler.js:1481 -#: js/rhythmruler.js:1483 -#: js/sampler.js:110 -#: js/sampler.js:112 -#: js/tempo.js:78 -#: js/tempo.js:97 -#: js/tempo.js:99 -msgid "Pause" +#: js/widgets/timbre.js:789 +msgid "Oscillator" msgstr "" -#: js/rhythmruler.js:478 -msgid "Click on the ruler to divide it." +#: js/widgets/timbre.js:840 +msgid "Envelope" msgstr "" -#: js/rhythmruler.js:603 -#: js/rhythmruler.js:605 -#: js/rhythmruler.js:804 -#: js/rhythmruler.js:806 -#: js/rhythmruler.js:1386 -#: js/rhythmruler.js:1388 -msgid "tap a rhythm" +#: js/widgets/timbre.js:886 +#: planet/js/GlobalTag.js:50 +#.TRANS: On the Planet, we use labels to tag projects. +msgid "Effects" msgstr "" -#: js/rhythmruler.js:1084 -msgid "Maximum value of 256 has been exceeded." +#: js/widgets/timbre.js:904 +msgid "Filter" msgstr "" -#: js/sampler.js:137 -msgid "Warning: Sample is bigger than 1MB." +#: js/widgets/timbre.js:946 +msgid "Add filter" msgstr "" -#: js/sampler.js:142 -msgid "Upload failed: Sample is not a .wav file." +#: js/widgets/timbre.js:987 +msgid "Click on buttons to open the timbre design tools." msgstr "" -#: js/sampler.js:164 -msgid "A new sample block was generated." +#: js/widgets/timbre.js:1273 +msgid "harmonicity" msgstr "" -#: js/sampler.js:255 -msgid "Upload sample" +#: js/widgets/timbre.js:1340 +#: js/widgets/timbre.js:1406 +msgid "modulation index" msgstr "" -#: js/sampler.js:306 -msgid "Save sample" +#: js/widgets/timbre.js:1484 +msgid "vibrato amount" msgstr "" -#: js/sampler.js:697 -#.TRANS: The reference tone is a sound used for comparison. -msgid "reference tone" +#: js/widgets/timbre.js:1919 +msgid "Filter already present." msgstr "" -#: js/tempo.js:113 -msgid "Save tempo" +#: js/widgets/timbre.js:2322 +msgid "delay (MS)" msgstr "" -#: js/tempo.js:144 -msgid "speed up" +#: js/widgets/timbre.js:2507 +msgid "distortion amount" msgstr "" -#: js/tempo.js:150 -msgid "slow down" +#: js/widgets/aiwidget.js:180 +#: js/widgets/sampler.js:227 +msgid "Warning: Sample is bigger than 1MB." msgstr "" -#: js/tempo.js:194 -msgid "Adjust the tempo with the buttons." +#: js/widgets/aiwidget.js:539 +msgid "New start block generated" msgstr "" -#: js/tempo.js:261 -msgid "Please enter a number between 30 and 1000" +#: js/widgets/aiwidget.js:541 +msgid "MIDI loading. This may take some time depending upon the number of notes in the track" msgstr "" -#: js/tempo.js:268 -#: js/tempo.js:271 -msgid "The beats per minute must be between 30 and 1000." +#: js/widgets/aiwidget.js:551 +#: js/widgets/sampler.js:254 +msgid "Upload failed: Sample is not a .wav file." msgstr "" -#: js/tempo.js:287 -msgid "The beats per minute must be below 1000." +#: js/widgets/aiwidget.js:679 +#: js/widgets/sampler.js:432 +msgid "Save sample" msgstr "" -#: js/tempo.js:303 -msgid "The beats per minute must be above 30" +#: js/widgets/aiwidget.js:701 +msgid "AI Music" msgstr "" -#: js/timbre.js:766 -msgid "Synthesizer" +#: js/widgets/arpeggio.js:239 +msgid "Click in the grid to add steps to the arpeggio." msgstr "" -#: js/timbre.js:789 -msgid "Oscillator" +#: js/widgets/help.js:95 +#: js/widgets/help.js:125 +#: js/widgets/help.js:146 +#: js/widgets/help.js:158 +#: js/widgets/help.js:376 +#: js/widgets/help.js:391 +msgid "Take a tour" msgstr "" -#: js/timbre.js:840 -msgid "Envelope" +#: js/widgets/musickeyboard.js:725 +#: js/widgets/phrasemaker.js:584 +msgid "Add note" msgstr "" -#: js/timbre.js:886 -#: js/GlobalTag.js:50 -#.TRANS: On the Planet, we use labels to tag projects. -msgid "Effects" +#: js/widgets/musickeyboard.js:744 +msgid "Metronome" +msgstr "" + +#: js/widgets/musickeyboard.js:1549 +#: plugins/rodi.rtp:193 +msgid "duration" +msgstr "" + +#: js/widgets/musickeyboard.js:3179 +msgid "New action blocks generated" +msgstr "" + +#: js/widgets/musickeyboard.js:3180 +msgid "New action block generated" msgstr "" -#: js/timbre.js:904 -msgid "Filter" +#: js/widgets/musickeyboard.js:3365 +#: js/widgets/musickeyboard.js:3373 +msgid "MIDI device present." msgstr "" -#: js/timbre.js:946 -msgid "Add filter" +#: js/widgets/musickeyboard.js:3376 +msgid "No MIDI device found." msgstr "" -#: js/timbre.js:987 -msgid "Click on buttons to open the timbre design tools." +#: js/widgets/musickeyboard.js:3386 +msgid "Failed to get MIDI access in browser." msgstr "" -#: js/timbre.js:1273 -msgid "harmonicity" +#: js/widgets/phrasemaker.js:574 +msgid "Export" msgstr "" -#: js/timbre.js:1340 -#: js/timbre.js:1406 -msgid "modulation index" +#: js/widgets/phrasemaker.js:581 +msgid "Sort" msgstr "" -#: js/timbre.js:1484 -msgid "vibrato amount" +#: js/widgets/phrasemaker.js:975 +msgid "Click on the table to add notes." msgstr "" -#: js/timbre.js:1919 -msgid "Filter already present." +#: js/widgets/phrasemaker.js:2677 +#: js/widgets/phrasemaker.js:2819 +msgid "tuplet value" msgstr "" -#: js/timbre.js:2322 -msgid "delay (MS)" +#: js/widgets/rhythmruler.js:486 +msgid "Save rhythms" msgstr "" -#: js/timbre.js:2507 -msgid "distortion amount" +#: js/widgets/rhythmruler.js:512 +msgid "Save drum machine" msgstr "" -#: js/meterwidget.js:170 -msgid "Reset" +#: js/widgets/rhythmruler.js:589 +#.TRANS: user can tap out a rhythm by clicking on a ruler. +msgid "Tap a rhythm" msgstr "" -#: js/meterwidget.js:196 -msgid "Click in the circle to select strong beats for the meter." +#: js/widgets/rhythmruler.js:817 +msgid "Click on the ruler to divide it." msgstr "" -#: js/arpeggio.js:239 -msgid "Click in the grid to add steps to the arpeggio." +#: js/widgets/rhythmruler.js:950 +#: js/widgets/rhythmruler.js:952 +#: js/widgets/rhythmruler.js:1152 +#: js/widgets/rhythmruler.js:1154 +#: js/widgets/rhythmruler.js:1765 +#: js/widgets/rhythmruler.js:1767 +msgid "tap a rhythm" msgstr "" -#: js/ProjectStorage.js:243 -msgid "anonymous" +#: js/widgets/rhythmruler.js:1459 +msgid "Maximum value of 256 has been exceeded." msgstr "" -#: js/GlobalCard.js:68 -msgid "Share" +#: js/widgets/sampler.js:237 +msgid "Recording started..." msgstr "" -#: js/GlobalCard.js:74 -msgid "Flags" +#: js/widgets/sampler.js:245 +msgid "Recording complete..." msgstr "" -#: js/LocalCard.js:36 -msgid "View published project" +#: js/widgets/sampler.js:283 +msgid "A new sample block was generated." msgstr "" -#: js/LocalCard.js:42 -msgid "Publish project" +#: js/widgets/sampler.js:378 +msgid "Upload sample" msgstr "" -#: js/LocalCard.js:51 -msgid "Edit project" +#: js/widgets/sampler.js:399 +msgid "Warning: Your sample cannot be loaded because it is >1MB." msgstr "" -#: js/LocalCard.js:52 -msgid "Delete project" +#: js/widgets/sampler.js:448 +msgid "Toggle Mic" msgstr "" -#: js/LocalCard.js:53 -msgid "Download project" +#: js/widgets/sampler.js:458 +msgid "Playback" msgstr "" -#: js/LocalCard.js:55 -msgid "Duplicate project" +#: js/widgets/sampler.js:979 +#.TRANS: The reference tone is a sound used for comparison. +msgid "reference tone" msgstr "" -#: js/GlobalTag.js:28 +#: planet/js/GlobalTag.js:28 #.TRANS: On the Planet, we use labels to tag projects. msgid "All Projects" msgstr "" -#: js/GlobalTag.js:30 -#: js/StringHelper.js:37 +#: planet/js/GlobalTag.js:30 +#: planet/js/StringHelper.js:37 #.TRANS: On the Planet, we use labels to tag projects. msgid "My Projects" msgstr "" -#: js/GlobalTag.js:32 +#: planet/js/GlobalTag.js:32 #.TRANS: On the Planet, we use labels to tag projects. msgid "Examples" msgstr "" -#: js/GlobalTag.js:34 +#: planet/js/GlobalTag.js:34 #.TRANS: On the Planet, we use labels to tag projects. msgid "Music" msgstr "" -#: js/GlobalTag.js:36 +#: planet/js/GlobalTag.js:36 #.TRANS: On the Planet, we use labels to tag projects. msgid "Art" msgstr "" -#: js/GlobalTag.js:38 +#: planet/js/GlobalTag.js:38 #.TRANS: On the Planet, we use labels to tag projects. msgid "Math" msgstr "" -#: js/GlobalTag.js:40 +#: planet/js/GlobalTag.js:40 #.TRANS: On the Planet, we use labels to tag projects. msgid "Interactive" msgstr "" -#: js/GlobalTag.js:42 +#: planet/js/GlobalTag.js:42 #.TRANS: On the Planet, we use labels to tag projects. msgid "Design" msgstr "" -#: js/GlobalTag.js:44 +#: planet/js/GlobalTag.js:44 #.TRANS: On the Planet, we use labels to tag projects. msgid "Game" msgstr "" -#: js/GlobalTag.js:46 +#: planet/js/GlobalTag.js:46 #.TRANS: On the Planet, we use labels to tag projects. msgid "Media" msgstr "" -#: js/GlobalTag.js:48 +#: planet/js/GlobalTag.js:48 #.TRANS: On the Planet, we use labels to tag projects. msgid "Sensors" msgstr "" -#: js/GlobalTag.js:52 +#: planet/js/GlobalTag.js:52 #.TRANS: On the Planet, we use labels to tag projects. msgid "Code Snippet" msgstr "" -#: js/helper.js:149 -#: js/StringHelper.js:49 -msgid "Show more tags" +#: planet/js/LocalCard.js:36 +msgid "View published project" msgstr "" -#: js/helper.js:150 -msgid "Show fewer tags" +#: planet/js/LocalCard.js:42 +msgid "Publish project" +msgstr "" + +#: planet/js/LocalCard.js:51 +msgid "Edit project" +msgstr "" + +#: planet/js/LocalCard.js:52 +msgid "Delete project" +msgstr "" + +#: planet/js/LocalCard.js:53 +msgid "Download project" +msgstr "" + +#: planet/js/LocalCard.js:55 +msgid "Duplicate project" +msgstr "" + +#: planet/js/ProjectStorage.js:243 +msgid "anonymous" +msgstr "" + +#: planet/js/SaveInterface.js:34 +msgid "Open in Music Blocks" +msgstr "" + +#: planet/js/SaveInterface.js:35 +msgid "Open in Turtle Blocks" +msgstr "" + +#: planet/js/GlobalCard.js:68 +msgid "Share" +msgstr "" + +#: planet/js/GlobalCard.js:74 +msgid "Flags" +msgstr "" + +#: planet/js/GlobalPlanet.js:35 +msgid "No results found." +msgstr "" + +#: planet/js/GlobalPlanet.js:51 +msgid "Remix of" +msgstr "" + +#: planet/js/GlobalPlanet.js:509 +msgid "Cannot connect to server" msgstr "" -#: js/ProjectViewer.js:30 +#: planet/js/ProjectViewer.js:30 msgid "Error: Report could not be submitted. Try again later." msgstr "" -#: js/ProjectViewer.js:31 +#: planet/js/ProjectViewer.js:31 msgid "Thank you for reporting this project. A moderator will review the project shortly, to verify violation of the Sugar Labs Code of Conduct." msgstr "" -#: js/ProjectViewer.js:32 -#: js/StringHelper.js:62 -#: js/StringHelper.js:64 -#: js/StringHelper.js:68 +#: planet/js/ProjectViewer.js:32 +#: planet/js/StringHelper.js:62 +#: planet/js/StringHelper.js:64 +#: planet/js/StringHelper.js:68 msgid "Report Project" msgstr "" -#: js/ProjectViewer.js:33 -#: js/StringHelper.js:63 +#: planet/js/ProjectViewer.js:33 +#: planet/js/StringHelper.js:63 msgid "Project Reported" msgstr "" -#: js/ProjectViewer.js:34 +#: planet/js/ProjectViewer.js:34 msgid "Report description required" msgstr "" -#: js/ProjectViewer.js:35 +#: planet/js/ProjectViewer.js:35 msgid "Report description too long" msgstr "" -#: js/StringHelper.js:30 +#: planet/js/Publisher.js:30 +msgid "Feature unavailable - cannot connect to server. Reload Music Blocks to try again." +msgstr "" + +#: planet/js/Publisher.js:220 +#: planet/js/Publisher.js:237 +msgid "This field is required" +msgstr "" + +#: planet/js/Publisher.js:227 +msgid "Title too long" +msgstr "" + +#: planet/js/Publisher.js:244 +msgid "Description too long" +msgstr "" + +#: planet/js/Publisher.js:341 +msgid "Server Error" +msgstr "" + +#: planet/js/Publisher.js:341 +msgid "Try Again" +msgstr "" + +#: planet/js/StringHelper.js:30 msgid "Planet" msgstr "" -#: js/StringHelper.js:31 +#: planet/js/StringHelper.js:31 msgid "Close Planet" msgstr "" -#: js/StringHelper.js:32 +#: planet/js/StringHelper.js:32 msgid "Open project from file" msgstr "" -#: js/StringHelper.js:34 +#: planet/js/StringHelper.js:34 msgid "Local" msgstr "" -#: js/StringHelper.js:35 +#: planet/js/StringHelper.js:35 msgid "Global" msgstr "" -#: js/StringHelper.js:36 +#: planet/js/StringHelper.js:36 msgid "Search for a project" msgstr "" -#: js/StringHelper.js:38 +#: planet/js/StringHelper.js:38 msgid "Publish Project" msgstr "" -#: js/StringHelper.js:40 +#: planet/js/StringHelper.js:40 msgid "Tags (max 5)" msgstr "" -#: js/StringHelper.js:41 -#: js/StringHelper.js:61 +#: planet/js/StringHelper.js:41 +#: planet/js/StringHelper.js:61 msgid "Description" msgstr "" -#: js/StringHelper.js:42 -#: js/StringHelper.js:67 +#: planet/js/StringHelper.js:42 +#: planet/js/StringHelper.js:67 msgid "Submit" msgstr "" -#: js/StringHelper.js:43 -#: js/StringHelper.js:47 +#: planet/js/StringHelper.js:43 +#: planet/js/StringHelper.js:47 msgid "Cancel" msgstr "" -#: js/StringHelper.js:44 +#: planet/js/StringHelper.js:44 msgid "Delete \\"\\"?" msgstr "" -#: js/StringHelper.js:45 +#: planet/js/StringHelper.js:45 msgid "Permanently delete project \\"\\"?" msgstr "" -#: js/StringHelper.js:48 +#: planet/js/StringHelper.js:48 msgid "Explore Projects" msgstr "" -#: js/StringHelper.js:50 +#: planet/js/StringHelper.js:49 +#: planet/js/helper.js:149 +msgid "Show more tags" +msgstr "" + +#: planet/js/StringHelper.js:50 msgid "Most recent" msgstr "" -#: js/StringHelper.js:51 +#: planet/js/StringHelper.js:51 msgid "Most liked" msgstr "" -#: js/StringHelper.js:52 +#: planet/js/StringHelper.js:52 msgid "Most downloaded" msgstr "" -#: js/StringHelper.js:53 +#: planet/js/StringHelper.js:53 msgid "A-Z" msgstr "" -#: js/StringHelper.js:54 +#: planet/js/StringHelper.js:54 msgid "Sort by" msgstr "" -#: js/StringHelper.js:55 +#: planet/js/StringHelper.js:55 msgid "Load More Projects" msgstr "" -#: js/StringHelper.js:56 +#: planet/js/StringHelper.js:56 msgid "Last Updated" msgstr "" -#: js/StringHelper.js:57 +#: planet/js/StringHelper.js:57 msgid "Creation Date" msgstr "" -#: js/StringHelper.js:58 +#: planet/js/StringHelper.js:58 msgid "Number of Downloads:" msgstr "" -#: js/StringHelper.js:59 +#: planet/js/StringHelper.js:59 msgid "Number of Likes:" msgstr "" -#: js/StringHelper.js:60 +#: planet/js/StringHelper.js:60 msgid "Tags:" msgstr "" -#: js/StringHelper.js:65 +#: planet/js/StringHelper.js:65 msgid "Report projects which violate the Sugar Labs Code of Conduct." msgstr "" -#: js/StringHelper.js:66 +#: planet/js/StringHelper.js:66 msgid "Reason for reporting project" msgstr "" -#: js/StringHelper.js:70 +#: planet/js/StringHelper.js:70 msgid "Download as File" msgstr "" -#: js/GlobalPlanet.js:35 -msgid "No results found." -msgstr "" - -#: js/GlobalPlanet.js:51 -msgid "Remix of" -msgstr "" - -#: js/GlobalPlanet.js:509 -msgid "Cannot connect to server" -msgstr "" - -#: js/Publisher.js:30 -msgid "Feature unavailable - cannot connect to server. Reload Music Blocks to try again." -msgstr "" - -#: js/Publisher.js:218 -#: js/Publisher.js:235 -msgid "This field is required" -msgstr "" - -#: js/Publisher.js:225 -msgid "Title too long" +#: planet/js/helper.js:150 +msgid "Show fewer tags" msgstr "" -#: js/Publisher.js:242 -msgid "Description too long" +#: plugins/accelerometer.rtp:48 +msgid "motion x" msgstr "" -#: js/Publisher.js:339 -msgid "Server Error" +#: plugins/accelerometer.rtp:56 +msgid "motion y" msgstr "" -#: js/Publisher.js:339 -msgid "Try Again" +#: plugins/accelerometer.rtp:64 +msgid "motion z" msgstr "" -#: js/SaveInterface.js:34 -msgid "Open in Music Blocks" +#: plugins/facebook.rtp:27 +msgid "publish" msgstr "" -#: js/SaveInterface.js:35 -msgid "Open in Turtle Blocks" +#: plugins/maths.rtp:62 +msgid "power" msgstr "" -#: plugins/weather.rtp:68 -#: plugins/weather.rtp:97 -msgid "Days ahead must be in the range of -1 to 5." +#: plugins/maths.rtp:62 +msgid "base" msgstr "" -#: plugins/weather.rtp:122 -msgid "forecast" +#: plugins/maths.rtp:62 +msgid "exp" msgstr "" -#: plugins/weather.rtp:123 -#: plugins/weather.rtp:137 -#: plugins/weather.rtp:150 -msgid "city" +#: plugins/maths.rtp:99 +msgid "floor" msgstr "" -#: plugins/weather.rtp:124 -#: plugins/weather.rtp:138 -#: plugins/weather.rtp:151 -msgid "day" +#: plugins/maths.rtp:104 +msgid "ceiling" msgstr "" -#: plugins/weather.rtp:136 -msgid "high" +#: plugins/maths.rtp:109 +msgid "to degrees" msgstr "" -#: plugins/weather.rtp:149 -msgid "low" +#: plugins/maths.rtp:114 +msgid "to radians" msgstr "" #: plugins/nutrition.rtp:104 @@ -9457,45 +9866,6 @@ msgstr "" msgid "water" msgstr "" -#: plugins/maths.rtp:62 -#: plugins/examples.rtp:93 -msgid "power" -msgstr "" - -#: plugins/maths.rtp:62 -#: plugins/examples.rtp:93 -msgid "base" -msgstr "" - -#: plugins/maths.rtp:62 -#: plugins/examples.rtp:93 -msgid "exp" -msgstr "" - -#: plugins/maths.rtp:99 -#: plugins/examples.rtp:130 -msgid "floor" -msgstr "" - -#: plugins/maths.rtp:104 -#: plugins/examples.rtp:135 -msgid "ceiling" -msgstr "" - -#: plugins/maths.rtp:109 -#: plugins/examples.rtp:140 -msgid "to degrees" -msgstr "" - -#: plugins/maths.rtp:114 -#: plugins/examples.rtp:145 -msgid "to radians" -msgstr "" - -#: plugins/facebook.rtp:27 -msgid "publish" -msgstr "" - #: plugins/rodi.rtp:172 msgid "blink" msgstr "" @@ -9524,18 +9894,66 @@ msgstr "" msgid "move" msgstr "" -#: plugins/accelerometer.rtp:48 -msgid "motion x" +#: plugins/weather.rtp:68 +#: plugins/weather.rtp:97 +msgid "Days ahead must be in the range of -1 to 5." msgstr "" -#: plugins/accelerometer.rtp:56 -msgid "motion y" +#: plugins/weather.rtp:122 +msgid "forecast" msgstr "" -#: plugins/accelerometer.rtp:64 -msgid "motion z" +#: plugins/weather.rtp:123 +#: plugins/weather.rtp:137 +#: plugins/weather.rtp:150 +msgid "city" +msgstr "" + +#: plugins/weather.rtp:124 +#: plugins/weather.rtp:138 +#: plugins/weather.rtp:151 +msgid "day" +msgstr "" + +#: plugins/weather.rtp:136 +msgid "high" +msgstr "" + +#: plugins/weather.rtp:149 +msgid "low" msgstr "" +#: js/toolbar.js:70 + +#: js/toolbar.js:130 + +#: js/toolbar.js:194 + +#: js/toolbar.js:249 + +#~msgid "Toggle JavaScript Editor" +#~msgstr "" + +#: js/EnsembleBlocks.js:643 + +#~msgid "The Turrle pitch block returns the current pitch number being played by the specified turtle." +#~msgstr "" + +#: js/PitchActions.js:88 + +#~msgid "The Scalar Step Block must be used inside of a Note Block." +#~msgstr "" + +#: js/PitchActions.js:107 + +#~msgid "The Scalar Step Block must be preceded by a Pitch Block." +#~msgstr "" + +#: js/musickeyboard.js:2840 + +#~msgid "New action blocks generated!" +#~msgstr "" + #: js/toolbar.js:110 #: js/toolbar.js:204 @@ -9876,11 +10294,6 @@ msgstr "" #~msgid "The Time block returns the number of seconds that the program has been running." #~msgstr "" -#: js/help.js:95 - -#~msgid "Take a tour" -#~msgstr "" - #: js/GlobalCard.js:48 #~msgid "More Details" @@ -12779,11 +13192,6 @@ msgstr "" #~msgid "The save-stack button saves a stack onto a custom palette. It appears after a \"long press\" on a stack." #~msgstr "" -#: js/musicutils.js:254 - -#~msgid "Custom" -#~msgstr "" - #: js/basicblocks.js:4785 #~msgid "Rhythm" diff --git a/po/hu.po b/po/hu.po index 38811cbff2..a2dd5e7f20 100644 --- a/po/hu.po +++ b/po/hu.po @@ -2128,276 +2128,131 @@ #: js/planetInterface.js:104 #: js/planetInterface.js:104 #: js/planetInterface.js:104 -msgid "project undefined" -msgstr "" - -#: js/logo.js:61 -msgid "Not a valid pitch name" -msgstr "" - -#: js/logo.js:507 -#: js/ProgramBlocks.js:258 -#: js/ProgramBlocks.js:427 -msgid "You must select a file." -msgstr "" - -#: js/logo.js:1184 -#: js/turtles.js:118 -#: js/turtle-painter.js:1192 -#: js/turtle-painter.js:1193 -#: js/block.js:1463 -#: js/lilypond.js:757 -#: js/lilypond.js:921 -#: js/lilypond.js:959 -#: js/ActionBlocks.js:1223 -#: js/ProgramBlocks.js:1267 -msgid "start" -msgstr "" - -#: js/logo.js:1696 -msgid "Playback is ready." -msgstr "" - -#: js/blocks.js:1011 -#: js/blocks.js:3427 -#: js/blocks.js:3428 -#: js/blocks.js:3653 -#: js/blocks.js:4012 -#: js/blocks.js:4205 -#: js/blocks.js:5343 -#: js/blocks.js:6474 -#: js/palette.js:527 -#: js/palette.js:536 -#: js/palette.js:545 -#: js/palette.js:554 -#: js/palette.js:1131 -#: js/palette.js:1142 -#: js/palette.js:1153 -#: js/palette.js:1164 -#: js/palette.js:1183 -#: js/rubrics.js:529 -#: js/macros.js:170 -#: js/macros.js:266 -#: js/macros.js:267 -#: js/macros.js:276 -#: js/macros.js:828 -#: js/block.js:1449 -#: js/block.js:4164 -#: js/block.js:4182 -#: js/block.js:4193 -#: js/turtledefs.js:128 -#: js/turtledefs.js:230 -#: js/ActionBlocks.js:254 -#: js/ActionBlocks.js:307 -#: js/ActionBlocks.js:617 -#: js/ActionBlocks.js:716 -#: js/ActionBlocks.js:961 -#: js/ActionBlocks.js:1049 -#: js/ActionBlocks.js:1322 -#: js/ActionBlocks.js:1325 -#: js/ActionBlocks.js:1337 -#: js/ActionBlocks.js:1404 -#: js/MeterBlocks.js:715 -#: js/MeterBlocks.js:768 -#: js/MeterBlocks.js:831 -#: js/MeterBlocks.js:892 -#: js/phrasemaker.js:4412 -#: js/musickeyboard.js:2647 -#: js/rhythmruler.js:1928 -#: js/rhythmruler.js:1935 -#: js/rhythmruler.js:2119 -#: js/rhythmruler.js:2126 -msgid "action" -msgstr "" - -#: js/blocks.js:1205 -#: js/blocks.js:3380 -#: js/blocks.js:3770 -#: js/blocks.js:3801 -#: js/blocks.js:3850 -#: js/blocks.js:3885 -#: js/blocks.js:6497 -#: js/palette.js:509 -#: js/palette.js:638 -#: js/palette.js:1107 -#: js/BoxesBlocks.js:282 -#: js/BoxesBlocks.js:285 -#: js/BoxesBlocks.js:405 -#: js/BoxesBlocks.js:594 -msgid "box" -msgstr "" - -#: js/blocks.js:1680 -msgid "Consider breaking this stack into parts." +#: js/SaveInterface.js:59 +#: js/SaveInterface.js:61 +#: js/SaveInterface.js:93 +msgid "Music Blocks Project" msgstr "" -#: js/blocks.js:2408 -#: js/palette.js:653 -#: js/MediaBlocks.js:602 -msgid "open file" +#: js/SaveInterface.js:63 +msgid "This project was created in Music Blocks" msgstr "" -#: js/blocks.js:2415 -#: js/blocks.js:2423 -#: js/activity.js:1875 -msgid "audio file" +#: js/SaveInterface.js:67 +msgid "Music Blocks is a Free/Libre Software application." msgstr "" -#: js/blocks.js:2536 -#: js/blocks.js:3147 -#: js/block.js:3543 -msgid "on2" +#: js/SaveInterface.js:69 +msgid "The source code can be accessed at" msgstr "" -#: js/blocks.js:2538 -#: js/blocks.js:3149 -#: js/block.js:3545 -msgid "off" +#: js/SaveInterface.js:72 +msgid "For more information, please consult the" msgstr "" -#: js/blocks.js:2543 -#: js/blocks.js:3154 -#: js/palette.js:618 -#: js/block.js:3466 -#: js/BooleanBlocks.js:77 -#: js/BooleanBlocks.js:167 -#: js/BooleanBlocks.js:251 -#: js/BooleanBlocks.js:335 -#: js/BooleanBlocks.js:433 -#: js/BooleanBlocks.js:539 -#: js/BooleanBlocks.js:640 -#: js/BooleanBlocks.js:741 -#: js/BooleanBlocks.js:847 -#: js/BooleanBlocks.js:948 -#: js/BooleanBlocks.js:1033 -#: js/SensorsBlocks.js:910 -msgid "true" +#: js/SaveInterface.js:76 +#: js/turtledefs.js:795 +msgid "Music Blocks Guide" msgstr "" -#: js/blocks.js:2545 -#: js/blocks.js:3156 -#: js/block.js:3466 -#: js/BooleanBlocks.js:79 -#: js/BooleanBlocks.js:169 -#: js/BooleanBlocks.js:253 -#: js/BooleanBlocks.js:337 -#: js/BooleanBlocks.js:435 -#: js/BooleanBlocks.js:541 -#: js/BooleanBlocks.js:642 -#: js/BooleanBlocks.js:743 -#: js/BooleanBlocks.js:849 -#: js/BooleanBlocks.js:950 -#: js/SensorsBlocks.js:912 -msgid "false" +#: js/SaveInterface.js:83 +msgid "Alternatively, open the file in Music Blocks using the Load project button." msgstr "" -#: js/blocks.js:3183 -#: js/palette.js:574 -#: js/MediaBlocks.js:892 -#: js/MediaBlocks.js:963 -msgid "text" +#: js/SaveInterface.js:85 +msgid "Project Code" msgstr "" -#: js/blocks.js:3379 -#: js/palette.js:641 -#: js/palette.js:642 -#: js/BoxesBlocks.js:514 -msgid "store in box" +#: js/SaveInterface.js:87 +msgid "This code stores data about the blocks in a project." msgstr "" -#: js/blocks.js:3384 -#: js/blocks.js:3824 -#: js/blocks.js:3859 -#: js/blocks.js:3894 -#: js/blocks.js:5773 -#: js/blocks.js:5794 -#: js/BoxesBlocks.js:772 -msgid "box1" +#: js/SaveInterface.js:89 +msgid "Show" msgstr "" -#: js/blocks.js:3386 -#: js/blocks.js:3826 -#: js/blocks.js:3861 -#: js/blocks.js:3896 -#: js/blocks.js:5775 -#: js/blocks.js:5796 -#: js/BoxesBlocks.js:663 -msgid "box2" +#: js/SaveInterface.js:91 +msgid "Hide" msgstr "" -#: js/blocks.js:4058 -#: js/palette.js:639 -#: js/palette.js:644 -#: js/palette.js:1043 -#: js/BoxesBlocks.js:591 -msgid "store in" +#: js/SaveInterface.js:131 +#: js/SaveInterface.js:204 +#: js/SaveInterface.js:262 +#: js/SaveInterface.js:389 +#: js/SaveInterface.js:417 +#: js/activity.js:4884 +#: planet/js/ProjectStorage.js:27 +#: planet/js/GlobalPlanet.js:467 +#: planet/js/GlobalPlanet.js:469 +#: planet/js/GlobalPlanet.js:495 +#.TRANS: default project title when saving as Lilypond +msgid "My Project" msgstr "" -#: js/blocks.js:4058 -#: js/EnsembleBlocks.js:391 -#: js/EnsembleBlocks.js:402 -#: js/MediaBlocks.js:746 -#: js/ProgramBlocks.js:390 -#: js/ProgramBlocks.js:495 -#: js/ProgramBlocks.js:658 -#: js/BoxesBlocks.js:595 -#: js/PitchBlocks.js:656 -#: js/PitchBlocks.js:932 -#: js/PitchBlocks.js:1827 -#: js/ToneBlocks.js:1025 -#: js/DictBlocks.js:215 -#: js/DictBlocks.js:289 -msgid "name" +#: js/SaveInterface.js:197 +#: planet/js/SaveInterface.js:58 +msgid "No description provided" msgstr "" -#: js/blocks.js:4058 -#: js/RhythmBlocks.js:1130 -#: js/BoxesBlocks.js:75 -#: js/BoxesBlocks.js:595 -#: js/HeapBlocks.js:544 -#: js/DictBlocks.js:289 -#: js/DictBlocks.js:430 -msgid "value" +#: js/SaveInterface.js:332 +msgid "Your recording is in progress." msgstr "" -#: js/blocks.js:4907 -msgid "There is no block selected." +#: js/SaveInterface.js:401 +#.TRANS: File name prompt for save as Lilypond +msgid "File name" msgstr "" -#: js/blocks.js:5002 -#: js/MediaBlocks.js:888 -msgid "show" +#: js/SaveInterface.js:403 +#: planet/js/StringHelper.js:39 +#.TRANS: Project title prompt for save as Lilypond +msgid "Project title" msgstr "" -#: js/blocks.js:5005 -#: js/MediaBlocks.js:803 -#.TRANS: Avatar is the image used to determine the appearance of the mouse. -msgid "avatar" +#: js/SaveInterface.js:405 +#.TRANS: Project title prompt for save as Lilypond +msgid "Project author" msgstr "" -#: js/blocks.js:5008 -#: js/ToneBlocks.js:1010 -#: js/sampler.js:693 -#.TRANS: The sound sample that the user uploads. -msgid "sample" +#: js/SaveInterface.js:407 +#.TRANS: MIDI prompt for save as Lilypond +msgid "Include MIDI output?" msgstr "" -#: js/turtles.js:874 -msgid "Grid" +#: js/SaveInterface.js:409 +#.TRANS: Guitar prompt for save as Lilypond +msgid "Include guitar tablature output?" msgstr "" -#: js/turtles.js:891 -#: js/turtledefs.js:626 -msgid "Clean" +#: js/SaveInterface.js:411 +#.TRANS: Lilypond is a scripting language for generating sheet music +msgid "Save as Lilypond" msgstr "" -#: js/turtles.js:912 -#: js/turtledefs.js:632 -msgid "Collapse" +#: js/SaveInterface.js:426 +#: js/blocks/EnsembleBlocks.js:75 +#: js/blocks/EnsembleBlocks.js:154 +#: js/blocks/EnsembleBlocks.js:216 +#: js/blocks/EnsembleBlocks.js:302 +#: js/blocks/EnsembleBlocks.js:348 +#: js/blocks/EnsembleBlocks.js:389 +#: js/blocks/EnsembleBlocks.js:441 +#: js/blocks/EnsembleBlocks.js:490 +#: js/blocks/EnsembleBlocks.js:536 +#: js/blocks/EnsembleBlocks.js:583 +#: js/blocks/EnsembleBlocks.js:637 +#: js/blocks/EnsembleBlocks.js:753 +#: js/blocks/EnsembleBlocks.js:840 +#: js/blocks/EnsembleBlocks.js:899 +#: js/blocks/EnsembleBlocks.js:942 +#: js/blocks/EnsembleBlocks.js:1212 +#: js/blocks/EnsembleBlocks.js:1280 +#.TRANS: default project author when saving as Lilypond +msgid "Mr. Mouse" msgstr "" -#: js/turtles.js:940 -msgid "Expand" +#: js/SaveInterface.js:573 +msgid "The Lilypond code is copied to clipboard. You can paste it here: " msgstr "" #: js/languagebox.js:198 @@ -2408,6933 +2263,7487 @@ msgstr "" msgid "Music Blocks is already set to this language." msgstr "" -#: js/piemenus.js:200 -#: js/musicutils.js:808 -#: js/musicutils.js:824 -#: js/phrasemaker.js:1672 -#: js/musickeyboard.js:2041 -#: js/sampler.js:544 -#.TRANS: double sharp is a music term related to pitch -msgid "double sharp" +#: js/planetInterface.js:131 +msgid "project undefined" msgstr "" -#: js/piemenus.js:201 -#: js/PitchBlocks.js:1510 -#: js/PitchActions.js:580 -#: js/musicutils.js:806 -#: js/musicutils.js:825 -#: js/phrasemaker.js:1673 -#: js/musickeyboard.js:2042 -#: js/sampler.js:545 -#.TRANS: sharp is a half-step up in pitch -#.TRANS: sharp is a music term related to pitch -msgid "sharp" +#: js/rubrics.js:523 +#: js/turtledefs.js:119 +#: js/turtledefs.js:221 +#: js/blocks/RhythmBlockPaletteBlocks.js:52 +#: js/blocks/RhythmBlockPaletteBlocks.js:234 +#: js/blocks/ProgramBlocks.js:745 +#: js/widgets/rhythmruler.js:2057 +#: js/widgets/rhythmruler.js:2064 +#: js/widgets/rhythmruler.js:2133 +#: js/widgets/rhythmruler.js:2140 +#: js/widgets/rhythmruler.js:2219 +#.TRANS: an arrangement of notes based on duration +msgid "rhythm" msgstr "" -#: js/piemenus.js:202 -#: js/musicutils.js:804 -#: js/musicutils.js:826 -#: js/phrasemaker.js:1674 -#: js/musickeyboard.js:2043 -#: js/sampler.js:546 -#.TRANS: natural is a music term related to pitch -msgid "natural" +#: js/rubrics.js:524 +#: js/turtledefs.js:121 +#: js/turtledefs.js:223 +#: js/block-verbose.js:2622 +#: js/block.js:2550 +#: js/blocks/IntervalsBlocks.js:63 +#: js/blocks/SensorsBlocks.js:178 +#: js/blocks/PitchBlocks.js:1839 +#: js/blocks/PitchBlocks.js:1853 +#: js/widgets/musickeyboard.js:1935 +#: js/widgets/phrasemaker.js:1036 +#.TRANS: pitch number +#.TRANS: pitch number +#.TRANS: we specify pitch in terms of a name and an octave. The name can be CDEFGAB or Do Re Mi Fa Sol La Ti. Octave is a number between 1 and 8. +msgid "pitch" msgstr "" -#: js/piemenus.js:203 -#: js/PitchBlocks.js:1469 -#: js/PitchActions.js:583 -#: js/musicutils.js:802 -#: js/musicutils.js:827 -#: js/phrasemaker.js:1675 -#: js/musickeyboard.js:2044 -#: js/sampler.js:547 -#.TRANS: flat is a half-step down in pitch -#.TRANS: flat is a music term related to pitch -msgid "flat" +#: js/rubrics.js:525 +#: js/turtledefs.js:123 +#: js/turtledefs.js:225 +msgid "tone" msgstr "" -#: js/piemenus.js:204 -#: js/musicutils.js:800 -#: js/musicutils.js:828 -#: js/phrasemaker.js:1676 -#: js/musickeyboard.js:2045 -#: js/sampler.js:548 -#.TRANS: double flat is a music term related to pitch -msgid "double flat" +#: js/rubrics.js:526 +#: js/lilypond.js:605 +#: js/lilypond.js:904 +#: js/lilypond.js:910 +#: js/lilypond.js:948 +msgid "mouse" msgstr "" -#: js/piemenus.js:2861 -#: js/PitchBlocks.js:1357 -#: js/musicutils.js:627 -#.TRANS: unison means the note is the same as the current note -#.TRANS: unison is a music term related to intervals -msgid "unison" +#: js/rubrics.js:527 +#: js/turtledefs.js:132 +#: js/turtledefs.js:234 +#: js/widgets/phrasemaker.js:1040 +msgid "pen" msgstr "" -#: js/piemenus.js:3015 -#: js/piemenus.js:3088 -#: js/musicutils.js:635 -#: js/musicutils.js:810 -#: js/musicutils.js:912 -#.TRANS: major is a music term related to intervals and mode -msgid "major" +#: js/rubrics.js:528 +#: js/turtledefs.js:133 +#: js/turtledefs.js:235 +#: js/blocks/NumberBlocks.js:981 +#: js/blocks/PitchBlocks.js:1717 +#: js/blocks/PitchBlocks.js:1758 +msgid "number" msgstr "" -#: js/piemenus.js:3015 -#: js/piemenus.js:3088 -#: js/musicutils.js:653 -#.TRANS: modal scale for music -msgid "ionian" +#: js/rubrics.js:529 +#: js/turtledefs.js:127 +#: js/turtledefs.js:229 +msgid "flow" msgstr "" -#: js/piemenus.js:3017 -#: js/piemenus.js:3092 -#: js/musicutils.js:633 -#: js/musicutils.js:811 -#: js/musicutils.js:909 -#.TRANS: minor is a music term related to intervals and mode -msgid "minor" +#: js/rubrics.js:530 +#: js/turtledefs.js:128 +#: js/turtledefs.js:230 +#: js/block-verbose.js:1609 +#: js/block-verbose.js:4559 +#: js/block-verbose.js:4577 +#: js/block-verbose.js:4588 +#: js/block.js:1573 +#: js/block.js:4483 +#: js/block.js:4501 +#: js/block.js:4512 +#: js/blocks.js:1018 +#: js/blocks.js:3491 +#: js/blocks.js:3492 +#: js/blocks.js:3717 +#: js/blocks.js:4076 +#: js/blocks.js:4269 +#: js/blocks.js:5432 +#: js/blocks.js:6563 +#: js/macros.js:170 +#: js/macros.js:266 +#: js/macros.js:267 +#: js/macros.js:276 +#: js/macros.js:828 +#: js/palette.js:527 +#: js/palette.js:536 +#: js/palette.js:545 +#: js/palette.js:554 +#: js/palette.js:1129 +#: js/palette.js:1140 +#: js/palette.js:1151 +#: js/palette.js:1162 +#: js/palette.js:1181 +#: js/blocks/ActionBlocks.js:254 +#: js/blocks/ActionBlocks.js:307 +#: js/blocks/ActionBlocks.js:617 +#: js/blocks/ActionBlocks.js:716 +#: js/blocks/ActionBlocks.js:961 +#: js/blocks/ActionBlocks.js:1049 +#: js/blocks/ActionBlocks.js:1322 +#: js/blocks/ActionBlocks.js:1325 +#: js/blocks/ActionBlocks.js:1337 +#: js/blocks/ActionBlocks.js:1404 +#: js/blocks/MeterBlocks.js:715 +#: js/blocks/MeterBlocks.js:768 +#: js/blocks/MeterBlocks.js:831 +#: js/blocks/MeterBlocks.js:892 +#: js/widgets/musickeyboard.js:2986 +#: js/widgets/phrasemaker.js:4913 +#: js/widgets/rhythmruler.js:2319 +#: js/widgets/rhythmruler.js:2326 +#: js/widgets/rhythmruler.js:2511 +#: js/widgets/rhythmruler.js:2518 +msgid "action" msgstr "" -#: js/piemenus.js:3017 -#: js/piemenus.js:3092 -#: js/musicutils.js:663 -#.TRANS: modal scale for music -msgid "aeolian" +#: js/rubrics.js:531 +#: js/turtledefs.js:136 +#: js/turtledefs.js:238 +msgid "sensors" msgstr "" -#: js/piemenus.js:3407 -msgid "Duplicate" +#: js/rubrics.js:532 +#: js/turtledefs.js:135 +#: js/turtledefs.js:237 +#: js/blocks/MediaBlocks.js:930 +msgid "media" msgstr "" -#: js/piemenus.js:3408 -#: js/turtledefs.js:534 -msgid "Extract" +#: js/rubrics.js:533 +msgid "mice" msgstr "" -#: js/piemenus.js:3409 -msgid "Move to trash" +#: js/toolbar.js:48 +#: js/toolbar.js:109 +msgid "About Music Blocks" msgstr "" -#: js/piemenus.js:3410 -#: js/timbre.js:968 -#: js/StringHelper.js:69 -msgid "Close" +#: js/toolbar.js:49 +#: js/toolbar.js:110 +#: js/toolbar.js:175 +#: js/toolbar.js:231 +#: js/turtledefs.js:445 +#: js/turtledefs.js:482 +#: js/activity.js:2660 +#: js/activity.js:2671 +#: js/activity.js:2902 +#: js/widgets/modewidget.js:77 +#: js/widgets/meterwidget.js:185 +#: js/widgets/pitchdrummatrix.js:147 +#: js/widgets/pitchdrummatrix.js:687 +#: js/widgets/pitchdrummatrix.js:689 +#: js/widgets/pitchdrummatrix.js:741 +#: js/widgets/pitchdrummatrix.js:743 +#: js/widgets/pitchdrummatrix.js:758 +#: js/widgets/pitchdrummatrix.js:760 +#: js/widgets/pitchdrummatrix.js:789 +#: js/widgets/pitchdrummatrix.js:791 +#: js/widgets/pitchstaircase.js:121 +#: js/widgets/temperament.js:610 +#: js/widgets/temperament.js:613 +#: js/widgets/temperament.js:673 +#: js/widgets/temperament.js:675 +#: js/widgets/temperament.js:2017 +#: js/widgets/temperament.js:2019 +#: js/widgets/tempo.js:84 +#: js/widgets/tempo.js:86 +#: js/widgets/timbre.js:432 +#: js/widgets/timbre.js:434 +#: js/widgets/timbre.js:465 +#: js/widgets/timbre.js:467 +#: js/widgets/timbre.js:746 +#: js/widgets/aiwidget.js:647 +#: js/widgets/aiwidget.js:654 +#: js/widgets/aiwidget.js:656 +#: js/widgets/arpeggio.js:90 +#: js/widgets/arpeggio.js:547 +#: js/widgets/arpeggio.js:549 +#: js/widgets/arpeggio.js:644 +#: js/widgets/arpeggio.js:646 +#: js/widgets/musickeyboard.js:676 +#: js/widgets/musickeyboard.js:872 +#: js/widgets/musickeyboard.js:874 +#: js/widgets/musickeyboard.js:953 +#: js/widgets/musickeyboard.js:955 +#: js/widgets/phrasemaker.js:513 +#: js/widgets/phrasemaker.js:523 +#: js/widgets/phrasemaker.js:525 +#: js/widgets/phrasemaker.js:4304 +#: js/widgets/phrasemaker.js:4528 +#: js/widgets/phrasemaker.js:4533 +#: js/widgets/phrasemaker.js:4535 +#: js/widgets/phrasemaker.js:4650 +#: js/widgets/rhythmruler.js:637 +#: js/widgets/rhythmruler.js:639 +#: js/widgets/rhythmruler.js:653 +#: js/widgets/rhythmruler.js:655 +#: js/widgets/sampler.js:162 +#: js/widgets/sampler.js:164 +#: js/widgets/sampler.js:363 +msgid "Play" msgstr "" -#: js/piemenus.js:3416 -msgid "Save stack" +#: js/toolbar.js:50 +#: js/toolbar.js:111 +#: js/toolbar.js:176 +#: js/toolbar.js:232 +#: js/turtledefs.js:451 +#: js/turtledefs.js:488 +#: js/activity.js:2679 +#: js/widgets/modewidget.js:99 +#: js/widgets/modewidget.js:101 +#: js/widgets/meterwidget.js:206 +#: js/widgets/meterwidget.js:208 +#: js/widgets/pitchdrummatrix.js:674 +#: js/widgets/pitchdrummatrix.js:676 +#: js/widgets/temperament.js:2002 +#: js/widgets/temperament.js:2004 +#: js/widgets/arpeggio.js:534 +#: js/widgets/arpeggio.js:536 +#: js/widgets/phrasemaker.js:534 +#: js/widgets/phrasemaker.js:536 +msgid "Stop" msgstr "" -#: js/piemenus.js:3420 -#: js/toolbar.js:60 -#: js/toolbar.js:120 -#: js/toolbar.js:185 -#: js/toolbar.js:240 -#: js/turtledefs.js:752 -msgid "Help" +#: js/toolbar.js:51 +#: js/toolbar.js:112 +#: js/toolbar.js:177 +#: js/toolbar.js:233 +#: js/turtledefs.js:498 +msgid "Record" msgstr "" -#: js/piemenus.js:3762 -msgid "You have chosen key " +#: js/toolbar.js:52 +#: js/toolbar.js:53 +msgid "Full screen" msgstr "" -#: js/piemenus.js:3766 -msgid " for your pitch preview." +#: js/toolbar.js:54 +#: js/toolbar.js:115 +#: js/toolbar.js:180 +#: js/toolbar.js:236 +#: js/turtledefs.js:504 +msgid "Toggle Fullscreen" +msgstr "" + +#: js/toolbar.js:55 +#: js/toolbar.js:116 +#: js/toolbar.js:181 +#: js/toolbar.js:237 +#: js/turtledefs.js:510 +#: planet/js/StringHelper.js:33 +msgid "New project" +msgstr "" + +#: js/toolbar.js:56 +#: js/toolbar.js:117 +#: js/toolbar.js:182 +#: js/toolbar.js:238 +#: js/turtledefs.js:516 +msgid "Load project from file" +msgstr "" + +#: js/toolbar.js:57 +#: js/toolbar.js:118 +#: js/toolbar.js:119 +#: js/toolbar.js:183 +#: js/toolbar.js:239 +#: js/turtledefs.js:541 +#: js/turtledefs.js:550 +#: js/turtledefs.js:571 +msgid "Save project" +msgstr "" + +#: js/toolbar.js:58 +#: js/toolbar.js:77 +#: js/toolbar.js:79 +#: js/toolbar.js:138 +#: js/toolbar.js:147 +#: js/toolbar.js:149 +#: js/toolbar.js:184 +#: js/toolbar.js:202 +#: js/toolbar.js:204 +#: js/toolbar.js:240 +#: js/toolbar.js:258 +#: js/toolbar.js:260 +msgid "Save project as HTML" +msgstr "" + +#: js/toolbar.js:59 +#: js/toolbar.js:120 +#: js/toolbar.js:185 +#: js/toolbar.js:241 +msgid "Find and share projects" +msgstr "" + +#: js/toolbar.js:60 +#: js/toolbar.js:121 +#: js/toolbar.js:186 +#: js/toolbar.js:242 +msgid "Offline. Sharing is unavailable" +msgstr "" + +#: js/toolbar.js:61 +#: js/toolbar.js:122 +#: js/toolbar.js:187 +#: js/toolbar.js:243 +msgid "Auxiliary menu" +msgstr "" + +#: js/toolbar.js:62 +#: js/toolbar.js:123 +#: js/toolbar.js:188 +#: js/toolbar.js:244 +#: js/turtledefs.js:752 +#: js/piemenus.js:3423 +msgid "Help" +msgstr "" + +#: js/toolbar.js:63 +#: js/toolbar.js:124 +#: js/toolbar.js:189 +#: js/toolbar.js:245 +msgid "Run slowly" +msgstr "" + +#: js/toolbar.js:64 +#: js/toolbar.js:125 +#: js/toolbar.js:190 +#: js/toolbar.js:246 +#: js/turtledefs.js:682 +msgid "Run step by step" +msgstr "" + +#: js/toolbar.js:65 +#: js/toolbar.js:126 +#: js/toolbar.js:191 +#: js/toolbar.js:247 +#: js/turtledefs.js:689 +msgid "Display statistics" +msgstr "" + +#: js/toolbar.js:66 +#: js/toolbar.js:127 +#: js/toolbar.js:192 +#: js/toolbar.js:248 +msgid "Load plugin" +msgstr "" + +#: js/toolbar.js:67 +#: js/toolbar.js:128 +#: js/toolbar.js:193 +#: js/toolbar.js:249 +#: js/turtledefs.js:696 +msgid "Delete plugin" +msgstr "" + +#: js/toolbar.js:68 +#: js/toolbar.js:129 +#: js/toolbar.js:194 +#: js/toolbar.js:250 +msgid "Enable horizontal scrolling" +msgstr "" + +#: js/toolbar.js:69 +#: js/toolbar.js:130 +#: js/toolbar.js:195 +#: js/toolbar.js:251 +msgid "Disable horizontal scrolling" +msgstr "" + +#: js/toolbar.js:70 +#: js/toolbar.js:131 +#: js/toolbar.js:196 +#: js/toolbar.js:252 +#: planet/js/LocalCard.js:54 +#: planet/js/StringHelper.js:71 +msgid "Merge with current project" +msgstr "" + +#: js/toolbar.js:71 +#: js/toolbar.js:132 +msgid "Set Pitch Preview" +msgstr "" + +#: js/toolbar.js:72 +#: js/toolbar.js:133 +#: js/toolbar.js:197 +#: js/toolbar.js:253 +msgid "JavaScript Editor" +msgstr "" + +#: js/toolbar.js:73 +#: js/toolbar.js:134 +#: js/toolbar.js:198 +#: js/toolbar.js:254 +#: js/turtledefs.js:724 +msgid "Restore" +msgstr "" + +#: js/toolbar.js:74 +#: js/toolbar.js:135 +#: js/toolbar.js:199 +#: js/toolbar.js:255 +msgid "Switch to beginner mode" +msgstr "" + +#: js/toolbar.js:75 +#: js/toolbar.js:136 +#: js/toolbar.js:200 +#: js/toolbar.js:256 +msgid "Switch to advanced mode" +msgstr "" + +#: js/toolbar.js:76 +#: js/toolbar.js:137 +#: js/toolbar.js:146 +#: js/toolbar.js:201 +#: js/toolbar.js:257 +#: js/turtledefs.js:738 +msgid "Select language" +msgstr "" + +#: js/toolbar.js:78 +#: js/toolbar.js:81 +#: js/toolbar.js:140 +#: js/turtledefs.js:579 +msgid "Save mouse artwork as PNG" +msgstr "" + +#: js/toolbar.js:80 +#: js/toolbar.js:139 +#: js/turtledefs.js:575 +msgid "Save mouse artwork as SVG" +msgstr "" + +#: js/toolbar.js:82 +#: js/toolbar.js:141 +#: js/turtledefs.js:583 +msgid "Save music as WAV" +msgstr "" + +#: js/toolbar.js:83 +#: js/toolbar.js:142 +#: js/turtledefs.js:587 +msgid "Save sheet music as ABC" +msgstr "" + +#: js/toolbar.js:84 +#: js/toolbar.js:143 +#: js/turtledefs.js:591 +msgid "Save sheet music as Lilypond" +msgstr "" + +#: js/toolbar.js:85 +msgid "Save sheet music as MusicXML" +msgstr "" + +#: js/toolbar.js:86 +#: js/toolbar.js:144 +#: js/toolbar.js:152 +#: js/toolbar.js:207 +#: js/toolbar.js:263 +#: js/turtledefs.js:562 +#: js/turtledefs.js:595 +msgid "Save block artwork as SVG" +msgstr "" + +#: js/toolbar.js:87 +#: js/toolbar.js:145 +#: js/toolbar.js:153 +#: js/toolbar.js:208 +#: js/toolbar.js:264 +#: js/turtles.js:911 +msgid "Confirm" +msgstr "" + +#: js/toolbar.js:88 +#: js/toolbar.js:154 +#: js/toolbar.js:209 +#: js/toolbar.js:265 +msgid "English (United States)" +msgstr "" + +#: js/toolbar.js:89 +#: js/toolbar.js:155 +#: js/toolbar.js:210 +#: js/toolbar.js:266 +msgid "English (United Kingdom)" +msgstr "" + +#: js/toolbar.js:90 +#: js/toolbar.js:156 +#: js/toolbar.js:211 +#: js/toolbar.js:267 +msgid "日本語" +msgstr "" + +#: js/toolbar.js:91 +msgid "한국어" +msgstr "" + +#: js/toolbar.js:92 +#: js/toolbar.js:158 +#: js/toolbar.js:213 +#: js/toolbar.js:269 +msgid "español" +msgstr "" + +#: js/toolbar.js:93 +#: js/toolbar.js:159 +#: js/toolbar.js:214 +#: js/toolbar.js:270 +msgid "português" +msgstr "" + +#: js/toolbar.js:94 +#: js/toolbar.js:160 +#: js/toolbar.js:215 +#: js/toolbar.js:271 +msgid "にほんご" +msgstr "" + +#: js/toolbar.js:95 +#: js/toolbar.js:161 +#: js/toolbar.js:216 +#: js/toolbar.js:272 +msgid "中文" +msgstr "" + +#: js/toolbar.js:96 +#: js/toolbar.js:162 +#: js/toolbar.js:217 +#: js/toolbar.js:273 +msgid "ภาษาไทย" +msgstr "" + +#: js/toolbar.js:97 +#: js/toolbar.js:163 +#: js/toolbar.js:218 +#: js/toolbar.js:274 +msgid "aymara" +msgstr "" + +#: js/toolbar.js:98 +#: js/toolbar.js:164 +#: js/toolbar.js:219 +#: js/toolbar.js:275 +msgid "quechua" +msgstr "" + +#: js/toolbar.js:99 +#: js/toolbar.js:165 +#: js/toolbar.js:220 +#: js/toolbar.js:276 +msgid "guarani" +msgstr "" + +#: js/toolbar.js:100 +#: js/toolbar.js:166 +#: js/toolbar.js:221 +#: js/toolbar.js:277 +msgid "हिंदी" +msgstr "" + +#: js/toolbar.js:101 +#: js/toolbar.js:168 +#: js/toolbar.js:222 +#: js/toolbar.js:279 +msgid "igbo" +msgstr "" + +#: js/toolbar.js:102 +#: js/toolbar.js:169 +#: js/toolbar.js:223 +#: js/toolbar.js:280 +msgid "عربى" +msgstr "" + +#: js/toolbar.js:103 +#: js/toolbar.js:167 +#: js/toolbar.js:224 +#: js/toolbar.js:278 +msgid "తెలుగు" +msgstr "" + +#: js/toolbar.js:104 +#: js/toolbar.js:170 +#: js/toolbar.js:225 +#: js/toolbar.js:281 +msgid "עִברִית" +msgstr "" + +#: js/toolbar.js:113 +#: js/toolbar.js:114 +#: js/toolbar.js:178 +#: js/toolbar.js:179 +#: js/toolbar.js:234 +#: js/toolbar.js:235 +msgid "Full Screen" +msgstr "" + +#: js/toolbar.js:148 +#: js/toolbar.js:151 +#: js/toolbar.js:203 +#: js/toolbar.js:206 +#: js/toolbar.js:259 +#: js/toolbar.js:262 +#: js/turtledefs.js:558 +msgid "Save turtle artwork as PNG" +msgstr "" + +#: js/toolbar.js:150 +#: js/toolbar.js:205 +#: js/toolbar.js:261 +#: js/turtledefs.js:554 +msgid "Save turtle artwork as SVG" +msgstr "" + +#: js/toolbar.js:157 +#: js/toolbar.js:212 +#: js/toolbar.js:268 +msgid "한국인" +msgstr "" + +#: js/toolbar.js:174 +#: js/toolbar.js:230 +msgid "About Turtle Blocks" +msgstr "" + +#: js/toolbar.js:446 +#: js/toolbar.js:457 +#: js/toolbar.js:497 +msgid "Turtle Wrap Off" +msgstr "" + +#: js/toolbar.js:466 +#: js/toolbar.js:506 +msgid "Turtle Wrap On" +msgstr "" + +#: js/turtle-painter.js:1192 +#: js/turtle-painter.js:1193 +#: js/turtles.js:118 +#: js/block-verbose.js:1623 +#: js/block.js:1587 +#: js/lilypond.js:749 +#: js/lilypond.js:913 +#: js/lilypond.js:951 +#: js/logo.js:1184 +#: js/blocks/ActionBlocks.js:1223 +#: js/blocks/ProgramBlocks.js:1267 +msgid "start" +msgstr "" + +#: js/turtledefs.js:40 +#.TRANS: put the URL to the guide here, e.g., https://github.com/sugarlabs/turtleblocksjs/tree/master/guide/README.md +msgid "guide url" +msgstr "" + +#: js/turtledefs.js:85 +#: js/turtledefs.js:437 +msgid "Turtle Blocks is a Logo-inspired turtle that draws colorful pictures with snap-together visual-programming blocks." +msgstr "" + +#: js/turtledefs.js:118 +#: js/turtledefs.js:220 +msgid "search" +msgstr "" + +#: js/turtledefs.js:120 +#: js/turtledefs.js:222 +#: js/blocks/MeterBlocks.js:1343 +#: js/blocks/WidgetBlocks.js:522 +#.TRANS: musical meter (time signature), e.g., 4:4 +msgid "meter" +msgstr "" + +#: js/turtledefs.js:122 +#: js/turtledefs.js:224 +msgid "intervals" +msgstr "" + +#: js/turtledefs.js:124 +#: js/turtledefs.js:226 +msgid "ornament" +msgstr "" + +#: js/turtledefs.js:125 +#: js/turtledefs.js:227 +#: js/blocks/VolumeBlocks.js:362 +#: js/blocks/VolumeBlocks.js:502 +#: js/blocks/VolumeBlocks.js:545 +msgid "volume" +msgstr "" + +#: js/turtledefs.js:126 +#: js/turtledefs.js:228 +#: js/block-verbose.js:1700 +#: js/block-verbose.js:2626 +#: js/block.js:1664 +#: js/block.js:2554 +#: js/lilypond.js:732 +#: js/lilypond.js:897 +#: js/lilypond.js:941 +#: js/palette.js:577 +#: js/blocks/RhythmBlocks.js:766 +#: js/blocks/DrumBlocks.js:477 +#: js/blocks/VolumeBlocks.js:502 +#: js/widgets/phrasemaker.js:1038 +msgid "drum" +msgstr "" + +#: js/turtledefs.js:129 +#: js/turtledefs.js:231 +msgid "boxes" +msgstr "" + +#: js/turtledefs.js:130 +#: js/turtledefs.js:232 +msgid "widgets" +msgstr "" + +#: js/turtledefs.js:131 +#: js/turtledefs.js:233 +#: js/widgets/phrasemaker.js:1039 +msgid "graphics" +msgstr "" + +#: js/turtledefs.js:134 +#: js/turtledefs.js:236 +msgid "boolean" +msgstr "" + +#: js/turtledefs.js:137 +#: js/turtledefs.js:239 +#: js/blocks/HeapBlocks.js:59 +#: js/widgets/status.js:147 +msgid "heap" +msgstr "" + +#: js/turtledefs.js:138 +#: js/turtledefs.js:240 +#: js/blocks/DictBlocks.js:142 +#: js/blocks/ProgramBlocks.js:495 +msgid "dictionary" +msgstr "" + +#: js/turtledefs.js:139 +#: js/turtledefs.js:241 +msgid "ensemble" +msgstr "" + +#: js/turtledefs.js:140 +#: js/turtledefs.js:242 +msgid "extras" +msgstr "" + +#: js/turtledefs.js:142 +#: js/turtledefs.js:244 +#.TRANS: program as in computer program +#.TRANS: program as in computer program +msgid "program" +msgstr "" + +#: js/turtledefs.js:143 +#: js/turtledefs.js:245 +msgid "my blocks" +msgstr "" + +#: js/turtledefs.js:185 +#: js/turtledefs.js:281 +msgid "artwork" +msgstr "" + +#: js/turtledefs.js:185 +#: js/turtledefs.js:281 +msgid "logic" +msgstr "" + +#: js/turtledefs.js:185 +#: js/turtledefs.js:281 +msgid "music" +msgstr "" + +#: js/turtledefs.js:187 +#: js/turtledefs.js:463 +msgid "Music Blocks is a collection of tools for exploring fundamental musical concepts in a fun way." +msgstr "" + +#: js/turtledefs.js:436 +msgid "Welcome to Turtle Blocks" +msgstr "" + +#: js/turtledefs.js:438 +#: js/turtledefs.js:465 +#: js/turtledefs.js:774 +#: js/turtledefs.js:805 +msgid "The current version is" +msgstr "" + +#: js/turtledefs.js:446 +#: js/turtledefs.js:483 +msgid "Click the run button to run the project in fast mode." +msgstr "" + +#: js/turtledefs.js:452 +msgid "Stop the turtle." +msgstr "" + +#: js/turtledefs.js:454 +#: js/turtledefs.js:491 +msgid "You can also type Alt-S to stop." +msgstr "" + +#: js/turtledefs.js:462 +#: js/widgets/help.js:333 +msgid "Welcome to Music Blocks" +msgstr "" + +#: js/turtledefs.js:472 +#: js/widgets/help.js:334 +msgid "Meet Mr. Mouse!" +msgstr "" + +#: js/turtledefs.js:473 +msgid "Mr Mouse is our Music Blocks conductor." +msgstr "" + +#: js/turtledefs.js:475 +msgid "Mr Mouse encourages you to explore Music Blocks." +msgstr "" + +#: js/turtledefs.js:477 +msgid "Let us start our tour!" +msgstr "" + +#: js/turtledefs.js:489 +msgid "Stop the music (and the mice)." +msgstr "" + +#: js/turtledefs.js:499 +msgid "Record your project as video." +msgstr "" + +#: js/turtledefs.js:505 +msgid "Toggle Fullscreen mode." +msgstr "" + +#: js/turtledefs.js:511 +msgid "Initialize a new project." +msgstr "" + +#: js/turtledefs.js:517 +msgid "You can also load projects from the file system." +msgstr "" + +#: js/turtledefs.js:522 +#: planet/js/StringHelper.js:46 +msgid "Delete" +msgstr "" + +#: js/turtledefs.js:523 +msgid "To delete a block, just right-click on it, then you will be able to see the delete option" +msgstr "" + +#: js/turtledefs.js:528 +#: js/activity.js:2649 +#: planet/js/LocalCard.js:31 +msgid "Copy" +msgstr "" + +#: js/turtledefs.js:529 +msgid "To copy a block, just right-click on it, then you will be able to see the copy option" +msgstr "" + +#: js/turtledefs.js:534 +#: js/piemenus.js:3411 +msgid "Extract" +msgstr "" + +#: js/turtledefs.js:535 +msgid "To extract a block, just right-click on it, then you will be able to see the extract option" +msgstr "" + +#: js/turtledefs.js:542 +#: js/turtledefs.js:552 +#: js/turtledefs.js:573 +msgid "Save your project to a file." +msgstr "" + +#: js/turtledefs.js:549 +#: js/turtledefs.js:570 +msgid "save" +msgstr "" + +#: js/turtledefs.js:556 +#: js/turtledefs.js:577 +msgid "Save graphics from your project to as SVG." +msgstr "" + +#: js/turtledefs.js:560 +#: js/turtledefs.js:581 +msgid "Save graphics from your project as PNG." +msgstr "" + +#: js/turtledefs.js:564 +#: js/turtledefs.js:597 +msgid "Save block artwork as an SVG file." +msgstr "" + +#: js/turtledefs.js:585 +msgid "Save audio from your project as WAV." +msgstr "" + +#: js/turtledefs.js:589 +msgid "Save your project to as an ABC file." +msgstr "" + +#: js/turtledefs.js:593 +msgid "Save your project to as a Lilypond file." +msgstr "" + +#: js/turtledefs.js:604 +msgid "Load samples from server" +msgstr "" + +#: js/turtledefs.js:605 +msgid "This button opens a viewer for loading example projects." +msgstr "" + +#: js/turtledefs.js:611 +msgid "Palette buttons" +msgstr "" + +#: js/turtledefs.js:612 +msgid "This toolbar contains the palette buttons including Rhythm Pitch Tone Action and more." +msgstr "" + +#: js/turtledefs.js:614 +msgid "Click to show the palettes of blocks and drag blocks from the palettes onto the canvas to use them." +msgstr "" + +#: js/turtledefs.js:620 +msgid "Cartesian/Polar" +msgstr "" + +#: js/turtledefs.js:621 +msgid "Show or hide a coordinate grid." +msgstr "" + +#: js/turtledefs.js:626 +#: js/turtles.js:902 +msgid "Clean" +msgstr "" + +#: js/turtledefs.js:627 +msgid "Clear the screen and return the mice to their initial positions." +msgstr "" + +#: js/turtledefs.js:632 +#: js/turtles.js:955 +msgid "Collapse" +msgstr "" + +#: js/turtledefs.js:633 +msgid "Collapse the graphics window." msgstr "" -#: js/palette.js:571 -msgid "grid" +#: js/turtledefs.js:638 +#: js/activity.js:5684 +msgid "Home" msgstr "" -#: js/palette.js:577 -#: js/block.js:1540 -#: js/block.js:2343 -#: js/turtledefs.js:126 -#: js/turtledefs.js:228 -#: js/lilypond.js:740 -#: js/lilypond.js:905 -#: js/lilypond.js:949 -#: js/DrumBlocks.js:486 -#: js/RhythmBlocks.js:766 -#: js/VolumeBlocks.js:502 -#: js/phrasemaker.js:823 -msgid "drum" +#: js/turtledefs.js:639 +msgid "Return all blocks to the center of the screen." msgstr "" -#: js/palette.js:580 -msgid "effect" +#: js/turtledefs.js:644 +msgid "Show/hide blocks" msgstr "" -#: js/palette.js:586 -msgid "sargam" +#: js/turtledefs.js:645 +msgid "Hide or show the blocks and the palettes." msgstr "" -#: js/palette.js:589 -#: js/activity.js:1833 -#: js/RhythmBlocks.js:923 -#: js/PitchBlocks.js:442 -#: js/PitchBlocks.js:1748 -#.TRANS: a numeric mapping of the notes in an octave based on the musical mode -msgid "scale degree" +#: js/turtledefs.js:650 +msgid "Expand/collapse collapsable blocks" msgstr "" -#: js/palette.js:592 -#: js/activity.js:1860 -msgid "mode name" +#: js/turtledefs.js:651 +msgid "Expand or collapse start and action stacks." msgstr "" -#: js/palette.js:595 -#: js/activity.js:1839 -msgid "invert mode" +#: js/turtledefs.js:658 +#: js/activity.js:5704 +msgid "Decrease block size" msgstr "" -#: js/palette.js:598 -#: js/activity.js:1836 -msgid "voice name" +#: js/turtledefs.js:659 +msgid "Decrease the size of the blocks." msgstr "" -#: js/palette.js:601 -#: js/PitchBlocks.js:1181 -msgid "custom pitch" +#: js/turtledefs.js:664 +#: js/activity.js:5710 +msgid "Increase block size" msgstr "" -#: js/palette.js:605 -#: js/block.js:1456 -#: js/block.js:1575 -#: js/WidgetBlocks.js:218 -#: js/IntervalsBlocks.js:63 -msgid "temperament" +#: js/turtledefs.js:665 +msgid "Increase the size of the blocks." msgstr "" -#: js/palette.js:609 -msgid "accidental" +#: js/turtledefs.js:670 +msgid "Expand/collapse option toolbar" msgstr "" -#: js/palette.js:615 -#: js/activity.js:1866 -msgid "interval name" +#: js/turtledefs.js:671 +msgid "Click this button to expand or collapse the auxillary toolbar." msgstr "" -#: js/palette.js:633 -#: js/PitchBlocks.js:405 -msgid "pitch converter" +#: js/turtledefs.js:676 +msgid "Run slow" msgstr "" -#: js/rubrics.js:522 -#: js/turtledefs.js:119 -#: js/turtledefs.js:221 -#: js/RhythmBlockPaletteBlocks.js:52 -#: js/RhythmBlockPaletteBlocks.js:233 -#: js/ProgramBlocks.js:745 -#: js/rhythmruler.js:1670 -#: js/rhythmruler.js:1677 -#: js/rhythmruler.js:1745 -#: js/rhythmruler.js:1752 -#: js/rhythmruler.js:1830 -#.TRANS: an arrangement of notes based on duration -msgid "rhythm" +#: js/turtledefs.js:677 +msgid "Click to run the project in slow mode." msgstr "" -#: js/rubrics.js:523 -#: js/block.js:2339 -#: js/turtledefs.js:121 -#: js/turtledefs.js:223 -#: js/IntervalsBlocks.js:63 -#: js/PitchBlocks.js:1801 -#: js/PitchBlocks.js:1814 -#: js/SensorsBlocks.js:178 -#: js/phrasemaker.js:821 -#: js/musickeyboard.js:1653 -#.TRANS: pitch number -#.TRANS: we specify pitch in terms of a name and an octave. The name can be CDEFGAB or Do Re Mi Fa Sol La Ti. Octave is a number between 1 and 8. -msgid "pitch" +#: js/turtledefs.js:683 +msgid "Click to run the project step by step." msgstr "" -#: js/rubrics.js:524 -#: js/turtledefs.js:123 -#: js/turtledefs.js:225 -msgid "tone" +#: js/turtledefs.js:690 +msgid "Display statistics about your Music project." msgstr "" -#: js/rubrics.js:525 -#: js/lilypond.js:613 -#: js/lilypond.js:912 -#: js/lilypond.js:918 -#: js/lilypond.js:956 -msgid "mouse" +#: js/turtledefs.js:697 +msgid "Delete a selected plugin." msgstr "" -#: js/rubrics.js:526 -#: js/turtledefs.js:132 -#: js/turtledefs.js:234 -#: js/phrasemaker.js:825 -msgid "pen" +#: js/turtledefs.js:704 +msgid "Enable scrolling" msgstr "" -#: js/rubrics.js:527 -#: js/turtledefs.js:133 -#: js/turtledefs.js:235 -#: js/NumberBlocks.js:905 -#: js/PitchBlocks.js:1679 -#: js/PitchBlocks.js:1720 -msgid "number" +#: js/turtledefs.js:705 +msgid "You can scroll the blocks on the canvas." msgstr "" -#: js/rubrics.js:528 -#: js/turtledefs.js:127 -#: js/turtledefs.js:229 -msgid "flow" +#: js/turtledefs.js:714 +msgid "Wrap Turtle" msgstr "" -#: js/rubrics.js:530 -#: js/turtledefs.js:136 -#: js/turtledefs.js:238 -msgid "sensors" +#: js/turtledefs.js:715 +msgid "Turn Turtle wrapping On or Off." msgstr "" -#: js/rubrics.js:531 -#: js/turtledefs.js:135 -#: js/turtledefs.js:237 -#: js/MediaBlocks.js:930 -msgid "media" +#: js/turtledefs.js:725 +msgid "Restore blocks from the trash." msgstr "" -#: js/rubrics.js:532 -msgid "mice" +#: js/turtledefs.js:732 +msgid "Switch mode" msgstr "" -#: js/macros.js:711 -#: js/musicutils.js:783 -#: js/synthutils.js:181 -#.TRANS: animal sound effect -msgid "duck" +#: js/turtledefs.js:733 +msgid "Switch between beginner and advance modes." msgstr "" -#: js/toolbar.js:46 -#: js/toolbar.js:107 -msgid "About Music Blocks" +#: js/turtledefs.js:739 +msgid "Select your language preference." msgstr "" -#: js/toolbar.js:47 -#: js/toolbar.js:108 -#: js/toolbar.js:172 -#: js/toolbar.js:228 -#: js/turtledefs.js:445 -#: js/turtledefs.js:482 -#: js/activity.js:2281 -#: js/activity.js:2289 -#: js/activity.js:2520 -#: js/modewidget.js:77 -#: js/pitchstaircase.js:121 -#: js/phrasemaker.js:302 -#: js/phrasemaker.js:312 -#: js/phrasemaker.js:314 -#: js/phrasemaker.js:3901 -#: js/phrasemaker.js:4061 -#: js/phrasemaker.js:4066 -#: js/phrasemaker.js:4068 -#: js/phrasemaker.js:4183 -#: js/pitchdrummatrix.js:81 -#: js/pitchdrummatrix.js:574 -#: js/pitchdrummatrix.js:576 -#: js/pitchdrummatrix.js:628 -#: js/pitchdrummatrix.js:630 -#: js/pitchdrummatrix.js:645 -#: js/pitchdrummatrix.js:647 -#: js/pitchdrummatrix.js:674 -#: js/pitchdrummatrix.js:676 -#: js/temperament.js:477 -#: js/temperament.js:480 -#: js/temperament.js:540 -#: js/temperament.js:542 -#: js/temperament.js:1835 -#: js/temperament.js:1837 -#: js/temperament.js:1986 -#: js/temperament.js:1988 -#: js/musickeyboard.js:522 -#: js/musickeyboard.js:682 -#: js/musickeyboard.js:684 -#: js/musickeyboard.js:756 -#: js/musickeyboard.js:758 -#: js/rhythmruler.js:298 -#: js/rhythmruler.js:300 -#: js/rhythmruler.js:314 -#: js/rhythmruler.js:316 -#: js/sampler.js:96 -#: js/sampler.js:98 -#: js/sampler.js:229 -#: js/sampler.js:235 -#: js/sampler.js:237 -#: js/tempo.js:84 -#: js/tempo.js:86 -#: js/timbre.js:432 -#: js/timbre.js:434 -#: js/timbre.js:465 -#: js/timbre.js:467 -#: js/timbre.js:746 -#: js/meterwidget.js:80 -#: js/arpeggio.js:90 -#: js/arpeggio.js:547 -#: js/arpeggio.js:549 -#: js/arpeggio.js:644 -#: js/arpeggio.js:646 -msgid "Play" +#: js/turtledefs.js:745 +msgid "Keyboard shortcuts" msgstr "" -#: js/toolbar.js:48 -#: js/toolbar.js:109 -#: js/toolbar.js:173 -#: js/toolbar.js:229 -#: js/turtledefs.js:451 -#: js/turtledefs.js:488 -#: js/activity.js:2297 -#: js/modewidget.js:99 -#: js/modewidget.js:101 -#: js/phrasemaker.js:323 -#: js/phrasemaker.js:325 -#: js/pitchdrummatrix.js:561 -#: js/pitchdrummatrix.js:563 -#: js/temperament.js:1820 -#: js/temperament.js:1822 -#: js/meterwidget.js:101 -#: js/meterwidget.js:103 -#: js/arpeggio.js:534 -#: js/arpeggio.js:536 -msgid "Stop" +#: js/turtledefs.js:746 +msgid "You can type d to create a do block and r to create a re block etc." msgstr "" -#: js/toolbar.js:49 -#: js/toolbar.js:110 -#: js/toolbar.js:174 -#: js/toolbar.js:230 -#: js/turtledefs.js:498 -msgid "Record" +#: js/turtledefs.js:753 +msgid "Show these messages." msgstr "" -#: js/toolbar.js:50 -#: js/toolbar.js:51 -msgid "Full screen" +#: js/turtledefs.js:759 +#: js/turtledefs.js:790 +#: js/widgets/help.js:335 +msgid "Guide" msgstr "" -#: js/toolbar.js:52 -#: js/toolbar.js:112 -#: js/toolbar.js:177 -#: js/toolbar.js:232 -#: js/turtledefs.js:504 -msgid "Toggle Fullscreen" +#: js/turtledefs.js:760 +msgid "A detailed guide to Turtle Blocks is available." msgstr "" -#: js/toolbar.js:53 -#: js/toolbar.js:113 -#: js/toolbar.js:178 -#: js/toolbar.js:233 -#: js/turtledefs.js:510 -#: js/StringHelper.js:33 -msgid "New project" +#: js/turtledefs.js:764 +msgid "Turtle Blocks Guide" msgstr "" -#: js/toolbar.js:54 -#: js/toolbar.js:114 -#: js/toolbar.js:179 -#: js/toolbar.js:234 -#: js/turtledefs.js:516 -msgid "Load project from file" +#: js/turtledefs.js:767 +#: js/turtledefs.js:798 +#: js/widgets/help.js:336 +msgid "About" msgstr "" -#: js/toolbar.js:55 -#: js/toolbar.js:115 -#: js/toolbar.js:116 -#: js/toolbar.js:180 -#: js/toolbar.js:235 -#: js/turtledefs.js:541 -#: js/turtledefs.js:550 -#: js/turtledefs.js:571 -msgid "Save project" +#: js/turtledefs.js:768 +msgid "Turtle Blocks is an open source collection of tools for exploring musical concepts." msgstr "" -#: js/toolbar.js:56 -#: js/toolbar.js:75 -#: js/toolbar.js:77 -#: js/toolbar.js:135 -#: js/toolbar.js:144 -#: js/toolbar.js:146 -#: js/toolbar.js:181 -#: js/toolbar.js:199 -#: js/toolbar.js:201 -#: js/toolbar.js:236 -#: js/toolbar.js:254 -#: js/toolbar.js:256 -msgid "Save project as HTML" +#: js/turtledefs.js:770 +msgid "A full list of contributors can be found in the Turtle Blocks GitHub repository." +msgstr "" + +#: js/turtledefs.js:772 +msgid "Turtle Blocks is licensed under the AGPL." +msgstr "" + +#: js/turtledefs.js:780 +msgid "Turtle Blocks GitHub repository" +msgstr "" + +#: js/turtledefs.js:783 +#: js/turtledefs.js:814 +#: js/widgets/help.js:337 +#: js/widgets/help.js:359 +msgid "Congratulations." +msgstr "" + +#: js/turtledefs.js:784 +msgid "You have finished the tour. Please enjoy Turtle Blocks!" +msgstr "" + +#: js/turtledefs.js:791 +msgid "A detailed guide to Music Blocks is available." +msgstr "" + +#: js/turtledefs.js:799 +msgid "Music Blocks is an open source collection of tools for exploring musical concepts." +msgstr "" + +#: js/turtledefs.js:801 +msgid "A full list of contributors can be found in the Music Blocks GitHub repository." +msgstr "" + +#: js/turtledefs.js:803 +msgid "Music Blocks is licensed under the AGPL." +msgstr "" + +#: js/turtledefs.js:811 +msgid "Music Blocks GitHub repository" +msgstr "" + +#: js/turtledefs.js:815 +msgid "You have finished the tour. Please enjoy Music Blocks!" +msgstr "" + +#: js/turtles.js:882 +msgid "Grid" +msgstr "" + +#: js/turtles.js:1024 +msgid "Expand" +msgstr "" + +#: js/block-verbose.js:1616 +#: js/block-verbose.js:1735 +#: js/block.js:1580 +#: js/block.js:1699 +#: js/palette.js:605 +#: js/blocks/IntervalsBlocks.js:63 +#: js/blocks/WidgetBlocks.js:259 +msgid "temperament" +msgstr "" + +#: js/block-verbose.js:1630 +#: js/block.js:1594 +msgid "matrix" msgstr "" -#: js/toolbar.js:57 -#: js/toolbar.js:117 -#: js/toolbar.js:182 -#: js/toolbar.js:237 -msgid "Find and share projects" +#: js/block-verbose.js:1637 +#: js/block.js:1601 +#: js/blocks/WidgetBlocks.js:1509 +#: plugins/rodi.rtp:324 +msgid "status" msgstr "" -#: js/toolbar.js:58 -#: js/toolbar.js:118 -#: js/toolbar.js:183 -#: js/toolbar.js:238 -msgid "Offline. Sharing is unavailable" +#: js/block-verbose.js:1644 +#: js/block.js:1608 +msgid "drum mapper" msgstr "" -#: js/toolbar.js:59 -#: js/toolbar.js:119 -#: js/toolbar.js:184 -#: js/toolbar.js:239 -msgid "Auxiliary menu" +#: js/block-verbose.js:1651 +#: js/block.js:1615 +msgid "ruler" msgstr "" -#: js/toolbar.js:61 -#: js/toolbar.js:121 -#: js/toolbar.js:186 -#: js/toolbar.js:241 -msgid "Run slowly" +#: js/block-verbose.js:1658 +#: js/block.js:1622 +#: js/blocks/WidgetBlocks.js:397 +#.TRANS: timbre is the character or quality of a musical sound +msgid "timbre" msgstr "" -#: js/toolbar.js:62 -#: js/toolbar.js:122 -#: js/toolbar.js:187 -#: js/toolbar.js:242 -#: js/turtledefs.js:682 -msgid "Run step by step" +#: js/block-verbose.js:1665 +#: js/block.js:1629 +msgid "stair" msgstr "" -#: js/toolbar.js:63 -#: js/toolbar.js:123 -#: js/toolbar.js:188 -#: js/toolbar.js:243 -#: js/turtledefs.js:689 -msgid "Display statistics" +#: js/block-verbose.js:1672 +#: js/block.js:1636 +#: js/blocks/WidgetBlocks.js:707 +#.TRANS: the speed at music is should be played. +msgid "tempo" msgstr "" -#: js/toolbar.js:64 -#: js/toolbar.js:124 -#: js/toolbar.js:189 -#: js/toolbar.js:244 -msgid "Load plugin" +#: js/block-verbose.js:1679 +#: js/block-verbose.js:1742 +#: js/block.js:1643 +#: js/block.js:1706 +#: js/blocks/IntervalsBlocks.js:1464 +#.TRANS: mode, e.g., Major in C Major +msgid "mode" msgstr "" -#: js/toolbar.js:65 -#: js/toolbar.js:125 -#: js/toolbar.js:190 -#: js/toolbar.js:245 -#: js/turtledefs.js:696 -msgid "Delete plugin" +#: js/block-verbose.js:1686 +#: js/block.js:1650 +msgid "slider" msgstr "" -#: js/toolbar.js:66 -#: js/toolbar.js:126 -#: js/toolbar.js:191 -#: js/toolbar.js:246 -msgid "Enable horizontal scrolling" +#: js/block-verbose.js:1693 +#: js/block.js:1657 +#: js/blocks/SensorsBlocks.js:1001 +msgid "keyboard" msgstr "" -#: js/toolbar.js:67 -#: js/toolbar.js:127 -#: js/toolbar.js:192 -#: js/toolbar.js:247 -msgid "Disable horizontal scrolling" +#: js/block-verbose.js:1707 +#: js/block.js:1671 +#: js/blocks/WidgetBlocks.js:1190 +#: js/blocks/WidgetBlocks.js:1228 +#.TRANS: widget for subdividing a measure into distinct rhythmic elements +msgid "rhythm maker" msgstr "" -#: js/toolbar.js:68 -#: js/toolbar.js:128 -#: js/toolbar.js:193 -#: js/toolbar.js:248 -#: js/LocalCard.js:54 -#: js/StringHelper.js:71 -msgid "Merge with current project" +#: js/block-verbose.js:1714 +#: js/block-verbose.js:2457 +#: js/block-verbose.js:2514 +#: js/block.js:1678 +#: js/block.js:2385 +#: js/block.js:2442 +#: js/blocks/MeterBlocks.js:1367 +#: js/blocks/OrnamentBlocks.js:220 +#: js/blocks/OrnamentBlocks.js:312 +#: js/blocks/RhythmBlocks.js:33 +#: js/blocks/RhythmBlocks.js:356 +#: js/blocks/RhythmBlocks.js:766 +#: js/blocks/RhythmBlocks.js:806 +#: js/blocks/RhythmBlockPaletteBlocks.js:70 +#: js/blocks/RhythmBlockPaletteBlocks.js:252 +#: js/blocks/RhythmBlockPaletteBlocks.js:485 +#: js/blocks/RhythmBlockPaletteBlocks.js:554 +#: js/blocks/RhythmBlockPaletteBlocks.js:605 +#: js/blocks/RhythmBlockPaletteBlocks.js:875 +#: js/turtleactions/DictActions.js:85 +#: js/widgets/phrasemaker.js:942 +#: js/widgets/phrasemaker.js:2656 +#: js/widgets/phrasemaker.js:2699 +#: js/widgets/phrasemaker.js:2810 +#.TRANS: the value (e.g., 1/4 note) of the note being played. +msgid "note value" msgstr "" -#: js/toolbar.js:69 -#: js/toolbar.js:129 -msgid "Set Pitch Preview" +#: js/block-verbose.js:1721 +#: js/block-verbose.js:2382 +#: js/block-verbose.js:2405 +#: js/block.js:1685 +#: js/block.js:2310 +#: js/block.js:2333 +#: js/blocks/IntervalsBlocks.js:1071 +#: js/blocks/OrnamentBlocks.js:312 +#.TRANS: calculate a relative step between notes based on semi-tones +msgid "scalar interval" msgstr "" -#: js/toolbar.js:70 -#: js/toolbar.js:130 -#: js/toolbar.js:194 -#: js/toolbar.js:249 -msgid "Toggle JavaScript Editor" +#: js/block-verbose.js:1728 +#: js/block.js:1692 +#: js/blocks/RhythmBlocks.js:148 +msgid "milliseconds" msgstr "" -#: js/toolbar.js:71 -#: js/toolbar.js:131 -#: js/toolbar.js:195 -#: js/toolbar.js:250 -#: js/turtledefs.js:724 -msgid "Restore" +#: js/block-verbose.js:2455 +#: js/block-verbose.js:2459 +#: js/block-verbose.js:2512 +#: js/block-verbose.js:2628 +#: js/block.js:2383 +#: js/block.js:2387 +#: js/block.js:2440 +#: js/block.js:2556 +#: js/blocks/RhythmBlocks.js:712 +#: js/blocks/ProgramBlocks.js:1273 +#: js/widgets/rhythmruler.js:1183 +#: js/widgets/rhythmruler.js:1329 +msgid "silence" msgstr "" -#: js/toolbar.js:72 -#: js/toolbar.js:132 -#: js/toolbar.js:196 -#: js/toolbar.js:251 -msgid "Switch to beginner mode" +#: js/block-verbose.js:2548 +#: js/block-verbose.js:3492 +#: js/block-verbose.js:3509 +#: js/activity.js:2718 +#: js/activity.js:2769 +#: js/block.js:2476 +#: js/block.js:3416 +#: js/block.js:3433 +#: js/utils/musicutils.js:3780 +#: js/utils/musicutils.js:5273 +#.TRANS: the note names must be separated by single spaces +#.TRANS: the note names must be separated by single spaces +#.TRANS: the note names must be separated by single spaces +msgid "ti la sol fa mi re do" msgstr "" -#: js/toolbar.js:73 -#: js/toolbar.js:133 -#: js/toolbar.js:197 -#: js/toolbar.js:252 -msgid "Switch to advanced mode" +#: js/block-verbose.js:2616 +#: js/block.js:2544 +#.TRANS: scalar step +#.TRANS: scalar step +msgid "down" msgstr "" -#: js/toolbar.js:74 -#: js/toolbar.js:134 -#: js/toolbar.js:143 -#: js/toolbar.js:198 -#: js/toolbar.js:253 -#: js/turtledefs.js:738 -msgid "Select language" +#: js/block-verbose.js:2617 +#: js/block.js:2545 +msgid "up" msgstr "" -#: js/toolbar.js:76 -#: js/toolbar.js:79 -#: js/toolbar.js:137 -#: js/turtledefs.js:579 -msgid "Save mouse artwork as PNG" +#: js/block-verbose.js:3026 +#: js/block.js:2950 +msgid "Silence block cannot be removed." msgstr "" -#: js/toolbar.js:78 -#: js/toolbar.js:136 -#: js/turtledefs.js:575 -msgid "Save mouse artwork as SVG" +#: js/block-verbose.js:3824 +#: js/block.js:3748 +#: js/blocks.js:2607 +#: js/blocks.js:3218 +#: js/palette.js:618 +#: js/blocks/BooleanBlocks.js:77 +#: js/blocks/BooleanBlocks.js:167 +#: js/blocks/BooleanBlocks.js:251 +#: js/blocks/BooleanBlocks.js:335 +#: js/blocks/BooleanBlocks.js:433 +#: js/blocks/BooleanBlocks.js:539 +#: js/blocks/BooleanBlocks.js:640 +#: js/blocks/BooleanBlocks.js:741 +#: js/blocks/BooleanBlocks.js:847 +#: js/blocks/BooleanBlocks.js:948 +#: js/blocks/BooleanBlocks.js:1033 +#: js/blocks/SensorsBlocks.js:910 +msgid "true" msgstr "" -#: js/toolbar.js:80 -#: js/toolbar.js:138 -#: js/turtledefs.js:583 -msgid "Save music as WAV" +#: js/block-verbose.js:3824 +#: js/block.js:3748 +#: js/blocks.js:2609 +#: js/blocks.js:3220 +#: js/blocks/BooleanBlocks.js:79 +#: js/blocks/BooleanBlocks.js:169 +#: js/blocks/BooleanBlocks.js:253 +#: js/blocks/BooleanBlocks.js:337 +#: js/blocks/BooleanBlocks.js:435 +#: js/blocks/BooleanBlocks.js:541 +#: js/blocks/BooleanBlocks.js:642 +#: js/blocks/BooleanBlocks.js:743 +#: js/blocks/BooleanBlocks.js:849 +#: js/blocks/BooleanBlocks.js:950 +#: js/blocks/SensorsBlocks.js:912 +msgid "false" msgstr "" -#: js/toolbar.js:81 -#: js/toolbar.js:139 -#: js/turtledefs.js:587 -msgid "Save sheet music as ABC" +#: js/block-verbose.js:3835 +#: js/block-verbose.js:3848 +#: js/block.js:3759 +#: js/block.js:3772 +#: js/blocks/ExtrasBlocks.js:615 +msgid "Cartesian" msgstr "" -#: js/toolbar.js:82 -#: js/toolbar.js:140 -#: js/turtledefs.js:591 -msgid "Save sheet music as Lilypond" +#: js/block-verbose.js:3836 +#: js/block-verbose.js:3849 +#: js/block.js:3760 +#: js/block.js:3773 +#: js/blocks/ExtrasBlocks.js:619 +msgid "polar" msgstr "" -#: js/toolbar.js:83 -msgid "Save sheet music as MusicXML" +#: js/block-verbose.js:3837 +#: js/block-verbose.js:3850 +#: js/block.js:3761 +#: js/block.js:3774 +#: js/blocks/ExtrasBlocks.js:623 +msgid "Cartesian+polar" msgstr "" -#: js/toolbar.js:84 -#: js/toolbar.js:141 -#: js/toolbar.js:149 -#: js/toolbar.js:204 -#: js/toolbar.js:259 -#: js/turtledefs.js:562 -#: js/turtledefs.js:595 -msgid "Save block artwork as SVG" +#: js/block-verbose.js:3838 +#: js/block-verbose.js:3857 +#: js/block.js:3762 +#: js/block.js:3781 +#: js/blocks/ExtrasBlocks.js:652 +msgid "none" msgstr "" -#: js/toolbar.js:85 -#: js/toolbar.js:142 -#: js/toolbar.js:150 -#: js/toolbar.js:205 -#: js/toolbar.js:260 -msgid "Confirm" +#: js/block-verbose.js:3851 +#: js/block.js:3775 +#: js/blocks/ExtrasBlocks.js:628 +msgid "treble" msgstr "" -#: js/toolbar.js:86 -#: js/toolbar.js:151 -#: js/toolbar.js:206 -#: js/toolbar.js:261 -msgid "English (United States)" +#: js/block-verbose.js:3852 +#: js/block.js:3776 +#: js/blocks/ExtrasBlocks.js:632 +msgid "grand staff" msgstr "" -#: js/toolbar.js:87 -#: js/toolbar.js:152 -#: js/toolbar.js:207 -#: js/toolbar.js:262 -msgid "English (United Kingdom)" +#: js/block-verbose.js:3853 +#: js/block.js:3777 +#: js/blocks/ExtrasBlocks.js:636 +msgid "mezzo-soprano" msgstr "" -#: js/toolbar.js:88 -#: js/toolbar.js:153 -#: js/toolbar.js:208 -#: js/toolbar.js:263 -msgid "日本語" +#: js/block-verbose.js:3854 +#: js/block.js:3778 +#: js/blocks/ExtrasBlocks.js:640 +msgid "alto" msgstr "" -#: js/toolbar.js:89 -msgid "한국어" +#: js/block-verbose.js:3855 +#: js/block.js:3779 +#: js/blocks/ExtrasBlocks.js:644 +msgid "tenor" msgstr "" -#: js/toolbar.js:90 -#: js/toolbar.js:155 -#: js/toolbar.js:210 -#: js/toolbar.js:265 -msgid "español" +#: js/block-verbose.js:3856 +#: js/block.js:3780 +#: js/utils/musicutils.js:1115 +#: js/utils/synthutils.js:80 +#: js/blocks/ExtrasBlocks.js:648 +#.TRANS: musical instrument +msgid "bass" msgstr "" -#: js/toolbar.js:91 -#: js/toolbar.js:156 -#: js/toolbar.js:211 -#: js/toolbar.js:266 -msgid "português" +#: js/block-verbose.js:3901 +#: js/block.js:3825 +#: js/blocks.js:2600 +#: js/blocks.js:3211 +msgid "on2" msgstr "" -#: js/toolbar.js:92 -#: js/toolbar.js:157 -#: js/toolbar.js:212 -#: js/toolbar.js:267 -msgid "にほんご" +#: js/block-verbose.js:3903 +#: js/block.js:3827 +#: js/blocks.js:2602 +#: js/blocks.js:3213 +msgid "off" msgstr "" -#: js/toolbar.js:93 -#: js/toolbar.js:158 -#: js/toolbar.js:213 -#: js/toolbar.js:268 -msgid "中文" +#: js/block-verbose.js:4470 +#: js/block.js:4394 +msgid "Not a number" msgstr "" -#: js/toolbar.js:94 -#: js/toolbar.js:159 -#: js/toolbar.js:214 -#: js/toolbar.js:269 -msgid "ภาษาไทย" +#: js/block-verbose.js:4477 +#: js/block.js:4401 +msgid "Octave value must be between 1 and 10." msgstr "" -#: js/toolbar.js:95 -#: js/toolbar.js:160 -#: js/toolbar.js:215 -#: js/toolbar.js:270 -msgid "aymara" +#: js/block-verbose.js:4485 +#: js/block.js:4409 +msgid "Numbers can have at most 10 digits." msgstr "" -#: js/toolbar.js:96 -#: js/toolbar.js:161 -#: js/toolbar.js:216 -#: js/toolbar.js:271 -msgid "quechua" +#: js/activity.js:390 +#: js/activity.js:395 +msgid "Search for blocks" msgstr "" -#: js/toolbar.js:97 -#: js/toolbar.js:162 -#: js/toolbar.js:217 -#: js/toolbar.js:272 -msgid "guarani" +#: js/activity.js:1413 +msgid "Refresh your browser to change to advanced mode." msgstr "" -#: js/toolbar.js:98 -#: js/toolbar.js:163 -#: js/toolbar.js:218 -#: js/toolbar.js:273 -msgid "हिंदी" +#: js/activity.js:1418 +msgid "Refresh your browser to change to beginner mode." msgstr "" -#: js/toolbar.js:99 -#: js/toolbar.js:165 -#: js/toolbar.js:219 -#: js/toolbar.js:275 -msgid "igbo" +#: js/activity.js:1477 +msgid "Catching mice" +msgstr "" + +#: js/activity.js:1478 +msgid "Cleaning the instruments" +msgstr "" + +#: js/activity.js:1479 +msgid "Testing key pieces" +msgstr "" + +#: js/activity.js:1480 +msgid "Sight-reading" +msgstr "" + +#: js/activity.js:1481 +msgid "Combining math and music" msgstr "" -#: js/toolbar.js:100 -#: js/toolbar.js:166 -#: js/toolbar.js:220 -#: js/toolbar.js:276 -msgid "عربى" +#: js/activity.js:1482 +msgid "Generating more blocks" msgstr "" -#: js/toolbar.js:101 -#: js/toolbar.js:164 -#: js/toolbar.js:221 -#: js/toolbar.js:274 -msgid "తెలుగు" +#: js/activity.js:1483 +msgid "Do Re Mi Fa Sol La Ti Do" msgstr "" -#: js/toolbar.js:102 -#: js/toolbar.js:167 -#: js/toolbar.js:222 -#: js/toolbar.js:277 -msgid "עִברִית" +#: js/activity.js:1484 +msgid "Tuning string instruments" msgstr "" -#: js/toolbar.js:111 -#: js/toolbar.js:175 -#: js/toolbar.js:176 -#: js/toolbar.js:231 -msgid "Full Screen" +#: js/activity.js:1485 +msgid "Pressing random keys" msgstr "" -#: js/toolbar.js:145 -#: js/toolbar.js:148 -#: js/toolbar.js:200 -#: js/toolbar.js:203 -#: js/toolbar.js:255 -#: js/toolbar.js:258 -#: js/turtledefs.js:558 -msgid "Save turtle artwork as PNG" +#: js/activity.js:1663 +msgid "plugins will be removed upon restart." msgstr "" -#: js/toolbar.js:147 -#: js/toolbar.js:202 -#: js/toolbar.js:257 -#: js/turtledefs.js:554 -msgid "Save turtle artwork as SVG" +#: js/activity.js:1672 +msgid "show Cartesian" msgstr "" -#: js/toolbar.js:154 -#: js/toolbar.js:209 -#: js/toolbar.js:264 -msgid "한국인" +#: js/activity.js:2211 +#: js/palette.js:589 +#: js/blocks/RhythmBlocks.js:923 +#: js/blocks/PitchBlocks.js:442 +#: js/blocks/PitchBlocks.js:1786 +#.TRANS: a numeric mapping of the notes in an octave based on the musical mode +msgid "scale degree" msgstr "" -#: js/toolbar.js:171 -#: js/toolbar.js:227 -msgid "About Turtle Blocks" +#: js/activity.js:2214 +#: js/palette.js:598 +msgid "voice name" msgstr "" -#: js/toolbar.js:429 -#: js/toolbar.js:440 -msgid "Turtle Wrap Off" +#: js/activity.js:2217 +#: js/palette.js:595 +msgid "invert mode" msgstr "" -#: js/toolbar.js:442 -msgid "Turtle Wrap On" +#: js/activity.js:2220 +msgid "output tools" msgstr "" -#: js/block.js:1470 -msgid "matrix" +#: js/activity.js:2223 +msgid "custom note" msgstr "" -#: js/block.js:1477 -#: js/WidgetBlocks.js:1226 -#: plugins/rodi.rtp:324 -msgid "status" +#: js/activity.js:2226 +msgid "accidental name" msgstr "" -#: js/block.js:1484 -msgid "drum mapper" +#: js/activity.js:2229 +#: js/blocks/PitchBlocks.js:855 +msgid "east indian solfege" msgstr "" -#: js/block.js:1491 -msgid "ruler" +#: js/activity.js:2232 +#: js/blocks/PitchBlocks.js:869 +msgid "note name" msgstr "" -#: js/block.js:1498 -#: js/WidgetBlocks.js:327 -#.TRANS: timbre is the character or quality of a musical sound -msgid "timbre" +#: js/activity.js:2235 +#: js/blocks/IntervalsBlocks.js:94 +msgid "temperament name" msgstr "" -#: js/block.js:1505 -msgid "stair" +#: js/activity.js:2238 +#: js/palette.js:592 +msgid "mode name" msgstr "" -#: js/block.js:1512 -#: js/WidgetBlocks.js:577 -#.TRANS: the speed at music is should be played. -msgid "tempo" +#: js/activity.js:2241 +msgid "chord name" msgstr "" -#: js/block.js:1519 -#: js/block.js:1582 -#: js/IntervalsBlocks.js:1268 -#.TRANS: mode, e.g., Major in C Major -msgid "mode" +#: js/activity.js:2244 +#: js/palette.js:615 +msgid "interval name" msgstr "" -#: js/block.js:1526 -msgid "slider" +#: js/activity.js:2247 +msgid "filter type" msgstr "" -#: js/block.js:1533 -#: js/SensorsBlocks.js:1001 -msgid "keyboard" +#: js/activity.js:2250 +msgid "oscillator type" msgstr "" -#: js/block.js:1547 -#: js/WidgetBlocks.js:957 -#: js/WidgetBlocks.js:988 -#.TRANS: widget for subdividing a measure into distinct rhythmic elements -msgid "rhythm maker" +#: js/activity.js:2253 +#: js/blocks.js:2479 +#: js/blocks.js:2487 +msgid "audio file" msgstr "" -#: js/block.js:1554 -#: js/block.js:2182 -#: js/block.js:2236 -#: js/RhythmBlockPaletteBlocks.js:70 -#: js/RhythmBlockPaletteBlocks.js:251 -#: js/RhythmBlockPaletteBlocks.js:484 -#: js/RhythmBlockPaletteBlocks.js:553 -#: js/RhythmBlockPaletteBlocks.js:604 -#: js/RhythmBlockPaletteBlocks.js:874 -#: js/RhythmBlocks.js:33 -#: js/RhythmBlocks.js:356 -#: js/RhythmBlocks.js:766 -#: js/RhythmBlocks.js:806 -#: js/OrnamentBlocks.js:220 -#: js/OrnamentBlocks.js:312 -#: js/MeterBlocks.js:1367 -#: js/DictActions.js:85 -#: js/phrasemaker.js:731 -#: js/phrasemaker.js:2393 -#: js/phrasemaker.js:2436 -#: js/phrasemaker.js:2534 -#.TRANS: the value (e.g., 1/4 note) of the note being played. -msgid "note value" +#: js/activity.js:2256 +#: js/blocks/DrumBlocks.js:32 +msgid "noise name" msgstr "" -#: js/block.js:1561 -#: js/block.js:2110 -#: js/block.js:2133 -#: js/IntervalsBlocks.js:875 -#: js/OrnamentBlocks.js:312 -#.TRANS: calculate a relative step between notes based on semi-tones -msgid "scalar interval" +#: js/activity.js:2259 +#: js/blocks/DrumBlocks.js:75 +msgid "drum name" msgstr "" -#: js/block.js:1568 -#: js/RhythmBlocks.js:148 -msgid "milliseconds" +#: js/activity.js:2262 +#: js/blocks/DrumBlocks.js:119 +msgid "effects name" msgstr "" -#: js/block.js:2180 -#: js/block.js:2184 -#: js/block.js:2234 -#: js/block.js:2345 -#: js/ProgramBlocks.js:1273 -#: js/RhythmBlocks.js:712 -#: js/rhythmruler.js:834 -#: js/rhythmruler.js:961 -msgid "silence" +#: js/activity.js:2265 +msgid "wrap mode" msgstr "" -#: js/block.js:2265 -#: js/block.js:3134 -#: js/block.js:3151 -#: js/activity.js:2336 -#: js/activity.js:2387 -#: js/musicutils.js:2932 -#: js/musicutils.js:4287 -#.TRANS: the note names must be separated by single spaces -#.TRANS: the note names must be separated by single spaces -msgid "ti la sol fa mi re do" +#: js/activity.js:2268 +msgid "load file" msgstr "" -#: js/block.js:2333 -#.TRANS: scalar step -msgid "down" +#: js/activity.js:2435 +#: js/activity.js:5851 +msgid "This block is deprecated." msgstr "" -#: js/block.js:2334 -msgid "up" +#: js/activity.js:2437 +#: js/activity.js:5853 +msgid "Block cannot be found." msgstr "" -#: js/block.js:3477 -#: js/block.js:3490 -#: js/ExtrasBlocks.js:612 -msgid "Cartesian" +#: js/activity.js:2645 +msgid "Saving block artwork" msgstr "" -#: js/block.js:3478 -#: js/block.js:3491 -#: js/ExtrasBlocks.js:616 -msgid "polar" +#: js/activity.js:2656 +msgid "Erase" msgstr "" -#: js/block.js:3479 -#: js/block.js:3492 -#: js/ExtrasBlocks.js:620 -msgid "Cartesian+polar" +#: js/activity.js:2683 +#: js/activity.js:2705 +msgid "Paste" msgstr "" -#: js/block.js:3480 -#: js/block.js:3499 -#: js/ExtrasBlocks.js:649 -msgid "none" +#: js/activity.js:2687 +msgid "Save block help" msgstr "" -#: js/block.js:3493 -#: js/ExtrasBlocks.js:625 -msgid "treble" +#: js/activity.js:2772 +msgid "Jumping to the bottom of the page." msgstr "" -#: js/block.js:3494 -#: js/ExtrasBlocks.js:629 -msgid "grand staff" +#: js/activity.js:2778 +msgid "Scrolling up." msgstr "" -#: js/block.js:3495 -#: js/ExtrasBlocks.js:633 -msgid "mezzo-soprano" +#: js/activity.js:2783 +msgid "Scrolling down." msgstr "" -#: js/block.js:3496 -#: js/ExtrasBlocks.js:637 -msgid "alto" +#: js/activity.js:2788 +msgid "Extracting block" msgstr "" -#: js/block.js:3497 -#: js/ExtrasBlocks.js:641 -msgid "tenor" +#: js/activity.js:2796 +msgid "Moving block up." msgstr "" -#: js/block.js:3498 -#: js/ExtrasBlocks.js:645 -#: js/musicutils.js:736 -#: js/synthutils.js:64 -#.TRANS: musical instrument -msgid "bass" +#: js/activity.js:2817 +msgid "Moving block down." msgstr "" -#: js/block.js:4075 -msgid "Not a number" +#: js/activity.js:2838 +msgid "Moving block left." msgstr "" -#: js/block.js:4082 -msgid "Octave value must be between 1 and 10." +#: js/activity.js:2855 +msgid "Moving block right." msgstr "" -#: js/block.js:4090 -msgid "Numbers can have at most 10 digits." +#: js/activity.js:2870 +msgid "Jump to home position." msgstr "" -#: js/notation.js:353 -msgid "Lilypond cannot process pickup of " +#: js/activity.js:2897 +msgid "Hide blocks" msgstr "" -#: js/turtledefs.js:40 -#.TRANS: put the URL to the guide here, e.g., https://github.com/sugarlabs/turtleblocksjs/tree/master/guide/README.md -msgid "guide url" +#: js/activity.js:4500 +msgid "Click the run button to run the project." msgstr "" -#: js/turtledefs.js:85 -#: js/turtledefs.js:437 -msgid "Turtle Blocks is a Logo-inspired turtle that draws colorful pictures with snap-together visual-programming blocks." +#: js/activity.js:5692 +msgid "Show/hide block" msgstr "" -#: js/turtledefs.js:118 -#: js/turtledefs.js:220 -msgid "search" +#: js/activity.js:5698 +msgid "Expand/collapse blocks" msgstr "" -#: js/turtledefs.js:120 -#: js/turtledefs.js:222 -#: js/WidgetBlocks.js:437 -#: js/MeterBlocks.js:1343 -#.TRANS: musical meter (time signature), e.g., 4:4 -msgid "meter" +#: js/activity.js:5976 +msgid "Could not parse JSON input." msgstr "" -#: js/turtledefs.js:122 -#: js/turtledefs.js:224 -msgid "intervals" +#: js/activity.js:6475 +#: js/activity.js:6580 +#: js/activity.js:6631 +msgid "Cannot load project from the file. Please check the file type." msgstr "" -#: js/turtledefs.js:124 -#: js/turtledefs.js:226 -msgid "ornament" +#: js/activity.js:6917 +msgid "Invalid parameters" msgstr "" -#: js/turtledefs.js:125 -#: js/turtledefs.js:227 -#: js/VolumeBlocks.js:362 -#: js/VolumeBlocks.js:502 -#: js/VolumeBlocks.js:545 -msgid "volume" +#: js/blocks.js:1212 +#: js/blocks.js:3444 +#: js/blocks.js:3834 +#: js/blocks.js:3865 +#: js/blocks.js:3914 +#: js/blocks.js:3949 +#: js/blocks.js:6586 +#: js/palette.js:509 +#: js/palette.js:638 +#: js/palette.js:1105 +#: js/blocks/BoxesBlocks.js:282 +#: js/blocks/BoxesBlocks.js:285 +#: js/blocks/BoxesBlocks.js:405 +#: js/blocks/BoxesBlocks.js:594 +msgid "box" msgstr "" -#: js/turtledefs.js:129 -#: js/turtledefs.js:231 -msgid "boxes" +#: js/blocks.js:1713 +msgid "Consider breaking this stack into parts." msgstr "" -#: js/turtledefs.js:130 -#: js/turtledefs.js:232 -msgid "widgets" +#: js/blocks.js:2472 +#: js/palette.js:653 +#: js/blocks/MediaBlocks.js:602 +msgid "open file" msgstr "" -#: js/turtledefs.js:131 -#: js/turtledefs.js:233 -#: js/phrasemaker.js:824 -msgid "graphics" +#: js/blocks.js:3247 +#: js/palette.js:574 +#: js/blocks/MediaBlocks.js:892 +#: js/blocks/MediaBlocks.js:963 +msgid "text" msgstr "" -#: js/turtledefs.js:134 -#: js/turtledefs.js:236 -msgid "boolean" +#: js/blocks.js:3443 +#: js/palette.js:641 +#: js/palette.js:642 +#: js/blocks/BoxesBlocks.js:514 +msgid "store in box" msgstr "" -#: js/turtledefs.js:137 -#: js/turtledefs.js:239 -#: js/HeapBlocks.js:59 -#: js/status.js:147 -msgid "heap" +#: js/blocks.js:3448 +#: js/blocks.js:3888 +#: js/blocks.js:3923 +#: js/blocks.js:3958 +#: js/blocks.js:5862 +#: js/blocks.js:5883 +#: js/blocks/BoxesBlocks.js:772 +msgid "box1" msgstr "" -#: js/turtledefs.js:138 -#: js/turtledefs.js:240 -#: js/ProgramBlocks.js:495 -#: js/DictBlocks.js:142 -msgid "dictionary" +#: js/blocks.js:3450 +#: js/blocks.js:3890 +#: js/blocks.js:3925 +#: js/blocks.js:3960 +#: js/blocks.js:5864 +#: js/blocks.js:5885 +#: js/blocks/BoxesBlocks.js:663 +msgid "box2" msgstr "" -#: js/turtledefs.js:139 -#: js/turtledefs.js:241 -msgid "ensemble" +#: js/blocks.js:4122 +#: js/palette.js:639 +#: js/palette.js:644 +#: js/palette.js:1041 +#: js/blocks/BoxesBlocks.js:591 +msgid "store in" msgstr "" -#: js/turtledefs.js:140 -#: js/turtledefs.js:242 -msgid "extras" +#: js/blocks.js:4122 +#: js/blocks/BoxesBlocks.js:595 +#: js/blocks/DictBlocks.js:215 +#: js/blocks/DictBlocks.js:289 +#: js/blocks/EnsembleBlocks.js:391 +#: js/blocks/EnsembleBlocks.js:402 +#: js/blocks/MediaBlocks.js:746 +#: js/blocks/PitchBlocks.js:656 +#: js/blocks/PitchBlocks.js:934 +#: js/blocks/PitchBlocks.js:1866 +#: js/blocks/ProgramBlocks.js:390 +#: js/blocks/ProgramBlocks.js:495 +#: js/blocks/ProgramBlocks.js:658 +#: js/blocks/ToneBlocks.js:1025 +msgid "name" msgstr "" -#: js/turtledefs.js:142 -#: js/turtledefs.js:244 -#.TRANS: program as in computer program -#.TRANS: program as in computer program -msgid "program" +#: js/blocks.js:4122 +#: js/blocks/BoxesBlocks.js:75 +#: js/blocks/BoxesBlocks.js:595 +#: js/blocks/DictBlocks.js:289 +#: js/blocks/DictBlocks.js:430 +#: js/blocks/HeapBlocks.js:544 +#: js/blocks/RhythmBlocks.js:1130 +msgid "value" msgstr "" -#: js/turtledefs.js:143 -#: js/turtledefs.js:245 -msgid "my blocks" +#: js/blocks.js:4465 +msgid "Forever loop detected inside a note value block. Unexpected things may happen." msgstr "" -#: js/turtledefs.js:185 -#: js/turtledefs.js:281 -msgid "artwork" +#: js/blocks.js:4988 +msgid "There is no block selected." msgstr "" -#: js/turtledefs.js:185 -#: js/turtledefs.js:281 -msgid "logic" +#: js/blocks.js:5091 +#: js/blocks/MediaBlocks.js:888 +msgid "show" msgstr "" -#: js/turtledefs.js:185 -#: js/turtledefs.js:281 -msgid "music" +#: js/blocks.js:5094 +#: js/blocks/MediaBlocks.js:803 +#.TRANS: Avatar is the image used to determine the appearance of the mouse. +msgid "avatar" msgstr "" -#: js/turtledefs.js:187 -#: js/turtledefs.js:463 -msgid "Music Blocks is a collection of tools for exploring fundamental musical concepts in a fun way." +#: js/blocks.js:5097 +#: js/blocks/ToneBlocks.js:1010 +#: js/widgets/sampler.js:975 +#.TRANS: The sound sample that the user uploads. +msgid "sample" msgstr "" -#: js/turtledefs.js:436 -msgid "Welcome to Turtle Blocks" +#: js/lilypond.js:606 +msgid "brown rat" msgstr "" -#: js/turtledefs.js:438 -#: js/turtledefs.js:465 -#: js/turtledefs.js:774 -#: js/turtledefs.js:805 -msgid "The current version is" +#: js/lilypond.js:607 +msgid "mole" msgstr "" -#: js/turtledefs.js:446 -#: js/turtledefs.js:483 -msgid "Click the run button to run the project in fast mode." +#: js/lilypond.js:608 +msgid "chipmunk" msgstr "" -#: js/turtledefs.js:452 -msgid "Stop the turtle." +#: js/lilypond.js:609 +msgid "red squirrel" msgstr "" -#: js/turtledefs.js:454 -#: js/turtledefs.js:491 -msgid "You can also type Alt-S to stop." +#: js/lilypond.js:610 +msgid "guinea pig" +msgstr "" + +#: js/lilypond.js:611 +msgid "capybara" msgstr "" -#: js/turtledefs.js:462 -#: js/help.js:333 -msgid "Welcome to Music Blocks" +#: js/lilypond.js:612 +msgid "coypu" msgstr "" -#: js/turtledefs.js:472 -#: js/help.js:334 -msgid "Meet Mr. Mouse!" +#: js/lilypond.js:613 +msgid "black rat" msgstr "" -#: js/turtledefs.js:473 -msgid "Mr Mouse is our Music Blocks conductor." +#: js/lilypond.js:614 +msgid "grey squirrel" msgstr "" -#: js/turtledefs.js:475 -msgid "Mr Mouse encourages you to explore Music Blocks." +#: js/lilypond.js:615 +msgid "flying squirrel" msgstr "" -#: js/turtledefs.js:477 -msgid "Let us start our tour!" +#: js/lilypond.js:616 +msgid "bat" msgstr "" -#: js/turtledefs.js:489 -msgid "Stop the music (and the mice)." +#: js/lilypond.js:749 +#: js/lilypond.js:913 +#: js/lilypond.js:951 +#: js/blocks/ActionBlocks.js:1256 +#: js/blocks/ExtrasBlocks.js:556 +msgid "start drum" msgstr "" -#: js/turtledefs.js:499 -msgid "Record your project as video." +#: js/logo.js:61 +msgid "Not a valid pitch name" msgstr "" -#: js/turtledefs.js:505 -msgid "Toggle Fullscreen mode." +#: js/logo.js:507 +#: js/blocks/ProgramBlocks.js:258 +#: js/blocks/ProgramBlocks.js:427 +msgid "You must select a file." msgstr "" -#: js/turtledefs.js:511 -msgid "Initialize a new project." +#: js/logo.js:1696 +msgid "Playback is ready." msgstr "" -#: js/turtledefs.js:517 -msgid "You can also load projects from the file system." +#: js/macros.js:711 +#: js/utils/musicutils.js:1162 +#: js/utils/synthutils.js:202 +#.TRANS: animal sound effect +msgid "duck" msgstr "" -#: js/turtledefs.js:522 -#: js/StringHelper.js:46 -msgid "Delete" +#: js/notation.js:353 +msgid "Lilypond cannot process pickup of " msgstr "" -#: js/turtledefs.js:523 -msgid "To delete a block, just right-click on it, then you will be able to see the delete option" +#: js/palette.js:571 +msgid "grid" msgstr "" -#: js/turtledefs.js:528 -#: js/activity.js:2270 -#: js/LocalCard.js:31 -msgid "Copy" +#: js/palette.js:580 +msgid "effect" msgstr "" -#: js/turtledefs.js:529 -msgid "To copy a block, just right-click on it, then you will be able to see the copy option" +#: js/palette.js:586 +msgid "sargam" msgstr "" -#: js/turtledefs.js:535 -msgid "To extract a block, just right-click on it, then you will be able to see the extract option" +#: js/palette.js:601 +#: js/blocks/PitchBlocks.js:1209 +msgid "custom pitch" msgstr "" -#: js/turtledefs.js:542 -#: js/turtledefs.js:552 -#: js/turtledefs.js:573 -msgid "Save your project to a file." +#: js/palette.js:609 +msgid "accidental" msgstr "" -#: js/turtledefs.js:549 -#: js/turtledefs.js:570 -msgid "save" +#: js/palette.js:633 +#: js/blocks/PitchBlocks.js:405 +msgid "pitch converter" msgstr "" -#: js/turtledefs.js:556 -#: js/turtledefs.js:577 -msgid "Save graphics from your project to as SVG." +#: js/piemenus.js:200 +#: js/utils/musicutils.js:1187 +#: js/utils/musicutils.js:1207 +#: js/widgets/musickeyboard.js:2341 +#: js/widgets/phrasemaker.js:1908 +#: js/widgets/sampler.js:810 +#.TRANS: double sharp is a music term related to pitch +msgid "double sharp" msgstr "" -#: js/turtledefs.js:560 -#: js/turtledefs.js:581 -msgid "Save graphics from your project as PNG." +#: js/piemenus.js:201 +#: js/utils/musicutils.js:1185 +#: js/utils/musicutils.js:1208 +#: js/blocks/PitchBlocks.js:1539 +#: js/turtleactions/PitchActions.js:323 +#: js/widgets/musickeyboard.js:2342 +#: js/widgets/phrasemaker.js:1909 +#: js/widgets/sampler.js:811 +#.TRANS: sharp is a music term related to pitch +#.TRANS: sharp is a half-step up in pitch +msgid "sharp" msgstr "" -#: js/turtledefs.js:564 -#: js/turtledefs.js:597 -msgid "Save block artwork as an SVG file." +#: js/piemenus.js:202 +#: js/utils/musicutils.js:1183 +#: js/utils/musicutils.js:1209 +#: js/widgets/musickeyboard.js:2343 +#: js/widgets/phrasemaker.js:1910 +#: js/widgets/sampler.js:812 +#.TRANS: natural is a music term related to pitch +msgid "natural" msgstr "" -#: js/turtledefs.js:585 -msgid "Save audio from your project as WAV." +#: js/piemenus.js:203 +#: js/utils/musicutils.js:1181 +#: js/utils/musicutils.js:1210 +#: js/blocks/PitchBlocks.js:1498 +#: js/turtleactions/PitchActions.js:326 +#: js/widgets/musickeyboard.js:2344 +#: js/widgets/phrasemaker.js:1911 +#: js/widgets/sampler.js:813 +#.TRANS: flat is a music term related to pitch +#.TRANS: flat is a half-step down in pitch +msgid "flat" msgstr "" -#: js/turtledefs.js:589 -msgid "Save your project to as an ABC file." +#: js/piemenus.js:204 +#: js/utils/musicutils.js:1179 +#: js/utils/musicutils.js:1211 +#: js/widgets/musickeyboard.js:2345 +#: js/widgets/phrasemaker.js:1912 +#: js/widgets/sampler.js:814 +#.TRANS: double flat is a music term related to pitch +msgid "double flat" msgstr "" -#: js/turtledefs.js:593 -msgid "Save your project to as a Lilypond file." +#: js/piemenus.js:2864 +#: js/utils/musicutils.js:1006 +#: js/blocks/PitchBlocks.js:1385 +#.TRANS: unison is a music term related to intervals +#.TRANS: unison means the note is the same as the current note +msgid "unison" msgstr "" -#: js/turtledefs.js:604 -msgid "Load samples from server" +#: js/piemenus.js:3018 +#: js/piemenus.js:3091 +#: js/utils/musicutils.js:1014 +#: js/utils/musicutils.js:1189 +#: js/utils/musicutils.js:1326 +#.TRANS: major is a music term related to intervals and mode +msgid "major" msgstr "" -#: js/turtledefs.js:605 -msgid "This button opens a viewer for loading example projects." +#: js/piemenus.js:3018 +#: js/piemenus.js:3091 +#: js/utils/musicutils.js:1032 +#.TRANS: modal scale for music +msgid "ionian" msgstr "" -#: js/turtledefs.js:611 -msgid "Palette buttons" +#: js/piemenus.js:3020 +#: js/piemenus.js:3095 +#: js/utils/musicutils.js:1012 +#: js/utils/musicutils.js:1190 +#: js/utils/musicutils.js:1323 +#.TRANS: minor is a music term related to intervals and mode +msgid "minor" msgstr "" -#: js/turtledefs.js:612 -msgid "This toolbar contains the palette buttons including Rhythm Pitch Tone Action and more." +#: js/piemenus.js:3020 +#: js/piemenus.js:3095 +#: js/utils/musicutils.js:1042 +#.TRANS: modal scale for music +msgid "aeolian" msgstr "" -#: js/turtledefs.js:614 -msgid "Click to show the palettes of blocks and drag blocks from the palettes onto the canvas to use them." +#: js/piemenus.js:3410 +msgid "Duplicate" msgstr "" -#: js/turtledefs.js:620 -msgid "Cartesian/Polar" +#: js/piemenus.js:3412 +msgid "Move to trash" msgstr "" -#: js/turtledefs.js:621 -msgid "Show or hide a coordinate grid." +#: js/piemenus.js:3413 +#: js/widgets/timbre.js:968 +#: planet/js/StringHelper.js:69 +msgid "Close" msgstr "" -#: js/turtledefs.js:627 -msgid "Clear the screen and return the mice to their initial positions." +#: js/piemenus.js:3419 +msgid "Save stack" msgstr "" -#: js/turtledefs.js:633 -msgid "Collapse the graphics window." +#: js/piemenus.js:3449 +msgid "In order to copy a sample, you must reload the widget, import the sample again, and export it." msgstr "" -#: js/turtledefs.js:638 -#: js/activity.js:4256 -#: js/activity.js:4256 -msgid "Home" +#: js/piemenus.js:3812 +msgid "You have chosen key " msgstr "" -#: js/turtledefs.js:639 -msgid "Return all blocks to the center of the screen." +#: js/piemenus.js:3816 +msgid " for your pitch preview." msgstr "" -#: js/turtledefs.js:644 -msgid "Show/hide blocks" +#: js/turtle-singer.js:1363 +#.TRANS: partials are weighted components in a harmonic series +msgid "You must have at least one Partial block inside of a Weighted-partial block" msgstr "" -#: js/turtledefs.js:645 -msgid "Hide or show the blocks and the palettes." +#: js/turtle-singer.js:2077 +msgid "synth cannot play chords." msgstr "" -#: js/turtledefs.js:650 -msgid "Expand/collapse collapsable blocks" +#: js/utils/musicutils.js:505 +#: js/utils/musicutils.js:645 +#: js/widgets/pitchdrummatrix.js:228 +#: js/widgets/musickeyboard.js:2885 +msgid "rest" msgstr "" -#: js/turtledefs.js:651 -msgid "Expand or collapse start and action stacks." +#: js/utils/musicutils.js:689 +msgid "Perfect unison" msgstr "" -#: js/turtledefs.js:658 -#: js/activity.js:4265 -msgid "Decrease block size" +#: js/utils/musicutils.js:689 +msgid "Diminished second" msgstr "" -#: js/turtledefs.js:659 -msgid "Decrease the size of the blocks." +#: js/utils/musicutils.js:690 +msgid "Minor second" msgstr "" -#: js/turtledefs.js:664 -#: js/activity.js:4267 -msgid "Increase block size" +#: js/utils/musicutils.js:690 +msgid "Augmented unison" msgstr "" -#: js/turtledefs.js:665 -msgid "Increase the size of the blocks." +#: js/utils/musicutils.js:691 +msgid "Major second" msgstr "" -#: js/turtledefs.js:670 -msgid "Expand/collapse option toolbar" +#: js/utils/musicutils.js:691 +msgid "Diminished third" msgstr "" -#: js/turtledefs.js:671 -msgid "Click this button to expand or collapse the auxillary toolbar." +#: js/utils/musicutils.js:692 +msgid "Minor third" msgstr "" -#: js/turtledefs.js:676 -msgid "Run slow" +#: js/utils/musicutils.js:692 +msgid "Augmented second" msgstr "" -#: js/turtledefs.js:677 -msgid "Click to run the project in slow mode." +#: js/utils/musicutils.js:693 +msgid "Major third" msgstr "" -#: js/turtledefs.js:683 -msgid "Click to run the project step by step." +#: js/utils/musicutils.js:693 +msgid "Diminished fourth" msgstr "" -#: js/turtledefs.js:690 -msgid "Display statistics about your Music project." +#: js/utils/musicutils.js:694 +msgid "Perfect fourth" msgstr "" -#: js/turtledefs.js:697 -msgid "Delete a selected plugin." +#: js/utils/musicutils.js:694 +msgid "Augmented third" msgstr "" -#: js/turtledefs.js:704 -msgid "Enable scrolling" +#: js/utils/musicutils.js:695 +msgid "Diminished fifth" msgstr "" -#: js/turtledefs.js:705 -msgid "You can scroll the blocks on the canvas." +#: js/utils/musicutils.js:695 +msgid "Augmented fourth" msgstr "" -#: js/turtledefs.js:714 -msgid "Wrap Turtle" +#: js/utils/musicutils.js:696 +msgid "Perfect fifth" msgstr "" -#: js/turtledefs.js:715 -msgid "Turn Turtle wrapping On or Off." +#: js/utils/musicutils.js:696 +msgid "Diminished sixth" msgstr "" -#: js/turtledefs.js:725 -msgid "Restore blocks from the trash." +#: js/utils/musicutils.js:697 +msgid "Minor sixth" msgstr "" -#: js/turtledefs.js:732 -msgid "Switch mode" +#: js/utils/musicutils.js:697 +msgid "Augmented fifth" msgstr "" -#: js/turtledefs.js:733 -msgid "Switch between beginner and advance modes." +#: js/utils/musicutils.js:698 +msgid "Major sixth" msgstr "" -#: js/turtledefs.js:739 -msgid "Select your language preference." +#: js/utils/musicutils.js:698 +msgid "Diminished seventh" msgstr "" -#: js/turtledefs.js:745 -msgid "Keyboard shortcuts" +#: js/utils/musicutils.js:699 +msgid "Minor seventh" msgstr "" -#: js/turtledefs.js:746 -msgid "You can type d to create a do block and r to create a re block etc." +#: js/utils/musicutils.js:699 +msgid "Augmented sixth" msgstr "" -#: js/turtledefs.js:753 -msgid "Show these messages." +#: js/utils/musicutils.js:700 +msgid "Major seventh" msgstr "" -#: js/turtledefs.js:759 -#: js/turtledefs.js:790 -#: js/help.js:335 -msgid "Guide" +#: js/utils/musicutils.js:700 +msgid "Diminished octave" msgstr "" -#: js/turtledefs.js:760 -msgid "A detailed guide to Turtle Blocks is available." +#: js/utils/musicutils.js:701 +msgid "Perfect octave" msgstr "" -#: js/turtledefs.js:764 -msgid "Turtle Blocks Guide" +#: js/utils/musicutils.js:701 +msgid "Augmented seventh" msgstr "" -#: js/turtledefs.js:767 -#: js/turtledefs.js:798 -#: js/help.js:336 -msgid "About" +#: js/utils/musicutils.js:702 +msgid "Minor ninth" msgstr "" -#: js/turtledefs.js:768 -msgid "Turtle Blocks is an open source collection of tools for exploring musical concepts." +#: js/utils/musicutils.js:702 +msgid "Augmented octave" msgstr "" -#: js/turtledefs.js:770 -msgid "A full list of contributors can be found in the Turtle Blocks GitHub repository." +#: js/utils/musicutils.js:703 +msgid "Major ninth" msgstr "" -#: js/turtledefs.js:772 -msgid "Turtle Blocks is licensed under the AGPL." +#: js/utils/musicutils.js:703 +msgid "Diminished tenth" msgstr "" -#: js/turtledefs.js:780 -msgid "Turtle Blocks GitHub repository" +#: js/utils/musicutils.js:704 +msgid "Minor tenth" msgstr "" -#: js/turtledefs.js:783 -#: js/turtledefs.js:814 -#: js/help.js:337 -#: js/help.js:359 -msgid "Congratulations." +#: js/utils/musicutils.js:704 +msgid "Augmented ninth" msgstr "" -#: js/turtledefs.js:784 -msgid "You have finished the tour. Please enjoy Turtle Blocks!" +#: js/utils/musicutils.js:705 +msgid "Major tenth" msgstr "" -#: js/turtledefs.js:791 -msgid "A detailed guide to Music Blocks is available." +#: js/utils/musicutils.js:705 +msgid "Diminished eleventh" msgstr "" -#: js/turtledefs.js:795 -#: js/SaveInterface.js:76 -msgid "Music Blocks Guide" +#: js/utils/musicutils.js:706 +msgid "Perfect eleventh" msgstr "" -#: js/turtledefs.js:799 -msgid "Music Blocks is an open source collection of tools for exploring musical concepts." +#: js/utils/musicutils.js:706 +msgid "Augmented tenth" msgstr "" -#: js/turtledefs.js:801 -msgid "A full list of contributors can be found in the Music Blocks GitHub repository." +#: js/utils/musicutils.js:707 +msgid "Diminished twelfth" msgstr "" -#: js/turtledefs.js:803 -msgid "Music Blocks is licensed under the AGPL." +#: js/utils/musicutils.js:707 +msgid "Augmented eleventh" msgstr "" -#: js/turtledefs.js:811 -msgid "Music Blocks GitHub repository" +#: js/utils/musicutils.js:708 +msgid "Perfect twelfth" msgstr "" -#: js/turtledefs.js:815 -msgid "You have finished the tour. Please enjoy Music Blocks!" +#: js/utils/musicutils.js:708 +msgid "Diminished thirteenth" msgstr "" -#: js/activity.js:369 -msgid "Search for blocks" +#: js/utils/musicutils.js:709 +msgid "Minor thirteenth" msgstr "" -#: js/activity.js:1145 -msgid "Refresh your browser to change to advanced mode." +#: js/utils/musicutils.js:709 +msgid "Augmented fifth, plus an octave" msgstr "" -#: js/activity.js:1150 -msgid "Refresh your browser to change to beginner mode." +#: js/utils/musicutils.js:710 +msgid "Major thirteenth" msgstr "" -#: js/activity.js:1184 -msgid "Catching mice" +#: js/utils/musicutils.js:710 +msgid "Diminished seventh, plus an octave" msgstr "" -#: js/activity.js:1185 -msgid "Cleaning the instruments" +#: js/utils/musicutils.js:838 +#.TRANS: ordinal number. Please keep exactly one space between each number. +msgid "1st 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th" msgstr "" -#: js/activity.js:1186 -msgid "Testing key pieces" +#: js/utils/musicutils.js:1008 +#: js/utils/musicutils.js:1191 +#: js/utils/musicutils.js:1325 +#.TRANS: augmented is a music term related to intervals +msgid "augmented" msgstr "" -#: js/activity.js:1187 -msgid "Sight-reading" +#: js/utils/musicutils.js:1010 +#: js/utils/musicutils.js:1192 +#: js/utils/musicutils.js:1324 +#.TRANS: diminished is a music term related to intervals and mode +msgid "diminished" msgstr "" -#: js/activity.js:1188 -msgid "Combining math and music" +#: js/utils/musicutils.js:1016 +#: js/utils/musicutils.js:1322 +#: js/blocks/IntervalsBlocks.js:649 +#: js/turtleactions/IntervalsActions.js:120 +#: js/turtleactions/IntervalsActions.js:124 +#.TRANS: perfect is a music term related to intervals +msgid "perfect" +msgstr "" + +#: js/utils/musicutils.js:1018 +#.TRANS: twelve semi-tone scale for music +msgid "chromatic" msgstr "" -#: js/activity.js:1189 -msgid "Generating more blocks" +#: js/utils/musicutils.js:1019 +msgid "algerian" msgstr "" -#: js/activity.js:1190 -msgid "Do Re Mi Fa Sol La Ti Do" +#: js/utils/musicutils.js:1020 +msgid "spanish" msgstr "" -#: js/activity.js:1191 -msgid "Tuning string instruments" +#: js/utils/musicutils.js:1022 +#.TRANS: modal scale in music +msgid "octatonic" msgstr "" -#: js/activity.js:1192 -msgid "Pressing random keys" +#: js/utils/musicutils.js:1024 +#.TRANS: harmonic major scale in music +msgid "harmonic major" msgstr "" -#: js/activity.js:1351 -msgid "plugins will be removed upon restart." +#: js/utils/musicutils.js:1026 +#.TRANS: natural minor scales in music +msgid "natural minor" msgstr "" -#: js/activity.js:1360 -msgid "show Cartesian" +#: js/utils/musicutils.js:1028 +#.TRANS: harmonic minor scale in music +msgid "harmonic minor" msgstr "" -#: js/activity.js:1842 -msgid "output tools" +#: js/utils/musicutils.js:1030 +#.TRANS: melodic minor scale in music +msgid "melodic minor" msgstr "" -#: js/activity.js:1845 -msgid "custom note" +#: js/utils/musicutils.js:1034 +#.TRANS: modal scale for music +msgid "dorian" msgstr "" -#: js/activity.js:1848 -msgid "accidental name" +#: js/utils/musicutils.js:1036 +#.TRANS: modal scale for music +msgid "phrygian" msgstr "" -#: js/activity.js:1851 -#: js/PitchBlocks.js:855 -msgid "east indian solfege" +#: js/utils/musicutils.js:1038 +#.TRANS: modal scale for music +msgid "lydian" msgstr "" -#: js/activity.js:1854 -#: js/PitchBlocks.js:869 -msgid "note name" +#: js/utils/musicutils.js:1040 +#.TRANS: modal scale for music +msgid "mixolydian" msgstr "" -#: js/activity.js:1857 -#: js/IntervalsBlocks.js:94 -msgid "temperament name" +#: js/utils/musicutils.js:1044 +#.TRANS: modal scale for music +msgid "locrian" msgstr "" -#: js/activity.js:1863 -msgid "chord name" +#: js/utils/musicutils.js:1046 +#.TRANS: minor jazz scale for music +msgid "jazz minor" msgstr "" -#: js/activity.js:1869 -msgid "filter type" +#: js/utils/musicutils.js:1048 +#.TRANS: bebop scale for music +msgid "bebop" msgstr "" -#: js/activity.js:1872 -msgid "oscillator type" +#: js/utils/musicutils.js:1049 +msgid "arabic" msgstr "" -#: js/activity.js:1878 -#: js/DrumBlocks.js:32 -msgid "noise name" +#: js/utils/musicutils.js:1050 +msgid "byzantine" msgstr "" -#: js/activity.js:1881 -#: js/DrumBlocks.js:75 -msgid "drum name" +#: js/utils/musicutils.js:1052 +#.TRANS: musical scale for music by Verdi +msgid "enigmatic" msgstr "" -#: js/activity.js:1884 -#: js/DrumBlocks.js:119 -msgid "effects name" +#: js/utils/musicutils.js:1053 +msgid "ethiopian" msgstr "" -#: js/activity.js:1887 -msgid "wrap mode" +#: js/utils/musicutils.js:1055 +#.TRANS: Ethiopic scale for music +msgid "geez" msgstr "" -#: js/activity.js:1890 -msgid "load file" +#: js/utils/musicutils.js:1056 +msgid "hindu" msgstr "" -#: js/activity.js:2056 -msgid "This block is deprecated." +#: js/utils/musicutils.js:1057 +msgid "hungarian" msgstr "" -#: js/activity.js:2058 -msgid "Block cannot be found." +#: js/utils/musicutils.js:1059 +#.TRANS: minor Romanian scale for music +msgid "romanian minor" msgstr "" -#: js/activity.js:2266 -msgid "Saving block artwork" +#: js/utils/musicutils.js:1060 +msgid "spanish gypsy" msgstr "" -#: js/activity.js:2277 -msgid "Erase" +#: js/utils/musicutils.js:1062 +#.TRANS: musical scale for Mid-Eastern music +msgid "maqam" msgstr "" -#: js/activity.js:2301 -#: js/activity.js:2323 -msgid "Paste" +#: js/utils/musicutils.js:1064 +#.TRANS: minor blues scale for music +msgid "minor blues" msgstr "" -#: js/activity.js:2305 -msgid "Save block help" +#: js/utils/musicutils.js:1066 +#.TRANS: major blues scale for music +msgid "major blues" msgstr "" -#: js/activity.js:2390 -msgid "Jumping to the bottom of the page." +#: js/utils/musicutils.js:1067 +msgid "whole tone" msgstr "" -#: js/activity.js:2396 -msgid "Scrolling up." +#: js/utils/musicutils.js:1069 +#.TRANS: pentatonic is a general term that means "five note scale". This scale is typically known as "minor pentatonic" +msgid "minor pentatonic" msgstr "" -#: js/activity.js:2401 -msgid "Scrolling down." +#: js/utils/musicutils.js:1071 +#.TRANS: pentatonic is a general term that means "five note scale". This scale is typically known as "major pentatonic" +msgid "major pentatonic" msgstr "" -#: js/activity.js:2406 -msgid "Extracting block" +#: js/utils/musicutils.js:1072 +msgid "chinese" msgstr "" -#: js/activity.js:2414 -msgid "Moving block up." +#: js/utils/musicutils.js:1073 +msgid "egyptian" msgstr "" -#: js/activity.js:2435 -msgid "Moving block down." +#: js/utils/musicutils.js:1075 +#.TRANS: https://en.wikipedia.org/wiki/Hirajoshi_scale NOTE: There are three different versions of this scale +msgid "hirajoshi" msgstr "" -#: js/activity.js:2456 -msgid "Moving block left." +#: js/utils/musicutils.js:1076 +msgid "Japan" msgstr "" -#: js/activity.js:2473 -msgid "Moving block right." +#: js/utils/musicutils.js:1078 +#.TRANS: https://en.wikipedia.org/wiki/In_scale and https://en.wikipedia.org/wiki/Sakura_Sakura +msgid "in" msgstr "" -#: js/activity.js:2488 -msgid "Jump to home position." +#: js/utils/musicutils.js:1080 +#.TRANS: https://en.wikipedia.org/wiki/Miny%C5%8D_scale +msgid "minyo" msgstr "" -#: js/activity.js:2515 -msgid "Hide blocks" +#: js/utils/musicutils.js:1082 +#.TRANS: Italian mathematician +msgid "fibonacci" msgstr "" -#: js/activity.js:3389 -msgid "Click the run button to run the project." +#: js/utils/musicutils.js:1083 +#: js/utils/musicutils.js:1134 +#: js/utils/musicutils.js:1177 +#: js/utils/musicutils.js:1199 +#: js/utils/synthutils.js:134 +#: js/blocks/IntervalsBlocks.js:1124 +#: js/blocks/ToneBlocks.js:946 +#: js/blocks/VolumeBlocks.js:411 +#: js/blocks/WidgetBlocks.js:399 +#: js/blocks/WidgetBlocks.js:404 +#: js/turtleactions/VolumeActions.js:218 +#: js/widgets/modewidget.js:919 +#.TRANS: customize voice +msgid "custom" msgstr "" -#: js/activity.js:3456 -#: js/SaveInterface.js:131 -#: js/SaveInterface.js:204 -#: js/SaveInterface.js:262 -#: js/SaveInterface.js:389 -#: js/SaveInterface.js:417 -#: js/ProjectStorage.js:27 -#: js/GlobalPlanet.js:467 -#: js/GlobalPlanet.js:469 -#: js/GlobalPlanet.js:495 -#.TRANS: default project title when saving as Lilypond -msgid "My Project" +#: js/utils/musicutils.js:1085 +#: js/utils/musicutils.js:1531 +#: js/blocks/WidgetBlocks.js:176 +#.TRANS: highpass filter +msgid "highpass" msgstr "" -#: js/activity.js:4261 -msgid "Show/hide block" +#: js/utils/musicutils.js:1087 +#: js/utils/musicutils.js:1532 +#.TRANS: lowpass filter +msgid "lowpass" msgstr "" -#: js/activity.js:4263 -msgid "Expand/collapse blocks" +#: js/utils/musicutils.js:1089 +#: js/utils/musicutils.js:1533 +#.TRANS: bandpass filter +msgid "bandpass" msgstr "" -#: js/activity.js:4381 -msgid "Could not parse JSON input." +#: js/utils/musicutils.js:1091 +#: js/utils/musicutils.js:1534 +#.TRANS: high-shelf filter +msgid "highshelf" msgstr "" -#: js/activity.js:4684 -#: js/activity.js:4771 -#: js/activity.js:4821 -msgid "Cannot load project from the file. Please check the file type." +#: js/utils/musicutils.js:1093 +#: js/utils/musicutils.js:1535 +#.TRANS: low-shelf filter +msgid "lowshelf" msgstr "" -#: js/activity.js:5051 -msgid "Invalid parameters" +#: js/utils/musicutils.js:1095 +#: js/utils/musicutils.js:1536 +#.TRANS: notch-shelf filter +msgid "notch" msgstr "" -#: js/turtle-singer.js:1334 -#.TRANS: partials are weighted components in a harmonic series -msgid "You must have at least one Partial block inside of a Weighted-partial block" +#: js/utils/musicutils.js:1097 +#: js/utils/musicutils.js:1537 +#.TRANS: all-pass filter +msgid "allpass" msgstr "" -#: js/turtle-singer.js:2048 -msgid "synth cannot play chords." +#: js/utils/musicutils.js:1099 +#: js/utils/musicutils.js:1538 +#.TRANS: peaking filter +msgid "peaking" msgstr "" -#: js/lilypond.js:614 -msgid "brown rat" +#: js/utils/musicutils.js:1100 +#: js/utils/musicutils.js:1546 +#: js/utils/synthutils.js:126 +#: js/blocks/PitchBlocks.js:85 +#.TRANS: sine wave +msgid "sine" msgstr "" -#: js/lilypond.js:615 -msgid "mole" +#: js/utils/musicutils.js:1101 +#: js/utils/musicutils.js:1547 +#: js/utils/synthutils.js:128 +#: js/blocks/PitchBlocks.js:39 +#.TRANS: square wave +msgid "square" msgstr "" -#: js/lilypond.js:616 -msgid "chipmunk" +#: js/utils/musicutils.js:1102 +#: js/utils/musicutils.js:1548 +#: js/utils/synthutils.js:132 +#: js/blocks/PitchBlocks.js:62 +#: js/blocks/ToneBlocks.js:39 +#.TRANS: triangle wave +msgid "triangle" msgstr "" -#: js/lilypond.js:617 -msgid "red squirrel" +#: js/utils/musicutils.js:1103 +#: js/utils/musicutils.js:1549 +#: js/utils/synthutils.js:130 +#: js/blocks/PitchBlocks.js:108 +#.TRANS: sawtooth wave +msgid "sawtooth" msgstr "" -#: js/lilypond.js:618 -msgid "guinea pig" +#: js/utils/musicutils.js:1105 +#: js/utils/musicutils.js:1312 +#: js/blocks/PitchBlocks.js:931 +#: js/blocks/PitchBlocks.js:937 +#: js/turtleactions/PitchActions.js:469 +#.TRANS: even numbers +#.TRANS: invert based on even or odd number or musical scale +msgid "even" msgstr "" -#: js/lilypond.js:619 -msgid "capybara" +#: js/utils/musicutils.js:1107 +#: js/utils/musicutils.js:1313 +#: js/blocks/PitchBlocks.js:937 +#: js/turtleactions/PitchActions.js:471 +#.TRANS: odd numbers +msgid "odd" msgstr "" -#: js/lilypond.js:620 -msgid "coypu" +#: js/utils/musicutils.js:1108 +#: js/utils/musicutils.js:1314 +#: js/blocks/PitchBlocks.js:937 +#: js/turtleactions/PitchActions.js:473 +msgid "scalar" msgstr "" -#: js/lilypond.js:621 -msgid "black rat" +#: js/utils/musicutils.js:1109 +#: js/utils/synthutils.js:72 +#: js/blocks/VolumeBlocks.js:47 +#.TRANS: musical instrument +msgid "piano" msgstr "" -#: js/lilypond.js:622 -msgid "grey squirrel" +#: js/utils/musicutils.js:1110 +#: js/utils/synthutils.js:74 +#.TRANS: musical instrument +msgid "violin" msgstr "" -#: js/lilypond.js:623 -msgid "flying squirrel" +#: js/utils/musicutils.js:1111 +#: js/utils/synthutils.js:76 +#.TRANS: viola musical instrument +msgid "viola" msgstr "" -#: js/lilypond.js:624 -msgid "bat" +#: js/utils/musicutils.js:1112 +#: js/utils/synthutils.js:114 +#.TRANS: xylophone musical instrument +msgid "xylophone" msgstr "" -#: js/lilypond.js:757 -#: js/lilypond.js:921 -#: js/lilypond.js:959 -#: js/ActionBlocks.js:1256 -#: js/ExtrasBlocks.js:553 -msgid "start drum" +#: js/utils/musicutils.js:1113 +#: js/utils/synthutils.js:136 +#.TRANS: vibraphone musical instrument +msgid "vibraphone" msgstr "" -#: js/SaveInterface.js:59 -#: js/SaveInterface.js:61 -#: js/SaveInterface.js:93 -msgid "Music Blocks Project" +#: js/utils/musicutils.js:1114 +#: js/utils/synthutils.js:78 +#.TRANS: musical instrument +msgid "cello" msgstr "" -#: js/SaveInterface.js:63 -msgid "This project was created in Music Blocks" +#: js/utils/musicutils.js:1116 +#: js/utils/synthutils.js:82 +#.TRANS: viola musical instrument +msgid "double bass" msgstr "" -#: js/SaveInterface.js:67 -msgid "Music Blocks is a Free/Libre Software application." +#: js/utils/musicutils.js:1117 +#: js/utils/synthutils.js:84 +#: js/widgets/rhythmruler.js:2511 +#.TRANS: musical instrument +msgid "guitar" msgstr "" -#: js/SaveInterface.js:69 -msgid "The source code can be accessed at" +#: js/utils/musicutils.js:1118 +#: js/utils/synthutils.js:86 +#.TRANS: musical instrument +msgid "acoustic guitar" msgstr "" -#: js/SaveInterface.js:72 -msgid "For more information, please consult the" +#: js/utils/musicutils.js:1119 +#: js/utils/synthutils.js:88 +#.TRANS: musical instrument +msgid "flute" msgstr "" -#: js/SaveInterface.js:83 -msgid "Alternatively, open the file in Music Blocks using the Load project button." +#: js/utils/musicutils.js:1120 +#: js/utils/synthutils.js:90 +#.TRANS: musical instrument +msgid "clarinet" msgstr "" -#: js/SaveInterface.js:85 -msgid "Project Code" +#: js/utils/musicutils.js:1121 +#: js/utils/synthutils.js:92 +#.TRANS: musical instrument +msgid "saxophone" msgstr "" -#: js/SaveInterface.js:87 -msgid "This code stores data about the blocks in a project." +#: js/utils/musicutils.js:1122 +#: js/utils/synthutils.js:94 +#.TRANS: musical instrument +msgid "tuba" msgstr "" -#: js/SaveInterface.js:89 -msgid "Show" +#: js/utils/musicutils.js:1123 +#: js/utils/synthutils.js:96 +#.TRANS: musical instrument +msgid "trumpet" msgstr "" -#: js/SaveInterface.js:91 -msgid "Hide" +#: js/utils/musicutils.js:1124 +#: js/utils/synthutils.js:98 +#.TRANS: musical instrument +msgid "oboe" msgstr "" -#: js/SaveInterface.js:197 -#: js/SaveInterface.js:58 -msgid "No description provided" +#: js/utils/musicutils.js:1125 +#: js/utils/synthutils.js:100 +#.TRANS: musical instrument +msgid "trombone" msgstr "" -#: js/SaveInterface.js:332 -msgid "Your recording is in progress." +#: js/utils/musicutils.js:1126 +#: js/utils/synthutils.js:116 +#.TRANS: polytone synthesizer +msgid "electronic synth" msgstr "" -#: js/SaveInterface.js:401 -#.TRANS: File name prompt for save as Lilypond -msgid "File name" +#: js/utils/musicutils.js:1127 +#: js/utils/synthutils.js:118 +#.TRANS: simple monotone synthesizer +msgid "simple 1" msgstr "" -#: js/SaveInterface.js:403 -#: js/StringHelper.js:39 -#.TRANS: Project title prompt for save as Lilypond -msgid "Project title" +#: js/utils/musicutils.js:1128 +msgid "simple 2" msgstr "" -#: js/SaveInterface.js:405 -#.TRANS: Project title prompt for save as Lilypond -msgid "Project author" +#: js/utils/musicutils.js:1129 +msgid "simple 3" msgstr "" -#: js/SaveInterface.js:407 -#.TRANS: MIDI prompt for save as Lilypond -msgid "Include MIDI output?" +#: js/utils/musicutils.js:1130 +msgid "simple 4" msgstr "" -#: js/SaveInterface.js:409 -#.TRANS: Guitar prompt for save as Lilypond -msgid "Include guitar tablature output?" +#: js/utils/musicutils.js:1131 +#: js/utils/synthutils.js:58 +#: js/blocks/DrumBlocks.js:191 +#.TRANS: white noise synthesizer +msgid "white noise" msgstr "" -#: js/SaveInterface.js:411 -#.TRANS: Lilypond is a scripting language for generating sheet music -msgid "Save as Lilypond" +#: js/utils/musicutils.js:1132 +#: js/utils/synthutils.js:60 +#.TRANS: brown noise synthesizer +msgid "brown noise" msgstr "" -#: js/SaveInterface.js:426 -#: js/EnsembleBlocks.js:75 -#: js/EnsembleBlocks.js:154 -#: js/EnsembleBlocks.js:216 -#: js/EnsembleBlocks.js:302 -#: js/EnsembleBlocks.js:348 -#: js/EnsembleBlocks.js:389 -#: js/EnsembleBlocks.js:441 -#: js/EnsembleBlocks.js:490 -#: js/EnsembleBlocks.js:536 -#: js/EnsembleBlocks.js:583 -#: js/EnsembleBlocks.js:637 -#: js/EnsembleBlocks.js:753 -#: js/EnsembleBlocks.js:840 -#: js/EnsembleBlocks.js:899 -#: js/EnsembleBlocks.js:942 -#: js/EnsembleBlocks.js:1212 -#: js/EnsembleBlocks.js:1280 -#.TRANS: default project author when saving as Lilypond -msgid "Mr. Mouse" +#: js/utils/musicutils.js:1133 +#: js/utils/synthutils.js:62 +#.TRANS: pink noise synthesizer +msgid "pink noise" msgstr "" -#: js/SaveInterface.js:573 -msgid "The Lilypond code is copied to clipboard. You can paste it here: " +#: js/utils/musicutils.js:1135 +#: js/utils/synthutils.js:148 +#: js/widgets/rhythmruler.js:2057 +#: js/widgets/rhythmruler.js:2319 +#.TRANS: musical instrument +msgid "snare drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:50 -#: js/RhythmBlockPaletteBlocks.js:232 -#.TRANS: rhythm block -#.TRANS: translate "rhythm1" as rhythm -msgid "rhythm1" +#: js/utils/musicutils.js:1136 +#: js/utils/synthutils.js:150 +#.TRANS: musical instrument +msgid "kick drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:70 -#: js/RhythmBlockPaletteBlocks.js:251 -#: js/RhythmBlockPaletteBlocks.js:484 -#: js/RhythmBlockPaletteBlocks.js:553 -#: js/RhythmBlockPaletteBlocks.js:874 -msgid "number of notes" +#: js/utils/musicutils.js:1137 +#: js/utils/synthutils.js:152 +#.TRANS: musical instrument +msgid "tom tom" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:126 -msgid "polyphonic rhythm" +#: js/utils/musicutils.js:1138 +#: js/utils/synthutils.js:154 +#.TRANS: musical instrument +msgid "floor tom" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:218 -msgid "The Rhythm block is used to generate rhythm patterns." +#: js/utils/musicutils.js:1139 +#: js/utils/synthutils.js:156 +#.TRANS: musical instrument +msgid "bass drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:279 -msgid "1/64 note" +#: js/utils/musicutils.js:1140 +#: js/utils/synthutils.js:158 +#.TRANS: a drum made from an inverted cup +msgid "cup drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:303 -msgid "1/32 note" +#: js/utils/musicutils.js:1141 +#: js/utils/synthutils.js:160 +#.TRANS: musical instrument +msgid "darbuka drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:331 -msgid "1/16 note" +#: js/utils/musicutils.js:1142 +#: js/utils/synthutils.js:164 +#.TRANS: musical instrument +msgid "hi hat" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:359 -msgid "eighth note" +#: js/utils/musicutils.js:1143 +#: js/utils/synthutils.js:166 +#.TRANS: a small metal bell +msgid "ride bell" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:387 -msgid "quarter note" +#: js/utils/musicutils.js:1144 +#: js/utils/synthutils.js:168 +#.TRANS: musical instrument +msgid "cow bell" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:415 -msgid "half note" +#: js/utils/musicutils.js:1145 +msgid "japanese drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:443 -msgid "whole note" +#: js/utils/musicutils.js:1146 +#: js/utils/synthutils.js:174 +#.TRANS: musical instrument +msgid "japanese bell" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:481 -#: js/RhythmBlockPaletteBlocks.js:550 -#: js/RhythmBlockPaletteBlocks.js:601 -#.TRANS: A tuplet is a note value divided into irregular time values. -msgid "tuplet" +#: js/utils/musicutils.js:1147 +#: js/utils/synthutils.js:170 +#.TRANS: musical instrument +msgid "triangle bell" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:767 -msgid "septuplet" +#: js/utils/musicutils.js:1148 +#: js/utils/synthutils.js:172 +#.TRANS: musical instrument +msgid "finger cymbals" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:795 -msgid "quintuplet" +#: js/utils/musicutils.js:1149 +#: js/utils/synthutils.js:176 +#.TRANS: a musically tuned set of bells +msgid "chime" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:823 -msgid "triplet" +#: js/utils/musicutils.js:1150 +#: js/utils/synthutils.js:178 +#.TRANS: a musical instrument +msgid "gong" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:850 -msgid "simple tuplet" +#: js/utils/musicutils.js:1151 +#: js/utils/synthutils.js:180 +#.TRANS: sound effect +msgid "clang" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:860 -msgid "Tuplets are a collection of notes that get scaled to a specific duration." +#: js/utils/musicutils.js:1152 +#: js/utils/synthutils.js:182 +#.TRANS: sound effect +msgid "crash" msgstr "" -#: js/WidgetBlocks.js:71 -#.TRANS: sound envelope (ADSR) -msgid "envelope" +#: js/utils/musicutils.js:1153 +#: js/utils/synthutils.js:184 +#.TRANS: sound effect +msgid "bottle" msgstr "" -#: js/WidgetBlocks.js:79 -#.TRANS: Attack time is the time taken for initial run-up of level from nil to peak, beginning when the key is first pressed. -msgid "attack" +#: js/utils/musicutils.js:1154 +#: js/utils/synthutils.js:186 +#.TRANS: sound effect +msgid "clap" msgstr "" -#: js/WidgetBlocks.js:81 -#.TRANS: Decay time is the time taken for the subsequent run down from the attack level to the designated sustain level. -msgid "decay" +#: js/utils/musicutils.js:1155 +#: js/utils/synthutils.js:188 +#.TRANS: sound effect +msgid "slap" msgstr "" -#: js/WidgetBlocks.js:83 -#.TRANS: Sustain level is the level during the main sequence of the sound's duration, until the key is released. -msgid "sustain" +#: js/utils/musicutils.js:1156 +#: js/utils/synthutils.js:190 +#.TRANS: sound effect +msgid "splash" msgstr "" -#: js/WidgetBlocks.js:85 -#.TRANS: Release time is the time taken for the level to decay from the sustain level to zero after the key is released. -msgid "release" +#: js/utils/musicutils.js:1157 +#: js/utils/synthutils.js:192 +#.TRANS: sound effect +msgid "bubbles" msgstr "" -#: js/WidgetBlocks.js:96 -msgid "Attack value should be from 0 to 100." +#: js/utils/musicutils.js:1158 +#: js/utils/synthutils.js:194 +#.TRANS: sound effect +msgid "raindrop" msgstr "" -#: js/WidgetBlocks.js:99 -msgid "Decay value should be from 0 to 100." +#: js/utils/musicutils.js:1159 +#: js/utils/synthutils.js:196 +#.TRANS: animal sound effect +msgid "cat" msgstr "" -#: js/WidgetBlocks.js:102 -msgid "Sustain value should be from 0 to 100." +#: js/utils/musicutils.js:1160 +#: js/utils/synthutils.js:198 +#.TRANS: animal sound effect +msgid "cricket" msgstr "" -#: js/WidgetBlocks.js:105 -msgid "Release value should be from 0-100." +#: js/utils/musicutils.js:1161 +#: js/utils/synthutils.js:200 +#.TRANS: animal sound effect +msgid "dog" msgstr "" -#: js/WidgetBlocks.js:121 -msgid "You are adding multiple envelope blocks." +#: js/utils/musicutils.js:1163 +#: js/utils/synthutils.js:102 +#.TRANS: musical instrument +msgid "banjo" msgstr "" -#: js/WidgetBlocks.js:144 -#.TRANS: a filter removes some unwanted components from a signal -msgid "filter" +#: js/utils/musicutils.js:1164 +#: js/utils/synthutils.js:104 +#.TRANS: musical instrument +msgid "koto" msgstr "" -#: js/WidgetBlocks.js:149 -#: js/musicutils.js:706 -#: js/musicutils.js:1105 -#.TRANS: highpass filter -msgid "highpass" +#: js/utils/musicutils.js:1165 +#: js/utils/synthutils.js:106 +#.TRANS: musical instrument +msgid "dulcimer" msgstr "" -#: js/WidgetBlocks.js:152 -#: js/ToneBlocks.js:42 -#: js/timbre.js:1558 -#: js/timbre.js:1808 -#.TRANS: type of filter, e.g., lowpass, highpass, etc. -#.TRANS: there are different types (sine, triangle, square...) of oscillators. -msgid "type" +#: js/utils/musicutils.js:1166 +#: js/utils/synthutils.js:108 +#.TRANS: musical instrument +msgid "electric guitar" msgstr "" -#: js/WidgetBlocks.js:154 -#: js/timbre.js:1818 -#.TRANS: rolloff is the steepness of a change in frequency. -msgid "rolloff" +#: js/utils/musicutils.js:1167 +#: js/utils/synthutils.js:110 +#.TRANS: musical instrument +msgid "bassoon" msgstr "" -#: js/WidgetBlocks.js:155 -#: js/MediaBlocks.js:692 -#: js/temperament.js:382 -#: js/temperament.js:417 -#: js/temperament.js:477 -#: js/temperament.js:485 -#: js/temperament.js:1348 -#: js/timbre.js:1842 -msgid "frequency" +#: js/utils/musicutils.js:1168 +#: js/utils/synthutils.js:112 +#.TRANS: musical instrument +msgid "celeste" msgstr "" -#: js/WidgetBlocks.js:179 -#.TRANS: rolloff is the steepness of a change in frequency. -msgid "Rolloff value should be either -12, -24, -48, or -96 decibels/octave." +#: js/utils/musicutils.js:1170 +#: js/widgets/temperament.js:787 +#.TRANS: musical temperament +msgid "equal" msgstr "" -#: js/WidgetBlocks.js:211 -msgid "The Temperament tool is used to define custom tuning." +#: js/utils/musicutils.js:1172 +#.TRANS: musical temperament +msgid "Pythagorean" msgstr "" -#: js/WidgetBlocks.js:277 -#: js/sampler.js:329 -msgid "Upload a sample and adjust its pitch center." +#: js/utils/musicutils.js:1174 +#.TRANS: musical temperament +msgid "just intonation" msgstr "" -#: js/WidgetBlocks.js:284 -#.TRANS: the speed at music is should be played. -msgid "sampler" +#: js/utils/musicutils.js:1176 +#.TRANS: musical temperament +msgid "meantone" msgstr "" -#: js/WidgetBlocks.js:329 -#: js/WidgetBlocks.js:334 -#: js/IntervalsBlocks.js:928 -#: js/VolumeBlocks.js:411 -#: js/ToneBlocks.js:946 -#: js/VolumeActions.js:218 -#: js/musicutils.js:704 -#: js/musicutils.js:755 -#: js/musicutils.js:798 -#: js/musicutils.js:820 -#: js/musicutils.js:1136 -#: js/synthutils.js:118 -#: js/modewidget.js:919 -#.TRANS: customize voice -msgid "custom" +#: js/utils/musicutils.js:1193 +msgid "major 7th" msgstr "" -#: js/WidgetBlocks.js:432 -msgid "The Meter block opens a tool to select strong beats for the meter." +#: js/utils/musicutils.js:1194 +msgid "minor 7th" msgstr "" -#: js/WidgetBlocks.js:473 -msgid "The oscilloscope block opens a tool to visualize waveforms." +#: js/utils/musicutils.js:1195 +msgid "dominant 7th" msgstr "" -#: js/WidgetBlocks.js:478 -msgid "oscilloscope" +#: js/utils/musicutils.js:1196 +msgid "minor-major 7th" msgstr "" -#: js/WidgetBlocks.js:530 -msgid "The Custom mode block opens a tool to explore musical mode (the spacing of the notes in a scale)." +#: js/utils/musicutils.js:1197 +msgid "fully-diminished 7th" msgstr "" -#: js/WidgetBlocks.js:536 -#.TRANS: musical mode is the pattern of half-steps in an octave, e.g., Major or Minor modes -msgid "custom mode" +#: js/utils/musicutils.js:1198 +msgid "half-diminished 7th" msgstr "" -#: js/WidgetBlocks.js:570 -msgid "The Tempo block opens a metronome to visualize the beat." +#: js/utils/musicutils.js:1557 +#: js/utils/musicutils.js:1569 +msgid "Equal (12EDO)" msgstr "" -#: js/WidgetBlocks.js:617 -msgid "The Arpeggio Widget is used to compose chord sequences." +#: js/utils/musicutils.js:1558 +#: js/utils/musicutils.js:1570 +msgid "5-limit Just Intonation" msgstr "" -#: js/WidgetBlocks.js:623 -#: js/IntervalsBlocks.js:683 -msgid "arpeggio" +#: js/utils/musicutils.js:1559 +#: js/utils/musicutils.js:1571 +msgid "Pythagorean (3-limit JI)" msgstr "" -#: js/WidgetBlocks.js:677 -msgid "The Pitch drum matrix is used to map pitches to drum sounds." +#: js/utils/musicutils.js:1560 +#: js/utils/musicutils.js:1561 +#: js/utils/musicutils.js:1572 +#: js/utils/musicutils.js:1573 +msgid "Meantone" msgstr "" -#: js/WidgetBlocks.js:682 -#.TRANS: makes a mapping between pitches and drum sounds -msgid "pitch-drum mapper" +#: js/utils/musicutils.js:1574 +msgid "Custom" msgstr "" -#: js/WidgetBlocks.js:724 -msgid "You must have at least one pitch block and one drum block in the matrix." +#: js/utils/musicutils.js:5387 +#: js/utils/musicutils.js:5430 +msgid "current" msgstr "" -#: js/WidgetBlocks.js:746 -msgid "The Pitch slider tool to is used to generate pitches at selected frequencies." +#: js/utils/musicutils.js:5390 +#: js/utils/musicutils.js:5421 +msgid "next" msgstr "" -#: js/WidgetBlocks.js:751 -#.TRANS: widget to generate pitches using a slider -msgid "pitch slider" +#: js/utils/musicutils.js:5393 +#: js/utils/musicutils.js:5426 +msgid "previous" msgstr "" -#: js/WidgetBlocks.js:788 -msgid "chromatic keyboard" +#: js/utils/synthutils.js:120 +#.TRANS: simple monotone synthesizer +msgid "simple-2" msgstr "" -#: js/WidgetBlocks.js:815 -#: js/WidgetBlocks.js:874 -#.TRANS: widget to generate pitches using a slider -msgid "music keyboard" +#: js/utils/synthutils.js:122 +#.TRANS: simple monotone synthesizer +msgid "simple-3" msgstr "" -#: js/WidgetBlocks.js:859 -#: js/WidgetBlocks.js:866 -msgid "The Music keyboard block opens a piano keyboard that can be used to create notes." +#: js/utils/synthutils.js:124 +#.TRANS: simple monotone synthesizer +msgid "simple-4" msgstr "" -#: js/WidgetBlocks.js:910 -msgid "The Pitch staircase tool to is used to generate pitches from a given ratio." +#: js/utils/synthutils.js:162 +#.TRANS: musical instrument +msgid "taiko" msgstr "" -#: js/WidgetBlocks.js:917 -#.TRANS: generate a progressive sequence of pitches -msgid "pitch staircase" +#: js/blocks/ActionBlocks.js:58 +msgid "The Return block will return a value from an action." msgstr "" -#: js/WidgetBlocks.js:982 -msgid "The Rhythm Maker block opens a tool to create drum machines." +#: js/blocks/ActionBlocks.js:75 +msgid "return" msgstr "" -#: js/WidgetBlocks.js:1036 -msgid "G major scale" +#: js/blocks/ActionBlocks.js:128 +msgid "The Return to URL block will return a value to a webpage." msgstr "" -#: js/WidgetBlocks.js:1064 -msgid "C major scale" +#: js/blocks/ActionBlocks.js:145 +msgid "return to URL" msgstr "" -#: js/WidgetBlocks.js:1097 -msgid "The Phrase Maker block opens a tool to create musical phrases." +#: js/blocks/ActionBlocks.js:233 +#: js/blocks/ActionBlocks.js:290 +#: js/blocks/ActionBlocks.js:501 +#: js/blocks/ActionBlocks.js:688 +msgid "The Calculate block returns a value calculated by an action." msgstr "" -#: js/WidgetBlocks.js:1104 -#.TRANS: assigns pitch to a sequence of beats to generate a melody -msgid "phrase maker" +#: js/blocks/ActionBlocks.js:251 +#: js/blocks/ActionBlocks.js:517 +#: js/blocks/ActionBlocks.js:707 +msgid "calculate" msgstr "" -#: js/WidgetBlocks.js:1168 -msgid "You must have at least one pitch block and one rhythm block in the matrix." +#: js/blocks/ActionBlocks.js:376 +#: js/blocks/ActionBlocks.js:593 +#: js/blocks/ActionBlocks.js:942 +#: js/blocks/ActionBlocks.js:1389 +#.TRANS: do is the do something or take an action. +msgid "The Do block is used to initiate an action." msgstr "" -#: js/WidgetBlocks.js:1220 -msgid "The Status block opens a tool for inspecting the status of Music Blocks as it is running." +#: js/blocks/ActionBlocks.js:390 +#: js/blocks/ActionBlocks.js:610 +#: js/blocks/ActionBlocks.js:959 +#: js/blocks/ActionBlocks.js:1048 +#: js/blocks/MeterBlocks.js:769 +msgid "do1" msgstr "" -#: js/IntervalsBlocks.js:45 -msgid "set temperament" +#: js/blocks/ActionBlocks.js:390 +#: js/blocks/ActionBlocks.js:610 +#: js/blocks/ActionBlocks.js:959 +#: js/blocks/ActionBlocks.js:1048 +#: js/blocks/FlowBlocks.js:742 +#: js/blocks/FlowBlocks.js:822 +#: js/blocks/MeterBlocks.js:769 +msgid "do" msgstr "" -#: js/IntervalsBlocks.js:63 -#: js/MediaBlocks.js:746 -#: js/PitchBlocks.js:657 -#: js/PitchBlocks.js:933 -#: js/PitchBlocks.js:972 -#: js/PitchBlocks.js:1005 -#: js/PitchBlocks.js:1166 -#: js/PitchBlocks.js:1679 -#: js/PitchBlocks.js:1720 -#: js/PitchBlocks.js:1827 -#: js/ToneBlocks.js:1025 -#.TRANS: adjusts the shift up or down by one octave (twelve half-steps in the interval between two notes, one having twice or half the frequency in Hz of the other.) -msgid "octave" +#: js/blocks/ActionBlocks.js:791 +#: js/blocks/ActionBlocks.js:865 +msgid "The Arg block contains the value of an argument passed to an action." msgstr "" -#: js/IntervalsBlocks.js:99 -msgid "The Temperament name block is used to select a tuning method." +#: js/blocks/ActionBlocks.js:806 +#: js/blocks/ActionBlocks.js:878 +msgid "arg" msgstr "" -#: js/IntervalsBlocks.js:161 -msgid "doubly" +#: js/blocks/ActionBlocks.js:836 +#: js/blocks/ActionBlocks.js:900 +#: js/blocks/ActionBlocks.js:908 +msgid "Invalid argument" msgstr "" -#: js/IntervalsBlocks.js:166 -msgid "The Doubly block will double the size of an interval." +#: js/blocks/ActionBlocks.js:944 +msgid "In the example, it is used with the One of block to choose a random phase." msgstr "" -#: js/IntervalsBlocks.js:262 -msgid "interval number" +#: js/blocks/ActionBlocks.js:1019 +#: js/blocks/ActionBlocks.js:1026 +msgid "The Listen block is used to listen for an event such as a mouse click." msgstr "" -#: js/IntervalsBlocks.js:330 -#.TRANS: measure the distance between two pitches in semi-tones -msgid "semi-tone interval measure" +#: js/blocks/ActionBlocks.js:1028 +msgid "When the event happens, an action is taken." msgstr "" -#: js/IntervalsBlocks.js:397 -#: js/IntervalsBlocks.js:513 -msgid "You must use two pitch blocks when measuring an interval." +#: js/blocks/ActionBlocks.js:1045 +msgid "on" msgstr "" -#: js/IntervalsBlocks.js:439 -msgid "The Scalar interval block measures the distance between two notes in the current key and mode." +#: js/blocks/ActionBlocks.js:1048 +#: js/blocks/ActionBlocks.js:1049 +#: js/blocks/ActionBlocks.js:1153 +msgid "event" msgstr "" -#: js/IntervalsBlocks.js:445 -#.TRANS: measure the distance between two pitches in steps of musical scale -msgid "scalar interval measure" +#: js/blocks/ActionBlocks.js:1133 +msgid "The Broadcast block is used to trigger an event." msgstr "" -#: js/IntervalsBlocks.js:592 -#: js/musicutils.js:637 -#: js/musicutils.js:908 -#.TRANS: perfect is a music term related to intervals -msgid "perfect" +#: js/blocks/ActionBlocks.js:1151 +msgid "broadcast" msgstr "" -#: js/IntervalsBlocks.js:621 -msgid "In the figure, we add sol# to sol." +#: js/blocks/ActionBlocks.js:1208 +msgid "Each Start block is a separate voice." msgstr "" -#: js/IntervalsBlocks.js:627 -#: js/OrnamentBlocks.js:220 -#.TRANS: calculate a relative step between notes based on semi-tones -msgid "semi-tone interval" +#: js/blocks/ActionBlocks.js:1304 +msgid "It is often used for storing a phrase of music that is repeated." msgstr "" -#: js/IntervalsBlocks.js:676 -msgid "The output of the example is: do, mi, sol, sol, ti, mi" +#: js/blocks/ActionBlocks.js:1495 +msgid "define temperament" msgstr "" -#: js/IntervalsBlocks.js:735 -msgid "The Chord block calculates common chords." +#: js/blocks/BooleanBlocks.js:44 +msgid "The Not block is the logical not operator." msgstr "" -#: js/IntervalsBlocks.js:737 -msgid "In the figure, we generate a C-major chord." +#: js/blocks/BooleanBlocks.js:62 +msgid "not" msgstr "" -#: js/IntervalsBlocks.js:742 -msgid "chord" +#: js/blocks/BooleanBlocks.js:134 +msgid "The And block is the logical and operator." msgstr "" -#: js/IntervalsBlocks.js:794 -msgid "The Ratio Interval block calculates an interval based on a ratio." +#: js/blocks/BooleanBlocks.js:152 +msgid "and" msgstr "" -#: js/IntervalsBlocks.js:799 -msgid "ratio interval" +#: js/blocks/BooleanBlocks.js:218 +msgid "The Or block is the logical or operator." msgstr "" -#: js/IntervalsBlocks.js:868 -msgid "In the figure, we add la to sol." +#: js/blocks/BooleanBlocks.js:236 +msgid "or" msgstr "" -#: js/IntervalsBlocks.js:924 -#.TRANS: define a custom mode -msgid "define mode" +#: js/blocks/BooleanBlocks.js:302 +msgid "The XOR block is the logical XOR operator." msgstr "" -#: js/IntervalsBlocks.js:977 -msgid "movable Do" +#: js/blocks/BooleanBlocks.js:320 +msgid "xor" msgstr "" -#: js/IntervalsBlocks.js:1028 -#.TRANS: mode length is the number of notes in the mode, e.g., 7 for major and minor scales; 12 for chromatic scales -msgid "mode length" +#: js/blocks/BooleanBlocks.js:808 +msgid "The Equal block returns True if the two numbers are equal." msgstr "" -#: js/IntervalsBlocks.js:1037 -msgid "The Mode length block is the number of notes in the current scale." +#: js/blocks/BooleanBlocks.js:909 +msgid "The Not-equal-to block returns True if the two numbers are not equal to each other." msgstr "" -#: js/IntervalsBlocks.js:1039 -msgid "Most Western scales have 7 notes." +#: js/blocks/BooleanBlocks.js:1008 +msgid "The Boolean block is used to specify true or false." msgstr "" -#: js/IntervalsBlocks.js:1088 -#.TRANS: the mode in music is 'major', 'minor', etc. -msgid "current mode" +#: js/blocks/BoxesBlocks.js:53 +#: js/blocks/BoxesBlocks.js:59 +msgid "The Add-to block is used to add to the value stored in a box." msgstr "" -#: js/IntervalsBlocks.js:1141 -#.TRANS: the key is a group of pitches with which a music composition is created -msgid "current key" +#: js/blocks/BoxesBlocks.js:61 +msgid "It can also be used with other blocks such as Color and Pen size." msgstr "" -#: js/IntervalsBlocks.js:1193 -#: js/IntervalsBlocks.js:1238 -#.TRANS: set the key and mode, e.g. C Major -msgid "set key" +#: js/blocks/BoxesBlocks.js:73 +msgid "add" msgstr "" -#: js/IntervalsBlocks.js:1247 -#: js/IntervalsBlocks.js:1253 -msgid "The Set key block is used to set the key and mode," +#: js/blocks/BoxesBlocks.js:75 +#: js/widgets/temperament.js:857 +msgid "to" msgstr "" -#: js/IntervalsBlocks.js:1253 -msgid "eg C Major" +#: js/blocks/BoxesBlocks.js:75 +#: js/blocks/BoxesBlocks.js:595 +#: js/blocks/HeapBlocks.js:544 +msgid "value1" msgstr "" -#: js/IntervalsBlocks.js:1266 -#: js/DictBlocks.js:215 -#: js/DictBlocks.js:216 -#: js/DictBlocks.js:289 -#: js/DictBlocks.js:290 -#: js/DictBlocks.js:357 -#: js/DictBlocks.js:430 -#: js/DictBlocks.js:431 -#.TRANS: key, e.g., C in C Major -msgid "key" +#: js/blocks/BoxesBlocks.js:118 +msgid "Block does not support incrementing." msgstr "" -#: js/ActionBlocks.js:58 -msgid "The Return block will return a value from an action." +#: js/blocks/BoxesBlocks.js:152 +msgid "The Add-1-to block adds one to the value stored in a box." msgstr "" -#: js/ActionBlocks.js:75 -msgid "return" +#: js/blocks/BoxesBlocks.js:163 +msgid "add 1 to" msgstr "" -#: js/ActionBlocks.js:128 -msgid "The Return to URL block will return a value to a webpage." +#: js/blocks/BoxesBlocks.js:211 +msgid "The Subtract-1-from block subtracts one from the value stored in a box." msgstr "" -#: js/ActionBlocks.js:145 -msgid "return to URL" +#: js/blocks/BoxesBlocks.js:222 +msgid "subtract 1 from" msgstr "" -#: js/ActionBlocks.js:233 -#: js/ActionBlocks.js:290 -#: js/ActionBlocks.js:501 -#: js/ActionBlocks.js:688 -msgid "The Calculate block returns a value calculated by an action." +#: js/blocks/BoxesBlocks.js:270 +#: js/blocks/BoxesBlocks.js:387 +msgid "The Box block returns the value stored in a box." msgstr "" -#: js/ActionBlocks.js:251 -#: js/ActionBlocks.js:517 -#: js/ActionBlocks.js:707 -msgid "calculate" +#: js/blocks/BoxesBlocks.js:500 +#: js/blocks/BoxesBlocks.js:576 +msgid "The Store in block will store a value in a box." msgstr "" -#: js/ActionBlocks.js:376 -#: js/ActionBlocks.js:593 -#: js/ActionBlocks.js:942 -#: js/ActionBlocks.js:1389 -#.TRANS: do is the do something or take an action. -msgid "The Do block is used to initiate an action." +#: js/blocks/BoxesBlocks.js:595 +#: js/blocks/EnsembleBlocks.js:391 +#: js/blocks/EnsembleBlocks.js:402 +msgid "name1" msgstr "" -#: js/ActionBlocks.js:390 -#: js/ActionBlocks.js:610 -#: js/ActionBlocks.js:959 -#: js/ActionBlocks.js:1048 -#: js/MeterBlocks.js:769 -msgid "do1" +#: js/blocks/BoxesBlocks.js:652 +msgid "The Box2 block returns the value stored in Box2." msgstr "" -#: js/ActionBlocks.js:390 -#: js/ActionBlocks.js:610 -#: js/ActionBlocks.js:959 -#: js/ActionBlocks.js:1048 -#: js/FlowBlocks.js:742 -#: js/FlowBlocks.js:822 -#: js/MeterBlocks.js:769 -msgid "do" +#: js/blocks/BoxesBlocks.js:703 +msgid "The Store in Box2 block is used to store a value in Box2." msgstr "" -#: js/ActionBlocks.js:791 -#: js/ActionBlocks.js:865 -msgid "The Arg block contains the value of an argument passed to an action." +#: js/blocks/BoxesBlocks.js:715 +msgid "store in box2" msgstr "" -#: js/ActionBlocks.js:806 -#: js/ActionBlocks.js:878 -msgid "arg" +#: js/blocks/BoxesBlocks.js:761 +msgid "The Box1 block returns the value stored in Box1." msgstr "" -#: js/ActionBlocks.js:836 -#: js/ActionBlocks.js:900 -#: js/ActionBlocks.js:908 -msgid "Invalid argument" +#: js/blocks/BoxesBlocks.js:812 +msgid "The Store in Box1 block is used to store a value in Box1." msgstr "" -#: js/ActionBlocks.js:944 -msgid "In the example, it is used with the One of block to choose a random phase." +#: js/blocks/BoxesBlocks.js:826 +msgid "store in box1" msgstr "" -#: js/ActionBlocks.js:1019 -#: js/ActionBlocks.js:1026 -msgid "The Listen block is used to listen for an event such as a mouse click." +#: js/blocks/DictBlocks.js:77 +msgid "show dictionary" msgstr "" -#: js/ActionBlocks.js:1028 -msgid "When the event happens, an action is taken." +#: js/blocks/DictBlocks.js:80 +#: js/blocks/DictBlocks.js:145 +#: js/blocks/DictBlocks.js:216 +#: js/blocks/DictBlocks.js:290 +#: js/blocks/ProgramBlocks.js:396 +#: js/blocks/ProgramBlocks.js:501 +#: js/blocks/ProgramBlocks.js:664 +msgid "My Dictionary" msgstr "" -#: js/ActionBlocks.js:1045 -msgid "on" +#: js/blocks/DictBlocks.js:129 +msgid "The Dictionary block returns a dictionary." msgstr "" -#: js/ActionBlocks.js:1048 -#: js/ActionBlocks.js:1049 -#: js/ActionBlocks.js:1153 -msgid "event" +#: js/blocks/DictBlocks.js:197 +#: js/blocks/DictBlocks.js:339 +msgid "The Get-dict block returns a value in the dictionary for a specified key." msgstr "" -#: js/ActionBlocks.js:1133 -msgid "The Broadcast block is used to trigger an event." +#: js/blocks/DictBlocks.js:212 +#: js/blocks/DictBlocks.js:354 +#.TRANS: retrieve a value from the dictionary with a given key +msgid "get value" msgstr "" -#: js/ActionBlocks.js:1151 -msgid "broadcast" +#: js/blocks/DictBlocks.js:215 +#: js/blocks/DictBlocks.js:216 +#: js/blocks/DictBlocks.js:289 +#: js/blocks/DictBlocks.js:290 +#: js/blocks/DictBlocks.js:357 +#: js/blocks/DictBlocks.js:430 +#: js/blocks/DictBlocks.js:431 +msgid "key2" msgstr "" -#: js/ActionBlocks.js:1208 -msgid "Each Start block is a separate voice." +#: js/blocks/DictBlocks.js:215 +#: js/blocks/DictBlocks.js:216 +#: js/blocks/DictBlocks.js:289 +#: js/blocks/DictBlocks.js:290 +#: js/blocks/DictBlocks.js:357 +#: js/blocks/DictBlocks.js:430 +#: js/blocks/DictBlocks.js:431 +#: js/blocks/IntervalsBlocks.js:1462 +#.TRANS: key, e.g., C in C Major +msgid "key" msgstr "" -#: js/ActionBlocks.js:1304 -msgid "It is often used for storing a phrase of music that is repeated." +#: js/blocks/DictBlocks.js:271 +#: js/blocks/DictBlocks.js:411 +msgid "The Set-dict block sets a value in the dictionary for a specified key." msgstr "" -#: js/ActionBlocks.js:1495 -msgid "define temperament" +#: js/blocks/DictBlocks.js:286 +#: js/blocks/DictBlocks.js:427 +#.TRANS: set a value in the dictionary for a given key +msgid "set value" msgstr "" -#: js/EnsembleBlocks.js:66 +#: js/blocks/EnsembleBlocks.js:66 msgid "mouse index heap" msgstr "" -#: js/EnsembleBlocks.js:68 +#: js/blocks/EnsembleBlocks.js:68 msgid "The Mouse index heap block returns a value in the heap at a specified location for a specified mouse." msgstr "" -#: js/EnsembleBlocks.js:77 -#: js/EnsembleBlocks.js:1080 +#: js/blocks/EnsembleBlocks.js:77 +#: js/blocks/EnsembleBlocks.js:1080 msgid "mouse name" msgstr "" -#: js/EnsembleBlocks.js:77 -#: js/EnsembleBlocks.js:92 -#: js/HeapBlocks.js:544 +#: js/blocks/EnsembleBlocks.js:77 +#: js/blocks/EnsembleBlocks.js:92 +#: js/blocks/HeapBlocks.js:544 #.TRANS: value1 is a numeric value (JAPANESE ONLY) msgid "index" msgstr "" -#: js/EnsembleBlocks.js:80 +#: js/blocks/EnsembleBlocks.js:80 msgid "turtle index heap" msgstr "" -#: js/EnsembleBlocks.js:82 +#: js/blocks/EnsembleBlocks.js:82 msgid "The Turtle index heap block returns a value in the heap at a specified location for a specified turtle." msgstr "" -#: js/EnsembleBlocks.js:90 -#: js/EnsembleBlocks.js:167 -#: js/EnsembleBlocks.js:230 -#: js/EnsembleBlocks.js:316 -#: js/EnsembleBlocks.js:362 -#: js/EnsembleBlocks.js:400 -#: js/EnsembleBlocks.js:454 -#: js/EnsembleBlocks.js:504 -#: js/EnsembleBlocks.js:550 -#: js/EnsembleBlocks.js:597 -#: js/EnsembleBlocks.js:651 -#: js/EnsembleBlocks.js:763 -#: js/EnsembleBlocks.js:854 -#: js/EnsembleBlocks.js:915 -#: js/EnsembleBlocks.js:955 -#: js/EnsembleBlocks.js:1219 -#: js/EnsembleBlocks.js:1293 +#: js/blocks/EnsembleBlocks.js:90 +#: js/blocks/EnsembleBlocks.js:167 +#: js/blocks/EnsembleBlocks.js:230 +#: js/blocks/EnsembleBlocks.js:316 +#: js/blocks/EnsembleBlocks.js:362 +#: js/blocks/EnsembleBlocks.js:400 +#: js/blocks/EnsembleBlocks.js:454 +#: js/blocks/EnsembleBlocks.js:504 +#: js/blocks/EnsembleBlocks.js:550 +#: js/blocks/EnsembleBlocks.js:597 +#: js/blocks/EnsembleBlocks.js:651 +#: js/blocks/EnsembleBlocks.js:763 +#: js/blocks/EnsembleBlocks.js:854 +#: js/blocks/EnsembleBlocks.js:915 +#: js/blocks/EnsembleBlocks.js:955 +#: js/blocks/EnsembleBlocks.js:1219 +#: js/blocks/EnsembleBlocks.js:1293 #.TRANS: Yertle is the name of a turtle. msgid "Yertle" msgstr "" -#: js/EnsembleBlocks.js:92 -#: js/EnsembleBlocks.js:1089 +#: js/blocks/EnsembleBlocks.js:92 +#: js/blocks/EnsembleBlocks.js:1089 msgid "turtle name" msgstr "" -#: js/EnsembleBlocks.js:122 -#: js/EnsembleBlocks.js:1197 -#: js/HeapBlocks.js:474 -#: js/HeapBlocks.js:572 +#: js/blocks/EnsembleBlocks.js:122 +#: js/blocks/EnsembleBlocks.js:1197 +#: js/blocks/HeapBlocks.js:474 +#: js/blocks/HeapBlocks.js:572 msgid "Index must be > 0." msgstr "" -#: js/EnsembleBlocks.js:127 -#: js/HeapBlocks.js:479 -#: js/HeapBlocks.js:577 +#: js/blocks/EnsembleBlocks.js:127 +#: js/blocks/HeapBlocks.js:479 +#: js/blocks/HeapBlocks.js:577 msgid "Maximum heap size is 1000." msgstr "" -#: js/EnsembleBlocks.js:145 +#: js/blocks/EnsembleBlocks.js:145 msgid "stop mouse" msgstr "" -#: js/EnsembleBlocks.js:147 +#: js/blocks/EnsembleBlocks.js:147 msgid "The Stop mouse block stops the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:158 +#: js/blocks/EnsembleBlocks.js:158 msgid "stop turtle" msgstr "" -#: js/EnsembleBlocks.js:160 +#: js/blocks/EnsembleBlocks.js:160 msgid "The Stop turtle block stops the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:184 -#: js/EnsembleBlocks.js:247 -#: js/EnsembleBlocks.js:413 -#: js/EnsembleBlocks.js:468 -#: js/EnsembleBlocks.js:706 -#: js/EnsembleBlocks.js:808 -#: js/EnsembleBlocks.js:870 -#: js/EnsembleBlocks.js:1190 -#: js/EnsembleBlocks.js:1253 +#: js/blocks/EnsembleBlocks.js:184 +#: js/blocks/EnsembleBlocks.js:247 +#: js/blocks/EnsembleBlocks.js:413 +#: js/blocks/EnsembleBlocks.js:468 +#: js/blocks/EnsembleBlocks.js:706 +#: js/blocks/EnsembleBlocks.js:808 +#: js/blocks/EnsembleBlocks.js:870 +#: js/blocks/EnsembleBlocks.js:1190 +#: js/blocks/EnsembleBlocks.js:1253 msgid "Cannot find mouse" msgstr "" -#: js/EnsembleBlocks.js:186 -#: js/EnsembleBlocks.js:249 -#: js/EnsembleBlocks.js:415 -#: js/EnsembleBlocks.js:470 -#: js/EnsembleBlocks.js:708 -#: js/EnsembleBlocks.js:810 -#: js/EnsembleBlocks.js:872 -#: js/EnsembleBlocks.js:1192 -#: js/EnsembleBlocks.js:1255 +#: js/blocks/EnsembleBlocks.js:186 +#: js/blocks/EnsembleBlocks.js:249 +#: js/blocks/EnsembleBlocks.js:415 +#: js/blocks/EnsembleBlocks.js:470 +#: js/blocks/EnsembleBlocks.js:708 +#: js/blocks/EnsembleBlocks.js:810 +#: js/blocks/EnsembleBlocks.js:872 +#: js/blocks/EnsembleBlocks.js:1192 +#: js/blocks/EnsembleBlocks.js:1255 msgid "Cannot find turtle" msgstr "" -#: js/EnsembleBlocks.js:206 +#: js/blocks/EnsembleBlocks.js:206 msgid "start mouse" msgstr "" -#: js/EnsembleBlocks.js:209 +#: js/blocks/EnsembleBlocks.js:209 msgid "The Start mouse block starts the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:220 +#: js/blocks/EnsembleBlocks.js:220 msgid "start turtle" msgstr "" -#: js/EnsembleBlocks.js:223 +#: js/blocks/EnsembleBlocks.js:223 msgid "The Start turtle block starts the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:256 +#: js/blocks/EnsembleBlocks.js:256 msgid "Mouse is already running." msgstr "" -#: js/EnsembleBlocks.js:258 +#: js/blocks/EnsembleBlocks.js:258 msgid "Turtle is already running." msgstr "" -#: js/EnsembleBlocks.js:282 +#: js/blocks/EnsembleBlocks.js:282 msgid "Cannot find start block" msgstr "" -#: js/EnsembleBlocks.js:292 +#: js/blocks/EnsembleBlocks.js:292 #.TRANS: pen color for this mouse msgid "mouse color" msgstr "" -#: js/EnsembleBlocks.js:294 +#: js/blocks/EnsembleBlocks.js:294 msgid "The Mouse color block returns the pen color of the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:306 +#: js/blocks/EnsembleBlocks.js:306 #.TRANS: pen color for this turtle msgid "turtle color" msgstr "" -#: js/EnsembleBlocks.js:308 +#: js/blocks/EnsembleBlocks.js:308 msgid "The Turtle color block returns the pen color of the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:338 +#: js/blocks/EnsembleBlocks.js:338 #.TRANS: heading (compass direction) for this mouse msgid "mouse heading" msgstr "" -#: js/EnsembleBlocks.js:340 +#: js/blocks/EnsembleBlocks.js:340 msgid "The Mouse heading block returns the heading of the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:352 +#: js/blocks/EnsembleBlocks.js:352 #.TRANS: heading (compass direction) for this turtle msgid "turtle heading" msgstr "" -#: js/EnsembleBlocks.js:354 +#: js/blocks/EnsembleBlocks.js:354 msgid "The Turtle heading block returns the heading of the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:384 -#: js/EnsembleBlocks.js:439 +#: js/blocks/EnsembleBlocks.js:384 +#: js/blocks/EnsembleBlocks.js:439 #.TRANS: set xy position for this mouse msgid "set mouse" msgstr "" -#: js/EnsembleBlocks.js:391 -#: js/EnsembleBlocks.js:402 -#: js/BoxesBlocks.js:595 -msgid "name1" -msgstr "" - -#: js/EnsembleBlocks.js:391 -#: js/EnsembleBlocks.js:402 -#: js/ProgramBlocks.js:881 -#: js/GraphicsBlocks.js:235 -#: js/GraphicsBlocks.js:313 -#: js/GraphicsBlocks.js:436 -#: js/GraphicsBlocks.js:487 -#: js/GraphicsBlocks.js:534 -#: js/GraphicsBlocks.js:750 +#: js/blocks/EnsembleBlocks.js:391 +#: js/blocks/EnsembleBlocks.js:402 +#: js/blocks/GraphicsBlocks.js:235 +#: js/blocks/GraphicsBlocks.js:313 +#: js/blocks/GraphicsBlocks.js:436 +#: js/blocks/GraphicsBlocks.js:487 +#: js/blocks/GraphicsBlocks.js:534 +#: js/blocks/GraphicsBlocks.js:750 +#: js/blocks/ProgramBlocks.js:881 msgid "x" msgstr "" -#: js/EnsembleBlocks.js:391 -#: js/EnsembleBlocks.js:402 -#: js/ProgramBlocks.js:881 -#: js/GraphicsBlocks.js:149 -#: js/GraphicsBlocks.js:313 -#: js/GraphicsBlocks.js:436 -#: js/GraphicsBlocks.js:487 -#: js/GraphicsBlocks.js:534 -#: js/GraphicsBlocks.js:750 +#: js/blocks/EnsembleBlocks.js:391 +#: js/blocks/EnsembleBlocks.js:402 +#: js/blocks/GraphicsBlocks.js:149 +#: js/blocks/GraphicsBlocks.js:313 +#: js/blocks/GraphicsBlocks.js:436 +#: js/blocks/GraphicsBlocks.js:487 +#: js/blocks/GraphicsBlocks.js:534 +#: js/blocks/GraphicsBlocks.js:750 +#: js/blocks/ProgramBlocks.js:881 msgid "y" msgstr "" -#: js/EnsembleBlocks.js:395 -#: js/EnsembleBlocks.js:452 +#: js/blocks/EnsembleBlocks.js:395 +#: js/blocks/EnsembleBlocks.js:452 #.TRANS: set xy position for this turtle msgid "set turtle" msgstr "" -#: js/EnsembleBlocks.js:433 +#: js/blocks/EnsembleBlocks.js:433 msgid "The Set mouse block sends a stack of blocks to be run by the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:446 +#: js/blocks/EnsembleBlocks.js:446 msgid "The Set turtle block sends a stack of blocks to be run by the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:480 +#: js/blocks/EnsembleBlocks.js:480 #.TRANS: y position for this mouse msgid "mouse y" msgstr "" -#: js/EnsembleBlocks.js:482 +#: js/blocks/EnsembleBlocks.js:482 msgid "The Y mouse block returns the Y position of the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:494 +#: js/blocks/EnsembleBlocks.js:494 #.TRANS: y position for this turtle msgid "turtle y" msgstr "" -#: js/EnsembleBlocks.js:496 +#: js/blocks/EnsembleBlocks.js:496 msgid "The Y turtle block returns the Y position of the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:526 +#: js/blocks/EnsembleBlocks.js:526 #.TRANS: x position for this mouse msgid "mouse x" msgstr "" -#: js/EnsembleBlocks.js:528 +#: js/blocks/EnsembleBlocks.js:528 msgid "The X mouse block returns the X position of the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:540 +#: js/blocks/EnsembleBlocks.js:540 #.TRANS: x position for this turtle msgid "turtle x" msgstr "" -#: js/EnsembleBlocks.js:542 +#: js/blocks/EnsembleBlocks.js:542 msgid "The X turtle block returns the X position of the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:573 +#: js/blocks/EnsembleBlocks.js:573 #.TRANS: notes played by this mouse msgid "mouse notes played" msgstr "" -#: js/EnsembleBlocks.js:575 +#: js/blocks/EnsembleBlocks.js:575 msgid "The Mouse elapse notes block returns the number of notes played by the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:587 +#: js/blocks/EnsembleBlocks.js:587 #.TRANS: notes played by this turtle msgid "turtle notes played" msgstr "" -#: js/EnsembleBlocks.js:589 +#: js/blocks/EnsembleBlocks.js:589 msgid "The Turtle elapse notes block returns the number of notes played by the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:627 +#: js/blocks/EnsembleBlocks.js:627 #.TRANS: convert current note for this turtle to piano key (1-88) msgid "mouse pitch number" msgstr "" -#: js/EnsembleBlocks.js:629 +#: js/blocks/EnsembleBlocks.js:629 msgid "The Mouse pitch block returns the current pitch number being played by the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:641 +#: js/blocks/EnsembleBlocks.js:641 #.TRANS: convert current note for this turtle to piano key (1-88) msgid "turtle pitch number" msgstr "" -#: js/EnsembleBlocks.js:643 -msgid "The Turrle pitch block returns the current pitch number being played by the specified turtle." +#: js/blocks/EnsembleBlocks.js:643 +msgid "The Turtle pitch block returns the current pitch number being played by the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:747 -#: js/EnsembleBlocks.js:819 +#: js/blocks/EnsembleBlocks.js:747 +#: js/blocks/EnsembleBlocks.js:819 #.TRANS: note value is the duration of the note played by this mouse msgid "mouse note value" msgstr "" -#: js/EnsembleBlocks.js:757 +#: js/blocks/EnsembleBlocks.js:757 #.TRANS: note value is the duration of the note played by this turtle msgid "turtle note value" msgstr "" -#: js/EnsembleBlocks.js:830 +#: js/blocks/EnsembleBlocks.js:830 #.TRANS: sync is short for synchronization msgid "mouse sync" msgstr "" -#: js/EnsembleBlocks.js:832 +#: js/blocks/EnsembleBlocks.js:832 msgid "The Mouse sync block aligns the beat count between mice." msgstr "" -#: js/EnsembleBlocks.js:844 +#: js/blocks/EnsembleBlocks.js:844 #.TRANS: sync is short for synchronization msgid "turtle sync" msgstr "" -#: js/EnsembleBlocks.js:846 +#: js/blocks/EnsembleBlocks.js:846 msgid "The Turtle sync block aligns the beat count between turtles." msgstr "" -#: js/EnsembleBlocks.js:887 +#: js/blocks/EnsembleBlocks.js:887 msgid "The Found mouse block will return true if the specified mouse can be found." msgstr "" -#: js/EnsembleBlocks.js:893 +#: js/blocks/EnsembleBlocks.js:893 msgid "found mouse" msgstr "" -#: js/EnsembleBlocks.js:903 +#: js/blocks/EnsembleBlocks.js:903 msgid "The Found turtle block will return true if the specified turtle can be found." msgstr "" -#: js/EnsembleBlocks.js:909 +#: js/blocks/EnsembleBlocks.js:909 msgid "found turtle" msgstr "" -#: js/EnsembleBlocks.js:932 +#: js/blocks/EnsembleBlocks.js:932 msgid "new mouse" msgstr "" -#: js/EnsembleBlocks.js:934 +#: js/blocks/EnsembleBlocks.js:934 msgid "The New mouse block will create a new mouse." msgstr "" -#: js/EnsembleBlocks.js:945 +#: js/blocks/EnsembleBlocks.js:945 msgid "new turtle" msgstr "" -#: js/EnsembleBlocks.js:947 +#: js/blocks/EnsembleBlocks.js:947 msgid "The New turtle block will create a new turtle." msgstr "" -#: js/EnsembleBlocks.js:1011 +#: js/blocks/EnsembleBlocks.js:1011 msgid "set mouse color" msgstr "" -#: js/EnsembleBlocks.js:1014 +#: js/blocks/EnsembleBlocks.js:1014 msgid "The Set-mouse-color block is used to set the color of a mouse." msgstr "" -#: js/EnsembleBlocks.js:1020 +#: js/blocks/EnsembleBlocks.js:1020 msgid "set turtle color" msgstr "" -#: js/EnsembleBlocks.js:1023 +#: js/blocks/EnsembleBlocks.js:1023 msgid "The Set-turtle-color block is used to set the color of a turtle." msgstr "" -#: js/EnsembleBlocks.js:1083 +#: js/blocks/EnsembleBlocks.js:1083 msgid "The Mouse-name block returns the name of a mouse." msgstr "" -#: js/EnsembleBlocks.js:1092 +#: js/blocks/EnsembleBlocks.js:1092 msgid "The Turtle-name block returns the name of a turtle." msgstr "" -#: js/EnsembleBlocks.js:1115 +#: js/blocks/EnsembleBlocks.js:1115 msgid "mouse count" msgstr "" -#: js/EnsembleBlocks.js:1118 +#: js/blocks/EnsembleBlocks.js:1118 msgid "The Mouse-count block returns the number of mice." msgstr "" -#: js/EnsembleBlocks.js:1124 +#: js/blocks/EnsembleBlocks.js:1124 msgid "turtle count" msgstr "" -#: js/EnsembleBlocks.js:1127 +#: js/blocks/EnsembleBlocks.js:1127 msgid "The Turtle-count block returns the number of turtles." msgstr "" -#: js/EnsembleBlocks.js:1149 +#: js/blocks/EnsembleBlocks.js:1149 msgid "nth mouse name" msgstr "" -#: js/EnsembleBlocks.js:1152 +#: js/blocks/EnsembleBlocks.js:1152 msgid "The Nth-Mouse name block returns the name of the nth mouse." msgstr "" -#: js/EnsembleBlocks.js:1158 +#: js/blocks/EnsembleBlocks.js:1158 msgid "nth turtle name" msgstr "" -#: js/EnsembleBlocks.js:1161 +#: js/blocks/EnsembleBlocks.js:1161 msgid "The Nth-Turtle name block returns the name of the nth turtle." msgstr "" -#: js/EnsembleBlocks.js:1205 -#: js/EnsembleBlocks.js:1265 +#: js/blocks/EnsembleBlocks.js:1205 +#: js/blocks/EnsembleBlocks.js:1265 msgid "set name" msgstr "" -#: js/EnsembleBlocks.js:1214 -#: js/EnsembleBlocks.js:1221 +#: js/blocks/EnsembleBlocks.js:1214 +#: js/blocks/EnsembleBlocks.js:1221 msgid "source" msgstr "" -#: js/EnsembleBlocks.js:1214 -#: js/EnsembleBlocks.js:1221 +#: js/blocks/EnsembleBlocks.js:1214 +#: js/blocks/EnsembleBlocks.js:1221 msgid "target" msgstr "" -#: js/EnsembleBlocks.js:1271 +#: js/blocks/EnsembleBlocks.js:1271 msgid "The Set-name block is used to name a mouse." msgstr "" -#: js/EnsembleBlocks.js:1284 +#: js/blocks/EnsembleBlocks.js:1284 msgid "The Set-name block is used to name a turtle." msgstr "" -#: js/BooleanBlocks.js:44 -msgid "The Not block is the logical not operator." -msgstr "" - -#: js/BooleanBlocks.js:62 -msgid "not" -msgstr "" - -#: js/BooleanBlocks.js:134 -msgid "The And block is the logical and operator." -msgstr "" - -#: js/BooleanBlocks.js:152 -msgid "and" -msgstr "" - -#: js/BooleanBlocks.js:218 -msgid "The Or block is the logical or operator." -msgstr "" - -#: js/BooleanBlocks.js:236 -msgid "or" -msgstr "" - -#: js/BooleanBlocks.js:302 -msgid "The XOR block is the logical XOR operator." -msgstr "" - -#: js/BooleanBlocks.js:320 -msgid "xor" -msgstr "" - -#: js/BooleanBlocks.js:808 -msgid "The Equal block returns True if the two numbers are equal." -msgstr "" - -#: js/BooleanBlocks.js:909 -msgid "The Not-equal-to block returns True if the two numbers are not equal to each other." -msgstr "" - -#: js/BooleanBlocks.js:1008 -msgid "The Boolean block is used to specify true or false." -msgstr "" - -#: js/MediaBlocks.js:35 -#.TRANS: right side of the screen -msgid "right (screen)" -msgstr "" - -#: js/MediaBlocks.js:45 -#: js/MediaBlocks.js:56 -msgid "The Right block returns the position of the right of the canvas." -msgstr "" - -#: js/MediaBlocks.js:97 -#.TRANS: left side of the screen -msgid "left (screen)" -msgstr "" - -#: js/MediaBlocks.js:107 -#: js/MediaBlocks.js:118 -msgid "The Left block returns the position of the left of the canvas." -msgstr "" - -#: js/MediaBlocks.js:158 -msgid "top (screen)" -msgstr "" - -#: js/MediaBlocks.js:168 -#: js/MediaBlocks.js:179 -msgid "The Top block returns the position of the top of the canvas." -msgstr "" - -#: js/MediaBlocks.js:219 -msgid "bottom (screen)" +#: js/blocks/ExtrasBlocks.js:33 +msgid "fraction" msgstr "" -#: js/MediaBlocks.js:229 -#: js/MediaBlocks.js:240 -msgid "The Bottom block returns the position of the bottom of the canvas." +#: js/blocks/ExtrasBlocks.js:36 +msgid "Convert a float to a fraction" msgstr "" -#: js/MediaBlocks.js:282 -msgid "width" +#: js/blocks/ExtrasBlocks.js:93 +msgid "save as ABC" msgstr "" -#: js/MediaBlocks.js:291 -msgid "The Width block returns the width of the canvas." +#: js/blocks/ExtrasBlocks.js:96 +#: js/blocks/ExtrasBlocks.js:132 +#: js/blocks/ExtrasBlocks.js:168 +msgid "title" msgstr "" -#: js/MediaBlocks.js:325 -msgid "height" +#: js/blocks/ExtrasBlocks.js:129 +msgid "save as Lilypond" msgstr "" -#: js/MediaBlocks.js:334 -msgid "The Height block returns the height of the canvas." +#: js/blocks/ExtrasBlocks.js:165 +msgid "save as SVG" msgstr "" -#: js/MediaBlocks.js:369 -#.TRANS: stops playback of an audio recording -msgid "stop play" +#: js/blocks/ExtrasBlocks.js:216 +msgid "no background" msgstr "" -#: js/MediaBlocks.js:404 -#.TRANS: Erases the images and text -msgid "erase media" +#: js/blocks/ExtrasBlocks.js:219 +msgid "The No background block eliminates the background from the saved SVG output." msgstr "" -#: js/MediaBlocks.js:409 -msgid "The Erase Media block erases text and images." +#: js/blocks/ExtrasBlocks.js:247 +msgid "show blocks" msgstr "" -#: js/MediaBlocks.js:439 -#.TRANS: play an audio recording -msgid "play back" +#: js/blocks/ExtrasBlocks.js:249 +msgid "The Show blocks block shows the blocks." msgstr "" -#: js/MediaBlocks.js:487 -msgid "speak" +#: js/blocks/ExtrasBlocks.js:274 +msgid "hide blocks" msgstr "" -#: js/MediaBlocks.js:495 -msgid "The Speak block outputs to the text-to-speech synthesizer" +#: js/blocks/ExtrasBlocks.js:276 +msgid "The Hide blocks block hides the blocks." msgstr "" -#: js/MediaBlocks.js:546 -msgid "camera" +#: js/blocks/ExtrasBlocks.js:305 +#: js/blocks/ExtrasBlocks.js:338 +msgid "The Space block is used to add space between blocks." msgstr "" -#: js/MediaBlocks.js:551 -msgid "The Camera block connects a webcam to the Show block." +#: js/blocks/ExtrasBlocks.js:376 +msgid "wait" msgstr "" -#: js/MediaBlocks.js:574 -msgid "video" +#: js/blocks/ExtrasBlocks.js:379 +msgid "The Wait block pauses the program for a specified number of seconds." msgstr "" -#: js/MediaBlocks.js:579 -msgid "The Video block selects video for use with the Show block." +#: js/blocks/ExtrasBlocks.js:433 +#: plugins/facebook.rtp:30 +msgid "comment" msgstr "" -#: js/MediaBlocks.js:607 -msgid "The Open file block opens a file for use with the Show block." +#: js/blocks/ExtrasBlocks.js:469 +msgid "print" msgstr "" -#: js/MediaBlocks.js:645 -msgid "stop media" +#: js/blocks/ExtrasBlocks.js:476 +msgid "The Print block displays text at the top of the screen." msgstr "" -#: js/MediaBlocks.js:650 -msgid "The Stop media block stops audio or video playback." +#: js/blocks/ExtrasBlocks.js:582 +msgid "display grid" msgstr "" -#: js/MediaBlocks.js:679 -#: js/PitchBlocks.js:1539 -#: js/phrasemaker.js:822 -#: js/musickeyboard.js:1654 -#.TRANS: a measure of frequency: one cycle per second -msgid "hertz" +#: js/blocks/ExtrasBlocks.js:587 +msgid "The Display Grid Block changes the grid type" msgstr "" -#: js/MediaBlocks.js:692 -msgid "duration (ms)" +#: js/blocks/ExtrasBlocks.js:689 +#: js/blocks/ExtrasBlocks.js:708 +#: js/blocks/ExtrasBlocks.js:731 +#: js/blocks/ExtrasBlocks.js:754 +#: js/blocks/ExtrasBlocks.js:772 +#: js/blocks/ExtrasBlocks.js:791 +#: js/blocks/ExtrasBlocks.js:810 +#: js/blocks/ExtrasBlocks.js:829 +msgid "unknown" msgstr "" -#: js/MediaBlocks.js:728 -#.TRANS: translate a note into hertz, e.g., A4 -> 440HZ -msgid "note to frequency" +#: js/blocks/FlowBlocks.js:41 +msgid "The Backward block runs code in reverse order (Musical retrograde)." msgstr "" -#: js/MediaBlocks.js:736 -msgid "The To frequency block converts a pitch name and octave to Hertz." +#: js/blocks/FlowBlocks.js:48 +msgid "backward" msgstr "" -#: js/MediaBlocks.js:746 -#: js/PitchBlocks.js:656 -#: js/PitchBlocks.js:932 -#: js/PitchBlocks.js:1827 -#.TRANS: name2 is name as in name of pitch (JAPANESE ONLY) -msgid "name2" +#: js/blocks/FlowBlocks.js:124 +msgid "The Duplicate block will run each block multiple times." msgstr "" -#: js/MediaBlocks.js:812 -msgid "The Avatar block is used to change the appearance of the mouse." +#: js/blocks/FlowBlocks.js:136 +msgid "duplicate" msgstr "" -#: js/MediaBlocks.js:819 -msgid "The Avatar block is used to change the appearance of the turtle." +#: js/blocks/FlowBlocks.js:334 +msgid "The Default block is used inside of a Switch to define the default action." msgstr "" -#: js/MediaBlocks.js:831 -#: js/MediaBlocks.js:891 -#.TRANS: a media object -msgid "size" +#: js/blocks/FlowBlocks.js:342 +msgid "default" msgstr "" -#: js/MediaBlocks.js:831 -msgid "image" +#: js/blocks/FlowBlocks.js:361 +#: js/blocks/FlowBlocks.js:418 +msgid "The Case Block must be used inside of a Switch Block." msgstr "" -#: js/MediaBlocks.js:880 -msgid "The Show block is used to display text or images on the canvas." +#: js/blocks/FlowBlocks.js:389 +msgid "The Case block is used inside of a Switch to define matches." msgstr "" -#: js/MediaBlocks.js:888 -#.TRANS: show1 is show as in display an image or text on the screen. -msgid "show1" +#: js/blocks/FlowBlocks.js:397 +msgid "case" msgstr "" -#: js/MediaBlocks.js:891 -msgid "obj" +#: js/blocks/FlowBlocks.js:446 +msgid "The Switch block will run the code in the matching Case." msgstr "" -#: js/MediaBlocks.js:938 -msgid "The Media block is used to import an image." +#: js/blocks/FlowBlocks.js:454 +msgid "switch" msgstr "" -#: js/MediaBlocks.js:973 -msgid "The Text block holds a text string." +#: js/blocks/FlowBlocks.js:595 +msgid "The Stop block will stop a loop" msgstr "" -#: js/ProgramBlocks.js:33 -msgid "The Load-heap-from-app block loads the heap from a web page." +#: js/blocks/FlowBlocks.js:597 +msgid "Forever, Repeat, While, or Until." msgstr "" -#: js/ProgramBlocks.js:44 -#.TRANS: load the heap contents from a URL -msgid "load heap from App" +#: js/blocks/FlowBlocks.js:604 +#: js/widgets/timbre.js:417 +#: js/widgets/timbre.js:419 +#: js/widgets/musickeyboard.js:819 +#: js/widgets/musickeyboard.js:821 +#: js/widgets/phrasemaker.js:4202 +#: plugins/rodi.rtp:29 +#: plugins/rodi.rtp:73 +#: plugins/rodi.rtp:413 +msgid "stop" msgstr "" -#: js/ProgramBlocks.js:95 -msgid "Error parsing JSON data:" +#: js/blocks/FlowBlocks.js:653 +msgid "The Waitfor block will wait until the condition is true." msgstr "" -#: js/ProgramBlocks.js:100 -msgid "404: Page not found" +#: js/blocks/FlowBlocks.js:661 +msgid "wait for" msgstr "" -#: js/ProgramBlocks.js:133 -msgid "The Save-heap-to-app block saves the heap to a web page." +#: js/blocks/FlowBlocks.js:732 +msgid "The Until block will repeat until the condition is true." msgstr "" -#: js/ProgramBlocks.js:144 -#.TRANS: save the heap contents to a URL -msgid "save heap to App" +#: js/blocks/FlowBlocks.js:740 +msgid "until" msgstr "" -#: js/ProgramBlocks.js:189 -msgid "Cannot find a valid heap for" +#: js/blocks/FlowBlocks.js:742 +#: js/blocks/FlowBlocks.js:822 +msgid "do2" msgstr "" -#: js/ProgramBlocks.js:206 -msgid "The Load-heap block loads the heap from a file." +#: js/blocks/FlowBlocks.js:812 +msgid "The While block will repeat while the condition is true." msgstr "" -#: js/ProgramBlocks.js:217 -#.TRANS: load the heap from a file -msgid "load heap" +#: js/blocks/FlowBlocks.js:820 +msgid "while" msgstr "" -#: js/ProgramBlocks.js:270 -msgid "The file you selected does not contain a valid heap." +#: js/blocks/FlowBlocks.js:903 +#: js/blocks/FlowBlocks.js:968 +#: js/blocks/FlowBlocks.js:979 +msgid "In this example if the mouse button is pressed a snare drum will play." msgstr "" -#: js/ProgramBlocks.js:275 -msgid "The loadHeap block needs a loadFile block." +#: js/blocks/FlowBlocks.js:925 +#: js/blocks/FlowBlocks.js:988 +msgid "if" msgstr "" -#: js/ProgramBlocks.js:291 -msgid "The Set-heap block loads the heap." +#: js/blocks/FlowBlocks.js:927 +#: js/blocks/FlowBlocks.js:990 +msgid "then" msgstr "" -#: js/ProgramBlocks.js:299 -#: js/HeapBlocks.js:539 -#.TRANS: load the heap from a JSON encoding -msgid "set heap" +#: js/blocks/FlowBlocks.js:927 +msgid "else" msgstr "" -#: js/ProgramBlocks.js:340 -msgid "The block you selected does not contain a valid heap." +#: js/blocks/FlowBlocks.js:1025 +msgid "The Forever block will repeat the contained blocks forever." msgstr "" -#: js/ProgramBlocks.js:343 -msgid "The Set heap block needs a heap." +#: js/blocks/FlowBlocks.js:1037 +msgid "forever" msgstr "" -#: js/ProgramBlocks.js:360 -msgid "The Load-dictionary block loads a dictionary from a file." +#: js/blocks/FlowBlocks.js:1073 +msgid "The Repeat block will repeat the contained blocks." msgstr "" -#: js/ProgramBlocks.js:372 -#.TRANS: load a dictionary from a file -msgid "load dictionary" +#: js/blocks/FlowBlocks.js:1075 +msgid "In this example the note will be played 4 times." msgstr "" -#: js/ProgramBlocks.js:390 -#: js/ProgramBlocks.js:658 -#: js/ToneBlocks.js:1025 -msgid "file" +#: js/blocks/FlowBlocks.js:1083 +msgid "repeat" msgstr "" -#: js/ProgramBlocks.js:396 -#: js/ProgramBlocks.js:501 -#: js/ProgramBlocks.js:664 -#: js/DictBlocks.js:80 -#: js/DictBlocks.js:145 -#: js/DictBlocks.js:216 -#: js/DictBlocks.js:290 -msgid "My Dictionary" +#: js/blocks/FlowBlocks.js:1123 +msgid "duplicate factor" msgstr "" -#: js/ProgramBlocks.js:444 -msgid "The file you selected does not contain a valid dictionary." +#: js/blocks/HeapBlocks.js:49 +msgid "The Heap block returns the heap." msgstr "" -#: js/ProgramBlocks.js:449 -msgid "The load dictionary block needs a load file block." +#: js/blocks/HeapBlocks.js:133 +msgid "show heap" msgstr "" -#: js/ProgramBlocks.js:466 -msgid "The Set-dictionary block loads a dictionary." +#: js/blocks/HeapBlocks.js:181 +msgid "The Heap-length block returns the length of the heap." msgstr "" -#: js/ProgramBlocks.js:477 -#.TRANS: load a dictionary from a JSON -msgid "set dictionary" +#: js/blocks/HeapBlocks.js:195 +msgid "heap length" msgstr "" -#: js/ProgramBlocks.js:546 -msgid "The block you selected does not contain a valid dictionary." +#: js/blocks/HeapBlocks.js:254 +msgid "The Heap-empty? block returns true if the heap is empty." msgstr "" -#: js/ProgramBlocks.js:550 -msgid "The set dictionary block needs a dictionary." +#: js/blocks/HeapBlocks.js:268 +#.TRANS: Is the heap empty? +msgid "heap empty?" msgstr "" -#: js/ProgramBlocks.js:567 -msgid "The Save-heap block saves the heap to a file." +#: js/blocks/HeapBlocks.js:317 +msgid "The Empty-heap block empties the heap." msgstr "" -#: js/ProgramBlocks.js:578 -#.TRANS: save the heap to a file -msgid "save heap" +#: js/blocks/HeapBlocks.js:327 +#: js/blocks/HeapBlocks.js:647 +#.TRANS: empty the heap +msgid "empty heap" msgstr "" -#: js/ProgramBlocks.js:629 -msgid "The Save-dictionary block saves a dictionary to a file." +#: js/blocks/HeapBlocks.js:371 +msgid "The Reverse-heap block reverses the order of the heap." msgstr "" -#: js/ProgramBlocks.js:640 -#.TRANS: save a dictionary to a file -msgid "save dictionary" +#: js/blocks/HeapBlocks.js:384 +#.TRANS: reverse the order of the heap +msgid "reverse heap" msgstr "" -#: js/ProgramBlocks.js:720 -msgid "The Open palette block opens a palette." +#: js/blocks/HeapBlocks.js:428 +msgid "The Index-heap block returns a value in the heap at a specified location." msgstr "" -#: js/ProgramBlocks.js:727 -msgid "open palette" +#: js/blocks/HeapBlocks.js:443 +#.TRANS: retrieve a value from the heap at index position in the heap +msgid "index heap" msgstr "" -#: js/ProgramBlocks.js:785 -msgid "The Delete block block removes a block." +#: js/blocks/HeapBlocks.js:523 +msgid "The Set-heap entry block sets a value in he heap at the specified location." msgstr "" -#: js/ProgramBlocks.js:797 -#.TRANS: Move this block to the trash. -msgid "delete block" +#: js/blocks/HeapBlocks.js:539 +#: js/blocks/ProgramBlocks.js:299 +#.TRANS: load the heap from a JSON encoding +msgid "set heap" msgstr "" -#: js/ProgramBlocks.js:861 -msgid "The Move block block moves a block." +#: js/blocks/HeapBlocks.js:619 +msgid "The Pop block removes the value at the top of the heap." msgstr "" -#: js/ProgramBlocks.js:869 -#.TRANS: Move the position of a block on the screen. -msgid "move block" +#: js/blocks/HeapBlocks.js:633 +#.TRANS: pop a value off the top of the heap +msgid "pop" msgstr "" -#: js/ProgramBlocks.js:881 -#: js/ProgramBlocks.js:1048 -msgid "block number" +#: js/blocks/HeapBlocks.js:680 +msgid "The Push block adds a value to the top of the heap." msgstr "" -#: js/ProgramBlocks.js:935 -#.TRANS: Run program beginning at this block. -msgid "run block" +#: js/blocks/HeapBlocks.js:696 +#.TRANS: push a value onto the top of the heap +msgid "push" msgstr "" -#: js/ProgramBlocks.js:1025 -msgid "The Dock block block connections two blocks." +#: js/blocks/IntervalsBlocks.js:45 +msgid "set temperament" msgstr "" -#: js/ProgramBlocks.js:1036 -#.TRANS: We can connect a block to another block. -msgid "connect blocks" +#: js/blocks/IntervalsBlocks.js:63 +#: js/blocks/MediaBlocks.js:746 +#: js/blocks/PitchBlocks.js:657 +#: js/blocks/PitchBlocks.js:935 +#: js/blocks/PitchBlocks.js:974 +#: js/blocks/PitchBlocks.js:1007 +#: js/blocks/PitchBlocks.js:1194 +#: js/blocks/PitchBlocks.js:1717 +#: js/blocks/PitchBlocks.js:1758 +#: js/blocks/PitchBlocks.js:1866 +#: js/blocks/ToneBlocks.js:1025 +#: js/turtleactions/IntervalsActions.js:114 +#.TRANS: adjusts the shift up or down by one octave (twelve half-steps in the interval between two notes, one having twice or half the frequency in Hz of the other.) +msgid "octave" msgstr "" -#: js/ProgramBlocks.js:1048 -msgid "target block" +#: js/blocks/IntervalsBlocks.js:99 +msgid "The Temperament name block is used to select a tuning method." msgstr "" -#: js/ProgramBlocks.js:1048 -msgid "connection number" +#: js/blocks/IntervalsBlocks.js:161 +msgid "doubly" msgstr "" -#: js/ProgramBlocks.js:1140 -msgid "The Make block block creates a new block." +#: js/blocks/IntervalsBlocks.js:166 +msgid "The Doubly block will double the size of an interval." msgstr "" -#: js/ProgramBlocks.js:1152 -#.TRANS: Create a new block -msgid "make block" +#: js/blocks/IntervalsBlocks.js:262 +msgid "interval number" msgstr "" -#: js/ProgramBlocks.js:1186 -#: js/ProgramBlocks.js:1227 -#: js/RhythmBlocks.js:1128 -#: js/PitchBlocks.js:972 -#: js/PitchBlocks.js:1005 -#: js/temperament.js:340 -#: js/temperament.js:362 -#: js/temperament.js:372 -#: js/temperament.js:484 -#: js/status.js:190 -#: plugins/rodi.rtp:192 -#.TRANS: a musical note consisting of pitch and duration -msgid "note" +#: js/blocks/IntervalsBlocks.js:317 +msgid "current interval" msgstr "" -#: js/ProgramBlocks.js:1285 -msgid "Cannot find block" +#: js/blocks/IntervalsBlocks.js:387 +#.TRANS: measure the distance between two pitches in semi-tones +msgid "semi-tone interval measure" msgstr "" -#: js/ProgramBlocks.js:1304 -#: js/ProgramBlocks.js:1313 -msgid "Warning: block argument type mismatch" +#: js/blocks/IntervalsBlocks.js:454 +#: js/blocks/IntervalsBlocks.js:570 +msgid "You must use two pitch blocks when measuring an interval." msgstr "" -#: js/ProgramBlocks.js:1347 -msgid "The Open project block is used to open a project from a web page." +#: js/blocks/IntervalsBlocks.js:496 +msgid "The Scalar interval block measures the distance between two notes in the current key and mode." msgstr "" -#: js/ProgramBlocks.js:1357 -msgid "open project" +#: js/blocks/IntervalsBlocks.js:502 +#.TRANS: measure the distance between two pitches in steps of musical scale +msgid "scalar interval measure" msgstr "" -#: js/ProgramBlocks.js:1410 -msgid "Please enter a valid URL." +#: js/blocks/IntervalsBlocks.js:678 +msgid "In the figure, we add sol# to sol." msgstr "" -#: js/DrumBlocks.js:59 -msgid "The Noise name block is used to select a noise synthesizer." +#: js/blocks/IntervalsBlocks.js:684 +#: js/blocks/OrnamentBlocks.js:220 +#.TRANS: calculate a relative step between notes based on semi-tones +msgid "semi-tone interval" msgstr "" -#: js/DrumBlocks.js:102 -msgid "The Drum name block is used to select a drum." +#: js/blocks/IntervalsBlocks.js:733 +msgid "The output of the example is: do, mi, sol, sol, ti, mi" msgstr "" -#: js/DrumBlocks.js:146 -msgid "The Effects name block is used to select a sound effect." +#: js/blocks/IntervalsBlocks.js:740 +#: js/blocks/WidgetBlocks.js:768 +msgid "arpeggio" msgstr "" -#: js/DrumBlocks.js:163 -msgid "noise" +#: js/blocks/IntervalsBlocks.js:931 +msgid "The Chord block calculates common chords." msgstr "" -#: js/DrumBlocks.js:177 -msgid "The Play noise block will generate white, pink, or brown noise." +#: js/blocks/IntervalsBlocks.js:933 +msgid "In the figure, we generate a C-major chord." msgstr "" -#: js/DrumBlocks.js:191 -#: js/musicutils.js:752 -#: js/synthutils.js:47 -#.TRANS: white noise synthesizer -msgid "white noise" +#: js/blocks/IntervalsBlocks.js:938 +msgid "chord" msgstr "" -#: js/DrumBlocks.js:326 -msgid "Replace every instance of a pitch with a drum sound." +#: js/blocks/IntervalsBlocks.js:990 +msgid "The Ratio Interval block calculates an interval based on a ratio." msgstr "" -#: js/DrumBlocks.js:337 -#.TRANS: map a pitch to a drum sound -msgid "map pitch to drum" +#: js/blocks/IntervalsBlocks.js:995 +msgid "ratio interval" msgstr "" -#: js/DrumBlocks.js:404 -msgid "In the example above, a kick drum sound will be played instead of sol." +#: js/blocks/IntervalsBlocks.js:1064 +msgid "In the figure, we add la to sol." msgstr "" -#: js/DrumBlocks.js:416 -#.TRANS: set the current drum sound for playback -msgid "set drum" +#: js/blocks/IntervalsBlocks.js:1120 +#.TRANS: define a custom mode +msgid "define mode" msgstr "" -#: js/DrumBlocks.js:460 -msgid "sound effect" +#: js/blocks/IntervalsBlocks.js:1173 +msgid "movable Do" msgstr "" -#: js/DrumBlocks.js:498 -msgid "You can use multiple Drum blocks within a Note block." +#: js/blocks/IntervalsBlocks.js:1224 +#.TRANS: mode length is the number of notes in the mode, e.g., 7 for major and minor scales; 12 for chromatic scales +msgid "mode length" msgstr "" -#: js/RhythmBlocks.js:182 -#: js/RhythmBlocks.js:1086 -#: js/RhythmBlocks.js:1162 -msgid "Note value must be greater than 0." +#: js/blocks/IntervalsBlocks.js:1233 +msgid "The Mode length block is the number of notes in the current scale." msgstr "" -#: js/RhythmBlocks.js:215 -#: js/RhythmBlocks.js:278 -#: js/RhythmBlocks.js:350 -#.TRANS: swing is a rhythmic variation that emphasises the offbeat -msgid "swing" +#: js/blocks/IntervalsBlocks.js:1235 +msgid "Most Western scales have 7 notes." msgstr "" -#: js/RhythmBlocks.js:355 -#.TRANS: the amount to shift to the offbeat note -msgid "swing value" +#: js/blocks/IntervalsBlocks.js:1284 +#.TRANS: the mode in music is 'major', 'minor', etc. +msgid "current mode" msgstr "" -#: js/RhythmBlocks.js:419 -msgid "The Skip notes block will cause notes to be skipped." +#: js/blocks/IntervalsBlocks.js:1337 +#.TRANS: the key is a group of pitches with which a music composition is created +msgid "current key" msgstr "" -#: js/RhythmBlocks.js:427 -#.TRANS: substitute rests on notes being skipped -msgid "skip notes" +#: js/blocks/IntervalsBlocks.js:1389 +#: js/blocks/IntervalsBlocks.js:1434 +#.TRANS: set the key and mode, e.g. C Major +msgid "set key" msgstr "" -#: js/RhythmBlocks.js:489 -#.TRANS: speed up note duration by some factor, e.g. convert 1/4 to 1/8 notes by using a factor of 2 -msgid "multiply note value" +#: js/blocks/IntervalsBlocks.js:1443 +#: js/blocks/IntervalsBlocks.js:1449 +msgid "The Set key block is used to set the key and mode," msgstr "" -#: js/RhythmBlocks.js:542 -msgid "The Tie block works on pairs of notes, combining them into one note." +#: js/blocks/IntervalsBlocks.js:1449 +msgid "eg C Major" msgstr "" -#: js/RhythmBlocks.js:550 -#.TRANS: tie notes together into one longer note -msgid "tie" +#: js/blocks/MediaBlocks.js:35 +#.TRANS: right side of the screen +msgid "right (screen)" msgstr "" -#: js/RhythmBlocks.js:591 -#: js/RhythmBlocks.js:671 -#.TRANS: a dotted note is played for 1.5x its value, e.g., 1/8. --> 3/16 -msgid "dot" +#: js/blocks/MediaBlocks.js:45 +#: js/blocks/MediaBlocks.js:56 +msgid "The Right block returns the position of the right of the canvas." msgstr "" -#: js/RhythmBlocks.js:619 -#: js/RhythmActions.js:221 -msgid "An argument of -1 results in a note value of 0." +#: js/blocks/MediaBlocks.js:97 +#.TRANS: left side of the screen +msgid "left (screen)" msgstr "" -#: js/RhythmBlocks.js:661 -msgid "The Dot block extends the duration of a note by 50%." +#: js/blocks/MediaBlocks.js:107 +#: js/blocks/MediaBlocks.js:118 +msgid "The Left block returns the position of the left of the canvas." msgstr "" -#: js/RhythmBlocks.js:663 -msgid "Eg a dotted quarter note will play for 3/8 (1/4 + 1/8) of a beat." +#: js/blocks/MediaBlocks.js:158 +msgid "top (screen)" msgstr "" -#: js/RhythmBlocks.js:765 -#.TRANS: Japanese only: note value block for drum -msgid "note value drum" +#: js/blocks/MediaBlocks.js:168 +#: js/blocks/MediaBlocks.js:179 +msgid "The Top block returns the position of the top of the canvas." msgstr "" -#: js/RhythmBlocks.js:829 -msgid "392 hertz" +#: js/blocks/MediaBlocks.js:219 +msgid "bottom (screen)" msgstr "" -#: js/RhythmBlocks.js:1119 -msgid "The Note block is a container for one or more Pitch blocks." +#: js/blocks/MediaBlocks.js:229 +#: js/blocks/MediaBlocks.js:240 +msgid "The Bottom block returns the position of the bottom of the canvas." msgstr "" -#: js/RhythmBlocks.js:1121 -msgid "The Note block specifies the duration (note value) of its contents." +#: js/blocks/MediaBlocks.js:282 +msgid "width" msgstr "" -#: js/RhythmBlocks.js:1130 -msgid "value2" +#: js/blocks/MediaBlocks.js:291 +msgid "The Width block returns the width of the canvas." msgstr "" -#: js/RhythmBlocks.js:1200 -msgid "define frequency" +#: js/blocks/MediaBlocks.js:325 +msgid "height" msgstr "" -#: js/RhythmBlocks.js:1218 -#: js/temperament.js:650 -#: js/temperament.js:1421 -msgid "octave space" +#: js/blocks/MediaBlocks.js:334 +msgid "The Height block returns the height of the canvas." msgstr "" -#: js/NumberBlocks.js:28 -msgid "The Int block returns an integer." +#: js/blocks/MediaBlocks.js:369 +#.TRANS: stops playback of an audio recording +msgid "stop play" msgstr "" -#: js/NumberBlocks.js:34 -msgid "int" +#: js/blocks/MediaBlocks.js:404 +#.TRANS: Erases the images and text +msgid "erase media" msgstr "" -#: js/NumberBlocks.js:73 -msgid "The Mod block returns the remainder from a division." +#: js/blocks/MediaBlocks.js:409 +msgid "The Erase Media block erases text and images." msgstr "" -#: js/NumberBlocks.js:79 -msgid "mod" +#: js/blocks/MediaBlocks.js:439 +#.TRANS: play an audio recording +msgid "play back" msgstr "" -#: js/NumberBlocks.js:123 -msgid "The Power block calculates a power function." +#: js/blocks/MediaBlocks.js:487 +msgid "speak" msgstr "" -#: js/NumberBlocks.js:178 -msgid "The Sqrt block returns the square root." +#: js/blocks/MediaBlocks.js:495 +msgid "The Speak block outputs to the text-to-speech synthesizer" msgstr "" -#: js/NumberBlocks.js:184 -msgid "sqrt" +#: js/blocks/MediaBlocks.js:546 +msgid "camera" msgstr "" -#: js/NumberBlocks.js:230 -msgid "The Abs block returns the absolute value." +#: js/blocks/MediaBlocks.js:551 +msgid "The Camera block connects a webcam to the Show block." msgstr "" -#: js/NumberBlocks.js:236 -msgid "abs" +#: js/blocks/MediaBlocks.js:574 +msgid "video" msgstr "" -#: js/NumberBlocks.js:277 -msgid "The Distance block returns the distance between two points. For example, between the mouse and the center of the screen." +#: js/blocks/MediaBlocks.js:579 +msgid "The Video block selects video for use with the Show block." msgstr "" -#: js/NumberBlocks.js:283 -#: plugins/rodi.rtp:310 -msgid "distance" +#: js/blocks/MediaBlocks.js:607 +msgid "The Open file block opens a file for use with the Show block." msgstr "" -#: js/NumberBlocks.js:343 -msgid "The Divide block is used to divide." +#: js/blocks/MediaBlocks.js:645 +msgid "stop media" msgstr "" -#: js/NumberBlocks.js:411 -msgid "The Multiply block is used to multiply." +#: js/blocks/MediaBlocks.js:650 +msgid "The Stop media block stops audio or video playback." msgstr "" -#: js/NumberBlocks.js:554 -msgid "The Minus block is used to subtract." +#: js/blocks/MediaBlocks.js:679 +#: js/blocks/PitchBlocks.js:1577 +#: js/widgets/musickeyboard.js:1936 +#: js/widgets/phrasemaker.js:1037 +#.TRANS: a measure of frequency: one cycle per second +msgid "hertz" msgstr "" -#: js/NumberBlocks.js:647 -msgid "The Plus block is used to add." +#: js/blocks/MediaBlocks.js:692 +#: js/blocks/WidgetBlocks.js:182 +#: js/widgets/temperament.js:506 +#: js/widgets/temperament.js:546 +#: js/widgets/temperament.js:610 +#: js/widgets/temperament.js:618 +#: js/widgets/temperament.js:1505 +#: js/widgets/timbre.js:1842 +msgid "frequency" msgstr "" -#: js/NumberBlocks.js:773 -msgid "The One-of block returns one of two choices." +#: js/blocks/MediaBlocks.js:692 +msgid "duration (ms)" msgstr "" -#: js/NumberBlocks.js:780 -#: js/PitchBlocks.js:616 -msgid "one of" +#: js/blocks/MediaBlocks.js:728 +#.TRANS: translate a note into hertz, e.g., A4 -> 440HZ +msgid "note to frequency" msgstr "" -#: js/NumberBlocks.js:782 -msgid "this" +#: js/blocks/MediaBlocks.js:736 +msgid "The To frequency block converts a pitch name and octave to Hertz." msgstr "" -#: js/NumberBlocks.js:782 -msgid "that" +#: js/blocks/MediaBlocks.js:746 +#: js/blocks/PitchBlocks.js:656 +#: js/blocks/PitchBlocks.js:934 +#: js/blocks/PitchBlocks.js:1866 +#.TRANS: name2 is name as in name of pitch (JAPANESE ONLY) +msgid "name2" msgstr "" -#: js/NumberBlocks.js:837 -msgid "The Random block returns a random number." +#: js/blocks/MediaBlocks.js:812 +msgid "The Avatar block is used to change the appearance of the mouse." msgstr "" -#: js/NumberBlocks.js:844 -msgid "random" +#: js/blocks/MediaBlocks.js:819 +msgid "The Avatar block is used to change the appearance of the turtle." msgstr "" -#: js/NumberBlocks.js:846 -msgid "min" +#: js/blocks/MediaBlocks.js:831 +#: js/blocks/MediaBlocks.js:891 +#.TRANS: a media object +msgid "size" msgstr "" -#: js/NumberBlocks.js:846 -msgid "max" +#: js/blocks/MediaBlocks.js:831 +msgid "image" msgstr "" -#: js/NumberBlocks.js:910 -msgid "The Number block holds a number." +#: js/blocks/MediaBlocks.js:880 +msgid "The Show block is used to display text or images on the canvas." msgstr "" -#: js/BoxesBlocks.js:53 -#: js/BoxesBlocks.js:59 -msgid "The Add-to block is used to add to the value stored in a box." +#: js/blocks/MediaBlocks.js:888 +#.TRANS: show1 is show as in display an image or text on the screen. +msgid "show1" msgstr "" -#: js/BoxesBlocks.js:61 -msgid "It can also be used with other blocks such as Color and Pen size." +#: js/blocks/MediaBlocks.js:891 +msgid "obj" msgstr "" -#: js/BoxesBlocks.js:73 -msgid "add" +#: js/blocks/MediaBlocks.js:938 +msgid "The Media block is used to import an image." msgstr "" -#: js/BoxesBlocks.js:75 -#: js/temperament.js:716 -msgid "to" +#: js/blocks/MediaBlocks.js:973 +msgid "The Text block holds a text string." msgstr "" -#: js/BoxesBlocks.js:75 -#: js/BoxesBlocks.js:595 -#: js/HeapBlocks.js:544 -msgid "value1" +#: js/blocks/MeterBlocks.js:34 +#.TRANS: musical meter (time signature), e.g., 4:4 +msgid "current meter" msgstr "" -#: js/BoxesBlocks.js:118 -msgid "Block does not support incrementing." +#: js/blocks/MeterBlocks.js:85 +#.TRANS: number of beats per minute +msgid "beat factor" msgstr "" -#: js/BoxesBlocks.js:152 -msgid "The Add-1-to block adds one to the value stored in a box." +#: js/blocks/MeterBlocks.js:161 +msgid "The Beats per minute block returns the current beats per minute." msgstr "" -#: js/BoxesBlocks.js:163 -msgid "add 1 to" +#: js/blocks/MeterBlocks.js:169 +#: js/widgets/status.js:152 +#.TRANS: number of beats played per minute +msgid "beats per minute2" msgstr "" -#: js/BoxesBlocks.js:211 -msgid "The Subtract-1-from block subtracts one from the value stored in a box." +#: js/blocks/MeterBlocks.js:169 +#: js/blocks/MeterBlocks.js:1056 +#: js/blocks/MeterBlocks.js:1133 +#: js/blocks/MeterBlocks.js:1211 +#.TRANS: sets tempo by defining a beat and beats per minute +msgid "beats per minute" msgstr "" -#: js/BoxesBlocks.js:222 -msgid "subtract 1 from" +#: js/blocks/MeterBlocks.js:233 +#.TRANS: count of current musical measure in meter +msgid "measure count" msgstr "" -#: js/BoxesBlocks.js:270 -#: js/BoxesBlocks.js:387 -msgid "The Box block returns the value stored in a box." +#: js/blocks/MeterBlocks.js:241 +msgid "The Measure count block returns the current measure." msgstr "" -#: js/BoxesBlocks.js:500 -#: js/BoxesBlocks.js:576 -msgid "The Store in block will store a value in a box." +#: js/blocks/MeterBlocks.js:290 +#.TRANS: count of current beat in the meter +msgid "beat count" msgstr "" -#: js/BoxesBlocks.js:652 -msgid "The Box2 block returns the value stored in Box2." +#: js/blocks/MeterBlocks.js:300 +#: js/blocks/MeterBlocks.js:311 +#: js/blocks/MeterBlocks.js:565 +#: js/blocks/MeterBlocks.js:576 +msgid "The Beat count block is the number of the current beat," msgstr "" -#: js/BoxesBlocks.js:703 -msgid "The Store in Box2 block is used to store a value in Box2." +#: js/blocks/MeterBlocks.js:313 +#: js/blocks/MeterBlocks.js:578 +msgid "eg 1, 2, 3, or 4." msgstr "" -#: js/BoxesBlocks.js:715 -msgid "store in box2" +#: js/blocks/MeterBlocks.js:368 +#.TRANS: count the number of notes +msgid "sum note values" msgstr "" -#: js/BoxesBlocks.js:761 -msgid "The Box1 block returns the value stored in Box1." +#: js/blocks/MeterBlocks.js:376 +#: js/blocks/MeterBlocks.js:440 +msgid "The Note counter block can be used to count the number of contained notes." msgstr "" -#: js/BoxesBlocks.js:812 -msgid "The Store in Box1 block is used to store a value in Box1." +#: js/blocks/MeterBlocks.js:432 +#.TRANS: count the number of notes +msgid "note counter" msgstr "" -#: js/BoxesBlocks.js:826 -msgid "store in box1" +#: js/blocks/MeterBlocks.js:496 +#.TRANS: number of whole notes that have been played +msgid "whole notes played" msgstr "" -#: js/HeapBlocks.js:49 -msgid "The Heap block returns the heap." +#: js/blocks/MeterBlocks.js:505 +msgid "The Whole notes played block returns the total number of whole notes played." msgstr "" -#: js/HeapBlocks.js:133 -msgid "show heap" +#: js/blocks/MeterBlocks.js:555 +#: js/turtleactions/DictActions.js:83 +#.TRANS: number of notes that have been played +msgid "notes played" msgstr "" -#: js/HeapBlocks.js:181 -msgid "The Heap-length block returns the length of the heap." +#: js/blocks/MeterBlocks.js:653 +msgid "The No clock block decouples the notes from the master clock." msgstr "" -#: js/HeapBlocks.js:195 -msgid "heap length" +#: js/blocks/MeterBlocks.js:661 +#.TRANS: don't lock notes to master clock +msgid "no clock" msgstr "" -#: js/HeapBlocks.js:254 -msgid "The Heap-empty? block returns true if the heap is empty." +#: js/blocks/MeterBlocks.js:700 +msgid "on weak beat do" msgstr "" -#: js/HeapBlocks.js:268 -#.TRANS: Is the heap empty? -msgid "heap empty?" +#: js/blocks/MeterBlocks.js:705 +msgid "The On-weak-beat block lets you specify actions to take on weak (off) beats." msgstr "" -#: js/HeapBlocks.js:317 -msgid "The Empty-heap block empties the heap." +#: js/blocks/MeterBlocks.js:750 +msgid "on strong beat" msgstr "" -#: js/HeapBlocks.js:327 -#: js/HeapBlocks.js:647 -#.TRANS: empty the heap -msgid "empty heap" +#: js/blocks/MeterBlocks.js:758 +msgid "The On-strong-beat block lets you specify actions to take on specified beats." msgstr "" -#: js/HeapBlocks.js:371 -msgid "The Reverse-heap block reverses the order of the heap." +#: js/blocks/MeterBlocks.js:769 +msgid "beat" msgstr "" -#: js/HeapBlocks.js:384 -#.TRANS: reverse the order of the heap -msgid "reverse heap" +#: js/blocks/MeterBlocks.js:813 +msgid "on every beat do" msgstr "" -#: js/HeapBlocks.js:428 -msgid "The Index-heap block returns a value in the heap at a specified location." +#: js/blocks/MeterBlocks.js:821 +msgid "The On-every-beat block lets you specify actions to take on every beat." msgstr "" -#: js/HeapBlocks.js:443 -#.TRANS: retrieve a value from the heap at index position in the heap -msgid "index heap" +#: js/blocks/MeterBlocks.js:874 +msgid "on every note do" msgstr "" -#: js/HeapBlocks.js:523 -msgid "The Set-heap entry block sets a value in he heap at the specified location." +#: js/blocks/MeterBlocks.js:882 +msgid "The On-every-note block lets you specify actions to take on every note." msgstr "" -#: js/HeapBlocks.js:619 -msgid "The Pop block removes the value at the top of the heap." +#: js/blocks/MeterBlocks.js:928 +#: js/blocks/MeterBlocks.js:999 +#.TRANS: sets tempo by defining a beat and beats per minute +msgid "master beats per minute" msgstr "" -#: js/HeapBlocks.js:633 -#.TRANS: pop a value off the top of the heap -msgid "pop" +#: js/blocks/MeterBlocks.js:952 +#: js/blocks/MeterBlocks.js:1078 +#: js/blocks/MeterBlocks.js:1135 +msgid "bpm" msgstr "" -#: js/HeapBlocks.js:680 -msgid "The Push block adds a value to the top of the heap." +#: js/blocks/MeterBlocks.js:952 +#: js/blocks/MeterBlocks.js:1078 +#: js/blocks/MeterBlocks.js:1135 +msgid "beat value" msgstr "" -#: js/HeapBlocks.js:696 -#.TRANS: push a value onto the top of the heap -msgid "push" +#: js/blocks/MeterBlocks.js:1024 +#: js/blocks/MeterBlocks.js:1167 +#: js/blocks/MeterBlocks.js:1241 +msgid "Beats per minute must be > 30." msgstr "" -#: js/FlowBlocks.js:41 -msgid "The Backward block runs code in reverse order (Musical retrograde)." +#: js/blocks/MeterBlocks.js:1027 +#: js/blocks/MeterBlocks.js:1170 +#: js/blocks/MeterBlocks.js:1244 +msgid "Maximum beats per minute is 1000." msgstr "" -#: js/FlowBlocks.js:48 -msgid "backward" +#: js/blocks/MeterBlocks.js:1068 +msgid "The Beats per minute block sets the number of 1/4 notes per minute." msgstr "" -#: js/FlowBlocks.js:124 -msgid "The Duplicate block will run each block multiple times." +#: js/blocks/MeterBlocks.js:1279 +#.TRANS: anacrusis +msgid "pickup" msgstr "" -#: js/FlowBlocks.js:136 -msgid "duplicate" +#: js/blocks/MeterBlocks.js:1367 +msgid "number of beats" msgstr "" -#: js/FlowBlocks.js:334 -msgid "The Default block is used inside of a Switch to define the default action." +#: js/blocks/NumberBlocks.js:28 +msgid "The Int block returns an integer." msgstr "" -#: js/FlowBlocks.js:342 -msgid "default" +#: js/blocks/NumberBlocks.js:34 +msgid "int" msgstr "" -#: js/FlowBlocks.js:361 -#: js/FlowBlocks.js:418 -msgid "The Case Block must be used inside of a Switch Block." +#: js/blocks/NumberBlocks.js:73 +msgid "The Mod block returns the remainder from a division." msgstr "" -#: js/FlowBlocks.js:389 -msgid "The Case block is used inside of a Switch to define matches." +#: js/blocks/NumberBlocks.js:79 +msgid "mod" msgstr "" -#: js/FlowBlocks.js:397 -msgid "case" +#: js/blocks/NumberBlocks.js:141 +msgid "The Power block calculates a power function." msgstr "" -#: js/FlowBlocks.js:446 -msgid "The Switch block will run the code in the matching Case." +#: js/blocks/NumberBlocks.js:196 +msgid "The Sqrt block returns the square root." msgstr "" -#: js/FlowBlocks.js:454 -msgid "switch" +#: js/blocks/NumberBlocks.js:202 +msgid "sqrt" msgstr "" -#: js/FlowBlocks.js:595 -msgid "The Stop block will stop a loop" +#: js/blocks/NumberBlocks.js:248 +msgid "The Abs block returns the absolute value." msgstr "" -#: js/FlowBlocks.js:597 -msgid "Forever, Repeat, While, or Until." +#: js/blocks/NumberBlocks.js:254 +msgid "abs" msgstr "" -#: js/FlowBlocks.js:604 -#: js/phrasemaker.js:3799 -#: js/musickeyboard.js:629 -#: js/musickeyboard.js:631 -#: js/timbre.js:417 -#: js/timbre.js:419 -#: plugins/rodi.rtp:29 -#: plugins/rodi.rtp:73 -#: plugins/rodi.rtp:413 -msgid "stop" +#: js/blocks/NumberBlocks.js:295 +msgid "The Distance block returns the distance between two points. For example, between the mouse and the center of the screen." msgstr "" -#: js/FlowBlocks.js:653 -msgid "The Waitfor block will wait until the condition is true." +#: js/blocks/NumberBlocks.js:301 +#: plugins/rodi.rtp:310 +msgid "distance" msgstr "" -#: js/FlowBlocks.js:661 -msgid "wait for" +#: js/blocks/NumberBlocks.js:361 +msgid "The Divide block is used to divide." msgstr "" -#: js/FlowBlocks.js:732 -msgid "The Until block will repeat until the condition is true." +#: js/blocks/NumberBlocks.js:441 +msgid "The Multiply block is used to multiply." msgstr "" -#: js/FlowBlocks.js:740 -msgid "until" +#: js/blocks/NumberBlocks.js:612 +msgid "The Minus block is used to subtract." msgstr "" -#: js/FlowBlocks.js:742 -#: js/FlowBlocks.js:822 -msgid "do2" +#: js/blocks/NumberBlocks.js:723 +msgid "The Plus block is used to add." msgstr "" -#: js/FlowBlocks.js:812 -msgid "The While block will repeat while the condition is true." +#: js/blocks/NumberBlocks.js:849 +msgid "The One-of block returns one of two choices." msgstr "" -#: js/FlowBlocks.js:820 -msgid "while" +#: js/blocks/NumberBlocks.js:856 +#: js/blocks/PitchBlocks.js:616 +msgid "one of" msgstr "" -#: js/FlowBlocks.js:903 -#: js/FlowBlocks.js:968 -#: js/FlowBlocks.js:979 -msgid "In this example if the mouse button is pressed a snare drum will play." +#: js/blocks/NumberBlocks.js:858 +msgid "this" msgstr "" -#: js/FlowBlocks.js:925 -#: js/FlowBlocks.js:988 -msgid "if" +#: js/blocks/NumberBlocks.js:858 +msgid "that" msgstr "" -#: js/FlowBlocks.js:927 -#: js/FlowBlocks.js:990 -msgid "then" +#: js/blocks/NumberBlocks.js:913 +msgid "The Random block returns a random number." msgstr "" -#: js/FlowBlocks.js:927 -msgid "else" +#: js/blocks/NumberBlocks.js:920 +msgid "random" msgstr "" -#: js/FlowBlocks.js:1025 -msgid "The Forever block will repeat the contained blocks forever." +#: js/blocks/NumberBlocks.js:922 +msgid "min" msgstr "" -#: js/FlowBlocks.js:1037 -msgid "forever" +#: js/blocks/NumberBlocks.js:922 +msgid "max" msgstr "" -#: js/FlowBlocks.js:1073 -msgid "The Repeat block will repeat the contained blocks." +#: js/blocks/NumberBlocks.js:986 +msgid "The Number block holds a number." msgstr "" -#: js/FlowBlocks.js:1075 -msgid "In this example the note will be played 4 times." +#: js/blocks/OrnamentBlocks.js:32 +msgid "staccato factor" msgstr "" -#: js/FlowBlocks.js:1083 -msgid "repeat" +#: js/blocks/OrnamentBlocks.js:108 +msgid "slur factor" msgstr "" -#: js/FlowBlocks.js:1123 -msgid "duplicate factor" +#: js/blocks/OrnamentBlocks.js:217 +#: js/blocks/OrnamentBlocks.js:309 +#.TRANS: the neighbor refers to a neighboring note, e.g., D is a neighbor of C +msgid "neighbor" msgstr "" -#: js/PitchBlocks.js:39 -#: js/musicutils.js:722 -#: js/musicutils.js:1117 -#: js/synthutils.js:112 -#.TRANS: square wave -msgid "square" +#: js/blocks/OrnamentBlocks.js:293 +msgid "The Neighbor block rapidly switches between neighboring pitches." msgstr "" -#: js/PitchBlocks.js:62 -#: js/ToneBlocks.js:39 -#: js/musicutils.js:723 -#: js/musicutils.js:1118 -#: js/synthutils.js:116 -#.TRANS: triangle wave -msgid "triangle" +#: js/blocks/OrnamentBlocks.js:364 +msgid "glide" msgstr "" -#: js/PitchBlocks.js:85 -#: js/musicutils.js:721 -#: js/musicutils.js:1116 -#: js/synthutils.js:110 -#.TRANS: sine wave -msgid "sine" +#: js/blocks/OrnamentBlocks.js:479 +#: js/blocks/OrnamentBlocks.js:643 +msgid "slur" msgstr "" -#: js/PitchBlocks.js:108 -#: js/musicutils.js:724 -#: js/musicutils.js:1119 -#: js/synthutils.js:114 -#.TRANS: sawtooth wave -msgid "sawtooth" +#: js/blocks/OrnamentBlocks.js:558 +#: js/blocks/OrnamentBlocks.js:710 +#.TRANS: play each note sharply detached from the others +msgid "staccato" msgstr "" -#: js/PitchBlocks.js:141 -#.TRANS: musical transposition (adjustment of pitch up or down) -msgid "transposition" +#: js/blocks/RhythmBlocks.js:182 +#: js/blocks/RhythmBlocks.js:1086 +#: js/blocks/RhythmBlocks.js:1162 +msgid "Note value must be greater than 0." msgstr "" -#: js/PitchBlocks.js:168 -#.TRANS: step down one note in current musical scale -msgid "scalar step down" +#: js/blocks/RhythmBlocks.js:215 +#: js/blocks/RhythmBlocks.js:278 +#: js/blocks/RhythmBlocks.js:350 +#.TRANS: swing is a rhythmic variation that emphasises the offbeat +msgid "swing" msgstr "" -#: js/PitchBlocks.js:172 -msgid "The Scalar step down block returns the number of semi-tones down to the previous note in the current key and mode." +#: js/blocks/RhythmBlocks.js:355 +#.TRANS: the amount to shift to the offbeat note +msgid "swing value" msgstr "" -#: js/PitchBlocks.js:190 -#.TRANS: step up one note in current musical scale -msgid "scalar step up" +#: js/blocks/RhythmBlocks.js:419 +msgid "The Skip notes block will cause notes to be skipped." msgstr "" -#: js/PitchBlocks.js:194 -msgid "The Scalar step up block returns the number of semi-tones up to the next note in the current key and mode." +#: js/blocks/RhythmBlocks.js:427 +#.TRANS: substitute rests on notes being skipped +msgid "skip notes" msgstr "" -#: js/PitchBlocks.js:212 -#.TRANS: the change measured in half-steps between the current pitch and the previous pitch -msgid "change in pitch" +#: js/blocks/RhythmBlocks.js:489 +#.TRANS: speed up note duration by some factor, e.g. convert 1/4 to 1/8 notes by using a factor of 2 +msgid "multiply note value" msgstr "" -#: js/PitchBlocks.js:216 -msgid "The Change in pitch block is the difference (in half steps) between the current pitch being played and the previous pitch played." +#: js/blocks/RhythmBlocks.js:542 +msgid "The Tie block works on pairs of notes, combining them into one note." msgstr "" -#: js/PitchBlocks.js:243 -#.TRANS: the change measured in scale-steps between the current pitch and the previous pitch -msgid "scalar change in pitch" +#: js/blocks/RhythmBlocks.js:550 +#.TRANS: tie notes together into one longer note +msgid "tie" msgstr "" -#: js/PitchBlocks.js:250 -#: js/PitchBlocks.js:432 -#: js/PitchBlocks.js:1629 -#: js/DictActions.js:89 -#: js/temperament.js:477 -#: js/temperament.js:481 -#: js/temperament.js:714 -#.TRANS: convert current note to piano key (1-88) -#.TRANS: a mapping of pitch to the 88 piano keys -msgid "pitch number" +#: js/blocks/RhythmBlocks.js:591 +#: js/blocks/RhythmBlocks.js:671 +#.TRANS: a dotted note is played for 1.5x its value, e.g., 1/8. --> 3/16 +msgid "dot" msgstr "" -#: js/PitchBlocks.js:256 -msgid "The Pitch number block is the value of the pitch of the note currently being played." +#: js/blocks/RhythmBlocks.js:619 +#: js/turtleactions/RhythmActions.js:221 +msgid "An argument of -1 results in a note value of 0." msgstr "" -#: js/PitchBlocks.js:329 -#: js/PitchBlocks.js:433 -#.TRANS: the current pitch expressed in Hertz -msgid "pitch in hertz" +#: js/blocks/RhythmBlocks.js:661 +msgid "The Dot block extends the duration of a note by 50%." msgstr "" -#: js/PitchBlocks.js:334 -msgid "The Pitch in Hertz block is the value in Hertz of the pitch of the note currently being played." +#: js/blocks/RhythmBlocks.js:663 +msgid "Eg a dotted quarter note will play for 3/8 (1/4 + 1/8) of a beat." msgstr "" -#: js/PitchBlocks.js:367 -#: js/DictActions.js:87 -msgid "current pitch" +#: js/blocks/RhythmBlocks.js:765 +#.TRANS: Japanese only: note value block for drum +msgid "note value drum" msgstr "" -#: js/PitchBlocks.js:373 -msgid "The Current Pitch block is used with the Pitch Converter block. In the example above, current pitch, sol 4, is displayed as 392 hertz." +#: js/blocks/RhythmBlocks.js:829 +msgid "392 hertz" msgstr "" -#: js/PitchBlocks.js:410 -msgid "This block converts the pitch value of the last note played into different formats such as hertz, letter name, pitch number, et al." +#: js/blocks/RhythmBlocks.js:1119 +msgid "The Note block is a container for one or more Pitch blocks." msgstr "" -#: js/PitchBlocks.js:434 -msgid "alphabet" +#: js/blocks/RhythmBlocks.js:1121 +msgid "The Note block specifies the duration (note value) of its contents." msgstr "" -#: js/PitchBlocks.js:436 -#.TRANS: Translate as "alphabet class" -msgid "letter class" +#: js/blocks/RhythmBlocks.js:1128 +#: js/blocks/PitchBlocks.js:974 +#: js/blocks/PitchBlocks.js:1007 +#: js/blocks/ProgramBlocks.js:1186 +#: js/blocks/ProgramBlocks.js:1227 +#: js/widgets/status.js:190 +#: js/widgets/temperament.js:464 +#: js/widgets/temperament.js:486 +#: js/widgets/temperament.js:496 +#: js/widgets/temperament.js:617 +#: plugins/rodi.rtp:192 +#.TRANS: a musical note consisting of pitch and duration +msgid "note" msgstr "" -#: js/PitchBlocks.js:437 -msgid "solfege class" +#: js/blocks/RhythmBlocks.js:1130 +msgid "value2" msgstr "" -#: js/PitchBlocks.js:438 -msgid "staff y" +#: js/blocks/RhythmBlocks.js:1200 +msgid "define frequency" msgstr "" -#: js/PitchBlocks.js:439 -msgid "solfege syllable" +#: js/blocks/RhythmBlocks.js:1218 +#: js/widgets/temperament.js:787 +#: js/widgets/temperament.js:1587 +msgid "octave space" msgstr "" -#: js/PitchBlocks.js:440 -msgid "pitch class" +#: js/blocks/SensorsBlocks.js:36 +msgid "The Input block prompts for keyboard input." msgstr "" -#: js/PitchBlocks.js:441 -msgid "scalar class" +#: js/blocks/SensorsBlocks.js:46 +msgid "input" msgstr "" -#: js/PitchBlocks.js:443 -msgid "nth degree" +#: js/blocks/SensorsBlocks.js:64 +msgid "Input a value" msgstr "" -#: js/PitchBlocks.js:444 -msgid "pitch to shade" +#: js/blocks/SensorsBlocks.js:126 +msgid "input value" msgstr "" -#: js/PitchBlocks.js:445 -msgid "pitch to color" +#: js/blocks/SensorsBlocks.js:131 +msgid "The Input-value block stores the input." msgstr "" -#: js/PitchBlocks.js:629 -#: js/musickeyboard.js:565 -#.TRANS: MIDI is a technical standard for electronic music -msgid "MIDI" +#: js/blocks/SensorsBlocks.js:238 +msgid "loudness" msgstr "" -#: js/PitchBlocks.js:642 -#.TRANS: set an offset associated with the numeric piano keyboard mapping -msgid "set pitch number offset" +#: js/blocks/SensorsBlocks.js:245 +msgid "The Loudness block returns the volume detected by the microphone." msgstr "" -#: js/PitchBlocks.js:645 -msgid "The Set pitch number offset block is used to set the offset for mapping pitch numbers to pitch and octave." +#: js/blocks/SensorsBlocks.js:300 +msgid "click" msgstr "" -#: js/PitchBlocks.js:679 -#.TRANS: convert piano key number (1-88) to pitch -msgid "number to pitch" +#: js/blocks/SensorsBlocks.js:306 +msgid "The Click block triggers an event if a mouse has been clicked." msgstr "" -#: js/PitchBlocks.js:682 -msgid "The Number to pitch block will convert a pitch number to a pich name." +#: js/blocks/SensorsBlocks.js:313 +msgid "The Click block triggers an event if a turtle has been clicked." msgstr "" -#: js/PitchBlocks.js:715 -#.TRANS: convert piano key number (1-88) to octave -msgid "number to octave" +#: js/blocks/SensorsBlocks.js:342 +msgid "cursor over" msgstr "" -#: js/PitchBlocks.js:717 -msgid "The Number to octave block will convert a pitch number to an octave." +#: js/blocks/SensorsBlocks.js:387 +msgid "cursor out" msgstr "" -#: js/PitchBlocks.js:726 -msgid "y to pitch" +#: js/blocks/SensorsBlocks.js:433 +msgid "cursor button down" msgstr "" -#: js/PitchBlocks.js:729 -msgid "Y to pitch block will convert a staff y position to corresponding pitch notation." +#: js/blocks/SensorsBlocks.js:477 +msgid "cursor button up" msgstr "" -#: js/PitchBlocks.js:841 -msgid "accidental selector" +#: js/blocks/SensorsBlocks.js:521 +#: js/blocks/PenBlocks.js:48 +#: plugins/rodi.rtp:219 +msgid "blue" msgstr "" -#: js/PitchBlocks.js:844 -msgid "The Accidental selector block is used to choose between double-sharp, sharp, natural, flat, and double-flat." +#: js/blocks/SensorsBlocks.js:577 +#: js/blocks/PenBlocks.js:64 +#: plugins/rodi.rtp:218 +msgid "green" msgstr "" -#: js/PitchBlocks.js:858 -msgid "Pitch can be specified in terms of ni dha pa ma ga re sa." +#: js/blocks/SensorsBlocks.js:633 +#: js/blocks/PenBlocks.js:112 +#: plugins/rodi.rtp:217 +msgid "red" msgstr "" -#: js/PitchBlocks.js:872 -msgid "Pitch can be specified in terms of C D E F G A B." +#: js/blocks/SensorsBlocks.js:638 +msgid "The Get red block returns the red component of the pixel under the mouse." msgstr "" -#: js/PitchBlocks.js:883 -msgid "solfege" +#: js/blocks/SensorsBlocks.js:644 +msgid "The Get red block returns the red component of the pixel under the turtle." msgstr "" -#: js/PitchBlocks.js:886 -msgid "Pitch can be specified in terms of do re mi fa sol la ti." +#: js/blocks/SensorsBlocks.js:685 +#: plugins/rodi.rtp:216 +msgid "pixel color" msgstr "" -#: js/PitchBlocks.js:920 -msgid "The Invert block rotates any contained notes around a target note." +#: js/blocks/SensorsBlocks.js:690 +msgid "The Get pixel block returns the color of the pixel under the mouse." msgstr "" -#: js/PitchBlocks.js:927 -#.TRANS: pitch inversion rotates a pitch around another pitch -msgid "invert" +#: js/blocks/SensorsBlocks.js:696 +msgid "The Get pixel block returns the color of the pixel under the turtle." msgstr "" -#: js/PitchBlocks.js:929 -#: js/PitchBlocks.js:935 -#: js/PitchActions.js:727 -#: js/musicutils.js:726 -#: js/musicutils.js:902 -#.TRANS: invert based on even or odd number or musical scale -#.TRANS: even numbers -msgid "even" +#: js/blocks/SensorsBlocks.js:758 +msgid "time" msgstr "" -#: js/PitchBlocks.js:935 -#: js/PitchActions.js:729 -#: js/musicutils.js:728 -#: js/musicutils.js:903 -#.TRANS: odd numbers -msgid "odd" +#: js/blocks/SensorsBlocks.js:804 +msgid "cursor y" msgstr "" -#: js/PitchBlocks.js:935 -#: js/PitchActions.js:731 -#: js/musicutils.js:729 -#: js/musicutils.js:904 -msgid "scalar" +#: js/blocks/SensorsBlocks.js:809 +msgid "The Cursor Y block returns the vertical position of the mouse." msgstr "" -#: js/PitchBlocks.js:966 -#.TRANS: pitch inversion rotates a pitch around another pitch (odd number) -msgid "invert (odd)" +#: js/blocks/SensorsBlocks.js:845 +msgid "cursor x" msgstr "" -#: js/PitchBlocks.js:999 -#.TRANS: pitch inversion rotates a pitch around another pitch (even number) -msgid "invert (even)" +#: js/blocks/SensorsBlocks.js:850 +msgid "The Cursor X block returns the horizontal position of the mouse." msgstr "" -#: js/PitchBlocks.js:1020 -#.TRANS: register is the octave of the current pitch -msgid "register" +#: js/blocks/SensorsBlocks.js:886 +msgid "mouse button" msgstr "" -#: js/PitchBlocks.js:1024 -msgid "The Register block provides an easy way to modify the register (octave) of the notes that follow it." +#: js/blocks/SensorsBlocks.js:888 +msgid "The Mouse-button block returns True if the mouse button is pressed." msgstr "" -#: js/PitchBlocks.js:1074 -msgid "The Semi-tone transposition block will shift the pitches contained inside Note blocks up (or down) by half steps." +#: js/blocks/SensorsBlocks.js:934 +msgid "to ASCII" msgstr "" -#: js/PitchBlocks.js:1076 -msgid "In the example shown above, sol is shifted up to sol#." +#: js/blocks/SensorsBlocks.js:938 +msgid "The To ASCII block converts numbers to letters." msgstr "" -#: js/PitchBlocks.js:1082 -#.TRANS: adjust the amount of shift (up or down) of a pitch -msgid "semi-tone transpose" +#: js/blocks/SensorsBlocks.js:1005 +msgid "The Keyboard block returns computer keyboard input." msgstr "" -#: js/PitchBlocks.js:1115 -msgid "The Transpose by Ratio block will shift the pitches contained inside Note blocks up (or down) by a ratio" +#: js/blocks/RhythmBlockPaletteBlocks.js:50 +#: js/blocks/RhythmBlockPaletteBlocks.js:233 +#.TRANS: rhythm block +#.TRANS: translate "rhythm1" as rhythm +msgid "rhythm1" msgstr "" -#: js/PitchBlocks.js:1121 -#.TRANS: adjust the amount of shift (up or down) of a pitch -msgid "transpose by ratio" +#: js/blocks/RhythmBlockPaletteBlocks.js:70 +#: js/blocks/RhythmBlockPaletteBlocks.js:252 +#: js/blocks/RhythmBlockPaletteBlocks.js:485 +#: js/blocks/RhythmBlockPaletteBlocks.js:554 +#: js/blocks/RhythmBlockPaletteBlocks.js:875 +msgid "number of notes" msgstr "" -#: js/PitchBlocks.js:1204 -#.TRANS: down sixth means the note is five scale degrees below current note -msgid "down sixth" +#: js/blocks/RhythmBlockPaletteBlocks.js:126 +msgid "polyphonic rhythm" msgstr "" -#: js/PitchBlocks.js:1223 -#.TRANS: down third means the note is two scale degrees below current note -msgid "down third" +#: js/blocks/RhythmBlockPaletteBlocks.js:219 +msgid "The Rhythm block is used to generate rhythm patterns." msgstr "" -#: js/PitchBlocks.js:1242 -#.TRANS: seventh means the note is the six scale degrees above current note -msgid "seventh" +#: js/blocks/RhythmBlockPaletteBlocks.js:280 +msgid "1/64 note" msgstr "" -#: js/PitchBlocks.js:1261 -#.TRANS: sixth means the note is the five scale degrees above current note -msgid "sixth" +#: js/blocks/RhythmBlockPaletteBlocks.js:304 +msgid "1/32 note" msgstr "" -#: js/PitchBlocks.js:1280 -#.TRANS: fifth means the note is the four scale degrees above current note -msgid "fifth" +#: js/blocks/RhythmBlockPaletteBlocks.js:332 +msgid "1/16 note" msgstr "" -#: js/PitchBlocks.js:1300 -#.TRANS: fourth means the note is three scale degrees above current note -msgid "fourth" +#: js/blocks/RhythmBlockPaletteBlocks.js:360 +msgid "eighth note" msgstr "" -#: js/PitchBlocks.js:1319 -#.TRANS: third means the note is two scale degrees above current note -msgid "third" +#: js/blocks/RhythmBlockPaletteBlocks.js:388 +msgid "quarter note" msgstr "" -#: js/PitchBlocks.js:1338 -#.TRANS: second means the note is one scale degree above current note -msgid "second" +#: js/blocks/RhythmBlockPaletteBlocks.js:416 +msgid "half note" msgstr "" -#: js/PitchBlocks.js:1379 -msgid "The Scalar transposition block will shift the pitches contained inside Note blocks up (or down) the scale." +#: js/blocks/RhythmBlockPaletteBlocks.js:444 +msgid "whole note" msgstr "" -#: js/PitchBlocks.js:1381 -msgid "In the example shown above, sol is shifted up to la." +#: js/blocks/RhythmBlockPaletteBlocks.js:482 +#: js/blocks/RhythmBlockPaletteBlocks.js:551 +#: js/blocks/RhythmBlockPaletteBlocks.js:602 +#.TRANS: A tuplet is a note value divided into irregular time values. +msgid "tuplet" msgstr "" -#: js/PitchBlocks.js:1388 -#.TRANS: adjust the amount of shift (up or down) of a pitch by musical scale (scalar) steps -msgid "scalar transpose" +#: js/blocks/RhythmBlockPaletteBlocks.js:768 +msgid "septuplet" msgstr "" -#: js/PitchBlocks.js:1423 -msgid "The Accidental block is used to create sharps and flats" +#: js/blocks/RhythmBlockPaletteBlocks.js:796 +msgid "quintuplet" msgstr "" -#: js/PitchBlocks.js:1430 -#.TRANS: An accidental is a modification to a pitch, e.g., sharp or flat. -msgid "accidental override" +#: js/blocks/RhythmBlockPaletteBlocks.js:824 +msgid "triplet" msgstr "" -#: js/PitchBlocks.js:1543 -msgid "The Hertz block (in combination with a Number block) will play a sound at the specified frequency." +#: js/blocks/RhythmBlockPaletteBlocks.js:851 +msgid "simple tuplet" msgstr "" -#: js/PitchBlocks.js:1633 -msgid "The Pitch Number block will play a pitch associated by its number, e.g. 0 for C and 7 for G." +#: js/blocks/RhythmBlockPaletteBlocks.js:861 +msgid "Tuplets are a collection of notes that get scaled to a specific duration." msgstr "" -#: js/PitchBlocks.js:1665 -#: js/PitchBlocks.js:1707 -#.TRANS: a numeric mapping of the notes in an octave based on the musical mode -#.TRANS: a numeric mapping of the notes in an octave based on the musical mode -msgid "nth modal pitch" +#: js/blocks/DrumBlocks.js:59 +msgid "The Noise name block is used to select a noise synthesizer." msgstr "" -#: js/PitchBlocks.js:1668 -msgid "n^th Modal Pitch takes the pattern of pitches in semitones for a mode and makes each point a degree of the mode," +#: js/blocks/DrumBlocks.js:102 +msgid "The Drum name block is used to select a drum." msgstr "" -#: js/PitchBlocks.js:1670 -msgid "starting from 1 and regardless of tonal framework (i.e. not always 8 notes in the octave)" +#: js/blocks/DrumBlocks.js:146 +msgid "The Effects name block is used to select a sound effect." msgstr "" -#: js/PitchBlocks.js:1711 -msgid "N^th Modal Pitch takes a number as an input as the n^th degree for the given mode. 0 is the first position, 1 is the second, -1 is the note before the first etc." +#: js/blocks/DrumBlocks.js:163 +msgid "noise" msgstr "" -#: js/PitchBlocks.js:1713 -msgid "The pitches change according to the mode specified without any need for respellings." +#: js/blocks/DrumBlocks.js:177 +msgid "The Play noise block will generate white, pink, or brown noise." msgstr "" -#: js/PitchBlocks.js:1752 -msgid "Scale Degree is a common convention in music. Scale Degree offers seven possible positions in the scale (1-7) and can be modified via accidentals." +#: js/blocks/DrumBlocks.js:317 +msgid "Replace every instance of a pitch with a drum sound." msgstr "" -#: js/PitchBlocks.js:1754 -msgid "Scale Degree 1 is always the first pitch in a given scale, regardless of octave." +#: js/blocks/DrumBlocks.js:328 +#.TRANS: map a pitch to a drum sound +msgid "map pitch to drum" msgstr "" -#: js/PitchBlocks.js:1776 -#.TRANS: step some number of notes in current musical scale -msgid "scalar step" +#: js/blocks/DrumBlocks.js:395 +msgid "In the example above, a kick drum sound will be played instead of sol." msgstr "" -#: js/PitchBlocks.js:1781 -msgid "The Scalar Step block (in combination with a Number block) will play the next pitch in a scale," +#: js/blocks/DrumBlocks.js:407 +#.TRANS: set the current drum sound for playback +msgid "set drum" msgstr "" -#: js/PitchBlocks.js:1783 -msgid "eg if the last note played was sol, Scalar Step 1 will play la." +#: js/blocks/DrumBlocks.js:451 +msgid "sound effect" msgstr "" -#: js/PitchBlocks.js:1818 -msgid "The Pitch block specifies the pitch name and octave of a note that together determine the frequency of the note." +#: js/blocks/DrumBlocks.js:489 +msgid "You can use multiple Drum blocks within a Note block." msgstr "" -#: js/GraphicsBlocks.js:46 -#: js/DictActions.js:77 -#: js/DictActions.js:155 -#: js/DictActions.js:189 +#: js/blocks/GraphicsBlocks.js:46 +#: js/turtleactions/DictActions.js:77 +#: js/turtleactions/DictActions.js:144 +#: js/turtleactions/DictActions.js:173 msgid "heading" msgstr "" -#: js/GraphicsBlocks.js:56 +#: js/blocks/GraphicsBlocks.js:56 msgid "The Heading block returns the orientation of the mouse." msgstr "" -#: js/GraphicsBlocks.js:62 +#: js/blocks/GraphicsBlocks.js:62 msgid "The Heading block returns the orientation of the turtle." msgstr "" -#: js/GraphicsBlocks.js:133 +#: js/blocks/GraphicsBlocks.js:133 msgid "The Y block returns the vertical position of the mouse." msgstr "" -#: js/GraphicsBlocks.js:140 +#: js/blocks/GraphicsBlocks.js:140 msgid "The Y block returns the vertical position of the turtle." msgstr "" -#: js/GraphicsBlocks.js:149 +#: js/blocks/GraphicsBlocks.js:149 msgid "y3" msgstr "" -#: js/GraphicsBlocks.js:219 +#: js/blocks/GraphicsBlocks.js:219 msgid "The X block returns the horizontal position of the mouse." msgstr "" -#: js/GraphicsBlocks.js:226 +#: js/blocks/GraphicsBlocks.js:226 msgid "The X block returns the horizontal position of the turtle." msgstr "" -#: js/GraphicsBlocks.js:235 +#: js/blocks/GraphicsBlocks.js:235 msgid "x3" msgstr "" -#: js/GraphicsBlocks.js:295 +#: js/blocks/GraphicsBlocks.js:295 msgid "scroll xy" msgstr "" -#: js/GraphicsBlocks.js:303 +#: js/blocks/GraphicsBlocks.js:303 msgid "The Scroll XY block moves the canvas." msgstr "" -#: js/GraphicsBlocks.js:313 +#: js/blocks/GraphicsBlocks.js:313 msgid "x2" msgstr "" -#: js/GraphicsBlocks.js:313 +#: js/blocks/GraphicsBlocks.js:313 msgid "y2" msgstr "" -#: js/GraphicsBlocks.js:373 -#: js/temperament.js:213 -#: js/temperament.js:241 +#: js/blocks/GraphicsBlocks.js:373 +#: js/widgets/temperament.js:319 +#: js/widgets/temperament.js:347 msgid "clear" msgstr "" -#: js/GraphicsBlocks.js:426 +#: js/blocks/GraphicsBlocks.js:426 msgid "The Control-point 2 block sets the second control point for the Bezier curve." msgstr "" -#: js/GraphicsBlocks.js:433 +#: js/blocks/GraphicsBlocks.js:433 msgid "control point 2" msgstr "" -#: js/GraphicsBlocks.js:436 -#: js/GraphicsBlocks.js:487 -#: js/GraphicsBlocks.js:534 -#: js/GraphicsBlocks.js:750 +#: js/blocks/GraphicsBlocks.js:436 +#: js/blocks/GraphicsBlocks.js:487 +#: js/blocks/GraphicsBlocks.js:534 +#: js/blocks/GraphicsBlocks.js:750 msgid "x1" msgstr "" -#: js/GraphicsBlocks.js:436 -#: js/GraphicsBlocks.js:487 -#: js/GraphicsBlocks.js:534 -#: js/GraphicsBlocks.js:750 +#: js/blocks/GraphicsBlocks.js:436 +#: js/blocks/GraphicsBlocks.js:487 +#: js/blocks/GraphicsBlocks.js:534 +#: js/blocks/GraphicsBlocks.js:750 msgid "y1" msgstr "" -#: js/GraphicsBlocks.js:477 +#: js/blocks/GraphicsBlocks.js:477 msgid "The Control-point 1 block sets the first control point for the Bezier curve." msgstr "" -#: js/GraphicsBlocks.js:484 +#: js/blocks/GraphicsBlocks.js:484 msgid "control point 1" msgstr "" -#: js/GraphicsBlocks.js:527 +#: js/blocks/GraphicsBlocks.js:527 msgid "The Bezier block draws a Bezier curve." msgstr "" -#: js/GraphicsBlocks.js:531 +#: js/blocks/GraphicsBlocks.js:531 msgid "bezier" msgstr "" -#: js/GraphicsBlocks.js:592 +#: js/blocks/GraphicsBlocks.js:592 msgid "The Arc block moves the turtle in an arc." msgstr "" -#: js/GraphicsBlocks.js:600 +#: js/blocks/GraphicsBlocks.js:600 msgid "arc" msgstr "" -#: js/GraphicsBlocks.js:603 +#: js/blocks/GraphicsBlocks.js:603 msgid "angle" msgstr "" -#: js/GraphicsBlocks.js:603 +#: js/blocks/GraphicsBlocks.js:603 msgid "radius" msgstr "" -#: js/GraphicsBlocks.js:620 -#: js/GraphicsBlocks.js:767 -#: js/GraphicsBlocks.js:1010 -#: js/GraphicsBlocks.js:1093 +#: js/blocks/GraphicsBlocks.js:620 +#: js/blocks/GraphicsBlocks.js:767 +#: js/blocks/GraphicsBlocks.js:1010 +#: js/blocks/GraphicsBlocks.js:1093 msgid "Value must be within -5000 to 5000 when Wrap Mode is off." msgstr "" -#: js/GraphicsBlocks.js:622 -#: js/GraphicsBlocks.js:769 -#: js/GraphicsBlocks.js:1012 -#: js/GraphicsBlocks.js:1095 +#: js/blocks/GraphicsBlocks.js:622 +#: js/blocks/GraphicsBlocks.js:769 +#: js/blocks/GraphicsBlocks.js:1012 +#: js/blocks/GraphicsBlocks.js:1095 msgid "Value must be within -20000 to 20000 when Wrap Mode is on." msgstr "" -#: js/GraphicsBlocks.js:660 +#: js/blocks/GraphicsBlocks.js:660 msgid "set heading" msgstr "seth" -#: js/GraphicsBlocks.js:673 +#: js/blocks/GraphicsBlocks.js:673 msgid "The Set heading block sets the heading of the turtle." msgstr "" -#: js/GraphicsBlocks.js:733 +#: js/blocks/GraphicsBlocks.js:733 msgid "The Set XY block moves the mouse to a specific position on the screen." msgstr "" -#: js/GraphicsBlocks.js:739 +#: js/blocks/GraphicsBlocks.js:739 msgid "The Set XY block moves the turtle to a specific position on the screen." msgstr "" -#: js/GraphicsBlocks.js:747 +#: js/blocks/GraphicsBlocks.js:747 msgid "set xy" msgstr "" -#: js/GraphicsBlocks.js:819 +#: js/blocks/GraphicsBlocks.js:819 msgid "The Right block turns the mouse to the right." msgstr "" -#: js/GraphicsBlocks.js:826 +#: js/blocks/GraphicsBlocks.js:826 msgid "The Right block turns the turtle to the right." msgstr "" -#: js/GraphicsBlocks.js:835 +#: js/blocks/GraphicsBlocks.js:835 msgid "right1" msgstr "" -#: js/GraphicsBlocks.js:835 +#: js/blocks/GraphicsBlocks.js:835 #: plugins/rodi.rtp:77 #: plugins/rodi.rtp:340 #: plugins/rodi.rtp:375 msgid "right" msgstr "" -#: js/GraphicsBlocks.js:899 +#: js/blocks/GraphicsBlocks.js:899 msgid "The Left block turns the mouse to the left." msgstr "" -#: js/GraphicsBlocks.js:906 +#: js/blocks/GraphicsBlocks.js:906 msgid "The Left block turns the turtle to the left." msgstr "" -#: js/GraphicsBlocks.js:915 +#: js/blocks/GraphicsBlocks.js:915 msgid "left1" msgstr "" -#: js/GraphicsBlocks.js:915 +#: js/blocks/GraphicsBlocks.js:915 #: plugins/rodi.rtp:79 #: plugins/rodi.rtp:339 #: plugins/rodi.rtp:362 msgid "left" msgstr "" -#: js/GraphicsBlocks.js:967 -#: js/temperament.js:734 -#: js/temperament.js:933 +#: js/blocks/GraphicsBlocks.js:967 +#: js/widgets/temperament.js:875 +#: js/widgets/temperament.js:1078 #: plugins/rodi.rtp:69 #: plugins/rodi.rtp:387 msgid "back" msgstr "" -#: js/GraphicsBlocks.js:976 +#: js/blocks/GraphicsBlocks.js:976 msgid "The Back block moves the mouse backward." msgstr "" -#: js/GraphicsBlocks.js:983 +#: js/blocks/GraphicsBlocks.js:983 msgid "The Back block moves the turtle backward." msgstr "" -#: js/GraphicsBlocks.js:1050 +#: js/blocks/GraphicsBlocks.js:1050 #: plugins/rodi.rtp:71 #: plugins/rodi.rtp:400 msgid "forward" msgstr "" -#: js/GraphicsBlocks.js:1059 +#: js/blocks/GraphicsBlocks.js:1059 msgid "The Forward block moves the mouse forward." msgstr "" -#: js/GraphicsBlocks.js:1066 +#: js/blocks/GraphicsBlocks.js:1066 msgid "The Forward block moves the turtle forward." msgstr "" -#: js/GraphicsBlocks.js:1154 -#: js/GraphicsBlocks.js:1172 +#: js/blocks/GraphicsBlocks.js:1154 +#: js/blocks/GraphicsBlocks.js:1172 msgid "wrap" msgstr "" -#: js/OrnamentBlocks.js:32 -msgid "staccato factor" -msgstr "" - -#: js/OrnamentBlocks.js:108 -msgid "slur factor" -msgstr "" - -#: js/OrnamentBlocks.js:217 -#: js/OrnamentBlocks.js:309 -#.TRANS: the neighbor refers to a neighboring note, e.g., D is a neighbor of C -msgid "neighbor" -msgstr "" - -#: js/OrnamentBlocks.js:293 -msgid "The Neighbor block rapidly switches between neighboring pitches." -msgstr "" - -#: js/OrnamentBlocks.js:364 -msgid "glide" -msgstr "" - -#: js/OrnamentBlocks.js:479 -#: js/OrnamentBlocks.js:643 -msgid "slur" -msgstr "" - -#: js/OrnamentBlocks.js:558 -#: js/OrnamentBlocks.js:710 -#.TRANS: play each note sharply detached from the others -msgid "staccato" -msgstr "" - -#: js/PenBlocks.js:24 +#: js/blocks/PenBlocks.js:30 msgid "purple" msgstr "" -#: js/PenBlocks.js:37 -#: js/SensorsBlocks.js:521 -#: plugins/rodi.rtp:219 -msgid "blue" -msgstr "" - -#: js/PenBlocks.js:50 -#: js/SensorsBlocks.js:577 -#: plugins/rodi.rtp:218 -msgid "green" -msgstr "" - -#: js/PenBlocks.js:63 +#: js/blocks/PenBlocks.js:80 msgid "yellow" msgstr "" -#: js/PenBlocks.js:76 +#: js/blocks/PenBlocks.js:96 #: plugins/nutrition.rtp:164 msgid "orange" msgstr "" -#: js/PenBlocks.js:89 -#: js/SensorsBlocks.js:633 -#: plugins/rodi.rtp:217 -msgid "red" -msgstr "" - -#: js/PenBlocks.js:102 +#: js/blocks/PenBlocks.js:128 msgid "white" msgstr "" -#: js/PenBlocks.js:115 +#: js/blocks/PenBlocks.js:144 msgid "black" msgstr "" -#: js/PenBlocks.js:128 +#: js/blocks/PenBlocks.js:163 msgid "begin fill" msgstr "" -#: js/PenBlocks.js:143 +#: js/blocks/PenBlocks.js:190 msgid "end fill" msgstr "" -#: js/PenBlocks.js:159 -#: js/PenBlocks.js:386 +#: js/blocks/PenBlocks.js:212 +#: js/blocks/PenBlocks.js:560 #.TRANS: set the background color msgid "background" msgstr "" -#: js/PenBlocks.js:206 -#: js/DictActions.js:71 -#: js/DictActions.js:149 -#: js/DictActions.js:186 +#: js/blocks/PenBlocks.js:274 +#: js/turtleactions/DictActions.js:71 +#: js/turtleactions/DictActions.js:138 +#: js/turtleactions/DictActions.js:170 msgid "grey" msgstr "" -#: js/PenBlocks.js:210 +#: js/blocks/PenBlocks.js:282 msgid "The Grey block returns the current pen grey value." msgstr "" -#: js/PenBlocks.js:243 -#: js/DictActions.js:69 -#: js/DictActions.js:147 -#: js/DictActions.js:185 +#: js/blocks/PenBlocks.js:340 +#: js/turtleactions/DictActions.js:69 +#: js/turtleactions/DictActions.js:136 +#: js/turtleactions/DictActions.js:169 msgid "shade" msgstr "" -#: js/PenBlocks.js:247 +#: js/blocks/PenBlocks.js:347 msgid "The Shade block returns the current pen shade value." msgstr "" -#: js/PenBlocks.js:280 -#: js/DictActions.js:67 -#: js/DictActions.js:145 -#: js/DictActions.js:184 +#: js/blocks/PenBlocks.js:405 +#: js/turtleactions/DictActions.js:67 +#: js/turtleactions/DictActions.js:134 +#: js/turtleactions/DictActions.js:168 msgid "color" msgstr "" -#: js/PenBlocks.js:285 +#: js/blocks/PenBlocks.js:415 msgid "The Color block returns the current pen color." msgstr "" -#: js/PenBlocks.js:318 -#: js/DictActions.js:73 -#: js/DictActions.js:151 -#: js/DictActions.js:187 +#: js/blocks/PenBlocks.js:470 +#: js/turtleactions/DictActions.js:73 +#: js/turtleactions/DictActions.js:140 +#: js/turtleactions/DictActions.js:171 msgid "pen size" msgstr "" -#: js/PenBlocks.js:322 +#: js/blocks/PenBlocks.js:474 msgid "The Pen size block returns the current pen size value." msgstr "" -#: js/PenBlocks.js:355 +#: js/blocks/PenBlocks.js:513 msgid "set font" msgstr "" -#: js/PenBlocks.js:358 +#: js/blocks/PenBlocks.js:518 msgid "The Set font block sets the font used by the Show block." msgstr "" -#: js/PenBlocks.js:391 +#: js/blocks/PenBlocks.js:567 msgid "The Background block sets the window background color." msgstr "" -#: js/PenBlocks.js:408 +#: js/blocks/PenBlocks.js:598 msgid "The Hollow line block creates a line with a hollow center." msgstr "" -#: js/PenBlocks.js:415 +#: js/blocks/PenBlocks.js:606 #.TRANS: draw a line logo has a hollow space down its center msgid "hollow line" msgstr "" -#: js/PenBlocks.js:462 +#: js/blocks/PenBlocks.js:675 msgid "The Fill block fills in a shape with a color." msgstr "" -#: js/PenBlocks.js:470 +#: js/blocks/PenBlocks.js:684 #.TRANS: fill in as a solid color msgid "fill" msgstr "" -#: js/PenBlocks.js:527 +#: js/blocks/PenBlocks.js:761 #.TRANS: raise up the pen so logo it does not draw when it is moved msgid "pen up" msgstr "" -#: js/PenBlocks.js:532 +#: js/blocks/PenBlocks.js:768 msgid "The Pen-up block raises the pen so that it does not draw." msgstr "" -#: js/PenBlocks.js:552 +#: js/blocks/PenBlocks.js:802 #.TRANS: put down the pen so logo it draws when it is moved msgid "pen down" msgstr "" -#: js/PenBlocks.js:557 +#: js/blocks/PenBlocks.js:810 msgid "The Pen-down block lowers the pen so that it draws." msgstr "" -#: js/PenBlocks.js:577 +#: js/blocks/PenBlocks.js:844 #.TRANS: set the width of the line drawn by the pen msgid "set pen size" msgstr "" -#: js/PenBlocks.js:583 +#: js/blocks/PenBlocks.js:854 msgid "The Set-pen-size block changes the size of the pen." msgstr "" -#: js/PenBlocks.js:623 +#: js/blocks/PenBlocks.js:913 #.TRANS: set degree of translucence of the pen color msgid "set translucency" msgstr "" -#: js/PenBlocks.js:627 +#: js/blocks/PenBlocks.js:921 msgid "The Set translucency block changes the opacity of the pen." msgstr "" -#: js/PenBlocks.js:668 +#: js/blocks/PenBlocks.js:981 msgid "set hue" msgstr "" -#: js/PenBlocks.js:672 +#: js/blocks/PenBlocks.js:989 msgid "The Set hue block changes the color of the pen." msgstr "" -#: js/PenBlocks.js:711 +#: js/blocks/PenBlocks.js:1047 msgid "set shade" msgstr "" -#: js/PenBlocks.js:717 +#: js/blocks/PenBlocks.js:1057 msgid "The Set-shade block changes the pen color from dark to light." msgstr "" -#: js/PenBlocks.js:757 +#: js/blocks/PenBlocks.js:1111 #.TRANS: set the level of vividness of the pen color msgid "set grey" msgstr "" -#: js/PenBlocks.js:761 +#: js/blocks/PenBlocks.js:1119 msgid "The Set grey block changes the vividness of the pen color." msgstr "" -#: js/PenBlocks.js:800 +#: js/blocks/PenBlocks.js:1172 msgid "set color" msgstr "" -#: js/PenBlocks.js:806 +#: js/blocks/PenBlocks.js:1182 msgid "The Set-color block changes the pen color." msgstr "" -#: js/VolumeBlocks.js:35 -msgid "synth volume" -msgstr "" - -#: js/VolumeBlocks.js:39 -msgid "The Synth volume block returns the current volume of the current synthesizer." -msgstr "" - -#: js/VolumeBlocks.js:47 -#: js/musicutils.js:730 -#: js/synthutils.js:56 -#.TRANS: musical instrument -msgid "piano" -msgstr "" - -#: js/VolumeBlocks.js:105 -msgid "master volume" -msgstr "" - -#: js/VolumeBlocks.js:109 -msgid "The Master volume block returns the master volume." -msgstr "" - -#: js/VolumeBlocks.js:355 -#: js/VolumeBlocks.js:524 -msgid "set synth volume" -msgstr "" - -#: js/VolumeBlocks.js:362 -#: js/VolumeBlocks.js:545 -msgid "synth" -msgstr "" - -#: js/VolumeBlocks.js:403 -#: js/VolumeBlocks.js:577 -#: js/VolumeBlocks.js:740 -#: js/VolumeActions.js:173 -msgid "Setting volume to 0." -msgstr "" - -#: js/VolumeBlocks.js:440 -msgid "Synth not found" -msgstr "" - -#: js/VolumeBlocks.js:494 -msgid "set drum volume" -msgstr "" - -#: js/VolumeBlocks.js:530 -msgid "The Set synth volume block will change the volume of a particular synth," -msgstr "" - -#: js/VolumeBlocks.js:532 -msgid "eg guitar violin snare drum etc." -msgstr "" - -#: js/VolumeBlocks.js:534 -msgid "The default volume is 50." -msgstr "" - -#: js/VolumeBlocks.js:536 -msgid "The range is 0 for silence to 100 for full volume." -msgstr "" - -#: js/VolumeBlocks.js:597 -msgid "set panning" -msgstr "" - -#: js/VolumeBlocks.js:603 -msgid "The Set Panning block sets the panning for all synthesizers." -msgstr "" - -#: js/VolumeBlocks.js:625 -msgid "Warning: Sound is coming out from only the left or right side." -msgstr "" - -#: js/VolumeBlocks.js:647 -#: js/VolumeBlocks.js:695 -msgid "set master volume" -msgstr "" - -#: js/VolumeBlocks.js:653 -msgid "The Set master volume block sets the volume for all synthesizers." -msgstr "" - -#: js/VolumeBlocks.js:784 -msgid "The Set relative volume block changes the volume of the contained notes." -msgstr "" - -#: js/VolumeBlocks.js:791 -msgid "set relative volume" -msgstr "" - -#: js/VolumeBlocks.js:857 -msgid "decrescendo" -msgstr "" - -#: js/VolumeBlocks.js:921 -msgid "crescendo" -msgstr "" - -#: js/ToneBlocks.js:34 -msgid "oscillator" -msgstr "" - -#: js/ToneBlocks.js:44 -#: js/timbre.js:1562 -#.TRANS: Partials refers to the number of sine waves combined into the sound. -msgid "partials" -msgstr "" - -#: js/ToneBlocks.js:76 -msgid "You are adding multiple oscillator blocks." -msgstr "" - -#: js/ToneBlocks.js:144 -#: js/timbre.js:1225 -#.TRANS: a duo synthesizer combines a synth with a sequencer -msgid "duo synth" -msgstr "" - -#: js/ToneBlocks.js:149 -msgid "The Duo synth block is a duo-frequency modulator used to define a timbre." -msgstr "" - -#: js/ToneBlocks.js:157 -#: js/timbre.js:1476 -msgid "vibrato rate" -msgstr "" - -#: js/ToneBlocks.js:157 -msgid "vibrato intensity" -msgstr "" - -#: js/ToneBlocks.js:185 -#: js/timbre.js:1221 -#.TRANS: AM (amplitude modulation) synthesizer -msgid "AM synth" -msgstr "" - -#: js/ToneBlocks.js:189 -msgid "The AM synth block is an amplitude modulator used to define a timbre." -msgstr "" - -#: js/ToneBlocks.js:224 -#: js/timbre.js:1223 -#.TRANS: FM (frequency modulation) synthesizer -msgid "FM synth" -msgstr "" - -#: js/ToneBlocks.js:228 -msgid "The FM synth block is a frequency modulator used to define a timbre." +#: js/blocks/PitchBlocks.js:141 +#.TRANS: musical transposition (adjustment of pitch up or down) +msgid "transposition" msgstr "" -#: js/ToneBlocks.js:262 -msgid "partial" +#: js/blocks/PitchBlocks.js:168 +#.TRANS: step down one note in current musical scale +msgid "scalar step down" msgstr "" -#: js/ToneBlocks.js:265 -msgid "The Partial block is used to specify a weight for a specific partial harmonic." +#: js/blocks/PitchBlocks.js:172 +msgid "The Scalar step down block returns the number of semi-tones down to the previous note in the current key and mode." msgstr "" -#: js/ToneBlocks.js:284 -#.TRANS: partials are weighted components in a harmonic series -msgid "Partial weight must be between 0 and 1." +#: js/blocks/PitchBlocks.js:190 +#.TRANS: step up one note in current musical scale +msgid "scalar step up" msgstr "" -#: js/ToneBlocks.js:297 -#.TRANS: partials are weighted components in a harmonic series -msgid "Partial block should be used inside of a Weighted-partials block." +#: js/blocks/PitchBlocks.js:194 +msgid "The Scalar step up block returns the number of semi-tones up to the next note in the current key and mode." msgstr "" -#: js/ToneBlocks.js:325 -#.TRANS: partials are weighted components in a harmonic series -msgid "weighted partials" +#: js/blocks/PitchBlocks.js:212 +#.TRANS: the change measured in half-steps between the current pitch and the previous pitch +msgid "change in pitch" msgstr "" -#: js/ToneBlocks.js:383 -msgid "The Harmonic block will add harmonics to the contained notes." +#: js/blocks/PitchBlocks.js:216 +msgid "The Change in pitch block is the difference (in half steps) between the current pitch being played and the previous pitch played." msgstr "" -#: js/ToneBlocks.js:390 -#.TRANS: A harmonic is an overtone. -msgid "harmonic" +#: js/blocks/PitchBlocks.js:243 +#.TRANS: the change measured in scale-steps between the current pitch and the previous pitch +msgid "scalar change in pitch" msgstr "" -#: js/ToneBlocks.js:431 -msgid "The Distortion block adds distortion to the pitch." +#: js/blocks/PitchBlocks.js:250 +#: js/blocks/PitchBlocks.js:432 +#: js/blocks/PitchBlocks.js:1667 +#: js/turtleactions/DictActions.js:89 +#: js/widgets/temperament.js:610 +#: js/widgets/temperament.js:614 +#: js/widgets/temperament.js:855 +#.TRANS: convert current note to piano key (1-88) +#.TRANS: a mapping of pitch to the 88 piano keys +msgid "pitch number" msgstr "" -#: js/ToneBlocks.js:438 -#: js/timbre.js:2100 -#.TRANS: distortion is an alteration in the sound -msgid "distortion" +#: js/blocks/PitchBlocks.js:256 +msgid "The Pitch number block is the value of the pitch of the note currently being played." msgstr "" -#: js/ToneBlocks.js:487 -msgid "The Tremolo block adds a wavering effect." +#: js/blocks/PitchBlocks.js:329 +#: js/blocks/PitchBlocks.js:433 +#.TRANS: the current pitch expressed in Hertz +msgid "pitch in hertz" msgstr "" -#: js/ToneBlocks.js:495 -#: js/timbre.js:2092 -#.TRANS: a wavering effect in a musical tone -msgid "tremolo" +#: js/blocks/PitchBlocks.js:334 +msgid "The Pitch in Hertz block is the value in Hertz of the pitch of the note currently being played." msgstr "" -#: js/ToneBlocks.js:500 -#: js/ToneBlocks.js:569 -#: js/ToneBlocks.js:630 -#: js/ToneBlocks.js:689 -#: js/timbre.js:2134 -#: js/timbre.js:2222 -#: js/timbre.js:2317 -#: js/timbre.js:2419 -#.TRANS: rate at which tremolo wavers -msgid "rate" +#: js/blocks/PitchBlocks.js:367 +#: js/turtleactions/DictActions.js:87 +msgid "current pitch" msgstr "" -#: js/ToneBlocks.js:502 -#: js/ToneBlocks.js:630 -#: js/timbre.js:2137 -#: js/timbre.js:2328 -#.TRANS: amplitude of tremolo waver -msgid "depth" +#: js/blocks/PitchBlocks.js:373 +msgid "The Current Pitch block is used with the Pitch Converter block. In the example above, current pitch, sol 4, is displayed as 392 hertz." msgstr "" -#: js/ToneBlocks.js:559 -msgid "The Phaser block adds a sweeping sound." +#: js/blocks/PitchBlocks.js:410 +msgid "This block converts the pitch value of the last note played into different formats such as hertz, letter name, pitch number, et al." msgstr "" -#: js/ToneBlocks.js:566 -#: js/timbre.js:2098 -#.TRANS: alter the phase of the sound -msgid "phaser" +#: js/blocks/PitchBlocks.js:434 +msgid "alphabet" msgstr "" -#: js/ToneBlocks.js:569 -#: js/timbre.js:2422 -msgid "octaves" +#: js/blocks/PitchBlocks.js:436 +#.TRANS: Translate as "alphabet class" +msgid "letter class" msgstr "" -#: js/ToneBlocks.js:569 -#: js/timbre.js:2425 -msgid "base frequency" +#: js/blocks/PitchBlocks.js:437 +msgid "solfege class" msgstr "" -#: js/ToneBlocks.js:619 -msgid "The Chorus block adds a chorus effect." +#: js/blocks/PitchBlocks.js:438 +msgid "staff y" msgstr "" -#: js/ToneBlocks.js:627 -#: js/timbre.js:2096 -#.TRANS: musical effect to simulate a choral sound -msgid "chorus" +#: js/blocks/PitchBlocks.js:439 +msgid "solfege syllable" msgstr "" -#: js/ToneBlocks.js:630 -msgid "delay" +#: js/blocks/PitchBlocks.js:440 +msgid "pitch class" msgstr "" -#: js/ToneBlocks.js:678 -msgid "The Vibrato block adds a rapid, slight variation in pitch." +#: js/blocks/PitchBlocks.js:441 +msgid "scalar class" msgstr "" -#: js/ToneBlocks.js:686 -#: js/timbre.js:2094 -#.TRANS: a rapid, slight variation in pitch -msgid "vibrato" +#: js/blocks/PitchBlocks.js:443 +msgid "nth degree" msgstr "" -#: js/ToneBlocks.js:689 -#: js/timbre.js:2221 -msgid "intensity" +#: js/blocks/PitchBlocks.js:444 +msgid "pitch to shade" msgstr "" -#: js/ToneBlocks.js:733 -#.TRANS: select synthesizer -msgid "set synth" +#: js/blocks/PitchBlocks.js:445 +msgid "pitch to color" msgstr "" -#: js/ToneBlocks.js:804 -msgid "synth name" +#: js/blocks/PitchBlocks.js:629 +#: js/widgets/musickeyboard.js:735 +#.TRANS: MIDI is a technical standard for electronic music +msgid "MIDI" msgstr "" -#: js/ToneBlocks.js:842 -msgid "set default instrument" +#: js/blocks/PitchBlocks.js:642 +#.TRANS: set an offset associated with the numeric piano keyboard mapping +msgid "set pitch number offset" msgstr "" -#: js/ToneBlocks.js:895 -#: js/ToneBlocks.js:943 -#.TRANS: set the characteristics of a custom instrument -msgid "set instrument" +#: js/blocks/PitchBlocks.js:645 +msgid "The Set pitch number offset block is used to set the offset for mapping pitch numbers to pitch and octave." msgstr "" -#: js/ToneBlocks.js:898 -#: js/ToneBlocks.js:926 -#: js/ToneBlocks.js:932 -msgid "The Set instrument block selects a voice for the synthesizer," +#: js/blocks/PitchBlocks.js:679 +#.TRANS: convert piano key number (1-88) to pitch +msgid "number to pitch" msgstr "" -#: js/ToneBlocks.js:900 -#: js/ToneBlocks.js:934 -msgid "eg guitar piano violin or cello." +#: js/blocks/PitchBlocks.js:682 +msgid "The Number to pitch block will convert a pitch number to a pich name." msgstr "" -#: js/ToneBlocks.js:1015 -msgid "Import a sound file to use as an instrument and set its pitch center." +#: js/blocks/PitchBlocks.js:715 +#.TRANS: convert piano key number (1-88) to octave +msgid "number to octave" msgstr "" -#: js/ToneBlocks.js:1110 -msgid "Upload a sound file to connect with the sample block." +#: js/blocks/PitchBlocks.js:717 +msgid "The Number to octave block will convert a pitch number to an octave." msgstr "" -#: js/MeterBlocks.js:34 -#.TRANS: musical meter (time signature), e.g., 4:4 -msgid "current meter" +#: js/blocks/PitchBlocks.js:726 +msgid "y to pitch" msgstr "" -#: js/MeterBlocks.js:85 -#.TRANS: number of beats per minute -msgid "beat factor" +#: js/blocks/PitchBlocks.js:729 +msgid "Y to pitch block will convert a staff y position to corresponding pitch notation." msgstr "" -#: js/MeterBlocks.js:161 -msgid "The Beats per minute block returns the current beats per minute." +#: js/blocks/PitchBlocks.js:841 +msgid "accidental selector" msgstr "" -#: js/MeterBlocks.js:169 -#: js/status.js:152 -#.TRANS: number of beats played per minute -msgid "beats per minute2" +#: js/blocks/PitchBlocks.js:844 +msgid "The Accidental selector block is used to choose between double-sharp, sharp, natural, flat, and double-flat." msgstr "" -#: js/MeterBlocks.js:169 -#: js/MeterBlocks.js:1056 -#: js/MeterBlocks.js:1133 -#: js/MeterBlocks.js:1211 -#.TRANS: sets tempo by defining a beat and beats per minute -msgid "beats per minute" +#: js/blocks/PitchBlocks.js:858 +msgid "Pitch can be specified in terms of ni dha pa ma ga re sa." msgstr "" -#: js/MeterBlocks.js:233 -#.TRANS: count of current musical measure in meter -msgid "measure count" +#: js/blocks/PitchBlocks.js:872 +msgid "Pitch can be specified in terms of C D E F G A B." msgstr "" -#: js/MeterBlocks.js:241 -msgid "The Measure count block returns the current measure." +#: js/blocks/PitchBlocks.js:884 +msgid "solfege" msgstr "" -#: js/MeterBlocks.js:290 -#.TRANS: count of current beat in the meter -msgid "beat count" +#: js/blocks/PitchBlocks.js:887 +msgid "Pitch can be specified in terms of do re mi fa sol la ti." msgstr "" -#: js/MeterBlocks.js:300 -#: js/MeterBlocks.js:311 -#: js/MeterBlocks.js:565 -#: js/MeterBlocks.js:576 -msgid "The Beat count block is the number of the current beat," +#: js/blocks/PitchBlocks.js:922 +msgid "The Invert block rotates any contained notes around a target note." msgstr "" -#: js/MeterBlocks.js:313 -#: js/MeterBlocks.js:578 -msgid "eg 1, 2, 3, or 4." +#: js/blocks/PitchBlocks.js:929 +#.TRANS: pitch inversion rotates a pitch around another pitch +msgid "invert" msgstr "" -#: js/MeterBlocks.js:368 -#.TRANS: count the number of notes -msgid "sum note values" +#: js/blocks/PitchBlocks.js:968 +#.TRANS: pitch inversion rotates a pitch around another pitch (odd number) +msgid "invert (odd)" msgstr "" -#: js/MeterBlocks.js:376 -#: js/MeterBlocks.js:440 -msgid "The Note counter block can be used to count the number of contained notes." +#: js/blocks/PitchBlocks.js:1001 +#.TRANS: pitch inversion rotates a pitch around another pitch (even number) +msgid "invert (even)" msgstr "" -#: js/MeterBlocks.js:432 -#.TRANS: count the number of notes -msgid "note counter" +#: js/blocks/PitchBlocks.js:1022 +#.TRANS: register is the octave of the current pitch +msgid "register" msgstr "" -#: js/MeterBlocks.js:496 -#.TRANS: number of whole notes that have been played -msgid "whole notes played" +#: js/blocks/PitchBlocks.js:1026 +msgid "The Register block provides an easy way to modify the register (octave) of the notes that follow it." msgstr "" -#: js/MeterBlocks.js:505 -msgid "The Whole notes played block returns the total number of whole notes played." +#: js/blocks/PitchBlocks.js:1047 +#.TRANS: cents are units used to specify the ratio between pitches. There are 100 cents between successive notes. +msgid "50 cents" msgstr "" -#: js/MeterBlocks.js:555 -#: js/DictActions.js:83 -#.TRANS: number of notes that have been played -msgid "notes played" +#: js/blocks/PitchBlocks.js:1102 +msgid "The Semi-tone transposition block will shift the pitches contained inside Note blocks up (or down) by half steps." msgstr "" -#: js/MeterBlocks.js:653 -msgid "The No clock block decouples the notes from the master clock." +#: js/blocks/PitchBlocks.js:1104 +msgid "In the example shown above, sol is shifted up to sol#." msgstr "" -#: js/MeterBlocks.js:661 -#.TRANS: don't lock notes to master clock -msgid "no clock" +#: js/blocks/PitchBlocks.js:1110 +#.TRANS: adjust the amount of shift (up or down) of a pitch +msgid "semi-tone transpose" msgstr "" -#: js/MeterBlocks.js:700 -msgid "on weak beat do" +#: js/blocks/PitchBlocks.js:1143 +msgid "The Transpose by Ratio block will shift the pitches contained inside Note blocks up (or down) by a ratio" msgstr "" -#: js/MeterBlocks.js:705 -msgid "The On-weak-beat block lets you specify actions to take on weak (off) beats." +#: js/blocks/PitchBlocks.js:1149 +#.TRANS: adjust the amount of shift (up or down) of a pitch +msgid "transpose by ratio" msgstr "" -#: js/MeterBlocks.js:750 -msgid "on strong beat" +#: js/blocks/PitchBlocks.js:1232 +#.TRANS: down sixth means the note is five scale degrees below current note +msgid "down sixth" msgstr "" -#: js/MeterBlocks.js:758 -msgid "The On-strong-beat block lets you specify actions to take on specified beats." +#: js/blocks/PitchBlocks.js:1251 +#.TRANS: down third means the note is two scale degrees below current note +msgid "down third" msgstr "" -#: js/MeterBlocks.js:769 -msgid "beat" +#: js/blocks/PitchBlocks.js:1270 +#.TRANS: seventh means the note is the six scale degrees above current note +msgid "seventh" msgstr "" -#: js/MeterBlocks.js:813 -msgid "on every beat do" +#: js/blocks/PitchBlocks.js:1289 +#.TRANS: sixth means the note is the five scale degrees above current note +msgid "sixth" msgstr "" -#: js/MeterBlocks.js:821 -msgid "The On-every-beat block lets you specify actions to take on every beat." +#: js/blocks/PitchBlocks.js:1308 +#.TRANS: fifth means the note is the four scale degrees above current note +msgid "fifth" msgstr "" -#: js/MeterBlocks.js:874 -msgid "on every note do" +#: js/blocks/PitchBlocks.js:1328 +#.TRANS: fourth means the note is three scale degrees above current note +msgid "fourth" msgstr "" -#: js/MeterBlocks.js:882 -msgid "The On-every-note block lets you specify actions to take on every note." +#: js/blocks/PitchBlocks.js:1347 +#.TRANS: third means the note is two scale degrees above current note +msgid "third" msgstr "" -#: js/MeterBlocks.js:928 -#: js/MeterBlocks.js:999 -#.TRANS: sets tempo by defining a beat and beats per minute -msgid "master beats per minute" +#: js/blocks/PitchBlocks.js:1366 +#.TRANS: second means the note is one scale degree above current note +msgid "second" msgstr "" -#: js/MeterBlocks.js:952 -#: js/MeterBlocks.js:1078 -#: js/MeterBlocks.js:1135 -msgid "bpm" +#: js/blocks/PitchBlocks.js:1407 +msgid "The Scalar transposition block will shift the pitches contained inside Note blocks up (or down) the scale." msgstr "" -#: js/MeterBlocks.js:952 -#: js/MeterBlocks.js:1078 -#: js/MeterBlocks.js:1135 -msgid "beat value" +#: js/blocks/PitchBlocks.js:1409 +msgid "In the example shown above, sol is shifted up to la." msgstr "" -#: js/MeterBlocks.js:1024 -#: js/MeterBlocks.js:1167 -#: js/MeterBlocks.js:1241 -msgid "Beats per minute must be > 30." +#: js/blocks/PitchBlocks.js:1416 +#.TRANS: adjust the amount of shift (up or down) of a pitch by musical scale (scalar) steps +msgid "scalar transpose" msgstr "" -#: js/MeterBlocks.js:1027 -#: js/MeterBlocks.js:1170 -#: js/MeterBlocks.js:1244 -msgid "Maximum beats per minute is 1000." +#: js/blocks/PitchBlocks.js:1451 +msgid "The Accidental block is used to create sharps and flats" msgstr "" -#: js/MeterBlocks.js:1068 -msgid "The Beats per minute block sets the number of 1/4 notes per minute." +#: js/blocks/PitchBlocks.js:1458 +#.TRANS: An accidental is a modification to a pitch, e.g., sharp or flat. +msgid "accidental override" msgstr "" -#: js/MeterBlocks.js:1279 -#.TRANS: anacrusis -msgid "pickup" +#: js/blocks/PitchBlocks.js:1581 +msgid "The Hertz block (in combination with a Number block) will play a sound at the specified frequency." msgstr "" -#: js/MeterBlocks.js:1367 -msgid "number of beats" +#: js/blocks/PitchBlocks.js:1671 +msgid "The Pitch Number block will play a pitch associated by its number, e.g. 0 for C and 7 for G." msgstr "" -#: js/DictBlocks.js:77 -msgid "show dictionary" +#: js/blocks/PitchBlocks.js:1703 +#: js/blocks/PitchBlocks.js:1745 +#.TRANS: a numeric mapping of the notes in an octave based on the musical mode +#.TRANS: a numeric mapping of the notes in an octave based on the musical mode +msgid "nth modal pitch" msgstr "" -#: js/DictBlocks.js:129 -msgid "The Dictionary block returns a dictionary." +#: js/blocks/PitchBlocks.js:1706 +msgid "n^th Modal Pitch takes the pattern of pitches in semitones for a mode and makes each point a degree of the mode," msgstr "" -#: js/DictBlocks.js:197 -#: js/DictBlocks.js:339 -msgid "The Get-dict block returns a value in the dictionary for a specified key." +#: js/blocks/PitchBlocks.js:1708 +msgid "starting from 1 and regardless of tonal framework (i.e. not always 8 notes in the octave)" msgstr "" -#: js/DictBlocks.js:212 -#: js/DictBlocks.js:354 -#.TRANS: retrieve a value from the dictionary with a given key -msgid "get value" +#: js/blocks/PitchBlocks.js:1749 +msgid "N^th Modal Pitch takes a number as an input as the n^th degree for the given mode. 0 is the first position, 1 is the second, -1 is the note before the first etc." msgstr "" -#: js/DictBlocks.js:215 -#: js/DictBlocks.js:216 -#: js/DictBlocks.js:289 -#: js/DictBlocks.js:290 -#: js/DictBlocks.js:357 -#: js/DictBlocks.js:430 -#: js/DictBlocks.js:431 -msgid "key2" +#: js/blocks/PitchBlocks.js:1751 +msgid "The pitches change according to the mode specified without any need for respellings." msgstr "" -#: js/DictBlocks.js:271 -#: js/DictBlocks.js:411 -msgid "The Set-dict block sets a value in the dictionary for a specified key." +#: js/blocks/PitchBlocks.js:1790 +msgid "Scale Degree is a common convention in music. Scale Degree offers seven possible positions in the scale (1-7) and can be modified via accidentals." msgstr "" -#: js/DictBlocks.js:286 -#: js/DictBlocks.js:427 -#.TRANS: set a value in the dictionary for a given key -msgid "set value" +#: js/blocks/PitchBlocks.js:1792 +msgid "Scale Degree 1 is always the first pitch in a given scale, regardless of octave." msgstr "" -#: js/ExtrasBlocks.js:33 -msgid "fraction" +#: js/blocks/PitchBlocks.js:1814 +#.TRANS: step some number of notes in current musical scale +msgid "scalar step" msgstr "" -#: js/ExtrasBlocks.js:36 -msgid "Convert a float to a fraction" +#: js/blocks/PitchBlocks.js:1819 +msgid "The Scalar Step block (in combination with a Number block) will play the next pitch in a scale," msgstr "" -#: js/ExtrasBlocks.js:93 -msgid "save as ABC" +#: js/blocks/PitchBlocks.js:1821 +msgid "eg if the last note played was sol, Scalar Step 1 will play la." msgstr "" -#: js/ExtrasBlocks.js:96 -#: js/ExtrasBlocks.js:132 -#: js/ExtrasBlocks.js:168 -msgid "title" +#: js/blocks/PitchBlocks.js:1857 +msgid "The Pitch block specifies the pitch name and octave of a note that together determine the frequency of the note." msgstr "" -#: js/ExtrasBlocks.js:129 -msgid "save as Lilypond" +#: js/blocks/ProgramBlocks.js:33 +msgid "The Load-heap-from-app block loads the heap from a web page." msgstr "" -#: js/ExtrasBlocks.js:165 -msgid "save as SVG" +#: js/blocks/ProgramBlocks.js:44 +#.TRANS: load the heap contents from a URL +msgid "load heap from App" msgstr "" -#: js/ExtrasBlocks.js:216 -msgid "no background" +#: js/blocks/ProgramBlocks.js:95 +msgid "Error parsing JSON data:" msgstr "" -#: js/ExtrasBlocks.js:219 -msgid "The No background block eliminates the background from the saved SVG output." +#: js/blocks/ProgramBlocks.js:100 +msgid "404: Page not found" msgstr "" -#: js/ExtrasBlocks.js:247 -msgid "show blocks" +#: js/blocks/ProgramBlocks.js:133 +msgid "The Save-heap-to-app block saves the heap to a web page." msgstr "" -#: js/ExtrasBlocks.js:249 -msgid "The Show blocks block shows the blocks." +#: js/blocks/ProgramBlocks.js:144 +#.TRANS: save the heap contents to a URL +msgid "save heap to App" msgstr "" -#: js/ExtrasBlocks.js:274 -msgid "hide blocks" +#: js/blocks/ProgramBlocks.js:189 +msgid "Cannot find a valid heap for" msgstr "" -#: js/ExtrasBlocks.js:276 -msgid "The Hide blocks block hides the blocks." +#: js/blocks/ProgramBlocks.js:206 +msgid "The Load-heap block loads the heap from a file." msgstr "" -#: js/ExtrasBlocks.js:305 -#: js/ExtrasBlocks.js:335 -msgid "The Space block is used to add space between blocks." +#: js/blocks/ProgramBlocks.js:217 +#.TRANS: load the heap from a file +msgid "load heap" msgstr "" -#: js/ExtrasBlocks.js:373 -msgid "wait" +#: js/blocks/ProgramBlocks.js:270 +msgid "The file you selected does not contain a valid heap." msgstr "" -#: js/ExtrasBlocks.js:376 -msgid "The Wait block pauses the program for a specified number of seconds." +#: js/blocks/ProgramBlocks.js:275 +msgid "The loadHeap block needs a loadFile block." msgstr "" -#: js/ExtrasBlocks.js:430 -#: plugins/facebook.rtp:30 -msgid "comment" +#: js/blocks/ProgramBlocks.js:291 +msgid "The Set-heap block loads the heap." msgstr "" -#: js/ExtrasBlocks.js:466 -msgid "print" +#: js/blocks/ProgramBlocks.js:340 +msgid "The block you selected does not contain a valid heap." msgstr "" -#: js/ExtrasBlocks.js:473 -msgid "The Print block displays text at the top of the screen." +#: js/blocks/ProgramBlocks.js:343 +msgid "The Set heap block needs a heap." msgstr "" -#: js/ExtrasBlocks.js:579 -msgid "display grid" +#: js/blocks/ProgramBlocks.js:360 +msgid "The Load-dictionary block loads a dictionary from a file." msgstr "" -#: js/ExtrasBlocks.js:584 -msgid "The Display Grid Block changes the grid type" +#: js/blocks/ProgramBlocks.js:372 +#.TRANS: load a dictionary from a file +msgid "load dictionary" msgstr "" -#: js/ExtrasBlocks.js:686 -#: js/ExtrasBlocks.js:705 -#: js/ExtrasBlocks.js:728 -#: js/ExtrasBlocks.js:751 -#: js/ExtrasBlocks.js:769 -#: js/ExtrasBlocks.js:788 -#: js/ExtrasBlocks.js:807 -#: js/ExtrasBlocks.js:826 -msgid "unknown" +#: js/blocks/ProgramBlocks.js:390 +#: js/blocks/ProgramBlocks.js:658 +#: js/blocks/ToneBlocks.js:1025 +msgid "file" msgstr "" -#: js/SensorsBlocks.js:36 -msgid "The Input block prompts for keyboard input." +#: js/blocks/ProgramBlocks.js:444 +msgid "The file you selected does not contain a valid dictionary." msgstr "" -#: js/SensorsBlocks.js:46 -msgid "input" +#: js/blocks/ProgramBlocks.js:449 +msgid "The load dictionary block needs a load file block." msgstr "" -#: js/SensorsBlocks.js:64 -msgid "Input a value" +#: js/blocks/ProgramBlocks.js:466 +msgid "The Set-dictionary block loads a dictionary." msgstr "" -#: js/SensorsBlocks.js:126 -msgid "input value" +#: js/blocks/ProgramBlocks.js:477 +#.TRANS: load a dictionary from a JSON +msgid "set dictionary" msgstr "" -#: js/SensorsBlocks.js:131 -msgid "The Input-value block stores the input." +#: js/blocks/ProgramBlocks.js:546 +msgid "The block you selected does not contain a valid dictionary." msgstr "" -#: js/SensorsBlocks.js:238 -msgid "loudness" +#: js/blocks/ProgramBlocks.js:550 +msgid "The set dictionary block needs a dictionary." msgstr "" -#: js/SensorsBlocks.js:245 -msgid "The Loudness block returns the volume detected by the microphone." +#: js/blocks/ProgramBlocks.js:567 +msgid "The Save-heap block saves the heap to a file." msgstr "" -#: js/SensorsBlocks.js:300 -msgid "click" +#: js/blocks/ProgramBlocks.js:578 +#.TRANS: save the heap to a file +msgid "save heap" msgstr "" -#: js/SensorsBlocks.js:306 -msgid "The Click block triggers an event if a mouse has been clicked." +#: js/blocks/ProgramBlocks.js:629 +msgid "The Save-dictionary block saves a dictionary to a file." msgstr "" -#: js/SensorsBlocks.js:313 -msgid "The Click block triggers an event if a turtle has been clicked." +#: js/blocks/ProgramBlocks.js:640 +#.TRANS: save a dictionary to a file +msgid "save dictionary" msgstr "" -#: js/SensorsBlocks.js:342 -msgid "cursor over" +#: js/blocks/ProgramBlocks.js:720 +msgid "The Open palette block opens a palette." msgstr "" -#: js/SensorsBlocks.js:387 -msgid "cursor out" +#: js/blocks/ProgramBlocks.js:727 +msgid "open palette" msgstr "" -#: js/SensorsBlocks.js:433 -msgid "cursor button down" +#: js/blocks/ProgramBlocks.js:785 +msgid "The Delete block block removes a block." msgstr "" -#: js/SensorsBlocks.js:477 -msgid "cursor button up" +#: js/blocks/ProgramBlocks.js:797 +#.TRANS: Move this block to the trash. +msgid "delete block" msgstr "" -#: js/SensorsBlocks.js:638 -msgid "The Get red block returns the red component of the pixel under the mouse." +#: js/blocks/ProgramBlocks.js:861 +msgid "The Move block block moves a block." msgstr "" -#: js/SensorsBlocks.js:644 -msgid "The Get red block returns the red component of the pixel under the turtle." +#: js/blocks/ProgramBlocks.js:869 +#.TRANS: Move the position of a block on the screen. +msgid "move block" msgstr "" -#: js/SensorsBlocks.js:685 -#: plugins/rodi.rtp:216 -msgid "pixel color" +#: js/blocks/ProgramBlocks.js:881 +#: js/blocks/ProgramBlocks.js:1048 +msgid "block number" msgstr "" -#: js/SensorsBlocks.js:690 -msgid "The Get pixel block returns the color of the pixel under the mouse." +#: js/blocks/ProgramBlocks.js:935 +#.TRANS: Run program beginning at this block. +msgid "run block" msgstr "" -#: js/SensorsBlocks.js:696 -msgid "The Get pixel block returns the color of the pixel under the turtle." +#: js/blocks/ProgramBlocks.js:1025 +msgid "The Dock block block connections two blocks." msgstr "" -#: js/SensorsBlocks.js:758 -msgid "time" +#: js/blocks/ProgramBlocks.js:1036 +#.TRANS: We can connect a block to another block. +msgid "connect blocks" msgstr "" -#: js/SensorsBlocks.js:804 -msgid "cursor y" +#: js/blocks/ProgramBlocks.js:1048 +msgid "target block" msgstr "" -#: js/SensorsBlocks.js:809 -msgid "The Cursor Y block returns the vertical position of the mouse." +#: js/blocks/ProgramBlocks.js:1048 +msgid "connection number" msgstr "" -#: js/SensorsBlocks.js:845 -msgid "cursor x" +#: js/blocks/ProgramBlocks.js:1140 +msgid "The Make block block creates a new block." msgstr "" -#: js/SensorsBlocks.js:850 -msgid "The Cursor X block returns the horizontal position of the mouse." +#: js/blocks/ProgramBlocks.js:1152 +#.TRANS: Create a new block +msgid "make block" msgstr "" -#: js/SensorsBlocks.js:886 -msgid "mouse button" +#: js/blocks/ProgramBlocks.js:1285 +msgid "Cannot find block" msgstr "" -#: js/SensorsBlocks.js:888 -msgid "The Mouse-button block returns True if the mouse button is pressed." +#: js/blocks/ProgramBlocks.js:1304 +#: js/blocks/ProgramBlocks.js:1313 +msgid "Warning: block argument type mismatch" msgstr "" -#: js/SensorsBlocks.js:934 -msgid "to ASCII" +#: js/blocks/ProgramBlocks.js:1347 +msgid "The Open project block is used to open a project from a web page." msgstr "" -#: js/SensorsBlocks.js:938 -msgid "The To ASCII block converts numbers to letters." +#: js/blocks/ProgramBlocks.js:1357 +msgid "open project" msgstr "" -#: js/SensorsBlocks.js:1005 -msgid "The Keyboard block returns computer keyboard input." +#: js/blocks/ProgramBlocks.js:1410 +msgid "Please enter a valid URL." msgstr "" -#: js/IntervalsActions.js:216 -msgid "Adding missing pitch number 0." +#: js/blocks/ToneBlocks.js:34 +msgid "oscillator" msgstr "" -#: js/IntervalsActions.js:224 -msgid "Ignoring pitch numbers less than zero or greater than eleven." +#: js/blocks/ToneBlocks.js:42 +#: js/blocks/WidgetBlocks.js:179 +#: js/widgets/timbre.js:1558 +#: js/widgets/timbre.js:1808 +#.TRANS: there are different types (sine, triangle, square...) of oscillators. +#.TRANS: type of filter, e.g., lowpass, highpass, etc. +msgid "type" msgstr "" -#: js/IntervalsActions.js:230 -msgid "Ignoring duplicate pitch numbers." +#: js/blocks/ToneBlocks.js:44 +#: js/widgets/timbre.js:1562 +#.TRANS: Partials refers to the number of sine waves combined into the sound. +msgid "partials" msgstr "" -#: js/PitchActions.js:88 -msgid "The Scalar Step Block must be used inside of a Note Block." +#: js/blocks/ToneBlocks.js:76 +msgid "You are adding multiple oscillator blocks." msgstr "" -#: js/PitchActions.js:107 -msgid "The Scalar Step Block must be preceded by a Pitch Block." +#: js/blocks/ToneBlocks.js:144 +#: js/widgets/timbre.js:1225 +#.TRANS: a duo synthesizer combines a synth with a sequencer +msgid "duo synth" msgstr "" -#: js/DrumActions.js:231 -msgid "Noise Block: Did you mean to use a Note block?" +#: js/blocks/ToneBlocks.js:149 +msgid "The Duo synth block is a duo-frequency modulator used to define a timbre." msgstr "" -#: js/MeterActions.js:101 -#: js/MeterActions.js:139 -msgid "beats per minute must be greater than" +#: js/blocks/ToneBlocks.js:157 +#: js/widgets/timbre.js:1476 +msgid "vibrato rate" msgstr "" -#: js/MeterActions.js:111 -#: js/MeterActions.js:149 -msgid "maximum" +#: js/blocks/ToneBlocks.js:157 +msgid "vibrato intensity" msgstr "" -#: js/MeterActions.js:117 -#: js/MeterActions.js:155 -msgid "beats per minute is" +#: js/blocks/ToneBlocks.js:185 +#: js/widgets/timbre.js:1221 +#.TRANS: AM (amplitude modulation) synthesizer +msgid "AM synth" msgstr "" -#: js/ToneActions.js:134 -msgid "Vibrato intensity must be between 1 and 100." +#: js/blocks/ToneBlocks.js:189 +msgid "The AM synth block is an amplitude modulator used to define a timbre." msgstr "" -#: js/ToneActions.js:139 -msgid "Vibrato rate must be greater than 0." +#: js/blocks/ToneBlocks.js:224 +#: js/widgets/timbre.js:1223 +#.TRANS: FM (frequency modulation) synthesizer +msgid "FM synth" msgstr "" -#: js/ToneActions.js:192 -#: js/ToneActions.js:265 -#.TRANS: Depth is the intesity of the tremolo or chorus effect. -msgid "Depth is out of range." +#: js/blocks/ToneBlocks.js:228 +msgid "The FM synth block is a frequency modulator used to define a timbre." msgstr "" -#: js/ToneActions.js:301 -msgid "Distortion must be from 0 to 100." +#: js/blocks/ToneBlocks.js:262 +msgid "partial" msgstr "" -#: js/ToneActions.js:332 -#.TRANS: partials components in a harmonic series -msgid "Partial must be greater than or equal to 0." +#: js/blocks/ToneBlocks.js:265 +msgid "The Partial block is used to specify a weight for a specific partial harmonic." msgstr "" -#: js/ToneActions.js:378 -#: js/ToneActions.js:417 -#: js/ToneActions.js:456 -#: js/timbre.js:782 -msgid "Unable to use synth due to existing oscillator" +#: js/blocks/ToneBlocks.js:284 +#.TRANS: partials are weighted components in a harmonic series +msgid "Partial weight must be between 0 and 1." msgstr "" -#: js/ToneActions.js:388 -#: js/ToneActions.js:427 -msgid "The input cannot be negative." +#: js/blocks/ToneBlocks.js:297 +#.TRANS: partials are weighted components in a harmonic series +msgid "Partial block should be used inside of a Weighted-partials block." msgstr "" -#: js/DictActions.js:75 -#: js/DictActions.js:153 -#: js/DictActions.js:188 -msgid "font" +#: js/blocks/ToneBlocks.js:325 +#.TRANS: partials are weighted components in a harmonic series +msgid "weighted partials" msgstr "" -#: js/musicutils.js:363 -#: js/musicutils.js:471 -#: js/pitchdrummatrix.js:151 -#: js/musickeyboard.js:2563 -msgid "rest" +#: js/blocks/ToneBlocks.js:383 +msgid "The Harmonic block will add harmonics to the contained notes." msgstr "" -#: js/musicutils.js:565 -#.TRANS: ordinal number. Please keep exactly one space between each number. -msgid "1st 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th" +#: js/blocks/ToneBlocks.js:390 +#.TRANS: A harmonic is an overtone. +msgid "harmonic" msgstr "" -#: js/musicutils.js:629 -#: js/musicutils.js:812 -#: js/musicutils.js:911 -#.TRANS: augmented is a music term related to intervals -msgid "augmented" +#: js/blocks/ToneBlocks.js:431 +msgid "The Distortion block adds distortion to the pitch." msgstr "" -#: js/musicutils.js:631 -#: js/musicutils.js:813 -#: js/musicutils.js:910 -#.TRANS: diminished is a music term related to intervals and mode -msgid "diminished" +#: js/blocks/ToneBlocks.js:438 +#: js/widgets/timbre.js:2100 +#.TRANS: distortion is an alteration in the sound +msgid "distortion" msgstr "" -#: js/musicutils.js:639 -#.TRANS: twelve semi-tone scale for music -msgid "chromatic" +#: js/blocks/ToneBlocks.js:487 +msgid "The Tremolo block adds a wavering effect." msgstr "" -#: js/musicutils.js:640 -msgid "algerian" +#: js/blocks/ToneBlocks.js:495 +#: js/widgets/timbre.js:2092 +#.TRANS: a wavering effect in a musical tone +msgid "tremolo" msgstr "" -#: js/musicutils.js:641 -msgid "spanish" +#: js/blocks/ToneBlocks.js:500 +#: js/blocks/ToneBlocks.js:569 +#: js/blocks/ToneBlocks.js:630 +#: js/blocks/ToneBlocks.js:689 +#: js/widgets/timbre.js:2134 +#: js/widgets/timbre.js:2222 +#: js/widgets/timbre.js:2317 +#: js/widgets/timbre.js:2419 +#.TRANS: rate at which tremolo wavers +msgid "rate" msgstr "" -#: js/musicutils.js:643 -#.TRANS: modal scale in music -msgid "octatonic" +#: js/blocks/ToneBlocks.js:502 +#: js/blocks/ToneBlocks.js:630 +#: js/widgets/timbre.js:2137 +#: js/widgets/timbre.js:2328 +#.TRANS: amplitude of tremolo waver +msgid "depth" msgstr "" -#: js/musicutils.js:645 -#.TRANS: harmonic major scale in music -msgid "harmonic major" +#: js/blocks/ToneBlocks.js:559 +msgid "The Phaser block adds a sweeping sound." msgstr "" -#: js/musicutils.js:647 -#.TRANS: natural minor scales in music -msgid "natural minor" +#: js/blocks/ToneBlocks.js:566 +#: js/widgets/timbre.js:2098 +#.TRANS: alter the phase of the sound +msgid "phaser" msgstr "" -#: js/musicutils.js:649 -#.TRANS: harmonic minor scale in music -msgid "harmonic minor" +#: js/blocks/ToneBlocks.js:569 +#: js/turtleactions/IntervalsActions.js:114 +#: js/widgets/timbre.js:2422 +msgid "octaves" msgstr "" -#: js/musicutils.js:651 -#.TRANS: melodic minor scale in music -msgid "melodic minor" +#: js/blocks/ToneBlocks.js:569 +#: js/widgets/timbre.js:2425 +msgid "base frequency" msgstr "" -#: js/musicutils.js:655 -#.TRANS: modal scale for music -msgid "dorian" +#: js/blocks/ToneBlocks.js:619 +msgid "The Chorus block adds a chorus effect." msgstr "" -#: js/musicutils.js:657 -#.TRANS: modal scale for music -msgid "phrygian" +#: js/blocks/ToneBlocks.js:627 +#: js/widgets/timbre.js:2096 +#.TRANS: musical effect to simulate a choral sound +msgid "chorus" msgstr "" -#: js/musicutils.js:659 -#.TRANS: modal scale for music -msgid "lydian" +#: js/blocks/ToneBlocks.js:630 +msgid "delay" msgstr "" -#: js/musicutils.js:661 -#.TRANS: modal scale for music -msgid "mixolydian" +#: js/blocks/ToneBlocks.js:678 +msgid "The Vibrato block adds a rapid, slight variation in pitch." msgstr "" -#: js/musicutils.js:665 -#.TRANS: modal scale for music -msgid "locrian" +#: js/blocks/ToneBlocks.js:686 +#: js/widgets/timbre.js:2094 +#.TRANS: a rapid, slight variation in pitch +msgid "vibrato" msgstr "" -#: js/musicutils.js:667 -#.TRANS: minor jazz scale for music -msgid "jazz minor" +#: js/blocks/ToneBlocks.js:689 +#: js/widgets/timbre.js:2221 +msgid "intensity" msgstr "" -#: js/musicutils.js:669 -#.TRANS: bebop scale for music -msgid "bebop" +#: js/blocks/ToneBlocks.js:733 +#.TRANS: select synthesizer +msgid "set synth" msgstr "" -#: js/musicutils.js:670 -msgid "arabic" +#: js/blocks/ToneBlocks.js:804 +msgid "synth name" msgstr "" -#: js/musicutils.js:671 -msgid "byzantine" +#: js/blocks/ToneBlocks.js:842 +msgid "set default instrument" msgstr "" -#: js/musicutils.js:673 -#.TRANS: musical scale for music by Verdi -msgid "enigmatic" +#: js/blocks/ToneBlocks.js:895 +#: js/blocks/ToneBlocks.js:943 +#.TRANS: set the characteristics of a custom instrument +msgid "set instrument" msgstr "" -#: js/musicutils.js:674 -msgid "ethiopian" +#: js/blocks/ToneBlocks.js:898 +#: js/blocks/ToneBlocks.js:926 +#: js/blocks/ToneBlocks.js:932 +msgid "The Set instrument block selects a voice for the synthesizer," msgstr "" -#: js/musicutils.js:676 -#.TRANS: Ethiopic scale for music -msgid "geez" +#: js/blocks/ToneBlocks.js:900 +#: js/blocks/ToneBlocks.js:934 +msgid "eg guitar piano violin or cello." msgstr "" -#: js/musicutils.js:677 -msgid "hindu" +#: js/blocks/ToneBlocks.js:1015 +msgid "Import a sound file to use as an instrument and set its pitch center." msgstr "" -#: js/musicutils.js:678 -msgid "hungarian" +#: js/blocks/ToneBlocks.js:1110 +msgid "Upload a sound file to connect with the sample block." msgstr "" -#: js/musicutils.js:680 -#.TRANS: minor Romanian scale for music -msgid "romanian minor" +#: js/blocks/VolumeBlocks.js:35 +msgid "synth volume" msgstr "" -#: js/musicutils.js:681 -msgid "spanish gypsy" +#: js/blocks/VolumeBlocks.js:39 +msgid "The Synth volume block returns the current volume of the current synthesizer." msgstr "" -#: js/musicutils.js:683 -#.TRANS: musical scale for Mid-Eastern music -msgid "maqam" +#: js/blocks/VolumeBlocks.js:105 +msgid "master volume" msgstr "" -#: js/musicutils.js:685 -#.TRANS: minor blues scale for music -msgid "minor blues" +#: js/blocks/VolumeBlocks.js:109 +msgid "The Master volume block returns the master volume." msgstr "" -#: js/musicutils.js:687 -#.TRANS: major blues scale for music -msgid "major blues" +#: js/blocks/VolumeBlocks.js:355 +#: js/blocks/VolumeBlocks.js:524 +msgid "set synth volume" msgstr "" -#: js/musicutils.js:688 -msgid "whole tone" +#: js/blocks/VolumeBlocks.js:362 +#: js/blocks/VolumeBlocks.js:545 +msgid "synth" msgstr "" -#: js/musicutils.js:690 -#.TRANS: pentatonic is a general term that means "five note scale". This scale is typically known as "minor pentatonic" -msgid "minor pentatonic" +#: js/blocks/VolumeBlocks.js:403 +#: js/blocks/VolumeBlocks.js:577 +#: js/blocks/VolumeBlocks.js:740 +#: js/turtleactions/VolumeActions.js:173 +msgid "Setting volume to 0." msgstr "" -#: js/musicutils.js:692 -#.TRANS: pentatonic is a general term that means "five note scale". This scale is typically known as "major pentatonic" -msgid "major pentatonic" +#: js/blocks/VolumeBlocks.js:440 +msgid "Synth not found" msgstr "" -#: js/musicutils.js:693 -msgid "chinese" +#: js/blocks/VolumeBlocks.js:494 +msgid "set drum volume" msgstr "" -#: js/musicutils.js:694 -msgid "egyptian" +#: js/blocks/VolumeBlocks.js:530 +msgid "The Set synth volume block will change the volume of a particular synth," msgstr "" -#: js/musicutils.js:696 -#.TRANS: https://en.wikipedia.org/wiki/Hirajoshi_scale NOTE: There are three different versions of this scale -msgid "hirajoshi" +#: js/blocks/VolumeBlocks.js:532 +msgid "eg guitar violin snare drum etc." msgstr "" -#: js/musicutils.js:697 -msgid "Japan" +#: js/blocks/VolumeBlocks.js:534 +msgid "The default volume is 50." msgstr "" -#: js/musicutils.js:699 -#.TRANS: https://en.wikipedia.org/wiki/In_scale and https://en.wikipedia.org/wiki/Sakura_Sakura -msgid "in" +#: js/blocks/VolumeBlocks.js:536 +msgid "The range is 0 for silence to 100 for full volume." msgstr "" -#: js/musicutils.js:701 -#.TRANS: https://en.wikipedia.org/wiki/Miny%C5%8D_scale -msgid "minyo" +#: js/blocks/VolumeBlocks.js:597 +msgid "set panning" msgstr "" -#: js/musicutils.js:703 -#.TRANS: Italian mathematician -msgid "fibonacci" +#: js/blocks/VolumeBlocks.js:603 +msgid "The Set Panning block sets the panning for all synthesizers." msgstr "" -#: js/musicutils.js:708 -#: js/musicutils.js:1106 -#.TRANS: lowpass filter -msgid "lowpass" +#: js/blocks/VolumeBlocks.js:625 +msgid "Warning: Sound is coming out from only the left or right side." msgstr "" -#: js/musicutils.js:710 -#: js/musicutils.js:1107 -#.TRANS: bandpass filter -msgid "bandpass" +#: js/blocks/VolumeBlocks.js:647 +#: js/blocks/VolumeBlocks.js:695 +msgid "set master volume" msgstr "" -#: js/musicutils.js:712 -#: js/musicutils.js:1108 -#.TRANS: high-shelf filter -msgid "highshelf" +#: js/blocks/VolumeBlocks.js:653 +msgid "The Set master volume block sets the volume for all synthesizers." msgstr "" -#: js/musicutils.js:714 -#: js/musicutils.js:1109 -#.TRANS: low-shelf filter -msgid "lowshelf" +#: js/blocks/VolumeBlocks.js:784 +msgid "The Set relative volume block changes the volume of the contained notes." msgstr "" -#: js/musicutils.js:716 -#: js/musicutils.js:1110 -#.TRANS: notch-shelf filter -msgid "notch" +#: js/blocks/VolumeBlocks.js:791 +msgid "set relative volume" msgstr "" -#: js/musicutils.js:718 -#: js/musicutils.js:1111 -#.TRANS: all-pass filter -msgid "allpass" +#: js/blocks/VolumeBlocks.js:857 +msgid "decrescendo" msgstr "" -#: js/musicutils.js:720 -#: js/musicutils.js:1112 -#.TRANS: peaking filter -msgid "peaking" +#: js/blocks/VolumeBlocks.js:921 +msgid "crescendo" msgstr "" -#: js/musicutils.js:731 -#: js/synthutils.js:58 -#.TRANS: musical instrument -msgid "violin" +#: js/blocks/WidgetBlocks.js:81 +#.TRANS: sound envelope (ADSR) +msgid "envelope" msgstr "" -#: js/musicutils.js:732 -#: js/synthutils.js:60 -#.TRANS: viola musical instrument -msgid "viola" +#: js/blocks/WidgetBlocks.js:89 +#.TRANS: Attack time is the time taken for initial run-up of level from nil to peak, beginning when the key is first pressed. +msgid "attack" msgstr "" -#: js/musicutils.js:733 -#: js/synthutils.js:98 -#.TRANS: xylophone musical instrument -msgid "xylophone" +#: js/blocks/WidgetBlocks.js:91 +#.TRANS: Decay time is the time taken for the subsequent run down from the attack level to the designated sustain level. +msgid "decay" msgstr "" -#: js/musicutils.js:734 -#: js/synthutils.js:120 -#.TRANS: vibraphone musical instrument -msgid "vibraphone" +#: js/blocks/WidgetBlocks.js:93 +#.TRANS: Sustain level is the level during the main sequence of the sound's duration, until the key is released. +msgid "sustain" msgstr "" -#: js/musicutils.js:735 -#: js/synthutils.js:62 -#.TRANS: musical instrument -msgid "cello" +#: js/blocks/WidgetBlocks.js:95 +#.TRANS: Release time is the time taken for the level to decay from the sustain level to zero after the key is released. +msgid "release" msgstr "" -#: js/musicutils.js:737 -#: js/synthutils.js:66 -#.TRANS: viola musical instrument -msgid "double bass" +#: js/blocks/WidgetBlocks.js:113 +msgid "Attack value should be from 0 to 100." msgstr "" -#: js/musicutils.js:738 -#: js/synthutils.js:68 -#: js/rhythmruler.js:2119 -#.TRANS: musical instrument -msgid "guitar" +#: js/blocks/WidgetBlocks.js:116 +msgid "Decay value should be from 0 to 100." msgstr "" -#: js/musicutils.js:739 -#: js/synthutils.js:70 -#.TRANS: musical instrument -msgid "acoustic guitar" +#: js/blocks/WidgetBlocks.js:119 +msgid "Sustain value should be from 0 to 100." msgstr "" -#: js/musicutils.js:740 -#: js/synthutils.js:72 -#.TRANS: musical instrument -msgid "flute" +#: js/blocks/WidgetBlocks.js:122 +msgid "Release value should be from 0-100." msgstr "" -#: js/musicutils.js:741 -#: js/synthutils.js:74 -#.TRANS: musical instrument -msgid "clarinet" +#: js/blocks/WidgetBlocks.js:140 +msgid "You are adding multiple envelope blocks." msgstr "" -#: js/musicutils.js:742 -#: js/synthutils.js:76 -#.TRANS: musical instrument -msgid "saxophone" +#: js/blocks/WidgetBlocks.js:171 +#.TRANS: a filter removes some unwanted components from a signal +msgid "filter" msgstr "" -#: js/musicutils.js:743 -#: js/synthutils.js:78 -#.TRANS: musical instrument -msgid "tuba" +#: js/blocks/WidgetBlocks.js:181 +#: js/widgets/timbre.js:1818 +#.TRANS: rolloff is the steepness of a change in frequency. +msgid "rolloff" msgstr "" -#: js/musicutils.js:744 -#: js/synthutils.js:80 -#.TRANS: musical instrument -msgid "trumpet" +#: js/blocks/WidgetBlocks.js:213 +#.TRANS: rolloff is the steepness of a change in frequency. +msgid "Rolloff value should be either -12, -24, -48, or -96 decibels/octave." msgstr "" -#: js/musicutils.js:745 -#: js/synthutils.js:82 -#.TRANS: musical instrument -msgid "oboe" +#: js/blocks/WidgetBlocks.js:252 +msgid "The Temperament tool is used to define custom tuning." msgstr "" -#: js/musicutils.js:746 -#: js/synthutils.js:84 -#.TRANS: musical instrument -msgid "trombone" +#: js/blocks/WidgetBlocks.js:332 +#: js/blocks/WidgetBlocks.js:1573 +#: js/widgets/sampler.js:547 +msgid "Upload a sample and adjust its pitch center." msgstr "" -#: js/musicutils.js:747 -#: js/synthutils.js:100 -#.TRANS: polytone synthesizer -msgid "electronic synth" +#: js/blocks/WidgetBlocks.js:339 +#.TRANS: the speed at music is should be played. +msgid "sampler" msgstr "" -#: js/musicutils.js:748 -#: js/synthutils.js:102 -#.TRANS: simple monotone synthesizer -msgid "simple 1" +#: js/blocks/WidgetBlocks.js:517 +msgid "The Meter block opens a tool to select strong beats for the meter." msgstr "" -#: js/musicutils.js:749 -msgid "simple 2" +#: js/blocks/WidgetBlocks.js:573 +msgid "The oscilloscope block opens a tool to visualize waveforms." msgstr "" -#: js/musicutils.js:750 -msgid "simple 3" +#: js/blocks/WidgetBlocks.js:578 +msgid "oscilloscope" msgstr "" -#: js/musicutils.js:751 -msgid "simple 4" +#: js/blocks/WidgetBlocks.js:645 +msgid "The Custom mode block opens a tool to explore musical mode (the spacing of the notes in a scale)." msgstr "" -#: js/musicutils.js:753 -#: js/synthutils.js:49 -#.TRANS: brown noise synthesizer -msgid "brown noise" +#: js/blocks/WidgetBlocks.js:651 +#.TRANS: musical mode is the pattern of half-steps in an octave, e.g., Major or Minor modes +msgid "custom mode" msgstr "" -#: js/musicutils.js:754 -#: js/synthutils.js:51 -#.TRANS: pink noise synthesizer -msgid "pink noise" +#: js/blocks/WidgetBlocks.js:700 +msgid "The Tempo block opens a metronome to visualize the beat." msgstr "" -#: js/musicutils.js:756 -#: js/synthutils.js:127 -#: js/rhythmruler.js:1670 -#: js/rhythmruler.js:1928 -#.TRANS: musical instrument -msgid "snare drum" +#: js/blocks/WidgetBlocks.js:762 +msgid "The Arpeggio Widget is used to compose chord sequences." msgstr "" -#: js/musicutils.js:757 -#: js/synthutils.js:129 -#.TRANS: musical instrument -msgid "kick drum" +#: js/blocks/WidgetBlocks.js:837 +msgid "The Pitch drum matrix is used to map pitches to drum sounds." msgstr "" -#: js/musicutils.js:758 -#: js/synthutils.js:131 -#.TRANS: musical instrument -msgid "tom tom" +#: js/blocks/WidgetBlocks.js:842 +#.TRANS: makes a mapping between pitches and drum sounds +msgid "pitch-drum mapper" msgstr "" -#: js/musicutils.js:759 -#: js/synthutils.js:133 -#.TRANS: musical instrument -msgid "floor tom" +#: js/blocks/WidgetBlocks.js:891 +msgid "You must have at least one pitch block and one drum block in the matrix." msgstr "" -#: js/musicutils.js:760 -#: js/synthutils.js:135 -#.TRANS: musical instrument -msgid "bass drum" +#: js/blocks/WidgetBlocks.js:920 +msgid "The Pitch slider tool to is used to generate pitches at selected frequencies." msgstr "" -#: js/musicutils.js:761 -#: js/synthutils.js:137 -#.TRANS: a drum made from an inverted cup -msgid "cup drum" +#: js/blocks/WidgetBlocks.js:925 +#.TRANS: widget to generate pitches using a slider +msgid "pitch slider" msgstr "" -#: js/musicutils.js:762 -#: js/synthutils.js:139 -#.TRANS: musical instrument -msgid "darbuka drum" +#: js/blocks/WidgetBlocks.js:977 +msgid "chromatic keyboard" msgstr "" -#: js/musicutils.js:763 -#: js/synthutils.js:143 -#.TRANS: musical instrument -msgid "hi hat" +#: js/blocks/WidgetBlocks.js:1011 +#: js/blocks/WidgetBlocks.js:1077 +#.TRANS: widget to generate pitches using a slider +msgid "music keyboard" msgstr "" -#: js/musicutils.js:764 -#: js/synthutils.js:145 -#.TRANS: a small metal bell -msgid "ride bell" +#: js/blocks/WidgetBlocks.js:1062 +#: js/blocks/WidgetBlocks.js:1069 +msgid "The Music keyboard block opens a piano keyboard that can be used to create notes." msgstr "" -#: js/musicutils.js:765 -#: js/synthutils.js:147 -#.TRANS: musical instrument -msgid "cow bell" +#: js/blocks/WidgetBlocks.js:1128 +msgid "The Pitch staircase tool to is used to generate pitches from a given ratio." msgstr "" -#: js/musicutils.js:766 -msgid "japanese drum" +#: js/blocks/WidgetBlocks.js:1135 +#.TRANS: generate a progressive sequence of pitches +msgid "pitch staircase" msgstr "" -#: js/musicutils.js:767 -#: js/synthutils.js:153 -#.TRANS: musical instrument -msgid "japanese bell" +#: js/blocks/WidgetBlocks.js:1222 +msgid "The Rhythm Maker block opens a tool to create drum machines." msgstr "" -#: js/musicutils.js:768 -#: js/synthutils.js:149 -#.TRANS: musical instrument -msgid "triangle bell" +#: js/blocks/WidgetBlocks.js:1291 +msgid "G major scale" msgstr "" -#: js/musicutils.js:769 -#: js/synthutils.js:151 -#.TRANS: musical instrument -msgid "finger cymbals" +#: js/blocks/WidgetBlocks.js:1326 +msgid "C major scale" msgstr "" -#: js/musicutils.js:770 -#: js/synthutils.js:155 -#.TRANS: a musically tuned set of bells -msgid "chime" +#: js/blocks/WidgetBlocks.js:1366 +msgid "The Phrase Maker block opens a tool to create musical phrases." msgstr "" -#: js/musicutils.js:771 -#: js/synthutils.js:157 -#.TRANS: a musical instrument -msgid "gong" +#: js/blocks/WidgetBlocks.js:1373 +#.TRANS: assigns pitch to a sequence of beats to generate a melody +msgid "phrase maker" msgstr "" -#: js/musicutils.js:772 -#: js/synthutils.js:159 -#.TRANS: sound effect -msgid "clang" +#: js/blocks/WidgetBlocks.js:1444 +msgid "You must have at least one pitch block and one rhythm block in the matrix." msgstr "" -#: js/musicutils.js:773 -#: js/synthutils.js:161 -#.TRANS: sound effect -msgid "crash" +#: js/blocks/WidgetBlocks.js:1503 +msgid "The Status block opens a tool for inspecting the status of Music Blocks as it is running." msgstr "" -#: js/musicutils.js:774 -#: js/synthutils.js:163 -#.TRANS: sound effect -msgid "bottle" +#: js/blocks/WidgetBlocks.js:1580 +#.TRANS: AI-generated music +msgid "aimusic" msgstr "" -#: js/musicutils.js:775 -#: js/synthutils.js:165 -#.TRANS: sound effect -msgid "clap" +#: js/turtleactions/MeterActions.js:101 +#: js/turtleactions/MeterActions.js:139 +msgid "beats per minute must be greater than" msgstr "" -#: js/musicutils.js:776 -#: js/synthutils.js:167 -#.TRANS: sound effect -msgid "slap" +#: js/turtleactions/MeterActions.js:111 +#: js/turtleactions/MeterActions.js:149 +msgid "maximum" msgstr "" -#: js/musicutils.js:777 -#: js/synthutils.js:169 -#.TRANS: sound effect -msgid "splash" +#: js/turtleactions/MeterActions.js:117 +#: js/turtleactions/MeterActions.js:155 +msgid "beats per minute is" msgstr "" -#: js/musicutils.js:778 -#: js/synthutils.js:171 -#.TRANS: sound effect -msgid "bubbles" +#: js/turtleactions/DictActions.js:75 +#: js/turtleactions/DictActions.js:142 +#: js/turtleactions/DictActions.js:172 +msgid "font" msgstr "" -#: js/musicutils.js:779 -#: js/synthutils.js:173 -#.TRANS: sound effect -msgid "raindrop" +#: js/turtleactions/DictActions.js:255 +msgid "Dictionary with this name does not exist" msgstr "" -#: js/musicutils.js:780 -#: js/synthutils.js:175 -#.TRANS: animal sound effect -msgid "cat" +#: js/turtleactions/DictActions.js:259 +msgid "Key with this name does not exist in " msgstr "" -#: js/musicutils.js:781 -#: js/synthutils.js:177 -#.TRANS: animal sound effect -msgid "cricket" +#: js/turtleactions/DrumActions.js:227 +msgid "Noise Block: Did you mean to use a Note block?" msgstr "" -#: js/musicutils.js:782 -#: js/synthutils.js:179 -#.TRANS: animal sound effect -msgid "dog" +#: js/turtleactions/IntervalsActions.js:113 +msgid "one" msgstr "" -#: js/musicutils.js:784 -#: js/synthutils.js:86 -#.TRANS: musical instrument -msgid "banjo" +#: js/turtleactions/IntervalsActions.js:113 +msgid "two" msgstr "" -#: js/musicutils.js:785 -#: js/synthutils.js:88 -#.TRANS: musical instrument -msgid "koto" +#: js/turtleactions/IntervalsActions.js:113 +msgid "three" msgstr "" -#: js/musicutils.js:786 -#: js/synthutils.js:90 -#.TRANS: musical instrument -msgid "dulcimer" +#: js/turtleactions/IntervalsActions.js:113 +msgid "four" msgstr "" -#: js/musicutils.js:787 -#: js/synthutils.js:92 -#.TRANS: musical instrument -msgid "electric guitar" +#: js/turtleactions/IntervalsActions.js:113 +msgid "five" msgstr "" -#: js/musicutils.js:788 -#: js/synthutils.js:94 -#.TRANS: musical instrument -msgid "bassoon" +#: js/turtleactions/IntervalsActions.js:113 +msgid "six" msgstr "" -#: js/musicutils.js:789 -#: js/synthutils.js:96 -#.TRANS: musical instrument -msgid "celeste" +#: js/turtleactions/IntervalsActions.js:113 +msgid "seven" msgstr "" -#: js/musicutils.js:791 -#: js/musicutils.js:1123 -#: js/musicutils.js:1131 -#: js/temperament.js:650 -#.TRANS: musical temperament -msgid "equal" +#: js/turtleactions/IntervalsActions.js:113 +msgid "eight" msgstr "" -#: js/musicutils.js:793 -#: js/musicutils.js:1125 -#: js/musicutils.js:1133 -#.TRANS: musical temperament -msgid "Pythagorean" +#: js/turtleactions/IntervalsActions.js:113 +msgid "nine" msgstr "" -#: js/musicutils.js:795 -#: js/musicutils.js:1124 -#: js/musicutils.js:1132 -#.TRANS: musical temperament -msgid "just intonation" +#: js/turtleactions/IntervalsActions.js:119 +msgid "a" msgstr "" -#: js/musicutils.js:797 -#: js/musicutils.js:1126 -#: js/musicutils.js:1127 -#: js/musicutils.js:1134 -#: js/musicutils.js:1135 -#.TRANS: musical temperament -msgid "meantone" +#: js/turtleactions/IntervalsActions.js:120 +msgid "below" msgstr "" -#: js/musicutils.js:814 -msgid "major 7th" +#: js/turtleactions/IntervalsActions.js:124 +msgid "above" msgstr "" -#: js/musicutils.js:815 -msgid "minor 7th" +#: js/turtleactions/IntervalsActions.js:131 +msgid "plus" msgstr "" -#: js/musicutils.js:816 -msgid "dominant 7th" +#: js/turtleactions/IntervalsActions.js:139 +msgid " below" msgstr "" -#: js/musicutils.js:817 -msgid "minor-major 7th" +#: js/turtleactions/IntervalsActions.js:257 +msgid "Adding missing pitch number 0." msgstr "" -#: js/musicutils.js:818 -msgid "fully-diminished 7th" +#: js/turtleactions/IntervalsActions.js:265 +msgid "Ignoring pitch numbers less than zero or greater than eleven." msgstr "" -#: js/musicutils.js:819 -msgid "half-diminished 7th" +#: js/turtleactions/IntervalsActions.js:271 +msgid "Ignoring duplicate pitch numbers." msgstr "" -#: js/musicutils.js:4379 -#: js/musicutils.js:4416 -msgid "current" +#: js/turtleactions/ToneActions.js:134 +msgid "Vibrato intensity must be between 1 and 100." msgstr "" -#: js/musicutils.js:4382 -#: js/musicutils.js:4407 -msgid "next" +#: js/turtleactions/ToneActions.js:139 +msgid "Vibrato rate must be greater than 0." msgstr "" -#: js/musicutils.js:4385 -#: js/musicutils.js:4412 -msgid "previous" +#: js/turtleactions/ToneActions.js:192 +#: js/turtleactions/ToneActions.js:265 +#.TRANS: Depth is the intesity of the tremolo or chorus effect. +msgid "Depth is out of range." msgstr "" -#: js/synthutils.js:104 -#.TRANS: simple monotone synthesizer -msgid "simple-2" +#: js/turtleactions/ToneActions.js:301 +msgid "Distortion must be from 0 to 100." msgstr "" -#: js/synthutils.js:106 -#.TRANS: simple monotone synthesizer -msgid "simple-3" +#: js/turtleactions/ToneActions.js:332 +#.TRANS: partials components in a harmonic series +msgid "Partial must be greater than or equal to 0." msgstr "" -#: js/synthutils.js:108 -#.TRANS: simple monotone synthesizer -msgid "simple-4" +#: js/turtleactions/ToneActions.js:378 +#: js/turtleactions/ToneActions.js:417 +#: js/turtleactions/ToneActions.js:456 +#: js/widgets/timbre.js:782 +msgid "Unable to use synth due to existing oscillator" msgstr "" -#: js/synthutils.js:141 -#.TRANS: musical instrument -msgid "taiko" +#: js/turtleactions/ToneActions.js:388 +#: js/turtleactions/ToneActions.js:427 +msgid "The input cannot be negative." msgstr "" -#: js/modewidget.js:86 -#: js/modewidget.js:88 -#: js/modewidget.js:642 -#: js/modewidget.js:644 -#: js/modewidget.js:712 -#: js/modewidget.js:714 -#: js/temperament.js:2078 -#: js/rhythmruler.js:189 -#: js/rhythmruler.js:1410 -#: js/rhythmruler.js:1412 -#: js/rhythmruler.js:1435 -#: js/rhythmruler.js:1437 -#: js/meterwidget.js:89 -#: js/meterwidget.js:91 +#: js/widgets/modewidget.js:86 +#: js/widgets/modewidget.js:88 +#: js/widgets/modewidget.js:642 +#: js/widgets/modewidget.js:644 +#: js/widgets/modewidget.js:712 +#: js/widgets/modewidget.js:714 +#: js/widgets/meterwidget.js:194 +#: js/widgets/meterwidget.js:196 +#: js/widgets/temperament.js:2236 +#: js/widgets/rhythmruler.js:457 +#: js/widgets/rhythmruler.js:1790 +#: js/widgets/rhythmruler.js:1792 +#: js/widgets/rhythmruler.js:1816 +#: js/widgets/rhythmruler.js:1818 msgid "Play all" msgstr "" -#: js/modewidget.js:115 -#: js/pitchstaircase.js:641 -#: js/phrasemaker.js:339 -#: js/pitchdrummatrix.js:94 -#: js/pitchslider.js:125 -#: js/temperament.js:2083 -#: js/musickeyboard.js:530 -#: js/timbre.js:756 -#: js/meterwidget.js:124 -#: js/arpeggio.js:103 +#: js/widgets/modewidget.js:115 +#: js/widgets/meterwidget.js:229 +#: js/widgets/pitchdrummatrix.js:166 +#: js/widgets/pitchslider.js:125 +#: js/widgets/pitchstaircase.js:641 +#: js/widgets/temperament.js:2244 +#: js/widgets/timbre.js:756 +#: js/widgets/arpeggio.js:103 +#: js/widgets/musickeyboard.js:688 +#: js/widgets/phrasemaker.js:550 msgid "Save" msgstr "" -#: js/modewidget.js:121 -#: js/pitchstaircase.js:686 -#: js/phrasemaker.js:356 -#: js/pitchdrummatrix.js:109 -#: js/musickeyboard.js:534 -#: js/rhythmruler.js:269 -#: js/arpeggio.js:118 +#: js/widgets/modewidget.js:121 +#: js/widgets/pitchdrummatrix.js:181 +#: js/widgets/pitchstaircase.js:686 +#: js/widgets/arpeggio.js:118 +#: js/widgets/musickeyboard.js:696 +#: js/widgets/phrasemaker.js:567 +#: js/widgets/rhythmruler.js:601 #.TRANS: clear all subdivisions from the ruler. msgid "Clear" msgstr "" -#: js/modewidget.js:127 +#: js/widgets/modewidget.js:127 msgid "Rotate counter clockwise" msgstr "" -#: js/modewidget.js:133 +#: js/widgets/modewidget.js:133 msgid "Rotate clockwise" msgstr "" -#: js/modewidget.js:139 +#: js/widgets/modewidget.js:139 msgid "Invert" msgstr "" -#: js/modewidget.js:145 -#: js/pitchstaircase.js:678 -#: js/rhythmruler.js:258 -#: js/timbre.js:963 +#: js/widgets/modewidget.js:145 +#: js/widgets/pitchstaircase.js:678 +#: js/widgets/timbre.js:963 +#: js/widgets/rhythmruler.js:578 msgid "Undo" msgstr "" -#: js/modewidget.js:163 +#: js/widgets/modewidget.js:163 #.TRANS: A circle of notes represents the musical mode. msgid "Click in the circle to select notes for the mode." msgstr "" -#: js/modewidget.js:1017 -#: js/pitchstaircase.js:580 -#: js/phrasemaker.js:4855 -#: js/temperament.js:1754 -#: js/rhythmruler.js:1865 -#: js/rhythmruler.js:2081 -#: js/tempo.js:414 +#: js/widgets/modewidget.js:1017 +#: js/widgets/pitchstaircase.js:580 +#: js/widgets/temperament.js:1929 +#: js/widgets/tempo.js:414 +#: js/widgets/phrasemaker.js:5356 +#: js/widgets/rhythmruler.js:2254 +#: js/widgets/rhythmruler.js:2472 msgid "New action block generated!" msgstr "" -#: js/oscilloscope.js:79 -msgid "Zoom In" -msgstr "" - -#: js/oscilloscope.js:88 -msgid "Zoom Out" -msgstr "" - -#: js/pitchstaircase.js:624 -msgid "Play chord" -msgstr "" - -#: js/pitchstaircase.js:632 -msgid "Play scale" +#: js/widgets/meterwidget.js:275 +msgid "Reset" msgstr "" -#: js/pitchstaircase.js:696 -msgid "Click on a note to create a new step." +#: js/widgets/meterwidget.js:301 +msgid "Click in the circle to select strong beats for the meter." msgstr "" -#: js/phrasemaker.js:363 -msgid "Export" +#: js/widgets/oscilloscope.js:79 +msgid "Zoom In" msgstr "" -#: js/phrasemaker.js:370 -msgid "Sort" +#: js/widgets/oscilloscope.js:88 +msgid "Zoom Out" msgstr "" -#: js/phrasemaker.js:373 -#: js/musickeyboard.js:559 -msgid "Add note" +#: js/widgets/pitchdrummatrix.js:356 +#: js/widgets/pitchdrummatrix.js:752 +msgid "Click in the grid to map notes to drums." msgstr "" -#: js/phrasemaker.js:764 -msgid "Click on the table to add notes." +#: js/widgets/pitchslider.js:103 +msgid "Move up" msgstr "" -#: js/phrasemaker.js:2414 -#: js/phrasemaker.js:2543 -msgid "tuplet value" +#: js/widgets/pitchslider.js:114 +msgid "Move down" msgstr "" -#: js/pitchdrummatrix.js:270 -#: js/pitchdrummatrix.js:639 -msgid "Click in the grid to map notes to drums." +#: js/widgets/pitchslider.js:136 +msgid "Click on the slider to create a note block." msgstr "" -#: js/pitchslider.js:103 -msgid "Move up" +#: js/widgets/pitchstaircase.js:624 +msgid "Play chord" msgstr "" -#: js/pitchslider.js:114 -msgid "Move down" +#: js/widgets/pitchstaircase.js:632 +msgid "Play scale" msgstr "" -#: js/pitchslider.js:136 -msgid "Click on the slider to create a note block." +#: js/widgets/pitchstaircase.js:696 +msgid "Click on a note to create a new step." msgstr "" -#: js/temperament.js:215 +#: js/widgets/temperament.js:321 msgid "back to 2:1 octave space" msgstr "" -#: js/temperament.js:323 +#: js/widgets/temperament.js:447 msgid "edit" msgstr "" -#: js/temperament.js:330 -#: js/temperament.js:332 -#: js/temperament.js:1336 -#: js/temperament.js:1338 +#: js/widgets/temperament.js:454 +#: js/widgets/temperament.js:456 +#: js/widgets/temperament.js:1493 +#: js/widgets/temperament.js:1495 msgid "close" msgstr "" -#: js/temperament.js:423 -#: js/temperament.js:736 -#: js/temperament.js:743 -#: js/temperament.js:845 -#: js/temperament.js:935 -#: js/temperament.js:942 -#: js/temperament.js:1015 -#: js/temperament.js:1284 -#: js/temperament.js:1354 -#: js/temperament.js:1430 +#: js/widgets/temperament.js:552 +#: js/widgets/temperament.js:877 +#: js/widgets/temperament.js:884 +#: js/widgets/temperament.js:986 +#: js/widgets/temperament.js:1080 +#: js/widgets/temperament.js:1087 +#: js/widgets/temperament.js:1160 +#: js/widgets/temperament.js:1433 +#: js/widgets/temperament.js:1511 +#: js/widgets/temperament.js:1596 msgid "done" msgstr "" -#: js/temperament.js:477 -#: js/temperament.js:482 -#: js/temperament.js:918 +#: js/widgets/temperament.js:610 +#: js/widgets/temperament.js:615 +#: js/widgets/temperament.js:1063 msgid "ratio" msgstr "" -#: js/temperament.js:483 +#: js/widgets/temperament.js:616 msgid "interval" msgstr "" -#: js/temperament.js:611 +#: js/widgets/temperament.js:744 msgid "non scalar" msgstr "" -#: js/temperament.js:650 +#: js/widgets/temperament.js:787 msgid "ratios" msgstr "" -#: js/temperament.js:650 +#: js/widgets/temperament.js:787 msgid "arbitrary" msgstr "" -#: js/temperament.js:719 +#: js/widgets/temperament.js:860 msgid "number of divisions" msgstr "" -#: js/temperament.js:741 -#: js/temperament.js:858 -#: js/temperament.js:940 -#: js/temperament.js:1033 +#: js/widgets/temperament.js:882 +#: js/widgets/temperament.js:999 +#: js/widgets/temperament.js:1085 +#: js/widgets/temperament.js:1178 msgid "preview" msgstr "" -#: js/temperament.js:788 +#: js/widgets/temperament.js:929 msgid "The Number of divisions is too large." msgstr "" -#: js/temperament.js:921 +#: js/widgets/temperament.js:1066 msgid "recursion" msgstr "" -#: js/temperament.js:1450 +#: js/widgets/temperament.js:1616 msgid "The octave ratio has changed. This changes temperament significantly." msgstr "" -#: js/temperament.js:2087 +#: js/widgets/temperament.js:2248 msgid "Table" msgstr "" -#: js/temperament.js:2185 +#: js/widgets/temperament.js:2356 msgid "Add pitches" msgstr "" -#: js/musickeyboard.js:570 -msgid "Metronome" +#: js/widgets/tempo.js:78 +#: js/widgets/tempo.js:97 +#: js/widgets/tempo.js:99 +#: js/widgets/aiwidget.js:134 +#: js/widgets/aiwidget.js:136 +#: js/widgets/rhythmruler.js:681 +#: js/widgets/rhythmruler.js:683 +#: js/widgets/rhythmruler.js:1864 +#: js/widgets/rhythmruler.js:1866 +#: js/widgets/sampler.js:180 +#: js/widgets/sampler.js:182 +msgid "Pause" msgstr "" -#: js/musickeyboard.js:1296 -#: plugins/rodi.rtp:193 -msgid "duration" +#: js/widgets/tempo.js:113 +msgid "Save tempo" msgstr "" -#: js/musickeyboard.js:2840 -msgid "New action blocks generated!" +#: js/widgets/tempo.js:144 +msgid "speed up" msgstr "" -#: js/musickeyboard.js:2841 -msgid "New action block generated" +#: js/widgets/tempo.js:150 +msgid "slow down" msgstr "" -#: js/musickeyboard.js:2984 -#: js/musickeyboard.js:2992 -msgid "MIDI device present." +#: js/widgets/tempo.js:194 +msgid "Adjust the tempo with the buttons." msgstr "" -#: js/musickeyboard.js:2995 -msgid "No MIDI device found." +#: js/widgets/tempo.js:261 +msgid "Please enter a number between 30 and 1000" msgstr "" -#: js/musickeyboard.js:3000 -msgid "Failed to get MIDI access in browser." +#: js/widgets/tempo.js:268 +#: js/widgets/tempo.js:271 +msgid "The beats per minute must be between 30 and 1000." msgstr "" -#: js/rhythmruler.js:202 -msgid "Save rhythms" +#: js/widgets/tempo.js:287 +msgid "The beats per minute must be below 1000." msgstr "" -#: js/rhythmruler.js:222 -msgid "Save drum machine" +#: js/widgets/tempo.js:303 +msgid "The beats per minute must be above 30" msgstr "" -#: js/rhythmruler.js:263 -#.TRANS: user can tap out a rhythm by clicking on a ruler. -msgid "Tap a rhythm" +#: js/widgets/timbre.js:766 +msgid "Synthesizer" msgstr "" -#: js/rhythmruler.js:342 -#: js/rhythmruler.js:344 -#: js/rhythmruler.js:1481 -#: js/rhythmruler.js:1483 -#: js/sampler.js:110 -#: js/sampler.js:112 -#: js/tempo.js:78 -#: js/tempo.js:97 -#: js/tempo.js:99 -msgid "Pause" +#: js/widgets/timbre.js:789 +msgid "Oscillator" msgstr "" -#: js/rhythmruler.js:478 -msgid "Click on the ruler to divide it." +#: js/widgets/timbre.js:840 +msgid "Envelope" msgstr "" -#: js/rhythmruler.js:603 -#: js/rhythmruler.js:605 -#: js/rhythmruler.js:804 -#: js/rhythmruler.js:806 -#: js/rhythmruler.js:1386 -#: js/rhythmruler.js:1388 -msgid "tap a rhythm" +#: js/widgets/timbre.js:886 +#: planet/js/GlobalTag.js:50 +#.TRANS: On the Planet, we use labels to tag projects. +msgid "Effects" msgstr "" -#: js/rhythmruler.js:1084 -msgid "Maximum value of 256 has been exceeded." +#: js/widgets/timbre.js:904 +msgid "Filter" msgstr "" -#: js/sampler.js:137 -msgid "Warning: Sample is bigger than 1MB." +#: js/widgets/timbre.js:946 +msgid "Add filter" msgstr "" -#: js/sampler.js:142 -msgid "Upload failed: Sample is not a .wav file." +#: js/widgets/timbre.js:987 +msgid "Click on buttons to open the timbre design tools." msgstr "" -#: js/sampler.js:164 -msgid "A new sample block was generated." +#: js/widgets/timbre.js:1273 +msgid "harmonicity" msgstr "" -#: js/sampler.js:255 -msgid "Upload sample" +#: js/widgets/timbre.js:1340 +#: js/widgets/timbre.js:1406 +msgid "modulation index" msgstr "" -#: js/sampler.js:306 -msgid "Save sample" +#: js/widgets/timbre.js:1484 +msgid "vibrato amount" msgstr "" -#: js/sampler.js:697 -#.TRANS: The reference tone is a sound used for comparison. -msgid "reference tone" +#: js/widgets/timbre.js:1919 +msgid "Filter already present." msgstr "" -#: js/tempo.js:113 -msgid "Save tempo" +#: js/widgets/timbre.js:2322 +msgid "delay (MS)" msgstr "" -#: js/tempo.js:144 -msgid "speed up" +#: js/widgets/timbre.js:2507 +msgid "distortion amount" msgstr "" -#: js/tempo.js:150 -msgid "slow down" +#: js/widgets/aiwidget.js:180 +#: js/widgets/sampler.js:227 +msgid "Warning: Sample is bigger than 1MB." msgstr "" -#: js/tempo.js:194 -msgid "Adjust the tempo with the buttons." +#: js/widgets/aiwidget.js:539 +msgid "New start block generated" msgstr "" -#: js/tempo.js:261 -msgid "Please enter a number between 30 and 1000" +#: js/widgets/aiwidget.js:541 +msgid "MIDI loading. This may take some time depending upon the number of notes in the track" msgstr "" -#: js/tempo.js:268 -#: js/tempo.js:271 -msgid "The beats per minute must be between 30 and 1000." +#: js/widgets/aiwidget.js:551 +#: js/widgets/sampler.js:254 +msgid "Upload failed: Sample is not a .wav file." msgstr "" -#: js/tempo.js:287 -msgid "The beats per minute must be below 1000." +#: js/widgets/aiwidget.js:679 +#: js/widgets/sampler.js:432 +msgid "Save sample" msgstr "" -#: js/tempo.js:303 -msgid "The beats per minute must be above 30" +#: js/widgets/aiwidget.js:701 +msgid "AI Music" msgstr "" -#: js/timbre.js:766 -msgid "Synthesizer" +#: js/widgets/arpeggio.js:239 +msgid "Click in the grid to add steps to the arpeggio." msgstr "" -#: js/timbre.js:789 -msgid "Oscillator" +#: js/widgets/help.js:95 +#: js/widgets/help.js:125 +#: js/widgets/help.js:146 +#: js/widgets/help.js:158 +#: js/widgets/help.js:376 +#: js/widgets/help.js:391 +msgid "Take a tour" msgstr "" -#: js/timbre.js:840 -msgid "Envelope" +#: js/widgets/musickeyboard.js:725 +#: js/widgets/phrasemaker.js:584 +msgid "Add note" msgstr "" -#: js/timbre.js:886 -#: js/GlobalTag.js:50 -#.TRANS: On the Planet, we use labels to tag projects. -msgid "Effects" +#: js/widgets/musickeyboard.js:744 +msgid "Metronome" +msgstr "" + +#: js/widgets/musickeyboard.js:1549 +#: plugins/rodi.rtp:193 +msgid "duration" +msgstr "" + +#: js/widgets/musickeyboard.js:3179 +msgid "New action blocks generated" +msgstr "" + +#: js/widgets/musickeyboard.js:3180 +msgid "New action block generated" msgstr "" -#: js/timbre.js:904 -msgid "Filter" +#: js/widgets/musickeyboard.js:3365 +#: js/widgets/musickeyboard.js:3373 +msgid "MIDI device present." msgstr "" -#: js/timbre.js:946 -msgid "Add filter" +#: js/widgets/musickeyboard.js:3376 +msgid "No MIDI device found." msgstr "" -#: js/timbre.js:987 -msgid "Click on buttons to open the timbre design tools." +#: js/widgets/musickeyboard.js:3386 +msgid "Failed to get MIDI access in browser." msgstr "" -#: js/timbre.js:1273 -msgid "harmonicity" +#: js/widgets/phrasemaker.js:574 +msgid "Export" msgstr "" -#: js/timbre.js:1340 -#: js/timbre.js:1406 -msgid "modulation index" +#: js/widgets/phrasemaker.js:581 +msgid "Sort" msgstr "" -#: js/timbre.js:1484 -msgid "vibrato amount" +#: js/widgets/phrasemaker.js:975 +msgid "Click on the table to add notes." msgstr "" -#: js/timbre.js:1919 -msgid "Filter already present." +#: js/widgets/phrasemaker.js:2677 +#: js/widgets/phrasemaker.js:2819 +msgid "tuplet value" msgstr "" -#: js/timbre.js:2322 -msgid "delay (MS)" +#: js/widgets/rhythmruler.js:486 +msgid "Save rhythms" msgstr "" -#: js/timbre.js:2507 -msgid "distortion amount" +#: js/widgets/rhythmruler.js:512 +msgid "Save drum machine" msgstr "" -#: js/meterwidget.js:170 -msgid "Reset" +#: js/widgets/rhythmruler.js:589 +#.TRANS: user can tap out a rhythm by clicking on a ruler. +msgid "Tap a rhythm" msgstr "" -#: js/meterwidget.js:196 -msgid "Click in the circle to select strong beats for the meter." +#: js/widgets/rhythmruler.js:817 +msgid "Click on the ruler to divide it." msgstr "" -#: js/arpeggio.js:239 -msgid "Click in the grid to add steps to the arpeggio." +#: js/widgets/rhythmruler.js:950 +#: js/widgets/rhythmruler.js:952 +#: js/widgets/rhythmruler.js:1152 +#: js/widgets/rhythmruler.js:1154 +#: js/widgets/rhythmruler.js:1765 +#: js/widgets/rhythmruler.js:1767 +msgid "tap a rhythm" msgstr "" -#: js/ProjectStorage.js:243 -msgid "anonymous" +#: js/widgets/rhythmruler.js:1459 +msgid "Maximum value of 256 has been exceeded." msgstr "" -#: js/GlobalCard.js:68 -msgid "Share" +#: js/widgets/sampler.js:237 +msgid "Recording started..." msgstr "" -#: js/GlobalCard.js:74 -msgid "Flags" +#: js/widgets/sampler.js:245 +msgid "Recording complete..." msgstr "" -#: js/LocalCard.js:36 -msgid "View published project" +#: js/widgets/sampler.js:283 +msgid "A new sample block was generated." msgstr "" -#: js/LocalCard.js:42 -msgid "Publish project" +#: js/widgets/sampler.js:378 +msgid "Upload sample" msgstr "" -#: js/LocalCard.js:51 -msgid "Edit project" +#: js/widgets/sampler.js:399 +msgid "Warning: Your sample cannot be loaded because it is >1MB." msgstr "" -#: js/LocalCard.js:52 -msgid "Delete project" +#: js/widgets/sampler.js:448 +msgid "Toggle Mic" msgstr "" -#: js/LocalCard.js:53 -msgid "Download project" +#: js/widgets/sampler.js:458 +msgid "Playback" msgstr "" -#: js/LocalCard.js:55 -msgid "Duplicate project" +#: js/widgets/sampler.js:979 +#.TRANS: The reference tone is a sound used for comparison. +msgid "reference tone" msgstr "" -#: js/GlobalTag.js:28 +#: planet/js/GlobalTag.js:28 #.TRANS: On the Planet, we use labels to tag projects. msgid "All Projects" msgstr "" -#: js/GlobalTag.js:30 -#: js/StringHelper.js:37 +#: planet/js/GlobalTag.js:30 +#: planet/js/StringHelper.js:37 #.TRANS: On the Planet, we use labels to tag projects. msgid "My Projects" msgstr "" -#: js/GlobalTag.js:32 +#: planet/js/GlobalTag.js:32 #.TRANS: On the Planet, we use labels to tag projects. msgid "Examples" msgstr "" -#: js/GlobalTag.js:34 +#: planet/js/GlobalTag.js:34 #.TRANS: On the Planet, we use labels to tag projects. msgid "Music" msgstr "" -#: js/GlobalTag.js:36 +#: planet/js/GlobalTag.js:36 #.TRANS: On the Planet, we use labels to tag projects. msgid "Art" msgstr "" -#: js/GlobalTag.js:38 +#: planet/js/GlobalTag.js:38 #.TRANS: On the Planet, we use labels to tag projects. msgid "Math" msgstr "" -#: js/GlobalTag.js:40 +#: planet/js/GlobalTag.js:40 #.TRANS: On the Planet, we use labels to tag projects. msgid "Interactive" msgstr "" -#: js/GlobalTag.js:42 +#: planet/js/GlobalTag.js:42 #.TRANS: On the Planet, we use labels to tag projects. msgid "Design" msgstr "" -#: js/GlobalTag.js:44 +#: planet/js/GlobalTag.js:44 #.TRANS: On the Planet, we use labels to tag projects. msgid "Game" msgstr "" -#: js/GlobalTag.js:46 +#: planet/js/GlobalTag.js:46 #.TRANS: On the Planet, we use labels to tag projects. msgid "Media" msgstr "" -#: js/GlobalTag.js:48 +#: planet/js/GlobalTag.js:48 #.TRANS: On the Planet, we use labels to tag projects. msgid "Sensors" msgstr "" -#: js/GlobalTag.js:52 +#: planet/js/GlobalTag.js:52 #.TRANS: On the Planet, we use labels to tag projects. msgid "Code Snippet" msgstr "" -#: js/helper.js:149 -#: js/StringHelper.js:49 -msgid "Show more tags" +#: planet/js/LocalCard.js:36 +msgid "View published project" msgstr "" -#: js/helper.js:150 -msgid "Show fewer tags" +#: planet/js/LocalCard.js:42 +msgid "Publish project" +msgstr "" + +#: planet/js/LocalCard.js:51 +msgid "Edit project" +msgstr "" + +#: planet/js/LocalCard.js:52 +msgid "Delete project" +msgstr "" + +#: planet/js/LocalCard.js:53 +msgid "Download project" +msgstr "" + +#: planet/js/LocalCard.js:55 +msgid "Duplicate project" +msgstr "" + +#: planet/js/ProjectStorage.js:243 +msgid "anonymous" +msgstr "" + +#: planet/js/SaveInterface.js:34 +msgid "Open in Music Blocks" +msgstr "" + +#: planet/js/SaveInterface.js:35 +msgid "Open in Turtle Blocks" +msgstr "" + +#: planet/js/GlobalCard.js:68 +msgid "Share" +msgstr "" + +#: planet/js/GlobalCard.js:74 +msgid "Flags" +msgstr "" + +#: planet/js/GlobalPlanet.js:35 +msgid "No results found." +msgstr "" + +#: planet/js/GlobalPlanet.js:51 +msgid "Remix of" +msgstr "" + +#: planet/js/GlobalPlanet.js:509 +msgid "Cannot connect to server" msgstr "" -#: js/ProjectViewer.js:30 +#: planet/js/ProjectViewer.js:30 msgid "Error: Report could not be submitted. Try again later." msgstr "" -#: js/ProjectViewer.js:31 +#: planet/js/ProjectViewer.js:31 msgid "Thank you for reporting this project. A moderator will review the project shortly, to verify violation of the Sugar Labs Code of Conduct." msgstr "" -#: js/ProjectViewer.js:32 -#: js/StringHelper.js:62 -#: js/StringHelper.js:64 -#: js/StringHelper.js:68 +#: planet/js/ProjectViewer.js:32 +#: planet/js/StringHelper.js:62 +#: planet/js/StringHelper.js:64 +#: planet/js/StringHelper.js:68 msgid "Report Project" msgstr "" -#: js/ProjectViewer.js:33 -#: js/StringHelper.js:63 +#: planet/js/ProjectViewer.js:33 +#: planet/js/StringHelper.js:63 msgid "Project Reported" msgstr "" -#: js/ProjectViewer.js:34 +#: planet/js/ProjectViewer.js:34 msgid "Report description required" msgstr "" -#: js/ProjectViewer.js:35 +#: planet/js/ProjectViewer.js:35 msgid "Report description too long" msgstr "" -#: js/StringHelper.js:30 +#: planet/js/Publisher.js:30 +msgid "Feature unavailable - cannot connect to server. Reload Music Blocks to try again." +msgstr "" + +#: planet/js/Publisher.js:220 +#: planet/js/Publisher.js:237 +msgid "This field is required" +msgstr "" + +#: planet/js/Publisher.js:227 +msgid "Title too long" +msgstr "" + +#: planet/js/Publisher.js:244 +msgid "Description too long" +msgstr "" + +#: planet/js/Publisher.js:341 +msgid "Server Error" +msgstr "" + +#: planet/js/Publisher.js:341 +msgid "Try Again" +msgstr "" + +#: planet/js/StringHelper.js:30 msgid "Planet" msgstr "" -#: js/StringHelper.js:31 +#: planet/js/StringHelper.js:31 msgid "Close Planet" msgstr "" -#: js/StringHelper.js:32 +#: planet/js/StringHelper.js:32 msgid "Open project from file" msgstr "" -#: js/StringHelper.js:34 +#: planet/js/StringHelper.js:34 msgid "Local" msgstr "" -#: js/StringHelper.js:35 +#: planet/js/StringHelper.js:35 msgid "Global" msgstr "" -#: js/StringHelper.js:36 +#: planet/js/StringHelper.js:36 msgid "Search for a project" msgstr "" -#: js/StringHelper.js:38 +#: planet/js/StringHelper.js:38 msgid "Publish Project" msgstr "" -#: js/StringHelper.js:40 +#: planet/js/StringHelper.js:40 msgid "Tags (max 5)" msgstr "" -#: js/StringHelper.js:41 -#: js/StringHelper.js:61 +#: planet/js/StringHelper.js:41 +#: planet/js/StringHelper.js:61 msgid "Description" msgstr "" -#: js/StringHelper.js:42 -#: js/StringHelper.js:67 +#: planet/js/StringHelper.js:42 +#: planet/js/StringHelper.js:67 msgid "Submit" msgstr "" -#: js/StringHelper.js:43 -#: js/StringHelper.js:47 +#: planet/js/StringHelper.js:43 +#: planet/js/StringHelper.js:47 msgid "Cancel" msgstr "" -#: js/StringHelper.js:44 +#: planet/js/StringHelper.js:44 msgid "Delete \\"\\"?" msgstr "" -#: js/StringHelper.js:45 +#: planet/js/StringHelper.js:45 msgid "Permanently delete project \\"\\"?" msgstr "" -#: js/StringHelper.js:48 +#: planet/js/StringHelper.js:48 msgid "Explore Projects" msgstr "" -#: js/StringHelper.js:50 +#: planet/js/StringHelper.js:49 +#: planet/js/helper.js:149 +msgid "Show more tags" +msgstr "" + +#: planet/js/StringHelper.js:50 msgid "Most recent" msgstr "" -#: js/StringHelper.js:51 +#: planet/js/StringHelper.js:51 msgid "Most liked" msgstr "" -#: js/StringHelper.js:52 +#: planet/js/StringHelper.js:52 msgid "Most downloaded" msgstr "" -#: js/StringHelper.js:53 +#: planet/js/StringHelper.js:53 msgid "A-Z" msgstr "" -#: js/StringHelper.js:54 +#: planet/js/StringHelper.js:54 msgid "Sort by" msgstr "" -#: js/StringHelper.js:55 +#: planet/js/StringHelper.js:55 msgid "Load More Projects" msgstr "" -#: js/StringHelper.js:56 +#: planet/js/StringHelper.js:56 msgid "Last Updated" msgstr "" -#: js/StringHelper.js:57 +#: planet/js/StringHelper.js:57 msgid "Creation Date" msgstr "" -#: js/StringHelper.js:58 +#: planet/js/StringHelper.js:58 msgid "Number of Downloads:" msgstr "" -#: js/StringHelper.js:59 +#: planet/js/StringHelper.js:59 msgid "Number of Likes:" msgstr "" -#: js/StringHelper.js:60 +#: planet/js/StringHelper.js:60 msgid "Tags:" msgstr "" -#: js/StringHelper.js:65 +#: planet/js/StringHelper.js:65 msgid "Report projects which violate the Sugar Labs Code of Conduct." msgstr "" -#: js/StringHelper.js:66 +#: planet/js/StringHelper.js:66 msgid "Reason for reporting project" msgstr "" -#: js/StringHelper.js:70 +#: planet/js/StringHelper.js:70 msgid "Download as File" msgstr "" -#: js/GlobalPlanet.js:35 -msgid "No results found." -msgstr "" - -#: js/GlobalPlanet.js:51 -msgid "Remix of" -msgstr "" - -#: js/GlobalPlanet.js:509 -msgid "Cannot connect to server" -msgstr "" - -#: js/Publisher.js:30 -msgid "Feature unavailable - cannot connect to server. Reload Music Blocks to try again." -msgstr "" - -#: js/Publisher.js:218 -#: js/Publisher.js:235 -msgid "This field is required" -msgstr "" - -#: js/Publisher.js:225 -msgid "Title too long" +#: planet/js/helper.js:150 +msgid "Show fewer tags" msgstr "" -#: js/Publisher.js:242 -msgid "Description too long" +#: plugins/accelerometer.rtp:48 +msgid "motion x" msgstr "" -#: js/Publisher.js:339 -msgid "Server Error" +#: plugins/accelerometer.rtp:56 +msgid "motion y" msgstr "" -#: js/Publisher.js:339 -msgid "Try Again" +#: plugins/accelerometer.rtp:64 +msgid "motion z" msgstr "" -#: js/SaveInterface.js:34 -msgid "Open in Music Blocks" +#: plugins/facebook.rtp:27 +msgid "publish" msgstr "" -#: js/SaveInterface.js:35 -msgid "Open in Turtle Blocks" +#: plugins/maths.rtp:62 +msgid "power" msgstr "" -#: plugins/weather.rtp:68 -#: plugins/weather.rtp:97 -msgid "Days ahead must be in the range of -1 to 5." +#: plugins/maths.rtp:62 +msgid "base" msgstr "" -#: plugins/weather.rtp:122 -msgid "forecast" +#: plugins/maths.rtp:62 +msgid "exp" msgstr "" -#: plugins/weather.rtp:123 -#: plugins/weather.rtp:137 -#: plugins/weather.rtp:150 -msgid "city" +#: plugins/maths.rtp:99 +msgid "floor" msgstr "" -#: plugins/weather.rtp:124 -#: plugins/weather.rtp:138 -#: plugins/weather.rtp:151 -msgid "day" +#: plugins/maths.rtp:104 +msgid "ceiling" msgstr "" -#: plugins/weather.rtp:136 -msgid "high" +#: plugins/maths.rtp:109 +msgid "to degrees" msgstr "" -#: plugins/weather.rtp:149 -msgid "low" +#: plugins/maths.rtp:114 +msgid "to radians" msgstr "" #: plugins/nutrition.rtp:104 @@ -9457,45 +9866,6 @@ msgstr "" msgid "water" msgstr "" -#: plugins/maths.rtp:62 -#: plugins/examples.rtp:93 -msgid "power" -msgstr "" - -#: plugins/maths.rtp:62 -#: plugins/examples.rtp:93 -msgid "base" -msgstr "" - -#: plugins/maths.rtp:62 -#: plugins/examples.rtp:93 -msgid "exp" -msgstr "" - -#: plugins/maths.rtp:99 -#: plugins/examples.rtp:130 -msgid "floor" -msgstr "" - -#: plugins/maths.rtp:104 -#: plugins/examples.rtp:135 -msgid "ceiling" -msgstr "" - -#: plugins/maths.rtp:109 -#: plugins/examples.rtp:140 -msgid "to degrees" -msgstr "" - -#: plugins/maths.rtp:114 -#: plugins/examples.rtp:145 -msgid "to radians" -msgstr "" - -#: plugins/facebook.rtp:27 -msgid "publish" -msgstr "" - #: plugins/rodi.rtp:172 msgid "blink" msgstr "" @@ -9524,18 +9894,66 @@ msgstr "" msgid "move" msgstr "" -#: plugins/accelerometer.rtp:48 -msgid "motion x" +#: plugins/weather.rtp:68 +#: plugins/weather.rtp:97 +msgid "Days ahead must be in the range of -1 to 5." msgstr "" -#: plugins/accelerometer.rtp:56 -msgid "motion y" +#: plugins/weather.rtp:122 +msgid "forecast" msgstr "" -#: plugins/accelerometer.rtp:64 -msgid "motion z" +#: plugins/weather.rtp:123 +#: plugins/weather.rtp:137 +#: plugins/weather.rtp:150 +msgid "city" +msgstr "" + +#: plugins/weather.rtp:124 +#: plugins/weather.rtp:138 +#: plugins/weather.rtp:151 +msgid "day" +msgstr "" + +#: plugins/weather.rtp:136 +msgid "high" +msgstr "" + +#: plugins/weather.rtp:149 +msgid "low" msgstr "" +#: js/toolbar.js:70 + +#: js/toolbar.js:130 + +#: js/toolbar.js:194 + +#: js/toolbar.js:249 + +#~msgid "Toggle JavaScript Editor" +#~msgstr "" + +#: js/EnsembleBlocks.js:643 + +#~msgid "The Turrle pitch block returns the current pitch number being played by the specified turtle." +#~msgstr "" + +#: js/PitchActions.js:88 + +#~msgid "The Scalar Step Block must be used inside of a Note Block." +#~msgstr "" + +#: js/PitchActions.js:107 + +#~msgid "The Scalar Step Block must be preceded by a Pitch Block." +#~msgstr "" + +#: js/musickeyboard.js:2840 + +#~msgid "New action blocks generated!" +#~msgstr "" + #: js/toolbar.js:110 #: js/toolbar.js:204 @@ -9876,11 +10294,6 @@ msgstr "" #~msgid "The Time block returns the number of seconds that the program has been running." #~msgstr "" -#: js/help.js:95 - -#~msgid "Take a tour" -#~msgstr "" - #: js/GlobalCard.js:48 #~msgid "More Details" @@ -12779,11 +13192,6 @@ msgstr "" #~msgid "The save-stack button saves a stack onto a custom palette. It appears after a \"long press\" on a stack." #~msgstr "" -#: js/musicutils.js:254 - -#~msgid "Custom" -#~msgstr "" - #: js/basicblocks.js:4785 #~msgid "Rhythm" diff --git a/po/hus.po b/po/hus.po index 1672cec9d4..6fa5604d4c 100644 --- a/po/hus.po +++ b/po/hus.po @@ -2129,276 +2129,131 @@ #: js/planetInterface.js:104 #: js/planetInterface.js:104 #: js/planetInterface.js:104 -msgid "project undefined" +#: js/SaveInterface.js:59 +#: js/SaveInterface.js:61 +#: js/SaveInterface.js:93 +msgid "Music Blocks Project" msgstr "" -#: js/logo.js:61 -msgid "Not a valid pitch name" +#: js/SaveInterface.js:63 +msgid "This project was created in Music Blocks" msgstr "" -#: js/logo.js:507 -#: js/ProgramBlocks.js:258 -#: js/ProgramBlocks.js:427 -msgid "You must select a file." +#: js/SaveInterface.js:67 +msgid "Music Blocks is a Free/Libre Software application." msgstr "" -#: js/logo.js:1184 -#: js/turtles.js:118 -#: js/turtle-painter.js:1192 -#: js/turtle-painter.js:1193 -#: js/block.js:1463 -#: js/lilypond.js:757 -#: js/lilypond.js:921 -#: js/lilypond.js:959 -#: js/ActionBlocks.js:1223 -#: js/ProgramBlocks.js:1267 -msgid "start" -msgstr "tujuw" - -#: js/logo.js:1696 -msgid "Playback is ready." +#: js/SaveInterface.js:69 +msgid "The source code can be accessed at" msgstr "" -#: js/blocks.js:1011 -#: js/blocks.js:3427 -#: js/blocks.js:3428 -#: js/blocks.js:3653 -#: js/blocks.js:4012 -#: js/blocks.js:4205 -#: js/blocks.js:5343 -#: js/blocks.js:6474 -#: js/palette.js:527 -#: js/palette.js:536 -#: js/palette.js:545 -#: js/palette.js:554 -#: js/palette.js:1131 -#: js/palette.js:1142 -#: js/palette.js:1153 -#: js/palette.js:1164 -#: js/palette.js:1183 -#: js/rubrics.js:529 -#: js/macros.js:170 -#: js/macros.js:266 -#: js/macros.js:267 -#: js/macros.js:276 -#: js/macros.js:828 -#: js/block.js:1449 -#: js/block.js:4164 -#: js/block.js:4182 -#: js/block.js:4193 -#: js/turtledefs.js:128 -#: js/turtledefs.js:230 -#: js/ActionBlocks.js:254 -#: js/ActionBlocks.js:307 -#: js/ActionBlocks.js:617 -#: js/ActionBlocks.js:716 -#: js/ActionBlocks.js:961 -#: js/ActionBlocks.js:1049 -#: js/ActionBlocks.js:1322 -#: js/ActionBlocks.js:1325 -#: js/ActionBlocks.js:1337 -#: js/ActionBlocks.js:1404 -#: js/MeterBlocks.js:715 -#: js/MeterBlocks.js:768 -#: js/MeterBlocks.js:831 -#: js/MeterBlocks.js:892 -#: js/phrasemaker.js:4412 -#: js/musickeyboard.js:2647 -#: js/rhythmruler.js:1928 -#: js/rhythmruler.js:1935 -#: js/rhythmruler.js:2119 -#: js/rhythmruler.js:2126 -msgid "action" -msgstr "pakdha' t'ojláb" - -#: js/blocks.js:1205 -#: js/blocks.js:3380 -#: js/blocks.js:3770 -#: js/blocks.js:3801 -#: js/blocks.js:3850 -#: js/blocks.js:3885 -#: js/blocks.js:6497 -#: js/palette.js:509 -#: js/palette.js:638 -#: js/palette.js:1107 -#: js/BoxesBlocks.js:282 -#: js/BoxesBlocks.js:285 -#: js/BoxesBlocks.js:405 -#: js/BoxesBlocks.js:594 -msgid "box" -msgstr "baltse'" - -#: js/blocks.js:1680 -msgid "Consider breaking this stack into parts." +#: js/SaveInterface.js:72 +msgid "For more information, please consult the" msgstr "" -#: js/blocks.js:2408 -#: js/palette.js:653 -#: js/MediaBlocks.js:602 -msgid "open file" +#: js/SaveInterface.js:76 +#: js/turtledefs.js:795 +msgid "Music Blocks Guide" msgstr "" -#: js/blocks.js:2415 -#: js/blocks.js:2423 -#: js/activity.js:1875 -msgid "audio file" +#: js/SaveInterface.js:83 +msgid "Alternatively, open the file in Music Blocks using the Load project button." msgstr "" -#: js/blocks.js:2536 -#: js/blocks.js:3147 -#: js/block.js:3543 -msgid "on2" +#: js/SaveInterface.js:85 +msgid "Project Code" msgstr "" -#: js/blocks.js:2538 -#: js/blocks.js:3149 -#: js/block.js:3545 -msgid "off" +#: js/SaveInterface.js:87 +msgid "This code stores data about the blocks in a project." msgstr "" -#: js/blocks.js:2543 -#: js/blocks.js:3154 -#: js/palette.js:618 -#: js/block.js:3466 -#: js/BooleanBlocks.js:77 -#: js/BooleanBlocks.js:167 -#: js/BooleanBlocks.js:251 -#: js/BooleanBlocks.js:335 -#: js/BooleanBlocks.js:433 -#: js/BooleanBlocks.js:539 -#: js/BooleanBlocks.js:640 -#: js/BooleanBlocks.js:741 -#: js/BooleanBlocks.js:847 -#: js/BooleanBlocks.js:948 -#: js/BooleanBlocks.js:1033 -#: js/SensorsBlocks.js:910 -msgid "true" +#: js/SaveInterface.js:89 +msgid "Show" msgstr "" -#: js/blocks.js:2545 -#: js/blocks.js:3156 -#: js/block.js:3466 -#: js/BooleanBlocks.js:79 -#: js/BooleanBlocks.js:169 -#: js/BooleanBlocks.js:253 -#: js/BooleanBlocks.js:337 -#: js/BooleanBlocks.js:435 -#: js/BooleanBlocks.js:541 -#: js/BooleanBlocks.js:642 -#: js/BooleanBlocks.js:743 -#: js/BooleanBlocks.js:849 -#: js/BooleanBlocks.js:950 -#: js/SensorsBlocks.js:912 -msgid "false" +#: js/SaveInterface.js:91 +msgid "Hide" msgstr "" -#: js/blocks.js:3183 -#: js/palette.js:574 -#: js/MediaBlocks.js:892 -#: js/MediaBlocks.js:963 -msgid "text" -msgstr "dhuchlab" - -#: js/blocks.js:3379 -#: js/palette.js:641 -#: js/palette.js:642 -#: js/BoxesBlocks.js:514 -msgid "store in box" +#: js/SaveInterface.js:131 +#: js/SaveInterface.js:204 +#: js/SaveInterface.js:262 +#: js/SaveInterface.js:389 +#: js/SaveInterface.js:417 +#: js/activity.js:4884 +#: planet/js/ProjectStorage.js:27 +#: planet/js/GlobalPlanet.js:467 +#: planet/js/GlobalPlanet.js:469 +#: planet/js/GlobalPlanet.js:495 +#.TRANS: default project title when saving as Lilypond +msgid "My Project" msgstr "" -#: js/blocks.js:3384 -#: js/blocks.js:3824 -#: js/blocks.js:3859 -#: js/blocks.js:3894 -#: js/blocks.js:5773 -#: js/blocks.js:5794 -#: js/BoxesBlocks.js:772 -msgid "box1" +#: js/SaveInterface.js:197 +#: planet/js/SaveInterface.js:58 +msgid "No description provided" msgstr "" -#: js/blocks.js:3386 -#: js/blocks.js:3826 -#: js/blocks.js:3861 -#: js/blocks.js:3896 -#: js/blocks.js:5775 -#: js/blocks.js:5796 -#: js/BoxesBlocks.js:663 -msgid "box2" +#: js/SaveInterface.js:332 +msgid "Your recording is in progress." msgstr "" -#: js/blocks.js:4058 -#: js/palette.js:639 -#: js/palette.js:644 -#: js/palette.js:1043 -#: js/BoxesBlocks.js:591 -msgid "store in" -msgstr "ki dhaya' ti" - -#: js/blocks.js:4058 -#: js/EnsembleBlocks.js:391 -#: js/EnsembleBlocks.js:402 -#: js/MediaBlocks.js:746 -#: js/ProgramBlocks.js:390 -#: js/ProgramBlocks.js:495 -#: js/ProgramBlocks.js:658 -#: js/BoxesBlocks.js:595 -#: js/PitchBlocks.js:656 -#: js/PitchBlocks.js:932 -#: js/PitchBlocks.js:1827 -#: js/ToneBlocks.js:1025 -#: js/DictBlocks.js:215 -#: js/DictBlocks.js:289 -msgid "name" +#: js/SaveInterface.js:401 +#.TRANS: File name prompt for save as Lilypond +msgid "File name" msgstr "" -#: js/blocks.js:4058 -#: js/RhythmBlocks.js:1130 -#: js/BoxesBlocks.js:75 -#: js/BoxesBlocks.js:595 -#: js/HeapBlocks.js:544 -#: js/DictBlocks.js:289 -#: js/DictBlocks.js:430 -msgid "value" -msgstr "jalbíl" - -#: js/blocks.js:4907 -msgid "There is no block selected." +#: js/SaveInterface.js:403 +#: planet/js/StringHelper.js:39 +#.TRANS: Project title prompt for save as Lilypond +msgid "Project title" msgstr "" -#: js/blocks.js:5002 -#: js/MediaBlocks.js:888 -msgid "show" -msgstr "tejwa'méjdha'" - -#: js/blocks.js:5005 -#: js/MediaBlocks.js:803 -#.TRANS: Avatar is the image used to determine the appearance of the mouse. -msgid "avatar" +#: js/SaveInterface.js:405 +#.TRANS: Project title prompt for save as Lilypond +msgid "Project author" msgstr "" -#: js/blocks.js:5008 -#: js/ToneBlocks.js:1010 -#: js/sampler.js:693 -#.TRANS: The sound sample that the user uploads. -msgid "sample" +#: js/SaveInterface.js:407 +#.TRANS: MIDI prompt for save as Lilypond +msgid "Include MIDI output?" msgstr "" -#: js/turtles.js:874 -msgid "Grid" +#: js/SaveInterface.js:409 +#.TRANS: Guitar prompt for save as Lilypond +msgid "Include guitar tablature output?" msgstr "" -#: js/turtles.js:891 -#: js/turtledefs.js:626 -msgid "Clean" -msgstr "T'oka'" +#: js/SaveInterface.js:411 +#.TRANS: Lilypond is a scripting language for generating sheet music +msgid "Save as Lilypond" +msgstr "" -#: js/turtles.js:912 -#: js/turtledefs.js:632 -msgid "Collapse" +#: js/SaveInterface.js:426 +#: js/blocks/EnsembleBlocks.js:75 +#: js/blocks/EnsembleBlocks.js:154 +#: js/blocks/EnsembleBlocks.js:216 +#: js/blocks/EnsembleBlocks.js:302 +#: js/blocks/EnsembleBlocks.js:348 +#: js/blocks/EnsembleBlocks.js:389 +#: js/blocks/EnsembleBlocks.js:441 +#: js/blocks/EnsembleBlocks.js:490 +#: js/blocks/EnsembleBlocks.js:536 +#: js/blocks/EnsembleBlocks.js:583 +#: js/blocks/EnsembleBlocks.js:637 +#: js/blocks/EnsembleBlocks.js:753 +#: js/blocks/EnsembleBlocks.js:840 +#: js/blocks/EnsembleBlocks.js:899 +#: js/blocks/EnsembleBlocks.js:942 +#: js/blocks/EnsembleBlocks.js:1212 +#: js/blocks/EnsembleBlocks.js:1280 +#.TRANS: default project author when saving as Lilypond +msgid "Mr. Mouse" msgstr "" -#: js/turtles.js:940 -msgid "Expand" +#: js/SaveInterface.js:573 +msgid "The Lilypond code is copied to clipboard. You can paste it here: " msgstr "" #: js/languagebox.js:198 @@ -2409,6933 +2264,7487 @@ msgstr "" msgid "Music Blocks is already set to this language." msgstr "" -#: js/piemenus.js:200 -#: js/musicutils.js:808 -#: js/musicutils.js:824 -#: js/phrasemaker.js:1672 -#: js/musickeyboard.js:2041 -#: js/sampler.js:544 -#.TRANS: double sharp is a music term related to pitch -msgid "double sharp" +#: js/planetInterface.js:131 +msgid "project undefined" msgstr "" -#: js/piemenus.js:201 -#: js/PitchBlocks.js:1510 -#: js/PitchActions.js:580 -#: js/musicutils.js:806 -#: js/musicutils.js:825 -#: js/phrasemaker.js:1673 -#: js/musickeyboard.js:2042 -#: js/sampler.js:545 -#.TRANS: sharp is a half-step up in pitch -#.TRANS: sharp is a music term related to pitch -msgid "sharp" +#: js/rubrics.js:523 +#: js/turtledefs.js:119 +#: js/turtledefs.js:221 +#: js/blocks/RhythmBlockPaletteBlocks.js:52 +#: js/blocks/RhythmBlockPaletteBlocks.js:234 +#: js/blocks/ProgramBlocks.js:745 +#: js/widgets/rhythmruler.js:2057 +#: js/widgets/rhythmruler.js:2064 +#: js/widgets/rhythmruler.js:2133 +#: js/widgets/rhythmruler.js:2140 +#: js/widgets/rhythmruler.js:2219 +#.TRANS: an arrangement of notes based on duration +msgid "rhythm" msgstr "" -#: js/piemenus.js:202 -#: js/musicutils.js:804 -#: js/musicutils.js:826 -#: js/phrasemaker.js:1674 -#: js/musickeyboard.js:2043 -#: js/sampler.js:546 -#.TRANS: natural is a music term related to pitch -msgid "natural" +#: js/rubrics.js:524 +#: js/turtledefs.js:121 +#: js/turtledefs.js:223 +#: js/block-verbose.js:2622 +#: js/block.js:2550 +#: js/blocks/IntervalsBlocks.js:63 +#: js/blocks/SensorsBlocks.js:178 +#: js/blocks/PitchBlocks.js:1839 +#: js/blocks/PitchBlocks.js:1853 +#: js/widgets/musickeyboard.js:1935 +#: js/widgets/phrasemaker.js:1036 +#.TRANS: pitch number +#.TRANS: pitch number +#.TRANS: we specify pitch in terms of a name and an octave. The name can be CDEFGAB or Do Re Mi Fa Sol La Ti. Octave is a number between 1 and 8. +msgid "pitch" msgstr "" -#: js/piemenus.js:203 -#: js/PitchBlocks.js:1469 -#: js/PitchActions.js:583 -#: js/musicutils.js:802 -#: js/musicutils.js:827 -#: js/phrasemaker.js:1675 -#: js/musickeyboard.js:2044 -#: js/sampler.js:547 -#.TRANS: flat is a half-step down in pitch -#.TRANS: flat is a music term related to pitch -msgid "flat" +#: js/rubrics.js:525 +#: js/turtledefs.js:123 +#: js/turtledefs.js:225 +msgid "tone" msgstr "" -#: js/piemenus.js:204 -#: js/musicutils.js:800 -#: js/musicutils.js:828 -#: js/phrasemaker.js:1676 -#: js/musickeyboard.js:2045 -#: js/sampler.js:548 -#.TRANS: double flat is a music term related to pitch -msgid "double flat" +#: js/rubrics.js:526 +#: js/lilypond.js:605 +#: js/lilypond.js:904 +#: js/lilypond.js:910 +#: js/lilypond.js:948 +msgid "mouse" msgstr "" -#: js/piemenus.js:2861 -#: js/PitchBlocks.js:1357 -#: js/musicutils.js:627 -#.TRANS: unison means the note is the same as the current note -#.TRANS: unison is a music term related to intervals -msgid "unison" +#: js/rubrics.js:527 +#: js/turtledefs.js:132 +#: js/turtledefs.js:234 +#: js/widgets/phrasemaker.js:1040 +msgid "pen" msgstr "" -#: js/piemenus.js:3015 -#: js/piemenus.js:3088 -#: js/musicutils.js:635 -#: js/musicutils.js:810 -#: js/musicutils.js:912 -#.TRANS: major is a music term related to intervals and mode -msgid "major" -msgstr "" +#: js/rubrics.js:528 +#: js/turtledefs.js:133 +#: js/turtledefs.js:235 +#: js/blocks/NumberBlocks.js:981 +#: js/blocks/PitchBlocks.js:1717 +#: js/blocks/PitchBlocks.js:1758 +msgid "number" +msgstr "ajixtaláb" -#: js/piemenus.js:3015 -#: js/piemenus.js:3088 -#: js/musicutils.js:653 -#.TRANS: modal scale for music -msgid "ionian" +#: js/rubrics.js:529 +#: js/turtledefs.js:127 +#: js/turtledefs.js:229 +msgid "flow" msgstr "" -#: js/piemenus.js:3017 -#: js/piemenus.js:3092 -#: js/musicutils.js:633 -#: js/musicutils.js:811 -#: js/musicutils.js:909 -#.TRANS: minor is a music term related to intervals and mode -msgid "minor" -msgstr "" +#: js/rubrics.js:530 +#: js/turtledefs.js:128 +#: js/turtledefs.js:230 +#: js/block-verbose.js:1609 +#: js/block-verbose.js:4559 +#: js/block-verbose.js:4577 +#: js/block-verbose.js:4588 +#: js/block.js:1573 +#: js/block.js:4483 +#: js/block.js:4501 +#: js/block.js:4512 +#: js/blocks.js:1018 +#: js/blocks.js:3491 +#: js/blocks.js:3492 +#: js/blocks.js:3717 +#: js/blocks.js:4076 +#: js/blocks.js:4269 +#: js/blocks.js:5432 +#: js/blocks.js:6563 +#: js/macros.js:170 +#: js/macros.js:266 +#: js/macros.js:267 +#: js/macros.js:276 +#: js/macros.js:828 +#: js/palette.js:527 +#: js/palette.js:536 +#: js/palette.js:545 +#: js/palette.js:554 +#: js/palette.js:1129 +#: js/palette.js:1140 +#: js/palette.js:1151 +#: js/palette.js:1162 +#: js/palette.js:1181 +#: js/blocks/ActionBlocks.js:254 +#: js/blocks/ActionBlocks.js:307 +#: js/blocks/ActionBlocks.js:617 +#: js/blocks/ActionBlocks.js:716 +#: js/blocks/ActionBlocks.js:961 +#: js/blocks/ActionBlocks.js:1049 +#: js/blocks/ActionBlocks.js:1322 +#: js/blocks/ActionBlocks.js:1325 +#: js/blocks/ActionBlocks.js:1337 +#: js/blocks/ActionBlocks.js:1404 +#: js/blocks/MeterBlocks.js:715 +#: js/blocks/MeterBlocks.js:768 +#: js/blocks/MeterBlocks.js:831 +#: js/blocks/MeterBlocks.js:892 +#: js/widgets/musickeyboard.js:2986 +#: js/widgets/phrasemaker.js:4913 +#: js/widgets/rhythmruler.js:2319 +#: js/widgets/rhythmruler.js:2326 +#: js/widgets/rhythmruler.js:2511 +#: js/widgets/rhythmruler.js:2518 +msgid "action" +msgstr "pakdha' t'ojláb" -#: js/piemenus.js:3017 -#: js/piemenus.js:3092 -#: js/musicutils.js:663 -#.TRANS: modal scale for music -msgid "aeolian" +#: js/rubrics.js:531 +#: js/turtledefs.js:136 +#: js/turtledefs.js:238 +msgid "sensors" msgstr "" -#: js/piemenus.js:3407 -msgid "Duplicate" +#: js/rubrics.js:532 +#: js/turtledefs.js:135 +#: js/turtledefs.js:237 +#: js/blocks/MediaBlocks.js:930 +msgid "media" msgstr "" -#: js/piemenus.js:3408 -#: js/turtledefs.js:534 -msgid "Extract" +#: js/rubrics.js:533 +msgid "mice" msgstr "" -#: js/piemenus.js:3409 -msgid "Move to trash" +#: js/toolbar.js:48 +#: js/toolbar.js:109 +msgid "About Music Blocks" msgstr "" -#: js/piemenus.js:3410 -#: js/timbre.js:968 -#: js/StringHelper.js:69 -msgid "Close" +#: js/toolbar.js:49 +#: js/toolbar.js:110 +#: js/toolbar.js:175 +#: js/toolbar.js:231 +#: js/turtledefs.js:445 +#: js/turtledefs.js:482 +#: js/activity.js:2660 +#: js/activity.js:2671 +#: js/activity.js:2902 +#: js/widgets/modewidget.js:77 +#: js/widgets/meterwidget.js:185 +#: js/widgets/pitchdrummatrix.js:147 +#: js/widgets/pitchdrummatrix.js:687 +#: js/widgets/pitchdrummatrix.js:689 +#: js/widgets/pitchdrummatrix.js:741 +#: js/widgets/pitchdrummatrix.js:743 +#: js/widgets/pitchdrummatrix.js:758 +#: js/widgets/pitchdrummatrix.js:760 +#: js/widgets/pitchdrummatrix.js:789 +#: js/widgets/pitchdrummatrix.js:791 +#: js/widgets/pitchstaircase.js:121 +#: js/widgets/temperament.js:610 +#: js/widgets/temperament.js:613 +#: js/widgets/temperament.js:673 +#: js/widgets/temperament.js:675 +#: js/widgets/temperament.js:2017 +#: js/widgets/temperament.js:2019 +#: js/widgets/tempo.js:84 +#: js/widgets/tempo.js:86 +#: js/widgets/timbre.js:432 +#: js/widgets/timbre.js:434 +#: js/widgets/timbre.js:465 +#: js/widgets/timbre.js:467 +#: js/widgets/timbre.js:746 +#: js/widgets/aiwidget.js:647 +#: js/widgets/aiwidget.js:654 +#: js/widgets/aiwidget.js:656 +#: js/widgets/arpeggio.js:90 +#: js/widgets/arpeggio.js:547 +#: js/widgets/arpeggio.js:549 +#: js/widgets/arpeggio.js:644 +#: js/widgets/arpeggio.js:646 +#: js/widgets/musickeyboard.js:676 +#: js/widgets/musickeyboard.js:872 +#: js/widgets/musickeyboard.js:874 +#: js/widgets/musickeyboard.js:953 +#: js/widgets/musickeyboard.js:955 +#: js/widgets/phrasemaker.js:513 +#: js/widgets/phrasemaker.js:523 +#: js/widgets/phrasemaker.js:525 +#: js/widgets/phrasemaker.js:4304 +#: js/widgets/phrasemaker.js:4528 +#: js/widgets/phrasemaker.js:4533 +#: js/widgets/phrasemaker.js:4535 +#: js/widgets/phrasemaker.js:4650 +#: js/widgets/rhythmruler.js:637 +#: js/widgets/rhythmruler.js:639 +#: js/widgets/rhythmruler.js:653 +#: js/widgets/rhythmruler.js:655 +#: js/widgets/sampler.js:162 +#: js/widgets/sampler.js:164 +#: js/widgets/sampler.js:363 +msgid "Play" msgstr "" -#: js/piemenus.js:3416 -msgid "Save stack" +#: js/toolbar.js:50 +#: js/toolbar.js:111 +#: js/toolbar.js:176 +#: js/toolbar.js:232 +#: js/turtledefs.js:451 +#: js/turtledefs.js:488 +#: js/activity.js:2679 +#: js/widgets/modewidget.js:99 +#: js/widgets/modewidget.js:101 +#: js/widgets/meterwidget.js:206 +#: js/widgets/meterwidget.js:208 +#: js/widgets/pitchdrummatrix.js:674 +#: js/widgets/pitchdrummatrix.js:676 +#: js/widgets/temperament.js:2002 +#: js/widgets/temperament.js:2004 +#: js/widgets/arpeggio.js:534 +#: js/widgets/arpeggio.js:536 +#: js/widgets/phrasemaker.js:534 +#: js/widgets/phrasemaker.js:536 +msgid "Stop" +msgstr "Kuba'" + +#: js/toolbar.js:51 +#: js/toolbar.js:112 +#: js/toolbar.js:177 +#: js/toolbar.js:233 +#: js/turtledefs.js:498 +msgid "Record" msgstr "" -#: js/piemenus.js:3420 -#: js/toolbar.js:60 -#: js/toolbar.js:120 -#: js/toolbar.js:185 +#: js/toolbar.js:52 +#: js/toolbar.js:53 +msgid "Full screen" +msgstr "" + +#: js/toolbar.js:54 +#: js/toolbar.js:115 +#: js/toolbar.js:180 +#: js/toolbar.js:236 +#: js/turtledefs.js:504 +msgid "Toggle Fullscreen" +msgstr "" + +#: js/toolbar.js:55 +#: js/toolbar.js:116 +#: js/toolbar.js:181 +#: js/toolbar.js:237 +#: js/turtledefs.js:510 +#: planet/js/StringHelper.js:33 +msgid "New project" +msgstr "" + +#: js/toolbar.js:56 +#: js/toolbar.js:117 +#: js/toolbar.js:182 +#: js/toolbar.js:238 +#: js/turtledefs.js:516 +msgid "Load project from file" +msgstr "" + +#: js/toolbar.js:57 +#: js/toolbar.js:118 +#: js/toolbar.js:119 +#: js/toolbar.js:183 +#: js/toolbar.js:239 +#: js/turtledefs.js:541 +#: js/turtledefs.js:550 +#: js/turtledefs.js:571 +msgid "Save project" +msgstr "" + +#: js/toolbar.js:58 +#: js/toolbar.js:77 +#: js/toolbar.js:79 +#: js/toolbar.js:138 +#: js/toolbar.js:147 +#: js/toolbar.js:149 +#: js/toolbar.js:184 +#: js/toolbar.js:202 +#: js/toolbar.js:204 #: js/toolbar.js:240 +#: js/toolbar.js:258 +#: js/toolbar.js:260 +msgid "Save project as HTML" +msgstr "" + +#: js/toolbar.js:59 +#: js/toolbar.js:120 +#: js/toolbar.js:185 +#: js/toolbar.js:241 +msgid "Find and share projects" +msgstr "" + +#: js/toolbar.js:60 +#: js/toolbar.js:121 +#: js/toolbar.js:186 +#: js/toolbar.js:242 +msgid "Offline. Sharing is unavailable" +msgstr "" + +#: js/toolbar.js:61 +#: js/toolbar.js:122 +#: js/toolbar.js:187 +#: js/toolbar.js:243 +msgid "Auxiliary menu" +msgstr "" + +#: js/toolbar.js:62 +#: js/toolbar.js:123 +#: js/toolbar.js:188 +#: js/toolbar.js:244 #: js/turtledefs.js:752 +#: js/piemenus.js:3423 msgid "Help" msgstr "Tolmixtaláb" -#: js/piemenus.js:3762 -msgid "You have chosen key " +#: js/toolbar.js:63 +#: js/toolbar.js:124 +#: js/toolbar.js:189 +#: js/toolbar.js:245 +msgid "Run slowly" +msgstr "" + +#: js/toolbar.js:64 +#: js/toolbar.js:125 +#: js/toolbar.js:190 +#: js/toolbar.js:246 +#: js/turtledefs.js:682 +msgid "Run step by step" +msgstr "" + +#: js/toolbar.js:65 +#: js/toolbar.js:126 +#: js/toolbar.js:191 +#: js/toolbar.js:247 +#: js/turtledefs.js:689 +msgid "Display statistics" +msgstr "" + +#: js/toolbar.js:66 +#: js/toolbar.js:127 +#: js/toolbar.js:192 +#: js/toolbar.js:248 +msgid "Load plugin" +msgstr "" + +#: js/toolbar.js:67 +#: js/toolbar.js:128 +#: js/toolbar.js:193 +#: js/toolbar.js:249 +#: js/turtledefs.js:696 +msgid "Delete plugin" +msgstr "" + +#: js/toolbar.js:68 +#: js/toolbar.js:129 +#: js/toolbar.js:194 +#: js/toolbar.js:250 +msgid "Enable horizontal scrolling" +msgstr "" + +#: js/toolbar.js:69 +#: js/toolbar.js:130 +#: js/toolbar.js:195 +#: js/toolbar.js:251 +msgid "Disable horizontal scrolling" +msgstr "" + +#: js/toolbar.js:70 +#: js/toolbar.js:131 +#: js/toolbar.js:196 +#: js/toolbar.js:252 +#: planet/js/LocalCard.js:54 +#: planet/js/StringHelper.js:71 +msgid "Merge with current project" +msgstr "" + +#: js/toolbar.js:71 +#: js/toolbar.js:132 +msgid "Set Pitch Preview" +msgstr "" + +#: js/toolbar.js:72 +#: js/toolbar.js:133 +#: js/toolbar.js:197 +#: js/toolbar.js:253 +msgid "JavaScript Editor" +msgstr "" + +#: js/toolbar.js:73 +#: js/toolbar.js:134 +#: js/toolbar.js:198 +#: js/toolbar.js:254 +#: js/turtledefs.js:724 +msgid "Restore" +msgstr "" + +#: js/toolbar.js:74 +#: js/toolbar.js:135 +#: js/toolbar.js:199 +#: js/toolbar.js:255 +msgid "Switch to beginner mode" +msgstr "" + +#: js/toolbar.js:75 +#: js/toolbar.js:136 +#: js/toolbar.js:200 +#: js/toolbar.js:256 +msgid "Switch to advanced mode" +msgstr "" + +#: js/toolbar.js:76 +#: js/toolbar.js:137 +#: js/toolbar.js:146 +#: js/toolbar.js:201 +#: js/toolbar.js:257 +#: js/turtledefs.js:738 +msgid "Select language" +msgstr "" + +#: js/toolbar.js:78 +#: js/toolbar.js:81 +#: js/toolbar.js:140 +#: js/turtledefs.js:579 +msgid "Save mouse artwork as PNG" +msgstr "" + +#: js/toolbar.js:80 +#: js/toolbar.js:139 +#: js/turtledefs.js:575 +msgid "Save mouse artwork as SVG" +msgstr "" + +#: js/toolbar.js:82 +#: js/toolbar.js:141 +#: js/turtledefs.js:583 +msgid "Save music as WAV" +msgstr "" + +#: js/toolbar.js:83 +#: js/toolbar.js:142 +#: js/turtledefs.js:587 +msgid "Save sheet music as ABC" +msgstr "" + +#: js/toolbar.js:84 +#: js/toolbar.js:143 +#: js/turtledefs.js:591 +msgid "Save sheet music as Lilypond" +msgstr "" + +#: js/toolbar.js:85 +msgid "Save sheet music as MusicXML" +msgstr "" + +#: js/toolbar.js:86 +#: js/toolbar.js:144 +#: js/toolbar.js:152 +#: js/toolbar.js:207 +#: js/toolbar.js:263 +#: js/turtledefs.js:562 +#: js/turtledefs.js:595 +msgid "Save block artwork as SVG" +msgstr "" + +#: js/toolbar.js:87 +#: js/toolbar.js:145 +#: js/toolbar.js:153 +#: js/toolbar.js:208 +#: js/toolbar.js:264 +#: js/turtles.js:911 +msgid "Confirm" +msgstr "" + +#: js/toolbar.js:88 +#: js/toolbar.js:154 +#: js/toolbar.js:209 +#: js/toolbar.js:265 +msgid "English (United States)" +msgstr "" + +#: js/toolbar.js:89 +#: js/toolbar.js:155 +#: js/toolbar.js:210 +#: js/toolbar.js:266 +msgid "English (United Kingdom)" +msgstr "" + +#: js/toolbar.js:90 +#: js/toolbar.js:156 +#: js/toolbar.js:211 +#: js/toolbar.js:267 +msgid "日本語" +msgstr "" + +#: js/toolbar.js:91 +msgid "한국어" +msgstr "" + +#: js/toolbar.js:92 +#: js/toolbar.js:158 +#: js/toolbar.js:213 +#: js/toolbar.js:269 +msgid "español" +msgstr "" + +#: js/toolbar.js:93 +#: js/toolbar.js:159 +#: js/toolbar.js:214 +#: js/toolbar.js:270 +msgid "português" +msgstr "" + +#: js/toolbar.js:94 +#: js/toolbar.js:160 +#: js/toolbar.js:215 +#: js/toolbar.js:271 +msgid "にほんご" +msgstr "" + +#: js/toolbar.js:95 +#: js/toolbar.js:161 +#: js/toolbar.js:216 +#: js/toolbar.js:272 +msgid "中文" +msgstr "" + +#: js/toolbar.js:96 +#: js/toolbar.js:162 +#: js/toolbar.js:217 +#: js/toolbar.js:273 +msgid "ภาษาไทย" +msgstr "" + +#: js/toolbar.js:97 +#: js/toolbar.js:163 +#: js/toolbar.js:218 +#: js/toolbar.js:274 +msgid "aymara" +msgstr "" + +#: js/toolbar.js:98 +#: js/toolbar.js:164 +#: js/toolbar.js:219 +#: js/toolbar.js:275 +msgid "quechua" +msgstr "" + +#: js/toolbar.js:99 +#: js/toolbar.js:165 +#: js/toolbar.js:220 +#: js/toolbar.js:276 +msgid "guarani" +msgstr "" + +#: js/toolbar.js:100 +#: js/toolbar.js:166 +#: js/toolbar.js:221 +#: js/toolbar.js:277 +msgid "हिंदी" +msgstr "" + +#: js/toolbar.js:101 +#: js/toolbar.js:168 +#: js/toolbar.js:222 +#: js/toolbar.js:279 +msgid "igbo" +msgstr "" + +#: js/toolbar.js:102 +#: js/toolbar.js:169 +#: js/toolbar.js:223 +#: js/toolbar.js:280 +msgid "عربى" +msgstr "" + +#: js/toolbar.js:103 +#: js/toolbar.js:167 +#: js/toolbar.js:224 +#: js/toolbar.js:278 +msgid "తెలుగు" +msgstr "" + +#: js/toolbar.js:104 +#: js/toolbar.js:170 +#: js/toolbar.js:225 +#: js/toolbar.js:281 +msgid "עִברִית" +msgstr "" + +#: js/toolbar.js:113 +#: js/toolbar.js:114 +#: js/toolbar.js:178 +#: js/toolbar.js:179 +#: js/toolbar.js:234 +#: js/toolbar.js:235 +msgid "Full Screen" +msgstr "" + +#: js/toolbar.js:148 +#: js/toolbar.js:151 +#: js/toolbar.js:203 +#: js/toolbar.js:206 +#: js/toolbar.js:259 +#: js/toolbar.js:262 +#: js/turtledefs.js:558 +msgid "Save turtle artwork as PNG" +msgstr "" + +#: js/toolbar.js:150 +#: js/toolbar.js:205 +#: js/toolbar.js:261 +#: js/turtledefs.js:554 +msgid "Save turtle artwork as SVG" +msgstr "" + +#: js/toolbar.js:157 +#: js/toolbar.js:212 +#: js/toolbar.js:268 +msgid "한국인" +msgstr "" + +#: js/toolbar.js:174 +#: js/toolbar.js:230 +msgid "About Turtle Blocks" +msgstr "" + +#: js/toolbar.js:446 +#: js/toolbar.js:457 +#: js/toolbar.js:497 +msgid "Turtle Wrap Off" +msgstr "" + +#: js/toolbar.js:466 +#: js/toolbar.js:506 +msgid "Turtle Wrap On" +msgstr "" + +#: js/turtle-painter.js:1192 +#: js/turtle-painter.js:1193 +#: js/turtles.js:118 +#: js/block-verbose.js:1623 +#: js/block.js:1587 +#: js/lilypond.js:749 +#: js/lilypond.js:913 +#: js/lilypond.js:951 +#: js/logo.js:1184 +#: js/blocks/ActionBlocks.js:1223 +#: js/blocks/ProgramBlocks.js:1267 +msgid "start" +msgstr "tujuw" + +#: js/turtledefs.js:40 +#.TRANS: put the URL to the guide here, e.g., https://github.com/sugarlabs/turtleblocksjs/tree/master/guide/README.md +msgid "guide url" +msgstr "" + +#: js/turtledefs.js:85 +#: js/turtledefs.js:437 +msgid "Turtle Blocks is a Logo-inspired turtle that draws colorful pictures with snap-together visual-programming blocks." +msgstr "" + +#: js/turtledefs.js:118 +#: js/turtledefs.js:220 +msgid "search" +msgstr "" + +#: js/turtledefs.js:120 +#: js/turtledefs.js:222 +#: js/blocks/MeterBlocks.js:1343 +#: js/blocks/WidgetBlocks.js:522 +#.TRANS: musical meter (time signature), e.g., 4:4 +msgid "meter" +msgstr "" + +#: js/turtledefs.js:122 +#: js/turtledefs.js:224 +msgid "intervals" +msgstr "" + +#: js/turtledefs.js:124 +#: js/turtledefs.js:226 +msgid "ornament" +msgstr "" + +#: js/turtledefs.js:125 +#: js/turtledefs.js:227 +#: js/blocks/VolumeBlocks.js:362 +#: js/blocks/VolumeBlocks.js:502 +#: js/blocks/VolumeBlocks.js:545 +msgid "volume" +msgstr "" + +#: js/turtledefs.js:126 +#: js/turtledefs.js:228 +#: js/block-verbose.js:1700 +#: js/block-verbose.js:2626 +#: js/block.js:1664 +#: js/block.js:2554 +#: js/lilypond.js:732 +#: js/lilypond.js:897 +#: js/lilypond.js:941 +#: js/palette.js:577 +#: js/blocks/RhythmBlocks.js:766 +#: js/blocks/DrumBlocks.js:477 +#: js/blocks/VolumeBlocks.js:502 +#: js/widgets/phrasemaker.js:1038 +msgid "drum" +msgstr "" + +#: js/turtledefs.js:129 +#: js/turtledefs.js:231 +msgid "boxes" +msgstr "" + +#: js/turtledefs.js:130 +#: js/turtledefs.js:232 +msgid "widgets" +msgstr "" + +#: js/turtledefs.js:131 +#: js/turtledefs.js:233 +#: js/widgets/phrasemaker.js:1039 +msgid "graphics" +msgstr "" + +#: js/turtledefs.js:134 +#: js/turtledefs.js:236 +msgid "boolean" +msgstr "" + +#: js/turtledefs.js:137 +#: js/turtledefs.js:239 +#: js/blocks/HeapBlocks.js:59 +#: js/widgets/status.js:147 +msgid "heap" +msgstr "" + +#: js/turtledefs.js:138 +#: js/turtledefs.js:240 +#: js/blocks/DictBlocks.js:142 +#: js/blocks/ProgramBlocks.js:495 +msgid "dictionary" +msgstr "" + +#: js/turtledefs.js:139 +#: js/turtledefs.js:241 +msgid "ensemble" +msgstr "" + +#: js/turtledefs.js:140 +#: js/turtledefs.js:242 +msgid "extras" msgstr "" -#: js/piemenus.js:3766 -msgid " for your pitch preview." +#: js/turtledefs.js:142 +#: js/turtledefs.js:244 +#.TRANS: program as in computer program +#.TRANS: program as in computer program +msgid "program" msgstr "" -#: js/palette.js:571 -msgid "grid" +#: js/turtledefs.js:143 +#: js/turtledefs.js:245 +msgid "my blocks" msgstr "" -#: js/palette.js:577 -#: js/block.js:1540 -#: js/block.js:2343 -#: js/turtledefs.js:126 -#: js/turtledefs.js:228 -#: js/lilypond.js:740 -#: js/lilypond.js:905 -#: js/lilypond.js:949 -#: js/DrumBlocks.js:486 -#: js/RhythmBlocks.js:766 -#: js/VolumeBlocks.js:502 -#: js/phrasemaker.js:823 -msgid "drum" +#: js/turtledefs.js:185 +#: js/turtledefs.js:281 +msgid "artwork" msgstr "" -#: js/palette.js:580 -msgid "effect" +#: js/turtledefs.js:185 +#: js/turtledefs.js:281 +msgid "logic" msgstr "" -#: js/palette.js:586 -msgid "sargam" +#: js/turtledefs.js:185 +#: js/turtledefs.js:281 +msgid "music" msgstr "" -#: js/palette.js:589 -#: js/activity.js:1833 -#: js/RhythmBlocks.js:923 -#: js/PitchBlocks.js:442 -#: js/PitchBlocks.js:1748 -#.TRANS: a numeric mapping of the notes in an octave based on the musical mode -msgid "scale degree" +#: js/turtledefs.js:187 +#: js/turtledefs.js:463 +msgid "Music Blocks is a collection of tools for exploring fundamental musical concepts in a fun way." msgstr "" -#: js/palette.js:592 -#: js/activity.js:1860 -msgid "mode name" +#: js/turtledefs.js:436 +msgid "Welcome to Turtle Blocks" msgstr "" -#: js/palette.js:595 -#: js/activity.js:1839 -msgid "invert mode" +#: js/turtledefs.js:438 +#: js/turtledefs.js:465 +#: js/turtledefs.js:774 +#: js/turtledefs.js:805 +msgid "The current version is" msgstr "" -#: js/palette.js:598 -#: js/activity.js:1836 -msgid "voice name" +#: js/turtledefs.js:446 +#: js/turtledefs.js:483 +msgid "Click the run button to run the project in fast mode." msgstr "" -#: js/palette.js:601 -#: js/PitchBlocks.js:1181 -msgid "custom pitch" +#: js/turtledefs.js:452 +msgid "Stop the turtle." msgstr "" -#: js/palette.js:605 -#: js/block.js:1456 -#: js/block.js:1575 -#: js/WidgetBlocks.js:218 -#: js/IntervalsBlocks.js:63 -msgid "temperament" +#: js/turtledefs.js:454 +#: js/turtledefs.js:491 +msgid "You can also type Alt-S to stop." msgstr "" -#: js/palette.js:609 -msgid "accidental" +#: js/turtledefs.js:462 +#: js/widgets/help.js:333 +msgid "Welcome to Music Blocks" msgstr "" -#: js/palette.js:615 -#: js/activity.js:1866 -msgid "interval name" +#: js/turtledefs.js:472 +#: js/widgets/help.js:334 +msgid "Meet Mr. Mouse!" msgstr "" -#: js/palette.js:633 -#: js/PitchBlocks.js:405 -msgid "pitch converter" +#: js/turtledefs.js:473 +msgid "Mr Mouse is our Music Blocks conductor." msgstr "" -#: js/rubrics.js:522 -#: js/turtledefs.js:119 -#: js/turtledefs.js:221 -#: js/RhythmBlockPaletteBlocks.js:52 -#: js/RhythmBlockPaletteBlocks.js:233 -#: js/ProgramBlocks.js:745 -#: js/rhythmruler.js:1670 -#: js/rhythmruler.js:1677 -#: js/rhythmruler.js:1745 -#: js/rhythmruler.js:1752 -#: js/rhythmruler.js:1830 -#.TRANS: an arrangement of notes based on duration -msgid "rhythm" +#: js/turtledefs.js:475 +msgid "Mr Mouse encourages you to explore Music Blocks." msgstr "" -#: js/rubrics.js:523 -#: js/block.js:2339 -#: js/turtledefs.js:121 -#: js/turtledefs.js:223 -#: js/IntervalsBlocks.js:63 -#: js/PitchBlocks.js:1801 -#: js/PitchBlocks.js:1814 -#: js/SensorsBlocks.js:178 -#: js/phrasemaker.js:821 -#: js/musickeyboard.js:1653 -#.TRANS: pitch number -#.TRANS: we specify pitch in terms of a name and an octave. The name can be CDEFGAB or Do Re Mi Fa Sol La Ti. Octave is a number between 1 and 8. -msgid "pitch" +#: js/turtledefs.js:477 +msgid "Let us start our tour!" msgstr "" -#: js/rubrics.js:524 -#: js/turtledefs.js:123 -#: js/turtledefs.js:225 -msgid "tone" +#: js/turtledefs.js:489 +msgid "Stop the music (and the mice)." msgstr "" -#: js/rubrics.js:525 -#: js/lilypond.js:613 -#: js/lilypond.js:912 -#: js/lilypond.js:918 -#: js/lilypond.js:956 -msgid "mouse" +#: js/turtledefs.js:499 +msgid "Record your project as video." msgstr "" -#: js/rubrics.js:526 -#: js/turtledefs.js:132 -#: js/turtledefs.js:234 -#: js/phrasemaker.js:825 -msgid "pen" +#: js/turtledefs.js:505 +msgid "Toggle Fullscreen mode." msgstr "" -#: js/rubrics.js:527 -#: js/turtledefs.js:133 -#: js/turtledefs.js:235 -#: js/NumberBlocks.js:905 -#: js/PitchBlocks.js:1679 -#: js/PitchBlocks.js:1720 -msgid "number" -msgstr "ajixtaláb" +#: js/turtledefs.js:511 +msgid "Initialize a new project." +msgstr "" -#: js/rubrics.js:528 -#: js/turtledefs.js:127 -#: js/turtledefs.js:229 -msgid "flow" +#: js/turtledefs.js:517 +msgid "You can also load projects from the file system." msgstr "" -#: js/rubrics.js:530 -#: js/turtledefs.js:136 -#: js/turtledefs.js:238 -msgid "sensors" +#: js/turtledefs.js:522 +#: planet/js/StringHelper.js:46 +msgid "Delete" msgstr "" -#: js/rubrics.js:531 -#: js/turtledefs.js:135 -#: js/turtledefs.js:237 -#: js/MediaBlocks.js:930 -msgid "media" +#: js/turtledefs.js:523 +msgid "To delete a block, just right-click on it, then you will be able to see the delete option" msgstr "" -#: js/rubrics.js:532 -msgid "mice" +#: js/turtledefs.js:528 +#: js/activity.js:2649 +#: planet/js/LocalCard.js:31 +msgid "Copy" +msgstr "K'ot'biy" + +#: js/turtledefs.js:529 +msgid "To copy a block, just right-click on it, then you will be able to see the copy option" msgstr "" -#: js/macros.js:711 -#: js/musicutils.js:783 -#: js/synthutils.js:181 -#.TRANS: animal sound effect -msgid "duck" +#: js/turtledefs.js:534 +#: js/piemenus.js:3411 +msgid "Extract" msgstr "" -#: js/toolbar.js:46 -#: js/toolbar.js:107 -msgid "About Music Blocks" +#: js/turtledefs.js:535 +msgid "To extract a block, just right-click on it, then you will be able to see the extract option" msgstr "" -#: js/toolbar.js:47 -#: js/toolbar.js:108 -#: js/toolbar.js:172 -#: js/toolbar.js:228 -#: js/turtledefs.js:445 -#: js/turtledefs.js:482 -#: js/activity.js:2281 -#: js/activity.js:2289 -#: js/activity.js:2520 -#: js/modewidget.js:77 -#: js/pitchstaircase.js:121 -#: js/phrasemaker.js:302 -#: js/phrasemaker.js:312 -#: js/phrasemaker.js:314 -#: js/phrasemaker.js:3901 -#: js/phrasemaker.js:4061 -#: js/phrasemaker.js:4066 -#: js/phrasemaker.js:4068 -#: js/phrasemaker.js:4183 -#: js/pitchdrummatrix.js:81 -#: js/pitchdrummatrix.js:574 -#: js/pitchdrummatrix.js:576 -#: js/pitchdrummatrix.js:628 -#: js/pitchdrummatrix.js:630 -#: js/pitchdrummatrix.js:645 -#: js/pitchdrummatrix.js:647 -#: js/pitchdrummatrix.js:674 -#: js/pitchdrummatrix.js:676 -#: js/temperament.js:477 -#: js/temperament.js:480 -#: js/temperament.js:540 -#: js/temperament.js:542 -#: js/temperament.js:1835 -#: js/temperament.js:1837 -#: js/temperament.js:1986 -#: js/temperament.js:1988 -#: js/musickeyboard.js:522 -#: js/musickeyboard.js:682 -#: js/musickeyboard.js:684 -#: js/musickeyboard.js:756 -#: js/musickeyboard.js:758 -#: js/rhythmruler.js:298 -#: js/rhythmruler.js:300 -#: js/rhythmruler.js:314 -#: js/rhythmruler.js:316 -#: js/sampler.js:96 -#: js/sampler.js:98 -#: js/sampler.js:229 -#: js/sampler.js:235 -#: js/sampler.js:237 -#: js/tempo.js:84 -#: js/tempo.js:86 -#: js/timbre.js:432 -#: js/timbre.js:434 -#: js/timbre.js:465 -#: js/timbre.js:467 -#: js/timbre.js:746 -#: js/meterwidget.js:80 -#: js/arpeggio.js:90 -#: js/arpeggio.js:547 -#: js/arpeggio.js:549 -#: js/arpeggio.js:644 -#: js/arpeggio.js:646 -msgid "Play" +#: js/turtledefs.js:542 +#: js/turtledefs.js:552 +#: js/turtledefs.js:573 +msgid "Save your project to a file." msgstr "" -#: js/toolbar.js:48 -#: js/toolbar.js:109 -#: js/toolbar.js:173 -#: js/toolbar.js:229 -#: js/turtledefs.js:451 -#: js/turtledefs.js:488 -#: js/activity.js:2297 -#: js/modewidget.js:99 -#: js/modewidget.js:101 -#: js/phrasemaker.js:323 -#: js/phrasemaker.js:325 -#: js/pitchdrummatrix.js:561 -#: js/pitchdrummatrix.js:563 -#: js/temperament.js:1820 -#: js/temperament.js:1822 -#: js/meterwidget.js:101 -#: js/meterwidget.js:103 -#: js/arpeggio.js:534 -#: js/arpeggio.js:536 -msgid "Stop" -msgstr "Kuba'" +#: js/turtledefs.js:549 +#: js/turtledefs.js:570 +msgid "save" +msgstr "" -#: js/toolbar.js:49 -#: js/toolbar.js:110 -#: js/toolbar.js:174 -#: js/toolbar.js:230 -#: js/turtledefs.js:498 -msgid "Record" +#: js/turtledefs.js:556 +#: js/turtledefs.js:577 +msgid "Save graphics from your project to as SVG." msgstr "" -#: js/toolbar.js:50 -#: js/toolbar.js:51 -msgid "Full screen" +#: js/turtledefs.js:560 +#: js/turtledefs.js:581 +msgid "Save graphics from your project as PNG." msgstr "" -#: js/toolbar.js:52 -#: js/toolbar.js:112 -#: js/toolbar.js:177 -#: js/toolbar.js:232 -#: js/turtledefs.js:504 -msgid "Toggle Fullscreen" +#: js/turtledefs.js:564 +#: js/turtledefs.js:597 +msgid "Save block artwork as an SVG file." msgstr "" -#: js/toolbar.js:53 -#: js/toolbar.js:113 -#: js/toolbar.js:178 -#: js/toolbar.js:233 -#: js/turtledefs.js:510 -#: js/StringHelper.js:33 -msgid "New project" +#: js/turtledefs.js:585 +msgid "Save audio from your project as WAV." msgstr "" -#: js/toolbar.js:54 -#: js/toolbar.js:114 -#: js/toolbar.js:179 -#: js/toolbar.js:234 -#: js/turtledefs.js:516 -msgid "Load project from file" +#: js/turtledefs.js:589 +msgid "Save your project to as an ABC file." msgstr "" -#: js/toolbar.js:55 -#: js/toolbar.js:115 -#: js/toolbar.js:116 -#: js/toolbar.js:180 -#: js/toolbar.js:235 -#: js/turtledefs.js:541 -#: js/turtledefs.js:550 -#: js/turtledefs.js:571 -msgid "Save project" +#: js/turtledefs.js:593 +msgid "Save your project to as a Lilypond file." msgstr "" -#: js/toolbar.js:56 -#: js/toolbar.js:75 -#: js/toolbar.js:77 -#: js/toolbar.js:135 -#: js/toolbar.js:144 -#: js/toolbar.js:146 -#: js/toolbar.js:181 -#: js/toolbar.js:199 -#: js/toolbar.js:201 -#: js/toolbar.js:236 -#: js/toolbar.js:254 -#: js/toolbar.js:256 -msgid "Save project as HTML" +#: js/turtledefs.js:604 +msgid "Load samples from server" +msgstr "" + +#: js/turtledefs.js:605 +msgid "This button opens a viewer for loading example projects." +msgstr "" + +#: js/turtledefs.js:611 +msgid "Palette buttons" +msgstr "" + +#: js/turtledefs.js:612 +msgid "This toolbar contains the palette buttons including Rhythm Pitch Tone Action and more." +msgstr "" + +#: js/turtledefs.js:614 +msgid "Click to show the palettes of blocks and drag blocks from the palettes onto the canvas to use them." +msgstr "" + +#: js/turtledefs.js:620 +msgid "Cartesian/Polar" msgstr "" -#: js/toolbar.js:57 -#: js/toolbar.js:117 -#: js/toolbar.js:182 -#: js/toolbar.js:237 -msgid "Find and share projects" +#: js/turtledefs.js:621 +msgid "Show or hide a coordinate grid." msgstr "" -#: js/toolbar.js:58 -#: js/toolbar.js:118 -#: js/toolbar.js:183 -#: js/toolbar.js:238 -msgid "Offline. Sharing is unavailable" +#: js/turtledefs.js:626 +#: js/turtles.js:902 +msgid "Clean" +msgstr "T'oka'" + +#: js/turtledefs.js:627 +msgid "Clear the screen and return the mice to their initial positions." msgstr "" -#: js/toolbar.js:59 -#: js/toolbar.js:119 -#: js/toolbar.js:184 -#: js/toolbar.js:239 -msgid "Auxiliary menu" +#: js/turtledefs.js:632 +#: js/turtles.js:955 +msgid "Collapse" msgstr "" -#: js/toolbar.js:61 -#: js/toolbar.js:121 -#: js/toolbar.js:186 -#: js/toolbar.js:241 -msgid "Run slowly" +#: js/turtledefs.js:633 +msgid "Collapse the graphics window." msgstr "" -#: js/toolbar.js:62 -#: js/toolbar.js:122 -#: js/toolbar.js:187 -#: js/toolbar.js:242 -#: js/turtledefs.js:682 -msgid "Run step by step" +#: js/turtledefs.js:638 +#: js/activity.js:5684 +msgid "Home" msgstr "" -#: js/toolbar.js:63 -#: js/toolbar.js:123 -#: js/toolbar.js:188 -#: js/toolbar.js:243 -#: js/turtledefs.js:689 -msgid "Display statistics" +#: js/turtledefs.js:639 +msgid "Return all blocks to the center of the screen." msgstr "" -#: js/toolbar.js:64 -#: js/toolbar.js:124 -#: js/toolbar.js:189 -#: js/toolbar.js:244 -msgid "Load plugin" +#: js/turtledefs.js:644 +msgid "Show/hide blocks" +msgstr "Tejwa'méjdha'/dhibk'oy an kwene' t'ojláb" + +#: js/turtledefs.js:645 +msgid "Hide or show the blocks and the palettes." msgstr "" -#: js/toolbar.js:65 -#: js/toolbar.js:125 -#: js/toolbar.js:190 -#: js/toolbar.js:245 -#: js/turtledefs.js:696 -msgid "Delete plugin" +#: js/turtledefs.js:650 +msgid "Expand/collapse collapsable blocks" msgstr "" -#: js/toolbar.js:66 -#: js/toolbar.js:126 -#: js/toolbar.js:191 -#: js/toolbar.js:246 -msgid "Enable horizontal scrolling" +#: js/turtledefs.js:651 +msgid "Expand or collapse start and action stacks." msgstr "" -#: js/toolbar.js:67 -#: js/toolbar.js:127 -#: js/toolbar.js:192 -#: js/toolbar.js:247 -msgid "Disable horizontal scrolling" +#: js/turtledefs.js:658 +#: js/activity.js:5704 +msgid "Decrease block size" msgstr "" -#: js/toolbar.js:68 -#: js/toolbar.js:128 -#: js/toolbar.js:193 -#: js/toolbar.js:248 -#: js/LocalCard.js:54 -#: js/StringHelper.js:71 -msgid "Merge with current project" +#: js/turtledefs.js:659 +msgid "Decrease the size of the blocks." msgstr "" -#: js/toolbar.js:69 -#: js/toolbar.js:129 -msgid "Set Pitch Preview" +#: js/turtledefs.js:664 +#: js/activity.js:5710 +msgid "Increase block size" msgstr "" -#: js/toolbar.js:70 -#: js/toolbar.js:130 -#: js/toolbar.js:194 -#: js/toolbar.js:249 -msgid "Toggle JavaScript Editor" +#: js/turtledefs.js:665 +msgid "Increase the size of the blocks." msgstr "" -#: js/toolbar.js:71 -#: js/toolbar.js:131 -#: js/toolbar.js:195 -#: js/toolbar.js:250 -#: js/turtledefs.js:724 -msgid "Restore" +#: js/turtledefs.js:670 +msgid "Expand/collapse option toolbar" msgstr "" -#: js/toolbar.js:72 -#: js/toolbar.js:132 -#: js/toolbar.js:196 -#: js/toolbar.js:251 -msgid "Switch to beginner mode" +#: js/turtledefs.js:671 +msgid "Click this button to expand or collapse the auxillary toolbar." msgstr "" -#: js/toolbar.js:73 -#: js/toolbar.js:133 -#: js/toolbar.js:197 -#: js/toolbar.js:252 -msgid "Switch to advanced mode" +#: js/turtledefs.js:676 +msgid "Run slow" msgstr "" -#: js/toolbar.js:74 -#: js/toolbar.js:134 -#: js/toolbar.js:143 -#: js/toolbar.js:198 -#: js/toolbar.js:253 -#: js/turtledefs.js:738 -msgid "Select language" +#: js/turtledefs.js:677 +msgid "Click to run the project in slow mode." msgstr "" -#: js/toolbar.js:76 -#: js/toolbar.js:79 -#: js/toolbar.js:137 -#: js/turtledefs.js:579 -msgid "Save mouse artwork as PNG" +#: js/turtledefs.js:683 +msgid "Click to run the project step by step." msgstr "" -#: js/toolbar.js:78 -#: js/toolbar.js:136 -#: js/turtledefs.js:575 -msgid "Save mouse artwork as SVG" +#: js/turtledefs.js:690 +msgid "Display statistics about your Music project." msgstr "" -#: js/toolbar.js:80 -#: js/toolbar.js:138 -#: js/turtledefs.js:583 -msgid "Save music as WAV" +#: js/turtledefs.js:697 +msgid "Delete a selected plugin." msgstr "" -#: js/toolbar.js:81 -#: js/toolbar.js:139 -#: js/turtledefs.js:587 -msgid "Save sheet music as ABC" +#: js/turtledefs.js:704 +msgid "Enable scrolling" msgstr "" -#: js/toolbar.js:82 -#: js/toolbar.js:140 -#: js/turtledefs.js:591 -msgid "Save sheet music as Lilypond" +#: js/turtledefs.js:705 +msgid "You can scroll the blocks on the canvas." msgstr "" -#: js/toolbar.js:83 -msgid "Save sheet music as MusicXML" +#: js/turtledefs.js:714 +msgid "Wrap Turtle" msgstr "" -#: js/toolbar.js:84 -#: js/toolbar.js:141 -#: js/toolbar.js:149 -#: js/toolbar.js:204 -#: js/toolbar.js:259 -#: js/turtledefs.js:562 -#: js/turtledefs.js:595 -msgid "Save block artwork as SVG" +#: js/turtledefs.js:715 +msgid "Turn Turtle wrapping On or Off." msgstr "" -#: js/toolbar.js:85 -#: js/toolbar.js:142 -#: js/toolbar.js:150 -#: js/toolbar.js:205 -#: js/toolbar.js:260 -msgid "Confirm" +#: js/turtledefs.js:725 +msgid "Restore blocks from the trash." msgstr "" -#: js/toolbar.js:86 -#: js/toolbar.js:151 -#: js/toolbar.js:206 -#: js/toolbar.js:261 -msgid "English (United States)" +#: js/turtledefs.js:732 +msgid "Switch mode" msgstr "" -#: js/toolbar.js:87 -#: js/toolbar.js:152 -#: js/toolbar.js:207 -#: js/toolbar.js:262 -msgid "English (United Kingdom)" +#: js/turtledefs.js:733 +msgid "Switch between beginner and advance modes." msgstr "" -#: js/toolbar.js:88 -#: js/toolbar.js:153 -#: js/toolbar.js:208 -#: js/toolbar.js:263 -msgid "日本語" +#: js/turtledefs.js:739 +msgid "Select your language preference." msgstr "" -#: js/toolbar.js:89 -msgid "한국어" +#: js/turtledefs.js:745 +msgid "Keyboard shortcuts" msgstr "" -#: js/toolbar.js:90 -#: js/toolbar.js:155 -#: js/toolbar.js:210 -#: js/toolbar.js:265 -msgid "español" +#: js/turtledefs.js:746 +msgid "You can type d to create a do block and r to create a re block etc." msgstr "" -#: js/toolbar.js:91 -#: js/toolbar.js:156 -#: js/toolbar.js:211 -#: js/toolbar.js:266 -msgid "português" +#: js/turtledefs.js:753 +msgid "Show these messages." msgstr "" -#: js/toolbar.js:92 -#: js/toolbar.js:157 -#: js/toolbar.js:212 -#: js/toolbar.js:267 -msgid "にほんご" +#: js/turtledefs.js:759 +#: js/turtledefs.js:790 +#: js/widgets/help.js:335 +msgid "Guide" msgstr "" -#: js/toolbar.js:93 -#: js/toolbar.js:158 -#: js/toolbar.js:213 -#: js/toolbar.js:268 -msgid "中文" +#: js/turtledefs.js:760 +msgid "A detailed guide to Turtle Blocks is available." msgstr "" -#: js/toolbar.js:94 -#: js/toolbar.js:159 -#: js/toolbar.js:214 -#: js/toolbar.js:269 -msgid "ภาษาไทย" +#: js/turtledefs.js:764 +msgid "Turtle Blocks Guide" msgstr "" -#: js/toolbar.js:95 -#: js/toolbar.js:160 -#: js/toolbar.js:215 -#: js/toolbar.js:270 -msgid "aymara" +#: js/turtledefs.js:767 +#: js/turtledefs.js:798 +#: js/widgets/help.js:336 +msgid "About" +msgstr "" + +#: js/turtledefs.js:768 +msgid "Turtle Blocks is an open source collection of tools for exploring musical concepts." msgstr "" -#: js/toolbar.js:96 -#: js/toolbar.js:161 -#: js/toolbar.js:216 -#: js/toolbar.js:271 -msgid "quechua" +#: js/turtledefs.js:770 +msgid "A full list of contributors can be found in the Turtle Blocks GitHub repository." msgstr "" -#: js/toolbar.js:97 -#: js/toolbar.js:162 -#: js/toolbar.js:217 -#: js/toolbar.js:272 -msgid "guarani" +#: js/turtledefs.js:772 +msgid "Turtle Blocks is licensed under the AGPL." msgstr "" -#: js/toolbar.js:98 -#: js/toolbar.js:163 -#: js/toolbar.js:218 -#: js/toolbar.js:273 -msgid "हिंदी" +#: js/turtledefs.js:780 +msgid "Turtle Blocks GitHub repository" msgstr "" -#: js/toolbar.js:99 -#: js/toolbar.js:165 -#: js/toolbar.js:219 -#: js/toolbar.js:275 -msgid "igbo" +#: js/turtledefs.js:783 +#: js/turtledefs.js:814 +#: js/widgets/help.js:337 +#: js/widgets/help.js:359 +msgid "Congratulations." msgstr "" -#: js/toolbar.js:100 -#: js/toolbar.js:166 -#: js/toolbar.js:220 -#: js/toolbar.js:276 -msgid "عربى" +#: js/turtledefs.js:784 +msgid "You have finished the tour. Please enjoy Turtle Blocks!" msgstr "" -#: js/toolbar.js:101 -#: js/toolbar.js:164 -#: js/toolbar.js:221 -#: js/toolbar.js:274 -msgid "తెలుగు" +#: js/turtledefs.js:791 +msgid "A detailed guide to Music Blocks is available." msgstr "" -#: js/toolbar.js:102 -#: js/toolbar.js:167 -#: js/toolbar.js:222 -#: js/toolbar.js:277 -msgid "עִברִית" +#: js/turtledefs.js:799 +msgid "Music Blocks is an open source collection of tools for exploring musical concepts." msgstr "" -#: js/toolbar.js:111 -#: js/toolbar.js:175 -#: js/toolbar.js:176 -#: js/toolbar.js:231 -msgid "Full Screen" +#: js/turtledefs.js:801 +msgid "A full list of contributors can be found in the Music Blocks GitHub repository." msgstr "" -#: js/toolbar.js:145 -#: js/toolbar.js:148 -#: js/toolbar.js:200 -#: js/toolbar.js:203 -#: js/toolbar.js:255 -#: js/toolbar.js:258 -#: js/turtledefs.js:558 -msgid "Save turtle artwork as PNG" +#: js/turtledefs.js:803 +msgid "Music Blocks is licensed under the AGPL." msgstr "" -#: js/toolbar.js:147 -#: js/toolbar.js:202 -#: js/toolbar.js:257 -#: js/turtledefs.js:554 -msgid "Save turtle artwork as SVG" +#: js/turtledefs.js:811 +msgid "Music Blocks GitHub repository" msgstr "" -#: js/toolbar.js:154 -#: js/toolbar.js:209 -#: js/toolbar.js:264 -msgid "한국인" +#: js/turtledefs.js:815 +msgid "You have finished the tour. Please enjoy Music Blocks!" msgstr "" -#: js/toolbar.js:171 -#: js/toolbar.js:227 -msgid "About Turtle Blocks" +#: js/turtles.js:882 +msgid "Grid" msgstr "" -#: js/toolbar.js:429 -#: js/toolbar.js:440 -msgid "Turtle Wrap Off" +#: js/turtles.js:1024 +msgid "Expand" msgstr "" -#: js/toolbar.js:442 -msgid "Turtle Wrap On" +#: js/block-verbose.js:1616 +#: js/block-verbose.js:1735 +#: js/block.js:1580 +#: js/block.js:1699 +#: js/palette.js:605 +#: js/blocks/IntervalsBlocks.js:63 +#: js/blocks/WidgetBlocks.js:259 +msgid "temperament" msgstr "" -#: js/block.js:1470 +#: js/block-verbose.js:1630 +#: js/block.js:1594 msgid "matrix" msgstr "" -#: js/block.js:1477 -#: js/WidgetBlocks.js:1226 +#: js/block-verbose.js:1637 +#: js/block.js:1601 +#: js/blocks/WidgetBlocks.js:1509 #: plugins/rodi.rtp:324 msgid "status" msgstr "" -#: js/block.js:1484 +#: js/block-verbose.js:1644 +#: js/block.js:1608 msgid "drum mapper" msgstr "" -#: js/block.js:1491 +#: js/block-verbose.js:1651 +#: js/block.js:1615 msgid "ruler" msgstr "" -#: js/block.js:1498 -#: js/WidgetBlocks.js:327 +#: js/block-verbose.js:1658 +#: js/block.js:1622 +#: js/blocks/WidgetBlocks.js:397 #.TRANS: timbre is the character or quality of a musical sound msgid "timbre" msgstr "" -#: js/block.js:1505 +#: js/block-verbose.js:1665 +#: js/block.js:1629 msgid "stair" msgstr "" -#: js/block.js:1512 -#: js/WidgetBlocks.js:577 +#: js/block-verbose.js:1672 +#: js/block.js:1636 +#: js/blocks/WidgetBlocks.js:707 #.TRANS: the speed at music is should be played. msgid "tempo" msgstr "" -#: js/block.js:1519 -#: js/block.js:1582 -#: js/IntervalsBlocks.js:1268 +#: js/block-verbose.js:1679 +#: js/block-verbose.js:1742 +#: js/block.js:1643 +#: js/block.js:1706 +#: js/blocks/IntervalsBlocks.js:1464 #.TRANS: mode, e.g., Major in C Major msgid "mode" msgstr "" -#: js/block.js:1526 +#: js/block-verbose.js:1686 +#: js/block.js:1650 msgid "slider" msgstr "" -#: js/block.js:1533 -#: js/SensorsBlocks.js:1001 +#: js/block-verbose.js:1693 +#: js/block.js:1657 +#: js/blocks/SensorsBlocks.js:1001 msgid "keyboard" msgstr "ni'imtal dhuche'" -#: js/block.js:1547 -#: js/WidgetBlocks.js:957 -#: js/WidgetBlocks.js:988 +#: js/block-verbose.js:1707 +#: js/block.js:1671 +#: js/blocks/WidgetBlocks.js:1190 +#: js/blocks/WidgetBlocks.js:1228 #.TRANS: widget for subdividing a measure into distinct rhythmic elements msgid "rhythm maker" msgstr "" -#: js/block.js:1554 -#: js/block.js:2182 -#: js/block.js:2236 -#: js/RhythmBlockPaletteBlocks.js:70 -#: js/RhythmBlockPaletteBlocks.js:251 -#: js/RhythmBlockPaletteBlocks.js:484 -#: js/RhythmBlockPaletteBlocks.js:553 -#: js/RhythmBlockPaletteBlocks.js:604 -#: js/RhythmBlockPaletteBlocks.js:874 -#: js/RhythmBlocks.js:33 -#: js/RhythmBlocks.js:356 -#: js/RhythmBlocks.js:766 -#: js/RhythmBlocks.js:806 -#: js/OrnamentBlocks.js:220 -#: js/OrnamentBlocks.js:312 -#: js/MeterBlocks.js:1367 -#: js/DictActions.js:85 -#: js/phrasemaker.js:731 -#: js/phrasemaker.js:2393 -#: js/phrasemaker.js:2436 -#: js/phrasemaker.js:2534 +#: js/block-verbose.js:1714 +#: js/block-verbose.js:2457 +#: js/block-verbose.js:2514 +#: js/block.js:1678 +#: js/block.js:2385 +#: js/block.js:2442 +#: js/blocks/MeterBlocks.js:1367 +#: js/blocks/OrnamentBlocks.js:220 +#: js/blocks/OrnamentBlocks.js:312 +#: js/blocks/RhythmBlocks.js:33 +#: js/blocks/RhythmBlocks.js:356 +#: js/blocks/RhythmBlocks.js:766 +#: js/blocks/RhythmBlocks.js:806 +#: js/blocks/RhythmBlockPaletteBlocks.js:70 +#: js/blocks/RhythmBlockPaletteBlocks.js:252 +#: js/blocks/RhythmBlockPaletteBlocks.js:485 +#: js/blocks/RhythmBlockPaletteBlocks.js:554 +#: js/blocks/RhythmBlockPaletteBlocks.js:605 +#: js/blocks/RhythmBlockPaletteBlocks.js:875 +#: js/turtleactions/DictActions.js:85 +#: js/widgets/phrasemaker.js:942 +#: js/widgets/phrasemaker.js:2656 +#: js/widgets/phrasemaker.js:2699 +#: js/widgets/phrasemaker.js:2810 #.TRANS: the value (e.g., 1/4 note) of the note being played. msgid "note value" msgstr "" -#: js/block.js:1561 -#: js/block.js:2110 -#: js/block.js:2133 -#: js/IntervalsBlocks.js:875 -#: js/OrnamentBlocks.js:312 +#: js/block-verbose.js:1721 +#: js/block-verbose.js:2382 +#: js/block-verbose.js:2405 +#: js/block.js:1685 +#: js/block.js:2310 +#: js/block.js:2333 +#: js/blocks/IntervalsBlocks.js:1071 +#: js/blocks/OrnamentBlocks.js:312 #.TRANS: calculate a relative step between notes based on semi-tones msgid "scalar interval" msgstr "" -#: js/block.js:1568 -#: js/RhythmBlocks.js:148 +#: js/block-verbose.js:1728 +#: js/block.js:1692 +#: js/blocks/RhythmBlocks.js:148 msgid "milliseconds" msgstr "" -#: js/block.js:2180 -#: js/block.js:2184 -#: js/block.js:2234 -#: js/block.js:2345 -#: js/ProgramBlocks.js:1273 -#: js/RhythmBlocks.js:712 -#: js/rhythmruler.js:834 -#: js/rhythmruler.js:961 +#: js/block-verbose.js:2455 +#: js/block-verbose.js:2459 +#: js/block-verbose.js:2512 +#: js/block-verbose.js:2628 +#: js/block.js:2383 +#: js/block.js:2387 +#: js/block.js:2440 +#: js/block.js:2556 +#: js/blocks/RhythmBlocks.js:712 +#: js/blocks/ProgramBlocks.js:1273 +#: js/widgets/rhythmruler.js:1183 +#: js/widgets/rhythmruler.js:1329 msgid "silence" msgstr "" -#: js/block.js:2265 -#: js/block.js:3134 -#: js/block.js:3151 -#: js/activity.js:2336 -#: js/activity.js:2387 -#: js/musicutils.js:2932 -#: js/musicutils.js:4287 +#: js/block-verbose.js:2548 +#: js/block-verbose.js:3492 +#: js/block-verbose.js:3509 +#: js/activity.js:2718 +#: js/activity.js:2769 +#: js/block.js:2476 +#: js/block.js:3416 +#: js/block.js:3433 +#: js/utils/musicutils.js:3780 +#: js/utils/musicutils.js:5273 +#.TRANS: the note names must be separated by single spaces #.TRANS: the note names must be separated by single spaces #.TRANS: the note names must be separated by single spaces msgid "ti la sol fa mi re do" msgstr "" -#: js/block.js:2333 +#: js/block-verbose.js:2616 +#: js/block.js:2544 +#.TRANS: scalar step #.TRANS: scalar step msgid "down" msgstr "" -#: js/block.js:2334 +#: js/block-verbose.js:2617 +#: js/block.js:2545 msgid "up" msgstr "" -#: js/block.js:3477 -#: js/block.js:3490 -#: js/ExtrasBlocks.js:612 +#: js/block-verbose.js:3026 +#: js/block.js:2950 +msgid "Silence block cannot be removed." +msgstr "" + +#: js/block-verbose.js:3824 +#: js/block.js:3748 +#: js/blocks.js:2607 +#: js/blocks.js:3218 +#: js/palette.js:618 +#: js/blocks/BooleanBlocks.js:77 +#: js/blocks/BooleanBlocks.js:167 +#: js/blocks/BooleanBlocks.js:251 +#: js/blocks/BooleanBlocks.js:335 +#: js/blocks/BooleanBlocks.js:433 +#: js/blocks/BooleanBlocks.js:539 +#: js/blocks/BooleanBlocks.js:640 +#: js/blocks/BooleanBlocks.js:741 +#: js/blocks/BooleanBlocks.js:847 +#: js/blocks/BooleanBlocks.js:948 +#: js/blocks/BooleanBlocks.js:1033 +#: js/blocks/SensorsBlocks.js:910 +msgid "true" +msgstr "" + +#: js/block-verbose.js:3824 +#: js/block.js:3748 +#: js/blocks.js:2609 +#: js/blocks.js:3220 +#: js/blocks/BooleanBlocks.js:79 +#: js/blocks/BooleanBlocks.js:169 +#: js/blocks/BooleanBlocks.js:253 +#: js/blocks/BooleanBlocks.js:337 +#: js/blocks/BooleanBlocks.js:435 +#: js/blocks/BooleanBlocks.js:541 +#: js/blocks/BooleanBlocks.js:642 +#: js/blocks/BooleanBlocks.js:743 +#: js/blocks/BooleanBlocks.js:849 +#: js/blocks/BooleanBlocks.js:950 +#: js/blocks/SensorsBlocks.js:912 +msgid "false" +msgstr "" + +#: js/block-verbose.js:3835 +#: js/block-verbose.js:3848 +#: js/block.js:3759 +#: js/block.js:3772 +#: js/blocks/ExtrasBlocks.js:615 msgid "Cartesian" msgstr "Cartesiana" -#: js/block.js:3478 -#: js/block.js:3491 -#: js/ExtrasBlocks.js:616 +#: js/block-verbose.js:3836 +#: js/block-verbose.js:3849 +#: js/block.js:3760 +#: js/block.js:3773 +#: js/blocks/ExtrasBlocks.js:619 msgid "polar" msgstr "" -#: js/block.js:3479 -#: js/block.js:3492 -#: js/ExtrasBlocks.js:620 +#: js/block-verbose.js:3837 +#: js/block-verbose.js:3850 +#: js/block.js:3761 +#: js/block.js:3774 +#: js/blocks/ExtrasBlocks.js:623 msgid "Cartesian+polar" msgstr "" -#: js/block.js:3480 -#: js/block.js:3499 -#: js/ExtrasBlocks.js:649 +#: js/block-verbose.js:3838 +#: js/block-verbose.js:3857 +#: js/block.js:3762 +#: js/block.js:3781 +#: js/blocks/ExtrasBlocks.js:652 msgid "none" msgstr "" -#: js/block.js:3493 -#: js/ExtrasBlocks.js:625 +#: js/block-verbose.js:3851 +#: js/block.js:3775 +#: js/blocks/ExtrasBlocks.js:628 msgid "treble" msgstr "" -#: js/block.js:3494 -#: js/ExtrasBlocks.js:629 +#: js/block-verbose.js:3852 +#: js/block.js:3776 +#: js/blocks/ExtrasBlocks.js:632 msgid "grand staff" msgstr "" -#: js/block.js:3495 -#: js/ExtrasBlocks.js:633 +#: js/block-verbose.js:3853 +#: js/block.js:3777 +#: js/blocks/ExtrasBlocks.js:636 msgid "mezzo-soprano" msgstr "" -#: js/block.js:3496 -#: js/ExtrasBlocks.js:637 +#: js/block-verbose.js:3854 +#: js/block.js:3778 +#: js/blocks/ExtrasBlocks.js:640 msgid "alto" msgstr "" -#: js/block.js:3497 -#: js/ExtrasBlocks.js:641 +#: js/block-verbose.js:3855 +#: js/block.js:3779 +#: js/blocks/ExtrasBlocks.js:644 msgid "tenor" msgstr "" -#: js/block.js:3498 -#: js/ExtrasBlocks.js:645 -#: js/musicutils.js:736 -#: js/synthutils.js:64 +#: js/block-verbose.js:3856 +#: js/block.js:3780 +#: js/utils/musicutils.js:1115 +#: js/utils/synthutils.js:80 +#: js/blocks/ExtrasBlocks.js:648 #.TRANS: musical instrument msgid "bass" msgstr "" -#: js/block.js:4075 -msgid "Not a number" +#: js/block-verbose.js:3901 +#: js/block.js:3825 +#: js/blocks.js:2600 +#: js/blocks.js:3211 +msgid "on2" +msgstr "" + +#: js/block-verbose.js:3903 +#: js/block.js:3827 +#: js/blocks.js:2602 +#: js/blocks.js:3213 +msgid "off" +msgstr "" + +#: js/block-verbose.js:4470 +#: js/block.js:4394 +msgid "Not a number" +msgstr "" + +#: js/block-verbose.js:4477 +#: js/block.js:4401 +msgid "Octave value must be between 1 and 10." +msgstr "" + +#: js/block-verbose.js:4485 +#: js/block.js:4409 +msgid "Numbers can have at most 10 digits." +msgstr "" + +#: js/activity.js:390 +#: js/activity.js:395 +msgid "Search for blocks" +msgstr "" + +#: js/activity.js:1413 +msgid "Refresh your browser to change to advanced mode." +msgstr "" + +#: js/activity.js:1418 +msgid "Refresh your browser to change to beginner mode." +msgstr "" + +#: js/activity.js:1477 +msgid "Catching mice" +msgstr "" + +#: js/activity.js:1478 +msgid "Cleaning the instruments" +msgstr "" + +#: js/activity.js:1479 +msgid "Testing key pieces" +msgstr "" + +#: js/activity.js:1480 +msgid "Sight-reading" +msgstr "" + +#: js/activity.js:1481 +msgid "Combining math and music" +msgstr "" + +#: js/activity.js:1482 +msgid "Generating more blocks" +msgstr "" + +#: js/activity.js:1483 +msgid "Do Re Mi Fa Sol La Ti Do" +msgstr "" + +#: js/activity.js:1484 +msgid "Tuning string instruments" +msgstr "" + +#: js/activity.js:1485 +msgid "Pressing random keys" +msgstr "" + +#: js/activity.js:1663 +msgid "plugins will be removed upon restart." +msgstr "" + +#: js/activity.js:1672 +msgid "show Cartesian" +msgstr "" + +#: js/activity.js:2211 +#: js/palette.js:589 +#: js/blocks/RhythmBlocks.js:923 +#: js/blocks/PitchBlocks.js:442 +#: js/blocks/PitchBlocks.js:1786 +#.TRANS: a numeric mapping of the notes in an octave based on the musical mode +msgid "scale degree" +msgstr "" + +#: js/activity.js:2214 +#: js/palette.js:598 +msgid "voice name" +msgstr "" + +#: js/activity.js:2217 +#: js/palette.js:595 +msgid "invert mode" +msgstr "" + +#: js/activity.js:2220 +msgid "output tools" +msgstr "" + +#: js/activity.js:2223 +msgid "custom note" +msgstr "" + +#: js/activity.js:2226 +msgid "accidental name" +msgstr "" + +#: js/activity.js:2229 +#: js/blocks/PitchBlocks.js:855 +msgid "east indian solfege" +msgstr "" + +#: js/activity.js:2232 +#: js/blocks/PitchBlocks.js:869 +msgid "note name" +msgstr "" + +#: js/activity.js:2235 +#: js/blocks/IntervalsBlocks.js:94 +msgid "temperament name" +msgstr "" + +#: js/activity.js:2238 +#: js/palette.js:592 +msgid "mode name" +msgstr "" + +#: js/activity.js:2241 +msgid "chord name" +msgstr "" + +#: js/activity.js:2244 +#: js/palette.js:615 +msgid "interval name" +msgstr "" + +#: js/activity.js:2247 +msgid "filter type" +msgstr "" + +#: js/activity.js:2250 +msgid "oscillator type" +msgstr "" + +#: js/activity.js:2253 +#: js/blocks.js:2479 +#: js/blocks.js:2487 +msgid "audio file" +msgstr "" + +#: js/activity.js:2256 +#: js/blocks/DrumBlocks.js:32 +msgid "noise name" +msgstr "" + +#: js/activity.js:2259 +#: js/blocks/DrumBlocks.js:75 +msgid "drum name" +msgstr "" + +#: js/activity.js:2262 +#: js/blocks/DrumBlocks.js:119 +msgid "effects name" +msgstr "" + +#: js/activity.js:2265 +msgid "wrap mode" +msgstr "" + +#: js/activity.js:2268 +msgid "load file" +msgstr "" + +#: js/activity.js:2435 +#: js/activity.js:5851 +msgid "This block is deprecated." +msgstr "" + +#: js/activity.js:2437 +#: js/activity.js:5853 +msgid "Block cannot be found." +msgstr "" + +#: js/activity.js:2645 +msgid "Saving block artwork" +msgstr "" + +#: js/activity.js:2656 +msgid "Erase" +msgstr "" + +#: js/activity.js:2683 +#: js/activity.js:2705 +msgid "Paste" +msgstr "Ts'at'k'a'" + +#: js/activity.js:2687 +msgid "Save block help" +msgstr "" + +#: js/activity.js:2772 +msgid "Jumping to the bottom of the page." +msgstr "" + +#: js/activity.js:2778 +msgid "Scrolling up." +msgstr "" + +#: js/activity.js:2783 +msgid "Scrolling down." +msgstr "" + +#: js/activity.js:2788 +msgid "Extracting block" +msgstr "" + +#: js/activity.js:2796 +msgid "Moving block up." msgstr "" -#: js/block.js:4082 -msgid "Octave value must be between 1 and 10." +#: js/activity.js:2817 +msgid "Moving block down." msgstr "" -#: js/block.js:4090 -msgid "Numbers can have at most 10 digits." +#: js/activity.js:2838 +msgid "Moving block left." msgstr "" -#: js/notation.js:353 -msgid "Lilypond cannot process pickup of " +#: js/activity.js:2855 +msgid "Moving block right." msgstr "" -#: js/turtledefs.js:40 -#.TRANS: put the URL to the guide here, e.g., https://github.com/sugarlabs/turtleblocksjs/tree/master/guide/README.md -msgid "guide url" +#: js/activity.js:2870 +msgid "Jump to home position." msgstr "" -#: js/turtledefs.js:85 -#: js/turtledefs.js:437 -msgid "Turtle Blocks is a Logo-inspired turtle that draws colorful pictures with snap-together visual-programming blocks." +#: js/activity.js:2897 +msgid "Hide blocks" msgstr "" -#: js/turtledefs.js:118 -#: js/turtledefs.js:220 -msgid "search" +#: js/activity.js:4500 +msgid "Click the run button to run the project." msgstr "" -#: js/turtledefs.js:120 -#: js/turtledefs.js:222 -#: js/WidgetBlocks.js:437 -#: js/MeterBlocks.js:1343 -#.TRANS: musical meter (time signature), e.g., 4:4 -msgid "meter" +#: js/activity.js:5692 +msgid "Show/hide block" msgstr "" -#: js/turtledefs.js:122 -#: js/turtledefs.js:224 -msgid "intervals" +#: js/activity.js:5698 +msgid "Expand/collapse blocks" msgstr "" -#: js/turtledefs.js:124 -#: js/turtledefs.js:226 -msgid "ornament" +#: js/activity.js:5976 +msgid "Could not parse JSON input." msgstr "" -#: js/turtledefs.js:125 -#: js/turtledefs.js:227 -#: js/VolumeBlocks.js:362 -#: js/VolumeBlocks.js:502 -#: js/VolumeBlocks.js:545 -msgid "volume" +#: js/activity.js:6475 +#: js/activity.js:6580 +#: js/activity.js:6631 +msgid "Cannot load project from the file. Please check the file type." msgstr "" -#: js/turtledefs.js:129 -#: js/turtledefs.js:231 -msgid "boxes" +#: js/activity.js:6917 +msgid "Invalid parameters" msgstr "" -#: js/turtledefs.js:130 -#: js/turtledefs.js:232 -msgid "widgets" +#: js/blocks.js:1212 +#: js/blocks.js:3444 +#: js/blocks.js:3834 +#: js/blocks.js:3865 +#: js/blocks.js:3914 +#: js/blocks.js:3949 +#: js/blocks.js:6586 +#: js/palette.js:509 +#: js/palette.js:638 +#: js/palette.js:1105 +#: js/blocks/BoxesBlocks.js:282 +#: js/blocks/BoxesBlocks.js:285 +#: js/blocks/BoxesBlocks.js:405 +#: js/blocks/BoxesBlocks.js:594 +msgid "box" +msgstr "baltse'" + +#: js/blocks.js:1713 +msgid "Consider breaking this stack into parts." msgstr "" -#: js/turtledefs.js:131 -#: js/turtledefs.js:233 -#: js/phrasemaker.js:824 -msgid "graphics" +#: js/blocks.js:2472 +#: js/palette.js:653 +#: js/blocks/MediaBlocks.js:602 +msgid "open file" msgstr "" -#: js/turtledefs.js:134 -#: js/turtledefs.js:236 -msgid "boolean" +#: js/blocks.js:3247 +#: js/palette.js:574 +#: js/blocks/MediaBlocks.js:892 +#: js/blocks/MediaBlocks.js:963 +msgid "text" +msgstr "dhuchlab" + +#: js/blocks.js:3443 +#: js/palette.js:641 +#: js/palette.js:642 +#: js/blocks/BoxesBlocks.js:514 +msgid "store in box" msgstr "" -#: js/turtledefs.js:137 -#: js/turtledefs.js:239 -#: js/HeapBlocks.js:59 -#: js/status.js:147 -msgid "heap" +#: js/blocks.js:3448 +#: js/blocks.js:3888 +#: js/blocks.js:3923 +#: js/blocks.js:3958 +#: js/blocks.js:5862 +#: js/blocks.js:5883 +#: js/blocks/BoxesBlocks.js:772 +msgid "box1" msgstr "" -#: js/turtledefs.js:138 -#: js/turtledefs.js:240 -#: js/ProgramBlocks.js:495 -#: js/DictBlocks.js:142 -msgid "dictionary" +#: js/blocks.js:3450 +#: js/blocks.js:3890 +#: js/blocks.js:3925 +#: js/blocks.js:3960 +#: js/blocks.js:5864 +#: js/blocks.js:5885 +#: js/blocks/BoxesBlocks.js:663 +msgid "box2" msgstr "" -#: js/turtledefs.js:139 -#: js/turtledefs.js:241 -msgid "ensemble" +#: js/blocks.js:4122 +#: js/palette.js:639 +#: js/palette.js:644 +#: js/palette.js:1041 +#: js/blocks/BoxesBlocks.js:591 +msgid "store in" +msgstr "ki dhaya' ti" + +#: js/blocks.js:4122 +#: js/blocks/BoxesBlocks.js:595 +#: js/blocks/DictBlocks.js:215 +#: js/blocks/DictBlocks.js:289 +#: js/blocks/EnsembleBlocks.js:391 +#: js/blocks/EnsembleBlocks.js:402 +#: js/blocks/MediaBlocks.js:746 +#: js/blocks/PitchBlocks.js:656 +#: js/blocks/PitchBlocks.js:934 +#: js/blocks/PitchBlocks.js:1866 +#: js/blocks/ProgramBlocks.js:390 +#: js/blocks/ProgramBlocks.js:495 +#: js/blocks/ProgramBlocks.js:658 +#: js/blocks/ToneBlocks.js:1025 +msgid "name" msgstr "" -#: js/turtledefs.js:140 -#: js/turtledefs.js:242 -msgid "extras" +#: js/blocks.js:4122 +#: js/blocks/BoxesBlocks.js:75 +#: js/blocks/BoxesBlocks.js:595 +#: js/blocks/DictBlocks.js:289 +#: js/blocks/DictBlocks.js:430 +#: js/blocks/HeapBlocks.js:544 +#: js/blocks/RhythmBlocks.js:1130 +msgid "value" +msgstr "jalbíl" + +#: js/blocks.js:4465 +msgid "Forever loop detected inside a note value block. Unexpected things may happen." msgstr "" -#: js/turtledefs.js:142 -#: js/turtledefs.js:244 -#.TRANS: program as in computer program -#.TRANS: program as in computer program -msgid "program" +#: js/blocks.js:4988 +msgid "There is no block selected." msgstr "" -#: js/turtledefs.js:143 -#: js/turtledefs.js:245 -msgid "my blocks" +#: js/blocks.js:5091 +#: js/blocks/MediaBlocks.js:888 +msgid "show" +msgstr "tejwa'méjdha'" + +#: js/blocks.js:5094 +#: js/blocks/MediaBlocks.js:803 +#.TRANS: Avatar is the image used to determine the appearance of the mouse. +msgid "avatar" msgstr "" -#: js/turtledefs.js:185 -#: js/turtledefs.js:281 -msgid "artwork" +#: js/blocks.js:5097 +#: js/blocks/ToneBlocks.js:1010 +#: js/widgets/sampler.js:975 +#.TRANS: The sound sample that the user uploads. +msgid "sample" msgstr "" -#: js/turtledefs.js:185 -#: js/turtledefs.js:281 -msgid "logic" +#: js/lilypond.js:606 +msgid "brown rat" msgstr "" -#: js/turtledefs.js:185 -#: js/turtledefs.js:281 -msgid "music" +#: js/lilypond.js:607 +msgid "mole" msgstr "" -#: js/turtledefs.js:187 -#: js/turtledefs.js:463 -msgid "Music Blocks is a collection of tools for exploring fundamental musical concepts in a fun way." +#: js/lilypond.js:608 +msgid "chipmunk" msgstr "" -#: js/turtledefs.js:436 -msgid "Welcome to Turtle Blocks" +#: js/lilypond.js:609 +msgid "red squirrel" msgstr "" -#: js/turtledefs.js:438 -#: js/turtledefs.js:465 -#: js/turtledefs.js:774 -#: js/turtledefs.js:805 -msgid "The current version is" +#: js/lilypond.js:610 +msgid "guinea pig" msgstr "" -#: js/turtledefs.js:446 -#: js/turtledefs.js:483 -msgid "Click the run button to run the project in fast mode." +#: js/lilypond.js:611 +msgid "capybara" msgstr "" -#: js/turtledefs.js:452 -msgid "Stop the turtle." +#: js/lilypond.js:612 +msgid "coypu" msgstr "" -#: js/turtledefs.js:454 -#: js/turtledefs.js:491 -msgid "You can also type Alt-S to stop." +#: js/lilypond.js:613 +msgid "black rat" msgstr "" -#: js/turtledefs.js:462 -#: js/help.js:333 -msgid "Welcome to Music Blocks" +#: js/lilypond.js:614 +msgid "grey squirrel" msgstr "" -#: js/turtledefs.js:472 -#: js/help.js:334 -msgid "Meet Mr. Mouse!" +#: js/lilypond.js:615 +msgid "flying squirrel" msgstr "" -#: js/turtledefs.js:473 -msgid "Mr Mouse is our Music Blocks conductor." +#: js/lilypond.js:616 +msgid "bat" msgstr "" -#: js/turtledefs.js:475 -msgid "Mr Mouse encourages you to explore Music Blocks." +#: js/lilypond.js:749 +#: js/lilypond.js:913 +#: js/lilypond.js:951 +#: js/blocks/ActionBlocks.js:1256 +#: js/blocks/ExtrasBlocks.js:556 +msgid "start drum" msgstr "" -#: js/turtledefs.js:477 -msgid "Let us start our tour!" +#: js/logo.js:61 +msgid "Not a valid pitch name" msgstr "" -#: js/turtledefs.js:489 -msgid "Stop the music (and the mice)." +#: js/logo.js:507 +#: js/blocks/ProgramBlocks.js:258 +#: js/blocks/ProgramBlocks.js:427 +msgid "You must select a file." msgstr "" -#: js/turtledefs.js:499 -msgid "Record your project as video." +#: js/logo.js:1696 +msgid "Playback is ready." msgstr "" -#: js/turtledefs.js:505 -msgid "Toggle Fullscreen mode." +#: js/macros.js:711 +#: js/utils/musicutils.js:1162 +#: js/utils/synthutils.js:202 +#.TRANS: animal sound effect +msgid "duck" msgstr "" -#: js/turtledefs.js:511 -msgid "Initialize a new project." +#: js/notation.js:353 +msgid "Lilypond cannot process pickup of " msgstr "" -#: js/turtledefs.js:517 -msgid "You can also load projects from the file system." +#: js/palette.js:571 +msgid "grid" msgstr "" -#: js/turtledefs.js:522 -#: js/StringHelper.js:46 -msgid "Delete" +#: js/palette.js:580 +msgid "effect" msgstr "" -#: js/turtledefs.js:523 -msgid "To delete a block, just right-click on it, then you will be able to see the delete option" +#: js/palette.js:586 +msgid "sargam" msgstr "" -#: js/turtledefs.js:528 -#: js/activity.js:2270 -#: js/LocalCard.js:31 -msgid "Copy" -msgstr "K'ot'biy" +#: js/palette.js:601 +#: js/blocks/PitchBlocks.js:1209 +msgid "custom pitch" +msgstr "" -#: js/turtledefs.js:529 -msgid "To copy a block, just right-click on it, then you will be able to see the copy option" +#: js/palette.js:609 +msgid "accidental" msgstr "" -#: js/turtledefs.js:535 -msgid "To extract a block, just right-click on it, then you will be able to see the extract option" +#: js/palette.js:633 +#: js/blocks/PitchBlocks.js:405 +msgid "pitch converter" msgstr "" -#: js/turtledefs.js:542 -#: js/turtledefs.js:552 -#: js/turtledefs.js:573 -msgid "Save your project to a file." +#: js/piemenus.js:200 +#: js/utils/musicutils.js:1187 +#: js/utils/musicutils.js:1207 +#: js/widgets/musickeyboard.js:2341 +#: js/widgets/phrasemaker.js:1908 +#: js/widgets/sampler.js:810 +#.TRANS: double sharp is a music term related to pitch +msgid "double sharp" msgstr "" -#: js/turtledefs.js:549 -#: js/turtledefs.js:570 -msgid "save" +#: js/piemenus.js:201 +#: js/utils/musicutils.js:1185 +#: js/utils/musicutils.js:1208 +#: js/blocks/PitchBlocks.js:1539 +#: js/turtleactions/PitchActions.js:323 +#: js/widgets/musickeyboard.js:2342 +#: js/widgets/phrasemaker.js:1909 +#: js/widgets/sampler.js:811 +#.TRANS: sharp is a music term related to pitch +#.TRANS: sharp is a half-step up in pitch +msgid "sharp" msgstr "" -#: js/turtledefs.js:556 -#: js/turtledefs.js:577 -msgid "Save graphics from your project to as SVG." +#: js/piemenus.js:202 +#: js/utils/musicutils.js:1183 +#: js/utils/musicutils.js:1209 +#: js/widgets/musickeyboard.js:2343 +#: js/widgets/phrasemaker.js:1910 +#: js/widgets/sampler.js:812 +#.TRANS: natural is a music term related to pitch +msgid "natural" msgstr "" -#: js/turtledefs.js:560 -#: js/turtledefs.js:581 -msgid "Save graphics from your project as PNG." +#: js/piemenus.js:203 +#: js/utils/musicutils.js:1181 +#: js/utils/musicutils.js:1210 +#: js/blocks/PitchBlocks.js:1498 +#: js/turtleactions/PitchActions.js:326 +#: js/widgets/musickeyboard.js:2344 +#: js/widgets/phrasemaker.js:1911 +#: js/widgets/sampler.js:813 +#.TRANS: flat is a music term related to pitch +#.TRANS: flat is a half-step down in pitch +msgid "flat" msgstr "" -#: js/turtledefs.js:564 -#: js/turtledefs.js:597 -msgid "Save block artwork as an SVG file." +#: js/piemenus.js:204 +#: js/utils/musicutils.js:1179 +#: js/utils/musicutils.js:1211 +#: js/widgets/musickeyboard.js:2345 +#: js/widgets/phrasemaker.js:1912 +#: js/widgets/sampler.js:814 +#.TRANS: double flat is a music term related to pitch +msgid "double flat" msgstr "" -#: js/turtledefs.js:585 -msgid "Save audio from your project as WAV." +#: js/piemenus.js:2864 +#: js/utils/musicutils.js:1006 +#: js/blocks/PitchBlocks.js:1385 +#.TRANS: unison is a music term related to intervals +#.TRANS: unison means the note is the same as the current note +msgid "unison" msgstr "" -#: js/turtledefs.js:589 -msgid "Save your project to as an ABC file." +#: js/piemenus.js:3018 +#: js/piemenus.js:3091 +#: js/utils/musicutils.js:1014 +#: js/utils/musicutils.js:1189 +#: js/utils/musicutils.js:1326 +#.TRANS: major is a music term related to intervals and mode +msgid "major" msgstr "" -#: js/turtledefs.js:593 -msgid "Save your project to as a Lilypond file." +#: js/piemenus.js:3018 +#: js/piemenus.js:3091 +#: js/utils/musicutils.js:1032 +#.TRANS: modal scale for music +msgid "ionian" msgstr "" -#: js/turtledefs.js:604 -msgid "Load samples from server" +#: js/piemenus.js:3020 +#: js/piemenus.js:3095 +#: js/utils/musicutils.js:1012 +#: js/utils/musicutils.js:1190 +#: js/utils/musicutils.js:1323 +#.TRANS: minor is a music term related to intervals and mode +msgid "minor" msgstr "" -#: js/turtledefs.js:605 -msgid "This button opens a viewer for loading example projects." +#: js/piemenus.js:3020 +#: js/piemenus.js:3095 +#: js/utils/musicutils.js:1042 +#.TRANS: modal scale for music +msgid "aeolian" msgstr "" -#: js/turtledefs.js:611 -msgid "Palette buttons" +#: js/piemenus.js:3410 +msgid "Duplicate" msgstr "" -#: js/turtledefs.js:612 -msgid "This toolbar contains the palette buttons including Rhythm Pitch Tone Action and more." +#: js/piemenus.js:3412 +msgid "Move to trash" msgstr "" -#: js/turtledefs.js:614 -msgid "Click to show the palettes of blocks and drag blocks from the palettes onto the canvas to use them." +#: js/piemenus.js:3413 +#: js/widgets/timbre.js:968 +#: planet/js/StringHelper.js:69 +msgid "Close" msgstr "" -#: js/turtledefs.js:620 -msgid "Cartesian/Polar" +#: js/piemenus.js:3419 +msgid "Save stack" msgstr "" -#: js/turtledefs.js:621 -msgid "Show or hide a coordinate grid." +#: js/piemenus.js:3449 +msgid "In order to copy a sample, you must reload the widget, import the sample again, and export it." msgstr "" -#: js/turtledefs.js:627 -msgid "Clear the screen and return the mice to their initial positions." +#: js/piemenus.js:3812 +msgid "You have chosen key " msgstr "" -#: js/turtledefs.js:633 -msgid "Collapse the graphics window." +#: js/piemenus.js:3816 +msgid " for your pitch preview." msgstr "" -#: js/turtledefs.js:638 -#: js/activity.js:4256 -#: js/activity.js:4256 -msgid "Home" +#: js/turtle-singer.js:1363 +#.TRANS: partials are weighted components in a harmonic series +msgid "You must have at least one Partial block inside of a Weighted-partial block" msgstr "" -#: js/turtledefs.js:639 -msgid "Return all blocks to the center of the screen." +#: js/turtle-singer.js:2077 +msgid "synth cannot play chords." msgstr "" -#: js/turtledefs.js:644 -msgid "Show/hide blocks" -msgstr "Tejwa'méjdha'/dhibk'oy an kwene' t'ojláb" - -#: js/turtledefs.js:645 -msgid "Hide or show the blocks and the palettes." +#: js/utils/musicutils.js:505 +#: js/utils/musicutils.js:645 +#: js/widgets/pitchdrummatrix.js:228 +#: js/widgets/musickeyboard.js:2885 +msgid "rest" msgstr "" -#: js/turtledefs.js:650 -msgid "Expand/collapse collapsable blocks" +#: js/utils/musicutils.js:689 +msgid "Perfect unison" msgstr "" -#: js/turtledefs.js:651 -msgid "Expand or collapse start and action stacks." +#: js/utils/musicutils.js:689 +msgid "Diminished second" msgstr "" -#: js/turtledefs.js:658 -#: js/activity.js:4265 -msgid "Decrease block size" +#: js/utils/musicutils.js:690 +msgid "Minor second" msgstr "" -#: js/turtledefs.js:659 -msgid "Decrease the size of the blocks." +#: js/utils/musicutils.js:690 +msgid "Augmented unison" msgstr "" -#: js/turtledefs.js:664 -#: js/activity.js:4267 -msgid "Increase block size" +#: js/utils/musicutils.js:691 +msgid "Major second" msgstr "" -#: js/turtledefs.js:665 -msgid "Increase the size of the blocks." +#: js/utils/musicutils.js:691 +msgid "Diminished third" msgstr "" -#: js/turtledefs.js:670 -msgid "Expand/collapse option toolbar" +#: js/utils/musicutils.js:692 +msgid "Minor third" msgstr "" -#: js/turtledefs.js:671 -msgid "Click this button to expand or collapse the auxillary toolbar." +#: js/utils/musicutils.js:692 +msgid "Augmented second" msgstr "" -#: js/turtledefs.js:676 -msgid "Run slow" +#: js/utils/musicutils.js:693 +msgid "Major third" msgstr "" -#: js/turtledefs.js:677 -msgid "Click to run the project in slow mode." +#: js/utils/musicutils.js:693 +msgid "Diminished fourth" msgstr "" -#: js/turtledefs.js:683 -msgid "Click to run the project step by step." +#: js/utils/musicutils.js:694 +msgid "Perfect fourth" msgstr "" -#: js/turtledefs.js:690 -msgid "Display statistics about your Music project." +#: js/utils/musicutils.js:694 +msgid "Augmented third" msgstr "" -#: js/turtledefs.js:697 -msgid "Delete a selected plugin." +#: js/utils/musicutils.js:695 +msgid "Diminished fifth" msgstr "" -#: js/turtledefs.js:704 -msgid "Enable scrolling" +#: js/utils/musicutils.js:695 +msgid "Augmented fourth" msgstr "" -#: js/turtledefs.js:705 -msgid "You can scroll the blocks on the canvas." +#: js/utils/musicutils.js:696 +msgid "Perfect fifth" msgstr "" -#: js/turtledefs.js:714 -msgid "Wrap Turtle" +#: js/utils/musicutils.js:696 +msgid "Diminished sixth" msgstr "" -#: js/turtledefs.js:715 -msgid "Turn Turtle wrapping On or Off." +#: js/utils/musicutils.js:697 +msgid "Minor sixth" msgstr "" -#: js/turtledefs.js:725 -msgid "Restore blocks from the trash." +#: js/utils/musicutils.js:697 +msgid "Augmented fifth" msgstr "" -#: js/turtledefs.js:732 -msgid "Switch mode" +#: js/utils/musicutils.js:698 +msgid "Major sixth" msgstr "" -#: js/turtledefs.js:733 -msgid "Switch between beginner and advance modes." +#: js/utils/musicutils.js:698 +msgid "Diminished seventh" msgstr "" -#: js/turtledefs.js:739 -msgid "Select your language preference." +#: js/utils/musicutils.js:699 +msgid "Minor seventh" msgstr "" -#: js/turtledefs.js:745 -msgid "Keyboard shortcuts" +#: js/utils/musicutils.js:699 +msgid "Augmented sixth" msgstr "" -#: js/turtledefs.js:746 -msgid "You can type d to create a do block and r to create a re block etc." +#: js/utils/musicutils.js:700 +msgid "Major seventh" msgstr "" -#: js/turtledefs.js:753 -msgid "Show these messages." +#: js/utils/musicutils.js:700 +msgid "Diminished octave" msgstr "" -#: js/turtledefs.js:759 -#: js/turtledefs.js:790 -#: js/help.js:335 -msgid "Guide" +#: js/utils/musicutils.js:701 +msgid "Perfect octave" msgstr "" -#: js/turtledefs.js:760 -msgid "A detailed guide to Turtle Blocks is available." +#: js/utils/musicutils.js:701 +msgid "Augmented seventh" msgstr "" -#: js/turtledefs.js:764 -msgid "Turtle Blocks Guide" +#: js/utils/musicutils.js:702 +msgid "Minor ninth" msgstr "" -#: js/turtledefs.js:767 -#: js/turtledefs.js:798 -#: js/help.js:336 -msgid "About" +#: js/utils/musicutils.js:702 +msgid "Augmented octave" msgstr "" -#: js/turtledefs.js:768 -msgid "Turtle Blocks is an open source collection of tools for exploring musical concepts." +#: js/utils/musicutils.js:703 +msgid "Major ninth" msgstr "" -#: js/turtledefs.js:770 -msgid "A full list of contributors can be found in the Turtle Blocks GitHub repository." +#: js/utils/musicutils.js:703 +msgid "Diminished tenth" msgstr "" -#: js/turtledefs.js:772 -msgid "Turtle Blocks is licensed under the AGPL." +#: js/utils/musicutils.js:704 +msgid "Minor tenth" msgstr "" -#: js/turtledefs.js:780 -msgid "Turtle Blocks GitHub repository" +#: js/utils/musicutils.js:704 +msgid "Augmented ninth" msgstr "" -#: js/turtledefs.js:783 -#: js/turtledefs.js:814 -#: js/help.js:337 -#: js/help.js:359 -msgid "Congratulations." +#: js/utils/musicutils.js:705 +msgid "Major tenth" msgstr "" -#: js/turtledefs.js:784 -msgid "You have finished the tour. Please enjoy Turtle Blocks!" +#: js/utils/musicutils.js:705 +msgid "Diminished eleventh" msgstr "" -#: js/turtledefs.js:791 -msgid "A detailed guide to Music Blocks is available." +#: js/utils/musicutils.js:706 +msgid "Perfect eleventh" msgstr "" -#: js/turtledefs.js:795 -#: js/SaveInterface.js:76 -msgid "Music Blocks Guide" +#: js/utils/musicutils.js:706 +msgid "Augmented tenth" msgstr "" -#: js/turtledefs.js:799 -msgid "Music Blocks is an open source collection of tools for exploring musical concepts." +#: js/utils/musicutils.js:707 +msgid "Diminished twelfth" msgstr "" -#: js/turtledefs.js:801 -msgid "A full list of contributors can be found in the Music Blocks GitHub repository." +#: js/utils/musicutils.js:707 +msgid "Augmented eleventh" msgstr "" -#: js/turtledefs.js:803 -msgid "Music Blocks is licensed under the AGPL." +#: js/utils/musicutils.js:708 +msgid "Perfect twelfth" msgstr "" -#: js/turtledefs.js:811 -msgid "Music Blocks GitHub repository" +#: js/utils/musicutils.js:708 +msgid "Diminished thirteenth" msgstr "" -#: js/turtledefs.js:815 -msgid "You have finished the tour. Please enjoy Music Blocks!" +#: js/utils/musicutils.js:709 +msgid "Minor thirteenth" msgstr "" -#: js/activity.js:369 -msgid "Search for blocks" +#: js/utils/musicutils.js:709 +msgid "Augmented fifth, plus an octave" msgstr "" -#: js/activity.js:1145 -msgid "Refresh your browser to change to advanced mode." +#: js/utils/musicutils.js:710 +msgid "Major thirteenth" msgstr "" -#: js/activity.js:1150 -msgid "Refresh your browser to change to beginner mode." +#: js/utils/musicutils.js:710 +msgid "Diminished seventh, plus an octave" msgstr "" -#: js/activity.js:1184 -msgid "Catching mice" +#: js/utils/musicutils.js:838 +#.TRANS: ordinal number. Please keep exactly one space between each number. +msgid "1st 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th" msgstr "" -#: js/activity.js:1185 -msgid "Cleaning the instruments" +#: js/utils/musicutils.js:1008 +#: js/utils/musicutils.js:1191 +#: js/utils/musicutils.js:1325 +#.TRANS: augmented is a music term related to intervals +msgid "augmented" msgstr "" -#: js/activity.js:1186 -msgid "Testing key pieces" +#: js/utils/musicutils.js:1010 +#: js/utils/musicutils.js:1192 +#: js/utils/musicutils.js:1324 +#.TRANS: diminished is a music term related to intervals and mode +msgid "diminished" msgstr "" -#: js/activity.js:1187 -msgid "Sight-reading" +#: js/utils/musicutils.js:1016 +#: js/utils/musicutils.js:1322 +#: js/blocks/IntervalsBlocks.js:649 +#: js/turtleactions/IntervalsActions.js:120 +#: js/turtleactions/IntervalsActions.js:124 +#.TRANS: perfect is a music term related to intervals +msgid "perfect" msgstr "" -#: js/activity.js:1188 -msgid "Combining math and music" +#: js/utils/musicutils.js:1018 +#.TRANS: twelve semi-tone scale for music +msgid "chromatic" msgstr "" -#: js/activity.js:1189 -msgid "Generating more blocks" +#: js/utils/musicutils.js:1019 +msgid "algerian" msgstr "" -#: js/activity.js:1190 -msgid "Do Re Mi Fa Sol La Ti Do" +#: js/utils/musicutils.js:1020 +msgid "spanish" msgstr "" -#: js/activity.js:1191 -msgid "Tuning string instruments" +#: js/utils/musicutils.js:1022 +#.TRANS: modal scale in music +msgid "octatonic" msgstr "" -#: js/activity.js:1192 -msgid "Pressing random keys" +#: js/utils/musicutils.js:1024 +#.TRANS: harmonic major scale in music +msgid "harmonic major" msgstr "" -#: js/activity.js:1351 -msgid "plugins will be removed upon restart." +#: js/utils/musicutils.js:1026 +#.TRANS: natural minor scales in music +msgid "natural minor" msgstr "" -#: js/activity.js:1360 -msgid "show Cartesian" +#: js/utils/musicutils.js:1028 +#.TRANS: harmonic minor scale in music +msgid "harmonic minor" msgstr "" -#: js/activity.js:1842 -msgid "output tools" +#: js/utils/musicutils.js:1030 +#.TRANS: melodic minor scale in music +msgid "melodic minor" msgstr "" -#: js/activity.js:1845 -msgid "custom note" +#: js/utils/musicutils.js:1034 +#.TRANS: modal scale for music +msgid "dorian" msgstr "" -#: js/activity.js:1848 -msgid "accidental name" +#: js/utils/musicutils.js:1036 +#.TRANS: modal scale for music +msgid "phrygian" msgstr "" -#: js/activity.js:1851 -#: js/PitchBlocks.js:855 -msgid "east indian solfege" +#: js/utils/musicutils.js:1038 +#.TRANS: modal scale for music +msgid "lydian" msgstr "" -#: js/activity.js:1854 -#: js/PitchBlocks.js:869 -msgid "note name" +#: js/utils/musicutils.js:1040 +#.TRANS: modal scale for music +msgid "mixolydian" msgstr "" -#: js/activity.js:1857 -#: js/IntervalsBlocks.js:94 -msgid "temperament name" +#: js/utils/musicutils.js:1044 +#.TRANS: modal scale for music +msgid "locrian" msgstr "" -#: js/activity.js:1863 -msgid "chord name" +#: js/utils/musicutils.js:1046 +#.TRANS: minor jazz scale for music +msgid "jazz minor" msgstr "" -#: js/activity.js:1869 -msgid "filter type" +#: js/utils/musicutils.js:1048 +#.TRANS: bebop scale for music +msgid "bebop" msgstr "" -#: js/activity.js:1872 -msgid "oscillator type" +#: js/utils/musicutils.js:1049 +msgid "arabic" msgstr "" -#: js/activity.js:1878 -#: js/DrumBlocks.js:32 -msgid "noise name" +#: js/utils/musicutils.js:1050 +msgid "byzantine" msgstr "" -#: js/activity.js:1881 -#: js/DrumBlocks.js:75 -msgid "drum name" +#: js/utils/musicutils.js:1052 +#.TRANS: musical scale for music by Verdi +msgid "enigmatic" msgstr "" -#: js/activity.js:1884 -#: js/DrumBlocks.js:119 -msgid "effects name" +#: js/utils/musicutils.js:1053 +msgid "ethiopian" msgstr "" -#: js/activity.js:1887 -msgid "wrap mode" +#: js/utils/musicutils.js:1055 +#.TRANS: Ethiopic scale for music +msgid "geez" msgstr "" -#: js/activity.js:1890 -msgid "load file" +#: js/utils/musicutils.js:1056 +msgid "hindu" msgstr "" -#: js/activity.js:2056 -msgid "This block is deprecated." +#: js/utils/musicutils.js:1057 +msgid "hungarian" msgstr "" -#: js/activity.js:2058 -msgid "Block cannot be found." +#: js/utils/musicutils.js:1059 +#.TRANS: minor Romanian scale for music +msgid "romanian minor" msgstr "" -#: js/activity.js:2266 -msgid "Saving block artwork" +#: js/utils/musicutils.js:1060 +msgid "spanish gypsy" msgstr "" -#: js/activity.js:2277 -msgid "Erase" +#: js/utils/musicutils.js:1062 +#.TRANS: musical scale for Mid-Eastern music +msgid "maqam" msgstr "" -#: js/activity.js:2301 -#: js/activity.js:2323 -msgid "Paste" -msgstr "Ts'at'k'a'" +#: js/utils/musicutils.js:1064 +#.TRANS: minor blues scale for music +msgid "minor blues" +msgstr "" -#: js/activity.js:2305 -msgid "Save block help" +#: js/utils/musicutils.js:1066 +#.TRANS: major blues scale for music +msgid "major blues" msgstr "" -#: js/activity.js:2390 -msgid "Jumping to the bottom of the page." +#: js/utils/musicutils.js:1067 +msgid "whole tone" msgstr "" -#: js/activity.js:2396 -msgid "Scrolling up." +#: js/utils/musicutils.js:1069 +#.TRANS: pentatonic is a general term that means "five note scale". This scale is typically known as "minor pentatonic" +msgid "minor pentatonic" msgstr "" -#: js/activity.js:2401 -msgid "Scrolling down." +#: js/utils/musicutils.js:1071 +#.TRANS: pentatonic is a general term that means "five note scale". This scale is typically known as "major pentatonic" +msgid "major pentatonic" msgstr "" -#: js/activity.js:2406 -msgid "Extracting block" +#: js/utils/musicutils.js:1072 +msgid "chinese" msgstr "" -#: js/activity.js:2414 -msgid "Moving block up." +#: js/utils/musicutils.js:1073 +msgid "egyptian" msgstr "" -#: js/activity.js:2435 -msgid "Moving block down." +#: js/utils/musicutils.js:1075 +#.TRANS: https://en.wikipedia.org/wiki/Hirajoshi_scale NOTE: There are three different versions of this scale +msgid "hirajoshi" msgstr "" -#: js/activity.js:2456 -msgid "Moving block left." +#: js/utils/musicutils.js:1076 +msgid "Japan" msgstr "" -#: js/activity.js:2473 -msgid "Moving block right." +#: js/utils/musicutils.js:1078 +#.TRANS: https://en.wikipedia.org/wiki/In_scale and https://en.wikipedia.org/wiki/Sakura_Sakura +msgid "in" msgstr "" -#: js/activity.js:2488 -msgid "Jump to home position." +#: js/utils/musicutils.js:1080 +#.TRANS: https://en.wikipedia.org/wiki/Miny%C5%8D_scale +msgid "minyo" msgstr "" -#: js/activity.js:2515 -msgid "Hide blocks" +#: js/utils/musicutils.js:1082 +#.TRANS: Italian mathematician +msgid "fibonacci" msgstr "" -#: js/activity.js:3389 -msgid "Click the run button to run the project." +#: js/utils/musicutils.js:1083 +#: js/utils/musicutils.js:1134 +#: js/utils/musicutils.js:1177 +#: js/utils/musicutils.js:1199 +#: js/utils/synthutils.js:134 +#: js/blocks/IntervalsBlocks.js:1124 +#: js/blocks/ToneBlocks.js:946 +#: js/blocks/VolumeBlocks.js:411 +#: js/blocks/WidgetBlocks.js:399 +#: js/blocks/WidgetBlocks.js:404 +#: js/turtleactions/VolumeActions.js:218 +#: js/widgets/modewidget.js:919 +#.TRANS: customize voice +msgid "custom" msgstr "" -#: js/activity.js:3456 -#: js/SaveInterface.js:131 -#: js/SaveInterface.js:204 -#: js/SaveInterface.js:262 -#: js/SaveInterface.js:389 -#: js/SaveInterface.js:417 -#: js/ProjectStorage.js:27 -#: js/GlobalPlanet.js:467 -#: js/GlobalPlanet.js:469 -#: js/GlobalPlanet.js:495 -#.TRANS: default project title when saving as Lilypond -msgid "My Project" +#: js/utils/musicutils.js:1085 +#: js/utils/musicutils.js:1531 +#: js/blocks/WidgetBlocks.js:176 +#.TRANS: highpass filter +msgid "highpass" msgstr "" -#: js/activity.js:4261 -msgid "Show/hide block" +#: js/utils/musicutils.js:1087 +#: js/utils/musicutils.js:1532 +#.TRANS: lowpass filter +msgid "lowpass" msgstr "" -#: js/activity.js:4263 -msgid "Expand/collapse blocks" +#: js/utils/musicutils.js:1089 +#: js/utils/musicutils.js:1533 +#.TRANS: bandpass filter +msgid "bandpass" msgstr "" -#: js/activity.js:4381 -msgid "Could not parse JSON input." +#: js/utils/musicutils.js:1091 +#: js/utils/musicutils.js:1534 +#.TRANS: high-shelf filter +msgid "highshelf" msgstr "" -#: js/activity.js:4684 -#: js/activity.js:4771 -#: js/activity.js:4821 -msgid "Cannot load project from the file. Please check the file type." +#: js/utils/musicutils.js:1093 +#: js/utils/musicutils.js:1535 +#.TRANS: low-shelf filter +msgid "lowshelf" msgstr "" -#: js/activity.js:5051 -msgid "Invalid parameters" +#: js/utils/musicutils.js:1095 +#: js/utils/musicutils.js:1536 +#.TRANS: notch-shelf filter +msgid "notch" msgstr "" -#: js/turtle-singer.js:1334 -#.TRANS: partials are weighted components in a harmonic series -msgid "You must have at least one Partial block inside of a Weighted-partial block" +#: js/utils/musicutils.js:1097 +#: js/utils/musicutils.js:1537 +#.TRANS: all-pass filter +msgid "allpass" msgstr "" -#: js/turtle-singer.js:2048 -msgid "synth cannot play chords." +#: js/utils/musicutils.js:1099 +#: js/utils/musicutils.js:1538 +#.TRANS: peaking filter +msgid "peaking" msgstr "" -#: js/lilypond.js:614 -msgid "brown rat" +#: js/utils/musicutils.js:1100 +#: js/utils/musicutils.js:1546 +#: js/utils/synthutils.js:126 +#: js/blocks/PitchBlocks.js:85 +#.TRANS: sine wave +msgid "sine" msgstr "" -#: js/lilypond.js:615 -msgid "mole" +#: js/utils/musicutils.js:1101 +#: js/utils/musicutils.js:1547 +#: js/utils/synthutils.js:128 +#: js/blocks/PitchBlocks.js:39 +#.TRANS: square wave +msgid "square" msgstr "" -#: js/lilypond.js:616 -msgid "chipmunk" +#: js/utils/musicutils.js:1102 +#: js/utils/musicutils.js:1548 +#: js/utils/synthutils.js:132 +#: js/blocks/PitchBlocks.js:62 +#: js/blocks/ToneBlocks.js:39 +#.TRANS: triangle wave +msgid "triangle" msgstr "" -#: js/lilypond.js:617 -msgid "red squirrel" +#: js/utils/musicutils.js:1103 +#: js/utils/musicutils.js:1549 +#: js/utils/synthutils.js:130 +#: js/blocks/PitchBlocks.js:108 +#.TRANS: sawtooth wave +msgid "sawtooth" msgstr "" -#: js/lilypond.js:618 -msgid "guinea pig" +#: js/utils/musicutils.js:1105 +#: js/utils/musicutils.js:1312 +#: js/blocks/PitchBlocks.js:931 +#: js/blocks/PitchBlocks.js:937 +#: js/turtleactions/PitchActions.js:469 +#.TRANS: even numbers +#.TRANS: invert based on even or odd number or musical scale +msgid "even" msgstr "" -#: js/lilypond.js:619 -msgid "capybara" +#: js/utils/musicutils.js:1107 +#: js/utils/musicutils.js:1313 +#: js/blocks/PitchBlocks.js:937 +#: js/turtleactions/PitchActions.js:471 +#.TRANS: odd numbers +msgid "odd" msgstr "" -#: js/lilypond.js:620 -msgid "coypu" +#: js/utils/musicutils.js:1108 +#: js/utils/musicutils.js:1314 +#: js/blocks/PitchBlocks.js:937 +#: js/turtleactions/PitchActions.js:473 +msgid "scalar" msgstr "" -#: js/lilypond.js:621 -msgid "black rat" +#: js/utils/musicutils.js:1109 +#: js/utils/synthutils.js:72 +#: js/blocks/VolumeBlocks.js:47 +#.TRANS: musical instrument +msgid "piano" msgstr "" -#: js/lilypond.js:622 -msgid "grey squirrel" +#: js/utils/musicutils.js:1110 +#: js/utils/synthutils.js:74 +#.TRANS: musical instrument +msgid "violin" msgstr "" -#: js/lilypond.js:623 -msgid "flying squirrel" +#: js/utils/musicutils.js:1111 +#: js/utils/synthutils.js:76 +#.TRANS: viola musical instrument +msgid "viola" msgstr "" -#: js/lilypond.js:624 -msgid "bat" +#: js/utils/musicutils.js:1112 +#: js/utils/synthutils.js:114 +#.TRANS: xylophone musical instrument +msgid "xylophone" msgstr "" -#: js/lilypond.js:757 -#: js/lilypond.js:921 -#: js/lilypond.js:959 -#: js/ActionBlocks.js:1256 -#: js/ExtrasBlocks.js:553 -msgid "start drum" +#: js/utils/musicutils.js:1113 +#: js/utils/synthutils.js:136 +#.TRANS: vibraphone musical instrument +msgid "vibraphone" msgstr "" -#: js/SaveInterface.js:59 -#: js/SaveInterface.js:61 -#: js/SaveInterface.js:93 -msgid "Music Blocks Project" +#: js/utils/musicutils.js:1114 +#: js/utils/synthutils.js:78 +#.TRANS: musical instrument +msgid "cello" msgstr "" -#: js/SaveInterface.js:63 -msgid "This project was created in Music Blocks" +#: js/utils/musicutils.js:1116 +#: js/utils/synthutils.js:82 +#.TRANS: viola musical instrument +msgid "double bass" msgstr "" -#: js/SaveInterface.js:67 -msgid "Music Blocks is a Free/Libre Software application." +#: js/utils/musicutils.js:1117 +#: js/utils/synthutils.js:84 +#: js/widgets/rhythmruler.js:2511 +#.TRANS: musical instrument +msgid "guitar" msgstr "" -#: js/SaveInterface.js:69 -msgid "The source code can be accessed at" +#: js/utils/musicutils.js:1118 +#: js/utils/synthutils.js:86 +#.TRANS: musical instrument +msgid "acoustic guitar" msgstr "" -#: js/SaveInterface.js:72 -msgid "For more information, please consult the" +#: js/utils/musicutils.js:1119 +#: js/utils/synthutils.js:88 +#.TRANS: musical instrument +msgid "flute" msgstr "" -#: js/SaveInterface.js:83 -msgid "Alternatively, open the file in Music Blocks using the Load project button." +#: js/utils/musicutils.js:1120 +#: js/utils/synthutils.js:90 +#.TRANS: musical instrument +msgid "clarinet" msgstr "" -#: js/SaveInterface.js:85 -msgid "Project Code" +#: js/utils/musicutils.js:1121 +#: js/utils/synthutils.js:92 +#.TRANS: musical instrument +msgid "saxophone" msgstr "" -#: js/SaveInterface.js:87 -msgid "This code stores data about the blocks in a project." +#: js/utils/musicutils.js:1122 +#: js/utils/synthutils.js:94 +#.TRANS: musical instrument +msgid "tuba" msgstr "" -#: js/SaveInterface.js:89 -msgid "Show" +#: js/utils/musicutils.js:1123 +#: js/utils/synthutils.js:96 +#.TRANS: musical instrument +msgid "trumpet" msgstr "" -#: js/SaveInterface.js:91 -msgid "Hide" +#: js/utils/musicutils.js:1124 +#: js/utils/synthutils.js:98 +#.TRANS: musical instrument +msgid "oboe" msgstr "" -#: js/SaveInterface.js:197 -#: js/SaveInterface.js:58 -msgid "No description provided" +#: js/utils/musicutils.js:1125 +#: js/utils/synthutils.js:100 +#.TRANS: musical instrument +msgid "trombone" msgstr "" -#: js/SaveInterface.js:332 -msgid "Your recording is in progress." +#: js/utils/musicutils.js:1126 +#: js/utils/synthutils.js:116 +#.TRANS: polytone synthesizer +msgid "electronic synth" msgstr "" -#: js/SaveInterface.js:401 -#.TRANS: File name prompt for save as Lilypond -msgid "File name" +#: js/utils/musicutils.js:1127 +#: js/utils/synthutils.js:118 +#.TRANS: simple monotone synthesizer +msgid "simple 1" msgstr "" -#: js/SaveInterface.js:403 -#: js/StringHelper.js:39 -#.TRANS: Project title prompt for save as Lilypond -msgid "Project title" +#: js/utils/musicutils.js:1128 +msgid "simple 2" msgstr "" -#: js/SaveInterface.js:405 -#.TRANS: Project title prompt for save as Lilypond -msgid "Project author" +#: js/utils/musicutils.js:1129 +msgid "simple 3" msgstr "" -#: js/SaveInterface.js:407 -#.TRANS: MIDI prompt for save as Lilypond -msgid "Include MIDI output?" +#: js/utils/musicutils.js:1130 +msgid "simple 4" msgstr "" -#: js/SaveInterface.js:409 -#.TRANS: Guitar prompt for save as Lilypond -msgid "Include guitar tablature output?" +#: js/utils/musicutils.js:1131 +#: js/utils/synthutils.js:58 +#: js/blocks/DrumBlocks.js:191 +#.TRANS: white noise synthesizer +msgid "white noise" msgstr "" -#: js/SaveInterface.js:411 -#.TRANS: Lilypond is a scripting language for generating sheet music -msgid "Save as Lilypond" +#: js/utils/musicutils.js:1132 +#: js/utils/synthutils.js:60 +#.TRANS: brown noise synthesizer +msgid "brown noise" msgstr "" -#: js/SaveInterface.js:426 -#: js/EnsembleBlocks.js:75 -#: js/EnsembleBlocks.js:154 -#: js/EnsembleBlocks.js:216 -#: js/EnsembleBlocks.js:302 -#: js/EnsembleBlocks.js:348 -#: js/EnsembleBlocks.js:389 -#: js/EnsembleBlocks.js:441 -#: js/EnsembleBlocks.js:490 -#: js/EnsembleBlocks.js:536 -#: js/EnsembleBlocks.js:583 -#: js/EnsembleBlocks.js:637 -#: js/EnsembleBlocks.js:753 -#: js/EnsembleBlocks.js:840 -#: js/EnsembleBlocks.js:899 -#: js/EnsembleBlocks.js:942 -#: js/EnsembleBlocks.js:1212 -#: js/EnsembleBlocks.js:1280 -#.TRANS: default project author when saving as Lilypond -msgid "Mr. Mouse" +#: js/utils/musicutils.js:1133 +#: js/utils/synthutils.js:62 +#.TRANS: pink noise synthesizer +msgid "pink noise" msgstr "" -#: js/SaveInterface.js:573 -msgid "The Lilypond code is copied to clipboard. You can paste it here: " +#: js/utils/musicutils.js:1135 +#: js/utils/synthutils.js:148 +#: js/widgets/rhythmruler.js:2057 +#: js/widgets/rhythmruler.js:2319 +#.TRANS: musical instrument +msgid "snare drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:50 -#: js/RhythmBlockPaletteBlocks.js:232 -#.TRANS: rhythm block -#.TRANS: translate "rhythm1" as rhythm -msgid "rhythm1" +#: js/utils/musicutils.js:1136 +#: js/utils/synthutils.js:150 +#.TRANS: musical instrument +msgid "kick drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:70 -#: js/RhythmBlockPaletteBlocks.js:251 -#: js/RhythmBlockPaletteBlocks.js:484 -#: js/RhythmBlockPaletteBlocks.js:553 -#: js/RhythmBlockPaletteBlocks.js:874 -msgid "number of notes" +#: js/utils/musicutils.js:1137 +#: js/utils/synthutils.js:152 +#.TRANS: musical instrument +msgid "tom tom" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:126 -msgid "polyphonic rhythm" +#: js/utils/musicutils.js:1138 +#: js/utils/synthutils.js:154 +#.TRANS: musical instrument +msgid "floor tom" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:218 -msgid "The Rhythm block is used to generate rhythm patterns." +#: js/utils/musicutils.js:1139 +#: js/utils/synthutils.js:156 +#.TRANS: musical instrument +msgid "bass drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:279 -msgid "1/64 note" +#: js/utils/musicutils.js:1140 +#: js/utils/synthutils.js:158 +#.TRANS: a drum made from an inverted cup +msgid "cup drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:303 -msgid "1/32 note" +#: js/utils/musicutils.js:1141 +#: js/utils/synthutils.js:160 +#.TRANS: musical instrument +msgid "darbuka drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:331 -msgid "1/16 note" +#: js/utils/musicutils.js:1142 +#: js/utils/synthutils.js:164 +#.TRANS: musical instrument +msgid "hi hat" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:359 -msgid "eighth note" +#: js/utils/musicutils.js:1143 +#: js/utils/synthutils.js:166 +#.TRANS: a small metal bell +msgid "ride bell" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:387 -msgid "quarter note" +#: js/utils/musicutils.js:1144 +#: js/utils/synthutils.js:168 +#.TRANS: musical instrument +msgid "cow bell" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:415 -msgid "half note" +#: js/utils/musicutils.js:1145 +msgid "japanese drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:443 -msgid "whole note" +#: js/utils/musicutils.js:1146 +#: js/utils/synthutils.js:174 +#.TRANS: musical instrument +msgid "japanese bell" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:481 -#: js/RhythmBlockPaletteBlocks.js:550 -#: js/RhythmBlockPaletteBlocks.js:601 -#.TRANS: A tuplet is a note value divided into irregular time values. -msgid "tuplet" +#: js/utils/musicutils.js:1147 +#: js/utils/synthutils.js:170 +#.TRANS: musical instrument +msgid "triangle bell" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:767 -msgid "septuplet" +#: js/utils/musicutils.js:1148 +#: js/utils/synthutils.js:172 +#.TRANS: musical instrument +msgid "finger cymbals" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:795 -msgid "quintuplet" +#: js/utils/musicutils.js:1149 +#: js/utils/synthutils.js:176 +#.TRANS: a musically tuned set of bells +msgid "chime" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:823 -msgid "triplet" +#: js/utils/musicutils.js:1150 +#: js/utils/synthutils.js:178 +#.TRANS: a musical instrument +msgid "gong" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:850 -msgid "simple tuplet" +#: js/utils/musicutils.js:1151 +#: js/utils/synthutils.js:180 +#.TRANS: sound effect +msgid "clang" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:860 -msgid "Tuplets are a collection of notes that get scaled to a specific duration." +#: js/utils/musicutils.js:1152 +#: js/utils/synthutils.js:182 +#.TRANS: sound effect +msgid "crash" msgstr "" -#: js/WidgetBlocks.js:71 -#.TRANS: sound envelope (ADSR) -msgid "envelope" +#: js/utils/musicutils.js:1153 +#: js/utils/synthutils.js:184 +#.TRANS: sound effect +msgid "bottle" msgstr "" -#: js/WidgetBlocks.js:79 -#.TRANS: Attack time is the time taken for initial run-up of level from nil to peak, beginning when the key is first pressed. -msgid "attack" +#: js/utils/musicutils.js:1154 +#: js/utils/synthutils.js:186 +#.TRANS: sound effect +msgid "clap" msgstr "" -#: js/WidgetBlocks.js:81 -#.TRANS: Decay time is the time taken for the subsequent run down from the attack level to the designated sustain level. -msgid "decay" +#: js/utils/musicutils.js:1155 +#: js/utils/synthutils.js:188 +#.TRANS: sound effect +msgid "slap" msgstr "" -#: js/WidgetBlocks.js:83 -#.TRANS: Sustain level is the level during the main sequence of the sound's duration, until the key is released. -msgid "sustain" +#: js/utils/musicutils.js:1156 +#: js/utils/synthutils.js:190 +#.TRANS: sound effect +msgid "splash" msgstr "" -#: js/WidgetBlocks.js:85 -#.TRANS: Release time is the time taken for the level to decay from the sustain level to zero after the key is released. -msgid "release" +#: js/utils/musicutils.js:1157 +#: js/utils/synthutils.js:192 +#.TRANS: sound effect +msgid "bubbles" msgstr "" -#: js/WidgetBlocks.js:96 -msgid "Attack value should be from 0 to 100." +#: js/utils/musicutils.js:1158 +#: js/utils/synthutils.js:194 +#.TRANS: sound effect +msgid "raindrop" msgstr "" -#: js/WidgetBlocks.js:99 -msgid "Decay value should be from 0 to 100." +#: js/utils/musicutils.js:1159 +#: js/utils/synthutils.js:196 +#.TRANS: animal sound effect +msgid "cat" msgstr "" -#: js/WidgetBlocks.js:102 -msgid "Sustain value should be from 0 to 100." +#: js/utils/musicutils.js:1160 +#: js/utils/synthutils.js:198 +#.TRANS: animal sound effect +msgid "cricket" msgstr "" -#: js/WidgetBlocks.js:105 -msgid "Release value should be from 0-100." +#: js/utils/musicutils.js:1161 +#: js/utils/synthutils.js:200 +#.TRANS: animal sound effect +msgid "dog" msgstr "" -#: js/WidgetBlocks.js:121 -msgid "You are adding multiple envelope blocks." +#: js/utils/musicutils.js:1163 +#: js/utils/synthutils.js:102 +#.TRANS: musical instrument +msgid "banjo" msgstr "" -#: js/WidgetBlocks.js:144 -#.TRANS: a filter removes some unwanted components from a signal -msgid "filter" +#: js/utils/musicutils.js:1164 +#: js/utils/synthutils.js:104 +#.TRANS: musical instrument +msgid "koto" msgstr "" -#: js/WidgetBlocks.js:149 -#: js/musicutils.js:706 -#: js/musicutils.js:1105 -#.TRANS: highpass filter -msgid "highpass" +#: js/utils/musicutils.js:1165 +#: js/utils/synthutils.js:106 +#.TRANS: musical instrument +msgid "dulcimer" msgstr "" -#: js/WidgetBlocks.js:152 -#: js/ToneBlocks.js:42 -#: js/timbre.js:1558 -#: js/timbre.js:1808 -#.TRANS: type of filter, e.g., lowpass, highpass, etc. -#.TRANS: there are different types (sine, triangle, square...) of oscillators. -msgid "type" +#: js/utils/musicutils.js:1166 +#: js/utils/synthutils.js:108 +#.TRANS: musical instrument +msgid "electric guitar" msgstr "" -#: js/WidgetBlocks.js:154 -#: js/timbre.js:1818 -#.TRANS: rolloff is the steepness of a change in frequency. -msgid "rolloff" +#: js/utils/musicutils.js:1167 +#: js/utils/synthutils.js:110 +#.TRANS: musical instrument +msgid "bassoon" msgstr "" -#: js/WidgetBlocks.js:155 -#: js/MediaBlocks.js:692 -#: js/temperament.js:382 -#: js/temperament.js:417 -#: js/temperament.js:477 -#: js/temperament.js:485 -#: js/temperament.js:1348 -#: js/timbre.js:1842 -msgid "frequency" +#: js/utils/musicutils.js:1168 +#: js/utils/synthutils.js:112 +#.TRANS: musical instrument +msgid "celeste" msgstr "" -#: js/WidgetBlocks.js:179 -#.TRANS: rolloff is the steepness of a change in frequency. -msgid "Rolloff value should be either -12, -24, -48, or -96 decibels/octave." +#: js/utils/musicutils.js:1170 +#: js/widgets/temperament.js:787 +#.TRANS: musical temperament +msgid "equal" msgstr "" -#: js/WidgetBlocks.js:211 -msgid "The Temperament tool is used to define custom tuning." +#: js/utils/musicutils.js:1172 +#.TRANS: musical temperament +msgid "Pythagorean" msgstr "" -#: js/WidgetBlocks.js:277 -#: js/sampler.js:329 -msgid "Upload a sample and adjust its pitch center." +#: js/utils/musicutils.js:1174 +#.TRANS: musical temperament +msgid "just intonation" msgstr "" -#: js/WidgetBlocks.js:284 -#.TRANS: the speed at music is should be played. -msgid "sampler" +#: js/utils/musicutils.js:1176 +#.TRANS: musical temperament +msgid "meantone" msgstr "" -#: js/WidgetBlocks.js:329 -#: js/WidgetBlocks.js:334 -#: js/IntervalsBlocks.js:928 -#: js/VolumeBlocks.js:411 -#: js/ToneBlocks.js:946 -#: js/VolumeActions.js:218 -#: js/musicutils.js:704 -#: js/musicutils.js:755 -#: js/musicutils.js:798 -#: js/musicutils.js:820 -#: js/musicutils.js:1136 -#: js/synthutils.js:118 -#: js/modewidget.js:919 -#.TRANS: customize voice -msgid "custom" +#: js/utils/musicutils.js:1193 +msgid "major 7th" msgstr "" -#: js/WidgetBlocks.js:432 -msgid "The Meter block opens a tool to select strong beats for the meter." +#: js/utils/musicutils.js:1194 +msgid "minor 7th" msgstr "" -#: js/WidgetBlocks.js:473 -msgid "The oscilloscope block opens a tool to visualize waveforms." +#: js/utils/musicutils.js:1195 +msgid "dominant 7th" msgstr "" -#: js/WidgetBlocks.js:478 -msgid "oscilloscope" +#: js/utils/musicutils.js:1196 +msgid "minor-major 7th" msgstr "" -#: js/WidgetBlocks.js:530 -msgid "The Custom mode block opens a tool to explore musical mode (the spacing of the notes in a scale)." +#: js/utils/musicutils.js:1197 +msgid "fully-diminished 7th" msgstr "" -#: js/WidgetBlocks.js:536 -#.TRANS: musical mode is the pattern of half-steps in an octave, e.g., Major or Minor modes -msgid "custom mode" +#: js/utils/musicutils.js:1198 +msgid "half-diminished 7th" msgstr "" -#: js/WidgetBlocks.js:570 -msgid "The Tempo block opens a metronome to visualize the beat." +#: js/utils/musicutils.js:1557 +#: js/utils/musicutils.js:1569 +msgid "Equal (12EDO)" msgstr "" -#: js/WidgetBlocks.js:617 -msgid "The Arpeggio Widget is used to compose chord sequences." +#: js/utils/musicutils.js:1558 +#: js/utils/musicutils.js:1570 +msgid "5-limit Just Intonation" msgstr "" -#: js/WidgetBlocks.js:623 -#: js/IntervalsBlocks.js:683 -msgid "arpeggio" +#: js/utils/musicutils.js:1559 +#: js/utils/musicutils.js:1571 +msgid "Pythagorean (3-limit JI)" msgstr "" -#: js/WidgetBlocks.js:677 -msgid "The Pitch drum matrix is used to map pitches to drum sounds." +#: js/utils/musicutils.js:1560 +#: js/utils/musicutils.js:1561 +#: js/utils/musicutils.js:1572 +#: js/utils/musicutils.js:1573 +msgid "Meantone" msgstr "" -#: js/WidgetBlocks.js:682 -#.TRANS: makes a mapping between pitches and drum sounds -msgid "pitch-drum mapper" +#: js/utils/musicutils.js:1574 +msgid "Custom" msgstr "" -#: js/WidgetBlocks.js:724 -msgid "You must have at least one pitch block and one drum block in the matrix." +#: js/utils/musicutils.js:5387 +#: js/utils/musicutils.js:5430 +msgid "current" msgstr "" -#: js/WidgetBlocks.js:746 -msgid "The Pitch slider tool to is used to generate pitches at selected frequencies." +#: js/utils/musicutils.js:5390 +#: js/utils/musicutils.js:5421 +msgid "next" msgstr "" -#: js/WidgetBlocks.js:751 -#.TRANS: widget to generate pitches using a slider -msgid "pitch slider" +#: js/utils/musicutils.js:5393 +#: js/utils/musicutils.js:5426 +msgid "previous" msgstr "" -#: js/WidgetBlocks.js:788 -msgid "chromatic keyboard" +#: js/utils/synthutils.js:120 +#.TRANS: simple monotone synthesizer +msgid "simple-2" msgstr "" -#: js/WidgetBlocks.js:815 -#: js/WidgetBlocks.js:874 -#.TRANS: widget to generate pitches using a slider -msgid "music keyboard" +#: js/utils/synthutils.js:122 +#.TRANS: simple monotone synthesizer +msgid "simple-3" msgstr "" -#: js/WidgetBlocks.js:859 -#: js/WidgetBlocks.js:866 -msgid "The Music keyboard block opens a piano keyboard that can be used to create notes." +#: js/utils/synthutils.js:124 +#.TRANS: simple monotone synthesizer +msgid "simple-4" msgstr "" -#: js/WidgetBlocks.js:910 -msgid "The Pitch staircase tool to is used to generate pitches from a given ratio." +#: js/utils/synthutils.js:162 +#.TRANS: musical instrument +msgid "taiko" msgstr "" -#: js/WidgetBlocks.js:917 -#.TRANS: generate a progressive sequence of pitches -msgid "pitch staircase" +#: js/blocks/ActionBlocks.js:58 +msgid "The Return block will return a value from an action." msgstr "" -#: js/WidgetBlocks.js:982 -msgid "The Rhythm Maker block opens a tool to create drum machines." +#: js/blocks/ActionBlocks.js:75 +msgid "return" msgstr "" -#: js/WidgetBlocks.js:1036 -msgid "G major scale" +#: js/blocks/ActionBlocks.js:128 +msgid "The Return to URL block will return a value to a webpage." msgstr "" -#: js/WidgetBlocks.js:1064 -msgid "C major scale" +#: js/blocks/ActionBlocks.js:145 +msgid "return to URL" msgstr "" -#: js/WidgetBlocks.js:1097 -msgid "The Phrase Maker block opens a tool to create musical phrases." +#: js/blocks/ActionBlocks.js:233 +#: js/blocks/ActionBlocks.js:290 +#: js/blocks/ActionBlocks.js:501 +#: js/blocks/ActionBlocks.js:688 +msgid "The Calculate block returns a value calculated by an action." msgstr "" -#: js/WidgetBlocks.js:1104 -#.TRANS: assigns pitch to a sequence of beats to generate a melody -msgid "phrase maker" +#: js/blocks/ActionBlocks.js:251 +#: js/blocks/ActionBlocks.js:517 +#: js/blocks/ActionBlocks.js:707 +msgid "calculate" msgstr "" -#: js/WidgetBlocks.js:1168 -msgid "You must have at least one pitch block and one rhythm block in the matrix." +#: js/blocks/ActionBlocks.js:376 +#: js/blocks/ActionBlocks.js:593 +#: js/blocks/ActionBlocks.js:942 +#: js/blocks/ActionBlocks.js:1389 +#.TRANS: do is the do something or take an action. +msgid "The Do block is used to initiate an action." msgstr "" -#: js/WidgetBlocks.js:1220 -msgid "The Status block opens a tool for inspecting the status of Music Blocks as it is running." +#: js/blocks/ActionBlocks.js:390 +#: js/blocks/ActionBlocks.js:610 +#: js/blocks/ActionBlocks.js:959 +#: js/blocks/ActionBlocks.js:1048 +#: js/blocks/MeterBlocks.js:769 +msgid "do1" msgstr "" -#: js/IntervalsBlocks.js:45 -msgid "set temperament" +#: js/blocks/ActionBlocks.js:390 +#: js/blocks/ActionBlocks.js:610 +#: js/blocks/ActionBlocks.js:959 +#: js/blocks/ActionBlocks.js:1048 +#: js/blocks/FlowBlocks.js:742 +#: js/blocks/FlowBlocks.js:822 +#: js/blocks/MeterBlocks.js:769 +msgid "do" msgstr "" -#: js/IntervalsBlocks.js:63 -#: js/MediaBlocks.js:746 -#: js/PitchBlocks.js:657 -#: js/PitchBlocks.js:933 -#: js/PitchBlocks.js:972 -#: js/PitchBlocks.js:1005 -#: js/PitchBlocks.js:1166 -#: js/PitchBlocks.js:1679 -#: js/PitchBlocks.js:1720 -#: js/PitchBlocks.js:1827 -#: js/ToneBlocks.js:1025 -#.TRANS: adjusts the shift up or down by one octave (twelve half-steps in the interval between two notes, one having twice or half the frequency in Hz of the other.) -msgid "octave" +#: js/blocks/ActionBlocks.js:791 +#: js/blocks/ActionBlocks.js:865 +msgid "The Arg block contains the value of an argument passed to an action." msgstr "" -#: js/IntervalsBlocks.js:99 -msgid "The Temperament name block is used to select a tuning method." +#: js/blocks/ActionBlocks.js:806 +#: js/blocks/ActionBlocks.js:878 +msgid "arg" msgstr "" -#: js/IntervalsBlocks.js:161 -msgid "doubly" +#: js/blocks/ActionBlocks.js:836 +#: js/blocks/ActionBlocks.js:900 +#: js/blocks/ActionBlocks.js:908 +msgid "Invalid argument" msgstr "" -#: js/IntervalsBlocks.js:166 -msgid "The Doubly block will double the size of an interval." +#: js/blocks/ActionBlocks.js:944 +msgid "In the example, it is used with the One of block to choose a random phase." msgstr "" -#: js/IntervalsBlocks.js:262 -msgid "interval number" +#: js/blocks/ActionBlocks.js:1019 +#: js/blocks/ActionBlocks.js:1026 +msgid "The Listen block is used to listen for an event such as a mouse click." msgstr "" -#: js/IntervalsBlocks.js:330 -#.TRANS: measure the distance between two pitches in semi-tones -msgid "semi-tone interval measure" +#: js/blocks/ActionBlocks.js:1028 +msgid "When the event happens, an action is taken." msgstr "" -#: js/IntervalsBlocks.js:397 -#: js/IntervalsBlocks.js:513 -msgid "You must use two pitch blocks when measuring an interval." +#: js/blocks/ActionBlocks.js:1045 +msgid "on" msgstr "" -#: js/IntervalsBlocks.js:439 -msgid "The Scalar interval block measures the distance between two notes in the current key and mode." +#: js/blocks/ActionBlocks.js:1048 +#: js/blocks/ActionBlocks.js:1049 +#: js/blocks/ActionBlocks.js:1153 +msgid "event" msgstr "" -#: js/IntervalsBlocks.js:445 -#.TRANS: measure the distance between two pitches in steps of musical scale -msgid "scalar interval measure" +#: js/blocks/ActionBlocks.js:1133 +msgid "The Broadcast block is used to trigger an event." msgstr "" -#: js/IntervalsBlocks.js:592 -#: js/musicutils.js:637 -#: js/musicutils.js:908 -#.TRANS: perfect is a music term related to intervals -msgid "perfect" +#: js/blocks/ActionBlocks.js:1151 +msgid "broadcast" msgstr "" -#: js/IntervalsBlocks.js:621 -msgid "In the figure, we add sol# to sol." +#: js/blocks/ActionBlocks.js:1208 +msgid "Each Start block is a separate voice." msgstr "" -#: js/IntervalsBlocks.js:627 -#: js/OrnamentBlocks.js:220 -#.TRANS: calculate a relative step between notes based on semi-tones -msgid "semi-tone interval" +#: js/blocks/ActionBlocks.js:1304 +msgid "It is often used for storing a phrase of music that is repeated." msgstr "" -#: js/IntervalsBlocks.js:676 -msgid "The output of the example is: do, mi, sol, sol, ti, mi" +#: js/blocks/ActionBlocks.js:1495 +msgid "define temperament" msgstr "" -#: js/IntervalsBlocks.js:735 -msgid "The Chord block calculates common chords." +#: js/blocks/BooleanBlocks.js:44 +msgid "The Not block is the logical not operator." msgstr "" -#: js/IntervalsBlocks.js:737 -msgid "In the figure, we generate a C-major chord." -msgstr "" +#: js/blocks/BooleanBlocks.js:62 +msgid "not" +msgstr "ibáj" -#: js/IntervalsBlocks.js:742 -msgid "chord" +#: js/blocks/BooleanBlocks.js:134 +msgid "The And block is the logical and operator." msgstr "" -#: js/IntervalsBlocks.js:794 -msgid "The Ratio Interval block calculates an interval based on a ratio." -msgstr "" +#: js/blocks/BooleanBlocks.js:152 +msgid "and" +msgstr "y" -#: js/IntervalsBlocks.js:799 -msgid "ratio interval" +#: js/blocks/BooleanBlocks.js:218 +msgid "The Or block is the logical or operator." msgstr "" -#: js/IntervalsBlocks.js:868 -msgid "In the figure, we add la to sol." -msgstr "" +#: js/blocks/BooleanBlocks.js:236 +msgid "or" +msgstr "o" -#: js/IntervalsBlocks.js:924 -#.TRANS: define a custom mode -msgid "define mode" +#: js/blocks/BooleanBlocks.js:302 +msgid "The XOR block is the logical XOR operator." msgstr "" -#: js/IntervalsBlocks.js:977 -msgid "movable Do" +#: js/blocks/BooleanBlocks.js:320 +msgid "xor" msgstr "" -#: js/IntervalsBlocks.js:1028 -#.TRANS: mode length is the number of notes in the mode, e.g., 7 for major and minor scales; 12 for chromatic scales -msgid "mode length" +#: js/blocks/BooleanBlocks.js:808 +msgid "The Equal block returns True if the two numbers are equal." msgstr "" -#: js/IntervalsBlocks.js:1037 -msgid "The Mode length block is the number of notes in the current scale." +#: js/blocks/BooleanBlocks.js:909 +msgid "The Not-equal-to block returns True if the two numbers are not equal to each other." msgstr "" -#: js/IntervalsBlocks.js:1039 -msgid "Most Western scales have 7 notes." +#: js/blocks/BooleanBlocks.js:1008 +msgid "The Boolean block is used to specify true or false." msgstr "" -#: js/IntervalsBlocks.js:1088 -#.TRANS: the mode in music is 'major', 'minor', etc. -msgid "current mode" +#: js/blocks/BoxesBlocks.js:53 +#: js/blocks/BoxesBlocks.js:59 +msgid "The Add-to block is used to add to the value stored in a box." msgstr "" -#: js/IntervalsBlocks.js:1141 -#.TRANS: the key is a group of pitches with which a music composition is created -msgid "current key" +#: js/blocks/BoxesBlocks.js:61 +msgid "It can also be used with other blocks such as Color and Pen size." msgstr "" -#: js/IntervalsBlocks.js:1193 -#: js/IntervalsBlocks.js:1238 -#.TRANS: set the key and mode, e.g. C Major -msgid "set key" +#: js/blocks/BoxesBlocks.js:73 +msgid "add" msgstr "" -#: js/IntervalsBlocks.js:1247 -#: js/IntervalsBlocks.js:1253 -msgid "The Set key block is used to set the key and mode," +#: js/blocks/BoxesBlocks.js:75 +#: js/widgets/temperament.js:857 +msgid "to" msgstr "" -#: js/IntervalsBlocks.js:1253 -msgid "eg C Major" +#: js/blocks/BoxesBlocks.js:75 +#: js/blocks/BoxesBlocks.js:595 +#: js/blocks/HeapBlocks.js:544 +msgid "value1" msgstr "" -#: js/IntervalsBlocks.js:1266 -#: js/DictBlocks.js:215 -#: js/DictBlocks.js:216 -#: js/DictBlocks.js:289 -#: js/DictBlocks.js:290 -#: js/DictBlocks.js:357 -#: js/DictBlocks.js:430 -#: js/DictBlocks.js:431 -#.TRANS: key, e.g., C in C Major -msgid "key" +#: js/blocks/BoxesBlocks.js:118 +msgid "Block does not support incrementing." msgstr "" -#: js/ActionBlocks.js:58 -msgid "The Return block will return a value from an action." +#: js/blocks/BoxesBlocks.js:152 +msgid "The Add-1-to block adds one to the value stored in a box." msgstr "" -#: js/ActionBlocks.js:75 -msgid "return" +#: js/blocks/BoxesBlocks.js:163 +msgid "add 1 to" msgstr "" -#: js/ActionBlocks.js:128 -msgid "The Return to URL block will return a value to a webpage." +#: js/blocks/BoxesBlocks.js:211 +msgid "The Subtract-1-from block subtracts one from the value stored in a box." msgstr "" -#: js/ActionBlocks.js:145 -msgid "return to URL" +#: js/blocks/BoxesBlocks.js:222 +msgid "subtract 1 from" msgstr "" -#: js/ActionBlocks.js:233 -#: js/ActionBlocks.js:290 -#: js/ActionBlocks.js:501 -#: js/ActionBlocks.js:688 -msgid "The Calculate block returns a value calculated by an action." +#: js/blocks/BoxesBlocks.js:270 +#: js/blocks/BoxesBlocks.js:387 +msgid "The Box block returns the value stored in a box." msgstr "" -#: js/ActionBlocks.js:251 -#: js/ActionBlocks.js:517 -#: js/ActionBlocks.js:707 -msgid "calculate" +#: js/blocks/BoxesBlocks.js:500 +#: js/blocks/BoxesBlocks.js:576 +msgid "The Store in block will store a value in a box." msgstr "" -#: js/ActionBlocks.js:376 -#: js/ActionBlocks.js:593 -#: js/ActionBlocks.js:942 -#: js/ActionBlocks.js:1389 -#.TRANS: do is the do something or take an action. -msgid "The Do block is used to initiate an action." +#: js/blocks/BoxesBlocks.js:595 +#: js/blocks/EnsembleBlocks.js:391 +#: js/blocks/EnsembleBlocks.js:402 +msgid "name1" msgstr "" -#: js/ActionBlocks.js:390 -#: js/ActionBlocks.js:610 -#: js/ActionBlocks.js:959 -#: js/ActionBlocks.js:1048 -#: js/MeterBlocks.js:769 -msgid "do1" +#: js/blocks/BoxesBlocks.js:652 +msgid "The Box2 block returns the value stored in Box2." msgstr "" -#: js/ActionBlocks.js:390 -#: js/ActionBlocks.js:610 -#: js/ActionBlocks.js:959 -#: js/ActionBlocks.js:1048 -#: js/FlowBlocks.js:742 -#: js/FlowBlocks.js:822 -#: js/MeterBlocks.js:769 -msgid "do" +#: js/blocks/BoxesBlocks.js:703 +msgid "The Store in Box2 block is used to store a value in Box2." msgstr "" -#: js/ActionBlocks.js:791 -#: js/ActionBlocks.js:865 -msgid "The Arg block contains the value of an argument passed to an action." +#: js/blocks/BoxesBlocks.js:715 +msgid "store in box2" msgstr "" -#: js/ActionBlocks.js:806 -#: js/ActionBlocks.js:878 -msgid "arg" +#: js/blocks/BoxesBlocks.js:761 +msgid "The Box1 block returns the value stored in Box1." msgstr "" -#: js/ActionBlocks.js:836 -#: js/ActionBlocks.js:900 -#: js/ActionBlocks.js:908 -msgid "Invalid argument" +#: js/blocks/BoxesBlocks.js:812 +msgid "The Store in Box1 block is used to store a value in Box1." msgstr "" -#: js/ActionBlocks.js:944 -msgid "In the example, it is used with the One of block to choose a random phase." +#: js/blocks/BoxesBlocks.js:826 +msgid "store in box1" msgstr "" -#: js/ActionBlocks.js:1019 -#: js/ActionBlocks.js:1026 -msgid "The Listen block is used to listen for an event such as a mouse click." +#: js/blocks/DictBlocks.js:77 +msgid "show dictionary" msgstr "" -#: js/ActionBlocks.js:1028 -msgid "When the event happens, an action is taken." +#: js/blocks/DictBlocks.js:80 +#: js/blocks/DictBlocks.js:145 +#: js/blocks/DictBlocks.js:216 +#: js/blocks/DictBlocks.js:290 +#: js/blocks/ProgramBlocks.js:396 +#: js/blocks/ProgramBlocks.js:501 +#: js/blocks/ProgramBlocks.js:664 +msgid "My Dictionary" msgstr "" -#: js/ActionBlocks.js:1045 -msgid "on" +#: js/blocks/DictBlocks.js:129 +msgid "The Dictionary block returns a dictionary." msgstr "" -#: js/ActionBlocks.js:1048 -#: js/ActionBlocks.js:1049 -#: js/ActionBlocks.js:1153 -msgid "event" +#: js/blocks/DictBlocks.js:197 +#: js/blocks/DictBlocks.js:339 +msgid "The Get-dict block returns a value in the dictionary for a specified key." msgstr "" -#: js/ActionBlocks.js:1133 -msgid "The Broadcast block is used to trigger an event." +#: js/blocks/DictBlocks.js:212 +#: js/blocks/DictBlocks.js:354 +#.TRANS: retrieve a value from the dictionary with a given key +msgid "get value" msgstr "" -#: js/ActionBlocks.js:1151 -msgid "broadcast" +#: js/blocks/DictBlocks.js:215 +#: js/blocks/DictBlocks.js:216 +#: js/blocks/DictBlocks.js:289 +#: js/blocks/DictBlocks.js:290 +#: js/blocks/DictBlocks.js:357 +#: js/blocks/DictBlocks.js:430 +#: js/blocks/DictBlocks.js:431 +msgid "key2" msgstr "" -#: js/ActionBlocks.js:1208 -msgid "Each Start block is a separate voice." +#: js/blocks/DictBlocks.js:215 +#: js/blocks/DictBlocks.js:216 +#: js/blocks/DictBlocks.js:289 +#: js/blocks/DictBlocks.js:290 +#: js/blocks/DictBlocks.js:357 +#: js/blocks/DictBlocks.js:430 +#: js/blocks/DictBlocks.js:431 +#: js/blocks/IntervalsBlocks.js:1462 +#.TRANS: key, e.g., C in C Major +msgid "key" msgstr "" -#: js/ActionBlocks.js:1304 -msgid "It is often used for storing a phrase of music that is repeated." +#: js/blocks/DictBlocks.js:271 +#: js/blocks/DictBlocks.js:411 +msgid "The Set-dict block sets a value in the dictionary for a specified key." msgstr "" -#: js/ActionBlocks.js:1495 -msgid "define temperament" +#: js/blocks/DictBlocks.js:286 +#: js/blocks/DictBlocks.js:427 +#.TRANS: set a value in the dictionary for a given key +msgid "set value" msgstr "" -#: js/EnsembleBlocks.js:66 +#: js/blocks/EnsembleBlocks.js:66 msgid "mouse index heap" msgstr "" -#: js/EnsembleBlocks.js:68 +#: js/blocks/EnsembleBlocks.js:68 msgid "The Mouse index heap block returns a value in the heap at a specified location for a specified mouse." msgstr "" -#: js/EnsembleBlocks.js:77 -#: js/EnsembleBlocks.js:1080 +#: js/blocks/EnsembleBlocks.js:77 +#: js/blocks/EnsembleBlocks.js:1080 msgid "mouse name" msgstr "" -#: js/EnsembleBlocks.js:77 -#: js/EnsembleBlocks.js:92 -#: js/HeapBlocks.js:544 +#: js/blocks/EnsembleBlocks.js:77 +#: js/blocks/EnsembleBlocks.js:92 +#: js/blocks/HeapBlocks.js:544 #.TRANS: value1 is a numeric value (JAPANESE ONLY) msgid "index" msgstr "" -#: js/EnsembleBlocks.js:80 +#: js/blocks/EnsembleBlocks.js:80 msgid "turtle index heap" msgstr "" -#: js/EnsembleBlocks.js:82 +#: js/blocks/EnsembleBlocks.js:82 msgid "The Turtle index heap block returns a value in the heap at a specified location for a specified turtle." msgstr "" -#: js/EnsembleBlocks.js:90 -#: js/EnsembleBlocks.js:167 -#: js/EnsembleBlocks.js:230 -#: js/EnsembleBlocks.js:316 -#: js/EnsembleBlocks.js:362 -#: js/EnsembleBlocks.js:400 -#: js/EnsembleBlocks.js:454 -#: js/EnsembleBlocks.js:504 -#: js/EnsembleBlocks.js:550 -#: js/EnsembleBlocks.js:597 -#: js/EnsembleBlocks.js:651 -#: js/EnsembleBlocks.js:763 -#: js/EnsembleBlocks.js:854 -#: js/EnsembleBlocks.js:915 -#: js/EnsembleBlocks.js:955 -#: js/EnsembleBlocks.js:1219 -#: js/EnsembleBlocks.js:1293 +#: js/blocks/EnsembleBlocks.js:90 +#: js/blocks/EnsembleBlocks.js:167 +#: js/blocks/EnsembleBlocks.js:230 +#: js/blocks/EnsembleBlocks.js:316 +#: js/blocks/EnsembleBlocks.js:362 +#: js/blocks/EnsembleBlocks.js:400 +#: js/blocks/EnsembleBlocks.js:454 +#: js/blocks/EnsembleBlocks.js:504 +#: js/blocks/EnsembleBlocks.js:550 +#: js/blocks/EnsembleBlocks.js:597 +#: js/blocks/EnsembleBlocks.js:651 +#: js/blocks/EnsembleBlocks.js:763 +#: js/blocks/EnsembleBlocks.js:854 +#: js/blocks/EnsembleBlocks.js:915 +#: js/blocks/EnsembleBlocks.js:955 +#: js/blocks/EnsembleBlocks.js:1219 +#: js/blocks/EnsembleBlocks.js:1293 #.TRANS: Yertle is the name of a turtle. msgid "Yertle" msgstr "" -#: js/EnsembleBlocks.js:92 -#: js/EnsembleBlocks.js:1089 +#: js/blocks/EnsembleBlocks.js:92 +#: js/blocks/EnsembleBlocks.js:1089 msgid "turtle name" msgstr "" -#: js/EnsembleBlocks.js:122 -#: js/EnsembleBlocks.js:1197 -#: js/HeapBlocks.js:474 -#: js/HeapBlocks.js:572 +#: js/blocks/EnsembleBlocks.js:122 +#: js/blocks/EnsembleBlocks.js:1197 +#: js/blocks/HeapBlocks.js:474 +#: js/blocks/HeapBlocks.js:572 msgid "Index must be > 0." msgstr "" -#: js/EnsembleBlocks.js:127 -#: js/HeapBlocks.js:479 -#: js/HeapBlocks.js:577 +#: js/blocks/EnsembleBlocks.js:127 +#: js/blocks/HeapBlocks.js:479 +#: js/blocks/HeapBlocks.js:577 msgid "Maximum heap size is 1000." msgstr "" -#: js/EnsembleBlocks.js:145 +#: js/blocks/EnsembleBlocks.js:145 msgid "stop mouse" msgstr "" -#: js/EnsembleBlocks.js:147 +#: js/blocks/EnsembleBlocks.js:147 msgid "The Stop mouse block stops the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:158 +#: js/blocks/EnsembleBlocks.js:158 msgid "stop turtle" msgstr "" -#: js/EnsembleBlocks.js:160 +#: js/blocks/EnsembleBlocks.js:160 msgid "The Stop turtle block stops the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:184 -#: js/EnsembleBlocks.js:247 -#: js/EnsembleBlocks.js:413 -#: js/EnsembleBlocks.js:468 -#: js/EnsembleBlocks.js:706 -#: js/EnsembleBlocks.js:808 -#: js/EnsembleBlocks.js:870 -#: js/EnsembleBlocks.js:1190 -#: js/EnsembleBlocks.js:1253 +#: js/blocks/EnsembleBlocks.js:184 +#: js/blocks/EnsembleBlocks.js:247 +#: js/blocks/EnsembleBlocks.js:413 +#: js/blocks/EnsembleBlocks.js:468 +#: js/blocks/EnsembleBlocks.js:706 +#: js/blocks/EnsembleBlocks.js:808 +#: js/blocks/EnsembleBlocks.js:870 +#: js/blocks/EnsembleBlocks.js:1190 +#: js/blocks/EnsembleBlocks.js:1253 msgid "Cannot find mouse" msgstr "" -#: js/EnsembleBlocks.js:186 -#: js/EnsembleBlocks.js:249 -#: js/EnsembleBlocks.js:415 -#: js/EnsembleBlocks.js:470 -#: js/EnsembleBlocks.js:708 -#: js/EnsembleBlocks.js:810 -#: js/EnsembleBlocks.js:872 -#: js/EnsembleBlocks.js:1192 -#: js/EnsembleBlocks.js:1255 +#: js/blocks/EnsembleBlocks.js:186 +#: js/blocks/EnsembleBlocks.js:249 +#: js/blocks/EnsembleBlocks.js:415 +#: js/blocks/EnsembleBlocks.js:470 +#: js/blocks/EnsembleBlocks.js:708 +#: js/blocks/EnsembleBlocks.js:810 +#: js/blocks/EnsembleBlocks.js:872 +#: js/blocks/EnsembleBlocks.js:1192 +#: js/blocks/EnsembleBlocks.js:1255 msgid "Cannot find turtle" msgstr "" -#: js/EnsembleBlocks.js:206 +#: js/blocks/EnsembleBlocks.js:206 msgid "start mouse" msgstr "" -#: js/EnsembleBlocks.js:209 +#: js/blocks/EnsembleBlocks.js:209 msgid "The Start mouse block starts the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:220 +#: js/blocks/EnsembleBlocks.js:220 msgid "start turtle" msgstr "" -#: js/EnsembleBlocks.js:223 +#: js/blocks/EnsembleBlocks.js:223 msgid "The Start turtle block starts the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:256 +#: js/blocks/EnsembleBlocks.js:256 msgid "Mouse is already running." msgstr "" -#: js/EnsembleBlocks.js:258 +#: js/blocks/EnsembleBlocks.js:258 msgid "Turtle is already running." msgstr "" -#: js/EnsembleBlocks.js:282 +#: js/blocks/EnsembleBlocks.js:282 msgid "Cannot find start block" msgstr "" -#: js/EnsembleBlocks.js:292 +#: js/blocks/EnsembleBlocks.js:292 #.TRANS: pen color for this mouse msgid "mouse color" msgstr "" -#: js/EnsembleBlocks.js:294 +#: js/blocks/EnsembleBlocks.js:294 msgid "The Mouse color block returns the pen color of the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:306 +#: js/blocks/EnsembleBlocks.js:306 #.TRANS: pen color for this turtle msgid "turtle color" msgstr "" -#: js/EnsembleBlocks.js:308 +#: js/blocks/EnsembleBlocks.js:308 msgid "The Turtle color block returns the pen color of the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:338 +#: js/blocks/EnsembleBlocks.js:338 #.TRANS: heading (compass direction) for this mouse msgid "mouse heading" msgstr "" -#: js/EnsembleBlocks.js:340 +#: js/blocks/EnsembleBlocks.js:340 msgid "The Mouse heading block returns the heading of the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:352 +#: js/blocks/EnsembleBlocks.js:352 #.TRANS: heading (compass direction) for this turtle msgid "turtle heading" msgstr "" -#: js/EnsembleBlocks.js:354 +#: js/blocks/EnsembleBlocks.js:354 msgid "The Turtle heading block returns the heading of the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:384 -#: js/EnsembleBlocks.js:439 +#: js/blocks/EnsembleBlocks.js:384 +#: js/blocks/EnsembleBlocks.js:439 #.TRANS: set xy position for this mouse msgid "set mouse" msgstr "" -#: js/EnsembleBlocks.js:391 -#: js/EnsembleBlocks.js:402 -#: js/BoxesBlocks.js:595 -msgid "name1" -msgstr "" - -#: js/EnsembleBlocks.js:391 -#: js/EnsembleBlocks.js:402 -#: js/ProgramBlocks.js:881 -#: js/GraphicsBlocks.js:235 -#: js/GraphicsBlocks.js:313 -#: js/GraphicsBlocks.js:436 -#: js/GraphicsBlocks.js:487 -#: js/GraphicsBlocks.js:534 -#: js/GraphicsBlocks.js:750 +#: js/blocks/EnsembleBlocks.js:391 +#: js/blocks/EnsembleBlocks.js:402 +#: js/blocks/GraphicsBlocks.js:235 +#: js/blocks/GraphicsBlocks.js:313 +#: js/blocks/GraphicsBlocks.js:436 +#: js/blocks/GraphicsBlocks.js:487 +#: js/blocks/GraphicsBlocks.js:534 +#: js/blocks/GraphicsBlocks.js:750 +#: js/blocks/ProgramBlocks.js:881 msgid "x" msgstr "x" -#: js/EnsembleBlocks.js:391 -#: js/EnsembleBlocks.js:402 -#: js/ProgramBlocks.js:881 -#: js/GraphicsBlocks.js:149 -#: js/GraphicsBlocks.js:313 -#: js/GraphicsBlocks.js:436 -#: js/GraphicsBlocks.js:487 -#: js/GraphicsBlocks.js:534 -#: js/GraphicsBlocks.js:750 +#: js/blocks/EnsembleBlocks.js:391 +#: js/blocks/EnsembleBlocks.js:402 +#: js/blocks/GraphicsBlocks.js:149 +#: js/blocks/GraphicsBlocks.js:313 +#: js/blocks/GraphicsBlocks.js:436 +#: js/blocks/GraphicsBlocks.js:487 +#: js/blocks/GraphicsBlocks.js:534 +#: js/blocks/GraphicsBlocks.js:750 +#: js/blocks/ProgramBlocks.js:881 msgid "y" msgstr "y" -#: js/EnsembleBlocks.js:395 -#: js/EnsembleBlocks.js:452 +#: js/blocks/EnsembleBlocks.js:395 +#: js/blocks/EnsembleBlocks.js:452 #.TRANS: set xy position for this turtle msgid "set turtle" msgstr "" -#: js/EnsembleBlocks.js:433 +#: js/blocks/EnsembleBlocks.js:433 msgid "The Set mouse block sends a stack of blocks to be run by the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:446 +#: js/blocks/EnsembleBlocks.js:446 msgid "The Set turtle block sends a stack of blocks to be run by the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:480 +#: js/blocks/EnsembleBlocks.js:480 #.TRANS: y position for this mouse msgid "mouse y" msgstr "chuchbixtaláb y" -#: js/EnsembleBlocks.js:482 +#: js/blocks/EnsembleBlocks.js:482 msgid "The Y mouse block returns the Y position of the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:494 +#: js/blocks/EnsembleBlocks.js:494 #.TRANS: y position for this turtle msgid "turtle y" msgstr "" -#: js/EnsembleBlocks.js:496 +#: js/blocks/EnsembleBlocks.js:496 msgid "The Y turtle block returns the Y position of the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:526 +#: js/blocks/EnsembleBlocks.js:526 #.TRANS: x position for this mouse msgid "mouse x" msgstr "chuchbixtaláb x" -#: js/EnsembleBlocks.js:528 +#: js/blocks/EnsembleBlocks.js:528 msgid "The X mouse block returns the X position of the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:540 +#: js/blocks/EnsembleBlocks.js:540 #.TRANS: x position for this turtle msgid "turtle x" msgstr "" -#: js/EnsembleBlocks.js:542 +#: js/blocks/EnsembleBlocks.js:542 msgid "The X turtle block returns the X position of the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:573 +#: js/blocks/EnsembleBlocks.js:573 #.TRANS: notes played by this mouse msgid "mouse notes played" msgstr "" -#: js/EnsembleBlocks.js:575 +#: js/blocks/EnsembleBlocks.js:575 msgid "The Mouse elapse notes block returns the number of notes played by the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:587 +#: js/blocks/EnsembleBlocks.js:587 #.TRANS: notes played by this turtle msgid "turtle notes played" msgstr "" -#: js/EnsembleBlocks.js:589 +#: js/blocks/EnsembleBlocks.js:589 msgid "The Turtle elapse notes block returns the number of notes played by the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:627 +#: js/blocks/EnsembleBlocks.js:627 #.TRANS: convert current note for this turtle to piano key (1-88) msgid "mouse pitch number" msgstr "" -#: js/EnsembleBlocks.js:629 +#: js/blocks/EnsembleBlocks.js:629 msgid "The Mouse pitch block returns the current pitch number being played by the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:641 +#: js/blocks/EnsembleBlocks.js:641 #.TRANS: convert current note for this turtle to piano key (1-88) msgid "turtle pitch number" msgstr "" -#: js/EnsembleBlocks.js:643 -msgid "The Turrle pitch block returns the current pitch number being played by the specified turtle." +#: js/blocks/EnsembleBlocks.js:643 +msgid "The Turtle pitch block returns the current pitch number being played by the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:747 -#: js/EnsembleBlocks.js:819 +#: js/blocks/EnsembleBlocks.js:747 +#: js/blocks/EnsembleBlocks.js:819 #.TRANS: note value is the duration of the note played by this mouse msgid "mouse note value" msgstr "" -#: js/EnsembleBlocks.js:757 +#: js/blocks/EnsembleBlocks.js:757 #.TRANS: note value is the duration of the note played by this turtle msgid "turtle note value" msgstr "" -#: js/EnsembleBlocks.js:830 +#: js/blocks/EnsembleBlocks.js:830 #.TRANS: sync is short for synchronization msgid "mouse sync" msgstr "" -#: js/EnsembleBlocks.js:832 +#: js/blocks/EnsembleBlocks.js:832 msgid "The Mouse sync block aligns the beat count between mice." msgstr "" -#: js/EnsembleBlocks.js:844 +#: js/blocks/EnsembleBlocks.js:844 #.TRANS: sync is short for synchronization msgid "turtle sync" msgstr "" -#: js/EnsembleBlocks.js:846 +#: js/blocks/EnsembleBlocks.js:846 msgid "The Turtle sync block aligns the beat count between turtles." msgstr "" -#: js/EnsembleBlocks.js:887 +#: js/blocks/EnsembleBlocks.js:887 msgid "The Found mouse block will return true if the specified mouse can be found." msgstr "" -#: js/EnsembleBlocks.js:893 +#: js/blocks/EnsembleBlocks.js:893 msgid "found mouse" msgstr "" -#: js/EnsembleBlocks.js:903 +#: js/blocks/EnsembleBlocks.js:903 msgid "The Found turtle block will return true if the specified turtle can be found." msgstr "" -#: js/EnsembleBlocks.js:909 +#: js/blocks/EnsembleBlocks.js:909 msgid "found turtle" msgstr "" -#: js/EnsembleBlocks.js:932 +#: js/blocks/EnsembleBlocks.js:932 msgid "new mouse" msgstr "" -#: js/EnsembleBlocks.js:934 +#: js/blocks/EnsembleBlocks.js:934 msgid "The New mouse block will create a new mouse." msgstr "" -#: js/EnsembleBlocks.js:945 +#: js/blocks/EnsembleBlocks.js:945 msgid "new turtle" msgstr "" -#: js/EnsembleBlocks.js:947 +#: js/blocks/EnsembleBlocks.js:947 msgid "The New turtle block will create a new turtle." msgstr "" -#: js/EnsembleBlocks.js:1011 +#: js/blocks/EnsembleBlocks.js:1011 msgid "set mouse color" msgstr "" -#: js/EnsembleBlocks.js:1014 +#: js/blocks/EnsembleBlocks.js:1014 msgid "The Set-mouse-color block is used to set the color of a mouse." msgstr "" -#: js/EnsembleBlocks.js:1020 +#: js/blocks/EnsembleBlocks.js:1020 msgid "set turtle color" msgstr "" -#: js/EnsembleBlocks.js:1023 +#: js/blocks/EnsembleBlocks.js:1023 msgid "The Set-turtle-color block is used to set the color of a turtle." msgstr "" -#: js/EnsembleBlocks.js:1083 +#: js/blocks/EnsembleBlocks.js:1083 msgid "The Mouse-name block returns the name of a mouse." msgstr "" -#: js/EnsembleBlocks.js:1092 +#: js/blocks/EnsembleBlocks.js:1092 msgid "The Turtle-name block returns the name of a turtle." msgstr "" -#: js/EnsembleBlocks.js:1115 +#: js/blocks/EnsembleBlocks.js:1115 msgid "mouse count" msgstr "" -#: js/EnsembleBlocks.js:1118 +#: js/blocks/EnsembleBlocks.js:1118 msgid "The Mouse-count block returns the number of mice." msgstr "" -#: js/EnsembleBlocks.js:1124 +#: js/blocks/EnsembleBlocks.js:1124 msgid "turtle count" msgstr "" -#: js/EnsembleBlocks.js:1127 +#: js/blocks/EnsembleBlocks.js:1127 msgid "The Turtle-count block returns the number of turtles." msgstr "" -#: js/EnsembleBlocks.js:1149 +#: js/blocks/EnsembleBlocks.js:1149 msgid "nth mouse name" msgstr "" -#: js/EnsembleBlocks.js:1152 +#: js/blocks/EnsembleBlocks.js:1152 msgid "The Nth-Mouse name block returns the name of the nth mouse." msgstr "" -#: js/EnsembleBlocks.js:1158 +#: js/blocks/EnsembleBlocks.js:1158 msgid "nth turtle name" msgstr "" -#: js/EnsembleBlocks.js:1161 -msgid "The Nth-Turtle name block returns the name of the nth turtle." -msgstr "" - -#: js/EnsembleBlocks.js:1205 -#: js/EnsembleBlocks.js:1265 -msgid "set name" -msgstr "" - -#: js/EnsembleBlocks.js:1214 -#: js/EnsembleBlocks.js:1221 -msgid "source" -msgstr "" - -#: js/EnsembleBlocks.js:1214 -#: js/EnsembleBlocks.js:1221 -msgid "target" -msgstr "" - -#: js/EnsembleBlocks.js:1271 -msgid "The Set-name block is used to name a mouse." -msgstr "" - -#: js/EnsembleBlocks.js:1284 -msgid "The Set-name block is used to name a turtle." -msgstr "" - -#: js/BooleanBlocks.js:44 -msgid "The Not block is the logical not operator." -msgstr "" - -#: js/BooleanBlocks.js:62 -msgid "not" -msgstr "ibáj" - -#: js/BooleanBlocks.js:134 -msgid "The And block is the logical and operator." -msgstr "" - -#: js/BooleanBlocks.js:152 -msgid "and" -msgstr "y" - -#: js/BooleanBlocks.js:218 -msgid "The Or block is the logical or operator." -msgstr "" - -#: js/BooleanBlocks.js:236 -msgid "or" -msgstr "o" - -#: js/BooleanBlocks.js:302 -msgid "The XOR block is the logical XOR operator." -msgstr "" - -#: js/BooleanBlocks.js:320 -msgid "xor" -msgstr "" - -#: js/BooleanBlocks.js:808 -msgid "The Equal block returns True if the two numbers are equal." -msgstr "" - -#: js/BooleanBlocks.js:909 -msgid "The Not-equal-to block returns True if the two numbers are not equal to each other." -msgstr "" - -#: js/BooleanBlocks.js:1008 -msgid "The Boolean block is used to specify true or false." -msgstr "" - -#: js/MediaBlocks.js:35 -#.TRANS: right side of the screen -msgid "right (screen)" -msgstr "" - -#: js/MediaBlocks.js:45 -#: js/MediaBlocks.js:56 -msgid "The Right block returns the position of the right of the canvas." +#: js/blocks/EnsembleBlocks.js:1161 +msgid "The Nth-Turtle name block returns the name of the nth turtle." msgstr "" -#: js/MediaBlocks.js:97 -#.TRANS: left side of the screen -msgid "left (screen)" +#: js/blocks/EnsembleBlocks.js:1205 +#: js/blocks/EnsembleBlocks.js:1265 +msgid "set name" msgstr "" -#: js/MediaBlocks.js:107 -#: js/MediaBlocks.js:118 -msgid "The Left block returns the position of the left of the canvas." +#: js/blocks/EnsembleBlocks.js:1214 +#: js/blocks/EnsembleBlocks.js:1221 +msgid "source" msgstr "" -#: js/MediaBlocks.js:158 -msgid "top (screen)" +#: js/blocks/EnsembleBlocks.js:1214 +#: js/blocks/EnsembleBlocks.js:1221 +msgid "target" msgstr "" -#: js/MediaBlocks.js:168 -#: js/MediaBlocks.js:179 -msgid "The Top block returns the position of the top of the canvas." +#: js/blocks/EnsembleBlocks.js:1271 +msgid "The Set-name block is used to name a mouse." msgstr "" -#: js/MediaBlocks.js:219 -msgid "bottom (screen)" +#: js/blocks/EnsembleBlocks.js:1284 +msgid "The Set-name block is used to name a turtle." msgstr "" -#: js/MediaBlocks.js:229 -#: js/MediaBlocks.js:240 -msgid "The Bottom block returns the position of the bottom of the canvas." +#: js/blocks/ExtrasBlocks.js:33 +msgid "fraction" msgstr "" -#: js/MediaBlocks.js:282 -msgid "width" +#: js/blocks/ExtrasBlocks.js:36 +msgid "Convert a float to a fraction" msgstr "" -#: js/MediaBlocks.js:291 -msgid "The Width block returns the width of the canvas." +#: js/blocks/ExtrasBlocks.js:93 +msgid "save as ABC" msgstr "" -#: js/MediaBlocks.js:325 -msgid "height" +#: js/blocks/ExtrasBlocks.js:96 +#: js/blocks/ExtrasBlocks.js:132 +#: js/blocks/ExtrasBlocks.js:168 +msgid "title" msgstr "" -#: js/MediaBlocks.js:334 -msgid "The Height block returns the height of the canvas." +#: js/blocks/ExtrasBlocks.js:129 +msgid "save as Lilypond" msgstr "" -#: js/MediaBlocks.js:369 -#.TRANS: stops playback of an audio recording -msgid "stop play" +#: js/blocks/ExtrasBlocks.js:165 +msgid "save as SVG" msgstr "" -#: js/MediaBlocks.js:404 -#.TRANS: Erases the images and text -msgid "erase media" +#: js/blocks/ExtrasBlocks.js:216 +msgid "no background" msgstr "" -#: js/MediaBlocks.js:409 -msgid "The Erase Media block erases text and images." +#: js/blocks/ExtrasBlocks.js:219 +msgid "The No background block eliminates the background from the saved SVG output." msgstr "" -#: js/MediaBlocks.js:439 -#.TRANS: play an audio recording -msgid "play back" +#: js/blocks/ExtrasBlocks.js:247 +msgid "show blocks" +msgstr "ka tejwa'mejdha' an kwene' t'ojlab" + +#: js/blocks/ExtrasBlocks.js:249 +msgid "The Show blocks block shows the blocks." msgstr "" -#: js/MediaBlocks.js:487 -msgid "speak" -msgstr "kaw" +#: js/blocks/ExtrasBlocks.js:274 +msgid "hide blocks" +msgstr "tsina' an kwene' t'ojláb" -#: js/MediaBlocks.js:495 -msgid "The Speak block outputs to the text-to-speech synthesizer" +#: js/blocks/ExtrasBlocks.js:276 +msgid "The Hide blocks block hides the blocks." msgstr "" -#: js/MediaBlocks.js:546 -msgid "camera" +#: js/blocks/ExtrasBlocks.js:305 +#: js/blocks/ExtrasBlocks.js:338 +msgid "The Space block is used to add space between blocks." msgstr "" -#: js/MediaBlocks.js:551 -msgid "The Camera block connects a webcam to the Show block." -msgstr "" +#: js/blocks/ExtrasBlocks.js:376 +msgid "wait" +msgstr "aychíj" -#: js/MediaBlocks.js:574 -msgid "video" +#: js/blocks/ExtrasBlocks.js:379 +msgid "The Wait block pauses the program for a specified number of seconds." msgstr "" -#: js/MediaBlocks.js:579 -msgid "The Video block selects video for use with the Show block." -msgstr "" +#: js/blocks/ExtrasBlocks.js:433 +#: plugins/facebook.rtp:30 +msgid "comment" +msgstr "káw" -#: js/MediaBlocks.js:607 -msgid "The Open file block opens a file for use with the Show block." -msgstr "" +#: js/blocks/ExtrasBlocks.js:469 +msgid "print" +msgstr "ka wat'ba' ti úw" -#: js/MediaBlocks.js:645 -msgid "stop media" +#: js/blocks/ExtrasBlocks.js:476 +msgid "The Print block displays text at the top of the screen." msgstr "" -#: js/MediaBlocks.js:650 -msgid "The Stop media block stops audio or video playback." +#: js/blocks/ExtrasBlocks.js:582 +msgid "display grid" msgstr "" -#: js/MediaBlocks.js:679 -#: js/PitchBlocks.js:1539 -#: js/phrasemaker.js:822 -#: js/musickeyboard.js:1654 -#.TRANS: a measure of frequency: one cycle per second -msgid "hertz" +#: js/blocks/ExtrasBlocks.js:587 +msgid "The Display Grid Block changes the grid type" msgstr "" -#: js/MediaBlocks.js:692 -msgid "duration (ms)" +#: js/blocks/ExtrasBlocks.js:689 +#: js/blocks/ExtrasBlocks.js:708 +#: js/blocks/ExtrasBlocks.js:731 +#: js/blocks/ExtrasBlocks.js:754 +#: js/blocks/ExtrasBlocks.js:772 +#: js/blocks/ExtrasBlocks.js:791 +#: js/blocks/ExtrasBlocks.js:810 +#: js/blocks/ExtrasBlocks.js:829 +msgid "unknown" msgstr "" -#: js/MediaBlocks.js:728 -#.TRANS: translate a note into hertz, e.g., A4 -> 440HZ -msgid "note to frequency" +#: js/blocks/FlowBlocks.js:41 +msgid "The Backward block runs code in reverse order (Musical retrograde)." msgstr "" -#: js/MediaBlocks.js:736 -msgid "The To frequency block converts a pitch name and octave to Hertz." +#: js/blocks/FlowBlocks.js:48 +msgid "backward" msgstr "" -#: js/MediaBlocks.js:746 -#: js/PitchBlocks.js:656 -#: js/PitchBlocks.js:932 -#: js/PitchBlocks.js:1827 -#.TRANS: name2 is name as in name of pitch (JAPANESE ONLY) -msgid "name2" +#: js/blocks/FlowBlocks.js:124 +msgid "The Duplicate block will run each block multiple times." msgstr "" -#: js/MediaBlocks.js:812 -msgid "The Avatar block is used to change the appearance of the mouse." +#: js/blocks/FlowBlocks.js:136 +msgid "duplicate" msgstr "" -#: js/MediaBlocks.js:819 -msgid "The Avatar block is used to change the appearance of the turtle." +#: js/blocks/FlowBlocks.js:334 +msgid "The Default block is used inside of a Switch to define the default action." msgstr "" -#: js/MediaBlocks.js:831 -#: js/MediaBlocks.js:891 -#.TRANS: a media object -msgid "size" +#: js/blocks/FlowBlocks.js:342 +msgid "default" msgstr "" -#: js/MediaBlocks.js:831 -msgid "image" -msgstr "t'iplab" - -#: js/MediaBlocks.js:880 -msgid "The Show block is used to display text or images on the canvas." +#: js/blocks/FlowBlocks.js:361 +#: js/blocks/FlowBlocks.js:418 +msgid "The Case Block must be used inside of a Switch Block." msgstr "" -#: js/MediaBlocks.js:888 -#.TRANS: show1 is show as in display an image or text on the screen. -msgid "show1" +#: js/blocks/FlowBlocks.js:389 +msgid "The Case block is used inside of a Switch to define matches." msgstr "" -#: js/MediaBlocks.js:891 -msgid "obj" +#: js/blocks/FlowBlocks.js:397 +msgid "case" msgstr "" -#: js/MediaBlocks.js:938 -msgid "The Media block is used to import an image." +#: js/blocks/FlowBlocks.js:446 +msgid "The Switch block will run the code in the matching Case." msgstr "" -#: js/MediaBlocks.js:973 -msgid "The Text block holds a text string." +#: js/blocks/FlowBlocks.js:454 +msgid "switch" msgstr "" -#: js/ProgramBlocks.js:33 -msgid "The Load-heap-from-app block loads the heap from a web page." +#: js/blocks/FlowBlocks.js:595 +msgid "The Stop block will stop a loop" msgstr "" -#: js/ProgramBlocks.js:44 -#.TRANS: load the heap contents from a URL -msgid "load heap from App" +#: js/blocks/FlowBlocks.js:597 +msgid "Forever, Repeat, While, or Until." msgstr "" -#: js/ProgramBlocks.js:95 -msgid "Error parsing JSON data:" -msgstr "" +#: js/blocks/FlowBlocks.js:604 +#: js/widgets/timbre.js:417 +#: js/widgets/timbre.js:419 +#: js/widgets/musickeyboard.js:819 +#: js/widgets/musickeyboard.js:821 +#: js/widgets/phrasemaker.js:4202 +#: plugins/rodi.rtp:29 +#: plugins/rodi.rtp:73 +#: plugins/rodi.rtp:413 +msgid "stop" +msgstr "kuba'" -#: js/ProgramBlocks.js:100 -msgid "404: Page not found" +#: js/blocks/FlowBlocks.js:653 +msgid "The Waitfor block will wait until the condition is true." msgstr "" -#: js/ProgramBlocks.js:133 -msgid "The Save-heap-to-app block saves the heap to a web page." +#: js/blocks/FlowBlocks.js:661 +msgid "wait for" msgstr "" -#: js/ProgramBlocks.js:144 -#.TRANS: save the heap contents to a URL -msgid "save heap to App" +#: js/blocks/FlowBlocks.js:732 +msgid "The Until block will repeat until the condition is true." msgstr "" -#: js/ProgramBlocks.js:189 -msgid "Cannot find a valid heap for" -msgstr "" +#: js/blocks/FlowBlocks.js:740 +msgid "until" +msgstr "ma ti" -#: js/ProgramBlocks.js:206 -msgid "The Load-heap block loads the heap from a file." +#: js/blocks/FlowBlocks.js:742 +#: js/blocks/FlowBlocks.js:822 +msgid "do2" msgstr "" -#: js/ProgramBlocks.js:217 -#.TRANS: load the heap from a file -msgid "load heap" +#: js/blocks/FlowBlocks.js:812 +msgid "The While block will repeat while the condition is true." msgstr "" -#: js/ProgramBlocks.js:270 -msgid "The file you selected does not contain a valid heap." -msgstr "" +#: js/blocks/FlowBlocks.js:820 +msgid "while" +msgstr "tamchál" -#: js/ProgramBlocks.js:275 -msgid "The loadHeap block needs a loadFile block." +#: js/blocks/FlowBlocks.js:903 +#: js/blocks/FlowBlocks.js:968 +#: js/blocks/FlowBlocks.js:979 +msgid "In this example if the mouse button is pressed a snare drum will play." msgstr "" -#: js/ProgramBlocks.js:291 -msgid "The Set-heap block loads the heap." -msgstr "" +#: js/blocks/FlowBlocks.js:925 +#: js/blocks/FlowBlocks.js:988 +msgid "if" +msgstr "anits" -#: js/ProgramBlocks.js:299 -#: js/HeapBlocks.js:539 -#.TRANS: load the heap from a JSON encoding -msgid "set heap" -msgstr "" +#: js/blocks/FlowBlocks.js:927 +#: js/blocks/FlowBlocks.js:990 +msgid "then" +msgstr "tam" -#: js/ProgramBlocks.js:340 -msgid "The block you selected does not contain a valid heap." -msgstr "" +#: js/blocks/FlowBlocks.js:927 +msgid "else" +msgstr "max ibáj" -#: js/ProgramBlocks.js:343 -msgid "The Set heap block needs a heap." +#: js/blocks/FlowBlocks.js:1025 +msgid "The Forever block will repeat the contained blocks forever." msgstr "" -#: js/ProgramBlocks.js:360 -msgid "The Load-dictionary block loads a dictionary from a file." -msgstr "" +#: js/blocks/FlowBlocks.js:1037 +msgid "forever" +msgstr "abal ets'ey" -#: js/ProgramBlocks.js:372 -#.TRANS: load a dictionary from a file -msgid "load dictionary" +#: js/blocks/FlowBlocks.js:1073 +msgid "The Repeat block will repeat the contained blocks." msgstr "" -#: js/ProgramBlocks.js:390 -#: js/ProgramBlocks.js:658 -#: js/ToneBlocks.js:1025 -msgid "file" +#: js/blocks/FlowBlocks.js:1075 +msgid "In this example the note will be played 4 times." msgstr "" -#: js/ProgramBlocks.js:396 -#: js/ProgramBlocks.js:501 -#: js/ProgramBlocks.js:664 -#: js/DictBlocks.js:80 -#: js/DictBlocks.js:145 -#: js/DictBlocks.js:216 -#: js/DictBlocks.js:290 -msgid "My Dictionary" -msgstr "" +#: js/blocks/FlowBlocks.js:1083 +msgid "repeat" +msgstr "ka wichk'ow" -#: js/ProgramBlocks.js:444 -msgid "The file you selected does not contain a valid dictionary." +#: js/blocks/FlowBlocks.js:1123 +msgid "duplicate factor" msgstr "" -#: js/ProgramBlocks.js:449 -msgid "The load dictionary block needs a load file block." +#: js/blocks/HeapBlocks.js:49 +msgid "The Heap block returns the heap." msgstr "" -#: js/ProgramBlocks.js:466 -msgid "The Set-dictionary block loads a dictionary." -msgstr "" +#: js/blocks/HeapBlocks.js:133 +msgid "show heap" +msgstr "ka tejwa'méjdha' an t'i'nél" -#: js/ProgramBlocks.js:477 -#.TRANS: load a dictionary from a JSON -msgid "set dictionary" +#: js/blocks/HeapBlocks.js:181 +msgid "The Heap-length block returns the length of the heap." msgstr "" -#: js/ProgramBlocks.js:546 -msgid "The block you selected does not contain a valid dictionary." +#: js/blocks/HeapBlocks.js:195 +msgid "heap length" msgstr "" -#: js/ProgramBlocks.js:550 -msgid "The set dictionary block needs a dictionary." +#: js/blocks/HeapBlocks.js:254 +msgid "The Heap-empty? block returns true if the heap is empty." msgstr "" -#: js/ProgramBlocks.js:567 -msgid "The Save-heap block saves the heap to a file." +#: js/blocks/HeapBlocks.js:268 +#.TRANS: Is the heap empty? +msgid "heap empty?" msgstr "" -#: js/ProgramBlocks.js:578 -#.TRANS: save the heap to a file -msgid "save heap" +#: js/blocks/HeapBlocks.js:317 +msgid "The Empty-heap block empties the heap." msgstr "" -#: js/ProgramBlocks.js:629 -msgid "The Save-dictionary block saves a dictionary to a file." +#: js/blocks/HeapBlocks.js:327 +#: js/blocks/HeapBlocks.js:647 +#.TRANS: empty the heap +msgid "empty heap" +msgstr "ka jolk'ow an t'i'nél" + +#: js/blocks/HeapBlocks.js:371 +msgid "The Reverse-heap block reverses the order of the heap." msgstr "" -#: js/ProgramBlocks.js:640 -#.TRANS: save a dictionary to a file -msgid "save dictionary" +#: js/blocks/HeapBlocks.js:384 +#.TRANS: reverse the order of the heap +msgid "reverse heap" msgstr "" -#: js/ProgramBlocks.js:720 -msgid "The Open palette block opens a palette." +#: js/blocks/HeapBlocks.js:428 +msgid "The Index-heap block returns a value in the heap at a specified location." msgstr "" -#: js/ProgramBlocks.js:727 -msgid "open palette" +#: js/blocks/HeapBlocks.js:443 +#.TRANS: retrieve a value from the heap at index position in the heap +msgid "index heap" msgstr "" -#: js/ProgramBlocks.js:785 -msgid "The Delete block block removes a block." +#: js/blocks/HeapBlocks.js:523 +msgid "The Set-heap entry block sets a value in he heap at the specified location." msgstr "" -#: js/ProgramBlocks.js:797 -#.TRANS: Move this block to the trash. -msgid "delete block" +#: js/blocks/HeapBlocks.js:539 +#: js/blocks/ProgramBlocks.js:299 +#.TRANS: load the heap from a JSON encoding +msgid "set heap" msgstr "" -#: js/ProgramBlocks.js:861 -msgid "The Move block block moves a block." +#: js/blocks/HeapBlocks.js:619 +msgid "The Pop block removes the value at the top of the heap." msgstr "" -#: js/ProgramBlocks.js:869 -#.TRANS: Move the position of a block on the screen. -msgid "move block" +#: js/blocks/HeapBlocks.js:633 +#.TRANS: pop a value off the top of the heap +msgid "pop" +msgstr "kaldha'" + +#: js/blocks/HeapBlocks.js:680 +msgid "The Push block adds a value to the top of the heap." msgstr "" -#: js/ProgramBlocks.js:881 -#: js/ProgramBlocks.js:1048 -msgid "block number" +#: js/blocks/HeapBlocks.js:696 +#.TRANS: push a value onto the top of the heap +msgid "push" +msgstr "nixa'" + +#: js/blocks/IntervalsBlocks.js:45 +msgid "set temperament" msgstr "" -#: js/ProgramBlocks.js:935 -#.TRANS: Run program beginning at this block. -msgid "run block" +#: js/blocks/IntervalsBlocks.js:63 +#: js/blocks/MediaBlocks.js:746 +#: js/blocks/PitchBlocks.js:657 +#: js/blocks/PitchBlocks.js:935 +#: js/blocks/PitchBlocks.js:974 +#: js/blocks/PitchBlocks.js:1007 +#: js/blocks/PitchBlocks.js:1194 +#: js/blocks/PitchBlocks.js:1717 +#: js/blocks/PitchBlocks.js:1758 +#: js/blocks/PitchBlocks.js:1866 +#: js/blocks/ToneBlocks.js:1025 +#: js/turtleactions/IntervalsActions.js:114 +#.TRANS: adjusts the shift up or down by one octave (twelve half-steps in the interval between two notes, one having twice or half the frequency in Hz of the other.) +msgid "octave" msgstr "" -#: js/ProgramBlocks.js:1025 -msgid "The Dock block block connections two blocks." +#: js/blocks/IntervalsBlocks.js:99 +msgid "The Temperament name block is used to select a tuning method." msgstr "" -#: js/ProgramBlocks.js:1036 -#.TRANS: We can connect a block to another block. -msgid "connect blocks" +#: js/blocks/IntervalsBlocks.js:161 +msgid "doubly" msgstr "" -#: js/ProgramBlocks.js:1048 -msgid "target block" +#: js/blocks/IntervalsBlocks.js:166 +msgid "The Doubly block will double the size of an interval." msgstr "" -#: js/ProgramBlocks.js:1048 -msgid "connection number" +#: js/blocks/IntervalsBlocks.js:262 +msgid "interval number" msgstr "" -#: js/ProgramBlocks.js:1140 -msgid "The Make block block creates a new block." +#: js/blocks/IntervalsBlocks.js:317 +msgid "current interval" msgstr "" -#: js/ProgramBlocks.js:1152 -#.TRANS: Create a new block -msgid "make block" +#: js/blocks/IntervalsBlocks.js:387 +#.TRANS: measure the distance between two pitches in semi-tones +msgid "semi-tone interval measure" msgstr "" -#: js/ProgramBlocks.js:1186 -#: js/ProgramBlocks.js:1227 -#: js/RhythmBlocks.js:1128 -#: js/PitchBlocks.js:972 -#: js/PitchBlocks.js:1005 -#: js/temperament.js:340 -#: js/temperament.js:362 -#: js/temperament.js:372 -#: js/temperament.js:484 -#: js/status.js:190 -#: plugins/rodi.rtp:192 -#.TRANS: a musical note consisting of pitch and duration -msgid "note" +#: js/blocks/IntervalsBlocks.js:454 +#: js/blocks/IntervalsBlocks.js:570 +msgid "You must use two pitch blocks when measuring an interval." msgstr "" -#: js/ProgramBlocks.js:1285 -msgid "Cannot find block" +#: js/blocks/IntervalsBlocks.js:496 +msgid "The Scalar interval block measures the distance between two notes in the current key and mode." msgstr "" -#: js/ProgramBlocks.js:1304 -#: js/ProgramBlocks.js:1313 -msgid "Warning: block argument type mismatch" +#: js/blocks/IntervalsBlocks.js:502 +#.TRANS: measure the distance between two pitches in steps of musical scale +msgid "scalar interval measure" msgstr "" -#: js/ProgramBlocks.js:1347 -msgid "The Open project block is used to open a project from a web page." +#: js/blocks/IntervalsBlocks.js:678 +msgid "In the figure, we add sol# to sol." msgstr "" -#: js/ProgramBlocks.js:1357 -msgid "open project" +#: js/blocks/IntervalsBlocks.js:684 +#: js/blocks/OrnamentBlocks.js:220 +#.TRANS: calculate a relative step between notes based on semi-tones +msgid "semi-tone interval" msgstr "" -#: js/ProgramBlocks.js:1410 -msgid "Please enter a valid URL." +#: js/blocks/IntervalsBlocks.js:733 +msgid "The output of the example is: do, mi, sol, sol, ti, mi" msgstr "" -#: js/DrumBlocks.js:59 -msgid "The Noise name block is used to select a noise synthesizer." +#: js/blocks/IntervalsBlocks.js:740 +#: js/blocks/WidgetBlocks.js:768 +msgid "arpeggio" msgstr "" -#: js/DrumBlocks.js:102 -msgid "The Drum name block is used to select a drum." +#: js/blocks/IntervalsBlocks.js:931 +msgid "The Chord block calculates common chords." msgstr "" -#: js/DrumBlocks.js:146 -msgid "The Effects name block is used to select a sound effect." +#: js/blocks/IntervalsBlocks.js:933 +msgid "In the figure, we generate a C-major chord." msgstr "" -#: js/DrumBlocks.js:163 -msgid "noise" +#: js/blocks/IntervalsBlocks.js:938 +msgid "chord" msgstr "" -#: js/DrumBlocks.js:177 -msgid "The Play noise block will generate white, pink, or brown noise." +#: js/blocks/IntervalsBlocks.js:990 +msgid "The Ratio Interval block calculates an interval based on a ratio." msgstr "" -#: js/DrumBlocks.js:191 -#: js/musicutils.js:752 -#: js/synthutils.js:47 -#.TRANS: white noise synthesizer -msgid "white noise" +#: js/blocks/IntervalsBlocks.js:995 +msgid "ratio interval" msgstr "" -#: js/DrumBlocks.js:326 -msgid "Replace every instance of a pitch with a drum sound." +#: js/blocks/IntervalsBlocks.js:1064 +msgid "In the figure, we add la to sol." msgstr "" -#: js/DrumBlocks.js:337 -#.TRANS: map a pitch to a drum sound -msgid "map pitch to drum" +#: js/blocks/IntervalsBlocks.js:1120 +#.TRANS: define a custom mode +msgid "define mode" msgstr "" -#: js/DrumBlocks.js:404 -msgid "In the example above, a kick drum sound will be played instead of sol." +#: js/blocks/IntervalsBlocks.js:1173 +msgid "movable Do" msgstr "" -#: js/DrumBlocks.js:416 -#.TRANS: set the current drum sound for playback -msgid "set drum" +#: js/blocks/IntervalsBlocks.js:1224 +#.TRANS: mode length is the number of notes in the mode, e.g., 7 for major and minor scales; 12 for chromatic scales +msgid "mode length" msgstr "" -#: js/DrumBlocks.js:460 -msgid "sound effect" +#: js/blocks/IntervalsBlocks.js:1233 +msgid "The Mode length block is the number of notes in the current scale." msgstr "" -#: js/DrumBlocks.js:498 -msgid "You can use multiple Drum blocks within a Note block." +#: js/blocks/IntervalsBlocks.js:1235 +msgid "Most Western scales have 7 notes." msgstr "" -#: js/RhythmBlocks.js:182 -#: js/RhythmBlocks.js:1086 -#: js/RhythmBlocks.js:1162 -msgid "Note value must be greater than 0." +#: js/blocks/IntervalsBlocks.js:1284 +#.TRANS: the mode in music is 'major', 'minor', etc. +msgid "current mode" msgstr "" -#: js/RhythmBlocks.js:215 -#: js/RhythmBlocks.js:278 -#: js/RhythmBlocks.js:350 -#.TRANS: swing is a rhythmic variation that emphasises the offbeat -msgid "swing" +#: js/blocks/IntervalsBlocks.js:1337 +#.TRANS: the key is a group of pitches with which a music composition is created +msgid "current key" msgstr "" -#: js/RhythmBlocks.js:355 -#.TRANS: the amount to shift to the offbeat note -msgid "swing value" +#: js/blocks/IntervalsBlocks.js:1389 +#: js/blocks/IntervalsBlocks.js:1434 +#.TRANS: set the key and mode, e.g. C Major +msgid "set key" msgstr "" -#: js/RhythmBlocks.js:419 -msgid "The Skip notes block will cause notes to be skipped." +#: js/blocks/IntervalsBlocks.js:1443 +#: js/blocks/IntervalsBlocks.js:1449 +msgid "The Set key block is used to set the key and mode," msgstr "" -#: js/RhythmBlocks.js:427 -#.TRANS: substitute rests on notes being skipped -msgid "skip notes" +#: js/blocks/IntervalsBlocks.js:1449 +msgid "eg C Major" msgstr "" -#: js/RhythmBlocks.js:489 -#.TRANS: speed up note duration by some factor, e.g. convert 1/4 to 1/8 notes by using a factor of 2 -msgid "multiply note value" +#: js/blocks/MediaBlocks.js:35 +#.TRANS: right side of the screen +msgid "right (screen)" msgstr "" -#: js/RhythmBlocks.js:542 -msgid "The Tie block works on pairs of notes, combining them into one note." +#: js/blocks/MediaBlocks.js:45 +#: js/blocks/MediaBlocks.js:56 +msgid "The Right block returns the position of the right of the canvas." msgstr "" -#: js/RhythmBlocks.js:550 -#.TRANS: tie notes together into one longer note -msgid "tie" +#: js/blocks/MediaBlocks.js:97 +#.TRANS: left side of the screen +msgid "left (screen)" msgstr "" -#: js/RhythmBlocks.js:591 -#: js/RhythmBlocks.js:671 -#.TRANS: a dotted note is played for 1.5x its value, e.g., 1/8. --> 3/16 -msgid "dot" +#: js/blocks/MediaBlocks.js:107 +#: js/blocks/MediaBlocks.js:118 +msgid "The Left block returns the position of the left of the canvas." msgstr "" -#: js/RhythmBlocks.js:619 -#: js/RhythmActions.js:221 -msgid "An argument of -1 results in a note value of 0." +#: js/blocks/MediaBlocks.js:158 +msgid "top (screen)" msgstr "" -#: js/RhythmBlocks.js:661 -msgid "The Dot block extends the duration of a note by 50%." +#: js/blocks/MediaBlocks.js:168 +#: js/blocks/MediaBlocks.js:179 +msgid "The Top block returns the position of the top of the canvas." msgstr "" -#: js/RhythmBlocks.js:663 -msgid "Eg a dotted quarter note will play for 3/8 (1/4 + 1/8) of a beat." +#: js/blocks/MediaBlocks.js:219 +msgid "bottom (screen)" msgstr "" -#: js/RhythmBlocks.js:765 -#.TRANS: Japanese only: note value block for drum -msgid "note value drum" +#: js/blocks/MediaBlocks.js:229 +#: js/blocks/MediaBlocks.js:240 +msgid "The Bottom block returns the position of the bottom of the canvas." msgstr "" -#: js/RhythmBlocks.js:829 -msgid "392 hertz" +#: js/blocks/MediaBlocks.js:282 +msgid "width" msgstr "" -#: js/RhythmBlocks.js:1119 -msgid "The Note block is a container for one or more Pitch blocks." +#: js/blocks/MediaBlocks.js:291 +msgid "The Width block returns the width of the canvas." msgstr "" -#: js/RhythmBlocks.js:1121 -msgid "The Note block specifies the duration (note value) of its contents." +#: js/blocks/MediaBlocks.js:325 +msgid "height" msgstr "" -#: js/RhythmBlocks.js:1130 -msgid "value2" +#: js/blocks/MediaBlocks.js:334 +msgid "The Height block returns the height of the canvas." msgstr "" -#: js/RhythmBlocks.js:1200 -msgid "define frequency" +#: js/blocks/MediaBlocks.js:369 +#.TRANS: stops playback of an audio recording +msgid "stop play" msgstr "" -#: js/RhythmBlocks.js:1218 -#: js/temperament.js:650 -#: js/temperament.js:1421 -msgid "octave space" +#: js/blocks/MediaBlocks.js:404 +#.TRANS: Erases the images and text +msgid "erase media" msgstr "" -#: js/NumberBlocks.js:28 -msgid "The Int block returns an integer." +#: js/blocks/MediaBlocks.js:409 +msgid "The Erase Media block erases text and images." msgstr "" -#: js/NumberBlocks.js:34 -msgid "int" +#: js/blocks/MediaBlocks.js:439 +#.TRANS: play an audio recording +msgid "play back" msgstr "" -#: js/NumberBlocks.js:73 -msgid "The Mod block returns the remainder from a division." -msgstr "" +#: js/blocks/MediaBlocks.js:487 +msgid "speak" +msgstr "kaw" -#: js/NumberBlocks.js:79 -msgid "mod" -msgstr "mod" +#: js/blocks/MediaBlocks.js:495 +msgid "The Speak block outputs to the text-to-speech synthesizer" +msgstr "" -#: js/NumberBlocks.js:123 -msgid "The Power block calculates a power function." +#: js/blocks/MediaBlocks.js:546 +msgid "camera" msgstr "" -#: js/NumberBlocks.js:178 -msgid "The Sqrt block returns the square root." +#: js/blocks/MediaBlocks.js:551 +msgid "The Camera block connects a webcam to the Show block." msgstr "" -#: js/NumberBlocks.js:184 -msgid "sqrt" +#: js/blocks/MediaBlocks.js:574 +msgid "video" msgstr "" -#: js/NumberBlocks.js:230 -msgid "The Abs block returns the absolute value." +#: js/blocks/MediaBlocks.js:579 +msgid "The Video block selects video for use with the Show block." msgstr "" -#: js/NumberBlocks.js:236 -msgid "abs" +#: js/blocks/MediaBlocks.js:607 +msgid "The Open file block opens a file for use with the Show block." msgstr "" -#: js/NumberBlocks.js:277 -msgid "The Distance block returns the distance between two points. For example, between the mouse and the center of the screen." +#: js/blocks/MediaBlocks.js:645 +msgid "stop media" msgstr "" -#: js/NumberBlocks.js:283 -#: plugins/rodi.rtp:310 -msgid "distance" +#: js/blocks/MediaBlocks.js:650 +msgid "The Stop media block stops audio or video playback." msgstr "" -#: js/NumberBlocks.js:343 -msgid "The Divide block is used to divide." +#: js/blocks/MediaBlocks.js:679 +#: js/blocks/PitchBlocks.js:1577 +#: js/widgets/musickeyboard.js:1936 +#: js/widgets/phrasemaker.js:1037 +#.TRANS: a measure of frequency: one cycle per second +msgid "hertz" msgstr "" -#: js/NumberBlocks.js:411 -msgid "The Multiply block is used to multiply." +#: js/blocks/MediaBlocks.js:692 +#: js/blocks/WidgetBlocks.js:182 +#: js/widgets/temperament.js:506 +#: js/widgets/temperament.js:546 +#: js/widgets/temperament.js:610 +#: js/widgets/temperament.js:618 +#: js/widgets/temperament.js:1505 +#: js/widgets/timbre.js:1842 +msgid "frequency" msgstr "" -#: js/NumberBlocks.js:554 -msgid "The Minus block is used to subtract." +#: js/blocks/MediaBlocks.js:692 +msgid "duration (ms)" msgstr "" -#: js/NumberBlocks.js:647 -msgid "The Plus block is used to add." +#: js/blocks/MediaBlocks.js:728 +#.TRANS: translate a note into hertz, e.g., A4 -> 440HZ +msgid "note to frequency" msgstr "" -#: js/NumberBlocks.js:773 -msgid "The One-of block returns one of two choices." +#: js/blocks/MediaBlocks.js:736 +msgid "The To frequency block converts a pitch name and octave to Hertz." msgstr "" -#: js/NumberBlocks.js:780 -#: js/PitchBlocks.js:616 -msgid "one of" +#: js/blocks/MediaBlocks.js:746 +#: js/blocks/PitchBlocks.js:656 +#: js/blocks/PitchBlocks.js:934 +#: js/blocks/PitchBlocks.js:1866 +#.TRANS: name2 is name as in name of pitch (JAPANESE ONLY) +msgid "name2" msgstr "" -#: js/NumberBlocks.js:782 -msgid "this" +#: js/blocks/MediaBlocks.js:812 +msgid "The Avatar block is used to change the appearance of the mouse." msgstr "" -#: js/NumberBlocks.js:782 -msgid "that" +#: js/blocks/MediaBlocks.js:819 +msgid "The Avatar block is used to change the appearance of the turtle." msgstr "" -#: js/NumberBlocks.js:837 -msgid "The Random block returns a random number." +#: js/blocks/MediaBlocks.js:831 +#: js/blocks/MediaBlocks.js:891 +#.TRANS: a media object +msgid "size" msgstr "" -#: js/NumberBlocks.js:844 -msgid "random" -msgstr "yab aykadh" +#: js/blocks/MediaBlocks.js:831 +msgid "image" +msgstr "t'iplab" -#: js/NumberBlocks.js:846 -msgid "min" -msgstr "min" +#: js/blocks/MediaBlocks.js:880 +msgid "The Show block is used to display text or images on the canvas." +msgstr "" -#: js/NumberBlocks.js:846 -msgid "max" -msgstr "max" +#: js/blocks/MediaBlocks.js:888 +#.TRANS: show1 is show as in display an image or text on the screen. +msgid "show1" +msgstr "" -#: js/NumberBlocks.js:910 -msgid "The Number block holds a number." +#: js/blocks/MediaBlocks.js:891 +msgid "obj" msgstr "" -#: js/BoxesBlocks.js:53 -#: js/BoxesBlocks.js:59 -msgid "The Add-to block is used to add to the value stored in a box." +#: js/blocks/MediaBlocks.js:938 +msgid "The Media block is used to import an image." msgstr "" -#: js/BoxesBlocks.js:61 -msgid "It can also be used with other blocks such as Color and Pen size." +#: js/blocks/MediaBlocks.js:973 +msgid "The Text block holds a text string." msgstr "" -#: js/BoxesBlocks.js:73 -msgid "add" +#: js/blocks/MeterBlocks.js:34 +#.TRANS: musical meter (time signature), e.g., 4:4 +msgid "current meter" msgstr "" -#: js/BoxesBlocks.js:75 -#: js/temperament.js:716 -msgid "to" +#: js/blocks/MeterBlocks.js:85 +#.TRANS: number of beats per minute +msgid "beat factor" msgstr "" -#: js/BoxesBlocks.js:75 -#: js/BoxesBlocks.js:595 -#: js/HeapBlocks.js:544 -msgid "value1" +#: js/blocks/MeterBlocks.js:161 +msgid "The Beats per minute block returns the current beats per minute." msgstr "" -#: js/BoxesBlocks.js:118 -msgid "Block does not support incrementing." +#: js/blocks/MeterBlocks.js:169 +#: js/widgets/status.js:152 +#.TRANS: number of beats played per minute +msgid "beats per minute2" msgstr "" -#: js/BoxesBlocks.js:152 -msgid "The Add-1-to block adds one to the value stored in a box." +#: js/blocks/MeterBlocks.js:169 +#: js/blocks/MeterBlocks.js:1056 +#: js/blocks/MeterBlocks.js:1133 +#: js/blocks/MeterBlocks.js:1211 +#.TRANS: sets tempo by defining a beat and beats per minute +msgid "beats per minute" msgstr "" -#: js/BoxesBlocks.js:163 -msgid "add 1 to" +#: js/blocks/MeterBlocks.js:233 +#.TRANS: count of current musical measure in meter +msgid "measure count" msgstr "" -#: js/BoxesBlocks.js:211 -msgid "The Subtract-1-from block subtracts one from the value stored in a box." +#: js/blocks/MeterBlocks.js:241 +msgid "The Measure count block returns the current measure." msgstr "" -#: js/BoxesBlocks.js:222 -msgid "subtract 1 from" +#: js/blocks/MeterBlocks.js:290 +#.TRANS: count of current beat in the meter +msgid "beat count" msgstr "" -#: js/BoxesBlocks.js:270 -#: js/BoxesBlocks.js:387 -msgid "The Box block returns the value stored in a box." +#: js/blocks/MeterBlocks.js:300 +#: js/blocks/MeterBlocks.js:311 +#: js/blocks/MeterBlocks.js:565 +#: js/blocks/MeterBlocks.js:576 +msgid "The Beat count block is the number of the current beat," msgstr "" -#: js/BoxesBlocks.js:500 -#: js/BoxesBlocks.js:576 -msgid "The Store in block will store a value in a box." +#: js/blocks/MeterBlocks.js:313 +#: js/blocks/MeterBlocks.js:578 +msgid "eg 1, 2, 3, or 4." msgstr "" -#: js/BoxesBlocks.js:652 -msgid "The Box2 block returns the value stored in Box2." +#: js/blocks/MeterBlocks.js:368 +#.TRANS: count the number of notes +msgid "sum note values" msgstr "" -#: js/BoxesBlocks.js:703 -msgid "The Store in Box2 block is used to store a value in Box2." +#: js/blocks/MeterBlocks.js:376 +#: js/blocks/MeterBlocks.js:440 +msgid "The Note counter block can be used to count the number of contained notes." msgstr "" -#: js/BoxesBlocks.js:715 -msgid "store in box2" +#: js/blocks/MeterBlocks.js:432 +#.TRANS: count the number of notes +msgid "note counter" msgstr "" -#: js/BoxesBlocks.js:761 -msgid "The Box1 block returns the value stored in Box1." +#: js/blocks/MeterBlocks.js:496 +#.TRANS: number of whole notes that have been played +msgid "whole notes played" msgstr "" -#: js/BoxesBlocks.js:812 -msgid "The Store in Box1 block is used to store a value in Box1." +#: js/blocks/MeterBlocks.js:505 +msgid "The Whole notes played block returns the total number of whole notes played." msgstr "" -#: js/BoxesBlocks.js:826 -msgid "store in box1" +#: js/blocks/MeterBlocks.js:555 +#: js/turtleactions/DictActions.js:83 +#.TRANS: number of notes that have been played +msgid "notes played" msgstr "" -#: js/HeapBlocks.js:49 -msgid "The Heap block returns the heap." +#: js/blocks/MeterBlocks.js:653 +msgid "The No clock block decouples the notes from the master clock." msgstr "" -#: js/HeapBlocks.js:133 -msgid "show heap" -msgstr "ka tejwa'méjdha' an t'i'nél" +#: js/blocks/MeterBlocks.js:661 +#.TRANS: don't lock notes to master clock +msgid "no clock" +msgstr "" -#: js/HeapBlocks.js:181 -msgid "The Heap-length block returns the length of the heap." +#: js/blocks/MeterBlocks.js:700 +msgid "on weak beat do" msgstr "" -#: js/HeapBlocks.js:195 -msgid "heap length" +#: js/blocks/MeterBlocks.js:705 +msgid "The On-weak-beat block lets you specify actions to take on weak (off) beats." msgstr "" -#: js/HeapBlocks.js:254 -msgid "The Heap-empty? block returns true if the heap is empty." +#: js/blocks/MeterBlocks.js:750 +msgid "on strong beat" msgstr "" -#: js/HeapBlocks.js:268 -#.TRANS: Is the heap empty? -msgid "heap empty?" +#: js/blocks/MeterBlocks.js:758 +msgid "The On-strong-beat block lets you specify actions to take on specified beats." msgstr "" -#: js/HeapBlocks.js:317 -msgid "The Empty-heap block empties the heap." +#: js/blocks/MeterBlocks.js:769 +msgid "beat" msgstr "" -#: js/HeapBlocks.js:327 -#: js/HeapBlocks.js:647 -#.TRANS: empty the heap -msgid "empty heap" -msgstr "ka jolk'ow an t'i'nél" +#: js/blocks/MeterBlocks.js:813 +msgid "on every beat do" +msgstr "" -#: js/HeapBlocks.js:371 -msgid "The Reverse-heap block reverses the order of the heap." +#: js/blocks/MeterBlocks.js:821 +msgid "The On-every-beat block lets you specify actions to take on every beat." msgstr "" -#: js/HeapBlocks.js:384 -#.TRANS: reverse the order of the heap -msgid "reverse heap" +#: js/blocks/MeterBlocks.js:874 +msgid "on every note do" msgstr "" -#: js/HeapBlocks.js:428 -msgid "The Index-heap block returns a value in the heap at a specified location." +#: js/blocks/MeterBlocks.js:882 +msgid "The On-every-note block lets you specify actions to take on every note." msgstr "" -#: js/HeapBlocks.js:443 -#.TRANS: retrieve a value from the heap at index position in the heap -msgid "index heap" +#: js/blocks/MeterBlocks.js:928 +#: js/blocks/MeterBlocks.js:999 +#.TRANS: sets tempo by defining a beat and beats per minute +msgid "master beats per minute" msgstr "" -#: js/HeapBlocks.js:523 -msgid "The Set-heap entry block sets a value in he heap at the specified location." +#: js/blocks/MeterBlocks.js:952 +#: js/blocks/MeterBlocks.js:1078 +#: js/blocks/MeterBlocks.js:1135 +msgid "bpm" msgstr "" -#: js/HeapBlocks.js:619 -msgid "The Pop block removes the value at the top of the heap." +#: js/blocks/MeterBlocks.js:952 +#: js/blocks/MeterBlocks.js:1078 +#: js/blocks/MeterBlocks.js:1135 +msgid "beat value" msgstr "" -#: js/HeapBlocks.js:633 -#.TRANS: pop a value off the top of the heap -msgid "pop" -msgstr "kaldha'" +#: js/blocks/MeterBlocks.js:1024 +#: js/blocks/MeterBlocks.js:1167 +#: js/blocks/MeterBlocks.js:1241 +msgid "Beats per minute must be > 30." +msgstr "" -#: js/HeapBlocks.js:680 -msgid "The Push block adds a value to the top of the heap." +#: js/blocks/MeterBlocks.js:1027 +#: js/blocks/MeterBlocks.js:1170 +#: js/blocks/MeterBlocks.js:1244 +msgid "Maximum beats per minute is 1000." msgstr "" -#: js/HeapBlocks.js:696 -#.TRANS: push a value onto the top of the heap -msgid "push" -msgstr "nixa'" +#: js/blocks/MeterBlocks.js:1068 +msgid "The Beats per minute block sets the number of 1/4 notes per minute." +msgstr "" -#: js/FlowBlocks.js:41 -msgid "The Backward block runs code in reverse order (Musical retrograde)." +#: js/blocks/MeterBlocks.js:1279 +#.TRANS: anacrusis +msgid "pickup" msgstr "" -#: js/FlowBlocks.js:48 -msgid "backward" +#: js/blocks/MeterBlocks.js:1367 +msgid "number of beats" msgstr "" -#: js/FlowBlocks.js:124 -msgid "The Duplicate block will run each block multiple times." +#: js/blocks/NumberBlocks.js:28 +msgid "The Int block returns an integer." msgstr "" -#: js/FlowBlocks.js:136 -msgid "duplicate" +#: js/blocks/NumberBlocks.js:34 +msgid "int" msgstr "" -#: js/FlowBlocks.js:334 -msgid "The Default block is used inside of a Switch to define the default action." +#: js/blocks/NumberBlocks.js:73 +msgid "The Mod block returns the remainder from a division." +msgstr "" + +#: js/blocks/NumberBlocks.js:79 +msgid "mod" +msgstr "mod" + +#: js/blocks/NumberBlocks.js:141 +msgid "The Power block calculates a power function." msgstr "" -#: js/FlowBlocks.js:342 -msgid "default" +#: js/blocks/NumberBlocks.js:196 +msgid "The Sqrt block returns the square root." msgstr "" -#: js/FlowBlocks.js:361 -#: js/FlowBlocks.js:418 -msgid "The Case Block must be used inside of a Switch Block." +#: js/blocks/NumberBlocks.js:202 +msgid "sqrt" msgstr "" -#: js/FlowBlocks.js:389 -msgid "The Case block is used inside of a Switch to define matches." +#: js/blocks/NumberBlocks.js:248 +msgid "The Abs block returns the absolute value." msgstr "" -#: js/FlowBlocks.js:397 -msgid "case" +#: js/blocks/NumberBlocks.js:254 +msgid "abs" msgstr "" -#: js/FlowBlocks.js:446 -msgid "The Switch block will run the code in the matching Case." +#: js/blocks/NumberBlocks.js:295 +msgid "The Distance block returns the distance between two points. For example, between the mouse and the center of the screen." msgstr "" -#: js/FlowBlocks.js:454 -msgid "switch" +#: js/blocks/NumberBlocks.js:301 +#: plugins/rodi.rtp:310 +msgid "distance" msgstr "" -#: js/FlowBlocks.js:595 -msgid "The Stop block will stop a loop" +#: js/blocks/NumberBlocks.js:361 +msgid "The Divide block is used to divide." msgstr "" -#: js/FlowBlocks.js:597 -msgid "Forever, Repeat, While, or Until." +#: js/blocks/NumberBlocks.js:441 +msgid "The Multiply block is used to multiply." msgstr "" -#: js/FlowBlocks.js:604 -#: js/phrasemaker.js:3799 -#: js/musickeyboard.js:629 -#: js/musickeyboard.js:631 -#: js/timbre.js:417 -#: js/timbre.js:419 -#: plugins/rodi.rtp:29 -#: plugins/rodi.rtp:73 -#: plugins/rodi.rtp:413 -msgid "stop" -msgstr "kuba'" - -#: js/FlowBlocks.js:653 -msgid "The Waitfor block will wait until the condition is true." +#: js/blocks/NumberBlocks.js:612 +msgid "The Minus block is used to subtract." msgstr "" -#: js/FlowBlocks.js:661 -msgid "wait for" +#: js/blocks/NumberBlocks.js:723 +msgid "The Plus block is used to add." msgstr "" -#: js/FlowBlocks.js:732 -msgid "The Until block will repeat until the condition is true." +#: js/blocks/NumberBlocks.js:849 +msgid "The One-of block returns one of two choices." msgstr "" -#: js/FlowBlocks.js:740 -msgid "until" -msgstr "ma ti" - -#: js/FlowBlocks.js:742 -#: js/FlowBlocks.js:822 -msgid "do2" +#: js/blocks/NumberBlocks.js:856 +#: js/blocks/PitchBlocks.js:616 +msgid "one of" msgstr "" -#: js/FlowBlocks.js:812 -msgid "The While block will repeat while the condition is true." +#: js/blocks/NumberBlocks.js:858 +msgid "this" msgstr "" -#: js/FlowBlocks.js:820 -msgid "while" -msgstr "tamchál" +#: js/blocks/NumberBlocks.js:858 +msgid "that" +msgstr "" -#: js/FlowBlocks.js:903 -#: js/FlowBlocks.js:968 -#: js/FlowBlocks.js:979 -msgid "In this example if the mouse button is pressed a snare drum will play." +#: js/blocks/NumberBlocks.js:913 +msgid "The Random block returns a random number." msgstr "" -#: js/FlowBlocks.js:925 -#: js/FlowBlocks.js:988 -msgid "if" -msgstr "anits" +#: js/blocks/NumberBlocks.js:920 +msgid "random" +msgstr "yab aykadh" -#: js/FlowBlocks.js:927 -#: js/FlowBlocks.js:990 -msgid "then" -msgstr "tam" +#: js/blocks/NumberBlocks.js:922 +msgid "min" +msgstr "min" -#: js/FlowBlocks.js:927 -msgid "else" -msgstr "max ibáj" +#: js/blocks/NumberBlocks.js:922 +msgid "max" +msgstr "max" -#: js/FlowBlocks.js:1025 -msgid "The Forever block will repeat the contained blocks forever." +#: js/blocks/NumberBlocks.js:986 +msgid "The Number block holds a number." msgstr "" -#: js/FlowBlocks.js:1037 -msgid "forever" -msgstr "abal ets'ey" - -#: js/FlowBlocks.js:1073 -msgid "The Repeat block will repeat the contained blocks." +#: js/blocks/OrnamentBlocks.js:32 +msgid "staccato factor" msgstr "" -#: js/FlowBlocks.js:1075 -msgid "In this example the note will be played 4 times." +#: js/blocks/OrnamentBlocks.js:108 +msgid "slur factor" msgstr "" -#: js/FlowBlocks.js:1083 -msgid "repeat" -msgstr "ka wichk'ow" - -#: js/FlowBlocks.js:1123 -msgid "duplicate factor" +#: js/blocks/OrnamentBlocks.js:217 +#: js/blocks/OrnamentBlocks.js:309 +#.TRANS: the neighbor refers to a neighboring note, e.g., D is a neighbor of C +msgid "neighbor" msgstr "" -#: js/PitchBlocks.js:39 -#: js/musicutils.js:722 -#: js/musicutils.js:1117 -#: js/synthutils.js:112 -#.TRANS: square wave -msgid "square" +#: js/blocks/OrnamentBlocks.js:293 +msgid "The Neighbor block rapidly switches between neighboring pitches." msgstr "" -#: js/PitchBlocks.js:62 -#: js/ToneBlocks.js:39 -#: js/musicutils.js:723 -#: js/musicutils.js:1118 -#: js/synthutils.js:116 -#.TRANS: triangle wave -msgid "triangle" +#: js/blocks/OrnamentBlocks.js:364 +msgid "glide" msgstr "" -#: js/PitchBlocks.js:85 -#: js/musicutils.js:721 -#: js/musicutils.js:1116 -#: js/synthutils.js:110 -#.TRANS: sine wave -msgid "sine" +#: js/blocks/OrnamentBlocks.js:479 +#: js/blocks/OrnamentBlocks.js:643 +msgid "slur" msgstr "" -#: js/PitchBlocks.js:108 -#: js/musicutils.js:724 -#: js/musicutils.js:1119 -#: js/synthutils.js:114 -#.TRANS: sawtooth wave -msgid "sawtooth" +#: js/blocks/OrnamentBlocks.js:558 +#: js/blocks/OrnamentBlocks.js:710 +#.TRANS: play each note sharply detached from the others +msgid "staccato" msgstr "" -#: js/PitchBlocks.js:141 -#.TRANS: musical transposition (adjustment of pitch up or down) -msgid "transposition" +#: js/blocks/RhythmBlocks.js:182 +#: js/blocks/RhythmBlocks.js:1086 +#: js/blocks/RhythmBlocks.js:1162 +msgid "Note value must be greater than 0." msgstr "" -#: js/PitchBlocks.js:168 -#.TRANS: step down one note in current musical scale -msgid "scalar step down" +#: js/blocks/RhythmBlocks.js:215 +#: js/blocks/RhythmBlocks.js:278 +#: js/blocks/RhythmBlocks.js:350 +#.TRANS: swing is a rhythmic variation that emphasises the offbeat +msgid "swing" msgstr "" -#: js/PitchBlocks.js:172 -msgid "The Scalar step down block returns the number of semi-tones down to the previous note in the current key and mode." +#: js/blocks/RhythmBlocks.js:355 +#.TRANS: the amount to shift to the offbeat note +msgid "swing value" msgstr "" -#: js/PitchBlocks.js:190 -#.TRANS: step up one note in current musical scale -msgid "scalar step up" +#: js/blocks/RhythmBlocks.js:419 +msgid "The Skip notes block will cause notes to be skipped." msgstr "" -#: js/PitchBlocks.js:194 -msgid "The Scalar step up block returns the number of semi-tones up to the next note in the current key and mode." +#: js/blocks/RhythmBlocks.js:427 +#.TRANS: substitute rests on notes being skipped +msgid "skip notes" msgstr "" -#: js/PitchBlocks.js:212 -#.TRANS: the change measured in half-steps between the current pitch and the previous pitch -msgid "change in pitch" +#: js/blocks/RhythmBlocks.js:489 +#.TRANS: speed up note duration by some factor, e.g. convert 1/4 to 1/8 notes by using a factor of 2 +msgid "multiply note value" msgstr "" -#: js/PitchBlocks.js:216 -msgid "The Change in pitch block is the difference (in half steps) between the current pitch being played and the previous pitch played." +#: js/blocks/RhythmBlocks.js:542 +msgid "The Tie block works on pairs of notes, combining them into one note." msgstr "" -#: js/PitchBlocks.js:243 -#.TRANS: the change measured in scale-steps between the current pitch and the previous pitch -msgid "scalar change in pitch" +#: js/blocks/RhythmBlocks.js:550 +#.TRANS: tie notes together into one longer note +msgid "tie" msgstr "" -#: js/PitchBlocks.js:250 -#: js/PitchBlocks.js:432 -#: js/PitchBlocks.js:1629 -#: js/DictActions.js:89 -#: js/temperament.js:477 -#: js/temperament.js:481 -#: js/temperament.js:714 -#.TRANS: convert current note to piano key (1-88) -#.TRANS: a mapping of pitch to the 88 piano keys -msgid "pitch number" +#: js/blocks/RhythmBlocks.js:591 +#: js/blocks/RhythmBlocks.js:671 +#.TRANS: a dotted note is played for 1.5x its value, e.g., 1/8. --> 3/16 +msgid "dot" msgstr "" -#: js/PitchBlocks.js:256 -msgid "The Pitch number block is the value of the pitch of the note currently being played." +#: js/blocks/RhythmBlocks.js:619 +#: js/turtleactions/RhythmActions.js:221 +msgid "An argument of -1 results in a note value of 0." msgstr "" -#: js/PitchBlocks.js:329 -#: js/PitchBlocks.js:433 -#.TRANS: the current pitch expressed in Hertz -msgid "pitch in hertz" +#: js/blocks/RhythmBlocks.js:661 +msgid "The Dot block extends the duration of a note by 50%." msgstr "" -#: js/PitchBlocks.js:334 -msgid "The Pitch in Hertz block is the value in Hertz of the pitch of the note currently being played." +#: js/blocks/RhythmBlocks.js:663 +msgid "Eg a dotted quarter note will play for 3/8 (1/4 + 1/8) of a beat." msgstr "" -#: js/PitchBlocks.js:367 -#: js/DictActions.js:87 -msgid "current pitch" +#: js/blocks/RhythmBlocks.js:765 +#.TRANS: Japanese only: note value block for drum +msgid "note value drum" msgstr "" -#: js/PitchBlocks.js:373 -msgid "The Current Pitch block is used with the Pitch Converter block. In the example above, current pitch, sol 4, is displayed as 392 hertz." +#: js/blocks/RhythmBlocks.js:829 +msgid "392 hertz" msgstr "" -#: js/PitchBlocks.js:410 -msgid "This block converts the pitch value of the last note played into different formats such as hertz, letter name, pitch number, et al." +#: js/blocks/RhythmBlocks.js:1119 +msgid "The Note block is a container for one or more Pitch blocks." msgstr "" -#: js/PitchBlocks.js:434 -msgid "alphabet" +#: js/blocks/RhythmBlocks.js:1121 +msgid "The Note block specifies the duration (note value) of its contents." msgstr "" -#: js/PitchBlocks.js:436 -#.TRANS: Translate as "alphabet class" -msgid "letter class" +#: js/blocks/RhythmBlocks.js:1128 +#: js/blocks/PitchBlocks.js:974 +#: js/blocks/PitchBlocks.js:1007 +#: js/blocks/ProgramBlocks.js:1186 +#: js/blocks/ProgramBlocks.js:1227 +#: js/widgets/status.js:190 +#: js/widgets/temperament.js:464 +#: js/widgets/temperament.js:486 +#: js/widgets/temperament.js:496 +#: js/widgets/temperament.js:617 +#: plugins/rodi.rtp:192 +#.TRANS: a musical note consisting of pitch and duration +msgid "note" msgstr "" -#: js/PitchBlocks.js:437 -msgid "solfege class" +#: js/blocks/RhythmBlocks.js:1130 +msgid "value2" msgstr "" -#: js/PitchBlocks.js:438 -msgid "staff y" +#: js/blocks/RhythmBlocks.js:1200 +msgid "define frequency" msgstr "" -#: js/PitchBlocks.js:439 -msgid "solfege syllable" +#: js/blocks/RhythmBlocks.js:1218 +#: js/widgets/temperament.js:787 +#: js/widgets/temperament.js:1587 +msgid "octave space" msgstr "" -#: js/PitchBlocks.js:440 -msgid "pitch class" +#: js/blocks/SensorsBlocks.js:36 +msgid "The Input block prompts for keyboard input." msgstr "" -#: js/PitchBlocks.js:441 -msgid "scalar class" +#: js/blocks/SensorsBlocks.js:46 +msgid "input" msgstr "" -#: js/PitchBlocks.js:443 -msgid "nth degree" +#: js/blocks/SensorsBlocks.js:64 +msgid "Input a value" msgstr "" -#: js/PitchBlocks.js:444 -msgid "pitch to shade" +#: js/blocks/SensorsBlocks.js:126 +msgid "input value" msgstr "" -#: js/PitchBlocks.js:445 -msgid "pitch to color" +#: js/blocks/SensorsBlocks.js:131 +msgid "The Input-value block stores the input." msgstr "" -#: js/PitchBlocks.js:629 -#: js/musickeyboard.js:565 -#.TRANS: MIDI is a technical standard for electronic music -msgid "MIDI" -msgstr "" +#: js/blocks/SensorsBlocks.js:238 +msgid "loudness" +msgstr "tsapik an kawídh" -#: js/PitchBlocks.js:642 -#.TRANS: set an offset associated with the numeric piano keyboard mapping -msgid "set pitch number offset" +#: js/blocks/SensorsBlocks.js:245 +msgid "The Loudness block returns the volume detected by the microphone." msgstr "" -#: js/PitchBlocks.js:645 -msgid "The Set pitch number offset block is used to set the offset for mapping pitch numbers to pitch and octave." +#: js/blocks/SensorsBlocks.js:300 +msgid "click" msgstr "" -#: js/PitchBlocks.js:679 -#.TRANS: convert piano key number (1-88) to pitch -msgid "number to pitch" +#: js/blocks/SensorsBlocks.js:306 +msgid "The Click block triggers an event if a mouse has been clicked." msgstr "" -#: js/PitchBlocks.js:682 -msgid "The Number to pitch block will convert a pitch number to a pich name." +#: js/blocks/SensorsBlocks.js:313 +msgid "The Click block triggers an event if a turtle has been clicked." msgstr "" -#: js/PitchBlocks.js:715 -#.TRANS: convert piano key number (1-88) to octave -msgid "number to octave" +#: js/blocks/SensorsBlocks.js:342 +msgid "cursor over" msgstr "" -#: js/PitchBlocks.js:717 -msgid "The Number to octave block will convert a pitch number to an octave." +#: js/blocks/SensorsBlocks.js:387 +msgid "cursor out" msgstr "" -#: js/PitchBlocks.js:726 -msgid "y to pitch" +#: js/blocks/SensorsBlocks.js:433 +msgid "cursor button down" msgstr "" -#: js/PitchBlocks.js:729 -msgid "Y to pitch block will convert a staff y position to corresponding pitch notation." +#: js/blocks/SensorsBlocks.js:477 +msgid "cursor button up" msgstr "" -#: js/PitchBlocks.js:841 -msgid "accidental selector" +#: js/blocks/SensorsBlocks.js:521 +#: js/blocks/PenBlocks.js:48 +#: plugins/rodi.rtp:219 +msgid "blue" msgstr "" -#: js/PitchBlocks.js:844 -msgid "The Accidental selector block is used to choose between double-sharp, sharp, natural, flat, and double-flat." +#: js/blocks/SensorsBlocks.js:577 +#: js/blocks/PenBlocks.js:64 +#: plugins/rodi.rtp:218 +msgid "green" msgstr "" -#: js/PitchBlocks.js:858 -msgid "Pitch can be specified in terms of ni dha pa ma ga re sa." +#: js/blocks/SensorsBlocks.js:633 +#: js/blocks/PenBlocks.js:112 +#: plugins/rodi.rtp:217 +msgid "red" msgstr "" -#: js/PitchBlocks.js:872 -msgid "Pitch can be specified in terms of C D E F G A B." +#: js/blocks/SensorsBlocks.js:638 +msgid "The Get red block returns the red component of the pixel under the mouse." msgstr "" -#: js/PitchBlocks.js:883 -msgid "solfege" +#: js/blocks/SensorsBlocks.js:644 +msgid "The Get red block returns the red component of the pixel under the turtle." msgstr "" -#: js/PitchBlocks.js:886 -msgid "Pitch can be specified in terms of do re mi fa sol la ti." +#: js/blocks/SensorsBlocks.js:685 +#: plugins/rodi.rtp:216 +msgid "pixel color" msgstr "" -#: js/PitchBlocks.js:920 -msgid "The Invert block rotates any contained notes around a target note." +#: js/blocks/SensorsBlocks.js:690 +msgid "The Get pixel block returns the color of the pixel under the mouse." msgstr "" -#: js/PitchBlocks.js:927 -#.TRANS: pitch inversion rotates a pitch around another pitch -msgid "invert" +#: js/blocks/SensorsBlocks.js:696 +msgid "The Get pixel block returns the color of the pixel under the turtle." msgstr "" -#: js/PitchBlocks.js:929 -#: js/PitchBlocks.js:935 -#: js/PitchActions.js:727 -#: js/musicutils.js:726 -#: js/musicutils.js:902 -#.TRANS: invert based on even or odd number or musical scale -#.TRANS: even numbers -msgid "even" -msgstr "" +#: js/blocks/SensorsBlocks.js:758 +msgid "time" +msgstr "k'ij" -#: js/PitchBlocks.js:935 -#: js/PitchActions.js:729 -#: js/musicutils.js:728 -#: js/musicutils.js:903 -#.TRANS: odd numbers -msgid "odd" +#: js/blocks/SensorsBlocks.js:804 +msgid "cursor y" msgstr "" -#: js/PitchBlocks.js:935 -#: js/PitchActions.js:731 -#: js/musicutils.js:729 -#: js/musicutils.js:904 -msgid "scalar" +#: js/blocks/SensorsBlocks.js:809 +msgid "The Cursor Y block returns the vertical position of the mouse." msgstr "" -#: js/PitchBlocks.js:966 -#.TRANS: pitch inversion rotates a pitch around another pitch (odd number) -msgid "invert (odd)" +#: js/blocks/SensorsBlocks.js:845 +msgid "cursor x" msgstr "" -#: js/PitchBlocks.js:999 -#.TRANS: pitch inversion rotates a pitch around another pitch (even number) -msgid "invert (even)" +#: js/blocks/SensorsBlocks.js:850 +msgid "The Cursor X block returns the horizontal position of the mouse." msgstr "" -#: js/PitchBlocks.js:1020 -#.TRANS: register is the octave of the current pitch -msgid "register" +#: js/blocks/SensorsBlocks.js:886 +msgid "mouse button" msgstr "" -#: js/PitchBlocks.js:1024 -msgid "The Register block provides an easy way to modify the register (octave) of the notes that follow it." +#: js/blocks/SensorsBlocks.js:888 +msgid "The Mouse-button block returns True if the mouse button is pressed." msgstr "" -#: js/PitchBlocks.js:1074 -msgid "The Semi-tone transposition block will shift the pitches contained inside Note blocks up (or down) by half steps." +#: js/blocks/SensorsBlocks.js:934 +msgid "to ASCII" msgstr "" -#: js/PitchBlocks.js:1076 -msgid "In the example shown above, sol is shifted up to sol#." +#: js/blocks/SensorsBlocks.js:938 +msgid "The To ASCII block converts numbers to letters." msgstr "" -#: js/PitchBlocks.js:1082 -#.TRANS: adjust the amount of shift (up or down) of a pitch -msgid "semi-tone transpose" +#: js/blocks/SensorsBlocks.js:1005 +msgid "The Keyboard block returns computer keyboard input." msgstr "" -#: js/PitchBlocks.js:1115 -msgid "The Transpose by Ratio block will shift the pitches contained inside Note blocks up (or down) by a ratio" +#: js/blocks/RhythmBlockPaletteBlocks.js:50 +#: js/blocks/RhythmBlockPaletteBlocks.js:233 +#.TRANS: rhythm block +#.TRANS: translate "rhythm1" as rhythm +msgid "rhythm1" msgstr "" -#: js/PitchBlocks.js:1121 -#.TRANS: adjust the amount of shift (up or down) of a pitch -msgid "transpose by ratio" +#: js/blocks/RhythmBlockPaletteBlocks.js:70 +#: js/blocks/RhythmBlockPaletteBlocks.js:252 +#: js/blocks/RhythmBlockPaletteBlocks.js:485 +#: js/blocks/RhythmBlockPaletteBlocks.js:554 +#: js/blocks/RhythmBlockPaletteBlocks.js:875 +msgid "number of notes" msgstr "" -#: js/PitchBlocks.js:1204 -#.TRANS: down sixth means the note is five scale degrees below current note -msgid "down sixth" +#: js/blocks/RhythmBlockPaletteBlocks.js:126 +msgid "polyphonic rhythm" msgstr "" -#: js/PitchBlocks.js:1223 -#.TRANS: down third means the note is two scale degrees below current note -msgid "down third" +#: js/blocks/RhythmBlockPaletteBlocks.js:219 +msgid "The Rhythm block is used to generate rhythm patterns." msgstr "" -#: js/PitchBlocks.js:1242 -#.TRANS: seventh means the note is the six scale degrees above current note -msgid "seventh" +#: js/blocks/RhythmBlockPaletteBlocks.js:280 +msgid "1/64 note" msgstr "" -#: js/PitchBlocks.js:1261 -#.TRANS: sixth means the note is the five scale degrees above current note -msgid "sixth" +#: js/blocks/RhythmBlockPaletteBlocks.js:304 +msgid "1/32 note" msgstr "" -#: js/PitchBlocks.js:1280 -#.TRANS: fifth means the note is the four scale degrees above current note -msgid "fifth" +#: js/blocks/RhythmBlockPaletteBlocks.js:332 +msgid "1/16 note" msgstr "" -#: js/PitchBlocks.js:1300 -#.TRANS: fourth means the note is three scale degrees above current note -msgid "fourth" +#: js/blocks/RhythmBlockPaletteBlocks.js:360 +msgid "eighth note" msgstr "" -#: js/PitchBlocks.js:1319 -#.TRANS: third means the note is two scale degrees above current note -msgid "third" +#: js/blocks/RhythmBlockPaletteBlocks.js:388 +msgid "quarter note" msgstr "" -#: js/PitchBlocks.js:1338 -#.TRANS: second means the note is one scale degree above current note -msgid "second" +#: js/blocks/RhythmBlockPaletteBlocks.js:416 +msgid "half note" msgstr "" -#: js/PitchBlocks.js:1379 -msgid "The Scalar transposition block will shift the pitches contained inside Note blocks up (or down) the scale." +#: js/blocks/RhythmBlockPaletteBlocks.js:444 +msgid "whole note" msgstr "" -#: js/PitchBlocks.js:1381 -msgid "In the example shown above, sol is shifted up to la." +#: js/blocks/RhythmBlockPaletteBlocks.js:482 +#: js/blocks/RhythmBlockPaletteBlocks.js:551 +#: js/blocks/RhythmBlockPaletteBlocks.js:602 +#.TRANS: A tuplet is a note value divided into irregular time values. +msgid "tuplet" msgstr "" -#: js/PitchBlocks.js:1388 -#.TRANS: adjust the amount of shift (up or down) of a pitch by musical scale (scalar) steps -msgid "scalar transpose" +#: js/blocks/RhythmBlockPaletteBlocks.js:768 +msgid "septuplet" msgstr "" -#: js/PitchBlocks.js:1423 -msgid "The Accidental block is used to create sharps and flats" +#: js/blocks/RhythmBlockPaletteBlocks.js:796 +msgid "quintuplet" msgstr "" -#: js/PitchBlocks.js:1430 -#.TRANS: An accidental is a modification to a pitch, e.g., sharp or flat. -msgid "accidental override" +#: js/blocks/RhythmBlockPaletteBlocks.js:824 +msgid "triplet" msgstr "" -#: js/PitchBlocks.js:1543 -msgid "The Hertz block (in combination with a Number block) will play a sound at the specified frequency." +#: js/blocks/RhythmBlockPaletteBlocks.js:851 +msgid "simple tuplet" msgstr "" -#: js/PitchBlocks.js:1633 -msgid "The Pitch Number block will play a pitch associated by its number, e.g. 0 for C and 7 for G." +#: js/blocks/RhythmBlockPaletteBlocks.js:861 +msgid "Tuplets are a collection of notes that get scaled to a specific duration." msgstr "" -#: js/PitchBlocks.js:1665 -#: js/PitchBlocks.js:1707 -#.TRANS: a numeric mapping of the notes in an octave based on the musical mode -#.TRANS: a numeric mapping of the notes in an octave based on the musical mode -msgid "nth modal pitch" +#: js/blocks/DrumBlocks.js:59 +msgid "The Noise name block is used to select a noise synthesizer." msgstr "" -#: js/PitchBlocks.js:1668 -msgid "n^th Modal Pitch takes the pattern of pitches in semitones for a mode and makes each point a degree of the mode," +#: js/blocks/DrumBlocks.js:102 +msgid "The Drum name block is used to select a drum." msgstr "" -#: js/PitchBlocks.js:1670 -msgid "starting from 1 and regardless of tonal framework (i.e. not always 8 notes in the octave)" +#: js/blocks/DrumBlocks.js:146 +msgid "The Effects name block is used to select a sound effect." msgstr "" -#: js/PitchBlocks.js:1711 -msgid "N^th Modal Pitch takes a number as an input as the n^th degree for the given mode. 0 is the first position, 1 is the second, -1 is the note before the first etc." +#: js/blocks/DrumBlocks.js:163 +msgid "noise" msgstr "" -#: js/PitchBlocks.js:1713 -msgid "The pitches change according to the mode specified without any need for respellings." +#: js/blocks/DrumBlocks.js:177 +msgid "The Play noise block will generate white, pink, or brown noise." msgstr "" -#: js/PitchBlocks.js:1752 -msgid "Scale Degree is a common convention in music. Scale Degree offers seven possible positions in the scale (1-7) and can be modified via accidentals." +#: js/blocks/DrumBlocks.js:317 +msgid "Replace every instance of a pitch with a drum sound." msgstr "" -#: js/PitchBlocks.js:1754 -msgid "Scale Degree 1 is always the first pitch in a given scale, regardless of octave." +#: js/blocks/DrumBlocks.js:328 +#.TRANS: map a pitch to a drum sound +msgid "map pitch to drum" msgstr "" -#: js/PitchBlocks.js:1776 -#.TRANS: step some number of notes in current musical scale -msgid "scalar step" +#: js/blocks/DrumBlocks.js:395 +msgid "In the example above, a kick drum sound will be played instead of sol." msgstr "" -#: js/PitchBlocks.js:1781 -msgid "The Scalar Step block (in combination with a Number block) will play the next pitch in a scale," +#: js/blocks/DrumBlocks.js:407 +#.TRANS: set the current drum sound for playback +msgid "set drum" msgstr "" -#: js/PitchBlocks.js:1783 -msgid "eg if the last note played was sol, Scalar Step 1 will play la." +#: js/blocks/DrumBlocks.js:451 +msgid "sound effect" msgstr "" -#: js/PitchBlocks.js:1818 -msgid "The Pitch block specifies the pitch name and octave of a note that together determine the frequency of the note." +#: js/blocks/DrumBlocks.js:489 +msgid "You can use multiple Drum blocks within a Note block." msgstr "" -#: js/GraphicsBlocks.js:46 -#: js/DictActions.js:77 -#: js/DictActions.js:155 -#: js/DictActions.js:189 +#: js/blocks/GraphicsBlocks.js:46 +#: js/turtleactions/DictActions.js:77 +#: js/turtleactions/DictActions.js:144 +#: js/turtleactions/DictActions.js:173 msgid "heading" msgstr "in bélil, in ók'" -#: js/GraphicsBlocks.js:56 +#: js/blocks/GraphicsBlocks.js:56 msgid "The Heading block returns the orientation of the mouse." msgstr "" -#: js/GraphicsBlocks.js:62 +#: js/blocks/GraphicsBlocks.js:62 msgid "The Heading block returns the orientation of the turtle." msgstr "" -#: js/GraphicsBlocks.js:133 +#: js/blocks/GraphicsBlocks.js:133 msgid "The Y block returns the vertical position of the mouse." msgstr "" -#: js/GraphicsBlocks.js:140 +#: js/blocks/GraphicsBlocks.js:140 msgid "The Y block returns the vertical position of the turtle." msgstr "" -#: js/GraphicsBlocks.js:149 +#: js/blocks/GraphicsBlocks.js:149 msgid "y3" msgstr "" -#: js/GraphicsBlocks.js:219 +#: js/blocks/GraphicsBlocks.js:219 msgid "The X block returns the horizontal position of the mouse." msgstr "" -#: js/GraphicsBlocks.js:226 +#: js/blocks/GraphicsBlocks.js:226 msgid "The X block returns the horizontal position of the turtle." msgstr "" -#: js/GraphicsBlocks.js:235 +#: js/blocks/GraphicsBlocks.js:235 msgid "x3" msgstr "" -#: js/GraphicsBlocks.js:295 +#: js/blocks/GraphicsBlocks.js:295 msgid "scroll xy" msgstr "" -#: js/GraphicsBlocks.js:303 +#: js/blocks/GraphicsBlocks.js:303 msgid "The Scroll XY block moves the canvas." msgstr "" -#: js/GraphicsBlocks.js:313 +#: js/blocks/GraphicsBlocks.js:313 msgid "x2" msgstr "" -#: js/GraphicsBlocks.js:313 +#: js/blocks/GraphicsBlocks.js:313 msgid "y2" msgstr "" -#: js/GraphicsBlocks.js:373 -#: js/temperament.js:213 -#: js/temperament.js:241 +#: js/blocks/GraphicsBlocks.js:373 +#: js/widgets/temperament.js:319 +#: js/widgets/temperament.js:347 msgid "clear" msgstr "" -#: js/GraphicsBlocks.js:426 +#: js/blocks/GraphicsBlocks.js:426 msgid "The Control-point 2 block sets the second control point for the Bezier curve." msgstr "" -#: js/GraphicsBlocks.js:433 +#: js/blocks/GraphicsBlocks.js:433 msgid "control point 2" msgstr "" -#: js/GraphicsBlocks.js:436 -#: js/GraphicsBlocks.js:487 -#: js/GraphicsBlocks.js:534 -#: js/GraphicsBlocks.js:750 +#: js/blocks/GraphicsBlocks.js:436 +#: js/blocks/GraphicsBlocks.js:487 +#: js/blocks/GraphicsBlocks.js:534 +#: js/blocks/GraphicsBlocks.js:750 msgid "x1" msgstr "" -#: js/GraphicsBlocks.js:436 -#: js/GraphicsBlocks.js:487 -#: js/GraphicsBlocks.js:534 -#: js/GraphicsBlocks.js:750 +#: js/blocks/GraphicsBlocks.js:436 +#: js/blocks/GraphicsBlocks.js:487 +#: js/blocks/GraphicsBlocks.js:534 +#: js/blocks/GraphicsBlocks.js:750 msgid "y1" msgstr "" -#: js/GraphicsBlocks.js:477 +#: js/blocks/GraphicsBlocks.js:477 msgid "The Control-point 1 block sets the first control point for the Bezier curve." msgstr "" -#: js/GraphicsBlocks.js:484 +#: js/blocks/GraphicsBlocks.js:484 msgid "control point 1" msgstr "" -#: js/GraphicsBlocks.js:527 +#: js/blocks/GraphicsBlocks.js:527 msgid "The Bezier block draws a Bezier curve." msgstr "" -#: js/GraphicsBlocks.js:531 +#: js/blocks/GraphicsBlocks.js:531 msgid "bezier" msgstr "" -#: js/GraphicsBlocks.js:592 +#: js/blocks/GraphicsBlocks.js:592 msgid "The Arc block moves the turtle in an arc." msgstr "" -#: js/GraphicsBlocks.js:600 +#: js/blocks/GraphicsBlocks.js:600 msgid "arc" msgstr "pulich" -#: js/GraphicsBlocks.js:603 +#: js/blocks/GraphicsBlocks.js:603 msgid "angle" msgstr "kexem" -#: js/GraphicsBlocks.js:603 +#: js/blocks/GraphicsBlocks.js:603 msgid "radius" msgstr "tin tsejeltal jun i kweche' anij ma walté" -#: js/GraphicsBlocks.js:620 -#: js/GraphicsBlocks.js:767 -#: js/GraphicsBlocks.js:1010 -#: js/GraphicsBlocks.js:1093 +#: js/blocks/GraphicsBlocks.js:620 +#: js/blocks/GraphicsBlocks.js:767 +#: js/blocks/GraphicsBlocks.js:1010 +#: js/blocks/GraphicsBlocks.js:1093 msgid "Value must be within -5000 to 5000 when Wrap Mode is off." msgstr "" -#: js/GraphicsBlocks.js:622 -#: js/GraphicsBlocks.js:769 -#: js/GraphicsBlocks.js:1012 -#: js/GraphicsBlocks.js:1095 +#: js/blocks/GraphicsBlocks.js:622 +#: js/blocks/GraphicsBlocks.js:769 +#: js/blocks/GraphicsBlocks.js:1012 +#: js/blocks/GraphicsBlocks.js:1095 msgid "Value must be within -20000 to 20000 when Wrap Mode is on." msgstr "" -#: js/GraphicsBlocks.js:660 +#: js/blocks/GraphicsBlocks.js:660 msgid "set heading" msgstr "ka ts'at'ba' ti in áy" -#: js/GraphicsBlocks.js:673 +#: js/blocks/GraphicsBlocks.js:673 msgid "The Set heading block sets the heading of the turtle." msgstr "" -#: js/GraphicsBlocks.js:733 +#: js/blocks/GraphicsBlocks.js:733 msgid "The Set XY block moves the mouse to a specific position on the screen." msgstr "" -#: js/GraphicsBlocks.js:739 +#: js/blocks/GraphicsBlocks.js:739 msgid "The Set XY block moves the turtle to a specific position on the screen." msgstr "" -#: js/GraphicsBlocks.js:747 +#: js/blocks/GraphicsBlocks.js:747 msgid "set xy" msgstr "ka ts'at'ba' xy" -#: js/GraphicsBlocks.js:819 +#: js/blocks/GraphicsBlocks.js:819 msgid "The Right block turns the mouse to the right." msgstr "" -#: js/GraphicsBlocks.js:826 +#: js/blocks/GraphicsBlocks.js:826 msgid "The Right block turns the turtle to the right." msgstr "" -#: js/GraphicsBlocks.js:835 +#: js/blocks/GraphicsBlocks.js:835 msgid "right1" msgstr "" -#: js/GraphicsBlocks.js:835 +#: js/blocks/GraphicsBlocks.js:835 #: plugins/rodi.rtp:77 #: plugins/rodi.rtp:340 #: plugins/rodi.rtp:375 msgid "right" msgstr "winab" -#: js/GraphicsBlocks.js:899 +#: js/blocks/GraphicsBlocks.js:899 msgid "The Left block turns the mouse to the left." msgstr "" -#: js/GraphicsBlocks.js:906 +#: js/blocks/GraphicsBlocks.js:906 msgid "The Left block turns the turtle to the left." msgstr "" -#: js/GraphicsBlocks.js:915 +#: js/blocks/GraphicsBlocks.js:915 msgid "left1" msgstr "" -#: js/GraphicsBlocks.js:915 +#: js/blocks/GraphicsBlocks.js:915 #: plugins/rodi.rtp:79 #: plugins/rodi.rtp:339 #: plugins/rodi.rtp:362 msgid "left" msgstr "k'watab'" -#: js/GraphicsBlocks.js:967 -#: js/temperament.js:734 -#: js/temperament.js:933 +#: js/blocks/GraphicsBlocks.js:967 +#: js/widgets/temperament.js:875 +#: js/widgets/temperament.js:1078 #: plugins/rodi.rtp:69 #: plugins/rodi.rtp:387 msgid "back" msgstr "wichiy" -#: js/GraphicsBlocks.js:976 +#: js/blocks/GraphicsBlocks.js:976 msgid "The Back block moves the mouse backward." msgstr "" -#: js/GraphicsBlocks.js:983 +#: js/blocks/GraphicsBlocks.js:983 msgid "The Back block moves the turtle backward." msgstr "" -#: js/GraphicsBlocks.js:1050 +#: js/blocks/GraphicsBlocks.js:1050 #: plugins/rodi.rtp:71 #: plugins/rodi.rtp:400 msgid "forward" msgstr "ne'etsnanchij" -#: js/GraphicsBlocks.js:1059 +#: js/blocks/GraphicsBlocks.js:1059 msgid "The Forward block moves the mouse forward." msgstr "" -#: js/GraphicsBlocks.js:1066 +#: js/blocks/GraphicsBlocks.js:1066 msgid "The Forward block moves the turtle forward." msgstr "" -#: js/GraphicsBlocks.js:1154 -#: js/GraphicsBlocks.js:1172 +#: js/blocks/GraphicsBlocks.js:1154 +#: js/blocks/GraphicsBlocks.js:1172 msgid "wrap" msgstr "" -#: js/OrnamentBlocks.js:32 -msgid "staccato factor" -msgstr "" - -#: js/OrnamentBlocks.js:108 -msgid "slur factor" -msgstr "" - -#: js/OrnamentBlocks.js:217 -#: js/OrnamentBlocks.js:309 -#.TRANS: the neighbor refers to a neighboring note, e.g., D is a neighbor of C -msgid "neighbor" -msgstr "" - -#: js/OrnamentBlocks.js:293 -msgid "The Neighbor block rapidly switches between neighboring pitches." -msgstr "" - -#: js/OrnamentBlocks.js:364 -msgid "glide" -msgstr "" - -#: js/OrnamentBlocks.js:479 -#: js/OrnamentBlocks.js:643 -msgid "slur" -msgstr "" - -#: js/OrnamentBlocks.js:558 -#: js/OrnamentBlocks.js:710 -#.TRANS: play each note sharply detached from the others -msgid "staccato" -msgstr "" - -#: js/PenBlocks.js:24 +#: js/blocks/PenBlocks.js:30 msgid "purple" msgstr "" -#: js/PenBlocks.js:37 -#: js/SensorsBlocks.js:521 -#: plugins/rodi.rtp:219 -msgid "blue" -msgstr "" - -#: js/PenBlocks.js:50 -#: js/SensorsBlocks.js:577 -#: plugins/rodi.rtp:218 -msgid "green" -msgstr "" - -#: js/PenBlocks.js:63 +#: js/blocks/PenBlocks.js:80 msgid "yellow" msgstr "" -#: js/PenBlocks.js:76 +#: js/blocks/PenBlocks.js:96 #: plugins/nutrition.rtp:164 msgid "orange" msgstr "t'a'at manu'" -#: js/PenBlocks.js:89 -#: js/SensorsBlocks.js:633 -#: plugins/rodi.rtp:217 -msgid "red" -msgstr "" - -#: js/PenBlocks.js:102 +#: js/blocks/PenBlocks.js:128 msgid "white" msgstr "" -#: js/PenBlocks.js:115 +#: js/blocks/PenBlocks.js:144 msgid "black" msgstr "" -#: js/PenBlocks.js:128 +#: js/blocks/PenBlocks.js:163 msgid "begin fill" msgstr "" -#: js/PenBlocks.js:143 +#: js/blocks/PenBlocks.js:190 msgid "end fill" msgstr "ka t'uchiy an mukuxtalab" -#: js/PenBlocks.js:159 -#: js/PenBlocks.js:386 +#: js/blocks/PenBlocks.js:212 +#: js/blocks/PenBlocks.js:560 #.TRANS: set the background color msgid "background" msgstr "" -#: js/PenBlocks.js:206 -#: js/DictActions.js:71 -#: js/DictActions.js:149 -#: js/DictActions.js:186 +#: js/blocks/PenBlocks.js:274 +#: js/turtleactions/DictActions.js:71 +#: js/turtleactions/DictActions.js:138 +#: js/turtleactions/DictActions.js:170 msgid "grey" msgstr "" -#: js/PenBlocks.js:210 +#: js/blocks/PenBlocks.js:282 msgid "The Grey block returns the current pen grey value." msgstr "" -#: js/PenBlocks.js:243 -#: js/DictActions.js:69 -#: js/DictActions.js:147 -#: js/DictActions.js:185 +#: js/blocks/PenBlocks.js:340 +#: js/turtleactions/DictActions.js:69 +#: js/turtleactions/DictActions.js:136 +#: js/turtleactions/DictActions.js:169 msgid "shade" msgstr "in tsapik in majub" -#: js/PenBlocks.js:247 +#: js/blocks/PenBlocks.js:347 msgid "The Shade block returns the current pen shade value." msgstr "" -#: js/PenBlocks.js:280 -#: js/DictActions.js:67 -#: js/DictActions.js:145 -#: js/DictActions.js:184 +#: js/blocks/PenBlocks.js:405 +#: js/turtleactions/DictActions.js:67 +#: js/turtleactions/DictActions.js:134 +#: js/turtleactions/DictActions.js:168 msgid "color" msgstr "mukuxtaláb" -#: js/PenBlocks.js:285 +#: js/blocks/PenBlocks.js:415 msgid "The Color block returns the current pen color." msgstr "" -#: js/PenBlocks.js:318 -#: js/DictActions.js:73 -#: js/DictActions.js:151 -#: js/DictActions.js:187 +#: js/blocks/PenBlocks.js:470 +#: js/turtleactions/DictActions.js:73 +#: js/turtleactions/DictActions.js:140 +#: js/turtleactions/DictActions.js:171 msgid "pen size" msgstr "puwél" -#: js/PenBlocks.js:322 +#: js/blocks/PenBlocks.js:474 msgid "The Pen size block returns the current pen size value." msgstr "" -#: js/PenBlocks.js:355 +#: js/blocks/PenBlocks.js:513 msgid "set font" msgstr "" -#: js/PenBlocks.js:358 +#: js/blocks/PenBlocks.js:518 msgid "The Set font block sets the font used by the Show block." msgstr "" -#: js/PenBlocks.js:391 +#: js/blocks/PenBlocks.js:567 msgid "The Background block sets the window background color." msgstr "" -#: js/PenBlocks.js:408 +#: js/blocks/PenBlocks.js:598 msgid "The Hollow line block creates a line with a hollow center." msgstr "" -#: js/PenBlocks.js:415 +#: js/blocks/PenBlocks.js:606 #.TRANS: draw a line logo has a hollow space down its center msgid "hollow line" msgstr "" -#: js/PenBlocks.js:462 +#: js/blocks/PenBlocks.js:675 msgid "The Fill block fills in a shape with a color." msgstr "" -#: js/PenBlocks.js:470 +#: js/blocks/PenBlocks.js:684 #.TRANS: fill in as a solid color msgid "fill" msgstr "" -#: js/PenBlocks.js:527 +#: js/blocks/PenBlocks.js:761 #.TRANS: raise up the pen so logo it does not draw when it is moved msgid "pen up" msgstr "ka k'adhba' i kits'oxtaláb" -#: js/PenBlocks.js:532 +#: js/blocks/PenBlocks.js:768 msgid "The Pen-up block raises the pen so that it does not draw." msgstr "" -#: js/PenBlocks.js:552 +#: js/blocks/PenBlocks.js:802 #.TRANS: put down the pen so logo it draws when it is moved msgid "pen down" msgstr "ka pa'ba' a kits'oxtal" -#: js/PenBlocks.js:557 +#: js/blocks/PenBlocks.js:810 msgid "The Pen-down block lowers the pen so that it draws." msgstr "" -#: js/PenBlocks.js:577 +#: js/blocks/PenBlocks.js:844 #.TRANS: set the width of the line drawn by the pen msgid "set pen size" msgstr "ka ts'atba' in puwel" -#: js/PenBlocks.js:583 +#: js/blocks/PenBlocks.js:854 msgid "The Set-pen-size block changes the size of the pen." msgstr "" -#: js/PenBlocks.js:623 +#: js/blocks/PenBlocks.js:913 #.TRANS: set degree of translucence of the pen color msgid "set translucency" msgstr "" -#: js/PenBlocks.js:627 +#: js/blocks/PenBlocks.js:921 msgid "The Set translucency block changes the opacity of the pen." msgstr "" -#: js/PenBlocks.js:668 +#: js/blocks/PenBlocks.js:981 msgid "set hue" msgstr "" -#: js/PenBlocks.js:672 +#: js/blocks/PenBlocks.js:989 msgid "The Set hue block changes the color of the pen." msgstr "" -#: js/PenBlocks.js:711 +#: js/blocks/PenBlocks.js:1047 msgid "set shade" msgstr "ka ts'at'banchij in ts'apik in tajax" -#: js/PenBlocks.js:717 +#: js/blocks/PenBlocks.js:1057 msgid "The Set-shade block changes the pen color from dark to light." msgstr "" -#: js/PenBlocks.js:757 +#: js/blocks/PenBlocks.js:1111 #.TRANS: set the level of vividness of the pen color msgid "set grey" msgstr "" -#: js/PenBlocks.js:761 +#: js/blocks/PenBlocks.js:1119 msgid "The Set grey block changes the vividness of the pen color." msgstr "" -#: js/PenBlocks.js:800 +#: js/blocks/PenBlocks.js:1172 msgid "set color" msgstr "ka ts'at'ba' an mukuxtaláb" -#: js/PenBlocks.js:806 +#: js/blocks/PenBlocks.js:1182 msgid "The Set-color block changes the pen color." msgstr "" -#: js/VolumeBlocks.js:35 -msgid "synth volume" -msgstr "" - -#: js/VolumeBlocks.js:39 -msgid "The Synth volume block returns the current volume of the current synthesizer." -msgstr "" - -#: js/VolumeBlocks.js:47 -#: js/musicutils.js:730 -#: js/synthutils.js:56 -#.TRANS: musical instrument -msgid "piano" -msgstr "" - -#: js/VolumeBlocks.js:105 -msgid "master volume" -msgstr "" - -#: js/VolumeBlocks.js:109 -msgid "The Master volume block returns the master volume." -msgstr "" - -#: js/VolumeBlocks.js:355 -#: js/VolumeBlocks.js:524 -msgid "set synth volume" -msgstr "" - -#: js/VolumeBlocks.js:362 -#: js/VolumeBlocks.js:545 -msgid "synth" -msgstr "" - -#: js/VolumeBlocks.js:403 -#: js/VolumeBlocks.js:577 -#: js/VolumeBlocks.js:740 -#: js/VolumeActions.js:173 -msgid "Setting volume to 0." -msgstr "" - -#: js/VolumeBlocks.js:440 -msgid "Synth not found" -msgstr "" - -#: js/VolumeBlocks.js:494 -msgid "set drum volume" -msgstr "" - -#: js/VolumeBlocks.js:530 -msgid "The Set synth volume block will change the volume of a particular synth," -msgstr "" - -#: js/VolumeBlocks.js:532 -msgid "eg guitar violin snare drum etc." -msgstr "" - -#: js/VolumeBlocks.js:534 -msgid "The default volume is 50." -msgstr "" - -#: js/VolumeBlocks.js:536 -msgid "The range is 0 for silence to 100 for full volume." -msgstr "" - -#: js/VolumeBlocks.js:597 -msgid "set panning" -msgstr "" - -#: js/VolumeBlocks.js:603 -msgid "The Set Panning block sets the panning for all synthesizers." -msgstr "" - -#: js/VolumeBlocks.js:625 -msgid "Warning: Sound is coming out from only the left or right side." -msgstr "" - -#: js/VolumeBlocks.js:647 -#: js/VolumeBlocks.js:695 -msgid "set master volume" -msgstr "" - -#: js/VolumeBlocks.js:653 -msgid "The Set master volume block sets the volume for all synthesizers." -msgstr "" - -#: js/VolumeBlocks.js:784 -msgid "The Set relative volume block changes the volume of the contained notes." -msgstr "" - -#: js/VolumeBlocks.js:791 -msgid "set relative volume" -msgstr "" - -#: js/VolumeBlocks.js:857 -msgid "decrescendo" -msgstr "" - -#: js/VolumeBlocks.js:921 -msgid "crescendo" -msgstr "" - -#: js/ToneBlocks.js:34 -msgid "oscillator" -msgstr "" - -#: js/ToneBlocks.js:44 -#: js/timbre.js:1562 -#.TRANS: Partials refers to the number of sine waves combined into the sound. -msgid "partials" -msgstr "" - -#: js/ToneBlocks.js:76 -msgid "You are adding multiple oscillator blocks." -msgstr "" - -#: js/ToneBlocks.js:144 -#: js/timbre.js:1225 -#.TRANS: a duo synthesizer combines a synth with a sequencer -msgid "duo synth" -msgstr "" - -#: js/ToneBlocks.js:149 -msgid "The Duo synth block is a duo-frequency modulator used to define a timbre." -msgstr "" - -#: js/ToneBlocks.js:157 -#: js/timbre.js:1476 -msgid "vibrato rate" -msgstr "" - -#: js/ToneBlocks.js:157 -msgid "vibrato intensity" -msgstr "" - -#: js/ToneBlocks.js:185 -#: js/timbre.js:1221 -#.TRANS: AM (amplitude modulation) synthesizer -msgid "AM synth" -msgstr "" - -#: js/ToneBlocks.js:189 -msgid "The AM synth block is an amplitude modulator used to define a timbre." -msgstr "" - -#: js/ToneBlocks.js:224 -#: js/timbre.js:1223 -#.TRANS: FM (frequency modulation) synthesizer -msgid "FM synth" +#: js/blocks/PitchBlocks.js:141 +#.TRANS: musical transposition (adjustment of pitch up or down) +msgid "transposition" msgstr "" -#: js/ToneBlocks.js:228 -msgid "The FM synth block is a frequency modulator used to define a timbre." +#: js/blocks/PitchBlocks.js:168 +#.TRANS: step down one note in current musical scale +msgid "scalar step down" msgstr "" -#: js/ToneBlocks.js:262 -msgid "partial" +#: js/blocks/PitchBlocks.js:172 +msgid "The Scalar step down block returns the number of semi-tones down to the previous note in the current key and mode." msgstr "" -#: js/ToneBlocks.js:265 -msgid "The Partial block is used to specify a weight for a specific partial harmonic." +#: js/blocks/PitchBlocks.js:190 +#.TRANS: step up one note in current musical scale +msgid "scalar step up" msgstr "" -#: js/ToneBlocks.js:284 -#.TRANS: partials are weighted components in a harmonic series -msgid "Partial weight must be between 0 and 1." +#: js/blocks/PitchBlocks.js:194 +msgid "The Scalar step up block returns the number of semi-tones up to the next note in the current key and mode." msgstr "" -#: js/ToneBlocks.js:297 -#.TRANS: partials are weighted components in a harmonic series -msgid "Partial block should be used inside of a Weighted-partials block." +#: js/blocks/PitchBlocks.js:212 +#.TRANS: the change measured in half-steps between the current pitch and the previous pitch +msgid "change in pitch" msgstr "" -#: js/ToneBlocks.js:325 -#.TRANS: partials are weighted components in a harmonic series -msgid "weighted partials" +#: js/blocks/PitchBlocks.js:216 +msgid "The Change in pitch block is the difference (in half steps) between the current pitch being played and the previous pitch played." msgstr "" -#: js/ToneBlocks.js:383 -msgid "The Harmonic block will add harmonics to the contained notes." +#: js/blocks/PitchBlocks.js:243 +#.TRANS: the change measured in scale-steps between the current pitch and the previous pitch +msgid "scalar change in pitch" msgstr "" -#: js/ToneBlocks.js:390 -#.TRANS: A harmonic is an overtone. -msgid "harmonic" +#: js/blocks/PitchBlocks.js:250 +#: js/blocks/PitchBlocks.js:432 +#: js/blocks/PitchBlocks.js:1667 +#: js/turtleactions/DictActions.js:89 +#: js/widgets/temperament.js:610 +#: js/widgets/temperament.js:614 +#: js/widgets/temperament.js:855 +#.TRANS: convert current note to piano key (1-88) +#.TRANS: a mapping of pitch to the 88 piano keys +msgid "pitch number" msgstr "" -#: js/ToneBlocks.js:431 -msgid "The Distortion block adds distortion to the pitch." +#: js/blocks/PitchBlocks.js:256 +msgid "The Pitch number block is the value of the pitch of the note currently being played." msgstr "" -#: js/ToneBlocks.js:438 -#: js/timbre.js:2100 -#.TRANS: distortion is an alteration in the sound -msgid "distortion" +#: js/blocks/PitchBlocks.js:329 +#: js/blocks/PitchBlocks.js:433 +#.TRANS: the current pitch expressed in Hertz +msgid "pitch in hertz" msgstr "" -#: js/ToneBlocks.js:487 -msgid "The Tremolo block adds a wavering effect." +#: js/blocks/PitchBlocks.js:334 +msgid "The Pitch in Hertz block is the value in Hertz of the pitch of the note currently being played." msgstr "" -#: js/ToneBlocks.js:495 -#: js/timbre.js:2092 -#.TRANS: a wavering effect in a musical tone -msgid "tremolo" +#: js/blocks/PitchBlocks.js:367 +#: js/turtleactions/DictActions.js:87 +msgid "current pitch" msgstr "" -#: js/ToneBlocks.js:500 -#: js/ToneBlocks.js:569 -#: js/ToneBlocks.js:630 -#: js/ToneBlocks.js:689 -#: js/timbre.js:2134 -#: js/timbre.js:2222 -#: js/timbre.js:2317 -#: js/timbre.js:2419 -#.TRANS: rate at which tremolo wavers -msgid "rate" +#: js/blocks/PitchBlocks.js:373 +msgid "The Current Pitch block is used with the Pitch Converter block. In the example above, current pitch, sol 4, is displayed as 392 hertz." msgstr "" -#: js/ToneBlocks.js:502 -#: js/ToneBlocks.js:630 -#: js/timbre.js:2137 -#: js/timbre.js:2328 -#.TRANS: amplitude of tremolo waver -msgid "depth" +#: js/blocks/PitchBlocks.js:410 +msgid "This block converts the pitch value of the last note played into different formats such as hertz, letter name, pitch number, et al." msgstr "" -#: js/ToneBlocks.js:559 -msgid "The Phaser block adds a sweeping sound." +#: js/blocks/PitchBlocks.js:434 +msgid "alphabet" msgstr "" -#: js/ToneBlocks.js:566 -#: js/timbre.js:2098 -#.TRANS: alter the phase of the sound -msgid "phaser" +#: js/blocks/PitchBlocks.js:436 +#.TRANS: Translate as "alphabet class" +msgid "letter class" msgstr "" -#: js/ToneBlocks.js:569 -#: js/timbre.js:2422 -msgid "octaves" +#: js/blocks/PitchBlocks.js:437 +msgid "solfege class" msgstr "" -#: js/ToneBlocks.js:569 -#: js/timbre.js:2425 -msgid "base frequency" +#: js/blocks/PitchBlocks.js:438 +msgid "staff y" msgstr "" -#: js/ToneBlocks.js:619 -msgid "The Chorus block adds a chorus effect." +#: js/blocks/PitchBlocks.js:439 +msgid "solfege syllable" msgstr "" -#: js/ToneBlocks.js:627 -#: js/timbre.js:2096 -#.TRANS: musical effect to simulate a choral sound -msgid "chorus" +#: js/blocks/PitchBlocks.js:440 +msgid "pitch class" msgstr "" -#: js/ToneBlocks.js:630 -msgid "delay" +#: js/blocks/PitchBlocks.js:441 +msgid "scalar class" msgstr "" -#: js/ToneBlocks.js:678 -msgid "The Vibrato block adds a rapid, slight variation in pitch." +#: js/blocks/PitchBlocks.js:443 +msgid "nth degree" msgstr "" -#: js/ToneBlocks.js:686 -#: js/timbre.js:2094 -#.TRANS: a rapid, slight variation in pitch -msgid "vibrato" +#: js/blocks/PitchBlocks.js:444 +msgid "pitch to shade" msgstr "" -#: js/ToneBlocks.js:689 -#: js/timbre.js:2221 -msgid "intensity" +#: js/blocks/PitchBlocks.js:445 +msgid "pitch to color" msgstr "" -#: js/ToneBlocks.js:733 -#.TRANS: select synthesizer -msgid "set synth" +#: js/blocks/PitchBlocks.js:629 +#: js/widgets/musickeyboard.js:735 +#.TRANS: MIDI is a technical standard for electronic music +msgid "MIDI" msgstr "" -#: js/ToneBlocks.js:804 -msgid "synth name" +#: js/blocks/PitchBlocks.js:642 +#.TRANS: set an offset associated with the numeric piano keyboard mapping +msgid "set pitch number offset" msgstr "" -#: js/ToneBlocks.js:842 -msgid "set default instrument" +#: js/blocks/PitchBlocks.js:645 +msgid "The Set pitch number offset block is used to set the offset for mapping pitch numbers to pitch and octave." msgstr "" -#: js/ToneBlocks.js:895 -#: js/ToneBlocks.js:943 -#.TRANS: set the characteristics of a custom instrument -msgid "set instrument" +#: js/blocks/PitchBlocks.js:679 +#.TRANS: convert piano key number (1-88) to pitch +msgid "number to pitch" msgstr "" -#: js/ToneBlocks.js:898 -#: js/ToneBlocks.js:926 -#: js/ToneBlocks.js:932 -msgid "The Set instrument block selects a voice for the synthesizer," +#: js/blocks/PitchBlocks.js:682 +msgid "The Number to pitch block will convert a pitch number to a pich name." msgstr "" -#: js/ToneBlocks.js:900 -#: js/ToneBlocks.js:934 -msgid "eg guitar piano violin or cello." +#: js/blocks/PitchBlocks.js:715 +#.TRANS: convert piano key number (1-88) to octave +msgid "number to octave" msgstr "" -#: js/ToneBlocks.js:1015 -msgid "Import a sound file to use as an instrument and set its pitch center." +#: js/blocks/PitchBlocks.js:717 +msgid "The Number to octave block will convert a pitch number to an octave." msgstr "" -#: js/ToneBlocks.js:1110 -msgid "Upload a sound file to connect with the sample block." +#: js/blocks/PitchBlocks.js:726 +msgid "y to pitch" msgstr "" -#: js/MeterBlocks.js:34 -#.TRANS: musical meter (time signature), e.g., 4:4 -msgid "current meter" +#: js/blocks/PitchBlocks.js:729 +msgid "Y to pitch block will convert a staff y position to corresponding pitch notation." msgstr "" -#: js/MeterBlocks.js:85 -#.TRANS: number of beats per minute -msgid "beat factor" +#: js/blocks/PitchBlocks.js:841 +msgid "accidental selector" msgstr "" -#: js/MeterBlocks.js:161 -msgid "The Beats per minute block returns the current beats per minute." +#: js/blocks/PitchBlocks.js:844 +msgid "The Accidental selector block is used to choose between double-sharp, sharp, natural, flat, and double-flat." msgstr "" -#: js/MeterBlocks.js:169 -#: js/status.js:152 -#.TRANS: number of beats played per minute -msgid "beats per minute2" +#: js/blocks/PitchBlocks.js:858 +msgid "Pitch can be specified in terms of ni dha pa ma ga re sa." msgstr "" -#: js/MeterBlocks.js:169 -#: js/MeterBlocks.js:1056 -#: js/MeterBlocks.js:1133 -#: js/MeterBlocks.js:1211 -#.TRANS: sets tempo by defining a beat and beats per minute -msgid "beats per minute" +#: js/blocks/PitchBlocks.js:872 +msgid "Pitch can be specified in terms of C D E F G A B." msgstr "" -#: js/MeterBlocks.js:233 -#.TRANS: count of current musical measure in meter -msgid "measure count" +#: js/blocks/PitchBlocks.js:884 +msgid "solfege" msgstr "" -#: js/MeterBlocks.js:241 -msgid "The Measure count block returns the current measure." +#: js/blocks/PitchBlocks.js:887 +msgid "Pitch can be specified in terms of do re mi fa sol la ti." msgstr "" -#: js/MeterBlocks.js:290 -#.TRANS: count of current beat in the meter -msgid "beat count" +#: js/blocks/PitchBlocks.js:922 +msgid "The Invert block rotates any contained notes around a target note." msgstr "" -#: js/MeterBlocks.js:300 -#: js/MeterBlocks.js:311 -#: js/MeterBlocks.js:565 -#: js/MeterBlocks.js:576 -msgid "The Beat count block is the number of the current beat," +#: js/blocks/PitchBlocks.js:929 +#.TRANS: pitch inversion rotates a pitch around another pitch +msgid "invert" msgstr "" -#: js/MeterBlocks.js:313 -#: js/MeterBlocks.js:578 -msgid "eg 1, 2, 3, or 4." +#: js/blocks/PitchBlocks.js:968 +#.TRANS: pitch inversion rotates a pitch around another pitch (odd number) +msgid "invert (odd)" msgstr "" -#: js/MeterBlocks.js:368 -#.TRANS: count the number of notes -msgid "sum note values" +#: js/blocks/PitchBlocks.js:1001 +#.TRANS: pitch inversion rotates a pitch around another pitch (even number) +msgid "invert (even)" msgstr "" -#: js/MeterBlocks.js:376 -#: js/MeterBlocks.js:440 -msgid "The Note counter block can be used to count the number of contained notes." +#: js/blocks/PitchBlocks.js:1022 +#.TRANS: register is the octave of the current pitch +msgid "register" msgstr "" -#: js/MeterBlocks.js:432 -#.TRANS: count the number of notes -msgid "note counter" +#: js/blocks/PitchBlocks.js:1026 +msgid "The Register block provides an easy way to modify the register (octave) of the notes that follow it." msgstr "" -#: js/MeterBlocks.js:496 -#.TRANS: number of whole notes that have been played -msgid "whole notes played" +#: js/blocks/PitchBlocks.js:1047 +#.TRANS: cents are units used to specify the ratio between pitches. There are 100 cents between successive notes. +msgid "50 cents" msgstr "" -#: js/MeterBlocks.js:505 -msgid "The Whole notes played block returns the total number of whole notes played." +#: js/blocks/PitchBlocks.js:1102 +msgid "The Semi-tone transposition block will shift the pitches contained inside Note blocks up (or down) by half steps." msgstr "" -#: js/MeterBlocks.js:555 -#: js/DictActions.js:83 -#.TRANS: number of notes that have been played -msgid "notes played" +#: js/blocks/PitchBlocks.js:1104 +msgid "In the example shown above, sol is shifted up to sol#." msgstr "" -#: js/MeterBlocks.js:653 -msgid "The No clock block decouples the notes from the master clock." +#: js/blocks/PitchBlocks.js:1110 +#.TRANS: adjust the amount of shift (up or down) of a pitch +msgid "semi-tone transpose" msgstr "" -#: js/MeterBlocks.js:661 -#.TRANS: don't lock notes to master clock -msgid "no clock" +#: js/blocks/PitchBlocks.js:1143 +msgid "The Transpose by Ratio block will shift the pitches contained inside Note blocks up (or down) by a ratio" msgstr "" -#: js/MeterBlocks.js:700 -msgid "on weak beat do" +#: js/blocks/PitchBlocks.js:1149 +#.TRANS: adjust the amount of shift (up or down) of a pitch +msgid "transpose by ratio" msgstr "" -#: js/MeterBlocks.js:705 -msgid "The On-weak-beat block lets you specify actions to take on weak (off) beats." +#: js/blocks/PitchBlocks.js:1232 +#.TRANS: down sixth means the note is five scale degrees below current note +msgid "down sixth" msgstr "" -#: js/MeterBlocks.js:750 -msgid "on strong beat" +#: js/blocks/PitchBlocks.js:1251 +#.TRANS: down third means the note is two scale degrees below current note +msgid "down third" msgstr "" -#: js/MeterBlocks.js:758 -msgid "The On-strong-beat block lets you specify actions to take on specified beats." +#: js/blocks/PitchBlocks.js:1270 +#.TRANS: seventh means the note is the six scale degrees above current note +msgid "seventh" msgstr "" -#: js/MeterBlocks.js:769 -msgid "beat" +#: js/blocks/PitchBlocks.js:1289 +#.TRANS: sixth means the note is the five scale degrees above current note +msgid "sixth" msgstr "" -#: js/MeterBlocks.js:813 -msgid "on every beat do" +#: js/blocks/PitchBlocks.js:1308 +#.TRANS: fifth means the note is the four scale degrees above current note +msgid "fifth" msgstr "" -#: js/MeterBlocks.js:821 -msgid "The On-every-beat block lets you specify actions to take on every beat." +#: js/blocks/PitchBlocks.js:1328 +#.TRANS: fourth means the note is three scale degrees above current note +msgid "fourth" msgstr "" -#: js/MeterBlocks.js:874 -msgid "on every note do" +#: js/blocks/PitchBlocks.js:1347 +#.TRANS: third means the note is two scale degrees above current note +msgid "third" msgstr "" -#: js/MeterBlocks.js:882 -msgid "The On-every-note block lets you specify actions to take on every note." +#: js/blocks/PitchBlocks.js:1366 +#.TRANS: second means the note is one scale degree above current note +msgid "second" msgstr "" -#: js/MeterBlocks.js:928 -#: js/MeterBlocks.js:999 -#.TRANS: sets tempo by defining a beat and beats per minute -msgid "master beats per minute" +#: js/blocks/PitchBlocks.js:1407 +msgid "The Scalar transposition block will shift the pitches contained inside Note blocks up (or down) the scale." msgstr "" -#: js/MeterBlocks.js:952 -#: js/MeterBlocks.js:1078 -#: js/MeterBlocks.js:1135 -msgid "bpm" +#: js/blocks/PitchBlocks.js:1409 +msgid "In the example shown above, sol is shifted up to la." msgstr "" -#: js/MeterBlocks.js:952 -#: js/MeterBlocks.js:1078 -#: js/MeterBlocks.js:1135 -msgid "beat value" +#: js/blocks/PitchBlocks.js:1416 +#.TRANS: adjust the amount of shift (up or down) of a pitch by musical scale (scalar) steps +msgid "scalar transpose" msgstr "" -#: js/MeterBlocks.js:1024 -#: js/MeterBlocks.js:1167 -#: js/MeterBlocks.js:1241 -msgid "Beats per minute must be > 30." +#: js/blocks/PitchBlocks.js:1451 +msgid "The Accidental block is used to create sharps and flats" msgstr "" -#: js/MeterBlocks.js:1027 -#: js/MeterBlocks.js:1170 -#: js/MeterBlocks.js:1244 -msgid "Maximum beats per minute is 1000." +#: js/blocks/PitchBlocks.js:1458 +#.TRANS: An accidental is a modification to a pitch, e.g., sharp or flat. +msgid "accidental override" msgstr "" -#: js/MeterBlocks.js:1068 -msgid "The Beats per minute block sets the number of 1/4 notes per minute." +#: js/blocks/PitchBlocks.js:1581 +msgid "The Hertz block (in combination with a Number block) will play a sound at the specified frequency." msgstr "" -#: js/MeterBlocks.js:1279 -#.TRANS: anacrusis -msgid "pickup" +#: js/blocks/PitchBlocks.js:1671 +msgid "The Pitch Number block will play a pitch associated by its number, e.g. 0 for C and 7 for G." msgstr "" -#: js/MeterBlocks.js:1367 -msgid "number of beats" +#: js/blocks/PitchBlocks.js:1703 +#: js/blocks/PitchBlocks.js:1745 +#.TRANS: a numeric mapping of the notes in an octave based on the musical mode +#.TRANS: a numeric mapping of the notes in an octave based on the musical mode +msgid "nth modal pitch" msgstr "" -#: js/DictBlocks.js:77 -msgid "show dictionary" +#: js/blocks/PitchBlocks.js:1706 +msgid "n^th Modal Pitch takes the pattern of pitches in semitones for a mode and makes each point a degree of the mode," msgstr "" -#: js/DictBlocks.js:129 -msgid "The Dictionary block returns a dictionary." +#: js/blocks/PitchBlocks.js:1708 +msgid "starting from 1 and regardless of tonal framework (i.e. not always 8 notes in the octave)" msgstr "" -#: js/DictBlocks.js:197 -#: js/DictBlocks.js:339 -msgid "The Get-dict block returns a value in the dictionary for a specified key." +#: js/blocks/PitchBlocks.js:1749 +msgid "N^th Modal Pitch takes a number as an input as the n^th degree for the given mode. 0 is the first position, 1 is the second, -1 is the note before the first etc." msgstr "" -#: js/DictBlocks.js:212 -#: js/DictBlocks.js:354 -#.TRANS: retrieve a value from the dictionary with a given key -msgid "get value" +#: js/blocks/PitchBlocks.js:1751 +msgid "The pitches change according to the mode specified without any need for respellings." msgstr "" -#: js/DictBlocks.js:215 -#: js/DictBlocks.js:216 -#: js/DictBlocks.js:289 -#: js/DictBlocks.js:290 -#: js/DictBlocks.js:357 -#: js/DictBlocks.js:430 -#: js/DictBlocks.js:431 -msgid "key2" +#: js/blocks/PitchBlocks.js:1790 +msgid "Scale Degree is a common convention in music. Scale Degree offers seven possible positions in the scale (1-7) and can be modified via accidentals." msgstr "" -#: js/DictBlocks.js:271 -#: js/DictBlocks.js:411 -msgid "The Set-dict block sets a value in the dictionary for a specified key." +#: js/blocks/PitchBlocks.js:1792 +msgid "Scale Degree 1 is always the first pitch in a given scale, regardless of octave." msgstr "" -#: js/DictBlocks.js:286 -#: js/DictBlocks.js:427 -#.TRANS: set a value in the dictionary for a given key -msgid "set value" +#: js/blocks/PitchBlocks.js:1814 +#.TRANS: step some number of notes in current musical scale +msgid "scalar step" msgstr "" -#: js/ExtrasBlocks.js:33 -msgid "fraction" +#: js/blocks/PitchBlocks.js:1819 +msgid "The Scalar Step block (in combination with a Number block) will play the next pitch in a scale," msgstr "" -#: js/ExtrasBlocks.js:36 -msgid "Convert a float to a fraction" +#: js/blocks/PitchBlocks.js:1821 +msgid "eg if the last note played was sol, Scalar Step 1 will play la." msgstr "" -#: js/ExtrasBlocks.js:93 -msgid "save as ABC" +#: js/blocks/PitchBlocks.js:1857 +msgid "The Pitch block specifies the pitch name and octave of a note that together determine the frequency of the note." msgstr "" -#: js/ExtrasBlocks.js:96 -#: js/ExtrasBlocks.js:132 -#: js/ExtrasBlocks.js:168 -msgid "title" +#: js/blocks/ProgramBlocks.js:33 +msgid "The Load-heap-from-app block loads the heap from a web page." msgstr "" -#: js/ExtrasBlocks.js:129 -msgid "save as Lilypond" +#: js/blocks/ProgramBlocks.js:44 +#.TRANS: load the heap contents from a URL +msgid "load heap from App" msgstr "" -#: js/ExtrasBlocks.js:165 -msgid "save as SVG" +#: js/blocks/ProgramBlocks.js:95 +msgid "Error parsing JSON data:" msgstr "" -#: js/ExtrasBlocks.js:216 -msgid "no background" +#: js/blocks/ProgramBlocks.js:100 +msgid "404: Page not found" msgstr "" -#: js/ExtrasBlocks.js:219 -msgid "The No background block eliminates the background from the saved SVG output." +#: js/blocks/ProgramBlocks.js:133 +msgid "The Save-heap-to-app block saves the heap to a web page." msgstr "" -#: js/ExtrasBlocks.js:247 -msgid "show blocks" -msgstr "ka tejwa'mejdha' an kwene' t'ojlab" - -#: js/ExtrasBlocks.js:249 -msgid "The Show blocks block shows the blocks." +#: js/blocks/ProgramBlocks.js:144 +#.TRANS: save the heap contents to a URL +msgid "save heap to App" msgstr "" -#: js/ExtrasBlocks.js:274 -msgid "hide blocks" -msgstr "tsina' an kwene' t'ojláb" - -#: js/ExtrasBlocks.js:276 -msgid "The Hide blocks block hides the blocks." +#: js/blocks/ProgramBlocks.js:189 +msgid "Cannot find a valid heap for" msgstr "" -#: js/ExtrasBlocks.js:305 -#: js/ExtrasBlocks.js:335 -msgid "The Space block is used to add space between blocks." +#: js/blocks/ProgramBlocks.js:206 +msgid "The Load-heap block loads the heap from a file." msgstr "" -#: js/ExtrasBlocks.js:373 -msgid "wait" -msgstr "aychíj" +#: js/blocks/ProgramBlocks.js:217 +#.TRANS: load the heap from a file +msgid "load heap" +msgstr "" -#: js/ExtrasBlocks.js:376 -msgid "The Wait block pauses the program for a specified number of seconds." +#: js/blocks/ProgramBlocks.js:270 +msgid "The file you selected does not contain a valid heap." msgstr "" -#: js/ExtrasBlocks.js:430 -#: plugins/facebook.rtp:30 -msgid "comment" -msgstr "káw" +#: js/blocks/ProgramBlocks.js:275 +msgid "The loadHeap block needs a loadFile block." +msgstr "" -#: js/ExtrasBlocks.js:466 -msgid "print" -msgstr "ka wat'ba' ti úw" +#: js/blocks/ProgramBlocks.js:291 +msgid "The Set-heap block loads the heap." +msgstr "" -#: js/ExtrasBlocks.js:473 -msgid "The Print block displays text at the top of the screen." +#: js/blocks/ProgramBlocks.js:340 +msgid "The block you selected does not contain a valid heap." msgstr "" -#: js/ExtrasBlocks.js:579 -msgid "display grid" +#: js/blocks/ProgramBlocks.js:343 +msgid "The Set heap block needs a heap." msgstr "" -#: js/ExtrasBlocks.js:584 -msgid "The Display Grid Block changes the grid type" +#: js/blocks/ProgramBlocks.js:360 +msgid "The Load-dictionary block loads a dictionary from a file." msgstr "" -#: js/ExtrasBlocks.js:686 -#: js/ExtrasBlocks.js:705 -#: js/ExtrasBlocks.js:728 -#: js/ExtrasBlocks.js:751 -#: js/ExtrasBlocks.js:769 -#: js/ExtrasBlocks.js:788 -#: js/ExtrasBlocks.js:807 -#: js/ExtrasBlocks.js:826 -msgid "unknown" +#: js/blocks/ProgramBlocks.js:372 +#.TRANS: load a dictionary from a file +msgid "load dictionary" msgstr "" -#: js/SensorsBlocks.js:36 -msgid "The Input block prompts for keyboard input." +#: js/blocks/ProgramBlocks.js:390 +#: js/blocks/ProgramBlocks.js:658 +#: js/blocks/ToneBlocks.js:1025 +msgid "file" msgstr "" -#: js/SensorsBlocks.js:46 -msgid "input" +#: js/blocks/ProgramBlocks.js:444 +msgid "The file you selected does not contain a valid dictionary." msgstr "" -#: js/SensorsBlocks.js:64 -msgid "Input a value" +#: js/blocks/ProgramBlocks.js:449 +msgid "The load dictionary block needs a load file block." msgstr "" -#: js/SensorsBlocks.js:126 -msgid "input value" +#: js/blocks/ProgramBlocks.js:466 +msgid "The Set-dictionary block loads a dictionary." msgstr "" -#: js/SensorsBlocks.js:131 -msgid "The Input-value block stores the input." +#: js/blocks/ProgramBlocks.js:477 +#.TRANS: load a dictionary from a JSON +msgid "set dictionary" msgstr "" -#: js/SensorsBlocks.js:238 -msgid "loudness" -msgstr "tsapik an kawídh" +#: js/blocks/ProgramBlocks.js:546 +msgid "The block you selected does not contain a valid dictionary." +msgstr "" -#: js/SensorsBlocks.js:245 -msgid "The Loudness block returns the volume detected by the microphone." +#: js/blocks/ProgramBlocks.js:550 +msgid "The set dictionary block needs a dictionary." msgstr "" -#: js/SensorsBlocks.js:300 -msgid "click" +#: js/blocks/ProgramBlocks.js:567 +msgid "The Save-heap block saves the heap to a file." msgstr "" -#: js/SensorsBlocks.js:306 -msgid "The Click block triggers an event if a mouse has been clicked." +#: js/blocks/ProgramBlocks.js:578 +#.TRANS: save the heap to a file +msgid "save heap" msgstr "" -#: js/SensorsBlocks.js:313 -msgid "The Click block triggers an event if a turtle has been clicked." +#: js/blocks/ProgramBlocks.js:629 +msgid "The Save-dictionary block saves a dictionary to a file." msgstr "" -#: js/SensorsBlocks.js:342 -msgid "cursor over" +#: js/blocks/ProgramBlocks.js:640 +#.TRANS: save a dictionary to a file +msgid "save dictionary" msgstr "" -#: js/SensorsBlocks.js:387 -msgid "cursor out" +#: js/blocks/ProgramBlocks.js:720 +msgid "The Open palette block opens a palette." msgstr "" -#: js/SensorsBlocks.js:433 -msgid "cursor button down" +#: js/blocks/ProgramBlocks.js:727 +msgid "open palette" msgstr "" -#: js/SensorsBlocks.js:477 -msgid "cursor button up" +#: js/blocks/ProgramBlocks.js:785 +msgid "The Delete block block removes a block." msgstr "" -#: js/SensorsBlocks.js:638 -msgid "The Get red block returns the red component of the pixel under the mouse." +#: js/blocks/ProgramBlocks.js:797 +#.TRANS: Move this block to the trash. +msgid "delete block" msgstr "" -#: js/SensorsBlocks.js:644 -msgid "The Get red block returns the red component of the pixel under the turtle." +#: js/blocks/ProgramBlocks.js:861 +msgid "The Move block block moves a block." msgstr "" -#: js/SensorsBlocks.js:685 -#: plugins/rodi.rtp:216 -msgid "pixel color" +#: js/blocks/ProgramBlocks.js:869 +#.TRANS: Move the position of a block on the screen. +msgid "move block" msgstr "" -#: js/SensorsBlocks.js:690 -msgid "The Get pixel block returns the color of the pixel under the mouse." +#: js/blocks/ProgramBlocks.js:881 +#: js/blocks/ProgramBlocks.js:1048 +msgid "block number" msgstr "" -#: js/SensorsBlocks.js:696 -msgid "The Get pixel block returns the color of the pixel under the turtle." +#: js/blocks/ProgramBlocks.js:935 +#.TRANS: Run program beginning at this block. +msgid "run block" msgstr "" -#: js/SensorsBlocks.js:758 -msgid "time" -msgstr "k'ij" +#: js/blocks/ProgramBlocks.js:1025 +msgid "The Dock block block connections two blocks." +msgstr "" -#: js/SensorsBlocks.js:804 -msgid "cursor y" +#: js/blocks/ProgramBlocks.js:1036 +#.TRANS: We can connect a block to another block. +msgid "connect blocks" msgstr "" -#: js/SensorsBlocks.js:809 -msgid "The Cursor Y block returns the vertical position of the mouse." +#: js/blocks/ProgramBlocks.js:1048 +msgid "target block" msgstr "" -#: js/SensorsBlocks.js:845 -msgid "cursor x" +#: js/blocks/ProgramBlocks.js:1048 +msgid "connection number" msgstr "" -#: js/SensorsBlocks.js:850 -msgid "The Cursor X block returns the horizontal position of the mouse." +#: js/blocks/ProgramBlocks.js:1140 +msgid "The Make block block creates a new block." msgstr "" -#: js/SensorsBlocks.js:886 -msgid "mouse button" +#: js/blocks/ProgramBlocks.js:1152 +#.TRANS: Create a new block +msgid "make block" msgstr "" -#: js/SensorsBlocks.js:888 -msgid "The Mouse-button block returns True if the mouse button is pressed." +#: js/blocks/ProgramBlocks.js:1285 +msgid "Cannot find block" msgstr "" -#: js/SensorsBlocks.js:934 -msgid "to ASCII" +#: js/blocks/ProgramBlocks.js:1304 +#: js/blocks/ProgramBlocks.js:1313 +msgid "Warning: block argument type mismatch" msgstr "" -#: js/SensorsBlocks.js:938 -msgid "The To ASCII block converts numbers to letters." +#: js/blocks/ProgramBlocks.js:1347 +msgid "The Open project block is used to open a project from a web page." msgstr "" -#: js/SensorsBlocks.js:1005 -msgid "The Keyboard block returns computer keyboard input." +#: js/blocks/ProgramBlocks.js:1357 +msgid "open project" msgstr "" -#: js/IntervalsActions.js:216 -msgid "Adding missing pitch number 0." +#: js/blocks/ProgramBlocks.js:1410 +msgid "Please enter a valid URL." msgstr "" -#: js/IntervalsActions.js:224 -msgid "Ignoring pitch numbers less than zero or greater than eleven." +#: js/blocks/ToneBlocks.js:34 +msgid "oscillator" msgstr "" -#: js/IntervalsActions.js:230 -msgid "Ignoring duplicate pitch numbers." +#: js/blocks/ToneBlocks.js:42 +#: js/blocks/WidgetBlocks.js:179 +#: js/widgets/timbre.js:1558 +#: js/widgets/timbre.js:1808 +#.TRANS: there are different types (sine, triangle, square...) of oscillators. +#.TRANS: type of filter, e.g., lowpass, highpass, etc. +msgid "type" msgstr "" -#: js/PitchActions.js:88 -msgid "The Scalar Step Block must be used inside of a Note Block." +#: js/blocks/ToneBlocks.js:44 +#: js/widgets/timbre.js:1562 +#.TRANS: Partials refers to the number of sine waves combined into the sound. +msgid "partials" msgstr "" -#: js/PitchActions.js:107 -msgid "The Scalar Step Block must be preceded by a Pitch Block." +#: js/blocks/ToneBlocks.js:76 +msgid "You are adding multiple oscillator blocks." msgstr "" -#: js/DrumActions.js:231 -msgid "Noise Block: Did you mean to use a Note block?" +#: js/blocks/ToneBlocks.js:144 +#: js/widgets/timbre.js:1225 +#.TRANS: a duo synthesizer combines a synth with a sequencer +msgid "duo synth" msgstr "" -#: js/MeterActions.js:101 -#: js/MeterActions.js:139 -msgid "beats per minute must be greater than" +#: js/blocks/ToneBlocks.js:149 +msgid "The Duo synth block is a duo-frequency modulator used to define a timbre." msgstr "" -#: js/MeterActions.js:111 -#: js/MeterActions.js:149 -msgid "maximum" +#: js/blocks/ToneBlocks.js:157 +#: js/widgets/timbre.js:1476 +msgid "vibrato rate" msgstr "" -#: js/MeterActions.js:117 -#: js/MeterActions.js:155 -msgid "beats per minute is" +#: js/blocks/ToneBlocks.js:157 +msgid "vibrato intensity" msgstr "" -#: js/ToneActions.js:134 -msgid "Vibrato intensity must be between 1 and 100." +#: js/blocks/ToneBlocks.js:185 +#: js/widgets/timbre.js:1221 +#.TRANS: AM (amplitude modulation) synthesizer +msgid "AM synth" msgstr "" -#: js/ToneActions.js:139 -msgid "Vibrato rate must be greater than 0." +#: js/blocks/ToneBlocks.js:189 +msgid "The AM synth block is an amplitude modulator used to define a timbre." msgstr "" -#: js/ToneActions.js:192 -#: js/ToneActions.js:265 -#.TRANS: Depth is the intesity of the tremolo or chorus effect. -msgid "Depth is out of range." +#: js/blocks/ToneBlocks.js:224 +#: js/widgets/timbre.js:1223 +#.TRANS: FM (frequency modulation) synthesizer +msgid "FM synth" msgstr "" -#: js/ToneActions.js:301 -msgid "Distortion must be from 0 to 100." +#: js/blocks/ToneBlocks.js:228 +msgid "The FM synth block is a frequency modulator used to define a timbre." msgstr "" -#: js/ToneActions.js:332 -#.TRANS: partials components in a harmonic series -msgid "Partial must be greater than or equal to 0." +#: js/blocks/ToneBlocks.js:262 +msgid "partial" msgstr "" -#: js/ToneActions.js:378 -#: js/ToneActions.js:417 -#: js/ToneActions.js:456 -#: js/timbre.js:782 -msgid "Unable to use synth due to existing oscillator" +#: js/blocks/ToneBlocks.js:265 +msgid "The Partial block is used to specify a weight for a specific partial harmonic." msgstr "" -#: js/ToneActions.js:388 -#: js/ToneActions.js:427 -msgid "The input cannot be negative." +#: js/blocks/ToneBlocks.js:284 +#.TRANS: partials are weighted components in a harmonic series +msgid "Partial weight must be between 0 and 1." msgstr "" -#: js/DictActions.js:75 -#: js/DictActions.js:153 -#: js/DictActions.js:188 -msgid "font" +#: js/blocks/ToneBlocks.js:297 +#.TRANS: partials are weighted components in a harmonic series +msgid "Partial block should be used inside of a Weighted-partials block." msgstr "" -#: js/musicutils.js:363 -#: js/musicutils.js:471 -#: js/pitchdrummatrix.js:151 -#: js/musickeyboard.js:2563 -msgid "rest" +#: js/blocks/ToneBlocks.js:325 +#.TRANS: partials are weighted components in a harmonic series +msgid "weighted partials" msgstr "" -#: js/musicutils.js:565 -#.TRANS: ordinal number. Please keep exactly one space between each number. -msgid "1st 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th" +#: js/blocks/ToneBlocks.js:383 +msgid "The Harmonic block will add harmonics to the contained notes." msgstr "" -#: js/musicutils.js:629 -#: js/musicutils.js:812 -#: js/musicutils.js:911 -#.TRANS: augmented is a music term related to intervals -msgid "augmented" +#: js/blocks/ToneBlocks.js:390 +#.TRANS: A harmonic is an overtone. +msgid "harmonic" msgstr "" -#: js/musicutils.js:631 -#: js/musicutils.js:813 -#: js/musicutils.js:910 -#.TRANS: diminished is a music term related to intervals and mode -msgid "diminished" +#: js/blocks/ToneBlocks.js:431 +msgid "The Distortion block adds distortion to the pitch." msgstr "" -#: js/musicutils.js:639 -#.TRANS: twelve semi-tone scale for music -msgid "chromatic" +#: js/blocks/ToneBlocks.js:438 +#: js/widgets/timbre.js:2100 +#.TRANS: distortion is an alteration in the sound +msgid "distortion" msgstr "" -#: js/musicutils.js:640 -msgid "algerian" +#: js/blocks/ToneBlocks.js:487 +msgid "The Tremolo block adds a wavering effect." msgstr "" -#: js/musicutils.js:641 -msgid "spanish" +#: js/blocks/ToneBlocks.js:495 +#: js/widgets/timbre.js:2092 +#.TRANS: a wavering effect in a musical tone +msgid "tremolo" msgstr "" -#: js/musicutils.js:643 -#.TRANS: modal scale in music -msgid "octatonic" +#: js/blocks/ToneBlocks.js:500 +#: js/blocks/ToneBlocks.js:569 +#: js/blocks/ToneBlocks.js:630 +#: js/blocks/ToneBlocks.js:689 +#: js/widgets/timbre.js:2134 +#: js/widgets/timbre.js:2222 +#: js/widgets/timbre.js:2317 +#: js/widgets/timbre.js:2419 +#.TRANS: rate at which tremolo wavers +msgid "rate" msgstr "" -#: js/musicutils.js:645 -#.TRANS: harmonic major scale in music -msgid "harmonic major" +#: js/blocks/ToneBlocks.js:502 +#: js/blocks/ToneBlocks.js:630 +#: js/widgets/timbre.js:2137 +#: js/widgets/timbre.js:2328 +#.TRANS: amplitude of tremolo waver +msgid "depth" msgstr "" -#: js/musicutils.js:647 -#.TRANS: natural minor scales in music -msgid "natural minor" +#: js/blocks/ToneBlocks.js:559 +msgid "The Phaser block adds a sweeping sound." msgstr "" -#: js/musicutils.js:649 -#.TRANS: harmonic minor scale in music -msgid "harmonic minor" +#: js/blocks/ToneBlocks.js:566 +#: js/widgets/timbre.js:2098 +#.TRANS: alter the phase of the sound +msgid "phaser" msgstr "" -#: js/musicutils.js:651 -#.TRANS: melodic minor scale in music -msgid "melodic minor" +#: js/blocks/ToneBlocks.js:569 +#: js/turtleactions/IntervalsActions.js:114 +#: js/widgets/timbre.js:2422 +msgid "octaves" msgstr "" -#: js/musicutils.js:655 -#.TRANS: modal scale for music -msgid "dorian" +#: js/blocks/ToneBlocks.js:569 +#: js/widgets/timbre.js:2425 +msgid "base frequency" msgstr "" -#: js/musicutils.js:657 -#.TRANS: modal scale for music -msgid "phrygian" +#: js/blocks/ToneBlocks.js:619 +msgid "The Chorus block adds a chorus effect." msgstr "" -#: js/musicutils.js:659 -#.TRANS: modal scale for music -msgid "lydian" +#: js/blocks/ToneBlocks.js:627 +#: js/widgets/timbre.js:2096 +#.TRANS: musical effect to simulate a choral sound +msgid "chorus" msgstr "" -#: js/musicutils.js:661 -#.TRANS: modal scale for music -msgid "mixolydian" +#: js/blocks/ToneBlocks.js:630 +msgid "delay" msgstr "" -#: js/musicutils.js:665 -#.TRANS: modal scale for music -msgid "locrian" +#: js/blocks/ToneBlocks.js:678 +msgid "The Vibrato block adds a rapid, slight variation in pitch." msgstr "" -#: js/musicutils.js:667 -#.TRANS: minor jazz scale for music -msgid "jazz minor" +#: js/blocks/ToneBlocks.js:686 +#: js/widgets/timbre.js:2094 +#.TRANS: a rapid, slight variation in pitch +msgid "vibrato" msgstr "" -#: js/musicutils.js:669 -#.TRANS: bebop scale for music -msgid "bebop" +#: js/blocks/ToneBlocks.js:689 +#: js/widgets/timbre.js:2221 +msgid "intensity" msgstr "" -#: js/musicutils.js:670 -msgid "arabic" +#: js/blocks/ToneBlocks.js:733 +#.TRANS: select synthesizer +msgid "set synth" msgstr "" -#: js/musicutils.js:671 -msgid "byzantine" +#: js/blocks/ToneBlocks.js:804 +msgid "synth name" msgstr "" -#: js/musicutils.js:673 -#.TRANS: musical scale for music by Verdi -msgid "enigmatic" +#: js/blocks/ToneBlocks.js:842 +msgid "set default instrument" msgstr "" -#: js/musicutils.js:674 -msgid "ethiopian" +#: js/blocks/ToneBlocks.js:895 +#: js/blocks/ToneBlocks.js:943 +#.TRANS: set the characteristics of a custom instrument +msgid "set instrument" msgstr "" -#: js/musicutils.js:676 -#.TRANS: Ethiopic scale for music -msgid "geez" +#: js/blocks/ToneBlocks.js:898 +#: js/blocks/ToneBlocks.js:926 +#: js/blocks/ToneBlocks.js:932 +msgid "The Set instrument block selects a voice for the synthesizer," msgstr "" -#: js/musicutils.js:677 -msgid "hindu" +#: js/blocks/ToneBlocks.js:900 +#: js/blocks/ToneBlocks.js:934 +msgid "eg guitar piano violin or cello." msgstr "" -#: js/musicutils.js:678 -msgid "hungarian" +#: js/blocks/ToneBlocks.js:1015 +msgid "Import a sound file to use as an instrument and set its pitch center." msgstr "" -#: js/musicutils.js:680 -#.TRANS: minor Romanian scale for music -msgid "romanian minor" +#: js/blocks/ToneBlocks.js:1110 +msgid "Upload a sound file to connect with the sample block." msgstr "" -#: js/musicutils.js:681 -msgid "spanish gypsy" +#: js/blocks/VolumeBlocks.js:35 +msgid "synth volume" msgstr "" -#: js/musicutils.js:683 -#.TRANS: musical scale for Mid-Eastern music -msgid "maqam" +#: js/blocks/VolumeBlocks.js:39 +msgid "The Synth volume block returns the current volume of the current synthesizer." msgstr "" -#: js/musicutils.js:685 -#.TRANS: minor blues scale for music -msgid "minor blues" +#: js/blocks/VolumeBlocks.js:105 +msgid "master volume" msgstr "" -#: js/musicutils.js:687 -#.TRANS: major blues scale for music -msgid "major blues" +#: js/blocks/VolumeBlocks.js:109 +msgid "The Master volume block returns the master volume." msgstr "" -#: js/musicutils.js:688 -msgid "whole tone" +#: js/blocks/VolumeBlocks.js:355 +#: js/blocks/VolumeBlocks.js:524 +msgid "set synth volume" msgstr "" -#: js/musicutils.js:690 -#.TRANS: pentatonic is a general term that means "five note scale". This scale is typically known as "minor pentatonic" -msgid "minor pentatonic" +#: js/blocks/VolumeBlocks.js:362 +#: js/blocks/VolumeBlocks.js:545 +msgid "synth" msgstr "" -#: js/musicutils.js:692 -#.TRANS: pentatonic is a general term that means "five note scale". This scale is typically known as "major pentatonic" -msgid "major pentatonic" +#: js/blocks/VolumeBlocks.js:403 +#: js/blocks/VolumeBlocks.js:577 +#: js/blocks/VolumeBlocks.js:740 +#: js/turtleactions/VolumeActions.js:173 +msgid "Setting volume to 0." msgstr "" -#: js/musicutils.js:693 -msgid "chinese" +#: js/blocks/VolumeBlocks.js:440 +msgid "Synth not found" msgstr "" -#: js/musicutils.js:694 -msgid "egyptian" +#: js/blocks/VolumeBlocks.js:494 +msgid "set drum volume" msgstr "" -#: js/musicutils.js:696 -#.TRANS: https://en.wikipedia.org/wiki/Hirajoshi_scale NOTE: There are three different versions of this scale -msgid "hirajoshi" +#: js/blocks/VolumeBlocks.js:530 +msgid "The Set synth volume block will change the volume of a particular synth," msgstr "" -#: js/musicutils.js:697 -msgid "Japan" +#: js/blocks/VolumeBlocks.js:532 +msgid "eg guitar violin snare drum etc." msgstr "" -#: js/musicutils.js:699 -#.TRANS: https://en.wikipedia.org/wiki/In_scale and https://en.wikipedia.org/wiki/Sakura_Sakura -msgid "in" +#: js/blocks/VolumeBlocks.js:534 +msgid "The default volume is 50." msgstr "" -#: js/musicutils.js:701 -#.TRANS: https://en.wikipedia.org/wiki/Miny%C5%8D_scale -msgid "minyo" +#: js/blocks/VolumeBlocks.js:536 +msgid "The range is 0 for silence to 100 for full volume." msgstr "" -#: js/musicutils.js:703 -#.TRANS: Italian mathematician -msgid "fibonacci" +#: js/blocks/VolumeBlocks.js:597 +msgid "set panning" msgstr "" -#: js/musicutils.js:708 -#: js/musicutils.js:1106 -#.TRANS: lowpass filter -msgid "lowpass" +#: js/blocks/VolumeBlocks.js:603 +msgid "The Set Panning block sets the panning for all synthesizers." msgstr "" -#: js/musicutils.js:710 -#: js/musicutils.js:1107 -#.TRANS: bandpass filter -msgid "bandpass" +#: js/blocks/VolumeBlocks.js:625 +msgid "Warning: Sound is coming out from only the left or right side." msgstr "" -#: js/musicutils.js:712 -#: js/musicutils.js:1108 -#.TRANS: high-shelf filter -msgid "highshelf" +#: js/blocks/VolumeBlocks.js:647 +#: js/blocks/VolumeBlocks.js:695 +msgid "set master volume" msgstr "" -#: js/musicutils.js:714 -#: js/musicutils.js:1109 -#.TRANS: low-shelf filter -msgid "lowshelf" +#: js/blocks/VolumeBlocks.js:653 +msgid "The Set master volume block sets the volume for all synthesizers." msgstr "" -#: js/musicutils.js:716 -#: js/musicutils.js:1110 -#.TRANS: notch-shelf filter -msgid "notch" +#: js/blocks/VolumeBlocks.js:784 +msgid "The Set relative volume block changes the volume of the contained notes." msgstr "" -#: js/musicutils.js:718 -#: js/musicutils.js:1111 -#.TRANS: all-pass filter -msgid "allpass" +#: js/blocks/VolumeBlocks.js:791 +msgid "set relative volume" msgstr "" -#: js/musicutils.js:720 -#: js/musicutils.js:1112 -#.TRANS: peaking filter -msgid "peaking" +#: js/blocks/VolumeBlocks.js:857 +msgid "decrescendo" msgstr "" -#: js/musicutils.js:731 -#: js/synthutils.js:58 -#.TRANS: musical instrument -msgid "violin" +#: js/blocks/VolumeBlocks.js:921 +msgid "crescendo" msgstr "" -#: js/musicutils.js:732 -#: js/synthutils.js:60 -#.TRANS: viola musical instrument -msgid "viola" +#: js/blocks/WidgetBlocks.js:81 +#.TRANS: sound envelope (ADSR) +msgid "envelope" msgstr "" -#: js/musicutils.js:733 -#: js/synthutils.js:98 -#.TRANS: xylophone musical instrument -msgid "xylophone" +#: js/blocks/WidgetBlocks.js:89 +#.TRANS: Attack time is the time taken for initial run-up of level from nil to peak, beginning when the key is first pressed. +msgid "attack" msgstr "" -#: js/musicutils.js:734 -#: js/synthutils.js:120 -#.TRANS: vibraphone musical instrument -msgid "vibraphone" +#: js/blocks/WidgetBlocks.js:91 +#.TRANS: Decay time is the time taken for the subsequent run down from the attack level to the designated sustain level. +msgid "decay" msgstr "" -#: js/musicutils.js:735 -#: js/synthutils.js:62 -#.TRANS: musical instrument -msgid "cello" +#: js/blocks/WidgetBlocks.js:93 +#.TRANS: Sustain level is the level during the main sequence of the sound's duration, until the key is released. +msgid "sustain" msgstr "" -#: js/musicutils.js:737 -#: js/synthutils.js:66 -#.TRANS: viola musical instrument -msgid "double bass" +#: js/blocks/WidgetBlocks.js:95 +#.TRANS: Release time is the time taken for the level to decay from the sustain level to zero after the key is released. +msgid "release" msgstr "" -#: js/musicutils.js:738 -#: js/synthutils.js:68 -#: js/rhythmruler.js:2119 -#.TRANS: musical instrument -msgid "guitar" +#: js/blocks/WidgetBlocks.js:113 +msgid "Attack value should be from 0 to 100." msgstr "" -#: js/musicutils.js:739 -#: js/synthutils.js:70 -#.TRANS: musical instrument -msgid "acoustic guitar" +#: js/blocks/WidgetBlocks.js:116 +msgid "Decay value should be from 0 to 100." msgstr "" -#: js/musicutils.js:740 -#: js/synthutils.js:72 -#.TRANS: musical instrument -msgid "flute" +#: js/blocks/WidgetBlocks.js:119 +msgid "Sustain value should be from 0 to 100." msgstr "" -#: js/musicutils.js:741 -#: js/synthutils.js:74 -#.TRANS: musical instrument -msgid "clarinet" +#: js/blocks/WidgetBlocks.js:122 +msgid "Release value should be from 0-100." msgstr "" -#: js/musicutils.js:742 -#: js/synthutils.js:76 -#.TRANS: musical instrument -msgid "saxophone" +#: js/blocks/WidgetBlocks.js:140 +msgid "You are adding multiple envelope blocks." msgstr "" -#: js/musicutils.js:743 -#: js/synthutils.js:78 -#.TRANS: musical instrument -msgid "tuba" +#: js/blocks/WidgetBlocks.js:171 +#.TRANS: a filter removes some unwanted components from a signal +msgid "filter" msgstr "" -#: js/musicutils.js:744 -#: js/synthutils.js:80 -#.TRANS: musical instrument -msgid "trumpet" +#: js/blocks/WidgetBlocks.js:181 +#: js/widgets/timbre.js:1818 +#.TRANS: rolloff is the steepness of a change in frequency. +msgid "rolloff" msgstr "" -#: js/musicutils.js:745 -#: js/synthutils.js:82 -#.TRANS: musical instrument -msgid "oboe" +#: js/blocks/WidgetBlocks.js:213 +#.TRANS: rolloff is the steepness of a change in frequency. +msgid "Rolloff value should be either -12, -24, -48, or -96 decibels/octave." msgstr "" -#: js/musicutils.js:746 -#: js/synthutils.js:84 -#.TRANS: musical instrument -msgid "trombone" +#: js/blocks/WidgetBlocks.js:252 +msgid "The Temperament tool is used to define custom tuning." msgstr "" -#: js/musicutils.js:747 -#: js/synthutils.js:100 -#.TRANS: polytone synthesizer -msgid "electronic synth" +#: js/blocks/WidgetBlocks.js:332 +#: js/blocks/WidgetBlocks.js:1573 +#: js/widgets/sampler.js:547 +msgid "Upload a sample and adjust its pitch center." msgstr "" -#: js/musicutils.js:748 -#: js/synthutils.js:102 -#.TRANS: simple monotone synthesizer -msgid "simple 1" +#: js/blocks/WidgetBlocks.js:339 +#.TRANS: the speed at music is should be played. +msgid "sampler" +msgstr "" + +#: js/blocks/WidgetBlocks.js:517 +msgid "The Meter block opens a tool to select strong beats for the meter." msgstr "" -#: js/musicutils.js:749 -msgid "simple 2" +#: js/blocks/WidgetBlocks.js:573 +msgid "The oscilloscope block opens a tool to visualize waveforms." msgstr "" -#: js/musicutils.js:750 -msgid "simple 3" +#: js/blocks/WidgetBlocks.js:578 +msgid "oscilloscope" msgstr "" -#: js/musicutils.js:751 -msgid "simple 4" +#: js/blocks/WidgetBlocks.js:645 +msgid "The Custom mode block opens a tool to explore musical mode (the spacing of the notes in a scale)." msgstr "" -#: js/musicutils.js:753 -#: js/synthutils.js:49 -#.TRANS: brown noise synthesizer -msgid "brown noise" +#: js/blocks/WidgetBlocks.js:651 +#.TRANS: musical mode is the pattern of half-steps in an octave, e.g., Major or Minor modes +msgid "custom mode" msgstr "" -#: js/musicutils.js:754 -#: js/synthutils.js:51 -#.TRANS: pink noise synthesizer -msgid "pink noise" +#: js/blocks/WidgetBlocks.js:700 +msgid "The Tempo block opens a metronome to visualize the beat." msgstr "" -#: js/musicutils.js:756 -#: js/synthutils.js:127 -#: js/rhythmruler.js:1670 -#: js/rhythmruler.js:1928 -#.TRANS: musical instrument -msgid "snare drum" +#: js/blocks/WidgetBlocks.js:762 +msgid "The Arpeggio Widget is used to compose chord sequences." msgstr "" -#: js/musicutils.js:757 -#: js/synthutils.js:129 -#.TRANS: musical instrument -msgid "kick drum" +#: js/blocks/WidgetBlocks.js:837 +msgid "The Pitch drum matrix is used to map pitches to drum sounds." msgstr "" -#: js/musicutils.js:758 -#: js/synthutils.js:131 -#.TRANS: musical instrument -msgid "tom tom" +#: js/blocks/WidgetBlocks.js:842 +#.TRANS: makes a mapping between pitches and drum sounds +msgid "pitch-drum mapper" msgstr "" -#: js/musicutils.js:759 -#: js/synthutils.js:133 -#.TRANS: musical instrument -msgid "floor tom" +#: js/blocks/WidgetBlocks.js:891 +msgid "You must have at least one pitch block and one drum block in the matrix." msgstr "" -#: js/musicutils.js:760 -#: js/synthutils.js:135 -#.TRANS: musical instrument -msgid "bass drum" +#: js/blocks/WidgetBlocks.js:920 +msgid "The Pitch slider tool to is used to generate pitches at selected frequencies." msgstr "" -#: js/musicutils.js:761 -#: js/synthutils.js:137 -#.TRANS: a drum made from an inverted cup -msgid "cup drum" +#: js/blocks/WidgetBlocks.js:925 +#.TRANS: widget to generate pitches using a slider +msgid "pitch slider" msgstr "" -#: js/musicutils.js:762 -#: js/synthutils.js:139 -#.TRANS: musical instrument -msgid "darbuka drum" +#: js/blocks/WidgetBlocks.js:977 +msgid "chromatic keyboard" msgstr "" -#: js/musicutils.js:763 -#: js/synthutils.js:143 -#.TRANS: musical instrument -msgid "hi hat" +#: js/blocks/WidgetBlocks.js:1011 +#: js/blocks/WidgetBlocks.js:1077 +#.TRANS: widget to generate pitches using a slider +msgid "music keyboard" msgstr "" -#: js/musicutils.js:764 -#: js/synthutils.js:145 -#.TRANS: a small metal bell -msgid "ride bell" +#: js/blocks/WidgetBlocks.js:1062 +#: js/blocks/WidgetBlocks.js:1069 +msgid "The Music keyboard block opens a piano keyboard that can be used to create notes." msgstr "" -#: js/musicutils.js:765 -#: js/synthutils.js:147 -#.TRANS: musical instrument -msgid "cow bell" +#: js/blocks/WidgetBlocks.js:1128 +msgid "The Pitch staircase tool to is used to generate pitches from a given ratio." msgstr "" -#: js/musicutils.js:766 -msgid "japanese drum" +#: js/blocks/WidgetBlocks.js:1135 +#.TRANS: generate a progressive sequence of pitches +msgid "pitch staircase" msgstr "" -#: js/musicutils.js:767 -#: js/synthutils.js:153 -#.TRANS: musical instrument -msgid "japanese bell" +#: js/blocks/WidgetBlocks.js:1222 +msgid "The Rhythm Maker block opens a tool to create drum machines." msgstr "" -#: js/musicutils.js:768 -#: js/synthutils.js:149 -#.TRANS: musical instrument -msgid "triangle bell" +#: js/blocks/WidgetBlocks.js:1291 +msgid "G major scale" msgstr "" -#: js/musicutils.js:769 -#: js/synthutils.js:151 -#.TRANS: musical instrument -msgid "finger cymbals" +#: js/blocks/WidgetBlocks.js:1326 +msgid "C major scale" msgstr "" -#: js/musicutils.js:770 -#: js/synthutils.js:155 -#.TRANS: a musically tuned set of bells -msgid "chime" +#: js/blocks/WidgetBlocks.js:1366 +msgid "The Phrase Maker block opens a tool to create musical phrases." msgstr "" -#: js/musicutils.js:771 -#: js/synthutils.js:157 -#.TRANS: a musical instrument -msgid "gong" +#: js/blocks/WidgetBlocks.js:1373 +#.TRANS: assigns pitch to a sequence of beats to generate a melody +msgid "phrase maker" msgstr "" -#: js/musicutils.js:772 -#: js/synthutils.js:159 -#.TRANS: sound effect -msgid "clang" +#: js/blocks/WidgetBlocks.js:1444 +msgid "You must have at least one pitch block and one rhythm block in the matrix." msgstr "" -#: js/musicutils.js:773 -#: js/synthutils.js:161 -#.TRANS: sound effect -msgid "crash" +#: js/blocks/WidgetBlocks.js:1503 +msgid "The Status block opens a tool for inspecting the status of Music Blocks as it is running." msgstr "" -#: js/musicutils.js:774 -#: js/synthutils.js:163 -#.TRANS: sound effect -msgid "bottle" +#: js/blocks/WidgetBlocks.js:1580 +#.TRANS: AI-generated music +msgid "aimusic" msgstr "" -#: js/musicutils.js:775 -#: js/synthutils.js:165 -#.TRANS: sound effect -msgid "clap" +#: js/turtleactions/MeterActions.js:101 +#: js/turtleactions/MeterActions.js:139 +msgid "beats per minute must be greater than" msgstr "" -#: js/musicutils.js:776 -#: js/synthutils.js:167 -#.TRANS: sound effect -msgid "slap" +#: js/turtleactions/MeterActions.js:111 +#: js/turtleactions/MeterActions.js:149 +msgid "maximum" msgstr "" -#: js/musicutils.js:777 -#: js/synthutils.js:169 -#.TRANS: sound effect -msgid "splash" +#: js/turtleactions/MeterActions.js:117 +#: js/turtleactions/MeterActions.js:155 +msgid "beats per minute is" msgstr "" -#: js/musicutils.js:778 -#: js/synthutils.js:171 -#.TRANS: sound effect -msgid "bubbles" +#: js/turtleactions/DictActions.js:75 +#: js/turtleactions/DictActions.js:142 +#: js/turtleactions/DictActions.js:172 +msgid "font" msgstr "" -#: js/musicutils.js:779 -#: js/synthutils.js:173 -#.TRANS: sound effect -msgid "raindrop" +#: js/turtleactions/DictActions.js:255 +msgid "Dictionary with this name does not exist" msgstr "" -#: js/musicutils.js:780 -#: js/synthutils.js:175 -#.TRANS: animal sound effect -msgid "cat" +#: js/turtleactions/DictActions.js:259 +msgid "Key with this name does not exist in " msgstr "" -#: js/musicutils.js:781 -#: js/synthutils.js:177 -#.TRANS: animal sound effect -msgid "cricket" +#: js/turtleactions/DrumActions.js:227 +msgid "Noise Block: Did you mean to use a Note block?" msgstr "" -#: js/musicutils.js:782 -#: js/synthutils.js:179 -#.TRANS: animal sound effect -msgid "dog" +#: js/turtleactions/IntervalsActions.js:113 +msgid "one" msgstr "" -#: js/musicutils.js:784 -#: js/synthutils.js:86 -#.TRANS: musical instrument -msgid "banjo" +#: js/turtleactions/IntervalsActions.js:113 +msgid "two" msgstr "" -#: js/musicutils.js:785 -#: js/synthutils.js:88 -#.TRANS: musical instrument -msgid "koto" +#: js/turtleactions/IntervalsActions.js:113 +msgid "three" msgstr "" -#: js/musicutils.js:786 -#: js/synthutils.js:90 -#.TRANS: musical instrument -msgid "dulcimer" +#: js/turtleactions/IntervalsActions.js:113 +msgid "four" msgstr "" -#: js/musicutils.js:787 -#: js/synthutils.js:92 -#.TRANS: musical instrument -msgid "electric guitar" +#: js/turtleactions/IntervalsActions.js:113 +msgid "five" msgstr "" -#: js/musicutils.js:788 -#: js/synthutils.js:94 -#.TRANS: musical instrument -msgid "bassoon" +#: js/turtleactions/IntervalsActions.js:113 +msgid "six" msgstr "" -#: js/musicutils.js:789 -#: js/synthutils.js:96 -#.TRANS: musical instrument -msgid "celeste" +#: js/turtleactions/IntervalsActions.js:113 +msgid "seven" msgstr "" -#: js/musicutils.js:791 -#: js/musicutils.js:1123 -#: js/musicutils.js:1131 -#: js/temperament.js:650 -#.TRANS: musical temperament -msgid "equal" +#: js/turtleactions/IntervalsActions.js:113 +msgid "eight" msgstr "" -#: js/musicutils.js:793 -#: js/musicutils.js:1125 -#: js/musicutils.js:1133 -#.TRANS: musical temperament -msgid "Pythagorean" +#: js/turtleactions/IntervalsActions.js:113 +msgid "nine" msgstr "" -#: js/musicutils.js:795 -#: js/musicutils.js:1124 -#: js/musicutils.js:1132 -#.TRANS: musical temperament -msgid "just intonation" +#: js/turtleactions/IntervalsActions.js:119 +msgid "a" msgstr "" -#: js/musicutils.js:797 -#: js/musicutils.js:1126 -#: js/musicutils.js:1127 -#: js/musicutils.js:1134 -#: js/musicutils.js:1135 -#.TRANS: musical temperament -msgid "meantone" +#: js/turtleactions/IntervalsActions.js:120 +msgid "below" msgstr "" -#: js/musicutils.js:814 -msgid "major 7th" +#: js/turtleactions/IntervalsActions.js:124 +msgid "above" msgstr "" -#: js/musicutils.js:815 -msgid "minor 7th" +#: js/turtleactions/IntervalsActions.js:131 +msgid "plus" msgstr "" -#: js/musicutils.js:816 -msgid "dominant 7th" +#: js/turtleactions/IntervalsActions.js:139 +msgid " below" msgstr "" -#: js/musicutils.js:817 -msgid "minor-major 7th" +#: js/turtleactions/IntervalsActions.js:257 +msgid "Adding missing pitch number 0." msgstr "" -#: js/musicutils.js:818 -msgid "fully-diminished 7th" +#: js/turtleactions/IntervalsActions.js:265 +msgid "Ignoring pitch numbers less than zero or greater than eleven." msgstr "" -#: js/musicutils.js:819 -msgid "half-diminished 7th" +#: js/turtleactions/IntervalsActions.js:271 +msgid "Ignoring duplicate pitch numbers." msgstr "" -#: js/musicutils.js:4379 -#: js/musicutils.js:4416 -msgid "current" +#: js/turtleactions/ToneActions.js:134 +msgid "Vibrato intensity must be between 1 and 100." msgstr "" -#: js/musicutils.js:4382 -#: js/musicutils.js:4407 -msgid "next" +#: js/turtleactions/ToneActions.js:139 +msgid "Vibrato rate must be greater than 0." msgstr "" -#: js/musicutils.js:4385 -#: js/musicutils.js:4412 -msgid "previous" +#: js/turtleactions/ToneActions.js:192 +#: js/turtleactions/ToneActions.js:265 +#.TRANS: Depth is the intesity of the tremolo or chorus effect. +msgid "Depth is out of range." msgstr "" -#: js/synthutils.js:104 -#.TRANS: simple monotone synthesizer -msgid "simple-2" +#: js/turtleactions/ToneActions.js:301 +msgid "Distortion must be from 0 to 100." msgstr "" -#: js/synthutils.js:106 -#.TRANS: simple monotone synthesizer -msgid "simple-3" +#: js/turtleactions/ToneActions.js:332 +#.TRANS: partials components in a harmonic series +msgid "Partial must be greater than or equal to 0." msgstr "" -#: js/synthutils.js:108 -#.TRANS: simple monotone synthesizer -msgid "simple-4" +#: js/turtleactions/ToneActions.js:378 +#: js/turtleactions/ToneActions.js:417 +#: js/turtleactions/ToneActions.js:456 +#: js/widgets/timbre.js:782 +msgid "Unable to use synth due to existing oscillator" msgstr "" -#: js/synthutils.js:141 -#.TRANS: musical instrument -msgid "taiko" +#: js/turtleactions/ToneActions.js:388 +#: js/turtleactions/ToneActions.js:427 +msgid "The input cannot be negative." msgstr "" -#: js/modewidget.js:86 -#: js/modewidget.js:88 -#: js/modewidget.js:642 -#: js/modewidget.js:644 -#: js/modewidget.js:712 -#: js/modewidget.js:714 -#: js/temperament.js:2078 -#: js/rhythmruler.js:189 -#: js/rhythmruler.js:1410 -#: js/rhythmruler.js:1412 -#: js/rhythmruler.js:1435 -#: js/rhythmruler.js:1437 -#: js/meterwidget.js:89 -#: js/meterwidget.js:91 +#: js/widgets/modewidget.js:86 +#: js/widgets/modewidget.js:88 +#: js/widgets/modewidget.js:642 +#: js/widgets/modewidget.js:644 +#: js/widgets/modewidget.js:712 +#: js/widgets/modewidget.js:714 +#: js/widgets/meterwidget.js:194 +#: js/widgets/meterwidget.js:196 +#: js/widgets/temperament.js:2236 +#: js/widgets/rhythmruler.js:457 +#: js/widgets/rhythmruler.js:1790 +#: js/widgets/rhythmruler.js:1792 +#: js/widgets/rhythmruler.js:1816 +#: js/widgets/rhythmruler.js:1818 msgid "Play all" msgstr "" -#: js/modewidget.js:115 -#: js/pitchstaircase.js:641 -#: js/phrasemaker.js:339 -#: js/pitchdrummatrix.js:94 -#: js/pitchslider.js:125 -#: js/temperament.js:2083 -#: js/musickeyboard.js:530 -#: js/timbre.js:756 -#: js/meterwidget.js:124 -#: js/arpeggio.js:103 +#: js/widgets/modewidget.js:115 +#: js/widgets/meterwidget.js:229 +#: js/widgets/pitchdrummatrix.js:166 +#: js/widgets/pitchslider.js:125 +#: js/widgets/pitchstaircase.js:641 +#: js/widgets/temperament.js:2244 +#: js/widgets/timbre.js:756 +#: js/widgets/arpeggio.js:103 +#: js/widgets/musickeyboard.js:688 +#: js/widgets/phrasemaker.js:550 msgid "Save" msgstr "" -#: js/modewidget.js:121 -#: js/pitchstaircase.js:686 -#: js/phrasemaker.js:356 -#: js/pitchdrummatrix.js:109 -#: js/musickeyboard.js:534 -#: js/rhythmruler.js:269 -#: js/arpeggio.js:118 +#: js/widgets/modewidget.js:121 +#: js/widgets/pitchdrummatrix.js:181 +#: js/widgets/pitchstaircase.js:686 +#: js/widgets/arpeggio.js:118 +#: js/widgets/musickeyboard.js:696 +#: js/widgets/phrasemaker.js:567 +#: js/widgets/rhythmruler.js:601 #.TRANS: clear all subdivisions from the ruler. msgid "Clear" msgstr "" -#: js/modewidget.js:127 +#: js/widgets/modewidget.js:127 msgid "Rotate counter clockwise" msgstr "" -#: js/modewidget.js:133 +#: js/widgets/modewidget.js:133 msgid "Rotate clockwise" msgstr "" -#: js/modewidget.js:139 +#: js/widgets/modewidget.js:139 msgid "Invert" msgstr "" -#: js/modewidget.js:145 -#: js/pitchstaircase.js:678 -#: js/rhythmruler.js:258 -#: js/timbre.js:963 +#: js/widgets/modewidget.js:145 +#: js/widgets/pitchstaircase.js:678 +#: js/widgets/timbre.js:963 +#: js/widgets/rhythmruler.js:578 msgid "Undo" msgstr "" -#: js/modewidget.js:163 +#: js/widgets/modewidget.js:163 #.TRANS: A circle of notes represents the musical mode. msgid "Click in the circle to select notes for the mode." msgstr "" -#: js/modewidget.js:1017 -#: js/pitchstaircase.js:580 -#: js/phrasemaker.js:4855 -#: js/temperament.js:1754 -#: js/rhythmruler.js:1865 -#: js/rhythmruler.js:2081 -#: js/tempo.js:414 +#: js/widgets/modewidget.js:1017 +#: js/widgets/pitchstaircase.js:580 +#: js/widgets/temperament.js:1929 +#: js/widgets/tempo.js:414 +#: js/widgets/phrasemaker.js:5356 +#: js/widgets/rhythmruler.js:2254 +#: js/widgets/rhythmruler.js:2472 msgid "New action block generated!" msgstr "" -#: js/oscilloscope.js:79 -msgid "Zoom In" -msgstr "" - -#: js/oscilloscope.js:88 -msgid "Zoom Out" -msgstr "" - -#: js/pitchstaircase.js:624 -msgid "Play chord" -msgstr "" - -#: js/pitchstaircase.js:632 -msgid "Play scale" +#: js/widgets/meterwidget.js:275 +msgid "Reset" msgstr "" -#: js/pitchstaircase.js:696 -msgid "Click on a note to create a new step." +#: js/widgets/meterwidget.js:301 +msgid "Click in the circle to select strong beats for the meter." msgstr "" -#: js/phrasemaker.js:363 -msgid "Export" +#: js/widgets/oscilloscope.js:79 +msgid "Zoom In" msgstr "" -#: js/phrasemaker.js:370 -msgid "Sort" +#: js/widgets/oscilloscope.js:88 +msgid "Zoom Out" msgstr "" -#: js/phrasemaker.js:373 -#: js/musickeyboard.js:559 -msgid "Add note" +#: js/widgets/pitchdrummatrix.js:356 +#: js/widgets/pitchdrummatrix.js:752 +msgid "Click in the grid to map notes to drums." msgstr "" -#: js/phrasemaker.js:764 -msgid "Click on the table to add notes." +#: js/widgets/pitchslider.js:103 +msgid "Move up" msgstr "" -#: js/phrasemaker.js:2414 -#: js/phrasemaker.js:2543 -msgid "tuplet value" +#: js/widgets/pitchslider.js:114 +msgid "Move down" msgstr "" -#: js/pitchdrummatrix.js:270 -#: js/pitchdrummatrix.js:639 -msgid "Click in the grid to map notes to drums." +#: js/widgets/pitchslider.js:136 +msgid "Click on the slider to create a note block." msgstr "" -#: js/pitchslider.js:103 -msgid "Move up" +#: js/widgets/pitchstaircase.js:624 +msgid "Play chord" msgstr "" -#: js/pitchslider.js:114 -msgid "Move down" +#: js/widgets/pitchstaircase.js:632 +msgid "Play scale" msgstr "" -#: js/pitchslider.js:136 -msgid "Click on the slider to create a note block." +#: js/widgets/pitchstaircase.js:696 +msgid "Click on a note to create a new step." msgstr "" -#: js/temperament.js:215 +#: js/widgets/temperament.js:321 msgid "back to 2:1 octave space" msgstr "" -#: js/temperament.js:323 +#: js/widgets/temperament.js:447 msgid "edit" msgstr "" -#: js/temperament.js:330 -#: js/temperament.js:332 -#: js/temperament.js:1336 -#: js/temperament.js:1338 +#: js/widgets/temperament.js:454 +#: js/widgets/temperament.js:456 +#: js/widgets/temperament.js:1493 +#: js/widgets/temperament.js:1495 msgid "close" msgstr "" -#: js/temperament.js:423 -#: js/temperament.js:736 -#: js/temperament.js:743 -#: js/temperament.js:845 -#: js/temperament.js:935 -#: js/temperament.js:942 -#: js/temperament.js:1015 -#: js/temperament.js:1284 -#: js/temperament.js:1354 -#: js/temperament.js:1430 +#: js/widgets/temperament.js:552 +#: js/widgets/temperament.js:877 +#: js/widgets/temperament.js:884 +#: js/widgets/temperament.js:986 +#: js/widgets/temperament.js:1080 +#: js/widgets/temperament.js:1087 +#: js/widgets/temperament.js:1160 +#: js/widgets/temperament.js:1433 +#: js/widgets/temperament.js:1511 +#: js/widgets/temperament.js:1596 msgid "done" msgstr "" -#: js/temperament.js:477 -#: js/temperament.js:482 -#: js/temperament.js:918 +#: js/widgets/temperament.js:610 +#: js/widgets/temperament.js:615 +#: js/widgets/temperament.js:1063 msgid "ratio" msgstr "" -#: js/temperament.js:483 +#: js/widgets/temperament.js:616 msgid "interval" msgstr "" -#: js/temperament.js:611 +#: js/widgets/temperament.js:744 msgid "non scalar" msgstr "" -#: js/temperament.js:650 +#: js/widgets/temperament.js:787 msgid "ratios" msgstr "" -#: js/temperament.js:650 +#: js/widgets/temperament.js:787 msgid "arbitrary" msgstr "" -#: js/temperament.js:719 +#: js/widgets/temperament.js:860 msgid "number of divisions" msgstr "" -#: js/temperament.js:741 -#: js/temperament.js:858 -#: js/temperament.js:940 -#: js/temperament.js:1033 +#: js/widgets/temperament.js:882 +#: js/widgets/temperament.js:999 +#: js/widgets/temperament.js:1085 +#: js/widgets/temperament.js:1178 msgid "preview" msgstr "" -#: js/temperament.js:788 +#: js/widgets/temperament.js:929 msgid "The Number of divisions is too large." msgstr "" -#: js/temperament.js:921 +#: js/widgets/temperament.js:1066 msgid "recursion" msgstr "" -#: js/temperament.js:1450 +#: js/widgets/temperament.js:1616 msgid "The octave ratio has changed. This changes temperament significantly." msgstr "" -#: js/temperament.js:2087 +#: js/widgets/temperament.js:2248 msgid "Table" msgstr "" -#: js/temperament.js:2185 +#: js/widgets/temperament.js:2356 msgid "Add pitches" msgstr "" -#: js/musickeyboard.js:570 -msgid "Metronome" +#: js/widgets/tempo.js:78 +#: js/widgets/tempo.js:97 +#: js/widgets/tempo.js:99 +#: js/widgets/aiwidget.js:134 +#: js/widgets/aiwidget.js:136 +#: js/widgets/rhythmruler.js:681 +#: js/widgets/rhythmruler.js:683 +#: js/widgets/rhythmruler.js:1864 +#: js/widgets/rhythmruler.js:1866 +#: js/widgets/sampler.js:180 +#: js/widgets/sampler.js:182 +msgid "Pause" msgstr "" -#: js/musickeyboard.js:1296 -#: plugins/rodi.rtp:193 -msgid "duration" -msgstr "owát" +#: js/widgets/tempo.js:113 +msgid "Save tempo" +msgstr "" -#: js/musickeyboard.js:2840 -msgid "New action blocks generated!" +#: js/widgets/tempo.js:144 +msgid "speed up" msgstr "" -#: js/musickeyboard.js:2841 -msgid "New action block generated" +#: js/widgets/tempo.js:150 +msgid "slow down" msgstr "" -#: js/musickeyboard.js:2984 -#: js/musickeyboard.js:2992 -msgid "MIDI device present." +#: js/widgets/tempo.js:194 +msgid "Adjust the tempo with the buttons." msgstr "" -#: js/musickeyboard.js:2995 -msgid "No MIDI device found." +#: js/widgets/tempo.js:261 +msgid "Please enter a number between 30 and 1000" msgstr "" -#: js/musickeyboard.js:3000 -msgid "Failed to get MIDI access in browser." +#: js/widgets/tempo.js:268 +#: js/widgets/tempo.js:271 +msgid "The beats per minute must be between 30 and 1000." msgstr "" -#: js/rhythmruler.js:202 -msgid "Save rhythms" +#: js/widgets/tempo.js:287 +msgid "The beats per minute must be below 1000." msgstr "" -#: js/rhythmruler.js:222 -msgid "Save drum machine" +#: js/widgets/tempo.js:303 +msgid "The beats per minute must be above 30" msgstr "" -#: js/rhythmruler.js:263 -#.TRANS: user can tap out a rhythm by clicking on a ruler. -msgid "Tap a rhythm" +#: js/widgets/timbre.js:766 +msgid "Synthesizer" msgstr "" -#: js/rhythmruler.js:342 -#: js/rhythmruler.js:344 -#: js/rhythmruler.js:1481 -#: js/rhythmruler.js:1483 -#: js/sampler.js:110 -#: js/sampler.js:112 -#: js/tempo.js:78 -#: js/tempo.js:97 -#: js/tempo.js:99 -msgid "Pause" +#: js/widgets/timbre.js:789 +msgid "Oscillator" msgstr "" -#: js/rhythmruler.js:478 -msgid "Click on the ruler to divide it." +#: js/widgets/timbre.js:840 +msgid "Envelope" msgstr "" -#: js/rhythmruler.js:603 -#: js/rhythmruler.js:605 -#: js/rhythmruler.js:804 -#: js/rhythmruler.js:806 -#: js/rhythmruler.js:1386 -#: js/rhythmruler.js:1388 -msgid "tap a rhythm" +#: js/widgets/timbre.js:886 +#: planet/js/GlobalTag.js:50 +#.TRANS: On the Planet, we use labels to tag projects. +msgid "Effects" msgstr "" -#: js/rhythmruler.js:1084 -msgid "Maximum value of 256 has been exceeded." +#: js/widgets/timbre.js:904 +msgid "Filter" msgstr "" -#: js/sampler.js:137 -msgid "Warning: Sample is bigger than 1MB." +#: js/widgets/timbre.js:946 +msgid "Add filter" msgstr "" -#: js/sampler.js:142 -msgid "Upload failed: Sample is not a .wav file." +#: js/widgets/timbre.js:987 +msgid "Click on buttons to open the timbre design tools." msgstr "" -#: js/sampler.js:164 -msgid "A new sample block was generated." +#: js/widgets/timbre.js:1273 +msgid "harmonicity" msgstr "" -#: js/sampler.js:255 -msgid "Upload sample" +#: js/widgets/timbre.js:1340 +#: js/widgets/timbre.js:1406 +msgid "modulation index" msgstr "" -#: js/sampler.js:306 -msgid "Save sample" +#: js/widgets/timbre.js:1484 +msgid "vibrato amount" msgstr "" -#: js/sampler.js:697 -#.TRANS: The reference tone is a sound used for comparison. -msgid "reference tone" +#: js/widgets/timbre.js:1919 +msgid "Filter already present." msgstr "" -#: js/tempo.js:113 -msgid "Save tempo" +#: js/widgets/timbre.js:2322 +msgid "delay (MS)" msgstr "" -#: js/tempo.js:144 -msgid "speed up" +#: js/widgets/timbre.js:2507 +msgid "distortion amount" msgstr "" -#: js/tempo.js:150 -msgid "slow down" +#: js/widgets/aiwidget.js:180 +#: js/widgets/sampler.js:227 +msgid "Warning: Sample is bigger than 1MB." msgstr "" -#: js/tempo.js:194 -msgid "Adjust the tempo with the buttons." +#: js/widgets/aiwidget.js:539 +msgid "New start block generated" msgstr "" -#: js/tempo.js:261 -msgid "Please enter a number between 30 and 1000" +#: js/widgets/aiwidget.js:541 +msgid "MIDI loading. This may take some time depending upon the number of notes in the track" msgstr "" -#: js/tempo.js:268 -#: js/tempo.js:271 -msgid "The beats per minute must be between 30 and 1000." +#: js/widgets/aiwidget.js:551 +#: js/widgets/sampler.js:254 +msgid "Upload failed: Sample is not a .wav file." msgstr "" -#: js/tempo.js:287 -msgid "The beats per minute must be below 1000." +#: js/widgets/aiwidget.js:679 +#: js/widgets/sampler.js:432 +msgid "Save sample" msgstr "" -#: js/tempo.js:303 -msgid "The beats per minute must be above 30" +#: js/widgets/aiwidget.js:701 +msgid "AI Music" msgstr "" -#: js/timbre.js:766 -msgid "Synthesizer" +#: js/widgets/arpeggio.js:239 +msgid "Click in the grid to add steps to the arpeggio." msgstr "" -#: js/timbre.js:789 -msgid "Oscillator" +#: js/widgets/help.js:95 +#: js/widgets/help.js:125 +#: js/widgets/help.js:146 +#: js/widgets/help.js:158 +#: js/widgets/help.js:376 +#: js/widgets/help.js:391 +msgid "Take a tour" msgstr "" -#: js/timbre.js:840 -msgid "Envelope" +#: js/widgets/musickeyboard.js:725 +#: js/widgets/phrasemaker.js:584 +msgid "Add note" msgstr "" -#: js/timbre.js:886 -#: js/GlobalTag.js:50 -#.TRANS: On the Planet, we use labels to tag projects. -msgid "Effects" +#: js/widgets/musickeyboard.js:744 +msgid "Metronome" +msgstr "" + +#: js/widgets/musickeyboard.js:1549 +#: plugins/rodi.rtp:193 +msgid "duration" +msgstr "owát" + +#: js/widgets/musickeyboard.js:3179 +msgid "New action blocks generated" +msgstr "" + +#: js/widgets/musickeyboard.js:3180 +msgid "New action block generated" msgstr "" -#: js/timbre.js:904 -msgid "Filter" +#: js/widgets/musickeyboard.js:3365 +#: js/widgets/musickeyboard.js:3373 +msgid "MIDI device present." msgstr "" -#: js/timbre.js:946 -msgid "Add filter" +#: js/widgets/musickeyboard.js:3376 +msgid "No MIDI device found." msgstr "" -#: js/timbre.js:987 -msgid "Click on buttons to open the timbre design tools." +#: js/widgets/musickeyboard.js:3386 +msgid "Failed to get MIDI access in browser." msgstr "" -#: js/timbre.js:1273 -msgid "harmonicity" +#: js/widgets/phrasemaker.js:574 +msgid "Export" msgstr "" -#: js/timbre.js:1340 -#: js/timbre.js:1406 -msgid "modulation index" +#: js/widgets/phrasemaker.js:581 +msgid "Sort" msgstr "" -#: js/timbre.js:1484 -msgid "vibrato amount" +#: js/widgets/phrasemaker.js:975 +msgid "Click on the table to add notes." msgstr "" -#: js/timbre.js:1919 -msgid "Filter already present." +#: js/widgets/phrasemaker.js:2677 +#: js/widgets/phrasemaker.js:2819 +msgid "tuplet value" msgstr "" -#: js/timbre.js:2322 -msgid "delay (MS)" +#: js/widgets/rhythmruler.js:486 +msgid "Save rhythms" msgstr "" -#: js/timbre.js:2507 -msgid "distortion amount" +#: js/widgets/rhythmruler.js:512 +msgid "Save drum machine" msgstr "" -#: js/meterwidget.js:170 -msgid "Reset" +#: js/widgets/rhythmruler.js:589 +#.TRANS: user can tap out a rhythm by clicking on a ruler. +msgid "Tap a rhythm" msgstr "" -#: js/meterwidget.js:196 -msgid "Click in the circle to select strong beats for the meter." +#: js/widgets/rhythmruler.js:817 +msgid "Click on the ruler to divide it." msgstr "" -#: js/arpeggio.js:239 -msgid "Click in the grid to add steps to the arpeggio." +#: js/widgets/rhythmruler.js:950 +#: js/widgets/rhythmruler.js:952 +#: js/widgets/rhythmruler.js:1152 +#: js/widgets/rhythmruler.js:1154 +#: js/widgets/rhythmruler.js:1765 +#: js/widgets/rhythmruler.js:1767 +msgid "tap a rhythm" msgstr "" -#: js/ProjectStorage.js:243 -msgid "anonymous" +#: js/widgets/rhythmruler.js:1459 +msgid "Maximum value of 256 has been exceeded." msgstr "" -#: js/GlobalCard.js:68 -msgid "Share" +#: js/widgets/sampler.js:237 +msgid "Recording started..." msgstr "" -#: js/GlobalCard.js:74 -msgid "Flags" +#: js/widgets/sampler.js:245 +msgid "Recording complete..." msgstr "" -#: js/LocalCard.js:36 -msgid "View published project" +#: js/widgets/sampler.js:283 +msgid "A new sample block was generated." msgstr "" -#: js/LocalCard.js:42 -msgid "Publish project" +#: js/widgets/sampler.js:378 +msgid "Upload sample" msgstr "" -#: js/LocalCard.js:51 -msgid "Edit project" +#: js/widgets/sampler.js:399 +msgid "Warning: Your sample cannot be loaded because it is >1MB." msgstr "" -#: js/LocalCard.js:52 -msgid "Delete project" +#: js/widgets/sampler.js:448 +msgid "Toggle Mic" msgstr "" -#: js/LocalCard.js:53 -msgid "Download project" +#: js/widgets/sampler.js:458 +msgid "Playback" msgstr "" -#: js/LocalCard.js:55 -msgid "Duplicate project" +#: js/widgets/sampler.js:979 +#.TRANS: The reference tone is a sound used for comparison. +msgid "reference tone" msgstr "" -#: js/GlobalTag.js:28 +#: planet/js/GlobalTag.js:28 #.TRANS: On the Planet, we use labels to tag projects. msgid "All Projects" msgstr "" -#: js/GlobalTag.js:30 -#: js/StringHelper.js:37 +#: planet/js/GlobalTag.js:30 +#: planet/js/StringHelper.js:37 #.TRANS: On the Planet, we use labels to tag projects. msgid "My Projects" msgstr "" -#: js/GlobalTag.js:32 +#: planet/js/GlobalTag.js:32 #.TRANS: On the Planet, we use labels to tag projects. msgid "Examples" msgstr "" -#: js/GlobalTag.js:34 +#: planet/js/GlobalTag.js:34 #.TRANS: On the Planet, we use labels to tag projects. msgid "Music" msgstr "" -#: js/GlobalTag.js:36 +#: planet/js/GlobalTag.js:36 #.TRANS: On the Planet, we use labels to tag projects. msgid "Art" msgstr "" -#: js/GlobalTag.js:38 +#: planet/js/GlobalTag.js:38 #.TRANS: On the Planet, we use labels to tag projects. msgid "Math" msgstr "" -#: js/GlobalTag.js:40 +#: planet/js/GlobalTag.js:40 #.TRANS: On the Planet, we use labels to tag projects. msgid "Interactive" msgstr "" -#: js/GlobalTag.js:42 +#: planet/js/GlobalTag.js:42 #.TRANS: On the Planet, we use labels to tag projects. msgid "Design" msgstr "" -#: js/GlobalTag.js:44 +#: planet/js/GlobalTag.js:44 #.TRANS: On the Planet, we use labels to tag projects. msgid "Game" msgstr "" -#: js/GlobalTag.js:46 +#: planet/js/GlobalTag.js:46 #.TRANS: On the Planet, we use labels to tag projects. msgid "Media" msgstr "" -#: js/GlobalTag.js:48 +#: planet/js/GlobalTag.js:48 #.TRANS: On the Planet, we use labels to tag projects. msgid "Sensors" msgstr "" -#: js/GlobalTag.js:52 +#: planet/js/GlobalTag.js:52 #.TRANS: On the Planet, we use labels to tag projects. msgid "Code Snippet" msgstr "" -#: js/helper.js:149 -#: js/StringHelper.js:49 -msgid "Show more tags" +#: planet/js/LocalCard.js:36 +msgid "View published project" msgstr "" -#: js/helper.js:150 -msgid "Show fewer tags" +#: planet/js/LocalCard.js:42 +msgid "Publish project" +msgstr "" + +#: planet/js/LocalCard.js:51 +msgid "Edit project" +msgstr "" + +#: planet/js/LocalCard.js:52 +msgid "Delete project" +msgstr "" + +#: planet/js/LocalCard.js:53 +msgid "Download project" +msgstr "" + +#: planet/js/LocalCard.js:55 +msgid "Duplicate project" +msgstr "" + +#: planet/js/ProjectStorage.js:243 +msgid "anonymous" +msgstr "" + +#: planet/js/SaveInterface.js:34 +msgid "Open in Music Blocks" +msgstr "" + +#: planet/js/SaveInterface.js:35 +msgid "Open in Turtle Blocks" +msgstr "" + +#: planet/js/GlobalCard.js:68 +msgid "Share" +msgstr "" + +#: planet/js/GlobalCard.js:74 +msgid "Flags" +msgstr "" + +#: planet/js/GlobalPlanet.js:35 +msgid "No results found." +msgstr "" + +#: planet/js/GlobalPlanet.js:51 +msgid "Remix of" +msgstr "" + +#: planet/js/GlobalPlanet.js:509 +msgid "Cannot connect to server" msgstr "" -#: js/ProjectViewer.js:30 +#: planet/js/ProjectViewer.js:30 msgid "Error: Report could not be submitted. Try again later." msgstr "" -#: js/ProjectViewer.js:31 +#: planet/js/ProjectViewer.js:31 msgid "Thank you for reporting this project. A moderator will review the project shortly, to verify violation of the Sugar Labs Code of Conduct." msgstr "" -#: js/ProjectViewer.js:32 -#: js/StringHelper.js:62 -#: js/StringHelper.js:64 -#: js/StringHelper.js:68 +#: planet/js/ProjectViewer.js:32 +#: planet/js/StringHelper.js:62 +#: planet/js/StringHelper.js:64 +#: planet/js/StringHelper.js:68 msgid "Report Project" msgstr "" -#: js/ProjectViewer.js:33 -#: js/StringHelper.js:63 +#: planet/js/ProjectViewer.js:33 +#: planet/js/StringHelper.js:63 msgid "Project Reported" msgstr "" -#: js/ProjectViewer.js:34 +#: planet/js/ProjectViewer.js:34 msgid "Report description required" msgstr "" -#: js/ProjectViewer.js:35 +#: planet/js/ProjectViewer.js:35 msgid "Report description too long" msgstr "" -#: js/StringHelper.js:30 +#: planet/js/Publisher.js:30 +msgid "Feature unavailable - cannot connect to server. Reload Music Blocks to try again." +msgstr "" + +#: planet/js/Publisher.js:220 +#: planet/js/Publisher.js:237 +msgid "This field is required" +msgstr "" + +#: planet/js/Publisher.js:227 +msgid "Title too long" +msgstr "" + +#: planet/js/Publisher.js:244 +msgid "Description too long" +msgstr "" + +#: planet/js/Publisher.js:341 +msgid "Server Error" +msgstr "" + +#: planet/js/Publisher.js:341 +msgid "Try Again" +msgstr "" + +#: planet/js/StringHelper.js:30 msgid "Planet" msgstr "" -#: js/StringHelper.js:31 +#: planet/js/StringHelper.js:31 msgid "Close Planet" msgstr "" -#: js/StringHelper.js:32 +#: planet/js/StringHelper.js:32 msgid "Open project from file" msgstr "" -#: js/StringHelper.js:34 +#: planet/js/StringHelper.js:34 msgid "Local" msgstr "" -#: js/StringHelper.js:35 +#: planet/js/StringHelper.js:35 msgid "Global" msgstr "" -#: js/StringHelper.js:36 +#: planet/js/StringHelper.js:36 msgid "Search for a project" msgstr "" -#: js/StringHelper.js:38 +#: planet/js/StringHelper.js:38 msgid "Publish Project" msgstr "" -#: js/StringHelper.js:40 +#: planet/js/StringHelper.js:40 msgid "Tags (max 5)" msgstr "" -#: js/StringHelper.js:41 -#: js/StringHelper.js:61 +#: planet/js/StringHelper.js:41 +#: planet/js/StringHelper.js:61 msgid "Description" msgstr "" -#: js/StringHelper.js:42 -#: js/StringHelper.js:67 +#: planet/js/StringHelper.js:42 +#: planet/js/StringHelper.js:67 msgid "Submit" msgstr "" -#: js/StringHelper.js:43 -#: js/StringHelper.js:47 +#: planet/js/StringHelper.js:43 +#: planet/js/StringHelper.js:47 msgid "Cancel" msgstr "" -#: js/StringHelper.js:44 +#: planet/js/StringHelper.js:44 msgid "Delete \\"\\"?" msgstr "" -#: js/StringHelper.js:45 +#: planet/js/StringHelper.js:45 msgid "Permanently delete project \\"\\"?" msgstr "" -#: js/StringHelper.js:48 +#: planet/js/StringHelper.js:48 msgid "Explore Projects" msgstr "" -#: js/StringHelper.js:50 +#: planet/js/StringHelper.js:49 +#: planet/js/helper.js:149 +msgid "Show more tags" +msgstr "" + +#: planet/js/StringHelper.js:50 msgid "Most recent" msgstr "" -#: js/StringHelper.js:51 +#: planet/js/StringHelper.js:51 msgid "Most liked" msgstr "" -#: js/StringHelper.js:52 +#: planet/js/StringHelper.js:52 msgid "Most downloaded" msgstr "" -#: js/StringHelper.js:53 +#: planet/js/StringHelper.js:53 msgid "A-Z" msgstr "" -#: js/StringHelper.js:54 +#: planet/js/StringHelper.js:54 msgid "Sort by" msgstr "" -#: js/StringHelper.js:55 +#: planet/js/StringHelper.js:55 msgid "Load More Projects" msgstr "" -#: js/StringHelper.js:56 +#: planet/js/StringHelper.js:56 msgid "Last Updated" msgstr "" -#: js/StringHelper.js:57 +#: planet/js/StringHelper.js:57 msgid "Creation Date" msgstr "" -#: js/StringHelper.js:58 +#: planet/js/StringHelper.js:58 msgid "Number of Downloads:" msgstr "" -#: js/StringHelper.js:59 +#: planet/js/StringHelper.js:59 msgid "Number of Likes:" msgstr "" -#: js/StringHelper.js:60 +#: planet/js/StringHelper.js:60 msgid "Tags:" msgstr "" -#: js/StringHelper.js:65 +#: planet/js/StringHelper.js:65 msgid "Report projects which violate the Sugar Labs Code of Conduct." msgstr "" -#: js/StringHelper.js:66 +#: planet/js/StringHelper.js:66 msgid "Reason for reporting project" msgstr "" -#: js/StringHelper.js:70 +#: planet/js/StringHelper.js:70 msgid "Download as File" msgstr "" -#: js/GlobalPlanet.js:35 -msgid "No results found." -msgstr "" - -#: js/GlobalPlanet.js:51 -msgid "Remix of" -msgstr "" - -#: js/GlobalPlanet.js:509 -msgid "Cannot connect to server" -msgstr "" - -#: js/Publisher.js:30 -msgid "Feature unavailable - cannot connect to server. Reload Music Blocks to try again." -msgstr "" - -#: js/Publisher.js:218 -#: js/Publisher.js:235 -msgid "This field is required" -msgstr "" - -#: js/Publisher.js:225 -msgid "Title too long" +#: planet/js/helper.js:150 +msgid "Show fewer tags" msgstr "" -#: js/Publisher.js:242 -msgid "Description too long" +#: plugins/accelerometer.rtp:48 +msgid "motion x" msgstr "" -#: js/Publisher.js:339 -msgid "Server Error" +#: plugins/accelerometer.rtp:56 +msgid "motion y" msgstr "" -#: js/Publisher.js:339 -msgid "Try Again" +#: plugins/accelerometer.rtp:64 +msgid "motion z" msgstr "" -#: js/SaveInterface.js:34 -msgid "Open in Music Blocks" +#: plugins/facebook.rtp:27 +msgid "publish" msgstr "" -#: js/SaveInterface.js:35 -msgid "Open in Turtle Blocks" +#: plugins/maths.rtp:62 +msgid "power" msgstr "" -#: plugins/weather.rtp:68 -#: plugins/weather.rtp:97 -msgid "Days ahead must be in the range of -1 to 5." +#: plugins/maths.rtp:62 +msgid "base" msgstr "" -#: plugins/weather.rtp:122 -msgid "forecast" +#: plugins/maths.rtp:62 +msgid "exp" msgstr "" -#: plugins/weather.rtp:123 -#: plugins/weather.rtp:137 -#: plugins/weather.rtp:150 -msgid "city" +#: plugins/maths.rtp:99 +msgid "floor" msgstr "" -#: plugins/weather.rtp:124 -#: plugins/weather.rtp:138 -#: plugins/weather.rtp:151 -msgid "day" +#: plugins/maths.rtp:104 +msgid "ceiling" msgstr "" -#: plugins/weather.rtp:136 -msgid "high" +#: plugins/maths.rtp:109 +msgid "to degrees" msgstr "" -#: plugins/weather.rtp:149 -msgid "low" +#: plugins/maths.rtp:114 +msgid "to radians" msgstr "" #: plugins/nutrition.rtp:104 @@ -9458,45 +9867,6 @@ msgstr "" msgid "water" msgstr "" -#: plugins/maths.rtp:62 -#: plugins/examples.rtp:93 -msgid "power" -msgstr "" - -#: plugins/maths.rtp:62 -#: plugins/examples.rtp:93 -msgid "base" -msgstr "" - -#: plugins/maths.rtp:62 -#: plugins/examples.rtp:93 -msgid "exp" -msgstr "" - -#: plugins/maths.rtp:99 -#: plugins/examples.rtp:130 -msgid "floor" -msgstr "" - -#: plugins/maths.rtp:104 -#: plugins/examples.rtp:135 -msgid "ceiling" -msgstr "" - -#: plugins/maths.rtp:109 -#: plugins/examples.rtp:140 -msgid "to degrees" -msgstr "" - -#: plugins/maths.rtp:114 -#: plugins/examples.rtp:145 -msgid "to radians" -msgstr "" - -#: plugins/facebook.rtp:27 -msgid "publish" -msgstr "" - #: plugins/rodi.rtp:172 msgid "blink" msgstr "" @@ -9525,18 +9895,66 @@ msgstr "" msgid "move" msgstr "" -#: plugins/accelerometer.rtp:48 -msgid "motion x" +#: plugins/weather.rtp:68 +#: plugins/weather.rtp:97 +msgid "Days ahead must be in the range of -1 to 5." msgstr "" -#: plugins/accelerometer.rtp:56 -msgid "motion y" +#: plugins/weather.rtp:122 +msgid "forecast" msgstr "" -#: plugins/accelerometer.rtp:64 -msgid "motion z" +#: plugins/weather.rtp:123 +#: plugins/weather.rtp:137 +#: plugins/weather.rtp:150 +msgid "city" +msgstr "" + +#: plugins/weather.rtp:124 +#: plugins/weather.rtp:138 +#: plugins/weather.rtp:151 +msgid "day" +msgstr "" + +#: plugins/weather.rtp:136 +msgid "high" +msgstr "" + +#: plugins/weather.rtp:149 +msgid "low" msgstr "" +#: js/toolbar.js:70 + +#: js/toolbar.js:130 + +#: js/toolbar.js:194 + +#: js/toolbar.js:249 + +#~msgid "Toggle JavaScript Editor" +#~msgstr "" + +#: js/EnsembleBlocks.js:643 + +#~msgid "The Turrle pitch block returns the current pitch number being played by the specified turtle." +#~msgstr "" + +#: js/PitchActions.js:88 + +#~msgid "The Scalar Step Block must be used inside of a Note Block." +#~msgstr "" + +#: js/PitchActions.js:107 + +#~msgid "The Scalar Step Block must be preceded by a Pitch Block." +#~msgstr "" + +#: js/musickeyboard.js:2840 + +#~msgid "New action blocks generated!" +#~msgstr "" + #: js/toolbar.js:110 #: js/toolbar.js:204 @@ -9877,11 +10295,6 @@ msgstr "" #~msgid "The Time block returns the number of seconds that the program has been running." #~msgstr "" -#: js/help.js:95 - -#~msgid "Take a tour" -#~msgstr "" - #: js/GlobalCard.js:48 #~msgid "More Details" @@ -12780,11 +13193,6 @@ msgstr "" #~msgid "The save-stack button saves a stack onto a custom palette. It appears after a \"long press\" on a stack." #~msgstr "" -#: js/musicutils.js:254 - -#~msgid "Custom" -#~msgstr "" - #: js/basicblocks.js:4785 #~msgid "Rhythm" diff --git a/po/hy.po b/po/hy.po index 787d57f412..276083b3df 100644 --- a/po/hy.po +++ b/po/hy.po @@ -2126,276 +2126,131 @@ #: js/planetInterface.js:104 #: js/planetInterface.js:104 #: js/planetInterface.js:104 -msgid "project undefined" -msgstr "" - -#: js/logo.js:61 -msgid "Not a valid pitch name" -msgstr "" - -#: js/logo.js:507 -#: js/ProgramBlocks.js:258 -#: js/ProgramBlocks.js:427 -msgid "You must select a file." -msgstr "" - -#: js/logo.js:1184 -#: js/turtles.js:118 -#: js/turtle-painter.js:1192 -#: js/turtle-painter.js:1193 -#: js/block.js:1463 -#: js/lilypond.js:757 -#: js/lilypond.js:921 -#: js/lilypond.js:959 -#: js/ActionBlocks.js:1223 -#: js/ProgramBlocks.js:1267 -msgid "start" -msgstr "" - -#: js/logo.js:1696 -msgid "Playback is ready." -msgstr "" - -#: js/blocks.js:1011 -#: js/blocks.js:3427 -#: js/blocks.js:3428 -#: js/blocks.js:3653 -#: js/blocks.js:4012 -#: js/blocks.js:4205 -#: js/blocks.js:5343 -#: js/blocks.js:6474 -#: js/palette.js:527 -#: js/palette.js:536 -#: js/palette.js:545 -#: js/palette.js:554 -#: js/palette.js:1131 -#: js/palette.js:1142 -#: js/palette.js:1153 -#: js/palette.js:1164 -#: js/palette.js:1183 -#: js/rubrics.js:529 -#: js/macros.js:170 -#: js/macros.js:266 -#: js/macros.js:267 -#: js/macros.js:276 -#: js/macros.js:828 -#: js/block.js:1449 -#: js/block.js:4164 -#: js/block.js:4182 -#: js/block.js:4193 -#: js/turtledefs.js:128 -#: js/turtledefs.js:230 -#: js/ActionBlocks.js:254 -#: js/ActionBlocks.js:307 -#: js/ActionBlocks.js:617 -#: js/ActionBlocks.js:716 -#: js/ActionBlocks.js:961 -#: js/ActionBlocks.js:1049 -#: js/ActionBlocks.js:1322 -#: js/ActionBlocks.js:1325 -#: js/ActionBlocks.js:1337 -#: js/ActionBlocks.js:1404 -#: js/MeterBlocks.js:715 -#: js/MeterBlocks.js:768 -#: js/MeterBlocks.js:831 -#: js/MeterBlocks.js:892 -#: js/phrasemaker.js:4412 -#: js/musickeyboard.js:2647 -#: js/rhythmruler.js:1928 -#: js/rhythmruler.js:1935 -#: js/rhythmruler.js:2119 -#: js/rhythmruler.js:2126 -msgid "action" -msgstr "" - -#: js/blocks.js:1205 -#: js/blocks.js:3380 -#: js/blocks.js:3770 -#: js/blocks.js:3801 -#: js/blocks.js:3850 -#: js/blocks.js:3885 -#: js/blocks.js:6497 -#: js/palette.js:509 -#: js/palette.js:638 -#: js/palette.js:1107 -#: js/BoxesBlocks.js:282 -#: js/BoxesBlocks.js:285 -#: js/BoxesBlocks.js:405 -#: js/BoxesBlocks.js:594 -msgid "box" -msgstr "" - -#: js/blocks.js:1680 -msgid "Consider breaking this stack into parts." +#: js/SaveInterface.js:59 +#: js/SaveInterface.js:61 +#: js/SaveInterface.js:93 +msgid "Music Blocks Project" msgstr "" -#: js/blocks.js:2408 -#: js/palette.js:653 -#: js/MediaBlocks.js:602 -msgid "open file" +#: js/SaveInterface.js:63 +msgid "This project was created in Music Blocks" msgstr "" -#: js/blocks.js:2415 -#: js/blocks.js:2423 -#: js/activity.js:1875 -msgid "audio file" +#: js/SaveInterface.js:67 +msgid "Music Blocks is a Free/Libre Software application." msgstr "" -#: js/blocks.js:2536 -#: js/blocks.js:3147 -#: js/block.js:3543 -msgid "on2" +#: js/SaveInterface.js:69 +msgid "The source code can be accessed at" msgstr "" -#: js/blocks.js:2538 -#: js/blocks.js:3149 -#: js/block.js:3545 -msgid "off" +#: js/SaveInterface.js:72 +msgid "For more information, please consult the" msgstr "" -#: js/blocks.js:2543 -#: js/blocks.js:3154 -#: js/palette.js:618 -#: js/block.js:3466 -#: js/BooleanBlocks.js:77 -#: js/BooleanBlocks.js:167 -#: js/BooleanBlocks.js:251 -#: js/BooleanBlocks.js:335 -#: js/BooleanBlocks.js:433 -#: js/BooleanBlocks.js:539 -#: js/BooleanBlocks.js:640 -#: js/BooleanBlocks.js:741 -#: js/BooleanBlocks.js:847 -#: js/BooleanBlocks.js:948 -#: js/BooleanBlocks.js:1033 -#: js/SensorsBlocks.js:910 -msgid "true" +#: js/SaveInterface.js:76 +#: js/turtledefs.js:795 +msgid "Music Blocks Guide" msgstr "" -#: js/blocks.js:2545 -#: js/blocks.js:3156 -#: js/block.js:3466 -#: js/BooleanBlocks.js:79 -#: js/BooleanBlocks.js:169 -#: js/BooleanBlocks.js:253 -#: js/BooleanBlocks.js:337 -#: js/BooleanBlocks.js:435 -#: js/BooleanBlocks.js:541 -#: js/BooleanBlocks.js:642 -#: js/BooleanBlocks.js:743 -#: js/BooleanBlocks.js:849 -#: js/BooleanBlocks.js:950 -#: js/SensorsBlocks.js:912 -msgid "false" +#: js/SaveInterface.js:83 +msgid "Alternatively, open the file in Music Blocks using the Load project button." msgstr "" -#: js/blocks.js:3183 -#: js/palette.js:574 -#: js/MediaBlocks.js:892 -#: js/MediaBlocks.js:963 -msgid "text" +#: js/SaveInterface.js:85 +msgid "Project Code" msgstr "" -#: js/blocks.js:3379 -#: js/palette.js:641 -#: js/palette.js:642 -#: js/BoxesBlocks.js:514 -msgid "store in box" +#: js/SaveInterface.js:87 +msgid "This code stores data about the blocks in a project." msgstr "" -#: js/blocks.js:3384 -#: js/blocks.js:3824 -#: js/blocks.js:3859 -#: js/blocks.js:3894 -#: js/blocks.js:5773 -#: js/blocks.js:5794 -#: js/BoxesBlocks.js:772 -msgid "box1" +#: js/SaveInterface.js:89 +msgid "Show" msgstr "" -#: js/blocks.js:3386 -#: js/blocks.js:3826 -#: js/blocks.js:3861 -#: js/blocks.js:3896 -#: js/blocks.js:5775 -#: js/blocks.js:5796 -#: js/BoxesBlocks.js:663 -msgid "box2" +#: js/SaveInterface.js:91 +msgid "Hide" msgstr "" -#: js/blocks.js:4058 -#: js/palette.js:639 -#: js/palette.js:644 -#: js/palette.js:1043 -#: js/BoxesBlocks.js:591 -msgid "store in" +#: js/SaveInterface.js:131 +#: js/SaveInterface.js:204 +#: js/SaveInterface.js:262 +#: js/SaveInterface.js:389 +#: js/SaveInterface.js:417 +#: js/activity.js:4884 +#: planet/js/ProjectStorage.js:27 +#: planet/js/GlobalPlanet.js:467 +#: planet/js/GlobalPlanet.js:469 +#: planet/js/GlobalPlanet.js:495 +#.TRANS: default project title when saving as Lilypond +msgid "My Project" msgstr "" -#: js/blocks.js:4058 -#: js/EnsembleBlocks.js:391 -#: js/EnsembleBlocks.js:402 -#: js/MediaBlocks.js:746 -#: js/ProgramBlocks.js:390 -#: js/ProgramBlocks.js:495 -#: js/ProgramBlocks.js:658 -#: js/BoxesBlocks.js:595 -#: js/PitchBlocks.js:656 -#: js/PitchBlocks.js:932 -#: js/PitchBlocks.js:1827 -#: js/ToneBlocks.js:1025 -#: js/DictBlocks.js:215 -#: js/DictBlocks.js:289 -msgid "name" +#: js/SaveInterface.js:197 +#: planet/js/SaveInterface.js:58 +msgid "No description provided" msgstr "" -#: js/blocks.js:4058 -#: js/RhythmBlocks.js:1130 -#: js/BoxesBlocks.js:75 -#: js/BoxesBlocks.js:595 -#: js/HeapBlocks.js:544 -#: js/DictBlocks.js:289 -#: js/DictBlocks.js:430 -msgid "value" +#: js/SaveInterface.js:332 +msgid "Your recording is in progress." msgstr "" -#: js/blocks.js:4907 -msgid "There is no block selected." +#: js/SaveInterface.js:401 +#.TRANS: File name prompt for save as Lilypond +msgid "File name" msgstr "" -#: js/blocks.js:5002 -#: js/MediaBlocks.js:888 -msgid "show" +#: js/SaveInterface.js:403 +#: planet/js/StringHelper.js:39 +#.TRANS: Project title prompt for save as Lilypond +msgid "Project title" msgstr "" -#: js/blocks.js:5005 -#: js/MediaBlocks.js:803 -#.TRANS: Avatar is the image used to determine the appearance of the mouse. -msgid "avatar" +#: js/SaveInterface.js:405 +#.TRANS: Project title prompt for save as Lilypond +msgid "Project author" msgstr "" -#: js/blocks.js:5008 -#: js/ToneBlocks.js:1010 -#: js/sampler.js:693 -#.TRANS: The sound sample that the user uploads. -msgid "sample" +#: js/SaveInterface.js:407 +#.TRANS: MIDI prompt for save as Lilypond +msgid "Include MIDI output?" msgstr "" -#: js/turtles.js:874 -msgid "Grid" +#: js/SaveInterface.js:409 +#.TRANS: Guitar prompt for save as Lilypond +msgid "Include guitar tablature output?" msgstr "" -#: js/turtles.js:891 -#: js/turtledefs.js:626 -msgid "Clean" +#: js/SaveInterface.js:411 +#.TRANS: Lilypond is a scripting language for generating sheet music +msgid "Save as Lilypond" msgstr "" -#: js/turtles.js:912 -#: js/turtledefs.js:632 -msgid "Collapse" +#: js/SaveInterface.js:426 +#: js/blocks/EnsembleBlocks.js:75 +#: js/blocks/EnsembleBlocks.js:154 +#: js/blocks/EnsembleBlocks.js:216 +#: js/blocks/EnsembleBlocks.js:302 +#: js/blocks/EnsembleBlocks.js:348 +#: js/blocks/EnsembleBlocks.js:389 +#: js/blocks/EnsembleBlocks.js:441 +#: js/blocks/EnsembleBlocks.js:490 +#: js/blocks/EnsembleBlocks.js:536 +#: js/blocks/EnsembleBlocks.js:583 +#: js/blocks/EnsembleBlocks.js:637 +#: js/blocks/EnsembleBlocks.js:753 +#: js/blocks/EnsembleBlocks.js:840 +#: js/blocks/EnsembleBlocks.js:899 +#: js/blocks/EnsembleBlocks.js:942 +#: js/blocks/EnsembleBlocks.js:1212 +#: js/blocks/EnsembleBlocks.js:1280 +#.TRANS: default project author when saving as Lilypond +msgid "Mr. Mouse" msgstr "" -#: js/turtles.js:940 -msgid "Expand" +#: js/SaveInterface.js:573 +msgid "The Lilypond code is copied to clipboard. You can paste it here: " msgstr "" #: js/languagebox.js:198 @@ -2406,6933 +2261,7487 @@ msgstr "" msgid "Music Blocks is already set to this language." msgstr "" -#: js/piemenus.js:200 -#: js/musicutils.js:808 -#: js/musicutils.js:824 -#: js/phrasemaker.js:1672 -#: js/musickeyboard.js:2041 -#: js/sampler.js:544 -#.TRANS: double sharp is a music term related to pitch -msgid "double sharp" +#: js/planetInterface.js:131 +msgid "project undefined" msgstr "" -#: js/piemenus.js:201 -#: js/PitchBlocks.js:1510 -#: js/PitchActions.js:580 -#: js/musicutils.js:806 -#: js/musicutils.js:825 -#: js/phrasemaker.js:1673 -#: js/musickeyboard.js:2042 -#: js/sampler.js:545 -#.TRANS: sharp is a half-step up in pitch -#.TRANS: sharp is a music term related to pitch -msgid "sharp" +#: js/rubrics.js:523 +#: js/turtledefs.js:119 +#: js/turtledefs.js:221 +#: js/blocks/RhythmBlockPaletteBlocks.js:52 +#: js/blocks/RhythmBlockPaletteBlocks.js:234 +#: js/blocks/ProgramBlocks.js:745 +#: js/widgets/rhythmruler.js:2057 +#: js/widgets/rhythmruler.js:2064 +#: js/widgets/rhythmruler.js:2133 +#: js/widgets/rhythmruler.js:2140 +#: js/widgets/rhythmruler.js:2219 +#.TRANS: an arrangement of notes based on duration +msgid "rhythm" msgstr "" -#: js/piemenus.js:202 -#: js/musicutils.js:804 -#: js/musicutils.js:826 -#: js/phrasemaker.js:1674 -#: js/musickeyboard.js:2043 -#: js/sampler.js:546 -#.TRANS: natural is a music term related to pitch -msgid "natural" +#: js/rubrics.js:524 +#: js/turtledefs.js:121 +#: js/turtledefs.js:223 +#: js/block-verbose.js:2622 +#: js/block.js:2550 +#: js/blocks/IntervalsBlocks.js:63 +#: js/blocks/SensorsBlocks.js:178 +#: js/blocks/PitchBlocks.js:1839 +#: js/blocks/PitchBlocks.js:1853 +#: js/widgets/musickeyboard.js:1935 +#: js/widgets/phrasemaker.js:1036 +#.TRANS: pitch number +#.TRANS: pitch number +#.TRANS: we specify pitch in terms of a name and an octave. The name can be CDEFGAB or Do Re Mi Fa Sol La Ti. Octave is a number between 1 and 8. +msgid "pitch" msgstr "" -#: js/piemenus.js:203 -#: js/PitchBlocks.js:1469 -#: js/PitchActions.js:583 -#: js/musicutils.js:802 -#: js/musicutils.js:827 -#: js/phrasemaker.js:1675 -#: js/musickeyboard.js:2044 -#: js/sampler.js:547 -#.TRANS: flat is a half-step down in pitch -#.TRANS: flat is a music term related to pitch -msgid "flat" +#: js/rubrics.js:525 +#: js/turtledefs.js:123 +#: js/turtledefs.js:225 +msgid "tone" msgstr "" -#: js/piemenus.js:204 -#: js/musicutils.js:800 -#: js/musicutils.js:828 -#: js/phrasemaker.js:1676 -#: js/musickeyboard.js:2045 -#: js/sampler.js:548 -#.TRANS: double flat is a music term related to pitch -msgid "double flat" +#: js/rubrics.js:526 +#: js/lilypond.js:605 +#: js/lilypond.js:904 +#: js/lilypond.js:910 +#: js/lilypond.js:948 +msgid "mouse" msgstr "" -#: js/piemenus.js:2861 -#: js/PitchBlocks.js:1357 -#: js/musicutils.js:627 -#.TRANS: unison means the note is the same as the current note -#.TRANS: unison is a music term related to intervals -msgid "unison" +#: js/rubrics.js:527 +#: js/turtledefs.js:132 +#: js/turtledefs.js:234 +#: js/widgets/phrasemaker.js:1040 +msgid "pen" msgstr "" -#: js/piemenus.js:3015 -#: js/piemenus.js:3088 -#: js/musicutils.js:635 -#: js/musicutils.js:810 -#: js/musicutils.js:912 -#.TRANS: major is a music term related to intervals and mode -msgid "major" +#: js/rubrics.js:528 +#: js/turtledefs.js:133 +#: js/turtledefs.js:235 +#: js/blocks/NumberBlocks.js:981 +#: js/blocks/PitchBlocks.js:1717 +#: js/blocks/PitchBlocks.js:1758 +msgid "number" msgstr "" -#: js/piemenus.js:3015 -#: js/piemenus.js:3088 -#: js/musicutils.js:653 -#.TRANS: modal scale for music -msgid "ionian" +#: js/rubrics.js:529 +#: js/turtledefs.js:127 +#: js/turtledefs.js:229 +msgid "flow" msgstr "" -#: js/piemenus.js:3017 -#: js/piemenus.js:3092 -#: js/musicutils.js:633 -#: js/musicutils.js:811 -#: js/musicutils.js:909 -#.TRANS: minor is a music term related to intervals and mode -msgid "minor" +#: js/rubrics.js:530 +#: js/turtledefs.js:128 +#: js/turtledefs.js:230 +#: js/block-verbose.js:1609 +#: js/block-verbose.js:4559 +#: js/block-verbose.js:4577 +#: js/block-verbose.js:4588 +#: js/block.js:1573 +#: js/block.js:4483 +#: js/block.js:4501 +#: js/block.js:4512 +#: js/blocks.js:1018 +#: js/blocks.js:3491 +#: js/blocks.js:3492 +#: js/blocks.js:3717 +#: js/blocks.js:4076 +#: js/blocks.js:4269 +#: js/blocks.js:5432 +#: js/blocks.js:6563 +#: js/macros.js:170 +#: js/macros.js:266 +#: js/macros.js:267 +#: js/macros.js:276 +#: js/macros.js:828 +#: js/palette.js:527 +#: js/palette.js:536 +#: js/palette.js:545 +#: js/palette.js:554 +#: js/palette.js:1129 +#: js/palette.js:1140 +#: js/palette.js:1151 +#: js/palette.js:1162 +#: js/palette.js:1181 +#: js/blocks/ActionBlocks.js:254 +#: js/blocks/ActionBlocks.js:307 +#: js/blocks/ActionBlocks.js:617 +#: js/blocks/ActionBlocks.js:716 +#: js/blocks/ActionBlocks.js:961 +#: js/blocks/ActionBlocks.js:1049 +#: js/blocks/ActionBlocks.js:1322 +#: js/blocks/ActionBlocks.js:1325 +#: js/blocks/ActionBlocks.js:1337 +#: js/blocks/ActionBlocks.js:1404 +#: js/blocks/MeterBlocks.js:715 +#: js/blocks/MeterBlocks.js:768 +#: js/blocks/MeterBlocks.js:831 +#: js/blocks/MeterBlocks.js:892 +#: js/widgets/musickeyboard.js:2986 +#: js/widgets/phrasemaker.js:4913 +#: js/widgets/rhythmruler.js:2319 +#: js/widgets/rhythmruler.js:2326 +#: js/widgets/rhythmruler.js:2511 +#: js/widgets/rhythmruler.js:2518 +msgid "action" msgstr "" -#: js/piemenus.js:3017 -#: js/piemenus.js:3092 -#: js/musicutils.js:663 -#.TRANS: modal scale for music -msgid "aeolian" +#: js/rubrics.js:531 +#: js/turtledefs.js:136 +#: js/turtledefs.js:238 +msgid "sensors" msgstr "" -#: js/piemenus.js:3407 -msgid "Duplicate" +#: js/rubrics.js:532 +#: js/turtledefs.js:135 +#: js/turtledefs.js:237 +#: js/blocks/MediaBlocks.js:930 +msgid "media" msgstr "" -#: js/piemenus.js:3408 -#: js/turtledefs.js:534 -msgid "Extract" +#: js/rubrics.js:533 +msgid "mice" msgstr "" -#: js/piemenus.js:3409 -msgid "Move to trash" +#: js/toolbar.js:48 +#: js/toolbar.js:109 +msgid "About Music Blocks" msgstr "" -#: js/piemenus.js:3410 -#: js/timbre.js:968 -#: js/StringHelper.js:69 -msgid "Close" +#: js/toolbar.js:49 +#: js/toolbar.js:110 +#: js/toolbar.js:175 +#: js/toolbar.js:231 +#: js/turtledefs.js:445 +#: js/turtledefs.js:482 +#: js/activity.js:2660 +#: js/activity.js:2671 +#: js/activity.js:2902 +#: js/widgets/modewidget.js:77 +#: js/widgets/meterwidget.js:185 +#: js/widgets/pitchdrummatrix.js:147 +#: js/widgets/pitchdrummatrix.js:687 +#: js/widgets/pitchdrummatrix.js:689 +#: js/widgets/pitchdrummatrix.js:741 +#: js/widgets/pitchdrummatrix.js:743 +#: js/widgets/pitchdrummatrix.js:758 +#: js/widgets/pitchdrummatrix.js:760 +#: js/widgets/pitchdrummatrix.js:789 +#: js/widgets/pitchdrummatrix.js:791 +#: js/widgets/pitchstaircase.js:121 +#: js/widgets/temperament.js:610 +#: js/widgets/temperament.js:613 +#: js/widgets/temperament.js:673 +#: js/widgets/temperament.js:675 +#: js/widgets/temperament.js:2017 +#: js/widgets/temperament.js:2019 +#: js/widgets/tempo.js:84 +#: js/widgets/tempo.js:86 +#: js/widgets/timbre.js:432 +#: js/widgets/timbre.js:434 +#: js/widgets/timbre.js:465 +#: js/widgets/timbre.js:467 +#: js/widgets/timbre.js:746 +#: js/widgets/aiwidget.js:647 +#: js/widgets/aiwidget.js:654 +#: js/widgets/aiwidget.js:656 +#: js/widgets/arpeggio.js:90 +#: js/widgets/arpeggio.js:547 +#: js/widgets/arpeggio.js:549 +#: js/widgets/arpeggio.js:644 +#: js/widgets/arpeggio.js:646 +#: js/widgets/musickeyboard.js:676 +#: js/widgets/musickeyboard.js:872 +#: js/widgets/musickeyboard.js:874 +#: js/widgets/musickeyboard.js:953 +#: js/widgets/musickeyboard.js:955 +#: js/widgets/phrasemaker.js:513 +#: js/widgets/phrasemaker.js:523 +#: js/widgets/phrasemaker.js:525 +#: js/widgets/phrasemaker.js:4304 +#: js/widgets/phrasemaker.js:4528 +#: js/widgets/phrasemaker.js:4533 +#: js/widgets/phrasemaker.js:4535 +#: js/widgets/phrasemaker.js:4650 +#: js/widgets/rhythmruler.js:637 +#: js/widgets/rhythmruler.js:639 +#: js/widgets/rhythmruler.js:653 +#: js/widgets/rhythmruler.js:655 +#: js/widgets/sampler.js:162 +#: js/widgets/sampler.js:164 +#: js/widgets/sampler.js:363 +msgid "Play" msgstr "" -#: js/piemenus.js:3416 -msgid "Save stack" +#: js/toolbar.js:50 +#: js/toolbar.js:111 +#: js/toolbar.js:176 +#: js/toolbar.js:232 +#: js/turtledefs.js:451 +#: js/turtledefs.js:488 +#: js/activity.js:2679 +#: js/widgets/modewidget.js:99 +#: js/widgets/modewidget.js:101 +#: js/widgets/meterwidget.js:206 +#: js/widgets/meterwidget.js:208 +#: js/widgets/pitchdrummatrix.js:674 +#: js/widgets/pitchdrummatrix.js:676 +#: js/widgets/temperament.js:2002 +#: js/widgets/temperament.js:2004 +#: js/widgets/arpeggio.js:534 +#: js/widgets/arpeggio.js:536 +#: js/widgets/phrasemaker.js:534 +#: js/widgets/phrasemaker.js:536 +msgid "Stop" msgstr "" -#: js/piemenus.js:3420 -#: js/toolbar.js:60 -#: js/toolbar.js:120 -#: js/toolbar.js:185 -#: js/toolbar.js:240 -#: js/turtledefs.js:752 -msgid "Help" +#: js/toolbar.js:51 +#: js/toolbar.js:112 +#: js/toolbar.js:177 +#: js/toolbar.js:233 +#: js/turtledefs.js:498 +msgid "Record" msgstr "" -#: js/piemenus.js:3762 -msgid "You have chosen key " +#: js/toolbar.js:52 +#: js/toolbar.js:53 +msgid "Full screen" msgstr "" -#: js/piemenus.js:3766 -msgid " for your pitch preview." +#: js/toolbar.js:54 +#: js/toolbar.js:115 +#: js/toolbar.js:180 +#: js/toolbar.js:236 +#: js/turtledefs.js:504 +msgid "Toggle Fullscreen" +msgstr "" + +#: js/toolbar.js:55 +#: js/toolbar.js:116 +#: js/toolbar.js:181 +#: js/toolbar.js:237 +#: js/turtledefs.js:510 +#: planet/js/StringHelper.js:33 +msgid "New project" +msgstr "" + +#: js/toolbar.js:56 +#: js/toolbar.js:117 +#: js/toolbar.js:182 +#: js/toolbar.js:238 +#: js/turtledefs.js:516 +msgid "Load project from file" +msgstr "" + +#: js/toolbar.js:57 +#: js/toolbar.js:118 +#: js/toolbar.js:119 +#: js/toolbar.js:183 +#: js/toolbar.js:239 +#: js/turtledefs.js:541 +#: js/turtledefs.js:550 +#: js/turtledefs.js:571 +msgid "Save project" +msgstr "" + +#: js/toolbar.js:58 +#: js/toolbar.js:77 +#: js/toolbar.js:79 +#: js/toolbar.js:138 +#: js/toolbar.js:147 +#: js/toolbar.js:149 +#: js/toolbar.js:184 +#: js/toolbar.js:202 +#: js/toolbar.js:204 +#: js/toolbar.js:240 +#: js/toolbar.js:258 +#: js/toolbar.js:260 +msgid "Save project as HTML" +msgstr "" + +#: js/toolbar.js:59 +#: js/toolbar.js:120 +#: js/toolbar.js:185 +#: js/toolbar.js:241 +msgid "Find and share projects" +msgstr "" + +#: js/toolbar.js:60 +#: js/toolbar.js:121 +#: js/toolbar.js:186 +#: js/toolbar.js:242 +msgid "Offline. Sharing is unavailable" +msgstr "" + +#: js/toolbar.js:61 +#: js/toolbar.js:122 +#: js/toolbar.js:187 +#: js/toolbar.js:243 +msgid "Auxiliary menu" +msgstr "" + +#: js/toolbar.js:62 +#: js/toolbar.js:123 +#: js/toolbar.js:188 +#: js/toolbar.js:244 +#: js/turtledefs.js:752 +#: js/piemenus.js:3423 +msgid "Help" +msgstr "" + +#: js/toolbar.js:63 +#: js/toolbar.js:124 +#: js/toolbar.js:189 +#: js/toolbar.js:245 +msgid "Run slowly" +msgstr "" + +#: js/toolbar.js:64 +#: js/toolbar.js:125 +#: js/toolbar.js:190 +#: js/toolbar.js:246 +#: js/turtledefs.js:682 +msgid "Run step by step" +msgstr "" + +#: js/toolbar.js:65 +#: js/toolbar.js:126 +#: js/toolbar.js:191 +#: js/toolbar.js:247 +#: js/turtledefs.js:689 +msgid "Display statistics" +msgstr "" + +#: js/toolbar.js:66 +#: js/toolbar.js:127 +#: js/toolbar.js:192 +#: js/toolbar.js:248 +msgid "Load plugin" +msgstr "" + +#: js/toolbar.js:67 +#: js/toolbar.js:128 +#: js/toolbar.js:193 +#: js/toolbar.js:249 +#: js/turtledefs.js:696 +msgid "Delete plugin" +msgstr "" + +#: js/toolbar.js:68 +#: js/toolbar.js:129 +#: js/toolbar.js:194 +#: js/toolbar.js:250 +msgid "Enable horizontal scrolling" +msgstr "" + +#: js/toolbar.js:69 +#: js/toolbar.js:130 +#: js/toolbar.js:195 +#: js/toolbar.js:251 +msgid "Disable horizontal scrolling" +msgstr "" + +#: js/toolbar.js:70 +#: js/toolbar.js:131 +#: js/toolbar.js:196 +#: js/toolbar.js:252 +#: planet/js/LocalCard.js:54 +#: planet/js/StringHelper.js:71 +msgid "Merge with current project" +msgstr "" + +#: js/toolbar.js:71 +#: js/toolbar.js:132 +msgid "Set Pitch Preview" +msgstr "" + +#: js/toolbar.js:72 +#: js/toolbar.js:133 +#: js/toolbar.js:197 +#: js/toolbar.js:253 +msgid "JavaScript Editor" +msgstr "" + +#: js/toolbar.js:73 +#: js/toolbar.js:134 +#: js/toolbar.js:198 +#: js/toolbar.js:254 +#: js/turtledefs.js:724 +msgid "Restore" +msgstr "" + +#: js/toolbar.js:74 +#: js/toolbar.js:135 +#: js/toolbar.js:199 +#: js/toolbar.js:255 +msgid "Switch to beginner mode" +msgstr "" + +#: js/toolbar.js:75 +#: js/toolbar.js:136 +#: js/toolbar.js:200 +#: js/toolbar.js:256 +msgid "Switch to advanced mode" +msgstr "" + +#: js/toolbar.js:76 +#: js/toolbar.js:137 +#: js/toolbar.js:146 +#: js/toolbar.js:201 +#: js/toolbar.js:257 +#: js/turtledefs.js:738 +msgid "Select language" +msgstr "" + +#: js/toolbar.js:78 +#: js/toolbar.js:81 +#: js/toolbar.js:140 +#: js/turtledefs.js:579 +msgid "Save mouse artwork as PNG" +msgstr "" + +#: js/toolbar.js:80 +#: js/toolbar.js:139 +#: js/turtledefs.js:575 +msgid "Save mouse artwork as SVG" +msgstr "" + +#: js/toolbar.js:82 +#: js/toolbar.js:141 +#: js/turtledefs.js:583 +msgid "Save music as WAV" +msgstr "" + +#: js/toolbar.js:83 +#: js/toolbar.js:142 +#: js/turtledefs.js:587 +msgid "Save sheet music as ABC" +msgstr "" + +#: js/toolbar.js:84 +#: js/toolbar.js:143 +#: js/turtledefs.js:591 +msgid "Save sheet music as Lilypond" +msgstr "" + +#: js/toolbar.js:85 +msgid "Save sheet music as MusicXML" +msgstr "" + +#: js/toolbar.js:86 +#: js/toolbar.js:144 +#: js/toolbar.js:152 +#: js/toolbar.js:207 +#: js/toolbar.js:263 +#: js/turtledefs.js:562 +#: js/turtledefs.js:595 +msgid "Save block artwork as SVG" +msgstr "" + +#: js/toolbar.js:87 +#: js/toolbar.js:145 +#: js/toolbar.js:153 +#: js/toolbar.js:208 +#: js/toolbar.js:264 +#: js/turtles.js:911 +msgid "Confirm" +msgstr "" + +#: js/toolbar.js:88 +#: js/toolbar.js:154 +#: js/toolbar.js:209 +#: js/toolbar.js:265 +msgid "English (United States)" +msgstr "" + +#: js/toolbar.js:89 +#: js/toolbar.js:155 +#: js/toolbar.js:210 +#: js/toolbar.js:266 +msgid "English (United Kingdom)" +msgstr "" + +#: js/toolbar.js:90 +#: js/toolbar.js:156 +#: js/toolbar.js:211 +#: js/toolbar.js:267 +msgid "日本語" +msgstr "" + +#: js/toolbar.js:91 +msgid "한국어" +msgstr "" + +#: js/toolbar.js:92 +#: js/toolbar.js:158 +#: js/toolbar.js:213 +#: js/toolbar.js:269 +msgid "español" +msgstr "" + +#: js/toolbar.js:93 +#: js/toolbar.js:159 +#: js/toolbar.js:214 +#: js/toolbar.js:270 +msgid "português" +msgstr "" + +#: js/toolbar.js:94 +#: js/toolbar.js:160 +#: js/toolbar.js:215 +#: js/toolbar.js:271 +msgid "にほんご" +msgstr "" + +#: js/toolbar.js:95 +#: js/toolbar.js:161 +#: js/toolbar.js:216 +#: js/toolbar.js:272 +msgid "中文" +msgstr "" + +#: js/toolbar.js:96 +#: js/toolbar.js:162 +#: js/toolbar.js:217 +#: js/toolbar.js:273 +msgid "ภาษาไทย" +msgstr "" + +#: js/toolbar.js:97 +#: js/toolbar.js:163 +#: js/toolbar.js:218 +#: js/toolbar.js:274 +msgid "aymara" +msgstr "" + +#: js/toolbar.js:98 +#: js/toolbar.js:164 +#: js/toolbar.js:219 +#: js/toolbar.js:275 +msgid "quechua" +msgstr "" + +#: js/toolbar.js:99 +#: js/toolbar.js:165 +#: js/toolbar.js:220 +#: js/toolbar.js:276 +msgid "guarani" +msgstr "" + +#: js/toolbar.js:100 +#: js/toolbar.js:166 +#: js/toolbar.js:221 +#: js/toolbar.js:277 +msgid "हिंदी" +msgstr "" + +#: js/toolbar.js:101 +#: js/toolbar.js:168 +#: js/toolbar.js:222 +#: js/toolbar.js:279 +msgid "igbo" +msgstr "" + +#: js/toolbar.js:102 +#: js/toolbar.js:169 +#: js/toolbar.js:223 +#: js/toolbar.js:280 +msgid "عربى" +msgstr "" + +#: js/toolbar.js:103 +#: js/toolbar.js:167 +#: js/toolbar.js:224 +#: js/toolbar.js:278 +msgid "తెలుగు" +msgstr "" + +#: js/toolbar.js:104 +#: js/toolbar.js:170 +#: js/toolbar.js:225 +#: js/toolbar.js:281 +msgid "עִברִית" +msgstr "" + +#: js/toolbar.js:113 +#: js/toolbar.js:114 +#: js/toolbar.js:178 +#: js/toolbar.js:179 +#: js/toolbar.js:234 +#: js/toolbar.js:235 +msgid "Full Screen" +msgstr "" + +#: js/toolbar.js:148 +#: js/toolbar.js:151 +#: js/toolbar.js:203 +#: js/toolbar.js:206 +#: js/toolbar.js:259 +#: js/toolbar.js:262 +#: js/turtledefs.js:558 +msgid "Save turtle artwork as PNG" +msgstr "" + +#: js/toolbar.js:150 +#: js/toolbar.js:205 +#: js/toolbar.js:261 +#: js/turtledefs.js:554 +msgid "Save turtle artwork as SVG" +msgstr "" + +#: js/toolbar.js:157 +#: js/toolbar.js:212 +#: js/toolbar.js:268 +msgid "한국인" +msgstr "" + +#: js/toolbar.js:174 +#: js/toolbar.js:230 +msgid "About Turtle Blocks" +msgstr "" + +#: js/toolbar.js:446 +#: js/toolbar.js:457 +#: js/toolbar.js:497 +msgid "Turtle Wrap Off" +msgstr "" + +#: js/toolbar.js:466 +#: js/toolbar.js:506 +msgid "Turtle Wrap On" +msgstr "" + +#: js/turtle-painter.js:1192 +#: js/turtle-painter.js:1193 +#: js/turtles.js:118 +#: js/block-verbose.js:1623 +#: js/block.js:1587 +#: js/lilypond.js:749 +#: js/lilypond.js:913 +#: js/lilypond.js:951 +#: js/logo.js:1184 +#: js/blocks/ActionBlocks.js:1223 +#: js/blocks/ProgramBlocks.js:1267 +msgid "start" +msgstr "" + +#: js/turtledefs.js:40 +#.TRANS: put the URL to the guide here, e.g., https://github.com/sugarlabs/turtleblocksjs/tree/master/guide/README.md +msgid "guide url" +msgstr "" + +#: js/turtledefs.js:85 +#: js/turtledefs.js:437 +msgid "Turtle Blocks is a Logo-inspired turtle that draws colorful pictures with snap-together visual-programming blocks." +msgstr "" + +#: js/turtledefs.js:118 +#: js/turtledefs.js:220 +msgid "search" +msgstr "" + +#: js/turtledefs.js:120 +#: js/turtledefs.js:222 +#: js/blocks/MeterBlocks.js:1343 +#: js/blocks/WidgetBlocks.js:522 +#.TRANS: musical meter (time signature), e.g., 4:4 +msgid "meter" +msgstr "" + +#: js/turtledefs.js:122 +#: js/turtledefs.js:224 +msgid "intervals" +msgstr "" + +#: js/turtledefs.js:124 +#: js/turtledefs.js:226 +msgid "ornament" +msgstr "" + +#: js/turtledefs.js:125 +#: js/turtledefs.js:227 +#: js/blocks/VolumeBlocks.js:362 +#: js/blocks/VolumeBlocks.js:502 +#: js/blocks/VolumeBlocks.js:545 +msgid "volume" +msgstr "" + +#: js/turtledefs.js:126 +#: js/turtledefs.js:228 +#: js/block-verbose.js:1700 +#: js/block-verbose.js:2626 +#: js/block.js:1664 +#: js/block.js:2554 +#: js/lilypond.js:732 +#: js/lilypond.js:897 +#: js/lilypond.js:941 +#: js/palette.js:577 +#: js/blocks/RhythmBlocks.js:766 +#: js/blocks/DrumBlocks.js:477 +#: js/blocks/VolumeBlocks.js:502 +#: js/widgets/phrasemaker.js:1038 +msgid "drum" +msgstr "" + +#: js/turtledefs.js:129 +#: js/turtledefs.js:231 +msgid "boxes" +msgstr "" + +#: js/turtledefs.js:130 +#: js/turtledefs.js:232 +msgid "widgets" +msgstr "" + +#: js/turtledefs.js:131 +#: js/turtledefs.js:233 +#: js/widgets/phrasemaker.js:1039 +msgid "graphics" +msgstr "" + +#: js/turtledefs.js:134 +#: js/turtledefs.js:236 +msgid "boolean" +msgstr "" + +#: js/turtledefs.js:137 +#: js/turtledefs.js:239 +#: js/blocks/HeapBlocks.js:59 +#: js/widgets/status.js:147 +msgid "heap" +msgstr "" + +#: js/turtledefs.js:138 +#: js/turtledefs.js:240 +#: js/blocks/DictBlocks.js:142 +#: js/blocks/ProgramBlocks.js:495 +msgid "dictionary" +msgstr "" + +#: js/turtledefs.js:139 +#: js/turtledefs.js:241 +msgid "ensemble" +msgstr "" + +#: js/turtledefs.js:140 +#: js/turtledefs.js:242 +msgid "extras" +msgstr "" + +#: js/turtledefs.js:142 +#: js/turtledefs.js:244 +#.TRANS: program as in computer program +#.TRANS: program as in computer program +msgid "program" +msgstr "" + +#: js/turtledefs.js:143 +#: js/turtledefs.js:245 +msgid "my blocks" +msgstr "" + +#: js/turtledefs.js:185 +#: js/turtledefs.js:281 +msgid "artwork" +msgstr "" + +#: js/turtledefs.js:185 +#: js/turtledefs.js:281 +msgid "logic" +msgstr "" + +#: js/turtledefs.js:185 +#: js/turtledefs.js:281 +msgid "music" +msgstr "" + +#: js/turtledefs.js:187 +#: js/turtledefs.js:463 +msgid "Music Blocks is a collection of tools for exploring fundamental musical concepts in a fun way." +msgstr "" + +#: js/turtledefs.js:436 +msgid "Welcome to Turtle Blocks" +msgstr "" + +#: js/turtledefs.js:438 +#: js/turtledefs.js:465 +#: js/turtledefs.js:774 +#: js/turtledefs.js:805 +msgid "The current version is" +msgstr "" + +#: js/turtledefs.js:446 +#: js/turtledefs.js:483 +msgid "Click the run button to run the project in fast mode." +msgstr "" + +#: js/turtledefs.js:452 +msgid "Stop the turtle." +msgstr "" + +#: js/turtledefs.js:454 +#: js/turtledefs.js:491 +msgid "You can also type Alt-S to stop." +msgstr "" + +#: js/turtledefs.js:462 +#: js/widgets/help.js:333 +msgid "Welcome to Music Blocks" +msgstr "" + +#: js/turtledefs.js:472 +#: js/widgets/help.js:334 +msgid "Meet Mr. Mouse!" +msgstr "" + +#: js/turtledefs.js:473 +msgid "Mr Mouse is our Music Blocks conductor." +msgstr "" + +#: js/turtledefs.js:475 +msgid "Mr Mouse encourages you to explore Music Blocks." +msgstr "" + +#: js/turtledefs.js:477 +msgid "Let us start our tour!" +msgstr "" + +#: js/turtledefs.js:489 +msgid "Stop the music (and the mice)." +msgstr "" + +#: js/turtledefs.js:499 +msgid "Record your project as video." +msgstr "" + +#: js/turtledefs.js:505 +msgid "Toggle Fullscreen mode." +msgstr "" + +#: js/turtledefs.js:511 +msgid "Initialize a new project." +msgstr "" + +#: js/turtledefs.js:517 +msgid "You can also load projects from the file system." +msgstr "" + +#: js/turtledefs.js:522 +#: planet/js/StringHelper.js:46 +msgid "Delete" +msgstr "" + +#: js/turtledefs.js:523 +msgid "To delete a block, just right-click on it, then you will be able to see the delete option" +msgstr "" + +#: js/turtledefs.js:528 +#: js/activity.js:2649 +#: planet/js/LocalCard.js:31 +msgid "Copy" +msgstr "" + +#: js/turtledefs.js:529 +msgid "To copy a block, just right-click on it, then you will be able to see the copy option" +msgstr "" + +#: js/turtledefs.js:534 +#: js/piemenus.js:3411 +msgid "Extract" +msgstr "" + +#: js/turtledefs.js:535 +msgid "To extract a block, just right-click on it, then you will be able to see the extract option" +msgstr "" + +#: js/turtledefs.js:542 +#: js/turtledefs.js:552 +#: js/turtledefs.js:573 +msgid "Save your project to a file." +msgstr "" + +#: js/turtledefs.js:549 +#: js/turtledefs.js:570 +msgid "save" +msgstr "" + +#: js/turtledefs.js:556 +#: js/turtledefs.js:577 +msgid "Save graphics from your project to as SVG." +msgstr "" + +#: js/turtledefs.js:560 +#: js/turtledefs.js:581 +msgid "Save graphics from your project as PNG." +msgstr "" + +#: js/turtledefs.js:564 +#: js/turtledefs.js:597 +msgid "Save block artwork as an SVG file." +msgstr "" + +#: js/turtledefs.js:585 +msgid "Save audio from your project as WAV." +msgstr "" + +#: js/turtledefs.js:589 +msgid "Save your project to as an ABC file." +msgstr "" + +#: js/turtledefs.js:593 +msgid "Save your project to as a Lilypond file." +msgstr "" + +#: js/turtledefs.js:604 +msgid "Load samples from server" +msgstr "" + +#: js/turtledefs.js:605 +msgid "This button opens a viewer for loading example projects." +msgstr "" + +#: js/turtledefs.js:611 +msgid "Palette buttons" +msgstr "" + +#: js/turtledefs.js:612 +msgid "This toolbar contains the palette buttons including Rhythm Pitch Tone Action and more." +msgstr "" + +#: js/turtledefs.js:614 +msgid "Click to show the palettes of blocks and drag blocks from the palettes onto the canvas to use them." +msgstr "" + +#: js/turtledefs.js:620 +msgid "Cartesian/Polar" +msgstr "" + +#: js/turtledefs.js:621 +msgid "Show or hide a coordinate grid." +msgstr "" + +#: js/turtledefs.js:626 +#: js/turtles.js:902 +msgid "Clean" +msgstr "" + +#: js/turtledefs.js:627 +msgid "Clear the screen and return the mice to their initial positions." +msgstr "" + +#: js/turtledefs.js:632 +#: js/turtles.js:955 +msgid "Collapse" +msgstr "" + +#: js/turtledefs.js:633 +msgid "Collapse the graphics window." msgstr "" -#: js/palette.js:571 -msgid "grid" +#: js/turtledefs.js:638 +#: js/activity.js:5684 +msgid "Home" msgstr "" -#: js/palette.js:577 -#: js/block.js:1540 -#: js/block.js:2343 -#: js/turtledefs.js:126 -#: js/turtledefs.js:228 -#: js/lilypond.js:740 -#: js/lilypond.js:905 -#: js/lilypond.js:949 -#: js/DrumBlocks.js:486 -#: js/RhythmBlocks.js:766 -#: js/VolumeBlocks.js:502 -#: js/phrasemaker.js:823 -msgid "drum" +#: js/turtledefs.js:639 +msgid "Return all blocks to the center of the screen." msgstr "" -#: js/palette.js:580 -msgid "effect" +#: js/turtledefs.js:644 +msgid "Show/hide blocks" msgstr "" -#: js/palette.js:586 -msgid "sargam" +#: js/turtledefs.js:645 +msgid "Hide or show the blocks and the palettes." msgstr "" -#: js/palette.js:589 -#: js/activity.js:1833 -#: js/RhythmBlocks.js:923 -#: js/PitchBlocks.js:442 -#: js/PitchBlocks.js:1748 -#.TRANS: a numeric mapping of the notes in an octave based on the musical mode -msgid "scale degree" +#: js/turtledefs.js:650 +msgid "Expand/collapse collapsable blocks" msgstr "" -#: js/palette.js:592 -#: js/activity.js:1860 -msgid "mode name" +#: js/turtledefs.js:651 +msgid "Expand or collapse start and action stacks." msgstr "" -#: js/palette.js:595 -#: js/activity.js:1839 -msgid "invert mode" +#: js/turtledefs.js:658 +#: js/activity.js:5704 +msgid "Decrease block size" msgstr "" -#: js/palette.js:598 -#: js/activity.js:1836 -msgid "voice name" +#: js/turtledefs.js:659 +msgid "Decrease the size of the blocks." msgstr "" -#: js/palette.js:601 -#: js/PitchBlocks.js:1181 -msgid "custom pitch" +#: js/turtledefs.js:664 +#: js/activity.js:5710 +msgid "Increase block size" msgstr "" -#: js/palette.js:605 -#: js/block.js:1456 -#: js/block.js:1575 -#: js/WidgetBlocks.js:218 -#: js/IntervalsBlocks.js:63 -msgid "temperament" +#: js/turtledefs.js:665 +msgid "Increase the size of the blocks." msgstr "" -#: js/palette.js:609 -msgid "accidental" +#: js/turtledefs.js:670 +msgid "Expand/collapse option toolbar" msgstr "" -#: js/palette.js:615 -#: js/activity.js:1866 -msgid "interval name" +#: js/turtledefs.js:671 +msgid "Click this button to expand or collapse the auxillary toolbar." msgstr "" -#: js/palette.js:633 -#: js/PitchBlocks.js:405 -msgid "pitch converter" +#: js/turtledefs.js:676 +msgid "Run slow" msgstr "" -#: js/rubrics.js:522 -#: js/turtledefs.js:119 -#: js/turtledefs.js:221 -#: js/RhythmBlockPaletteBlocks.js:52 -#: js/RhythmBlockPaletteBlocks.js:233 -#: js/ProgramBlocks.js:745 -#: js/rhythmruler.js:1670 -#: js/rhythmruler.js:1677 -#: js/rhythmruler.js:1745 -#: js/rhythmruler.js:1752 -#: js/rhythmruler.js:1830 -#.TRANS: an arrangement of notes based on duration -msgid "rhythm" +#: js/turtledefs.js:677 +msgid "Click to run the project in slow mode." msgstr "" -#: js/rubrics.js:523 -#: js/block.js:2339 -#: js/turtledefs.js:121 -#: js/turtledefs.js:223 -#: js/IntervalsBlocks.js:63 -#: js/PitchBlocks.js:1801 -#: js/PitchBlocks.js:1814 -#: js/SensorsBlocks.js:178 -#: js/phrasemaker.js:821 -#: js/musickeyboard.js:1653 -#.TRANS: pitch number -#.TRANS: we specify pitch in terms of a name and an octave. The name can be CDEFGAB or Do Re Mi Fa Sol La Ti. Octave is a number between 1 and 8. -msgid "pitch" +#: js/turtledefs.js:683 +msgid "Click to run the project step by step." msgstr "" -#: js/rubrics.js:524 -#: js/turtledefs.js:123 -#: js/turtledefs.js:225 -msgid "tone" +#: js/turtledefs.js:690 +msgid "Display statistics about your Music project." msgstr "" -#: js/rubrics.js:525 -#: js/lilypond.js:613 -#: js/lilypond.js:912 -#: js/lilypond.js:918 -#: js/lilypond.js:956 -msgid "mouse" +#: js/turtledefs.js:697 +msgid "Delete a selected plugin." msgstr "" -#: js/rubrics.js:526 -#: js/turtledefs.js:132 -#: js/turtledefs.js:234 -#: js/phrasemaker.js:825 -msgid "pen" +#: js/turtledefs.js:704 +msgid "Enable scrolling" msgstr "" -#: js/rubrics.js:527 -#: js/turtledefs.js:133 -#: js/turtledefs.js:235 -#: js/NumberBlocks.js:905 -#: js/PitchBlocks.js:1679 -#: js/PitchBlocks.js:1720 -msgid "number" +#: js/turtledefs.js:705 +msgid "You can scroll the blocks on the canvas." msgstr "" -#: js/rubrics.js:528 -#: js/turtledefs.js:127 -#: js/turtledefs.js:229 -msgid "flow" +#: js/turtledefs.js:714 +msgid "Wrap Turtle" msgstr "" -#: js/rubrics.js:530 -#: js/turtledefs.js:136 -#: js/turtledefs.js:238 -msgid "sensors" +#: js/turtledefs.js:715 +msgid "Turn Turtle wrapping On or Off." msgstr "" -#: js/rubrics.js:531 -#: js/turtledefs.js:135 -#: js/turtledefs.js:237 -#: js/MediaBlocks.js:930 -msgid "media" +#: js/turtledefs.js:725 +msgid "Restore blocks from the trash." msgstr "" -#: js/rubrics.js:532 -msgid "mice" +#: js/turtledefs.js:732 +msgid "Switch mode" msgstr "" -#: js/macros.js:711 -#: js/musicutils.js:783 -#: js/synthutils.js:181 -#.TRANS: animal sound effect -msgid "duck" +#: js/turtledefs.js:733 +msgid "Switch between beginner and advance modes." msgstr "" -#: js/toolbar.js:46 -#: js/toolbar.js:107 -msgid "About Music Blocks" +#: js/turtledefs.js:739 +msgid "Select your language preference." msgstr "" -#: js/toolbar.js:47 -#: js/toolbar.js:108 -#: js/toolbar.js:172 -#: js/toolbar.js:228 -#: js/turtledefs.js:445 -#: js/turtledefs.js:482 -#: js/activity.js:2281 -#: js/activity.js:2289 -#: js/activity.js:2520 -#: js/modewidget.js:77 -#: js/pitchstaircase.js:121 -#: js/phrasemaker.js:302 -#: js/phrasemaker.js:312 -#: js/phrasemaker.js:314 -#: js/phrasemaker.js:3901 -#: js/phrasemaker.js:4061 -#: js/phrasemaker.js:4066 -#: js/phrasemaker.js:4068 -#: js/phrasemaker.js:4183 -#: js/pitchdrummatrix.js:81 -#: js/pitchdrummatrix.js:574 -#: js/pitchdrummatrix.js:576 -#: js/pitchdrummatrix.js:628 -#: js/pitchdrummatrix.js:630 -#: js/pitchdrummatrix.js:645 -#: js/pitchdrummatrix.js:647 -#: js/pitchdrummatrix.js:674 -#: js/pitchdrummatrix.js:676 -#: js/temperament.js:477 -#: js/temperament.js:480 -#: js/temperament.js:540 -#: js/temperament.js:542 -#: js/temperament.js:1835 -#: js/temperament.js:1837 -#: js/temperament.js:1986 -#: js/temperament.js:1988 -#: js/musickeyboard.js:522 -#: js/musickeyboard.js:682 -#: js/musickeyboard.js:684 -#: js/musickeyboard.js:756 -#: js/musickeyboard.js:758 -#: js/rhythmruler.js:298 -#: js/rhythmruler.js:300 -#: js/rhythmruler.js:314 -#: js/rhythmruler.js:316 -#: js/sampler.js:96 -#: js/sampler.js:98 -#: js/sampler.js:229 -#: js/sampler.js:235 -#: js/sampler.js:237 -#: js/tempo.js:84 -#: js/tempo.js:86 -#: js/timbre.js:432 -#: js/timbre.js:434 -#: js/timbre.js:465 -#: js/timbre.js:467 -#: js/timbre.js:746 -#: js/meterwidget.js:80 -#: js/arpeggio.js:90 -#: js/arpeggio.js:547 -#: js/arpeggio.js:549 -#: js/arpeggio.js:644 -#: js/arpeggio.js:646 -msgid "Play" +#: js/turtledefs.js:745 +msgid "Keyboard shortcuts" msgstr "" -#: js/toolbar.js:48 -#: js/toolbar.js:109 -#: js/toolbar.js:173 -#: js/toolbar.js:229 -#: js/turtledefs.js:451 -#: js/turtledefs.js:488 -#: js/activity.js:2297 -#: js/modewidget.js:99 -#: js/modewidget.js:101 -#: js/phrasemaker.js:323 -#: js/phrasemaker.js:325 -#: js/pitchdrummatrix.js:561 -#: js/pitchdrummatrix.js:563 -#: js/temperament.js:1820 -#: js/temperament.js:1822 -#: js/meterwidget.js:101 -#: js/meterwidget.js:103 -#: js/arpeggio.js:534 -#: js/arpeggio.js:536 -msgid "Stop" +#: js/turtledefs.js:746 +msgid "You can type d to create a do block and r to create a re block etc." msgstr "" -#: js/toolbar.js:49 -#: js/toolbar.js:110 -#: js/toolbar.js:174 -#: js/toolbar.js:230 -#: js/turtledefs.js:498 -msgid "Record" +#: js/turtledefs.js:753 +msgid "Show these messages." msgstr "" -#: js/toolbar.js:50 -#: js/toolbar.js:51 -msgid "Full screen" +#: js/turtledefs.js:759 +#: js/turtledefs.js:790 +#: js/widgets/help.js:335 +msgid "Guide" msgstr "" -#: js/toolbar.js:52 -#: js/toolbar.js:112 -#: js/toolbar.js:177 -#: js/toolbar.js:232 -#: js/turtledefs.js:504 -msgid "Toggle Fullscreen" +#: js/turtledefs.js:760 +msgid "A detailed guide to Turtle Blocks is available." msgstr "" -#: js/toolbar.js:53 -#: js/toolbar.js:113 -#: js/toolbar.js:178 -#: js/toolbar.js:233 -#: js/turtledefs.js:510 -#: js/StringHelper.js:33 -msgid "New project" +#: js/turtledefs.js:764 +msgid "Turtle Blocks Guide" msgstr "" -#: js/toolbar.js:54 -#: js/toolbar.js:114 -#: js/toolbar.js:179 -#: js/toolbar.js:234 -#: js/turtledefs.js:516 -msgid "Load project from file" +#: js/turtledefs.js:767 +#: js/turtledefs.js:798 +#: js/widgets/help.js:336 +msgid "About" msgstr "" -#: js/toolbar.js:55 -#: js/toolbar.js:115 -#: js/toolbar.js:116 -#: js/toolbar.js:180 -#: js/toolbar.js:235 -#: js/turtledefs.js:541 -#: js/turtledefs.js:550 -#: js/turtledefs.js:571 -msgid "Save project" +#: js/turtledefs.js:768 +msgid "Turtle Blocks is an open source collection of tools for exploring musical concepts." msgstr "" -#: js/toolbar.js:56 -#: js/toolbar.js:75 -#: js/toolbar.js:77 -#: js/toolbar.js:135 -#: js/toolbar.js:144 -#: js/toolbar.js:146 -#: js/toolbar.js:181 -#: js/toolbar.js:199 -#: js/toolbar.js:201 -#: js/toolbar.js:236 -#: js/toolbar.js:254 -#: js/toolbar.js:256 -msgid "Save project as HTML" +#: js/turtledefs.js:770 +msgid "A full list of contributors can be found in the Turtle Blocks GitHub repository." +msgstr "" + +#: js/turtledefs.js:772 +msgid "Turtle Blocks is licensed under the AGPL." +msgstr "" + +#: js/turtledefs.js:780 +msgid "Turtle Blocks GitHub repository" +msgstr "" + +#: js/turtledefs.js:783 +#: js/turtledefs.js:814 +#: js/widgets/help.js:337 +#: js/widgets/help.js:359 +msgid "Congratulations." +msgstr "" + +#: js/turtledefs.js:784 +msgid "You have finished the tour. Please enjoy Turtle Blocks!" +msgstr "" + +#: js/turtledefs.js:791 +msgid "A detailed guide to Music Blocks is available." +msgstr "" + +#: js/turtledefs.js:799 +msgid "Music Blocks is an open source collection of tools for exploring musical concepts." +msgstr "" + +#: js/turtledefs.js:801 +msgid "A full list of contributors can be found in the Music Blocks GitHub repository." +msgstr "" + +#: js/turtledefs.js:803 +msgid "Music Blocks is licensed under the AGPL." +msgstr "" + +#: js/turtledefs.js:811 +msgid "Music Blocks GitHub repository" +msgstr "" + +#: js/turtledefs.js:815 +msgid "You have finished the tour. Please enjoy Music Blocks!" +msgstr "" + +#: js/turtles.js:882 +msgid "Grid" +msgstr "" + +#: js/turtles.js:1024 +msgid "Expand" +msgstr "" + +#: js/block-verbose.js:1616 +#: js/block-verbose.js:1735 +#: js/block.js:1580 +#: js/block.js:1699 +#: js/palette.js:605 +#: js/blocks/IntervalsBlocks.js:63 +#: js/blocks/WidgetBlocks.js:259 +msgid "temperament" +msgstr "" + +#: js/block-verbose.js:1630 +#: js/block.js:1594 +msgid "matrix" msgstr "" -#: js/toolbar.js:57 -#: js/toolbar.js:117 -#: js/toolbar.js:182 -#: js/toolbar.js:237 -msgid "Find and share projects" +#: js/block-verbose.js:1637 +#: js/block.js:1601 +#: js/blocks/WidgetBlocks.js:1509 +#: plugins/rodi.rtp:324 +msgid "status" msgstr "" -#: js/toolbar.js:58 -#: js/toolbar.js:118 -#: js/toolbar.js:183 -#: js/toolbar.js:238 -msgid "Offline. Sharing is unavailable" +#: js/block-verbose.js:1644 +#: js/block.js:1608 +msgid "drum mapper" msgstr "" -#: js/toolbar.js:59 -#: js/toolbar.js:119 -#: js/toolbar.js:184 -#: js/toolbar.js:239 -msgid "Auxiliary menu" +#: js/block-verbose.js:1651 +#: js/block.js:1615 +msgid "ruler" msgstr "" -#: js/toolbar.js:61 -#: js/toolbar.js:121 -#: js/toolbar.js:186 -#: js/toolbar.js:241 -msgid "Run slowly" +#: js/block-verbose.js:1658 +#: js/block.js:1622 +#: js/blocks/WidgetBlocks.js:397 +#.TRANS: timbre is the character or quality of a musical sound +msgid "timbre" msgstr "" -#: js/toolbar.js:62 -#: js/toolbar.js:122 -#: js/toolbar.js:187 -#: js/toolbar.js:242 -#: js/turtledefs.js:682 -msgid "Run step by step" +#: js/block-verbose.js:1665 +#: js/block.js:1629 +msgid "stair" msgstr "" -#: js/toolbar.js:63 -#: js/toolbar.js:123 -#: js/toolbar.js:188 -#: js/toolbar.js:243 -#: js/turtledefs.js:689 -msgid "Display statistics" +#: js/block-verbose.js:1672 +#: js/block.js:1636 +#: js/blocks/WidgetBlocks.js:707 +#.TRANS: the speed at music is should be played. +msgid "tempo" msgstr "" -#: js/toolbar.js:64 -#: js/toolbar.js:124 -#: js/toolbar.js:189 -#: js/toolbar.js:244 -msgid "Load plugin" +#: js/block-verbose.js:1679 +#: js/block-verbose.js:1742 +#: js/block.js:1643 +#: js/block.js:1706 +#: js/blocks/IntervalsBlocks.js:1464 +#.TRANS: mode, e.g., Major in C Major +msgid "mode" msgstr "" -#: js/toolbar.js:65 -#: js/toolbar.js:125 -#: js/toolbar.js:190 -#: js/toolbar.js:245 -#: js/turtledefs.js:696 -msgid "Delete plugin" +#: js/block-verbose.js:1686 +#: js/block.js:1650 +msgid "slider" msgstr "" -#: js/toolbar.js:66 -#: js/toolbar.js:126 -#: js/toolbar.js:191 -#: js/toolbar.js:246 -msgid "Enable horizontal scrolling" +#: js/block-verbose.js:1693 +#: js/block.js:1657 +#: js/blocks/SensorsBlocks.js:1001 +msgid "keyboard" msgstr "" -#: js/toolbar.js:67 -#: js/toolbar.js:127 -#: js/toolbar.js:192 -#: js/toolbar.js:247 -msgid "Disable horizontal scrolling" +#: js/block-verbose.js:1707 +#: js/block.js:1671 +#: js/blocks/WidgetBlocks.js:1190 +#: js/blocks/WidgetBlocks.js:1228 +#.TRANS: widget for subdividing a measure into distinct rhythmic elements +msgid "rhythm maker" msgstr "" -#: js/toolbar.js:68 -#: js/toolbar.js:128 -#: js/toolbar.js:193 -#: js/toolbar.js:248 -#: js/LocalCard.js:54 -#: js/StringHelper.js:71 -msgid "Merge with current project" +#: js/block-verbose.js:1714 +#: js/block-verbose.js:2457 +#: js/block-verbose.js:2514 +#: js/block.js:1678 +#: js/block.js:2385 +#: js/block.js:2442 +#: js/blocks/MeterBlocks.js:1367 +#: js/blocks/OrnamentBlocks.js:220 +#: js/blocks/OrnamentBlocks.js:312 +#: js/blocks/RhythmBlocks.js:33 +#: js/blocks/RhythmBlocks.js:356 +#: js/blocks/RhythmBlocks.js:766 +#: js/blocks/RhythmBlocks.js:806 +#: js/blocks/RhythmBlockPaletteBlocks.js:70 +#: js/blocks/RhythmBlockPaletteBlocks.js:252 +#: js/blocks/RhythmBlockPaletteBlocks.js:485 +#: js/blocks/RhythmBlockPaletteBlocks.js:554 +#: js/blocks/RhythmBlockPaletteBlocks.js:605 +#: js/blocks/RhythmBlockPaletteBlocks.js:875 +#: js/turtleactions/DictActions.js:85 +#: js/widgets/phrasemaker.js:942 +#: js/widgets/phrasemaker.js:2656 +#: js/widgets/phrasemaker.js:2699 +#: js/widgets/phrasemaker.js:2810 +#.TRANS: the value (e.g., 1/4 note) of the note being played. +msgid "note value" msgstr "" -#: js/toolbar.js:69 -#: js/toolbar.js:129 -msgid "Set Pitch Preview" +#: js/block-verbose.js:1721 +#: js/block-verbose.js:2382 +#: js/block-verbose.js:2405 +#: js/block.js:1685 +#: js/block.js:2310 +#: js/block.js:2333 +#: js/blocks/IntervalsBlocks.js:1071 +#: js/blocks/OrnamentBlocks.js:312 +#.TRANS: calculate a relative step between notes based on semi-tones +msgid "scalar interval" msgstr "" -#: js/toolbar.js:70 -#: js/toolbar.js:130 -#: js/toolbar.js:194 -#: js/toolbar.js:249 -msgid "Toggle JavaScript Editor" +#: js/block-verbose.js:1728 +#: js/block.js:1692 +#: js/blocks/RhythmBlocks.js:148 +msgid "milliseconds" msgstr "" -#: js/toolbar.js:71 -#: js/toolbar.js:131 -#: js/toolbar.js:195 -#: js/toolbar.js:250 -#: js/turtledefs.js:724 -msgid "Restore" +#: js/block-verbose.js:2455 +#: js/block-verbose.js:2459 +#: js/block-verbose.js:2512 +#: js/block-verbose.js:2628 +#: js/block.js:2383 +#: js/block.js:2387 +#: js/block.js:2440 +#: js/block.js:2556 +#: js/blocks/RhythmBlocks.js:712 +#: js/blocks/ProgramBlocks.js:1273 +#: js/widgets/rhythmruler.js:1183 +#: js/widgets/rhythmruler.js:1329 +msgid "silence" msgstr "" -#: js/toolbar.js:72 -#: js/toolbar.js:132 -#: js/toolbar.js:196 -#: js/toolbar.js:251 -msgid "Switch to beginner mode" +#: js/block-verbose.js:2548 +#: js/block-verbose.js:3492 +#: js/block-verbose.js:3509 +#: js/activity.js:2718 +#: js/activity.js:2769 +#: js/block.js:2476 +#: js/block.js:3416 +#: js/block.js:3433 +#: js/utils/musicutils.js:3780 +#: js/utils/musicutils.js:5273 +#.TRANS: the note names must be separated by single spaces +#.TRANS: the note names must be separated by single spaces +#.TRANS: the note names must be separated by single spaces +msgid "ti la sol fa mi re do" msgstr "" -#: js/toolbar.js:73 -#: js/toolbar.js:133 -#: js/toolbar.js:197 -#: js/toolbar.js:252 -msgid "Switch to advanced mode" +#: js/block-verbose.js:2616 +#: js/block.js:2544 +#.TRANS: scalar step +#.TRANS: scalar step +msgid "down" msgstr "" -#: js/toolbar.js:74 -#: js/toolbar.js:134 -#: js/toolbar.js:143 -#: js/toolbar.js:198 -#: js/toolbar.js:253 -#: js/turtledefs.js:738 -msgid "Select language" +#: js/block-verbose.js:2617 +#: js/block.js:2545 +msgid "up" msgstr "" -#: js/toolbar.js:76 -#: js/toolbar.js:79 -#: js/toolbar.js:137 -#: js/turtledefs.js:579 -msgid "Save mouse artwork as PNG" +#: js/block-verbose.js:3026 +#: js/block.js:2950 +msgid "Silence block cannot be removed." msgstr "" -#: js/toolbar.js:78 -#: js/toolbar.js:136 -#: js/turtledefs.js:575 -msgid "Save mouse artwork as SVG" +#: js/block-verbose.js:3824 +#: js/block.js:3748 +#: js/blocks.js:2607 +#: js/blocks.js:3218 +#: js/palette.js:618 +#: js/blocks/BooleanBlocks.js:77 +#: js/blocks/BooleanBlocks.js:167 +#: js/blocks/BooleanBlocks.js:251 +#: js/blocks/BooleanBlocks.js:335 +#: js/blocks/BooleanBlocks.js:433 +#: js/blocks/BooleanBlocks.js:539 +#: js/blocks/BooleanBlocks.js:640 +#: js/blocks/BooleanBlocks.js:741 +#: js/blocks/BooleanBlocks.js:847 +#: js/blocks/BooleanBlocks.js:948 +#: js/blocks/BooleanBlocks.js:1033 +#: js/blocks/SensorsBlocks.js:910 +msgid "true" msgstr "" -#: js/toolbar.js:80 -#: js/toolbar.js:138 -#: js/turtledefs.js:583 -msgid "Save music as WAV" +#: js/block-verbose.js:3824 +#: js/block.js:3748 +#: js/blocks.js:2609 +#: js/blocks.js:3220 +#: js/blocks/BooleanBlocks.js:79 +#: js/blocks/BooleanBlocks.js:169 +#: js/blocks/BooleanBlocks.js:253 +#: js/blocks/BooleanBlocks.js:337 +#: js/blocks/BooleanBlocks.js:435 +#: js/blocks/BooleanBlocks.js:541 +#: js/blocks/BooleanBlocks.js:642 +#: js/blocks/BooleanBlocks.js:743 +#: js/blocks/BooleanBlocks.js:849 +#: js/blocks/BooleanBlocks.js:950 +#: js/blocks/SensorsBlocks.js:912 +msgid "false" msgstr "" -#: js/toolbar.js:81 -#: js/toolbar.js:139 -#: js/turtledefs.js:587 -msgid "Save sheet music as ABC" +#: js/block-verbose.js:3835 +#: js/block-verbose.js:3848 +#: js/block.js:3759 +#: js/block.js:3772 +#: js/blocks/ExtrasBlocks.js:615 +msgid "Cartesian" msgstr "" -#: js/toolbar.js:82 -#: js/toolbar.js:140 -#: js/turtledefs.js:591 -msgid "Save sheet music as Lilypond" +#: js/block-verbose.js:3836 +#: js/block-verbose.js:3849 +#: js/block.js:3760 +#: js/block.js:3773 +#: js/blocks/ExtrasBlocks.js:619 +msgid "polar" msgstr "" -#: js/toolbar.js:83 -msgid "Save sheet music as MusicXML" +#: js/block-verbose.js:3837 +#: js/block-verbose.js:3850 +#: js/block.js:3761 +#: js/block.js:3774 +#: js/blocks/ExtrasBlocks.js:623 +msgid "Cartesian+polar" msgstr "" -#: js/toolbar.js:84 -#: js/toolbar.js:141 -#: js/toolbar.js:149 -#: js/toolbar.js:204 -#: js/toolbar.js:259 -#: js/turtledefs.js:562 -#: js/turtledefs.js:595 -msgid "Save block artwork as SVG" +#: js/block-verbose.js:3838 +#: js/block-verbose.js:3857 +#: js/block.js:3762 +#: js/block.js:3781 +#: js/blocks/ExtrasBlocks.js:652 +msgid "none" msgstr "" -#: js/toolbar.js:85 -#: js/toolbar.js:142 -#: js/toolbar.js:150 -#: js/toolbar.js:205 -#: js/toolbar.js:260 -msgid "Confirm" +#: js/block-verbose.js:3851 +#: js/block.js:3775 +#: js/blocks/ExtrasBlocks.js:628 +msgid "treble" msgstr "" -#: js/toolbar.js:86 -#: js/toolbar.js:151 -#: js/toolbar.js:206 -#: js/toolbar.js:261 -msgid "English (United States)" +#: js/block-verbose.js:3852 +#: js/block.js:3776 +#: js/blocks/ExtrasBlocks.js:632 +msgid "grand staff" msgstr "" -#: js/toolbar.js:87 -#: js/toolbar.js:152 -#: js/toolbar.js:207 -#: js/toolbar.js:262 -msgid "English (United Kingdom)" +#: js/block-verbose.js:3853 +#: js/block.js:3777 +#: js/blocks/ExtrasBlocks.js:636 +msgid "mezzo-soprano" msgstr "" -#: js/toolbar.js:88 -#: js/toolbar.js:153 -#: js/toolbar.js:208 -#: js/toolbar.js:263 -msgid "日本語" +#: js/block-verbose.js:3854 +#: js/block.js:3778 +#: js/blocks/ExtrasBlocks.js:640 +msgid "alto" msgstr "" -#: js/toolbar.js:89 -msgid "한국어" +#: js/block-verbose.js:3855 +#: js/block.js:3779 +#: js/blocks/ExtrasBlocks.js:644 +msgid "tenor" msgstr "" -#: js/toolbar.js:90 -#: js/toolbar.js:155 -#: js/toolbar.js:210 -#: js/toolbar.js:265 -msgid "español" +#: js/block-verbose.js:3856 +#: js/block.js:3780 +#: js/utils/musicutils.js:1115 +#: js/utils/synthutils.js:80 +#: js/blocks/ExtrasBlocks.js:648 +#.TRANS: musical instrument +msgid "bass" msgstr "" -#: js/toolbar.js:91 -#: js/toolbar.js:156 -#: js/toolbar.js:211 -#: js/toolbar.js:266 -msgid "português" +#: js/block-verbose.js:3901 +#: js/block.js:3825 +#: js/blocks.js:2600 +#: js/blocks.js:3211 +msgid "on2" msgstr "" -#: js/toolbar.js:92 -#: js/toolbar.js:157 -#: js/toolbar.js:212 -#: js/toolbar.js:267 -msgid "にほんご" +#: js/block-verbose.js:3903 +#: js/block.js:3827 +#: js/blocks.js:2602 +#: js/blocks.js:3213 +msgid "off" msgstr "" -#: js/toolbar.js:93 -#: js/toolbar.js:158 -#: js/toolbar.js:213 -#: js/toolbar.js:268 -msgid "中文" +#: js/block-verbose.js:4470 +#: js/block.js:4394 +msgid "Not a number" msgstr "" -#: js/toolbar.js:94 -#: js/toolbar.js:159 -#: js/toolbar.js:214 -#: js/toolbar.js:269 -msgid "ภาษาไทย" +#: js/block-verbose.js:4477 +#: js/block.js:4401 +msgid "Octave value must be between 1 and 10." msgstr "" -#: js/toolbar.js:95 -#: js/toolbar.js:160 -#: js/toolbar.js:215 -#: js/toolbar.js:270 -msgid "aymara" +#: js/block-verbose.js:4485 +#: js/block.js:4409 +msgid "Numbers can have at most 10 digits." msgstr "" -#: js/toolbar.js:96 -#: js/toolbar.js:161 -#: js/toolbar.js:216 -#: js/toolbar.js:271 -msgid "quechua" +#: js/activity.js:390 +#: js/activity.js:395 +msgid "Search for blocks" msgstr "" -#: js/toolbar.js:97 -#: js/toolbar.js:162 -#: js/toolbar.js:217 -#: js/toolbar.js:272 -msgid "guarani" +#: js/activity.js:1413 +msgid "Refresh your browser to change to advanced mode." msgstr "" -#: js/toolbar.js:98 -#: js/toolbar.js:163 -#: js/toolbar.js:218 -#: js/toolbar.js:273 -msgid "हिंदी" +#: js/activity.js:1418 +msgid "Refresh your browser to change to beginner mode." msgstr "" -#: js/toolbar.js:99 -#: js/toolbar.js:165 -#: js/toolbar.js:219 -#: js/toolbar.js:275 -msgid "igbo" +#: js/activity.js:1477 +msgid "Catching mice" +msgstr "" + +#: js/activity.js:1478 +msgid "Cleaning the instruments" +msgstr "" + +#: js/activity.js:1479 +msgid "Testing key pieces" +msgstr "" + +#: js/activity.js:1480 +msgid "Sight-reading" +msgstr "" + +#: js/activity.js:1481 +msgid "Combining math and music" msgstr "" -#: js/toolbar.js:100 -#: js/toolbar.js:166 -#: js/toolbar.js:220 -#: js/toolbar.js:276 -msgid "عربى" +#: js/activity.js:1482 +msgid "Generating more blocks" msgstr "" -#: js/toolbar.js:101 -#: js/toolbar.js:164 -#: js/toolbar.js:221 -#: js/toolbar.js:274 -msgid "తెలుగు" +#: js/activity.js:1483 +msgid "Do Re Mi Fa Sol La Ti Do" msgstr "" -#: js/toolbar.js:102 -#: js/toolbar.js:167 -#: js/toolbar.js:222 -#: js/toolbar.js:277 -msgid "עִברִית" +#: js/activity.js:1484 +msgid "Tuning string instruments" msgstr "" -#: js/toolbar.js:111 -#: js/toolbar.js:175 -#: js/toolbar.js:176 -#: js/toolbar.js:231 -msgid "Full Screen" +#: js/activity.js:1485 +msgid "Pressing random keys" msgstr "" -#: js/toolbar.js:145 -#: js/toolbar.js:148 -#: js/toolbar.js:200 -#: js/toolbar.js:203 -#: js/toolbar.js:255 -#: js/toolbar.js:258 -#: js/turtledefs.js:558 -msgid "Save turtle artwork as PNG" +#: js/activity.js:1663 +msgid "plugins will be removed upon restart." msgstr "" -#: js/toolbar.js:147 -#: js/toolbar.js:202 -#: js/toolbar.js:257 -#: js/turtledefs.js:554 -msgid "Save turtle artwork as SVG" +#: js/activity.js:1672 +msgid "show Cartesian" msgstr "" -#: js/toolbar.js:154 -#: js/toolbar.js:209 -#: js/toolbar.js:264 -msgid "한국인" +#: js/activity.js:2211 +#: js/palette.js:589 +#: js/blocks/RhythmBlocks.js:923 +#: js/blocks/PitchBlocks.js:442 +#: js/blocks/PitchBlocks.js:1786 +#.TRANS: a numeric mapping of the notes in an octave based on the musical mode +msgid "scale degree" msgstr "" -#: js/toolbar.js:171 -#: js/toolbar.js:227 -msgid "About Turtle Blocks" +#: js/activity.js:2214 +#: js/palette.js:598 +msgid "voice name" msgstr "" -#: js/toolbar.js:429 -#: js/toolbar.js:440 -msgid "Turtle Wrap Off" +#: js/activity.js:2217 +#: js/palette.js:595 +msgid "invert mode" msgstr "" -#: js/toolbar.js:442 -msgid "Turtle Wrap On" +#: js/activity.js:2220 +msgid "output tools" msgstr "" -#: js/block.js:1470 -msgid "matrix" +#: js/activity.js:2223 +msgid "custom note" msgstr "" -#: js/block.js:1477 -#: js/WidgetBlocks.js:1226 -#: plugins/rodi.rtp:324 -msgid "status" +#: js/activity.js:2226 +msgid "accidental name" msgstr "" -#: js/block.js:1484 -msgid "drum mapper" +#: js/activity.js:2229 +#: js/blocks/PitchBlocks.js:855 +msgid "east indian solfege" msgstr "" -#: js/block.js:1491 -msgid "ruler" +#: js/activity.js:2232 +#: js/blocks/PitchBlocks.js:869 +msgid "note name" msgstr "" -#: js/block.js:1498 -#: js/WidgetBlocks.js:327 -#.TRANS: timbre is the character or quality of a musical sound -msgid "timbre" +#: js/activity.js:2235 +#: js/blocks/IntervalsBlocks.js:94 +msgid "temperament name" msgstr "" -#: js/block.js:1505 -msgid "stair" +#: js/activity.js:2238 +#: js/palette.js:592 +msgid "mode name" msgstr "" -#: js/block.js:1512 -#: js/WidgetBlocks.js:577 -#.TRANS: the speed at music is should be played. -msgid "tempo" +#: js/activity.js:2241 +msgid "chord name" msgstr "" -#: js/block.js:1519 -#: js/block.js:1582 -#: js/IntervalsBlocks.js:1268 -#.TRANS: mode, e.g., Major in C Major -msgid "mode" +#: js/activity.js:2244 +#: js/palette.js:615 +msgid "interval name" msgstr "" -#: js/block.js:1526 -msgid "slider" +#: js/activity.js:2247 +msgid "filter type" msgstr "" -#: js/block.js:1533 -#: js/SensorsBlocks.js:1001 -msgid "keyboard" +#: js/activity.js:2250 +msgid "oscillator type" msgstr "" -#: js/block.js:1547 -#: js/WidgetBlocks.js:957 -#: js/WidgetBlocks.js:988 -#.TRANS: widget for subdividing a measure into distinct rhythmic elements -msgid "rhythm maker" +#: js/activity.js:2253 +#: js/blocks.js:2479 +#: js/blocks.js:2487 +msgid "audio file" msgstr "" -#: js/block.js:1554 -#: js/block.js:2182 -#: js/block.js:2236 -#: js/RhythmBlockPaletteBlocks.js:70 -#: js/RhythmBlockPaletteBlocks.js:251 -#: js/RhythmBlockPaletteBlocks.js:484 -#: js/RhythmBlockPaletteBlocks.js:553 -#: js/RhythmBlockPaletteBlocks.js:604 -#: js/RhythmBlockPaletteBlocks.js:874 -#: js/RhythmBlocks.js:33 -#: js/RhythmBlocks.js:356 -#: js/RhythmBlocks.js:766 -#: js/RhythmBlocks.js:806 -#: js/OrnamentBlocks.js:220 -#: js/OrnamentBlocks.js:312 -#: js/MeterBlocks.js:1367 -#: js/DictActions.js:85 -#: js/phrasemaker.js:731 -#: js/phrasemaker.js:2393 -#: js/phrasemaker.js:2436 -#: js/phrasemaker.js:2534 -#.TRANS: the value (e.g., 1/4 note) of the note being played. -msgid "note value" +#: js/activity.js:2256 +#: js/blocks/DrumBlocks.js:32 +msgid "noise name" msgstr "" -#: js/block.js:1561 -#: js/block.js:2110 -#: js/block.js:2133 -#: js/IntervalsBlocks.js:875 -#: js/OrnamentBlocks.js:312 -#.TRANS: calculate a relative step between notes based on semi-tones -msgid "scalar interval" +#: js/activity.js:2259 +#: js/blocks/DrumBlocks.js:75 +msgid "drum name" msgstr "" -#: js/block.js:1568 -#: js/RhythmBlocks.js:148 -msgid "milliseconds" +#: js/activity.js:2262 +#: js/blocks/DrumBlocks.js:119 +msgid "effects name" msgstr "" -#: js/block.js:2180 -#: js/block.js:2184 -#: js/block.js:2234 -#: js/block.js:2345 -#: js/ProgramBlocks.js:1273 -#: js/RhythmBlocks.js:712 -#: js/rhythmruler.js:834 -#: js/rhythmruler.js:961 -msgid "silence" +#: js/activity.js:2265 +msgid "wrap mode" msgstr "" -#: js/block.js:2265 -#: js/block.js:3134 -#: js/block.js:3151 -#: js/activity.js:2336 -#: js/activity.js:2387 -#: js/musicutils.js:2932 -#: js/musicutils.js:4287 -#.TRANS: the note names must be separated by single spaces -#.TRANS: the note names must be separated by single spaces -msgid "ti la sol fa mi re do" +#: js/activity.js:2268 +msgid "load file" msgstr "" -#: js/block.js:2333 -#.TRANS: scalar step -msgid "down" +#: js/activity.js:2435 +#: js/activity.js:5851 +msgid "This block is deprecated." msgstr "" -#: js/block.js:2334 -msgid "up" +#: js/activity.js:2437 +#: js/activity.js:5853 +msgid "Block cannot be found." msgstr "" -#: js/block.js:3477 -#: js/block.js:3490 -#: js/ExtrasBlocks.js:612 -msgid "Cartesian" +#: js/activity.js:2645 +msgid "Saving block artwork" msgstr "" -#: js/block.js:3478 -#: js/block.js:3491 -#: js/ExtrasBlocks.js:616 -msgid "polar" +#: js/activity.js:2656 +msgid "Erase" msgstr "" -#: js/block.js:3479 -#: js/block.js:3492 -#: js/ExtrasBlocks.js:620 -msgid "Cartesian+polar" +#: js/activity.js:2683 +#: js/activity.js:2705 +msgid "Paste" msgstr "" -#: js/block.js:3480 -#: js/block.js:3499 -#: js/ExtrasBlocks.js:649 -msgid "none" +#: js/activity.js:2687 +msgid "Save block help" msgstr "" -#: js/block.js:3493 -#: js/ExtrasBlocks.js:625 -msgid "treble" +#: js/activity.js:2772 +msgid "Jumping to the bottom of the page." msgstr "" -#: js/block.js:3494 -#: js/ExtrasBlocks.js:629 -msgid "grand staff" +#: js/activity.js:2778 +msgid "Scrolling up." msgstr "" -#: js/block.js:3495 -#: js/ExtrasBlocks.js:633 -msgid "mezzo-soprano" +#: js/activity.js:2783 +msgid "Scrolling down." msgstr "" -#: js/block.js:3496 -#: js/ExtrasBlocks.js:637 -msgid "alto" +#: js/activity.js:2788 +msgid "Extracting block" msgstr "" -#: js/block.js:3497 -#: js/ExtrasBlocks.js:641 -msgid "tenor" +#: js/activity.js:2796 +msgid "Moving block up." msgstr "" -#: js/block.js:3498 -#: js/ExtrasBlocks.js:645 -#: js/musicutils.js:736 -#: js/synthutils.js:64 -#.TRANS: musical instrument -msgid "bass" +#: js/activity.js:2817 +msgid "Moving block down." msgstr "" -#: js/block.js:4075 -msgid "Not a number" +#: js/activity.js:2838 +msgid "Moving block left." msgstr "" -#: js/block.js:4082 -msgid "Octave value must be between 1 and 10." +#: js/activity.js:2855 +msgid "Moving block right." msgstr "" -#: js/block.js:4090 -msgid "Numbers can have at most 10 digits." +#: js/activity.js:2870 +msgid "Jump to home position." msgstr "" -#: js/notation.js:353 -msgid "Lilypond cannot process pickup of " +#: js/activity.js:2897 +msgid "Hide blocks" msgstr "" -#: js/turtledefs.js:40 -#.TRANS: put the URL to the guide here, e.g., https://github.com/sugarlabs/turtleblocksjs/tree/master/guide/README.md -msgid "guide url" +#: js/activity.js:4500 +msgid "Click the run button to run the project." msgstr "" -#: js/turtledefs.js:85 -#: js/turtledefs.js:437 -msgid "Turtle Blocks is a Logo-inspired turtle that draws colorful pictures with snap-together visual-programming blocks." +#: js/activity.js:5692 +msgid "Show/hide block" msgstr "" -#: js/turtledefs.js:118 -#: js/turtledefs.js:220 -msgid "search" +#: js/activity.js:5698 +msgid "Expand/collapse blocks" msgstr "" -#: js/turtledefs.js:120 -#: js/turtledefs.js:222 -#: js/WidgetBlocks.js:437 -#: js/MeterBlocks.js:1343 -#.TRANS: musical meter (time signature), e.g., 4:4 -msgid "meter" +#: js/activity.js:5976 +msgid "Could not parse JSON input." msgstr "" -#: js/turtledefs.js:122 -#: js/turtledefs.js:224 -msgid "intervals" +#: js/activity.js:6475 +#: js/activity.js:6580 +#: js/activity.js:6631 +msgid "Cannot load project from the file. Please check the file type." msgstr "" -#: js/turtledefs.js:124 -#: js/turtledefs.js:226 -msgid "ornament" +#: js/activity.js:6917 +msgid "Invalid parameters" msgstr "" -#: js/turtledefs.js:125 -#: js/turtledefs.js:227 -#: js/VolumeBlocks.js:362 -#: js/VolumeBlocks.js:502 -#: js/VolumeBlocks.js:545 -msgid "volume" +#: js/blocks.js:1212 +#: js/blocks.js:3444 +#: js/blocks.js:3834 +#: js/blocks.js:3865 +#: js/blocks.js:3914 +#: js/blocks.js:3949 +#: js/blocks.js:6586 +#: js/palette.js:509 +#: js/palette.js:638 +#: js/palette.js:1105 +#: js/blocks/BoxesBlocks.js:282 +#: js/blocks/BoxesBlocks.js:285 +#: js/blocks/BoxesBlocks.js:405 +#: js/blocks/BoxesBlocks.js:594 +msgid "box" msgstr "" -#: js/turtledefs.js:129 -#: js/turtledefs.js:231 -msgid "boxes" +#: js/blocks.js:1713 +msgid "Consider breaking this stack into parts." msgstr "" -#: js/turtledefs.js:130 -#: js/turtledefs.js:232 -msgid "widgets" +#: js/blocks.js:2472 +#: js/palette.js:653 +#: js/blocks/MediaBlocks.js:602 +msgid "open file" msgstr "" -#: js/turtledefs.js:131 -#: js/turtledefs.js:233 -#: js/phrasemaker.js:824 -msgid "graphics" +#: js/blocks.js:3247 +#: js/palette.js:574 +#: js/blocks/MediaBlocks.js:892 +#: js/blocks/MediaBlocks.js:963 +msgid "text" msgstr "" -#: js/turtledefs.js:134 -#: js/turtledefs.js:236 -msgid "boolean" +#: js/blocks.js:3443 +#: js/palette.js:641 +#: js/palette.js:642 +#: js/blocks/BoxesBlocks.js:514 +msgid "store in box" msgstr "" -#: js/turtledefs.js:137 -#: js/turtledefs.js:239 -#: js/HeapBlocks.js:59 -#: js/status.js:147 -msgid "heap" +#: js/blocks.js:3448 +#: js/blocks.js:3888 +#: js/blocks.js:3923 +#: js/blocks.js:3958 +#: js/blocks.js:5862 +#: js/blocks.js:5883 +#: js/blocks/BoxesBlocks.js:772 +msgid "box1" msgstr "" -#: js/turtledefs.js:138 -#: js/turtledefs.js:240 -#: js/ProgramBlocks.js:495 -#: js/DictBlocks.js:142 -msgid "dictionary" +#: js/blocks.js:3450 +#: js/blocks.js:3890 +#: js/blocks.js:3925 +#: js/blocks.js:3960 +#: js/blocks.js:5864 +#: js/blocks.js:5885 +#: js/blocks/BoxesBlocks.js:663 +msgid "box2" msgstr "" -#: js/turtledefs.js:139 -#: js/turtledefs.js:241 -msgid "ensemble" +#: js/blocks.js:4122 +#: js/palette.js:639 +#: js/palette.js:644 +#: js/palette.js:1041 +#: js/blocks/BoxesBlocks.js:591 +msgid "store in" msgstr "" -#: js/turtledefs.js:140 -#: js/turtledefs.js:242 -msgid "extras" +#: js/blocks.js:4122 +#: js/blocks/BoxesBlocks.js:595 +#: js/blocks/DictBlocks.js:215 +#: js/blocks/DictBlocks.js:289 +#: js/blocks/EnsembleBlocks.js:391 +#: js/blocks/EnsembleBlocks.js:402 +#: js/blocks/MediaBlocks.js:746 +#: js/blocks/PitchBlocks.js:656 +#: js/blocks/PitchBlocks.js:934 +#: js/blocks/PitchBlocks.js:1866 +#: js/blocks/ProgramBlocks.js:390 +#: js/blocks/ProgramBlocks.js:495 +#: js/blocks/ProgramBlocks.js:658 +#: js/blocks/ToneBlocks.js:1025 +msgid "name" msgstr "" -#: js/turtledefs.js:142 -#: js/turtledefs.js:244 -#.TRANS: program as in computer program -#.TRANS: program as in computer program -msgid "program" +#: js/blocks.js:4122 +#: js/blocks/BoxesBlocks.js:75 +#: js/blocks/BoxesBlocks.js:595 +#: js/blocks/DictBlocks.js:289 +#: js/blocks/DictBlocks.js:430 +#: js/blocks/HeapBlocks.js:544 +#: js/blocks/RhythmBlocks.js:1130 +msgid "value" msgstr "" -#: js/turtledefs.js:143 -#: js/turtledefs.js:245 -msgid "my blocks" +#: js/blocks.js:4465 +msgid "Forever loop detected inside a note value block. Unexpected things may happen." msgstr "" -#: js/turtledefs.js:185 -#: js/turtledefs.js:281 -msgid "artwork" +#: js/blocks.js:4988 +msgid "There is no block selected." msgstr "" -#: js/turtledefs.js:185 -#: js/turtledefs.js:281 -msgid "logic" +#: js/blocks.js:5091 +#: js/blocks/MediaBlocks.js:888 +msgid "show" msgstr "" -#: js/turtledefs.js:185 -#: js/turtledefs.js:281 -msgid "music" +#: js/blocks.js:5094 +#: js/blocks/MediaBlocks.js:803 +#.TRANS: Avatar is the image used to determine the appearance of the mouse. +msgid "avatar" msgstr "" -#: js/turtledefs.js:187 -#: js/turtledefs.js:463 -msgid "Music Blocks is a collection of tools for exploring fundamental musical concepts in a fun way." +#: js/blocks.js:5097 +#: js/blocks/ToneBlocks.js:1010 +#: js/widgets/sampler.js:975 +#.TRANS: The sound sample that the user uploads. +msgid "sample" msgstr "" -#: js/turtledefs.js:436 -msgid "Welcome to Turtle Blocks" +#: js/lilypond.js:606 +msgid "brown rat" msgstr "" -#: js/turtledefs.js:438 -#: js/turtledefs.js:465 -#: js/turtledefs.js:774 -#: js/turtledefs.js:805 -msgid "The current version is" +#: js/lilypond.js:607 +msgid "mole" msgstr "" -#: js/turtledefs.js:446 -#: js/turtledefs.js:483 -msgid "Click the run button to run the project in fast mode." +#: js/lilypond.js:608 +msgid "chipmunk" msgstr "" -#: js/turtledefs.js:452 -msgid "Stop the turtle." +#: js/lilypond.js:609 +msgid "red squirrel" msgstr "" -#: js/turtledefs.js:454 -#: js/turtledefs.js:491 -msgid "You can also type Alt-S to stop." +#: js/lilypond.js:610 +msgid "guinea pig" +msgstr "" + +#: js/lilypond.js:611 +msgid "capybara" msgstr "" -#: js/turtledefs.js:462 -#: js/help.js:333 -msgid "Welcome to Music Blocks" +#: js/lilypond.js:612 +msgid "coypu" msgstr "" -#: js/turtledefs.js:472 -#: js/help.js:334 -msgid "Meet Mr. Mouse!" +#: js/lilypond.js:613 +msgid "black rat" msgstr "" -#: js/turtledefs.js:473 -msgid "Mr Mouse is our Music Blocks conductor." +#: js/lilypond.js:614 +msgid "grey squirrel" msgstr "" -#: js/turtledefs.js:475 -msgid "Mr Mouse encourages you to explore Music Blocks." +#: js/lilypond.js:615 +msgid "flying squirrel" msgstr "" -#: js/turtledefs.js:477 -msgid "Let us start our tour!" +#: js/lilypond.js:616 +msgid "bat" msgstr "" -#: js/turtledefs.js:489 -msgid "Stop the music (and the mice)." +#: js/lilypond.js:749 +#: js/lilypond.js:913 +#: js/lilypond.js:951 +#: js/blocks/ActionBlocks.js:1256 +#: js/blocks/ExtrasBlocks.js:556 +msgid "start drum" msgstr "" -#: js/turtledefs.js:499 -msgid "Record your project as video." +#: js/logo.js:61 +msgid "Not a valid pitch name" msgstr "" -#: js/turtledefs.js:505 -msgid "Toggle Fullscreen mode." +#: js/logo.js:507 +#: js/blocks/ProgramBlocks.js:258 +#: js/blocks/ProgramBlocks.js:427 +msgid "You must select a file." msgstr "" -#: js/turtledefs.js:511 -msgid "Initialize a new project." +#: js/logo.js:1696 +msgid "Playback is ready." msgstr "" -#: js/turtledefs.js:517 -msgid "You can also load projects from the file system." +#: js/macros.js:711 +#: js/utils/musicutils.js:1162 +#: js/utils/synthutils.js:202 +#.TRANS: animal sound effect +msgid "duck" msgstr "" -#: js/turtledefs.js:522 -#: js/StringHelper.js:46 -msgid "Delete" +#: js/notation.js:353 +msgid "Lilypond cannot process pickup of " msgstr "" -#: js/turtledefs.js:523 -msgid "To delete a block, just right-click on it, then you will be able to see the delete option" +#: js/palette.js:571 +msgid "grid" msgstr "" -#: js/turtledefs.js:528 -#: js/activity.js:2270 -#: js/LocalCard.js:31 -msgid "Copy" +#: js/palette.js:580 +msgid "effect" msgstr "" -#: js/turtledefs.js:529 -msgid "To copy a block, just right-click on it, then you will be able to see the copy option" +#: js/palette.js:586 +msgid "sargam" msgstr "" -#: js/turtledefs.js:535 -msgid "To extract a block, just right-click on it, then you will be able to see the extract option" +#: js/palette.js:601 +#: js/blocks/PitchBlocks.js:1209 +msgid "custom pitch" msgstr "" -#: js/turtledefs.js:542 -#: js/turtledefs.js:552 -#: js/turtledefs.js:573 -msgid "Save your project to a file." +#: js/palette.js:609 +msgid "accidental" msgstr "" -#: js/turtledefs.js:549 -#: js/turtledefs.js:570 -msgid "save" +#: js/palette.js:633 +#: js/blocks/PitchBlocks.js:405 +msgid "pitch converter" msgstr "" -#: js/turtledefs.js:556 -#: js/turtledefs.js:577 -msgid "Save graphics from your project to as SVG." +#: js/piemenus.js:200 +#: js/utils/musicutils.js:1187 +#: js/utils/musicutils.js:1207 +#: js/widgets/musickeyboard.js:2341 +#: js/widgets/phrasemaker.js:1908 +#: js/widgets/sampler.js:810 +#.TRANS: double sharp is a music term related to pitch +msgid "double sharp" msgstr "" -#: js/turtledefs.js:560 -#: js/turtledefs.js:581 -msgid "Save graphics from your project as PNG." +#: js/piemenus.js:201 +#: js/utils/musicutils.js:1185 +#: js/utils/musicutils.js:1208 +#: js/blocks/PitchBlocks.js:1539 +#: js/turtleactions/PitchActions.js:323 +#: js/widgets/musickeyboard.js:2342 +#: js/widgets/phrasemaker.js:1909 +#: js/widgets/sampler.js:811 +#.TRANS: sharp is a music term related to pitch +#.TRANS: sharp is a half-step up in pitch +msgid "sharp" msgstr "" -#: js/turtledefs.js:564 -#: js/turtledefs.js:597 -msgid "Save block artwork as an SVG file." +#: js/piemenus.js:202 +#: js/utils/musicutils.js:1183 +#: js/utils/musicutils.js:1209 +#: js/widgets/musickeyboard.js:2343 +#: js/widgets/phrasemaker.js:1910 +#: js/widgets/sampler.js:812 +#.TRANS: natural is a music term related to pitch +msgid "natural" msgstr "" -#: js/turtledefs.js:585 -msgid "Save audio from your project as WAV." +#: js/piemenus.js:203 +#: js/utils/musicutils.js:1181 +#: js/utils/musicutils.js:1210 +#: js/blocks/PitchBlocks.js:1498 +#: js/turtleactions/PitchActions.js:326 +#: js/widgets/musickeyboard.js:2344 +#: js/widgets/phrasemaker.js:1911 +#: js/widgets/sampler.js:813 +#.TRANS: flat is a music term related to pitch +#.TRANS: flat is a half-step down in pitch +msgid "flat" msgstr "" -#: js/turtledefs.js:589 -msgid "Save your project to as an ABC file." +#: js/piemenus.js:204 +#: js/utils/musicutils.js:1179 +#: js/utils/musicutils.js:1211 +#: js/widgets/musickeyboard.js:2345 +#: js/widgets/phrasemaker.js:1912 +#: js/widgets/sampler.js:814 +#.TRANS: double flat is a music term related to pitch +msgid "double flat" msgstr "" -#: js/turtledefs.js:593 -msgid "Save your project to as a Lilypond file." +#: js/piemenus.js:2864 +#: js/utils/musicutils.js:1006 +#: js/blocks/PitchBlocks.js:1385 +#.TRANS: unison is a music term related to intervals +#.TRANS: unison means the note is the same as the current note +msgid "unison" msgstr "" -#: js/turtledefs.js:604 -msgid "Load samples from server" +#: js/piemenus.js:3018 +#: js/piemenus.js:3091 +#: js/utils/musicutils.js:1014 +#: js/utils/musicutils.js:1189 +#: js/utils/musicutils.js:1326 +#.TRANS: major is a music term related to intervals and mode +msgid "major" msgstr "" -#: js/turtledefs.js:605 -msgid "This button opens a viewer for loading example projects." +#: js/piemenus.js:3018 +#: js/piemenus.js:3091 +#: js/utils/musicutils.js:1032 +#.TRANS: modal scale for music +msgid "ionian" msgstr "" -#: js/turtledefs.js:611 -msgid "Palette buttons" +#: js/piemenus.js:3020 +#: js/piemenus.js:3095 +#: js/utils/musicutils.js:1012 +#: js/utils/musicutils.js:1190 +#: js/utils/musicutils.js:1323 +#.TRANS: minor is a music term related to intervals and mode +msgid "minor" msgstr "" -#: js/turtledefs.js:612 -msgid "This toolbar contains the palette buttons including Rhythm Pitch Tone Action and more." +#: js/piemenus.js:3020 +#: js/piemenus.js:3095 +#: js/utils/musicutils.js:1042 +#.TRANS: modal scale for music +msgid "aeolian" msgstr "" -#: js/turtledefs.js:614 -msgid "Click to show the palettes of blocks and drag blocks from the palettes onto the canvas to use them." +#: js/piemenus.js:3410 +msgid "Duplicate" msgstr "" -#: js/turtledefs.js:620 -msgid "Cartesian/Polar" +#: js/piemenus.js:3412 +msgid "Move to trash" msgstr "" -#: js/turtledefs.js:621 -msgid "Show or hide a coordinate grid." +#: js/piemenus.js:3413 +#: js/widgets/timbre.js:968 +#: planet/js/StringHelper.js:69 +msgid "Close" msgstr "" -#: js/turtledefs.js:627 -msgid "Clear the screen and return the mice to their initial positions." +#: js/piemenus.js:3419 +msgid "Save stack" msgstr "" -#: js/turtledefs.js:633 -msgid "Collapse the graphics window." +#: js/piemenus.js:3449 +msgid "In order to copy a sample, you must reload the widget, import the sample again, and export it." msgstr "" -#: js/turtledefs.js:638 -#: js/activity.js:4256 -#: js/activity.js:4256 -msgid "Home" +#: js/piemenus.js:3812 +msgid "You have chosen key " msgstr "" -#: js/turtledefs.js:639 -msgid "Return all blocks to the center of the screen." +#: js/piemenus.js:3816 +msgid " for your pitch preview." msgstr "" -#: js/turtledefs.js:644 -msgid "Show/hide blocks" +#: js/turtle-singer.js:1363 +#.TRANS: partials are weighted components in a harmonic series +msgid "You must have at least one Partial block inside of a Weighted-partial block" msgstr "" -#: js/turtledefs.js:645 -msgid "Hide or show the blocks and the palettes." +#: js/turtle-singer.js:2077 +msgid "synth cannot play chords." msgstr "" -#: js/turtledefs.js:650 -msgid "Expand/collapse collapsable blocks" +#: js/utils/musicutils.js:505 +#: js/utils/musicutils.js:645 +#: js/widgets/pitchdrummatrix.js:228 +#: js/widgets/musickeyboard.js:2885 +msgid "rest" msgstr "" -#: js/turtledefs.js:651 -msgid "Expand or collapse start and action stacks." +#: js/utils/musicutils.js:689 +msgid "Perfect unison" msgstr "" -#: js/turtledefs.js:658 -#: js/activity.js:4265 -msgid "Decrease block size" +#: js/utils/musicutils.js:689 +msgid "Diminished second" msgstr "" -#: js/turtledefs.js:659 -msgid "Decrease the size of the blocks." +#: js/utils/musicutils.js:690 +msgid "Minor second" msgstr "" -#: js/turtledefs.js:664 -#: js/activity.js:4267 -msgid "Increase block size" +#: js/utils/musicutils.js:690 +msgid "Augmented unison" msgstr "" -#: js/turtledefs.js:665 -msgid "Increase the size of the blocks." +#: js/utils/musicutils.js:691 +msgid "Major second" msgstr "" -#: js/turtledefs.js:670 -msgid "Expand/collapse option toolbar" +#: js/utils/musicutils.js:691 +msgid "Diminished third" msgstr "" -#: js/turtledefs.js:671 -msgid "Click this button to expand or collapse the auxillary toolbar." +#: js/utils/musicutils.js:692 +msgid "Minor third" msgstr "" -#: js/turtledefs.js:676 -msgid "Run slow" +#: js/utils/musicutils.js:692 +msgid "Augmented second" msgstr "" -#: js/turtledefs.js:677 -msgid "Click to run the project in slow mode." +#: js/utils/musicutils.js:693 +msgid "Major third" msgstr "" -#: js/turtledefs.js:683 -msgid "Click to run the project step by step." +#: js/utils/musicutils.js:693 +msgid "Diminished fourth" msgstr "" -#: js/turtledefs.js:690 -msgid "Display statistics about your Music project." +#: js/utils/musicutils.js:694 +msgid "Perfect fourth" msgstr "" -#: js/turtledefs.js:697 -msgid "Delete a selected plugin." +#: js/utils/musicutils.js:694 +msgid "Augmented third" msgstr "" -#: js/turtledefs.js:704 -msgid "Enable scrolling" +#: js/utils/musicutils.js:695 +msgid "Diminished fifth" msgstr "" -#: js/turtledefs.js:705 -msgid "You can scroll the blocks on the canvas." +#: js/utils/musicutils.js:695 +msgid "Augmented fourth" msgstr "" -#: js/turtledefs.js:714 -msgid "Wrap Turtle" +#: js/utils/musicutils.js:696 +msgid "Perfect fifth" msgstr "" -#: js/turtledefs.js:715 -msgid "Turn Turtle wrapping On or Off." +#: js/utils/musicutils.js:696 +msgid "Diminished sixth" msgstr "" -#: js/turtledefs.js:725 -msgid "Restore blocks from the trash." +#: js/utils/musicutils.js:697 +msgid "Minor sixth" msgstr "" -#: js/turtledefs.js:732 -msgid "Switch mode" +#: js/utils/musicutils.js:697 +msgid "Augmented fifth" msgstr "" -#: js/turtledefs.js:733 -msgid "Switch between beginner and advance modes." +#: js/utils/musicutils.js:698 +msgid "Major sixth" msgstr "" -#: js/turtledefs.js:739 -msgid "Select your language preference." +#: js/utils/musicutils.js:698 +msgid "Diminished seventh" msgstr "" -#: js/turtledefs.js:745 -msgid "Keyboard shortcuts" +#: js/utils/musicutils.js:699 +msgid "Minor seventh" msgstr "" -#: js/turtledefs.js:746 -msgid "You can type d to create a do block and r to create a re block etc." +#: js/utils/musicutils.js:699 +msgid "Augmented sixth" msgstr "" -#: js/turtledefs.js:753 -msgid "Show these messages." +#: js/utils/musicutils.js:700 +msgid "Major seventh" msgstr "" -#: js/turtledefs.js:759 -#: js/turtledefs.js:790 -#: js/help.js:335 -msgid "Guide" +#: js/utils/musicutils.js:700 +msgid "Diminished octave" msgstr "" -#: js/turtledefs.js:760 -msgid "A detailed guide to Turtle Blocks is available." +#: js/utils/musicutils.js:701 +msgid "Perfect octave" msgstr "" -#: js/turtledefs.js:764 -msgid "Turtle Blocks Guide" +#: js/utils/musicutils.js:701 +msgid "Augmented seventh" msgstr "" -#: js/turtledefs.js:767 -#: js/turtledefs.js:798 -#: js/help.js:336 -msgid "About" +#: js/utils/musicutils.js:702 +msgid "Minor ninth" msgstr "" -#: js/turtledefs.js:768 -msgid "Turtle Blocks is an open source collection of tools for exploring musical concepts." +#: js/utils/musicutils.js:702 +msgid "Augmented octave" msgstr "" -#: js/turtledefs.js:770 -msgid "A full list of contributors can be found in the Turtle Blocks GitHub repository." +#: js/utils/musicutils.js:703 +msgid "Major ninth" msgstr "" -#: js/turtledefs.js:772 -msgid "Turtle Blocks is licensed under the AGPL." +#: js/utils/musicutils.js:703 +msgid "Diminished tenth" msgstr "" -#: js/turtledefs.js:780 -msgid "Turtle Blocks GitHub repository" +#: js/utils/musicutils.js:704 +msgid "Minor tenth" msgstr "" -#: js/turtledefs.js:783 -#: js/turtledefs.js:814 -#: js/help.js:337 -#: js/help.js:359 -msgid "Congratulations." +#: js/utils/musicutils.js:704 +msgid "Augmented ninth" msgstr "" -#: js/turtledefs.js:784 -msgid "You have finished the tour. Please enjoy Turtle Blocks!" +#: js/utils/musicutils.js:705 +msgid "Major tenth" msgstr "" -#: js/turtledefs.js:791 -msgid "A detailed guide to Music Blocks is available." +#: js/utils/musicutils.js:705 +msgid "Diminished eleventh" msgstr "" -#: js/turtledefs.js:795 -#: js/SaveInterface.js:76 -msgid "Music Blocks Guide" +#: js/utils/musicutils.js:706 +msgid "Perfect eleventh" msgstr "" -#: js/turtledefs.js:799 -msgid "Music Blocks is an open source collection of tools for exploring musical concepts." +#: js/utils/musicutils.js:706 +msgid "Augmented tenth" msgstr "" -#: js/turtledefs.js:801 -msgid "A full list of contributors can be found in the Music Blocks GitHub repository." +#: js/utils/musicutils.js:707 +msgid "Diminished twelfth" msgstr "" -#: js/turtledefs.js:803 -msgid "Music Blocks is licensed under the AGPL." +#: js/utils/musicutils.js:707 +msgid "Augmented eleventh" msgstr "" -#: js/turtledefs.js:811 -msgid "Music Blocks GitHub repository" +#: js/utils/musicutils.js:708 +msgid "Perfect twelfth" msgstr "" -#: js/turtledefs.js:815 -msgid "You have finished the tour. Please enjoy Music Blocks!" +#: js/utils/musicutils.js:708 +msgid "Diminished thirteenth" msgstr "" -#: js/activity.js:369 -msgid "Search for blocks" +#: js/utils/musicutils.js:709 +msgid "Minor thirteenth" msgstr "" -#: js/activity.js:1145 -msgid "Refresh your browser to change to advanced mode." +#: js/utils/musicutils.js:709 +msgid "Augmented fifth, plus an octave" msgstr "" -#: js/activity.js:1150 -msgid "Refresh your browser to change to beginner mode." +#: js/utils/musicutils.js:710 +msgid "Major thirteenth" msgstr "" -#: js/activity.js:1184 -msgid "Catching mice" +#: js/utils/musicutils.js:710 +msgid "Diminished seventh, plus an octave" msgstr "" -#: js/activity.js:1185 -msgid "Cleaning the instruments" +#: js/utils/musicutils.js:838 +#.TRANS: ordinal number. Please keep exactly one space between each number. +msgid "1st 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th" msgstr "" -#: js/activity.js:1186 -msgid "Testing key pieces" +#: js/utils/musicutils.js:1008 +#: js/utils/musicutils.js:1191 +#: js/utils/musicutils.js:1325 +#.TRANS: augmented is a music term related to intervals +msgid "augmented" msgstr "" -#: js/activity.js:1187 -msgid "Sight-reading" +#: js/utils/musicutils.js:1010 +#: js/utils/musicutils.js:1192 +#: js/utils/musicutils.js:1324 +#.TRANS: diminished is a music term related to intervals and mode +msgid "diminished" msgstr "" -#: js/activity.js:1188 -msgid "Combining math and music" +#: js/utils/musicutils.js:1016 +#: js/utils/musicutils.js:1322 +#: js/blocks/IntervalsBlocks.js:649 +#: js/turtleactions/IntervalsActions.js:120 +#: js/turtleactions/IntervalsActions.js:124 +#.TRANS: perfect is a music term related to intervals +msgid "perfect" +msgstr "" + +#: js/utils/musicutils.js:1018 +#.TRANS: twelve semi-tone scale for music +msgid "chromatic" msgstr "" -#: js/activity.js:1189 -msgid "Generating more blocks" +#: js/utils/musicutils.js:1019 +msgid "algerian" msgstr "" -#: js/activity.js:1190 -msgid "Do Re Mi Fa Sol La Ti Do" +#: js/utils/musicutils.js:1020 +msgid "spanish" msgstr "" -#: js/activity.js:1191 -msgid "Tuning string instruments" +#: js/utils/musicutils.js:1022 +#.TRANS: modal scale in music +msgid "octatonic" msgstr "" -#: js/activity.js:1192 -msgid "Pressing random keys" +#: js/utils/musicutils.js:1024 +#.TRANS: harmonic major scale in music +msgid "harmonic major" msgstr "" -#: js/activity.js:1351 -msgid "plugins will be removed upon restart." +#: js/utils/musicutils.js:1026 +#.TRANS: natural minor scales in music +msgid "natural minor" msgstr "" -#: js/activity.js:1360 -msgid "show Cartesian" +#: js/utils/musicutils.js:1028 +#.TRANS: harmonic minor scale in music +msgid "harmonic minor" msgstr "" -#: js/activity.js:1842 -msgid "output tools" +#: js/utils/musicutils.js:1030 +#.TRANS: melodic minor scale in music +msgid "melodic minor" msgstr "" -#: js/activity.js:1845 -msgid "custom note" +#: js/utils/musicutils.js:1034 +#.TRANS: modal scale for music +msgid "dorian" msgstr "" -#: js/activity.js:1848 -msgid "accidental name" +#: js/utils/musicutils.js:1036 +#.TRANS: modal scale for music +msgid "phrygian" msgstr "" -#: js/activity.js:1851 -#: js/PitchBlocks.js:855 -msgid "east indian solfege" +#: js/utils/musicutils.js:1038 +#.TRANS: modal scale for music +msgid "lydian" msgstr "" -#: js/activity.js:1854 -#: js/PitchBlocks.js:869 -msgid "note name" +#: js/utils/musicutils.js:1040 +#.TRANS: modal scale for music +msgid "mixolydian" msgstr "" -#: js/activity.js:1857 -#: js/IntervalsBlocks.js:94 -msgid "temperament name" +#: js/utils/musicutils.js:1044 +#.TRANS: modal scale for music +msgid "locrian" msgstr "" -#: js/activity.js:1863 -msgid "chord name" +#: js/utils/musicutils.js:1046 +#.TRANS: minor jazz scale for music +msgid "jazz minor" msgstr "" -#: js/activity.js:1869 -msgid "filter type" +#: js/utils/musicutils.js:1048 +#.TRANS: bebop scale for music +msgid "bebop" msgstr "" -#: js/activity.js:1872 -msgid "oscillator type" +#: js/utils/musicutils.js:1049 +msgid "arabic" msgstr "" -#: js/activity.js:1878 -#: js/DrumBlocks.js:32 -msgid "noise name" +#: js/utils/musicutils.js:1050 +msgid "byzantine" msgstr "" -#: js/activity.js:1881 -#: js/DrumBlocks.js:75 -msgid "drum name" +#: js/utils/musicutils.js:1052 +#.TRANS: musical scale for music by Verdi +msgid "enigmatic" msgstr "" -#: js/activity.js:1884 -#: js/DrumBlocks.js:119 -msgid "effects name" +#: js/utils/musicutils.js:1053 +msgid "ethiopian" msgstr "" -#: js/activity.js:1887 -msgid "wrap mode" +#: js/utils/musicutils.js:1055 +#.TRANS: Ethiopic scale for music +msgid "geez" msgstr "" -#: js/activity.js:1890 -msgid "load file" +#: js/utils/musicutils.js:1056 +msgid "hindu" msgstr "" -#: js/activity.js:2056 -msgid "This block is deprecated." +#: js/utils/musicutils.js:1057 +msgid "hungarian" msgstr "" -#: js/activity.js:2058 -msgid "Block cannot be found." +#: js/utils/musicutils.js:1059 +#.TRANS: minor Romanian scale for music +msgid "romanian minor" msgstr "" -#: js/activity.js:2266 -msgid "Saving block artwork" +#: js/utils/musicutils.js:1060 +msgid "spanish gypsy" msgstr "" -#: js/activity.js:2277 -msgid "Erase" +#: js/utils/musicutils.js:1062 +#.TRANS: musical scale for Mid-Eastern music +msgid "maqam" msgstr "" -#: js/activity.js:2301 -#: js/activity.js:2323 -msgid "Paste" +#: js/utils/musicutils.js:1064 +#.TRANS: minor blues scale for music +msgid "minor blues" msgstr "" -#: js/activity.js:2305 -msgid "Save block help" +#: js/utils/musicutils.js:1066 +#.TRANS: major blues scale for music +msgid "major blues" msgstr "" -#: js/activity.js:2390 -msgid "Jumping to the bottom of the page." +#: js/utils/musicutils.js:1067 +msgid "whole tone" msgstr "" -#: js/activity.js:2396 -msgid "Scrolling up." +#: js/utils/musicutils.js:1069 +#.TRANS: pentatonic is a general term that means "five note scale". This scale is typically known as "minor pentatonic" +msgid "minor pentatonic" msgstr "" -#: js/activity.js:2401 -msgid "Scrolling down." +#: js/utils/musicutils.js:1071 +#.TRANS: pentatonic is a general term that means "five note scale". This scale is typically known as "major pentatonic" +msgid "major pentatonic" msgstr "" -#: js/activity.js:2406 -msgid "Extracting block" +#: js/utils/musicutils.js:1072 +msgid "chinese" msgstr "" -#: js/activity.js:2414 -msgid "Moving block up." +#: js/utils/musicutils.js:1073 +msgid "egyptian" msgstr "" -#: js/activity.js:2435 -msgid "Moving block down." +#: js/utils/musicutils.js:1075 +#.TRANS: https://en.wikipedia.org/wiki/Hirajoshi_scale NOTE: There are three different versions of this scale +msgid "hirajoshi" msgstr "" -#: js/activity.js:2456 -msgid "Moving block left." +#: js/utils/musicutils.js:1076 +msgid "Japan" msgstr "" -#: js/activity.js:2473 -msgid "Moving block right." +#: js/utils/musicutils.js:1078 +#.TRANS: https://en.wikipedia.org/wiki/In_scale and https://en.wikipedia.org/wiki/Sakura_Sakura +msgid "in" msgstr "" -#: js/activity.js:2488 -msgid "Jump to home position." +#: js/utils/musicutils.js:1080 +#.TRANS: https://en.wikipedia.org/wiki/Miny%C5%8D_scale +msgid "minyo" msgstr "" -#: js/activity.js:2515 -msgid "Hide blocks" +#: js/utils/musicutils.js:1082 +#.TRANS: Italian mathematician +msgid "fibonacci" msgstr "" -#: js/activity.js:3389 -msgid "Click the run button to run the project." +#: js/utils/musicutils.js:1083 +#: js/utils/musicutils.js:1134 +#: js/utils/musicutils.js:1177 +#: js/utils/musicutils.js:1199 +#: js/utils/synthutils.js:134 +#: js/blocks/IntervalsBlocks.js:1124 +#: js/blocks/ToneBlocks.js:946 +#: js/blocks/VolumeBlocks.js:411 +#: js/blocks/WidgetBlocks.js:399 +#: js/blocks/WidgetBlocks.js:404 +#: js/turtleactions/VolumeActions.js:218 +#: js/widgets/modewidget.js:919 +#.TRANS: customize voice +msgid "custom" msgstr "" -#: js/activity.js:3456 -#: js/SaveInterface.js:131 -#: js/SaveInterface.js:204 -#: js/SaveInterface.js:262 -#: js/SaveInterface.js:389 -#: js/SaveInterface.js:417 -#: js/ProjectStorage.js:27 -#: js/GlobalPlanet.js:467 -#: js/GlobalPlanet.js:469 -#: js/GlobalPlanet.js:495 -#.TRANS: default project title when saving as Lilypond -msgid "My Project" +#: js/utils/musicutils.js:1085 +#: js/utils/musicutils.js:1531 +#: js/blocks/WidgetBlocks.js:176 +#.TRANS: highpass filter +msgid "highpass" msgstr "" -#: js/activity.js:4261 -msgid "Show/hide block" +#: js/utils/musicutils.js:1087 +#: js/utils/musicutils.js:1532 +#.TRANS: lowpass filter +msgid "lowpass" msgstr "" -#: js/activity.js:4263 -msgid "Expand/collapse blocks" +#: js/utils/musicutils.js:1089 +#: js/utils/musicutils.js:1533 +#.TRANS: bandpass filter +msgid "bandpass" msgstr "" -#: js/activity.js:4381 -msgid "Could not parse JSON input." +#: js/utils/musicutils.js:1091 +#: js/utils/musicutils.js:1534 +#.TRANS: high-shelf filter +msgid "highshelf" msgstr "" -#: js/activity.js:4684 -#: js/activity.js:4771 -#: js/activity.js:4821 -msgid "Cannot load project from the file. Please check the file type." +#: js/utils/musicutils.js:1093 +#: js/utils/musicutils.js:1535 +#.TRANS: low-shelf filter +msgid "lowshelf" msgstr "" -#: js/activity.js:5051 -msgid "Invalid parameters" +#: js/utils/musicutils.js:1095 +#: js/utils/musicutils.js:1536 +#.TRANS: notch-shelf filter +msgid "notch" msgstr "" -#: js/turtle-singer.js:1334 -#.TRANS: partials are weighted components in a harmonic series -msgid "You must have at least one Partial block inside of a Weighted-partial block" +#: js/utils/musicutils.js:1097 +#: js/utils/musicutils.js:1537 +#.TRANS: all-pass filter +msgid "allpass" msgstr "" -#: js/turtle-singer.js:2048 -msgid "synth cannot play chords." +#: js/utils/musicutils.js:1099 +#: js/utils/musicutils.js:1538 +#.TRANS: peaking filter +msgid "peaking" msgstr "" -#: js/lilypond.js:614 -msgid "brown rat" +#: js/utils/musicutils.js:1100 +#: js/utils/musicutils.js:1546 +#: js/utils/synthutils.js:126 +#: js/blocks/PitchBlocks.js:85 +#.TRANS: sine wave +msgid "sine" msgstr "" -#: js/lilypond.js:615 -msgid "mole" +#: js/utils/musicutils.js:1101 +#: js/utils/musicutils.js:1547 +#: js/utils/synthutils.js:128 +#: js/blocks/PitchBlocks.js:39 +#.TRANS: square wave +msgid "square" msgstr "" -#: js/lilypond.js:616 -msgid "chipmunk" +#: js/utils/musicutils.js:1102 +#: js/utils/musicutils.js:1548 +#: js/utils/synthutils.js:132 +#: js/blocks/PitchBlocks.js:62 +#: js/blocks/ToneBlocks.js:39 +#.TRANS: triangle wave +msgid "triangle" msgstr "" -#: js/lilypond.js:617 -msgid "red squirrel" +#: js/utils/musicutils.js:1103 +#: js/utils/musicutils.js:1549 +#: js/utils/synthutils.js:130 +#: js/blocks/PitchBlocks.js:108 +#.TRANS: sawtooth wave +msgid "sawtooth" msgstr "" -#: js/lilypond.js:618 -msgid "guinea pig" +#: js/utils/musicutils.js:1105 +#: js/utils/musicutils.js:1312 +#: js/blocks/PitchBlocks.js:931 +#: js/blocks/PitchBlocks.js:937 +#: js/turtleactions/PitchActions.js:469 +#.TRANS: even numbers +#.TRANS: invert based on even or odd number or musical scale +msgid "even" msgstr "" -#: js/lilypond.js:619 -msgid "capybara" +#: js/utils/musicutils.js:1107 +#: js/utils/musicutils.js:1313 +#: js/blocks/PitchBlocks.js:937 +#: js/turtleactions/PitchActions.js:471 +#.TRANS: odd numbers +msgid "odd" msgstr "" -#: js/lilypond.js:620 -msgid "coypu" +#: js/utils/musicutils.js:1108 +#: js/utils/musicutils.js:1314 +#: js/blocks/PitchBlocks.js:937 +#: js/turtleactions/PitchActions.js:473 +msgid "scalar" msgstr "" -#: js/lilypond.js:621 -msgid "black rat" +#: js/utils/musicutils.js:1109 +#: js/utils/synthutils.js:72 +#: js/blocks/VolumeBlocks.js:47 +#.TRANS: musical instrument +msgid "piano" msgstr "" -#: js/lilypond.js:622 -msgid "grey squirrel" +#: js/utils/musicutils.js:1110 +#: js/utils/synthutils.js:74 +#.TRANS: musical instrument +msgid "violin" msgstr "" -#: js/lilypond.js:623 -msgid "flying squirrel" +#: js/utils/musicutils.js:1111 +#: js/utils/synthutils.js:76 +#.TRANS: viola musical instrument +msgid "viola" msgstr "" -#: js/lilypond.js:624 -msgid "bat" +#: js/utils/musicutils.js:1112 +#: js/utils/synthutils.js:114 +#.TRANS: xylophone musical instrument +msgid "xylophone" msgstr "" -#: js/lilypond.js:757 -#: js/lilypond.js:921 -#: js/lilypond.js:959 -#: js/ActionBlocks.js:1256 -#: js/ExtrasBlocks.js:553 -msgid "start drum" +#: js/utils/musicutils.js:1113 +#: js/utils/synthutils.js:136 +#.TRANS: vibraphone musical instrument +msgid "vibraphone" msgstr "" -#: js/SaveInterface.js:59 -#: js/SaveInterface.js:61 -#: js/SaveInterface.js:93 -msgid "Music Blocks Project" +#: js/utils/musicutils.js:1114 +#: js/utils/synthutils.js:78 +#.TRANS: musical instrument +msgid "cello" msgstr "" -#: js/SaveInterface.js:63 -msgid "This project was created in Music Blocks" +#: js/utils/musicutils.js:1116 +#: js/utils/synthutils.js:82 +#.TRANS: viola musical instrument +msgid "double bass" msgstr "" -#: js/SaveInterface.js:67 -msgid "Music Blocks is a Free/Libre Software application." +#: js/utils/musicutils.js:1117 +#: js/utils/synthutils.js:84 +#: js/widgets/rhythmruler.js:2511 +#.TRANS: musical instrument +msgid "guitar" msgstr "" -#: js/SaveInterface.js:69 -msgid "The source code can be accessed at" +#: js/utils/musicutils.js:1118 +#: js/utils/synthutils.js:86 +#.TRANS: musical instrument +msgid "acoustic guitar" msgstr "" -#: js/SaveInterface.js:72 -msgid "For more information, please consult the" +#: js/utils/musicutils.js:1119 +#: js/utils/synthutils.js:88 +#.TRANS: musical instrument +msgid "flute" msgstr "" -#: js/SaveInterface.js:83 -msgid "Alternatively, open the file in Music Blocks using the Load project button." +#: js/utils/musicutils.js:1120 +#: js/utils/synthutils.js:90 +#.TRANS: musical instrument +msgid "clarinet" msgstr "" -#: js/SaveInterface.js:85 -msgid "Project Code" +#: js/utils/musicutils.js:1121 +#: js/utils/synthutils.js:92 +#.TRANS: musical instrument +msgid "saxophone" msgstr "" -#: js/SaveInterface.js:87 -msgid "This code stores data about the blocks in a project." +#: js/utils/musicutils.js:1122 +#: js/utils/synthutils.js:94 +#.TRANS: musical instrument +msgid "tuba" msgstr "" -#: js/SaveInterface.js:89 -msgid "Show" +#: js/utils/musicutils.js:1123 +#: js/utils/synthutils.js:96 +#.TRANS: musical instrument +msgid "trumpet" msgstr "" -#: js/SaveInterface.js:91 -msgid "Hide" +#: js/utils/musicutils.js:1124 +#: js/utils/synthutils.js:98 +#.TRANS: musical instrument +msgid "oboe" msgstr "" -#: js/SaveInterface.js:197 -#: js/SaveInterface.js:58 -msgid "No description provided" +#: js/utils/musicutils.js:1125 +#: js/utils/synthutils.js:100 +#.TRANS: musical instrument +msgid "trombone" msgstr "" -#: js/SaveInterface.js:332 -msgid "Your recording is in progress." +#: js/utils/musicutils.js:1126 +#: js/utils/synthutils.js:116 +#.TRANS: polytone synthesizer +msgid "electronic synth" msgstr "" -#: js/SaveInterface.js:401 -#.TRANS: File name prompt for save as Lilypond -msgid "File name" +#: js/utils/musicutils.js:1127 +#: js/utils/synthutils.js:118 +#.TRANS: simple monotone synthesizer +msgid "simple 1" msgstr "" -#: js/SaveInterface.js:403 -#: js/StringHelper.js:39 -#.TRANS: Project title prompt for save as Lilypond -msgid "Project title" +#: js/utils/musicutils.js:1128 +msgid "simple 2" msgstr "" -#: js/SaveInterface.js:405 -#.TRANS: Project title prompt for save as Lilypond -msgid "Project author" +#: js/utils/musicutils.js:1129 +msgid "simple 3" msgstr "" -#: js/SaveInterface.js:407 -#.TRANS: MIDI prompt for save as Lilypond -msgid "Include MIDI output?" +#: js/utils/musicutils.js:1130 +msgid "simple 4" msgstr "" -#: js/SaveInterface.js:409 -#.TRANS: Guitar prompt for save as Lilypond -msgid "Include guitar tablature output?" +#: js/utils/musicutils.js:1131 +#: js/utils/synthutils.js:58 +#: js/blocks/DrumBlocks.js:191 +#.TRANS: white noise synthesizer +msgid "white noise" msgstr "" -#: js/SaveInterface.js:411 -#.TRANS: Lilypond is a scripting language for generating sheet music -msgid "Save as Lilypond" +#: js/utils/musicutils.js:1132 +#: js/utils/synthutils.js:60 +#.TRANS: brown noise synthesizer +msgid "brown noise" msgstr "" -#: js/SaveInterface.js:426 -#: js/EnsembleBlocks.js:75 -#: js/EnsembleBlocks.js:154 -#: js/EnsembleBlocks.js:216 -#: js/EnsembleBlocks.js:302 -#: js/EnsembleBlocks.js:348 -#: js/EnsembleBlocks.js:389 -#: js/EnsembleBlocks.js:441 -#: js/EnsembleBlocks.js:490 -#: js/EnsembleBlocks.js:536 -#: js/EnsembleBlocks.js:583 -#: js/EnsembleBlocks.js:637 -#: js/EnsembleBlocks.js:753 -#: js/EnsembleBlocks.js:840 -#: js/EnsembleBlocks.js:899 -#: js/EnsembleBlocks.js:942 -#: js/EnsembleBlocks.js:1212 -#: js/EnsembleBlocks.js:1280 -#.TRANS: default project author when saving as Lilypond -msgid "Mr. Mouse" +#: js/utils/musicutils.js:1133 +#: js/utils/synthutils.js:62 +#.TRANS: pink noise synthesizer +msgid "pink noise" msgstr "" -#: js/SaveInterface.js:573 -msgid "The Lilypond code is copied to clipboard. You can paste it here: " +#: js/utils/musicutils.js:1135 +#: js/utils/synthutils.js:148 +#: js/widgets/rhythmruler.js:2057 +#: js/widgets/rhythmruler.js:2319 +#.TRANS: musical instrument +msgid "snare drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:50 -#: js/RhythmBlockPaletteBlocks.js:232 -#.TRANS: rhythm block -#.TRANS: translate "rhythm1" as rhythm -msgid "rhythm1" +#: js/utils/musicutils.js:1136 +#: js/utils/synthutils.js:150 +#.TRANS: musical instrument +msgid "kick drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:70 -#: js/RhythmBlockPaletteBlocks.js:251 -#: js/RhythmBlockPaletteBlocks.js:484 -#: js/RhythmBlockPaletteBlocks.js:553 -#: js/RhythmBlockPaletteBlocks.js:874 -msgid "number of notes" +#: js/utils/musicutils.js:1137 +#: js/utils/synthutils.js:152 +#.TRANS: musical instrument +msgid "tom tom" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:126 -msgid "polyphonic rhythm" +#: js/utils/musicutils.js:1138 +#: js/utils/synthutils.js:154 +#.TRANS: musical instrument +msgid "floor tom" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:218 -msgid "The Rhythm block is used to generate rhythm patterns." +#: js/utils/musicutils.js:1139 +#: js/utils/synthutils.js:156 +#.TRANS: musical instrument +msgid "bass drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:279 -msgid "1/64 note" +#: js/utils/musicutils.js:1140 +#: js/utils/synthutils.js:158 +#.TRANS: a drum made from an inverted cup +msgid "cup drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:303 -msgid "1/32 note" +#: js/utils/musicutils.js:1141 +#: js/utils/synthutils.js:160 +#.TRANS: musical instrument +msgid "darbuka drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:331 -msgid "1/16 note" +#: js/utils/musicutils.js:1142 +#: js/utils/synthutils.js:164 +#.TRANS: musical instrument +msgid "hi hat" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:359 -msgid "eighth note" +#: js/utils/musicutils.js:1143 +#: js/utils/synthutils.js:166 +#.TRANS: a small metal bell +msgid "ride bell" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:387 -msgid "quarter note" +#: js/utils/musicutils.js:1144 +#: js/utils/synthutils.js:168 +#.TRANS: musical instrument +msgid "cow bell" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:415 -msgid "half note" +#: js/utils/musicutils.js:1145 +msgid "japanese drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:443 -msgid "whole note" +#: js/utils/musicutils.js:1146 +#: js/utils/synthutils.js:174 +#.TRANS: musical instrument +msgid "japanese bell" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:481 -#: js/RhythmBlockPaletteBlocks.js:550 -#: js/RhythmBlockPaletteBlocks.js:601 -#.TRANS: A tuplet is a note value divided into irregular time values. -msgid "tuplet" +#: js/utils/musicutils.js:1147 +#: js/utils/synthutils.js:170 +#.TRANS: musical instrument +msgid "triangle bell" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:767 -msgid "septuplet" +#: js/utils/musicutils.js:1148 +#: js/utils/synthutils.js:172 +#.TRANS: musical instrument +msgid "finger cymbals" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:795 -msgid "quintuplet" +#: js/utils/musicutils.js:1149 +#: js/utils/synthutils.js:176 +#.TRANS: a musically tuned set of bells +msgid "chime" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:823 -msgid "triplet" +#: js/utils/musicutils.js:1150 +#: js/utils/synthutils.js:178 +#.TRANS: a musical instrument +msgid "gong" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:850 -msgid "simple tuplet" +#: js/utils/musicutils.js:1151 +#: js/utils/synthutils.js:180 +#.TRANS: sound effect +msgid "clang" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:860 -msgid "Tuplets are a collection of notes that get scaled to a specific duration." +#: js/utils/musicutils.js:1152 +#: js/utils/synthutils.js:182 +#.TRANS: sound effect +msgid "crash" msgstr "" -#: js/WidgetBlocks.js:71 -#.TRANS: sound envelope (ADSR) -msgid "envelope" +#: js/utils/musicutils.js:1153 +#: js/utils/synthutils.js:184 +#.TRANS: sound effect +msgid "bottle" msgstr "" -#: js/WidgetBlocks.js:79 -#.TRANS: Attack time is the time taken for initial run-up of level from nil to peak, beginning when the key is first pressed. -msgid "attack" +#: js/utils/musicutils.js:1154 +#: js/utils/synthutils.js:186 +#.TRANS: sound effect +msgid "clap" msgstr "" -#: js/WidgetBlocks.js:81 -#.TRANS: Decay time is the time taken for the subsequent run down from the attack level to the designated sustain level. -msgid "decay" +#: js/utils/musicutils.js:1155 +#: js/utils/synthutils.js:188 +#.TRANS: sound effect +msgid "slap" msgstr "" -#: js/WidgetBlocks.js:83 -#.TRANS: Sustain level is the level during the main sequence of the sound's duration, until the key is released. -msgid "sustain" +#: js/utils/musicutils.js:1156 +#: js/utils/synthutils.js:190 +#.TRANS: sound effect +msgid "splash" msgstr "" -#: js/WidgetBlocks.js:85 -#.TRANS: Release time is the time taken for the level to decay from the sustain level to zero after the key is released. -msgid "release" +#: js/utils/musicutils.js:1157 +#: js/utils/synthutils.js:192 +#.TRANS: sound effect +msgid "bubbles" msgstr "" -#: js/WidgetBlocks.js:96 -msgid "Attack value should be from 0 to 100." +#: js/utils/musicutils.js:1158 +#: js/utils/synthutils.js:194 +#.TRANS: sound effect +msgid "raindrop" msgstr "" -#: js/WidgetBlocks.js:99 -msgid "Decay value should be from 0 to 100." +#: js/utils/musicutils.js:1159 +#: js/utils/synthutils.js:196 +#.TRANS: animal sound effect +msgid "cat" msgstr "" -#: js/WidgetBlocks.js:102 -msgid "Sustain value should be from 0 to 100." +#: js/utils/musicutils.js:1160 +#: js/utils/synthutils.js:198 +#.TRANS: animal sound effect +msgid "cricket" msgstr "" -#: js/WidgetBlocks.js:105 -msgid "Release value should be from 0-100." +#: js/utils/musicutils.js:1161 +#: js/utils/synthutils.js:200 +#.TRANS: animal sound effect +msgid "dog" msgstr "" -#: js/WidgetBlocks.js:121 -msgid "You are adding multiple envelope blocks." +#: js/utils/musicutils.js:1163 +#: js/utils/synthutils.js:102 +#.TRANS: musical instrument +msgid "banjo" msgstr "" -#: js/WidgetBlocks.js:144 -#.TRANS: a filter removes some unwanted components from a signal -msgid "filter" +#: js/utils/musicutils.js:1164 +#: js/utils/synthutils.js:104 +#.TRANS: musical instrument +msgid "koto" msgstr "" -#: js/WidgetBlocks.js:149 -#: js/musicutils.js:706 -#: js/musicutils.js:1105 -#.TRANS: highpass filter -msgid "highpass" +#: js/utils/musicutils.js:1165 +#: js/utils/synthutils.js:106 +#.TRANS: musical instrument +msgid "dulcimer" msgstr "" -#: js/WidgetBlocks.js:152 -#: js/ToneBlocks.js:42 -#: js/timbre.js:1558 -#: js/timbre.js:1808 -#.TRANS: type of filter, e.g., lowpass, highpass, etc. -#.TRANS: there are different types (sine, triangle, square...) of oscillators. -msgid "type" +#: js/utils/musicutils.js:1166 +#: js/utils/synthutils.js:108 +#.TRANS: musical instrument +msgid "electric guitar" msgstr "" -#: js/WidgetBlocks.js:154 -#: js/timbre.js:1818 -#.TRANS: rolloff is the steepness of a change in frequency. -msgid "rolloff" +#: js/utils/musicutils.js:1167 +#: js/utils/synthutils.js:110 +#.TRANS: musical instrument +msgid "bassoon" msgstr "" -#: js/WidgetBlocks.js:155 -#: js/MediaBlocks.js:692 -#: js/temperament.js:382 -#: js/temperament.js:417 -#: js/temperament.js:477 -#: js/temperament.js:485 -#: js/temperament.js:1348 -#: js/timbre.js:1842 -msgid "frequency" +#: js/utils/musicutils.js:1168 +#: js/utils/synthutils.js:112 +#.TRANS: musical instrument +msgid "celeste" msgstr "" -#: js/WidgetBlocks.js:179 -#.TRANS: rolloff is the steepness of a change in frequency. -msgid "Rolloff value should be either -12, -24, -48, or -96 decibels/octave." +#: js/utils/musicutils.js:1170 +#: js/widgets/temperament.js:787 +#.TRANS: musical temperament +msgid "equal" msgstr "" -#: js/WidgetBlocks.js:211 -msgid "The Temperament tool is used to define custom tuning." +#: js/utils/musicutils.js:1172 +#.TRANS: musical temperament +msgid "Pythagorean" msgstr "" -#: js/WidgetBlocks.js:277 -#: js/sampler.js:329 -msgid "Upload a sample and adjust its pitch center." +#: js/utils/musicutils.js:1174 +#.TRANS: musical temperament +msgid "just intonation" msgstr "" -#: js/WidgetBlocks.js:284 -#.TRANS: the speed at music is should be played. -msgid "sampler" +#: js/utils/musicutils.js:1176 +#.TRANS: musical temperament +msgid "meantone" msgstr "" -#: js/WidgetBlocks.js:329 -#: js/WidgetBlocks.js:334 -#: js/IntervalsBlocks.js:928 -#: js/VolumeBlocks.js:411 -#: js/ToneBlocks.js:946 -#: js/VolumeActions.js:218 -#: js/musicutils.js:704 -#: js/musicutils.js:755 -#: js/musicutils.js:798 -#: js/musicutils.js:820 -#: js/musicutils.js:1136 -#: js/synthutils.js:118 -#: js/modewidget.js:919 -#.TRANS: customize voice -msgid "custom" +#: js/utils/musicutils.js:1193 +msgid "major 7th" msgstr "" -#: js/WidgetBlocks.js:432 -msgid "The Meter block opens a tool to select strong beats for the meter." +#: js/utils/musicutils.js:1194 +msgid "minor 7th" msgstr "" -#: js/WidgetBlocks.js:473 -msgid "The oscilloscope block opens a tool to visualize waveforms." +#: js/utils/musicutils.js:1195 +msgid "dominant 7th" msgstr "" -#: js/WidgetBlocks.js:478 -msgid "oscilloscope" +#: js/utils/musicutils.js:1196 +msgid "minor-major 7th" msgstr "" -#: js/WidgetBlocks.js:530 -msgid "The Custom mode block opens a tool to explore musical mode (the spacing of the notes in a scale)." +#: js/utils/musicutils.js:1197 +msgid "fully-diminished 7th" msgstr "" -#: js/WidgetBlocks.js:536 -#.TRANS: musical mode is the pattern of half-steps in an octave, e.g., Major or Minor modes -msgid "custom mode" +#: js/utils/musicutils.js:1198 +msgid "half-diminished 7th" msgstr "" -#: js/WidgetBlocks.js:570 -msgid "The Tempo block opens a metronome to visualize the beat." +#: js/utils/musicutils.js:1557 +#: js/utils/musicutils.js:1569 +msgid "Equal (12EDO)" msgstr "" -#: js/WidgetBlocks.js:617 -msgid "The Arpeggio Widget is used to compose chord sequences." +#: js/utils/musicutils.js:1558 +#: js/utils/musicutils.js:1570 +msgid "5-limit Just Intonation" msgstr "" -#: js/WidgetBlocks.js:623 -#: js/IntervalsBlocks.js:683 -msgid "arpeggio" +#: js/utils/musicutils.js:1559 +#: js/utils/musicutils.js:1571 +msgid "Pythagorean (3-limit JI)" msgstr "" -#: js/WidgetBlocks.js:677 -msgid "The Pitch drum matrix is used to map pitches to drum sounds." +#: js/utils/musicutils.js:1560 +#: js/utils/musicutils.js:1561 +#: js/utils/musicutils.js:1572 +#: js/utils/musicutils.js:1573 +msgid "Meantone" msgstr "" -#: js/WidgetBlocks.js:682 -#.TRANS: makes a mapping between pitches and drum sounds -msgid "pitch-drum mapper" +#: js/utils/musicutils.js:1574 +msgid "Custom" msgstr "" -#: js/WidgetBlocks.js:724 -msgid "You must have at least one pitch block and one drum block in the matrix." +#: js/utils/musicutils.js:5387 +#: js/utils/musicutils.js:5430 +msgid "current" msgstr "" -#: js/WidgetBlocks.js:746 -msgid "The Pitch slider tool to is used to generate pitches at selected frequencies." +#: js/utils/musicutils.js:5390 +#: js/utils/musicutils.js:5421 +msgid "next" msgstr "" -#: js/WidgetBlocks.js:751 -#.TRANS: widget to generate pitches using a slider -msgid "pitch slider" +#: js/utils/musicutils.js:5393 +#: js/utils/musicutils.js:5426 +msgid "previous" msgstr "" -#: js/WidgetBlocks.js:788 -msgid "chromatic keyboard" +#: js/utils/synthutils.js:120 +#.TRANS: simple monotone synthesizer +msgid "simple-2" msgstr "" -#: js/WidgetBlocks.js:815 -#: js/WidgetBlocks.js:874 -#.TRANS: widget to generate pitches using a slider -msgid "music keyboard" +#: js/utils/synthutils.js:122 +#.TRANS: simple monotone synthesizer +msgid "simple-3" msgstr "" -#: js/WidgetBlocks.js:859 -#: js/WidgetBlocks.js:866 -msgid "The Music keyboard block opens a piano keyboard that can be used to create notes." +#: js/utils/synthutils.js:124 +#.TRANS: simple monotone synthesizer +msgid "simple-4" msgstr "" -#: js/WidgetBlocks.js:910 -msgid "The Pitch staircase tool to is used to generate pitches from a given ratio." +#: js/utils/synthutils.js:162 +#.TRANS: musical instrument +msgid "taiko" msgstr "" -#: js/WidgetBlocks.js:917 -#.TRANS: generate a progressive sequence of pitches -msgid "pitch staircase" +#: js/blocks/ActionBlocks.js:58 +msgid "The Return block will return a value from an action." msgstr "" -#: js/WidgetBlocks.js:982 -msgid "The Rhythm Maker block opens a tool to create drum machines." +#: js/blocks/ActionBlocks.js:75 +msgid "return" msgstr "" -#: js/WidgetBlocks.js:1036 -msgid "G major scale" +#: js/blocks/ActionBlocks.js:128 +msgid "The Return to URL block will return a value to a webpage." msgstr "" -#: js/WidgetBlocks.js:1064 -msgid "C major scale" +#: js/blocks/ActionBlocks.js:145 +msgid "return to URL" msgstr "" -#: js/WidgetBlocks.js:1097 -msgid "The Phrase Maker block opens a tool to create musical phrases." +#: js/blocks/ActionBlocks.js:233 +#: js/blocks/ActionBlocks.js:290 +#: js/blocks/ActionBlocks.js:501 +#: js/blocks/ActionBlocks.js:688 +msgid "The Calculate block returns a value calculated by an action." msgstr "" -#: js/WidgetBlocks.js:1104 -#.TRANS: assigns pitch to a sequence of beats to generate a melody -msgid "phrase maker" +#: js/blocks/ActionBlocks.js:251 +#: js/blocks/ActionBlocks.js:517 +#: js/blocks/ActionBlocks.js:707 +msgid "calculate" msgstr "" -#: js/WidgetBlocks.js:1168 -msgid "You must have at least one pitch block and one rhythm block in the matrix." +#: js/blocks/ActionBlocks.js:376 +#: js/blocks/ActionBlocks.js:593 +#: js/blocks/ActionBlocks.js:942 +#: js/blocks/ActionBlocks.js:1389 +#.TRANS: do is the do something or take an action. +msgid "The Do block is used to initiate an action." msgstr "" -#: js/WidgetBlocks.js:1220 -msgid "The Status block opens a tool for inspecting the status of Music Blocks as it is running." +#: js/blocks/ActionBlocks.js:390 +#: js/blocks/ActionBlocks.js:610 +#: js/blocks/ActionBlocks.js:959 +#: js/blocks/ActionBlocks.js:1048 +#: js/blocks/MeterBlocks.js:769 +msgid "do1" msgstr "" -#: js/IntervalsBlocks.js:45 -msgid "set temperament" +#: js/blocks/ActionBlocks.js:390 +#: js/blocks/ActionBlocks.js:610 +#: js/blocks/ActionBlocks.js:959 +#: js/blocks/ActionBlocks.js:1048 +#: js/blocks/FlowBlocks.js:742 +#: js/blocks/FlowBlocks.js:822 +#: js/blocks/MeterBlocks.js:769 +msgid "do" msgstr "" -#: js/IntervalsBlocks.js:63 -#: js/MediaBlocks.js:746 -#: js/PitchBlocks.js:657 -#: js/PitchBlocks.js:933 -#: js/PitchBlocks.js:972 -#: js/PitchBlocks.js:1005 -#: js/PitchBlocks.js:1166 -#: js/PitchBlocks.js:1679 -#: js/PitchBlocks.js:1720 -#: js/PitchBlocks.js:1827 -#: js/ToneBlocks.js:1025 -#.TRANS: adjusts the shift up or down by one octave (twelve half-steps in the interval between two notes, one having twice or half the frequency in Hz of the other.) -msgid "octave" +#: js/blocks/ActionBlocks.js:791 +#: js/blocks/ActionBlocks.js:865 +msgid "The Arg block contains the value of an argument passed to an action." msgstr "" -#: js/IntervalsBlocks.js:99 -msgid "The Temperament name block is used to select a tuning method." +#: js/blocks/ActionBlocks.js:806 +#: js/blocks/ActionBlocks.js:878 +msgid "arg" msgstr "" -#: js/IntervalsBlocks.js:161 -msgid "doubly" +#: js/blocks/ActionBlocks.js:836 +#: js/blocks/ActionBlocks.js:900 +#: js/blocks/ActionBlocks.js:908 +msgid "Invalid argument" msgstr "" -#: js/IntervalsBlocks.js:166 -msgid "The Doubly block will double the size of an interval." +#: js/blocks/ActionBlocks.js:944 +msgid "In the example, it is used with the One of block to choose a random phase." msgstr "" -#: js/IntervalsBlocks.js:262 -msgid "interval number" +#: js/blocks/ActionBlocks.js:1019 +#: js/blocks/ActionBlocks.js:1026 +msgid "The Listen block is used to listen for an event such as a mouse click." msgstr "" -#: js/IntervalsBlocks.js:330 -#.TRANS: measure the distance between two pitches in semi-tones -msgid "semi-tone interval measure" +#: js/blocks/ActionBlocks.js:1028 +msgid "When the event happens, an action is taken." msgstr "" -#: js/IntervalsBlocks.js:397 -#: js/IntervalsBlocks.js:513 -msgid "You must use two pitch blocks when measuring an interval." +#: js/blocks/ActionBlocks.js:1045 +msgid "on" msgstr "" -#: js/IntervalsBlocks.js:439 -msgid "The Scalar interval block measures the distance between two notes in the current key and mode." +#: js/blocks/ActionBlocks.js:1048 +#: js/blocks/ActionBlocks.js:1049 +#: js/blocks/ActionBlocks.js:1153 +msgid "event" msgstr "" -#: js/IntervalsBlocks.js:445 -#.TRANS: measure the distance between two pitches in steps of musical scale -msgid "scalar interval measure" +#: js/blocks/ActionBlocks.js:1133 +msgid "The Broadcast block is used to trigger an event." msgstr "" -#: js/IntervalsBlocks.js:592 -#: js/musicutils.js:637 -#: js/musicutils.js:908 -#.TRANS: perfect is a music term related to intervals -msgid "perfect" +#: js/blocks/ActionBlocks.js:1151 +msgid "broadcast" msgstr "" -#: js/IntervalsBlocks.js:621 -msgid "In the figure, we add sol# to sol." +#: js/blocks/ActionBlocks.js:1208 +msgid "Each Start block is a separate voice." msgstr "" -#: js/IntervalsBlocks.js:627 -#: js/OrnamentBlocks.js:220 -#.TRANS: calculate a relative step between notes based on semi-tones -msgid "semi-tone interval" +#: js/blocks/ActionBlocks.js:1304 +msgid "It is often used for storing a phrase of music that is repeated." msgstr "" -#: js/IntervalsBlocks.js:676 -msgid "The output of the example is: do, mi, sol, sol, ti, mi" +#: js/blocks/ActionBlocks.js:1495 +msgid "define temperament" msgstr "" -#: js/IntervalsBlocks.js:735 -msgid "The Chord block calculates common chords." +#: js/blocks/BooleanBlocks.js:44 +msgid "The Not block is the logical not operator." msgstr "" -#: js/IntervalsBlocks.js:737 -msgid "In the figure, we generate a C-major chord." +#: js/blocks/BooleanBlocks.js:62 +msgid "not" msgstr "" -#: js/IntervalsBlocks.js:742 -msgid "chord" +#: js/blocks/BooleanBlocks.js:134 +msgid "The And block is the logical and operator." msgstr "" -#: js/IntervalsBlocks.js:794 -msgid "The Ratio Interval block calculates an interval based on a ratio." +#: js/blocks/BooleanBlocks.js:152 +msgid "and" msgstr "" -#: js/IntervalsBlocks.js:799 -msgid "ratio interval" +#: js/blocks/BooleanBlocks.js:218 +msgid "The Or block is the logical or operator." msgstr "" -#: js/IntervalsBlocks.js:868 -msgid "In the figure, we add la to sol." +#: js/blocks/BooleanBlocks.js:236 +msgid "or" msgstr "" -#: js/IntervalsBlocks.js:924 -#.TRANS: define a custom mode -msgid "define mode" +#: js/blocks/BooleanBlocks.js:302 +msgid "The XOR block is the logical XOR operator." msgstr "" -#: js/IntervalsBlocks.js:977 -msgid "movable Do" +#: js/blocks/BooleanBlocks.js:320 +msgid "xor" msgstr "" -#: js/IntervalsBlocks.js:1028 -#.TRANS: mode length is the number of notes in the mode, e.g., 7 for major and minor scales; 12 for chromatic scales -msgid "mode length" +#: js/blocks/BooleanBlocks.js:808 +msgid "The Equal block returns True if the two numbers are equal." msgstr "" -#: js/IntervalsBlocks.js:1037 -msgid "The Mode length block is the number of notes in the current scale." +#: js/blocks/BooleanBlocks.js:909 +msgid "The Not-equal-to block returns True if the two numbers are not equal to each other." msgstr "" -#: js/IntervalsBlocks.js:1039 -msgid "Most Western scales have 7 notes." +#: js/blocks/BooleanBlocks.js:1008 +msgid "The Boolean block is used to specify true or false." msgstr "" -#: js/IntervalsBlocks.js:1088 -#.TRANS: the mode in music is 'major', 'minor', etc. -msgid "current mode" +#: js/blocks/BoxesBlocks.js:53 +#: js/blocks/BoxesBlocks.js:59 +msgid "The Add-to block is used to add to the value stored in a box." msgstr "" -#: js/IntervalsBlocks.js:1141 -#.TRANS: the key is a group of pitches with which a music composition is created -msgid "current key" +#: js/blocks/BoxesBlocks.js:61 +msgid "It can also be used with other blocks such as Color and Pen size." msgstr "" -#: js/IntervalsBlocks.js:1193 -#: js/IntervalsBlocks.js:1238 -#.TRANS: set the key and mode, e.g. C Major -msgid "set key" +#: js/blocks/BoxesBlocks.js:73 +msgid "add" msgstr "" -#: js/IntervalsBlocks.js:1247 -#: js/IntervalsBlocks.js:1253 -msgid "The Set key block is used to set the key and mode," +#: js/blocks/BoxesBlocks.js:75 +#: js/widgets/temperament.js:857 +msgid "to" msgstr "" -#: js/IntervalsBlocks.js:1253 -msgid "eg C Major" +#: js/blocks/BoxesBlocks.js:75 +#: js/blocks/BoxesBlocks.js:595 +#: js/blocks/HeapBlocks.js:544 +msgid "value1" msgstr "" -#: js/IntervalsBlocks.js:1266 -#: js/DictBlocks.js:215 -#: js/DictBlocks.js:216 -#: js/DictBlocks.js:289 -#: js/DictBlocks.js:290 -#: js/DictBlocks.js:357 -#: js/DictBlocks.js:430 -#: js/DictBlocks.js:431 -#.TRANS: key, e.g., C in C Major -msgid "key" +#: js/blocks/BoxesBlocks.js:118 +msgid "Block does not support incrementing." msgstr "" -#: js/ActionBlocks.js:58 -msgid "The Return block will return a value from an action." +#: js/blocks/BoxesBlocks.js:152 +msgid "The Add-1-to block adds one to the value stored in a box." msgstr "" -#: js/ActionBlocks.js:75 -msgid "return" +#: js/blocks/BoxesBlocks.js:163 +msgid "add 1 to" msgstr "" -#: js/ActionBlocks.js:128 -msgid "The Return to URL block will return a value to a webpage." +#: js/blocks/BoxesBlocks.js:211 +msgid "The Subtract-1-from block subtracts one from the value stored in a box." msgstr "" -#: js/ActionBlocks.js:145 -msgid "return to URL" +#: js/blocks/BoxesBlocks.js:222 +msgid "subtract 1 from" msgstr "" -#: js/ActionBlocks.js:233 -#: js/ActionBlocks.js:290 -#: js/ActionBlocks.js:501 -#: js/ActionBlocks.js:688 -msgid "The Calculate block returns a value calculated by an action." +#: js/blocks/BoxesBlocks.js:270 +#: js/blocks/BoxesBlocks.js:387 +msgid "The Box block returns the value stored in a box." msgstr "" -#: js/ActionBlocks.js:251 -#: js/ActionBlocks.js:517 -#: js/ActionBlocks.js:707 -msgid "calculate" +#: js/blocks/BoxesBlocks.js:500 +#: js/blocks/BoxesBlocks.js:576 +msgid "The Store in block will store a value in a box." msgstr "" -#: js/ActionBlocks.js:376 -#: js/ActionBlocks.js:593 -#: js/ActionBlocks.js:942 -#: js/ActionBlocks.js:1389 -#.TRANS: do is the do something or take an action. -msgid "The Do block is used to initiate an action." +#: js/blocks/BoxesBlocks.js:595 +#: js/blocks/EnsembleBlocks.js:391 +#: js/blocks/EnsembleBlocks.js:402 +msgid "name1" msgstr "" -#: js/ActionBlocks.js:390 -#: js/ActionBlocks.js:610 -#: js/ActionBlocks.js:959 -#: js/ActionBlocks.js:1048 -#: js/MeterBlocks.js:769 -msgid "do1" +#: js/blocks/BoxesBlocks.js:652 +msgid "The Box2 block returns the value stored in Box2." msgstr "" -#: js/ActionBlocks.js:390 -#: js/ActionBlocks.js:610 -#: js/ActionBlocks.js:959 -#: js/ActionBlocks.js:1048 -#: js/FlowBlocks.js:742 -#: js/FlowBlocks.js:822 -#: js/MeterBlocks.js:769 -msgid "do" +#: js/blocks/BoxesBlocks.js:703 +msgid "The Store in Box2 block is used to store a value in Box2." msgstr "" -#: js/ActionBlocks.js:791 -#: js/ActionBlocks.js:865 -msgid "The Arg block contains the value of an argument passed to an action." +#: js/blocks/BoxesBlocks.js:715 +msgid "store in box2" msgstr "" -#: js/ActionBlocks.js:806 -#: js/ActionBlocks.js:878 -msgid "arg" +#: js/blocks/BoxesBlocks.js:761 +msgid "The Box1 block returns the value stored in Box1." msgstr "" -#: js/ActionBlocks.js:836 -#: js/ActionBlocks.js:900 -#: js/ActionBlocks.js:908 -msgid "Invalid argument" +#: js/blocks/BoxesBlocks.js:812 +msgid "The Store in Box1 block is used to store a value in Box1." msgstr "" -#: js/ActionBlocks.js:944 -msgid "In the example, it is used with the One of block to choose a random phase." +#: js/blocks/BoxesBlocks.js:826 +msgid "store in box1" msgstr "" -#: js/ActionBlocks.js:1019 -#: js/ActionBlocks.js:1026 -msgid "The Listen block is used to listen for an event such as a mouse click." +#: js/blocks/DictBlocks.js:77 +msgid "show dictionary" msgstr "" -#: js/ActionBlocks.js:1028 -msgid "When the event happens, an action is taken." +#: js/blocks/DictBlocks.js:80 +#: js/blocks/DictBlocks.js:145 +#: js/blocks/DictBlocks.js:216 +#: js/blocks/DictBlocks.js:290 +#: js/blocks/ProgramBlocks.js:396 +#: js/blocks/ProgramBlocks.js:501 +#: js/blocks/ProgramBlocks.js:664 +msgid "My Dictionary" msgstr "" -#: js/ActionBlocks.js:1045 -msgid "on" +#: js/blocks/DictBlocks.js:129 +msgid "The Dictionary block returns a dictionary." msgstr "" -#: js/ActionBlocks.js:1048 -#: js/ActionBlocks.js:1049 -#: js/ActionBlocks.js:1153 -msgid "event" +#: js/blocks/DictBlocks.js:197 +#: js/blocks/DictBlocks.js:339 +msgid "The Get-dict block returns a value in the dictionary for a specified key." msgstr "" -#: js/ActionBlocks.js:1133 -msgid "The Broadcast block is used to trigger an event." +#: js/blocks/DictBlocks.js:212 +#: js/blocks/DictBlocks.js:354 +#.TRANS: retrieve a value from the dictionary with a given key +msgid "get value" msgstr "" -#: js/ActionBlocks.js:1151 -msgid "broadcast" +#: js/blocks/DictBlocks.js:215 +#: js/blocks/DictBlocks.js:216 +#: js/blocks/DictBlocks.js:289 +#: js/blocks/DictBlocks.js:290 +#: js/blocks/DictBlocks.js:357 +#: js/blocks/DictBlocks.js:430 +#: js/blocks/DictBlocks.js:431 +msgid "key2" msgstr "" -#: js/ActionBlocks.js:1208 -msgid "Each Start block is a separate voice." +#: js/blocks/DictBlocks.js:215 +#: js/blocks/DictBlocks.js:216 +#: js/blocks/DictBlocks.js:289 +#: js/blocks/DictBlocks.js:290 +#: js/blocks/DictBlocks.js:357 +#: js/blocks/DictBlocks.js:430 +#: js/blocks/DictBlocks.js:431 +#: js/blocks/IntervalsBlocks.js:1462 +#.TRANS: key, e.g., C in C Major +msgid "key" msgstr "" -#: js/ActionBlocks.js:1304 -msgid "It is often used for storing a phrase of music that is repeated." +#: js/blocks/DictBlocks.js:271 +#: js/blocks/DictBlocks.js:411 +msgid "The Set-dict block sets a value in the dictionary for a specified key." msgstr "" -#: js/ActionBlocks.js:1495 -msgid "define temperament" +#: js/blocks/DictBlocks.js:286 +#: js/blocks/DictBlocks.js:427 +#.TRANS: set a value in the dictionary for a given key +msgid "set value" msgstr "" -#: js/EnsembleBlocks.js:66 +#: js/blocks/EnsembleBlocks.js:66 msgid "mouse index heap" msgstr "" -#: js/EnsembleBlocks.js:68 +#: js/blocks/EnsembleBlocks.js:68 msgid "The Mouse index heap block returns a value in the heap at a specified location for a specified mouse." msgstr "" -#: js/EnsembleBlocks.js:77 -#: js/EnsembleBlocks.js:1080 +#: js/blocks/EnsembleBlocks.js:77 +#: js/blocks/EnsembleBlocks.js:1080 msgid "mouse name" msgstr "" -#: js/EnsembleBlocks.js:77 -#: js/EnsembleBlocks.js:92 -#: js/HeapBlocks.js:544 +#: js/blocks/EnsembleBlocks.js:77 +#: js/blocks/EnsembleBlocks.js:92 +#: js/blocks/HeapBlocks.js:544 #.TRANS: value1 is a numeric value (JAPANESE ONLY) msgid "index" msgstr "" -#: js/EnsembleBlocks.js:80 +#: js/blocks/EnsembleBlocks.js:80 msgid "turtle index heap" msgstr "" -#: js/EnsembleBlocks.js:82 +#: js/blocks/EnsembleBlocks.js:82 msgid "The Turtle index heap block returns a value in the heap at a specified location for a specified turtle." msgstr "" -#: js/EnsembleBlocks.js:90 -#: js/EnsembleBlocks.js:167 -#: js/EnsembleBlocks.js:230 -#: js/EnsembleBlocks.js:316 -#: js/EnsembleBlocks.js:362 -#: js/EnsembleBlocks.js:400 -#: js/EnsembleBlocks.js:454 -#: js/EnsembleBlocks.js:504 -#: js/EnsembleBlocks.js:550 -#: js/EnsembleBlocks.js:597 -#: js/EnsembleBlocks.js:651 -#: js/EnsembleBlocks.js:763 -#: js/EnsembleBlocks.js:854 -#: js/EnsembleBlocks.js:915 -#: js/EnsembleBlocks.js:955 -#: js/EnsembleBlocks.js:1219 -#: js/EnsembleBlocks.js:1293 +#: js/blocks/EnsembleBlocks.js:90 +#: js/blocks/EnsembleBlocks.js:167 +#: js/blocks/EnsembleBlocks.js:230 +#: js/blocks/EnsembleBlocks.js:316 +#: js/blocks/EnsembleBlocks.js:362 +#: js/blocks/EnsembleBlocks.js:400 +#: js/blocks/EnsembleBlocks.js:454 +#: js/blocks/EnsembleBlocks.js:504 +#: js/blocks/EnsembleBlocks.js:550 +#: js/blocks/EnsembleBlocks.js:597 +#: js/blocks/EnsembleBlocks.js:651 +#: js/blocks/EnsembleBlocks.js:763 +#: js/blocks/EnsembleBlocks.js:854 +#: js/blocks/EnsembleBlocks.js:915 +#: js/blocks/EnsembleBlocks.js:955 +#: js/blocks/EnsembleBlocks.js:1219 +#: js/blocks/EnsembleBlocks.js:1293 #.TRANS: Yertle is the name of a turtle. msgid "Yertle" msgstr "" -#: js/EnsembleBlocks.js:92 -#: js/EnsembleBlocks.js:1089 +#: js/blocks/EnsembleBlocks.js:92 +#: js/blocks/EnsembleBlocks.js:1089 msgid "turtle name" msgstr "" -#: js/EnsembleBlocks.js:122 -#: js/EnsembleBlocks.js:1197 -#: js/HeapBlocks.js:474 -#: js/HeapBlocks.js:572 +#: js/blocks/EnsembleBlocks.js:122 +#: js/blocks/EnsembleBlocks.js:1197 +#: js/blocks/HeapBlocks.js:474 +#: js/blocks/HeapBlocks.js:572 msgid "Index must be > 0." msgstr "" -#: js/EnsembleBlocks.js:127 -#: js/HeapBlocks.js:479 -#: js/HeapBlocks.js:577 +#: js/blocks/EnsembleBlocks.js:127 +#: js/blocks/HeapBlocks.js:479 +#: js/blocks/HeapBlocks.js:577 msgid "Maximum heap size is 1000." msgstr "" -#: js/EnsembleBlocks.js:145 +#: js/blocks/EnsembleBlocks.js:145 msgid "stop mouse" msgstr "" -#: js/EnsembleBlocks.js:147 +#: js/blocks/EnsembleBlocks.js:147 msgid "The Stop mouse block stops the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:158 +#: js/blocks/EnsembleBlocks.js:158 msgid "stop turtle" msgstr "" -#: js/EnsembleBlocks.js:160 +#: js/blocks/EnsembleBlocks.js:160 msgid "The Stop turtle block stops the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:184 -#: js/EnsembleBlocks.js:247 -#: js/EnsembleBlocks.js:413 -#: js/EnsembleBlocks.js:468 -#: js/EnsembleBlocks.js:706 -#: js/EnsembleBlocks.js:808 -#: js/EnsembleBlocks.js:870 -#: js/EnsembleBlocks.js:1190 -#: js/EnsembleBlocks.js:1253 +#: js/blocks/EnsembleBlocks.js:184 +#: js/blocks/EnsembleBlocks.js:247 +#: js/blocks/EnsembleBlocks.js:413 +#: js/blocks/EnsembleBlocks.js:468 +#: js/blocks/EnsembleBlocks.js:706 +#: js/blocks/EnsembleBlocks.js:808 +#: js/blocks/EnsembleBlocks.js:870 +#: js/blocks/EnsembleBlocks.js:1190 +#: js/blocks/EnsembleBlocks.js:1253 msgid "Cannot find mouse" msgstr "" -#: js/EnsembleBlocks.js:186 -#: js/EnsembleBlocks.js:249 -#: js/EnsembleBlocks.js:415 -#: js/EnsembleBlocks.js:470 -#: js/EnsembleBlocks.js:708 -#: js/EnsembleBlocks.js:810 -#: js/EnsembleBlocks.js:872 -#: js/EnsembleBlocks.js:1192 -#: js/EnsembleBlocks.js:1255 +#: js/blocks/EnsembleBlocks.js:186 +#: js/blocks/EnsembleBlocks.js:249 +#: js/blocks/EnsembleBlocks.js:415 +#: js/blocks/EnsembleBlocks.js:470 +#: js/blocks/EnsembleBlocks.js:708 +#: js/blocks/EnsembleBlocks.js:810 +#: js/blocks/EnsembleBlocks.js:872 +#: js/blocks/EnsembleBlocks.js:1192 +#: js/blocks/EnsembleBlocks.js:1255 msgid "Cannot find turtle" msgstr "" -#: js/EnsembleBlocks.js:206 +#: js/blocks/EnsembleBlocks.js:206 msgid "start mouse" msgstr "" -#: js/EnsembleBlocks.js:209 +#: js/blocks/EnsembleBlocks.js:209 msgid "The Start mouse block starts the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:220 +#: js/blocks/EnsembleBlocks.js:220 msgid "start turtle" msgstr "" -#: js/EnsembleBlocks.js:223 +#: js/blocks/EnsembleBlocks.js:223 msgid "The Start turtle block starts the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:256 +#: js/blocks/EnsembleBlocks.js:256 msgid "Mouse is already running." msgstr "" -#: js/EnsembleBlocks.js:258 +#: js/blocks/EnsembleBlocks.js:258 msgid "Turtle is already running." msgstr "" -#: js/EnsembleBlocks.js:282 +#: js/blocks/EnsembleBlocks.js:282 msgid "Cannot find start block" msgstr "" -#: js/EnsembleBlocks.js:292 +#: js/blocks/EnsembleBlocks.js:292 #.TRANS: pen color for this mouse msgid "mouse color" msgstr "" -#: js/EnsembleBlocks.js:294 +#: js/blocks/EnsembleBlocks.js:294 msgid "The Mouse color block returns the pen color of the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:306 +#: js/blocks/EnsembleBlocks.js:306 #.TRANS: pen color for this turtle msgid "turtle color" msgstr "" -#: js/EnsembleBlocks.js:308 +#: js/blocks/EnsembleBlocks.js:308 msgid "The Turtle color block returns the pen color of the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:338 +#: js/blocks/EnsembleBlocks.js:338 #.TRANS: heading (compass direction) for this mouse msgid "mouse heading" msgstr "" -#: js/EnsembleBlocks.js:340 +#: js/blocks/EnsembleBlocks.js:340 msgid "The Mouse heading block returns the heading of the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:352 +#: js/blocks/EnsembleBlocks.js:352 #.TRANS: heading (compass direction) for this turtle msgid "turtle heading" msgstr "" -#: js/EnsembleBlocks.js:354 +#: js/blocks/EnsembleBlocks.js:354 msgid "The Turtle heading block returns the heading of the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:384 -#: js/EnsembleBlocks.js:439 +#: js/blocks/EnsembleBlocks.js:384 +#: js/blocks/EnsembleBlocks.js:439 #.TRANS: set xy position for this mouse msgid "set mouse" msgstr "" -#: js/EnsembleBlocks.js:391 -#: js/EnsembleBlocks.js:402 -#: js/BoxesBlocks.js:595 -msgid "name1" -msgstr "" - -#: js/EnsembleBlocks.js:391 -#: js/EnsembleBlocks.js:402 -#: js/ProgramBlocks.js:881 -#: js/GraphicsBlocks.js:235 -#: js/GraphicsBlocks.js:313 -#: js/GraphicsBlocks.js:436 -#: js/GraphicsBlocks.js:487 -#: js/GraphicsBlocks.js:534 -#: js/GraphicsBlocks.js:750 +#: js/blocks/EnsembleBlocks.js:391 +#: js/blocks/EnsembleBlocks.js:402 +#: js/blocks/GraphicsBlocks.js:235 +#: js/blocks/GraphicsBlocks.js:313 +#: js/blocks/GraphicsBlocks.js:436 +#: js/blocks/GraphicsBlocks.js:487 +#: js/blocks/GraphicsBlocks.js:534 +#: js/blocks/GraphicsBlocks.js:750 +#: js/blocks/ProgramBlocks.js:881 msgid "x" msgstr "" -#: js/EnsembleBlocks.js:391 -#: js/EnsembleBlocks.js:402 -#: js/ProgramBlocks.js:881 -#: js/GraphicsBlocks.js:149 -#: js/GraphicsBlocks.js:313 -#: js/GraphicsBlocks.js:436 -#: js/GraphicsBlocks.js:487 -#: js/GraphicsBlocks.js:534 -#: js/GraphicsBlocks.js:750 +#: js/blocks/EnsembleBlocks.js:391 +#: js/blocks/EnsembleBlocks.js:402 +#: js/blocks/GraphicsBlocks.js:149 +#: js/blocks/GraphicsBlocks.js:313 +#: js/blocks/GraphicsBlocks.js:436 +#: js/blocks/GraphicsBlocks.js:487 +#: js/blocks/GraphicsBlocks.js:534 +#: js/blocks/GraphicsBlocks.js:750 +#: js/blocks/ProgramBlocks.js:881 msgid "y" msgstr "" -#: js/EnsembleBlocks.js:395 -#: js/EnsembleBlocks.js:452 +#: js/blocks/EnsembleBlocks.js:395 +#: js/blocks/EnsembleBlocks.js:452 #.TRANS: set xy position for this turtle msgid "set turtle" msgstr "" -#: js/EnsembleBlocks.js:433 +#: js/blocks/EnsembleBlocks.js:433 msgid "The Set mouse block sends a stack of blocks to be run by the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:446 +#: js/blocks/EnsembleBlocks.js:446 msgid "The Set turtle block sends a stack of blocks to be run by the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:480 +#: js/blocks/EnsembleBlocks.js:480 #.TRANS: y position for this mouse msgid "mouse y" msgstr "" -#: js/EnsembleBlocks.js:482 +#: js/blocks/EnsembleBlocks.js:482 msgid "The Y mouse block returns the Y position of the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:494 +#: js/blocks/EnsembleBlocks.js:494 #.TRANS: y position for this turtle msgid "turtle y" msgstr "" -#: js/EnsembleBlocks.js:496 +#: js/blocks/EnsembleBlocks.js:496 msgid "The Y turtle block returns the Y position of the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:526 +#: js/blocks/EnsembleBlocks.js:526 #.TRANS: x position for this mouse msgid "mouse x" msgstr "" -#: js/EnsembleBlocks.js:528 +#: js/blocks/EnsembleBlocks.js:528 msgid "The X mouse block returns the X position of the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:540 +#: js/blocks/EnsembleBlocks.js:540 #.TRANS: x position for this turtle msgid "turtle x" msgstr "" -#: js/EnsembleBlocks.js:542 +#: js/blocks/EnsembleBlocks.js:542 msgid "The X turtle block returns the X position of the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:573 +#: js/blocks/EnsembleBlocks.js:573 #.TRANS: notes played by this mouse msgid "mouse notes played" msgstr "" -#: js/EnsembleBlocks.js:575 +#: js/blocks/EnsembleBlocks.js:575 msgid "The Mouse elapse notes block returns the number of notes played by the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:587 +#: js/blocks/EnsembleBlocks.js:587 #.TRANS: notes played by this turtle msgid "turtle notes played" msgstr "" -#: js/EnsembleBlocks.js:589 +#: js/blocks/EnsembleBlocks.js:589 msgid "The Turtle elapse notes block returns the number of notes played by the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:627 +#: js/blocks/EnsembleBlocks.js:627 #.TRANS: convert current note for this turtle to piano key (1-88) msgid "mouse pitch number" msgstr "" -#: js/EnsembleBlocks.js:629 +#: js/blocks/EnsembleBlocks.js:629 msgid "The Mouse pitch block returns the current pitch number being played by the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:641 +#: js/blocks/EnsembleBlocks.js:641 #.TRANS: convert current note for this turtle to piano key (1-88) msgid "turtle pitch number" msgstr "" -#: js/EnsembleBlocks.js:643 -msgid "The Turrle pitch block returns the current pitch number being played by the specified turtle." +#: js/blocks/EnsembleBlocks.js:643 +msgid "The Turtle pitch block returns the current pitch number being played by the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:747 -#: js/EnsembleBlocks.js:819 +#: js/blocks/EnsembleBlocks.js:747 +#: js/blocks/EnsembleBlocks.js:819 #.TRANS: note value is the duration of the note played by this mouse msgid "mouse note value" msgstr "" -#: js/EnsembleBlocks.js:757 +#: js/blocks/EnsembleBlocks.js:757 #.TRANS: note value is the duration of the note played by this turtle msgid "turtle note value" msgstr "" -#: js/EnsembleBlocks.js:830 +#: js/blocks/EnsembleBlocks.js:830 #.TRANS: sync is short for synchronization msgid "mouse sync" msgstr "" -#: js/EnsembleBlocks.js:832 +#: js/blocks/EnsembleBlocks.js:832 msgid "The Mouse sync block aligns the beat count between mice." msgstr "" -#: js/EnsembleBlocks.js:844 +#: js/blocks/EnsembleBlocks.js:844 #.TRANS: sync is short for synchronization msgid "turtle sync" msgstr "" -#: js/EnsembleBlocks.js:846 +#: js/blocks/EnsembleBlocks.js:846 msgid "The Turtle sync block aligns the beat count between turtles." msgstr "" -#: js/EnsembleBlocks.js:887 +#: js/blocks/EnsembleBlocks.js:887 msgid "The Found mouse block will return true if the specified mouse can be found." msgstr "" -#: js/EnsembleBlocks.js:893 +#: js/blocks/EnsembleBlocks.js:893 msgid "found mouse" msgstr "" -#: js/EnsembleBlocks.js:903 +#: js/blocks/EnsembleBlocks.js:903 msgid "The Found turtle block will return true if the specified turtle can be found." msgstr "" -#: js/EnsembleBlocks.js:909 +#: js/blocks/EnsembleBlocks.js:909 msgid "found turtle" msgstr "" -#: js/EnsembleBlocks.js:932 +#: js/blocks/EnsembleBlocks.js:932 msgid "new mouse" msgstr "" -#: js/EnsembleBlocks.js:934 +#: js/blocks/EnsembleBlocks.js:934 msgid "The New mouse block will create a new mouse." msgstr "" -#: js/EnsembleBlocks.js:945 +#: js/blocks/EnsembleBlocks.js:945 msgid "new turtle" msgstr "" -#: js/EnsembleBlocks.js:947 +#: js/blocks/EnsembleBlocks.js:947 msgid "The New turtle block will create a new turtle." msgstr "" -#: js/EnsembleBlocks.js:1011 +#: js/blocks/EnsembleBlocks.js:1011 msgid "set mouse color" msgstr "" -#: js/EnsembleBlocks.js:1014 +#: js/blocks/EnsembleBlocks.js:1014 msgid "The Set-mouse-color block is used to set the color of a mouse." msgstr "" -#: js/EnsembleBlocks.js:1020 +#: js/blocks/EnsembleBlocks.js:1020 msgid "set turtle color" msgstr "" -#: js/EnsembleBlocks.js:1023 +#: js/blocks/EnsembleBlocks.js:1023 msgid "The Set-turtle-color block is used to set the color of a turtle." msgstr "" -#: js/EnsembleBlocks.js:1083 +#: js/blocks/EnsembleBlocks.js:1083 msgid "The Mouse-name block returns the name of a mouse." msgstr "" -#: js/EnsembleBlocks.js:1092 +#: js/blocks/EnsembleBlocks.js:1092 msgid "The Turtle-name block returns the name of a turtle." msgstr "" -#: js/EnsembleBlocks.js:1115 +#: js/blocks/EnsembleBlocks.js:1115 msgid "mouse count" msgstr "" -#: js/EnsembleBlocks.js:1118 +#: js/blocks/EnsembleBlocks.js:1118 msgid "The Mouse-count block returns the number of mice." msgstr "" -#: js/EnsembleBlocks.js:1124 +#: js/blocks/EnsembleBlocks.js:1124 msgid "turtle count" msgstr "" -#: js/EnsembleBlocks.js:1127 +#: js/blocks/EnsembleBlocks.js:1127 msgid "The Turtle-count block returns the number of turtles." msgstr "" -#: js/EnsembleBlocks.js:1149 +#: js/blocks/EnsembleBlocks.js:1149 msgid "nth mouse name" msgstr "" -#: js/EnsembleBlocks.js:1152 +#: js/blocks/EnsembleBlocks.js:1152 msgid "The Nth-Mouse name block returns the name of the nth mouse." msgstr "" -#: js/EnsembleBlocks.js:1158 +#: js/blocks/EnsembleBlocks.js:1158 msgid "nth turtle name" msgstr "" -#: js/EnsembleBlocks.js:1161 +#: js/blocks/EnsembleBlocks.js:1161 msgid "The Nth-Turtle name block returns the name of the nth turtle." msgstr "" -#: js/EnsembleBlocks.js:1205 -#: js/EnsembleBlocks.js:1265 +#: js/blocks/EnsembleBlocks.js:1205 +#: js/blocks/EnsembleBlocks.js:1265 msgid "set name" msgstr "" -#: js/EnsembleBlocks.js:1214 -#: js/EnsembleBlocks.js:1221 +#: js/blocks/EnsembleBlocks.js:1214 +#: js/blocks/EnsembleBlocks.js:1221 msgid "source" msgstr "" -#: js/EnsembleBlocks.js:1214 -#: js/EnsembleBlocks.js:1221 +#: js/blocks/EnsembleBlocks.js:1214 +#: js/blocks/EnsembleBlocks.js:1221 msgid "target" msgstr "" -#: js/EnsembleBlocks.js:1271 +#: js/blocks/EnsembleBlocks.js:1271 msgid "The Set-name block is used to name a mouse." msgstr "" -#: js/EnsembleBlocks.js:1284 +#: js/blocks/EnsembleBlocks.js:1284 msgid "The Set-name block is used to name a turtle." msgstr "" -#: js/BooleanBlocks.js:44 -msgid "The Not block is the logical not operator." -msgstr "" - -#: js/BooleanBlocks.js:62 -msgid "not" -msgstr "" - -#: js/BooleanBlocks.js:134 -msgid "The And block is the logical and operator." -msgstr "" - -#: js/BooleanBlocks.js:152 -msgid "and" -msgstr "" - -#: js/BooleanBlocks.js:218 -msgid "The Or block is the logical or operator." -msgstr "" - -#: js/BooleanBlocks.js:236 -msgid "or" -msgstr "" - -#: js/BooleanBlocks.js:302 -msgid "The XOR block is the logical XOR operator." -msgstr "" - -#: js/BooleanBlocks.js:320 -msgid "xor" -msgstr "" - -#: js/BooleanBlocks.js:808 -msgid "The Equal block returns True if the two numbers are equal." -msgstr "" - -#: js/BooleanBlocks.js:909 -msgid "The Not-equal-to block returns True if the two numbers are not equal to each other." -msgstr "" - -#: js/BooleanBlocks.js:1008 -msgid "The Boolean block is used to specify true or false." -msgstr "" - -#: js/MediaBlocks.js:35 -#.TRANS: right side of the screen -msgid "right (screen)" -msgstr "" - -#: js/MediaBlocks.js:45 -#: js/MediaBlocks.js:56 -msgid "The Right block returns the position of the right of the canvas." -msgstr "" - -#: js/MediaBlocks.js:97 -#.TRANS: left side of the screen -msgid "left (screen)" -msgstr "" - -#: js/MediaBlocks.js:107 -#: js/MediaBlocks.js:118 -msgid "The Left block returns the position of the left of the canvas." -msgstr "" - -#: js/MediaBlocks.js:158 -msgid "top (screen)" -msgstr "" - -#: js/MediaBlocks.js:168 -#: js/MediaBlocks.js:179 -msgid "The Top block returns the position of the top of the canvas." -msgstr "" - -#: js/MediaBlocks.js:219 -msgid "bottom (screen)" +#: js/blocks/ExtrasBlocks.js:33 +msgid "fraction" msgstr "" -#: js/MediaBlocks.js:229 -#: js/MediaBlocks.js:240 -msgid "The Bottom block returns the position of the bottom of the canvas." +#: js/blocks/ExtrasBlocks.js:36 +msgid "Convert a float to a fraction" msgstr "" -#: js/MediaBlocks.js:282 -msgid "width" +#: js/blocks/ExtrasBlocks.js:93 +msgid "save as ABC" msgstr "" -#: js/MediaBlocks.js:291 -msgid "The Width block returns the width of the canvas." +#: js/blocks/ExtrasBlocks.js:96 +#: js/blocks/ExtrasBlocks.js:132 +#: js/blocks/ExtrasBlocks.js:168 +msgid "title" msgstr "" -#: js/MediaBlocks.js:325 -msgid "height" +#: js/blocks/ExtrasBlocks.js:129 +msgid "save as Lilypond" msgstr "" -#: js/MediaBlocks.js:334 -msgid "The Height block returns the height of the canvas." +#: js/blocks/ExtrasBlocks.js:165 +msgid "save as SVG" msgstr "" -#: js/MediaBlocks.js:369 -#.TRANS: stops playback of an audio recording -msgid "stop play" +#: js/blocks/ExtrasBlocks.js:216 +msgid "no background" msgstr "" -#: js/MediaBlocks.js:404 -#.TRANS: Erases the images and text -msgid "erase media" +#: js/blocks/ExtrasBlocks.js:219 +msgid "The No background block eliminates the background from the saved SVG output." msgstr "" -#: js/MediaBlocks.js:409 -msgid "The Erase Media block erases text and images." +#: js/blocks/ExtrasBlocks.js:247 +msgid "show blocks" msgstr "" -#: js/MediaBlocks.js:439 -#.TRANS: play an audio recording -msgid "play back" +#: js/blocks/ExtrasBlocks.js:249 +msgid "The Show blocks block shows the blocks." msgstr "" -#: js/MediaBlocks.js:487 -msgid "speak" +#: js/blocks/ExtrasBlocks.js:274 +msgid "hide blocks" msgstr "" -#: js/MediaBlocks.js:495 -msgid "The Speak block outputs to the text-to-speech synthesizer" +#: js/blocks/ExtrasBlocks.js:276 +msgid "The Hide blocks block hides the blocks." msgstr "" -#: js/MediaBlocks.js:546 -msgid "camera" +#: js/blocks/ExtrasBlocks.js:305 +#: js/blocks/ExtrasBlocks.js:338 +msgid "The Space block is used to add space between blocks." msgstr "" -#: js/MediaBlocks.js:551 -msgid "The Camera block connects a webcam to the Show block." +#: js/blocks/ExtrasBlocks.js:376 +msgid "wait" msgstr "" -#: js/MediaBlocks.js:574 -msgid "video" +#: js/blocks/ExtrasBlocks.js:379 +msgid "The Wait block pauses the program for a specified number of seconds." msgstr "" -#: js/MediaBlocks.js:579 -msgid "The Video block selects video for use with the Show block." +#: js/blocks/ExtrasBlocks.js:433 +#: plugins/facebook.rtp:30 +msgid "comment" msgstr "" -#: js/MediaBlocks.js:607 -msgid "The Open file block opens a file for use with the Show block." +#: js/blocks/ExtrasBlocks.js:469 +msgid "print" msgstr "" -#: js/MediaBlocks.js:645 -msgid "stop media" +#: js/blocks/ExtrasBlocks.js:476 +msgid "The Print block displays text at the top of the screen." msgstr "" -#: js/MediaBlocks.js:650 -msgid "The Stop media block stops audio or video playback." +#: js/blocks/ExtrasBlocks.js:582 +msgid "display grid" msgstr "" -#: js/MediaBlocks.js:679 -#: js/PitchBlocks.js:1539 -#: js/phrasemaker.js:822 -#: js/musickeyboard.js:1654 -#.TRANS: a measure of frequency: one cycle per second -msgid "hertz" +#: js/blocks/ExtrasBlocks.js:587 +msgid "The Display Grid Block changes the grid type" msgstr "" -#: js/MediaBlocks.js:692 -msgid "duration (ms)" +#: js/blocks/ExtrasBlocks.js:689 +#: js/blocks/ExtrasBlocks.js:708 +#: js/blocks/ExtrasBlocks.js:731 +#: js/blocks/ExtrasBlocks.js:754 +#: js/blocks/ExtrasBlocks.js:772 +#: js/blocks/ExtrasBlocks.js:791 +#: js/blocks/ExtrasBlocks.js:810 +#: js/blocks/ExtrasBlocks.js:829 +msgid "unknown" msgstr "" -#: js/MediaBlocks.js:728 -#.TRANS: translate a note into hertz, e.g., A4 -> 440HZ -msgid "note to frequency" +#: js/blocks/FlowBlocks.js:41 +msgid "The Backward block runs code in reverse order (Musical retrograde)." msgstr "" -#: js/MediaBlocks.js:736 -msgid "The To frequency block converts a pitch name and octave to Hertz." +#: js/blocks/FlowBlocks.js:48 +msgid "backward" msgstr "" -#: js/MediaBlocks.js:746 -#: js/PitchBlocks.js:656 -#: js/PitchBlocks.js:932 -#: js/PitchBlocks.js:1827 -#.TRANS: name2 is name as in name of pitch (JAPANESE ONLY) -msgid "name2" +#: js/blocks/FlowBlocks.js:124 +msgid "The Duplicate block will run each block multiple times." msgstr "" -#: js/MediaBlocks.js:812 -msgid "The Avatar block is used to change the appearance of the mouse." +#: js/blocks/FlowBlocks.js:136 +msgid "duplicate" msgstr "" -#: js/MediaBlocks.js:819 -msgid "The Avatar block is used to change the appearance of the turtle." +#: js/blocks/FlowBlocks.js:334 +msgid "The Default block is used inside of a Switch to define the default action." msgstr "" -#: js/MediaBlocks.js:831 -#: js/MediaBlocks.js:891 -#.TRANS: a media object -msgid "size" +#: js/blocks/FlowBlocks.js:342 +msgid "default" msgstr "" -#: js/MediaBlocks.js:831 -msgid "image" +#: js/blocks/FlowBlocks.js:361 +#: js/blocks/FlowBlocks.js:418 +msgid "The Case Block must be used inside of a Switch Block." msgstr "" -#: js/MediaBlocks.js:880 -msgid "The Show block is used to display text or images on the canvas." +#: js/blocks/FlowBlocks.js:389 +msgid "The Case block is used inside of a Switch to define matches." msgstr "" -#: js/MediaBlocks.js:888 -#.TRANS: show1 is show as in display an image or text on the screen. -msgid "show1" +#: js/blocks/FlowBlocks.js:397 +msgid "case" msgstr "" -#: js/MediaBlocks.js:891 -msgid "obj" +#: js/blocks/FlowBlocks.js:446 +msgid "The Switch block will run the code in the matching Case." msgstr "" -#: js/MediaBlocks.js:938 -msgid "The Media block is used to import an image." +#: js/blocks/FlowBlocks.js:454 +msgid "switch" msgstr "" -#: js/MediaBlocks.js:973 -msgid "The Text block holds a text string." +#: js/blocks/FlowBlocks.js:595 +msgid "The Stop block will stop a loop" msgstr "" -#: js/ProgramBlocks.js:33 -msgid "The Load-heap-from-app block loads the heap from a web page." +#: js/blocks/FlowBlocks.js:597 +msgid "Forever, Repeat, While, or Until." msgstr "" -#: js/ProgramBlocks.js:44 -#.TRANS: load the heap contents from a URL -msgid "load heap from App" +#: js/blocks/FlowBlocks.js:604 +#: js/widgets/timbre.js:417 +#: js/widgets/timbre.js:419 +#: js/widgets/musickeyboard.js:819 +#: js/widgets/musickeyboard.js:821 +#: js/widgets/phrasemaker.js:4202 +#: plugins/rodi.rtp:29 +#: plugins/rodi.rtp:73 +#: plugins/rodi.rtp:413 +msgid "stop" msgstr "" -#: js/ProgramBlocks.js:95 -msgid "Error parsing JSON data:" +#: js/blocks/FlowBlocks.js:653 +msgid "The Waitfor block will wait until the condition is true." msgstr "" -#: js/ProgramBlocks.js:100 -msgid "404: Page not found" +#: js/blocks/FlowBlocks.js:661 +msgid "wait for" msgstr "" -#: js/ProgramBlocks.js:133 -msgid "The Save-heap-to-app block saves the heap to a web page." +#: js/blocks/FlowBlocks.js:732 +msgid "The Until block will repeat until the condition is true." msgstr "" -#: js/ProgramBlocks.js:144 -#.TRANS: save the heap contents to a URL -msgid "save heap to App" +#: js/blocks/FlowBlocks.js:740 +msgid "until" msgstr "" -#: js/ProgramBlocks.js:189 -msgid "Cannot find a valid heap for" +#: js/blocks/FlowBlocks.js:742 +#: js/blocks/FlowBlocks.js:822 +msgid "do2" msgstr "" -#: js/ProgramBlocks.js:206 -msgid "The Load-heap block loads the heap from a file." +#: js/blocks/FlowBlocks.js:812 +msgid "The While block will repeat while the condition is true." msgstr "" -#: js/ProgramBlocks.js:217 -#.TRANS: load the heap from a file -msgid "load heap" +#: js/blocks/FlowBlocks.js:820 +msgid "while" msgstr "" -#: js/ProgramBlocks.js:270 -msgid "The file you selected does not contain a valid heap." +#: js/blocks/FlowBlocks.js:903 +#: js/blocks/FlowBlocks.js:968 +#: js/blocks/FlowBlocks.js:979 +msgid "In this example if the mouse button is pressed a snare drum will play." msgstr "" -#: js/ProgramBlocks.js:275 -msgid "The loadHeap block needs a loadFile block." +#: js/blocks/FlowBlocks.js:925 +#: js/blocks/FlowBlocks.js:988 +msgid "if" msgstr "" -#: js/ProgramBlocks.js:291 -msgid "The Set-heap block loads the heap." +#: js/blocks/FlowBlocks.js:927 +#: js/blocks/FlowBlocks.js:990 +msgid "then" msgstr "" -#: js/ProgramBlocks.js:299 -#: js/HeapBlocks.js:539 -#.TRANS: load the heap from a JSON encoding -msgid "set heap" +#: js/blocks/FlowBlocks.js:927 +msgid "else" msgstr "" -#: js/ProgramBlocks.js:340 -msgid "The block you selected does not contain a valid heap." +#: js/blocks/FlowBlocks.js:1025 +msgid "The Forever block will repeat the contained blocks forever." msgstr "" -#: js/ProgramBlocks.js:343 -msgid "The Set heap block needs a heap." +#: js/blocks/FlowBlocks.js:1037 +msgid "forever" msgstr "" -#: js/ProgramBlocks.js:360 -msgid "The Load-dictionary block loads a dictionary from a file." +#: js/blocks/FlowBlocks.js:1073 +msgid "The Repeat block will repeat the contained blocks." msgstr "" -#: js/ProgramBlocks.js:372 -#.TRANS: load a dictionary from a file -msgid "load dictionary" +#: js/blocks/FlowBlocks.js:1075 +msgid "In this example the note will be played 4 times." msgstr "" -#: js/ProgramBlocks.js:390 -#: js/ProgramBlocks.js:658 -#: js/ToneBlocks.js:1025 -msgid "file" +#: js/blocks/FlowBlocks.js:1083 +msgid "repeat" msgstr "" -#: js/ProgramBlocks.js:396 -#: js/ProgramBlocks.js:501 -#: js/ProgramBlocks.js:664 -#: js/DictBlocks.js:80 -#: js/DictBlocks.js:145 -#: js/DictBlocks.js:216 -#: js/DictBlocks.js:290 -msgid "My Dictionary" +#: js/blocks/FlowBlocks.js:1123 +msgid "duplicate factor" msgstr "" -#: js/ProgramBlocks.js:444 -msgid "The file you selected does not contain a valid dictionary." +#: js/blocks/HeapBlocks.js:49 +msgid "The Heap block returns the heap." msgstr "" -#: js/ProgramBlocks.js:449 -msgid "The load dictionary block needs a load file block." +#: js/blocks/HeapBlocks.js:133 +msgid "show heap" msgstr "" -#: js/ProgramBlocks.js:466 -msgid "The Set-dictionary block loads a dictionary." +#: js/blocks/HeapBlocks.js:181 +msgid "The Heap-length block returns the length of the heap." msgstr "" -#: js/ProgramBlocks.js:477 -#.TRANS: load a dictionary from a JSON -msgid "set dictionary" +#: js/blocks/HeapBlocks.js:195 +msgid "heap length" msgstr "" -#: js/ProgramBlocks.js:546 -msgid "The block you selected does not contain a valid dictionary." +#: js/blocks/HeapBlocks.js:254 +msgid "The Heap-empty? block returns true if the heap is empty." msgstr "" -#: js/ProgramBlocks.js:550 -msgid "The set dictionary block needs a dictionary." +#: js/blocks/HeapBlocks.js:268 +#.TRANS: Is the heap empty? +msgid "heap empty?" msgstr "" -#: js/ProgramBlocks.js:567 -msgid "The Save-heap block saves the heap to a file." +#: js/blocks/HeapBlocks.js:317 +msgid "The Empty-heap block empties the heap." msgstr "" -#: js/ProgramBlocks.js:578 -#.TRANS: save the heap to a file -msgid "save heap" +#: js/blocks/HeapBlocks.js:327 +#: js/blocks/HeapBlocks.js:647 +#.TRANS: empty the heap +msgid "empty heap" msgstr "" -#: js/ProgramBlocks.js:629 -msgid "The Save-dictionary block saves a dictionary to a file." +#: js/blocks/HeapBlocks.js:371 +msgid "The Reverse-heap block reverses the order of the heap." msgstr "" -#: js/ProgramBlocks.js:640 -#.TRANS: save a dictionary to a file -msgid "save dictionary" +#: js/blocks/HeapBlocks.js:384 +#.TRANS: reverse the order of the heap +msgid "reverse heap" msgstr "" -#: js/ProgramBlocks.js:720 -msgid "The Open palette block opens a palette." +#: js/blocks/HeapBlocks.js:428 +msgid "The Index-heap block returns a value in the heap at a specified location." msgstr "" -#: js/ProgramBlocks.js:727 -msgid "open palette" +#: js/blocks/HeapBlocks.js:443 +#.TRANS: retrieve a value from the heap at index position in the heap +msgid "index heap" msgstr "" -#: js/ProgramBlocks.js:785 -msgid "The Delete block block removes a block." +#: js/blocks/HeapBlocks.js:523 +msgid "The Set-heap entry block sets a value in he heap at the specified location." msgstr "" -#: js/ProgramBlocks.js:797 -#.TRANS: Move this block to the trash. -msgid "delete block" +#: js/blocks/HeapBlocks.js:539 +#: js/blocks/ProgramBlocks.js:299 +#.TRANS: load the heap from a JSON encoding +msgid "set heap" msgstr "" -#: js/ProgramBlocks.js:861 -msgid "The Move block block moves a block." +#: js/blocks/HeapBlocks.js:619 +msgid "The Pop block removes the value at the top of the heap." msgstr "" -#: js/ProgramBlocks.js:869 -#.TRANS: Move the position of a block on the screen. -msgid "move block" +#: js/blocks/HeapBlocks.js:633 +#.TRANS: pop a value off the top of the heap +msgid "pop" msgstr "" -#: js/ProgramBlocks.js:881 -#: js/ProgramBlocks.js:1048 -msgid "block number" +#: js/blocks/HeapBlocks.js:680 +msgid "The Push block adds a value to the top of the heap." msgstr "" -#: js/ProgramBlocks.js:935 -#.TRANS: Run program beginning at this block. -msgid "run block" +#: js/blocks/HeapBlocks.js:696 +#.TRANS: push a value onto the top of the heap +msgid "push" msgstr "" -#: js/ProgramBlocks.js:1025 -msgid "The Dock block block connections two blocks." +#: js/blocks/IntervalsBlocks.js:45 +msgid "set temperament" msgstr "" -#: js/ProgramBlocks.js:1036 -#.TRANS: We can connect a block to another block. -msgid "connect blocks" +#: js/blocks/IntervalsBlocks.js:63 +#: js/blocks/MediaBlocks.js:746 +#: js/blocks/PitchBlocks.js:657 +#: js/blocks/PitchBlocks.js:935 +#: js/blocks/PitchBlocks.js:974 +#: js/blocks/PitchBlocks.js:1007 +#: js/blocks/PitchBlocks.js:1194 +#: js/blocks/PitchBlocks.js:1717 +#: js/blocks/PitchBlocks.js:1758 +#: js/blocks/PitchBlocks.js:1866 +#: js/blocks/ToneBlocks.js:1025 +#: js/turtleactions/IntervalsActions.js:114 +#.TRANS: adjusts the shift up or down by one octave (twelve half-steps in the interval between two notes, one having twice or half the frequency in Hz of the other.) +msgid "octave" msgstr "" -#: js/ProgramBlocks.js:1048 -msgid "target block" +#: js/blocks/IntervalsBlocks.js:99 +msgid "The Temperament name block is used to select a tuning method." msgstr "" -#: js/ProgramBlocks.js:1048 -msgid "connection number" +#: js/blocks/IntervalsBlocks.js:161 +msgid "doubly" msgstr "" -#: js/ProgramBlocks.js:1140 -msgid "The Make block block creates a new block." +#: js/blocks/IntervalsBlocks.js:166 +msgid "The Doubly block will double the size of an interval." msgstr "" -#: js/ProgramBlocks.js:1152 -#.TRANS: Create a new block -msgid "make block" +#: js/blocks/IntervalsBlocks.js:262 +msgid "interval number" msgstr "" -#: js/ProgramBlocks.js:1186 -#: js/ProgramBlocks.js:1227 -#: js/RhythmBlocks.js:1128 -#: js/PitchBlocks.js:972 -#: js/PitchBlocks.js:1005 -#: js/temperament.js:340 -#: js/temperament.js:362 -#: js/temperament.js:372 -#: js/temperament.js:484 -#: js/status.js:190 -#: plugins/rodi.rtp:192 -#.TRANS: a musical note consisting of pitch and duration -msgid "note" +#: js/blocks/IntervalsBlocks.js:317 +msgid "current interval" msgstr "" -#: js/ProgramBlocks.js:1285 -msgid "Cannot find block" +#: js/blocks/IntervalsBlocks.js:387 +#.TRANS: measure the distance between two pitches in semi-tones +msgid "semi-tone interval measure" msgstr "" -#: js/ProgramBlocks.js:1304 -#: js/ProgramBlocks.js:1313 -msgid "Warning: block argument type mismatch" +#: js/blocks/IntervalsBlocks.js:454 +#: js/blocks/IntervalsBlocks.js:570 +msgid "You must use two pitch blocks when measuring an interval." msgstr "" -#: js/ProgramBlocks.js:1347 -msgid "The Open project block is used to open a project from a web page." +#: js/blocks/IntervalsBlocks.js:496 +msgid "The Scalar interval block measures the distance between two notes in the current key and mode." msgstr "" -#: js/ProgramBlocks.js:1357 -msgid "open project" +#: js/blocks/IntervalsBlocks.js:502 +#.TRANS: measure the distance between two pitches in steps of musical scale +msgid "scalar interval measure" msgstr "" -#: js/ProgramBlocks.js:1410 -msgid "Please enter a valid URL." +#: js/blocks/IntervalsBlocks.js:678 +msgid "In the figure, we add sol# to sol." msgstr "" -#: js/DrumBlocks.js:59 -msgid "The Noise name block is used to select a noise synthesizer." +#: js/blocks/IntervalsBlocks.js:684 +#: js/blocks/OrnamentBlocks.js:220 +#.TRANS: calculate a relative step between notes based on semi-tones +msgid "semi-tone interval" msgstr "" -#: js/DrumBlocks.js:102 -msgid "The Drum name block is used to select a drum." +#: js/blocks/IntervalsBlocks.js:733 +msgid "The output of the example is: do, mi, sol, sol, ti, mi" msgstr "" -#: js/DrumBlocks.js:146 -msgid "The Effects name block is used to select a sound effect." +#: js/blocks/IntervalsBlocks.js:740 +#: js/blocks/WidgetBlocks.js:768 +msgid "arpeggio" msgstr "" -#: js/DrumBlocks.js:163 -msgid "noise" +#: js/blocks/IntervalsBlocks.js:931 +msgid "The Chord block calculates common chords." msgstr "" -#: js/DrumBlocks.js:177 -msgid "The Play noise block will generate white, pink, or brown noise." +#: js/blocks/IntervalsBlocks.js:933 +msgid "In the figure, we generate a C-major chord." msgstr "" -#: js/DrumBlocks.js:191 -#: js/musicutils.js:752 -#: js/synthutils.js:47 -#.TRANS: white noise synthesizer -msgid "white noise" +#: js/blocks/IntervalsBlocks.js:938 +msgid "chord" msgstr "" -#: js/DrumBlocks.js:326 -msgid "Replace every instance of a pitch with a drum sound." +#: js/blocks/IntervalsBlocks.js:990 +msgid "The Ratio Interval block calculates an interval based on a ratio." msgstr "" -#: js/DrumBlocks.js:337 -#.TRANS: map a pitch to a drum sound -msgid "map pitch to drum" +#: js/blocks/IntervalsBlocks.js:995 +msgid "ratio interval" msgstr "" -#: js/DrumBlocks.js:404 -msgid "In the example above, a kick drum sound will be played instead of sol." +#: js/blocks/IntervalsBlocks.js:1064 +msgid "In the figure, we add la to sol." msgstr "" -#: js/DrumBlocks.js:416 -#.TRANS: set the current drum sound for playback -msgid "set drum" +#: js/blocks/IntervalsBlocks.js:1120 +#.TRANS: define a custom mode +msgid "define mode" msgstr "" -#: js/DrumBlocks.js:460 -msgid "sound effect" +#: js/blocks/IntervalsBlocks.js:1173 +msgid "movable Do" msgstr "" -#: js/DrumBlocks.js:498 -msgid "You can use multiple Drum blocks within a Note block." +#: js/blocks/IntervalsBlocks.js:1224 +#.TRANS: mode length is the number of notes in the mode, e.g., 7 for major and minor scales; 12 for chromatic scales +msgid "mode length" msgstr "" -#: js/RhythmBlocks.js:182 -#: js/RhythmBlocks.js:1086 -#: js/RhythmBlocks.js:1162 -msgid "Note value must be greater than 0." +#: js/blocks/IntervalsBlocks.js:1233 +msgid "The Mode length block is the number of notes in the current scale." msgstr "" -#: js/RhythmBlocks.js:215 -#: js/RhythmBlocks.js:278 -#: js/RhythmBlocks.js:350 -#.TRANS: swing is a rhythmic variation that emphasises the offbeat -msgid "swing" +#: js/blocks/IntervalsBlocks.js:1235 +msgid "Most Western scales have 7 notes." msgstr "" -#: js/RhythmBlocks.js:355 -#.TRANS: the amount to shift to the offbeat note -msgid "swing value" +#: js/blocks/IntervalsBlocks.js:1284 +#.TRANS: the mode in music is 'major', 'minor', etc. +msgid "current mode" msgstr "" -#: js/RhythmBlocks.js:419 -msgid "The Skip notes block will cause notes to be skipped." +#: js/blocks/IntervalsBlocks.js:1337 +#.TRANS: the key is a group of pitches with which a music composition is created +msgid "current key" msgstr "" -#: js/RhythmBlocks.js:427 -#.TRANS: substitute rests on notes being skipped -msgid "skip notes" +#: js/blocks/IntervalsBlocks.js:1389 +#: js/blocks/IntervalsBlocks.js:1434 +#.TRANS: set the key and mode, e.g. C Major +msgid "set key" msgstr "" -#: js/RhythmBlocks.js:489 -#.TRANS: speed up note duration by some factor, e.g. convert 1/4 to 1/8 notes by using a factor of 2 -msgid "multiply note value" +#: js/blocks/IntervalsBlocks.js:1443 +#: js/blocks/IntervalsBlocks.js:1449 +msgid "The Set key block is used to set the key and mode," msgstr "" -#: js/RhythmBlocks.js:542 -msgid "The Tie block works on pairs of notes, combining them into one note." +#: js/blocks/IntervalsBlocks.js:1449 +msgid "eg C Major" msgstr "" -#: js/RhythmBlocks.js:550 -#.TRANS: tie notes together into one longer note -msgid "tie" +#: js/blocks/MediaBlocks.js:35 +#.TRANS: right side of the screen +msgid "right (screen)" msgstr "" -#: js/RhythmBlocks.js:591 -#: js/RhythmBlocks.js:671 -#.TRANS: a dotted note is played for 1.5x its value, e.g., 1/8. --> 3/16 -msgid "dot" +#: js/blocks/MediaBlocks.js:45 +#: js/blocks/MediaBlocks.js:56 +msgid "The Right block returns the position of the right of the canvas." msgstr "" -#: js/RhythmBlocks.js:619 -#: js/RhythmActions.js:221 -msgid "An argument of -1 results in a note value of 0." +#: js/blocks/MediaBlocks.js:97 +#.TRANS: left side of the screen +msgid "left (screen)" msgstr "" -#: js/RhythmBlocks.js:661 -msgid "The Dot block extends the duration of a note by 50%." +#: js/blocks/MediaBlocks.js:107 +#: js/blocks/MediaBlocks.js:118 +msgid "The Left block returns the position of the left of the canvas." msgstr "" -#: js/RhythmBlocks.js:663 -msgid "Eg a dotted quarter note will play for 3/8 (1/4 + 1/8) of a beat." +#: js/blocks/MediaBlocks.js:158 +msgid "top (screen)" msgstr "" -#: js/RhythmBlocks.js:765 -#.TRANS: Japanese only: note value block for drum -msgid "note value drum" +#: js/blocks/MediaBlocks.js:168 +#: js/blocks/MediaBlocks.js:179 +msgid "The Top block returns the position of the top of the canvas." msgstr "" -#: js/RhythmBlocks.js:829 -msgid "392 hertz" +#: js/blocks/MediaBlocks.js:219 +msgid "bottom (screen)" msgstr "" -#: js/RhythmBlocks.js:1119 -msgid "The Note block is a container for one or more Pitch blocks." +#: js/blocks/MediaBlocks.js:229 +#: js/blocks/MediaBlocks.js:240 +msgid "The Bottom block returns the position of the bottom of the canvas." msgstr "" -#: js/RhythmBlocks.js:1121 -msgid "The Note block specifies the duration (note value) of its contents." +#: js/blocks/MediaBlocks.js:282 +msgid "width" msgstr "" -#: js/RhythmBlocks.js:1130 -msgid "value2" +#: js/blocks/MediaBlocks.js:291 +msgid "The Width block returns the width of the canvas." msgstr "" -#: js/RhythmBlocks.js:1200 -msgid "define frequency" +#: js/blocks/MediaBlocks.js:325 +msgid "height" msgstr "" -#: js/RhythmBlocks.js:1218 -#: js/temperament.js:650 -#: js/temperament.js:1421 -msgid "octave space" +#: js/blocks/MediaBlocks.js:334 +msgid "The Height block returns the height of the canvas." msgstr "" -#: js/NumberBlocks.js:28 -msgid "The Int block returns an integer." +#: js/blocks/MediaBlocks.js:369 +#.TRANS: stops playback of an audio recording +msgid "stop play" msgstr "" -#: js/NumberBlocks.js:34 -msgid "int" +#: js/blocks/MediaBlocks.js:404 +#.TRANS: Erases the images and text +msgid "erase media" msgstr "" -#: js/NumberBlocks.js:73 -msgid "The Mod block returns the remainder from a division." +#: js/blocks/MediaBlocks.js:409 +msgid "The Erase Media block erases text and images." msgstr "" -#: js/NumberBlocks.js:79 -msgid "mod" +#: js/blocks/MediaBlocks.js:439 +#.TRANS: play an audio recording +msgid "play back" msgstr "" -#: js/NumberBlocks.js:123 -msgid "The Power block calculates a power function." +#: js/blocks/MediaBlocks.js:487 +msgid "speak" msgstr "" -#: js/NumberBlocks.js:178 -msgid "The Sqrt block returns the square root." +#: js/blocks/MediaBlocks.js:495 +msgid "The Speak block outputs to the text-to-speech synthesizer" msgstr "" -#: js/NumberBlocks.js:184 -msgid "sqrt" +#: js/blocks/MediaBlocks.js:546 +msgid "camera" msgstr "" -#: js/NumberBlocks.js:230 -msgid "The Abs block returns the absolute value." +#: js/blocks/MediaBlocks.js:551 +msgid "The Camera block connects a webcam to the Show block." msgstr "" -#: js/NumberBlocks.js:236 -msgid "abs" +#: js/blocks/MediaBlocks.js:574 +msgid "video" msgstr "" -#: js/NumberBlocks.js:277 -msgid "The Distance block returns the distance between two points. For example, between the mouse and the center of the screen." +#: js/blocks/MediaBlocks.js:579 +msgid "The Video block selects video for use with the Show block." msgstr "" -#: js/NumberBlocks.js:283 -#: plugins/rodi.rtp:310 -msgid "distance" +#: js/blocks/MediaBlocks.js:607 +msgid "The Open file block opens a file for use with the Show block." msgstr "" -#: js/NumberBlocks.js:343 -msgid "The Divide block is used to divide." +#: js/blocks/MediaBlocks.js:645 +msgid "stop media" msgstr "" -#: js/NumberBlocks.js:411 -msgid "The Multiply block is used to multiply." +#: js/blocks/MediaBlocks.js:650 +msgid "The Stop media block stops audio or video playback." msgstr "" -#: js/NumberBlocks.js:554 -msgid "The Minus block is used to subtract." +#: js/blocks/MediaBlocks.js:679 +#: js/blocks/PitchBlocks.js:1577 +#: js/widgets/musickeyboard.js:1936 +#: js/widgets/phrasemaker.js:1037 +#.TRANS: a measure of frequency: one cycle per second +msgid "hertz" msgstr "" -#: js/NumberBlocks.js:647 -msgid "The Plus block is used to add." +#: js/blocks/MediaBlocks.js:692 +#: js/blocks/WidgetBlocks.js:182 +#: js/widgets/temperament.js:506 +#: js/widgets/temperament.js:546 +#: js/widgets/temperament.js:610 +#: js/widgets/temperament.js:618 +#: js/widgets/temperament.js:1505 +#: js/widgets/timbre.js:1842 +msgid "frequency" msgstr "" -#: js/NumberBlocks.js:773 -msgid "The One-of block returns one of two choices." +#: js/blocks/MediaBlocks.js:692 +msgid "duration (ms)" msgstr "" -#: js/NumberBlocks.js:780 -#: js/PitchBlocks.js:616 -msgid "one of" +#: js/blocks/MediaBlocks.js:728 +#.TRANS: translate a note into hertz, e.g., A4 -> 440HZ +msgid "note to frequency" msgstr "" -#: js/NumberBlocks.js:782 -msgid "this" +#: js/blocks/MediaBlocks.js:736 +msgid "The To frequency block converts a pitch name and octave to Hertz." msgstr "" -#: js/NumberBlocks.js:782 -msgid "that" +#: js/blocks/MediaBlocks.js:746 +#: js/blocks/PitchBlocks.js:656 +#: js/blocks/PitchBlocks.js:934 +#: js/blocks/PitchBlocks.js:1866 +#.TRANS: name2 is name as in name of pitch (JAPANESE ONLY) +msgid "name2" msgstr "" -#: js/NumberBlocks.js:837 -msgid "The Random block returns a random number." +#: js/blocks/MediaBlocks.js:812 +msgid "The Avatar block is used to change the appearance of the mouse." msgstr "" -#: js/NumberBlocks.js:844 -msgid "random" +#: js/blocks/MediaBlocks.js:819 +msgid "The Avatar block is used to change the appearance of the turtle." msgstr "" -#: js/NumberBlocks.js:846 -msgid "min" +#: js/blocks/MediaBlocks.js:831 +#: js/blocks/MediaBlocks.js:891 +#.TRANS: a media object +msgid "size" msgstr "" -#: js/NumberBlocks.js:846 -msgid "max" +#: js/blocks/MediaBlocks.js:831 +msgid "image" msgstr "" -#: js/NumberBlocks.js:910 -msgid "The Number block holds a number." +#: js/blocks/MediaBlocks.js:880 +msgid "The Show block is used to display text or images on the canvas." msgstr "" -#: js/BoxesBlocks.js:53 -#: js/BoxesBlocks.js:59 -msgid "The Add-to block is used to add to the value stored in a box." +#: js/blocks/MediaBlocks.js:888 +#.TRANS: show1 is show as in display an image or text on the screen. +msgid "show1" msgstr "" -#: js/BoxesBlocks.js:61 -msgid "It can also be used with other blocks such as Color and Pen size." +#: js/blocks/MediaBlocks.js:891 +msgid "obj" msgstr "" -#: js/BoxesBlocks.js:73 -msgid "add" +#: js/blocks/MediaBlocks.js:938 +msgid "The Media block is used to import an image." msgstr "" -#: js/BoxesBlocks.js:75 -#: js/temperament.js:716 -msgid "to" +#: js/blocks/MediaBlocks.js:973 +msgid "The Text block holds a text string." msgstr "" -#: js/BoxesBlocks.js:75 -#: js/BoxesBlocks.js:595 -#: js/HeapBlocks.js:544 -msgid "value1" +#: js/blocks/MeterBlocks.js:34 +#.TRANS: musical meter (time signature), e.g., 4:4 +msgid "current meter" msgstr "" -#: js/BoxesBlocks.js:118 -msgid "Block does not support incrementing." +#: js/blocks/MeterBlocks.js:85 +#.TRANS: number of beats per minute +msgid "beat factor" msgstr "" -#: js/BoxesBlocks.js:152 -msgid "The Add-1-to block adds one to the value stored in a box." +#: js/blocks/MeterBlocks.js:161 +msgid "The Beats per minute block returns the current beats per minute." msgstr "" -#: js/BoxesBlocks.js:163 -msgid "add 1 to" +#: js/blocks/MeterBlocks.js:169 +#: js/widgets/status.js:152 +#.TRANS: number of beats played per minute +msgid "beats per minute2" msgstr "" -#: js/BoxesBlocks.js:211 -msgid "The Subtract-1-from block subtracts one from the value stored in a box." +#: js/blocks/MeterBlocks.js:169 +#: js/blocks/MeterBlocks.js:1056 +#: js/blocks/MeterBlocks.js:1133 +#: js/blocks/MeterBlocks.js:1211 +#.TRANS: sets tempo by defining a beat and beats per minute +msgid "beats per minute" msgstr "" -#: js/BoxesBlocks.js:222 -msgid "subtract 1 from" +#: js/blocks/MeterBlocks.js:233 +#.TRANS: count of current musical measure in meter +msgid "measure count" msgstr "" -#: js/BoxesBlocks.js:270 -#: js/BoxesBlocks.js:387 -msgid "The Box block returns the value stored in a box." +#: js/blocks/MeterBlocks.js:241 +msgid "The Measure count block returns the current measure." msgstr "" -#: js/BoxesBlocks.js:500 -#: js/BoxesBlocks.js:576 -msgid "The Store in block will store a value in a box." +#: js/blocks/MeterBlocks.js:290 +#.TRANS: count of current beat in the meter +msgid "beat count" msgstr "" -#: js/BoxesBlocks.js:652 -msgid "The Box2 block returns the value stored in Box2." +#: js/blocks/MeterBlocks.js:300 +#: js/blocks/MeterBlocks.js:311 +#: js/blocks/MeterBlocks.js:565 +#: js/blocks/MeterBlocks.js:576 +msgid "The Beat count block is the number of the current beat," msgstr "" -#: js/BoxesBlocks.js:703 -msgid "The Store in Box2 block is used to store a value in Box2." +#: js/blocks/MeterBlocks.js:313 +#: js/blocks/MeterBlocks.js:578 +msgid "eg 1, 2, 3, or 4." msgstr "" -#: js/BoxesBlocks.js:715 -msgid "store in box2" +#: js/blocks/MeterBlocks.js:368 +#.TRANS: count the number of notes +msgid "sum note values" msgstr "" -#: js/BoxesBlocks.js:761 -msgid "The Box1 block returns the value stored in Box1." +#: js/blocks/MeterBlocks.js:376 +#: js/blocks/MeterBlocks.js:440 +msgid "The Note counter block can be used to count the number of contained notes." msgstr "" -#: js/BoxesBlocks.js:812 -msgid "The Store in Box1 block is used to store a value in Box1." +#: js/blocks/MeterBlocks.js:432 +#.TRANS: count the number of notes +msgid "note counter" msgstr "" -#: js/BoxesBlocks.js:826 -msgid "store in box1" +#: js/blocks/MeterBlocks.js:496 +#.TRANS: number of whole notes that have been played +msgid "whole notes played" msgstr "" -#: js/HeapBlocks.js:49 -msgid "The Heap block returns the heap." +#: js/blocks/MeterBlocks.js:505 +msgid "The Whole notes played block returns the total number of whole notes played." msgstr "" -#: js/HeapBlocks.js:133 -msgid "show heap" +#: js/blocks/MeterBlocks.js:555 +#: js/turtleactions/DictActions.js:83 +#.TRANS: number of notes that have been played +msgid "notes played" msgstr "" -#: js/HeapBlocks.js:181 -msgid "The Heap-length block returns the length of the heap." +#: js/blocks/MeterBlocks.js:653 +msgid "The No clock block decouples the notes from the master clock." msgstr "" -#: js/HeapBlocks.js:195 -msgid "heap length" +#: js/blocks/MeterBlocks.js:661 +#.TRANS: don't lock notes to master clock +msgid "no clock" msgstr "" -#: js/HeapBlocks.js:254 -msgid "The Heap-empty? block returns true if the heap is empty." +#: js/blocks/MeterBlocks.js:700 +msgid "on weak beat do" msgstr "" -#: js/HeapBlocks.js:268 -#.TRANS: Is the heap empty? -msgid "heap empty?" +#: js/blocks/MeterBlocks.js:705 +msgid "The On-weak-beat block lets you specify actions to take on weak (off) beats." msgstr "" -#: js/HeapBlocks.js:317 -msgid "The Empty-heap block empties the heap." +#: js/blocks/MeterBlocks.js:750 +msgid "on strong beat" msgstr "" -#: js/HeapBlocks.js:327 -#: js/HeapBlocks.js:647 -#.TRANS: empty the heap -msgid "empty heap" +#: js/blocks/MeterBlocks.js:758 +msgid "The On-strong-beat block lets you specify actions to take on specified beats." msgstr "" -#: js/HeapBlocks.js:371 -msgid "The Reverse-heap block reverses the order of the heap." +#: js/blocks/MeterBlocks.js:769 +msgid "beat" msgstr "" -#: js/HeapBlocks.js:384 -#.TRANS: reverse the order of the heap -msgid "reverse heap" +#: js/blocks/MeterBlocks.js:813 +msgid "on every beat do" msgstr "" -#: js/HeapBlocks.js:428 -msgid "The Index-heap block returns a value in the heap at a specified location." +#: js/blocks/MeterBlocks.js:821 +msgid "The On-every-beat block lets you specify actions to take on every beat." msgstr "" -#: js/HeapBlocks.js:443 -#.TRANS: retrieve a value from the heap at index position in the heap -msgid "index heap" +#: js/blocks/MeterBlocks.js:874 +msgid "on every note do" msgstr "" -#: js/HeapBlocks.js:523 -msgid "The Set-heap entry block sets a value in he heap at the specified location." +#: js/blocks/MeterBlocks.js:882 +msgid "The On-every-note block lets you specify actions to take on every note." msgstr "" -#: js/HeapBlocks.js:619 -msgid "The Pop block removes the value at the top of the heap." +#: js/blocks/MeterBlocks.js:928 +#: js/blocks/MeterBlocks.js:999 +#.TRANS: sets tempo by defining a beat and beats per minute +msgid "master beats per minute" msgstr "" -#: js/HeapBlocks.js:633 -#.TRANS: pop a value off the top of the heap -msgid "pop" +#: js/blocks/MeterBlocks.js:952 +#: js/blocks/MeterBlocks.js:1078 +#: js/blocks/MeterBlocks.js:1135 +msgid "bpm" msgstr "" -#: js/HeapBlocks.js:680 -msgid "The Push block adds a value to the top of the heap." +#: js/blocks/MeterBlocks.js:952 +#: js/blocks/MeterBlocks.js:1078 +#: js/blocks/MeterBlocks.js:1135 +msgid "beat value" msgstr "" -#: js/HeapBlocks.js:696 -#.TRANS: push a value onto the top of the heap -msgid "push" +#: js/blocks/MeterBlocks.js:1024 +#: js/blocks/MeterBlocks.js:1167 +#: js/blocks/MeterBlocks.js:1241 +msgid "Beats per minute must be > 30." msgstr "" -#: js/FlowBlocks.js:41 -msgid "The Backward block runs code in reverse order (Musical retrograde)." +#: js/blocks/MeterBlocks.js:1027 +#: js/blocks/MeterBlocks.js:1170 +#: js/blocks/MeterBlocks.js:1244 +msgid "Maximum beats per minute is 1000." msgstr "" -#: js/FlowBlocks.js:48 -msgid "backward" +#: js/blocks/MeterBlocks.js:1068 +msgid "The Beats per minute block sets the number of 1/4 notes per minute." msgstr "" -#: js/FlowBlocks.js:124 -msgid "The Duplicate block will run each block multiple times." +#: js/blocks/MeterBlocks.js:1279 +#.TRANS: anacrusis +msgid "pickup" msgstr "" -#: js/FlowBlocks.js:136 -msgid "duplicate" +#: js/blocks/MeterBlocks.js:1367 +msgid "number of beats" msgstr "" -#: js/FlowBlocks.js:334 -msgid "The Default block is used inside of a Switch to define the default action." +#: js/blocks/NumberBlocks.js:28 +msgid "The Int block returns an integer." msgstr "" -#: js/FlowBlocks.js:342 -msgid "default" +#: js/blocks/NumberBlocks.js:34 +msgid "int" msgstr "" -#: js/FlowBlocks.js:361 -#: js/FlowBlocks.js:418 -msgid "The Case Block must be used inside of a Switch Block." +#: js/blocks/NumberBlocks.js:73 +msgid "The Mod block returns the remainder from a division." msgstr "" -#: js/FlowBlocks.js:389 -msgid "The Case block is used inside of a Switch to define matches." +#: js/blocks/NumberBlocks.js:79 +msgid "mod" msgstr "" -#: js/FlowBlocks.js:397 -msgid "case" +#: js/blocks/NumberBlocks.js:141 +msgid "The Power block calculates a power function." msgstr "" -#: js/FlowBlocks.js:446 -msgid "The Switch block will run the code in the matching Case." +#: js/blocks/NumberBlocks.js:196 +msgid "The Sqrt block returns the square root." msgstr "" -#: js/FlowBlocks.js:454 -msgid "switch" +#: js/blocks/NumberBlocks.js:202 +msgid "sqrt" msgstr "" -#: js/FlowBlocks.js:595 -msgid "The Stop block will stop a loop" +#: js/blocks/NumberBlocks.js:248 +msgid "The Abs block returns the absolute value." msgstr "" -#: js/FlowBlocks.js:597 -msgid "Forever, Repeat, While, or Until." +#: js/blocks/NumberBlocks.js:254 +msgid "abs" msgstr "" -#: js/FlowBlocks.js:604 -#: js/phrasemaker.js:3799 -#: js/musickeyboard.js:629 -#: js/musickeyboard.js:631 -#: js/timbre.js:417 -#: js/timbre.js:419 -#: plugins/rodi.rtp:29 -#: plugins/rodi.rtp:73 -#: plugins/rodi.rtp:413 -msgid "stop" +#: js/blocks/NumberBlocks.js:295 +msgid "The Distance block returns the distance between two points. For example, between the mouse and the center of the screen." msgstr "" -#: js/FlowBlocks.js:653 -msgid "The Waitfor block will wait until the condition is true." +#: js/blocks/NumberBlocks.js:301 +#: plugins/rodi.rtp:310 +msgid "distance" msgstr "" -#: js/FlowBlocks.js:661 -msgid "wait for" +#: js/blocks/NumberBlocks.js:361 +msgid "The Divide block is used to divide." msgstr "" -#: js/FlowBlocks.js:732 -msgid "The Until block will repeat until the condition is true." +#: js/blocks/NumberBlocks.js:441 +msgid "The Multiply block is used to multiply." msgstr "" -#: js/FlowBlocks.js:740 -msgid "until" +#: js/blocks/NumberBlocks.js:612 +msgid "The Minus block is used to subtract." msgstr "" -#: js/FlowBlocks.js:742 -#: js/FlowBlocks.js:822 -msgid "do2" +#: js/blocks/NumberBlocks.js:723 +msgid "The Plus block is used to add." msgstr "" -#: js/FlowBlocks.js:812 -msgid "The While block will repeat while the condition is true." +#: js/blocks/NumberBlocks.js:849 +msgid "The One-of block returns one of two choices." msgstr "" -#: js/FlowBlocks.js:820 -msgid "while" +#: js/blocks/NumberBlocks.js:856 +#: js/blocks/PitchBlocks.js:616 +msgid "one of" msgstr "" -#: js/FlowBlocks.js:903 -#: js/FlowBlocks.js:968 -#: js/FlowBlocks.js:979 -msgid "In this example if the mouse button is pressed a snare drum will play." +#: js/blocks/NumberBlocks.js:858 +msgid "this" msgstr "" -#: js/FlowBlocks.js:925 -#: js/FlowBlocks.js:988 -msgid "if" +#: js/blocks/NumberBlocks.js:858 +msgid "that" msgstr "" -#: js/FlowBlocks.js:927 -#: js/FlowBlocks.js:990 -msgid "then" +#: js/blocks/NumberBlocks.js:913 +msgid "The Random block returns a random number." msgstr "" -#: js/FlowBlocks.js:927 -msgid "else" +#: js/blocks/NumberBlocks.js:920 +msgid "random" msgstr "" -#: js/FlowBlocks.js:1025 -msgid "The Forever block will repeat the contained blocks forever." +#: js/blocks/NumberBlocks.js:922 +msgid "min" msgstr "" -#: js/FlowBlocks.js:1037 -msgid "forever" +#: js/blocks/NumberBlocks.js:922 +msgid "max" msgstr "" -#: js/FlowBlocks.js:1073 -msgid "The Repeat block will repeat the contained blocks." +#: js/blocks/NumberBlocks.js:986 +msgid "The Number block holds a number." msgstr "" -#: js/FlowBlocks.js:1075 -msgid "In this example the note will be played 4 times." +#: js/blocks/OrnamentBlocks.js:32 +msgid "staccato factor" msgstr "" -#: js/FlowBlocks.js:1083 -msgid "repeat" +#: js/blocks/OrnamentBlocks.js:108 +msgid "slur factor" msgstr "" -#: js/FlowBlocks.js:1123 -msgid "duplicate factor" +#: js/blocks/OrnamentBlocks.js:217 +#: js/blocks/OrnamentBlocks.js:309 +#.TRANS: the neighbor refers to a neighboring note, e.g., D is a neighbor of C +msgid "neighbor" msgstr "" -#: js/PitchBlocks.js:39 -#: js/musicutils.js:722 -#: js/musicutils.js:1117 -#: js/synthutils.js:112 -#.TRANS: square wave -msgid "square" +#: js/blocks/OrnamentBlocks.js:293 +msgid "The Neighbor block rapidly switches between neighboring pitches." msgstr "" -#: js/PitchBlocks.js:62 -#: js/ToneBlocks.js:39 -#: js/musicutils.js:723 -#: js/musicutils.js:1118 -#: js/synthutils.js:116 -#.TRANS: triangle wave -msgid "triangle" +#: js/blocks/OrnamentBlocks.js:364 +msgid "glide" msgstr "" -#: js/PitchBlocks.js:85 -#: js/musicutils.js:721 -#: js/musicutils.js:1116 -#: js/synthutils.js:110 -#.TRANS: sine wave -msgid "sine" +#: js/blocks/OrnamentBlocks.js:479 +#: js/blocks/OrnamentBlocks.js:643 +msgid "slur" msgstr "" -#: js/PitchBlocks.js:108 -#: js/musicutils.js:724 -#: js/musicutils.js:1119 -#: js/synthutils.js:114 -#.TRANS: sawtooth wave -msgid "sawtooth" +#: js/blocks/OrnamentBlocks.js:558 +#: js/blocks/OrnamentBlocks.js:710 +#.TRANS: play each note sharply detached from the others +msgid "staccato" msgstr "" -#: js/PitchBlocks.js:141 -#.TRANS: musical transposition (adjustment of pitch up or down) -msgid "transposition" +#: js/blocks/RhythmBlocks.js:182 +#: js/blocks/RhythmBlocks.js:1086 +#: js/blocks/RhythmBlocks.js:1162 +msgid "Note value must be greater than 0." msgstr "" -#: js/PitchBlocks.js:168 -#.TRANS: step down one note in current musical scale -msgid "scalar step down" +#: js/blocks/RhythmBlocks.js:215 +#: js/blocks/RhythmBlocks.js:278 +#: js/blocks/RhythmBlocks.js:350 +#.TRANS: swing is a rhythmic variation that emphasises the offbeat +msgid "swing" msgstr "" -#: js/PitchBlocks.js:172 -msgid "The Scalar step down block returns the number of semi-tones down to the previous note in the current key and mode." +#: js/blocks/RhythmBlocks.js:355 +#.TRANS: the amount to shift to the offbeat note +msgid "swing value" msgstr "" -#: js/PitchBlocks.js:190 -#.TRANS: step up one note in current musical scale -msgid "scalar step up" +#: js/blocks/RhythmBlocks.js:419 +msgid "The Skip notes block will cause notes to be skipped." msgstr "" -#: js/PitchBlocks.js:194 -msgid "The Scalar step up block returns the number of semi-tones up to the next note in the current key and mode." +#: js/blocks/RhythmBlocks.js:427 +#.TRANS: substitute rests on notes being skipped +msgid "skip notes" msgstr "" -#: js/PitchBlocks.js:212 -#.TRANS: the change measured in half-steps between the current pitch and the previous pitch -msgid "change in pitch" +#: js/blocks/RhythmBlocks.js:489 +#.TRANS: speed up note duration by some factor, e.g. convert 1/4 to 1/8 notes by using a factor of 2 +msgid "multiply note value" msgstr "" -#: js/PitchBlocks.js:216 -msgid "The Change in pitch block is the difference (in half steps) between the current pitch being played and the previous pitch played." +#: js/blocks/RhythmBlocks.js:542 +msgid "The Tie block works on pairs of notes, combining them into one note." msgstr "" -#: js/PitchBlocks.js:243 -#.TRANS: the change measured in scale-steps between the current pitch and the previous pitch -msgid "scalar change in pitch" +#: js/blocks/RhythmBlocks.js:550 +#.TRANS: tie notes together into one longer note +msgid "tie" msgstr "" -#: js/PitchBlocks.js:250 -#: js/PitchBlocks.js:432 -#: js/PitchBlocks.js:1629 -#: js/DictActions.js:89 -#: js/temperament.js:477 -#: js/temperament.js:481 -#: js/temperament.js:714 -#.TRANS: convert current note to piano key (1-88) -#.TRANS: a mapping of pitch to the 88 piano keys -msgid "pitch number" +#: js/blocks/RhythmBlocks.js:591 +#: js/blocks/RhythmBlocks.js:671 +#.TRANS: a dotted note is played for 1.5x its value, e.g., 1/8. --> 3/16 +msgid "dot" msgstr "" -#: js/PitchBlocks.js:256 -msgid "The Pitch number block is the value of the pitch of the note currently being played." +#: js/blocks/RhythmBlocks.js:619 +#: js/turtleactions/RhythmActions.js:221 +msgid "An argument of -1 results in a note value of 0." msgstr "" -#: js/PitchBlocks.js:329 -#: js/PitchBlocks.js:433 -#.TRANS: the current pitch expressed in Hertz -msgid "pitch in hertz" +#: js/blocks/RhythmBlocks.js:661 +msgid "The Dot block extends the duration of a note by 50%." msgstr "" -#: js/PitchBlocks.js:334 -msgid "The Pitch in Hertz block is the value in Hertz of the pitch of the note currently being played." +#: js/blocks/RhythmBlocks.js:663 +msgid "Eg a dotted quarter note will play for 3/8 (1/4 + 1/8) of a beat." msgstr "" -#: js/PitchBlocks.js:367 -#: js/DictActions.js:87 -msgid "current pitch" +#: js/blocks/RhythmBlocks.js:765 +#.TRANS: Japanese only: note value block for drum +msgid "note value drum" msgstr "" -#: js/PitchBlocks.js:373 -msgid "The Current Pitch block is used with the Pitch Converter block. In the example above, current pitch, sol 4, is displayed as 392 hertz." +#: js/blocks/RhythmBlocks.js:829 +msgid "392 hertz" msgstr "" -#: js/PitchBlocks.js:410 -msgid "This block converts the pitch value of the last note played into different formats such as hertz, letter name, pitch number, et al." +#: js/blocks/RhythmBlocks.js:1119 +msgid "The Note block is a container for one or more Pitch blocks." msgstr "" -#: js/PitchBlocks.js:434 -msgid "alphabet" +#: js/blocks/RhythmBlocks.js:1121 +msgid "The Note block specifies the duration (note value) of its contents." msgstr "" -#: js/PitchBlocks.js:436 -#.TRANS: Translate as "alphabet class" -msgid "letter class" +#: js/blocks/RhythmBlocks.js:1128 +#: js/blocks/PitchBlocks.js:974 +#: js/blocks/PitchBlocks.js:1007 +#: js/blocks/ProgramBlocks.js:1186 +#: js/blocks/ProgramBlocks.js:1227 +#: js/widgets/status.js:190 +#: js/widgets/temperament.js:464 +#: js/widgets/temperament.js:486 +#: js/widgets/temperament.js:496 +#: js/widgets/temperament.js:617 +#: plugins/rodi.rtp:192 +#.TRANS: a musical note consisting of pitch and duration +msgid "note" msgstr "" -#: js/PitchBlocks.js:437 -msgid "solfege class" +#: js/blocks/RhythmBlocks.js:1130 +msgid "value2" msgstr "" -#: js/PitchBlocks.js:438 -msgid "staff y" +#: js/blocks/RhythmBlocks.js:1200 +msgid "define frequency" msgstr "" -#: js/PitchBlocks.js:439 -msgid "solfege syllable" +#: js/blocks/RhythmBlocks.js:1218 +#: js/widgets/temperament.js:787 +#: js/widgets/temperament.js:1587 +msgid "octave space" msgstr "" -#: js/PitchBlocks.js:440 -msgid "pitch class" +#: js/blocks/SensorsBlocks.js:36 +msgid "The Input block prompts for keyboard input." msgstr "" -#: js/PitchBlocks.js:441 -msgid "scalar class" +#: js/blocks/SensorsBlocks.js:46 +msgid "input" msgstr "" -#: js/PitchBlocks.js:443 -msgid "nth degree" +#: js/blocks/SensorsBlocks.js:64 +msgid "Input a value" msgstr "" -#: js/PitchBlocks.js:444 -msgid "pitch to shade" +#: js/blocks/SensorsBlocks.js:126 +msgid "input value" msgstr "" -#: js/PitchBlocks.js:445 -msgid "pitch to color" +#: js/blocks/SensorsBlocks.js:131 +msgid "The Input-value block stores the input." msgstr "" -#: js/PitchBlocks.js:629 -#: js/musickeyboard.js:565 -#.TRANS: MIDI is a technical standard for electronic music -msgid "MIDI" +#: js/blocks/SensorsBlocks.js:238 +msgid "loudness" msgstr "" -#: js/PitchBlocks.js:642 -#.TRANS: set an offset associated with the numeric piano keyboard mapping -msgid "set pitch number offset" +#: js/blocks/SensorsBlocks.js:245 +msgid "The Loudness block returns the volume detected by the microphone." msgstr "" -#: js/PitchBlocks.js:645 -msgid "The Set pitch number offset block is used to set the offset for mapping pitch numbers to pitch and octave." +#: js/blocks/SensorsBlocks.js:300 +msgid "click" msgstr "" -#: js/PitchBlocks.js:679 -#.TRANS: convert piano key number (1-88) to pitch -msgid "number to pitch" +#: js/blocks/SensorsBlocks.js:306 +msgid "The Click block triggers an event if a mouse has been clicked." msgstr "" -#: js/PitchBlocks.js:682 -msgid "The Number to pitch block will convert a pitch number to a pich name." +#: js/blocks/SensorsBlocks.js:313 +msgid "The Click block triggers an event if a turtle has been clicked." msgstr "" -#: js/PitchBlocks.js:715 -#.TRANS: convert piano key number (1-88) to octave -msgid "number to octave" +#: js/blocks/SensorsBlocks.js:342 +msgid "cursor over" msgstr "" -#: js/PitchBlocks.js:717 -msgid "The Number to octave block will convert a pitch number to an octave." +#: js/blocks/SensorsBlocks.js:387 +msgid "cursor out" msgstr "" -#: js/PitchBlocks.js:726 -msgid "y to pitch" +#: js/blocks/SensorsBlocks.js:433 +msgid "cursor button down" msgstr "" -#: js/PitchBlocks.js:729 -msgid "Y to pitch block will convert a staff y position to corresponding pitch notation." +#: js/blocks/SensorsBlocks.js:477 +msgid "cursor button up" msgstr "" -#: js/PitchBlocks.js:841 -msgid "accidental selector" +#: js/blocks/SensorsBlocks.js:521 +#: js/blocks/PenBlocks.js:48 +#: plugins/rodi.rtp:219 +msgid "blue" msgstr "" -#: js/PitchBlocks.js:844 -msgid "The Accidental selector block is used to choose between double-sharp, sharp, natural, flat, and double-flat." +#: js/blocks/SensorsBlocks.js:577 +#: js/blocks/PenBlocks.js:64 +#: plugins/rodi.rtp:218 +msgid "green" msgstr "" -#: js/PitchBlocks.js:858 -msgid "Pitch can be specified in terms of ni dha pa ma ga re sa." +#: js/blocks/SensorsBlocks.js:633 +#: js/blocks/PenBlocks.js:112 +#: plugins/rodi.rtp:217 +msgid "red" msgstr "" -#: js/PitchBlocks.js:872 -msgid "Pitch can be specified in terms of C D E F G A B." +#: js/blocks/SensorsBlocks.js:638 +msgid "The Get red block returns the red component of the pixel under the mouse." msgstr "" -#: js/PitchBlocks.js:883 -msgid "solfege" +#: js/blocks/SensorsBlocks.js:644 +msgid "The Get red block returns the red component of the pixel under the turtle." msgstr "" -#: js/PitchBlocks.js:886 -msgid "Pitch can be specified in terms of do re mi fa sol la ti." +#: js/blocks/SensorsBlocks.js:685 +#: plugins/rodi.rtp:216 +msgid "pixel color" msgstr "" -#: js/PitchBlocks.js:920 -msgid "The Invert block rotates any contained notes around a target note." +#: js/blocks/SensorsBlocks.js:690 +msgid "The Get pixel block returns the color of the pixel under the mouse." msgstr "" -#: js/PitchBlocks.js:927 -#.TRANS: pitch inversion rotates a pitch around another pitch -msgid "invert" +#: js/blocks/SensorsBlocks.js:696 +msgid "The Get pixel block returns the color of the pixel under the turtle." msgstr "" -#: js/PitchBlocks.js:929 -#: js/PitchBlocks.js:935 -#: js/PitchActions.js:727 -#: js/musicutils.js:726 -#: js/musicutils.js:902 -#.TRANS: invert based on even or odd number or musical scale -#.TRANS: even numbers -msgid "even" +#: js/blocks/SensorsBlocks.js:758 +msgid "time" msgstr "" -#: js/PitchBlocks.js:935 -#: js/PitchActions.js:729 -#: js/musicutils.js:728 -#: js/musicutils.js:903 -#.TRANS: odd numbers -msgid "odd" +#: js/blocks/SensorsBlocks.js:804 +msgid "cursor y" msgstr "" -#: js/PitchBlocks.js:935 -#: js/PitchActions.js:731 -#: js/musicutils.js:729 -#: js/musicutils.js:904 -msgid "scalar" +#: js/blocks/SensorsBlocks.js:809 +msgid "The Cursor Y block returns the vertical position of the mouse." msgstr "" -#: js/PitchBlocks.js:966 -#.TRANS: pitch inversion rotates a pitch around another pitch (odd number) -msgid "invert (odd)" +#: js/blocks/SensorsBlocks.js:845 +msgid "cursor x" msgstr "" -#: js/PitchBlocks.js:999 -#.TRANS: pitch inversion rotates a pitch around another pitch (even number) -msgid "invert (even)" +#: js/blocks/SensorsBlocks.js:850 +msgid "The Cursor X block returns the horizontal position of the mouse." msgstr "" -#: js/PitchBlocks.js:1020 -#.TRANS: register is the octave of the current pitch -msgid "register" +#: js/blocks/SensorsBlocks.js:886 +msgid "mouse button" msgstr "" -#: js/PitchBlocks.js:1024 -msgid "The Register block provides an easy way to modify the register (octave) of the notes that follow it." +#: js/blocks/SensorsBlocks.js:888 +msgid "The Mouse-button block returns True if the mouse button is pressed." msgstr "" -#: js/PitchBlocks.js:1074 -msgid "The Semi-tone transposition block will shift the pitches contained inside Note blocks up (or down) by half steps." +#: js/blocks/SensorsBlocks.js:934 +msgid "to ASCII" msgstr "" -#: js/PitchBlocks.js:1076 -msgid "In the example shown above, sol is shifted up to sol#." +#: js/blocks/SensorsBlocks.js:938 +msgid "The To ASCII block converts numbers to letters." msgstr "" -#: js/PitchBlocks.js:1082 -#.TRANS: adjust the amount of shift (up or down) of a pitch -msgid "semi-tone transpose" +#: js/blocks/SensorsBlocks.js:1005 +msgid "The Keyboard block returns computer keyboard input." msgstr "" -#: js/PitchBlocks.js:1115 -msgid "The Transpose by Ratio block will shift the pitches contained inside Note blocks up (or down) by a ratio" +#: js/blocks/RhythmBlockPaletteBlocks.js:50 +#: js/blocks/RhythmBlockPaletteBlocks.js:233 +#.TRANS: rhythm block +#.TRANS: translate "rhythm1" as rhythm +msgid "rhythm1" msgstr "" -#: js/PitchBlocks.js:1121 -#.TRANS: adjust the amount of shift (up or down) of a pitch -msgid "transpose by ratio" +#: js/blocks/RhythmBlockPaletteBlocks.js:70 +#: js/blocks/RhythmBlockPaletteBlocks.js:252 +#: js/blocks/RhythmBlockPaletteBlocks.js:485 +#: js/blocks/RhythmBlockPaletteBlocks.js:554 +#: js/blocks/RhythmBlockPaletteBlocks.js:875 +msgid "number of notes" msgstr "" -#: js/PitchBlocks.js:1204 -#.TRANS: down sixth means the note is five scale degrees below current note -msgid "down sixth" +#: js/blocks/RhythmBlockPaletteBlocks.js:126 +msgid "polyphonic rhythm" msgstr "" -#: js/PitchBlocks.js:1223 -#.TRANS: down third means the note is two scale degrees below current note -msgid "down third" +#: js/blocks/RhythmBlockPaletteBlocks.js:219 +msgid "The Rhythm block is used to generate rhythm patterns." msgstr "" -#: js/PitchBlocks.js:1242 -#.TRANS: seventh means the note is the six scale degrees above current note -msgid "seventh" +#: js/blocks/RhythmBlockPaletteBlocks.js:280 +msgid "1/64 note" msgstr "" -#: js/PitchBlocks.js:1261 -#.TRANS: sixth means the note is the five scale degrees above current note -msgid "sixth" +#: js/blocks/RhythmBlockPaletteBlocks.js:304 +msgid "1/32 note" msgstr "" -#: js/PitchBlocks.js:1280 -#.TRANS: fifth means the note is the four scale degrees above current note -msgid "fifth" +#: js/blocks/RhythmBlockPaletteBlocks.js:332 +msgid "1/16 note" msgstr "" -#: js/PitchBlocks.js:1300 -#.TRANS: fourth means the note is three scale degrees above current note -msgid "fourth" +#: js/blocks/RhythmBlockPaletteBlocks.js:360 +msgid "eighth note" msgstr "" -#: js/PitchBlocks.js:1319 -#.TRANS: third means the note is two scale degrees above current note -msgid "third" +#: js/blocks/RhythmBlockPaletteBlocks.js:388 +msgid "quarter note" msgstr "" -#: js/PitchBlocks.js:1338 -#.TRANS: second means the note is one scale degree above current note -msgid "second" +#: js/blocks/RhythmBlockPaletteBlocks.js:416 +msgid "half note" msgstr "" -#: js/PitchBlocks.js:1379 -msgid "The Scalar transposition block will shift the pitches contained inside Note blocks up (or down) the scale." +#: js/blocks/RhythmBlockPaletteBlocks.js:444 +msgid "whole note" msgstr "" -#: js/PitchBlocks.js:1381 -msgid "In the example shown above, sol is shifted up to la." +#: js/blocks/RhythmBlockPaletteBlocks.js:482 +#: js/blocks/RhythmBlockPaletteBlocks.js:551 +#: js/blocks/RhythmBlockPaletteBlocks.js:602 +#.TRANS: A tuplet is a note value divided into irregular time values. +msgid "tuplet" msgstr "" -#: js/PitchBlocks.js:1388 -#.TRANS: adjust the amount of shift (up or down) of a pitch by musical scale (scalar) steps -msgid "scalar transpose" +#: js/blocks/RhythmBlockPaletteBlocks.js:768 +msgid "septuplet" msgstr "" -#: js/PitchBlocks.js:1423 -msgid "The Accidental block is used to create sharps and flats" +#: js/blocks/RhythmBlockPaletteBlocks.js:796 +msgid "quintuplet" msgstr "" -#: js/PitchBlocks.js:1430 -#.TRANS: An accidental is a modification to a pitch, e.g., sharp or flat. -msgid "accidental override" +#: js/blocks/RhythmBlockPaletteBlocks.js:824 +msgid "triplet" msgstr "" -#: js/PitchBlocks.js:1543 -msgid "The Hertz block (in combination with a Number block) will play a sound at the specified frequency." +#: js/blocks/RhythmBlockPaletteBlocks.js:851 +msgid "simple tuplet" msgstr "" -#: js/PitchBlocks.js:1633 -msgid "The Pitch Number block will play a pitch associated by its number, e.g. 0 for C and 7 for G." +#: js/blocks/RhythmBlockPaletteBlocks.js:861 +msgid "Tuplets are a collection of notes that get scaled to a specific duration." msgstr "" -#: js/PitchBlocks.js:1665 -#: js/PitchBlocks.js:1707 -#.TRANS: a numeric mapping of the notes in an octave based on the musical mode -#.TRANS: a numeric mapping of the notes in an octave based on the musical mode -msgid "nth modal pitch" +#: js/blocks/DrumBlocks.js:59 +msgid "The Noise name block is used to select a noise synthesizer." msgstr "" -#: js/PitchBlocks.js:1668 -msgid "n^th Modal Pitch takes the pattern of pitches in semitones for a mode and makes each point a degree of the mode," +#: js/blocks/DrumBlocks.js:102 +msgid "The Drum name block is used to select a drum." msgstr "" -#: js/PitchBlocks.js:1670 -msgid "starting from 1 and regardless of tonal framework (i.e. not always 8 notes in the octave)" +#: js/blocks/DrumBlocks.js:146 +msgid "The Effects name block is used to select a sound effect." msgstr "" -#: js/PitchBlocks.js:1711 -msgid "N^th Modal Pitch takes a number as an input as the n^th degree for the given mode. 0 is the first position, 1 is the second, -1 is the note before the first etc." +#: js/blocks/DrumBlocks.js:163 +msgid "noise" msgstr "" -#: js/PitchBlocks.js:1713 -msgid "The pitches change according to the mode specified without any need for respellings." +#: js/blocks/DrumBlocks.js:177 +msgid "The Play noise block will generate white, pink, or brown noise." msgstr "" -#: js/PitchBlocks.js:1752 -msgid "Scale Degree is a common convention in music. Scale Degree offers seven possible positions in the scale (1-7) and can be modified via accidentals." +#: js/blocks/DrumBlocks.js:317 +msgid "Replace every instance of a pitch with a drum sound." msgstr "" -#: js/PitchBlocks.js:1754 -msgid "Scale Degree 1 is always the first pitch in a given scale, regardless of octave." +#: js/blocks/DrumBlocks.js:328 +#.TRANS: map a pitch to a drum sound +msgid "map pitch to drum" msgstr "" -#: js/PitchBlocks.js:1776 -#.TRANS: step some number of notes in current musical scale -msgid "scalar step" +#: js/blocks/DrumBlocks.js:395 +msgid "In the example above, a kick drum sound will be played instead of sol." msgstr "" -#: js/PitchBlocks.js:1781 -msgid "The Scalar Step block (in combination with a Number block) will play the next pitch in a scale," +#: js/blocks/DrumBlocks.js:407 +#.TRANS: set the current drum sound for playback +msgid "set drum" msgstr "" -#: js/PitchBlocks.js:1783 -msgid "eg if the last note played was sol, Scalar Step 1 will play la." +#: js/blocks/DrumBlocks.js:451 +msgid "sound effect" msgstr "" -#: js/PitchBlocks.js:1818 -msgid "The Pitch block specifies the pitch name and octave of a note that together determine the frequency of the note." +#: js/blocks/DrumBlocks.js:489 +msgid "You can use multiple Drum blocks within a Note block." msgstr "" -#: js/GraphicsBlocks.js:46 -#: js/DictActions.js:77 -#: js/DictActions.js:155 -#: js/DictActions.js:189 +#: js/blocks/GraphicsBlocks.js:46 +#: js/turtleactions/DictActions.js:77 +#: js/turtleactions/DictActions.js:144 +#: js/turtleactions/DictActions.js:173 msgid "heading" msgstr "" -#: js/GraphicsBlocks.js:56 +#: js/blocks/GraphicsBlocks.js:56 msgid "The Heading block returns the orientation of the mouse." msgstr "" -#: js/GraphicsBlocks.js:62 +#: js/blocks/GraphicsBlocks.js:62 msgid "The Heading block returns the orientation of the turtle." msgstr "" -#: js/GraphicsBlocks.js:133 +#: js/blocks/GraphicsBlocks.js:133 msgid "The Y block returns the vertical position of the mouse." msgstr "" -#: js/GraphicsBlocks.js:140 +#: js/blocks/GraphicsBlocks.js:140 msgid "The Y block returns the vertical position of the turtle." msgstr "" -#: js/GraphicsBlocks.js:149 +#: js/blocks/GraphicsBlocks.js:149 msgid "y3" msgstr "" -#: js/GraphicsBlocks.js:219 +#: js/blocks/GraphicsBlocks.js:219 msgid "The X block returns the horizontal position of the mouse." msgstr "" -#: js/GraphicsBlocks.js:226 +#: js/blocks/GraphicsBlocks.js:226 msgid "The X block returns the horizontal position of the turtle." msgstr "" -#: js/GraphicsBlocks.js:235 +#: js/blocks/GraphicsBlocks.js:235 msgid "x3" msgstr "" -#: js/GraphicsBlocks.js:295 +#: js/blocks/GraphicsBlocks.js:295 msgid "scroll xy" msgstr "" -#: js/GraphicsBlocks.js:303 +#: js/blocks/GraphicsBlocks.js:303 msgid "The Scroll XY block moves the canvas." msgstr "" -#: js/GraphicsBlocks.js:313 +#: js/blocks/GraphicsBlocks.js:313 msgid "x2" msgstr "" -#: js/GraphicsBlocks.js:313 +#: js/blocks/GraphicsBlocks.js:313 msgid "y2" msgstr "" -#: js/GraphicsBlocks.js:373 -#: js/temperament.js:213 -#: js/temperament.js:241 +#: js/blocks/GraphicsBlocks.js:373 +#: js/widgets/temperament.js:319 +#: js/widgets/temperament.js:347 msgid "clear" msgstr "" -#: js/GraphicsBlocks.js:426 +#: js/blocks/GraphicsBlocks.js:426 msgid "The Control-point 2 block sets the second control point for the Bezier curve." msgstr "" -#: js/GraphicsBlocks.js:433 +#: js/blocks/GraphicsBlocks.js:433 msgid "control point 2" msgstr "" -#: js/GraphicsBlocks.js:436 -#: js/GraphicsBlocks.js:487 -#: js/GraphicsBlocks.js:534 -#: js/GraphicsBlocks.js:750 +#: js/blocks/GraphicsBlocks.js:436 +#: js/blocks/GraphicsBlocks.js:487 +#: js/blocks/GraphicsBlocks.js:534 +#: js/blocks/GraphicsBlocks.js:750 msgid "x1" msgstr "" -#: js/GraphicsBlocks.js:436 -#: js/GraphicsBlocks.js:487 -#: js/GraphicsBlocks.js:534 -#: js/GraphicsBlocks.js:750 +#: js/blocks/GraphicsBlocks.js:436 +#: js/blocks/GraphicsBlocks.js:487 +#: js/blocks/GraphicsBlocks.js:534 +#: js/blocks/GraphicsBlocks.js:750 msgid "y1" msgstr "" -#: js/GraphicsBlocks.js:477 +#: js/blocks/GraphicsBlocks.js:477 msgid "The Control-point 1 block sets the first control point for the Bezier curve." msgstr "" -#: js/GraphicsBlocks.js:484 +#: js/blocks/GraphicsBlocks.js:484 msgid "control point 1" msgstr "" -#: js/GraphicsBlocks.js:527 +#: js/blocks/GraphicsBlocks.js:527 msgid "The Bezier block draws a Bezier curve." msgstr "" -#: js/GraphicsBlocks.js:531 +#: js/blocks/GraphicsBlocks.js:531 msgid "bezier" msgstr "" -#: js/GraphicsBlocks.js:592 +#: js/blocks/GraphicsBlocks.js:592 msgid "The Arc block moves the turtle in an arc." msgstr "" -#: js/GraphicsBlocks.js:600 +#: js/blocks/GraphicsBlocks.js:600 msgid "arc" msgstr "" -#: js/GraphicsBlocks.js:603 +#: js/blocks/GraphicsBlocks.js:603 msgid "angle" msgstr "" -#: js/GraphicsBlocks.js:603 +#: js/blocks/GraphicsBlocks.js:603 msgid "radius" msgstr "" -#: js/GraphicsBlocks.js:620 -#: js/GraphicsBlocks.js:767 -#: js/GraphicsBlocks.js:1010 -#: js/GraphicsBlocks.js:1093 +#: js/blocks/GraphicsBlocks.js:620 +#: js/blocks/GraphicsBlocks.js:767 +#: js/blocks/GraphicsBlocks.js:1010 +#: js/blocks/GraphicsBlocks.js:1093 msgid "Value must be within -5000 to 5000 when Wrap Mode is off." msgstr "" -#: js/GraphicsBlocks.js:622 -#: js/GraphicsBlocks.js:769 -#: js/GraphicsBlocks.js:1012 -#: js/GraphicsBlocks.js:1095 +#: js/blocks/GraphicsBlocks.js:622 +#: js/blocks/GraphicsBlocks.js:769 +#: js/blocks/GraphicsBlocks.js:1012 +#: js/blocks/GraphicsBlocks.js:1095 msgid "Value must be within -20000 to 20000 when Wrap Mode is on." msgstr "" -#: js/GraphicsBlocks.js:660 +#: js/blocks/GraphicsBlocks.js:660 msgid "set heading" msgstr "" -#: js/GraphicsBlocks.js:673 +#: js/blocks/GraphicsBlocks.js:673 msgid "The Set heading block sets the heading of the turtle." msgstr "" -#: js/GraphicsBlocks.js:733 +#: js/blocks/GraphicsBlocks.js:733 msgid "The Set XY block moves the mouse to a specific position on the screen." msgstr "" -#: js/GraphicsBlocks.js:739 +#: js/blocks/GraphicsBlocks.js:739 msgid "The Set XY block moves the turtle to a specific position on the screen." msgstr "" -#: js/GraphicsBlocks.js:747 +#: js/blocks/GraphicsBlocks.js:747 msgid "set xy" msgstr "" -#: js/GraphicsBlocks.js:819 +#: js/blocks/GraphicsBlocks.js:819 msgid "The Right block turns the mouse to the right." msgstr "" -#: js/GraphicsBlocks.js:826 +#: js/blocks/GraphicsBlocks.js:826 msgid "The Right block turns the turtle to the right." msgstr "" -#: js/GraphicsBlocks.js:835 +#: js/blocks/GraphicsBlocks.js:835 msgid "right1" msgstr "" -#: js/GraphicsBlocks.js:835 +#: js/blocks/GraphicsBlocks.js:835 #: plugins/rodi.rtp:77 #: plugins/rodi.rtp:340 #: plugins/rodi.rtp:375 msgid "right" msgstr "" -#: js/GraphicsBlocks.js:899 +#: js/blocks/GraphicsBlocks.js:899 msgid "The Left block turns the mouse to the left." msgstr "" -#: js/GraphicsBlocks.js:906 +#: js/blocks/GraphicsBlocks.js:906 msgid "The Left block turns the turtle to the left." msgstr "" -#: js/GraphicsBlocks.js:915 +#: js/blocks/GraphicsBlocks.js:915 msgid "left1" msgstr "" -#: js/GraphicsBlocks.js:915 +#: js/blocks/GraphicsBlocks.js:915 #: plugins/rodi.rtp:79 #: plugins/rodi.rtp:339 #: plugins/rodi.rtp:362 msgid "left" msgstr "" -#: js/GraphicsBlocks.js:967 -#: js/temperament.js:734 -#: js/temperament.js:933 +#: js/blocks/GraphicsBlocks.js:967 +#: js/widgets/temperament.js:875 +#: js/widgets/temperament.js:1078 #: plugins/rodi.rtp:69 #: plugins/rodi.rtp:387 msgid "back" msgstr "" -#: js/GraphicsBlocks.js:976 +#: js/blocks/GraphicsBlocks.js:976 msgid "The Back block moves the mouse backward." msgstr "" -#: js/GraphicsBlocks.js:983 +#: js/blocks/GraphicsBlocks.js:983 msgid "The Back block moves the turtle backward." msgstr "" -#: js/GraphicsBlocks.js:1050 +#: js/blocks/GraphicsBlocks.js:1050 #: plugins/rodi.rtp:71 #: plugins/rodi.rtp:400 msgid "forward" msgstr "" -#: js/GraphicsBlocks.js:1059 +#: js/blocks/GraphicsBlocks.js:1059 msgid "The Forward block moves the mouse forward." msgstr "" -#: js/GraphicsBlocks.js:1066 +#: js/blocks/GraphicsBlocks.js:1066 msgid "The Forward block moves the turtle forward." msgstr "" -#: js/GraphicsBlocks.js:1154 -#: js/GraphicsBlocks.js:1172 +#: js/blocks/GraphicsBlocks.js:1154 +#: js/blocks/GraphicsBlocks.js:1172 msgid "wrap" msgstr "" -#: js/OrnamentBlocks.js:32 -msgid "staccato factor" -msgstr "" - -#: js/OrnamentBlocks.js:108 -msgid "slur factor" -msgstr "" - -#: js/OrnamentBlocks.js:217 -#: js/OrnamentBlocks.js:309 -#.TRANS: the neighbor refers to a neighboring note, e.g., D is a neighbor of C -msgid "neighbor" -msgstr "" - -#: js/OrnamentBlocks.js:293 -msgid "The Neighbor block rapidly switches between neighboring pitches." -msgstr "" - -#: js/OrnamentBlocks.js:364 -msgid "glide" -msgstr "" - -#: js/OrnamentBlocks.js:479 -#: js/OrnamentBlocks.js:643 -msgid "slur" -msgstr "" - -#: js/OrnamentBlocks.js:558 -#: js/OrnamentBlocks.js:710 -#.TRANS: play each note sharply detached from the others -msgid "staccato" -msgstr "" - -#: js/PenBlocks.js:24 +#: js/blocks/PenBlocks.js:30 msgid "purple" msgstr "" -#: js/PenBlocks.js:37 -#: js/SensorsBlocks.js:521 -#: plugins/rodi.rtp:219 -msgid "blue" -msgstr "" - -#: js/PenBlocks.js:50 -#: js/SensorsBlocks.js:577 -#: plugins/rodi.rtp:218 -msgid "green" -msgstr "" - -#: js/PenBlocks.js:63 +#: js/blocks/PenBlocks.js:80 msgid "yellow" msgstr "" -#: js/PenBlocks.js:76 +#: js/blocks/PenBlocks.js:96 #: plugins/nutrition.rtp:164 msgid "orange" msgstr "" -#: js/PenBlocks.js:89 -#: js/SensorsBlocks.js:633 -#: plugins/rodi.rtp:217 -msgid "red" -msgstr "" - -#: js/PenBlocks.js:102 +#: js/blocks/PenBlocks.js:128 msgid "white" msgstr "" -#: js/PenBlocks.js:115 +#: js/blocks/PenBlocks.js:144 msgid "black" msgstr "" -#: js/PenBlocks.js:128 +#: js/blocks/PenBlocks.js:163 msgid "begin fill" msgstr "" -#: js/PenBlocks.js:143 +#: js/blocks/PenBlocks.js:190 msgid "end fill" msgstr "" -#: js/PenBlocks.js:159 -#: js/PenBlocks.js:386 +#: js/blocks/PenBlocks.js:212 +#: js/blocks/PenBlocks.js:560 #.TRANS: set the background color msgid "background" msgstr "" -#: js/PenBlocks.js:206 -#: js/DictActions.js:71 -#: js/DictActions.js:149 -#: js/DictActions.js:186 +#: js/blocks/PenBlocks.js:274 +#: js/turtleactions/DictActions.js:71 +#: js/turtleactions/DictActions.js:138 +#: js/turtleactions/DictActions.js:170 msgid "grey" msgstr "" -#: js/PenBlocks.js:210 +#: js/blocks/PenBlocks.js:282 msgid "The Grey block returns the current pen grey value." msgstr "" -#: js/PenBlocks.js:243 -#: js/DictActions.js:69 -#: js/DictActions.js:147 -#: js/DictActions.js:185 +#: js/blocks/PenBlocks.js:340 +#: js/turtleactions/DictActions.js:69 +#: js/turtleactions/DictActions.js:136 +#: js/turtleactions/DictActions.js:169 msgid "shade" msgstr "" -#: js/PenBlocks.js:247 +#: js/blocks/PenBlocks.js:347 msgid "The Shade block returns the current pen shade value." msgstr "" -#: js/PenBlocks.js:280 -#: js/DictActions.js:67 -#: js/DictActions.js:145 -#: js/DictActions.js:184 +#: js/blocks/PenBlocks.js:405 +#: js/turtleactions/DictActions.js:67 +#: js/turtleactions/DictActions.js:134 +#: js/turtleactions/DictActions.js:168 msgid "color" msgstr "" -#: js/PenBlocks.js:285 +#: js/blocks/PenBlocks.js:415 msgid "The Color block returns the current pen color." msgstr "" -#: js/PenBlocks.js:318 -#: js/DictActions.js:73 -#: js/DictActions.js:151 -#: js/DictActions.js:187 +#: js/blocks/PenBlocks.js:470 +#: js/turtleactions/DictActions.js:73 +#: js/turtleactions/DictActions.js:140 +#: js/turtleactions/DictActions.js:171 msgid "pen size" msgstr "" -#: js/PenBlocks.js:322 +#: js/blocks/PenBlocks.js:474 msgid "The Pen size block returns the current pen size value." msgstr "" -#: js/PenBlocks.js:355 +#: js/blocks/PenBlocks.js:513 msgid "set font" msgstr "" -#: js/PenBlocks.js:358 +#: js/blocks/PenBlocks.js:518 msgid "The Set font block sets the font used by the Show block." msgstr "" -#: js/PenBlocks.js:391 +#: js/blocks/PenBlocks.js:567 msgid "The Background block sets the window background color." msgstr "" -#: js/PenBlocks.js:408 +#: js/blocks/PenBlocks.js:598 msgid "The Hollow line block creates a line with a hollow center." msgstr "" -#: js/PenBlocks.js:415 +#: js/blocks/PenBlocks.js:606 #.TRANS: draw a line logo has a hollow space down its center msgid "hollow line" msgstr "" -#: js/PenBlocks.js:462 +#: js/blocks/PenBlocks.js:675 msgid "The Fill block fills in a shape with a color." msgstr "" -#: js/PenBlocks.js:470 +#: js/blocks/PenBlocks.js:684 #.TRANS: fill in as a solid color msgid "fill" msgstr "" -#: js/PenBlocks.js:527 +#: js/blocks/PenBlocks.js:761 #.TRANS: raise up the pen so logo it does not draw when it is moved msgid "pen up" msgstr "" -#: js/PenBlocks.js:532 +#: js/blocks/PenBlocks.js:768 msgid "The Pen-up block raises the pen so that it does not draw." msgstr "" -#: js/PenBlocks.js:552 +#: js/blocks/PenBlocks.js:802 #.TRANS: put down the pen so logo it draws when it is moved msgid "pen down" msgstr "" -#: js/PenBlocks.js:557 +#: js/blocks/PenBlocks.js:810 msgid "The Pen-down block lowers the pen so that it draws." msgstr "" -#: js/PenBlocks.js:577 +#: js/blocks/PenBlocks.js:844 #.TRANS: set the width of the line drawn by the pen msgid "set pen size" msgstr "" -#: js/PenBlocks.js:583 +#: js/blocks/PenBlocks.js:854 msgid "The Set-pen-size block changes the size of the pen." msgstr "" -#: js/PenBlocks.js:623 +#: js/blocks/PenBlocks.js:913 #.TRANS: set degree of translucence of the pen color msgid "set translucency" msgstr "" -#: js/PenBlocks.js:627 +#: js/blocks/PenBlocks.js:921 msgid "The Set translucency block changes the opacity of the pen." msgstr "" -#: js/PenBlocks.js:668 +#: js/blocks/PenBlocks.js:981 msgid "set hue" msgstr "" -#: js/PenBlocks.js:672 +#: js/blocks/PenBlocks.js:989 msgid "The Set hue block changes the color of the pen." msgstr "" -#: js/PenBlocks.js:711 +#: js/blocks/PenBlocks.js:1047 msgid "set shade" msgstr "" -#: js/PenBlocks.js:717 +#: js/blocks/PenBlocks.js:1057 msgid "The Set-shade block changes the pen color from dark to light." msgstr "" -#: js/PenBlocks.js:757 +#: js/blocks/PenBlocks.js:1111 #.TRANS: set the level of vividness of the pen color msgid "set grey" msgstr "" -#: js/PenBlocks.js:761 +#: js/blocks/PenBlocks.js:1119 msgid "The Set grey block changes the vividness of the pen color." msgstr "" -#: js/PenBlocks.js:800 +#: js/blocks/PenBlocks.js:1172 msgid "set color" msgstr "" -#: js/PenBlocks.js:806 +#: js/blocks/PenBlocks.js:1182 msgid "The Set-color block changes the pen color." msgstr "" -#: js/VolumeBlocks.js:35 -msgid "synth volume" -msgstr "" - -#: js/VolumeBlocks.js:39 -msgid "The Synth volume block returns the current volume of the current synthesizer." -msgstr "" - -#: js/VolumeBlocks.js:47 -#: js/musicutils.js:730 -#: js/synthutils.js:56 -#.TRANS: musical instrument -msgid "piano" -msgstr "" - -#: js/VolumeBlocks.js:105 -msgid "master volume" -msgstr "" - -#: js/VolumeBlocks.js:109 -msgid "The Master volume block returns the master volume." -msgstr "" - -#: js/VolumeBlocks.js:355 -#: js/VolumeBlocks.js:524 -msgid "set synth volume" -msgstr "" - -#: js/VolumeBlocks.js:362 -#: js/VolumeBlocks.js:545 -msgid "synth" -msgstr "" - -#: js/VolumeBlocks.js:403 -#: js/VolumeBlocks.js:577 -#: js/VolumeBlocks.js:740 -#: js/VolumeActions.js:173 -msgid "Setting volume to 0." -msgstr "" - -#: js/VolumeBlocks.js:440 -msgid "Synth not found" -msgstr "" - -#: js/VolumeBlocks.js:494 -msgid "set drum volume" -msgstr "" - -#: js/VolumeBlocks.js:530 -msgid "The Set synth volume block will change the volume of a particular synth," -msgstr "" - -#: js/VolumeBlocks.js:532 -msgid "eg guitar violin snare drum etc." -msgstr "" - -#: js/VolumeBlocks.js:534 -msgid "The default volume is 50." -msgstr "" - -#: js/VolumeBlocks.js:536 -msgid "The range is 0 for silence to 100 for full volume." -msgstr "" - -#: js/VolumeBlocks.js:597 -msgid "set panning" -msgstr "" - -#: js/VolumeBlocks.js:603 -msgid "The Set Panning block sets the panning for all synthesizers." -msgstr "" - -#: js/VolumeBlocks.js:625 -msgid "Warning: Sound is coming out from only the left or right side." -msgstr "" - -#: js/VolumeBlocks.js:647 -#: js/VolumeBlocks.js:695 -msgid "set master volume" -msgstr "" - -#: js/VolumeBlocks.js:653 -msgid "The Set master volume block sets the volume for all synthesizers." -msgstr "" - -#: js/VolumeBlocks.js:784 -msgid "The Set relative volume block changes the volume of the contained notes." -msgstr "" - -#: js/VolumeBlocks.js:791 -msgid "set relative volume" -msgstr "" - -#: js/VolumeBlocks.js:857 -msgid "decrescendo" -msgstr "" - -#: js/VolumeBlocks.js:921 -msgid "crescendo" -msgstr "" - -#: js/ToneBlocks.js:34 -msgid "oscillator" -msgstr "" - -#: js/ToneBlocks.js:44 -#: js/timbre.js:1562 -#.TRANS: Partials refers to the number of sine waves combined into the sound. -msgid "partials" -msgstr "" - -#: js/ToneBlocks.js:76 -msgid "You are adding multiple oscillator blocks." -msgstr "" - -#: js/ToneBlocks.js:144 -#: js/timbre.js:1225 -#.TRANS: a duo synthesizer combines a synth with a sequencer -msgid "duo synth" -msgstr "" - -#: js/ToneBlocks.js:149 -msgid "The Duo synth block is a duo-frequency modulator used to define a timbre." -msgstr "" - -#: js/ToneBlocks.js:157 -#: js/timbre.js:1476 -msgid "vibrato rate" -msgstr "" - -#: js/ToneBlocks.js:157 -msgid "vibrato intensity" -msgstr "" - -#: js/ToneBlocks.js:185 -#: js/timbre.js:1221 -#.TRANS: AM (amplitude modulation) synthesizer -msgid "AM synth" -msgstr "" - -#: js/ToneBlocks.js:189 -msgid "The AM synth block is an amplitude modulator used to define a timbre." -msgstr "" - -#: js/ToneBlocks.js:224 -#: js/timbre.js:1223 -#.TRANS: FM (frequency modulation) synthesizer -msgid "FM synth" -msgstr "" - -#: js/ToneBlocks.js:228 -msgid "The FM synth block is a frequency modulator used to define a timbre." +#: js/blocks/PitchBlocks.js:141 +#.TRANS: musical transposition (adjustment of pitch up or down) +msgid "transposition" msgstr "" -#: js/ToneBlocks.js:262 -msgid "partial" +#: js/blocks/PitchBlocks.js:168 +#.TRANS: step down one note in current musical scale +msgid "scalar step down" msgstr "" -#: js/ToneBlocks.js:265 -msgid "The Partial block is used to specify a weight for a specific partial harmonic." +#: js/blocks/PitchBlocks.js:172 +msgid "The Scalar step down block returns the number of semi-tones down to the previous note in the current key and mode." msgstr "" -#: js/ToneBlocks.js:284 -#.TRANS: partials are weighted components in a harmonic series -msgid "Partial weight must be between 0 and 1." +#: js/blocks/PitchBlocks.js:190 +#.TRANS: step up one note in current musical scale +msgid "scalar step up" msgstr "" -#: js/ToneBlocks.js:297 -#.TRANS: partials are weighted components in a harmonic series -msgid "Partial block should be used inside of a Weighted-partials block." +#: js/blocks/PitchBlocks.js:194 +msgid "The Scalar step up block returns the number of semi-tones up to the next note in the current key and mode." msgstr "" -#: js/ToneBlocks.js:325 -#.TRANS: partials are weighted components in a harmonic series -msgid "weighted partials" +#: js/blocks/PitchBlocks.js:212 +#.TRANS: the change measured in half-steps between the current pitch and the previous pitch +msgid "change in pitch" msgstr "" -#: js/ToneBlocks.js:383 -msgid "The Harmonic block will add harmonics to the contained notes." +#: js/blocks/PitchBlocks.js:216 +msgid "The Change in pitch block is the difference (in half steps) between the current pitch being played and the previous pitch played." msgstr "" -#: js/ToneBlocks.js:390 -#.TRANS: A harmonic is an overtone. -msgid "harmonic" +#: js/blocks/PitchBlocks.js:243 +#.TRANS: the change measured in scale-steps between the current pitch and the previous pitch +msgid "scalar change in pitch" msgstr "" -#: js/ToneBlocks.js:431 -msgid "The Distortion block adds distortion to the pitch." +#: js/blocks/PitchBlocks.js:250 +#: js/blocks/PitchBlocks.js:432 +#: js/blocks/PitchBlocks.js:1667 +#: js/turtleactions/DictActions.js:89 +#: js/widgets/temperament.js:610 +#: js/widgets/temperament.js:614 +#: js/widgets/temperament.js:855 +#.TRANS: convert current note to piano key (1-88) +#.TRANS: a mapping of pitch to the 88 piano keys +msgid "pitch number" msgstr "" -#: js/ToneBlocks.js:438 -#: js/timbre.js:2100 -#.TRANS: distortion is an alteration in the sound -msgid "distortion" +#: js/blocks/PitchBlocks.js:256 +msgid "The Pitch number block is the value of the pitch of the note currently being played." msgstr "" -#: js/ToneBlocks.js:487 -msgid "The Tremolo block adds a wavering effect." +#: js/blocks/PitchBlocks.js:329 +#: js/blocks/PitchBlocks.js:433 +#.TRANS: the current pitch expressed in Hertz +msgid "pitch in hertz" msgstr "" -#: js/ToneBlocks.js:495 -#: js/timbre.js:2092 -#.TRANS: a wavering effect in a musical tone -msgid "tremolo" +#: js/blocks/PitchBlocks.js:334 +msgid "The Pitch in Hertz block is the value in Hertz of the pitch of the note currently being played." msgstr "" -#: js/ToneBlocks.js:500 -#: js/ToneBlocks.js:569 -#: js/ToneBlocks.js:630 -#: js/ToneBlocks.js:689 -#: js/timbre.js:2134 -#: js/timbre.js:2222 -#: js/timbre.js:2317 -#: js/timbre.js:2419 -#.TRANS: rate at which tremolo wavers -msgid "rate" +#: js/blocks/PitchBlocks.js:367 +#: js/turtleactions/DictActions.js:87 +msgid "current pitch" msgstr "" -#: js/ToneBlocks.js:502 -#: js/ToneBlocks.js:630 -#: js/timbre.js:2137 -#: js/timbre.js:2328 -#.TRANS: amplitude of tremolo waver -msgid "depth" +#: js/blocks/PitchBlocks.js:373 +msgid "The Current Pitch block is used with the Pitch Converter block. In the example above, current pitch, sol 4, is displayed as 392 hertz." msgstr "" -#: js/ToneBlocks.js:559 -msgid "The Phaser block adds a sweeping sound." +#: js/blocks/PitchBlocks.js:410 +msgid "This block converts the pitch value of the last note played into different formats such as hertz, letter name, pitch number, et al." msgstr "" -#: js/ToneBlocks.js:566 -#: js/timbre.js:2098 -#.TRANS: alter the phase of the sound -msgid "phaser" +#: js/blocks/PitchBlocks.js:434 +msgid "alphabet" msgstr "" -#: js/ToneBlocks.js:569 -#: js/timbre.js:2422 -msgid "octaves" +#: js/blocks/PitchBlocks.js:436 +#.TRANS: Translate as "alphabet class" +msgid "letter class" msgstr "" -#: js/ToneBlocks.js:569 -#: js/timbre.js:2425 -msgid "base frequency" +#: js/blocks/PitchBlocks.js:437 +msgid "solfege class" msgstr "" -#: js/ToneBlocks.js:619 -msgid "The Chorus block adds a chorus effect." +#: js/blocks/PitchBlocks.js:438 +msgid "staff y" msgstr "" -#: js/ToneBlocks.js:627 -#: js/timbre.js:2096 -#.TRANS: musical effect to simulate a choral sound -msgid "chorus" +#: js/blocks/PitchBlocks.js:439 +msgid "solfege syllable" msgstr "" -#: js/ToneBlocks.js:630 -msgid "delay" +#: js/blocks/PitchBlocks.js:440 +msgid "pitch class" msgstr "" -#: js/ToneBlocks.js:678 -msgid "The Vibrato block adds a rapid, slight variation in pitch." +#: js/blocks/PitchBlocks.js:441 +msgid "scalar class" msgstr "" -#: js/ToneBlocks.js:686 -#: js/timbre.js:2094 -#.TRANS: a rapid, slight variation in pitch -msgid "vibrato" +#: js/blocks/PitchBlocks.js:443 +msgid "nth degree" msgstr "" -#: js/ToneBlocks.js:689 -#: js/timbre.js:2221 -msgid "intensity" +#: js/blocks/PitchBlocks.js:444 +msgid "pitch to shade" msgstr "" -#: js/ToneBlocks.js:733 -#.TRANS: select synthesizer -msgid "set synth" +#: js/blocks/PitchBlocks.js:445 +msgid "pitch to color" msgstr "" -#: js/ToneBlocks.js:804 -msgid "synth name" +#: js/blocks/PitchBlocks.js:629 +#: js/widgets/musickeyboard.js:735 +#.TRANS: MIDI is a technical standard for electronic music +msgid "MIDI" msgstr "" -#: js/ToneBlocks.js:842 -msgid "set default instrument" +#: js/blocks/PitchBlocks.js:642 +#.TRANS: set an offset associated with the numeric piano keyboard mapping +msgid "set pitch number offset" msgstr "" -#: js/ToneBlocks.js:895 -#: js/ToneBlocks.js:943 -#.TRANS: set the characteristics of a custom instrument -msgid "set instrument" +#: js/blocks/PitchBlocks.js:645 +msgid "The Set pitch number offset block is used to set the offset for mapping pitch numbers to pitch and octave." msgstr "" -#: js/ToneBlocks.js:898 -#: js/ToneBlocks.js:926 -#: js/ToneBlocks.js:932 -msgid "The Set instrument block selects a voice for the synthesizer," +#: js/blocks/PitchBlocks.js:679 +#.TRANS: convert piano key number (1-88) to pitch +msgid "number to pitch" msgstr "" -#: js/ToneBlocks.js:900 -#: js/ToneBlocks.js:934 -msgid "eg guitar piano violin or cello." +#: js/blocks/PitchBlocks.js:682 +msgid "The Number to pitch block will convert a pitch number to a pich name." msgstr "" -#: js/ToneBlocks.js:1015 -msgid "Import a sound file to use as an instrument and set its pitch center." +#: js/blocks/PitchBlocks.js:715 +#.TRANS: convert piano key number (1-88) to octave +msgid "number to octave" msgstr "" -#: js/ToneBlocks.js:1110 -msgid "Upload a sound file to connect with the sample block." +#: js/blocks/PitchBlocks.js:717 +msgid "The Number to octave block will convert a pitch number to an octave." msgstr "" -#: js/MeterBlocks.js:34 -#.TRANS: musical meter (time signature), e.g., 4:4 -msgid "current meter" +#: js/blocks/PitchBlocks.js:726 +msgid "y to pitch" msgstr "" -#: js/MeterBlocks.js:85 -#.TRANS: number of beats per minute -msgid "beat factor" +#: js/blocks/PitchBlocks.js:729 +msgid "Y to pitch block will convert a staff y position to corresponding pitch notation." msgstr "" -#: js/MeterBlocks.js:161 -msgid "The Beats per minute block returns the current beats per minute." +#: js/blocks/PitchBlocks.js:841 +msgid "accidental selector" msgstr "" -#: js/MeterBlocks.js:169 -#: js/status.js:152 -#.TRANS: number of beats played per minute -msgid "beats per minute2" +#: js/blocks/PitchBlocks.js:844 +msgid "The Accidental selector block is used to choose between double-sharp, sharp, natural, flat, and double-flat." msgstr "" -#: js/MeterBlocks.js:169 -#: js/MeterBlocks.js:1056 -#: js/MeterBlocks.js:1133 -#: js/MeterBlocks.js:1211 -#.TRANS: sets tempo by defining a beat and beats per minute -msgid "beats per minute" +#: js/blocks/PitchBlocks.js:858 +msgid "Pitch can be specified in terms of ni dha pa ma ga re sa." msgstr "" -#: js/MeterBlocks.js:233 -#.TRANS: count of current musical measure in meter -msgid "measure count" +#: js/blocks/PitchBlocks.js:872 +msgid "Pitch can be specified in terms of C D E F G A B." msgstr "" -#: js/MeterBlocks.js:241 -msgid "The Measure count block returns the current measure." +#: js/blocks/PitchBlocks.js:884 +msgid "solfege" msgstr "" -#: js/MeterBlocks.js:290 -#.TRANS: count of current beat in the meter -msgid "beat count" +#: js/blocks/PitchBlocks.js:887 +msgid "Pitch can be specified in terms of do re mi fa sol la ti." msgstr "" -#: js/MeterBlocks.js:300 -#: js/MeterBlocks.js:311 -#: js/MeterBlocks.js:565 -#: js/MeterBlocks.js:576 -msgid "The Beat count block is the number of the current beat," +#: js/blocks/PitchBlocks.js:922 +msgid "The Invert block rotates any contained notes around a target note." msgstr "" -#: js/MeterBlocks.js:313 -#: js/MeterBlocks.js:578 -msgid "eg 1, 2, 3, or 4." +#: js/blocks/PitchBlocks.js:929 +#.TRANS: pitch inversion rotates a pitch around another pitch +msgid "invert" msgstr "" -#: js/MeterBlocks.js:368 -#.TRANS: count the number of notes -msgid "sum note values" +#: js/blocks/PitchBlocks.js:968 +#.TRANS: pitch inversion rotates a pitch around another pitch (odd number) +msgid "invert (odd)" msgstr "" -#: js/MeterBlocks.js:376 -#: js/MeterBlocks.js:440 -msgid "The Note counter block can be used to count the number of contained notes." +#: js/blocks/PitchBlocks.js:1001 +#.TRANS: pitch inversion rotates a pitch around another pitch (even number) +msgid "invert (even)" msgstr "" -#: js/MeterBlocks.js:432 -#.TRANS: count the number of notes -msgid "note counter" +#: js/blocks/PitchBlocks.js:1022 +#.TRANS: register is the octave of the current pitch +msgid "register" msgstr "" -#: js/MeterBlocks.js:496 -#.TRANS: number of whole notes that have been played -msgid "whole notes played" +#: js/blocks/PitchBlocks.js:1026 +msgid "The Register block provides an easy way to modify the register (octave) of the notes that follow it." msgstr "" -#: js/MeterBlocks.js:505 -msgid "The Whole notes played block returns the total number of whole notes played." +#: js/blocks/PitchBlocks.js:1047 +#.TRANS: cents are units used to specify the ratio between pitches. There are 100 cents between successive notes. +msgid "50 cents" msgstr "" -#: js/MeterBlocks.js:555 -#: js/DictActions.js:83 -#.TRANS: number of notes that have been played -msgid "notes played" +#: js/blocks/PitchBlocks.js:1102 +msgid "The Semi-tone transposition block will shift the pitches contained inside Note blocks up (or down) by half steps." msgstr "" -#: js/MeterBlocks.js:653 -msgid "The No clock block decouples the notes from the master clock." +#: js/blocks/PitchBlocks.js:1104 +msgid "In the example shown above, sol is shifted up to sol#." msgstr "" -#: js/MeterBlocks.js:661 -#.TRANS: don't lock notes to master clock -msgid "no clock" +#: js/blocks/PitchBlocks.js:1110 +#.TRANS: adjust the amount of shift (up or down) of a pitch +msgid "semi-tone transpose" msgstr "" -#: js/MeterBlocks.js:700 -msgid "on weak beat do" +#: js/blocks/PitchBlocks.js:1143 +msgid "The Transpose by Ratio block will shift the pitches contained inside Note blocks up (or down) by a ratio" msgstr "" -#: js/MeterBlocks.js:705 -msgid "The On-weak-beat block lets you specify actions to take on weak (off) beats." +#: js/blocks/PitchBlocks.js:1149 +#.TRANS: adjust the amount of shift (up or down) of a pitch +msgid "transpose by ratio" msgstr "" -#: js/MeterBlocks.js:750 -msgid "on strong beat" +#: js/blocks/PitchBlocks.js:1232 +#.TRANS: down sixth means the note is five scale degrees below current note +msgid "down sixth" msgstr "" -#: js/MeterBlocks.js:758 -msgid "The On-strong-beat block lets you specify actions to take on specified beats." +#: js/blocks/PitchBlocks.js:1251 +#.TRANS: down third means the note is two scale degrees below current note +msgid "down third" msgstr "" -#: js/MeterBlocks.js:769 -msgid "beat" +#: js/blocks/PitchBlocks.js:1270 +#.TRANS: seventh means the note is the six scale degrees above current note +msgid "seventh" msgstr "" -#: js/MeterBlocks.js:813 -msgid "on every beat do" +#: js/blocks/PitchBlocks.js:1289 +#.TRANS: sixth means the note is the five scale degrees above current note +msgid "sixth" msgstr "" -#: js/MeterBlocks.js:821 -msgid "The On-every-beat block lets you specify actions to take on every beat." +#: js/blocks/PitchBlocks.js:1308 +#.TRANS: fifth means the note is the four scale degrees above current note +msgid "fifth" msgstr "" -#: js/MeterBlocks.js:874 -msgid "on every note do" +#: js/blocks/PitchBlocks.js:1328 +#.TRANS: fourth means the note is three scale degrees above current note +msgid "fourth" msgstr "" -#: js/MeterBlocks.js:882 -msgid "The On-every-note block lets you specify actions to take on every note." +#: js/blocks/PitchBlocks.js:1347 +#.TRANS: third means the note is two scale degrees above current note +msgid "third" msgstr "" -#: js/MeterBlocks.js:928 -#: js/MeterBlocks.js:999 -#.TRANS: sets tempo by defining a beat and beats per minute -msgid "master beats per minute" +#: js/blocks/PitchBlocks.js:1366 +#.TRANS: second means the note is one scale degree above current note +msgid "second" msgstr "" -#: js/MeterBlocks.js:952 -#: js/MeterBlocks.js:1078 -#: js/MeterBlocks.js:1135 -msgid "bpm" +#: js/blocks/PitchBlocks.js:1407 +msgid "The Scalar transposition block will shift the pitches contained inside Note blocks up (or down) the scale." msgstr "" -#: js/MeterBlocks.js:952 -#: js/MeterBlocks.js:1078 -#: js/MeterBlocks.js:1135 -msgid "beat value" +#: js/blocks/PitchBlocks.js:1409 +msgid "In the example shown above, sol is shifted up to la." msgstr "" -#: js/MeterBlocks.js:1024 -#: js/MeterBlocks.js:1167 -#: js/MeterBlocks.js:1241 -msgid "Beats per minute must be > 30." +#: js/blocks/PitchBlocks.js:1416 +#.TRANS: adjust the amount of shift (up or down) of a pitch by musical scale (scalar) steps +msgid "scalar transpose" msgstr "" -#: js/MeterBlocks.js:1027 -#: js/MeterBlocks.js:1170 -#: js/MeterBlocks.js:1244 -msgid "Maximum beats per minute is 1000." +#: js/blocks/PitchBlocks.js:1451 +msgid "The Accidental block is used to create sharps and flats" msgstr "" -#: js/MeterBlocks.js:1068 -msgid "The Beats per minute block sets the number of 1/4 notes per minute." +#: js/blocks/PitchBlocks.js:1458 +#.TRANS: An accidental is a modification to a pitch, e.g., sharp or flat. +msgid "accidental override" msgstr "" -#: js/MeterBlocks.js:1279 -#.TRANS: anacrusis -msgid "pickup" +#: js/blocks/PitchBlocks.js:1581 +msgid "The Hertz block (in combination with a Number block) will play a sound at the specified frequency." msgstr "" -#: js/MeterBlocks.js:1367 -msgid "number of beats" +#: js/blocks/PitchBlocks.js:1671 +msgid "The Pitch Number block will play a pitch associated by its number, e.g. 0 for C and 7 for G." msgstr "" -#: js/DictBlocks.js:77 -msgid "show dictionary" +#: js/blocks/PitchBlocks.js:1703 +#: js/blocks/PitchBlocks.js:1745 +#.TRANS: a numeric mapping of the notes in an octave based on the musical mode +#.TRANS: a numeric mapping of the notes in an octave based on the musical mode +msgid "nth modal pitch" msgstr "" -#: js/DictBlocks.js:129 -msgid "The Dictionary block returns a dictionary." +#: js/blocks/PitchBlocks.js:1706 +msgid "n^th Modal Pitch takes the pattern of pitches in semitones for a mode and makes each point a degree of the mode," msgstr "" -#: js/DictBlocks.js:197 -#: js/DictBlocks.js:339 -msgid "The Get-dict block returns a value in the dictionary for a specified key." +#: js/blocks/PitchBlocks.js:1708 +msgid "starting from 1 and regardless of tonal framework (i.e. not always 8 notes in the octave)" msgstr "" -#: js/DictBlocks.js:212 -#: js/DictBlocks.js:354 -#.TRANS: retrieve a value from the dictionary with a given key -msgid "get value" +#: js/blocks/PitchBlocks.js:1749 +msgid "N^th Modal Pitch takes a number as an input as the n^th degree for the given mode. 0 is the first position, 1 is the second, -1 is the note before the first etc." msgstr "" -#: js/DictBlocks.js:215 -#: js/DictBlocks.js:216 -#: js/DictBlocks.js:289 -#: js/DictBlocks.js:290 -#: js/DictBlocks.js:357 -#: js/DictBlocks.js:430 -#: js/DictBlocks.js:431 -msgid "key2" +#: js/blocks/PitchBlocks.js:1751 +msgid "The pitches change according to the mode specified without any need for respellings." msgstr "" -#: js/DictBlocks.js:271 -#: js/DictBlocks.js:411 -msgid "The Set-dict block sets a value in the dictionary for a specified key." +#: js/blocks/PitchBlocks.js:1790 +msgid "Scale Degree is a common convention in music. Scale Degree offers seven possible positions in the scale (1-7) and can be modified via accidentals." msgstr "" -#: js/DictBlocks.js:286 -#: js/DictBlocks.js:427 -#.TRANS: set a value in the dictionary for a given key -msgid "set value" +#: js/blocks/PitchBlocks.js:1792 +msgid "Scale Degree 1 is always the first pitch in a given scale, regardless of octave." msgstr "" -#: js/ExtrasBlocks.js:33 -msgid "fraction" +#: js/blocks/PitchBlocks.js:1814 +#.TRANS: step some number of notes in current musical scale +msgid "scalar step" msgstr "" -#: js/ExtrasBlocks.js:36 -msgid "Convert a float to a fraction" +#: js/blocks/PitchBlocks.js:1819 +msgid "The Scalar Step block (in combination with a Number block) will play the next pitch in a scale," msgstr "" -#: js/ExtrasBlocks.js:93 -msgid "save as ABC" +#: js/blocks/PitchBlocks.js:1821 +msgid "eg if the last note played was sol, Scalar Step 1 will play la." msgstr "" -#: js/ExtrasBlocks.js:96 -#: js/ExtrasBlocks.js:132 -#: js/ExtrasBlocks.js:168 -msgid "title" +#: js/blocks/PitchBlocks.js:1857 +msgid "The Pitch block specifies the pitch name and octave of a note that together determine the frequency of the note." msgstr "" -#: js/ExtrasBlocks.js:129 -msgid "save as Lilypond" +#: js/blocks/ProgramBlocks.js:33 +msgid "The Load-heap-from-app block loads the heap from a web page." msgstr "" -#: js/ExtrasBlocks.js:165 -msgid "save as SVG" +#: js/blocks/ProgramBlocks.js:44 +#.TRANS: load the heap contents from a URL +msgid "load heap from App" msgstr "" -#: js/ExtrasBlocks.js:216 -msgid "no background" +#: js/blocks/ProgramBlocks.js:95 +msgid "Error parsing JSON data:" msgstr "" -#: js/ExtrasBlocks.js:219 -msgid "The No background block eliminates the background from the saved SVG output." +#: js/blocks/ProgramBlocks.js:100 +msgid "404: Page not found" msgstr "" -#: js/ExtrasBlocks.js:247 -msgid "show blocks" +#: js/blocks/ProgramBlocks.js:133 +msgid "The Save-heap-to-app block saves the heap to a web page." msgstr "" -#: js/ExtrasBlocks.js:249 -msgid "The Show blocks block shows the blocks." +#: js/blocks/ProgramBlocks.js:144 +#.TRANS: save the heap contents to a URL +msgid "save heap to App" msgstr "" -#: js/ExtrasBlocks.js:274 -msgid "hide blocks" +#: js/blocks/ProgramBlocks.js:189 +msgid "Cannot find a valid heap for" msgstr "" -#: js/ExtrasBlocks.js:276 -msgid "The Hide blocks block hides the blocks." +#: js/blocks/ProgramBlocks.js:206 +msgid "The Load-heap block loads the heap from a file." msgstr "" -#: js/ExtrasBlocks.js:305 -#: js/ExtrasBlocks.js:335 -msgid "The Space block is used to add space between blocks." +#: js/blocks/ProgramBlocks.js:217 +#.TRANS: load the heap from a file +msgid "load heap" msgstr "" -#: js/ExtrasBlocks.js:373 -msgid "wait" +#: js/blocks/ProgramBlocks.js:270 +msgid "The file you selected does not contain a valid heap." msgstr "" -#: js/ExtrasBlocks.js:376 -msgid "The Wait block pauses the program for a specified number of seconds." +#: js/blocks/ProgramBlocks.js:275 +msgid "The loadHeap block needs a loadFile block." msgstr "" -#: js/ExtrasBlocks.js:430 -#: plugins/facebook.rtp:30 -msgid "comment" +#: js/blocks/ProgramBlocks.js:291 +msgid "The Set-heap block loads the heap." msgstr "" -#: js/ExtrasBlocks.js:466 -msgid "print" +#: js/blocks/ProgramBlocks.js:340 +msgid "The block you selected does not contain a valid heap." msgstr "" -#: js/ExtrasBlocks.js:473 -msgid "The Print block displays text at the top of the screen." +#: js/blocks/ProgramBlocks.js:343 +msgid "The Set heap block needs a heap." msgstr "" -#: js/ExtrasBlocks.js:579 -msgid "display grid" +#: js/blocks/ProgramBlocks.js:360 +msgid "The Load-dictionary block loads a dictionary from a file." msgstr "" -#: js/ExtrasBlocks.js:584 -msgid "The Display Grid Block changes the grid type" +#: js/blocks/ProgramBlocks.js:372 +#.TRANS: load a dictionary from a file +msgid "load dictionary" msgstr "" -#: js/ExtrasBlocks.js:686 -#: js/ExtrasBlocks.js:705 -#: js/ExtrasBlocks.js:728 -#: js/ExtrasBlocks.js:751 -#: js/ExtrasBlocks.js:769 -#: js/ExtrasBlocks.js:788 -#: js/ExtrasBlocks.js:807 -#: js/ExtrasBlocks.js:826 -msgid "unknown" +#: js/blocks/ProgramBlocks.js:390 +#: js/blocks/ProgramBlocks.js:658 +#: js/blocks/ToneBlocks.js:1025 +msgid "file" msgstr "" -#: js/SensorsBlocks.js:36 -msgid "The Input block prompts for keyboard input." +#: js/blocks/ProgramBlocks.js:444 +msgid "The file you selected does not contain a valid dictionary." msgstr "" -#: js/SensorsBlocks.js:46 -msgid "input" +#: js/blocks/ProgramBlocks.js:449 +msgid "The load dictionary block needs a load file block." msgstr "" -#: js/SensorsBlocks.js:64 -msgid "Input a value" +#: js/blocks/ProgramBlocks.js:466 +msgid "The Set-dictionary block loads a dictionary." msgstr "" -#: js/SensorsBlocks.js:126 -msgid "input value" +#: js/blocks/ProgramBlocks.js:477 +#.TRANS: load a dictionary from a JSON +msgid "set dictionary" msgstr "" -#: js/SensorsBlocks.js:131 -msgid "The Input-value block stores the input." +#: js/blocks/ProgramBlocks.js:546 +msgid "The block you selected does not contain a valid dictionary." msgstr "" -#: js/SensorsBlocks.js:238 -msgid "loudness" +#: js/blocks/ProgramBlocks.js:550 +msgid "The set dictionary block needs a dictionary." msgstr "" -#: js/SensorsBlocks.js:245 -msgid "The Loudness block returns the volume detected by the microphone." +#: js/blocks/ProgramBlocks.js:567 +msgid "The Save-heap block saves the heap to a file." msgstr "" -#: js/SensorsBlocks.js:300 -msgid "click" +#: js/blocks/ProgramBlocks.js:578 +#.TRANS: save the heap to a file +msgid "save heap" msgstr "" -#: js/SensorsBlocks.js:306 -msgid "The Click block triggers an event if a mouse has been clicked." +#: js/blocks/ProgramBlocks.js:629 +msgid "The Save-dictionary block saves a dictionary to a file." msgstr "" -#: js/SensorsBlocks.js:313 -msgid "The Click block triggers an event if a turtle has been clicked." +#: js/blocks/ProgramBlocks.js:640 +#.TRANS: save a dictionary to a file +msgid "save dictionary" msgstr "" -#: js/SensorsBlocks.js:342 -msgid "cursor over" +#: js/blocks/ProgramBlocks.js:720 +msgid "The Open palette block opens a palette." msgstr "" -#: js/SensorsBlocks.js:387 -msgid "cursor out" +#: js/blocks/ProgramBlocks.js:727 +msgid "open palette" msgstr "" -#: js/SensorsBlocks.js:433 -msgid "cursor button down" +#: js/blocks/ProgramBlocks.js:785 +msgid "The Delete block block removes a block." msgstr "" -#: js/SensorsBlocks.js:477 -msgid "cursor button up" +#: js/blocks/ProgramBlocks.js:797 +#.TRANS: Move this block to the trash. +msgid "delete block" msgstr "" -#: js/SensorsBlocks.js:638 -msgid "The Get red block returns the red component of the pixel under the mouse." +#: js/blocks/ProgramBlocks.js:861 +msgid "The Move block block moves a block." msgstr "" -#: js/SensorsBlocks.js:644 -msgid "The Get red block returns the red component of the pixel under the turtle." +#: js/blocks/ProgramBlocks.js:869 +#.TRANS: Move the position of a block on the screen. +msgid "move block" msgstr "" -#: js/SensorsBlocks.js:685 -#: plugins/rodi.rtp:216 -msgid "pixel color" +#: js/blocks/ProgramBlocks.js:881 +#: js/blocks/ProgramBlocks.js:1048 +msgid "block number" msgstr "" -#: js/SensorsBlocks.js:690 -msgid "The Get pixel block returns the color of the pixel under the mouse." +#: js/blocks/ProgramBlocks.js:935 +#.TRANS: Run program beginning at this block. +msgid "run block" msgstr "" -#: js/SensorsBlocks.js:696 -msgid "The Get pixel block returns the color of the pixel under the turtle." +#: js/blocks/ProgramBlocks.js:1025 +msgid "The Dock block block connections two blocks." msgstr "" -#: js/SensorsBlocks.js:758 -msgid "time" +#: js/blocks/ProgramBlocks.js:1036 +#.TRANS: We can connect a block to another block. +msgid "connect blocks" msgstr "" -#: js/SensorsBlocks.js:804 -msgid "cursor y" +#: js/blocks/ProgramBlocks.js:1048 +msgid "target block" msgstr "" -#: js/SensorsBlocks.js:809 -msgid "The Cursor Y block returns the vertical position of the mouse." +#: js/blocks/ProgramBlocks.js:1048 +msgid "connection number" msgstr "" -#: js/SensorsBlocks.js:845 -msgid "cursor x" +#: js/blocks/ProgramBlocks.js:1140 +msgid "The Make block block creates a new block." msgstr "" -#: js/SensorsBlocks.js:850 -msgid "The Cursor X block returns the horizontal position of the mouse." +#: js/blocks/ProgramBlocks.js:1152 +#.TRANS: Create a new block +msgid "make block" msgstr "" -#: js/SensorsBlocks.js:886 -msgid "mouse button" +#: js/blocks/ProgramBlocks.js:1285 +msgid "Cannot find block" msgstr "" -#: js/SensorsBlocks.js:888 -msgid "The Mouse-button block returns True if the mouse button is pressed." +#: js/blocks/ProgramBlocks.js:1304 +#: js/blocks/ProgramBlocks.js:1313 +msgid "Warning: block argument type mismatch" msgstr "" -#: js/SensorsBlocks.js:934 -msgid "to ASCII" +#: js/blocks/ProgramBlocks.js:1347 +msgid "The Open project block is used to open a project from a web page." msgstr "" -#: js/SensorsBlocks.js:938 -msgid "The To ASCII block converts numbers to letters." +#: js/blocks/ProgramBlocks.js:1357 +msgid "open project" msgstr "" -#: js/SensorsBlocks.js:1005 -msgid "The Keyboard block returns computer keyboard input." +#: js/blocks/ProgramBlocks.js:1410 +msgid "Please enter a valid URL." msgstr "" -#: js/IntervalsActions.js:216 -msgid "Adding missing pitch number 0." +#: js/blocks/ToneBlocks.js:34 +msgid "oscillator" msgstr "" -#: js/IntervalsActions.js:224 -msgid "Ignoring pitch numbers less than zero or greater than eleven." +#: js/blocks/ToneBlocks.js:42 +#: js/blocks/WidgetBlocks.js:179 +#: js/widgets/timbre.js:1558 +#: js/widgets/timbre.js:1808 +#.TRANS: there are different types (sine, triangle, square...) of oscillators. +#.TRANS: type of filter, e.g., lowpass, highpass, etc. +msgid "type" msgstr "" -#: js/IntervalsActions.js:230 -msgid "Ignoring duplicate pitch numbers." +#: js/blocks/ToneBlocks.js:44 +#: js/widgets/timbre.js:1562 +#.TRANS: Partials refers to the number of sine waves combined into the sound. +msgid "partials" msgstr "" -#: js/PitchActions.js:88 -msgid "The Scalar Step Block must be used inside of a Note Block." +#: js/blocks/ToneBlocks.js:76 +msgid "You are adding multiple oscillator blocks." msgstr "" -#: js/PitchActions.js:107 -msgid "The Scalar Step Block must be preceded by a Pitch Block." +#: js/blocks/ToneBlocks.js:144 +#: js/widgets/timbre.js:1225 +#.TRANS: a duo synthesizer combines a synth with a sequencer +msgid "duo synth" msgstr "" -#: js/DrumActions.js:231 -msgid "Noise Block: Did you mean to use a Note block?" +#: js/blocks/ToneBlocks.js:149 +msgid "The Duo synth block is a duo-frequency modulator used to define a timbre." msgstr "" -#: js/MeterActions.js:101 -#: js/MeterActions.js:139 -msgid "beats per minute must be greater than" +#: js/blocks/ToneBlocks.js:157 +#: js/widgets/timbre.js:1476 +msgid "vibrato rate" msgstr "" -#: js/MeterActions.js:111 -#: js/MeterActions.js:149 -msgid "maximum" +#: js/blocks/ToneBlocks.js:157 +msgid "vibrato intensity" msgstr "" -#: js/MeterActions.js:117 -#: js/MeterActions.js:155 -msgid "beats per minute is" +#: js/blocks/ToneBlocks.js:185 +#: js/widgets/timbre.js:1221 +#.TRANS: AM (amplitude modulation) synthesizer +msgid "AM synth" msgstr "" -#: js/ToneActions.js:134 -msgid "Vibrato intensity must be between 1 and 100." +#: js/blocks/ToneBlocks.js:189 +msgid "The AM synth block is an amplitude modulator used to define a timbre." msgstr "" -#: js/ToneActions.js:139 -msgid "Vibrato rate must be greater than 0." +#: js/blocks/ToneBlocks.js:224 +#: js/widgets/timbre.js:1223 +#.TRANS: FM (frequency modulation) synthesizer +msgid "FM synth" msgstr "" -#: js/ToneActions.js:192 -#: js/ToneActions.js:265 -#.TRANS: Depth is the intesity of the tremolo or chorus effect. -msgid "Depth is out of range." +#: js/blocks/ToneBlocks.js:228 +msgid "The FM synth block is a frequency modulator used to define a timbre." msgstr "" -#: js/ToneActions.js:301 -msgid "Distortion must be from 0 to 100." +#: js/blocks/ToneBlocks.js:262 +msgid "partial" msgstr "" -#: js/ToneActions.js:332 -#.TRANS: partials components in a harmonic series -msgid "Partial must be greater than or equal to 0." +#: js/blocks/ToneBlocks.js:265 +msgid "The Partial block is used to specify a weight for a specific partial harmonic." msgstr "" -#: js/ToneActions.js:378 -#: js/ToneActions.js:417 -#: js/ToneActions.js:456 -#: js/timbre.js:782 -msgid "Unable to use synth due to existing oscillator" +#: js/blocks/ToneBlocks.js:284 +#.TRANS: partials are weighted components in a harmonic series +msgid "Partial weight must be between 0 and 1." msgstr "" -#: js/ToneActions.js:388 -#: js/ToneActions.js:427 -msgid "The input cannot be negative." +#: js/blocks/ToneBlocks.js:297 +#.TRANS: partials are weighted components in a harmonic series +msgid "Partial block should be used inside of a Weighted-partials block." msgstr "" -#: js/DictActions.js:75 -#: js/DictActions.js:153 -#: js/DictActions.js:188 -msgid "font" +#: js/blocks/ToneBlocks.js:325 +#.TRANS: partials are weighted components in a harmonic series +msgid "weighted partials" msgstr "" -#: js/musicutils.js:363 -#: js/musicutils.js:471 -#: js/pitchdrummatrix.js:151 -#: js/musickeyboard.js:2563 -msgid "rest" +#: js/blocks/ToneBlocks.js:383 +msgid "The Harmonic block will add harmonics to the contained notes." msgstr "" -#: js/musicutils.js:565 -#.TRANS: ordinal number. Please keep exactly one space between each number. -msgid "1st 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th" +#: js/blocks/ToneBlocks.js:390 +#.TRANS: A harmonic is an overtone. +msgid "harmonic" msgstr "" -#: js/musicutils.js:629 -#: js/musicutils.js:812 -#: js/musicutils.js:911 -#.TRANS: augmented is a music term related to intervals -msgid "augmented" +#: js/blocks/ToneBlocks.js:431 +msgid "The Distortion block adds distortion to the pitch." msgstr "" -#: js/musicutils.js:631 -#: js/musicutils.js:813 -#: js/musicutils.js:910 -#.TRANS: diminished is a music term related to intervals and mode -msgid "diminished" +#: js/blocks/ToneBlocks.js:438 +#: js/widgets/timbre.js:2100 +#.TRANS: distortion is an alteration in the sound +msgid "distortion" msgstr "" -#: js/musicutils.js:639 -#.TRANS: twelve semi-tone scale for music -msgid "chromatic" +#: js/blocks/ToneBlocks.js:487 +msgid "The Tremolo block adds a wavering effect." msgstr "" -#: js/musicutils.js:640 -msgid "algerian" +#: js/blocks/ToneBlocks.js:495 +#: js/widgets/timbre.js:2092 +#.TRANS: a wavering effect in a musical tone +msgid "tremolo" msgstr "" -#: js/musicutils.js:641 -msgid "spanish" +#: js/blocks/ToneBlocks.js:500 +#: js/blocks/ToneBlocks.js:569 +#: js/blocks/ToneBlocks.js:630 +#: js/blocks/ToneBlocks.js:689 +#: js/widgets/timbre.js:2134 +#: js/widgets/timbre.js:2222 +#: js/widgets/timbre.js:2317 +#: js/widgets/timbre.js:2419 +#.TRANS: rate at which tremolo wavers +msgid "rate" msgstr "" -#: js/musicutils.js:643 -#.TRANS: modal scale in music -msgid "octatonic" +#: js/blocks/ToneBlocks.js:502 +#: js/blocks/ToneBlocks.js:630 +#: js/widgets/timbre.js:2137 +#: js/widgets/timbre.js:2328 +#.TRANS: amplitude of tremolo waver +msgid "depth" msgstr "" -#: js/musicutils.js:645 -#.TRANS: harmonic major scale in music -msgid "harmonic major" +#: js/blocks/ToneBlocks.js:559 +msgid "The Phaser block adds a sweeping sound." msgstr "" -#: js/musicutils.js:647 -#.TRANS: natural minor scales in music -msgid "natural minor" +#: js/blocks/ToneBlocks.js:566 +#: js/widgets/timbre.js:2098 +#.TRANS: alter the phase of the sound +msgid "phaser" msgstr "" -#: js/musicutils.js:649 -#.TRANS: harmonic minor scale in music -msgid "harmonic minor" +#: js/blocks/ToneBlocks.js:569 +#: js/turtleactions/IntervalsActions.js:114 +#: js/widgets/timbre.js:2422 +msgid "octaves" msgstr "" -#: js/musicutils.js:651 -#.TRANS: melodic minor scale in music -msgid "melodic minor" +#: js/blocks/ToneBlocks.js:569 +#: js/widgets/timbre.js:2425 +msgid "base frequency" msgstr "" -#: js/musicutils.js:655 -#.TRANS: modal scale for music -msgid "dorian" +#: js/blocks/ToneBlocks.js:619 +msgid "The Chorus block adds a chorus effect." msgstr "" -#: js/musicutils.js:657 -#.TRANS: modal scale for music -msgid "phrygian" +#: js/blocks/ToneBlocks.js:627 +#: js/widgets/timbre.js:2096 +#.TRANS: musical effect to simulate a choral sound +msgid "chorus" msgstr "" -#: js/musicutils.js:659 -#.TRANS: modal scale for music -msgid "lydian" +#: js/blocks/ToneBlocks.js:630 +msgid "delay" msgstr "" -#: js/musicutils.js:661 -#.TRANS: modal scale for music -msgid "mixolydian" +#: js/blocks/ToneBlocks.js:678 +msgid "The Vibrato block adds a rapid, slight variation in pitch." msgstr "" -#: js/musicutils.js:665 -#.TRANS: modal scale for music -msgid "locrian" +#: js/blocks/ToneBlocks.js:686 +#: js/widgets/timbre.js:2094 +#.TRANS: a rapid, slight variation in pitch +msgid "vibrato" msgstr "" -#: js/musicutils.js:667 -#.TRANS: minor jazz scale for music -msgid "jazz minor" +#: js/blocks/ToneBlocks.js:689 +#: js/widgets/timbre.js:2221 +msgid "intensity" msgstr "" -#: js/musicutils.js:669 -#.TRANS: bebop scale for music -msgid "bebop" +#: js/blocks/ToneBlocks.js:733 +#.TRANS: select synthesizer +msgid "set synth" msgstr "" -#: js/musicutils.js:670 -msgid "arabic" +#: js/blocks/ToneBlocks.js:804 +msgid "synth name" msgstr "" -#: js/musicutils.js:671 -msgid "byzantine" +#: js/blocks/ToneBlocks.js:842 +msgid "set default instrument" msgstr "" -#: js/musicutils.js:673 -#.TRANS: musical scale for music by Verdi -msgid "enigmatic" +#: js/blocks/ToneBlocks.js:895 +#: js/blocks/ToneBlocks.js:943 +#.TRANS: set the characteristics of a custom instrument +msgid "set instrument" msgstr "" -#: js/musicutils.js:674 -msgid "ethiopian" +#: js/blocks/ToneBlocks.js:898 +#: js/blocks/ToneBlocks.js:926 +#: js/blocks/ToneBlocks.js:932 +msgid "The Set instrument block selects a voice for the synthesizer," msgstr "" -#: js/musicutils.js:676 -#.TRANS: Ethiopic scale for music -msgid "geez" +#: js/blocks/ToneBlocks.js:900 +#: js/blocks/ToneBlocks.js:934 +msgid "eg guitar piano violin or cello." msgstr "" -#: js/musicutils.js:677 -msgid "hindu" +#: js/blocks/ToneBlocks.js:1015 +msgid "Import a sound file to use as an instrument and set its pitch center." msgstr "" -#: js/musicutils.js:678 -msgid "hungarian" +#: js/blocks/ToneBlocks.js:1110 +msgid "Upload a sound file to connect with the sample block." msgstr "" -#: js/musicutils.js:680 -#.TRANS: minor Romanian scale for music -msgid "romanian minor" +#: js/blocks/VolumeBlocks.js:35 +msgid "synth volume" msgstr "" -#: js/musicutils.js:681 -msgid "spanish gypsy" +#: js/blocks/VolumeBlocks.js:39 +msgid "The Synth volume block returns the current volume of the current synthesizer." msgstr "" -#: js/musicutils.js:683 -#.TRANS: musical scale for Mid-Eastern music -msgid "maqam" +#: js/blocks/VolumeBlocks.js:105 +msgid "master volume" msgstr "" -#: js/musicutils.js:685 -#.TRANS: minor blues scale for music -msgid "minor blues" +#: js/blocks/VolumeBlocks.js:109 +msgid "The Master volume block returns the master volume." msgstr "" -#: js/musicutils.js:687 -#.TRANS: major blues scale for music -msgid "major blues" +#: js/blocks/VolumeBlocks.js:355 +#: js/blocks/VolumeBlocks.js:524 +msgid "set synth volume" msgstr "" -#: js/musicutils.js:688 -msgid "whole tone" +#: js/blocks/VolumeBlocks.js:362 +#: js/blocks/VolumeBlocks.js:545 +msgid "synth" msgstr "" -#: js/musicutils.js:690 -#.TRANS: pentatonic is a general term that means "five note scale". This scale is typically known as "minor pentatonic" -msgid "minor pentatonic" +#: js/blocks/VolumeBlocks.js:403 +#: js/blocks/VolumeBlocks.js:577 +#: js/blocks/VolumeBlocks.js:740 +#: js/turtleactions/VolumeActions.js:173 +msgid "Setting volume to 0." msgstr "" -#: js/musicutils.js:692 -#.TRANS: pentatonic is a general term that means "five note scale". This scale is typically known as "major pentatonic" -msgid "major pentatonic" +#: js/blocks/VolumeBlocks.js:440 +msgid "Synth not found" msgstr "" -#: js/musicutils.js:693 -msgid "chinese" +#: js/blocks/VolumeBlocks.js:494 +msgid "set drum volume" msgstr "" -#: js/musicutils.js:694 -msgid "egyptian" +#: js/blocks/VolumeBlocks.js:530 +msgid "The Set synth volume block will change the volume of a particular synth," msgstr "" -#: js/musicutils.js:696 -#.TRANS: https://en.wikipedia.org/wiki/Hirajoshi_scale NOTE: There are three different versions of this scale -msgid "hirajoshi" +#: js/blocks/VolumeBlocks.js:532 +msgid "eg guitar violin snare drum etc." msgstr "" -#: js/musicutils.js:697 -msgid "Japan" +#: js/blocks/VolumeBlocks.js:534 +msgid "The default volume is 50." msgstr "" -#: js/musicutils.js:699 -#.TRANS: https://en.wikipedia.org/wiki/In_scale and https://en.wikipedia.org/wiki/Sakura_Sakura -msgid "in" +#: js/blocks/VolumeBlocks.js:536 +msgid "The range is 0 for silence to 100 for full volume." msgstr "" -#: js/musicutils.js:701 -#.TRANS: https://en.wikipedia.org/wiki/Miny%C5%8D_scale -msgid "minyo" +#: js/blocks/VolumeBlocks.js:597 +msgid "set panning" msgstr "" -#: js/musicutils.js:703 -#.TRANS: Italian mathematician -msgid "fibonacci" +#: js/blocks/VolumeBlocks.js:603 +msgid "The Set Panning block sets the panning for all synthesizers." msgstr "" -#: js/musicutils.js:708 -#: js/musicutils.js:1106 -#.TRANS: lowpass filter -msgid "lowpass" +#: js/blocks/VolumeBlocks.js:625 +msgid "Warning: Sound is coming out from only the left or right side." msgstr "" -#: js/musicutils.js:710 -#: js/musicutils.js:1107 -#.TRANS: bandpass filter -msgid "bandpass" +#: js/blocks/VolumeBlocks.js:647 +#: js/blocks/VolumeBlocks.js:695 +msgid "set master volume" msgstr "" -#: js/musicutils.js:712 -#: js/musicutils.js:1108 -#.TRANS: high-shelf filter -msgid "highshelf" +#: js/blocks/VolumeBlocks.js:653 +msgid "The Set master volume block sets the volume for all synthesizers." msgstr "" -#: js/musicutils.js:714 -#: js/musicutils.js:1109 -#.TRANS: low-shelf filter -msgid "lowshelf" +#: js/blocks/VolumeBlocks.js:784 +msgid "The Set relative volume block changes the volume of the contained notes." msgstr "" -#: js/musicutils.js:716 -#: js/musicutils.js:1110 -#.TRANS: notch-shelf filter -msgid "notch" +#: js/blocks/VolumeBlocks.js:791 +msgid "set relative volume" msgstr "" -#: js/musicutils.js:718 -#: js/musicutils.js:1111 -#.TRANS: all-pass filter -msgid "allpass" +#: js/blocks/VolumeBlocks.js:857 +msgid "decrescendo" msgstr "" -#: js/musicutils.js:720 -#: js/musicutils.js:1112 -#.TRANS: peaking filter -msgid "peaking" +#: js/blocks/VolumeBlocks.js:921 +msgid "crescendo" msgstr "" -#: js/musicutils.js:731 -#: js/synthutils.js:58 -#.TRANS: musical instrument -msgid "violin" +#: js/blocks/WidgetBlocks.js:81 +#.TRANS: sound envelope (ADSR) +msgid "envelope" msgstr "" -#: js/musicutils.js:732 -#: js/synthutils.js:60 -#.TRANS: viola musical instrument -msgid "viola" +#: js/blocks/WidgetBlocks.js:89 +#.TRANS: Attack time is the time taken for initial run-up of level from nil to peak, beginning when the key is first pressed. +msgid "attack" msgstr "" -#: js/musicutils.js:733 -#: js/synthutils.js:98 -#.TRANS: xylophone musical instrument -msgid "xylophone" +#: js/blocks/WidgetBlocks.js:91 +#.TRANS: Decay time is the time taken for the subsequent run down from the attack level to the designated sustain level. +msgid "decay" msgstr "" -#: js/musicutils.js:734 -#: js/synthutils.js:120 -#.TRANS: vibraphone musical instrument -msgid "vibraphone" +#: js/blocks/WidgetBlocks.js:93 +#.TRANS: Sustain level is the level during the main sequence of the sound's duration, until the key is released. +msgid "sustain" msgstr "" -#: js/musicutils.js:735 -#: js/synthutils.js:62 -#.TRANS: musical instrument -msgid "cello" +#: js/blocks/WidgetBlocks.js:95 +#.TRANS: Release time is the time taken for the level to decay from the sustain level to zero after the key is released. +msgid "release" msgstr "" -#: js/musicutils.js:737 -#: js/synthutils.js:66 -#.TRANS: viola musical instrument -msgid "double bass" +#: js/blocks/WidgetBlocks.js:113 +msgid "Attack value should be from 0 to 100." msgstr "" -#: js/musicutils.js:738 -#: js/synthutils.js:68 -#: js/rhythmruler.js:2119 -#.TRANS: musical instrument -msgid "guitar" +#: js/blocks/WidgetBlocks.js:116 +msgid "Decay value should be from 0 to 100." msgstr "" -#: js/musicutils.js:739 -#: js/synthutils.js:70 -#.TRANS: musical instrument -msgid "acoustic guitar" +#: js/blocks/WidgetBlocks.js:119 +msgid "Sustain value should be from 0 to 100." msgstr "" -#: js/musicutils.js:740 -#: js/synthutils.js:72 -#.TRANS: musical instrument -msgid "flute" +#: js/blocks/WidgetBlocks.js:122 +msgid "Release value should be from 0-100." msgstr "" -#: js/musicutils.js:741 -#: js/synthutils.js:74 -#.TRANS: musical instrument -msgid "clarinet" +#: js/blocks/WidgetBlocks.js:140 +msgid "You are adding multiple envelope blocks." msgstr "" -#: js/musicutils.js:742 -#: js/synthutils.js:76 -#.TRANS: musical instrument -msgid "saxophone" +#: js/blocks/WidgetBlocks.js:171 +#.TRANS: a filter removes some unwanted components from a signal +msgid "filter" msgstr "" -#: js/musicutils.js:743 -#: js/synthutils.js:78 -#.TRANS: musical instrument -msgid "tuba" +#: js/blocks/WidgetBlocks.js:181 +#: js/widgets/timbre.js:1818 +#.TRANS: rolloff is the steepness of a change in frequency. +msgid "rolloff" msgstr "" -#: js/musicutils.js:744 -#: js/synthutils.js:80 -#.TRANS: musical instrument -msgid "trumpet" +#: js/blocks/WidgetBlocks.js:213 +#.TRANS: rolloff is the steepness of a change in frequency. +msgid "Rolloff value should be either -12, -24, -48, or -96 decibels/octave." msgstr "" -#: js/musicutils.js:745 -#: js/synthutils.js:82 -#.TRANS: musical instrument -msgid "oboe" +#: js/blocks/WidgetBlocks.js:252 +msgid "The Temperament tool is used to define custom tuning." msgstr "" -#: js/musicutils.js:746 -#: js/synthutils.js:84 -#.TRANS: musical instrument -msgid "trombone" +#: js/blocks/WidgetBlocks.js:332 +#: js/blocks/WidgetBlocks.js:1573 +#: js/widgets/sampler.js:547 +msgid "Upload a sample and adjust its pitch center." msgstr "" -#: js/musicutils.js:747 -#: js/synthutils.js:100 -#.TRANS: polytone synthesizer -msgid "electronic synth" +#: js/blocks/WidgetBlocks.js:339 +#.TRANS: the speed at music is should be played. +msgid "sampler" msgstr "" -#: js/musicutils.js:748 -#: js/synthutils.js:102 -#.TRANS: simple monotone synthesizer -msgid "simple 1" +#: js/blocks/WidgetBlocks.js:517 +msgid "The Meter block opens a tool to select strong beats for the meter." msgstr "" -#: js/musicutils.js:749 -msgid "simple 2" +#: js/blocks/WidgetBlocks.js:573 +msgid "The oscilloscope block opens a tool to visualize waveforms." msgstr "" -#: js/musicutils.js:750 -msgid "simple 3" +#: js/blocks/WidgetBlocks.js:578 +msgid "oscilloscope" msgstr "" -#: js/musicutils.js:751 -msgid "simple 4" +#: js/blocks/WidgetBlocks.js:645 +msgid "The Custom mode block opens a tool to explore musical mode (the spacing of the notes in a scale)." msgstr "" -#: js/musicutils.js:753 -#: js/synthutils.js:49 -#.TRANS: brown noise synthesizer -msgid "brown noise" +#: js/blocks/WidgetBlocks.js:651 +#.TRANS: musical mode is the pattern of half-steps in an octave, e.g., Major or Minor modes +msgid "custom mode" msgstr "" -#: js/musicutils.js:754 -#: js/synthutils.js:51 -#.TRANS: pink noise synthesizer -msgid "pink noise" +#: js/blocks/WidgetBlocks.js:700 +msgid "The Tempo block opens a metronome to visualize the beat." msgstr "" -#: js/musicutils.js:756 -#: js/synthutils.js:127 -#: js/rhythmruler.js:1670 -#: js/rhythmruler.js:1928 -#.TRANS: musical instrument -msgid "snare drum" +#: js/blocks/WidgetBlocks.js:762 +msgid "The Arpeggio Widget is used to compose chord sequences." msgstr "" -#: js/musicutils.js:757 -#: js/synthutils.js:129 -#.TRANS: musical instrument -msgid "kick drum" +#: js/blocks/WidgetBlocks.js:837 +msgid "The Pitch drum matrix is used to map pitches to drum sounds." msgstr "" -#: js/musicutils.js:758 -#: js/synthutils.js:131 -#.TRANS: musical instrument -msgid "tom tom" +#: js/blocks/WidgetBlocks.js:842 +#.TRANS: makes a mapping between pitches and drum sounds +msgid "pitch-drum mapper" msgstr "" -#: js/musicutils.js:759 -#: js/synthutils.js:133 -#.TRANS: musical instrument -msgid "floor tom" +#: js/blocks/WidgetBlocks.js:891 +msgid "You must have at least one pitch block and one drum block in the matrix." msgstr "" -#: js/musicutils.js:760 -#: js/synthutils.js:135 -#.TRANS: musical instrument -msgid "bass drum" +#: js/blocks/WidgetBlocks.js:920 +msgid "The Pitch slider tool to is used to generate pitches at selected frequencies." msgstr "" -#: js/musicutils.js:761 -#: js/synthutils.js:137 -#.TRANS: a drum made from an inverted cup -msgid "cup drum" +#: js/blocks/WidgetBlocks.js:925 +#.TRANS: widget to generate pitches using a slider +msgid "pitch slider" msgstr "" -#: js/musicutils.js:762 -#: js/synthutils.js:139 -#.TRANS: musical instrument -msgid "darbuka drum" +#: js/blocks/WidgetBlocks.js:977 +msgid "chromatic keyboard" msgstr "" -#: js/musicutils.js:763 -#: js/synthutils.js:143 -#.TRANS: musical instrument -msgid "hi hat" +#: js/blocks/WidgetBlocks.js:1011 +#: js/blocks/WidgetBlocks.js:1077 +#.TRANS: widget to generate pitches using a slider +msgid "music keyboard" msgstr "" -#: js/musicutils.js:764 -#: js/synthutils.js:145 -#.TRANS: a small metal bell -msgid "ride bell" +#: js/blocks/WidgetBlocks.js:1062 +#: js/blocks/WidgetBlocks.js:1069 +msgid "The Music keyboard block opens a piano keyboard that can be used to create notes." msgstr "" -#: js/musicutils.js:765 -#: js/synthutils.js:147 -#.TRANS: musical instrument -msgid "cow bell" +#: js/blocks/WidgetBlocks.js:1128 +msgid "The Pitch staircase tool to is used to generate pitches from a given ratio." msgstr "" -#: js/musicutils.js:766 -msgid "japanese drum" +#: js/blocks/WidgetBlocks.js:1135 +#.TRANS: generate a progressive sequence of pitches +msgid "pitch staircase" msgstr "" -#: js/musicutils.js:767 -#: js/synthutils.js:153 -#.TRANS: musical instrument -msgid "japanese bell" +#: js/blocks/WidgetBlocks.js:1222 +msgid "The Rhythm Maker block opens a tool to create drum machines." msgstr "" -#: js/musicutils.js:768 -#: js/synthutils.js:149 -#.TRANS: musical instrument -msgid "triangle bell" +#: js/blocks/WidgetBlocks.js:1291 +msgid "G major scale" msgstr "" -#: js/musicutils.js:769 -#: js/synthutils.js:151 -#.TRANS: musical instrument -msgid "finger cymbals" +#: js/blocks/WidgetBlocks.js:1326 +msgid "C major scale" msgstr "" -#: js/musicutils.js:770 -#: js/synthutils.js:155 -#.TRANS: a musically tuned set of bells -msgid "chime" +#: js/blocks/WidgetBlocks.js:1366 +msgid "The Phrase Maker block opens a tool to create musical phrases." msgstr "" -#: js/musicutils.js:771 -#: js/synthutils.js:157 -#.TRANS: a musical instrument -msgid "gong" +#: js/blocks/WidgetBlocks.js:1373 +#.TRANS: assigns pitch to a sequence of beats to generate a melody +msgid "phrase maker" msgstr "" -#: js/musicutils.js:772 -#: js/synthutils.js:159 -#.TRANS: sound effect -msgid "clang" +#: js/blocks/WidgetBlocks.js:1444 +msgid "You must have at least one pitch block and one rhythm block in the matrix." msgstr "" -#: js/musicutils.js:773 -#: js/synthutils.js:161 -#.TRANS: sound effect -msgid "crash" +#: js/blocks/WidgetBlocks.js:1503 +msgid "The Status block opens a tool for inspecting the status of Music Blocks as it is running." msgstr "" -#: js/musicutils.js:774 -#: js/synthutils.js:163 -#.TRANS: sound effect -msgid "bottle" +#: js/blocks/WidgetBlocks.js:1580 +#.TRANS: AI-generated music +msgid "aimusic" msgstr "" -#: js/musicutils.js:775 -#: js/synthutils.js:165 -#.TRANS: sound effect -msgid "clap" +#: js/turtleactions/MeterActions.js:101 +#: js/turtleactions/MeterActions.js:139 +msgid "beats per minute must be greater than" msgstr "" -#: js/musicutils.js:776 -#: js/synthutils.js:167 -#.TRANS: sound effect -msgid "slap" +#: js/turtleactions/MeterActions.js:111 +#: js/turtleactions/MeterActions.js:149 +msgid "maximum" msgstr "" -#: js/musicutils.js:777 -#: js/synthutils.js:169 -#.TRANS: sound effect -msgid "splash" +#: js/turtleactions/MeterActions.js:117 +#: js/turtleactions/MeterActions.js:155 +msgid "beats per minute is" msgstr "" -#: js/musicutils.js:778 -#: js/synthutils.js:171 -#.TRANS: sound effect -msgid "bubbles" +#: js/turtleactions/DictActions.js:75 +#: js/turtleactions/DictActions.js:142 +#: js/turtleactions/DictActions.js:172 +msgid "font" msgstr "" -#: js/musicutils.js:779 -#: js/synthutils.js:173 -#.TRANS: sound effect -msgid "raindrop" +#: js/turtleactions/DictActions.js:255 +msgid "Dictionary with this name does not exist" msgstr "" -#: js/musicutils.js:780 -#: js/synthutils.js:175 -#.TRANS: animal sound effect -msgid "cat" +#: js/turtleactions/DictActions.js:259 +msgid "Key with this name does not exist in " msgstr "" -#: js/musicutils.js:781 -#: js/synthutils.js:177 -#.TRANS: animal sound effect -msgid "cricket" +#: js/turtleactions/DrumActions.js:227 +msgid "Noise Block: Did you mean to use a Note block?" msgstr "" -#: js/musicutils.js:782 -#: js/synthutils.js:179 -#.TRANS: animal sound effect -msgid "dog" +#: js/turtleactions/IntervalsActions.js:113 +msgid "one" msgstr "" -#: js/musicutils.js:784 -#: js/synthutils.js:86 -#.TRANS: musical instrument -msgid "banjo" +#: js/turtleactions/IntervalsActions.js:113 +msgid "two" msgstr "" -#: js/musicutils.js:785 -#: js/synthutils.js:88 -#.TRANS: musical instrument -msgid "koto" +#: js/turtleactions/IntervalsActions.js:113 +msgid "three" msgstr "" -#: js/musicutils.js:786 -#: js/synthutils.js:90 -#.TRANS: musical instrument -msgid "dulcimer" +#: js/turtleactions/IntervalsActions.js:113 +msgid "four" msgstr "" -#: js/musicutils.js:787 -#: js/synthutils.js:92 -#.TRANS: musical instrument -msgid "electric guitar" +#: js/turtleactions/IntervalsActions.js:113 +msgid "five" msgstr "" -#: js/musicutils.js:788 -#: js/synthutils.js:94 -#.TRANS: musical instrument -msgid "bassoon" +#: js/turtleactions/IntervalsActions.js:113 +msgid "six" msgstr "" -#: js/musicutils.js:789 -#: js/synthutils.js:96 -#.TRANS: musical instrument -msgid "celeste" +#: js/turtleactions/IntervalsActions.js:113 +msgid "seven" msgstr "" -#: js/musicutils.js:791 -#: js/musicutils.js:1123 -#: js/musicutils.js:1131 -#: js/temperament.js:650 -#.TRANS: musical temperament -msgid "equal" +#: js/turtleactions/IntervalsActions.js:113 +msgid "eight" msgstr "" -#: js/musicutils.js:793 -#: js/musicutils.js:1125 -#: js/musicutils.js:1133 -#.TRANS: musical temperament -msgid "Pythagorean" +#: js/turtleactions/IntervalsActions.js:113 +msgid "nine" msgstr "" -#: js/musicutils.js:795 -#: js/musicutils.js:1124 -#: js/musicutils.js:1132 -#.TRANS: musical temperament -msgid "just intonation" +#: js/turtleactions/IntervalsActions.js:119 +msgid "a" msgstr "" -#: js/musicutils.js:797 -#: js/musicutils.js:1126 -#: js/musicutils.js:1127 -#: js/musicutils.js:1134 -#: js/musicutils.js:1135 -#.TRANS: musical temperament -msgid "meantone" +#: js/turtleactions/IntervalsActions.js:120 +msgid "below" msgstr "" -#: js/musicutils.js:814 -msgid "major 7th" +#: js/turtleactions/IntervalsActions.js:124 +msgid "above" msgstr "" -#: js/musicutils.js:815 -msgid "minor 7th" +#: js/turtleactions/IntervalsActions.js:131 +msgid "plus" msgstr "" -#: js/musicutils.js:816 -msgid "dominant 7th" +#: js/turtleactions/IntervalsActions.js:139 +msgid " below" msgstr "" -#: js/musicutils.js:817 -msgid "minor-major 7th" +#: js/turtleactions/IntervalsActions.js:257 +msgid "Adding missing pitch number 0." msgstr "" -#: js/musicutils.js:818 -msgid "fully-diminished 7th" +#: js/turtleactions/IntervalsActions.js:265 +msgid "Ignoring pitch numbers less than zero or greater than eleven." msgstr "" -#: js/musicutils.js:819 -msgid "half-diminished 7th" +#: js/turtleactions/IntervalsActions.js:271 +msgid "Ignoring duplicate pitch numbers." msgstr "" -#: js/musicutils.js:4379 -#: js/musicutils.js:4416 -msgid "current" +#: js/turtleactions/ToneActions.js:134 +msgid "Vibrato intensity must be between 1 and 100." msgstr "" -#: js/musicutils.js:4382 -#: js/musicutils.js:4407 -msgid "next" +#: js/turtleactions/ToneActions.js:139 +msgid "Vibrato rate must be greater than 0." msgstr "" -#: js/musicutils.js:4385 -#: js/musicutils.js:4412 -msgid "previous" +#: js/turtleactions/ToneActions.js:192 +#: js/turtleactions/ToneActions.js:265 +#.TRANS: Depth is the intesity of the tremolo or chorus effect. +msgid "Depth is out of range." msgstr "" -#: js/synthutils.js:104 -#.TRANS: simple monotone synthesizer -msgid "simple-2" +#: js/turtleactions/ToneActions.js:301 +msgid "Distortion must be from 0 to 100." msgstr "" -#: js/synthutils.js:106 -#.TRANS: simple monotone synthesizer -msgid "simple-3" +#: js/turtleactions/ToneActions.js:332 +#.TRANS: partials components in a harmonic series +msgid "Partial must be greater than or equal to 0." msgstr "" -#: js/synthutils.js:108 -#.TRANS: simple monotone synthesizer -msgid "simple-4" +#: js/turtleactions/ToneActions.js:378 +#: js/turtleactions/ToneActions.js:417 +#: js/turtleactions/ToneActions.js:456 +#: js/widgets/timbre.js:782 +msgid "Unable to use synth due to existing oscillator" msgstr "" -#: js/synthutils.js:141 -#.TRANS: musical instrument -msgid "taiko" +#: js/turtleactions/ToneActions.js:388 +#: js/turtleactions/ToneActions.js:427 +msgid "The input cannot be negative." msgstr "" -#: js/modewidget.js:86 -#: js/modewidget.js:88 -#: js/modewidget.js:642 -#: js/modewidget.js:644 -#: js/modewidget.js:712 -#: js/modewidget.js:714 -#: js/temperament.js:2078 -#: js/rhythmruler.js:189 -#: js/rhythmruler.js:1410 -#: js/rhythmruler.js:1412 -#: js/rhythmruler.js:1435 -#: js/rhythmruler.js:1437 -#: js/meterwidget.js:89 -#: js/meterwidget.js:91 +#: js/widgets/modewidget.js:86 +#: js/widgets/modewidget.js:88 +#: js/widgets/modewidget.js:642 +#: js/widgets/modewidget.js:644 +#: js/widgets/modewidget.js:712 +#: js/widgets/modewidget.js:714 +#: js/widgets/meterwidget.js:194 +#: js/widgets/meterwidget.js:196 +#: js/widgets/temperament.js:2236 +#: js/widgets/rhythmruler.js:457 +#: js/widgets/rhythmruler.js:1790 +#: js/widgets/rhythmruler.js:1792 +#: js/widgets/rhythmruler.js:1816 +#: js/widgets/rhythmruler.js:1818 msgid "Play all" msgstr "" -#: js/modewidget.js:115 -#: js/pitchstaircase.js:641 -#: js/phrasemaker.js:339 -#: js/pitchdrummatrix.js:94 -#: js/pitchslider.js:125 -#: js/temperament.js:2083 -#: js/musickeyboard.js:530 -#: js/timbre.js:756 -#: js/meterwidget.js:124 -#: js/arpeggio.js:103 +#: js/widgets/modewidget.js:115 +#: js/widgets/meterwidget.js:229 +#: js/widgets/pitchdrummatrix.js:166 +#: js/widgets/pitchslider.js:125 +#: js/widgets/pitchstaircase.js:641 +#: js/widgets/temperament.js:2244 +#: js/widgets/timbre.js:756 +#: js/widgets/arpeggio.js:103 +#: js/widgets/musickeyboard.js:688 +#: js/widgets/phrasemaker.js:550 msgid "Save" msgstr "" -#: js/modewidget.js:121 -#: js/pitchstaircase.js:686 -#: js/phrasemaker.js:356 -#: js/pitchdrummatrix.js:109 -#: js/musickeyboard.js:534 -#: js/rhythmruler.js:269 -#: js/arpeggio.js:118 +#: js/widgets/modewidget.js:121 +#: js/widgets/pitchdrummatrix.js:181 +#: js/widgets/pitchstaircase.js:686 +#: js/widgets/arpeggio.js:118 +#: js/widgets/musickeyboard.js:696 +#: js/widgets/phrasemaker.js:567 +#: js/widgets/rhythmruler.js:601 #.TRANS: clear all subdivisions from the ruler. msgid "Clear" msgstr "" -#: js/modewidget.js:127 +#: js/widgets/modewidget.js:127 msgid "Rotate counter clockwise" msgstr "" -#: js/modewidget.js:133 +#: js/widgets/modewidget.js:133 msgid "Rotate clockwise" msgstr "" -#: js/modewidget.js:139 +#: js/widgets/modewidget.js:139 msgid "Invert" msgstr "" -#: js/modewidget.js:145 -#: js/pitchstaircase.js:678 -#: js/rhythmruler.js:258 -#: js/timbre.js:963 +#: js/widgets/modewidget.js:145 +#: js/widgets/pitchstaircase.js:678 +#: js/widgets/timbre.js:963 +#: js/widgets/rhythmruler.js:578 msgid "Undo" msgstr "" -#: js/modewidget.js:163 +#: js/widgets/modewidget.js:163 #.TRANS: A circle of notes represents the musical mode. msgid "Click in the circle to select notes for the mode." msgstr "" -#: js/modewidget.js:1017 -#: js/pitchstaircase.js:580 -#: js/phrasemaker.js:4855 -#: js/temperament.js:1754 -#: js/rhythmruler.js:1865 -#: js/rhythmruler.js:2081 -#: js/tempo.js:414 +#: js/widgets/modewidget.js:1017 +#: js/widgets/pitchstaircase.js:580 +#: js/widgets/temperament.js:1929 +#: js/widgets/tempo.js:414 +#: js/widgets/phrasemaker.js:5356 +#: js/widgets/rhythmruler.js:2254 +#: js/widgets/rhythmruler.js:2472 msgid "New action block generated!" msgstr "" -#: js/oscilloscope.js:79 -msgid "Zoom In" -msgstr "" - -#: js/oscilloscope.js:88 -msgid "Zoom Out" -msgstr "" - -#: js/pitchstaircase.js:624 -msgid "Play chord" -msgstr "" - -#: js/pitchstaircase.js:632 -msgid "Play scale" +#: js/widgets/meterwidget.js:275 +msgid "Reset" msgstr "" -#: js/pitchstaircase.js:696 -msgid "Click on a note to create a new step." +#: js/widgets/meterwidget.js:301 +msgid "Click in the circle to select strong beats for the meter." msgstr "" -#: js/phrasemaker.js:363 -msgid "Export" +#: js/widgets/oscilloscope.js:79 +msgid "Zoom In" msgstr "" -#: js/phrasemaker.js:370 -msgid "Sort" +#: js/widgets/oscilloscope.js:88 +msgid "Zoom Out" msgstr "" -#: js/phrasemaker.js:373 -#: js/musickeyboard.js:559 -msgid "Add note" +#: js/widgets/pitchdrummatrix.js:356 +#: js/widgets/pitchdrummatrix.js:752 +msgid "Click in the grid to map notes to drums." msgstr "" -#: js/phrasemaker.js:764 -msgid "Click on the table to add notes." +#: js/widgets/pitchslider.js:103 +msgid "Move up" msgstr "" -#: js/phrasemaker.js:2414 -#: js/phrasemaker.js:2543 -msgid "tuplet value" +#: js/widgets/pitchslider.js:114 +msgid "Move down" msgstr "" -#: js/pitchdrummatrix.js:270 -#: js/pitchdrummatrix.js:639 -msgid "Click in the grid to map notes to drums." +#: js/widgets/pitchslider.js:136 +msgid "Click on the slider to create a note block." msgstr "" -#: js/pitchslider.js:103 -msgid "Move up" +#: js/widgets/pitchstaircase.js:624 +msgid "Play chord" msgstr "" -#: js/pitchslider.js:114 -msgid "Move down" +#: js/widgets/pitchstaircase.js:632 +msgid "Play scale" msgstr "" -#: js/pitchslider.js:136 -msgid "Click on the slider to create a note block." +#: js/widgets/pitchstaircase.js:696 +msgid "Click on a note to create a new step." msgstr "" -#: js/temperament.js:215 +#: js/widgets/temperament.js:321 msgid "back to 2:1 octave space" msgstr "" -#: js/temperament.js:323 +#: js/widgets/temperament.js:447 msgid "edit" msgstr "" -#: js/temperament.js:330 -#: js/temperament.js:332 -#: js/temperament.js:1336 -#: js/temperament.js:1338 +#: js/widgets/temperament.js:454 +#: js/widgets/temperament.js:456 +#: js/widgets/temperament.js:1493 +#: js/widgets/temperament.js:1495 msgid "close" msgstr "" -#: js/temperament.js:423 -#: js/temperament.js:736 -#: js/temperament.js:743 -#: js/temperament.js:845 -#: js/temperament.js:935 -#: js/temperament.js:942 -#: js/temperament.js:1015 -#: js/temperament.js:1284 -#: js/temperament.js:1354 -#: js/temperament.js:1430 +#: js/widgets/temperament.js:552 +#: js/widgets/temperament.js:877 +#: js/widgets/temperament.js:884 +#: js/widgets/temperament.js:986 +#: js/widgets/temperament.js:1080 +#: js/widgets/temperament.js:1087 +#: js/widgets/temperament.js:1160 +#: js/widgets/temperament.js:1433 +#: js/widgets/temperament.js:1511 +#: js/widgets/temperament.js:1596 msgid "done" msgstr "" -#: js/temperament.js:477 -#: js/temperament.js:482 -#: js/temperament.js:918 +#: js/widgets/temperament.js:610 +#: js/widgets/temperament.js:615 +#: js/widgets/temperament.js:1063 msgid "ratio" msgstr "" -#: js/temperament.js:483 +#: js/widgets/temperament.js:616 msgid "interval" msgstr "" -#: js/temperament.js:611 +#: js/widgets/temperament.js:744 msgid "non scalar" msgstr "" -#: js/temperament.js:650 +#: js/widgets/temperament.js:787 msgid "ratios" msgstr "" -#: js/temperament.js:650 +#: js/widgets/temperament.js:787 msgid "arbitrary" msgstr "" -#: js/temperament.js:719 +#: js/widgets/temperament.js:860 msgid "number of divisions" msgstr "" -#: js/temperament.js:741 -#: js/temperament.js:858 -#: js/temperament.js:940 -#: js/temperament.js:1033 +#: js/widgets/temperament.js:882 +#: js/widgets/temperament.js:999 +#: js/widgets/temperament.js:1085 +#: js/widgets/temperament.js:1178 msgid "preview" msgstr "" -#: js/temperament.js:788 +#: js/widgets/temperament.js:929 msgid "The Number of divisions is too large." msgstr "" -#: js/temperament.js:921 +#: js/widgets/temperament.js:1066 msgid "recursion" msgstr "" -#: js/temperament.js:1450 +#: js/widgets/temperament.js:1616 msgid "The octave ratio has changed. This changes temperament significantly." msgstr "" -#: js/temperament.js:2087 +#: js/widgets/temperament.js:2248 msgid "Table" msgstr "" -#: js/temperament.js:2185 +#: js/widgets/temperament.js:2356 msgid "Add pitches" msgstr "" -#: js/musickeyboard.js:570 -msgid "Metronome" +#: js/widgets/tempo.js:78 +#: js/widgets/tempo.js:97 +#: js/widgets/tempo.js:99 +#: js/widgets/aiwidget.js:134 +#: js/widgets/aiwidget.js:136 +#: js/widgets/rhythmruler.js:681 +#: js/widgets/rhythmruler.js:683 +#: js/widgets/rhythmruler.js:1864 +#: js/widgets/rhythmruler.js:1866 +#: js/widgets/sampler.js:180 +#: js/widgets/sampler.js:182 +msgid "Pause" msgstr "" -#: js/musickeyboard.js:1296 -#: plugins/rodi.rtp:193 -msgid "duration" +#: js/widgets/tempo.js:113 +msgid "Save tempo" msgstr "" -#: js/musickeyboard.js:2840 -msgid "New action blocks generated!" +#: js/widgets/tempo.js:144 +msgid "speed up" msgstr "" -#: js/musickeyboard.js:2841 -msgid "New action block generated" +#: js/widgets/tempo.js:150 +msgid "slow down" msgstr "" -#: js/musickeyboard.js:2984 -#: js/musickeyboard.js:2992 -msgid "MIDI device present." +#: js/widgets/tempo.js:194 +msgid "Adjust the tempo with the buttons." msgstr "" -#: js/musickeyboard.js:2995 -msgid "No MIDI device found." +#: js/widgets/tempo.js:261 +msgid "Please enter a number between 30 and 1000" msgstr "" -#: js/musickeyboard.js:3000 -msgid "Failed to get MIDI access in browser." +#: js/widgets/tempo.js:268 +#: js/widgets/tempo.js:271 +msgid "The beats per minute must be between 30 and 1000." msgstr "" -#: js/rhythmruler.js:202 -msgid "Save rhythms" +#: js/widgets/tempo.js:287 +msgid "The beats per minute must be below 1000." msgstr "" -#: js/rhythmruler.js:222 -msgid "Save drum machine" +#: js/widgets/tempo.js:303 +msgid "The beats per minute must be above 30" msgstr "" -#: js/rhythmruler.js:263 -#.TRANS: user can tap out a rhythm by clicking on a ruler. -msgid "Tap a rhythm" +#: js/widgets/timbre.js:766 +msgid "Synthesizer" msgstr "" -#: js/rhythmruler.js:342 -#: js/rhythmruler.js:344 -#: js/rhythmruler.js:1481 -#: js/rhythmruler.js:1483 -#: js/sampler.js:110 -#: js/sampler.js:112 -#: js/tempo.js:78 -#: js/tempo.js:97 -#: js/tempo.js:99 -msgid "Pause" +#: js/widgets/timbre.js:789 +msgid "Oscillator" msgstr "" -#: js/rhythmruler.js:478 -msgid "Click on the ruler to divide it." +#: js/widgets/timbre.js:840 +msgid "Envelope" msgstr "" -#: js/rhythmruler.js:603 -#: js/rhythmruler.js:605 -#: js/rhythmruler.js:804 -#: js/rhythmruler.js:806 -#: js/rhythmruler.js:1386 -#: js/rhythmruler.js:1388 -msgid "tap a rhythm" +#: js/widgets/timbre.js:886 +#: planet/js/GlobalTag.js:50 +#.TRANS: On the Planet, we use labels to tag projects. +msgid "Effects" msgstr "" -#: js/rhythmruler.js:1084 -msgid "Maximum value of 256 has been exceeded." +#: js/widgets/timbre.js:904 +msgid "Filter" msgstr "" -#: js/sampler.js:137 -msgid "Warning: Sample is bigger than 1MB." +#: js/widgets/timbre.js:946 +msgid "Add filter" msgstr "" -#: js/sampler.js:142 -msgid "Upload failed: Sample is not a .wav file." +#: js/widgets/timbre.js:987 +msgid "Click on buttons to open the timbre design tools." msgstr "" -#: js/sampler.js:164 -msgid "A new sample block was generated." +#: js/widgets/timbre.js:1273 +msgid "harmonicity" msgstr "" -#: js/sampler.js:255 -msgid "Upload sample" +#: js/widgets/timbre.js:1340 +#: js/widgets/timbre.js:1406 +msgid "modulation index" msgstr "" -#: js/sampler.js:306 -msgid "Save sample" +#: js/widgets/timbre.js:1484 +msgid "vibrato amount" msgstr "" -#: js/sampler.js:697 -#.TRANS: The reference tone is a sound used for comparison. -msgid "reference tone" +#: js/widgets/timbre.js:1919 +msgid "Filter already present." msgstr "" -#: js/tempo.js:113 -msgid "Save tempo" +#: js/widgets/timbre.js:2322 +msgid "delay (MS)" msgstr "" -#: js/tempo.js:144 -msgid "speed up" +#: js/widgets/timbre.js:2507 +msgid "distortion amount" msgstr "" -#: js/tempo.js:150 -msgid "slow down" +#: js/widgets/aiwidget.js:180 +#: js/widgets/sampler.js:227 +msgid "Warning: Sample is bigger than 1MB." msgstr "" -#: js/tempo.js:194 -msgid "Adjust the tempo with the buttons." +#: js/widgets/aiwidget.js:539 +msgid "New start block generated" msgstr "" -#: js/tempo.js:261 -msgid "Please enter a number between 30 and 1000" +#: js/widgets/aiwidget.js:541 +msgid "MIDI loading. This may take some time depending upon the number of notes in the track" msgstr "" -#: js/tempo.js:268 -#: js/tempo.js:271 -msgid "The beats per minute must be between 30 and 1000." +#: js/widgets/aiwidget.js:551 +#: js/widgets/sampler.js:254 +msgid "Upload failed: Sample is not a .wav file." msgstr "" -#: js/tempo.js:287 -msgid "The beats per minute must be below 1000." +#: js/widgets/aiwidget.js:679 +#: js/widgets/sampler.js:432 +msgid "Save sample" msgstr "" -#: js/tempo.js:303 -msgid "The beats per minute must be above 30" +#: js/widgets/aiwidget.js:701 +msgid "AI Music" msgstr "" -#: js/timbre.js:766 -msgid "Synthesizer" +#: js/widgets/arpeggio.js:239 +msgid "Click in the grid to add steps to the arpeggio." msgstr "" -#: js/timbre.js:789 -msgid "Oscillator" +#: js/widgets/help.js:95 +#: js/widgets/help.js:125 +#: js/widgets/help.js:146 +#: js/widgets/help.js:158 +#: js/widgets/help.js:376 +#: js/widgets/help.js:391 +msgid "Take a tour" msgstr "" -#: js/timbre.js:840 -msgid "Envelope" +#: js/widgets/musickeyboard.js:725 +#: js/widgets/phrasemaker.js:584 +msgid "Add note" msgstr "" -#: js/timbre.js:886 -#: js/GlobalTag.js:50 -#.TRANS: On the Planet, we use labels to tag projects. -msgid "Effects" +#: js/widgets/musickeyboard.js:744 +msgid "Metronome" +msgstr "" + +#: js/widgets/musickeyboard.js:1549 +#: plugins/rodi.rtp:193 +msgid "duration" +msgstr "" + +#: js/widgets/musickeyboard.js:3179 +msgid "New action blocks generated" +msgstr "" + +#: js/widgets/musickeyboard.js:3180 +msgid "New action block generated" msgstr "" -#: js/timbre.js:904 -msgid "Filter" +#: js/widgets/musickeyboard.js:3365 +#: js/widgets/musickeyboard.js:3373 +msgid "MIDI device present." msgstr "" -#: js/timbre.js:946 -msgid "Add filter" +#: js/widgets/musickeyboard.js:3376 +msgid "No MIDI device found." msgstr "" -#: js/timbre.js:987 -msgid "Click on buttons to open the timbre design tools." +#: js/widgets/musickeyboard.js:3386 +msgid "Failed to get MIDI access in browser." msgstr "" -#: js/timbre.js:1273 -msgid "harmonicity" +#: js/widgets/phrasemaker.js:574 +msgid "Export" msgstr "" -#: js/timbre.js:1340 -#: js/timbre.js:1406 -msgid "modulation index" +#: js/widgets/phrasemaker.js:581 +msgid "Sort" msgstr "" -#: js/timbre.js:1484 -msgid "vibrato amount" +#: js/widgets/phrasemaker.js:975 +msgid "Click on the table to add notes." msgstr "" -#: js/timbre.js:1919 -msgid "Filter already present." +#: js/widgets/phrasemaker.js:2677 +#: js/widgets/phrasemaker.js:2819 +msgid "tuplet value" msgstr "" -#: js/timbre.js:2322 -msgid "delay (MS)" +#: js/widgets/rhythmruler.js:486 +msgid "Save rhythms" msgstr "" -#: js/timbre.js:2507 -msgid "distortion amount" +#: js/widgets/rhythmruler.js:512 +msgid "Save drum machine" msgstr "" -#: js/meterwidget.js:170 -msgid "Reset" +#: js/widgets/rhythmruler.js:589 +#.TRANS: user can tap out a rhythm by clicking on a ruler. +msgid "Tap a rhythm" msgstr "" -#: js/meterwidget.js:196 -msgid "Click in the circle to select strong beats for the meter." +#: js/widgets/rhythmruler.js:817 +msgid "Click on the ruler to divide it." msgstr "" -#: js/arpeggio.js:239 -msgid "Click in the grid to add steps to the arpeggio." +#: js/widgets/rhythmruler.js:950 +#: js/widgets/rhythmruler.js:952 +#: js/widgets/rhythmruler.js:1152 +#: js/widgets/rhythmruler.js:1154 +#: js/widgets/rhythmruler.js:1765 +#: js/widgets/rhythmruler.js:1767 +msgid "tap a rhythm" msgstr "" -#: js/ProjectStorage.js:243 -msgid "anonymous" +#: js/widgets/rhythmruler.js:1459 +msgid "Maximum value of 256 has been exceeded." msgstr "" -#: js/GlobalCard.js:68 -msgid "Share" +#: js/widgets/sampler.js:237 +msgid "Recording started..." msgstr "" -#: js/GlobalCard.js:74 -msgid "Flags" +#: js/widgets/sampler.js:245 +msgid "Recording complete..." msgstr "" -#: js/LocalCard.js:36 -msgid "View published project" +#: js/widgets/sampler.js:283 +msgid "A new sample block was generated." msgstr "" -#: js/LocalCard.js:42 -msgid "Publish project" +#: js/widgets/sampler.js:378 +msgid "Upload sample" msgstr "" -#: js/LocalCard.js:51 -msgid "Edit project" +#: js/widgets/sampler.js:399 +msgid "Warning: Your sample cannot be loaded because it is >1MB." msgstr "" -#: js/LocalCard.js:52 -msgid "Delete project" +#: js/widgets/sampler.js:448 +msgid "Toggle Mic" msgstr "" -#: js/LocalCard.js:53 -msgid "Download project" +#: js/widgets/sampler.js:458 +msgid "Playback" msgstr "" -#: js/LocalCard.js:55 -msgid "Duplicate project" +#: js/widgets/sampler.js:979 +#.TRANS: The reference tone is a sound used for comparison. +msgid "reference tone" msgstr "" -#: js/GlobalTag.js:28 +#: planet/js/GlobalTag.js:28 #.TRANS: On the Planet, we use labels to tag projects. msgid "All Projects" msgstr "" -#: js/GlobalTag.js:30 -#: js/StringHelper.js:37 +#: planet/js/GlobalTag.js:30 +#: planet/js/StringHelper.js:37 #.TRANS: On the Planet, we use labels to tag projects. msgid "My Projects" msgstr "" -#: js/GlobalTag.js:32 +#: planet/js/GlobalTag.js:32 #.TRANS: On the Planet, we use labels to tag projects. msgid "Examples" msgstr "" -#: js/GlobalTag.js:34 +#: planet/js/GlobalTag.js:34 #.TRANS: On the Planet, we use labels to tag projects. msgid "Music" msgstr "" -#: js/GlobalTag.js:36 +#: planet/js/GlobalTag.js:36 #.TRANS: On the Planet, we use labels to tag projects. msgid "Art" msgstr "" -#: js/GlobalTag.js:38 +#: planet/js/GlobalTag.js:38 #.TRANS: On the Planet, we use labels to tag projects. msgid "Math" msgstr "" -#: js/GlobalTag.js:40 +#: planet/js/GlobalTag.js:40 #.TRANS: On the Planet, we use labels to tag projects. msgid "Interactive" msgstr "" -#: js/GlobalTag.js:42 +#: planet/js/GlobalTag.js:42 #.TRANS: On the Planet, we use labels to tag projects. msgid "Design" msgstr "" -#: js/GlobalTag.js:44 +#: planet/js/GlobalTag.js:44 #.TRANS: On the Planet, we use labels to tag projects. msgid "Game" msgstr "" -#: js/GlobalTag.js:46 +#: planet/js/GlobalTag.js:46 #.TRANS: On the Planet, we use labels to tag projects. msgid "Media" msgstr "" -#: js/GlobalTag.js:48 +#: planet/js/GlobalTag.js:48 #.TRANS: On the Planet, we use labels to tag projects. msgid "Sensors" msgstr "" -#: js/GlobalTag.js:52 +#: planet/js/GlobalTag.js:52 #.TRANS: On the Planet, we use labels to tag projects. msgid "Code Snippet" msgstr "" -#: js/helper.js:149 -#: js/StringHelper.js:49 -msgid "Show more tags" +#: planet/js/LocalCard.js:36 +msgid "View published project" msgstr "" -#: js/helper.js:150 -msgid "Show fewer tags" +#: planet/js/LocalCard.js:42 +msgid "Publish project" +msgstr "" + +#: planet/js/LocalCard.js:51 +msgid "Edit project" +msgstr "" + +#: planet/js/LocalCard.js:52 +msgid "Delete project" +msgstr "" + +#: planet/js/LocalCard.js:53 +msgid "Download project" +msgstr "" + +#: planet/js/LocalCard.js:55 +msgid "Duplicate project" +msgstr "" + +#: planet/js/ProjectStorage.js:243 +msgid "anonymous" +msgstr "" + +#: planet/js/SaveInterface.js:34 +msgid "Open in Music Blocks" +msgstr "" + +#: planet/js/SaveInterface.js:35 +msgid "Open in Turtle Blocks" +msgstr "" + +#: planet/js/GlobalCard.js:68 +msgid "Share" +msgstr "" + +#: planet/js/GlobalCard.js:74 +msgid "Flags" +msgstr "" + +#: planet/js/GlobalPlanet.js:35 +msgid "No results found." +msgstr "" + +#: planet/js/GlobalPlanet.js:51 +msgid "Remix of" +msgstr "" + +#: planet/js/GlobalPlanet.js:509 +msgid "Cannot connect to server" msgstr "" -#: js/ProjectViewer.js:30 +#: planet/js/ProjectViewer.js:30 msgid "Error: Report could not be submitted. Try again later." msgstr "" -#: js/ProjectViewer.js:31 +#: planet/js/ProjectViewer.js:31 msgid "Thank you for reporting this project. A moderator will review the project shortly, to verify violation of the Sugar Labs Code of Conduct." msgstr "" -#: js/ProjectViewer.js:32 -#: js/StringHelper.js:62 -#: js/StringHelper.js:64 -#: js/StringHelper.js:68 +#: planet/js/ProjectViewer.js:32 +#: planet/js/StringHelper.js:62 +#: planet/js/StringHelper.js:64 +#: planet/js/StringHelper.js:68 msgid "Report Project" msgstr "" -#: js/ProjectViewer.js:33 -#: js/StringHelper.js:63 +#: planet/js/ProjectViewer.js:33 +#: planet/js/StringHelper.js:63 msgid "Project Reported" msgstr "" -#: js/ProjectViewer.js:34 +#: planet/js/ProjectViewer.js:34 msgid "Report description required" msgstr "" -#: js/ProjectViewer.js:35 +#: planet/js/ProjectViewer.js:35 msgid "Report description too long" msgstr "" -#: js/StringHelper.js:30 +#: planet/js/Publisher.js:30 +msgid "Feature unavailable - cannot connect to server. Reload Music Blocks to try again." +msgstr "" + +#: planet/js/Publisher.js:220 +#: planet/js/Publisher.js:237 +msgid "This field is required" +msgstr "" + +#: planet/js/Publisher.js:227 +msgid "Title too long" +msgstr "" + +#: planet/js/Publisher.js:244 +msgid "Description too long" +msgstr "" + +#: planet/js/Publisher.js:341 +msgid "Server Error" +msgstr "" + +#: planet/js/Publisher.js:341 +msgid "Try Again" +msgstr "" + +#: planet/js/StringHelper.js:30 msgid "Planet" msgstr "" -#: js/StringHelper.js:31 +#: planet/js/StringHelper.js:31 msgid "Close Planet" msgstr "" -#: js/StringHelper.js:32 +#: planet/js/StringHelper.js:32 msgid "Open project from file" msgstr "" -#: js/StringHelper.js:34 +#: planet/js/StringHelper.js:34 msgid "Local" msgstr "" -#: js/StringHelper.js:35 +#: planet/js/StringHelper.js:35 msgid "Global" msgstr "" -#: js/StringHelper.js:36 +#: planet/js/StringHelper.js:36 msgid "Search for a project" msgstr "" -#: js/StringHelper.js:38 +#: planet/js/StringHelper.js:38 msgid "Publish Project" msgstr "" -#: js/StringHelper.js:40 +#: planet/js/StringHelper.js:40 msgid "Tags (max 5)" msgstr "" -#: js/StringHelper.js:41 -#: js/StringHelper.js:61 +#: planet/js/StringHelper.js:41 +#: planet/js/StringHelper.js:61 msgid "Description" msgstr "" -#: js/StringHelper.js:42 -#: js/StringHelper.js:67 +#: planet/js/StringHelper.js:42 +#: planet/js/StringHelper.js:67 msgid "Submit" msgstr "" -#: js/StringHelper.js:43 -#: js/StringHelper.js:47 +#: planet/js/StringHelper.js:43 +#: planet/js/StringHelper.js:47 msgid "Cancel" msgstr "" -#: js/StringHelper.js:44 +#: planet/js/StringHelper.js:44 msgid "Delete \\"\\"?" msgstr "" -#: js/StringHelper.js:45 +#: planet/js/StringHelper.js:45 msgid "Permanently delete project \\"\\"?" msgstr "" -#: js/StringHelper.js:48 +#: planet/js/StringHelper.js:48 msgid "Explore Projects" msgstr "" -#: js/StringHelper.js:50 +#: planet/js/StringHelper.js:49 +#: planet/js/helper.js:149 +msgid "Show more tags" +msgstr "" + +#: planet/js/StringHelper.js:50 msgid "Most recent" msgstr "" -#: js/StringHelper.js:51 +#: planet/js/StringHelper.js:51 msgid "Most liked" msgstr "" -#: js/StringHelper.js:52 +#: planet/js/StringHelper.js:52 msgid "Most downloaded" msgstr "" -#: js/StringHelper.js:53 +#: planet/js/StringHelper.js:53 msgid "A-Z" msgstr "" -#: js/StringHelper.js:54 +#: planet/js/StringHelper.js:54 msgid "Sort by" msgstr "" -#: js/StringHelper.js:55 +#: planet/js/StringHelper.js:55 msgid "Load More Projects" msgstr "" -#: js/StringHelper.js:56 +#: planet/js/StringHelper.js:56 msgid "Last Updated" msgstr "" -#: js/StringHelper.js:57 +#: planet/js/StringHelper.js:57 msgid "Creation Date" msgstr "" -#: js/StringHelper.js:58 +#: planet/js/StringHelper.js:58 msgid "Number of Downloads:" msgstr "" -#: js/StringHelper.js:59 +#: planet/js/StringHelper.js:59 msgid "Number of Likes:" msgstr "" -#: js/StringHelper.js:60 +#: planet/js/StringHelper.js:60 msgid "Tags:" msgstr "" -#: js/StringHelper.js:65 +#: planet/js/StringHelper.js:65 msgid "Report projects which violate the Sugar Labs Code of Conduct." msgstr "" -#: js/StringHelper.js:66 +#: planet/js/StringHelper.js:66 msgid "Reason for reporting project" msgstr "" -#: js/StringHelper.js:70 +#: planet/js/StringHelper.js:70 msgid "Download as File" msgstr "" -#: js/GlobalPlanet.js:35 -msgid "No results found." -msgstr "" - -#: js/GlobalPlanet.js:51 -msgid "Remix of" -msgstr "" - -#: js/GlobalPlanet.js:509 -msgid "Cannot connect to server" -msgstr "" - -#: js/Publisher.js:30 -msgid "Feature unavailable - cannot connect to server. Reload Music Blocks to try again." -msgstr "" - -#: js/Publisher.js:218 -#: js/Publisher.js:235 -msgid "This field is required" -msgstr "" - -#: js/Publisher.js:225 -msgid "Title too long" +#: planet/js/helper.js:150 +msgid "Show fewer tags" msgstr "" -#: js/Publisher.js:242 -msgid "Description too long" +#: plugins/accelerometer.rtp:48 +msgid "motion x" msgstr "" -#: js/Publisher.js:339 -msgid "Server Error" +#: plugins/accelerometer.rtp:56 +msgid "motion y" msgstr "" -#: js/Publisher.js:339 -msgid "Try Again" +#: plugins/accelerometer.rtp:64 +msgid "motion z" msgstr "" -#: js/SaveInterface.js:34 -msgid "Open in Music Blocks" +#: plugins/facebook.rtp:27 +msgid "publish" msgstr "" -#: js/SaveInterface.js:35 -msgid "Open in Turtle Blocks" +#: plugins/maths.rtp:62 +msgid "power" msgstr "" -#: plugins/weather.rtp:68 -#: plugins/weather.rtp:97 -msgid "Days ahead must be in the range of -1 to 5." +#: plugins/maths.rtp:62 +msgid "base" msgstr "" -#: plugins/weather.rtp:122 -msgid "forecast" +#: plugins/maths.rtp:62 +msgid "exp" msgstr "" -#: plugins/weather.rtp:123 -#: plugins/weather.rtp:137 -#: plugins/weather.rtp:150 -msgid "city" +#: plugins/maths.rtp:99 +msgid "floor" msgstr "" -#: plugins/weather.rtp:124 -#: plugins/weather.rtp:138 -#: plugins/weather.rtp:151 -msgid "day" +#: plugins/maths.rtp:104 +msgid "ceiling" msgstr "" -#: plugins/weather.rtp:136 -msgid "high" +#: plugins/maths.rtp:109 +msgid "to degrees" msgstr "" -#: plugins/weather.rtp:149 -msgid "low" +#: plugins/maths.rtp:114 +msgid "to radians" msgstr "" #: plugins/nutrition.rtp:104 @@ -9455,45 +9864,6 @@ msgstr "" msgid "water" msgstr "" -#: plugins/maths.rtp:62 -#: plugins/examples.rtp:93 -msgid "power" -msgstr "" - -#: plugins/maths.rtp:62 -#: plugins/examples.rtp:93 -msgid "base" -msgstr "" - -#: plugins/maths.rtp:62 -#: plugins/examples.rtp:93 -msgid "exp" -msgstr "" - -#: plugins/maths.rtp:99 -#: plugins/examples.rtp:130 -msgid "floor" -msgstr "" - -#: plugins/maths.rtp:104 -#: plugins/examples.rtp:135 -msgid "ceiling" -msgstr "" - -#: plugins/maths.rtp:109 -#: plugins/examples.rtp:140 -msgid "to degrees" -msgstr "" - -#: plugins/maths.rtp:114 -#: plugins/examples.rtp:145 -msgid "to radians" -msgstr "" - -#: plugins/facebook.rtp:27 -msgid "publish" -msgstr "" - #: plugins/rodi.rtp:172 msgid "blink" msgstr "" @@ -9522,18 +9892,66 @@ msgstr "" msgid "move" msgstr "" -#: plugins/accelerometer.rtp:48 -msgid "motion x" +#: plugins/weather.rtp:68 +#: plugins/weather.rtp:97 +msgid "Days ahead must be in the range of -1 to 5." msgstr "" -#: plugins/accelerometer.rtp:56 -msgid "motion y" +#: plugins/weather.rtp:122 +msgid "forecast" msgstr "" -#: plugins/accelerometer.rtp:64 -msgid "motion z" +#: plugins/weather.rtp:123 +#: plugins/weather.rtp:137 +#: plugins/weather.rtp:150 +msgid "city" +msgstr "" + +#: plugins/weather.rtp:124 +#: plugins/weather.rtp:138 +#: plugins/weather.rtp:151 +msgid "day" +msgstr "" + +#: plugins/weather.rtp:136 +msgid "high" +msgstr "" + +#: plugins/weather.rtp:149 +msgid "low" msgstr "" +#: js/toolbar.js:70 + +#: js/toolbar.js:130 + +#: js/toolbar.js:194 + +#: js/toolbar.js:249 + +#~msgid "Toggle JavaScript Editor" +#~msgstr "" + +#: js/EnsembleBlocks.js:643 + +#~msgid "The Turrle pitch block returns the current pitch number being played by the specified turtle." +#~msgstr "" + +#: js/PitchActions.js:88 + +#~msgid "The Scalar Step Block must be used inside of a Note Block." +#~msgstr "" + +#: js/PitchActions.js:107 + +#~msgid "The Scalar Step Block must be preceded by a Pitch Block." +#~msgstr "" + +#: js/musickeyboard.js:2840 + +#~msgid "New action blocks generated!" +#~msgstr "" + #: js/toolbar.js:110 #: js/toolbar.js:204 @@ -9874,11 +10292,6 @@ msgstr "" #~msgid "The Time block returns the number of seconds that the program has been running." #~msgstr "" -#: js/help.js:95 - -#~msgid "Take a tour" -#~msgstr "" - #: js/GlobalCard.js:48 #~msgid "More Details" @@ -12777,11 +13190,6 @@ msgstr "" #~msgid "The save-stack button saves a stack onto a custom palette. It appears after a \"long press\" on a stack." #~msgstr "" -#: js/musicutils.js:254 - -#~msgid "Custom" -#~msgstr "" - #: js/basicblocks.js:4785 #~msgid "Rhythm" diff --git a/po/ibo.po b/po/ibo.po index e2d1b2d9c8..b6ac63d2ec 100644 --- a/po/ibo.po +++ b/po/ibo.po @@ -17,2397 +17,131 @@ #js/toolbar.js:230 #js/turtledefs.js:504 #js/turtledefs.js:505 -msgid: "Toggle Fullscreen" -msgstr: "Gbanwee ihuenyo zuru oke" - -#: js/activity.js:443 -#: js/activity.js:443 -#: js/activity.js:445 -#: js/activity.js:453 -#: js/activity.js:472 -#: js/activity.js:472 -#: js/activity.js:475 -#: js/block.js:632 -#: js/pitchdrummatrix.js:178 -#: js/musicutils.js:37 -#: js/block.js:531 -#: js/pitchdrummatrix.js:235 -#: js/musicutils.js:40 -#: js/block.js:532 -#: js/pitchdrummatrix.js:235 -#: js/musicutils.js:40 -#: js/block.js:534 -#: js/pitchdrummatrix.js:235 -#: js/musicutils.js:40 -#: js/block.js:534 -#: js/pitchdrummatrix.js:235 -#: js/musicutils.js:40 -#: js/block.js:534 -#: js/pitchdrummatrix.js:235 -#: js/musicutils.js:40 -#: js/block.js:535 -#: js/pitchdrummatrix.js:235 -#: js/musicutils.js:43 -#: js/block.js:535 -#: js/pitchdrummatrix.js:235 -#: js/musicutils.js:43 -#: js/block.js:535 -#: js/pitchdrummatrix.js:235 -#: js/musicutils.js:43 -#: js/block.js:535 -#: js/pitchdrummatrix.js:235 -#: js/musicutils.js:43 -#: js/block.js:535 -#: js/pitchdrummatrix.js:235 -#: js/musicutils.js:43 -#: js/block.js:535 -#: js/pitchdrummatrix.js:235 -#: js/musicutils.js:43 -#: js/block.js:535 -#: js/pitchdrummatrix.js:235 -#: js/musicutils.js:43 -#: js/block.js:535 -#: js/pitchdrummatrix.js:235 -#: js/musicutils.js:43 -#: js/block.js:535 -#: js/pitchdrummatrix.js:235 -#: js/musicutils.js:43 -#: js/block.js:535 -#: js/pitchdrummatrix.js:235 -#: js/musicutils.js:43 -#: js/block.js:535 -#: js/pitchdrummatrix.js:235 -#: js/musicutils.js:43 -#: js/block.js:535 -#: js/pitchdrummatrix.js:235 -#: js/musicutils.js:43 -#: js/block.js:535 -#: js/pitchdrummatrix.js:235 -#: js/musicutils.js:43 -#: js/synthutils.js:14 -#: js/block.js:535 -#: js/pitchdrummatrix.js:235 -#: js/musicutils.js:43 -#: js/block.js:535 -#: js/pitchdrummatrix.js:235 -#: js/musicutils.js:43 -#: js/block.js:535 -#: js/pitchdrummatrix.js:235 -#: js/musicutils.js:43 -#: js/block.js:535 -#: js/pitchdrummatrix.js:235 -#: js/musicutils.js:43 -#: js/block.js:535 -#: js/pitchdrummatrix.js:235 -#: js/musicutils.js:43 -#: js/block.js:535 -#: js/pitchdrummatrix.js:235 -#: js/musicutils.js:43 -#: js/block.js:535 -#: js/pitchdrummatrix.js:235 -#: js/musicutils.js:43 -#: js/block.js:535 -#: js/pitchdrummatrix.js:235 -#: js/musicutils.js:43 -#: js/block.js:535 -#: js/pitchdrummatrix.js:235 -#: js/musicutils.js:43 -#: js/block.js:535 -#: js/pitchdrummatrix.js:235 -#: js/musicutils.js:43 -#: js/block.js:535 -#: js/pitchdrummatrix.js:235 -#: js/musicutils.js:43 -#: js/block.js:536 -#: js/pitchdrummatrix.js:235 -#: js/musicutils.js:45 -#: js/block.js:536 -#: js/pitchdrummatrix.js:235 -#: js/musicutils.js:45 -#: js/block.js:551 -#: js/pitchdrummatrix.js:235 -#: js/musicutils.js:46 -#: js/block.js:551 -#: js/pitchdrummatrix.js:235 -#: js/musicutils.js:46 -#: js/block.js:565 -#: js/pitchdrummatrix.js:235 -#: js/musicutils.js:48 -#: js/musicutils.js:57 -#: js/block.js:565 -#: js/pitchdrummatrix.js:235 -#: js/musicutils.js:48 -#: js/musicutils.js:57 -#: js/block.js:565 -#: js/pitchdrummatrix.js:235 -#: js/musicutils.js:48 -#: js/musicutils.js:57 -#: js/block.js:567 -#: js/pitchdrummatrix.js:235 -#: js/musicutils.js:48 -#: js/musicutils.js:57 -#: js/block.js:720 -#: js/block.js:3892 -#: js/block.js:3901 -#: js/block.js:3912 -#: js/activity.js:2732 -#: js/analytics.js:475 -#: js/palette.js:676 -#: js/palette.js:685 -#: js/palette.js:694 -#: js/palette.js:703 -#: js/palette.js:1978 -#: js/palette.js:1989 -#: js/palette.js:2000 -#: js/palette.js:2011 -#: js/turtledefs.js:23 -#: js/basicblocks.js:1148 -#: js/basicblocks.js:1159 -#: js/basicblocks.js:2806 -#: js/basicblocks.js:2837 -#: js/basicblocks.js:2844 -#: js/basicblocks.js:2873 -#: js/basicblocks.js:2883 -#: js/basicblocks.js:2915 -#: js/basicblocks.js:2960 -#: js/basicblocks.js:2964 -#: js/basicblocks.js:2970 -#: js/macros.js:44 -#: js/blocks.js:784 -#: js/blocks.js:2385 -#: js/blocks.js:2386 -#: js/blocks.js:2578 -#: js/blocks.js:2784 -#: js/blocks.js:2940 -#: js/blocks.js:3503 -#: js/blocks.js:4308 -#: js/block.js:720 -#: js/block.js:3892 -#: js/block.js:3901 -#: js/block.js:3912 -#: js/activity.js:2732 -#: js/analytics.js:475 -#: js/palette.js:681 -#: js/palette.js:690 -#: js/palette.js:699 -#: js/palette.js:708 -#: js/palette.js:1983 -#: js/palette.js:1994 -#: js/palette.js:2005 -#: js/palette.js:2016 -#: js/turtledefs.js:23 -#: js/basicblocks.js:1148 -#: js/basicblocks.js:1159 -#: js/basicblocks.js:1170 -#: js/basicblocks.js:2817 -#: js/basicblocks.js:2848 -#: js/basicblocks.js:2855 -#: js/basicblocks.js:2884 -#: js/basicblocks.js:2894 -#: js/basicblocks.js:2926 -#: js/basicblocks.js:2971 -#: js/basicblocks.js:2975 -#: js/basicblocks.js:2981 -#: js/macros.js:44 -#: js/blocks.js:784 -#: js/blocks.js:2385 -#: js/blocks.js:2386 -#: js/blocks.js:2578 -#: js/blocks.js:2784 -#: js/blocks.js:2940 -#: js/blocks.js:3514 -#: js/blocks.js:4319 -#: js/block.js:720 -#: js/block.js:3892 -#: js/block.js:3901 -#: js/block.js:3912 -#: js/activity.js:2732 -#: js/analytics.js:475 -#: js/palette.js:681 -#: js/palette.js:690 -#: js/palette.js:699 -#: js/palette.js:708 -#: js/palette.js:1983 -#: js/palette.js:1994 -#: js/palette.js:2005 -#: js/palette.js:2016 -#: js/turtledefs.js:23 -#: js/basicblocks.js:1148 -#: js/basicblocks.js:1159 -#: js/basicblocks.js:1170 -#: js/basicblocks.js:2817 -#: js/basicblocks.js:2848 -#: js/basicblocks.js:2855 -#: js/basicblocks.js:2884 -#: js/basicblocks.js:2894 -#: js/basicblocks.js:2926 -#: js/basicblocks.js:2971 -#: js/basicblocks.js:2975 -#: js/basicblocks.js:2981 -#: js/macros.js:44 -#: js/blocks.js:784 -#: js/blocks.js:2385 -#: js/blocks.js:2386 -#: js/blocks.js:2578 -#: js/blocks.js:2784 -#: js/blocks.js:2940 -#: js/blocks.js:3514 -#: js/blocks.js:4319 -#: js/block.js:863 -#: js/block.js:4105 -#: js/block.js:4114 -#: js/block.js:4125 -#: js/activity.js:2934 -#: js/palette.js:734 -#: js/palette.js:745 -#: js/palette.js:754 -#: js/palette.js:763 -#: js/palette.js:2076 -#: js/palette.js:2088 -#: js/palette.js:2099 -#: js/palette.js:2110 -#: js/turtledefs.js:23 -#: js/basicblocks.js:1406 -#: js/basicblocks.js:1420 -#: js/basicblocks.js:1434 -#: js/basicblocks.js:3700 -#: js/basicblocks.js:3740 -#: js/basicblocks.js:3750 -#: js/basicblocks.js:3788 -#: js/basicblocks.js:3801 -#: js/basicblocks.js:3852 -#: js/basicblocks.js:3897 -#: js/basicblocks.js:3902 -#: js/basicblocks.js:3907 -#: js/rubrics.js:475 -#: js/macros.js:44 -#: js/blocks.js:863 -#: js/blocks.js:2466 -#: js/blocks.js:2467 -#: js/blocks.js:2659 -#: js/blocks.js:2865 -#: js/blocks.js:3021 -#: js/blocks.js:3661 -#: js/blocks.js:4458 -#: js/rhythmruler.js:1138 -#: js/rhythmruler.js:1140 -#: js/rhythmruler.js:1240 -#: js/rhythmruler.js:1242 -#: js/block.js:876 -#: js/block.js:4289 -#: js/block.js:4298 -#: js/block.js:4309 -#: js/activity.js:3042 -#: js/palette.js:750 -#: js/palette.js:759 -#: js/palette.js:768 -#: js/palette.js:777 -#: js/palette.js:2057 -#: js/palette.js:2068 -#: js/palette.js:2079 -#: js/palette.js:2090 -#: js/palette.js:2100 -#: js/turtledefs.js:23 -#: js/basicblocks.js:1407 -#: js/basicblocks.js:1421 -#: js/basicblocks.js:1435 -#: js/basicblocks.js:3720 -#: js/basicblocks.js:3760 -#: js/basicblocks.js:3770 -#: js/basicblocks.js:3808 -#: js/basicblocks.js:3821 -#: js/basicblocks.js:3862 -#: js/basicblocks.js:3917 -#: js/basicblocks.js:3922 -#: js/basicblocks.js:3927 -#: js/rubrics.js:476 -#: js/macros.js:44 -#: js/blocks.js:863 -#: js/blocks.js:2475 -#: js/blocks.js:2476 -#: js/blocks.js:2668 -#: js/blocks.js:2874 -#: js/blocks.js:3030 -#: js/blocks.js:3851 -#: js/blocks.js:4668 -#: js/rhythmruler.js:1149 -#: js/rhythmruler.js:1151 -#: js/rhythmruler.js:1251 -#: js/rhythmruler.js:1253 -#: js/block.js:923 -#: js/block.js:4637 -#: js/block.js:4646 -#: js/block.js:4657 -#: js/activity.js:3061 -#: js/palette.js:737 -#: js/palette.js:746 -#: js/palette.js:755 -#: js/palette.js:764 -#: js/palette.js:2043 -#: js/palette.js:2054 -#: js/palette.js:2065 -#: js/palette.js:2076 -#: js/palette.js:2086 -#: js/turtledefs.js:23 -#: js/basicblocks.js:1445 -#: js/basicblocks.js:1459 -#: js/basicblocks.js:1473 -#: js/basicblocks.js:3776 -#: js/basicblocks.js:3816 -#: js/basicblocks.js:3826 -#: js/basicblocks.js:3864 -#: js/basicblocks.js:3877 -#: js/basicblocks.js:3918 -#: js/basicblocks.js:3973 -#: js/basicblocks.js:3978 -#: js/basicblocks.js:3983 -#: js/rubrics.js:477 -#: js/macros.js:45 -#: js/blocks.js:816 -#: js/blocks.js:2432 -#: js/blocks.js:2433 -#: js/blocks.js:2625 -#: js/blocks.js:2869 -#: js/blocks.js:3025 -#: js/blocks.js:3866 -#: js/blocks.js:4705 -#: js/rhythmruler.js:1149 -#: js/rhythmruler.js:1151 -#: js/rhythmruler.js:1251 -#: js/rhythmruler.js:1253 -#: js/block.js:923 -#: js/block.js:4823 -#: js/block.js:4832 -#: js/block.js:4843 -#: js/activity.js:3079 -#: js/palette.js:737 -#: js/palette.js:746 -#: js/palette.js:755 -#: js/palette.js:764 -#: js/palette.js:2043 -#: js/palette.js:2054 -#: js/palette.js:2065 -#: js/palette.js:2076 -#: js/palette.js:2086 -#: js/turtledefs.js:23 -#: js/basicblocks.js:1441 -#: js/basicblocks.js:1455 -#: js/basicblocks.js:1469 -#: js/basicblocks.js:3762 -#: js/basicblocks.js:3802 -#: js/basicblocks.js:3812 -#: js/basicblocks.js:3850 -#: js/basicblocks.js:3863 -#: js/basicblocks.js:3904 -#: js/basicblocks.js:3959 -#: js/basicblocks.js:3964 -#: js/basicblocks.js:3969 -#: js/rubrics.js:477 -#: js/macros.js:45 -#: js/blocks.js:816 -#: js/blocks.js:2430 -#: js/blocks.js:2431 -#: js/blocks.js:2623 -#: js/blocks.js:2867 -#: js/blocks.js:3023 -#: js/blocks.js:3864 -#: js/blocks.js:4702 -#: js/rhythmruler.js:1149 -#: js/rhythmruler.js:1151 -#: js/rhythmruler.js:1251 -#: js/rhythmruler.js:1253 -#: js/block.js:923 -#: js/block.js:4836 -#: js/block.js:4845 -#: js/block.js:4856 -#: js/activity.js:3089 -#: js/palette.js:737 -#: js/palette.js:746 -#: js/palette.js:755 -#: js/palette.js:764 -#: js/palette.js:2043 -#: js/palette.js:2054 -#: js/palette.js:2065 -#: js/palette.js:2076 -#: js/palette.js:2086 -#: js/turtledefs.js:23 -#: js/basicblocks.js:1441 -#: js/basicblocks.js:1455 -#: js/basicblocks.js:1469 -#: js/basicblocks.js:3762 -#: js/basicblocks.js:3802 -#: js/basicblocks.js:3812 -#: js/basicblocks.js:3850 -#: js/basicblocks.js:3863 -#: js/basicblocks.js:3904 -#: js/basicblocks.js:3959 -#: js/basicblocks.js:3964 -#: js/basicblocks.js:3969 -#: js/rubrics.js:477 -#: js/macros.js:45 -#: js/blocks.js:816 -#: js/blocks.js:2432 -#: js/blocks.js:2433 -#: js/blocks.js:2625 -#: js/blocks.js:2869 -#: js/blocks.js:3025 -#: js/blocks.js:3866 -#: js/blocks.js:4704 -#: js/rhythmruler.js:1149 -#: js/rhythmruler.js:1151 -#: js/rhythmruler.js:1251 -#: js/rhythmruler.js:1253 -#: js/block.js:923 -#: js/block.js:4841 -#: js/block.js:4850 -#: js/block.js:4861 -#: js/activity.js:3079 -#: js/palette.js:737 -#: js/palette.js:746 -#: js/palette.js:755 -#: js/palette.js:764 -#: js/palette.js:2043 -#: js/palette.js:2054 -#: js/palette.js:2065 -#: js/palette.js:2076 -#: js/palette.js:2086 -#: js/turtledefs.js:23 -#: js/basicblocks.js:1474 -#: js/basicblocks.js:1488 -#: js/basicblocks.js:1502 -#: js/basicblocks.js:3808 -#: js/basicblocks.js:3848 -#: js/basicblocks.js:3858 -#: js/basicblocks.js:3896 -#: js/basicblocks.js:3909 -#: js/basicblocks.js:3950 -#: js/basicblocks.js:4005 -#: js/basicblocks.js:4010 -#: js/basicblocks.js:4015 -#: js/rubrics.js:477 -#: js/macros.js:45 -#: js/blocks.js:816 -#: js/blocks.js:2433 -#: js/blocks.js:2434 -#: js/blocks.js:2626 -#: js/blocks.js:2870 -#: js/blocks.js:3026 -#: js/blocks.js:3867 -#: js/blocks.js:4705 -#: js/rhythmruler.js:1157 -#: js/rhythmruler.js:1159 -#: js/rhythmruler.js:1259 -#: js/rhythmruler.js:1261 -#: js/block.js:923 -#: js/block.js:4845 -#: js/block.js:4854 -#: js/block.js:4865 -#: js/activity.js:3083 -#: js/palette.js:765 -#: js/palette.js:774 -#: js/palette.js:783 -#: js/palette.js:792 -#: js/palette.js:2072 -#: js/palette.js:2083 -#: js/palette.js:2094 -#: js/palette.js:2105 -#: js/palette.js:2115 -#: js/turtledefs.js:25 -#: js/basicblocks.js:1474 -#: js/basicblocks.js:1488 -#: js/basicblocks.js:1502 -#: js/basicblocks.js:3808 -#: js/basicblocks.js:3848 -#: js/basicblocks.js:3858 -#: js/basicblocks.js:3896 -#: js/basicblocks.js:3909 -#: js/basicblocks.js:3950 -#: js/basicblocks.js:4005 -#: js/basicblocks.js:4010 -#: js/basicblocks.js:4015 -#: js/rubrics.js:477 -#: js/macros.js:45 -#: js/blocks.js:816 -#: js/blocks.js:2433 -#: js/blocks.js:2434 -#: js/blocks.js:2626 -#: js/blocks.js:2870 -#: js/blocks.js:3026 -#: js/blocks.js:3867 -#: js/blocks.js:4705 -#: js/rhythmruler.js:1157 -#: js/rhythmruler.js:1159 -#: js/rhythmruler.js:1259 -#: js/rhythmruler.js:1261 -#: js/block.js:923 -#: js/block.js:4845 -#: js/block.js:4854 -#: js/block.js:4865 -#: js/activity.js:3083 -#: js/palette.js:765 -#: js/palette.js:774 -#: js/palette.js:783 -#: js/palette.js:792 -#: js/palette.js:2072 -#: js/palette.js:2083 -#: js/palette.js:2094 -#: js/palette.js:2105 -#: js/palette.js:2115 -#: js/turtledefs.js:25 -#: js/basicblocks.js:1474 -#: js/basicblocks.js:1488 -#: js/basicblocks.js:1502 -#: js/basicblocks.js:3808 -#: js/basicblocks.js:3848 -#: js/basicblocks.js:3858 -#: js/basicblocks.js:3896 -#: js/basicblocks.js:3909 -#: js/basicblocks.js:3950 -#: js/basicblocks.js:4005 -#: js/basicblocks.js:4010 -#: js/basicblocks.js:4015 -#: js/rubrics.js:477 -#: js/macros.js:45 -#: js/blocks.js:816 -#: js/blocks.js:2433 -#: js/blocks.js:2434 -#: js/blocks.js:2626 -#: js/blocks.js:2870 -#: js/blocks.js:3026 -#: js/blocks.js:3867 -#: js/blocks.js:4705 -#: js/rhythmruler.js:1157 -#: js/rhythmruler.js:1159 -#: js/rhythmruler.js:1259 -#: js/rhythmruler.js:1261 -#: js/block.js:923 -#: js/block.js:4845 -#: js/block.js:4854 -#: js/block.js:4865 -#: js/activity.js:3083 -#: js/palette.js:765 -#: js/palette.js:774 -#: js/palette.js:783 -#: js/palette.js:792 -#: js/palette.js:2072 -#: js/palette.js:2083 -#: js/palette.js:2094 -#: js/palette.js:2105 -#: js/palette.js:2115 -#: js/turtledefs.js:25 -#: js/basicblocks.js:1474 -#: js/basicblocks.js:1488 -#: js/basicblocks.js:1502 -#: js/basicblocks.js:3808 -#: js/basicblocks.js:3848 -#: js/basicblocks.js:3858 -#: js/basicblocks.js:3896 -#: js/basicblocks.js:3909 -#: js/basicblocks.js:3950 -#: js/basicblocks.js:4005 -#: js/basicblocks.js:4010 -#: js/basicblocks.js:4015 -#: js/rubrics.js:477 -#: js/macros.js:45 -#: js/blocks.js:816 -#: js/blocks.js:2433 -#: js/blocks.js:2434 -#: js/blocks.js:2626 -#: js/blocks.js:2870 -#: js/blocks.js:3026 -#: js/blocks.js:3867 -#: js/blocks.js:4705 -#: js/rhythmruler.js:1157 -#: js/rhythmruler.js:1159 -#: js/rhythmruler.js:1259 -#: js/rhythmruler.js:1261 -#: js/block.js:926 -#: js/block.js:4883 -#: js/block.js:4892 -#: js/block.js:4903 -#: js/activity.js:3083 -#: js/palette.js:765 -#: js/palette.js:774 -#: js/palette.js:783 -#: js/palette.js:792 -#: js/palette.js:2075 -#: js/palette.js:2086 -#: js/palette.js:2097 -#: js/palette.js:2108 -#: js/palette.js:2118 -#: js/turtledefs.js:25 -#: js/basicblocks.js:1474 -#: js/basicblocks.js:1488 -#: js/basicblocks.js:1502 -#: js/basicblocks.js:3830 -#: js/basicblocks.js:3870 -#: js/basicblocks.js:3880 -#: js/basicblocks.js:3918 -#: js/basicblocks.js:3931 -#: js/basicblocks.js:3972 -#: js/basicblocks.js:4027 -#: js/basicblocks.js:4032 -#: js/basicblocks.js:4037 -#: js/rubrics.js:478 -#: js/macros.js:45 -#: js/blocks.js:816 -#: js/blocks.js:2437 -#: js/blocks.js:2438 -#: js/blocks.js:2630 -#: js/blocks.js:2874 -#: js/blocks.js:3030 -#: js/blocks.js:3871 -#: js/blocks.js:4724 -#: js/rhythmruler.js:1157 -#: js/rhythmruler.js:1159 -#: js/rhythmruler.js:1259 -#: js/rhythmruler.js:1261 -#: js/block.js:926 -#: js/block.js:4883 -#: js/block.js:4892 -#: js/block.js:4903 -#: js/activity.js:3078 -#: js/palette.js:765 -#: js/palette.js:774 -#: js/palette.js:783 -#: js/palette.js:792 -#: js/palette.js:2075 -#: js/palette.js:2086 -#: js/palette.js:2097 -#: js/palette.js:2108 -#: js/palette.js:2118 -#: js/turtledefs.js:25 -#: js/basicblocks.js:1475 -#: js/basicblocks.js:1489 -#: js/basicblocks.js:1503 -#: js/basicblocks.js:3832 -#: js/basicblocks.js:3872 -#: js/basicblocks.js:3882 -#: js/basicblocks.js:3920 -#: js/basicblocks.js:3933 -#: js/basicblocks.js:3974 -#: js/basicblocks.js:4029 -#: js/basicblocks.js:4034 -#: js/basicblocks.js:4039 -#: js/rubrics.js:478 -#: js/macros.js:45 -#: js/blocks.js:816 -#: js/blocks.js:2437 -#: js/blocks.js:2438 -#: js/blocks.js:2630 -#: js/blocks.js:2874 -#: js/blocks.js:3030 -#: js/blocks.js:3871 -#: js/blocks.js:4724 -#: js/rhythmruler.js:1162 -#: js/rhythmruler.js:1164 -#: js/rhythmruler.js:1272 -#: js/rhythmruler.js:1274 -#: js/block.js:1046 -#: js/block.js:5109 -#: js/block.js:5118 -#: js/block.js:5129 -#: js/activity.js:3147 -#: js/palette.js:766 -#: js/palette.js:775 -#: js/palette.js:784 -#: js/palette.js:793 -#: js/palette.js:2076 -#: js/palette.js:2087 -#: js/palette.js:2098 -#: js/palette.js:2109 -#: js/palette.js:2119 -#: js/turtledefs.js:25 -#: js/basicblocks.js:1504 -#: js/basicblocks.js:1524 -#: js/basicblocks.js:1538 -#: js/basicblocks.js:3894 -#: js/basicblocks.js:3934 -#: js/basicblocks.js:3944 -#: js/basicblocks.js:3992 -#: js/basicblocks.js:4005 -#: js/basicblocks.js:4052 -#: js/basicblocks.js:4107 -#: js/basicblocks.js:4112 -#: js/basicblocks.js:4117 -#: js/rubrics.js:478 -#: js/macros.js:45 -#: js/blocks.js:816 -#: js/blocks.js:2437 -#: js/blocks.js:2438 -#: js/blocks.js:2630 -#: js/blocks.js:2874 -#: js/blocks.js:3030 -#: js/blocks.js:3940 -#: js/blocks.js:4793 -#: js/rhythmruler.js:1162 -#: js/rhythmruler.js:1164 -#: js/rhythmruler.js:1272 -#: js/rhythmruler.js:1274 -#: js/block.js:1050 -#: js/block.js:5120 -#: js/block.js:5129 -#: js/block.js:5140 -#: js/activity.js:2267 -#: js/palette.js:766 -#: js/palette.js:775 -#: js/palette.js:784 -#: js/palette.js:793 -#: js/palette.js:2094 -#: js/palette.js:2105 -#: js/palette.js:2116 -#: js/palette.js:2127 -#: js/palette.js:2137 -#: js/turtledefs.js:25 -#: js/basicblocks.js:1514 -#: js/basicblocks.js:1534 -#: js/basicblocks.js:1548 -#: js/basicblocks.js:3942 -#: js/basicblocks.js:3982 -#: js/basicblocks.js:3992 -#: js/basicblocks.js:4040 -#: js/basicblocks.js:4053 -#: js/basicblocks.js:4100 -#: js/basicblocks.js:4155 -#: js/basicblocks.js:4160 -#: js/basicblocks.js:4165 -#: js/rubrics.js:478 -#: js/macros.js:45 -#: js/blocks.js:809 -#: js/blocks.js:2430 -#: js/blocks.js:2431 -#: js/blocks.js:2623 -#: js/blocks.js:2867 -#: js/blocks.js:3023 -#: js/blocks.js:3931 -#: js/blocks.js:4784 -#: js/rhythmruler.js:1162 -#: js/rhythmruler.js:1164 -#: js/rhythmruler.js:1272 -#: js/rhythmruler.js:1274 -#: js/block.js:1050 -#: js/block.js:5120 -#: js/block.js:5129 -#: js/block.js:5140 -#: js/activity.js:2267 -#: js/palette.js:766 -#: js/palette.js:775 -#: js/palette.js:784 -#: js/palette.js:793 -#: js/palette.js:2094 -#: js/palette.js:2105 -#: js/palette.js:2116 -#: js/palette.js:2127 -#: js/palette.js:2137 -#: js/turtledefs.js:25 -#: js/basicblocks.js:1519 -#: js/basicblocks.js:1539 -#: js/basicblocks.js:1553 -#: js/basicblocks.js:3959 -#: js/basicblocks.js:3999 -#: js/basicblocks.js:4009 -#: js/basicblocks.js:4057 -#: js/basicblocks.js:4070 -#: js/basicblocks.js:4117 -#: js/basicblocks.js:4172 -#: js/basicblocks.js:4177 -#: js/basicblocks.js:4182 -#: js/rubrics.js:478 -#: js/macros.js:45 -#: js/blocks.js:809 -#: js/blocks.js:2430 -#: js/blocks.js:2431 -#: js/blocks.js:2623 -#: js/blocks.js:2867 -#: js/blocks.js:3023 -#: js/blocks.js:3931 -#: js/blocks.js:4784 -#: js/rhythmruler.js:1162 -#: js/rhythmruler.js:1164 -#: js/rhythmruler.js:1272 -#: js/rhythmruler.js:1274 -#: js/block.js:1050 -#: js/block.js:5120 -#: js/block.js:5129 -#: js/block.js:5140 -#: js/activity.js:2267 -#: js/palette.js:766 -#: js/palette.js:775 -#: js/palette.js:784 -#: js/palette.js:793 -#: js/palette.js:2094 -#: js/palette.js:2105 -#: js/palette.js:2116 -#: js/palette.js:2127 -#: js/palette.js:2137 -#: js/turtledefs.js:25 -#: js/basicblocks.js:1519 -#: js/basicblocks.js:1539 -#: js/basicblocks.js:1553 -#: js/basicblocks.js:3959 -#: js/basicblocks.js:3999 -#: js/basicblocks.js:4009 -#: js/basicblocks.js:4057 -#: js/basicblocks.js:4070 -#: js/basicblocks.js:4117 -#: js/basicblocks.js:4172 -#: js/basicblocks.js:4177 -#: js/basicblocks.js:4182 -#: js/rubrics.js:478 -#: js/macros.js:45 -#: js/blocks.js:808 -#: js/blocks.js:2429 -#: js/blocks.js:2430 -#: js/blocks.js:2622 -#: js/blocks.js:2866 -#: js/blocks.js:3022 -#: js/blocks.js:3930 -#: js/blocks.js:4783 -#: js/rhythmruler.js:1162 -#: js/rhythmruler.js:1164 -#: js/rhythmruler.js:1272 -#: js/rhythmruler.js:1274 -#: js/block.js:1050 -#: js/block.js:5120 -#: js/block.js:5129 -#: js/block.js:5140 -#: js/activity.js:2267 -#: js/palette.js:766 -#: js/palette.js:775 -#: js/palette.js:784 -#: js/palette.js:793 -#: js/palette.js:2094 -#: js/palette.js:2105 -#: js/palette.js:2116 -#: js/palette.js:2127 -#: js/palette.js:2137 -#: js/turtledefs.js:25 -#: js/basicblocks.js:1519 -#: js/basicblocks.js:1539 -#: js/basicblocks.js:1553 -#: js/basicblocks.js:3959 -#: js/basicblocks.js:3999 -#: js/basicblocks.js:4009 -#: js/basicblocks.js:4057 -#: js/basicblocks.js:4070 -#: js/basicblocks.js:4117 -#: js/basicblocks.js:4172 -#: js/basicblocks.js:4177 -#: js/basicblocks.js:4182 -#: js/rubrics.js:478 -#: js/macros.js:45 -#: js/blocks.js:808 -#: js/blocks.js:2429 -#: js/blocks.js:2430 -#: js/blocks.js:2622 -#: js/blocks.js:2866 -#: js/blocks.js:3022 -#: js/blocks.js:3930 -#: js/blocks.js:4783 -#: js/rhythmruler.js:1162 -#: js/rhythmruler.js:1164 -#: js/rhythmruler.js:1272 -#: js/rhythmruler.js:1274 -#: js/block.js:1050 -#: js/block.js:5120 -#: js/block.js:5129 -#: js/block.js:5140 -#: js/activity.js:2267 -#: js/palette.js:766 -#: js/palette.js:775 -#: js/palette.js:784 -#: js/palette.js:793 -#: js/palette.js:2094 -#: js/palette.js:2105 -#: js/palette.js:2116 -#: js/palette.js:2127 -#: js/palette.js:2137 -#: js/turtledefs.js:25 -#: js/basicblocks.js:1526 -#: js/basicblocks.js:1546 -#: js/basicblocks.js:1560 -#: js/basicblocks.js:3966 -#: js/basicblocks.js:4006 -#: js/basicblocks.js:4016 -#: js/basicblocks.js:4064 -#: js/basicblocks.js:4077 -#: js/basicblocks.js:4124 -#: js/basicblocks.js:4179 -#: js/basicblocks.js:4184 -#: js/basicblocks.js:4189 -#: js/rubrics.js:478 -#: js/macros.js:45 -#: js/blocks.js:808 -#: js/blocks.js:2429 -#: js/blocks.js:2430 -#: js/blocks.js:2622 -#: js/blocks.js:2866 -#: js/blocks.js:3022 -#: js/blocks.js:3930 -#: js/blocks.js:4783 -#: js/rhythmruler.js:1162 -#: js/rhythmruler.js:1164 -#: js/rhythmruler.js:1272 -#: js/rhythmruler.js:1274 -#: js/block.js:1162 -#: js/block.js:5410 -#: js/block.js:5419 -#: js/block.js:5430 -#: js/activity.js:2268 -#: js/palette.js:770 -#: js/palette.js:779 -#: js/palette.js:788 -#: js/palette.js:797 -#: js/palette.js:2098 -#: js/palette.js:2109 -#: js/palette.js:2120 -#: js/palette.js:2131 -#: js/palette.js:2141 -#: js/turtledefs.js:31 -#: js/basicblocks.js:1528 -#: js/basicblocks.js:1548 -#: js/basicblocks.js:1562 -#: js/basicblocks.js:3968 -#: js/basicblocks.js:4008 -#: js/basicblocks.js:4018 -#: js/basicblocks.js:4066 -#: js/basicblocks.js:4079 -#: js/basicblocks.js:4126 -#: js/basicblocks.js:4181 -#: js/basicblocks.js:4186 -#: js/basicblocks.js:4191 -#: js/rubrics.js:478 -#: js/macros.js:45 -#: js/blocks.js:1023 -#: js/blocks.js:2839 -#: js/blocks.js:2840 -#: js/blocks.js:3054 -#: js/blocks.js:3356 -#: js/blocks.js:3549 -#: js/blocks.js:4588 -#: js/blocks.js:5446 -#: js/musickeyboard.js:369 -#: js/pitchtimematrix.js:1612 -#: js/rhythmruler.js:1171 -#: js/rhythmruler.js:1173 -#: js/rhythmruler.js:1281 -#: js/rhythmruler.js:1283 -#: js/block.js:1162 -#: js/block.js:5410 -#: js/block.js:5419 -#: js/block.js:5430 -#: js/activity.js:2268 -#: js/palette.js:770 -#: js/palette.js:779 -#: js/palette.js:788 -#: js/palette.js:797 -#: js/palette.js:2098 -#: js/palette.js:2109 -#: js/palette.js:2120 -#: js/palette.js:2131 -#: js/palette.js:2141 -#: js/turtledefs.js:35 -#: js/basicblocks.js:1528 -#: js/basicblocks.js:1548 -#: js/basicblocks.js:1562 -#: js/basicblocks.js:3968 -#: js/basicblocks.js:4008 -#: js/basicblocks.js:4018 -#: js/basicblocks.js:4066 -#: js/basicblocks.js:4079 -#: js/basicblocks.js:4126 -#: js/basicblocks.js:4181 -#: js/basicblocks.js:4186 -#: js/basicblocks.js:4191 -#: js/rubrics.js:478 -#: js/macros.js:45 -#: js/blocks.js:1023 -#: js/blocks.js:2839 -#: js/blocks.js:2840 -#: js/blocks.js:3054 -#: js/blocks.js:3356 -#: js/blocks.js:3549 -#: js/blocks.js:4588 -#: js/blocks.js:5446 -#: js/musickeyboard.js:369 -#: js/pitchtimematrix.js:1612 -#: js/rhythmruler.js:1171 -#: js/rhythmruler.js:1173 -#: js/rhythmruler.js:1281 -#: js/rhythmruler.js:1283 -#: js/block.js:1162 -#: js/block.js:5410 -#: js/block.js:5419 -#: js/block.js:5430 -#: js/activity.js:2133 -#: js/palette.js:770 -#: js/palette.js:779 -#: js/palette.js:788 -#: js/palette.js:797 -#: js/palette.js:2098 -#: js/palette.js:2109 -#: js/palette.js:2120 -#: js/palette.js:2131 -#: js/palette.js:2141 -#: js/turtledefs.js:35 -#: js/basicblocks.js:1528 -#: js/basicblocks.js:1548 -#: js/basicblocks.js:1562 -#: js/basicblocks.js:3968 -#: js/basicblocks.js:4008 -#: js/basicblocks.js:4018 -#: js/basicblocks.js:4066 -#: js/basicblocks.js:4079 -#: js/basicblocks.js:4126 -#: js/basicblocks.js:4181 -#: js/basicblocks.js:4186 -#: js/basicblocks.js:4191 -#: js/rubrics.js:478 -#: js/macros.js:45 -#: js/blocks.js:1023 -#: js/blocks.js:2839 -#: js/blocks.js:2840 -#: js/blocks.js:3054 -#: js/blocks.js:3356 -#: js/blocks.js:3549 -#: js/blocks.js:4588 -#: js/blocks.js:5446 -#: js/musickeyboard.js:369 -#: js/pitchtimematrix.js:1612 -#: js/rhythmruler.js:1171 -#: js/rhythmruler.js:1173 -#: js/rhythmruler.js:1281 -#: js/rhythmruler.js:1283 -#: js/block.js:1162 -#: js/block.js:5410 -#: js/block.js:5419 -#: js/block.js:5430 -#: js/activity.js:2133 -#: js/palette.js:770 -#: js/palette.js:779 -#: js/palette.js:788 -#: js/palette.js:797 -#: js/palette.js:2098 -#: js/palette.js:2109 -#: js/palette.js:2120 -#: js/palette.js:2131 -#: js/palette.js:2141 -#: js/turtledefs.js:35 -#: js/basicblocks.js:1528 -#: js/basicblocks.js:1548 -#: js/basicblocks.js:1562 -#: js/basicblocks.js:3968 -#: js/basicblocks.js:4008 -#: js/basicblocks.js:4018 -#: js/basicblocks.js:4066 -#: js/basicblocks.js:4079 -#: js/basicblocks.js:4126 -#: js/basicblocks.js:4181 -#: js/basicblocks.js:4186 -#: js/basicblocks.js:4191 -#: js/rubrics.js:478 -#: js/macros.js:45 -#: js/blocks.js:1023 -#: js/blocks.js:2839 -#: js/blocks.js:2840 -#: js/blocks.js:3054 -#: js/blocks.js:3356 -#: js/blocks.js:3549 -#: js/blocks.js:4588 -#: js/blocks.js:5446 -#: js/musickeyboard.js:369 -#: js/pitchtimematrix.js:1612 -#: js/rhythmruler.js:1171 -#: js/rhythmruler.js:1173 -#: js/rhythmruler.js:1281 -#: js/rhythmruler.js:1283 -#: js/block.js:1162 -#: js/block.js:5410 -#: js/block.js:5419 -#: js/block.js:5430 -#: js/activity.js:2127 -#: js/palette.js:770 -#: js/palette.js:779 -#: js/palette.js:788 -#: js/palette.js:797 -#: js/palette.js:2098 -#: js/palette.js:2109 -#: js/palette.js:2120 -#: js/palette.js:2131 -#: js/palette.js:2141 -#: js/turtledefs.js:35 -#: js/basicblocks.js:1528 -#: js/basicblocks.js:1548 -#: js/basicblocks.js:1562 -#: js/basicblocks.js:3968 -#: js/basicblocks.js:4008 -#: js/basicblocks.js:4018 -#: js/basicblocks.js:4066 -#: js/basicblocks.js:4079 -#: js/basicblocks.js:4127 -#: js/basicblocks.js:4182 -#: js/basicblocks.js:4187 -#: js/basicblocks.js:4192 -#: js/rubrics.js:478 -#: js/macros.js:45 -#: js/blocks.js:1023 -#: js/blocks.js:2849 -#: js/blocks.js:2850 -#: js/blocks.js:3064 -#: js/blocks.js:3366 -#: js/blocks.js:3559 -#: js/blocks.js:4598 -#: js/blocks.js:5455 -#: js/musickeyboard.js:369 -#: js/pitchtimematrix.js:1612 -#: js/rhythmruler.js:1171 -#: js/rhythmruler.js:1173 -#: js/rhythmruler.js:1281 -#: js/rhythmruler.js:1283 -#: js/block.js:1162 -#: js/block.js:5410 -#: js/block.js:5419 -#: js/block.js:5430 -#: js/activity.js:2127 -#: js/palette.js:770 -#: js/palette.js:779 -#: js/palette.js:788 -#: js/palette.js:797 -#: js/palette.js:2098 -#: js/palette.js:2109 -#: js/palette.js:2120 -#: js/palette.js:2131 -#: js/palette.js:2141 -#: js/turtledefs.js:35 -#: js/basicblocks.js:1527 -#: js/basicblocks.js:1547 -#: js/basicblocks.js:1561 -#: js/basicblocks.js:3967 -#: js/basicblocks.js:4007 -#: js/basicblocks.js:4017 -#: js/basicblocks.js:4065 -#: js/basicblocks.js:4078 -#: js/basicblocks.js:4126 -#: js/basicblocks.js:4181 -#: js/basicblocks.js:4186 -#: js/basicblocks.js:4191 -#: js/rubrics.js:478 -#: js/macros.js:45 -#: js/blocks.js:1023 -#: js/blocks.js:2849 -#: js/blocks.js:2850 -#: js/blocks.js:3064 -#: js/blocks.js:3366 -#: js/blocks.js:3559 -#: js/blocks.js:4598 -#: js/blocks.js:5455 -#: js/musickeyboard.js:369 -#: js/pitchtimematrix.js:1612 -#: js/rhythmruler.js:1171 -#: js/rhythmruler.js:1173 -#: js/rhythmruler.js:1281 -#: js/rhythmruler.js:1283 -#: js/block.js:1162 -#: js/block.js:5410 -#: js/block.js:5419 -#: js/block.js:5430 -#: js/activity.js:2127 -#: js/palette.js:770 -#: js/palette.js:779 -#: js/palette.js:788 -#: js/palette.js:797 -#: js/palette.js:2098 -#: js/palette.js:2109 -#: js/palette.js:2120 -#: js/palette.js:2131 -#: js/palette.js:2141 -#: js/turtledefs.js:35 -#: js/basicblocks.js:1527 -#: js/basicblocks.js:1547 -#: js/basicblocks.js:1561 -#: js/basicblocks.js:3967 -#: js/basicblocks.js:4007 -#: js/basicblocks.js:4017 -#: js/basicblocks.js:4065 -#: js/basicblocks.js:4078 -#: js/basicblocks.js:4126 -#: js/basicblocks.js:4181 -#: js/basicblocks.js:4186 -#: js/basicblocks.js:4191 -#: js/rubrics.js:478 -#: js/macros.js:45 -#: js/blocks.js:1023 -#: js/blocks.js:2849 -#: js/blocks.js:2850 -#: js/blocks.js:3064 -#: js/blocks.js:3366 -#: js/blocks.js:3559 -#: js/blocks.js:4598 -#: js/blocks.js:5455 -#: js/musickeyboard.js:369 -#: js/pitchtimematrix.js:1612 -#: js/rhythmruler.js:1171 -#: js/rhythmruler.js:1173 -#: js/rhythmruler.js:1281 -#: js/rhythmruler.js:1283 -#: js/block.js:1162 -#: js/block.js:5410 -#: js/block.js:5419 -#: js/block.js:5430 -#: js/activity.js:2127 -#: js/palette.js:770 -#: js/palette.js:779 -#: js/palette.js:788 -#: js/palette.js:797 -#: js/palette.js:2098 -#: js/palette.js:2109 -#: js/palette.js:2120 -#: js/palette.js:2131 -#: js/palette.js:2141 -#: js/turtledefs.js:35 -#: js/basicblocks.js:1527 -#: js/basicblocks.js:1547 -#: js/basicblocks.js:1561 -#: js/basicblocks.js:3967 -#: js/basicblocks.js:4007 -#: js/basicblocks.js:4017 -#: js/basicblocks.js:4065 -#: js/basicblocks.js:4078 -#: js/basicblocks.js:4126 -#: js/basicblocks.js:4181 -#: js/basicblocks.js:4186 -#: js/basicblocks.js:4191 -#: js/rubrics.js:478 -#: js/macros.js:45 -#: js/blocks.js:1023 -#: js/blocks.js:2849 -#: js/blocks.js:2850 -#: js/blocks.js:3064 -#: js/blocks.js:3366 -#: js/blocks.js:3559 -#: js/blocks.js:4598 -#: js/blocks.js:5455 -#: js/musickeyboard.js:369 -#: js/pitchtimematrix.js:1612 -#: js/rhythmruler.js:1171 -#: js/rhythmruler.js:1173 -#: js/rhythmruler.js:1281 -#: js/rhythmruler.js:1283 -#: js/block.js:1162 -#: js/block.js:5410 -#: js/block.js:5419 -#: js/block.js:5430 -#: js/activity.js:2127 -#: js/palette.js:770 -#: js/palette.js:779 -#: js/palette.js:788 -#: js/palette.js:797 -#: js/palette.js:2098 -#: js/palette.js:2109 -#: js/palette.js:2120 -#: js/palette.js:2131 -#: js/palette.js:2141 -#: js/turtledefs.js:35 -#: js/basicblocks.js:1531 -#: js/basicblocks.js:1551 -#: js/basicblocks.js:1565 -#: js/basicblocks.js:3971 -#: js/basicblocks.js:4011 -#: js/basicblocks.js:4021 -#: js/basicblocks.js:4069 -#: js/basicblocks.js:4082 -#: js/basicblocks.js:4130 -#: js/basicblocks.js:4185 -#: js/basicblocks.js:4190 -#: js/basicblocks.js:4195 -#: js/rubrics.js:478 -#: js/macros.js:45 -#: js/blocks.js:1023 -#: js/blocks.js:2849 -#: js/blocks.js:2850 -#: js/blocks.js:3064 -#: js/blocks.js:3366 -#: js/blocks.js:3559 -#: js/blocks.js:4598 -#: js/blocks.js:5455 -#: js/musickeyboard.js:369 -#: js/pitchtimematrix.js:1612 -#: js/rhythmruler.js:1171 -#: js/rhythmruler.js:1173 -#: js/rhythmruler.js:1281 -#: js/rhythmruler.js:1283 -#: js/block.js:1162 -#: js/block.js:5410 -#: js/block.js:5419 -#: js/block.js:5430 -#: js/activity.js:2127 -#: js/palette.js:770 -#: js/palette.js:779 -#: js/palette.js:788 -#: js/palette.js:797 -#: js/palette.js:2098 -#: js/palette.js:2109 -#: js/palette.js:2120 -#: js/palette.js:2131 -#: js/palette.js:2141 -#: js/turtledefs.js:35 -#: js/basicblocks.js:1531 -#: js/basicblocks.js:1551 -#: js/basicblocks.js:1565 -#: js/basicblocks.js:3971 -#: js/basicblocks.js:4011 -#: js/basicblocks.js:4021 -#: js/basicblocks.js:4069 -#: js/basicblocks.js:4082 -#: js/basicblocks.js:4130 -#: js/basicblocks.js:4185 -#: js/basicblocks.js:4190 -#: js/basicblocks.js:4195 -#: js/rubrics.js:478 -#: js/macros.js:45 -#: js/blocks.js:1023 -#: js/blocks.js:2849 -#: js/blocks.js:2850 -#: js/blocks.js:3064 -#: js/blocks.js:3366 -#: js/blocks.js:3559 -#: js/blocks.js:4598 -#: js/blocks.js:5455 -#: js/musickeyboard.js:369 -#: js/pitchtimematrix.js:1612 -#: js/rhythmruler.js:1171 -#: js/rhythmruler.js:1173 -#: js/rhythmruler.js:1281 -#: js/rhythmruler.js:1283 -#: js/block.js:1162 -#: js/block.js:5410 -#: js/block.js:5419 -#: js/block.js:5430 -#: js/activity.js:2127 -#: js/palette.js:770 -#: js/palette.js:779 -#: js/palette.js:788 -#: js/palette.js:797 -#: js/palette.js:2098 -#: js/palette.js:2109 -#: js/palette.js:2120 -#: js/palette.js:2131 -#: js/palette.js:2141 -#: js/turtledefs.js:35 -#: js/basicblocks.js:1531 -#: js/basicblocks.js:1551 -#: js/basicblocks.js:1565 -#: js/basicblocks.js:3971 -#: js/basicblocks.js:4011 -#: js/basicblocks.js:4021 -#: js/basicblocks.js:4069 -#: js/basicblocks.js:4082 -#: js/basicblocks.js:4130 -#: js/basicblocks.js:4185 -#: js/basicblocks.js:4190 -#: js/basicblocks.js:4195 -#: js/rubrics.js:478 -#: js/macros.js:45 -#: js/blocks.js:1023 -#: js/blocks.js:2849 -#: js/blocks.js:2850 -#: js/blocks.js:3064 -#: js/blocks.js:3366 -#: js/blocks.js:3559 -#: js/blocks.js:4598 -#: js/blocks.js:5455 -#: js/musickeyboard.js:369 -#: js/pitchtimematrix.js:1612 -#: js/rhythmruler.js:1171 -#: js/rhythmruler.js:1173 -#: js/rhythmruler.js:1281 -#: js/rhythmruler.js:1283 -#: js/block.js:1162 -#: js/block.js:5413 -#: js/block.js:5422 -#: js/block.js:5433 -#: js/activity.js:2127 -#: js/palette.js:770 -#: js/palette.js:779 -#: js/palette.js:788 -#: js/palette.js:797 -#: js/palette.js:2098 -#: js/palette.js:2109 -#: js/palette.js:2120 -#: js/palette.js:2131 -#: js/palette.js:2141 -#: js/turtledefs.js:35 -#: js/basicblocks.js:1537 -#: js/basicblocks.js:1557 -#: js/basicblocks.js:1571 -#: js/basicblocks.js:3977 -#: js/basicblocks.js:4017 -#: js/basicblocks.js:4027 -#: js/basicblocks.js:4075 -#: js/basicblocks.js:4088 -#: js/basicblocks.js:4136 -#: js/basicblocks.js:4191 -#: js/basicblocks.js:4196 -#: js/basicblocks.js:4201 -#: js/rubrics.js:478 -#: js/macros.js:45 -#: js/blocks.js:1023 -#: js/blocks.js:2849 -#: js/blocks.js:2850 -#: js/blocks.js:3064 -#: js/blocks.js:3366 -#: js/blocks.js:3559 -#: js/blocks.js:4598 -#: js/blocks.js:5455 -#: js/musickeyboard.js:369 -#: js/pitchtimematrix.js:1612 -#: js/rhythmruler.js:1171 -#: js/rhythmruler.js:1173 -#: js/rhythmruler.js:1281 -#: js/rhythmruler.js:1283 -#: js/block.js:1162 -#: js/block.js:5430 -#: js/block.js:5439 -#: js/block.js:5450 -#: js/activity.js:2134 -#: js/palette.js:810 -#: js/palette.js:819 -#: js/palette.js:828 -#: js/palette.js:837 -#: js/palette.js:2142 -#: js/palette.js:2153 -#: js/palette.js:2164 -#: js/palette.js:2175 -#: js/palette.js:2185 -#: js/turtledefs.js:35 -#: js/basicblocks.js:1542 -#: js/basicblocks.js:1562 -#: js/basicblocks.js:1576 -#: js/basicblocks.js:3982 -#: js/basicblocks.js:4022 -#: js/basicblocks.js:4032 -#: js/basicblocks.js:4080 -#: js/basicblocks.js:4093 -#: js/basicblocks.js:4141 -#: js/basicblocks.js:4196 -#: js/basicblocks.js:4201 -#: js/basicblocks.js:4206 -#: js/rubrics.js:478 -#: js/macros.js:45 -#: js/blocks.js:1023 -#: js/blocks.js:2849 -#: js/blocks.js:2850 -#: js/blocks.js:3064 -#: js/blocks.js:3366 -#: js/blocks.js:3559 -#: js/blocks.js:4600 -#: js/blocks.js:5457 -#: js/musickeyboard.js:369 -#: js/pitchtimematrix.js:1612 -#: js/rhythmruler.js:1176 -#: js/rhythmruler.js:1178 -#: js/rhythmruler.js:1286 -#: js/rhythmruler.js:1288 -#: js/block.js:1162 -#: js/block.js:5430 -#: js/block.js:5439 -#: js/block.js:5450 -#: js/activity.js:2134 -#: js/palette.js:810 -#: js/palette.js:819 -#: js/palette.js:828 -#: js/palette.js:837 -#: js/palette.js:2142 -#: js/palette.js:2153 -#: js/palette.js:2164 -#: js/palette.js:2175 -#: js/palette.js:2185 -#: js/turtledefs.js:35 -#: js/basicblocks.js:1542 -#: js/basicblocks.js:1562 -#: js/basicblocks.js:1576 -#: js/basicblocks.js:3982 -#: js/basicblocks.js:4022 -#: js/basicblocks.js:4032 -#: js/basicblocks.js:4080 -#: js/basicblocks.js:4093 -#: js/basicblocks.js:4141 -#: js/basicblocks.js:4196 -#: js/basicblocks.js:4201 -#: js/basicblocks.js:4206 -#: js/rubrics.js:478 -#: js/macros.js:45 -#: js/blocks.js:1023 -#: js/blocks.js:2849 -#: js/blocks.js:2850 -#: js/blocks.js:3064 -#: js/blocks.js:3366 -#: js/blocks.js:3559 -#: js/blocks.js:4600 -#: js/blocks.js:5457 -#: js/musickeyboard.js:369 -#: js/pitchtimematrix.js:1612 -#: js/rhythmruler.js:1176 -#: js/rhythmruler.js:1178 -#: js/rhythmruler.js:1286 -#: js/rhythmruler.js:1288 -#: js/block.js:1162 -#: js/block.js:5430 -#: js/block.js:5439 -#: js/block.js:5450 -#: js/activity.js:2134 -#: js/palette.js:810 -#: js/palette.js:819 -#: js/palette.js:828 -#: js/palette.js:837 -#: js/palette.js:2142 -#: js/palette.js:2153 -#: js/palette.js:2164 -#: js/palette.js:2175 -#: js/palette.js:2185 -#: js/turtledefs.js:35 -#: js/basicblocks.js:1542 -#: js/basicblocks.js:1562 -#: js/basicblocks.js:1576 -#: js/basicblocks.js:3982 -#: js/basicblocks.js:4022 -#: js/basicblocks.js:4032 -#: js/basicblocks.js:4080 -#: js/basicblocks.js:4093 -#: js/basicblocks.js:4141 -#: js/basicblocks.js:4196 -#: js/basicblocks.js:4201 -#: js/basicblocks.js:4206 -#: js/rubrics.js:478 -#: js/macros.js:45 -#: js/blocks.js:1023 -#: js/blocks.js:2849 -#: js/blocks.js:2850 -#: js/blocks.js:3064 -#: js/blocks.js:3366 -#: js/blocks.js:3559 -#: js/blocks.js:4600 -#: js/blocks.js:5457 -#: js/musickeyboard.js:369 -#: js/pitchtimematrix.js:1612 -#: js/rhythmruler.js:1176 -#: js/rhythmruler.js:1178 -#: js/rhythmruler.js:1286 -#: js/rhythmruler.js:1288 -#: js/block.js:1162 -#: js/block.js:5445 -#: js/block.js:5454 -#: js/block.js:5465 -#: js/activity.js:2137 -#: js/palette.js:810 -#: js/palette.js:819 -#: js/palette.js:828 -#: js/palette.js:837 -#: js/palette.js:2142 -#: js/palette.js:2153 -#: js/palette.js:2164 -#: js/palette.js:2175 -#: js/palette.js:2185 -#: js/turtledefs.js:35 -#: js/basicblocks.js:1553 -#: js/basicblocks.js:1573 -#: js/basicblocks.js:1587 -#: js/basicblocks.js:3993 -#: js/basicblocks.js:4033 -#: js/basicblocks.js:4043 -#: js/basicblocks.js:4091 -#: js/basicblocks.js:4104 -#: js/basicblocks.js:4152 -#: js/basicblocks.js:4207 -#: js/basicblocks.js:4212 -#: js/basicblocks.js:4217 -#: js/rubrics.js:478 -#: js/macros.js:45 -#: js/blocks.js:1023 -#: js/blocks.js:2849 -#: js/blocks.js:2850 -#: js/blocks.js:3064 -#: js/blocks.js:3366 -#: js/blocks.js:3559 -#: js/blocks.js:4600 -#: js/blocks.js:5457 -#: js/musickeyboard.js:370 -#: js/pitchtimematrix.js:1642 -#: js/rhythmruler.js:1176 -#: js/rhythmruler.js:1178 -#: js/rhythmruler.js:1286 -#: js/rhythmruler.js:1288 -#: js/block.js:1165 -#: js/block.js:5575 -#: js/block.js:5584 -#: js/block.js:5595 -#: js/activity.js:2240 -#: js/palette.js:812 -#: js/palette.js:821 -#: js/palette.js:830 -#: js/palette.js:839 -#: js/palette.js:2144 -#: js/palette.js:2155 -#: js/palette.js:2166 -#: js/palette.js:2177 -#: js/palette.js:2187 -#: js/turtledefs.js:35 -#: js/basicblocks.js:1559 -#: js/basicblocks.js:1579 -#: js/basicblocks.js:1593 -#: js/basicblocks.js:4003 -#: js/basicblocks.js:4043 -#: js/basicblocks.js:4053 -#: js/basicblocks.js:4101 -#: js/basicblocks.js:4114 -#: js/basicblocks.js:4162 -#: js/basicblocks.js:4217 -#: js/basicblocks.js:4222 -#: js/basicblocks.js:4227 -#: js/rubrics.js:478 -#: js/macros.js:45 -#: js/macros.js:46 -#: js/blocks.js:1025 -#: js/blocks.js:2860 -#: js/blocks.js:2861 -#: js/blocks.js:3075 -#: js/blocks.js:3377 -#: js/blocks.js:3570 -#: js/blocks.js:4612 -#: js/blocks.js:5477 -#: js/musickeyboard.js:375 -#: js/pitchtimematrix.js:1716 -#: js/rhythmruler.js:1176 -#: js/rhythmruler.js:1178 -#: js/rhythmruler.js:1286 -#: js/rhythmruler.js:1288 -#: js/block.js:1186 -#: js/block.js:5751 -#: js/block.js:5760 -#: js/block.js:5771 -#: js/activity.js:2363 -#: js/palette.js:816 -#: js/palette.js:825 -#: js/palette.js:834 -#: js/palette.js:843 -#: js/palette.js:2148 -#: js/palette.js:2159 -#: js/palette.js:2170 -#: js/palette.js:2181 -#: js/palette.js:2190 -#: js/turtledefs.js:35 -#: js/basicblocks.js:1572 -#: js/basicblocks.js:1592 -#: js/basicblocks.js:1606 -#: js/basicblocks.js:4069 -#: js/basicblocks.js:4079 -#: js/basicblocks.js:4127 -#: js/basicblocks.js:4140 -#: js/basicblocks.js:4184 -#: js/basicblocks.js:4207 -#: js/basicblocks.js:4262 -#: js/basicblocks.js:4267 -#: js/basicblocks.js:4272 -#: js/rubrics.js:478 -#: js/macros.js:47 -#: js/macros.js:48 -#: js/macros.js:66 -#: js/macros.js:66 -#: js/macros.js:68 -#: js/macros.js:141 -#: js/blocks.js:1034 -#: js/blocks.js:2922 -#: js/blocks.js:2923 -#: js/blocks.js:3137 -#: js/blocks.js:3442 -#: js/blocks.js:3636 -#: js/blocks.js:4680 -#: js/blocks.js:5545 -#: js/musickeyboard.js:1823 -#: js/pitchtimematrix.js:3385 -#: js/rhythmruler.js:1229 -#: js/rhythmruler.js:1231 -#: js/rhythmruler.js:1340 -#: js/rhythmruler.js:1342 -#: js/RhythmBlockPaletteBlocks.js:14 -#: js/RhythmBlockPaletteBlocks.js:177 -#: js/RhythmBlockPaletteBlocks.js:14 -#: js/RhythmBlockPaletteBlocks.js:177 -#: js/RhythmBlockPaletteBlocks.js:14 -#: js/RhythmBlockPaletteBlocks.js:177 -#: js/RhythmBlockPaletteBlocks.js:14 -#: js/RhythmBlockPaletteBlocks.js:177 -#: js/RhythmBlockPaletteBlocks.js:14 -#: js/RhythmBlockPaletteBlocks.js:170 -#: js/block.js:1436 -#: js/block.js:7910 -#: js/block.js:7931 -#: js/block.js:7948 -#: js/activity.js:2693 -#: js/palette.js:932 -#: js/palette.js:941 -#: js/palette.js:950 -#: js/palette.js:959 -#: js/palette.js:2511 -#: js/palette.js:2522 -#: js/palette.js:2533 -#: js/palette.js:2544 -#: js/palette.js:2563 -#: js/turtledefs.js:76 -#: js/rubrics.js:497 -#: js/macros.js:153 -#: js/macros.js:249 -#: js/macros.js:250 -#: js/macros.js:259 -#: js/macros.js:801 -#: js/blocks.js:1120 -#: js/blocks.js:3549 -#: js/blocks.js:3550 -#: js/blocks.js:3786 -#: js/blocks.js:4168 -#: js/blocks.js:4363 -#: js/blocks.js:5526 -#: js/blocks.js:6776 -#: js/ActionBlocks.js:99 -#: js/ActionBlocks.js:147 -#: js/ActionBlocks.js:350 -#: js/ActionBlocks.js:415 -#: js/ActionBlocks.js:569 -#: js/ActionBlocks.js:629 -#: js/ActionBlocks.js:765 -#: js/ActionBlocks.js:768 -#: js/ActionBlocks.js:773 -#: js/ActionBlocks.js:805 -#: js/MeterBlocks.js:412 -#: js/MeterBlocks.js:479 -#: js/MeterBlocks.js:568 -#: js/MeterBlocks.js:669 -#: js/musickeyboard.js:2360 -#: js/pitchtimematrix.js:4708 -#: js/rhythmruler.js:1602 -#: js/rhythmruler.js:1610 -#: js/rhythmruler.js:1911 -#: js/rhythmruler.js:1919 -#: js/block.js:1436 -#: js/block.js:8089 -#: js/block.js:8110 -#: js/block.js:8127 -#: js/activity.js:2968 -#: js/palette.js:503 -#: js/palette.js:512 -#: js/palette.js:521 -#: js/palette.js:530 -#: js/palette.js:1122 -#: js/palette.js:1133 -#: js/palette.js:1144 -#: js/palette.js:1155 -#: js/palette.js:1174 -#: js/turtledefs.js:76 -#: js/rubrics.js:497 -#: js/macros.js:153 -#: js/macros.js:249 -#: js/macros.js:250 -#: js/macros.js:259 -#: js/macros.js:801 -#: js/blocks.js:1120 -#: js/blocks.js:3572 -#: js/blocks.js:3573 -#: js/blocks.js:3809 -#: js/blocks.js:4191 -#: js/blocks.js:4382 -#: js/blocks.js:5545 -#: js/blocks.js:6795 -#: js/ActionBlocks.js:99 -#: js/ActionBlocks.js:147 -#: js/ActionBlocks.js:343 -#: js/ActionBlocks.js:408 -#: js/ActionBlocks.js:562 -#: js/ActionBlocks.js:622 -#: js/ActionBlocks.js:749 -#: js/ActionBlocks.js:752 -#: js/ActionBlocks.js:757 -#: js/ActionBlocks.js:789 -#: js/MeterBlocks.js:390 -#: js/MeterBlocks.js:419 -#: js/MeterBlocks.js:455 -#: js/MeterBlocks.js:494 -#: js/musickeyboard.js:2421 -#: js/pitchtimematrix.js:4706 -#: js/rhythmruler.js:1602 -#: js/rhythmruler.js:1610 -#: js/rhythmruler.js:1911 -#: js/rhythmruler.js:1919 -#: js/block.js:1436 -#: js/block.js:8073 -#: js/block.js:8094 -#: js/block.js:8111 -#: js/activity.js:2984 -#: js/palette.js:503 -#: js/palette.js:512 -#: js/palette.js:521 -#: js/palette.js:530 -#: js/palette.js:1122 -#: js/palette.js:1133 -#: js/palette.js:1144 -#: js/palette.js:1155 -#: js/palette.js:1174 -#: js/turtledefs.js:78 -#: js/rubrics.js:501 -#: js/macros.js:153 -#: js/macros.js:249 -#: js/macros.js:250 -#: js/macros.js:259 -#: js/macros.js:801 -#: js/blocks.js:1112 -#: js/blocks.js:3545 -#: js/blocks.js:3546 -#: js/blocks.js:3779 -#: js/blocks.js:4160 -#: js/blocks.js:4346 -#: js/blocks.js:5496 -#: js/blocks.js:6721 -#: js/ActionBlocks.js:99 -#: js/ActionBlocks.js:147 -#: js/ActionBlocks.js:343 -#: js/ActionBlocks.js:408 -#: js/ActionBlocks.js:562 -#: js/ActionBlocks.js:622 -#: js/ActionBlocks.js:750 -#: js/ActionBlocks.js:753 -#: js/ActionBlocks.js:758 -#: js/ActionBlocks.js:790 -#: js/MeterBlocks.js:396 -#: js/MeterBlocks.js:425 -#: js/MeterBlocks.js:461 -#: js/MeterBlocks.js:500 -#: js/musickeyboard.js:2495 -#: js/pitchtimematrix.js:4718 -#: js/rhythmruler.js:1602 -#: js/rhythmruler.js:1610 -#: js/rhythmruler.js:1911 -#: js/rhythmruler.js:1919 -#: js/block.js:1436 -#: js/block.js:8073 -#: js/block.js:8094 -#: js/block.js:8111 -#: js/activity.js:2984 -#: js/palette.js:503 -#: js/palette.js:512 -#: js/palette.js:521 -#: js/palette.js:530 -#: js/palette.js:1122 -#: js/palette.js:1133 -#: js/palette.js:1144 -#: js/palette.js:1155 -#: js/palette.js:1174 -#: js/turtledefs.js:78 -#: js/rubrics.js:501 -#: js/macros.js:153 -#: js/macros.js:249 -#: js/macros.js:250 -#: js/macros.js:259 -#: js/macros.js:801 -#: js/blocks.js:1112 -#: js/blocks.js:3545 -#: js/blocks.js:3546 -#: js/blocks.js:3779 -#: js/blocks.js:4160 -#: js/blocks.js:4346 -#: js/blocks.js:5496 -#: js/blocks.js:6721 -#: js/ActionBlocks.js:99 -#: js/ActionBlocks.js:147 -#: js/ActionBlocks.js:343 -#: js/ActionBlocks.js:408 -#: js/ActionBlocks.js:562 -#: js/ActionBlocks.js:622 -#: js/ActionBlocks.js:750 -#: js/ActionBlocks.js:753 -#: js/ActionBlocks.js:758 -#: js/ActionBlocks.js:790 -#: js/MeterBlocks.js:396 -#: js/MeterBlocks.js:425 -#: js/MeterBlocks.js:461 -#: js/MeterBlocks.js:500 -#: js/musickeyboard.js:2495 -#: js/pitchtimematrix.js:4718 -#: js/rhythmruler.js:1602 -#: js/rhythmruler.js:1610 -#: js/rhythmruler.js:1911 -#: js/rhythmruler.js:1919 -#: js/block.js:1436 -#: js/block.js:8073 -#: js/block.js:8094 -#: js/block.js:8111 -#: js/activity.js:2984 -#: js/palette.js:506 -#: js/palette.js:515 -#: js/palette.js:524 -#: js/palette.js:533 -#: js/palette.js:1128 -#: js/palette.js:1139 -#: js/palette.js:1150 -#: js/palette.js:1161 -#: js/palette.js:1180 -#: js/turtledefs.js:78 -#: js/rubrics.js:501 -#: js/macros.js:153 -#: js/macros.js:249 -#: js/macros.js:250 -#: js/macros.js:259 -#: js/macros.js:801 -#: js/blocks.js:1112 -#: js/blocks.js:3545 -#: js/blocks.js:3546 -#: js/blocks.js:3779 -#: js/blocks.js:4160 -#: js/blocks.js:4346 -#: js/blocks.js:5496 -#: js/blocks.js:6721 -#: js/ActionBlocks.js:99 -#: js/ActionBlocks.js:147 -#: js/ActionBlocks.js:343 -#: js/ActionBlocks.js:408 -#: js/ActionBlocks.js:562 -#: js/ActionBlocks.js:622 -#: js/ActionBlocks.js:750 -#: js/ActionBlocks.js:753 -#: js/ActionBlocks.js:758 -#: js/ActionBlocks.js:790 -#: js/MeterBlocks.js:396 -#: js/MeterBlocks.js:425 -#: js/MeterBlocks.js:461 -#: js/MeterBlocks.js:500 -#: js/musickeyboard.js:2495 -#: js/pitchtimematrix.js:4718 -#: js/rhythmruler.js:1602 -#: js/rhythmruler.js:1610 -#: js/rhythmruler.js:1911 -#: js/rhythmruler.js:1919 -#: js/block.js:1414 -#: js/block.js:4018 -#: js/block.js:4036 -#: js/block.js:4047 -#: js/activity.js:2899 -#: js/palette.js:486 -#: js/palette.js:495 -#: js/palette.js:504 -#: js/palette.js:513 -#: js/palette.js:1089 -#: js/palette.js:1100 -#: js/palette.js:1111 -#: js/palette.js:1122 -#: js/palette.js:1141 -#: js/turtledefs.js:78 -#: js/rubrics.js:501 -#: js/macros.js:170 -#: js/macros.js:266 -#: js/macros.js:267 -#: js/macros.js:276 -#: js/macros.js:828 -#: js/blocks.js:1071 -#: js/blocks.js:3210 -#: js/blocks.js:3211 -#: js/blocks.js:3428 -#: js/blocks.js:3752 -#: js/blocks.js:3932 -#: js/blocks.js:4976 -#: js/blocks.js:5845 -#: js/ActionBlocks.js:99 -#: js/ActionBlocks.js:147 -#: js/ActionBlocks.js:343 -#: js/ActionBlocks.js:408 -#: js/ActionBlocks.js:562 -#: js/ActionBlocks.js:622 -#: js/ActionBlocks.js:750 -#: js/ActionBlocks.js:753 -#: js/ActionBlocks.js:758 -#: js/ActionBlocks.js:790 -#: js/MeterBlocks.js:396 -#: js/MeterBlocks.js:426 -#: js/MeterBlocks.js:462 -#: js/MeterBlocks.js:501 -#: js/musickeyboard.js:2495 -#: js/rhythmruler.js:1874 -#: js/rhythmruler.js:1881 -#: js/rhythmruler.js:2065 -#: js/rhythmruler.js:2072 -#: js/phrasemaker.js:4226 -#: js/block.js:1414 -#: js/block.js:4020 -#: js/block.js:4038 -#: js/block.js:4049 -#: js/activity.js:2899 -#: js/palette.js:486 -#: js/palette.js:495 -#: js/palette.js:504 -#: js/palette.js:513 -#: js/palette.js:1089 -#: js/palette.js:1100 -#: js/palette.js:1111 -#: js/palette.js:1122 -#: js/palette.js:1141 -#: js/turtledefs.js:78 -#: js/rubrics.js:501 -#: js/macros.js:170 -#: js/macros.js:266 -#: js/macros.js:267 -#: js/macros.js:276 -#: js/macros.js:828 -#: js/blocks.js:1071 -#: js/blocks.js:3210 -#: js/blocks.js:3211 -#: js/blocks.js:3428 -#: js/blocks.js:3752 -#: js/blocks.js:3932 -#: js/blocks.js:4976 -#: js/blocks.js:5845 -#: js/ActionBlocks.js:99 -#: js/ActionBlocks.js:147 -#: js/ActionBlocks.js:343 -#: js/ActionBlocks.js:408 -#: js/ActionBlocks.js:562 -#: js/ActionBlocks.js:622 -#: js/ActionBlocks.js:750 -#: js/ActionBlocks.js:753 -#: js/ActionBlocks.js:758 -#: js/ActionBlocks.js:790 -#: js/MeterBlocks.js:396 -#: js/MeterBlocks.js:426 -#: js/MeterBlocks.js:462 -#: js/MeterBlocks.js:501 -#: js/musickeyboard.js:2495 -#: js/rhythmruler.js:1874 -#: js/rhythmruler.js:1881 -#: js/rhythmruler.js:2065 -#: js/rhythmruler.js:2072 -#: js/phrasemaker.js:4226 -#: js/block.js:1439 -#: js/block.js:4063 -#: js/block.js:4081 -#: js/block.js:4092 -#: js/palette.js:505 -#: js/palette.js:514 -#: js/palette.js:523 -#: js/palette.js:532 -#: js/palette.js:1125 -#: js/palette.js:1136 -#: js/palette.js:1147 -#: js/palette.js:1158 -#: js/palette.js:1177 -#: js/turtledefs.js:101 -#: js/rubrics.js:522 -#: js/macros.js:168 -#: js/macros.js:264 -#: js/macros.js:265 -#: js/macros.js:274 -#: js/macros.js:826 -#: js/blocks.js:1001 -#: js/blocks.js:3394 -#: js/blocks.js:3395 -#: js/blocks.js:3620 -#: js/blocks.js:3981 -#: js/blocks.js:4172 -#: js/blocks.js:5305 -#: js/blocks.js:6432 -#: js/ActionBlocks.js:119 -#: js/ActionBlocks.js:167 -#: js/ActionBlocks.js:364 -#: js/ActionBlocks.js:429 -#: js/ActionBlocks.js:582 -#: js/ActionBlocks.js:643 -#: js/ActionBlocks.js:772 -#: js/ActionBlocks.js:775 -#: js/ActionBlocks.js:780 -#: js/ActionBlocks.js:813 -#: js/MeterBlocks.js:416 -#: js/MeterBlocks.js:446 -#: js/MeterBlocks.js:482 -#: js/MeterBlocks.js:521 -#: js/musickeyboard.js:2564 -#: js/rhythmruler.js:1925 -#: js/rhythmruler.js:1932 -#: js/rhythmruler.js:2116 -#: js/rhythmruler.js:2123 -#: js/phrasemaker.js:4402 -#: js/planetInterface.js:101 -#: js/planetInterface.js:101 -#: js/planetInterface.js:101 -#: js/planetInterface.js:101 -#: js/planetInterface.js:102 -#: js/planetInterface.js:104 -#: js/planetInterface.js:104 -#: js/planetInterface.js:104 -msgid "project undefined" +#: js/SaveInterface.js:59 +#: js/SaveInterface.js:61 +#: js/SaveInterface.js:93 +msgid "Music Blocks Project" msgstr "" -#: js/logo.js:61 -msgid "Not a valid pitch name" +#: js/SaveInterface.js:63 +msgid "This project was created in Music Blocks" msgstr "" -#: js/logo.js:507 -#: js/ProgramBlocks.js:258 -#: js/ProgramBlocks.js:427 -msgid "You must select a file." +#: js/SaveInterface.js:67 +msgid "Music Blocks is a Free/Libre Software application." msgstr "" -#: js/logo.js:1184 -#: js/turtles.js:118 -#: js/turtle-painter.js:1192 -#: js/turtle-painter.js:1193 -#: js/block.js:1463 -#: js/lilypond.js:757 -#: js/lilypond.js:921 -#: js/lilypond.js:959 -#: js/ActionBlocks.js:1223 -#: js/ProgramBlocks.js:1267 -msgid "start" -msgstr "bido" - -#: js/logo.js:1696 -msgid "Playback is ready." +#: js/SaveInterface.js:69 +msgid "The source code can be accessed at" msgstr "" -#: js/blocks.js:1011 -#: js/blocks.js:3427 -#: js/blocks.js:3428 -#: js/blocks.js:3653 -#: js/blocks.js:4012 -#: js/blocks.js:4205 -#: js/blocks.js:5343 -#: js/blocks.js:6474 -#: js/palette.js:527 -#: js/palette.js:536 -#: js/palette.js:545 -#: js/palette.js:554 -#: js/palette.js:1131 -#: js/palette.js:1142 -#: js/palette.js:1153 -#: js/palette.js:1164 -#: js/palette.js:1183 -#: js/rubrics.js:529 -#: js/macros.js:170 -#: js/macros.js:266 -#: js/macros.js:267 -#: js/macros.js:276 -#: js/macros.js:828 -#: js/block.js:1449 -#: js/block.js:4164 -#: js/block.js:4182 -#: js/block.js:4193 -#: js/turtledefs.js:128 -#: js/turtledefs.js:230 -#: js/ActionBlocks.js:254 -#: js/ActionBlocks.js:307 -#: js/ActionBlocks.js:617 -#: js/ActionBlocks.js:716 -#: js/ActionBlocks.js:961 -#: js/ActionBlocks.js:1049 -#: js/ActionBlocks.js:1322 -#: js/ActionBlocks.js:1325 -#: js/ActionBlocks.js:1337 -#: js/ActionBlocks.js:1404 -#: js/MeterBlocks.js:715 -#: js/MeterBlocks.js:768 -#: js/MeterBlocks.js:831 -#: js/MeterBlocks.js:892 -#: js/phrasemaker.js:4412 -#: js/musickeyboard.js:2647 -#: js/rhythmruler.js:1928 -#: js/rhythmruler.js:1935 -#: js/rhythmruler.js:2119 -#: js/rhythmruler.js:2126 -msgid "action" -msgstr "edinam" - -#: js/blocks.js:1205 -#: js/blocks.js:3380 -#: js/blocks.js:3770 -#: js/blocks.js:3801 -#: js/blocks.js:3850 -#: js/blocks.js:3885 -#: js/blocks.js:6497 -#: js/palette.js:509 -#: js/palette.js:638 -#: js/palette.js:1107 -#: js/BoxesBlocks.js:282 -#: js/BoxesBlocks.js:285 -#: js/BoxesBlocks.js:405 -#: js/BoxesBlocks.js:594 -msgid "box" -msgstr "igbe" - -#: js/blocks.js:1680 -msgid "Consider breaking this stack into parts." +#: js/SaveInterface.js:72 +msgid "For more information, please consult the" msgstr "" -#: js/blocks.js:2408 -#: js/palette.js:653 -#: js/MediaBlocks.js:602 -msgid "open file" -msgstr "emeghe faịlụ" - -#: js/blocks.js:2415 -#: js/blocks.js:2423 -#: js/activity.js:1875 -msgid "audio file" +#: js/SaveInterface.js:76 +#: js/turtledefs.js:795 +msgid "Music Blocks Guide" msgstr "" -#: js/blocks.js:2536 -#: js/blocks.js:3147 -#: js/block.js:3543 -msgid "on2" +#: js/SaveInterface.js:83 +msgid "Alternatively, open the file in Music Blocks using the Load project button." msgstr "" -#: js/blocks.js:2538 -#: js/blocks.js:3149 -#: js/block.js:3545 -msgid "off" +#: js/SaveInterface.js:85 +msgid "Project Code" msgstr "" -#: js/blocks.js:2543 -#: js/blocks.js:3154 -#: js/palette.js:618 -#: js/block.js:3466 -#: js/BooleanBlocks.js:77 -#: js/BooleanBlocks.js:167 -#: js/BooleanBlocks.js:251 -#: js/BooleanBlocks.js:335 -#: js/BooleanBlocks.js:433 -#: js/BooleanBlocks.js:539 -#: js/BooleanBlocks.js:640 -#: js/BooleanBlocks.js:741 -#: js/BooleanBlocks.js:847 -#: js/BooleanBlocks.js:948 -#: js/BooleanBlocks.js:1033 -#: js/SensorsBlocks.js:910 -msgid "true" +#: js/SaveInterface.js:87 +msgid "This code stores data about the blocks in a project." msgstr "" -#: js/blocks.js:2545 -#: js/blocks.js:3156 -#: js/block.js:3466 -#: js/BooleanBlocks.js:79 -#: js/BooleanBlocks.js:169 -#: js/BooleanBlocks.js:253 -#: js/BooleanBlocks.js:337 -#: js/BooleanBlocks.js:435 -#: js/BooleanBlocks.js:541 -#: js/BooleanBlocks.js:642 -#: js/BooleanBlocks.js:743 -#: js/BooleanBlocks.js:849 -#: js/BooleanBlocks.js:950 -#: js/SensorsBlocks.js:912 -msgid "false" +#: js/SaveInterface.js:89 +msgid "Show" msgstr "" -#: js/blocks.js:3183 -#: js/palette.js:574 -#: js/MediaBlocks.js:892 -#: js/MediaBlocks.js:963 -msgid "text" -msgstr "ederede" - -#: js/blocks.js:3379 -#: js/palette.js:641 -#: js/palette.js:642 -#: js/BoxesBlocks.js:514 -msgid "store in box" +#: js/SaveInterface.js:91 +msgid "Hide" msgstr "" -#: js/blocks.js:3384 -#: js/blocks.js:3824 -#: js/blocks.js:3859 -#: js/blocks.js:3894 -#: js/blocks.js:5773 -#: js/blocks.js:5794 -#: js/BoxesBlocks.js:772 -msgid "box1" +#: js/SaveInterface.js:131 +#: js/SaveInterface.js:204 +#: js/SaveInterface.js:262 +#: js/SaveInterface.js:389 +#: js/SaveInterface.js:417 +#: js/activity.js:4884 +#: planet/js/ProjectStorage.js:27 +#: planet/js/GlobalPlanet.js:467 +#: planet/js/GlobalPlanet.js:469 +#: planet/js/GlobalPlanet.js:495 +#.TRANS: default project title when saving as Lilypond +msgid "My Project" msgstr "" -#: js/blocks.js:3386 -#: js/blocks.js:3826 -#: js/blocks.js:3861 -#: js/blocks.js:3896 -#: js/blocks.js:5775 -#: js/blocks.js:5796 -#: js/BoxesBlocks.js:663 -msgid "box2" +#: js/SaveInterface.js:197 +#: planet/js/SaveInterface.js:58 +msgid "No description provided" msgstr "" -#: js/blocks.js:4058 -#: js/palette.js:639 -#: js/palette.js:644 -#: js/palette.js:1043 -#: js/BoxesBlocks.js:591 -msgid "store in" -msgstr "echekwa na" - -#: js/blocks.js:4058 -#: js/EnsembleBlocks.js:391 -#: js/EnsembleBlocks.js:402 -#: js/MediaBlocks.js:746 -#: js/ProgramBlocks.js:390 -#: js/ProgramBlocks.js:495 -#: js/ProgramBlocks.js:658 -#: js/BoxesBlocks.js:595 -#: js/PitchBlocks.js:656 -#: js/PitchBlocks.js:932 -#: js/PitchBlocks.js:1827 -#: js/ToneBlocks.js:1025 -#: js/DictBlocks.js:215 -#: js/DictBlocks.js:289 -msgid "name" -msgstr "aha" - -#: js/blocks.js:4058 -#: js/RhythmBlocks.js:1130 -#: js/BoxesBlocks.js:75 -#: js/BoxesBlocks.js:595 -#: js/HeapBlocks.js:544 -#: js/DictBlocks.js:289 -#: js/DictBlocks.js:430 -msgid "value" -msgstr "uru" +#: js/SaveInterface.js:332 +msgid "Your recording is in progress." +msgstr "" -#: js/blocks.js:4907 -msgid "There is no block selected." +#: js/SaveInterface.js:401 +#.TRANS: File name prompt for save as Lilypond +msgid "File name" msgstr "" -#: js/blocks.js:5002 -#: js/MediaBlocks.js:888 -msgid "show" -msgstr "zie" +#: js/SaveInterface.js:403 +#: planet/js/StringHelper.js:39 +#.TRANS: Project title prompt for save as Lilypond +msgid "Project title" +msgstr "" -#: js/blocks.js:5005 -#: js/MediaBlocks.js:803 -#.TRANS: Avatar is the image used to determine the appearance of the mouse. -msgid "avatar" +#: js/SaveInterface.js:405 +#.TRANS: Project title prompt for save as Lilypond +msgid "Project author" msgstr "" -#: js/blocks.js:5008 -#: js/ToneBlocks.js:1010 -#: js/sampler.js:693 -#.TRANS: The sound sample that the user uploads. -msgid "sample" +#: js/SaveInterface.js:407 +#.TRANS: MIDI prompt for save as Lilypond +msgid "Include MIDI output?" msgstr "" -#: js/turtles.js:874 -msgid "Grid" +#: js/SaveInterface.js:409 +#.TRANS: Guitar prompt for save as Lilypond +msgid "Include guitar tablature output?" msgstr "" -#: js/turtles.js:891 -#: js/turtledefs.js:626 -msgid "Clean" -msgstr "ọcha" +#: js/SaveInterface.js:411 +#.TRANS: Lilypond is a scripting language for generating sheet music +msgid "Save as Lilypond" +msgstr "" -#: js/turtles.js:912 -#: js/turtledefs.js:632 -msgid "Collapse" +#: js/SaveInterface.js:426 +#: js/blocks/EnsembleBlocks.js:75 +#: js/blocks/EnsembleBlocks.js:154 +#: js/blocks/EnsembleBlocks.js:216 +#: js/blocks/EnsembleBlocks.js:302 +#: js/blocks/EnsembleBlocks.js:348 +#: js/blocks/EnsembleBlocks.js:389 +#: js/blocks/EnsembleBlocks.js:441 +#: js/blocks/EnsembleBlocks.js:490 +#: js/blocks/EnsembleBlocks.js:536 +#: js/blocks/EnsembleBlocks.js:583 +#: js/blocks/EnsembleBlocks.js:637 +#: js/blocks/EnsembleBlocks.js:753 +#: js/blocks/EnsembleBlocks.js:840 +#: js/blocks/EnsembleBlocks.js:899 +#: js/blocks/EnsembleBlocks.js:942 +#: js/blocks/EnsembleBlocks.js:1212 +#: js/blocks/EnsembleBlocks.js:1280 +#.TRANS: default project author when saving as Lilypond +msgid "Mr. Mouse" msgstr "" -#: js/turtles.js:940 -msgid "Expand" +#: js/SaveInterface.js:573 +msgid "The Lilypond code is copied to clipboard. You can paste it here: " msgstr "" #: js/languagebox.js:198 @@ -2418,6934 +152,7488 @@ msgstr "" msgid "Music Blocks is already set to this language." msgstr "మ్యూజిక్ బ్లాక్స్ ఇప్పటికే ఈ భాషకు సెట్ అయింది." -#: js/piemenus.js:200 -#: js/musicutils.js:808 -#: js/musicutils.js:824 -#: js/phrasemaker.js:1672 -#: js/musickeyboard.js:2041 -#: js/sampler.js:544 -#.TRANS: double sharp is a music term related to pitch -msgid "double sharp" -msgstr "" - -#: js/piemenus.js:201 -#: js/PitchBlocks.js:1510 -#: js/PitchActions.js:580 -#: js/musicutils.js:806 -#: js/musicutils.js:825 -#: js/phrasemaker.js:1673 -#: js/musickeyboard.js:2042 -#: js/sampler.js:545 -#.TRANS: sharp is a half-step up in pitch -#.TRANS: sharp is a music term related to pitch -msgid "sharp" -msgstr "nkọ" - -#: js/piemenus.js:202 -#: js/musicutils.js:804 -#: js/musicutils.js:826 -#: js/phrasemaker.js:1674 -#: js/musickeyboard.js:2043 -#: js/sampler.js:546 -#.TRANS: natural is a music term related to pitch -msgid "natural" -msgstr "" - -#: js/piemenus.js:203 -#: js/PitchBlocks.js:1469 -#: js/PitchActions.js:583 -#: js/musicutils.js:802 -#: js/musicutils.js:827 -#: js/phrasemaker.js:1675 -#: js/musickeyboard.js:2044 -#: js/sampler.js:547 -#.TRANS: flat is a half-step down in pitch -#.TRANS: flat is a music term related to pitch -msgid "flat" -msgstr "flaati" - -#: js/piemenus.js:204 -#: js/musicutils.js:800 -#: js/musicutils.js:828 -#: js/phrasemaker.js:1676 -#: js/musickeyboard.js:2045 -#: js/sampler.js:548 -#.TRANS: double flat is a music term related to pitch -msgid "double flat" -msgstr "" - -#: js/piemenus.js:2861 -#: js/PitchBlocks.js:1357 -#: js/musicutils.js:627 -#.TRANS: unison means the note is the same as the current note -#.TRANS: unison is a music term related to intervals -msgid "unison" +#: js/planetInterface.js:131 +msgid "project undefined" msgstr "" -#: js/piemenus.js:3015 -#: js/piemenus.js:3088 -#: js/musicutils.js:635 -#: js/musicutils.js:810 -#: js/musicutils.js:912 -#.TRANS: major is a music term related to intervals and mode -msgid "major" +#: js/rubrics.js:523 +#: js/turtledefs.js:119 +#: js/turtledefs.js:221 +#: js/blocks/RhythmBlockPaletteBlocks.js:52 +#: js/blocks/RhythmBlockPaletteBlocks.js:234 +#: js/blocks/ProgramBlocks.js:745 +#: js/widgets/rhythmruler.js:2057 +#: js/widgets/rhythmruler.js:2064 +#: js/widgets/rhythmruler.js:2133 +#: js/widgets/rhythmruler.js:2140 +#: js/widgets/rhythmruler.js:2219 +#.TRANS: an arrangement of notes based on duration +msgid "rhythm" msgstr "" -#: js/piemenus.js:3015 -#: js/piemenus.js:3088 -#: js/musicutils.js:653 -#.TRANS: modal scale for music -msgid "ionian" -msgstr "" +#: js/rubrics.js:524 +#: js/turtledefs.js:121 +#: js/turtledefs.js:223 +#: js/block-verbose.js:2622 +#: js/block.js:2550 +#: js/blocks/IntervalsBlocks.js:63 +#: js/blocks/SensorsBlocks.js:178 +#: js/blocks/PitchBlocks.js:1839 +#: js/blocks/PitchBlocks.js:1853 +#: js/widgets/musickeyboard.js:1935 +#: js/widgets/phrasemaker.js:1036 +#.TRANS: pitch number +#.TRANS: pitch number +#.TRANS: we specify pitch in terms of a name and an octave. The name can be CDEFGAB or Do Re Mi Fa Sol La Ti. Octave is a number between 1 and 8. +msgid "pitch" +msgstr "pitch" -#: js/piemenus.js:3017 -#: js/piemenus.js:3092 -#: js/musicutils.js:633 -#: js/musicutils.js:811 -#: js/musicutils.js:909 -#.TRANS: minor is a music term related to intervals and mode -msgid "minor" -msgstr "" +#: js/rubrics.js:525 +#: js/turtledefs.js:123 +#: js/turtledefs.js:225 +msgid "tone" +msgstr "ụda" -#: js/piemenus.js:3017 -#: js/piemenus.js:3092 -#: js/musicutils.js:663 -#.TRANS: modal scale for music -msgid "aeolian" +#: js/rubrics.js:526 +#: js/lilypond.js:605 +#: js/lilypond.js:904 +#: js/lilypond.js:910 +#: js/lilypond.js:948 +msgid "mouse" msgstr "" -#: js/piemenus.js:3407 -msgid "Duplicate" -msgstr "" +#: js/rubrics.js:527 +#: js/turtledefs.js:132 +#: js/turtledefs.js:234 +#: js/widgets/phrasemaker.js:1040 +msgid "pen" +msgstr "pen" -#: js/piemenus.js:3408 -#: js/turtledefs.js:534 -msgid "Extract" -msgstr "" +#: js/rubrics.js:528 +#: js/turtledefs.js:133 +#: js/turtledefs.js:235 +#: js/blocks/NumberBlocks.js:981 +#: js/blocks/PitchBlocks.js:1717 +#: js/blocks/PitchBlocks.js:1758 +msgid "number" +msgstr "nọmba" -#: js/piemenus.js:3409 -msgid "Move to trash" -msgstr "" - -#: js/piemenus.js:3410 -#: js/timbre.js:968 -#: js/StringHelper.js:69 -msgid "Close" -msgstr "" - -#: js/piemenus.js:3416 -msgid "Save stack" -msgstr "ịzọpụta tojupụtara" - -#: js/piemenus.js:3420 -#: js/toolbar.js:60 -#: js/toolbar.js:120 -#: js/toolbar.js:185 -#: js/toolbar.js:240 -#: js/turtledefs.js:752 -msgid "Help" -msgstr "Help" - -#: js/piemenus.js:3762 -msgid "You have chosen key " -msgstr "" - -#: js/piemenus.js:3766 -msgid " for your pitch preview." -msgstr "" - -#: js/palette.js:571 -msgid "grid" -msgstr "" - -#: js/palette.js:577 -#: js/block.js:1540 -#: js/block.js:2343 -#: js/turtledefs.js:126 -#: js/turtledefs.js:228 -#: js/lilypond.js:740 -#: js/lilypond.js:905 -#: js/lilypond.js:949 -#: js/DrumBlocks.js:486 -#: js/RhythmBlocks.js:766 -#: js/VolumeBlocks.js:502 -#: js/phrasemaker.js:823 -msgid "drum" -msgstr "" - -#: js/palette.js:580 -msgid "effect" -msgstr "" - -#: js/palette.js:586 -msgid "sargam" -msgstr "" - -#: js/palette.js:589 -#: js/activity.js:1833 -#: js/RhythmBlocks.js:923 -#: js/PitchBlocks.js:442 -#: js/PitchBlocks.js:1748 -#.TRANS: a numeric mapping of the notes in an octave based on the musical mode -msgid "scale degree" -msgstr "" - -#: js/palette.js:592 -#: js/activity.js:1860 -msgid "mode name" -msgstr "" - -#: js/palette.js:595 -#: js/activity.js:1839 -msgid "invert mode" -msgstr "" - -#: js/palette.js:598 -#: js/activity.js:1836 -msgid "voice name" -msgstr "" - -#: js/palette.js:601 -#: js/PitchBlocks.js:1181 -msgid "custom pitch" -msgstr "" - -#: js/palette.js:605 -#: js/block.js:1456 -#: js/block.js:1575 -#: js/WidgetBlocks.js:218 -#: js/IntervalsBlocks.js:63 -msgid "temperament" -msgstr "" - -#: js/palette.js:609 -msgid "accidental" -msgstr "" - -#: js/palette.js:615 -#: js/activity.js:1866 -msgid "interval name" -msgstr "" - -#: js/palette.js:633 -#: js/PitchBlocks.js:405 -msgid "pitch converter" -msgstr "" - -#: js/rubrics.js:522 -#: js/turtledefs.js:119 -#: js/turtledefs.js:221 -#: js/RhythmBlockPaletteBlocks.js:52 -#: js/RhythmBlockPaletteBlocks.js:233 -#: js/ProgramBlocks.js:745 -#: js/rhythmruler.js:1670 -#: js/rhythmruler.js:1677 -#: js/rhythmruler.js:1745 -#: js/rhythmruler.js:1752 -#: js/rhythmruler.js:1830 -#.TRANS: an arrangement of notes based on duration -msgid "rhythm" -msgstr "" - -#: js/rubrics.js:523 -#: js/block.js:2339 -#: js/turtledefs.js:121 -#: js/turtledefs.js:223 -#: js/IntervalsBlocks.js:63 -#: js/PitchBlocks.js:1801 -#: js/PitchBlocks.js:1814 -#: js/SensorsBlocks.js:178 -#: js/phrasemaker.js:821 -#: js/musickeyboard.js:1653 -#.TRANS: pitch number -#.TRANS: we specify pitch in terms of a name and an octave. The name can be CDEFGAB or Do Re Mi Fa Sol La Ti. Octave is a number between 1 and 8. -msgid "pitch" -msgstr "pitch" - -#: js/rubrics.js:524 -#: js/turtledefs.js:123 -#: js/turtledefs.js:225 -msgid "tone" -msgstr "ụda" - -#: js/rubrics.js:525 -#: js/lilypond.js:613 -#: js/lilypond.js:912 -#: js/lilypond.js:918 -#: js/lilypond.js:956 -msgid "mouse" -msgstr "" - -#: js/rubrics.js:526 -#: js/turtledefs.js:132 -#: js/turtledefs.js:234 -#: js/phrasemaker.js:825 -msgid "pen" -msgstr "pen" - -#: js/rubrics.js:527 -#: js/turtledefs.js:133 -#: js/turtledefs.js:235 -#: js/NumberBlocks.js:905 -#: js/PitchBlocks.js:1679 -#: js/PitchBlocks.js:1720 -msgid "number" -msgstr "nọmba" - -#: js/rubrics.js:528 -#: js/turtledefs.js:127 -#: js/turtledefs.js:229 -msgid "flow" -msgstr "igba" +#: js/rubrics.js:529 +#: js/turtledefs.js:127 +#: js/turtledefs.js:229 +msgid "flow" +msgstr "igba" #: js/rubrics.js:530 +#: js/turtledefs.js:128 +#: js/turtledefs.js:230 +#: js/block-verbose.js:1609 +#: js/block-verbose.js:4559 +#: js/block-verbose.js:4577 +#: js/block-verbose.js:4588 +#: js/block.js:1573 +#: js/block.js:4483 +#: js/block.js:4501 +#: js/block.js:4512 +#: js/blocks.js:1018 +#: js/blocks.js:3491 +#: js/blocks.js:3492 +#: js/blocks.js:3717 +#: js/blocks.js:4076 +#: js/blocks.js:4269 +#: js/blocks.js:5432 +#: js/blocks.js:6563 +#: js/macros.js:170 +#: js/macros.js:266 +#: js/macros.js:267 +#: js/macros.js:276 +#: js/macros.js:828 +#: js/palette.js:527 +#: js/palette.js:536 +#: js/palette.js:545 +#: js/palette.js:554 +#: js/palette.js:1129 +#: js/palette.js:1140 +#: js/palette.js:1151 +#: js/palette.js:1162 +#: js/palette.js:1181 +#: js/blocks/ActionBlocks.js:254 +#: js/blocks/ActionBlocks.js:307 +#: js/blocks/ActionBlocks.js:617 +#: js/blocks/ActionBlocks.js:716 +#: js/blocks/ActionBlocks.js:961 +#: js/blocks/ActionBlocks.js:1049 +#: js/blocks/ActionBlocks.js:1322 +#: js/blocks/ActionBlocks.js:1325 +#: js/blocks/ActionBlocks.js:1337 +#: js/blocks/ActionBlocks.js:1404 +#: js/blocks/MeterBlocks.js:715 +#: js/blocks/MeterBlocks.js:768 +#: js/blocks/MeterBlocks.js:831 +#: js/blocks/MeterBlocks.js:892 +#: js/widgets/musickeyboard.js:2986 +#: js/widgets/phrasemaker.js:4913 +#: js/widgets/rhythmruler.js:2319 +#: js/widgets/rhythmruler.js:2326 +#: js/widgets/rhythmruler.js:2511 +#: js/widgets/rhythmruler.js:2518 +msgid "action" +msgstr "edinam" + +#: js/rubrics.js:531 #: js/turtledefs.js:136 #: js/turtledefs.js:238 msgid "sensors" msgstr "sensọ" -#: js/rubrics.js:531 +#: js/rubrics.js:532 #: js/turtledefs.js:135 #: js/turtledefs.js:237 -#: js/MediaBlocks.js:930 +#: js/blocks/MediaBlocks.js:930 msgid "media" msgstr "media" -#: js/rubrics.js:532 +#: js/rubrics.js:533 msgid "mice" msgstr "" -#: js/macros.js:711 -#: js/musicutils.js:783 -#: js/synthutils.js:181 -#.TRANS: animal sound effect -msgid "duck" -msgstr "" - -#: js/toolbar.js:46 -#: js/toolbar.js:107 +#: js/toolbar.js:48 +#: js/toolbar.js:109 msgid "About Music Blocks" msgstr "" -#: js/toolbar.js:47 -#: js/toolbar.js:108 -#: js/toolbar.js:172 -#: js/toolbar.js:228 +#: js/toolbar.js:49 +#: js/toolbar.js:110 +#: js/toolbar.js:175 +#: js/toolbar.js:231 #: js/turtledefs.js:445 #: js/turtledefs.js:482 -#: js/activity.js:2281 -#: js/activity.js:2289 -#: js/activity.js:2520 -#: js/modewidget.js:77 -#: js/pitchstaircase.js:121 -#: js/phrasemaker.js:302 -#: js/phrasemaker.js:312 -#: js/phrasemaker.js:314 -#: js/phrasemaker.js:3901 -#: js/phrasemaker.js:4061 -#: js/phrasemaker.js:4066 -#: js/phrasemaker.js:4068 -#: js/phrasemaker.js:4183 -#: js/pitchdrummatrix.js:81 -#: js/pitchdrummatrix.js:574 -#: js/pitchdrummatrix.js:576 -#: js/pitchdrummatrix.js:628 -#: js/pitchdrummatrix.js:630 -#: js/pitchdrummatrix.js:645 -#: js/pitchdrummatrix.js:647 -#: js/pitchdrummatrix.js:674 -#: js/pitchdrummatrix.js:676 -#: js/temperament.js:477 -#: js/temperament.js:480 -#: js/temperament.js:540 -#: js/temperament.js:542 -#: js/temperament.js:1835 -#: js/temperament.js:1837 -#: js/temperament.js:1986 -#: js/temperament.js:1988 -#: js/musickeyboard.js:522 -#: js/musickeyboard.js:682 -#: js/musickeyboard.js:684 -#: js/musickeyboard.js:756 -#: js/musickeyboard.js:758 -#: js/rhythmruler.js:298 -#: js/rhythmruler.js:300 -#: js/rhythmruler.js:314 -#: js/rhythmruler.js:316 -#: js/sampler.js:96 -#: js/sampler.js:98 -#: js/sampler.js:229 -#: js/sampler.js:235 -#: js/sampler.js:237 -#: js/tempo.js:84 -#: js/tempo.js:86 -#: js/timbre.js:432 -#: js/timbre.js:434 -#: js/timbre.js:465 -#: js/timbre.js:467 -#: js/timbre.js:746 -#: js/meterwidget.js:80 -#: js/arpeggio.js:90 -#: js/arpeggio.js:547 -#: js/arpeggio.js:549 -#: js/arpeggio.js:644 -#: js/arpeggio.js:646 +#: js/activity.js:2660 +#: js/activity.js:2671 +#: js/activity.js:2902 +#: js/widgets/modewidget.js:77 +#: js/widgets/meterwidget.js:185 +#: js/widgets/pitchdrummatrix.js:147 +#: js/widgets/pitchdrummatrix.js:687 +#: js/widgets/pitchdrummatrix.js:689 +#: js/widgets/pitchdrummatrix.js:741 +#: js/widgets/pitchdrummatrix.js:743 +#: js/widgets/pitchdrummatrix.js:758 +#: js/widgets/pitchdrummatrix.js:760 +#: js/widgets/pitchdrummatrix.js:789 +#: js/widgets/pitchdrummatrix.js:791 +#: js/widgets/pitchstaircase.js:121 +#: js/widgets/temperament.js:610 +#: js/widgets/temperament.js:613 +#: js/widgets/temperament.js:673 +#: js/widgets/temperament.js:675 +#: js/widgets/temperament.js:2017 +#: js/widgets/temperament.js:2019 +#: js/widgets/tempo.js:84 +#: js/widgets/tempo.js:86 +#: js/widgets/timbre.js:432 +#: js/widgets/timbre.js:434 +#: js/widgets/timbre.js:465 +#: js/widgets/timbre.js:467 +#: js/widgets/timbre.js:746 +#: js/widgets/aiwidget.js:647 +#: js/widgets/aiwidget.js:654 +#: js/widgets/aiwidget.js:656 +#: js/widgets/arpeggio.js:90 +#: js/widgets/arpeggio.js:547 +#: js/widgets/arpeggio.js:549 +#: js/widgets/arpeggio.js:644 +#: js/widgets/arpeggio.js:646 +#: js/widgets/musickeyboard.js:676 +#: js/widgets/musickeyboard.js:872 +#: js/widgets/musickeyboard.js:874 +#: js/widgets/musickeyboard.js:953 +#: js/widgets/musickeyboard.js:955 +#: js/widgets/phrasemaker.js:513 +#: js/widgets/phrasemaker.js:523 +#: js/widgets/phrasemaker.js:525 +#: js/widgets/phrasemaker.js:4304 +#: js/widgets/phrasemaker.js:4528 +#: js/widgets/phrasemaker.js:4533 +#: js/widgets/phrasemaker.js:4535 +#: js/widgets/phrasemaker.js:4650 +#: js/widgets/rhythmruler.js:637 +#: js/widgets/rhythmruler.js:639 +#: js/widgets/rhythmruler.js:653 +#: js/widgets/rhythmruler.js:655 +#: js/widgets/sampler.js:162 +#: js/widgets/sampler.js:164 +#: js/widgets/sampler.js:363 msgid "Play" msgstr "" -#: js/toolbar.js:48 -#: js/toolbar.js:109 -#: js/toolbar.js:173 -#: js/toolbar.js:229 +#: js/toolbar.js:50 +#: js/toolbar.js:111 +#: js/toolbar.js:176 +#: js/toolbar.js:232 #: js/turtledefs.js:451 #: js/turtledefs.js:488 -#: js/activity.js:2297 -#: js/modewidget.js:99 -#: js/modewidget.js:101 -#: js/phrasemaker.js:323 -#: js/phrasemaker.js:325 -#: js/pitchdrummatrix.js:561 -#: js/pitchdrummatrix.js:563 -#: js/temperament.js:1820 -#: js/temperament.js:1822 -#: js/meterwidget.js:101 -#: js/meterwidget.js:103 -#: js/arpeggio.js:534 -#: js/arpeggio.js:536 +#: js/activity.js:2679 +#: js/widgets/modewidget.js:99 +#: js/widgets/modewidget.js:101 +#: js/widgets/meterwidget.js:206 +#: js/widgets/meterwidget.js:208 +#: js/widgets/pitchdrummatrix.js:674 +#: js/widgets/pitchdrummatrix.js:676 +#: js/widgets/temperament.js:2002 +#: js/widgets/temperament.js:2004 +#: js/widgets/arpeggio.js:534 +#: js/widgets/arpeggio.js:536 +#: js/widgets/phrasemaker.js:534 +#: js/widgets/phrasemaker.js:536 msgid "Stop" msgstr "kwụsị" -#: js/toolbar.js:49 -#: js/toolbar.js:110 -#: js/toolbar.js:174 -#: js/toolbar.js:230 +#: js/toolbar.js:51 +#: js/toolbar.js:112 +#: js/toolbar.js:177 +#: js/toolbar.js:233 #: js/turtledefs.js:498 msgid "Record" msgstr "" -#: js/toolbar.js:50 -#: js/toolbar.js:51 +#: js/toolbar.js:52 +#: js/toolbar.js:53 msgid "Full screen" msgstr "" -#: js/toolbar.js:52 -#: js/toolbar.js:112 -#: js/toolbar.js:177 -#: js/toolbar.js:232 +#: js/toolbar.js:54 +#: js/toolbar.js:115 +#: js/toolbar.js:180 +#: js/toolbar.js:236 #: js/turtledefs.js:504 msgid "Toggle Fullscreen" msgstr "" -#: js/toolbar.js:53 -#: js/toolbar.js:113 -#: js/toolbar.js:178 -#: js/toolbar.js:233 +#: js/toolbar.js:55 +#: js/toolbar.js:116 +#: js/toolbar.js:181 +#: js/toolbar.js:237 #: js/turtledefs.js:510 -#: js/StringHelper.js:33 +#: planet/js/StringHelper.js:33 msgid "New project" msgstr "" -#: js/toolbar.js:54 -#: js/toolbar.js:114 -#: js/toolbar.js:179 -#: js/toolbar.js:234 +#: js/toolbar.js:56 +#: js/toolbar.js:117 +#: js/toolbar.js:182 +#: js/toolbar.js:238 #: js/turtledefs.js:516 msgid "Load project from file" msgstr "Ibu Ibu oru ngo si faịlụ" -#: js/toolbar.js:55 -#: js/toolbar.js:115 -#: js/toolbar.js:116 -#: js/toolbar.js:180 -#: js/toolbar.js:235 +#: js/toolbar.js:57 +#: js/toolbar.js:118 +#: js/toolbar.js:119 +#: js/toolbar.js:183 +#: js/toolbar.js:239 #: js/turtledefs.js:541 #: js/turtledefs.js:550 #: js/turtledefs.js:571 msgid "Save project" msgstr "zoputa oru ngo" -#: js/toolbar.js:56 -#: js/toolbar.js:75 +#: js/toolbar.js:58 #: js/toolbar.js:77 -#: js/toolbar.js:135 -#: js/toolbar.js:144 -#: js/toolbar.js:146 -#: js/toolbar.js:181 -#: js/toolbar.js:199 -#: js/toolbar.js:201 -#: js/toolbar.js:236 -#: js/toolbar.js:254 -#: js/toolbar.js:256 +#: js/toolbar.js:79 +#: js/toolbar.js:138 +#: js/toolbar.js:147 +#: js/toolbar.js:149 +#: js/toolbar.js:184 +#: js/toolbar.js:202 +#: js/toolbar.js:204 +#: js/toolbar.js:240 +#: js/toolbar.js:258 +#: js/toolbar.js:260 msgid "Save project as HTML" msgstr "" -#: js/toolbar.js:57 -#: js/toolbar.js:117 -#: js/toolbar.js:182 -#: js/toolbar.js:237 +#: js/toolbar.js:59 +#: js/toolbar.js:120 +#: js/toolbar.js:185 +#: js/toolbar.js:241 msgid "Find and share projects" msgstr "" -#: js/toolbar.js:58 -#: js/toolbar.js:118 -#: js/toolbar.js:183 -#: js/toolbar.js:238 +#: js/toolbar.js:60 +#: js/toolbar.js:121 +#: js/toolbar.js:186 +#: js/toolbar.js:242 msgid "Offline. Sharing is unavailable" msgstr "" -#: js/toolbar.js:59 -#: js/toolbar.js:119 -#: js/toolbar.js:184 -#: js/toolbar.js:239 -msgid "Auxiliary menu" -msgstr "" - #: js/toolbar.js:61 -#: js/toolbar.js:121 -#: js/toolbar.js:186 -#: js/toolbar.js:241 -msgid "Run slowly" +#: js/toolbar.js:122 +#: js/toolbar.js:187 +#: js/toolbar.js:243 +msgid "Auxiliary menu" msgstr "" #: js/toolbar.js:62 -#: js/toolbar.js:122 -#: js/toolbar.js:187 -#: js/toolbar.js:242 +#: js/toolbar.js:123 +#: js/toolbar.js:188 +#: js/toolbar.js:244 +#: js/turtledefs.js:752 +#: js/piemenus.js:3423 +msgid "Help" +msgstr "Help" + +#: js/toolbar.js:63 +#: js/toolbar.js:124 +#: js/toolbar.js:189 +#: js/toolbar.js:245 +msgid "Run slowly" +msgstr "" + +#: js/toolbar.js:64 +#: js/toolbar.js:125 +#: js/toolbar.js:190 +#: js/toolbar.js:246 #: js/turtledefs.js:682 msgid "Run step by step" msgstr "Gbaa nzọụkwụ site nzọụkwụ" -#: js/toolbar.js:63 -#: js/toolbar.js:123 -#: js/toolbar.js:188 -#: js/toolbar.js:243 +#: js/toolbar.js:65 +#: js/toolbar.js:126 +#: js/toolbar.js:191 +#: js/toolbar.js:247 #: js/turtledefs.js:689 msgid "Display statistics" msgstr "Ngosipụta ọnụ ọgụgụ" -#: js/toolbar.js:64 -#: js/toolbar.js:124 -#: js/toolbar.js:189 -#: js/toolbar.js:244 +#: js/toolbar.js:66 +#: js/toolbar.js:127 +#: js/toolbar.js:192 +#: js/toolbar.js:248 msgid "Load plugin" msgstr "" -#: js/toolbar.js:65 -#: js/toolbar.js:125 -#: js/toolbar.js:190 -#: js/toolbar.js:245 +#: js/toolbar.js:67 +#: js/toolbar.js:128 +#: js/toolbar.js:193 +#: js/toolbar.js:249 #: js/turtledefs.js:696 msgid "Delete plugin" msgstr "" -#: js/toolbar.js:66 -#: js/toolbar.js:126 -#: js/toolbar.js:191 -#: js/toolbar.js:246 +#: js/toolbar.js:68 +#: js/toolbar.js:129 +#: js/toolbar.js:194 +#: js/toolbar.js:250 msgid "Enable horizontal scrolling" msgstr "" -#: js/toolbar.js:67 -#: js/toolbar.js:127 -#: js/toolbar.js:192 -#: js/toolbar.js:247 +#: js/toolbar.js:69 +#: js/toolbar.js:130 +#: js/toolbar.js:195 +#: js/toolbar.js:251 msgid "Disable horizontal scrolling" msgstr "" -#: js/toolbar.js:68 -#: js/toolbar.js:128 -#: js/toolbar.js:193 -#: js/toolbar.js:248 -#: js/LocalCard.js:54 -#: js/StringHelper.js:71 +#: js/toolbar.js:70 +#: js/toolbar.js:131 +#: js/toolbar.js:196 +#: js/toolbar.js:252 +#: planet/js/LocalCard.js:54 +#: planet/js/StringHelper.js:71 msgid "Merge with current project" msgstr "" -#: js/toolbar.js:69 -#: js/toolbar.js:129 +#: js/toolbar.js:71 +#: js/toolbar.js:132 msgid "Set Pitch Preview" msgstr "" -#: js/toolbar.js:70 -#: js/toolbar.js:130 -#: js/toolbar.js:194 -#: js/toolbar.js:249 -msgid "Toggle JavaScript Editor" +#: js/toolbar.js:72 +#: js/toolbar.js:133 +#: js/toolbar.js:197 +#: js/toolbar.js:253 +msgid "JavaScript Editor" msgstr "" -#: js/toolbar.js:71 -#: js/toolbar.js:131 -#: js/toolbar.js:195 -#: js/toolbar.js:250 +#: js/toolbar.js:73 +#: js/toolbar.js:134 +#: js/toolbar.js:198 +#: js/toolbar.js:254 #: js/turtledefs.js:724 msgid "Restore" msgstr "" -#: js/toolbar.js:72 -#: js/toolbar.js:132 -#: js/toolbar.js:196 -#: js/toolbar.js:251 -msgid "Switch to beginner mode" +#: js/toolbar.js:74 +#: js/toolbar.js:135 +#: js/toolbar.js:199 +#: js/toolbar.js:255 +msgid "Switch to beginner mode" +msgstr "" + +#: js/toolbar.js:75 +#: js/toolbar.js:136 +#: js/toolbar.js:200 +#: js/toolbar.js:256 +msgid "Switch to advanced mode" +msgstr "" + +#: js/toolbar.js:76 +#: js/toolbar.js:137 +#: js/toolbar.js:146 +#: js/toolbar.js:201 +#: js/toolbar.js:257 +#: js/turtledefs.js:738 +msgid "Select language" +msgstr "" + +#: js/toolbar.js:78 +#: js/toolbar.js:81 +#: js/toolbar.js:140 +#: js/turtledefs.js:579 +msgid "Save mouse artwork as PNG" +msgstr "" + +#: js/toolbar.js:80 +#: js/toolbar.js:139 +#: js/turtledefs.js:575 +msgid "Save mouse artwork as SVG" +msgstr "" + +#: js/toolbar.js:82 +#: js/toolbar.js:141 +#: js/turtledefs.js:583 +msgid "Save music as WAV" +msgstr "" + +#: js/toolbar.js:83 +#: js/toolbar.js:142 +#: js/turtledefs.js:587 +msgid "Save sheet music as ABC" +msgstr "" + +#: js/toolbar.js:84 +#: js/toolbar.js:143 +#: js/turtledefs.js:591 +msgid "Save sheet music as Lilypond" +msgstr "" + +#: js/toolbar.js:85 +msgid "Save sheet music as MusicXML" +msgstr "" + +#: js/toolbar.js:86 +#: js/toolbar.js:144 +#: js/toolbar.js:152 +#: js/toolbar.js:207 +#: js/toolbar.js:263 +#: js/turtledefs.js:562 +#: js/turtledefs.js:595 +msgid "Save block artwork as SVG" +msgstr "" + +#: js/toolbar.js:87 +#: js/toolbar.js:145 +#: js/toolbar.js:153 +#: js/toolbar.js:208 +#: js/toolbar.js:264 +#: js/turtles.js:911 +msgid "Confirm" +msgstr "" + +#: js/toolbar.js:88 +#: js/toolbar.js:154 +#: js/toolbar.js:209 +#: js/toolbar.js:265 +msgid "English (United States)" +msgstr "" + +#: js/toolbar.js:89 +#: js/toolbar.js:155 +#: js/toolbar.js:210 +#: js/toolbar.js:266 +msgid "English (United Kingdom)" +msgstr "" + +#: js/toolbar.js:90 +#: js/toolbar.js:156 +#: js/toolbar.js:211 +#: js/toolbar.js:267 +msgid "日本語" +msgstr "" + +#: js/toolbar.js:91 +msgid "한국어" +msgstr "" + +#: js/toolbar.js:92 +#: js/toolbar.js:158 +#: js/toolbar.js:213 +#: js/toolbar.js:269 +msgid "español" +msgstr "" + +#: js/toolbar.js:93 +#: js/toolbar.js:159 +#: js/toolbar.js:214 +#: js/toolbar.js:270 +msgid "português" +msgstr "" + +#: js/toolbar.js:94 +#: js/toolbar.js:160 +#: js/toolbar.js:215 +#: js/toolbar.js:271 +msgid "にほんご" +msgstr "" + +#: js/toolbar.js:95 +#: js/toolbar.js:161 +#: js/toolbar.js:216 +#: js/toolbar.js:272 +msgid "中文" +msgstr "" + +#: js/toolbar.js:96 +#: js/toolbar.js:162 +#: js/toolbar.js:217 +#: js/toolbar.js:273 +msgid "ภาษาไทย" +msgstr "" + +#: js/toolbar.js:97 +#: js/toolbar.js:163 +#: js/toolbar.js:218 +#: js/toolbar.js:274 +msgid "aymara" +msgstr "" + +#: js/toolbar.js:98 +#: js/toolbar.js:164 +#: js/toolbar.js:219 +#: js/toolbar.js:275 +msgid "quechua" +msgstr "" + +#: js/toolbar.js:99 +#: js/toolbar.js:165 +#: js/toolbar.js:220 +#: js/toolbar.js:276 +msgid "guarani" +msgstr "" + +#: js/toolbar.js:100 +#: js/toolbar.js:166 +#: js/toolbar.js:221 +#: js/toolbar.js:277 +msgid "हिंदी" +msgstr "" + +#: js/toolbar.js:101 +#: js/toolbar.js:168 +#: js/toolbar.js:222 +#: js/toolbar.js:279 +msgid "igbo" +msgstr "" + +#: js/toolbar.js:102 +#: js/toolbar.js:169 +#: js/toolbar.js:223 +#: js/toolbar.js:280 +msgid "عربى" +msgstr "" + +#: js/toolbar.js:103 +#: js/toolbar.js:167 +#: js/toolbar.js:224 +#: js/toolbar.js:278 +msgid "తెలుగు" +msgstr "" + +#: js/toolbar.js:104 +#: js/toolbar.js:170 +#: js/toolbar.js:225 +#: js/toolbar.js:281 +msgid "עִברִית" +msgstr "" + +#: js/toolbar.js:113 +#: js/toolbar.js:114 +#: js/toolbar.js:178 +#: js/toolbar.js:179 +#: js/toolbar.js:234 +#: js/toolbar.js:235 +msgid "Full Screen" +msgstr "" + +#: js/toolbar.js:148 +#: js/toolbar.js:151 +#: js/toolbar.js:203 +#: js/toolbar.js:206 +#: js/toolbar.js:259 +#: js/toolbar.js:262 +#: js/turtledefs.js:558 +msgid "Save turtle artwork as PNG" +msgstr "" + +#: js/toolbar.js:150 +#: js/toolbar.js:205 +#: js/toolbar.js:261 +#: js/turtledefs.js:554 +msgid "Save turtle artwork as SVG" +msgstr "" + +#: js/toolbar.js:157 +#: js/toolbar.js:212 +#: js/toolbar.js:268 +msgid "한국인" +msgstr "" + +#: js/toolbar.js:174 +#: js/toolbar.js:230 +msgid "About Turtle Blocks" +msgstr "" + +#: js/toolbar.js:446 +#: js/toolbar.js:457 +#: js/toolbar.js:497 +msgid "Turtle Wrap Off" +msgstr "" + +#: js/toolbar.js:466 +#: js/toolbar.js:506 +msgid "Turtle Wrap On" +msgstr "" + +#: js/turtle-painter.js:1192 +#: js/turtle-painter.js:1193 +#: js/turtles.js:118 +#: js/block-verbose.js:1623 +#: js/block.js:1587 +#: js/lilypond.js:749 +#: js/lilypond.js:913 +#: js/lilypond.js:951 +#: js/logo.js:1184 +#: js/blocks/ActionBlocks.js:1223 +#: js/blocks/ProgramBlocks.js:1267 +msgid "start" +msgstr "bido" + +#: js/turtledefs.js:40 +#.TRANS: put the URL to the guide here, e.g., https://github.com/sugarlabs/turtleblocksjs/tree/master/guide/README.md +msgid "guide url" +msgstr "" + +#: js/turtledefs.js:85 +#: js/turtledefs.js:437 +msgid "Turtle Blocks is a Logo-inspired turtle that draws colorful pictures with snap-together visual-programming blocks." +msgstr "" + +#: js/turtledefs.js:118 +#: js/turtledefs.js:220 +msgid "search" +msgstr "" + +#: js/turtledefs.js:120 +#: js/turtledefs.js:222 +#: js/blocks/MeterBlocks.js:1343 +#: js/blocks/WidgetBlocks.js:522 +#.TRANS: musical meter (time signature), e.g., 4:4 +msgid "meter" +msgstr "mita" + +#: js/turtledefs.js:122 +#: js/turtledefs.js:224 +msgid "intervals" +msgstr "" + +#: js/turtledefs.js:124 +#: js/turtledefs.js:226 +msgid "ornament" +msgstr "" + +#: js/turtledefs.js:125 +#: js/turtledefs.js:227 +#: js/blocks/VolumeBlocks.js:362 +#: js/blocks/VolumeBlocks.js:502 +#: js/blocks/VolumeBlocks.js:545 +msgid "volume" +msgstr "" + +#: js/turtledefs.js:126 +#: js/turtledefs.js:228 +#: js/block-verbose.js:1700 +#: js/block-verbose.js:2626 +#: js/block.js:1664 +#: js/block.js:2554 +#: js/lilypond.js:732 +#: js/lilypond.js:897 +#: js/lilypond.js:941 +#: js/palette.js:577 +#: js/blocks/RhythmBlocks.js:766 +#: js/blocks/DrumBlocks.js:477 +#: js/blocks/VolumeBlocks.js:502 +#: js/widgets/phrasemaker.js:1038 +msgid "drum" +msgstr "" + +#: js/turtledefs.js:129 +#: js/turtledefs.js:231 +msgid "boxes" +msgstr "akpati" + +#: js/turtledefs.js:130 +#: js/turtledefs.js:232 +msgid "widgets" +msgstr "" + +#: js/turtledefs.js:131 +#: js/turtledefs.js:233 +#: js/widgets/phrasemaker.js:1039 +msgid "graphics" +msgstr "" + +#: js/turtledefs.js:134 +#: js/turtledefs.js:236 +msgid "boolean" +msgstr "boolean" + +#: js/turtledefs.js:137 +#: js/turtledefs.js:239 +#: js/blocks/HeapBlocks.js:59 +#: js/widgets/status.js:147 +msgid "heap" +msgstr "obo" + +#: js/turtledefs.js:138 +#: js/turtledefs.js:240 +#: js/blocks/DictBlocks.js:142 +#: js/blocks/ProgramBlocks.js:495 +msgid "dictionary" +msgstr "" + +#: js/turtledefs.js:139 +#: js/turtledefs.js:241 +msgid "ensemble" +msgstr "" + +#: js/turtledefs.js:140 +#: js/turtledefs.js:242 +msgid "extras" +msgstr "yana mgbakwunye" + +#: js/turtledefs.js:142 +#: js/turtledefs.js:244 +#.TRANS: program as in computer program +#.TRANS: program as in computer program +msgid "program" +msgstr "" + +#: js/turtledefs.js:143 +#: js/turtledefs.js:245 +msgid "my blocks" +msgstr "" + +#: js/turtledefs.js:185 +#: js/turtledefs.js:281 +msgid "artwork" +msgstr "" + +#: js/turtledefs.js:185 +#: js/turtledefs.js:281 +msgid "logic" +msgstr "mgbagha" + +#: js/turtledefs.js:185 +#: js/turtledefs.js:281 +msgid "music" +msgstr "" + +#: js/turtledefs.js:187 +#: js/turtledefs.js:463 +msgid "Music Blocks is a collection of tools for exploring fundamental musical concepts in a fun way." +msgstr "" + +#: js/turtledefs.js:436 +msgid "Welcome to Turtle Blocks" +msgstr "" + +#: js/turtledefs.js:438 +#: js/turtledefs.js:465 +#: js/turtledefs.js:774 +#: js/turtledefs.js:805 +msgid "The current version is" +msgstr "" + +#: js/turtledefs.js:446 +#: js/turtledefs.js:483 +msgid "Click the run button to run the project in fast mode." +msgstr "" + +#: js/turtledefs.js:452 +msgid "Stop the turtle." +msgstr "" + +#: js/turtledefs.js:454 +#: js/turtledefs.js:491 +msgid "You can also type Alt-S to stop." +msgstr "" + +#: js/turtledefs.js:462 +#: js/widgets/help.js:333 +msgid "Welcome to Music Blocks" +msgstr "Mmadụ Bịa ka Music nkanka" + +#: js/turtledefs.js:472 +#: js/widgets/help.js:334 +msgid "Meet Mr. Mouse!" +msgstr "Izute Mr. Òké!" + +#: js/turtledefs.js:473 +msgid "Mr Mouse is our Music Blocks conductor." +msgstr "" + +#: js/turtledefs.js:475 +msgid "Mr Mouse encourages you to explore Music Blocks." +msgstr "" + +#: js/turtledefs.js:477 +msgid "Let us start our tour!" +msgstr "Ka anyị na-amalite anyị njegharị!" + +#: js/turtledefs.js:489 +msgid "Stop the music (and the mice)." +msgstr "" + +#: js/turtledefs.js:499 +msgid "Record your project as video." +msgstr "" + +#: js/turtledefs.js:505 +msgid "Toggle Fullscreen mode." +msgstr "" + +#: js/turtledefs.js:511 +msgid "Initialize a new project." +msgstr "" + +#: js/turtledefs.js:517 +msgid "You can also load projects from the file system." +msgstr "giwa nwekwara ike mara oru ngo si faịlụ usoro" + +#: js/turtledefs.js:522 +#: planet/js/StringHelper.js:46 +msgid "Delete" +msgstr "hichapụ" + +#: js/turtledefs.js:523 +msgid "To delete a block, just right-click on it, then you will be able to see the delete option" +msgstr "" + +#: js/turtledefs.js:528 +#: js/activity.js:2649 +#: planet/js/LocalCard.js:31 +msgid "Copy" +msgstr "Detuo" + +#: js/turtledefs.js:529 +msgid "To copy a block, just right-click on it, then you will be able to see the copy option" +msgstr "" + +#: js/turtledefs.js:534 +#: js/piemenus.js:3411 +msgid "Extract" +msgstr "" + +#: js/turtledefs.js:535 +msgid "To extract a block, just right-click on it, then you will be able to see the extract option" +msgstr "" + +#: js/turtledefs.js:542 +#: js/turtledefs.js:552 +#: js/turtledefs.js:573 +msgid "Save your project to a file." +msgstr "Azọpụta gị oru ngo a faịlụ." + +#: js/turtledefs.js:549 +#: js/turtledefs.js:570 +msgid "save" +msgstr "" + +#: js/turtledefs.js:556 +#: js/turtledefs.js:577 +msgid "Save graphics from your project to as SVG." +msgstr "" + +#: js/turtledefs.js:560 +#: js/turtledefs.js:581 +msgid "Save graphics from your project as PNG." +msgstr "" + +#: js/turtledefs.js:564 +#: js/turtledefs.js:597 +msgid "Save block artwork as an SVG file." +msgstr "" + +#: js/turtledefs.js:585 +msgid "Save audio from your project as WAV." +msgstr "" + +#: js/turtledefs.js:589 +msgid "Save your project to as an ABC file." +msgstr "" + +#: js/turtledefs.js:593 +msgid "Save your project to as a Lilypond file." +msgstr "Azọpụta gị oru ngo ka a faịlụ Lilypond." + +#: js/turtledefs.js:604 +msgid "Load samples from server" +msgstr "Ibu Ibu n'omume site na ihe nkesa" + +#: js/turtledefs.js:605 +msgid "This button opens a viewer for loading example projects." +msgstr "Nke a ga-emepe button a na-ekiri maka loading atụ oru ngo" + +#: js/turtledefs.js:611 +msgid "Palette buttons" +msgstr "palette buttons" + +#: js/turtledefs.js:612 +msgid "This toolbar contains the palette buttons including Rhythm Pitch Tone Action and more." +msgstr "" + +#: js/turtledefs.js:614 +msgid "Click to show the palettes of blocks and drag blocks from the palettes onto the canvas to use them." +msgstr "Pịa egosi na palettes nke blocks na ikpuru blocks si palettes na na kwaaji na-eji ha." + +#: js/turtledefs.js:620 +msgid "Cartesian/Polar" +msgstr "" + +#: js/turtledefs.js:621 +msgid "Show or hide a coordinate grid." +msgstr "" + +#: js/turtledefs.js:626 +#: js/turtles.js:902 +msgid "Clean" +msgstr "ọcha" + +#: js/turtledefs.js:627 +msgid "Clear the screen and return the mice to their initial positions." +msgstr "" + +#: js/turtledefs.js:632 +#: js/turtles.js:955 +msgid "Collapse" +msgstr "" + +#: js/turtledefs.js:633 +msgid "Collapse the graphics window." +msgstr "" + +#: js/turtledefs.js:638 +#: js/activity.js:5684 +msgid "Home" +msgstr "" + +#: js/turtledefs.js:639 +msgid "Return all blocks to the center of the screen." +msgstr "" + +#: js/turtledefs.js:644 +msgid "Show/hide blocks" +msgstr "Gosi / hide blocks" + +#: js/turtledefs.js:645 +msgid "Hide or show the blocks and the palettes." +msgstr "Zoo ma ọ bụ na-egosi na blocks na palettes" + +#: js/turtledefs.js:650 +msgid "Expand/collapse collapsable blocks" +msgstr "" + +#: js/turtledefs.js:651 +msgid "Expand or collapse start and action stacks." +msgstr "Ịmụbawanye ma ọ bụ daa stacks nke blocks, dịka, na-amalite na edinam stack" + +#: js/turtledefs.js:658 +#: js/activity.js:5704 +msgid "Decrease block size" +msgstr "Ibelata ngọngọ size" + +#: js/turtledefs.js:659 +msgid "Decrease the size of the blocks." +msgstr "Ibelata size nke blocks." + +#: js/turtledefs.js:664 +#: js/activity.js:5710 +msgid "Increase block size" +msgstr "Mmụba ngọngọ size" + +#: js/turtledefs.js:665 +msgid "Increase the size of the blocks." +msgstr "Dịkwuo size nke blocks." + +#: js/turtledefs.js:670 +msgid "Expand/collapse option toolbar" +msgstr "Ịmụbawanye / daa nhọrọ toolbar" + +#: js/turtledefs.js:671 +msgid "Click this button to expand or collapse the auxillary toolbar." +msgstr "Pịa a button mụbaa ma ọ bụ daa na auxillary toolbar" + +#: js/turtledefs.js:676 +msgid "Run slow" +msgstr "Gbaa Obere Obere" + +#: js/turtledefs.js:677 +msgid "Click to run the project in slow mode." +msgstr "Pịa-agba ọsọ ahụ oru ngo na-adịghị ngwa mode" + +#: js/turtledefs.js:683 +msgid "Click to run the project step by step." +msgstr "Pịa na-agba ọsọ ngo nzọụkwụ site nzọụkwụ" + +#: js/turtledefs.js:690 +msgid "Display statistics about your Music project." +msgstr "Ngosipụta ọnụ ọgụgụ banyere gị mbe oru ngo." + +#: js/turtledefs.js:697 +msgid "Delete a selected plugin." +msgstr "" + +#: js/turtledefs.js:704 +msgid "Enable scrolling" +msgstr "Kwado pịgharịwa" + +#: js/turtledefs.js:705 +msgid "You can scroll the blocks on the canvas." +msgstr "Ị nwere ike pịgharịa na blocks na kwaaji." + +#: js/turtledefs.js:714 +msgid "Wrap Turtle" +msgstr "" + +#: js/turtledefs.js:715 +msgid "Turn Turtle wrapping On or Off." +msgstr "" + +#: js/turtledefs.js:725 +msgid "Restore blocks from the trash." +msgstr "Weghachi blocks si ahịhịa" + +#: js/turtledefs.js:732 +msgid "Switch mode" +msgstr "" + +#: js/turtledefs.js:733 +msgid "Switch between beginner and advance modes." +msgstr "" + +#: js/turtledefs.js:739 +msgid "Select your language preference." +msgstr "" + +#: js/turtledefs.js:745 +msgid "Keyboard shortcuts" +msgstr "" + +#: js/turtledefs.js:746 +msgid "You can type d to create a do block and r to create a re block etc." +msgstr "" + +#: js/turtledefs.js:753 +msgid "Show these messages." +msgstr "Gosi ndị a ozi" + +#: js/turtledefs.js:759 +#: js/turtledefs.js:790 +#: js/widgets/help.js:335 +msgid "Guide" +msgstr "" + +#: js/turtledefs.js:760 +msgid "A detailed guide to Turtle Blocks is available." +msgstr "" + +#: js/turtledefs.js:764 +msgid "Turtle Blocks Guide" +msgstr "" + +#: js/turtledefs.js:767 +#: js/turtledefs.js:798 +#: js/widgets/help.js:336 +msgid "About" +msgstr "" + +#: js/turtledefs.js:768 +msgid "Turtle Blocks is an open source collection of tools for exploring musical concepts." +msgstr "" + +#: js/turtledefs.js:770 +msgid "A full list of contributors can be found in the Turtle Blocks GitHub repository." +msgstr "" + +#: js/turtledefs.js:772 +msgid "Turtle Blocks is licensed under the AGPL." +msgstr "" + +#: js/turtledefs.js:780 +msgid "Turtle Blocks GitHub repository" +msgstr "" + +#: js/turtledefs.js:783 +#: js/turtledefs.js:814 +#: js/widgets/help.js:337 +#: js/widgets/help.js:359 +msgid "Congratulations." +msgstr "ekele" + +#: js/turtledefs.js:784 +msgid "You have finished the tour. Please enjoy Turtle Blocks!" +msgstr "" + +#: js/turtledefs.js:791 +msgid "A detailed guide to Music Blocks is available." +msgstr "" + +#: js/turtledefs.js:799 +msgid "Music Blocks is an open source collection of tools for exploring musical concepts." +msgstr "" + +#: js/turtledefs.js:801 +msgid "A full list of contributors can be found in the Music Blocks GitHub repository." +msgstr "" + +#: js/turtledefs.js:803 +msgid "Music Blocks is licensed under the AGPL." +msgstr "" + +#: js/turtledefs.js:811 +msgid "Music Blocks GitHub repository" +msgstr "" + +#: js/turtledefs.js:815 +msgid "You have finished the tour. Please enjoy Music Blocks!" +msgstr "Ị na-okokụre na njegharị. Biko enwe egwu nkwa ngọngọ!" + +#: js/turtles.js:882 +msgid "Grid" +msgstr "" + +#: js/turtles.js:1024 +msgid "Expand" +msgstr "" + +#: js/block-verbose.js:1616 +#: js/block-verbose.js:1735 +#: js/block.js:1580 +#: js/block.js:1699 +#: js/palette.js:605 +#: js/blocks/IntervalsBlocks.js:63 +#: js/blocks/WidgetBlocks.js:259 +msgid "temperament" +msgstr "" + +#: js/block-verbose.js:1630 +#: js/block.js:1594 +msgid "matrix" +msgstr "" + +#: js/block-verbose.js:1637 +#: js/block.js:1601 +#: js/blocks/WidgetBlocks.js:1509 +#: plugins/rodi.rtp:324 +msgid "status" +msgstr "" + +#: js/block-verbose.js:1644 +#: js/block.js:1608 +msgid "drum mapper" +msgstr "" + +#: js/block-verbose.js:1651 +#: js/block.js:1615 +msgid "ruler" +msgstr "" + +#: js/block-verbose.js:1658 +#: js/block.js:1622 +#: js/blocks/WidgetBlocks.js:397 +#.TRANS: timbre is the character or quality of a musical sound +msgid "timbre" +msgstr "" + +#: js/block-verbose.js:1665 +#: js/block.js:1629 +msgid "stair" +msgstr "" + +#: js/block-verbose.js:1672 +#: js/block.js:1636 +#: js/blocks/WidgetBlocks.js:707 +#.TRANS: the speed at music is should be played. +msgid "tempo" +msgstr "" + +#: js/block-verbose.js:1679 +#: js/block-verbose.js:1742 +#: js/block.js:1643 +#: js/block.js:1706 +#: js/blocks/IntervalsBlocks.js:1464 +#.TRANS: mode, e.g., Major in C Major +msgid "mode" +msgstr "" + +#: js/block-verbose.js:1686 +#: js/block.js:1650 +msgid "slider" +msgstr "" + +#: js/block-verbose.js:1693 +#: js/block.js:1657 +#: js/blocks/SensorsBlocks.js:1001 +msgid "keyboard" +msgstr "kiiboodu" + +#: js/block-verbose.js:1707 +#: js/block.js:1671 +#: js/blocks/WidgetBlocks.js:1190 +#: js/blocks/WidgetBlocks.js:1228 +#.TRANS: widget for subdividing a measure into distinct rhythmic elements +msgid "rhythm maker" +msgstr "" + +#: js/block-verbose.js:1714 +#: js/block-verbose.js:2457 +#: js/block-verbose.js:2514 +#: js/block.js:1678 +#: js/block.js:2385 +#: js/block.js:2442 +#: js/blocks/MeterBlocks.js:1367 +#: js/blocks/OrnamentBlocks.js:220 +#: js/blocks/OrnamentBlocks.js:312 +#: js/blocks/RhythmBlocks.js:33 +#: js/blocks/RhythmBlocks.js:356 +#: js/blocks/RhythmBlocks.js:766 +#: js/blocks/RhythmBlocks.js:806 +#: js/blocks/RhythmBlockPaletteBlocks.js:70 +#: js/blocks/RhythmBlockPaletteBlocks.js:252 +#: js/blocks/RhythmBlockPaletteBlocks.js:485 +#: js/blocks/RhythmBlockPaletteBlocks.js:554 +#: js/blocks/RhythmBlockPaletteBlocks.js:605 +#: js/blocks/RhythmBlockPaletteBlocks.js:875 +#: js/turtleactions/DictActions.js:85 +#: js/widgets/phrasemaker.js:942 +#: js/widgets/phrasemaker.js:2656 +#: js/widgets/phrasemaker.js:2699 +#: js/widgets/phrasemaker.js:2810 +#.TRANS: the value (e.g., 1/4 note) of the note being played. +msgid "note value" +msgstr "dee uru" + +#: js/block-verbose.js:1721 +#: js/block-verbose.js:2382 +#: js/block-verbose.js:2405 +#: js/block.js:1685 +#: js/block.js:2310 +#: js/block.js:2333 +#: js/blocks/IntervalsBlocks.js:1071 +#: js/blocks/OrnamentBlocks.js:312 +#.TRANS: calculate a relative step between notes based on semi-tones +msgid "scalar interval" +msgstr "" + +#: js/block-verbose.js:1728 +#: js/block.js:1692 +#: js/blocks/RhythmBlocks.js:148 +msgid "milliseconds" +msgstr "" + +#: js/block-verbose.js:2455 +#: js/block-verbose.js:2459 +#: js/block-verbose.js:2512 +#: js/block-verbose.js:2628 +#: js/block.js:2383 +#: js/block.js:2387 +#: js/block.js:2440 +#: js/block.js:2556 +#: js/blocks/RhythmBlocks.js:712 +#: js/blocks/ProgramBlocks.js:1273 +#: js/widgets/rhythmruler.js:1183 +#: js/widgets/rhythmruler.js:1329 +msgid "silence" +msgstr "" + +#: js/block-verbose.js:2548 +#: js/block-verbose.js:3492 +#: js/block-verbose.js:3509 +#: js/activity.js:2718 +#: js/activity.js:2769 +#: js/block.js:2476 +#: js/block.js:3416 +#: js/block.js:3433 +#: js/utils/musicutils.js:3780 +#: js/utils/musicutils.js:5273 +#.TRANS: the note names must be separated by single spaces +#.TRANS: the note names must be separated by single spaces +#.TRANS: the note names must be separated by single spaces +msgid "ti la sol fa mi re do" +msgstr "" + +#: js/block-verbose.js:2616 +#: js/block.js:2544 +#.TRANS: scalar step +#.TRANS: scalar step +msgid "down" +msgstr "" + +#: js/block-verbose.js:2617 +#: js/block.js:2545 +msgid "up" +msgstr "" + +#: js/block-verbose.js:3026 +#: js/block.js:2950 +msgid "Silence block cannot be removed." +msgstr "" + +#: js/block-verbose.js:3824 +#: js/block.js:3748 +#: js/blocks.js:2607 +#: js/blocks.js:3218 +#: js/palette.js:618 +#: js/blocks/BooleanBlocks.js:77 +#: js/blocks/BooleanBlocks.js:167 +#: js/blocks/BooleanBlocks.js:251 +#: js/blocks/BooleanBlocks.js:335 +#: js/blocks/BooleanBlocks.js:433 +#: js/blocks/BooleanBlocks.js:539 +#: js/blocks/BooleanBlocks.js:640 +#: js/blocks/BooleanBlocks.js:741 +#: js/blocks/BooleanBlocks.js:847 +#: js/blocks/BooleanBlocks.js:948 +#: js/blocks/BooleanBlocks.js:1033 +#: js/blocks/SensorsBlocks.js:910 +msgid "true" +msgstr "" + +#: js/block-verbose.js:3824 +#: js/block.js:3748 +#: js/blocks.js:2609 +#: js/blocks.js:3220 +#: js/blocks/BooleanBlocks.js:79 +#: js/blocks/BooleanBlocks.js:169 +#: js/blocks/BooleanBlocks.js:253 +#: js/blocks/BooleanBlocks.js:337 +#: js/blocks/BooleanBlocks.js:435 +#: js/blocks/BooleanBlocks.js:541 +#: js/blocks/BooleanBlocks.js:642 +#: js/blocks/BooleanBlocks.js:743 +#: js/blocks/BooleanBlocks.js:849 +#: js/blocks/BooleanBlocks.js:950 +#: js/blocks/SensorsBlocks.js:912 +msgid "false" +msgstr "" + +#: js/block-verbose.js:3835 +#: js/block-verbose.js:3848 +#: js/block.js:3759 +#: js/block.js:3772 +#: js/blocks/ExtrasBlocks.js:615 +msgid "Cartesian" +msgstr "Cartesian" + +#: js/block-verbose.js:3836 +#: js/block-verbose.js:3849 +#: js/block.js:3760 +#: js/block.js:3773 +#: js/blocks/ExtrasBlocks.js:619 +msgid "polar" +msgstr "" + +#: js/block-verbose.js:3837 +#: js/block-verbose.js:3850 +#: js/block.js:3761 +#: js/block.js:3774 +#: js/blocks/ExtrasBlocks.js:623 +msgid "Cartesian+polar" +msgstr "" + +#: js/block-verbose.js:3838 +#: js/block-verbose.js:3857 +#: js/block.js:3762 +#: js/block.js:3781 +#: js/blocks/ExtrasBlocks.js:652 +msgid "none" msgstr "" -#: js/toolbar.js:73 -#: js/toolbar.js:133 -#: js/toolbar.js:197 -#: js/toolbar.js:252 -msgid "Switch to advanced mode" +#: js/block-verbose.js:3851 +#: js/block.js:3775 +#: js/blocks/ExtrasBlocks.js:628 +msgid "treble" msgstr "" -#: js/toolbar.js:74 -#: js/toolbar.js:134 -#: js/toolbar.js:143 -#: js/toolbar.js:198 -#: js/toolbar.js:253 -#: js/turtledefs.js:738 -msgid "Select language" +#: js/block-verbose.js:3852 +#: js/block.js:3776 +#: js/blocks/ExtrasBlocks.js:632 +msgid "grand staff" msgstr "" -#: js/toolbar.js:76 -#: js/toolbar.js:79 -#: js/toolbar.js:137 -#: js/turtledefs.js:579 -msgid "Save mouse artwork as PNG" +#: js/block-verbose.js:3853 +#: js/block.js:3777 +#: js/blocks/ExtrasBlocks.js:636 +msgid "mezzo-soprano" msgstr "" -#: js/toolbar.js:78 -#: js/toolbar.js:136 -#: js/turtledefs.js:575 -msgid "Save mouse artwork as SVG" +#: js/block-verbose.js:3854 +#: js/block.js:3778 +#: js/blocks/ExtrasBlocks.js:640 +msgid "alto" msgstr "" -#: js/toolbar.js:80 -#: js/toolbar.js:138 -#: js/turtledefs.js:583 -msgid "Save music as WAV" +#: js/block-verbose.js:3855 +#: js/block.js:3779 +#: js/blocks/ExtrasBlocks.js:644 +msgid "tenor" msgstr "" -#: js/toolbar.js:81 -#: js/toolbar.js:139 -#: js/turtledefs.js:587 -msgid "Save sheet music as ABC" +#: js/block-verbose.js:3856 +#: js/block.js:3780 +#: js/utils/musicutils.js:1115 +#: js/utils/synthutils.js:80 +#: js/blocks/ExtrasBlocks.js:648 +#.TRANS: musical instrument +msgid "bass" msgstr "" -#: js/toolbar.js:82 -#: js/toolbar.js:140 -#: js/turtledefs.js:591 -msgid "Save sheet music as Lilypond" +#: js/block-verbose.js:3901 +#: js/block.js:3825 +#: js/blocks.js:2600 +#: js/blocks.js:3211 +msgid "on2" msgstr "" -#: js/toolbar.js:83 -msgid "Save sheet music as MusicXML" +#: js/block-verbose.js:3903 +#: js/block.js:3827 +#: js/blocks.js:2602 +#: js/blocks.js:3213 +msgid "off" msgstr "" -#: js/toolbar.js:84 -#: js/toolbar.js:141 -#: js/toolbar.js:149 -#: js/toolbar.js:204 -#: js/toolbar.js:259 -#: js/turtledefs.js:562 -#: js/turtledefs.js:595 -msgid "Save block artwork as SVG" +#: js/block-verbose.js:4470 +#: js/block.js:4394 +msgid "Not a number" msgstr "" -#: js/toolbar.js:85 -#: js/toolbar.js:142 -#: js/toolbar.js:150 -#: js/toolbar.js:205 -#: js/toolbar.js:260 -msgid "Confirm" +#: js/block-verbose.js:4477 +#: js/block.js:4401 +msgid "Octave value must be between 1 and 10." msgstr "" -#: js/toolbar.js:86 -#: js/toolbar.js:151 -#: js/toolbar.js:206 -#: js/toolbar.js:261 -msgid "English (United States)" +#: js/block-verbose.js:4485 +#: js/block.js:4409 +msgid "Numbers can have at most 10 digits." msgstr "" -#: js/toolbar.js:87 -#: js/toolbar.js:152 -#: js/toolbar.js:207 -#: js/toolbar.js:262 -msgid "English (United Kingdom)" +#: js/activity.js:390 +#: js/activity.js:395 +msgid "Search for blocks" msgstr "" -#: js/toolbar.js:88 -#: js/toolbar.js:153 -#: js/toolbar.js:208 -#: js/toolbar.js:263 -msgid "日本語" +#: js/activity.js:1413 +msgid "Refresh your browser to change to advanced mode." msgstr "" -#: js/toolbar.js:89 -msgid "한국어" +#: js/activity.js:1418 +msgid "Refresh your browser to change to beginner mode." msgstr "" -#: js/toolbar.js:90 -#: js/toolbar.js:155 -#: js/toolbar.js:210 -#: js/toolbar.js:265 -msgid "español" +#: js/activity.js:1477 +msgid "Catching mice" msgstr "" -#: js/toolbar.js:91 -#: js/toolbar.js:156 -#: js/toolbar.js:211 -#: js/toolbar.js:266 -msgid "português" +#: js/activity.js:1478 +msgid "Cleaning the instruments" msgstr "" -#: js/toolbar.js:92 -#: js/toolbar.js:157 -#: js/toolbar.js:212 -#: js/toolbar.js:267 -msgid "にほんご" +#: js/activity.js:1479 +msgid "Testing key pieces" msgstr "" -#: js/toolbar.js:93 -#: js/toolbar.js:158 -#: js/toolbar.js:213 -#: js/toolbar.js:268 -msgid "中文" +#: js/activity.js:1480 +msgid "Sight-reading" msgstr "" -#: js/toolbar.js:94 -#: js/toolbar.js:159 -#: js/toolbar.js:214 -#: js/toolbar.js:269 -msgid "ภาษาไทย" +#: js/activity.js:1481 +msgid "Combining math and music" msgstr "" -#: js/toolbar.js:95 -#: js/toolbar.js:160 -#: js/toolbar.js:215 -#: js/toolbar.js:270 -msgid "aymara" +#: js/activity.js:1482 +msgid "Generating more blocks" msgstr "" -#: js/toolbar.js:96 -#: js/toolbar.js:161 -#: js/toolbar.js:216 -#: js/toolbar.js:271 -msgid "quechua" +#: js/activity.js:1483 +msgid "Do Re Mi Fa Sol La Ti Do" msgstr "" -#: js/toolbar.js:97 -#: js/toolbar.js:162 -#: js/toolbar.js:217 -#: js/toolbar.js:272 -msgid "guarani" +#: js/activity.js:1484 +msgid "Tuning string instruments" msgstr "" -#: js/toolbar.js:98 -#: js/toolbar.js:163 -#: js/toolbar.js:218 -#: js/toolbar.js:273 -msgid "हिंदी" +#: js/activity.js:1485 +msgid "Pressing random keys" msgstr "" -#: js/toolbar.js:99 -#: js/toolbar.js:165 -#: js/toolbar.js:219 -#: js/toolbar.js:275 -msgid "igbo" +#: js/activity.js:1663 +msgid "plugins will be removed upon restart." msgstr "" -#: js/toolbar.js:100 -#: js/toolbar.js:166 -#: js/toolbar.js:220 -#: js/toolbar.js:276 -msgid "عربى" +#: js/activity.js:1672 +msgid "show Cartesian" msgstr "" -#: js/toolbar.js:101 -#: js/toolbar.js:164 -#: js/toolbar.js:221 -#: js/toolbar.js:274 -msgid "తెలుగు" +#: js/activity.js:2211 +#: js/palette.js:589 +#: js/blocks/RhythmBlocks.js:923 +#: js/blocks/PitchBlocks.js:442 +#: js/blocks/PitchBlocks.js:1786 +#.TRANS: a numeric mapping of the notes in an octave based on the musical mode +msgid "scale degree" msgstr "" -#: js/toolbar.js:102 -#: js/toolbar.js:167 -#: js/toolbar.js:222 -#: js/toolbar.js:277 -msgid "עִברִית" +#: js/activity.js:2214 +#: js/palette.js:598 +msgid "voice name" msgstr "" -#: js/toolbar.js:111 -#: js/toolbar.js:175 -#: js/toolbar.js:176 -#: js/toolbar.js:231 -msgid "Full Screen" +#: js/activity.js:2217 +#: js/palette.js:595 +msgid "invert mode" msgstr "" -#: js/toolbar.js:145 -#: js/toolbar.js:148 -#: js/toolbar.js:200 -#: js/toolbar.js:203 -#: js/toolbar.js:255 -#: js/toolbar.js:258 -#: js/turtledefs.js:558 -msgid "Save turtle artwork as PNG" +#: js/activity.js:2220 +msgid "output tools" msgstr "" -#: js/toolbar.js:147 -#: js/toolbar.js:202 -#: js/toolbar.js:257 -#: js/turtledefs.js:554 -msgid "Save turtle artwork as SVG" +#: js/activity.js:2223 +msgid "custom note" msgstr "" -#: js/toolbar.js:154 -#: js/toolbar.js:209 -#: js/toolbar.js:264 -msgid "한국인" +#: js/activity.js:2226 +msgid "accidental name" msgstr "" -#: js/toolbar.js:171 -#: js/toolbar.js:227 -msgid "About Turtle Blocks" +#: js/activity.js:2229 +#: js/blocks/PitchBlocks.js:855 +msgid "east indian solfege" msgstr "" -#: js/toolbar.js:429 -#: js/toolbar.js:440 -msgid "Turtle Wrap Off" +#: js/activity.js:2232 +#: js/blocks/PitchBlocks.js:869 +msgid "note name" msgstr "" -#: js/toolbar.js:442 -msgid "Turtle Wrap On" +#: js/activity.js:2235 +#: js/blocks/IntervalsBlocks.js:94 +msgid "temperament name" msgstr "" -#: js/block.js:1470 -msgid "matrix" +#: js/activity.js:2238 +#: js/palette.js:592 +msgid "mode name" msgstr "" -#: js/block.js:1477 -#: js/WidgetBlocks.js:1226 -#: plugins/rodi.rtp:324 -msgid "status" +#: js/activity.js:2241 +msgid "chord name" msgstr "" -#: js/block.js:1484 -msgid "drum mapper" +#: js/activity.js:2244 +#: js/palette.js:615 +msgid "interval name" msgstr "" -#: js/block.js:1491 -msgid "ruler" +#: js/activity.js:2247 +msgid "filter type" msgstr "" -#: js/block.js:1498 -#: js/WidgetBlocks.js:327 -#.TRANS: timbre is the character or quality of a musical sound -msgid "timbre" +#: js/activity.js:2250 +msgid "oscillator type" msgstr "" -#: js/block.js:1505 -msgid "stair" +#: js/activity.js:2253 +#: js/blocks.js:2479 +#: js/blocks.js:2487 +msgid "audio file" msgstr "" -#: js/block.js:1512 -#: js/WidgetBlocks.js:577 -#.TRANS: the speed at music is should be played. -msgid "tempo" +#: js/activity.js:2256 +#: js/blocks/DrumBlocks.js:32 +msgid "noise name" msgstr "" -#: js/block.js:1519 -#: js/block.js:1582 -#: js/IntervalsBlocks.js:1268 -#.TRANS: mode, e.g., Major in C Major -msgid "mode" +#: js/activity.js:2259 +#: js/blocks/DrumBlocks.js:75 +msgid "drum name" msgstr "" -#: js/block.js:1526 -msgid "slider" +#: js/activity.js:2262 +#: js/blocks/DrumBlocks.js:119 +msgid "effects name" msgstr "" -#: js/block.js:1533 -#: js/SensorsBlocks.js:1001 -msgid "keyboard" -msgstr "kiiboodu" +#: js/activity.js:2265 +msgid "wrap mode" +msgstr "" -#: js/block.js:1547 -#: js/WidgetBlocks.js:957 -#: js/WidgetBlocks.js:988 -#.TRANS: widget for subdividing a measure into distinct rhythmic elements -msgid "rhythm maker" +#: js/activity.js:2268 +msgid "load file" msgstr "" -#: js/block.js:1554 -#: js/block.js:2182 -#: js/block.js:2236 -#: js/RhythmBlockPaletteBlocks.js:70 -#: js/RhythmBlockPaletteBlocks.js:251 -#: js/RhythmBlockPaletteBlocks.js:484 -#: js/RhythmBlockPaletteBlocks.js:553 -#: js/RhythmBlockPaletteBlocks.js:604 -#: js/RhythmBlockPaletteBlocks.js:874 -#: js/RhythmBlocks.js:33 -#: js/RhythmBlocks.js:356 -#: js/RhythmBlocks.js:766 -#: js/RhythmBlocks.js:806 -#: js/OrnamentBlocks.js:220 -#: js/OrnamentBlocks.js:312 -#: js/MeterBlocks.js:1367 -#: js/DictActions.js:85 -#: js/phrasemaker.js:731 -#: js/phrasemaker.js:2393 -#: js/phrasemaker.js:2436 -#: js/phrasemaker.js:2534 -#.TRANS: the value (e.g., 1/4 note) of the note being played. -msgid "note value" -msgstr "dee uru" +#: js/activity.js:2435 +#: js/activity.js:5851 +msgid "This block is deprecated." +msgstr "" -#: js/block.js:1561 -#: js/block.js:2110 -#: js/block.js:2133 -#: js/IntervalsBlocks.js:875 -#: js/OrnamentBlocks.js:312 -#.TRANS: calculate a relative step between notes based on semi-tones -msgid "scalar interval" +#: js/activity.js:2437 +#: js/activity.js:5853 +msgid "Block cannot be found." msgstr "" -#: js/block.js:1568 -#: js/RhythmBlocks.js:148 -msgid "milliseconds" +#: js/activity.js:2645 +msgid "Saving block artwork" msgstr "" -#: js/block.js:2180 -#: js/block.js:2184 -#: js/block.js:2234 -#: js/block.js:2345 -#: js/ProgramBlocks.js:1273 -#: js/RhythmBlocks.js:712 -#: js/rhythmruler.js:834 -#: js/rhythmruler.js:961 -msgid "silence" +#: js/activity.js:2656 +msgid "Erase" msgstr "" -#: js/block.js:2265 -#: js/block.js:3134 -#: js/block.js:3151 -#: js/activity.js:2336 -#: js/activity.js:2387 -#: js/musicutils.js:2932 -#: js/musicutils.js:4287 -#.TRANS: the note names must be separated by single spaces -#.TRANS: the note names must be separated by single spaces -msgid "ti la sol fa mi re do" +#: js/activity.js:2683 +#: js/activity.js:2705 +msgid "Paste" +msgstr "tapawa" + +#: js/activity.js:2687 +msgid "Save block help" msgstr "" -#: js/block.js:2333 -#.TRANS: scalar step -msgid "down" +#: js/activity.js:2772 +msgid "Jumping to the bottom of the page." msgstr "" -#: js/block.js:2334 -msgid "up" +#: js/activity.js:2778 +msgid "Scrolling up." msgstr "" -#: js/block.js:3477 -#: js/block.js:3490 -#: js/ExtrasBlocks.js:612 -msgid "Cartesian" -msgstr "Cartesian" - -#: js/block.js:3478 -#: js/block.js:3491 -#: js/ExtrasBlocks.js:616 -msgid "polar" +#: js/activity.js:2783 +msgid "Scrolling down." msgstr "" -#: js/block.js:3479 -#: js/block.js:3492 -#: js/ExtrasBlocks.js:620 -msgid "Cartesian+polar" +#: js/activity.js:2788 +msgid "Extracting block" msgstr "" -#: js/block.js:3480 -#: js/block.js:3499 -#: js/ExtrasBlocks.js:649 -msgid "none" +#: js/activity.js:2796 +msgid "Moving block up." msgstr "" -#: js/block.js:3493 -#: js/ExtrasBlocks.js:625 -msgid "treble" +#: js/activity.js:2817 +msgid "Moving block down." msgstr "" -#: js/block.js:3494 -#: js/ExtrasBlocks.js:629 -msgid "grand staff" +#: js/activity.js:2838 +msgid "Moving block left." msgstr "" -#: js/block.js:3495 -#: js/ExtrasBlocks.js:633 -msgid "mezzo-soprano" +#: js/activity.js:2855 +msgid "Moving block right." msgstr "" -#: js/block.js:3496 -#: js/ExtrasBlocks.js:637 -msgid "alto" +#: js/activity.js:2870 +msgid "Jump to home position." msgstr "" -#: js/block.js:3497 -#: js/ExtrasBlocks.js:641 -msgid "tenor" +#: js/activity.js:2897 +msgid "Hide blocks" msgstr "" -#: js/block.js:3498 -#: js/ExtrasBlocks.js:645 -#: js/musicutils.js:736 -#: js/synthutils.js:64 -#.TRANS: musical instrument -msgid "bass" +#: js/activity.js:4500 +msgid "Click the run button to run the project." msgstr "" -#: js/block.js:4075 -msgid "Not a number" +#: js/activity.js:5692 +msgid "Show/hide block" msgstr "" -#: js/block.js:4082 -msgid "Octave value must be between 1 and 10." +#: js/activity.js:5698 +msgid "Expand/collapse blocks" msgstr "" -#: js/block.js:4090 -msgid "Numbers can have at most 10 digits." +#: js/activity.js:5976 +msgid "Could not parse JSON input." msgstr "" -#: js/notation.js:353 -msgid "Lilypond cannot process pickup of " +#: js/activity.js:6475 +#: js/activity.js:6580 +#: js/activity.js:6631 +msgid "Cannot load project from the file. Please check the file type." msgstr "" -#: js/turtledefs.js:40 -#.TRANS: put the URL to the guide here, e.g., https://github.com/sugarlabs/turtleblocksjs/tree/master/guide/README.md -msgid "guide url" +#: js/activity.js:6917 +msgid "Invalid parameters" msgstr "" -#: js/turtledefs.js:85 -#: js/turtledefs.js:437 -msgid "Turtle Blocks is a Logo-inspired turtle that draws colorful pictures with snap-together visual-programming blocks." -msgstr "" +#: js/blocks.js:1212 +#: js/blocks.js:3444 +#: js/blocks.js:3834 +#: js/blocks.js:3865 +#: js/blocks.js:3914 +#: js/blocks.js:3949 +#: js/blocks.js:6586 +#: js/palette.js:509 +#: js/palette.js:638 +#: js/palette.js:1105 +#: js/blocks/BoxesBlocks.js:282 +#: js/blocks/BoxesBlocks.js:285 +#: js/blocks/BoxesBlocks.js:405 +#: js/blocks/BoxesBlocks.js:594 +msgid "box" +msgstr "igbe" -#: js/turtledefs.js:118 -#: js/turtledefs.js:220 -msgid "search" +#: js/blocks.js:1713 +msgid "Consider breaking this stack into parts." msgstr "" -#: js/turtledefs.js:120 -#: js/turtledefs.js:222 -#: js/WidgetBlocks.js:437 -#: js/MeterBlocks.js:1343 -#.TRANS: musical meter (time signature), e.g., 4:4 -msgid "meter" -msgstr "mita" +#: js/blocks.js:2472 +#: js/palette.js:653 +#: js/blocks/MediaBlocks.js:602 +msgid "open file" +msgstr "emeghe faịlụ" -#: js/turtledefs.js:122 -#: js/turtledefs.js:224 -msgid "intervals" -msgstr "" +#: js/blocks.js:3247 +#: js/palette.js:574 +#: js/blocks/MediaBlocks.js:892 +#: js/blocks/MediaBlocks.js:963 +msgid "text" +msgstr "ederede" -#: js/turtledefs.js:124 -#: js/turtledefs.js:226 -msgid "ornament" +#: js/blocks.js:3443 +#: js/palette.js:641 +#: js/palette.js:642 +#: js/blocks/BoxesBlocks.js:514 +msgid "store in box" msgstr "" -#: js/turtledefs.js:125 -#: js/turtledefs.js:227 -#: js/VolumeBlocks.js:362 -#: js/VolumeBlocks.js:502 -#: js/VolumeBlocks.js:545 -msgid "volume" +#: js/blocks.js:3448 +#: js/blocks.js:3888 +#: js/blocks.js:3923 +#: js/blocks.js:3958 +#: js/blocks.js:5862 +#: js/blocks.js:5883 +#: js/blocks/BoxesBlocks.js:772 +msgid "box1" msgstr "" -#: js/turtledefs.js:129 -#: js/turtledefs.js:231 -msgid "boxes" -msgstr "akpati" - -#: js/turtledefs.js:130 -#: js/turtledefs.js:232 -msgid "widgets" +#: js/blocks.js:3450 +#: js/blocks.js:3890 +#: js/blocks.js:3925 +#: js/blocks.js:3960 +#: js/blocks.js:5864 +#: js/blocks.js:5885 +#: js/blocks/BoxesBlocks.js:663 +msgid "box2" msgstr "" -#: js/turtledefs.js:131 -#: js/turtledefs.js:233 -#: js/phrasemaker.js:824 -msgid "graphics" -msgstr "" +#: js/blocks.js:4122 +#: js/palette.js:639 +#: js/palette.js:644 +#: js/palette.js:1041 +#: js/blocks/BoxesBlocks.js:591 +msgid "store in" +msgstr "echekwa na" -#: js/turtledefs.js:134 -#: js/turtledefs.js:236 -msgid "boolean" -msgstr "boolean" +#: js/blocks.js:4122 +#: js/blocks/BoxesBlocks.js:595 +#: js/blocks/DictBlocks.js:215 +#: js/blocks/DictBlocks.js:289 +#: js/blocks/EnsembleBlocks.js:391 +#: js/blocks/EnsembleBlocks.js:402 +#: js/blocks/MediaBlocks.js:746 +#: js/blocks/PitchBlocks.js:656 +#: js/blocks/PitchBlocks.js:934 +#: js/blocks/PitchBlocks.js:1866 +#: js/blocks/ProgramBlocks.js:390 +#: js/blocks/ProgramBlocks.js:495 +#: js/blocks/ProgramBlocks.js:658 +#: js/blocks/ToneBlocks.js:1025 +msgid "name" +msgstr "aha" -#: js/turtledefs.js:137 -#: js/turtledefs.js:239 -#: js/HeapBlocks.js:59 -#: js/status.js:147 -msgid "heap" -msgstr "obo" +#: js/blocks.js:4122 +#: js/blocks/BoxesBlocks.js:75 +#: js/blocks/BoxesBlocks.js:595 +#: js/blocks/DictBlocks.js:289 +#: js/blocks/DictBlocks.js:430 +#: js/blocks/HeapBlocks.js:544 +#: js/blocks/RhythmBlocks.js:1130 +msgid "value" +msgstr "uru" -#: js/turtledefs.js:138 -#: js/turtledefs.js:240 -#: js/ProgramBlocks.js:495 -#: js/DictBlocks.js:142 -msgid "dictionary" +#: js/blocks.js:4465 +msgid "Forever loop detected inside a note value block. Unexpected things may happen." msgstr "" -#: js/turtledefs.js:139 -#: js/turtledefs.js:241 -msgid "ensemble" +#: js/blocks.js:4988 +msgid "There is no block selected." msgstr "" -#: js/turtledefs.js:140 -#: js/turtledefs.js:242 -msgid "extras" -msgstr "yana mgbakwunye" +#: js/blocks.js:5091 +#: js/blocks/MediaBlocks.js:888 +msgid "show" +msgstr "zie" -#: js/turtledefs.js:142 -#: js/turtledefs.js:244 -#.TRANS: program as in computer program -#.TRANS: program as in computer program -msgid "program" +#: js/blocks.js:5094 +#: js/blocks/MediaBlocks.js:803 +#.TRANS: Avatar is the image used to determine the appearance of the mouse. +msgid "avatar" msgstr "" -#: js/turtledefs.js:143 -#: js/turtledefs.js:245 -msgid "my blocks" +#: js/blocks.js:5097 +#: js/blocks/ToneBlocks.js:1010 +#: js/widgets/sampler.js:975 +#.TRANS: The sound sample that the user uploads. +msgid "sample" msgstr "" -#: js/turtledefs.js:185 -#: js/turtledefs.js:281 -msgid "artwork" +#: js/lilypond.js:606 +msgid "brown rat" msgstr "" -#: js/turtledefs.js:185 -#: js/turtledefs.js:281 -msgid "logic" -msgstr "mgbagha" +#: js/lilypond.js:607 +msgid "mole" +msgstr "" -#: js/turtledefs.js:185 -#: js/turtledefs.js:281 -msgid "music" +#: js/lilypond.js:608 +msgid "chipmunk" msgstr "" -#: js/turtledefs.js:187 -#: js/turtledefs.js:463 -msgid "Music Blocks is a collection of tools for exploring fundamental musical concepts in a fun way." +#: js/lilypond.js:609 +msgid "red squirrel" msgstr "" -#: js/turtledefs.js:436 -msgid "Welcome to Turtle Blocks" +#: js/lilypond.js:610 +msgid "guinea pig" msgstr "" -#: js/turtledefs.js:438 -#: js/turtledefs.js:465 -#: js/turtledefs.js:774 -#: js/turtledefs.js:805 -msgid "The current version is" +#: js/lilypond.js:611 +msgid "capybara" msgstr "" -#: js/turtledefs.js:446 -#: js/turtledefs.js:483 -msgid "Click the run button to run the project in fast mode." +#: js/lilypond.js:612 +msgid "coypu" msgstr "" -#: js/turtledefs.js:452 -msgid "Stop the turtle." +#: js/lilypond.js:613 +msgid "black rat" msgstr "" -#: js/turtledefs.js:454 -#: js/turtledefs.js:491 -msgid "You can also type Alt-S to stop." +#: js/lilypond.js:614 +msgid "grey squirrel" msgstr "" -#: js/turtledefs.js:462 -#: js/help.js:333 -msgid "Welcome to Music Blocks" -msgstr "Mmadụ Bịa ka Music nkanka" +#: js/lilypond.js:615 +msgid "flying squirrel" +msgstr "" -#: js/turtledefs.js:472 -#: js/help.js:334 -msgid "Meet Mr. Mouse!" -msgstr "Izute Mr. Òké!" +#: js/lilypond.js:616 +msgid "bat" +msgstr "" -#: js/turtledefs.js:473 -msgid "Mr Mouse is our Music Blocks conductor." +#: js/lilypond.js:749 +#: js/lilypond.js:913 +#: js/lilypond.js:951 +#: js/blocks/ActionBlocks.js:1256 +#: js/blocks/ExtrasBlocks.js:556 +msgid "start drum" msgstr "" -#: js/turtledefs.js:475 -msgid "Mr Mouse encourages you to explore Music Blocks." +#: js/logo.js:61 +msgid "Not a valid pitch name" msgstr "" -#: js/turtledefs.js:477 -msgid "Let us start our tour!" -msgstr "Ka anyị na-amalite anyị njegharị!" +#: js/logo.js:507 +#: js/blocks/ProgramBlocks.js:258 +#: js/blocks/ProgramBlocks.js:427 +msgid "You must select a file." +msgstr "" -#: js/turtledefs.js:489 -msgid "Stop the music (and the mice)." +#: js/logo.js:1696 +msgid "Playback is ready." msgstr "" -#: js/turtledefs.js:499 -msgid "Record your project as video." +#: js/macros.js:711 +#: js/utils/musicutils.js:1162 +#: js/utils/synthutils.js:202 +#.TRANS: animal sound effect +msgid "duck" msgstr "" -#: js/turtledefs.js:505 -msgid "Toggle Fullscreen mode." +#: js/notation.js:353 +msgid "Lilypond cannot process pickup of " msgstr "" -#: js/turtledefs.js:511 -msgid "Initialize a new project." +#: js/palette.js:571 +msgid "grid" msgstr "" -#: js/turtledefs.js:517 -msgid "You can also load projects from the file system." -msgstr "giwa nwekwara ike mara oru ngo si faịlụ usoro" +#: js/palette.js:580 +msgid "effect" +msgstr "" -#: js/turtledefs.js:522 -#: js/StringHelper.js:46 -msgid "Delete" -msgstr "hichapụ" +#: js/palette.js:586 +msgid "sargam" +msgstr "" -#: js/turtledefs.js:523 -msgid "To delete a block, just right-click on it, then you will be able to see the delete option" +#: js/palette.js:601 +#: js/blocks/PitchBlocks.js:1209 +msgid "custom pitch" msgstr "" -#: js/turtledefs.js:528 -#: js/activity.js:2270 -#: js/LocalCard.js:31 -msgid "Copy" -msgstr "Detuo" +#: js/palette.js:609 +msgid "accidental" +msgstr "" -#: js/turtledefs.js:529 -msgid "To copy a block, just right-click on it, then you will be able to see the copy option" +#: js/palette.js:633 +#: js/blocks/PitchBlocks.js:405 +msgid "pitch converter" msgstr "" -#: js/turtledefs.js:535 -msgid "To extract a block, just right-click on it, then you will be able to see the extract option" +#: js/piemenus.js:200 +#: js/utils/musicutils.js:1187 +#: js/utils/musicutils.js:1207 +#: js/widgets/musickeyboard.js:2341 +#: js/widgets/phrasemaker.js:1908 +#: js/widgets/sampler.js:810 +#.TRANS: double sharp is a music term related to pitch +msgid "double sharp" +msgstr "" + +#: js/piemenus.js:201 +#: js/utils/musicutils.js:1185 +#: js/utils/musicutils.js:1208 +#: js/blocks/PitchBlocks.js:1539 +#: js/turtleactions/PitchActions.js:323 +#: js/widgets/musickeyboard.js:2342 +#: js/widgets/phrasemaker.js:1909 +#: js/widgets/sampler.js:811 +#.TRANS: sharp is a music term related to pitch +#.TRANS: sharp is a half-step up in pitch +msgid "sharp" +msgstr "nkọ" + +#: js/piemenus.js:202 +#: js/utils/musicutils.js:1183 +#: js/utils/musicutils.js:1209 +#: js/widgets/musickeyboard.js:2343 +#: js/widgets/phrasemaker.js:1910 +#: js/widgets/sampler.js:812 +#.TRANS: natural is a music term related to pitch +msgid "natural" msgstr "" -#: js/turtledefs.js:542 -#: js/turtledefs.js:552 -#: js/turtledefs.js:573 -msgid "Save your project to a file." -msgstr "Azọpụta gị oru ngo a faịlụ." +#: js/piemenus.js:203 +#: js/utils/musicutils.js:1181 +#: js/utils/musicutils.js:1210 +#: js/blocks/PitchBlocks.js:1498 +#: js/turtleactions/PitchActions.js:326 +#: js/widgets/musickeyboard.js:2344 +#: js/widgets/phrasemaker.js:1911 +#: js/widgets/sampler.js:813 +#.TRANS: flat is a music term related to pitch +#.TRANS: flat is a half-step down in pitch +msgid "flat" +msgstr "flaati" -#: js/turtledefs.js:549 -#: js/turtledefs.js:570 -msgid "save" +#: js/piemenus.js:204 +#: js/utils/musicutils.js:1179 +#: js/utils/musicutils.js:1211 +#: js/widgets/musickeyboard.js:2345 +#: js/widgets/phrasemaker.js:1912 +#: js/widgets/sampler.js:814 +#.TRANS: double flat is a music term related to pitch +msgid "double flat" msgstr "" -#: js/turtledefs.js:556 -#: js/turtledefs.js:577 -msgid "Save graphics from your project to as SVG." +#: js/piemenus.js:2864 +#: js/utils/musicutils.js:1006 +#: js/blocks/PitchBlocks.js:1385 +#.TRANS: unison is a music term related to intervals +#.TRANS: unison means the note is the same as the current note +msgid "unison" msgstr "" -#: js/turtledefs.js:560 -#: js/turtledefs.js:581 -msgid "Save graphics from your project as PNG." +#: js/piemenus.js:3018 +#: js/piemenus.js:3091 +#: js/utils/musicutils.js:1014 +#: js/utils/musicutils.js:1189 +#: js/utils/musicutils.js:1326 +#.TRANS: major is a music term related to intervals and mode +msgid "major" msgstr "" -#: js/turtledefs.js:564 -#: js/turtledefs.js:597 -msgid "Save block artwork as an SVG file." +#: js/piemenus.js:3018 +#: js/piemenus.js:3091 +#: js/utils/musicutils.js:1032 +#.TRANS: modal scale for music +msgid "ionian" msgstr "" -#: js/turtledefs.js:585 -msgid "Save audio from your project as WAV." +#: js/piemenus.js:3020 +#: js/piemenus.js:3095 +#: js/utils/musicutils.js:1012 +#: js/utils/musicutils.js:1190 +#: js/utils/musicutils.js:1323 +#.TRANS: minor is a music term related to intervals and mode +msgid "minor" msgstr "" -#: js/turtledefs.js:589 -msgid "Save your project to as an ABC file." +#: js/piemenus.js:3020 +#: js/piemenus.js:3095 +#: js/utils/musicutils.js:1042 +#.TRANS: modal scale for music +msgid "aeolian" msgstr "" -#: js/turtledefs.js:593 -msgid "Save your project to as a Lilypond file." -msgstr "Azọpụta gị oru ngo ka a faịlụ Lilypond." - -#: js/turtledefs.js:604 -msgid "Load samples from server" -msgstr "Ibu Ibu n'omume site na ihe nkesa" - -#: js/turtledefs.js:605 -msgid "This button opens a viewer for loading example projects." -msgstr "Nke a ga-emepe button a na-ekiri maka loading atụ oru ngo" +#: js/piemenus.js:3410 +msgid "Duplicate" +msgstr "" -#: js/turtledefs.js:611 -msgid "Palette buttons" -msgstr "palette buttons" +#: js/piemenus.js:3412 +msgid "Move to trash" +msgstr "" -#: js/turtledefs.js:612 -msgid "This toolbar contains the palette buttons including Rhythm Pitch Tone Action and more." +#: js/piemenus.js:3413 +#: js/widgets/timbre.js:968 +#: planet/js/StringHelper.js:69 +msgid "Close" msgstr "" -#: js/turtledefs.js:614 -msgid "Click to show the palettes of blocks and drag blocks from the palettes onto the canvas to use them." -msgstr "Pịa egosi na palettes nke blocks na ikpuru blocks si palettes na na kwaaji na-eji ha." +#: js/piemenus.js:3419 +msgid "Save stack" +msgstr "ịzọpụta tojupụtara" -#: js/turtledefs.js:620 -msgid "Cartesian/Polar" +#: js/piemenus.js:3449 +msgid "In order to copy a sample, you must reload the widget, import the sample again, and export it." msgstr "" -#: js/turtledefs.js:621 -msgid "Show or hide a coordinate grid." +#: js/piemenus.js:3812 +msgid "You have chosen key " msgstr "" -#: js/turtledefs.js:627 -msgid "Clear the screen and return the mice to their initial positions." +#: js/piemenus.js:3816 +msgid " for your pitch preview." msgstr "" -#: js/turtledefs.js:633 -msgid "Collapse the graphics window." +#: js/turtle-singer.js:1363 +#.TRANS: partials are weighted components in a harmonic series +msgid "You must have at least one Partial block inside of a Weighted-partial block" msgstr "" -#: js/turtledefs.js:638 -#: js/activity.js:4256 -#: js/activity.js:4256 -msgid "Home" +#: js/turtle-singer.js:2077 +msgid "synth cannot play chords." msgstr "" -#: js/turtledefs.js:639 -msgid "Return all blocks to the center of the screen." +#: js/utils/musicutils.js:505 +#: js/utils/musicutils.js:645 +#: js/widgets/pitchdrummatrix.js:228 +#: js/widgets/musickeyboard.js:2885 +msgid "rest" msgstr "" -#: js/turtledefs.js:644 -msgid "Show/hide blocks" -msgstr "Gosi / hide blocks" - -#: js/turtledefs.js:645 -msgid "Hide or show the blocks and the palettes." -msgstr "Zoo ma ọ bụ na-egosi na blocks na palettes" - -#: js/turtledefs.js:650 -msgid "Expand/collapse collapsable blocks" +#: js/utils/musicutils.js:689 +msgid "Perfect unison" msgstr "" -#: js/turtledefs.js:651 -msgid "Expand or collapse start and action stacks." -msgstr "Ịmụbawanye ma ọ bụ daa stacks nke blocks, dịka, na-amalite na edinam stack" +#: js/utils/musicutils.js:689 +msgid "Diminished second" +msgstr "" -#: js/turtledefs.js:658 -#: js/activity.js:4265 -msgid "Decrease block size" -msgstr "Ibelata ngọngọ size" +#: js/utils/musicutils.js:690 +msgid "Minor second" +msgstr "" -#: js/turtledefs.js:659 -msgid "Decrease the size of the blocks." -msgstr "Ibelata size nke blocks." +#: js/utils/musicutils.js:690 +msgid "Augmented unison" +msgstr "" -#: js/turtledefs.js:664 -#: js/activity.js:4267 -msgid "Increase block size" -msgstr "Mmụba ngọngọ size" +#: js/utils/musicutils.js:691 +msgid "Major second" +msgstr "" -#: js/turtledefs.js:665 -msgid "Increase the size of the blocks." -msgstr "Dịkwuo size nke blocks." +#: js/utils/musicutils.js:691 +msgid "Diminished third" +msgstr "" -#: js/turtledefs.js:670 -msgid "Expand/collapse option toolbar" -msgstr "Ịmụbawanye / daa nhọrọ toolbar" +#: js/utils/musicutils.js:692 +msgid "Minor third" +msgstr "" -#: js/turtledefs.js:671 -msgid "Click this button to expand or collapse the auxillary toolbar." -msgstr "Pịa a button mụbaa ma ọ bụ daa na auxillary toolbar" +#: js/utils/musicutils.js:692 +msgid "Augmented second" +msgstr "" -#: js/turtledefs.js:676 -msgid "Run slow" -msgstr "Gbaa Obere Obere" +#: js/utils/musicutils.js:693 +msgid "Major third" +msgstr "" -#: js/turtledefs.js:677 -msgid "Click to run the project in slow mode." -msgstr "Pịa-agba ọsọ ahụ oru ngo na-adịghị ngwa mode" +#: js/utils/musicutils.js:693 +msgid "Diminished fourth" +msgstr "" -#: js/turtledefs.js:683 -msgid "Click to run the project step by step." -msgstr "Pịa na-agba ọsọ ngo nzọụkwụ site nzọụkwụ" +#: js/utils/musicutils.js:694 +msgid "Perfect fourth" +msgstr "" -#: js/turtledefs.js:690 -msgid "Display statistics about your Music project." -msgstr "Ngosipụta ọnụ ọgụgụ banyere gị mbe oru ngo." +#: js/utils/musicutils.js:694 +msgid "Augmented third" +msgstr "" -#: js/turtledefs.js:697 -msgid "Delete a selected plugin." +#: js/utils/musicutils.js:695 +msgid "Diminished fifth" msgstr "" -#: js/turtledefs.js:704 -msgid "Enable scrolling" -msgstr "Kwado pịgharịwa" +#: js/utils/musicutils.js:695 +msgid "Augmented fourth" +msgstr "" -#: js/turtledefs.js:705 -msgid "You can scroll the blocks on the canvas." -msgstr "Ị nwere ike pịgharịa na blocks na kwaaji." +#: js/utils/musicutils.js:696 +msgid "Perfect fifth" +msgstr "" -#: js/turtledefs.js:714 -msgid "Wrap Turtle" +#: js/utils/musicutils.js:696 +msgid "Diminished sixth" msgstr "" -#: js/turtledefs.js:715 -msgid "Turn Turtle wrapping On or Off." +#: js/utils/musicutils.js:697 +msgid "Minor sixth" msgstr "" -#: js/turtledefs.js:725 -msgid "Restore blocks from the trash." -msgstr "Weghachi blocks si ahịhịa" +#: js/utils/musicutils.js:697 +msgid "Augmented fifth" +msgstr "" -#: js/turtledefs.js:732 -msgid "Switch mode" +#: js/utils/musicutils.js:698 +msgid "Major sixth" msgstr "" -#: js/turtledefs.js:733 -msgid "Switch between beginner and advance modes." +#: js/utils/musicutils.js:698 +msgid "Diminished seventh" msgstr "" -#: js/turtledefs.js:739 -msgid "Select your language preference." +#: js/utils/musicutils.js:699 +msgid "Minor seventh" msgstr "" -#: js/turtledefs.js:745 -msgid "Keyboard shortcuts" +#: js/utils/musicutils.js:699 +msgid "Augmented sixth" msgstr "" -#: js/turtledefs.js:746 -msgid "You can type d to create a do block and r to create a re block etc." +#: js/utils/musicutils.js:700 +msgid "Major seventh" msgstr "" -#: js/turtledefs.js:753 -msgid "Show these messages." -msgstr "Gosi ndị a ozi" +#: js/utils/musicutils.js:700 +msgid "Diminished octave" +msgstr "" -#: js/turtledefs.js:759 -#: js/turtledefs.js:790 -#: js/help.js:335 -msgid "Guide" +#: js/utils/musicutils.js:701 +msgid "Perfect octave" msgstr "" -#: js/turtledefs.js:760 -msgid "A detailed guide to Turtle Blocks is available." +#: js/utils/musicutils.js:701 +msgid "Augmented seventh" msgstr "" -#: js/turtledefs.js:764 -msgid "Turtle Blocks Guide" +#: js/utils/musicutils.js:702 +msgid "Minor ninth" msgstr "" -#: js/turtledefs.js:767 -#: js/turtledefs.js:798 -#: js/help.js:336 -msgid "About" +#: js/utils/musicutils.js:702 +msgid "Augmented octave" msgstr "" -#: js/turtledefs.js:768 -msgid "Turtle Blocks is an open source collection of tools for exploring musical concepts." +#: js/utils/musicutils.js:703 +msgid "Major ninth" msgstr "" -#: js/turtledefs.js:770 -msgid "A full list of contributors can be found in the Turtle Blocks GitHub repository." +#: js/utils/musicutils.js:703 +msgid "Diminished tenth" msgstr "" -#: js/turtledefs.js:772 -msgid "Turtle Blocks is licensed under the AGPL." +#: js/utils/musicutils.js:704 +msgid "Minor tenth" msgstr "" -#: js/turtledefs.js:780 -msgid "Turtle Blocks GitHub repository" +#: js/utils/musicutils.js:704 +msgid "Augmented ninth" msgstr "" -#: js/turtledefs.js:783 -#: js/turtledefs.js:814 -#: js/help.js:337 -#: js/help.js:359 -msgid "Congratulations." -msgstr "ekele" +#: js/utils/musicutils.js:705 +msgid "Major tenth" +msgstr "" -#: js/turtledefs.js:784 -msgid "You have finished the tour. Please enjoy Turtle Blocks!" +#: js/utils/musicutils.js:705 +msgid "Diminished eleventh" msgstr "" -#: js/turtledefs.js:791 -msgid "A detailed guide to Music Blocks is available." +#: js/utils/musicutils.js:706 +msgid "Perfect eleventh" msgstr "" -#: js/turtledefs.js:795 -#: js/SaveInterface.js:76 -msgid "Music Blocks Guide" +#: js/utils/musicutils.js:706 +msgid "Augmented tenth" msgstr "" -#: js/turtledefs.js:799 -msgid "Music Blocks is an open source collection of tools for exploring musical concepts." +#: js/utils/musicutils.js:707 +msgid "Diminished twelfth" msgstr "" -#: js/turtledefs.js:801 -msgid "A full list of contributors can be found in the Music Blocks GitHub repository." +#: js/utils/musicutils.js:707 +msgid "Augmented eleventh" msgstr "" -#: js/turtledefs.js:803 -msgid "Music Blocks is licensed under the AGPL." +#: js/utils/musicutils.js:708 +msgid "Perfect twelfth" msgstr "" -#: js/turtledefs.js:811 -msgid "Music Blocks GitHub repository" +#: js/utils/musicutils.js:708 +msgid "Diminished thirteenth" msgstr "" -#: js/turtledefs.js:815 -msgid "You have finished the tour. Please enjoy Music Blocks!" -msgstr "Ị na-okokụre na njegharị. Biko enwe egwu nkwa ngọngọ!" +#: js/utils/musicutils.js:709 +msgid "Minor thirteenth" +msgstr "" -#: js/activity.js:369 -msgid "Search for blocks" +#: js/utils/musicutils.js:709 +msgid "Augmented fifth, plus an octave" msgstr "" -#: js/activity.js:1145 -msgid "Refresh your browser to change to advanced mode." +#: js/utils/musicutils.js:710 +msgid "Major thirteenth" msgstr "" -#: js/activity.js:1150 -msgid "Refresh your browser to change to beginner mode." +#: js/utils/musicutils.js:710 +msgid "Diminished seventh, plus an octave" msgstr "" -#: js/activity.js:1184 -msgid "Catching mice" +#: js/utils/musicutils.js:838 +#.TRANS: ordinal number. Please keep exactly one space between each number. +msgid "1st 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th" msgstr "" -#: js/activity.js:1185 -msgid "Cleaning the instruments" +#: js/utils/musicutils.js:1008 +#: js/utils/musicutils.js:1191 +#: js/utils/musicutils.js:1325 +#.TRANS: augmented is a music term related to intervals +msgid "augmented" msgstr "" -#: js/activity.js:1186 -msgid "Testing key pieces" +#: js/utils/musicutils.js:1010 +#: js/utils/musicutils.js:1192 +#: js/utils/musicutils.js:1324 +#.TRANS: diminished is a music term related to intervals and mode +msgid "diminished" msgstr "" -#: js/activity.js:1187 -msgid "Sight-reading" +#: js/utils/musicutils.js:1016 +#: js/utils/musicutils.js:1322 +#: js/blocks/IntervalsBlocks.js:649 +#: js/turtleactions/IntervalsActions.js:120 +#: js/turtleactions/IntervalsActions.js:124 +#.TRANS: perfect is a music term related to intervals +msgid "perfect" msgstr "" -#: js/activity.js:1188 -msgid "Combining math and music" +#: js/utils/musicutils.js:1018 +#.TRANS: twelve semi-tone scale for music +msgid "chromatic" msgstr "" -#: js/activity.js:1189 -msgid "Generating more blocks" +#: js/utils/musicutils.js:1019 +msgid "algerian" msgstr "" -#: js/activity.js:1190 -msgid "Do Re Mi Fa Sol La Ti Do" +#: js/utils/musicutils.js:1020 +msgid "spanish" msgstr "" -#: js/activity.js:1191 -msgid "Tuning string instruments" +#: js/utils/musicutils.js:1022 +#.TRANS: modal scale in music +msgid "octatonic" msgstr "" -#: js/activity.js:1192 -msgid "Pressing random keys" +#: js/utils/musicutils.js:1024 +#.TRANS: harmonic major scale in music +msgid "harmonic major" msgstr "" -#: js/activity.js:1351 -msgid "plugins will be removed upon restart." +#: js/utils/musicutils.js:1026 +#.TRANS: natural minor scales in music +msgid "natural minor" msgstr "" -#: js/activity.js:1360 -msgid "show Cartesian" +#: js/utils/musicutils.js:1028 +#.TRANS: harmonic minor scale in music +msgid "harmonic minor" msgstr "" -#: js/activity.js:1842 -msgid "output tools" +#: js/utils/musicutils.js:1030 +#.TRANS: melodic minor scale in music +msgid "melodic minor" msgstr "" -#: js/activity.js:1845 -msgid "custom note" +#: js/utils/musicutils.js:1034 +#.TRANS: modal scale for music +msgid "dorian" msgstr "" -#: js/activity.js:1848 -msgid "accidental name" +#: js/utils/musicutils.js:1036 +#.TRANS: modal scale for music +msgid "phrygian" msgstr "" -#: js/activity.js:1851 -#: js/PitchBlocks.js:855 -msgid "east indian solfege" +#: js/utils/musicutils.js:1038 +#.TRANS: modal scale for music +msgid "lydian" msgstr "" -#: js/activity.js:1854 -#: js/PitchBlocks.js:869 -msgid "note name" +#: js/utils/musicutils.js:1040 +#.TRANS: modal scale for music +msgid "mixolydian" msgstr "" -#: js/activity.js:1857 -#: js/IntervalsBlocks.js:94 -msgid "temperament name" +#: js/utils/musicutils.js:1044 +#.TRANS: modal scale for music +msgid "locrian" msgstr "" -#: js/activity.js:1863 -msgid "chord name" +#: js/utils/musicutils.js:1046 +#.TRANS: minor jazz scale for music +msgid "jazz minor" msgstr "" -#: js/activity.js:1869 -msgid "filter type" +#: js/utils/musicutils.js:1048 +#.TRANS: bebop scale for music +msgid "bebop" msgstr "" -#: js/activity.js:1872 -msgid "oscillator type" +#: js/utils/musicutils.js:1049 +msgid "arabic" msgstr "" -#: js/activity.js:1878 -#: js/DrumBlocks.js:32 -msgid "noise name" +#: js/utils/musicutils.js:1050 +msgid "byzantine" msgstr "" -#: js/activity.js:1881 -#: js/DrumBlocks.js:75 -msgid "drum name" +#: js/utils/musicutils.js:1052 +#.TRANS: musical scale for music by Verdi +msgid "enigmatic" msgstr "" -#: js/activity.js:1884 -#: js/DrumBlocks.js:119 -msgid "effects name" +#: js/utils/musicutils.js:1053 +msgid "ethiopian" msgstr "" -#: js/activity.js:1887 -msgid "wrap mode" +#: js/utils/musicutils.js:1055 +#.TRANS: Ethiopic scale for music +msgid "geez" msgstr "" -#: js/activity.js:1890 -msgid "load file" +#: js/utils/musicutils.js:1056 +msgid "hindu" msgstr "" -#: js/activity.js:2056 -msgid "This block is deprecated." +#: js/utils/musicutils.js:1057 +msgid "hungarian" msgstr "" -#: js/activity.js:2058 -msgid "Block cannot be found." +#: js/utils/musicutils.js:1059 +#.TRANS: minor Romanian scale for music +msgid "romanian minor" msgstr "" -#: js/activity.js:2266 -msgid "Saving block artwork" +#: js/utils/musicutils.js:1060 +msgid "spanish gypsy" msgstr "" -#: js/activity.js:2277 -msgid "Erase" +#: js/utils/musicutils.js:1062 +#.TRANS: musical scale for Mid-Eastern music +msgid "maqam" msgstr "" -#: js/activity.js:2301 -#: js/activity.js:2323 -msgid "Paste" -msgstr "tapawa" - -#: js/activity.js:2305 -msgid "Save block help" +#: js/utils/musicutils.js:1064 +#.TRANS: minor blues scale for music +msgid "minor blues" msgstr "" -#: js/activity.js:2390 -msgid "Jumping to the bottom of the page." +#: js/utils/musicutils.js:1066 +#.TRANS: major blues scale for music +msgid "major blues" msgstr "" -#: js/activity.js:2396 -msgid "Scrolling up." +#: js/utils/musicutils.js:1067 +msgid "whole tone" msgstr "" -#: js/activity.js:2401 -msgid "Scrolling down." +#: js/utils/musicutils.js:1069 +#.TRANS: pentatonic is a general term that means "five note scale". This scale is typically known as "minor pentatonic" +msgid "minor pentatonic" msgstr "" -#: js/activity.js:2406 -msgid "Extracting block" +#: js/utils/musicutils.js:1071 +#.TRANS: pentatonic is a general term that means "five note scale". This scale is typically known as "major pentatonic" +msgid "major pentatonic" msgstr "" -#: js/activity.js:2414 -msgid "Moving block up." +#: js/utils/musicutils.js:1072 +msgid "chinese" msgstr "" -#: js/activity.js:2435 -msgid "Moving block down." +#: js/utils/musicutils.js:1073 +msgid "egyptian" msgstr "" -#: js/activity.js:2456 -msgid "Moving block left." +#: js/utils/musicutils.js:1075 +#.TRANS: https://en.wikipedia.org/wiki/Hirajoshi_scale NOTE: There are three different versions of this scale +msgid "hirajoshi" msgstr "" -#: js/activity.js:2473 -msgid "Moving block right." +#: js/utils/musicutils.js:1076 +msgid "Japan" msgstr "" -#: js/activity.js:2488 -msgid "Jump to home position." +#: js/utils/musicutils.js:1078 +#.TRANS: https://en.wikipedia.org/wiki/In_scale and https://en.wikipedia.org/wiki/Sakura_Sakura +msgid "in" msgstr "" -#: js/activity.js:2515 -msgid "Hide blocks" +#: js/utils/musicutils.js:1080 +#.TRANS: https://en.wikipedia.org/wiki/Miny%C5%8D_scale +msgid "minyo" msgstr "" -#: js/activity.js:3389 -msgid "Click the run button to run the project." +#: js/utils/musicutils.js:1082 +#.TRANS: Italian mathematician +msgid "fibonacci" msgstr "" -#: js/activity.js:3456 -#: js/SaveInterface.js:131 -#: js/SaveInterface.js:204 -#: js/SaveInterface.js:262 -#: js/SaveInterface.js:389 -#: js/SaveInterface.js:417 -#: js/ProjectStorage.js:27 -#: js/GlobalPlanet.js:467 -#: js/GlobalPlanet.js:469 -#: js/GlobalPlanet.js:495 -#.TRANS: default project title when saving as Lilypond -msgid "My Project" +#: js/utils/musicutils.js:1083 +#: js/utils/musicutils.js:1134 +#: js/utils/musicutils.js:1177 +#: js/utils/musicutils.js:1199 +#: js/utils/synthutils.js:134 +#: js/blocks/IntervalsBlocks.js:1124 +#: js/blocks/ToneBlocks.js:946 +#: js/blocks/VolumeBlocks.js:411 +#: js/blocks/WidgetBlocks.js:399 +#: js/blocks/WidgetBlocks.js:404 +#: js/turtleactions/VolumeActions.js:218 +#: js/widgets/modewidget.js:919 +#.TRANS: customize voice +msgid "custom" msgstr "" -#: js/activity.js:4261 -msgid "Show/hide block" +#: js/utils/musicutils.js:1085 +#: js/utils/musicutils.js:1531 +#: js/blocks/WidgetBlocks.js:176 +#.TRANS: highpass filter +msgid "highpass" msgstr "" -#: js/activity.js:4263 -msgid "Expand/collapse blocks" +#: js/utils/musicutils.js:1087 +#: js/utils/musicutils.js:1532 +#.TRANS: lowpass filter +msgid "lowpass" msgstr "" -#: js/activity.js:4381 -msgid "Could not parse JSON input." +#: js/utils/musicutils.js:1089 +#: js/utils/musicutils.js:1533 +#.TRANS: bandpass filter +msgid "bandpass" msgstr "" -#: js/activity.js:4684 -#: js/activity.js:4771 -#: js/activity.js:4821 -msgid "Cannot load project from the file. Please check the file type." +#: js/utils/musicutils.js:1091 +#: js/utils/musicutils.js:1534 +#.TRANS: high-shelf filter +msgid "highshelf" msgstr "" -#: js/activity.js:5051 -msgid "Invalid parameters" +#: js/utils/musicutils.js:1093 +#: js/utils/musicutils.js:1535 +#.TRANS: low-shelf filter +msgid "lowshelf" msgstr "" -#: js/turtle-singer.js:1334 -#.TRANS: partials are weighted components in a harmonic series -msgid "You must have at least one Partial block inside of a Weighted-partial block" +#: js/utils/musicutils.js:1095 +#: js/utils/musicutils.js:1536 +#.TRANS: notch-shelf filter +msgid "notch" msgstr "" -#: js/turtle-singer.js:2048 -msgid "synth cannot play chords." +#: js/utils/musicutils.js:1097 +#: js/utils/musicutils.js:1537 +#.TRANS: all-pass filter +msgid "allpass" msgstr "" -#: js/lilypond.js:614 -msgid "brown rat" +#: js/utils/musicutils.js:1099 +#: js/utils/musicutils.js:1538 +#.TRANS: peaking filter +msgid "peaking" msgstr "" -#: js/lilypond.js:615 -msgid "mole" -msgstr "" +#: js/utils/musicutils.js:1100 +#: js/utils/musicutils.js:1546 +#: js/utils/synthutils.js:126 +#: js/blocks/PitchBlocks.js:85 +#.TRANS: sine wave +msgid "sine" +msgstr "sine" -#: js/lilypond.js:616 -msgid "chipmunk" -msgstr "" +#: js/utils/musicutils.js:1101 +#: js/utils/musicutils.js:1547 +#: js/utils/synthutils.js:128 +#: js/blocks/PitchBlocks.js:39 +#.TRANS: square wave +msgid "square" +msgstr "square" -#: js/lilypond.js:617 -msgid "red squirrel" -msgstr "" +#: js/utils/musicutils.js:1102 +#: js/utils/musicutils.js:1548 +#: js/utils/synthutils.js:132 +#: js/blocks/PitchBlocks.js:62 +#: js/blocks/ToneBlocks.js:39 +#.TRANS: triangle wave +msgid "triangle" +msgstr "triangul" -#: js/lilypond.js:618 -msgid "guinea pig" -msgstr "" +#: js/utils/musicutils.js:1103 +#: js/utils/musicutils.js:1549 +#: js/utils/synthutils.js:130 +#: js/blocks/PitchBlocks.js:108 +#.TRANS: sawtooth wave +msgid "sawtooth" +msgstr "sawtooth" -#: js/lilypond.js:619 -msgid "capybara" +#: js/utils/musicutils.js:1105 +#: js/utils/musicutils.js:1312 +#: js/blocks/PitchBlocks.js:931 +#: js/blocks/PitchBlocks.js:937 +#: js/turtleactions/PitchActions.js:469 +#.TRANS: even numbers +#.TRANS: invert based on even or odd number or musical scale +msgid "even" msgstr "" -#: js/lilypond.js:620 -msgid "coypu" +#: js/utils/musicutils.js:1107 +#: js/utils/musicutils.js:1313 +#: js/blocks/PitchBlocks.js:937 +#: js/turtleactions/PitchActions.js:471 +#.TRANS: odd numbers +msgid "odd" msgstr "" -#: js/lilypond.js:621 -msgid "black rat" +#: js/utils/musicutils.js:1108 +#: js/utils/musicutils.js:1314 +#: js/blocks/PitchBlocks.js:937 +#: js/turtleactions/PitchActions.js:473 +msgid "scalar" msgstr "" -#: js/lilypond.js:622 -msgid "grey squirrel" +#: js/utils/musicutils.js:1109 +#: js/utils/synthutils.js:72 +#: js/blocks/VolumeBlocks.js:47 +#.TRANS: musical instrument +msgid "piano" msgstr "" -#: js/lilypond.js:623 -msgid "flying squirrel" +#: js/utils/musicutils.js:1110 +#: js/utils/synthutils.js:74 +#.TRANS: musical instrument +msgid "violin" msgstr "" -#: js/lilypond.js:624 -msgid "bat" +#: js/utils/musicutils.js:1111 +#: js/utils/synthutils.js:76 +#.TRANS: viola musical instrument +msgid "viola" msgstr "" -#: js/lilypond.js:757 -#: js/lilypond.js:921 -#: js/lilypond.js:959 -#: js/ActionBlocks.js:1256 -#: js/ExtrasBlocks.js:553 -msgid "start drum" +#: js/utils/musicutils.js:1112 +#: js/utils/synthutils.js:114 +#.TRANS: xylophone musical instrument +msgid "xylophone" msgstr "" -#: js/SaveInterface.js:59 -#: js/SaveInterface.js:61 -#: js/SaveInterface.js:93 -msgid "Music Blocks Project" +#: js/utils/musicutils.js:1113 +#: js/utils/synthutils.js:136 +#.TRANS: vibraphone musical instrument +msgid "vibraphone" msgstr "" -#: js/SaveInterface.js:63 -msgid "This project was created in Music Blocks" +#: js/utils/musicutils.js:1114 +#: js/utils/synthutils.js:78 +#.TRANS: musical instrument +msgid "cello" msgstr "" -#: js/SaveInterface.js:67 -msgid "Music Blocks is a Free/Libre Software application." +#: js/utils/musicutils.js:1116 +#: js/utils/synthutils.js:82 +#.TRANS: viola musical instrument +msgid "double bass" msgstr "" -#: js/SaveInterface.js:69 -msgid "The source code can be accessed at" +#: js/utils/musicutils.js:1117 +#: js/utils/synthutils.js:84 +#: js/widgets/rhythmruler.js:2511 +#.TRANS: musical instrument +msgid "guitar" msgstr "" -#: js/SaveInterface.js:72 -msgid "For more information, please consult the" +#: js/utils/musicutils.js:1118 +#: js/utils/synthutils.js:86 +#.TRANS: musical instrument +msgid "acoustic guitar" msgstr "" -#: js/SaveInterface.js:83 -msgid "Alternatively, open the file in Music Blocks using the Load project button." +#: js/utils/musicutils.js:1119 +#: js/utils/synthutils.js:88 +#.TRANS: musical instrument +msgid "flute" msgstr "" -#: js/SaveInterface.js:85 -msgid "Project Code" +#: js/utils/musicutils.js:1120 +#: js/utils/synthutils.js:90 +#.TRANS: musical instrument +msgid "clarinet" msgstr "" -#: js/SaveInterface.js:87 -msgid "This code stores data about the blocks in a project." +#: js/utils/musicutils.js:1121 +#: js/utils/synthutils.js:92 +#.TRANS: musical instrument +msgid "saxophone" msgstr "" -#: js/SaveInterface.js:89 -msgid "Show" +#: js/utils/musicutils.js:1122 +#: js/utils/synthutils.js:94 +#.TRANS: musical instrument +msgid "tuba" msgstr "" -#: js/SaveInterface.js:91 -msgid "Hide" +#: js/utils/musicutils.js:1123 +#: js/utils/synthutils.js:96 +#.TRANS: musical instrument +msgid "trumpet" msgstr "" -#: js/SaveInterface.js:197 -#: js/SaveInterface.js:58 -msgid "No description provided" +#: js/utils/musicutils.js:1124 +#: js/utils/synthutils.js:98 +#.TRANS: musical instrument +msgid "oboe" msgstr "" -#: js/SaveInterface.js:332 -msgid "Your recording is in progress." +#: js/utils/musicutils.js:1125 +#: js/utils/synthutils.js:100 +#.TRANS: musical instrument +msgid "trombone" msgstr "" -#: js/SaveInterface.js:401 -#.TRANS: File name prompt for save as Lilypond -msgid "File name" +#: js/utils/musicutils.js:1126 +#: js/utils/synthutils.js:116 +#.TRANS: polytone synthesizer +msgid "electronic synth" msgstr "" -#: js/SaveInterface.js:403 -#: js/StringHelper.js:39 -#.TRANS: Project title prompt for save as Lilypond -msgid "Project title" +#: js/utils/musicutils.js:1127 +#: js/utils/synthutils.js:118 +#.TRANS: simple monotone synthesizer +msgid "simple 1" msgstr "" -#: js/SaveInterface.js:405 -#.TRANS: Project title prompt for save as Lilypond -msgid "Project author" +#: js/utils/musicutils.js:1128 +msgid "simple 2" msgstr "" -#: js/SaveInterface.js:407 -#.TRANS: MIDI prompt for save as Lilypond -msgid "Include MIDI output?" +#: js/utils/musicutils.js:1129 +msgid "simple 3" msgstr "" -#: js/SaveInterface.js:409 -#.TRANS: Guitar prompt for save as Lilypond -msgid "Include guitar tablature output?" +#: js/utils/musicutils.js:1130 +msgid "simple 4" msgstr "" -#: js/SaveInterface.js:411 -#.TRANS: Lilypond is a scripting language for generating sheet music -msgid "Save as Lilypond" +#: js/utils/musicutils.js:1131 +#: js/utils/synthutils.js:58 +#: js/blocks/DrumBlocks.js:191 +#.TRANS: white noise synthesizer +msgid "white noise" msgstr "" -#: js/SaveInterface.js:426 -#: js/EnsembleBlocks.js:75 -#: js/EnsembleBlocks.js:154 -#: js/EnsembleBlocks.js:216 -#: js/EnsembleBlocks.js:302 -#: js/EnsembleBlocks.js:348 -#: js/EnsembleBlocks.js:389 -#: js/EnsembleBlocks.js:441 -#: js/EnsembleBlocks.js:490 -#: js/EnsembleBlocks.js:536 -#: js/EnsembleBlocks.js:583 -#: js/EnsembleBlocks.js:637 -#: js/EnsembleBlocks.js:753 -#: js/EnsembleBlocks.js:840 -#: js/EnsembleBlocks.js:899 -#: js/EnsembleBlocks.js:942 -#: js/EnsembleBlocks.js:1212 -#: js/EnsembleBlocks.js:1280 -#.TRANS: default project author when saving as Lilypond -msgid "Mr. Mouse" +#: js/utils/musicutils.js:1132 +#: js/utils/synthutils.js:60 +#.TRANS: brown noise synthesizer +msgid "brown noise" msgstr "" -#: js/SaveInterface.js:573 -msgid "The Lilypond code is copied to clipboard. You can paste it here: " +#: js/utils/musicutils.js:1133 +#: js/utils/synthutils.js:62 +#.TRANS: pink noise synthesizer +msgid "pink noise" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:50 -#: js/RhythmBlockPaletteBlocks.js:232 -#.TRANS: rhythm block -#.TRANS: translate "rhythm1" as rhythm -msgid "rhythm1" +#: js/utils/musicutils.js:1135 +#: js/utils/synthutils.js:148 +#: js/widgets/rhythmruler.js:2057 +#: js/widgets/rhythmruler.js:2319 +#.TRANS: musical instrument +msgid "snare drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:70 -#: js/RhythmBlockPaletteBlocks.js:251 -#: js/RhythmBlockPaletteBlocks.js:484 -#: js/RhythmBlockPaletteBlocks.js:553 -#: js/RhythmBlockPaletteBlocks.js:874 -msgid "number of notes" -msgstr "ọnụ ọgụgụ nke ndetu" +#: js/utils/musicutils.js:1136 +#: js/utils/synthutils.js:150 +#.TRANS: musical instrument +msgid "kick drum" +msgstr "" -#: js/RhythmBlockPaletteBlocks.js:126 -msgid "polyphonic rhythm" +#: js/utils/musicutils.js:1137 +#: js/utils/synthutils.js:152 +#.TRANS: musical instrument +msgid "tom tom" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:218 -msgid "The Rhythm block is used to generate rhythm patterns." +#: js/utils/musicutils.js:1138 +#: js/utils/synthutils.js:154 +#.TRANS: musical instrument +msgid "floor tom" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:279 -msgid "1/64 note" +#: js/utils/musicutils.js:1139 +#: js/utils/synthutils.js:156 +#.TRANS: musical instrument +msgid "bass drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:303 -msgid "1/32 note" +#: js/utils/musicutils.js:1140 +#: js/utils/synthutils.js:158 +#.TRANS: a drum made from an inverted cup +msgid "cup drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:331 -msgid "1/16 note" +#: js/utils/musicutils.js:1141 +#: js/utils/synthutils.js:160 +#.TRANS: musical instrument +msgid "darbuka drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:359 -msgid "eighth note" +#: js/utils/musicutils.js:1142 +#: js/utils/synthutils.js:164 +#.TRANS: musical instrument +msgid "hi hat" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:387 -msgid "quarter note" +#: js/utils/musicutils.js:1143 +#: js/utils/synthutils.js:166 +#.TRANS: a small metal bell +msgid "ride bell" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:415 -msgid "half note" -msgstr "ọkara dee 𝅗𝅥" +#: js/utils/musicutils.js:1144 +#: js/utils/synthutils.js:168 +#.TRANS: musical instrument +msgid "cow bell" +msgstr "" -#: js/RhythmBlockPaletteBlocks.js:443 -msgid "whole note" +#: js/utils/musicutils.js:1145 +msgid "japanese drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:481 -#: js/RhythmBlockPaletteBlocks.js:550 -#: js/RhythmBlockPaletteBlocks.js:601 -#.TRANS: A tuplet is a note value divided into irregular time values. -msgid "tuplet" -msgstr "tuplet" +#: js/utils/musicutils.js:1146 +#: js/utils/synthutils.js:174 +#.TRANS: musical instrument +msgid "japanese bell" +msgstr "" -#: js/RhythmBlockPaletteBlocks.js:767 -msgid "septuplet" +#: js/utils/musicutils.js:1147 +#: js/utils/synthutils.js:170 +#.TRANS: musical instrument +msgid "triangle bell" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:795 -msgid "quintuplet" +#: js/utils/musicutils.js:1148 +#: js/utils/synthutils.js:172 +#.TRANS: musical instrument +msgid "finger cymbals" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:823 -msgid "triplet" +#: js/utils/musicutils.js:1149 +#: js/utils/synthutils.js:176 +#.TRANS: a musically tuned set of bells +msgid "chime" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:850 -msgid "simple tuplet" +#: js/utils/musicutils.js:1150 +#: js/utils/synthutils.js:178 +#.TRANS: a musical instrument +msgid "gong" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:860 -msgid "Tuplets are a collection of notes that get scaled to a specific duration." +#: js/utils/musicutils.js:1151 +#: js/utils/synthutils.js:180 +#.TRANS: sound effect +msgid "clang" msgstr "" -#: js/WidgetBlocks.js:71 -#.TRANS: sound envelope (ADSR) -msgid "envelope" +#: js/utils/musicutils.js:1152 +#: js/utils/synthutils.js:182 +#.TRANS: sound effect +msgid "crash" msgstr "" -#: js/WidgetBlocks.js:79 -#.TRANS: Attack time is the time taken for initial run-up of level from nil to peak, beginning when the key is first pressed. -msgid "attack" +#: js/utils/musicutils.js:1153 +#: js/utils/synthutils.js:184 +#.TRANS: sound effect +msgid "bottle" msgstr "" -#: js/WidgetBlocks.js:81 -#.TRANS: Decay time is the time taken for the subsequent run down from the attack level to the designated sustain level. -msgid "decay" +#: js/utils/musicutils.js:1154 +#: js/utils/synthutils.js:186 +#.TRANS: sound effect +msgid "clap" msgstr "" -#: js/WidgetBlocks.js:83 -#.TRANS: Sustain level is the level during the main sequence of the sound's duration, until the key is released. -msgid "sustain" +#: js/utils/musicutils.js:1155 +#: js/utils/synthutils.js:188 +#.TRANS: sound effect +msgid "slap" msgstr "" -#: js/WidgetBlocks.js:85 -#.TRANS: Release time is the time taken for the level to decay from the sustain level to zero after the key is released. -msgid "release" +#: js/utils/musicutils.js:1156 +#: js/utils/synthutils.js:190 +#.TRANS: sound effect +msgid "splash" msgstr "" -#: js/WidgetBlocks.js:96 -msgid "Attack value should be from 0 to 100." +#: js/utils/musicutils.js:1157 +#: js/utils/synthutils.js:192 +#.TRANS: sound effect +msgid "bubbles" msgstr "" -#: js/WidgetBlocks.js:99 -msgid "Decay value should be from 0 to 100." +#: js/utils/musicutils.js:1158 +#: js/utils/synthutils.js:194 +#.TRANS: sound effect +msgid "raindrop" msgstr "" -#: js/WidgetBlocks.js:102 -msgid "Sustain value should be from 0 to 100." +#: js/utils/musicutils.js:1159 +#: js/utils/synthutils.js:196 +#.TRANS: animal sound effect +msgid "cat" msgstr "" -#: js/WidgetBlocks.js:105 -msgid "Release value should be from 0-100." +#: js/utils/musicutils.js:1160 +#: js/utils/synthutils.js:198 +#.TRANS: animal sound effect +msgid "cricket" msgstr "" -#: js/WidgetBlocks.js:121 -msgid "You are adding multiple envelope blocks." +#: js/utils/musicutils.js:1161 +#: js/utils/synthutils.js:200 +#.TRANS: animal sound effect +msgid "dog" msgstr "" -#: js/WidgetBlocks.js:144 -#.TRANS: a filter removes some unwanted components from a signal -msgid "filter" +#: js/utils/musicutils.js:1163 +#: js/utils/synthutils.js:102 +#.TRANS: musical instrument +msgid "banjo" msgstr "" -#: js/WidgetBlocks.js:149 -#: js/musicutils.js:706 -#: js/musicutils.js:1105 -#.TRANS: highpass filter -msgid "highpass" +#: js/utils/musicutils.js:1164 +#: js/utils/synthutils.js:104 +#.TRANS: musical instrument +msgid "koto" msgstr "" -#: js/WidgetBlocks.js:152 -#: js/ToneBlocks.js:42 -#: js/timbre.js:1558 -#: js/timbre.js:1808 -#.TRANS: type of filter, e.g., lowpass, highpass, etc. -#.TRANS: there are different types (sine, triangle, square...) of oscillators. -msgid "type" +#: js/utils/musicutils.js:1165 +#: js/utils/synthutils.js:106 +#.TRANS: musical instrument +msgid "dulcimer" msgstr "" -#: js/WidgetBlocks.js:154 -#: js/timbre.js:1818 -#.TRANS: rolloff is the steepness of a change in frequency. -msgid "rolloff" +#: js/utils/musicutils.js:1166 +#: js/utils/synthutils.js:108 +#.TRANS: musical instrument +msgid "electric guitar" msgstr "" -#: js/WidgetBlocks.js:155 -#: js/MediaBlocks.js:692 -#: js/temperament.js:382 -#: js/temperament.js:417 -#: js/temperament.js:477 -#: js/temperament.js:485 -#: js/temperament.js:1348 -#: js/timbre.js:1842 -msgid "frequency" -msgstr "ugboro ole" +#: js/utils/musicutils.js:1167 +#: js/utils/synthutils.js:110 +#.TRANS: musical instrument +msgid "bassoon" +msgstr "" -#: js/WidgetBlocks.js:179 -#.TRANS: rolloff is the steepness of a change in frequency. -msgid "Rolloff value should be either -12, -24, -48, or -96 decibels/octave." +#: js/utils/musicutils.js:1168 +#: js/utils/synthutils.js:112 +#.TRANS: musical instrument +msgid "celeste" msgstr "" -#: js/WidgetBlocks.js:211 -msgid "The Temperament tool is used to define custom tuning." +#: js/utils/musicutils.js:1170 +#: js/widgets/temperament.js:787 +#.TRANS: musical temperament +msgid "equal" msgstr "" -#: js/WidgetBlocks.js:277 -#: js/sampler.js:329 -msgid "Upload a sample and adjust its pitch center." +#: js/utils/musicutils.js:1172 +#.TRANS: musical temperament +msgid "Pythagorean" msgstr "" -#: js/WidgetBlocks.js:284 -#.TRANS: the speed at music is should be played. -msgid "sampler" +#: js/utils/musicutils.js:1174 +#.TRANS: musical temperament +msgid "just intonation" msgstr "" -#: js/WidgetBlocks.js:329 -#: js/WidgetBlocks.js:334 -#: js/IntervalsBlocks.js:928 -#: js/VolumeBlocks.js:411 -#: js/ToneBlocks.js:946 -#: js/VolumeActions.js:218 -#: js/musicutils.js:704 -#: js/musicutils.js:755 -#: js/musicutils.js:798 -#: js/musicutils.js:820 -#: js/musicutils.js:1136 -#: js/synthutils.js:118 -#: js/modewidget.js:919 -#.TRANS: customize voice -msgid "custom" +#: js/utils/musicutils.js:1176 +#.TRANS: musical temperament +msgid "meantone" msgstr "" -#: js/WidgetBlocks.js:432 -msgid "The Meter block opens a tool to select strong beats for the meter." +#: js/utils/musicutils.js:1193 +msgid "major 7th" msgstr "" -#: js/WidgetBlocks.js:473 -msgid "The oscilloscope block opens a tool to visualize waveforms." +#: js/utils/musicutils.js:1194 +msgid "minor 7th" msgstr "" -#: js/WidgetBlocks.js:478 -msgid "oscilloscope" +#: js/utils/musicutils.js:1195 +msgid "dominant 7th" msgstr "" -#: js/WidgetBlocks.js:530 -msgid "The Custom mode block opens a tool to explore musical mode (the spacing of the notes in a scale)." +#: js/utils/musicutils.js:1196 +msgid "minor-major 7th" msgstr "" -#: js/WidgetBlocks.js:536 -#.TRANS: musical mode is the pattern of half-steps in an octave, e.g., Major or Minor modes -msgid "custom mode" +#: js/utils/musicutils.js:1197 +msgid "fully-diminished 7th" msgstr "" -#: js/WidgetBlocks.js:570 -msgid "The Tempo block opens a metronome to visualize the beat." +#: js/utils/musicutils.js:1198 +msgid "half-diminished 7th" msgstr "" -#: js/WidgetBlocks.js:617 -msgid "The Arpeggio Widget is used to compose chord sequences." +#: js/utils/musicutils.js:1557 +#: js/utils/musicutils.js:1569 +msgid "Equal (12EDO)" msgstr "" -#: js/WidgetBlocks.js:623 -#: js/IntervalsBlocks.js:683 -msgid "arpeggio" +#: js/utils/musicutils.js:1558 +#: js/utils/musicutils.js:1570 +msgid "5-limit Just Intonation" msgstr "" -#: js/WidgetBlocks.js:677 -msgid "The Pitch drum matrix is used to map pitches to drum sounds." +#: js/utils/musicutils.js:1559 +#: js/utils/musicutils.js:1571 +msgid "Pythagorean (3-limit JI)" msgstr "" -#: js/WidgetBlocks.js:682 -#.TRANS: makes a mapping between pitches and drum sounds -msgid "pitch-drum mapper" +#: js/utils/musicutils.js:1560 +#: js/utils/musicutils.js:1561 +#: js/utils/musicutils.js:1572 +#: js/utils/musicutils.js:1573 +msgid "Meantone" msgstr "" -#: js/WidgetBlocks.js:724 -msgid "You must have at least one pitch block and one drum block in the matrix." +#: js/utils/musicutils.js:1574 +msgid "Custom" msgstr "" -#: js/WidgetBlocks.js:746 -msgid "The Pitch slider tool to is used to generate pitches at selected frequencies." +#: js/utils/musicutils.js:5387 +#: js/utils/musicutils.js:5430 +msgid "current" msgstr "" -#: js/WidgetBlocks.js:751 -#.TRANS: widget to generate pitches using a slider -msgid "pitch slider" +#: js/utils/musicutils.js:5390 +#: js/utils/musicutils.js:5421 +msgid "next" msgstr "" -#: js/WidgetBlocks.js:788 -msgid "chromatic keyboard" +#: js/utils/musicutils.js:5393 +#: js/utils/musicutils.js:5426 +msgid "previous" msgstr "" -#: js/WidgetBlocks.js:815 -#: js/WidgetBlocks.js:874 -#.TRANS: widget to generate pitches using a slider -msgid "music keyboard" +#: js/utils/synthutils.js:120 +#.TRANS: simple monotone synthesizer +msgid "simple-2" msgstr "" -#: js/WidgetBlocks.js:859 -#: js/WidgetBlocks.js:866 -msgid "The Music keyboard block opens a piano keyboard that can be used to create notes." +#: js/utils/synthutils.js:122 +#.TRANS: simple monotone synthesizer +msgid "simple-3" msgstr "" -#: js/WidgetBlocks.js:910 -msgid "The Pitch staircase tool to is used to generate pitches from a given ratio." +#: js/utils/synthutils.js:124 +#.TRANS: simple monotone synthesizer +msgid "simple-4" msgstr "" -#: js/WidgetBlocks.js:917 -#.TRANS: generate a progressive sequence of pitches -msgid "pitch staircase" +#: js/utils/synthutils.js:162 +#.TRANS: musical instrument +msgid "taiko" msgstr "" -#: js/WidgetBlocks.js:982 -msgid "The Rhythm Maker block opens a tool to create drum machines." +#: js/blocks/ActionBlocks.js:58 +msgid "The Return block will return a value from an action." msgstr "" -#: js/WidgetBlocks.js:1036 -msgid "G major scale" +#: js/blocks/ActionBlocks.js:75 +msgid "return" msgstr "" -#: js/WidgetBlocks.js:1064 -msgid "C major scale" +#: js/blocks/ActionBlocks.js:128 +msgid "The Return to URL block will return a value to a webpage." msgstr "" -#: js/WidgetBlocks.js:1097 -msgid "The Phrase Maker block opens a tool to create musical phrases." +#: js/blocks/ActionBlocks.js:145 +msgid "return to URL" msgstr "" -#: js/WidgetBlocks.js:1104 -#.TRANS: assigns pitch to a sequence of beats to generate a melody -msgid "phrase maker" +#: js/blocks/ActionBlocks.js:233 +#: js/blocks/ActionBlocks.js:290 +#: js/blocks/ActionBlocks.js:501 +#: js/blocks/ActionBlocks.js:688 +msgid "The Calculate block returns a value calculated by an action." msgstr "" -#: js/WidgetBlocks.js:1168 -msgid "You must have at least one pitch block and one rhythm block in the matrix." +#: js/blocks/ActionBlocks.js:251 +#: js/blocks/ActionBlocks.js:517 +#: js/blocks/ActionBlocks.js:707 +msgid "calculate" msgstr "" -#: js/WidgetBlocks.js:1220 -msgid "The Status block opens a tool for inspecting the status of Music Blocks as it is running." +#: js/blocks/ActionBlocks.js:376 +#: js/blocks/ActionBlocks.js:593 +#: js/blocks/ActionBlocks.js:942 +#: js/blocks/ActionBlocks.js:1389 +#.TRANS: do is the do something or take an action. +msgid "The Do block is used to initiate an action." msgstr "" -#: js/IntervalsBlocks.js:45 -msgid "set temperament" +#: js/blocks/ActionBlocks.js:390 +#: js/blocks/ActionBlocks.js:610 +#: js/blocks/ActionBlocks.js:959 +#: js/blocks/ActionBlocks.js:1048 +#: js/blocks/MeterBlocks.js:769 +msgid "do1" msgstr "" -#: js/IntervalsBlocks.js:63 -#: js/MediaBlocks.js:746 -#: js/PitchBlocks.js:657 -#: js/PitchBlocks.js:933 -#: js/PitchBlocks.js:972 -#: js/PitchBlocks.js:1005 -#: js/PitchBlocks.js:1166 -#: js/PitchBlocks.js:1679 -#: js/PitchBlocks.js:1720 -#: js/PitchBlocks.js:1827 -#: js/ToneBlocks.js:1025 -#.TRANS: adjusts the shift up or down by one octave (twelve half-steps in the interval between two notes, one having twice or half the frequency in Hz of the other.) -msgid "octave" -msgstr "octave" +#: js/blocks/ActionBlocks.js:390 +#: js/blocks/ActionBlocks.js:610 +#: js/blocks/ActionBlocks.js:959 +#: js/blocks/ActionBlocks.js:1048 +#: js/blocks/FlowBlocks.js:742 +#: js/blocks/FlowBlocks.js:822 +#: js/blocks/MeterBlocks.js:769 +msgid "do" +msgstr "eme" -#: js/IntervalsBlocks.js:99 -msgid "The Temperament name block is used to select a tuning method." +#: js/blocks/ActionBlocks.js:791 +#: js/blocks/ActionBlocks.js:865 +msgid "The Arg block contains the value of an argument passed to an action." msgstr "" -#: js/IntervalsBlocks.js:161 -msgid "doubly" +#: js/blocks/ActionBlocks.js:806 +#: js/blocks/ActionBlocks.js:878 +msgid "arg" msgstr "" -#: js/IntervalsBlocks.js:166 -msgid "The Doubly block will double the size of an interval." +#: js/blocks/ActionBlocks.js:836 +#: js/blocks/ActionBlocks.js:900 +#: js/blocks/ActionBlocks.js:908 +msgid "Invalid argument" msgstr "" -#: js/IntervalsBlocks.js:262 -msgid "interval number" +#: js/blocks/ActionBlocks.js:944 +msgid "In the example, it is used with the One of block to choose a random phase." msgstr "" -#: js/IntervalsBlocks.js:330 -#.TRANS: measure the distance between two pitches in semi-tones -msgid "semi-tone interval measure" +#: js/blocks/ActionBlocks.js:1019 +#: js/blocks/ActionBlocks.js:1026 +msgid "The Listen block is used to listen for an event such as a mouse click." msgstr "" -#: js/IntervalsBlocks.js:397 -#: js/IntervalsBlocks.js:513 -msgid "You must use two pitch blocks when measuring an interval." +#: js/blocks/ActionBlocks.js:1028 +msgid "When the event happens, an action is taken." msgstr "" -#: js/IntervalsBlocks.js:439 -msgid "The Scalar interval block measures the distance between two notes in the current key and mode." -msgstr "" +#: js/blocks/ActionBlocks.js:1045 +msgid "on" +msgstr "inwu" -#: js/IntervalsBlocks.js:445 -#.TRANS: measure the distance between two pitches in steps of musical scale -msgid "scalar interval measure" -msgstr "" +#: js/blocks/ActionBlocks.js:1048 +#: js/blocks/ActionBlocks.js:1049 +#: js/blocks/ActionBlocks.js:1153 +msgid "event" +msgstr "omume" -#: js/IntervalsBlocks.js:592 -#: js/musicutils.js:637 -#: js/musicutils.js:908 -#.TRANS: perfect is a music term related to intervals -msgid "perfect" +#: js/blocks/ActionBlocks.js:1133 +msgid "The Broadcast block is used to trigger an event." msgstr "" -#: js/IntervalsBlocks.js:621 -msgid "In the figure, we add sol# to sol." +#: js/blocks/ActionBlocks.js:1151 +msgid "broadcast" +msgstr "agbasa ozi n'ikuku`" + +#: js/blocks/ActionBlocks.js:1208 +msgid "Each Start block is a separate voice." msgstr "" -#: js/IntervalsBlocks.js:627 -#: js/OrnamentBlocks.js:220 -#.TRANS: calculate a relative step between notes based on semi-tones -msgid "semi-tone interval" +#: js/blocks/ActionBlocks.js:1304 +msgid "It is often used for storing a phrase of music that is repeated." msgstr "" -#: js/IntervalsBlocks.js:676 -msgid "The output of the example is: do, mi, sol, sol, ti, mi" +#: js/blocks/ActionBlocks.js:1495 +msgid "define temperament" msgstr "" -#: js/IntervalsBlocks.js:735 -msgid "The Chord block calculates common chords." +#: js/blocks/BooleanBlocks.js:44 +msgid "The Not block is the logical not operator." msgstr "" -#: js/IntervalsBlocks.js:737 -msgid "In the figure, we generate a C-major chord." +#: js/blocks/BooleanBlocks.js:62 +msgid "not" +msgstr "bụghị" + +#: js/blocks/BooleanBlocks.js:134 +msgid "The And block is the logical and operator." msgstr "" -#: js/IntervalsBlocks.js:742 -msgid "chord" +#: js/blocks/BooleanBlocks.js:152 +msgid "and" +msgstr "na" + +#: js/blocks/BooleanBlocks.js:218 +msgid "The Or block is the logical or operator." msgstr "" -#: js/IntervalsBlocks.js:794 -msgid "The Ratio Interval block calculates an interval based on a ratio." +#: js/blocks/BooleanBlocks.js:236 +msgid "or" +msgstr "ma ọ bụ" + +#: js/blocks/BooleanBlocks.js:302 +msgid "The XOR block is the logical XOR operator." msgstr "" -#: js/IntervalsBlocks.js:799 -msgid "ratio interval" +#: js/blocks/BooleanBlocks.js:320 +msgid "xor" msgstr "" -#: js/IntervalsBlocks.js:868 -msgid "In the figure, we add la to sol." +#: js/blocks/BooleanBlocks.js:808 +msgid "The Equal block returns True if the two numbers are equal." msgstr "" -#: js/IntervalsBlocks.js:924 -#.TRANS: define a custom mode -msgid "define mode" +#: js/blocks/BooleanBlocks.js:909 +msgid "The Not-equal-to block returns True if the two numbers are not equal to each other." msgstr "" -#: js/IntervalsBlocks.js:977 -msgid "movable Do" +#: js/blocks/BooleanBlocks.js:1008 +msgid "The Boolean block is used to specify true or false." msgstr "" -#: js/IntervalsBlocks.js:1028 -#.TRANS: mode length is the number of notes in the mode, e.g., 7 for major and minor scales; 12 for chromatic scales -msgid "mode length" +#: js/blocks/BoxesBlocks.js:53 +#: js/blocks/BoxesBlocks.js:59 +msgid "The Add-to block is used to add to the value stored in a box." msgstr "" -#: js/IntervalsBlocks.js:1037 -msgid "The Mode length block is the number of notes in the current scale." +#: js/blocks/BoxesBlocks.js:61 +msgid "It can also be used with other blocks such as Color and Pen size." msgstr "" -#: js/IntervalsBlocks.js:1039 -msgid "Most Western scales have 7 notes." +#: js/blocks/BoxesBlocks.js:73 +msgid "add" +msgstr "tinye" + +#: js/blocks/BoxesBlocks.js:75 +#: js/widgets/temperament.js:857 +msgid "to" +msgstr "ka" + +#: js/blocks/BoxesBlocks.js:75 +#: js/blocks/BoxesBlocks.js:595 +#: js/blocks/HeapBlocks.js:544 +msgid "value1" msgstr "" -#: js/IntervalsBlocks.js:1088 -#.TRANS: the mode in music is 'major', 'minor', etc. -msgid "current mode" +#: js/blocks/BoxesBlocks.js:118 +msgid "Block does not support incrementing." msgstr "" -#: js/IntervalsBlocks.js:1141 -#.TRANS: the key is a group of pitches with which a music composition is created -msgid "current key" +#: js/blocks/BoxesBlocks.js:152 +msgid "The Add-1-to block adds one to the value stored in a box." msgstr "" -#: js/IntervalsBlocks.js:1193 -#: js/IntervalsBlocks.js:1238 -#.TRANS: set the key and mode, e.g. C Major -msgid "set key" -msgstr "setịpụụrụ ntughe " +#: js/blocks/BoxesBlocks.js:163 +msgid "add 1 to" +msgstr "tinye 1" -#: js/IntervalsBlocks.js:1247 -#: js/IntervalsBlocks.js:1253 -msgid "The Set key block is used to set the key and mode," +#: js/blocks/BoxesBlocks.js:211 +msgid "The Subtract-1-from block subtracts one from the value stored in a box." msgstr "" -#: js/IntervalsBlocks.js:1253 -msgid "eg C Major" +#: js/blocks/BoxesBlocks.js:222 +msgid "subtract 1 from" msgstr "" -#: js/IntervalsBlocks.js:1266 -#: js/DictBlocks.js:215 -#: js/DictBlocks.js:216 -#: js/DictBlocks.js:289 -#: js/DictBlocks.js:290 -#: js/DictBlocks.js:357 -#: js/DictBlocks.js:430 -#: js/DictBlocks.js:431 -#.TRANS: key, e.g., C in C Major -msgid "key" -msgstr "ntughe" - -#: js/ActionBlocks.js:58 -msgid "The Return block will return a value from an action." +#: js/blocks/BoxesBlocks.js:270 +#: js/blocks/BoxesBlocks.js:387 +msgid "The Box block returns the value stored in a box." msgstr "" -#: js/ActionBlocks.js:75 -msgid "return" +#: js/blocks/BoxesBlocks.js:500 +#: js/blocks/BoxesBlocks.js:576 +msgid "The Store in block will store a value in a box." msgstr "" -#: js/ActionBlocks.js:128 -msgid "The Return to URL block will return a value to a webpage." +#: js/blocks/BoxesBlocks.js:595 +#: js/blocks/EnsembleBlocks.js:391 +#: js/blocks/EnsembleBlocks.js:402 +msgid "name1" msgstr "" -#: js/ActionBlocks.js:145 -msgid "return to URL" +#: js/blocks/BoxesBlocks.js:652 +msgid "The Box2 block returns the value stored in Box2." msgstr "" -#: js/ActionBlocks.js:233 -#: js/ActionBlocks.js:290 -#: js/ActionBlocks.js:501 -#: js/ActionBlocks.js:688 -msgid "The Calculate block returns a value calculated by an action." +#: js/blocks/BoxesBlocks.js:703 +msgid "The Store in Box2 block is used to store a value in Box2." msgstr "" -#: js/ActionBlocks.js:251 -#: js/ActionBlocks.js:517 -#: js/ActionBlocks.js:707 -msgid "calculate" +#: js/blocks/BoxesBlocks.js:715 +msgid "store in box2" msgstr "" -#: js/ActionBlocks.js:376 -#: js/ActionBlocks.js:593 -#: js/ActionBlocks.js:942 -#: js/ActionBlocks.js:1389 -#.TRANS: do is the do something or take an action. -msgid "The Do block is used to initiate an action." +#: js/blocks/BoxesBlocks.js:761 +msgid "The Box1 block returns the value stored in Box1." msgstr "" -#: js/ActionBlocks.js:390 -#: js/ActionBlocks.js:610 -#: js/ActionBlocks.js:959 -#: js/ActionBlocks.js:1048 -#: js/MeterBlocks.js:769 -msgid "do1" +#: js/blocks/BoxesBlocks.js:812 +msgid "The Store in Box1 block is used to store a value in Box1." msgstr "" -#: js/ActionBlocks.js:390 -#: js/ActionBlocks.js:610 -#: js/ActionBlocks.js:959 -#: js/ActionBlocks.js:1048 -#: js/FlowBlocks.js:742 -#: js/FlowBlocks.js:822 -#: js/MeterBlocks.js:769 -msgid "do" -msgstr "eme" - -#: js/ActionBlocks.js:791 -#: js/ActionBlocks.js:865 -msgid "The Arg block contains the value of an argument passed to an action." +#: js/blocks/BoxesBlocks.js:826 +msgid "store in box1" msgstr "" -#: js/ActionBlocks.js:806 -#: js/ActionBlocks.js:878 -msgid "arg" +#: js/blocks/DictBlocks.js:77 +msgid "show dictionary" msgstr "" -#: js/ActionBlocks.js:836 -#: js/ActionBlocks.js:900 -#: js/ActionBlocks.js:908 -msgid "Invalid argument" +#: js/blocks/DictBlocks.js:80 +#: js/blocks/DictBlocks.js:145 +#: js/blocks/DictBlocks.js:216 +#: js/blocks/DictBlocks.js:290 +#: js/blocks/ProgramBlocks.js:396 +#: js/blocks/ProgramBlocks.js:501 +#: js/blocks/ProgramBlocks.js:664 +msgid "My Dictionary" msgstr "" -#: js/ActionBlocks.js:944 -msgid "In the example, it is used with the One of block to choose a random phase." +#: js/blocks/DictBlocks.js:129 +msgid "The Dictionary block returns a dictionary." msgstr "" -#: js/ActionBlocks.js:1019 -#: js/ActionBlocks.js:1026 -msgid "The Listen block is used to listen for an event such as a mouse click." +#: js/blocks/DictBlocks.js:197 +#: js/blocks/DictBlocks.js:339 +msgid "The Get-dict block returns a value in the dictionary for a specified key." msgstr "" -#: js/ActionBlocks.js:1028 -msgid "When the event happens, an action is taken." +#: js/blocks/DictBlocks.js:212 +#: js/blocks/DictBlocks.js:354 +#.TRANS: retrieve a value from the dictionary with a given key +msgid "get value" msgstr "" -#: js/ActionBlocks.js:1045 -msgid "on" -msgstr "inwu" - -#: js/ActionBlocks.js:1048 -#: js/ActionBlocks.js:1049 -#: js/ActionBlocks.js:1153 -msgid "event" -msgstr "omume" - -#: js/ActionBlocks.js:1133 -msgid "The Broadcast block is used to trigger an event." +#: js/blocks/DictBlocks.js:215 +#: js/blocks/DictBlocks.js:216 +#: js/blocks/DictBlocks.js:289 +#: js/blocks/DictBlocks.js:290 +#: js/blocks/DictBlocks.js:357 +#: js/blocks/DictBlocks.js:430 +#: js/blocks/DictBlocks.js:431 +msgid "key2" msgstr "" -#: js/ActionBlocks.js:1151 -msgid "broadcast" -msgstr "agbasa ozi n'ikuku`" - -#: js/ActionBlocks.js:1208 -msgid "Each Start block is a separate voice." -msgstr "" +#: js/blocks/DictBlocks.js:215 +#: js/blocks/DictBlocks.js:216 +#: js/blocks/DictBlocks.js:289 +#: js/blocks/DictBlocks.js:290 +#: js/blocks/DictBlocks.js:357 +#: js/blocks/DictBlocks.js:430 +#: js/blocks/DictBlocks.js:431 +#: js/blocks/IntervalsBlocks.js:1462 +#.TRANS: key, e.g., C in C Major +msgid "key" +msgstr "ntughe" -#: js/ActionBlocks.js:1304 -msgid "It is often used for storing a phrase of music that is repeated." +#: js/blocks/DictBlocks.js:271 +#: js/blocks/DictBlocks.js:411 +msgid "The Set-dict block sets a value in the dictionary for a specified key." msgstr "" -#: js/ActionBlocks.js:1495 -msgid "define temperament" +#: js/blocks/DictBlocks.js:286 +#: js/blocks/DictBlocks.js:427 +#.TRANS: set a value in the dictionary for a given key +msgid "set value" msgstr "" -#: js/EnsembleBlocks.js:66 +#: js/blocks/EnsembleBlocks.js:66 msgid "mouse index heap" msgstr "" -#: js/EnsembleBlocks.js:68 +#: js/blocks/EnsembleBlocks.js:68 msgid "The Mouse index heap block returns a value in the heap at a specified location for a specified mouse." msgstr "" -#: js/EnsembleBlocks.js:77 -#: js/EnsembleBlocks.js:1080 +#: js/blocks/EnsembleBlocks.js:77 +#: js/blocks/EnsembleBlocks.js:1080 msgid "mouse name" msgstr "" -#: js/EnsembleBlocks.js:77 -#: js/EnsembleBlocks.js:92 -#: js/HeapBlocks.js:544 +#: js/blocks/EnsembleBlocks.js:77 +#: js/blocks/EnsembleBlocks.js:92 +#: js/blocks/HeapBlocks.js:544 #.TRANS: value1 is a numeric value (JAPANESE ONLY) msgid "index" msgstr "ndeksi" -#: js/EnsembleBlocks.js:80 +#: js/blocks/EnsembleBlocks.js:80 msgid "turtle index heap" msgstr "" -#: js/EnsembleBlocks.js:82 +#: js/blocks/EnsembleBlocks.js:82 msgid "The Turtle index heap block returns a value in the heap at a specified location for a specified turtle." msgstr "" -#: js/EnsembleBlocks.js:90 -#: js/EnsembleBlocks.js:167 -#: js/EnsembleBlocks.js:230 -#: js/EnsembleBlocks.js:316 -#: js/EnsembleBlocks.js:362 -#: js/EnsembleBlocks.js:400 -#: js/EnsembleBlocks.js:454 -#: js/EnsembleBlocks.js:504 -#: js/EnsembleBlocks.js:550 -#: js/EnsembleBlocks.js:597 -#: js/EnsembleBlocks.js:651 -#: js/EnsembleBlocks.js:763 -#: js/EnsembleBlocks.js:854 -#: js/EnsembleBlocks.js:915 -#: js/EnsembleBlocks.js:955 -#: js/EnsembleBlocks.js:1219 -#: js/EnsembleBlocks.js:1293 +#: js/blocks/EnsembleBlocks.js:90 +#: js/blocks/EnsembleBlocks.js:167 +#: js/blocks/EnsembleBlocks.js:230 +#: js/blocks/EnsembleBlocks.js:316 +#: js/blocks/EnsembleBlocks.js:362 +#: js/blocks/EnsembleBlocks.js:400 +#: js/blocks/EnsembleBlocks.js:454 +#: js/blocks/EnsembleBlocks.js:504 +#: js/blocks/EnsembleBlocks.js:550 +#: js/blocks/EnsembleBlocks.js:597 +#: js/blocks/EnsembleBlocks.js:651 +#: js/blocks/EnsembleBlocks.js:763 +#: js/blocks/EnsembleBlocks.js:854 +#: js/blocks/EnsembleBlocks.js:915 +#: js/blocks/EnsembleBlocks.js:955 +#: js/blocks/EnsembleBlocks.js:1219 +#: js/blocks/EnsembleBlocks.js:1293 #.TRANS: Yertle is the name of a turtle. msgid "Yertle" msgstr "" -#: js/EnsembleBlocks.js:92 -#: js/EnsembleBlocks.js:1089 +#: js/blocks/EnsembleBlocks.js:92 +#: js/blocks/EnsembleBlocks.js:1089 msgid "turtle name" msgstr "mbe aha " -#: js/EnsembleBlocks.js:122 -#: js/EnsembleBlocks.js:1197 -#: js/HeapBlocks.js:474 -#: js/HeapBlocks.js:572 +#: js/blocks/EnsembleBlocks.js:122 +#: js/blocks/EnsembleBlocks.js:1197 +#: js/blocks/HeapBlocks.js:474 +#: js/blocks/HeapBlocks.js:572 msgid "Index must be > 0." msgstr "" -#: js/EnsembleBlocks.js:127 -#: js/HeapBlocks.js:479 -#: js/HeapBlocks.js:577 +#: js/blocks/EnsembleBlocks.js:127 +#: js/blocks/HeapBlocks.js:479 +#: js/blocks/HeapBlocks.js:577 msgid "Maximum heap size is 1000." msgstr "" -#: js/EnsembleBlocks.js:145 +#: js/blocks/EnsembleBlocks.js:145 msgid "stop mouse" msgstr "" -#: js/EnsembleBlocks.js:147 +#: js/blocks/EnsembleBlocks.js:147 msgid "The Stop mouse block stops the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:158 +#: js/blocks/EnsembleBlocks.js:158 msgid "stop turtle" msgstr "kwusi mbe " -#: js/EnsembleBlocks.js:160 +#: js/blocks/EnsembleBlocks.js:160 msgid "The Stop turtle block stops the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:184 -#: js/EnsembleBlocks.js:247 -#: js/EnsembleBlocks.js:413 -#: js/EnsembleBlocks.js:468 -#: js/EnsembleBlocks.js:706 -#: js/EnsembleBlocks.js:808 -#: js/EnsembleBlocks.js:870 -#: js/EnsembleBlocks.js:1190 -#: js/EnsembleBlocks.js:1253 +#: js/blocks/EnsembleBlocks.js:184 +#: js/blocks/EnsembleBlocks.js:247 +#: js/blocks/EnsembleBlocks.js:413 +#: js/blocks/EnsembleBlocks.js:468 +#: js/blocks/EnsembleBlocks.js:706 +#: js/blocks/EnsembleBlocks.js:808 +#: js/blocks/EnsembleBlocks.js:870 +#: js/blocks/EnsembleBlocks.js:1190 +#: js/blocks/EnsembleBlocks.js:1253 msgid "Cannot find mouse" msgstr "" -#: js/EnsembleBlocks.js:186 -#: js/EnsembleBlocks.js:249 -#: js/EnsembleBlocks.js:415 -#: js/EnsembleBlocks.js:470 -#: js/EnsembleBlocks.js:708 -#: js/EnsembleBlocks.js:810 -#: js/EnsembleBlocks.js:872 -#: js/EnsembleBlocks.js:1192 -#: js/EnsembleBlocks.js:1255 +#: js/blocks/EnsembleBlocks.js:186 +#: js/blocks/EnsembleBlocks.js:249 +#: js/blocks/EnsembleBlocks.js:415 +#: js/blocks/EnsembleBlocks.js:470 +#: js/blocks/EnsembleBlocks.js:708 +#: js/blocks/EnsembleBlocks.js:810 +#: js/blocks/EnsembleBlocks.js:872 +#: js/blocks/EnsembleBlocks.js:1192 +#: js/blocks/EnsembleBlocks.js:1255 msgid "Cannot find turtle" msgstr "" -#: js/EnsembleBlocks.js:206 +#: js/blocks/EnsembleBlocks.js:206 msgid "start mouse" msgstr "" -#: js/EnsembleBlocks.js:209 +#: js/blocks/EnsembleBlocks.js:209 msgid "The Start mouse block starts the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:220 +#: js/blocks/EnsembleBlocks.js:220 msgid "start turtle" msgstr "mbe bido" -#: js/EnsembleBlocks.js:223 +#: js/blocks/EnsembleBlocks.js:223 msgid "The Start turtle block starts the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:256 +#: js/blocks/EnsembleBlocks.js:256 msgid "Mouse is already running." msgstr "" -#: js/EnsembleBlocks.js:258 +#: js/blocks/EnsembleBlocks.js:258 msgid "Turtle is already running." msgstr "" -#: js/EnsembleBlocks.js:282 +#: js/blocks/EnsembleBlocks.js:282 msgid "Cannot find start block" msgstr "" -#: js/EnsembleBlocks.js:292 +#: js/blocks/EnsembleBlocks.js:292 #.TRANS: pen color for this mouse msgid "mouse color" msgstr "" -#: js/EnsembleBlocks.js:294 +#: js/blocks/EnsembleBlocks.js:294 msgid "The Mouse color block returns the pen color of the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:306 +#: js/blocks/EnsembleBlocks.js:306 #.TRANS: pen color for this turtle msgid "turtle color" msgstr "" -#: js/EnsembleBlocks.js:308 +#: js/blocks/EnsembleBlocks.js:308 msgid "The Turtle color block returns the pen color of the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:338 +#: js/blocks/EnsembleBlocks.js:338 #.TRANS: heading (compass direction) for this mouse msgid "mouse heading" msgstr "" -#: js/EnsembleBlocks.js:340 +#: js/blocks/EnsembleBlocks.js:340 msgid "The Mouse heading block returns the heading of the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:352 +#: js/blocks/EnsembleBlocks.js:352 #.TRANS: heading (compass direction) for this turtle msgid "turtle heading" msgstr "" -#: js/EnsembleBlocks.js:354 +#: js/blocks/EnsembleBlocks.js:354 msgid "The Turtle heading block returns the heading of the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:384 -#: js/EnsembleBlocks.js:439 +#: js/blocks/EnsembleBlocks.js:384 +#: js/blocks/EnsembleBlocks.js:439 #.TRANS: set xy position for this mouse msgid "set mouse" msgstr "" -#: js/EnsembleBlocks.js:391 -#: js/EnsembleBlocks.js:402 -#: js/BoxesBlocks.js:595 -msgid "name1" -msgstr "" - -#: js/EnsembleBlocks.js:391 -#: js/EnsembleBlocks.js:402 -#: js/ProgramBlocks.js:881 -#: js/GraphicsBlocks.js:235 -#: js/GraphicsBlocks.js:313 -#: js/GraphicsBlocks.js:436 -#: js/GraphicsBlocks.js:487 -#: js/GraphicsBlocks.js:534 -#: js/GraphicsBlocks.js:750 +#: js/blocks/EnsembleBlocks.js:391 +#: js/blocks/EnsembleBlocks.js:402 +#: js/blocks/GraphicsBlocks.js:235 +#: js/blocks/GraphicsBlocks.js:313 +#: js/blocks/GraphicsBlocks.js:436 +#: js/blocks/GraphicsBlocks.js:487 +#: js/blocks/GraphicsBlocks.js:534 +#: js/blocks/GraphicsBlocks.js:750 +#: js/blocks/ProgramBlocks.js:881 msgid "x" msgstr "x" -#: js/EnsembleBlocks.js:391 -#: js/EnsembleBlocks.js:402 -#: js/ProgramBlocks.js:881 -#: js/GraphicsBlocks.js:149 -#: js/GraphicsBlocks.js:313 -#: js/GraphicsBlocks.js:436 -#: js/GraphicsBlocks.js:487 -#: js/GraphicsBlocks.js:534 -#: js/GraphicsBlocks.js:750 +#: js/blocks/EnsembleBlocks.js:391 +#: js/blocks/EnsembleBlocks.js:402 +#: js/blocks/GraphicsBlocks.js:149 +#: js/blocks/GraphicsBlocks.js:313 +#: js/blocks/GraphicsBlocks.js:436 +#: js/blocks/GraphicsBlocks.js:487 +#: js/blocks/GraphicsBlocks.js:534 +#: js/blocks/GraphicsBlocks.js:750 +#: js/blocks/ProgramBlocks.js:881 msgid "y" msgstr "y" -#: js/EnsembleBlocks.js:395 -#: js/EnsembleBlocks.js:452 +#: js/blocks/EnsembleBlocks.js:395 +#: js/blocks/EnsembleBlocks.js:452 #.TRANS: set xy position for this turtle msgid "set turtle" msgstr "" -#: js/EnsembleBlocks.js:433 +#: js/blocks/EnsembleBlocks.js:433 msgid "The Set mouse block sends a stack of blocks to be run by the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:446 +#: js/blocks/EnsembleBlocks.js:446 msgid "The Set turtle block sends a stack of blocks to be run by the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:480 +#: js/blocks/EnsembleBlocks.js:480 #.TRANS: y position for this mouse msgid "mouse y" msgstr "oke y" -#: js/EnsembleBlocks.js:482 +#: js/blocks/EnsembleBlocks.js:482 msgid "The Y mouse block returns the Y position of the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:494 +#: js/blocks/EnsembleBlocks.js:494 #.TRANS: y position for this turtle msgid "turtle y" msgstr "mbe y" -#: js/EnsembleBlocks.js:496 +#: js/blocks/EnsembleBlocks.js:496 msgid "The Y turtle block returns the Y position of the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:526 +#: js/blocks/EnsembleBlocks.js:526 #.TRANS: x position for this mouse msgid "mouse x" msgstr "oke x" -#: js/EnsembleBlocks.js:528 +#: js/blocks/EnsembleBlocks.js:528 msgid "The X mouse block returns the X position of the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:540 +#: js/blocks/EnsembleBlocks.js:540 #.TRANS: x position for this turtle msgid "turtle x" msgstr "mbe x" -#: js/EnsembleBlocks.js:542 +#: js/blocks/EnsembleBlocks.js:542 msgid "The X turtle block returns the X position of the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:573 +#: js/blocks/EnsembleBlocks.js:573 #.TRANS: notes played by this mouse msgid "mouse notes played" msgstr "" -#: js/EnsembleBlocks.js:575 +#: js/blocks/EnsembleBlocks.js:575 msgid "The Mouse elapse notes block returns the number of notes played by the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:587 +#: js/blocks/EnsembleBlocks.js:587 #.TRANS: notes played by this turtle msgid "turtle notes played" msgstr "" -#: js/EnsembleBlocks.js:589 +#: js/blocks/EnsembleBlocks.js:589 msgid "The Turtle elapse notes block returns the number of notes played by the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:627 +#: js/blocks/EnsembleBlocks.js:627 #.TRANS: convert current note for this turtle to piano key (1-88) msgid "mouse pitch number" msgstr "" -#: js/EnsembleBlocks.js:629 +#: js/blocks/EnsembleBlocks.js:629 msgid "The Mouse pitch block returns the current pitch number being played by the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:641 +#: js/blocks/EnsembleBlocks.js:641 #.TRANS: convert current note for this turtle to piano key (1-88) msgid "turtle pitch number" msgstr "" -#: js/EnsembleBlocks.js:643 -msgid "The Turrle pitch block returns the current pitch number being played by the specified turtle." +#: js/blocks/EnsembleBlocks.js:643 +msgid "The Turtle pitch block returns the current pitch number being played by the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:747 -#: js/EnsembleBlocks.js:819 +#: js/blocks/EnsembleBlocks.js:747 +#: js/blocks/EnsembleBlocks.js:819 #.TRANS: note value is the duration of the note played by this mouse msgid "mouse note value" msgstr "" -#: js/EnsembleBlocks.js:757 +#: js/blocks/EnsembleBlocks.js:757 #.TRANS: note value is the duration of the note played by this turtle msgid "turtle note value" msgstr "" -#: js/EnsembleBlocks.js:830 +#: js/blocks/EnsembleBlocks.js:830 #.TRANS: sync is short for synchronization msgid "mouse sync" msgstr "" -#: js/EnsembleBlocks.js:832 +#: js/blocks/EnsembleBlocks.js:832 msgid "The Mouse sync block aligns the beat count between mice." msgstr "" -#: js/EnsembleBlocks.js:844 +#: js/blocks/EnsembleBlocks.js:844 #.TRANS: sync is short for synchronization msgid "turtle sync" msgstr "" -#: js/EnsembleBlocks.js:846 +#: js/blocks/EnsembleBlocks.js:846 msgid "The Turtle sync block aligns the beat count between turtles." msgstr "" -#: js/EnsembleBlocks.js:887 +#: js/blocks/EnsembleBlocks.js:887 msgid "The Found mouse block will return true if the specified mouse can be found." msgstr "" -#: js/EnsembleBlocks.js:893 +#: js/blocks/EnsembleBlocks.js:893 msgid "found mouse" msgstr "" -#: js/EnsembleBlocks.js:903 +#: js/blocks/EnsembleBlocks.js:903 msgid "The Found turtle block will return true if the specified turtle can be found." msgstr "" -#: js/EnsembleBlocks.js:909 +#: js/blocks/EnsembleBlocks.js:909 msgid "found turtle" msgstr "" -#: js/EnsembleBlocks.js:932 +#: js/blocks/EnsembleBlocks.js:932 msgid "new mouse" msgstr "" -#: js/EnsembleBlocks.js:934 +#: js/blocks/EnsembleBlocks.js:934 msgid "The New mouse block will create a new mouse." msgstr "" -#: js/EnsembleBlocks.js:945 +#: js/blocks/EnsembleBlocks.js:945 msgid "new turtle" msgstr "" -#: js/EnsembleBlocks.js:947 +#: js/blocks/EnsembleBlocks.js:947 msgid "The New turtle block will create a new turtle." msgstr "" -#: js/EnsembleBlocks.js:1011 +#: js/blocks/EnsembleBlocks.js:1011 msgid "set mouse color" msgstr "" -#: js/EnsembleBlocks.js:1014 +#: js/blocks/EnsembleBlocks.js:1014 msgid "The Set-mouse-color block is used to set the color of a mouse." msgstr "" -#: js/EnsembleBlocks.js:1020 +#: js/blocks/EnsembleBlocks.js:1020 msgid "set turtle color" msgstr "" -#: js/EnsembleBlocks.js:1023 +#: js/blocks/EnsembleBlocks.js:1023 msgid "The Set-turtle-color block is used to set the color of a turtle." msgstr "" -#: js/EnsembleBlocks.js:1083 +#: js/blocks/EnsembleBlocks.js:1083 msgid "The Mouse-name block returns the name of a mouse." msgstr "" -#: js/EnsembleBlocks.js:1092 +#: js/blocks/EnsembleBlocks.js:1092 msgid "The Turtle-name block returns the name of a turtle." msgstr "" -#: js/EnsembleBlocks.js:1115 +#: js/blocks/EnsembleBlocks.js:1115 msgid "mouse count" msgstr "" -#: js/EnsembleBlocks.js:1118 +#: js/blocks/EnsembleBlocks.js:1118 msgid "The Mouse-count block returns the number of mice." msgstr "" -#: js/EnsembleBlocks.js:1124 +#: js/blocks/EnsembleBlocks.js:1124 msgid "turtle count" msgstr "" -#: js/EnsembleBlocks.js:1127 +#: js/blocks/EnsembleBlocks.js:1127 msgid "The Turtle-count block returns the number of turtles." msgstr "" -#: js/EnsembleBlocks.js:1149 +#: js/blocks/EnsembleBlocks.js:1149 msgid "nth mouse name" msgstr "" -#: js/EnsembleBlocks.js:1152 +#: js/blocks/EnsembleBlocks.js:1152 msgid "The Nth-Mouse name block returns the name of the nth mouse." msgstr "" -#: js/EnsembleBlocks.js:1158 +#: js/blocks/EnsembleBlocks.js:1158 msgid "nth turtle name" msgstr "" -#: js/EnsembleBlocks.js:1161 +#: js/blocks/EnsembleBlocks.js:1161 msgid "The Nth-Turtle name block returns the name of the nth turtle." msgstr "" -#: js/EnsembleBlocks.js:1205 -#: js/EnsembleBlocks.js:1265 +#: js/blocks/EnsembleBlocks.js:1205 +#: js/blocks/EnsembleBlocks.js:1265 msgid "set name" msgstr "" -#: js/EnsembleBlocks.js:1214 -#: js/EnsembleBlocks.js:1221 +#: js/blocks/EnsembleBlocks.js:1214 +#: js/blocks/EnsembleBlocks.js:1221 msgid "source" msgstr "isi iyi" -#: js/EnsembleBlocks.js:1214 -#: js/EnsembleBlocks.js:1221 +#: js/blocks/EnsembleBlocks.js:1214 +#: js/blocks/EnsembleBlocks.js:1221 msgid "target" msgstr "lekwasịrị" -#: js/EnsembleBlocks.js:1271 +#: js/blocks/EnsembleBlocks.js:1271 msgid "The Set-name block is used to name a mouse." msgstr "" -#: js/EnsembleBlocks.js:1284 +#: js/blocks/EnsembleBlocks.js:1284 msgid "The Set-name block is used to name a turtle." msgstr "" -#: js/BooleanBlocks.js:44 -msgid "The Not block is the logical not operator." -msgstr "" - -#: js/BooleanBlocks.js:62 -msgid "not" -msgstr "bụghị" - -#: js/BooleanBlocks.js:134 -msgid "The And block is the logical and operator." -msgstr "" - -#: js/BooleanBlocks.js:152 -msgid "and" -msgstr "na" - -#: js/BooleanBlocks.js:218 -msgid "The Or block is the logical or operator." -msgstr "" - -#: js/BooleanBlocks.js:236 -msgid "or" -msgstr "ma ọ bụ" - -#: js/BooleanBlocks.js:302 -msgid "The XOR block is the logical XOR operator." -msgstr "" - -#: js/BooleanBlocks.js:320 -msgid "xor" -msgstr "" - -#: js/BooleanBlocks.js:808 -msgid "The Equal block returns True if the two numbers are equal." -msgstr "" - -#: js/BooleanBlocks.js:909 -msgid "The Not-equal-to block returns True if the two numbers are not equal to each other." -msgstr "" - -#: js/BooleanBlocks.js:1008 -msgid "The Boolean block is used to specify true or false." +#: js/blocks/ExtrasBlocks.js:33 +msgid "fraction" msgstr "" -#: js/MediaBlocks.js:35 -#.TRANS: right side of the screen -msgid "right (screen)" +#: js/blocks/ExtrasBlocks.js:36 +msgid "Convert a float to a fraction" msgstr "" -#: js/MediaBlocks.js:45 -#: js/MediaBlocks.js:56 -msgid "The Right block returns the position of the right of the canvas." +#: js/blocks/ExtrasBlocks.js:93 +msgid "save as ABC" msgstr "" -#: js/MediaBlocks.js:97 -#.TRANS: left side of the screen -msgid "left (screen)" -msgstr "" +#: js/blocks/ExtrasBlocks.js:96 +#: js/blocks/ExtrasBlocks.js:132 +#: js/blocks/ExtrasBlocks.js:168 +msgid "title" +msgstr "aha" -#: js/MediaBlocks.js:107 -#: js/MediaBlocks.js:118 -msgid "The Left block returns the position of the left of the canvas." +#: js/blocks/ExtrasBlocks.js:129 +msgid "save as Lilypond" msgstr "" -#: js/MediaBlocks.js:158 -msgid "top (screen)" +#: js/blocks/ExtrasBlocks.js:165 +msgid "save as SVG" msgstr "" -#: js/MediaBlocks.js:168 -#: js/MediaBlocks.js:179 -msgid "The Top block returns the position of the top of the canvas." -msgstr "" +#: js/blocks/ExtrasBlocks.js:216 +msgid "no background" +msgstr "ọ dịghị ndabere" -#: js/MediaBlocks.js:219 -msgid "bottom (screen)" +#: js/blocks/ExtrasBlocks.js:219 +msgid "The No background block eliminates the background from the saved SVG output." msgstr "" -#: js/MediaBlocks.js:229 -#: js/MediaBlocks.js:240 -msgid "The Bottom block returns the position of the bottom of the canvas." -msgstr "" +#: js/blocks/ExtrasBlocks.js:247 +msgid "show blocks" +msgstr "show blocks" -#: js/MediaBlocks.js:282 -msgid "width" +#: js/blocks/ExtrasBlocks.js:249 +msgid "The Show blocks block shows the blocks." msgstr "" -#: js/MediaBlocks.js:291 -msgid "The Width block returns the width of the canvas." -msgstr "" +#: js/blocks/ExtrasBlocks.js:274 +msgid "hide blocks" +msgstr "hide blocks" -#: js/MediaBlocks.js:325 -msgid "height" +#: js/blocks/ExtrasBlocks.js:276 +msgid "The Hide blocks block hides the blocks." msgstr "" -#: js/MediaBlocks.js:334 -msgid "The Height block returns the height of the canvas." +#: js/blocks/ExtrasBlocks.js:305 +#: js/blocks/ExtrasBlocks.js:338 +msgid "The Space block is used to add space between blocks." msgstr "" -#: js/MediaBlocks.js:369 -#.TRANS: stops playback of an audio recording -msgid "stop play" -msgstr "kwụsị play" - -#: js/MediaBlocks.js:404 -#.TRANS: Erases the images and text -msgid "erase media" -msgstr "" +#: js/blocks/ExtrasBlocks.js:376 +msgid "wait" +msgstr "na-eche" -#: js/MediaBlocks.js:409 -msgid "The Erase Media block erases text and images." +#: js/blocks/ExtrasBlocks.js:379 +msgid "The Wait block pauses the program for a specified number of seconds." msgstr "" -#: js/MediaBlocks.js:439 -#.TRANS: play an audio recording -msgid "play back" -msgstr "egwu azụ" - -#: js/MediaBlocks.js:487 -msgid "speak" -msgstr "kwo" +#: js/blocks/ExtrasBlocks.js:433 +#: plugins/facebook.rtp:30 +msgid "comment" +msgstr "ikwu" -#: js/MediaBlocks.js:495 -msgid "The Speak block outputs to the text-to-speech synthesizer" -msgstr "" +#: js/blocks/ExtrasBlocks.js:469 +msgid "print" +msgstr "ebipụta" -#: js/MediaBlocks.js:546 -msgid "camera" +#: js/blocks/ExtrasBlocks.js:476 +msgid "The Print block displays text at the top of the screen." msgstr "" -#: js/MediaBlocks.js:551 -msgid "The Camera block connects a webcam to the Show block." +#: js/blocks/ExtrasBlocks.js:582 +msgid "display grid" msgstr "" -#: js/MediaBlocks.js:574 -msgid "video" +#: js/blocks/ExtrasBlocks.js:587 +msgid "The Display Grid Block changes the grid type" msgstr "" -#: js/MediaBlocks.js:579 -msgid "The Video block selects video for use with the Show block." -msgstr "" +#: js/blocks/ExtrasBlocks.js:689 +#: js/blocks/ExtrasBlocks.js:708 +#: js/blocks/ExtrasBlocks.js:731 +#: js/blocks/ExtrasBlocks.js:754 +#: js/blocks/ExtrasBlocks.js:772 +#: js/blocks/ExtrasBlocks.js:791 +#: js/blocks/ExtrasBlocks.js:810 +#: js/blocks/ExtrasBlocks.js:829 +msgid "unknown" +msgstr "amaghị" -#: js/MediaBlocks.js:607 -msgid "The Open file block opens a file for use with the Show block." +#: js/blocks/FlowBlocks.js:41 +msgid "The Backward block runs code in reverse order (Musical retrograde)." msgstr "" -#: js/MediaBlocks.js:645 -msgid "stop media" -msgstr "kwụsị egwu" - -#: js/MediaBlocks.js:650 -msgid "The Stop media block stops audio or video playback." +#: js/blocks/FlowBlocks.js:48 +msgid "backward" msgstr "" -#: js/MediaBlocks.js:679 -#: js/PitchBlocks.js:1539 -#: js/phrasemaker.js:822 -#: js/musickeyboard.js:1654 -#.TRANS: a measure of frequency: one cycle per second -msgid "hertz" +#: js/blocks/FlowBlocks.js:124 +msgid "The Duplicate block will run each block multiple times." msgstr "" -#: js/MediaBlocks.js:692 -msgid "duration (ms)" -msgstr "Na oge (ms)" - -#: js/MediaBlocks.js:728 -#.TRANS: translate a note into hertz, e.g., A4 -> 440HZ -msgid "note to frequency" -msgstr "mara na ugboro ole" +#: js/blocks/FlowBlocks.js:136 +msgid "duplicate" +msgstr "oyiri ndetu" -#: js/MediaBlocks.js:736 -msgid "The To frequency block converts a pitch name and octave to Hertz." +#: js/blocks/FlowBlocks.js:334 +msgid "The Default block is used inside of a Switch to define the default action." msgstr "" -#: js/MediaBlocks.js:746 -#: js/PitchBlocks.js:656 -#: js/PitchBlocks.js:932 -#: js/PitchBlocks.js:1827 -#.TRANS: name2 is name as in name of pitch (JAPANESE ONLY) -msgid "name2" +#: js/blocks/FlowBlocks.js:342 +msgid "default" msgstr "" -#: js/MediaBlocks.js:812 -msgid "The Avatar block is used to change the appearance of the mouse." +#: js/blocks/FlowBlocks.js:361 +#: js/blocks/FlowBlocks.js:418 +msgid "The Case Block must be used inside of a Switch Block." msgstr "" -#: js/MediaBlocks.js:819 -msgid "The Avatar block is used to change the appearance of the turtle." +#: js/blocks/FlowBlocks.js:389 +msgid "The Case block is used inside of a Switch to define matches." msgstr "" -#: js/MediaBlocks.js:831 -#: js/MediaBlocks.js:891 -#.TRANS: a media object -msgid "size" -msgstr "size" - -#: js/MediaBlocks.js:831 -msgid "image" -msgstr "oyiyi" - -#: js/MediaBlocks.js:880 -msgid "The Show block is used to display text or images on the canvas." +#: js/blocks/FlowBlocks.js:397 +msgid "case" msgstr "" -#: js/MediaBlocks.js:888 -#.TRANS: show1 is show as in display an image or text on the screen. -msgid "show1" +#: js/blocks/FlowBlocks.js:446 +msgid "The Switch block will run the code in the matching Case." msgstr "" -#: js/MediaBlocks.js:891 -msgid "obj" -msgstr "obj" - -#: js/MediaBlocks.js:938 -msgid "The Media block is used to import an image." +#: js/blocks/FlowBlocks.js:454 +msgid "switch" msgstr "" -#: js/MediaBlocks.js:973 -msgid "The Text block holds a text string." +#: js/blocks/FlowBlocks.js:595 +msgid "The Stop block will stop a loop" msgstr "" -#: js/ProgramBlocks.js:33 -msgid "The Load-heap-from-app block loads the heap from a web page." +#: js/blocks/FlowBlocks.js:597 +msgid "Forever, Repeat, While, or Until." msgstr "" -#: js/ProgramBlocks.js:44 -#.TRANS: load the heap contents from a URL -msgid "load heap from App" -msgstr "" +#: js/blocks/FlowBlocks.js:604 +#: js/widgets/timbre.js:417 +#: js/widgets/timbre.js:419 +#: js/widgets/musickeyboard.js:819 +#: js/widgets/musickeyboard.js:821 +#: js/widgets/phrasemaker.js:4202 +#: plugins/rodi.rtp:29 +#: plugins/rodi.rtp:73 +#: plugins/rodi.rtp:413 +msgid "stop" +msgstr "kwụsị" -#: js/ProgramBlocks.js:95 -msgid "Error parsing JSON data:" +#: js/blocks/FlowBlocks.js:653 +msgid "The Waitfor block will wait until the condition is true." msgstr "" -#: js/ProgramBlocks.js:100 -msgid "404: Page not found" -msgstr "" +#: js/blocks/FlowBlocks.js:661 +msgid "wait for" +msgstr "na-eche maka" -#: js/ProgramBlocks.js:133 -msgid "The Save-heap-to-app block saves the heap to a web page." +#: js/blocks/FlowBlocks.js:732 +msgid "The Until block will repeat until the condition is true." msgstr "" -#: js/ProgramBlocks.js:144 -#.TRANS: save the heap contents to a URL -msgid "save heap to App" -msgstr "" +#: js/blocks/FlowBlocks.js:740 +msgid "until" +msgstr "ruo mgbe" -#: js/ProgramBlocks.js:189 -msgid "Cannot find a valid heap for" +#: js/blocks/FlowBlocks.js:742 +#: js/blocks/FlowBlocks.js:822 +msgid "do2" msgstr "" -#: js/ProgramBlocks.js:206 -msgid "The Load-heap block loads the heap from a file." +#: js/blocks/FlowBlocks.js:812 +msgid "The While block will repeat while the condition is true." msgstr "" -#: js/ProgramBlocks.js:217 -#.TRANS: load the heap from a file -msgid "load heap" -msgstr "ibu kpokọtara" +#: js/blocks/FlowBlocks.js:820 +msgid "while" +msgstr "mgbe" -#: js/ProgramBlocks.js:270 -msgid "The file you selected does not contain a valid heap." +#: js/blocks/FlowBlocks.js:903 +#: js/blocks/FlowBlocks.js:968 +#: js/blocks/FlowBlocks.js:979 +msgid "In this example if the mouse button is pressed a snare drum will play." msgstr "" -#: js/ProgramBlocks.js:275 -msgid "The loadHeap block needs a loadFile block." -msgstr "" +#: js/blocks/FlowBlocks.js:925 +#: js/blocks/FlowBlocks.js:988 +msgid "if" +msgstr "o buru na" -#: js/ProgramBlocks.js:291 -msgid "The Set-heap block loads the heap." -msgstr "" +#: js/blocks/FlowBlocks.js:927 +#: js/blocks/FlowBlocks.js:990 +msgid "then" +msgstr "mgbe ahụ" -#: js/ProgramBlocks.js:299 -#: js/HeapBlocks.js:539 -#.TRANS: load the heap from a JSON encoding -msgid "set heap" -msgstr "setịpụụrụ obo" +#: js/blocks/FlowBlocks.js:927 +msgid "else" +msgstr "ọzọ" -#: js/ProgramBlocks.js:340 -msgid "The block you selected does not contain a valid heap." +#: js/blocks/FlowBlocks.js:1025 +msgid "The Forever block will repeat the contained blocks forever." msgstr "" -#: js/ProgramBlocks.js:343 -msgid "The Set heap block needs a heap." -msgstr "" +#: js/blocks/FlowBlocks.js:1037 +msgid "forever" +msgstr "ruo mgbe ebighị ebi" -#: js/ProgramBlocks.js:360 -msgid "The Load-dictionary block loads a dictionary from a file." +#: js/blocks/FlowBlocks.js:1073 +msgid "The Repeat block will repeat the contained blocks." msgstr "" -#: js/ProgramBlocks.js:372 -#.TRANS: load a dictionary from a file -msgid "load dictionary" +#: js/blocks/FlowBlocks.js:1075 +msgid "In this example the note will be played 4 times." msgstr "" -#: js/ProgramBlocks.js:390 -#: js/ProgramBlocks.js:658 -#: js/ToneBlocks.js:1025 -msgid "file" -msgstr "" +#: js/blocks/FlowBlocks.js:1083 +msgid "repeat" +msgstr "imekwa" -#: js/ProgramBlocks.js:396 -#: js/ProgramBlocks.js:501 -#: js/ProgramBlocks.js:664 -#: js/DictBlocks.js:80 -#: js/DictBlocks.js:145 -#: js/DictBlocks.js:216 -#: js/DictBlocks.js:290 -msgid "My Dictionary" +#: js/blocks/FlowBlocks.js:1123 +msgid "duplicate factor" msgstr "" -#: js/ProgramBlocks.js:444 -msgid "The file you selected does not contain a valid dictionary." +#: js/blocks/HeapBlocks.js:49 +msgid "The Heap block returns the heap." msgstr "" -#: js/ProgramBlocks.js:449 -msgid "The load dictionary block needs a load file block." -msgstr "" +#: js/blocks/HeapBlocks.js:133 +msgid "show heap" +msgstr "show kpokọtara" -#: js/ProgramBlocks.js:466 -msgid "The Set-dictionary block loads a dictionary." +#: js/blocks/HeapBlocks.js:181 +msgid "The Heap-length block returns the length of the heap." msgstr "" -#: js/ProgramBlocks.js:477 -#.TRANS: load a dictionary from a JSON -msgid "set dictionary" -msgstr "" +#: js/blocks/HeapBlocks.js:195 +msgid "heap length" +msgstr "obo ogologo" -#: js/ProgramBlocks.js:546 -msgid "The block you selected does not contain a valid dictionary." +#: js/blocks/HeapBlocks.js:254 +msgid "The Heap-empty? block returns true if the heap is empty." msgstr "" -#: js/ProgramBlocks.js:550 -msgid "The set dictionary block needs a dictionary." -msgstr "" +#: js/blocks/HeapBlocks.js:268 +#.TRANS: Is the heap empty? +msgid "heap empty?" +msgstr "ekpokwasị efu?" -#: js/ProgramBlocks.js:567 -msgid "The Save-heap block saves the heap to a file." +#: js/blocks/HeapBlocks.js:317 +msgid "The Empty-heap block empties the heap." msgstr "" -#: js/ProgramBlocks.js:578 -#.TRANS: save the heap to a file -msgid "save heap" -msgstr "ịzọpụta kpokọtara" +#: js/blocks/HeapBlocks.js:327 +#: js/blocks/HeapBlocks.js:647 +#.TRANS: empty the heap +msgid "empty heap" +msgstr "efu kpokọtara" -#: js/ProgramBlocks.js:629 -msgid "The Save-dictionary block saves a dictionary to a file." +#: js/blocks/HeapBlocks.js:371 +msgid "The Reverse-heap block reverses the order of the heap." msgstr "" -#: js/ProgramBlocks.js:640 -#.TRANS: save a dictionary to a file -msgid "save dictionary" +#: js/blocks/HeapBlocks.js:384 +#.TRANS: reverse the order of the heap +msgid "reverse heap" msgstr "" -#: js/ProgramBlocks.js:720 -msgid "The Open palette block opens a palette." +#: js/blocks/HeapBlocks.js:428 +msgid "The Index-heap block returns a value in the heap at a specified location." msgstr "" -#: js/ProgramBlocks.js:727 -msgid "open palette" -msgstr "" +#: js/blocks/HeapBlocks.js:443 +#.TRANS: retrieve a value from the heap at index position in the heap +msgid "index heap" +msgstr "ndeksi obo" -#: js/ProgramBlocks.js:785 -msgid "The Delete block block removes a block." +#: js/blocks/HeapBlocks.js:523 +msgid "The Set-heap entry block sets a value in he heap at the specified location." msgstr "" -#: js/ProgramBlocks.js:797 -#.TRANS: Move this block to the trash. -msgid "delete block" -msgstr "" +#: js/blocks/HeapBlocks.js:539 +#: js/blocks/ProgramBlocks.js:299 +#.TRANS: load the heap from a JSON encoding +msgid "set heap" +msgstr "setịpụụrụ obo" -#: js/ProgramBlocks.js:861 -msgid "The Move block block moves a block." +#: js/blocks/HeapBlocks.js:619 +msgid "The Pop block removes the value at the top of the heap." msgstr "" -#: js/ProgramBlocks.js:869 -#.TRANS: Move the position of a block on the screen. -msgid "move block" -msgstr "" +#: js/blocks/HeapBlocks.js:633 +#.TRANS: pop a value off the top of the heap +msgid "pop" +msgstr "pop" -#: js/ProgramBlocks.js:881 -#: js/ProgramBlocks.js:1048 -msgid "block number" +#: js/blocks/HeapBlocks.js:680 +msgid "The Push block adds a value to the top of the heap." msgstr "" -#: js/ProgramBlocks.js:935 -#.TRANS: Run program beginning at this block. -msgid "run block" -msgstr "" +#: js/blocks/HeapBlocks.js:696 +#.TRANS: push a value onto the top of the heap +msgid "push" +msgstr "kwaa" -#: js/ProgramBlocks.js:1025 -msgid "The Dock block block connections two blocks." +#: js/blocks/IntervalsBlocks.js:45 +msgid "set temperament" msgstr "" -#: js/ProgramBlocks.js:1036 -#.TRANS: We can connect a block to another block. -msgid "connect blocks" -msgstr "" +#: js/blocks/IntervalsBlocks.js:63 +#: js/blocks/MediaBlocks.js:746 +#: js/blocks/PitchBlocks.js:657 +#: js/blocks/PitchBlocks.js:935 +#: js/blocks/PitchBlocks.js:974 +#: js/blocks/PitchBlocks.js:1007 +#: js/blocks/PitchBlocks.js:1194 +#: js/blocks/PitchBlocks.js:1717 +#: js/blocks/PitchBlocks.js:1758 +#: js/blocks/PitchBlocks.js:1866 +#: js/blocks/ToneBlocks.js:1025 +#: js/turtleactions/IntervalsActions.js:114 +#.TRANS: adjusts the shift up or down by one octave (twelve half-steps in the interval between two notes, one having twice or half the frequency in Hz of the other.) +msgid "octave" +msgstr "octave" -#: js/ProgramBlocks.js:1048 -msgid "target block" +#: js/blocks/IntervalsBlocks.js:99 +msgid "The Temperament name block is used to select a tuning method." msgstr "" -#: js/ProgramBlocks.js:1048 -msgid "connection number" +#: js/blocks/IntervalsBlocks.js:161 +msgid "doubly" msgstr "" -#: js/ProgramBlocks.js:1140 -msgid "The Make block block creates a new block." +#: js/blocks/IntervalsBlocks.js:166 +msgid "The Doubly block will double the size of an interval." msgstr "" -#: js/ProgramBlocks.js:1152 -#.TRANS: Create a new block -msgid "make block" +#: js/blocks/IntervalsBlocks.js:262 +msgid "interval number" msgstr "" -#: js/ProgramBlocks.js:1186 -#: js/ProgramBlocks.js:1227 -#: js/RhythmBlocks.js:1128 -#: js/PitchBlocks.js:972 -#: js/PitchBlocks.js:1005 -#: js/temperament.js:340 -#: js/temperament.js:362 -#: js/temperament.js:372 -#: js/temperament.js:484 -#: js/status.js:190 -#: plugins/rodi.rtp:192 -#.TRANS: a musical note consisting of pitch and duration -msgid "note" -msgstr "dee" - -#: js/ProgramBlocks.js:1285 -msgid "Cannot find block" +#: js/blocks/IntervalsBlocks.js:317 +msgid "current interval" msgstr "" -#: js/ProgramBlocks.js:1304 -#: js/ProgramBlocks.js:1313 -msgid "Warning: block argument type mismatch" +#: js/blocks/IntervalsBlocks.js:387 +#.TRANS: measure the distance between two pitches in semi-tones +msgid "semi-tone interval measure" msgstr "" -#: js/ProgramBlocks.js:1347 -msgid "The Open project block is used to open a project from a web page." +#: js/blocks/IntervalsBlocks.js:454 +#: js/blocks/IntervalsBlocks.js:570 +msgid "You must use two pitch blocks when measuring an interval." msgstr "" -#: js/ProgramBlocks.js:1357 -msgid "open project" +#: js/blocks/IntervalsBlocks.js:496 +msgid "The Scalar interval block measures the distance between two notes in the current key and mode." msgstr "" -#: js/ProgramBlocks.js:1410 -msgid "Please enter a valid URL." +#: js/blocks/IntervalsBlocks.js:502 +#.TRANS: measure the distance between two pitches in steps of musical scale +msgid "scalar interval measure" msgstr "" -#: js/DrumBlocks.js:59 -msgid "The Noise name block is used to select a noise synthesizer." +#: js/blocks/IntervalsBlocks.js:678 +msgid "In the figure, we add sol# to sol." msgstr "" -#: js/DrumBlocks.js:102 -msgid "The Drum name block is used to select a drum." +#: js/blocks/IntervalsBlocks.js:684 +#: js/blocks/OrnamentBlocks.js:220 +#.TRANS: calculate a relative step between notes based on semi-tones +msgid "semi-tone interval" msgstr "" -#: js/DrumBlocks.js:146 -msgid "The Effects name block is used to select a sound effect." +#: js/blocks/IntervalsBlocks.js:733 +msgid "The output of the example is: do, mi, sol, sol, ti, mi" msgstr "" -#: js/DrumBlocks.js:163 -msgid "noise" +#: js/blocks/IntervalsBlocks.js:740 +#: js/blocks/WidgetBlocks.js:768 +msgid "arpeggio" msgstr "" -#: js/DrumBlocks.js:177 -msgid "The Play noise block will generate white, pink, or brown noise." +#: js/blocks/IntervalsBlocks.js:931 +msgid "The Chord block calculates common chords." msgstr "" -#: js/DrumBlocks.js:191 -#: js/musicutils.js:752 -#: js/synthutils.js:47 -#.TRANS: white noise synthesizer -msgid "white noise" +#: js/blocks/IntervalsBlocks.js:933 +msgid "In the figure, we generate a C-major chord." msgstr "" -#: js/DrumBlocks.js:326 -msgid "Replace every instance of a pitch with a drum sound." +#: js/blocks/IntervalsBlocks.js:938 +msgid "chord" msgstr "" -#: js/DrumBlocks.js:337 -#.TRANS: map a pitch to a drum sound -msgid "map pitch to drum" +#: js/blocks/IntervalsBlocks.js:990 +msgid "The Ratio Interval block calculates an interval based on a ratio." msgstr "" -#: js/DrumBlocks.js:404 -msgid "In the example above, a kick drum sound will be played instead of sol." +#: js/blocks/IntervalsBlocks.js:995 +msgid "ratio interval" msgstr "" -#: js/DrumBlocks.js:416 -#.TRANS: set the current drum sound for playback -msgid "set drum" +#: js/blocks/IntervalsBlocks.js:1064 +msgid "In the figure, we add la to sol." msgstr "" -#: js/DrumBlocks.js:460 -msgid "sound effect" +#: js/blocks/IntervalsBlocks.js:1120 +#.TRANS: define a custom mode +msgid "define mode" msgstr "" -#: js/DrumBlocks.js:498 -msgid "You can use multiple Drum blocks within a Note block." +#: js/blocks/IntervalsBlocks.js:1173 +msgid "movable Do" msgstr "" -#: js/RhythmBlocks.js:182 -#: js/RhythmBlocks.js:1086 -#: js/RhythmBlocks.js:1162 -msgid "Note value must be greater than 0." +#: js/blocks/IntervalsBlocks.js:1224 +#.TRANS: mode length is the number of notes in the mode, e.g., 7 for major and minor scales; 12 for chromatic scales +msgid "mode length" msgstr "" -#: js/RhythmBlocks.js:215 -#: js/RhythmBlocks.js:278 -#: js/RhythmBlocks.js:350 -#.TRANS: swing is a rhythmic variation that emphasises the offbeat -msgid "swing" -msgstr "siwing" - -#: js/RhythmBlocks.js:355 -#.TRANS: the amount to shift to the offbeat note -msgid "swing value" +#: js/blocks/IntervalsBlocks.js:1233 +msgid "The Mode length block is the number of notes in the current scale." msgstr "" -#: js/RhythmBlocks.js:419 -msgid "The Skip notes block will cause notes to be skipped." +#: js/blocks/IntervalsBlocks.js:1235 +msgid "Most Western scales have 7 notes." msgstr "" -#: js/RhythmBlocks.js:427 -#.TRANS: substitute rests on notes being skipped -msgid "skip notes" +#: js/blocks/IntervalsBlocks.js:1284 +#.TRANS: the mode in music is 'major', 'minor', etc. +msgid "current mode" msgstr "" -#: js/RhythmBlocks.js:489 -#.TRANS: speed up note duration by some factor, e.g. convert 1/4 to 1/8 notes by using a factor of 2 -msgid "multiply note value" -msgstr "ọtụtụ ụda" - -#: js/RhythmBlocks.js:542 -msgid "The Tie block works on pairs of notes, combining them into one note." +#: js/blocks/IntervalsBlocks.js:1337 +#.TRANS: the key is a group of pitches with which a music composition is created +msgid "current key" msgstr "" -#: js/RhythmBlocks.js:550 -#.TRANS: tie notes together into one longer note -msgid "tie" -msgstr "" +#: js/blocks/IntervalsBlocks.js:1389 +#: js/blocks/IntervalsBlocks.js:1434 +#.TRANS: set the key and mode, e.g. C Major +msgid "set key" +msgstr "setịpụụrụ ntughe " -#: js/RhythmBlocks.js:591 -#: js/RhythmBlocks.js:671 -#.TRANS: a dotted note is played for 1.5x its value, e.g., 1/8. --> 3/16 -msgid "dot" -msgstr "ntụpọ" +#: js/blocks/IntervalsBlocks.js:1443 +#: js/blocks/IntervalsBlocks.js:1449 +msgid "The Set key block is used to set the key and mode," +msgstr "" -#: js/RhythmBlocks.js:619 -#: js/RhythmActions.js:221 -msgid "An argument of -1 results in a note value of 0." +#: js/blocks/IntervalsBlocks.js:1449 +msgid "eg C Major" msgstr "" -#: js/RhythmBlocks.js:661 -msgid "The Dot block extends the duration of a note by 50%." +#: js/blocks/MediaBlocks.js:35 +#.TRANS: right side of the screen +msgid "right (screen)" msgstr "" -#: js/RhythmBlocks.js:663 -msgid "Eg a dotted quarter note will play for 3/8 (1/4 + 1/8) of a beat." +#: js/blocks/MediaBlocks.js:45 +#: js/blocks/MediaBlocks.js:56 +msgid "The Right block returns the position of the right of the canvas." msgstr "" -#: js/RhythmBlocks.js:765 -#.TRANS: Japanese only: note value block for drum -msgid "note value drum" +#: js/blocks/MediaBlocks.js:97 +#.TRANS: left side of the screen +msgid "left (screen)" msgstr "" -#: js/RhythmBlocks.js:829 -msgid "392 hertz" +#: js/blocks/MediaBlocks.js:107 +#: js/blocks/MediaBlocks.js:118 +msgid "The Left block returns the position of the left of the canvas." msgstr "" -#: js/RhythmBlocks.js:1119 -msgid "The Note block is a container for one or more Pitch blocks." +#: js/blocks/MediaBlocks.js:158 +msgid "top (screen)" msgstr "" -#: js/RhythmBlocks.js:1121 -msgid "The Note block specifies the duration (note value) of its contents." +#: js/blocks/MediaBlocks.js:168 +#: js/blocks/MediaBlocks.js:179 +msgid "The Top block returns the position of the top of the canvas." msgstr "" -#: js/RhythmBlocks.js:1130 -msgid "value2" +#: js/blocks/MediaBlocks.js:219 +msgid "bottom (screen)" msgstr "" -#: js/RhythmBlocks.js:1200 -msgid "define frequency" +#: js/blocks/MediaBlocks.js:229 +#: js/blocks/MediaBlocks.js:240 +msgid "The Bottom block returns the position of the bottom of the canvas." msgstr "" -#: js/RhythmBlocks.js:1218 -#: js/temperament.js:650 -#: js/temperament.js:1421 -msgid "octave space" +#: js/blocks/MediaBlocks.js:282 +msgid "width" msgstr "" -#: js/NumberBlocks.js:28 -msgid "The Int block returns an integer." +#: js/blocks/MediaBlocks.js:291 +msgid "The Width block returns the width of the canvas." msgstr "" -#: js/NumberBlocks.js:34 -msgid "int" +#: js/blocks/MediaBlocks.js:325 +msgid "height" msgstr "" -#: js/NumberBlocks.js:73 -msgid "The Mod block returns the remainder from a division." +#: js/blocks/MediaBlocks.js:334 +msgid "The Height block returns the height of the canvas." msgstr "" -#: js/NumberBlocks.js:79 -msgid "mod" -msgstr "mod" +#: js/blocks/MediaBlocks.js:369 +#.TRANS: stops playback of an audio recording +msgid "stop play" +msgstr "kwụsị play" -#: js/NumberBlocks.js:123 -msgid "The Power block calculates a power function." +#: js/blocks/MediaBlocks.js:404 +#.TRANS: Erases the images and text +msgid "erase media" msgstr "" -#: js/NumberBlocks.js:178 -msgid "The Sqrt block returns the square root." +#: js/blocks/MediaBlocks.js:409 +msgid "The Erase Media block erases text and images." msgstr "" -#: js/NumberBlocks.js:184 -msgid "sqrt" -msgstr "sqrt" - -#: js/NumberBlocks.js:230 -msgid "The Abs block returns the absolute value." -msgstr "" +#: js/blocks/MediaBlocks.js:439 +#.TRANS: play an audio recording +msgid "play back" +msgstr "egwu azụ" -#: js/NumberBlocks.js:236 -msgid "abs" -msgstr "" +#: js/blocks/MediaBlocks.js:487 +msgid "speak" +msgstr "kwo" -#: js/NumberBlocks.js:277 -msgid "The Distance block returns the distance between two points. For example, between the mouse and the center of the screen." +#: js/blocks/MediaBlocks.js:495 +msgid "The Speak block outputs to the text-to-speech synthesizer" msgstr "" -#: js/NumberBlocks.js:283 -#: plugins/rodi.rtp:310 -msgid "distance" -msgstr "ntoanya" - -#: js/NumberBlocks.js:343 -msgid "The Divide block is used to divide." +#: js/blocks/MediaBlocks.js:546 +msgid "camera" msgstr "" -#: js/NumberBlocks.js:411 -msgid "The Multiply block is used to multiply." +#: js/blocks/MediaBlocks.js:551 +msgid "The Camera block connects a webcam to the Show block." msgstr "" -#: js/NumberBlocks.js:554 -msgid "The Minus block is used to subtract." +#: js/blocks/MediaBlocks.js:574 +msgid "video" msgstr "" -#: js/NumberBlocks.js:647 -msgid "The Plus block is used to add." +#: js/blocks/MediaBlocks.js:579 +msgid "The Video block selects video for use with the Show block." msgstr "" -#: js/NumberBlocks.js:773 -msgid "The One-of block returns one of two choices." +#: js/blocks/MediaBlocks.js:607 +msgid "The Open file block opens a file for use with the Show block." msgstr "" -#: js/NumberBlocks.js:780 -#: js/PitchBlocks.js:616 -msgid "one of" -msgstr "otu n'ime" - -#: js/NumberBlocks.js:782 -msgid "this" -msgstr "this" +#: js/blocks/MediaBlocks.js:645 +msgid "stop media" +msgstr "kwụsị egwu" -#: js/NumberBlocks.js:782 -msgid "that" -msgstr "that" +#: js/blocks/MediaBlocks.js:650 +msgid "The Stop media block stops audio or video playback." +msgstr "" -#: js/NumberBlocks.js:837 -msgid "The Random block returns a random number." +#: js/blocks/MediaBlocks.js:679 +#: js/blocks/PitchBlocks.js:1577 +#: js/widgets/musickeyboard.js:1936 +#: js/widgets/phrasemaker.js:1037 +#.TRANS: a measure of frequency: one cycle per second +msgid "hertz" msgstr "" -#: js/NumberBlocks.js:844 -msgid "random" -msgstr "random" +#: js/blocks/MediaBlocks.js:692 +#: js/blocks/WidgetBlocks.js:182 +#: js/widgets/temperament.js:506 +#: js/widgets/temperament.js:546 +#: js/widgets/temperament.js:610 +#: js/widgets/temperament.js:618 +#: js/widgets/temperament.js:1505 +#: js/widgets/timbre.js:1842 +msgid "frequency" +msgstr "ugboro ole" -#: js/NumberBlocks.js:846 -msgid "min" -msgstr "kacha nta" +#: js/blocks/MediaBlocks.js:692 +msgid "duration (ms)" +msgstr "Na oge (ms)" -#: js/NumberBlocks.js:846 -msgid "max" -msgstr "kacha" +#: js/blocks/MediaBlocks.js:728 +#.TRANS: translate a note into hertz, e.g., A4 -> 440HZ +msgid "note to frequency" +msgstr "mara na ugboro ole" -#: js/NumberBlocks.js:910 -msgid "The Number block holds a number." +#: js/blocks/MediaBlocks.js:736 +msgid "The To frequency block converts a pitch name and octave to Hertz." msgstr "" -#: js/BoxesBlocks.js:53 -#: js/BoxesBlocks.js:59 -msgid "The Add-to block is used to add to the value stored in a box." +#: js/blocks/MediaBlocks.js:746 +#: js/blocks/PitchBlocks.js:656 +#: js/blocks/PitchBlocks.js:934 +#: js/blocks/PitchBlocks.js:1866 +#.TRANS: name2 is name as in name of pitch (JAPANESE ONLY) +msgid "name2" msgstr "" -#: js/BoxesBlocks.js:61 -msgid "It can also be used with other blocks such as Color and Pen size." +#: js/blocks/MediaBlocks.js:812 +msgid "The Avatar block is used to change the appearance of the mouse." msgstr "" -#: js/BoxesBlocks.js:73 -msgid "add" -msgstr "tinye" +#: js/blocks/MediaBlocks.js:819 +msgid "The Avatar block is used to change the appearance of the turtle." +msgstr "" -#: js/BoxesBlocks.js:75 -#: js/temperament.js:716 -msgid "to" -msgstr "ka" +#: js/blocks/MediaBlocks.js:831 +#: js/blocks/MediaBlocks.js:891 +#.TRANS: a media object +msgid "size" +msgstr "size" -#: js/BoxesBlocks.js:75 -#: js/BoxesBlocks.js:595 -#: js/HeapBlocks.js:544 -msgid "value1" -msgstr "" +#: js/blocks/MediaBlocks.js:831 +msgid "image" +msgstr "oyiyi" -#: js/BoxesBlocks.js:118 -msgid "Block does not support incrementing." +#: js/blocks/MediaBlocks.js:880 +msgid "The Show block is used to display text or images on the canvas." msgstr "" -#: js/BoxesBlocks.js:152 -msgid "The Add-1-to block adds one to the value stored in a box." +#: js/blocks/MediaBlocks.js:888 +#.TRANS: show1 is show as in display an image or text on the screen. +msgid "show1" msgstr "" -#: js/BoxesBlocks.js:163 -msgid "add 1 to" -msgstr "tinye 1" +#: js/blocks/MediaBlocks.js:891 +msgid "obj" +msgstr "obj" -#: js/BoxesBlocks.js:211 -msgid "The Subtract-1-from block subtracts one from the value stored in a box." +#: js/blocks/MediaBlocks.js:938 +msgid "The Media block is used to import an image." msgstr "" -#: js/BoxesBlocks.js:222 -msgid "subtract 1 from" +#: js/blocks/MediaBlocks.js:973 +msgid "The Text block holds a text string." msgstr "" -#: js/BoxesBlocks.js:270 -#: js/BoxesBlocks.js:387 -msgid "The Box block returns the value stored in a box." +#: js/blocks/MeterBlocks.js:34 +#.TRANS: musical meter (time signature), e.g., 4:4 +msgid "current meter" msgstr "" -#: js/BoxesBlocks.js:500 -#: js/BoxesBlocks.js:576 -msgid "The Store in block will store a value in a box." -msgstr "" +#: js/blocks/MeterBlocks.js:85 +#.TRANS: number of beats per minute +msgid "beat factor" +msgstr "ụda ihe na-akpata" -#: js/BoxesBlocks.js:652 -msgid "The Box2 block returns the value stored in Box2." +#: js/blocks/MeterBlocks.js:161 +msgid "The Beats per minute block returns the current beats per minute." msgstr "" -#: js/BoxesBlocks.js:703 -msgid "The Store in Box2 block is used to store a value in Box2." +#: js/blocks/MeterBlocks.js:169 +#: js/widgets/status.js:152 +#.TRANS: number of beats played per minute +msgid "beats per minute2" msgstr "" -#: js/BoxesBlocks.js:715 -msgid "store in box2" -msgstr "" +#: js/blocks/MeterBlocks.js:169 +#: js/blocks/MeterBlocks.js:1056 +#: js/blocks/MeterBlocks.js:1133 +#: js/blocks/MeterBlocks.js:1211 +#.TRANS: sets tempo by defining a beat and beats per minute +msgid "beats per minute" +msgstr "gbagwojuru kwa nkeji" -#: js/BoxesBlocks.js:761 -msgid "The Box1 block returns the value stored in Box1." +#: js/blocks/MeterBlocks.js:233 +#.TRANS: count of current musical measure in meter +msgid "measure count" msgstr "" -#: js/BoxesBlocks.js:812 -msgid "The Store in Box1 block is used to store a value in Box1." +#: js/blocks/MeterBlocks.js:241 +msgid "The Measure count block returns the current measure." msgstr "" -#: js/BoxesBlocks.js:826 -msgid "store in box1" +#: js/blocks/MeterBlocks.js:290 +#.TRANS: count of current beat in the meter +msgid "beat count" msgstr "" -#: js/HeapBlocks.js:49 -msgid "The Heap block returns the heap." +#: js/blocks/MeterBlocks.js:300 +#: js/blocks/MeterBlocks.js:311 +#: js/blocks/MeterBlocks.js:565 +#: js/blocks/MeterBlocks.js:576 +msgid "The Beat count block is the number of the current beat," msgstr "" -#: js/HeapBlocks.js:133 -msgid "show heap" -msgstr "show kpokọtara" - -#: js/HeapBlocks.js:181 -msgid "The Heap-length block returns the length of the heap." +#: js/blocks/MeterBlocks.js:313 +#: js/blocks/MeterBlocks.js:578 +msgid "eg 1, 2, 3, or 4." msgstr "" -#: js/HeapBlocks.js:195 -msgid "heap length" -msgstr "obo ogologo" - -#: js/HeapBlocks.js:254 -msgid "The Heap-empty? block returns true if the heap is empty." +#: js/blocks/MeterBlocks.js:368 +#.TRANS: count the number of notes +msgid "sum note values" msgstr "" -#: js/HeapBlocks.js:268 -#.TRANS: Is the heap empty? -msgid "heap empty?" -msgstr "ekpokwasị efu?" +#: js/blocks/MeterBlocks.js:376 +#: js/blocks/MeterBlocks.js:440 +msgid "The Note counter block can be used to count the number of contained notes." +msgstr "" -#: js/HeapBlocks.js:317 -msgid "The Empty-heap block empties the heap." +#: js/blocks/MeterBlocks.js:432 +#.TRANS: count the number of notes +msgid "note counter" msgstr "" -#: js/HeapBlocks.js:327 -#: js/HeapBlocks.js:647 -#.TRANS: empty the heap -msgid "empty heap" -msgstr "efu kpokọtara" +#: js/blocks/MeterBlocks.js:496 +#.TRANS: number of whole notes that have been played +msgid "whole notes played" +msgstr "" -#: js/HeapBlocks.js:371 -msgid "The Reverse-heap block reverses the order of the heap." +#: js/blocks/MeterBlocks.js:505 +msgid "The Whole notes played block returns the total number of whole notes played." msgstr "" -#: js/HeapBlocks.js:384 -#.TRANS: reverse the order of the heap -msgid "reverse heap" +#: js/blocks/MeterBlocks.js:555 +#: js/turtleactions/DictActions.js:83 +#.TRANS: number of notes that have been played +msgid "notes played" msgstr "" -#: js/HeapBlocks.js:428 -msgid "The Index-heap block returns a value in the heap at a specified location." +#: js/blocks/MeterBlocks.js:653 +msgid "The No clock block decouples the notes from the master clock." msgstr "" -#: js/HeapBlocks.js:443 -#.TRANS: retrieve a value from the heap at index position in the heap -msgid "index heap" -msgstr "ndeksi obo" +#: js/blocks/MeterBlocks.js:661 +#.TRANS: don't lock notes to master clock +msgid "no clock" +msgstr "aka ekpe" -#: js/HeapBlocks.js:523 -msgid "The Set-heap entry block sets a value in he heap at the specified location." +#: js/blocks/MeterBlocks.js:700 +msgid "on weak beat do" msgstr "" -#: js/HeapBlocks.js:619 -msgid "The Pop block removes the value at the top of the heap." +#: js/blocks/MeterBlocks.js:705 +msgid "The On-weak-beat block lets you specify actions to take on weak (off) beats." msgstr "" -#: js/HeapBlocks.js:633 -#.TRANS: pop a value off the top of the heap -msgid "pop" -msgstr "pop" - -#: js/HeapBlocks.js:680 -msgid "The Push block adds a value to the top of the heap." +#: js/blocks/MeterBlocks.js:750 +msgid "on strong beat" msgstr "" -#: js/HeapBlocks.js:696 -#.TRANS: push a value onto the top of the heap -msgid "push" -msgstr "kwaa" - -#: js/FlowBlocks.js:41 -msgid "The Backward block runs code in reverse order (Musical retrograde)." +#: js/blocks/MeterBlocks.js:758 +msgid "The On-strong-beat block lets you specify actions to take on specified beats." msgstr "" -#: js/FlowBlocks.js:48 -msgid "backward" +#: js/blocks/MeterBlocks.js:769 +msgid "beat" msgstr "" -#: js/FlowBlocks.js:124 -msgid "The Duplicate block will run each block multiple times." +#: js/blocks/MeterBlocks.js:813 +msgid "on every beat do" msgstr "" -#: js/FlowBlocks.js:136 -msgid "duplicate" -msgstr "oyiri ndetu" +#: js/blocks/MeterBlocks.js:821 +msgid "The On-every-beat block lets you specify actions to take on every beat." +msgstr "" -#: js/FlowBlocks.js:334 -msgid "The Default block is used inside of a Switch to define the default action." +#: js/blocks/MeterBlocks.js:874 +msgid "on every note do" msgstr "" -#: js/FlowBlocks.js:342 -msgid "default" +#: js/blocks/MeterBlocks.js:882 +msgid "The On-every-note block lets you specify actions to take on every note." msgstr "" -#: js/FlowBlocks.js:361 -#: js/FlowBlocks.js:418 -msgid "The Case Block must be used inside of a Switch Block." +#: js/blocks/MeterBlocks.js:928 +#: js/blocks/MeterBlocks.js:999 +#.TRANS: sets tempo by defining a beat and beats per minute +msgid "master beats per minute" msgstr "" -#: js/FlowBlocks.js:389 -msgid "The Case block is used inside of a Switch to define matches." +#: js/blocks/MeterBlocks.js:952 +#: js/blocks/MeterBlocks.js:1078 +#: js/blocks/MeterBlocks.js:1135 +msgid "bpm" msgstr "" -#: js/FlowBlocks.js:397 -msgid "case" +#: js/blocks/MeterBlocks.js:952 +#: js/blocks/MeterBlocks.js:1078 +#: js/blocks/MeterBlocks.js:1135 +msgid "beat value" msgstr "" -#: js/FlowBlocks.js:446 -msgid "The Switch block will run the code in the matching Case." +#: js/blocks/MeterBlocks.js:1024 +#: js/blocks/MeterBlocks.js:1167 +#: js/blocks/MeterBlocks.js:1241 +msgid "Beats per minute must be > 30." msgstr "" -#: js/FlowBlocks.js:454 -msgid "switch" +#: js/blocks/MeterBlocks.js:1027 +#: js/blocks/MeterBlocks.js:1170 +#: js/blocks/MeterBlocks.js:1244 +msgid "Maximum beats per minute is 1000." msgstr "" -#: js/FlowBlocks.js:595 -msgid "The Stop block will stop a loop" +#: js/blocks/MeterBlocks.js:1068 +msgid "The Beats per minute block sets the number of 1/4 notes per minute." msgstr "" -#: js/FlowBlocks.js:597 -msgid "Forever, Repeat, While, or Until." +#: js/blocks/MeterBlocks.js:1279 +#.TRANS: anacrusis +msgid "pickup" msgstr "" -#: js/FlowBlocks.js:604 -#: js/phrasemaker.js:3799 -#: js/musickeyboard.js:629 -#: js/musickeyboard.js:631 -#: js/timbre.js:417 -#: js/timbre.js:419 -#: plugins/rodi.rtp:29 -#: plugins/rodi.rtp:73 -#: plugins/rodi.rtp:413 -msgid "stop" -msgstr "kwụsị" +#: js/blocks/MeterBlocks.js:1367 +msgid "number of beats" +msgstr "" -#: js/FlowBlocks.js:653 -msgid "The Waitfor block will wait until the condition is true." +#: js/blocks/NumberBlocks.js:28 +msgid "The Int block returns an integer." msgstr "" -#: js/FlowBlocks.js:661 -msgid "wait for" -msgstr "na-eche maka" +#: js/blocks/NumberBlocks.js:34 +msgid "int" +msgstr "" -#: js/FlowBlocks.js:732 -msgid "The Until block will repeat until the condition is true." +#: js/blocks/NumberBlocks.js:73 +msgid "The Mod block returns the remainder from a division." msgstr "" -#: js/FlowBlocks.js:740 -msgid "until" -msgstr "ruo mgbe" +#: js/blocks/NumberBlocks.js:79 +msgid "mod" +msgstr "mod" -#: js/FlowBlocks.js:742 -#: js/FlowBlocks.js:822 -msgid "do2" +#: js/blocks/NumberBlocks.js:141 +msgid "The Power block calculates a power function." msgstr "" -#: js/FlowBlocks.js:812 -msgid "The While block will repeat while the condition is true." +#: js/blocks/NumberBlocks.js:196 +msgid "The Sqrt block returns the square root." msgstr "" -#: js/FlowBlocks.js:820 -msgid "while" -msgstr "mgbe" +#: js/blocks/NumberBlocks.js:202 +msgid "sqrt" +msgstr "sqrt" -#: js/FlowBlocks.js:903 -#: js/FlowBlocks.js:968 -#: js/FlowBlocks.js:979 -msgid "In this example if the mouse button is pressed a snare drum will play." +#: js/blocks/NumberBlocks.js:248 +msgid "The Abs block returns the absolute value." msgstr "" -#: js/FlowBlocks.js:925 -#: js/FlowBlocks.js:988 -msgid "if" -msgstr "o buru na" +#: js/blocks/NumberBlocks.js:254 +msgid "abs" +msgstr "" -#: js/FlowBlocks.js:927 -#: js/FlowBlocks.js:990 -msgid "then" -msgstr "mgbe ahụ" +#: js/blocks/NumberBlocks.js:295 +msgid "The Distance block returns the distance between two points. For example, between the mouse and the center of the screen." +msgstr "" -#: js/FlowBlocks.js:927 -msgid "else" -msgstr "ọzọ" +#: js/blocks/NumberBlocks.js:301 +#: plugins/rodi.rtp:310 +msgid "distance" +msgstr "ntoanya" -#: js/FlowBlocks.js:1025 -msgid "The Forever block will repeat the contained blocks forever." +#: js/blocks/NumberBlocks.js:361 +msgid "The Divide block is used to divide." msgstr "" -#: js/FlowBlocks.js:1037 -msgid "forever" -msgstr "ruo mgbe ebighị ebi" - -#: js/FlowBlocks.js:1073 -msgid "The Repeat block will repeat the contained blocks." +#: js/blocks/NumberBlocks.js:441 +msgid "The Multiply block is used to multiply." msgstr "" -#: js/FlowBlocks.js:1075 -msgid "In this example the note will be played 4 times." +#: js/blocks/NumberBlocks.js:612 +msgid "The Minus block is used to subtract." msgstr "" -#: js/FlowBlocks.js:1083 -msgid "repeat" -msgstr "imekwa" +#: js/blocks/NumberBlocks.js:723 +msgid "The Plus block is used to add." +msgstr "" -#: js/FlowBlocks.js:1123 -msgid "duplicate factor" +#: js/blocks/NumberBlocks.js:849 +msgid "The One-of block returns one of two choices." msgstr "" -#: js/PitchBlocks.js:39 -#: js/musicutils.js:722 -#: js/musicutils.js:1117 -#: js/synthutils.js:112 -#.TRANS: square wave -msgid "square" -msgstr "square" +#: js/blocks/NumberBlocks.js:856 +#: js/blocks/PitchBlocks.js:616 +msgid "one of" +msgstr "otu n'ime" -#: js/PitchBlocks.js:62 -#: js/ToneBlocks.js:39 -#: js/musicutils.js:723 -#: js/musicutils.js:1118 -#: js/synthutils.js:116 -#.TRANS: triangle wave -msgid "triangle" -msgstr "triangul" +#: js/blocks/NumberBlocks.js:858 +msgid "this" +msgstr "this" -#: js/PitchBlocks.js:85 -#: js/musicutils.js:721 -#: js/musicutils.js:1116 -#: js/synthutils.js:110 -#.TRANS: sine wave -msgid "sine" -msgstr "sine" +#: js/blocks/NumberBlocks.js:858 +msgid "that" +msgstr "that" -#: js/PitchBlocks.js:108 -#: js/musicutils.js:724 -#: js/musicutils.js:1119 -#: js/synthutils.js:114 -#.TRANS: sawtooth wave -msgid "sawtooth" -msgstr "sawtooth" +#: js/blocks/NumberBlocks.js:913 +msgid "The Random block returns a random number." +msgstr "" + +#: js/blocks/NumberBlocks.js:920 +msgid "random" +msgstr "random" -#: js/PitchBlocks.js:141 -#.TRANS: musical transposition (adjustment of pitch up or down) -msgid "transposition" -msgstr "transposition" +#: js/blocks/NumberBlocks.js:922 +msgid "min" +msgstr "kacha nta" -#: js/PitchBlocks.js:168 -#.TRANS: step down one note in current musical scale -msgid "scalar step down" -msgstr "" +#: js/blocks/NumberBlocks.js:922 +msgid "max" +msgstr "kacha" -#: js/PitchBlocks.js:172 -msgid "The Scalar step down block returns the number of semi-tones down to the previous note in the current key and mode." +#: js/blocks/NumberBlocks.js:986 +msgid "The Number block holds a number." msgstr "" -#: js/PitchBlocks.js:190 -#.TRANS: step up one note in current musical scale -msgid "scalar step up" +#: js/blocks/OrnamentBlocks.js:32 +msgid "staccato factor" msgstr "" -#: js/PitchBlocks.js:194 -msgid "The Scalar step up block returns the number of semi-tones up to the next note in the current key and mode." +#: js/blocks/OrnamentBlocks.js:108 +msgid "slur factor" msgstr "" -#: js/PitchBlocks.js:212 -#.TRANS: the change measured in half-steps between the current pitch and the previous pitch -msgid "change in pitch" +#: js/blocks/OrnamentBlocks.js:217 +#: js/blocks/OrnamentBlocks.js:309 +#.TRANS: the neighbor refers to a neighboring note, e.g., D is a neighbor of C +msgid "neighbor" msgstr "" -#: js/PitchBlocks.js:216 -msgid "The Change in pitch block is the difference (in half steps) between the current pitch being played and the previous pitch played." +#: js/blocks/OrnamentBlocks.js:293 +msgid "The Neighbor block rapidly switches between neighboring pitches." msgstr "" -#: js/PitchBlocks.js:243 -#.TRANS: the change measured in scale-steps between the current pitch and the previous pitch -msgid "scalar change in pitch" +#: js/blocks/OrnamentBlocks.js:364 +msgid "glide" msgstr "" -#: js/PitchBlocks.js:250 -#: js/PitchBlocks.js:432 -#: js/PitchBlocks.js:1629 -#: js/DictActions.js:89 -#: js/temperament.js:477 -#: js/temperament.js:481 -#: js/temperament.js:714 -#.TRANS: convert current note to piano key (1-88) -#.TRANS: a mapping of pitch to the 88 piano keys -msgid "pitch number" +#: js/blocks/OrnamentBlocks.js:479 +#: js/blocks/OrnamentBlocks.js:643 +msgid "slur" +msgstr "slur" + +#: js/blocks/OrnamentBlocks.js:558 +#: js/blocks/OrnamentBlocks.js:710 +#.TRANS: play each note sharply detached from the others +msgid "staccato" +msgstr "staccato" + +#: js/blocks/RhythmBlocks.js:182 +#: js/blocks/RhythmBlocks.js:1086 +#: js/blocks/RhythmBlocks.js:1162 +msgid "Note value must be greater than 0." msgstr "" -#: js/PitchBlocks.js:256 -msgid "The Pitch number block is the value of the pitch of the note currently being played." +#: js/blocks/RhythmBlocks.js:215 +#: js/blocks/RhythmBlocks.js:278 +#: js/blocks/RhythmBlocks.js:350 +#.TRANS: swing is a rhythmic variation that emphasises the offbeat +msgid "swing" +msgstr "siwing" + +#: js/blocks/RhythmBlocks.js:355 +#.TRANS: the amount to shift to the offbeat note +msgid "swing value" msgstr "" -#: js/PitchBlocks.js:329 -#: js/PitchBlocks.js:433 -#.TRANS: the current pitch expressed in Hertz -msgid "pitch in hertz" +#: js/blocks/RhythmBlocks.js:419 +msgid "The Skip notes block will cause notes to be skipped." msgstr "" -#: js/PitchBlocks.js:334 -msgid "The Pitch in Hertz block is the value in Hertz of the pitch of the note currently being played." +#: js/blocks/RhythmBlocks.js:427 +#.TRANS: substitute rests on notes being skipped +msgid "skip notes" msgstr "" -#: js/PitchBlocks.js:367 -#: js/DictActions.js:87 -msgid "current pitch" +#: js/blocks/RhythmBlocks.js:489 +#.TRANS: speed up note duration by some factor, e.g. convert 1/4 to 1/8 notes by using a factor of 2 +msgid "multiply note value" +msgstr "ọtụtụ ụda" + +#: js/blocks/RhythmBlocks.js:542 +msgid "The Tie block works on pairs of notes, combining them into one note." msgstr "" -#: js/PitchBlocks.js:373 -msgid "The Current Pitch block is used with the Pitch Converter block. In the example above, current pitch, sol 4, is displayed as 392 hertz." +#: js/blocks/RhythmBlocks.js:550 +#.TRANS: tie notes together into one longer note +msgid "tie" msgstr "" -#: js/PitchBlocks.js:410 -msgid "This block converts the pitch value of the last note played into different formats such as hertz, letter name, pitch number, et al." +#: js/blocks/RhythmBlocks.js:591 +#: js/blocks/RhythmBlocks.js:671 +#.TRANS: a dotted note is played for 1.5x its value, e.g., 1/8. --> 3/16 +msgid "dot" +msgstr "ntụpọ" + +#: js/blocks/RhythmBlocks.js:619 +#: js/turtleactions/RhythmActions.js:221 +msgid "An argument of -1 results in a note value of 0." msgstr "" -#: js/PitchBlocks.js:434 -msgid "alphabet" +#: js/blocks/RhythmBlocks.js:661 +msgid "The Dot block extends the duration of a note by 50%." msgstr "" -#: js/PitchBlocks.js:436 -#.TRANS: Translate as "alphabet class" -msgid "letter class" +#: js/blocks/RhythmBlocks.js:663 +msgid "Eg a dotted quarter note will play for 3/8 (1/4 + 1/8) of a beat." msgstr "" -#: js/PitchBlocks.js:437 -msgid "solfege class" +#: js/blocks/RhythmBlocks.js:765 +#.TRANS: Japanese only: note value block for drum +msgid "note value drum" msgstr "" -#: js/PitchBlocks.js:438 -msgid "staff y" +#: js/blocks/RhythmBlocks.js:829 +msgid "392 hertz" msgstr "" -#: js/PitchBlocks.js:439 -msgid "solfege syllable" +#: js/blocks/RhythmBlocks.js:1119 +msgid "The Note block is a container for one or more Pitch blocks." msgstr "" -#: js/PitchBlocks.js:440 -msgid "pitch class" +#: js/blocks/RhythmBlocks.js:1121 +msgid "The Note block specifies the duration (note value) of its contents." msgstr "" -#: js/PitchBlocks.js:441 -msgid "scalar class" +#: js/blocks/RhythmBlocks.js:1128 +#: js/blocks/PitchBlocks.js:974 +#: js/blocks/PitchBlocks.js:1007 +#: js/blocks/ProgramBlocks.js:1186 +#: js/blocks/ProgramBlocks.js:1227 +#: js/widgets/status.js:190 +#: js/widgets/temperament.js:464 +#: js/widgets/temperament.js:486 +#: js/widgets/temperament.js:496 +#: js/widgets/temperament.js:617 +#: plugins/rodi.rtp:192 +#.TRANS: a musical note consisting of pitch and duration +msgid "note" +msgstr "dee" + +#: js/blocks/RhythmBlocks.js:1130 +msgid "value2" msgstr "" -#: js/PitchBlocks.js:443 -msgid "nth degree" +#: js/blocks/RhythmBlocks.js:1200 +msgid "define frequency" msgstr "" -#: js/PitchBlocks.js:444 -msgid "pitch to shade" +#: js/blocks/RhythmBlocks.js:1218 +#: js/widgets/temperament.js:787 +#: js/widgets/temperament.js:1587 +msgid "octave space" msgstr "" -#: js/PitchBlocks.js:445 -msgid "pitch to color" +#: js/blocks/SensorsBlocks.js:36 +msgid "The Input block prompts for keyboard input." msgstr "" -#: js/PitchBlocks.js:629 -#: js/musickeyboard.js:565 -#.TRANS: MIDI is a technical standard for electronic music -msgid "MIDI" +#: js/blocks/SensorsBlocks.js:46 +msgid "input" msgstr "" -#: js/PitchBlocks.js:642 -#.TRANS: set an offset associated with the numeric piano keyboard mapping -msgid "set pitch number offset" +#: js/blocks/SensorsBlocks.js:64 +msgid "Input a value" msgstr "" -#: js/PitchBlocks.js:645 -msgid "The Set pitch number offset block is used to set the offset for mapping pitch numbers to pitch and octave." +#: js/blocks/SensorsBlocks.js:126 +msgid "input value" msgstr "" -#: js/PitchBlocks.js:679 -#.TRANS: convert piano key number (1-88) to pitch -msgid "number to pitch" +#: js/blocks/SensorsBlocks.js:131 +msgid "The Input-value block stores the input." msgstr "" -#: js/PitchBlocks.js:682 -msgid "The Number to pitch block will convert a pitch number to a pich name." +#: js/blocks/SensorsBlocks.js:238 +msgid "loudness" +msgstr "keuzu" + +#: js/blocks/SensorsBlocks.js:245 +msgid "The Loudness block returns the volume detected by the microphone." msgstr "" -#: js/PitchBlocks.js:715 -#.TRANS: convert piano key number (1-88) to octave -msgid "number to octave" +#: js/blocks/SensorsBlocks.js:300 +msgid "click" +msgstr "click" + +#: js/blocks/SensorsBlocks.js:306 +msgid "The Click block triggers an event if a mouse has been clicked." msgstr "" -#: js/PitchBlocks.js:717 -msgid "The Number to octave block will convert a pitch number to an octave." +#: js/blocks/SensorsBlocks.js:313 +msgid "The Click block triggers an event if a turtle has been clicked." msgstr "" -#: js/PitchBlocks.js:726 -msgid "y to pitch" +#: js/blocks/SensorsBlocks.js:342 +msgid "cursor over" msgstr "" -#: js/PitchBlocks.js:729 -msgid "Y to pitch block will convert a staff y position to corresponding pitch notation." +#: js/blocks/SensorsBlocks.js:387 +msgid "cursor out" msgstr "" -#: js/PitchBlocks.js:841 -msgid "accidental selector" +#: js/blocks/SensorsBlocks.js:433 +msgid "cursor button down" msgstr "" -#: js/PitchBlocks.js:844 -msgid "The Accidental selector block is used to choose between double-sharp, sharp, natural, flat, and double-flat." +#: js/blocks/SensorsBlocks.js:477 +msgid "cursor button up" msgstr "" -#: js/PitchBlocks.js:858 -msgid "Pitch can be specified in terms of ni dha pa ma ga re sa." +#: js/blocks/SensorsBlocks.js:521 +#: js/blocks/PenBlocks.js:48 +#: plugins/rodi.rtp:219 +msgid "blue" msgstr "" -#: js/PitchBlocks.js:872 -msgid "Pitch can be specified in terms of C D E F G A B." +#: js/blocks/SensorsBlocks.js:577 +#: js/blocks/PenBlocks.js:64 +#: plugins/rodi.rtp:218 +msgid "green" msgstr "" -#: js/PitchBlocks.js:883 -msgid "solfege" +#: js/blocks/SensorsBlocks.js:633 +#: js/blocks/PenBlocks.js:112 +#: plugins/rodi.rtp:217 +msgid "red" msgstr "" -#: js/PitchBlocks.js:886 -msgid "Pitch can be specified in terms of do re mi fa sol la ti." +#: js/blocks/SensorsBlocks.js:638 +msgid "The Get red block returns the red component of the pixel under the mouse." msgstr "" -#: js/PitchBlocks.js:920 -msgid "The Invert block rotates any contained notes around a target note." +#: js/blocks/SensorsBlocks.js:644 +msgid "The Get red block returns the red component of the pixel under the turtle." msgstr "" -#: js/PitchBlocks.js:927 -#.TRANS: pitch inversion rotates a pitch around another pitch -msgid "invert" -msgstr "invert" +#: js/blocks/SensorsBlocks.js:685 +#: plugins/rodi.rtp:216 +msgid "pixel color" +msgstr "pixel agba" -#: js/PitchBlocks.js:929 -#: js/PitchBlocks.js:935 -#: js/PitchActions.js:727 -#: js/musicutils.js:726 -#: js/musicutils.js:902 -#.TRANS: invert based on even or odd number or musical scale -#.TRANS: even numbers -msgid "even" +#: js/blocks/SensorsBlocks.js:690 +msgid "The Get pixel block returns the color of the pixel under the mouse." msgstr "" -#: js/PitchBlocks.js:935 -#: js/PitchActions.js:729 -#: js/musicutils.js:728 -#: js/musicutils.js:903 -#.TRANS: odd numbers -msgid "odd" +#: js/blocks/SensorsBlocks.js:696 +msgid "The Get pixel block returns the color of the pixel under the turtle." msgstr "" -#: js/PitchBlocks.js:935 -#: js/PitchActions.js:731 -#: js/musicutils.js:729 -#: js/musicutils.js:904 -msgid "scalar" -msgstr "" +#: js/blocks/SensorsBlocks.js:758 +msgid "time" +msgstr "oge" -#: js/PitchBlocks.js:966 -#.TRANS: pitch inversion rotates a pitch around another pitch (odd number) -msgid "invert (odd)" +#: js/blocks/SensorsBlocks.js:804 +msgid "cursor y" msgstr "" -#: js/PitchBlocks.js:999 -#.TRANS: pitch inversion rotates a pitch around another pitch (even number) -msgid "invert (even)" +#: js/blocks/SensorsBlocks.js:809 +msgid "The Cursor Y block returns the vertical position of the mouse." msgstr "" -#: js/PitchBlocks.js:1020 -#.TRANS: register is the octave of the current pitch -msgid "register" +#: js/blocks/SensorsBlocks.js:845 +msgid "cursor x" msgstr "" -#: js/PitchBlocks.js:1024 -msgid "The Register block provides an easy way to modify the register (octave) of the notes that follow it." +#: js/blocks/SensorsBlocks.js:850 +msgid "The Cursor X block returns the horizontal position of the mouse." msgstr "" -#: js/PitchBlocks.js:1074 -msgid "The Semi-tone transposition block will shift the pitches contained inside Note blocks up (or down) by half steps." -msgstr "" +#: js/blocks/SensorsBlocks.js:886 +msgid "mouse button" +msgstr "òké bọtịnụ" -#: js/PitchBlocks.js:1076 -msgid "In the example shown above, sol is shifted up to sol#." +#: js/blocks/SensorsBlocks.js:888 +msgid "The Mouse-button block returns True if the mouse button is pressed." msgstr "" -#: js/PitchBlocks.js:1082 -#.TRANS: adjust the amount of shift (up or down) of a pitch -msgid "semi-tone transpose" +#: js/blocks/SensorsBlocks.js:934 +msgid "to ASCII" msgstr "" -#: js/PitchBlocks.js:1115 -msgid "The Transpose by Ratio block will shift the pitches contained inside Note blocks up (or down) by a ratio" +#: js/blocks/SensorsBlocks.js:938 +msgid "The To ASCII block converts numbers to letters." msgstr "" -#: js/PitchBlocks.js:1121 -#.TRANS: adjust the amount of shift (up or down) of a pitch -msgid "transpose by ratio" +#: js/blocks/SensorsBlocks.js:1005 +msgid "The Keyboard block returns computer keyboard input." msgstr "" -#: js/PitchBlocks.js:1204 -#.TRANS: down sixth means the note is five scale degrees below current note -msgid "down sixth" +#: js/blocks/RhythmBlockPaletteBlocks.js:50 +#: js/blocks/RhythmBlockPaletteBlocks.js:233 +#.TRANS: rhythm block +#.TRANS: translate "rhythm1" as rhythm +msgid "rhythm1" msgstr "" -#: js/PitchBlocks.js:1223 -#.TRANS: down third means the note is two scale degrees below current note -msgid "down third" -msgstr "" +#: js/blocks/RhythmBlockPaletteBlocks.js:70 +#: js/blocks/RhythmBlockPaletteBlocks.js:252 +#: js/blocks/RhythmBlockPaletteBlocks.js:485 +#: js/blocks/RhythmBlockPaletteBlocks.js:554 +#: js/blocks/RhythmBlockPaletteBlocks.js:875 +msgid "number of notes" +msgstr "ọnụ ọgụgụ nke ndetu" -#: js/PitchBlocks.js:1242 -#.TRANS: seventh means the note is the six scale degrees above current note -msgid "seventh" +#: js/blocks/RhythmBlockPaletteBlocks.js:126 +msgid "polyphonic rhythm" msgstr "" -#: js/PitchBlocks.js:1261 -#.TRANS: sixth means the note is the five scale degrees above current note -msgid "sixth" +#: js/blocks/RhythmBlockPaletteBlocks.js:219 +msgid "The Rhythm block is used to generate rhythm patterns." msgstr "" -#: js/PitchBlocks.js:1280 -#.TRANS: fifth means the note is the four scale degrees above current note -msgid "fifth" +#: js/blocks/RhythmBlockPaletteBlocks.js:280 +msgid "1/64 note" msgstr "" -#: js/PitchBlocks.js:1300 -#.TRANS: fourth means the note is three scale degrees above current note -msgid "fourth" +#: js/blocks/RhythmBlockPaletteBlocks.js:304 +msgid "1/32 note" msgstr "" -#: js/PitchBlocks.js:1319 -#.TRANS: third means the note is two scale degrees above current note -msgid "third" +#: js/blocks/RhythmBlockPaletteBlocks.js:332 +msgid "1/16 note" msgstr "" -#: js/PitchBlocks.js:1338 -#.TRANS: second means the note is one scale degree above current note -msgid "second" +#: js/blocks/RhythmBlockPaletteBlocks.js:360 +msgid "eighth note" msgstr "" -#: js/PitchBlocks.js:1379 -msgid "The Scalar transposition block will shift the pitches contained inside Note blocks up (or down) the scale." +#: js/blocks/RhythmBlockPaletteBlocks.js:388 +msgid "quarter note" msgstr "" -#: js/PitchBlocks.js:1381 -msgid "In the example shown above, sol is shifted up to la." +#: js/blocks/RhythmBlockPaletteBlocks.js:416 +msgid "half note" +msgstr "ọkara dee 𝅗𝅥" + +#: js/blocks/RhythmBlockPaletteBlocks.js:444 +msgid "whole note" msgstr "" -#: js/PitchBlocks.js:1388 -#.TRANS: adjust the amount of shift (up or down) of a pitch by musical scale (scalar) steps -msgid "scalar transpose" +#: js/blocks/RhythmBlockPaletteBlocks.js:482 +#: js/blocks/RhythmBlockPaletteBlocks.js:551 +#: js/blocks/RhythmBlockPaletteBlocks.js:602 +#.TRANS: A tuplet is a note value divided into irregular time values. +msgid "tuplet" +msgstr "tuplet" + +#: js/blocks/RhythmBlockPaletteBlocks.js:768 +msgid "septuplet" msgstr "" -#: js/PitchBlocks.js:1423 -msgid "The Accidental block is used to create sharps and flats" +#: js/blocks/RhythmBlockPaletteBlocks.js:796 +msgid "quintuplet" msgstr "" -#: js/PitchBlocks.js:1430 -#.TRANS: An accidental is a modification to a pitch, e.g., sharp or flat. -msgid "accidental override" +#: js/blocks/RhythmBlockPaletteBlocks.js:824 +msgid "triplet" msgstr "" -#: js/PitchBlocks.js:1543 -msgid "The Hertz block (in combination with a Number block) will play a sound at the specified frequency." +#: js/blocks/RhythmBlockPaletteBlocks.js:851 +msgid "simple tuplet" msgstr "" -#: js/PitchBlocks.js:1633 -msgid "The Pitch Number block will play a pitch associated by its number, e.g. 0 for C and 7 for G." +#: js/blocks/RhythmBlockPaletteBlocks.js:861 +msgid "Tuplets are a collection of notes that get scaled to a specific duration." msgstr "" -#: js/PitchBlocks.js:1665 -#: js/PitchBlocks.js:1707 -#.TRANS: a numeric mapping of the notes in an octave based on the musical mode -#.TRANS: a numeric mapping of the notes in an octave based on the musical mode -msgid "nth modal pitch" +#: js/blocks/DrumBlocks.js:59 +msgid "The Noise name block is used to select a noise synthesizer." msgstr "" -#: js/PitchBlocks.js:1668 -msgid "n^th Modal Pitch takes the pattern of pitches in semitones for a mode and makes each point a degree of the mode," +#: js/blocks/DrumBlocks.js:102 +msgid "The Drum name block is used to select a drum." msgstr "" -#: js/PitchBlocks.js:1670 -msgid "starting from 1 and regardless of tonal framework (i.e. not always 8 notes in the octave)" +#: js/blocks/DrumBlocks.js:146 +msgid "The Effects name block is used to select a sound effect." msgstr "" -#: js/PitchBlocks.js:1711 -msgid "N^th Modal Pitch takes a number as an input as the n^th degree for the given mode. 0 is the first position, 1 is the second, -1 is the note before the first etc." +#: js/blocks/DrumBlocks.js:163 +msgid "noise" msgstr "" -#: js/PitchBlocks.js:1713 -msgid "The pitches change according to the mode specified without any need for respellings." +#: js/blocks/DrumBlocks.js:177 +msgid "The Play noise block will generate white, pink, or brown noise." msgstr "" -#: js/PitchBlocks.js:1752 -msgid "Scale Degree is a common convention in music. Scale Degree offers seven possible positions in the scale (1-7) and can be modified via accidentals." +#: js/blocks/DrumBlocks.js:317 +msgid "Replace every instance of a pitch with a drum sound." msgstr "" -#: js/PitchBlocks.js:1754 -msgid "Scale Degree 1 is always the first pitch in a given scale, regardless of octave." +#: js/blocks/DrumBlocks.js:328 +#.TRANS: map a pitch to a drum sound +msgid "map pitch to drum" msgstr "" -#: js/PitchBlocks.js:1776 -#.TRANS: step some number of notes in current musical scale -msgid "scalar step" +#: js/blocks/DrumBlocks.js:395 +msgid "In the example above, a kick drum sound will be played instead of sol." msgstr "" -#: js/PitchBlocks.js:1781 -msgid "The Scalar Step block (in combination with a Number block) will play the next pitch in a scale," +#: js/blocks/DrumBlocks.js:407 +#.TRANS: set the current drum sound for playback +msgid "set drum" msgstr "" -#: js/PitchBlocks.js:1783 -msgid "eg if the last note played was sol, Scalar Step 1 will play la." +#: js/blocks/DrumBlocks.js:451 +msgid "sound effect" msgstr "" -#: js/PitchBlocks.js:1818 -msgid "The Pitch block specifies the pitch name and octave of a note that together determine the frequency of the note." +#: js/blocks/DrumBlocks.js:489 +msgid "You can use multiple Drum blocks within a Note block." msgstr "" -#: js/GraphicsBlocks.js:46 -#: js/DictActions.js:77 -#: js/DictActions.js:155 -#: js/DictActions.js:189 +#: js/blocks/GraphicsBlocks.js:46 +#: js/turtleactions/DictActions.js:77 +#: js/turtleactions/DictActions.js:144 +#: js/turtleactions/DictActions.js:173 msgid "heading" msgstr "isiokwu" -#: js/GraphicsBlocks.js:56 +#: js/blocks/GraphicsBlocks.js:56 msgid "The Heading block returns the orientation of the mouse." msgstr "" -#: js/GraphicsBlocks.js:62 +#: js/blocks/GraphicsBlocks.js:62 msgid "The Heading block returns the orientation of the turtle." msgstr "" -#: js/GraphicsBlocks.js:133 +#: js/blocks/GraphicsBlocks.js:133 msgid "The Y block returns the vertical position of the mouse." msgstr "" -#: js/GraphicsBlocks.js:140 +#: js/blocks/GraphicsBlocks.js:140 msgid "The Y block returns the vertical position of the turtle." msgstr "" -#: js/GraphicsBlocks.js:149 +#: js/blocks/GraphicsBlocks.js:149 msgid "y3" msgstr "" -#: js/GraphicsBlocks.js:219 +#: js/blocks/GraphicsBlocks.js:219 msgid "The X block returns the horizontal position of the mouse." msgstr "" -#: js/GraphicsBlocks.js:226 +#: js/blocks/GraphicsBlocks.js:226 msgid "The X block returns the horizontal position of the turtle." msgstr "" -#: js/GraphicsBlocks.js:235 +#: js/blocks/GraphicsBlocks.js:235 msgid "x3" msgstr "" -#: js/GraphicsBlocks.js:295 +#: js/blocks/GraphicsBlocks.js:295 msgid "scroll xy" msgstr "" -#: js/GraphicsBlocks.js:303 +#: js/blocks/GraphicsBlocks.js:303 msgid "The Scroll XY block moves the canvas." msgstr "" -#: js/GraphicsBlocks.js:313 +#: js/blocks/GraphicsBlocks.js:313 msgid "x2" msgstr "" -#: js/GraphicsBlocks.js:313 +#: js/blocks/GraphicsBlocks.js:313 msgid "y2" msgstr "" -#: js/GraphicsBlocks.js:373 -#: js/temperament.js:213 -#: js/temperament.js:241 +#: js/blocks/GraphicsBlocks.js:373 +#: js/widgets/temperament.js:319 +#: js/widgets/temperament.js:347 msgid "clear" msgstr "doro anya" -#: js/GraphicsBlocks.js:426 +#: js/blocks/GraphicsBlocks.js:426 msgid "The Control-point 2 block sets the second control point for the Bezier curve." msgstr "" -#: js/GraphicsBlocks.js:433 +#: js/blocks/GraphicsBlocks.js:433 msgid "control point 2" msgstr "" -#: js/GraphicsBlocks.js:436 -#: js/GraphicsBlocks.js:487 -#: js/GraphicsBlocks.js:534 -#: js/GraphicsBlocks.js:750 +#: js/blocks/GraphicsBlocks.js:436 +#: js/blocks/GraphicsBlocks.js:487 +#: js/blocks/GraphicsBlocks.js:534 +#: js/blocks/GraphicsBlocks.js:750 msgid "x1" msgstr "" -#: js/GraphicsBlocks.js:436 -#: js/GraphicsBlocks.js:487 -#: js/GraphicsBlocks.js:534 -#: js/GraphicsBlocks.js:750 +#: js/blocks/GraphicsBlocks.js:436 +#: js/blocks/GraphicsBlocks.js:487 +#: js/blocks/GraphicsBlocks.js:534 +#: js/blocks/GraphicsBlocks.js:750 msgid "y1" msgstr "" -#: js/GraphicsBlocks.js:477 +#: js/blocks/GraphicsBlocks.js:477 msgid "The Control-point 1 block sets the first control point for the Bezier curve." msgstr "" -#: js/GraphicsBlocks.js:484 +#: js/blocks/GraphicsBlocks.js:484 msgid "control point 1" msgstr "" -#: js/GraphicsBlocks.js:527 +#: js/blocks/GraphicsBlocks.js:527 msgid "The Bezier block draws a Bezier curve." msgstr "" -#: js/GraphicsBlocks.js:531 +#: js/blocks/GraphicsBlocks.js:531 msgid "bezier" msgstr "" -#: js/GraphicsBlocks.js:592 +#: js/blocks/GraphicsBlocks.js:592 msgid "The Arc block moves the turtle in an arc." msgstr "" -#: js/GraphicsBlocks.js:600 +#: js/blocks/GraphicsBlocks.js:600 msgid "arc" msgstr "aak" -#: js/GraphicsBlocks.js:603 +#: js/blocks/GraphicsBlocks.js:603 msgid "angle" msgstr "n'akuku" -#: js/GraphicsBlocks.js:603 +#: js/blocks/GraphicsBlocks.js:603 msgid "radius" msgstr "okirikiri" -#: js/GraphicsBlocks.js:620 -#: js/GraphicsBlocks.js:767 -#: js/GraphicsBlocks.js:1010 -#: js/GraphicsBlocks.js:1093 +#: js/blocks/GraphicsBlocks.js:620 +#: js/blocks/GraphicsBlocks.js:767 +#: js/blocks/GraphicsBlocks.js:1010 +#: js/blocks/GraphicsBlocks.js:1093 msgid "Value must be within -5000 to 5000 when Wrap Mode is off." msgstr "" -#: js/GraphicsBlocks.js:622 -#: js/GraphicsBlocks.js:769 -#: js/GraphicsBlocks.js:1012 -#: js/GraphicsBlocks.js:1095 +#: js/blocks/GraphicsBlocks.js:622 +#: js/blocks/GraphicsBlocks.js:769 +#: js/blocks/GraphicsBlocks.js:1012 +#: js/blocks/GraphicsBlocks.js:1095 msgid "Value must be within -20000 to 20000 when Wrap Mode is on." msgstr "" -#: js/GraphicsBlocks.js:660 +#: js/blocks/GraphicsBlocks.js:660 msgid "set heading" msgstr "set isiokwu" -#: js/GraphicsBlocks.js:673 +#: js/blocks/GraphicsBlocks.js:673 msgid "The Set heading block sets the heading of the turtle." msgstr "" -#: js/GraphicsBlocks.js:733 +#: js/blocks/GraphicsBlocks.js:733 msgid "The Set XY block moves the mouse to a specific position on the screen." msgstr "" -#: js/GraphicsBlocks.js:739 +#: js/blocks/GraphicsBlocks.js:739 msgid "The Set XY block moves the turtle to a specific position on the screen." msgstr "" -#: js/GraphicsBlocks.js:747 +#: js/blocks/GraphicsBlocks.js:747 msgid "set xy" msgstr "set xy" -#: js/GraphicsBlocks.js:819 +#: js/blocks/GraphicsBlocks.js:819 msgid "The Right block turns the mouse to the right." msgstr "" -#: js/GraphicsBlocks.js:826 +#: js/blocks/GraphicsBlocks.js:826 msgid "The Right block turns the turtle to the right." msgstr "" -#: js/GraphicsBlocks.js:835 +#: js/blocks/GraphicsBlocks.js:835 msgid "right1" msgstr "" -#: js/GraphicsBlocks.js:835 +#: js/blocks/GraphicsBlocks.js:835 #: plugins/rodi.rtp:77 #: plugins/rodi.rtp:340 #: plugins/rodi.rtp:375 msgid "right" msgstr "nri" -#: js/GraphicsBlocks.js:899 +#: js/blocks/GraphicsBlocks.js:899 msgid "The Left block turns the mouse to the left." msgstr "" -#: js/GraphicsBlocks.js:906 +#: js/blocks/GraphicsBlocks.js:906 msgid "The Left block turns the turtle to the left." msgstr "" -#: js/GraphicsBlocks.js:915 +#: js/blocks/GraphicsBlocks.js:915 msgid "left1" msgstr "" -#: js/GraphicsBlocks.js:915 +#: js/blocks/GraphicsBlocks.js:915 #: plugins/rodi.rtp:79 #: plugins/rodi.rtp:339 #: plugins/rodi.rtp:362 msgid "left" msgstr "ekpe" -#: js/GraphicsBlocks.js:967 -#: js/temperament.js:734 -#: js/temperament.js:933 +#: js/blocks/GraphicsBlocks.js:967 +#: js/widgets/temperament.js:875 +#: js/widgets/temperament.js:1078 #: plugins/rodi.rtp:69 #: plugins/rodi.rtp:387 msgid "back" msgstr "azụ" -#: js/GraphicsBlocks.js:976 +#: js/blocks/GraphicsBlocks.js:976 msgid "The Back block moves the mouse backward." msgstr "" -#: js/GraphicsBlocks.js:983 +#: js/blocks/GraphicsBlocks.js:983 msgid "The Back block moves the turtle backward." msgstr "" -#: js/GraphicsBlocks.js:1050 +#: js/blocks/GraphicsBlocks.js:1050 #: plugins/rodi.rtp:71 #: plugins/rodi.rtp:400 msgid "forward" msgstr "na-atụ" -#: js/GraphicsBlocks.js:1059 +#: js/blocks/GraphicsBlocks.js:1059 msgid "The Forward block moves the mouse forward." msgstr "" -#: js/GraphicsBlocks.js:1066 +#: js/blocks/GraphicsBlocks.js:1066 msgid "The Forward block moves the turtle forward." msgstr "" -#: js/GraphicsBlocks.js:1154 -#: js/GraphicsBlocks.js:1172 +#: js/blocks/GraphicsBlocks.js:1154 +#: js/blocks/GraphicsBlocks.js:1172 msgid "wrap" msgstr "" -#: js/OrnamentBlocks.js:32 -msgid "staccato factor" -msgstr "" - -#: js/OrnamentBlocks.js:108 -msgid "slur factor" -msgstr "" - -#: js/OrnamentBlocks.js:217 -#: js/OrnamentBlocks.js:309 -#.TRANS: the neighbor refers to a neighboring note, e.g., D is a neighbor of C -msgid "neighbor" -msgstr "" - -#: js/OrnamentBlocks.js:293 -msgid "The Neighbor block rapidly switches between neighboring pitches." -msgstr "" - -#: js/OrnamentBlocks.js:364 -msgid "glide" -msgstr "" - -#: js/OrnamentBlocks.js:479 -#: js/OrnamentBlocks.js:643 -msgid "slur" -msgstr "slur" - -#: js/OrnamentBlocks.js:558 -#: js/OrnamentBlocks.js:710 -#.TRANS: play each note sharply detached from the others -msgid "staccato" -msgstr "staccato" - -#: js/PenBlocks.js:24 +#: js/blocks/PenBlocks.js:30 msgid "purple" msgstr "" -#: js/PenBlocks.js:37 -#: js/SensorsBlocks.js:521 -#: plugins/rodi.rtp:219 -msgid "blue" -msgstr "" - -#: js/PenBlocks.js:50 -#: js/SensorsBlocks.js:577 -#: plugins/rodi.rtp:218 -msgid "green" -msgstr "" - -#: js/PenBlocks.js:63 +#: js/blocks/PenBlocks.js:80 msgid "yellow" msgstr "" -#: js/PenBlocks.js:76 +#: js/blocks/PenBlocks.js:96 #: plugins/nutrition.rtp:164 msgid "orange" msgstr "oroma" -#: js/PenBlocks.js:89 -#: js/SensorsBlocks.js:633 -#: plugins/rodi.rtp:217 -msgid "red" -msgstr "" - -#: js/PenBlocks.js:102 +#: js/blocks/PenBlocks.js:128 msgid "white" msgstr "" -#: js/PenBlocks.js:115 +#: js/blocks/PenBlocks.js:144 msgid "black" msgstr "" -#: js/PenBlocks.js:128 +#: js/blocks/PenBlocks.js:163 msgid "begin fill" msgstr "na-amalite erijueala" -#: js/PenBlocks.js:143 +#: js/blocks/PenBlocks.js:190 msgid "end fill" msgstr "ọgwụgwụ erijueala" -#: js/PenBlocks.js:159 -#: js/PenBlocks.js:386 +#: js/blocks/PenBlocks.js:212 +#: js/blocks/PenBlocks.js:560 #.TRANS: set the background color msgid "background" msgstr "ndabere" -#: js/PenBlocks.js:206 -#: js/DictActions.js:71 -#: js/DictActions.js:149 -#: js/DictActions.js:186 +#: js/blocks/PenBlocks.js:274 +#: js/turtleactions/DictActions.js:71 +#: js/turtleactions/DictActions.js:138 +#: js/turtleactions/DictActions.js:170 msgid "grey" msgstr "isi awọ" -#: js/PenBlocks.js:210 +#: js/blocks/PenBlocks.js:282 msgid "The Grey block returns the current pen grey value." msgstr "" -#: js/PenBlocks.js:243 -#: js/DictActions.js:69 -#: js/DictActions.js:147 -#: js/DictActions.js:185 +#: js/blocks/PenBlocks.js:340 +#: js/turtleactions/DictActions.js:69 +#: js/turtleactions/DictActions.js:136 +#: js/turtleactions/DictActions.js:169 msgid "shade" msgstr "ndo" -#: js/PenBlocks.js:247 +#: js/blocks/PenBlocks.js:347 msgid "The Shade block returns the current pen shade value." msgstr "" -#: js/PenBlocks.js:280 -#: js/DictActions.js:67 -#: js/DictActions.js:145 -#: js/DictActions.js:184 +#: js/blocks/PenBlocks.js:405 +#: js/turtleactions/DictActions.js:67 +#: js/turtleactions/DictActions.js:134 +#: js/turtleactions/DictActions.js:168 msgid "color" msgstr "agba" -#: js/PenBlocks.js:285 +#: js/blocks/PenBlocks.js:415 msgid "The Color block returns the current pen color." msgstr "" -#: js/PenBlocks.js:318 -#: js/DictActions.js:73 -#: js/DictActions.js:151 -#: js/DictActions.js:187 +#: js/blocks/PenBlocks.js:470 +#: js/turtleactions/DictActions.js:73 +#: js/turtleactions/DictActions.js:140 +#: js/turtleactions/DictActions.js:171 msgid "pen size" msgstr "pen size" -#: js/PenBlocks.js:322 +#: js/blocks/PenBlocks.js:474 msgid "The Pen size block returns the current pen size value." msgstr "" -#: js/PenBlocks.js:355 +#: js/blocks/PenBlocks.js:513 msgid "set font" msgstr "" -#: js/PenBlocks.js:358 +#: js/blocks/PenBlocks.js:518 msgid "The Set font block sets the font used by the Show block." msgstr "" -#: js/PenBlocks.js:391 +#: js/blocks/PenBlocks.js:567 msgid "The Background block sets the window background color." msgstr "" -#: js/PenBlocks.js:408 +#: js/blocks/PenBlocks.js:598 msgid "The Hollow line block creates a line with a hollow center." msgstr "" -#: js/PenBlocks.js:415 +#: js/blocks/PenBlocks.js:606 #.TRANS: draw a line logo has a hollow space down its center msgid "hollow line" msgstr "oghere ogbara" -#: js/PenBlocks.js:462 +#: js/blocks/PenBlocks.js:675 msgid "The Fill block fills in a shape with a color." msgstr "" -#: js/PenBlocks.js:470 +#: js/blocks/PenBlocks.js:684 #.TRANS: fill in as a solid color msgid "fill" msgstr "imeju " -#: js/PenBlocks.js:527 +#: js/blocks/PenBlocks.js:761 #.TRANS: raise up the pen so logo it does not draw when it is moved msgid "pen up" msgstr "pen elu" -#: js/PenBlocks.js:532 +#: js/blocks/PenBlocks.js:768 msgid "The Pen-up block raises the pen so that it does not draw." msgstr "" -#: js/PenBlocks.js:552 +#: js/blocks/PenBlocks.js:802 #.TRANS: put down the pen so logo it draws when it is moved msgid "pen down" msgstr "pen ala" -#: js/PenBlocks.js:557 +#: js/blocks/PenBlocks.js:810 msgid "The Pen-down block lowers the pen so that it draws." msgstr "" -#: js/PenBlocks.js:577 +#: js/blocks/PenBlocks.js:844 #.TRANS: set the width of the line drawn by the pen msgid "set pen size" msgstr "set pen size" -#: js/PenBlocks.js:583 +#: js/blocks/PenBlocks.js:854 msgid "The Set-pen-size block changes the size of the pen." msgstr "" -#: js/PenBlocks.js:623 +#: js/blocks/PenBlocks.js:913 #.TRANS: set degree of translucence of the pen color msgid "set translucency" msgstr "" -#: js/PenBlocks.js:627 +#: js/blocks/PenBlocks.js:921 msgid "The Set translucency block changes the opacity of the pen." msgstr "" -#: js/PenBlocks.js:668 +#: js/blocks/PenBlocks.js:981 msgid "set hue" msgstr "set agba" -#: js/PenBlocks.js:672 +#: js/blocks/PenBlocks.js:989 msgid "The Set hue block changes the color of the pen." msgstr "" -#: js/PenBlocks.js:711 +#: js/blocks/PenBlocks.js:1047 msgid "set shade" msgstr "set ndo" -#: js/PenBlocks.js:717 +#: js/blocks/PenBlocks.js:1057 msgid "The Set-shade block changes the pen color from dark to light." msgstr "" -#: js/PenBlocks.js:757 +#: js/blocks/PenBlocks.js:1111 #.TRANS: set the level of vividness of the pen color msgid "set grey" msgstr "set isi awọ" -#: js/PenBlocks.js:761 +#: js/blocks/PenBlocks.js:1119 msgid "The Set grey block changes the vividness of the pen color." msgstr "" -#: js/PenBlocks.js:800 +#: js/blocks/PenBlocks.js:1172 msgid "set color" msgstr "set agba" -#: js/PenBlocks.js:806 +#: js/blocks/PenBlocks.js:1182 msgid "The Set-color block changes the pen color." msgstr "" -#: js/VolumeBlocks.js:35 -msgid "synth volume" -msgstr "" - -#: js/VolumeBlocks.js:39 -msgid "The Synth volume block returns the current volume of the current synthesizer." -msgstr "" - -#: js/VolumeBlocks.js:47 -#: js/musicutils.js:730 -#: js/synthutils.js:56 -#.TRANS: musical instrument -msgid "piano" -msgstr "" - -#: js/VolumeBlocks.js:105 -msgid "master volume" -msgstr "" - -#: js/VolumeBlocks.js:109 -msgid "The Master volume block returns the master volume." -msgstr "" - -#: js/VolumeBlocks.js:355 -#: js/VolumeBlocks.js:524 -msgid "set synth volume" -msgstr "" - -#: js/VolumeBlocks.js:362 -#: js/VolumeBlocks.js:545 -msgid "synth" -msgstr "" - -#: js/VolumeBlocks.js:403 -#: js/VolumeBlocks.js:577 -#: js/VolumeBlocks.js:740 -#: js/VolumeActions.js:173 -msgid "Setting volume to 0." -msgstr "" - -#: js/VolumeBlocks.js:440 -msgid "Synth not found" -msgstr "" - -#: js/VolumeBlocks.js:494 -msgid "set drum volume" -msgstr "" - -#: js/VolumeBlocks.js:530 -msgid "The Set synth volume block will change the volume of a particular synth," -msgstr "" - -#: js/VolumeBlocks.js:532 -msgid "eg guitar violin snare drum etc." -msgstr "" - -#: js/VolumeBlocks.js:534 -msgid "The default volume is 50." -msgstr "" - -#: js/VolumeBlocks.js:536 -msgid "The range is 0 for silence to 100 for full volume." -msgstr "" - -#: js/VolumeBlocks.js:597 -msgid "set panning" -msgstr "" - -#: js/VolumeBlocks.js:603 -msgid "The Set Panning block sets the panning for all synthesizers." -msgstr "" - -#: js/VolumeBlocks.js:625 -msgid "Warning: Sound is coming out from only the left or right side." -msgstr "" - -#: js/VolumeBlocks.js:647 -#: js/VolumeBlocks.js:695 -msgid "set master volume" -msgstr "" - -#: js/VolumeBlocks.js:653 -msgid "The Set master volume block sets the volume for all synthesizers." -msgstr "" - -#: js/VolumeBlocks.js:784 -msgid "The Set relative volume block changes the volume of the contained notes." -msgstr "" - -#: js/VolumeBlocks.js:791 -msgid "set relative volume" -msgstr "" - -#: js/VolumeBlocks.js:857 -msgid "decrescendo" -msgstr "" - -#: js/VolumeBlocks.js:921 -msgid "crescendo" -msgstr "crescendo" - -#: js/ToneBlocks.js:34 -msgid "oscillator" -msgstr "" - -#: js/ToneBlocks.js:44 -#: js/timbre.js:1562 -#.TRANS: Partials refers to the number of sine waves combined into the sound. -msgid "partials" -msgstr "" - -#: js/ToneBlocks.js:76 -msgid "You are adding multiple oscillator blocks." -msgstr "" - -#: js/ToneBlocks.js:144 -#: js/timbre.js:1225 -#.TRANS: a duo synthesizer combines a synth with a sequencer -msgid "duo synth" -msgstr "" - -#: js/ToneBlocks.js:149 -msgid "The Duo synth block is a duo-frequency modulator used to define a timbre." -msgstr "" +#: js/blocks/PitchBlocks.js:141 +#.TRANS: musical transposition (adjustment of pitch up or down) +msgid "transposition" +msgstr "transposition" -#: js/ToneBlocks.js:157 -#: js/timbre.js:1476 -msgid "vibrato rate" +#: js/blocks/PitchBlocks.js:168 +#.TRANS: step down one note in current musical scale +msgid "scalar step down" msgstr "" -#: js/ToneBlocks.js:157 -msgid "vibrato intensity" +#: js/blocks/PitchBlocks.js:172 +msgid "The Scalar step down block returns the number of semi-tones down to the previous note in the current key and mode." msgstr "" -#: js/ToneBlocks.js:185 -#: js/timbre.js:1221 -#.TRANS: AM (amplitude modulation) synthesizer -msgid "AM synth" +#: js/blocks/PitchBlocks.js:190 +#.TRANS: step up one note in current musical scale +msgid "scalar step up" msgstr "" -#: js/ToneBlocks.js:189 -msgid "The AM synth block is an amplitude modulator used to define a timbre." +#: js/blocks/PitchBlocks.js:194 +msgid "The Scalar step up block returns the number of semi-tones up to the next note in the current key and mode." msgstr "" -#: js/ToneBlocks.js:224 -#: js/timbre.js:1223 -#.TRANS: FM (frequency modulation) synthesizer -msgid "FM synth" +#: js/blocks/PitchBlocks.js:212 +#.TRANS: the change measured in half-steps between the current pitch and the previous pitch +msgid "change in pitch" msgstr "" -#: js/ToneBlocks.js:228 -msgid "The FM synth block is a frequency modulator used to define a timbre." +#: js/blocks/PitchBlocks.js:216 +msgid "The Change in pitch block is the difference (in half steps) between the current pitch being played and the previous pitch played." msgstr "" -#: js/ToneBlocks.js:262 -msgid "partial" +#: js/blocks/PitchBlocks.js:243 +#.TRANS: the change measured in scale-steps between the current pitch and the previous pitch +msgid "scalar change in pitch" msgstr "" -#: js/ToneBlocks.js:265 -msgid "The Partial block is used to specify a weight for a specific partial harmonic." +#: js/blocks/PitchBlocks.js:250 +#: js/blocks/PitchBlocks.js:432 +#: js/blocks/PitchBlocks.js:1667 +#: js/turtleactions/DictActions.js:89 +#: js/widgets/temperament.js:610 +#: js/widgets/temperament.js:614 +#: js/widgets/temperament.js:855 +#.TRANS: convert current note to piano key (1-88) +#.TRANS: a mapping of pitch to the 88 piano keys +msgid "pitch number" msgstr "" -#: js/ToneBlocks.js:284 -#.TRANS: partials are weighted components in a harmonic series -msgid "Partial weight must be between 0 and 1." +#: js/blocks/PitchBlocks.js:256 +msgid "The Pitch number block is the value of the pitch of the note currently being played." msgstr "" -#: js/ToneBlocks.js:297 -#.TRANS: partials are weighted components in a harmonic series -msgid "Partial block should be used inside of a Weighted-partials block." +#: js/blocks/PitchBlocks.js:329 +#: js/blocks/PitchBlocks.js:433 +#.TRANS: the current pitch expressed in Hertz +msgid "pitch in hertz" msgstr "" -#: js/ToneBlocks.js:325 -#.TRANS: partials are weighted components in a harmonic series -msgid "weighted partials" +#: js/blocks/PitchBlocks.js:334 +msgid "The Pitch in Hertz block is the value in Hertz of the pitch of the note currently being played." msgstr "" -#: js/ToneBlocks.js:383 -msgid "The Harmonic block will add harmonics to the contained notes." +#: js/blocks/PitchBlocks.js:367 +#: js/turtleactions/DictActions.js:87 +msgid "current pitch" msgstr "" -#: js/ToneBlocks.js:390 -#.TRANS: A harmonic is an overtone. -msgid "harmonic" +#: js/blocks/PitchBlocks.js:373 +msgid "The Current Pitch block is used with the Pitch Converter block. In the example above, current pitch, sol 4, is displayed as 392 hertz." msgstr "" -#: js/ToneBlocks.js:431 -msgid "The Distortion block adds distortion to the pitch." +#: js/blocks/PitchBlocks.js:410 +msgid "This block converts the pitch value of the last note played into different formats such as hertz, letter name, pitch number, et al." msgstr "" -#: js/ToneBlocks.js:438 -#: js/timbre.js:2100 -#.TRANS: distortion is an alteration in the sound -msgid "distortion" +#: js/blocks/PitchBlocks.js:434 +msgid "alphabet" msgstr "" -#: js/ToneBlocks.js:487 -msgid "The Tremolo block adds a wavering effect." +#: js/blocks/PitchBlocks.js:436 +#.TRANS: Translate as "alphabet class" +msgid "letter class" msgstr "" -#: js/ToneBlocks.js:495 -#: js/timbre.js:2092 -#.TRANS: a wavering effect in a musical tone -msgid "tremolo" +#: js/blocks/PitchBlocks.js:437 +msgid "solfege class" msgstr "" -#: js/ToneBlocks.js:500 -#: js/ToneBlocks.js:569 -#: js/ToneBlocks.js:630 -#: js/ToneBlocks.js:689 -#: js/timbre.js:2134 -#: js/timbre.js:2222 -#: js/timbre.js:2317 -#: js/timbre.js:2419 -#.TRANS: rate at which tremolo wavers -msgid "rate" +#: js/blocks/PitchBlocks.js:438 +msgid "staff y" msgstr "" -#: js/ToneBlocks.js:502 -#: js/ToneBlocks.js:630 -#: js/timbre.js:2137 -#: js/timbre.js:2328 -#.TRANS: amplitude of tremolo waver -msgid "depth" +#: js/blocks/PitchBlocks.js:439 +msgid "solfege syllable" msgstr "" -#: js/ToneBlocks.js:559 -msgid "The Phaser block adds a sweeping sound." +#: js/blocks/PitchBlocks.js:440 +msgid "pitch class" msgstr "" -#: js/ToneBlocks.js:566 -#: js/timbre.js:2098 -#.TRANS: alter the phase of the sound -msgid "phaser" +#: js/blocks/PitchBlocks.js:441 +msgid "scalar class" msgstr "" -#: js/ToneBlocks.js:569 -#: js/timbre.js:2422 -msgid "octaves" +#: js/blocks/PitchBlocks.js:443 +msgid "nth degree" msgstr "" -#: js/ToneBlocks.js:569 -#: js/timbre.js:2425 -msgid "base frequency" +#: js/blocks/PitchBlocks.js:444 +msgid "pitch to shade" msgstr "" -#: js/ToneBlocks.js:619 -msgid "The Chorus block adds a chorus effect." +#: js/blocks/PitchBlocks.js:445 +msgid "pitch to color" msgstr "" -#: js/ToneBlocks.js:627 -#: js/timbre.js:2096 -#.TRANS: musical effect to simulate a choral sound -msgid "chorus" +#: js/blocks/PitchBlocks.js:629 +#: js/widgets/musickeyboard.js:735 +#.TRANS: MIDI is a technical standard for electronic music +msgid "MIDI" msgstr "" -#: js/ToneBlocks.js:630 -msgid "delay" +#: js/blocks/PitchBlocks.js:642 +#.TRANS: set an offset associated with the numeric piano keyboard mapping +msgid "set pitch number offset" msgstr "" -#: js/ToneBlocks.js:678 -msgid "The Vibrato block adds a rapid, slight variation in pitch." +#: js/blocks/PitchBlocks.js:645 +msgid "The Set pitch number offset block is used to set the offset for mapping pitch numbers to pitch and octave." msgstr "" -#: js/ToneBlocks.js:686 -#: js/timbre.js:2094 -#.TRANS: a rapid, slight variation in pitch -msgid "vibrato" +#: js/blocks/PitchBlocks.js:679 +#.TRANS: convert piano key number (1-88) to pitch +msgid "number to pitch" msgstr "" -#: js/ToneBlocks.js:689 -#: js/timbre.js:2221 -msgid "intensity" +#: js/blocks/PitchBlocks.js:682 +msgid "The Number to pitch block will convert a pitch number to a pich name." msgstr "" -#: js/ToneBlocks.js:733 -#.TRANS: select synthesizer -msgid "set synth" +#: js/blocks/PitchBlocks.js:715 +#.TRANS: convert piano key number (1-88) to octave +msgid "number to octave" msgstr "" -#: js/ToneBlocks.js:804 -msgid "synth name" +#: js/blocks/PitchBlocks.js:717 +msgid "The Number to octave block will convert a pitch number to an octave." msgstr "" -#: js/ToneBlocks.js:842 -msgid "set default instrument" +#: js/blocks/PitchBlocks.js:726 +msgid "y to pitch" msgstr "" -#: js/ToneBlocks.js:895 -#: js/ToneBlocks.js:943 -#.TRANS: set the characteristics of a custom instrument -msgid "set instrument" +#: js/blocks/PitchBlocks.js:729 +msgid "Y to pitch block will convert a staff y position to corresponding pitch notation." msgstr "" -#: js/ToneBlocks.js:898 -#: js/ToneBlocks.js:926 -#: js/ToneBlocks.js:932 -msgid "The Set instrument block selects a voice for the synthesizer," +#: js/blocks/PitchBlocks.js:841 +msgid "accidental selector" msgstr "" -#: js/ToneBlocks.js:900 -#: js/ToneBlocks.js:934 -msgid "eg guitar piano violin or cello." +#: js/blocks/PitchBlocks.js:844 +msgid "The Accidental selector block is used to choose between double-sharp, sharp, natural, flat, and double-flat." msgstr "" -#: js/ToneBlocks.js:1015 -msgid "Import a sound file to use as an instrument and set its pitch center." +#: js/blocks/PitchBlocks.js:858 +msgid "Pitch can be specified in terms of ni dha pa ma ga re sa." msgstr "" -#: js/ToneBlocks.js:1110 -msgid "Upload a sound file to connect with the sample block." +#: js/blocks/PitchBlocks.js:872 +msgid "Pitch can be specified in terms of C D E F G A B." msgstr "" -#: js/MeterBlocks.js:34 -#.TRANS: musical meter (time signature), e.g., 4:4 -msgid "current meter" +#: js/blocks/PitchBlocks.js:884 +msgid "solfege" msgstr "" -#: js/MeterBlocks.js:85 -#.TRANS: number of beats per minute -msgid "beat factor" -msgstr "ụda ihe na-akpata" - -#: js/MeterBlocks.js:161 -msgid "The Beats per minute block returns the current beats per minute." +#: js/blocks/PitchBlocks.js:887 +msgid "Pitch can be specified in terms of do re mi fa sol la ti." msgstr "" -#: js/MeterBlocks.js:169 -#: js/status.js:152 -#.TRANS: number of beats played per minute -msgid "beats per minute2" +#: js/blocks/PitchBlocks.js:922 +msgid "The Invert block rotates any contained notes around a target note." msgstr "" -#: js/MeterBlocks.js:169 -#: js/MeterBlocks.js:1056 -#: js/MeterBlocks.js:1133 -#: js/MeterBlocks.js:1211 -#.TRANS: sets tempo by defining a beat and beats per minute -msgid "beats per minute" -msgstr "gbagwojuru kwa nkeji" +#: js/blocks/PitchBlocks.js:929 +#.TRANS: pitch inversion rotates a pitch around another pitch +msgid "invert" +msgstr "invert" -#: js/MeterBlocks.js:233 -#.TRANS: count of current musical measure in meter -msgid "measure count" +#: js/blocks/PitchBlocks.js:968 +#.TRANS: pitch inversion rotates a pitch around another pitch (odd number) +msgid "invert (odd)" msgstr "" -#: js/MeterBlocks.js:241 -msgid "The Measure count block returns the current measure." +#: js/blocks/PitchBlocks.js:1001 +#.TRANS: pitch inversion rotates a pitch around another pitch (even number) +msgid "invert (even)" msgstr "" -#: js/MeterBlocks.js:290 -#.TRANS: count of current beat in the meter -msgid "beat count" +#: js/blocks/PitchBlocks.js:1022 +#.TRANS: register is the octave of the current pitch +msgid "register" msgstr "" -#: js/MeterBlocks.js:300 -#: js/MeterBlocks.js:311 -#: js/MeterBlocks.js:565 -#: js/MeterBlocks.js:576 -msgid "The Beat count block is the number of the current beat," +#: js/blocks/PitchBlocks.js:1026 +msgid "The Register block provides an easy way to modify the register (octave) of the notes that follow it." msgstr "" -#: js/MeterBlocks.js:313 -#: js/MeterBlocks.js:578 -msgid "eg 1, 2, 3, or 4." +#: js/blocks/PitchBlocks.js:1047 +#.TRANS: cents are units used to specify the ratio between pitches. There are 100 cents between successive notes. +msgid "50 cents" msgstr "" -#: js/MeterBlocks.js:368 -#.TRANS: count the number of notes -msgid "sum note values" +#: js/blocks/PitchBlocks.js:1102 +msgid "The Semi-tone transposition block will shift the pitches contained inside Note blocks up (or down) by half steps." msgstr "" -#: js/MeterBlocks.js:376 -#: js/MeterBlocks.js:440 -msgid "The Note counter block can be used to count the number of contained notes." +#: js/blocks/PitchBlocks.js:1104 +msgid "In the example shown above, sol is shifted up to sol#." msgstr "" -#: js/MeterBlocks.js:432 -#.TRANS: count the number of notes -msgid "note counter" +#: js/blocks/PitchBlocks.js:1110 +#.TRANS: adjust the amount of shift (up or down) of a pitch +msgid "semi-tone transpose" msgstr "" -#: js/MeterBlocks.js:496 -#.TRANS: number of whole notes that have been played -msgid "whole notes played" +#: js/blocks/PitchBlocks.js:1143 +msgid "The Transpose by Ratio block will shift the pitches contained inside Note blocks up (or down) by a ratio" msgstr "" -#: js/MeterBlocks.js:505 -msgid "The Whole notes played block returns the total number of whole notes played." +#: js/blocks/PitchBlocks.js:1149 +#.TRANS: adjust the amount of shift (up or down) of a pitch +msgid "transpose by ratio" msgstr "" -#: js/MeterBlocks.js:555 -#: js/DictActions.js:83 -#.TRANS: number of notes that have been played -msgid "notes played" +#: js/blocks/PitchBlocks.js:1232 +#.TRANS: down sixth means the note is five scale degrees below current note +msgid "down sixth" msgstr "" -#: js/MeterBlocks.js:653 -msgid "The No clock block decouples the notes from the master clock." +#: js/blocks/PitchBlocks.js:1251 +#.TRANS: down third means the note is two scale degrees below current note +msgid "down third" msgstr "" -#: js/MeterBlocks.js:661 -#.TRANS: don't lock notes to master clock -msgid "no clock" -msgstr "aka ekpe" - -#: js/MeterBlocks.js:700 -msgid "on weak beat do" +#: js/blocks/PitchBlocks.js:1270 +#.TRANS: seventh means the note is the six scale degrees above current note +msgid "seventh" msgstr "" -#: js/MeterBlocks.js:705 -msgid "The On-weak-beat block lets you specify actions to take on weak (off) beats." +#: js/blocks/PitchBlocks.js:1289 +#.TRANS: sixth means the note is the five scale degrees above current note +msgid "sixth" msgstr "" -#: js/MeterBlocks.js:750 -msgid "on strong beat" +#: js/blocks/PitchBlocks.js:1308 +#.TRANS: fifth means the note is the four scale degrees above current note +msgid "fifth" msgstr "" -#: js/MeterBlocks.js:758 -msgid "The On-strong-beat block lets you specify actions to take on specified beats." +#: js/blocks/PitchBlocks.js:1328 +#.TRANS: fourth means the note is three scale degrees above current note +msgid "fourth" msgstr "" -#: js/MeterBlocks.js:769 -msgid "beat" +#: js/blocks/PitchBlocks.js:1347 +#.TRANS: third means the note is two scale degrees above current note +msgid "third" msgstr "" -#: js/MeterBlocks.js:813 -msgid "on every beat do" +#: js/blocks/PitchBlocks.js:1366 +#.TRANS: second means the note is one scale degree above current note +msgid "second" msgstr "" -#: js/MeterBlocks.js:821 -msgid "The On-every-beat block lets you specify actions to take on every beat." +#: js/blocks/PitchBlocks.js:1407 +msgid "The Scalar transposition block will shift the pitches contained inside Note blocks up (or down) the scale." msgstr "" -#: js/MeterBlocks.js:874 -msgid "on every note do" +#: js/blocks/PitchBlocks.js:1409 +msgid "In the example shown above, sol is shifted up to la." msgstr "" -#: js/MeterBlocks.js:882 -msgid "The On-every-note block lets you specify actions to take on every note." +#: js/blocks/PitchBlocks.js:1416 +#.TRANS: adjust the amount of shift (up or down) of a pitch by musical scale (scalar) steps +msgid "scalar transpose" msgstr "" -#: js/MeterBlocks.js:928 -#: js/MeterBlocks.js:999 -#.TRANS: sets tempo by defining a beat and beats per minute -msgid "master beats per minute" +#: js/blocks/PitchBlocks.js:1451 +msgid "The Accidental block is used to create sharps and flats" msgstr "" -#: js/MeterBlocks.js:952 -#: js/MeterBlocks.js:1078 -#: js/MeterBlocks.js:1135 -msgid "bpm" +#: js/blocks/PitchBlocks.js:1458 +#.TRANS: An accidental is a modification to a pitch, e.g., sharp or flat. +msgid "accidental override" msgstr "" -#: js/MeterBlocks.js:952 -#: js/MeterBlocks.js:1078 -#: js/MeterBlocks.js:1135 -msgid "beat value" +#: js/blocks/PitchBlocks.js:1581 +msgid "The Hertz block (in combination with a Number block) will play a sound at the specified frequency." msgstr "" -#: js/MeterBlocks.js:1024 -#: js/MeterBlocks.js:1167 -#: js/MeterBlocks.js:1241 -msgid "Beats per minute must be > 30." +#: js/blocks/PitchBlocks.js:1671 +msgid "The Pitch Number block will play a pitch associated by its number, e.g. 0 for C and 7 for G." msgstr "" -#: js/MeterBlocks.js:1027 -#: js/MeterBlocks.js:1170 -#: js/MeterBlocks.js:1244 -msgid "Maximum beats per minute is 1000." +#: js/blocks/PitchBlocks.js:1703 +#: js/blocks/PitchBlocks.js:1745 +#.TRANS: a numeric mapping of the notes in an octave based on the musical mode +#.TRANS: a numeric mapping of the notes in an octave based on the musical mode +msgid "nth modal pitch" msgstr "" -#: js/MeterBlocks.js:1068 -msgid "The Beats per minute block sets the number of 1/4 notes per minute." +#: js/blocks/PitchBlocks.js:1706 +msgid "n^th Modal Pitch takes the pattern of pitches in semitones for a mode and makes each point a degree of the mode," msgstr "" -#: js/MeterBlocks.js:1279 -#.TRANS: anacrusis -msgid "pickup" +#: js/blocks/PitchBlocks.js:1708 +msgid "starting from 1 and regardless of tonal framework (i.e. not always 8 notes in the octave)" msgstr "" -#: js/MeterBlocks.js:1367 -msgid "number of beats" +#: js/blocks/PitchBlocks.js:1749 +msgid "N^th Modal Pitch takes a number as an input as the n^th degree for the given mode. 0 is the first position, 1 is the second, -1 is the note before the first etc." msgstr "" -#: js/DictBlocks.js:77 -msgid "show dictionary" +#: js/blocks/PitchBlocks.js:1751 +msgid "The pitches change according to the mode specified without any need for respellings." msgstr "" -#: js/DictBlocks.js:129 -msgid "The Dictionary block returns a dictionary." +#: js/blocks/PitchBlocks.js:1790 +msgid "Scale Degree is a common convention in music. Scale Degree offers seven possible positions in the scale (1-7) and can be modified via accidentals." msgstr "" -#: js/DictBlocks.js:197 -#: js/DictBlocks.js:339 -msgid "The Get-dict block returns a value in the dictionary for a specified key." +#: js/blocks/PitchBlocks.js:1792 +msgid "Scale Degree 1 is always the first pitch in a given scale, regardless of octave." msgstr "" -#: js/DictBlocks.js:212 -#: js/DictBlocks.js:354 -#.TRANS: retrieve a value from the dictionary with a given key -msgid "get value" +#: js/blocks/PitchBlocks.js:1814 +#.TRANS: step some number of notes in current musical scale +msgid "scalar step" msgstr "" -#: js/DictBlocks.js:215 -#: js/DictBlocks.js:216 -#: js/DictBlocks.js:289 -#: js/DictBlocks.js:290 -#: js/DictBlocks.js:357 -#: js/DictBlocks.js:430 -#: js/DictBlocks.js:431 -msgid "key2" +#: js/blocks/PitchBlocks.js:1819 +msgid "The Scalar Step block (in combination with a Number block) will play the next pitch in a scale," msgstr "" -#: js/DictBlocks.js:271 -#: js/DictBlocks.js:411 -msgid "The Set-dict block sets a value in the dictionary for a specified key." +#: js/blocks/PitchBlocks.js:1821 +msgid "eg if the last note played was sol, Scalar Step 1 will play la." msgstr "" -#: js/DictBlocks.js:286 -#: js/DictBlocks.js:427 -#.TRANS: set a value in the dictionary for a given key -msgid "set value" +#: js/blocks/PitchBlocks.js:1857 +msgid "The Pitch block specifies the pitch name and octave of a note that together determine the frequency of the note." msgstr "" -#: js/ExtrasBlocks.js:33 -msgid "fraction" +#: js/blocks/ProgramBlocks.js:33 +msgid "The Load-heap-from-app block loads the heap from a web page." msgstr "" -#: js/ExtrasBlocks.js:36 -msgid "Convert a float to a fraction" +#: js/blocks/ProgramBlocks.js:44 +#.TRANS: load the heap contents from a URL +msgid "load heap from App" msgstr "" -#: js/ExtrasBlocks.js:93 -msgid "save as ABC" +#: js/blocks/ProgramBlocks.js:95 +msgid "Error parsing JSON data:" msgstr "" -#: js/ExtrasBlocks.js:96 -#: js/ExtrasBlocks.js:132 -#: js/ExtrasBlocks.js:168 -msgid "title" -msgstr "aha" - -#: js/ExtrasBlocks.js:129 -msgid "save as Lilypond" +#: js/blocks/ProgramBlocks.js:100 +msgid "404: Page not found" msgstr "" -#: js/ExtrasBlocks.js:165 -msgid "save as SVG" +#: js/blocks/ProgramBlocks.js:133 +msgid "The Save-heap-to-app block saves the heap to a web page." msgstr "" -#: js/ExtrasBlocks.js:216 -msgid "no background" -msgstr "ọ dịghị ndabere" - -#: js/ExtrasBlocks.js:219 -msgid "The No background block eliminates the background from the saved SVG output." +#: js/blocks/ProgramBlocks.js:144 +#.TRANS: save the heap contents to a URL +msgid "save heap to App" msgstr "" -#: js/ExtrasBlocks.js:247 -msgid "show blocks" -msgstr "show blocks" +#: js/blocks/ProgramBlocks.js:189 +msgid "Cannot find a valid heap for" +msgstr "" -#: js/ExtrasBlocks.js:249 -msgid "The Show blocks block shows the blocks." +#: js/blocks/ProgramBlocks.js:206 +msgid "The Load-heap block loads the heap from a file." msgstr "" -#: js/ExtrasBlocks.js:274 -msgid "hide blocks" -msgstr "hide blocks" +#: js/blocks/ProgramBlocks.js:217 +#.TRANS: load the heap from a file +msgid "load heap" +msgstr "ibu kpokọtara" -#: js/ExtrasBlocks.js:276 -msgid "The Hide blocks block hides the blocks." +#: js/blocks/ProgramBlocks.js:270 +msgid "The file you selected does not contain a valid heap." msgstr "" -#: js/ExtrasBlocks.js:305 -#: js/ExtrasBlocks.js:335 -msgid "The Space block is used to add space between blocks." +#: js/blocks/ProgramBlocks.js:275 +msgid "The loadHeap block needs a loadFile block." msgstr "" -#: js/ExtrasBlocks.js:373 -msgid "wait" -msgstr "na-eche" - -#: js/ExtrasBlocks.js:376 -msgid "The Wait block pauses the program for a specified number of seconds." +#: js/blocks/ProgramBlocks.js:291 +msgid "The Set-heap block loads the heap." msgstr "" -#: js/ExtrasBlocks.js:430 -#: plugins/facebook.rtp:30 -msgid "comment" -msgstr "ikwu" - -#: js/ExtrasBlocks.js:466 -msgid "print" -msgstr "ebipụta" +#: js/blocks/ProgramBlocks.js:340 +msgid "The block you selected does not contain a valid heap." +msgstr "" -#: js/ExtrasBlocks.js:473 -msgid "The Print block displays text at the top of the screen." +#: js/blocks/ProgramBlocks.js:343 +msgid "The Set heap block needs a heap." msgstr "" -#: js/ExtrasBlocks.js:579 -msgid "display grid" +#: js/blocks/ProgramBlocks.js:360 +msgid "The Load-dictionary block loads a dictionary from a file." msgstr "" -#: js/ExtrasBlocks.js:584 -msgid "The Display Grid Block changes the grid type" +#: js/blocks/ProgramBlocks.js:372 +#.TRANS: load a dictionary from a file +msgid "load dictionary" msgstr "" -#: js/ExtrasBlocks.js:686 -#: js/ExtrasBlocks.js:705 -#: js/ExtrasBlocks.js:728 -#: js/ExtrasBlocks.js:751 -#: js/ExtrasBlocks.js:769 -#: js/ExtrasBlocks.js:788 -#: js/ExtrasBlocks.js:807 -#: js/ExtrasBlocks.js:826 -msgid "unknown" -msgstr "amaghị" +#: js/blocks/ProgramBlocks.js:390 +#: js/blocks/ProgramBlocks.js:658 +#: js/blocks/ToneBlocks.js:1025 +msgid "file" +msgstr "" -#: js/SensorsBlocks.js:36 -msgid "The Input block prompts for keyboard input." +#: js/blocks/ProgramBlocks.js:444 +msgid "The file you selected does not contain a valid dictionary." msgstr "" -#: js/SensorsBlocks.js:46 -msgid "input" +#: js/blocks/ProgramBlocks.js:449 +msgid "The load dictionary block needs a load file block." msgstr "" -#: js/SensorsBlocks.js:64 -msgid "Input a value" +#: js/blocks/ProgramBlocks.js:466 +msgid "The Set-dictionary block loads a dictionary." msgstr "" -#: js/SensorsBlocks.js:126 -msgid "input value" +#: js/blocks/ProgramBlocks.js:477 +#.TRANS: load a dictionary from a JSON +msgid "set dictionary" msgstr "" -#: js/SensorsBlocks.js:131 -msgid "The Input-value block stores the input." +#: js/blocks/ProgramBlocks.js:546 +msgid "The block you selected does not contain a valid dictionary." msgstr "" -#: js/SensorsBlocks.js:238 -msgid "loudness" -msgstr "keuzu" +#: js/blocks/ProgramBlocks.js:550 +msgid "The set dictionary block needs a dictionary." +msgstr "" -#: js/SensorsBlocks.js:245 -msgid "The Loudness block returns the volume detected by the microphone." +#: js/blocks/ProgramBlocks.js:567 +msgid "The Save-heap block saves the heap to a file." msgstr "" -#: js/SensorsBlocks.js:300 -msgid "click" -msgstr "click" +#: js/blocks/ProgramBlocks.js:578 +#.TRANS: save the heap to a file +msgid "save heap" +msgstr "ịzọpụta kpokọtara" -#: js/SensorsBlocks.js:306 -msgid "The Click block triggers an event if a mouse has been clicked." +#: js/blocks/ProgramBlocks.js:629 +msgid "The Save-dictionary block saves a dictionary to a file." msgstr "" -#: js/SensorsBlocks.js:313 -msgid "The Click block triggers an event if a turtle has been clicked." +#: js/blocks/ProgramBlocks.js:640 +#.TRANS: save a dictionary to a file +msgid "save dictionary" msgstr "" -#: js/SensorsBlocks.js:342 -msgid "cursor over" +#: js/blocks/ProgramBlocks.js:720 +msgid "The Open palette block opens a palette." msgstr "" -#: js/SensorsBlocks.js:387 -msgid "cursor out" +#: js/blocks/ProgramBlocks.js:727 +msgid "open palette" msgstr "" -#: js/SensorsBlocks.js:433 -msgid "cursor button down" +#: js/blocks/ProgramBlocks.js:785 +msgid "The Delete block block removes a block." msgstr "" -#: js/SensorsBlocks.js:477 -msgid "cursor button up" +#: js/blocks/ProgramBlocks.js:797 +#.TRANS: Move this block to the trash. +msgid "delete block" msgstr "" -#: js/SensorsBlocks.js:638 -msgid "The Get red block returns the red component of the pixel under the mouse." +#: js/blocks/ProgramBlocks.js:861 +msgid "The Move block block moves a block." msgstr "" -#: js/SensorsBlocks.js:644 -msgid "The Get red block returns the red component of the pixel under the turtle." +#: js/blocks/ProgramBlocks.js:869 +#.TRANS: Move the position of a block on the screen. +msgid "move block" msgstr "" -#: js/SensorsBlocks.js:685 -#: plugins/rodi.rtp:216 -msgid "pixel color" -msgstr "pixel agba" - -#: js/SensorsBlocks.js:690 -msgid "The Get pixel block returns the color of the pixel under the mouse." +#: js/blocks/ProgramBlocks.js:881 +#: js/blocks/ProgramBlocks.js:1048 +msgid "block number" msgstr "" -#: js/SensorsBlocks.js:696 -msgid "The Get pixel block returns the color of the pixel under the turtle." +#: js/blocks/ProgramBlocks.js:935 +#.TRANS: Run program beginning at this block. +msgid "run block" msgstr "" -#: js/SensorsBlocks.js:758 -msgid "time" -msgstr "oge" - -#: js/SensorsBlocks.js:804 -msgid "cursor y" +#: js/blocks/ProgramBlocks.js:1025 +msgid "The Dock block block connections two blocks." msgstr "" -#: js/SensorsBlocks.js:809 -msgid "The Cursor Y block returns the vertical position of the mouse." +#: js/blocks/ProgramBlocks.js:1036 +#.TRANS: We can connect a block to another block. +msgid "connect blocks" msgstr "" -#: js/SensorsBlocks.js:845 -msgid "cursor x" +#: js/blocks/ProgramBlocks.js:1048 +msgid "target block" msgstr "" -#: js/SensorsBlocks.js:850 -msgid "The Cursor X block returns the horizontal position of the mouse." +#: js/blocks/ProgramBlocks.js:1048 +msgid "connection number" msgstr "" -#: js/SensorsBlocks.js:886 -msgid "mouse button" -msgstr "òké bọtịnụ" +#: js/blocks/ProgramBlocks.js:1140 +msgid "The Make block block creates a new block." +msgstr "" -#: js/SensorsBlocks.js:888 -msgid "The Mouse-button block returns True if the mouse button is pressed." +#: js/blocks/ProgramBlocks.js:1152 +#.TRANS: Create a new block +msgid "make block" msgstr "" -#: js/SensorsBlocks.js:934 -msgid "to ASCII" +#: js/blocks/ProgramBlocks.js:1285 +msgid "Cannot find block" msgstr "" -#: js/SensorsBlocks.js:938 -msgid "The To ASCII block converts numbers to letters." +#: js/blocks/ProgramBlocks.js:1304 +#: js/blocks/ProgramBlocks.js:1313 +msgid "Warning: block argument type mismatch" msgstr "" -#: js/SensorsBlocks.js:1005 -msgid "The Keyboard block returns computer keyboard input." +#: js/blocks/ProgramBlocks.js:1347 +msgid "The Open project block is used to open a project from a web page." msgstr "" -#: js/IntervalsActions.js:216 -msgid "Adding missing pitch number 0." +#: js/blocks/ProgramBlocks.js:1357 +msgid "open project" msgstr "" -#: js/IntervalsActions.js:224 -msgid "Ignoring pitch numbers less than zero or greater than eleven." +#: js/blocks/ProgramBlocks.js:1410 +msgid "Please enter a valid URL." msgstr "" -#: js/IntervalsActions.js:230 -msgid "Ignoring duplicate pitch numbers." +#: js/blocks/ToneBlocks.js:34 +msgid "oscillator" msgstr "" -#: js/PitchActions.js:88 -msgid "The Scalar Step Block must be used inside of a Note Block." +#: js/blocks/ToneBlocks.js:42 +#: js/blocks/WidgetBlocks.js:179 +#: js/widgets/timbre.js:1558 +#: js/widgets/timbre.js:1808 +#.TRANS: there are different types (sine, triangle, square...) of oscillators. +#.TRANS: type of filter, e.g., lowpass, highpass, etc. +msgid "type" msgstr "" -#: js/PitchActions.js:107 -msgid "The Scalar Step Block must be preceded by a Pitch Block." +#: js/blocks/ToneBlocks.js:44 +#: js/widgets/timbre.js:1562 +#.TRANS: Partials refers to the number of sine waves combined into the sound. +msgid "partials" msgstr "" -#: js/DrumActions.js:231 -msgid "Noise Block: Did you mean to use a Note block?" +#: js/blocks/ToneBlocks.js:76 +msgid "You are adding multiple oscillator blocks." msgstr "" -#: js/MeterActions.js:101 -#: js/MeterActions.js:139 -msgid "beats per minute must be greater than" +#: js/blocks/ToneBlocks.js:144 +#: js/widgets/timbre.js:1225 +#.TRANS: a duo synthesizer combines a synth with a sequencer +msgid "duo synth" msgstr "" -#: js/MeterActions.js:111 -#: js/MeterActions.js:149 -msgid "maximum" +#: js/blocks/ToneBlocks.js:149 +msgid "The Duo synth block is a duo-frequency modulator used to define a timbre." msgstr "" -#: js/MeterActions.js:117 -#: js/MeterActions.js:155 -msgid "beats per minute is" +#: js/blocks/ToneBlocks.js:157 +#: js/widgets/timbre.js:1476 +msgid "vibrato rate" msgstr "" -#: js/ToneActions.js:134 -msgid "Vibrato intensity must be between 1 and 100." +#: js/blocks/ToneBlocks.js:157 +msgid "vibrato intensity" msgstr "" -#: js/ToneActions.js:139 -msgid "Vibrato rate must be greater than 0." +#: js/blocks/ToneBlocks.js:185 +#: js/widgets/timbre.js:1221 +#.TRANS: AM (amplitude modulation) synthesizer +msgid "AM synth" msgstr "" -#: js/ToneActions.js:192 -#: js/ToneActions.js:265 -#.TRANS: Depth is the intesity of the tremolo or chorus effect. -msgid "Depth is out of range." +#: js/blocks/ToneBlocks.js:189 +msgid "The AM synth block is an amplitude modulator used to define a timbre." msgstr "" -#: js/ToneActions.js:301 -msgid "Distortion must be from 0 to 100." +#: js/blocks/ToneBlocks.js:224 +#: js/widgets/timbre.js:1223 +#.TRANS: FM (frequency modulation) synthesizer +msgid "FM synth" msgstr "" -#: js/ToneActions.js:332 -#.TRANS: partials components in a harmonic series -msgid "Partial must be greater than or equal to 0." +#: js/blocks/ToneBlocks.js:228 +msgid "The FM synth block is a frequency modulator used to define a timbre." msgstr "" -#: js/ToneActions.js:378 -#: js/ToneActions.js:417 -#: js/ToneActions.js:456 -#: js/timbre.js:782 -msgid "Unable to use synth due to existing oscillator" +#: js/blocks/ToneBlocks.js:262 +msgid "partial" msgstr "" -#: js/ToneActions.js:388 -#: js/ToneActions.js:427 -msgid "The input cannot be negative." +#: js/blocks/ToneBlocks.js:265 +msgid "The Partial block is used to specify a weight for a specific partial harmonic." msgstr "" -#: js/DictActions.js:75 -#: js/DictActions.js:153 -#: js/DictActions.js:188 -msgid "font" +#: js/blocks/ToneBlocks.js:284 +#.TRANS: partials are weighted components in a harmonic series +msgid "Partial weight must be between 0 and 1." msgstr "" -#: js/musicutils.js:363 -#: js/musicutils.js:471 -#: js/pitchdrummatrix.js:151 -#: js/musickeyboard.js:2563 -msgid "rest" +#: js/blocks/ToneBlocks.js:297 +#.TRANS: partials are weighted components in a harmonic series +msgid "Partial block should be used inside of a Weighted-partials block." msgstr "" -#: js/musicutils.js:565 -#.TRANS: ordinal number. Please keep exactly one space between each number. -msgid "1st 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th" +#: js/blocks/ToneBlocks.js:325 +#.TRANS: partials are weighted components in a harmonic series +msgid "weighted partials" msgstr "" -#: js/musicutils.js:629 -#: js/musicutils.js:812 -#: js/musicutils.js:911 -#.TRANS: augmented is a music term related to intervals -msgid "augmented" +#: js/blocks/ToneBlocks.js:383 +msgid "The Harmonic block will add harmonics to the contained notes." msgstr "" -#: js/musicutils.js:631 -#: js/musicutils.js:813 -#: js/musicutils.js:910 -#.TRANS: diminished is a music term related to intervals and mode -msgid "diminished" +#: js/blocks/ToneBlocks.js:390 +#.TRANS: A harmonic is an overtone. +msgid "harmonic" msgstr "" -#: js/musicutils.js:639 -#.TRANS: twelve semi-tone scale for music -msgid "chromatic" +#: js/blocks/ToneBlocks.js:431 +msgid "The Distortion block adds distortion to the pitch." msgstr "" -#: js/musicutils.js:640 -msgid "algerian" +#: js/blocks/ToneBlocks.js:438 +#: js/widgets/timbre.js:2100 +#.TRANS: distortion is an alteration in the sound +msgid "distortion" msgstr "" -#: js/musicutils.js:641 -msgid "spanish" +#: js/blocks/ToneBlocks.js:487 +msgid "The Tremolo block adds a wavering effect." msgstr "" -#: js/musicutils.js:643 -#.TRANS: modal scale in music -msgid "octatonic" +#: js/blocks/ToneBlocks.js:495 +#: js/widgets/timbre.js:2092 +#.TRANS: a wavering effect in a musical tone +msgid "tremolo" msgstr "" -#: js/musicutils.js:645 -#.TRANS: harmonic major scale in music -msgid "harmonic major" +#: js/blocks/ToneBlocks.js:500 +#: js/blocks/ToneBlocks.js:569 +#: js/blocks/ToneBlocks.js:630 +#: js/blocks/ToneBlocks.js:689 +#: js/widgets/timbre.js:2134 +#: js/widgets/timbre.js:2222 +#: js/widgets/timbre.js:2317 +#: js/widgets/timbre.js:2419 +#.TRANS: rate at which tremolo wavers +msgid "rate" msgstr "" -#: js/musicutils.js:647 -#.TRANS: natural minor scales in music -msgid "natural minor" +#: js/blocks/ToneBlocks.js:502 +#: js/blocks/ToneBlocks.js:630 +#: js/widgets/timbre.js:2137 +#: js/widgets/timbre.js:2328 +#.TRANS: amplitude of tremolo waver +msgid "depth" msgstr "" -#: js/musicutils.js:649 -#.TRANS: harmonic minor scale in music -msgid "harmonic minor" +#: js/blocks/ToneBlocks.js:559 +msgid "The Phaser block adds a sweeping sound." msgstr "" -#: js/musicutils.js:651 -#.TRANS: melodic minor scale in music -msgid "melodic minor" +#: js/blocks/ToneBlocks.js:566 +#: js/widgets/timbre.js:2098 +#.TRANS: alter the phase of the sound +msgid "phaser" msgstr "" -#: js/musicutils.js:655 -#.TRANS: modal scale for music -msgid "dorian" +#: js/blocks/ToneBlocks.js:569 +#: js/turtleactions/IntervalsActions.js:114 +#: js/widgets/timbre.js:2422 +msgid "octaves" msgstr "" -#: js/musicutils.js:657 -#.TRANS: modal scale for music -msgid "phrygian" +#: js/blocks/ToneBlocks.js:569 +#: js/widgets/timbre.js:2425 +msgid "base frequency" msgstr "" -#: js/musicutils.js:659 -#.TRANS: modal scale for music -msgid "lydian" +#: js/blocks/ToneBlocks.js:619 +msgid "The Chorus block adds a chorus effect." msgstr "" -#: js/musicutils.js:661 -#.TRANS: modal scale for music -msgid "mixolydian" +#: js/blocks/ToneBlocks.js:627 +#: js/widgets/timbre.js:2096 +#.TRANS: musical effect to simulate a choral sound +msgid "chorus" msgstr "" -#: js/musicutils.js:665 -#.TRANS: modal scale for music -msgid "locrian" +#: js/blocks/ToneBlocks.js:630 +msgid "delay" msgstr "" -#: js/musicutils.js:667 -#.TRANS: minor jazz scale for music -msgid "jazz minor" +#: js/blocks/ToneBlocks.js:678 +msgid "The Vibrato block adds a rapid, slight variation in pitch." msgstr "" -#: js/musicutils.js:669 -#.TRANS: bebop scale for music -msgid "bebop" +#: js/blocks/ToneBlocks.js:686 +#: js/widgets/timbre.js:2094 +#.TRANS: a rapid, slight variation in pitch +msgid "vibrato" msgstr "" -#: js/musicutils.js:670 -msgid "arabic" +#: js/blocks/ToneBlocks.js:689 +#: js/widgets/timbre.js:2221 +msgid "intensity" msgstr "" -#: js/musicutils.js:671 -msgid "byzantine" +#: js/blocks/ToneBlocks.js:733 +#.TRANS: select synthesizer +msgid "set synth" msgstr "" -#: js/musicutils.js:673 -#.TRANS: musical scale for music by Verdi -msgid "enigmatic" +#: js/blocks/ToneBlocks.js:804 +msgid "synth name" msgstr "" -#: js/musicutils.js:674 -msgid "ethiopian" +#: js/blocks/ToneBlocks.js:842 +msgid "set default instrument" msgstr "" -#: js/musicutils.js:676 -#.TRANS: Ethiopic scale for music -msgid "geez" +#: js/blocks/ToneBlocks.js:895 +#: js/blocks/ToneBlocks.js:943 +#.TRANS: set the characteristics of a custom instrument +msgid "set instrument" msgstr "" -#: js/musicutils.js:677 -msgid "hindu" +#: js/blocks/ToneBlocks.js:898 +#: js/blocks/ToneBlocks.js:926 +#: js/blocks/ToneBlocks.js:932 +msgid "The Set instrument block selects a voice for the synthesizer," msgstr "" -#: js/musicutils.js:678 -msgid "hungarian" +#: js/blocks/ToneBlocks.js:900 +#: js/blocks/ToneBlocks.js:934 +msgid "eg guitar piano violin or cello." msgstr "" -#: js/musicutils.js:680 -#.TRANS: minor Romanian scale for music -msgid "romanian minor" +#: js/blocks/ToneBlocks.js:1015 +msgid "Import a sound file to use as an instrument and set its pitch center." msgstr "" -#: js/musicutils.js:681 -msgid "spanish gypsy" +#: js/blocks/ToneBlocks.js:1110 +msgid "Upload a sound file to connect with the sample block." msgstr "" -#: js/musicutils.js:683 -#.TRANS: musical scale for Mid-Eastern music -msgid "maqam" +#: js/blocks/VolumeBlocks.js:35 +msgid "synth volume" msgstr "" -#: js/musicutils.js:685 -#.TRANS: minor blues scale for music -msgid "minor blues" +#: js/blocks/VolumeBlocks.js:39 +msgid "The Synth volume block returns the current volume of the current synthesizer." msgstr "" -#: js/musicutils.js:687 -#.TRANS: major blues scale for music -msgid "major blues" +#: js/blocks/VolumeBlocks.js:105 +msgid "master volume" msgstr "" -#: js/musicutils.js:688 -msgid "whole tone" +#: js/blocks/VolumeBlocks.js:109 +msgid "The Master volume block returns the master volume." msgstr "" -#: js/musicutils.js:690 -#.TRANS: pentatonic is a general term that means "five note scale". This scale is typically known as "minor pentatonic" -msgid "minor pentatonic" +#: js/blocks/VolumeBlocks.js:355 +#: js/blocks/VolumeBlocks.js:524 +msgid "set synth volume" msgstr "" -#: js/musicutils.js:692 -#.TRANS: pentatonic is a general term that means "five note scale". This scale is typically known as "major pentatonic" -msgid "major pentatonic" +#: js/blocks/VolumeBlocks.js:362 +#: js/blocks/VolumeBlocks.js:545 +msgid "synth" msgstr "" -#: js/musicutils.js:693 -msgid "chinese" +#: js/blocks/VolumeBlocks.js:403 +#: js/blocks/VolumeBlocks.js:577 +#: js/blocks/VolumeBlocks.js:740 +#: js/turtleactions/VolumeActions.js:173 +msgid "Setting volume to 0." msgstr "" -#: js/musicutils.js:694 -msgid "egyptian" +#: js/blocks/VolumeBlocks.js:440 +msgid "Synth not found" msgstr "" -#: js/musicutils.js:696 -#.TRANS: https://en.wikipedia.org/wiki/Hirajoshi_scale NOTE: There are three different versions of this scale -msgid "hirajoshi" +#: js/blocks/VolumeBlocks.js:494 +msgid "set drum volume" msgstr "" -#: js/musicutils.js:697 -msgid "Japan" +#: js/blocks/VolumeBlocks.js:530 +msgid "The Set synth volume block will change the volume of a particular synth," msgstr "" -#: js/musicutils.js:699 -#.TRANS: https://en.wikipedia.org/wiki/In_scale and https://en.wikipedia.org/wiki/Sakura_Sakura -msgid "in" +#: js/blocks/VolumeBlocks.js:532 +msgid "eg guitar violin snare drum etc." msgstr "" -#: js/musicutils.js:701 -#.TRANS: https://en.wikipedia.org/wiki/Miny%C5%8D_scale -msgid "minyo" +#: js/blocks/VolumeBlocks.js:534 +msgid "The default volume is 50." msgstr "" -#: js/musicutils.js:703 -#.TRANS: Italian mathematician -msgid "fibonacci" +#: js/blocks/VolumeBlocks.js:536 +msgid "The range is 0 for silence to 100 for full volume." msgstr "" -#: js/musicutils.js:708 -#: js/musicutils.js:1106 -#.TRANS: lowpass filter -msgid "lowpass" +#: js/blocks/VolumeBlocks.js:597 +msgid "set panning" msgstr "" -#: js/musicutils.js:710 -#: js/musicutils.js:1107 -#.TRANS: bandpass filter -msgid "bandpass" +#: js/blocks/VolumeBlocks.js:603 +msgid "The Set Panning block sets the panning for all synthesizers." msgstr "" -#: js/musicutils.js:712 -#: js/musicutils.js:1108 -#.TRANS: high-shelf filter -msgid "highshelf" +#: js/blocks/VolumeBlocks.js:625 +msgid "Warning: Sound is coming out from only the left or right side." msgstr "" -#: js/musicutils.js:714 -#: js/musicutils.js:1109 -#.TRANS: low-shelf filter -msgid "lowshelf" +#: js/blocks/VolumeBlocks.js:647 +#: js/blocks/VolumeBlocks.js:695 +msgid "set master volume" msgstr "" -#: js/musicutils.js:716 -#: js/musicutils.js:1110 -#.TRANS: notch-shelf filter -msgid "notch" +#: js/blocks/VolumeBlocks.js:653 +msgid "The Set master volume block sets the volume for all synthesizers." msgstr "" -#: js/musicutils.js:718 -#: js/musicutils.js:1111 -#.TRANS: all-pass filter -msgid "allpass" +#: js/blocks/VolumeBlocks.js:784 +msgid "The Set relative volume block changes the volume of the contained notes." msgstr "" -#: js/musicutils.js:720 -#: js/musicutils.js:1112 -#.TRANS: peaking filter -msgid "peaking" +#: js/blocks/VolumeBlocks.js:791 +msgid "set relative volume" msgstr "" -#: js/musicutils.js:731 -#: js/synthutils.js:58 -#.TRANS: musical instrument -msgid "violin" +#: js/blocks/VolumeBlocks.js:857 +msgid "decrescendo" msgstr "" -#: js/musicutils.js:732 -#: js/synthutils.js:60 -#.TRANS: viola musical instrument -msgid "viola" +#: js/blocks/VolumeBlocks.js:921 +msgid "crescendo" +msgstr "crescendo" + +#: js/blocks/WidgetBlocks.js:81 +#.TRANS: sound envelope (ADSR) +msgid "envelope" msgstr "" -#: js/musicutils.js:733 -#: js/synthutils.js:98 -#.TRANS: xylophone musical instrument -msgid "xylophone" +#: js/blocks/WidgetBlocks.js:89 +#.TRANS: Attack time is the time taken for initial run-up of level from nil to peak, beginning when the key is first pressed. +msgid "attack" msgstr "" -#: js/musicutils.js:734 -#: js/synthutils.js:120 -#.TRANS: vibraphone musical instrument -msgid "vibraphone" +#: js/blocks/WidgetBlocks.js:91 +#.TRANS: Decay time is the time taken for the subsequent run down from the attack level to the designated sustain level. +msgid "decay" msgstr "" -#: js/musicutils.js:735 -#: js/synthutils.js:62 -#.TRANS: musical instrument -msgid "cello" +#: js/blocks/WidgetBlocks.js:93 +#.TRANS: Sustain level is the level during the main sequence of the sound's duration, until the key is released. +msgid "sustain" msgstr "" -#: js/musicutils.js:737 -#: js/synthutils.js:66 -#.TRANS: viola musical instrument -msgid "double bass" +#: js/blocks/WidgetBlocks.js:95 +#.TRANS: Release time is the time taken for the level to decay from the sustain level to zero after the key is released. +msgid "release" msgstr "" -#: js/musicutils.js:738 -#: js/synthutils.js:68 -#: js/rhythmruler.js:2119 -#.TRANS: musical instrument -msgid "guitar" +#: js/blocks/WidgetBlocks.js:113 +msgid "Attack value should be from 0 to 100." msgstr "" -#: js/musicutils.js:739 -#: js/synthutils.js:70 -#.TRANS: musical instrument -msgid "acoustic guitar" +#: js/blocks/WidgetBlocks.js:116 +msgid "Decay value should be from 0 to 100." msgstr "" -#: js/musicutils.js:740 -#: js/synthutils.js:72 -#.TRANS: musical instrument -msgid "flute" +#: js/blocks/WidgetBlocks.js:119 +msgid "Sustain value should be from 0 to 100." msgstr "" -#: js/musicutils.js:741 -#: js/synthutils.js:74 -#.TRANS: musical instrument -msgid "clarinet" +#: js/blocks/WidgetBlocks.js:122 +msgid "Release value should be from 0-100." msgstr "" -#: js/musicutils.js:742 -#: js/synthutils.js:76 -#.TRANS: musical instrument -msgid "saxophone" +#: js/blocks/WidgetBlocks.js:140 +msgid "You are adding multiple envelope blocks." msgstr "" -#: js/musicutils.js:743 -#: js/synthutils.js:78 -#.TRANS: musical instrument -msgid "tuba" +#: js/blocks/WidgetBlocks.js:171 +#.TRANS: a filter removes some unwanted components from a signal +msgid "filter" msgstr "" -#: js/musicutils.js:744 -#: js/synthutils.js:80 -#.TRANS: musical instrument -msgid "trumpet" +#: js/blocks/WidgetBlocks.js:181 +#: js/widgets/timbre.js:1818 +#.TRANS: rolloff is the steepness of a change in frequency. +msgid "rolloff" msgstr "" -#: js/musicutils.js:745 -#: js/synthutils.js:82 -#.TRANS: musical instrument -msgid "oboe" +#: js/blocks/WidgetBlocks.js:213 +#.TRANS: rolloff is the steepness of a change in frequency. +msgid "Rolloff value should be either -12, -24, -48, or -96 decibels/octave." msgstr "" -#: js/musicutils.js:746 -#: js/synthutils.js:84 -#.TRANS: musical instrument -msgid "trombone" +#: js/blocks/WidgetBlocks.js:252 +msgid "The Temperament tool is used to define custom tuning." msgstr "" -#: js/musicutils.js:747 -#: js/synthutils.js:100 -#.TRANS: polytone synthesizer -msgid "electronic synth" +#: js/blocks/WidgetBlocks.js:332 +#: js/blocks/WidgetBlocks.js:1573 +#: js/widgets/sampler.js:547 +msgid "Upload a sample and adjust its pitch center." msgstr "" -#: js/musicutils.js:748 -#: js/synthutils.js:102 -#.TRANS: simple monotone synthesizer -msgid "simple 1" +#: js/blocks/WidgetBlocks.js:339 +#.TRANS: the speed at music is should be played. +msgid "sampler" msgstr "" -#: js/musicutils.js:749 -msgid "simple 2" +#: js/blocks/WidgetBlocks.js:517 +msgid "The Meter block opens a tool to select strong beats for the meter." msgstr "" -#: js/musicutils.js:750 -msgid "simple 3" +#: js/blocks/WidgetBlocks.js:573 +msgid "The oscilloscope block opens a tool to visualize waveforms." msgstr "" -#: js/musicutils.js:751 -msgid "simple 4" +#: js/blocks/WidgetBlocks.js:578 +msgid "oscilloscope" msgstr "" -#: js/musicutils.js:753 -#: js/synthutils.js:49 -#.TRANS: brown noise synthesizer -msgid "brown noise" +#: js/blocks/WidgetBlocks.js:645 +msgid "The Custom mode block opens a tool to explore musical mode (the spacing of the notes in a scale)." msgstr "" -#: js/musicutils.js:754 -#: js/synthutils.js:51 -#.TRANS: pink noise synthesizer -msgid "pink noise" +#: js/blocks/WidgetBlocks.js:651 +#.TRANS: musical mode is the pattern of half-steps in an octave, e.g., Major or Minor modes +msgid "custom mode" msgstr "" -#: js/musicutils.js:756 -#: js/synthutils.js:127 -#: js/rhythmruler.js:1670 -#: js/rhythmruler.js:1928 -#.TRANS: musical instrument -msgid "snare drum" +#: js/blocks/WidgetBlocks.js:700 +msgid "The Tempo block opens a metronome to visualize the beat." msgstr "" -#: js/musicutils.js:757 -#: js/synthutils.js:129 -#.TRANS: musical instrument -msgid "kick drum" +#: js/blocks/WidgetBlocks.js:762 +msgid "The Arpeggio Widget is used to compose chord sequences." msgstr "" -#: js/musicutils.js:758 -#: js/synthutils.js:131 -#.TRANS: musical instrument -msgid "tom tom" +#: js/blocks/WidgetBlocks.js:837 +msgid "The Pitch drum matrix is used to map pitches to drum sounds." msgstr "" -#: js/musicutils.js:759 -#: js/synthutils.js:133 -#.TRANS: musical instrument -msgid "floor tom" +#: js/blocks/WidgetBlocks.js:842 +#.TRANS: makes a mapping between pitches and drum sounds +msgid "pitch-drum mapper" msgstr "" -#: js/musicutils.js:760 -#: js/synthutils.js:135 -#.TRANS: musical instrument -msgid "bass drum" +#: js/blocks/WidgetBlocks.js:891 +msgid "You must have at least one pitch block and one drum block in the matrix." +msgstr "" + +#: js/blocks/WidgetBlocks.js:920 +msgid "The Pitch slider tool to is used to generate pitches at selected frequencies." msgstr "" -#: js/musicutils.js:761 -#: js/synthutils.js:137 -#.TRANS: a drum made from an inverted cup -msgid "cup drum" +#: js/blocks/WidgetBlocks.js:925 +#.TRANS: widget to generate pitches using a slider +msgid "pitch slider" msgstr "" -#: js/musicutils.js:762 -#: js/synthutils.js:139 -#.TRANS: musical instrument -msgid "darbuka drum" +#: js/blocks/WidgetBlocks.js:977 +msgid "chromatic keyboard" msgstr "" -#: js/musicutils.js:763 -#: js/synthutils.js:143 -#.TRANS: musical instrument -msgid "hi hat" +#: js/blocks/WidgetBlocks.js:1011 +#: js/blocks/WidgetBlocks.js:1077 +#.TRANS: widget to generate pitches using a slider +msgid "music keyboard" msgstr "" -#: js/musicutils.js:764 -#: js/synthutils.js:145 -#.TRANS: a small metal bell -msgid "ride bell" +#: js/blocks/WidgetBlocks.js:1062 +#: js/blocks/WidgetBlocks.js:1069 +msgid "The Music keyboard block opens a piano keyboard that can be used to create notes." msgstr "" -#: js/musicutils.js:765 -#: js/synthutils.js:147 -#.TRANS: musical instrument -msgid "cow bell" +#: js/blocks/WidgetBlocks.js:1128 +msgid "The Pitch staircase tool to is used to generate pitches from a given ratio." msgstr "" -#: js/musicutils.js:766 -msgid "japanese drum" +#: js/blocks/WidgetBlocks.js:1135 +#.TRANS: generate a progressive sequence of pitches +msgid "pitch staircase" msgstr "" -#: js/musicutils.js:767 -#: js/synthutils.js:153 -#.TRANS: musical instrument -msgid "japanese bell" +#: js/blocks/WidgetBlocks.js:1222 +msgid "The Rhythm Maker block opens a tool to create drum machines." msgstr "" -#: js/musicutils.js:768 -#: js/synthutils.js:149 -#.TRANS: musical instrument -msgid "triangle bell" +#: js/blocks/WidgetBlocks.js:1291 +msgid "G major scale" msgstr "" -#: js/musicutils.js:769 -#: js/synthutils.js:151 -#.TRANS: musical instrument -msgid "finger cymbals" +#: js/blocks/WidgetBlocks.js:1326 +msgid "C major scale" msgstr "" -#: js/musicutils.js:770 -#: js/synthutils.js:155 -#.TRANS: a musically tuned set of bells -msgid "chime" +#: js/blocks/WidgetBlocks.js:1366 +msgid "The Phrase Maker block opens a tool to create musical phrases." msgstr "" -#: js/musicutils.js:771 -#: js/synthutils.js:157 -#.TRANS: a musical instrument -msgid "gong" +#: js/blocks/WidgetBlocks.js:1373 +#.TRANS: assigns pitch to a sequence of beats to generate a melody +msgid "phrase maker" msgstr "" -#: js/musicutils.js:772 -#: js/synthutils.js:159 -#.TRANS: sound effect -msgid "clang" +#: js/blocks/WidgetBlocks.js:1444 +msgid "You must have at least one pitch block and one rhythm block in the matrix." msgstr "" -#: js/musicutils.js:773 -#: js/synthutils.js:161 -#.TRANS: sound effect -msgid "crash" +#: js/blocks/WidgetBlocks.js:1503 +msgid "The Status block opens a tool for inspecting the status of Music Blocks as it is running." msgstr "" -#: js/musicutils.js:774 -#: js/synthutils.js:163 -#.TRANS: sound effect -msgid "bottle" +#: js/blocks/WidgetBlocks.js:1580 +#.TRANS: AI-generated music +msgid "aimusic" msgstr "" -#: js/musicutils.js:775 -#: js/synthutils.js:165 -#.TRANS: sound effect -msgid "clap" +#: js/turtleactions/MeterActions.js:101 +#: js/turtleactions/MeterActions.js:139 +msgid "beats per minute must be greater than" msgstr "" -#: js/musicutils.js:776 -#: js/synthutils.js:167 -#.TRANS: sound effect -msgid "slap" +#: js/turtleactions/MeterActions.js:111 +#: js/turtleactions/MeterActions.js:149 +msgid "maximum" msgstr "" -#: js/musicutils.js:777 -#: js/synthutils.js:169 -#.TRANS: sound effect -msgid "splash" +#: js/turtleactions/MeterActions.js:117 +#: js/turtleactions/MeterActions.js:155 +msgid "beats per minute is" msgstr "" -#: js/musicutils.js:778 -#: js/synthutils.js:171 -#.TRANS: sound effect -msgid "bubbles" +#: js/turtleactions/DictActions.js:75 +#: js/turtleactions/DictActions.js:142 +#: js/turtleactions/DictActions.js:172 +msgid "font" msgstr "" -#: js/musicutils.js:779 -#: js/synthutils.js:173 -#.TRANS: sound effect -msgid "raindrop" +#: js/turtleactions/DictActions.js:255 +msgid "Dictionary with this name does not exist" msgstr "" -#: js/musicutils.js:780 -#: js/synthutils.js:175 -#.TRANS: animal sound effect -msgid "cat" +#: js/turtleactions/DictActions.js:259 +msgid "Key with this name does not exist in " msgstr "" -#: js/musicutils.js:781 -#: js/synthutils.js:177 -#.TRANS: animal sound effect -msgid "cricket" +#: js/turtleactions/DrumActions.js:227 +msgid "Noise Block: Did you mean to use a Note block?" msgstr "" -#: js/musicutils.js:782 -#: js/synthutils.js:179 -#.TRANS: animal sound effect -msgid "dog" +#: js/turtleactions/IntervalsActions.js:113 +msgid "one" msgstr "" -#: js/musicutils.js:784 -#: js/synthutils.js:86 -#.TRANS: musical instrument -msgid "banjo" +#: js/turtleactions/IntervalsActions.js:113 +msgid "two" msgstr "" -#: js/musicutils.js:785 -#: js/synthutils.js:88 -#.TRANS: musical instrument -msgid "koto" +#: js/turtleactions/IntervalsActions.js:113 +msgid "three" msgstr "" -#: js/musicutils.js:786 -#: js/synthutils.js:90 -#.TRANS: musical instrument -msgid "dulcimer" +#: js/turtleactions/IntervalsActions.js:113 +msgid "four" msgstr "" -#: js/musicutils.js:787 -#: js/synthutils.js:92 -#.TRANS: musical instrument -msgid "electric guitar" +#: js/turtleactions/IntervalsActions.js:113 +msgid "five" msgstr "" -#: js/musicutils.js:788 -#: js/synthutils.js:94 -#.TRANS: musical instrument -msgid "bassoon" +#: js/turtleactions/IntervalsActions.js:113 +msgid "six" msgstr "" -#: js/musicutils.js:789 -#: js/synthutils.js:96 -#.TRANS: musical instrument -msgid "celeste" +#: js/turtleactions/IntervalsActions.js:113 +msgid "seven" msgstr "" -#: js/musicutils.js:791 -#: js/musicutils.js:1123 -#: js/musicutils.js:1131 -#: js/temperament.js:650 -#.TRANS: musical temperament -msgid "equal" +#: js/turtleactions/IntervalsActions.js:113 +msgid "eight" msgstr "" -#: js/musicutils.js:793 -#: js/musicutils.js:1125 -#: js/musicutils.js:1133 -#.TRANS: musical temperament -msgid "Pythagorean" +#: js/turtleactions/IntervalsActions.js:113 +msgid "nine" msgstr "" -#: js/musicutils.js:795 -#: js/musicutils.js:1124 -#: js/musicutils.js:1132 -#.TRANS: musical temperament -msgid "just intonation" +#: js/turtleactions/IntervalsActions.js:119 +msgid "a" msgstr "" -#: js/musicutils.js:797 -#: js/musicutils.js:1126 -#: js/musicutils.js:1127 -#: js/musicutils.js:1134 -#: js/musicutils.js:1135 -#.TRANS: musical temperament -msgid "meantone" +#: js/turtleactions/IntervalsActions.js:120 +msgid "below" msgstr "" -#: js/musicutils.js:814 -msgid "major 7th" +#: js/turtleactions/IntervalsActions.js:124 +msgid "above" msgstr "" -#: js/musicutils.js:815 -msgid "minor 7th" +#: js/turtleactions/IntervalsActions.js:131 +msgid "plus" msgstr "" -#: js/musicutils.js:816 -msgid "dominant 7th" +#: js/turtleactions/IntervalsActions.js:139 +msgid " below" msgstr "" -#: js/musicutils.js:817 -msgid "minor-major 7th" +#: js/turtleactions/IntervalsActions.js:257 +msgid "Adding missing pitch number 0." msgstr "" -#: js/musicutils.js:818 -msgid "fully-diminished 7th" +#: js/turtleactions/IntervalsActions.js:265 +msgid "Ignoring pitch numbers less than zero or greater than eleven." msgstr "" -#: js/musicutils.js:819 -msgid "half-diminished 7th" +#: js/turtleactions/IntervalsActions.js:271 +msgid "Ignoring duplicate pitch numbers." msgstr "" -#: js/musicutils.js:4379 -#: js/musicutils.js:4416 -msgid "current" +#: js/turtleactions/ToneActions.js:134 +msgid "Vibrato intensity must be between 1 and 100." msgstr "" -#: js/musicutils.js:4382 -#: js/musicutils.js:4407 -msgid "next" +#: js/turtleactions/ToneActions.js:139 +msgid "Vibrato rate must be greater than 0." msgstr "" -#: js/musicutils.js:4385 -#: js/musicutils.js:4412 -msgid "previous" +#: js/turtleactions/ToneActions.js:192 +#: js/turtleactions/ToneActions.js:265 +#.TRANS: Depth is the intesity of the tremolo or chorus effect. +msgid "Depth is out of range." msgstr "" -#: js/synthutils.js:104 -#.TRANS: simple monotone synthesizer -msgid "simple-2" +#: js/turtleactions/ToneActions.js:301 +msgid "Distortion must be from 0 to 100." msgstr "" -#: js/synthutils.js:106 -#.TRANS: simple monotone synthesizer -msgid "simple-3" +#: js/turtleactions/ToneActions.js:332 +#.TRANS: partials components in a harmonic series +msgid "Partial must be greater than or equal to 0." msgstr "" -#: js/synthutils.js:108 -#.TRANS: simple monotone synthesizer -msgid "simple-4" +#: js/turtleactions/ToneActions.js:378 +#: js/turtleactions/ToneActions.js:417 +#: js/turtleactions/ToneActions.js:456 +#: js/widgets/timbre.js:782 +msgid "Unable to use synth due to existing oscillator" msgstr "" -#: js/synthutils.js:141 -#.TRANS: musical instrument -msgid "taiko" +#: js/turtleactions/ToneActions.js:388 +#: js/turtleactions/ToneActions.js:427 +msgid "The input cannot be negative." msgstr "" -#: js/modewidget.js:86 -#: js/modewidget.js:88 -#: js/modewidget.js:642 -#: js/modewidget.js:644 -#: js/modewidget.js:712 -#: js/modewidget.js:714 -#: js/temperament.js:2078 -#: js/rhythmruler.js:189 -#: js/rhythmruler.js:1410 -#: js/rhythmruler.js:1412 -#: js/rhythmruler.js:1435 -#: js/rhythmruler.js:1437 -#: js/meterwidget.js:89 -#: js/meterwidget.js:91 +#: js/widgets/modewidget.js:86 +#: js/widgets/modewidget.js:88 +#: js/widgets/modewidget.js:642 +#: js/widgets/modewidget.js:644 +#: js/widgets/modewidget.js:712 +#: js/widgets/modewidget.js:714 +#: js/widgets/meterwidget.js:194 +#: js/widgets/meterwidget.js:196 +#: js/widgets/temperament.js:2236 +#: js/widgets/rhythmruler.js:457 +#: js/widgets/rhythmruler.js:1790 +#: js/widgets/rhythmruler.js:1792 +#: js/widgets/rhythmruler.js:1816 +#: js/widgets/rhythmruler.js:1818 msgid "Play all" msgstr "" -#: js/modewidget.js:115 -#: js/pitchstaircase.js:641 -#: js/phrasemaker.js:339 -#: js/pitchdrummatrix.js:94 -#: js/pitchslider.js:125 -#: js/temperament.js:2083 -#: js/musickeyboard.js:530 -#: js/timbre.js:756 -#: js/meterwidget.js:124 -#: js/arpeggio.js:103 +#: js/widgets/modewidget.js:115 +#: js/widgets/meterwidget.js:229 +#: js/widgets/pitchdrummatrix.js:166 +#: js/widgets/pitchslider.js:125 +#: js/widgets/pitchstaircase.js:641 +#: js/widgets/temperament.js:2244 +#: js/widgets/timbre.js:756 +#: js/widgets/arpeggio.js:103 +#: js/widgets/musickeyboard.js:688 +#: js/widgets/phrasemaker.js:550 msgid "Save" msgstr "" -#: js/modewidget.js:121 -#: js/pitchstaircase.js:686 -#: js/phrasemaker.js:356 -#: js/pitchdrummatrix.js:109 -#: js/musickeyboard.js:534 -#: js/rhythmruler.js:269 -#: js/arpeggio.js:118 +#: js/widgets/modewidget.js:121 +#: js/widgets/pitchdrummatrix.js:181 +#: js/widgets/pitchstaircase.js:686 +#: js/widgets/arpeggio.js:118 +#: js/widgets/musickeyboard.js:696 +#: js/widgets/phrasemaker.js:567 +#: js/widgets/rhythmruler.js:601 #.TRANS: clear all subdivisions from the ruler. msgid "Clear" msgstr "" -#: js/modewidget.js:127 +#: js/widgets/modewidget.js:127 msgid "Rotate counter clockwise" msgstr "" -#: js/modewidget.js:133 +#: js/widgets/modewidget.js:133 msgid "Rotate clockwise" msgstr "" -#: js/modewidget.js:139 +#: js/widgets/modewidget.js:139 msgid "Invert" msgstr "" -#: js/modewidget.js:145 -#: js/pitchstaircase.js:678 -#: js/rhythmruler.js:258 -#: js/timbre.js:963 +#: js/widgets/modewidget.js:145 +#: js/widgets/pitchstaircase.js:678 +#: js/widgets/timbre.js:963 +#: js/widgets/rhythmruler.js:578 msgid "Undo" msgstr "Wepu" -#: js/modewidget.js:163 +#: js/widgets/modewidget.js:163 #.TRANS: A circle of notes represents the musical mode. msgid "Click in the circle to select notes for the mode." msgstr "" -#: js/modewidget.js:1017 -#: js/pitchstaircase.js:580 -#: js/phrasemaker.js:4855 -#: js/temperament.js:1754 -#: js/rhythmruler.js:1865 -#: js/rhythmruler.js:2081 -#: js/tempo.js:414 +#: js/widgets/modewidget.js:1017 +#: js/widgets/pitchstaircase.js:580 +#: js/widgets/temperament.js:1929 +#: js/widgets/tempo.js:414 +#: js/widgets/phrasemaker.js:5356 +#: js/widgets/rhythmruler.js:2254 +#: js/widgets/rhythmruler.js:2472 msgid "New action block generated!" msgstr "" -#: js/oscilloscope.js:79 -msgid "Zoom In" -msgstr "" - -#: js/oscilloscope.js:88 -msgid "Zoom Out" -msgstr "" - -#: js/pitchstaircase.js:624 -msgid "Play chord" -msgstr "" - -#: js/pitchstaircase.js:632 -msgid "Play scale" +#: js/widgets/meterwidget.js:275 +msgid "Reset" msgstr "" -#: js/pitchstaircase.js:696 -msgid "Click on a note to create a new step." +#: js/widgets/meterwidget.js:301 +msgid "Click in the circle to select strong beats for the meter." msgstr "" -#: js/phrasemaker.js:363 -msgid "Export" +#: js/widgets/oscilloscope.js:79 +msgid "Zoom In" msgstr "" -#: js/phrasemaker.js:370 -msgid "Sort" +#: js/widgets/oscilloscope.js:88 +msgid "Zoom Out" msgstr "" -#: js/phrasemaker.js:373 -#: js/musickeyboard.js:559 -msgid "Add note" +#: js/widgets/pitchdrummatrix.js:356 +#: js/widgets/pitchdrummatrix.js:752 +msgid "Click in the grid to map notes to drums." msgstr "" -#: js/phrasemaker.js:764 -msgid "Click on the table to add notes." +#: js/widgets/pitchslider.js:103 +msgid "Move up" msgstr "" -#: js/phrasemaker.js:2414 -#: js/phrasemaker.js:2543 -msgid "tuplet value" +#: js/widgets/pitchslider.js:114 +msgid "Move down" msgstr "" -#: js/pitchdrummatrix.js:270 -#: js/pitchdrummatrix.js:639 -msgid "Click in the grid to map notes to drums." +#: js/widgets/pitchslider.js:136 +msgid "Click on the slider to create a note block." msgstr "" -#: js/pitchslider.js:103 -msgid "Move up" +#: js/widgets/pitchstaircase.js:624 +msgid "Play chord" msgstr "" -#: js/pitchslider.js:114 -msgid "Move down" +#: js/widgets/pitchstaircase.js:632 +msgid "Play scale" msgstr "" -#: js/pitchslider.js:136 -msgid "Click on the slider to create a note block." +#: js/widgets/pitchstaircase.js:696 +msgid "Click on a note to create a new step." msgstr "" -#: js/temperament.js:215 +#: js/widgets/temperament.js:321 msgid "back to 2:1 octave space" msgstr "" -#: js/temperament.js:323 +#: js/widgets/temperament.js:447 msgid "edit" msgstr "" -#: js/temperament.js:330 -#: js/temperament.js:332 -#: js/temperament.js:1336 -#: js/temperament.js:1338 +#: js/widgets/temperament.js:454 +#: js/widgets/temperament.js:456 +#: js/widgets/temperament.js:1493 +#: js/widgets/temperament.js:1495 msgid "close" msgstr "" -#: js/temperament.js:423 -#: js/temperament.js:736 -#: js/temperament.js:743 -#: js/temperament.js:845 -#: js/temperament.js:935 -#: js/temperament.js:942 -#: js/temperament.js:1015 -#: js/temperament.js:1284 -#: js/temperament.js:1354 -#: js/temperament.js:1430 +#: js/widgets/temperament.js:552 +#: js/widgets/temperament.js:877 +#: js/widgets/temperament.js:884 +#: js/widgets/temperament.js:986 +#: js/widgets/temperament.js:1080 +#: js/widgets/temperament.js:1087 +#: js/widgets/temperament.js:1160 +#: js/widgets/temperament.js:1433 +#: js/widgets/temperament.js:1511 +#: js/widgets/temperament.js:1596 msgid "done" msgstr "" -#: js/temperament.js:477 -#: js/temperament.js:482 -#: js/temperament.js:918 +#: js/widgets/temperament.js:610 +#: js/widgets/temperament.js:615 +#: js/widgets/temperament.js:1063 msgid "ratio" msgstr "" -#: js/temperament.js:483 +#: js/widgets/temperament.js:616 msgid "interval" msgstr "" -#: js/temperament.js:611 +#: js/widgets/temperament.js:744 msgid "non scalar" msgstr "" -#: js/temperament.js:650 +#: js/widgets/temperament.js:787 msgid "ratios" msgstr "" -#: js/temperament.js:650 +#: js/widgets/temperament.js:787 msgid "arbitrary" msgstr "" -#: js/temperament.js:719 +#: js/widgets/temperament.js:860 msgid "number of divisions" msgstr "" -#: js/temperament.js:741 -#: js/temperament.js:858 -#: js/temperament.js:940 -#: js/temperament.js:1033 +#: js/widgets/temperament.js:882 +#: js/widgets/temperament.js:999 +#: js/widgets/temperament.js:1085 +#: js/widgets/temperament.js:1178 msgid "preview" msgstr "" -#: js/temperament.js:788 +#: js/widgets/temperament.js:929 msgid "The Number of divisions is too large." msgstr "" -#: js/temperament.js:921 +#: js/widgets/temperament.js:1066 msgid "recursion" msgstr "" -#: js/temperament.js:1450 +#: js/widgets/temperament.js:1616 msgid "The octave ratio has changed. This changes temperament significantly." msgstr "" -#: js/temperament.js:2087 +#: js/widgets/temperament.js:2248 msgid "Table" msgstr "" -#: js/temperament.js:2185 +#: js/widgets/temperament.js:2356 msgid "Add pitches" msgstr "" -#: js/musickeyboard.js:570 -msgid "Metronome" +#: js/widgets/tempo.js:78 +#: js/widgets/tempo.js:97 +#: js/widgets/tempo.js:99 +#: js/widgets/aiwidget.js:134 +#: js/widgets/aiwidget.js:136 +#: js/widgets/rhythmruler.js:681 +#: js/widgets/rhythmruler.js:683 +#: js/widgets/rhythmruler.js:1864 +#: js/widgets/rhythmruler.js:1866 +#: js/widgets/sampler.js:180 +#: js/widgets/sampler.js:182 +msgid "Pause" msgstr "" -#: js/musickeyboard.js:1296 -#: plugins/rodi.rtp:193 -msgid "duration" -msgstr "oge" +#: js/widgets/tempo.js:113 +msgid "Save tempo" +msgstr "" -#: js/musickeyboard.js:2840 -msgid "New action blocks generated!" +#: js/widgets/tempo.js:144 +msgid "speed up" msgstr "" -#: js/musickeyboard.js:2841 -msgid "New action block generated" +#: js/widgets/tempo.js:150 +msgid "slow down" msgstr "" -#: js/musickeyboard.js:2984 -#: js/musickeyboard.js:2992 -msgid "MIDI device present." +#: js/widgets/tempo.js:194 +msgid "Adjust the tempo with the buttons." msgstr "" -#: js/musickeyboard.js:2995 -msgid "No MIDI device found." +#: js/widgets/tempo.js:261 +msgid "Please enter a number between 30 and 1000" msgstr "" -#: js/musickeyboard.js:3000 -msgid "Failed to get MIDI access in browser." +#: js/widgets/tempo.js:268 +#: js/widgets/tempo.js:271 +msgid "The beats per minute must be between 30 and 1000." msgstr "" -#: js/rhythmruler.js:202 -msgid "Save rhythms" +#: js/widgets/tempo.js:287 +msgid "The beats per minute must be below 1000." msgstr "" -#: js/rhythmruler.js:222 -msgid "Save drum machine" +#: js/widgets/tempo.js:303 +msgid "The beats per minute must be above 30" msgstr "" -#: js/rhythmruler.js:263 -#.TRANS: user can tap out a rhythm by clicking on a ruler. -msgid "Tap a rhythm" +#: js/widgets/timbre.js:766 +msgid "Synthesizer" msgstr "" -#: js/rhythmruler.js:342 -#: js/rhythmruler.js:344 -#: js/rhythmruler.js:1481 -#: js/rhythmruler.js:1483 -#: js/sampler.js:110 -#: js/sampler.js:112 -#: js/tempo.js:78 -#: js/tempo.js:97 -#: js/tempo.js:99 -msgid "Pause" +#: js/widgets/timbre.js:789 +msgid "Oscillator" msgstr "" -#: js/rhythmruler.js:478 -msgid "Click on the ruler to divide it." +#: js/widgets/timbre.js:840 +msgid "Envelope" msgstr "" -#: js/rhythmruler.js:603 -#: js/rhythmruler.js:605 -#: js/rhythmruler.js:804 -#: js/rhythmruler.js:806 -#: js/rhythmruler.js:1386 -#: js/rhythmruler.js:1388 -msgid "tap a rhythm" +#: js/widgets/timbre.js:886 +#: planet/js/GlobalTag.js:50 +#.TRANS: On the Planet, we use labels to tag projects. +msgid "Effects" msgstr "" -#: js/rhythmruler.js:1084 -msgid "Maximum value of 256 has been exceeded." +#: js/widgets/timbre.js:904 +msgid "Filter" msgstr "" -#: js/sampler.js:137 -msgid "Warning: Sample is bigger than 1MB." +#: js/widgets/timbre.js:946 +msgid "Add filter" msgstr "" -#: js/sampler.js:142 -msgid "Upload failed: Sample is not a .wav file." +#: js/widgets/timbre.js:987 +msgid "Click on buttons to open the timbre design tools." msgstr "" -#: js/sampler.js:164 -msgid "A new sample block was generated." +#: js/widgets/timbre.js:1273 +msgid "harmonicity" msgstr "" -#: js/sampler.js:255 -msgid "Upload sample" +#: js/widgets/timbre.js:1340 +#: js/widgets/timbre.js:1406 +msgid "modulation index" msgstr "" -#: js/sampler.js:306 -msgid "Save sample" +#: js/widgets/timbre.js:1484 +msgid "vibrato amount" msgstr "" -#: js/sampler.js:697 -#.TRANS: The reference tone is a sound used for comparison. -msgid "reference tone" +#: js/widgets/timbre.js:1919 +msgid "Filter already present." msgstr "" -#: js/tempo.js:113 -msgid "Save tempo" +#: js/widgets/timbre.js:2322 +msgid "delay (MS)" msgstr "" -#: js/tempo.js:144 -msgid "speed up" +#: js/widgets/timbre.js:2507 +msgid "distortion amount" msgstr "" -#: js/tempo.js:150 -msgid "slow down" +#: js/widgets/aiwidget.js:180 +#: js/widgets/sampler.js:227 +msgid "Warning: Sample is bigger than 1MB." msgstr "" -#: js/tempo.js:194 -msgid "Adjust the tempo with the buttons." +#: js/widgets/aiwidget.js:539 +msgid "New start block generated" msgstr "" -#: js/tempo.js:261 -msgid "Please enter a number between 30 and 1000" +#: js/widgets/aiwidget.js:541 +msgid "MIDI loading. This may take some time depending upon the number of notes in the track" msgstr "" -#: js/tempo.js:268 -#: js/tempo.js:271 -msgid "The beats per minute must be between 30 and 1000." +#: js/widgets/aiwidget.js:551 +#: js/widgets/sampler.js:254 +msgid "Upload failed: Sample is not a .wav file." msgstr "" -#: js/tempo.js:287 -msgid "The beats per minute must be below 1000." +#: js/widgets/aiwidget.js:679 +#: js/widgets/sampler.js:432 +msgid "Save sample" msgstr "" -#: js/tempo.js:303 -msgid "The beats per minute must be above 30" +#: js/widgets/aiwidget.js:701 +msgid "AI Music" msgstr "" -#: js/timbre.js:766 -msgid "Synthesizer" +#: js/widgets/arpeggio.js:239 +msgid "Click in the grid to add steps to the arpeggio." msgstr "" -#: js/timbre.js:789 -msgid "Oscillator" +#: js/widgets/help.js:95 +#: js/widgets/help.js:125 +#: js/widgets/help.js:146 +#: js/widgets/help.js:158 +#: js/widgets/help.js:376 +#: js/widgets/help.js:391 +msgid "Take a tour" msgstr "" -#: js/timbre.js:840 -msgid "Envelope" +#: js/widgets/musickeyboard.js:725 +#: js/widgets/phrasemaker.js:584 +msgid "Add note" msgstr "" -#: js/timbre.js:886 -#: js/GlobalTag.js:50 -#.TRANS: On the Planet, we use labels to tag projects. -msgid "Effects" +#: js/widgets/musickeyboard.js:744 +msgid "Metronome" msgstr "" -#: js/timbre.js:904 -msgid "Filter" +#: js/widgets/musickeyboard.js:1549 +#: plugins/rodi.rtp:193 +msgid "duration" +msgstr "oge" + +#: js/widgets/musickeyboard.js:3179 +msgid "New action blocks generated" msgstr "" -#: js/timbre.js:946 -msgid "Add filter" +#: js/widgets/musickeyboard.js:3180 +msgid "New action block generated" msgstr "" -#: js/timbre.js:987 -msgid "Click on buttons to open the timbre design tools." +#: js/widgets/musickeyboard.js:3365 +#: js/widgets/musickeyboard.js:3373 +msgid "MIDI device present." msgstr "" -#: js/timbre.js:1273 -msgid "harmonicity" +#: js/widgets/musickeyboard.js:3376 +msgid "No MIDI device found." msgstr "" -#: js/timbre.js:1340 -#: js/timbre.js:1406 -msgid "modulation index" +#: js/widgets/musickeyboard.js:3386 +msgid "Failed to get MIDI access in browser." msgstr "" -#: js/timbre.js:1484 -msgid "vibrato amount" +#: js/widgets/phrasemaker.js:574 +msgid "Export" msgstr "" -#: js/timbre.js:1919 -msgid "Filter already present." +#: js/widgets/phrasemaker.js:581 +msgid "Sort" msgstr "" -#: js/timbre.js:2322 -msgid "delay (MS)" +#: js/widgets/phrasemaker.js:975 +msgid "Click on the table to add notes." msgstr "" -#: js/timbre.js:2507 -msgid "distortion amount" +#: js/widgets/phrasemaker.js:2677 +#: js/widgets/phrasemaker.js:2819 +msgid "tuplet value" msgstr "" -#: js/meterwidget.js:170 -msgid "Reset" +#: js/widgets/rhythmruler.js:486 +msgid "Save rhythms" msgstr "" -#: js/meterwidget.js:196 -msgid "Click in the circle to select strong beats for the meter." +#: js/widgets/rhythmruler.js:512 +msgid "Save drum machine" msgstr "" -#: js/arpeggio.js:239 -msgid "Click in the grid to add steps to the arpeggio." +#: js/widgets/rhythmruler.js:589 +#.TRANS: user can tap out a rhythm by clicking on a ruler. +msgid "Tap a rhythm" msgstr "" -#: js/ProjectStorage.js:243 -msgid "anonymous" +#: js/widgets/rhythmruler.js:817 +msgid "Click on the ruler to divide it." msgstr "" -#: js/GlobalCard.js:68 -msgid "Share" +#: js/widgets/rhythmruler.js:950 +#: js/widgets/rhythmruler.js:952 +#: js/widgets/rhythmruler.js:1152 +#: js/widgets/rhythmruler.js:1154 +#: js/widgets/rhythmruler.js:1765 +#: js/widgets/rhythmruler.js:1767 +msgid "tap a rhythm" +msgstr "" + +#: js/widgets/rhythmruler.js:1459 +msgid "Maximum value of 256 has been exceeded." +msgstr "" + +#: js/widgets/sampler.js:237 +msgid "Recording started..." msgstr "" -#: js/GlobalCard.js:74 -msgid "Flags" +#: js/widgets/sampler.js:245 +msgid "Recording complete..." msgstr "" -#: js/LocalCard.js:36 -msgid "View published project" +#: js/widgets/sampler.js:283 +msgid "A new sample block was generated." msgstr "" -#: js/LocalCard.js:42 -msgid "Publish project" +#: js/widgets/sampler.js:378 +msgid "Upload sample" msgstr "" -#: js/LocalCard.js:51 -msgid "Edit project" +#: js/widgets/sampler.js:399 +msgid "Warning: Your sample cannot be loaded because it is >1MB." msgstr "" -#: js/LocalCard.js:52 -msgid "Delete project" +#: js/widgets/sampler.js:448 +msgid "Toggle Mic" msgstr "" -#: js/LocalCard.js:53 -msgid "Download project" +#: js/widgets/sampler.js:458 +msgid "Playback" msgstr "" -#: js/LocalCard.js:55 -msgid "Duplicate project" +#: js/widgets/sampler.js:979 +#.TRANS: The reference tone is a sound used for comparison. +msgid "reference tone" msgstr "" -#: js/GlobalTag.js:28 +#: planet/js/GlobalTag.js:28 #.TRANS: On the Planet, we use labels to tag projects. msgid "All Projects" msgstr "" -#: js/GlobalTag.js:30 -#: js/StringHelper.js:37 +#: planet/js/GlobalTag.js:30 +#: planet/js/StringHelper.js:37 #.TRANS: On the Planet, we use labels to tag projects. msgid "My Projects" msgstr "" -#: js/GlobalTag.js:32 +#: planet/js/GlobalTag.js:32 #.TRANS: On the Planet, we use labels to tag projects. msgid "Examples" msgstr "" -#: js/GlobalTag.js:34 +#: planet/js/GlobalTag.js:34 #.TRANS: On the Planet, we use labels to tag projects. msgid "Music" msgstr "" -#: js/GlobalTag.js:36 +#: planet/js/GlobalTag.js:36 #.TRANS: On the Planet, we use labels to tag projects. msgid "Art" msgstr "" -#: js/GlobalTag.js:38 +#: planet/js/GlobalTag.js:38 #.TRANS: On the Planet, we use labels to tag projects. msgid "Math" msgstr "" -#: js/GlobalTag.js:40 +#: planet/js/GlobalTag.js:40 #.TRANS: On the Planet, we use labels to tag projects. msgid "Interactive" msgstr "" -#: js/GlobalTag.js:42 +#: planet/js/GlobalTag.js:42 #.TRANS: On the Planet, we use labels to tag projects. msgid "Design" msgstr "" -#: js/GlobalTag.js:44 +#: planet/js/GlobalTag.js:44 #.TRANS: On the Planet, we use labels to tag projects. msgid "Game" msgstr "" -#: js/GlobalTag.js:46 +#: planet/js/GlobalTag.js:46 #.TRANS: On the Planet, we use labels to tag projects. msgid "Media" msgstr "" -#: js/GlobalTag.js:48 +#: planet/js/GlobalTag.js:48 #.TRANS: On the Planet, we use labels to tag projects. msgid "Sensors" msgstr "" -#: js/GlobalTag.js:52 +#: planet/js/GlobalTag.js:52 #.TRANS: On the Planet, we use labels to tag projects. msgid "Code Snippet" msgstr "" -#: js/helper.js:149 -#: js/StringHelper.js:49 -msgid "Show more tags" +#: planet/js/LocalCard.js:36 +msgid "View published project" msgstr "" -#: js/helper.js:150 -msgid "Show fewer tags" +#: planet/js/LocalCard.js:42 +msgid "Publish project" +msgstr "" + +#: planet/js/LocalCard.js:51 +msgid "Edit project" +msgstr "" + +#: planet/js/LocalCard.js:52 +msgid "Delete project" +msgstr "" + +#: planet/js/LocalCard.js:53 +msgid "Download project" +msgstr "" + +#: planet/js/LocalCard.js:55 +msgid "Duplicate project" +msgstr "" + +#: planet/js/ProjectStorage.js:243 +msgid "anonymous" +msgstr "" + +#: planet/js/SaveInterface.js:34 +msgid "Open in Music Blocks" +msgstr "" + +#: planet/js/SaveInterface.js:35 +msgid "Open in Turtle Blocks" +msgstr "" + +#: planet/js/GlobalCard.js:68 +msgid "Share" +msgstr "" + +#: planet/js/GlobalCard.js:74 +msgid "Flags" +msgstr "" + +#: planet/js/GlobalPlanet.js:35 +msgid "No results found." +msgstr "" + +#: planet/js/GlobalPlanet.js:51 +msgid "Remix of" msgstr "" -#: js/ProjectViewer.js:30 +#: planet/js/GlobalPlanet.js:509 +msgid "Cannot connect to server" +msgstr "" + +#: planet/js/ProjectViewer.js:30 msgid "Error: Report could not be submitted. Try again later." msgstr "" -#: js/ProjectViewer.js:31 +#: planet/js/ProjectViewer.js:31 msgid "Thank you for reporting this project. A moderator will review the project shortly, to verify violation of the Sugar Labs Code of Conduct." msgstr "" -#: js/ProjectViewer.js:32 -#: js/StringHelper.js:62 -#: js/StringHelper.js:64 -#: js/StringHelper.js:68 +#: planet/js/ProjectViewer.js:32 +#: planet/js/StringHelper.js:62 +#: planet/js/StringHelper.js:64 +#: planet/js/StringHelper.js:68 msgid "Report Project" msgstr "" -#: js/ProjectViewer.js:33 -#: js/StringHelper.js:63 +#: planet/js/ProjectViewer.js:33 +#: planet/js/StringHelper.js:63 msgid "Project Reported" msgstr "" -#: js/ProjectViewer.js:34 +#: planet/js/ProjectViewer.js:34 msgid "Report description required" msgstr "" -#: js/ProjectViewer.js:35 +#: planet/js/ProjectViewer.js:35 msgid "Report description too long" msgstr "" -#: js/StringHelper.js:30 +#: planet/js/Publisher.js:30 +msgid "Feature unavailable - cannot connect to server. Reload Music Blocks to try again." +msgstr "" + +#: planet/js/Publisher.js:220 +#: planet/js/Publisher.js:237 +msgid "This field is required" +msgstr "" + +#: planet/js/Publisher.js:227 +msgid "Title too long" +msgstr "" + +#: planet/js/Publisher.js:244 +msgid "Description too long" +msgstr "" + +#: planet/js/Publisher.js:341 +msgid "Server Error" +msgstr "" + +#: planet/js/Publisher.js:341 +msgid "Try Again" +msgstr "" + +#: planet/js/StringHelper.js:30 msgid "Planet" msgstr "Planet" -#: js/StringHelper.js:31 +#: planet/js/StringHelper.js:31 msgid "Close Planet" msgstr "" -#: js/StringHelper.js:32 +#: planet/js/StringHelper.js:32 msgid "Open project from file" msgstr "" -#: js/StringHelper.js:34 +#: planet/js/StringHelper.js:34 msgid "Local" msgstr "" -#: js/StringHelper.js:35 +#: planet/js/StringHelper.js:35 msgid "Global" msgstr "" -#: js/StringHelper.js:36 +#: planet/js/StringHelper.js:36 msgid "Search for a project" msgstr "" -#: js/StringHelper.js:38 +#: planet/js/StringHelper.js:38 msgid "Publish Project" msgstr "" -#: js/StringHelper.js:40 +#: planet/js/StringHelper.js:40 msgid "Tags (max 5)" msgstr "" -#: js/StringHelper.js:41 -#: js/StringHelper.js:61 +#: planet/js/StringHelper.js:41 +#: planet/js/StringHelper.js:61 msgid "Description" msgstr "" -#: js/StringHelper.js:42 -#: js/StringHelper.js:67 +#: planet/js/StringHelper.js:42 +#: planet/js/StringHelper.js:67 msgid "Submit" msgstr "" -#: js/StringHelper.js:43 -#: js/StringHelper.js:47 +#: planet/js/StringHelper.js:43 +#: planet/js/StringHelper.js:47 msgid "Cancel" msgstr "" -#: js/StringHelper.js:44 +#: planet/js/StringHelper.js:44 msgid "Delete \\"\\"?" msgstr "" -#: js/StringHelper.js:45 +#: planet/js/StringHelper.js:45 msgid "Permanently delete project \\"\\"?" msgstr "" -#: js/StringHelper.js:48 +#: planet/js/StringHelper.js:48 msgid "Explore Projects" msgstr "" -#: js/StringHelper.js:50 +#: planet/js/StringHelper.js:49 +#: planet/js/helper.js:149 +msgid "Show more tags" +msgstr "" + +#: planet/js/StringHelper.js:50 msgid "Most recent" msgstr "" -#: js/StringHelper.js:51 +#: planet/js/StringHelper.js:51 msgid "Most liked" msgstr "" -#: js/StringHelper.js:52 +#: planet/js/StringHelper.js:52 msgid "Most downloaded" msgstr "" -#: js/StringHelper.js:53 +#: planet/js/StringHelper.js:53 msgid "A-Z" msgstr "" -#: js/StringHelper.js:54 +#: planet/js/StringHelper.js:54 msgid "Sort by" msgstr "" -#: js/StringHelper.js:55 +#: planet/js/StringHelper.js:55 msgid "Load More Projects" msgstr "" -#: js/StringHelper.js:56 +#: planet/js/StringHelper.js:56 msgid "Last Updated" msgstr "" -#: js/StringHelper.js:57 +#: planet/js/StringHelper.js:57 msgid "Creation Date" msgstr "" -#: js/StringHelper.js:58 +#: planet/js/StringHelper.js:58 msgid "Number of Downloads:" msgstr "" -#: js/StringHelper.js:59 +#: planet/js/StringHelper.js:59 msgid "Number of Likes:" msgstr "" -#: js/StringHelper.js:60 +#: planet/js/StringHelper.js:60 msgid "Tags:" msgstr "" -#: js/StringHelper.js:65 +#: planet/js/StringHelper.js:65 msgid "Report projects which violate the Sugar Labs Code of Conduct." msgstr "" -#: js/StringHelper.js:66 +#: planet/js/StringHelper.js:66 msgid "Reason for reporting project" msgstr "" -#: js/StringHelper.js:70 +#: planet/js/StringHelper.js:70 msgid "Download as File" msgstr "" -#: js/GlobalPlanet.js:35 -msgid "No results found." -msgstr "" - -#: js/GlobalPlanet.js:51 -msgid "Remix of" -msgstr "" - -#: js/GlobalPlanet.js:509 -msgid "Cannot connect to server" -msgstr "" - -#: js/Publisher.js:30 -msgid "Feature unavailable - cannot connect to server. Reload Music Blocks to try again." -msgstr "" - -#: js/Publisher.js:218 -#: js/Publisher.js:235 -msgid "This field is required" -msgstr "" - -#: js/Publisher.js:225 -msgid "Title too long" +#: planet/js/helper.js:150 +msgid "Show fewer tags" msgstr "" -#: js/Publisher.js:242 -msgid "Description too long" -msgstr "" +#: plugins/accelerometer.rtp:48 +msgid "motion x" +msgstr "ngagharị x" -#: js/Publisher.js:339 -msgid "Server Error" -msgstr "" +#: plugins/accelerometer.rtp:56 +msgid "motion y" +msgstr "ngagharị y" -#: js/Publisher.js:339 -msgid "Try Again" -msgstr "" +#: plugins/accelerometer.rtp:64 +msgid "motion z" +msgstr "ngagharị z" -#: js/SaveInterface.js:34 -msgid "Open in Music Blocks" -msgstr "" +#: plugins/facebook.rtp:27 +msgid "publish" +msgstr "ebipụta" -#: js/SaveInterface.js:35 -msgid "Open in Turtle Blocks" -msgstr "" +#: plugins/maths.rtp:62 +msgid "power" +msgstr "ike" -#: plugins/weather.rtp:68 -#: plugins/weather.rtp:97 -msgid "Days ahead must be in the range of -1 to 5." -msgstr "" +#: plugins/maths.rtp:62 +msgid "base" +msgstr "isi" -#: plugins/weather.rtp:122 -msgid "forecast" -msgstr "amụma" +#: plugins/maths.rtp:62 +msgid "exp" +msgstr "exp" -#: plugins/weather.rtp:123 -#: plugins/weather.rtp:137 -#: plugins/weather.rtp:150 -msgid "city" -msgstr "obodo" +#: plugins/maths.rtp:99 +msgid "floor" +msgstr "ahla" -#: plugins/weather.rtp:124 -#: plugins/weather.rtp:138 -#: plugins/weather.rtp:151 -msgid "day" -msgstr "ụbọchị" +#: plugins/maths.rtp:104 +msgid "ceiling" +msgstr "n'uko" -#: plugins/weather.rtp:136 -msgid "high" -msgstr "elu" +#: plugins/maths.rtp:109 +msgid "to degrees" +msgstr " to degrees" -#: plugins/weather.rtp:149 -msgid "low" -msgstr "ala" +#: plugins/maths.rtp:114 +msgid "to radians" +msgstr "to oradians" #: plugins/nutrition.rtp:104 msgid "get calories" @@ -9467,45 +7755,6 @@ msgstr "kuki" msgid "water" msgstr "imiri" -#: plugins/maths.rtp:62 -#: plugins/examples.rtp:93 -msgid "power" -msgstr "ike" - -#: plugins/maths.rtp:62 -#: plugins/examples.rtp:93 -msgid "base" -msgstr "isi" - -#: plugins/maths.rtp:62 -#: plugins/examples.rtp:93 -msgid "exp" -msgstr "exp" - -#: plugins/maths.rtp:99 -#: plugins/examples.rtp:130 -msgid "floor" -msgstr "ahla" - -#: plugins/maths.rtp:104 -#: plugins/examples.rtp:135 -msgid "ceiling" -msgstr "n'uko" - -#: plugins/maths.rtp:109 -#: plugins/examples.rtp:140 -msgid "to degrees" -msgstr " to degrees" - -#: plugins/maths.rtp:114 -#: plugins/examples.rtp:145 -msgid "to radians" -msgstr "to oradians" - -#: plugins/facebook.rtp:27 -msgid "publish" -msgstr "ebipụta" - #: plugins/rodi.rtp:172 msgid "blink" msgstr "itabi anya" @@ -9534,17 +7783,68 @@ msgstr "oku infrared (n'aka nri)" msgid "move" msgstr "ije" -#: plugins/accelerometer.rtp:48 -msgid "motion x" -msgstr "ngagharị x" +#: plugins/weather.rtp:68 +#: plugins/weather.rtp:97 +msgid "Days ahead must be in the range of -1 to 5." +msgstr "" -#: plugins/accelerometer.rtp:56 -msgid "motion y" -msgstr "ngagharị y" +#: plugins/weather.rtp:122 +msgid "forecast" +msgstr "amụma" -#: plugins/accelerometer.rtp:64 -msgid "motion z" -msgstr "ngagharị z" +#: plugins/weather.rtp:123 +#: plugins/weather.rtp:137 +#: plugins/weather.rtp:150 +msgid "city" +msgstr "obodo" + +#: plugins/weather.rtp:124 +#: plugins/weather.rtp:138 +#: plugins/weather.rtp:151 +msgid "day" +msgstr "ụbọchị" + +#: plugins/weather.rtp:136 +msgid "high" +msgstr "elu" + +#: plugins/weather.rtp:149 +msgid "low" +msgstr "ala" + +#~msgid ""Toggle Fullscreen" +#~msgstr ""Gbanwee ihuenyo zuru oke" + +#: js/toolbar.js:70 + +#: js/toolbar.js:130 + +#: js/toolbar.js:194 + +#: js/toolbar.js:249 + +#~msgid "Toggle JavaScript Editor" +#~msgstr "" + +#: js/EnsembleBlocks.js:643 + +#~msgid "The Turrle pitch block returns the current pitch number being played by the specified turtle." +#~msgstr "" + +#: js/PitchActions.js:88 + +#~msgid "The Scalar Step Block must be used inside of a Note Block." +#~msgstr "" + +#: js/PitchActions.js:107 + +#~msgid "The Scalar Step Block must be preceded by a Pitch Block." +#~msgstr "" + +#: js/musickeyboard.js:2840 + +#~msgid "New action blocks generated!" +#~msgstr "" #: js/toolbar.js:110 @@ -9886,11 +8186,6 @@ msgstr "ngagharị z" #~msgid "The Time block returns the number of seconds that the program has been running." #~msgstr "" -#: js/help.js:95 - -#~msgid "Take a tour" -#~msgstr "" - #: js/GlobalCard.js:48 #~msgid "More Details" @@ -12772,11 +11067,6 @@ msgstr "ngagharị z" #~msgid "The Repeat block will repeat the contained blocks. In this example, the note will be played 4 times." #~msgstr "" -#: js/musicutils.js:254 - -#~msgid "Custom" -#~msgstr "" - #: js/basicblocks.js:4785 #~msgid "Rhythm" diff --git a/po/id.po b/po/id.po index 684b5db985..955596da82 100644 --- a/po/id.po +++ b/po/id.po @@ -2129,7213 +2129,7622 @@ #: js/planetInterface.js:104 #: js/planetInterface.js:104 #: js/planetInterface.js:104 +#: js/SaveInterface.js:59 +#: js/SaveInterface.js:61 +#: js/SaveInterface.js:93 +msgid "Music Blocks Project" +msgstr "" + +#: js/SaveInterface.js:63 +msgid "This project was created in Music Blocks" +msgstr "" + +#: js/SaveInterface.js:67 +msgid "Music Blocks is a Free/Libre Software application." +msgstr "" + +#: js/SaveInterface.js:69 +msgid "The source code can be accessed at" +msgstr "" + +#: js/SaveInterface.js:72 +msgid "For more information, please consult the" +msgstr "" + +#: js/SaveInterface.js:76 +#: js/turtledefs.js:795 +msgid "Music Blocks Guide" +msgstr "" + +#: js/SaveInterface.js:83 +msgid "Alternatively, open the file in Music Blocks using the Load project button." +msgstr "" + +#: js/SaveInterface.js:85 +msgid "Project Code" +msgstr "" + +#: js/SaveInterface.js:87 +msgid "This code stores data about the blocks in a project." +msgstr "" + +#: js/SaveInterface.js:89 +msgid "Show" +msgstr "" + +#: js/SaveInterface.js:91 +msgid "Hide" +msgstr "" + +#: js/SaveInterface.js:131 +#: js/SaveInterface.js:204 +#: js/SaveInterface.js:262 +#: js/SaveInterface.js:389 +#: js/SaveInterface.js:417 +#: js/activity.js:4884 +#: planet/js/ProjectStorage.js:27 +#: planet/js/GlobalPlanet.js:467 +#: planet/js/GlobalPlanet.js:469 +#: planet/js/GlobalPlanet.js:495 +#.TRANS: default project title when saving as Lilypond +msgid "My Project" +msgstr "" + +#: js/SaveInterface.js:197 +#: planet/js/SaveInterface.js:58 +msgid "No description provided" +msgstr "" + +#: js/SaveInterface.js:332 +msgid "Your recording is in progress." +msgstr "" + +#: js/SaveInterface.js:401 +#.TRANS: File name prompt for save as Lilypond +msgid "File name" +msgstr "" + +#: js/SaveInterface.js:403 +#: planet/js/StringHelper.js:39 +#.TRANS: Project title prompt for save as Lilypond +msgid "Project title" +msgstr "" + +#: js/SaveInterface.js:405 +#.TRANS: Project title prompt for save as Lilypond +msgid "Project author" +msgstr "" + +#: js/SaveInterface.js:407 +#.TRANS: MIDI prompt for save as Lilypond +msgid "Include MIDI output?" +msgstr "" + +#: js/SaveInterface.js:409 +#.TRANS: Guitar prompt for save as Lilypond +msgid "Include guitar tablature output?" +msgstr "" + +#: js/SaveInterface.js:411 +#.TRANS: Lilypond is a scripting language for generating sheet music +msgid "Save as Lilypond" +msgstr "" + +#: js/SaveInterface.js:426 +#: js/blocks/EnsembleBlocks.js:75 +#: js/blocks/EnsembleBlocks.js:154 +#: js/blocks/EnsembleBlocks.js:216 +#: js/blocks/EnsembleBlocks.js:302 +#: js/blocks/EnsembleBlocks.js:348 +#: js/blocks/EnsembleBlocks.js:389 +#: js/blocks/EnsembleBlocks.js:441 +#: js/blocks/EnsembleBlocks.js:490 +#: js/blocks/EnsembleBlocks.js:536 +#: js/blocks/EnsembleBlocks.js:583 +#: js/blocks/EnsembleBlocks.js:637 +#: js/blocks/EnsembleBlocks.js:753 +#: js/blocks/EnsembleBlocks.js:840 +#: js/blocks/EnsembleBlocks.js:899 +#: js/blocks/EnsembleBlocks.js:942 +#: js/blocks/EnsembleBlocks.js:1212 +#: js/blocks/EnsembleBlocks.js:1280 +#.TRANS: default project author when saving as Lilypond +msgid "Mr. Mouse" +msgstr "" + +#: js/SaveInterface.js:573 +msgid "The Lilypond code is copied to clipboard. You can paste it here: " +msgstr "" + +#: js/languagebox.js:198 +msgid "Refresh your browser to change your language preference." +msgstr "" + +#: js/languagebox.js:218 +msgid "Music Blocks is already set to this language." +msgstr "" + +#: js/planetInterface.js:131 msgid "project undefined" msgstr "" -#: js/logo.js:61 -msgid "Not a valid pitch name" +#: js/rubrics.js:523 +#: js/turtledefs.js:119 +#: js/turtledefs.js:221 +#: js/blocks/RhythmBlockPaletteBlocks.js:52 +#: js/blocks/RhythmBlockPaletteBlocks.js:234 +#: js/blocks/ProgramBlocks.js:745 +#: js/widgets/rhythmruler.js:2057 +#: js/widgets/rhythmruler.js:2064 +#: js/widgets/rhythmruler.js:2133 +#: js/widgets/rhythmruler.js:2140 +#: js/widgets/rhythmruler.js:2219 +#.TRANS: an arrangement of notes based on duration +msgid "rhythm" +msgstr "" + +#: js/rubrics.js:524 +#: js/turtledefs.js:121 +#: js/turtledefs.js:223 +#: js/block-verbose.js:2622 +#: js/block.js:2550 +#: js/blocks/IntervalsBlocks.js:63 +#: js/blocks/SensorsBlocks.js:178 +#: js/blocks/PitchBlocks.js:1839 +#: js/blocks/PitchBlocks.js:1853 +#: js/widgets/musickeyboard.js:1935 +#: js/widgets/phrasemaker.js:1036 +#.TRANS: pitch number +#.TRANS: pitch number +#.TRANS: we specify pitch in terms of a name and an octave. The name can be CDEFGAB or Do Re Mi Fa Sol La Ti. Octave is a number between 1 and 8. +msgid "pitch" +msgstr "" + +#: js/rubrics.js:525 +#: js/turtledefs.js:123 +#: js/turtledefs.js:225 +msgid "tone" +msgstr "" + +#: js/rubrics.js:526 +#: js/lilypond.js:605 +#: js/lilypond.js:904 +#: js/lilypond.js:910 +#: js/lilypond.js:948 +msgid "mouse" +msgstr "" + +#: js/rubrics.js:527 +#: js/turtledefs.js:132 +#: js/turtledefs.js:234 +#: js/widgets/phrasemaker.js:1040 +msgid "pen" +msgstr "" + +#: js/rubrics.js:528 +#: js/turtledefs.js:133 +#: js/turtledefs.js:235 +#: js/blocks/NumberBlocks.js:981 +#: js/blocks/PitchBlocks.js:1717 +#: js/blocks/PitchBlocks.js:1758 +msgid "number" +msgstr "nomor" + +#: js/rubrics.js:529 +#: js/turtledefs.js:127 +#: js/turtledefs.js:229 +msgid "flow" +msgstr "" + +#: js/rubrics.js:530 +#: js/turtledefs.js:128 +#: js/turtledefs.js:230 +#: js/block-verbose.js:1609 +#: js/block-verbose.js:4559 +#: js/block-verbose.js:4577 +#: js/block-verbose.js:4588 +#: js/block.js:1573 +#: js/block.js:4483 +#: js/block.js:4501 +#: js/block.js:4512 +#: js/blocks.js:1018 +#: js/blocks.js:3491 +#: js/blocks.js:3492 +#: js/blocks.js:3717 +#: js/blocks.js:4076 +#: js/blocks.js:4269 +#: js/blocks.js:5432 +#: js/blocks.js:6563 +#: js/macros.js:170 +#: js/macros.js:266 +#: js/macros.js:267 +#: js/macros.js:276 +#: js/macros.js:828 +#: js/palette.js:527 +#: js/palette.js:536 +#: js/palette.js:545 +#: js/palette.js:554 +#: js/palette.js:1129 +#: js/palette.js:1140 +#: js/palette.js:1151 +#: js/palette.js:1162 +#: js/palette.js:1181 +#: js/blocks/ActionBlocks.js:254 +#: js/blocks/ActionBlocks.js:307 +#: js/blocks/ActionBlocks.js:617 +#: js/blocks/ActionBlocks.js:716 +#: js/blocks/ActionBlocks.js:961 +#: js/blocks/ActionBlocks.js:1049 +#: js/blocks/ActionBlocks.js:1322 +#: js/blocks/ActionBlocks.js:1325 +#: js/blocks/ActionBlocks.js:1337 +#: js/blocks/ActionBlocks.js:1404 +#: js/blocks/MeterBlocks.js:715 +#: js/blocks/MeterBlocks.js:768 +#: js/blocks/MeterBlocks.js:831 +#: js/blocks/MeterBlocks.js:892 +#: js/widgets/musickeyboard.js:2986 +#: js/widgets/phrasemaker.js:4913 +#: js/widgets/rhythmruler.js:2319 +#: js/widgets/rhythmruler.js:2326 +#: js/widgets/rhythmruler.js:2511 +#: js/widgets/rhythmruler.js:2518 +msgid "action" +msgstr "aksi" + +#: js/rubrics.js:531 +#: js/turtledefs.js:136 +#: js/turtledefs.js:238 +msgid "sensors" +msgstr "" + +#: js/rubrics.js:532 +#: js/turtledefs.js:135 +#: js/turtledefs.js:237 +#: js/blocks/MediaBlocks.js:930 +msgid "media" +msgstr "" + +#: js/rubrics.js:533 +msgid "mice" +msgstr "" + +#: js/toolbar.js:48 +#: js/toolbar.js:109 +msgid "About Music Blocks" +msgstr "" + +#: js/toolbar.js:49 +#: js/toolbar.js:110 +#: js/toolbar.js:175 +#: js/toolbar.js:231 +#: js/turtledefs.js:445 +#: js/turtledefs.js:482 +#: js/activity.js:2660 +#: js/activity.js:2671 +#: js/activity.js:2902 +#: js/widgets/modewidget.js:77 +#: js/widgets/meterwidget.js:185 +#: js/widgets/pitchdrummatrix.js:147 +#: js/widgets/pitchdrummatrix.js:687 +#: js/widgets/pitchdrummatrix.js:689 +#: js/widgets/pitchdrummatrix.js:741 +#: js/widgets/pitchdrummatrix.js:743 +#: js/widgets/pitchdrummatrix.js:758 +#: js/widgets/pitchdrummatrix.js:760 +#: js/widgets/pitchdrummatrix.js:789 +#: js/widgets/pitchdrummatrix.js:791 +#: js/widgets/pitchstaircase.js:121 +#: js/widgets/temperament.js:610 +#: js/widgets/temperament.js:613 +#: js/widgets/temperament.js:673 +#: js/widgets/temperament.js:675 +#: js/widgets/temperament.js:2017 +#: js/widgets/temperament.js:2019 +#: js/widgets/tempo.js:84 +#: js/widgets/tempo.js:86 +#: js/widgets/timbre.js:432 +#: js/widgets/timbre.js:434 +#: js/widgets/timbre.js:465 +#: js/widgets/timbre.js:467 +#: js/widgets/timbre.js:746 +#: js/widgets/aiwidget.js:647 +#: js/widgets/aiwidget.js:654 +#: js/widgets/aiwidget.js:656 +#: js/widgets/arpeggio.js:90 +#: js/widgets/arpeggio.js:547 +#: js/widgets/arpeggio.js:549 +#: js/widgets/arpeggio.js:644 +#: js/widgets/arpeggio.js:646 +#: js/widgets/musickeyboard.js:676 +#: js/widgets/musickeyboard.js:872 +#: js/widgets/musickeyboard.js:874 +#: js/widgets/musickeyboard.js:953 +#: js/widgets/musickeyboard.js:955 +#: js/widgets/phrasemaker.js:513 +#: js/widgets/phrasemaker.js:523 +#: js/widgets/phrasemaker.js:525 +#: js/widgets/phrasemaker.js:4304 +#: js/widgets/phrasemaker.js:4528 +#: js/widgets/phrasemaker.js:4533 +#: js/widgets/phrasemaker.js:4535 +#: js/widgets/phrasemaker.js:4650 +#: js/widgets/rhythmruler.js:637 +#: js/widgets/rhythmruler.js:639 +#: js/widgets/rhythmruler.js:653 +#: js/widgets/rhythmruler.js:655 +#: js/widgets/sampler.js:162 +#: js/widgets/sampler.js:164 +#: js/widgets/sampler.js:363 +msgid "Play" +msgstr "" + +#: js/toolbar.js:50 +#: js/toolbar.js:111 +#: js/toolbar.js:176 +#: js/toolbar.js:232 +#: js/turtledefs.js:451 +#: js/turtledefs.js:488 +#: js/activity.js:2679 +#: js/widgets/modewidget.js:99 +#: js/widgets/modewidget.js:101 +#: js/widgets/meterwidget.js:206 +#: js/widgets/meterwidget.js:208 +#: js/widgets/pitchdrummatrix.js:674 +#: js/widgets/pitchdrummatrix.js:676 +#: js/widgets/temperament.js:2002 +#: js/widgets/temperament.js:2004 +#: js/widgets/arpeggio.js:534 +#: js/widgets/arpeggio.js:536 +#: js/widgets/phrasemaker.js:534 +#: js/widgets/phrasemaker.js:536 +msgid "Stop" +msgstr "" + +#: js/toolbar.js:51 +#: js/toolbar.js:112 +#: js/toolbar.js:177 +#: js/toolbar.js:233 +#: js/turtledefs.js:498 +msgid "Record" +msgstr "" + +#: js/toolbar.js:52 +#: js/toolbar.js:53 +msgid "Full screen" +msgstr "" + +#: js/toolbar.js:54 +#: js/toolbar.js:115 +#: js/toolbar.js:180 +#: js/toolbar.js:236 +#: js/turtledefs.js:504 +msgid "Toggle Fullscreen" +msgstr "" + +#: js/toolbar.js:55 +#: js/toolbar.js:116 +#: js/toolbar.js:181 +#: js/toolbar.js:237 +#: js/turtledefs.js:510 +#: planet/js/StringHelper.js:33 +msgid "New project" +msgstr "" + +#: js/toolbar.js:56 +#: js/toolbar.js:117 +#: js/toolbar.js:182 +#: js/toolbar.js:238 +#: js/turtledefs.js:516 +msgid "Load project from file" +msgstr "" + +#: js/toolbar.js:57 +#: js/toolbar.js:118 +#: js/toolbar.js:119 +#: js/toolbar.js:183 +#: js/toolbar.js:239 +#: js/turtledefs.js:541 +#: js/turtledefs.js:550 +#: js/turtledefs.js:571 +msgid "Save project" +msgstr "" + +#: js/toolbar.js:58 +#: js/toolbar.js:77 +#: js/toolbar.js:79 +#: js/toolbar.js:138 +#: js/toolbar.js:147 +#: js/toolbar.js:149 +#: js/toolbar.js:184 +#: js/toolbar.js:202 +#: js/toolbar.js:204 +#: js/toolbar.js:240 +#: js/toolbar.js:258 +#: js/toolbar.js:260 +msgid "Save project as HTML" +msgstr "" + +#: js/toolbar.js:59 +#: js/toolbar.js:120 +#: js/toolbar.js:185 +#: js/toolbar.js:241 +msgid "Find and share projects" +msgstr "" + +#: js/toolbar.js:60 +#: js/toolbar.js:121 +#: js/toolbar.js:186 +#: js/toolbar.js:242 +msgid "Offline. Sharing is unavailable" +msgstr "" + +#: js/toolbar.js:61 +#: js/toolbar.js:122 +#: js/toolbar.js:187 +#: js/toolbar.js:243 +msgid "Auxiliary menu" +msgstr "" + +#: js/toolbar.js:62 +#: js/toolbar.js:123 +#: js/toolbar.js:188 +#: js/toolbar.js:244 +#: js/turtledefs.js:752 +#: js/piemenus.js:3423 +msgid "Help" +msgstr "" + +#: js/toolbar.js:63 +#: js/toolbar.js:124 +#: js/toolbar.js:189 +#: js/toolbar.js:245 +msgid "Run slowly" +msgstr "" + +#: js/toolbar.js:64 +#: js/toolbar.js:125 +#: js/toolbar.js:190 +#: js/toolbar.js:246 +#: js/turtledefs.js:682 +msgid "Run step by step" +msgstr "" + +#: js/toolbar.js:65 +#: js/toolbar.js:126 +#: js/toolbar.js:191 +#: js/toolbar.js:247 +#: js/turtledefs.js:689 +msgid "Display statistics" +msgstr "" + +#: js/toolbar.js:66 +#: js/toolbar.js:127 +#: js/toolbar.js:192 +#: js/toolbar.js:248 +msgid "Load plugin" +msgstr "" + +#: js/toolbar.js:67 +#: js/toolbar.js:128 +#: js/toolbar.js:193 +#: js/toolbar.js:249 +#: js/turtledefs.js:696 +msgid "Delete plugin" +msgstr "" + +#: js/toolbar.js:68 +#: js/toolbar.js:129 +#: js/toolbar.js:194 +#: js/toolbar.js:250 +msgid "Enable horizontal scrolling" +msgstr "" + +#: js/toolbar.js:69 +#: js/toolbar.js:130 +#: js/toolbar.js:195 +#: js/toolbar.js:251 +msgid "Disable horizontal scrolling" +msgstr "" + +#: js/toolbar.js:70 +#: js/toolbar.js:131 +#: js/toolbar.js:196 +#: js/toolbar.js:252 +#: planet/js/LocalCard.js:54 +#: planet/js/StringHelper.js:71 +msgid "Merge with current project" +msgstr "" + +#: js/toolbar.js:71 +#: js/toolbar.js:132 +msgid "Set Pitch Preview" +msgstr "" + +#: js/toolbar.js:72 +#: js/toolbar.js:133 +#: js/toolbar.js:197 +#: js/toolbar.js:253 +msgid "JavaScript Editor" +msgstr "" + +#: js/toolbar.js:73 +#: js/toolbar.js:134 +#: js/toolbar.js:198 +#: js/toolbar.js:254 +#: js/turtledefs.js:724 +msgid "Restore" +msgstr "" + +#: js/toolbar.js:74 +#: js/toolbar.js:135 +#: js/toolbar.js:199 +#: js/toolbar.js:255 +msgid "Switch to beginner mode" +msgstr "" + +#: js/toolbar.js:75 +#: js/toolbar.js:136 +#: js/toolbar.js:200 +#: js/toolbar.js:256 +msgid "Switch to advanced mode" +msgstr "" + +#: js/toolbar.js:76 +#: js/toolbar.js:137 +#: js/toolbar.js:146 +#: js/toolbar.js:201 +#: js/toolbar.js:257 +#: js/turtledefs.js:738 +msgid "Select language" +msgstr "" + +#: js/toolbar.js:78 +#: js/toolbar.js:81 +#: js/toolbar.js:140 +#: js/turtledefs.js:579 +msgid "Save mouse artwork as PNG" +msgstr "" + +#: js/toolbar.js:80 +#: js/toolbar.js:139 +#: js/turtledefs.js:575 +msgid "Save mouse artwork as SVG" +msgstr "" + +#: js/toolbar.js:82 +#: js/toolbar.js:141 +#: js/turtledefs.js:583 +msgid "Save music as WAV" +msgstr "" + +#: js/toolbar.js:83 +#: js/toolbar.js:142 +#: js/turtledefs.js:587 +msgid "Save sheet music as ABC" +msgstr "" + +#: js/toolbar.js:84 +#: js/toolbar.js:143 +#: js/turtledefs.js:591 +msgid "Save sheet music as Lilypond" +msgstr "" + +#: js/toolbar.js:85 +msgid "Save sheet music as MusicXML" +msgstr "" + +#: js/toolbar.js:86 +#: js/toolbar.js:144 +#: js/toolbar.js:152 +#: js/toolbar.js:207 +#: js/toolbar.js:263 +#: js/turtledefs.js:562 +#: js/turtledefs.js:595 +msgid "Save block artwork as SVG" +msgstr "" + +#: js/toolbar.js:87 +#: js/toolbar.js:145 +#: js/toolbar.js:153 +#: js/toolbar.js:208 +#: js/toolbar.js:264 +#: js/turtles.js:911 +msgid "Confirm" +msgstr "" + +#: js/toolbar.js:88 +#: js/toolbar.js:154 +#: js/toolbar.js:209 +#: js/toolbar.js:265 +msgid "English (United States)" +msgstr "" + +#: js/toolbar.js:89 +#: js/toolbar.js:155 +#: js/toolbar.js:210 +#: js/toolbar.js:266 +msgid "English (United Kingdom)" +msgstr "" + +#: js/toolbar.js:90 +#: js/toolbar.js:156 +#: js/toolbar.js:211 +#: js/toolbar.js:267 +msgid "日本語" +msgstr "" + +#: js/toolbar.js:91 +msgid "한국어" +msgstr "" + +#: js/toolbar.js:92 +#: js/toolbar.js:158 +#: js/toolbar.js:213 +#: js/toolbar.js:269 +msgid "español" +msgstr "" + +#: js/toolbar.js:93 +#: js/toolbar.js:159 +#: js/toolbar.js:214 +#: js/toolbar.js:270 +msgid "português" +msgstr "" + +#: js/toolbar.js:94 +#: js/toolbar.js:160 +#: js/toolbar.js:215 +#: js/toolbar.js:271 +msgid "にほんご" +msgstr "" + +#: js/toolbar.js:95 +#: js/toolbar.js:161 +#: js/toolbar.js:216 +#: js/toolbar.js:272 +msgid "中文" +msgstr "" + +#: js/toolbar.js:96 +#: js/toolbar.js:162 +#: js/toolbar.js:217 +#: js/toolbar.js:273 +msgid "ภาษาไทย" +msgstr "" + +#: js/toolbar.js:97 +#: js/toolbar.js:163 +#: js/toolbar.js:218 +#: js/toolbar.js:274 +msgid "aymara" +msgstr "" + +#: js/toolbar.js:98 +#: js/toolbar.js:164 +#: js/toolbar.js:219 +#: js/toolbar.js:275 +msgid "quechua" +msgstr "" + +#: js/toolbar.js:99 +#: js/toolbar.js:165 +#: js/toolbar.js:220 +#: js/toolbar.js:276 +msgid "guarani" +msgstr "" + +#: js/toolbar.js:100 +#: js/toolbar.js:166 +#: js/toolbar.js:221 +#: js/toolbar.js:277 +msgid "हिंदी" +msgstr "" + +#: js/toolbar.js:101 +#: js/toolbar.js:168 +#: js/toolbar.js:222 +#: js/toolbar.js:279 +msgid "igbo" +msgstr "" + +#: js/toolbar.js:102 +#: js/toolbar.js:169 +#: js/toolbar.js:223 +#: js/toolbar.js:280 +msgid "عربى" +msgstr "" + +#: js/toolbar.js:103 +#: js/toolbar.js:167 +#: js/toolbar.js:224 +#: js/toolbar.js:278 +msgid "తెలుగు" +msgstr "" + +#: js/toolbar.js:104 +#: js/toolbar.js:170 +#: js/toolbar.js:225 +#: js/toolbar.js:281 +msgid "עִברִית" +msgstr "" + +#: js/toolbar.js:113 +#: js/toolbar.js:114 +#: js/toolbar.js:178 +#: js/toolbar.js:179 +#: js/toolbar.js:234 +#: js/toolbar.js:235 +msgid "Full Screen" +msgstr "" + +#: js/toolbar.js:148 +#: js/toolbar.js:151 +#: js/toolbar.js:203 +#: js/toolbar.js:206 +#: js/toolbar.js:259 +#: js/toolbar.js:262 +#: js/turtledefs.js:558 +msgid "Save turtle artwork as PNG" +msgstr "" + +#: js/toolbar.js:150 +#: js/toolbar.js:205 +#: js/toolbar.js:261 +#: js/turtledefs.js:554 +msgid "Save turtle artwork as SVG" +msgstr "" + +#: js/toolbar.js:157 +#: js/toolbar.js:212 +#: js/toolbar.js:268 +msgid "한국인" +msgstr "" + +#: js/toolbar.js:174 +#: js/toolbar.js:230 +msgid "About Turtle Blocks" +msgstr "" + +#: js/toolbar.js:446 +#: js/toolbar.js:457 +#: js/toolbar.js:497 +msgid "Turtle Wrap Off" +msgstr "" + +#: js/toolbar.js:466 +#: js/toolbar.js:506 +msgid "Turtle Wrap On" +msgstr "" + +#: js/turtle-painter.js:1192 +#: js/turtle-painter.js:1193 +#: js/turtles.js:118 +#: js/block-verbose.js:1623 +#: js/block.js:1587 +#: js/lilypond.js:749 +#: js/lilypond.js:913 +#: js/lilypond.js:951 +#: js/logo.js:1184 +#: js/blocks/ActionBlocks.js:1223 +#: js/blocks/ProgramBlocks.js:1267 +msgid "start" +msgstr "mulai" + +#: js/turtledefs.js:40 +#.TRANS: put the URL to the guide here, e.g., https://github.com/sugarlabs/turtleblocksjs/tree/master/guide/README.md +msgid "guide url" +msgstr "" + +#: js/turtledefs.js:85 +#: js/turtledefs.js:437 +msgid "Turtle Blocks is a Logo-inspired turtle that draws colorful pictures with snap-together visual-programming blocks." +msgstr "" + +#: js/turtledefs.js:118 +#: js/turtledefs.js:220 +msgid "search" +msgstr "" + +#: js/turtledefs.js:120 +#: js/turtledefs.js:222 +#: js/blocks/MeterBlocks.js:1343 +#: js/blocks/WidgetBlocks.js:522 +#.TRANS: musical meter (time signature), e.g., 4:4 +msgid "meter" +msgstr "" + +#: js/turtledefs.js:122 +#: js/turtledefs.js:224 +msgid "intervals" +msgstr "" + +#: js/turtledefs.js:124 +#: js/turtledefs.js:226 +msgid "ornament" +msgstr "" + +#: js/turtledefs.js:125 +#: js/turtledefs.js:227 +#: js/blocks/VolumeBlocks.js:362 +#: js/blocks/VolumeBlocks.js:502 +#: js/blocks/VolumeBlocks.js:545 +msgid "volume" +msgstr "" + +#: js/turtledefs.js:126 +#: js/turtledefs.js:228 +#: js/block-verbose.js:1700 +#: js/block-verbose.js:2626 +#: js/block.js:1664 +#: js/block.js:2554 +#: js/lilypond.js:732 +#: js/lilypond.js:897 +#: js/lilypond.js:941 +#: js/palette.js:577 +#: js/blocks/RhythmBlocks.js:766 +#: js/blocks/DrumBlocks.js:477 +#: js/blocks/VolumeBlocks.js:502 +#: js/widgets/phrasemaker.js:1038 +msgid "drum" +msgstr "" + +#: js/turtledefs.js:129 +#: js/turtledefs.js:231 +msgid "boxes" +msgstr "" + +#: js/turtledefs.js:130 +#: js/turtledefs.js:232 +msgid "widgets" +msgstr "" + +#: js/turtledefs.js:131 +#: js/turtledefs.js:233 +#: js/widgets/phrasemaker.js:1039 +msgid "graphics" +msgstr "" + +#: js/turtledefs.js:134 +#: js/turtledefs.js:236 +msgid "boolean" +msgstr "" + +#: js/turtledefs.js:137 +#: js/turtledefs.js:239 +#: js/blocks/HeapBlocks.js:59 +#: js/widgets/status.js:147 +msgid "heap" +msgstr "" + +#: js/turtledefs.js:138 +#: js/turtledefs.js:240 +#: js/blocks/DictBlocks.js:142 +#: js/blocks/ProgramBlocks.js:495 +msgid "dictionary" +msgstr "" + +#: js/turtledefs.js:139 +#: js/turtledefs.js:241 +msgid "ensemble" +msgstr "" + +#: js/turtledefs.js:140 +#: js/turtledefs.js:242 +msgid "extras" +msgstr "" + +#: js/turtledefs.js:142 +#: js/turtledefs.js:244 +#.TRANS: program as in computer program +#.TRANS: program as in computer program +msgid "program" +msgstr "" + +#: js/turtledefs.js:143 +#: js/turtledefs.js:245 +msgid "my blocks" +msgstr "" + +#: js/turtledefs.js:185 +#: js/turtledefs.js:281 +msgid "artwork" +msgstr "" + +#: js/turtledefs.js:185 +#: js/turtledefs.js:281 +msgid "logic" msgstr "" -#: js/logo.js:507 -#: js/ProgramBlocks.js:258 -#: js/ProgramBlocks.js:427 -msgid "You must select a file." +#: js/turtledefs.js:185 +#: js/turtledefs.js:281 +msgid "music" msgstr "" -#: js/logo.js:1184 -#: js/turtles.js:118 -#: js/turtle-painter.js:1192 -#: js/turtle-painter.js:1193 -#: js/block.js:1463 -#: js/lilypond.js:757 -#: js/lilypond.js:921 -#: js/lilypond.js:959 -#: js/ActionBlocks.js:1223 -#: js/ProgramBlocks.js:1267 -msgid "start" -msgstr "mulai" +#: js/turtledefs.js:187 +#: js/turtledefs.js:463 +msgid "Music Blocks is a collection of tools for exploring fundamental musical concepts in a fun way." +msgstr "" -#: js/logo.js:1696 -msgid "Playback is ready." +#: js/turtledefs.js:436 +msgid "Welcome to Turtle Blocks" msgstr "" -#: js/blocks.js:1011 -#: js/blocks.js:3427 -#: js/blocks.js:3428 -#: js/blocks.js:3653 -#: js/blocks.js:4012 -#: js/blocks.js:4205 -#: js/blocks.js:5343 -#: js/blocks.js:6474 -#: js/palette.js:527 -#: js/palette.js:536 -#: js/palette.js:545 -#: js/palette.js:554 -#: js/palette.js:1131 -#: js/palette.js:1142 -#: js/palette.js:1153 -#: js/palette.js:1164 -#: js/palette.js:1183 -#: js/rubrics.js:529 -#: js/macros.js:170 -#: js/macros.js:266 -#: js/macros.js:267 -#: js/macros.js:276 -#: js/macros.js:828 -#: js/block.js:1449 -#: js/block.js:4164 -#: js/block.js:4182 -#: js/block.js:4193 -#: js/turtledefs.js:128 -#: js/turtledefs.js:230 -#: js/ActionBlocks.js:254 -#: js/ActionBlocks.js:307 -#: js/ActionBlocks.js:617 -#: js/ActionBlocks.js:716 -#: js/ActionBlocks.js:961 -#: js/ActionBlocks.js:1049 -#: js/ActionBlocks.js:1322 -#: js/ActionBlocks.js:1325 -#: js/ActionBlocks.js:1337 -#: js/ActionBlocks.js:1404 -#: js/MeterBlocks.js:715 -#: js/MeterBlocks.js:768 -#: js/MeterBlocks.js:831 -#: js/MeterBlocks.js:892 -#: js/phrasemaker.js:4412 -#: js/musickeyboard.js:2647 -#: js/rhythmruler.js:1928 -#: js/rhythmruler.js:1935 -#: js/rhythmruler.js:2119 -#: js/rhythmruler.js:2126 -msgid "action" -msgstr "aksi" +#: js/turtledefs.js:438 +#: js/turtledefs.js:465 +#: js/turtledefs.js:774 +#: js/turtledefs.js:805 +msgid "The current version is" +msgstr "" -#: js/blocks.js:1205 -#: js/blocks.js:3380 -#: js/blocks.js:3770 -#: js/blocks.js:3801 -#: js/blocks.js:3850 -#: js/blocks.js:3885 -#: js/blocks.js:6497 -#: js/palette.js:509 -#: js/palette.js:638 -#: js/palette.js:1107 -#: js/BoxesBlocks.js:282 -#: js/BoxesBlocks.js:285 -#: js/BoxesBlocks.js:405 -#: js/BoxesBlocks.js:594 -msgid "box" -msgstr "kotak" +#: js/turtledefs.js:446 +#: js/turtledefs.js:483 +msgid "Click the run button to run the project in fast mode." +msgstr "" -#: js/blocks.js:1680 -msgid "Consider breaking this stack into parts." +#: js/turtledefs.js:452 +msgid "Stop the turtle." msgstr "" -#: js/blocks.js:2408 -#: js/palette.js:653 -#: js/MediaBlocks.js:602 -msgid "open file" +#: js/turtledefs.js:454 +#: js/turtledefs.js:491 +msgid "You can also type Alt-S to stop." msgstr "" -#: js/blocks.js:2415 -#: js/blocks.js:2423 -#: js/activity.js:1875 -msgid "audio file" +#: js/turtledefs.js:462 +#: js/widgets/help.js:333 +msgid "Welcome to Music Blocks" msgstr "" -#: js/blocks.js:2536 -#: js/blocks.js:3147 -#: js/block.js:3543 -msgid "on2" +#: js/turtledefs.js:472 +#: js/widgets/help.js:334 +msgid "Meet Mr. Mouse!" msgstr "" -#: js/blocks.js:2538 -#: js/blocks.js:3149 -#: js/block.js:3545 -msgid "off" +#: js/turtledefs.js:473 +msgid "Mr Mouse is our Music Blocks conductor." msgstr "" -#: js/blocks.js:2543 -#: js/blocks.js:3154 -#: js/palette.js:618 -#: js/block.js:3466 -#: js/BooleanBlocks.js:77 -#: js/BooleanBlocks.js:167 -#: js/BooleanBlocks.js:251 -#: js/BooleanBlocks.js:335 -#: js/BooleanBlocks.js:433 -#: js/BooleanBlocks.js:539 -#: js/BooleanBlocks.js:640 -#: js/BooleanBlocks.js:741 -#: js/BooleanBlocks.js:847 -#: js/BooleanBlocks.js:948 -#: js/BooleanBlocks.js:1033 -#: js/SensorsBlocks.js:910 -msgid "true" +#: js/turtledefs.js:475 +msgid "Mr Mouse encourages you to explore Music Blocks." msgstr "" -#: js/blocks.js:2545 -#: js/blocks.js:3156 -#: js/block.js:3466 -#: js/BooleanBlocks.js:79 -#: js/BooleanBlocks.js:169 -#: js/BooleanBlocks.js:253 -#: js/BooleanBlocks.js:337 -#: js/BooleanBlocks.js:435 -#: js/BooleanBlocks.js:541 -#: js/BooleanBlocks.js:642 -#: js/BooleanBlocks.js:743 -#: js/BooleanBlocks.js:849 -#: js/BooleanBlocks.js:950 -#: js/SensorsBlocks.js:912 -msgid "false" +#: js/turtledefs.js:477 +msgid "Let us start our tour!" msgstr "" -#: js/blocks.js:3183 -#: js/palette.js:574 -#: js/MediaBlocks.js:892 -#: js/MediaBlocks.js:963 -msgid "text" -msgstr "teks" +#: js/turtledefs.js:489 +msgid "Stop the music (and the mice)." +msgstr "" -#: js/blocks.js:3379 -#: js/palette.js:641 -#: js/palette.js:642 -#: js/BoxesBlocks.js:514 -msgid "store in box" +#: js/turtledefs.js:499 +msgid "Record your project as video." msgstr "" -#: js/blocks.js:3384 -#: js/blocks.js:3824 -#: js/blocks.js:3859 -#: js/blocks.js:3894 -#: js/blocks.js:5773 -#: js/blocks.js:5794 -#: js/BoxesBlocks.js:772 -msgid "box1" +#: js/turtledefs.js:505 +msgid "Toggle Fullscreen mode." msgstr "" -#: js/blocks.js:3386 -#: js/blocks.js:3826 -#: js/blocks.js:3861 -#: js/blocks.js:3896 -#: js/blocks.js:5775 -#: js/blocks.js:5796 -#: js/BoxesBlocks.js:663 -msgid "box2" +#: js/turtledefs.js:511 +msgid "Initialize a new project." msgstr "" -#: js/blocks.js:4058 -#: js/palette.js:639 -#: js/palette.js:644 -#: js/palette.js:1043 -#: js/BoxesBlocks.js:591 -msgid "store in" -msgstr "simpan di" +#: js/turtledefs.js:517 +msgid "You can also load projects from the file system." +msgstr "" -#: js/blocks.js:4058 -#: js/EnsembleBlocks.js:391 -#: js/EnsembleBlocks.js:402 -#: js/MediaBlocks.js:746 -#: js/ProgramBlocks.js:390 -#: js/ProgramBlocks.js:495 -#: js/ProgramBlocks.js:658 -#: js/BoxesBlocks.js:595 -#: js/PitchBlocks.js:656 -#: js/PitchBlocks.js:932 -#: js/PitchBlocks.js:1827 -#: js/ToneBlocks.js:1025 -#: js/DictBlocks.js:215 -#: js/DictBlocks.js:289 -msgid "name" +#: js/turtledefs.js:522 +#: planet/js/StringHelper.js:46 +msgid "Delete" msgstr "" -#: js/blocks.js:4058 -#: js/RhythmBlocks.js:1130 -#: js/BoxesBlocks.js:75 -#: js/BoxesBlocks.js:595 -#: js/HeapBlocks.js:544 -#: js/DictBlocks.js:289 -#: js/DictBlocks.js:430 -msgid "value" -msgstr "nilai" +#: js/turtledefs.js:523 +msgid "To delete a block, just right-click on it, then you will be able to see the delete option" +msgstr "" -#: js/blocks.js:4907 -msgid "There is no block selected." +#: js/turtledefs.js:528 +#: js/activity.js:2649 +#: planet/js/LocalCard.js:31 +msgid "Copy" +msgstr "Salin" + +#: js/turtledefs.js:529 +msgid "To copy a block, just right-click on it, then you will be able to see the copy option" msgstr "" -#: js/blocks.js:5002 -#: js/MediaBlocks.js:888 -msgid "show" +#: js/turtledefs.js:534 +#: js/piemenus.js:3411 +msgid "Extract" msgstr "" -#: js/blocks.js:5005 -#: js/MediaBlocks.js:803 -#.TRANS: Avatar is the image used to determine the appearance of the mouse. -msgid "avatar" +#: js/turtledefs.js:535 +msgid "To extract a block, just right-click on it, then you will be able to see the extract option" msgstr "" -#: js/blocks.js:5008 -#: js/ToneBlocks.js:1010 -#: js/sampler.js:693 -#.TRANS: The sound sample that the user uploads. -msgid "sample" +#: js/turtledefs.js:542 +#: js/turtledefs.js:552 +#: js/turtledefs.js:573 +msgid "Save your project to a file." msgstr "" -#: js/turtles.js:874 -msgid "Grid" +#: js/turtledefs.js:549 +#: js/turtledefs.js:570 +msgid "save" msgstr "" -#: js/turtles.js:891 -#: js/turtledefs.js:626 -msgid "Clean" -msgstr "bersihkan" +#: js/turtledefs.js:556 +#: js/turtledefs.js:577 +msgid "Save graphics from your project to as SVG." +msgstr "" -#: js/turtles.js:912 -#: js/turtledefs.js:632 -msgid "Collapse" +#: js/turtledefs.js:560 +#: js/turtledefs.js:581 +msgid "Save graphics from your project as PNG." msgstr "" -#: js/turtles.js:940 -msgid "Expand" +#: js/turtledefs.js:564 +#: js/turtledefs.js:597 +msgid "Save block artwork as an SVG file." msgstr "" -#: js/languagebox.js:198 -msgid "Refresh your browser to change your language preference." +#: js/turtledefs.js:585 +msgid "Save audio from your project as WAV." msgstr "" -#: js/languagebox.js:218 -msgid "Music Blocks is already set to this language." +#: js/turtledefs.js:589 +msgid "Save your project to as an ABC file." msgstr "" -#: js/piemenus.js:200 -#: js/musicutils.js:808 -#: js/musicutils.js:824 -#: js/phrasemaker.js:1672 -#: js/musickeyboard.js:2041 -#: js/sampler.js:544 -#.TRANS: double sharp is a music term related to pitch -msgid "double sharp" +#: js/turtledefs.js:593 +msgid "Save your project to as a Lilypond file." msgstr "" -#: js/piemenus.js:201 -#: js/PitchBlocks.js:1510 -#: js/PitchActions.js:580 -#: js/musicutils.js:806 -#: js/musicutils.js:825 -#: js/phrasemaker.js:1673 -#: js/musickeyboard.js:2042 -#: js/sampler.js:545 -#.TRANS: sharp is a half-step up in pitch -#.TRANS: sharp is a music term related to pitch -msgid "sharp" +#: js/turtledefs.js:604 +msgid "Load samples from server" msgstr "" -#: js/piemenus.js:202 -#: js/musicutils.js:804 -#: js/musicutils.js:826 -#: js/phrasemaker.js:1674 -#: js/musickeyboard.js:2043 -#: js/sampler.js:546 -#.TRANS: natural is a music term related to pitch -msgid "natural" +#: js/turtledefs.js:605 +msgid "This button opens a viewer for loading example projects." msgstr "" -#: js/piemenus.js:203 -#: js/PitchBlocks.js:1469 -#: js/PitchActions.js:583 -#: js/musicutils.js:802 -#: js/musicutils.js:827 -#: js/phrasemaker.js:1675 -#: js/musickeyboard.js:2044 -#: js/sampler.js:547 -#.TRANS: flat is a half-step down in pitch -#.TRANS: flat is a music term related to pitch -msgid "flat" +#: js/turtledefs.js:611 +msgid "Palette buttons" msgstr "" -#: js/piemenus.js:204 -#: js/musicutils.js:800 -#: js/musicutils.js:828 -#: js/phrasemaker.js:1676 -#: js/musickeyboard.js:2045 -#: js/sampler.js:548 -#.TRANS: double flat is a music term related to pitch -msgid "double flat" +#: js/turtledefs.js:612 +msgid "This toolbar contains the palette buttons including Rhythm Pitch Tone Action and more." msgstr "" -#: js/piemenus.js:2861 -#: js/PitchBlocks.js:1357 -#: js/musicutils.js:627 -#.TRANS: unison means the note is the same as the current note -#.TRANS: unison is a music term related to intervals -msgid "unison" +#: js/turtledefs.js:614 +msgid "Click to show the palettes of blocks and drag blocks from the palettes onto the canvas to use them." msgstr "" -#: js/piemenus.js:3015 -#: js/piemenus.js:3088 -#: js/musicutils.js:635 -#: js/musicutils.js:810 -#: js/musicutils.js:912 -#.TRANS: major is a music term related to intervals and mode -msgid "major" +#: js/turtledefs.js:620 +msgid "Cartesian/Polar" msgstr "" -#: js/piemenus.js:3015 -#: js/piemenus.js:3088 -#: js/musicutils.js:653 -#.TRANS: modal scale for music -msgid "ionian" +#: js/turtledefs.js:621 +msgid "Show or hide a coordinate grid." msgstr "" -#: js/piemenus.js:3017 -#: js/piemenus.js:3092 -#: js/musicutils.js:633 -#: js/musicutils.js:811 -#: js/musicutils.js:909 -#.TRANS: minor is a music term related to intervals and mode -msgid "minor" +#: js/turtledefs.js:626 +#: js/turtles.js:902 +msgid "Clean" +msgstr "bersihkan" + +#: js/turtledefs.js:627 +msgid "Clear the screen and return the mice to their initial positions." msgstr "" -#: js/piemenus.js:3017 -#: js/piemenus.js:3092 -#: js/musicutils.js:663 -#.TRANS: modal scale for music -msgid "aeolian" +#: js/turtledefs.js:632 +#: js/turtles.js:955 +msgid "Collapse" msgstr "" -#: js/piemenus.js:3407 -msgid "Duplicate" +#: js/turtledefs.js:633 +msgid "Collapse the graphics window." msgstr "" -#: js/piemenus.js:3408 -#: js/turtledefs.js:534 -msgid "Extract" +#: js/turtledefs.js:638 +#: js/activity.js:5684 +msgid "Home" +msgstr "" + +#: js/turtledefs.js:639 +msgid "Return all blocks to the center of the screen." +msgstr "" + +#: js/turtledefs.js:644 +msgid "Show/hide blocks" +msgstr "" + +#: js/turtledefs.js:645 +msgid "Hide or show the blocks and the palettes." +msgstr "" + +#: js/turtledefs.js:650 +msgid "Expand/collapse collapsable blocks" +msgstr "" + +#: js/turtledefs.js:651 +msgid "Expand or collapse start and action stacks." +msgstr "" + +#: js/turtledefs.js:658 +#: js/activity.js:5704 +msgid "Decrease block size" +msgstr "" + +#: js/turtledefs.js:659 +msgid "Decrease the size of the blocks." +msgstr "" + +#: js/turtledefs.js:664 +#: js/activity.js:5710 +msgid "Increase block size" +msgstr "" + +#: js/turtledefs.js:665 +msgid "Increase the size of the blocks." +msgstr "" + +#: js/turtledefs.js:670 +msgid "Expand/collapse option toolbar" msgstr "" -#: js/piemenus.js:3409 -msgid "Move to trash" +#: js/turtledefs.js:671 +msgid "Click this button to expand or collapse the auxillary toolbar." msgstr "" -#: js/piemenus.js:3410 -#: js/timbre.js:968 -#: js/StringHelper.js:69 -msgid "Close" +#: js/turtledefs.js:676 +msgid "Run slow" msgstr "" -#: js/piemenus.js:3416 -msgid "Save stack" +#: js/turtledefs.js:677 +msgid "Click to run the project in slow mode." msgstr "" -#: js/piemenus.js:3420 -#: js/toolbar.js:60 -#: js/toolbar.js:120 -#: js/toolbar.js:185 -#: js/toolbar.js:240 -#: js/turtledefs.js:752 -msgid "Help" +#: js/turtledefs.js:683 +msgid "Click to run the project step by step." msgstr "" -#: js/piemenus.js:3762 -msgid "You have chosen key " +#: js/turtledefs.js:690 +msgid "Display statistics about your Music project." msgstr "" -#: js/piemenus.js:3766 -msgid " for your pitch preview." +#: js/turtledefs.js:697 +msgid "Delete a selected plugin." msgstr "" -#: js/palette.js:571 -msgid "grid" +#: js/turtledefs.js:704 +msgid "Enable scrolling" msgstr "" -#: js/palette.js:577 -#: js/block.js:1540 -#: js/block.js:2343 -#: js/turtledefs.js:126 -#: js/turtledefs.js:228 -#: js/lilypond.js:740 -#: js/lilypond.js:905 -#: js/lilypond.js:949 -#: js/DrumBlocks.js:486 -#: js/RhythmBlocks.js:766 -#: js/VolumeBlocks.js:502 -#: js/phrasemaker.js:823 -msgid "drum" +#: js/turtledefs.js:705 +msgid "You can scroll the blocks on the canvas." msgstr "" -#: js/palette.js:580 -msgid "effect" +#: js/turtledefs.js:714 +msgid "Wrap Turtle" msgstr "" -#: js/palette.js:586 -msgid "sargam" +#: js/turtledefs.js:715 +msgid "Turn Turtle wrapping On or Off." msgstr "" -#: js/palette.js:589 -#: js/activity.js:1833 -#: js/RhythmBlocks.js:923 -#: js/PitchBlocks.js:442 -#: js/PitchBlocks.js:1748 -#.TRANS: a numeric mapping of the notes in an octave based on the musical mode -msgid "scale degree" +#: js/turtledefs.js:725 +msgid "Restore blocks from the trash." msgstr "" -#: js/palette.js:592 -#: js/activity.js:1860 -msgid "mode name" +#: js/turtledefs.js:732 +msgid "Switch mode" msgstr "" -#: js/palette.js:595 -#: js/activity.js:1839 -msgid "invert mode" +#: js/turtledefs.js:733 +msgid "Switch between beginner and advance modes." msgstr "" -#: js/palette.js:598 -#: js/activity.js:1836 -msgid "voice name" +#: js/turtledefs.js:739 +msgid "Select your language preference." msgstr "" -#: js/palette.js:601 -#: js/PitchBlocks.js:1181 -msgid "custom pitch" +#: js/turtledefs.js:745 +msgid "Keyboard shortcuts" msgstr "" -#: js/palette.js:605 -#: js/block.js:1456 -#: js/block.js:1575 -#: js/WidgetBlocks.js:218 -#: js/IntervalsBlocks.js:63 -msgid "temperament" +#: js/turtledefs.js:746 +msgid "You can type d to create a do block and r to create a re block etc." msgstr "" -#: js/palette.js:609 -msgid "accidental" +#: js/turtledefs.js:753 +msgid "Show these messages." msgstr "" -#: js/palette.js:615 -#: js/activity.js:1866 -msgid "interval name" +#: js/turtledefs.js:759 +#: js/turtledefs.js:790 +#: js/widgets/help.js:335 +msgid "Guide" msgstr "" -#: js/palette.js:633 -#: js/PitchBlocks.js:405 -msgid "pitch converter" +#: js/turtledefs.js:760 +msgid "A detailed guide to Turtle Blocks is available." msgstr "" -#: js/rubrics.js:522 -#: js/turtledefs.js:119 -#: js/turtledefs.js:221 -#: js/RhythmBlockPaletteBlocks.js:52 -#: js/RhythmBlockPaletteBlocks.js:233 -#: js/ProgramBlocks.js:745 -#: js/rhythmruler.js:1670 -#: js/rhythmruler.js:1677 -#: js/rhythmruler.js:1745 -#: js/rhythmruler.js:1752 -#: js/rhythmruler.js:1830 -#.TRANS: an arrangement of notes based on duration -msgid "rhythm" +#: js/turtledefs.js:764 +msgid "Turtle Blocks Guide" msgstr "" -#: js/rubrics.js:523 -#: js/block.js:2339 -#: js/turtledefs.js:121 -#: js/turtledefs.js:223 -#: js/IntervalsBlocks.js:63 -#: js/PitchBlocks.js:1801 -#: js/PitchBlocks.js:1814 -#: js/SensorsBlocks.js:178 -#: js/phrasemaker.js:821 -#: js/musickeyboard.js:1653 -#.TRANS: pitch number -#.TRANS: we specify pitch in terms of a name and an octave. The name can be CDEFGAB or Do Re Mi Fa Sol La Ti. Octave is a number between 1 and 8. -msgid "pitch" +#: js/turtledefs.js:767 +#: js/turtledefs.js:798 +#: js/widgets/help.js:336 +msgid "About" msgstr "" -#: js/rubrics.js:524 -#: js/turtledefs.js:123 -#: js/turtledefs.js:225 -msgid "tone" +#: js/turtledefs.js:768 +msgid "Turtle Blocks is an open source collection of tools for exploring musical concepts." msgstr "" -#: js/rubrics.js:525 -#: js/lilypond.js:613 -#: js/lilypond.js:912 -#: js/lilypond.js:918 -#: js/lilypond.js:956 -msgid "mouse" +#: js/turtledefs.js:770 +msgid "A full list of contributors can be found in the Turtle Blocks GitHub repository." msgstr "" -#: js/rubrics.js:526 -#: js/turtledefs.js:132 -#: js/turtledefs.js:234 -#: js/phrasemaker.js:825 -msgid "pen" +#: js/turtledefs.js:772 +msgid "Turtle Blocks is licensed under the AGPL." msgstr "" -#: js/rubrics.js:527 -#: js/turtledefs.js:133 -#: js/turtledefs.js:235 -#: js/NumberBlocks.js:905 -#: js/PitchBlocks.js:1679 -#: js/PitchBlocks.js:1720 -msgid "number" -msgstr "nomor" - -#: js/rubrics.js:528 -#: js/turtledefs.js:127 -#: js/turtledefs.js:229 -msgid "flow" +#: js/turtledefs.js:780 +msgid "Turtle Blocks GitHub repository" msgstr "" -#: js/rubrics.js:530 -#: js/turtledefs.js:136 -#: js/turtledefs.js:238 -msgid "sensors" +#: js/turtledefs.js:783 +#: js/turtledefs.js:814 +#: js/widgets/help.js:337 +#: js/widgets/help.js:359 +msgid "Congratulations." msgstr "" -#: js/rubrics.js:531 -#: js/turtledefs.js:135 -#: js/turtledefs.js:237 -#: js/MediaBlocks.js:930 -msgid "media" +#: js/turtledefs.js:784 +msgid "You have finished the tour. Please enjoy Turtle Blocks!" msgstr "" -#: js/rubrics.js:532 -msgid "mice" +#: js/turtledefs.js:791 +msgid "A detailed guide to Music Blocks is available." msgstr "" -#: js/macros.js:711 -#: js/musicutils.js:783 -#: js/synthutils.js:181 -#.TRANS: animal sound effect -msgid "duck" +#: js/turtledefs.js:799 +msgid "Music Blocks is an open source collection of tools for exploring musical concepts." msgstr "" -#: js/toolbar.js:46 -#: js/toolbar.js:107 -msgid "About Music Blocks" +#: js/turtledefs.js:801 +msgid "A full list of contributors can be found in the Music Blocks GitHub repository." msgstr "" -#: js/toolbar.js:47 -#: js/toolbar.js:108 -#: js/toolbar.js:172 -#: js/toolbar.js:228 -#: js/turtledefs.js:445 -#: js/turtledefs.js:482 -#: js/activity.js:2281 -#: js/activity.js:2289 -#: js/activity.js:2520 -#: js/modewidget.js:77 -#: js/pitchstaircase.js:121 -#: js/phrasemaker.js:302 -#: js/phrasemaker.js:312 -#: js/phrasemaker.js:314 -#: js/phrasemaker.js:3901 -#: js/phrasemaker.js:4061 -#: js/phrasemaker.js:4066 -#: js/phrasemaker.js:4068 -#: js/phrasemaker.js:4183 -#: js/pitchdrummatrix.js:81 -#: js/pitchdrummatrix.js:574 -#: js/pitchdrummatrix.js:576 -#: js/pitchdrummatrix.js:628 -#: js/pitchdrummatrix.js:630 -#: js/pitchdrummatrix.js:645 -#: js/pitchdrummatrix.js:647 -#: js/pitchdrummatrix.js:674 -#: js/pitchdrummatrix.js:676 -#: js/temperament.js:477 -#: js/temperament.js:480 -#: js/temperament.js:540 -#: js/temperament.js:542 -#: js/temperament.js:1835 -#: js/temperament.js:1837 -#: js/temperament.js:1986 -#: js/temperament.js:1988 -#: js/musickeyboard.js:522 -#: js/musickeyboard.js:682 -#: js/musickeyboard.js:684 -#: js/musickeyboard.js:756 -#: js/musickeyboard.js:758 -#: js/rhythmruler.js:298 -#: js/rhythmruler.js:300 -#: js/rhythmruler.js:314 -#: js/rhythmruler.js:316 -#: js/sampler.js:96 -#: js/sampler.js:98 -#: js/sampler.js:229 -#: js/sampler.js:235 -#: js/sampler.js:237 -#: js/tempo.js:84 -#: js/tempo.js:86 -#: js/timbre.js:432 -#: js/timbre.js:434 -#: js/timbre.js:465 -#: js/timbre.js:467 -#: js/timbre.js:746 -#: js/meterwidget.js:80 -#: js/arpeggio.js:90 -#: js/arpeggio.js:547 -#: js/arpeggio.js:549 -#: js/arpeggio.js:644 -#: js/arpeggio.js:646 -msgid "Play" +#: js/turtledefs.js:803 +msgid "Music Blocks is licensed under the AGPL." msgstr "" -#: js/toolbar.js:48 -#: js/toolbar.js:109 -#: js/toolbar.js:173 -#: js/toolbar.js:229 -#: js/turtledefs.js:451 -#: js/turtledefs.js:488 -#: js/activity.js:2297 -#: js/modewidget.js:99 -#: js/modewidget.js:101 -#: js/phrasemaker.js:323 -#: js/phrasemaker.js:325 -#: js/pitchdrummatrix.js:561 -#: js/pitchdrummatrix.js:563 -#: js/temperament.js:1820 -#: js/temperament.js:1822 -#: js/meterwidget.js:101 -#: js/meterwidget.js:103 -#: js/arpeggio.js:534 -#: js/arpeggio.js:536 -msgid "Stop" +#: js/turtledefs.js:811 +msgid "Music Blocks GitHub repository" msgstr "" -#: js/toolbar.js:49 -#: js/toolbar.js:110 -#: js/toolbar.js:174 -#: js/toolbar.js:230 -#: js/turtledefs.js:498 -msgid "Record" +#: js/turtledefs.js:815 +msgid "You have finished the tour. Please enjoy Music Blocks!" msgstr "" -#: js/toolbar.js:50 -#: js/toolbar.js:51 -msgid "Full screen" +#: js/turtles.js:882 +msgid "Grid" msgstr "" -#: js/toolbar.js:52 -#: js/toolbar.js:112 -#: js/toolbar.js:177 -#: js/toolbar.js:232 -#: js/turtledefs.js:504 -msgid "Toggle Fullscreen" +#: js/turtles.js:1024 +msgid "Expand" msgstr "" -#: js/toolbar.js:53 -#: js/toolbar.js:113 -#: js/toolbar.js:178 -#: js/toolbar.js:233 -#: js/turtledefs.js:510 -#: js/StringHelper.js:33 -msgid "New project" +#: js/block-verbose.js:1616 +#: js/block-verbose.js:1735 +#: js/block.js:1580 +#: js/block.js:1699 +#: js/palette.js:605 +#: js/blocks/IntervalsBlocks.js:63 +#: js/blocks/WidgetBlocks.js:259 +msgid "temperament" msgstr "" -#: js/toolbar.js:54 -#: js/toolbar.js:114 -#: js/toolbar.js:179 -#: js/toolbar.js:234 -#: js/turtledefs.js:516 -msgid "Load project from file" +#: js/block-verbose.js:1630 +#: js/block.js:1594 +msgid "matrix" msgstr "" -#: js/toolbar.js:55 -#: js/toolbar.js:115 -#: js/toolbar.js:116 -#: js/toolbar.js:180 -#: js/toolbar.js:235 -#: js/turtledefs.js:541 -#: js/turtledefs.js:550 -#: js/turtledefs.js:571 -msgid "Save project" +#: js/block-verbose.js:1637 +#: js/block.js:1601 +#: js/blocks/WidgetBlocks.js:1509 +#: plugins/rodi.rtp:324 +msgid "status" msgstr "" -#: js/toolbar.js:56 -#: js/toolbar.js:75 -#: js/toolbar.js:77 -#: js/toolbar.js:135 -#: js/toolbar.js:144 -#: js/toolbar.js:146 -#: js/toolbar.js:181 -#: js/toolbar.js:199 -#: js/toolbar.js:201 -#: js/toolbar.js:236 -#: js/toolbar.js:254 -#: js/toolbar.js:256 -msgid "Save project as HTML" +#: js/block-verbose.js:1644 +#: js/block.js:1608 +msgid "drum mapper" msgstr "" -#: js/toolbar.js:57 -#: js/toolbar.js:117 -#: js/toolbar.js:182 -#: js/toolbar.js:237 -msgid "Find and share projects" +#: js/block-verbose.js:1651 +#: js/block.js:1615 +msgid "ruler" msgstr "" -#: js/toolbar.js:58 -#: js/toolbar.js:118 -#: js/toolbar.js:183 -#: js/toolbar.js:238 -msgid "Offline. Sharing is unavailable" +#: js/block-verbose.js:1658 +#: js/block.js:1622 +#: js/blocks/WidgetBlocks.js:397 +#.TRANS: timbre is the character or quality of a musical sound +msgid "timbre" msgstr "" -#: js/toolbar.js:59 -#: js/toolbar.js:119 -#: js/toolbar.js:184 -#: js/toolbar.js:239 -msgid "Auxiliary menu" +#: js/block-verbose.js:1665 +#: js/block.js:1629 +msgid "stair" msgstr "" -#: js/toolbar.js:61 -#: js/toolbar.js:121 -#: js/toolbar.js:186 -#: js/toolbar.js:241 -msgid "Run slowly" +#: js/block-verbose.js:1672 +#: js/block.js:1636 +#: js/blocks/WidgetBlocks.js:707 +#.TRANS: the speed at music is should be played. +msgid "tempo" msgstr "" -#: js/toolbar.js:62 -#: js/toolbar.js:122 -#: js/toolbar.js:187 -#: js/toolbar.js:242 -#: js/turtledefs.js:682 -msgid "Run step by step" +#: js/block-verbose.js:1679 +#: js/block-verbose.js:1742 +#: js/block.js:1643 +#: js/block.js:1706 +#: js/blocks/IntervalsBlocks.js:1464 +#.TRANS: mode, e.g., Major in C Major +msgid "mode" msgstr "" -#: js/toolbar.js:63 -#: js/toolbar.js:123 -#: js/toolbar.js:188 -#: js/toolbar.js:243 -#: js/turtledefs.js:689 -msgid "Display statistics" +#: js/block-verbose.js:1686 +#: js/block.js:1650 +msgid "slider" msgstr "" -#: js/toolbar.js:64 -#: js/toolbar.js:124 -#: js/toolbar.js:189 -#: js/toolbar.js:244 -msgid "Load plugin" +#: js/block-verbose.js:1693 +#: js/block.js:1657 +#: js/blocks/SensorsBlocks.js:1001 +msgid "keyboard" msgstr "" -#: js/toolbar.js:65 -#: js/toolbar.js:125 -#: js/toolbar.js:190 -#: js/toolbar.js:245 -#: js/turtledefs.js:696 -msgid "Delete plugin" +#: js/block-verbose.js:1707 +#: js/block.js:1671 +#: js/blocks/WidgetBlocks.js:1190 +#: js/blocks/WidgetBlocks.js:1228 +#.TRANS: widget for subdividing a measure into distinct rhythmic elements +msgid "rhythm maker" msgstr "" -#: js/toolbar.js:66 -#: js/toolbar.js:126 -#: js/toolbar.js:191 -#: js/toolbar.js:246 -msgid "Enable horizontal scrolling" +#: js/block-verbose.js:1714 +#: js/block-verbose.js:2457 +#: js/block-verbose.js:2514 +#: js/block.js:1678 +#: js/block.js:2385 +#: js/block.js:2442 +#: js/blocks/MeterBlocks.js:1367 +#: js/blocks/OrnamentBlocks.js:220 +#: js/blocks/OrnamentBlocks.js:312 +#: js/blocks/RhythmBlocks.js:33 +#: js/blocks/RhythmBlocks.js:356 +#: js/blocks/RhythmBlocks.js:766 +#: js/blocks/RhythmBlocks.js:806 +#: js/blocks/RhythmBlockPaletteBlocks.js:70 +#: js/blocks/RhythmBlockPaletteBlocks.js:252 +#: js/blocks/RhythmBlockPaletteBlocks.js:485 +#: js/blocks/RhythmBlockPaletteBlocks.js:554 +#: js/blocks/RhythmBlockPaletteBlocks.js:605 +#: js/blocks/RhythmBlockPaletteBlocks.js:875 +#: js/turtleactions/DictActions.js:85 +#: js/widgets/phrasemaker.js:942 +#: js/widgets/phrasemaker.js:2656 +#: js/widgets/phrasemaker.js:2699 +#: js/widgets/phrasemaker.js:2810 +#.TRANS: the value (e.g., 1/4 note) of the note being played. +msgid "note value" msgstr "" -#: js/toolbar.js:67 -#: js/toolbar.js:127 -#: js/toolbar.js:192 -#: js/toolbar.js:247 -msgid "Disable horizontal scrolling" +#: js/block-verbose.js:1721 +#: js/block-verbose.js:2382 +#: js/block-verbose.js:2405 +#: js/block.js:1685 +#: js/block.js:2310 +#: js/block.js:2333 +#: js/blocks/IntervalsBlocks.js:1071 +#: js/blocks/OrnamentBlocks.js:312 +#.TRANS: calculate a relative step between notes based on semi-tones +msgid "scalar interval" msgstr "" -#: js/toolbar.js:68 -#: js/toolbar.js:128 -#: js/toolbar.js:193 -#: js/toolbar.js:248 -#: js/LocalCard.js:54 -#: js/StringHelper.js:71 -msgid "Merge with current project" +#: js/block-verbose.js:1728 +#: js/block.js:1692 +#: js/blocks/RhythmBlocks.js:148 +msgid "milliseconds" msgstr "" -#: js/toolbar.js:69 -#: js/toolbar.js:129 -msgid "Set Pitch Preview" +#: js/block-verbose.js:2455 +#: js/block-verbose.js:2459 +#: js/block-verbose.js:2512 +#: js/block-verbose.js:2628 +#: js/block.js:2383 +#: js/block.js:2387 +#: js/block.js:2440 +#: js/block.js:2556 +#: js/blocks/RhythmBlocks.js:712 +#: js/blocks/ProgramBlocks.js:1273 +#: js/widgets/rhythmruler.js:1183 +#: js/widgets/rhythmruler.js:1329 +msgid "silence" msgstr "" -#: js/toolbar.js:70 -#: js/toolbar.js:130 -#: js/toolbar.js:194 -#: js/toolbar.js:249 -msgid "Toggle JavaScript Editor" +#: js/block-verbose.js:2548 +#: js/block-verbose.js:3492 +#: js/block-verbose.js:3509 +#: js/activity.js:2718 +#: js/activity.js:2769 +#: js/block.js:2476 +#: js/block.js:3416 +#: js/block.js:3433 +#: js/utils/musicutils.js:3780 +#: js/utils/musicutils.js:5273 +#.TRANS: the note names must be separated by single spaces +#.TRANS: the note names must be separated by single spaces +#.TRANS: the note names must be separated by single spaces +msgid "ti la sol fa mi re do" msgstr "" -#: js/toolbar.js:71 -#: js/toolbar.js:131 -#: js/toolbar.js:195 -#: js/toolbar.js:250 -#: js/turtledefs.js:724 -msgid "Restore" +#: js/block-verbose.js:2616 +#: js/block.js:2544 +#.TRANS: scalar step +#.TRANS: scalar step +msgid "down" msgstr "" -#: js/toolbar.js:72 -#: js/toolbar.js:132 -#: js/toolbar.js:196 -#: js/toolbar.js:251 -msgid "Switch to beginner mode" +#: js/block-verbose.js:2617 +#: js/block.js:2545 +msgid "up" msgstr "" -#: js/toolbar.js:73 -#: js/toolbar.js:133 -#: js/toolbar.js:197 -#: js/toolbar.js:252 -msgid "Switch to advanced mode" +#: js/block-verbose.js:3026 +#: js/block.js:2950 +msgid "Silence block cannot be removed." msgstr "" -#: js/toolbar.js:74 -#: js/toolbar.js:134 -#: js/toolbar.js:143 -#: js/toolbar.js:198 -#: js/toolbar.js:253 -#: js/turtledefs.js:738 -msgid "Select language" +#: js/block-verbose.js:3824 +#: js/block.js:3748 +#: js/blocks.js:2607 +#: js/blocks.js:3218 +#: js/palette.js:618 +#: js/blocks/BooleanBlocks.js:77 +#: js/blocks/BooleanBlocks.js:167 +#: js/blocks/BooleanBlocks.js:251 +#: js/blocks/BooleanBlocks.js:335 +#: js/blocks/BooleanBlocks.js:433 +#: js/blocks/BooleanBlocks.js:539 +#: js/blocks/BooleanBlocks.js:640 +#: js/blocks/BooleanBlocks.js:741 +#: js/blocks/BooleanBlocks.js:847 +#: js/blocks/BooleanBlocks.js:948 +#: js/blocks/BooleanBlocks.js:1033 +#: js/blocks/SensorsBlocks.js:910 +msgid "true" msgstr "" -#: js/toolbar.js:76 -#: js/toolbar.js:79 -#: js/toolbar.js:137 -#: js/turtledefs.js:579 -msgid "Save mouse artwork as PNG" +#: js/block-verbose.js:3824 +#: js/block.js:3748 +#: js/blocks.js:2609 +#: js/blocks.js:3220 +#: js/blocks/BooleanBlocks.js:79 +#: js/blocks/BooleanBlocks.js:169 +#: js/blocks/BooleanBlocks.js:253 +#: js/blocks/BooleanBlocks.js:337 +#: js/blocks/BooleanBlocks.js:435 +#: js/blocks/BooleanBlocks.js:541 +#: js/blocks/BooleanBlocks.js:642 +#: js/blocks/BooleanBlocks.js:743 +#: js/blocks/BooleanBlocks.js:849 +#: js/blocks/BooleanBlocks.js:950 +#: js/blocks/SensorsBlocks.js:912 +msgid "false" msgstr "" -#: js/toolbar.js:78 -#: js/toolbar.js:136 -#: js/turtledefs.js:575 -msgid "Save mouse artwork as SVG" +#: js/block-verbose.js:3835 +#: js/block-verbose.js:3848 +#: js/block.js:3759 +#: js/block.js:3772 +#: js/blocks/ExtrasBlocks.js:615 +msgid "Cartesian" msgstr "" -#: js/toolbar.js:80 -#: js/toolbar.js:138 -#: js/turtledefs.js:583 -msgid "Save music as WAV" +#: js/block-verbose.js:3836 +#: js/block-verbose.js:3849 +#: js/block.js:3760 +#: js/block.js:3773 +#: js/blocks/ExtrasBlocks.js:619 +msgid "polar" msgstr "" -#: js/toolbar.js:81 -#: js/toolbar.js:139 -#: js/turtledefs.js:587 -msgid "Save sheet music as ABC" +#: js/block-verbose.js:3837 +#: js/block-verbose.js:3850 +#: js/block.js:3761 +#: js/block.js:3774 +#: js/blocks/ExtrasBlocks.js:623 +msgid "Cartesian+polar" msgstr "" -#: js/toolbar.js:82 -#: js/toolbar.js:140 -#: js/turtledefs.js:591 -msgid "Save sheet music as Lilypond" +#: js/block-verbose.js:3838 +#: js/block-verbose.js:3857 +#: js/block.js:3762 +#: js/block.js:3781 +#: js/blocks/ExtrasBlocks.js:652 +msgid "none" msgstr "" -#: js/toolbar.js:83 -msgid "Save sheet music as MusicXML" +#: js/block-verbose.js:3851 +#: js/block.js:3775 +#: js/blocks/ExtrasBlocks.js:628 +msgid "treble" msgstr "" -#: js/toolbar.js:84 -#: js/toolbar.js:141 -#: js/toolbar.js:149 -#: js/toolbar.js:204 -#: js/toolbar.js:259 -#: js/turtledefs.js:562 -#: js/turtledefs.js:595 -msgid "Save block artwork as SVG" +#: js/block-verbose.js:3852 +#: js/block.js:3776 +#: js/blocks/ExtrasBlocks.js:632 +msgid "grand staff" msgstr "" -#: js/toolbar.js:85 -#: js/toolbar.js:142 -#: js/toolbar.js:150 -#: js/toolbar.js:205 -#: js/toolbar.js:260 -msgid "Confirm" +#: js/block-verbose.js:3853 +#: js/block.js:3777 +#: js/blocks/ExtrasBlocks.js:636 +msgid "mezzo-soprano" msgstr "" -#: js/toolbar.js:86 -#: js/toolbar.js:151 -#: js/toolbar.js:206 -#: js/toolbar.js:261 -msgid "English (United States)" +#: js/block-verbose.js:3854 +#: js/block.js:3778 +#: js/blocks/ExtrasBlocks.js:640 +msgid "alto" msgstr "" -#: js/toolbar.js:87 -#: js/toolbar.js:152 -#: js/toolbar.js:207 -#: js/toolbar.js:262 -msgid "English (United Kingdom)" +#: js/block-verbose.js:3855 +#: js/block.js:3779 +#: js/blocks/ExtrasBlocks.js:644 +msgid "tenor" msgstr "" -#: js/toolbar.js:88 -#: js/toolbar.js:153 -#: js/toolbar.js:208 -#: js/toolbar.js:263 -msgid "日本語" +#: js/block-verbose.js:3856 +#: js/block.js:3780 +#: js/utils/musicutils.js:1115 +#: js/utils/synthutils.js:80 +#: js/blocks/ExtrasBlocks.js:648 +#.TRANS: musical instrument +msgid "bass" msgstr "" -#: js/toolbar.js:89 -msgid "한국어" +#: js/block-verbose.js:3901 +#: js/block.js:3825 +#: js/blocks.js:2600 +#: js/blocks.js:3211 +msgid "on2" msgstr "" -#: js/toolbar.js:90 -#: js/toolbar.js:155 -#: js/toolbar.js:210 -#: js/toolbar.js:265 -msgid "español" +#: js/block-verbose.js:3903 +#: js/block.js:3827 +#: js/blocks.js:2602 +#: js/blocks.js:3213 +msgid "off" msgstr "" -#: js/toolbar.js:91 -#: js/toolbar.js:156 -#: js/toolbar.js:211 -#: js/toolbar.js:266 -msgid "português" +#: js/block-verbose.js:4470 +#: js/block.js:4394 +msgid "Not a number" msgstr "" -#: js/toolbar.js:92 -#: js/toolbar.js:157 -#: js/toolbar.js:212 -#: js/toolbar.js:267 -msgid "にほんご" +#: js/block-verbose.js:4477 +#: js/block.js:4401 +msgid "Octave value must be between 1 and 10." msgstr "" -#: js/toolbar.js:93 -#: js/toolbar.js:158 -#: js/toolbar.js:213 -#: js/toolbar.js:268 -msgid "中文" +#: js/block-verbose.js:4485 +#: js/block.js:4409 +msgid "Numbers can have at most 10 digits." msgstr "" -#: js/toolbar.js:94 -#: js/toolbar.js:159 -#: js/toolbar.js:214 -#: js/toolbar.js:269 -msgid "ภาษาไทย" +#: js/activity.js:390 +#: js/activity.js:395 +msgid "Search for blocks" msgstr "" -#: js/toolbar.js:95 -#: js/toolbar.js:160 -#: js/toolbar.js:215 -#: js/toolbar.js:270 -msgid "aymara" +#: js/activity.js:1413 +msgid "Refresh your browser to change to advanced mode." msgstr "" -#: js/toolbar.js:96 -#: js/toolbar.js:161 -#: js/toolbar.js:216 -#: js/toolbar.js:271 -msgid "quechua" +#: js/activity.js:1418 +msgid "Refresh your browser to change to beginner mode." msgstr "" -#: js/toolbar.js:97 -#: js/toolbar.js:162 -#: js/toolbar.js:217 -#: js/toolbar.js:272 -msgid "guarani" +#: js/activity.js:1477 +msgid "Catching mice" msgstr "" -#: js/toolbar.js:98 -#: js/toolbar.js:163 -#: js/toolbar.js:218 -#: js/toolbar.js:273 -msgid "हिंदी" +#: js/activity.js:1478 +msgid "Cleaning the instruments" msgstr "" -#: js/toolbar.js:99 -#: js/toolbar.js:165 -#: js/toolbar.js:219 -#: js/toolbar.js:275 -msgid "igbo" +#: js/activity.js:1479 +msgid "Testing key pieces" msgstr "" -#: js/toolbar.js:100 -#: js/toolbar.js:166 -#: js/toolbar.js:220 -#: js/toolbar.js:276 -msgid "عربى" +#: js/activity.js:1480 +msgid "Sight-reading" msgstr "" -#: js/toolbar.js:101 -#: js/toolbar.js:164 -#: js/toolbar.js:221 -#: js/toolbar.js:274 -msgid "తెలుగు" +#: js/activity.js:1481 +msgid "Combining math and music" msgstr "" -#: js/toolbar.js:102 -#: js/toolbar.js:167 -#: js/toolbar.js:222 -#: js/toolbar.js:277 -msgid "עִברִית" +#: js/activity.js:1482 +msgid "Generating more blocks" msgstr "" -#: js/toolbar.js:111 -#: js/toolbar.js:175 -#: js/toolbar.js:176 -#: js/toolbar.js:231 -msgid "Full Screen" +#: js/activity.js:1483 +msgid "Do Re Mi Fa Sol La Ti Do" msgstr "" -#: js/toolbar.js:145 -#: js/toolbar.js:148 -#: js/toolbar.js:200 -#: js/toolbar.js:203 -#: js/toolbar.js:255 -#: js/toolbar.js:258 -#: js/turtledefs.js:558 -msgid "Save turtle artwork as PNG" +#: js/activity.js:1484 +msgid "Tuning string instruments" msgstr "" -#: js/toolbar.js:147 -#: js/toolbar.js:202 -#: js/toolbar.js:257 -#: js/turtledefs.js:554 -msgid "Save turtle artwork as SVG" +#: js/activity.js:1485 +msgid "Pressing random keys" msgstr "" -#: js/toolbar.js:154 -#: js/toolbar.js:209 -#: js/toolbar.js:264 -msgid "한국인" +#: js/activity.js:1663 +msgid "plugins will be removed upon restart." msgstr "" -#: js/toolbar.js:171 -#: js/toolbar.js:227 -msgid "About Turtle Blocks" +#: js/activity.js:1672 +msgid "show Cartesian" msgstr "" -#: js/toolbar.js:429 -#: js/toolbar.js:440 -msgid "Turtle Wrap Off" +#: js/activity.js:2211 +#: js/palette.js:589 +#: js/blocks/RhythmBlocks.js:923 +#: js/blocks/PitchBlocks.js:442 +#: js/blocks/PitchBlocks.js:1786 +#.TRANS: a numeric mapping of the notes in an octave based on the musical mode +msgid "scale degree" msgstr "" -#: js/toolbar.js:442 -msgid "Turtle Wrap On" +#: js/activity.js:2214 +#: js/palette.js:598 +msgid "voice name" msgstr "" -#: js/block.js:1470 -msgid "matrix" +#: js/activity.js:2217 +#: js/palette.js:595 +msgid "invert mode" msgstr "" -#: js/block.js:1477 -#: js/WidgetBlocks.js:1226 -#: plugins/rodi.rtp:324 -msgid "status" +#: js/activity.js:2220 +msgid "output tools" msgstr "" -#: js/block.js:1484 -msgid "drum mapper" +#: js/activity.js:2223 +msgid "custom note" msgstr "" -#: js/block.js:1491 -msgid "ruler" +#: js/activity.js:2226 +msgid "accidental name" msgstr "" -#: js/block.js:1498 -#: js/WidgetBlocks.js:327 -#.TRANS: timbre is the character or quality of a musical sound -msgid "timbre" +#: js/activity.js:2229 +#: js/blocks/PitchBlocks.js:855 +msgid "east indian solfege" msgstr "" -#: js/block.js:1505 -msgid "stair" +#: js/activity.js:2232 +#: js/blocks/PitchBlocks.js:869 +msgid "note name" msgstr "" -#: js/block.js:1512 -#: js/WidgetBlocks.js:577 -#.TRANS: the speed at music is should be played. -msgid "tempo" +#: js/activity.js:2235 +#: js/blocks/IntervalsBlocks.js:94 +msgid "temperament name" msgstr "" -#: js/block.js:1519 -#: js/block.js:1582 -#: js/IntervalsBlocks.js:1268 -#.TRANS: mode, e.g., Major in C Major -msgid "mode" +#: js/activity.js:2238 +#: js/palette.js:592 +msgid "mode name" msgstr "" -#: js/block.js:1526 -msgid "slider" +#: js/activity.js:2241 +msgid "chord name" msgstr "" -#: js/block.js:1533 -#: js/SensorsBlocks.js:1001 -msgid "keyboard" +#: js/activity.js:2244 +#: js/palette.js:615 +msgid "interval name" msgstr "" -#: js/block.js:1547 -#: js/WidgetBlocks.js:957 -#: js/WidgetBlocks.js:988 -#.TRANS: widget for subdividing a measure into distinct rhythmic elements -msgid "rhythm maker" +#: js/activity.js:2247 +msgid "filter type" msgstr "" -#: js/block.js:1554 -#: js/block.js:2182 -#: js/block.js:2236 -#: js/RhythmBlockPaletteBlocks.js:70 -#: js/RhythmBlockPaletteBlocks.js:251 -#: js/RhythmBlockPaletteBlocks.js:484 -#: js/RhythmBlockPaletteBlocks.js:553 -#: js/RhythmBlockPaletteBlocks.js:604 -#: js/RhythmBlockPaletteBlocks.js:874 -#: js/RhythmBlocks.js:33 -#: js/RhythmBlocks.js:356 -#: js/RhythmBlocks.js:766 -#: js/RhythmBlocks.js:806 -#: js/OrnamentBlocks.js:220 -#: js/OrnamentBlocks.js:312 -#: js/MeterBlocks.js:1367 -#: js/DictActions.js:85 -#: js/phrasemaker.js:731 -#: js/phrasemaker.js:2393 -#: js/phrasemaker.js:2436 -#: js/phrasemaker.js:2534 -#.TRANS: the value (e.g., 1/4 note) of the note being played. -msgid "note value" +#: js/activity.js:2250 +msgid "oscillator type" msgstr "" -#: js/block.js:1561 -#: js/block.js:2110 -#: js/block.js:2133 -#: js/IntervalsBlocks.js:875 -#: js/OrnamentBlocks.js:312 -#.TRANS: calculate a relative step between notes based on semi-tones -msgid "scalar interval" +#: js/activity.js:2253 +#: js/blocks.js:2479 +#: js/blocks.js:2487 +msgid "audio file" msgstr "" -#: js/block.js:1568 -#: js/RhythmBlocks.js:148 -msgid "milliseconds" +#: js/activity.js:2256 +#: js/blocks/DrumBlocks.js:32 +msgid "noise name" msgstr "" -#: js/block.js:2180 -#: js/block.js:2184 -#: js/block.js:2234 -#: js/block.js:2345 -#: js/ProgramBlocks.js:1273 -#: js/RhythmBlocks.js:712 -#: js/rhythmruler.js:834 -#: js/rhythmruler.js:961 -msgid "silence" +#: js/activity.js:2259 +#: js/blocks/DrumBlocks.js:75 +msgid "drum name" msgstr "" -#: js/block.js:2265 -#: js/block.js:3134 -#: js/block.js:3151 -#: js/activity.js:2336 -#: js/activity.js:2387 -#: js/musicutils.js:2932 -#: js/musicutils.js:4287 -#.TRANS: the note names must be separated by single spaces -#.TRANS: the note names must be separated by single spaces -msgid "ti la sol fa mi re do" +#: js/activity.js:2262 +#: js/blocks/DrumBlocks.js:119 +msgid "effects name" msgstr "" -#: js/block.js:2333 -#.TRANS: scalar step -msgid "down" +#: js/activity.js:2265 +msgid "wrap mode" msgstr "" -#: js/block.js:2334 -msgid "up" +#: js/activity.js:2268 +msgid "load file" msgstr "" -#: js/block.js:3477 -#: js/block.js:3490 -#: js/ExtrasBlocks.js:612 -msgid "Cartesian" +#: js/activity.js:2435 +#: js/activity.js:5851 +msgid "This block is deprecated." msgstr "" -#: js/block.js:3478 -#: js/block.js:3491 -#: js/ExtrasBlocks.js:616 -msgid "polar" +#: js/activity.js:2437 +#: js/activity.js:5853 +msgid "Block cannot be found." msgstr "" -#: js/block.js:3479 -#: js/block.js:3492 -#: js/ExtrasBlocks.js:620 -msgid "Cartesian+polar" +#: js/activity.js:2645 +msgid "Saving block artwork" msgstr "" -#: js/block.js:3480 -#: js/block.js:3499 -#: js/ExtrasBlocks.js:649 -msgid "none" +#: js/activity.js:2656 +msgid "Erase" msgstr "" -#: js/block.js:3493 -#: js/ExtrasBlocks.js:625 -msgid "treble" +#: js/activity.js:2683 +#: js/activity.js:2705 +msgid "Paste" msgstr "" -#: js/block.js:3494 -#: js/ExtrasBlocks.js:629 -msgid "grand staff" +#: js/activity.js:2687 +msgid "Save block help" msgstr "" -#: js/block.js:3495 -#: js/ExtrasBlocks.js:633 -msgid "mezzo-soprano" +#: js/activity.js:2772 +msgid "Jumping to the bottom of the page." msgstr "" -#: js/block.js:3496 -#: js/ExtrasBlocks.js:637 -msgid "alto" +#: js/activity.js:2778 +msgid "Scrolling up." msgstr "" -#: js/block.js:3497 -#: js/ExtrasBlocks.js:641 -msgid "tenor" +#: js/activity.js:2783 +msgid "Scrolling down." msgstr "" -#: js/block.js:3498 -#: js/ExtrasBlocks.js:645 -#: js/musicutils.js:736 -#: js/synthutils.js:64 -#.TRANS: musical instrument -msgid "bass" +#: js/activity.js:2788 +msgid "Extracting block" msgstr "" -#: js/block.js:4075 -msgid "Not a number" +#: js/activity.js:2796 +msgid "Moving block up." msgstr "" -#: js/block.js:4082 -msgid "Octave value must be between 1 and 10." +#: js/activity.js:2817 +msgid "Moving block down." msgstr "" -#: js/block.js:4090 -msgid "Numbers can have at most 10 digits." +#: js/activity.js:2838 +msgid "Moving block left." msgstr "" -#: js/notation.js:353 -msgid "Lilypond cannot process pickup of " +#: js/activity.js:2855 +msgid "Moving block right." msgstr "" -#: js/turtledefs.js:40 -#.TRANS: put the URL to the guide here, e.g., https://github.com/sugarlabs/turtleblocksjs/tree/master/guide/README.md -msgid "guide url" +#: js/activity.js:2870 +msgid "Jump to home position." msgstr "" -#: js/turtledefs.js:85 -#: js/turtledefs.js:437 -msgid "Turtle Blocks is a Logo-inspired turtle that draws colorful pictures with snap-together visual-programming blocks." +#: js/activity.js:2897 +msgid "Hide blocks" msgstr "" -#: js/turtledefs.js:118 -#: js/turtledefs.js:220 -msgid "search" +#: js/activity.js:4500 +msgid "Click the run button to run the project." msgstr "" -#: js/turtledefs.js:120 -#: js/turtledefs.js:222 -#: js/WidgetBlocks.js:437 -#: js/MeterBlocks.js:1343 -#.TRANS: musical meter (time signature), e.g., 4:4 -msgid "meter" +#: js/activity.js:5692 +msgid "Show/hide block" msgstr "" -#: js/turtledefs.js:122 -#: js/turtledefs.js:224 -msgid "intervals" +#: js/activity.js:5698 +msgid "Expand/collapse blocks" msgstr "" -#: js/turtledefs.js:124 -#: js/turtledefs.js:226 -msgid "ornament" +#: js/activity.js:5976 +msgid "Could not parse JSON input." msgstr "" -#: js/turtledefs.js:125 -#: js/turtledefs.js:227 -#: js/VolumeBlocks.js:362 -#: js/VolumeBlocks.js:502 -#: js/VolumeBlocks.js:545 -msgid "volume" +#: js/activity.js:6475 +#: js/activity.js:6580 +#: js/activity.js:6631 +msgid "Cannot load project from the file. Please check the file type." msgstr "" -#: js/turtledefs.js:129 -#: js/turtledefs.js:231 -msgid "boxes" +#: js/activity.js:6917 +msgid "Invalid parameters" msgstr "" -#: js/turtledefs.js:130 -#: js/turtledefs.js:232 -msgid "widgets" -msgstr "" +#: js/blocks.js:1212 +#: js/blocks.js:3444 +#: js/blocks.js:3834 +#: js/blocks.js:3865 +#: js/blocks.js:3914 +#: js/blocks.js:3949 +#: js/blocks.js:6586 +#: js/palette.js:509 +#: js/palette.js:638 +#: js/palette.js:1105 +#: js/blocks/BoxesBlocks.js:282 +#: js/blocks/BoxesBlocks.js:285 +#: js/blocks/BoxesBlocks.js:405 +#: js/blocks/BoxesBlocks.js:594 +msgid "box" +msgstr "kotak" -#: js/turtledefs.js:131 -#: js/turtledefs.js:233 -#: js/phrasemaker.js:824 -msgid "graphics" +#: js/blocks.js:1713 +msgid "Consider breaking this stack into parts." msgstr "" -#: js/turtledefs.js:134 -#: js/turtledefs.js:236 -msgid "boolean" +#: js/blocks.js:2472 +#: js/palette.js:653 +#: js/blocks/MediaBlocks.js:602 +msgid "open file" msgstr "" -#: js/turtledefs.js:137 -#: js/turtledefs.js:239 -#: js/HeapBlocks.js:59 -#: js/status.js:147 -msgid "heap" +#: js/blocks.js:3247 +#: js/palette.js:574 +#: js/blocks/MediaBlocks.js:892 +#: js/blocks/MediaBlocks.js:963 +msgid "text" +msgstr "teks" + +#: js/blocks.js:3443 +#: js/palette.js:641 +#: js/palette.js:642 +#: js/blocks/BoxesBlocks.js:514 +msgid "store in box" msgstr "" -#: js/turtledefs.js:138 -#: js/turtledefs.js:240 -#: js/ProgramBlocks.js:495 -#: js/DictBlocks.js:142 -msgid "dictionary" +#: js/blocks.js:3448 +#: js/blocks.js:3888 +#: js/blocks.js:3923 +#: js/blocks.js:3958 +#: js/blocks.js:5862 +#: js/blocks.js:5883 +#: js/blocks/BoxesBlocks.js:772 +msgid "box1" msgstr "" -#: js/turtledefs.js:139 -#: js/turtledefs.js:241 -msgid "ensemble" +#: js/blocks.js:3450 +#: js/blocks.js:3890 +#: js/blocks.js:3925 +#: js/blocks.js:3960 +#: js/blocks.js:5864 +#: js/blocks.js:5885 +#: js/blocks/BoxesBlocks.js:663 +msgid "box2" msgstr "" -#: js/turtledefs.js:140 -#: js/turtledefs.js:242 -msgid "extras" +#: js/blocks.js:4122 +#: js/palette.js:639 +#: js/palette.js:644 +#: js/palette.js:1041 +#: js/blocks/BoxesBlocks.js:591 +msgid "store in" +msgstr "simpan di" + +#: js/blocks.js:4122 +#: js/blocks/BoxesBlocks.js:595 +#: js/blocks/DictBlocks.js:215 +#: js/blocks/DictBlocks.js:289 +#: js/blocks/EnsembleBlocks.js:391 +#: js/blocks/EnsembleBlocks.js:402 +#: js/blocks/MediaBlocks.js:746 +#: js/blocks/PitchBlocks.js:656 +#: js/blocks/PitchBlocks.js:934 +#: js/blocks/PitchBlocks.js:1866 +#: js/blocks/ProgramBlocks.js:390 +#: js/blocks/ProgramBlocks.js:495 +#: js/blocks/ProgramBlocks.js:658 +#: js/blocks/ToneBlocks.js:1025 +msgid "name" msgstr "" -#: js/turtledefs.js:142 -#: js/turtledefs.js:244 -#.TRANS: program as in computer program -#.TRANS: program as in computer program -msgid "program" +#: js/blocks.js:4122 +#: js/blocks/BoxesBlocks.js:75 +#: js/blocks/BoxesBlocks.js:595 +#: js/blocks/DictBlocks.js:289 +#: js/blocks/DictBlocks.js:430 +#: js/blocks/HeapBlocks.js:544 +#: js/blocks/RhythmBlocks.js:1130 +msgid "value" +msgstr "nilai" + +#: js/blocks.js:4465 +msgid "Forever loop detected inside a note value block. Unexpected things may happen." msgstr "" -#: js/turtledefs.js:143 -#: js/turtledefs.js:245 -msgid "my blocks" +#: js/blocks.js:4988 +msgid "There is no block selected." msgstr "" -#: js/turtledefs.js:185 -#: js/turtledefs.js:281 -msgid "artwork" +#: js/blocks.js:5091 +#: js/blocks/MediaBlocks.js:888 +msgid "show" msgstr "" -#: js/turtledefs.js:185 -#: js/turtledefs.js:281 -msgid "logic" +#: js/blocks.js:5094 +#: js/blocks/MediaBlocks.js:803 +#.TRANS: Avatar is the image used to determine the appearance of the mouse. +msgid "avatar" msgstr "" -#: js/turtledefs.js:185 -#: js/turtledefs.js:281 -msgid "music" +#: js/blocks.js:5097 +#: js/blocks/ToneBlocks.js:1010 +#: js/widgets/sampler.js:975 +#.TRANS: The sound sample that the user uploads. +msgid "sample" msgstr "" -#: js/turtledefs.js:187 -#: js/turtledefs.js:463 -msgid "Music Blocks is a collection of tools for exploring fundamental musical concepts in a fun way." +#: js/lilypond.js:606 +msgid "brown rat" msgstr "" -#: js/turtledefs.js:436 -msgid "Welcome to Turtle Blocks" +#: js/lilypond.js:607 +msgid "mole" msgstr "" -#: js/turtledefs.js:438 -#: js/turtledefs.js:465 -#: js/turtledefs.js:774 -#: js/turtledefs.js:805 -msgid "The current version is" +#: js/lilypond.js:608 +msgid "chipmunk" msgstr "" -#: js/turtledefs.js:446 -#: js/turtledefs.js:483 -msgid "Click the run button to run the project in fast mode." +#: js/lilypond.js:609 +msgid "red squirrel" msgstr "" -#: js/turtledefs.js:452 -msgid "Stop the turtle." +#: js/lilypond.js:610 +msgid "guinea pig" msgstr "" -#: js/turtledefs.js:454 -#: js/turtledefs.js:491 -msgid "You can also type Alt-S to stop." +#: js/lilypond.js:611 +msgid "capybara" msgstr "" -#: js/turtledefs.js:462 -#: js/help.js:333 -msgid "Welcome to Music Blocks" +#: js/lilypond.js:612 +msgid "coypu" msgstr "" -#: js/turtledefs.js:472 -#: js/help.js:334 -msgid "Meet Mr. Mouse!" +#: js/lilypond.js:613 +msgid "black rat" msgstr "" -#: js/turtledefs.js:473 -msgid "Mr Mouse is our Music Blocks conductor." +#: js/lilypond.js:614 +msgid "grey squirrel" msgstr "" -#: js/turtledefs.js:475 -msgid "Mr Mouse encourages you to explore Music Blocks." +#: js/lilypond.js:615 +msgid "flying squirrel" msgstr "" -#: js/turtledefs.js:477 -msgid "Let us start our tour!" +#: js/lilypond.js:616 +msgid "bat" msgstr "" -#: js/turtledefs.js:489 -msgid "Stop the music (and the mice)." +#: js/lilypond.js:749 +#: js/lilypond.js:913 +#: js/lilypond.js:951 +#: js/blocks/ActionBlocks.js:1256 +#: js/blocks/ExtrasBlocks.js:556 +msgid "start drum" msgstr "" -#: js/turtledefs.js:499 -msgid "Record your project as video." +#: js/logo.js:61 +msgid "Not a valid pitch name" msgstr "" -#: js/turtledefs.js:505 -msgid "Toggle Fullscreen mode." +#: js/logo.js:507 +#: js/blocks/ProgramBlocks.js:258 +#: js/blocks/ProgramBlocks.js:427 +msgid "You must select a file." msgstr "" -#: js/turtledefs.js:511 -msgid "Initialize a new project." +#: js/logo.js:1696 +msgid "Playback is ready." msgstr "" -#: js/turtledefs.js:517 -msgid "You can also load projects from the file system." +#: js/macros.js:711 +#: js/utils/musicutils.js:1162 +#: js/utils/synthutils.js:202 +#.TRANS: animal sound effect +msgid "duck" msgstr "" -#: js/turtledefs.js:522 -#: js/StringHelper.js:46 -msgid "Delete" +#: js/notation.js:353 +msgid "Lilypond cannot process pickup of " msgstr "" -#: js/turtledefs.js:523 -msgid "To delete a block, just right-click on it, then you will be able to see the delete option" +#: js/palette.js:571 +msgid "grid" msgstr "" -#: js/turtledefs.js:528 -#: js/activity.js:2270 -#: js/LocalCard.js:31 -msgid "Copy" -msgstr "Salin" +#: js/palette.js:580 +msgid "effect" +msgstr "" -#: js/turtledefs.js:529 -msgid "To copy a block, just right-click on it, then you will be able to see the copy option" +#: js/palette.js:586 +msgid "sargam" msgstr "" -#: js/turtledefs.js:535 -msgid "To extract a block, just right-click on it, then you will be able to see the extract option" +#: js/palette.js:601 +#: js/blocks/PitchBlocks.js:1209 +msgid "custom pitch" msgstr "" -#: js/turtledefs.js:542 -#: js/turtledefs.js:552 -#: js/turtledefs.js:573 -msgid "Save your project to a file." +#: js/palette.js:609 +msgid "accidental" msgstr "" -#: js/turtledefs.js:549 -#: js/turtledefs.js:570 -msgid "save" +#: js/palette.js:633 +#: js/blocks/PitchBlocks.js:405 +msgid "pitch converter" msgstr "" -#: js/turtledefs.js:556 -#: js/turtledefs.js:577 -msgid "Save graphics from your project to as SVG." +#: js/piemenus.js:200 +#: js/utils/musicutils.js:1187 +#: js/utils/musicutils.js:1207 +#: js/widgets/musickeyboard.js:2341 +#: js/widgets/phrasemaker.js:1908 +#: js/widgets/sampler.js:810 +#.TRANS: double sharp is a music term related to pitch +msgid "double sharp" msgstr "" -#: js/turtledefs.js:560 -#: js/turtledefs.js:581 -msgid "Save graphics from your project as PNG." +#: js/piemenus.js:201 +#: js/utils/musicutils.js:1185 +#: js/utils/musicutils.js:1208 +#: js/blocks/PitchBlocks.js:1539 +#: js/turtleactions/PitchActions.js:323 +#: js/widgets/musickeyboard.js:2342 +#: js/widgets/phrasemaker.js:1909 +#: js/widgets/sampler.js:811 +#.TRANS: sharp is a music term related to pitch +#.TRANS: sharp is a half-step up in pitch +msgid "sharp" msgstr "" -#: js/turtledefs.js:564 -#: js/turtledefs.js:597 -msgid "Save block artwork as an SVG file." +#: js/piemenus.js:202 +#: js/utils/musicutils.js:1183 +#: js/utils/musicutils.js:1209 +#: js/widgets/musickeyboard.js:2343 +#: js/widgets/phrasemaker.js:1910 +#: js/widgets/sampler.js:812 +#.TRANS: natural is a music term related to pitch +msgid "natural" msgstr "" -#: js/turtledefs.js:585 -msgid "Save audio from your project as WAV." +#: js/piemenus.js:203 +#: js/utils/musicutils.js:1181 +#: js/utils/musicutils.js:1210 +#: js/blocks/PitchBlocks.js:1498 +#: js/turtleactions/PitchActions.js:326 +#: js/widgets/musickeyboard.js:2344 +#: js/widgets/phrasemaker.js:1911 +#: js/widgets/sampler.js:813 +#.TRANS: flat is a music term related to pitch +#.TRANS: flat is a half-step down in pitch +msgid "flat" msgstr "" -#: js/turtledefs.js:589 -msgid "Save your project to as an ABC file." +#: js/piemenus.js:204 +#: js/utils/musicutils.js:1179 +#: js/utils/musicutils.js:1211 +#: js/widgets/musickeyboard.js:2345 +#: js/widgets/phrasemaker.js:1912 +#: js/widgets/sampler.js:814 +#.TRANS: double flat is a music term related to pitch +msgid "double flat" msgstr "" -#: js/turtledefs.js:593 -msgid "Save your project to as a Lilypond file." +#: js/piemenus.js:2864 +#: js/utils/musicutils.js:1006 +#: js/blocks/PitchBlocks.js:1385 +#.TRANS: unison is a music term related to intervals +#.TRANS: unison means the note is the same as the current note +msgid "unison" msgstr "" -#: js/turtledefs.js:604 -msgid "Load samples from server" +#: js/piemenus.js:3018 +#: js/piemenus.js:3091 +#: js/utils/musicutils.js:1014 +#: js/utils/musicutils.js:1189 +#: js/utils/musicutils.js:1326 +#.TRANS: major is a music term related to intervals and mode +msgid "major" msgstr "" -#: js/turtledefs.js:605 -msgid "This button opens a viewer for loading example projects." +#: js/piemenus.js:3018 +#: js/piemenus.js:3091 +#: js/utils/musicutils.js:1032 +#.TRANS: modal scale for music +msgid "ionian" msgstr "" -#: js/turtledefs.js:611 -msgid "Palette buttons" +#: js/piemenus.js:3020 +#: js/piemenus.js:3095 +#: js/utils/musicutils.js:1012 +#: js/utils/musicutils.js:1190 +#: js/utils/musicutils.js:1323 +#.TRANS: minor is a music term related to intervals and mode +msgid "minor" msgstr "" -#: js/turtledefs.js:612 -msgid "This toolbar contains the palette buttons including Rhythm Pitch Tone Action and more." +#: js/piemenus.js:3020 +#: js/piemenus.js:3095 +#: js/utils/musicutils.js:1042 +#.TRANS: modal scale for music +msgid "aeolian" msgstr "" -#: js/turtledefs.js:614 -msgid "Click to show the palettes of blocks and drag blocks from the palettes onto the canvas to use them." +#: js/piemenus.js:3410 +msgid "Duplicate" msgstr "" -#: js/turtledefs.js:620 -msgid "Cartesian/Polar" +#: js/piemenus.js:3412 +msgid "Move to trash" msgstr "" -#: js/turtledefs.js:621 -msgid "Show or hide a coordinate grid." +#: js/piemenus.js:3413 +#: js/widgets/timbre.js:968 +#: planet/js/StringHelper.js:69 +msgid "Close" msgstr "" -#: js/turtledefs.js:627 -msgid "Clear the screen and return the mice to their initial positions." +#: js/piemenus.js:3419 +msgid "Save stack" msgstr "" -#: js/turtledefs.js:633 -msgid "Collapse the graphics window." +#: js/piemenus.js:3449 +msgid "In order to copy a sample, you must reload the widget, import the sample again, and export it." msgstr "" -#: js/turtledefs.js:638 -#: js/activity.js:4256 -#: js/activity.js:4256 -msgid "Home" +#: js/piemenus.js:3812 +msgid "You have chosen key " msgstr "" -#: js/turtledefs.js:639 -msgid "Return all blocks to the center of the screen." +#: js/piemenus.js:3816 +msgid " for your pitch preview." msgstr "" -#: js/turtledefs.js:644 -msgid "Show/hide blocks" +#: js/turtle-singer.js:1363 +#.TRANS: partials are weighted components in a harmonic series +msgid "You must have at least one Partial block inside of a Weighted-partial block" msgstr "" -#: js/turtledefs.js:645 -msgid "Hide or show the blocks and the palettes." +#: js/turtle-singer.js:2077 +msgid "synth cannot play chords." msgstr "" -#: js/turtledefs.js:650 -msgid "Expand/collapse collapsable blocks" +#: js/utils/musicutils.js:505 +#: js/utils/musicutils.js:645 +#: js/widgets/pitchdrummatrix.js:228 +#: js/widgets/musickeyboard.js:2885 +msgid "rest" msgstr "" -#: js/turtledefs.js:651 -msgid "Expand or collapse start and action stacks." +#: js/utils/musicutils.js:689 +msgid "Perfect unison" msgstr "" -#: js/turtledefs.js:658 -#: js/activity.js:4265 -msgid "Decrease block size" +#: js/utils/musicutils.js:689 +msgid "Diminished second" msgstr "" -#: js/turtledefs.js:659 -msgid "Decrease the size of the blocks." +#: js/utils/musicutils.js:690 +msgid "Minor second" msgstr "" -#: js/turtledefs.js:664 -#: js/activity.js:4267 -msgid "Increase block size" +#: js/utils/musicutils.js:690 +msgid "Augmented unison" msgstr "" -#: js/turtledefs.js:665 -msgid "Increase the size of the blocks." +#: js/utils/musicutils.js:691 +msgid "Major second" msgstr "" -#: js/turtledefs.js:670 -msgid "Expand/collapse option toolbar" +#: js/utils/musicutils.js:691 +msgid "Diminished third" msgstr "" -#: js/turtledefs.js:671 -msgid "Click this button to expand or collapse the auxillary toolbar." +#: js/utils/musicutils.js:692 +msgid "Minor third" msgstr "" -#: js/turtledefs.js:676 -msgid "Run slow" +#: js/utils/musicutils.js:692 +msgid "Augmented second" msgstr "" -#: js/turtledefs.js:677 -msgid "Click to run the project in slow mode." +#: js/utils/musicutils.js:693 +msgid "Major third" msgstr "" -#: js/turtledefs.js:683 -msgid "Click to run the project step by step." +#: js/utils/musicutils.js:693 +msgid "Diminished fourth" msgstr "" -#: js/turtledefs.js:690 -msgid "Display statistics about your Music project." +#: js/utils/musicutils.js:694 +msgid "Perfect fourth" msgstr "" -#: js/turtledefs.js:697 -msgid "Delete a selected plugin." +#: js/utils/musicutils.js:694 +msgid "Augmented third" msgstr "" -#: js/turtledefs.js:704 -msgid "Enable scrolling" +#: js/utils/musicutils.js:695 +msgid "Diminished fifth" msgstr "" -#: js/turtledefs.js:705 -msgid "You can scroll the blocks on the canvas." +#: js/utils/musicutils.js:695 +msgid "Augmented fourth" msgstr "" -#: js/turtledefs.js:714 -msgid "Wrap Turtle" +#: js/utils/musicutils.js:696 +msgid "Perfect fifth" msgstr "" -#: js/turtledefs.js:715 -msgid "Turn Turtle wrapping On or Off." +#: js/utils/musicutils.js:696 +msgid "Diminished sixth" msgstr "" -#: js/turtledefs.js:725 -msgid "Restore blocks from the trash." +#: js/utils/musicutils.js:697 +msgid "Minor sixth" msgstr "" -#: js/turtledefs.js:732 -msgid "Switch mode" +#: js/utils/musicutils.js:697 +msgid "Augmented fifth" msgstr "" -#: js/turtledefs.js:733 -msgid "Switch between beginner and advance modes." +#: js/utils/musicutils.js:698 +msgid "Major sixth" msgstr "" -#: js/turtledefs.js:739 -msgid "Select your language preference." +#: js/utils/musicutils.js:698 +msgid "Diminished seventh" msgstr "" -#: js/turtledefs.js:745 -msgid "Keyboard shortcuts" +#: js/utils/musicutils.js:699 +msgid "Minor seventh" msgstr "" -#: js/turtledefs.js:746 -msgid "You can type d to create a do block and r to create a re block etc." +#: js/utils/musicutils.js:699 +msgid "Augmented sixth" msgstr "" -#: js/turtledefs.js:753 -msgid "Show these messages." +#: js/utils/musicutils.js:700 +msgid "Major seventh" msgstr "" -#: js/turtledefs.js:759 -#: js/turtledefs.js:790 -#: js/help.js:335 -msgid "Guide" +#: js/utils/musicutils.js:700 +msgid "Diminished octave" msgstr "" -#: js/turtledefs.js:760 -msgid "A detailed guide to Turtle Blocks is available." +#: js/utils/musicutils.js:701 +msgid "Perfect octave" msgstr "" -#: js/turtledefs.js:764 -msgid "Turtle Blocks Guide" +#: js/utils/musicutils.js:701 +msgid "Augmented seventh" msgstr "" -#: js/turtledefs.js:767 -#: js/turtledefs.js:798 -#: js/help.js:336 -msgid "About" +#: js/utils/musicutils.js:702 +msgid "Minor ninth" msgstr "" -#: js/turtledefs.js:768 -msgid "Turtle Blocks is an open source collection of tools for exploring musical concepts." +#: js/utils/musicutils.js:702 +msgid "Augmented octave" msgstr "" -#: js/turtledefs.js:770 -msgid "A full list of contributors can be found in the Turtle Blocks GitHub repository." +#: js/utils/musicutils.js:703 +msgid "Major ninth" msgstr "" -#: js/turtledefs.js:772 -msgid "Turtle Blocks is licensed under the AGPL." +#: js/utils/musicutils.js:703 +msgid "Diminished tenth" msgstr "" -#: js/turtledefs.js:780 -msgid "Turtle Blocks GitHub repository" +#: js/utils/musicutils.js:704 +msgid "Minor tenth" msgstr "" -#: js/turtledefs.js:783 -#: js/turtledefs.js:814 -#: js/help.js:337 -#: js/help.js:359 -msgid "Congratulations." +#: js/utils/musicutils.js:704 +msgid "Augmented ninth" msgstr "" -#: js/turtledefs.js:784 -msgid "You have finished the tour. Please enjoy Turtle Blocks!" +#: js/utils/musicutils.js:705 +msgid "Major tenth" msgstr "" -#: js/turtledefs.js:791 -msgid "A detailed guide to Music Blocks is available." +#: js/utils/musicutils.js:705 +msgid "Diminished eleventh" msgstr "" -#: js/turtledefs.js:795 -#: js/SaveInterface.js:76 -msgid "Music Blocks Guide" +#: js/utils/musicutils.js:706 +msgid "Perfect eleventh" msgstr "" -#: js/turtledefs.js:799 -msgid "Music Blocks is an open source collection of tools for exploring musical concepts." +#: js/utils/musicutils.js:706 +msgid "Augmented tenth" msgstr "" -#: js/turtledefs.js:801 -msgid "A full list of contributors can be found in the Music Blocks GitHub repository." +#: js/utils/musicutils.js:707 +msgid "Diminished twelfth" msgstr "" -#: js/turtledefs.js:803 -msgid "Music Blocks is licensed under the AGPL." +#: js/utils/musicutils.js:707 +msgid "Augmented eleventh" msgstr "" -#: js/turtledefs.js:811 -msgid "Music Blocks GitHub repository" +#: js/utils/musicutils.js:708 +msgid "Perfect twelfth" msgstr "" -#: js/turtledefs.js:815 -msgid "You have finished the tour. Please enjoy Music Blocks!" +#: js/utils/musicutils.js:708 +msgid "Diminished thirteenth" msgstr "" -#: js/activity.js:369 -msgid "Search for blocks" +#: js/utils/musicutils.js:709 +msgid "Minor thirteenth" msgstr "" -#: js/activity.js:1145 -msgid "Refresh your browser to change to advanced mode." +#: js/utils/musicutils.js:709 +msgid "Augmented fifth, plus an octave" msgstr "" -#: js/activity.js:1150 -msgid "Refresh your browser to change to beginner mode." +#: js/utils/musicutils.js:710 +msgid "Major thirteenth" msgstr "" -#: js/activity.js:1184 -msgid "Catching mice" +#: js/utils/musicutils.js:710 +msgid "Diminished seventh, plus an octave" msgstr "" -#: js/activity.js:1185 -msgid "Cleaning the instruments" +#: js/utils/musicutils.js:838 +#.TRANS: ordinal number. Please keep exactly one space between each number. +msgid "1st 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th" msgstr "" -#: js/activity.js:1186 -msgid "Testing key pieces" +#: js/utils/musicutils.js:1008 +#: js/utils/musicutils.js:1191 +#: js/utils/musicutils.js:1325 +#.TRANS: augmented is a music term related to intervals +msgid "augmented" msgstr "" -#: js/activity.js:1187 -msgid "Sight-reading" +#: js/utils/musicutils.js:1010 +#: js/utils/musicutils.js:1192 +#: js/utils/musicutils.js:1324 +#.TRANS: diminished is a music term related to intervals and mode +msgid "diminished" msgstr "" -#: js/activity.js:1188 -msgid "Combining math and music" +#: js/utils/musicutils.js:1016 +#: js/utils/musicutils.js:1322 +#: js/blocks/IntervalsBlocks.js:649 +#: js/turtleactions/IntervalsActions.js:120 +#: js/turtleactions/IntervalsActions.js:124 +#.TRANS: perfect is a music term related to intervals +msgid "perfect" msgstr "" -#: js/activity.js:1189 -msgid "Generating more blocks" +#: js/utils/musicutils.js:1018 +#.TRANS: twelve semi-tone scale for music +msgid "chromatic" msgstr "" -#: js/activity.js:1190 -msgid "Do Re Mi Fa Sol La Ti Do" +#: js/utils/musicutils.js:1019 +msgid "algerian" msgstr "" -#: js/activity.js:1191 -msgid "Tuning string instruments" +#: js/utils/musicutils.js:1020 +msgid "spanish" msgstr "" -#: js/activity.js:1192 -msgid "Pressing random keys" +#: js/utils/musicutils.js:1022 +#.TRANS: modal scale in music +msgid "octatonic" msgstr "" -#: js/activity.js:1351 -msgid "plugins will be removed upon restart." +#: js/utils/musicutils.js:1024 +#.TRANS: harmonic major scale in music +msgid "harmonic major" msgstr "" -#: js/activity.js:1360 -msgid "show Cartesian" +#: js/utils/musicutils.js:1026 +#.TRANS: natural minor scales in music +msgid "natural minor" msgstr "" -#: js/activity.js:1842 -msgid "output tools" +#: js/utils/musicutils.js:1028 +#.TRANS: harmonic minor scale in music +msgid "harmonic minor" msgstr "" -#: js/activity.js:1845 -msgid "custom note" +#: js/utils/musicutils.js:1030 +#.TRANS: melodic minor scale in music +msgid "melodic minor" msgstr "" -#: js/activity.js:1848 -msgid "accidental name" +#: js/utils/musicutils.js:1034 +#.TRANS: modal scale for music +msgid "dorian" msgstr "" -#: js/activity.js:1851 -#: js/PitchBlocks.js:855 -msgid "east indian solfege" +#: js/utils/musicutils.js:1036 +#.TRANS: modal scale for music +msgid "phrygian" msgstr "" -#: js/activity.js:1854 -#: js/PitchBlocks.js:869 -msgid "note name" +#: js/utils/musicutils.js:1038 +#.TRANS: modal scale for music +msgid "lydian" msgstr "" -#: js/activity.js:1857 -#: js/IntervalsBlocks.js:94 -msgid "temperament name" +#: js/utils/musicutils.js:1040 +#.TRANS: modal scale for music +msgid "mixolydian" msgstr "" -#: js/activity.js:1863 -msgid "chord name" +#: js/utils/musicutils.js:1044 +#.TRANS: modal scale for music +msgid "locrian" msgstr "" -#: js/activity.js:1869 -msgid "filter type" +#: js/utils/musicutils.js:1046 +#.TRANS: minor jazz scale for music +msgid "jazz minor" msgstr "" -#: js/activity.js:1872 -msgid "oscillator type" +#: js/utils/musicutils.js:1048 +#.TRANS: bebop scale for music +msgid "bebop" msgstr "" -#: js/activity.js:1878 -#: js/DrumBlocks.js:32 -msgid "noise name" +#: js/utils/musicutils.js:1049 +msgid "arabic" msgstr "" -#: js/activity.js:1881 -#: js/DrumBlocks.js:75 -msgid "drum name" +#: js/utils/musicutils.js:1050 +msgid "byzantine" msgstr "" -#: js/activity.js:1884 -#: js/DrumBlocks.js:119 -msgid "effects name" +#: js/utils/musicutils.js:1052 +#.TRANS: musical scale for music by Verdi +msgid "enigmatic" msgstr "" -#: js/activity.js:1887 -msgid "wrap mode" +#: js/utils/musicutils.js:1053 +msgid "ethiopian" msgstr "" -#: js/activity.js:1890 -msgid "load file" +#: js/utils/musicutils.js:1055 +#.TRANS: Ethiopic scale for music +msgid "geez" msgstr "" -#: js/activity.js:2056 -msgid "This block is deprecated." +#: js/utils/musicutils.js:1056 +msgid "hindu" msgstr "" -#: js/activity.js:2058 -msgid "Block cannot be found." +#: js/utils/musicutils.js:1057 +msgid "hungarian" msgstr "" -#: js/activity.js:2266 -msgid "Saving block artwork" +#: js/utils/musicutils.js:1059 +#.TRANS: minor Romanian scale for music +msgid "romanian minor" msgstr "" -#: js/activity.js:2277 -msgid "Erase" +#: js/utils/musicutils.js:1060 +msgid "spanish gypsy" msgstr "" -#: js/activity.js:2301 -#: js/activity.js:2323 -msgid "Paste" +#: js/utils/musicutils.js:1062 +#.TRANS: musical scale for Mid-Eastern music +msgid "maqam" msgstr "" -#: js/activity.js:2305 -msgid "Save block help" +#: js/utils/musicutils.js:1064 +#.TRANS: minor blues scale for music +msgid "minor blues" msgstr "" -#: js/activity.js:2390 -msgid "Jumping to the bottom of the page." +#: js/utils/musicutils.js:1066 +#.TRANS: major blues scale for music +msgid "major blues" msgstr "" -#: js/activity.js:2396 -msgid "Scrolling up." +#: js/utils/musicutils.js:1067 +msgid "whole tone" msgstr "" -#: js/activity.js:2401 -msgid "Scrolling down." +#: js/utils/musicutils.js:1069 +#.TRANS: pentatonic is a general term that means "five note scale". This scale is typically known as "minor pentatonic" +msgid "minor pentatonic" msgstr "" -#: js/activity.js:2406 -msgid "Extracting block" +#: js/utils/musicutils.js:1071 +#.TRANS: pentatonic is a general term that means "five note scale". This scale is typically known as "major pentatonic" +msgid "major pentatonic" msgstr "" -#: js/activity.js:2414 -msgid "Moving block up." +#: js/utils/musicutils.js:1072 +msgid "chinese" msgstr "" -#: js/activity.js:2435 -msgid "Moving block down." +#: js/utils/musicutils.js:1073 +msgid "egyptian" msgstr "" -#: js/activity.js:2456 -msgid "Moving block left." +#: js/utils/musicutils.js:1075 +#.TRANS: https://en.wikipedia.org/wiki/Hirajoshi_scale NOTE: There are three different versions of this scale +msgid "hirajoshi" msgstr "" -#: js/activity.js:2473 -msgid "Moving block right." +#: js/utils/musicutils.js:1076 +msgid "Japan" msgstr "" -#: js/activity.js:2488 -msgid "Jump to home position." +#: js/utils/musicutils.js:1078 +#.TRANS: https://en.wikipedia.org/wiki/In_scale and https://en.wikipedia.org/wiki/Sakura_Sakura +msgid "in" msgstr "" -#: js/activity.js:2515 -msgid "Hide blocks" +#: js/utils/musicutils.js:1080 +#.TRANS: https://en.wikipedia.org/wiki/Miny%C5%8D_scale +msgid "minyo" msgstr "" -#: js/activity.js:3389 -msgid "Click the run button to run the project." +#: js/utils/musicutils.js:1082 +#.TRANS: Italian mathematician +msgid "fibonacci" msgstr "" -#: js/activity.js:3456 -#: js/SaveInterface.js:131 -#: js/SaveInterface.js:204 -#: js/SaveInterface.js:262 -#: js/SaveInterface.js:389 -#: js/SaveInterface.js:417 -#: js/ProjectStorage.js:27 -#: js/GlobalPlanet.js:467 -#: js/GlobalPlanet.js:469 -#: js/GlobalPlanet.js:495 -#.TRANS: default project title when saving as Lilypond -msgid "My Project" +#: js/utils/musicutils.js:1083 +#: js/utils/musicutils.js:1134 +#: js/utils/musicutils.js:1177 +#: js/utils/musicutils.js:1199 +#: js/utils/synthutils.js:134 +#: js/blocks/IntervalsBlocks.js:1124 +#: js/blocks/ToneBlocks.js:946 +#: js/blocks/VolumeBlocks.js:411 +#: js/blocks/WidgetBlocks.js:399 +#: js/blocks/WidgetBlocks.js:404 +#: js/turtleactions/VolumeActions.js:218 +#: js/widgets/modewidget.js:919 +#.TRANS: customize voice +msgid "custom" msgstr "" -#: js/activity.js:4261 -msgid "Show/hide block" +#: js/utils/musicutils.js:1085 +#: js/utils/musicutils.js:1531 +#: js/blocks/WidgetBlocks.js:176 +#.TRANS: highpass filter +msgid "highpass" msgstr "" -#: js/activity.js:4263 -msgid "Expand/collapse blocks" +#: js/utils/musicutils.js:1087 +#: js/utils/musicutils.js:1532 +#.TRANS: lowpass filter +msgid "lowpass" msgstr "" -#: js/activity.js:4381 -msgid "Could not parse JSON input." +#: js/utils/musicutils.js:1089 +#: js/utils/musicutils.js:1533 +#.TRANS: bandpass filter +msgid "bandpass" msgstr "" -#: js/activity.js:4684 -#: js/activity.js:4771 -#: js/activity.js:4821 -msgid "Cannot load project from the file. Please check the file type." +#: js/utils/musicutils.js:1091 +#: js/utils/musicutils.js:1534 +#.TRANS: high-shelf filter +msgid "highshelf" msgstr "" -#: js/activity.js:5051 -msgid "Invalid parameters" +#: js/utils/musicutils.js:1093 +#: js/utils/musicutils.js:1535 +#.TRANS: low-shelf filter +msgid "lowshelf" msgstr "" -#: js/turtle-singer.js:1334 -#.TRANS: partials are weighted components in a harmonic series -msgid "You must have at least one Partial block inside of a Weighted-partial block" +#: js/utils/musicutils.js:1095 +#: js/utils/musicutils.js:1536 +#.TRANS: notch-shelf filter +msgid "notch" msgstr "" -#: js/turtle-singer.js:2048 -msgid "synth cannot play chords." +#: js/utils/musicutils.js:1097 +#: js/utils/musicutils.js:1537 +#.TRANS: all-pass filter +msgid "allpass" msgstr "" -#: js/lilypond.js:614 -msgid "brown rat" +#: js/utils/musicutils.js:1099 +#: js/utils/musicutils.js:1538 +#.TRANS: peaking filter +msgid "peaking" msgstr "" -#: js/lilypond.js:615 -msgid "mole" +#: js/utils/musicutils.js:1100 +#: js/utils/musicutils.js:1546 +#: js/utils/synthutils.js:126 +#: js/blocks/PitchBlocks.js:85 +#.TRANS: sine wave +msgid "sine" msgstr "" -#: js/lilypond.js:616 -msgid "chipmunk" +#: js/utils/musicutils.js:1101 +#: js/utils/musicutils.js:1547 +#: js/utils/synthutils.js:128 +#: js/blocks/PitchBlocks.js:39 +#.TRANS: square wave +msgid "square" msgstr "" -#: js/lilypond.js:617 -msgid "red squirrel" +#: js/utils/musicutils.js:1102 +#: js/utils/musicutils.js:1548 +#: js/utils/synthutils.js:132 +#: js/blocks/PitchBlocks.js:62 +#: js/blocks/ToneBlocks.js:39 +#.TRANS: triangle wave +msgid "triangle" msgstr "" -#: js/lilypond.js:618 -msgid "guinea pig" +#: js/utils/musicutils.js:1103 +#: js/utils/musicutils.js:1549 +#: js/utils/synthutils.js:130 +#: js/blocks/PitchBlocks.js:108 +#.TRANS: sawtooth wave +msgid "sawtooth" msgstr "" -#: js/lilypond.js:619 -msgid "capybara" +#: js/utils/musicutils.js:1105 +#: js/utils/musicutils.js:1312 +#: js/blocks/PitchBlocks.js:931 +#: js/blocks/PitchBlocks.js:937 +#: js/turtleactions/PitchActions.js:469 +#.TRANS: even numbers +#.TRANS: invert based on even or odd number or musical scale +msgid "even" msgstr "" -#: js/lilypond.js:620 -msgid "coypu" +#: js/utils/musicutils.js:1107 +#: js/utils/musicutils.js:1313 +#: js/blocks/PitchBlocks.js:937 +#: js/turtleactions/PitchActions.js:471 +#.TRANS: odd numbers +msgid "odd" msgstr "" -#: js/lilypond.js:621 -msgid "black rat" +#: js/utils/musicutils.js:1108 +#: js/utils/musicutils.js:1314 +#: js/blocks/PitchBlocks.js:937 +#: js/turtleactions/PitchActions.js:473 +msgid "scalar" msgstr "" -#: js/lilypond.js:622 -msgid "grey squirrel" +#: js/utils/musicutils.js:1109 +#: js/utils/synthutils.js:72 +#: js/blocks/VolumeBlocks.js:47 +#.TRANS: musical instrument +msgid "piano" msgstr "" -#: js/lilypond.js:623 -msgid "flying squirrel" +#: js/utils/musicutils.js:1110 +#: js/utils/synthutils.js:74 +#.TRANS: musical instrument +msgid "violin" msgstr "" -#: js/lilypond.js:624 -msgid "bat" +#: js/utils/musicutils.js:1111 +#: js/utils/synthutils.js:76 +#.TRANS: viola musical instrument +msgid "viola" msgstr "" -#: js/lilypond.js:757 -#: js/lilypond.js:921 -#: js/lilypond.js:959 -#: js/ActionBlocks.js:1256 -#: js/ExtrasBlocks.js:553 -msgid "start drum" +#: js/utils/musicutils.js:1112 +#: js/utils/synthutils.js:114 +#.TRANS: xylophone musical instrument +msgid "xylophone" msgstr "" -#: js/SaveInterface.js:59 -#: js/SaveInterface.js:61 -#: js/SaveInterface.js:93 -msgid "Music Blocks Project" +#: js/utils/musicutils.js:1113 +#: js/utils/synthutils.js:136 +#.TRANS: vibraphone musical instrument +msgid "vibraphone" msgstr "" -#: js/SaveInterface.js:63 -msgid "This project was created in Music Blocks" +#: js/utils/musicutils.js:1114 +#: js/utils/synthutils.js:78 +#.TRANS: musical instrument +msgid "cello" msgstr "" -#: js/SaveInterface.js:67 -msgid "Music Blocks is a Free/Libre Software application." +#: js/utils/musicutils.js:1116 +#: js/utils/synthutils.js:82 +#.TRANS: viola musical instrument +msgid "double bass" msgstr "" -#: js/SaveInterface.js:69 -msgid "The source code can be accessed at" +#: js/utils/musicutils.js:1117 +#: js/utils/synthutils.js:84 +#: js/widgets/rhythmruler.js:2511 +#.TRANS: musical instrument +msgid "guitar" msgstr "" -#: js/SaveInterface.js:72 -msgid "For more information, please consult the" +#: js/utils/musicutils.js:1118 +#: js/utils/synthutils.js:86 +#.TRANS: musical instrument +msgid "acoustic guitar" msgstr "" -#: js/SaveInterface.js:83 -msgid "Alternatively, open the file in Music Blocks using the Load project button." +#: js/utils/musicutils.js:1119 +#: js/utils/synthutils.js:88 +#.TRANS: musical instrument +msgid "flute" msgstr "" -#: js/SaveInterface.js:85 -msgid "Project Code" +#: js/utils/musicutils.js:1120 +#: js/utils/synthutils.js:90 +#.TRANS: musical instrument +msgid "clarinet" msgstr "" -#: js/SaveInterface.js:87 -msgid "This code stores data about the blocks in a project." +#: js/utils/musicutils.js:1121 +#: js/utils/synthutils.js:92 +#.TRANS: musical instrument +msgid "saxophone" msgstr "" -#: js/SaveInterface.js:89 -msgid "Show" +#: js/utils/musicutils.js:1122 +#: js/utils/synthutils.js:94 +#.TRANS: musical instrument +msgid "tuba" msgstr "" -#: js/SaveInterface.js:91 -msgid "Hide" +#: js/utils/musicutils.js:1123 +#: js/utils/synthutils.js:96 +#.TRANS: musical instrument +msgid "trumpet" msgstr "" -#: js/SaveInterface.js:197 -#: js/SaveInterface.js:58 -msgid "No description provided" +#: js/utils/musicutils.js:1124 +#: js/utils/synthutils.js:98 +#.TRANS: musical instrument +msgid "oboe" msgstr "" -#: js/SaveInterface.js:332 -msgid "Your recording is in progress." +#: js/utils/musicutils.js:1125 +#: js/utils/synthutils.js:100 +#.TRANS: musical instrument +msgid "trombone" msgstr "" -#: js/SaveInterface.js:401 -#.TRANS: File name prompt for save as Lilypond -msgid "File name" +#: js/utils/musicutils.js:1126 +#: js/utils/synthutils.js:116 +#.TRANS: polytone synthesizer +msgid "electronic synth" msgstr "" -#: js/SaveInterface.js:403 -#: js/StringHelper.js:39 -#.TRANS: Project title prompt for save as Lilypond -msgid "Project title" +#: js/utils/musicutils.js:1127 +#: js/utils/synthutils.js:118 +#.TRANS: simple monotone synthesizer +msgid "simple 1" msgstr "" -#: js/SaveInterface.js:405 -#.TRANS: Project title prompt for save as Lilypond -msgid "Project author" +#: js/utils/musicutils.js:1128 +msgid "simple 2" msgstr "" -#: js/SaveInterface.js:407 -#.TRANS: MIDI prompt for save as Lilypond -msgid "Include MIDI output?" +#: js/utils/musicutils.js:1129 +msgid "simple 3" msgstr "" -#: js/SaveInterface.js:409 -#.TRANS: Guitar prompt for save as Lilypond -msgid "Include guitar tablature output?" +#: js/utils/musicutils.js:1130 +msgid "simple 4" msgstr "" -#: js/SaveInterface.js:411 -#.TRANS: Lilypond is a scripting language for generating sheet music -msgid "Save as Lilypond" +#: js/utils/musicutils.js:1131 +#: js/utils/synthutils.js:58 +#: js/blocks/DrumBlocks.js:191 +#.TRANS: white noise synthesizer +msgid "white noise" msgstr "" -#: js/SaveInterface.js:426 -#: js/EnsembleBlocks.js:75 -#: js/EnsembleBlocks.js:154 -#: js/EnsembleBlocks.js:216 -#: js/EnsembleBlocks.js:302 -#: js/EnsembleBlocks.js:348 -#: js/EnsembleBlocks.js:389 -#: js/EnsembleBlocks.js:441 -#: js/EnsembleBlocks.js:490 -#: js/EnsembleBlocks.js:536 -#: js/EnsembleBlocks.js:583 -#: js/EnsembleBlocks.js:637 -#: js/EnsembleBlocks.js:753 -#: js/EnsembleBlocks.js:840 -#: js/EnsembleBlocks.js:899 -#: js/EnsembleBlocks.js:942 -#: js/EnsembleBlocks.js:1212 -#: js/EnsembleBlocks.js:1280 -#.TRANS: default project author when saving as Lilypond -msgid "Mr. Mouse" +#: js/utils/musicutils.js:1132 +#: js/utils/synthutils.js:60 +#.TRANS: brown noise synthesizer +msgid "brown noise" msgstr "" -#: js/SaveInterface.js:573 -msgid "The Lilypond code is copied to clipboard. You can paste it here: " +#: js/utils/musicutils.js:1133 +#: js/utils/synthutils.js:62 +#.TRANS: pink noise synthesizer +msgid "pink noise" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:50 -#: js/RhythmBlockPaletteBlocks.js:232 -#.TRANS: rhythm block -#.TRANS: translate "rhythm1" as rhythm -msgid "rhythm1" +#: js/utils/musicutils.js:1135 +#: js/utils/synthutils.js:148 +#: js/widgets/rhythmruler.js:2057 +#: js/widgets/rhythmruler.js:2319 +#.TRANS: musical instrument +msgid "snare drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:70 -#: js/RhythmBlockPaletteBlocks.js:251 -#: js/RhythmBlockPaletteBlocks.js:484 -#: js/RhythmBlockPaletteBlocks.js:553 -#: js/RhythmBlockPaletteBlocks.js:874 -msgid "number of notes" +#: js/utils/musicutils.js:1136 +#: js/utils/synthutils.js:150 +#.TRANS: musical instrument +msgid "kick drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:126 -msgid "polyphonic rhythm" +#: js/utils/musicutils.js:1137 +#: js/utils/synthutils.js:152 +#.TRANS: musical instrument +msgid "tom tom" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:218 -msgid "The Rhythm block is used to generate rhythm patterns." +#: js/utils/musicutils.js:1138 +#: js/utils/synthutils.js:154 +#.TRANS: musical instrument +msgid "floor tom" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:279 -msgid "1/64 note" +#: js/utils/musicutils.js:1139 +#: js/utils/synthutils.js:156 +#.TRANS: musical instrument +msgid "bass drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:303 -msgid "1/32 note" +#: js/utils/musicutils.js:1140 +#: js/utils/synthutils.js:158 +#.TRANS: a drum made from an inverted cup +msgid "cup drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:331 -msgid "1/16 note" +#: js/utils/musicutils.js:1141 +#: js/utils/synthutils.js:160 +#.TRANS: musical instrument +msgid "darbuka drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:359 -msgid "eighth note" +#: js/utils/musicutils.js:1142 +#: js/utils/synthutils.js:164 +#.TRANS: musical instrument +msgid "hi hat" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:387 -msgid "quarter note" +#: js/utils/musicutils.js:1143 +#: js/utils/synthutils.js:166 +#.TRANS: a small metal bell +msgid "ride bell" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:415 -msgid "half note" +#: js/utils/musicutils.js:1144 +#: js/utils/synthutils.js:168 +#.TRANS: musical instrument +msgid "cow bell" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:443 -msgid "whole note" +#: js/utils/musicutils.js:1145 +msgid "japanese drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:481 -#: js/RhythmBlockPaletteBlocks.js:550 -#: js/RhythmBlockPaletteBlocks.js:601 -#.TRANS: A tuplet is a note value divided into irregular time values. -msgid "tuplet" +#: js/utils/musicutils.js:1146 +#: js/utils/synthutils.js:174 +#.TRANS: musical instrument +msgid "japanese bell" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:767 -msgid "septuplet" +#: js/utils/musicutils.js:1147 +#: js/utils/synthutils.js:170 +#.TRANS: musical instrument +msgid "triangle bell" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:795 -msgid "quintuplet" +#: js/utils/musicutils.js:1148 +#: js/utils/synthutils.js:172 +#.TRANS: musical instrument +msgid "finger cymbals" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:823 -msgid "triplet" +#: js/utils/musicutils.js:1149 +#: js/utils/synthutils.js:176 +#.TRANS: a musically tuned set of bells +msgid "chime" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:850 -msgid "simple tuplet" +#: js/utils/musicutils.js:1150 +#: js/utils/synthutils.js:178 +#.TRANS: a musical instrument +msgid "gong" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:860 -msgid "Tuplets are a collection of notes that get scaled to a specific duration." +#: js/utils/musicutils.js:1151 +#: js/utils/synthutils.js:180 +#.TRANS: sound effect +msgid "clang" msgstr "" -#: js/WidgetBlocks.js:71 -#.TRANS: sound envelope (ADSR) -msgid "envelope" +#: js/utils/musicutils.js:1152 +#: js/utils/synthutils.js:182 +#.TRANS: sound effect +msgid "crash" msgstr "" -#: js/WidgetBlocks.js:79 -#.TRANS: Attack time is the time taken for initial run-up of level from nil to peak, beginning when the key is first pressed. -msgid "attack" +#: js/utils/musicutils.js:1153 +#: js/utils/synthutils.js:184 +#.TRANS: sound effect +msgid "bottle" msgstr "" -#: js/WidgetBlocks.js:81 -#.TRANS: Decay time is the time taken for the subsequent run down from the attack level to the designated sustain level. -msgid "decay" +#: js/utils/musicutils.js:1154 +#: js/utils/synthutils.js:186 +#.TRANS: sound effect +msgid "clap" msgstr "" -#: js/WidgetBlocks.js:83 -#.TRANS: Sustain level is the level during the main sequence of the sound's duration, until the key is released. -msgid "sustain" +#: js/utils/musicutils.js:1155 +#: js/utils/synthutils.js:188 +#.TRANS: sound effect +msgid "slap" msgstr "" -#: js/WidgetBlocks.js:85 -#.TRANS: Release time is the time taken for the level to decay from the sustain level to zero after the key is released. -msgid "release" +#: js/utils/musicutils.js:1156 +#: js/utils/synthutils.js:190 +#.TRANS: sound effect +msgid "splash" msgstr "" -#: js/WidgetBlocks.js:96 -msgid "Attack value should be from 0 to 100." +#: js/utils/musicutils.js:1157 +#: js/utils/synthutils.js:192 +#.TRANS: sound effect +msgid "bubbles" msgstr "" -#: js/WidgetBlocks.js:99 -msgid "Decay value should be from 0 to 100." +#: js/utils/musicutils.js:1158 +#: js/utils/synthutils.js:194 +#.TRANS: sound effect +msgid "raindrop" msgstr "" -#: js/WidgetBlocks.js:102 -msgid "Sustain value should be from 0 to 100." +#: js/utils/musicutils.js:1159 +#: js/utils/synthutils.js:196 +#.TRANS: animal sound effect +msgid "cat" msgstr "" -#: js/WidgetBlocks.js:105 -msgid "Release value should be from 0-100." +#: js/utils/musicutils.js:1160 +#: js/utils/synthutils.js:198 +#.TRANS: animal sound effect +msgid "cricket" msgstr "" -#: js/WidgetBlocks.js:121 -msgid "You are adding multiple envelope blocks." +#: js/utils/musicutils.js:1161 +#: js/utils/synthutils.js:200 +#.TRANS: animal sound effect +msgid "dog" msgstr "" -#: js/WidgetBlocks.js:144 -#.TRANS: a filter removes some unwanted components from a signal -msgid "filter" +#: js/utils/musicutils.js:1163 +#: js/utils/synthutils.js:102 +#.TRANS: musical instrument +msgid "banjo" msgstr "" -#: js/WidgetBlocks.js:149 -#: js/musicutils.js:706 -#: js/musicutils.js:1105 -#.TRANS: highpass filter -msgid "highpass" +#: js/utils/musicutils.js:1164 +#: js/utils/synthutils.js:104 +#.TRANS: musical instrument +msgid "koto" msgstr "" -#: js/WidgetBlocks.js:152 -#: js/ToneBlocks.js:42 -#: js/timbre.js:1558 -#: js/timbre.js:1808 -#.TRANS: type of filter, e.g., lowpass, highpass, etc. -#.TRANS: there are different types (sine, triangle, square...) of oscillators. -msgid "type" +#: js/utils/musicutils.js:1165 +#: js/utils/synthutils.js:106 +#.TRANS: musical instrument +msgid "dulcimer" msgstr "" -#: js/WidgetBlocks.js:154 -#: js/timbre.js:1818 -#.TRANS: rolloff is the steepness of a change in frequency. -msgid "rolloff" +#: js/utils/musicutils.js:1166 +#: js/utils/synthutils.js:108 +#.TRANS: musical instrument +msgid "electric guitar" msgstr "" -#: js/WidgetBlocks.js:155 -#: js/MediaBlocks.js:692 -#: js/temperament.js:382 -#: js/temperament.js:417 -#: js/temperament.js:477 -#: js/temperament.js:485 -#: js/temperament.js:1348 -#: js/timbre.js:1842 -msgid "frequency" +#: js/utils/musicutils.js:1167 +#: js/utils/synthutils.js:110 +#.TRANS: musical instrument +msgid "bassoon" msgstr "" -#: js/WidgetBlocks.js:179 -#.TRANS: rolloff is the steepness of a change in frequency. -msgid "Rolloff value should be either -12, -24, -48, or -96 decibels/octave." +#: js/utils/musicutils.js:1168 +#: js/utils/synthutils.js:112 +#.TRANS: musical instrument +msgid "celeste" msgstr "" -#: js/WidgetBlocks.js:211 -msgid "The Temperament tool is used to define custom tuning." +#: js/utils/musicutils.js:1170 +#: js/widgets/temperament.js:787 +#.TRANS: musical temperament +msgid "equal" msgstr "" -#: js/WidgetBlocks.js:277 -#: js/sampler.js:329 -msgid "Upload a sample and adjust its pitch center." +#: js/utils/musicutils.js:1172 +#.TRANS: musical temperament +msgid "Pythagorean" msgstr "" -#: js/WidgetBlocks.js:284 -#.TRANS: the speed at music is should be played. -msgid "sampler" +#: js/utils/musicutils.js:1174 +#.TRANS: musical temperament +msgid "just intonation" msgstr "" -#: js/WidgetBlocks.js:329 -#: js/WidgetBlocks.js:334 -#: js/IntervalsBlocks.js:928 -#: js/VolumeBlocks.js:411 -#: js/ToneBlocks.js:946 -#: js/VolumeActions.js:218 -#: js/musicutils.js:704 -#: js/musicutils.js:755 -#: js/musicutils.js:798 -#: js/musicutils.js:820 -#: js/musicutils.js:1136 -#: js/synthutils.js:118 -#: js/modewidget.js:919 -#.TRANS: customize voice -msgid "custom" +#: js/utils/musicutils.js:1176 +#.TRANS: musical temperament +msgid "meantone" msgstr "" -#: js/WidgetBlocks.js:432 -msgid "The Meter block opens a tool to select strong beats for the meter." +#: js/utils/musicutils.js:1193 +msgid "major 7th" msgstr "" -#: js/WidgetBlocks.js:473 -msgid "The oscilloscope block opens a tool to visualize waveforms." +#: js/utils/musicutils.js:1194 +msgid "minor 7th" msgstr "" -#: js/WidgetBlocks.js:478 -msgid "oscilloscope" +#: js/utils/musicutils.js:1195 +msgid "dominant 7th" msgstr "" -#: js/WidgetBlocks.js:530 -msgid "The Custom mode block opens a tool to explore musical mode (the spacing of the notes in a scale)." +#: js/utils/musicutils.js:1196 +msgid "minor-major 7th" msgstr "" -#: js/WidgetBlocks.js:536 -#.TRANS: musical mode is the pattern of half-steps in an octave, e.g., Major or Minor modes -msgid "custom mode" +#: js/utils/musicutils.js:1197 +msgid "fully-diminished 7th" msgstr "" -#: js/WidgetBlocks.js:570 -msgid "The Tempo block opens a metronome to visualize the beat." +#: js/utils/musicutils.js:1198 +msgid "half-diminished 7th" msgstr "" -#: js/WidgetBlocks.js:617 -msgid "The Arpeggio Widget is used to compose chord sequences." +#: js/utils/musicutils.js:1557 +#: js/utils/musicutils.js:1569 +msgid "Equal (12EDO)" msgstr "" -#: js/WidgetBlocks.js:623 -#: js/IntervalsBlocks.js:683 -msgid "arpeggio" +#: js/utils/musicutils.js:1558 +#: js/utils/musicutils.js:1570 +msgid "5-limit Just Intonation" msgstr "" -#: js/WidgetBlocks.js:677 -msgid "The Pitch drum matrix is used to map pitches to drum sounds." +#: js/utils/musicutils.js:1559 +#: js/utils/musicutils.js:1571 +msgid "Pythagorean (3-limit JI)" msgstr "" -#: js/WidgetBlocks.js:682 -#.TRANS: makes a mapping between pitches and drum sounds -msgid "pitch-drum mapper" +#: js/utils/musicutils.js:1560 +#: js/utils/musicutils.js:1561 +#: js/utils/musicutils.js:1572 +#: js/utils/musicutils.js:1573 +msgid "Meantone" msgstr "" -#: js/WidgetBlocks.js:724 -msgid "You must have at least one pitch block and one drum block in the matrix." +#: js/utils/musicutils.js:1574 +msgid "Custom" msgstr "" -#: js/WidgetBlocks.js:746 -msgid "The Pitch slider tool to is used to generate pitches at selected frequencies." +#: js/utils/musicutils.js:5387 +#: js/utils/musicutils.js:5430 +msgid "current" msgstr "" -#: js/WidgetBlocks.js:751 -#.TRANS: widget to generate pitches using a slider -msgid "pitch slider" +#: js/utils/musicutils.js:5390 +#: js/utils/musicutils.js:5421 +msgid "next" msgstr "" -#: js/WidgetBlocks.js:788 -msgid "chromatic keyboard" +#: js/utils/musicutils.js:5393 +#: js/utils/musicutils.js:5426 +msgid "previous" msgstr "" -#: js/WidgetBlocks.js:815 -#: js/WidgetBlocks.js:874 -#.TRANS: widget to generate pitches using a slider -msgid "music keyboard" +#: js/utils/synthutils.js:120 +#.TRANS: simple monotone synthesizer +msgid "simple-2" msgstr "" -#: js/WidgetBlocks.js:859 -#: js/WidgetBlocks.js:866 -msgid "The Music keyboard block opens a piano keyboard that can be used to create notes." +#: js/utils/synthutils.js:122 +#.TRANS: simple monotone synthesizer +msgid "simple-3" msgstr "" -#: js/WidgetBlocks.js:910 -msgid "The Pitch staircase tool to is used to generate pitches from a given ratio." +#: js/utils/synthutils.js:124 +#.TRANS: simple monotone synthesizer +msgid "simple-4" msgstr "" -#: js/WidgetBlocks.js:917 -#.TRANS: generate a progressive sequence of pitches -msgid "pitch staircase" +#: js/utils/synthutils.js:162 +#.TRANS: musical instrument +msgid "taiko" msgstr "" -#: js/WidgetBlocks.js:982 -msgid "The Rhythm Maker block opens a tool to create drum machines." +#: js/blocks/ActionBlocks.js:58 +msgid "The Return block will return a value from an action." msgstr "" -#: js/WidgetBlocks.js:1036 -msgid "G major scale" +#: js/blocks/ActionBlocks.js:75 +msgid "return" msgstr "" -#: js/WidgetBlocks.js:1064 -msgid "C major scale" +#: js/blocks/ActionBlocks.js:128 +msgid "The Return to URL block will return a value to a webpage." msgstr "" -#: js/WidgetBlocks.js:1097 -msgid "The Phrase Maker block opens a tool to create musical phrases." +#: js/blocks/ActionBlocks.js:145 +msgid "return to URL" msgstr "" -#: js/WidgetBlocks.js:1104 -#.TRANS: assigns pitch to a sequence of beats to generate a melody -msgid "phrase maker" +#: js/blocks/ActionBlocks.js:233 +#: js/blocks/ActionBlocks.js:290 +#: js/blocks/ActionBlocks.js:501 +#: js/blocks/ActionBlocks.js:688 +msgid "The Calculate block returns a value calculated by an action." msgstr "" -#: js/WidgetBlocks.js:1168 -msgid "You must have at least one pitch block and one rhythm block in the matrix." +#: js/blocks/ActionBlocks.js:251 +#: js/blocks/ActionBlocks.js:517 +#: js/blocks/ActionBlocks.js:707 +msgid "calculate" msgstr "" -#: js/WidgetBlocks.js:1220 -msgid "The Status block opens a tool for inspecting the status of Music Blocks as it is running." +#: js/blocks/ActionBlocks.js:376 +#: js/blocks/ActionBlocks.js:593 +#: js/blocks/ActionBlocks.js:942 +#: js/blocks/ActionBlocks.js:1389 +#.TRANS: do is the do something or take an action. +msgid "The Do block is used to initiate an action." msgstr "" -#: js/IntervalsBlocks.js:45 -msgid "set temperament" +#: js/blocks/ActionBlocks.js:390 +#: js/blocks/ActionBlocks.js:610 +#: js/blocks/ActionBlocks.js:959 +#: js/blocks/ActionBlocks.js:1048 +#: js/blocks/MeterBlocks.js:769 +msgid "do1" msgstr "" -#: js/IntervalsBlocks.js:63 -#: js/MediaBlocks.js:746 -#: js/PitchBlocks.js:657 -#: js/PitchBlocks.js:933 -#: js/PitchBlocks.js:972 -#: js/PitchBlocks.js:1005 -#: js/PitchBlocks.js:1166 -#: js/PitchBlocks.js:1679 -#: js/PitchBlocks.js:1720 -#: js/PitchBlocks.js:1827 -#: js/ToneBlocks.js:1025 -#.TRANS: adjusts the shift up or down by one octave (twelve half-steps in the interval between two notes, one having twice or half the frequency in Hz of the other.) -msgid "octave" +#: js/blocks/ActionBlocks.js:390 +#: js/blocks/ActionBlocks.js:610 +#: js/blocks/ActionBlocks.js:959 +#: js/blocks/ActionBlocks.js:1048 +#: js/blocks/FlowBlocks.js:742 +#: js/blocks/FlowBlocks.js:822 +#: js/blocks/MeterBlocks.js:769 +msgid "do" msgstr "" -#: js/IntervalsBlocks.js:99 -msgid "The Temperament name block is used to select a tuning method." +#: js/blocks/ActionBlocks.js:791 +#: js/blocks/ActionBlocks.js:865 +msgid "The Arg block contains the value of an argument passed to an action." msgstr "" -#: js/IntervalsBlocks.js:161 -msgid "doubly" +#: js/blocks/ActionBlocks.js:806 +#: js/blocks/ActionBlocks.js:878 +msgid "arg" msgstr "" -#: js/IntervalsBlocks.js:166 -msgid "The Doubly block will double the size of an interval." +#: js/blocks/ActionBlocks.js:836 +#: js/blocks/ActionBlocks.js:900 +#: js/blocks/ActionBlocks.js:908 +msgid "Invalid argument" msgstr "" -#: js/IntervalsBlocks.js:262 -msgid "interval number" +#: js/blocks/ActionBlocks.js:944 +msgid "In the example, it is used with the One of block to choose a random phase." msgstr "" -#: js/IntervalsBlocks.js:330 -#.TRANS: measure the distance between two pitches in semi-tones -msgid "semi-tone interval measure" +#: js/blocks/ActionBlocks.js:1019 +#: js/blocks/ActionBlocks.js:1026 +msgid "The Listen block is used to listen for an event such as a mouse click." msgstr "" -#: js/IntervalsBlocks.js:397 -#: js/IntervalsBlocks.js:513 -msgid "You must use two pitch blocks when measuring an interval." +#: js/blocks/ActionBlocks.js:1028 +msgid "When the event happens, an action is taken." msgstr "" -#: js/IntervalsBlocks.js:439 -msgid "The Scalar interval block measures the distance between two notes in the current key and mode." +#: js/blocks/ActionBlocks.js:1045 +msgid "on" msgstr "" -#: js/IntervalsBlocks.js:445 -#.TRANS: measure the distance between two pitches in steps of musical scale -msgid "scalar interval measure" +#: js/blocks/ActionBlocks.js:1048 +#: js/blocks/ActionBlocks.js:1049 +#: js/blocks/ActionBlocks.js:1153 +msgid "event" msgstr "" -#: js/IntervalsBlocks.js:592 -#: js/musicutils.js:637 -#: js/musicutils.js:908 -#.TRANS: perfect is a music term related to intervals -msgid "perfect" +#: js/blocks/ActionBlocks.js:1133 +msgid "The Broadcast block is used to trigger an event." msgstr "" -#: js/IntervalsBlocks.js:621 -msgid "In the figure, we add sol# to sol." +#: js/blocks/ActionBlocks.js:1151 +msgid "broadcast" msgstr "" -#: js/IntervalsBlocks.js:627 -#: js/OrnamentBlocks.js:220 -#.TRANS: calculate a relative step between notes based on semi-tones -msgid "semi-tone interval" +#: js/blocks/ActionBlocks.js:1208 +msgid "Each Start block is a separate voice." msgstr "" -#: js/IntervalsBlocks.js:676 -msgid "The output of the example is: do, mi, sol, sol, ti, mi" +#: js/blocks/ActionBlocks.js:1304 +msgid "It is often used for storing a phrase of music that is repeated." msgstr "" -#: js/IntervalsBlocks.js:735 -msgid "The Chord block calculates common chords." +#: js/blocks/ActionBlocks.js:1495 +msgid "define temperament" msgstr "" -#: js/IntervalsBlocks.js:737 -msgid "In the figure, we generate a C-major chord." +#: js/blocks/BooleanBlocks.js:44 +msgid "The Not block is the logical not operator." msgstr "" -#: js/IntervalsBlocks.js:742 -msgid "chord" -msgstr "" +#: js/blocks/BooleanBlocks.js:62 +msgid "not" +msgstr "bukan" -#: js/IntervalsBlocks.js:794 -msgid "The Ratio Interval block calculates an interval based on a ratio." +#: js/blocks/BooleanBlocks.js:134 +msgid "The And block is the logical and operator." msgstr "" -#: js/IntervalsBlocks.js:799 -msgid "ratio interval" -msgstr "" +#: js/blocks/BooleanBlocks.js:152 +msgid "and" +msgstr "dan" -#: js/IntervalsBlocks.js:868 -msgid "In the figure, we add la to sol." +#: js/blocks/BooleanBlocks.js:218 +msgid "The Or block is the logical or operator." msgstr "" -#: js/IntervalsBlocks.js:924 -#.TRANS: define a custom mode -msgid "define mode" +#: js/blocks/BooleanBlocks.js:236 +msgid "or" +msgstr "atau" + +#: js/blocks/BooleanBlocks.js:302 +msgid "The XOR block is the logical XOR operator." msgstr "" -#: js/IntervalsBlocks.js:977 -msgid "movable Do" +#: js/blocks/BooleanBlocks.js:320 +msgid "xor" msgstr "" -#: js/IntervalsBlocks.js:1028 -#.TRANS: mode length is the number of notes in the mode, e.g., 7 for major and minor scales; 12 for chromatic scales -msgid "mode length" +#: js/blocks/BooleanBlocks.js:808 +msgid "The Equal block returns True if the two numbers are equal." msgstr "" -#: js/IntervalsBlocks.js:1037 -msgid "The Mode length block is the number of notes in the current scale." +#: js/blocks/BooleanBlocks.js:909 +msgid "The Not-equal-to block returns True if the two numbers are not equal to each other." msgstr "" -#: js/IntervalsBlocks.js:1039 -msgid "Most Western scales have 7 notes." +#: js/blocks/BooleanBlocks.js:1008 +msgid "The Boolean block is used to specify true or false." msgstr "" -#: js/IntervalsBlocks.js:1088 -#.TRANS: the mode in music is 'major', 'minor', etc. -msgid "current mode" +#: js/blocks/BoxesBlocks.js:53 +#: js/blocks/BoxesBlocks.js:59 +msgid "The Add-to block is used to add to the value stored in a box." msgstr "" -#: js/IntervalsBlocks.js:1141 -#.TRANS: the key is a group of pitches with which a music composition is created -msgid "current key" +#: js/blocks/BoxesBlocks.js:61 +msgid "It can also be used with other blocks such as Color and Pen size." msgstr "" -#: js/IntervalsBlocks.js:1193 -#: js/IntervalsBlocks.js:1238 -#.TRANS: set the key and mode, e.g. C Major -msgid "set key" +#: js/blocks/BoxesBlocks.js:73 +msgid "add" msgstr "" -#: js/IntervalsBlocks.js:1247 -#: js/IntervalsBlocks.js:1253 -msgid "The Set key block is used to set the key and mode," +#: js/blocks/BoxesBlocks.js:75 +#: js/widgets/temperament.js:857 +msgid "to" msgstr "" -#: js/IntervalsBlocks.js:1253 -msgid "eg C Major" +#: js/blocks/BoxesBlocks.js:75 +#: js/blocks/BoxesBlocks.js:595 +#: js/blocks/HeapBlocks.js:544 +msgid "value1" msgstr "" -#: js/IntervalsBlocks.js:1266 -#: js/DictBlocks.js:215 -#: js/DictBlocks.js:216 -#: js/DictBlocks.js:289 -#: js/DictBlocks.js:290 -#: js/DictBlocks.js:357 -#: js/DictBlocks.js:430 -#: js/DictBlocks.js:431 -#.TRANS: key, e.g., C in C Major -msgid "key" +#: js/blocks/BoxesBlocks.js:118 +msgid "Block does not support incrementing." msgstr "" -#: js/ActionBlocks.js:58 -msgid "The Return block will return a value from an action." +#: js/blocks/BoxesBlocks.js:152 +msgid "The Add-1-to block adds one to the value stored in a box." msgstr "" -#: js/ActionBlocks.js:75 -msgid "return" +#: js/blocks/BoxesBlocks.js:163 +msgid "add 1 to" msgstr "" -#: js/ActionBlocks.js:128 -msgid "The Return to URL block will return a value to a webpage." +#: js/blocks/BoxesBlocks.js:211 +msgid "The Subtract-1-from block subtracts one from the value stored in a box." msgstr "" -#: js/ActionBlocks.js:145 -msgid "return to URL" +#: js/blocks/BoxesBlocks.js:222 +msgid "subtract 1 from" msgstr "" -#: js/ActionBlocks.js:233 -#: js/ActionBlocks.js:290 -#: js/ActionBlocks.js:501 -#: js/ActionBlocks.js:688 -msgid "The Calculate block returns a value calculated by an action." +#: js/blocks/BoxesBlocks.js:270 +#: js/blocks/BoxesBlocks.js:387 +msgid "The Box block returns the value stored in a box." msgstr "" -#: js/ActionBlocks.js:251 -#: js/ActionBlocks.js:517 -#: js/ActionBlocks.js:707 -msgid "calculate" +#: js/blocks/BoxesBlocks.js:500 +#: js/blocks/BoxesBlocks.js:576 +msgid "The Store in block will store a value in a box." msgstr "" -#: js/ActionBlocks.js:376 -#: js/ActionBlocks.js:593 -#: js/ActionBlocks.js:942 -#: js/ActionBlocks.js:1389 -#.TRANS: do is the do something or take an action. -msgid "The Do block is used to initiate an action." +#: js/blocks/BoxesBlocks.js:595 +#: js/blocks/EnsembleBlocks.js:391 +#: js/blocks/EnsembleBlocks.js:402 +msgid "name1" msgstr "" -#: js/ActionBlocks.js:390 -#: js/ActionBlocks.js:610 -#: js/ActionBlocks.js:959 -#: js/ActionBlocks.js:1048 -#: js/MeterBlocks.js:769 -msgid "do1" +#: js/blocks/BoxesBlocks.js:652 +msgid "The Box2 block returns the value stored in Box2." msgstr "" -#: js/ActionBlocks.js:390 -#: js/ActionBlocks.js:610 -#: js/ActionBlocks.js:959 -#: js/ActionBlocks.js:1048 -#: js/FlowBlocks.js:742 -#: js/FlowBlocks.js:822 -#: js/MeterBlocks.js:769 -msgid "do" +#: js/blocks/BoxesBlocks.js:703 +msgid "The Store in Box2 block is used to store a value in Box2." msgstr "" -#: js/ActionBlocks.js:791 -#: js/ActionBlocks.js:865 -msgid "The Arg block contains the value of an argument passed to an action." +#: js/blocks/BoxesBlocks.js:715 +msgid "store in box2" msgstr "" -#: js/ActionBlocks.js:806 -#: js/ActionBlocks.js:878 -msgid "arg" +#: js/blocks/BoxesBlocks.js:761 +msgid "The Box1 block returns the value stored in Box1." msgstr "" -#: js/ActionBlocks.js:836 -#: js/ActionBlocks.js:900 -#: js/ActionBlocks.js:908 -msgid "Invalid argument" +#: js/blocks/BoxesBlocks.js:812 +msgid "The Store in Box1 block is used to store a value in Box1." msgstr "" -#: js/ActionBlocks.js:944 -msgid "In the example, it is used with the One of block to choose a random phase." +#: js/blocks/BoxesBlocks.js:826 +msgid "store in box1" msgstr "" -#: js/ActionBlocks.js:1019 -#: js/ActionBlocks.js:1026 -msgid "The Listen block is used to listen for an event such as a mouse click." +#: js/blocks/DictBlocks.js:77 +msgid "show dictionary" msgstr "" -#: js/ActionBlocks.js:1028 -msgid "When the event happens, an action is taken." +#: js/blocks/DictBlocks.js:80 +#: js/blocks/DictBlocks.js:145 +#: js/blocks/DictBlocks.js:216 +#: js/blocks/DictBlocks.js:290 +#: js/blocks/ProgramBlocks.js:396 +#: js/blocks/ProgramBlocks.js:501 +#: js/blocks/ProgramBlocks.js:664 +msgid "My Dictionary" msgstr "" -#: js/ActionBlocks.js:1045 -msgid "on" +#: js/blocks/DictBlocks.js:129 +msgid "The Dictionary block returns a dictionary." msgstr "" -#: js/ActionBlocks.js:1048 -#: js/ActionBlocks.js:1049 -#: js/ActionBlocks.js:1153 -msgid "event" +#: js/blocks/DictBlocks.js:197 +#: js/blocks/DictBlocks.js:339 +msgid "The Get-dict block returns a value in the dictionary for a specified key." msgstr "" -#: js/ActionBlocks.js:1133 -msgid "The Broadcast block is used to trigger an event." +#: js/blocks/DictBlocks.js:212 +#: js/blocks/DictBlocks.js:354 +#.TRANS: retrieve a value from the dictionary with a given key +msgid "get value" msgstr "" -#: js/ActionBlocks.js:1151 -msgid "broadcast" +#: js/blocks/DictBlocks.js:215 +#: js/blocks/DictBlocks.js:216 +#: js/blocks/DictBlocks.js:289 +#: js/blocks/DictBlocks.js:290 +#: js/blocks/DictBlocks.js:357 +#: js/blocks/DictBlocks.js:430 +#: js/blocks/DictBlocks.js:431 +msgid "key2" msgstr "" -#: js/ActionBlocks.js:1208 -msgid "Each Start block is a separate voice." +#: js/blocks/DictBlocks.js:215 +#: js/blocks/DictBlocks.js:216 +#: js/blocks/DictBlocks.js:289 +#: js/blocks/DictBlocks.js:290 +#: js/blocks/DictBlocks.js:357 +#: js/blocks/DictBlocks.js:430 +#: js/blocks/DictBlocks.js:431 +#: js/blocks/IntervalsBlocks.js:1462 +#.TRANS: key, e.g., C in C Major +msgid "key" msgstr "" -#: js/ActionBlocks.js:1304 -msgid "It is often used for storing a phrase of music that is repeated." +#: js/blocks/DictBlocks.js:271 +#: js/blocks/DictBlocks.js:411 +msgid "The Set-dict block sets a value in the dictionary for a specified key." msgstr "" -#: js/ActionBlocks.js:1495 -msgid "define temperament" +#: js/blocks/DictBlocks.js:286 +#: js/blocks/DictBlocks.js:427 +#.TRANS: set a value in the dictionary for a given key +msgid "set value" msgstr "" -#: js/EnsembleBlocks.js:66 +#: js/blocks/EnsembleBlocks.js:66 msgid "mouse index heap" msgstr "" -#: js/EnsembleBlocks.js:68 +#: js/blocks/EnsembleBlocks.js:68 msgid "The Mouse index heap block returns a value in the heap at a specified location for a specified mouse." msgstr "" -#: js/EnsembleBlocks.js:77 -#: js/EnsembleBlocks.js:1080 +#: js/blocks/EnsembleBlocks.js:77 +#: js/blocks/EnsembleBlocks.js:1080 msgid "mouse name" msgstr "" -#: js/EnsembleBlocks.js:77 -#: js/EnsembleBlocks.js:92 -#: js/HeapBlocks.js:544 +#: js/blocks/EnsembleBlocks.js:77 +#: js/blocks/EnsembleBlocks.js:92 +#: js/blocks/HeapBlocks.js:544 #.TRANS: value1 is a numeric value (JAPANESE ONLY) msgid "index" msgstr "" -#: js/EnsembleBlocks.js:80 +#: js/blocks/EnsembleBlocks.js:80 msgid "turtle index heap" msgstr "" -#: js/EnsembleBlocks.js:82 +#: js/blocks/EnsembleBlocks.js:82 msgid "The Turtle index heap block returns a value in the heap at a specified location for a specified turtle." msgstr "" -#: js/EnsembleBlocks.js:90 -#: js/EnsembleBlocks.js:167 -#: js/EnsembleBlocks.js:230 -#: js/EnsembleBlocks.js:316 -#: js/EnsembleBlocks.js:362 -#: js/EnsembleBlocks.js:400 -#: js/EnsembleBlocks.js:454 -#: js/EnsembleBlocks.js:504 -#: js/EnsembleBlocks.js:550 -#: js/EnsembleBlocks.js:597 -#: js/EnsembleBlocks.js:651 -#: js/EnsembleBlocks.js:763 -#: js/EnsembleBlocks.js:854 -#: js/EnsembleBlocks.js:915 -#: js/EnsembleBlocks.js:955 -#: js/EnsembleBlocks.js:1219 -#: js/EnsembleBlocks.js:1293 +#: js/blocks/EnsembleBlocks.js:90 +#: js/blocks/EnsembleBlocks.js:167 +#: js/blocks/EnsembleBlocks.js:230 +#: js/blocks/EnsembleBlocks.js:316 +#: js/blocks/EnsembleBlocks.js:362 +#: js/blocks/EnsembleBlocks.js:400 +#: js/blocks/EnsembleBlocks.js:454 +#: js/blocks/EnsembleBlocks.js:504 +#: js/blocks/EnsembleBlocks.js:550 +#: js/blocks/EnsembleBlocks.js:597 +#: js/blocks/EnsembleBlocks.js:651 +#: js/blocks/EnsembleBlocks.js:763 +#: js/blocks/EnsembleBlocks.js:854 +#: js/blocks/EnsembleBlocks.js:915 +#: js/blocks/EnsembleBlocks.js:955 +#: js/blocks/EnsembleBlocks.js:1219 +#: js/blocks/EnsembleBlocks.js:1293 #.TRANS: Yertle is the name of a turtle. msgid "Yertle" msgstr "" -#: js/EnsembleBlocks.js:92 -#: js/EnsembleBlocks.js:1089 +#: js/blocks/EnsembleBlocks.js:92 +#: js/blocks/EnsembleBlocks.js:1089 msgid "turtle name" msgstr "" -#: js/EnsembleBlocks.js:122 -#: js/EnsembleBlocks.js:1197 -#: js/HeapBlocks.js:474 -#: js/HeapBlocks.js:572 +#: js/blocks/EnsembleBlocks.js:122 +#: js/blocks/EnsembleBlocks.js:1197 +#: js/blocks/HeapBlocks.js:474 +#: js/blocks/HeapBlocks.js:572 msgid "Index must be > 0." msgstr "" -#: js/EnsembleBlocks.js:127 -#: js/HeapBlocks.js:479 -#: js/HeapBlocks.js:577 +#: js/blocks/EnsembleBlocks.js:127 +#: js/blocks/HeapBlocks.js:479 +#: js/blocks/HeapBlocks.js:577 msgid "Maximum heap size is 1000." msgstr "" -#: js/EnsembleBlocks.js:145 +#: js/blocks/EnsembleBlocks.js:145 msgid "stop mouse" msgstr "" -#: js/EnsembleBlocks.js:147 +#: js/blocks/EnsembleBlocks.js:147 msgid "The Stop mouse block stops the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:158 +#: js/blocks/EnsembleBlocks.js:158 msgid "stop turtle" msgstr "" -#: js/EnsembleBlocks.js:160 +#: js/blocks/EnsembleBlocks.js:160 msgid "The Stop turtle block stops the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:184 -#: js/EnsembleBlocks.js:247 -#: js/EnsembleBlocks.js:413 -#: js/EnsembleBlocks.js:468 -#: js/EnsembleBlocks.js:706 -#: js/EnsembleBlocks.js:808 -#: js/EnsembleBlocks.js:870 -#: js/EnsembleBlocks.js:1190 -#: js/EnsembleBlocks.js:1253 +#: js/blocks/EnsembleBlocks.js:184 +#: js/blocks/EnsembleBlocks.js:247 +#: js/blocks/EnsembleBlocks.js:413 +#: js/blocks/EnsembleBlocks.js:468 +#: js/blocks/EnsembleBlocks.js:706 +#: js/blocks/EnsembleBlocks.js:808 +#: js/blocks/EnsembleBlocks.js:870 +#: js/blocks/EnsembleBlocks.js:1190 +#: js/blocks/EnsembleBlocks.js:1253 msgid "Cannot find mouse" msgstr "" -#: js/EnsembleBlocks.js:186 -#: js/EnsembleBlocks.js:249 -#: js/EnsembleBlocks.js:415 -#: js/EnsembleBlocks.js:470 -#: js/EnsembleBlocks.js:708 -#: js/EnsembleBlocks.js:810 -#: js/EnsembleBlocks.js:872 -#: js/EnsembleBlocks.js:1192 -#: js/EnsembleBlocks.js:1255 +#: js/blocks/EnsembleBlocks.js:186 +#: js/blocks/EnsembleBlocks.js:249 +#: js/blocks/EnsembleBlocks.js:415 +#: js/blocks/EnsembleBlocks.js:470 +#: js/blocks/EnsembleBlocks.js:708 +#: js/blocks/EnsembleBlocks.js:810 +#: js/blocks/EnsembleBlocks.js:872 +#: js/blocks/EnsembleBlocks.js:1192 +#: js/blocks/EnsembleBlocks.js:1255 msgid "Cannot find turtle" msgstr "" -#: js/EnsembleBlocks.js:206 +#: js/blocks/EnsembleBlocks.js:206 msgid "start mouse" msgstr "" -#: js/EnsembleBlocks.js:209 +#: js/blocks/EnsembleBlocks.js:209 msgid "The Start mouse block starts the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:220 +#: js/blocks/EnsembleBlocks.js:220 msgid "start turtle" msgstr "" -#: js/EnsembleBlocks.js:223 +#: js/blocks/EnsembleBlocks.js:223 msgid "The Start turtle block starts the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:256 +#: js/blocks/EnsembleBlocks.js:256 msgid "Mouse is already running." msgstr "" -#: js/EnsembleBlocks.js:258 +#: js/blocks/EnsembleBlocks.js:258 msgid "Turtle is already running." msgstr "" -#: js/EnsembleBlocks.js:282 +#: js/blocks/EnsembleBlocks.js:282 msgid "Cannot find start block" msgstr "" -#: js/EnsembleBlocks.js:292 +#: js/blocks/EnsembleBlocks.js:292 #.TRANS: pen color for this mouse msgid "mouse color" msgstr "" -#: js/EnsembleBlocks.js:294 +#: js/blocks/EnsembleBlocks.js:294 msgid "The Mouse color block returns the pen color of the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:306 +#: js/blocks/EnsembleBlocks.js:306 #.TRANS: pen color for this turtle msgid "turtle color" msgstr "" -#: js/EnsembleBlocks.js:308 +#: js/blocks/EnsembleBlocks.js:308 msgid "The Turtle color block returns the pen color of the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:338 +#: js/blocks/EnsembleBlocks.js:338 #.TRANS: heading (compass direction) for this mouse msgid "mouse heading" msgstr "" -#: js/EnsembleBlocks.js:340 +#: js/blocks/EnsembleBlocks.js:340 msgid "The Mouse heading block returns the heading of the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:352 +#: js/blocks/EnsembleBlocks.js:352 #.TRANS: heading (compass direction) for this turtle msgid "turtle heading" msgstr "" -#: js/EnsembleBlocks.js:354 +#: js/blocks/EnsembleBlocks.js:354 msgid "The Turtle heading block returns the heading of the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:384 -#: js/EnsembleBlocks.js:439 +#: js/blocks/EnsembleBlocks.js:384 +#: js/blocks/EnsembleBlocks.js:439 #.TRANS: set xy position for this mouse msgid "set mouse" msgstr "" -#: js/EnsembleBlocks.js:391 -#: js/EnsembleBlocks.js:402 -#: js/BoxesBlocks.js:595 -msgid "name1" -msgstr "" - -#: js/EnsembleBlocks.js:391 -#: js/EnsembleBlocks.js:402 -#: js/ProgramBlocks.js:881 -#: js/GraphicsBlocks.js:235 -#: js/GraphicsBlocks.js:313 -#: js/GraphicsBlocks.js:436 -#: js/GraphicsBlocks.js:487 -#: js/GraphicsBlocks.js:534 -#: js/GraphicsBlocks.js:750 +#: js/blocks/EnsembleBlocks.js:391 +#: js/blocks/EnsembleBlocks.js:402 +#: js/blocks/GraphicsBlocks.js:235 +#: js/blocks/GraphicsBlocks.js:313 +#: js/blocks/GraphicsBlocks.js:436 +#: js/blocks/GraphicsBlocks.js:487 +#: js/blocks/GraphicsBlocks.js:534 +#: js/blocks/GraphicsBlocks.js:750 +#: js/blocks/ProgramBlocks.js:881 msgid "x" msgstr "x" -#: js/EnsembleBlocks.js:391 -#: js/EnsembleBlocks.js:402 -#: js/ProgramBlocks.js:881 -#: js/GraphicsBlocks.js:149 -#: js/GraphicsBlocks.js:313 -#: js/GraphicsBlocks.js:436 -#: js/GraphicsBlocks.js:487 -#: js/GraphicsBlocks.js:534 -#: js/GraphicsBlocks.js:750 +#: js/blocks/EnsembleBlocks.js:391 +#: js/blocks/EnsembleBlocks.js:402 +#: js/blocks/GraphicsBlocks.js:149 +#: js/blocks/GraphicsBlocks.js:313 +#: js/blocks/GraphicsBlocks.js:436 +#: js/blocks/GraphicsBlocks.js:487 +#: js/blocks/GraphicsBlocks.js:534 +#: js/blocks/GraphicsBlocks.js:750 +#: js/blocks/ProgramBlocks.js:881 msgid "y" msgstr "y" -#: js/EnsembleBlocks.js:395 -#: js/EnsembleBlocks.js:452 +#: js/blocks/EnsembleBlocks.js:395 +#: js/blocks/EnsembleBlocks.js:452 #.TRANS: set xy position for this turtle msgid "set turtle" msgstr "" -#: js/EnsembleBlocks.js:433 +#: js/blocks/EnsembleBlocks.js:433 msgid "The Set mouse block sends a stack of blocks to be run by the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:446 +#: js/blocks/EnsembleBlocks.js:446 msgid "The Set turtle block sends a stack of blocks to be run by the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:480 +#: js/blocks/EnsembleBlocks.js:480 #.TRANS: y position for this mouse msgid "mouse y" msgstr "" -#: js/EnsembleBlocks.js:482 +#: js/blocks/EnsembleBlocks.js:482 msgid "The Y mouse block returns the Y position of the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:494 +#: js/blocks/EnsembleBlocks.js:494 #.TRANS: y position for this turtle msgid "turtle y" msgstr "" -#: js/EnsembleBlocks.js:496 +#: js/blocks/EnsembleBlocks.js:496 msgid "The Y turtle block returns the Y position of the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:526 +#: js/blocks/EnsembleBlocks.js:526 #.TRANS: x position for this mouse msgid "mouse x" msgstr "" -#: js/EnsembleBlocks.js:528 +#: js/blocks/EnsembleBlocks.js:528 msgid "The X mouse block returns the X position of the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:540 +#: js/blocks/EnsembleBlocks.js:540 #.TRANS: x position for this turtle msgid "turtle x" msgstr "" -#: js/EnsembleBlocks.js:542 +#: js/blocks/EnsembleBlocks.js:542 msgid "The X turtle block returns the X position of the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:573 +#: js/blocks/EnsembleBlocks.js:573 #.TRANS: notes played by this mouse msgid "mouse notes played" msgstr "" -#: js/EnsembleBlocks.js:575 +#: js/blocks/EnsembleBlocks.js:575 msgid "The Mouse elapse notes block returns the number of notes played by the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:587 +#: js/blocks/EnsembleBlocks.js:587 #.TRANS: notes played by this turtle msgid "turtle notes played" msgstr "" -#: js/EnsembleBlocks.js:589 +#: js/blocks/EnsembleBlocks.js:589 msgid "The Turtle elapse notes block returns the number of notes played by the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:627 +#: js/blocks/EnsembleBlocks.js:627 #.TRANS: convert current note for this turtle to piano key (1-88) msgid "mouse pitch number" msgstr "" -#: js/EnsembleBlocks.js:629 +#: js/blocks/EnsembleBlocks.js:629 msgid "The Mouse pitch block returns the current pitch number being played by the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:641 +#: js/blocks/EnsembleBlocks.js:641 #.TRANS: convert current note for this turtle to piano key (1-88) msgid "turtle pitch number" msgstr "" -#: js/EnsembleBlocks.js:643 -msgid "The Turrle pitch block returns the current pitch number being played by the specified turtle." +#: js/blocks/EnsembleBlocks.js:643 +msgid "The Turtle pitch block returns the current pitch number being played by the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:747 -#: js/EnsembleBlocks.js:819 +#: js/blocks/EnsembleBlocks.js:747 +#: js/blocks/EnsembleBlocks.js:819 #.TRANS: note value is the duration of the note played by this mouse msgid "mouse note value" msgstr "" -#: js/EnsembleBlocks.js:757 +#: js/blocks/EnsembleBlocks.js:757 #.TRANS: note value is the duration of the note played by this turtle msgid "turtle note value" msgstr "" -#: js/EnsembleBlocks.js:830 +#: js/blocks/EnsembleBlocks.js:830 #.TRANS: sync is short for synchronization msgid "mouse sync" msgstr "" -#: js/EnsembleBlocks.js:832 +#: js/blocks/EnsembleBlocks.js:832 msgid "The Mouse sync block aligns the beat count between mice." msgstr "" -#: js/EnsembleBlocks.js:844 +#: js/blocks/EnsembleBlocks.js:844 #.TRANS: sync is short for synchronization msgid "turtle sync" msgstr "" -#: js/EnsembleBlocks.js:846 +#: js/blocks/EnsembleBlocks.js:846 msgid "The Turtle sync block aligns the beat count between turtles." msgstr "" -#: js/EnsembleBlocks.js:887 +#: js/blocks/EnsembleBlocks.js:887 msgid "The Found mouse block will return true if the specified mouse can be found." msgstr "" -#: js/EnsembleBlocks.js:893 +#: js/blocks/EnsembleBlocks.js:893 msgid "found mouse" msgstr "" -#: js/EnsembleBlocks.js:903 +#: js/blocks/EnsembleBlocks.js:903 msgid "The Found turtle block will return true if the specified turtle can be found." msgstr "" -#: js/EnsembleBlocks.js:909 +#: js/blocks/EnsembleBlocks.js:909 msgid "found turtle" msgstr "" -#: js/EnsembleBlocks.js:932 +#: js/blocks/EnsembleBlocks.js:932 msgid "new mouse" msgstr "" -#: js/EnsembleBlocks.js:934 +#: js/blocks/EnsembleBlocks.js:934 msgid "The New mouse block will create a new mouse." msgstr "" -#: js/EnsembleBlocks.js:945 +#: js/blocks/EnsembleBlocks.js:945 msgid "new turtle" msgstr "" -#: js/EnsembleBlocks.js:947 +#: js/blocks/EnsembleBlocks.js:947 msgid "The New turtle block will create a new turtle." msgstr "" -#: js/EnsembleBlocks.js:1011 +#: js/blocks/EnsembleBlocks.js:1011 msgid "set mouse color" msgstr "" -#: js/EnsembleBlocks.js:1014 +#: js/blocks/EnsembleBlocks.js:1014 msgid "The Set-mouse-color block is used to set the color of a mouse." msgstr "" -#: js/EnsembleBlocks.js:1020 +#: js/blocks/EnsembleBlocks.js:1020 msgid "set turtle color" msgstr "" -#: js/EnsembleBlocks.js:1023 +#: js/blocks/EnsembleBlocks.js:1023 msgid "The Set-turtle-color block is used to set the color of a turtle." msgstr "" -#: js/EnsembleBlocks.js:1083 +#: js/blocks/EnsembleBlocks.js:1083 msgid "The Mouse-name block returns the name of a mouse." msgstr "" -#: js/EnsembleBlocks.js:1092 +#: js/blocks/EnsembleBlocks.js:1092 msgid "The Turtle-name block returns the name of a turtle." msgstr "" -#: js/EnsembleBlocks.js:1115 +#: js/blocks/EnsembleBlocks.js:1115 msgid "mouse count" msgstr "" -#: js/EnsembleBlocks.js:1118 +#: js/blocks/EnsembleBlocks.js:1118 msgid "The Mouse-count block returns the number of mice." msgstr "" -#: js/EnsembleBlocks.js:1124 +#: js/blocks/EnsembleBlocks.js:1124 msgid "turtle count" msgstr "" -#: js/EnsembleBlocks.js:1127 +#: js/blocks/EnsembleBlocks.js:1127 msgid "The Turtle-count block returns the number of turtles." msgstr "" -#: js/EnsembleBlocks.js:1149 +#: js/blocks/EnsembleBlocks.js:1149 msgid "nth mouse name" msgstr "" -#: js/EnsembleBlocks.js:1152 +#: js/blocks/EnsembleBlocks.js:1152 msgid "The Nth-Mouse name block returns the name of the nth mouse." msgstr "" -#: js/EnsembleBlocks.js:1158 +#: js/blocks/EnsembleBlocks.js:1158 msgid "nth turtle name" msgstr "" -#: js/EnsembleBlocks.js:1161 +#: js/blocks/EnsembleBlocks.js:1161 msgid "The Nth-Turtle name block returns the name of the nth turtle." msgstr "" -#: js/EnsembleBlocks.js:1205 -#: js/EnsembleBlocks.js:1265 +#: js/blocks/EnsembleBlocks.js:1205 +#: js/blocks/EnsembleBlocks.js:1265 msgid "set name" msgstr "" -#: js/EnsembleBlocks.js:1214 -#: js/EnsembleBlocks.js:1221 +#: js/blocks/EnsembleBlocks.js:1214 +#: js/blocks/EnsembleBlocks.js:1221 msgid "source" msgstr "" -#: js/EnsembleBlocks.js:1214 -#: js/EnsembleBlocks.js:1221 +#: js/blocks/EnsembleBlocks.js:1214 +#: js/blocks/EnsembleBlocks.js:1221 msgid "target" msgstr "" -#: js/EnsembleBlocks.js:1271 +#: js/blocks/EnsembleBlocks.js:1271 msgid "The Set-name block is used to name a mouse." msgstr "" -#: js/EnsembleBlocks.js:1284 +#: js/blocks/EnsembleBlocks.js:1284 msgid "The Set-name block is used to name a turtle." msgstr "" -#: js/BooleanBlocks.js:44 -msgid "The Not block is the logical not operator." -msgstr "" - -#: js/BooleanBlocks.js:62 -msgid "not" -msgstr "bukan" - -#: js/BooleanBlocks.js:134 -msgid "The And block is the logical and operator." -msgstr "" - -#: js/BooleanBlocks.js:152 -msgid "and" -msgstr "dan" - -#: js/BooleanBlocks.js:218 -msgid "The Or block is the logical or operator." -msgstr "" - -#: js/BooleanBlocks.js:236 -msgid "or" -msgstr "atau" - -#: js/BooleanBlocks.js:302 -msgid "The XOR block is the logical XOR operator." -msgstr "" - -#: js/BooleanBlocks.js:320 -msgid "xor" -msgstr "" - -#: js/BooleanBlocks.js:808 -msgid "The Equal block returns True if the two numbers are equal." -msgstr "" - -#: js/BooleanBlocks.js:909 -msgid "The Not-equal-to block returns True if the two numbers are not equal to each other." -msgstr "" - -#: js/BooleanBlocks.js:1008 -msgid "The Boolean block is used to specify true or false." -msgstr "" - -#: js/MediaBlocks.js:35 -#.TRANS: right side of the screen -msgid "right (screen)" -msgstr "" - -#: js/MediaBlocks.js:45 -#: js/MediaBlocks.js:56 -msgid "The Right block returns the position of the right of the canvas." -msgstr "" - -#: js/MediaBlocks.js:97 -#.TRANS: left side of the screen -msgid "left (screen)" -msgstr "" - -#: js/MediaBlocks.js:107 -#: js/MediaBlocks.js:118 -msgid "The Left block returns the position of the left of the canvas." -msgstr "" - -#: js/MediaBlocks.js:158 -msgid "top (screen)" +#: js/blocks/ExtrasBlocks.js:33 +msgid "fraction" msgstr "" -#: js/MediaBlocks.js:168 -#: js/MediaBlocks.js:179 -msgid "The Top block returns the position of the top of the canvas." +#: js/blocks/ExtrasBlocks.js:36 +msgid "Convert a float to a fraction" msgstr "" -#: js/MediaBlocks.js:219 -msgid "bottom (screen)" +#: js/blocks/ExtrasBlocks.js:93 +msgid "save as ABC" msgstr "" -#: js/MediaBlocks.js:229 -#: js/MediaBlocks.js:240 -msgid "The Bottom block returns the position of the bottom of the canvas." +#: js/blocks/ExtrasBlocks.js:96 +#: js/blocks/ExtrasBlocks.js:132 +#: js/blocks/ExtrasBlocks.js:168 +msgid "title" msgstr "" -#: js/MediaBlocks.js:282 -msgid "width" +#: js/blocks/ExtrasBlocks.js:129 +msgid "save as Lilypond" msgstr "" -#: js/MediaBlocks.js:291 -msgid "The Width block returns the width of the canvas." +#: js/blocks/ExtrasBlocks.js:165 +msgid "save as SVG" msgstr "" -#: js/MediaBlocks.js:325 -msgid "height" +#: js/blocks/ExtrasBlocks.js:216 +msgid "no background" msgstr "" -#: js/MediaBlocks.js:334 -msgid "The Height block returns the height of the canvas." +#: js/blocks/ExtrasBlocks.js:219 +msgid "The No background block eliminates the background from the saved SVG output." msgstr "" -#: js/MediaBlocks.js:369 -#.TRANS: stops playback of an audio recording -msgid "stop play" +#: js/blocks/ExtrasBlocks.js:247 +msgid "show blocks" msgstr "" -#: js/MediaBlocks.js:404 -#.TRANS: Erases the images and text -msgid "erase media" +#: js/blocks/ExtrasBlocks.js:249 +msgid "The Show blocks block shows the blocks." msgstr "" -#: js/MediaBlocks.js:409 -msgid "The Erase Media block erases text and images." +#: js/blocks/ExtrasBlocks.js:274 +msgid "hide blocks" msgstr "" -#: js/MediaBlocks.js:439 -#.TRANS: play an audio recording -msgid "play back" +#: js/blocks/ExtrasBlocks.js:276 +msgid "The Hide blocks block hides the blocks." msgstr "" -#: js/MediaBlocks.js:487 -msgid "speak" +#: js/blocks/ExtrasBlocks.js:305 +#: js/blocks/ExtrasBlocks.js:338 +msgid "The Space block is used to add space between blocks." msgstr "" -#: js/MediaBlocks.js:495 -msgid "The Speak block outputs to the text-to-speech synthesizer" -msgstr "" +#: js/blocks/ExtrasBlocks.js:376 +msgid "wait" +msgstr "tunggu" -#: js/MediaBlocks.js:546 -msgid "camera" +#: js/blocks/ExtrasBlocks.js:379 +msgid "The Wait block pauses the program for a specified number of seconds." msgstr "" -#: js/MediaBlocks.js:551 -msgid "The Camera block connects a webcam to the Show block." +#: js/blocks/ExtrasBlocks.js:433 +#: plugins/facebook.rtp:30 +msgid "comment" msgstr "" -#: js/MediaBlocks.js:574 -msgid "video" +#: js/blocks/ExtrasBlocks.js:469 +msgid "print" msgstr "" -#: js/MediaBlocks.js:579 -msgid "The Video block selects video for use with the Show block." +#: js/blocks/ExtrasBlocks.js:476 +msgid "The Print block displays text at the top of the screen." msgstr "" -#: js/MediaBlocks.js:607 -msgid "The Open file block opens a file for use with the Show block." +#: js/blocks/ExtrasBlocks.js:582 +msgid "display grid" msgstr "" -#: js/MediaBlocks.js:645 -msgid "stop media" +#: js/blocks/ExtrasBlocks.js:587 +msgid "The Display Grid Block changes the grid type" msgstr "" -#: js/MediaBlocks.js:650 -msgid "The Stop media block stops audio or video playback." +#: js/blocks/ExtrasBlocks.js:689 +#: js/blocks/ExtrasBlocks.js:708 +#: js/blocks/ExtrasBlocks.js:731 +#: js/blocks/ExtrasBlocks.js:754 +#: js/blocks/ExtrasBlocks.js:772 +#: js/blocks/ExtrasBlocks.js:791 +#: js/blocks/ExtrasBlocks.js:810 +#: js/blocks/ExtrasBlocks.js:829 +msgid "unknown" msgstr "" -#: js/MediaBlocks.js:679 -#: js/PitchBlocks.js:1539 -#: js/phrasemaker.js:822 -#: js/musickeyboard.js:1654 -#.TRANS: a measure of frequency: one cycle per second -msgid "hertz" +#: js/blocks/FlowBlocks.js:41 +msgid "The Backward block runs code in reverse order (Musical retrograde)." msgstr "" -#: js/MediaBlocks.js:692 -msgid "duration (ms)" +#: js/blocks/FlowBlocks.js:48 +msgid "backward" msgstr "" -#: js/MediaBlocks.js:728 -#.TRANS: translate a note into hertz, e.g., A4 -> 440HZ -msgid "note to frequency" +#: js/blocks/FlowBlocks.js:124 +msgid "The Duplicate block will run each block multiple times." msgstr "" -#: js/MediaBlocks.js:736 -msgid "The To frequency block converts a pitch name and octave to Hertz." +#: js/blocks/FlowBlocks.js:136 +msgid "duplicate" msgstr "" -#: js/MediaBlocks.js:746 -#: js/PitchBlocks.js:656 -#: js/PitchBlocks.js:932 -#: js/PitchBlocks.js:1827 -#.TRANS: name2 is name as in name of pitch (JAPANESE ONLY) -msgid "name2" +#: js/blocks/FlowBlocks.js:334 +msgid "The Default block is used inside of a Switch to define the default action." msgstr "" -#: js/MediaBlocks.js:812 -msgid "The Avatar block is used to change the appearance of the mouse." +#: js/blocks/FlowBlocks.js:342 +msgid "default" msgstr "" -#: js/MediaBlocks.js:819 -msgid "The Avatar block is used to change the appearance of the turtle." +#: js/blocks/FlowBlocks.js:361 +#: js/blocks/FlowBlocks.js:418 +msgid "The Case Block must be used inside of a Switch Block." msgstr "" -#: js/MediaBlocks.js:831 -#: js/MediaBlocks.js:891 -#.TRANS: a media object -msgid "size" +#: js/blocks/FlowBlocks.js:389 +msgid "The Case block is used inside of a Switch to define matches." msgstr "" -#: js/MediaBlocks.js:831 -msgid "image" -msgstr "citra" - -#: js/MediaBlocks.js:880 -msgid "The Show block is used to display text or images on the canvas." +#: js/blocks/FlowBlocks.js:397 +msgid "case" msgstr "" -#: js/MediaBlocks.js:888 -#.TRANS: show1 is show as in display an image or text on the screen. -msgid "show1" +#: js/blocks/FlowBlocks.js:446 +msgid "The Switch block will run the code in the matching Case." msgstr "" -#: js/MediaBlocks.js:891 -msgid "obj" +#: js/blocks/FlowBlocks.js:454 +msgid "switch" msgstr "" -#: js/MediaBlocks.js:938 -msgid "The Media block is used to import an image." +#: js/blocks/FlowBlocks.js:595 +msgid "The Stop block will stop a loop" msgstr "" -#: js/MediaBlocks.js:973 -msgid "The Text block holds a text string." +#: js/blocks/FlowBlocks.js:597 +msgid "Forever, Repeat, While, or Until." msgstr "" -#: js/ProgramBlocks.js:33 -msgid "The Load-heap-from-app block loads the heap from a web page." +#: js/blocks/FlowBlocks.js:604 +#: js/widgets/timbre.js:417 +#: js/widgets/timbre.js:419 +#: js/widgets/musickeyboard.js:819 +#: js/widgets/musickeyboard.js:821 +#: js/widgets/phrasemaker.js:4202 +#: plugins/rodi.rtp:29 +#: plugins/rodi.rtp:73 +#: plugins/rodi.rtp:413 +msgid "stop" msgstr "" -#: js/ProgramBlocks.js:44 -#.TRANS: load the heap contents from a URL -msgid "load heap from App" +#: js/blocks/FlowBlocks.js:653 +msgid "The Waitfor block will wait until the condition is true." msgstr "" -#: js/ProgramBlocks.js:95 -msgid "Error parsing JSON data:" +#: js/blocks/FlowBlocks.js:661 +msgid "wait for" msgstr "" -#: js/ProgramBlocks.js:100 -msgid "404: Page not found" +#: js/blocks/FlowBlocks.js:732 +msgid "The Until block will repeat until the condition is true." msgstr "" -#: js/ProgramBlocks.js:133 -msgid "The Save-heap-to-app block saves the heap to a web page." +#: js/blocks/FlowBlocks.js:740 +msgid "until" msgstr "" -#: js/ProgramBlocks.js:144 -#.TRANS: save the heap contents to a URL -msgid "save heap to App" +#: js/blocks/FlowBlocks.js:742 +#: js/blocks/FlowBlocks.js:822 +msgid "do2" msgstr "" -#: js/ProgramBlocks.js:189 -msgid "Cannot find a valid heap for" +#: js/blocks/FlowBlocks.js:812 +msgid "The While block will repeat while the condition is true." msgstr "" -#: js/ProgramBlocks.js:206 -msgid "The Load-heap block loads the heap from a file." -msgstr "" +#: js/blocks/FlowBlocks.js:820 +msgid "while" +msgstr "putih" -#: js/ProgramBlocks.js:217 -#.TRANS: load the heap from a file -msgid "load heap" +#: js/blocks/FlowBlocks.js:903 +#: js/blocks/FlowBlocks.js:968 +#: js/blocks/FlowBlocks.js:979 +msgid "In this example if the mouse button is pressed a snare drum will play." msgstr "" -#: js/ProgramBlocks.js:270 -msgid "The file you selected does not contain a valid heap." -msgstr "" +#: js/blocks/FlowBlocks.js:925 +#: js/blocks/FlowBlocks.js:988 +msgid "if" +msgstr "jika" -#: js/ProgramBlocks.js:275 -msgid "The loadHeap block needs a loadFile block." -msgstr "" +#: js/blocks/FlowBlocks.js:927 +#: js/blocks/FlowBlocks.js:990 +msgid "then" +msgstr "maka" -#: js/ProgramBlocks.js:291 -msgid "The Set-heap block loads the heap." +#: js/blocks/FlowBlocks.js:927 +msgid "else" msgstr "" -#: js/ProgramBlocks.js:299 -#: js/HeapBlocks.js:539 -#.TRANS: load the heap from a JSON encoding -msgid "set heap" +#: js/blocks/FlowBlocks.js:1025 +msgid "The Forever block will repeat the contained blocks forever." msgstr "" -#: js/ProgramBlocks.js:340 -msgid "The block you selected does not contain a valid heap." -msgstr "" +#: js/blocks/FlowBlocks.js:1037 +msgid "forever" +msgstr "selamanya" -#: js/ProgramBlocks.js:343 -msgid "The Set heap block needs a heap." +#: js/blocks/FlowBlocks.js:1073 +msgid "The Repeat block will repeat the contained blocks." msgstr "" -#: js/ProgramBlocks.js:360 -msgid "The Load-dictionary block loads a dictionary from a file." +#: js/blocks/FlowBlocks.js:1075 +msgid "In this example the note will be played 4 times." msgstr "" -#: js/ProgramBlocks.js:372 -#.TRANS: load a dictionary from a file -msgid "load dictionary" -msgstr "" +#: js/blocks/FlowBlocks.js:1083 +msgid "repeat" +msgstr "ulangi" -#: js/ProgramBlocks.js:390 -#: js/ProgramBlocks.js:658 -#: js/ToneBlocks.js:1025 -msgid "file" +#: js/blocks/FlowBlocks.js:1123 +msgid "duplicate factor" msgstr "" -#: js/ProgramBlocks.js:396 -#: js/ProgramBlocks.js:501 -#: js/ProgramBlocks.js:664 -#: js/DictBlocks.js:80 -#: js/DictBlocks.js:145 -#: js/DictBlocks.js:216 -#: js/DictBlocks.js:290 -msgid "My Dictionary" +#: js/blocks/HeapBlocks.js:49 +msgid "The Heap block returns the heap." msgstr "" -#: js/ProgramBlocks.js:444 -msgid "The file you selected does not contain a valid dictionary." +#: js/blocks/HeapBlocks.js:133 +msgid "show heap" msgstr "" -#: js/ProgramBlocks.js:449 -msgid "The load dictionary block needs a load file block." +#: js/blocks/HeapBlocks.js:181 +msgid "The Heap-length block returns the length of the heap." msgstr "" -#: js/ProgramBlocks.js:466 -msgid "The Set-dictionary block loads a dictionary." +#: js/blocks/HeapBlocks.js:195 +msgid "heap length" msgstr "" -#: js/ProgramBlocks.js:477 -#.TRANS: load a dictionary from a JSON -msgid "set dictionary" +#: js/blocks/HeapBlocks.js:254 +msgid "The Heap-empty? block returns true if the heap is empty." msgstr "" -#: js/ProgramBlocks.js:546 -msgid "The block you selected does not contain a valid dictionary." +#: js/blocks/HeapBlocks.js:268 +#.TRANS: Is the heap empty? +msgid "heap empty?" msgstr "" -#: js/ProgramBlocks.js:550 -msgid "The set dictionary block needs a dictionary." +#: js/blocks/HeapBlocks.js:317 +msgid "The Empty-heap block empties the heap." msgstr "" -#: js/ProgramBlocks.js:567 -msgid "The Save-heap block saves the heap to a file." +#: js/blocks/HeapBlocks.js:327 +#: js/blocks/HeapBlocks.js:647 +#.TRANS: empty the heap +msgid "empty heap" msgstr "" -#: js/ProgramBlocks.js:578 -#.TRANS: save the heap to a file -msgid "save heap" +#: js/blocks/HeapBlocks.js:371 +msgid "The Reverse-heap block reverses the order of the heap." msgstr "" -#: js/ProgramBlocks.js:629 -msgid "The Save-dictionary block saves a dictionary to a file." +#: js/blocks/HeapBlocks.js:384 +#.TRANS: reverse the order of the heap +msgid "reverse heap" msgstr "" -#: js/ProgramBlocks.js:640 -#.TRANS: save a dictionary to a file -msgid "save dictionary" +#: js/blocks/HeapBlocks.js:428 +msgid "The Index-heap block returns a value in the heap at a specified location." msgstr "" -#: js/ProgramBlocks.js:720 -msgid "The Open palette block opens a palette." +#: js/blocks/HeapBlocks.js:443 +#.TRANS: retrieve a value from the heap at index position in the heap +msgid "index heap" msgstr "" -#: js/ProgramBlocks.js:727 -msgid "open palette" +#: js/blocks/HeapBlocks.js:523 +msgid "The Set-heap entry block sets a value in he heap at the specified location." msgstr "" -#: js/ProgramBlocks.js:785 -msgid "The Delete block block removes a block." +#: js/blocks/HeapBlocks.js:539 +#: js/blocks/ProgramBlocks.js:299 +#.TRANS: load the heap from a JSON encoding +msgid "set heap" msgstr "" -#: js/ProgramBlocks.js:797 -#.TRANS: Move this block to the trash. -msgid "delete block" +#: js/blocks/HeapBlocks.js:619 +msgid "The Pop block removes the value at the top of the heap." msgstr "" -#: js/ProgramBlocks.js:861 -msgid "The Move block block moves a block." +#: js/blocks/HeapBlocks.js:633 +#.TRANS: pop a value off the top of the heap +msgid "pop" msgstr "" -#: js/ProgramBlocks.js:869 -#.TRANS: Move the position of a block on the screen. -msgid "move block" +#: js/blocks/HeapBlocks.js:680 +msgid "The Push block adds a value to the top of the heap." msgstr "" -#: js/ProgramBlocks.js:881 -#: js/ProgramBlocks.js:1048 -msgid "block number" +#: js/blocks/HeapBlocks.js:696 +#.TRANS: push a value onto the top of the heap +msgid "push" msgstr "" -#: js/ProgramBlocks.js:935 -#.TRANS: Run program beginning at this block. -msgid "run block" +#: js/blocks/IntervalsBlocks.js:45 +msgid "set temperament" msgstr "" -#: js/ProgramBlocks.js:1025 -msgid "The Dock block block connections two blocks." +#: js/blocks/IntervalsBlocks.js:63 +#: js/blocks/MediaBlocks.js:746 +#: js/blocks/PitchBlocks.js:657 +#: js/blocks/PitchBlocks.js:935 +#: js/blocks/PitchBlocks.js:974 +#: js/blocks/PitchBlocks.js:1007 +#: js/blocks/PitchBlocks.js:1194 +#: js/blocks/PitchBlocks.js:1717 +#: js/blocks/PitchBlocks.js:1758 +#: js/blocks/PitchBlocks.js:1866 +#: js/blocks/ToneBlocks.js:1025 +#: js/turtleactions/IntervalsActions.js:114 +#.TRANS: adjusts the shift up or down by one octave (twelve half-steps in the interval between two notes, one having twice or half the frequency in Hz of the other.) +msgid "octave" msgstr "" -#: js/ProgramBlocks.js:1036 -#.TRANS: We can connect a block to another block. -msgid "connect blocks" +#: js/blocks/IntervalsBlocks.js:99 +msgid "The Temperament name block is used to select a tuning method." msgstr "" -#: js/ProgramBlocks.js:1048 -msgid "target block" +#: js/blocks/IntervalsBlocks.js:161 +msgid "doubly" msgstr "" -#: js/ProgramBlocks.js:1048 -msgid "connection number" +#: js/blocks/IntervalsBlocks.js:166 +msgid "The Doubly block will double the size of an interval." msgstr "" -#: js/ProgramBlocks.js:1140 -msgid "The Make block block creates a new block." +#: js/blocks/IntervalsBlocks.js:262 +msgid "interval number" msgstr "" -#: js/ProgramBlocks.js:1152 -#.TRANS: Create a new block -msgid "make block" +#: js/blocks/IntervalsBlocks.js:317 +msgid "current interval" msgstr "" -#: js/ProgramBlocks.js:1186 -#: js/ProgramBlocks.js:1227 -#: js/RhythmBlocks.js:1128 -#: js/PitchBlocks.js:972 -#: js/PitchBlocks.js:1005 -#: js/temperament.js:340 -#: js/temperament.js:362 -#: js/temperament.js:372 -#: js/temperament.js:484 -#: js/status.js:190 -#: plugins/rodi.rtp:192 -#.TRANS: a musical note consisting of pitch and duration -msgid "note" +#: js/blocks/IntervalsBlocks.js:387 +#.TRANS: measure the distance between two pitches in semi-tones +msgid "semi-tone interval measure" msgstr "" -#: js/ProgramBlocks.js:1285 -msgid "Cannot find block" +#: js/blocks/IntervalsBlocks.js:454 +#: js/blocks/IntervalsBlocks.js:570 +msgid "You must use two pitch blocks when measuring an interval." msgstr "" -#: js/ProgramBlocks.js:1304 -#: js/ProgramBlocks.js:1313 -msgid "Warning: block argument type mismatch" +#: js/blocks/IntervalsBlocks.js:496 +msgid "The Scalar interval block measures the distance between two notes in the current key and mode." msgstr "" -#: js/ProgramBlocks.js:1347 -msgid "The Open project block is used to open a project from a web page." +#: js/blocks/IntervalsBlocks.js:502 +#.TRANS: measure the distance between two pitches in steps of musical scale +msgid "scalar interval measure" msgstr "" -#: js/ProgramBlocks.js:1357 -msgid "open project" +#: js/blocks/IntervalsBlocks.js:678 +msgid "In the figure, we add sol# to sol." msgstr "" -#: js/ProgramBlocks.js:1410 -msgid "Please enter a valid URL." +#: js/blocks/IntervalsBlocks.js:684 +#: js/blocks/OrnamentBlocks.js:220 +#.TRANS: calculate a relative step between notes based on semi-tones +msgid "semi-tone interval" msgstr "" -#: js/DrumBlocks.js:59 -msgid "The Noise name block is used to select a noise synthesizer." +#: js/blocks/IntervalsBlocks.js:733 +msgid "The output of the example is: do, mi, sol, sol, ti, mi" msgstr "" -#: js/DrumBlocks.js:102 -msgid "The Drum name block is used to select a drum." +#: js/blocks/IntervalsBlocks.js:740 +#: js/blocks/WidgetBlocks.js:768 +msgid "arpeggio" msgstr "" -#: js/DrumBlocks.js:146 -msgid "The Effects name block is used to select a sound effect." +#: js/blocks/IntervalsBlocks.js:931 +msgid "The Chord block calculates common chords." msgstr "" -#: js/DrumBlocks.js:163 -msgid "noise" +#: js/blocks/IntervalsBlocks.js:933 +msgid "In the figure, we generate a C-major chord." msgstr "" -#: js/DrumBlocks.js:177 -msgid "The Play noise block will generate white, pink, or brown noise." +#: js/blocks/IntervalsBlocks.js:938 +msgid "chord" msgstr "" -#: js/DrumBlocks.js:191 -#: js/musicutils.js:752 -#: js/synthutils.js:47 -#.TRANS: white noise synthesizer -msgid "white noise" +#: js/blocks/IntervalsBlocks.js:990 +msgid "The Ratio Interval block calculates an interval based on a ratio." msgstr "" -#: js/DrumBlocks.js:326 -msgid "Replace every instance of a pitch with a drum sound." +#: js/blocks/IntervalsBlocks.js:995 +msgid "ratio interval" msgstr "" -#: js/DrumBlocks.js:337 -#.TRANS: map a pitch to a drum sound -msgid "map pitch to drum" +#: js/blocks/IntervalsBlocks.js:1064 +msgid "In the figure, we add la to sol." msgstr "" -#: js/DrumBlocks.js:404 -msgid "In the example above, a kick drum sound will be played instead of sol." +#: js/blocks/IntervalsBlocks.js:1120 +#.TRANS: define a custom mode +msgid "define mode" msgstr "" -#: js/DrumBlocks.js:416 -#.TRANS: set the current drum sound for playback -msgid "set drum" +#: js/blocks/IntervalsBlocks.js:1173 +msgid "movable Do" msgstr "" -#: js/DrumBlocks.js:460 -msgid "sound effect" +#: js/blocks/IntervalsBlocks.js:1224 +#.TRANS: mode length is the number of notes in the mode, e.g., 7 for major and minor scales; 12 for chromatic scales +msgid "mode length" msgstr "" -#: js/DrumBlocks.js:498 -msgid "You can use multiple Drum blocks within a Note block." +#: js/blocks/IntervalsBlocks.js:1233 +msgid "The Mode length block is the number of notes in the current scale." msgstr "" -#: js/RhythmBlocks.js:182 -#: js/RhythmBlocks.js:1086 -#: js/RhythmBlocks.js:1162 -msgid "Note value must be greater than 0." +#: js/blocks/IntervalsBlocks.js:1235 +msgid "Most Western scales have 7 notes." msgstr "" -#: js/RhythmBlocks.js:215 -#: js/RhythmBlocks.js:278 -#: js/RhythmBlocks.js:350 -#.TRANS: swing is a rhythmic variation that emphasises the offbeat -msgid "swing" +#: js/blocks/IntervalsBlocks.js:1284 +#.TRANS: the mode in music is 'major', 'minor', etc. +msgid "current mode" msgstr "" -#: js/RhythmBlocks.js:355 -#.TRANS: the amount to shift to the offbeat note -msgid "swing value" +#: js/blocks/IntervalsBlocks.js:1337 +#.TRANS: the key is a group of pitches with which a music composition is created +msgid "current key" msgstr "" -#: js/RhythmBlocks.js:419 -msgid "The Skip notes block will cause notes to be skipped." +#: js/blocks/IntervalsBlocks.js:1389 +#: js/blocks/IntervalsBlocks.js:1434 +#.TRANS: set the key and mode, e.g. C Major +msgid "set key" msgstr "" -#: js/RhythmBlocks.js:427 -#.TRANS: substitute rests on notes being skipped -msgid "skip notes" +#: js/blocks/IntervalsBlocks.js:1443 +#: js/blocks/IntervalsBlocks.js:1449 +msgid "The Set key block is used to set the key and mode," msgstr "" -#: js/RhythmBlocks.js:489 -#.TRANS: speed up note duration by some factor, e.g. convert 1/4 to 1/8 notes by using a factor of 2 -msgid "multiply note value" +#: js/blocks/IntervalsBlocks.js:1449 +msgid "eg C Major" msgstr "" -#: js/RhythmBlocks.js:542 -msgid "The Tie block works on pairs of notes, combining them into one note." +#: js/blocks/MediaBlocks.js:35 +#.TRANS: right side of the screen +msgid "right (screen)" msgstr "" -#: js/RhythmBlocks.js:550 -#.TRANS: tie notes together into one longer note -msgid "tie" +#: js/blocks/MediaBlocks.js:45 +#: js/blocks/MediaBlocks.js:56 +msgid "The Right block returns the position of the right of the canvas." msgstr "" -#: js/RhythmBlocks.js:591 -#: js/RhythmBlocks.js:671 -#.TRANS: a dotted note is played for 1.5x its value, e.g., 1/8. --> 3/16 -msgid "dot" +#: js/blocks/MediaBlocks.js:97 +#.TRANS: left side of the screen +msgid "left (screen)" msgstr "" -#: js/RhythmBlocks.js:619 -#: js/RhythmActions.js:221 -msgid "An argument of -1 results in a note value of 0." +#: js/blocks/MediaBlocks.js:107 +#: js/blocks/MediaBlocks.js:118 +msgid "The Left block returns the position of the left of the canvas." msgstr "" -#: js/RhythmBlocks.js:661 -msgid "The Dot block extends the duration of a note by 50%." +#: js/blocks/MediaBlocks.js:158 +msgid "top (screen)" msgstr "" -#: js/RhythmBlocks.js:663 -msgid "Eg a dotted quarter note will play for 3/8 (1/4 + 1/8) of a beat." +#: js/blocks/MediaBlocks.js:168 +#: js/blocks/MediaBlocks.js:179 +msgid "The Top block returns the position of the top of the canvas." msgstr "" -#: js/RhythmBlocks.js:765 -#.TRANS: Japanese only: note value block for drum -msgid "note value drum" +#: js/blocks/MediaBlocks.js:219 +msgid "bottom (screen)" msgstr "" -#: js/RhythmBlocks.js:829 -msgid "392 hertz" +#: js/blocks/MediaBlocks.js:229 +#: js/blocks/MediaBlocks.js:240 +msgid "The Bottom block returns the position of the bottom of the canvas." msgstr "" -#: js/RhythmBlocks.js:1119 -msgid "The Note block is a container for one or more Pitch blocks." +#: js/blocks/MediaBlocks.js:282 +msgid "width" msgstr "" -#: js/RhythmBlocks.js:1121 -msgid "The Note block specifies the duration (note value) of its contents." +#: js/blocks/MediaBlocks.js:291 +msgid "The Width block returns the width of the canvas." msgstr "" -#: js/RhythmBlocks.js:1130 -msgid "value2" +#: js/blocks/MediaBlocks.js:325 +msgid "height" msgstr "" -#: js/RhythmBlocks.js:1200 -msgid "define frequency" +#: js/blocks/MediaBlocks.js:334 +msgid "The Height block returns the height of the canvas." msgstr "" -#: js/RhythmBlocks.js:1218 -#: js/temperament.js:650 -#: js/temperament.js:1421 -msgid "octave space" +#: js/blocks/MediaBlocks.js:369 +#.TRANS: stops playback of an audio recording +msgid "stop play" msgstr "" -#: js/NumberBlocks.js:28 -msgid "The Int block returns an integer." +#: js/blocks/MediaBlocks.js:404 +#.TRANS: Erases the images and text +msgid "erase media" msgstr "" -#: js/NumberBlocks.js:34 -msgid "int" +#: js/blocks/MediaBlocks.js:409 +msgid "The Erase Media block erases text and images." msgstr "" -#: js/NumberBlocks.js:73 -msgid "The Mod block returns the remainder from a division." +#: js/blocks/MediaBlocks.js:439 +#.TRANS: play an audio recording +msgid "play back" msgstr "" -#: js/NumberBlocks.js:79 -msgid "mod" -msgstr "mod" +#: js/blocks/MediaBlocks.js:487 +msgid "speak" +msgstr "" -#: js/NumberBlocks.js:123 -msgid "The Power block calculates a power function." +#: js/blocks/MediaBlocks.js:495 +msgid "The Speak block outputs to the text-to-speech synthesizer" msgstr "" -#: js/NumberBlocks.js:178 -msgid "The Sqrt block returns the square root." +#: js/blocks/MediaBlocks.js:546 +msgid "camera" msgstr "" -#: js/NumberBlocks.js:184 -msgid "sqrt" +#: js/blocks/MediaBlocks.js:551 +msgid "The Camera block connects a webcam to the Show block." msgstr "" -#: js/NumberBlocks.js:230 -msgid "The Abs block returns the absolute value." +#: js/blocks/MediaBlocks.js:574 +msgid "video" msgstr "" -#: js/NumberBlocks.js:236 -msgid "abs" +#: js/blocks/MediaBlocks.js:579 +msgid "The Video block selects video for use with the Show block." msgstr "" -#: js/NumberBlocks.js:277 -msgid "The Distance block returns the distance between two points. For example, between the mouse and the center of the screen." +#: js/blocks/MediaBlocks.js:607 +msgid "The Open file block opens a file for use with the Show block." msgstr "" -#: js/NumberBlocks.js:283 -#: plugins/rodi.rtp:310 -msgid "distance" +#: js/blocks/MediaBlocks.js:645 +msgid "stop media" msgstr "" -#: js/NumberBlocks.js:343 -msgid "The Divide block is used to divide." +#: js/blocks/MediaBlocks.js:650 +msgid "The Stop media block stops audio or video playback." msgstr "" -#: js/NumberBlocks.js:411 -msgid "The Multiply block is used to multiply." +#: js/blocks/MediaBlocks.js:679 +#: js/blocks/PitchBlocks.js:1577 +#: js/widgets/musickeyboard.js:1936 +#: js/widgets/phrasemaker.js:1037 +#.TRANS: a measure of frequency: one cycle per second +msgid "hertz" msgstr "" -#: js/NumberBlocks.js:554 -msgid "The Minus block is used to subtract." +#: js/blocks/MediaBlocks.js:692 +#: js/blocks/WidgetBlocks.js:182 +#: js/widgets/temperament.js:506 +#: js/widgets/temperament.js:546 +#: js/widgets/temperament.js:610 +#: js/widgets/temperament.js:618 +#: js/widgets/temperament.js:1505 +#: js/widgets/timbre.js:1842 +msgid "frequency" msgstr "" -#: js/NumberBlocks.js:647 -msgid "The Plus block is used to add." +#: js/blocks/MediaBlocks.js:692 +msgid "duration (ms)" msgstr "" -#: js/NumberBlocks.js:773 -msgid "The One-of block returns one of two choices." +#: js/blocks/MediaBlocks.js:728 +#.TRANS: translate a note into hertz, e.g., A4 -> 440HZ +msgid "note to frequency" msgstr "" -#: js/NumberBlocks.js:780 -#: js/PitchBlocks.js:616 -msgid "one of" +#: js/blocks/MediaBlocks.js:736 +msgid "The To frequency block converts a pitch name and octave to Hertz." msgstr "" -#: js/NumberBlocks.js:782 -msgid "this" +#: js/blocks/MediaBlocks.js:746 +#: js/blocks/PitchBlocks.js:656 +#: js/blocks/PitchBlocks.js:934 +#: js/blocks/PitchBlocks.js:1866 +#.TRANS: name2 is name as in name of pitch (JAPANESE ONLY) +msgid "name2" msgstr "" -#: js/NumberBlocks.js:782 -msgid "that" +#: js/blocks/MediaBlocks.js:812 +msgid "The Avatar block is used to change the appearance of the mouse." msgstr "" -#: js/NumberBlocks.js:837 -msgid "The Random block returns a random number." +#: js/blocks/MediaBlocks.js:819 +msgid "The Avatar block is used to change the appearance of the turtle." msgstr "" -#: js/NumberBlocks.js:844 -msgid "random" -msgstr "acak" +#: js/blocks/MediaBlocks.js:831 +#: js/blocks/MediaBlocks.js:891 +#.TRANS: a media object +msgid "size" +msgstr "" -#: js/NumberBlocks.js:846 -msgid "min" -msgstr "min" +#: js/blocks/MediaBlocks.js:831 +msgid "image" +msgstr "citra" -#: js/NumberBlocks.js:846 -msgid "max" -msgstr "maks" +#: js/blocks/MediaBlocks.js:880 +msgid "The Show block is used to display text or images on the canvas." +msgstr "" -#: js/NumberBlocks.js:910 -msgid "The Number block holds a number." +#: js/blocks/MediaBlocks.js:888 +#.TRANS: show1 is show as in display an image or text on the screen. +msgid "show1" msgstr "" -#: js/BoxesBlocks.js:53 -#: js/BoxesBlocks.js:59 -msgid "The Add-to block is used to add to the value stored in a box." +#: js/blocks/MediaBlocks.js:891 +msgid "obj" msgstr "" -#: js/BoxesBlocks.js:61 -msgid "It can also be used with other blocks such as Color and Pen size." +#: js/blocks/MediaBlocks.js:938 +msgid "The Media block is used to import an image." msgstr "" -#: js/BoxesBlocks.js:73 -msgid "add" +#: js/blocks/MediaBlocks.js:973 +msgid "The Text block holds a text string." msgstr "" -#: js/BoxesBlocks.js:75 -#: js/temperament.js:716 -msgid "to" +#: js/blocks/MeterBlocks.js:34 +#.TRANS: musical meter (time signature), e.g., 4:4 +msgid "current meter" msgstr "" -#: js/BoxesBlocks.js:75 -#: js/BoxesBlocks.js:595 -#: js/HeapBlocks.js:544 -msgid "value1" +#: js/blocks/MeterBlocks.js:85 +#.TRANS: number of beats per minute +msgid "beat factor" msgstr "" -#: js/BoxesBlocks.js:118 -msgid "Block does not support incrementing." +#: js/blocks/MeterBlocks.js:161 +msgid "The Beats per minute block returns the current beats per minute." msgstr "" -#: js/BoxesBlocks.js:152 -msgid "The Add-1-to block adds one to the value stored in a box." +#: js/blocks/MeterBlocks.js:169 +#: js/widgets/status.js:152 +#.TRANS: number of beats played per minute +msgid "beats per minute2" msgstr "" -#: js/BoxesBlocks.js:163 -msgid "add 1 to" +#: js/blocks/MeterBlocks.js:169 +#: js/blocks/MeterBlocks.js:1056 +#: js/blocks/MeterBlocks.js:1133 +#: js/blocks/MeterBlocks.js:1211 +#.TRANS: sets tempo by defining a beat and beats per minute +msgid "beats per minute" msgstr "" -#: js/BoxesBlocks.js:211 -msgid "The Subtract-1-from block subtracts one from the value stored in a box." +#: js/blocks/MeterBlocks.js:233 +#.TRANS: count of current musical measure in meter +msgid "measure count" msgstr "" -#: js/BoxesBlocks.js:222 -msgid "subtract 1 from" +#: js/blocks/MeterBlocks.js:241 +msgid "The Measure count block returns the current measure." msgstr "" -#: js/BoxesBlocks.js:270 -#: js/BoxesBlocks.js:387 -msgid "The Box block returns the value stored in a box." +#: js/blocks/MeterBlocks.js:290 +#.TRANS: count of current beat in the meter +msgid "beat count" msgstr "" -#: js/BoxesBlocks.js:500 -#: js/BoxesBlocks.js:576 -msgid "The Store in block will store a value in a box." +#: js/blocks/MeterBlocks.js:300 +#: js/blocks/MeterBlocks.js:311 +#: js/blocks/MeterBlocks.js:565 +#: js/blocks/MeterBlocks.js:576 +msgid "The Beat count block is the number of the current beat," msgstr "" -#: js/BoxesBlocks.js:652 -msgid "The Box2 block returns the value stored in Box2." +#: js/blocks/MeterBlocks.js:313 +#: js/blocks/MeterBlocks.js:578 +msgid "eg 1, 2, 3, or 4." msgstr "" -#: js/BoxesBlocks.js:703 -msgid "The Store in Box2 block is used to store a value in Box2." +#: js/blocks/MeterBlocks.js:368 +#.TRANS: count the number of notes +msgid "sum note values" msgstr "" -#: js/BoxesBlocks.js:715 -msgid "store in box2" +#: js/blocks/MeterBlocks.js:376 +#: js/blocks/MeterBlocks.js:440 +msgid "The Note counter block can be used to count the number of contained notes." msgstr "" -#: js/BoxesBlocks.js:761 -msgid "The Box1 block returns the value stored in Box1." +#: js/blocks/MeterBlocks.js:432 +#.TRANS: count the number of notes +msgid "note counter" msgstr "" -#: js/BoxesBlocks.js:812 -msgid "The Store in Box1 block is used to store a value in Box1." +#: js/blocks/MeterBlocks.js:496 +#.TRANS: number of whole notes that have been played +msgid "whole notes played" msgstr "" -#: js/BoxesBlocks.js:826 -msgid "store in box1" +#: js/blocks/MeterBlocks.js:505 +msgid "The Whole notes played block returns the total number of whole notes played." msgstr "" -#: js/HeapBlocks.js:49 -msgid "The Heap block returns the heap." +#: js/blocks/MeterBlocks.js:555 +#: js/turtleactions/DictActions.js:83 +#.TRANS: number of notes that have been played +msgid "notes played" msgstr "" -#: js/HeapBlocks.js:133 -msgid "show heap" +#: js/blocks/MeterBlocks.js:653 +msgid "The No clock block decouples the notes from the master clock." msgstr "" -#: js/HeapBlocks.js:181 -msgid "The Heap-length block returns the length of the heap." +#: js/blocks/MeterBlocks.js:661 +#.TRANS: don't lock notes to master clock +msgid "no clock" msgstr "" -#: js/HeapBlocks.js:195 -msgid "heap length" +#: js/blocks/MeterBlocks.js:700 +msgid "on weak beat do" msgstr "" -#: js/HeapBlocks.js:254 -msgid "The Heap-empty? block returns true if the heap is empty." +#: js/blocks/MeterBlocks.js:705 +msgid "The On-weak-beat block lets you specify actions to take on weak (off) beats." msgstr "" -#: js/HeapBlocks.js:268 -#.TRANS: Is the heap empty? -msgid "heap empty?" +#: js/blocks/MeterBlocks.js:750 +msgid "on strong beat" msgstr "" -#: js/HeapBlocks.js:317 -msgid "The Empty-heap block empties the heap." +#: js/blocks/MeterBlocks.js:758 +msgid "The On-strong-beat block lets you specify actions to take on specified beats." msgstr "" -#: js/HeapBlocks.js:327 -#: js/HeapBlocks.js:647 -#.TRANS: empty the heap -msgid "empty heap" +#: js/blocks/MeterBlocks.js:769 +msgid "beat" msgstr "" -#: js/HeapBlocks.js:371 -msgid "The Reverse-heap block reverses the order of the heap." +#: js/blocks/MeterBlocks.js:813 +msgid "on every beat do" msgstr "" -#: js/HeapBlocks.js:384 -#.TRANS: reverse the order of the heap -msgid "reverse heap" +#: js/blocks/MeterBlocks.js:821 +msgid "The On-every-beat block lets you specify actions to take on every beat." msgstr "" -#: js/HeapBlocks.js:428 -msgid "The Index-heap block returns a value in the heap at a specified location." +#: js/blocks/MeterBlocks.js:874 +msgid "on every note do" msgstr "" -#: js/HeapBlocks.js:443 -#.TRANS: retrieve a value from the heap at index position in the heap -msgid "index heap" +#: js/blocks/MeterBlocks.js:882 +msgid "The On-every-note block lets you specify actions to take on every note." msgstr "" -#: js/HeapBlocks.js:523 -msgid "The Set-heap entry block sets a value in he heap at the specified location." +#: js/blocks/MeterBlocks.js:928 +#: js/blocks/MeterBlocks.js:999 +#.TRANS: sets tempo by defining a beat and beats per minute +msgid "master beats per minute" msgstr "" -#: js/HeapBlocks.js:619 -msgid "The Pop block removes the value at the top of the heap." +#: js/blocks/MeterBlocks.js:952 +#: js/blocks/MeterBlocks.js:1078 +#: js/blocks/MeterBlocks.js:1135 +msgid "bpm" msgstr "" -#: js/HeapBlocks.js:633 -#.TRANS: pop a value off the top of the heap -msgid "pop" +#: js/blocks/MeterBlocks.js:952 +#: js/blocks/MeterBlocks.js:1078 +#: js/blocks/MeterBlocks.js:1135 +msgid "beat value" msgstr "" -#: js/HeapBlocks.js:680 -msgid "The Push block adds a value to the top of the heap." +#: js/blocks/MeterBlocks.js:1024 +#: js/blocks/MeterBlocks.js:1167 +#: js/blocks/MeterBlocks.js:1241 +msgid "Beats per minute must be > 30." msgstr "" -#: js/HeapBlocks.js:696 -#.TRANS: push a value onto the top of the heap -msgid "push" +#: js/blocks/MeterBlocks.js:1027 +#: js/blocks/MeterBlocks.js:1170 +#: js/blocks/MeterBlocks.js:1244 +msgid "Maximum beats per minute is 1000." msgstr "" -#: js/FlowBlocks.js:41 -msgid "The Backward block runs code in reverse order (Musical retrograde)." +#: js/blocks/MeterBlocks.js:1068 +msgid "The Beats per minute block sets the number of 1/4 notes per minute." msgstr "" -#: js/FlowBlocks.js:48 -msgid "backward" +#: js/blocks/MeterBlocks.js:1279 +#.TRANS: anacrusis +msgid "pickup" msgstr "" -#: js/FlowBlocks.js:124 -msgid "The Duplicate block will run each block multiple times." +#: js/blocks/MeterBlocks.js:1367 +msgid "number of beats" msgstr "" -#: js/FlowBlocks.js:136 -msgid "duplicate" +#: js/blocks/NumberBlocks.js:28 +msgid "The Int block returns an integer." msgstr "" -#: js/FlowBlocks.js:334 -msgid "The Default block is used inside of a Switch to define the default action." +#: js/blocks/NumberBlocks.js:34 +msgid "int" msgstr "" -#: js/FlowBlocks.js:342 -msgid "default" +#: js/blocks/NumberBlocks.js:73 +msgid "The Mod block returns the remainder from a division." msgstr "" -#: js/FlowBlocks.js:361 -#: js/FlowBlocks.js:418 -msgid "The Case Block must be used inside of a Switch Block." +#: js/blocks/NumberBlocks.js:79 +msgid "mod" +msgstr "mod" + +#: js/blocks/NumberBlocks.js:141 +msgid "The Power block calculates a power function." msgstr "" -#: js/FlowBlocks.js:389 -msgid "The Case block is used inside of a Switch to define matches." +#: js/blocks/NumberBlocks.js:196 +msgid "The Sqrt block returns the square root." msgstr "" -#: js/FlowBlocks.js:397 -msgid "case" +#: js/blocks/NumberBlocks.js:202 +msgid "sqrt" msgstr "" -#: js/FlowBlocks.js:446 -msgid "The Switch block will run the code in the matching Case." +#: js/blocks/NumberBlocks.js:248 +msgid "The Abs block returns the absolute value." msgstr "" -#: js/FlowBlocks.js:454 -msgid "switch" +#: js/blocks/NumberBlocks.js:254 +msgid "abs" msgstr "" -#: js/FlowBlocks.js:595 -msgid "The Stop block will stop a loop" +#: js/blocks/NumberBlocks.js:295 +msgid "The Distance block returns the distance between two points. For example, between the mouse and the center of the screen." msgstr "" -#: js/FlowBlocks.js:597 -msgid "Forever, Repeat, While, or Until." +#: js/blocks/NumberBlocks.js:301 +#: plugins/rodi.rtp:310 +msgid "distance" msgstr "" -#: js/FlowBlocks.js:604 -#: js/phrasemaker.js:3799 -#: js/musickeyboard.js:629 -#: js/musickeyboard.js:631 -#: js/timbre.js:417 -#: js/timbre.js:419 -#: plugins/rodi.rtp:29 -#: plugins/rodi.rtp:73 -#: plugins/rodi.rtp:413 -msgid "stop" +#: js/blocks/NumberBlocks.js:361 +msgid "The Divide block is used to divide." msgstr "" -#: js/FlowBlocks.js:653 -msgid "The Waitfor block will wait until the condition is true." +#: js/blocks/NumberBlocks.js:441 +msgid "The Multiply block is used to multiply." msgstr "" -#: js/FlowBlocks.js:661 -msgid "wait for" +#: js/blocks/NumberBlocks.js:612 +msgid "The Minus block is used to subtract." msgstr "" -#: js/FlowBlocks.js:732 -msgid "The Until block will repeat until the condition is true." +#: js/blocks/NumberBlocks.js:723 +msgid "The Plus block is used to add." msgstr "" -#: js/FlowBlocks.js:740 -msgid "until" +#: js/blocks/NumberBlocks.js:849 +msgid "The One-of block returns one of two choices." msgstr "" -#: js/FlowBlocks.js:742 -#: js/FlowBlocks.js:822 -msgid "do2" +#: js/blocks/NumberBlocks.js:856 +#: js/blocks/PitchBlocks.js:616 +msgid "one of" msgstr "" -#: js/FlowBlocks.js:812 -msgid "The While block will repeat while the condition is true." +#: js/blocks/NumberBlocks.js:858 +msgid "this" msgstr "" -#: js/FlowBlocks.js:820 -msgid "while" -msgstr "putih" +#: js/blocks/NumberBlocks.js:858 +msgid "that" +msgstr "" -#: js/FlowBlocks.js:903 -#: js/FlowBlocks.js:968 -#: js/FlowBlocks.js:979 -msgid "In this example if the mouse button is pressed a snare drum will play." +#: js/blocks/NumberBlocks.js:913 +msgid "The Random block returns a random number." msgstr "" -#: js/FlowBlocks.js:925 -#: js/FlowBlocks.js:988 -msgid "if" -msgstr "jika" +#: js/blocks/NumberBlocks.js:920 +msgid "random" +msgstr "acak" -#: js/FlowBlocks.js:927 -#: js/FlowBlocks.js:990 -msgid "then" -msgstr "maka" +#: js/blocks/NumberBlocks.js:922 +msgid "min" +msgstr "min" -#: js/FlowBlocks.js:927 -msgid "else" -msgstr "" +#: js/blocks/NumberBlocks.js:922 +msgid "max" +msgstr "maks" -#: js/FlowBlocks.js:1025 -msgid "The Forever block will repeat the contained blocks forever." +#: js/blocks/NumberBlocks.js:986 +msgid "The Number block holds a number." msgstr "" -#: js/FlowBlocks.js:1037 -msgid "forever" -msgstr "selamanya" - -#: js/FlowBlocks.js:1073 -msgid "The Repeat block will repeat the contained blocks." +#: js/blocks/OrnamentBlocks.js:32 +msgid "staccato factor" msgstr "" -#: js/FlowBlocks.js:1075 -msgid "In this example the note will be played 4 times." +#: js/blocks/OrnamentBlocks.js:108 +msgid "slur factor" msgstr "" -#: js/FlowBlocks.js:1083 -msgid "repeat" -msgstr "ulangi" - -#: js/FlowBlocks.js:1123 -msgid "duplicate factor" +#: js/blocks/OrnamentBlocks.js:217 +#: js/blocks/OrnamentBlocks.js:309 +#.TRANS: the neighbor refers to a neighboring note, e.g., D is a neighbor of C +msgid "neighbor" msgstr "" -#: js/PitchBlocks.js:39 -#: js/musicutils.js:722 -#: js/musicutils.js:1117 -#: js/synthutils.js:112 -#.TRANS: square wave -msgid "square" +#: js/blocks/OrnamentBlocks.js:293 +msgid "The Neighbor block rapidly switches between neighboring pitches." msgstr "" -#: js/PitchBlocks.js:62 -#: js/ToneBlocks.js:39 -#: js/musicutils.js:723 -#: js/musicutils.js:1118 -#: js/synthutils.js:116 -#.TRANS: triangle wave -msgid "triangle" +#: js/blocks/OrnamentBlocks.js:364 +msgid "glide" msgstr "" -#: js/PitchBlocks.js:85 -#: js/musicutils.js:721 -#: js/musicutils.js:1116 -#: js/synthutils.js:110 -#.TRANS: sine wave -msgid "sine" +#: js/blocks/OrnamentBlocks.js:479 +#: js/blocks/OrnamentBlocks.js:643 +msgid "slur" msgstr "" -#: js/PitchBlocks.js:108 -#: js/musicutils.js:724 -#: js/musicutils.js:1119 -#: js/synthutils.js:114 -#.TRANS: sawtooth wave -msgid "sawtooth" +#: js/blocks/OrnamentBlocks.js:558 +#: js/blocks/OrnamentBlocks.js:710 +#.TRANS: play each note sharply detached from the others +msgid "staccato" msgstr "" -#: js/PitchBlocks.js:141 -#.TRANS: musical transposition (adjustment of pitch up or down) -msgid "transposition" +#: js/blocks/RhythmBlocks.js:182 +#: js/blocks/RhythmBlocks.js:1086 +#: js/blocks/RhythmBlocks.js:1162 +msgid "Note value must be greater than 0." msgstr "" -#: js/PitchBlocks.js:168 -#.TRANS: step down one note in current musical scale -msgid "scalar step down" +#: js/blocks/RhythmBlocks.js:215 +#: js/blocks/RhythmBlocks.js:278 +#: js/blocks/RhythmBlocks.js:350 +#.TRANS: swing is a rhythmic variation that emphasises the offbeat +msgid "swing" msgstr "" -#: js/PitchBlocks.js:172 -msgid "The Scalar step down block returns the number of semi-tones down to the previous note in the current key and mode." +#: js/blocks/RhythmBlocks.js:355 +#.TRANS: the amount to shift to the offbeat note +msgid "swing value" msgstr "" -#: js/PitchBlocks.js:190 -#.TRANS: step up one note in current musical scale -msgid "scalar step up" +#: js/blocks/RhythmBlocks.js:419 +msgid "The Skip notes block will cause notes to be skipped." msgstr "" -#: js/PitchBlocks.js:194 -msgid "The Scalar step up block returns the number of semi-tones up to the next note in the current key and mode." +#: js/blocks/RhythmBlocks.js:427 +#.TRANS: substitute rests on notes being skipped +msgid "skip notes" msgstr "" -#: js/PitchBlocks.js:212 -#.TRANS: the change measured in half-steps between the current pitch and the previous pitch -msgid "change in pitch" +#: js/blocks/RhythmBlocks.js:489 +#.TRANS: speed up note duration by some factor, e.g. convert 1/4 to 1/8 notes by using a factor of 2 +msgid "multiply note value" msgstr "" -#: js/PitchBlocks.js:216 -msgid "The Change in pitch block is the difference (in half steps) between the current pitch being played and the previous pitch played." +#: js/blocks/RhythmBlocks.js:542 +msgid "The Tie block works on pairs of notes, combining them into one note." msgstr "" -#: js/PitchBlocks.js:243 -#.TRANS: the change measured in scale-steps between the current pitch and the previous pitch -msgid "scalar change in pitch" +#: js/blocks/RhythmBlocks.js:550 +#.TRANS: tie notes together into one longer note +msgid "tie" msgstr "" -#: js/PitchBlocks.js:250 -#: js/PitchBlocks.js:432 -#: js/PitchBlocks.js:1629 -#: js/DictActions.js:89 -#: js/temperament.js:477 -#: js/temperament.js:481 -#: js/temperament.js:714 -#.TRANS: convert current note to piano key (1-88) -#.TRANS: a mapping of pitch to the 88 piano keys -msgid "pitch number" +#: js/blocks/RhythmBlocks.js:591 +#: js/blocks/RhythmBlocks.js:671 +#.TRANS: a dotted note is played for 1.5x its value, e.g., 1/8. --> 3/16 +msgid "dot" msgstr "" -#: js/PitchBlocks.js:256 -msgid "The Pitch number block is the value of the pitch of the note currently being played." +#: js/blocks/RhythmBlocks.js:619 +#: js/turtleactions/RhythmActions.js:221 +msgid "An argument of -1 results in a note value of 0." msgstr "" -#: js/PitchBlocks.js:329 -#: js/PitchBlocks.js:433 -#.TRANS: the current pitch expressed in Hertz -msgid "pitch in hertz" +#: js/blocks/RhythmBlocks.js:661 +msgid "The Dot block extends the duration of a note by 50%." msgstr "" -#: js/PitchBlocks.js:334 -msgid "The Pitch in Hertz block is the value in Hertz of the pitch of the note currently being played." +#: js/blocks/RhythmBlocks.js:663 +msgid "Eg a dotted quarter note will play for 3/8 (1/4 + 1/8) of a beat." msgstr "" -#: js/PitchBlocks.js:367 -#: js/DictActions.js:87 -msgid "current pitch" +#: js/blocks/RhythmBlocks.js:765 +#.TRANS: Japanese only: note value block for drum +msgid "note value drum" msgstr "" -#: js/PitchBlocks.js:373 -msgid "The Current Pitch block is used with the Pitch Converter block. In the example above, current pitch, sol 4, is displayed as 392 hertz." +#: js/blocks/RhythmBlocks.js:829 +msgid "392 hertz" msgstr "" -#: js/PitchBlocks.js:410 -msgid "This block converts the pitch value of the last note played into different formats such as hertz, letter name, pitch number, et al." +#: js/blocks/RhythmBlocks.js:1119 +msgid "The Note block is a container for one or more Pitch blocks." msgstr "" -#: js/PitchBlocks.js:434 -msgid "alphabet" +#: js/blocks/RhythmBlocks.js:1121 +msgid "The Note block specifies the duration (note value) of its contents." msgstr "" -#: js/PitchBlocks.js:436 -#.TRANS: Translate as "alphabet class" -msgid "letter class" +#: js/blocks/RhythmBlocks.js:1128 +#: js/blocks/PitchBlocks.js:974 +#: js/blocks/PitchBlocks.js:1007 +#: js/blocks/ProgramBlocks.js:1186 +#: js/blocks/ProgramBlocks.js:1227 +#: js/widgets/status.js:190 +#: js/widgets/temperament.js:464 +#: js/widgets/temperament.js:486 +#: js/widgets/temperament.js:496 +#: js/widgets/temperament.js:617 +#: plugins/rodi.rtp:192 +#.TRANS: a musical note consisting of pitch and duration +msgid "note" msgstr "" -#: js/PitchBlocks.js:437 -msgid "solfege class" +#: js/blocks/RhythmBlocks.js:1130 +msgid "value2" msgstr "" -#: js/PitchBlocks.js:438 -msgid "staff y" +#: js/blocks/RhythmBlocks.js:1200 +msgid "define frequency" msgstr "" -#: js/PitchBlocks.js:439 -msgid "solfege syllable" +#: js/blocks/RhythmBlocks.js:1218 +#: js/widgets/temperament.js:787 +#: js/widgets/temperament.js:1587 +msgid "octave space" msgstr "" -#: js/PitchBlocks.js:440 -msgid "pitch class" +#: js/blocks/SensorsBlocks.js:36 +msgid "The Input block prompts for keyboard input." msgstr "" -#: js/PitchBlocks.js:441 -msgid "scalar class" +#: js/blocks/SensorsBlocks.js:46 +msgid "input" msgstr "" -#: js/PitchBlocks.js:443 -msgid "nth degree" +#: js/blocks/SensorsBlocks.js:64 +msgid "Input a value" msgstr "" -#: js/PitchBlocks.js:444 -msgid "pitch to shade" +#: js/blocks/SensorsBlocks.js:126 +msgid "input value" msgstr "" -#: js/PitchBlocks.js:445 -msgid "pitch to color" +#: js/blocks/SensorsBlocks.js:131 +msgid "The Input-value block stores the input." msgstr "" -#: js/PitchBlocks.js:629 -#: js/musickeyboard.js:565 -#.TRANS: MIDI is a technical standard for electronic music -msgid "MIDI" +#: js/blocks/SensorsBlocks.js:238 +msgid "loudness" msgstr "" -#: js/PitchBlocks.js:642 -#.TRANS: set an offset associated with the numeric piano keyboard mapping -msgid "set pitch number offset" +#: js/blocks/SensorsBlocks.js:245 +msgid "The Loudness block returns the volume detected by the microphone." msgstr "" -#: js/PitchBlocks.js:645 -msgid "The Set pitch number offset block is used to set the offset for mapping pitch numbers to pitch and octave." +#: js/blocks/SensorsBlocks.js:300 +msgid "click" msgstr "" -#: js/PitchBlocks.js:679 -#.TRANS: convert piano key number (1-88) to pitch -msgid "number to pitch" +#: js/blocks/SensorsBlocks.js:306 +msgid "The Click block triggers an event if a mouse has been clicked." msgstr "" -#: js/PitchBlocks.js:682 -msgid "The Number to pitch block will convert a pitch number to a pich name." +#: js/blocks/SensorsBlocks.js:313 +msgid "The Click block triggers an event if a turtle has been clicked." msgstr "" -#: js/PitchBlocks.js:715 -#.TRANS: convert piano key number (1-88) to octave -msgid "number to octave" +#: js/blocks/SensorsBlocks.js:342 +msgid "cursor over" msgstr "" -#: js/PitchBlocks.js:717 -msgid "The Number to octave block will convert a pitch number to an octave." +#: js/blocks/SensorsBlocks.js:387 +msgid "cursor out" msgstr "" -#: js/PitchBlocks.js:726 -msgid "y to pitch" +#: js/blocks/SensorsBlocks.js:433 +msgid "cursor button down" msgstr "" -#: js/PitchBlocks.js:729 -msgid "Y to pitch block will convert a staff y position to corresponding pitch notation." +#: js/blocks/SensorsBlocks.js:477 +msgid "cursor button up" msgstr "" -#: js/PitchBlocks.js:841 -msgid "accidental selector" +#: js/blocks/SensorsBlocks.js:521 +#: js/blocks/PenBlocks.js:48 +#: plugins/rodi.rtp:219 +msgid "blue" msgstr "" -#: js/PitchBlocks.js:844 -msgid "The Accidental selector block is used to choose between double-sharp, sharp, natural, flat, and double-flat." +#: js/blocks/SensorsBlocks.js:577 +#: js/blocks/PenBlocks.js:64 +#: plugins/rodi.rtp:218 +msgid "green" msgstr "" -#: js/PitchBlocks.js:858 -msgid "Pitch can be specified in terms of ni dha pa ma ga re sa." +#: js/blocks/SensorsBlocks.js:633 +#: js/blocks/PenBlocks.js:112 +#: plugins/rodi.rtp:217 +msgid "red" msgstr "" -#: js/PitchBlocks.js:872 -msgid "Pitch can be specified in terms of C D E F G A B." +#: js/blocks/SensorsBlocks.js:638 +msgid "The Get red block returns the red component of the pixel under the mouse." msgstr "" -#: js/PitchBlocks.js:883 -msgid "solfege" +#: js/blocks/SensorsBlocks.js:644 +msgid "The Get red block returns the red component of the pixel under the turtle." msgstr "" -#: js/PitchBlocks.js:886 -msgid "Pitch can be specified in terms of do re mi fa sol la ti." +#: js/blocks/SensorsBlocks.js:685 +#: plugins/rodi.rtp:216 +msgid "pixel color" msgstr "" -#: js/PitchBlocks.js:920 -msgid "The Invert block rotates any contained notes around a target note." +#: js/blocks/SensorsBlocks.js:690 +msgid "The Get pixel block returns the color of the pixel under the mouse." msgstr "" -#: js/PitchBlocks.js:927 -#.TRANS: pitch inversion rotates a pitch around another pitch -msgid "invert" +#: js/blocks/SensorsBlocks.js:696 +msgid "The Get pixel block returns the color of the pixel under the turtle." msgstr "" -#: js/PitchBlocks.js:929 -#: js/PitchBlocks.js:935 -#: js/PitchActions.js:727 -#: js/musicutils.js:726 -#: js/musicutils.js:902 -#.TRANS: invert based on even or odd number or musical scale -#.TRANS: even numbers -msgid "even" +#: js/blocks/SensorsBlocks.js:758 +msgid "time" msgstr "" -#: js/PitchBlocks.js:935 -#: js/PitchActions.js:729 -#: js/musicutils.js:728 -#: js/musicutils.js:903 -#.TRANS: odd numbers -msgid "odd" +#: js/blocks/SensorsBlocks.js:804 +msgid "cursor y" msgstr "" -#: js/PitchBlocks.js:935 -#: js/PitchActions.js:731 -#: js/musicutils.js:729 -#: js/musicutils.js:904 -msgid "scalar" +#: js/blocks/SensorsBlocks.js:809 +msgid "The Cursor Y block returns the vertical position of the mouse." msgstr "" -#: js/PitchBlocks.js:966 -#.TRANS: pitch inversion rotates a pitch around another pitch (odd number) -msgid "invert (odd)" +#: js/blocks/SensorsBlocks.js:845 +msgid "cursor x" msgstr "" -#: js/PitchBlocks.js:999 -#.TRANS: pitch inversion rotates a pitch around another pitch (even number) -msgid "invert (even)" +#: js/blocks/SensorsBlocks.js:850 +msgid "The Cursor X block returns the horizontal position of the mouse." msgstr "" -#: js/PitchBlocks.js:1020 -#.TRANS: register is the octave of the current pitch -msgid "register" +#: js/blocks/SensorsBlocks.js:886 +msgid "mouse button" msgstr "" -#: js/PitchBlocks.js:1024 -msgid "The Register block provides an easy way to modify the register (octave) of the notes that follow it." +#: js/blocks/SensorsBlocks.js:888 +msgid "The Mouse-button block returns True if the mouse button is pressed." msgstr "" -#: js/PitchBlocks.js:1074 -msgid "The Semi-tone transposition block will shift the pitches contained inside Note blocks up (or down) by half steps." +#: js/blocks/SensorsBlocks.js:934 +msgid "to ASCII" msgstr "" -#: js/PitchBlocks.js:1076 -msgid "In the example shown above, sol is shifted up to sol#." +#: js/blocks/SensorsBlocks.js:938 +msgid "The To ASCII block converts numbers to letters." msgstr "" -#: js/PitchBlocks.js:1082 -#.TRANS: adjust the amount of shift (up or down) of a pitch -msgid "semi-tone transpose" +#: js/blocks/SensorsBlocks.js:1005 +msgid "The Keyboard block returns computer keyboard input." msgstr "" -#: js/PitchBlocks.js:1115 -msgid "The Transpose by Ratio block will shift the pitches contained inside Note blocks up (or down) by a ratio" +#: js/blocks/RhythmBlockPaletteBlocks.js:50 +#: js/blocks/RhythmBlockPaletteBlocks.js:233 +#.TRANS: rhythm block +#.TRANS: translate "rhythm1" as rhythm +msgid "rhythm1" msgstr "" -#: js/PitchBlocks.js:1121 -#.TRANS: adjust the amount of shift (up or down) of a pitch -msgid "transpose by ratio" +#: js/blocks/RhythmBlockPaletteBlocks.js:70 +#: js/blocks/RhythmBlockPaletteBlocks.js:252 +#: js/blocks/RhythmBlockPaletteBlocks.js:485 +#: js/blocks/RhythmBlockPaletteBlocks.js:554 +#: js/blocks/RhythmBlockPaletteBlocks.js:875 +msgid "number of notes" msgstr "" -#: js/PitchBlocks.js:1204 -#.TRANS: down sixth means the note is five scale degrees below current note -msgid "down sixth" +#: js/blocks/RhythmBlockPaletteBlocks.js:126 +msgid "polyphonic rhythm" msgstr "" -#: js/PitchBlocks.js:1223 -#.TRANS: down third means the note is two scale degrees below current note -msgid "down third" +#: js/blocks/RhythmBlockPaletteBlocks.js:219 +msgid "The Rhythm block is used to generate rhythm patterns." msgstr "" -#: js/PitchBlocks.js:1242 -#.TRANS: seventh means the note is the six scale degrees above current note -msgid "seventh" +#: js/blocks/RhythmBlockPaletteBlocks.js:280 +msgid "1/64 note" msgstr "" -#: js/PitchBlocks.js:1261 -#.TRANS: sixth means the note is the five scale degrees above current note -msgid "sixth" +#: js/blocks/RhythmBlockPaletteBlocks.js:304 +msgid "1/32 note" msgstr "" -#: js/PitchBlocks.js:1280 -#.TRANS: fifth means the note is the four scale degrees above current note -msgid "fifth" +#: js/blocks/RhythmBlockPaletteBlocks.js:332 +msgid "1/16 note" msgstr "" -#: js/PitchBlocks.js:1300 -#.TRANS: fourth means the note is three scale degrees above current note -msgid "fourth" +#: js/blocks/RhythmBlockPaletteBlocks.js:360 +msgid "eighth note" msgstr "" -#: js/PitchBlocks.js:1319 -#.TRANS: third means the note is two scale degrees above current note -msgid "third" +#: js/blocks/RhythmBlockPaletteBlocks.js:388 +msgid "quarter note" msgstr "" -#: js/PitchBlocks.js:1338 -#.TRANS: second means the note is one scale degree above current note -msgid "second" +#: js/blocks/RhythmBlockPaletteBlocks.js:416 +msgid "half note" msgstr "" -#: js/PitchBlocks.js:1379 -msgid "The Scalar transposition block will shift the pitches contained inside Note blocks up (or down) the scale." +#: js/blocks/RhythmBlockPaletteBlocks.js:444 +msgid "whole note" msgstr "" -#: js/PitchBlocks.js:1381 -msgid "In the example shown above, sol is shifted up to la." +#: js/blocks/RhythmBlockPaletteBlocks.js:482 +#: js/blocks/RhythmBlockPaletteBlocks.js:551 +#: js/blocks/RhythmBlockPaletteBlocks.js:602 +#.TRANS: A tuplet is a note value divided into irregular time values. +msgid "tuplet" msgstr "" -#: js/PitchBlocks.js:1388 -#.TRANS: adjust the amount of shift (up or down) of a pitch by musical scale (scalar) steps -msgid "scalar transpose" +#: js/blocks/RhythmBlockPaletteBlocks.js:768 +msgid "septuplet" msgstr "" -#: js/PitchBlocks.js:1423 -msgid "The Accidental block is used to create sharps and flats" +#: js/blocks/RhythmBlockPaletteBlocks.js:796 +msgid "quintuplet" msgstr "" -#: js/PitchBlocks.js:1430 -#.TRANS: An accidental is a modification to a pitch, e.g., sharp or flat. -msgid "accidental override" +#: js/blocks/RhythmBlockPaletteBlocks.js:824 +msgid "triplet" msgstr "" -#: js/PitchBlocks.js:1543 -msgid "The Hertz block (in combination with a Number block) will play a sound at the specified frequency." +#: js/blocks/RhythmBlockPaletteBlocks.js:851 +msgid "simple tuplet" msgstr "" -#: js/PitchBlocks.js:1633 -msgid "The Pitch Number block will play a pitch associated by its number, e.g. 0 for C and 7 for G." +#: js/blocks/RhythmBlockPaletteBlocks.js:861 +msgid "Tuplets are a collection of notes that get scaled to a specific duration." msgstr "" -#: js/PitchBlocks.js:1665 -#: js/PitchBlocks.js:1707 -#.TRANS: a numeric mapping of the notes in an octave based on the musical mode -#.TRANS: a numeric mapping of the notes in an octave based on the musical mode -msgid "nth modal pitch" +#: js/blocks/DrumBlocks.js:59 +msgid "The Noise name block is used to select a noise synthesizer." msgstr "" -#: js/PitchBlocks.js:1668 -msgid "n^th Modal Pitch takes the pattern of pitches in semitones for a mode and makes each point a degree of the mode," +#: js/blocks/DrumBlocks.js:102 +msgid "The Drum name block is used to select a drum." msgstr "" -#: js/PitchBlocks.js:1670 -msgid "starting from 1 and regardless of tonal framework (i.e. not always 8 notes in the octave)" +#: js/blocks/DrumBlocks.js:146 +msgid "The Effects name block is used to select a sound effect." msgstr "" -#: js/PitchBlocks.js:1711 -msgid "N^th Modal Pitch takes a number as an input as the n^th degree for the given mode. 0 is the first position, 1 is the second, -1 is the note before the first etc." +#: js/blocks/DrumBlocks.js:163 +msgid "noise" msgstr "" -#: js/PitchBlocks.js:1713 -msgid "The pitches change according to the mode specified without any need for respellings." +#: js/blocks/DrumBlocks.js:177 +msgid "The Play noise block will generate white, pink, or brown noise." msgstr "" -#: js/PitchBlocks.js:1752 -msgid "Scale Degree is a common convention in music. Scale Degree offers seven possible positions in the scale (1-7) and can be modified via accidentals." +#: js/blocks/DrumBlocks.js:317 +msgid "Replace every instance of a pitch with a drum sound." msgstr "" -#: js/PitchBlocks.js:1754 -msgid "Scale Degree 1 is always the first pitch in a given scale, regardless of octave." +#: js/blocks/DrumBlocks.js:328 +#.TRANS: map a pitch to a drum sound +msgid "map pitch to drum" msgstr "" -#: js/PitchBlocks.js:1776 -#.TRANS: step some number of notes in current musical scale -msgid "scalar step" +#: js/blocks/DrumBlocks.js:395 +msgid "In the example above, a kick drum sound will be played instead of sol." msgstr "" -#: js/PitchBlocks.js:1781 -msgid "The Scalar Step block (in combination with a Number block) will play the next pitch in a scale," +#: js/blocks/DrumBlocks.js:407 +#.TRANS: set the current drum sound for playback +msgid "set drum" msgstr "" -#: js/PitchBlocks.js:1783 -msgid "eg if the last note played was sol, Scalar Step 1 will play la." +#: js/blocks/DrumBlocks.js:451 +msgid "sound effect" msgstr "" -#: js/PitchBlocks.js:1818 -msgid "The Pitch block specifies the pitch name and octave of a note that together determine the frequency of the note." +#: js/blocks/DrumBlocks.js:489 +msgid "You can use multiple Drum blocks within a Note block." msgstr "" -#: js/GraphicsBlocks.js:46 -#: js/DictActions.js:77 -#: js/DictActions.js:155 -#: js/DictActions.js:189 +#: js/blocks/GraphicsBlocks.js:46 +#: js/turtleactions/DictActions.js:77 +#: js/turtleactions/DictActions.js:144 +#: js/turtleactions/DictActions.js:173 msgid "heading" msgstr "arah" -#: js/GraphicsBlocks.js:56 +#: js/blocks/GraphicsBlocks.js:56 msgid "The Heading block returns the orientation of the mouse." msgstr "" -#: js/GraphicsBlocks.js:62 +#: js/blocks/GraphicsBlocks.js:62 msgid "The Heading block returns the orientation of the turtle." msgstr "" -#: js/GraphicsBlocks.js:133 +#: js/blocks/GraphicsBlocks.js:133 msgid "The Y block returns the vertical position of the mouse." msgstr "" -#: js/GraphicsBlocks.js:140 +#: js/blocks/GraphicsBlocks.js:140 msgid "The Y block returns the vertical position of the turtle." msgstr "" -#: js/GraphicsBlocks.js:149 +#: js/blocks/GraphicsBlocks.js:149 msgid "y3" msgstr "" -#: js/GraphicsBlocks.js:219 +#: js/blocks/GraphicsBlocks.js:219 msgid "The X block returns the horizontal position of the mouse." msgstr "" -#: js/GraphicsBlocks.js:226 +#: js/blocks/GraphicsBlocks.js:226 msgid "The X block returns the horizontal position of the turtle." msgstr "" -#: js/GraphicsBlocks.js:235 +#: js/blocks/GraphicsBlocks.js:235 msgid "x3" msgstr "" -#: js/GraphicsBlocks.js:295 +#: js/blocks/GraphicsBlocks.js:295 msgid "scroll xy" msgstr "" -#: js/GraphicsBlocks.js:303 +#: js/blocks/GraphicsBlocks.js:303 msgid "The Scroll XY block moves the canvas." msgstr "" -#: js/GraphicsBlocks.js:313 +#: js/blocks/GraphicsBlocks.js:313 msgid "x2" msgstr "" -#: js/GraphicsBlocks.js:313 +#: js/blocks/GraphicsBlocks.js:313 msgid "y2" msgstr "" -#: js/GraphicsBlocks.js:373 -#: js/temperament.js:213 -#: js/temperament.js:241 +#: js/blocks/GraphicsBlocks.js:373 +#: js/widgets/temperament.js:319 +#: js/widgets/temperament.js:347 msgid "clear" msgstr "" -#: js/GraphicsBlocks.js:426 +#: js/blocks/GraphicsBlocks.js:426 msgid "The Control-point 2 block sets the second control point for the Bezier curve." msgstr "" -#: js/GraphicsBlocks.js:433 +#: js/blocks/GraphicsBlocks.js:433 msgid "control point 2" msgstr "" -#: js/GraphicsBlocks.js:436 -#: js/GraphicsBlocks.js:487 -#: js/GraphicsBlocks.js:534 -#: js/GraphicsBlocks.js:750 +#: js/blocks/GraphicsBlocks.js:436 +#: js/blocks/GraphicsBlocks.js:487 +#: js/blocks/GraphicsBlocks.js:534 +#: js/blocks/GraphicsBlocks.js:750 msgid "x1" msgstr "" -#: js/GraphicsBlocks.js:436 -#: js/GraphicsBlocks.js:487 -#: js/GraphicsBlocks.js:534 -#: js/GraphicsBlocks.js:750 +#: js/blocks/GraphicsBlocks.js:436 +#: js/blocks/GraphicsBlocks.js:487 +#: js/blocks/GraphicsBlocks.js:534 +#: js/blocks/GraphicsBlocks.js:750 msgid "y1" msgstr "" -#: js/GraphicsBlocks.js:477 +#: js/blocks/GraphicsBlocks.js:477 msgid "The Control-point 1 block sets the first control point for the Bezier curve." msgstr "" -#: js/GraphicsBlocks.js:484 +#: js/blocks/GraphicsBlocks.js:484 msgid "control point 1" msgstr "" -#: js/GraphicsBlocks.js:527 +#: js/blocks/GraphicsBlocks.js:527 msgid "The Bezier block draws a Bezier curve." msgstr "" -#: js/GraphicsBlocks.js:531 +#: js/blocks/GraphicsBlocks.js:531 msgid "bezier" msgstr "" -#: js/GraphicsBlocks.js:592 +#: js/blocks/GraphicsBlocks.js:592 msgid "The Arc block moves the turtle in an arc." msgstr "" -#: js/GraphicsBlocks.js:600 +#: js/blocks/GraphicsBlocks.js:600 msgid "arc" msgstr "lengkung" -#: js/GraphicsBlocks.js:603 +#: js/blocks/GraphicsBlocks.js:603 msgid "angle" msgstr "sudut" -#: js/GraphicsBlocks.js:603 +#: js/blocks/GraphicsBlocks.js:603 msgid "radius" msgstr "jari-jari" -#: js/GraphicsBlocks.js:620 -#: js/GraphicsBlocks.js:767 -#: js/GraphicsBlocks.js:1010 -#: js/GraphicsBlocks.js:1093 +#: js/blocks/GraphicsBlocks.js:620 +#: js/blocks/GraphicsBlocks.js:767 +#: js/blocks/GraphicsBlocks.js:1010 +#: js/blocks/GraphicsBlocks.js:1093 msgid "Value must be within -5000 to 5000 when Wrap Mode is off." msgstr "" -#: js/GraphicsBlocks.js:622 -#: js/GraphicsBlocks.js:769 -#: js/GraphicsBlocks.js:1012 -#: js/GraphicsBlocks.js:1095 +#: js/blocks/GraphicsBlocks.js:622 +#: js/blocks/GraphicsBlocks.js:769 +#: js/blocks/GraphicsBlocks.js:1012 +#: js/blocks/GraphicsBlocks.js:1095 msgid "Value must be within -20000 to 20000 when Wrap Mode is on." msgstr "" -#: js/GraphicsBlocks.js:660 +#: js/blocks/GraphicsBlocks.js:660 msgid "set heading" msgstr "atur arah" -#: js/GraphicsBlocks.js:673 +#: js/blocks/GraphicsBlocks.js:673 msgid "The Set heading block sets the heading of the turtle." msgstr "" -#: js/GraphicsBlocks.js:733 +#: js/blocks/GraphicsBlocks.js:733 msgid "The Set XY block moves the mouse to a specific position on the screen." msgstr "" -#: js/GraphicsBlocks.js:739 +#: js/blocks/GraphicsBlocks.js:739 msgid "The Set XY block moves the turtle to a specific position on the screen." msgstr "" -#: js/GraphicsBlocks.js:747 +#: js/blocks/GraphicsBlocks.js:747 msgid "set xy" msgstr "atur xy" -#: js/GraphicsBlocks.js:819 +#: js/blocks/GraphicsBlocks.js:819 msgid "The Right block turns the mouse to the right." msgstr "" -#: js/GraphicsBlocks.js:826 +#: js/blocks/GraphicsBlocks.js:826 msgid "The Right block turns the turtle to the right." msgstr "" -#: js/GraphicsBlocks.js:835 +#: js/blocks/GraphicsBlocks.js:835 msgid "right1" msgstr "" -#: js/GraphicsBlocks.js:835 +#: js/blocks/GraphicsBlocks.js:835 #: plugins/rodi.rtp:77 #: plugins/rodi.rtp:340 #: plugins/rodi.rtp:375 msgid "right" msgstr "kanan" -#: js/GraphicsBlocks.js:899 +#: js/blocks/GraphicsBlocks.js:899 msgid "The Left block turns the mouse to the left." msgstr "" -#: js/GraphicsBlocks.js:906 +#: js/blocks/GraphicsBlocks.js:906 msgid "The Left block turns the turtle to the left." msgstr "" -#: js/GraphicsBlocks.js:915 +#: js/blocks/GraphicsBlocks.js:915 msgid "left1" msgstr "" -#: js/GraphicsBlocks.js:915 +#: js/blocks/GraphicsBlocks.js:915 #: plugins/rodi.rtp:79 #: plugins/rodi.rtp:339 #: plugins/rodi.rtp:362 msgid "left" msgstr "kiri" -#: js/GraphicsBlocks.js:967 -#: js/temperament.js:734 -#: js/temperament.js:933 +#: js/blocks/GraphicsBlocks.js:967 +#: js/widgets/temperament.js:875 +#: js/widgets/temperament.js:1078 #: plugins/rodi.rtp:69 #: plugins/rodi.rtp:387 msgid "back" msgstr "mundur" -#: js/GraphicsBlocks.js:976 +#: js/blocks/GraphicsBlocks.js:976 msgid "The Back block moves the mouse backward." msgstr "" -#: js/GraphicsBlocks.js:983 +#: js/blocks/GraphicsBlocks.js:983 msgid "The Back block moves the turtle backward." msgstr "" -#: js/GraphicsBlocks.js:1050 +#: js/blocks/GraphicsBlocks.js:1050 #: plugins/rodi.rtp:71 #: plugins/rodi.rtp:400 msgid "forward" msgstr "maju" -#: js/GraphicsBlocks.js:1059 +#: js/blocks/GraphicsBlocks.js:1059 msgid "The Forward block moves the mouse forward." msgstr "" -#: js/GraphicsBlocks.js:1066 +#: js/blocks/GraphicsBlocks.js:1066 msgid "The Forward block moves the turtle forward." msgstr "" -#: js/GraphicsBlocks.js:1154 -#: js/GraphicsBlocks.js:1172 +#: js/blocks/GraphicsBlocks.js:1154 +#: js/blocks/GraphicsBlocks.js:1172 msgid "wrap" msgstr "" -#: js/OrnamentBlocks.js:32 -msgid "staccato factor" -msgstr "" - -#: js/OrnamentBlocks.js:108 -msgid "slur factor" -msgstr "" - -#: js/OrnamentBlocks.js:217 -#: js/OrnamentBlocks.js:309 -#.TRANS: the neighbor refers to a neighboring note, e.g., D is a neighbor of C -msgid "neighbor" -msgstr "" - -#: js/OrnamentBlocks.js:293 -msgid "The Neighbor block rapidly switches between neighboring pitches." -msgstr "" - -#: js/OrnamentBlocks.js:364 -msgid "glide" -msgstr "" - -#: js/OrnamentBlocks.js:479 -#: js/OrnamentBlocks.js:643 -msgid "slur" -msgstr "" - -#: js/OrnamentBlocks.js:558 -#: js/OrnamentBlocks.js:710 -#.TRANS: play each note sharply detached from the others -msgid "staccato" -msgstr "" - -#: js/PenBlocks.js:24 +#: js/blocks/PenBlocks.js:30 msgid "purple" msgstr "" -#: js/PenBlocks.js:37 -#: js/SensorsBlocks.js:521 -#: plugins/rodi.rtp:219 -msgid "blue" -msgstr "" - -#: js/PenBlocks.js:50 -#: js/SensorsBlocks.js:577 -#: plugins/rodi.rtp:218 -msgid "green" -msgstr "" - -#: js/PenBlocks.js:63 +#: js/blocks/PenBlocks.js:80 msgid "yellow" msgstr "" -#: js/PenBlocks.js:76 +#: js/blocks/PenBlocks.js:96 #: plugins/nutrition.rtp:164 msgid "orange" msgstr "oranye" -#: js/PenBlocks.js:89 -#: js/SensorsBlocks.js:633 -#: plugins/rodi.rtp:217 -msgid "red" -msgstr "" - -#: js/PenBlocks.js:102 +#: js/blocks/PenBlocks.js:128 msgid "white" msgstr "" -#: js/PenBlocks.js:115 +#: js/blocks/PenBlocks.js:144 msgid "black" msgstr "" -#: js/PenBlocks.js:128 +#: js/blocks/PenBlocks.js:163 msgid "begin fill" msgstr "" -#: js/PenBlocks.js:143 +#: js/blocks/PenBlocks.js:190 msgid "end fill" msgstr "akhir memenuhi" -#: js/PenBlocks.js:159 -#: js/PenBlocks.js:386 +#: js/blocks/PenBlocks.js:212 +#: js/blocks/PenBlocks.js:560 #.TRANS: set the background color msgid "background" msgstr "" -#: js/PenBlocks.js:206 -#: js/DictActions.js:71 -#: js/DictActions.js:149 -#: js/DictActions.js:186 +#: js/blocks/PenBlocks.js:274 +#: js/turtleactions/DictActions.js:71 +#: js/turtleactions/DictActions.js:138 +#: js/turtleactions/DictActions.js:170 msgid "grey" msgstr "" -#: js/PenBlocks.js:210 +#: js/blocks/PenBlocks.js:282 msgid "The Grey block returns the current pen grey value." msgstr "" -#: js/PenBlocks.js:243 -#: js/DictActions.js:69 -#: js/DictActions.js:147 -#: js/DictActions.js:185 +#: js/blocks/PenBlocks.js:340 +#: js/turtleactions/DictActions.js:69 +#: js/turtleactions/DictActions.js:136 +#: js/turtleactions/DictActions.js:169 msgid "shade" msgstr "gradasi" -#: js/PenBlocks.js:247 +#: js/blocks/PenBlocks.js:347 msgid "The Shade block returns the current pen shade value." msgstr "" -#: js/PenBlocks.js:280 -#: js/DictActions.js:67 -#: js/DictActions.js:145 -#: js/DictActions.js:184 +#: js/blocks/PenBlocks.js:405 +#: js/turtleactions/DictActions.js:67 +#: js/turtleactions/DictActions.js:134 +#: js/turtleactions/DictActions.js:168 msgid "color" msgstr "warna" -#: js/PenBlocks.js:285 +#: js/blocks/PenBlocks.js:415 msgid "The Color block returns the current pen color." msgstr "" -#: js/PenBlocks.js:318 -#: js/DictActions.js:73 -#: js/DictActions.js:151 -#: js/DictActions.js:187 +#: js/blocks/PenBlocks.js:470 +#: js/turtleactions/DictActions.js:73 +#: js/turtleactions/DictActions.js:140 +#: js/turtleactions/DictActions.js:171 msgid "pen size" msgstr "ukuran pena" -#: js/PenBlocks.js:322 +#: js/blocks/PenBlocks.js:474 msgid "The Pen size block returns the current pen size value." msgstr "" -#: js/PenBlocks.js:355 +#: js/blocks/PenBlocks.js:513 msgid "set font" msgstr "" -#: js/PenBlocks.js:358 +#: js/blocks/PenBlocks.js:518 msgid "The Set font block sets the font used by the Show block." msgstr "" -#: js/PenBlocks.js:391 +#: js/blocks/PenBlocks.js:567 msgid "The Background block sets the window background color." msgstr "" -#: js/PenBlocks.js:408 +#: js/blocks/PenBlocks.js:598 msgid "The Hollow line block creates a line with a hollow center." msgstr "" -#: js/PenBlocks.js:415 +#: js/blocks/PenBlocks.js:606 #.TRANS: draw a line logo has a hollow space down its center msgid "hollow line" msgstr "" -#: js/PenBlocks.js:462 +#: js/blocks/PenBlocks.js:675 msgid "The Fill block fills in a shape with a color." msgstr "" -#: js/PenBlocks.js:470 +#: js/blocks/PenBlocks.js:684 #.TRANS: fill in as a solid color msgid "fill" msgstr "" -#: js/PenBlocks.js:527 +#: js/blocks/PenBlocks.js:761 #.TRANS: raise up the pen so logo it does not draw when it is moved msgid "pen up" msgstr "pena mati" -#: js/PenBlocks.js:532 +#: js/blocks/PenBlocks.js:768 msgid "The Pen-up block raises the pen so that it does not draw." msgstr "" -#: js/PenBlocks.js:552 +#: js/blocks/PenBlocks.js:802 #.TRANS: put down the pen so logo it draws when it is moved msgid "pen down" msgstr "pena nyala" -#: js/PenBlocks.js:557 +#: js/blocks/PenBlocks.js:810 msgid "The Pen-down block lowers the pen so that it draws." msgstr "" -#: js/PenBlocks.js:577 +#: js/blocks/PenBlocks.js:844 #.TRANS: set the width of the line drawn by the pen msgid "set pen size" msgstr "atur ukuran pena" -#: js/PenBlocks.js:583 +#: js/blocks/PenBlocks.js:854 msgid "The Set-pen-size block changes the size of the pen." msgstr "" -#: js/PenBlocks.js:623 +#: js/blocks/PenBlocks.js:913 #.TRANS: set degree of translucence of the pen color msgid "set translucency" msgstr "" -#: js/PenBlocks.js:627 +#: js/blocks/PenBlocks.js:921 msgid "The Set translucency block changes the opacity of the pen." msgstr "" -#: js/PenBlocks.js:668 +#: js/blocks/PenBlocks.js:981 msgid "set hue" msgstr "" -#: js/PenBlocks.js:672 +#: js/blocks/PenBlocks.js:989 msgid "The Set hue block changes the color of the pen." msgstr "" -#: js/PenBlocks.js:711 +#: js/blocks/PenBlocks.js:1047 msgid "set shade" msgstr "atur gradasi" -#: js/PenBlocks.js:717 +#: js/blocks/PenBlocks.js:1057 msgid "The Set-shade block changes the pen color from dark to light." msgstr "" -#: js/PenBlocks.js:757 +#: js/blocks/PenBlocks.js:1111 #.TRANS: set the level of vividness of the pen color msgid "set grey" msgstr "" -#: js/PenBlocks.js:761 +#: js/blocks/PenBlocks.js:1119 msgid "The Set grey block changes the vividness of the pen color." msgstr "" -#: js/PenBlocks.js:800 +#: js/blocks/PenBlocks.js:1172 msgid "set color" msgstr "atur warna" -#: js/PenBlocks.js:806 +#: js/blocks/PenBlocks.js:1182 msgid "The Set-color block changes the pen color." msgstr "" -#: js/VolumeBlocks.js:35 -msgid "synth volume" -msgstr "" - -#: js/VolumeBlocks.js:39 -msgid "The Synth volume block returns the current volume of the current synthesizer." -msgstr "" - -#: js/VolumeBlocks.js:47 -#: js/musicutils.js:730 -#: js/synthutils.js:56 -#.TRANS: musical instrument -msgid "piano" -msgstr "" - -#: js/VolumeBlocks.js:105 -msgid "master volume" -msgstr "" - -#: js/VolumeBlocks.js:109 -msgid "The Master volume block returns the master volume." -msgstr "" - -#: js/VolumeBlocks.js:355 -#: js/VolumeBlocks.js:524 -msgid "set synth volume" -msgstr "" - -#: js/VolumeBlocks.js:362 -#: js/VolumeBlocks.js:545 -msgid "synth" -msgstr "" - -#: js/VolumeBlocks.js:403 -#: js/VolumeBlocks.js:577 -#: js/VolumeBlocks.js:740 -#: js/VolumeActions.js:173 -msgid "Setting volume to 0." -msgstr "" - -#: js/VolumeBlocks.js:440 -msgid "Synth not found" -msgstr "" - -#: js/VolumeBlocks.js:494 -msgid "set drum volume" -msgstr "" - -#: js/VolumeBlocks.js:530 -msgid "The Set synth volume block will change the volume of a particular synth," -msgstr "" - -#: js/VolumeBlocks.js:532 -msgid "eg guitar violin snare drum etc." -msgstr "" - -#: js/VolumeBlocks.js:534 -msgid "The default volume is 50." -msgstr "" - -#: js/VolumeBlocks.js:536 -msgid "The range is 0 for silence to 100 for full volume." -msgstr "" - -#: js/VolumeBlocks.js:597 -msgid "set panning" -msgstr "" - -#: js/VolumeBlocks.js:603 -msgid "The Set Panning block sets the panning for all synthesizers." -msgstr "" - -#: js/VolumeBlocks.js:625 -msgid "Warning: Sound is coming out from only the left or right side." -msgstr "" - -#: js/VolumeBlocks.js:647 -#: js/VolumeBlocks.js:695 -msgid "set master volume" -msgstr "" - -#: js/VolumeBlocks.js:653 -msgid "The Set master volume block sets the volume for all synthesizers." -msgstr "" - -#: js/VolumeBlocks.js:784 -msgid "The Set relative volume block changes the volume of the contained notes." -msgstr "" - -#: js/VolumeBlocks.js:791 -msgid "set relative volume" -msgstr "" - -#: js/VolumeBlocks.js:857 -msgid "decrescendo" -msgstr "" - -#: js/VolumeBlocks.js:921 -msgid "crescendo" -msgstr "" - -#: js/ToneBlocks.js:34 -msgid "oscillator" -msgstr "" - -#: js/ToneBlocks.js:44 -#: js/timbre.js:1562 -#.TRANS: Partials refers to the number of sine waves combined into the sound. -msgid "partials" -msgstr "" - -#: js/ToneBlocks.js:76 -msgid "You are adding multiple oscillator blocks." -msgstr "" - -#: js/ToneBlocks.js:144 -#: js/timbre.js:1225 -#.TRANS: a duo synthesizer combines a synth with a sequencer -msgid "duo synth" -msgstr "" - -#: js/ToneBlocks.js:149 -msgid "The Duo synth block is a duo-frequency modulator used to define a timbre." -msgstr "" - -#: js/ToneBlocks.js:157 -#: js/timbre.js:1476 -msgid "vibrato rate" -msgstr "" - -#: js/ToneBlocks.js:157 -msgid "vibrato intensity" -msgstr "" - -#: js/ToneBlocks.js:185 -#: js/timbre.js:1221 -#.TRANS: AM (amplitude modulation) synthesizer -msgid "AM synth" -msgstr "" - -#: js/ToneBlocks.js:189 -msgid "The AM synth block is an amplitude modulator used to define a timbre." -msgstr "" - -#: js/ToneBlocks.js:224 -#: js/timbre.js:1223 -#.TRANS: FM (frequency modulation) synthesizer -msgid "FM synth" +#: js/blocks/PitchBlocks.js:141 +#.TRANS: musical transposition (adjustment of pitch up or down) +msgid "transposition" msgstr "" -#: js/ToneBlocks.js:228 -msgid "The FM synth block is a frequency modulator used to define a timbre." +#: js/blocks/PitchBlocks.js:168 +#.TRANS: step down one note in current musical scale +msgid "scalar step down" msgstr "" -#: js/ToneBlocks.js:262 -msgid "partial" +#: js/blocks/PitchBlocks.js:172 +msgid "The Scalar step down block returns the number of semi-tones down to the previous note in the current key and mode." msgstr "" -#: js/ToneBlocks.js:265 -msgid "The Partial block is used to specify a weight for a specific partial harmonic." +#: js/blocks/PitchBlocks.js:190 +#.TRANS: step up one note in current musical scale +msgid "scalar step up" msgstr "" -#: js/ToneBlocks.js:284 -#.TRANS: partials are weighted components in a harmonic series -msgid "Partial weight must be between 0 and 1." +#: js/blocks/PitchBlocks.js:194 +msgid "The Scalar step up block returns the number of semi-tones up to the next note in the current key and mode." msgstr "" -#: js/ToneBlocks.js:297 -#.TRANS: partials are weighted components in a harmonic series -msgid "Partial block should be used inside of a Weighted-partials block." +#: js/blocks/PitchBlocks.js:212 +#.TRANS: the change measured in half-steps between the current pitch and the previous pitch +msgid "change in pitch" msgstr "" -#: js/ToneBlocks.js:325 -#.TRANS: partials are weighted components in a harmonic series -msgid "weighted partials" +#: js/blocks/PitchBlocks.js:216 +msgid "The Change in pitch block is the difference (in half steps) between the current pitch being played and the previous pitch played." msgstr "" -#: js/ToneBlocks.js:383 -msgid "The Harmonic block will add harmonics to the contained notes." +#: js/blocks/PitchBlocks.js:243 +#.TRANS: the change measured in scale-steps between the current pitch and the previous pitch +msgid "scalar change in pitch" msgstr "" -#: js/ToneBlocks.js:390 -#.TRANS: A harmonic is an overtone. -msgid "harmonic" +#: js/blocks/PitchBlocks.js:250 +#: js/blocks/PitchBlocks.js:432 +#: js/blocks/PitchBlocks.js:1667 +#: js/turtleactions/DictActions.js:89 +#: js/widgets/temperament.js:610 +#: js/widgets/temperament.js:614 +#: js/widgets/temperament.js:855 +#.TRANS: convert current note to piano key (1-88) +#.TRANS: a mapping of pitch to the 88 piano keys +msgid "pitch number" msgstr "" -#: js/ToneBlocks.js:431 -msgid "The Distortion block adds distortion to the pitch." +#: js/blocks/PitchBlocks.js:256 +msgid "The Pitch number block is the value of the pitch of the note currently being played." msgstr "" -#: js/ToneBlocks.js:438 -#: js/timbre.js:2100 -#.TRANS: distortion is an alteration in the sound -msgid "distortion" +#: js/blocks/PitchBlocks.js:329 +#: js/blocks/PitchBlocks.js:433 +#.TRANS: the current pitch expressed in Hertz +msgid "pitch in hertz" msgstr "" -#: js/ToneBlocks.js:487 -msgid "The Tremolo block adds a wavering effect." +#: js/blocks/PitchBlocks.js:334 +msgid "The Pitch in Hertz block is the value in Hertz of the pitch of the note currently being played." msgstr "" -#: js/ToneBlocks.js:495 -#: js/timbre.js:2092 -#.TRANS: a wavering effect in a musical tone -msgid "tremolo" +#: js/blocks/PitchBlocks.js:367 +#: js/turtleactions/DictActions.js:87 +msgid "current pitch" msgstr "" -#: js/ToneBlocks.js:500 -#: js/ToneBlocks.js:569 -#: js/ToneBlocks.js:630 -#: js/ToneBlocks.js:689 -#: js/timbre.js:2134 -#: js/timbre.js:2222 -#: js/timbre.js:2317 -#: js/timbre.js:2419 -#.TRANS: rate at which tremolo wavers -msgid "rate" +#: js/blocks/PitchBlocks.js:373 +msgid "The Current Pitch block is used with the Pitch Converter block. In the example above, current pitch, sol 4, is displayed as 392 hertz." msgstr "" -#: js/ToneBlocks.js:502 -#: js/ToneBlocks.js:630 -#: js/timbre.js:2137 -#: js/timbre.js:2328 -#.TRANS: amplitude of tremolo waver -msgid "depth" +#: js/blocks/PitchBlocks.js:410 +msgid "This block converts the pitch value of the last note played into different formats such as hertz, letter name, pitch number, et al." msgstr "" -#: js/ToneBlocks.js:559 -msgid "The Phaser block adds a sweeping sound." +#: js/blocks/PitchBlocks.js:434 +msgid "alphabet" msgstr "" -#: js/ToneBlocks.js:566 -#: js/timbre.js:2098 -#.TRANS: alter the phase of the sound -msgid "phaser" +#: js/blocks/PitchBlocks.js:436 +#.TRANS: Translate as "alphabet class" +msgid "letter class" msgstr "" -#: js/ToneBlocks.js:569 -#: js/timbre.js:2422 -msgid "octaves" +#: js/blocks/PitchBlocks.js:437 +msgid "solfege class" msgstr "" -#: js/ToneBlocks.js:569 -#: js/timbre.js:2425 -msgid "base frequency" +#: js/blocks/PitchBlocks.js:438 +msgid "staff y" msgstr "" -#: js/ToneBlocks.js:619 -msgid "The Chorus block adds a chorus effect." +#: js/blocks/PitchBlocks.js:439 +msgid "solfege syllable" msgstr "" -#: js/ToneBlocks.js:627 -#: js/timbre.js:2096 -#.TRANS: musical effect to simulate a choral sound -msgid "chorus" +#: js/blocks/PitchBlocks.js:440 +msgid "pitch class" msgstr "" -#: js/ToneBlocks.js:630 -msgid "delay" +#: js/blocks/PitchBlocks.js:441 +msgid "scalar class" msgstr "" -#: js/ToneBlocks.js:678 -msgid "The Vibrato block adds a rapid, slight variation in pitch." +#: js/blocks/PitchBlocks.js:443 +msgid "nth degree" msgstr "" -#: js/ToneBlocks.js:686 -#: js/timbre.js:2094 -#.TRANS: a rapid, slight variation in pitch -msgid "vibrato" +#: js/blocks/PitchBlocks.js:444 +msgid "pitch to shade" msgstr "" -#: js/ToneBlocks.js:689 -#: js/timbre.js:2221 -msgid "intensity" +#: js/blocks/PitchBlocks.js:445 +msgid "pitch to color" msgstr "" -#: js/ToneBlocks.js:733 -#.TRANS: select synthesizer -msgid "set synth" +#: js/blocks/PitchBlocks.js:629 +#: js/widgets/musickeyboard.js:735 +#.TRANS: MIDI is a technical standard for electronic music +msgid "MIDI" msgstr "" -#: js/ToneBlocks.js:804 -msgid "synth name" +#: js/blocks/PitchBlocks.js:642 +#.TRANS: set an offset associated with the numeric piano keyboard mapping +msgid "set pitch number offset" msgstr "" -#: js/ToneBlocks.js:842 -msgid "set default instrument" +#: js/blocks/PitchBlocks.js:645 +msgid "The Set pitch number offset block is used to set the offset for mapping pitch numbers to pitch and octave." msgstr "" -#: js/ToneBlocks.js:895 -#: js/ToneBlocks.js:943 -#.TRANS: set the characteristics of a custom instrument -msgid "set instrument" +#: js/blocks/PitchBlocks.js:679 +#.TRANS: convert piano key number (1-88) to pitch +msgid "number to pitch" msgstr "" -#: js/ToneBlocks.js:898 -#: js/ToneBlocks.js:926 -#: js/ToneBlocks.js:932 -msgid "The Set instrument block selects a voice for the synthesizer," +#: js/blocks/PitchBlocks.js:682 +msgid "The Number to pitch block will convert a pitch number to a pich name." msgstr "" -#: js/ToneBlocks.js:900 -#: js/ToneBlocks.js:934 -msgid "eg guitar piano violin or cello." +#: js/blocks/PitchBlocks.js:715 +#.TRANS: convert piano key number (1-88) to octave +msgid "number to octave" msgstr "" -#: js/ToneBlocks.js:1015 -msgid "Import a sound file to use as an instrument and set its pitch center." +#: js/blocks/PitchBlocks.js:717 +msgid "The Number to octave block will convert a pitch number to an octave." msgstr "" -#: js/ToneBlocks.js:1110 -msgid "Upload a sound file to connect with the sample block." +#: js/blocks/PitchBlocks.js:726 +msgid "y to pitch" msgstr "" -#: js/MeterBlocks.js:34 -#.TRANS: musical meter (time signature), e.g., 4:4 -msgid "current meter" +#: js/blocks/PitchBlocks.js:729 +msgid "Y to pitch block will convert a staff y position to corresponding pitch notation." msgstr "" -#: js/MeterBlocks.js:85 -#.TRANS: number of beats per minute -msgid "beat factor" +#: js/blocks/PitchBlocks.js:841 +msgid "accidental selector" msgstr "" -#: js/MeterBlocks.js:161 -msgid "The Beats per minute block returns the current beats per minute." +#: js/blocks/PitchBlocks.js:844 +msgid "The Accidental selector block is used to choose between double-sharp, sharp, natural, flat, and double-flat." msgstr "" -#: js/MeterBlocks.js:169 -#: js/status.js:152 -#.TRANS: number of beats played per minute -msgid "beats per minute2" +#: js/blocks/PitchBlocks.js:858 +msgid "Pitch can be specified in terms of ni dha pa ma ga re sa." msgstr "" -#: js/MeterBlocks.js:169 -#: js/MeterBlocks.js:1056 -#: js/MeterBlocks.js:1133 -#: js/MeterBlocks.js:1211 -#.TRANS: sets tempo by defining a beat and beats per minute -msgid "beats per minute" +#: js/blocks/PitchBlocks.js:872 +msgid "Pitch can be specified in terms of C D E F G A B." msgstr "" -#: js/MeterBlocks.js:233 -#.TRANS: count of current musical measure in meter -msgid "measure count" +#: js/blocks/PitchBlocks.js:884 +msgid "solfege" msgstr "" -#: js/MeterBlocks.js:241 -msgid "The Measure count block returns the current measure." +#: js/blocks/PitchBlocks.js:887 +msgid "Pitch can be specified in terms of do re mi fa sol la ti." msgstr "" -#: js/MeterBlocks.js:290 -#.TRANS: count of current beat in the meter -msgid "beat count" +#: js/blocks/PitchBlocks.js:922 +msgid "The Invert block rotates any contained notes around a target note." msgstr "" -#: js/MeterBlocks.js:300 -#: js/MeterBlocks.js:311 -#: js/MeterBlocks.js:565 -#: js/MeterBlocks.js:576 -msgid "The Beat count block is the number of the current beat," +#: js/blocks/PitchBlocks.js:929 +#.TRANS: pitch inversion rotates a pitch around another pitch +msgid "invert" msgstr "" -#: js/MeterBlocks.js:313 -#: js/MeterBlocks.js:578 -msgid "eg 1, 2, 3, or 4." +#: js/blocks/PitchBlocks.js:968 +#.TRANS: pitch inversion rotates a pitch around another pitch (odd number) +msgid "invert (odd)" msgstr "" -#: js/MeterBlocks.js:368 -#.TRANS: count the number of notes -msgid "sum note values" +#: js/blocks/PitchBlocks.js:1001 +#.TRANS: pitch inversion rotates a pitch around another pitch (even number) +msgid "invert (even)" msgstr "" -#: js/MeterBlocks.js:376 -#: js/MeterBlocks.js:440 -msgid "The Note counter block can be used to count the number of contained notes." +#: js/blocks/PitchBlocks.js:1022 +#.TRANS: register is the octave of the current pitch +msgid "register" msgstr "" -#: js/MeterBlocks.js:432 -#.TRANS: count the number of notes -msgid "note counter" +#: js/blocks/PitchBlocks.js:1026 +msgid "The Register block provides an easy way to modify the register (octave) of the notes that follow it." msgstr "" -#: js/MeterBlocks.js:496 -#.TRANS: number of whole notes that have been played -msgid "whole notes played" +#: js/blocks/PitchBlocks.js:1047 +#.TRANS: cents are units used to specify the ratio between pitches. There are 100 cents between successive notes. +msgid "50 cents" msgstr "" -#: js/MeterBlocks.js:505 -msgid "The Whole notes played block returns the total number of whole notes played." +#: js/blocks/PitchBlocks.js:1102 +msgid "The Semi-tone transposition block will shift the pitches contained inside Note blocks up (or down) by half steps." msgstr "" -#: js/MeterBlocks.js:555 -#: js/DictActions.js:83 -#.TRANS: number of notes that have been played -msgid "notes played" +#: js/blocks/PitchBlocks.js:1104 +msgid "In the example shown above, sol is shifted up to sol#." msgstr "" -#: js/MeterBlocks.js:653 -msgid "The No clock block decouples the notes from the master clock." +#: js/blocks/PitchBlocks.js:1110 +#.TRANS: adjust the amount of shift (up or down) of a pitch +msgid "semi-tone transpose" msgstr "" -#: js/MeterBlocks.js:661 -#.TRANS: don't lock notes to master clock -msgid "no clock" +#: js/blocks/PitchBlocks.js:1143 +msgid "The Transpose by Ratio block will shift the pitches contained inside Note blocks up (or down) by a ratio" msgstr "" -#: js/MeterBlocks.js:700 -msgid "on weak beat do" +#: js/blocks/PitchBlocks.js:1149 +#.TRANS: adjust the amount of shift (up or down) of a pitch +msgid "transpose by ratio" msgstr "" -#: js/MeterBlocks.js:705 -msgid "The On-weak-beat block lets you specify actions to take on weak (off) beats." +#: js/blocks/PitchBlocks.js:1232 +#.TRANS: down sixth means the note is five scale degrees below current note +msgid "down sixth" msgstr "" -#: js/MeterBlocks.js:750 -msgid "on strong beat" +#: js/blocks/PitchBlocks.js:1251 +#.TRANS: down third means the note is two scale degrees below current note +msgid "down third" msgstr "" -#: js/MeterBlocks.js:758 -msgid "The On-strong-beat block lets you specify actions to take on specified beats." +#: js/blocks/PitchBlocks.js:1270 +#.TRANS: seventh means the note is the six scale degrees above current note +msgid "seventh" msgstr "" -#: js/MeterBlocks.js:769 -msgid "beat" +#: js/blocks/PitchBlocks.js:1289 +#.TRANS: sixth means the note is the five scale degrees above current note +msgid "sixth" msgstr "" -#: js/MeterBlocks.js:813 -msgid "on every beat do" +#: js/blocks/PitchBlocks.js:1308 +#.TRANS: fifth means the note is the four scale degrees above current note +msgid "fifth" msgstr "" -#: js/MeterBlocks.js:821 -msgid "The On-every-beat block lets you specify actions to take on every beat." +#: js/blocks/PitchBlocks.js:1328 +#.TRANS: fourth means the note is three scale degrees above current note +msgid "fourth" msgstr "" -#: js/MeterBlocks.js:874 -msgid "on every note do" +#: js/blocks/PitchBlocks.js:1347 +#.TRANS: third means the note is two scale degrees above current note +msgid "third" msgstr "" -#: js/MeterBlocks.js:882 -msgid "The On-every-note block lets you specify actions to take on every note." +#: js/blocks/PitchBlocks.js:1366 +#.TRANS: second means the note is one scale degree above current note +msgid "second" msgstr "" -#: js/MeterBlocks.js:928 -#: js/MeterBlocks.js:999 -#.TRANS: sets tempo by defining a beat and beats per minute -msgid "master beats per minute" +#: js/blocks/PitchBlocks.js:1407 +msgid "The Scalar transposition block will shift the pitches contained inside Note blocks up (or down) the scale." msgstr "" -#: js/MeterBlocks.js:952 -#: js/MeterBlocks.js:1078 -#: js/MeterBlocks.js:1135 -msgid "bpm" +#: js/blocks/PitchBlocks.js:1409 +msgid "In the example shown above, sol is shifted up to la." msgstr "" -#: js/MeterBlocks.js:952 -#: js/MeterBlocks.js:1078 -#: js/MeterBlocks.js:1135 -msgid "beat value" +#: js/blocks/PitchBlocks.js:1416 +#.TRANS: adjust the amount of shift (up or down) of a pitch by musical scale (scalar) steps +msgid "scalar transpose" msgstr "" -#: js/MeterBlocks.js:1024 -#: js/MeterBlocks.js:1167 -#: js/MeterBlocks.js:1241 -msgid "Beats per minute must be > 30." +#: js/blocks/PitchBlocks.js:1451 +msgid "The Accidental block is used to create sharps and flats" msgstr "" -#: js/MeterBlocks.js:1027 -#: js/MeterBlocks.js:1170 -#: js/MeterBlocks.js:1244 -msgid "Maximum beats per minute is 1000." +#: js/blocks/PitchBlocks.js:1458 +#.TRANS: An accidental is a modification to a pitch, e.g., sharp or flat. +msgid "accidental override" msgstr "" -#: js/MeterBlocks.js:1068 -msgid "The Beats per minute block sets the number of 1/4 notes per minute." +#: js/blocks/PitchBlocks.js:1581 +msgid "The Hertz block (in combination with a Number block) will play a sound at the specified frequency." msgstr "" -#: js/MeterBlocks.js:1279 -#.TRANS: anacrusis -msgid "pickup" +#: js/blocks/PitchBlocks.js:1671 +msgid "The Pitch Number block will play a pitch associated by its number, e.g. 0 for C and 7 for G." msgstr "" -#: js/MeterBlocks.js:1367 -msgid "number of beats" +#: js/blocks/PitchBlocks.js:1703 +#: js/blocks/PitchBlocks.js:1745 +#.TRANS: a numeric mapping of the notes in an octave based on the musical mode +#.TRANS: a numeric mapping of the notes in an octave based on the musical mode +msgid "nth modal pitch" msgstr "" -#: js/DictBlocks.js:77 -msgid "show dictionary" +#: js/blocks/PitchBlocks.js:1706 +msgid "n^th Modal Pitch takes the pattern of pitches in semitones for a mode and makes each point a degree of the mode," msgstr "" -#: js/DictBlocks.js:129 -msgid "The Dictionary block returns a dictionary." +#: js/blocks/PitchBlocks.js:1708 +msgid "starting from 1 and regardless of tonal framework (i.e. not always 8 notes in the octave)" msgstr "" -#: js/DictBlocks.js:197 -#: js/DictBlocks.js:339 -msgid "The Get-dict block returns a value in the dictionary for a specified key." +#: js/blocks/PitchBlocks.js:1749 +msgid "N^th Modal Pitch takes a number as an input as the n^th degree for the given mode. 0 is the first position, 1 is the second, -1 is the note before the first etc." msgstr "" -#: js/DictBlocks.js:212 -#: js/DictBlocks.js:354 -#.TRANS: retrieve a value from the dictionary with a given key -msgid "get value" +#: js/blocks/PitchBlocks.js:1751 +msgid "The pitches change according to the mode specified without any need for respellings." msgstr "" -#: js/DictBlocks.js:215 -#: js/DictBlocks.js:216 -#: js/DictBlocks.js:289 -#: js/DictBlocks.js:290 -#: js/DictBlocks.js:357 -#: js/DictBlocks.js:430 -#: js/DictBlocks.js:431 -msgid "key2" +#: js/blocks/PitchBlocks.js:1790 +msgid "Scale Degree is a common convention in music. Scale Degree offers seven possible positions in the scale (1-7) and can be modified via accidentals." msgstr "" -#: js/DictBlocks.js:271 -#: js/DictBlocks.js:411 -msgid "The Set-dict block sets a value in the dictionary for a specified key." +#: js/blocks/PitchBlocks.js:1792 +msgid "Scale Degree 1 is always the first pitch in a given scale, regardless of octave." msgstr "" -#: js/DictBlocks.js:286 -#: js/DictBlocks.js:427 -#.TRANS: set a value in the dictionary for a given key -msgid "set value" +#: js/blocks/PitchBlocks.js:1814 +#.TRANS: step some number of notes in current musical scale +msgid "scalar step" msgstr "" -#: js/ExtrasBlocks.js:33 -msgid "fraction" +#: js/blocks/PitchBlocks.js:1819 +msgid "The Scalar Step block (in combination with a Number block) will play the next pitch in a scale," msgstr "" -#: js/ExtrasBlocks.js:36 -msgid "Convert a float to a fraction" +#: js/blocks/PitchBlocks.js:1821 +msgid "eg if the last note played was sol, Scalar Step 1 will play la." msgstr "" -#: js/ExtrasBlocks.js:93 -msgid "save as ABC" +#: js/blocks/PitchBlocks.js:1857 +msgid "The Pitch block specifies the pitch name and octave of a note that together determine the frequency of the note." msgstr "" -#: js/ExtrasBlocks.js:96 -#: js/ExtrasBlocks.js:132 -#: js/ExtrasBlocks.js:168 -msgid "title" +#: js/blocks/ProgramBlocks.js:33 +msgid "The Load-heap-from-app block loads the heap from a web page." msgstr "" -#: js/ExtrasBlocks.js:129 -msgid "save as Lilypond" +#: js/blocks/ProgramBlocks.js:44 +#.TRANS: load the heap contents from a URL +msgid "load heap from App" msgstr "" -#: js/ExtrasBlocks.js:165 -msgid "save as SVG" +#: js/blocks/ProgramBlocks.js:95 +msgid "Error parsing JSON data:" msgstr "" -#: js/ExtrasBlocks.js:216 -msgid "no background" +#: js/blocks/ProgramBlocks.js:100 +msgid "404: Page not found" msgstr "" -#: js/ExtrasBlocks.js:219 -msgid "The No background block eliminates the background from the saved SVG output." +#: js/blocks/ProgramBlocks.js:133 +msgid "The Save-heap-to-app block saves the heap to a web page." msgstr "" -#: js/ExtrasBlocks.js:247 -msgid "show blocks" +#: js/blocks/ProgramBlocks.js:144 +#.TRANS: save the heap contents to a URL +msgid "save heap to App" msgstr "" -#: js/ExtrasBlocks.js:249 -msgid "The Show blocks block shows the blocks." +#: js/blocks/ProgramBlocks.js:189 +msgid "Cannot find a valid heap for" msgstr "" -#: js/ExtrasBlocks.js:274 -msgid "hide blocks" +#: js/blocks/ProgramBlocks.js:206 +msgid "The Load-heap block loads the heap from a file." msgstr "" -#: js/ExtrasBlocks.js:276 -msgid "The Hide blocks block hides the blocks." +#: js/blocks/ProgramBlocks.js:217 +#.TRANS: load the heap from a file +msgid "load heap" msgstr "" -#: js/ExtrasBlocks.js:305 -#: js/ExtrasBlocks.js:335 -msgid "The Space block is used to add space between blocks." +#: js/blocks/ProgramBlocks.js:270 +msgid "The file you selected does not contain a valid heap." msgstr "" -#: js/ExtrasBlocks.js:373 -msgid "wait" -msgstr "tunggu" - -#: js/ExtrasBlocks.js:376 -msgid "The Wait block pauses the program for a specified number of seconds." +#: js/blocks/ProgramBlocks.js:275 +msgid "The loadHeap block needs a loadFile block." msgstr "" -#: js/ExtrasBlocks.js:430 -#: plugins/facebook.rtp:30 -msgid "comment" +#: js/blocks/ProgramBlocks.js:291 +msgid "The Set-heap block loads the heap." msgstr "" -#: js/ExtrasBlocks.js:466 -msgid "print" +#: js/blocks/ProgramBlocks.js:340 +msgid "The block you selected does not contain a valid heap." msgstr "" -#: js/ExtrasBlocks.js:473 -msgid "The Print block displays text at the top of the screen." +#: js/blocks/ProgramBlocks.js:343 +msgid "The Set heap block needs a heap." msgstr "" -#: js/ExtrasBlocks.js:579 -msgid "display grid" +#: js/blocks/ProgramBlocks.js:360 +msgid "The Load-dictionary block loads a dictionary from a file." msgstr "" -#: js/ExtrasBlocks.js:584 -msgid "The Display Grid Block changes the grid type" +#: js/blocks/ProgramBlocks.js:372 +#.TRANS: load a dictionary from a file +msgid "load dictionary" msgstr "" -#: js/ExtrasBlocks.js:686 -#: js/ExtrasBlocks.js:705 -#: js/ExtrasBlocks.js:728 -#: js/ExtrasBlocks.js:751 -#: js/ExtrasBlocks.js:769 -#: js/ExtrasBlocks.js:788 -#: js/ExtrasBlocks.js:807 -#: js/ExtrasBlocks.js:826 -msgid "unknown" +#: js/blocks/ProgramBlocks.js:390 +#: js/blocks/ProgramBlocks.js:658 +#: js/blocks/ToneBlocks.js:1025 +msgid "file" msgstr "" -#: js/SensorsBlocks.js:36 -msgid "The Input block prompts for keyboard input." +#: js/blocks/ProgramBlocks.js:444 +msgid "The file you selected does not contain a valid dictionary." msgstr "" -#: js/SensorsBlocks.js:46 -msgid "input" +#: js/blocks/ProgramBlocks.js:449 +msgid "The load dictionary block needs a load file block." msgstr "" -#: js/SensorsBlocks.js:64 -msgid "Input a value" +#: js/blocks/ProgramBlocks.js:466 +msgid "The Set-dictionary block loads a dictionary." msgstr "" -#: js/SensorsBlocks.js:126 -msgid "input value" +#: js/blocks/ProgramBlocks.js:477 +#.TRANS: load a dictionary from a JSON +msgid "set dictionary" msgstr "" -#: js/SensorsBlocks.js:131 -msgid "The Input-value block stores the input." +#: js/blocks/ProgramBlocks.js:546 +msgid "The block you selected does not contain a valid dictionary." msgstr "" -#: js/SensorsBlocks.js:238 -msgid "loudness" +#: js/blocks/ProgramBlocks.js:550 +msgid "The set dictionary block needs a dictionary." msgstr "" -#: js/SensorsBlocks.js:245 -msgid "The Loudness block returns the volume detected by the microphone." +#: js/blocks/ProgramBlocks.js:567 +msgid "The Save-heap block saves the heap to a file." msgstr "" -#: js/SensorsBlocks.js:300 -msgid "click" +#: js/blocks/ProgramBlocks.js:578 +#.TRANS: save the heap to a file +msgid "save heap" msgstr "" -#: js/SensorsBlocks.js:306 -msgid "The Click block triggers an event if a mouse has been clicked." +#: js/blocks/ProgramBlocks.js:629 +msgid "The Save-dictionary block saves a dictionary to a file." msgstr "" -#: js/SensorsBlocks.js:313 -msgid "The Click block triggers an event if a turtle has been clicked." +#: js/blocks/ProgramBlocks.js:640 +#.TRANS: save a dictionary to a file +msgid "save dictionary" msgstr "" -#: js/SensorsBlocks.js:342 -msgid "cursor over" +#: js/blocks/ProgramBlocks.js:720 +msgid "The Open palette block opens a palette." msgstr "" -#: js/SensorsBlocks.js:387 -msgid "cursor out" +#: js/blocks/ProgramBlocks.js:727 +msgid "open palette" msgstr "" -#: js/SensorsBlocks.js:433 -msgid "cursor button down" +#: js/blocks/ProgramBlocks.js:785 +msgid "The Delete block block removes a block." msgstr "" -#: js/SensorsBlocks.js:477 -msgid "cursor button up" +#: js/blocks/ProgramBlocks.js:797 +#.TRANS: Move this block to the trash. +msgid "delete block" msgstr "" -#: js/SensorsBlocks.js:638 -msgid "The Get red block returns the red component of the pixel under the mouse." +#: js/blocks/ProgramBlocks.js:861 +msgid "The Move block block moves a block." msgstr "" -#: js/SensorsBlocks.js:644 -msgid "The Get red block returns the red component of the pixel under the turtle." +#: js/blocks/ProgramBlocks.js:869 +#.TRANS: Move the position of a block on the screen. +msgid "move block" msgstr "" -#: js/SensorsBlocks.js:685 -#: plugins/rodi.rtp:216 -msgid "pixel color" +#: js/blocks/ProgramBlocks.js:881 +#: js/blocks/ProgramBlocks.js:1048 +msgid "block number" msgstr "" -#: js/SensorsBlocks.js:690 -msgid "The Get pixel block returns the color of the pixel under the mouse." +#: js/blocks/ProgramBlocks.js:935 +#.TRANS: Run program beginning at this block. +msgid "run block" msgstr "" -#: js/SensorsBlocks.js:696 -msgid "The Get pixel block returns the color of the pixel under the turtle." +#: js/blocks/ProgramBlocks.js:1025 +msgid "The Dock block block connections two blocks." msgstr "" -#: js/SensorsBlocks.js:758 -msgid "time" +#: js/blocks/ProgramBlocks.js:1036 +#.TRANS: We can connect a block to another block. +msgid "connect blocks" msgstr "" -#: js/SensorsBlocks.js:804 -msgid "cursor y" +#: js/blocks/ProgramBlocks.js:1048 +msgid "target block" msgstr "" -#: js/SensorsBlocks.js:809 -msgid "The Cursor Y block returns the vertical position of the mouse." +#: js/blocks/ProgramBlocks.js:1048 +msgid "connection number" msgstr "" -#: js/SensorsBlocks.js:845 -msgid "cursor x" +#: js/blocks/ProgramBlocks.js:1140 +msgid "The Make block block creates a new block." msgstr "" -#: js/SensorsBlocks.js:850 -msgid "The Cursor X block returns the horizontal position of the mouse." +#: js/blocks/ProgramBlocks.js:1152 +#.TRANS: Create a new block +msgid "make block" msgstr "" -#: js/SensorsBlocks.js:886 -msgid "mouse button" +#: js/blocks/ProgramBlocks.js:1285 +msgid "Cannot find block" msgstr "" -#: js/SensorsBlocks.js:888 -msgid "The Mouse-button block returns True if the mouse button is pressed." +#: js/blocks/ProgramBlocks.js:1304 +#: js/blocks/ProgramBlocks.js:1313 +msgid "Warning: block argument type mismatch" msgstr "" -#: js/SensorsBlocks.js:934 -msgid "to ASCII" +#: js/blocks/ProgramBlocks.js:1347 +msgid "The Open project block is used to open a project from a web page." msgstr "" -#: js/SensorsBlocks.js:938 -msgid "The To ASCII block converts numbers to letters." +#: js/blocks/ProgramBlocks.js:1357 +msgid "open project" msgstr "" -#: js/SensorsBlocks.js:1005 -msgid "The Keyboard block returns computer keyboard input." +#: js/blocks/ProgramBlocks.js:1410 +msgid "Please enter a valid URL." msgstr "" -#: js/IntervalsActions.js:216 -msgid "Adding missing pitch number 0." +#: js/blocks/ToneBlocks.js:34 +msgid "oscillator" msgstr "" -#: js/IntervalsActions.js:224 -msgid "Ignoring pitch numbers less than zero or greater than eleven." +#: js/blocks/ToneBlocks.js:42 +#: js/blocks/WidgetBlocks.js:179 +#: js/widgets/timbre.js:1558 +#: js/widgets/timbre.js:1808 +#.TRANS: there are different types (sine, triangle, square...) of oscillators. +#.TRANS: type of filter, e.g., lowpass, highpass, etc. +msgid "type" msgstr "" -#: js/IntervalsActions.js:230 -msgid "Ignoring duplicate pitch numbers." +#: js/blocks/ToneBlocks.js:44 +#: js/widgets/timbre.js:1562 +#.TRANS: Partials refers to the number of sine waves combined into the sound. +msgid "partials" msgstr "" -#: js/PitchActions.js:88 -msgid "The Scalar Step Block must be used inside of a Note Block." +#: js/blocks/ToneBlocks.js:76 +msgid "You are adding multiple oscillator blocks." msgstr "" -#: js/PitchActions.js:107 -msgid "The Scalar Step Block must be preceded by a Pitch Block." +#: js/blocks/ToneBlocks.js:144 +#: js/widgets/timbre.js:1225 +#.TRANS: a duo synthesizer combines a synth with a sequencer +msgid "duo synth" msgstr "" -#: js/DrumActions.js:231 -msgid "Noise Block: Did you mean to use a Note block?" +#: js/blocks/ToneBlocks.js:149 +msgid "The Duo synth block is a duo-frequency modulator used to define a timbre." msgstr "" -#: js/MeterActions.js:101 -#: js/MeterActions.js:139 -msgid "beats per minute must be greater than" +#: js/blocks/ToneBlocks.js:157 +#: js/widgets/timbre.js:1476 +msgid "vibrato rate" msgstr "" -#: js/MeterActions.js:111 -#: js/MeterActions.js:149 -msgid "maximum" +#: js/blocks/ToneBlocks.js:157 +msgid "vibrato intensity" msgstr "" -#: js/MeterActions.js:117 -#: js/MeterActions.js:155 -msgid "beats per minute is" +#: js/blocks/ToneBlocks.js:185 +#: js/widgets/timbre.js:1221 +#.TRANS: AM (amplitude modulation) synthesizer +msgid "AM synth" msgstr "" -#: js/ToneActions.js:134 -msgid "Vibrato intensity must be between 1 and 100." +#: js/blocks/ToneBlocks.js:189 +msgid "The AM synth block is an amplitude modulator used to define a timbre." msgstr "" -#: js/ToneActions.js:139 -msgid "Vibrato rate must be greater than 0." +#: js/blocks/ToneBlocks.js:224 +#: js/widgets/timbre.js:1223 +#.TRANS: FM (frequency modulation) synthesizer +msgid "FM synth" msgstr "" -#: js/ToneActions.js:192 -#: js/ToneActions.js:265 -#.TRANS: Depth is the intesity of the tremolo or chorus effect. -msgid "Depth is out of range." +#: js/blocks/ToneBlocks.js:228 +msgid "The FM synth block is a frequency modulator used to define a timbre." msgstr "" -#: js/ToneActions.js:301 -msgid "Distortion must be from 0 to 100." +#: js/blocks/ToneBlocks.js:262 +msgid "partial" msgstr "" -#: js/ToneActions.js:332 -#.TRANS: partials components in a harmonic series -msgid "Partial must be greater than or equal to 0." +#: js/blocks/ToneBlocks.js:265 +msgid "The Partial block is used to specify a weight for a specific partial harmonic." msgstr "" -#: js/ToneActions.js:378 -#: js/ToneActions.js:417 -#: js/ToneActions.js:456 -#: js/timbre.js:782 -msgid "Unable to use synth due to existing oscillator" +#: js/blocks/ToneBlocks.js:284 +#.TRANS: partials are weighted components in a harmonic series +msgid "Partial weight must be between 0 and 1." msgstr "" -#: js/ToneActions.js:388 -#: js/ToneActions.js:427 -msgid "The input cannot be negative." +#: js/blocks/ToneBlocks.js:297 +#.TRANS: partials are weighted components in a harmonic series +msgid "Partial block should be used inside of a Weighted-partials block." msgstr "" -#: js/DictActions.js:75 -#: js/DictActions.js:153 -#: js/DictActions.js:188 -msgid "font" +#: js/blocks/ToneBlocks.js:325 +#.TRANS: partials are weighted components in a harmonic series +msgid "weighted partials" msgstr "" -#: js/musicutils.js:363 -#: js/musicutils.js:471 -#: js/pitchdrummatrix.js:151 -#: js/musickeyboard.js:2563 -msgid "rest" +#: js/blocks/ToneBlocks.js:383 +msgid "The Harmonic block will add harmonics to the contained notes." msgstr "" -#: js/musicutils.js:565 -#.TRANS: ordinal number. Please keep exactly one space between each number. -msgid "1st 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th" +#: js/blocks/ToneBlocks.js:390 +#.TRANS: A harmonic is an overtone. +msgid "harmonic" msgstr "" -#: js/musicutils.js:629 -#: js/musicutils.js:812 -#: js/musicutils.js:911 -#.TRANS: augmented is a music term related to intervals -msgid "augmented" +#: js/blocks/ToneBlocks.js:431 +msgid "The Distortion block adds distortion to the pitch." msgstr "" -#: js/musicutils.js:631 -#: js/musicutils.js:813 -#: js/musicutils.js:910 -#.TRANS: diminished is a music term related to intervals and mode -msgid "diminished" +#: js/blocks/ToneBlocks.js:438 +#: js/widgets/timbre.js:2100 +#.TRANS: distortion is an alteration in the sound +msgid "distortion" msgstr "" -#: js/musicutils.js:639 -#.TRANS: twelve semi-tone scale for music -msgid "chromatic" +#: js/blocks/ToneBlocks.js:487 +msgid "The Tremolo block adds a wavering effect." msgstr "" -#: js/musicutils.js:640 -msgid "algerian" +#: js/blocks/ToneBlocks.js:495 +#: js/widgets/timbre.js:2092 +#.TRANS: a wavering effect in a musical tone +msgid "tremolo" msgstr "" -#: js/musicutils.js:641 -msgid "spanish" +#: js/blocks/ToneBlocks.js:500 +#: js/blocks/ToneBlocks.js:569 +#: js/blocks/ToneBlocks.js:630 +#: js/blocks/ToneBlocks.js:689 +#: js/widgets/timbre.js:2134 +#: js/widgets/timbre.js:2222 +#: js/widgets/timbre.js:2317 +#: js/widgets/timbre.js:2419 +#.TRANS: rate at which tremolo wavers +msgid "rate" msgstr "" -#: js/musicutils.js:643 -#.TRANS: modal scale in music -msgid "octatonic" +#: js/blocks/ToneBlocks.js:502 +#: js/blocks/ToneBlocks.js:630 +#: js/widgets/timbre.js:2137 +#: js/widgets/timbre.js:2328 +#.TRANS: amplitude of tremolo waver +msgid "depth" msgstr "" -#: js/musicutils.js:645 -#.TRANS: harmonic major scale in music -msgid "harmonic major" +#: js/blocks/ToneBlocks.js:559 +msgid "The Phaser block adds a sweeping sound." msgstr "" -#: js/musicutils.js:647 -#.TRANS: natural minor scales in music -msgid "natural minor" +#: js/blocks/ToneBlocks.js:566 +#: js/widgets/timbre.js:2098 +#.TRANS: alter the phase of the sound +msgid "phaser" msgstr "" -#: js/musicutils.js:649 -#.TRANS: harmonic minor scale in music -msgid "harmonic minor" +#: js/blocks/ToneBlocks.js:569 +#: js/turtleactions/IntervalsActions.js:114 +#: js/widgets/timbre.js:2422 +msgid "octaves" msgstr "" -#: js/musicutils.js:651 -#.TRANS: melodic minor scale in music -msgid "melodic minor" +#: js/blocks/ToneBlocks.js:569 +#: js/widgets/timbre.js:2425 +msgid "base frequency" msgstr "" -#: js/musicutils.js:655 -#.TRANS: modal scale for music -msgid "dorian" +#: js/blocks/ToneBlocks.js:619 +msgid "The Chorus block adds a chorus effect." msgstr "" -#: js/musicutils.js:657 -#.TRANS: modal scale for music -msgid "phrygian" +#: js/blocks/ToneBlocks.js:627 +#: js/widgets/timbre.js:2096 +#.TRANS: musical effect to simulate a choral sound +msgid "chorus" msgstr "" -#: js/musicutils.js:659 -#.TRANS: modal scale for music -msgid "lydian" +#: js/blocks/ToneBlocks.js:630 +msgid "delay" msgstr "" -#: js/musicutils.js:661 -#.TRANS: modal scale for music -msgid "mixolydian" +#: js/blocks/ToneBlocks.js:678 +msgid "The Vibrato block adds a rapid, slight variation in pitch." msgstr "" -#: js/musicutils.js:665 -#.TRANS: modal scale for music -msgid "locrian" +#: js/blocks/ToneBlocks.js:686 +#: js/widgets/timbre.js:2094 +#.TRANS: a rapid, slight variation in pitch +msgid "vibrato" msgstr "" -#: js/musicutils.js:667 -#.TRANS: minor jazz scale for music -msgid "jazz minor" +#: js/blocks/ToneBlocks.js:689 +#: js/widgets/timbre.js:2221 +msgid "intensity" msgstr "" -#: js/musicutils.js:669 -#.TRANS: bebop scale for music -msgid "bebop" +#: js/blocks/ToneBlocks.js:733 +#.TRANS: select synthesizer +msgid "set synth" msgstr "" -#: js/musicutils.js:670 -msgid "arabic" +#: js/blocks/ToneBlocks.js:804 +msgid "synth name" msgstr "" -#: js/musicutils.js:671 -msgid "byzantine" +#: js/blocks/ToneBlocks.js:842 +msgid "set default instrument" msgstr "" -#: js/musicutils.js:673 -#.TRANS: musical scale for music by Verdi -msgid "enigmatic" +#: js/blocks/ToneBlocks.js:895 +#: js/blocks/ToneBlocks.js:943 +#.TRANS: set the characteristics of a custom instrument +msgid "set instrument" msgstr "" -#: js/musicutils.js:674 -msgid "ethiopian" +#: js/blocks/ToneBlocks.js:898 +#: js/blocks/ToneBlocks.js:926 +#: js/blocks/ToneBlocks.js:932 +msgid "The Set instrument block selects a voice for the synthesizer," msgstr "" -#: js/musicutils.js:676 -#.TRANS: Ethiopic scale for music -msgid "geez" +#: js/blocks/ToneBlocks.js:900 +#: js/blocks/ToneBlocks.js:934 +msgid "eg guitar piano violin or cello." msgstr "" -#: js/musicutils.js:677 -msgid "hindu" +#: js/blocks/ToneBlocks.js:1015 +msgid "Import a sound file to use as an instrument and set its pitch center." msgstr "" -#: js/musicutils.js:678 -msgid "hungarian" +#: js/blocks/ToneBlocks.js:1110 +msgid "Upload a sound file to connect with the sample block." msgstr "" -#: js/musicutils.js:680 -#.TRANS: minor Romanian scale for music -msgid "romanian minor" +#: js/blocks/VolumeBlocks.js:35 +msgid "synth volume" msgstr "" -#: js/musicutils.js:681 -msgid "spanish gypsy" +#: js/blocks/VolumeBlocks.js:39 +msgid "The Synth volume block returns the current volume of the current synthesizer." msgstr "" -#: js/musicutils.js:683 -#.TRANS: musical scale for Mid-Eastern music -msgid "maqam" +#: js/blocks/VolumeBlocks.js:105 +msgid "master volume" msgstr "" -#: js/musicutils.js:685 -#.TRANS: minor blues scale for music -msgid "minor blues" +#: js/blocks/VolumeBlocks.js:109 +msgid "The Master volume block returns the master volume." msgstr "" -#: js/musicutils.js:687 -#.TRANS: major blues scale for music -msgid "major blues" +#: js/blocks/VolumeBlocks.js:355 +#: js/blocks/VolumeBlocks.js:524 +msgid "set synth volume" msgstr "" -#: js/musicutils.js:688 -msgid "whole tone" +#: js/blocks/VolumeBlocks.js:362 +#: js/blocks/VolumeBlocks.js:545 +msgid "synth" msgstr "" -#: js/musicutils.js:690 -#.TRANS: pentatonic is a general term that means "five note scale". This scale is typically known as "minor pentatonic" -msgid "minor pentatonic" +#: js/blocks/VolumeBlocks.js:403 +#: js/blocks/VolumeBlocks.js:577 +#: js/blocks/VolumeBlocks.js:740 +#: js/turtleactions/VolumeActions.js:173 +msgid "Setting volume to 0." msgstr "" -#: js/musicutils.js:692 -#.TRANS: pentatonic is a general term that means "five note scale". This scale is typically known as "major pentatonic" -msgid "major pentatonic" +#: js/blocks/VolumeBlocks.js:440 +msgid "Synth not found" msgstr "" -#: js/musicutils.js:693 -msgid "chinese" +#: js/blocks/VolumeBlocks.js:494 +msgid "set drum volume" msgstr "" -#: js/musicutils.js:694 -msgid "egyptian" +#: js/blocks/VolumeBlocks.js:530 +msgid "The Set synth volume block will change the volume of a particular synth," msgstr "" -#: js/musicutils.js:696 -#.TRANS: https://en.wikipedia.org/wiki/Hirajoshi_scale NOTE: There are three different versions of this scale -msgid "hirajoshi" +#: js/blocks/VolumeBlocks.js:532 +msgid "eg guitar violin snare drum etc." msgstr "" -#: js/musicutils.js:697 -msgid "Japan" +#: js/blocks/VolumeBlocks.js:534 +msgid "The default volume is 50." msgstr "" -#: js/musicutils.js:699 -#.TRANS: https://en.wikipedia.org/wiki/In_scale and https://en.wikipedia.org/wiki/Sakura_Sakura -msgid "in" +#: js/blocks/VolumeBlocks.js:536 +msgid "The range is 0 for silence to 100 for full volume." msgstr "" -#: js/musicutils.js:701 -#.TRANS: https://en.wikipedia.org/wiki/Miny%C5%8D_scale -msgid "minyo" +#: js/blocks/VolumeBlocks.js:597 +msgid "set panning" msgstr "" -#: js/musicutils.js:703 -#.TRANS: Italian mathematician -msgid "fibonacci" +#: js/blocks/VolumeBlocks.js:603 +msgid "The Set Panning block sets the panning for all synthesizers." msgstr "" -#: js/musicutils.js:708 -#: js/musicutils.js:1106 -#.TRANS: lowpass filter -msgid "lowpass" +#: js/blocks/VolumeBlocks.js:625 +msgid "Warning: Sound is coming out from only the left or right side." msgstr "" -#: js/musicutils.js:710 -#: js/musicutils.js:1107 -#.TRANS: bandpass filter -msgid "bandpass" +#: js/blocks/VolumeBlocks.js:647 +#: js/blocks/VolumeBlocks.js:695 +msgid "set master volume" msgstr "" -#: js/musicutils.js:712 -#: js/musicutils.js:1108 -#.TRANS: high-shelf filter -msgid "highshelf" +#: js/blocks/VolumeBlocks.js:653 +msgid "The Set master volume block sets the volume for all synthesizers." msgstr "" -#: js/musicutils.js:714 -#: js/musicutils.js:1109 -#.TRANS: low-shelf filter -msgid "lowshelf" +#: js/blocks/VolumeBlocks.js:784 +msgid "The Set relative volume block changes the volume of the contained notes." msgstr "" -#: js/musicutils.js:716 -#: js/musicutils.js:1110 -#.TRANS: notch-shelf filter -msgid "notch" +#: js/blocks/VolumeBlocks.js:791 +msgid "set relative volume" msgstr "" -#: js/musicutils.js:718 -#: js/musicutils.js:1111 -#.TRANS: all-pass filter -msgid "allpass" +#: js/blocks/VolumeBlocks.js:857 +msgid "decrescendo" msgstr "" -#: js/musicutils.js:720 -#: js/musicutils.js:1112 -#.TRANS: peaking filter -msgid "peaking" +#: js/blocks/VolumeBlocks.js:921 +msgid "crescendo" msgstr "" -#: js/musicutils.js:731 -#: js/synthutils.js:58 -#.TRANS: musical instrument -msgid "violin" +#: js/blocks/WidgetBlocks.js:81 +#.TRANS: sound envelope (ADSR) +msgid "envelope" msgstr "" -#: js/musicutils.js:732 -#: js/synthutils.js:60 -#.TRANS: viola musical instrument -msgid "viola" +#: js/blocks/WidgetBlocks.js:89 +#.TRANS: Attack time is the time taken for initial run-up of level from nil to peak, beginning when the key is first pressed. +msgid "attack" msgstr "" -#: js/musicutils.js:733 -#: js/synthutils.js:98 -#.TRANS: xylophone musical instrument -msgid "xylophone" +#: js/blocks/WidgetBlocks.js:91 +#.TRANS: Decay time is the time taken for the subsequent run down from the attack level to the designated sustain level. +msgid "decay" msgstr "" -#: js/musicutils.js:734 -#: js/synthutils.js:120 -#.TRANS: vibraphone musical instrument -msgid "vibraphone" +#: js/blocks/WidgetBlocks.js:93 +#.TRANS: Sustain level is the level during the main sequence of the sound's duration, until the key is released. +msgid "sustain" msgstr "" -#: js/musicutils.js:735 -#: js/synthutils.js:62 -#.TRANS: musical instrument -msgid "cello" +#: js/blocks/WidgetBlocks.js:95 +#.TRANS: Release time is the time taken for the level to decay from the sustain level to zero after the key is released. +msgid "release" msgstr "" -#: js/musicutils.js:737 -#: js/synthutils.js:66 -#.TRANS: viola musical instrument -msgid "double bass" +#: js/blocks/WidgetBlocks.js:113 +msgid "Attack value should be from 0 to 100." msgstr "" -#: js/musicutils.js:738 -#: js/synthutils.js:68 -#: js/rhythmruler.js:2119 -#.TRANS: musical instrument -msgid "guitar" +#: js/blocks/WidgetBlocks.js:116 +msgid "Decay value should be from 0 to 100." msgstr "" -#: js/musicutils.js:739 -#: js/synthutils.js:70 -#.TRANS: musical instrument -msgid "acoustic guitar" +#: js/blocks/WidgetBlocks.js:119 +msgid "Sustain value should be from 0 to 100." msgstr "" -#: js/musicutils.js:740 -#: js/synthutils.js:72 -#.TRANS: musical instrument -msgid "flute" +#: js/blocks/WidgetBlocks.js:122 +msgid "Release value should be from 0-100." msgstr "" -#: js/musicutils.js:741 -#: js/synthutils.js:74 -#.TRANS: musical instrument -msgid "clarinet" +#: js/blocks/WidgetBlocks.js:140 +msgid "You are adding multiple envelope blocks." msgstr "" -#: js/musicutils.js:742 -#: js/synthutils.js:76 -#.TRANS: musical instrument -msgid "saxophone" +#: js/blocks/WidgetBlocks.js:171 +#.TRANS: a filter removes some unwanted components from a signal +msgid "filter" msgstr "" -#: js/musicutils.js:743 -#: js/synthutils.js:78 -#.TRANS: musical instrument -msgid "tuba" +#: js/blocks/WidgetBlocks.js:181 +#: js/widgets/timbre.js:1818 +#.TRANS: rolloff is the steepness of a change in frequency. +msgid "rolloff" msgstr "" -#: js/musicutils.js:744 -#: js/synthutils.js:80 -#.TRANS: musical instrument -msgid "trumpet" +#: js/blocks/WidgetBlocks.js:213 +#.TRANS: rolloff is the steepness of a change in frequency. +msgid "Rolloff value should be either -12, -24, -48, or -96 decibels/octave." msgstr "" -#: js/musicutils.js:745 -#: js/synthutils.js:82 -#.TRANS: musical instrument -msgid "oboe" +#: js/blocks/WidgetBlocks.js:252 +msgid "The Temperament tool is used to define custom tuning." msgstr "" -#: js/musicutils.js:746 -#: js/synthutils.js:84 -#.TRANS: musical instrument -msgid "trombone" +#: js/blocks/WidgetBlocks.js:332 +#: js/blocks/WidgetBlocks.js:1573 +#: js/widgets/sampler.js:547 +msgid "Upload a sample and adjust its pitch center." msgstr "" -#: js/musicutils.js:747 -#: js/synthutils.js:100 -#.TRANS: polytone synthesizer -msgid "electronic synth" +#: js/blocks/WidgetBlocks.js:339 +#.TRANS: the speed at music is should be played. +msgid "sampler" msgstr "" -#: js/musicutils.js:748 -#: js/synthutils.js:102 -#.TRANS: simple monotone synthesizer -msgid "simple 1" +#: js/blocks/WidgetBlocks.js:517 +msgid "The Meter block opens a tool to select strong beats for the meter." msgstr "" -#: js/musicutils.js:749 -msgid "simple 2" +#: js/blocks/WidgetBlocks.js:573 +msgid "The oscilloscope block opens a tool to visualize waveforms." msgstr "" -#: js/musicutils.js:750 -msgid "simple 3" +#: js/blocks/WidgetBlocks.js:578 +msgid "oscilloscope" msgstr "" -#: js/musicutils.js:751 -msgid "simple 4" +#: js/blocks/WidgetBlocks.js:645 +msgid "The Custom mode block opens a tool to explore musical mode (the spacing of the notes in a scale)." msgstr "" -#: js/musicutils.js:753 -#: js/synthutils.js:49 -#.TRANS: brown noise synthesizer -msgid "brown noise" +#: js/blocks/WidgetBlocks.js:651 +#.TRANS: musical mode is the pattern of half-steps in an octave, e.g., Major or Minor modes +msgid "custom mode" msgstr "" -#: js/musicutils.js:754 -#: js/synthutils.js:51 -#.TRANS: pink noise synthesizer -msgid "pink noise" +#: js/blocks/WidgetBlocks.js:700 +msgid "The Tempo block opens a metronome to visualize the beat." msgstr "" -#: js/musicutils.js:756 -#: js/synthutils.js:127 -#: js/rhythmruler.js:1670 -#: js/rhythmruler.js:1928 -#.TRANS: musical instrument -msgid "snare drum" +#: js/blocks/WidgetBlocks.js:762 +msgid "The Arpeggio Widget is used to compose chord sequences." msgstr "" -#: js/musicutils.js:757 -#: js/synthutils.js:129 -#.TRANS: musical instrument -msgid "kick drum" +#: js/blocks/WidgetBlocks.js:837 +msgid "The Pitch drum matrix is used to map pitches to drum sounds." msgstr "" -#: js/musicutils.js:758 -#: js/synthutils.js:131 -#.TRANS: musical instrument -msgid "tom tom" +#: js/blocks/WidgetBlocks.js:842 +#.TRANS: makes a mapping between pitches and drum sounds +msgid "pitch-drum mapper" msgstr "" -#: js/musicutils.js:759 -#: js/synthutils.js:133 -#.TRANS: musical instrument -msgid "floor tom" +#: js/blocks/WidgetBlocks.js:891 +msgid "You must have at least one pitch block and one drum block in the matrix." msgstr "" -#: js/musicutils.js:760 -#: js/synthutils.js:135 -#.TRANS: musical instrument -msgid "bass drum" +#: js/blocks/WidgetBlocks.js:920 +msgid "The Pitch slider tool to is used to generate pitches at selected frequencies." msgstr "" -#: js/musicutils.js:761 -#: js/synthutils.js:137 -#.TRANS: a drum made from an inverted cup -msgid "cup drum" +#: js/blocks/WidgetBlocks.js:925 +#.TRANS: widget to generate pitches using a slider +msgid "pitch slider" msgstr "" -#: js/musicutils.js:762 -#: js/synthutils.js:139 -#.TRANS: musical instrument -msgid "darbuka drum" +#: js/blocks/WidgetBlocks.js:977 +msgid "chromatic keyboard" msgstr "" -#: js/musicutils.js:763 -#: js/synthutils.js:143 -#.TRANS: musical instrument -msgid "hi hat" +#: js/blocks/WidgetBlocks.js:1011 +#: js/blocks/WidgetBlocks.js:1077 +#.TRANS: widget to generate pitches using a slider +msgid "music keyboard" msgstr "" -#: js/musicutils.js:764 -#: js/synthutils.js:145 -#.TRANS: a small metal bell -msgid "ride bell" +#: js/blocks/WidgetBlocks.js:1062 +#: js/blocks/WidgetBlocks.js:1069 +msgid "The Music keyboard block opens a piano keyboard that can be used to create notes." msgstr "" -#: js/musicutils.js:765 -#: js/synthutils.js:147 -#.TRANS: musical instrument -msgid "cow bell" +#: js/blocks/WidgetBlocks.js:1128 +msgid "The Pitch staircase tool to is used to generate pitches from a given ratio." msgstr "" -#: js/musicutils.js:766 -msgid "japanese drum" +#: js/blocks/WidgetBlocks.js:1135 +#.TRANS: generate a progressive sequence of pitches +msgid "pitch staircase" msgstr "" -#: js/musicutils.js:767 -#: js/synthutils.js:153 -#.TRANS: musical instrument -msgid "japanese bell" +#: js/blocks/WidgetBlocks.js:1222 +msgid "The Rhythm Maker block opens a tool to create drum machines." msgstr "" -#: js/musicutils.js:768 -#: js/synthutils.js:149 -#.TRANS: musical instrument -msgid "triangle bell" +#: js/blocks/WidgetBlocks.js:1291 +msgid "G major scale" msgstr "" -#: js/musicutils.js:769 -#: js/synthutils.js:151 -#.TRANS: musical instrument -msgid "finger cymbals" +#: js/blocks/WidgetBlocks.js:1326 +msgid "C major scale" msgstr "" -#: js/musicutils.js:770 -#: js/synthutils.js:155 -#.TRANS: a musically tuned set of bells -msgid "chime" +#: js/blocks/WidgetBlocks.js:1366 +msgid "The Phrase Maker block opens a tool to create musical phrases." msgstr "" -#: js/musicutils.js:771 -#: js/synthutils.js:157 -#.TRANS: a musical instrument -msgid "gong" +#: js/blocks/WidgetBlocks.js:1373 +#.TRANS: assigns pitch to a sequence of beats to generate a melody +msgid "phrase maker" msgstr "" -#: js/musicutils.js:772 -#: js/synthutils.js:159 -#.TRANS: sound effect -msgid "clang" +#: js/blocks/WidgetBlocks.js:1444 +msgid "You must have at least one pitch block and one rhythm block in the matrix." msgstr "" -#: js/musicutils.js:773 -#: js/synthutils.js:161 -#.TRANS: sound effect -msgid "crash" +#: js/blocks/WidgetBlocks.js:1503 +msgid "The Status block opens a tool for inspecting the status of Music Blocks as it is running." msgstr "" -#: js/musicutils.js:774 -#: js/synthutils.js:163 -#.TRANS: sound effect -msgid "bottle" +#: js/blocks/WidgetBlocks.js:1580 +#.TRANS: AI-generated music +msgid "aimusic" msgstr "" -#: js/musicutils.js:775 -#: js/synthutils.js:165 -#.TRANS: sound effect -msgid "clap" +#: js/turtleactions/MeterActions.js:101 +#: js/turtleactions/MeterActions.js:139 +msgid "beats per minute must be greater than" msgstr "" -#: js/musicutils.js:776 -#: js/synthutils.js:167 -#.TRANS: sound effect -msgid "slap" +#: js/turtleactions/MeterActions.js:111 +#: js/turtleactions/MeterActions.js:149 +msgid "maximum" msgstr "" -#: js/musicutils.js:777 -#: js/synthutils.js:169 -#.TRANS: sound effect -msgid "splash" +#: js/turtleactions/MeterActions.js:117 +#: js/turtleactions/MeterActions.js:155 +msgid "beats per minute is" msgstr "" -#: js/musicutils.js:778 -#: js/synthutils.js:171 -#.TRANS: sound effect -msgid "bubbles" +#: js/turtleactions/DictActions.js:75 +#: js/turtleactions/DictActions.js:142 +#: js/turtleactions/DictActions.js:172 +msgid "font" msgstr "" -#: js/musicutils.js:779 -#: js/synthutils.js:173 -#.TRANS: sound effect -msgid "raindrop" +#: js/turtleactions/DictActions.js:255 +msgid "Dictionary with this name does not exist" msgstr "" -#: js/musicutils.js:780 -#: js/synthutils.js:175 -#.TRANS: animal sound effect -msgid "cat" +#: js/turtleactions/DictActions.js:259 +msgid "Key with this name does not exist in " msgstr "" -#: js/musicutils.js:781 -#: js/synthutils.js:177 -#.TRANS: animal sound effect -msgid "cricket" +#: js/turtleactions/DrumActions.js:227 +msgid "Noise Block: Did you mean to use a Note block?" msgstr "" -#: js/musicutils.js:782 -#: js/synthutils.js:179 -#.TRANS: animal sound effect -msgid "dog" +#: js/turtleactions/IntervalsActions.js:113 +msgid "one" msgstr "" -#: js/musicutils.js:784 -#: js/synthutils.js:86 -#.TRANS: musical instrument -msgid "banjo" +#: js/turtleactions/IntervalsActions.js:113 +msgid "two" msgstr "" -#: js/musicutils.js:785 -#: js/synthutils.js:88 -#.TRANS: musical instrument -msgid "koto" +#: js/turtleactions/IntervalsActions.js:113 +msgid "three" msgstr "" -#: js/musicutils.js:786 -#: js/synthutils.js:90 -#.TRANS: musical instrument -msgid "dulcimer" +#: js/turtleactions/IntervalsActions.js:113 +msgid "four" msgstr "" -#: js/musicutils.js:787 -#: js/synthutils.js:92 -#.TRANS: musical instrument -msgid "electric guitar" +#: js/turtleactions/IntervalsActions.js:113 +msgid "five" msgstr "" -#: js/musicutils.js:788 -#: js/synthutils.js:94 -#.TRANS: musical instrument -msgid "bassoon" +#: js/turtleactions/IntervalsActions.js:113 +msgid "six" msgstr "" -#: js/musicutils.js:789 -#: js/synthutils.js:96 -#.TRANS: musical instrument -msgid "celeste" +#: js/turtleactions/IntervalsActions.js:113 +msgid "seven" msgstr "" -#: js/musicutils.js:791 -#: js/musicutils.js:1123 -#: js/musicutils.js:1131 -#: js/temperament.js:650 -#.TRANS: musical temperament -msgid "equal" +#: js/turtleactions/IntervalsActions.js:113 +msgid "eight" msgstr "" -#: js/musicutils.js:793 -#: js/musicutils.js:1125 -#: js/musicutils.js:1133 -#.TRANS: musical temperament -msgid "Pythagorean" +#: js/turtleactions/IntervalsActions.js:113 +msgid "nine" msgstr "" -#: js/musicutils.js:795 -#: js/musicutils.js:1124 -#: js/musicutils.js:1132 -#.TRANS: musical temperament -msgid "just intonation" +#: js/turtleactions/IntervalsActions.js:119 +msgid "a" msgstr "" -#: js/musicutils.js:797 -#: js/musicutils.js:1126 -#: js/musicutils.js:1127 -#: js/musicutils.js:1134 -#: js/musicutils.js:1135 -#.TRANS: musical temperament -msgid "meantone" +#: js/turtleactions/IntervalsActions.js:120 +msgid "below" msgstr "" -#: js/musicutils.js:814 -msgid "major 7th" +#: js/turtleactions/IntervalsActions.js:124 +msgid "above" msgstr "" -#: js/musicutils.js:815 -msgid "minor 7th" +#: js/turtleactions/IntervalsActions.js:131 +msgid "plus" msgstr "" -#: js/musicutils.js:816 -msgid "dominant 7th" +#: js/turtleactions/IntervalsActions.js:139 +msgid " below" msgstr "" -#: js/musicutils.js:817 -msgid "minor-major 7th" +#: js/turtleactions/IntervalsActions.js:257 +msgid "Adding missing pitch number 0." msgstr "" -#: js/musicutils.js:818 -msgid "fully-diminished 7th" +#: js/turtleactions/IntervalsActions.js:265 +msgid "Ignoring pitch numbers less than zero or greater than eleven." msgstr "" -#: js/musicutils.js:819 -msgid "half-diminished 7th" +#: js/turtleactions/IntervalsActions.js:271 +msgid "Ignoring duplicate pitch numbers." msgstr "" -#: js/musicutils.js:4379 -#: js/musicutils.js:4416 -msgid "current" +#: js/turtleactions/ToneActions.js:134 +msgid "Vibrato intensity must be between 1 and 100." msgstr "" -#: js/musicutils.js:4382 -#: js/musicutils.js:4407 -msgid "next" +#: js/turtleactions/ToneActions.js:139 +msgid "Vibrato rate must be greater than 0." msgstr "" -#: js/musicutils.js:4385 -#: js/musicutils.js:4412 -msgid "previous" +#: js/turtleactions/ToneActions.js:192 +#: js/turtleactions/ToneActions.js:265 +#.TRANS: Depth is the intesity of the tremolo or chorus effect. +msgid "Depth is out of range." msgstr "" -#: js/synthutils.js:104 -#.TRANS: simple monotone synthesizer -msgid "simple-2" +#: js/turtleactions/ToneActions.js:301 +msgid "Distortion must be from 0 to 100." msgstr "" -#: js/synthutils.js:106 -#.TRANS: simple monotone synthesizer -msgid "simple-3" +#: js/turtleactions/ToneActions.js:332 +#.TRANS: partials components in a harmonic series +msgid "Partial must be greater than or equal to 0." msgstr "" -#: js/synthutils.js:108 -#.TRANS: simple monotone synthesizer -msgid "simple-4" +#: js/turtleactions/ToneActions.js:378 +#: js/turtleactions/ToneActions.js:417 +#: js/turtleactions/ToneActions.js:456 +#: js/widgets/timbre.js:782 +msgid "Unable to use synth due to existing oscillator" msgstr "" -#: js/synthutils.js:141 -#.TRANS: musical instrument -msgid "taiko" +#: js/turtleactions/ToneActions.js:388 +#: js/turtleactions/ToneActions.js:427 +msgid "The input cannot be negative." msgstr "" -#: js/modewidget.js:86 -#: js/modewidget.js:88 -#: js/modewidget.js:642 -#: js/modewidget.js:644 -#: js/modewidget.js:712 -#: js/modewidget.js:714 -#: js/temperament.js:2078 -#: js/rhythmruler.js:189 -#: js/rhythmruler.js:1410 -#: js/rhythmruler.js:1412 -#: js/rhythmruler.js:1435 -#: js/rhythmruler.js:1437 -#: js/meterwidget.js:89 -#: js/meterwidget.js:91 +#: js/widgets/modewidget.js:86 +#: js/widgets/modewidget.js:88 +#: js/widgets/modewidget.js:642 +#: js/widgets/modewidget.js:644 +#: js/widgets/modewidget.js:712 +#: js/widgets/modewidget.js:714 +#: js/widgets/meterwidget.js:194 +#: js/widgets/meterwidget.js:196 +#: js/widgets/temperament.js:2236 +#: js/widgets/rhythmruler.js:457 +#: js/widgets/rhythmruler.js:1790 +#: js/widgets/rhythmruler.js:1792 +#: js/widgets/rhythmruler.js:1816 +#: js/widgets/rhythmruler.js:1818 msgid "Play all" msgstr "" -#: js/modewidget.js:115 -#: js/pitchstaircase.js:641 -#: js/phrasemaker.js:339 -#: js/pitchdrummatrix.js:94 -#: js/pitchslider.js:125 -#: js/temperament.js:2083 -#: js/musickeyboard.js:530 -#: js/timbre.js:756 -#: js/meterwidget.js:124 -#: js/arpeggio.js:103 +#: js/widgets/modewidget.js:115 +#: js/widgets/meterwidget.js:229 +#: js/widgets/pitchdrummatrix.js:166 +#: js/widgets/pitchslider.js:125 +#: js/widgets/pitchstaircase.js:641 +#: js/widgets/temperament.js:2244 +#: js/widgets/timbre.js:756 +#: js/widgets/arpeggio.js:103 +#: js/widgets/musickeyboard.js:688 +#: js/widgets/phrasemaker.js:550 msgid "Save" msgstr "" -#: js/modewidget.js:121 -#: js/pitchstaircase.js:686 -#: js/phrasemaker.js:356 -#: js/pitchdrummatrix.js:109 -#: js/musickeyboard.js:534 -#: js/rhythmruler.js:269 -#: js/arpeggio.js:118 +#: js/widgets/modewidget.js:121 +#: js/widgets/pitchdrummatrix.js:181 +#: js/widgets/pitchstaircase.js:686 +#: js/widgets/arpeggio.js:118 +#: js/widgets/musickeyboard.js:696 +#: js/widgets/phrasemaker.js:567 +#: js/widgets/rhythmruler.js:601 #.TRANS: clear all subdivisions from the ruler. msgid "Clear" msgstr "" -#: js/modewidget.js:127 +#: js/widgets/modewidget.js:127 msgid "Rotate counter clockwise" msgstr "" -#: js/modewidget.js:133 +#: js/widgets/modewidget.js:133 msgid "Rotate clockwise" msgstr "" -#: js/modewidget.js:139 +#: js/widgets/modewidget.js:139 msgid "Invert" msgstr "" -#: js/modewidget.js:145 -#: js/pitchstaircase.js:678 -#: js/rhythmruler.js:258 -#: js/timbre.js:963 +#: js/widgets/modewidget.js:145 +#: js/widgets/pitchstaircase.js:678 +#: js/widgets/timbre.js:963 +#: js/widgets/rhythmruler.js:578 msgid "Undo" msgstr "" -#: js/modewidget.js:163 +#: js/widgets/modewidget.js:163 #.TRANS: A circle of notes represents the musical mode. msgid "Click in the circle to select notes for the mode." msgstr "" -#: js/modewidget.js:1017 -#: js/pitchstaircase.js:580 -#: js/phrasemaker.js:4855 -#: js/temperament.js:1754 -#: js/rhythmruler.js:1865 -#: js/rhythmruler.js:2081 -#: js/tempo.js:414 +#: js/widgets/modewidget.js:1017 +#: js/widgets/pitchstaircase.js:580 +#: js/widgets/temperament.js:1929 +#: js/widgets/tempo.js:414 +#: js/widgets/phrasemaker.js:5356 +#: js/widgets/rhythmruler.js:2254 +#: js/widgets/rhythmruler.js:2472 msgid "New action block generated!" msgstr "" -#: js/oscilloscope.js:79 -msgid "Zoom In" -msgstr "" - -#: js/oscilloscope.js:88 -msgid "Zoom Out" -msgstr "" - -#: js/pitchstaircase.js:624 -msgid "Play chord" -msgstr "" - -#: js/pitchstaircase.js:632 -msgid "Play scale" +#: js/widgets/meterwidget.js:275 +msgid "Reset" msgstr "" -#: js/pitchstaircase.js:696 -msgid "Click on a note to create a new step." +#: js/widgets/meterwidget.js:301 +msgid "Click in the circle to select strong beats for the meter." msgstr "" -#: js/phrasemaker.js:363 -msgid "Export" +#: js/widgets/oscilloscope.js:79 +msgid "Zoom In" msgstr "" -#: js/phrasemaker.js:370 -msgid "Sort" +#: js/widgets/oscilloscope.js:88 +msgid "Zoom Out" msgstr "" -#: js/phrasemaker.js:373 -#: js/musickeyboard.js:559 -msgid "Add note" +#: js/widgets/pitchdrummatrix.js:356 +#: js/widgets/pitchdrummatrix.js:752 +msgid "Click in the grid to map notes to drums." msgstr "" -#: js/phrasemaker.js:764 -msgid "Click on the table to add notes." +#: js/widgets/pitchslider.js:103 +msgid "Move up" msgstr "" -#: js/phrasemaker.js:2414 -#: js/phrasemaker.js:2543 -msgid "tuplet value" +#: js/widgets/pitchslider.js:114 +msgid "Move down" msgstr "" -#: js/pitchdrummatrix.js:270 -#: js/pitchdrummatrix.js:639 -msgid "Click in the grid to map notes to drums." +#: js/widgets/pitchslider.js:136 +msgid "Click on the slider to create a note block." msgstr "" -#: js/pitchslider.js:103 -msgid "Move up" +#: js/widgets/pitchstaircase.js:624 +msgid "Play chord" msgstr "" -#: js/pitchslider.js:114 -msgid "Move down" +#: js/widgets/pitchstaircase.js:632 +msgid "Play scale" msgstr "" -#: js/pitchslider.js:136 -msgid "Click on the slider to create a note block." +#: js/widgets/pitchstaircase.js:696 +msgid "Click on a note to create a new step." msgstr "" -#: js/temperament.js:215 +#: js/widgets/temperament.js:321 msgid "back to 2:1 octave space" msgstr "" -#: js/temperament.js:323 +#: js/widgets/temperament.js:447 msgid "edit" msgstr "" -#: js/temperament.js:330 -#: js/temperament.js:332 -#: js/temperament.js:1336 -#: js/temperament.js:1338 +#: js/widgets/temperament.js:454 +#: js/widgets/temperament.js:456 +#: js/widgets/temperament.js:1493 +#: js/widgets/temperament.js:1495 msgid "close" msgstr "" -#: js/temperament.js:423 -#: js/temperament.js:736 -#: js/temperament.js:743 -#: js/temperament.js:845 -#: js/temperament.js:935 -#: js/temperament.js:942 -#: js/temperament.js:1015 -#: js/temperament.js:1284 -#: js/temperament.js:1354 -#: js/temperament.js:1430 +#: js/widgets/temperament.js:552 +#: js/widgets/temperament.js:877 +#: js/widgets/temperament.js:884 +#: js/widgets/temperament.js:986 +#: js/widgets/temperament.js:1080 +#: js/widgets/temperament.js:1087 +#: js/widgets/temperament.js:1160 +#: js/widgets/temperament.js:1433 +#: js/widgets/temperament.js:1511 +#: js/widgets/temperament.js:1596 msgid "done" msgstr "" -#: js/temperament.js:477 -#: js/temperament.js:482 -#: js/temperament.js:918 +#: js/widgets/temperament.js:610 +#: js/widgets/temperament.js:615 +#: js/widgets/temperament.js:1063 msgid "ratio" msgstr "" -#: js/temperament.js:483 +#: js/widgets/temperament.js:616 msgid "interval" msgstr "" -#: js/temperament.js:611 +#: js/widgets/temperament.js:744 msgid "non scalar" msgstr "" -#: js/temperament.js:650 +#: js/widgets/temperament.js:787 msgid "ratios" msgstr "" -#: js/temperament.js:650 +#: js/widgets/temperament.js:787 msgid "arbitrary" msgstr "" -#: js/temperament.js:719 +#: js/widgets/temperament.js:860 msgid "number of divisions" msgstr "" -#: js/temperament.js:741 -#: js/temperament.js:858 -#: js/temperament.js:940 -#: js/temperament.js:1033 +#: js/widgets/temperament.js:882 +#: js/widgets/temperament.js:999 +#: js/widgets/temperament.js:1085 +#: js/widgets/temperament.js:1178 msgid "preview" msgstr "" -#: js/temperament.js:788 +#: js/widgets/temperament.js:929 msgid "The Number of divisions is too large." msgstr "" -#: js/temperament.js:921 +#: js/widgets/temperament.js:1066 msgid "recursion" msgstr "" -#: js/temperament.js:1450 +#: js/widgets/temperament.js:1616 msgid "The octave ratio has changed. This changes temperament significantly." msgstr "" -#: js/temperament.js:2087 +#: js/widgets/temperament.js:2248 msgid "Table" msgstr "" -#: js/temperament.js:2185 +#: js/widgets/temperament.js:2356 msgid "Add pitches" msgstr "" -#: js/musickeyboard.js:570 -msgid "Metronome" +#: js/widgets/tempo.js:78 +#: js/widgets/tempo.js:97 +#: js/widgets/tempo.js:99 +#: js/widgets/aiwidget.js:134 +#: js/widgets/aiwidget.js:136 +#: js/widgets/rhythmruler.js:681 +#: js/widgets/rhythmruler.js:683 +#: js/widgets/rhythmruler.js:1864 +#: js/widgets/rhythmruler.js:1866 +#: js/widgets/sampler.js:180 +#: js/widgets/sampler.js:182 +msgid "Pause" msgstr "" -#: js/musickeyboard.js:1296 -#: plugins/rodi.rtp:193 -msgid "duration" +#: js/widgets/tempo.js:113 +msgid "Save tempo" msgstr "" -#: js/musickeyboard.js:2840 -msgid "New action blocks generated!" +#: js/widgets/tempo.js:144 +msgid "speed up" msgstr "" -#: js/musickeyboard.js:2841 -msgid "New action block generated" +#: js/widgets/tempo.js:150 +msgid "slow down" msgstr "" -#: js/musickeyboard.js:2984 -#: js/musickeyboard.js:2992 -msgid "MIDI device present." +#: js/widgets/tempo.js:194 +msgid "Adjust the tempo with the buttons." msgstr "" -#: js/musickeyboard.js:2995 -msgid "No MIDI device found." +#: js/widgets/tempo.js:261 +msgid "Please enter a number between 30 and 1000" msgstr "" -#: js/musickeyboard.js:3000 -msgid "Failed to get MIDI access in browser." +#: js/widgets/tempo.js:268 +#: js/widgets/tempo.js:271 +msgid "The beats per minute must be between 30 and 1000." msgstr "" -#: js/rhythmruler.js:202 -msgid "Save rhythms" +#: js/widgets/tempo.js:287 +msgid "The beats per minute must be below 1000." msgstr "" -#: js/rhythmruler.js:222 -msgid "Save drum machine" +#: js/widgets/tempo.js:303 +msgid "The beats per minute must be above 30" msgstr "" -#: js/rhythmruler.js:263 -#.TRANS: user can tap out a rhythm by clicking on a ruler. -msgid "Tap a rhythm" +#: js/widgets/timbre.js:766 +msgid "Synthesizer" msgstr "" -#: js/rhythmruler.js:342 -#: js/rhythmruler.js:344 -#: js/rhythmruler.js:1481 -#: js/rhythmruler.js:1483 -#: js/sampler.js:110 -#: js/sampler.js:112 -#: js/tempo.js:78 -#: js/tempo.js:97 -#: js/tempo.js:99 -msgid "Pause" +#: js/widgets/timbre.js:789 +msgid "Oscillator" msgstr "" -#: js/rhythmruler.js:478 -msgid "Click on the ruler to divide it." +#: js/widgets/timbre.js:840 +msgid "Envelope" msgstr "" -#: js/rhythmruler.js:603 -#: js/rhythmruler.js:605 -#: js/rhythmruler.js:804 -#: js/rhythmruler.js:806 -#: js/rhythmruler.js:1386 -#: js/rhythmruler.js:1388 -msgid "tap a rhythm" +#: js/widgets/timbre.js:886 +#: planet/js/GlobalTag.js:50 +#.TRANS: On the Planet, we use labels to tag projects. +msgid "Effects" msgstr "" -#: js/rhythmruler.js:1084 -msgid "Maximum value of 256 has been exceeded." +#: js/widgets/timbre.js:904 +msgid "Filter" msgstr "" -#: js/sampler.js:137 -msgid "Warning: Sample is bigger than 1MB." +#: js/widgets/timbre.js:946 +msgid "Add filter" msgstr "" -#: js/sampler.js:142 -msgid "Upload failed: Sample is not a .wav file." +#: js/widgets/timbre.js:987 +msgid "Click on buttons to open the timbre design tools." msgstr "" -#: js/sampler.js:164 -msgid "A new sample block was generated." +#: js/widgets/timbre.js:1273 +msgid "harmonicity" msgstr "" -#: js/sampler.js:255 -msgid "Upload sample" +#: js/widgets/timbre.js:1340 +#: js/widgets/timbre.js:1406 +msgid "modulation index" msgstr "" -#: js/sampler.js:306 -msgid "Save sample" +#: js/widgets/timbre.js:1484 +msgid "vibrato amount" msgstr "" -#: js/sampler.js:697 -#.TRANS: The reference tone is a sound used for comparison. -msgid "reference tone" +#: js/widgets/timbre.js:1919 +msgid "Filter already present." msgstr "" -#: js/tempo.js:113 -msgid "Save tempo" +#: js/widgets/timbre.js:2322 +msgid "delay (MS)" msgstr "" -#: js/tempo.js:144 -msgid "speed up" +#: js/widgets/timbre.js:2507 +msgid "distortion amount" msgstr "" -#: js/tempo.js:150 -msgid "slow down" +#: js/widgets/aiwidget.js:180 +#: js/widgets/sampler.js:227 +msgid "Warning: Sample is bigger than 1MB." msgstr "" -#: js/tempo.js:194 -msgid "Adjust the tempo with the buttons." +#: js/widgets/aiwidget.js:539 +msgid "New start block generated" msgstr "" -#: js/tempo.js:261 -msgid "Please enter a number between 30 and 1000" +#: js/widgets/aiwidget.js:541 +msgid "MIDI loading. This may take some time depending upon the number of notes in the track" msgstr "" -#: js/tempo.js:268 -#: js/tempo.js:271 -msgid "The beats per minute must be between 30 and 1000." +#: js/widgets/aiwidget.js:551 +#: js/widgets/sampler.js:254 +msgid "Upload failed: Sample is not a .wav file." msgstr "" -#: js/tempo.js:287 -msgid "The beats per minute must be below 1000." +#: js/widgets/aiwidget.js:679 +#: js/widgets/sampler.js:432 +msgid "Save sample" msgstr "" -#: js/tempo.js:303 -msgid "The beats per minute must be above 30" +#: js/widgets/aiwidget.js:701 +msgid "AI Music" msgstr "" -#: js/timbre.js:766 -msgid "Synthesizer" +#: js/widgets/arpeggio.js:239 +msgid "Click in the grid to add steps to the arpeggio." msgstr "" -#: js/timbre.js:789 -msgid "Oscillator" +#: js/widgets/help.js:95 +#: js/widgets/help.js:125 +#: js/widgets/help.js:146 +#: js/widgets/help.js:158 +#: js/widgets/help.js:376 +#: js/widgets/help.js:391 +msgid "Take a tour" msgstr "" -#: js/timbre.js:840 -msgid "Envelope" +#: js/widgets/musickeyboard.js:725 +#: js/widgets/phrasemaker.js:584 +msgid "Add note" msgstr "" -#: js/timbre.js:886 -#: js/GlobalTag.js:50 -#.TRANS: On the Planet, we use labels to tag projects. -msgid "Effects" +#: js/widgets/musickeyboard.js:744 +msgid "Metronome" +msgstr "" + +#: js/widgets/musickeyboard.js:1549 +#: plugins/rodi.rtp:193 +msgid "duration" +msgstr "" + +#: js/widgets/musickeyboard.js:3179 +msgid "New action blocks generated" +msgstr "" + +#: js/widgets/musickeyboard.js:3180 +msgid "New action block generated" msgstr "" -#: js/timbre.js:904 -msgid "Filter" +#: js/widgets/musickeyboard.js:3365 +#: js/widgets/musickeyboard.js:3373 +msgid "MIDI device present." msgstr "" -#: js/timbre.js:946 -msgid "Add filter" +#: js/widgets/musickeyboard.js:3376 +msgid "No MIDI device found." msgstr "" -#: js/timbre.js:987 -msgid "Click on buttons to open the timbre design tools." +#: js/widgets/musickeyboard.js:3386 +msgid "Failed to get MIDI access in browser." msgstr "" -#: js/timbre.js:1273 -msgid "harmonicity" +#: js/widgets/phrasemaker.js:574 +msgid "Export" msgstr "" -#: js/timbre.js:1340 -#: js/timbre.js:1406 -msgid "modulation index" +#: js/widgets/phrasemaker.js:581 +msgid "Sort" msgstr "" -#: js/timbre.js:1484 -msgid "vibrato amount" +#: js/widgets/phrasemaker.js:975 +msgid "Click on the table to add notes." msgstr "" -#: js/timbre.js:1919 -msgid "Filter already present." +#: js/widgets/phrasemaker.js:2677 +#: js/widgets/phrasemaker.js:2819 +msgid "tuplet value" msgstr "" -#: js/timbre.js:2322 -msgid "delay (MS)" +#: js/widgets/rhythmruler.js:486 +msgid "Save rhythms" msgstr "" -#: js/timbre.js:2507 -msgid "distortion amount" +#: js/widgets/rhythmruler.js:512 +msgid "Save drum machine" msgstr "" -#: js/meterwidget.js:170 -msgid "Reset" +#: js/widgets/rhythmruler.js:589 +#.TRANS: user can tap out a rhythm by clicking on a ruler. +msgid "Tap a rhythm" msgstr "" -#: js/meterwidget.js:196 -msgid "Click in the circle to select strong beats for the meter." +#: js/widgets/rhythmruler.js:817 +msgid "Click on the ruler to divide it." msgstr "" -#: js/arpeggio.js:239 -msgid "Click in the grid to add steps to the arpeggio." +#: js/widgets/rhythmruler.js:950 +#: js/widgets/rhythmruler.js:952 +#: js/widgets/rhythmruler.js:1152 +#: js/widgets/rhythmruler.js:1154 +#: js/widgets/rhythmruler.js:1765 +#: js/widgets/rhythmruler.js:1767 +msgid "tap a rhythm" msgstr "" -#: js/ProjectStorage.js:243 -msgid "anonymous" +#: js/widgets/rhythmruler.js:1459 +msgid "Maximum value of 256 has been exceeded." msgstr "" -#: js/GlobalCard.js:68 -msgid "Share" +#: js/widgets/sampler.js:237 +msgid "Recording started..." msgstr "" -#: js/GlobalCard.js:74 -msgid "Flags" +#: js/widgets/sampler.js:245 +msgid "Recording complete..." msgstr "" -#: js/LocalCard.js:36 -msgid "View published project" +#: js/widgets/sampler.js:283 +msgid "A new sample block was generated." msgstr "" -#: js/LocalCard.js:42 -msgid "Publish project" +#: js/widgets/sampler.js:378 +msgid "Upload sample" msgstr "" -#: js/LocalCard.js:51 -msgid "Edit project" +#: js/widgets/sampler.js:399 +msgid "Warning: Your sample cannot be loaded because it is >1MB." msgstr "" -#: js/LocalCard.js:52 -msgid "Delete project" +#: js/widgets/sampler.js:448 +msgid "Toggle Mic" msgstr "" -#: js/LocalCard.js:53 -msgid "Download project" +#: js/widgets/sampler.js:458 +msgid "Playback" msgstr "" -#: js/LocalCard.js:55 -msgid "Duplicate project" +#: js/widgets/sampler.js:979 +#.TRANS: The reference tone is a sound used for comparison. +msgid "reference tone" msgstr "" -#: js/GlobalTag.js:28 +#: planet/js/GlobalTag.js:28 #.TRANS: On the Planet, we use labels to tag projects. msgid "All Projects" msgstr "" -#: js/GlobalTag.js:30 -#: js/StringHelper.js:37 +#: planet/js/GlobalTag.js:30 +#: planet/js/StringHelper.js:37 #.TRANS: On the Planet, we use labels to tag projects. msgid "My Projects" msgstr "" -#: js/GlobalTag.js:32 +#: planet/js/GlobalTag.js:32 #.TRANS: On the Planet, we use labels to tag projects. msgid "Examples" msgstr "" -#: js/GlobalTag.js:34 +#: planet/js/GlobalTag.js:34 #.TRANS: On the Planet, we use labels to tag projects. msgid "Music" msgstr "" -#: js/GlobalTag.js:36 +#: planet/js/GlobalTag.js:36 #.TRANS: On the Planet, we use labels to tag projects. msgid "Art" msgstr "" -#: js/GlobalTag.js:38 +#: planet/js/GlobalTag.js:38 #.TRANS: On the Planet, we use labels to tag projects. msgid "Math" msgstr "" -#: js/GlobalTag.js:40 +#: planet/js/GlobalTag.js:40 #.TRANS: On the Planet, we use labels to tag projects. msgid "Interactive" msgstr "" -#: js/GlobalTag.js:42 +#: planet/js/GlobalTag.js:42 #.TRANS: On the Planet, we use labels to tag projects. msgid "Design" msgstr "" -#: js/GlobalTag.js:44 +#: planet/js/GlobalTag.js:44 #.TRANS: On the Planet, we use labels to tag projects. msgid "Game" msgstr "" -#: js/GlobalTag.js:46 +#: planet/js/GlobalTag.js:46 #.TRANS: On the Planet, we use labels to tag projects. msgid "Media" msgstr "" -#: js/GlobalTag.js:48 +#: planet/js/GlobalTag.js:48 #.TRANS: On the Planet, we use labels to tag projects. msgid "Sensors" msgstr "" -#: js/GlobalTag.js:52 +#: planet/js/GlobalTag.js:52 #.TRANS: On the Planet, we use labels to tag projects. msgid "Code Snippet" msgstr "" -#: js/helper.js:149 -#: js/StringHelper.js:49 -msgid "Show more tags" +#: planet/js/LocalCard.js:36 +msgid "View published project" msgstr "" -#: js/helper.js:150 -msgid "Show fewer tags" +#: planet/js/LocalCard.js:42 +msgid "Publish project" +msgstr "" + +#: planet/js/LocalCard.js:51 +msgid "Edit project" +msgstr "" + +#: planet/js/LocalCard.js:52 +msgid "Delete project" +msgstr "" + +#: planet/js/LocalCard.js:53 +msgid "Download project" +msgstr "" + +#: planet/js/LocalCard.js:55 +msgid "Duplicate project" +msgstr "" + +#: planet/js/ProjectStorage.js:243 +msgid "anonymous" +msgstr "" + +#: planet/js/SaveInterface.js:34 +msgid "Open in Music Blocks" +msgstr "" + +#: planet/js/SaveInterface.js:35 +msgid "Open in Turtle Blocks" +msgstr "" + +#: planet/js/GlobalCard.js:68 +msgid "Share" +msgstr "" + +#: planet/js/GlobalCard.js:74 +msgid "Flags" +msgstr "" + +#: planet/js/GlobalPlanet.js:35 +msgid "No results found." +msgstr "" + +#: planet/js/GlobalPlanet.js:51 +msgid "Remix of" +msgstr "" + +#: planet/js/GlobalPlanet.js:509 +msgid "Cannot connect to server" msgstr "" -#: js/ProjectViewer.js:30 +#: planet/js/ProjectViewer.js:30 msgid "Error: Report could not be submitted. Try again later." msgstr "" -#: js/ProjectViewer.js:31 +#: planet/js/ProjectViewer.js:31 msgid "Thank you for reporting this project. A moderator will review the project shortly, to verify violation of the Sugar Labs Code of Conduct." msgstr "" -#: js/ProjectViewer.js:32 -#: js/StringHelper.js:62 -#: js/StringHelper.js:64 -#: js/StringHelper.js:68 +#: planet/js/ProjectViewer.js:32 +#: planet/js/StringHelper.js:62 +#: planet/js/StringHelper.js:64 +#: planet/js/StringHelper.js:68 msgid "Report Project" msgstr "" -#: js/ProjectViewer.js:33 -#: js/StringHelper.js:63 +#: planet/js/ProjectViewer.js:33 +#: planet/js/StringHelper.js:63 msgid "Project Reported" msgstr "" -#: js/ProjectViewer.js:34 +#: planet/js/ProjectViewer.js:34 msgid "Report description required" msgstr "" -#: js/ProjectViewer.js:35 +#: planet/js/ProjectViewer.js:35 msgid "Report description too long" msgstr "" -#: js/StringHelper.js:30 +#: planet/js/Publisher.js:30 +msgid "Feature unavailable - cannot connect to server. Reload Music Blocks to try again." +msgstr "" + +#: planet/js/Publisher.js:220 +#: planet/js/Publisher.js:237 +msgid "This field is required" +msgstr "" + +#: planet/js/Publisher.js:227 +msgid "Title too long" +msgstr "" + +#: planet/js/Publisher.js:244 +msgid "Description too long" +msgstr "" + +#: planet/js/Publisher.js:341 +msgid "Server Error" +msgstr "" + +#: planet/js/Publisher.js:341 +msgid "Try Again" +msgstr "" + +#: planet/js/StringHelper.js:30 msgid "Planet" msgstr "" -#: js/StringHelper.js:31 +#: planet/js/StringHelper.js:31 msgid "Close Planet" msgstr "" -#: js/StringHelper.js:32 +#: planet/js/StringHelper.js:32 msgid "Open project from file" msgstr "" -#: js/StringHelper.js:34 +#: planet/js/StringHelper.js:34 msgid "Local" msgstr "" -#: js/StringHelper.js:35 +#: planet/js/StringHelper.js:35 msgid "Global" msgstr "" -#: js/StringHelper.js:36 +#: planet/js/StringHelper.js:36 msgid "Search for a project" msgstr "" -#: js/StringHelper.js:38 +#: planet/js/StringHelper.js:38 msgid "Publish Project" msgstr "" -#: js/StringHelper.js:40 +#: planet/js/StringHelper.js:40 msgid "Tags (max 5)" msgstr "" -#: js/StringHelper.js:41 -#: js/StringHelper.js:61 +#: planet/js/StringHelper.js:41 +#: planet/js/StringHelper.js:61 msgid "Description" msgstr "" -#: js/StringHelper.js:42 -#: js/StringHelper.js:67 +#: planet/js/StringHelper.js:42 +#: planet/js/StringHelper.js:67 msgid "Submit" msgstr "" -#: js/StringHelper.js:43 -#: js/StringHelper.js:47 +#: planet/js/StringHelper.js:43 +#: planet/js/StringHelper.js:47 msgid "Cancel" msgstr "" -#: js/StringHelper.js:44 +#: planet/js/StringHelper.js:44 msgid "Delete \\"\\"?" msgstr "" -#: js/StringHelper.js:45 +#: planet/js/StringHelper.js:45 msgid "Permanently delete project \\"\\"?" msgstr "" -#: js/StringHelper.js:48 +#: planet/js/StringHelper.js:48 msgid "Explore Projects" msgstr "" -#: js/StringHelper.js:50 +#: planet/js/StringHelper.js:49 +#: planet/js/helper.js:149 +msgid "Show more tags" +msgstr "" + +#: planet/js/StringHelper.js:50 msgid "Most recent" msgstr "" -#: js/StringHelper.js:51 +#: planet/js/StringHelper.js:51 msgid "Most liked" msgstr "" -#: js/StringHelper.js:52 +#: planet/js/StringHelper.js:52 msgid "Most downloaded" msgstr "" -#: js/StringHelper.js:53 +#: planet/js/StringHelper.js:53 msgid "A-Z" msgstr "" -#: js/StringHelper.js:54 +#: planet/js/StringHelper.js:54 msgid "Sort by" msgstr "" -#: js/StringHelper.js:55 +#: planet/js/StringHelper.js:55 msgid "Load More Projects" msgstr "" -#: js/StringHelper.js:56 +#: planet/js/StringHelper.js:56 msgid "Last Updated" msgstr "" -#: js/StringHelper.js:57 +#: planet/js/StringHelper.js:57 msgid "Creation Date" msgstr "" -#: js/StringHelper.js:58 +#: planet/js/StringHelper.js:58 msgid "Number of Downloads:" msgstr "" -#: js/StringHelper.js:59 +#: planet/js/StringHelper.js:59 msgid "Number of Likes:" msgstr "" -#: js/StringHelper.js:60 +#: planet/js/StringHelper.js:60 msgid "Tags:" msgstr "" -#: js/StringHelper.js:65 +#: planet/js/StringHelper.js:65 msgid "Report projects which violate the Sugar Labs Code of Conduct." msgstr "" -#: js/StringHelper.js:66 +#: planet/js/StringHelper.js:66 msgid "Reason for reporting project" msgstr "" -#: js/StringHelper.js:70 +#: planet/js/StringHelper.js:70 msgid "Download as File" msgstr "" -#: js/GlobalPlanet.js:35 -msgid "No results found." -msgstr "" - -#: js/GlobalPlanet.js:51 -msgid "Remix of" -msgstr "" - -#: js/GlobalPlanet.js:509 -msgid "Cannot connect to server" -msgstr "" - -#: js/Publisher.js:30 -msgid "Feature unavailable - cannot connect to server. Reload Music Blocks to try again." -msgstr "" - -#: js/Publisher.js:218 -#: js/Publisher.js:235 -msgid "This field is required" -msgstr "" - -#: js/Publisher.js:225 -msgid "Title too long" +#: planet/js/helper.js:150 +msgid "Show fewer tags" msgstr "" -#: js/Publisher.js:242 -msgid "Description too long" +#: plugins/accelerometer.rtp:48 +msgid "motion x" msgstr "" -#: js/Publisher.js:339 -msgid "Server Error" +#: plugins/accelerometer.rtp:56 +msgid "motion y" msgstr "" -#: js/Publisher.js:339 -msgid "Try Again" +#: plugins/accelerometer.rtp:64 +msgid "motion z" msgstr "" -#: js/SaveInterface.js:34 -msgid "Open in Music Blocks" +#: plugins/facebook.rtp:27 +msgid "publish" msgstr "" -#: js/SaveInterface.js:35 -msgid "Open in Turtle Blocks" +#: plugins/maths.rtp:62 +msgid "power" msgstr "" -#: plugins/weather.rtp:68 -#: plugins/weather.rtp:97 -msgid "Days ahead must be in the range of -1 to 5." +#: plugins/maths.rtp:62 +msgid "base" msgstr "" -#: plugins/weather.rtp:122 -msgid "forecast" +#: plugins/maths.rtp:62 +msgid "exp" msgstr "" -#: plugins/weather.rtp:123 -#: plugins/weather.rtp:137 -#: plugins/weather.rtp:150 -msgid "city" +#: plugins/maths.rtp:99 +msgid "floor" msgstr "" -#: plugins/weather.rtp:124 -#: plugins/weather.rtp:138 -#: plugins/weather.rtp:151 -msgid "day" +#: plugins/maths.rtp:104 +msgid "ceiling" msgstr "" -#: plugins/weather.rtp:136 -msgid "high" +#: plugins/maths.rtp:109 +msgid "to degrees" msgstr "" -#: plugins/weather.rtp:149 -msgid "low" +#: plugins/maths.rtp:114 +msgid "to radians" msgstr "" #: plugins/nutrition.rtp:104 @@ -9458,45 +9867,6 @@ msgstr "" msgid "water" msgstr "" -#: plugins/maths.rtp:62 -#: plugins/examples.rtp:93 -msgid "power" -msgstr "" - -#: plugins/maths.rtp:62 -#: plugins/examples.rtp:93 -msgid "base" -msgstr "" - -#: plugins/maths.rtp:62 -#: plugins/examples.rtp:93 -msgid "exp" -msgstr "" - -#: plugins/maths.rtp:99 -#: plugins/examples.rtp:130 -msgid "floor" -msgstr "" - -#: plugins/maths.rtp:104 -#: plugins/examples.rtp:135 -msgid "ceiling" -msgstr "" - -#: plugins/maths.rtp:109 -#: plugins/examples.rtp:140 -msgid "to degrees" -msgstr "" - -#: plugins/maths.rtp:114 -#: plugins/examples.rtp:145 -msgid "to radians" -msgstr "" - -#: plugins/facebook.rtp:27 -msgid "publish" -msgstr "" - #: plugins/rodi.rtp:172 msgid "blink" msgstr "" @@ -9525,18 +9895,66 @@ msgstr "" msgid "move" msgstr "" -#: plugins/accelerometer.rtp:48 -msgid "motion x" +#: plugins/weather.rtp:68 +#: plugins/weather.rtp:97 +msgid "Days ahead must be in the range of -1 to 5." msgstr "" -#: plugins/accelerometer.rtp:56 -msgid "motion y" +#: plugins/weather.rtp:122 +msgid "forecast" msgstr "" -#: plugins/accelerometer.rtp:64 -msgid "motion z" +#: plugins/weather.rtp:123 +#: plugins/weather.rtp:137 +#: plugins/weather.rtp:150 +msgid "city" +msgstr "" + +#: plugins/weather.rtp:124 +#: plugins/weather.rtp:138 +#: plugins/weather.rtp:151 +msgid "day" +msgstr "" + +#: plugins/weather.rtp:136 +msgid "high" +msgstr "" + +#: plugins/weather.rtp:149 +msgid "low" msgstr "" +#: js/toolbar.js:70 + +#: js/toolbar.js:130 + +#: js/toolbar.js:194 + +#: js/toolbar.js:249 + +#~msgid "Toggle JavaScript Editor" +#~msgstr "" + +#: js/EnsembleBlocks.js:643 + +#~msgid "The Turrle pitch block returns the current pitch number being played by the specified turtle." +#~msgstr "" + +#: js/PitchActions.js:88 + +#~msgid "The Scalar Step Block must be used inside of a Note Block." +#~msgstr "" + +#: js/PitchActions.js:107 + +#~msgid "The Scalar Step Block must be preceded by a Pitch Block." +#~msgstr "" + +#: js/musickeyboard.js:2840 + +#~msgid "New action blocks generated!" +#~msgstr "" + #: js/toolbar.js:110 #: js/toolbar.js:204 @@ -9877,11 +10295,6 @@ msgstr "" #~msgid "The Time block returns the number of seconds that the program has been running." #~msgstr "" -#: js/help.js:95 - -#~msgid "Take a tour" -#~msgstr "" - #: js/GlobalCard.js:48 #~msgid "More Details" @@ -12780,11 +13193,6 @@ msgstr "" #~msgid "The save-stack button saves a stack onto a custom palette. It appears after a \"long press\" on a stack." #~msgstr "" -#: js/musicutils.js:254 - -#~msgid "Custom" -#~msgstr "" - #: js/basicblocks.js:4785 #~msgid "Rhythm" diff --git a/po/is.po b/po/is.po index fcf19ba693..045c9bdd7c 100644 --- a/po/is.po +++ b/po/is.po @@ -2129,276 +2129,131 @@ #: js/planetInterface.js:104 #: js/planetInterface.js:104 #: js/planetInterface.js:104 -msgid "project undefined" -msgstr "" - -#: js/logo.js:61 -msgid "Not a valid pitch name" -msgstr "" - -#: js/logo.js:507 -#: js/ProgramBlocks.js:258 -#: js/ProgramBlocks.js:427 -msgid "You must select a file." -msgstr "" - -#: js/logo.js:1184 -#: js/turtles.js:118 -#: js/turtle-painter.js:1192 -#: js/turtle-painter.js:1193 -#: js/block.js:1463 -#: js/lilypond.js:757 -#: js/lilypond.js:921 -#: js/lilypond.js:959 -#: js/ActionBlocks.js:1223 -#: js/ProgramBlocks.js:1267 -msgid "start" -msgstr "" - -#: js/logo.js:1696 -msgid "Playback is ready." -msgstr "" - -#: js/blocks.js:1011 -#: js/blocks.js:3427 -#: js/blocks.js:3428 -#: js/blocks.js:3653 -#: js/blocks.js:4012 -#: js/blocks.js:4205 -#: js/blocks.js:5343 -#: js/blocks.js:6474 -#: js/palette.js:527 -#: js/palette.js:536 -#: js/palette.js:545 -#: js/palette.js:554 -#: js/palette.js:1131 -#: js/palette.js:1142 -#: js/palette.js:1153 -#: js/palette.js:1164 -#: js/palette.js:1183 -#: js/rubrics.js:529 -#: js/macros.js:170 -#: js/macros.js:266 -#: js/macros.js:267 -#: js/macros.js:276 -#: js/macros.js:828 -#: js/block.js:1449 -#: js/block.js:4164 -#: js/block.js:4182 -#: js/block.js:4193 -#: js/turtledefs.js:128 -#: js/turtledefs.js:230 -#: js/ActionBlocks.js:254 -#: js/ActionBlocks.js:307 -#: js/ActionBlocks.js:617 -#: js/ActionBlocks.js:716 -#: js/ActionBlocks.js:961 -#: js/ActionBlocks.js:1049 -#: js/ActionBlocks.js:1322 -#: js/ActionBlocks.js:1325 -#: js/ActionBlocks.js:1337 -#: js/ActionBlocks.js:1404 -#: js/MeterBlocks.js:715 -#: js/MeterBlocks.js:768 -#: js/MeterBlocks.js:831 -#: js/MeterBlocks.js:892 -#: js/phrasemaker.js:4412 -#: js/musickeyboard.js:2647 -#: js/rhythmruler.js:1928 -#: js/rhythmruler.js:1935 -#: js/rhythmruler.js:2119 -#: js/rhythmruler.js:2126 -msgid "action" -msgstr "" - -#: js/blocks.js:1205 -#: js/blocks.js:3380 -#: js/blocks.js:3770 -#: js/blocks.js:3801 -#: js/blocks.js:3850 -#: js/blocks.js:3885 -#: js/blocks.js:6497 -#: js/palette.js:509 -#: js/palette.js:638 -#: js/palette.js:1107 -#: js/BoxesBlocks.js:282 -#: js/BoxesBlocks.js:285 -#: js/BoxesBlocks.js:405 -#: js/BoxesBlocks.js:594 -msgid "box" -msgstr "" - -#: js/blocks.js:1680 -msgid "Consider breaking this stack into parts." +#: js/SaveInterface.js:59 +#: js/SaveInterface.js:61 +#: js/SaveInterface.js:93 +msgid "Music Blocks Project" msgstr "" -#: js/blocks.js:2408 -#: js/palette.js:653 -#: js/MediaBlocks.js:602 -msgid "open file" +#: js/SaveInterface.js:63 +msgid "This project was created in Music Blocks" msgstr "" -#: js/blocks.js:2415 -#: js/blocks.js:2423 -#: js/activity.js:1875 -msgid "audio file" +#: js/SaveInterface.js:67 +msgid "Music Blocks is a Free/Libre Software application." msgstr "" -#: js/blocks.js:2536 -#: js/blocks.js:3147 -#: js/block.js:3543 -msgid "on2" +#: js/SaveInterface.js:69 +msgid "The source code can be accessed at" msgstr "" -#: js/blocks.js:2538 -#: js/blocks.js:3149 -#: js/block.js:3545 -msgid "off" +#: js/SaveInterface.js:72 +msgid "For more information, please consult the" msgstr "" -#: js/blocks.js:2543 -#: js/blocks.js:3154 -#: js/palette.js:618 -#: js/block.js:3466 -#: js/BooleanBlocks.js:77 -#: js/BooleanBlocks.js:167 -#: js/BooleanBlocks.js:251 -#: js/BooleanBlocks.js:335 -#: js/BooleanBlocks.js:433 -#: js/BooleanBlocks.js:539 -#: js/BooleanBlocks.js:640 -#: js/BooleanBlocks.js:741 -#: js/BooleanBlocks.js:847 -#: js/BooleanBlocks.js:948 -#: js/BooleanBlocks.js:1033 -#: js/SensorsBlocks.js:910 -msgid "true" +#: js/SaveInterface.js:76 +#: js/turtledefs.js:795 +msgid "Music Blocks Guide" msgstr "" -#: js/blocks.js:2545 -#: js/blocks.js:3156 -#: js/block.js:3466 -#: js/BooleanBlocks.js:79 -#: js/BooleanBlocks.js:169 -#: js/BooleanBlocks.js:253 -#: js/BooleanBlocks.js:337 -#: js/BooleanBlocks.js:435 -#: js/BooleanBlocks.js:541 -#: js/BooleanBlocks.js:642 -#: js/BooleanBlocks.js:743 -#: js/BooleanBlocks.js:849 -#: js/BooleanBlocks.js:950 -#: js/SensorsBlocks.js:912 -msgid "false" +#: js/SaveInterface.js:83 +msgid "Alternatively, open the file in Music Blocks using the Load project button." msgstr "" -#: js/blocks.js:3183 -#: js/palette.js:574 -#: js/MediaBlocks.js:892 -#: js/MediaBlocks.js:963 -msgid "text" +#: js/SaveInterface.js:85 +msgid "Project Code" msgstr "" -#: js/blocks.js:3379 -#: js/palette.js:641 -#: js/palette.js:642 -#: js/BoxesBlocks.js:514 -msgid "store in box" +#: js/SaveInterface.js:87 +msgid "This code stores data about the blocks in a project." msgstr "" -#: js/blocks.js:3384 -#: js/blocks.js:3824 -#: js/blocks.js:3859 -#: js/blocks.js:3894 -#: js/blocks.js:5773 -#: js/blocks.js:5794 -#: js/BoxesBlocks.js:772 -msgid "box1" +#: js/SaveInterface.js:89 +msgid "Show" msgstr "" -#: js/blocks.js:3386 -#: js/blocks.js:3826 -#: js/blocks.js:3861 -#: js/blocks.js:3896 -#: js/blocks.js:5775 -#: js/blocks.js:5796 -#: js/BoxesBlocks.js:663 -msgid "box2" +#: js/SaveInterface.js:91 +msgid "Hide" msgstr "" -#: js/blocks.js:4058 -#: js/palette.js:639 -#: js/palette.js:644 -#: js/palette.js:1043 -#: js/BoxesBlocks.js:591 -msgid "store in" +#: js/SaveInterface.js:131 +#: js/SaveInterface.js:204 +#: js/SaveInterface.js:262 +#: js/SaveInterface.js:389 +#: js/SaveInterface.js:417 +#: js/activity.js:4884 +#: planet/js/ProjectStorage.js:27 +#: planet/js/GlobalPlanet.js:467 +#: planet/js/GlobalPlanet.js:469 +#: planet/js/GlobalPlanet.js:495 +#.TRANS: default project title when saving as Lilypond +msgid "My Project" msgstr "" -#: js/blocks.js:4058 -#: js/EnsembleBlocks.js:391 -#: js/EnsembleBlocks.js:402 -#: js/MediaBlocks.js:746 -#: js/ProgramBlocks.js:390 -#: js/ProgramBlocks.js:495 -#: js/ProgramBlocks.js:658 -#: js/BoxesBlocks.js:595 -#: js/PitchBlocks.js:656 -#: js/PitchBlocks.js:932 -#: js/PitchBlocks.js:1827 -#: js/ToneBlocks.js:1025 -#: js/DictBlocks.js:215 -#: js/DictBlocks.js:289 -msgid "name" +#: js/SaveInterface.js:197 +#: planet/js/SaveInterface.js:58 +msgid "No description provided" msgstr "" -#: js/blocks.js:4058 -#: js/RhythmBlocks.js:1130 -#: js/BoxesBlocks.js:75 -#: js/BoxesBlocks.js:595 -#: js/HeapBlocks.js:544 -#: js/DictBlocks.js:289 -#: js/DictBlocks.js:430 -msgid "value" +#: js/SaveInterface.js:332 +msgid "Your recording is in progress." msgstr "" -#: js/blocks.js:4907 -msgid "There is no block selected." +#: js/SaveInterface.js:401 +#.TRANS: File name prompt for save as Lilypond +msgid "File name" msgstr "" -#: js/blocks.js:5002 -#: js/MediaBlocks.js:888 -msgid "show" +#: js/SaveInterface.js:403 +#: planet/js/StringHelper.js:39 +#.TRANS: Project title prompt for save as Lilypond +msgid "Project title" msgstr "" -#: js/blocks.js:5005 -#: js/MediaBlocks.js:803 -#.TRANS: Avatar is the image used to determine the appearance of the mouse. -msgid "avatar" +#: js/SaveInterface.js:405 +#.TRANS: Project title prompt for save as Lilypond +msgid "Project author" msgstr "" -#: js/blocks.js:5008 -#: js/ToneBlocks.js:1010 -#: js/sampler.js:693 -#.TRANS: The sound sample that the user uploads. -msgid "sample" +#: js/SaveInterface.js:407 +#.TRANS: MIDI prompt for save as Lilypond +msgid "Include MIDI output?" msgstr "" -#: js/turtles.js:874 -msgid "Grid" +#: js/SaveInterface.js:409 +#.TRANS: Guitar prompt for save as Lilypond +msgid "Include guitar tablature output?" msgstr "" -#: js/turtles.js:891 -#: js/turtledefs.js:626 -msgid "Clean" +#: js/SaveInterface.js:411 +#.TRANS: Lilypond is a scripting language for generating sheet music +msgid "Save as Lilypond" msgstr "" -#: js/turtles.js:912 -#: js/turtledefs.js:632 -msgid "Collapse" +#: js/SaveInterface.js:426 +#: js/blocks/EnsembleBlocks.js:75 +#: js/blocks/EnsembleBlocks.js:154 +#: js/blocks/EnsembleBlocks.js:216 +#: js/blocks/EnsembleBlocks.js:302 +#: js/blocks/EnsembleBlocks.js:348 +#: js/blocks/EnsembleBlocks.js:389 +#: js/blocks/EnsembleBlocks.js:441 +#: js/blocks/EnsembleBlocks.js:490 +#: js/blocks/EnsembleBlocks.js:536 +#: js/blocks/EnsembleBlocks.js:583 +#: js/blocks/EnsembleBlocks.js:637 +#: js/blocks/EnsembleBlocks.js:753 +#: js/blocks/EnsembleBlocks.js:840 +#: js/blocks/EnsembleBlocks.js:899 +#: js/blocks/EnsembleBlocks.js:942 +#: js/blocks/EnsembleBlocks.js:1212 +#: js/blocks/EnsembleBlocks.js:1280 +#.TRANS: default project author when saving as Lilypond +msgid "Mr. Mouse" msgstr "" -#: js/turtles.js:940 -msgid "Expand" +#: js/SaveInterface.js:573 +msgid "The Lilypond code is copied to clipboard. You can paste it here: " msgstr "" #: js/languagebox.js:198 @@ -2409,6933 +2264,7487 @@ msgstr "" msgid "Music Blocks is already set to this language." msgstr "" -#: js/piemenus.js:200 -#: js/musicutils.js:808 -#: js/musicutils.js:824 -#: js/phrasemaker.js:1672 -#: js/musickeyboard.js:2041 -#: js/sampler.js:544 -#.TRANS: double sharp is a music term related to pitch -msgid "double sharp" +#: js/planetInterface.js:131 +msgid "project undefined" msgstr "" -#: js/piemenus.js:201 -#: js/PitchBlocks.js:1510 -#: js/PitchActions.js:580 -#: js/musicutils.js:806 -#: js/musicutils.js:825 -#: js/phrasemaker.js:1673 -#: js/musickeyboard.js:2042 -#: js/sampler.js:545 -#.TRANS: sharp is a half-step up in pitch -#.TRANS: sharp is a music term related to pitch -msgid "sharp" +#: js/rubrics.js:523 +#: js/turtledefs.js:119 +#: js/turtledefs.js:221 +#: js/blocks/RhythmBlockPaletteBlocks.js:52 +#: js/blocks/RhythmBlockPaletteBlocks.js:234 +#: js/blocks/ProgramBlocks.js:745 +#: js/widgets/rhythmruler.js:2057 +#: js/widgets/rhythmruler.js:2064 +#: js/widgets/rhythmruler.js:2133 +#: js/widgets/rhythmruler.js:2140 +#: js/widgets/rhythmruler.js:2219 +#.TRANS: an arrangement of notes based on duration +msgid "rhythm" msgstr "" -#: js/piemenus.js:202 -#: js/musicutils.js:804 -#: js/musicutils.js:826 -#: js/phrasemaker.js:1674 -#: js/musickeyboard.js:2043 -#: js/sampler.js:546 -#.TRANS: natural is a music term related to pitch -msgid "natural" +#: js/rubrics.js:524 +#: js/turtledefs.js:121 +#: js/turtledefs.js:223 +#: js/block-verbose.js:2622 +#: js/block.js:2550 +#: js/blocks/IntervalsBlocks.js:63 +#: js/blocks/SensorsBlocks.js:178 +#: js/blocks/PitchBlocks.js:1839 +#: js/blocks/PitchBlocks.js:1853 +#: js/widgets/musickeyboard.js:1935 +#: js/widgets/phrasemaker.js:1036 +#.TRANS: pitch number +#.TRANS: pitch number +#.TRANS: we specify pitch in terms of a name and an octave. The name can be CDEFGAB or Do Re Mi Fa Sol La Ti. Octave is a number between 1 and 8. +msgid "pitch" msgstr "" -#: js/piemenus.js:203 -#: js/PitchBlocks.js:1469 -#: js/PitchActions.js:583 -#: js/musicutils.js:802 -#: js/musicutils.js:827 -#: js/phrasemaker.js:1675 -#: js/musickeyboard.js:2044 -#: js/sampler.js:547 -#.TRANS: flat is a half-step down in pitch -#.TRANS: flat is a music term related to pitch -msgid "flat" +#: js/rubrics.js:525 +#: js/turtledefs.js:123 +#: js/turtledefs.js:225 +msgid "tone" msgstr "" -#: js/piemenus.js:204 -#: js/musicutils.js:800 -#: js/musicutils.js:828 -#: js/phrasemaker.js:1676 -#: js/musickeyboard.js:2045 -#: js/sampler.js:548 -#.TRANS: double flat is a music term related to pitch -msgid "double flat" +#: js/rubrics.js:526 +#: js/lilypond.js:605 +#: js/lilypond.js:904 +#: js/lilypond.js:910 +#: js/lilypond.js:948 +msgid "mouse" msgstr "" -#: js/piemenus.js:2861 -#: js/PitchBlocks.js:1357 -#: js/musicutils.js:627 -#.TRANS: unison means the note is the same as the current note -#.TRANS: unison is a music term related to intervals -msgid "unison" +#: js/rubrics.js:527 +#: js/turtledefs.js:132 +#: js/turtledefs.js:234 +#: js/widgets/phrasemaker.js:1040 +msgid "pen" msgstr "" -#: js/piemenus.js:3015 -#: js/piemenus.js:3088 -#: js/musicutils.js:635 -#: js/musicutils.js:810 -#: js/musicutils.js:912 -#.TRANS: major is a music term related to intervals and mode -msgid "major" +#: js/rubrics.js:528 +#: js/turtledefs.js:133 +#: js/turtledefs.js:235 +#: js/blocks/NumberBlocks.js:981 +#: js/blocks/PitchBlocks.js:1717 +#: js/blocks/PitchBlocks.js:1758 +msgid "number" msgstr "" -#: js/piemenus.js:3015 -#: js/piemenus.js:3088 -#: js/musicutils.js:653 -#.TRANS: modal scale for music -msgid "ionian" +#: js/rubrics.js:529 +#: js/turtledefs.js:127 +#: js/turtledefs.js:229 +msgid "flow" msgstr "" -#: js/piemenus.js:3017 -#: js/piemenus.js:3092 -#: js/musicutils.js:633 -#: js/musicutils.js:811 -#: js/musicutils.js:909 -#.TRANS: minor is a music term related to intervals and mode -msgid "minor" +#: js/rubrics.js:530 +#: js/turtledefs.js:128 +#: js/turtledefs.js:230 +#: js/block-verbose.js:1609 +#: js/block-verbose.js:4559 +#: js/block-verbose.js:4577 +#: js/block-verbose.js:4588 +#: js/block.js:1573 +#: js/block.js:4483 +#: js/block.js:4501 +#: js/block.js:4512 +#: js/blocks.js:1018 +#: js/blocks.js:3491 +#: js/blocks.js:3492 +#: js/blocks.js:3717 +#: js/blocks.js:4076 +#: js/blocks.js:4269 +#: js/blocks.js:5432 +#: js/blocks.js:6563 +#: js/macros.js:170 +#: js/macros.js:266 +#: js/macros.js:267 +#: js/macros.js:276 +#: js/macros.js:828 +#: js/palette.js:527 +#: js/palette.js:536 +#: js/palette.js:545 +#: js/palette.js:554 +#: js/palette.js:1129 +#: js/palette.js:1140 +#: js/palette.js:1151 +#: js/palette.js:1162 +#: js/palette.js:1181 +#: js/blocks/ActionBlocks.js:254 +#: js/blocks/ActionBlocks.js:307 +#: js/blocks/ActionBlocks.js:617 +#: js/blocks/ActionBlocks.js:716 +#: js/blocks/ActionBlocks.js:961 +#: js/blocks/ActionBlocks.js:1049 +#: js/blocks/ActionBlocks.js:1322 +#: js/blocks/ActionBlocks.js:1325 +#: js/blocks/ActionBlocks.js:1337 +#: js/blocks/ActionBlocks.js:1404 +#: js/blocks/MeterBlocks.js:715 +#: js/blocks/MeterBlocks.js:768 +#: js/blocks/MeterBlocks.js:831 +#: js/blocks/MeterBlocks.js:892 +#: js/widgets/musickeyboard.js:2986 +#: js/widgets/phrasemaker.js:4913 +#: js/widgets/rhythmruler.js:2319 +#: js/widgets/rhythmruler.js:2326 +#: js/widgets/rhythmruler.js:2511 +#: js/widgets/rhythmruler.js:2518 +msgid "action" msgstr "" -#: js/piemenus.js:3017 -#: js/piemenus.js:3092 -#: js/musicutils.js:663 -#.TRANS: modal scale for music -msgid "aeolian" +#: js/rubrics.js:531 +#: js/turtledefs.js:136 +#: js/turtledefs.js:238 +msgid "sensors" msgstr "" -#: js/piemenus.js:3407 -msgid "Duplicate" +#: js/rubrics.js:532 +#: js/turtledefs.js:135 +#: js/turtledefs.js:237 +#: js/blocks/MediaBlocks.js:930 +msgid "media" msgstr "" -#: js/piemenus.js:3408 -#: js/turtledefs.js:534 -msgid "Extract" +#: js/rubrics.js:533 +msgid "mice" msgstr "" -#: js/piemenus.js:3409 -msgid "Move to trash" +#: js/toolbar.js:48 +#: js/toolbar.js:109 +msgid "About Music Blocks" msgstr "" -#: js/piemenus.js:3410 -#: js/timbre.js:968 -#: js/StringHelper.js:69 -msgid "Close" +#: js/toolbar.js:49 +#: js/toolbar.js:110 +#: js/toolbar.js:175 +#: js/toolbar.js:231 +#: js/turtledefs.js:445 +#: js/turtledefs.js:482 +#: js/activity.js:2660 +#: js/activity.js:2671 +#: js/activity.js:2902 +#: js/widgets/modewidget.js:77 +#: js/widgets/meterwidget.js:185 +#: js/widgets/pitchdrummatrix.js:147 +#: js/widgets/pitchdrummatrix.js:687 +#: js/widgets/pitchdrummatrix.js:689 +#: js/widgets/pitchdrummatrix.js:741 +#: js/widgets/pitchdrummatrix.js:743 +#: js/widgets/pitchdrummatrix.js:758 +#: js/widgets/pitchdrummatrix.js:760 +#: js/widgets/pitchdrummatrix.js:789 +#: js/widgets/pitchdrummatrix.js:791 +#: js/widgets/pitchstaircase.js:121 +#: js/widgets/temperament.js:610 +#: js/widgets/temperament.js:613 +#: js/widgets/temperament.js:673 +#: js/widgets/temperament.js:675 +#: js/widgets/temperament.js:2017 +#: js/widgets/temperament.js:2019 +#: js/widgets/tempo.js:84 +#: js/widgets/tempo.js:86 +#: js/widgets/timbre.js:432 +#: js/widgets/timbre.js:434 +#: js/widgets/timbre.js:465 +#: js/widgets/timbre.js:467 +#: js/widgets/timbre.js:746 +#: js/widgets/aiwidget.js:647 +#: js/widgets/aiwidget.js:654 +#: js/widgets/aiwidget.js:656 +#: js/widgets/arpeggio.js:90 +#: js/widgets/arpeggio.js:547 +#: js/widgets/arpeggio.js:549 +#: js/widgets/arpeggio.js:644 +#: js/widgets/arpeggio.js:646 +#: js/widgets/musickeyboard.js:676 +#: js/widgets/musickeyboard.js:872 +#: js/widgets/musickeyboard.js:874 +#: js/widgets/musickeyboard.js:953 +#: js/widgets/musickeyboard.js:955 +#: js/widgets/phrasemaker.js:513 +#: js/widgets/phrasemaker.js:523 +#: js/widgets/phrasemaker.js:525 +#: js/widgets/phrasemaker.js:4304 +#: js/widgets/phrasemaker.js:4528 +#: js/widgets/phrasemaker.js:4533 +#: js/widgets/phrasemaker.js:4535 +#: js/widgets/phrasemaker.js:4650 +#: js/widgets/rhythmruler.js:637 +#: js/widgets/rhythmruler.js:639 +#: js/widgets/rhythmruler.js:653 +#: js/widgets/rhythmruler.js:655 +#: js/widgets/sampler.js:162 +#: js/widgets/sampler.js:164 +#: js/widgets/sampler.js:363 +msgid "Play" msgstr "" -#: js/piemenus.js:3416 -msgid "Save stack" +#: js/toolbar.js:50 +#: js/toolbar.js:111 +#: js/toolbar.js:176 +#: js/toolbar.js:232 +#: js/turtledefs.js:451 +#: js/turtledefs.js:488 +#: js/activity.js:2679 +#: js/widgets/modewidget.js:99 +#: js/widgets/modewidget.js:101 +#: js/widgets/meterwidget.js:206 +#: js/widgets/meterwidget.js:208 +#: js/widgets/pitchdrummatrix.js:674 +#: js/widgets/pitchdrummatrix.js:676 +#: js/widgets/temperament.js:2002 +#: js/widgets/temperament.js:2004 +#: js/widgets/arpeggio.js:534 +#: js/widgets/arpeggio.js:536 +#: js/widgets/phrasemaker.js:534 +#: js/widgets/phrasemaker.js:536 +msgid "Stop" msgstr "" -#: js/piemenus.js:3420 -#: js/toolbar.js:60 -#: js/toolbar.js:120 -#: js/toolbar.js:185 -#: js/toolbar.js:240 -#: js/turtledefs.js:752 -msgid "Help" +#: js/toolbar.js:51 +#: js/toolbar.js:112 +#: js/toolbar.js:177 +#: js/toolbar.js:233 +#: js/turtledefs.js:498 +msgid "Record" msgstr "" -#: js/piemenus.js:3762 -msgid "You have chosen key " +#: js/toolbar.js:52 +#: js/toolbar.js:53 +msgid "Full screen" msgstr "" -#: js/piemenus.js:3766 -msgid " for your pitch preview." +#: js/toolbar.js:54 +#: js/toolbar.js:115 +#: js/toolbar.js:180 +#: js/toolbar.js:236 +#: js/turtledefs.js:504 +msgid "Toggle Fullscreen" +msgstr "" + +#: js/toolbar.js:55 +#: js/toolbar.js:116 +#: js/toolbar.js:181 +#: js/toolbar.js:237 +#: js/turtledefs.js:510 +#: planet/js/StringHelper.js:33 +msgid "New project" +msgstr "" + +#: js/toolbar.js:56 +#: js/toolbar.js:117 +#: js/toolbar.js:182 +#: js/toolbar.js:238 +#: js/turtledefs.js:516 +msgid "Load project from file" +msgstr "" + +#: js/toolbar.js:57 +#: js/toolbar.js:118 +#: js/toolbar.js:119 +#: js/toolbar.js:183 +#: js/toolbar.js:239 +#: js/turtledefs.js:541 +#: js/turtledefs.js:550 +#: js/turtledefs.js:571 +msgid "Save project" +msgstr "" + +#: js/toolbar.js:58 +#: js/toolbar.js:77 +#: js/toolbar.js:79 +#: js/toolbar.js:138 +#: js/toolbar.js:147 +#: js/toolbar.js:149 +#: js/toolbar.js:184 +#: js/toolbar.js:202 +#: js/toolbar.js:204 +#: js/toolbar.js:240 +#: js/toolbar.js:258 +#: js/toolbar.js:260 +msgid "Save project as HTML" +msgstr "" + +#: js/toolbar.js:59 +#: js/toolbar.js:120 +#: js/toolbar.js:185 +#: js/toolbar.js:241 +msgid "Find and share projects" +msgstr "" + +#: js/toolbar.js:60 +#: js/toolbar.js:121 +#: js/toolbar.js:186 +#: js/toolbar.js:242 +msgid "Offline. Sharing is unavailable" +msgstr "" + +#: js/toolbar.js:61 +#: js/toolbar.js:122 +#: js/toolbar.js:187 +#: js/toolbar.js:243 +msgid "Auxiliary menu" +msgstr "" + +#: js/toolbar.js:62 +#: js/toolbar.js:123 +#: js/toolbar.js:188 +#: js/toolbar.js:244 +#: js/turtledefs.js:752 +#: js/piemenus.js:3423 +msgid "Help" +msgstr "" + +#: js/toolbar.js:63 +#: js/toolbar.js:124 +#: js/toolbar.js:189 +#: js/toolbar.js:245 +msgid "Run slowly" +msgstr "" + +#: js/toolbar.js:64 +#: js/toolbar.js:125 +#: js/toolbar.js:190 +#: js/toolbar.js:246 +#: js/turtledefs.js:682 +msgid "Run step by step" +msgstr "" + +#: js/toolbar.js:65 +#: js/toolbar.js:126 +#: js/toolbar.js:191 +#: js/toolbar.js:247 +#: js/turtledefs.js:689 +msgid "Display statistics" +msgstr "" + +#: js/toolbar.js:66 +#: js/toolbar.js:127 +#: js/toolbar.js:192 +#: js/toolbar.js:248 +msgid "Load plugin" +msgstr "" + +#: js/toolbar.js:67 +#: js/toolbar.js:128 +#: js/toolbar.js:193 +#: js/toolbar.js:249 +#: js/turtledefs.js:696 +msgid "Delete plugin" +msgstr "" + +#: js/toolbar.js:68 +#: js/toolbar.js:129 +#: js/toolbar.js:194 +#: js/toolbar.js:250 +msgid "Enable horizontal scrolling" +msgstr "" + +#: js/toolbar.js:69 +#: js/toolbar.js:130 +#: js/toolbar.js:195 +#: js/toolbar.js:251 +msgid "Disable horizontal scrolling" +msgstr "" + +#: js/toolbar.js:70 +#: js/toolbar.js:131 +#: js/toolbar.js:196 +#: js/toolbar.js:252 +#: planet/js/LocalCard.js:54 +#: planet/js/StringHelper.js:71 +msgid "Merge with current project" +msgstr "" + +#: js/toolbar.js:71 +#: js/toolbar.js:132 +msgid "Set Pitch Preview" +msgstr "" + +#: js/toolbar.js:72 +#: js/toolbar.js:133 +#: js/toolbar.js:197 +#: js/toolbar.js:253 +msgid "JavaScript Editor" +msgstr "" + +#: js/toolbar.js:73 +#: js/toolbar.js:134 +#: js/toolbar.js:198 +#: js/toolbar.js:254 +#: js/turtledefs.js:724 +msgid "Restore" +msgstr "" + +#: js/toolbar.js:74 +#: js/toolbar.js:135 +#: js/toolbar.js:199 +#: js/toolbar.js:255 +msgid "Switch to beginner mode" +msgstr "" + +#: js/toolbar.js:75 +#: js/toolbar.js:136 +#: js/toolbar.js:200 +#: js/toolbar.js:256 +msgid "Switch to advanced mode" +msgstr "" + +#: js/toolbar.js:76 +#: js/toolbar.js:137 +#: js/toolbar.js:146 +#: js/toolbar.js:201 +#: js/toolbar.js:257 +#: js/turtledefs.js:738 +msgid "Select language" +msgstr "" + +#: js/toolbar.js:78 +#: js/toolbar.js:81 +#: js/toolbar.js:140 +#: js/turtledefs.js:579 +msgid "Save mouse artwork as PNG" +msgstr "" + +#: js/toolbar.js:80 +#: js/toolbar.js:139 +#: js/turtledefs.js:575 +msgid "Save mouse artwork as SVG" +msgstr "" + +#: js/toolbar.js:82 +#: js/toolbar.js:141 +#: js/turtledefs.js:583 +msgid "Save music as WAV" +msgstr "" + +#: js/toolbar.js:83 +#: js/toolbar.js:142 +#: js/turtledefs.js:587 +msgid "Save sheet music as ABC" +msgstr "" + +#: js/toolbar.js:84 +#: js/toolbar.js:143 +#: js/turtledefs.js:591 +msgid "Save sheet music as Lilypond" +msgstr "" + +#: js/toolbar.js:85 +msgid "Save sheet music as MusicXML" +msgstr "" + +#: js/toolbar.js:86 +#: js/toolbar.js:144 +#: js/toolbar.js:152 +#: js/toolbar.js:207 +#: js/toolbar.js:263 +#: js/turtledefs.js:562 +#: js/turtledefs.js:595 +msgid "Save block artwork as SVG" +msgstr "" + +#: js/toolbar.js:87 +#: js/toolbar.js:145 +#: js/toolbar.js:153 +#: js/toolbar.js:208 +#: js/toolbar.js:264 +#: js/turtles.js:911 +msgid "Confirm" +msgstr "" + +#: js/toolbar.js:88 +#: js/toolbar.js:154 +#: js/toolbar.js:209 +#: js/toolbar.js:265 +msgid "English (United States)" +msgstr "" + +#: js/toolbar.js:89 +#: js/toolbar.js:155 +#: js/toolbar.js:210 +#: js/toolbar.js:266 +msgid "English (United Kingdom)" +msgstr "" + +#: js/toolbar.js:90 +#: js/toolbar.js:156 +#: js/toolbar.js:211 +#: js/toolbar.js:267 +msgid "日本語" +msgstr "" + +#: js/toolbar.js:91 +msgid "한국어" +msgstr "" + +#: js/toolbar.js:92 +#: js/toolbar.js:158 +#: js/toolbar.js:213 +#: js/toolbar.js:269 +msgid "español" +msgstr "" + +#: js/toolbar.js:93 +#: js/toolbar.js:159 +#: js/toolbar.js:214 +#: js/toolbar.js:270 +msgid "português" +msgstr "" + +#: js/toolbar.js:94 +#: js/toolbar.js:160 +#: js/toolbar.js:215 +#: js/toolbar.js:271 +msgid "にほんご" +msgstr "" + +#: js/toolbar.js:95 +#: js/toolbar.js:161 +#: js/toolbar.js:216 +#: js/toolbar.js:272 +msgid "中文" +msgstr "" + +#: js/toolbar.js:96 +#: js/toolbar.js:162 +#: js/toolbar.js:217 +#: js/toolbar.js:273 +msgid "ภาษาไทย" +msgstr "" + +#: js/toolbar.js:97 +#: js/toolbar.js:163 +#: js/toolbar.js:218 +#: js/toolbar.js:274 +msgid "aymara" +msgstr "" + +#: js/toolbar.js:98 +#: js/toolbar.js:164 +#: js/toolbar.js:219 +#: js/toolbar.js:275 +msgid "quechua" +msgstr "" + +#: js/toolbar.js:99 +#: js/toolbar.js:165 +#: js/toolbar.js:220 +#: js/toolbar.js:276 +msgid "guarani" +msgstr "" + +#: js/toolbar.js:100 +#: js/toolbar.js:166 +#: js/toolbar.js:221 +#: js/toolbar.js:277 +msgid "हिंदी" +msgstr "" + +#: js/toolbar.js:101 +#: js/toolbar.js:168 +#: js/toolbar.js:222 +#: js/toolbar.js:279 +msgid "igbo" +msgstr "" + +#: js/toolbar.js:102 +#: js/toolbar.js:169 +#: js/toolbar.js:223 +#: js/toolbar.js:280 +msgid "عربى" +msgstr "" + +#: js/toolbar.js:103 +#: js/toolbar.js:167 +#: js/toolbar.js:224 +#: js/toolbar.js:278 +msgid "తెలుగు" +msgstr "" + +#: js/toolbar.js:104 +#: js/toolbar.js:170 +#: js/toolbar.js:225 +#: js/toolbar.js:281 +msgid "עִברִית" +msgstr "" + +#: js/toolbar.js:113 +#: js/toolbar.js:114 +#: js/toolbar.js:178 +#: js/toolbar.js:179 +#: js/toolbar.js:234 +#: js/toolbar.js:235 +msgid "Full Screen" +msgstr "" + +#: js/toolbar.js:148 +#: js/toolbar.js:151 +#: js/toolbar.js:203 +#: js/toolbar.js:206 +#: js/toolbar.js:259 +#: js/toolbar.js:262 +#: js/turtledefs.js:558 +msgid "Save turtle artwork as PNG" +msgstr "" + +#: js/toolbar.js:150 +#: js/toolbar.js:205 +#: js/toolbar.js:261 +#: js/turtledefs.js:554 +msgid "Save turtle artwork as SVG" +msgstr "" + +#: js/toolbar.js:157 +#: js/toolbar.js:212 +#: js/toolbar.js:268 +msgid "한국인" +msgstr "" + +#: js/toolbar.js:174 +#: js/toolbar.js:230 +msgid "About Turtle Blocks" +msgstr "" + +#: js/toolbar.js:446 +#: js/toolbar.js:457 +#: js/toolbar.js:497 +msgid "Turtle Wrap Off" +msgstr "" + +#: js/toolbar.js:466 +#: js/toolbar.js:506 +msgid "Turtle Wrap On" +msgstr "" + +#: js/turtle-painter.js:1192 +#: js/turtle-painter.js:1193 +#: js/turtles.js:118 +#: js/block-verbose.js:1623 +#: js/block.js:1587 +#: js/lilypond.js:749 +#: js/lilypond.js:913 +#: js/lilypond.js:951 +#: js/logo.js:1184 +#: js/blocks/ActionBlocks.js:1223 +#: js/blocks/ProgramBlocks.js:1267 +msgid "start" +msgstr "" + +#: js/turtledefs.js:40 +#.TRANS: put the URL to the guide here, e.g., https://github.com/sugarlabs/turtleblocksjs/tree/master/guide/README.md +msgid "guide url" +msgstr "" + +#: js/turtledefs.js:85 +#: js/turtledefs.js:437 +msgid "Turtle Blocks is a Logo-inspired turtle that draws colorful pictures with snap-together visual-programming blocks." +msgstr "" + +#: js/turtledefs.js:118 +#: js/turtledefs.js:220 +msgid "search" +msgstr "" + +#: js/turtledefs.js:120 +#: js/turtledefs.js:222 +#: js/blocks/MeterBlocks.js:1343 +#: js/blocks/WidgetBlocks.js:522 +#.TRANS: musical meter (time signature), e.g., 4:4 +msgid "meter" +msgstr "" + +#: js/turtledefs.js:122 +#: js/turtledefs.js:224 +msgid "intervals" +msgstr "" + +#: js/turtledefs.js:124 +#: js/turtledefs.js:226 +msgid "ornament" +msgstr "" + +#: js/turtledefs.js:125 +#: js/turtledefs.js:227 +#: js/blocks/VolumeBlocks.js:362 +#: js/blocks/VolumeBlocks.js:502 +#: js/blocks/VolumeBlocks.js:545 +msgid "volume" +msgstr "" + +#: js/turtledefs.js:126 +#: js/turtledefs.js:228 +#: js/block-verbose.js:1700 +#: js/block-verbose.js:2626 +#: js/block.js:1664 +#: js/block.js:2554 +#: js/lilypond.js:732 +#: js/lilypond.js:897 +#: js/lilypond.js:941 +#: js/palette.js:577 +#: js/blocks/RhythmBlocks.js:766 +#: js/blocks/DrumBlocks.js:477 +#: js/blocks/VolumeBlocks.js:502 +#: js/widgets/phrasemaker.js:1038 +msgid "drum" +msgstr "" + +#: js/turtledefs.js:129 +#: js/turtledefs.js:231 +msgid "boxes" +msgstr "" + +#: js/turtledefs.js:130 +#: js/turtledefs.js:232 +msgid "widgets" +msgstr "" + +#: js/turtledefs.js:131 +#: js/turtledefs.js:233 +#: js/widgets/phrasemaker.js:1039 +msgid "graphics" +msgstr "" + +#: js/turtledefs.js:134 +#: js/turtledefs.js:236 +msgid "boolean" +msgstr "" + +#: js/turtledefs.js:137 +#: js/turtledefs.js:239 +#: js/blocks/HeapBlocks.js:59 +#: js/widgets/status.js:147 +msgid "heap" +msgstr "" + +#: js/turtledefs.js:138 +#: js/turtledefs.js:240 +#: js/blocks/DictBlocks.js:142 +#: js/blocks/ProgramBlocks.js:495 +msgid "dictionary" +msgstr "" + +#: js/turtledefs.js:139 +#: js/turtledefs.js:241 +msgid "ensemble" +msgstr "" + +#: js/turtledefs.js:140 +#: js/turtledefs.js:242 +msgid "extras" +msgstr "" + +#: js/turtledefs.js:142 +#: js/turtledefs.js:244 +#.TRANS: program as in computer program +#.TRANS: program as in computer program +msgid "program" +msgstr "" + +#: js/turtledefs.js:143 +#: js/turtledefs.js:245 +msgid "my blocks" +msgstr "" + +#: js/turtledefs.js:185 +#: js/turtledefs.js:281 +msgid "artwork" +msgstr "" + +#: js/turtledefs.js:185 +#: js/turtledefs.js:281 +msgid "logic" +msgstr "" + +#: js/turtledefs.js:185 +#: js/turtledefs.js:281 +msgid "music" +msgstr "" + +#: js/turtledefs.js:187 +#: js/turtledefs.js:463 +msgid "Music Blocks is a collection of tools for exploring fundamental musical concepts in a fun way." +msgstr "" + +#: js/turtledefs.js:436 +msgid "Welcome to Turtle Blocks" +msgstr "" + +#: js/turtledefs.js:438 +#: js/turtledefs.js:465 +#: js/turtledefs.js:774 +#: js/turtledefs.js:805 +msgid "The current version is" +msgstr "" + +#: js/turtledefs.js:446 +#: js/turtledefs.js:483 +msgid "Click the run button to run the project in fast mode." +msgstr "" + +#: js/turtledefs.js:452 +msgid "Stop the turtle." +msgstr "" + +#: js/turtledefs.js:454 +#: js/turtledefs.js:491 +msgid "You can also type Alt-S to stop." +msgstr "" + +#: js/turtledefs.js:462 +#: js/widgets/help.js:333 +msgid "Welcome to Music Blocks" +msgstr "" + +#: js/turtledefs.js:472 +#: js/widgets/help.js:334 +msgid "Meet Mr. Mouse!" +msgstr "" + +#: js/turtledefs.js:473 +msgid "Mr Mouse is our Music Blocks conductor." +msgstr "" + +#: js/turtledefs.js:475 +msgid "Mr Mouse encourages you to explore Music Blocks." +msgstr "" + +#: js/turtledefs.js:477 +msgid "Let us start our tour!" +msgstr "" + +#: js/turtledefs.js:489 +msgid "Stop the music (and the mice)." +msgstr "" + +#: js/turtledefs.js:499 +msgid "Record your project as video." +msgstr "" + +#: js/turtledefs.js:505 +msgid "Toggle Fullscreen mode." +msgstr "" + +#: js/turtledefs.js:511 +msgid "Initialize a new project." +msgstr "" + +#: js/turtledefs.js:517 +msgid "You can also load projects from the file system." +msgstr "" + +#: js/turtledefs.js:522 +#: planet/js/StringHelper.js:46 +msgid "Delete" +msgstr "" + +#: js/turtledefs.js:523 +msgid "To delete a block, just right-click on it, then you will be able to see the delete option" +msgstr "" + +#: js/turtledefs.js:528 +#: js/activity.js:2649 +#: planet/js/LocalCard.js:31 +msgid "Copy" +msgstr "" + +#: js/turtledefs.js:529 +msgid "To copy a block, just right-click on it, then you will be able to see the copy option" +msgstr "" + +#: js/turtledefs.js:534 +#: js/piemenus.js:3411 +msgid "Extract" +msgstr "" + +#: js/turtledefs.js:535 +msgid "To extract a block, just right-click on it, then you will be able to see the extract option" +msgstr "" + +#: js/turtledefs.js:542 +#: js/turtledefs.js:552 +#: js/turtledefs.js:573 +msgid "Save your project to a file." +msgstr "" + +#: js/turtledefs.js:549 +#: js/turtledefs.js:570 +msgid "save" +msgstr "" + +#: js/turtledefs.js:556 +#: js/turtledefs.js:577 +msgid "Save graphics from your project to as SVG." +msgstr "" + +#: js/turtledefs.js:560 +#: js/turtledefs.js:581 +msgid "Save graphics from your project as PNG." +msgstr "" + +#: js/turtledefs.js:564 +#: js/turtledefs.js:597 +msgid "Save block artwork as an SVG file." +msgstr "" + +#: js/turtledefs.js:585 +msgid "Save audio from your project as WAV." +msgstr "" + +#: js/turtledefs.js:589 +msgid "Save your project to as an ABC file." +msgstr "" + +#: js/turtledefs.js:593 +msgid "Save your project to as a Lilypond file." +msgstr "" + +#: js/turtledefs.js:604 +msgid "Load samples from server" +msgstr "" + +#: js/turtledefs.js:605 +msgid "This button opens a viewer for loading example projects." +msgstr "" + +#: js/turtledefs.js:611 +msgid "Palette buttons" +msgstr "" + +#: js/turtledefs.js:612 +msgid "This toolbar contains the palette buttons including Rhythm Pitch Tone Action and more." +msgstr "" + +#: js/turtledefs.js:614 +msgid "Click to show the palettes of blocks and drag blocks from the palettes onto the canvas to use them." +msgstr "" + +#: js/turtledefs.js:620 +msgid "Cartesian/Polar" +msgstr "" + +#: js/turtledefs.js:621 +msgid "Show or hide a coordinate grid." +msgstr "" + +#: js/turtledefs.js:626 +#: js/turtles.js:902 +msgid "Clean" +msgstr "" + +#: js/turtledefs.js:627 +msgid "Clear the screen and return the mice to their initial positions." +msgstr "" + +#: js/turtledefs.js:632 +#: js/turtles.js:955 +msgid "Collapse" +msgstr "" + +#: js/turtledefs.js:633 +msgid "Collapse the graphics window." msgstr "" -#: js/palette.js:571 -msgid "grid" +#: js/turtledefs.js:638 +#: js/activity.js:5684 +msgid "Home" msgstr "" -#: js/palette.js:577 -#: js/block.js:1540 -#: js/block.js:2343 -#: js/turtledefs.js:126 -#: js/turtledefs.js:228 -#: js/lilypond.js:740 -#: js/lilypond.js:905 -#: js/lilypond.js:949 -#: js/DrumBlocks.js:486 -#: js/RhythmBlocks.js:766 -#: js/VolumeBlocks.js:502 -#: js/phrasemaker.js:823 -msgid "drum" +#: js/turtledefs.js:639 +msgid "Return all blocks to the center of the screen." msgstr "" -#: js/palette.js:580 -msgid "effect" +#: js/turtledefs.js:644 +msgid "Show/hide blocks" msgstr "" -#: js/palette.js:586 -msgid "sargam" +#: js/turtledefs.js:645 +msgid "Hide or show the blocks and the palettes." msgstr "" -#: js/palette.js:589 -#: js/activity.js:1833 -#: js/RhythmBlocks.js:923 -#: js/PitchBlocks.js:442 -#: js/PitchBlocks.js:1748 -#.TRANS: a numeric mapping of the notes in an octave based on the musical mode -msgid "scale degree" +#: js/turtledefs.js:650 +msgid "Expand/collapse collapsable blocks" msgstr "" -#: js/palette.js:592 -#: js/activity.js:1860 -msgid "mode name" +#: js/turtledefs.js:651 +msgid "Expand or collapse start and action stacks." msgstr "" -#: js/palette.js:595 -#: js/activity.js:1839 -msgid "invert mode" +#: js/turtledefs.js:658 +#: js/activity.js:5704 +msgid "Decrease block size" msgstr "" -#: js/palette.js:598 -#: js/activity.js:1836 -msgid "voice name" +#: js/turtledefs.js:659 +msgid "Decrease the size of the blocks." msgstr "" -#: js/palette.js:601 -#: js/PitchBlocks.js:1181 -msgid "custom pitch" +#: js/turtledefs.js:664 +#: js/activity.js:5710 +msgid "Increase block size" msgstr "" -#: js/palette.js:605 -#: js/block.js:1456 -#: js/block.js:1575 -#: js/WidgetBlocks.js:218 -#: js/IntervalsBlocks.js:63 -msgid "temperament" +#: js/turtledefs.js:665 +msgid "Increase the size of the blocks." msgstr "" -#: js/palette.js:609 -msgid "accidental" +#: js/turtledefs.js:670 +msgid "Expand/collapse option toolbar" msgstr "" -#: js/palette.js:615 -#: js/activity.js:1866 -msgid "interval name" +#: js/turtledefs.js:671 +msgid "Click this button to expand or collapse the auxillary toolbar." msgstr "" -#: js/palette.js:633 -#: js/PitchBlocks.js:405 -msgid "pitch converter" +#: js/turtledefs.js:676 +msgid "Run slow" msgstr "" -#: js/rubrics.js:522 -#: js/turtledefs.js:119 -#: js/turtledefs.js:221 -#: js/RhythmBlockPaletteBlocks.js:52 -#: js/RhythmBlockPaletteBlocks.js:233 -#: js/ProgramBlocks.js:745 -#: js/rhythmruler.js:1670 -#: js/rhythmruler.js:1677 -#: js/rhythmruler.js:1745 -#: js/rhythmruler.js:1752 -#: js/rhythmruler.js:1830 -#.TRANS: an arrangement of notes based on duration -msgid "rhythm" +#: js/turtledefs.js:677 +msgid "Click to run the project in slow mode." msgstr "" -#: js/rubrics.js:523 -#: js/block.js:2339 -#: js/turtledefs.js:121 -#: js/turtledefs.js:223 -#: js/IntervalsBlocks.js:63 -#: js/PitchBlocks.js:1801 -#: js/PitchBlocks.js:1814 -#: js/SensorsBlocks.js:178 -#: js/phrasemaker.js:821 -#: js/musickeyboard.js:1653 -#.TRANS: pitch number -#.TRANS: we specify pitch in terms of a name and an octave. The name can be CDEFGAB or Do Re Mi Fa Sol La Ti. Octave is a number between 1 and 8. -msgid "pitch" +#: js/turtledefs.js:683 +msgid "Click to run the project step by step." msgstr "" -#: js/rubrics.js:524 -#: js/turtledefs.js:123 -#: js/turtledefs.js:225 -msgid "tone" +#: js/turtledefs.js:690 +msgid "Display statistics about your Music project." msgstr "" -#: js/rubrics.js:525 -#: js/lilypond.js:613 -#: js/lilypond.js:912 -#: js/lilypond.js:918 -#: js/lilypond.js:956 -msgid "mouse" +#: js/turtledefs.js:697 +msgid "Delete a selected plugin." msgstr "" -#: js/rubrics.js:526 -#: js/turtledefs.js:132 -#: js/turtledefs.js:234 -#: js/phrasemaker.js:825 -msgid "pen" +#: js/turtledefs.js:704 +msgid "Enable scrolling" msgstr "" -#: js/rubrics.js:527 -#: js/turtledefs.js:133 -#: js/turtledefs.js:235 -#: js/NumberBlocks.js:905 -#: js/PitchBlocks.js:1679 -#: js/PitchBlocks.js:1720 -msgid "number" +#: js/turtledefs.js:705 +msgid "You can scroll the blocks on the canvas." msgstr "" -#: js/rubrics.js:528 -#: js/turtledefs.js:127 -#: js/turtledefs.js:229 -msgid "flow" +#: js/turtledefs.js:714 +msgid "Wrap Turtle" msgstr "" -#: js/rubrics.js:530 -#: js/turtledefs.js:136 -#: js/turtledefs.js:238 -msgid "sensors" +#: js/turtledefs.js:715 +msgid "Turn Turtle wrapping On or Off." msgstr "" -#: js/rubrics.js:531 -#: js/turtledefs.js:135 -#: js/turtledefs.js:237 -#: js/MediaBlocks.js:930 -msgid "media" +#: js/turtledefs.js:725 +msgid "Restore blocks from the trash." msgstr "" -#: js/rubrics.js:532 -msgid "mice" +#: js/turtledefs.js:732 +msgid "Switch mode" msgstr "" -#: js/macros.js:711 -#: js/musicutils.js:783 -#: js/synthutils.js:181 -#.TRANS: animal sound effect -msgid "duck" +#: js/turtledefs.js:733 +msgid "Switch between beginner and advance modes." msgstr "" -#: js/toolbar.js:46 -#: js/toolbar.js:107 -msgid "About Music Blocks" +#: js/turtledefs.js:739 +msgid "Select your language preference." msgstr "" -#: js/toolbar.js:47 -#: js/toolbar.js:108 -#: js/toolbar.js:172 -#: js/toolbar.js:228 -#: js/turtledefs.js:445 -#: js/turtledefs.js:482 -#: js/activity.js:2281 -#: js/activity.js:2289 -#: js/activity.js:2520 -#: js/modewidget.js:77 -#: js/pitchstaircase.js:121 -#: js/phrasemaker.js:302 -#: js/phrasemaker.js:312 -#: js/phrasemaker.js:314 -#: js/phrasemaker.js:3901 -#: js/phrasemaker.js:4061 -#: js/phrasemaker.js:4066 -#: js/phrasemaker.js:4068 -#: js/phrasemaker.js:4183 -#: js/pitchdrummatrix.js:81 -#: js/pitchdrummatrix.js:574 -#: js/pitchdrummatrix.js:576 -#: js/pitchdrummatrix.js:628 -#: js/pitchdrummatrix.js:630 -#: js/pitchdrummatrix.js:645 -#: js/pitchdrummatrix.js:647 -#: js/pitchdrummatrix.js:674 -#: js/pitchdrummatrix.js:676 -#: js/temperament.js:477 -#: js/temperament.js:480 -#: js/temperament.js:540 -#: js/temperament.js:542 -#: js/temperament.js:1835 -#: js/temperament.js:1837 -#: js/temperament.js:1986 -#: js/temperament.js:1988 -#: js/musickeyboard.js:522 -#: js/musickeyboard.js:682 -#: js/musickeyboard.js:684 -#: js/musickeyboard.js:756 -#: js/musickeyboard.js:758 -#: js/rhythmruler.js:298 -#: js/rhythmruler.js:300 -#: js/rhythmruler.js:314 -#: js/rhythmruler.js:316 -#: js/sampler.js:96 -#: js/sampler.js:98 -#: js/sampler.js:229 -#: js/sampler.js:235 -#: js/sampler.js:237 -#: js/tempo.js:84 -#: js/tempo.js:86 -#: js/timbre.js:432 -#: js/timbre.js:434 -#: js/timbre.js:465 -#: js/timbre.js:467 -#: js/timbre.js:746 -#: js/meterwidget.js:80 -#: js/arpeggio.js:90 -#: js/arpeggio.js:547 -#: js/arpeggio.js:549 -#: js/arpeggio.js:644 -#: js/arpeggio.js:646 -msgid "Play" +#: js/turtledefs.js:745 +msgid "Keyboard shortcuts" msgstr "" -#: js/toolbar.js:48 -#: js/toolbar.js:109 -#: js/toolbar.js:173 -#: js/toolbar.js:229 -#: js/turtledefs.js:451 -#: js/turtledefs.js:488 -#: js/activity.js:2297 -#: js/modewidget.js:99 -#: js/modewidget.js:101 -#: js/phrasemaker.js:323 -#: js/phrasemaker.js:325 -#: js/pitchdrummatrix.js:561 -#: js/pitchdrummatrix.js:563 -#: js/temperament.js:1820 -#: js/temperament.js:1822 -#: js/meterwidget.js:101 -#: js/meterwidget.js:103 -#: js/arpeggio.js:534 -#: js/arpeggio.js:536 -msgid "Stop" +#: js/turtledefs.js:746 +msgid "You can type d to create a do block and r to create a re block etc." msgstr "" -#: js/toolbar.js:49 -#: js/toolbar.js:110 -#: js/toolbar.js:174 -#: js/toolbar.js:230 -#: js/turtledefs.js:498 -msgid "Record" +#: js/turtledefs.js:753 +msgid "Show these messages." msgstr "" -#: js/toolbar.js:50 -#: js/toolbar.js:51 -msgid "Full screen" +#: js/turtledefs.js:759 +#: js/turtledefs.js:790 +#: js/widgets/help.js:335 +msgid "Guide" msgstr "" -#: js/toolbar.js:52 -#: js/toolbar.js:112 -#: js/toolbar.js:177 -#: js/toolbar.js:232 -#: js/turtledefs.js:504 -msgid "Toggle Fullscreen" +#: js/turtledefs.js:760 +msgid "A detailed guide to Turtle Blocks is available." msgstr "" -#: js/toolbar.js:53 -#: js/toolbar.js:113 -#: js/toolbar.js:178 -#: js/toolbar.js:233 -#: js/turtledefs.js:510 -#: js/StringHelper.js:33 -msgid "New project" +#: js/turtledefs.js:764 +msgid "Turtle Blocks Guide" msgstr "" -#: js/toolbar.js:54 -#: js/toolbar.js:114 -#: js/toolbar.js:179 -#: js/toolbar.js:234 -#: js/turtledefs.js:516 -msgid "Load project from file" +#: js/turtledefs.js:767 +#: js/turtledefs.js:798 +#: js/widgets/help.js:336 +msgid "About" msgstr "" -#: js/toolbar.js:55 -#: js/toolbar.js:115 -#: js/toolbar.js:116 -#: js/toolbar.js:180 -#: js/toolbar.js:235 -#: js/turtledefs.js:541 -#: js/turtledefs.js:550 -#: js/turtledefs.js:571 -msgid "Save project" +#: js/turtledefs.js:768 +msgid "Turtle Blocks is an open source collection of tools for exploring musical concepts." msgstr "" -#: js/toolbar.js:56 -#: js/toolbar.js:75 -#: js/toolbar.js:77 -#: js/toolbar.js:135 -#: js/toolbar.js:144 -#: js/toolbar.js:146 -#: js/toolbar.js:181 -#: js/toolbar.js:199 -#: js/toolbar.js:201 -#: js/toolbar.js:236 -#: js/toolbar.js:254 -#: js/toolbar.js:256 -msgid "Save project as HTML" +#: js/turtledefs.js:770 +msgid "A full list of contributors can be found in the Turtle Blocks GitHub repository." +msgstr "" + +#: js/turtledefs.js:772 +msgid "Turtle Blocks is licensed under the AGPL." +msgstr "" + +#: js/turtledefs.js:780 +msgid "Turtle Blocks GitHub repository" +msgstr "" + +#: js/turtledefs.js:783 +#: js/turtledefs.js:814 +#: js/widgets/help.js:337 +#: js/widgets/help.js:359 +msgid "Congratulations." +msgstr "" + +#: js/turtledefs.js:784 +msgid "You have finished the tour. Please enjoy Turtle Blocks!" +msgstr "" + +#: js/turtledefs.js:791 +msgid "A detailed guide to Music Blocks is available." +msgstr "" + +#: js/turtledefs.js:799 +msgid "Music Blocks is an open source collection of tools for exploring musical concepts." +msgstr "" + +#: js/turtledefs.js:801 +msgid "A full list of contributors can be found in the Music Blocks GitHub repository." +msgstr "" + +#: js/turtledefs.js:803 +msgid "Music Blocks is licensed under the AGPL." +msgstr "" + +#: js/turtledefs.js:811 +msgid "Music Blocks GitHub repository" +msgstr "" + +#: js/turtledefs.js:815 +msgid "You have finished the tour. Please enjoy Music Blocks!" +msgstr "" + +#: js/turtles.js:882 +msgid "Grid" +msgstr "" + +#: js/turtles.js:1024 +msgid "Expand" +msgstr "" + +#: js/block-verbose.js:1616 +#: js/block-verbose.js:1735 +#: js/block.js:1580 +#: js/block.js:1699 +#: js/palette.js:605 +#: js/blocks/IntervalsBlocks.js:63 +#: js/blocks/WidgetBlocks.js:259 +msgid "temperament" +msgstr "" + +#: js/block-verbose.js:1630 +#: js/block.js:1594 +msgid "matrix" msgstr "" -#: js/toolbar.js:57 -#: js/toolbar.js:117 -#: js/toolbar.js:182 -#: js/toolbar.js:237 -msgid "Find and share projects" +#: js/block-verbose.js:1637 +#: js/block.js:1601 +#: js/blocks/WidgetBlocks.js:1509 +#: plugins/rodi.rtp:324 +msgid "status" msgstr "" -#: js/toolbar.js:58 -#: js/toolbar.js:118 -#: js/toolbar.js:183 -#: js/toolbar.js:238 -msgid "Offline. Sharing is unavailable" +#: js/block-verbose.js:1644 +#: js/block.js:1608 +msgid "drum mapper" msgstr "" -#: js/toolbar.js:59 -#: js/toolbar.js:119 -#: js/toolbar.js:184 -#: js/toolbar.js:239 -msgid "Auxiliary menu" +#: js/block-verbose.js:1651 +#: js/block.js:1615 +msgid "ruler" msgstr "" -#: js/toolbar.js:61 -#: js/toolbar.js:121 -#: js/toolbar.js:186 -#: js/toolbar.js:241 -msgid "Run slowly" +#: js/block-verbose.js:1658 +#: js/block.js:1622 +#: js/blocks/WidgetBlocks.js:397 +#.TRANS: timbre is the character or quality of a musical sound +msgid "timbre" msgstr "" -#: js/toolbar.js:62 -#: js/toolbar.js:122 -#: js/toolbar.js:187 -#: js/toolbar.js:242 -#: js/turtledefs.js:682 -msgid "Run step by step" +#: js/block-verbose.js:1665 +#: js/block.js:1629 +msgid "stair" msgstr "" -#: js/toolbar.js:63 -#: js/toolbar.js:123 -#: js/toolbar.js:188 -#: js/toolbar.js:243 -#: js/turtledefs.js:689 -msgid "Display statistics" +#: js/block-verbose.js:1672 +#: js/block.js:1636 +#: js/blocks/WidgetBlocks.js:707 +#.TRANS: the speed at music is should be played. +msgid "tempo" msgstr "" -#: js/toolbar.js:64 -#: js/toolbar.js:124 -#: js/toolbar.js:189 -#: js/toolbar.js:244 -msgid "Load plugin" +#: js/block-verbose.js:1679 +#: js/block-verbose.js:1742 +#: js/block.js:1643 +#: js/block.js:1706 +#: js/blocks/IntervalsBlocks.js:1464 +#.TRANS: mode, e.g., Major in C Major +msgid "mode" msgstr "" -#: js/toolbar.js:65 -#: js/toolbar.js:125 -#: js/toolbar.js:190 -#: js/toolbar.js:245 -#: js/turtledefs.js:696 -msgid "Delete plugin" +#: js/block-verbose.js:1686 +#: js/block.js:1650 +msgid "slider" msgstr "" -#: js/toolbar.js:66 -#: js/toolbar.js:126 -#: js/toolbar.js:191 -#: js/toolbar.js:246 -msgid "Enable horizontal scrolling" +#: js/block-verbose.js:1693 +#: js/block.js:1657 +#: js/blocks/SensorsBlocks.js:1001 +msgid "keyboard" msgstr "" -#: js/toolbar.js:67 -#: js/toolbar.js:127 -#: js/toolbar.js:192 -#: js/toolbar.js:247 -msgid "Disable horizontal scrolling" +#: js/block-verbose.js:1707 +#: js/block.js:1671 +#: js/blocks/WidgetBlocks.js:1190 +#: js/blocks/WidgetBlocks.js:1228 +#.TRANS: widget for subdividing a measure into distinct rhythmic elements +msgid "rhythm maker" msgstr "" -#: js/toolbar.js:68 -#: js/toolbar.js:128 -#: js/toolbar.js:193 -#: js/toolbar.js:248 -#: js/LocalCard.js:54 -#: js/StringHelper.js:71 -msgid "Merge with current project" +#: js/block-verbose.js:1714 +#: js/block-verbose.js:2457 +#: js/block-verbose.js:2514 +#: js/block.js:1678 +#: js/block.js:2385 +#: js/block.js:2442 +#: js/blocks/MeterBlocks.js:1367 +#: js/blocks/OrnamentBlocks.js:220 +#: js/blocks/OrnamentBlocks.js:312 +#: js/blocks/RhythmBlocks.js:33 +#: js/blocks/RhythmBlocks.js:356 +#: js/blocks/RhythmBlocks.js:766 +#: js/blocks/RhythmBlocks.js:806 +#: js/blocks/RhythmBlockPaletteBlocks.js:70 +#: js/blocks/RhythmBlockPaletteBlocks.js:252 +#: js/blocks/RhythmBlockPaletteBlocks.js:485 +#: js/blocks/RhythmBlockPaletteBlocks.js:554 +#: js/blocks/RhythmBlockPaletteBlocks.js:605 +#: js/blocks/RhythmBlockPaletteBlocks.js:875 +#: js/turtleactions/DictActions.js:85 +#: js/widgets/phrasemaker.js:942 +#: js/widgets/phrasemaker.js:2656 +#: js/widgets/phrasemaker.js:2699 +#: js/widgets/phrasemaker.js:2810 +#.TRANS: the value (e.g., 1/4 note) of the note being played. +msgid "note value" msgstr "" -#: js/toolbar.js:69 -#: js/toolbar.js:129 -msgid "Set Pitch Preview" +#: js/block-verbose.js:1721 +#: js/block-verbose.js:2382 +#: js/block-verbose.js:2405 +#: js/block.js:1685 +#: js/block.js:2310 +#: js/block.js:2333 +#: js/blocks/IntervalsBlocks.js:1071 +#: js/blocks/OrnamentBlocks.js:312 +#.TRANS: calculate a relative step between notes based on semi-tones +msgid "scalar interval" msgstr "" -#: js/toolbar.js:70 -#: js/toolbar.js:130 -#: js/toolbar.js:194 -#: js/toolbar.js:249 -msgid "Toggle JavaScript Editor" +#: js/block-verbose.js:1728 +#: js/block.js:1692 +#: js/blocks/RhythmBlocks.js:148 +msgid "milliseconds" msgstr "" -#: js/toolbar.js:71 -#: js/toolbar.js:131 -#: js/toolbar.js:195 -#: js/toolbar.js:250 -#: js/turtledefs.js:724 -msgid "Restore" +#: js/block-verbose.js:2455 +#: js/block-verbose.js:2459 +#: js/block-verbose.js:2512 +#: js/block-verbose.js:2628 +#: js/block.js:2383 +#: js/block.js:2387 +#: js/block.js:2440 +#: js/block.js:2556 +#: js/blocks/RhythmBlocks.js:712 +#: js/blocks/ProgramBlocks.js:1273 +#: js/widgets/rhythmruler.js:1183 +#: js/widgets/rhythmruler.js:1329 +msgid "silence" msgstr "" -#: js/toolbar.js:72 -#: js/toolbar.js:132 -#: js/toolbar.js:196 -#: js/toolbar.js:251 -msgid "Switch to beginner mode" +#: js/block-verbose.js:2548 +#: js/block-verbose.js:3492 +#: js/block-verbose.js:3509 +#: js/activity.js:2718 +#: js/activity.js:2769 +#: js/block.js:2476 +#: js/block.js:3416 +#: js/block.js:3433 +#: js/utils/musicutils.js:3780 +#: js/utils/musicutils.js:5273 +#.TRANS: the note names must be separated by single spaces +#.TRANS: the note names must be separated by single spaces +#.TRANS: the note names must be separated by single spaces +msgid "ti la sol fa mi re do" msgstr "" -#: js/toolbar.js:73 -#: js/toolbar.js:133 -#: js/toolbar.js:197 -#: js/toolbar.js:252 -msgid "Switch to advanced mode" +#: js/block-verbose.js:2616 +#: js/block.js:2544 +#.TRANS: scalar step +#.TRANS: scalar step +msgid "down" msgstr "" -#: js/toolbar.js:74 -#: js/toolbar.js:134 -#: js/toolbar.js:143 -#: js/toolbar.js:198 -#: js/toolbar.js:253 -#: js/turtledefs.js:738 -msgid "Select language" +#: js/block-verbose.js:2617 +#: js/block.js:2545 +msgid "up" msgstr "" -#: js/toolbar.js:76 -#: js/toolbar.js:79 -#: js/toolbar.js:137 -#: js/turtledefs.js:579 -msgid "Save mouse artwork as PNG" +#: js/block-verbose.js:3026 +#: js/block.js:2950 +msgid "Silence block cannot be removed." msgstr "" -#: js/toolbar.js:78 -#: js/toolbar.js:136 -#: js/turtledefs.js:575 -msgid "Save mouse artwork as SVG" +#: js/block-verbose.js:3824 +#: js/block.js:3748 +#: js/blocks.js:2607 +#: js/blocks.js:3218 +#: js/palette.js:618 +#: js/blocks/BooleanBlocks.js:77 +#: js/blocks/BooleanBlocks.js:167 +#: js/blocks/BooleanBlocks.js:251 +#: js/blocks/BooleanBlocks.js:335 +#: js/blocks/BooleanBlocks.js:433 +#: js/blocks/BooleanBlocks.js:539 +#: js/blocks/BooleanBlocks.js:640 +#: js/blocks/BooleanBlocks.js:741 +#: js/blocks/BooleanBlocks.js:847 +#: js/blocks/BooleanBlocks.js:948 +#: js/blocks/BooleanBlocks.js:1033 +#: js/blocks/SensorsBlocks.js:910 +msgid "true" msgstr "" -#: js/toolbar.js:80 -#: js/toolbar.js:138 -#: js/turtledefs.js:583 -msgid "Save music as WAV" +#: js/block-verbose.js:3824 +#: js/block.js:3748 +#: js/blocks.js:2609 +#: js/blocks.js:3220 +#: js/blocks/BooleanBlocks.js:79 +#: js/blocks/BooleanBlocks.js:169 +#: js/blocks/BooleanBlocks.js:253 +#: js/blocks/BooleanBlocks.js:337 +#: js/blocks/BooleanBlocks.js:435 +#: js/blocks/BooleanBlocks.js:541 +#: js/blocks/BooleanBlocks.js:642 +#: js/blocks/BooleanBlocks.js:743 +#: js/blocks/BooleanBlocks.js:849 +#: js/blocks/BooleanBlocks.js:950 +#: js/blocks/SensorsBlocks.js:912 +msgid "false" msgstr "" -#: js/toolbar.js:81 -#: js/toolbar.js:139 -#: js/turtledefs.js:587 -msgid "Save sheet music as ABC" +#: js/block-verbose.js:3835 +#: js/block-verbose.js:3848 +#: js/block.js:3759 +#: js/block.js:3772 +#: js/blocks/ExtrasBlocks.js:615 +msgid "Cartesian" msgstr "" -#: js/toolbar.js:82 -#: js/toolbar.js:140 -#: js/turtledefs.js:591 -msgid "Save sheet music as Lilypond" +#: js/block-verbose.js:3836 +#: js/block-verbose.js:3849 +#: js/block.js:3760 +#: js/block.js:3773 +#: js/blocks/ExtrasBlocks.js:619 +msgid "polar" msgstr "" -#: js/toolbar.js:83 -msgid "Save sheet music as MusicXML" +#: js/block-verbose.js:3837 +#: js/block-verbose.js:3850 +#: js/block.js:3761 +#: js/block.js:3774 +#: js/blocks/ExtrasBlocks.js:623 +msgid "Cartesian+polar" msgstr "" -#: js/toolbar.js:84 -#: js/toolbar.js:141 -#: js/toolbar.js:149 -#: js/toolbar.js:204 -#: js/toolbar.js:259 -#: js/turtledefs.js:562 -#: js/turtledefs.js:595 -msgid "Save block artwork as SVG" +#: js/block-verbose.js:3838 +#: js/block-verbose.js:3857 +#: js/block.js:3762 +#: js/block.js:3781 +#: js/blocks/ExtrasBlocks.js:652 +msgid "none" msgstr "" -#: js/toolbar.js:85 -#: js/toolbar.js:142 -#: js/toolbar.js:150 -#: js/toolbar.js:205 -#: js/toolbar.js:260 -msgid "Confirm" +#: js/block-verbose.js:3851 +#: js/block.js:3775 +#: js/blocks/ExtrasBlocks.js:628 +msgid "treble" msgstr "" -#: js/toolbar.js:86 -#: js/toolbar.js:151 -#: js/toolbar.js:206 -#: js/toolbar.js:261 -msgid "English (United States)" +#: js/block-verbose.js:3852 +#: js/block.js:3776 +#: js/blocks/ExtrasBlocks.js:632 +msgid "grand staff" msgstr "" -#: js/toolbar.js:87 -#: js/toolbar.js:152 -#: js/toolbar.js:207 -#: js/toolbar.js:262 -msgid "English (United Kingdom)" +#: js/block-verbose.js:3853 +#: js/block.js:3777 +#: js/blocks/ExtrasBlocks.js:636 +msgid "mezzo-soprano" msgstr "" -#: js/toolbar.js:88 -#: js/toolbar.js:153 -#: js/toolbar.js:208 -#: js/toolbar.js:263 -msgid "日本語" +#: js/block-verbose.js:3854 +#: js/block.js:3778 +#: js/blocks/ExtrasBlocks.js:640 +msgid "alto" msgstr "" -#: js/toolbar.js:89 -msgid "한국어" +#: js/block-verbose.js:3855 +#: js/block.js:3779 +#: js/blocks/ExtrasBlocks.js:644 +msgid "tenor" msgstr "" -#: js/toolbar.js:90 -#: js/toolbar.js:155 -#: js/toolbar.js:210 -#: js/toolbar.js:265 -msgid "español" +#: js/block-verbose.js:3856 +#: js/block.js:3780 +#: js/utils/musicutils.js:1115 +#: js/utils/synthutils.js:80 +#: js/blocks/ExtrasBlocks.js:648 +#.TRANS: musical instrument +msgid "bass" msgstr "" -#: js/toolbar.js:91 -#: js/toolbar.js:156 -#: js/toolbar.js:211 -#: js/toolbar.js:266 -msgid "português" +#: js/block-verbose.js:3901 +#: js/block.js:3825 +#: js/blocks.js:2600 +#: js/blocks.js:3211 +msgid "on2" msgstr "" -#: js/toolbar.js:92 -#: js/toolbar.js:157 -#: js/toolbar.js:212 -#: js/toolbar.js:267 -msgid "にほんご" +#: js/block-verbose.js:3903 +#: js/block.js:3827 +#: js/blocks.js:2602 +#: js/blocks.js:3213 +msgid "off" msgstr "" -#: js/toolbar.js:93 -#: js/toolbar.js:158 -#: js/toolbar.js:213 -#: js/toolbar.js:268 -msgid "中文" +#: js/block-verbose.js:4470 +#: js/block.js:4394 +msgid "Not a number" msgstr "" -#: js/toolbar.js:94 -#: js/toolbar.js:159 -#: js/toolbar.js:214 -#: js/toolbar.js:269 -msgid "ภาษาไทย" +#: js/block-verbose.js:4477 +#: js/block.js:4401 +msgid "Octave value must be between 1 and 10." msgstr "" -#: js/toolbar.js:95 -#: js/toolbar.js:160 -#: js/toolbar.js:215 -#: js/toolbar.js:270 -msgid "aymara" +#: js/block-verbose.js:4485 +#: js/block.js:4409 +msgid "Numbers can have at most 10 digits." msgstr "" -#: js/toolbar.js:96 -#: js/toolbar.js:161 -#: js/toolbar.js:216 -#: js/toolbar.js:271 -msgid "quechua" +#: js/activity.js:390 +#: js/activity.js:395 +msgid "Search for blocks" msgstr "" -#: js/toolbar.js:97 -#: js/toolbar.js:162 -#: js/toolbar.js:217 -#: js/toolbar.js:272 -msgid "guarani" +#: js/activity.js:1413 +msgid "Refresh your browser to change to advanced mode." msgstr "" -#: js/toolbar.js:98 -#: js/toolbar.js:163 -#: js/toolbar.js:218 -#: js/toolbar.js:273 -msgid "हिंदी" +#: js/activity.js:1418 +msgid "Refresh your browser to change to beginner mode." msgstr "" -#: js/toolbar.js:99 -#: js/toolbar.js:165 -#: js/toolbar.js:219 -#: js/toolbar.js:275 -msgid "igbo" +#: js/activity.js:1477 +msgid "Catching mice" +msgstr "" + +#: js/activity.js:1478 +msgid "Cleaning the instruments" +msgstr "" + +#: js/activity.js:1479 +msgid "Testing key pieces" +msgstr "" + +#: js/activity.js:1480 +msgid "Sight-reading" +msgstr "" + +#: js/activity.js:1481 +msgid "Combining math and music" msgstr "" -#: js/toolbar.js:100 -#: js/toolbar.js:166 -#: js/toolbar.js:220 -#: js/toolbar.js:276 -msgid "عربى" +#: js/activity.js:1482 +msgid "Generating more blocks" msgstr "" -#: js/toolbar.js:101 -#: js/toolbar.js:164 -#: js/toolbar.js:221 -#: js/toolbar.js:274 -msgid "తెలుగు" +#: js/activity.js:1483 +msgid "Do Re Mi Fa Sol La Ti Do" msgstr "" -#: js/toolbar.js:102 -#: js/toolbar.js:167 -#: js/toolbar.js:222 -#: js/toolbar.js:277 -msgid "עִברִית" +#: js/activity.js:1484 +msgid "Tuning string instruments" msgstr "" -#: js/toolbar.js:111 -#: js/toolbar.js:175 -#: js/toolbar.js:176 -#: js/toolbar.js:231 -msgid "Full Screen" +#: js/activity.js:1485 +msgid "Pressing random keys" msgstr "" -#: js/toolbar.js:145 -#: js/toolbar.js:148 -#: js/toolbar.js:200 -#: js/toolbar.js:203 -#: js/toolbar.js:255 -#: js/toolbar.js:258 -#: js/turtledefs.js:558 -msgid "Save turtle artwork as PNG" +#: js/activity.js:1663 +msgid "plugins will be removed upon restart." msgstr "" -#: js/toolbar.js:147 -#: js/toolbar.js:202 -#: js/toolbar.js:257 -#: js/turtledefs.js:554 -msgid "Save turtle artwork as SVG" +#: js/activity.js:1672 +msgid "show Cartesian" msgstr "" -#: js/toolbar.js:154 -#: js/toolbar.js:209 -#: js/toolbar.js:264 -msgid "한국인" +#: js/activity.js:2211 +#: js/palette.js:589 +#: js/blocks/RhythmBlocks.js:923 +#: js/blocks/PitchBlocks.js:442 +#: js/blocks/PitchBlocks.js:1786 +#.TRANS: a numeric mapping of the notes in an octave based on the musical mode +msgid "scale degree" msgstr "" -#: js/toolbar.js:171 -#: js/toolbar.js:227 -msgid "About Turtle Blocks" +#: js/activity.js:2214 +#: js/palette.js:598 +msgid "voice name" msgstr "" -#: js/toolbar.js:429 -#: js/toolbar.js:440 -msgid "Turtle Wrap Off" +#: js/activity.js:2217 +#: js/palette.js:595 +msgid "invert mode" msgstr "" -#: js/toolbar.js:442 -msgid "Turtle Wrap On" +#: js/activity.js:2220 +msgid "output tools" msgstr "" -#: js/block.js:1470 -msgid "matrix" +#: js/activity.js:2223 +msgid "custom note" msgstr "" -#: js/block.js:1477 -#: js/WidgetBlocks.js:1226 -#: plugins/rodi.rtp:324 -msgid "status" +#: js/activity.js:2226 +msgid "accidental name" msgstr "" -#: js/block.js:1484 -msgid "drum mapper" +#: js/activity.js:2229 +#: js/blocks/PitchBlocks.js:855 +msgid "east indian solfege" msgstr "" -#: js/block.js:1491 -msgid "ruler" +#: js/activity.js:2232 +#: js/blocks/PitchBlocks.js:869 +msgid "note name" msgstr "" -#: js/block.js:1498 -#: js/WidgetBlocks.js:327 -#.TRANS: timbre is the character or quality of a musical sound -msgid "timbre" +#: js/activity.js:2235 +#: js/blocks/IntervalsBlocks.js:94 +msgid "temperament name" msgstr "" -#: js/block.js:1505 -msgid "stair" +#: js/activity.js:2238 +#: js/palette.js:592 +msgid "mode name" msgstr "" -#: js/block.js:1512 -#: js/WidgetBlocks.js:577 -#.TRANS: the speed at music is should be played. -msgid "tempo" +#: js/activity.js:2241 +msgid "chord name" msgstr "" -#: js/block.js:1519 -#: js/block.js:1582 -#: js/IntervalsBlocks.js:1268 -#.TRANS: mode, e.g., Major in C Major -msgid "mode" +#: js/activity.js:2244 +#: js/palette.js:615 +msgid "interval name" msgstr "" -#: js/block.js:1526 -msgid "slider" +#: js/activity.js:2247 +msgid "filter type" msgstr "" -#: js/block.js:1533 -#: js/SensorsBlocks.js:1001 -msgid "keyboard" +#: js/activity.js:2250 +msgid "oscillator type" msgstr "" -#: js/block.js:1547 -#: js/WidgetBlocks.js:957 -#: js/WidgetBlocks.js:988 -#.TRANS: widget for subdividing a measure into distinct rhythmic elements -msgid "rhythm maker" +#: js/activity.js:2253 +#: js/blocks.js:2479 +#: js/blocks.js:2487 +msgid "audio file" msgstr "" -#: js/block.js:1554 -#: js/block.js:2182 -#: js/block.js:2236 -#: js/RhythmBlockPaletteBlocks.js:70 -#: js/RhythmBlockPaletteBlocks.js:251 -#: js/RhythmBlockPaletteBlocks.js:484 -#: js/RhythmBlockPaletteBlocks.js:553 -#: js/RhythmBlockPaletteBlocks.js:604 -#: js/RhythmBlockPaletteBlocks.js:874 -#: js/RhythmBlocks.js:33 -#: js/RhythmBlocks.js:356 -#: js/RhythmBlocks.js:766 -#: js/RhythmBlocks.js:806 -#: js/OrnamentBlocks.js:220 -#: js/OrnamentBlocks.js:312 -#: js/MeterBlocks.js:1367 -#: js/DictActions.js:85 -#: js/phrasemaker.js:731 -#: js/phrasemaker.js:2393 -#: js/phrasemaker.js:2436 -#: js/phrasemaker.js:2534 -#.TRANS: the value (e.g., 1/4 note) of the note being played. -msgid "note value" +#: js/activity.js:2256 +#: js/blocks/DrumBlocks.js:32 +msgid "noise name" msgstr "" -#: js/block.js:1561 -#: js/block.js:2110 -#: js/block.js:2133 -#: js/IntervalsBlocks.js:875 -#: js/OrnamentBlocks.js:312 -#.TRANS: calculate a relative step between notes based on semi-tones -msgid "scalar interval" +#: js/activity.js:2259 +#: js/blocks/DrumBlocks.js:75 +msgid "drum name" msgstr "" -#: js/block.js:1568 -#: js/RhythmBlocks.js:148 -msgid "milliseconds" +#: js/activity.js:2262 +#: js/blocks/DrumBlocks.js:119 +msgid "effects name" msgstr "" -#: js/block.js:2180 -#: js/block.js:2184 -#: js/block.js:2234 -#: js/block.js:2345 -#: js/ProgramBlocks.js:1273 -#: js/RhythmBlocks.js:712 -#: js/rhythmruler.js:834 -#: js/rhythmruler.js:961 -msgid "silence" +#: js/activity.js:2265 +msgid "wrap mode" msgstr "" -#: js/block.js:2265 -#: js/block.js:3134 -#: js/block.js:3151 -#: js/activity.js:2336 -#: js/activity.js:2387 -#: js/musicutils.js:2932 -#: js/musicutils.js:4287 -#.TRANS: the note names must be separated by single spaces -#.TRANS: the note names must be separated by single spaces -msgid "ti la sol fa mi re do" +#: js/activity.js:2268 +msgid "load file" msgstr "" -#: js/block.js:2333 -#.TRANS: scalar step -msgid "down" +#: js/activity.js:2435 +#: js/activity.js:5851 +msgid "This block is deprecated." msgstr "" -#: js/block.js:2334 -msgid "up" +#: js/activity.js:2437 +#: js/activity.js:5853 +msgid "Block cannot be found." msgstr "" -#: js/block.js:3477 -#: js/block.js:3490 -#: js/ExtrasBlocks.js:612 -msgid "Cartesian" +#: js/activity.js:2645 +msgid "Saving block artwork" msgstr "" -#: js/block.js:3478 -#: js/block.js:3491 -#: js/ExtrasBlocks.js:616 -msgid "polar" +#: js/activity.js:2656 +msgid "Erase" msgstr "" -#: js/block.js:3479 -#: js/block.js:3492 -#: js/ExtrasBlocks.js:620 -msgid "Cartesian+polar" +#: js/activity.js:2683 +#: js/activity.js:2705 +msgid "Paste" msgstr "" -#: js/block.js:3480 -#: js/block.js:3499 -#: js/ExtrasBlocks.js:649 -msgid "none" +#: js/activity.js:2687 +msgid "Save block help" msgstr "" -#: js/block.js:3493 -#: js/ExtrasBlocks.js:625 -msgid "treble" +#: js/activity.js:2772 +msgid "Jumping to the bottom of the page." msgstr "" -#: js/block.js:3494 -#: js/ExtrasBlocks.js:629 -msgid "grand staff" +#: js/activity.js:2778 +msgid "Scrolling up." msgstr "" -#: js/block.js:3495 -#: js/ExtrasBlocks.js:633 -msgid "mezzo-soprano" +#: js/activity.js:2783 +msgid "Scrolling down." msgstr "" -#: js/block.js:3496 -#: js/ExtrasBlocks.js:637 -msgid "alto" +#: js/activity.js:2788 +msgid "Extracting block" msgstr "" -#: js/block.js:3497 -#: js/ExtrasBlocks.js:641 -msgid "tenor" +#: js/activity.js:2796 +msgid "Moving block up." msgstr "" -#: js/block.js:3498 -#: js/ExtrasBlocks.js:645 -#: js/musicutils.js:736 -#: js/synthutils.js:64 -#.TRANS: musical instrument -msgid "bass" +#: js/activity.js:2817 +msgid "Moving block down." msgstr "" -#: js/block.js:4075 -msgid "Not a number" +#: js/activity.js:2838 +msgid "Moving block left." msgstr "" -#: js/block.js:4082 -msgid "Octave value must be between 1 and 10." +#: js/activity.js:2855 +msgid "Moving block right." msgstr "" -#: js/block.js:4090 -msgid "Numbers can have at most 10 digits." +#: js/activity.js:2870 +msgid "Jump to home position." msgstr "" -#: js/notation.js:353 -msgid "Lilypond cannot process pickup of " +#: js/activity.js:2897 +msgid "Hide blocks" msgstr "" -#: js/turtledefs.js:40 -#.TRANS: put the URL to the guide here, e.g., https://github.com/sugarlabs/turtleblocksjs/tree/master/guide/README.md -msgid "guide url" +#: js/activity.js:4500 +msgid "Click the run button to run the project." msgstr "" -#: js/turtledefs.js:85 -#: js/turtledefs.js:437 -msgid "Turtle Blocks is a Logo-inspired turtle that draws colorful pictures with snap-together visual-programming blocks." +#: js/activity.js:5692 +msgid "Show/hide block" msgstr "" -#: js/turtledefs.js:118 -#: js/turtledefs.js:220 -msgid "search" +#: js/activity.js:5698 +msgid "Expand/collapse blocks" msgstr "" -#: js/turtledefs.js:120 -#: js/turtledefs.js:222 -#: js/WidgetBlocks.js:437 -#: js/MeterBlocks.js:1343 -#.TRANS: musical meter (time signature), e.g., 4:4 -msgid "meter" +#: js/activity.js:5976 +msgid "Could not parse JSON input." msgstr "" -#: js/turtledefs.js:122 -#: js/turtledefs.js:224 -msgid "intervals" +#: js/activity.js:6475 +#: js/activity.js:6580 +#: js/activity.js:6631 +msgid "Cannot load project from the file. Please check the file type." msgstr "" -#: js/turtledefs.js:124 -#: js/turtledefs.js:226 -msgid "ornament" +#: js/activity.js:6917 +msgid "Invalid parameters" msgstr "" -#: js/turtledefs.js:125 -#: js/turtledefs.js:227 -#: js/VolumeBlocks.js:362 -#: js/VolumeBlocks.js:502 -#: js/VolumeBlocks.js:545 -msgid "volume" +#: js/blocks.js:1212 +#: js/blocks.js:3444 +#: js/blocks.js:3834 +#: js/blocks.js:3865 +#: js/blocks.js:3914 +#: js/blocks.js:3949 +#: js/blocks.js:6586 +#: js/palette.js:509 +#: js/palette.js:638 +#: js/palette.js:1105 +#: js/blocks/BoxesBlocks.js:282 +#: js/blocks/BoxesBlocks.js:285 +#: js/blocks/BoxesBlocks.js:405 +#: js/blocks/BoxesBlocks.js:594 +msgid "box" msgstr "" -#: js/turtledefs.js:129 -#: js/turtledefs.js:231 -msgid "boxes" +#: js/blocks.js:1713 +msgid "Consider breaking this stack into parts." msgstr "" -#: js/turtledefs.js:130 -#: js/turtledefs.js:232 -msgid "widgets" +#: js/blocks.js:2472 +#: js/palette.js:653 +#: js/blocks/MediaBlocks.js:602 +msgid "open file" msgstr "" -#: js/turtledefs.js:131 -#: js/turtledefs.js:233 -#: js/phrasemaker.js:824 -msgid "graphics" +#: js/blocks.js:3247 +#: js/palette.js:574 +#: js/blocks/MediaBlocks.js:892 +#: js/blocks/MediaBlocks.js:963 +msgid "text" msgstr "" -#: js/turtledefs.js:134 -#: js/turtledefs.js:236 -msgid "boolean" +#: js/blocks.js:3443 +#: js/palette.js:641 +#: js/palette.js:642 +#: js/blocks/BoxesBlocks.js:514 +msgid "store in box" msgstr "" -#: js/turtledefs.js:137 -#: js/turtledefs.js:239 -#: js/HeapBlocks.js:59 -#: js/status.js:147 -msgid "heap" +#: js/blocks.js:3448 +#: js/blocks.js:3888 +#: js/blocks.js:3923 +#: js/blocks.js:3958 +#: js/blocks.js:5862 +#: js/blocks.js:5883 +#: js/blocks/BoxesBlocks.js:772 +msgid "box1" msgstr "" -#: js/turtledefs.js:138 -#: js/turtledefs.js:240 -#: js/ProgramBlocks.js:495 -#: js/DictBlocks.js:142 -msgid "dictionary" +#: js/blocks.js:3450 +#: js/blocks.js:3890 +#: js/blocks.js:3925 +#: js/blocks.js:3960 +#: js/blocks.js:5864 +#: js/blocks.js:5885 +#: js/blocks/BoxesBlocks.js:663 +msgid "box2" msgstr "" -#: js/turtledefs.js:139 -#: js/turtledefs.js:241 -msgid "ensemble" +#: js/blocks.js:4122 +#: js/palette.js:639 +#: js/palette.js:644 +#: js/palette.js:1041 +#: js/blocks/BoxesBlocks.js:591 +msgid "store in" msgstr "" -#: js/turtledefs.js:140 -#: js/turtledefs.js:242 -msgid "extras" +#: js/blocks.js:4122 +#: js/blocks/BoxesBlocks.js:595 +#: js/blocks/DictBlocks.js:215 +#: js/blocks/DictBlocks.js:289 +#: js/blocks/EnsembleBlocks.js:391 +#: js/blocks/EnsembleBlocks.js:402 +#: js/blocks/MediaBlocks.js:746 +#: js/blocks/PitchBlocks.js:656 +#: js/blocks/PitchBlocks.js:934 +#: js/blocks/PitchBlocks.js:1866 +#: js/blocks/ProgramBlocks.js:390 +#: js/blocks/ProgramBlocks.js:495 +#: js/blocks/ProgramBlocks.js:658 +#: js/blocks/ToneBlocks.js:1025 +msgid "name" msgstr "" -#: js/turtledefs.js:142 -#: js/turtledefs.js:244 -#.TRANS: program as in computer program -#.TRANS: program as in computer program -msgid "program" +#: js/blocks.js:4122 +#: js/blocks/BoxesBlocks.js:75 +#: js/blocks/BoxesBlocks.js:595 +#: js/blocks/DictBlocks.js:289 +#: js/blocks/DictBlocks.js:430 +#: js/blocks/HeapBlocks.js:544 +#: js/blocks/RhythmBlocks.js:1130 +msgid "value" msgstr "" -#: js/turtledefs.js:143 -#: js/turtledefs.js:245 -msgid "my blocks" +#: js/blocks.js:4465 +msgid "Forever loop detected inside a note value block. Unexpected things may happen." msgstr "" -#: js/turtledefs.js:185 -#: js/turtledefs.js:281 -msgid "artwork" +#: js/blocks.js:4988 +msgid "There is no block selected." msgstr "" -#: js/turtledefs.js:185 -#: js/turtledefs.js:281 -msgid "logic" +#: js/blocks.js:5091 +#: js/blocks/MediaBlocks.js:888 +msgid "show" msgstr "" -#: js/turtledefs.js:185 -#: js/turtledefs.js:281 -msgid "music" +#: js/blocks.js:5094 +#: js/blocks/MediaBlocks.js:803 +#.TRANS: Avatar is the image used to determine the appearance of the mouse. +msgid "avatar" msgstr "" -#: js/turtledefs.js:187 -#: js/turtledefs.js:463 -msgid "Music Blocks is a collection of tools for exploring fundamental musical concepts in a fun way." +#: js/blocks.js:5097 +#: js/blocks/ToneBlocks.js:1010 +#: js/widgets/sampler.js:975 +#.TRANS: The sound sample that the user uploads. +msgid "sample" msgstr "" -#: js/turtledefs.js:436 -msgid "Welcome to Turtle Blocks" +#: js/lilypond.js:606 +msgid "brown rat" msgstr "" -#: js/turtledefs.js:438 -#: js/turtledefs.js:465 -#: js/turtledefs.js:774 -#: js/turtledefs.js:805 -msgid "The current version is" +#: js/lilypond.js:607 +msgid "mole" msgstr "" -#: js/turtledefs.js:446 -#: js/turtledefs.js:483 -msgid "Click the run button to run the project in fast mode." +#: js/lilypond.js:608 +msgid "chipmunk" msgstr "" -#: js/turtledefs.js:452 -msgid "Stop the turtle." +#: js/lilypond.js:609 +msgid "red squirrel" msgstr "" -#: js/turtledefs.js:454 -#: js/turtledefs.js:491 -msgid "You can also type Alt-S to stop." +#: js/lilypond.js:610 +msgid "guinea pig" +msgstr "" + +#: js/lilypond.js:611 +msgid "capybara" msgstr "" -#: js/turtledefs.js:462 -#: js/help.js:333 -msgid "Welcome to Music Blocks" +#: js/lilypond.js:612 +msgid "coypu" msgstr "" -#: js/turtledefs.js:472 -#: js/help.js:334 -msgid "Meet Mr. Mouse!" +#: js/lilypond.js:613 +msgid "black rat" msgstr "" -#: js/turtledefs.js:473 -msgid "Mr Mouse is our Music Blocks conductor." +#: js/lilypond.js:614 +msgid "grey squirrel" msgstr "" -#: js/turtledefs.js:475 -msgid "Mr Mouse encourages you to explore Music Blocks." +#: js/lilypond.js:615 +msgid "flying squirrel" msgstr "" -#: js/turtledefs.js:477 -msgid "Let us start our tour!" +#: js/lilypond.js:616 +msgid "bat" msgstr "" -#: js/turtledefs.js:489 -msgid "Stop the music (and the mice)." +#: js/lilypond.js:749 +#: js/lilypond.js:913 +#: js/lilypond.js:951 +#: js/blocks/ActionBlocks.js:1256 +#: js/blocks/ExtrasBlocks.js:556 +msgid "start drum" msgstr "" -#: js/turtledefs.js:499 -msgid "Record your project as video." +#: js/logo.js:61 +msgid "Not a valid pitch name" msgstr "" -#: js/turtledefs.js:505 -msgid "Toggle Fullscreen mode." +#: js/logo.js:507 +#: js/blocks/ProgramBlocks.js:258 +#: js/blocks/ProgramBlocks.js:427 +msgid "You must select a file." msgstr "" -#: js/turtledefs.js:511 -msgid "Initialize a new project." +#: js/logo.js:1696 +msgid "Playback is ready." msgstr "" -#: js/turtledefs.js:517 -msgid "You can also load projects from the file system." +#: js/macros.js:711 +#: js/utils/musicutils.js:1162 +#: js/utils/synthutils.js:202 +#.TRANS: animal sound effect +msgid "duck" msgstr "" -#: js/turtledefs.js:522 -#: js/StringHelper.js:46 -msgid "Delete" +#: js/notation.js:353 +msgid "Lilypond cannot process pickup of " msgstr "" -#: js/turtledefs.js:523 -msgid "To delete a block, just right-click on it, then you will be able to see the delete option" +#: js/palette.js:571 +msgid "grid" msgstr "" -#: js/turtledefs.js:528 -#: js/activity.js:2270 -#: js/LocalCard.js:31 -msgid "Copy" +#: js/palette.js:580 +msgid "effect" msgstr "" -#: js/turtledefs.js:529 -msgid "To copy a block, just right-click on it, then you will be able to see the copy option" +#: js/palette.js:586 +msgid "sargam" msgstr "" -#: js/turtledefs.js:535 -msgid "To extract a block, just right-click on it, then you will be able to see the extract option" +#: js/palette.js:601 +#: js/blocks/PitchBlocks.js:1209 +msgid "custom pitch" msgstr "" -#: js/turtledefs.js:542 -#: js/turtledefs.js:552 -#: js/turtledefs.js:573 -msgid "Save your project to a file." +#: js/palette.js:609 +msgid "accidental" msgstr "" -#: js/turtledefs.js:549 -#: js/turtledefs.js:570 -msgid "save" +#: js/palette.js:633 +#: js/blocks/PitchBlocks.js:405 +msgid "pitch converter" msgstr "" -#: js/turtledefs.js:556 -#: js/turtledefs.js:577 -msgid "Save graphics from your project to as SVG." +#: js/piemenus.js:200 +#: js/utils/musicutils.js:1187 +#: js/utils/musicutils.js:1207 +#: js/widgets/musickeyboard.js:2341 +#: js/widgets/phrasemaker.js:1908 +#: js/widgets/sampler.js:810 +#.TRANS: double sharp is a music term related to pitch +msgid "double sharp" msgstr "" -#: js/turtledefs.js:560 -#: js/turtledefs.js:581 -msgid "Save graphics from your project as PNG." +#: js/piemenus.js:201 +#: js/utils/musicutils.js:1185 +#: js/utils/musicutils.js:1208 +#: js/blocks/PitchBlocks.js:1539 +#: js/turtleactions/PitchActions.js:323 +#: js/widgets/musickeyboard.js:2342 +#: js/widgets/phrasemaker.js:1909 +#: js/widgets/sampler.js:811 +#.TRANS: sharp is a music term related to pitch +#.TRANS: sharp is a half-step up in pitch +msgid "sharp" msgstr "" -#: js/turtledefs.js:564 -#: js/turtledefs.js:597 -msgid "Save block artwork as an SVG file." +#: js/piemenus.js:202 +#: js/utils/musicutils.js:1183 +#: js/utils/musicutils.js:1209 +#: js/widgets/musickeyboard.js:2343 +#: js/widgets/phrasemaker.js:1910 +#: js/widgets/sampler.js:812 +#.TRANS: natural is a music term related to pitch +msgid "natural" msgstr "" -#: js/turtledefs.js:585 -msgid "Save audio from your project as WAV." +#: js/piemenus.js:203 +#: js/utils/musicutils.js:1181 +#: js/utils/musicutils.js:1210 +#: js/blocks/PitchBlocks.js:1498 +#: js/turtleactions/PitchActions.js:326 +#: js/widgets/musickeyboard.js:2344 +#: js/widgets/phrasemaker.js:1911 +#: js/widgets/sampler.js:813 +#.TRANS: flat is a music term related to pitch +#.TRANS: flat is a half-step down in pitch +msgid "flat" msgstr "" -#: js/turtledefs.js:589 -msgid "Save your project to as an ABC file." +#: js/piemenus.js:204 +#: js/utils/musicutils.js:1179 +#: js/utils/musicutils.js:1211 +#: js/widgets/musickeyboard.js:2345 +#: js/widgets/phrasemaker.js:1912 +#: js/widgets/sampler.js:814 +#.TRANS: double flat is a music term related to pitch +msgid "double flat" msgstr "" -#: js/turtledefs.js:593 -msgid "Save your project to as a Lilypond file." +#: js/piemenus.js:2864 +#: js/utils/musicutils.js:1006 +#: js/blocks/PitchBlocks.js:1385 +#.TRANS: unison is a music term related to intervals +#.TRANS: unison means the note is the same as the current note +msgid "unison" msgstr "" -#: js/turtledefs.js:604 -msgid "Load samples from server" +#: js/piemenus.js:3018 +#: js/piemenus.js:3091 +#: js/utils/musicutils.js:1014 +#: js/utils/musicutils.js:1189 +#: js/utils/musicutils.js:1326 +#.TRANS: major is a music term related to intervals and mode +msgid "major" msgstr "" -#: js/turtledefs.js:605 -msgid "This button opens a viewer for loading example projects." +#: js/piemenus.js:3018 +#: js/piemenus.js:3091 +#: js/utils/musicutils.js:1032 +#.TRANS: modal scale for music +msgid "ionian" msgstr "" -#: js/turtledefs.js:611 -msgid "Palette buttons" +#: js/piemenus.js:3020 +#: js/piemenus.js:3095 +#: js/utils/musicutils.js:1012 +#: js/utils/musicutils.js:1190 +#: js/utils/musicutils.js:1323 +#.TRANS: minor is a music term related to intervals and mode +msgid "minor" msgstr "" -#: js/turtledefs.js:612 -msgid "This toolbar contains the palette buttons including Rhythm Pitch Tone Action and more." +#: js/piemenus.js:3020 +#: js/piemenus.js:3095 +#: js/utils/musicutils.js:1042 +#.TRANS: modal scale for music +msgid "aeolian" msgstr "" -#: js/turtledefs.js:614 -msgid "Click to show the palettes of blocks and drag blocks from the palettes onto the canvas to use them." +#: js/piemenus.js:3410 +msgid "Duplicate" msgstr "" -#: js/turtledefs.js:620 -msgid "Cartesian/Polar" +#: js/piemenus.js:3412 +msgid "Move to trash" msgstr "" -#: js/turtledefs.js:621 -msgid "Show or hide a coordinate grid." +#: js/piemenus.js:3413 +#: js/widgets/timbre.js:968 +#: planet/js/StringHelper.js:69 +msgid "Close" msgstr "" -#: js/turtledefs.js:627 -msgid "Clear the screen and return the mice to their initial positions." +#: js/piemenus.js:3419 +msgid "Save stack" msgstr "" -#: js/turtledefs.js:633 -msgid "Collapse the graphics window." +#: js/piemenus.js:3449 +msgid "In order to copy a sample, you must reload the widget, import the sample again, and export it." msgstr "" -#: js/turtledefs.js:638 -#: js/activity.js:4256 -#: js/activity.js:4256 -msgid "Home" +#: js/piemenus.js:3812 +msgid "You have chosen key " msgstr "" -#: js/turtledefs.js:639 -msgid "Return all blocks to the center of the screen." +#: js/piemenus.js:3816 +msgid " for your pitch preview." msgstr "" -#: js/turtledefs.js:644 -msgid "Show/hide blocks" +#: js/turtle-singer.js:1363 +#.TRANS: partials are weighted components in a harmonic series +msgid "You must have at least one Partial block inside of a Weighted-partial block" msgstr "" -#: js/turtledefs.js:645 -msgid "Hide or show the blocks and the palettes." +#: js/turtle-singer.js:2077 +msgid "synth cannot play chords." msgstr "" -#: js/turtledefs.js:650 -msgid "Expand/collapse collapsable blocks" +#: js/utils/musicutils.js:505 +#: js/utils/musicutils.js:645 +#: js/widgets/pitchdrummatrix.js:228 +#: js/widgets/musickeyboard.js:2885 +msgid "rest" msgstr "" -#: js/turtledefs.js:651 -msgid "Expand or collapse start and action stacks." +#: js/utils/musicutils.js:689 +msgid "Perfect unison" msgstr "" -#: js/turtledefs.js:658 -#: js/activity.js:4265 -msgid "Decrease block size" +#: js/utils/musicutils.js:689 +msgid "Diminished second" msgstr "" -#: js/turtledefs.js:659 -msgid "Decrease the size of the blocks." +#: js/utils/musicutils.js:690 +msgid "Minor second" msgstr "" -#: js/turtledefs.js:664 -#: js/activity.js:4267 -msgid "Increase block size" +#: js/utils/musicutils.js:690 +msgid "Augmented unison" msgstr "" -#: js/turtledefs.js:665 -msgid "Increase the size of the blocks." +#: js/utils/musicutils.js:691 +msgid "Major second" msgstr "" -#: js/turtledefs.js:670 -msgid "Expand/collapse option toolbar" +#: js/utils/musicutils.js:691 +msgid "Diminished third" msgstr "" -#: js/turtledefs.js:671 -msgid "Click this button to expand or collapse the auxillary toolbar." +#: js/utils/musicutils.js:692 +msgid "Minor third" msgstr "" -#: js/turtledefs.js:676 -msgid "Run slow" +#: js/utils/musicutils.js:692 +msgid "Augmented second" msgstr "" -#: js/turtledefs.js:677 -msgid "Click to run the project in slow mode." +#: js/utils/musicutils.js:693 +msgid "Major third" msgstr "" -#: js/turtledefs.js:683 -msgid "Click to run the project step by step." +#: js/utils/musicutils.js:693 +msgid "Diminished fourth" msgstr "" -#: js/turtledefs.js:690 -msgid "Display statistics about your Music project." +#: js/utils/musicutils.js:694 +msgid "Perfect fourth" msgstr "" -#: js/turtledefs.js:697 -msgid "Delete a selected plugin." +#: js/utils/musicutils.js:694 +msgid "Augmented third" msgstr "" -#: js/turtledefs.js:704 -msgid "Enable scrolling" +#: js/utils/musicutils.js:695 +msgid "Diminished fifth" msgstr "" -#: js/turtledefs.js:705 -msgid "You can scroll the blocks on the canvas." +#: js/utils/musicutils.js:695 +msgid "Augmented fourth" msgstr "" -#: js/turtledefs.js:714 -msgid "Wrap Turtle" +#: js/utils/musicutils.js:696 +msgid "Perfect fifth" msgstr "" -#: js/turtledefs.js:715 -msgid "Turn Turtle wrapping On or Off." +#: js/utils/musicutils.js:696 +msgid "Diminished sixth" msgstr "" -#: js/turtledefs.js:725 -msgid "Restore blocks from the trash." +#: js/utils/musicutils.js:697 +msgid "Minor sixth" msgstr "" -#: js/turtledefs.js:732 -msgid "Switch mode" +#: js/utils/musicutils.js:697 +msgid "Augmented fifth" msgstr "" -#: js/turtledefs.js:733 -msgid "Switch between beginner and advance modes." +#: js/utils/musicutils.js:698 +msgid "Major sixth" msgstr "" -#: js/turtledefs.js:739 -msgid "Select your language preference." +#: js/utils/musicutils.js:698 +msgid "Diminished seventh" msgstr "" -#: js/turtledefs.js:745 -msgid "Keyboard shortcuts" +#: js/utils/musicutils.js:699 +msgid "Minor seventh" msgstr "" -#: js/turtledefs.js:746 -msgid "You can type d to create a do block and r to create a re block etc." +#: js/utils/musicutils.js:699 +msgid "Augmented sixth" msgstr "" -#: js/turtledefs.js:753 -msgid "Show these messages." +#: js/utils/musicutils.js:700 +msgid "Major seventh" msgstr "" -#: js/turtledefs.js:759 -#: js/turtledefs.js:790 -#: js/help.js:335 -msgid "Guide" +#: js/utils/musicutils.js:700 +msgid "Diminished octave" msgstr "" -#: js/turtledefs.js:760 -msgid "A detailed guide to Turtle Blocks is available." +#: js/utils/musicutils.js:701 +msgid "Perfect octave" msgstr "" -#: js/turtledefs.js:764 -msgid "Turtle Blocks Guide" +#: js/utils/musicutils.js:701 +msgid "Augmented seventh" msgstr "" -#: js/turtledefs.js:767 -#: js/turtledefs.js:798 -#: js/help.js:336 -msgid "About" +#: js/utils/musicutils.js:702 +msgid "Minor ninth" msgstr "" -#: js/turtledefs.js:768 -msgid "Turtle Blocks is an open source collection of tools for exploring musical concepts." +#: js/utils/musicutils.js:702 +msgid "Augmented octave" msgstr "" -#: js/turtledefs.js:770 -msgid "A full list of contributors can be found in the Turtle Blocks GitHub repository." +#: js/utils/musicutils.js:703 +msgid "Major ninth" msgstr "" -#: js/turtledefs.js:772 -msgid "Turtle Blocks is licensed under the AGPL." +#: js/utils/musicutils.js:703 +msgid "Diminished tenth" msgstr "" -#: js/turtledefs.js:780 -msgid "Turtle Blocks GitHub repository" +#: js/utils/musicutils.js:704 +msgid "Minor tenth" msgstr "" -#: js/turtledefs.js:783 -#: js/turtledefs.js:814 -#: js/help.js:337 -#: js/help.js:359 -msgid "Congratulations." +#: js/utils/musicutils.js:704 +msgid "Augmented ninth" msgstr "" -#: js/turtledefs.js:784 -msgid "You have finished the tour. Please enjoy Turtle Blocks!" +#: js/utils/musicutils.js:705 +msgid "Major tenth" msgstr "" -#: js/turtledefs.js:791 -msgid "A detailed guide to Music Blocks is available." +#: js/utils/musicutils.js:705 +msgid "Diminished eleventh" msgstr "" -#: js/turtledefs.js:795 -#: js/SaveInterface.js:76 -msgid "Music Blocks Guide" +#: js/utils/musicutils.js:706 +msgid "Perfect eleventh" msgstr "" -#: js/turtledefs.js:799 -msgid "Music Blocks is an open source collection of tools for exploring musical concepts." +#: js/utils/musicutils.js:706 +msgid "Augmented tenth" msgstr "" -#: js/turtledefs.js:801 -msgid "A full list of contributors can be found in the Music Blocks GitHub repository." +#: js/utils/musicutils.js:707 +msgid "Diminished twelfth" msgstr "" -#: js/turtledefs.js:803 -msgid "Music Blocks is licensed under the AGPL." +#: js/utils/musicutils.js:707 +msgid "Augmented eleventh" msgstr "" -#: js/turtledefs.js:811 -msgid "Music Blocks GitHub repository" +#: js/utils/musicutils.js:708 +msgid "Perfect twelfth" msgstr "" -#: js/turtledefs.js:815 -msgid "You have finished the tour. Please enjoy Music Blocks!" +#: js/utils/musicutils.js:708 +msgid "Diminished thirteenth" msgstr "" -#: js/activity.js:369 -msgid "Search for blocks" +#: js/utils/musicutils.js:709 +msgid "Minor thirteenth" msgstr "" -#: js/activity.js:1145 -msgid "Refresh your browser to change to advanced mode." +#: js/utils/musicutils.js:709 +msgid "Augmented fifth, plus an octave" msgstr "" -#: js/activity.js:1150 -msgid "Refresh your browser to change to beginner mode." +#: js/utils/musicutils.js:710 +msgid "Major thirteenth" msgstr "" -#: js/activity.js:1184 -msgid "Catching mice" +#: js/utils/musicutils.js:710 +msgid "Diminished seventh, plus an octave" msgstr "" -#: js/activity.js:1185 -msgid "Cleaning the instruments" +#: js/utils/musicutils.js:838 +#.TRANS: ordinal number. Please keep exactly one space between each number. +msgid "1st 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th" msgstr "" -#: js/activity.js:1186 -msgid "Testing key pieces" +#: js/utils/musicutils.js:1008 +#: js/utils/musicutils.js:1191 +#: js/utils/musicutils.js:1325 +#.TRANS: augmented is a music term related to intervals +msgid "augmented" msgstr "" -#: js/activity.js:1187 -msgid "Sight-reading" +#: js/utils/musicutils.js:1010 +#: js/utils/musicutils.js:1192 +#: js/utils/musicutils.js:1324 +#.TRANS: diminished is a music term related to intervals and mode +msgid "diminished" msgstr "" -#: js/activity.js:1188 -msgid "Combining math and music" +#: js/utils/musicutils.js:1016 +#: js/utils/musicutils.js:1322 +#: js/blocks/IntervalsBlocks.js:649 +#: js/turtleactions/IntervalsActions.js:120 +#: js/turtleactions/IntervalsActions.js:124 +#.TRANS: perfect is a music term related to intervals +msgid "perfect" +msgstr "" + +#: js/utils/musicutils.js:1018 +#.TRANS: twelve semi-tone scale for music +msgid "chromatic" msgstr "" -#: js/activity.js:1189 -msgid "Generating more blocks" +#: js/utils/musicutils.js:1019 +msgid "algerian" msgstr "" -#: js/activity.js:1190 -msgid "Do Re Mi Fa Sol La Ti Do" +#: js/utils/musicutils.js:1020 +msgid "spanish" msgstr "" -#: js/activity.js:1191 -msgid "Tuning string instruments" +#: js/utils/musicutils.js:1022 +#.TRANS: modal scale in music +msgid "octatonic" msgstr "" -#: js/activity.js:1192 -msgid "Pressing random keys" +#: js/utils/musicutils.js:1024 +#.TRANS: harmonic major scale in music +msgid "harmonic major" msgstr "" -#: js/activity.js:1351 -msgid "plugins will be removed upon restart." +#: js/utils/musicutils.js:1026 +#.TRANS: natural minor scales in music +msgid "natural minor" msgstr "" -#: js/activity.js:1360 -msgid "show Cartesian" +#: js/utils/musicutils.js:1028 +#.TRANS: harmonic minor scale in music +msgid "harmonic minor" msgstr "" -#: js/activity.js:1842 -msgid "output tools" +#: js/utils/musicutils.js:1030 +#.TRANS: melodic minor scale in music +msgid "melodic minor" msgstr "" -#: js/activity.js:1845 -msgid "custom note" +#: js/utils/musicutils.js:1034 +#.TRANS: modal scale for music +msgid "dorian" msgstr "" -#: js/activity.js:1848 -msgid "accidental name" +#: js/utils/musicutils.js:1036 +#.TRANS: modal scale for music +msgid "phrygian" msgstr "" -#: js/activity.js:1851 -#: js/PitchBlocks.js:855 -msgid "east indian solfege" +#: js/utils/musicutils.js:1038 +#.TRANS: modal scale for music +msgid "lydian" msgstr "" -#: js/activity.js:1854 -#: js/PitchBlocks.js:869 -msgid "note name" +#: js/utils/musicutils.js:1040 +#.TRANS: modal scale for music +msgid "mixolydian" msgstr "" -#: js/activity.js:1857 -#: js/IntervalsBlocks.js:94 -msgid "temperament name" +#: js/utils/musicutils.js:1044 +#.TRANS: modal scale for music +msgid "locrian" msgstr "" -#: js/activity.js:1863 -msgid "chord name" +#: js/utils/musicutils.js:1046 +#.TRANS: minor jazz scale for music +msgid "jazz minor" msgstr "" -#: js/activity.js:1869 -msgid "filter type" +#: js/utils/musicutils.js:1048 +#.TRANS: bebop scale for music +msgid "bebop" msgstr "" -#: js/activity.js:1872 -msgid "oscillator type" +#: js/utils/musicutils.js:1049 +msgid "arabic" msgstr "" -#: js/activity.js:1878 -#: js/DrumBlocks.js:32 -msgid "noise name" +#: js/utils/musicutils.js:1050 +msgid "byzantine" msgstr "" -#: js/activity.js:1881 -#: js/DrumBlocks.js:75 -msgid "drum name" +#: js/utils/musicutils.js:1052 +#.TRANS: musical scale for music by Verdi +msgid "enigmatic" msgstr "" -#: js/activity.js:1884 -#: js/DrumBlocks.js:119 -msgid "effects name" +#: js/utils/musicutils.js:1053 +msgid "ethiopian" msgstr "" -#: js/activity.js:1887 -msgid "wrap mode" +#: js/utils/musicutils.js:1055 +#.TRANS: Ethiopic scale for music +msgid "geez" msgstr "" -#: js/activity.js:1890 -msgid "load file" +#: js/utils/musicutils.js:1056 +msgid "hindu" msgstr "" -#: js/activity.js:2056 -msgid "This block is deprecated." +#: js/utils/musicutils.js:1057 +msgid "hungarian" msgstr "" -#: js/activity.js:2058 -msgid "Block cannot be found." +#: js/utils/musicutils.js:1059 +#.TRANS: minor Romanian scale for music +msgid "romanian minor" msgstr "" -#: js/activity.js:2266 -msgid "Saving block artwork" +#: js/utils/musicutils.js:1060 +msgid "spanish gypsy" msgstr "" -#: js/activity.js:2277 -msgid "Erase" +#: js/utils/musicutils.js:1062 +#.TRANS: musical scale for Mid-Eastern music +msgid "maqam" msgstr "" -#: js/activity.js:2301 -#: js/activity.js:2323 -msgid "Paste" +#: js/utils/musicutils.js:1064 +#.TRANS: minor blues scale for music +msgid "minor blues" msgstr "" -#: js/activity.js:2305 -msgid "Save block help" +#: js/utils/musicutils.js:1066 +#.TRANS: major blues scale for music +msgid "major blues" msgstr "" -#: js/activity.js:2390 -msgid "Jumping to the bottom of the page." +#: js/utils/musicutils.js:1067 +msgid "whole tone" msgstr "" -#: js/activity.js:2396 -msgid "Scrolling up." +#: js/utils/musicutils.js:1069 +#.TRANS: pentatonic is a general term that means "five note scale". This scale is typically known as "minor pentatonic" +msgid "minor pentatonic" msgstr "" -#: js/activity.js:2401 -msgid "Scrolling down." +#: js/utils/musicutils.js:1071 +#.TRANS: pentatonic is a general term that means "five note scale". This scale is typically known as "major pentatonic" +msgid "major pentatonic" msgstr "" -#: js/activity.js:2406 -msgid "Extracting block" +#: js/utils/musicutils.js:1072 +msgid "chinese" msgstr "" -#: js/activity.js:2414 -msgid "Moving block up." +#: js/utils/musicutils.js:1073 +msgid "egyptian" msgstr "" -#: js/activity.js:2435 -msgid "Moving block down." +#: js/utils/musicutils.js:1075 +#.TRANS: https://en.wikipedia.org/wiki/Hirajoshi_scale NOTE: There are three different versions of this scale +msgid "hirajoshi" msgstr "" -#: js/activity.js:2456 -msgid "Moving block left." +#: js/utils/musicutils.js:1076 +msgid "Japan" msgstr "" -#: js/activity.js:2473 -msgid "Moving block right." +#: js/utils/musicutils.js:1078 +#.TRANS: https://en.wikipedia.org/wiki/In_scale and https://en.wikipedia.org/wiki/Sakura_Sakura +msgid "in" msgstr "" -#: js/activity.js:2488 -msgid "Jump to home position." +#: js/utils/musicutils.js:1080 +#.TRANS: https://en.wikipedia.org/wiki/Miny%C5%8D_scale +msgid "minyo" msgstr "" -#: js/activity.js:2515 -msgid "Hide blocks" +#: js/utils/musicutils.js:1082 +#.TRANS: Italian mathematician +msgid "fibonacci" msgstr "" -#: js/activity.js:3389 -msgid "Click the run button to run the project." +#: js/utils/musicutils.js:1083 +#: js/utils/musicutils.js:1134 +#: js/utils/musicutils.js:1177 +#: js/utils/musicutils.js:1199 +#: js/utils/synthutils.js:134 +#: js/blocks/IntervalsBlocks.js:1124 +#: js/blocks/ToneBlocks.js:946 +#: js/blocks/VolumeBlocks.js:411 +#: js/blocks/WidgetBlocks.js:399 +#: js/blocks/WidgetBlocks.js:404 +#: js/turtleactions/VolumeActions.js:218 +#: js/widgets/modewidget.js:919 +#.TRANS: customize voice +msgid "custom" msgstr "" -#: js/activity.js:3456 -#: js/SaveInterface.js:131 -#: js/SaveInterface.js:204 -#: js/SaveInterface.js:262 -#: js/SaveInterface.js:389 -#: js/SaveInterface.js:417 -#: js/ProjectStorage.js:27 -#: js/GlobalPlanet.js:467 -#: js/GlobalPlanet.js:469 -#: js/GlobalPlanet.js:495 -#.TRANS: default project title when saving as Lilypond -msgid "My Project" +#: js/utils/musicutils.js:1085 +#: js/utils/musicutils.js:1531 +#: js/blocks/WidgetBlocks.js:176 +#.TRANS: highpass filter +msgid "highpass" msgstr "" -#: js/activity.js:4261 -msgid "Show/hide block" +#: js/utils/musicutils.js:1087 +#: js/utils/musicutils.js:1532 +#.TRANS: lowpass filter +msgid "lowpass" msgstr "" -#: js/activity.js:4263 -msgid "Expand/collapse blocks" +#: js/utils/musicutils.js:1089 +#: js/utils/musicutils.js:1533 +#.TRANS: bandpass filter +msgid "bandpass" msgstr "" -#: js/activity.js:4381 -msgid "Could not parse JSON input." +#: js/utils/musicutils.js:1091 +#: js/utils/musicutils.js:1534 +#.TRANS: high-shelf filter +msgid "highshelf" msgstr "" -#: js/activity.js:4684 -#: js/activity.js:4771 -#: js/activity.js:4821 -msgid "Cannot load project from the file. Please check the file type." +#: js/utils/musicutils.js:1093 +#: js/utils/musicutils.js:1535 +#.TRANS: low-shelf filter +msgid "lowshelf" msgstr "" -#: js/activity.js:5051 -msgid "Invalid parameters" +#: js/utils/musicutils.js:1095 +#: js/utils/musicutils.js:1536 +#.TRANS: notch-shelf filter +msgid "notch" msgstr "" -#: js/turtle-singer.js:1334 -#.TRANS: partials are weighted components in a harmonic series -msgid "You must have at least one Partial block inside of a Weighted-partial block" +#: js/utils/musicutils.js:1097 +#: js/utils/musicutils.js:1537 +#.TRANS: all-pass filter +msgid "allpass" msgstr "" -#: js/turtle-singer.js:2048 -msgid "synth cannot play chords." +#: js/utils/musicutils.js:1099 +#: js/utils/musicutils.js:1538 +#.TRANS: peaking filter +msgid "peaking" msgstr "" -#: js/lilypond.js:614 -msgid "brown rat" +#: js/utils/musicutils.js:1100 +#: js/utils/musicutils.js:1546 +#: js/utils/synthutils.js:126 +#: js/blocks/PitchBlocks.js:85 +#.TRANS: sine wave +msgid "sine" msgstr "" -#: js/lilypond.js:615 -msgid "mole" +#: js/utils/musicutils.js:1101 +#: js/utils/musicutils.js:1547 +#: js/utils/synthutils.js:128 +#: js/blocks/PitchBlocks.js:39 +#.TRANS: square wave +msgid "square" msgstr "" -#: js/lilypond.js:616 -msgid "chipmunk" +#: js/utils/musicutils.js:1102 +#: js/utils/musicutils.js:1548 +#: js/utils/synthutils.js:132 +#: js/blocks/PitchBlocks.js:62 +#: js/blocks/ToneBlocks.js:39 +#.TRANS: triangle wave +msgid "triangle" msgstr "" -#: js/lilypond.js:617 -msgid "red squirrel" +#: js/utils/musicutils.js:1103 +#: js/utils/musicutils.js:1549 +#: js/utils/synthutils.js:130 +#: js/blocks/PitchBlocks.js:108 +#.TRANS: sawtooth wave +msgid "sawtooth" msgstr "" -#: js/lilypond.js:618 -msgid "guinea pig" +#: js/utils/musicutils.js:1105 +#: js/utils/musicutils.js:1312 +#: js/blocks/PitchBlocks.js:931 +#: js/blocks/PitchBlocks.js:937 +#: js/turtleactions/PitchActions.js:469 +#.TRANS: even numbers +#.TRANS: invert based on even or odd number or musical scale +msgid "even" msgstr "" -#: js/lilypond.js:619 -msgid "capybara" +#: js/utils/musicutils.js:1107 +#: js/utils/musicutils.js:1313 +#: js/blocks/PitchBlocks.js:937 +#: js/turtleactions/PitchActions.js:471 +#.TRANS: odd numbers +msgid "odd" msgstr "" -#: js/lilypond.js:620 -msgid "coypu" +#: js/utils/musicutils.js:1108 +#: js/utils/musicutils.js:1314 +#: js/blocks/PitchBlocks.js:937 +#: js/turtleactions/PitchActions.js:473 +msgid "scalar" msgstr "" -#: js/lilypond.js:621 -msgid "black rat" +#: js/utils/musicutils.js:1109 +#: js/utils/synthutils.js:72 +#: js/blocks/VolumeBlocks.js:47 +#.TRANS: musical instrument +msgid "piano" msgstr "" -#: js/lilypond.js:622 -msgid "grey squirrel" +#: js/utils/musicutils.js:1110 +#: js/utils/synthutils.js:74 +#.TRANS: musical instrument +msgid "violin" msgstr "" -#: js/lilypond.js:623 -msgid "flying squirrel" +#: js/utils/musicutils.js:1111 +#: js/utils/synthutils.js:76 +#.TRANS: viola musical instrument +msgid "viola" msgstr "" -#: js/lilypond.js:624 -msgid "bat" +#: js/utils/musicutils.js:1112 +#: js/utils/synthutils.js:114 +#.TRANS: xylophone musical instrument +msgid "xylophone" msgstr "" -#: js/lilypond.js:757 -#: js/lilypond.js:921 -#: js/lilypond.js:959 -#: js/ActionBlocks.js:1256 -#: js/ExtrasBlocks.js:553 -msgid "start drum" +#: js/utils/musicutils.js:1113 +#: js/utils/synthutils.js:136 +#.TRANS: vibraphone musical instrument +msgid "vibraphone" msgstr "" -#: js/SaveInterface.js:59 -#: js/SaveInterface.js:61 -#: js/SaveInterface.js:93 -msgid "Music Blocks Project" +#: js/utils/musicutils.js:1114 +#: js/utils/synthutils.js:78 +#.TRANS: musical instrument +msgid "cello" msgstr "" -#: js/SaveInterface.js:63 -msgid "This project was created in Music Blocks" +#: js/utils/musicutils.js:1116 +#: js/utils/synthutils.js:82 +#.TRANS: viola musical instrument +msgid "double bass" msgstr "" -#: js/SaveInterface.js:67 -msgid "Music Blocks is a Free/Libre Software application." +#: js/utils/musicutils.js:1117 +#: js/utils/synthutils.js:84 +#: js/widgets/rhythmruler.js:2511 +#.TRANS: musical instrument +msgid "guitar" msgstr "" -#: js/SaveInterface.js:69 -msgid "The source code can be accessed at" +#: js/utils/musicutils.js:1118 +#: js/utils/synthutils.js:86 +#.TRANS: musical instrument +msgid "acoustic guitar" msgstr "" -#: js/SaveInterface.js:72 -msgid "For more information, please consult the" +#: js/utils/musicutils.js:1119 +#: js/utils/synthutils.js:88 +#.TRANS: musical instrument +msgid "flute" msgstr "" -#: js/SaveInterface.js:83 -msgid "Alternatively, open the file in Music Blocks using the Load project button." +#: js/utils/musicutils.js:1120 +#: js/utils/synthutils.js:90 +#.TRANS: musical instrument +msgid "clarinet" msgstr "" -#: js/SaveInterface.js:85 -msgid "Project Code" +#: js/utils/musicutils.js:1121 +#: js/utils/synthutils.js:92 +#.TRANS: musical instrument +msgid "saxophone" msgstr "" -#: js/SaveInterface.js:87 -msgid "This code stores data about the blocks in a project." +#: js/utils/musicutils.js:1122 +#: js/utils/synthutils.js:94 +#.TRANS: musical instrument +msgid "tuba" msgstr "" -#: js/SaveInterface.js:89 -msgid "Show" +#: js/utils/musicutils.js:1123 +#: js/utils/synthutils.js:96 +#.TRANS: musical instrument +msgid "trumpet" msgstr "" -#: js/SaveInterface.js:91 -msgid "Hide" +#: js/utils/musicutils.js:1124 +#: js/utils/synthutils.js:98 +#.TRANS: musical instrument +msgid "oboe" msgstr "" -#: js/SaveInterface.js:197 -#: js/SaveInterface.js:58 -msgid "No description provided" +#: js/utils/musicutils.js:1125 +#: js/utils/synthutils.js:100 +#.TRANS: musical instrument +msgid "trombone" msgstr "" -#: js/SaveInterface.js:332 -msgid "Your recording is in progress." +#: js/utils/musicutils.js:1126 +#: js/utils/synthutils.js:116 +#.TRANS: polytone synthesizer +msgid "electronic synth" msgstr "" -#: js/SaveInterface.js:401 -#.TRANS: File name prompt for save as Lilypond -msgid "File name" +#: js/utils/musicutils.js:1127 +#: js/utils/synthutils.js:118 +#.TRANS: simple monotone synthesizer +msgid "simple 1" msgstr "" -#: js/SaveInterface.js:403 -#: js/StringHelper.js:39 -#.TRANS: Project title prompt for save as Lilypond -msgid "Project title" +#: js/utils/musicutils.js:1128 +msgid "simple 2" msgstr "" -#: js/SaveInterface.js:405 -#.TRANS: Project title prompt for save as Lilypond -msgid "Project author" +#: js/utils/musicutils.js:1129 +msgid "simple 3" msgstr "" -#: js/SaveInterface.js:407 -#.TRANS: MIDI prompt for save as Lilypond -msgid "Include MIDI output?" +#: js/utils/musicutils.js:1130 +msgid "simple 4" msgstr "" -#: js/SaveInterface.js:409 -#.TRANS: Guitar prompt for save as Lilypond -msgid "Include guitar tablature output?" +#: js/utils/musicutils.js:1131 +#: js/utils/synthutils.js:58 +#: js/blocks/DrumBlocks.js:191 +#.TRANS: white noise synthesizer +msgid "white noise" msgstr "" -#: js/SaveInterface.js:411 -#.TRANS: Lilypond is a scripting language for generating sheet music -msgid "Save as Lilypond" +#: js/utils/musicutils.js:1132 +#: js/utils/synthutils.js:60 +#.TRANS: brown noise synthesizer +msgid "brown noise" msgstr "" -#: js/SaveInterface.js:426 -#: js/EnsembleBlocks.js:75 -#: js/EnsembleBlocks.js:154 -#: js/EnsembleBlocks.js:216 -#: js/EnsembleBlocks.js:302 -#: js/EnsembleBlocks.js:348 -#: js/EnsembleBlocks.js:389 -#: js/EnsembleBlocks.js:441 -#: js/EnsembleBlocks.js:490 -#: js/EnsembleBlocks.js:536 -#: js/EnsembleBlocks.js:583 -#: js/EnsembleBlocks.js:637 -#: js/EnsembleBlocks.js:753 -#: js/EnsembleBlocks.js:840 -#: js/EnsembleBlocks.js:899 -#: js/EnsembleBlocks.js:942 -#: js/EnsembleBlocks.js:1212 -#: js/EnsembleBlocks.js:1280 -#.TRANS: default project author when saving as Lilypond -msgid "Mr. Mouse" +#: js/utils/musicutils.js:1133 +#: js/utils/synthutils.js:62 +#.TRANS: pink noise synthesizer +msgid "pink noise" msgstr "" -#: js/SaveInterface.js:573 -msgid "The Lilypond code is copied to clipboard. You can paste it here: " +#: js/utils/musicutils.js:1135 +#: js/utils/synthutils.js:148 +#: js/widgets/rhythmruler.js:2057 +#: js/widgets/rhythmruler.js:2319 +#.TRANS: musical instrument +msgid "snare drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:50 -#: js/RhythmBlockPaletteBlocks.js:232 -#.TRANS: rhythm block -#.TRANS: translate "rhythm1" as rhythm -msgid "rhythm1" +#: js/utils/musicutils.js:1136 +#: js/utils/synthutils.js:150 +#.TRANS: musical instrument +msgid "kick drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:70 -#: js/RhythmBlockPaletteBlocks.js:251 -#: js/RhythmBlockPaletteBlocks.js:484 -#: js/RhythmBlockPaletteBlocks.js:553 -#: js/RhythmBlockPaletteBlocks.js:874 -msgid "number of notes" +#: js/utils/musicutils.js:1137 +#: js/utils/synthutils.js:152 +#.TRANS: musical instrument +msgid "tom tom" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:126 -msgid "polyphonic rhythm" +#: js/utils/musicutils.js:1138 +#: js/utils/synthutils.js:154 +#.TRANS: musical instrument +msgid "floor tom" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:218 -msgid "The Rhythm block is used to generate rhythm patterns." +#: js/utils/musicutils.js:1139 +#: js/utils/synthutils.js:156 +#.TRANS: musical instrument +msgid "bass drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:279 -msgid "1/64 note" +#: js/utils/musicutils.js:1140 +#: js/utils/synthutils.js:158 +#.TRANS: a drum made from an inverted cup +msgid "cup drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:303 -msgid "1/32 note" +#: js/utils/musicutils.js:1141 +#: js/utils/synthutils.js:160 +#.TRANS: musical instrument +msgid "darbuka drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:331 -msgid "1/16 note" +#: js/utils/musicutils.js:1142 +#: js/utils/synthutils.js:164 +#.TRANS: musical instrument +msgid "hi hat" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:359 -msgid "eighth note" +#: js/utils/musicutils.js:1143 +#: js/utils/synthutils.js:166 +#.TRANS: a small metal bell +msgid "ride bell" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:387 -msgid "quarter note" +#: js/utils/musicutils.js:1144 +#: js/utils/synthutils.js:168 +#.TRANS: musical instrument +msgid "cow bell" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:415 -msgid "half note" +#: js/utils/musicutils.js:1145 +msgid "japanese drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:443 -msgid "whole note" +#: js/utils/musicutils.js:1146 +#: js/utils/synthutils.js:174 +#.TRANS: musical instrument +msgid "japanese bell" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:481 -#: js/RhythmBlockPaletteBlocks.js:550 -#: js/RhythmBlockPaletteBlocks.js:601 -#.TRANS: A tuplet is a note value divided into irregular time values. -msgid "tuplet" +#: js/utils/musicutils.js:1147 +#: js/utils/synthutils.js:170 +#.TRANS: musical instrument +msgid "triangle bell" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:767 -msgid "septuplet" +#: js/utils/musicutils.js:1148 +#: js/utils/synthutils.js:172 +#.TRANS: musical instrument +msgid "finger cymbals" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:795 -msgid "quintuplet" +#: js/utils/musicutils.js:1149 +#: js/utils/synthutils.js:176 +#.TRANS: a musically tuned set of bells +msgid "chime" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:823 -msgid "triplet" +#: js/utils/musicutils.js:1150 +#: js/utils/synthutils.js:178 +#.TRANS: a musical instrument +msgid "gong" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:850 -msgid "simple tuplet" +#: js/utils/musicutils.js:1151 +#: js/utils/synthutils.js:180 +#.TRANS: sound effect +msgid "clang" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:860 -msgid "Tuplets are a collection of notes that get scaled to a specific duration." +#: js/utils/musicutils.js:1152 +#: js/utils/synthutils.js:182 +#.TRANS: sound effect +msgid "crash" msgstr "" -#: js/WidgetBlocks.js:71 -#.TRANS: sound envelope (ADSR) -msgid "envelope" +#: js/utils/musicutils.js:1153 +#: js/utils/synthutils.js:184 +#.TRANS: sound effect +msgid "bottle" msgstr "" -#: js/WidgetBlocks.js:79 -#.TRANS: Attack time is the time taken for initial run-up of level from nil to peak, beginning when the key is first pressed. -msgid "attack" +#: js/utils/musicutils.js:1154 +#: js/utils/synthutils.js:186 +#.TRANS: sound effect +msgid "clap" msgstr "" -#: js/WidgetBlocks.js:81 -#.TRANS: Decay time is the time taken for the subsequent run down from the attack level to the designated sustain level. -msgid "decay" +#: js/utils/musicutils.js:1155 +#: js/utils/synthutils.js:188 +#.TRANS: sound effect +msgid "slap" msgstr "" -#: js/WidgetBlocks.js:83 -#.TRANS: Sustain level is the level during the main sequence of the sound's duration, until the key is released. -msgid "sustain" +#: js/utils/musicutils.js:1156 +#: js/utils/synthutils.js:190 +#.TRANS: sound effect +msgid "splash" msgstr "" -#: js/WidgetBlocks.js:85 -#.TRANS: Release time is the time taken for the level to decay from the sustain level to zero after the key is released. -msgid "release" +#: js/utils/musicutils.js:1157 +#: js/utils/synthutils.js:192 +#.TRANS: sound effect +msgid "bubbles" msgstr "" -#: js/WidgetBlocks.js:96 -msgid "Attack value should be from 0 to 100." +#: js/utils/musicutils.js:1158 +#: js/utils/synthutils.js:194 +#.TRANS: sound effect +msgid "raindrop" msgstr "" -#: js/WidgetBlocks.js:99 -msgid "Decay value should be from 0 to 100." +#: js/utils/musicutils.js:1159 +#: js/utils/synthutils.js:196 +#.TRANS: animal sound effect +msgid "cat" msgstr "" -#: js/WidgetBlocks.js:102 -msgid "Sustain value should be from 0 to 100." +#: js/utils/musicutils.js:1160 +#: js/utils/synthutils.js:198 +#.TRANS: animal sound effect +msgid "cricket" msgstr "" -#: js/WidgetBlocks.js:105 -msgid "Release value should be from 0-100." +#: js/utils/musicutils.js:1161 +#: js/utils/synthutils.js:200 +#.TRANS: animal sound effect +msgid "dog" msgstr "" -#: js/WidgetBlocks.js:121 -msgid "You are adding multiple envelope blocks." +#: js/utils/musicutils.js:1163 +#: js/utils/synthutils.js:102 +#.TRANS: musical instrument +msgid "banjo" msgstr "" -#: js/WidgetBlocks.js:144 -#.TRANS: a filter removes some unwanted components from a signal -msgid "filter" +#: js/utils/musicutils.js:1164 +#: js/utils/synthutils.js:104 +#.TRANS: musical instrument +msgid "koto" msgstr "" -#: js/WidgetBlocks.js:149 -#: js/musicutils.js:706 -#: js/musicutils.js:1105 -#.TRANS: highpass filter -msgid "highpass" +#: js/utils/musicutils.js:1165 +#: js/utils/synthutils.js:106 +#.TRANS: musical instrument +msgid "dulcimer" msgstr "" -#: js/WidgetBlocks.js:152 -#: js/ToneBlocks.js:42 -#: js/timbre.js:1558 -#: js/timbre.js:1808 -#.TRANS: type of filter, e.g., lowpass, highpass, etc. -#.TRANS: there are different types (sine, triangle, square...) of oscillators. -msgid "type" +#: js/utils/musicutils.js:1166 +#: js/utils/synthutils.js:108 +#.TRANS: musical instrument +msgid "electric guitar" msgstr "" -#: js/WidgetBlocks.js:154 -#: js/timbre.js:1818 -#.TRANS: rolloff is the steepness of a change in frequency. -msgid "rolloff" +#: js/utils/musicutils.js:1167 +#: js/utils/synthutils.js:110 +#.TRANS: musical instrument +msgid "bassoon" msgstr "" -#: js/WidgetBlocks.js:155 -#: js/MediaBlocks.js:692 -#: js/temperament.js:382 -#: js/temperament.js:417 -#: js/temperament.js:477 -#: js/temperament.js:485 -#: js/temperament.js:1348 -#: js/timbre.js:1842 -msgid "frequency" +#: js/utils/musicutils.js:1168 +#: js/utils/synthutils.js:112 +#.TRANS: musical instrument +msgid "celeste" msgstr "" -#: js/WidgetBlocks.js:179 -#.TRANS: rolloff is the steepness of a change in frequency. -msgid "Rolloff value should be either -12, -24, -48, or -96 decibels/octave." +#: js/utils/musicutils.js:1170 +#: js/widgets/temperament.js:787 +#.TRANS: musical temperament +msgid "equal" msgstr "" -#: js/WidgetBlocks.js:211 -msgid "The Temperament tool is used to define custom tuning." +#: js/utils/musicutils.js:1172 +#.TRANS: musical temperament +msgid "Pythagorean" msgstr "" -#: js/WidgetBlocks.js:277 -#: js/sampler.js:329 -msgid "Upload a sample and adjust its pitch center." +#: js/utils/musicutils.js:1174 +#.TRANS: musical temperament +msgid "just intonation" msgstr "" -#: js/WidgetBlocks.js:284 -#.TRANS: the speed at music is should be played. -msgid "sampler" +#: js/utils/musicutils.js:1176 +#.TRANS: musical temperament +msgid "meantone" msgstr "" -#: js/WidgetBlocks.js:329 -#: js/WidgetBlocks.js:334 -#: js/IntervalsBlocks.js:928 -#: js/VolumeBlocks.js:411 -#: js/ToneBlocks.js:946 -#: js/VolumeActions.js:218 -#: js/musicutils.js:704 -#: js/musicutils.js:755 -#: js/musicutils.js:798 -#: js/musicutils.js:820 -#: js/musicutils.js:1136 -#: js/synthutils.js:118 -#: js/modewidget.js:919 -#.TRANS: customize voice -msgid "custom" +#: js/utils/musicutils.js:1193 +msgid "major 7th" msgstr "" -#: js/WidgetBlocks.js:432 -msgid "The Meter block opens a tool to select strong beats for the meter." +#: js/utils/musicutils.js:1194 +msgid "minor 7th" msgstr "" -#: js/WidgetBlocks.js:473 -msgid "The oscilloscope block opens a tool to visualize waveforms." +#: js/utils/musicutils.js:1195 +msgid "dominant 7th" msgstr "" -#: js/WidgetBlocks.js:478 -msgid "oscilloscope" +#: js/utils/musicutils.js:1196 +msgid "minor-major 7th" msgstr "" -#: js/WidgetBlocks.js:530 -msgid "The Custom mode block opens a tool to explore musical mode (the spacing of the notes in a scale)." +#: js/utils/musicutils.js:1197 +msgid "fully-diminished 7th" msgstr "" -#: js/WidgetBlocks.js:536 -#.TRANS: musical mode is the pattern of half-steps in an octave, e.g., Major or Minor modes -msgid "custom mode" +#: js/utils/musicutils.js:1198 +msgid "half-diminished 7th" msgstr "" -#: js/WidgetBlocks.js:570 -msgid "The Tempo block opens a metronome to visualize the beat." +#: js/utils/musicutils.js:1557 +#: js/utils/musicutils.js:1569 +msgid "Equal (12EDO)" msgstr "" -#: js/WidgetBlocks.js:617 -msgid "The Arpeggio Widget is used to compose chord sequences." +#: js/utils/musicutils.js:1558 +#: js/utils/musicutils.js:1570 +msgid "5-limit Just Intonation" msgstr "" -#: js/WidgetBlocks.js:623 -#: js/IntervalsBlocks.js:683 -msgid "arpeggio" +#: js/utils/musicutils.js:1559 +#: js/utils/musicutils.js:1571 +msgid "Pythagorean (3-limit JI)" msgstr "" -#: js/WidgetBlocks.js:677 -msgid "The Pitch drum matrix is used to map pitches to drum sounds." +#: js/utils/musicutils.js:1560 +#: js/utils/musicutils.js:1561 +#: js/utils/musicutils.js:1572 +#: js/utils/musicutils.js:1573 +msgid "Meantone" msgstr "" -#: js/WidgetBlocks.js:682 -#.TRANS: makes a mapping between pitches and drum sounds -msgid "pitch-drum mapper" +#: js/utils/musicutils.js:1574 +msgid "Custom" msgstr "" -#: js/WidgetBlocks.js:724 -msgid "You must have at least one pitch block and one drum block in the matrix." +#: js/utils/musicutils.js:5387 +#: js/utils/musicutils.js:5430 +msgid "current" msgstr "" -#: js/WidgetBlocks.js:746 -msgid "The Pitch slider tool to is used to generate pitches at selected frequencies." +#: js/utils/musicutils.js:5390 +#: js/utils/musicutils.js:5421 +msgid "next" msgstr "" -#: js/WidgetBlocks.js:751 -#.TRANS: widget to generate pitches using a slider -msgid "pitch slider" +#: js/utils/musicutils.js:5393 +#: js/utils/musicutils.js:5426 +msgid "previous" msgstr "" -#: js/WidgetBlocks.js:788 -msgid "chromatic keyboard" +#: js/utils/synthutils.js:120 +#.TRANS: simple monotone synthesizer +msgid "simple-2" msgstr "" -#: js/WidgetBlocks.js:815 -#: js/WidgetBlocks.js:874 -#.TRANS: widget to generate pitches using a slider -msgid "music keyboard" +#: js/utils/synthutils.js:122 +#.TRANS: simple monotone synthesizer +msgid "simple-3" msgstr "" -#: js/WidgetBlocks.js:859 -#: js/WidgetBlocks.js:866 -msgid "The Music keyboard block opens a piano keyboard that can be used to create notes." +#: js/utils/synthutils.js:124 +#.TRANS: simple monotone synthesizer +msgid "simple-4" msgstr "" -#: js/WidgetBlocks.js:910 -msgid "The Pitch staircase tool to is used to generate pitches from a given ratio." +#: js/utils/synthutils.js:162 +#.TRANS: musical instrument +msgid "taiko" msgstr "" -#: js/WidgetBlocks.js:917 -#.TRANS: generate a progressive sequence of pitches -msgid "pitch staircase" +#: js/blocks/ActionBlocks.js:58 +msgid "The Return block will return a value from an action." msgstr "" -#: js/WidgetBlocks.js:982 -msgid "The Rhythm Maker block opens a tool to create drum machines." +#: js/blocks/ActionBlocks.js:75 +msgid "return" msgstr "" -#: js/WidgetBlocks.js:1036 -msgid "G major scale" +#: js/blocks/ActionBlocks.js:128 +msgid "The Return to URL block will return a value to a webpage." msgstr "" -#: js/WidgetBlocks.js:1064 -msgid "C major scale" +#: js/blocks/ActionBlocks.js:145 +msgid "return to URL" msgstr "" -#: js/WidgetBlocks.js:1097 -msgid "The Phrase Maker block opens a tool to create musical phrases." +#: js/blocks/ActionBlocks.js:233 +#: js/blocks/ActionBlocks.js:290 +#: js/blocks/ActionBlocks.js:501 +#: js/blocks/ActionBlocks.js:688 +msgid "The Calculate block returns a value calculated by an action." msgstr "" -#: js/WidgetBlocks.js:1104 -#.TRANS: assigns pitch to a sequence of beats to generate a melody -msgid "phrase maker" +#: js/blocks/ActionBlocks.js:251 +#: js/blocks/ActionBlocks.js:517 +#: js/blocks/ActionBlocks.js:707 +msgid "calculate" msgstr "" -#: js/WidgetBlocks.js:1168 -msgid "You must have at least one pitch block and one rhythm block in the matrix." +#: js/blocks/ActionBlocks.js:376 +#: js/blocks/ActionBlocks.js:593 +#: js/blocks/ActionBlocks.js:942 +#: js/blocks/ActionBlocks.js:1389 +#.TRANS: do is the do something or take an action. +msgid "The Do block is used to initiate an action." msgstr "" -#: js/WidgetBlocks.js:1220 -msgid "The Status block opens a tool for inspecting the status of Music Blocks as it is running." +#: js/blocks/ActionBlocks.js:390 +#: js/blocks/ActionBlocks.js:610 +#: js/blocks/ActionBlocks.js:959 +#: js/blocks/ActionBlocks.js:1048 +#: js/blocks/MeterBlocks.js:769 +msgid "do1" msgstr "" -#: js/IntervalsBlocks.js:45 -msgid "set temperament" +#: js/blocks/ActionBlocks.js:390 +#: js/blocks/ActionBlocks.js:610 +#: js/blocks/ActionBlocks.js:959 +#: js/blocks/ActionBlocks.js:1048 +#: js/blocks/FlowBlocks.js:742 +#: js/blocks/FlowBlocks.js:822 +#: js/blocks/MeterBlocks.js:769 +msgid "do" msgstr "" -#: js/IntervalsBlocks.js:63 -#: js/MediaBlocks.js:746 -#: js/PitchBlocks.js:657 -#: js/PitchBlocks.js:933 -#: js/PitchBlocks.js:972 -#: js/PitchBlocks.js:1005 -#: js/PitchBlocks.js:1166 -#: js/PitchBlocks.js:1679 -#: js/PitchBlocks.js:1720 -#: js/PitchBlocks.js:1827 -#: js/ToneBlocks.js:1025 -#.TRANS: adjusts the shift up or down by one octave (twelve half-steps in the interval between two notes, one having twice or half the frequency in Hz of the other.) -msgid "octave" +#: js/blocks/ActionBlocks.js:791 +#: js/blocks/ActionBlocks.js:865 +msgid "The Arg block contains the value of an argument passed to an action." msgstr "" -#: js/IntervalsBlocks.js:99 -msgid "The Temperament name block is used to select a tuning method." +#: js/blocks/ActionBlocks.js:806 +#: js/blocks/ActionBlocks.js:878 +msgid "arg" msgstr "" -#: js/IntervalsBlocks.js:161 -msgid "doubly" +#: js/blocks/ActionBlocks.js:836 +#: js/blocks/ActionBlocks.js:900 +#: js/blocks/ActionBlocks.js:908 +msgid "Invalid argument" msgstr "" -#: js/IntervalsBlocks.js:166 -msgid "The Doubly block will double the size of an interval." +#: js/blocks/ActionBlocks.js:944 +msgid "In the example, it is used with the One of block to choose a random phase." msgstr "" -#: js/IntervalsBlocks.js:262 -msgid "interval number" +#: js/blocks/ActionBlocks.js:1019 +#: js/blocks/ActionBlocks.js:1026 +msgid "The Listen block is used to listen for an event such as a mouse click." msgstr "" -#: js/IntervalsBlocks.js:330 -#.TRANS: measure the distance between two pitches in semi-tones -msgid "semi-tone interval measure" +#: js/blocks/ActionBlocks.js:1028 +msgid "When the event happens, an action is taken." msgstr "" -#: js/IntervalsBlocks.js:397 -#: js/IntervalsBlocks.js:513 -msgid "You must use two pitch blocks when measuring an interval." +#: js/blocks/ActionBlocks.js:1045 +msgid "on" msgstr "" -#: js/IntervalsBlocks.js:439 -msgid "The Scalar interval block measures the distance between two notes in the current key and mode." +#: js/blocks/ActionBlocks.js:1048 +#: js/blocks/ActionBlocks.js:1049 +#: js/blocks/ActionBlocks.js:1153 +msgid "event" msgstr "" -#: js/IntervalsBlocks.js:445 -#.TRANS: measure the distance between two pitches in steps of musical scale -msgid "scalar interval measure" +#: js/blocks/ActionBlocks.js:1133 +msgid "The Broadcast block is used to trigger an event." msgstr "" -#: js/IntervalsBlocks.js:592 -#: js/musicutils.js:637 -#: js/musicutils.js:908 -#.TRANS: perfect is a music term related to intervals -msgid "perfect" +#: js/blocks/ActionBlocks.js:1151 +msgid "broadcast" msgstr "" -#: js/IntervalsBlocks.js:621 -msgid "In the figure, we add sol# to sol." +#: js/blocks/ActionBlocks.js:1208 +msgid "Each Start block is a separate voice." msgstr "" -#: js/IntervalsBlocks.js:627 -#: js/OrnamentBlocks.js:220 -#.TRANS: calculate a relative step between notes based on semi-tones -msgid "semi-tone interval" +#: js/blocks/ActionBlocks.js:1304 +msgid "It is often used for storing a phrase of music that is repeated." msgstr "" -#: js/IntervalsBlocks.js:676 -msgid "The output of the example is: do, mi, sol, sol, ti, mi" +#: js/blocks/ActionBlocks.js:1495 +msgid "define temperament" msgstr "" -#: js/IntervalsBlocks.js:735 -msgid "The Chord block calculates common chords." +#: js/blocks/BooleanBlocks.js:44 +msgid "The Not block is the logical not operator." msgstr "" -#: js/IntervalsBlocks.js:737 -msgid "In the figure, we generate a C-major chord." +#: js/blocks/BooleanBlocks.js:62 +msgid "not" msgstr "" -#: js/IntervalsBlocks.js:742 -msgid "chord" +#: js/blocks/BooleanBlocks.js:134 +msgid "The And block is the logical and operator." msgstr "" -#: js/IntervalsBlocks.js:794 -msgid "The Ratio Interval block calculates an interval based on a ratio." +#: js/blocks/BooleanBlocks.js:152 +msgid "and" msgstr "" -#: js/IntervalsBlocks.js:799 -msgid "ratio interval" +#: js/blocks/BooleanBlocks.js:218 +msgid "The Or block is the logical or operator." msgstr "" -#: js/IntervalsBlocks.js:868 -msgid "In the figure, we add la to sol." +#: js/blocks/BooleanBlocks.js:236 +msgid "or" msgstr "" -#: js/IntervalsBlocks.js:924 -#.TRANS: define a custom mode -msgid "define mode" +#: js/blocks/BooleanBlocks.js:302 +msgid "The XOR block is the logical XOR operator." msgstr "" -#: js/IntervalsBlocks.js:977 -msgid "movable Do" +#: js/blocks/BooleanBlocks.js:320 +msgid "xor" msgstr "" -#: js/IntervalsBlocks.js:1028 -#.TRANS: mode length is the number of notes in the mode, e.g., 7 for major and minor scales; 12 for chromatic scales -msgid "mode length" +#: js/blocks/BooleanBlocks.js:808 +msgid "The Equal block returns True if the two numbers are equal." msgstr "" -#: js/IntervalsBlocks.js:1037 -msgid "The Mode length block is the number of notes in the current scale." +#: js/blocks/BooleanBlocks.js:909 +msgid "The Not-equal-to block returns True if the two numbers are not equal to each other." msgstr "" -#: js/IntervalsBlocks.js:1039 -msgid "Most Western scales have 7 notes." +#: js/blocks/BooleanBlocks.js:1008 +msgid "The Boolean block is used to specify true or false." msgstr "" -#: js/IntervalsBlocks.js:1088 -#.TRANS: the mode in music is 'major', 'minor', etc. -msgid "current mode" +#: js/blocks/BoxesBlocks.js:53 +#: js/blocks/BoxesBlocks.js:59 +msgid "The Add-to block is used to add to the value stored in a box." msgstr "" -#: js/IntervalsBlocks.js:1141 -#.TRANS: the key is a group of pitches with which a music composition is created -msgid "current key" +#: js/blocks/BoxesBlocks.js:61 +msgid "It can also be used with other blocks such as Color and Pen size." msgstr "" -#: js/IntervalsBlocks.js:1193 -#: js/IntervalsBlocks.js:1238 -#.TRANS: set the key and mode, e.g. C Major -msgid "set key" +#: js/blocks/BoxesBlocks.js:73 +msgid "add" msgstr "" -#: js/IntervalsBlocks.js:1247 -#: js/IntervalsBlocks.js:1253 -msgid "The Set key block is used to set the key and mode," +#: js/blocks/BoxesBlocks.js:75 +#: js/widgets/temperament.js:857 +msgid "to" msgstr "" -#: js/IntervalsBlocks.js:1253 -msgid "eg C Major" +#: js/blocks/BoxesBlocks.js:75 +#: js/blocks/BoxesBlocks.js:595 +#: js/blocks/HeapBlocks.js:544 +msgid "value1" msgstr "" -#: js/IntervalsBlocks.js:1266 -#: js/DictBlocks.js:215 -#: js/DictBlocks.js:216 -#: js/DictBlocks.js:289 -#: js/DictBlocks.js:290 -#: js/DictBlocks.js:357 -#: js/DictBlocks.js:430 -#: js/DictBlocks.js:431 -#.TRANS: key, e.g., C in C Major -msgid "key" +#: js/blocks/BoxesBlocks.js:118 +msgid "Block does not support incrementing." msgstr "" -#: js/ActionBlocks.js:58 -msgid "The Return block will return a value from an action." +#: js/blocks/BoxesBlocks.js:152 +msgid "The Add-1-to block adds one to the value stored in a box." msgstr "" -#: js/ActionBlocks.js:75 -msgid "return" +#: js/blocks/BoxesBlocks.js:163 +msgid "add 1 to" msgstr "" -#: js/ActionBlocks.js:128 -msgid "The Return to URL block will return a value to a webpage." +#: js/blocks/BoxesBlocks.js:211 +msgid "The Subtract-1-from block subtracts one from the value stored in a box." msgstr "" -#: js/ActionBlocks.js:145 -msgid "return to URL" +#: js/blocks/BoxesBlocks.js:222 +msgid "subtract 1 from" msgstr "" -#: js/ActionBlocks.js:233 -#: js/ActionBlocks.js:290 -#: js/ActionBlocks.js:501 -#: js/ActionBlocks.js:688 -msgid "The Calculate block returns a value calculated by an action." +#: js/blocks/BoxesBlocks.js:270 +#: js/blocks/BoxesBlocks.js:387 +msgid "The Box block returns the value stored in a box." msgstr "" -#: js/ActionBlocks.js:251 -#: js/ActionBlocks.js:517 -#: js/ActionBlocks.js:707 -msgid "calculate" +#: js/blocks/BoxesBlocks.js:500 +#: js/blocks/BoxesBlocks.js:576 +msgid "The Store in block will store a value in a box." msgstr "" -#: js/ActionBlocks.js:376 -#: js/ActionBlocks.js:593 -#: js/ActionBlocks.js:942 -#: js/ActionBlocks.js:1389 -#.TRANS: do is the do something or take an action. -msgid "The Do block is used to initiate an action." +#: js/blocks/BoxesBlocks.js:595 +#: js/blocks/EnsembleBlocks.js:391 +#: js/blocks/EnsembleBlocks.js:402 +msgid "name1" msgstr "" -#: js/ActionBlocks.js:390 -#: js/ActionBlocks.js:610 -#: js/ActionBlocks.js:959 -#: js/ActionBlocks.js:1048 -#: js/MeterBlocks.js:769 -msgid "do1" +#: js/blocks/BoxesBlocks.js:652 +msgid "The Box2 block returns the value stored in Box2." msgstr "" -#: js/ActionBlocks.js:390 -#: js/ActionBlocks.js:610 -#: js/ActionBlocks.js:959 -#: js/ActionBlocks.js:1048 -#: js/FlowBlocks.js:742 -#: js/FlowBlocks.js:822 -#: js/MeterBlocks.js:769 -msgid "do" +#: js/blocks/BoxesBlocks.js:703 +msgid "The Store in Box2 block is used to store a value in Box2." msgstr "" -#: js/ActionBlocks.js:791 -#: js/ActionBlocks.js:865 -msgid "The Arg block contains the value of an argument passed to an action." +#: js/blocks/BoxesBlocks.js:715 +msgid "store in box2" msgstr "" -#: js/ActionBlocks.js:806 -#: js/ActionBlocks.js:878 -msgid "arg" +#: js/blocks/BoxesBlocks.js:761 +msgid "The Box1 block returns the value stored in Box1." msgstr "" -#: js/ActionBlocks.js:836 -#: js/ActionBlocks.js:900 -#: js/ActionBlocks.js:908 -msgid "Invalid argument" +#: js/blocks/BoxesBlocks.js:812 +msgid "The Store in Box1 block is used to store a value in Box1." msgstr "" -#: js/ActionBlocks.js:944 -msgid "In the example, it is used with the One of block to choose a random phase." +#: js/blocks/BoxesBlocks.js:826 +msgid "store in box1" msgstr "" -#: js/ActionBlocks.js:1019 -#: js/ActionBlocks.js:1026 -msgid "The Listen block is used to listen for an event such as a mouse click." +#: js/blocks/DictBlocks.js:77 +msgid "show dictionary" msgstr "" -#: js/ActionBlocks.js:1028 -msgid "When the event happens, an action is taken." +#: js/blocks/DictBlocks.js:80 +#: js/blocks/DictBlocks.js:145 +#: js/blocks/DictBlocks.js:216 +#: js/blocks/DictBlocks.js:290 +#: js/blocks/ProgramBlocks.js:396 +#: js/blocks/ProgramBlocks.js:501 +#: js/blocks/ProgramBlocks.js:664 +msgid "My Dictionary" msgstr "" -#: js/ActionBlocks.js:1045 -msgid "on" +#: js/blocks/DictBlocks.js:129 +msgid "The Dictionary block returns a dictionary." msgstr "" -#: js/ActionBlocks.js:1048 -#: js/ActionBlocks.js:1049 -#: js/ActionBlocks.js:1153 -msgid "event" +#: js/blocks/DictBlocks.js:197 +#: js/blocks/DictBlocks.js:339 +msgid "The Get-dict block returns a value in the dictionary for a specified key." msgstr "" -#: js/ActionBlocks.js:1133 -msgid "The Broadcast block is used to trigger an event." +#: js/blocks/DictBlocks.js:212 +#: js/blocks/DictBlocks.js:354 +#.TRANS: retrieve a value from the dictionary with a given key +msgid "get value" msgstr "" -#: js/ActionBlocks.js:1151 -msgid "broadcast" +#: js/blocks/DictBlocks.js:215 +#: js/blocks/DictBlocks.js:216 +#: js/blocks/DictBlocks.js:289 +#: js/blocks/DictBlocks.js:290 +#: js/blocks/DictBlocks.js:357 +#: js/blocks/DictBlocks.js:430 +#: js/blocks/DictBlocks.js:431 +msgid "key2" msgstr "" -#: js/ActionBlocks.js:1208 -msgid "Each Start block is a separate voice." +#: js/blocks/DictBlocks.js:215 +#: js/blocks/DictBlocks.js:216 +#: js/blocks/DictBlocks.js:289 +#: js/blocks/DictBlocks.js:290 +#: js/blocks/DictBlocks.js:357 +#: js/blocks/DictBlocks.js:430 +#: js/blocks/DictBlocks.js:431 +#: js/blocks/IntervalsBlocks.js:1462 +#.TRANS: key, e.g., C in C Major +msgid "key" msgstr "" -#: js/ActionBlocks.js:1304 -msgid "It is often used for storing a phrase of music that is repeated." +#: js/blocks/DictBlocks.js:271 +#: js/blocks/DictBlocks.js:411 +msgid "The Set-dict block sets a value in the dictionary for a specified key." msgstr "" -#: js/ActionBlocks.js:1495 -msgid "define temperament" +#: js/blocks/DictBlocks.js:286 +#: js/blocks/DictBlocks.js:427 +#.TRANS: set a value in the dictionary for a given key +msgid "set value" msgstr "" -#: js/EnsembleBlocks.js:66 +#: js/blocks/EnsembleBlocks.js:66 msgid "mouse index heap" msgstr "" -#: js/EnsembleBlocks.js:68 +#: js/blocks/EnsembleBlocks.js:68 msgid "The Mouse index heap block returns a value in the heap at a specified location for a specified mouse." msgstr "" -#: js/EnsembleBlocks.js:77 -#: js/EnsembleBlocks.js:1080 +#: js/blocks/EnsembleBlocks.js:77 +#: js/blocks/EnsembleBlocks.js:1080 msgid "mouse name" msgstr "" -#: js/EnsembleBlocks.js:77 -#: js/EnsembleBlocks.js:92 -#: js/HeapBlocks.js:544 +#: js/blocks/EnsembleBlocks.js:77 +#: js/blocks/EnsembleBlocks.js:92 +#: js/blocks/HeapBlocks.js:544 #.TRANS: value1 is a numeric value (JAPANESE ONLY) msgid "index" msgstr "" -#: js/EnsembleBlocks.js:80 +#: js/blocks/EnsembleBlocks.js:80 msgid "turtle index heap" msgstr "" -#: js/EnsembleBlocks.js:82 +#: js/blocks/EnsembleBlocks.js:82 msgid "The Turtle index heap block returns a value in the heap at a specified location for a specified turtle." msgstr "" -#: js/EnsembleBlocks.js:90 -#: js/EnsembleBlocks.js:167 -#: js/EnsembleBlocks.js:230 -#: js/EnsembleBlocks.js:316 -#: js/EnsembleBlocks.js:362 -#: js/EnsembleBlocks.js:400 -#: js/EnsembleBlocks.js:454 -#: js/EnsembleBlocks.js:504 -#: js/EnsembleBlocks.js:550 -#: js/EnsembleBlocks.js:597 -#: js/EnsembleBlocks.js:651 -#: js/EnsembleBlocks.js:763 -#: js/EnsembleBlocks.js:854 -#: js/EnsembleBlocks.js:915 -#: js/EnsembleBlocks.js:955 -#: js/EnsembleBlocks.js:1219 -#: js/EnsembleBlocks.js:1293 +#: js/blocks/EnsembleBlocks.js:90 +#: js/blocks/EnsembleBlocks.js:167 +#: js/blocks/EnsembleBlocks.js:230 +#: js/blocks/EnsembleBlocks.js:316 +#: js/blocks/EnsembleBlocks.js:362 +#: js/blocks/EnsembleBlocks.js:400 +#: js/blocks/EnsembleBlocks.js:454 +#: js/blocks/EnsembleBlocks.js:504 +#: js/blocks/EnsembleBlocks.js:550 +#: js/blocks/EnsembleBlocks.js:597 +#: js/blocks/EnsembleBlocks.js:651 +#: js/blocks/EnsembleBlocks.js:763 +#: js/blocks/EnsembleBlocks.js:854 +#: js/blocks/EnsembleBlocks.js:915 +#: js/blocks/EnsembleBlocks.js:955 +#: js/blocks/EnsembleBlocks.js:1219 +#: js/blocks/EnsembleBlocks.js:1293 #.TRANS: Yertle is the name of a turtle. msgid "Yertle" msgstr "" -#: js/EnsembleBlocks.js:92 -#: js/EnsembleBlocks.js:1089 +#: js/blocks/EnsembleBlocks.js:92 +#: js/blocks/EnsembleBlocks.js:1089 msgid "turtle name" msgstr "" -#: js/EnsembleBlocks.js:122 -#: js/EnsembleBlocks.js:1197 -#: js/HeapBlocks.js:474 -#: js/HeapBlocks.js:572 +#: js/blocks/EnsembleBlocks.js:122 +#: js/blocks/EnsembleBlocks.js:1197 +#: js/blocks/HeapBlocks.js:474 +#: js/blocks/HeapBlocks.js:572 msgid "Index must be > 0." msgstr "" -#: js/EnsembleBlocks.js:127 -#: js/HeapBlocks.js:479 -#: js/HeapBlocks.js:577 +#: js/blocks/EnsembleBlocks.js:127 +#: js/blocks/HeapBlocks.js:479 +#: js/blocks/HeapBlocks.js:577 msgid "Maximum heap size is 1000." msgstr "" -#: js/EnsembleBlocks.js:145 +#: js/blocks/EnsembleBlocks.js:145 msgid "stop mouse" msgstr "" -#: js/EnsembleBlocks.js:147 +#: js/blocks/EnsembleBlocks.js:147 msgid "The Stop mouse block stops the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:158 +#: js/blocks/EnsembleBlocks.js:158 msgid "stop turtle" msgstr "" -#: js/EnsembleBlocks.js:160 +#: js/blocks/EnsembleBlocks.js:160 msgid "The Stop turtle block stops the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:184 -#: js/EnsembleBlocks.js:247 -#: js/EnsembleBlocks.js:413 -#: js/EnsembleBlocks.js:468 -#: js/EnsembleBlocks.js:706 -#: js/EnsembleBlocks.js:808 -#: js/EnsembleBlocks.js:870 -#: js/EnsembleBlocks.js:1190 -#: js/EnsembleBlocks.js:1253 +#: js/blocks/EnsembleBlocks.js:184 +#: js/blocks/EnsembleBlocks.js:247 +#: js/blocks/EnsembleBlocks.js:413 +#: js/blocks/EnsembleBlocks.js:468 +#: js/blocks/EnsembleBlocks.js:706 +#: js/blocks/EnsembleBlocks.js:808 +#: js/blocks/EnsembleBlocks.js:870 +#: js/blocks/EnsembleBlocks.js:1190 +#: js/blocks/EnsembleBlocks.js:1253 msgid "Cannot find mouse" msgstr "" -#: js/EnsembleBlocks.js:186 -#: js/EnsembleBlocks.js:249 -#: js/EnsembleBlocks.js:415 -#: js/EnsembleBlocks.js:470 -#: js/EnsembleBlocks.js:708 -#: js/EnsembleBlocks.js:810 -#: js/EnsembleBlocks.js:872 -#: js/EnsembleBlocks.js:1192 -#: js/EnsembleBlocks.js:1255 +#: js/blocks/EnsembleBlocks.js:186 +#: js/blocks/EnsembleBlocks.js:249 +#: js/blocks/EnsembleBlocks.js:415 +#: js/blocks/EnsembleBlocks.js:470 +#: js/blocks/EnsembleBlocks.js:708 +#: js/blocks/EnsembleBlocks.js:810 +#: js/blocks/EnsembleBlocks.js:872 +#: js/blocks/EnsembleBlocks.js:1192 +#: js/blocks/EnsembleBlocks.js:1255 msgid "Cannot find turtle" msgstr "" -#: js/EnsembleBlocks.js:206 +#: js/blocks/EnsembleBlocks.js:206 msgid "start mouse" msgstr "" -#: js/EnsembleBlocks.js:209 +#: js/blocks/EnsembleBlocks.js:209 msgid "The Start mouse block starts the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:220 +#: js/blocks/EnsembleBlocks.js:220 msgid "start turtle" msgstr "" -#: js/EnsembleBlocks.js:223 +#: js/blocks/EnsembleBlocks.js:223 msgid "The Start turtle block starts the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:256 +#: js/blocks/EnsembleBlocks.js:256 msgid "Mouse is already running." msgstr "" -#: js/EnsembleBlocks.js:258 +#: js/blocks/EnsembleBlocks.js:258 msgid "Turtle is already running." msgstr "" -#: js/EnsembleBlocks.js:282 +#: js/blocks/EnsembleBlocks.js:282 msgid "Cannot find start block" msgstr "" -#: js/EnsembleBlocks.js:292 +#: js/blocks/EnsembleBlocks.js:292 #.TRANS: pen color for this mouse msgid "mouse color" msgstr "" -#: js/EnsembleBlocks.js:294 +#: js/blocks/EnsembleBlocks.js:294 msgid "The Mouse color block returns the pen color of the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:306 +#: js/blocks/EnsembleBlocks.js:306 #.TRANS: pen color for this turtle msgid "turtle color" msgstr "" -#: js/EnsembleBlocks.js:308 +#: js/blocks/EnsembleBlocks.js:308 msgid "The Turtle color block returns the pen color of the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:338 +#: js/blocks/EnsembleBlocks.js:338 #.TRANS: heading (compass direction) for this mouse msgid "mouse heading" msgstr "" -#: js/EnsembleBlocks.js:340 +#: js/blocks/EnsembleBlocks.js:340 msgid "The Mouse heading block returns the heading of the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:352 +#: js/blocks/EnsembleBlocks.js:352 #.TRANS: heading (compass direction) for this turtle msgid "turtle heading" msgstr "" -#: js/EnsembleBlocks.js:354 +#: js/blocks/EnsembleBlocks.js:354 msgid "The Turtle heading block returns the heading of the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:384 -#: js/EnsembleBlocks.js:439 +#: js/blocks/EnsembleBlocks.js:384 +#: js/blocks/EnsembleBlocks.js:439 #.TRANS: set xy position for this mouse msgid "set mouse" msgstr "" -#: js/EnsembleBlocks.js:391 -#: js/EnsembleBlocks.js:402 -#: js/BoxesBlocks.js:595 -msgid "name1" -msgstr "" - -#: js/EnsembleBlocks.js:391 -#: js/EnsembleBlocks.js:402 -#: js/ProgramBlocks.js:881 -#: js/GraphicsBlocks.js:235 -#: js/GraphicsBlocks.js:313 -#: js/GraphicsBlocks.js:436 -#: js/GraphicsBlocks.js:487 -#: js/GraphicsBlocks.js:534 -#: js/GraphicsBlocks.js:750 +#: js/blocks/EnsembleBlocks.js:391 +#: js/blocks/EnsembleBlocks.js:402 +#: js/blocks/GraphicsBlocks.js:235 +#: js/blocks/GraphicsBlocks.js:313 +#: js/blocks/GraphicsBlocks.js:436 +#: js/blocks/GraphicsBlocks.js:487 +#: js/blocks/GraphicsBlocks.js:534 +#: js/blocks/GraphicsBlocks.js:750 +#: js/blocks/ProgramBlocks.js:881 msgid "x" msgstr "" -#: js/EnsembleBlocks.js:391 -#: js/EnsembleBlocks.js:402 -#: js/ProgramBlocks.js:881 -#: js/GraphicsBlocks.js:149 -#: js/GraphicsBlocks.js:313 -#: js/GraphicsBlocks.js:436 -#: js/GraphicsBlocks.js:487 -#: js/GraphicsBlocks.js:534 -#: js/GraphicsBlocks.js:750 +#: js/blocks/EnsembleBlocks.js:391 +#: js/blocks/EnsembleBlocks.js:402 +#: js/blocks/GraphicsBlocks.js:149 +#: js/blocks/GraphicsBlocks.js:313 +#: js/blocks/GraphicsBlocks.js:436 +#: js/blocks/GraphicsBlocks.js:487 +#: js/blocks/GraphicsBlocks.js:534 +#: js/blocks/GraphicsBlocks.js:750 +#: js/blocks/ProgramBlocks.js:881 msgid "y" msgstr "" -#: js/EnsembleBlocks.js:395 -#: js/EnsembleBlocks.js:452 +#: js/blocks/EnsembleBlocks.js:395 +#: js/blocks/EnsembleBlocks.js:452 #.TRANS: set xy position for this turtle msgid "set turtle" msgstr "" -#: js/EnsembleBlocks.js:433 +#: js/blocks/EnsembleBlocks.js:433 msgid "The Set mouse block sends a stack of blocks to be run by the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:446 +#: js/blocks/EnsembleBlocks.js:446 msgid "The Set turtle block sends a stack of blocks to be run by the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:480 +#: js/blocks/EnsembleBlocks.js:480 #.TRANS: y position for this mouse msgid "mouse y" msgstr "" -#: js/EnsembleBlocks.js:482 +#: js/blocks/EnsembleBlocks.js:482 msgid "The Y mouse block returns the Y position of the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:494 +#: js/blocks/EnsembleBlocks.js:494 #.TRANS: y position for this turtle msgid "turtle y" msgstr "" -#: js/EnsembleBlocks.js:496 +#: js/blocks/EnsembleBlocks.js:496 msgid "The Y turtle block returns the Y position of the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:526 +#: js/blocks/EnsembleBlocks.js:526 #.TRANS: x position for this mouse msgid "mouse x" msgstr "" -#: js/EnsembleBlocks.js:528 +#: js/blocks/EnsembleBlocks.js:528 msgid "The X mouse block returns the X position of the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:540 +#: js/blocks/EnsembleBlocks.js:540 #.TRANS: x position for this turtle msgid "turtle x" msgstr "" -#: js/EnsembleBlocks.js:542 +#: js/blocks/EnsembleBlocks.js:542 msgid "The X turtle block returns the X position of the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:573 +#: js/blocks/EnsembleBlocks.js:573 #.TRANS: notes played by this mouse msgid "mouse notes played" msgstr "" -#: js/EnsembleBlocks.js:575 +#: js/blocks/EnsembleBlocks.js:575 msgid "The Mouse elapse notes block returns the number of notes played by the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:587 +#: js/blocks/EnsembleBlocks.js:587 #.TRANS: notes played by this turtle msgid "turtle notes played" msgstr "" -#: js/EnsembleBlocks.js:589 +#: js/blocks/EnsembleBlocks.js:589 msgid "The Turtle elapse notes block returns the number of notes played by the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:627 +#: js/blocks/EnsembleBlocks.js:627 #.TRANS: convert current note for this turtle to piano key (1-88) msgid "mouse pitch number" msgstr "" -#: js/EnsembleBlocks.js:629 +#: js/blocks/EnsembleBlocks.js:629 msgid "The Mouse pitch block returns the current pitch number being played by the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:641 +#: js/blocks/EnsembleBlocks.js:641 #.TRANS: convert current note for this turtle to piano key (1-88) msgid "turtle pitch number" msgstr "" -#: js/EnsembleBlocks.js:643 -msgid "The Turrle pitch block returns the current pitch number being played by the specified turtle." +#: js/blocks/EnsembleBlocks.js:643 +msgid "The Turtle pitch block returns the current pitch number being played by the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:747 -#: js/EnsembleBlocks.js:819 +#: js/blocks/EnsembleBlocks.js:747 +#: js/blocks/EnsembleBlocks.js:819 #.TRANS: note value is the duration of the note played by this mouse msgid "mouse note value" msgstr "" -#: js/EnsembleBlocks.js:757 +#: js/blocks/EnsembleBlocks.js:757 #.TRANS: note value is the duration of the note played by this turtle msgid "turtle note value" msgstr "" -#: js/EnsembleBlocks.js:830 +#: js/blocks/EnsembleBlocks.js:830 #.TRANS: sync is short for synchronization msgid "mouse sync" msgstr "" -#: js/EnsembleBlocks.js:832 +#: js/blocks/EnsembleBlocks.js:832 msgid "The Mouse sync block aligns the beat count between mice." msgstr "" -#: js/EnsembleBlocks.js:844 +#: js/blocks/EnsembleBlocks.js:844 #.TRANS: sync is short for synchronization msgid "turtle sync" msgstr "" -#: js/EnsembleBlocks.js:846 +#: js/blocks/EnsembleBlocks.js:846 msgid "The Turtle sync block aligns the beat count between turtles." msgstr "" -#: js/EnsembleBlocks.js:887 +#: js/blocks/EnsembleBlocks.js:887 msgid "The Found mouse block will return true if the specified mouse can be found." msgstr "" -#: js/EnsembleBlocks.js:893 +#: js/blocks/EnsembleBlocks.js:893 msgid "found mouse" msgstr "" -#: js/EnsembleBlocks.js:903 +#: js/blocks/EnsembleBlocks.js:903 msgid "The Found turtle block will return true if the specified turtle can be found." msgstr "" -#: js/EnsembleBlocks.js:909 +#: js/blocks/EnsembleBlocks.js:909 msgid "found turtle" msgstr "" -#: js/EnsembleBlocks.js:932 +#: js/blocks/EnsembleBlocks.js:932 msgid "new mouse" msgstr "" -#: js/EnsembleBlocks.js:934 +#: js/blocks/EnsembleBlocks.js:934 msgid "The New mouse block will create a new mouse." msgstr "" -#: js/EnsembleBlocks.js:945 +#: js/blocks/EnsembleBlocks.js:945 msgid "new turtle" msgstr "" -#: js/EnsembleBlocks.js:947 +#: js/blocks/EnsembleBlocks.js:947 msgid "The New turtle block will create a new turtle." msgstr "" -#: js/EnsembleBlocks.js:1011 +#: js/blocks/EnsembleBlocks.js:1011 msgid "set mouse color" msgstr "" -#: js/EnsembleBlocks.js:1014 +#: js/blocks/EnsembleBlocks.js:1014 msgid "The Set-mouse-color block is used to set the color of a mouse." msgstr "" -#: js/EnsembleBlocks.js:1020 +#: js/blocks/EnsembleBlocks.js:1020 msgid "set turtle color" msgstr "" -#: js/EnsembleBlocks.js:1023 +#: js/blocks/EnsembleBlocks.js:1023 msgid "The Set-turtle-color block is used to set the color of a turtle." msgstr "" -#: js/EnsembleBlocks.js:1083 +#: js/blocks/EnsembleBlocks.js:1083 msgid "The Mouse-name block returns the name of a mouse." msgstr "" -#: js/EnsembleBlocks.js:1092 +#: js/blocks/EnsembleBlocks.js:1092 msgid "The Turtle-name block returns the name of a turtle." msgstr "" -#: js/EnsembleBlocks.js:1115 +#: js/blocks/EnsembleBlocks.js:1115 msgid "mouse count" msgstr "" -#: js/EnsembleBlocks.js:1118 +#: js/blocks/EnsembleBlocks.js:1118 msgid "The Mouse-count block returns the number of mice." msgstr "" -#: js/EnsembleBlocks.js:1124 +#: js/blocks/EnsembleBlocks.js:1124 msgid "turtle count" msgstr "" -#: js/EnsembleBlocks.js:1127 +#: js/blocks/EnsembleBlocks.js:1127 msgid "The Turtle-count block returns the number of turtles." msgstr "" -#: js/EnsembleBlocks.js:1149 +#: js/blocks/EnsembleBlocks.js:1149 msgid "nth mouse name" msgstr "" -#: js/EnsembleBlocks.js:1152 +#: js/blocks/EnsembleBlocks.js:1152 msgid "The Nth-Mouse name block returns the name of the nth mouse." msgstr "" -#: js/EnsembleBlocks.js:1158 +#: js/blocks/EnsembleBlocks.js:1158 msgid "nth turtle name" msgstr "" -#: js/EnsembleBlocks.js:1161 +#: js/blocks/EnsembleBlocks.js:1161 msgid "The Nth-Turtle name block returns the name of the nth turtle." msgstr "" -#: js/EnsembleBlocks.js:1205 -#: js/EnsembleBlocks.js:1265 +#: js/blocks/EnsembleBlocks.js:1205 +#: js/blocks/EnsembleBlocks.js:1265 msgid "set name" msgstr "" -#: js/EnsembleBlocks.js:1214 -#: js/EnsembleBlocks.js:1221 +#: js/blocks/EnsembleBlocks.js:1214 +#: js/blocks/EnsembleBlocks.js:1221 msgid "source" msgstr "" -#: js/EnsembleBlocks.js:1214 -#: js/EnsembleBlocks.js:1221 +#: js/blocks/EnsembleBlocks.js:1214 +#: js/blocks/EnsembleBlocks.js:1221 msgid "target" msgstr "" -#: js/EnsembleBlocks.js:1271 +#: js/blocks/EnsembleBlocks.js:1271 msgid "The Set-name block is used to name a mouse." msgstr "" -#: js/EnsembleBlocks.js:1284 +#: js/blocks/EnsembleBlocks.js:1284 msgid "The Set-name block is used to name a turtle." msgstr "" -#: js/BooleanBlocks.js:44 -msgid "The Not block is the logical not operator." -msgstr "" - -#: js/BooleanBlocks.js:62 -msgid "not" -msgstr "" - -#: js/BooleanBlocks.js:134 -msgid "The And block is the logical and operator." -msgstr "" - -#: js/BooleanBlocks.js:152 -msgid "and" -msgstr "" - -#: js/BooleanBlocks.js:218 -msgid "The Or block is the logical or operator." -msgstr "" - -#: js/BooleanBlocks.js:236 -msgid "or" -msgstr "" - -#: js/BooleanBlocks.js:302 -msgid "The XOR block is the logical XOR operator." -msgstr "" - -#: js/BooleanBlocks.js:320 -msgid "xor" -msgstr "" - -#: js/BooleanBlocks.js:808 -msgid "The Equal block returns True if the two numbers are equal." -msgstr "" - -#: js/BooleanBlocks.js:909 -msgid "The Not-equal-to block returns True if the two numbers are not equal to each other." -msgstr "" - -#: js/BooleanBlocks.js:1008 -msgid "The Boolean block is used to specify true or false." -msgstr "" - -#: js/MediaBlocks.js:35 -#.TRANS: right side of the screen -msgid "right (screen)" -msgstr "" - -#: js/MediaBlocks.js:45 -#: js/MediaBlocks.js:56 -msgid "The Right block returns the position of the right of the canvas." -msgstr "" - -#: js/MediaBlocks.js:97 -#.TRANS: left side of the screen -msgid "left (screen)" -msgstr "" - -#: js/MediaBlocks.js:107 -#: js/MediaBlocks.js:118 -msgid "The Left block returns the position of the left of the canvas." -msgstr "" - -#: js/MediaBlocks.js:158 -msgid "top (screen)" -msgstr "" - -#: js/MediaBlocks.js:168 -#: js/MediaBlocks.js:179 -msgid "The Top block returns the position of the top of the canvas." -msgstr "" - -#: js/MediaBlocks.js:219 -msgid "bottom (screen)" +#: js/blocks/ExtrasBlocks.js:33 +msgid "fraction" msgstr "" -#: js/MediaBlocks.js:229 -#: js/MediaBlocks.js:240 -msgid "The Bottom block returns the position of the bottom of the canvas." +#: js/blocks/ExtrasBlocks.js:36 +msgid "Convert a float to a fraction" msgstr "" -#: js/MediaBlocks.js:282 -msgid "width" +#: js/blocks/ExtrasBlocks.js:93 +msgid "save as ABC" msgstr "" -#: js/MediaBlocks.js:291 -msgid "The Width block returns the width of the canvas." +#: js/blocks/ExtrasBlocks.js:96 +#: js/blocks/ExtrasBlocks.js:132 +#: js/blocks/ExtrasBlocks.js:168 +msgid "title" msgstr "" -#: js/MediaBlocks.js:325 -msgid "height" +#: js/blocks/ExtrasBlocks.js:129 +msgid "save as Lilypond" msgstr "" -#: js/MediaBlocks.js:334 -msgid "The Height block returns the height of the canvas." +#: js/blocks/ExtrasBlocks.js:165 +msgid "save as SVG" msgstr "" -#: js/MediaBlocks.js:369 -#.TRANS: stops playback of an audio recording -msgid "stop play" +#: js/blocks/ExtrasBlocks.js:216 +msgid "no background" msgstr "" -#: js/MediaBlocks.js:404 -#.TRANS: Erases the images and text -msgid "erase media" +#: js/blocks/ExtrasBlocks.js:219 +msgid "The No background block eliminates the background from the saved SVG output." msgstr "" -#: js/MediaBlocks.js:409 -msgid "The Erase Media block erases text and images." +#: js/blocks/ExtrasBlocks.js:247 +msgid "show blocks" msgstr "" -#: js/MediaBlocks.js:439 -#.TRANS: play an audio recording -msgid "play back" +#: js/blocks/ExtrasBlocks.js:249 +msgid "The Show blocks block shows the blocks." msgstr "" -#: js/MediaBlocks.js:487 -msgid "speak" +#: js/blocks/ExtrasBlocks.js:274 +msgid "hide blocks" msgstr "" -#: js/MediaBlocks.js:495 -msgid "The Speak block outputs to the text-to-speech synthesizer" +#: js/blocks/ExtrasBlocks.js:276 +msgid "The Hide blocks block hides the blocks." msgstr "" -#: js/MediaBlocks.js:546 -msgid "camera" +#: js/blocks/ExtrasBlocks.js:305 +#: js/blocks/ExtrasBlocks.js:338 +msgid "The Space block is used to add space between blocks." msgstr "" -#: js/MediaBlocks.js:551 -msgid "The Camera block connects a webcam to the Show block." +#: js/blocks/ExtrasBlocks.js:376 +msgid "wait" msgstr "" -#: js/MediaBlocks.js:574 -msgid "video" +#: js/blocks/ExtrasBlocks.js:379 +msgid "The Wait block pauses the program for a specified number of seconds." msgstr "" -#: js/MediaBlocks.js:579 -msgid "The Video block selects video for use with the Show block." +#: js/blocks/ExtrasBlocks.js:433 +#: plugins/facebook.rtp:30 +msgid "comment" msgstr "" -#: js/MediaBlocks.js:607 -msgid "The Open file block opens a file for use with the Show block." +#: js/blocks/ExtrasBlocks.js:469 +msgid "print" msgstr "" -#: js/MediaBlocks.js:645 -msgid "stop media" +#: js/blocks/ExtrasBlocks.js:476 +msgid "The Print block displays text at the top of the screen." msgstr "" -#: js/MediaBlocks.js:650 -msgid "The Stop media block stops audio or video playback." +#: js/blocks/ExtrasBlocks.js:582 +msgid "display grid" msgstr "" -#: js/MediaBlocks.js:679 -#: js/PitchBlocks.js:1539 -#: js/phrasemaker.js:822 -#: js/musickeyboard.js:1654 -#.TRANS: a measure of frequency: one cycle per second -msgid "hertz" +#: js/blocks/ExtrasBlocks.js:587 +msgid "The Display Grid Block changes the grid type" msgstr "" -#: js/MediaBlocks.js:692 -msgid "duration (ms)" +#: js/blocks/ExtrasBlocks.js:689 +#: js/blocks/ExtrasBlocks.js:708 +#: js/blocks/ExtrasBlocks.js:731 +#: js/blocks/ExtrasBlocks.js:754 +#: js/blocks/ExtrasBlocks.js:772 +#: js/blocks/ExtrasBlocks.js:791 +#: js/blocks/ExtrasBlocks.js:810 +#: js/blocks/ExtrasBlocks.js:829 +msgid "unknown" msgstr "" -#: js/MediaBlocks.js:728 -#.TRANS: translate a note into hertz, e.g., A4 -> 440HZ -msgid "note to frequency" +#: js/blocks/FlowBlocks.js:41 +msgid "The Backward block runs code in reverse order (Musical retrograde)." msgstr "" -#: js/MediaBlocks.js:736 -msgid "The To frequency block converts a pitch name and octave to Hertz." +#: js/blocks/FlowBlocks.js:48 +msgid "backward" msgstr "" -#: js/MediaBlocks.js:746 -#: js/PitchBlocks.js:656 -#: js/PitchBlocks.js:932 -#: js/PitchBlocks.js:1827 -#.TRANS: name2 is name as in name of pitch (JAPANESE ONLY) -msgid "name2" +#: js/blocks/FlowBlocks.js:124 +msgid "The Duplicate block will run each block multiple times." msgstr "" -#: js/MediaBlocks.js:812 -msgid "The Avatar block is used to change the appearance of the mouse." +#: js/blocks/FlowBlocks.js:136 +msgid "duplicate" msgstr "" -#: js/MediaBlocks.js:819 -msgid "The Avatar block is used to change the appearance of the turtle." +#: js/blocks/FlowBlocks.js:334 +msgid "The Default block is used inside of a Switch to define the default action." msgstr "" -#: js/MediaBlocks.js:831 -#: js/MediaBlocks.js:891 -#.TRANS: a media object -msgid "size" +#: js/blocks/FlowBlocks.js:342 +msgid "default" msgstr "" -#: js/MediaBlocks.js:831 -msgid "image" +#: js/blocks/FlowBlocks.js:361 +#: js/blocks/FlowBlocks.js:418 +msgid "The Case Block must be used inside of a Switch Block." msgstr "" -#: js/MediaBlocks.js:880 -msgid "The Show block is used to display text or images on the canvas." +#: js/blocks/FlowBlocks.js:389 +msgid "The Case block is used inside of a Switch to define matches." msgstr "" -#: js/MediaBlocks.js:888 -#.TRANS: show1 is show as in display an image or text on the screen. -msgid "show1" +#: js/blocks/FlowBlocks.js:397 +msgid "case" msgstr "" -#: js/MediaBlocks.js:891 -msgid "obj" +#: js/blocks/FlowBlocks.js:446 +msgid "The Switch block will run the code in the matching Case." msgstr "" -#: js/MediaBlocks.js:938 -msgid "The Media block is used to import an image." +#: js/blocks/FlowBlocks.js:454 +msgid "switch" msgstr "" -#: js/MediaBlocks.js:973 -msgid "The Text block holds a text string." +#: js/blocks/FlowBlocks.js:595 +msgid "The Stop block will stop a loop" msgstr "" -#: js/ProgramBlocks.js:33 -msgid "The Load-heap-from-app block loads the heap from a web page." +#: js/blocks/FlowBlocks.js:597 +msgid "Forever, Repeat, While, or Until." msgstr "" -#: js/ProgramBlocks.js:44 -#.TRANS: load the heap contents from a URL -msgid "load heap from App" +#: js/blocks/FlowBlocks.js:604 +#: js/widgets/timbre.js:417 +#: js/widgets/timbre.js:419 +#: js/widgets/musickeyboard.js:819 +#: js/widgets/musickeyboard.js:821 +#: js/widgets/phrasemaker.js:4202 +#: plugins/rodi.rtp:29 +#: plugins/rodi.rtp:73 +#: plugins/rodi.rtp:413 +msgid "stop" msgstr "" -#: js/ProgramBlocks.js:95 -msgid "Error parsing JSON data:" +#: js/blocks/FlowBlocks.js:653 +msgid "The Waitfor block will wait until the condition is true." msgstr "" -#: js/ProgramBlocks.js:100 -msgid "404: Page not found" +#: js/blocks/FlowBlocks.js:661 +msgid "wait for" msgstr "" -#: js/ProgramBlocks.js:133 -msgid "The Save-heap-to-app block saves the heap to a web page." +#: js/blocks/FlowBlocks.js:732 +msgid "The Until block will repeat until the condition is true." msgstr "" -#: js/ProgramBlocks.js:144 -#.TRANS: save the heap contents to a URL -msgid "save heap to App" +#: js/blocks/FlowBlocks.js:740 +msgid "until" msgstr "" -#: js/ProgramBlocks.js:189 -msgid "Cannot find a valid heap for" +#: js/blocks/FlowBlocks.js:742 +#: js/blocks/FlowBlocks.js:822 +msgid "do2" msgstr "" -#: js/ProgramBlocks.js:206 -msgid "The Load-heap block loads the heap from a file." +#: js/blocks/FlowBlocks.js:812 +msgid "The While block will repeat while the condition is true." msgstr "" -#: js/ProgramBlocks.js:217 -#.TRANS: load the heap from a file -msgid "load heap" +#: js/blocks/FlowBlocks.js:820 +msgid "while" msgstr "" -#: js/ProgramBlocks.js:270 -msgid "The file you selected does not contain a valid heap." +#: js/blocks/FlowBlocks.js:903 +#: js/blocks/FlowBlocks.js:968 +#: js/blocks/FlowBlocks.js:979 +msgid "In this example if the mouse button is pressed a snare drum will play." msgstr "" -#: js/ProgramBlocks.js:275 -msgid "The loadHeap block needs a loadFile block." +#: js/blocks/FlowBlocks.js:925 +#: js/blocks/FlowBlocks.js:988 +msgid "if" msgstr "" -#: js/ProgramBlocks.js:291 -msgid "The Set-heap block loads the heap." +#: js/blocks/FlowBlocks.js:927 +#: js/blocks/FlowBlocks.js:990 +msgid "then" msgstr "" -#: js/ProgramBlocks.js:299 -#: js/HeapBlocks.js:539 -#.TRANS: load the heap from a JSON encoding -msgid "set heap" +#: js/blocks/FlowBlocks.js:927 +msgid "else" msgstr "" -#: js/ProgramBlocks.js:340 -msgid "The block you selected does not contain a valid heap." +#: js/blocks/FlowBlocks.js:1025 +msgid "The Forever block will repeat the contained blocks forever." msgstr "" -#: js/ProgramBlocks.js:343 -msgid "The Set heap block needs a heap." +#: js/blocks/FlowBlocks.js:1037 +msgid "forever" msgstr "" -#: js/ProgramBlocks.js:360 -msgid "The Load-dictionary block loads a dictionary from a file." +#: js/blocks/FlowBlocks.js:1073 +msgid "The Repeat block will repeat the contained blocks." msgstr "" -#: js/ProgramBlocks.js:372 -#.TRANS: load a dictionary from a file -msgid "load dictionary" +#: js/blocks/FlowBlocks.js:1075 +msgid "In this example the note will be played 4 times." msgstr "" -#: js/ProgramBlocks.js:390 -#: js/ProgramBlocks.js:658 -#: js/ToneBlocks.js:1025 -msgid "file" +#: js/blocks/FlowBlocks.js:1083 +msgid "repeat" msgstr "" -#: js/ProgramBlocks.js:396 -#: js/ProgramBlocks.js:501 -#: js/ProgramBlocks.js:664 -#: js/DictBlocks.js:80 -#: js/DictBlocks.js:145 -#: js/DictBlocks.js:216 -#: js/DictBlocks.js:290 -msgid "My Dictionary" +#: js/blocks/FlowBlocks.js:1123 +msgid "duplicate factor" msgstr "" -#: js/ProgramBlocks.js:444 -msgid "The file you selected does not contain a valid dictionary." +#: js/blocks/HeapBlocks.js:49 +msgid "The Heap block returns the heap." msgstr "" -#: js/ProgramBlocks.js:449 -msgid "The load dictionary block needs a load file block." +#: js/blocks/HeapBlocks.js:133 +msgid "show heap" msgstr "" -#: js/ProgramBlocks.js:466 -msgid "The Set-dictionary block loads a dictionary." +#: js/blocks/HeapBlocks.js:181 +msgid "The Heap-length block returns the length of the heap." msgstr "" -#: js/ProgramBlocks.js:477 -#.TRANS: load a dictionary from a JSON -msgid "set dictionary" +#: js/blocks/HeapBlocks.js:195 +msgid "heap length" msgstr "" -#: js/ProgramBlocks.js:546 -msgid "The block you selected does not contain a valid dictionary." +#: js/blocks/HeapBlocks.js:254 +msgid "The Heap-empty? block returns true if the heap is empty." msgstr "" -#: js/ProgramBlocks.js:550 -msgid "The set dictionary block needs a dictionary." +#: js/blocks/HeapBlocks.js:268 +#.TRANS: Is the heap empty? +msgid "heap empty?" msgstr "" -#: js/ProgramBlocks.js:567 -msgid "The Save-heap block saves the heap to a file." +#: js/blocks/HeapBlocks.js:317 +msgid "The Empty-heap block empties the heap." msgstr "" -#: js/ProgramBlocks.js:578 -#.TRANS: save the heap to a file -msgid "save heap" +#: js/blocks/HeapBlocks.js:327 +#: js/blocks/HeapBlocks.js:647 +#.TRANS: empty the heap +msgid "empty heap" msgstr "" -#: js/ProgramBlocks.js:629 -msgid "The Save-dictionary block saves a dictionary to a file." +#: js/blocks/HeapBlocks.js:371 +msgid "The Reverse-heap block reverses the order of the heap." msgstr "" -#: js/ProgramBlocks.js:640 -#.TRANS: save a dictionary to a file -msgid "save dictionary" +#: js/blocks/HeapBlocks.js:384 +#.TRANS: reverse the order of the heap +msgid "reverse heap" msgstr "" -#: js/ProgramBlocks.js:720 -msgid "The Open palette block opens a palette." +#: js/blocks/HeapBlocks.js:428 +msgid "The Index-heap block returns a value in the heap at a specified location." msgstr "" -#: js/ProgramBlocks.js:727 -msgid "open palette" +#: js/blocks/HeapBlocks.js:443 +#.TRANS: retrieve a value from the heap at index position in the heap +msgid "index heap" msgstr "" -#: js/ProgramBlocks.js:785 -msgid "The Delete block block removes a block." +#: js/blocks/HeapBlocks.js:523 +msgid "The Set-heap entry block sets a value in he heap at the specified location." msgstr "" -#: js/ProgramBlocks.js:797 -#.TRANS: Move this block to the trash. -msgid "delete block" +#: js/blocks/HeapBlocks.js:539 +#: js/blocks/ProgramBlocks.js:299 +#.TRANS: load the heap from a JSON encoding +msgid "set heap" msgstr "" -#: js/ProgramBlocks.js:861 -msgid "The Move block block moves a block." +#: js/blocks/HeapBlocks.js:619 +msgid "The Pop block removes the value at the top of the heap." msgstr "" -#: js/ProgramBlocks.js:869 -#.TRANS: Move the position of a block on the screen. -msgid "move block" +#: js/blocks/HeapBlocks.js:633 +#.TRANS: pop a value off the top of the heap +msgid "pop" msgstr "" -#: js/ProgramBlocks.js:881 -#: js/ProgramBlocks.js:1048 -msgid "block number" +#: js/blocks/HeapBlocks.js:680 +msgid "The Push block adds a value to the top of the heap." msgstr "" -#: js/ProgramBlocks.js:935 -#.TRANS: Run program beginning at this block. -msgid "run block" +#: js/blocks/HeapBlocks.js:696 +#.TRANS: push a value onto the top of the heap +msgid "push" msgstr "" -#: js/ProgramBlocks.js:1025 -msgid "The Dock block block connections two blocks." +#: js/blocks/IntervalsBlocks.js:45 +msgid "set temperament" msgstr "" -#: js/ProgramBlocks.js:1036 -#.TRANS: We can connect a block to another block. -msgid "connect blocks" +#: js/blocks/IntervalsBlocks.js:63 +#: js/blocks/MediaBlocks.js:746 +#: js/blocks/PitchBlocks.js:657 +#: js/blocks/PitchBlocks.js:935 +#: js/blocks/PitchBlocks.js:974 +#: js/blocks/PitchBlocks.js:1007 +#: js/blocks/PitchBlocks.js:1194 +#: js/blocks/PitchBlocks.js:1717 +#: js/blocks/PitchBlocks.js:1758 +#: js/blocks/PitchBlocks.js:1866 +#: js/blocks/ToneBlocks.js:1025 +#: js/turtleactions/IntervalsActions.js:114 +#.TRANS: adjusts the shift up or down by one octave (twelve half-steps in the interval between two notes, one having twice or half the frequency in Hz of the other.) +msgid "octave" msgstr "" -#: js/ProgramBlocks.js:1048 -msgid "target block" +#: js/blocks/IntervalsBlocks.js:99 +msgid "The Temperament name block is used to select a tuning method." msgstr "" -#: js/ProgramBlocks.js:1048 -msgid "connection number" +#: js/blocks/IntervalsBlocks.js:161 +msgid "doubly" msgstr "" -#: js/ProgramBlocks.js:1140 -msgid "The Make block block creates a new block." +#: js/blocks/IntervalsBlocks.js:166 +msgid "The Doubly block will double the size of an interval." msgstr "" -#: js/ProgramBlocks.js:1152 -#.TRANS: Create a new block -msgid "make block" +#: js/blocks/IntervalsBlocks.js:262 +msgid "interval number" msgstr "" -#: js/ProgramBlocks.js:1186 -#: js/ProgramBlocks.js:1227 -#: js/RhythmBlocks.js:1128 -#: js/PitchBlocks.js:972 -#: js/PitchBlocks.js:1005 -#: js/temperament.js:340 -#: js/temperament.js:362 -#: js/temperament.js:372 -#: js/temperament.js:484 -#: js/status.js:190 -#: plugins/rodi.rtp:192 -#.TRANS: a musical note consisting of pitch and duration -msgid "note" +#: js/blocks/IntervalsBlocks.js:317 +msgid "current interval" msgstr "" -#: js/ProgramBlocks.js:1285 -msgid "Cannot find block" +#: js/blocks/IntervalsBlocks.js:387 +#.TRANS: measure the distance between two pitches in semi-tones +msgid "semi-tone interval measure" msgstr "" -#: js/ProgramBlocks.js:1304 -#: js/ProgramBlocks.js:1313 -msgid "Warning: block argument type mismatch" +#: js/blocks/IntervalsBlocks.js:454 +#: js/blocks/IntervalsBlocks.js:570 +msgid "You must use two pitch blocks when measuring an interval." msgstr "" -#: js/ProgramBlocks.js:1347 -msgid "The Open project block is used to open a project from a web page." +#: js/blocks/IntervalsBlocks.js:496 +msgid "The Scalar interval block measures the distance between two notes in the current key and mode." msgstr "" -#: js/ProgramBlocks.js:1357 -msgid "open project" +#: js/blocks/IntervalsBlocks.js:502 +#.TRANS: measure the distance between two pitches in steps of musical scale +msgid "scalar interval measure" msgstr "" -#: js/ProgramBlocks.js:1410 -msgid "Please enter a valid URL." +#: js/blocks/IntervalsBlocks.js:678 +msgid "In the figure, we add sol# to sol." msgstr "" -#: js/DrumBlocks.js:59 -msgid "The Noise name block is used to select a noise synthesizer." +#: js/blocks/IntervalsBlocks.js:684 +#: js/blocks/OrnamentBlocks.js:220 +#.TRANS: calculate a relative step between notes based on semi-tones +msgid "semi-tone interval" msgstr "" -#: js/DrumBlocks.js:102 -msgid "The Drum name block is used to select a drum." +#: js/blocks/IntervalsBlocks.js:733 +msgid "The output of the example is: do, mi, sol, sol, ti, mi" msgstr "" -#: js/DrumBlocks.js:146 -msgid "The Effects name block is used to select a sound effect." +#: js/blocks/IntervalsBlocks.js:740 +#: js/blocks/WidgetBlocks.js:768 +msgid "arpeggio" msgstr "" -#: js/DrumBlocks.js:163 -msgid "noise" +#: js/blocks/IntervalsBlocks.js:931 +msgid "The Chord block calculates common chords." msgstr "" -#: js/DrumBlocks.js:177 -msgid "The Play noise block will generate white, pink, or brown noise." +#: js/blocks/IntervalsBlocks.js:933 +msgid "In the figure, we generate a C-major chord." msgstr "" -#: js/DrumBlocks.js:191 -#: js/musicutils.js:752 -#: js/synthutils.js:47 -#.TRANS: white noise synthesizer -msgid "white noise" +#: js/blocks/IntervalsBlocks.js:938 +msgid "chord" msgstr "" -#: js/DrumBlocks.js:326 -msgid "Replace every instance of a pitch with a drum sound." +#: js/blocks/IntervalsBlocks.js:990 +msgid "The Ratio Interval block calculates an interval based on a ratio." msgstr "" -#: js/DrumBlocks.js:337 -#.TRANS: map a pitch to a drum sound -msgid "map pitch to drum" +#: js/blocks/IntervalsBlocks.js:995 +msgid "ratio interval" msgstr "" -#: js/DrumBlocks.js:404 -msgid "In the example above, a kick drum sound will be played instead of sol." +#: js/blocks/IntervalsBlocks.js:1064 +msgid "In the figure, we add la to sol." msgstr "" -#: js/DrumBlocks.js:416 -#.TRANS: set the current drum sound for playback -msgid "set drum" +#: js/blocks/IntervalsBlocks.js:1120 +#.TRANS: define a custom mode +msgid "define mode" msgstr "" -#: js/DrumBlocks.js:460 -msgid "sound effect" +#: js/blocks/IntervalsBlocks.js:1173 +msgid "movable Do" msgstr "" -#: js/DrumBlocks.js:498 -msgid "You can use multiple Drum blocks within a Note block." +#: js/blocks/IntervalsBlocks.js:1224 +#.TRANS: mode length is the number of notes in the mode, e.g., 7 for major and minor scales; 12 for chromatic scales +msgid "mode length" msgstr "" -#: js/RhythmBlocks.js:182 -#: js/RhythmBlocks.js:1086 -#: js/RhythmBlocks.js:1162 -msgid "Note value must be greater than 0." +#: js/blocks/IntervalsBlocks.js:1233 +msgid "The Mode length block is the number of notes in the current scale." msgstr "" -#: js/RhythmBlocks.js:215 -#: js/RhythmBlocks.js:278 -#: js/RhythmBlocks.js:350 -#.TRANS: swing is a rhythmic variation that emphasises the offbeat -msgid "swing" +#: js/blocks/IntervalsBlocks.js:1235 +msgid "Most Western scales have 7 notes." msgstr "" -#: js/RhythmBlocks.js:355 -#.TRANS: the amount to shift to the offbeat note -msgid "swing value" +#: js/blocks/IntervalsBlocks.js:1284 +#.TRANS: the mode in music is 'major', 'minor', etc. +msgid "current mode" msgstr "" -#: js/RhythmBlocks.js:419 -msgid "The Skip notes block will cause notes to be skipped." +#: js/blocks/IntervalsBlocks.js:1337 +#.TRANS: the key is a group of pitches with which a music composition is created +msgid "current key" msgstr "" -#: js/RhythmBlocks.js:427 -#.TRANS: substitute rests on notes being skipped -msgid "skip notes" +#: js/blocks/IntervalsBlocks.js:1389 +#: js/blocks/IntervalsBlocks.js:1434 +#.TRANS: set the key and mode, e.g. C Major +msgid "set key" msgstr "" -#: js/RhythmBlocks.js:489 -#.TRANS: speed up note duration by some factor, e.g. convert 1/4 to 1/8 notes by using a factor of 2 -msgid "multiply note value" +#: js/blocks/IntervalsBlocks.js:1443 +#: js/blocks/IntervalsBlocks.js:1449 +msgid "The Set key block is used to set the key and mode," msgstr "" -#: js/RhythmBlocks.js:542 -msgid "The Tie block works on pairs of notes, combining them into one note." +#: js/blocks/IntervalsBlocks.js:1449 +msgid "eg C Major" msgstr "" -#: js/RhythmBlocks.js:550 -#.TRANS: tie notes together into one longer note -msgid "tie" +#: js/blocks/MediaBlocks.js:35 +#.TRANS: right side of the screen +msgid "right (screen)" msgstr "" -#: js/RhythmBlocks.js:591 -#: js/RhythmBlocks.js:671 -#.TRANS: a dotted note is played for 1.5x its value, e.g., 1/8. --> 3/16 -msgid "dot" +#: js/blocks/MediaBlocks.js:45 +#: js/blocks/MediaBlocks.js:56 +msgid "The Right block returns the position of the right of the canvas." msgstr "" -#: js/RhythmBlocks.js:619 -#: js/RhythmActions.js:221 -msgid "An argument of -1 results in a note value of 0." +#: js/blocks/MediaBlocks.js:97 +#.TRANS: left side of the screen +msgid "left (screen)" msgstr "" -#: js/RhythmBlocks.js:661 -msgid "The Dot block extends the duration of a note by 50%." +#: js/blocks/MediaBlocks.js:107 +#: js/blocks/MediaBlocks.js:118 +msgid "The Left block returns the position of the left of the canvas." msgstr "" -#: js/RhythmBlocks.js:663 -msgid "Eg a dotted quarter note will play for 3/8 (1/4 + 1/8) of a beat." +#: js/blocks/MediaBlocks.js:158 +msgid "top (screen)" msgstr "" -#: js/RhythmBlocks.js:765 -#.TRANS: Japanese only: note value block for drum -msgid "note value drum" +#: js/blocks/MediaBlocks.js:168 +#: js/blocks/MediaBlocks.js:179 +msgid "The Top block returns the position of the top of the canvas." msgstr "" -#: js/RhythmBlocks.js:829 -msgid "392 hertz" +#: js/blocks/MediaBlocks.js:219 +msgid "bottom (screen)" msgstr "" -#: js/RhythmBlocks.js:1119 -msgid "The Note block is a container for one or more Pitch blocks." +#: js/blocks/MediaBlocks.js:229 +#: js/blocks/MediaBlocks.js:240 +msgid "The Bottom block returns the position of the bottom of the canvas." msgstr "" -#: js/RhythmBlocks.js:1121 -msgid "The Note block specifies the duration (note value) of its contents." +#: js/blocks/MediaBlocks.js:282 +msgid "width" msgstr "" -#: js/RhythmBlocks.js:1130 -msgid "value2" +#: js/blocks/MediaBlocks.js:291 +msgid "The Width block returns the width of the canvas." msgstr "" -#: js/RhythmBlocks.js:1200 -msgid "define frequency" +#: js/blocks/MediaBlocks.js:325 +msgid "height" msgstr "" -#: js/RhythmBlocks.js:1218 -#: js/temperament.js:650 -#: js/temperament.js:1421 -msgid "octave space" +#: js/blocks/MediaBlocks.js:334 +msgid "The Height block returns the height of the canvas." msgstr "" -#: js/NumberBlocks.js:28 -msgid "The Int block returns an integer." +#: js/blocks/MediaBlocks.js:369 +#.TRANS: stops playback of an audio recording +msgid "stop play" msgstr "" -#: js/NumberBlocks.js:34 -msgid "int" +#: js/blocks/MediaBlocks.js:404 +#.TRANS: Erases the images and text +msgid "erase media" msgstr "" -#: js/NumberBlocks.js:73 -msgid "The Mod block returns the remainder from a division." +#: js/blocks/MediaBlocks.js:409 +msgid "The Erase Media block erases text and images." msgstr "" -#: js/NumberBlocks.js:79 -msgid "mod" +#: js/blocks/MediaBlocks.js:439 +#.TRANS: play an audio recording +msgid "play back" msgstr "" -#: js/NumberBlocks.js:123 -msgid "The Power block calculates a power function." +#: js/blocks/MediaBlocks.js:487 +msgid "speak" msgstr "" -#: js/NumberBlocks.js:178 -msgid "The Sqrt block returns the square root." +#: js/blocks/MediaBlocks.js:495 +msgid "The Speak block outputs to the text-to-speech synthesizer" msgstr "" -#: js/NumberBlocks.js:184 -msgid "sqrt" +#: js/blocks/MediaBlocks.js:546 +msgid "camera" msgstr "" -#: js/NumberBlocks.js:230 -msgid "The Abs block returns the absolute value." +#: js/blocks/MediaBlocks.js:551 +msgid "The Camera block connects a webcam to the Show block." msgstr "" -#: js/NumberBlocks.js:236 -msgid "abs" +#: js/blocks/MediaBlocks.js:574 +msgid "video" msgstr "" -#: js/NumberBlocks.js:277 -msgid "The Distance block returns the distance between two points. For example, between the mouse and the center of the screen." +#: js/blocks/MediaBlocks.js:579 +msgid "The Video block selects video for use with the Show block." msgstr "" -#: js/NumberBlocks.js:283 -#: plugins/rodi.rtp:310 -msgid "distance" +#: js/blocks/MediaBlocks.js:607 +msgid "The Open file block opens a file for use with the Show block." msgstr "" -#: js/NumberBlocks.js:343 -msgid "The Divide block is used to divide." +#: js/blocks/MediaBlocks.js:645 +msgid "stop media" msgstr "" -#: js/NumberBlocks.js:411 -msgid "The Multiply block is used to multiply." +#: js/blocks/MediaBlocks.js:650 +msgid "The Stop media block stops audio or video playback." msgstr "" -#: js/NumberBlocks.js:554 -msgid "The Minus block is used to subtract." +#: js/blocks/MediaBlocks.js:679 +#: js/blocks/PitchBlocks.js:1577 +#: js/widgets/musickeyboard.js:1936 +#: js/widgets/phrasemaker.js:1037 +#.TRANS: a measure of frequency: one cycle per second +msgid "hertz" msgstr "" -#: js/NumberBlocks.js:647 -msgid "The Plus block is used to add." +#: js/blocks/MediaBlocks.js:692 +#: js/blocks/WidgetBlocks.js:182 +#: js/widgets/temperament.js:506 +#: js/widgets/temperament.js:546 +#: js/widgets/temperament.js:610 +#: js/widgets/temperament.js:618 +#: js/widgets/temperament.js:1505 +#: js/widgets/timbre.js:1842 +msgid "frequency" msgstr "" -#: js/NumberBlocks.js:773 -msgid "The One-of block returns one of two choices." +#: js/blocks/MediaBlocks.js:692 +msgid "duration (ms)" msgstr "" -#: js/NumberBlocks.js:780 -#: js/PitchBlocks.js:616 -msgid "one of" +#: js/blocks/MediaBlocks.js:728 +#.TRANS: translate a note into hertz, e.g., A4 -> 440HZ +msgid "note to frequency" msgstr "" -#: js/NumberBlocks.js:782 -msgid "this" +#: js/blocks/MediaBlocks.js:736 +msgid "The To frequency block converts a pitch name and octave to Hertz." msgstr "" -#: js/NumberBlocks.js:782 -msgid "that" +#: js/blocks/MediaBlocks.js:746 +#: js/blocks/PitchBlocks.js:656 +#: js/blocks/PitchBlocks.js:934 +#: js/blocks/PitchBlocks.js:1866 +#.TRANS: name2 is name as in name of pitch (JAPANESE ONLY) +msgid "name2" msgstr "" -#: js/NumberBlocks.js:837 -msgid "The Random block returns a random number." +#: js/blocks/MediaBlocks.js:812 +msgid "The Avatar block is used to change the appearance of the mouse." msgstr "" -#: js/NumberBlocks.js:844 -msgid "random" +#: js/blocks/MediaBlocks.js:819 +msgid "The Avatar block is used to change the appearance of the turtle." msgstr "" -#: js/NumberBlocks.js:846 -msgid "min" +#: js/blocks/MediaBlocks.js:831 +#: js/blocks/MediaBlocks.js:891 +#.TRANS: a media object +msgid "size" msgstr "" -#: js/NumberBlocks.js:846 -msgid "max" +#: js/blocks/MediaBlocks.js:831 +msgid "image" msgstr "" -#: js/NumberBlocks.js:910 -msgid "The Number block holds a number." +#: js/blocks/MediaBlocks.js:880 +msgid "The Show block is used to display text or images on the canvas." msgstr "" -#: js/BoxesBlocks.js:53 -#: js/BoxesBlocks.js:59 -msgid "The Add-to block is used to add to the value stored in a box." +#: js/blocks/MediaBlocks.js:888 +#.TRANS: show1 is show as in display an image or text on the screen. +msgid "show1" msgstr "" -#: js/BoxesBlocks.js:61 -msgid "It can also be used with other blocks such as Color and Pen size." +#: js/blocks/MediaBlocks.js:891 +msgid "obj" msgstr "" -#: js/BoxesBlocks.js:73 -msgid "add" +#: js/blocks/MediaBlocks.js:938 +msgid "The Media block is used to import an image." msgstr "" -#: js/BoxesBlocks.js:75 -#: js/temperament.js:716 -msgid "to" +#: js/blocks/MediaBlocks.js:973 +msgid "The Text block holds a text string." msgstr "" -#: js/BoxesBlocks.js:75 -#: js/BoxesBlocks.js:595 -#: js/HeapBlocks.js:544 -msgid "value1" +#: js/blocks/MeterBlocks.js:34 +#.TRANS: musical meter (time signature), e.g., 4:4 +msgid "current meter" msgstr "" -#: js/BoxesBlocks.js:118 -msgid "Block does not support incrementing." +#: js/blocks/MeterBlocks.js:85 +#.TRANS: number of beats per minute +msgid "beat factor" msgstr "" -#: js/BoxesBlocks.js:152 -msgid "The Add-1-to block adds one to the value stored in a box." +#: js/blocks/MeterBlocks.js:161 +msgid "The Beats per minute block returns the current beats per minute." msgstr "" -#: js/BoxesBlocks.js:163 -msgid "add 1 to" +#: js/blocks/MeterBlocks.js:169 +#: js/widgets/status.js:152 +#.TRANS: number of beats played per minute +msgid "beats per minute2" msgstr "" -#: js/BoxesBlocks.js:211 -msgid "The Subtract-1-from block subtracts one from the value stored in a box." +#: js/blocks/MeterBlocks.js:169 +#: js/blocks/MeterBlocks.js:1056 +#: js/blocks/MeterBlocks.js:1133 +#: js/blocks/MeterBlocks.js:1211 +#.TRANS: sets tempo by defining a beat and beats per minute +msgid "beats per minute" msgstr "" -#: js/BoxesBlocks.js:222 -msgid "subtract 1 from" +#: js/blocks/MeterBlocks.js:233 +#.TRANS: count of current musical measure in meter +msgid "measure count" msgstr "" -#: js/BoxesBlocks.js:270 -#: js/BoxesBlocks.js:387 -msgid "The Box block returns the value stored in a box." +#: js/blocks/MeterBlocks.js:241 +msgid "The Measure count block returns the current measure." msgstr "" -#: js/BoxesBlocks.js:500 -#: js/BoxesBlocks.js:576 -msgid "The Store in block will store a value in a box." +#: js/blocks/MeterBlocks.js:290 +#.TRANS: count of current beat in the meter +msgid "beat count" msgstr "" -#: js/BoxesBlocks.js:652 -msgid "The Box2 block returns the value stored in Box2." +#: js/blocks/MeterBlocks.js:300 +#: js/blocks/MeterBlocks.js:311 +#: js/blocks/MeterBlocks.js:565 +#: js/blocks/MeterBlocks.js:576 +msgid "The Beat count block is the number of the current beat," msgstr "" -#: js/BoxesBlocks.js:703 -msgid "The Store in Box2 block is used to store a value in Box2." +#: js/blocks/MeterBlocks.js:313 +#: js/blocks/MeterBlocks.js:578 +msgid "eg 1, 2, 3, or 4." msgstr "" -#: js/BoxesBlocks.js:715 -msgid "store in box2" +#: js/blocks/MeterBlocks.js:368 +#.TRANS: count the number of notes +msgid "sum note values" msgstr "" -#: js/BoxesBlocks.js:761 -msgid "The Box1 block returns the value stored in Box1." +#: js/blocks/MeterBlocks.js:376 +#: js/blocks/MeterBlocks.js:440 +msgid "The Note counter block can be used to count the number of contained notes." msgstr "" -#: js/BoxesBlocks.js:812 -msgid "The Store in Box1 block is used to store a value in Box1." +#: js/blocks/MeterBlocks.js:432 +#.TRANS: count the number of notes +msgid "note counter" msgstr "" -#: js/BoxesBlocks.js:826 -msgid "store in box1" +#: js/blocks/MeterBlocks.js:496 +#.TRANS: number of whole notes that have been played +msgid "whole notes played" msgstr "" -#: js/HeapBlocks.js:49 -msgid "The Heap block returns the heap." +#: js/blocks/MeterBlocks.js:505 +msgid "The Whole notes played block returns the total number of whole notes played." msgstr "" -#: js/HeapBlocks.js:133 -msgid "show heap" +#: js/blocks/MeterBlocks.js:555 +#: js/turtleactions/DictActions.js:83 +#.TRANS: number of notes that have been played +msgid "notes played" msgstr "" -#: js/HeapBlocks.js:181 -msgid "The Heap-length block returns the length of the heap." +#: js/blocks/MeterBlocks.js:653 +msgid "The No clock block decouples the notes from the master clock." msgstr "" -#: js/HeapBlocks.js:195 -msgid "heap length" +#: js/blocks/MeterBlocks.js:661 +#.TRANS: don't lock notes to master clock +msgid "no clock" msgstr "" -#: js/HeapBlocks.js:254 -msgid "The Heap-empty? block returns true if the heap is empty." +#: js/blocks/MeterBlocks.js:700 +msgid "on weak beat do" msgstr "" -#: js/HeapBlocks.js:268 -#.TRANS: Is the heap empty? -msgid "heap empty?" +#: js/blocks/MeterBlocks.js:705 +msgid "The On-weak-beat block lets you specify actions to take on weak (off) beats." msgstr "" -#: js/HeapBlocks.js:317 -msgid "The Empty-heap block empties the heap." +#: js/blocks/MeterBlocks.js:750 +msgid "on strong beat" msgstr "" -#: js/HeapBlocks.js:327 -#: js/HeapBlocks.js:647 -#.TRANS: empty the heap -msgid "empty heap" +#: js/blocks/MeterBlocks.js:758 +msgid "The On-strong-beat block lets you specify actions to take on specified beats." msgstr "" -#: js/HeapBlocks.js:371 -msgid "The Reverse-heap block reverses the order of the heap." +#: js/blocks/MeterBlocks.js:769 +msgid "beat" msgstr "" -#: js/HeapBlocks.js:384 -#.TRANS: reverse the order of the heap -msgid "reverse heap" +#: js/blocks/MeterBlocks.js:813 +msgid "on every beat do" msgstr "" -#: js/HeapBlocks.js:428 -msgid "The Index-heap block returns a value in the heap at a specified location." +#: js/blocks/MeterBlocks.js:821 +msgid "The On-every-beat block lets you specify actions to take on every beat." msgstr "" -#: js/HeapBlocks.js:443 -#.TRANS: retrieve a value from the heap at index position in the heap -msgid "index heap" +#: js/blocks/MeterBlocks.js:874 +msgid "on every note do" msgstr "" -#: js/HeapBlocks.js:523 -msgid "The Set-heap entry block sets a value in he heap at the specified location." +#: js/blocks/MeterBlocks.js:882 +msgid "The On-every-note block lets you specify actions to take on every note." msgstr "" -#: js/HeapBlocks.js:619 -msgid "The Pop block removes the value at the top of the heap." +#: js/blocks/MeterBlocks.js:928 +#: js/blocks/MeterBlocks.js:999 +#.TRANS: sets tempo by defining a beat and beats per minute +msgid "master beats per minute" msgstr "" -#: js/HeapBlocks.js:633 -#.TRANS: pop a value off the top of the heap -msgid "pop" +#: js/blocks/MeterBlocks.js:952 +#: js/blocks/MeterBlocks.js:1078 +#: js/blocks/MeterBlocks.js:1135 +msgid "bpm" msgstr "" -#: js/HeapBlocks.js:680 -msgid "The Push block adds a value to the top of the heap." +#: js/blocks/MeterBlocks.js:952 +#: js/blocks/MeterBlocks.js:1078 +#: js/blocks/MeterBlocks.js:1135 +msgid "beat value" msgstr "" -#: js/HeapBlocks.js:696 -#.TRANS: push a value onto the top of the heap -msgid "push" +#: js/blocks/MeterBlocks.js:1024 +#: js/blocks/MeterBlocks.js:1167 +#: js/blocks/MeterBlocks.js:1241 +msgid "Beats per minute must be > 30." msgstr "" -#: js/FlowBlocks.js:41 -msgid "The Backward block runs code in reverse order (Musical retrograde)." +#: js/blocks/MeterBlocks.js:1027 +#: js/blocks/MeterBlocks.js:1170 +#: js/blocks/MeterBlocks.js:1244 +msgid "Maximum beats per minute is 1000." msgstr "" -#: js/FlowBlocks.js:48 -msgid "backward" +#: js/blocks/MeterBlocks.js:1068 +msgid "The Beats per minute block sets the number of 1/4 notes per minute." msgstr "" -#: js/FlowBlocks.js:124 -msgid "The Duplicate block will run each block multiple times." +#: js/blocks/MeterBlocks.js:1279 +#.TRANS: anacrusis +msgid "pickup" msgstr "" -#: js/FlowBlocks.js:136 -msgid "duplicate" +#: js/blocks/MeterBlocks.js:1367 +msgid "number of beats" msgstr "" -#: js/FlowBlocks.js:334 -msgid "The Default block is used inside of a Switch to define the default action." +#: js/blocks/NumberBlocks.js:28 +msgid "The Int block returns an integer." msgstr "" -#: js/FlowBlocks.js:342 -msgid "default" +#: js/blocks/NumberBlocks.js:34 +msgid "int" msgstr "" -#: js/FlowBlocks.js:361 -#: js/FlowBlocks.js:418 -msgid "The Case Block must be used inside of a Switch Block." +#: js/blocks/NumberBlocks.js:73 +msgid "The Mod block returns the remainder from a division." msgstr "" -#: js/FlowBlocks.js:389 -msgid "The Case block is used inside of a Switch to define matches." +#: js/blocks/NumberBlocks.js:79 +msgid "mod" msgstr "" -#: js/FlowBlocks.js:397 -msgid "case" +#: js/blocks/NumberBlocks.js:141 +msgid "The Power block calculates a power function." msgstr "" -#: js/FlowBlocks.js:446 -msgid "The Switch block will run the code in the matching Case." +#: js/blocks/NumberBlocks.js:196 +msgid "The Sqrt block returns the square root." msgstr "" -#: js/FlowBlocks.js:454 -msgid "switch" +#: js/blocks/NumberBlocks.js:202 +msgid "sqrt" msgstr "" -#: js/FlowBlocks.js:595 -msgid "The Stop block will stop a loop" +#: js/blocks/NumberBlocks.js:248 +msgid "The Abs block returns the absolute value." msgstr "" -#: js/FlowBlocks.js:597 -msgid "Forever, Repeat, While, or Until." +#: js/blocks/NumberBlocks.js:254 +msgid "abs" msgstr "" -#: js/FlowBlocks.js:604 -#: js/phrasemaker.js:3799 -#: js/musickeyboard.js:629 -#: js/musickeyboard.js:631 -#: js/timbre.js:417 -#: js/timbre.js:419 -#: plugins/rodi.rtp:29 -#: plugins/rodi.rtp:73 -#: plugins/rodi.rtp:413 -msgid "stop" +#: js/blocks/NumberBlocks.js:295 +msgid "The Distance block returns the distance between two points. For example, between the mouse and the center of the screen." msgstr "" -#: js/FlowBlocks.js:653 -msgid "The Waitfor block will wait until the condition is true." +#: js/blocks/NumberBlocks.js:301 +#: plugins/rodi.rtp:310 +msgid "distance" msgstr "" -#: js/FlowBlocks.js:661 -msgid "wait for" +#: js/blocks/NumberBlocks.js:361 +msgid "The Divide block is used to divide." msgstr "" -#: js/FlowBlocks.js:732 -msgid "The Until block will repeat until the condition is true." +#: js/blocks/NumberBlocks.js:441 +msgid "The Multiply block is used to multiply." msgstr "" -#: js/FlowBlocks.js:740 -msgid "until" +#: js/blocks/NumberBlocks.js:612 +msgid "The Minus block is used to subtract." msgstr "" -#: js/FlowBlocks.js:742 -#: js/FlowBlocks.js:822 -msgid "do2" +#: js/blocks/NumberBlocks.js:723 +msgid "The Plus block is used to add." msgstr "" -#: js/FlowBlocks.js:812 -msgid "The While block will repeat while the condition is true." +#: js/blocks/NumberBlocks.js:849 +msgid "The One-of block returns one of two choices." msgstr "" -#: js/FlowBlocks.js:820 -msgid "while" +#: js/blocks/NumberBlocks.js:856 +#: js/blocks/PitchBlocks.js:616 +msgid "one of" msgstr "" -#: js/FlowBlocks.js:903 -#: js/FlowBlocks.js:968 -#: js/FlowBlocks.js:979 -msgid "In this example if the mouse button is pressed a snare drum will play." +#: js/blocks/NumberBlocks.js:858 +msgid "this" msgstr "" -#: js/FlowBlocks.js:925 -#: js/FlowBlocks.js:988 -msgid "if" +#: js/blocks/NumberBlocks.js:858 +msgid "that" msgstr "" -#: js/FlowBlocks.js:927 -#: js/FlowBlocks.js:990 -msgid "then" +#: js/blocks/NumberBlocks.js:913 +msgid "The Random block returns a random number." msgstr "" -#: js/FlowBlocks.js:927 -msgid "else" +#: js/blocks/NumberBlocks.js:920 +msgid "random" msgstr "" -#: js/FlowBlocks.js:1025 -msgid "The Forever block will repeat the contained blocks forever." +#: js/blocks/NumberBlocks.js:922 +msgid "min" msgstr "" -#: js/FlowBlocks.js:1037 -msgid "forever" +#: js/blocks/NumberBlocks.js:922 +msgid "max" msgstr "" -#: js/FlowBlocks.js:1073 -msgid "The Repeat block will repeat the contained blocks." +#: js/blocks/NumberBlocks.js:986 +msgid "The Number block holds a number." msgstr "" -#: js/FlowBlocks.js:1075 -msgid "In this example the note will be played 4 times." +#: js/blocks/OrnamentBlocks.js:32 +msgid "staccato factor" msgstr "" -#: js/FlowBlocks.js:1083 -msgid "repeat" +#: js/blocks/OrnamentBlocks.js:108 +msgid "slur factor" msgstr "" -#: js/FlowBlocks.js:1123 -msgid "duplicate factor" +#: js/blocks/OrnamentBlocks.js:217 +#: js/blocks/OrnamentBlocks.js:309 +#.TRANS: the neighbor refers to a neighboring note, e.g., D is a neighbor of C +msgid "neighbor" msgstr "" -#: js/PitchBlocks.js:39 -#: js/musicutils.js:722 -#: js/musicutils.js:1117 -#: js/synthutils.js:112 -#.TRANS: square wave -msgid "square" +#: js/blocks/OrnamentBlocks.js:293 +msgid "The Neighbor block rapidly switches between neighboring pitches." msgstr "" -#: js/PitchBlocks.js:62 -#: js/ToneBlocks.js:39 -#: js/musicutils.js:723 -#: js/musicutils.js:1118 -#: js/synthutils.js:116 -#.TRANS: triangle wave -msgid "triangle" +#: js/blocks/OrnamentBlocks.js:364 +msgid "glide" msgstr "" -#: js/PitchBlocks.js:85 -#: js/musicutils.js:721 -#: js/musicutils.js:1116 -#: js/synthutils.js:110 -#.TRANS: sine wave -msgid "sine" +#: js/blocks/OrnamentBlocks.js:479 +#: js/blocks/OrnamentBlocks.js:643 +msgid "slur" msgstr "" -#: js/PitchBlocks.js:108 -#: js/musicutils.js:724 -#: js/musicutils.js:1119 -#: js/synthutils.js:114 -#.TRANS: sawtooth wave -msgid "sawtooth" +#: js/blocks/OrnamentBlocks.js:558 +#: js/blocks/OrnamentBlocks.js:710 +#.TRANS: play each note sharply detached from the others +msgid "staccato" msgstr "" -#: js/PitchBlocks.js:141 -#.TRANS: musical transposition (adjustment of pitch up or down) -msgid "transposition" +#: js/blocks/RhythmBlocks.js:182 +#: js/blocks/RhythmBlocks.js:1086 +#: js/blocks/RhythmBlocks.js:1162 +msgid "Note value must be greater than 0." msgstr "" -#: js/PitchBlocks.js:168 -#.TRANS: step down one note in current musical scale -msgid "scalar step down" +#: js/blocks/RhythmBlocks.js:215 +#: js/blocks/RhythmBlocks.js:278 +#: js/blocks/RhythmBlocks.js:350 +#.TRANS: swing is a rhythmic variation that emphasises the offbeat +msgid "swing" msgstr "" -#: js/PitchBlocks.js:172 -msgid "The Scalar step down block returns the number of semi-tones down to the previous note in the current key and mode." +#: js/blocks/RhythmBlocks.js:355 +#.TRANS: the amount to shift to the offbeat note +msgid "swing value" msgstr "" -#: js/PitchBlocks.js:190 -#.TRANS: step up one note in current musical scale -msgid "scalar step up" +#: js/blocks/RhythmBlocks.js:419 +msgid "The Skip notes block will cause notes to be skipped." msgstr "" -#: js/PitchBlocks.js:194 -msgid "The Scalar step up block returns the number of semi-tones up to the next note in the current key and mode." +#: js/blocks/RhythmBlocks.js:427 +#.TRANS: substitute rests on notes being skipped +msgid "skip notes" msgstr "" -#: js/PitchBlocks.js:212 -#.TRANS: the change measured in half-steps between the current pitch and the previous pitch -msgid "change in pitch" +#: js/blocks/RhythmBlocks.js:489 +#.TRANS: speed up note duration by some factor, e.g. convert 1/4 to 1/8 notes by using a factor of 2 +msgid "multiply note value" msgstr "" -#: js/PitchBlocks.js:216 -msgid "The Change in pitch block is the difference (in half steps) between the current pitch being played and the previous pitch played." +#: js/blocks/RhythmBlocks.js:542 +msgid "The Tie block works on pairs of notes, combining them into one note." msgstr "" -#: js/PitchBlocks.js:243 -#.TRANS: the change measured in scale-steps between the current pitch and the previous pitch -msgid "scalar change in pitch" +#: js/blocks/RhythmBlocks.js:550 +#.TRANS: tie notes together into one longer note +msgid "tie" msgstr "" -#: js/PitchBlocks.js:250 -#: js/PitchBlocks.js:432 -#: js/PitchBlocks.js:1629 -#: js/DictActions.js:89 -#: js/temperament.js:477 -#: js/temperament.js:481 -#: js/temperament.js:714 -#.TRANS: convert current note to piano key (1-88) -#.TRANS: a mapping of pitch to the 88 piano keys -msgid "pitch number" +#: js/blocks/RhythmBlocks.js:591 +#: js/blocks/RhythmBlocks.js:671 +#.TRANS: a dotted note is played for 1.5x its value, e.g., 1/8. --> 3/16 +msgid "dot" msgstr "" -#: js/PitchBlocks.js:256 -msgid "The Pitch number block is the value of the pitch of the note currently being played." +#: js/blocks/RhythmBlocks.js:619 +#: js/turtleactions/RhythmActions.js:221 +msgid "An argument of -1 results in a note value of 0." msgstr "" -#: js/PitchBlocks.js:329 -#: js/PitchBlocks.js:433 -#.TRANS: the current pitch expressed in Hertz -msgid "pitch in hertz" +#: js/blocks/RhythmBlocks.js:661 +msgid "The Dot block extends the duration of a note by 50%." msgstr "" -#: js/PitchBlocks.js:334 -msgid "The Pitch in Hertz block is the value in Hertz of the pitch of the note currently being played." +#: js/blocks/RhythmBlocks.js:663 +msgid "Eg a dotted quarter note will play for 3/8 (1/4 + 1/8) of a beat." msgstr "" -#: js/PitchBlocks.js:367 -#: js/DictActions.js:87 -msgid "current pitch" +#: js/blocks/RhythmBlocks.js:765 +#.TRANS: Japanese only: note value block for drum +msgid "note value drum" msgstr "" -#: js/PitchBlocks.js:373 -msgid "The Current Pitch block is used with the Pitch Converter block. In the example above, current pitch, sol 4, is displayed as 392 hertz." +#: js/blocks/RhythmBlocks.js:829 +msgid "392 hertz" msgstr "" -#: js/PitchBlocks.js:410 -msgid "This block converts the pitch value of the last note played into different formats such as hertz, letter name, pitch number, et al." +#: js/blocks/RhythmBlocks.js:1119 +msgid "The Note block is a container for one or more Pitch blocks." msgstr "" -#: js/PitchBlocks.js:434 -msgid "alphabet" +#: js/blocks/RhythmBlocks.js:1121 +msgid "The Note block specifies the duration (note value) of its contents." msgstr "" -#: js/PitchBlocks.js:436 -#.TRANS: Translate as "alphabet class" -msgid "letter class" +#: js/blocks/RhythmBlocks.js:1128 +#: js/blocks/PitchBlocks.js:974 +#: js/blocks/PitchBlocks.js:1007 +#: js/blocks/ProgramBlocks.js:1186 +#: js/blocks/ProgramBlocks.js:1227 +#: js/widgets/status.js:190 +#: js/widgets/temperament.js:464 +#: js/widgets/temperament.js:486 +#: js/widgets/temperament.js:496 +#: js/widgets/temperament.js:617 +#: plugins/rodi.rtp:192 +#.TRANS: a musical note consisting of pitch and duration +msgid "note" msgstr "" -#: js/PitchBlocks.js:437 -msgid "solfege class" +#: js/blocks/RhythmBlocks.js:1130 +msgid "value2" msgstr "" -#: js/PitchBlocks.js:438 -msgid "staff y" +#: js/blocks/RhythmBlocks.js:1200 +msgid "define frequency" msgstr "" -#: js/PitchBlocks.js:439 -msgid "solfege syllable" +#: js/blocks/RhythmBlocks.js:1218 +#: js/widgets/temperament.js:787 +#: js/widgets/temperament.js:1587 +msgid "octave space" msgstr "" -#: js/PitchBlocks.js:440 -msgid "pitch class" +#: js/blocks/SensorsBlocks.js:36 +msgid "The Input block prompts for keyboard input." msgstr "" -#: js/PitchBlocks.js:441 -msgid "scalar class" +#: js/blocks/SensorsBlocks.js:46 +msgid "input" msgstr "" -#: js/PitchBlocks.js:443 -msgid "nth degree" +#: js/blocks/SensorsBlocks.js:64 +msgid "Input a value" msgstr "" -#: js/PitchBlocks.js:444 -msgid "pitch to shade" +#: js/blocks/SensorsBlocks.js:126 +msgid "input value" msgstr "" -#: js/PitchBlocks.js:445 -msgid "pitch to color" +#: js/blocks/SensorsBlocks.js:131 +msgid "The Input-value block stores the input." msgstr "" -#: js/PitchBlocks.js:629 -#: js/musickeyboard.js:565 -#.TRANS: MIDI is a technical standard for electronic music -msgid "MIDI" +#: js/blocks/SensorsBlocks.js:238 +msgid "loudness" msgstr "" -#: js/PitchBlocks.js:642 -#.TRANS: set an offset associated with the numeric piano keyboard mapping -msgid "set pitch number offset" +#: js/blocks/SensorsBlocks.js:245 +msgid "The Loudness block returns the volume detected by the microphone." msgstr "" -#: js/PitchBlocks.js:645 -msgid "The Set pitch number offset block is used to set the offset for mapping pitch numbers to pitch and octave." +#: js/blocks/SensorsBlocks.js:300 +msgid "click" msgstr "" -#: js/PitchBlocks.js:679 -#.TRANS: convert piano key number (1-88) to pitch -msgid "number to pitch" +#: js/blocks/SensorsBlocks.js:306 +msgid "The Click block triggers an event if a mouse has been clicked." msgstr "" -#: js/PitchBlocks.js:682 -msgid "The Number to pitch block will convert a pitch number to a pich name." +#: js/blocks/SensorsBlocks.js:313 +msgid "The Click block triggers an event if a turtle has been clicked." msgstr "" -#: js/PitchBlocks.js:715 -#.TRANS: convert piano key number (1-88) to octave -msgid "number to octave" +#: js/blocks/SensorsBlocks.js:342 +msgid "cursor over" msgstr "" -#: js/PitchBlocks.js:717 -msgid "The Number to octave block will convert a pitch number to an octave." +#: js/blocks/SensorsBlocks.js:387 +msgid "cursor out" msgstr "" -#: js/PitchBlocks.js:726 -msgid "y to pitch" +#: js/blocks/SensorsBlocks.js:433 +msgid "cursor button down" msgstr "" -#: js/PitchBlocks.js:729 -msgid "Y to pitch block will convert a staff y position to corresponding pitch notation." +#: js/blocks/SensorsBlocks.js:477 +msgid "cursor button up" msgstr "" -#: js/PitchBlocks.js:841 -msgid "accidental selector" +#: js/blocks/SensorsBlocks.js:521 +#: js/blocks/PenBlocks.js:48 +#: plugins/rodi.rtp:219 +msgid "blue" msgstr "" -#: js/PitchBlocks.js:844 -msgid "The Accidental selector block is used to choose between double-sharp, sharp, natural, flat, and double-flat." +#: js/blocks/SensorsBlocks.js:577 +#: js/blocks/PenBlocks.js:64 +#: plugins/rodi.rtp:218 +msgid "green" msgstr "" -#: js/PitchBlocks.js:858 -msgid "Pitch can be specified in terms of ni dha pa ma ga re sa." +#: js/blocks/SensorsBlocks.js:633 +#: js/blocks/PenBlocks.js:112 +#: plugins/rodi.rtp:217 +msgid "red" msgstr "" -#: js/PitchBlocks.js:872 -msgid "Pitch can be specified in terms of C D E F G A B." +#: js/blocks/SensorsBlocks.js:638 +msgid "The Get red block returns the red component of the pixel under the mouse." msgstr "" -#: js/PitchBlocks.js:883 -msgid "solfege" +#: js/blocks/SensorsBlocks.js:644 +msgid "The Get red block returns the red component of the pixel under the turtle." msgstr "" -#: js/PitchBlocks.js:886 -msgid "Pitch can be specified in terms of do re mi fa sol la ti." +#: js/blocks/SensorsBlocks.js:685 +#: plugins/rodi.rtp:216 +msgid "pixel color" msgstr "" -#: js/PitchBlocks.js:920 -msgid "The Invert block rotates any contained notes around a target note." +#: js/blocks/SensorsBlocks.js:690 +msgid "The Get pixel block returns the color of the pixel under the mouse." msgstr "" -#: js/PitchBlocks.js:927 -#.TRANS: pitch inversion rotates a pitch around another pitch -msgid "invert" +#: js/blocks/SensorsBlocks.js:696 +msgid "The Get pixel block returns the color of the pixel under the turtle." msgstr "" -#: js/PitchBlocks.js:929 -#: js/PitchBlocks.js:935 -#: js/PitchActions.js:727 -#: js/musicutils.js:726 -#: js/musicutils.js:902 -#.TRANS: invert based on even or odd number or musical scale -#.TRANS: even numbers -msgid "even" +#: js/blocks/SensorsBlocks.js:758 +msgid "time" msgstr "" -#: js/PitchBlocks.js:935 -#: js/PitchActions.js:729 -#: js/musicutils.js:728 -#: js/musicutils.js:903 -#.TRANS: odd numbers -msgid "odd" +#: js/blocks/SensorsBlocks.js:804 +msgid "cursor y" msgstr "" -#: js/PitchBlocks.js:935 -#: js/PitchActions.js:731 -#: js/musicutils.js:729 -#: js/musicutils.js:904 -msgid "scalar" +#: js/blocks/SensorsBlocks.js:809 +msgid "The Cursor Y block returns the vertical position of the mouse." msgstr "" -#: js/PitchBlocks.js:966 -#.TRANS: pitch inversion rotates a pitch around another pitch (odd number) -msgid "invert (odd)" +#: js/blocks/SensorsBlocks.js:845 +msgid "cursor x" msgstr "" -#: js/PitchBlocks.js:999 -#.TRANS: pitch inversion rotates a pitch around another pitch (even number) -msgid "invert (even)" +#: js/blocks/SensorsBlocks.js:850 +msgid "The Cursor X block returns the horizontal position of the mouse." msgstr "" -#: js/PitchBlocks.js:1020 -#.TRANS: register is the octave of the current pitch -msgid "register" +#: js/blocks/SensorsBlocks.js:886 +msgid "mouse button" msgstr "" -#: js/PitchBlocks.js:1024 -msgid "The Register block provides an easy way to modify the register (octave) of the notes that follow it." +#: js/blocks/SensorsBlocks.js:888 +msgid "The Mouse-button block returns True if the mouse button is pressed." msgstr "" -#: js/PitchBlocks.js:1074 -msgid "The Semi-tone transposition block will shift the pitches contained inside Note blocks up (or down) by half steps." +#: js/blocks/SensorsBlocks.js:934 +msgid "to ASCII" msgstr "" -#: js/PitchBlocks.js:1076 -msgid "In the example shown above, sol is shifted up to sol#." +#: js/blocks/SensorsBlocks.js:938 +msgid "The To ASCII block converts numbers to letters." msgstr "" -#: js/PitchBlocks.js:1082 -#.TRANS: adjust the amount of shift (up or down) of a pitch -msgid "semi-tone transpose" +#: js/blocks/SensorsBlocks.js:1005 +msgid "The Keyboard block returns computer keyboard input." msgstr "" -#: js/PitchBlocks.js:1115 -msgid "The Transpose by Ratio block will shift the pitches contained inside Note blocks up (or down) by a ratio" +#: js/blocks/RhythmBlockPaletteBlocks.js:50 +#: js/blocks/RhythmBlockPaletteBlocks.js:233 +#.TRANS: rhythm block +#.TRANS: translate "rhythm1" as rhythm +msgid "rhythm1" msgstr "" -#: js/PitchBlocks.js:1121 -#.TRANS: adjust the amount of shift (up or down) of a pitch -msgid "transpose by ratio" +#: js/blocks/RhythmBlockPaletteBlocks.js:70 +#: js/blocks/RhythmBlockPaletteBlocks.js:252 +#: js/blocks/RhythmBlockPaletteBlocks.js:485 +#: js/blocks/RhythmBlockPaletteBlocks.js:554 +#: js/blocks/RhythmBlockPaletteBlocks.js:875 +msgid "number of notes" msgstr "" -#: js/PitchBlocks.js:1204 -#.TRANS: down sixth means the note is five scale degrees below current note -msgid "down sixth" +#: js/blocks/RhythmBlockPaletteBlocks.js:126 +msgid "polyphonic rhythm" msgstr "" -#: js/PitchBlocks.js:1223 -#.TRANS: down third means the note is two scale degrees below current note -msgid "down third" +#: js/blocks/RhythmBlockPaletteBlocks.js:219 +msgid "The Rhythm block is used to generate rhythm patterns." msgstr "" -#: js/PitchBlocks.js:1242 -#.TRANS: seventh means the note is the six scale degrees above current note -msgid "seventh" +#: js/blocks/RhythmBlockPaletteBlocks.js:280 +msgid "1/64 note" msgstr "" -#: js/PitchBlocks.js:1261 -#.TRANS: sixth means the note is the five scale degrees above current note -msgid "sixth" +#: js/blocks/RhythmBlockPaletteBlocks.js:304 +msgid "1/32 note" msgstr "" -#: js/PitchBlocks.js:1280 -#.TRANS: fifth means the note is the four scale degrees above current note -msgid "fifth" +#: js/blocks/RhythmBlockPaletteBlocks.js:332 +msgid "1/16 note" msgstr "" -#: js/PitchBlocks.js:1300 -#.TRANS: fourth means the note is three scale degrees above current note -msgid "fourth" +#: js/blocks/RhythmBlockPaletteBlocks.js:360 +msgid "eighth note" msgstr "" -#: js/PitchBlocks.js:1319 -#.TRANS: third means the note is two scale degrees above current note -msgid "third" +#: js/blocks/RhythmBlockPaletteBlocks.js:388 +msgid "quarter note" msgstr "" -#: js/PitchBlocks.js:1338 -#.TRANS: second means the note is one scale degree above current note -msgid "second" +#: js/blocks/RhythmBlockPaletteBlocks.js:416 +msgid "half note" msgstr "" -#: js/PitchBlocks.js:1379 -msgid "The Scalar transposition block will shift the pitches contained inside Note blocks up (or down) the scale." +#: js/blocks/RhythmBlockPaletteBlocks.js:444 +msgid "whole note" msgstr "" -#: js/PitchBlocks.js:1381 -msgid "In the example shown above, sol is shifted up to la." +#: js/blocks/RhythmBlockPaletteBlocks.js:482 +#: js/blocks/RhythmBlockPaletteBlocks.js:551 +#: js/blocks/RhythmBlockPaletteBlocks.js:602 +#.TRANS: A tuplet is a note value divided into irregular time values. +msgid "tuplet" msgstr "" -#: js/PitchBlocks.js:1388 -#.TRANS: adjust the amount of shift (up or down) of a pitch by musical scale (scalar) steps -msgid "scalar transpose" +#: js/blocks/RhythmBlockPaletteBlocks.js:768 +msgid "septuplet" msgstr "" -#: js/PitchBlocks.js:1423 -msgid "The Accidental block is used to create sharps and flats" +#: js/blocks/RhythmBlockPaletteBlocks.js:796 +msgid "quintuplet" msgstr "" -#: js/PitchBlocks.js:1430 -#.TRANS: An accidental is a modification to a pitch, e.g., sharp or flat. -msgid "accidental override" +#: js/blocks/RhythmBlockPaletteBlocks.js:824 +msgid "triplet" msgstr "" -#: js/PitchBlocks.js:1543 -msgid "The Hertz block (in combination with a Number block) will play a sound at the specified frequency." +#: js/blocks/RhythmBlockPaletteBlocks.js:851 +msgid "simple tuplet" msgstr "" -#: js/PitchBlocks.js:1633 -msgid "The Pitch Number block will play a pitch associated by its number, e.g. 0 for C and 7 for G." +#: js/blocks/RhythmBlockPaletteBlocks.js:861 +msgid "Tuplets are a collection of notes that get scaled to a specific duration." msgstr "" -#: js/PitchBlocks.js:1665 -#: js/PitchBlocks.js:1707 -#.TRANS: a numeric mapping of the notes in an octave based on the musical mode -#.TRANS: a numeric mapping of the notes in an octave based on the musical mode -msgid "nth modal pitch" +#: js/blocks/DrumBlocks.js:59 +msgid "The Noise name block is used to select a noise synthesizer." msgstr "" -#: js/PitchBlocks.js:1668 -msgid "n^th Modal Pitch takes the pattern of pitches in semitones for a mode and makes each point a degree of the mode," +#: js/blocks/DrumBlocks.js:102 +msgid "The Drum name block is used to select a drum." msgstr "" -#: js/PitchBlocks.js:1670 -msgid "starting from 1 and regardless of tonal framework (i.e. not always 8 notes in the octave)" +#: js/blocks/DrumBlocks.js:146 +msgid "The Effects name block is used to select a sound effect." msgstr "" -#: js/PitchBlocks.js:1711 -msgid "N^th Modal Pitch takes a number as an input as the n^th degree for the given mode. 0 is the first position, 1 is the second, -1 is the note before the first etc." +#: js/blocks/DrumBlocks.js:163 +msgid "noise" msgstr "" -#: js/PitchBlocks.js:1713 -msgid "The pitches change according to the mode specified without any need for respellings." +#: js/blocks/DrumBlocks.js:177 +msgid "The Play noise block will generate white, pink, or brown noise." msgstr "" -#: js/PitchBlocks.js:1752 -msgid "Scale Degree is a common convention in music. Scale Degree offers seven possible positions in the scale (1-7) and can be modified via accidentals." +#: js/blocks/DrumBlocks.js:317 +msgid "Replace every instance of a pitch with a drum sound." msgstr "" -#: js/PitchBlocks.js:1754 -msgid "Scale Degree 1 is always the first pitch in a given scale, regardless of octave." +#: js/blocks/DrumBlocks.js:328 +#.TRANS: map a pitch to a drum sound +msgid "map pitch to drum" msgstr "" -#: js/PitchBlocks.js:1776 -#.TRANS: step some number of notes in current musical scale -msgid "scalar step" +#: js/blocks/DrumBlocks.js:395 +msgid "In the example above, a kick drum sound will be played instead of sol." msgstr "" -#: js/PitchBlocks.js:1781 -msgid "The Scalar Step block (in combination with a Number block) will play the next pitch in a scale," +#: js/blocks/DrumBlocks.js:407 +#.TRANS: set the current drum sound for playback +msgid "set drum" msgstr "" -#: js/PitchBlocks.js:1783 -msgid "eg if the last note played was sol, Scalar Step 1 will play la." +#: js/blocks/DrumBlocks.js:451 +msgid "sound effect" msgstr "" -#: js/PitchBlocks.js:1818 -msgid "The Pitch block specifies the pitch name and octave of a note that together determine the frequency of the note." +#: js/blocks/DrumBlocks.js:489 +msgid "You can use multiple Drum blocks within a Note block." msgstr "" -#: js/GraphicsBlocks.js:46 -#: js/DictActions.js:77 -#: js/DictActions.js:155 -#: js/DictActions.js:189 +#: js/blocks/GraphicsBlocks.js:46 +#: js/turtleactions/DictActions.js:77 +#: js/turtleactions/DictActions.js:144 +#: js/turtleactions/DictActions.js:173 msgid "heading" msgstr "" -#: js/GraphicsBlocks.js:56 +#: js/blocks/GraphicsBlocks.js:56 msgid "The Heading block returns the orientation of the mouse." msgstr "" -#: js/GraphicsBlocks.js:62 +#: js/blocks/GraphicsBlocks.js:62 msgid "The Heading block returns the orientation of the turtle." msgstr "" -#: js/GraphicsBlocks.js:133 +#: js/blocks/GraphicsBlocks.js:133 msgid "The Y block returns the vertical position of the mouse." msgstr "" -#: js/GraphicsBlocks.js:140 +#: js/blocks/GraphicsBlocks.js:140 msgid "The Y block returns the vertical position of the turtle." msgstr "" -#: js/GraphicsBlocks.js:149 +#: js/blocks/GraphicsBlocks.js:149 msgid "y3" msgstr "" -#: js/GraphicsBlocks.js:219 +#: js/blocks/GraphicsBlocks.js:219 msgid "The X block returns the horizontal position of the mouse." msgstr "" -#: js/GraphicsBlocks.js:226 +#: js/blocks/GraphicsBlocks.js:226 msgid "The X block returns the horizontal position of the turtle." msgstr "" -#: js/GraphicsBlocks.js:235 +#: js/blocks/GraphicsBlocks.js:235 msgid "x3" msgstr "" -#: js/GraphicsBlocks.js:295 +#: js/blocks/GraphicsBlocks.js:295 msgid "scroll xy" msgstr "" -#: js/GraphicsBlocks.js:303 +#: js/blocks/GraphicsBlocks.js:303 msgid "The Scroll XY block moves the canvas." msgstr "" -#: js/GraphicsBlocks.js:313 +#: js/blocks/GraphicsBlocks.js:313 msgid "x2" msgstr "" -#: js/GraphicsBlocks.js:313 +#: js/blocks/GraphicsBlocks.js:313 msgid "y2" msgstr "" -#: js/GraphicsBlocks.js:373 -#: js/temperament.js:213 -#: js/temperament.js:241 +#: js/blocks/GraphicsBlocks.js:373 +#: js/widgets/temperament.js:319 +#: js/widgets/temperament.js:347 msgid "clear" msgstr "" -#: js/GraphicsBlocks.js:426 +#: js/blocks/GraphicsBlocks.js:426 msgid "The Control-point 2 block sets the second control point for the Bezier curve." msgstr "" -#: js/GraphicsBlocks.js:433 +#: js/blocks/GraphicsBlocks.js:433 msgid "control point 2" msgstr "" -#: js/GraphicsBlocks.js:436 -#: js/GraphicsBlocks.js:487 -#: js/GraphicsBlocks.js:534 -#: js/GraphicsBlocks.js:750 +#: js/blocks/GraphicsBlocks.js:436 +#: js/blocks/GraphicsBlocks.js:487 +#: js/blocks/GraphicsBlocks.js:534 +#: js/blocks/GraphicsBlocks.js:750 msgid "x1" msgstr "" -#: js/GraphicsBlocks.js:436 -#: js/GraphicsBlocks.js:487 -#: js/GraphicsBlocks.js:534 -#: js/GraphicsBlocks.js:750 +#: js/blocks/GraphicsBlocks.js:436 +#: js/blocks/GraphicsBlocks.js:487 +#: js/blocks/GraphicsBlocks.js:534 +#: js/blocks/GraphicsBlocks.js:750 msgid "y1" msgstr "" -#: js/GraphicsBlocks.js:477 +#: js/blocks/GraphicsBlocks.js:477 msgid "The Control-point 1 block sets the first control point for the Bezier curve." msgstr "" -#: js/GraphicsBlocks.js:484 +#: js/blocks/GraphicsBlocks.js:484 msgid "control point 1" msgstr "" -#: js/GraphicsBlocks.js:527 +#: js/blocks/GraphicsBlocks.js:527 msgid "The Bezier block draws a Bezier curve." msgstr "" -#: js/GraphicsBlocks.js:531 +#: js/blocks/GraphicsBlocks.js:531 msgid "bezier" msgstr "" -#: js/GraphicsBlocks.js:592 +#: js/blocks/GraphicsBlocks.js:592 msgid "The Arc block moves the turtle in an arc." msgstr "" -#: js/GraphicsBlocks.js:600 +#: js/blocks/GraphicsBlocks.js:600 msgid "arc" msgstr "" -#: js/GraphicsBlocks.js:603 +#: js/blocks/GraphicsBlocks.js:603 msgid "angle" msgstr "" -#: js/GraphicsBlocks.js:603 +#: js/blocks/GraphicsBlocks.js:603 msgid "radius" msgstr "" -#: js/GraphicsBlocks.js:620 -#: js/GraphicsBlocks.js:767 -#: js/GraphicsBlocks.js:1010 -#: js/GraphicsBlocks.js:1093 +#: js/blocks/GraphicsBlocks.js:620 +#: js/blocks/GraphicsBlocks.js:767 +#: js/blocks/GraphicsBlocks.js:1010 +#: js/blocks/GraphicsBlocks.js:1093 msgid "Value must be within -5000 to 5000 when Wrap Mode is off." msgstr "" -#: js/GraphicsBlocks.js:622 -#: js/GraphicsBlocks.js:769 -#: js/GraphicsBlocks.js:1012 -#: js/GraphicsBlocks.js:1095 +#: js/blocks/GraphicsBlocks.js:622 +#: js/blocks/GraphicsBlocks.js:769 +#: js/blocks/GraphicsBlocks.js:1012 +#: js/blocks/GraphicsBlocks.js:1095 msgid "Value must be within -20000 to 20000 when Wrap Mode is on." msgstr "" -#: js/GraphicsBlocks.js:660 +#: js/blocks/GraphicsBlocks.js:660 msgid "set heading" msgstr "seth" -#: js/GraphicsBlocks.js:673 +#: js/blocks/GraphicsBlocks.js:673 msgid "The Set heading block sets the heading of the turtle." msgstr "" -#: js/GraphicsBlocks.js:733 +#: js/blocks/GraphicsBlocks.js:733 msgid "The Set XY block moves the mouse to a specific position on the screen." msgstr "" -#: js/GraphicsBlocks.js:739 +#: js/blocks/GraphicsBlocks.js:739 msgid "The Set XY block moves the turtle to a specific position on the screen." msgstr "" -#: js/GraphicsBlocks.js:747 +#: js/blocks/GraphicsBlocks.js:747 msgid "set xy" msgstr "" -#: js/GraphicsBlocks.js:819 +#: js/blocks/GraphicsBlocks.js:819 msgid "The Right block turns the mouse to the right." msgstr "" -#: js/GraphicsBlocks.js:826 +#: js/blocks/GraphicsBlocks.js:826 msgid "The Right block turns the turtle to the right." msgstr "" -#: js/GraphicsBlocks.js:835 +#: js/blocks/GraphicsBlocks.js:835 msgid "right1" msgstr "" -#: js/GraphicsBlocks.js:835 +#: js/blocks/GraphicsBlocks.js:835 #: plugins/rodi.rtp:77 #: plugins/rodi.rtp:340 #: plugins/rodi.rtp:375 msgid "right" msgstr "" -#: js/GraphicsBlocks.js:899 +#: js/blocks/GraphicsBlocks.js:899 msgid "The Left block turns the mouse to the left." msgstr "" -#: js/GraphicsBlocks.js:906 +#: js/blocks/GraphicsBlocks.js:906 msgid "The Left block turns the turtle to the left." msgstr "" -#: js/GraphicsBlocks.js:915 +#: js/blocks/GraphicsBlocks.js:915 msgid "left1" msgstr "" -#: js/GraphicsBlocks.js:915 +#: js/blocks/GraphicsBlocks.js:915 #: plugins/rodi.rtp:79 #: plugins/rodi.rtp:339 #: plugins/rodi.rtp:362 msgid "left" msgstr "" -#: js/GraphicsBlocks.js:967 -#: js/temperament.js:734 -#: js/temperament.js:933 +#: js/blocks/GraphicsBlocks.js:967 +#: js/widgets/temperament.js:875 +#: js/widgets/temperament.js:1078 #: plugins/rodi.rtp:69 #: plugins/rodi.rtp:387 msgid "back" msgstr "" -#: js/GraphicsBlocks.js:976 +#: js/blocks/GraphicsBlocks.js:976 msgid "The Back block moves the mouse backward." msgstr "" -#: js/GraphicsBlocks.js:983 +#: js/blocks/GraphicsBlocks.js:983 msgid "The Back block moves the turtle backward." msgstr "" -#: js/GraphicsBlocks.js:1050 +#: js/blocks/GraphicsBlocks.js:1050 #: plugins/rodi.rtp:71 #: plugins/rodi.rtp:400 msgid "forward" msgstr "" -#: js/GraphicsBlocks.js:1059 +#: js/blocks/GraphicsBlocks.js:1059 msgid "The Forward block moves the mouse forward." msgstr "" -#: js/GraphicsBlocks.js:1066 +#: js/blocks/GraphicsBlocks.js:1066 msgid "The Forward block moves the turtle forward." msgstr "" -#: js/GraphicsBlocks.js:1154 -#: js/GraphicsBlocks.js:1172 +#: js/blocks/GraphicsBlocks.js:1154 +#: js/blocks/GraphicsBlocks.js:1172 msgid "wrap" msgstr "" -#: js/OrnamentBlocks.js:32 -msgid "staccato factor" -msgstr "" - -#: js/OrnamentBlocks.js:108 -msgid "slur factor" -msgstr "" - -#: js/OrnamentBlocks.js:217 -#: js/OrnamentBlocks.js:309 -#.TRANS: the neighbor refers to a neighboring note, e.g., D is a neighbor of C -msgid "neighbor" -msgstr "" - -#: js/OrnamentBlocks.js:293 -msgid "The Neighbor block rapidly switches between neighboring pitches." -msgstr "" - -#: js/OrnamentBlocks.js:364 -msgid "glide" -msgstr "" - -#: js/OrnamentBlocks.js:479 -#: js/OrnamentBlocks.js:643 -msgid "slur" -msgstr "" - -#: js/OrnamentBlocks.js:558 -#: js/OrnamentBlocks.js:710 -#.TRANS: play each note sharply detached from the others -msgid "staccato" -msgstr "" - -#: js/PenBlocks.js:24 +#: js/blocks/PenBlocks.js:30 msgid "purple" msgstr "" -#: js/PenBlocks.js:37 -#: js/SensorsBlocks.js:521 -#: plugins/rodi.rtp:219 -msgid "blue" -msgstr "" - -#: js/PenBlocks.js:50 -#: js/SensorsBlocks.js:577 -#: plugins/rodi.rtp:218 -msgid "green" -msgstr "" - -#: js/PenBlocks.js:63 +#: js/blocks/PenBlocks.js:80 msgid "yellow" msgstr "" -#: js/PenBlocks.js:76 +#: js/blocks/PenBlocks.js:96 #: plugins/nutrition.rtp:164 msgid "orange" msgstr "" -#: js/PenBlocks.js:89 -#: js/SensorsBlocks.js:633 -#: plugins/rodi.rtp:217 -msgid "red" -msgstr "" - -#: js/PenBlocks.js:102 +#: js/blocks/PenBlocks.js:128 msgid "white" msgstr "" -#: js/PenBlocks.js:115 +#: js/blocks/PenBlocks.js:144 msgid "black" msgstr "" -#: js/PenBlocks.js:128 +#: js/blocks/PenBlocks.js:163 msgid "begin fill" msgstr "" -#: js/PenBlocks.js:143 +#: js/blocks/PenBlocks.js:190 msgid "end fill" msgstr "" -#: js/PenBlocks.js:159 -#: js/PenBlocks.js:386 +#: js/blocks/PenBlocks.js:212 +#: js/blocks/PenBlocks.js:560 #.TRANS: set the background color msgid "background" msgstr "" -#: js/PenBlocks.js:206 -#: js/DictActions.js:71 -#: js/DictActions.js:149 -#: js/DictActions.js:186 +#: js/blocks/PenBlocks.js:274 +#: js/turtleactions/DictActions.js:71 +#: js/turtleactions/DictActions.js:138 +#: js/turtleactions/DictActions.js:170 msgid "grey" msgstr "" -#: js/PenBlocks.js:210 +#: js/blocks/PenBlocks.js:282 msgid "The Grey block returns the current pen grey value." msgstr "" -#: js/PenBlocks.js:243 -#: js/DictActions.js:69 -#: js/DictActions.js:147 -#: js/DictActions.js:185 +#: js/blocks/PenBlocks.js:340 +#: js/turtleactions/DictActions.js:69 +#: js/turtleactions/DictActions.js:136 +#: js/turtleactions/DictActions.js:169 msgid "shade" msgstr "" -#: js/PenBlocks.js:247 +#: js/blocks/PenBlocks.js:347 msgid "The Shade block returns the current pen shade value." msgstr "" -#: js/PenBlocks.js:280 -#: js/DictActions.js:67 -#: js/DictActions.js:145 -#: js/DictActions.js:184 +#: js/blocks/PenBlocks.js:405 +#: js/turtleactions/DictActions.js:67 +#: js/turtleactions/DictActions.js:134 +#: js/turtleactions/DictActions.js:168 msgid "color" msgstr "" -#: js/PenBlocks.js:285 +#: js/blocks/PenBlocks.js:415 msgid "The Color block returns the current pen color." msgstr "" -#: js/PenBlocks.js:318 -#: js/DictActions.js:73 -#: js/DictActions.js:151 -#: js/DictActions.js:187 +#: js/blocks/PenBlocks.js:470 +#: js/turtleactions/DictActions.js:73 +#: js/turtleactions/DictActions.js:140 +#: js/turtleactions/DictActions.js:171 msgid "pen size" msgstr "" -#: js/PenBlocks.js:322 +#: js/blocks/PenBlocks.js:474 msgid "The Pen size block returns the current pen size value." msgstr "" -#: js/PenBlocks.js:355 +#: js/blocks/PenBlocks.js:513 msgid "set font" msgstr "" -#: js/PenBlocks.js:358 +#: js/blocks/PenBlocks.js:518 msgid "The Set font block sets the font used by the Show block." msgstr "" -#: js/PenBlocks.js:391 +#: js/blocks/PenBlocks.js:567 msgid "The Background block sets the window background color." msgstr "" -#: js/PenBlocks.js:408 +#: js/blocks/PenBlocks.js:598 msgid "The Hollow line block creates a line with a hollow center." msgstr "" -#: js/PenBlocks.js:415 +#: js/blocks/PenBlocks.js:606 #.TRANS: draw a line logo has a hollow space down its center msgid "hollow line" msgstr "" -#: js/PenBlocks.js:462 +#: js/blocks/PenBlocks.js:675 msgid "The Fill block fills in a shape with a color." msgstr "" -#: js/PenBlocks.js:470 +#: js/blocks/PenBlocks.js:684 #.TRANS: fill in as a solid color msgid "fill" msgstr "" -#: js/PenBlocks.js:527 +#: js/blocks/PenBlocks.js:761 #.TRANS: raise up the pen so logo it does not draw when it is moved msgid "pen up" msgstr "" -#: js/PenBlocks.js:532 +#: js/blocks/PenBlocks.js:768 msgid "The Pen-up block raises the pen so that it does not draw." msgstr "" -#: js/PenBlocks.js:552 +#: js/blocks/PenBlocks.js:802 #.TRANS: put down the pen so logo it draws when it is moved msgid "pen down" msgstr "" -#: js/PenBlocks.js:557 +#: js/blocks/PenBlocks.js:810 msgid "The Pen-down block lowers the pen so that it draws." msgstr "" -#: js/PenBlocks.js:577 +#: js/blocks/PenBlocks.js:844 #.TRANS: set the width of the line drawn by the pen msgid "set pen size" msgstr "" -#: js/PenBlocks.js:583 +#: js/blocks/PenBlocks.js:854 msgid "The Set-pen-size block changes the size of the pen." msgstr "" -#: js/PenBlocks.js:623 +#: js/blocks/PenBlocks.js:913 #.TRANS: set degree of translucence of the pen color msgid "set translucency" msgstr "" -#: js/PenBlocks.js:627 +#: js/blocks/PenBlocks.js:921 msgid "The Set translucency block changes the opacity of the pen." msgstr "" -#: js/PenBlocks.js:668 +#: js/blocks/PenBlocks.js:981 msgid "set hue" msgstr "" -#: js/PenBlocks.js:672 +#: js/blocks/PenBlocks.js:989 msgid "The Set hue block changes the color of the pen." msgstr "" -#: js/PenBlocks.js:711 +#: js/blocks/PenBlocks.js:1047 msgid "set shade" msgstr "" -#: js/PenBlocks.js:717 +#: js/blocks/PenBlocks.js:1057 msgid "The Set-shade block changes the pen color from dark to light." msgstr "" -#: js/PenBlocks.js:757 +#: js/blocks/PenBlocks.js:1111 #.TRANS: set the level of vividness of the pen color msgid "set grey" msgstr "" -#: js/PenBlocks.js:761 +#: js/blocks/PenBlocks.js:1119 msgid "The Set grey block changes the vividness of the pen color." msgstr "" -#: js/PenBlocks.js:800 +#: js/blocks/PenBlocks.js:1172 msgid "set color" msgstr "" -#: js/PenBlocks.js:806 +#: js/blocks/PenBlocks.js:1182 msgid "The Set-color block changes the pen color." msgstr "" -#: js/VolumeBlocks.js:35 -msgid "synth volume" -msgstr "" - -#: js/VolumeBlocks.js:39 -msgid "The Synth volume block returns the current volume of the current synthesizer." -msgstr "" - -#: js/VolumeBlocks.js:47 -#: js/musicutils.js:730 -#: js/synthutils.js:56 -#.TRANS: musical instrument -msgid "piano" -msgstr "" - -#: js/VolumeBlocks.js:105 -msgid "master volume" -msgstr "" - -#: js/VolumeBlocks.js:109 -msgid "The Master volume block returns the master volume." -msgstr "" - -#: js/VolumeBlocks.js:355 -#: js/VolumeBlocks.js:524 -msgid "set synth volume" -msgstr "" - -#: js/VolumeBlocks.js:362 -#: js/VolumeBlocks.js:545 -msgid "synth" -msgstr "" - -#: js/VolumeBlocks.js:403 -#: js/VolumeBlocks.js:577 -#: js/VolumeBlocks.js:740 -#: js/VolumeActions.js:173 -msgid "Setting volume to 0." -msgstr "" - -#: js/VolumeBlocks.js:440 -msgid "Synth not found" -msgstr "" - -#: js/VolumeBlocks.js:494 -msgid "set drum volume" -msgstr "" - -#: js/VolumeBlocks.js:530 -msgid "The Set synth volume block will change the volume of a particular synth," -msgstr "" - -#: js/VolumeBlocks.js:532 -msgid "eg guitar violin snare drum etc." -msgstr "" - -#: js/VolumeBlocks.js:534 -msgid "The default volume is 50." -msgstr "" - -#: js/VolumeBlocks.js:536 -msgid "The range is 0 for silence to 100 for full volume." -msgstr "" - -#: js/VolumeBlocks.js:597 -msgid "set panning" -msgstr "" - -#: js/VolumeBlocks.js:603 -msgid "The Set Panning block sets the panning for all synthesizers." -msgstr "" - -#: js/VolumeBlocks.js:625 -msgid "Warning: Sound is coming out from only the left or right side." -msgstr "" - -#: js/VolumeBlocks.js:647 -#: js/VolumeBlocks.js:695 -msgid "set master volume" -msgstr "" - -#: js/VolumeBlocks.js:653 -msgid "The Set master volume block sets the volume for all synthesizers." -msgstr "" - -#: js/VolumeBlocks.js:784 -msgid "The Set relative volume block changes the volume of the contained notes." -msgstr "" - -#: js/VolumeBlocks.js:791 -msgid "set relative volume" -msgstr "" - -#: js/VolumeBlocks.js:857 -msgid "decrescendo" -msgstr "" - -#: js/VolumeBlocks.js:921 -msgid "crescendo" -msgstr "" - -#: js/ToneBlocks.js:34 -msgid "oscillator" -msgstr "" - -#: js/ToneBlocks.js:44 -#: js/timbre.js:1562 -#.TRANS: Partials refers to the number of sine waves combined into the sound. -msgid "partials" -msgstr "" - -#: js/ToneBlocks.js:76 -msgid "You are adding multiple oscillator blocks." -msgstr "" - -#: js/ToneBlocks.js:144 -#: js/timbre.js:1225 -#.TRANS: a duo synthesizer combines a synth with a sequencer -msgid "duo synth" -msgstr "" - -#: js/ToneBlocks.js:149 -msgid "The Duo synth block is a duo-frequency modulator used to define a timbre." -msgstr "" - -#: js/ToneBlocks.js:157 -#: js/timbre.js:1476 -msgid "vibrato rate" -msgstr "" - -#: js/ToneBlocks.js:157 -msgid "vibrato intensity" -msgstr "" - -#: js/ToneBlocks.js:185 -#: js/timbre.js:1221 -#.TRANS: AM (amplitude modulation) synthesizer -msgid "AM synth" -msgstr "" - -#: js/ToneBlocks.js:189 -msgid "The AM synth block is an amplitude modulator used to define a timbre." -msgstr "" - -#: js/ToneBlocks.js:224 -#: js/timbre.js:1223 -#.TRANS: FM (frequency modulation) synthesizer -msgid "FM synth" -msgstr "" - -#: js/ToneBlocks.js:228 -msgid "The FM synth block is a frequency modulator used to define a timbre." +#: js/blocks/PitchBlocks.js:141 +#.TRANS: musical transposition (adjustment of pitch up or down) +msgid "transposition" msgstr "" -#: js/ToneBlocks.js:262 -msgid "partial" +#: js/blocks/PitchBlocks.js:168 +#.TRANS: step down one note in current musical scale +msgid "scalar step down" msgstr "" -#: js/ToneBlocks.js:265 -msgid "The Partial block is used to specify a weight for a specific partial harmonic." +#: js/blocks/PitchBlocks.js:172 +msgid "The Scalar step down block returns the number of semi-tones down to the previous note in the current key and mode." msgstr "" -#: js/ToneBlocks.js:284 -#.TRANS: partials are weighted components in a harmonic series -msgid "Partial weight must be between 0 and 1." +#: js/blocks/PitchBlocks.js:190 +#.TRANS: step up one note in current musical scale +msgid "scalar step up" msgstr "" -#: js/ToneBlocks.js:297 -#.TRANS: partials are weighted components in a harmonic series -msgid "Partial block should be used inside of a Weighted-partials block." +#: js/blocks/PitchBlocks.js:194 +msgid "The Scalar step up block returns the number of semi-tones up to the next note in the current key and mode." msgstr "" -#: js/ToneBlocks.js:325 -#.TRANS: partials are weighted components in a harmonic series -msgid "weighted partials" +#: js/blocks/PitchBlocks.js:212 +#.TRANS: the change measured in half-steps between the current pitch and the previous pitch +msgid "change in pitch" msgstr "" -#: js/ToneBlocks.js:383 -msgid "The Harmonic block will add harmonics to the contained notes." +#: js/blocks/PitchBlocks.js:216 +msgid "The Change in pitch block is the difference (in half steps) between the current pitch being played and the previous pitch played." msgstr "" -#: js/ToneBlocks.js:390 -#.TRANS: A harmonic is an overtone. -msgid "harmonic" +#: js/blocks/PitchBlocks.js:243 +#.TRANS: the change measured in scale-steps between the current pitch and the previous pitch +msgid "scalar change in pitch" msgstr "" -#: js/ToneBlocks.js:431 -msgid "The Distortion block adds distortion to the pitch." +#: js/blocks/PitchBlocks.js:250 +#: js/blocks/PitchBlocks.js:432 +#: js/blocks/PitchBlocks.js:1667 +#: js/turtleactions/DictActions.js:89 +#: js/widgets/temperament.js:610 +#: js/widgets/temperament.js:614 +#: js/widgets/temperament.js:855 +#.TRANS: convert current note to piano key (1-88) +#.TRANS: a mapping of pitch to the 88 piano keys +msgid "pitch number" msgstr "" -#: js/ToneBlocks.js:438 -#: js/timbre.js:2100 -#.TRANS: distortion is an alteration in the sound -msgid "distortion" +#: js/blocks/PitchBlocks.js:256 +msgid "The Pitch number block is the value of the pitch of the note currently being played." msgstr "" -#: js/ToneBlocks.js:487 -msgid "The Tremolo block adds a wavering effect." +#: js/blocks/PitchBlocks.js:329 +#: js/blocks/PitchBlocks.js:433 +#.TRANS: the current pitch expressed in Hertz +msgid "pitch in hertz" msgstr "" -#: js/ToneBlocks.js:495 -#: js/timbre.js:2092 -#.TRANS: a wavering effect in a musical tone -msgid "tremolo" +#: js/blocks/PitchBlocks.js:334 +msgid "The Pitch in Hertz block is the value in Hertz of the pitch of the note currently being played." msgstr "" -#: js/ToneBlocks.js:500 -#: js/ToneBlocks.js:569 -#: js/ToneBlocks.js:630 -#: js/ToneBlocks.js:689 -#: js/timbre.js:2134 -#: js/timbre.js:2222 -#: js/timbre.js:2317 -#: js/timbre.js:2419 -#.TRANS: rate at which tremolo wavers -msgid "rate" +#: js/blocks/PitchBlocks.js:367 +#: js/turtleactions/DictActions.js:87 +msgid "current pitch" msgstr "" -#: js/ToneBlocks.js:502 -#: js/ToneBlocks.js:630 -#: js/timbre.js:2137 -#: js/timbre.js:2328 -#.TRANS: amplitude of tremolo waver -msgid "depth" +#: js/blocks/PitchBlocks.js:373 +msgid "The Current Pitch block is used with the Pitch Converter block. In the example above, current pitch, sol 4, is displayed as 392 hertz." msgstr "" -#: js/ToneBlocks.js:559 -msgid "The Phaser block adds a sweeping sound." +#: js/blocks/PitchBlocks.js:410 +msgid "This block converts the pitch value of the last note played into different formats such as hertz, letter name, pitch number, et al." msgstr "" -#: js/ToneBlocks.js:566 -#: js/timbre.js:2098 -#.TRANS: alter the phase of the sound -msgid "phaser" +#: js/blocks/PitchBlocks.js:434 +msgid "alphabet" msgstr "" -#: js/ToneBlocks.js:569 -#: js/timbre.js:2422 -msgid "octaves" +#: js/blocks/PitchBlocks.js:436 +#.TRANS: Translate as "alphabet class" +msgid "letter class" msgstr "" -#: js/ToneBlocks.js:569 -#: js/timbre.js:2425 -msgid "base frequency" +#: js/blocks/PitchBlocks.js:437 +msgid "solfege class" msgstr "" -#: js/ToneBlocks.js:619 -msgid "The Chorus block adds a chorus effect." +#: js/blocks/PitchBlocks.js:438 +msgid "staff y" msgstr "" -#: js/ToneBlocks.js:627 -#: js/timbre.js:2096 -#.TRANS: musical effect to simulate a choral sound -msgid "chorus" +#: js/blocks/PitchBlocks.js:439 +msgid "solfege syllable" msgstr "" -#: js/ToneBlocks.js:630 -msgid "delay" +#: js/blocks/PitchBlocks.js:440 +msgid "pitch class" msgstr "" -#: js/ToneBlocks.js:678 -msgid "The Vibrato block adds a rapid, slight variation in pitch." +#: js/blocks/PitchBlocks.js:441 +msgid "scalar class" msgstr "" -#: js/ToneBlocks.js:686 -#: js/timbre.js:2094 -#.TRANS: a rapid, slight variation in pitch -msgid "vibrato" +#: js/blocks/PitchBlocks.js:443 +msgid "nth degree" msgstr "" -#: js/ToneBlocks.js:689 -#: js/timbre.js:2221 -msgid "intensity" +#: js/blocks/PitchBlocks.js:444 +msgid "pitch to shade" msgstr "" -#: js/ToneBlocks.js:733 -#.TRANS: select synthesizer -msgid "set synth" +#: js/blocks/PitchBlocks.js:445 +msgid "pitch to color" msgstr "" -#: js/ToneBlocks.js:804 -msgid "synth name" +#: js/blocks/PitchBlocks.js:629 +#: js/widgets/musickeyboard.js:735 +#.TRANS: MIDI is a technical standard for electronic music +msgid "MIDI" msgstr "" -#: js/ToneBlocks.js:842 -msgid "set default instrument" +#: js/blocks/PitchBlocks.js:642 +#.TRANS: set an offset associated with the numeric piano keyboard mapping +msgid "set pitch number offset" msgstr "" -#: js/ToneBlocks.js:895 -#: js/ToneBlocks.js:943 -#.TRANS: set the characteristics of a custom instrument -msgid "set instrument" +#: js/blocks/PitchBlocks.js:645 +msgid "The Set pitch number offset block is used to set the offset for mapping pitch numbers to pitch and octave." msgstr "" -#: js/ToneBlocks.js:898 -#: js/ToneBlocks.js:926 -#: js/ToneBlocks.js:932 -msgid "The Set instrument block selects a voice for the synthesizer," +#: js/blocks/PitchBlocks.js:679 +#.TRANS: convert piano key number (1-88) to pitch +msgid "number to pitch" msgstr "" -#: js/ToneBlocks.js:900 -#: js/ToneBlocks.js:934 -msgid "eg guitar piano violin or cello." +#: js/blocks/PitchBlocks.js:682 +msgid "The Number to pitch block will convert a pitch number to a pich name." msgstr "" -#: js/ToneBlocks.js:1015 -msgid "Import a sound file to use as an instrument and set its pitch center." +#: js/blocks/PitchBlocks.js:715 +#.TRANS: convert piano key number (1-88) to octave +msgid "number to octave" msgstr "" -#: js/ToneBlocks.js:1110 -msgid "Upload a sound file to connect with the sample block." +#: js/blocks/PitchBlocks.js:717 +msgid "The Number to octave block will convert a pitch number to an octave." msgstr "" -#: js/MeterBlocks.js:34 -#.TRANS: musical meter (time signature), e.g., 4:4 -msgid "current meter" +#: js/blocks/PitchBlocks.js:726 +msgid "y to pitch" msgstr "" -#: js/MeterBlocks.js:85 -#.TRANS: number of beats per minute -msgid "beat factor" +#: js/blocks/PitchBlocks.js:729 +msgid "Y to pitch block will convert a staff y position to corresponding pitch notation." msgstr "" -#: js/MeterBlocks.js:161 -msgid "The Beats per minute block returns the current beats per minute." +#: js/blocks/PitchBlocks.js:841 +msgid "accidental selector" msgstr "" -#: js/MeterBlocks.js:169 -#: js/status.js:152 -#.TRANS: number of beats played per minute -msgid "beats per minute2" +#: js/blocks/PitchBlocks.js:844 +msgid "The Accidental selector block is used to choose between double-sharp, sharp, natural, flat, and double-flat." msgstr "" -#: js/MeterBlocks.js:169 -#: js/MeterBlocks.js:1056 -#: js/MeterBlocks.js:1133 -#: js/MeterBlocks.js:1211 -#.TRANS: sets tempo by defining a beat and beats per minute -msgid "beats per minute" +#: js/blocks/PitchBlocks.js:858 +msgid "Pitch can be specified in terms of ni dha pa ma ga re sa." msgstr "" -#: js/MeterBlocks.js:233 -#.TRANS: count of current musical measure in meter -msgid "measure count" +#: js/blocks/PitchBlocks.js:872 +msgid "Pitch can be specified in terms of C D E F G A B." msgstr "" -#: js/MeterBlocks.js:241 -msgid "The Measure count block returns the current measure." +#: js/blocks/PitchBlocks.js:884 +msgid "solfege" msgstr "" -#: js/MeterBlocks.js:290 -#.TRANS: count of current beat in the meter -msgid "beat count" +#: js/blocks/PitchBlocks.js:887 +msgid "Pitch can be specified in terms of do re mi fa sol la ti." msgstr "" -#: js/MeterBlocks.js:300 -#: js/MeterBlocks.js:311 -#: js/MeterBlocks.js:565 -#: js/MeterBlocks.js:576 -msgid "The Beat count block is the number of the current beat," +#: js/blocks/PitchBlocks.js:922 +msgid "The Invert block rotates any contained notes around a target note." msgstr "" -#: js/MeterBlocks.js:313 -#: js/MeterBlocks.js:578 -msgid "eg 1, 2, 3, or 4." +#: js/blocks/PitchBlocks.js:929 +#.TRANS: pitch inversion rotates a pitch around another pitch +msgid "invert" msgstr "" -#: js/MeterBlocks.js:368 -#.TRANS: count the number of notes -msgid "sum note values" +#: js/blocks/PitchBlocks.js:968 +#.TRANS: pitch inversion rotates a pitch around another pitch (odd number) +msgid "invert (odd)" msgstr "" -#: js/MeterBlocks.js:376 -#: js/MeterBlocks.js:440 -msgid "The Note counter block can be used to count the number of contained notes." +#: js/blocks/PitchBlocks.js:1001 +#.TRANS: pitch inversion rotates a pitch around another pitch (even number) +msgid "invert (even)" msgstr "" -#: js/MeterBlocks.js:432 -#.TRANS: count the number of notes -msgid "note counter" +#: js/blocks/PitchBlocks.js:1022 +#.TRANS: register is the octave of the current pitch +msgid "register" msgstr "" -#: js/MeterBlocks.js:496 -#.TRANS: number of whole notes that have been played -msgid "whole notes played" +#: js/blocks/PitchBlocks.js:1026 +msgid "The Register block provides an easy way to modify the register (octave) of the notes that follow it." msgstr "" -#: js/MeterBlocks.js:505 -msgid "The Whole notes played block returns the total number of whole notes played." +#: js/blocks/PitchBlocks.js:1047 +#.TRANS: cents are units used to specify the ratio between pitches. There are 100 cents between successive notes. +msgid "50 cents" msgstr "" -#: js/MeterBlocks.js:555 -#: js/DictActions.js:83 -#.TRANS: number of notes that have been played -msgid "notes played" +#: js/blocks/PitchBlocks.js:1102 +msgid "The Semi-tone transposition block will shift the pitches contained inside Note blocks up (or down) by half steps." msgstr "" -#: js/MeterBlocks.js:653 -msgid "The No clock block decouples the notes from the master clock." +#: js/blocks/PitchBlocks.js:1104 +msgid "In the example shown above, sol is shifted up to sol#." msgstr "" -#: js/MeterBlocks.js:661 -#.TRANS: don't lock notes to master clock -msgid "no clock" +#: js/blocks/PitchBlocks.js:1110 +#.TRANS: adjust the amount of shift (up or down) of a pitch +msgid "semi-tone transpose" msgstr "" -#: js/MeterBlocks.js:700 -msgid "on weak beat do" +#: js/blocks/PitchBlocks.js:1143 +msgid "The Transpose by Ratio block will shift the pitches contained inside Note blocks up (or down) by a ratio" msgstr "" -#: js/MeterBlocks.js:705 -msgid "The On-weak-beat block lets you specify actions to take on weak (off) beats." +#: js/blocks/PitchBlocks.js:1149 +#.TRANS: adjust the amount of shift (up or down) of a pitch +msgid "transpose by ratio" msgstr "" -#: js/MeterBlocks.js:750 -msgid "on strong beat" +#: js/blocks/PitchBlocks.js:1232 +#.TRANS: down sixth means the note is five scale degrees below current note +msgid "down sixth" msgstr "" -#: js/MeterBlocks.js:758 -msgid "The On-strong-beat block lets you specify actions to take on specified beats." +#: js/blocks/PitchBlocks.js:1251 +#.TRANS: down third means the note is two scale degrees below current note +msgid "down third" msgstr "" -#: js/MeterBlocks.js:769 -msgid "beat" +#: js/blocks/PitchBlocks.js:1270 +#.TRANS: seventh means the note is the six scale degrees above current note +msgid "seventh" msgstr "" -#: js/MeterBlocks.js:813 -msgid "on every beat do" +#: js/blocks/PitchBlocks.js:1289 +#.TRANS: sixth means the note is the five scale degrees above current note +msgid "sixth" msgstr "" -#: js/MeterBlocks.js:821 -msgid "The On-every-beat block lets you specify actions to take on every beat." +#: js/blocks/PitchBlocks.js:1308 +#.TRANS: fifth means the note is the four scale degrees above current note +msgid "fifth" msgstr "" -#: js/MeterBlocks.js:874 -msgid "on every note do" +#: js/blocks/PitchBlocks.js:1328 +#.TRANS: fourth means the note is three scale degrees above current note +msgid "fourth" msgstr "" -#: js/MeterBlocks.js:882 -msgid "The On-every-note block lets you specify actions to take on every note." +#: js/blocks/PitchBlocks.js:1347 +#.TRANS: third means the note is two scale degrees above current note +msgid "third" msgstr "" -#: js/MeterBlocks.js:928 -#: js/MeterBlocks.js:999 -#.TRANS: sets tempo by defining a beat and beats per minute -msgid "master beats per minute" +#: js/blocks/PitchBlocks.js:1366 +#.TRANS: second means the note is one scale degree above current note +msgid "second" msgstr "" -#: js/MeterBlocks.js:952 -#: js/MeterBlocks.js:1078 -#: js/MeterBlocks.js:1135 -msgid "bpm" +#: js/blocks/PitchBlocks.js:1407 +msgid "The Scalar transposition block will shift the pitches contained inside Note blocks up (or down) the scale." msgstr "" -#: js/MeterBlocks.js:952 -#: js/MeterBlocks.js:1078 -#: js/MeterBlocks.js:1135 -msgid "beat value" +#: js/blocks/PitchBlocks.js:1409 +msgid "In the example shown above, sol is shifted up to la." msgstr "" -#: js/MeterBlocks.js:1024 -#: js/MeterBlocks.js:1167 -#: js/MeterBlocks.js:1241 -msgid "Beats per minute must be > 30." +#: js/blocks/PitchBlocks.js:1416 +#.TRANS: adjust the amount of shift (up or down) of a pitch by musical scale (scalar) steps +msgid "scalar transpose" msgstr "" -#: js/MeterBlocks.js:1027 -#: js/MeterBlocks.js:1170 -#: js/MeterBlocks.js:1244 -msgid "Maximum beats per minute is 1000." +#: js/blocks/PitchBlocks.js:1451 +msgid "The Accidental block is used to create sharps and flats" msgstr "" -#: js/MeterBlocks.js:1068 -msgid "The Beats per minute block sets the number of 1/4 notes per minute." +#: js/blocks/PitchBlocks.js:1458 +#.TRANS: An accidental is a modification to a pitch, e.g., sharp or flat. +msgid "accidental override" msgstr "" -#: js/MeterBlocks.js:1279 -#.TRANS: anacrusis -msgid "pickup" +#: js/blocks/PitchBlocks.js:1581 +msgid "The Hertz block (in combination with a Number block) will play a sound at the specified frequency." msgstr "" -#: js/MeterBlocks.js:1367 -msgid "number of beats" +#: js/blocks/PitchBlocks.js:1671 +msgid "The Pitch Number block will play a pitch associated by its number, e.g. 0 for C and 7 for G." msgstr "" -#: js/DictBlocks.js:77 -msgid "show dictionary" +#: js/blocks/PitchBlocks.js:1703 +#: js/blocks/PitchBlocks.js:1745 +#.TRANS: a numeric mapping of the notes in an octave based on the musical mode +#.TRANS: a numeric mapping of the notes in an octave based on the musical mode +msgid "nth modal pitch" msgstr "" -#: js/DictBlocks.js:129 -msgid "The Dictionary block returns a dictionary." +#: js/blocks/PitchBlocks.js:1706 +msgid "n^th Modal Pitch takes the pattern of pitches in semitones for a mode and makes each point a degree of the mode," msgstr "" -#: js/DictBlocks.js:197 -#: js/DictBlocks.js:339 -msgid "The Get-dict block returns a value in the dictionary for a specified key." +#: js/blocks/PitchBlocks.js:1708 +msgid "starting from 1 and regardless of tonal framework (i.e. not always 8 notes in the octave)" msgstr "" -#: js/DictBlocks.js:212 -#: js/DictBlocks.js:354 -#.TRANS: retrieve a value from the dictionary with a given key -msgid "get value" +#: js/blocks/PitchBlocks.js:1749 +msgid "N^th Modal Pitch takes a number as an input as the n^th degree for the given mode. 0 is the first position, 1 is the second, -1 is the note before the first etc." msgstr "" -#: js/DictBlocks.js:215 -#: js/DictBlocks.js:216 -#: js/DictBlocks.js:289 -#: js/DictBlocks.js:290 -#: js/DictBlocks.js:357 -#: js/DictBlocks.js:430 -#: js/DictBlocks.js:431 -msgid "key2" +#: js/blocks/PitchBlocks.js:1751 +msgid "The pitches change according to the mode specified without any need for respellings." msgstr "" -#: js/DictBlocks.js:271 -#: js/DictBlocks.js:411 -msgid "The Set-dict block sets a value in the dictionary for a specified key." +#: js/blocks/PitchBlocks.js:1790 +msgid "Scale Degree is a common convention in music. Scale Degree offers seven possible positions in the scale (1-7) and can be modified via accidentals." msgstr "" -#: js/DictBlocks.js:286 -#: js/DictBlocks.js:427 -#.TRANS: set a value in the dictionary for a given key -msgid "set value" +#: js/blocks/PitchBlocks.js:1792 +msgid "Scale Degree 1 is always the first pitch in a given scale, regardless of octave." msgstr "" -#: js/ExtrasBlocks.js:33 -msgid "fraction" +#: js/blocks/PitchBlocks.js:1814 +#.TRANS: step some number of notes in current musical scale +msgid "scalar step" msgstr "" -#: js/ExtrasBlocks.js:36 -msgid "Convert a float to a fraction" +#: js/blocks/PitchBlocks.js:1819 +msgid "The Scalar Step block (in combination with a Number block) will play the next pitch in a scale," msgstr "" -#: js/ExtrasBlocks.js:93 -msgid "save as ABC" +#: js/blocks/PitchBlocks.js:1821 +msgid "eg if the last note played was sol, Scalar Step 1 will play la." msgstr "" -#: js/ExtrasBlocks.js:96 -#: js/ExtrasBlocks.js:132 -#: js/ExtrasBlocks.js:168 -msgid "title" +#: js/blocks/PitchBlocks.js:1857 +msgid "The Pitch block specifies the pitch name and octave of a note that together determine the frequency of the note." msgstr "" -#: js/ExtrasBlocks.js:129 -msgid "save as Lilypond" +#: js/blocks/ProgramBlocks.js:33 +msgid "The Load-heap-from-app block loads the heap from a web page." msgstr "" -#: js/ExtrasBlocks.js:165 -msgid "save as SVG" +#: js/blocks/ProgramBlocks.js:44 +#.TRANS: load the heap contents from a URL +msgid "load heap from App" msgstr "" -#: js/ExtrasBlocks.js:216 -msgid "no background" +#: js/blocks/ProgramBlocks.js:95 +msgid "Error parsing JSON data:" msgstr "" -#: js/ExtrasBlocks.js:219 -msgid "The No background block eliminates the background from the saved SVG output." +#: js/blocks/ProgramBlocks.js:100 +msgid "404: Page not found" msgstr "" -#: js/ExtrasBlocks.js:247 -msgid "show blocks" +#: js/blocks/ProgramBlocks.js:133 +msgid "The Save-heap-to-app block saves the heap to a web page." msgstr "" -#: js/ExtrasBlocks.js:249 -msgid "The Show blocks block shows the blocks." +#: js/blocks/ProgramBlocks.js:144 +#.TRANS: save the heap contents to a URL +msgid "save heap to App" msgstr "" -#: js/ExtrasBlocks.js:274 -msgid "hide blocks" +#: js/blocks/ProgramBlocks.js:189 +msgid "Cannot find a valid heap for" msgstr "" -#: js/ExtrasBlocks.js:276 -msgid "The Hide blocks block hides the blocks." +#: js/blocks/ProgramBlocks.js:206 +msgid "The Load-heap block loads the heap from a file." msgstr "" -#: js/ExtrasBlocks.js:305 -#: js/ExtrasBlocks.js:335 -msgid "The Space block is used to add space between blocks." +#: js/blocks/ProgramBlocks.js:217 +#.TRANS: load the heap from a file +msgid "load heap" msgstr "" -#: js/ExtrasBlocks.js:373 -msgid "wait" +#: js/blocks/ProgramBlocks.js:270 +msgid "The file you selected does not contain a valid heap." msgstr "" -#: js/ExtrasBlocks.js:376 -msgid "The Wait block pauses the program for a specified number of seconds." +#: js/blocks/ProgramBlocks.js:275 +msgid "The loadHeap block needs a loadFile block." msgstr "" -#: js/ExtrasBlocks.js:430 -#: plugins/facebook.rtp:30 -msgid "comment" +#: js/blocks/ProgramBlocks.js:291 +msgid "The Set-heap block loads the heap." msgstr "" -#: js/ExtrasBlocks.js:466 -msgid "print" +#: js/blocks/ProgramBlocks.js:340 +msgid "The block you selected does not contain a valid heap." msgstr "" -#: js/ExtrasBlocks.js:473 -msgid "The Print block displays text at the top of the screen." +#: js/blocks/ProgramBlocks.js:343 +msgid "The Set heap block needs a heap." msgstr "" -#: js/ExtrasBlocks.js:579 -msgid "display grid" +#: js/blocks/ProgramBlocks.js:360 +msgid "The Load-dictionary block loads a dictionary from a file." msgstr "" -#: js/ExtrasBlocks.js:584 -msgid "The Display Grid Block changes the grid type" +#: js/blocks/ProgramBlocks.js:372 +#.TRANS: load a dictionary from a file +msgid "load dictionary" msgstr "" -#: js/ExtrasBlocks.js:686 -#: js/ExtrasBlocks.js:705 -#: js/ExtrasBlocks.js:728 -#: js/ExtrasBlocks.js:751 -#: js/ExtrasBlocks.js:769 -#: js/ExtrasBlocks.js:788 -#: js/ExtrasBlocks.js:807 -#: js/ExtrasBlocks.js:826 -msgid "unknown" +#: js/blocks/ProgramBlocks.js:390 +#: js/blocks/ProgramBlocks.js:658 +#: js/blocks/ToneBlocks.js:1025 +msgid "file" msgstr "" -#: js/SensorsBlocks.js:36 -msgid "The Input block prompts for keyboard input." +#: js/blocks/ProgramBlocks.js:444 +msgid "The file you selected does not contain a valid dictionary." msgstr "" -#: js/SensorsBlocks.js:46 -msgid "input" +#: js/blocks/ProgramBlocks.js:449 +msgid "The load dictionary block needs a load file block." msgstr "" -#: js/SensorsBlocks.js:64 -msgid "Input a value" +#: js/blocks/ProgramBlocks.js:466 +msgid "The Set-dictionary block loads a dictionary." msgstr "" -#: js/SensorsBlocks.js:126 -msgid "input value" +#: js/blocks/ProgramBlocks.js:477 +#.TRANS: load a dictionary from a JSON +msgid "set dictionary" msgstr "" -#: js/SensorsBlocks.js:131 -msgid "The Input-value block stores the input." +#: js/blocks/ProgramBlocks.js:546 +msgid "The block you selected does not contain a valid dictionary." msgstr "" -#: js/SensorsBlocks.js:238 -msgid "loudness" +#: js/blocks/ProgramBlocks.js:550 +msgid "The set dictionary block needs a dictionary." msgstr "" -#: js/SensorsBlocks.js:245 -msgid "The Loudness block returns the volume detected by the microphone." +#: js/blocks/ProgramBlocks.js:567 +msgid "The Save-heap block saves the heap to a file." msgstr "" -#: js/SensorsBlocks.js:300 -msgid "click" +#: js/blocks/ProgramBlocks.js:578 +#.TRANS: save the heap to a file +msgid "save heap" msgstr "" -#: js/SensorsBlocks.js:306 -msgid "The Click block triggers an event if a mouse has been clicked." +#: js/blocks/ProgramBlocks.js:629 +msgid "The Save-dictionary block saves a dictionary to a file." msgstr "" -#: js/SensorsBlocks.js:313 -msgid "The Click block triggers an event if a turtle has been clicked." +#: js/blocks/ProgramBlocks.js:640 +#.TRANS: save a dictionary to a file +msgid "save dictionary" msgstr "" -#: js/SensorsBlocks.js:342 -msgid "cursor over" +#: js/blocks/ProgramBlocks.js:720 +msgid "The Open palette block opens a palette." msgstr "" -#: js/SensorsBlocks.js:387 -msgid "cursor out" +#: js/blocks/ProgramBlocks.js:727 +msgid "open palette" msgstr "" -#: js/SensorsBlocks.js:433 -msgid "cursor button down" +#: js/blocks/ProgramBlocks.js:785 +msgid "The Delete block block removes a block." msgstr "" -#: js/SensorsBlocks.js:477 -msgid "cursor button up" +#: js/blocks/ProgramBlocks.js:797 +#.TRANS: Move this block to the trash. +msgid "delete block" msgstr "" -#: js/SensorsBlocks.js:638 -msgid "The Get red block returns the red component of the pixel under the mouse." +#: js/blocks/ProgramBlocks.js:861 +msgid "The Move block block moves a block." msgstr "" -#: js/SensorsBlocks.js:644 -msgid "The Get red block returns the red component of the pixel under the turtle." +#: js/blocks/ProgramBlocks.js:869 +#.TRANS: Move the position of a block on the screen. +msgid "move block" msgstr "" -#: js/SensorsBlocks.js:685 -#: plugins/rodi.rtp:216 -msgid "pixel color" +#: js/blocks/ProgramBlocks.js:881 +#: js/blocks/ProgramBlocks.js:1048 +msgid "block number" msgstr "" -#: js/SensorsBlocks.js:690 -msgid "The Get pixel block returns the color of the pixel under the mouse." +#: js/blocks/ProgramBlocks.js:935 +#.TRANS: Run program beginning at this block. +msgid "run block" msgstr "" -#: js/SensorsBlocks.js:696 -msgid "The Get pixel block returns the color of the pixel under the turtle." +#: js/blocks/ProgramBlocks.js:1025 +msgid "The Dock block block connections two blocks." msgstr "" -#: js/SensorsBlocks.js:758 -msgid "time" +#: js/blocks/ProgramBlocks.js:1036 +#.TRANS: We can connect a block to another block. +msgid "connect blocks" msgstr "" -#: js/SensorsBlocks.js:804 -msgid "cursor y" +#: js/blocks/ProgramBlocks.js:1048 +msgid "target block" msgstr "" -#: js/SensorsBlocks.js:809 -msgid "The Cursor Y block returns the vertical position of the mouse." +#: js/blocks/ProgramBlocks.js:1048 +msgid "connection number" msgstr "" -#: js/SensorsBlocks.js:845 -msgid "cursor x" +#: js/blocks/ProgramBlocks.js:1140 +msgid "The Make block block creates a new block." msgstr "" -#: js/SensorsBlocks.js:850 -msgid "The Cursor X block returns the horizontal position of the mouse." +#: js/blocks/ProgramBlocks.js:1152 +#.TRANS: Create a new block +msgid "make block" msgstr "" -#: js/SensorsBlocks.js:886 -msgid "mouse button" +#: js/blocks/ProgramBlocks.js:1285 +msgid "Cannot find block" msgstr "" -#: js/SensorsBlocks.js:888 -msgid "The Mouse-button block returns True if the mouse button is pressed." +#: js/blocks/ProgramBlocks.js:1304 +#: js/blocks/ProgramBlocks.js:1313 +msgid "Warning: block argument type mismatch" msgstr "" -#: js/SensorsBlocks.js:934 -msgid "to ASCII" +#: js/blocks/ProgramBlocks.js:1347 +msgid "The Open project block is used to open a project from a web page." msgstr "" -#: js/SensorsBlocks.js:938 -msgid "The To ASCII block converts numbers to letters." +#: js/blocks/ProgramBlocks.js:1357 +msgid "open project" msgstr "" -#: js/SensorsBlocks.js:1005 -msgid "The Keyboard block returns computer keyboard input." +#: js/blocks/ProgramBlocks.js:1410 +msgid "Please enter a valid URL." msgstr "" -#: js/IntervalsActions.js:216 -msgid "Adding missing pitch number 0." +#: js/blocks/ToneBlocks.js:34 +msgid "oscillator" msgstr "" -#: js/IntervalsActions.js:224 -msgid "Ignoring pitch numbers less than zero or greater than eleven." +#: js/blocks/ToneBlocks.js:42 +#: js/blocks/WidgetBlocks.js:179 +#: js/widgets/timbre.js:1558 +#: js/widgets/timbre.js:1808 +#.TRANS: there are different types (sine, triangle, square...) of oscillators. +#.TRANS: type of filter, e.g., lowpass, highpass, etc. +msgid "type" msgstr "" -#: js/IntervalsActions.js:230 -msgid "Ignoring duplicate pitch numbers." +#: js/blocks/ToneBlocks.js:44 +#: js/widgets/timbre.js:1562 +#.TRANS: Partials refers to the number of sine waves combined into the sound. +msgid "partials" msgstr "" -#: js/PitchActions.js:88 -msgid "The Scalar Step Block must be used inside of a Note Block." +#: js/blocks/ToneBlocks.js:76 +msgid "You are adding multiple oscillator blocks." msgstr "" -#: js/PitchActions.js:107 -msgid "The Scalar Step Block must be preceded by a Pitch Block." +#: js/blocks/ToneBlocks.js:144 +#: js/widgets/timbre.js:1225 +#.TRANS: a duo synthesizer combines a synth with a sequencer +msgid "duo synth" msgstr "" -#: js/DrumActions.js:231 -msgid "Noise Block: Did you mean to use a Note block?" +#: js/blocks/ToneBlocks.js:149 +msgid "The Duo synth block is a duo-frequency modulator used to define a timbre." msgstr "" -#: js/MeterActions.js:101 -#: js/MeterActions.js:139 -msgid "beats per minute must be greater than" +#: js/blocks/ToneBlocks.js:157 +#: js/widgets/timbre.js:1476 +msgid "vibrato rate" msgstr "" -#: js/MeterActions.js:111 -#: js/MeterActions.js:149 -msgid "maximum" +#: js/blocks/ToneBlocks.js:157 +msgid "vibrato intensity" msgstr "" -#: js/MeterActions.js:117 -#: js/MeterActions.js:155 -msgid "beats per minute is" +#: js/blocks/ToneBlocks.js:185 +#: js/widgets/timbre.js:1221 +#.TRANS: AM (amplitude modulation) synthesizer +msgid "AM synth" msgstr "" -#: js/ToneActions.js:134 -msgid "Vibrato intensity must be between 1 and 100." +#: js/blocks/ToneBlocks.js:189 +msgid "The AM synth block is an amplitude modulator used to define a timbre." msgstr "" -#: js/ToneActions.js:139 -msgid "Vibrato rate must be greater than 0." +#: js/blocks/ToneBlocks.js:224 +#: js/widgets/timbre.js:1223 +#.TRANS: FM (frequency modulation) synthesizer +msgid "FM synth" msgstr "" -#: js/ToneActions.js:192 -#: js/ToneActions.js:265 -#.TRANS: Depth is the intesity of the tremolo or chorus effect. -msgid "Depth is out of range." +#: js/blocks/ToneBlocks.js:228 +msgid "The FM synth block is a frequency modulator used to define a timbre." msgstr "" -#: js/ToneActions.js:301 -msgid "Distortion must be from 0 to 100." +#: js/blocks/ToneBlocks.js:262 +msgid "partial" msgstr "" -#: js/ToneActions.js:332 -#.TRANS: partials components in a harmonic series -msgid "Partial must be greater than or equal to 0." +#: js/blocks/ToneBlocks.js:265 +msgid "The Partial block is used to specify a weight for a specific partial harmonic." msgstr "" -#: js/ToneActions.js:378 -#: js/ToneActions.js:417 -#: js/ToneActions.js:456 -#: js/timbre.js:782 -msgid "Unable to use synth due to existing oscillator" +#: js/blocks/ToneBlocks.js:284 +#.TRANS: partials are weighted components in a harmonic series +msgid "Partial weight must be between 0 and 1." msgstr "" -#: js/ToneActions.js:388 -#: js/ToneActions.js:427 -msgid "The input cannot be negative." +#: js/blocks/ToneBlocks.js:297 +#.TRANS: partials are weighted components in a harmonic series +msgid "Partial block should be used inside of a Weighted-partials block." msgstr "" -#: js/DictActions.js:75 -#: js/DictActions.js:153 -#: js/DictActions.js:188 -msgid "font" +#: js/blocks/ToneBlocks.js:325 +#.TRANS: partials are weighted components in a harmonic series +msgid "weighted partials" msgstr "" -#: js/musicutils.js:363 -#: js/musicutils.js:471 -#: js/pitchdrummatrix.js:151 -#: js/musickeyboard.js:2563 -msgid "rest" +#: js/blocks/ToneBlocks.js:383 +msgid "The Harmonic block will add harmonics to the contained notes." msgstr "" -#: js/musicutils.js:565 -#.TRANS: ordinal number. Please keep exactly one space between each number. -msgid "1st 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th" +#: js/blocks/ToneBlocks.js:390 +#.TRANS: A harmonic is an overtone. +msgid "harmonic" msgstr "" -#: js/musicutils.js:629 -#: js/musicutils.js:812 -#: js/musicutils.js:911 -#.TRANS: augmented is a music term related to intervals -msgid "augmented" +#: js/blocks/ToneBlocks.js:431 +msgid "The Distortion block adds distortion to the pitch." msgstr "" -#: js/musicutils.js:631 -#: js/musicutils.js:813 -#: js/musicutils.js:910 -#.TRANS: diminished is a music term related to intervals and mode -msgid "diminished" +#: js/blocks/ToneBlocks.js:438 +#: js/widgets/timbre.js:2100 +#.TRANS: distortion is an alteration in the sound +msgid "distortion" msgstr "" -#: js/musicutils.js:639 -#.TRANS: twelve semi-tone scale for music -msgid "chromatic" +#: js/blocks/ToneBlocks.js:487 +msgid "The Tremolo block adds a wavering effect." msgstr "" -#: js/musicutils.js:640 -msgid "algerian" +#: js/blocks/ToneBlocks.js:495 +#: js/widgets/timbre.js:2092 +#.TRANS: a wavering effect in a musical tone +msgid "tremolo" msgstr "" -#: js/musicutils.js:641 -msgid "spanish" +#: js/blocks/ToneBlocks.js:500 +#: js/blocks/ToneBlocks.js:569 +#: js/blocks/ToneBlocks.js:630 +#: js/blocks/ToneBlocks.js:689 +#: js/widgets/timbre.js:2134 +#: js/widgets/timbre.js:2222 +#: js/widgets/timbre.js:2317 +#: js/widgets/timbre.js:2419 +#.TRANS: rate at which tremolo wavers +msgid "rate" msgstr "" -#: js/musicutils.js:643 -#.TRANS: modal scale in music -msgid "octatonic" +#: js/blocks/ToneBlocks.js:502 +#: js/blocks/ToneBlocks.js:630 +#: js/widgets/timbre.js:2137 +#: js/widgets/timbre.js:2328 +#.TRANS: amplitude of tremolo waver +msgid "depth" msgstr "" -#: js/musicutils.js:645 -#.TRANS: harmonic major scale in music -msgid "harmonic major" +#: js/blocks/ToneBlocks.js:559 +msgid "The Phaser block adds a sweeping sound." msgstr "" -#: js/musicutils.js:647 -#.TRANS: natural minor scales in music -msgid "natural minor" +#: js/blocks/ToneBlocks.js:566 +#: js/widgets/timbre.js:2098 +#.TRANS: alter the phase of the sound +msgid "phaser" msgstr "" -#: js/musicutils.js:649 -#.TRANS: harmonic minor scale in music -msgid "harmonic minor" +#: js/blocks/ToneBlocks.js:569 +#: js/turtleactions/IntervalsActions.js:114 +#: js/widgets/timbre.js:2422 +msgid "octaves" msgstr "" -#: js/musicutils.js:651 -#.TRANS: melodic minor scale in music -msgid "melodic minor" +#: js/blocks/ToneBlocks.js:569 +#: js/widgets/timbre.js:2425 +msgid "base frequency" msgstr "" -#: js/musicutils.js:655 -#.TRANS: modal scale for music -msgid "dorian" +#: js/blocks/ToneBlocks.js:619 +msgid "The Chorus block adds a chorus effect." msgstr "" -#: js/musicutils.js:657 -#.TRANS: modal scale for music -msgid "phrygian" +#: js/blocks/ToneBlocks.js:627 +#: js/widgets/timbre.js:2096 +#.TRANS: musical effect to simulate a choral sound +msgid "chorus" msgstr "" -#: js/musicutils.js:659 -#.TRANS: modal scale for music -msgid "lydian" +#: js/blocks/ToneBlocks.js:630 +msgid "delay" msgstr "" -#: js/musicutils.js:661 -#.TRANS: modal scale for music -msgid "mixolydian" +#: js/blocks/ToneBlocks.js:678 +msgid "The Vibrato block adds a rapid, slight variation in pitch." msgstr "" -#: js/musicutils.js:665 -#.TRANS: modal scale for music -msgid "locrian" +#: js/blocks/ToneBlocks.js:686 +#: js/widgets/timbre.js:2094 +#.TRANS: a rapid, slight variation in pitch +msgid "vibrato" msgstr "" -#: js/musicutils.js:667 -#.TRANS: minor jazz scale for music -msgid "jazz minor" +#: js/blocks/ToneBlocks.js:689 +#: js/widgets/timbre.js:2221 +msgid "intensity" msgstr "" -#: js/musicutils.js:669 -#.TRANS: bebop scale for music -msgid "bebop" +#: js/blocks/ToneBlocks.js:733 +#.TRANS: select synthesizer +msgid "set synth" msgstr "" -#: js/musicutils.js:670 -msgid "arabic" +#: js/blocks/ToneBlocks.js:804 +msgid "synth name" msgstr "" -#: js/musicutils.js:671 -msgid "byzantine" +#: js/blocks/ToneBlocks.js:842 +msgid "set default instrument" msgstr "" -#: js/musicutils.js:673 -#.TRANS: musical scale for music by Verdi -msgid "enigmatic" +#: js/blocks/ToneBlocks.js:895 +#: js/blocks/ToneBlocks.js:943 +#.TRANS: set the characteristics of a custom instrument +msgid "set instrument" msgstr "" -#: js/musicutils.js:674 -msgid "ethiopian" +#: js/blocks/ToneBlocks.js:898 +#: js/blocks/ToneBlocks.js:926 +#: js/blocks/ToneBlocks.js:932 +msgid "The Set instrument block selects a voice for the synthesizer," msgstr "" -#: js/musicutils.js:676 -#.TRANS: Ethiopic scale for music -msgid "geez" +#: js/blocks/ToneBlocks.js:900 +#: js/blocks/ToneBlocks.js:934 +msgid "eg guitar piano violin or cello." msgstr "" -#: js/musicutils.js:677 -msgid "hindu" +#: js/blocks/ToneBlocks.js:1015 +msgid "Import a sound file to use as an instrument and set its pitch center." msgstr "" -#: js/musicutils.js:678 -msgid "hungarian" +#: js/blocks/ToneBlocks.js:1110 +msgid "Upload a sound file to connect with the sample block." msgstr "" -#: js/musicutils.js:680 -#.TRANS: minor Romanian scale for music -msgid "romanian minor" +#: js/blocks/VolumeBlocks.js:35 +msgid "synth volume" msgstr "" -#: js/musicutils.js:681 -msgid "spanish gypsy" +#: js/blocks/VolumeBlocks.js:39 +msgid "The Synth volume block returns the current volume of the current synthesizer." msgstr "" -#: js/musicutils.js:683 -#.TRANS: musical scale for Mid-Eastern music -msgid "maqam" +#: js/blocks/VolumeBlocks.js:105 +msgid "master volume" msgstr "" -#: js/musicutils.js:685 -#.TRANS: minor blues scale for music -msgid "minor blues" +#: js/blocks/VolumeBlocks.js:109 +msgid "The Master volume block returns the master volume." msgstr "" -#: js/musicutils.js:687 -#.TRANS: major blues scale for music -msgid "major blues" +#: js/blocks/VolumeBlocks.js:355 +#: js/blocks/VolumeBlocks.js:524 +msgid "set synth volume" msgstr "" -#: js/musicutils.js:688 -msgid "whole tone" +#: js/blocks/VolumeBlocks.js:362 +#: js/blocks/VolumeBlocks.js:545 +msgid "synth" msgstr "" -#: js/musicutils.js:690 -#.TRANS: pentatonic is a general term that means "five note scale". This scale is typically known as "minor pentatonic" -msgid "minor pentatonic" +#: js/blocks/VolumeBlocks.js:403 +#: js/blocks/VolumeBlocks.js:577 +#: js/blocks/VolumeBlocks.js:740 +#: js/turtleactions/VolumeActions.js:173 +msgid "Setting volume to 0." msgstr "" -#: js/musicutils.js:692 -#.TRANS: pentatonic is a general term that means "five note scale". This scale is typically known as "major pentatonic" -msgid "major pentatonic" +#: js/blocks/VolumeBlocks.js:440 +msgid "Synth not found" msgstr "" -#: js/musicutils.js:693 -msgid "chinese" +#: js/blocks/VolumeBlocks.js:494 +msgid "set drum volume" msgstr "" -#: js/musicutils.js:694 -msgid "egyptian" +#: js/blocks/VolumeBlocks.js:530 +msgid "The Set synth volume block will change the volume of a particular synth," msgstr "" -#: js/musicutils.js:696 -#.TRANS: https://en.wikipedia.org/wiki/Hirajoshi_scale NOTE: There are three different versions of this scale -msgid "hirajoshi" +#: js/blocks/VolumeBlocks.js:532 +msgid "eg guitar violin snare drum etc." msgstr "" -#: js/musicutils.js:697 -msgid "Japan" +#: js/blocks/VolumeBlocks.js:534 +msgid "The default volume is 50." msgstr "" -#: js/musicutils.js:699 -#.TRANS: https://en.wikipedia.org/wiki/In_scale and https://en.wikipedia.org/wiki/Sakura_Sakura -msgid "in" +#: js/blocks/VolumeBlocks.js:536 +msgid "The range is 0 for silence to 100 for full volume." msgstr "" -#: js/musicutils.js:701 -#.TRANS: https://en.wikipedia.org/wiki/Miny%C5%8D_scale -msgid "minyo" +#: js/blocks/VolumeBlocks.js:597 +msgid "set panning" msgstr "" -#: js/musicutils.js:703 -#.TRANS: Italian mathematician -msgid "fibonacci" +#: js/blocks/VolumeBlocks.js:603 +msgid "The Set Panning block sets the panning for all synthesizers." msgstr "" -#: js/musicutils.js:708 -#: js/musicutils.js:1106 -#.TRANS: lowpass filter -msgid "lowpass" +#: js/blocks/VolumeBlocks.js:625 +msgid "Warning: Sound is coming out from only the left or right side." msgstr "" -#: js/musicutils.js:710 -#: js/musicutils.js:1107 -#.TRANS: bandpass filter -msgid "bandpass" +#: js/blocks/VolumeBlocks.js:647 +#: js/blocks/VolumeBlocks.js:695 +msgid "set master volume" msgstr "" -#: js/musicutils.js:712 -#: js/musicutils.js:1108 -#.TRANS: high-shelf filter -msgid "highshelf" +#: js/blocks/VolumeBlocks.js:653 +msgid "The Set master volume block sets the volume for all synthesizers." msgstr "" -#: js/musicutils.js:714 -#: js/musicutils.js:1109 -#.TRANS: low-shelf filter -msgid "lowshelf" +#: js/blocks/VolumeBlocks.js:784 +msgid "The Set relative volume block changes the volume of the contained notes." msgstr "" -#: js/musicutils.js:716 -#: js/musicutils.js:1110 -#.TRANS: notch-shelf filter -msgid "notch" +#: js/blocks/VolumeBlocks.js:791 +msgid "set relative volume" msgstr "" -#: js/musicutils.js:718 -#: js/musicutils.js:1111 -#.TRANS: all-pass filter -msgid "allpass" +#: js/blocks/VolumeBlocks.js:857 +msgid "decrescendo" msgstr "" -#: js/musicutils.js:720 -#: js/musicutils.js:1112 -#.TRANS: peaking filter -msgid "peaking" +#: js/blocks/VolumeBlocks.js:921 +msgid "crescendo" msgstr "" -#: js/musicutils.js:731 -#: js/synthutils.js:58 -#.TRANS: musical instrument -msgid "violin" +#: js/blocks/WidgetBlocks.js:81 +#.TRANS: sound envelope (ADSR) +msgid "envelope" msgstr "" -#: js/musicutils.js:732 -#: js/synthutils.js:60 -#.TRANS: viola musical instrument -msgid "viola" +#: js/blocks/WidgetBlocks.js:89 +#.TRANS: Attack time is the time taken for initial run-up of level from nil to peak, beginning when the key is first pressed. +msgid "attack" msgstr "" -#: js/musicutils.js:733 -#: js/synthutils.js:98 -#.TRANS: xylophone musical instrument -msgid "xylophone" +#: js/blocks/WidgetBlocks.js:91 +#.TRANS: Decay time is the time taken for the subsequent run down from the attack level to the designated sustain level. +msgid "decay" msgstr "" -#: js/musicutils.js:734 -#: js/synthutils.js:120 -#.TRANS: vibraphone musical instrument -msgid "vibraphone" +#: js/blocks/WidgetBlocks.js:93 +#.TRANS: Sustain level is the level during the main sequence of the sound's duration, until the key is released. +msgid "sustain" msgstr "" -#: js/musicutils.js:735 -#: js/synthutils.js:62 -#.TRANS: musical instrument -msgid "cello" +#: js/blocks/WidgetBlocks.js:95 +#.TRANS: Release time is the time taken for the level to decay from the sustain level to zero after the key is released. +msgid "release" msgstr "" -#: js/musicutils.js:737 -#: js/synthutils.js:66 -#.TRANS: viola musical instrument -msgid "double bass" +#: js/blocks/WidgetBlocks.js:113 +msgid "Attack value should be from 0 to 100." msgstr "" -#: js/musicutils.js:738 -#: js/synthutils.js:68 -#: js/rhythmruler.js:2119 -#.TRANS: musical instrument -msgid "guitar" +#: js/blocks/WidgetBlocks.js:116 +msgid "Decay value should be from 0 to 100." msgstr "" -#: js/musicutils.js:739 -#: js/synthutils.js:70 -#.TRANS: musical instrument -msgid "acoustic guitar" +#: js/blocks/WidgetBlocks.js:119 +msgid "Sustain value should be from 0 to 100." msgstr "" -#: js/musicutils.js:740 -#: js/synthutils.js:72 -#.TRANS: musical instrument -msgid "flute" +#: js/blocks/WidgetBlocks.js:122 +msgid "Release value should be from 0-100." msgstr "" -#: js/musicutils.js:741 -#: js/synthutils.js:74 -#.TRANS: musical instrument -msgid "clarinet" +#: js/blocks/WidgetBlocks.js:140 +msgid "You are adding multiple envelope blocks." msgstr "" -#: js/musicutils.js:742 -#: js/synthutils.js:76 -#.TRANS: musical instrument -msgid "saxophone" +#: js/blocks/WidgetBlocks.js:171 +#.TRANS: a filter removes some unwanted components from a signal +msgid "filter" msgstr "" -#: js/musicutils.js:743 -#: js/synthutils.js:78 -#.TRANS: musical instrument -msgid "tuba" +#: js/blocks/WidgetBlocks.js:181 +#: js/widgets/timbre.js:1818 +#.TRANS: rolloff is the steepness of a change in frequency. +msgid "rolloff" msgstr "" -#: js/musicutils.js:744 -#: js/synthutils.js:80 -#.TRANS: musical instrument -msgid "trumpet" +#: js/blocks/WidgetBlocks.js:213 +#.TRANS: rolloff is the steepness of a change in frequency. +msgid "Rolloff value should be either -12, -24, -48, or -96 decibels/octave." msgstr "" -#: js/musicutils.js:745 -#: js/synthutils.js:82 -#.TRANS: musical instrument -msgid "oboe" +#: js/blocks/WidgetBlocks.js:252 +msgid "The Temperament tool is used to define custom tuning." msgstr "" -#: js/musicutils.js:746 -#: js/synthutils.js:84 -#.TRANS: musical instrument -msgid "trombone" +#: js/blocks/WidgetBlocks.js:332 +#: js/blocks/WidgetBlocks.js:1573 +#: js/widgets/sampler.js:547 +msgid "Upload a sample and adjust its pitch center." msgstr "" -#: js/musicutils.js:747 -#: js/synthutils.js:100 -#.TRANS: polytone synthesizer -msgid "electronic synth" +#: js/blocks/WidgetBlocks.js:339 +#.TRANS: the speed at music is should be played. +msgid "sampler" msgstr "" -#: js/musicutils.js:748 -#: js/synthutils.js:102 -#.TRANS: simple monotone synthesizer -msgid "simple 1" +#: js/blocks/WidgetBlocks.js:517 +msgid "The Meter block opens a tool to select strong beats for the meter." msgstr "" -#: js/musicutils.js:749 -msgid "simple 2" +#: js/blocks/WidgetBlocks.js:573 +msgid "The oscilloscope block opens a tool to visualize waveforms." msgstr "" -#: js/musicutils.js:750 -msgid "simple 3" +#: js/blocks/WidgetBlocks.js:578 +msgid "oscilloscope" msgstr "" -#: js/musicutils.js:751 -msgid "simple 4" +#: js/blocks/WidgetBlocks.js:645 +msgid "The Custom mode block opens a tool to explore musical mode (the spacing of the notes in a scale)." msgstr "" -#: js/musicutils.js:753 -#: js/synthutils.js:49 -#.TRANS: brown noise synthesizer -msgid "brown noise" +#: js/blocks/WidgetBlocks.js:651 +#.TRANS: musical mode is the pattern of half-steps in an octave, e.g., Major or Minor modes +msgid "custom mode" msgstr "" -#: js/musicutils.js:754 -#: js/synthutils.js:51 -#.TRANS: pink noise synthesizer -msgid "pink noise" +#: js/blocks/WidgetBlocks.js:700 +msgid "The Tempo block opens a metronome to visualize the beat." msgstr "" -#: js/musicutils.js:756 -#: js/synthutils.js:127 -#: js/rhythmruler.js:1670 -#: js/rhythmruler.js:1928 -#.TRANS: musical instrument -msgid "snare drum" +#: js/blocks/WidgetBlocks.js:762 +msgid "The Arpeggio Widget is used to compose chord sequences." msgstr "" -#: js/musicutils.js:757 -#: js/synthutils.js:129 -#.TRANS: musical instrument -msgid "kick drum" +#: js/blocks/WidgetBlocks.js:837 +msgid "The Pitch drum matrix is used to map pitches to drum sounds." msgstr "" -#: js/musicutils.js:758 -#: js/synthutils.js:131 -#.TRANS: musical instrument -msgid "tom tom" +#: js/blocks/WidgetBlocks.js:842 +#.TRANS: makes a mapping between pitches and drum sounds +msgid "pitch-drum mapper" msgstr "" -#: js/musicutils.js:759 -#: js/synthutils.js:133 -#.TRANS: musical instrument -msgid "floor tom" +#: js/blocks/WidgetBlocks.js:891 +msgid "You must have at least one pitch block and one drum block in the matrix." msgstr "" -#: js/musicutils.js:760 -#: js/synthutils.js:135 -#.TRANS: musical instrument -msgid "bass drum" +#: js/blocks/WidgetBlocks.js:920 +msgid "The Pitch slider tool to is used to generate pitches at selected frequencies." msgstr "" -#: js/musicutils.js:761 -#: js/synthutils.js:137 -#.TRANS: a drum made from an inverted cup -msgid "cup drum" +#: js/blocks/WidgetBlocks.js:925 +#.TRANS: widget to generate pitches using a slider +msgid "pitch slider" msgstr "" -#: js/musicutils.js:762 -#: js/synthutils.js:139 -#.TRANS: musical instrument -msgid "darbuka drum" +#: js/blocks/WidgetBlocks.js:977 +msgid "chromatic keyboard" msgstr "" -#: js/musicutils.js:763 -#: js/synthutils.js:143 -#.TRANS: musical instrument -msgid "hi hat" +#: js/blocks/WidgetBlocks.js:1011 +#: js/blocks/WidgetBlocks.js:1077 +#.TRANS: widget to generate pitches using a slider +msgid "music keyboard" msgstr "" -#: js/musicutils.js:764 -#: js/synthutils.js:145 -#.TRANS: a small metal bell -msgid "ride bell" +#: js/blocks/WidgetBlocks.js:1062 +#: js/blocks/WidgetBlocks.js:1069 +msgid "The Music keyboard block opens a piano keyboard that can be used to create notes." msgstr "" -#: js/musicutils.js:765 -#: js/synthutils.js:147 -#.TRANS: musical instrument -msgid "cow bell" +#: js/blocks/WidgetBlocks.js:1128 +msgid "The Pitch staircase tool to is used to generate pitches from a given ratio." msgstr "" -#: js/musicutils.js:766 -msgid "japanese drum" +#: js/blocks/WidgetBlocks.js:1135 +#.TRANS: generate a progressive sequence of pitches +msgid "pitch staircase" msgstr "" -#: js/musicutils.js:767 -#: js/synthutils.js:153 -#.TRANS: musical instrument -msgid "japanese bell" +#: js/blocks/WidgetBlocks.js:1222 +msgid "The Rhythm Maker block opens a tool to create drum machines." msgstr "" -#: js/musicutils.js:768 -#: js/synthutils.js:149 -#.TRANS: musical instrument -msgid "triangle bell" +#: js/blocks/WidgetBlocks.js:1291 +msgid "G major scale" msgstr "" -#: js/musicutils.js:769 -#: js/synthutils.js:151 -#.TRANS: musical instrument -msgid "finger cymbals" +#: js/blocks/WidgetBlocks.js:1326 +msgid "C major scale" msgstr "" -#: js/musicutils.js:770 -#: js/synthutils.js:155 -#.TRANS: a musically tuned set of bells -msgid "chime" +#: js/blocks/WidgetBlocks.js:1366 +msgid "The Phrase Maker block opens a tool to create musical phrases." msgstr "" -#: js/musicutils.js:771 -#: js/synthutils.js:157 -#.TRANS: a musical instrument -msgid "gong" +#: js/blocks/WidgetBlocks.js:1373 +#.TRANS: assigns pitch to a sequence of beats to generate a melody +msgid "phrase maker" msgstr "" -#: js/musicutils.js:772 -#: js/synthutils.js:159 -#.TRANS: sound effect -msgid "clang" +#: js/blocks/WidgetBlocks.js:1444 +msgid "You must have at least one pitch block and one rhythm block in the matrix." msgstr "" -#: js/musicutils.js:773 -#: js/synthutils.js:161 -#.TRANS: sound effect -msgid "crash" +#: js/blocks/WidgetBlocks.js:1503 +msgid "The Status block opens a tool for inspecting the status of Music Blocks as it is running." msgstr "" -#: js/musicutils.js:774 -#: js/synthutils.js:163 -#.TRANS: sound effect -msgid "bottle" +#: js/blocks/WidgetBlocks.js:1580 +#.TRANS: AI-generated music +msgid "aimusic" msgstr "" -#: js/musicutils.js:775 -#: js/synthutils.js:165 -#.TRANS: sound effect -msgid "clap" +#: js/turtleactions/MeterActions.js:101 +#: js/turtleactions/MeterActions.js:139 +msgid "beats per minute must be greater than" msgstr "" -#: js/musicutils.js:776 -#: js/synthutils.js:167 -#.TRANS: sound effect -msgid "slap" +#: js/turtleactions/MeterActions.js:111 +#: js/turtleactions/MeterActions.js:149 +msgid "maximum" msgstr "" -#: js/musicutils.js:777 -#: js/synthutils.js:169 -#.TRANS: sound effect -msgid "splash" +#: js/turtleactions/MeterActions.js:117 +#: js/turtleactions/MeterActions.js:155 +msgid "beats per minute is" msgstr "" -#: js/musicutils.js:778 -#: js/synthutils.js:171 -#.TRANS: sound effect -msgid "bubbles" +#: js/turtleactions/DictActions.js:75 +#: js/turtleactions/DictActions.js:142 +#: js/turtleactions/DictActions.js:172 +msgid "font" msgstr "" -#: js/musicutils.js:779 -#: js/synthutils.js:173 -#.TRANS: sound effect -msgid "raindrop" +#: js/turtleactions/DictActions.js:255 +msgid "Dictionary with this name does not exist" msgstr "" -#: js/musicutils.js:780 -#: js/synthutils.js:175 -#.TRANS: animal sound effect -msgid "cat" +#: js/turtleactions/DictActions.js:259 +msgid "Key with this name does not exist in " msgstr "" -#: js/musicutils.js:781 -#: js/synthutils.js:177 -#.TRANS: animal sound effect -msgid "cricket" +#: js/turtleactions/DrumActions.js:227 +msgid "Noise Block: Did you mean to use a Note block?" msgstr "" -#: js/musicutils.js:782 -#: js/synthutils.js:179 -#.TRANS: animal sound effect -msgid "dog" +#: js/turtleactions/IntervalsActions.js:113 +msgid "one" msgstr "" -#: js/musicutils.js:784 -#: js/synthutils.js:86 -#.TRANS: musical instrument -msgid "banjo" +#: js/turtleactions/IntervalsActions.js:113 +msgid "two" msgstr "" -#: js/musicutils.js:785 -#: js/synthutils.js:88 -#.TRANS: musical instrument -msgid "koto" +#: js/turtleactions/IntervalsActions.js:113 +msgid "three" msgstr "" -#: js/musicutils.js:786 -#: js/synthutils.js:90 -#.TRANS: musical instrument -msgid "dulcimer" +#: js/turtleactions/IntervalsActions.js:113 +msgid "four" msgstr "" -#: js/musicutils.js:787 -#: js/synthutils.js:92 -#.TRANS: musical instrument -msgid "electric guitar" +#: js/turtleactions/IntervalsActions.js:113 +msgid "five" msgstr "" -#: js/musicutils.js:788 -#: js/synthutils.js:94 -#.TRANS: musical instrument -msgid "bassoon" +#: js/turtleactions/IntervalsActions.js:113 +msgid "six" msgstr "" -#: js/musicutils.js:789 -#: js/synthutils.js:96 -#.TRANS: musical instrument -msgid "celeste" +#: js/turtleactions/IntervalsActions.js:113 +msgid "seven" msgstr "" -#: js/musicutils.js:791 -#: js/musicutils.js:1123 -#: js/musicutils.js:1131 -#: js/temperament.js:650 -#.TRANS: musical temperament -msgid "equal" +#: js/turtleactions/IntervalsActions.js:113 +msgid "eight" msgstr "" -#: js/musicutils.js:793 -#: js/musicutils.js:1125 -#: js/musicutils.js:1133 -#.TRANS: musical temperament -msgid "Pythagorean" +#: js/turtleactions/IntervalsActions.js:113 +msgid "nine" msgstr "" -#: js/musicutils.js:795 -#: js/musicutils.js:1124 -#: js/musicutils.js:1132 -#.TRANS: musical temperament -msgid "just intonation" +#: js/turtleactions/IntervalsActions.js:119 +msgid "a" msgstr "" -#: js/musicutils.js:797 -#: js/musicutils.js:1126 -#: js/musicutils.js:1127 -#: js/musicutils.js:1134 -#: js/musicutils.js:1135 -#.TRANS: musical temperament -msgid "meantone" +#: js/turtleactions/IntervalsActions.js:120 +msgid "below" msgstr "" -#: js/musicutils.js:814 -msgid "major 7th" +#: js/turtleactions/IntervalsActions.js:124 +msgid "above" msgstr "" -#: js/musicutils.js:815 -msgid "minor 7th" +#: js/turtleactions/IntervalsActions.js:131 +msgid "plus" msgstr "" -#: js/musicutils.js:816 -msgid "dominant 7th" +#: js/turtleactions/IntervalsActions.js:139 +msgid " below" msgstr "" -#: js/musicutils.js:817 -msgid "minor-major 7th" +#: js/turtleactions/IntervalsActions.js:257 +msgid "Adding missing pitch number 0." msgstr "" -#: js/musicutils.js:818 -msgid "fully-diminished 7th" +#: js/turtleactions/IntervalsActions.js:265 +msgid "Ignoring pitch numbers less than zero or greater than eleven." msgstr "" -#: js/musicutils.js:819 -msgid "half-diminished 7th" +#: js/turtleactions/IntervalsActions.js:271 +msgid "Ignoring duplicate pitch numbers." msgstr "" -#: js/musicutils.js:4379 -#: js/musicutils.js:4416 -msgid "current" +#: js/turtleactions/ToneActions.js:134 +msgid "Vibrato intensity must be between 1 and 100." msgstr "" -#: js/musicutils.js:4382 -#: js/musicutils.js:4407 -msgid "next" +#: js/turtleactions/ToneActions.js:139 +msgid "Vibrato rate must be greater than 0." msgstr "" -#: js/musicutils.js:4385 -#: js/musicutils.js:4412 -msgid "previous" +#: js/turtleactions/ToneActions.js:192 +#: js/turtleactions/ToneActions.js:265 +#.TRANS: Depth is the intesity of the tremolo or chorus effect. +msgid "Depth is out of range." msgstr "" -#: js/synthutils.js:104 -#.TRANS: simple monotone synthesizer -msgid "simple-2" +#: js/turtleactions/ToneActions.js:301 +msgid "Distortion must be from 0 to 100." msgstr "" -#: js/synthutils.js:106 -#.TRANS: simple monotone synthesizer -msgid "simple-3" +#: js/turtleactions/ToneActions.js:332 +#.TRANS: partials components in a harmonic series +msgid "Partial must be greater than or equal to 0." msgstr "" -#: js/synthutils.js:108 -#.TRANS: simple monotone synthesizer -msgid "simple-4" +#: js/turtleactions/ToneActions.js:378 +#: js/turtleactions/ToneActions.js:417 +#: js/turtleactions/ToneActions.js:456 +#: js/widgets/timbre.js:782 +msgid "Unable to use synth due to existing oscillator" msgstr "" -#: js/synthutils.js:141 -#.TRANS: musical instrument -msgid "taiko" +#: js/turtleactions/ToneActions.js:388 +#: js/turtleactions/ToneActions.js:427 +msgid "The input cannot be negative." msgstr "" -#: js/modewidget.js:86 -#: js/modewidget.js:88 -#: js/modewidget.js:642 -#: js/modewidget.js:644 -#: js/modewidget.js:712 -#: js/modewidget.js:714 -#: js/temperament.js:2078 -#: js/rhythmruler.js:189 -#: js/rhythmruler.js:1410 -#: js/rhythmruler.js:1412 -#: js/rhythmruler.js:1435 -#: js/rhythmruler.js:1437 -#: js/meterwidget.js:89 -#: js/meterwidget.js:91 +#: js/widgets/modewidget.js:86 +#: js/widgets/modewidget.js:88 +#: js/widgets/modewidget.js:642 +#: js/widgets/modewidget.js:644 +#: js/widgets/modewidget.js:712 +#: js/widgets/modewidget.js:714 +#: js/widgets/meterwidget.js:194 +#: js/widgets/meterwidget.js:196 +#: js/widgets/temperament.js:2236 +#: js/widgets/rhythmruler.js:457 +#: js/widgets/rhythmruler.js:1790 +#: js/widgets/rhythmruler.js:1792 +#: js/widgets/rhythmruler.js:1816 +#: js/widgets/rhythmruler.js:1818 msgid "Play all" msgstr "" -#: js/modewidget.js:115 -#: js/pitchstaircase.js:641 -#: js/phrasemaker.js:339 -#: js/pitchdrummatrix.js:94 -#: js/pitchslider.js:125 -#: js/temperament.js:2083 -#: js/musickeyboard.js:530 -#: js/timbre.js:756 -#: js/meterwidget.js:124 -#: js/arpeggio.js:103 +#: js/widgets/modewidget.js:115 +#: js/widgets/meterwidget.js:229 +#: js/widgets/pitchdrummatrix.js:166 +#: js/widgets/pitchslider.js:125 +#: js/widgets/pitchstaircase.js:641 +#: js/widgets/temperament.js:2244 +#: js/widgets/timbre.js:756 +#: js/widgets/arpeggio.js:103 +#: js/widgets/musickeyboard.js:688 +#: js/widgets/phrasemaker.js:550 msgid "Save" msgstr "" -#: js/modewidget.js:121 -#: js/pitchstaircase.js:686 -#: js/phrasemaker.js:356 -#: js/pitchdrummatrix.js:109 -#: js/musickeyboard.js:534 -#: js/rhythmruler.js:269 -#: js/arpeggio.js:118 +#: js/widgets/modewidget.js:121 +#: js/widgets/pitchdrummatrix.js:181 +#: js/widgets/pitchstaircase.js:686 +#: js/widgets/arpeggio.js:118 +#: js/widgets/musickeyboard.js:696 +#: js/widgets/phrasemaker.js:567 +#: js/widgets/rhythmruler.js:601 #.TRANS: clear all subdivisions from the ruler. msgid "Clear" msgstr "" -#: js/modewidget.js:127 +#: js/widgets/modewidget.js:127 msgid "Rotate counter clockwise" msgstr "" -#: js/modewidget.js:133 +#: js/widgets/modewidget.js:133 msgid "Rotate clockwise" msgstr "" -#: js/modewidget.js:139 +#: js/widgets/modewidget.js:139 msgid "Invert" msgstr "" -#: js/modewidget.js:145 -#: js/pitchstaircase.js:678 -#: js/rhythmruler.js:258 -#: js/timbre.js:963 +#: js/widgets/modewidget.js:145 +#: js/widgets/pitchstaircase.js:678 +#: js/widgets/timbre.js:963 +#: js/widgets/rhythmruler.js:578 msgid "Undo" msgstr "" -#: js/modewidget.js:163 +#: js/widgets/modewidget.js:163 #.TRANS: A circle of notes represents the musical mode. msgid "Click in the circle to select notes for the mode." msgstr "" -#: js/modewidget.js:1017 -#: js/pitchstaircase.js:580 -#: js/phrasemaker.js:4855 -#: js/temperament.js:1754 -#: js/rhythmruler.js:1865 -#: js/rhythmruler.js:2081 -#: js/tempo.js:414 +#: js/widgets/modewidget.js:1017 +#: js/widgets/pitchstaircase.js:580 +#: js/widgets/temperament.js:1929 +#: js/widgets/tempo.js:414 +#: js/widgets/phrasemaker.js:5356 +#: js/widgets/rhythmruler.js:2254 +#: js/widgets/rhythmruler.js:2472 msgid "New action block generated!" msgstr "" -#: js/oscilloscope.js:79 -msgid "Zoom In" -msgstr "" - -#: js/oscilloscope.js:88 -msgid "Zoom Out" -msgstr "" - -#: js/pitchstaircase.js:624 -msgid "Play chord" -msgstr "" - -#: js/pitchstaircase.js:632 -msgid "Play scale" +#: js/widgets/meterwidget.js:275 +msgid "Reset" msgstr "" -#: js/pitchstaircase.js:696 -msgid "Click on a note to create a new step." +#: js/widgets/meterwidget.js:301 +msgid "Click in the circle to select strong beats for the meter." msgstr "" -#: js/phrasemaker.js:363 -msgid "Export" +#: js/widgets/oscilloscope.js:79 +msgid "Zoom In" msgstr "" -#: js/phrasemaker.js:370 -msgid "Sort" +#: js/widgets/oscilloscope.js:88 +msgid "Zoom Out" msgstr "" -#: js/phrasemaker.js:373 -#: js/musickeyboard.js:559 -msgid "Add note" +#: js/widgets/pitchdrummatrix.js:356 +#: js/widgets/pitchdrummatrix.js:752 +msgid "Click in the grid to map notes to drums." msgstr "" -#: js/phrasemaker.js:764 -msgid "Click on the table to add notes." +#: js/widgets/pitchslider.js:103 +msgid "Move up" msgstr "" -#: js/phrasemaker.js:2414 -#: js/phrasemaker.js:2543 -msgid "tuplet value" +#: js/widgets/pitchslider.js:114 +msgid "Move down" msgstr "" -#: js/pitchdrummatrix.js:270 -#: js/pitchdrummatrix.js:639 -msgid "Click in the grid to map notes to drums." +#: js/widgets/pitchslider.js:136 +msgid "Click on the slider to create a note block." msgstr "" -#: js/pitchslider.js:103 -msgid "Move up" +#: js/widgets/pitchstaircase.js:624 +msgid "Play chord" msgstr "" -#: js/pitchslider.js:114 -msgid "Move down" +#: js/widgets/pitchstaircase.js:632 +msgid "Play scale" msgstr "" -#: js/pitchslider.js:136 -msgid "Click on the slider to create a note block." +#: js/widgets/pitchstaircase.js:696 +msgid "Click on a note to create a new step." msgstr "" -#: js/temperament.js:215 +#: js/widgets/temperament.js:321 msgid "back to 2:1 octave space" msgstr "" -#: js/temperament.js:323 +#: js/widgets/temperament.js:447 msgid "edit" msgstr "" -#: js/temperament.js:330 -#: js/temperament.js:332 -#: js/temperament.js:1336 -#: js/temperament.js:1338 +#: js/widgets/temperament.js:454 +#: js/widgets/temperament.js:456 +#: js/widgets/temperament.js:1493 +#: js/widgets/temperament.js:1495 msgid "close" msgstr "" -#: js/temperament.js:423 -#: js/temperament.js:736 -#: js/temperament.js:743 -#: js/temperament.js:845 -#: js/temperament.js:935 -#: js/temperament.js:942 -#: js/temperament.js:1015 -#: js/temperament.js:1284 -#: js/temperament.js:1354 -#: js/temperament.js:1430 +#: js/widgets/temperament.js:552 +#: js/widgets/temperament.js:877 +#: js/widgets/temperament.js:884 +#: js/widgets/temperament.js:986 +#: js/widgets/temperament.js:1080 +#: js/widgets/temperament.js:1087 +#: js/widgets/temperament.js:1160 +#: js/widgets/temperament.js:1433 +#: js/widgets/temperament.js:1511 +#: js/widgets/temperament.js:1596 msgid "done" msgstr "" -#: js/temperament.js:477 -#: js/temperament.js:482 -#: js/temperament.js:918 +#: js/widgets/temperament.js:610 +#: js/widgets/temperament.js:615 +#: js/widgets/temperament.js:1063 msgid "ratio" msgstr "" -#: js/temperament.js:483 +#: js/widgets/temperament.js:616 msgid "interval" msgstr "" -#: js/temperament.js:611 +#: js/widgets/temperament.js:744 msgid "non scalar" msgstr "" -#: js/temperament.js:650 +#: js/widgets/temperament.js:787 msgid "ratios" msgstr "" -#: js/temperament.js:650 +#: js/widgets/temperament.js:787 msgid "arbitrary" msgstr "" -#: js/temperament.js:719 +#: js/widgets/temperament.js:860 msgid "number of divisions" msgstr "" -#: js/temperament.js:741 -#: js/temperament.js:858 -#: js/temperament.js:940 -#: js/temperament.js:1033 +#: js/widgets/temperament.js:882 +#: js/widgets/temperament.js:999 +#: js/widgets/temperament.js:1085 +#: js/widgets/temperament.js:1178 msgid "preview" msgstr "" -#: js/temperament.js:788 +#: js/widgets/temperament.js:929 msgid "The Number of divisions is too large." msgstr "" -#: js/temperament.js:921 +#: js/widgets/temperament.js:1066 msgid "recursion" msgstr "" -#: js/temperament.js:1450 +#: js/widgets/temperament.js:1616 msgid "The octave ratio has changed. This changes temperament significantly." msgstr "" -#: js/temperament.js:2087 +#: js/widgets/temperament.js:2248 msgid "Table" msgstr "" -#: js/temperament.js:2185 +#: js/widgets/temperament.js:2356 msgid "Add pitches" msgstr "" -#: js/musickeyboard.js:570 -msgid "Metronome" +#: js/widgets/tempo.js:78 +#: js/widgets/tempo.js:97 +#: js/widgets/tempo.js:99 +#: js/widgets/aiwidget.js:134 +#: js/widgets/aiwidget.js:136 +#: js/widgets/rhythmruler.js:681 +#: js/widgets/rhythmruler.js:683 +#: js/widgets/rhythmruler.js:1864 +#: js/widgets/rhythmruler.js:1866 +#: js/widgets/sampler.js:180 +#: js/widgets/sampler.js:182 +msgid "Pause" msgstr "" -#: js/musickeyboard.js:1296 -#: plugins/rodi.rtp:193 -msgid "duration" +#: js/widgets/tempo.js:113 +msgid "Save tempo" msgstr "" -#: js/musickeyboard.js:2840 -msgid "New action blocks generated!" +#: js/widgets/tempo.js:144 +msgid "speed up" msgstr "" -#: js/musickeyboard.js:2841 -msgid "New action block generated" +#: js/widgets/tempo.js:150 +msgid "slow down" msgstr "" -#: js/musickeyboard.js:2984 -#: js/musickeyboard.js:2992 -msgid "MIDI device present." +#: js/widgets/tempo.js:194 +msgid "Adjust the tempo with the buttons." msgstr "" -#: js/musickeyboard.js:2995 -msgid "No MIDI device found." +#: js/widgets/tempo.js:261 +msgid "Please enter a number between 30 and 1000" msgstr "" -#: js/musickeyboard.js:3000 -msgid "Failed to get MIDI access in browser." +#: js/widgets/tempo.js:268 +#: js/widgets/tempo.js:271 +msgid "The beats per minute must be between 30 and 1000." msgstr "" -#: js/rhythmruler.js:202 -msgid "Save rhythms" +#: js/widgets/tempo.js:287 +msgid "The beats per minute must be below 1000." msgstr "" -#: js/rhythmruler.js:222 -msgid "Save drum machine" +#: js/widgets/tempo.js:303 +msgid "The beats per minute must be above 30" msgstr "" -#: js/rhythmruler.js:263 -#.TRANS: user can tap out a rhythm by clicking on a ruler. -msgid "Tap a rhythm" +#: js/widgets/timbre.js:766 +msgid "Synthesizer" msgstr "" -#: js/rhythmruler.js:342 -#: js/rhythmruler.js:344 -#: js/rhythmruler.js:1481 -#: js/rhythmruler.js:1483 -#: js/sampler.js:110 -#: js/sampler.js:112 -#: js/tempo.js:78 -#: js/tempo.js:97 -#: js/tempo.js:99 -msgid "Pause" +#: js/widgets/timbre.js:789 +msgid "Oscillator" msgstr "" -#: js/rhythmruler.js:478 -msgid "Click on the ruler to divide it." +#: js/widgets/timbre.js:840 +msgid "Envelope" msgstr "" -#: js/rhythmruler.js:603 -#: js/rhythmruler.js:605 -#: js/rhythmruler.js:804 -#: js/rhythmruler.js:806 -#: js/rhythmruler.js:1386 -#: js/rhythmruler.js:1388 -msgid "tap a rhythm" +#: js/widgets/timbre.js:886 +#: planet/js/GlobalTag.js:50 +#.TRANS: On the Planet, we use labels to tag projects. +msgid "Effects" msgstr "" -#: js/rhythmruler.js:1084 -msgid "Maximum value of 256 has been exceeded." +#: js/widgets/timbre.js:904 +msgid "Filter" msgstr "" -#: js/sampler.js:137 -msgid "Warning: Sample is bigger than 1MB." +#: js/widgets/timbre.js:946 +msgid "Add filter" msgstr "" -#: js/sampler.js:142 -msgid "Upload failed: Sample is not a .wav file." +#: js/widgets/timbre.js:987 +msgid "Click on buttons to open the timbre design tools." msgstr "" -#: js/sampler.js:164 -msgid "A new sample block was generated." +#: js/widgets/timbre.js:1273 +msgid "harmonicity" msgstr "" -#: js/sampler.js:255 -msgid "Upload sample" +#: js/widgets/timbre.js:1340 +#: js/widgets/timbre.js:1406 +msgid "modulation index" msgstr "" -#: js/sampler.js:306 -msgid "Save sample" +#: js/widgets/timbre.js:1484 +msgid "vibrato amount" msgstr "" -#: js/sampler.js:697 -#.TRANS: The reference tone is a sound used for comparison. -msgid "reference tone" +#: js/widgets/timbre.js:1919 +msgid "Filter already present." msgstr "" -#: js/tempo.js:113 -msgid "Save tempo" +#: js/widgets/timbre.js:2322 +msgid "delay (MS)" msgstr "" -#: js/tempo.js:144 -msgid "speed up" +#: js/widgets/timbre.js:2507 +msgid "distortion amount" msgstr "" -#: js/tempo.js:150 -msgid "slow down" +#: js/widgets/aiwidget.js:180 +#: js/widgets/sampler.js:227 +msgid "Warning: Sample is bigger than 1MB." msgstr "" -#: js/tempo.js:194 -msgid "Adjust the tempo with the buttons." +#: js/widgets/aiwidget.js:539 +msgid "New start block generated" msgstr "" -#: js/tempo.js:261 -msgid "Please enter a number between 30 and 1000" +#: js/widgets/aiwidget.js:541 +msgid "MIDI loading. This may take some time depending upon the number of notes in the track" msgstr "" -#: js/tempo.js:268 -#: js/tempo.js:271 -msgid "The beats per minute must be between 30 and 1000." +#: js/widgets/aiwidget.js:551 +#: js/widgets/sampler.js:254 +msgid "Upload failed: Sample is not a .wav file." msgstr "" -#: js/tempo.js:287 -msgid "The beats per minute must be below 1000." +#: js/widgets/aiwidget.js:679 +#: js/widgets/sampler.js:432 +msgid "Save sample" msgstr "" -#: js/tempo.js:303 -msgid "The beats per minute must be above 30" +#: js/widgets/aiwidget.js:701 +msgid "AI Music" msgstr "" -#: js/timbre.js:766 -msgid "Synthesizer" +#: js/widgets/arpeggio.js:239 +msgid "Click in the grid to add steps to the arpeggio." msgstr "" -#: js/timbre.js:789 -msgid "Oscillator" +#: js/widgets/help.js:95 +#: js/widgets/help.js:125 +#: js/widgets/help.js:146 +#: js/widgets/help.js:158 +#: js/widgets/help.js:376 +#: js/widgets/help.js:391 +msgid "Take a tour" msgstr "" -#: js/timbre.js:840 -msgid "Envelope" +#: js/widgets/musickeyboard.js:725 +#: js/widgets/phrasemaker.js:584 +msgid "Add note" msgstr "" -#: js/timbre.js:886 -#: js/GlobalTag.js:50 -#.TRANS: On the Planet, we use labels to tag projects. -msgid "Effects" +#: js/widgets/musickeyboard.js:744 +msgid "Metronome" +msgstr "" + +#: js/widgets/musickeyboard.js:1549 +#: plugins/rodi.rtp:193 +msgid "duration" +msgstr "" + +#: js/widgets/musickeyboard.js:3179 +msgid "New action blocks generated" +msgstr "" + +#: js/widgets/musickeyboard.js:3180 +msgid "New action block generated" msgstr "" -#: js/timbre.js:904 -msgid "Filter" +#: js/widgets/musickeyboard.js:3365 +#: js/widgets/musickeyboard.js:3373 +msgid "MIDI device present." msgstr "" -#: js/timbre.js:946 -msgid "Add filter" +#: js/widgets/musickeyboard.js:3376 +msgid "No MIDI device found." msgstr "" -#: js/timbre.js:987 -msgid "Click on buttons to open the timbre design tools." +#: js/widgets/musickeyboard.js:3386 +msgid "Failed to get MIDI access in browser." msgstr "" -#: js/timbre.js:1273 -msgid "harmonicity" +#: js/widgets/phrasemaker.js:574 +msgid "Export" msgstr "" -#: js/timbre.js:1340 -#: js/timbre.js:1406 -msgid "modulation index" +#: js/widgets/phrasemaker.js:581 +msgid "Sort" msgstr "" -#: js/timbre.js:1484 -msgid "vibrato amount" +#: js/widgets/phrasemaker.js:975 +msgid "Click on the table to add notes." msgstr "" -#: js/timbre.js:1919 -msgid "Filter already present." +#: js/widgets/phrasemaker.js:2677 +#: js/widgets/phrasemaker.js:2819 +msgid "tuplet value" msgstr "" -#: js/timbre.js:2322 -msgid "delay (MS)" +#: js/widgets/rhythmruler.js:486 +msgid "Save rhythms" msgstr "" -#: js/timbre.js:2507 -msgid "distortion amount" +#: js/widgets/rhythmruler.js:512 +msgid "Save drum machine" msgstr "" -#: js/meterwidget.js:170 -msgid "Reset" +#: js/widgets/rhythmruler.js:589 +#.TRANS: user can tap out a rhythm by clicking on a ruler. +msgid "Tap a rhythm" msgstr "" -#: js/meterwidget.js:196 -msgid "Click in the circle to select strong beats for the meter." +#: js/widgets/rhythmruler.js:817 +msgid "Click on the ruler to divide it." msgstr "" -#: js/arpeggio.js:239 -msgid "Click in the grid to add steps to the arpeggio." +#: js/widgets/rhythmruler.js:950 +#: js/widgets/rhythmruler.js:952 +#: js/widgets/rhythmruler.js:1152 +#: js/widgets/rhythmruler.js:1154 +#: js/widgets/rhythmruler.js:1765 +#: js/widgets/rhythmruler.js:1767 +msgid "tap a rhythm" msgstr "" -#: js/ProjectStorage.js:243 -msgid "anonymous" +#: js/widgets/rhythmruler.js:1459 +msgid "Maximum value of 256 has been exceeded." msgstr "" -#: js/GlobalCard.js:68 -msgid "Share" +#: js/widgets/sampler.js:237 +msgid "Recording started..." msgstr "" -#: js/GlobalCard.js:74 -msgid "Flags" +#: js/widgets/sampler.js:245 +msgid "Recording complete..." msgstr "" -#: js/LocalCard.js:36 -msgid "View published project" +#: js/widgets/sampler.js:283 +msgid "A new sample block was generated." msgstr "" -#: js/LocalCard.js:42 -msgid "Publish project" +#: js/widgets/sampler.js:378 +msgid "Upload sample" msgstr "" -#: js/LocalCard.js:51 -msgid "Edit project" +#: js/widgets/sampler.js:399 +msgid "Warning: Your sample cannot be loaded because it is >1MB." msgstr "" -#: js/LocalCard.js:52 -msgid "Delete project" +#: js/widgets/sampler.js:448 +msgid "Toggle Mic" msgstr "" -#: js/LocalCard.js:53 -msgid "Download project" +#: js/widgets/sampler.js:458 +msgid "Playback" msgstr "" -#: js/LocalCard.js:55 -msgid "Duplicate project" +#: js/widgets/sampler.js:979 +#.TRANS: The reference tone is a sound used for comparison. +msgid "reference tone" msgstr "" -#: js/GlobalTag.js:28 +#: planet/js/GlobalTag.js:28 #.TRANS: On the Planet, we use labels to tag projects. msgid "All Projects" msgstr "" -#: js/GlobalTag.js:30 -#: js/StringHelper.js:37 +#: planet/js/GlobalTag.js:30 +#: planet/js/StringHelper.js:37 #.TRANS: On the Planet, we use labels to tag projects. msgid "My Projects" msgstr "" -#: js/GlobalTag.js:32 +#: planet/js/GlobalTag.js:32 #.TRANS: On the Planet, we use labels to tag projects. msgid "Examples" msgstr "" -#: js/GlobalTag.js:34 +#: planet/js/GlobalTag.js:34 #.TRANS: On the Planet, we use labels to tag projects. msgid "Music" msgstr "" -#: js/GlobalTag.js:36 +#: planet/js/GlobalTag.js:36 #.TRANS: On the Planet, we use labels to tag projects. msgid "Art" msgstr "" -#: js/GlobalTag.js:38 +#: planet/js/GlobalTag.js:38 #.TRANS: On the Planet, we use labels to tag projects. msgid "Math" msgstr "" -#: js/GlobalTag.js:40 +#: planet/js/GlobalTag.js:40 #.TRANS: On the Planet, we use labels to tag projects. msgid "Interactive" msgstr "" -#: js/GlobalTag.js:42 +#: planet/js/GlobalTag.js:42 #.TRANS: On the Planet, we use labels to tag projects. msgid "Design" msgstr "" -#: js/GlobalTag.js:44 +#: planet/js/GlobalTag.js:44 #.TRANS: On the Planet, we use labels to tag projects. msgid "Game" msgstr "" -#: js/GlobalTag.js:46 +#: planet/js/GlobalTag.js:46 #.TRANS: On the Planet, we use labels to tag projects. msgid "Media" msgstr "" -#: js/GlobalTag.js:48 +#: planet/js/GlobalTag.js:48 #.TRANS: On the Planet, we use labels to tag projects. msgid "Sensors" msgstr "" -#: js/GlobalTag.js:52 +#: planet/js/GlobalTag.js:52 #.TRANS: On the Planet, we use labels to tag projects. msgid "Code Snippet" msgstr "" -#: js/helper.js:149 -#: js/StringHelper.js:49 -msgid "Show more tags" +#: planet/js/LocalCard.js:36 +msgid "View published project" msgstr "" -#: js/helper.js:150 -msgid "Show fewer tags" +#: planet/js/LocalCard.js:42 +msgid "Publish project" +msgstr "" + +#: planet/js/LocalCard.js:51 +msgid "Edit project" +msgstr "" + +#: planet/js/LocalCard.js:52 +msgid "Delete project" +msgstr "" + +#: planet/js/LocalCard.js:53 +msgid "Download project" +msgstr "" + +#: planet/js/LocalCard.js:55 +msgid "Duplicate project" +msgstr "" + +#: planet/js/ProjectStorage.js:243 +msgid "anonymous" +msgstr "" + +#: planet/js/SaveInterface.js:34 +msgid "Open in Music Blocks" +msgstr "" + +#: planet/js/SaveInterface.js:35 +msgid "Open in Turtle Blocks" +msgstr "" + +#: planet/js/GlobalCard.js:68 +msgid "Share" +msgstr "" + +#: planet/js/GlobalCard.js:74 +msgid "Flags" +msgstr "" + +#: planet/js/GlobalPlanet.js:35 +msgid "No results found." +msgstr "" + +#: planet/js/GlobalPlanet.js:51 +msgid "Remix of" +msgstr "" + +#: planet/js/GlobalPlanet.js:509 +msgid "Cannot connect to server" msgstr "" -#: js/ProjectViewer.js:30 +#: planet/js/ProjectViewer.js:30 msgid "Error: Report could not be submitted. Try again later." msgstr "" -#: js/ProjectViewer.js:31 +#: planet/js/ProjectViewer.js:31 msgid "Thank you for reporting this project. A moderator will review the project shortly, to verify violation of the Sugar Labs Code of Conduct." msgstr "" -#: js/ProjectViewer.js:32 -#: js/StringHelper.js:62 -#: js/StringHelper.js:64 -#: js/StringHelper.js:68 +#: planet/js/ProjectViewer.js:32 +#: planet/js/StringHelper.js:62 +#: planet/js/StringHelper.js:64 +#: planet/js/StringHelper.js:68 msgid "Report Project" msgstr "" -#: js/ProjectViewer.js:33 -#: js/StringHelper.js:63 +#: planet/js/ProjectViewer.js:33 +#: planet/js/StringHelper.js:63 msgid "Project Reported" msgstr "" -#: js/ProjectViewer.js:34 +#: planet/js/ProjectViewer.js:34 msgid "Report description required" msgstr "" -#: js/ProjectViewer.js:35 +#: planet/js/ProjectViewer.js:35 msgid "Report description too long" msgstr "" -#: js/StringHelper.js:30 +#: planet/js/Publisher.js:30 +msgid "Feature unavailable - cannot connect to server. Reload Music Blocks to try again." +msgstr "" + +#: planet/js/Publisher.js:220 +#: planet/js/Publisher.js:237 +msgid "This field is required" +msgstr "" + +#: planet/js/Publisher.js:227 +msgid "Title too long" +msgstr "" + +#: planet/js/Publisher.js:244 +msgid "Description too long" +msgstr "" + +#: planet/js/Publisher.js:341 +msgid "Server Error" +msgstr "" + +#: planet/js/Publisher.js:341 +msgid "Try Again" +msgstr "" + +#: planet/js/StringHelper.js:30 msgid "Planet" msgstr "" -#: js/StringHelper.js:31 +#: planet/js/StringHelper.js:31 msgid "Close Planet" msgstr "" -#: js/StringHelper.js:32 +#: planet/js/StringHelper.js:32 msgid "Open project from file" msgstr "" -#: js/StringHelper.js:34 +#: planet/js/StringHelper.js:34 msgid "Local" msgstr "" -#: js/StringHelper.js:35 +#: planet/js/StringHelper.js:35 msgid "Global" msgstr "" -#: js/StringHelper.js:36 +#: planet/js/StringHelper.js:36 msgid "Search for a project" msgstr "" -#: js/StringHelper.js:38 +#: planet/js/StringHelper.js:38 msgid "Publish Project" msgstr "" -#: js/StringHelper.js:40 +#: planet/js/StringHelper.js:40 msgid "Tags (max 5)" msgstr "" -#: js/StringHelper.js:41 -#: js/StringHelper.js:61 +#: planet/js/StringHelper.js:41 +#: planet/js/StringHelper.js:61 msgid "Description" msgstr "" -#: js/StringHelper.js:42 -#: js/StringHelper.js:67 +#: planet/js/StringHelper.js:42 +#: planet/js/StringHelper.js:67 msgid "Submit" msgstr "" -#: js/StringHelper.js:43 -#: js/StringHelper.js:47 +#: planet/js/StringHelper.js:43 +#: planet/js/StringHelper.js:47 msgid "Cancel" msgstr "" -#: js/StringHelper.js:44 +#: planet/js/StringHelper.js:44 msgid "Delete \\"\\"?" msgstr "" -#: js/StringHelper.js:45 +#: planet/js/StringHelper.js:45 msgid "Permanently delete project \\"\\"?" msgstr "" -#: js/StringHelper.js:48 +#: planet/js/StringHelper.js:48 msgid "Explore Projects" msgstr "" -#: js/StringHelper.js:50 +#: planet/js/StringHelper.js:49 +#: planet/js/helper.js:149 +msgid "Show more tags" +msgstr "" + +#: planet/js/StringHelper.js:50 msgid "Most recent" msgstr "" -#: js/StringHelper.js:51 +#: planet/js/StringHelper.js:51 msgid "Most liked" msgstr "" -#: js/StringHelper.js:52 +#: planet/js/StringHelper.js:52 msgid "Most downloaded" msgstr "" -#: js/StringHelper.js:53 +#: planet/js/StringHelper.js:53 msgid "A-Z" msgstr "" -#: js/StringHelper.js:54 +#: planet/js/StringHelper.js:54 msgid "Sort by" msgstr "" -#: js/StringHelper.js:55 +#: planet/js/StringHelper.js:55 msgid "Load More Projects" msgstr "" -#: js/StringHelper.js:56 +#: planet/js/StringHelper.js:56 msgid "Last Updated" msgstr "" -#: js/StringHelper.js:57 +#: planet/js/StringHelper.js:57 msgid "Creation Date" msgstr "" -#: js/StringHelper.js:58 +#: planet/js/StringHelper.js:58 msgid "Number of Downloads:" msgstr "" -#: js/StringHelper.js:59 +#: planet/js/StringHelper.js:59 msgid "Number of Likes:" msgstr "" -#: js/StringHelper.js:60 +#: planet/js/StringHelper.js:60 msgid "Tags:" msgstr "" -#: js/StringHelper.js:65 +#: planet/js/StringHelper.js:65 msgid "Report projects which violate the Sugar Labs Code of Conduct." msgstr "" -#: js/StringHelper.js:66 +#: planet/js/StringHelper.js:66 msgid "Reason for reporting project" msgstr "" -#: js/StringHelper.js:70 +#: planet/js/StringHelper.js:70 msgid "Download as File" msgstr "" -#: js/GlobalPlanet.js:35 -msgid "No results found." -msgstr "" - -#: js/GlobalPlanet.js:51 -msgid "Remix of" -msgstr "" - -#: js/GlobalPlanet.js:509 -msgid "Cannot connect to server" -msgstr "" - -#: js/Publisher.js:30 -msgid "Feature unavailable - cannot connect to server. Reload Music Blocks to try again." -msgstr "" - -#: js/Publisher.js:218 -#: js/Publisher.js:235 -msgid "This field is required" -msgstr "" - -#: js/Publisher.js:225 -msgid "Title too long" +#: planet/js/helper.js:150 +msgid "Show fewer tags" msgstr "" -#: js/Publisher.js:242 -msgid "Description too long" +#: plugins/accelerometer.rtp:48 +msgid "motion x" msgstr "" -#: js/Publisher.js:339 -msgid "Server Error" +#: plugins/accelerometer.rtp:56 +msgid "motion y" msgstr "" -#: js/Publisher.js:339 -msgid "Try Again" +#: plugins/accelerometer.rtp:64 +msgid "motion z" msgstr "" -#: js/SaveInterface.js:34 -msgid "Open in Music Blocks" +#: plugins/facebook.rtp:27 +msgid "publish" msgstr "" -#: js/SaveInterface.js:35 -msgid "Open in Turtle Blocks" +#: plugins/maths.rtp:62 +msgid "power" msgstr "" -#: plugins/weather.rtp:68 -#: plugins/weather.rtp:97 -msgid "Days ahead must be in the range of -1 to 5." +#: plugins/maths.rtp:62 +msgid "base" msgstr "" -#: plugins/weather.rtp:122 -msgid "forecast" +#: plugins/maths.rtp:62 +msgid "exp" msgstr "" -#: plugins/weather.rtp:123 -#: plugins/weather.rtp:137 -#: plugins/weather.rtp:150 -msgid "city" +#: plugins/maths.rtp:99 +msgid "floor" msgstr "" -#: plugins/weather.rtp:124 -#: plugins/weather.rtp:138 -#: plugins/weather.rtp:151 -msgid "day" +#: plugins/maths.rtp:104 +msgid "ceiling" msgstr "" -#: plugins/weather.rtp:136 -msgid "high" +#: plugins/maths.rtp:109 +msgid "to degrees" msgstr "" -#: plugins/weather.rtp:149 -msgid "low" +#: plugins/maths.rtp:114 +msgid "to radians" msgstr "" #: plugins/nutrition.rtp:104 @@ -9458,45 +9867,6 @@ msgstr "" msgid "water" msgstr "" -#: plugins/maths.rtp:62 -#: plugins/examples.rtp:93 -msgid "power" -msgstr "" - -#: plugins/maths.rtp:62 -#: plugins/examples.rtp:93 -msgid "base" -msgstr "" - -#: plugins/maths.rtp:62 -#: plugins/examples.rtp:93 -msgid "exp" -msgstr "" - -#: plugins/maths.rtp:99 -#: plugins/examples.rtp:130 -msgid "floor" -msgstr "" - -#: plugins/maths.rtp:104 -#: plugins/examples.rtp:135 -msgid "ceiling" -msgstr "" - -#: plugins/maths.rtp:109 -#: plugins/examples.rtp:140 -msgid "to degrees" -msgstr "" - -#: plugins/maths.rtp:114 -#: plugins/examples.rtp:145 -msgid "to radians" -msgstr "" - -#: plugins/facebook.rtp:27 -msgid "publish" -msgstr "" - #: plugins/rodi.rtp:172 msgid "blink" msgstr "" @@ -9525,18 +9895,66 @@ msgstr "" msgid "move" msgstr "" -#: plugins/accelerometer.rtp:48 -msgid "motion x" +#: plugins/weather.rtp:68 +#: plugins/weather.rtp:97 +msgid "Days ahead must be in the range of -1 to 5." msgstr "" -#: plugins/accelerometer.rtp:56 -msgid "motion y" +#: plugins/weather.rtp:122 +msgid "forecast" msgstr "" -#: plugins/accelerometer.rtp:64 -msgid "motion z" +#: plugins/weather.rtp:123 +#: plugins/weather.rtp:137 +#: plugins/weather.rtp:150 +msgid "city" +msgstr "" + +#: plugins/weather.rtp:124 +#: plugins/weather.rtp:138 +#: plugins/weather.rtp:151 +msgid "day" +msgstr "" + +#: plugins/weather.rtp:136 +msgid "high" +msgstr "" + +#: plugins/weather.rtp:149 +msgid "low" msgstr "" +#: js/toolbar.js:70 + +#: js/toolbar.js:130 + +#: js/toolbar.js:194 + +#: js/toolbar.js:249 + +#~msgid "Toggle JavaScript Editor" +#~msgstr "" + +#: js/EnsembleBlocks.js:643 + +#~msgid "The Turrle pitch block returns the current pitch number being played by the specified turtle." +#~msgstr "" + +#: js/PitchActions.js:88 + +#~msgid "The Scalar Step Block must be used inside of a Note Block." +#~msgstr "" + +#: js/PitchActions.js:107 + +#~msgid "The Scalar Step Block must be preceded by a Pitch Block." +#~msgstr "" + +#: js/musickeyboard.js:2840 + +#~msgid "New action blocks generated!" +#~msgstr "" + #: js/toolbar.js:110 #: js/toolbar.js:204 @@ -9877,11 +10295,6 @@ msgstr "" #~msgid "The Time block returns the number of seconds that the program has been running." #~msgstr "" -#: js/help.js:95 - -#~msgid "Take a tour" -#~msgstr "" - #: js/GlobalCard.js:48 #~msgid "More Details" @@ -12780,11 +13193,6 @@ msgstr "" #~msgid "The save-stack button saves a stack onto a custom palette. It appears after a \"long press\" on a stack." #~msgstr "" -#: js/musicutils.js:254 - -#~msgid "Custom" -#~msgstr "" - #: js/basicblocks.js:4785 #~msgid "Rhythm" diff --git a/po/it.po b/po/it.po index e6d94ba47f..78458ec681 100644 --- a/po/it.po +++ b/po/it.po @@ -2129,277 +2129,132 @@ #: js/planetInterface.js:104 #: js/planetInterface.js:104 #: js/planetInterface.js:104 -msgid "project undefined" -msgstr "" - -#: js/logo.js:61 -msgid "Not a valid pitch name" -msgstr "" - -#: js/logo.js:507 -#: js/ProgramBlocks.js:258 -#: js/ProgramBlocks.js:427 -msgid "You must select a file." -msgstr "" +#: js/SaveInterface.js:59 +#: js/SaveInterface.js:61 +#: js/SaveInterface.js:93 +msgid "Music Blocks Project" +msgstr "Progetto Music Blocks" -#: js/logo.js:1184 -#: js/turtles.js:118 -#: js/turtle-painter.js:1192 -#: js/turtle-painter.js:1193 -#: js/block.js:1463 -#: js/lilypond.js:757 -#: js/lilypond.js:921 -#: js/lilypond.js:959 -#: js/ActionBlocks.js:1223 -#: js/ProgramBlocks.js:1267 -msgid "start" -msgstr "inizio" +#: js/SaveInterface.js:63 +msgid "This project was created in Music Blocks" +msgstr "Questo progetto è stato creato con Music Blocks" -#: js/logo.js:1696 -msgid "Playback is ready." +#: js/SaveInterface.js:67 +msgid "Music Blocks is a Free/Libre Software application." msgstr "" -#: js/blocks.js:1011 -#: js/blocks.js:3427 -#: js/blocks.js:3428 -#: js/blocks.js:3653 -#: js/blocks.js:4012 -#: js/blocks.js:4205 -#: js/blocks.js:5343 -#: js/blocks.js:6474 -#: js/palette.js:527 -#: js/palette.js:536 -#: js/palette.js:545 -#: js/palette.js:554 -#: js/palette.js:1131 -#: js/palette.js:1142 -#: js/palette.js:1153 -#: js/palette.js:1164 -#: js/palette.js:1183 -#: js/rubrics.js:529 -#: js/macros.js:170 -#: js/macros.js:266 -#: js/macros.js:267 -#: js/macros.js:276 -#: js/macros.js:828 -#: js/block.js:1449 -#: js/block.js:4164 -#: js/block.js:4182 -#: js/block.js:4193 -#: js/turtledefs.js:128 -#: js/turtledefs.js:230 -#: js/ActionBlocks.js:254 -#: js/ActionBlocks.js:307 -#: js/ActionBlocks.js:617 -#: js/ActionBlocks.js:716 -#: js/ActionBlocks.js:961 -#: js/ActionBlocks.js:1049 -#: js/ActionBlocks.js:1322 -#: js/ActionBlocks.js:1325 -#: js/ActionBlocks.js:1337 -#: js/ActionBlocks.js:1404 -#: js/MeterBlocks.js:715 -#: js/MeterBlocks.js:768 -#: js/MeterBlocks.js:831 -#: js/MeterBlocks.js:892 -#: js/phrasemaker.js:4412 -#: js/musickeyboard.js:2647 -#: js/rhythmruler.js:1928 -#: js/rhythmruler.js:1935 -#: js/rhythmruler.js:2119 -#: js/rhythmruler.js:2126 -msgid "action" -msgstr "azione" - -#: js/blocks.js:1205 -#: js/blocks.js:3380 -#: js/blocks.js:3770 -#: js/blocks.js:3801 -#: js/blocks.js:3850 -#: js/blocks.js:3885 -#: js/blocks.js:6497 -#: js/palette.js:509 -#: js/palette.js:638 -#: js/palette.js:1107 -#: js/BoxesBlocks.js:282 -#: js/BoxesBlocks.js:285 -#: js/BoxesBlocks.js:405 -#: js/BoxesBlocks.js:594 -msgid "box" -msgstr "scatola" +#: js/SaveInterface.js:69 +msgid "The source code can be accessed at" +msgstr "Il codice sorgente è accessibile a" -#: js/blocks.js:1680 -msgid "Consider breaking this stack into parts." -msgstr "" +#: js/SaveInterface.js:72 +msgid "For more information, please consult the" +msgstr "Per altre informazioni, consulta il" -#: js/blocks.js:2408 -#: js/palette.js:653 -#: js/MediaBlocks.js:602 -msgid "open file" -msgstr "aprire file" +#: js/SaveInterface.js:76 +#: js/turtledefs.js:795 +msgid "Music Blocks Guide" +msgstr "Music Blocks Guida" -#: js/blocks.js:2415 -#: js/blocks.js:2423 -#: js/activity.js:1875 -msgid "audio file" +#: js/SaveInterface.js:83 +msgid "Alternatively, open the file in Music Blocks using the Load project button." msgstr "" -#: js/blocks.js:2536 -#: js/blocks.js:3147 -#: js/block.js:3543 -msgid "on2" +#: js/SaveInterface.js:85 +msgid "Project Code" msgstr "" -#: js/blocks.js:2538 -#: js/blocks.js:3149 -#: js/block.js:3545 -msgid "off" +#: js/SaveInterface.js:87 +msgid "This code stores data about the blocks in a project." msgstr "" -#: js/blocks.js:2543 -#: js/blocks.js:3154 -#: js/palette.js:618 -#: js/block.js:3466 -#: js/BooleanBlocks.js:77 -#: js/BooleanBlocks.js:167 -#: js/BooleanBlocks.js:251 -#: js/BooleanBlocks.js:335 -#: js/BooleanBlocks.js:433 -#: js/BooleanBlocks.js:539 -#: js/BooleanBlocks.js:640 -#: js/BooleanBlocks.js:741 -#: js/BooleanBlocks.js:847 -#: js/BooleanBlocks.js:948 -#: js/BooleanBlocks.js:1033 -#: js/SensorsBlocks.js:910 -msgid "true" -msgstr "vero" - -#: js/blocks.js:2545 -#: js/blocks.js:3156 -#: js/block.js:3466 -#: js/BooleanBlocks.js:79 -#: js/BooleanBlocks.js:169 -#: js/BooleanBlocks.js:253 -#: js/BooleanBlocks.js:337 -#: js/BooleanBlocks.js:435 -#: js/BooleanBlocks.js:541 -#: js/BooleanBlocks.js:642 -#: js/BooleanBlocks.js:743 -#: js/BooleanBlocks.js:849 -#: js/BooleanBlocks.js:950 -#: js/SensorsBlocks.js:912 -msgid "false" -msgstr "falso" - -#: js/blocks.js:3183 -#: js/palette.js:574 -#: js/MediaBlocks.js:892 -#: js/MediaBlocks.js:963 -msgid "text" -msgstr "testo" - -#: js/blocks.js:3379 -#: js/palette.js:641 -#: js/palette.js:642 -#: js/BoxesBlocks.js:514 -msgid "store in box" -msgstr "" +#: js/SaveInterface.js:89 +msgid "Show" +msgstr "Mostra" -#: js/blocks.js:3384 -#: js/blocks.js:3824 -#: js/blocks.js:3859 -#: js/blocks.js:3894 -#: js/blocks.js:5773 -#: js/blocks.js:5794 -#: js/BoxesBlocks.js:772 -msgid "box1" -msgstr "" +#: js/SaveInterface.js:91 +msgid "Hide" +msgstr "Nascondi" -#: js/blocks.js:3386 -#: js/blocks.js:3826 -#: js/blocks.js:3861 -#: js/blocks.js:3896 -#: js/blocks.js:5775 -#: js/blocks.js:5796 -#: js/BoxesBlocks.js:663 -msgid "box2" -msgstr "" +#: js/SaveInterface.js:131 +#: js/SaveInterface.js:204 +#: js/SaveInterface.js:262 +#: js/SaveInterface.js:389 +#: js/SaveInterface.js:417 +#: js/activity.js:4884 +#: planet/js/ProjectStorage.js:27 +#: planet/js/GlobalPlanet.js:467 +#: planet/js/GlobalPlanet.js:469 +#: planet/js/GlobalPlanet.js:495 +#.TRANS: default project title when saving as Lilypond +msgid "My Project" +msgstr "Mio Progetto" -#: js/blocks.js:4058 -#: js/palette.js:639 -#: js/palette.js:644 -#: js/palette.js:1043 -#: js/BoxesBlocks.js:591 -msgid "store in" -msgstr "memorizzare in" +#: js/SaveInterface.js:197 +#: planet/js/SaveInterface.js:58 +msgid "No description provided" +msgstr "Nessuna descrizione fornita" -#: js/blocks.js:4058 -#: js/EnsembleBlocks.js:391 -#: js/EnsembleBlocks.js:402 -#: js/MediaBlocks.js:746 -#: js/ProgramBlocks.js:390 -#: js/ProgramBlocks.js:495 -#: js/ProgramBlocks.js:658 -#: js/BoxesBlocks.js:595 -#: js/PitchBlocks.js:656 -#: js/PitchBlocks.js:932 -#: js/PitchBlocks.js:1827 -#: js/ToneBlocks.js:1025 -#: js/DictBlocks.js:215 -#: js/DictBlocks.js:289 -msgid "name" -msgstr "nome" +#: js/SaveInterface.js:332 +msgid "Your recording is in progress." +msgstr "La registrazione è in corso" -#: js/blocks.js:4058 -#: js/RhythmBlocks.js:1130 -#: js/BoxesBlocks.js:75 -#: js/BoxesBlocks.js:595 -#: js/HeapBlocks.js:544 -#: js/DictBlocks.js:289 -#: js/DictBlocks.js:430 -msgid "value" -msgstr "valore" +#: js/SaveInterface.js:401 +#.TRANS: File name prompt for save as Lilypond +msgid "File name" +msgstr "Nome del file" -#: js/blocks.js:4907 -msgid "There is no block selected." -msgstr "Nessun blocco selezionato" +#: js/SaveInterface.js:403 +#: planet/js/StringHelper.js:39 +#.TRANS: Project title prompt for save as Lilypond +msgid "Project title" +msgstr "Titolo del progetto" -#: js/blocks.js:5002 -#: js/MediaBlocks.js:888 -msgid "show" -msgstr "mostrare" +#: js/SaveInterface.js:405 +#.TRANS: Project title prompt for save as Lilypond +msgid "Project author" +msgstr "Autore del progetto" -#: js/blocks.js:5005 -#: js/MediaBlocks.js:803 -#.TRANS: Avatar is the image used to determine the appearance of the mouse. -msgid "avatar" +#: js/SaveInterface.js:407 +#.TRANS: MIDI prompt for save as Lilypond +msgid "Include MIDI output?" msgstr "" -#: js/blocks.js:5008 -#: js/ToneBlocks.js:1010 -#: js/sampler.js:693 -#.TRANS: The sound sample that the user uploads. -msgid "sample" -msgstr "Campione" - -#: js/turtles.js:874 -msgid "Grid" -msgstr "Griglia" +#: js/SaveInterface.js:409 +#.TRANS: Guitar prompt for save as Lilypond +msgid "Include guitar tablature output?" +msgstr "" -#: js/turtles.js:891 -#: js/turtledefs.js:626 -msgid "Clean" -msgstr "Pulire" +#: js/SaveInterface.js:411 +#.TRANS: Lilypond is a scripting language for generating sheet music +msgid "Save as Lilypond" +msgstr "Salva come Lilypond" -#: js/turtles.js:912 -#: js/turtledefs.js:632 -msgid "Collapse" -msgstr "Collassa" +#: js/SaveInterface.js:426 +#: js/blocks/EnsembleBlocks.js:75 +#: js/blocks/EnsembleBlocks.js:154 +#: js/blocks/EnsembleBlocks.js:216 +#: js/blocks/EnsembleBlocks.js:302 +#: js/blocks/EnsembleBlocks.js:348 +#: js/blocks/EnsembleBlocks.js:389 +#: js/blocks/EnsembleBlocks.js:441 +#: js/blocks/EnsembleBlocks.js:490 +#: js/blocks/EnsembleBlocks.js:536 +#: js/blocks/EnsembleBlocks.js:583 +#: js/blocks/EnsembleBlocks.js:637 +#: js/blocks/EnsembleBlocks.js:753 +#: js/blocks/EnsembleBlocks.js:840 +#: js/blocks/EnsembleBlocks.js:899 +#: js/blocks/EnsembleBlocks.js:942 +#: js/blocks/EnsembleBlocks.js:1212 +#: js/blocks/EnsembleBlocks.js:1280 +#.TRANS: default project author when saving as Lilypond +msgid "Mr. Mouse" +msgstr "Mr. Mouse" -#: js/turtles.js:940 -msgid "Expand" -msgstr "Espandi" +#: js/SaveInterface.js:573 +msgid "The Lilypond code is copied to clipboard. You can paste it here: " +msgstr "Il codice Lilypond è stato copiato negli appunti. Puoi copiarlo qui: " #: js/languagebox.js:198 msgid "Refresh your browser to change your language preference." @@ -2409,6934 +2264,7488 @@ msgstr "Ricarica il tuo browser per cambiare le preferenze di lingua." msgid "Music Blocks is already set to this language." msgstr "Music Blocks è già impostato su questa lingua." -#: js/piemenus.js:200 -#: js/musicutils.js:808 -#: js/musicutils.js:824 -#: js/phrasemaker.js:1672 -#: js/musickeyboard.js:2041 -#: js/sampler.js:544 -#.TRANS: double sharp is a music term related to pitch -msgid "double sharp" -msgstr "doppio diesis" - -#: js/piemenus.js:201 -#: js/PitchBlocks.js:1510 -#: js/PitchActions.js:580 -#: js/musicutils.js:806 -#: js/musicutils.js:825 -#: js/phrasemaker.js:1673 -#: js/musickeyboard.js:2042 -#: js/sampler.js:545 -#.TRANS: sharp is a half-step up in pitch -#.TRANS: sharp is a music term related to pitch -msgid "sharp" -msgstr "diesis" - -#: js/piemenus.js:202 -#: js/musicutils.js:804 -#: js/musicutils.js:826 -#: js/phrasemaker.js:1674 -#: js/musickeyboard.js:2043 -#: js/sampler.js:546 -#.TRANS: natural is a music term related to pitch -msgid "natural" -msgstr "naturale" - -#: js/piemenus.js:203 -#: js/PitchBlocks.js:1469 -#: js/PitchActions.js:583 -#: js/musicutils.js:802 -#: js/musicutils.js:827 -#: js/phrasemaker.js:1675 -#: js/musickeyboard.js:2044 -#: js/sampler.js:547 -#.TRANS: flat is a half-step down in pitch -#.TRANS: flat is a music term related to pitch -msgid "flat" -msgstr "bemolle" - -#: js/piemenus.js:204 -#: js/musicutils.js:800 -#: js/musicutils.js:828 -#: js/phrasemaker.js:1676 -#: js/musickeyboard.js:2045 -#: js/sampler.js:548 -#.TRANS: double flat is a music term related to pitch -msgid "double flat" -msgstr "doppio bemolle" - -#: js/piemenus.js:2861 -#: js/PitchBlocks.js:1357 -#: js/musicutils.js:627 -#.TRANS: unison means the note is the same as the current note -#.TRANS: unison is a music term related to intervals -msgid "unison" +#: js/planetInterface.js:131 +msgid "project undefined" msgstr "" -#: js/piemenus.js:3015 -#: js/piemenus.js:3088 -#: js/musicutils.js:635 -#: js/musicutils.js:810 -#: js/musicutils.js:912 -#.TRANS: major is a music term related to intervals and mode -msgid "major" -msgstr "maggiore" +#: js/rubrics.js:523 +#: js/turtledefs.js:119 +#: js/turtledefs.js:221 +#: js/blocks/RhythmBlockPaletteBlocks.js:52 +#: js/blocks/RhythmBlockPaletteBlocks.js:234 +#: js/blocks/ProgramBlocks.js:745 +#: js/widgets/rhythmruler.js:2057 +#: js/widgets/rhythmruler.js:2064 +#: js/widgets/rhythmruler.js:2133 +#: js/widgets/rhythmruler.js:2140 +#: js/widgets/rhythmruler.js:2219 +#.TRANS: an arrangement of notes based on duration +msgid "rhythm" +msgstr "ritmo" -#: js/piemenus.js:3015 -#: js/piemenus.js:3088 -#: js/musicutils.js:653 -#.TRANS: modal scale for music -msgid "ionian" -msgstr "ionica" +#: js/rubrics.js:524 +#: js/turtledefs.js:121 +#: js/turtledefs.js:223 +#: js/block-verbose.js:2622 +#: js/block.js:2550 +#: js/blocks/IntervalsBlocks.js:63 +#: js/blocks/SensorsBlocks.js:178 +#: js/blocks/PitchBlocks.js:1839 +#: js/blocks/PitchBlocks.js:1853 +#: js/widgets/musickeyboard.js:1935 +#: js/widgets/phrasemaker.js:1036 +#.TRANS: pitch number +#.TRANS: pitch number +#.TRANS: we specify pitch in terms of a name and an octave. The name can be CDEFGAB or Do Re Mi Fa Sol La Ti. Octave is a number between 1 and 8. +msgid "pitch" +msgstr "" -#: js/piemenus.js:3017 -#: js/piemenus.js:3092 -#: js/musicutils.js:633 -#: js/musicutils.js:811 -#: js/musicutils.js:909 -#.TRANS: minor is a music term related to intervals and mode -msgid "minor" -msgstr "minore" +#: js/rubrics.js:525 +#: js/turtledefs.js:123 +#: js/turtledefs.js:225 +msgid "tone" +msgstr "tono" -#: js/piemenus.js:3017 -#: js/piemenus.js:3092 -#: js/musicutils.js:663 -#.TRANS: modal scale for music -msgid "aeolian" -msgstr "eolica" +#: js/rubrics.js:526 +#: js/lilypond.js:605 +#: js/lilypond.js:904 +#: js/lilypond.js:910 +#: js/lilypond.js:948 +msgid "mouse" +msgstr "" -#: js/piemenus.js:3407 -msgid "Duplicate" -msgstr "Duplica" +#: js/rubrics.js:527 +#: js/turtledefs.js:132 +#: js/turtledefs.js:234 +#: js/widgets/phrasemaker.js:1040 +msgid "pen" +msgstr "penna" -#: js/piemenus.js:3408 -#: js/turtledefs.js:534 -msgid "Extract" -msgstr "Estrai" +#: js/rubrics.js:528 +#: js/turtledefs.js:133 +#: js/turtledefs.js:235 +#: js/blocks/NumberBlocks.js:981 +#: js/blocks/PitchBlocks.js:1717 +#: js/blocks/PitchBlocks.js:1758 +msgid "number" +msgstr "numero" -#: js/piemenus.js:3409 -msgid "Move to trash" -msgstr "Sposta nel cestino" - -#: js/piemenus.js:3410 -#: js/timbre.js:968 -#: js/StringHelper.js:69 -msgid "Close" -msgstr "Chiudi" - -#: js/piemenus.js:3416 -msgid "Save stack" -msgstr "Salva pila" - -#: js/piemenus.js:3420 -#: js/toolbar.js:60 -#: js/toolbar.js:120 -#: js/toolbar.js:185 -#: js/toolbar.js:240 -#: js/turtledefs.js:752 -msgid "Help" -msgstr "Aiuto" - -#: js/piemenus.js:3762 -msgid "You have chosen key " -msgstr "" - -#: js/piemenus.js:3766 -msgid " for your pitch preview." -msgstr "" - -#: js/palette.js:571 -msgid "grid" -msgstr "Griglia" - -#: js/palette.js:577 -#: js/block.js:1540 -#: js/block.js:2343 -#: js/turtledefs.js:126 -#: js/turtledefs.js:228 -#: js/lilypond.js:740 -#: js/lilypond.js:905 -#: js/lilypond.js:949 -#: js/DrumBlocks.js:486 -#: js/RhythmBlocks.js:766 -#: js/VolumeBlocks.js:502 -#: js/phrasemaker.js:823 -msgid "drum" -msgstr "batteria" - -#: js/palette.js:580 -msgid "effect" -msgstr "effetto" - -#: js/palette.js:586 -msgid "sargam" -msgstr "sargam" - -#: js/palette.js:589 -#: js/activity.js:1833 -#: js/RhythmBlocks.js:923 -#: js/PitchBlocks.js:442 -#: js/PitchBlocks.js:1748 -#.TRANS: a numeric mapping of the notes in an octave based on the musical mode -msgid "scale degree" -msgstr "" - -#: js/palette.js:592 -#: js/activity.js:1860 -msgid "mode name" -msgstr "" - -#: js/palette.js:595 -#: js/activity.js:1839 -msgid "invert mode" -msgstr "" - -#: js/palette.js:598 -#: js/activity.js:1836 -msgid "voice name" -msgstr "" - -#: js/palette.js:601 -#: js/PitchBlocks.js:1181 -msgid "custom pitch" -msgstr "" - -#: js/palette.js:605 -#: js/block.js:1456 -#: js/block.js:1575 -#: js/WidgetBlocks.js:218 -#: js/IntervalsBlocks.js:63 -msgid "temperament" -msgstr "" - -#: js/palette.js:609 -msgid "accidental" -msgstr "" - -#: js/palette.js:615 -#: js/activity.js:1866 -msgid "interval name" -msgstr "" - -#: js/palette.js:633 -#: js/PitchBlocks.js:405 -msgid "pitch converter" -msgstr "convertitore di tonalità" - -#: js/rubrics.js:522 -#: js/turtledefs.js:119 -#: js/turtledefs.js:221 -#: js/RhythmBlockPaletteBlocks.js:52 -#: js/RhythmBlockPaletteBlocks.js:233 -#: js/ProgramBlocks.js:745 -#: js/rhythmruler.js:1670 -#: js/rhythmruler.js:1677 -#: js/rhythmruler.js:1745 -#: js/rhythmruler.js:1752 -#: js/rhythmruler.js:1830 -#.TRANS: an arrangement of notes based on duration -msgid "rhythm" -msgstr "ritmo" - -#: js/rubrics.js:523 -#: js/block.js:2339 -#: js/turtledefs.js:121 -#: js/turtledefs.js:223 -#: js/IntervalsBlocks.js:63 -#: js/PitchBlocks.js:1801 -#: js/PitchBlocks.js:1814 -#: js/SensorsBlocks.js:178 -#: js/phrasemaker.js:821 -#: js/musickeyboard.js:1653 -#.TRANS: pitch number -#.TRANS: we specify pitch in terms of a name and an octave. The name can be CDEFGAB or Do Re Mi Fa Sol La Ti. Octave is a number between 1 and 8. -msgid "pitch" -msgstr "" - -#: js/rubrics.js:524 -#: js/turtledefs.js:123 -#: js/turtledefs.js:225 -msgid "tone" -msgstr "tono" - -#: js/rubrics.js:525 -#: js/lilypond.js:613 -#: js/lilypond.js:912 -#: js/lilypond.js:918 -#: js/lilypond.js:956 -msgid "mouse" -msgstr "" - -#: js/rubrics.js:526 -#: js/turtledefs.js:132 -#: js/turtledefs.js:234 -#: js/phrasemaker.js:825 -msgid "pen" -msgstr "penna" - -#: js/rubrics.js:527 -#: js/turtledefs.js:133 -#: js/turtledefs.js:235 -#: js/NumberBlocks.js:905 -#: js/PitchBlocks.js:1679 -#: js/PitchBlocks.js:1720 -msgid "number" -msgstr "numero" - -#: js/rubrics.js:528 -#: js/turtledefs.js:127 -#: js/turtledefs.js:229 -msgid "flow" -msgstr "flusso" +#: js/rubrics.js:529 +#: js/turtledefs.js:127 +#: js/turtledefs.js:229 +msgid "flow" +msgstr "flusso" #: js/rubrics.js:530 +#: js/turtledefs.js:128 +#: js/turtledefs.js:230 +#: js/block-verbose.js:1609 +#: js/block-verbose.js:4559 +#: js/block-verbose.js:4577 +#: js/block-verbose.js:4588 +#: js/block.js:1573 +#: js/block.js:4483 +#: js/block.js:4501 +#: js/block.js:4512 +#: js/blocks.js:1018 +#: js/blocks.js:3491 +#: js/blocks.js:3492 +#: js/blocks.js:3717 +#: js/blocks.js:4076 +#: js/blocks.js:4269 +#: js/blocks.js:5432 +#: js/blocks.js:6563 +#: js/macros.js:170 +#: js/macros.js:266 +#: js/macros.js:267 +#: js/macros.js:276 +#: js/macros.js:828 +#: js/palette.js:527 +#: js/palette.js:536 +#: js/palette.js:545 +#: js/palette.js:554 +#: js/palette.js:1129 +#: js/palette.js:1140 +#: js/palette.js:1151 +#: js/palette.js:1162 +#: js/palette.js:1181 +#: js/blocks/ActionBlocks.js:254 +#: js/blocks/ActionBlocks.js:307 +#: js/blocks/ActionBlocks.js:617 +#: js/blocks/ActionBlocks.js:716 +#: js/blocks/ActionBlocks.js:961 +#: js/blocks/ActionBlocks.js:1049 +#: js/blocks/ActionBlocks.js:1322 +#: js/blocks/ActionBlocks.js:1325 +#: js/blocks/ActionBlocks.js:1337 +#: js/blocks/ActionBlocks.js:1404 +#: js/blocks/MeterBlocks.js:715 +#: js/blocks/MeterBlocks.js:768 +#: js/blocks/MeterBlocks.js:831 +#: js/blocks/MeterBlocks.js:892 +#: js/widgets/musickeyboard.js:2986 +#: js/widgets/phrasemaker.js:4913 +#: js/widgets/rhythmruler.js:2319 +#: js/widgets/rhythmruler.js:2326 +#: js/widgets/rhythmruler.js:2511 +#: js/widgets/rhythmruler.js:2518 +msgid "action" +msgstr "azione" + +#: js/rubrics.js:531 #: js/turtledefs.js:136 #: js/turtledefs.js:238 msgid "sensors" msgstr "sensori" -#: js/rubrics.js:531 +#: js/rubrics.js:532 #: js/turtledefs.js:135 #: js/turtledefs.js:237 -#: js/MediaBlocks.js:930 +#: js/blocks/MediaBlocks.js:930 msgid "media" msgstr "mezzi" -#: js/rubrics.js:532 +#: js/rubrics.js:533 msgid "mice" msgstr "topi" -#: js/macros.js:711 -#: js/musicutils.js:783 -#: js/synthutils.js:181 -#.TRANS: animal sound effect -msgid "duck" -msgstr "" - -#: js/toolbar.js:46 -#: js/toolbar.js:107 +#: js/toolbar.js:48 +#: js/toolbar.js:109 msgid "About Music Blocks" msgstr "Informazioni su Music Blocks" -#: js/toolbar.js:47 -#: js/toolbar.js:108 -#: js/toolbar.js:172 -#: js/toolbar.js:228 +#: js/toolbar.js:49 +#: js/toolbar.js:110 +#: js/toolbar.js:175 +#: js/toolbar.js:231 #: js/turtledefs.js:445 #: js/turtledefs.js:482 -#: js/activity.js:2281 -#: js/activity.js:2289 -#: js/activity.js:2520 -#: js/modewidget.js:77 -#: js/pitchstaircase.js:121 -#: js/phrasemaker.js:302 -#: js/phrasemaker.js:312 -#: js/phrasemaker.js:314 -#: js/phrasemaker.js:3901 -#: js/phrasemaker.js:4061 -#: js/phrasemaker.js:4066 -#: js/phrasemaker.js:4068 -#: js/phrasemaker.js:4183 -#: js/pitchdrummatrix.js:81 -#: js/pitchdrummatrix.js:574 -#: js/pitchdrummatrix.js:576 -#: js/pitchdrummatrix.js:628 -#: js/pitchdrummatrix.js:630 -#: js/pitchdrummatrix.js:645 -#: js/pitchdrummatrix.js:647 -#: js/pitchdrummatrix.js:674 -#: js/pitchdrummatrix.js:676 -#: js/temperament.js:477 -#: js/temperament.js:480 -#: js/temperament.js:540 -#: js/temperament.js:542 -#: js/temperament.js:1835 -#: js/temperament.js:1837 -#: js/temperament.js:1986 -#: js/temperament.js:1988 -#: js/musickeyboard.js:522 -#: js/musickeyboard.js:682 -#: js/musickeyboard.js:684 -#: js/musickeyboard.js:756 -#: js/musickeyboard.js:758 -#: js/rhythmruler.js:298 -#: js/rhythmruler.js:300 -#: js/rhythmruler.js:314 -#: js/rhythmruler.js:316 -#: js/sampler.js:96 -#: js/sampler.js:98 -#: js/sampler.js:229 -#: js/sampler.js:235 -#: js/sampler.js:237 -#: js/tempo.js:84 -#: js/tempo.js:86 -#: js/timbre.js:432 -#: js/timbre.js:434 -#: js/timbre.js:465 -#: js/timbre.js:467 -#: js/timbre.js:746 -#: js/meterwidget.js:80 -#: js/arpeggio.js:90 -#: js/arpeggio.js:547 -#: js/arpeggio.js:549 -#: js/arpeggio.js:644 -#: js/arpeggio.js:646 +#: js/activity.js:2660 +#: js/activity.js:2671 +#: js/activity.js:2902 +#: js/widgets/modewidget.js:77 +#: js/widgets/meterwidget.js:185 +#: js/widgets/pitchdrummatrix.js:147 +#: js/widgets/pitchdrummatrix.js:687 +#: js/widgets/pitchdrummatrix.js:689 +#: js/widgets/pitchdrummatrix.js:741 +#: js/widgets/pitchdrummatrix.js:743 +#: js/widgets/pitchdrummatrix.js:758 +#: js/widgets/pitchdrummatrix.js:760 +#: js/widgets/pitchdrummatrix.js:789 +#: js/widgets/pitchdrummatrix.js:791 +#: js/widgets/pitchstaircase.js:121 +#: js/widgets/temperament.js:610 +#: js/widgets/temperament.js:613 +#: js/widgets/temperament.js:673 +#: js/widgets/temperament.js:675 +#: js/widgets/temperament.js:2017 +#: js/widgets/temperament.js:2019 +#: js/widgets/tempo.js:84 +#: js/widgets/tempo.js:86 +#: js/widgets/timbre.js:432 +#: js/widgets/timbre.js:434 +#: js/widgets/timbre.js:465 +#: js/widgets/timbre.js:467 +#: js/widgets/timbre.js:746 +#: js/widgets/aiwidget.js:647 +#: js/widgets/aiwidget.js:654 +#: js/widgets/aiwidget.js:656 +#: js/widgets/arpeggio.js:90 +#: js/widgets/arpeggio.js:547 +#: js/widgets/arpeggio.js:549 +#: js/widgets/arpeggio.js:644 +#: js/widgets/arpeggio.js:646 +#: js/widgets/musickeyboard.js:676 +#: js/widgets/musickeyboard.js:872 +#: js/widgets/musickeyboard.js:874 +#: js/widgets/musickeyboard.js:953 +#: js/widgets/musickeyboard.js:955 +#: js/widgets/phrasemaker.js:513 +#: js/widgets/phrasemaker.js:523 +#: js/widgets/phrasemaker.js:525 +#: js/widgets/phrasemaker.js:4304 +#: js/widgets/phrasemaker.js:4528 +#: js/widgets/phrasemaker.js:4533 +#: js/widgets/phrasemaker.js:4535 +#: js/widgets/phrasemaker.js:4650 +#: js/widgets/rhythmruler.js:637 +#: js/widgets/rhythmruler.js:639 +#: js/widgets/rhythmruler.js:653 +#: js/widgets/rhythmruler.js:655 +#: js/widgets/sampler.js:162 +#: js/widgets/sampler.js:164 +#: js/widgets/sampler.js:363 msgid "Play" msgstr "Suona" -#: js/toolbar.js:48 -#: js/toolbar.js:109 -#: js/toolbar.js:173 -#: js/toolbar.js:229 +#: js/toolbar.js:50 +#: js/toolbar.js:111 +#: js/toolbar.js:176 +#: js/toolbar.js:232 #: js/turtledefs.js:451 #: js/turtledefs.js:488 -#: js/activity.js:2297 -#: js/modewidget.js:99 -#: js/modewidget.js:101 -#: js/phrasemaker.js:323 -#: js/phrasemaker.js:325 -#: js/pitchdrummatrix.js:561 -#: js/pitchdrummatrix.js:563 -#: js/temperament.js:1820 -#: js/temperament.js:1822 -#: js/meterwidget.js:101 -#: js/meterwidget.js:103 -#: js/arpeggio.js:534 -#: js/arpeggio.js:536 +#: js/activity.js:2679 +#: js/widgets/modewidget.js:99 +#: js/widgets/modewidget.js:101 +#: js/widgets/meterwidget.js:206 +#: js/widgets/meterwidget.js:208 +#: js/widgets/pitchdrummatrix.js:674 +#: js/widgets/pitchdrummatrix.js:676 +#: js/widgets/temperament.js:2002 +#: js/widgets/temperament.js:2004 +#: js/widgets/arpeggio.js:534 +#: js/widgets/arpeggio.js:536 +#: js/widgets/phrasemaker.js:534 +#: js/widgets/phrasemaker.js:536 msgid "Stop" msgstr "Interrompere" -#: js/toolbar.js:49 -#: js/toolbar.js:110 -#: js/toolbar.js:174 -#: js/toolbar.js:230 +#: js/toolbar.js:51 +#: js/toolbar.js:112 +#: js/toolbar.js:177 +#: js/toolbar.js:233 #: js/turtledefs.js:498 msgid "Record" msgstr "Registra" -#: js/toolbar.js:50 -#: js/toolbar.js:51 +#: js/toolbar.js:52 +#: js/toolbar.js:53 msgid "Full screen" msgstr "Schermo intero" -#: js/toolbar.js:52 -#: js/toolbar.js:112 -#: js/toolbar.js:177 -#: js/toolbar.js:232 +#: js/toolbar.js:54 +#: js/toolbar.js:115 +#: js/toolbar.js:180 +#: js/toolbar.js:236 #: js/turtledefs.js:504 msgid "Toggle Fullscreen" msgstr "Attiva/Disattiva schermo intero" -#: js/toolbar.js:53 -#: js/toolbar.js:113 -#: js/toolbar.js:178 -#: js/toolbar.js:233 +#: js/toolbar.js:55 +#: js/toolbar.js:116 +#: js/toolbar.js:181 +#: js/toolbar.js:237 #: js/turtledefs.js:510 -#: js/StringHelper.js:33 +#: planet/js/StringHelper.js:33 msgid "New project" msgstr "Nuovo progetto" -#: js/toolbar.js:54 -#: js/toolbar.js:114 -#: js/toolbar.js:179 -#: js/toolbar.js:234 +#: js/toolbar.js:56 +#: js/toolbar.js:117 +#: js/toolbar.js:182 +#: js/toolbar.js:238 #: js/turtledefs.js:516 msgid "Load project from file" msgstr "Aprire progetto da file" -#: js/toolbar.js:55 -#: js/toolbar.js:115 -#: js/toolbar.js:116 -#: js/toolbar.js:180 -#: js/toolbar.js:235 +#: js/toolbar.js:57 +#: js/toolbar.js:118 +#: js/toolbar.js:119 +#: js/toolbar.js:183 +#: js/toolbar.js:239 #: js/turtledefs.js:541 #: js/turtledefs.js:550 #: js/turtledefs.js:571 msgid "Save project" msgstr "Salvare il progetto" -#: js/toolbar.js:56 -#: js/toolbar.js:75 +#: js/toolbar.js:58 #: js/toolbar.js:77 -#: js/toolbar.js:135 -#: js/toolbar.js:144 -#: js/toolbar.js:146 -#: js/toolbar.js:181 -#: js/toolbar.js:199 -#: js/toolbar.js:201 -#: js/toolbar.js:236 -#: js/toolbar.js:254 -#: js/toolbar.js:256 +#: js/toolbar.js:79 +#: js/toolbar.js:138 +#: js/toolbar.js:147 +#: js/toolbar.js:149 +#: js/toolbar.js:184 +#: js/toolbar.js:202 +#: js/toolbar.js:204 +#: js/toolbar.js:240 +#: js/toolbar.js:258 +#: js/toolbar.js:260 msgid "Save project as HTML" msgstr "Salva progetto come HTML" -#: js/toolbar.js:57 -#: js/toolbar.js:117 -#: js/toolbar.js:182 -#: js/toolbar.js:237 +#: js/toolbar.js:59 +#: js/toolbar.js:120 +#: js/toolbar.js:185 +#: js/toolbar.js:241 msgid "Find and share projects" msgstr "Trova e condividi progetti" -#: js/toolbar.js:58 -#: js/toolbar.js:118 -#: js/toolbar.js:183 -#: js/toolbar.js:238 +#: js/toolbar.js:60 +#: js/toolbar.js:121 +#: js/toolbar.js:186 +#: js/toolbar.js:242 msgid "Offline. Sharing is unavailable" msgstr "Offline. La condivisione non è disponibile." -#: js/toolbar.js:59 -#: js/toolbar.js:119 -#: js/toolbar.js:184 -#: js/toolbar.js:239 +#: js/toolbar.js:61 +#: js/toolbar.js:122 +#: js/toolbar.js:187 +#: js/toolbar.js:243 msgid "Auxiliary menu" msgstr "Menu ausiliario" -#: js/toolbar.js:61 -#: js/toolbar.js:121 -#: js/toolbar.js:186 -#: js/toolbar.js:241 -msgid "Run slowly" -msgstr "Riproduzione lenta" - #: js/toolbar.js:62 -#: js/toolbar.js:122 -#: js/toolbar.js:187 -#: js/toolbar.js:242 +#: js/toolbar.js:123 +#: js/toolbar.js:188 +#: js/toolbar.js:244 +#: js/turtledefs.js:752 +#: js/piemenus.js:3423 +msgid "Help" +msgstr "Aiuto" + +#: js/toolbar.js:63 +#: js/toolbar.js:124 +#: js/toolbar.js:189 +#: js/toolbar.js:245 +msgid "Run slowly" +msgstr "Riproduzione lenta" + +#: js/toolbar.js:64 +#: js/toolbar.js:125 +#: js/toolbar.js:190 +#: js/toolbar.js:246 #: js/turtledefs.js:682 msgid "Run step by step" msgstr "Correre paso per paso" -#: js/toolbar.js:63 -#: js/toolbar.js:123 -#: js/toolbar.js:188 -#: js/toolbar.js:243 +#: js/toolbar.js:65 +#: js/toolbar.js:126 +#: js/toolbar.js:191 +#: js/toolbar.js:247 #: js/turtledefs.js:689 msgid "Display statistics" msgstr "Mostra statistiche" -#: js/toolbar.js:64 -#: js/toolbar.js:124 -#: js/toolbar.js:189 -#: js/toolbar.js:244 +#: js/toolbar.js:66 +#: js/toolbar.js:127 +#: js/toolbar.js:192 +#: js/toolbar.js:248 msgid "Load plugin" msgstr "Carica plugin" -#: js/toolbar.js:65 -#: js/toolbar.js:125 -#: js/toolbar.js:190 -#: js/toolbar.js:245 +#: js/toolbar.js:67 +#: js/toolbar.js:128 +#: js/toolbar.js:193 +#: js/toolbar.js:249 #: js/turtledefs.js:696 msgid "Delete plugin" msgstr "Elimina plugin" -#: js/toolbar.js:66 -#: js/toolbar.js:126 -#: js/toolbar.js:191 -#: js/toolbar.js:246 +#: js/toolbar.js:68 +#: js/toolbar.js:129 +#: js/toolbar.js:194 +#: js/toolbar.js:250 msgid "Enable horizontal scrolling" msgstr "Abilita lo scrolling orizzontale" -#: js/toolbar.js:67 -#: js/toolbar.js:127 -#: js/toolbar.js:192 -#: js/toolbar.js:247 +#: js/toolbar.js:69 +#: js/toolbar.js:130 +#: js/toolbar.js:195 +#: js/toolbar.js:251 msgid "Disable horizontal scrolling" msgstr "Disabilita lo scrolling orizzontale" -#: js/toolbar.js:68 -#: js/toolbar.js:128 -#: js/toolbar.js:193 -#: js/toolbar.js:248 -#: js/LocalCard.js:54 -#: js/StringHelper.js:71 +#: js/toolbar.js:70 +#: js/toolbar.js:131 +#: js/toolbar.js:196 +#: js/toolbar.js:252 +#: planet/js/LocalCard.js:54 +#: planet/js/StringHelper.js:71 msgid "Merge with current project" msgstr "Unisci con il progetto attuale" -#: js/toolbar.js:69 -#: js/toolbar.js:129 +#: js/toolbar.js:71 +#: js/toolbar.js:132 msgid "Set Pitch Preview" msgstr "Imposta anteprima tonalità" -#: js/toolbar.js:70 -#: js/toolbar.js:130 -#: js/toolbar.js:194 -#: js/toolbar.js:249 -msgid "Toggle JavaScript Editor" -msgstr "Abilita/disabilita Javascript Editor" +#: js/toolbar.js:72 +#: js/toolbar.js:133 +#: js/toolbar.js:197 +#: js/toolbar.js:253 +msgid "JavaScript Editor" +msgstr "" -#: js/toolbar.js:71 -#: js/toolbar.js:131 -#: js/toolbar.js:195 -#: js/toolbar.js:250 +#: js/toolbar.js:73 +#: js/toolbar.js:134 +#: js/toolbar.js:198 +#: js/toolbar.js:254 #: js/turtledefs.js:724 msgid "Restore" msgstr "Ripristina" -#: js/toolbar.js:72 -#: js/toolbar.js:132 -#: js/toolbar.js:196 -#: js/toolbar.js:251 +#: js/toolbar.js:74 +#: js/toolbar.js:135 +#: js/toolbar.js:199 +#: js/toolbar.js:255 msgid "Switch to beginner mode" msgstr "Cambia alla modalità principiante" -#: js/toolbar.js:73 -#: js/toolbar.js:133 -#: js/toolbar.js:197 -#: js/toolbar.js:252 +#: js/toolbar.js:75 +#: js/toolbar.js:136 +#: js/toolbar.js:200 +#: js/toolbar.js:256 msgid "Switch to advanced mode" msgstr "Cambia alla modalità avanzata" -#: js/toolbar.js:74 -#: js/toolbar.js:134 -#: js/toolbar.js:143 -#: js/toolbar.js:198 -#: js/toolbar.js:253 +#: js/toolbar.js:76 +#: js/toolbar.js:137 +#: js/toolbar.js:146 +#: js/toolbar.js:201 +#: js/toolbar.js:257 #: js/turtledefs.js:738 msgid "Select language" msgstr "Seleziona lingua" -#: js/toolbar.js:76 -#: js/toolbar.js:79 -#: js/toolbar.js:137 +#: js/toolbar.js:78 +#: js/toolbar.js:81 +#: js/toolbar.js:140 #: js/turtledefs.js:579 msgid "Save mouse artwork as PNG" msgstr "Salva l'illustrazione del topo come PNG" -#: js/toolbar.js:78 -#: js/toolbar.js:136 +#: js/toolbar.js:80 +#: js/toolbar.js:139 #: js/turtledefs.js:575 msgid "Save mouse artwork as SVG" msgstr "Salva l'illustrazione del topo come SVG" -#: js/toolbar.js:80 -#: js/toolbar.js:138 +#: js/toolbar.js:82 +#: js/toolbar.js:141 #: js/turtledefs.js:583 msgid "Save music as WAV" msgstr "Salva musica come WAV" -#: js/toolbar.js:81 -#: js/toolbar.js:139 +#: js/toolbar.js:83 +#: js/toolbar.js:142 #: js/turtledefs.js:587 msgid "Save sheet music as ABC" msgstr "Salva la partitura come ABC" -#: js/toolbar.js:82 -#: js/toolbar.js:140 +#: js/toolbar.js:84 +#: js/toolbar.js:143 #: js/turtledefs.js:591 msgid "Save sheet music as Lilypond" msgstr "Salva la partitura come Lilypond" -#: js/toolbar.js:83 +#: js/toolbar.js:85 msgid "Save sheet music as MusicXML" msgstr "Salva la partitura come MusicXML" -#: js/toolbar.js:84 -#: js/toolbar.js:141 -#: js/toolbar.js:149 -#: js/toolbar.js:204 -#: js/toolbar.js:259 +#: js/toolbar.js:86 +#: js/toolbar.js:144 +#: js/toolbar.js:152 +#: js/toolbar.js:207 +#: js/toolbar.js:263 #: js/turtledefs.js:562 #: js/turtledefs.js:595 msgid "Save block artwork as SVG" msgstr "Salva l'illustrazione del blocco come SVG" -#: js/toolbar.js:85 -#: js/toolbar.js:142 -#: js/toolbar.js:150 -#: js/toolbar.js:205 -#: js/toolbar.js:260 +#: js/toolbar.js:87 +#: js/toolbar.js:145 +#: js/toolbar.js:153 +#: js/toolbar.js:208 +#: js/toolbar.js:264 +#: js/turtles.js:911 msgid "Confirm" msgstr "Conferma" -#: js/toolbar.js:86 -#: js/toolbar.js:151 -#: js/toolbar.js:206 -#: js/toolbar.js:261 +#: js/toolbar.js:88 +#: js/toolbar.js:154 +#: js/toolbar.js:209 +#: js/toolbar.js:265 msgid "English (United States)" msgstr "Inglese (Stati Uniti)" -#: js/toolbar.js:87 -#: js/toolbar.js:152 -#: js/toolbar.js:207 -#: js/toolbar.js:262 +#: js/toolbar.js:89 +#: js/toolbar.js:155 +#: js/toolbar.js:210 +#: js/toolbar.js:266 msgid "English (United Kingdom)" msgstr "Inglese (Regno Unito)" -#: js/toolbar.js:88 -#: js/toolbar.js:153 -#: js/toolbar.js:208 -#: js/toolbar.js:263 +#: js/toolbar.js:90 +#: js/toolbar.js:156 +#: js/toolbar.js:211 +#: js/toolbar.js:267 msgid "日本語" msgstr "Giapponese" -#: js/toolbar.js:89 +#: js/toolbar.js:91 msgid "한국어" msgstr "Coreano" -#: js/toolbar.js:90 -#: js/toolbar.js:155 -#: js/toolbar.js:210 -#: js/toolbar.js:265 +#: js/toolbar.js:92 +#: js/toolbar.js:158 +#: js/toolbar.js:213 +#: js/toolbar.js:269 msgid "español" msgstr "Spagnolo" -#: js/toolbar.js:91 -#: js/toolbar.js:156 -#: js/toolbar.js:211 -#: js/toolbar.js:266 +#: js/toolbar.js:93 +#: js/toolbar.js:159 +#: js/toolbar.js:214 +#: js/toolbar.js:270 msgid "português" msgstr "Portoghese" -#: js/toolbar.js:92 -#: js/toolbar.js:157 -#: js/toolbar.js:212 -#: js/toolbar.js:267 +#: js/toolbar.js:94 +#: js/toolbar.js:160 +#: js/toolbar.js:215 +#: js/toolbar.js:271 msgid "にほんご" msgstr "Giapponese" -#: js/toolbar.js:93 -#: js/toolbar.js:158 -#: js/toolbar.js:213 -#: js/toolbar.js:268 +#: js/toolbar.js:95 +#: js/toolbar.js:161 +#: js/toolbar.js:216 +#: js/toolbar.js:272 msgid "中文" msgstr "Cinese" -#: js/toolbar.js:94 -#: js/toolbar.js:159 -#: js/toolbar.js:214 -#: js/toolbar.js:269 +#: js/toolbar.js:96 +#: js/toolbar.js:162 +#: js/toolbar.js:217 +#: js/toolbar.js:273 msgid "ภาษาไทย" msgstr "Tailandese" -#: js/toolbar.js:95 -#: js/toolbar.js:160 -#: js/toolbar.js:215 -#: js/toolbar.js:270 +#: js/toolbar.js:97 +#: js/toolbar.js:163 +#: js/toolbar.js:218 +#: js/toolbar.js:274 msgid "aymara" msgstr "Aymara" -#: js/toolbar.js:96 -#: js/toolbar.js:161 -#: js/toolbar.js:216 -#: js/toolbar.js:271 +#: js/toolbar.js:98 +#: js/toolbar.js:164 +#: js/toolbar.js:219 +#: js/toolbar.js:275 msgid "quechua" msgstr "Quechua" -#: js/toolbar.js:97 -#: js/toolbar.js:162 -#: js/toolbar.js:217 -#: js/toolbar.js:272 +#: js/toolbar.js:99 +#: js/toolbar.js:165 +#: js/toolbar.js:220 +#: js/toolbar.js:276 msgid "guarani" msgstr "Guaraní" -#: js/toolbar.js:98 -#: js/toolbar.js:163 -#: js/toolbar.js:218 -#: js/toolbar.js:273 -msgid "हिंदी" -msgstr "Hindi" - -#: js/toolbar.js:99 -#: js/toolbar.js:165 -#: js/toolbar.js:219 -#: js/toolbar.js:275 +#: js/toolbar.js:100 +#: js/toolbar.js:166 +#: js/toolbar.js:221 +#: js/toolbar.js:277 +msgid "हिंदी" +msgstr "Hindi" + +#: js/toolbar.js:101 +#: js/toolbar.js:168 +#: js/toolbar.js:222 +#: js/toolbar.js:279 msgid "igbo" msgstr "Igbo" -#: js/toolbar.js:100 -#: js/toolbar.js:166 -#: js/toolbar.js:220 -#: js/toolbar.js:276 +#: js/toolbar.js:102 +#: js/toolbar.js:169 +#: js/toolbar.js:223 +#: js/toolbar.js:280 msgid "عربى" msgstr "Arabo" -#: js/toolbar.js:101 -#: js/toolbar.js:164 -#: js/toolbar.js:221 -#: js/toolbar.js:274 +#: js/toolbar.js:103 +#: js/toolbar.js:167 +#: js/toolbar.js:224 +#: js/toolbar.js:278 msgid "తెలుగు" msgstr "Telugu" -#: js/toolbar.js:102 -#: js/toolbar.js:167 -#: js/toolbar.js:222 -#: js/toolbar.js:277 +#: js/toolbar.js:104 +#: js/toolbar.js:170 +#: js/toolbar.js:225 +#: js/toolbar.js:281 msgid "עִברִית" msgstr "Ebraico" -#: js/toolbar.js:111 -#: js/toolbar.js:175 -#: js/toolbar.js:176 -#: js/toolbar.js:231 +#: js/toolbar.js:113 +#: js/toolbar.js:114 +#: js/toolbar.js:178 +#: js/toolbar.js:179 +#: js/toolbar.js:234 +#: js/toolbar.js:235 msgid "Full Screen" msgstr "Schermo Intero" -#: js/toolbar.js:145 #: js/toolbar.js:148 -#: js/toolbar.js:200 +#: js/toolbar.js:151 #: js/toolbar.js:203 -#: js/toolbar.js:255 -#: js/toolbar.js:258 +#: js/toolbar.js:206 +#: js/toolbar.js:259 +#: js/toolbar.js:262 #: js/turtledefs.js:558 msgid "Save turtle artwork as PNG" msgstr "Salva l'illustrazione della tartaruga come PNG" -#: js/toolbar.js:147 -#: js/toolbar.js:202 -#: js/toolbar.js:257 +#: js/toolbar.js:150 +#: js/toolbar.js:205 +#: js/toolbar.js:261 #: js/turtledefs.js:554 msgid "Save turtle artwork as SVG" msgstr "Salva l'illustrazione della tartaruga come SVG" -#: js/toolbar.js:154 -#: js/toolbar.js:209 -#: js/toolbar.js:264 +#: js/toolbar.js:157 +#: js/toolbar.js:212 +#: js/toolbar.js:268 msgid "한국인" msgstr "coreano" -#: js/toolbar.js:171 -#: js/toolbar.js:227 +#: js/toolbar.js:174 +#: js/toolbar.js:230 msgid "About Turtle Blocks" msgstr "Informazioni su Turtle Blocks" -#: js/toolbar.js:429 -#: js/toolbar.js:440 +#: js/toolbar.js:446 +#: js/toolbar.js:457 +#: js/toolbar.js:497 msgid "Turtle Wrap Off" msgstr "" -#: js/toolbar.js:442 +#: js/toolbar.js:466 +#: js/toolbar.js:506 msgid "Turtle Wrap On" msgstr "" -#: js/block.js:1470 -msgid "matrix" +#: js/turtle-painter.js:1192 +#: js/turtle-painter.js:1193 +#: js/turtles.js:118 +#: js/block-verbose.js:1623 +#: js/block.js:1587 +#: js/lilypond.js:749 +#: js/lilypond.js:913 +#: js/lilypond.js:951 +#: js/logo.js:1184 +#: js/blocks/ActionBlocks.js:1223 +#: js/blocks/ProgramBlocks.js:1267 +msgid "start" +msgstr "inizio" + +#: js/turtledefs.js:40 +#.TRANS: put the URL to the guide here, e.g., https://github.com/sugarlabs/turtleblocksjs/tree/master/guide/README.md +msgid "guide url" msgstr "" -#: js/block.js:1477 -#: js/WidgetBlocks.js:1226 -#: plugins/rodi.rtp:324 -msgid "status" -msgstr "stato" +#: js/turtledefs.js:85 +#: js/turtledefs.js:437 +msgid "Turtle Blocks is a Logo-inspired turtle that draws colorful pictures with snap-together visual-programming blocks." +msgstr "" -#: js/block.js:1484 -msgid "drum mapper" +#: js/turtledefs.js:118 +#: js/turtledefs.js:220 +msgid "search" +msgstr "Cerca" + +#: js/turtledefs.js:120 +#: js/turtledefs.js:222 +#: js/blocks/MeterBlocks.js:1343 +#: js/blocks/WidgetBlocks.js:522 +#.TRANS: musical meter (time signature), e.g., 4:4 +msgid "meter" msgstr "" -#: js/block.js:1491 -msgid "ruler" -msgstr "righello" +#: js/turtledefs.js:122 +#: js/turtledefs.js:224 +msgid "intervals" +msgstr "intervalli" -#: js/block.js:1498 -#: js/WidgetBlocks.js:327 -#.TRANS: timbre is the character or quality of a musical sound -msgid "timbre" -msgstr "timbro" +#: js/turtledefs.js:124 +#: js/turtledefs.js:226 +msgid "ornament" +msgstr "" -#: js/block.js:1505 -msgid "stair" -msgstr "scala" +#: js/turtledefs.js:125 +#: js/turtledefs.js:227 +#: js/blocks/VolumeBlocks.js:362 +#: js/blocks/VolumeBlocks.js:502 +#: js/blocks/VolumeBlocks.js:545 +msgid "volume" +msgstr "volume" -#: js/block.js:1512 -#: js/WidgetBlocks.js:577 -#.TRANS: the speed at music is should be played. -msgid "tempo" -msgstr "tempo" +#: js/turtledefs.js:126 +#: js/turtledefs.js:228 +#: js/block-verbose.js:1700 +#: js/block-verbose.js:2626 +#: js/block.js:1664 +#: js/block.js:2554 +#: js/lilypond.js:732 +#: js/lilypond.js:897 +#: js/lilypond.js:941 +#: js/palette.js:577 +#: js/blocks/RhythmBlocks.js:766 +#: js/blocks/DrumBlocks.js:477 +#: js/blocks/VolumeBlocks.js:502 +#: js/widgets/phrasemaker.js:1038 +msgid "drum" +msgstr "batteria" + +#: js/turtledefs.js:129 +#: js/turtledefs.js:231 +msgid "boxes" +msgstr "" + +#: js/turtledefs.js:130 +#: js/turtledefs.js:232 +msgid "widgets" +msgstr "" + +#: js/turtledefs.js:131 +#: js/turtledefs.js:233 +#: js/widgets/phrasemaker.js:1039 +msgid "graphics" +msgstr "" + +#: js/turtledefs.js:134 +#: js/turtledefs.js:236 +msgid "boolean" +msgstr "booleano" + +#: js/turtledefs.js:137 +#: js/turtledefs.js:239 +#: js/blocks/HeapBlocks.js:59 +#: js/widgets/status.js:147 +msgid "heap" +msgstr "" + +#: js/turtledefs.js:138 +#: js/turtledefs.js:240 +#: js/blocks/DictBlocks.js:142 +#: js/blocks/ProgramBlocks.js:495 +msgid "dictionary" +msgstr "dizionario" + +#: js/turtledefs.js:139 +#: js/turtledefs.js:241 +msgid "ensemble" +msgstr "" + +#: js/turtledefs.js:140 +#: js/turtledefs.js:242 +msgid "extras" +msgstr "extras" + +#: js/turtledefs.js:142 +#: js/turtledefs.js:244 +#.TRANS: program as in computer program +#.TRANS: program as in computer program +msgid "program" +msgstr "programma" + +#: js/turtledefs.js:143 +#: js/turtledefs.js:245 +msgid "my blocks" +msgstr "" + +#: js/turtledefs.js:185 +#: js/turtledefs.js:281 +msgid "artwork" +msgstr "illustrazione" + +#: js/turtledefs.js:185 +#: js/turtledefs.js:281 +msgid "logic" +msgstr "logica" + +#: js/turtledefs.js:185 +#: js/turtledefs.js:281 +msgid "music" +msgstr "musica" + +#: js/turtledefs.js:187 +#: js/turtledefs.js:463 +msgid "Music Blocks is a collection of tools for exploring fundamental musical concepts in a fun way." +msgstr "Music Blocks è una raccolta di strumenti per esplorare in modo divertente concetti musicali fondamentali." + +#: js/turtledefs.js:436 +msgid "Welcome to Turtle Blocks" +msgstr "Benvenuto su Turtle Blocks" + +#: js/turtledefs.js:438 +#: js/turtledefs.js:465 +#: js/turtledefs.js:774 +#: js/turtledefs.js:805 +msgid "The current version is" +msgstr "La versione attuale è:" + +#: js/turtledefs.js:446 +#: js/turtledefs.js:483 +msgid "Click the run button to run the project in fast mode." +msgstr "Clicca sul pulsante di esecuzione per avviare il progetto in modalità veloce." + +#: js/turtledefs.js:452 +msgid "Stop the turtle." +msgstr "Ferma la tartaruga." + +#: js/turtledefs.js:454 +#: js/turtledefs.js:491 +msgid "You can also type Alt-S to stop." +msgstr "Puoi digitare Alt-S per interrompere" + +#: js/turtledefs.js:462 +#: js/widgets/help.js:333 +msgid "Welcome to Music Blocks" +msgstr "Benvenuto su Music Blocks" + +#: js/turtledefs.js:472 +#: js/widgets/help.js:334 +msgid "Meet Mr. Mouse!" +msgstr "Conosci Mr. Mouse!" + +#: js/turtledefs.js:473 +msgid "Mr Mouse is our Music Blocks conductor." +msgstr "Mr Mouse é il nostro conduttore di Music Blocks." + +#: js/turtledefs.js:475 +msgid "Mr Mouse encourages you to explore Music Blocks." +msgstr "Mr Mouse ti incoraggia a esplorare Music Blocks" + +#: js/turtledefs.js:477 +msgid "Let us start our tour!" +msgstr "Iniziamo il tour!" + +#: js/turtledefs.js:489 +msgid "Stop the music (and the mice)." +msgstr "Ferma la musica (e i topi)" + +#: js/turtledefs.js:499 +msgid "Record your project as video." +msgstr "Registra il tuo progetto come video." + +#: js/turtledefs.js:505 +msgid "Toggle Fullscreen mode." +msgstr "Attiva/Disattiva modalità schermo intero." + +#: js/turtledefs.js:511 +msgid "Initialize a new project." +msgstr "Inizializza un nuovo progetto" + +#: js/turtledefs.js:517 +msgid "You can also load projects from the file system." +msgstr "Puoi anche aprire progetti dal filesystem." + +#: js/turtledefs.js:522 +#: planet/js/StringHelper.js:46 +msgid "Delete" +msgstr "Elimina" + +#: js/turtledefs.js:523 +msgid "To delete a block, just right-click on it, then you will be able to see the delete option" +msgstr "Per eliminare un blocco, fai clic destro su di esso e quindi vedrai l'opzione di eliminazione." + +#: js/turtledefs.js:528 +#: js/activity.js:2649 +#: planet/js/LocalCard.js:31 +msgid "Copy" +msgstr "Copia" + +#: js/turtledefs.js:529 +msgid "To copy a block, just right-click on it, then you will be able to see the copy option" +msgstr "" + +#: js/turtledefs.js:534 +#: js/piemenus.js:3411 +msgid "Extract" +msgstr "Estrai" + +#: js/turtledefs.js:535 +msgid "To extract a block, just right-click on it, then you will be able to see the extract option" +msgstr "" + +#: js/turtledefs.js:542 +#: js/turtledefs.js:552 +#: js/turtledefs.js:573 +msgid "Save your project to a file." +msgstr "Salva il tuo progetto su un file." + +#: js/turtledefs.js:549 +#: js/turtledefs.js:570 +msgid "save" +msgstr "salva" + +#: js/turtledefs.js:556 +#: js/turtledefs.js:577 +msgid "Save graphics from your project to as SVG." +msgstr "Salva le grafiche del tuo progetto come file SVG." + +#: js/turtledefs.js:560 +#: js/turtledefs.js:581 +msgid "Save graphics from your project as PNG." +msgstr "Salva le grafiche del tuo progetto come file PNG." + +#: js/turtledefs.js:564 +#: js/turtledefs.js:597 +msgid "Save block artwork as an SVG file." +msgstr "Salva l'illustrazione dei blocchi come file SVG." + +#: js/turtledefs.js:585 +msgid "Save audio from your project as WAV." +msgstr "Salva l'audio del tuo progetto come file WAV." + +#: js/turtledefs.js:589 +msgid "Save your project to as an ABC file." +msgstr "Salva il tuo progetto come file ABC." + +#: js/turtledefs.js:593 +msgid "Save your project to as a Lilypond file." +msgstr "Salva il tuo progetto come file Lilypond." + +#: js/turtledefs.js:604 +msgid "Load samples from server" +msgstr "Aprire esempi dal server" + +#: js/turtledefs.js:605 +msgid "This button opens a viewer for loading example projects." +msgstr "Questo pulsante apre uno spettatore per aprire progetti di esempi." + +#: js/turtledefs.js:611 +msgid "Palette buttons" +msgstr "Pulsanti della tavolozza" + +#: js/turtledefs.js:612 +msgid "This toolbar contains the palette buttons including Rhythm Pitch Tone Action and more." +msgstr "" + +#: js/turtledefs.js:614 +msgid "Click to show the palettes of blocks and drag blocks from the palettes onto the canvas to use them." +msgstr "" + +#: js/turtledefs.js:620 +msgid "Cartesian/Polar" +msgstr "" + +#: js/turtledefs.js:621 +msgid "Show or hide a coordinate grid." +msgstr "Mostra o nascondi la griglia di coordinate" + +#: js/turtledefs.js:626 +#: js/turtles.js:902 +msgid "Clean" +msgstr "Pulire" + +#: js/turtledefs.js:627 +msgid "Clear the screen and return the mice to their initial positions." +msgstr "" + +#: js/turtledefs.js:632 +#: js/turtles.js:955 +msgid "Collapse" +msgstr "Collassa" + +#: js/turtledefs.js:633 +msgid "Collapse the graphics window." +msgstr "" + +#: js/turtledefs.js:638 +#: js/activity.js:5684 +msgid "Home" +msgstr "" + +#: js/turtledefs.js:639 +msgid "Return all blocks to the center of the screen." +msgstr "" + +#: js/turtledefs.js:644 +msgid "Show/hide blocks" +msgstr "Mostra/Nascondi blocchi" + +#: js/turtledefs.js:645 +msgid "Hide or show the blocks and the palettes." +msgstr "Nascondere o mostrare i blocchi e le tavolozze" + +#: js/turtledefs.js:650 +msgid "Expand/collapse collapsable blocks" +msgstr "" + +#: js/turtledefs.js:651 +msgid "Expand or collapse start and action stacks." +msgstr "" + +#: js/turtledefs.js:658 +#: js/activity.js:5704 +msgid "Decrease block size" +msgstr "Diminuisci la dimensione del blocco" + +#: js/turtledefs.js:659 +msgid "Decrease the size of the blocks." +msgstr "Diminuisci la dimensione dei blocchi" + +#: js/turtledefs.js:664 +#: js/activity.js:5710 +msgid "Increase block size" +msgstr "Aumenta la dimensione del blocco" + +#: js/turtledefs.js:665 +msgid "Increase the size of the blocks." +msgstr "Aumenta la dimensione dei blocchi" + +#: js/turtledefs.js:670 +msgid "Expand/collapse option toolbar" +msgstr "Espandire/collassare barra degli strumenti di opzioni" + +#: js/turtledefs.js:671 +msgid "Click this button to expand or collapse the auxillary toolbar." +msgstr "Click questo pulsante per espandire o collassare la barra degli strumenti assistente," + +#: js/turtledefs.js:676 +msgid "Run slow" +msgstr "Correre lento" + +#: js/turtledefs.js:677 +msgid "Click to run the project in slow mode." +msgstr "Click per correre il progetto in modalità lenta" + +#: js/turtledefs.js:683 +msgid "Click to run the project step by step." +msgstr "Click per correre il progetto passo per passi" + +#: js/turtledefs.js:690 +msgid "Display statistics about your Music project." +msgstr "" + +#: js/turtledefs.js:697 +msgid "Delete a selected plugin." +msgstr "Elimina un plugin selezionato" + +#: js/turtledefs.js:704 +msgid "Enable scrolling" +msgstr "Abilita lo scrolling" + +#: js/turtledefs.js:705 +msgid "You can scroll the blocks on the canvas." +msgstr "" + +#: js/turtledefs.js:714 +msgid "Wrap Turtle" +msgstr "" + +#: js/turtledefs.js:715 +msgid "Turn Turtle wrapping On or Off." +msgstr "" + +#: js/turtledefs.js:725 +msgid "Restore blocks from the trash." +msgstr "Restaurare blocchi dalla spazzatura." + +#: js/turtledefs.js:732 +msgid "Switch mode" +msgstr "" + +#: js/turtledefs.js:733 +msgid "Switch between beginner and advance modes." +msgstr "" + +#: js/turtledefs.js:739 +msgid "Select your language preference." +msgstr "Seleziona la lingua" + +#: js/turtledefs.js:745 +msgid "Keyboard shortcuts" +msgstr "Scorciatoie da tastiera" + +#: js/turtledefs.js:746 +msgid "You can type d to create a do block and r to create a re block etc." +msgstr "Puoi premere d per creare un blocco 'do' e premere r per creare un blocco 're' ecc..." + +#: js/turtledefs.js:753 +msgid "Show these messages." +msgstr "Mostrare questi messagi." + +#: js/turtledefs.js:759 +#: js/turtledefs.js:790 +#: js/widgets/help.js:335 +msgid "Guide" +msgstr "Guide" + +#: js/turtledefs.js:760 +msgid "A detailed guide to Turtle Blocks is available." +msgstr "" + +#: js/turtledefs.js:764 +msgid "Turtle Blocks Guide" +msgstr "Turtle Blocks Guida" + +#: js/turtledefs.js:767 +#: js/turtledefs.js:798 +#: js/widgets/help.js:336 +msgid "About" +msgstr "Informazioni" + +#: js/turtledefs.js:768 +msgid "Turtle Blocks is an open source collection of tools for exploring musical concepts." +msgstr "Turtle Blocks è una raccolta di strumenti open source per esplorare concetti musicali." + +#: js/turtledefs.js:770 +msgid "A full list of contributors can be found in the Turtle Blocks GitHub repository." +msgstr "Un elenco completo dei contributori può essere trovato nel repository di Turtle Blocks su GitHub." + +#: js/turtledefs.js:772 +msgid "Turtle Blocks is licensed under the AGPL." +msgstr "Turtle Blocks è distribuito con licenza AGPL." + +#: js/turtledefs.js:780 +msgid "Turtle Blocks GitHub repository" +msgstr "Repository GitHub di Turtle Blocks" + +#: js/turtledefs.js:783 +#: js/turtledefs.js:814 +#: js/widgets/help.js:337 +#: js/widgets/help.js:359 +msgid "Congratulations." +msgstr "Congratulazioni." + +#: js/turtledefs.js:784 +msgid "You have finished the tour. Please enjoy Turtle Blocks!" +msgstr "Hai completato il tour. Ti auguro un buon divertimento con Turtle Blocks!" + +#: js/turtledefs.js:791 +msgid "A detailed guide to Music Blocks is available." +msgstr "È disponibile una guida dettagliata su Music Blocks." + +#: js/turtledefs.js:799 +msgid "Music Blocks is an open source collection of tools for exploring musical concepts." +msgstr "Music Blocks è una raccolta di strumenti open source per esplorare concetti musicali." + +#: js/turtledefs.js:801 +msgid "A full list of contributors can be found in the Music Blocks GitHub repository." +msgstr "Un elenco completo dei contributori è disponibile nel repository di Music Blocks su GitHub." + +#: js/turtledefs.js:803 +msgid "Music Blocks is licensed under the AGPL." +msgstr "Music Blocks è distribuito con licenza AGPL." + +#: js/turtledefs.js:811 +msgid "Music Blocks GitHub repository" +msgstr "Repository GitHub di Music Blocks" + +#: js/turtledefs.js:815 +msgid "You have finished the tour. Please enjoy Music Blocks!" +msgstr "Hai completato il tour. Ti auguro un buon divertimento con Music Blocks!" + +#: js/turtles.js:882 +msgid "Grid" +msgstr "Griglia" + +#: js/turtles.js:1024 +msgid "Expand" +msgstr "Espandi" + +#: js/block-verbose.js:1616 +#: js/block-verbose.js:1735 +#: js/block.js:1580 +#: js/block.js:1699 +#: js/palette.js:605 +#: js/blocks/IntervalsBlocks.js:63 +#: js/blocks/WidgetBlocks.js:259 +msgid "temperament" +msgstr "" + +#: js/block-verbose.js:1630 +#: js/block.js:1594 +msgid "matrix" +msgstr "" + +#: js/block-verbose.js:1637 +#: js/block.js:1601 +#: js/blocks/WidgetBlocks.js:1509 +#: plugins/rodi.rtp:324 +msgid "status" +msgstr "stato" + +#: js/block-verbose.js:1644 +#: js/block.js:1608 +msgid "drum mapper" +msgstr "" + +#: js/block-verbose.js:1651 +#: js/block.js:1615 +msgid "ruler" +msgstr "righello" + +#: js/block-verbose.js:1658 +#: js/block.js:1622 +#: js/blocks/WidgetBlocks.js:397 +#.TRANS: timbre is the character or quality of a musical sound +msgid "timbre" +msgstr "timbro" + +#: js/block-verbose.js:1665 +#: js/block.js:1629 +msgid "stair" +msgstr "scala" + +#: js/block-verbose.js:1672 +#: js/block.js:1636 +#: js/blocks/WidgetBlocks.js:707 +#.TRANS: the speed at music is should be played. +msgid "tempo" +msgstr "tempo" + +#: js/block-verbose.js:1679 +#: js/block-verbose.js:1742 +#: js/block.js:1643 +#: js/block.js:1706 +#: js/blocks/IntervalsBlocks.js:1464 +#.TRANS: mode, e.g., Major in C Major +msgid "mode" +msgstr "modo" + +#: js/block-verbose.js:1686 +#: js/block.js:1650 +msgid "slider" +msgstr "slider" + +#: js/block-verbose.js:1693 +#: js/block.js:1657 +#: js/blocks/SensorsBlocks.js:1001 +msgid "keyboard" +msgstr "tastiera" + +#: js/block-verbose.js:1707 +#: js/block.js:1671 +#: js/blocks/WidgetBlocks.js:1190 +#: js/blocks/WidgetBlocks.js:1228 +#.TRANS: widget for subdividing a measure into distinct rhythmic elements +msgid "rhythm maker" +msgstr "" + +#: js/block-verbose.js:1714 +#: js/block-verbose.js:2457 +#: js/block-verbose.js:2514 +#: js/block.js:1678 +#: js/block.js:2385 +#: js/block.js:2442 +#: js/blocks/MeterBlocks.js:1367 +#: js/blocks/OrnamentBlocks.js:220 +#: js/blocks/OrnamentBlocks.js:312 +#: js/blocks/RhythmBlocks.js:33 +#: js/blocks/RhythmBlocks.js:356 +#: js/blocks/RhythmBlocks.js:766 +#: js/blocks/RhythmBlocks.js:806 +#: js/blocks/RhythmBlockPaletteBlocks.js:70 +#: js/blocks/RhythmBlockPaletteBlocks.js:252 +#: js/blocks/RhythmBlockPaletteBlocks.js:485 +#: js/blocks/RhythmBlockPaletteBlocks.js:554 +#: js/blocks/RhythmBlockPaletteBlocks.js:605 +#: js/blocks/RhythmBlockPaletteBlocks.js:875 +#: js/turtleactions/DictActions.js:85 +#: js/widgets/phrasemaker.js:942 +#: js/widgets/phrasemaker.js:2656 +#: js/widgets/phrasemaker.js:2699 +#: js/widgets/phrasemaker.js:2810 +#.TRANS: the value (e.g., 1/4 note) of the note being played. +msgid "note value" +msgstr "" + +#: js/block-verbose.js:1721 +#: js/block-verbose.js:2382 +#: js/block-verbose.js:2405 +#: js/block.js:1685 +#: js/block.js:2310 +#: js/block.js:2333 +#: js/blocks/IntervalsBlocks.js:1071 +#: js/blocks/OrnamentBlocks.js:312 +#.TRANS: calculate a relative step between notes based on semi-tones +msgid "scalar interval" +msgstr "" + +#: js/block-verbose.js:1728 +#: js/block.js:1692 +#: js/blocks/RhythmBlocks.js:148 +msgid "milliseconds" +msgstr "Millisecondi" + +#: js/block-verbose.js:2455 +#: js/block-verbose.js:2459 +#: js/block-verbose.js:2512 +#: js/block-verbose.js:2628 +#: js/block.js:2383 +#: js/block.js:2387 +#: js/block.js:2440 +#: js/block.js:2556 +#: js/blocks/RhythmBlocks.js:712 +#: js/blocks/ProgramBlocks.js:1273 +#: js/widgets/rhythmruler.js:1183 +#: js/widgets/rhythmruler.js:1329 +msgid "silence" +msgstr "Silenzio" + +#: js/block-verbose.js:2548 +#: js/block-verbose.js:3492 +#: js/block-verbose.js:3509 +#: js/activity.js:2718 +#: js/activity.js:2769 +#: js/block.js:2476 +#: js/block.js:3416 +#: js/block.js:3433 +#: js/utils/musicutils.js:3780 +#: js/utils/musicutils.js:5273 +#.TRANS: the note names must be separated by single spaces +#.TRANS: the note names must be separated by single spaces +#.TRANS: the note names must be separated by single spaces +msgid "ti la sol fa mi re do" +msgstr "si la sol fa mi re do" + +#: js/block-verbose.js:2616 +#: js/block.js:2544 +#.TRANS: scalar step +#.TRANS: scalar step +msgid "down" +msgstr "giu" + +#: js/block-verbose.js:2617 +#: js/block.js:2545 +msgid "up" +msgstr "su" + +#: js/block-verbose.js:3026 +#: js/block.js:2950 +msgid "Silence block cannot be removed." +msgstr "" + +#: js/block-verbose.js:3824 +#: js/block.js:3748 +#: js/blocks.js:2607 +#: js/blocks.js:3218 +#: js/palette.js:618 +#: js/blocks/BooleanBlocks.js:77 +#: js/blocks/BooleanBlocks.js:167 +#: js/blocks/BooleanBlocks.js:251 +#: js/blocks/BooleanBlocks.js:335 +#: js/blocks/BooleanBlocks.js:433 +#: js/blocks/BooleanBlocks.js:539 +#: js/blocks/BooleanBlocks.js:640 +#: js/blocks/BooleanBlocks.js:741 +#: js/blocks/BooleanBlocks.js:847 +#: js/blocks/BooleanBlocks.js:948 +#: js/blocks/BooleanBlocks.js:1033 +#: js/blocks/SensorsBlocks.js:910 +msgid "true" +msgstr "vero" + +#: js/block-verbose.js:3824 +#: js/block.js:3748 +#: js/blocks.js:2609 +#: js/blocks.js:3220 +#: js/blocks/BooleanBlocks.js:79 +#: js/blocks/BooleanBlocks.js:169 +#: js/blocks/BooleanBlocks.js:253 +#: js/blocks/BooleanBlocks.js:337 +#: js/blocks/BooleanBlocks.js:435 +#: js/blocks/BooleanBlocks.js:541 +#: js/blocks/BooleanBlocks.js:642 +#: js/blocks/BooleanBlocks.js:743 +#: js/blocks/BooleanBlocks.js:849 +#: js/blocks/BooleanBlocks.js:950 +#: js/blocks/SensorsBlocks.js:912 +msgid "false" +msgstr "falso" + +#: js/block-verbose.js:3835 +#: js/block-verbose.js:3848 +#: js/block.js:3759 +#: js/block.js:3772 +#: js/blocks/ExtrasBlocks.js:615 +msgid "Cartesian" +msgstr "Cartesiano" + +#: js/block-verbose.js:3836 +#: js/block-verbose.js:3849 +#: js/block.js:3760 +#: js/block.js:3773 +#: js/blocks/ExtrasBlocks.js:619 +msgid "polar" +msgstr "" + +#: js/block-verbose.js:3837 +#: js/block-verbose.js:3850 +#: js/block.js:3761 +#: js/block.js:3774 +#: js/blocks/ExtrasBlocks.js:623 +msgid "Cartesian+polar" +msgstr "" + +#: js/block-verbose.js:3838 +#: js/block-verbose.js:3857 +#: js/block.js:3762 +#: js/block.js:3781 +#: js/blocks/ExtrasBlocks.js:652 +msgid "none" +msgstr "" + +#: js/block-verbose.js:3851 +#: js/block.js:3775 +#: js/blocks/ExtrasBlocks.js:628 +msgid "treble" +msgstr "" + +#: js/block-verbose.js:3852 +#: js/block.js:3776 +#: js/blocks/ExtrasBlocks.js:632 +msgid "grand staff" +msgstr "" + +#: js/block-verbose.js:3853 +#: js/block.js:3777 +#: js/blocks/ExtrasBlocks.js:636 +msgid "mezzo-soprano" +msgstr "mezzo-soprano" + +#: js/block-verbose.js:3854 +#: js/block.js:3778 +#: js/blocks/ExtrasBlocks.js:640 +msgid "alto" +msgstr "alto" + +#: js/block-verbose.js:3855 +#: js/block.js:3779 +#: js/blocks/ExtrasBlocks.js:644 +msgid "tenor" +msgstr "tenore" + +#: js/block-verbose.js:3856 +#: js/block.js:3780 +#: js/utils/musicutils.js:1115 +#: js/utils/synthutils.js:80 +#: js/blocks/ExtrasBlocks.js:648 +#.TRANS: musical instrument +msgid "bass" +msgstr "basso" + +#: js/block-verbose.js:3901 +#: js/block.js:3825 +#: js/blocks.js:2600 +#: js/blocks.js:3211 +msgid "on2" +msgstr "" + +#: js/block-verbose.js:3903 +#: js/block.js:3827 +#: js/blocks.js:2602 +#: js/blocks.js:3213 +msgid "off" +msgstr "" + +#: js/block-verbose.js:4470 +#: js/block.js:4394 +msgid "Not a number" +msgstr "Non un numero" + +#: js/block-verbose.js:4477 +#: js/block.js:4401 +msgid "Octave value must be between 1 and 10." +msgstr "Il valore dell'ottava deve essere compreso tra 1 e 10" + +#: js/block-verbose.js:4485 +#: js/block.js:4409 +msgid "Numbers can have at most 10 digits." +msgstr "I numeri possono avere al massimo 10 cifre" + +#: js/activity.js:390 +#: js/activity.js:395 +msgid "Search for blocks" +msgstr "Cerca i blocchi" + +#: js/activity.js:1413 +msgid "Refresh your browser to change to advanced mode." +msgstr "Aggiorna il tuo browser per passare alla modalità avanzata." + +#: js/activity.js:1418 +msgid "Refresh your browser to change to beginner mode." +msgstr "Aggiorna il tuo browser per passare alla modalità principiante." + +#: js/activity.js:1477 +msgid "Catching mice" +msgstr "Catturando topi" + +#: js/activity.js:1478 +msgid "Cleaning the instruments" +msgstr "" + +#: js/activity.js:1479 +msgid "Testing key pieces" +msgstr "" + +#: js/activity.js:1480 +msgid "Sight-reading" +msgstr "" + +#: js/activity.js:1481 +msgid "Combining math and music" +msgstr "Unendo matematica e musica" + +#: js/activity.js:1482 +msgid "Generating more blocks" +msgstr "" + +#: js/activity.js:1483 +msgid "Do Re Mi Fa Sol La Ti Do" +msgstr "Do Re Mi Fa Sol La Si Do" + +#: js/activity.js:1484 +msgid "Tuning string instruments" +msgstr "" + +#: js/activity.js:1485 +msgid "Pressing random keys" +msgstr "Premendo tasti a caso" + +#: js/activity.js:1663 +msgid "plugins will be removed upon restart." +msgstr "I plugin verranno rimossi al riavvio." + +#: js/activity.js:1672 +msgid "show Cartesian" +msgstr "" + +#: js/activity.js:2211 +#: js/palette.js:589 +#: js/blocks/RhythmBlocks.js:923 +#: js/blocks/PitchBlocks.js:442 +#: js/blocks/PitchBlocks.js:1786 +#.TRANS: a numeric mapping of the notes in an octave based on the musical mode +msgid "scale degree" +msgstr "" + +#: js/activity.js:2214 +#: js/palette.js:598 +msgid "voice name" +msgstr "" + +#: js/activity.js:2217 +#: js/palette.js:595 +msgid "invert mode" +msgstr "" -#: js/block.js:1519 -#: js/block.js:1582 -#: js/IntervalsBlocks.js:1268 -#.TRANS: mode, e.g., Major in C Major -msgid "mode" -msgstr "modo" +#: js/activity.js:2220 +msgid "output tools" +msgstr "" -#: js/block.js:1526 -msgid "slider" -msgstr "slider" +#: js/activity.js:2223 +msgid "custom note" +msgstr "" -#: js/block.js:1533 -#: js/SensorsBlocks.js:1001 -msgid "keyboard" -msgstr "tastiera" +#: js/activity.js:2226 +msgid "accidental name" +msgstr "" -#: js/block.js:1547 -#: js/WidgetBlocks.js:957 -#: js/WidgetBlocks.js:988 -#.TRANS: widget for subdividing a measure into distinct rhythmic elements -msgid "rhythm maker" +#: js/activity.js:2229 +#: js/blocks/PitchBlocks.js:855 +msgid "east indian solfege" msgstr "" -#: js/block.js:1554 -#: js/block.js:2182 -#: js/block.js:2236 -#: js/RhythmBlockPaletteBlocks.js:70 -#: js/RhythmBlockPaletteBlocks.js:251 -#: js/RhythmBlockPaletteBlocks.js:484 -#: js/RhythmBlockPaletteBlocks.js:553 -#: js/RhythmBlockPaletteBlocks.js:604 -#: js/RhythmBlockPaletteBlocks.js:874 -#: js/RhythmBlocks.js:33 -#: js/RhythmBlocks.js:356 -#: js/RhythmBlocks.js:766 -#: js/RhythmBlocks.js:806 -#: js/OrnamentBlocks.js:220 -#: js/OrnamentBlocks.js:312 -#: js/MeterBlocks.js:1367 -#: js/DictActions.js:85 -#: js/phrasemaker.js:731 -#: js/phrasemaker.js:2393 -#: js/phrasemaker.js:2436 -#: js/phrasemaker.js:2534 -#.TRANS: the value (e.g., 1/4 note) of the note being played. -msgid "note value" +#: js/activity.js:2232 +#: js/blocks/PitchBlocks.js:869 +msgid "note name" msgstr "" -#: js/block.js:1561 -#: js/block.js:2110 -#: js/block.js:2133 -#: js/IntervalsBlocks.js:875 -#: js/OrnamentBlocks.js:312 -#.TRANS: calculate a relative step between notes based on semi-tones -msgid "scalar interval" +#: js/activity.js:2235 +#: js/blocks/IntervalsBlocks.js:94 +msgid "temperament name" msgstr "" -#: js/block.js:1568 -#: js/RhythmBlocks.js:148 -msgid "milliseconds" -msgstr "Millisecondi" +#: js/activity.js:2238 +#: js/palette.js:592 +msgid "mode name" +msgstr "" -#: js/block.js:2180 -#: js/block.js:2184 -#: js/block.js:2234 -#: js/block.js:2345 -#: js/ProgramBlocks.js:1273 -#: js/RhythmBlocks.js:712 -#: js/rhythmruler.js:834 -#: js/rhythmruler.js:961 -msgid "silence" -msgstr "Silenzio" +#: js/activity.js:2241 +msgid "chord name" +msgstr "nome dell'accordo" -#: js/block.js:2265 -#: js/block.js:3134 -#: js/block.js:3151 -#: js/activity.js:2336 -#: js/activity.js:2387 -#: js/musicutils.js:2932 -#: js/musicutils.js:4287 -#.TRANS: the note names must be separated by single spaces -#.TRANS: the note names must be separated by single spaces -msgid "ti la sol fa mi re do" -msgstr "si la sol fa mi re do" +#: js/activity.js:2244 +#: js/palette.js:615 +msgid "interval name" +msgstr "" -#: js/block.js:2333 -#.TRANS: scalar step -msgid "down" -msgstr "giu" +#: js/activity.js:2247 +msgid "filter type" +msgstr "tipo di filtro" -#: js/block.js:2334 -msgid "up" -msgstr "su" +#: js/activity.js:2250 +msgid "oscillator type" +msgstr "tipo di oscillatore" -#: js/block.js:3477 -#: js/block.js:3490 -#: js/ExtrasBlocks.js:612 -msgid "Cartesian" -msgstr "Cartesiano" +#: js/activity.js:2253 +#: js/blocks.js:2479 +#: js/blocks.js:2487 +msgid "audio file" +msgstr "" -#: js/block.js:3478 -#: js/block.js:3491 -#: js/ExtrasBlocks.js:616 -msgid "polar" +#: js/activity.js:2256 +#: js/blocks/DrumBlocks.js:32 +msgid "noise name" msgstr "" -#: js/block.js:3479 -#: js/block.js:3492 -#: js/ExtrasBlocks.js:620 -msgid "Cartesian+polar" +#: js/activity.js:2259 +#: js/blocks/DrumBlocks.js:75 +msgid "drum name" msgstr "" -#: js/block.js:3480 -#: js/block.js:3499 -#: js/ExtrasBlocks.js:649 -msgid "none" +#: js/activity.js:2262 +#: js/blocks/DrumBlocks.js:119 +msgid "effects name" msgstr "" -#: js/block.js:3493 -#: js/ExtrasBlocks.js:625 -msgid "treble" +#: js/activity.js:2265 +msgid "wrap mode" msgstr "" -#: js/block.js:3494 -#: js/ExtrasBlocks.js:629 -msgid "grand staff" +#: js/activity.js:2268 +msgid "load file" msgstr "" -#: js/block.js:3495 -#: js/ExtrasBlocks.js:633 -msgid "mezzo-soprano" -msgstr "mezzo-soprano" +#: js/activity.js:2435 +#: js/activity.js:5851 +msgid "This block is deprecated." +msgstr "" -#: js/block.js:3496 -#: js/ExtrasBlocks.js:637 -msgid "alto" -msgstr "alto" +#: js/activity.js:2437 +#: js/activity.js:5853 +msgid "Block cannot be found." +msgstr "" -#: js/block.js:3497 -#: js/ExtrasBlocks.js:641 -msgid "tenor" -msgstr "tenore" +#: js/activity.js:2645 +msgid "Saving block artwork" +msgstr "Salva l'illustrazione del blocco" -#: js/block.js:3498 -#: js/ExtrasBlocks.js:645 -#: js/musicutils.js:736 -#: js/synthutils.js:64 -#.TRANS: musical instrument -msgid "bass" -msgstr "basso" +#: js/activity.js:2656 +msgid "Erase" +msgstr "" -#: js/block.js:4075 -msgid "Not a number" -msgstr "Non un numero" +#: js/activity.js:2683 +#: js/activity.js:2705 +msgid "Paste" +msgstr "Incollare" -#: js/block.js:4082 -msgid "Octave value must be between 1 and 10." -msgstr "Il valore dell'ottava deve essere compreso tra 1 e 10" +#: js/activity.js:2687 +msgid "Save block help" +msgstr "" -#: js/block.js:4090 -msgid "Numbers can have at most 10 digits." -msgstr "I numeri possono avere al massimo 10 cifre" +#: js/activity.js:2772 +msgid "Jumping to the bottom of the page." +msgstr "" -#: js/notation.js:353 -msgid "Lilypond cannot process pickup of " +#: js/activity.js:2778 +msgid "Scrolling up." msgstr "" -#: js/turtledefs.js:40 -#.TRANS: put the URL to the guide here, e.g., https://github.com/sugarlabs/turtleblocksjs/tree/master/guide/README.md -msgid "guide url" +#: js/activity.js:2783 +msgid "Scrolling down." msgstr "" -#: js/turtledefs.js:85 -#: js/turtledefs.js:437 -msgid "Turtle Blocks is a Logo-inspired turtle that draws colorful pictures with snap-together visual-programming blocks." +#: js/activity.js:2788 +msgid "Extracting block" msgstr "" -#: js/turtledefs.js:118 -#: js/turtledefs.js:220 -msgid "search" -msgstr "Cerca" +#: js/activity.js:2796 +msgid "Moving block up." +msgstr "Sposta il blocco su" -#: js/turtledefs.js:120 -#: js/turtledefs.js:222 -#: js/WidgetBlocks.js:437 -#: js/MeterBlocks.js:1343 -#.TRANS: musical meter (time signature), e.g., 4:4 -msgid "meter" -msgstr "" +#: js/activity.js:2817 +msgid "Moving block down." +msgstr "Sposta il blocco giù" -#: js/turtledefs.js:122 -#: js/turtledefs.js:224 -msgid "intervals" -msgstr "intervalli" +#: js/activity.js:2838 +msgid "Moving block left." +msgstr "Sposta il blocco a sinistra" -#: js/turtledefs.js:124 -#: js/turtledefs.js:226 -msgid "ornament" +#: js/activity.js:2855 +msgid "Moving block right." +msgstr "Sposta il blocco a destra" + +#: js/activity.js:2870 +msgid "Jump to home position." msgstr "" -#: js/turtledefs.js:125 -#: js/turtledefs.js:227 -#: js/VolumeBlocks.js:362 -#: js/VolumeBlocks.js:502 -#: js/VolumeBlocks.js:545 -msgid "volume" -msgstr "volume" +#: js/activity.js:2897 +msgid "Hide blocks" +msgstr "Nascondi blocchi" -#: js/turtledefs.js:129 -#: js/turtledefs.js:231 -msgid "boxes" +#: js/activity.js:4500 +msgid "Click the run button to run the project." msgstr "" -#: js/turtledefs.js:130 -#: js/turtledefs.js:232 -msgid "widgets" -msgstr "" +#: js/activity.js:5692 +msgid "Show/hide block" +msgstr "Mostra/nascondi blocco" -#: js/turtledefs.js:131 -#: js/turtledefs.js:233 -#: js/phrasemaker.js:824 -msgid "graphics" -msgstr "" +#: js/activity.js:5698 +msgid "Expand/collapse blocks" +msgstr "Espandi/collassa blocchi" -#: js/turtledefs.js:134 -#: js/turtledefs.js:236 -msgid "boolean" -msgstr "booleano" +#: js/activity.js:5976 +msgid "Could not parse JSON input." +msgstr "Non è stato possibile analizzare il JSON in input" -#: js/turtledefs.js:137 -#: js/turtledefs.js:239 -#: js/HeapBlocks.js:59 -#: js/status.js:147 -msgid "heap" -msgstr "" +#: js/activity.js:6475 +#: js/activity.js:6580 +#: js/activity.js:6631 +msgid "Cannot load project from the file. Please check the file type." +msgstr "Impossibile caricare il progetto dal file. Controlla il tipo del file." -#: js/turtledefs.js:138 -#: js/turtledefs.js:240 -#: js/ProgramBlocks.js:495 -#: js/DictBlocks.js:142 -msgid "dictionary" -msgstr "dizionario" +#: js/activity.js:6917 +msgid "Invalid parameters" +msgstr "Parametri non validi" -#: js/turtledefs.js:139 -#: js/turtledefs.js:241 -msgid "ensemble" +#: js/blocks.js:1212 +#: js/blocks.js:3444 +#: js/blocks.js:3834 +#: js/blocks.js:3865 +#: js/blocks.js:3914 +#: js/blocks.js:3949 +#: js/blocks.js:6586 +#: js/palette.js:509 +#: js/palette.js:638 +#: js/palette.js:1105 +#: js/blocks/BoxesBlocks.js:282 +#: js/blocks/BoxesBlocks.js:285 +#: js/blocks/BoxesBlocks.js:405 +#: js/blocks/BoxesBlocks.js:594 +msgid "box" +msgstr "scatola" + +#: js/blocks.js:1713 +msgid "Consider breaking this stack into parts." msgstr "" -#: js/turtledefs.js:140 -#: js/turtledefs.js:242 -msgid "extras" -msgstr "extras" +#: js/blocks.js:2472 +#: js/palette.js:653 +#: js/blocks/MediaBlocks.js:602 +msgid "open file" +msgstr "aprire file" -#: js/turtledefs.js:142 -#: js/turtledefs.js:244 -#.TRANS: program as in computer program -#.TRANS: program as in computer program -msgid "program" -msgstr "programma" +#: js/blocks.js:3247 +#: js/palette.js:574 +#: js/blocks/MediaBlocks.js:892 +#: js/blocks/MediaBlocks.js:963 +msgid "text" +msgstr "testo" -#: js/turtledefs.js:143 -#: js/turtledefs.js:245 -msgid "my blocks" +#: js/blocks.js:3443 +#: js/palette.js:641 +#: js/palette.js:642 +#: js/blocks/BoxesBlocks.js:514 +msgid "store in box" msgstr "" -#: js/turtledefs.js:185 -#: js/turtledefs.js:281 -msgid "artwork" -msgstr "illustrazione" +#: js/blocks.js:3448 +#: js/blocks.js:3888 +#: js/blocks.js:3923 +#: js/blocks.js:3958 +#: js/blocks.js:5862 +#: js/blocks.js:5883 +#: js/blocks/BoxesBlocks.js:772 +msgid "box1" +msgstr "" -#: js/turtledefs.js:185 -#: js/turtledefs.js:281 -msgid "logic" -msgstr "logica" +#: js/blocks.js:3450 +#: js/blocks.js:3890 +#: js/blocks.js:3925 +#: js/blocks.js:3960 +#: js/blocks.js:5864 +#: js/blocks.js:5885 +#: js/blocks/BoxesBlocks.js:663 +msgid "box2" +msgstr "" -#: js/turtledefs.js:185 -#: js/turtledefs.js:281 -msgid "music" -msgstr "musica" +#: js/blocks.js:4122 +#: js/palette.js:639 +#: js/palette.js:644 +#: js/palette.js:1041 +#: js/blocks/BoxesBlocks.js:591 +msgid "store in" +msgstr "memorizzare in" -#: js/turtledefs.js:187 -#: js/turtledefs.js:463 -msgid "Music Blocks is a collection of tools for exploring fundamental musical concepts in a fun way." -msgstr "Music Blocks è una raccolta di strumenti per esplorare in modo divertente concetti musicali fondamentali." +#: js/blocks.js:4122 +#: js/blocks/BoxesBlocks.js:595 +#: js/blocks/DictBlocks.js:215 +#: js/blocks/DictBlocks.js:289 +#: js/blocks/EnsembleBlocks.js:391 +#: js/blocks/EnsembleBlocks.js:402 +#: js/blocks/MediaBlocks.js:746 +#: js/blocks/PitchBlocks.js:656 +#: js/blocks/PitchBlocks.js:934 +#: js/blocks/PitchBlocks.js:1866 +#: js/blocks/ProgramBlocks.js:390 +#: js/blocks/ProgramBlocks.js:495 +#: js/blocks/ProgramBlocks.js:658 +#: js/blocks/ToneBlocks.js:1025 +msgid "name" +msgstr "nome" -#: js/turtledefs.js:436 -msgid "Welcome to Turtle Blocks" -msgstr "Benvenuto su Turtle Blocks" +#: js/blocks.js:4122 +#: js/blocks/BoxesBlocks.js:75 +#: js/blocks/BoxesBlocks.js:595 +#: js/blocks/DictBlocks.js:289 +#: js/blocks/DictBlocks.js:430 +#: js/blocks/HeapBlocks.js:544 +#: js/blocks/RhythmBlocks.js:1130 +msgid "value" +msgstr "valore" -#: js/turtledefs.js:438 -#: js/turtledefs.js:465 -#: js/turtledefs.js:774 -#: js/turtledefs.js:805 -msgid "The current version is" -msgstr "La versione attuale è:" +#: js/blocks.js:4465 +msgid "Forever loop detected inside a note value block. Unexpected things may happen." +msgstr "" -#: js/turtledefs.js:446 -#: js/turtledefs.js:483 -msgid "Click the run button to run the project in fast mode." -msgstr "Clicca sul pulsante di esecuzione per avviare il progetto in modalità veloce." +#: js/blocks.js:4988 +msgid "There is no block selected." +msgstr "Nessun blocco selezionato" -#: js/turtledefs.js:452 -msgid "Stop the turtle." -msgstr "Ferma la tartaruga." +#: js/blocks.js:5091 +#: js/blocks/MediaBlocks.js:888 +msgid "show" +msgstr "mostrare" + +#: js/blocks.js:5094 +#: js/blocks/MediaBlocks.js:803 +#.TRANS: Avatar is the image used to determine the appearance of the mouse. +msgid "avatar" +msgstr "" + +#: js/blocks.js:5097 +#: js/blocks/ToneBlocks.js:1010 +#: js/widgets/sampler.js:975 +#.TRANS: The sound sample that the user uploads. +msgid "sample" +msgstr "Campione" -#: js/turtledefs.js:454 -#: js/turtledefs.js:491 -msgid "You can also type Alt-S to stop." -msgstr "Puoi digitare Alt-S per interrompere" +#: js/lilypond.js:606 +msgid "brown rat" +msgstr "" -#: js/turtledefs.js:462 -#: js/help.js:333 -msgid "Welcome to Music Blocks" -msgstr "Benvenuto su Music Blocks" +#: js/lilypond.js:607 +msgid "mole" +msgstr "" -#: js/turtledefs.js:472 -#: js/help.js:334 -msgid "Meet Mr. Mouse!" -msgstr "Conosci Mr. Mouse!" +#: js/lilypond.js:608 +msgid "chipmunk" +msgstr "" -#: js/turtledefs.js:473 -msgid "Mr Mouse is our Music Blocks conductor." -msgstr "Mr Mouse é il nostro conduttore di Music Blocks." +#: js/lilypond.js:609 +msgid "red squirrel" +msgstr "" -#: js/turtledefs.js:475 -msgid "Mr Mouse encourages you to explore Music Blocks." -msgstr "Mr Mouse ti incoraggia a esplorare Music Blocks" +#: js/lilypond.js:610 +msgid "guinea pig" +msgstr "" -#: js/turtledefs.js:477 -msgid "Let us start our tour!" -msgstr "Iniziamo il tour!" +#: js/lilypond.js:611 +msgid "capybara" +msgstr "" -#: js/turtledefs.js:489 -msgid "Stop the music (and the mice)." -msgstr "Ferma la musica (e i topi)" +#: js/lilypond.js:612 +msgid "coypu" +msgstr "" -#: js/turtledefs.js:499 -msgid "Record your project as video." -msgstr "Registra il tuo progetto come video." +#: js/lilypond.js:613 +msgid "black rat" +msgstr "" -#: js/turtledefs.js:505 -msgid "Toggle Fullscreen mode." -msgstr "Attiva/Disattiva modalità schermo intero." +#: js/lilypond.js:614 +msgid "grey squirrel" +msgstr "" -#: js/turtledefs.js:511 -msgid "Initialize a new project." -msgstr "Inizializza un nuovo progetto" +#: js/lilypond.js:615 +msgid "flying squirrel" +msgstr "" -#: js/turtledefs.js:517 -msgid "You can also load projects from the file system." -msgstr "Puoi anche aprire progetti dal filesystem." +#: js/lilypond.js:616 +msgid "bat" +msgstr "" -#: js/turtledefs.js:522 -#: js/StringHelper.js:46 -msgid "Delete" -msgstr "Elimina" +#: js/lilypond.js:749 +#: js/lilypond.js:913 +#: js/lilypond.js:951 +#: js/blocks/ActionBlocks.js:1256 +#: js/blocks/ExtrasBlocks.js:556 +msgid "start drum" +msgstr "" -#: js/turtledefs.js:523 -msgid "To delete a block, just right-click on it, then you will be able to see the delete option" -msgstr "Per eliminare un blocco, fai clic destro su di esso e quindi vedrai l'opzione di eliminazione." +#: js/logo.js:61 +msgid "Not a valid pitch name" +msgstr "" -#: js/turtledefs.js:528 -#: js/activity.js:2270 -#: js/LocalCard.js:31 -msgid "Copy" -msgstr "Copia" +#: js/logo.js:507 +#: js/blocks/ProgramBlocks.js:258 +#: js/blocks/ProgramBlocks.js:427 +msgid "You must select a file." +msgstr "" -#: js/turtledefs.js:529 -msgid "To copy a block, just right-click on it, then you will be able to see the copy option" +#: js/logo.js:1696 +msgid "Playback is ready." msgstr "" -#: js/turtledefs.js:535 -msgid "To extract a block, just right-click on it, then you will be able to see the extract option" +#: js/macros.js:711 +#: js/utils/musicutils.js:1162 +#: js/utils/synthutils.js:202 +#.TRANS: animal sound effect +msgid "duck" msgstr "" -#: js/turtledefs.js:542 -#: js/turtledefs.js:552 -#: js/turtledefs.js:573 -msgid "Save your project to a file." -msgstr "Salva il tuo progetto su un file." +#: js/notation.js:353 +msgid "Lilypond cannot process pickup of " +msgstr "" -#: js/turtledefs.js:549 -#: js/turtledefs.js:570 -msgid "save" -msgstr "salva" +#: js/palette.js:571 +msgid "grid" +msgstr "Griglia" -#: js/turtledefs.js:556 -#: js/turtledefs.js:577 -msgid "Save graphics from your project to as SVG." -msgstr "Salva le grafiche del tuo progetto come file SVG." +#: js/palette.js:580 +msgid "effect" +msgstr "effetto" -#: js/turtledefs.js:560 -#: js/turtledefs.js:581 -msgid "Save graphics from your project as PNG." -msgstr "Salva le grafiche del tuo progetto come file PNG." +#: js/palette.js:586 +msgid "sargam" +msgstr "sargam" -#: js/turtledefs.js:564 -#: js/turtledefs.js:597 -msgid "Save block artwork as an SVG file." -msgstr "Salva l'illustrazione dei blocchi come file SVG." +#: js/palette.js:601 +#: js/blocks/PitchBlocks.js:1209 +msgid "custom pitch" +msgstr "" -#: js/turtledefs.js:585 -msgid "Save audio from your project as WAV." -msgstr "Salva l'audio del tuo progetto come file WAV." +#: js/palette.js:609 +msgid "accidental" +msgstr "" -#: js/turtledefs.js:589 -msgid "Save your project to as an ABC file." -msgstr "Salva il tuo progetto come file ABC." +#: js/palette.js:633 +#: js/blocks/PitchBlocks.js:405 +msgid "pitch converter" +msgstr "convertitore di tonalità" -#: js/turtledefs.js:593 -msgid "Save your project to as a Lilypond file." -msgstr "Salva il tuo progetto come file Lilypond." +#: js/piemenus.js:200 +#: js/utils/musicutils.js:1187 +#: js/utils/musicutils.js:1207 +#: js/widgets/musickeyboard.js:2341 +#: js/widgets/phrasemaker.js:1908 +#: js/widgets/sampler.js:810 +#.TRANS: double sharp is a music term related to pitch +msgid "double sharp" +msgstr "doppio diesis" -#: js/turtledefs.js:604 -msgid "Load samples from server" -msgstr "Aprire esempi dal server" +#: js/piemenus.js:201 +#: js/utils/musicutils.js:1185 +#: js/utils/musicutils.js:1208 +#: js/blocks/PitchBlocks.js:1539 +#: js/turtleactions/PitchActions.js:323 +#: js/widgets/musickeyboard.js:2342 +#: js/widgets/phrasemaker.js:1909 +#: js/widgets/sampler.js:811 +#.TRANS: sharp is a music term related to pitch +#.TRANS: sharp is a half-step up in pitch +msgid "sharp" +msgstr "diesis" -#: js/turtledefs.js:605 -msgid "This button opens a viewer for loading example projects." -msgstr "Questo pulsante apre uno spettatore per aprire progetti di esempi." +#: js/piemenus.js:202 +#: js/utils/musicutils.js:1183 +#: js/utils/musicutils.js:1209 +#: js/widgets/musickeyboard.js:2343 +#: js/widgets/phrasemaker.js:1910 +#: js/widgets/sampler.js:812 +#.TRANS: natural is a music term related to pitch +msgid "natural" +msgstr "naturale" -#: js/turtledefs.js:611 -msgid "Palette buttons" -msgstr "Pulsanti della tavolozza" +#: js/piemenus.js:203 +#: js/utils/musicutils.js:1181 +#: js/utils/musicutils.js:1210 +#: js/blocks/PitchBlocks.js:1498 +#: js/turtleactions/PitchActions.js:326 +#: js/widgets/musickeyboard.js:2344 +#: js/widgets/phrasemaker.js:1911 +#: js/widgets/sampler.js:813 +#.TRANS: flat is a music term related to pitch +#.TRANS: flat is a half-step down in pitch +msgid "flat" +msgstr "bemolle" -#: js/turtledefs.js:612 -msgid "This toolbar contains the palette buttons including Rhythm Pitch Tone Action and more." -msgstr "" +#: js/piemenus.js:204 +#: js/utils/musicutils.js:1179 +#: js/utils/musicutils.js:1211 +#: js/widgets/musickeyboard.js:2345 +#: js/widgets/phrasemaker.js:1912 +#: js/widgets/sampler.js:814 +#.TRANS: double flat is a music term related to pitch +msgid "double flat" +msgstr "doppio bemolle" -#: js/turtledefs.js:614 -msgid "Click to show the palettes of blocks and drag blocks from the palettes onto the canvas to use them." +#: js/piemenus.js:2864 +#: js/utils/musicutils.js:1006 +#: js/blocks/PitchBlocks.js:1385 +#.TRANS: unison is a music term related to intervals +#.TRANS: unison means the note is the same as the current note +msgid "unison" msgstr "" -#: js/turtledefs.js:620 -msgid "Cartesian/Polar" -msgstr "" +#: js/piemenus.js:3018 +#: js/piemenus.js:3091 +#: js/utils/musicutils.js:1014 +#: js/utils/musicutils.js:1189 +#: js/utils/musicutils.js:1326 +#.TRANS: major is a music term related to intervals and mode +msgid "major" +msgstr "maggiore" -#: js/turtledefs.js:621 -msgid "Show or hide a coordinate grid." -msgstr "Mostra o nascondi la griglia di coordinate" +#: js/piemenus.js:3018 +#: js/piemenus.js:3091 +#: js/utils/musicutils.js:1032 +#.TRANS: modal scale for music +msgid "ionian" +msgstr "ionica" -#: js/turtledefs.js:627 -msgid "Clear the screen and return the mice to their initial positions." -msgstr "" +#: js/piemenus.js:3020 +#: js/piemenus.js:3095 +#: js/utils/musicutils.js:1012 +#: js/utils/musicutils.js:1190 +#: js/utils/musicutils.js:1323 +#.TRANS: minor is a music term related to intervals and mode +msgid "minor" +msgstr "minore" -#: js/turtledefs.js:633 -msgid "Collapse the graphics window." -msgstr "" +#: js/piemenus.js:3020 +#: js/piemenus.js:3095 +#: js/utils/musicutils.js:1042 +#.TRANS: modal scale for music +msgid "aeolian" +msgstr "eolica" -#: js/turtledefs.js:638 -#: js/activity.js:4256 -#: js/activity.js:4256 -msgid "Home" -msgstr "" +#: js/piemenus.js:3410 +msgid "Duplicate" +msgstr "Duplica" -#: js/turtledefs.js:639 -msgid "Return all blocks to the center of the screen." -msgstr "" +#: js/piemenus.js:3412 +msgid "Move to trash" +msgstr "Sposta nel cestino" -#: js/turtledefs.js:644 -msgid "Show/hide blocks" -msgstr "Mostra/Nascondi blocchi" +#: js/piemenus.js:3413 +#: js/widgets/timbre.js:968 +#: planet/js/StringHelper.js:69 +msgid "Close" +msgstr "Chiudi" -#: js/turtledefs.js:645 -msgid "Hide or show the blocks and the palettes." -msgstr "Nascondere o mostrare i blocchi e le tavolozze" +#: js/piemenus.js:3419 +msgid "Save stack" +msgstr "Salva pila" -#: js/turtledefs.js:650 -msgid "Expand/collapse collapsable blocks" +#: js/piemenus.js:3449 +msgid "In order to copy a sample, you must reload the widget, import the sample again, and export it." msgstr "" -#: js/turtledefs.js:651 -msgid "Expand or collapse start and action stacks." +#: js/piemenus.js:3812 +msgid "You have chosen key " msgstr "" -#: js/turtledefs.js:658 -#: js/activity.js:4265 -msgid "Decrease block size" -msgstr "Diminuisci la dimensione del blocco" +#: js/piemenus.js:3816 +msgid " for your pitch preview." +msgstr "" -#: js/turtledefs.js:659 -msgid "Decrease the size of the blocks." -msgstr "Diminuisci la dimensione dei blocchi" +#: js/turtle-singer.js:1363 +#.TRANS: partials are weighted components in a harmonic series +msgid "You must have at least one Partial block inside of a Weighted-partial block" +msgstr "" -#: js/turtledefs.js:664 -#: js/activity.js:4267 -msgid "Increase block size" -msgstr "Aumenta la dimensione del blocco" +#: js/turtle-singer.js:2077 +msgid "synth cannot play chords." +msgstr "il synth non può suonare accordi" -#: js/turtledefs.js:665 -msgid "Increase the size of the blocks." -msgstr "Aumenta la dimensione dei blocchi" +#: js/utils/musicutils.js:505 +#: js/utils/musicutils.js:645 +#: js/widgets/pitchdrummatrix.js:228 +#: js/widgets/musickeyboard.js:2885 +msgid "rest" +msgstr "" -#: js/turtledefs.js:670 -msgid "Expand/collapse option toolbar" -msgstr "Espandire/collassare barra degli strumenti di opzioni" +#: js/utils/musicutils.js:689 +msgid "Perfect unison" +msgstr "" -#: js/turtledefs.js:671 -msgid "Click this button to expand or collapse the auxillary toolbar." -msgstr "Click questo pulsante per espandire o collassare la barra degli strumenti assistente," +#: js/utils/musicutils.js:689 +msgid "Diminished second" +msgstr "" -#: js/turtledefs.js:676 -msgid "Run slow" -msgstr "Correre lento" +#: js/utils/musicutils.js:690 +msgid "Minor second" +msgstr "" -#: js/turtledefs.js:677 -msgid "Click to run the project in slow mode." -msgstr "Click per correre il progetto in modalità lenta" +#: js/utils/musicutils.js:690 +msgid "Augmented unison" +msgstr "" -#: js/turtledefs.js:683 -msgid "Click to run the project step by step." -msgstr "Click per correre il progetto passo per passi" +#: js/utils/musicutils.js:691 +msgid "Major second" +msgstr "" -#: js/turtledefs.js:690 -msgid "Display statistics about your Music project." +#: js/utils/musicutils.js:691 +msgid "Diminished third" msgstr "" -#: js/turtledefs.js:697 -msgid "Delete a selected plugin." -msgstr "Elimina un plugin selezionato" +#: js/utils/musicutils.js:692 +msgid "Minor third" +msgstr "" -#: js/turtledefs.js:704 -msgid "Enable scrolling" -msgstr "Abilita lo scrolling" +#: js/utils/musicutils.js:692 +msgid "Augmented second" +msgstr "" -#: js/turtledefs.js:705 -msgid "You can scroll the blocks on the canvas." +#: js/utils/musicutils.js:693 +msgid "Major third" msgstr "" -#: js/turtledefs.js:714 -msgid "Wrap Turtle" +#: js/utils/musicutils.js:693 +msgid "Diminished fourth" msgstr "" -#: js/turtledefs.js:715 -msgid "Turn Turtle wrapping On or Off." +#: js/utils/musicutils.js:694 +msgid "Perfect fourth" msgstr "" -#: js/turtledefs.js:725 -msgid "Restore blocks from the trash." -msgstr "Restaurare blocchi dalla spazzatura." +#: js/utils/musicutils.js:694 +msgid "Augmented third" +msgstr "" -#: js/turtledefs.js:732 -msgid "Switch mode" +#: js/utils/musicutils.js:695 +msgid "Diminished fifth" msgstr "" -#: js/turtledefs.js:733 -msgid "Switch between beginner and advance modes." +#: js/utils/musicutils.js:695 +msgid "Augmented fourth" msgstr "" -#: js/turtledefs.js:739 -msgid "Select your language preference." -msgstr "Seleziona la lingua" +#: js/utils/musicutils.js:696 +msgid "Perfect fifth" +msgstr "" -#: js/turtledefs.js:745 -msgid "Keyboard shortcuts" -msgstr "Scorciatoie da tastiera" +#: js/utils/musicutils.js:696 +msgid "Diminished sixth" +msgstr "" -#: js/turtledefs.js:746 -msgid "You can type d to create a do block and r to create a re block etc." -msgstr "Puoi premere d per creare un blocco 'do' e premere r per creare un blocco 're' ecc..." +#: js/utils/musicutils.js:697 +msgid "Minor sixth" +msgstr "" -#: js/turtledefs.js:753 -msgid "Show these messages." -msgstr "Mostrare questi messagi." +#: js/utils/musicutils.js:697 +msgid "Augmented fifth" +msgstr "" -#: js/turtledefs.js:759 -#: js/turtledefs.js:790 -#: js/help.js:335 -msgid "Guide" -msgstr "Guide" +#: js/utils/musicutils.js:698 +msgid "Major sixth" +msgstr "" -#: js/turtledefs.js:760 -msgid "A detailed guide to Turtle Blocks is available." +#: js/utils/musicutils.js:698 +msgid "Diminished seventh" msgstr "" -#: js/turtledefs.js:764 -msgid "Turtle Blocks Guide" -msgstr "Turtle Blocks Guida" +#: js/utils/musicutils.js:699 +msgid "Minor seventh" +msgstr "" -#: js/turtledefs.js:767 -#: js/turtledefs.js:798 -#: js/help.js:336 -msgid "About" -msgstr "Informazioni" +#: js/utils/musicutils.js:699 +msgid "Augmented sixth" +msgstr "" -#: js/turtledefs.js:768 -msgid "Turtle Blocks is an open source collection of tools for exploring musical concepts." -msgstr "Turtle Blocks è una raccolta di strumenti open source per esplorare concetti musicali." +#: js/utils/musicutils.js:700 +msgid "Major seventh" +msgstr "" -#: js/turtledefs.js:770 -msgid "A full list of contributors can be found in the Turtle Blocks GitHub repository." -msgstr "Un elenco completo dei contributori può essere trovato nel repository di Turtle Blocks su GitHub." +#: js/utils/musicutils.js:700 +msgid "Diminished octave" +msgstr "" -#: js/turtledefs.js:772 -msgid "Turtle Blocks is licensed under the AGPL." -msgstr "Turtle Blocks è distribuito con licenza AGPL." +#: js/utils/musicutils.js:701 +msgid "Perfect octave" +msgstr "" -#: js/turtledefs.js:780 -msgid "Turtle Blocks GitHub repository" -msgstr "Repository GitHub di Turtle Blocks" +#: js/utils/musicutils.js:701 +msgid "Augmented seventh" +msgstr "" -#: js/turtledefs.js:783 -#: js/turtledefs.js:814 -#: js/help.js:337 -#: js/help.js:359 -msgid "Congratulations." -msgstr "Congratulazioni." +#: js/utils/musicutils.js:702 +msgid "Minor ninth" +msgstr "" -#: js/turtledefs.js:784 -msgid "You have finished the tour. Please enjoy Turtle Blocks!" -msgstr "Hai completato il tour. Ti auguro un buon divertimento con Turtle Blocks!" +#: js/utils/musicutils.js:702 +msgid "Augmented octave" +msgstr "" -#: js/turtledefs.js:791 -msgid "A detailed guide to Music Blocks is available." -msgstr "È disponibile una guida dettagliata su Music Blocks." +#: js/utils/musicutils.js:703 +msgid "Major ninth" +msgstr "" -#: js/turtledefs.js:795 -#: js/SaveInterface.js:76 -msgid "Music Blocks Guide" -msgstr "Music Blocks Guida" +#: js/utils/musicutils.js:703 +msgid "Diminished tenth" +msgstr "" -#: js/turtledefs.js:799 -msgid "Music Blocks is an open source collection of tools for exploring musical concepts." -msgstr "Music Blocks è una raccolta di strumenti open source per esplorare concetti musicali." +#: js/utils/musicutils.js:704 +msgid "Minor tenth" +msgstr "" -#: js/turtledefs.js:801 -msgid "A full list of contributors can be found in the Music Blocks GitHub repository." -msgstr "Un elenco completo dei contributori è disponibile nel repository di Music Blocks su GitHub." +#: js/utils/musicutils.js:704 +msgid "Augmented ninth" +msgstr "" -#: js/turtledefs.js:803 -msgid "Music Blocks is licensed under the AGPL." -msgstr "Music Blocks è distribuito con licenza AGPL." +#: js/utils/musicutils.js:705 +msgid "Major tenth" +msgstr "" -#: js/turtledefs.js:811 -msgid "Music Blocks GitHub repository" -msgstr "Repository GitHub di Music Blocks" +#: js/utils/musicutils.js:705 +msgid "Diminished eleventh" +msgstr "" -#: js/turtledefs.js:815 -msgid "You have finished the tour. Please enjoy Music Blocks!" -msgstr "Hai completato il tour. Ti auguro un buon divertimento con Music Blocks!" +#: js/utils/musicutils.js:706 +msgid "Perfect eleventh" +msgstr "" -#: js/activity.js:369 -msgid "Search for blocks" -msgstr "Cerca i blocchi" +#: js/utils/musicutils.js:706 +msgid "Augmented tenth" +msgstr "" -#: js/activity.js:1145 -msgid "Refresh your browser to change to advanced mode." -msgstr "Aggiorna il tuo browser per passare alla modalità avanzata." +#: js/utils/musicutils.js:707 +msgid "Diminished twelfth" +msgstr "" -#: js/activity.js:1150 -msgid "Refresh your browser to change to beginner mode." -msgstr "Aggiorna il tuo browser per passare alla modalità principiante." +#: js/utils/musicutils.js:707 +msgid "Augmented eleventh" +msgstr "" -#: js/activity.js:1184 -msgid "Catching mice" -msgstr "Catturando topi" +#: js/utils/musicutils.js:708 +msgid "Perfect twelfth" +msgstr "" -#: js/activity.js:1185 -msgid "Cleaning the instruments" +#: js/utils/musicutils.js:708 +msgid "Diminished thirteenth" msgstr "" -#: js/activity.js:1186 -msgid "Testing key pieces" +#: js/utils/musicutils.js:709 +msgid "Minor thirteenth" msgstr "" -#: js/activity.js:1187 -msgid "Sight-reading" +#: js/utils/musicutils.js:709 +msgid "Augmented fifth, plus an octave" msgstr "" -#: js/activity.js:1188 -msgid "Combining math and music" -msgstr "Unendo matematica e musica" +#: js/utils/musicutils.js:710 +msgid "Major thirteenth" +msgstr "" -#: js/activity.js:1189 -msgid "Generating more blocks" +#: js/utils/musicutils.js:710 +msgid "Diminished seventh, plus an octave" msgstr "" -#: js/activity.js:1190 -msgid "Do Re Mi Fa Sol La Ti Do" -msgstr "Do Re Mi Fa Sol La Si Do" +#: js/utils/musicutils.js:838 +#.TRANS: ordinal number. Please keep exactly one space between each number. +msgid "1st 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th" +msgstr "" -#: js/activity.js:1191 -msgid "Tuning string instruments" +#: js/utils/musicutils.js:1008 +#: js/utils/musicutils.js:1191 +#: js/utils/musicutils.js:1325 +#.TRANS: augmented is a music term related to intervals +msgid "augmented" msgstr "" -#: js/activity.js:1192 -msgid "Pressing random keys" -msgstr "Premendo tasti a caso" +#: js/utils/musicutils.js:1010 +#: js/utils/musicutils.js:1192 +#: js/utils/musicutils.js:1324 +#.TRANS: diminished is a music term related to intervals and mode +msgid "diminished" +msgstr "" -#: js/activity.js:1351 -msgid "plugins will be removed upon restart." -msgstr "I plugin verranno rimossi al riavvio." +#: js/utils/musicutils.js:1016 +#: js/utils/musicutils.js:1322 +#: js/blocks/IntervalsBlocks.js:649 +#: js/turtleactions/IntervalsActions.js:120 +#: js/turtleactions/IntervalsActions.js:124 +#.TRANS: perfect is a music term related to intervals +msgid "perfect" +msgstr "" -#: js/activity.js:1360 -msgid "show Cartesian" +#: js/utils/musicutils.js:1018 +#.TRANS: twelve semi-tone scale for music +msgid "chromatic" msgstr "" -#: js/activity.js:1842 -msgid "output tools" +#: js/utils/musicutils.js:1019 +msgid "algerian" msgstr "" -#: js/activity.js:1845 -msgid "custom note" +#: js/utils/musicutils.js:1020 +msgid "spanish" msgstr "" -#: js/activity.js:1848 -msgid "accidental name" +#: js/utils/musicutils.js:1022 +#.TRANS: modal scale in music +msgid "octatonic" msgstr "" -#: js/activity.js:1851 -#: js/PitchBlocks.js:855 -msgid "east indian solfege" +#: js/utils/musicutils.js:1024 +#.TRANS: harmonic major scale in music +msgid "harmonic major" msgstr "" -#: js/activity.js:1854 -#: js/PitchBlocks.js:869 -msgid "note name" +#: js/utils/musicutils.js:1026 +#.TRANS: natural minor scales in music +msgid "natural minor" msgstr "" -#: js/activity.js:1857 -#: js/IntervalsBlocks.js:94 -msgid "temperament name" +#: js/utils/musicutils.js:1028 +#.TRANS: harmonic minor scale in music +msgid "harmonic minor" msgstr "" -#: js/activity.js:1863 -msgid "chord name" -msgstr "nome dell'accordo" +#: js/utils/musicutils.js:1030 +#.TRANS: melodic minor scale in music +msgid "melodic minor" +msgstr "" -#: js/activity.js:1869 -msgid "filter type" -msgstr "tipo di filtro" +#: js/utils/musicutils.js:1034 +#.TRANS: modal scale for music +msgid "dorian" +msgstr "" -#: js/activity.js:1872 -msgid "oscillator type" -msgstr "tipo di oscillatore" +#: js/utils/musicutils.js:1036 +#.TRANS: modal scale for music +msgid "phrygian" +msgstr "" -#: js/activity.js:1878 -#: js/DrumBlocks.js:32 -msgid "noise name" +#: js/utils/musicutils.js:1038 +#.TRANS: modal scale for music +msgid "lydian" msgstr "" -#: js/activity.js:1881 -#: js/DrumBlocks.js:75 -msgid "drum name" +#: js/utils/musicutils.js:1040 +#.TRANS: modal scale for music +msgid "mixolydian" msgstr "" -#: js/activity.js:1884 -#: js/DrumBlocks.js:119 -msgid "effects name" +#: js/utils/musicutils.js:1044 +#.TRANS: modal scale for music +msgid "locrian" msgstr "" -#: js/activity.js:1887 -msgid "wrap mode" +#: js/utils/musicutils.js:1046 +#.TRANS: minor jazz scale for music +msgid "jazz minor" msgstr "" -#: js/activity.js:1890 -msgid "load file" +#: js/utils/musicutils.js:1048 +#.TRANS: bebop scale for music +msgid "bebop" msgstr "" -#: js/activity.js:2056 -msgid "This block is deprecated." +#: js/utils/musicutils.js:1049 +msgid "arabic" msgstr "" -#: js/activity.js:2058 -msgid "Block cannot be found." +#: js/utils/musicutils.js:1050 +msgid "byzantine" msgstr "" -#: js/activity.js:2266 -msgid "Saving block artwork" -msgstr "Salva l'illustrazione del blocco" +#: js/utils/musicutils.js:1052 +#.TRANS: musical scale for music by Verdi +msgid "enigmatic" +msgstr "" -#: js/activity.js:2277 -msgid "Erase" +#: js/utils/musicutils.js:1053 +msgid "ethiopian" msgstr "" -#: js/activity.js:2301 -#: js/activity.js:2323 -msgid "Paste" -msgstr "Incollare" +#: js/utils/musicutils.js:1055 +#.TRANS: Ethiopic scale for music +msgid "geez" +msgstr "" -#: js/activity.js:2305 -msgid "Save block help" +#: js/utils/musicutils.js:1056 +msgid "hindu" msgstr "" -#: js/activity.js:2390 -msgid "Jumping to the bottom of the page." +#: js/utils/musicutils.js:1057 +msgid "hungarian" msgstr "" -#: js/activity.js:2396 -msgid "Scrolling up." +#: js/utils/musicutils.js:1059 +#.TRANS: minor Romanian scale for music +msgid "romanian minor" msgstr "" -#: js/activity.js:2401 -msgid "Scrolling down." +#: js/utils/musicutils.js:1060 +msgid "spanish gypsy" msgstr "" -#: js/activity.js:2406 -msgid "Extracting block" +#: js/utils/musicutils.js:1062 +#.TRANS: musical scale for Mid-Eastern music +msgid "maqam" msgstr "" -#: js/activity.js:2414 -msgid "Moving block up." -msgstr "Sposta il blocco su" +#: js/utils/musicutils.js:1064 +#.TRANS: minor blues scale for music +msgid "minor blues" +msgstr "" -#: js/activity.js:2435 -msgid "Moving block down." -msgstr "Sposta il blocco giù" +#: js/utils/musicutils.js:1066 +#.TRANS: major blues scale for music +msgid "major blues" +msgstr "" -#: js/activity.js:2456 -msgid "Moving block left." -msgstr "Sposta il blocco a sinistra" +#: js/utils/musicutils.js:1067 +msgid "whole tone" +msgstr "" + +#: js/utils/musicutils.js:1069 +#.TRANS: pentatonic is a general term that means "five note scale". This scale is typically known as "minor pentatonic" +msgid "minor pentatonic" +msgstr "" -#: js/activity.js:2473 -msgid "Moving block right." -msgstr "Sposta il blocco a destra" +#: js/utils/musicutils.js:1071 +#.TRANS: pentatonic is a general term that means "five note scale". This scale is typically known as "major pentatonic" +msgid "major pentatonic" +msgstr "" -#: js/activity.js:2488 -msgid "Jump to home position." +#: js/utils/musicutils.js:1072 +msgid "chinese" msgstr "" -#: js/activity.js:2515 -msgid "Hide blocks" -msgstr "Nascondi blocchi" +#: js/utils/musicutils.js:1073 +msgid "egyptian" +msgstr "" -#: js/activity.js:3389 -msgid "Click the run button to run the project." +#: js/utils/musicutils.js:1075 +#.TRANS: https://en.wikipedia.org/wiki/Hirajoshi_scale NOTE: There are three different versions of this scale +msgid "hirajoshi" msgstr "" -#: js/activity.js:3456 -#: js/SaveInterface.js:131 -#: js/SaveInterface.js:204 -#: js/SaveInterface.js:262 -#: js/SaveInterface.js:389 -#: js/SaveInterface.js:417 -#: js/ProjectStorage.js:27 -#: js/GlobalPlanet.js:467 -#: js/GlobalPlanet.js:469 -#: js/GlobalPlanet.js:495 -#.TRANS: default project title when saving as Lilypond -msgid "My Project" -msgstr "Mio Progetto" +#: js/utils/musicutils.js:1076 +msgid "Japan" +msgstr "" -#: js/activity.js:4261 -msgid "Show/hide block" -msgstr "Mostra/nascondi blocco" +#: js/utils/musicutils.js:1078 +#.TRANS: https://en.wikipedia.org/wiki/In_scale and https://en.wikipedia.org/wiki/Sakura_Sakura +msgid "in" +msgstr "" -#: js/activity.js:4263 -msgid "Expand/collapse blocks" -msgstr "Espandi/collassa blocchi" +#: js/utils/musicutils.js:1080 +#.TRANS: https://en.wikipedia.org/wiki/Miny%C5%8D_scale +msgid "minyo" +msgstr "" -#: js/activity.js:4381 -msgid "Could not parse JSON input." -msgstr "Non è stato possibile analizzare il JSON in input" +#: js/utils/musicutils.js:1082 +#.TRANS: Italian mathematician +msgid "fibonacci" +msgstr "" -#: js/activity.js:4684 -#: js/activity.js:4771 -#: js/activity.js:4821 -msgid "Cannot load project from the file. Please check the file type." -msgstr "Impossibile caricare il progetto dal file. Controlla il tipo del file." +#: js/utils/musicutils.js:1083 +#: js/utils/musicutils.js:1134 +#: js/utils/musicutils.js:1177 +#: js/utils/musicutils.js:1199 +#: js/utils/synthutils.js:134 +#: js/blocks/IntervalsBlocks.js:1124 +#: js/blocks/ToneBlocks.js:946 +#: js/blocks/VolumeBlocks.js:411 +#: js/blocks/WidgetBlocks.js:399 +#: js/blocks/WidgetBlocks.js:404 +#: js/turtleactions/VolumeActions.js:218 +#: js/widgets/modewidget.js:919 +#.TRANS: customize voice +msgid "custom" +msgstr "" -#: js/activity.js:5051 -msgid "Invalid parameters" -msgstr "Parametri non validi" +#: js/utils/musicutils.js:1085 +#: js/utils/musicutils.js:1531 +#: js/blocks/WidgetBlocks.js:176 +#.TRANS: highpass filter +msgid "highpass" +msgstr "passa alto" -#: js/turtle-singer.js:1334 -#.TRANS: partials are weighted components in a harmonic series -msgid "You must have at least one Partial block inside of a Weighted-partial block" +#: js/utils/musicutils.js:1087 +#: js/utils/musicutils.js:1532 +#.TRANS: lowpass filter +msgid "lowpass" msgstr "" -#: js/turtle-singer.js:2048 -msgid "synth cannot play chords." -msgstr "il synth non può suonare accordi" +#: js/utils/musicutils.js:1089 +#: js/utils/musicutils.js:1533 +#.TRANS: bandpass filter +msgid "bandpass" +msgstr "" -#: js/lilypond.js:614 -msgid "brown rat" +#: js/utils/musicutils.js:1091 +#: js/utils/musicutils.js:1534 +#.TRANS: high-shelf filter +msgid "highshelf" msgstr "" -#: js/lilypond.js:615 -msgid "mole" +#: js/utils/musicutils.js:1093 +#: js/utils/musicutils.js:1535 +#.TRANS: low-shelf filter +msgid "lowshelf" msgstr "" -#: js/lilypond.js:616 -msgid "chipmunk" +#: js/utils/musicutils.js:1095 +#: js/utils/musicutils.js:1536 +#.TRANS: notch-shelf filter +msgid "notch" msgstr "" -#: js/lilypond.js:617 -msgid "red squirrel" +#: js/utils/musicutils.js:1097 +#: js/utils/musicutils.js:1537 +#.TRANS: all-pass filter +msgid "allpass" msgstr "" -#: js/lilypond.js:618 -msgid "guinea pig" +#: js/utils/musicutils.js:1099 +#: js/utils/musicutils.js:1538 +#.TRANS: peaking filter +msgid "peaking" msgstr "" -#: js/lilypond.js:619 -msgid "capybara" +#: js/utils/musicutils.js:1100 +#: js/utils/musicutils.js:1546 +#: js/utils/synthutils.js:126 +#: js/blocks/PitchBlocks.js:85 +#.TRANS: sine wave +msgid "sine" msgstr "" -#: js/lilypond.js:620 -msgid "coypu" +#: js/utils/musicutils.js:1101 +#: js/utils/musicutils.js:1547 +#: js/utils/synthutils.js:128 +#: js/blocks/PitchBlocks.js:39 +#.TRANS: square wave +msgid "square" msgstr "" -#: js/lilypond.js:621 -msgid "black rat" +#: js/utils/musicutils.js:1102 +#: js/utils/musicutils.js:1548 +#: js/utils/synthutils.js:132 +#: js/blocks/PitchBlocks.js:62 +#: js/blocks/ToneBlocks.js:39 +#.TRANS: triangle wave +msgid "triangle" msgstr "" -#: js/lilypond.js:622 -msgid "grey squirrel" +#: js/utils/musicutils.js:1103 +#: js/utils/musicutils.js:1549 +#: js/utils/synthutils.js:130 +#: js/blocks/PitchBlocks.js:108 +#.TRANS: sawtooth wave +msgid "sawtooth" msgstr "" -#: js/lilypond.js:623 -msgid "flying squirrel" +#: js/utils/musicutils.js:1105 +#: js/utils/musicutils.js:1312 +#: js/blocks/PitchBlocks.js:931 +#: js/blocks/PitchBlocks.js:937 +#: js/turtleactions/PitchActions.js:469 +#.TRANS: even numbers +#.TRANS: invert based on even or odd number or musical scale +msgid "even" msgstr "" -#: js/lilypond.js:624 -msgid "bat" +#: js/utils/musicutils.js:1107 +#: js/utils/musicutils.js:1313 +#: js/blocks/PitchBlocks.js:937 +#: js/turtleactions/PitchActions.js:471 +#.TRANS: odd numbers +msgid "odd" msgstr "" -#: js/lilypond.js:757 -#: js/lilypond.js:921 -#: js/lilypond.js:959 -#: js/ActionBlocks.js:1256 -#: js/ExtrasBlocks.js:553 -msgid "start drum" +#: js/utils/musicutils.js:1108 +#: js/utils/musicutils.js:1314 +#: js/blocks/PitchBlocks.js:937 +#: js/turtleactions/PitchActions.js:473 +msgid "scalar" msgstr "" -#: js/SaveInterface.js:59 -#: js/SaveInterface.js:61 -#: js/SaveInterface.js:93 -msgid "Music Blocks Project" -msgstr "Progetto Music Blocks" +#: js/utils/musicutils.js:1109 +#: js/utils/synthutils.js:72 +#: js/blocks/VolumeBlocks.js:47 +#.TRANS: musical instrument +msgid "piano" +msgstr "" -#: js/SaveInterface.js:63 -msgid "This project was created in Music Blocks" -msgstr "Questo progetto è stato creato con Music Blocks" +#: js/utils/musicutils.js:1110 +#: js/utils/synthutils.js:74 +#.TRANS: musical instrument +msgid "violin" +msgstr "" -#: js/SaveInterface.js:67 -msgid "Music Blocks is a Free/Libre Software application." +#: js/utils/musicutils.js:1111 +#: js/utils/synthutils.js:76 +#.TRANS: viola musical instrument +msgid "viola" msgstr "" -#: js/SaveInterface.js:69 -msgid "The source code can be accessed at" -msgstr "Il codice sorgente è accessibile a" +#: js/utils/musicutils.js:1112 +#: js/utils/synthutils.js:114 +#.TRANS: xylophone musical instrument +msgid "xylophone" +msgstr "" -#: js/SaveInterface.js:72 -msgid "For more information, please consult the" -msgstr "Per altre informazioni, consulta il" +#: js/utils/musicutils.js:1113 +#: js/utils/synthutils.js:136 +#.TRANS: vibraphone musical instrument +msgid "vibraphone" +msgstr "" -#: js/SaveInterface.js:83 -msgid "Alternatively, open the file in Music Blocks using the Load project button." +#: js/utils/musicutils.js:1114 +#: js/utils/synthutils.js:78 +#.TRANS: musical instrument +msgid "cello" msgstr "" -#: js/SaveInterface.js:85 -msgid "Project Code" +#: js/utils/musicutils.js:1116 +#: js/utils/synthutils.js:82 +#.TRANS: viola musical instrument +msgid "double bass" msgstr "" -#: js/SaveInterface.js:87 -msgid "This code stores data about the blocks in a project." +#: js/utils/musicutils.js:1117 +#: js/utils/synthutils.js:84 +#: js/widgets/rhythmruler.js:2511 +#.TRANS: musical instrument +msgid "guitar" msgstr "" -#: js/SaveInterface.js:89 -msgid "Show" -msgstr "Mostra" +#: js/utils/musicutils.js:1118 +#: js/utils/synthutils.js:86 +#.TRANS: musical instrument +msgid "acoustic guitar" +msgstr "" -#: js/SaveInterface.js:91 -msgid "Hide" -msgstr "Nascondi" +#: js/utils/musicutils.js:1119 +#: js/utils/synthutils.js:88 +#.TRANS: musical instrument +msgid "flute" +msgstr "" -#: js/SaveInterface.js:197 -#: js/SaveInterface.js:58 -msgid "No description provided" -msgstr "Nessuna descrizione fornita" +#: js/utils/musicutils.js:1120 +#: js/utils/synthutils.js:90 +#.TRANS: musical instrument +msgid "clarinet" +msgstr "" -#: js/SaveInterface.js:332 -msgid "Your recording is in progress." -msgstr "La registrazione è in corso" +#: js/utils/musicutils.js:1121 +#: js/utils/synthutils.js:92 +#.TRANS: musical instrument +msgid "saxophone" +msgstr "" -#: js/SaveInterface.js:401 -#.TRANS: File name prompt for save as Lilypond -msgid "File name" -msgstr "Nome del file" +#: js/utils/musicutils.js:1122 +#: js/utils/synthutils.js:94 +#.TRANS: musical instrument +msgid "tuba" +msgstr "" -#: js/SaveInterface.js:403 -#: js/StringHelper.js:39 -#.TRANS: Project title prompt for save as Lilypond -msgid "Project title" -msgstr "Titolo del progetto" +#: js/utils/musicutils.js:1123 +#: js/utils/synthutils.js:96 +#.TRANS: musical instrument +msgid "trumpet" +msgstr "" -#: js/SaveInterface.js:405 -#.TRANS: Project title prompt for save as Lilypond -msgid "Project author" -msgstr "Autore del progetto" +#: js/utils/musicutils.js:1124 +#: js/utils/synthutils.js:98 +#.TRANS: musical instrument +msgid "oboe" +msgstr "" -#: js/SaveInterface.js:407 -#.TRANS: MIDI prompt for save as Lilypond -msgid "Include MIDI output?" +#: js/utils/musicutils.js:1125 +#: js/utils/synthutils.js:100 +#.TRANS: musical instrument +msgid "trombone" msgstr "" -#: js/SaveInterface.js:409 -#.TRANS: Guitar prompt for save as Lilypond -msgid "Include guitar tablature output?" +#: js/utils/musicutils.js:1126 +#: js/utils/synthutils.js:116 +#.TRANS: polytone synthesizer +msgid "electronic synth" msgstr "" -#: js/SaveInterface.js:411 -#.TRANS: Lilypond is a scripting language for generating sheet music -msgid "Save as Lilypond" -msgstr "Salva come Lilypond" +#: js/utils/musicutils.js:1127 +#: js/utils/synthutils.js:118 +#.TRANS: simple monotone synthesizer +msgid "simple 1" +msgstr "" -#: js/SaveInterface.js:426 -#: js/EnsembleBlocks.js:75 -#: js/EnsembleBlocks.js:154 -#: js/EnsembleBlocks.js:216 -#: js/EnsembleBlocks.js:302 -#: js/EnsembleBlocks.js:348 -#: js/EnsembleBlocks.js:389 -#: js/EnsembleBlocks.js:441 -#: js/EnsembleBlocks.js:490 -#: js/EnsembleBlocks.js:536 -#: js/EnsembleBlocks.js:583 -#: js/EnsembleBlocks.js:637 -#: js/EnsembleBlocks.js:753 -#: js/EnsembleBlocks.js:840 -#: js/EnsembleBlocks.js:899 -#: js/EnsembleBlocks.js:942 -#: js/EnsembleBlocks.js:1212 -#: js/EnsembleBlocks.js:1280 -#.TRANS: default project author when saving as Lilypond -msgid "Mr. Mouse" -msgstr "Mr. Mouse" +#: js/utils/musicutils.js:1128 +msgid "simple 2" +msgstr "" -#: js/SaveInterface.js:573 -msgid "The Lilypond code is copied to clipboard. You can paste it here: " -msgstr "Il codice Lilypond è stato copiato negli appunti. Puoi copiarlo qui: " +#: js/utils/musicutils.js:1129 +msgid "simple 3" +msgstr "" -#: js/RhythmBlockPaletteBlocks.js:50 -#: js/RhythmBlockPaletteBlocks.js:232 -#.TRANS: rhythm block -#.TRANS: translate "rhythm1" as rhythm -msgid "rhythm1" +#: js/utils/musicutils.js:1130 +msgid "simple 4" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:70 -#: js/RhythmBlockPaletteBlocks.js:251 -#: js/RhythmBlockPaletteBlocks.js:484 -#: js/RhythmBlockPaletteBlocks.js:553 -#: js/RhythmBlockPaletteBlocks.js:874 -msgid "number of notes" +#: js/utils/musicutils.js:1131 +#: js/utils/synthutils.js:58 +#: js/blocks/DrumBlocks.js:191 +#.TRANS: white noise synthesizer +msgid "white noise" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:126 -msgid "polyphonic rhythm" +#: js/utils/musicutils.js:1132 +#: js/utils/synthutils.js:60 +#.TRANS: brown noise synthesizer +msgid "brown noise" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:218 -msgid "The Rhythm block is used to generate rhythm patterns." +#: js/utils/musicutils.js:1133 +#: js/utils/synthutils.js:62 +#.TRANS: pink noise synthesizer +msgid "pink noise" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:279 -msgid "1/64 note" -msgstr "1/64 nota" +#: js/utils/musicutils.js:1135 +#: js/utils/synthutils.js:148 +#: js/widgets/rhythmruler.js:2057 +#: js/widgets/rhythmruler.js:2319 +#.TRANS: musical instrument +msgid "snare drum" +msgstr "" -#: js/RhythmBlockPaletteBlocks.js:303 -msgid "1/32 note" -msgstr "1/32 nota" +#: js/utils/musicutils.js:1136 +#: js/utils/synthutils.js:150 +#.TRANS: musical instrument +msgid "kick drum" +msgstr "" -#: js/RhythmBlockPaletteBlocks.js:331 -msgid "1/16 note" -msgstr "1/16 nota" +#: js/utils/musicutils.js:1137 +#: js/utils/synthutils.js:152 +#.TRANS: musical instrument +msgid "tom tom" +msgstr "" -#: js/RhythmBlockPaletteBlocks.js:359 -msgid "eighth note" -msgstr "un ottavo di nota" +#: js/utils/musicutils.js:1138 +#: js/utils/synthutils.js:154 +#.TRANS: musical instrument +msgid "floor tom" +msgstr "" -#: js/RhythmBlockPaletteBlocks.js:387 -msgid "quarter note" -msgstr "un quarto di nota" +#: js/utils/musicutils.js:1139 +#: js/utils/synthutils.js:156 +#.TRANS: musical instrument +msgid "bass drum" +msgstr "" -#: js/RhythmBlockPaletteBlocks.js:415 -msgid "half note" -msgstr "mezza nota" +#: js/utils/musicutils.js:1140 +#: js/utils/synthutils.js:158 +#.TRANS: a drum made from an inverted cup +msgid "cup drum" +msgstr "" -#: js/RhythmBlockPaletteBlocks.js:443 -msgid "whole note" -msgstr "nota intera" +#: js/utils/musicutils.js:1141 +#: js/utils/synthutils.js:160 +#.TRANS: musical instrument +msgid "darbuka drum" +msgstr "" -#: js/RhythmBlockPaletteBlocks.js:481 -#: js/RhythmBlockPaletteBlocks.js:550 -#: js/RhythmBlockPaletteBlocks.js:601 -#.TRANS: A tuplet is a note value divided into irregular time values. -msgid "tuplet" +#: js/utils/musicutils.js:1142 +#: js/utils/synthutils.js:164 +#.TRANS: musical instrument +msgid "hi hat" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:767 -msgid "septuplet" +#: js/utils/musicutils.js:1143 +#: js/utils/synthutils.js:166 +#.TRANS: a small metal bell +msgid "ride bell" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:795 -msgid "quintuplet" +#: js/utils/musicutils.js:1144 +#: js/utils/synthutils.js:168 +#.TRANS: musical instrument +msgid "cow bell" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:823 -msgid "triplet" +#: js/utils/musicutils.js:1145 +msgid "japanese drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:850 -msgid "simple tuplet" +#: js/utils/musicutils.js:1146 +#: js/utils/synthutils.js:174 +#.TRANS: musical instrument +msgid "japanese bell" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:860 -msgid "Tuplets are a collection of notes that get scaled to a specific duration." +#: js/utils/musicutils.js:1147 +#: js/utils/synthutils.js:170 +#.TRANS: musical instrument +msgid "triangle bell" msgstr "" -#: js/WidgetBlocks.js:71 -#.TRANS: sound envelope (ADSR) -msgid "envelope" +#: js/utils/musicutils.js:1148 +#: js/utils/synthutils.js:172 +#.TRANS: musical instrument +msgid "finger cymbals" msgstr "" -#: js/WidgetBlocks.js:79 -#.TRANS: Attack time is the time taken for initial run-up of level from nil to peak, beginning when the key is first pressed. -msgid "attack" +#: js/utils/musicutils.js:1149 +#: js/utils/synthutils.js:176 +#.TRANS: a musically tuned set of bells +msgid "chime" msgstr "" -#: js/WidgetBlocks.js:81 -#.TRANS: Decay time is the time taken for the subsequent run down from the attack level to the designated sustain level. -msgid "decay" +#: js/utils/musicutils.js:1150 +#: js/utils/synthutils.js:178 +#.TRANS: a musical instrument +msgid "gong" msgstr "" -#: js/WidgetBlocks.js:83 -#.TRANS: Sustain level is the level during the main sequence of the sound's duration, until the key is released. -msgid "sustain" +#: js/utils/musicutils.js:1151 +#: js/utils/synthutils.js:180 +#.TRANS: sound effect +msgid "clang" msgstr "" -#: js/WidgetBlocks.js:85 -#.TRANS: Release time is the time taken for the level to decay from the sustain level to zero after the key is released. -msgid "release" +#: js/utils/musicutils.js:1152 +#: js/utils/synthutils.js:182 +#.TRANS: sound effect +msgid "crash" msgstr "" -#: js/WidgetBlocks.js:96 -msgid "Attack value should be from 0 to 100." +#: js/utils/musicutils.js:1153 +#: js/utils/synthutils.js:184 +#.TRANS: sound effect +msgid "bottle" msgstr "" -#: js/WidgetBlocks.js:99 -msgid "Decay value should be from 0 to 100." +#: js/utils/musicutils.js:1154 +#: js/utils/synthutils.js:186 +#.TRANS: sound effect +msgid "clap" msgstr "" -#: js/WidgetBlocks.js:102 -msgid "Sustain value should be from 0 to 100." +#: js/utils/musicutils.js:1155 +#: js/utils/synthutils.js:188 +#.TRANS: sound effect +msgid "slap" msgstr "" -#: js/WidgetBlocks.js:105 -msgid "Release value should be from 0-100." +#: js/utils/musicutils.js:1156 +#: js/utils/synthutils.js:190 +#.TRANS: sound effect +msgid "splash" msgstr "" -#: js/WidgetBlocks.js:121 -msgid "You are adding multiple envelope blocks." +#: js/utils/musicutils.js:1157 +#: js/utils/synthutils.js:192 +#.TRANS: sound effect +msgid "bubbles" msgstr "" -#: js/WidgetBlocks.js:144 -#.TRANS: a filter removes some unwanted components from a signal -msgid "filter" -msgstr "filter" +#: js/utils/musicutils.js:1158 +#: js/utils/synthutils.js:194 +#.TRANS: sound effect +msgid "raindrop" +msgstr "" -#: js/WidgetBlocks.js:149 -#: js/musicutils.js:706 -#: js/musicutils.js:1105 -#.TRANS: highpass filter -msgid "highpass" -msgstr "passa alto" +#: js/utils/musicutils.js:1159 +#: js/utils/synthutils.js:196 +#.TRANS: animal sound effect +msgid "cat" +msgstr "" -#: js/WidgetBlocks.js:152 -#: js/ToneBlocks.js:42 -#: js/timbre.js:1558 -#: js/timbre.js:1808 -#.TRANS: type of filter, e.g., lowpass, highpass, etc. -#.TRANS: there are different types (sine, triangle, square...) of oscillators. -msgid "type" -msgstr "tipo" +#: js/utils/musicutils.js:1160 +#: js/utils/synthutils.js:198 +#.TRANS: animal sound effect +msgid "cricket" +msgstr "" -#: js/WidgetBlocks.js:154 -#: js/timbre.js:1818 -#.TRANS: rolloff is the steepness of a change in frequency. -msgid "rolloff" +#: js/utils/musicutils.js:1161 +#: js/utils/synthutils.js:200 +#.TRANS: animal sound effect +msgid "dog" msgstr "" -#: js/WidgetBlocks.js:155 -#: js/MediaBlocks.js:692 -#: js/temperament.js:382 -#: js/temperament.js:417 -#: js/temperament.js:477 -#: js/temperament.js:485 -#: js/temperament.js:1348 -#: js/timbre.js:1842 -msgid "frequency" -msgstr "frequenza" +#: js/utils/musicutils.js:1163 +#: js/utils/synthutils.js:102 +#.TRANS: musical instrument +msgid "banjo" +msgstr "" -#: js/WidgetBlocks.js:179 -#.TRANS: rolloff is the steepness of a change in frequency. -msgid "Rolloff value should be either -12, -24, -48, or -96 decibels/octave." +#: js/utils/musicutils.js:1164 +#: js/utils/synthutils.js:104 +#.TRANS: musical instrument +msgid "koto" msgstr "" -#: js/WidgetBlocks.js:211 -msgid "The Temperament tool is used to define custom tuning." +#: js/utils/musicutils.js:1165 +#: js/utils/synthutils.js:106 +#.TRANS: musical instrument +msgid "dulcimer" msgstr "" -#: js/WidgetBlocks.js:277 -#: js/sampler.js:329 -msgid "Upload a sample and adjust its pitch center." +#: js/utils/musicutils.js:1166 +#: js/utils/synthutils.js:108 +#.TRANS: musical instrument +msgid "electric guitar" msgstr "" -#: js/WidgetBlocks.js:284 -#.TRANS: the speed at music is should be played. -msgid "sampler" -msgstr "campionatore" +#: js/utils/musicutils.js:1167 +#: js/utils/synthutils.js:110 +#.TRANS: musical instrument +msgid "bassoon" +msgstr "" -#: js/WidgetBlocks.js:329 -#: js/WidgetBlocks.js:334 -#: js/IntervalsBlocks.js:928 -#: js/VolumeBlocks.js:411 -#: js/ToneBlocks.js:946 -#: js/VolumeActions.js:218 -#: js/musicutils.js:704 -#: js/musicutils.js:755 -#: js/musicutils.js:798 -#: js/musicutils.js:820 -#: js/musicutils.js:1136 -#: js/synthutils.js:118 -#: js/modewidget.js:919 -#.TRANS: customize voice -msgid "custom" +#: js/utils/musicutils.js:1168 +#: js/utils/synthutils.js:112 +#.TRANS: musical instrument +msgid "celeste" msgstr "" -#: js/WidgetBlocks.js:432 -msgid "The Meter block opens a tool to select strong beats for the meter." +#: js/utils/musicutils.js:1170 +#: js/widgets/temperament.js:787 +#.TRANS: musical temperament +msgid "equal" msgstr "" -#: js/WidgetBlocks.js:473 -msgid "The oscilloscope block opens a tool to visualize waveforms." +#: js/utils/musicutils.js:1172 +#.TRANS: musical temperament +msgid "Pythagorean" msgstr "" -#: js/WidgetBlocks.js:478 -msgid "oscilloscope" +#: js/utils/musicutils.js:1174 +#.TRANS: musical temperament +msgid "just intonation" msgstr "" -#: js/WidgetBlocks.js:530 -msgid "The Custom mode block opens a tool to explore musical mode (the spacing of the notes in a scale)." +#: js/utils/musicutils.js:1176 +#.TRANS: musical temperament +msgid "meantone" msgstr "" -#: js/WidgetBlocks.js:536 -#.TRANS: musical mode is the pattern of half-steps in an octave, e.g., Major or Minor modes -msgid "custom mode" +#: js/utils/musicutils.js:1193 +msgid "major 7th" msgstr "" -#: js/WidgetBlocks.js:570 -msgid "The Tempo block opens a metronome to visualize the beat." +#: js/utils/musicutils.js:1194 +msgid "minor 7th" msgstr "" -#: js/WidgetBlocks.js:617 -msgid "The Arpeggio Widget is used to compose chord sequences." +#: js/utils/musicutils.js:1195 +msgid "dominant 7th" msgstr "" -#: js/WidgetBlocks.js:623 -#: js/IntervalsBlocks.js:683 -msgid "arpeggio" -msgstr "arpeggio" +#: js/utils/musicutils.js:1196 +msgid "minor-major 7th" +msgstr "" -#: js/WidgetBlocks.js:677 -msgid "The Pitch drum matrix is used to map pitches to drum sounds." +#: js/utils/musicutils.js:1197 +msgid "fully-diminished 7th" msgstr "" -#: js/WidgetBlocks.js:682 -#.TRANS: makes a mapping between pitches and drum sounds -msgid "pitch-drum mapper" +#: js/utils/musicutils.js:1198 +msgid "half-diminished 7th" msgstr "" -#: js/WidgetBlocks.js:724 -msgid "You must have at least one pitch block and one drum block in the matrix." +#: js/utils/musicutils.js:1557 +#: js/utils/musicutils.js:1569 +msgid "Equal (12EDO)" msgstr "" -#: js/WidgetBlocks.js:746 -msgid "The Pitch slider tool to is used to generate pitches at selected frequencies." +#: js/utils/musicutils.js:1558 +#: js/utils/musicutils.js:1570 +msgid "5-limit Just Intonation" msgstr "" -#: js/WidgetBlocks.js:751 -#.TRANS: widget to generate pitches using a slider -msgid "pitch slider" +#: js/utils/musicutils.js:1559 +#: js/utils/musicutils.js:1571 +msgid "Pythagorean (3-limit JI)" msgstr "" -#: js/WidgetBlocks.js:788 -msgid "chromatic keyboard" +#: js/utils/musicutils.js:1560 +#: js/utils/musicutils.js:1561 +#: js/utils/musicutils.js:1572 +#: js/utils/musicutils.js:1573 +msgid "Meantone" msgstr "" -#: js/WidgetBlocks.js:815 -#: js/WidgetBlocks.js:874 -#.TRANS: widget to generate pitches using a slider -msgid "music keyboard" +#: js/utils/musicutils.js:1574 +msgid "Custom" msgstr "" -#: js/WidgetBlocks.js:859 -#: js/WidgetBlocks.js:866 -msgid "The Music keyboard block opens a piano keyboard that can be used to create notes." +#: js/utils/musicutils.js:5387 +#: js/utils/musicutils.js:5430 +msgid "current" msgstr "" -#: js/WidgetBlocks.js:910 -msgid "The Pitch staircase tool to is used to generate pitches from a given ratio." +#: js/utils/musicutils.js:5390 +#: js/utils/musicutils.js:5421 +msgid "next" msgstr "" -#: js/WidgetBlocks.js:917 -#.TRANS: generate a progressive sequence of pitches -msgid "pitch staircase" +#: js/utils/musicutils.js:5393 +#: js/utils/musicutils.js:5426 +msgid "previous" msgstr "" -#: js/WidgetBlocks.js:982 -msgid "The Rhythm Maker block opens a tool to create drum machines." +#: js/utils/synthutils.js:120 +#.TRANS: simple monotone synthesizer +msgid "simple-2" msgstr "" -#: js/WidgetBlocks.js:1036 -msgid "G major scale" -msgstr "scala di Sol maggiore" +#: js/utils/synthutils.js:122 +#.TRANS: simple monotone synthesizer +msgid "simple-3" +msgstr "" -#: js/WidgetBlocks.js:1064 -msgid "C major scale" -msgstr "scala di Do maggiore" +#: js/utils/synthutils.js:124 +#.TRANS: simple monotone synthesizer +msgid "simple-4" +msgstr "" -#: js/WidgetBlocks.js:1097 -msgid "The Phrase Maker block opens a tool to create musical phrases." +#: js/utils/synthutils.js:162 +#.TRANS: musical instrument +msgid "taiko" msgstr "" -#: js/WidgetBlocks.js:1104 -#.TRANS: assigns pitch to a sequence of beats to generate a melody -msgid "phrase maker" +#: js/blocks/ActionBlocks.js:58 +msgid "The Return block will return a value from an action." msgstr "" -#: js/WidgetBlocks.js:1168 -msgid "You must have at least one pitch block and one rhythm block in the matrix." +#: js/blocks/ActionBlocks.js:75 +msgid "return" msgstr "" -#: js/WidgetBlocks.js:1220 -msgid "The Status block opens a tool for inspecting the status of Music Blocks as it is running." +#: js/blocks/ActionBlocks.js:128 +msgid "The Return to URL block will return a value to a webpage." msgstr "" -#: js/IntervalsBlocks.js:45 -msgid "set temperament" +#: js/blocks/ActionBlocks.js:145 +msgid "return to URL" msgstr "" -#: js/IntervalsBlocks.js:63 -#: js/MediaBlocks.js:746 -#: js/PitchBlocks.js:657 -#: js/PitchBlocks.js:933 -#: js/PitchBlocks.js:972 -#: js/PitchBlocks.js:1005 -#: js/PitchBlocks.js:1166 -#: js/PitchBlocks.js:1679 -#: js/PitchBlocks.js:1720 -#: js/PitchBlocks.js:1827 -#: js/ToneBlocks.js:1025 -#.TRANS: adjusts the shift up or down by one octave (twelve half-steps in the interval between two notes, one having twice or half the frequency in Hz of the other.) -msgid "octave" -msgstr "ottava" +#: js/blocks/ActionBlocks.js:233 +#: js/blocks/ActionBlocks.js:290 +#: js/blocks/ActionBlocks.js:501 +#: js/blocks/ActionBlocks.js:688 +msgid "The Calculate block returns a value calculated by an action." +msgstr "" -#: js/IntervalsBlocks.js:99 -msgid "The Temperament name block is used to select a tuning method." +#: js/blocks/ActionBlocks.js:251 +#: js/blocks/ActionBlocks.js:517 +#: js/blocks/ActionBlocks.js:707 +msgid "calculate" msgstr "" -#: js/IntervalsBlocks.js:161 -msgid "doubly" +#: js/blocks/ActionBlocks.js:376 +#: js/blocks/ActionBlocks.js:593 +#: js/blocks/ActionBlocks.js:942 +#: js/blocks/ActionBlocks.js:1389 +#.TRANS: do is the do something or take an action. +msgid "The Do block is used to initiate an action." msgstr "" -#: js/IntervalsBlocks.js:166 -msgid "The Doubly block will double the size of an interval." +#: js/blocks/ActionBlocks.js:390 +#: js/blocks/ActionBlocks.js:610 +#: js/blocks/ActionBlocks.js:959 +#: js/blocks/ActionBlocks.js:1048 +#: js/blocks/MeterBlocks.js:769 +msgid "do1" msgstr "" -#: js/IntervalsBlocks.js:262 -msgid "interval number" +#: js/blocks/ActionBlocks.js:390 +#: js/blocks/ActionBlocks.js:610 +#: js/blocks/ActionBlocks.js:959 +#: js/blocks/ActionBlocks.js:1048 +#: js/blocks/FlowBlocks.js:742 +#: js/blocks/FlowBlocks.js:822 +#: js/blocks/MeterBlocks.js:769 +msgid "do" +msgstr "fare" + +#: js/blocks/ActionBlocks.js:791 +#: js/blocks/ActionBlocks.js:865 +msgid "The Arg block contains the value of an argument passed to an action." msgstr "" -#: js/IntervalsBlocks.js:330 -#.TRANS: measure the distance between two pitches in semi-tones -msgid "semi-tone interval measure" +#: js/blocks/ActionBlocks.js:806 +#: js/blocks/ActionBlocks.js:878 +msgid "arg" msgstr "" -#: js/IntervalsBlocks.js:397 -#: js/IntervalsBlocks.js:513 -msgid "You must use two pitch blocks when measuring an interval." +#: js/blocks/ActionBlocks.js:836 +#: js/blocks/ActionBlocks.js:900 +#: js/blocks/ActionBlocks.js:908 +msgid "Invalid argument" msgstr "" -#: js/IntervalsBlocks.js:439 -msgid "The Scalar interval block measures the distance between two notes in the current key and mode." +#: js/blocks/ActionBlocks.js:944 +msgid "In the example, it is used with the One of block to choose a random phase." msgstr "" -#: js/IntervalsBlocks.js:445 -#.TRANS: measure the distance between two pitches in steps of musical scale -msgid "scalar interval measure" +#: js/blocks/ActionBlocks.js:1019 +#: js/blocks/ActionBlocks.js:1026 +msgid "The Listen block is used to listen for an event such as a mouse click." msgstr "" -#: js/IntervalsBlocks.js:592 -#: js/musicutils.js:637 -#: js/musicutils.js:908 -#.TRANS: perfect is a music term related to intervals -msgid "perfect" +#: js/blocks/ActionBlocks.js:1028 +msgid "When the event happens, an action is taken." msgstr "" -#: js/IntervalsBlocks.js:621 -msgid "In the figure, we add sol# to sol." -msgstr "Nella figura, aggiungiamo sol# al sol" +#: js/blocks/ActionBlocks.js:1045 +msgid "on" +msgstr "" -#: js/IntervalsBlocks.js:627 -#: js/OrnamentBlocks.js:220 -#.TRANS: calculate a relative step between notes based on semi-tones -msgid "semi-tone interval" +#: js/blocks/ActionBlocks.js:1048 +#: js/blocks/ActionBlocks.js:1049 +#: js/blocks/ActionBlocks.js:1153 +msgid "event" msgstr "" -#: js/IntervalsBlocks.js:676 -msgid "The output of the example is: do, mi, sol, sol, ti, mi" +#: js/blocks/ActionBlocks.js:1133 +msgid "The Broadcast block is used to trigger an event." msgstr "" -#: js/IntervalsBlocks.js:735 -msgid "The Chord block calculates common chords." +#: js/blocks/ActionBlocks.js:1151 +msgid "broadcast" msgstr "" -#: js/IntervalsBlocks.js:737 -msgid "In the figure, we generate a C-major chord." -msgstr "Nella figura, stiamo generando un accordo di Do-Maggiore" +#: js/blocks/ActionBlocks.js:1208 +msgid "Each Start block is a separate voice." +msgstr "" -#: js/IntervalsBlocks.js:742 -msgid "chord" -msgstr "accordo" +#: js/blocks/ActionBlocks.js:1304 +msgid "It is often used for storing a phrase of music that is repeated." +msgstr "" -#: js/IntervalsBlocks.js:794 -msgid "The Ratio Interval block calculates an interval based on a ratio." +#: js/blocks/ActionBlocks.js:1495 +msgid "define temperament" msgstr "" -#: js/IntervalsBlocks.js:799 -msgid "ratio interval" +#: js/blocks/BooleanBlocks.js:44 +msgid "The Not block is the logical not operator." msgstr "" -#: js/IntervalsBlocks.js:868 -msgid "In the figure, we add la to sol." +#: js/blocks/BooleanBlocks.js:62 +msgid "not" +msgstr "non" + +#: js/blocks/BooleanBlocks.js:134 +msgid "The And block is the logical and operator." msgstr "" -#: js/IntervalsBlocks.js:924 -#.TRANS: define a custom mode -msgid "define mode" +#: js/blocks/BooleanBlocks.js:152 +msgid "and" +msgstr "e" + +#: js/blocks/BooleanBlocks.js:218 +msgid "The Or block is the logical or operator." msgstr "" -#: js/IntervalsBlocks.js:977 -msgid "movable Do" +#: js/blocks/BooleanBlocks.js:236 +msgid "or" +msgstr "o" + +#: js/blocks/BooleanBlocks.js:302 +msgid "The XOR block is the logical XOR operator." msgstr "" -#: js/IntervalsBlocks.js:1028 -#.TRANS: mode length is the number of notes in the mode, e.g., 7 for major and minor scales; 12 for chromatic scales -msgid "mode length" +#: js/blocks/BooleanBlocks.js:320 +msgid "xor" +msgstr "o esclusivo" + +#: js/blocks/BooleanBlocks.js:808 +msgid "The Equal block returns True if the two numbers are equal." msgstr "" -#: js/IntervalsBlocks.js:1037 -msgid "The Mode length block is the number of notes in the current scale." +#: js/blocks/BooleanBlocks.js:909 +msgid "The Not-equal-to block returns True if the two numbers are not equal to each other." msgstr "" -#: js/IntervalsBlocks.js:1039 -msgid "Most Western scales have 7 notes." +#: js/blocks/BooleanBlocks.js:1008 +msgid "The Boolean block is used to specify true or false." +msgstr "Il blocco Booleano é usato per indicare vero o falso" + +#: js/blocks/BoxesBlocks.js:53 +#: js/blocks/BoxesBlocks.js:59 +msgid "The Add-to block is used to add to the value stored in a box." msgstr "" -#: js/IntervalsBlocks.js:1088 -#.TRANS: the mode in music is 'major', 'minor', etc. -msgid "current mode" +#: js/blocks/BoxesBlocks.js:61 +msgid "It can also be used with other blocks such as Color and Pen size." msgstr "" -#: js/IntervalsBlocks.js:1141 -#.TRANS: the key is a group of pitches with which a music composition is created -msgid "current key" -msgstr "" +#: js/blocks/BoxesBlocks.js:73 +msgid "add" +msgstr "aggiungere" -#: js/IntervalsBlocks.js:1193 -#: js/IntervalsBlocks.js:1238 -#.TRANS: set the key and mode, e.g. C Major -msgid "set key" +#: js/blocks/BoxesBlocks.js:75 +#: js/widgets/temperament.js:857 +msgid "to" msgstr "" -#: js/IntervalsBlocks.js:1247 -#: js/IntervalsBlocks.js:1253 -msgid "The Set key block is used to set the key and mode," +#: js/blocks/BoxesBlocks.js:75 +#: js/blocks/BoxesBlocks.js:595 +#: js/blocks/HeapBlocks.js:544 +msgid "value1" msgstr "" -#: js/IntervalsBlocks.js:1253 -msgid "eg C Major" +#: js/blocks/BoxesBlocks.js:118 +msgid "Block does not support incrementing." msgstr "" -#: js/IntervalsBlocks.js:1266 -#: js/DictBlocks.js:215 -#: js/DictBlocks.js:216 -#: js/DictBlocks.js:289 -#: js/DictBlocks.js:290 -#: js/DictBlocks.js:357 -#: js/DictBlocks.js:430 -#: js/DictBlocks.js:431 -#.TRANS: key, e.g., C in C Major -msgid "key" +#: js/blocks/BoxesBlocks.js:152 +msgid "The Add-1-to block adds one to the value stored in a box." msgstr "" -#: js/ActionBlocks.js:58 -msgid "The Return block will return a value from an action." -msgstr "" +#: js/blocks/BoxesBlocks.js:163 +msgid "add 1 to" +msgstr "agiungere 1 a" -#: js/ActionBlocks.js:75 -msgid "return" +#: js/blocks/BoxesBlocks.js:211 +msgid "The Subtract-1-from block subtracts one from the value stored in a box." msgstr "" -#: js/ActionBlocks.js:128 -msgid "The Return to URL block will return a value to a webpage." +#: js/blocks/BoxesBlocks.js:222 +msgid "subtract 1 from" msgstr "" -#: js/ActionBlocks.js:145 -msgid "return to URL" +#: js/blocks/BoxesBlocks.js:270 +#: js/blocks/BoxesBlocks.js:387 +msgid "The Box block returns the value stored in a box." msgstr "" -#: js/ActionBlocks.js:233 -#: js/ActionBlocks.js:290 -#: js/ActionBlocks.js:501 -#: js/ActionBlocks.js:688 -msgid "The Calculate block returns a value calculated by an action." +#: js/blocks/BoxesBlocks.js:500 +#: js/blocks/BoxesBlocks.js:576 +msgid "The Store in block will store a value in a box." msgstr "" -#: js/ActionBlocks.js:251 -#: js/ActionBlocks.js:517 -#: js/ActionBlocks.js:707 -msgid "calculate" +#: js/blocks/BoxesBlocks.js:595 +#: js/blocks/EnsembleBlocks.js:391 +#: js/blocks/EnsembleBlocks.js:402 +msgid "name1" msgstr "" -#: js/ActionBlocks.js:376 -#: js/ActionBlocks.js:593 -#: js/ActionBlocks.js:942 -#: js/ActionBlocks.js:1389 -#.TRANS: do is the do something or take an action. -msgid "The Do block is used to initiate an action." +#: js/blocks/BoxesBlocks.js:652 +msgid "The Box2 block returns the value stored in Box2." msgstr "" -#: js/ActionBlocks.js:390 -#: js/ActionBlocks.js:610 -#: js/ActionBlocks.js:959 -#: js/ActionBlocks.js:1048 -#: js/MeterBlocks.js:769 -msgid "do1" +#: js/blocks/BoxesBlocks.js:703 +msgid "The Store in Box2 block is used to store a value in Box2." msgstr "" -#: js/ActionBlocks.js:390 -#: js/ActionBlocks.js:610 -#: js/ActionBlocks.js:959 -#: js/ActionBlocks.js:1048 -#: js/FlowBlocks.js:742 -#: js/FlowBlocks.js:822 -#: js/MeterBlocks.js:769 -msgid "do" -msgstr "fare" - -#: js/ActionBlocks.js:791 -#: js/ActionBlocks.js:865 -msgid "The Arg block contains the value of an argument passed to an action." +#: js/blocks/BoxesBlocks.js:715 +msgid "store in box2" msgstr "" -#: js/ActionBlocks.js:806 -#: js/ActionBlocks.js:878 -msgid "arg" +#: js/blocks/BoxesBlocks.js:761 +msgid "The Box1 block returns the value stored in Box1." msgstr "" -#: js/ActionBlocks.js:836 -#: js/ActionBlocks.js:900 -#: js/ActionBlocks.js:908 -msgid "Invalid argument" +#: js/blocks/BoxesBlocks.js:812 +msgid "The Store in Box1 block is used to store a value in Box1." msgstr "" -#: js/ActionBlocks.js:944 -msgid "In the example, it is used with the One of block to choose a random phase." +#: js/blocks/BoxesBlocks.js:826 +msgid "store in box1" msgstr "" -#: js/ActionBlocks.js:1019 -#: js/ActionBlocks.js:1026 -msgid "The Listen block is used to listen for an event such as a mouse click." +#: js/blocks/DictBlocks.js:77 +msgid "show dictionary" msgstr "" -#: js/ActionBlocks.js:1028 -msgid "When the event happens, an action is taken." -msgstr "" +#: js/blocks/DictBlocks.js:80 +#: js/blocks/DictBlocks.js:145 +#: js/blocks/DictBlocks.js:216 +#: js/blocks/DictBlocks.js:290 +#: js/blocks/ProgramBlocks.js:396 +#: js/blocks/ProgramBlocks.js:501 +#: js/blocks/ProgramBlocks.js:664 +msgid "My Dictionary" +msgstr "Mio Dizionario" -#: js/ActionBlocks.js:1045 -msgid "on" +#: js/blocks/DictBlocks.js:129 +msgid "The Dictionary block returns a dictionary." msgstr "" -#: js/ActionBlocks.js:1048 -#: js/ActionBlocks.js:1049 -#: js/ActionBlocks.js:1153 -msgid "event" +#: js/blocks/DictBlocks.js:197 +#: js/blocks/DictBlocks.js:339 +msgid "The Get-dict block returns a value in the dictionary for a specified key." msgstr "" -#: js/ActionBlocks.js:1133 -msgid "The Broadcast block is used to trigger an event." +#: js/blocks/DictBlocks.js:212 +#: js/blocks/DictBlocks.js:354 +#.TRANS: retrieve a value from the dictionary with a given key +msgid "get value" msgstr "" -#: js/ActionBlocks.js:1151 -msgid "broadcast" +#: js/blocks/DictBlocks.js:215 +#: js/blocks/DictBlocks.js:216 +#: js/blocks/DictBlocks.js:289 +#: js/blocks/DictBlocks.js:290 +#: js/blocks/DictBlocks.js:357 +#: js/blocks/DictBlocks.js:430 +#: js/blocks/DictBlocks.js:431 +msgid "key2" msgstr "" -#: js/ActionBlocks.js:1208 -msgid "Each Start block is a separate voice." +#: js/blocks/DictBlocks.js:215 +#: js/blocks/DictBlocks.js:216 +#: js/blocks/DictBlocks.js:289 +#: js/blocks/DictBlocks.js:290 +#: js/blocks/DictBlocks.js:357 +#: js/blocks/DictBlocks.js:430 +#: js/blocks/DictBlocks.js:431 +#: js/blocks/IntervalsBlocks.js:1462 +#.TRANS: key, e.g., C in C Major +msgid "key" msgstr "" -#: js/ActionBlocks.js:1304 -msgid "It is often used for storing a phrase of music that is repeated." +#: js/blocks/DictBlocks.js:271 +#: js/blocks/DictBlocks.js:411 +msgid "The Set-dict block sets a value in the dictionary for a specified key." msgstr "" -#: js/ActionBlocks.js:1495 -msgid "define temperament" +#: js/blocks/DictBlocks.js:286 +#: js/blocks/DictBlocks.js:427 +#.TRANS: set a value in the dictionary for a given key +msgid "set value" msgstr "" -#: js/EnsembleBlocks.js:66 +#: js/blocks/EnsembleBlocks.js:66 msgid "mouse index heap" msgstr "" -#: js/EnsembleBlocks.js:68 +#: js/blocks/EnsembleBlocks.js:68 msgid "The Mouse index heap block returns a value in the heap at a specified location for a specified mouse." msgstr "" -#: js/EnsembleBlocks.js:77 -#: js/EnsembleBlocks.js:1080 +#: js/blocks/EnsembleBlocks.js:77 +#: js/blocks/EnsembleBlocks.js:1080 msgid "mouse name" msgstr "" -#: js/EnsembleBlocks.js:77 -#: js/EnsembleBlocks.js:92 -#: js/HeapBlocks.js:544 +#: js/blocks/EnsembleBlocks.js:77 +#: js/blocks/EnsembleBlocks.js:92 +#: js/blocks/HeapBlocks.js:544 #.TRANS: value1 is a numeric value (JAPANESE ONLY) msgid "index" msgstr "" -#: js/EnsembleBlocks.js:80 +#: js/blocks/EnsembleBlocks.js:80 msgid "turtle index heap" msgstr "" -#: js/EnsembleBlocks.js:82 +#: js/blocks/EnsembleBlocks.js:82 msgid "The Turtle index heap block returns a value in the heap at a specified location for a specified turtle." msgstr "" -#: js/EnsembleBlocks.js:90 -#: js/EnsembleBlocks.js:167 -#: js/EnsembleBlocks.js:230 -#: js/EnsembleBlocks.js:316 -#: js/EnsembleBlocks.js:362 -#: js/EnsembleBlocks.js:400 -#: js/EnsembleBlocks.js:454 -#: js/EnsembleBlocks.js:504 -#: js/EnsembleBlocks.js:550 -#: js/EnsembleBlocks.js:597 -#: js/EnsembleBlocks.js:651 -#: js/EnsembleBlocks.js:763 -#: js/EnsembleBlocks.js:854 -#: js/EnsembleBlocks.js:915 -#: js/EnsembleBlocks.js:955 -#: js/EnsembleBlocks.js:1219 -#: js/EnsembleBlocks.js:1293 +#: js/blocks/EnsembleBlocks.js:90 +#: js/blocks/EnsembleBlocks.js:167 +#: js/blocks/EnsembleBlocks.js:230 +#: js/blocks/EnsembleBlocks.js:316 +#: js/blocks/EnsembleBlocks.js:362 +#: js/blocks/EnsembleBlocks.js:400 +#: js/blocks/EnsembleBlocks.js:454 +#: js/blocks/EnsembleBlocks.js:504 +#: js/blocks/EnsembleBlocks.js:550 +#: js/blocks/EnsembleBlocks.js:597 +#: js/blocks/EnsembleBlocks.js:651 +#: js/blocks/EnsembleBlocks.js:763 +#: js/blocks/EnsembleBlocks.js:854 +#: js/blocks/EnsembleBlocks.js:915 +#: js/blocks/EnsembleBlocks.js:955 +#: js/blocks/EnsembleBlocks.js:1219 +#: js/blocks/EnsembleBlocks.js:1293 #.TRANS: Yertle is the name of a turtle. msgid "Yertle" msgstr "" -#: js/EnsembleBlocks.js:92 -#: js/EnsembleBlocks.js:1089 +#: js/blocks/EnsembleBlocks.js:92 +#: js/blocks/EnsembleBlocks.js:1089 msgid "turtle name" msgstr "nome della tartaruga" -#: js/EnsembleBlocks.js:122 -#: js/EnsembleBlocks.js:1197 -#: js/HeapBlocks.js:474 -#: js/HeapBlocks.js:572 +#: js/blocks/EnsembleBlocks.js:122 +#: js/blocks/EnsembleBlocks.js:1197 +#: js/blocks/HeapBlocks.js:474 +#: js/blocks/HeapBlocks.js:572 msgid "Index must be > 0." msgstr "" -#: js/EnsembleBlocks.js:127 -#: js/HeapBlocks.js:479 -#: js/HeapBlocks.js:577 +#: js/blocks/EnsembleBlocks.js:127 +#: js/blocks/HeapBlocks.js:479 +#: js/blocks/HeapBlocks.js:577 msgid "Maximum heap size is 1000." msgstr "" -#: js/EnsembleBlocks.js:145 +#: js/blocks/EnsembleBlocks.js:145 msgid "stop mouse" msgstr "" -#: js/EnsembleBlocks.js:147 +#: js/blocks/EnsembleBlocks.js:147 msgid "The Stop mouse block stops the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:158 +#: js/blocks/EnsembleBlocks.js:158 msgid "stop turtle" msgstr "fermare tartaruga" -#: js/EnsembleBlocks.js:160 +#: js/blocks/EnsembleBlocks.js:160 msgid "The Stop turtle block stops the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:184 -#: js/EnsembleBlocks.js:247 -#: js/EnsembleBlocks.js:413 -#: js/EnsembleBlocks.js:468 -#: js/EnsembleBlocks.js:706 -#: js/EnsembleBlocks.js:808 -#: js/EnsembleBlocks.js:870 -#: js/EnsembleBlocks.js:1190 -#: js/EnsembleBlocks.js:1253 +#: js/blocks/EnsembleBlocks.js:184 +#: js/blocks/EnsembleBlocks.js:247 +#: js/blocks/EnsembleBlocks.js:413 +#: js/blocks/EnsembleBlocks.js:468 +#: js/blocks/EnsembleBlocks.js:706 +#: js/blocks/EnsembleBlocks.js:808 +#: js/blocks/EnsembleBlocks.js:870 +#: js/blocks/EnsembleBlocks.js:1190 +#: js/blocks/EnsembleBlocks.js:1253 msgid "Cannot find mouse" msgstr "" -#: js/EnsembleBlocks.js:186 -#: js/EnsembleBlocks.js:249 -#: js/EnsembleBlocks.js:415 -#: js/EnsembleBlocks.js:470 -#: js/EnsembleBlocks.js:708 -#: js/EnsembleBlocks.js:810 -#: js/EnsembleBlocks.js:872 -#: js/EnsembleBlocks.js:1192 -#: js/EnsembleBlocks.js:1255 +#: js/blocks/EnsembleBlocks.js:186 +#: js/blocks/EnsembleBlocks.js:249 +#: js/blocks/EnsembleBlocks.js:415 +#: js/blocks/EnsembleBlocks.js:470 +#: js/blocks/EnsembleBlocks.js:708 +#: js/blocks/EnsembleBlocks.js:810 +#: js/blocks/EnsembleBlocks.js:872 +#: js/blocks/EnsembleBlocks.js:1192 +#: js/blocks/EnsembleBlocks.js:1255 msgid "Cannot find turtle" msgstr "" -#: js/EnsembleBlocks.js:206 +#: js/blocks/EnsembleBlocks.js:206 msgid "start mouse" msgstr "" -#: js/EnsembleBlocks.js:209 +#: js/blocks/EnsembleBlocks.js:209 msgid "The Start mouse block starts the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:220 +#: js/blocks/EnsembleBlocks.js:220 msgid "start turtle" msgstr "iniziare tartaruga" -#: js/EnsembleBlocks.js:223 +#: js/blocks/EnsembleBlocks.js:223 msgid "The Start turtle block starts the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:256 +#: js/blocks/EnsembleBlocks.js:256 msgid "Mouse is already running." msgstr "" -#: js/EnsembleBlocks.js:258 +#: js/blocks/EnsembleBlocks.js:258 msgid "Turtle is already running." msgstr "" -#: js/EnsembleBlocks.js:282 +#: js/blocks/EnsembleBlocks.js:282 msgid "Cannot find start block" msgstr "Impossibile trovare il blocco iniziale" -#: js/EnsembleBlocks.js:292 +#: js/blocks/EnsembleBlocks.js:292 #.TRANS: pen color for this mouse msgid "mouse color" msgstr "" -#: js/EnsembleBlocks.js:294 +#: js/blocks/EnsembleBlocks.js:294 msgid "The Mouse color block returns the pen color of the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:306 +#: js/blocks/EnsembleBlocks.js:306 #.TRANS: pen color for this turtle msgid "turtle color" msgstr "" -#: js/EnsembleBlocks.js:308 +#: js/blocks/EnsembleBlocks.js:308 msgid "The Turtle color block returns the pen color of the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:338 +#: js/blocks/EnsembleBlocks.js:338 #.TRANS: heading (compass direction) for this mouse msgid "mouse heading" msgstr "" -#: js/EnsembleBlocks.js:340 +#: js/blocks/EnsembleBlocks.js:340 msgid "The Mouse heading block returns the heading of the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:352 +#: js/blocks/EnsembleBlocks.js:352 #.TRANS: heading (compass direction) for this turtle msgid "turtle heading" msgstr "" -#: js/EnsembleBlocks.js:354 +#: js/blocks/EnsembleBlocks.js:354 msgid "The Turtle heading block returns the heading of the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:384 -#: js/EnsembleBlocks.js:439 +#: js/blocks/EnsembleBlocks.js:384 +#: js/blocks/EnsembleBlocks.js:439 #.TRANS: set xy position for this mouse msgid "set mouse" msgstr "" -#: js/EnsembleBlocks.js:391 -#: js/EnsembleBlocks.js:402 -#: js/BoxesBlocks.js:595 -msgid "name1" -msgstr "" - -#: js/EnsembleBlocks.js:391 -#: js/EnsembleBlocks.js:402 -#: js/ProgramBlocks.js:881 -#: js/GraphicsBlocks.js:235 -#: js/GraphicsBlocks.js:313 -#: js/GraphicsBlocks.js:436 -#: js/GraphicsBlocks.js:487 -#: js/GraphicsBlocks.js:534 -#: js/GraphicsBlocks.js:750 +#: js/blocks/EnsembleBlocks.js:391 +#: js/blocks/EnsembleBlocks.js:402 +#: js/blocks/GraphicsBlocks.js:235 +#: js/blocks/GraphicsBlocks.js:313 +#: js/blocks/GraphicsBlocks.js:436 +#: js/blocks/GraphicsBlocks.js:487 +#: js/blocks/GraphicsBlocks.js:534 +#: js/blocks/GraphicsBlocks.js:750 +#: js/blocks/ProgramBlocks.js:881 msgid "x" msgstr "x" -#: js/EnsembleBlocks.js:391 -#: js/EnsembleBlocks.js:402 -#: js/ProgramBlocks.js:881 -#: js/GraphicsBlocks.js:149 -#: js/GraphicsBlocks.js:313 -#: js/GraphicsBlocks.js:436 -#: js/GraphicsBlocks.js:487 -#: js/GraphicsBlocks.js:534 -#: js/GraphicsBlocks.js:750 +#: js/blocks/EnsembleBlocks.js:391 +#: js/blocks/EnsembleBlocks.js:402 +#: js/blocks/GraphicsBlocks.js:149 +#: js/blocks/GraphicsBlocks.js:313 +#: js/blocks/GraphicsBlocks.js:436 +#: js/blocks/GraphicsBlocks.js:487 +#: js/blocks/GraphicsBlocks.js:534 +#: js/blocks/GraphicsBlocks.js:750 +#: js/blocks/ProgramBlocks.js:881 msgid "y" msgstr "y" -#: js/EnsembleBlocks.js:395 -#: js/EnsembleBlocks.js:452 +#: js/blocks/EnsembleBlocks.js:395 +#: js/blocks/EnsembleBlocks.js:452 #.TRANS: set xy position for this turtle msgid "set turtle" msgstr "" -#: js/EnsembleBlocks.js:433 +#: js/blocks/EnsembleBlocks.js:433 msgid "The Set mouse block sends a stack of blocks to be run by the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:446 +#: js/blocks/EnsembleBlocks.js:446 msgid "The Set turtle block sends a stack of blocks to be run by the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:480 +#: js/blocks/EnsembleBlocks.js:480 #.TRANS: y position for this mouse msgid "mouse y" msgstr "mouse y" -#: js/EnsembleBlocks.js:482 +#: js/blocks/EnsembleBlocks.js:482 msgid "The Y mouse block returns the Y position of the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:494 +#: js/blocks/EnsembleBlocks.js:494 #.TRANS: y position for this turtle msgid "turtle y" msgstr "" -#: js/EnsembleBlocks.js:496 +#: js/blocks/EnsembleBlocks.js:496 msgid "The Y turtle block returns the Y position of the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:526 +#: js/blocks/EnsembleBlocks.js:526 #.TRANS: x position for this mouse msgid "mouse x" msgstr "mouse x" -#: js/EnsembleBlocks.js:528 +#: js/blocks/EnsembleBlocks.js:528 msgid "The X mouse block returns the X position of the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:540 +#: js/blocks/EnsembleBlocks.js:540 #.TRANS: x position for this turtle msgid "turtle x" msgstr "" -#: js/EnsembleBlocks.js:542 +#: js/blocks/EnsembleBlocks.js:542 msgid "The X turtle block returns the X position of the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:573 +#: js/blocks/EnsembleBlocks.js:573 #.TRANS: notes played by this mouse msgid "mouse notes played" msgstr "" -#: js/EnsembleBlocks.js:575 +#: js/blocks/EnsembleBlocks.js:575 msgid "The Mouse elapse notes block returns the number of notes played by the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:587 +#: js/blocks/EnsembleBlocks.js:587 #.TRANS: notes played by this turtle msgid "turtle notes played" msgstr "" -#: js/EnsembleBlocks.js:589 +#: js/blocks/EnsembleBlocks.js:589 msgid "The Turtle elapse notes block returns the number of notes played by the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:627 +#: js/blocks/EnsembleBlocks.js:627 #.TRANS: convert current note for this turtle to piano key (1-88) msgid "mouse pitch number" msgstr "" -#: js/EnsembleBlocks.js:629 +#: js/blocks/EnsembleBlocks.js:629 msgid "The Mouse pitch block returns the current pitch number being played by the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:641 +#: js/blocks/EnsembleBlocks.js:641 #.TRANS: convert current note for this turtle to piano key (1-88) msgid "turtle pitch number" msgstr "" -#: js/EnsembleBlocks.js:643 -msgid "The Turrle pitch block returns the current pitch number being played by the specified turtle." +#: js/blocks/EnsembleBlocks.js:643 +msgid "The Turtle pitch block returns the current pitch number being played by the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:747 -#: js/EnsembleBlocks.js:819 +#: js/blocks/EnsembleBlocks.js:747 +#: js/blocks/EnsembleBlocks.js:819 #.TRANS: note value is the duration of the note played by this mouse msgid "mouse note value" msgstr "" -#: js/EnsembleBlocks.js:757 +#: js/blocks/EnsembleBlocks.js:757 #.TRANS: note value is the duration of the note played by this turtle msgid "turtle note value" msgstr "" -#: js/EnsembleBlocks.js:830 +#: js/blocks/EnsembleBlocks.js:830 #.TRANS: sync is short for synchronization msgid "mouse sync" msgstr "" -#: js/EnsembleBlocks.js:832 +#: js/blocks/EnsembleBlocks.js:832 msgid "The Mouse sync block aligns the beat count between mice." msgstr "" -#: js/EnsembleBlocks.js:844 +#: js/blocks/EnsembleBlocks.js:844 #.TRANS: sync is short for synchronization msgid "turtle sync" msgstr "" -#: js/EnsembleBlocks.js:846 +#: js/blocks/EnsembleBlocks.js:846 msgid "The Turtle sync block aligns the beat count between turtles." msgstr "" -#: js/EnsembleBlocks.js:887 +#: js/blocks/EnsembleBlocks.js:887 msgid "The Found mouse block will return true if the specified mouse can be found." msgstr "" -#: js/EnsembleBlocks.js:893 +#: js/blocks/EnsembleBlocks.js:893 msgid "found mouse" msgstr "" -#: js/EnsembleBlocks.js:903 +#: js/blocks/EnsembleBlocks.js:903 msgid "The Found turtle block will return true if the specified turtle can be found." msgstr "" -#: js/EnsembleBlocks.js:909 +#: js/blocks/EnsembleBlocks.js:909 msgid "found turtle" msgstr "" -#: js/EnsembleBlocks.js:932 +#: js/blocks/EnsembleBlocks.js:932 msgid "new mouse" msgstr "" -#: js/EnsembleBlocks.js:934 +#: js/blocks/EnsembleBlocks.js:934 msgid "The New mouse block will create a new mouse." msgstr "" -#: js/EnsembleBlocks.js:945 +#: js/blocks/EnsembleBlocks.js:945 msgid "new turtle" msgstr "" -#: js/EnsembleBlocks.js:947 +#: js/blocks/EnsembleBlocks.js:947 msgid "The New turtle block will create a new turtle." msgstr "" -#: js/EnsembleBlocks.js:1011 +#: js/blocks/EnsembleBlocks.js:1011 msgid "set mouse color" msgstr "" -#: js/EnsembleBlocks.js:1014 +#: js/blocks/EnsembleBlocks.js:1014 msgid "The Set-mouse-color block is used to set the color of a mouse." msgstr "" -#: js/EnsembleBlocks.js:1020 +#: js/blocks/EnsembleBlocks.js:1020 msgid "set turtle color" msgstr "" -#: js/EnsembleBlocks.js:1023 +#: js/blocks/EnsembleBlocks.js:1023 msgid "The Set-turtle-color block is used to set the color of a turtle." msgstr "" -#: js/EnsembleBlocks.js:1083 +#: js/blocks/EnsembleBlocks.js:1083 msgid "The Mouse-name block returns the name of a mouse." msgstr "" -#: js/EnsembleBlocks.js:1092 +#: js/blocks/EnsembleBlocks.js:1092 msgid "The Turtle-name block returns the name of a turtle." msgstr "" -#: js/EnsembleBlocks.js:1115 +#: js/blocks/EnsembleBlocks.js:1115 msgid "mouse count" msgstr "" -#: js/EnsembleBlocks.js:1118 +#: js/blocks/EnsembleBlocks.js:1118 msgid "The Mouse-count block returns the number of mice." msgstr "" -#: js/EnsembleBlocks.js:1124 +#: js/blocks/EnsembleBlocks.js:1124 msgid "turtle count" msgstr "" -#: js/EnsembleBlocks.js:1127 +#: js/blocks/EnsembleBlocks.js:1127 msgid "The Turtle-count block returns the number of turtles." msgstr "" -#: js/EnsembleBlocks.js:1149 +#: js/blocks/EnsembleBlocks.js:1149 msgid "nth mouse name" msgstr "" -#: js/EnsembleBlocks.js:1152 +#: js/blocks/EnsembleBlocks.js:1152 msgid "The Nth-Mouse name block returns the name of the nth mouse." msgstr "" -#: js/EnsembleBlocks.js:1158 +#: js/blocks/EnsembleBlocks.js:1158 msgid "nth turtle name" msgstr "" -#: js/EnsembleBlocks.js:1161 +#: js/blocks/EnsembleBlocks.js:1161 msgid "The Nth-Turtle name block returns the name of the nth turtle." msgstr "" -#: js/EnsembleBlocks.js:1205 -#: js/EnsembleBlocks.js:1265 +#: js/blocks/EnsembleBlocks.js:1205 +#: js/blocks/EnsembleBlocks.js:1265 msgid "set name" msgstr "" -#: js/EnsembleBlocks.js:1214 -#: js/EnsembleBlocks.js:1221 +#: js/blocks/EnsembleBlocks.js:1214 +#: js/blocks/EnsembleBlocks.js:1221 msgid "source" msgstr "source" -#: js/EnsembleBlocks.js:1214 -#: js/EnsembleBlocks.js:1221 +#: js/blocks/EnsembleBlocks.js:1214 +#: js/blocks/EnsembleBlocks.js:1221 msgid "target" msgstr "obiettivo" -#: js/EnsembleBlocks.js:1271 +#: js/blocks/EnsembleBlocks.js:1271 msgid "The Set-name block is used to name a mouse." msgstr "" -#: js/EnsembleBlocks.js:1284 +#: js/blocks/EnsembleBlocks.js:1284 msgid "The Set-name block is used to name a turtle." msgstr "" -#: js/BooleanBlocks.js:44 -msgid "The Not block is the logical not operator." +#: js/blocks/ExtrasBlocks.js:33 +msgid "fraction" msgstr "" -#: js/BooleanBlocks.js:62 -msgid "not" -msgstr "non" - -#: js/BooleanBlocks.js:134 -msgid "The And block is the logical and operator." +#: js/blocks/ExtrasBlocks.js:36 +msgid "Convert a float to a fraction" msgstr "" -#: js/BooleanBlocks.js:152 -msgid "and" -msgstr "e" - -#: js/BooleanBlocks.js:218 -msgid "The Or block is the logical or operator." +#: js/blocks/ExtrasBlocks.js:93 +msgid "save as ABC" msgstr "" -#: js/BooleanBlocks.js:236 -msgid "or" -msgstr "o" +#: js/blocks/ExtrasBlocks.js:96 +#: js/blocks/ExtrasBlocks.js:132 +#: js/blocks/ExtrasBlocks.js:168 +msgid "title" +msgstr "titolo" -#: js/BooleanBlocks.js:302 -msgid "The XOR block is the logical XOR operator." +#: js/blocks/ExtrasBlocks.js:129 +msgid "save as Lilypond" msgstr "" -#: js/BooleanBlocks.js:320 -msgid "xor" -msgstr "o esclusivo" - -#: js/BooleanBlocks.js:808 -msgid "The Equal block returns True if the two numbers are equal." +#: js/blocks/ExtrasBlocks.js:165 +msgid "save as SVG" msgstr "" -#: js/BooleanBlocks.js:909 -msgid "The Not-equal-to block returns True if the two numbers are not equal to each other." +#: js/blocks/ExtrasBlocks.js:216 +msgid "no background" msgstr "" -#: js/BooleanBlocks.js:1008 -msgid "The Boolean block is used to specify true or false." -msgstr "Il blocco Booleano é usato per indicare vero o falso" - -#: js/MediaBlocks.js:35 -#.TRANS: right side of the screen -msgid "right (screen)" -msgstr "destra (schermo)" - -#: js/MediaBlocks.js:45 -#: js/MediaBlocks.js:56 -msgid "The Right block returns the position of the right of the canvas." +#: js/blocks/ExtrasBlocks.js:219 +msgid "The No background block eliminates the background from the saved SVG output." msgstr "" -#: js/MediaBlocks.js:97 -#.TRANS: left side of the screen -msgid "left (screen)" -msgstr "sinistra (schermo)" - -#: js/MediaBlocks.js:107 -#: js/MediaBlocks.js:118 -msgid "The Left block returns the position of the left of the canvas." -msgstr "" +#: js/blocks/ExtrasBlocks.js:247 +msgid "show blocks" +msgstr "mostrare blocchi" -#: js/MediaBlocks.js:158 -msgid "top (screen)" +#: js/blocks/ExtrasBlocks.js:249 +msgid "The Show blocks block shows the blocks." msgstr "" -#: js/MediaBlocks.js:168 -#: js/MediaBlocks.js:179 -msgid "The Top block returns the position of the top of the canvas." -msgstr "" +#: js/blocks/ExtrasBlocks.js:274 +msgid "hide blocks" +msgstr "nascondi blocchi" -#: js/MediaBlocks.js:219 -msgid "bottom (screen)" +#: js/blocks/ExtrasBlocks.js:276 +msgid "The Hide blocks block hides the blocks." msgstr "" -#: js/MediaBlocks.js:229 -#: js/MediaBlocks.js:240 -msgid "The Bottom block returns the position of the bottom of the canvas." +#: js/blocks/ExtrasBlocks.js:305 +#: js/blocks/ExtrasBlocks.js:338 +msgid "The Space block is used to add space between blocks." msgstr "" -#: js/MediaBlocks.js:282 -msgid "width" -msgstr "larghezza" +#: js/blocks/ExtrasBlocks.js:376 +msgid "wait" +msgstr "aspettare" -#: js/MediaBlocks.js:291 -msgid "The Width block returns the width of the canvas." +#: js/blocks/ExtrasBlocks.js:379 +msgid "The Wait block pauses the program for a specified number of seconds." msgstr "" -#: js/MediaBlocks.js:325 -msgid "height" -msgstr "altezza" - -#: js/MediaBlocks.js:334 -msgid "The Height block returns the height of the canvas." -msgstr "" +#: js/blocks/ExtrasBlocks.js:433 +#: plugins/facebook.rtp:30 +msgid "comment" +msgstr "comentare" -#: js/MediaBlocks.js:369 -#.TRANS: stops playback of an audio recording -msgid "stop play" -msgstr "interrompere riproduzione" +#: js/blocks/ExtrasBlocks.js:469 +msgid "print" +msgstr "stampare" -#: js/MediaBlocks.js:404 -#.TRANS: Erases the images and text -msgid "erase media" +#: js/blocks/ExtrasBlocks.js:476 +msgid "The Print block displays text at the top of the screen." msgstr "" -#: js/MediaBlocks.js:409 -msgid "The Erase Media block erases text and images." +#: js/blocks/ExtrasBlocks.js:582 +msgid "display grid" msgstr "" -#: js/MediaBlocks.js:439 -#.TRANS: play an audio recording -msgid "play back" +#: js/blocks/ExtrasBlocks.js:587 +msgid "The Display Grid Block changes the grid type" msgstr "" -#: js/MediaBlocks.js:487 -msgid "speak" -msgstr "parlare" - -#: js/MediaBlocks.js:495 -msgid "The Speak block outputs to the text-to-speech synthesizer" -msgstr "" +#: js/blocks/ExtrasBlocks.js:689 +#: js/blocks/ExtrasBlocks.js:708 +#: js/blocks/ExtrasBlocks.js:731 +#: js/blocks/ExtrasBlocks.js:754 +#: js/blocks/ExtrasBlocks.js:772 +#: js/blocks/ExtrasBlocks.js:791 +#: js/blocks/ExtrasBlocks.js:810 +#: js/blocks/ExtrasBlocks.js:829 +msgid "unknown" +msgstr "sconosciuto" -#: js/MediaBlocks.js:546 -msgid "camera" +#: js/blocks/FlowBlocks.js:41 +msgid "The Backward block runs code in reverse order (Musical retrograde)." msgstr "" -#: js/MediaBlocks.js:551 -msgid "The Camera block connects a webcam to the Show block." +#: js/blocks/FlowBlocks.js:48 +msgid "backward" msgstr "" -#: js/MediaBlocks.js:574 -msgid "video" -msgstr "video" - -#: js/MediaBlocks.js:579 -msgid "The Video block selects video for use with the Show block." +#: js/blocks/FlowBlocks.js:124 +msgid "The Duplicate block will run each block multiple times." msgstr "" -#: js/MediaBlocks.js:607 -msgid "The Open file block opens a file for use with the Show block." +#: js/blocks/FlowBlocks.js:136 +msgid "duplicate" msgstr "" -#: js/MediaBlocks.js:645 -msgid "stop media" -msgstr "interrompere mezzi" - -#: js/MediaBlocks.js:650 -msgid "The Stop media block stops audio or video playback." +#: js/blocks/FlowBlocks.js:334 +msgid "The Default block is used inside of a Switch to define the default action." msgstr "" -#: js/MediaBlocks.js:679 -#: js/PitchBlocks.js:1539 -#: js/phrasemaker.js:822 -#: js/musickeyboard.js:1654 -#.TRANS: a measure of frequency: one cycle per second -msgid "hertz" +#: js/blocks/FlowBlocks.js:342 +msgid "default" msgstr "" -#: js/MediaBlocks.js:692 -msgid "duration (ms)" -msgstr "durata (ms)" - -#: js/MediaBlocks.js:728 -#.TRANS: translate a note into hertz, e.g., A4 -> 440HZ -msgid "note to frequency" +#: js/blocks/FlowBlocks.js:361 +#: js/blocks/FlowBlocks.js:418 +msgid "The Case Block must be used inside of a Switch Block." msgstr "" -#: js/MediaBlocks.js:736 -msgid "The To frequency block converts a pitch name and octave to Hertz." +#: js/blocks/FlowBlocks.js:389 +msgid "The Case block is used inside of a Switch to define matches." msgstr "" -#: js/MediaBlocks.js:746 -#: js/PitchBlocks.js:656 -#: js/PitchBlocks.js:932 -#: js/PitchBlocks.js:1827 -#.TRANS: name2 is name as in name of pitch (JAPANESE ONLY) -msgid "name2" +#: js/blocks/FlowBlocks.js:397 +msgid "case" msgstr "" -#: js/MediaBlocks.js:812 -msgid "The Avatar block is used to change the appearance of the mouse." +#: js/blocks/FlowBlocks.js:446 +msgid "The Switch block will run the code in the matching Case." msgstr "" -#: js/MediaBlocks.js:819 -msgid "The Avatar block is used to change the appearance of the turtle." +#: js/blocks/FlowBlocks.js:454 +msgid "switch" msgstr "" -#: js/MediaBlocks.js:831 -#: js/MediaBlocks.js:891 -#.TRANS: a media object -msgid "size" -msgstr "dimensione" - -#: js/MediaBlocks.js:831 -msgid "image" -msgstr "immagine" - -#: js/MediaBlocks.js:880 -msgid "The Show block is used to display text or images on the canvas." +#: js/blocks/FlowBlocks.js:595 +msgid "The Stop block will stop a loop" msgstr "" -#: js/MediaBlocks.js:888 -#.TRANS: show1 is show as in display an image or text on the screen. -msgid "show1" +#: js/blocks/FlowBlocks.js:597 +msgid "Forever, Repeat, While, or Until." msgstr "" -#: js/MediaBlocks.js:891 -msgid "obj" -msgstr "obj" +#: js/blocks/FlowBlocks.js:604 +#: js/widgets/timbre.js:417 +#: js/widgets/timbre.js:419 +#: js/widgets/musickeyboard.js:819 +#: js/widgets/musickeyboard.js:821 +#: js/widgets/phrasemaker.js:4202 +#: plugins/rodi.rtp:29 +#: plugins/rodi.rtp:73 +#: plugins/rodi.rtp:413 +msgid "stop" +msgstr "fermare" -#: js/MediaBlocks.js:938 -msgid "The Media block is used to import an image." +#: js/blocks/FlowBlocks.js:653 +msgid "The Waitfor block will wait until the condition is true." msgstr "" -#: js/MediaBlocks.js:973 -msgid "The Text block holds a text string." -msgstr "" +#: js/blocks/FlowBlocks.js:661 +msgid "wait for" +msgstr "aspettare per" -#: js/ProgramBlocks.js:33 -msgid "The Load-heap-from-app block loads the heap from a web page." +#: js/blocks/FlowBlocks.js:732 +msgid "The Until block will repeat until the condition is true." msgstr "" -#: js/ProgramBlocks.js:44 -#.TRANS: load the heap contents from a URL -msgid "load heap from App" -msgstr "" +#: js/blocks/FlowBlocks.js:740 +msgid "until" +msgstr "fino a" -#: js/ProgramBlocks.js:95 -msgid "Error parsing JSON data:" +#: js/blocks/FlowBlocks.js:742 +#: js/blocks/FlowBlocks.js:822 +msgid "do2" msgstr "" -#: js/ProgramBlocks.js:100 -msgid "404: Page not found" -msgstr "404: Pagina non trovata" - -#: js/ProgramBlocks.js:133 -msgid "The Save-heap-to-app block saves the heap to a web page." +#: js/blocks/FlowBlocks.js:812 +msgid "The While block will repeat while the condition is true." msgstr "" -#: js/ProgramBlocks.js:144 -#.TRANS: save the heap contents to a URL -msgid "save heap to App" -msgstr "" +#: js/blocks/FlowBlocks.js:820 +msgid "while" +msgstr "mentre" -#: js/ProgramBlocks.js:189 -msgid "Cannot find a valid heap for" +#: js/blocks/FlowBlocks.js:903 +#: js/blocks/FlowBlocks.js:968 +#: js/blocks/FlowBlocks.js:979 +msgid "In this example if the mouse button is pressed a snare drum will play." msgstr "" -#: js/ProgramBlocks.js:206 -msgid "The Load-heap block loads the heap from a file." -msgstr "" +#: js/blocks/FlowBlocks.js:925 +#: js/blocks/FlowBlocks.js:988 +msgid "if" +msgstr "se" -#: js/ProgramBlocks.js:217 -#.TRANS: load the heap from a file -msgid "load heap" -msgstr "aprire pila" +#: js/blocks/FlowBlocks.js:927 +#: js/blocks/FlowBlocks.js:990 +msgid "then" +msgstr "allora" -#: js/ProgramBlocks.js:270 -msgid "The file you selected does not contain a valid heap." -msgstr "" +#: js/blocks/FlowBlocks.js:927 +msgid "else" +msgstr "oppure" -#: js/ProgramBlocks.js:275 -msgid "The loadHeap block needs a loadFile block." +#: js/blocks/FlowBlocks.js:1025 +msgid "The Forever block will repeat the contained blocks forever." msgstr "" -#: js/ProgramBlocks.js:291 -msgid "The Set-heap block loads the heap." -msgstr "" +#: js/blocks/FlowBlocks.js:1037 +msgid "forever" +msgstr "per sempre" -#: js/ProgramBlocks.js:299 -#: js/HeapBlocks.js:539 -#.TRANS: load the heap from a JSON encoding -msgid "set heap" +#: js/blocks/FlowBlocks.js:1073 +msgid "The Repeat block will repeat the contained blocks." msgstr "" -#: js/ProgramBlocks.js:340 -msgid "The block you selected does not contain a valid heap." +#: js/blocks/FlowBlocks.js:1075 +msgid "In this example the note will be played 4 times." msgstr "" -#: js/ProgramBlocks.js:343 -msgid "The Set heap block needs a heap." +#: js/blocks/FlowBlocks.js:1083 +msgid "repeat" +msgstr "ripetere" + +#: js/blocks/FlowBlocks.js:1123 +msgid "duplicate factor" msgstr "" -#: js/ProgramBlocks.js:360 -msgid "The Load-dictionary block loads a dictionary from a file." +#: js/blocks/HeapBlocks.js:49 +msgid "The Heap block returns the heap." msgstr "" -#: js/ProgramBlocks.js:372 -#.TRANS: load a dictionary from a file -msgid "load dictionary" -msgstr "carica dizionario" +#: js/blocks/HeapBlocks.js:133 +msgid "show heap" +msgstr "mostrare pila" -#: js/ProgramBlocks.js:390 -#: js/ProgramBlocks.js:658 -#: js/ToneBlocks.js:1025 -msgid "file" -msgstr "file" +#: js/blocks/HeapBlocks.js:181 +msgid "The Heap-length block returns the length of the heap." +msgstr "" -#: js/ProgramBlocks.js:396 -#: js/ProgramBlocks.js:501 -#: js/ProgramBlocks.js:664 -#: js/DictBlocks.js:80 -#: js/DictBlocks.js:145 -#: js/DictBlocks.js:216 -#: js/DictBlocks.js:290 -msgid "My Dictionary" -msgstr "Mio Dizionario" +#: js/blocks/HeapBlocks.js:195 +msgid "heap length" +msgstr "" -#: js/ProgramBlocks.js:444 -msgid "The file you selected does not contain a valid dictionary." +#: js/blocks/HeapBlocks.js:254 +msgid "The Heap-empty? block returns true if the heap is empty." msgstr "" -#: js/ProgramBlocks.js:449 -msgid "The load dictionary block needs a load file block." +#: js/blocks/HeapBlocks.js:268 +#.TRANS: Is the heap empty? +msgid "heap empty?" msgstr "" -#: js/ProgramBlocks.js:466 -msgid "The Set-dictionary block loads a dictionary." +#: js/blocks/HeapBlocks.js:317 +msgid "The Empty-heap block empties the heap." msgstr "" -#: js/ProgramBlocks.js:477 -#.TRANS: load a dictionary from a JSON -msgid "set dictionary" -msgstr "imposta dizionario" +#: js/blocks/HeapBlocks.js:327 +#: js/blocks/HeapBlocks.js:647 +#.TRANS: empty the heap +msgid "empty heap" +msgstr "vuotare pila" -#: js/ProgramBlocks.js:546 -msgid "The block you selected does not contain a valid dictionary." +#: js/blocks/HeapBlocks.js:371 +msgid "The Reverse-heap block reverses the order of the heap." msgstr "" -#: js/ProgramBlocks.js:550 -msgid "The set dictionary block needs a dictionary." +#: js/blocks/HeapBlocks.js:384 +#.TRANS: reverse the order of the heap +msgid "reverse heap" msgstr "" -#: js/ProgramBlocks.js:567 -msgid "The Save-heap block saves the heap to a file." +#: js/blocks/HeapBlocks.js:428 +msgid "The Index-heap block returns a value in the heap at a specified location." msgstr "" -#: js/ProgramBlocks.js:578 -#.TRANS: save the heap to a file -msgid "save heap" -msgstr "Salvare pila" - -#: js/ProgramBlocks.js:629 -msgid "The Save-dictionary block saves a dictionary to a file." +#: js/blocks/HeapBlocks.js:443 +#.TRANS: retrieve a value from the heap at index position in the heap +msgid "index heap" msgstr "" -#: js/ProgramBlocks.js:640 -#.TRANS: save a dictionary to a file -msgid "save dictionary" +#: js/blocks/HeapBlocks.js:523 +msgid "The Set-heap entry block sets a value in he heap at the specified location." msgstr "" -#: js/ProgramBlocks.js:720 -msgid "The Open palette block opens a palette." +#: js/blocks/HeapBlocks.js:539 +#: js/blocks/ProgramBlocks.js:299 +#.TRANS: load the heap from a JSON encoding +msgid "set heap" msgstr "" -#: js/ProgramBlocks.js:727 -msgid "open palette" -msgstr "apri tavolozza" - -#: js/ProgramBlocks.js:785 -msgid "The Delete block block removes a block." +#: js/blocks/HeapBlocks.js:619 +msgid "The Pop block removes the value at the top of the heap." msgstr "" -#: js/ProgramBlocks.js:797 -#.TRANS: Move this block to the trash. -msgid "delete block" -msgstr "" +#: js/blocks/HeapBlocks.js:633 +#.TRANS: pop a value off the top of the heap +msgid "pop" +msgstr "pop" -#: js/ProgramBlocks.js:861 -msgid "The Move block block moves a block." +#: js/blocks/HeapBlocks.js:680 +msgid "The Push block adds a value to the top of the heap." msgstr "" -#: js/ProgramBlocks.js:869 -#.TRANS: Move the position of a block on the screen. -msgid "move block" -msgstr "" +#: js/blocks/HeapBlocks.js:696 +#.TRANS: push a value onto the top of the heap +msgid "push" +msgstr "spingire" -#: js/ProgramBlocks.js:881 -#: js/ProgramBlocks.js:1048 -msgid "block number" +#: js/blocks/IntervalsBlocks.js:45 +msgid "set temperament" msgstr "" -#: js/ProgramBlocks.js:935 -#.TRANS: Run program beginning at this block. -msgid "run block" -msgstr "" +#: js/blocks/IntervalsBlocks.js:63 +#: js/blocks/MediaBlocks.js:746 +#: js/blocks/PitchBlocks.js:657 +#: js/blocks/PitchBlocks.js:935 +#: js/blocks/PitchBlocks.js:974 +#: js/blocks/PitchBlocks.js:1007 +#: js/blocks/PitchBlocks.js:1194 +#: js/blocks/PitchBlocks.js:1717 +#: js/blocks/PitchBlocks.js:1758 +#: js/blocks/PitchBlocks.js:1866 +#: js/blocks/ToneBlocks.js:1025 +#: js/turtleactions/IntervalsActions.js:114 +#.TRANS: adjusts the shift up or down by one octave (twelve half-steps in the interval between two notes, one having twice or half the frequency in Hz of the other.) +msgid "octave" +msgstr "ottava" -#: js/ProgramBlocks.js:1025 -msgid "The Dock block block connections two blocks." +#: js/blocks/IntervalsBlocks.js:99 +msgid "The Temperament name block is used to select a tuning method." msgstr "" -#: js/ProgramBlocks.js:1036 -#.TRANS: We can connect a block to another block. -msgid "connect blocks" +#: js/blocks/IntervalsBlocks.js:161 +msgid "doubly" msgstr "" -#: js/ProgramBlocks.js:1048 -msgid "target block" +#: js/blocks/IntervalsBlocks.js:166 +msgid "The Doubly block will double the size of an interval." msgstr "" -#: js/ProgramBlocks.js:1048 -msgid "connection number" +#: js/blocks/IntervalsBlocks.js:262 +msgid "interval number" msgstr "" -#: js/ProgramBlocks.js:1140 -msgid "The Make block block creates a new block." +#: js/blocks/IntervalsBlocks.js:317 +msgid "current interval" msgstr "" -#: js/ProgramBlocks.js:1152 -#.TRANS: Create a new block -msgid "make block" +#: js/blocks/IntervalsBlocks.js:387 +#.TRANS: measure the distance between two pitches in semi-tones +msgid "semi-tone interval measure" msgstr "" -#: js/ProgramBlocks.js:1186 -#: js/ProgramBlocks.js:1227 -#: js/RhythmBlocks.js:1128 -#: js/PitchBlocks.js:972 -#: js/PitchBlocks.js:1005 -#: js/temperament.js:340 -#: js/temperament.js:362 -#: js/temperament.js:372 -#: js/temperament.js:484 -#: js/status.js:190 -#: plugins/rodi.rtp:192 -#.TRANS: a musical note consisting of pitch and duration -msgid "note" -msgstr "nota" - -#: js/ProgramBlocks.js:1285 -msgid "Cannot find block" +#: js/blocks/IntervalsBlocks.js:454 +#: js/blocks/IntervalsBlocks.js:570 +msgid "You must use two pitch blocks when measuring an interval." msgstr "" -#: js/ProgramBlocks.js:1304 -#: js/ProgramBlocks.js:1313 -msgid "Warning: block argument type mismatch" +#: js/blocks/IntervalsBlocks.js:496 +msgid "The Scalar interval block measures the distance between two notes in the current key and mode." msgstr "" -#: js/ProgramBlocks.js:1347 -msgid "The Open project block is used to open a project from a web page." +#: js/blocks/IntervalsBlocks.js:502 +#.TRANS: measure the distance between two pitches in steps of musical scale +msgid "scalar interval measure" msgstr "" -#: js/ProgramBlocks.js:1357 -msgid "open project" -msgstr "" +#: js/blocks/IntervalsBlocks.js:678 +msgid "In the figure, we add sol# to sol." +msgstr "Nella figura, aggiungiamo sol# al sol" -#: js/ProgramBlocks.js:1410 -msgid "Please enter a valid URL." +#: js/blocks/IntervalsBlocks.js:684 +#: js/blocks/OrnamentBlocks.js:220 +#.TRANS: calculate a relative step between notes based on semi-tones +msgid "semi-tone interval" msgstr "" -#: js/DrumBlocks.js:59 -msgid "The Noise name block is used to select a noise synthesizer." +#: js/blocks/IntervalsBlocks.js:733 +msgid "The output of the example is: do, mi, sol, sol, ti, mi" msgstr "" -#: js/DrumBlocks.js:102 -msgid "The Drum name block is used to select a drum." -msgstr "" +#: js/blocks/IntervalsBlocks.js:740 +#: js/blocks/WidgetBlocks.js:768 +msgid "arpeggio" +msgstr "arpeggio" -#: js/DrumBlocks.js:146 -msgid "The Effects name block is used to select a sound effect." +#: js/blocks/IntervalsBlocks.js:931 +msgid "The Chord block calculates common chords." msgstr "" -#: js/DrumBlocks.js:163 -msgid "noise" -msgstr "" +#: js/blocks/IntervalsBlocks.js:933 +msgid "In the figure, we generate a C-major chord." +msgstr "Nella figura, stiamo generando un accordo di Do-Maggiore" -#: js/DrumBlocks.js:177 -msgid "The Play noise block will generate white, pink, or brown noise." -msgstr "" +#: js/blocks/IntervalsBlocks.js:938 +msgid "chord" +msgstr "accordo" -#: js/DrumBlocks.js:191 -#: js/musicutils.js:752 -#: js/synthutils.js:47 -#.TRANS: white noise synthesizer -msgid "white noise" +#: js/blocks/IntervalsBlocks.js:990 +msgid "The Ratio Interval block calculates an interval based on a ratio." msgstr "" -#: js/DrumBlocks.js:326 -msgid "Replace every instance of a pitch with a drum sound." +#: js/blocks/IntervalsBlocks.js:995 +msgid "ratio interval" msgstr "" -#: js/DrumBlocks.js:337 -#.TRANS: map a pitch to a drum sound -msgid "map pitch to drum" +#: js/blocks/IntervalsBlocks.js:1064 +msgid "In the figure, we add la to sol." msgstr "" -#: js/DrumBlocks.js:404 -msgid "In the example above, a kick drum sound will be played instead of sol." +#: js/blocks/IntervalsBlocks.js:1120 +#.TRANS: define a custom mode +msgid "define mode" msgstr "" -#: js/DrumBlocks.js:416 -#.TRANS: set the current drum sound for playback -msgid "set drum" +#: js/blocks/IntervalsBlocks.js:1173 +msgid "movable Do" msgstr "" -#: js/DrumBlocks.js:460 -msgid "sound effect" +#: js/blocks/IntervalsBlocks.js:1224 +#.TRANS: mode length is the number of notes in the mode, e.g., 7 for major and minor scales; 12 for chromatic scales +msgid "mode length" msgstr "" -#: js/DrumBlocks.js:498 -msgid "You can use multiple Drum blocks within a Note block." +#: js/blocks/IntervalsBlocks.js:1233 +msgid "The Mode length block is the number of notes in the current scale." msgstr "" -#: js/RhythmBlocks.js:182 -#: js/RhythmBlocks.js:1086 -#: js/RhythmBlocks.js:1162 -msgid "Note value must be greater than 0." +#: js/blocks/IntervalsBlocks.js:1235 +msgid "Most Western scales have 7 notes." msgstr "" -#: js/RhythmBlocks.js:215 -#: js/RhythmBlocks.js:278 -#: js/RhythmBlocks.js:350 -#.TRANS: swing is a rhythmic variation that emphasises the offbeat -msgid "swing" +#: js/blocks/IntervalsBlocks.js:1284 +#.TRANS: the mode in music is 'major', 'minor', etc. +msgid "current mode" msgstr "" -#: js/RhythmBlocks.js:355 -#.TRANS: the amount to shift to the offbeat note -msgid "swing value" +#: js/blocks/IntervalsBlocks.js:1337 +#.TRANS: the key is a group of pitches with which a music composition is created +msgid "current key" msgstr "" -#: js/RhythmBlocks.js:419 -msgid "The Skip notes block will cause notes to be skipped." +#: js/blocks/IntervalsBlocks.js:1389 +#: js/blocks/IntervalsBlocks.js:1434 +#.TRANS: set the key and mode, e.g. C Major +msgid "set key" msgstr "" -#: js/RhythmBlocks.js:427 -#.TRANS: substitute rests on notes being skipped -msgid "skip notes" +#: js/blocks/IntervalsBlocks.js:1443 +#: js/blocks/IntervalsBlocks.js:1449 +msgid "The Set key block is used to set the key and mode," msgstr "" -#: js/RhythmBlocks.js:489 -#.TRANS: speed up note duration by some factor, e.g. convert 1/4 to 1/8 notes by using a factor of 2 -msgid "multiply note value" +#: js/blocks/IntervalsBlocks.js:1449 +msgid "eg C Major" msgstr "" -#: js/RhythmBlocks.js:542 -msgid "The Tie block works on pairs of notes, combining them into one note." -msgstr "" +#: js/blocks/MediaBlocks.js:35 +#.TRANS: right side of the screen +msgid "right (screen)" +msgstr "destra (schermo)" -#: js/RhythmBlocks.js:550 -#.TRANS: tie notes together into one longer note -msgid "tie" +#: js/blocks/MediaBlocks.js:45 +#: js/blocks/MediaBlocks.js:56 +msgid "The Right block returns the position of the right of the canvas." msgstr "" -#: js/RhythmBlocks.js:591 -#: js/RhythmBlocks.js:671 -#.TRANS: a dotted note is played for 1.5x its value, e.g., 1/8. --> 3/16 -msgid "dot" -msgstr "" +#: js/blocks/MediaBlocks.js:97 +#.TRANS: left side of the screen +msgid "left (screen)" +msgstr "sinistra (schermo)" -#: js/RhythmBlocks.js:619 -#: js/RhythmActions.js:221 -msgid "An argument of -1 results in a note value of 0." +#: js/blocks/MediaBlocks.js:107 +#: js/blocks/MediaBlocks.js:118 +msgid "The Left block returns the position of the left of the canvas." msgstr "" -#: js/RhythmBlocks.js:661 -msgid "The Dot block extends the duration of a note by 50%." +#: js/blocks/MediaBlocks.js:158 +msgid "top (screen)" msgstr "" -#: js/RhythmBlocks.js:663 -msgid "Eg a dotted quarter note will play for 3/8 (1/4 + 1/8) of a beat." +#: js/blocks/MediaBlocks.js:168 +#: js/blocks/MediaBlocks.js:179 +msgid "The Top block returns the position of the top of the canvas." msgstr "" -#: js/RhythmBlocks.js:765 -#.TRANS: Japanese only: note value block for drum -msgid "note value drum" +#: js/blocks/MediaBlocks.js:219 +msgid "bottom (screen)" msgstr "" -#: js/RhythmBlocks.js:829 -msgid "392 hertz" +#: js/blocks/MediaBlocks.js:229 +#: js/blocks/MediaBlocks.js:240 +msgid "The Bottom block returns the position of the bottom of the canvas." msgstr "" -#: js/RhythmBlocks.js:1119 -msgid "The Note block is a container for one or more Pitch blocks." -msgstr "" +#: js/blocks/MediaBlocks.js:282 +msgid "width" +msgstr "larghezza" -#: js/RhythmBlocks.js:1121 -msgid "The Note block specifies the duration (note value) of its contents." +#: js/blocks/MediaBlocks.js:291 +msgid "The Width block returns the width of the canvas." msgstr "" -#: js/RhythmBlocks.js:1130 -msgid "value2" -msgstr "" +#: js/blocks/MediaBlocks.js:325 +msgid "height" +msgstr "altezza" -#: js/RhythmBlocks.js:1200 -msgid "define frequency" +#: js/blocks/MediaBlocks.js:334 +msgid "The Height block returns the height of the canvas." msgstr "" -#: js/RhythmBlocks.js:1218 -#: js/temperament.js:650 -#: js/temperament.js:1421 -msgid "octave space" -msgstr "" +#: js/blocks/MediaBlocks.js:369 +#.TRANS: stops playback of an audio recording +msgid "stop play" +msgstr "interrompere riproduzione" -#: js/NumberBlocks.js:28 -msgid "The Int block returns an integer." +#: js/blocks/MediaBlocks.js:404 +#.TRANS: Erases the images and text +msgid "erase media" msgstr "" -#: js/NumberBlocks.js:34 -msgid "int" +#: js/blocks/MediaBlocks.js:409 +msgid "The Erase Media block erases text and images." msgstr "" -#: js/NumberBlocks.js:73 -msgid "The Mod block returns the remainder from a division." +#: js/blocks/MediaBlocks.js:439 +#.TRANS: play an audio recording +msgid "play back" msgstr "" -#: js/NumberBlocks.js:79 -msgid "mod" -msgstr "modulo" +#: js/blocks/MediaBlocks.js:487 +msgid "speak" +msgstr "parlare" -#: js/NumberBlocks.js:123 -msgid "The Power block calculates a power function." +#: js/blocks/MediaBlocks.js:495 +msgid "The Speak block outputs to the text-to-speech synthesizer" msgstr "" -#: js/NumberBlocks.js:178 -msgid "The Sqrt block returns the square root." +#: js/blocks/MediaBlocks.js:546 +msgid "camera" msgstr "" -#: js/NumberBlocks.js:184 -msgid "sqrt" -msgstr "sqrt" - -#: js/NumberBlocks.js:230 -msgid "The Abs block returns the absolute value." +#: js/blocks/MediaBlocks.js:551 +msgid "The Camera block connects a webcam to the Show block." msgstr "" -#: js/NumberBlocks.js:236 -msgid "abs" -msgstr "" +#: js/blocks/MediaBlocks.js:574 +msgid "video" +msgstr "video" -#: js/NumberBlocks.js:277 -msgid "The Distance block returns the distance between two points. For example, between the mouse and the center of the screen." +#: js/blocks/MediaBlocks.js:579 +msgid "The Video block selects video for use with the Show block." msgstr "" -#: js/NumberBlocks.js:283 -#: plugins/rodi.rtp:310 -msgid "distance" +#: js/blocks/MediaBlocks.js:607 +msgid "The Open file block opens a file for use with the Show block." msgstr "" -#: js/NumberBlocks.js:343 -msgid "The Divide block is used to divide." +#: js/blocks/MediaBlocks.js:645 +msgid "stop media" +msgstr "interrompere mezzi" + +#: js/blocks/MediaBlocks.js:650 +msgid "The Stop media block stops audio or video playback." msgstr "" -#: js/NumberBlocks.js:411 -msgid "The Multiply block is used to multiply." +#: js/blocks/MediaBlocks.js:679 +#: js/blocks/PitchBlocks.js:1577 +#: js/widgets/musickeyboard.js:1936 +#: js/widgets/phrasemaker.js:1037 +#.TRANS: a measure of frequency: one cycle per second +msgid "hertz" msgstr "" -#: js/NumberBlocks.js:554 -msgid "The Minus block is used to subtract." -msgstr "" +#: js/blocks/MediaBlocks.js:692 +#: js/blocks/WidgetBlocks.js:182 +#: js/widgets/temperament.js:506 +#: js/widgets/temperament.js:546 +#: js/widgets/temperament.js:610 +#: js/widgets/temperament.js:618 +#: js/widgets/temperament.js:1505 +#: js/widgets/timbre.js:1842 +msgid "frequency" +msgstr "frequenza" -#: js/NumberBlocks.js:647 -msgid "The Plus block is used to add." -msgstr "" +#: js/blocks/MediaBlocks.js:692 +msgid "duration (ms)" +msgstr "durata (ms)" -#: js/NumberBlocks.js:773 -msgid "The One-of block returns one of two choices." +#: js/blocks/MediaBlocks.js:728 +#.TRANS: translate a note into hertz, e.g., A4 -> 440HZ +msgid "note to frequency" msgstr "" -#: js/NumberBlocks.js:780 -#: js/PitchBlocks.js:616 -msgid "one of" +#: js/blocks/MediaBlocks.js:736 +msgid "The To frequency block converts a pitch name and octave to Hertz." msgstr "" -#: js/NumberBlocks.js:782 -msgid "this" +#: js/blocks/MediaBlocks.js:746 +#: js/blocks/PitchBlocks.js:656 +#: js/blocks/PitchBlocks.js:934 +#: js/blocks/PitchBlocks.js:1866 +#.TRANS: name2 is name as in name of pitch (JAPANESE ONLY) +msgid "name2" msgstr "" -#: js/NumberBlocks.js:782 -msgid "that" +#: js/blocks/MediaBlocks.js:812 +msgid "The Avatar block is used to change the appearance of the mouse." msgstr "" -#: js/NumberBlocks.js:837 -msgid "The Random block returns a random number." +#: js/blocks/MediaBlocks.js:819 +msgid "The Avatar block is used to change the appearance of the turtle." msgstr "" -#: js/NumberBlocks.js:844 -msgid "random" -msgstr "casuale" - -#: js/NumberBlocks.js:846 -msgid "min" -msgstr "min" - -#: js/NumberBlocks.js:846 -msgid "max" -msgstr "max" +#: js/blocks/MediaBlocks.js:831 +#: js/blocks/MediaBlocks.js:891 +#.TRANS: a media object +msgid "size" +msgstr "dimensione" -#: js/NumberBlocks.js:910 -msgid "The Number block holds a number." -msgstr "" +#: js/blocks/MediaBlocks.js:831 +msgid "image" +msgstr "immagine" -#: js/BoxesBlocks.js:53 -#: js/BoxesBlocks.js:59 -msgid "The Add-to block is used to add to the value stored in a box." +#: js/blocks/MediaBlocks.js:880 +msgid "The Show block is used to display text or images on the canvas." msgstr "" -#: js/BoxesBlocks.js:61 -msgid "It can also be used with other blocks such as Color and Pen size." +#: js/blocks/MediaBlocks.js:888 +#.TRANS: show1 is show as in display an image or text on the screen. +msgid "show1" msgstr "" -#: js/BoxesBlocks.js:73 -msgid "add" -msgstr "aggiungere" +#: js/blocks/MediaBlocks.js:891 +msgid "obj" +msgstr "obj" -#: js/BoxesBlocks.js:75 -#: js/temperament.js:716 -msgid "to" +#: js/blocks/MediaBlocks.js:938 +msgid "The Media block is used to import an image." msgstr "" -#: js/BoxesBlocks.js:75 -#: js/BoxesBlocks.js:595 -#: js/HeapBlocks.js:544 -msgid "value1" +#: js/blocks/MediaBlocks.js:973 +msgid "The Text block holds a text string." msgstr "" -#: js/BoxesBlocks.js:118 -msgid "Block does not support incrementing." +#: js/blocks/MeterBlocks.js:34 +#.TRANS: musical meter (time signature), e.g., 4:4 +msgid "current meter" msgstr "" -#: js/BoxesBlocks.js:152 -msgid "The Add-1-to block adds one to the value stored in a box." +#: js/blocks/MeterBlocks.js:85 +#.TRANS: number of beats per minute +msgid "beat factor" msgstr "" -#: js/BoxesBlocks.js:163 -msgid "add 1 to" -msgstr "agiungere 1 a" - -#: js/BoxesBlocks.js:211 -msgid "The Subtract-1-from block subtracts one from the value stored in a box." +#: js/blocks/MeterBlocks.js:161 +msgid "The Beats per minute block returns the current beats per minute." msgstr "" -#: js/BoxesBlocks.js:222 -msgid "subtract 1 from" +#: js/blocks/MeterBlocks.js:169 +#: js/widgets/status.js:152 +#.TRANS: number of beats played per minute +msgid "beats per minute2" msgstr "" -#: js/BoxesBlocks.js:270 -#: js/BoxesBlocks.js:387 -msgid "The Box block returns the value stored in a box." +#: js/blocks/MeterBlocks.js:169 +#: js/blocks/MeterBlocks.js:1056 +#: js/blocks/MeterBlocks.js:1133 +#: js/blocks/MeterBlocks.js:1211 +#.TRANS: sets tempo by defining a beat and beats per minute +msgid "beats per minute" msgstr "" -#: js/BoxesBlocks.js:500 -#: js/BoxesBlocks.js:576 -msgid "The Store in block will store a value in a box." +#: js/blocks/MeterBlocks.js:233 +#.TRANS: count of current musical measure in meter +msgid "measure count" msgstr "" -#: js/BoxesBlocks.js:652 -msgid "The Box2 block returns the value stored in Box2." +#: js/blocks/MeterBlocks.js:241 +msgid "The Measure count block returns the current measure." msgstr "" -#: js/BoxesBlocks.js:703 -msgid "The Store in Box2 block is used to store a value in Box2." +#: js/blocks/MeterBlocks.js:290 +#.TRANS: count of current beat in the meter +msgid "beat count" msgstr "" -#: js/BoxesBlocks.js:715 -msgid "store in box2" +#: js/blocks/MeterBlocks.js:300 +#: js/blocks/MeterBlocks.js:311 +#: js/blocks/MeterBlocks.js:565 +#: js/blocks/MeterBlocks.js:576 +msgid "The Beat count block is the number of the current beat," msgstr "" -#: js/BoxesBlocks.js:761 -msgid "The Box1 block returns the value stored in Box1." +#: js/blocks/MeterBlocks.js:313 +#: js/blocks/MeterBlocks.js:578 +msgid "eg 1, 2, 3, or 4." msgstr "" -#: js/BoxesBlocks.js:812 -msgid "The Store in Box1 block is used to store a value in Box1." +#: js/blocks/MeterBlocks.js:368 +#.TRANS: count the number of notes +msgid "sum note values" msgstr "" -#: js/BoxesBlocks.js:826 -msgid "store in box1" +#: js/blocks/MeterBlocks.js:376 +#: js/blocks/MeterBlocks.js:440 +msgid "The Note counter block can be used to count the number of contained notes." msgstr "" -#: js/HeapBlocks.js:49 -msgid "The Heap block returns the heap." +#: js/blocks/MeterBlocks.js:432 +#.TRANS: count the number of notes +msgid "note counter" msgstr "" -#: js/HeapBlocks.js:133 -msgid "show heap" -msgstr "mostrare pila" - -#: js/HeapBlocks.js:181 -msgid "The Heap-length block returns the length of the heap." +#: js/blocks/MeterBlocks.js:496 +#.TRANS: number of whole notes that have been played +msgid "whole notes played" msgstr "" -#: js/HeapBlocks.js:195 -msgid "heap length" +#: js/blocks/MeterBlocks.js:505 +msgid "The Whole notes played block returns the total number of whole notes played." msgstr "" -#: js/HeapBlocks.js:254 -msgid "The Heap-empty? block returns true if the heap is empty." +#: js/blocks/MeterBlocks.js:555 +#: js/turtleactions/DictActions.js:83 +#.TRANS: number of notes that have been played +msgid "notes played" msgstr "" -#: js/HeapBlocks.js:268 -#.TRANS: Is the heap empty? -msgid "heap empty?" +#: js/blocks/MeterBlocks.js:653 +msgid "The No clock block decouples the notes from the master clock." msgstr "" -#: js/HeapBlocks.js:317 -msgid "The Empty-heap block empties the heap." +#: js/blocks/MeterBlocks.js:661 +#.TRANS: don't lock notes to master clock +msgid "no clock" msgstr "" -#: js/HeapBlocks.js:327 -#: js/HeapBlocks.js:647 -#.TRANS: empty the heap -msgid "empty heap" -msgstr "vuotare pila" - -#: js/HeapBlocks.js:371 -msgid "The Reverse-heap block reverses the order of the heap." +#: js/blocks/MeterBlocks.js:700 +msgid "on weak beat do" msgstr "" -#: js/HeapBlocks.js:384 -#.TRANS: reverse the order of the heap -msgid "reverse heap" +#: js/blocks/MeterBlocks.js:705 +msgid "The On-weak-beat block lets you specify actions to take on weak (off) beats." msgstr "" -#: js/HeapBlocks.js:428 -msgid "The Index-heap block returns a value in the heap at a specified location." +#: js/blocks/MeterBlocks.js:750 +msgid "on strong beat" msgstr "" -#: js/HeapBlocks.js:443 -#.TRANS: retrieve a value from the heap at index position in the heap -msgid "index heap" +#: js/blocks/MeterBlocks.js:758 +msgid "The On-strong-beat block lets you specify actions to take on specified beats." msgstr "" -#: js/HeapBlocks.js:523 -msgid "The Set-heap entry block sets a value in he heap at the specified location." +#: js/blocks/MeterBlocks.js:769 +msgid "beat" msgstr "" -#: js/HeapBlocks.js:619 -msgid "The Pop block removes the value at the top of the heap." +#: js/blocks/MeterBlocks.js:813 +msgid "on every beat do" msgstr "" -#: js/HeapBlocks.js:633 -#.TRANS: pop a value off the top of the heap -msgid "pop" -msgstr "pop" - -#: js/HeapBlocks.js:680 -msgid "The Push block adds a value to the top of the heap." +#: js/blocks/MeterBlocks.js:821 +msgid "The On-every-beat block lets you specify actions to take on every beat." msgstr "" -#: js/HeapBlocks.js:696 -#.TRANS: push a value onto the top of the heap -msgid "push" -msgstr "spingire" - -#: js/FlowBlocks.js:41 -msgid "The Backward block runs code in reverse order (Musical retrograde)." +#: js/blocks/MeterBlocks.js:874 +msgid "on every note do" msgstr "" -#: js/FlowBlocks.js:48 -msgid "backward" +#: js/blocks/MeterBlocks.js:882 +msgid "The On-every-note block lets you specify actions to take on every note." msgstr "" -#: js/FlowBlocks.js:124 -msgid "The Duplicate block will run each block multiple times." +#: js/blocks/MeterBlocks.js:928 +#: js/blocks/MeterBlocks.js:999 +#.TRANS: sets tempo by defining a beat and beats per minute +msgid "master beats per minute" msgstr "" -#: js/FlowBlocks.js:136 -msgid "duplicate" +#: js/blocks/MeterBlocks.js:952 +#: js/blocks/MeterBlocks.js:1078 +#: js/blocks/MeterBlocks.js:1135 +msgid "bpm" msgstr "" -#: js/FlowBlocks.js:334 -msgid "The Default block is used inside of a Switch to define the default action." +#: js/blocks/MeterBlocks.js:952 +#: js/blocks/MeterBlocks.js:1078 +#: js/blocks/MeterBlocks.js:1135 +msgid "beat value" msgstr "" -#: js/FlowBlocks.js:342 -msgid "default" +#: js/blocks/MeterBlocks.js:1024 +#: js/blocks/MeterBlocks.js:1167 +#: js/blocks/MeterBlocks.js:1241 +msgid "Beats per minute must be > 30." msgstr "" -#: js/FlowBlocks.js:361 -#: js/FlowBlocks.js:418 -msgid "The Case Block must be used inside of a Switch Block." +#: js/blocks/MeterBlocks.js:1027 +#: js/blocks/MeterBlocks.js:1170 +#: js/blocks/MeterBlocks.js:1244 +msgid "Maximum beats per minute is 1000." msgstr "" -#: js/FlowBlocks.js:389 -msgid "The Case block is used inside of a Switch to define matches." +#: js/blocks/MeterBlocks.js:1068 +msgid "The Beats per minute block sets the number of 1/4 notes per minute." msgstr "" -#: js/FlowBlocks.js:397 -msgid "case" +#: js/blocks/MeterBlocks.js:1279 +#.TRANS: anacrusis +msgid "pickup" msgstr "" -#: js/FlowBlocks.js:446 -msgid "The Switch block will run the code in the matching Case." +#: js/blocks/MeterBlocks.js:1367 +msgid "number of beats" msgstr "" -#: js/FlowBlocks.js:454 -msgid "switch" +#: js/blocks/NumberBlocks.js:28 +msgid "The Int block returns an integer." msgstr "" -#: js/FlowBlocks.js:595 -msgid "The Stop block will stop a loop" +#: js/blocks/NumberBlocks.js:34 +msgid "int" msgstr "" -#: js/FlowBlocks.js:597 -msgid "Forever, Repeat, While, or Until." +#: js/blocks/NumberBlocks.js:73 +msgid "The Mod block returns the remainder from a division." msgstr "" -#: js/FlowBlocks.js:604 -#: js/phrasemaker.js:3799 -#: js/musickeyboard.js:629 -#: js/musickeyboard.js:631 -#: js/timbre.js:417 -#: js/timbre.js:419 -#: plugins/rodi.rtp:29 -#: plugins/rodi.rtp:73 -#: plugins/rodi.rtp:413 -msgid "stop" -msgstr "fermare" +#: js/blocks/NumberBlocks.js:79 +msgid "mod" +msgstr "modulo" -#: js/FlowBlocks.js:653 -msgid "The Waitfor block will wait until the condition is true." +#: js/blocks/NumberBlocks.js:141 +msgid "The Power block calculates a power function." msgstr "" -#: js/FlowBlocks.js:661 -msgid "wait for" -msgstr "aspettare per" - -#: js/FlowBlocks.js:732 -msgid "The Until block will repeat until the condition is true." +#: js/blocks/NumberBlocks.js:196 +msgid "The Sqrt block returns the square root." msgstr "" -#: js/FlowBlocks.js:740 -msgid "until" -msgstr "fino a" +#: js/blocks/NumberBlocks.js:202 +msgid "sqrt" +msgstr "sqrt" -#: js/FlowBlocks.js:742 -#: js/FlowBlocks.js:822 -msgid "do2" +#: js/blocks/NumberBlocks.js:248 +msgid "The Abs block returns the absolute value." msgstr "" -#: js/FlowBlocks.js:812 -msgid "The While block will repeat while the condition is true." +#: js/blocks/NumberBlocks.js:254 +msgid "abs" msgstr "" -#: js/FlowBlocks.js:820 -msgid "while" -msgstr "mentre" - -#: js/FlowBlocks.js:903 -#: js/FlowBlocks.js:968 -#: js/FlowBlocks.js:979 -msgid "In this example if the mouse button is pressed a snare drum will play." +#: js/blocks/NumberBlocks.js:295 +msgid "The Distance block returns the distance between two points. For example, between the mouse and the center of the screen." msgstr "" -#: js/FlowBlocks.js:925 -#: js/FlowBlocks.js:988 -msgid "if" -msgstr "se" - -#: js/FlowBlocks.js:927 -#: js/FlowBlocks.js:990 -msgid "then" -msgstr "allora" - -#: js/FlowBlocks.js:927 -msgid "else" -msgstr "oppure" - -#: js/FlowBlocks.js:1025 -msgid "The Forever block will repeat the contained blocks forever." +#: js/blocks/NumberBlocks.js:301 +#: plugins/rodi.rtp:310 +msgid "distance" msgstr "" -#: js/FlowBlocks.js:1037 -msgid "forever" -msgstr "per sempre" - -#: js/FlowBlocks.js:1073 -msgid "The Repeat block will repeat the contained blocks." +#: js/blocks/NumberBlocks.js:361 +msgid "The Divide block is used to divide." msgstr "" -#: js/FlowBlocks.js:1075 -msgid "In this example the note will be played 4 times." +#: js/blocks/NumberBlocks.js:441 +msgid "The Multiply block is used to multiply." msgstr "" -#: js/FlowBlocks.js:1083 -msgid "repeat" -msgstr "ripetere" - -#: js/FlowBlocks.js:1123 -msgid "duplicate factor" +#: js/blocks/NumberBlocks.js:612 +msgid "The Minus block is used to subtract." msgstr "" -#: js/PitchBlocks.js:39 -#: js/musicutils.js:722 -#: js/musicutils.js:1117 -#: js/synthutils.js:112 -#.TRANS: square wave -msgid "square" +#: js/blocks/NumberBlocks.js:723 +msgid "The Plus block is used to add." msgstr "" -#: js/PitchBlocks.js:62 -#: js/ToneBlocks.js:39 -#: js/musicutils.js:723 -#: js/musicutils.js:1118 -#: js/synthutils.js:116 -#.TRANS: triangle wave -msgid "triangle" +#: js/blocks/NumberBlocks.js:849 +msgid "The One-of block returns one of two choices." msgstr "" -#: js/PitchBlocks.js:85 -#: js/musicutils.js:721 -#: js/musicutils.js:1116 -#: js/synthutils.js:110 -#.TRANS: sine wave -msgid "sine" +#: js/blocks/NumberBlocks.js:856 +#: js/blocks/PitchBlocks.js:616 +msgid "one of" msgstr "" -#: js/PitchBlocks.js:108 -#: js/musicutils.js:724 -#: js/musicutils.js:1119 -#: js/synthutils.js:114 -#.TRANS: sawtooth wave -msgid "sawtooth" +#: js/blocks/NumberBlocks.js:858 +msgid "this" msgstr "" -#: js/PitchBlocks.js:141 -#.TRANS: musical transposition (adjustment of pitch up or down) -msgid "transposition" +#: js/blocks/NumberBlocks.js:858 +msgid "that" msgstr "" -#: js/PitchBlocks.js:168 -#.TRANS: step down one note in current musical scale -msgid "scalar step down" +#: js/blocks/NumberBlocks.js:913 +msgid "The Random block returns a random number." msgstr "" -#: js/PitchBlocks.js:172 -msgid "The Scalar step down block returns the number of semi-tones down to the previous note in the current key and mode." -msgstr "" +#: js/blocks/NumberBlocks.js:920 +msgid "random" +msgstr "casuale" -#: js/PitchBlocks.js:190 -#.TRANS: step up one note in current musical scale -msgid "scalar step up" -msgstr "" +#: js/blocks/NumberBlocks.js:922 +msgid "min" +msgstr "min" -#: js/PitchBlocks.js:194 -msgid "The Scalar step up block returns the number of semi-tones up to the next note in the current key and mode." +#: js/blocks/NumberBlocks.js:922 +msgid "max" +msgstr "max" + +#: js/blocks/NumberBlocks.js:986 +msgid "The Number block holds a number." msgstr "" -#: js/PitchBlocks.js:212 -#.TRANS: the change measured in half-steps between the current pitch and the previous pitch -msgid "change in pitch" +#: js/blocks/OrnamentBlocks.js:32 +msgid "staccato factor" msgstr "" -#: js/PitchBlocks.js:216 -msgid "The Change in pitch block is the difference (in half steps) between the current pitch being played and the previous pitch played." +#: js/blocks/OrnamentBlocks.js:108 +msgid "slur factor" msgstr "" -#: js/PitchBlocks.js:243 -#.TRANS: the change measured in scale-steps between the current pitch and the previous pitch -msgid "scalar change in pitch" +#: js/blocks/OrnamentBlocks.js:217 +#: js/blocks/OrnamentBlocks.js:309 +#.TRANS: the neighbor refers to a neighboring note, e.g., D is a neighbor of C +msgid "neighbor" msgstr "" -#: js/PitchBlocks.js:250 -#: js/PitchBlocks.js:432 -#: js/PitchBlocks.js:1629 -#: js/DictActions.js:89 -#: js/temperament.js:477 -#: js/temperament.js:481 -#: js/temperament.js:714 -#.TRANS: convert current note to piano key (1-88) -#.TRANS: a mapping of pitch to the 88 piano keys -msgid "pitch number" +#: js/blocks/OrnamentBlocks.js:293 +msgid "The Neighbor block rapidly switches between neighboring pitches." msgstr "" -#: js/PitchBlocks.js:256 -msgid "The Pitch number block is the value of the pitch of the note currently being played." +#: js/blocks/OrnamentBlocks.js:364 +msgid "glide" msgstr "" -#: js/PitchBlocks.js:329 -#: js/PitchBlocks.js:433 -#.TRANS: the current pitch expressed in Hertz -msgid "pitch in hertz" +#: js/blocks/OrnamentBlocks.js:479 +#: js/blocks/OrnamentBlocks.js:643 +msgid "slur" msgstr "" -#: js/PitchBlocks.js:334 -msgid "The Pitch in Hertz block is the value in Hertz of the pitch of the note currently being played." +#: js/blocks/OrnamentBlocks.js:558 +#: js/blocks/OrnamentBlocks.js:710 +#.TRANS: play each note sharply detached from the others +msgid "staccato" msgstr "" -#: js/PitchBlocks.js:367 -#: js/DictActions.js:87 -msgid "current pitch" +#: js/blocks/RhythmBlocks.js:182 +#: js/blocks/RhythmBlocks.js:1086 +#: js/blocks/RhythmBlocks.js:1162 +msgid "Note value must be greater than 0." msgstr "" -#: js/PitchBlocks.js:373 -msgid "The Current Pitch block is used with the Pitch Converter block. In the example above, current pitch, sol 4, is displayed as 392 hertz." +#: js/blocks/RhythmBlocks.js:215 +#: js/blocks/RhythmBlocks.js:278 +#: js/blocks/RhythmBlocks.js:350 +#.TRANS: swing is a rhythmic variation that emphasises the offbeat +msgid "swing" msgstr "" -#: js/PitchBlocks.js:410 -msgid "This block converts the pitch value of the last note played into different formats such as hertz, letter name, pitch number, et al." +#: js/blocks/RhythmBlocks.js:355 +#.TRANS: the amount to shift to the offbeat note +msgid "swing value" msgstr "" -#: js/PitchBlocks.js:434 -msgid "alphabet" +#: js/blocks/RhythmBlocks.js:419 +msgid "The Skip notes block will cause notes to be skipped." msgstr "" -#: js/PitchBlocks.js:436 -#.TRANS: Translate as "alphabet class" -msgid "letter class" +#: js/blocks/RhythmBlocks.js:427 +#.TRANS: substitute rests on notes being skipped +msgid "skip notes" msgstr "" -#: js/PitchBlocks.js:437 -msgid "solfege class" +#: js/blocks/RhythmBlocks.js:489 +#.TRANS: speed up note duration by some factor, e.g. convert 1/4 to 1/8 notes by using a factor of 2 +msgid "multiply note value" msgstr "" -#: js/PitchBlocks.js:438 -msgid "staff y" +#: js/blocks/RhythmBlocks.js:542 +msgid "The Tie block works on pairs of notes, combining them into one note." msgstr "" -#: js/PitchBlocks.js:439 -msgid "solfege syllable" +#: js/blocks/RhythmBlocks.js:550 +#.TRANS: tie notes together into one longer note +msgid "tie" msgstr "" -#: js/PitchBlocks.js:440 -msgid "pitch class" +#: js/blocks/RhythmBlocks.js:591 +#: js/blocks/RhythmBlocks.js:671 +#.TRANS: a dotted note is played for 1.5x its value, e.g., 1/8. --> 3/16 +msgid "dot" msgstr "" -#: js/PitchBlocks.js:441 -msgid "scalar class" +#: js/blocks/RhythmBlocks.js:619 +#: js/turtleactions/RhythmActions.js:221 +msgid "An argument of -1 results in a note value of 0." msgstr "" -#: js/PitchBlocks.js:443 -msgid "nth degree" +#: js/blocks/RhythmBlocks.js:661 +msgid "The Dot block extends the duration of a note by 50%." msgstr "" -#: js/PitchBlocks.js:444 -msgid "pitch to shade" +#: js/blocks/RhythmBlocks.js:663 +msgid "Eg a dotted quarter note will play for 3/8 (1/4 + 1/8) of a beat." msgstr "" -#: js/PitchBlocks.js:445 -msgid "pitch to color" +#: js/blocks/RhythmBlocks.js:765 +#.TRANS: Japanese only: note value block for drum +msgid "note value drum" msgstr "" -#: js/PitchBlocks.js:629 -#: js/musickeyboard.js:565 -#.TRANS: MIDI is a technical standard for electronic music -msgid "MIDI" +#: js/blocks/RhythmBlocks.js:829 +msgid "392 hertz" msgstr "" -#: js/PitchBlocks.js:642 -#.TRANS: set an offset associated with the numeric piano keyboard mapping -msgid "set pitch number offset" +#: js/blocks/RhythmBlocks.js:1119 +msgid "The Note block is a container for one or more Pitch blocks." msgstr "" -#: js/PitchBlocks.js:645 -msgid "The Set pitch number offset block is used to set the offset for mapping pitch numbers to pitch and octave." +#: js/blocks/RhythmBlocks.js:1121 +msgid "The Note block specifies the duration (note value) of its contents." msgstr "" -#: js/PitchBlocks.js:679 -#.TRANS: convert piano key number (1-88) to pitch -msgid "number to pitch" +#: js/blocks/RhythmBlocks.js:1128 +#: js/blocks/PitchBlocks.js:974 +#: js/blocks/PitchBlocks.js:1007 +#: js/blocks/ProgramBlocks.js:1186 +#: js/blocks/ProgramBlocks.js:1227 +#: js/widgets/status.js:190 +#: js/widgets/temperament.js:464 +#: js/widgets/temperament.js:486 +#: js/widgets/temperament.js:496 +#: js/widgets/temperament.js:617 +#: plugins/rodi.rtp:192 +#.TRANS: a musical note consisting of pitch and duration +msgid "note" +msgstr "nota" + +#: js/blocks/RhythmBlocks.js:1130 +msgid "value2" msgstr "" -#: js/PitchBlocks.js:682 -msgid "The Number to pitch block will convert a pitch number to a pich name." +#: js/blocks/RhythmBlocks.js:1200 +msgid "define frequency" msgstr "" -#: js/PitchBlocks.js:715 -#.TRANS: convert piano key number (1-88) to octave -msgid "number to octave" +#: js/blocks/RhythmBlocks.js:1218 +#: js/widgets/temperament.js:787 +#: js/widgets/temperament.js:1587 +msgid "octave space" msgstr "" -#: js/PitchBlocks.js:717 -msgid "The Number to octave block will convert a pitch number to an octave." +#: js/blocks/SensorsBlocks.js:36 +msgid "The Input block prompts for keyboard input." msgstr "" -#: js/PitchBlocks.js:726 -msgid "y to pitch" +#: js/blocks/SensorsBlocks.js:46 +msgid "input" msgstr "" -#: js/PitchBlocks.js:729 -msgid "Y to pitch block will convert a staff y position to corresponding pitch notation." +#: js/blocks/SensorsBlocks.js:64 +msgid "Input a value" msgstr "" -#: js/PitchBlocks.js:841 -msgid "accidental selector" +#: js/blocks/SensorsBlocks.js:126 +msgid "input value" msgstr "" -#: js/PitchBlocks.js:844 -msgid "The Accidental selector block is used to choose between double-sharp, sharp, natural, flat, and double-flat." +#: js/blocks/SensorsBlocks.js:131 +msgid "The Input-value block stores the input." msgstr "" -#: js/PitchBlocks.js:858 -msgid "Pitch can be specified in terms of ni dha pa ma ga re sa." +#: js/blocks/SensorsBlocks.js:238 +msgid "loudness" +msgstr "rumorosità" + +#: js/blocks/SensorsBlocks.js:245 +msgid "The Loudness block returns the volume detected by the microphone." msgstr "" -#: js/PitchBlocks.js:872 -msgid "Pitch can be specified in terms of C D E F G A B." +#: js/blocks/SensorsBlocks.js:300 +msgid "click" msgstr "" -#: js/PitchBlocks.js:883 -msgid "solfege" +#: js/blocks/SensorsBlocks.js:306 +msgid "The Click block triggers an event if a mouse has been clicked." msgstr "" -#: js/PitchBlocks.js:886 -msgid "Pitch can be specified in terms of do re mi fa sol la ti." +#: js/blocks/SensorsBlocks.js:313 +msgid "The Click block triggers an event if a turtle has been clicked." msgstr "" -#: js/PitchBlocks.js:920 -msgid "The Invert block rotates any contained notes around a target note." +#: js/blocks/SensorsBlocks.js:342 +msgid "cursor over" msgstr "" -#: js/PitchBlocks.js:927 -#.TRANS: pitch inversion rotates a pitch around another pitch -msgid "invert" +#: js/blocks/SensorsBlocks.js:387 +msgid "cursor out" msgstr "" -#: js/PitchBlocks.js:929 -#: js/PitchBlocks.js:935 -#: js/PitchActions.js:727 -#: js/musicutils.js:726 -#: js/musicutils.js:902 -#.TRANS: invert based on even or odd number or musical scale -#.TRANS: even numbers -msgid "even" +#: js/blocks/SensorsBlocks.js:433 +msgid "cursor button down" msgstr "" -#: js/PitchBlocks.js:935 -#: js/PitchActions.js:729 -#: js/musicutils.js:728 -#: js/musicutils.js:903 -#.TRANS: odd numbers -msgid "odd" +#: js/blocks/SensorsBlocks.js:477 +msgid "cursor button up" msgstr "" -#: js/PitchBlocks.js:935 -#: js/PitchActions.js:731 -#: js/musicutils.js:729 -#: js/musicutils.js:904 -msgid "scalar" +#: js/blocks/SensorsBlocks.js:521 +#: js/blocks/PenBlocks.js:48 +#: plugins/rodi.rtp:219 +msgid "blue" msgstr "" -#: js/PitchBlocks.js:966 -#.TRANS: pitch inversion rotates a pitch around another pitch (odd number) -msgid "invert (odd)" +#: js/blocks/SensorsBlocks.js:577 +#: js/blocks/PenBlocks.js:64 +#: plugins/rodi.rtp:218 +msgid "green" msgstr "" -#: js/PitchBlocks.js:999 -#.TRANS: pitch inversion rotates a pitch around another pitch (even number) -msgid "invert (even)" +#: js/blocks/SensorsBlocks.js:633 +#: js/blocks/PenBlocks.js:112 +#: plugins/rodi.rtp:217 +msgid "red" msgstr "" -#: js/PitchBlocks.js:1020 -#.TRANS: register is the octave of the current pitch -msgid "register" +#: js/blocks/SensorsBlocks.js:638 +msgid "The Get red block returns the red component of the pixel under the mouse." msgstr "" -#: js/PitchBlocks.js:1024 -msgid "The Register block provides an easy way to modify the register (octave) of the notes that follow it." +#: js/blocks/SensorsBlocks.js:644 +msgid "The Get red block returns the red component of the pixel under the turtle." msgstr "" -#: js/PitchBlocks.js:1074 -msgid "The Semi-tone transposition block will shift the pitches contained inside Note blocks up (or down) by half steps." +#: js/blocks/SensorsBlocks.js:685 +#: plugins/rodi.rtp:216 +msgid "pixel color" +msgstr "colore dal pixel" + +#: js/blocks/SensorsBlocks.js:690 +msgid "The Get pixel block returns the color of the pixel under the mouse." msgstr "" -#: js/PitchBlocks.js:1076 -msgid "In the example shown above, sol is shifted up to sol#." +#: js/blocks/SensorsBlocks.js:696 +msgid "The Get pixel block returns the color of the pixel under the turtle." msgstr "" -#: js/PitchBlocks.js:1082 -#.TRANS: adjust the amount of shift (up or down) of a pitch -msgid "semi-tone transpose" +#: js/blocks/SensorsBlocks.js:758 +msgid "time" +msgstr "tempo" + +#: js/blocks/SensorsBlocks.js:804 +msgid "cursor y" msgstr "" -#: js/PitchBlocks.js:1115 -msgid "The Transpose by Ratio block will shift the pitches contained inside Note blocks up (or down) by a ratio" +#: js/blocks/SensorsBlocks.js:809 +msgid "The Cursor Y block returns the vertical position of the mouse." msgstr "" -#: js/PitchBlocks.js:1121 -#.TRANS: adjust the amount of shift (up or down) of a pitch -msgid "transpose by ratio" +#: js/blocks/SensorsBlocks.js:845 +msgid "cursor x" msgstr "" -#: js/PitchBlocks.js:1204 -#.TRANS: down sixth means the note is five scale degrees below current note -msgid "down sixth" +#: js/blocks/SensorsBlocks.js:850 +msgid "The Cursor X block returns the horizontal position of the mouse." msgstr "" -#: js/PitchBlocks.js:1223 -#.TRANS: down third means the note is two scale degrees below current note -msgid "down third" +#: js/blocks/SensorsBlocks.js:886 +msgid "mouse button" +msgstr "pulsante del mouse" + +#: js/blocks/SensorsBlocks.js:888 +msgid "The Mouse-button block returns True if the mouse button is pressed." msgstr "" -#: js/PitchBlocks.js:1242 -#.TRANS: seventh means the note is the six scale degrees above current note -msgid "seventh" +#: js/blocks/SensorsBlocks.js:934 +msgid "to ASCII" msgstr "" -#: js/PitchBlocks.js:1261 -#.TRANS: sixth means the note is the five scale degrees above current note -msgid "sixth" +#: js/blocks/SensorsBlocks.js:938 +msgid "The To ASCII block converts numbers to letters." msgstr "" -#: js/PitchBlocks.js:1280 -#.TRANS: fifth means the note is the four scale degrees above current note -msgid "fifth" +#: js/blocks/SensorsBlocks.js:1005 +msgid "The Keyboard block returns computer keyboard input." msgstr "" -#: js/PitchBlocks.js:1300 -#.TRANS: fourth means the note is three scale degrees above current note -msgid "fourth" +#: js/blocks/RhythmBlockPaletteBlocks.js:50 +#: js/blocks/RhythmBlockPaletteBlocks.js:233 +#.TRANS: rhythm block +#.TRANS: translate "rhythm1" as rhythm +msgid "rhythm1" msgstr "" -#: js/PitchBlocks.js:1319 -#.TRANS: third means the note is two scale degrees above current note -msgid "third" +#: js/blocks/RhythmBlockPaletteBlocks.js:70 +#: js/blocks/RhythmBlockPaletteBlocks.js:252 +#: js/blocks/RhythmBlockPaletteBlocks.js:485 +#: js/blocks/RhythmBlockPaletteBlocks.js:554 +#: js/blocks/RhythmBlockPaletteBlocks.js:875 +msgid "number of notes" msgstr "" -#: js/PitchBlocks.js:1338 -#.TRANS: second means the note is one scale degree above current note -msgid "second" +#: js/blocks/RhythmBlockPaletteBlocks.js:126 +msgid "polyphonic rhythm" msgstr "" -#: js/PitchBlocks.js:1379 -msgid "The Scalar transposition block will shift the pitches contained inside Note blocks up (or down) the scale." +#: js/blocks/RhythmBlockPaletteBlocks.js:219 +msgid "The Rhythm block is used to generate rhythm patterns." msgstr "" -#: js/PitchBlocks.js:1381 -msgid "In the example shown above, sol is shifted up to la." +#: js/blocks/RhythmBlockPaletteBlocks.js:280 +msgid "1/64 note" +msgstr "1/64 nota" + +#: js/blocks/RhythmBlockPaletteBlocks.js:304 +msgid "1/32 note" +msgstr "1/32 nota" + +#: js/blocks/RhythmBlockPaletteBlocks.js:332 +msgid "1/16 note" +msgstr "1/16 nota" + +#: js/blocks/RhythmBlockPaletteBlocks.js:360 +msgid "eighth note" +msgstr "un ottavo di nota" + +#: js/blocks/RhythmBlockPaletteBlocks.js:388 +msgid "quarter note" +msgstr "un quarto di nota" + +#: js/blocks/RhythmBlockPaletteBlocks.js:416 +msgid "half note" +msgstr "mezza nota" + +#: js/blocks/RhythmBlockPaletteBlocks.js:444 +msgid "whole note" +msgstr "nota intera" + +#: js/blocks/RhythmBlockPaletteBlocks.js:482 +#: js/blocks/RhythmBlockPaletteBlocks.js:551 +#: js/blocks/RhythmBlockPaletteBlocks.js:602 +#.TRANS: A tuplet is a note value divided into irregular time values. +msgid "tuplet" msgstr "" -#: js/PitchBlocks.js:1388 -#.TRANS: adjust the amount of shift (up or down) of a pitch by musical scale (scalar) steps -msgid "scalar transpose" +#: js/blocks/RhythmBlockPaletteBlocks.js:768 +msgid "septuplet" msgstr "" -#: js/PitchBlocks.js:1423 -msgid "The Accidental block is used to create sharps and flats" +#: js/blocks/RhythmBlockPaletteBlocks.js:796 +msgid "quintuplet" msgstr "" -#: js/PitchBlocks.js:1430 -#.TRANS: An accidental is a modification to a pitch, e.g., sharp or flat. -msgid "accidental override" +#: js/blocks/RhythmBlockPaletteBlocks.js:824 +msgid "triplet" msgstr "" -#: js/PitchBlocks.js:1543 -msgid "The Hertz block (in combination with a Number block) will play a sound at the specified frequency." +#: js/blocks/RhythmBlockPaletteBlocks.js:851 +msgid "simple tuplet" msgstr "" -#: js/PitchBlocks.js:1633 -msgid "The Pitch Number block will play a pitch associated by its number, e.g. 0 for C and 7 for G." +#: js/blocks/RhythmBlockPaletteBlocks.js:861 +msgid "Tuplets are a collection of notes that get scaled to a specific duration." msgstr "" -#: js/PitchBlocks.js:1665 -#: js/PitchBlocks.js:1707 -#.TRANS: a numeric mapping of the notes in an octave based on the musical mode -#.TRANS: a numeric mapping of the notes in an octave based on the musical mode -msgid "nth modal pitch" +#: js/blocks/DrumBlocks.js:59 +msgid "The Noise name block is used to select a noise synthesizer." msgstr "" -#: js/PitchBlocks.js:1668 -msgid "n^th Modal Pitch takes the pattern of pitches in semitones for a mode and makes each point a degree of the mode," +#: js/blocks/DrumBlocks.js:102 +msgid "The Drum name block is used to select a drum." msgstr "" -#: js/PitchBlocks.js:1670 -msgid "starting from 1 and regardless of tonal framework (i.e. not always 8 notes in the octave)" +#: js/blocks/DrumBlocks.js:146 +msgid "The Effects name block is used to select a sound effect." msgstr "" -#: js/PitchBlocks.js:1711 -msgid "N^th Modal Pitch takes a number as an input as the n^th degree for the given mode. 0 is the first position, 1 is the second, -1 is the note before the first etc." +#: js/blocks/DrumBlocks.js:163 +msgid "noise" msgstr "" -#: js/PitchBlocks.js:1713 -msgid "The pitches change according to the mode specified without any need for respellings." +#: js/blocks/DrumBlocks.js:177 +msgid "The Play noise block will generate white, pink, or brown noise." msgstr "" -#: js/PitchBlocks.js:1752 -msgid "Scale Degree is a common convention in music. Scale Degree offers seven possible positions in the scale (1-7) and can be modified via accidentals." +#: js/blocks/DrumBlocks.js:317 +msgid "Replace every instance of a pitch with a drum sound." msgstr "" -#: js/PitchBlocks.js:1754 -msgid "Scale Degree 1 is always the first pitch in a given scale, regardless of octave." +#: js/blocks/DrumBlocks.js:328 +#.TRANS: map a pitch to a drum sound +msgid "map pitch to drum" msgstr "" -#: js/PitchBlocks.js:1776 -#.TRANS: step some number of notes in current musical scale -msgid "scalar step" +#: js/blocks/DrumBlocks.js:395 +msgid "In the example above, a kick drum sound will be played instead of sol." msgstr "" -#: js/PitchBlocks.js:1781 -msgid "The Scalar Step block (in combination with a Number block) will play the next pitch in a scale," +#: js/blocks/DrumBlocks.js:407 +#.TRANS: set the current drum sound for playback +msgid "set drum" msgstr "" -#: js/PitchBlocks.js:1783 -msgid "eg if the last note played was sol, Scalar Step 1 will play la." +#: js/blocks/DrumBlocks.js:451 +msgid "sound effect" msgstr "" -#: js/PitchBlocks.js:1818 -msgid "The Pitch block specifies the pitch name and octave of a note that together determine the frequency of the note." +#: js/blocks/DrumBlocks.js:489 +msgid "You can use multiple Drum blocks within a Note block." msgstr "" -#: js/GraphicsBlocks.js:46 -#: js/DictActions.js:77 -#: js/DictActions.js:155 -#: js/DictActions.js:189 +#: js/blocks/GraphicsBlocks.js:46 +#: js/turtleactions/DictActions.js:77 +#: js/turtleactions/DictActions.js:144 +#: js/turtleactions/DictActions.js:173 msgid "heading" msgstr "direzione" -#: js/GraphicsBlocks.js:56 +#: js/blocks/GraphicsBlocks.js:56 msgid "The Heading block returns the orientation of the mouse." msgstr "" -#: js/GraphicsBlocks.js:62 +#: js/blocks/GraphicsBlocks.js:62 msgid "The Heading block returns the orientation of the turtle." msgstr "" -#: js/GraphicsBlocks.js:133 +#: js/blocks/GraphicsBlocks.js:133 msgid "The Y block returns the vertical position of the mouse." msgstr "" -#: js/GraphicsBlocks.js:140 +#: js/blocks/GraphicsBlocks.js:140 msgid "The Y block returns the vertical position of the turtle." msgstr "" -#: js/GraphicsBlocks.js:149 +#: js/blocks/GraphicsBlocks.js:149 msgid "y3" msgstr "" -#: js/GraphicsBlocks.js:219 +#: js/blocks/GraphicsBlocks.js:219 msgid "The X block returns the horizontal position of the mouse." msgstr "" -#: js/GraphicsBlocks.js:226 +#: js/blocks/GraphicsBlocks.js:226 msgid "The X block returns the horizontal position of the turtle." msgstr "" -#: js/GraphicsBlocks.js:235 +#: js/blocks/GraphicsBlocks.js:235 msgid "x3" msgstr "" -#: js/GraphicsBlocks.js:295 +#: js/blocks/GraphicsBlocks.js:295 msgid "scroll xy" msgstr "" -#: js/GraphicsBlocks.js:303 +#: js/blocks/GraphicsBlocks.js:303 msgid "The Scroll XY block moves the canvas." msgstr "" -#: js/GraphicsBlocks.js:313 +#: js/blocks/GraphicsBlocks.js:313 msgid "x2" msgstr "" -#: js/GraphicsBlocks.js:313 +#: js/blocks/GraphicsBlocks.js:313 msgid "y2" msgstr "" -#: js/GraphicsBlocks.js:373 -#: js/temperament.js:213 -#: js/temperament.js:241 +#: js/blocks/GraphicsBlocks.js:373 +#: js/widgets/temperament.js:319 +#: js/widgets/temperament.js:347 msgid "clear" msgstr "pulire" -#: js/GraphicsBlocks.js:426 +#: js/blocks/GraphicsBlocks.js:426 msgid "The Control-point 2 block sets the second control point for the Bezier curve." msgstr "" -#: js/GraphicsBlocks.js:433 +#: js/blocks/GraphicsBlocks.js:433 msgid "control point 2" msgstr "" -#: js/GraphicsBlocks.js:436 -#: js/GraphicsBlocks.js:487 -#: js/GraphicsBlocks.js:534 -#: js/GraphicsBlocks.js:750 +#: js/blocks/GraphicsBlocks.js:436 +#: js/blocks/GraphicsBlocks.js:487 +#: js/blocks/GraphicsBlocks.js:534 +#: js/blocks/GraphicsBlocks.js:750 msgid "x1" msgstr "" -#: js/GraphicsBlocks.js:436 -#: js/GraphicsBlocks.js:487 -#: js/GraphicsBlocks.js:534 -#: js/GraphicsBlocks.js:750 +#: js/blocks/GraphicsBlocks.js:436 +#: js/blocks/GraphicsBlocks.js:487 +#: js/blocks/GraphicsBlocks.js:534 +#: js/blocks/GraphicsBlocks.js:750 msgid "y1" msgstr "" -#: js/GraphicsBlocks.js:477 +#: js/blocks/GraphicsBlocks.js:477 msgid "The Control-point 1 block sets the first control point for the Bezier curve." msgstr "" -#: js/GraphicsBlocks.js:484 +#: js/blocks/GraphicsBlocks.js:484 msgid "control point 1" msgstr "" -#: js/GraphicsBlocks.js:527 +#: js/blocks/GraphicsBlocks.js:527 msgid "The Bezier block draws a Bezier curve." msgstr "" -#: js/GraphicsBlocks.js:531 +#: js/blocks/GraphicsBlocks.js:531 msgid "bezier" msgstr "" -#: js/GraphicsBlocks.js:592 +#: js/blocks/GraphicsBlocks.js:592 msgid "The Arc block moves the turtle in an arc." msgstr "" -#: js/GraphicsBlocks.js:600 +#: js/blocks/GraphicsBlocks.js:600 msgid "arc" msgstr "arco" -#: js/GraphicsBlocks.js:603 +#: js/blocks/GraphicsBlocks.js:603 msgid "angle" msgstr "angolo" -#: js/GraphicsBlocks.js:603 +#: js/blocks/GraphicsBlocks.js:603 msgid "radius" msgstr "raggio" -#: js/GraphicsBlocks.js:620 -#: js/GraphicsBlocks.js:767 -#: js/GraphicsBlocks.js:1010 -#: js/GraphicsBlocks.js:1093 +#: js/blocks/GraphicsBlocks.js:620 +#: js/blocks/GraphicsBlocks.js:767 +#: js/blocks/GraphicsBlocks.js:1010 +#: js/blocks/GraphicsBlocks.js:1093 msgid "Value must be within -5000 to 5000 when Wrap Mode is off." msgstr "" -#: js/GraphicsBlocks.js:622 -#: js/GraphicsBlocks.js:769 -#: js/GraphicsBlocks.js:1012 -#: js/GraphicsBlocks.js:1095 +#: js/blocks/GraphicsBlocks.js:622 +#: js/blocks/GraphicsBlocks.js:769 +#: js/blocks/GraphicsBlocks.js:1012 +#: js/blocks/GraphicsBlocks.js:1095 msgid "Value must be within -20000 to 20000 when Wrap Mode is on." msgstr "" -#: js/GraphicsBlocks.js:660 +#: js/blocks/GraphicsBlocks.js:660 msgid "set heading" msgstr "selezionare direzione" -#: js/GraphicsBlocks.js:673 +#: js/blocks/GraphicsBlocks.js:673 msgid "The Set heading block sets the heading of the turtle." msgstr "" -#: js/GraphicsBlocks.js:733 +#: js/blocks/GraphicsBlocks.js:733 msgid "The Set XY block moves the mouse to a specific position on the screen." msgstr "" -#: js/GraphicsBlocks.js:739 +#: js/blocks/GraphicsBlocks.js:739 msgid "The Set XY block moves the turtle to a specific position on the screen." msgstr "" -#: js/GraphicsBlocks.js:747 +#: js/blocks/GraphicsBlocks.js:747 msgid "set xy" msgstr "selezionare xy" -#: js/GraphicsBlocks.js:819 +#: js/blocks/GraphicsBlocks.js:819 msgid "The Right block turns the mouse to the right." msgstr "" -#: js/GraphicsBlocks.js:826 +#: js/blocks/GraphicsBlocks.js:826 msgid "The Right block turns the turtle to the right." msgstr "" -#: js/GraphicsBlocks.js:835 +#: js/blocks/GraphicsBlocks.js:835 msgid "right1" msgstr "" -#: js/GraphicsBlocks.js:835 +#: js/blocks/GraphicsBlocks.js:835 #: plugins/rodi.rtp:77 #: plugins/rodi.rtp:340 #: plugins/rodi.rtp:375 msgid "right" msgstr "destra" -#: js/GraphicsBlocks.js:899 +#: js/blocks/GraphicsBlocks.js:899 msgid "The Left block turns the mouse to the left." msgstr "" -#: js/GraphicsBlocks.js:906 +#: js/blocks/GraphicsBlocks.js:906 msgid "The Left block turns the turtle to the left." msgstr "" -#: js/GraphicsBlocks.js:915 +#: js/blocks/GraphicsBlocks.js:915 msgid "left1" msgstr "" -#: js/GraphicsBlocks.js:915 +#: js/blocks/GraphicsBlocks.js:915 #: plugins/rodi.rtp:79 #: plugins/rodi.rtp:339 #: plugins/rodi.rtp:362 msgid "left" msgstr "sinistra" -#: js/GraphicsBlocks.js:967 -#: js/temperament.js:734 -#: js/temperament.js:933 +#: js/blocks/GraphicsBlocks.js:967 +#: js/widgets/temperament.js:875 +#: js/widgets/temperament.js:1078 #: plugins/rodi.rtp:69 #: plugins/rodi.rtp:387 msgid "back" msgstr "indietro" -#: js/GraphicsBlocks.js:976 +#: js/blocks/GraphicsBlocks.js:976 msgid "The Back block moves the mouse backward." msgstr "" -#: js/GraphicsBlocks.js:983 +#: js/blocks/GraphicsBlocks.js:983 msgid "The Back block moves the turtle backward." msgstr "" -#: js/GraphicsBlocks.js:1050 +#: js/blocks/GraphicsBlocks.js:1050 #: plugins/rodi.rtp:71 #: plugins/rodi.rtp:400 msgid "forward" msgstr "avanti" -#: js/GraphicsBlocks.js:1059 -msgid "The Forward block moves the mouse forward." -msgstr "" - -#: js/GraphicsBlocks.js:1066 -msgid "The Forward block moves the turtle forward." -msgstr "" - -#: js/GraphicsBlocks.js:1154 -#: js/GraphicsBlocks.js:1172 -msgid "wrap" -msgstr "" - -#: js/OrnamentBlocks.js:32 -msgid "staccato factor" -msgstr "" - -#: js/OrnamentBlocks.js:108 -msgid "slur factor" -msgstr "" - -#: js/OrnamentBlocks.js:217 -#: js/OrnamentBlocks.js:309 -#.TRANS: the neighbor refers to a neighboring note, e.g., D is a neighbor of C -msgid "neighbor" -msgstr "" - -#: js/OrnamentBlocks.js:293 -msgid "The Neighbor block rapidly switches between neighboring pitches." -msgstr "" - -#: js/OrnamentBlocks.js:364 -msgid "glide" -msgstr "" - -#: js/OrnamentBlocks.js:479 -#: js/OrnamentBlocks.js:643 -msgid "slur" -msgstr "" - -#: js/OrnamentBlocks.js:558 -#: js/OrnamentBlocks.js:710 -#.TRANS: play each note sharply detached from the others -msgid "staccato" +#: js/blocks/GraphicsBlocks.js:1059 +msgid "The Forward block moves the mouse forward." msgstr "" -#: js/PenBlocks.js:24 -msgid "purple" +#: js/blocks/GraphicsBlocks.js:1066 +msgid "The Forward block moves the turtle forward." msgstr "" -#: js/PenBlocks.js:37 -#: js/SensorsBlocks.js:521 -#: plugins/rodi.rtp:219 -msgid "blue" +#: js/blocks/GraphicsBlocks.js:1154 +#: js/blocks/GraphicsBlocks.js:1172 +msgid "wrap" msgstr "" -#: js/PenBlocks.js:50 -#: js/SensorsBlocks.js:577 -#: plugins/rodi.rtp:218 -msgid "green" +#: js/blocks/PenBlocks.js:30 +msgid "purple" msgstr "" -#: js/PenBlocks.js:63 +#: js/blocks/PenBlocks.js:80 msgid "yellow" msgstr "" -#: js/PenBlocks.js:76 +#: js/blocks/PenBlocks.js:96 #: plugins/nutrition.rtp:164 msgid "orange" msgstr "arancio" -#: js/PenBlocks.js:89 -#: js/SensorsBlocks.js:633 -#: plugins/rodi.rtp:217 -msgid "red" -msgstr "" - -#: js/PenBlocks.js:102 +#: js/blocks/PenBlocks.js:128 msgid "white" msgstr "" -#: js/PenBlocks.js:115 +#: js/blocks/PenBlocks.js:144 msgid "black" msgstr "" -#: js/PenBlocks.js:128 +#: js/blocks/PenBlocks.js:163 msgid "begin fill" msgstr "iniziare riempire" -#: js/PenBlocks.js:143 +#: js/blocks/PenBlocks.js:190 msgid "end fill" msgstr "terminare riempimento" -#: js/PenBlocks.js:159 -#: js/PenBlocks.js:386 +#: js/blocks/PenBlocks.js:212 +#: js/blocks/PenBlocks.js:560 #.TRANS: set the background color msgid "background" msgstr "" -#: js/PenBlocks.js:206 -#: js/DictActions.js:71 -#: js/DictActions.js:149 -#: js/DictActions.js:186 +#: js/blocks/PenBlocks.js:274 +#: js/turtleactions/DictActions.js:71 +#: js/turtleactions/DictActions.js:138 +#: js/turtleactions/DictActions.js:170 msgid "grey" msgstr "grigio" -#: js/PenBlocks.js:210 +#: js/blocks/PenBlocks.js:282 msgid "The Grey block returns the current pen grey value." msgstr "" -#: js/PenBlocks.js:243 -#: js/DictActions.js:69 -#: js/DictActions.js:147 -#: js/DictActions.js:185 +#: js/blocks/PenBlocks.js:340 +#: js/turtleactions/DictActions.js:69 +#: js/turtleactions/DictActions.js:136 +#: js/turtleactions/DictActions.js:169 msgid "shade" msgstr "ombreggiatura" -#: js/PenBlocks.js:247 +#: js/blocks/PenBlocks.js:347 msgid "The Shade block returns the current pen shade value." msgstr "" -#: js/PenBlocks.js:280 -#: js/DictActions.js:67 -#: js/DictActions.js:145 -#: js/DictActions.js:184 +#: js/blocks/PenBlocks.js:405 +#: js/turtleactions/DictActions.js:67 +#: js/turtleactions/DictActions.js:134 +#: js/turtleactions/DictActions.js:168 msgid "color" msgstr "colore" -#: js/PenBlocks.js:285 +#: js/blocks/PenBlocks.js:415 msgid "The Color block returns the current pen color." msgstr "" -#: js/PenBlocks.js:318 -#: js/DictActions.js:73 -#: js/DictActions.js:151 -#: js/DictActions.js:187 +#: js/blocks/PenBlocks.js:470 +#: js/turtleactions/DictActions.js:73 +#: js/turtleactions/DictActions.js:140 +#: js/turtleactions/DictActions.js:171 msgid "pen size" msgstr "dimensione della penna" -#: js/PenBlocks.js:322 +#: js/blocks/PenBlocks.js:474 msgid "The Pen size block returns the current pen size value." msgstr "" -#: js/PenBlocks.js:355 +#: js/blocks/PenBlocks.js:513 msgid "set font" msgstr "" -#: js/PenBlocks.js:358 +#: js/blocks/PenBlocks.js:518 msgid "The Set font block sets the font used by the Show block." msgstr "" -#: js/PenBlocks.js:391 +#: js/blocks/PenBlocks.js:567 msgid "The Background block sets the window background color." msgstr "" -#: js/PenBlocks.js:408 +#: js/blocks/PenBlocks.js:598 msgid "The Hollow line block creates a line with a hollow center." msgstr "" -#: js/PenBlocks.js:415 +#: js/blocks/PenBlocks.js:606 #.TRANS: draw a line logo has a hollow space down its center msgid "hollow line" msgstr "" -#: js/PenBlocks.js:462 +#: js/blocks/PenBlocks.js:675 msgid "The Fill block fills in a shape with a color." msgstr "" -#: js/PenBlocks.js:470 +#: js/blocks/PenBlocks.js:684 #.TRANS: fill in as a solid color msgid "fill" msgstr "" -#: js/PenBlocks.js:527 +#: js/blocks/PenBlocks.js:761 #.TRANS: raise up the pen so logo it does not draw when it is moved msgid "pen up" msgstr "caricare penna" -#: js/PenBlocks.js:532 +#: js/blocks/PenBlocks.js:768 msgid "The Pen-up block raises the pen so that it does not draw." msgstr "" -#: js/PenBlocks.js:552 +#: js/blocks/PenBlocks.js:802 #.TRANS: put down the pen so logo it draws when it is moved msgid "pen down" msgstr "scendere penna" -#: js/PenBlocks.js:557 +#: js/blocks/PenBlocks.js:810 msgid "The Pen-down block lowers the pen so that it draws." msgstr "" -#: js/PenBlocks.js:577 +#: js/blocks/PenBlocks.js:844 #.TRANS: set the width of the line drawn by the pen msgid "set pen size" msgstr "selezionare dimensione della penna" -#: js/PenBlocks.js:583 +#: js/blocks/PenBlocks.js:854 msgid "The Set-pen-size block changes the size of the pen." msgstr "" -#: js/PenBlocks.js:623 +#: js/blocks/PenBlocks.js:913 #.TRANS: set degree of translucence of the pen color msgid "set translucency" msgstr "" -#: js/PenBlocks.js:627 +#: js/blocks/PenBlocks.js:921 msgid "The Set translucency block changes the opacity of the pen." msgstr "" -#: js/PenBlocks.js:668 +#: js/blocks/PenBlocks.js:981 msgid "set hue" msgstr "selezionare tonalità" -#: js/PenBlocks.js:672 +#: js/blocks/PenBlocks.js:989 msgid "The Set hue block changes the color of the pen." msgstr "" -#: js/PenBlocks.js:711 +#: js/blocks/PenBlocks.js:1047 msgid "set shade" msgstr "selezionare ombreggiatura" -#: js/PenBlocks.js:717 +#: js/blocks/PenBlocks.js:1057 msgid "The Set-shade block changes the pen color from dark to light." msgstr "" -#: js/PenBlocks.js:757 +#: js/blocks/PenBlocks.js:1111 #.TRANS: set the level of vividness of the pen color msgid "set grey" msgstr "selezionare grigio" -#: js/PenBlocks.js:761 +#: js/blocks/PenBlocks.js:1119 msgid "The Set grey block changes the vividness of the pen color." msgstr "" -#: js/PenBlocks.js:800 +#: js/blocks/PenBlocks.js:1172 msgid "set color" msgstr "selezionare colore" -#: js/PenBlocks.js:806 +#: js/blocks/PenBlocks.js:1182 msgid "The Set-color block changes the pen color." msgstr "" -#: js/VolumeBlocks.js:35 -msgid "synth volume" -msgstr "" - -#: js/VolumeBlocks.js:39 -msgid "The Synth volume block returns the current volume of the current synthesizer." -msgstr "" - -#: js/VolumeBlocks.js:47 -#: js/musicutils.js:730 -#: js/synthutils.js:56 -#.TRANS: musical instrument -msgid "piano" -msgstr "" - -#: js/VolumeBlocks.js:105 -msgid "master volume" -msgstr "" - -#: js/VolumeBlocks.js:109 -msgid "The Master volume block returns the master volume." -msgstr "" - -#: js/VolumeBlocks.js:355 -#: js/VolumeBlocks.js:524 -msgid "set synth volume" -msgstr "" - -#: js/VolumeBlocks.js:362 -#: js/VolumeBlocks.js:545 -msgid "synth" -msgstr "" - -#: js/VolumeBlocks.js:403 -#: js/VolumeBlocks.js:577 -#: js/VolumeBlocks.js:740 -#: js/VolumeActions.js:173 -msgid "Setting volume to 0." -msgstr "" - -#: js/VolumeBlocks.js:440 -msgid "Synth not found" -msgstr "" - -#: js/VolumeBlocks.js:494 -msgid "set drum volume" -msgstr "" - -#: js/VolumeBlocks.js:530 -msgid "The Set synth volume block will change the volume of a particular synth," -msgstr "" - -#: js/VolumeBlocks.js:532 -msgid "eg guitar violin snare drum etc." -msgstr "" - -#: js/VolumeBlocks.js:534 -msgid "The default volume is 50." -msgstr "" - -#: js/VolumeBlocks.js:536 -msgid "The range is 0 for silence to 100 for full volume." -msgstr "" - -#: js/VolumeBlocks.js:597 -msgid "set panning" -msgstr "" - -#: js/VolumeBlocks.js:603 -msgid "The Set Panning block sets the panning for all synthesizers." -msgstr "" - -#: js/VolumeBlocks.js:625 -msgid "Warning: Sound is coming out from only the left or right side." -msgstr "" - -#: js/VolumeBlocks.js:647 -#: js/VolumeBlocks.js:695 -msgid "set master volume" -msgstr "" - -#: js/VolumeBlocks.js:653 -msgid "The Set master volume block sets the volume for all synthesizers." -msgstr "" - -#: js/VolumeBlocks.js:784 -msgid "The Set relative volume block changes the volume of the contained notes." -msgstr "" - -#: js/VolumeBlocks.js:791 -msgid "set relative volume" -msgstr "" - -#: js/VolumeBlocks.js:857 -msgid "decrescendo" -msgstr "" - -#: js/VolumeBlocks.js:921 -msgid "crescendo" -msgstr "" - -#: js/ToneBlocks.js:34 -msgid "oscillator" -msgstr "" - -#: js/ToneBlocks.js:44 -#: js/timbre.js:1562 -#.TRANS: Partials refers to the number of sine waves combined into the sound. -msgid "partials" -msgstr "" - -#: js/ToneBlocks.js:76 -msgid "You are adding multiple oscillator blocks." -msgstr "" - -#: js/ToneBlocks.js:144 -#: js/timbre.js:1225 -#.TRANS: a duo synthesizer combines a synth with a sequencer -msgid "duo synth" -msgstr "" - -#: js/ToneBlocks.js:149 -msgid "The Duo synth block is a duo-frequency modulator used to define a timbre." -msgstr "" - -#: js/ToneBlocks.js:157 -#: js/timbre.js:1476 -msgid "vibrato rate" -msgstr "" - -#: js/ToneBlocks.js:157 -msgid "vibrato intensity" -msgstr "" - -#: js/ToneBlocks.js:185 -#: js/timbre.js:1221 -#.TRANS: AM (amplitude modulation) synthesizer -msgid "AM synth" -msgstr "" - -#: js/ToneBlocks.js:189 -msgid "The AM synth block is an amplitude modulator used to define a timbre." -msgstr "" - -#: js/ToneBlocks.js:224 -#: js/timbre.js:1223 -#.TRANS: FM (frequency modulation) synthesizer -msgid "FM synth" -msgstr "" - -#: js/ToneBlocks.js:228 -msgid "The FM synth block is a frequency modulator used to define a timbre." -msgstr "" - -#: js/ToneBlocks.js:262 -msgid "partial" -msgstr "" - -#: js/ToneBlocks.js:265 -msgid "The Partial block is used to specify a weight for a specific partial harmonic." -msgstr "" - -#: js/ToneBlocks.js:284 -#.TRANS: partials are weighted components in a harmonic series -msgid "Partial weight must be between 0 and 1." -msgstr "" - -#: js/ToneBlocks.js:297 -#.TRANS: partials are weighted components in a harmonic series -msgid "Partial block should be used inside of a Weighted-partials block." -msgstr "" - -#: js/ToneBlocks.js:325 -#.TRANS: partials are weighted components in a harmonic series -msgid "weighted partials" -msgstr "" - -#: js/ToneBlocks.js:383 -msgid "The Harmonic block will add harmonics to the contained notes." +#: js/blocks/PitchBlocks.js:141 +#.TRANS: musical transposition (adjustment of pitch up or down) +msgid "transposition" msgstr "" -#: js/ToneBlocks.js:390 -#.TRANS: A harmonic is an overtone. -msgid "harmonic" +#: js/blocks/PitchBlocks.js:168 +#.TRANS: step down one note in current musical scale +msgid "scalar step down" msgstr "" -#: js/ToneBlocks.js:431 -msgid "The Distortion block adds distortion to the pitch." +#: js/blocks/PitchBlocks.js:172 +msgid "The Scalar step down block returns the number of semi-tones down to the previous note in the current key and mode." msgstr "" -#: js/ToneBlocks.js:438 -#: js/timbre.js:2100 -#.TRANS: distortion is an alteration in the sound -msgid "distortion" +#: js/blocks/PitchBlocks.js:190 +#.TRANS: step up one note in current musical scale +msgid "scalar step up" msgstr "" -#: js/ToneBlocks.js:487 -msgid "The Tremolo block adds a wavering effect." +#: js/blocks/PitchBlocks.js:194 +msgid "The Scalar step up block returns the number of semi-tones up to the next note in the current key and mode." msgstr "" -#: js/ToneBlocks.js:495 -#: js/timbre.js:2092 -#.TRANS: a wavering effect in a musical tone -msgid "tremolo" +#: js/blocks/PitchBlocks.js:212 +#.TRANS: the change measured in half-steps between the current pitch and the previous pitch +msgid "change in pitch" msgstr "" -#: js/ToneBlocks.js:500 -#: js/ToneBlocks.js:569 -#: js/ToneBlocks.js:630 -#: js/ToneBlocks.js:689 -#: js/timbre.js:2134 -#: js/timbre.js:2222 -#: js/timbre.js:2317 -#: js/timbre.js:2419 -#.TRANS: rate at which tremolo wavers -msgid "rate" +#: js/blocks/PitchBlocks.js:216 +msgid "The Change in pitch block is the difference (in half steps) between the current pitch being played and the previous pitch played." msgstr "" -#: js/ToneBlocks.js:502 -#: js/ToneBlocks.js:630 -#: js/timbre.js:2137 -#: js/timbre.js:2328 -#.TRANS: amplitude of tremolo waver -msgid "depth" +#: js/blocks/PitchBlocks.js:243 +#.TRANS: the change measured in scale-steps between the current pitch and the previous pitch +msgid "scalar change in pitch" msgstr "" -#: js/ToneBlocks.js:559 -msgid "The Phaser block adds a sweeping sound." +#: js/blocks/PitchBlocks.js:250 +#: js/blocks/PitchBlocks.js:432 +#: js/blocks/PitchBlocks.js:1667 +#: js/turtleactions/DictActions.js:89 +#: js/widgets/temperament.js:610 +#: js/widgets/temperament.js:614 +#: js/widgets/temperament.js:855 +#.TRANS: convert current note to piano key (1-88) +#.TRANS: a mapping of pitch to the 88 piano keys +msgid "pitch number" msgstr "" -#: js/ToneBlocks.js:566 -#: js/timbre.js:2098 -#.TRANS: alter the phase of the sound -msgid "phaser" +#: js/blocks/PitchBlocks.js:256 +msgid "The Pitch number block is the value of the pitch of the note currently being played." msgstr "" -#: js/ToneBlocks.js:569 -#: js/timbre.js:2422 -msgid "octaves" +#: js/blocks/PitchBlocks.js:329 +#: js/blocks/PitchBlocks.js:433 +#.TRANS: the current pitch expressed in Hertz +msgid "pitch in hertz" msgstr "" -#: js/ToneBlocks.js:569 -#: js/timbre.js:2425 -msgid "base frequency" +#: js/blocks/PitchBlocks.js:334 +msgid "The Pitch in Hertz block is the value in Hertz of the pitch of the note currently being played." msgstr "" -#: js/ToneBlocks.js:619 -msgid "The Chorus block adds a chorus effect." +#: js/blocks/PitchBlocks.js:367 +#: js/turtleactions/DictActions.js:87 +msgid "current pitch" msgstr "" -#: js/ToneBlocks.js:627 -#: js/timbre.js:2096 -#.TRANS: musical effect to simulate a choral sound -msgid "chorus" +#: js/blocks/PitchBlocks.js:373 +msgid "The Current Pitch block is used with the Pitch Converter block. In the example above, current pitch, sol 4, is displayed as 392 hertz." msgstr "" -#: js/ToneBlocks.js:630 -msgid "delay" +#: js/blocks/PitchBlocks.js:410 +msgid "This block converts the pitch value of the last note played into different formats such as hertz, letter name, pitch number, et al." msgstr "" -#: js/ToneBlocks.js:678 -msgid "The Vibrato block adds a rapid, slight variation in pitch." +#: js/blocks/PitchBlocks.js:434 +msgid "alphabet" msgstr "" -#: js/ToneBlocks.js:686 -#: js/timbre.js:2094 -#.TRANS: a rapid, slight variation in pitch -msgid "vibrato" +#: js/blocks/PitchBlocks.js:436 +#.TRANS: Translate as "alphabet class" +msgid "letter class" msgstr "" -#: js/ToneBlocks.js:689 -#: js/timbre.js:2221 -msgid "intensity" +#: js/blocks/PitchBlocks.js:437 +msgid "solfege class" msgstr "" -#: js/ToneBlocks.js:733 -#.TRANS: select synthesizer -msgid "set synth" +#: js/blocks/PitchBlocks.js:438 +msgid "staff y" msgstr "" -#: js/ToneBlocks.js:804 -msgid "synth name" +#: js/blocks/PitchBlocks.js:439 +msgid "solfege syllable" msgstr "" -#: js/ToneBlocks.js:842 -msgid "set default instrument" +#: js/blocks/PitchBlocks.js:440 +msgid "pitch class" msgstr "" -#: js/ToneBlocks.js:895 -#: js/ToneBlocks.js:943 -#.TRANS: set the characteristics of a custom instrument -msgid "set instrument" +#: js/blocks/PitchBlocks.js:441 +msgid "scalar class" msgstr "" -#: js/ToneBlocks.js:898 -#: js/ToneBlocks.js:926 -#: js/ToneBlocks.js:932 -msgid "The Set instrument block selects a voice for the synthesizer," +#: js/blocks/PitchBlocks.js:443 +msgid "nth degree" msgstr "" -#: js/ToneBlocks.js:900 -#: js/ToneBlocks.js:934 -msgid "eg guitar piano violin or cello." +#: js/blocks/PitchBlocks.js:444 +msgid "pitch to shade" msgstr "" -#: js/ToneBlocks.js:1015 -msgid "Import a sound file to use as an instrument and set its pitch center." +#: js/blocks/PitchBlocks.js:445 +msgid "pitch to color" msgstr "" -#: js/ToneBlocks.js:1110 -msgid "Upload a sound file to connect with the sample block." +#: js/blocks/PitchBlocks.js:629 +#: js/widgets/musickeyboard.js:735 +#.TRANS: MIDI is a technical standard for electronic music +msgid "MIDI" msgstr "" -#: js/MeterBlocks.js:34 -#.TRANS: musical meter (time signature), e.g., 4:4 -msgid "current meter" +#: js/blocks/PitchBlocks.js:642 +#.TRANS: set an offset associated with the numeric piano keyboard mapping +msgid "set pitch number offset" msgstr "" -#: js/MeterBlocks.js:85 -#.TRANS: number of beats per minute -msgid "beat factor" +#: js/blocks/PitchBlocks.js:645 +msgid "The Set pitch number offset block is used to set the offset for mapping pitch numbers to pitch and octave." msgstr "" -#: js/MeterBlocks.js:161 -msgid "The Beats per minute block returns the current beats per minute." +#: js/blocks/PitchBlocks.js:679 +#.TRANS: convert piano key number (1-88) to pitch +msgid "number to pitch" msgstr "" -#: js/MeterBlocks.js:169 -#: js/status.js:152 -#.TRANS: number of beats played per minute -msgid "beats per minute2" +#: js/blocks/PitchBlocks.js:682 +msgid "The Number to pitch block will convert a pitch number to a pich name." msgstr "" -#: js/MeterBlocks.js:169 -#: js/MeterBlocks.js:1056 -#: js/MeterBlocks.js:1133 -#: js/MeterBlocks.js:1211 -#.TRANS: sets tempo by defining a beat and beats per minute -msgid "beats per minute" +#: js/blocks/PitchBlocks.js:715 +#.TRANS: convert piano key number (1-88) to octave +msgid "number to octave" msgstr "" -#: js/MeterBlocks.js:233 -#.TRANS: count of current musical measure in meter -msgid "measure count" +#: js/blocks/PitchBlocks.js:717 +msgid "The Number to octave block will convert a pitch number to an octave." msgstr "" -#: js/MeterBlocks.js:241 -msgid "The Measure count block returns the current measure." +#: js/blocks/PitchBlocks.js:726 +msgid "y to pitch" msgstr "" -#: js/MeterBlocks.js:290 -#.TRANS: count of current beat in the meter -msgid "beat count" +#: js/blocks/PitchBlocks.js:729 +msgid "Y to pitch block will convert a staff y position to corresponding pitch notation." msgstr "" -#: js/MeterBlocks.js:300 -#: js/MeterBlocks.js:311 -#: js/MeterBlocks.js:565 -#: js/MeterBlocks.js:576 -msgid "The Beat count block is the number of the current beat," +#: js/blocks/PitchBlocks.js:841 +msgid "accidental selector" msgstr "" -#: js/MeterBlocks.js:313 -#: js/MeterBlocks.js:578 -msgid "eg 1, 2, 3, or 4." +#: js/blocks/PitchBlocks.js:844 +msgid "The Accidental selector block is used to choose between double-sharp, sharp, natural, flat, and double-flat." msgstr "" -#: js/MeterBlocks.js:368 -#.TRANS: count the number of notes -msgid "sum note values" +#: js/blocks/PitchBlocks.js:858 +msgid "Pitch can be specified in terms of ni dha pa ma ga re sa." msgstr "" -#: js/MeterBlocks.js:376 -#: js/MeterBlocks.js:440 -msgid "The Note counter block can be used to count the number of contained notes." +#: js/blocks/PitchBlocks.js:872 +msgid "Pitch can be specified in terms of C D E F G A B." msgstr "" -#: js/MeterBlocks.js:432 -#.TRANS: count the number of notes -msgid "note counter" +#: js/blocks/PitchBlocks.js:884 +msgid "solfege" msgstr "" -#: js/MeterBlocks.js:496 -#.TRANS: number of whole notes that have been played -msgid "whole notes played" +#: js/blocks/PitchBlocks.js:887 +msgid "Pitch can be specified in terms of do re mi fa sol la ti." msgstr "" -#: js/MeterBlocks.js:505 -msgid "The Whole notes played block returns the total number of whole notes played." +#: js/blocks/PitchBlocks.js:922 +msgid "The Invert block rotates any contained notes around a target note." msgstr "" -#: js/MeterBlocks.js:555 -#: js/DictActions.js:83 -#.TRANS: number of notes that have been played -msgid "notes played" +#: js/blocks/PitchBlocks.js:929 +#.TRANS: pitch inversion rotates a pitch around another pitch +msgid "invert" msgstr "" -#: js/MeterBlocks.js:653 -msgid "The No clock block decouples the notes from the master clock." +#: js/blocks/PitchBlocks.js:968 +#.TRANS: pitch inversion rotates a pitch around another pitch (odd number) +msgid "invert (odd)" msgstr "" -#: js/MeterBlocks.js:661 -#.TRANS: don't lock notes to master clock -msgid "no clock" +#: js/blocks/PitchBlocks.js:1001 +#.TRANS: pitch inversion rotates a pitch around another pitch (even number) +msgid "invert (even)" msgstr "" -#: js/MeterBlocks.js:700 -msgid "on weak beat do" +#: js/blocks/PitchBlocks.js:1022 +#.TRANS: register is the octave of the current pitch +msgid "register" msgstr "" -#: js/MeterBlocks.js:705 -msgid "The On-weak-beat block lets you specify actions to take on weak (off) beats." +#: js/blocks/PitchBlocks.js:1026 +msgid "The Register block provides an easy way to modify the register (octave) of the notes that follow it." msgstr "" -#: js/MeterBlocks.js:750 -msgid "on strong beat" +#: js/blocks/PitchBlocks.js:1047 +#.TRANS: cents are units used to specify the ratio between pitches. There are 100 cents between successive notes. +msgid "50 cents" msgstr "" -#: js/MeterBlocks.js:758 -msgid "The On-strong-beat block lets you specify actions to take on specified beats." +#: js/blocks/PitchBlocks.js:1102 +msgid "The Semi-tone transposition block will shift the pitches contained inside Note blocks up (or down) by half steps." msgstr "" -#: js/MeterBlocks.js:769 -msgid "beat" +#: js/blocks/PitchBlocks.js:1104 +msgid "In the example shown above, sol is shifted up to sol#." msgstr "" -#: js/MeterBlocks.js:813 -msgid "on every beat do" +#: js/blocks/PitchBlocks.js:1110 +#.TRANS: adjust the amount of shift (up or down) of a pitch +msgid "semi-tone transpose" msgstr "" -#: js/MeterBlocks.js:821 -msgid "The On-every-beat block lets you specify actions to take on every beat." +#: js/blocks/PitchBlocks.js:1143 +msgid "The Transpose by Ratio block will shift the pitches contained inside Note blocks up (or down) by a ratio" msgstr "" -#: js/MeterBlocks.js:874 -msgid "on every note do" +#: js/blocks/PitchBlocks.js:1149 +#.TRANS: adjust the amount of shift (up or down) of a pitch +msgid "transpose by ratio" msgstr "" -#: js/MeterBlocks.js:882 -msgid "The On-every-note block lets you specify actions to take on every note." +#: js/blocks/PitchBlocks.js:1232 +#.TRANS: down sixth means the note is five scale degrees below current note +msgid "down sixth" msgstr "" -#: js/MeterBlocks.js:928 -#: js/MeterBlocks.js:999 -#.TRANS: sets tempo by defining a beat and beats per minute -msgid "master beats per minute" +#: js/blocks/PitchBlocks.js:1251 +#.TRANS: down third means the note is two scale degrees below current note +msgid "down third" msgstr "" -#: js/MeterBlocks.js:952 -#: js/MeterBlocks.js:1078 -#: js/MeterBlocks.js:1135 -msgid "bpm" +#: js/blocks/PitchBlocks.js:1270 +#.TRANS: seventh means the note is the six scale degrees above current note +msgid "seventh" msgstr "" -#: js/MeterBlocks.js:952 -#: js/MeterBlocks.js:1078 -#: js/MeterBlocks.js:1135 -msgid "beat value" +#: js/blocks/PitchBlocks.js:1289 +#.TRANS: sixth means the note is the five scale degrees above current note +msgid "sixth" msgstr "" -#: js/MeterBlocks.js:1024 -#: js/MeterBlocks.js:1167 -#: js/MeterBlocks.js:1241 -msgid "Beats per minute must be > 30." +#: js/blocks/PitchBlocks.js:1308 +#.TRANS: fifth means the note is the four scale degrees above current note +msgid "fifth" msgstr "" -#: js/MeterBlocks.js:1027 -#: js/MeterBlocks.js:1170 -#: js/MeterBlocks.js:1244 -msgid "Maximum beats per minute is 1000." +#: js/blocks/PitchBlocks.js:1328 +#.TRANS: fourth means the note is three scale degrees above current note +msgid "fourth" msgstr "" -#: js/MeterBlocks.js:1068 -msgid "The Beats per minute block sets the number of 1/4 notes per minute." +#: js/blocks/PitchBlocks.js:1347 +#.TRANS: third means the note is two scale degrees above current note +msgid "third" msgstr "" -#: js/MeterBlocks.js:1279 -#.TRANS: anacrusis -msgid "pickup" +#: js/blocks/PitchBlocks.js:1366 +#.TRANS: second means the note is one scale degree above current note +msgid "second" msgstr "" -#: js/MeterBlocks.js:1367 -msgid "number of beats" +#: js/blocks/PitchBlocks.js:1407 +msgid "The Scalar transposition block will shift the pitches contained inside Note blocks up (or down) the scale." msgstr "" -#: js/DictBlocks.js:77 -msgid "show dictionary" +#: js/blocks/PitchBlocks.js:1409 +msgid "In the example shown above, sol is shifted up to la." msgstr "" -#: js/DictBlocks.js:129 -msgid "The Dictionary block returns a dictionary." +#: js/blocks/PitchBlocks.js:1416 +#.TRANS: adjust the amount of shift (up or down) of a pitch by musical scale (scalar) steps +msgid "scalar transpose" msgstr "" -#: js/DictBlocks.js:197 -#: js/DictBlocks.js:339 -msgid "The Get-dict block returns a value in the dictionary for a specified key." +#: js/blocks/PitchBlocks.js:1451 +msgid "The Accidental block is used to create sharps and flats" msgstr "" -#: js/DictBlocks.js:212 -#: js/DictBlocks.js:354 -#.TRANS: retrieve a value from the dictionary with a given key -msgid "get value" +#: js/blocks/PitchBlocks.js:1458 +#.TRANS: An accidental is a modification to a pitch, e.g., sharp or flat. +msgid "accidental override" msgstr "" -#: js/DictBlocks.js:215 -#: js/DictBlocks.js:216 -#: js/DictBlocks.js:289 -#: js/DictBlocks.js:290 -#: js/DictBlocks.js:357 -#: js/DictBlocks.js:430 -#: js/DictBlocks.js:431 -msgid "key2" +#: js/blocks/PitchBlocks.js:1581 +msgid "The Hertz block (in combination with a Number block) will play a sound at the specified frequency." msgstr "" -#: js/DictBlocks.js:271 -#: js/DictBlocks.js:411 -msgid "The Set-dict block sets a value in the dictionary for a specified key." +#: js/blocks/PitchBlocks.js:1671 +msgid "The Pitch Number block will play a pitch associated by its number, e.g. 0 for C and 7 for G." msgstr "" -#: js/DictBlocks.js:286 -#: js/DictBlocks.js:427 -#.TRANS: set a value in the dictionary for a given key -msgid "set value" +#: js/blocks/PitchBlocks.js:1703 +#: js/blocks/PitchBlocks.js:1745 +#.TRANS: a numeric mapping of the notes in an octave based on the musical mode +#.TRANS: a numeric mapping of the notes in an octave based on the musical mode +msgid "nth modal pitch" msgstr "" -#: js/ExtrasBlocks.js:33 -msgid "fraction" +#: js/blocks/PitchBlocks.js:1706 +msgid "n^th Modal Pitch takes the pattern of pitches in semitones for a mode and makes each point a degree of the mode," msgstr "" -#: js/ExtrasBlocks.js:36 -msgid "Convert a float to a fraction" +#: js/blocks/PitchBlocks.js:1708 +msgid "starting from 1 and regardless of tonal framework (i.e. not always 8 notes in the octave)" msgstr "" -#: js/ExtrasBlocks.js:93 -msgid "save as ABC" +#: js/blocks/PitchBlocks.js:1749 +msgid "N^th Modal Pitch takes a number as an input as the n^th degree for the given mode. 0 is the first position, 1 is the second, -1 is the note before the first etc." msgstr "" -#: js/ExtrasBlocks.js:96 -#: js/ExtrasBlocks.js:132 -#: js/ExtrasBlocks.js:168 -msgid "title" -msgstr "titolo" - -#: js/ExtrasBlocks.js:129 -msgid "save as Lilypond" +#: js/blocks/PitchBlocks.js:1751 +msgid "The pitches change according to the mode specified without any need for respellings." msgstr "" -#: js/ExtrasBlocks.js:165 -msgid "save as SVG" +#: js/blocks/PitchBlocks.js:1790 +msgid "Scale Degree is a common convention in music. Scale Degree offers seven possible positions in the scale (1-7) and can be modified via accidentals." msgstr "" -#: js/ExtrasBlocks.js:216 -msgid "no background" +#: js/blocks/PitchBlocks.js:1792 +msgid "Scale Degree 1 is always the first pitch in a given scale, regardless of octave." msgstr "" -#: js/ExtrasBlocks.js:219 -msgid "The No background block eliminates the background from the saved SVG output." +#: js/blocks/PitchBlocks.js:1814 +#.TRANS: step some number of notes in current musical scale +msgid "scalar step" msgstr "" -#: js/ExtrasBlocks.js:247 -msgid "show blocks" -msgstr "mostrare blocchi" - -#: js/ExtrasBlocks.js:249 -msgid "The Show blocks block shows the blocks." +#: js/blocks/PitchBlocks.js:1819 +msgid "The Scalar Step block (in combination with a Number block) will play the next pitch in a scale," msgstr "" -#: js/ExtrasBlocks.js:274 -msgid "hide blocks" -msgstr "nascondi blocchi" +#: js/blocks/PitchBlocks.js:1821 +msgid "eg if the last note played was sol, Scalar Step 1 will play la." +msgstr "" -#: js/ExtrasBlocks.js:276 -msgid "The Hide blocks block hides the blocks." +#: js/blocks/PitchBlocks.js:1857 +msgid "The Pitch block specifies the pitch name and octave of a note that together determine the frequency of the note." msgstr "" -#: js/ExtrasBlocks.js:305 -#: js/ExtrasBlocks.js:335 -msgid "The Space block is used to add space between blocks." +#: js/blocks/ProgramBlocks.js:33 +msgid "The Load-heap-from-app block loads the heap from a web page." msgstr "" -#: js/ExtrasBlocks.js:373 -msgid "wait" -msgstr "aspettare" +#: js/blocks/ProgramBlocks.js:44 +#.TRANS: load the heap contents from a URL +msgid "load heap from App" +msgstr "" -#: js/ExtrasBlocks.js:376 -msgid "The Wait block pauses the program for a specified number of seconds." +#: js/blocks/ProgramBlocks.js:95 +msgid "Error parsing JSON data:" msgstr "" -#: js/ExtrasBlocks.js:430 -#: plugins/facebook.rtp:30 -msgid "comment" -msgstr "comentare" +#: js/blocks/ProgramBlocks.js:100 +msgid "404: Page not found" +msgstr "404: Pagina non trovata" -#: js/ExtrasBlocks.js:466 -msgid "print" -msgstr "stampare" +#: js/blocks/ProgramBlocks.js:133 +msgid "The Save-heap-to-app block saves the heap to a web page." +msgstr "" -#: js/ExtrasBlocks.js:473 -msgid "The Print block displays text at the top of the screen." +#: js/blocks/ProgramBlocks.js:144 +#.TRANS: save the heap contents to a URL +msgid "save heap to App" msgstr "" -#: js/ExtrasBlocks.js:579 -msgid "display grid" +#: js/blocks/ProgramBlocks.js:189 +msgid "Cannot find a valid heap for" msgstr "" -#: js/ExtrasBlocks.js:584 -msgid "The Display Grid Block changes the grid type" +#: js/blocks/ProgramBlocks.js:206 +msgid "The Load-heap block loads the heap from a file." msgstr "" -#: js/ExtrasBlocks.js:686 -#: js/ExtrasBlocks.js:705 -#: js/ExtrasBlocks.js:728 -#: js/ExtrasBlocks.js:751 -#: js/ExtrasBlocks.js:769 -#: js/ExtrasBlocks.js:788 -#: js/ExtrasBlocks.js:807 -#: js/ExtrasBlocks.js:826 -msgid "unknown" -msgstr "sconosciuto" +#: js/blocks/ProgramBlocks.js:217 +#.TRANS: load the heap from a file +msgid "load heap" +msgstr "aprire pila" -#: js/SensorsBlocks.js:36 -msgid "The Input block prompts for keyboard input." +#: js/blocks/ProgramBlocks.js:270 +msgid "The file you selected does not contain a valid heap." msgstr "" -#: js/SensorsBlocks.js:46 -msgid "input" +#: js/blocks/ProgramBlocks.js:275 +msgid "The loadHeap block needs a loadFile block." msgstr "" -#: js/SensorsBlocks.js:64 -msgid "Input a value" +#: js/blocks/ProgramBlocks.js:291 +msgid "The Set-heap block loads the heap." msgstr "" -#: js/SensorsBlocks.js:126 -msgid "input value" +#: js/blocks/ProgramBlocks.js:340 +msgid "The block you selected does not contain a valid heap." msgstr "" -#: js/SensorsBlocks.js:131 -msgid "The Input-value block stores the input." +#: js/blocks/ProgramBlocks.js:343 +msgid "The Set heap block needs a heap." msgstr "" -#: js/SensorsBlocks.js:238 -msgid "loudness" -msgstr "rumorosità" - -#: js/SensorsBlocks.js:245 -msgid "The Loudness block returns the volume detected by the microphone." +#: js/blocks/ProgramBlocks.js:360 +msgid "The Load-dictionary block loads a dictionary from a file." msgstr "" -#: js/SensorsBlocks.js:300 -msgid "click" +#: js/blocks/ProgramBlocks.js:372 +#.TRANS: load a dictionary from a file +msgid "load dictionary" +msgstr "carica dizionario" + +#: js/blocks/ProgramBlocks.js:390 +#: js/blocks/ProgramBlocks.js:658 +#: js/blocks/ToneBlocks.js:1025 +msgid "file" +msgstr "file" + +#: js/blocks/ProgramBlocks.js:444 +msgid "The file you selected does not contain a valid dictionary." msgstr "" -#: js/SensorsBlocks.js:306 -msgid "The Click block triggers an event if a mouse has been clicked." +#: js/blocks/ProgramBlocks.js:449 +msgid "The load dictionary block needs a load file block." msgstr "" -#: js/SensorsBlocks.js:313 -msgid "The Click block triggers an event if a turtle has been clicked." +#: js/blocks/ProgramBlocks.js:466 +msgid "The Set-dictionary block loads a dictionary." msgstr "" -#: js/SensorsBlocks.js:342 -msgid "cursor over" +#: js/blocks/ProgramBlocks.js:477 +#.TRANS: load a dictionary from a JSON +msgid "set dictionary" +msgstr "imposta dizionario" + +#: js/blocks/ProgramBlocks.js:546 +msgid "The block you selected does not contain a valid dictionary." msgstr "" -#: js/SensorsBlocks.js:387 -msgid "cursor out" +#: js/blocks/ProgramBlocks.js:550 +msgid "The set dictionary block needs a dictionary." msgstr "" -#: js/SensorsBlocks.js:433 -msgid "cursor button down" +#: js/blocks/ProgramBlocks.js:567 +msgid "The Save-heap block saves the heap to a file." msgstr "" -#: js/SensorsBlocks.js:477 -msgid "cursor button up" +#: js/blocks/ProgramBlocks.js:578 +#.TRANS: save the heap to a file +msgid "save heap" +msgstr "Salvare pila" + +#: js/blocks/ProgramBlocks.js:629 +msgid "The Save-dictionary block saves a dictionary to a file." msgstr "" -#: js/SensorsBlocks.js:638 -msgid "The Get red block returns the red component of the pixel under the mouse." +#: js/blocks/ProgramBlocks.js:640 +#.TRANS: save a dictionary to a file +msgid "save dictionary" msgstr "" -#: js/SensorsBlocks.js:644 -msgid "The Get red block returns the red component of the pixel under the turtle." +#: js/blocks/ProgramBlocks.js:720 +msgid "The Open palette block opens a palette." msgstr "" -#: js/SensorsBlocks.js:685 -#: plugins/rodi.rtp:216 -msgid "pixel color" -msgstr "colore dal pixel" +#: js/blocks/ProgramBlocks.js:727 +msgid "open palette" +msgstr "apri tavolozza" -#: js/SensorsBlocks.js:690 -msgid "The Get pixel block returns the color of the pixel under the mouse." +#: js/blocks/ProgramBlocks.js:785 +msgid "The Delete block block removes a block." msgstr "" -#: js/SensorsBlocks.js:696 -msgid "The Get pixel block returns the color of the pixel under the turtle." +#: js/blocks/ProgramBlocks.js:797 +#.TRANS: Move this block to the trash. +msgid "delete block" msgstr "" -#: js/SensorsBlocks.js:758 -msgid "time" -msgstr "tempo" +#: js/blocks/ProgramBlocks.js:861 +msgid "The Move block block moves a block." +msgstr "" -#: js/SensorsBlocks.js:804 -msgid "cursor y" +#: js/blocks/ProgramBlocks.js:869 +#.TRANS: Move the position of a block on the screen. +msgid "move block" msgstr "" -#: js/SensorsBlocks.js:809 -msgid "The Cursor Y block returns the vertical position of the mouse." +#: js/blocks/ProgramBlocks.js:881 +#: js/blocks/ProgramBlocks.js:1048 +msgid "block number" msgstr "" -#: js/SensorsBlocks.js:845 -msgid "cursor x" +#: js/blocks/ProgramBlocks.js:935 +#.TRANS: Run program beginning at this block. +msgid "run block" msgstr "" -#: js/SensorsBlocks.js:850 -msgid "The Cursor X block returns the horizontal position of the mouse." +#: js/blocks/ProgramBlocks.js:1025 +msgid "The Dock block block connections two blocks." msgstr "" -#: js/SensorsBlocks.js:886 -msgid "mouse button" -msgstr "pulsante del mouse" +#: js/blocks/ProgramBlocks.js:1036 +#.TRANS: We can connect a block to another block. +msgid "connect blocks" +msgstr "" -#: js/SensorsBlocks.js:888 -msgid "The Mouse-button block returns True if the mouse button is pressed." +#: js/blocks/ProgramBlocks.js:1048 +msgid "target block" msgstr "" -#: js/SensorsBlocks.js:934 -msgid "to ASCII" +#: js/blocks/ProgramBlocks.js:1048 +msgid "connection number" msgstr "" -#: js/SensorsBlocks.js:938 -msgid "The To ASCII block converts numbers to letters." +#: js/blocks/ProgramBlocks.js:1140 +msgid "The Make block block creates a new block." msgstr "" -#: js/SensorsBlocks.js:1005 -msgid "The Keyboard block returns computer keyboard input." +#: js/blocks/ProgramBlocks.js:1152 +#.TRANS: Create a new block +msgid "make block" msgstr "" -#: js/IntervalsActions.js:216 -msgid "Adding missing pitch number 0." +#: js/blocks/ProgramBlocks.js:1285 +msgid "Cannot find block" msgstr "" -#: js/IntervalsActions.js:224 -msgid "Ignoring pitch numbers less than zero or greater than eleven." +#: js/blocks/ProgramBlocks.js:1304 +#: js/blocks/ProgramBlocks.js:1313 +msgid "Warning: block argument type mismatch" msgstr "" -#: js/IntervalsActions.js:230 -msgid "Ignoring duplicate pitch numbers." +#: js/blocks/ProgramBlocks.js:1347 +msgid "The Open project block is used to open a project from a web page." msgstr "" -#: js/PitchActions.js:88 -msgid "The Scalar Step Block must be used inside of a Note Block." +#: js/blocks/ProgramBlocks.js:1357 +msgid "open project" msgstr "" -#: js/PitchActions.js:107 -msgid "The Scalar Step Block must be preceded by a Pitch Block." +#: js/blocks/ProgramBlocks.js:1410 +msgid "Please enter a valid URL." msgstr "" -#: js/DrumActions.js:231 -msgid "Noise Block: Did you mean to use a Note block?" +#: js/blocks/ToneBlocks.js:34 +msgid "oscillator" msgstr "" -#: js/MeterActions.js:101 -#: js/MeterActions.js:139 -msgid "beats per minute must be greater than" +#: js/blocks/ToneBlocks.js:42 +#: js/blocks/WidgetBlocks.js:179 +#: js/widgets/timbre.js:1558 +#: js/widgets/timbre.js:1808 +#.TRANS: there are different types (sine, triangle, square...) of oscillators. +#.TRANS: type of filter, e.g., lowpass, highpass, etc. +msgid "type" +msgstr "tipo" + +#: js/blocks/ToneBlocks.js:44 +#: js/widgets/timbre.js:1562 +#.TRANS: Partials refers to the number of sine waves combined into the sound. +msgid "partials" msgstr "" -#: js/MeterActions.js:111 -#: js/MeterActions.js:149 -msgid "maximum" +#: js/blocks/ToneBlocks.js:76 +msgid "You are adding multiple oscillator blocks." msgstr "" -#: js/MeterActions.js:117 -#: js/MeterActions.js:155 -msgid "beats per minute is" +#: js/blocks/ToneBlocks.js:144 +#: js/widgets/timbre.js:1225 +#.TRANS: a duo synthesizer combines a synth with a sequencer +msgid "duo synth" msgstr "" -#: js/ToneActions.js:134 -msgid "Vibrato intensity must be between 1 and 100." +#: js/blocks/ToneBlocks.js:149 +msgid "The Duo synth block is a duo-frequency modulator used to define a timbre." msgstr "" -#: js/ToneActions.js:139 -msgid "Vibrato rate must be greater than 0." +#: js/blocks/ToneBlocks.js:157 +#: js/widgets/timbre.js:1476 +msgid "vibrato rate" msgstr "" -#: js/ToneActions.js:192 -#: js/ToneActions.js:265 -#.TRANS: Depth is the intesity of the tremolo or chorus effect. -msgid "Depth is out of range." +#: js/blocks/ToneBlocks.js:157 +msgid "vibrato intensity" msgstr "" -#: js/ToneActions.js:301 -msgid "Distortion must be from 0 to 100." +#: js/blocks/ToneBlocks.js:185 +#: js/widgets/timbre.js:1221 +#.TRANS: AM (amplitude modulation) synthesizer +msgid "AM synth" msgstr "" -#: js/ToneActions.js:332 -#.TRANS: partials components in a harmonic series -msgid "Partial must be greater than or equal to 0." +#: js/blocks/ToneBlocks.js:189 +msgid "The AM synth block is an amplitude modulator used to define a timbre." msgstr "" -#: js/ToneActions.js:378 -#: js/ToneActions.js:417 -#: js/ToneActions.js:456 -#: js/timbre.js:782 -msgid "Unable to use synth due to existing oscillator" +#: js/blocks/ToneBlocks.js:224 +#: js/widgets/timbre.js:1223 +#.TRANS: FM (frequency modulation) synthesizer +msgid "FM synth" msgstr "" -#: js/ToneActions.js:388 -#: js/ToneActions.js:427 -msgid "The input cannot be negative." +#: js/blocks/ToneBlocks.js:228 +msgid "The FM synth block is a frequency modulator used to define a timbre." msgstr "" -#: js/DictActions.js:75 -#: js/DictActions.js:153 -#: js/DictActions.js:188 -msgid "font" +#: js/blocks/ToneBlocks.js:262 +msgid "partial" msgstr "" -#: js/musicutils.js:363 -#: js/musicutils.js:471 -#: js/pitchdrummatrix.js:151 -#: js/musickeyboard.js:2563 -msgid "rest" +#: js/blocks/ToneBlocks.js:265 +msgid "The Partial block is used to specify a weight for a specific partial harmonic." msgstr "" -#: js/musicutils.js:565 -#.TRANS: ordinal number. Please keep exactly one space between each number. -msgid "1st 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th" +#: js/blocks/ToneBlocks.js:284 +#.TRANS: partials are weighted components in a harmonic series +msgid "Partial weight must be between 0 and 1." msgstr "" -#: js/musicutils.js:629 -#: js/musicutils.js:812 -#: js/musicutils.js:911 -#.TRANS: augmented is a music term related to intervals -msgid "augmented" +#: js/blocks/ToneBlocks.js:297 +#.TRANS: partials are weighted components in a harmonic series +msgid "Partial block should be used inside of a Weighted-partials block." msgstr "" -#: js/musicutils.js:631 -#: js/musicutils.js:813 -#: js/musicutils.js:910 -#.TRANS: diminished is a music term related to intervals and mode -msgid "diminished" +#: js/blocks/ToneBlocks.js:325 +#.TRANS: partials are weighted components in a harmonic series +msgid "weighted partials" msgstr "" -#: js/musicutils.js:639 -#.TRANS: twelve semi-tone scale for music -msgid "chromatic" +#: js/blocks/ToneBlocks.js:383 +msgid "The Harmonic block will add harmonics to the contained notes." msgstr "" -#: js/musicutils.js:640 -msgid "algerian" +#: js/blocks/ToneBlocks.js:390 +#.TRANS: A harmonic is an overtone. +msgid "harmonic" msgstr "" -#: js/musicutils.js:641 -msgid "spanish" +#: js/blocks/ToneBlocks.js:431 +msgid "The Distortion block adds distortion to the pitch." msgstr "" -#: js/musicutils.js:643 -#.TRANS: modal scale in music -msgid "octatonic" +#: js/blocks/ToneBlocks.js:438 +#: js/widgets/timbre.js:2100 +#.TRANS: distortion is an alteration in the sound +msgid "distortion" msgstr "" -#: js/musicutils.js:645 -#.TRANS: harmonic major scale in music -msgid "harmonic major" +#: js/blocks/ToneBlocks.js:487 +msgid "The Tremolo block adds a wavering effect." msgstr "" -#: js/musicutils.js:647 -#.TRANS: natural minor scales in music -msgid "natural minor" +#: js/blocks/ToneBlocks.js:495 +#: js/widgets/timbre.js:2092 +#.TRANS: a wavering effect in a musical tone +msgid "tremolo" msgstr "" -#: js/musicutils.js:649 -#.TRANS: harmonic minor scale in music -msgid "harmonic minor" +#: js/blocks/ToneBlocks.js:500 +#: js/blocks/ToneBlocks.js:569 +#: js/blocks/ToneBlocks.js:630 +#: js/blocks/ToneBlocks.js:689 +#: js/widgets/timbre.js:2134 +#: js/widgets/timbre.js:2222 +#: js/widgets/timbre.js:2317 +#: js/widgets/timbre.js:2419 +#.TRANS: rate at which tremolo wavers +msgid "rate" msgstr "" -#: js/musicutils.js:651 -#.TRANS: melodic minor scale in music -msgid "melodic minor" +#: js/blocks/ToneBlocks.js:502 +#: js/blocks/ToneBlocks.js:630 +#: js/widgets/timbre.js:2137 +#: js/widgets/timbre.js:2328 +#.TRANS: amplitude of tremolo waver +msgid "depth" msgstr "" -#: js/musicutils.js:655 -#.TRANS: modal scale for music -msgid "dorian" +#: js/blocks/ToneBlocks.js:559 +msgid "The Phaser block adds a sweeping sound." msgstr "" -#: js/musicutils.js:657 -#.TRANS: modal scale for music -msgid "phrygian" +#: js/blocks/ToneBlocks.js:566 +#: js/widgets/timbre.js:2098 +#.TRANS: alter the phase of the sound +msgid "phaser" msgstr "" -#: js/musicutils.js:659 -#.TRANS: modal scale for music -msgid "lydian" +#: js/blocks/ToneBlocks.js:569 +#: js/turtleactions/IntervalsActions.js:114 +#: js/widgets/timbre.js:2422 +msgid "octaves" msgstr "" -#: js/musicutils.js:661 -#.TRANS: modal scale for music -msgid "mixolydian" +#: js/blocks/ToneBlocks.js:569 +#: js/widgets/timbre.js:2425 +msgid "base frequency" msgstr "" -#: js/musicutils.js:665 -#.TRANS: modal scale for music -msgid "locrian" +#: js/blocks/ToneBlocks.js:619 +msgid "The Chorus block adds a chorus effect." msgstr "" -#: js/musicutils.js:667 -#.TRANS: minor jazz scale for music -msgid "jazz minor" +#: js/blocks/ToneBlocks.js:627 +#: js/widgets/timbre.js:2096 +#.TRANS: musical effect to simulate a choral sound +msgid "chorus" msgstr "" -#: js/musicutils.js:669 -#.TRANS: bebop scale for music -msgid "bebop" +#: js/blocks/ToneBlocks.js:630 +msgid "delay" msgstr "" -#: js/musicutils.js:670 -msgid "arabic" +#: js/blocks/ToneBlocks.js:678 +msgid "The Vibrato block adds a rapid, slight variation in pitch." msgstr "" -#: js/musicutils.js:671 -msgid "byzantine" +#: js/blocks/ToneBlocks.js:686 +#: js/widgets/timbre.js:2094 +#.TRANS: a rapid, slight variation in pitch +msgid "vibrato" msgstr "" -#: js/musicutils.js:673 -#.TRANS: musical scale for music by Verdi -msgid "enigmatic" +#: js/blocks/ToneBlocks.js:689 +#: js/widgets/timbre.js:2221 +msgid "intensity" msgstr "" -#: js/musicutils.js:674 -msgid "ethiopian" +#: js/blocks/ToneBlocks.js:733 +#.TRANS: select synthesizer +msgid "set synth" msgstr "" -#: js/musicutils.js:676 -#.TRANS: Ethiopic scale for music -msgid "geez" +#: js/blocks/ToneBlocks.js:804 +msgid "synth name" msgstr "" -#: js/musicutils.js:677 -msgid "hindu" +#: js/blocks/ToneBlocks.js:842 +msgid "set default instrument" msgstr "" -#: js/musicutils.js:678 -msgid "hungarian" +#: js/blocks/ToneBlocks.js:895 +#: js/blocks/ToneBlocks.js:943 +#.TRANS: set the characteristics of a custom instrument +msgid "set instrument" msgstr "" -#: js/musicutils.js:680 -#.TRANS: minor Romanian scale for music -msgid "romanian minor" +#: js/blocks/ToneBlocks.js:898 +#: js/blocks/ToneBlocks.js:926 +#: js/blocks/ToneBlocks.js:932 +msgid "The Set instrument block selects a voice for the synthesizer," msgstr "" -#: js/musicutils.js:681 -msgid "spanish gypsy" +#: js/blocks/ToneBlocks.js:900 +#: js/blocks/ToneBlocks.js:934 +msgid "eg guitar piano violin or cello." msgstr "" -#: js/musicutils.js:683 -#.TRANS: musical scale for Mid-Eastern music -msgid "maqam" +#: js/blocks/ToneBlocks.js:1015 +msgid "Import a sound file to use as an instrument and set its pitch center." msgstr "" -#: js/musicutils.js:685 -#.TRANS: minor blues scale for music -msgid "minor blues" +#: js/blocks/ToneBlocks.js:1110 +msgid "Upload a sound file to connect with the sample block." msgstr "" -#: js/musicutils.js:687 -#.TRANS: major blues scale for music -msgid "major blues" +#: js/blocks/VolumeBlocks.js:35 +msgid "synth volume" msgstr "" -#: js/musicutils.js:688 -msgid "whole tone" +#: js/blocks/VolumeBlocks.js:39 +msgid "The Synth volume block returns the current volume of the current synthesizer." msgstr "" -#: js/musicutils.js:690 -#.TRANS: pentatonic is a general term that means "five note scale". This scale is typically known as "minor pentatonic" -msgid "minor pentatonic" +#: js/blocks/VolumeBlocks.js:105 +msgid "master volume" msgstr "" -#: js/musicutils.js:692 -#.TRANS: pentatonic is a general term that means "five note scale". This scale is typically known as "major pentatonic" -msgid "major pentatonic" +#: js/blocks/VolumeBlocks.js:109 +msgid "The Master volume block returns the master volume." msgstr "" -#: js/musicutils.js:693 -msgid "chinese" +#: js/blocks/VolumeBlocks.js:355 +#: js/blocks/VolumeBlocks.js:524 +msgid "set synth volume" msgstr "" -#: js/musicutils.js:694 -msgid "egyptian" +#: js/blocks/VolumeBlocks.js:362 +#: js/blocks/VolumeBlocks.js:545 +msgid "synth" msgstr "" -#: js/musicutils.js:696 -#.TRANS: https://en.wikipedia.org/wiki/Hirajoshi_scale NOTE: There are three different versions of this scale -msgid "hirajoshi" +#: js/blocks/VolumeBlocks.js:403 +#: js/blocks/VolumeBlocks.js:577 +#: js/blocks/VolumeBlocks.js:740 +#: js/turtleactions/VolumeActions.js:173 +msgid "Setting volume to 0." msgstr "" -#: js/musicutils.js:697 -msgid "Japan" +#: js/blocks/VolumeBlocks.js:440 +msgid "Synth not found" msgstr "" -#: js/musicutils.js:699 -#.TRANS: https://en.wikipedia.org/wiki/In_scale and https://en.wikipedia.org/wiki/Sakura_Sakura -msgid "in" +#: js/blocks/VolumeBlocks.js:494 +msgid "set drum volume" msgstr "" -#: js/musicutils.js:701 -#.TRANS: https://en.wikipedia.org/wiki/Miny%C5%8D_scale -msgid "minyo" +#: js/blocks/VolumeBlocks.js:530 +msgid "The Set synth volume block will change the volume of a particular synth," msgstr "" -#: js/musicutils.js:703 -#.TRANS: Italian mathematician -msgid "fibonacci" +#: js/blocks/VolumeBlocks.js:532 +msgid "eg guitar violin snare drum etc." msgstr "" -#: js/musicutils.js:708 -#: js/musicutils.js:1106 -#.TRANS: lowpass filter -msgid "lowpass" +#: js/blocks/VolumeBlocks.js:534 +msgid "The default volume is 50." msgstr "" -#: js/musicutils.js:710 -#: js/musicutils.js:1107 -#.TRANS: bandpass filter -msgid "bandpass" +#: js/blocks/VolumeBlocks.js:536 +msgid "The range is 0 for silence to 100 for full volume." msgstr "" -#: js/musicutils.js:712 -#: js/musicutils.js:1108 -#.TRANS: high-shelf filter -msgid "highshelf" +#: js/blocks/VolumeBlocks.js:597 +msgid "set panning" msgstr "" -#: js/musicutils.js:714 -#: js/musicutils.js:1109 -#.TRANS: low-shelf filter -msgid "lowshelf" +#: js/blocks/VolumeBlocks.js:603 +msgid "The Set Panning block sets the panning for all synthesizers." msgstr "" -#: js/musicutils.js:716 -#: js/musicutils.js:1110 -#.TRANS: notch-shelf filter -msgid "notch" +#: js/blocks/VolumeBlocks.js:625 +msgid "Warning: Sound is coming out from only the left or right side." msgstr "" -#: js/musicutils.js:718 -#: js/musicutils.js:1111 -#.TRANS: all-pass filter -msgid "allpass" +#: js/blocks/VolumeBlocks.js:647 +#: js/blocks/VolumeBlocks.js:695 +msgid "set master volume" msgstr "" -#: js/musicutils.js:720 -#: js/musicutils.js:1112 -#.TRANS: peaking filter -msgid "peaking" +#: js/blocks/VolumeBlocks.js:653 +msgid "The Set master volume block sets the volume for all synthesizers." msgstr "" -#: js/musicutils.js:731 -#: js/synthutils.js:58 -#.TRANS: musical instrument -msgid "violin" +#: js/blocks/VolumeBlocks.js:784 +msgid "The Set relative volume block changes the volume of the contained notes." msgstr "" -#: js/musicutils.js:732 -#: js/synthutils.js:60 -#.TRANS: viola musical instrument -msgid "viola" +#: js/blocks/VolumeBlocks.js:791 +msgid "set relative volume" msgstr "" -#: js/musicutils.js:733 -#: js/synthutils.js:98 -#.TRANS: xylophone musical instrument -msgid "xylophone" +#: js/blocks/VolumeBlocks.js:857 +msgid "decrescendo" msgstr "" -#: js/musicutils.js:734 -#: js/synthutils.js:120 -#.TRANS: vibraphone musical instrument -msgid "vibraphone" +#: js/blocks/VolumeBlocks.js:921 +msgid "crescendo" msgstr "" -#: js/musicutils.js:735 -#: js/synthutils.js:62 -#.TRANS: musical instrument -msgid "cello" +#: js/blocks/WidgetBlocks.js:81 +#.TRANS: sound envelope (ADSR) +msgid "envelope" msgstr "" -#: js/musicutils.js:737 -#: js/synthutils.js:66 -#.TRANS: viola musical instrument -msgid "double bass" +#: js/blocks/WidgetBlocks.js:89 +#.TRANS: Attack time is the time taken for initial run-up of level from nil to peak, beginning when the key is first pressed. +msgid "attack" msgstr "" -#: js/musicutils.js:738 -#: js/synthutils.js:68 -#: js/rhythmruler.js:2119 -#.TRANS: musical instrument -msgid "guitar" +#: js/blocks/WidgetBlocks.js:91 +#.TRANS: Decay time is the time taken for the subsequent run down from the attack level to the designated sustain level. +msgid "decay" msgstr "" -#: js/musicutils.js:739 -#: js/synthutils.js:70 -#.TRANS: musical instrument -msgid "acoustic guitar" +#: js/blocks/WidgetBlocks.js:93 +#.TRANS: Sustain level is the level during the main sequence of the sound's duration, until the key is released. +msgid "sustain" msgstr "" -#: js/musicutils.js:740 -#: js/synthutils.js:72 -#.TRANS: musical instrument -msgid "flute" +#: js/blocks/WidgetBlocks.js:95 +#.TRANS: Release time is the time taken for the level to decay from the sustain level to zero after the key is released. +msgid "release" msgstr "" -#: js/musicutils.js:741 -#: js/synthutils.js:74 -#.TRANS: musical instrument -msgid "clarinet" +#: js/blocks/WidgetBlocks.js:113 +msgid "Attack value should be from 0 to 100." msgstr "" -#: js/musicutils.js:742 -#: js/synthutils.js:76 -#.TRANS: musical instrument -msgid "saxophone" +#: js/blocks/WidgetBlocks.js:116 +msgid "Decay value should be from 0 to 100." msgstr "" -#: js/musicutils.js:743 -#: js/synthutils.js:78 -#.TRANS: musical instrument -msgid "tuba" +#: js/blocks/WidgetBlocks.js:119 +msgid "Sustain value should be from 0 to 100." msgstr "" -#: js/musicutils.js:744 -#: js/synthutils.js:80 -#.TRANS: musical instrument -msgid "trumpet" +#: js/blocks/WidgetBlocks.js:122 +msgid "Release value should be from 0-100." msgstr "" -#: js/musicutils.js:745 -#: js/synthutils.js:82 -#.TRANS: musical instrument -msgid "oboe" +#: js/blocks/WidgetBlocks.js:140 +msgid "You are adding multiple envelope blocks." msgstr "" -#: js/musicutils.js:746 -#: js/synthutils.js:84 -#.TRANS: musical instrument -msgid "trombone" +#: js/blocks/WidgetBlocks.js:171 +#.TRANS: a filter removes some unwanted components from a signal +msgid "filter" +msgstr "filter" + +#: js/blocks/WidgetBlocks.js:181 +#: js/widgets/timbre.js:1818 +#.TRANS: rolloff is the steepness of a change in frequency. +msgid "rolloff" msgstr "" -#: js/musicutils.js:747 -#: js/synthutils.js:100 -#.TRANS: polytone synthesizer -msgid "electronic synth" +#: js/blocks/WidgetBlocks.js:213 +#.TRANS: rolloff is the steepness of a change in frequency. +msgid "Rolloff value should be either -12, -24, -48, or -96 decibels/octave." msgstr "" -#: js/musicutils.js:748 -#: js/synthutils.js:102 -#.TRANS: simple monotone synthesizer -msgid "simple 1" +#: js/blocks/WidgetBlocks.js:252 +msgid "The Temperament tool is used to define custom tuning." msgstr "" -#: js/musicutils.js:749 -msgid "simple 2" +#: js/blocks/WidgetBlocks.js:332 +#: js/blocks/WidgetBlocks.js:1573 +#: js/widgets/sampler.js:547 +msgid "Upload a sample and adjust its pitch center." msgstr "" -#: js/musicutils.js:750 -msgid "simple 3" +#: js/blocks/WidgetBlocks.js:339 +#.TRANS: the speed at music is should be played. +msgid "sampler" +msgstr "campionatore" + +#: js/blocks/WidgetBlocks.js:517 +msgid "The Meter block opens a tool to select strong beats for the meter." msgstr "" -#: js/musicutils.js:751 -msgid "simple 4" +#: js/blocks/WidgetBlocks.js:573 +msgid "The oscilloscope block opens a tool to visualize waveforms." msgstr "" -#: js/musicutils.js:753 -#: js/synthutils.js:49 -#.TRANS: brown noise synthesizer -msgid "brown noise" +#: js/blocks/WidgetBlocks.js:578 +msgid "oscilloscope" msgstr "" -#: js/musicutils.js:754 -#: js/synthutils.js:51 -#.TRANS: pink noise synthesizer -msgid "pink noise" +#: js/blocks/WidgetBlocks.js:645 +msgid "The Custom mode block opens a tool to explore musical mode (the spacing of the notes in a scale)." msgstr "" -#: js/musicutils.js:756 -#: js/synthutils.js:127 -#: js/rhythmruler.js:1670 -#: js/rhythmruler.js:1928 -#.TRANS: musical instrument -msgid "snare drum" +#: js/blocks/WidgetBlocks.js:651 +#.TRANS: musical mode is the pattern of half-steps in an octave, e.g., Major or Minor modes +msgid "custom mode" msgstr "" -#: js/musicutils.js:757 -#: js/synthutils.js:129 -#.TRANS: musical instrument -msgid "kick drum" +#: js/blocks/WidgetBlocks.js:700 +msgid "The Tempo block opens a metronome to visualize the beat." msgstr "" -#: js/musicutils.js:758 -#: js/synthutils.js:131 -#.TRANS: musical instrument -msgid "tom tom" +#: js/blocks/WidgetBlocks.js:762 +msgid "The Arpeggio Widget is used to compose chord sequences." msgstr "" -#: js/musicutils.js:759 -#: js/synthutils.js:133 -#.TRANS: musical instrument -msgid "floor tom" +#: js/blocks/WidgetBlocks.js:837 +msgid "The Pitch drum matrix is used to map pitches to drum sounds." msgstr "" -#: js/musicutils.js:760 -#: js/synthutils.js:135 -#.TRANS: musical instrument -msgid "bass drum" +#: js/blocks/WidgetBlocks.js:842 +#.TRANS: makes a mapping between pitches and drum sounds +msgid "pitch-drum mapper" msgstr "" -#: js/musicutils.js:761 -#: js/synthutils.js:137 -#.TRANS: a drum made from an inverted cup -msgid "cup drum" +#: js/blocks/WidgetBlocks.js:891 +msgid "You must have at least one pitch block and one drum block in the matrix." msgstr "" -#: js/musicutils.js:762 -#: js/synthutils.js:139 -#.TRANS: musical instrument -msgid "darbuka drum" +#: js/blocks/WidgetBlocks.js:920 +msgid "The Pitch slider tool to is used to generate pitches at selected frequencies." msgstr "" -#: js/musicutils.js:763 -#: js/synthutils.js:143 -#.TRANS: musical instrument -msgid "hi hat" +#: js/blocks/WidgetBlocks.js:925 +#.TRANS: widget to generate pitches using a slider +msgid "pitch slider" msgstr "" -#: js/musicutils.js:764 -#: js/synthutils.js:145 -#.TRANS: a small metal bell -msgid "ride bell" +#: js/blocks/WidgetBlocks.js:977 +msgid "chromatic keyboard" msgstr "" -#: js/musicutils.js:765 -#: js/synthutils.js:147 -#.TRANS: musical instrument -msgid "cow bell" +#: js/blocks/WidgetBlocks.js:1011 +#: js/blocks/WidgetBlocks.js:1077 +#.TRANS: widget to generate pitches using a slider +msgid "music keyboard" msgstr "" -#: js/musicutils.js:766 -msgid "japanese drum" +#: js/blocks/WidgetBlocks.js:1062 +#: js/blocks/WidgetBlocks.js:1069 +msgid "The Music keyboard block opens a piano keyboard that can be used to create notes." msgstr "" -#: js/musicutils.js:767 -#: js/synthutils.js:153 -#.TRANS: musical instrument -msgid "japanese bell" +#: js/blocks/WidgetBlocks.js:1128 +msgid "The Pitch staircase tool to is used to generate pitches from a given ratio." msgstr "" -#: js/musicutils.js:768 -#: js/synthutils.js:149 -#.TRANS: musical instrument -msgid "triangle bell" +#: js/blocks/WidgetBlocks.js:1135 +#.TRANS: generate a progressive sequence of pitches +msgid "pitch staircase" msgstr "" -#: js/musicutils.js:769 -#: js/synthutils.js:151 -#.TRANS: musical instrument -msgid "finger cymbals" +#: js/blocks/WidgetBlocks.js:1222 +msgid "The Rhythm Maker block opens a tool to create drum machines." msgstr "" -#: js/musicutils.js:770 -#: js/synthutils.js:155 -#.TRANS: a musically tuned set of bells -msgid "chime" +#: js/blocks/WidgetBlocks.js:1291 +msgid "G major scale" +msgstr "scala di Sol maggiore" + +#: js/blocks/WidgetBlocks.js:1326 +msgid "C major scale" +msgstr "scala di Do maggiore" + +#: js/blocks/WidgetBlocks.js:1366 +msgid "The Phrase Maker block opens a tool to create musical phrases." msgstr "" -#: js/musicutils.js:771 -#: js/synthutils.js:157 -#.TRANS: a musical instrument -msgid "gong" +#: js/blocks/WidgetBlocks.js:1373 +#.TRANS: assigns pitch to a sequence of beats to generate a melody +msgid "phrase maker" msgstr "" -#: js/musicutils.js:772 -#: js/synthutils.js:159 -#.TRANS: sound effect -msgid "clang" +#: js/blocks/WidgetBlocks.js:1444 +msgid "You must have at least one pitch block and one rhythm block in the matrix." msgstr "" -#: js/musicutils.js:773 -#: js/synthutils.js:161 -#.TRANS: sound effect -msgid "crash" +#: js/blocks/WidgetBlocks.js:1503 +msgid "The Status block opens a tool for inspecting the status of Music Blocks as it is running." msgstr "" -#: js/musicutils.js:774 -#: js/synthutils.js:163 -#.TRANS: sound effect -msgid "bottle" +#: js/blocks/WidgetBlocks.js:1580 +#.TRANS: AI-generated music +msgid "aimusic" msgstr "" -#: js/musicutils.js:775 -#: js/synthutils.js:165 -#.TRANS: sound effect -msgid "clap" +#: js/turtleactions/MeterActions.js:101 +#: js/turtleactions/MeterActions.js:139 +msgid "beats per minute must be greater than" msgstr "" -#: js/musicutils.js:776 -#: js/synthutils.js:167 -#.TRANS: sound effect -msgid "slap" +#: js/turtleactions/MeterActions.js:111 +#: js/turtleactions/MeterActions.js:149 +msgid "maximum" msgstr "" -#: js/musicutils.js:777 -#: js/synthutils.js:169 -#.TRANS: sound effect -msgid "splash" +#: js/turtleactions/MeterActions.js:117 +#: js/turtleactions/MeterActions.js:155 +msgid "beats per minute is" msgstr "" -#: js/musicutils.js:778 -#: js/synthutils.js:171 -#.TRANS: sound effect -msgid "bubbles" +#: js/turtleactions/DictActions.js:75 +#: js/turtleactions/DictActions.js:142 +#: js/turtleactions/DictActions.js:172 +msgid "font" msgstr "" -#: js/musicutils.js:779 -#: js/synthutils.js:173 -#.TRANS: sound effect -msgid "raindrop" +#: js/turtleactions/DictActions.js:255 +msgid "Dictionary with this name does not exist" msgstr "" -#: js/musicutils.js:780 -#: js/synthutils.js:175 -#.TRANS: animal sound effect -msgid "cat" +#: js/turtleactions/DictActions.js:259 +msgid "Key with this name does not exist in " msgstr "" -#: js/musicutils.js:781 -#: js/synthutils.js:177 -#.TRANS: animal sound effect -msgid "cricket" +#: js/turtleactions/DrumActions.js:227 +msgid "Noise Block: Did you mean to use a Note block?" msgstr "" -#: js/musicutils.js:782 -#: js/synthutils.js:179 -#.TRANS: animal sound effect -msgid "dog" +#: js/turtleactions/IntervalsActions.js:113 +msgid "one" msgstr "" -#: js/musicutils.js:784 -#: js/synthutils.js:86 -#.TRANS: musical instrument -msgid "banjo" +#: js/turtleactions/IntervalsActions.js:113 +msgid "two" msgstr "" -#: js/musicutils.js:785 -#: js/synthutils.js:88 -#.TRANS: musical instrument -msgid "koto" +#: js/turtleactions/IntervalsActions.js:113 +msgid "three" msgstr "" -#: js/musicutils.js:786 -#: js/synthutils.js:90 -#.TRANS: musical instrument -msgid "dulcimer" +#: js/turtleactions/IntervalsActions.js:113 +msgid "four" msgstr "" -#: js/musicutils.js:787 -#: js/synthutils.js:92 -#.TRANS: musical instrument -msgid "electric guitar" +#: js/turtleactions/IntervalsActions.js:113 +msgid "five" msgstr "" -#: js/musicutils.js:788 -#: js/synthutils.js:94 -#.TRANS: musical instrument -msgid "bassoon" +#: js/turtleactions/IntervalsActions.js:113 +msgid "six" msgstr "" -#: js/musicutils.js:789 -#: js/synthutils.js:96 -#.TRANS: musical instrument -msgid "celeste" +#: js/turtleactions/IntervalsActions.js:113 +msgid "seven" msgstr "" -#: js/musicutils.js:791 -#: js/musicutils.js:1123 -#: js/musicutils.js:1131 -#: js/temperament.js:650 -#.TRANS: musical temperament -msgid "equal" +#: js/turtleactions/IntervalsActions.js:113 +msgid "eight" msgstr "" -#: js/musicutils.js:793 -#: js/musicutils.js:1125 -#: js/musicutils.js:1133 -#.TRANS: musical temperament -msgid "Pythagorean" +#: js/turtleactions/IntervalsActions.js:113 +msgid "nine" msgstr "" -#: js/musicutils.js:795 -#: js/musicutils.js:1124 -#: js/musicutils.js:1132 -#.TRANS: musical temperament -msgid "just intonation" +#: js/turtleactions/IntervalsActions.js:119 +msgid "a" msgstr "" -#: js/musicutils.js:797 -#: js/musicutils.js:1126 -#: js/musicutils.js:1127 -#: js/musicutils.js:1134 -#: js/musicutils.js:1135 -#.TRANS: musical temperament -msgid "meantone" +#: js/turtleactions/IntervalsActions.js:120 +msgid "below" msgstr "" -#: js/musicutils.js:814 -msgid "major 7th" +#: js/turtleactions/IntervalsActions.js:124 +msgid "above" msgstr "" -#: js/musicutils.js:815 -msgid "minor 7th" +#: js/turtleactions/IntervalsActions.js:131 +msgid "plus" msgstr "" -#: js/musicutils.js:816 -msgid "dominant 7th" +#: js/turtleactions/IntervalsActions.js:139 +msgid " below" msgstr "" -#: js/musicutils.js:817 -msgid "minor-major 7th" +#: js/turtleactions/IntervalsActions.js:257 +msgid "Adding missing pitch number 0." msgstr "" -#: js/musicutils.js:818 -msgid "fully-diminished 7th" +#: js/turtleactions/IntervalsActions.js:265 +msgid "Ignoring pitch numbers less than zero or greater than eleven." msgstr "" -#: js/musicutils.js:819 -msgid "half-diminished 7th" +#: js/turtleactions/IntervalsActions.js:271 +msgid "Ignoring duplicate pitch numbers." msgstr "" -#: js/musicutils.js:4379 -#: js/musicutils.js:4416 -msgid "current" +#: js/turtleactions/ToneActions.js:134 +msgid "Vibrato intensity must be between 1 and 100." msgstr "" -#: js/musicutils.js:4382 -#: js/musicutils.js:4407 -msgid "next" +#: js/turtleactions/ToneActions.js:139 +msgid "Vibrato rate must be greater than 0." msgstr "" -#: js/musicutils.js:4385 -#: js/musicutils.js:4412 -msgid "previous" +#: js/turtleactions/ToneActions.js:192 +#: js/turtleactions/ToneActions.js:265 +#.TRANS: Depth is the intesity of the tremolo or chorus effect. +msgid "Depth is out of range." msgstr "" -#: js/synthutils.js:104 -#.TRANS: simple monotone synthesizer -msgid "simple-2" +#: js/turtleactions/ToneActions.js:301 +msgid "Distortion must be from 0 to 100." msgstr "" -#: js/synthutils.js:106 -#.TRANS: simple monotone synthesizer -msgid "simple-3" +#: js/turtleactions/ToneActions.js:332 +#.TRANS: partials components in a harmonic series +msgid "Partial must be greater than or equal to 0." msgstr "" -#: js/synthutils.js:108 -#.TRANS: simple monotone synthesizer -msgid "simple-4" +#: js/turtleactions/ToneActions.js:378 +#: js/turtleactions/ToneActions.js:417 +#: js/turtleactions/ToneActions.js:456 +#: js/widgets/timbre.js:782 +msgid "Unable to use synth due to existing oscillator" msgstr "" -#: js/synthutils.js:141 -#.TRANS: musical instrument -msgid "taiko" +#: js/turtleactions/ToneActions.js:388 +#: js/turtleactions/ToneActions.js:427 +msgid "The input cannot be negative." msgstr "" -#: js/modewidget.js:86 -#: js/modewidget.js:88 -#: js/modewidget.js:642 -#: js/modewidget.js:644 -#: js/modewidget.js:712 -#: js/modewidget.js:714 -#: js/temperament.js:2078 -#: js/rhythmruler.js:189 -#: js/rhythmruler.js:1410 -#: js/rhythmruler.js:1412 -#: js/rhythmruler.js:1435 -#: js/rhythmruler.js:1437 -#: js/meterwidget.js:89 -#: js/meterwidget.js:91 +#: js/widgets/modewidget.js:86 +#: js/widgets/modewidget.js:88 +#: js/widgets/modewidget.js:642 +#: js/widgets/modewidget.js:644 +#: js/widgets/modewidget.js:712 +#: js/widgets/modewidget.js:714 +#: js/widgets/meterwidget.js:194 +#: js/widgets/meterwidget.js:196 +#: js/widgets/temperament.js:2236 +#: js/widgets/rhythmruler.js:457 +#: js/widgets/rhythmruler.js:1790 +#: js/widgets/rhythmruler.js:1792 +#: js/widgets/rhythmruler.js:1816 +#: js/widgets/rhythmruler.js:1818 msgid "Play all" msgstr "" -#: js/modewidget.js:115 -#: js/pitchstaircase.js:641 -#: js/phrasemaker.js:339 -#: js/pitchdrummatrix.js:94 -#: js/pitchslider.js:125 -#: js/temperament.js:2083 -#: js/musickeyboard.js:530 -#: js/timbre.js:756 -#: js/meterwidget.js:124 -#: js/arpeggio.js:103 +#: js/widgets/modewidget.js:115 +#: js/widgets/meterwidget.js:229 +#: js/widgets/pitchdrummatrix.js:166 +#: js/widgets/pitchslider.js:125 +#: js/widgets/pitchstaircase.js:641 +#: js/widgets/temperament.js:2244 +#: js/widgets/timbre.js:756 +#: js/widgets/arpeggio.js:103 +#: js/widgets/musickeyboard.js:688 +#: js/widgets/phrasemaker.js:550 msgid "Save" msgstr "" -#: js/modewidget.js:121 -#: js/pitchstaircase.js:686 -#: js/phrasemaker.js:356 -#: js/pitchdrummatrix.js:109 -#: js/musickeyboard.js:534 -#: js/rhythmruler.js:269 -#: js/arpeggio.js:118 +#: js/widgets/modewidget.js:121 +#: js/widgets/pitchdrummatrix.js:181 +#: js/widgets/pitchstaircase.js:686 +#: js/widgets/arpeggio.js:118 +#: js/widgets/musickeyboard.js:696 +#: js/widgets/phrasemaker.js:567 +#: js/widgets/rhythmruler.js:601 #.TRANS: clear all subdivisions from the ruler. msgid "Clear" msgstr "" -#: js/modewidget.js:127 +#: js/widgets/modewidget.js:127 msgid "Rotate counter clockwise" msgstr "" -#: js/modewidget.js:133 +#: js/widgets/modewidget.js:133 msgid "Rotate clockwise" msgstr "" -#: js/modewidget.js:139 +#: js/widgets/modewidget.js:139 msgid "Invert" msgstr "" -#: js/modewidget.js:145 -#: js/pitchstaircase.js:678 -#: js/rhythmruler.js:258 -#: js/timbre.js:963 +#: js/widgets/modewidget.js:145 +#: js/widgets/pitchstaircase.js:678 +#: js/widgets/timbre.js:963 +#: js/widgets/rhythmruler.js:578 msgid "Undo" msgstr "disfare" -#: js/modewidget.js:163 +#: js/widgets/modewidget.js:163 #.TRANS: A circle of notes represents the musical mode. msgid "Click in the circle to select notes for the mode." msgstr "" -#: js/modewidget.js:1017 -#: js/pitchstaircase.js:580 -#: js/phrasemaker.js:4855 -#: js/temperament.js:1754 -#: js/rhythmruler.js:1865 -#: js/rhythmruler.js:2081 -#: js/tempo.js:414 +#: js/widgets/modewidget.js:1017 +#: js/widgets/pitchstaircase.js:580 +#: js/widgets/temperament.js:1929 +#: js/widgets/tempo.js:414 +#: js/widgets/phrasemaker.js:5356 +#: js/widgets/rhythmruler.js:2254 +#: js/widgets/rhythmruler.js:2472 msgid "New action block generated!" msgstr "" -#: js/oscilloscope.js:79 -msgid "Zoom In" -msgstr "" - -#: js/oscilloscope.js:88 -msgid "Zoom Out" -msgstr "" - -#: js/pitchstaircase.js:624 -msgid "Play chord" -msgstr "" - -#: js/pitchstaircase.js:632 -msgid "Play scale" +#: js/widgets/meterwidget.js:275 +msgid "Reset" msgstr "" -#: js/pitchstaircase.js:696 -msgid "Click on a note to create a new step." +#: js/widgets/meterwidget.js:301 +msgid "Click in the circle to select strong beats for the meter." msgstr "" -#: js/phrasemaker.js:363 -msgid "Export" +#: js/widgets/oscilloscope.js:79 +msgid "Zoom In" msgstr "" -#: js/phrasemaker.js:370 -msgid "Sort" +#: js/widgets/oscilloscope.js:88 +msgid "Zoom Out" msgstr "" -#: js/phrasemaker.js:373 -#: js/musickeyboard.js:559 -msgid "Add note" +#: js/widgets/pitchdrummatrix.js:356 +#: js/widgets/pitchdrummatrix.js:752 +msgid "Click in the grid to map notes to drums." msgstr "" -#: js/phrasemaker.js:764 -msgid "Click on the table to add notes." +#: js/widgets/pitchslider.js:103 +msgid "Move up" msgstr "" -#: js/phrasemaker.js:2414 -#: js/phrasemaker.js:2543 -msgid "tuplet value" +#: js/widgets/pitchslider.js:114 +msgid "Move down" msgstr "" -#: js/pitchdrummatrix.js:270 -#: js/pitchdrummatrix.js:639 -msgid "Click in the grid to map notes to drums." +#: js/widgets/pitchslider.js:136 +msgid "Click on the slider to create a note block." msgstr "" -#: js/pitchslider.js:103 -msgid "Move up" +#: js/widgets/pitchstaircase.js:624 +msgid "Play chord" msgstr "" -#: js/pitchslider.js:114 -msgid "Move down" +#: js/widgets/pitchstaircase.js:632 +msgid "Play scale" msgstr "" -#: js/pitchslider.js:136 -msgid "Click on the slider to create a note block." +#: js/widgets/pitchstaircase.js:696 +msgid "Click on a note to create a new step." msgstr "" -#: js/temperament.js:215 +#: js/widgets/temperament.js:321 msgid "back to 2:1 octave space" msgstr "" -#: js/temperament.js:323 +#: js/widgets/temperament.js:447 msgid "edit" msgstr "" -#: js/temperament.js:330 -#: js/temperament.js:332 -#: js/temperament.js:1336 -#: js/temperament.js:1338 +#: js/widgets/temperament.js:454 +#: js/widgets/temperament.js:456 +#: js/widgets/temperament.js:1493 +#: js/widgets/temperament.js:1495 msgid "close" msgstr "" -#: js/temperament.js:423 -#: js/temperament.js:736 -#: js/temperament.js:743 -#: js/temperament.js:845 -#: js/temperament.js:935 -#: js/temperament.js:942 -#: js/temperament.js:1015 -#: js/temperament.js:1284 -#: js/temperament.js:1354 -#: js/temperament.js:1430 +#: js/widgets/temperament.js:552 +#: js/widgets/temperament.js:877 +#: js/widgets/temperament.js:884 +#: js/widgets/temperament.js:986 +#: js/widgets/temperament.js:1080 +#: js/widgets/temperament.js:1087 +#: js/widgets/temperament.js:1160 +#: js/widgets/temperament.js:1433 +#: js/widgets/temperament.js:1511 +#: js/widgets/temperament.js:1596 msgid "done" msgstr "" -#: js/temperament.js:477 -#: js/temperament.js:482 -#: js/temperament.js:918 +#: js/widgets/temperament.js:610 +#: js/widgets/temperament.js:615 +#: js/widgets/temperament.js:1063 msgid "ratio" msgstr "" -#: js/temperament.js:483 +#: js/widgets/temperament.js:616 msgid "interval" msgstr "" -#: js/temperament.js:611 +#: js/widgets/temperament.js:744 msgid "non scalar" msgstr "" -#: js/temperament.js:650 +#: js/widgets/temperament.js:787 msgid "ratios" msgstr "" -#: js/temperament.js:650 +#: js/widgets/temperament.js:787 msgid "arbitrary" msgstr "" -#: js/temperament.js:719 +#: js/widgets/temperament.js:860 msgid "number of divisions" msgstr "" -#: js/temperament.js:741 -#: js/temperament.js:858 -#: js/temperament.js:940 -#: js/temperament.js:1033 +#: js/widgets/temperament.js:882 +#: js/widgets/temperament.js:999 +#: js/widgets/temperament.js:1085 +#: js/widgets/temperament.js:1178 msgid "preview" msgstr "" -#: js/temperament.js:788 +#: js/widgets/temperament.js:929 msgid "The Number of divisions is too large." msgstr "" -#: js/temperament.js:921 +#: js/widgets/temperament.js:1066 msgid "recursion" msgstr "" -#: js/temperament.js:1450 +#: js/widgets/temperament.js:1616 msgid "The octave ratio has changed. This changes temperament significantly." msgstr "" -#: js/temperament.js:2087 +#: js/widgets/temperament.js:2248 msgid "Table" msgstr "" -#: js/temperament.js:2185 +#: js/widgets/temperament.js:2356 msgid "Add pitches" msgstr "" -#: js/musickeyboard.js:570 -msgid "Metronome" +#: js/widgets/tempo.js:78 +#: js/widgets/tempo.js:97 +#: js/widgets/tempo.js:99 +#: js/widgets/aiwidget.js:134 +#: js/widgets/aiwidget.js:136 +#: js/widgets/rhythmruler.js:681 +#: js/widgets/rhythmruler.js:683 +#: js/widgets/rhythmruler.js:1864 +#: js/widgets/rhythmruler.js:1866 +#: js/widgets/sampler.js:180 +#: js/widgets/sampler.js:182 +msgid "Pause" msgstr "" -#: js/musickeyboard.js:1296 -#: plugins/rodi.rtp:193 -msgid "duration" -msgstr "durata" +#: js/widgets/tempo.js:113 +msgid "Save tempo" +msgstr "" -#: js/musickeyboard.js:2840 -msgid "New action blocks generated!" +#: js/widgets/tempo.js:144 +msgid "speed up" msgstr "" -#: js/musickeyboard.js:2841 -msgid "New action block generated" +#: js/widgets/tempo.js:150 +msgid "slow down" msgstr "" -#: js/musickeyboard.js:2984 -#: js/musickeyboard.js:2992 -msgid "MIDI device present." +#: js/widgets/tempo.js:194 +msgid "Adjust the tempo with the buttons." msgstr "" -#: js/musickeyboard.js:2995 -msgid "No MIDI device found." +#: js/widgets/tempo.js:261 +msgid "Please enter a number between 30 and 1000" msgstr "" -#: js/musickeyboard.js:3000 -msgid "Failed to get MIDI access in browser." +#: js/widgets/tempo.js:268 +#: js/widgets/tempo.js:271 +msgid "The beats per minute must be between 30 and 1000." msgstr "" -#: js/rhythmruler.js:202 -msgid "Save rhythms" +#: js/widgets/tempo.js:287 +msgid "The beats per minute must be below 1000." msgstr "" -#: js/rhythmruler.js:222 -msgid "Save drum machine" +#: js/widgets/tempo.js:303 +msgid "The beats per minute must be above 30" msgstr "" -#: js/rhythmruler.js:263 -#.TRANS: user can tap out a rhythm by clicking on a ruler. -msgid "Tap a rhythm" +#: js/widgets/timbre.js:766 +msgid "Synthesizer" msgstr "" -#: js/rhythmruler.js:342 -#: js/rhythmruler.js:344 -#: js/rhythmruler.js:1481 -#: js/rhythmruler.js:1483 -#: js/sampler.js:110 -#: js/sampler.js:112 -#: js/tempo.js:78 -#: js/tempo.js:97 -#: js/tempo.js:99 -msgid "Pause" +#: js/widgets/timbre.js:789 +msgid "Oscillator" msgstr "" -#: js/rhythmruler.js:478 -msgid "Click on the ruler to divide it." +#: js/widgets/timbre.js:840 +msgid "Envelope" msgstr "" -#: js/rhythmruler.js:603 -#: js/rhythmruler.js:605 -#: js/rhythmruler.js:804 -#: js/rhythmruler.js:806 -#: js/rhythmruler.js:1386 -#: js/rhythmruler.js:1388 -msgid "tap a rhythm" +#: js/widgets/timbre.js:886 +#: planet/js/GlobalTag.js:50 +#.TRANS: On the Planet, we use labels to tag projects. +msgid "Effects" msgstr "" -#: js/rhythmruler.js:1084 -msgid "Maximum value of 256 has been exceeded." +#: js/widgets/timbre.js:904 +msgid "Filter" msgstr "" -#: js/sampler.js:137 -msgid "Warning: Sample is bigger than 1MB." +#: js/widgets/timbre.js:946 +msgid "Add filter" msgstr "" -#: js/sampler.js:142 -msgid "Upload failed: Sample is not a .wav file." +#: js/widgets/timbre.js:987 +msgid "Click on buttons to open the timbre design tools." msgstr "" -#: js/sampler.js:164 -msgid "A new sample block was generated." +#: js/widgets/timbre.js:1273 +msgid "harmonicity" msgstr "" -#: js/sampler.js:255 -msgid "Upload sample" +#: js/widgets/timbre.js:1340 +#: js/widgets/timbre.js:1406 +msgid "modulation index" msgstr "" -#: js/sampler.js:306 -msgid "Save sample" +#: js/widgets/timbre.js:1484 +msgid "vibrato amount" msgstr "" -#: js/sampler.js:697 -#.TRANS: The reference tone is a sound used for comparison. -msgid "reference tone" +#: js/widgets/timbre.js:1919 +msgid "Filter already present." msgstr "" -#: js/tempo.js:113 -msgid "Save tempo" +#: js/widgets/timbre.js:2322 +msgid "delay (MS)" msgstr "" -#: js/tempo.js:144 -msgid "speed up" +#: js/widgets/timbre.js:2507 +msgid "distortion amount" msgstr "" -#: js/tempo.js:150 -msgid "slow down" +#: js/widgets/aiwidget.js:180 +#: js/widgets/sampler.js:227 +msgid "Warning: Sample is bigger than 1MB." msgstr "" -#: js/tempo.js:194 -msgid "Adjust the tempo with the buttons." +#: js/widgets/aiwidget.js:539 +msgid "New start block generated" msgstr "" -#: js/tempo.js:261 -msgid "Please enter a number between 30 and 1000" +#: js/widgets/aiwidget.js:541 +msgid "MIDI loading. This may take some time depending upon the number of notes in the track" msgstr "" -#: js/tempo.js:268 -#: js/tempo.js:271 -msgid "The beats per minute must be between 30 and 1000." +#: js/widgets/aiwidget.js:551 +#: js/widgets/sampler.js:254 +msgid "Upload failed: Sample is not a .wav file." msgstr "" -#: js/tempo.js:287 -msgid "The beats per minute must be below 1000." +#: js/widgets/aiwidget.js:679 +#: js/widgets/sampler.js:432 +msgid "Save sample" msgstr "" -#: js/tempo.js:303 -msgid "The beats per minute must be above 30" +#: js/widgets/aiwidget.js:701 +msgid "AI Music" msgstr "" -#: js/timbre.js:766 -msgid "Synthesizer" +#: js/widgets/arpeggio.js:239 +msgid "Click in the grid to add steps to the arpeggio." msgstr "" -#: js/timbre.js:789 -msgid "Oscillator" +#: js/widgets/help.js:95 +#: js/widgets/help.js:125 +#: js/widgets/help.js:146 +#: js/widgets/help.js:158 +#: js/widgets/help.js:376 +#: js/widgets/help.js:391 +msgid "Take a tour" msgstr "" -#: js/timbre.js:840 -msgid "Envelope" +#: js/widgets/musickeyboard.js:725 +#: js/widgets/phrasemaker.js:584 +msgid "Add note" msgstr "" -#: js/timbre.js:886 -#: js/GlobalTag.js:50 -#.TRANS: On the Planet, we use labels to tag projects. -msgid "Effects" +#: js/widgets/musickeyboard.js:744 +msgid "Metronome" msgstr "" -#: js/timbre.js:904 -msgid "Filter" +#: js/widgets/musickeyboard.js:1549 +#: plugins/rodi.rtp:193 +msgid "duration" +msgstr "durata" + +#: js/widgets/musickeyboard.js:3179 +msgid "New action blocks generated" msgstr "" -#: js/timbre.js:946 -msgid "Add filter" +#: js/widgets/musickeyboard.js:3180 +msgid "New action block generated" msgstr "" -#: js/timbre.js:987 -msgid "Click on buttons to open the timbre design tools." +#: js/widgets/musickeyboard.js:3365 +#: js/widgets/musickeyboard.js:3373 +msgid "MIDI device present." msgstr "" -#: js/timbre.js:1273 -msgid "harmonicity" +#: js/widgets/musickeyboard.js:3376 +msgid "No MIDI device found." msgstr "" -#: js/timbre.js:1340 -#: js/timbre.js:1406 -msgid "modulation index" +#: js/widgets/musickeyboard.js:3386 +msgid "Failed to get MIDI access in browser." msgstr "" -#: js/timbre.js:1484 -msgid "vibrato amount" +#: js/widgets/phrasemaker.js:574 +msgid "Export" msgstr "" -#: js/timbre.js:1919 -msgid "Filter already present." +#: js/widgets/phrasemaker.js:581 +msgid "Sort" msgstr "" -#: js/timbre.js:2322 -msgid "delay (MS)" +#: js/widgets/phrasemaker.js:975 +msgid "Click on the table to add notes." msgstr "" -#: js/timbre.js:2507 -msgid "distortion amount" +#: js/widgets/phrasemaker.js:2677 +#: js/widgets/phrasemaker.js:2819 +msgid "tuplet value" msgstr "" -#: js/meterwidget.js:170 -msgid "Reset" +#: js/widgets/rhythmruler.js:486 +msgid "Save rhythms" msgstr "" -#: js/meterwidget.js:196 -msgid "Click in the circle to select strong beats for the meter." +#: js/widgets/rhythmruler.js:512 +msgid "Save drum machine" msgstr "" -#: js/arpeggio.js:239 -msgid "Click in the grid to add steps to the arpeggio." +#: js/widgets/rhythmruler.js:589 +#.TRANS: user can tap out a rhythm by clicking on a ruler. +msgid "Tap a rhythm" msgstr "" -#: js/ProjectStorage.js:243 -msgid "anonymous" +#: js/widgets/rhythmruler.js:817 +msgid "Click on the ruler to divide it." +msgstr "" + +#: js/widgets/rhythmruler.js:950 +#: js/widgets/rhythmruler.js:952 +#: js/widgets/rhythmruler.js:1152 +#: js/widgets/rhythmruler.js:1154 +#: js/widgets/rhythmruler.js:1765 +#: js/widgets/rhythmruler.js:1767 +msgid "tap a rhythm" +msgstr "" + +#: js/widgets/rhythmruler.js:1459 +msgid "Maximum value of 256 has been exceeded." msgstr "" -#: js/GlobalCard.js:68 -msgid "Share" +#: js/widgets/sampler.js:237 +msgid "Recording started..." msgstr "" -#: js/GlobalCard.js:74 -msgid "Flags" +#: js/widgets/sampler.js:245 +msgid "Recording complete..." msgstr "" -#: js/LocalCard.js:36 -msgid "View published project" +#: js/widgets/sampler.js:283 +msgid "A new sample block was generated." msgstr "" -#: js/LocalCard.js:42 -msgid "Publish project" +#: js/widgets/sampler.js:378 +msgid "Upload sample" msgstr "" -#: js/LocalCard.js:51 -msgid "Edit project" +#: js/widgets/sampler.js:399 +msgid "Warning: Your sample cannot be loaded because it is >1MB." msgstr "" -#: js/LocalCard.js:52 -msgid "Delete project" +#: js/widgets/sampler.js:448 +msgid "Toggle Mic" msgstr "" -#: js/LocalCard.js:53 -msgid "Download project" +#: js/widgets/sampler.js:458 +msgid "Playback" msgstr "" -#: js/LocalCard.js:55 -msgid "Duplicate project" +#: js/widgets/sampler.js:979 +#.TRANS: The reference tone is a sound used for comparison. +msgid "reference tone" msgstr "" -#: js/GlobalTag.js:28 +#: planet/js/GlobalTag.js:28 #.TRANS: On the Planet, we use labels to tag projects. msgid "All Projects" msgstr "" -#: js/GlobalTag.js:30 -#: js/StringHelper.js:37 +#: planet/js/GlobalTag.js:30 +#: planet/js/StringHelper.js:37 #.TRANS: On the Planet, we use labels to tag projects. msgid "My Projects" msgstr "" -#: js/GlobalTag.js:32 +#: planet/js/GlobalTag.js:32 #.TRANS: On the Planet, we use labels to tag projects. msgid "Examples" msgstr "" -#: js/GlobalTag.js:34 +#: planet/js/GlobalTag.js:34 #.TRANS: On the Planet, we use labels to tag projects. msgid "Music" msgstr "" -#: js/GlobalTag.js:36 +#: planet/js/GlobalTag.js:36 #.TRANS: On the Planet, we use labels to tag projects. msgid "Art" msgstr "" -#: js/GlobalTag.js:38 +#: planet/js/GlobalTag.js:38 #.TRANS: On the Planet, we use labels to tag projects. msgid "Math" msgstr "" -#: js/GlobalTag.js:40 +#: planet/js/GlobalTag.js:40 #.TRANS: On the Planet, we use labels to tag projects. msgid "Interactive" msgstr "" -#: js/GlobalTag.js:42 +#: planet/js/GlobalTag.js:42 #.TRANS: On the Planet, we use labels to tag projects. msgid "Design" msgstr "" -#: js/GlobalTag.js:44 +#: planet/js/GlobalTag.js:44 #.TRANS: On the Planet, we use labels to tag projects. msgid "Game" msgstr "" -#: js/GlobalTag.js:46 +#: planet/js/GlobalTag.js:46 #.TRANS: On the Planet, we use labels to tag projects. msgid "Media" msgstr "" -#: js/GlobalTag.js:48 +#: planet/js/GlobalTag.js:48 #.TRANS: On the Planet, we use labels to tag projects. msgid "Sensors" msgstr "" -#: js/GlobalTag.js:52 +#: planet/js/GlobalTag.js:52 #.TRANS: On the Planet, we use labels to tag projects. msgid "Code Snippet" msgstr "" -#: js/helper.js:149 -#: js/StringHelper.js:49 -msgid "Show more tags" +#: planet/js/LocalCard.js:36 +msgid "View published project" msgstr "" -#: js/helper.js:150 -msgid "Show fewer tags" +#: planet/js/LocalCard.js:42 +msgid "Publish project" +msgstr "" + +#: planet/js/LocalCard.js:51 +msgid "Edit project" +msgstr "" + +#: planet/js/LocalCard.js:52 +msgid "Delete project" +msgstr "" + +#: planet/js/LocalCard.js:53 +msgid "Download project" +msgstr "" + +#: planet/js/LocalCard.js:55 +msgid "Duplicate project" +msgstr "" + +#: planet/js/ProjectStorage.js:243 +msgid "anonymous" msgstr "" -#: js/ProjectViewer.js:30 +#: planet/js/SaveInterface.js:34 +msgid "Open in Music Blocks" +msgstr "" + +#: planet/js/SaveInterface.js:35 +msgid "Open in Turtle Blocks" +msgstr "" + +#: planet/js/GlobalCard.js:68 +msgid "Share" +msgstr "" + +#: planet/js/GlobalCard.js:74 +msgid "Flags" +msgstr "" + +#: planet/js/GlobalPlanet.js:35 +msgid "No results found." +msgstr "" + +#: planet/js/GlobalPlanet.js:51 +msgid "Remix of" +msgstr "" + +#: planet/js/GlobalPlanet.js:509 +msgid "Cannot connect to server" +msgstr "" + +#: planet/js/ProjectViewer.js:30 msgid "Error: Report could not be submitted. Try again later." msgstr "" -#: js/ProjectViewer.js:31 +#: planet/js/ProjectViewer.js:31 msgid "Thank you for reporting this project. A moderator will review the project shortly, to verify violation of the Sugar Labs Code of Conduct." msgstr "" -#: js/ProjectViewer.js:32 -#: js/StringHelper.js:62 -#: js/StringHelper.js:64 -#: js/StringHelper.js:68 +#: planet/js/ProjectViewer.js:32 +#: planet/js/StringHelper.js:62 +#: planet/js/StringHelper.js:64 +#: planet/js/StringHelper.js:68 msgid "Report Project" msgstr "" -#: js/ProjectViewer.js:33 -#: js/StringHelper.js:63 +#: planet/js/ProjectViewer.js:33 +#: planet/js/StringHelper.js:63 msgid "Project Reported" msgstr "" -#: js/ProjectViewer.js:34 +#: planet/js/ProjectViewer.js:34 msgid "Report description required" msgstr "" -#: js/ProjectViewer.js:35 +#: planet/js/ProjectViewer.js:35 msgid "Report description too long" msgstr "" -#: js/StringHelper.js:30 +#: planet/js/Publisher.js:30 +msgid "Feature unavailable - cannot connect to server. Reload Music Blocks to try again." +msgstr "" + +#: planet/js/Publisher.js:220 +#: planet/js/Publisher.js:237 +msgid "This field is required" +msgstr "" + +#: planet/js/Publisher.js:227 +msgid "Title too long" +msgstr "" + +#: planet/js/Publisher.js:244 +msgid "Description too long" +msgstr "" + +#: planet/js/Publisher.js:341 +msgid "Server Error" +msgstr "" + +#: planet/js/Publisher.js:341 +msgid "Try Again" +msgstr "" + +#: planet/js/StringHelper.js:30 msgid "Planet" msgstr "" -#: js/StringHelper.js:31 +#: planet/js/StringHelper.js:31 msgid "Close Planet" msgstr "" -#: js/StringHelper.js:32 +#: planet/js/StringHelper.js:32 msgid "Open project from file" msgstr "" -#: js/StringHelper.js:34 +#: planet/js/StringHelper.js:34 msgid "Local" msgstr "" -#: js/StringHelper.js:35 +#: planet/js/StringHelper.js:35 msgid "Global" msgstr "" -#: js/StringHelper.js:36 +#: planet/js/StringHelper.js:36 msgid "Search for a project" msgstr "" -#: js/StringHelper.js:38 +#: planet/js/StringHelper.js:38 msgid "Publish Project" msgstr "" -#: js/StringHelper.js:40 +#: planet/js/StringHelper.js:40 msgid "Tags (max 5)" msgstr "" -#: js/StringHelper.js:41 -#: js/StringHelper.js:61 +#: planet/js/StringHelper.js:41 +#: planet/js/StringHelper.js:61 msgid "Description" msgstr "" -#: js/StringHelper.js:42 -#: js/StringHelper.js:67 +#: planet/js/StringHelper.js:42 +#: planet/js/StringHelper.js:67 msgid "Submit" msgstr "" -#: js/StringHelper.js:43 -#: js/StringHelper.js:47 +#: planet/js/StringHelper.js:43 +#: planet/js/StringHelper.js:47 msgid "Cancel" msgstr "" -#: js/StringHelper.js:44 +#: planet/js/StringHelper.js:44 msgid "Delete \\"\\"?" msgstr "" -#: js/StringHelper.js:45 +#: planet/js/StringHelper.js:45 msgid "Permanently delete project \\"\\"?" msgstr "" -#: js/StringHelper.js:48 +#: planet/js/StringHelper.js:48 msgid "Explore Projects" msgstr "" -#: js/StringHelper.js:50 +#: planet/js/StringHelper.js:49 +#: planet/js/helper.js:149 +msgid "Show more tags" +msgstr "" + +#: planet/js/StringHelper.js:50 msgid "Most recent" msgstr "" -#: js/StringHelper.js:51 +#: planet/js/StringHelper.js:51 msgid "Most liked" msgstr "" -#: js/StringHelper.js:52 +#: planet/js/StringHelper.js:52 msgid "Most downloaded" msgstr "" -#: js/StringHelper.js:53 +#: planet/js/StringHelper.js:53 msgid "A-Z" msgstr "" -#: js/StringHelper.js:54 +#: planet/js/StringHelper.js:54 msgid "Sort by" msgstr "" -#: js/StringHelper.js:55 +#: planet/js/StringHelper.js:55 msgid "Load More Projects" msgstr "" -#: js/StringHelper.js:56 +#: planet/js/StringHelper.js:56 msgid "Last Updated" msgstr "" -#: js/StringHelper.js:57 +#: planet/js/StringHelper.js:57 msgid "Creation Date" msgstr "" -#: js/StringHelper.js:58 +#: planet/js/StringHelper.js:58 msgid "Number of Downloads:" msgstr "" -#: js/StringHelper.js:59 +#: planet/js/StringHelper.js:59 msgid "Number of Likes:" msgstr "" -#: js/StringHelper.js:60 +#: planet/js/StringHelper.js:60 msgid "Tags:" msgstr "" -#: js/StringHelper.js:65 +#: planet/js/StringHelper.js:65 msgid "Report projects which violate the Sugar Labs Code of Conduct." msgstr "" -#: js/StringHelper.js:66 +#: planet/js/StringHelper.js:66 msgid "Reason for reporting project" msgstr "" -#: js/StringHelper.js:70 +#: planet/js/StringHelper.js:70 msgid "Download as File" msgstr "" -#: js/GlobalPlanet.js:35 -msgid "No results found." -msgstr "" - -#: js/GlobalPlanet.js:51 -msgid "Remix of" -msgstr "" - -#: js/GlobalPlanet.js:509 -msgid "Cannot connect to server" -msgstr "" - -#: js/Publisher.js:30 -msgid "Feature unavailable - cannot connect to server. Reload Music Blocks to try again." -msgstr "" - -#: js/Publisher.js:218 -#: js/Publisher.js:235 -msgid "This field is required" -msgstr "" - -#: js/Publisher.js:225 -msgid "Title too long" +#: planet/js/helper.js:150 +msgid "Show fewer tags" msgstr "" -#: js/Publisher.js:242 -msgid "Description too long" -msgstr "" +#: plugins/accelerometer.rtp:48 +msgid "motion x" +msgstr "movimento in x" -#: js/Publisher.js:339 -msgid "Server Error" -msgstr "" +#: plugins/accelerometer.rtp:56 +msgid "motion y" +msgstr "movimento in y" -#: js/Publisher.js:339 -msgid "Try Again" -msgstr "" +#: plugins/accelerometer.rtp:64 +msgid "motion z" +msgstr "movimento in z" -#: js/SaveInterface.js:34 -msgid "Open in Music Blocks" -msgstr "" +#: plugins/facebook.rtp:27 +msgid "publish" +msgstr "pubblicare" -#: js/SaveInterface.js:35 -msgid "Open in Turtle Blocks" -msgstr "" +#: plugins/maths.rtp:62 +msgid "power" +msgstr "energia" -#: plugins/weather.rtp:68 -#: plugins/weather.rtp:97 -msgid "Days ahead must be in the range of -1 to 5." -msgstr "" +#: plugins/maths.rtp:62 +msgid "base" +msgstr "base" -#: plugins/weather.rtp:122 -msgid "forecast" -msgstr "tempo" +#: plugins/maths.rtp:62 +msgid "exp" +msgstr "exp" -#: plugins/weather.rtp:123 -#: plugins/weather.rtp:137 -#: plugins/weather.rtp:150 -msgid "city" -msgstr "città" +#: plugins/maths.rtp:99 +msgid "floor" +msgstr "piano" -#: plugins/weather.rtp:124 -#: plugins/weather.rtp:138 -#: plugins/weather.rtp:151 -msgid "day" -msgstr "giorno" +#: plugins/maths.rtp:104 +msgid "ceiling" +msgstr "soffitto" -#: plugins/weather.rtp:136 -msgid "high" -msgstr "alto" +#: plugins/maths.rtp:109 +msgid "to degrees" +msgstr "a gradi" -#: plugins/weather.rtp:149 -msgid "low" -msgstr "basso" +#: plugins/maths.rtp:114 +msgid "to radians" +msgstr "a radianti" #: plugins/nutrition.rtp:104 msgid "get calories" @@ -9458,45 +9867,6 @@ msgstr "biscotti" msgid "water" msgstr "acqua" -#: plugins/maths.rtp:62 -#: plugins/examples.rtp:93 -msgid "power" -msgstr "energia" - -#: plugins/maths.rtp:62 -#: plugins/examples.rtp:93 -msgid "base" -msgstr "base" - -#: plugins/maths.rtp:62 -#: plugins/examples.rtp:93 -msgid "exp" -msgstr "exp" - -#: plugins/maths.rtp:99 -#: plugins/examples.rtp:130 -msgid "floor" -msgstr "piano" - -#: plugins/maths.rtp:104 -#: plugins/examples.rtp:135 -msgid "ceiling" -msgstr "soffitto" - -#: plugins/maths.rtp:109 -#: plugins/examples.rtp:140 -msgid "to degrees" -msgstr "a gradi" - -#: plugins/maths.rtp:114 -#: plugins/examples.rtp:145 -msgid "to radians" -msgstr "a radianti" - -#: plugins/facebook.rtp:27 -msgid "publish" -msgstr "pubblicare" - #: plugins/rodi.rtp:172 msgid "blink" msgstr "" @@ -9525,17 +9895,65 @@ msgstr "" msgid "move" msgstr "muovere" -#: plugins/accelerometer.rtp:48 -msgid "motion x" -msgstr "movimento in x" +#: plugins/weather.rtp:68 +#: plugins/weather.rtp:97 +msgid "Days ahead must be in the range of -1 to 5." +msgstr "" -#: plugins/accelerometer.rtp:56 -msgid "motion y" -msgstr "movimento in y" +#: plugins/weather.rtp:122 +msgid "forecast" +msgstr "tempo" -#: plugins/accelerometer.rtp:64 -msgid "motion z" -msgstr "movimento in z" +#: plugins/weather.rtp:123 +#: plugins/weather.rtp:137 +#: plugins/weather.rtp:150 +msgid "city" +msgstr "città" + +#: plugins/weather.rtp:124 +#: plugins/weather.rtp:138 +#: plugins/weather.rtp:151 +msgid "day" +msgstr "giorno" + +#: plugins/weather.rtp:136 +msgid "high" +msgstr "alto" + +#: plugins/weather.rtp:149 +msgid "low" +msgstr "basso" + +#: js/toolbar.js:70 + +#: js/toolbar.js:130 + +#: js/toolbar.js:194 + +#: js/toolbar.js:249 + +#~msgid "Toggle JavaScript Editor" +#~msgstr "Abilita/disabilita Javascript Editor" + +#: js/EnsembleBlocks.js:643 + +#~msgid "The Turrle pitch block returns the current pitch number being played by the specified turtle." +#~msgstr "" + +#: js/PitchActions.js:88 + +#~msgid "The Scalar Step Block must be used inside of a Note Block." +#~msgstr "" + +#: js/PitchActions.js:107 + +#~msgid "The Scalar Step Block must be preceded by a Pitch Block." +#~msgstr "" + +#: js/musickeyboard.js:2840 + +#~msgid "New action blocks generated!" +#~msgstr "" #: js/toolbar.js:110 @@ -9877,11 +10295,6 @@ msgstr "movimento in z" #~msgid "The Time block returns the number of seconds that the program has been running." #~msgstr "" -#: js/help.js:95 - -#~msgid "Take a tour" -#~msgstr "" - #: js/GlobalCard.js:48 #~msgid "More Details" @@ -12780,11 +13193,6 @@ msgstr "movimento in z" #~msgid "The save-stack button saves a stack onto a custom palette. It appears after a \"long press\" on a stack." #~msgstr "" -#: js/musicutils.js:254 - -#~msgid "Custom" -#~msgstr "" - #: js/basicblocks.js:4785 #~msgid "Rhythm" diff --git a/po/ja-kana.po b/po/ja-kana.po index e353257085..8b9ac4417b 100644 --- a/po/ja-kana.po +++ b/po/ja-kana.po @@ -14,278 +14,133 @@ #: js/planetInterface.js:104 #: js/planetInterface.js:104 -msgid "project undefined" -msgstr "" - -#: js/logo.js:61 -msgid "Not a valid pitch name" -msgstr "えらばれた おんめいが てきせつでは ありません。" - -#: js/logo.js:507 -#: js/ProgramBlocks.js:258 -#: js/ProgramBlocks.js:427 -msgid "You must select a file." -msgstr "ファイルを えらんで ください。" - -#: js/logo.js:1184 -#: js/turtles.js:118 -#: js/turtle-painter.js:1192 -#: js/turtle-painter.js:1193 -#: js/block.js:1463 -#: js/lilypond.js:757 -#: js/lilypond.js:921 -#: js/lilypond.js:959 -#: js/ActionBlocks.js:1223 -#: js/ProgramBlocks.js:1267 -msgid "start" -msgstr "スタート" - -#: js/logo.js:1696 -msgid "Playback is ready." -msgstr "コンパイル かんりょう" +#: js/SaveInterface.js:59 +#: js/SaveInterface.js:61 +#: js/SaveInterface.js:93 +msgid "Music Blocks Project" +msgstr "ミュージック・ブロックスの プロジェクト" -#: js/blocks.js:1011 -#: js/blocks.js:3427 -#: js/blocks.js:3428 -#: js/blocks.js:3653 -#: js/blocks.js:4012 -#: js/blocks.js:4205 -#: js/blocks.js:5343 -#: js/blocks.js:6474 -#: js/palette.js:527 -#: js/palette.js:536 -#: js/palette.js:545 -#: js/palette.js:554 -#: js/palette.js:1131 -#: js/palette.js:1142 -#: js/palette.js:1153 -#: js/palette.js:1164 -#: js/palette.js:1183 -#: js/rubrics.js:529 -#: js/macros.js:170 -#: js/macros.js:266 -#: js/macros.js:267 -#: js/macros.js:276 -#: js/macros.js:828 -#: js/block.js:1449 -#: js/block.js:4164 -#: js/block.js:4182 -#: js/block.js:4193 -#: js/turtledefs.js:128 -#: js/turtledefs.js:230 -#: js/ActionBlocks.js:254 -#: js/ActionBlocks.js:307 -#: js/ActionBlocks.js:617 -#: js/ActionBlocks.js:716 -#: js/ActionBlocks.js:961 -#: js/ActionBlocks.js:1049 -#: js/ActionBlocks.js:1322 -#: js/ActionBlocks.js:1325 -#: js/ActionBlocks.js:1337 -#: js/ActionBlocks.js:1404 -#: js/MeterBlocks.js:715 -#: js/MeterBlocks.js:768 -#: js/MeterBlocks.js:831 -#: js/MeterBlocks.js:892 -#: js/phrasemaker.js:4412 -#: js/musickeyboard.js:2647 -#: js/rhythmruler.js:1928 -#: js/rhythmruler.js:1935 -#: js/rhythmruler.js:2119 -#: js/rhythmruler.js:2126 -msgid "action" -msgstr "アクション" +#: js/SaveInterface.js:63 +msgid "This project was created in Music Blocks" +msgstr "この プロジェクトは、 ミュージック・ブロックスで さくせい されました。" -#: js/blocks.js:1205 -#: js/blocks.js:3380 -#: js/blocks.js:3770 -#: js/blocks.js:3801 -#: js/blocks.js:3850 -#: js/blocks.js:3885 -#: js/blocks.js:6497 -#: js/palette.js:509 -#: js/palette.js:638 -#: js/palette.js:1107 -#: js/BoxesBlocks.js:282 -#: js/BoxesBlocks.js:285 -#: js/BoxesBlocks.js:405 -#: js/BoxesBlocks.js:594 -msgid "box" -msgstr "はこ" +#: js/SaveInterface.js:67 +msgid "Music Blocks is a Free/Libre Software application." +msgstr "ミュージック・ブロックスは、 おんがくの ちしきを たのしみながら みにつける ことの できる、 オープンソースの ソフト です。" -#: js/blocks.js:1680 -msgid "Consider breaking this stack into parts." -msgstr "この ながい スタックを べつべつの スタックに した ほうが いい" +#: js/SaveInterface.js:69 +msgid "The source code can be accessed at" +msgstr "ミュージック・ブロックスの ソースコードは、 こちらの URLから みる ことが できます。" -#: js/blocks.js:2408 -#: js/palette.js:653 -#: js/MediaBlocks.js:602 -msgid "open file" -msgstr "ファイルを ひらく" +#: js/SaveInterface.js:72 +msgid "For more information, please consult the" +msgstr "もっと くわしく しりたい ばあいは、 ミュージック・ブロックスの ガイドを さんしょう して ください。" -#: js/blocks.js:2415 -#: js/blocks.js:2423 -#: js/activity.js:1875 -msgid "audio file" -msgstr "" +#: js/SaveInterface.js:76 +#: js/turtledefs.js:795 +msgid "Music Blocks Guide" +msgstr "ミュージック・ブロックスガイド" -#: js/blocks.js:2536 -#: js/blocks.js:3147 -#: js/block.js:3543 -msgid "on2" -msgstr "オン" +#: js/SaveInterface.js:83 +msgid "Alternatively, open the file in Music Blocks using the Load project button." +msgstr "「ファイルから プロジェクトを よみこむ」 ボタンを おして、 ファイルを ひらいて ください。" -#: js/blocks.js:2538 -#: js/blocks.js:3149 -#: js/block.js:3545 -msgid "off" -msgstr "オフ" +#: js/SaveInterface.js:85 +msgid "Project Code" +msgstr "プロジェクトの コード" -#: js/blocks.js:2543 -#: js/blocks.js:3154 -#: js/palette.js:618 -#: js/block.js:3466 -#: js/BooleanBlocks.js:77 -#: js/BooleanBlocks.js:167 -#: js/BooleanBlocks.js:251 -#: js/BooleanBlocks.js:335 -#: js/BooleanBlocks.js:433 -#: js/BooleanBlocks.js:539 -#: js/BooleanBlocks.js:640 -#: js/BooleanBlocks.js:741 -#: js/BooleanBlocks.js:847 -#: js/BooleanBlocks.js:948 -#: js/BooleanBlocks.js:1033 -#: js/SensorsBlocks.js:910 -msgid "true" -msgstr "真" +#: js/SaveInterface.js:87 +msgid "This code stores data about the blocks in a project." +msgstr "この コードは、 がいとう する ばあい、 へんしゅう された バージョンの プロジェクトと いっしょに、 プロジェクトの なかの ブロックに かんする データを ほぞん します。" -#: js/blocks.js:2545 -#: js/blocks.js:3156 -#: js/block.js:3466 -#: js/BooleanBlocks.js:79 -#: js/BooleanBlocks.js:169 -#: js/BooleanBlocks.js:253 -#: js/BooleanBlocks.js:337 -#: js/BooleanBlocks.js:435 -#: js/BooleanBlocks.js:541 -#: js/BooleanBlocks.js:642 -#: js/BooleanBlocks.js:743 -#: js/BooleanBlocks.js:849 -#: js/BooleanBlocks.js:950 -#: js/SensorsBlocks.js:912 -msgid "false" -msgstr "偽" +#: js/SaveInterface.js:89 +msgid "Show" +msgstr "プロジェクトの コードを ひょうじ する" -#: js/blocks.js:3183 -#: js/palette.js:574 -#: js/MediaBlocks.js:892 -#: js/MediaBlocks.js:963 -msgid "text" -msgstr "もじ そざい" +#: js/SaveInterface.js:91 +msgid "Hide" +msgstr "プロジェクトの コードを ひひょうじに する" -#: js/blocks.js:3379 -#: js/palette.js:641 -#: js/palette.js:642 -#: js/BoxesBlocks.js:514 -msgid "store in box" -msgstr "はこに ほぞん" +#: js/SaveInterface.js:131 +#: js/SaveInterface.js:204 +#: js/SaveInterface.js:262 +#: js/SaveInterface.js:389 +#: js/SaveInterface.js:417 +#: js/activity.js:4884 +#: planet/js/ProjectStorage.js:27 +#: planet/js/GlobalPlanet.js:467 +#: planet/js/GlobalPlanet.js:469 +#: planet/js/GlobalPlanet.js:495 +#.TRANS: default project title when saving as Lilypond +msgid "My Project" +msgstr "じぶんの プロジェクト" -#: js/blocks.js:3384 -#: js/blocks.js:3824 -#: js/blocks.js:3859 -#: js/blocks.js:3894 -#: js/blocks.js:5773 -#: js/blocks.js:5794 -#: js/BoxesBlocks.js:772 -msgid "box1" -msgstr "はこ1" +#: js/SaveInterface.js:197 +#: planet/js/SaveInterface.js:58 +msgid "No description provided" +msgstr "きにゅうが ありません" -#: js/blocks.js:3386 -#: js/blocks.js:3826 -#: js/blocks.js:3861 -#: js/blocks.js:3896 -#: js/blocks.js:5775 -#: js/blocks.js:5796 -#: js/BoxesBlocks.js:663 -msgid "box2" -msgstr "はこ2" +#: js/SaveInterface.js:332 +msgid "Your recording is in progress." +msgstr "" -#: js/blocks.js:4058 -#: js/palette.js:639 -#: js/palette.js:644 -#: js/palette.js:1043 -#: js/BoxesBlocks.js:591 -msgid "store in" -msgstr "いれる" +#: js/SaveInterface.js:401 +#.TRANS: File name prompt for save as Lilypond +msgid "File name" +msgstr "ファイルめい" -#: js/blocks.js:4058 -#: js/EnsembleBlocks.js:391 -#: js/EnsembleBlocks.js:402 -#: js/MediaBlocks.js:746 -#: js/ProgramBlocks.js:390 -#: js/ProgramBlocks.js:495 -#: js/ProgramBlocks.js:658 -#: js/BoxesBlocks.js:595 -#: js/PitchBlocks.js:656 -#: js/PitchBlocks.js:932 -#: js/PitchBlocks.js:1827 -#: js/ToneBlocks.js:1025 -#: js/DictBlocks.js:215 -#: js/DictBlocks.js:289 -msgid "name" -msgstr "なまえ" +#: js/SaveInterface.js:403 +#: planet/js/StringHelper.js:39 +#.TRANS: Project title prompt for save as Lilypond +msgid "Project title" +msgstr "きょくめい" -#: js/blocks.js:4058 -#: js/RhythmBlocks.js:1130 -#: js/BoxesBlocks.js:75 -#: js/BoxesBlocks.js:595 -#: js/HeapBlocks.js:544 -#: js/DictBlocks.js:289 -#: js/DictBlocks.js:430 -msgid "value" -msgstr "あたい" +#: js/SaveInterface.js:405 +#.TRANS: Project title prompt for save as Lilypond +msgid "Project author" +msgstr "さっきょくか" -#: js/blocks.js:4907 -msgid "There is no block selected." -msgstr "ブロックが えらばれて いません。" +#: js/SaveInterface.js:407 +#.TRANS: MIDI prompt for save as Lilypond +msgid "Include MIDI output?" +msgstr "MIDIのアウトプット がくふにも まとめましょうか?" -#: js/blocks.js:5002 -#: js/MediaBlocks.js:888 -msgid "show" -msgstr "ひょうじする" +#: js/SaveInterface.js:409 +#.TRANS: Guitar prompt for save as Lilypond +msgid "Include guitar tablature output?" +msgstr "ギターの TABも がくふに まとめましょうか?" -#: js/blocks.js:5005 -#: js/MediaBlocks.js:803 -#.TRANS: Avatar is the image used to determine the appearance of the mouse. -msgid "avatar" -msgstr "ネズミへんこう" +#: js/SaveInterface.js:411 +#.TRANS: Lilypond is a scripting language for generating sheet music +msgid "Save as Lilypond" +msgstr "Lilypondがくふの フォーマットで ほぞん" -#: js/blocks.js:5008 -#: js/ToneBlocks.js:1010 -#: js/sampler.js:693 -#.TRANS: The sound sample that the user uploads. -msgid "sample" -msgstr "ねいろ サンプル" +#: js/SaveInterface.js:426 +#: js/blocks/EnsembleBlocks.js:75 +#: js/blocks/EnsembleBlocks.js:154 +#: js/blocks/EnsembleBlocks.js:216 +#: js/blocks/EnsembleBlocks.js:302 +#: js/blocks/EnsembleBlocks.js:348 +#: js/blocks/EnsembleBlocks.js:389 +#: js/blocks/EnsembleBlocks.js:441 +#: js/blocks/EnsembleBlocks.js:490 +#: js/blocks/EnsembleBlocks.js:536 +#: js/blocks/EnsembleBlocks.js:583 +#: js/blocks/EnsembleBlocks.js:637 +#: js/blocks/EnsembleBlocks.js:753 +#: js/blocks/EnsembleBlocks.js:840 +#: js/blocks/EnsembleBlocks.js:899 +#: js/blocks/EnsembleBlocks.js:942 +#: js/blocks/EnsembleBlocks.js:1212 +#: js/blocks/EnsembleBlocks.js:1280 +#.TRANS: default project author when saving as Lilypond +msgid "Mr. Mouse" +msgstr "ミスター・マウス" -#: js/turtles.js:874 -msgid "Grid" +#: js/SaveInterface.js:573 +msgid "The Lilypond code is copied to clipboard. You can paste it here: " msgstr "" -#: js/turtles.js:891 -#: js/turtledefs.js:626 -msgid "Clean" -msgstr "ネズミと ペンを もどす" - -#: js/turtles.js:912 -#: js/turtledefs.js:632 -msgid "Collapse" -msgstr "カンバスを しゅくしょう" - -#: js/turtles.js:940 -msgid "Expand" -msgstr "カンバスを かくだい" - #: js/languagebox.js:198 msgid "Refresh your browser to change your language preference." msgstr "げんごを かえるには、ブラウザを こうしんしてください。" @@ -294,6934 +149,7488 @@ msgstr "げんごを かえるには、ブラウザを こうしんしてくだ msgid "Music Blocks is already set to this language." msgstr "" -#: js/piemenus.js:200 -#: js/musicutils.js:808 -#: js/musicutils.js:824 -#: js/phrasemaker.js:1672 -#: js/musickeyboard.js:2041 -#: js/sampler.js:544 -#.TRANS: double sharp is a music term related to pitch -msgid "double sharp" -msgstr "ダブルシャープ" - -#: js/piemenus.js:201 -#: js/PitchBlocks.js:1510 -#: js/PitchActions.js:580 -#: js/musicutils.js:806 -#: js/musicutils.js:825 -#: js/phrasemaker.js:1673 -#: js/musickeyboard.js:2042 -#: js/sampler.js:545 -#.TRANS: sharp is a half-step up in pitch -#.TRANS: sharp is a music term related to pitch -msgid "sharp" -msgstr "シャープ" - -#: js/piemenus.js:202 -#: js/musicutils.js:804 -#: js/musicutils.js:826 -#: js/phrasemaker.js:1674 -#: js/musickeyboard.js:2043 -#: js/sampler.js:546 -#.TRANS: natural is a music term related to pitch -msgid "natural" -msgstr "ナチュラル" +#: js/planetInterface.js:131 +msgid "project undefined" +msgstr "" -#: js/piemenus.js:203 -#: js/PitchBlocks.js:1469 -#: js/PitchActions.js:583 -#: js/musicutils.js:802 -#: js/musicutils.js:827 -#: js/phrasemaker.js:1675 -#: js/musickeyboard.js:2044 -#: js/sampler.js:547 -#.TRANS: flat is a half-step down in pitch -#.TRANS: flat is a music term related to pitch -msgid "flat" -msgstr "フラット" +#: js/rubrics.js:523 +#: js/turtledefs.js:119 +#: js/turtledefs.js:221 +#: js/blocks/RhythmBlockPaletteBlocks.js:52 +#: js/blocks/RhythmBlockPaletteBlocks.js:234 +#: js/blocks/ProgramBlocks.js:745 +#: js/widgets/rhythmruler.js:2057 +#: js/widgets/rhythmruler.js:2064 +#: js/widgets/rhythmruler.js:2133 +#: js/widgets/rhythmruler.js:2140 +#: js/widgets/rhythmruler.js:2219 +#.TRANS: an arrangement of notes based on duration +msgid "rhythm" +msgstr "おんぷ" -#: js/piemenus.js:204 -#: js/musicutils.js:800 -#: js/musicutils.js:828 -#: js/phrasemaker.js:1676 -#: js/musickeyboard.js:2045 -#: js/sampler.js:548 -#.TRANS: double flat is a music term related to pitch -msgid "double flat" -msgstr "ダブルフラット" +#: js/rubrics.js:524 +#: js/turtledefs.js:121 +#: js/turtledefs.js:223 +#: js/block-verbose.js:2622 +#: js/block.js:2550 +#: js/blocks/IntervalsBlocks.js:63 +#: js/blocks/SensorsBlocks.js:178 +#: js/blocks/PitchBlocks.js:1839 +#: js/blocks/PitchBlocks.js:1853 +#: js/widgets/musickeyboard.js:1935 +#: js/widgets/phrasemaker.js:1036 +#.TRANS: pitch number +#.TRANS: pitch number +#.TRANS: we specify pitch in terms of a name and an octave. The name can be CDEFGAB or Do Re Mi Fa Sol La Ti. Octave is a number between 1 and 8. +msgid "pitch" +msgstr "おとの たかさ" -#: js/piemenus.js:2861 -#: js/PitchBlocks.js:1357 -#: js/musicutils.js:627 -#.TRANS: unison means the note is the same as the current note -#.TRANS: unison is a music term related to intervals -msgid "unison" -msgstr "ユニゾン(同度)" +#: js/rubrics.js:525 +#: js/turtledefs.js:123 +#: js/turtledefs.js:225 +msgid "tone" +msgstr "ねいろ" -#: js/piemenus.js:3015 -#: js/piemenus.js:3088 -#: js/musicutils.js:635 -#: js/musicutils.js:810 -#: js/musicutils.js:912 -#.TRANS: major is a music term related to intervals and mode -msgid "major" -msgstr "メジャー" +#: js/rubrics.js:526 +#: js/lilypond.js:605 +#: js/lilypond.js:904 +#: js/lilypond.js:910 +#: js/lilypond.js:948 +msgid "mouse" +msgstr "ネズミ" -#: js/piemenus.js:3015 -#: js/piemenus.js:3088 -#: js/musicutils.js:653 -#.TRANS: modal scale for music -msgid "ionian" -msgstr "アイオニアン おんかい" +#: js/rubrics.js:527 +#: js/turtledefs.js:132 +#: js/turtledefs.js:234 +#: js/widgets/phrasemaker.js:1040 +msgid "pen" +msgstr "ペン" -#: js/piemenus.js:3017 -#: js/piemenus.js:3092 -#: js/musicutils.js:633 -#: js/musicutils.js:811 -#: js/musicutils.js:909 -#.TRANS: minor is a music term related to intervals and mode -msgid "minor" -msgstr "マイナー(短)" +#: js/rubrics.js:528 +#: js/turtledefs.js:133 +#: js/turtledefs.js:235 +#: js/blocks/NumberBlocks.js:981 +#: js/blocks/PitchBlocks.js:1717 +#: js/blocks/PitchBlocks.js:1758 +msgid "number" +msgstr "すうち" -#: js/piemenus.js:3017 -#: js/piemenus.js:3092 -#: js/musicutils.js:663 -#.TRANS: modal scale for music -msgid "aeolian" -msgstr "エオリアンおんかい" - -#: js/piemenus.js:3407 -msgid "Duplicate" -msgstr "複製する" - -#: js/piemenus.js:3408 -#: js/turtledefs.js:534 -msgid "Extract" -msgstr "とりだす" - -#: js/piemenus.js:3409 -msgid "Move to trash" -msgstr "すてる" - -#: js/piemenus.js:3410 -#: js/timbre.js:968 -#: js/StringHelper.js:69 -msgid "Close" -msgstr "とじる" - -#: js/piemenus.js:3416 -msgid "Save stack" -msgstr "スタックを ほぞん" - -#: js/piemenus.js:3420 -#: js/toolbar.js:60 -#: js/toolbar.js:120 -#: js/toolbar.js:185 -#: js/toolbar.js:240 -#: js/turtledefs.js:752 -msgid "Help" -msgstr "せつめい" - -#: js/piemenus.js:3762 -msgid "You have chosen key " -msgstr "へんかきごうは" - -#: js/piemenus.js:3766 -msgid " for your pitch preview." -msgstr "のおんかいによってしています。" - -#: js/palette.js:571 -msgid "grid" -msgstr "グリッド" - -#: js/palette.js:577 -#: js/block.js:1540 -#: js/block.js:2343 -#: js/turtledefs.js:126 -#: js/turtledefs.js:228 -#: js/lilypond.js:740 -#: js/lilypond.js:905 -#: js/lilypond.js:949 -#: js/DrumBlocks.js:486 -#: js/RhythmBlocks.js:766 -#: js/VolumeBlocks.js:502 -#: js/phrasemaker.js:823 -msgid "drum" -msgstr "ドラム" - -#: js/palette.js:580 -msgid "effect" -msgstr "こうかおん" - -#: js/palette.js:586 -msgid "sargam" -msgstr "Sargam (インドの ソルファ)" - -#: js/palette.js:589 -#: js/activity.js:1833 -#: js/RhythmBlocks.js:923 -#: js/PitchBlocks.js:442 -#: js/PitchBlocks.js:1748 -#.TRANS: a numeric mapping of the notes in an octave based on the musical mode -msgid "scale degree" -msgstr "おんど" - -#: js/palette.js:592 -#: js/activity.js:1860 -msgid "mode name" -msgstr "おんかい名" - -#: js/palette.js:595 -#: js/activity.js:1839 -msgid "invert mode" -msgstr "ちょうを はんてん させる" - -#: js/palette.js:598 -#: js/activity.js:1836 -msgid "voice name" -msgstr "おんめい" - -#: js/palette.js:601 -#: js/PitchBlocks.js:1181 -msgid "custom pitch" -msgstr "カスタムピッチ" - -#: js/palette.js:605 -#: js/block.js:1456 -#: js/block.js:1575 -#: js/WidgetBlocks.js:218 -#: js/IntervalsBlocks.js:63 -msgid "temperament" -msgstr "おんりつ" - -#: js/palette.js:609 -msgid "accidental" -msgstr "へんかきごう" - -#: js/palette.js:615 -#: js/activity.js:1866 -msgid "interval name" -msgstr "おんていめい" - -#: js/palette.js:633 -#: js/PitchBlocks.js:405 -msgid "pitch converter" -msgstr "おとのたかさをしょうせつ" - -#: js/rubrics.js:522 -#: js/turtledefs.js:119 -#: js/turtledefs.js:221 -#: js/RhythmBlockPaletteBlocks.js:52 -#: js/RhythmBlockPaletteBlocks.js:233 -#: js/ProgramBlocks.js:745 -#: js/rhythmruler.js:1670 -#: js/rhythmruler.js:1677 -#: js/rhythmruler.js:1745 -#: js/rhythmruler.js:1752 -#: js/rhythmruler.js:1830 -#.TRANS: an arrangement of notes based on duration -msgid "rhythm" -msgstr "おんぷ" - -#: js/rubrics.js:523 -#: js/block.js:2339 -#: js/turtledefs.js:121 -#: js/turtledefs.js:223 -#: js/IntervalsBlocks.js:63 -#: js/PitchBlocks.js:1801 -#: js/PitchBlocks.js:1814 -#: js/SensorsBlocks.js:178 -#: js/phrasemaker.js:821 -#: js/musickeyboard.js:1653 -#.TRANS: pitch number -#.TRANS: we specify pitch in terms of a name and an octave. The name can be CDEFGAB or Do Re Mi Fa Sol La Ti. Octave is a number between 1 and 8. -msgid "pitch" -msgstr "おとの たかさ" - -#: js/rubrics.js:524 -#: js/turtledefs.js:123 -#: js/turtledefs.js:225 -msgid "tone" -msgstr "ねいろ" - -#: js/rubrics.js:525 -#: js/lilypond.js:613 -#: js/lilypond.js:912 -#: js/lilypond.js:918 -#: js/lilypond.js:956 -msgid "mouse" -msgstr "ネズミ" - -#: js/rubrics.js:526 -#: js/turtledefs.js:132 -#: js/turtledefs.js:234 -#: js/phrasemaker.js:825 -msgid "pen" -msgstr "ペン" - -#: js/rubrics.js:527 -#: js/turtledefs.js:133 -#: js/turtledefs.js:235 -#: js/NumberBlocks.js:905 -#: js/PitchBlocks.js:1679 -#: js/PitchBlocks.js:1720 -msgid "number" -msgstr "すうち" - -#: js/rubrics.js:528 -#: js/turtledefs.js:127 -#: js/turtledefs.js:229 -msgid "flow" -msgstr "じっこうてじゅん" +#: js/rubrics.js:529 +#: js/turtledefs.js:127 +#: js/turtledefs.js:229 +msgid "flow" +msgstr "じっこうてじゅん" #: js/rubrics.js:530 +#: js/turtledefs.js:128 +#: js/turtledefs.js:230 +#: js/block-verbose.js:1609 +#: js/block-verbose.js:4559 +#: js/block-verbose.js:4577 +#: js/block-verbose.js:4588 +#: js/block.js:1573 +#: js/block.js:4483 +#: js/block.js:4501 +#: js/block.js:4512 +#: js/blocks.js:1018 +#: js/blocks.js:3491 +#: js/blocks.js:3492 +#: js/blocks.js:3717 +#: js/blocks.js:4076 +#: js/blocks.js:4269 +#: js/blocks.js:5432 +#: js/blocks.js:6563 +#: js/macros.js:170 +#: js/macros.js:266 +#: js/macros.js:267 +#: js/macros.js:276 +#: js/macros.js:828 +#: js/palette.js:527 +#: js/palette.js:536 +#: js/palette.js:545 +#: js/palette.js:554 +#: js/palette.js:1129 +#: js/palette.js:1140 +#: js/palette.js:1151 +#: js/palette.js:1162 +#: js/palette.js:1181 +#: js/blocks/ActionBlocks.js:254 +#: js/blocks/ActionBlocks.js:307 +#: js/blocks/ActionBlocks.js:617 +#: js/blocks/ActionBlocks.js:716 +#: js/blocks/ActionBlocks.js:961 +#: js/blocks/ActionBlocks.js:1049 +#: js/blocks/ActionBlocks.js:1322 +#: js/blocks/ActionBlocks.js:1325 +#: js/blocks/ActionBlocks.js:1337 +#: js/blocks/ActionBlocks.js:1404 +#: js/blocks/MeterBlocks.js:715 +#: js/blocks/MeterBlocks.js:768 +#: js/blocks/MeterBlocks.js:831 +#: js/blocks/MeterBlocks.js:892 +#: js/widgets/musickeyboard.js:2986 +#: js/widgets/phrasemaker.js:4913 +#: js/widgets/rhythmruler.js:2319 +#: js/widgets/rhythmruler.js:2326 +#: js/widgets/rhythmruler.js:2511 +#: js/widgets/rhythmruler.js:2518 +msgid "action" +msgstr "アクション" + +#: js/rubrics.js:531 #: js/turtledefs.js:136 #: js/turtledefs.js:238 msgid "sensors" msgstr "センサー" -#: js/rubrics.js:531 +#: js/rubrics.js:532 #: js/turtledefs.js:135 #: js/turtledefs.js:237 -#: js/MediaBlocks.js:930 +#: js/blocks/MediaBlocks.js:930 msgid "media" msgstr "ほかのメディア" -#: js/rubrics.js:532 +#: js/rubrics.js:533 msgid "mice" msgstr "ネズミたちのかんけい" -#: js/macros.js:711 -#: js/musicutils.js:783 -#: js/synthutils.js:181 -#.TRANS: animal sound effect -msgid "duck" -msgstr "あひる" - -#: js/toolbar.js:46 -#: js/toolbar.js:107 +#: js/toolbar.js:48 +#: js/toolbar.js:109 msgid "About Music Blocks" msgstr "ミュージック・ブロックスに ついて" -#: js/toolbar.js:47 -#: js/toolbar.js:108 -#: js/toolbar.js:172 -#: js/toolbar.js:228 +#: js/toolbar.js:49 +#: js/toolbar.js:110 +#: js/toolbar.js:175 +#: js/toolbar.js:231 #: js/turtledefs.js:445 #: js/turtledefs.js:482 -#: js/activity.js:2281 -#: js/activity.js:2289 -#: js/activity.js:2520 -#: js/modewidget.js:77 -#: js/pitchstaircase.js:121 -#: js/phrasemaker.js:302 -#: js/phrasemaker.js:312 -#: js/phrasemaker.js:314 -#: js/phrasemaker.js:3901 -#: js/phrasemaker.js:4061 -#: js/phrasemaker.js:4066 -#: js/phrasemaker.js:4068 -#: js/phrasemaker.js:4183 -#: js/pitchdrummatrix.js:81 -#: js/pitchdrummatrix.js:574 -#: js/pitchdrummatrix.js:576 -#: js/pitchdrummatrix.js:628 -#: js/pitchdrummatrix.js:630 -#: js/pitchdrummatrix.js:645 -#: js/pitchdrummatrix.js:647 -#: js/pitchdrummatrix.js:674 -#: js/pitchdrummatrix.js:676 -#: js/temperament.js:477 -#: js/temperament.js:480 -#: js/temperament.js:540 -#: js/temperament.js:542 -#: js/temperament.js:1835 -#: js/temperament.js:1837 -#: js/temperament.js:1986 -#: js/temperament.js:1988 -#: js/musickeyboard.js:522 -#: js/musickeyboard.js:682 -#: js/musickeyboard.js:684 -#: js/musickeyboard.js:756 -#: js/musickeyboard.js:758 -#: js/rhythmruler.js:298 -#: js/rhythmruler.js:300 -#: js/rhythmruler.js:314 -#: js/rhythmruler.js:316 -#: js/sampler.js:96 -#: js/sampler.js:98 -#: js/sampler.js:229 -#: js/sampler.js:235 -#: js/sampler.js:237 -#: js/tempo.js:84 -#: js/tempo.js:86 -#: js/timbre.js:432 -#: js/timbre.js:434 -#: js/timbre.js:465 -#: js/timbre.js:467 -#: js/timbre.js:746 -#: js/meterwidget.js:80 -#: js/arpeggio.js:90 -#: js/arpeggio.js:547 -#: js/arpeggio.js:549 -#: js/arpeggio.js:644 -#: js/arpeggio.js:646 +#: js/activity.js:2660 +#: js/activity.js:2671 +#: js/activity.js:2902 +#: js/widgets/modewidget.js:77 +#: js/widgets/meterwidget.js:185 +#: js/widgets/pitchdrummatrix.js:147 +#: js/widgets/pitchdrummatrix.js:687 +#: js/widgets/pitchdrummatrix.js:689 +#: js/widgets/pitchdrummatrix.js:741 +#: js/widgets/pitchdrummatrix.js:743 +#: js/widgets/pitchdrummatrix.js:758 +#: js/widgets/pitchdrummatrix.js:760 +#: js/widgets/pitchdrummatrix.js:789 +#: js/widgets/pitchdrummatrix.js:791 +#: js/widgets/pitchstaircase.js:121 +#: js/widgets/temperament.js:610 +#: js/widgets/temperament.js:613 +#: js/widgets/temperament.js:673 +#: js/widgets/temperament.js:675 +#: js/widgets/temperament.js:2017 +#: js/widgets/temperament.js:2019 +#: js/widgets/tempo.js:84 +#: js/widgets/tempo.js:86 +#: js/widgets/timbre.js:432 +#: js/widgets/timbre.js:434 +#: js/widgets/timbre.js:465 +#: js/widgets/timbre.js:467 +#: js/widgets/timbre.js:746 +#: js/widgets/aiwidget.js:647 +#: js/widgets/aiwidget.js:654 +#: js/widgets/aiwidget.js:656 +#: js/widgets/arpeggio.js:90 +#: js/widgets/arpeggio.js:547 +#: js/widgets/arpeggio.js:549 +#: js/widgets/arpeggio.js:644 +#: js/widgets/arpeggio.js:646 +#: js/widgets/musickeyboard.js:676 +#: js/widgets/musickeyboard.js:872 +#: js/widgets/musickeyboard.js:874 +#: js/widgets/musickeyboard.js:953 +#: js/widgets/musickeyboard.js:955 +#: js/widgets/phrasemaker.js:513 +#: js/widgets/phrasemaker.js:523 +#: js/widgets/phrasemaker.js:525 +#: js/widgets/phrasemaker.js:4304 +#: js/widgets/phrasemaker.js:4528 +#: js/widgets/phrasemaker.js:4533 +#: js/widgets/phrasemaker.js:4535 +#: js/widgets/phrasemaker.js:4650 +#: js/widgets/rhythmruler.js:637 +#: js/widgets/rhythmruler.js:639 +#: js/widgets/rhythmruler.js:653 +#: js/widgets/rhythmruler.js:655 +#: js/widgets/sampler.js:162 +#: js/widgets/sampler.js:164 +#: js/widgets/sampler.js:363 msgid "Play" msgstr "じっこう" -#: js/toolbar.js:48 -#: js/toolbar.js:109 -#: js/toolbar.js:173 -#: js/toolbar.js:229 +#: js/toolbar.js:50 +#: js/toolbar.js:111 +#: js/toolbar.js:176 +#: js/toolbar.js:232 #: js/turtledefs.js:451 #: js/turtledefs.js:488 -#: js/activity.js:2297 -#: js/modewidget.js:99 -#: js/modewidget.js:101 -#: js/phrasemaker.js:323 -#: js/phrasemaker.js:325 -#: js/pitchdrummatrix.js:561 -#: js/pitchdrummatrix.js:563 -#: js/temperament.js:1820 -#: js/temperament.js:1822 -#: js/meterwidget.js:101 -#: js/meterwidget.js:103 -#: js/arpeggio.js:534 -#: js/arpeggio.js:536 +#: js/activity.js:2679 +#: js/widgets/modewidget.js:99 +#: js/widgets/modewidget.js:101 +#: js/widgets/meterwidget.js:206 +#: js/widgets/meterwidget.js:208 +#: js/widgets/pitchdrummatrix.js:674 +#: js/widgets/pitchdrummatrix.js:676 +#: js/widgets/temperament.js:2002 +#: js/widgets/temperament.js:2004 +#: js/widgets/arpeggio.js:534 +#: js/widgets/arpeggio.js:536 +#: js/widgets/phrasemaker.js:534 +#: js/widgets/phrasemaker.js:536 msgid "Stop" msgstr "ていし" -#: js/toolbar.js:49 -#: js/toolbar.js:110 -#: js/toolbar.js:174 -#: js/toolbar.js:230 +#: js/toolbar.js:51 +#: js/toolbar.js:112 +#: js/toolbar.js:177 +#: js/toolbar.js:233 #: js/turtledefs.js:498 msgid "Record" msgstr "ろくおん" -#: js/toolbar.js:50 -#: js/toolbar.js:51 +#: js/toolbar.js:52 +#: js/toolbar.js:53 msgid "Full screen" msgstr "フルスクリーン" -#: js/toolbar.js:52 -#: js/toolbar.js:112 -#: js/toolbar.js:177 -#: js/toolbar.js:232 +#: js/toolbar.js:54 +#: js/toolbar.js:115 +#: js/toolbar.js:180 +#: js/toolbar.js:236 #: js/turtledefs.js:504 msgid "Toggle Fullscreen" msgstr "" -#: js/toolbar.js:53 -#: js/toolbar.js:113 -#: js/toolbar.js:178 -#: js/toolbar.js:233 +#: js/toolbar.js:55 +#: js/toolbar.js:116 +#: js/toolbar.js:181 +#: js/toolbar.js:237 #: js/turtledefs.js:510 -#: js/StringHelper.js:33 +#: planet/js/StringHelper.js:33 msgid "New project" msgstr "あたらしい プロジェクト" -#: js/toolbar.js:54 -#: js/toolbar.js:114 -#: js/toolbar.js:179 -#: js/toolbar.js:234 +#: js/toolbar.js:56 +#: js/toolbar.js:117 +#: js/toolbar.js:182 +#: js/toolbar.js:238 #: js/turtledefs.js:516 msgid "Load project from file" msgstr "プロジェクトを よみこむ" -#: js/toolbar.js:55 -#: js/toolbar.js:115 -#: js/toolbar.js:116 -#: js/toolbar.js:180 -#: js/toolbar.js:235 +#: js/toolbar.js:57 +#: js/toolbar.js:118 +#: js/toolbar.js:119 +#: js/toolbar.js:183 +#: js/toolbar.js:239 #: js/turtledefs.js:541 #: js/turtledefs.js:550 #: js/turtledefs.js:571 msgid "Save project" msgstr "プロジェクトを ほぞん" -#: js/toolbar.js:56 -#: js/toolbar.js:75 +#: js/toolbar.js:58 #: js/toolbar.js:77 -#: js/toolbar.js:135 -#: js/toolbar.js:144 -#: js/toolbar.js:146 -#: js/toolbar.js:181 -#: js/toolbar.js:199 -#: js/toolbar.js:201 -#: js/toolbar.js:236 -#: js/toolbar.js:254 -#: js/toolbar.js:256 +#: js/toolbar.js:79 +#: js/toolbar.js:138 +#: js/toolbar.js:147 +#: js/toolbar.js:149 +#: js/toolbar.js:184 +#: js/toolbar.js:202 +#: js/toolbar.js:204 +#: js/toolbar.js:240 +#: js/toolbar.js:258 +#: js/toolbar.js:260 msgid "Save project as HTML" msgstr "HTMLをほぞん" -#: js/toolbar.js:57 -#: js/toolbar.js:117 -#: js/toolbar.js:182 -#: js/toolbar.js:237 +#: js/toolbar.js:59 +#: js/toolbar.js:120 +#: js/toolbar.js:185 +#: js/toolbar.js:241 msgid "Find and share projects" msgstr "みんなの さくひん" -#: js/toolbar.js:58 -#: js/toolbar.js:118 -#: js/toolbar.js:183 -#: js/toolbar.js:238 +#: js/toolbar.js:60 +#: js/toolbar.js:121 +#: js/toolbar.js:186 +#: js/toolbar.js:242 msgid "Offline. Sharing is unavailable" msgstr "オフライン。シェア きのうが つかえません" -#: js/toolbar.js:59 -#: js/toolbar.js:119 -#: js/toolbar.js:184 -#: js/toolbar.js:239 +#: js/toolbar.js:61 +#: js/toolbar.js:122 +#: js/toolbar.js:187 +#: js/toolbar.js:243 msgid "Auxiliary menu" msgstr "サブメニュー" -#: js/toolbar.js:61 -#: js/toolbar.js:121 -#: js/toolbar.js:186 -#: js/toolbar.js:241 +#: js/toolbar.js:62 +#: js/toolbar.js:123 +#: js/toolbar.js:188 +#: js/toolbar.js:244 +#: js/turtledefs.js:752 +#: js/piemenus.js:3423 +msgid "Help" +msgstr "せつめい" + +#: js/toolbar.js:63 +#: js/toolbar.js:124 +#: js/toolbar.js:189 +#: js/toolbar.js:245 msgid "Run slowly" msgstr "ゆっくり じっこう する" -#: js/toolbar.js:62 -#: js/toolbar.js:122 -#: js/toolbar.js:187 -#: js/toolbar.js:242 +#: js/toolbar.js:64 +#: js/toolbar.js:125 +#: js/toolbar.js:190 +#: js/toolbar.js:246 #: js/turtledefs.js:682 msgid "Run step by step" msgstr "ブロックを ひとつずつ じっこうする" -#: js/toolbar.js:63 -#: js/toolbar.js:123 -#: js/toolbar.js:188 -#: js/toolbar.js:243 +#: js/toolbar.js:65 +#: js/toolbar.js:126 +#: js/toolbar.js:191 +#: js/toolbar.js:247 #: js/turtledefs.js:689 msgid "Display statistics" msgstr "とうけいを ひょうじ する" -#: js/toolbar.js:64 -#: js/toolbar.js:124 -#: js/toolbar.js:189 -#: js/toolbar.js:244 +#: js/toolbar.js:66 +#: js/toolbar.js:127 +#: js/toolbar.js:192 +#: js/toolbar.js:248 msgid "Load plugin" msgstr "プラグインをよみこむ" -#: js/toolbar.js:65 -#: js/toolbar.js:125 -#: js/toolbar.js:190 -#: js/toolbar.js:245 +#: js/toolbar.js:67 +#: js/toolbar.js:128 +#: js/toolbar.js:193 +#: js/toolbar.js:249 #: js/turtledefs.js:696 msgid "Delete plugin" msgstr "プラグインを けす" -#: js/toolbar.js:66 -#: js/toolbar.js:126 -#: js/toolbar.js:191 -#: js/toolbar.js:246 +#: js/toolbar.js:68 +#: js/toolbar.js:129 +#: js/toolbar.js:194 +#: js/toolbar.js:250 msgid "Enable horizontal scrolling" msgstr "じゆうな ほうこうに スクロール" -#: js/toolbar.js:67 -#: js/toolbar.js:127 -#: js/toolbar.js:192 -#: js/toolbar.js:247 +#: js/toolbar.js:69 +#: js/toolbar.js:130 +#: js/toolbar.js:195 +#: js/toolbar.js:251 msgid "Disable horizontal scrolling" msgstr "たて ほうこうに スクロール" -#: js/toolbar.js:68 -#: js/toolbar.js:128 -#: js/toolbar.js:193 -#: js/toolbar.js:248 -#: js/LocalCard.js:54 -#: js/StringHelper.js:71 +#: js/toolbar.js:70 +#: js/toolbar.js:131 +#: js/toolbar.js:196 +#: js/toolbar.js:252 +#: planet/js/LocalCard.js:54 +#: planet/js/StringHelper.js:71 msgid "Merge with current project" msgstr "プロジェクトを くみあわせる" -#: js/toolbar.js:69 -#: js/toolbar.js:129 +#: js/toolbar.js:71 +#: js/toolbar.js:132 msgid "Set Pitch Preview" msgstr "へんかきごうをせってい" -#: js/toolbar.js:70 -#: js/toolbar.js:130 -#: js/toolbar.js:194 -#: js/toolbar.js:249 -msgid "Toggle JavaScript Editor" -msgstr "JavaScriptへんしゅうをオン/オフ" +#: js/toolbar.js:72 +#: js/toolbar.js:133 +#: js/toolbar.js:197 +#: js/toolbar.js:253 +msgid "JavaScript Editor" +msgstr "" -#: js/toolbar.js:71 -#: js/toolbar.js:131 -#: js/toolbar.js:195 -#: js/toolbar.js:250 +#: js/toolbar.js:73 +#: js/toolbar.js:134 +#: js/toolbar.js:198 +#: js/toolbar.js:254 #: js/turtledefs.js:724 msgid "Restore" msgstr "すてた ブロックを もどす" -#: js/toolbar.js:72 -#: js/toolbar.js:132 -#: js/toolbar.js:196 -#: js/toolbar.js:251 +#: js/toolbar.js:74 +#: js/toolbar.js:135 +#: js/toolbar.js:199 +#: js/toolbar.js:255 msgid "Switch to beginner mode" msgstr "かんたん モードに する" -#: js/toolbar.js:73 -#: js/toolbar.js:133 -#: js/toolbar.js:197 -#: js/toolbar.js:252 +#: js/toolbar.js:75 +#: js/toolbar.js:136 +#: js/toolbar.js:200 +#: js/toolbar.js:256 msgid "Switch to advanced mode" msgstr "はってん モードに する" -#: js/toolbar.js:74 -#: js/toolbar.js:134 -#: js/toolbar.js:143 -#: js/toolbar.js:198 -#: js/toolbar.js:253 +#: js/toolbar.js:76 +#: js/toolbar.js:137 +#: js/toolbar.js:146 +#: js/toolbar.js:201 +#: js/toolbar.js:257 #: js/turtledefs.js:738 msgid "Select language" msgstr "げんごを えらぶ" -#: js/toolbar.js:76 -#: js/toolbar.js:79 -#: js/toolbar.js:137 +#: js/toolbar.js:78 +#: js/toolbar.js:81 +#: js/toolbar.js:140 #: js/turtledefs.js:579 msgid "Save mouse artwork as PNG" msgstr "PNGでほぞん" -#: js/toolbar.js:78 -#: js/toolbar.js:136 +#: js/toolbar.js:80 +#: js/toolbar.js:139 #: js/turtledefs.js:575 msgid "Save mouse artwork as SVG" msgstr "SVGでほぞん" -#: js/toolbar.js:80 -#: js/toolbar.js:138 +#: js/toolbar.js:82 +#: js/toolbar.js:141 #: js/turtledefs.js:583 msgid "Save music as WAV" msgstr "WAVでほぞん" -#: js/toolbar.js:81 -#: js/toolbar.js:139 +#: js/toolbar.js:83 +#: js/toolbar.js:142 #: js/turtledefs.js:587 msgid "Save sheet music as ABC" msgstr "ABCのフォーマットでほぞん" -#: js/toolbar.js:82 -#: js/toolbar.js:140 +#: js/toolbar.js:84 +#: js/toolbar.js:143 #: js/turtledefs.js:591 msgid "Save sheet music as Lilypond" msgstr "がくふ (Lilypondの フォーマット)で ほぞん" -#: js/toolbar.js:83 +#: js/toolbar.js:85 msgid "Save sheet music as MusicXML" msgstr "プロジェクトを MusicXMLがくふで ほぞん" -#: js/toolbar.js:84 -#: js/toolbar.js:141 -#: js/toolbar.js:149 -#: js/toolbar.js:204 -#: js/toolbar.js:259 +#: js/toolbar.js:86 +#: js/toolbar.js:144 +#: js/toolbar.js:152 +#: js/toolbar.js:207 +#: js/toolbar.js:263 #: js/turtledefs.js:562 #: js/turtledefs.js:595 msgid "Save block artwork as SVG" msgstr "ブロックの アートを ほぞん" -#: js/toolbar.js:85 -#: js/toolbar.js:142 -#: js/toolbar.js:150 -#: js/toolbar.js:205 -#: js/toolbar.js:260 +#: js/toolbar.js:87 +#: js/toolbar.js:145 +#: js/toolbar.js:153 +#: js/toolbar.js:208 +#: js/toolbar.js:264 +#: js/turtles.js:911 msgid "Confirm" msgstr "さくせいする" -#: js/toolbar.js:86 -#: js/toolbar.js:151 -#: js/toolbar.js:206 -#: js/toolbar.js:261 +#: js/toolbar.js:88 +#: js/toolbar.js:154 +#: js/toolbar.js:209 +#: js/toolbar.js:265 msgid "English (United States)" msgstr "" -#: js/toolbar.js:87 -#: js/toolbar.js:152 -#: js/toolbar.js:207 -#: js/toolbar.js:262 +#: js/toolbar.js:89 +#: js/toolbar.js:155 +#: js/toolbar.js:210 +#: js/toolbar.js:266 msgid "English (United Kingdom)" msgstr "" -#: js/toolbar.js:88 -#: js/toolbar.js:153 -#: js/toolbar.js:208 -#: js/toolbar.js:263 -msgid "日本語" -msgstr "" +#: js/toolbar.js:90 +#: js/toolbar.js:156 +#: js/toolbar.js:211 +#: js/toolbar.js:267 +msgid "日本語" +msgstr "" + +#: js/toolbar.js:91 +msgid "한국어" +msgstr "" + +#: js/toolbar.js:92 +#: js/toolbar.js:158 +#: js/toolbar.js:213 +#: js/toolbar.js:269 +msgid "español" +msgstr "" + +#: js/toolbar.js:93 +#: js/toolbar.js:159 +#: js/toolbar.js:214 +#: js/toolbar.js:270 +msgid "português" +msgstr "" + +#: js/toolbar.js:94 +#: js/toolbar.js:160 +#: js/toolbar.js:215 +#: js/toolbar.js:271 +msgid "にほんご" +msgstr "" + +#: js/toolbar.js:95 +#: js/toolbar.js:161 +#: js/toolbar.js:216 +#: js/toolbar.js:272 +msgid "中文" +msgstr "" + +#: js/toolbar.js:96 +#: js/toolbar.js:162 +#: js/toolbar.js:217 +#: js/toolbar.js:273 +msgid "ภาษาไทย" +msgstr "" + +#: js/toolbar.js:97 +#: js/toolbar.js:163 +#: js/toolbar.js:218 +#: js/toolbar.js:274 +msgid "aymara" +msgstr "" + +#: js/toolbar.js:98 +#: js/toolbar.js:164 +#: js/toolbar.js:219 +#: js/toolbar.js:275 +msgid "quechua" +msgstr "" + +#: js/toolbar.js:99 +#: js/toolbar.js:165 +#: js/toolbar.js:220 +#: js/toolbar.js:276 +msgid "guarani" +msgstr "" + +#: js/toolbar.js:100 +#: js/toolbar.js:166 +#: js/toolbar.js:221 +#: js/toolbar.js:277 +msgid "हिंदी" +msgstr "" + +#: js/toolbar.js:101 +#: js/toolbar.js:168 +#: js/toolbar.js:222 +#: js/toolbar.js:279 +msgid "igbo" +msgstr "" + +#: js/toolbar.js:102 +#: js/toolbar.js:169 +#: js/toolbar.js:223 +#: js/toolbar.js:280 +msgid "عربى" +msgstr "" + +#: js/toolbar.js:103 +#: js/toolbar.js:167 +#: js/toolbar.js:224 +#: js/toolbar.js:278 +msgid "తెలుగు" +msgstr "" + +#: js/toolbar.js:104 +#: js/toolbar.js:170 +#: js/toolbar.js:225 +#: js/toolbar.js:281 +msgid "עִברִית" +msgstr "" + +#: js/toolbar.js:113 +#: js/toolbar.js:114 +#: js/toolbar.js:178 +#: js/toolbar.js:179 +#: js/toolbar.js:234 +#: js/toolbar.js:235 +msgid "Full Screen" +msgstr "" + +#: js/toolbar.js:148 +#: js/toolbar.js:151 +#: js/toolbar.js:203 +#: js/toolbar.js:206 +#: js/toolbar.js:259 +#: js/toolbar.js:262 +#: js/turtledefs.js:558 +msgid "Save turtle artwork as PNG" +msgstr "アートを PNGで ほぞん" + +#: js/toolbar.js:150 +#: js/toolbar.js:205 +#: js/toolbar.js:261 +#: js/turtledefs.js:554 +msgid "Save turtle artwork as SVG" +msgstr "アートを SVGで ほぞん" + +#: js/toolbar.js:157 +#: js/toolbar.js:212 +#: js/toolbar.js:268 +msgid "한국인" +msgstr "" + +#: js/toolbar.js:174 +#: js/toolbar.js:230 +msgid "About Turtle Blocks" +msgstr "タートル・ブロックスについて" + +#: js/toolbar.js:446 +#: js/toolbar.js:457 +#: js/toolbar.js:497 +msgid "Turtle Wrap Off" +msgstr "" + +#: js/toolbar.js:466 +#: js/toolbar.js:506 +msgid "Turtle Wrap On" +msgstr "" + +#: js/turtle-painter.js:1192 +#: js/turtle-painter.js:1193 +#: js/turtles.js:118 +#: js/block-verbose.js:1623 +#: js/block.js:1587 +#: js/lilypond.js:749 +#: js/lilypond.js:913 +#: js/lilypond.js:951 +#: js/logo.js:1184 +#: js/blocks/ActionBlocks.js:1223 +#: js/blocks/ProgramBlocks.js:1267 +msgid "start" +msgstr "スタート" + +#: js/turtledefs.js:40 +#.TRANS: put the URL to the guide here, e.g., https://github.com/sugarlabs/turtleblocksjs/tree/master/guide/README.md +msgid "guide url" +msgstr "https://github.com/sugarlabs/musicblocks/tree/master/guide-ja/music_blocks_operation_manual.pdf" + +#: js/turtledefs.js:85 +#: js/turtledefs.js:437 +msgid "Turtle Blocks is a Logo-inspired turtle that draws colorful pictures with snap-together visual-programming blocks." +msgstr "" + +#: js/turtledefs.js:118 +#: js/turtledefs.js:220 +msgid "search" +msgstr "けんさく" + +#: js/turtledefs.js:120 +#: js/turtledefs.js:222 +#: js/blocks/MeterBlocks.js:1343 +#: js/blocks/WidgetBlocks.js:522 +#.TRANS: musical meter (time signature), e.g., 4:4 +msgid "meter" +msgstr "ひょうし" + +#: js/turtledefs.js:122 +#: js/turtledefs.js:224 +msgid "intervals" +msgstr "おんてい" + +#: js/turtledefs.js:124 +#: js/turtledefs.js:226 +msgid "ornament" +msgstr "そうしょく" + +#: js/turtledefs.js:125 +#: js/turtledefs.js:227 +#: js/blocks/VolumeBlocks.js:362 +#: js/blocks/VolumeBlocks.js:502 +#: js/blocks/VolumeBlocks.js:545 +msgid "volume" +msgstr "おんりょう" + +#: js/turtledefs.js:126 +#: js/turtledefs.js:228 +#: js/block-verbose.js:1700 +#: js/block-verbose.js:2626 +#: js/block.js:1664 +#: js/block.js:2554 +#: js/lilypond.js:732 +#: js/lilypond.js:897 +#: js/lilypond.js:941 +#: js/palette.js:577 +#: js/blocks/RhythmBlocks.js:766 +#: js/blocks/DrumBlocks.js:477 +#: js/blocks/VolumeBlocks.js:502 +#: js/widgets/phrasemaker.js:1038 +msgid "drum" +msgstr "ドラム" + +#: js/turtledefs.js:129 +#: js/turtledefs.js:231 +msgid "boxes" +msgstr "かずの はこ" + +#: js/turtledefs.js:130 +#: js/turtledefs.js:232 +msgid "widgets" +msgstr "ツール" + +#: js/turtledefs.js:131 +#: js/turtledefs.js:233 +#: js/widgets/phrasemaker.js:1039 +msgid "graphics" +msgstr "ネズミの うごき" + +#: js/turtledefs.js:134 +#: js/turtledefs.js:236 +msgid "boolean" +msgstr "くらべる" + +#: js/turtledefs.js:137 +#: js/turtledefs.js:239 +#: js/blocks/HeapBlocks.js:59 +#: js/widgets/status.js:147 +msgid "heap" +msgstr "ヒープ" + +#: js/turtledefs.js:138 +#: js/turtledefs.js:240 +#: js/blocks/DictBlocks.js:142 +#: js/blocks/ProgramBlocks.js:495 +msgid "dictionary" +msgstr "じしょ" + +#: js/turtledefs.js:139 +#: js/turtledefs.js:241 +msgid "ensemble" +msgstr "がっそう" + +#: js/turtledefs.js:140 +#: js/turtledefs.js:242 +msgid "extras" +msgstr "そのた" + +#: js/turtledefs.js:142 +#: js/turtledefs.js:244 +#.TRANS: program as in computer program +#.TRANS: program as in computer program +msgid "program" +msgstr "プログラム" + +#: js/turtledefs.js:143 +#: js/turtledefs.js:245 +msgid "my blocks" +msgstr "わたしの ブロック" + +#: js/turtledefs.js:185 +#: js/turtledefs.js:281 +msgid "artwork" +msgstr "アート" + +#: js/turtledefs.js:185 +#: js/turtledefs.js:281 +msgid "logic" +msgstr "ろんり" + +#: js/turtledefs.js:185 +#: js/turtledefs.js:281 +msgid "music" +msgstr "おんがく" + +#: js/turtledefs.js:187 +#: js/turtledefs.js:463 +msgid "Music Blocks is a collection of tools for exploring fundamental musical concepts in a fun way." +msgstr "おんがくと さんすうと プログラミングを むすびつけ、 ふかく たのしむことができる ツール。 それが、 ミュージック・ブロックスだ。" + +#: js/turtledefs.js:436 +msgid "Welcome to Turtle Blocks" +msgstr "タートル・ブロックへようこそ" + +#: js/turtledefs.js:438 +#: js/turtledefs.js:465 +#: js/turtledefs.js:774 +#: js/turtledefs.js:805 +msgid "The current version is" +msgstr "タートル・ブロックスの さいしんバージョンは" + +#: js/turtledefs.js:446 +#: js/turtledefs.js:483 +msgid "Click the run button to run the project in fast mode." +msgstr "クリックをすると、 ふつうの スピードで プログラムを じっこうすることが できる。" + +#: js/turtledefs.js:452 +msgid "Stop the turtle." +msgstr "タートルをとめる" + +#: js/turtledefs.js:454 +#: js/turtledefs.js:491 +msgid "You can also type Alt-S to stop." +msgstr "じっこう している プログラムを とめる。 プログラムは、 このボタンを おすかわりに、 キーボードで 「Altキーと Sキーの どうじおし」でも とめることが できる。" + +#: js/turtledefs.js:462 +#: js/widgets/help.js:333 +msgid "Welcome to Music Blocks" +msgstr "ミュージック・ブロックスへ ようこそ" + +#: js/turtledefs.js:472 +#: js/widgets/help.js:334 +msgid "Meet Mr. Mouse!" +msgstr "ミスター・マウスに あおう!" + +#: js/turtledefs.js:473 +msgid "Mr Mouse is our Music Blocks conductor." +msgstr "ミスター・マウスは、 ミュージック・ブロックスの しきしゃ。" + +#: js/turtledefs.js:475 +msgid "Mr Mouse encourages you to explore Music Blocks." +msgstr "ミスター・マウスと いっしょに、 ミュージック・ブロックスの せかいを たんきゅうしよう。" + +#: js/turtledefs.js:477 +msgid "Let us start our tour!" +msgstr " では、 ツアーを はじめよう。" + +#: js/turtledefs.js:489 +msgid "Stop the music (and the mice)." +msgstr "じっこうしているプログラムを止める。" + +#: js/turtledefs.js:499 +msgid "Record your project as video." +msgstr "さいせい されている ビデオを ろくおんする" + +#: js/turtledefs.js:505 +msgid "Toggle Fullscreen mode." +msgstr "" + +#: js/turtledefs.js:511 +msgid "Initialize a new project." +msgstr "あたらしい プロジェクトを つくる。" + +#: js/turtledefs.js:517 +msgid "You can also load projects from the file system." +msgstr "コンピューターに ほぞん してある ファイルから、 ミュージック・ブロックスの プロジェクトを よみこんで ひらく。" + +#: js/turtledefs.js:522 +#: planet/js/StringHelper.js:46 +msgid "Delete" +msgstr "けす" + +#: js/turtledefs.js:523 +msgid "To delete a block, just right-click on it, then you will be able to see the delete option" +msgstr "" + +#: js/turtledefs.js:528 +#: js/activity.js:2649 +#: planet/js/LocalCard.js:31 +msgid "Copy" +msgstr "コピー" + +#: js/turtledefs.js:529 +msgid "To copy a block, just right-click on it, then you will be able to see the copy option" +msgstr "" + +#: js/turtledefs.js:534 +#: js/piemenus.js:3411 +msgid "Extract" +msgstr "とりだす" + +#: js/turtledefs.js:535 +msgid "To extract a block, just right-click on it, then you will be able to see the extract option" +msgstr "" + +#: js/turtledefs.js:542 +#: js/turtledefs.js:552 +#: js/turtledefs.js:573 +msgid "Save your project to a file." +msgstr "げんざい ひらいている プロジェクトを ほぞんする。" + +#: js/turtledefs.js:549 +#: js/turtledefs.js:570 +msgid "save" +msgstr "ほぞん する" + +#: js/turtledefs.js:556 +#: js/turtledefs.js:577 +msgid "Save graphics from your project to as SVG." +msgstr "プロジェクトの グラフィックを SVGで ほぞん" + +#: js/turtledefs.js:560 +#: js/turtledefs.js:581 +msgid "Save graphics from your project as PNG." +msgstr "プロジェクトの グラフィックを PNGで ほぞん" + +#: js/turtledefs.js:564 +#: js/turtledefs.js:597 +msgid "Save block artwork as an SVG file." +msgstr "ブロックの グラフィックを SVGで ほぞん" + +#: js/turtledefs.js:585 +msgid "Save audio from your project as WAV." +msgstr "プロジェクトの おとを WAVで ほぞん" + +#: js/turtledefs.js:589 +msgid "Save your project to as an ABC file." +msgstr "プロジェクトを ABCがくふで ほぞん" + +#: js/turtledefs.js:593 +msgid "Save your project to as a Lilypond file." +msgstr "さくせいした おんがくを、 コンピューターじょうで がくふ をえがく ファイル(Lilypondファイル)に かえて ほぞんする。" + +#: js/turtledefs.js:604 +msgid "Load samples from server" +msgstr "みんなの さくひん" + +#: js/turtledefs.js:605 +msgid "This button opens a viewer for loading example projects." +msgstr "インターネットの「プラネット(わくせい)」というページから、ほかの人が作ったプロジェクトを選んで、よみこむことができる。" + +#: js/turtledefs.js:611 +msgid "Palette buttons" +msgstr "パレットボタン" + +#: js/turtledefs.js:612 +msgid "This toolbar contains the palette buttons including Rhythm Pitch Tone Action and more." +msgstr "ミュージック・ブロックスのひだりがわには、 プログラミングにつかう さまざまな ブロックを グループわけした 「パレットボタン」がある。" + +#: js/turtledefs.js:614 +msgid "Click to show the palettes of blocks and drag blocks from the palettes onto the canvas to use them." +msgstr " それぞれの パレットボタンを クリックし、 「おんぷ」「アクション」「ペン」などから すきな ブロックをえらんで、 カンバスじょうに ドラッグして おいてみよう。" + +#: js/turtledefs.js:620 +msgid "Cartesian/Polar" +msgstr "ちゅうしんのかくどとほうがん(ざひょう)をひょうじ" + +#: js/turtledefs.js:621 +msgid "Show or hide a coordinate grid." +msgstr "カンバスじょうに ほうがん(ざひょう)や ちゅうしんの かくどを ひょうじしたり、かくしたりできる。" + +#: js/turtledefs.js:626 +#: js/turtles.js:902 +msgid "Clean" +msgstr "ネズミと ペンを もどす" + +#: js/turtledefs.js:627 +msgid "Clear the screen and return the mice to their initial positions." +msgstr "ネズミを もとのいちに もどし、 ペンで えがいた せんを すべて けす。" + +#: js/turtledefs.js:632 +#: js/turtles.js:955 +msgid "Collapse" +msgstr "カンバスを しゅくしょう" + +#: js/turtledefs.js:633 +msgid "Collapse the graphics window." +msgstr "ネズミが いどうしたり、 ペンで せんを えがいたり できる 「カンバス」の ひょうじサイズを しゅくしょう/かくだいする。
カンバスを しゅくしょう したばあいは、 プログラムを ふつうの そくどで じっこう しても、 ブロックが かくれない。 ふつうの じっこうそくどで プログラムの どうさ かくにんを したいときなどに べんりだ。" + +#: js/turtledefs.js:638 +#: js/activity.js:5684 +msgid "Home" +msgstr "ホーム" + +#: js/turtledefs.js:639 +msgid "Return all blocks to the center of the screen." +msgstr "すべての ブロックを、 カンバスの まんなかに はいち する。" + +#: js/turtledefs.js:644 +msgid "Show/hide blocks" +msgstr "ブロックをひょうじする/かくす" + +#: js/turtledefs.js:645 +msgid "Hide or show the blocks and the palettes." +msgstr "クリックすると、 パレットボタンと プログラムの ブロックを がめんじょうに ひょうじさせたり、かくしたりすることができる。" + +#: js/turtledefs.js:650 +msgid "Expand/collapse collapsable blocks" +msgstr "ブロックをひろげる/おりたたむ" + +#: js/turtledefs.js:651 +msgid "Expand or collapse start and action stacks." +msgstr "クリックすると、 「スタート」と「アクション」に つかわれている ブロックを、ひろげて ひょうじしたり、おりたたんで かくしたりすることができる。" + +#: js/turtledefs.js:658 +#: js/activity.js:5704 +msgid "Decrease block size" +msgstr "ブロックのひょうじを ちいさくする" + +#: js/turtledefs.js:659 +msgid "Decrease the size of the blocks." +msgstr "がめんに ひょうじされる ブロックの サイズを ちいさくする。" + +#: js/turtledefs.js:664 +#: js/activity.js:5710 +msgid "Increase block size" +msgstr "ブロックのひょうじを おおきくする" + +#: js/turtledefs.js:665 +msgid "Increase the size of the blocks." +msgstr "がめんに ひょうじされる ブロックの サイズを おおきくする。" + +#: js/turtledefs.js:670 +msgid "Expand/collapse option toolbar" +msgstr "オプションツールバーをひょうじ" + +#: js/turtledefs.js:671 +msgid "Click this button to expand or collapse the auxillary toolbar." +msgstr "このボタンを クリックすると 「サブメニュー」を ひらいたりおりたたんだり することが できる。" + +#: js/turtledefs.js:676 +msgid "Run slow" +msgstr "ゆっくりじっこうする" + +#: js/turtledefs.js:677 +msgid "Click to run the project in slow mode." +msgstr "クリックをすると、 ゆっくりとした スピードで プログラムを じっこうすることが できる。" + +#: js/turtledefs.js:683 +msgid "Click to run the project step by step." +msgstr "クリックをすると、 とてもゆっくり、 ブロックを 1つずつ じっこうする。 プログラムが うまく はたらかず、 どのブロックが げんいん なのかを しらべたいとき などに べんりだ。" + +#: js/turtledefs.js:690 +msgid "Display statistics about your Music project." +msgstr "プロジェクトに ふくまれている ブロックの しゅるい、 わりあい など、 とうけいてきな じょうほうを ひょうじする。" + +#: js/turtledefs.js:697 +msgid "Delete a selected plugin." +msgstr "せんたく した プラグインを けす。" + +#: js/turtledefs.js:704 +msgid "Enable scrolling" +msgstr "じゆうなほうこうに/たてほうこうにスクロール" + +#: js/turtledefs.js:705 +msgid "You can scroll the blocks on the canvas." +msgstr "カンバスじょうを ドラッグそうさ したときに、 がめんを スクロール させることができる ほうこうを じょうげ だけ と じょうげさゆう に かえる。" + +#: js/turtledefs.js:714 +msgid "Wrap Turtle" +msgstr "アートを つつむ" + +#: js/turtledefs.js:715 +msgid "Turn Turtle wrapping On or Off." +msgstr "アートつつむか・つつまない" + +#: js/turtledefs.js:725 +msgid "Restore blocks from the trash." +msgstr "ごみばこに すててしまった ブロックを とりだして もどす。 ふくすうの ブロックを すててある ときは あたらしい じゅんに、 ごみばこが からに なるまで ブロックを ひろいもどすことが できる。" + +#: js/turtledefs.js:732 +msgid "Switch mode" +msgstr "モードを せってい" + +#: js/turtledefs.js:733 +msgid "Switch between beginner and advance modes." +msgstr "ミュージック・ブロックスを かんたんモード/はってんモード に きりかえる。 モードによって つかえる きのうや ブロックの しゅるいが かわる。" -#: js/toolbar.js:89 -msgid "한국어" -msgstr "" +#: js/turtledefs.js:739 +msgid "Select your language preference." +msgstr "ブロックの なまえなどに ひょうじ される げんごを えらぶ。" -#: js/toolbar.js:90 -#: js/toolbar.js:155 -#: js/toolbar.js:210 -#: js/toolbar.js:265 -msgid "español" -msgstr "" +#: js/turtledefs.js:745 +msgid "Keyboard shortcuts" +msgstr "キーボードのショートカット" -#: js/toolbar.js:91 -#: js/toolbar.js:156 -#: js/toolbar.js:211 -#: js/toolbar.js:266 -msgid "português" -msgstr "" +#: js/turtledefs.js:746 +msgid "You can type d to create a do block and r to create a re block etc." +msgstr "キーボードの ショートカット

キーボードを つかうと、 パレットボタンから ブロックを ドラッグして はいち するだけでなく、 ボタンを おすだけで ちょくせつ ブロックを おくことが できる。

★ショートカットキー
d …… 「ド」(4ぶおんぷ、4オクターヴ)
r …… 「レ」(4ぶおんぷ、4オクターヴ)
m …… 「ミ」(4ぶおんぷ、4オクターヴ)
f …… 「ファ」(4ぶおんぷ、4オクターヴ)
s …… 「ソ」(4ぶおんぷ、4オクターヴ)
l …… 「ラ」(4ぶおんぷ、4オクターヴ)
t …… 「シ」(4ぶおんぷ、4オクターヴ)" -#: js/toolbar.js:92 -#: js/toolbar.js:157 -#: js/toolbar.js:212 -#: js/toolbar.js:267 -msgid "にほんご" -msgstr "" +#: js/turtledefs.js:753 +msgid "Show these messages." +msgstr "ミスター・マウスによる、 ミュージック・ブロックスの せつめいを ひょうじする。" -#: js/toolbar.js:93 -#: js/toolbar.js:158 -#: js/toolbar.js:213 -#: js/toolbar.js:268 -msgid "中文" -msgstr "" +#: js/turtledefs.js:759 +#: js/turtledefs.js:790 +#: js/widgets/help.js:335 +msgid "Guide" +msgstr "もっとくわしく しるには" -#: js/toolbar.js:94 -#: js/toolbar.js:159 -#: js/toolbar.js:214 -#: js/toolbar.js:269 -msgid "ภาษาไทย" -msgstr "" +#: js/turtledefs.js:760 +msgid "A detailed guide to Turtle Blocks is available." +msgstr "インターネットから、 タートル・ブロックスの さらに くわしい ガイドページを みることが できる。 つぎの リンクさきを ひらいて みよう。" -#: js/toolbar.js:95 -#: js/toolbar.js:160 -#: js/toolbar.js:215 -#: js/toolbar.js:270 -msgid "aymara" -msgstr "" +#: js/turtledefs.js:764 +msgid "Turtle Blocks Guide" +msgstr "タートル・ブロックス ガイド" -#: js/toolbar.js:96 -#: js/toolbar.js:161 -#: js/toolbar.js:216 -#: js/toolbar.js:271 -msgid "quechua" -msgstr "" +#: js/turtledefs.js:767 +#: js/turtledefs.js:798 +#: js/widgets/help.js:336 +msgid "About" +msgstr "タートル・ブロックスに ついて" -#: js/toolbar.js:97 -#: js/toolbar.js:162 -#: js/toolbar.js:217 -#: js/toolbar.js:272 -msgid "guarani" -msgstr "" +#: js/turtledefs.js:768 +msgid "Turtle Blocks is an open source collection of tools for exploring musical concepts." +msgstr "タートル・ブロックスは、 おんがくの コンセプトを たんきゅうするために つくられた、 オープンソースの ツールだ。" -#: js/toolbar.js:98 -#: js/toolbar.js:163 -#: js/toolbar.js:218 -#: js/toolbar.js:273 -msgid "हिंदी" -msgstr "" +#: js/turtledefs.js:770 +msgid "A full list of contributors can be found in the Turtle Blocks GitHub repository." +msgstr "タートル・ブロックスに かかわってきた ひとの いちらんは、 GitHub(ギットハブ) の リポジトリで みることができる。" -#: js/toolbar.js:99 -#: js/toolbar.js:165 -#: js/toolbar.js:219 -#: js/toolbar.js:275 -msgid "igbo" -msgstr "" +#: js/turtledefs.js:772 +msgid "Turtle Blocks is licensed under the AGPL." +msgstr "タートル・ブロックスの プログラムは、 だれでもじゆうに みたり、へんこうしたり することが できる。 " -#: js/toolbar.js:100 -#: js/toolbar.js:166 -#: js/toolbar.js:220 -#: js/toolbar.js:276 -msgid "عربى" -msgstr "" +#: js/turtledefs.js:780 +msgid "Turtle Blocks GitHub repository" +msgstr "タートル・ブロックスのリポジトリ" -#: js/toolbar.js:101 -#: js/toolbar.js:164 -#: js/toolbar.js:221 -#: js/toolbar.js:274 -msgid "తెలుగు" -msgstr "" +#: js/turtledefs.js:783 +#: js/turtledefs.js:814 +#: js/widgets/help.js:337 +#: js/widgets/help.js:359 +msgid "Congratulations." +msgstr "おめでとうございます!" -#: js/toolbar.js:102 -#: js/toolbar.js:167 -#: js/toolbar.js:222 -#: js/toolbar.js:277 -msgid "עִברִית" -msgstr "" +#: js/turtledefs.js:784 +msgid "You have finished the tour. Please enjoy Turtle Blocks!" +msgstr "ミスター・マウスの ツアーは ここでおわり。 タートル・ブロックスを じゆうに たのしもう。" -#: js/toolbar.js:111 -#: js/toolbar.js:175 -#: js/toolbar.js:176 -#: js/toolbar.js:231 -msgid "Full Screen" -msgstr "" +#: js/turtledefs.js:791 +msgid "A detailed guide to Music Blocks is available." +msgstr "インターネットから、 ミュージック・ブロックスの さらに くわしい ガイドページを みることが できる。 つぎの リンクさきを ひらいて みよう。" -#: js/toolbar.js:145 -#: js/toolbar.js:148 -#: js/toolbar.js:200 -#: js/toolbar.js:203 -#: js/toolbar.js:255 -#: js/toolbar.js:258 -#: js/turtledefs.js:558 -msgid "Save turtle artwork as PNG" -msgstr "アートを PNGで ほぞん" +#: js/turtledefs.js:799 +msgid "Music Blocks is an open source collection of tools for exploring musical concepts." +msgstr "ミュージック・ブロックスは、 おんがくの コンセプトを たんきゅうするために つくられた、 オープンソースの ツールだ。" -#: js/toolbar.js:147 -#: js/toolbar.js:202 -#: js/toolbar.js:257 -#: js/turtledefs.js:554 -msgid "Save turtle artwork as SVG" -msgstr "アートを SVGで ほぞん" +#: js/turtledefs.js:801 +msgid "A full list of contributors can be found in the Music Blocks GitHub repository." +msgstr "ミュージック・ブロックスに かかわってきた ひとの いちらんは、 GitHub(ギットハブ) の リポジトリで みることができる。" -#: js/toolbar.js:154 -#: js/toolbar.js:209 -#: js/toolbar.js:264 -msgid "한국인" -msgstr "" +#: js/turtledefs.js:803 +msgid "Music Blocks is licensed under the AGPL." +msgstr "ミュージック・ブロックスの プログラムは、 だれでもじゆうに みたり、へんこうしたり することが できる。 " -#: js/toolbar.js:171 -#: js/toolbar.js:227 -msgid "About Turtle Blocks" -msgstr "タートル・ブロックスについて" +#: js/turtledefs.js:811 +msgid "Music Blocks GitHub repository" +msgstr "ミュージック・ブロックスのリポジトリ" -#: js/toolbar.js:429 -#: js/toolbar.js:440 -msgid "Turtle Wrap Off" -msgstr "" +#: js/turtledefs.js:815 +msgid "You have finished the tour. Please enjoy Music Blocks!" +msgstr "ミスター・マウスの ツアーは ここでおわり。 ミュージック・ブロックスを じゆうに たのしもう。" -#: js/toolbar.js:442 -msgid "Turtle Wrap On" +#: js/turtles.js:882 +msgid "Grid" msgstr "" -#: js/block.js:1470 +#: js/turtles.js:1024 +msgid "Expand" +msgstr "カンバスを かくだい" + +#: js/block-verbose.js:1616 +#: js/block-verbose.js:1735 +#: js/block.js:1580 +#: js/block.js:1699 +#: js/palette.js:605 +#: js/blocks/IntervalsBlocks.js:63 +#: js/blocks/WidgetBlocks.js:259 +msgid "temperament" +msgstr "おんりつ" + +#: js/block-verbose.js:1630 +#: js/block.js:1594 msgid "matrix" msgstr "フレーズメーカー" -#: js/block.js:1477 -#: js/WidgetBlocks.js:1226 +#: js/block-verbose.js:1637 +#: js/block.js:1601 +#: js/blocks/WidgetBlocks.js:1509 #: plugins/rodi.rtp:324 msgid "status" msgstr "じっこう じょうきょう" -#: js/block.js:1484 +#: js/block-verbose.js:1644 +#: js/block.js:1608 msgid "drum mapper" msgstr "ドラム・ピッチぎょうれつ" -#: js/block.js:1491 +#: js/block-verbose.js:1651 +#: js/block.js:1615 msgid "ruler" msgstr "リズムメーカー" -#: js/block.js:1498 -#: js/WidgetBlocks.js:327 +#: js/block-verbose.js:1658 +#: js/block.js:1622 +#: js/blocks/WidgetBlocks.js:397 #.TRANS: timbre is the character or quality of a musical sound msgid "timbre" msgstr "ねいろ" -#: js/block.js:1505 +#: js/block-verbose.js:1665 +#: js/block.js:1629 msgid "stair" msgstr "かいだん" -#: js/block.js:1512 -#: js/WidgetBlocks.js:577 +#: js/block-verbose.js:1672 +#: js/block.js:1636 +#: js/blocks/WidgetBlocks.js:707 #.TRANS: the speed at music is should be played. msgid "tempo" msgstr "メトロノーム" -#: js/block.js:1519 -#: js/block.js:1582 -#: js/IntervalsBlocks.js:1268 +#: js/block-verbose.js:1679 +#: js/block-verbose.js:1742 +#: js/block.js:1643 +#: js/block.js:1706 +#: js/blocks/IntervalsBlocks.js:1464 #.TRANS: mode, e.g., Major in C Major msgid "mode" msgstr "おんかい" -#: js/block.js:1526 +#: js/block-verbose.js:1686 +#: js/block.js:1650 msgid "slider" msgstr "スライダー" -#: js/block.js:1533 -#: js/SensorsBlocks.js:1001 +#: js/block-verbose.js:1693 +#: js/block.js:1657 +#: js/blocks/SensorsBlocks.js:1001 msgid "keyboard" msgstr "キーボード" -#: js/block.js:1547 -#: js/WidgetBlocks.js:957 -#: js/WidgetBlocks.js:988 +#: js/block-verbose.js:1707 +#: js/block.js:1671 +#: js/blocks/WidgetBlocks.js:1190 +#: js/blocks/WidgetBlocks.js:1228 #.TRANS: widget for subdividing a measure into distinct rhythmic elements msgid "rhythm maker" msgstr "リズムメーカー" -#: js/block.js:1554 -#: js/block.js:2182 -#: js/block.js:2236 -#: js/RhythmBlockPaletteBlocks.js:70 -#: js/RhythmBlockPaletteBlocks.js:251 -#: js/RhythmBlockPaletteBlocks.js:484 -#: js/RhythmBlockPaletteBlocks.js:553 -#: js/RhythmBlockPaletteBlocks.js:604 -#: js/RhythmBlockPaletteBlocks.js:874 -#: js/RhythmBlocks.js:33 -#: js/RhythmBlocks.js:356 -#: js/RhythmBlocks.js:766 -#: js/RhythmBlocks.js:806 -#: js/OrnamentBlocks.js:220 -#: js/OrnamentBlocks.js:312 -#: js/MeterBlocks.js:1367 -#: js/DictActions.js:85 -#: js/phrasemaker.js:731 -#: js/phrasemaker.js:2393 -#: js/phrasemaker.js:2436 -#: js/phrasemaker.js:2534 +#: js/block-verbose.js:1714 +#: js/block-verbose.js:2457 +#: js/block-verbose.js:2514 +#: js/block.js:1678 +#: js/block.js:2385 +#: js/block.js:2442 +#: js/blocks/MeterBlocks.js:1367 +#: js/blocks/OrnamentBlocks.js:220 +#: js/blocks/OrnamentBlocks.js:312 +#: js/blocks/RhythmBlocks.js:33 +#: js/blocks/RhythmBlocks.js:356 +#: js/blocks/RhythmBlocks.js:766 +#: js/blocks/RhythmBlocks.js:806 +#: js/blocks/RhythmBlockPaletteBlocks.js:70 +#: js/blocks/RhythmBlockPaletteBlocks.js:252 +#: js/blocks/RhythmBlockPaletteBlocks.js:485 +#: js/blocks/RhythmBlockPaletteBlocks.js:554 +#: js/blocks/RhythmBlockPaletteBlocks.js:605 +#: js/blocks/RhythmBlockPaletteBlocks.js:875 +#: js/turtleactions/DictActions.js:85 +#: js/widgets/phrasemaker.js:942 +#: js/widgets/phrasemaker.js:2656 +#: js/widgets/phrasemaker.js:2699 +#: js/widgets/phrasemaker.js:2810 #.TRANS: the value (e.g., 1/4 note) of the note being played. msgid "note value" msgstr "おとの ながさ" -#: js/block.js:1561 -#: js/block.js:2110 -#: js/block.js:2133 -#: js/IntervalsBlocks.js:875 -#: js/OrnamentBlocks.js:312 +#: js/block-verbose.js:1721 +#: js/block-verbose.js:2382 +#: js/block-verbose.js:2405 +#: js/block.js:1685 +#: js/block.js:2310 +#: js/block.js:2333 +#: js/blocks/IntervalsBlocks.js:1071 +#: js/blocks/OrnamentBlocks.js:312 #.TRANS: calculate a relative step between notes based on semi-tones msgid "scalar interval" msgstr "おんかいの じょうげ" -#: js/block.js:1568 -#: js/RhythmBlocks.js:148 +#: js/block-verbose.js:1728 +#: js/block.js:1692 +#: js/blocks/RhythmBlocks.js:148 msgid "milliseconds" msgstr "ミリびょう" -#: js/block.js:2180 -#: js/block.js:2184 -#: js/block.js:2234 -#: js/block.js:2345 -#: js/ProgramBlocks.js:1273 -#: js/RhythmBlocks.js:712 -#: js/rhythmruler.js:834 -#: js/rhythmruler.js:961 +#: js/block-verbose.js:2455 +#: js/block-verbose.js:2459 +#: js/block-verbose.js:2512 +#: js/block-verbose.js:2628 +#: js/block.js:2383 +#: js/block.js:2387 +#: js/block.js:2440 +#: js/block.js:2556 +#: js/blocks/RhythmBlocks.js:712 +#: js/blocks/ProgramBlocks.js:1273 +#: js/widgets/rhythmruler.js:1183 +#: js/widgets/rhythmruler.js:1329 msgid "silence" msgstr "きゅうふ" -#: js/block.js:2265 -#: js/block.js:3134 -#: js/block.js:3151 -#: js/activity.js:2336 -#: js/activity.js:2387 -#: js/musicutils.js:2932 -#: js/musicutils.js:4287 +#: js/block-verbose.js:2548 +#: js/block-verbose.js:3492 +#: js/block-verbose.js:3509 +#: js/activity.js:2718 +#: js/activity.js:2769 +#: js/block.js:2476 +#: js/block.js:3416 +#: js/block.js:3433 +#: js/utils/musicutils.js:3780 +#: js/utils/musicutils.js:5273 +#.TRANS: the note names must be separated by single spaces #.TRANS: the note names must be separated by single spaces #.TRANS: the note names must be separated by single spaces msgid "ti la sol fa mi re do" msgstr "シ ラ ソ ファ ミ レ ド" -#: js/block.js:2333 +#: js/block-verbose.js:2616 +#: js/block.js:2544 +#.TRANS: scalar step #.TRANS: scalar step msgid "down" msgstr "した" -#: js/block.js:2334 +#: js/block-verbose.js:2617 +#: js/block.js:2545 msgid "up" msgstr "うえ" -#: js/block.js:3477 -#: js/block.js:3490 -#: js/ExtrasBlocks.js:612 +#: js/block-verbose.js:3026 +#: js/block.js:2950 +msgid "Silence block cannot be removed." +msgstr "" + +#: js/block-verbose.js:3824 +#: js/block.js:3748 +#: js/blocks.js:2607 +#: js/blocks.js:3218 +#: js/palette.js:618 +#: js/blocks/BooleanBlocks.js:77 +#: js/blocks/BooleanBlocks.js:167 +#: js/blocks/BooleanBlocks.js:251 +#: js/blocks/BooleanBlocks.js:335 +#: js/blocks/BooleanBlocks.js:433 +#: js/blocks/BooleanBlocks.js:539 +#: js/blocks/BooleanBlocks.js:640 +#: js/blocks/BooleanBlocks.js:741 +#: js/blocks/BooleanBlocks.js:847 +#: js/blocks/BooleanBlocks.js:948 +#: js/blocks/BooleanBlocks.js:1033 +#: js/blocks/SensorsBlocks.js:910 +msgid "true" +msgstr "真" + +#: js/block-verbose.js:3824 +#: js/block.js:3748 +#: js/blocks.js:2609 +#: js/blocks.js:3220 +#: js/blocks/BooleanBlocks.js:79 +#: js/blocks/BooleanBlocks.js:169 +#: js/blocks/BooleanBlocks.js:253 +#: js/blocks/BooleanBlocks.js:337 +#: js/blocks/BooleanBlocks.js:435 +#: js/blocks/BooleanBlocks.js:541 +#: js/blocks/BooleanBlocks.js:642 +#: js/blocks/BooleanBlocks.js:743 +#: js/blocks/BooleanBlocks.js:849 +#: js/blocks/BooleanBlocks.js:950 +#: js/blocks/SensorsBlocks.js:912 +msgid "false" +msgstr "偽" + +#: js/block-verbose.js:3835 +#: js/block-verbose.js:3848 +#: js/block.js:3759 +#: js/block.js:3772 +#: js/blocks/ExtrasBlocks.js:615 msgid "Cartesian" msgstr "うがん(ざひょう)をひょうじ" -#: js/block.js:3478 -#: js/block.js:3491 -#: js/ExtrasBlocks.js:616 +#: js/block-verbose.js:3836 +#: js/block-verbose.js:3849 +#: js/block.js:3760 +#: js/block.js:3773 +#: js/blocks/ExtrasBlocks.js:619 msgid "polar" msgstr "きょくざひょう をひょうじ" -#: js/block.js:3479 -#: js/block.js:3492 -#: js/ExtrasBlocks.js:620 +#: js/block-verbose.js:3837 +#: js/block-verbose.js:3850 +#: js/block.js:3761 +#: js/block.js:3774 +#: js/blocks/ExtrasBlocks.js:623 msgid "Cartesian+polar" msgstr "うがんざひょうと きょくざひょうを ひょうじ" -#: js/block.js:3480 -#: js/block.js:3499 -#: js/ExtrasBlocks.js:649 +#: js/block-verbose.js:3838 +#: js/block-verbose.js:3857 +#: js/block.js:3762 +#: js/block.js:3781 +#: js/blocks/ExtrasBlocks.js:652 msgid "none" msgstr "なし" -#: js/block.js:3493 -#: js/ExtrasBlocks.js:625 +#: js/block-verbose.js:3851 +#: js/block.js:3775 +#: js/blocks/ExtrasBlocks.js:628 msgid "treble" msgstr "トレブルきごう" -#: js/block.js:3494 -#: js/ExtrasBlocks.js:629 +#: js/block-verbose.js:3852 +#: js/block.js:3776 +#: js/blocks/ExtrasBlocks.js:632 msgid "grand staff" msgstr "トレブルとバスきごう" -#: js/block.js:3495 -#: js/ExtrasBlocks.js:633 +#: js/block-verbose.js:3853 +#: js/block.js:3777 +#: js/blocks/ExtrasBlocks.js:636 msgid "mezzo-soprano" msgstr "メゾソプラノきごう" -#: js/block.js:3496 -#: js/ExtrasBlocks.js:637 +#: js/block-verbose.js:3854 +#: js/block.js:3778 +#: js/blocks/ExtrasBlocks.js:640 msgid "alto" msgstr "アルトきごう" -#: js/block.js:3497 -#: js/ExtrasBlocks.js:641 +#: js/block-verbose.js:3855 +#: js/block.js:3779 +#: js/blocks/ExtrasBlocks.js:644 msgid "tenor" msgstr "テノールきごう" -#: js/block.js:3498 -#: js/ExtrasBlocks.js:645 -#: js/musicutils.js:736 -#: js/synthutils.js:64 +#: js/block-verbose.js:3856 +#: js/block.js:3780 +#: js/utils/musicutils.js:1115 +#: js/utils/synthutils.js:80 +#: js/blocks/ExtrasBlocks.js:648 #.TRANS: musical instrument msgid "bass" msgstr "コントラバス" -#: js/block.js:4075 +#: js/block-verbose.js:3901 +#: js/block.js:3825 +#: js/blocks.js:2600 +#: js/blocks.js:3211 +msgid "on2" +msgstr "オン" + +#: js/block-verbose.js:3903 +#: js/block.js:3827 +#: js/blocks.js:2602 +#: js/blocks.js:3213 +msgid "off" +msgstr "オフ" + +#: js/block-verbose.js:4470 +#: js/block.js:4394 msgid "Not a number" msgstr "すうじではありません" -#: js/block.js:4082 +#: js/block-verbose.js:4477 +#: js/block.js:4401 msgid "Octave value must be between 1 and 10." msgstr "" -#: js/block.js:4090 +#: js/block-verbose.js:4485 +#: js/block.js:4409 msgid "Numbers can have at most 10 digits." msgstr "" -#: js/notation.js:353 -msgid "Lilypond cannot process pickup of " -msgstr "Lilypondでは この ピックアップを たいおう できません:" +#: js/activity.js:390 +#: js/activity.js:395 +msgid "Search for blocks" +msgstr "ブロックをさがす" -#: js/turtledefs.js:40 -#.TRANS: put the URL to the guide here, e.g., https://github.com/sugarlabs/turtleblocksjs/tree/master/guide/README.md -msgid "guide url" -msgstr "https://github.com/sugarlabs/musicblocks/tree/master/guide-ja/music_blocks_operation_manual.pdf" +#: js/activity.js:1413 +msgid "Refresh your browser to change to advanced mode." +msgstr "はってんモードに するには、 ブラウザを こうしん して下さい。" -#: js/turtledefs.js:85 -#: js/turtledefs.js:437 -msgid "Turtle Blocks is a Logo-inspired turtle that draws colorful pictures with snap-together visual-programming blocks." -msgstr "" +#: js/activity.js:1418 +msgid "Refresh your browser to change to beginner mode." +msgstr "かんたんモードに するには、 ブラウザを こうしん してください" + +#: js/activity.js:1477 +msgid "Catching mice" +msgstr "ネズミを つかまえているよ" + +#: js/activity.js:1478 +msgid "Cleaning the instruments" +msgstr "がっきの おていれを しているよ" + +#: js/activity.js:1479 +msgid "Testing key pieces" +msgstr "キーボードの おとを たしかめているよ" + +#: js/activity.js:1480 +msgid "Sight-reading" +msgstr "がくふを よみこんでいるよ" + +#: js/activity.js:1481 +msgid "Combining math and music" +msgstr "おんがくと さんすうを くっつけているよ" + +#: js/activity.js:1482 +msgid "Generating more blocks" +msgstr "ブロックを たくさん つくっているよ" + +#: js/activity.js:1483 +msgid "Do Re Mi Fa Sol La Ti Do" +msgstr "ド レ ミ ファ ソ ラ シ ド" + +#: js/activity.js:1484 +msgid "Tuning string instruments" +msgstr "がっきの チューニングを しているよ" + +#: js/activity.js:1485 +msgid "Pressing random keys" +msgstr "キーボードで おんがくを つくっているよ" -#: js/turtledefs.js:118 -#: js/turtledefs.js:220 -msgid "search" -msgstr "けんさく" +#: js/activity.js:1663 +msgid "plugins will be removed upon restart." +msgstr "プラグインは さいせいするときえるよ" -#: js/turtledefs.js:120 -#: js/turtledefs.js:222 -#: js/WidgetBlocks.js:437 -#: js/MeterBlocks.js:1343 -#.TRANS: musical meter (time signature), e.g., 4:4 -msgid "meter" -msgstr "ひょうし" +#: js/activity.js:1672 +msgid "show Cartesian" +msgstr "ほうがん(ざひょう)を ひょうじ" -#: js/turtledefs.js:122 -#: js/turtledefs.js:224 -msgid "intervals" -msgstr "おんてい" +#: js/activity.js:2211 +#: js/palette.js:589 +#: js/blocks/RhythmBlocks.js:923 +#: js/blocks/PitchBlocks.js:442 +#: js/blocks/PitchBlocks.js:1786 +#.TRANS: a numeric mapping of the notes in an octave based on the musical mode +msgid "scale degree" +msgstr "おんど" -#: js/turtledefs.js:124 -#: js/turtledefs.js:226 -msgid "ornament" -msgstr "そうしょく" +#: js/activity.js:2214 +#: js/palette.js:598 +msgid "voice name" +msgstr "おんめい" -#: js/turtledefs.js:125 -#: js/turtledefs.js:227 -#: js/VolumeBlocks.js:362 -#: js/VolumeBlocks.js:502 -#: js/VolumeBlocks.js:545 -msgid "volume" -msgstr "おんりょう" +#: js/activity.js:2217 +#: js/palette.js:595 +msgid "invert mode" +msgstr "ちょうを はんてん させる" -#: js/turtledefs.js:129 -#: js/turtledefs.js:231 -msgid "boxes" -msgstr "かずの はこ" +#: js/activity.js:2220 +msgid "output tools" +msgstr "" -#: js/turtledefs.js:130 -#: js/turtledefs.js:232 -msgid "widgets" -msgstr "ツール" +#: js/activity.js:2223 +msgid "custom note" +msgstr "" -#: js/turtledefs.js:131 -#: js/turtledefs.js:233 -#: js/phrasemaker.js:824 -msgid "graphics" -msgstr "ネズミの うごき" +#: js/activity.js:2226 +msgid "accidental name" +msgstr "" -#: js/turtledefs.js:134 -#: js/turtledefs.js:236 -msgid "boolean" -msgstr "くらべる" +#: js/activity.js:2229 +#: js/blocks/PitchBlocks.js:855 +msgid "east indian solfege" +msgstr "" -#: js/turtledefs.js:137 -#: js/turtledefs.js:239 -#: js/HeapBlocks.js:59 -#: js/status.js:147 -msgid "heap" -msgstr "ヒープ" +#: js/activity.js:2232 +#: js/blocks/PitchBlocks.js:869 +msgid "note name" +msgstr "" -#: js/turtledefs.js:138 -#: js/turtledefs.js:240 -#: js/ProgramBlocks.js:495 -#: js/DictBlocks.js:142 -msgid "dictionary" -msgstr "じしょ" +#: js/activity.js:2235 +#: js/blocks/IntervalsBlocks.js:94 +msgid "temperament name" +msgstr "" -#: js/turtledefs.js:139 -#: js/turtledefs.js:241 -msgid "ensemble" -msgstr "がっそう" +#: js/activity.js:2238 +#: js/palette.js:592 +msgid "mode name" +msgstr "おんかい名" -#: js/turtledefs.js:140 -#: js/turtledefs.js:242 -msgid "extras" -msgstr "そのた" +#: js/activity.js:2241 +msgid "chord name" +msgstr "" -#: js/turtledefs.js:142 -#: js/turtledefs.js:244 -#.TRANS: program as in computer program -#.TRANS: program as in computer program -msgid "program" -msgstr "プログラム" +#: js/activity.js:2244 +#: js/palette.js:615 +msgid "interval name" +msgstr "おんていめい" -#: js/turtledefs.js:143 -#: js/turtledefs.js:245 -msgid "my blocks" -msgstr "わたしの ブロック" +#: js/activity.js:2247 +msgid "filter type" +msgstr "" -#: js/turtledefs.js:185 -#: js/turtledefs.js:281 -msgid "artwork" -msgstr "アート" +#: js/activity.js:2250 +msgid "oscillator type" +msgstr "" -#: js/turtledefs.js:185 -#: js/turtledefs.js:281 -msgid "logic" -msgstr "ろんり" +#: js/activity.js:2253 +#: js/blocks.js:2479 +#: js/blocks.js:2487 +msgid "audio file" +msgstr "" -#: js/turtledefs.js:185 -#: js/turtledefs.js:281 -msgid "music" -msgstr "おんがく" +#: js/activity.js:2256 +#: js/blocks/DrumBlocks.js:32 +msgid "noise name" +msgstr "" -#: js/turtledefs.js:187 -#: js/turtledefs.js:463 -msgid "Music Blocks is a collection of tools for exploring fundamental musical concepts in a fun way." -msgstr "おんがくと さんすうと プログラミングを むすびつけ、 ふかく たのしむことができる ツール。 それが、 ミュージック・ブロックスだ。" +#: js/activity.js:2259 +#: js/blocks/DrumBlocks.js:75 +msgid "drum name" +msgstr "" -#: js/turtledefs.js:436 -msgid "Welcome to Turtle Blocks" -msgstr "タートル・ブロックへようこそ" +#: js/activity.js:2262 +#: js/blocks/DrumBlocks.js:119 +msgid "effects name" +msgstr "" -#: js/turtledefs.js:438 -#: js/turtledefs.js:465 -#: js/turtledefs.js:774 -#: js/turtledefs.js:805 -msgid "The current version is" -msgstr "タートル・ブロックスの さいしんバージョンは" +#: js/activity.js:2265 +msgid "wrap mode" +msgstr "" -#: js/turtledefs.js:446 -#: js/turtledefs.js:483 -msgid "Click the run button to run the project in fast mode." -msgstr "クリックをすると、 ふつうの スピードで プログラムを じっこうすることが できる。" +#: js/activity.js:2268 +msgid "load file" +msgstr "" -#: js/turtledefs.js:452 -msgid "Stop the turtle." -msgstr "タートルをとめる" +#: js/activity.js:2435 +#: js/activity.js:5851 +msgid "This block is deprecated." +msgstr "この ブロックは もう ありません。" -#: js/turtledefs.js:454 -#: js/turtledefs.js:491 -msgid "You can also type Alt-S to stop." -msgstr "じっこう している プログラムを とめる。 プログラムは、 このボタンを おすかわりに、 キーボードで 「Altキーと Sキーの どうじおし」でも とめることが できる。" +#: js/activity.js:2437 +#: js/activity.js:5853 +msgid "Block cannot be found." +msgstr "ブロックが みつかりません。" -#: js/turtledefs.js:462 -#: js/help.js:333 -msgid "Welcome to Music Blocks" -msgstr "ミュージック・ブロックスへ ようこそ" +#: js/activity.js:2645 +msgid "Saving block artwork" +msgstr "ブロックの アートを ほぞんちゅう" -#: js/turtledefs.js:472 -#: js/help.js:334 -msgid "Meet Mr. Mouse!" -msgstr "ミスター・マウスに あおう!" +#: js/activity.js:2656 +msgid "Erase" +msgstr "けす" -#: js/turtledefs.js:473 -msgid "Mr Mouse is our Music Blocks conductor." -msgstr "ミスター・マウスは、 ミュージック・ブロックスの しきしゃ。" +#: js/activity.js:2683 +#: js/activity.js:2705 +msgid "Paste" +msgstr "はりつけ" -#: js/turtledefs.js:475 -msgid "Mr Mouse encourages you to explore Music Blocks." -msgstr "ミスター・マウスと いっしょに、 ミュージック・ブロックスの せかいを たんきゅうしよう。" +#: js/activity.js:2687 +msgid "Save block help" +msgstr "ブロックの ヘルプを ほぞん" -#: js/turtledefs.js:477 -msgid "Let us start our tour!" -msgstr " では、 ツアーを はじめよう。" +#: js/activity.js:2772 +msgid "Jumping to the bottom of the page." +msgstr "がめんのしたにジャンプしています" -#: js/turtledefs.js:489 -msgid "Stop the music (and the mice)." -msgstr "じっこうしているプログラムを止める。" +#: js/activity.js:2778 +msgid "Scrolling up." +msgstr "うえにスクロールしています" -#: js/turtledefs.js:499 -msgid "Record your project as video." -msgstr "さいせい されている ビデオを ろくおんする" +#: js/activity.js:2783 +msgid "Scrolling down." +msgstr "したにスクロールしています" -#: js/turtledefs.js:505 -msgid "Toggle Fullscreen mode." -msgstr "" +#: js/activity.js:2788 +msgid "Extracting block" +msgstr "ブロックを取り出しています" -#: js/turtledefs.js:511 -msgid "Initialize a new project." -msgstr "あたらしい プロジェクトを つくる。" +#: js/activity.js:2796 +msgid "Moving block up." +msgstr "ブロックをうえにうごかしています" -#: js/turtledefs.js:517 -msgid "You can also load projects from the file system." -msgstr "コンピューターに ほぞん してある ファイルから、 ミュージック・ブロックスの プロジェクトを よみこんで ひらく。" +#: js/activity.js:2817 +msgid "Moving block down." +msgstr "ブロックをしたにうごかしています" -#: js/turtledefs.js:522 -#: js/StringHelper.js:46 -msgid "Delete" -msgstr "けす" +#: js/activity.js:2838 +msgid "Moving block left." +msgstr "ブロックをひだりにうごかしています" -#: js/turtledefs.js:523 -msgid "To delete a block, just right-click on it, then you will be able to see the delete option" -msgstr "" +#: js/activity.js:2855 +msgid "Moving block right." +msgstr "ブロックをみぎにうごかしています" -#: js/turtledefs.js:528 -#: js/activity.js:2270 -#: js/LocalCard.js:31 -msgid "Copy" -msgstr "コピー" +#: js/activity.js:2870 +msgid "Jump to home position." +msgstr "まんなかにジャンプする" -#: js/turtledefs.js:529 -msgid "To copy a block, just right-click on it, then you will be able to see the copy option" -msgstr "" +#: js/activity.js:2897 +msgid "Hide blocks" +msgstr "ブロックを ひひょうじ" -#: js/turtledefs.js:535 -msgid "To extract a block, just right-click on it, then you will be able to see the extract option" -msgstr "" +#: js/activity.js:4500 +msgid "Click the run button to run the project." +msgstr "プロジェクトを さいせいするため、さいせいの ボタンを クリックして ください。" -#: js/turtledefs.js:542 -#: js/turtledefs.js:552 -#: js/turtledefs.js:573 -msgid "Save your project to a file." -msgstr "げんざい ひらいている プロジェクトを ほぞんする。" +#: js/activity.js:5692 +msgid "Show/hide block" +msgstr "ブロックを ひょうじする/かくす" -#: js/turtledefs.js:549 -#: js/turtledefs.js:570 -msgid "save" -msgstr "ほぞん する" +#: js/activity.js:5698 +msgid "Expand/collapse blocks" +msgstr "ブロックを ひろげる/おりたたむ" -#: js/turtledefs.js:556 -#: js/turtledefs.js:577 -msgid "Save graphics from your project to as SVG." -msgstr "プロジェクトの グラフィックを SVGで ほぞん" +#: js/activity.js:5976 +msgid "Could not parse JSON input." +msgstr "JSONの インプットの パースが できません。" -#: js/turtledefs.js:560 -#: js/turtledefs.js:581 -msgid "Save graphics from your project as PNG." -msgstr "プロジェクトの グラフィックを PNGで ほぞん" +#: js/activity.js:6475 +#: js/activity.js:6580 +#: js/activity.js:6631 +msgid "Cannot load project from the file. Please check the file type." +msgstr "プロジェクトを よみこめません。 ファイルの しゅるいを かくにん してください。" -#: js/turtledefs.js:564 -#: js/turtledefs.js:597 -msgid "Save block artwork as an SVG file." -msgstr "ブロックの グラフィックを SVGで ほぞん" +#: js/activity.js:6917 +msgid "Invalid parameters" +msgstr "" -#: js/turtledefs.js:585 -msgid "Save audio from your project as WAV." -msgstr "プロジェクトの おとを WAVで ほぞん" +#: js/blocks.js:1212 +#: js/blocks.js:3444 +#: js/blocks.js:3834 +#: js/blocks.js:3865 +#: js/blocks.js:3914 +#: js/blocks.js:3949 +#: js/blocks.js:6586 +#: js/palette.js:509 +#: js/palette.js:638 +#: js/palette.js:1105 +#: js/blocks/BoxesBlocks.js:282 +#: js/blocks/BoxesBlocks.js:285 +#: js/blocks/BoxesBlocks.js:405 +#: js/blocks/BoxesBlocks.js:594 +msgid "box" +msgstr "はこ" -#: js/turtledefs.js:589 -msgid "Save your project to as an ABC file." -msgstr "プロジェクトを ABCがくふで ほぞん" +#: js/blocks.js:1713 +msgid "Consider breaking this stack into parts." +msgstr "この ながい スタックを べつべつの スタックに した ほうが いい" -#: js/turtledefs.js:593 -msgid "Save your project to as a Lilypond file." -msgstr "さくせいした おんがくを、 コンピューターじょうで がくふ をえがく ファイル(Lilypondファイル)に かえて ほぞんする。" +#: js/blocks.js:2472 +#: js/palette.js:653 +#: js/blocks/MediaBlocks.js:602 +msgid "open file" +msgstr "ファイルを ひらく" -#: js/turtledefs.js:604 -msgid "Load samples from server" -msgstr "みんなの さくひん" +#: js/blocks.js:3247 +#: js/palette.js:574 +#: js/blocks/MediaBlocks.js:892 +#: js/blocks/MediaBlocks.js:963 +msgid "text" +msgstr "もじ そざい" -#: js/turtledefs.js:605 -msgid "This button opens a viewer for loading example projects." -msgstr "インターネットの「プラネット(わくせい)」というページから、ほかの人が作ったプロジェクトを選んで、よみこむことができる。" +#: js/blocks.js:3443 +#: js/palette.js:641 +#: js/palette.js:642 +#: js/blocks/BoxesBlocks.js:514 +msgid "store in box" +msgstr "はこに ほぞん" -#: js/turtledefs.js:611 -msgid "Palette buttons" -msgstr "パレットボタン" +#: js/blocks.js:3448 +#: js/blocks.js:3888 +#: js/blocks.js:3923 +#: js/blocks.js:3958 +#: js/blocks.js:5862 +#: js/blocks.js:5883 +#: js/blocks/BoxesBlocks.js:772 +msgid "box1" +msgstr "はこ1" -#: js/turtledefs.js:612 -msgid "This toolbar contains the palette buttons including Rhythm Pitch Tone Action and more." -msgstr "ミュージック・ブロックスのひだりがわには、 プログラミングにつかう さまざまな ブロックを グループわけした 「パレットボタン」がある。" +#: js/blocks.js:3450 +#: js/blocks.js:3890 +#: js/blocks.js:3925 +#: js/blocks.js:3960 +#: js/blocks.js:5864 +#: js/blocks.js:5885 +#: js/blocks/BoxesBlocks.js:663 +msgid "box2" +msgstr "はこ2" -#: js/turtledefs.js:614 -msgid "Click to show the palettes of blocks and drag blocks from the palettes onto the canvas to use them." -msgstr " それぞれの パレットボタンを クリックし、 「おんぷ」「アクション」「ペン」などから すきな ブロックをえらんで、 カンバスじょうに ドラッグして おいてみよう。" +#: js/blocks.js:4122 +#: js/palette.js:639 +#: js/palette.js:644 +#: js/palette.js:1041 +#: js/blocks/BoxesBlocks.js:591 +msgid "store in" +msgstr "いれる" -#: js/turtledefs.js:620 -msgid "Cartesian/Polar" -msgstr "ちゅうしんのかくどとほうがん(ざひょう)をひょうじ" +#: js/blocks.js:4122 +#: js/blocks/BoxesBlocks.js:595 +#: js/blocks/DictBlocks.js:215 +#: js/blocks/DictBlocks.js:289 +#: js/blocks/EnsembleBlocks.js:391 +#: js/blocks/EnsembleBlocks.js:402 +#: js/blocks/MediaBlocks.js:746 +#: js/blocks/PitchBlocks.js:656 +#: js/blocks/PitchBlocks.js:934 +#: js/blocks/PitchBlocks.js:1866 +#: js/blocks/ProgramBlocks.js:390 +#: js/blocks/ProgramBlocks.js:495 +#: js/blocks/ProgramBlocks.js:658 +#: js/blocks/ToneBlocks.js:1025 +msgid "name" +msgstr "なまえ" -#: js/turtledefs.js:621 -msgid "Show or hide a coordinate grid." -msgstr "カンバスじょうに ほうがん(ざひょう)や ちゅうしんの かくどを ひょうじしたり、かくしたりできる。" +#: js/blocks.js:4122 +#: js/blocks/BoxesBlocks.js:75 +#: js/blocks/BoxesBlocks.js:595 +#: js/blocks/DictBlocks.js:289 +#: js/blocks/DictBlocks.js:430 +#: js/blocks/HeapBlocks.js:544 +#: js/blocks/RhythmBlocks.js:1130 +msgid "value" +msgstr "あたい" -#: js/turtledefs.js:627 -msgid "Clear the screen and return the mice to their initial positions." -msgstr "ネズミを もとのいちに もどし、 ペンで えがいた せんを すべて けす。" +#: js/blocks.js:4465 +msgid "Forever loop detected inside a note value block. Unexpected things may happen." +msgstr "" -#: js/turtledefs.js:633 -msgid "Collapse the graphics window." -msgstr "ネズミが いどうしたり、 ペンで せんを えがいたり できる 「カンバス」の ひょうじサイズを しゅくしょう/かくだいする。
カンバスを しゅくしょう したばあいは、 プログラムを ふつうの そくどで じっこう しても、 ブロックが かくれない。 ふつうの じっこうそくどで プログラムの どうさ かくにんを したいときなどに べんりだ。" +#: js/blocks.js:4988 +msgid "There is no block selected." +msgstr "ブロックが えらばれて いません。" -#: js/turtledefs.js:638 -#: js/activity.js:4256 -#: js/activity.js:4256 -msgid "Home" -msgstr "ホーム" +#: js/blocks.js:5091 +#: js/blocks/MediaBlocks.js:888 +msgid "show" +msgstr "ひょうじする" -#: js/turtledefs.js:639 -msgid "Return all blocks to the center of the screen." -msgstr "すべての ブロックを、 カンバスの まんなかに はいち する。" +#: js/blocks.js:5094 +#: js/blocks/MediaBlocks.js:803 +#.TRANS: Avatar is the image used to determine the appearance of the mouse. +msgid "avatar" +msgstr "ネズミへんこう" -#: js/turtledefs.js:644 -msgid "Show/hide blocks" -msgstr "ブロックをひょうじする/かくす" +#: js/blocks.js:5097 +#: js/blocks/ToneBlocks.js:1010 +#: js/widgets/sampler.js:975 +#.TRANS: The sound sample that the user uploads. +msgid "sample" +msgstr "ねいろ サンプル" -#: js/turtledefs.js:645 -msgid "Hide or show the blocks and the palettes." -msgstr "クリックすると、 パレットボタンと プログラムの ブロックを がめんじょうに ひょうじさせたり、かくしたりすることができる。" +#: js/lilypond.js:606 +msgid "brown rat" +msgstr "ちゃいろの ドブネズミ" -#: js/turtledefs.js:650 -msgid "Expand/collapse collapsable blocks" -msgstr "ブロックをひろげる/おりたたむ" +#: js/lilypond.js:607 +msgid "mole" +msgstr "もぐら" -#: js/turtledefs.js:651 -msgid "Expand or collapse start and action stacks." -msgstr "クリックすると、 「スタート」と「アクション」に つかわれている ブロックを、ひろげて ひょうじしたり、おりたたんで かくしたりすることができる。" +#: js/lilypond.js:608 +msgid "chipmunk" +msgstr "リス" -#: js/turtledefs.js:658 -#: js/activity.js:4265 -msgid "Decrease block size" -msgstr "ブロックのひょうじを ちいさくする" +#: js/lilypond.js:609 +msgid "red squirrel" +msgstr "あかいリス" -#: js/turtledefs.js:659 -msgid "Decrease the size of the blocks." -msgstr "がめんに ひょうじされる ブロックの サイズを ちいさくする。" +#: js/lilypond.js:610 +msgid "guinea pig" +msgstr "ギニーピッグ" -#: js/turtledefs.js:664 -#: js/activity.js:4267 -msgid "Increase block size" -msgstr "ブロックのひょうじを おおきくする" +#: js/lilypond.js:611 +msgid "capybara" +msgstr "カピバラ" -#: js/turtledefs.js:665 -msgid "Increase the size of the blocks." -msgstr "がめんに ひょうじされる ブロックの サイズを おおきくする。" +#: js/lilypond.js:612 +msgid "coypu" +msgstr "ヌートリア" -#: js/turtledefs.js:670 -msgid "Expand/collapse option toolbar" -msgstr "オプションツールバーをひょうじ" +#: js/lilypond.js:613 +msgid "black rat" +msgstr "くろいねずみ" -#: js/turtledefs.js:671 -msgid "Click this button to expand or collapse the auxillary toolbar." -msgstr "このボタンを クリックすると 「サブメニュー」を ひらいたりおりたたんだり することが できる。" +#: js/lilypond.js:614 +msgid "grey squirrel" +msgstr "はいいろの リス" -#: js/turtledefs.js:676 -msgid "Run slow" -msgstr "ゆっくりじっこうする" +#: js/lilypond.js:615 +msgid "flying squirrel" +msgstr "モモンガ" -#: js/turtledefs.js:677 -msgid "Click to run the project in slow mode." -msgstr "クリックをすると、 ゆっくりとした スピードで プログラムを じっこうすることが できる。" +#: js/lilypond.js:616 +msgid "bat" +msgstr "こうもり" -#: js/turtledefs.js:683 -msgid "Click to run the project step by step." -msgstr "クリックをすると、 とてもゆっくり、 ブロックを 1つずつ じっこうする。 プログラムが うまく はたらかず、 どのブロックが げんいん なのかを しらべたいとき などに べんりだ。" +#: js/lilypond.js:749 +#: js/lilypond.js:913 +#: js/lilypond.js:951 +#: js/blocks/ActionBlocks.js:1256 +#: js/blocks/ExtrasBlocks.js:556 +msgid "start drum" +msgstr "ドラム・スタート" -#: js/turtledefs.js:690 -msgid "Display statistics about your Music project." -msgstr "プロジェクトに ふくまれている ブロックの しゅるい、 わりあい など、 とうけいてきな じょうほうを ひょうじする。" +#: js/logo.js:61 +msgid "Not a valid pitch name" +msgstr "えらばれた おんめいが てきせつでは ありません。" -#: js/turtledefs.js:697 -msgid "Delete a selected plugin." -msgstr "せんたく した プラグインを けす。" +#: js/logo.js:507 +#: js/blocks/ProgramBlocks.js:258 +#: js/blocks/ProgramBlocks.js:427 +msgid "You must select a file." +msgstr "ファイルを えらんで ください。" -#: js/turtledefs.js:704 -msgid "Enable scrolling" -msgstr "じゆうなほうこうに/たてほうこうにスクロール" +#: js/logo.js:1696 +msgid "Playback is ready." +msgstr "コンパイル かんりょう" -#: js/turtledefs.js:705 -msgid "You can scroll the blocks on the canvas." -msgstr "カンバスじょうを ドラッグそうさ したときに、 がめんを スクロール させることができる ほうこうを じょうげ だけ と じょうげさゆう に かえる。" +#: js/macros.js:711 +#: js/utils/musicutils.js:1162 +#: js/utils/synthutils.js:202 +#.TRANS: animal sound effect +msgid "duck" +msgstr "あひる" -#: js/turtledefs.js:714 -msgid "Wrap Turtle" -msgstr "アートを つつむ" +#: js/notation.js:353 +msgid "Lilypond cannot process pickup of " +msgstr "Lilypondでは この ピックアップを たいおう できません:" -#: js/turtledefs.js:715 -msgid "Turn Turtle wrapping On or Off." -msgstr "アートつつむか・つつまない" +#: js/palette.js:571 +msgid "grid" +msgstr "グリッド" -#: js/turtledefs.js:725 -msgid "Restore blocks from the trash." -msgstr "ごみばこに すててしまった ブロックを とりだして もどす。 ふくすうの ブロックを すててある ときは あたらしい じゅんに、 ごみばこが からに なるまで ブロックを ひろいもどすことが できる。" +#: js/palette.js:580 +msgid "effect" +msgstr "こうかおん" -#: js/turtledefs.js:732 -msgid "Switch mode" -msgstr "モードを せってい" +#: js/palette.js:586 +msgid "sargam" +msgstr "Sargam (インドの ソルファ)" -#: js/turtledefs.js:733 -msgid "Switch between beginner and advance modes." -msgstr "ミュージック・ブロックスを かんたんモード/はってんモード に きりかえる。 モードによって つかえる きのうや ブロックの しゅるいが かわる。" +#: js/palette.js:601 +#: js/blocks/PitchBlocks.js:1209 +msgid "custom pitch" +msgstr "カスタムピッチ" -#: js/turtledefs.js:739 -msgid "Select your language preference." -msgstr "ブロックの なまえなどに ひょうじ される げんごを えらぶ。" +#: js/palette.js:609 +msgid "accidental" +msgstr "へんかきごう" -#: js/turtledefs.js:745 -msgid "Keyboard shortcuts" -msgstr "キーボードのショートカット" +#: js/palette.js:633 +#: js/blocks/PitchBlocks.js:405 +msgid "pitch converter" +msgstr "おとのたかさをしょうせつ" -#: js/turtledefs.js:746 -msgid "You can type d to create a do block and r to create a re block etc." -msgstr "キーボードの ショートカット

キーボードを つかうと、 パレットボタンから ブロックを ドラッグして はいち するだけでなく、 ボタンを おすだけで ちょくせつ ブロックを おくことが できる。

★ショートカットキー
d …… 「ド」(4ぶおんぷ、4オクターヴ)
r …… 「レ」(4ぶおんぷ、4オクターヴ)
m …… 「ミ」(4ぶおんぷ、4オクターヴ)
f …… 「ファ」(4ぶおんぷ、4オクターヴ)
s …… 「ソ」(4ぶおんぷ、4オクターヴ)
l …… 「ラ」(4ぶおんぷ、4オクターヴ)
t …… 「シ」(4ぶおんぷ、4オクターヴ)" +#: js/piemenus.js:200 +#: js/utils/musicutils.js:1187 +#: js/utils/musicutils.js:1207 +#: js/widgets/musickeyboard.js:2341 +#: js/widgets/phrasemaker.js:1908 +#: js/widgets/sampler.js:810 +#.TRANS: double sharp is a music term related to pitch +msgid "double sharp" +msgstr "ダブルシャープ" -#: js/turtledefs.js:753 -msgid "Show these messages." -msgstr "ミスター・マウスによる、 ミュージック・ブロックスの せつめいを ひょうじする。" +#: js/piemenus.js:201 +#: js/utils/musicutils.js:1185 +#: js/utils/musicutils.js:1208 +#: js/blocks/PitchBlocks.js:1539 +#: js/turtleactions/PitchActions.js:323 +#: js/widgets/musickeyboard.js:2342 +#: js/widgets/phrasemaker.js:1909 +#: js/widgets/sampler.js:811 +#.TRANS: sharp is a music term related to pitch +#.TRANS: sharp is a half-step up in pitch +msgid "sharp" +msgstr "シャープ" -#: js/turtledefs.js:759 -#: js/turtledefs.js:790 -#: js/help.js:335 -msgid "Guide" -msgstr "もっとくわしく しるには" +#: js/piemenus.js:202 +#: js/utils/musicutils.js:1183 +#: js/utils/musicutils.js:1209 +#: js/widgets/musickeyboard.js:2343 +#: js/widgets/phrasemaker.js:1910 +#: js/widgets/sampler.js:812 +#.TRANS: natural is a music term related to pitch +msgid "natural" +msgstr "ナチュラル" -#: js/turtledefs.js:760 -msgid "A detailed guide to Turtle Blocks is available." -msgstr "インターネットから、 タートル・ブロックスの さらに くわしい ガイドページを みることが できる。 つぎの リンクさきを ひらいて みよう。" +#: js/piemenus.js:203 +#: js/utils/musicutils.js:1181 +#: js/utils/musicutils.js:1210 +#: js/blocks/PitchBlocks.js:1498 +#: js/turtleactions/PitchActions.js:326 +#: js/widgets/musickeyboard.js:2344 +#: js/widgets/phrasemaker.js:1911 +#: js/widgets/sampler.js:813 +#.TRANS: flat is a music term related to pitch +#.TRANS: flat is a half-step down in pitch +msgid "flat" +msgstr "フラット" + +#: js/piemenus.js:204 +#: js/utils/musicutils.js:1179 +#: js/utils/musicutils.js:1211 +#: js/widgets/musickeyboard.js:2345 +#: js/widgets/phrasemaker.js:1912 +#: js/widgets/sampler.js:814 +#.TRANS: double flat is a music term related to pitch +msgid "double flat" +msgstr "ダブルフラット" -#: js/turtledefs.js:764 -msgid "Turtle Blocks Guide" -msgstr "タートル・ブロックス ガイド" +#: js/piemenus.js:2864 +#: js/utils/musicutils.js:1006 +#: js/blocks/PitchBlocks.js:1385 +#.TRANS: unison is a music term related to intervals +#.TRANS: unison means the note is the same as the current note +msgid "unison" +msgstr "ユニゾン(同度)" -#: js/turtledefs.js:767 -#: js/turtledefs.js:798 -#: js/help.js:336 -msgid "About" -msgstr "タートル・ブロックスに ついて" +#: js/piemenus.js:3018 +#: js/piemenus.js:3091 +#: js/utils/musicutils.js:1014 +#: js/utils/musicutils.js:1189 +#: js/utils/musicutils.js:1326 +#.TRANS: major is a music term related to intervals and mode +msgid "major" +msgstr "メジャー" -#: js/turtledefs.js:768 -msgid "Turtle Blocks is an open source collection of tools for exploring musical concepts." -msgstr "タートル・ブロックスは、 おんがくの コンセプトを たんきゅうするために つくられた、 オープンソースの ツールだ。" +#: js/piemenus.js:3018 +#: js/piemenus.js:3091 +#: js/utils/musicutils.js:1032 +#.TRANS: modal scale for music +msgid "ionian" +msgstr "アイオニアン おんかい" -#: js/turtledefs.js:770 -msgid "A full list of contributors can be found in the Turtle Blocks GitHub repository." -msgstr "タートル・ブロックスに かかわってきた ひとの いちらんは、 GitHub(ギットハブ) の リポジトリで みることができる。" +#: js/piemenus.js:3020 +#: js/piemenus.js:3095 +#: js/utils/musicutils.js:1012 +#: js/utils/musicutils.js:1190 +#: js/utils/musicutils.js:1323 +#.TRANS: minor is a music term related to intervals and mode +msgid "minor" +msgstr "マイナー(短)" -#: js/turtledefs.js:772 -msgid "Turtle Blocks is licensed under the AGPL." -msgstr "タートル・ブロックスの プログラムは、 だれでもじゆうに みたり、へんこうしたり することが できる。 " +#: js/piemenus.js:3020 +#: js/piemenus.js:3095 +#: js/utils/musicutils.js:1042 +#.TRANS: modal scale for music +msgid "aeolian" +msgstr "エオリアンおんかい" -#: js/turtledefs.js:780 -msgid "Turtle Blocks GitHub repository" -msgstr "タートル・ブロックスのリポジトリ" +#: js/piemenus.js:3410 +msgid "Duplicate" +msgstr "複製する" -#: js/turtledefs.js:783 -#: js/turtledefs.js:814 -#: js/help.js:337 -#: js/help.js:359 -msgid "Congratulations." -msgstr "おめでとうございます!" +#: js/piemenus.js:3412 +msgid "Move to trash" +msgstr "すてる" -#: js/turtledefs.js:784 -msgid "You have finished the tour. Please enjoy Turtle Blocks!" -msgstr "ミスター・マウスの ツアーは ここでおわり。 タートル・ブロックスを じゆうに たのしもう。" +#: js/piemenus.js:3413 +#: js/widgets/timbre.js:968 +#: planet/js/StringHelper.js:69 +msgid "Close" +msgstr "とじる" -#: js/turtledefs.js:791 -msgid "A detailed guide to Music Blocks is available." -msgstr "インターネットから、 ミュージック・ブロックスの さらに くわしい ガイドページを みることが できる。 つぎの リンクさきを ひらいて みよう。" +#: js/piemenus.js:3419 +msgid "Save stack" +msgstr "スタックを ほぞん" -#: js/turtledefs.js:795 -#: js/SaveInterface.js:76 -msgid "Music Blocks Guide" -msgstr "ミュージック・ブロックスガイド" +#: js/piemenus.js:3449 +msgid "In order to copy a sample, you must reload the widget, import the sample again, and export it." +msgstr "" -#: js/turtledefs.js:799 -msgid "Music Blocks is an open source collection of tools for exploring musical concepts." -msgstr "ミュージック・ブロックスは、 おんがくの コンセプトを たんきゅうするために つくられた、 オープンソースの ツールだ。" +#: js/piemenus.js:3812 +msgid "You have chosen key " +msgstr "へんかきごうは" -#: js/turtledefs.js:801 -msgid "A full list of contributors can be found in the Music Blocks GitHub repository." -msgstr "ミュージック・ブロックスに かかわってきた ひとの いちらんは、 GitHub(ギットハブ) の リポジトリで みることができる。" +#: js/piemenus.js:3816 +msgid " for your pitch preview." +msgstr "のおんかいによってしています。" -#: js/turtledefs.js:803 -msgid "Music Blocks is licensed under the AGPL." -msgstr "ミュージック・ブロックスの プログラムは、 だれでもじゆうに みたり、へんこうしたり することが できる。 " +#: js/turtle-singer.js:1363 +#.TRANS: partials are weighted components in a harmonic series +msgid "You must have at least one Partial block inside of a Weighted-partial block" +msgstr "「ばいおん ウェート」ブロックの なかに ひとつ いじょうの ばいおん ブロックが はいっている ひつようが あります。" -#: js/turtledefs.js:811 -msgid "Music Blocks GitHub repository" -msgstr "ミュージック・ブロックスのリポジトリ" +#: js/turtle-singer.js:2077 +msgid "synth cannot play chords." +msgstr "この シンセでは わおんが できません。" -#: js/turtledefs.js:815 -msgid "You have finished the tour. Please enjoy Music Blocks!" -msgstr "ミスター・マウスの ツアーは ここでおわり。 ミュージック・ブロックスを じゆうに たのしもう。" +#: js/utils/musicutils.js:505 +#: js/utils/musicutils.js:645 +#: js/widgets/pitchdrummatrix.js:228 +#: js/widgets/musickeyboard.js:2885 +msgid "rest" +msgstr "きゅうふ" -#: js/activity.js:369 -msgid "Search for blocks" -msgstr "ブロックをさがす" +#: js/utils/musicutils.js:689 +msgid "Perfect unison" +msgstr "" -#: js/activity.js:1145 -msgid "Refresh your browser to change to advanced mode." -msgstr "はってんモードに するには、 ブラウザを こうしん して下さい。" +#: js/utils/musicutils.js:689 +msgid "Diminished second" +msgstr "" -#: js/activity.js:1150 -msgid "Refresh your browser to change to beginner mode." -msgstr "かんたんモードに するには、 ブラウザを こうしん してください" +#: js/utils/musicutils.js:690 +msgid "Minor second" +msgstr "" -#: js/activity.js:1184 -msgid "Catching mice" -msgstr "ネズミを つかまえているよ" +#: js/utils/musicutils.js:690 +msgid "Augmented unison" +msgstr "" -#: js/activity.js:1185 -msgid "Cleaning the instruments" -msgstr "がっきの おていれを しているよ" +#: js/utils/musicutils.js:691 +msgid "Major second" +msgstr "" -#: js/activity.js:1186 -msgid "Testing key pieces" -msgstr "キーボードの おとを たしかめているよ" +#: js/utils/musicutils.js:691 +msgid "Diminished third" +msgstr "" -#: js/activity.js:1187 -msgid "Sight-reading" -msgstr "がくふを よみこんでいるよ" +#: js/utils/musicutils.js:692 +msgid "Minor third" +msgstr "" -#: js/activity.js:1188 -msgid "Combining math and music" -msgstr "おんがくと さんすうを くっつけているよ" +#: js/utils/musicutils.js:692 +msgid "Augmented second" +msgstr "" -#: js/activity.js:1189 -msgid "Generating more blocks" -msgstr "ブロックを たくさん つくっているよ" +#: js/utils/musicutils.js:693 +msgid "Major third" +msgstr "" -#: js/activity.js:1190 -msgid "Do Re Mi Fa Sol La Ti Do" -msgstr "ド レ ミ ファ ソ ラ シ ド" +#: js/utils/musicutils.js:693 +msgid "Diminished fourth" +msgstr "" -#: js/activity.js:1191 -msgid "Tuning string instruments" -msgstr "がっきの チューニングを しているよ" +#: js/utils/musicutils.js:694 +msgid "Perfect fourth" +msgstr "" -#: js/activity.js:1192 -msgid "Pressing random keys" -msgstr "キーボードで おんがくを つくっているよ" +#: js/utils/musicutils.js:694 +msgid "Augmented third" +msgstr "" -#: js/activity.js:1351 -msgid "plugins will be removed upon restart." -msgstr "プラグインは さいせいするときえるよ" +#: js/utils/musicutils.js:695 +msgid "Diminished fifth" +msgstr "" -#: js/activity.js:1360 -msgid "show Cartesian" -msgstr "ほうがん(ざひょう)を ひょうじ" +#: js/utils/musicutils.js:695 +msgid "Augmented fourth" +msgstr "" -#: js/activity.js:1842 -msgid "output tools" +#: js/utils/musicutils.js:696 +msgid "Perfect fifth" msgstr "" -#: js/activity.js:1845 -msgid "custom note" +#: js/utils/musicutils.js:696 +msgid "Diminished sixth" msgstr "" -#: js/activity.js:1848 -msgid "accidental name" +#: js/utils/musicutils.js:697 +msgid "Minor sixth" msgstr "" -#: js/activity.js:1851 -#: js/PitchBlocks.js:855 -msgid "east indian solfege" +#: js/utils/musicutils.js:697 +msgid "Augmented fifth" msgstr "" -#: js/activity.js:1854 -#: js/PitchBlocks.js:869 -msgid "note name" +#: js/utils/musicutils.js:698 +msgid "Major sixth" msgstr "" -#: js/activity.js:1857 -#: js/IntervalsBlocks.js:94 -msgid "temperament name" +#: js/utils/musicutils.js:698 +msgid "Diminished seventh" msgstr "" -#: js/activity.js:1863 -msgid "chord name" +#: js/utils/musicutils.js:699 +msgid "Minor seventh" msgstr "" -#: js/activity.js:1869 -msgid "filter type" +#: js/utils/musicutils.js:699 +msgid "Augmented sixth" msgstr "" -#: js/activity.js:1872 -msgid "oscillator type" +#: js/utils/musicutils.js:700 +msgid "Major seventh" msgstr "" -#: js/activity.js:1878 -#: js/DrumBlocks.js:32 -msgid "noise name" +#: js/utils/musicutils.js:700 +msgid "Diminished octave" msgstr "" -#: js/activity.js:1881 -#: js/DrumBlocks.js:75 -msgid "drum name" +#: js/utils/musicutils.js:701 +msgid "Perfect octave" msgstr "" -#: js/activity.js:1884 -#: js/DrumBlocks.js:119 -msgid "effects name" +#: js/utils/musicutils.js:701 +msgid "Augmented seventh" msgstr "" -#: js/activity.js:1887 -msgid "wrap mode" +#: js/utils/musicutils.js:702 +msgid "Minor ninth" msgstr "" -#: js/activity.js:1890 -msgid "load file" +#: js/utils/musicutils.js:702 +msgid "Augmented octave" msgstr "" -#: js/activity.js:2056 -msgid "This block is deprecated." -msgstr "この ブロックは もう ありません。" +#: js/utils/musicutils.js:703 +msgid "Major ninth" +msgstr "" -#: js/activity.js:2058 -msgid "Block cannot be found." -msgstr "ブロックが みつかりません。" +#: js/utils/musicutils.js:703 +msgid "Diminished tenth" +msgstr "" -#: js/activity.js:2266 -msgid "Saving block artwork" -msgstr "ブロックの アートを ほぞんちゅう" +#: js/utils/musicutils.js:704 +msgid "Minor tenth" +msgstr "" -#: js/activity.js:2277 -msgid "Erase" -msgstr "けす" +#: js/utils/musicutils.js:704 +msgid "Augmented ninth" +msgstr "" -#: js/activity.js:2301 -#: js/activity.js:2323 -msgid "Paste" -msgstr "はりつけ" +#: js/utils/musicutils.js:705 +msgid "Major tenth" +msgstr "" -#: js/activity.js:2305 -msgid "Save block help" -msgstr "ブロックの ヘルプを ほぞん" +#: js/utils/musicutils.js:705 +msgid "Diminished eleventh" +msgstr "" -#: js/activity.js:2390 -msgid "Jumping to the bottom of the page." -msgstr "がめんのしたにジャンプしています" +#: js/utils/musicutils.js:706 +msgid "Perfect eleventh" +msgstr "" -#: js/activity.js:2396 -msgid "Scrolling up." -msgstr "うえにスクロールしています" +#: js/utils/musicutils.js:706 +msgid "Augmented tenth" +msgstr "" -#: js/activity.js:2401 -msgid "Scrolling down." -msgstr "したにスクロールしています" +#: js/utils/musicutils.js:707 +msgid "Diminished twelfth" +msgstr "" -#: js/activity.js:2406 -msgid "Extracting block" -msgstr "ブロックを取り出しています" +#: js/utils/musicutils.js:707 +msgid "Augmented eleventh" +msgstr "" -#: js/activity.js:2414 -msgid "Moving block up." -msgstr "ブロックをうえにうごかしています" +#: js/utils/musicutils.js:708 +msgid "Perfect twelfth" +msgstr "" -#: js/activity.js:2435 -msgid "Moving block down." -msgstr "ブロックをしたにうごかしています" +#: js/utils/musicutils.js:708 +msgid "Diminished thirteenth" +msgstr "" -#: js/activity.js:2456 -msgid "Moving block left." -msgstr "ブロックをひだりにうごかしています" +#: js/utils/musicutils.js:709 +msgid "Minor thirteenth" +msgstr "" -#: js/activity.js:2473 -msgid "Moving block right." -msgstr "ブロックをみぎにうごかしています" +#: js/utils/musicutils.js:709 +msgid "Augmented fifth, plus an octave" +msgstr "" -#: js/activity.js:2488 -msgid "Jump to home position." -msgstr "まんなかにジャンプする" +#: js/utils/musicutils.js:710 +msgid "Major thirteenth" +msgstr "" -#: js/activity.js:2515 -msgid "Hide blocks" -msgstr "ブロックを ひひょうじ" +#: js/utils/musicutils.js:710 +msgid "Diminished seventh, plus an octave" +msgstr "" -#: js/activity.js:3389 -msgid "Click the run button to run the project." -msgstr "プロジェクトを さいせいするため、さいせいの ボタンを クリックして ください。" +#: js/utils/musicutils.js:838 +#.TRANS: ordinal number. Please keep exactly one space between each number. +msgid "1st 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th" +msgstr "1ど 2ど 3ど 4ど 5ど 6ど 7ど 8ど 9ど 10ど 11ど 12ど" -#: js/activity.js:3456 -#: js/SaveInterface.js:131 -#: js/SaveInterface.js:204 -#: js/SaveInterface.js:262 -#: js/SaveInterface.js:389 -#: js/SaveInterface.js:417 -#: js/ProjectStorage.js:27 -#: js/GlobalPlanet.js:467 -#: js/GlobalPlanet.js:469 -#: js/GlobalPlanet.js:495 -#.TRANS: default project title when saving as Lilypond -msgid "My Project" -msgstr "じぶんの プロジェクト" +#: js/utils/musicutils.js:1008 +#: js/utils/musicutils.js:1191 +#: js/utils/musicutils.js:1325 +#.TRANS: augmented is a music term related to intervals +msgid "augmented" +msgstr "オーギュメント(ぞう)" -#: js/activity.js:4261 -msgid "Show/hide block" -msgstr "ブロックを ひょうじする/かくす" +#: js/utils/musicutils.js:1010 +#: js/utils/musicutils.js:1192 +#: js/utils/musicutils.js:1324 +#.TRANS: diminished is a music term related to intervals and mode +msgid "diminished" +msgstr "ディミニッシュ(げん)" -#: js/activity.js:4263 -msgid "Expand/collapse blocks" -msgstr "ブロックを ひろげる/おりたたむ" +#: js/utils/musicutils.js:1016 +#: js/utils/musicutils.js:1322 +#: js/blocks/IntervalsBlocks.js:649 +#: js/turtleactions/IntervalsActions.js:120 +#: js/turtleactions/IntervalsActions.js:124 +#.TRANS: perfect is a music term related to intervals +msgid "perfect" +msgstr "パーフェクト(かんぜん)" -#: js/activity.js:4381 -msgid "Could not parse JSON input." -msgstr "JSONの インプットの パースが できません。" +#: js/utils/musicutils.js:1018 +#.TRANS: twelve semi-tone scale for music +msgid "chromatic" +msgstr "クロマティック おんかい" -#: js/activity.js:4684 -#: js/activity.js:4771 -#: js/activity.js:4821 -msgid "Cannot load project from the file. Please check the file type." -msgstr "プロジェクトを よみこめません。 ファイルの しゅるいを かくにん してください。" +#: js/utils/musicutils.js:1019 +msgid "algerian" +msgstr "アルジェリア おんかい" -#: js/activity.js:5051 -msgid "Invalid parameters" -msgstr "" +#: js/utils/musicutils.js:1020 +msgid "spanish" +msgstr "スペイン おんかい" -#: js/turtle-singer.js:1334 -#.TRANS: partials are weighted components in a harmonic series -msgid "You must have at least one Partial block inside of a Weighted-partial block" -msgstr "「ばいおん ウェート」ブロックの なかに ひとつ いじょうの ばいおん ブロックが はいっている ひつようが あります。" +#: js/utils/musicutils.js:1022 +#.TRANS: modal scale in music +msgid "octatonic" +msgstr "オクタトニック・スケール" -#: js/turtle-singer.js:2048 -msgid "synth cannot play chords." -msgstr "この シンセでは わおんが できません。" +#: js/utils/musicutils.js:1024 +#.TRANS: harmonic major scale in music +msgid "harmonic major" +msgstr "ハーモニック・メジャー(和声長おんかい)" -#: js/lilypond.js:614 -msgid "brown rat" -msgstr "ちゃいろの ドブネズミ" +#: js/utils/musicutils.js:1026 +#.TRANS: natural minor scales in music +msgid "natural minor" +msgstr "しぜんたん おんかい" -#: js/lilypond.js:615 -msgid "mole" -msgstr "もぐら" +#: js/utils/musicutils.js:1028 +#.TRANS: harmonic minor scale in music +msgid "harmonic minor" +msgstr "わせいたん おんかい" + +#: js/utils/musicutils.js:1030 +#.TRANS: melodic minor scale in music +msgid "melodic minor" +msgstr "せんりつたん おんかい" -#: js/lilypond.js:616 -msgid "chipmunk" -msgstr "リス" +#: js/utils/musicutils.js:1034 +#.TRANS: modal scale for music +msgid "dorian" +msgstr "ドリアン おんかい" -#: js/lilypond.js:617 -msgid "red squirrel" -msgstr "あかいリス" +#: js/utils/musicutils.js:1036 +#.TRANS: modal scale for music +msgid "phrygian" +msgstr "フリジアン おんかい" -#: js/lilypond.js:618 -msgid "guinea pig" -msgstr "ギニーピッグ" +#: js/utils/musicutils.js:1038 +#.TRANS: modal scale for music +msgid "lydian" +msgstr "リディアン おんかい" -#: js/lilypond.js:619 -msgid "capybara" -msgstr "カピバラ" +#: js/utils/musicutils.js:1040 +#.TRANS: modal scale for music +msgid "mixolydian" +msgstr "ミクソリディアン おんかい" -#: js/lilypond.js:620 -msgid "coypu" -msgstr "ヌートリア" +#: js/utils/musicutils.js:1044 +#.TRANS: modal scale for music +msgid "locrian" +msgstr "ロクリアン おんかい" -#: js/lilypond.js:621 -msgid "black rat" -msgstr "くろいねずみ" +#: js/utils/musicutils.js:1046 +#.TRANS: minor jazz scale for music +msgid "jazz minor" +msgstr "オルタード おんかい" -#: js/lilypond.js:622 -msgid "grey squirrel" -msgstr "はいいろの リス" +#: js/utils/musicutils.js:1048 +#.TRANS: bebop scale for music +msgid "bebop" +msgstr "ビバップ おんかい" -#: js/lilypond.js:623 -msgid "flying squirrel" -msgstr "モモンガ" +#: js/utils/musicutils.js:1049 +msgid "arabic" +msgstr "アラビア おんかい" -#: js/lilypond.js:624 -msgid "bat" -msgstr "こうもり" +#: js/utils/musicutils.js:1050 +msgid "byzantine" +msgstr "ビザンティン" -#: js/lilypond.js:757 -#: js/lilypond.js:921 -#: js/lilypond.js:959 -#: js/ActionBlocks.js:1256 -#: js/ExtrasBlocks.js:553 -msgid "start drum" -msgstr "ドラム・スタート" +#: js/utils/musicutils.js:1052 +#.TRANS: musical scale for music by Verdi +msgid "enigmatic" +msgstr "ヴェルディのおんかい" -#: js/SaveInterface.js:59 -#: js/SaveInterface.js:61 -#: js/SaveInterface.js:93 -msgid "Music Blocks Project" -msgstr "ミュージック・ブロックスの プロジェクト" +#: js/utils/musicutils.js:1053 +msgid "ethiopian" +msgstr "エチオピアおんかい" -#: js/SaveInterface.js:63 -msgid "This project was created in Music Blocks" -msgstr "この プロジェクトは、 ミュージック・ブロックスで さくせい されました。" +#: js/utils/musicutils.js:1055 +#.TRANS: Ethiopic scale for music +msgid "geez" +msgstr "ゲエズ おんかい" -#: js/SaveInterface.js:67 -msgid "Music Blocks is a Free/Libre Software application." -msgstr "ミュージック・ブロックスは、 おんがくの ちしきを たのしみながら みにつける ことの できる、 オープンソースの ソフト です。" +#: js/utils/musicutils.js:1056 +msgid "hindu" +msgstr "ヒンドゥー おんかい" -#: js/SaveInterface.js:69 -msgid "The source code can be accessed at" -msgstr "ミュージック・ブロックスの ソースコードは、 こちらの URLから みる ことが できます。" +#: js/utils/musicutils.js:1057 +msgid "hungarian" +msgstr "ハンガリー おんかい" -#: js/SaveInterface.js:72 -msgid "For more information, please consult the" -msgstr "もっと くわしく しりたい ばあいは、 ミュージック・ブロックスの ガイドを さんしょう して ください。" +#: js/utils/musicutils.js:1059 +#.TRANS: minor Romanian scale for music +msgid "romanian minor" +msgstr "ルーマニア・マイナー おんかい" -#: js/SaveInterface.js:83 -msgid "Alternatively, open the file in Music Blocks using the Load project button." -msgstr "「ファイルから プロジェクトを よみこむ」 ボタンを おして、 ファイルを ひらいて ください。" +#: js/utils/musicutils.js:1060 +msgid "spanish gypsy" +msgstr "スパニッシュ・ジプシー おんかい" -#: js/SaveInterface.js:85 -msgid "Project Code" -msgstr "プロジェクトの コード" +#: js/utils/musicutils.js:1062 +#.TRANS: musical scale for Mid-Eastern music +msgid "maqam" +msgstr "マカーム おんかい" -#: js/SaveInterface.js:87 -msgid "This code stores data about the blocks in a project." -msgstr "この コードは、 がいとう する ばあい、 へんしゅう された バージョンの プロジェクトと いっしょに、 プロジェクトの なかの ブロックに かんする データを ほぞん します。" +#: js/utils/musicutils.js:1064 +#.TRANS: minor blues scale for music +msgid "minor blues" +msgstr "マイナー・ブルース おんかい" -#: js/SaveInterface.js:89 -msgid "Show" -msgstr "プロジェクトの コードを ひょうじ する" +#: js/utils/musicutils.js:1066 +#.TRANS: major blues scale for music +msgid "major blues" +msgstr "メジャー・ブルース おんかい" -#: js/SaveInterface.js:91 -msgid "Hide" -msgstr "プロジェクトの コードを ひひょうじに する" +#: js/utils/musicutils.js:1067 +msgid "whole tone" +msgstr "ホールトーン おんかい" -#: js/SaveInterface.js:197 -#: js/SaveInterface.js:58 -msgid "No description provided" -msgstr "きにゅうが ありません" +#: js/utils/musicutils.js:1069 +#.TRANS: pentatonic is a general term that means "five note scale". This scale is typically known as "minor pentatonic" +msgid "minor pentatonic" +msgstr "マイナー・ペンタトニック おんかい" -#: js/SaveInterface.js:332 -msgid "Your recording is in progress." -msgstr "" +#: js/utils/musicutils.js:1071 +#.TRANS: pentatonic is a general term that means "five note scale". This scale is typically known as "major pentatonic" +msgid "major pentatonic" +msgstr "メジャー・ペンタトニックおんかい" -#: js/SaveInterface.js:401 -#.TRANS: File name prompt for save as Lilypond -msgid "File name" -msgstr "ファイルめい" +#: js/utils/musicutils.js:1072 +msgid "chinese" +msgstr "ちゅうごく おんかい" -#: js/SaveInterface.js:403 -#: js/StringHelper.js:39 -#.TRANS: Project title prompt for save as Lilypond -msgid "Project title" -msgstr "きょくめい" +#: js/utils/musicutils.js:1073 +msgid "egyptian" +msgstr "エジプト おんかい" -#: js/SaveInterface.js:405 -#.TRANS: Project title prompt for save as Lilypond -msgid "Project author" -msgstr "さっきょくか" +#: js/utils/musicutils.js:1075 +#.TRANS: https://en.wikipedia.org/wiki/Hirajoshi_scale NOTE: There are three different versions of this scale +msgid "hirajoshi" +msgstr "ひらじょうし" -#: js/SaveInterface.js:407 -#.TRANS: MIDI prompt for save as Lilypond -msgid "Include MIDI output?" -msgstr "MIDIのアウトプット がくふにも まとめましょうか?" +#: js/utils/musicutils.js:1076 +msgid "Japan" +msgstr "にほん" -#: js/SaveInterface.js:409 -#.TRANS: Guitar prompt for save as Lilypond -msgid "Include guitar tablature output?" -msgstr "ギターの TABも がくふに まとめましょうか?" +#: js/utils/musicutils.js:1078 +#.TRANS: https://en.wikipedia.org/wiki/In_scale and https://en.wikipedia.org/wiki/Sakura_Sakura +msgid "in" +msgstr "いんおんかい" -#: js/SaveInterface.js:411 -#.TRANS: Lilypond is a scripting language for generating sheet music -msgid "Save as Lilypond" -msgstr "Lilypondがくふの フォーマットで ほぞん" +#: js/utils/musicutils.js:1080 +#.TRANS: https://en.wikipedia.org/wiki/Miny%C5%8D_scale +msgid "minyo" +msgstr "みんよ おんかい" -#: js/SaveInterface.js:426 -#: js/EnsembleBlocks.js:75 -#: js/EnsembleBlocks.js:154 -#: js/EnsembleBlocks.js:216 -#: js/EnsembleBlocks.js:302 -#: js/EnsembleBlocks.js:348 -#: js/EnsembleBlocks.js:389 -#: js/EnsembleBlocks.js:441 -#: js/EnsembleBlocks.js:490 -#: js/EnsembleBlocks.js:536 -#: js/EnsembleBlocks.js:583 -#: js/EnsembleBlocks.js:637 -#: js/EnsembleBlocks.js:753 -#: js/EnsembleBlocks.js:840 -#: js/EnsembleBlocks.js:899 -#: js/EnsembleBlocks.js:942 -#: js/EnsembleBlocks.js:1212 -#: js/EnsembleBlocks.js:1280 -#.TRANS: default project author when saving as Lilypond -msgid "Mr. Mouse" -msgstr "ミスター・マウス" +#: js/utils/musicutils.js:1082 +#.TRANS: Italian mathematician +msgid "fibonacci" +msgstr "フィボナッチ おんかい" -#: js/SaveInterface.js:573 -msgid "The Lilypond code is copied to clipboard. You can paste it here: " -msgstr "" +#: js/utils/musicutils.js:1083 +#: js/utils/musicutils.js:1134 +#: js/utils/musicutils.js:1177 +#: js/utils/musicutils.js:1199 +#: js/utils/synthutils.js:134 +#: js/blocks/IntervalsBlocks.js:1124 +#: js/blocks/ToneBlocks.js:946 +#: js/blocks/VolumeBlocks.js:411 +#: js/blocks/WidgetBlocks.js:399 +#: js/blocks/WidgetBlocks.js:404 +#: js/turtleactions/VolumeActions.js:218 +#: js/widgets/modewidget.js:919 +#.TRANS: customize voice +msgid "custom" +msgstr "オリジナル" -#: js/RhythmBlockPaletteBlocks.js:50 -#: js/RhythmBlockPaletteBlocks.js:232 -#.TRANS: rhythm block -#.TRANS: translate "rhythm1" as rhythm -msgid "rhythm1" -msgstr "れんぷ(かけ算)" +#: js/utils/musicutils.js:1085 +#: js/utils/musicutils.js:1531 +#: js/blocks/WidgetBlocks.js:176 +#.TRANS: highpass filter +msgid "highpass" +msgstr "ハイパス・フィルター" -#: js/RhythmBlockPaletteBlocks.js:70 -#: js/RhythmBlockPaletteBlocks.js:251 -#: js/RhythmBlockPaletteBlocks.js:484 -#: js/RhythmBlockPaletteBlocks.js:553 -#: js/RhythmBlockPaletteBlocks.js:874 -msgid "number of notes" -msgstr "おんぷの かず" +#: js/utils/musicutils.js:1087 +#: js/utils/musicutils.js:1532 +#.TRANS: lowpass filter +msgid "lowpass" +msgstr "ローパス・フィルター" -#: js/RhythmBlockPaletteBlocks.js:126 -msgid "polyphonic rhythm" -msgstr "ポリリズム" +#: js/utils/musicutils.js:1089 +#: js/utils/musicutils.js:1533 +#.TRANS: bandpass filter +msgid "bandpass" +msgstr "バンドパス・フィルター" -#: js/RhythmBlockPaletteBlocks.js:218 -msgid "The Rhythm block is used to generate rhythm patterns." -msgstr "

れんぷブロック(かけざん)


まとまった いくつかの おんぷ。 いっていの ながさの おとを 3つや 5つなど くりかえして つかう。3れんぷ や 5れんぷ など、 2のばいすう ではない おんぷの かずで グループを つくりやすくなる。" +#: js/utils/musicutils.js:1091 +#: js/utils/musicutils.js:1534 +#.TRANS: high-shelf filter +msgid "highshelf" +msgstr "ハイシェルフ・フィルター" -#: js/RhythmBlockPaletteBlocks.js:279 -msgid "1/64 note" -msgstr "64ぶん おんぷ" +#: js/utils/musicutils.js:1093 +#: js/utils/musicutils.js:1535 +#.TRANS: low-shelf filter +msgid "lowshelf" +msgstr "ローシェルフ・フィルター" -#: js/RhythmBlockPaletteBlocks.js:303 -msgid "1/32 note" -msgstr "32ぶん おんぷ" +#: js/utils/musicutils.js:1095 +#: js/utils/musicutils.js:1536 +#.TRANS: notch-shelf filter +msgid "notch" +msgstr "ノッチ・フィルター" -#: js/RhythmBlockPaletteBlocks.js:331 -msgid "1/16 note" -msgstr "16ぶん おんぷ" +#: js/utils/musicutils.js:1097 +#: js/utils/musicutils.js:1537 +#.TRANS: all-pass filter +msgid "allpass" +msgstr "オールパスフィルター" -#: js/RhythmBlockPaletteBlocks.js:359 -msgid "eighth note" -msgstr "8ぶん おんぷ" +#: js/utils/musicutils.js:1099 +#: js/utils/musicutils.js:1538 +#.TRANS: peaking filter +msgid "peaking" +msgstr "ピーク・フィルタ" -#: js/RhythmBlockPaletteBlocks.js:387 -msgid "quarter note" -msgstr "4ぶ おんぷ" +#: js/utils/musicutils.js:1100 +#: js/utils/musicutils.js:1546 +#: js/utils/synthutils.js:126 +#: js/blocks/PitchBlocks.js:85 +#.TRANS: sine wave +msgid "sine" +msgstr "サインは" -#: js/RhythmBlockPaletteBlocks.js:415 -msgid "half note" -msgstr "2ぶ おんぷ" +#: js/utils/musicutils.js:1101 +#: js/utils/musicutils.js:1547 +#: js/utils/synthutils.js:128 +#: js/blocks/PitchBlocks.js:39 +#.TRANS: square wave +msgid "square" +msgstr "しかくの なみ" -#: js/RhythmBlockPaletteBlocks.js:443 -msgid "whole note" -msgstr "ぜんおんぷ" +#: js/utils/musicutils.js:1102 +#: js/utils/musicutils.js:1548 +#: js/utils/synthutils.js:132 +#: js/blocks/PitchBlocks.js:62 +#: js/blocks/ToneBlocks.js:39 +#.TRANS: triangle wave +msgid "triangle" +msgstr "さんかくの なみ" -#: js/RhythmBlockPaletteBlocks.js:481 -#: js/RhythmBlockPaletteBlocks.js:550 -#: js/RhythmBlockPaletteBlocks.js:601 -#.TRANS: A tuplet is a note value divided into irregular time values. -msgid "tuplet" -msgstr "~れんぷ(タプル)" +#: js/utils/musicutils.js:1103 +#: js/utils/musicutils.js:1549 +#: js/utils/synthutils.js:130 +#: js/blocks/PitchBlocks.js:108 +#.TRANS: sawtooth wave +msgid "sawtooth" +msgstr "ぎざぎざの なみ" -#: js/RhythmBlockPaletteBlocks.js:767 -msgid "septuplet" -msgstr "7れんぷ" +#: js/utils/musicutils.js:1105 +#: js/utils/musicutils.js:1312 +#: js/blocks/PitchBlocks.js:931 +#: js/blocks/PitchBlocks.js:937 +#: js/turtleactions/PitchActions.js:469 +#.TRANS: even numbers +#.TRANS: invert based on even or odd number or musical scale +msgid "even" +msgstr "ぐうすう" -#: js/RhythmBlockPaletteBlocks.js:795 -msgid "quintuplet" -msgstr "5れんぷ" +#: js/utils/musicutils.js:1107 +#: js/utils/musicutils.js:1313 +#: js/blocks/PitchBlocks.js:937 +#: js/turtleactions/PitchActions.js:471 +#.TRANS: odd numbers +msgid "odd" +msgstr "きすう" -#: js/RhythmBlockPaletteBlocks.js:823 -msgid "triplet" -msgstr "3れんぷ" +#: js/utils/musicutils.js:1108 +#: js/utils/musicutils.js:1314 +#: js/blocks/PitchBlocks.js:937 +#: js/turtleactions/PitchActions.js:473 +msgid "scalar" +msgstr "おんかいてき" -#: js/RhythmBlockPaletteBlocks.js:850 -msgid "simple tuplet" -msgstr "れんぷ(わり算)" +#: js/utils/musicutils.js:1109 +#: js/utils/synthutils.js:72 +#: js/blocks/VolumeBlocks.js:47 +#.TRANS: musical instrument +msgid "piano" +msgstr "ピアノ" -#: js/RhythmBlockPaletteBlocks.js:860 -msgid "Tuplets are a collection of notes that get scaled to a specific duration." -msgstr "

れんぷブロック(わりざん)


まとまった いくつかの おんぷ。いっていの ながさの おとを 3つや 5つに とうぶんして つかう。3れんぷ や 5れんぷ など、 2のばいすう ではない おんぷの かずで グループを つくりやすくなる。" +#: js/utils/musicutils.js:1110 +#: js/utils/synthutils.js:74 +#.TRANS: musical instrument +msgid "violin" +msgstr "バイオリン" -#: js/WidgetBlocks.js:71 -#.TRANS: sound envelope (ADSR) -msgid "envelope" -msgstr "エンベロープ" +#: js/utils/musicutils.js:1111 +#: js/utils/synthutils.js:76 +#.TRANS: viola musical instrument +msgid "viola" +msgstr "ビオラ" -#: js/WidgetBlocks.js:79 -#.TRANS: Attack time is the time taken for initial run-up of level from nil to peak, beginning when the key is first pressed. -msgid "attack" -msgstr "アタック" +#: js/utils/musicutils.js:1112 +#: js/utils/synthutils.js:114 +#.TRANS: xylophone musical instrument +msgid "xylophone" +msgstr "もっきん" -#: js/WidgetBlocks.js:81 -#.TRANS: Decay time is the time taken for the subsequent run down from the attack level to the designated sustain level. -msgid "decay" -msgstr "ディケイ" +#: js/utils/musicutils.js:1113 +#: js/utils/synthutils.js:136 +#.TRANS: vibraphone musical instrument +msgid "vibraphone" +msgstr "てっきん" -#: js/WidgetBlocks.js:83 -#.TRANS: Sustain level is the level during the main sequence of the sound's duration, until the key is released. -msgid "sustain" -msgstr "サステイン" +#: js/utils/musicutils.js:1114 +#: js/utils/synthutils.js:78 +#.TRANS: musical instrument +msgid "cello" +msgstr "チェロ" -#: js/WidgetBlocks.js:85 -#.TRANS: Release time is the time taken for the level to decay from the sustain level to zero after the key is released. -msgid "release" -msgstr "リリース" +#: js/utils/musicutils.js:1116 +#: js/utils/synthutils.js:82 +#.TRANS: viola musical instrument +msgid "double bass" +msgstr "ダブルベース" -#: js/WidgetBlocks.js:96 -msgid "Attack value should be from 0 to 100." -msgstr "アタック あたいには 0 いじょう 100いかの すうじを いれて ください。" +#: js/utils/musicutils.js:1117 +#: js/utils/synthutils.js:84 +#: js/widgets/rhythmruler.js:2511 +#.TRANS: musical instrument +msgid "guitar" +msgstr "ギター" -#: js/WidgetBlocks.js:99 -msgid "Decay value should be from 0 to 100." -msgstr "げんすい あたいには 0 いじょう 100いかの すうじを いれて ください。" +#: js/utils/musicutils.js:1118 +#: js/utils/synthutils.js:86 +#.TRANS: musical instrument +msgid "acoustic guitar" +msgstr "アコースティック" -#: js/WidgetBlocks.js:102 -msgid "Sustain value should be from 0 to 100." -msgstr "サステイン あたいには 0 いじょう 100いかの すうじを いれて ください。" +#: js/utils/musicutils.js:1119 +#: js/utils/synthutils.js:88 +#.TRANS: musical instrument +msgid "flute" +msgstr "フルート" -#: js/WidgetBlocks.js:105 -msgid "Release value should be from 0-100." -msgstr "リリース あたいには 0 いじょう100いかの すうじを いれて ください。" +#: js/utils/musicutils.js:1120 +#: js/utils/synthutils.js:90 +#.TRANS: musical instrument +msgid "clarinet" +msgstr "クラリネット" -#: js/WidgetBlocks.js:121 -msgid "You are adding multiple envelope blocks." -msgstr "封筒ブロックを複数追加しています。" +#: js/utils/musicutils.js:1121 +#: js/utils/synthutils.js:92 +#.TRANS: musical instrument +msgid "saxophone" +msgstr "サクソフォン" -#: js/WidgetBlocks.js:144 -#.TRANS: a filter removes some unwanted components from a signal -msgid "filter" -msgstr "フィルター" +#: js/utils/musicutils.js:1122 +#: js/utils/synthutils.js:94 +#.TRANS: musical instrument +msgid "tuba" +msgstr "チューバ" -#: js/WidgetBlocks.js:149 -#: js/musicutils.js:706 -#: js/musicutils.js:1105 -#.TRANS: highpass filter -msgid "highpass" -msgstr "ハイパス・フィルター" +#: js/utils/musicutils.js:1123 +#: js/utils/synthutils.js:96 +#.TRANS: musical instrument +msgid "trumpet" +msgstr "トランペット" -#: js/WidgetBlocks.js:152 -#: js/ToneBlocks.js:42 -#: js/timbre.js:1558 -#: js/timbre.js:1808 -#.TRANS: type of filter, e.g., lowpass, highpass, etc. -#.TRANS: there are different types (sine, triangle, square...) of oscillators. -msgid "type" -msgstr "しゅるい" +#: js/utils/musicutils.js:1124 +#: js/utils/synthutils.js:98 +#.TRANS: musical instrument +msgid "oboe" +msgstr "オーボエ" -#: js/WidgetBlocks.js:154 -#: js/timbre.js:1818 -#.TRANS: rolloff is the steepness of a change in frequency. -msgid "rolloff" -msgstr "ロールオフ" +#: js/utils/musicutils.js:1125 +#: js/utils/synthutils.js:100 +#.TRANS: musical instrument +msgid "trombone" +msgstr "トロンボーン" -#: js/WidgetBlocks.js:155 -#: js/MediaBlocks.js:692 -#: js/temperament.js:382 -#: js/temperament.js:417 -#: js/temperament.js:477 -#: js/temperament.js:485 -#: js/temperament.js:1348 -#: js/timbre.js:1842 -msgid "frequency" -msgstr "周波数" +#: js/utils/musicutils.js:1126 +#: js/utils/synthutils.js:116 +#.TRANS: polytone synthesizer +msgid "electronic synth" +msgstr "シンセサイザー" -#: js/WidgetBlocks.js:179 -#.TRANS: rolloff is the steepness of a change in frequency. -msgid "Rolloff value should be either -12, -24, -48, or -96 decibels/octave." -msgstr "ロールオフ あたいは -12, -24, -48, -98 デシベル / オクターヴ である ひつようが あります。" +#: js/utils/musicutils.js:1127 +#: js/utils/synthutils.js:118 +#.TRANS: simple monotone synthesizer +msgid "simple 1" +msgstr "シンプル1" -#: js/WidgetBlocks.js:211 -msgid "The Temperament tool is used to define custom tuning." -msgstr "" +#: js/utils/musicutils.js:1128 +msgid "simple 2" +msgstr "シンプル2" -#: js/WidgetBlocks.js:277 -#: js/sampler.js:329 -msgid "Upload a sample and adjust its pitch center." -msgstr "ねいろサンプルを アップロードして、 おとの たかさを あわせる" +#: js/utils/musicutils.js:1129 +msgid "simple 3" +msgstr "シンプル3" -#: js/WidgetBlocks.js:284 -#.TRANS: the speed at music is should be played. -msgid "sampler" -msgstr "サンプラー" +#: js/utils/musicutils.js:1130 +msgid "simple 4" +msgstr "シンプル4" -#: js/WidgetBlocks.js:329 -#: js/WidgetBlocks.js:334 -#: js/IntervalsBlocks.js:928 -#: js/VolumeBlocks.js:411 -#: js/ToneBlocks.js:946 -#: js/VolumeActions.js:218 -#: js/musicutils.js:704 -#: js/musicutils.js:755 -#: js/musicutils.js:798 -#: js/musicutils.js:820 -#: js/musicutils.js:1136 -#: js/synthutils.js:118 -#: js/modewidget.js:919 -#.TRANS: customize voice -msgid "custom" -msgstr "オリジナル" +#: js/utils/musicutils.js:1131 +#: js/utils/synthutils.js:58 +#: js/blocks/DrumBlocks.js:191 +#.TRANS: white noise synthesizer +msgid "white noise" +msgstr "ホワイト ノイズ" -#: js/WidgetBlocks.js:432 -msgid "The Meter block opens a tool to select strong beats for the meter." -msgstr "

ひょうしブロック


テーブルの すうじを クリックして、 つよい はくの いちを きめる。
★ひょうし とは
はくが いくつか まとまった もの。
★はく とは
くりかえされる リズムの こと。" +#: js/utils/musicutils.js:1132 +#: js/utils/synthutils.js:60 +#.TRANS: brown noise synthesizer +msgid "brown noise" +msgstr "ブラウンノイズ" -#: js/WidgetBlocks.js:473 -msgid "The oscilloscope block opens a tool to visualize waveforms." -msgstr "" +#: js/utils/musicutils.js:1133 +#: js/utils/synthutils.js:62 +#.TRANS: pink noise synthesizer +msgid "pink noise" +msgstr "ピンクノイズ" -#: js/WidgetBlocks.js:478 -msgid "oscilloscope" -msgstr "オシロスコープ" +#: js/utils/musicutils.js:1135 +#: js/utils/synthutils.js:148 +#: js/widgets/rhythmruler.js:2057 +#: js/widgets/rhythmruler.js:2319 +#.TRANS: musical instrument +msgid "snare drum" +msgstr "スネアドラム" -#: js/WidgetBlocks.js:530 -msgid "The Custom mode block opens a tool to explore musical mode (the spacing of the notes in a scale)." -msgstr "

モード(おんかい)ブロック


いろいろな ちょうを さがす ツールを ひょうじする。おんかいは、 おとと おとの かんかくを きめながら さがすことが できる。

★おんかいとは
じゅんばんに ならんだ おとの まとまり。たとえば、「ド」 を はじまりのおと に したときの 「ドレミファソラシド」、 「ソ」 を はじまりのおと に したときの 「ソラシドレミ(♯ファ)ソ」 の こと。" +#: js/utils/musicutils.js:1136 +#: js/utils/synthutils.js:150 +#.TRANS: musical instrument +msgid "kick drum" +msgstr "キックドラム" -#: js/WidgetBlocks.js:536 -#.TRANS: musical mode is the pattern of half-steps in an octave, e.g., Major or Minor modes -msgid "custom mode" -msgstr "おんかい" +#: js/utils/musicutils.js:1137 +#: js/utils/synthutils.js:152 +#.TRANS: musical instrument +msgid "tom tom" +msgstr "タムタム" -#: js/WidgetBlocks.js:570 -msgid "The Tempo block opens a metronome to visualize the beat." -msgstr "

メトロノームブロック


メトロノームを ひょうじする。 ボタンを おすと、 メトロノームの はやさを かえられる。 テーブルには、 1ぷんあたりの はくのかずが ひょうじされる。

★はくとは
くりかえされる リズムのこと。" +#: js/utils/musicutils.js:1138 +#: js/utils/synthutils.js:154 +#.TRANS: musical instrument +msgid "floor tom" +msgstr "フロアタム" -#: js/WidgetBlocks.js:617 -msgid "The Arpeggio Widget is used to compose chord sequences." -msgstr "「アルペジオ」ウィジェットは コードしんこう をつくる ためです。" +#: js/utils/musicutils.js:1139 +#: js/utils/synthutils.js:156 +#.TRANS: musical instrument +msgid "bass drum" +msgstr "バスドラム" -#: js/WidgetBlocks.js:623 -#: js/IntervalsBlocks.js:683 -msgid "arpeggio" -msgstr "アルペジオ" +#: js/utils/musicutils.js:1140 +#: js/utils/synthutils.js:158 +#.TRANS: a drum made from an inverted cup +msgid "cup drum" +msgstr "カップドラム" -#: js/WidgetBlocks.js:677 -msgid "The Pitch drum matrix is used to map pitches to drum sounds." -msgstr "" +#: js/utils/musicutils.js:1141 +#: js/utils/synthutils.js:160 +#.TRANS: musical instrument +msgid "darbuka drum" +msgstr "ダブカドラム" -#: js/WidgetBlocks.js:682 -#.TRANS: makes a mapping between pitches and drum sounds -msgid "pitch-drum mapper" -msgstr "音高-ドラム・マッパー" +#: js/utils/musicutils.js:1142 +#: js/utils/synthutils.js:164 +#.TRANS: musical instrument +msgid "hi hat" +msgstr "ハイハット" -#: js/WidgetBlocks.js:724 -msgid "You must have at least one pitch block and one drum block in the matrix." -msgstr "フレーズメーカーブロックには、 おとの たかさブロックと ドラムブロックを さいてい 1つずつ いれて ください。" +#: js/utils/musicutils.js:1143 +#: js/utils/synthutils.js:166 +#.TRANS: a small metal bell +msgid "ride bell" +msgstr "ライドベル" -#: js/WidgetBlocks.js:746 -msgid "The Pitch slider tool to is used to generate pitches at selected frequencies." -msgstr "

ヘルツスライダーブロック


スライダーを じょうげに うごかすことで、 ちがう しゅうはすう(ヘルツのすうち) の おとを きくことが できる。 つくった おとを データに することが できる。また、 ヘルツの しょきせっていち は じゆうに かえられる。
★ヘルツとは
おとの たかさを あらわす しゅうはすう。
★しゅうはすうとは
おとが 1びょうかん に なんかい しんどうするかを あらわす すうち。 しゅうはすうが たかい (すうちが おおきい) ほど、 おとが たかくなる。" +#: js/utils/musicutils.js:1144 +#: js/utils/synthutils.js:168 +#.TRANS: musical instrument +msgid "cow bell" +msgstr "カウベル" -#: js/WidgetBlocks.js:751 -#.TRANS: widget to generate pitches using a slider -msgid "pitch slider" -msgstr "ヘルツスライダー" +#: js/utils/musicutils.js:1145 +msgid "japanese drum" +msgstr "たいこ" -#: js/WidgetBlocks.js:788 -msgid "chromatic keyboard" -msgstr "クロマティック キーボード" +#: js/utils/musicutils.js:1146 +#: js/utils/synthutils.js:174 +#.TRANS: musical instrument +msgid "japanese bell" +msgstr "しょう" -#: js/WidgetBlocks.js:815 -#: js/WidgetBlocks.js:874 -#.TRANS: widget to generate pitches using a slider -msgid "music keyboard" -msgstr "キーボード" +#: js/utils/musicutils.js:1147 +#: js/utils/synthutils.js:170 +#.TRANS: musical instrument +msgid "triangle bell" +msgstr "トライアングル" -#: js/WidgetBlocks.js:859 -#: js/WidgetBlocks.js:866 -msgid "The Music keyboard block opens a piano keyboard that can be used to create notes." -msgstr "

キーボードブロック


ピアノの キーボードを ひょうじする。 つくったおとを データに することが できる。" +#: js/utils/musicutils.js:1148 +#: js/utils/synthutils.js:172 +#.TRANS: musical instrument +msgid "finger cymbals" +msgstr "フィンガー シンバル" -#: js/WidgetBlocks.js:910 -msgid "The Pitch staircase tool to is used to generate pitches from a given ratio." -msgstr "" +#: js/utils/musicutils.js:1149 +#: js/utils/synthutils.js:176 +#.TRANS: a musically tuned set of bells +msgid "chime" +msgstr "チャイム" -#: js/WidgetBlocks.js:917 -#.TRANS: generate a progressive sequence of pitches -msgid "pitch staircase" -msgstr "音高の数列を作る" +#: js/utils/musicutils.js:1150 +#: js/utils/synthutils.js:178 +#.TRANS: a musical instrument +msgid "gong" +msgstr "ドラ" -#: js/WidgetBlocks.js:982 -msgid "The Rhythm Maker block opens a tool to create drum machines." -msgstr "

リズムメーカー ブロック


おとの ながさで ぶんかつして、 リズムを つくる テーブルを ひょうじする。 つくった リズムを データに することが できる。" +#: js/utils/musicutils.js:1151 +#: js/utils/synthutils.js:180 +#.TRANS: sound effect +msgid "clang" +msgstr "カチャカチャ" -#: js/WidgetBlocks.js:1036 -msgid "G major scale" -msgstr "Gメジャー" +#: js/utils/musicutils.js:1152 +#: js/utils/synthutils.js:182 +#.TRANS: sound effect +msgid "crash" +msgstr "クラッシュ" -#: js/WidgetBlocks.js:1064 -msgid "C major scale" -msgstr "Cメジャー" +#: js/utils/musicutils.js:1153 +#: js/utils/synthutils.js:184 +#.TRANS: sound effect +msgid "bottle" +msgstr "あきびん" -#: js/WidgetBlocks.js:1097 -msgid "The Phrase Maker block opens a tool to create musical phrases." -msgstr "

フレーズメーカーブロック


フレーズを つくるための テーブルを ひょうじする。 つくった フレーズを データに することが できる。

" +#: js/utils/musicutils.js:1154 +#: js/utils/synthutils.js:186 +#.TRANS: sound effect +msgid "clap" +msgstr "てびょうし" -#: js/WidgetBlocks.js:1104 -#.TRANS: assigns pitch to a sequence of beats to generate a melody -msgid "phrase maker" -msgstr "フレーズメーカー" +#: js/utils/musicutils.js:1155 +#: js/utils/synthutils.js:188 +#.TRANS: sound effect +msgid "slap" +msgstr "ピシャリ" -#: js/WidgetBlocks.js:1168 -msgid "You must have at least one pitch block and one rhythm block in the matrix." -msgstr "フレーズメーカーには、 おとのたかさ ブロックと おんぷブロックを くみあわせて ください。" +#: js/utils/musicutils.js:1156 +#: js/utils/synthutils.js:190 +#.TRANS: sound effect +msgid "splash" +msgstr "しぶき" -#: js/WidgetBlocks.js:1220 -msgid "The Status block opens a tool for inspecting the status of Music Blocks as it is running." -msgstr "

じっこうじょうきょうブロック


ブロックのじっこうじょうきょうをけんさくするテーブルをひょうじする。
" +#: js/utils/musicutils.js:1157 +#: js/utils/synthutils.js:192 +#.TRANS: sound effect +msgid "bubbles" +msgstr "あわ" -#: js/IntervalsBlocks.js:45 -msgid "set temperament" -msgstr "おんりつを せってい" +#: js/utils/musicutils.js:1158 +#: js/utils/synthutils.js:194 +#.TRANS: sound effect +msgid "raindrop" +msgstr "あめのしずく" -#: js/IntervalsBlocks.js:63 -#: js/MediaBlocks.js:746 -#: js/PitchBlocks.js:657 -#: js/PitchBlocks.js:933 -#: js/PitchBlocks.js:972 -#: js/PitchBlocks.js:1005 -#: js/PitchBlocks.js:1166 -#: js/PitchBlocks.js:1679 -#: js/PitchBlocks.js:1720 -#: js/PitchBlocks.js:1827 -#: js/ToneBlocks.js:1025 -#.TRANS: adjusts the shift up or down by one octave (twelve half-steps in the interval between two notes, one having twice or half the frequency in Hz of the other.) -msgid "octave" -msgstr "オクターヴの たかさ" +#: js/utils/musicutils.js:1159 +#: js/utils/synthutils.js:196 +#.TRANS: animal sound effect +msgid "cat" +msgstr "ねこ" -#: js/IntervalsBlocks.js:99 -msgid "The Temperament name block is used to select a tuning method." -msgstr "
おんりつブロック
ちょうりつの しかたを せっていする。
★おんりつとは
おんてい (おとどうしの へだたり) の きめかた。 おなじ おんかい でも、 おんりつに よって おとの たかさが かわる。
★ちょうりつとは
がっきの おとのたかさを、 おんりつに したがって ととのえること。" +#: js/utils/musicutils.js:1160 +#: js/utils/synthutils.js:198 +#.TRANS: animal sound effect +msgid "cricket" +msgstr "こおろぎ" -#: js/IntervalsBlocks.js:161 -msgid "doubly" -msgstr "じゅう" +#: js/utils/musicutils.js:1161 +#: js/utils/synthutils.js:200 +#.TRANS: animal sound effect +msgid "dog" +msgstr "いぬ" -#: js/IntervalsBlocks.js:166 -msgid "The Doubly block will double the size of an interval." -msgstr "" +#: js/utils/musicutils.js:1163 +#: js/utils/synthutils.js:102 +#.TRANS: musical instrument +msgid "banjo" +msgstr "バンジョー" -#: js/IntervalsBlocks.js:262 -msgid "interval number" -msgstr "おんていを かずで ひょうじ" +#: js/utils/musicutils.js:1164 +#: js/utils/synthutils.js:104 +#.TRANS: musical instrument +msgid "koto" +msgstr "こと" -#: js/IntervalsBlocks.js:330 -#.TRANS: measure the distance between two pitches in semi-tones -msgid "semi-tone interval measure" -msgstr "半おんかい的音程で計る" +#: js/utils/musicutils.js:1165 +#: js/utils/synthutils.js:106 +#.TRANS: musical instrument +msgid "dulcimer" +msgstr "ダルシマー" -#: js/IntervalsBlocks.js:397 -#: js/IntervalsBlocks.js:513 -msgid "You must use two pitch blocks when measuring an interval." -msgstr "音程を計る際は、2つの音符を使うひつようがあります。" +#: js/utils/musicutils.js:1166 +#: js/utils/synthutils.js:108 +#.TRANS: musical instrument +msgid "electric guitar" +msgstr "エレクトリック" -#: js/IntervalsBlocks.js:439 -msgid "The Scalar interval block measures the distance between two notes in the current key and mode." -msgstr "" +#: js/utils/musicutils.js:1167 +#: js/utils/synthutils.js:110 +#.TRANS: musical instrument +msgid "bassoon" +msgstr "バスーン" -#: js/IntervalsBlocks.js:445 -#.TRANS: measure the distance between two pitches in steps of musical scale -msgid "scalar interval measure" -msgstr "全おんかい的音程で計る" +#: js/utils/musicutils.js:1168 +#: js/utils/synthutils.js:112 +#.TRANS: musical instrument +msgid "celeste" +msgstr "セレスタ" -#: js/IntervalsBlocks.js:592 -#: js/musicutils.js:637 -#: js/musicutils.js:908 -#.TRANS: perfect is a music term related to intervals -msgid "perfect" -msgstr "パーフェクト(かんぜん)" +#: js/utils/musicutils.js:1170 +#: js/widgets/temperament.js:787 +#.TRANS: musical temperament +msgid "equal" +msgstr "へいきん おんりつ" -#: js/IntervalsBlocks.js:621 -msgid "In the figure, we add sol# to sol." -msgstr "例の画像にはソルソル#になります。" +#: js/utils/musicutils.js:1172 +#.TRANS: musical temperament +msgid "Pythagorean" +msgstr "ピタゴラス おんりつ " -#: js/IntervalsBlocks.js:627 -#: js/OrnamentBlocks.js:220 -#.TRANS: calculate a relative step between notes based on semi-tones -msgid "semi-tone interval" -msgstr "半おんかい的音程" +#: js/utils/musicutils.js:1174 +#.TRANS: musical temperament +msgid "just intonation" +msgstr "じゅんせいりつ" -#: js/IntervalsBlocks.js:676 -msgid "The output of the example is: do, mi, sol, sol, ti, mi" -msgstr "れいの かいけつは 「ド、ミ、ソ、ソ、シ、ミ」" +#: js/utils/musicutils.js:1176 +#.TRANS: musical temperament +msgid "meantone" +msgstr "ちゅうぜん おんりつ" -#: js/IntervalsBlocks.js:735 -msgid "The Chord block calculates common chords." -msgstr "" +#: js/utils/musicutils.js:1193 +msgid "major 7th" +msgstr "ちょうしちのわおん(メイジャー・セブンス)" -#: js/IntervalsBlocks.js:737 -msgid "In the figure, we generate a C-major chord." -msgstr "" +#: js/utils/musicutils.js:1194 +msgid "minor 7th" +msgstr "たんしちのわおん(マイナー・セブンス)" -#: js/IntervalsBlocks.js:742 -msgid "chord" -msgstr "のわおん" +#: js/utils/musicutils.js:1195 +msgid "dominant 7th" +msgstr "ぞくしちのわおん(ドミナント・セブンス)" -#: js/IntervalsBlocks.js:794 -msgid "The Ratio Interval block calculates an interval based on a ratio." -msgstr "「比で音程」ブロックは比の音程のピッチを経産する。" +#: js/utils/musicutils.js:1196 +msgid "minor-major 7th" +msgstr "たんさんちょうしちのわおん(マイナー・メ イジャー・セブンス)" -#: js/IntervalsBlocks.js:799 -msgid "ratio interval" -msgstr "ひで おんてい" +#: js/utils/musicutils.js:1197 +msgid "fully-diminished 7th" +msgstr "げんしちのわおん(ディミニッシュト・セブンス)" -#: js/IntervalsBlocks.js:868 -msgid "In the figure, we add la to sol." -msgstr "

うえのず では、 ソの 「おんぷブロック」 を きじゅんに して、 「おんかいの じょうげブロック」の すうちを 2に せっていしている ので、 ソと、 ソから 2おん あがった シの おとが どうじに えんそうされる。

★おんかいとは
じゅんばんに ならんだ おとの まとまり。たとえば、「ド」 を はじまりのおと に したときの 「ドレミファソラシド」、 「ソ」 を はじまりのおと に したときの 「ソラシドレミ(♯ファ)ソ」 の こと。" +#: js/utils/musicutils.js:1198 +msgid "half-diminished 7th" +msgstr "げんごたんしちのわおん(ハーフ・ディミニッシュト)" -#: js/IntervalsBlocks.js:924 -#.TRANS: define a custom mode -msgid "define mode" -msgstr "ちょうを ていぎ する" +#: js/utils/musicutils.js:1557 +#: js/utils/musicutils.js:1569 +msgid "Equal (12EDO)" +msgstr "" -#: js/IntervalsBlocks.js:977 -msgid "movable Do" -msgstr "いどう ド" +#: js/utils/musicutils.js:1558 +#: js/utils/musicutils.js:1570 +msgid "5-limit Just Intonation" +msgstr "" -#: js/IntervalsBlocks.js:1028 -#.TRANS: mode length is the number of notes in the mode, e.g., 7 for major and minor scales; 12 for chromatic scales -msgid "mode length" -msgstr "おんかいの おんすう" +#: js/utils/musicutils.js:1559 +#: js/utils/musicutils.js:1571 +msgid "Pythagorean (3-limit JI)" +msgstr "" -#: js/IntervalsBlocks.js:1037 -msgid "The Mode length block is the number of notes in the current scale." -msgstr "

おんかいの おんすうブロック


えんそう されている おんかいの、 おとの かずを ひょうじ する。" +#: js/utils/musicutils.js:1560 +#: js/utils/musicutils.js:1561 +#: js/utils/musicutils.js:1572 +#: js/utils/musicutils.js:1573 +msgid "Meantone" +msgstr "" -#: js/IntervalsBlocks.js:1039 -msgid "Most Western scales have 7 notes." -msgstr "
せいようの ほとんどの おんかいは、 7つの おとを もつ。

★おんかいとは
じゅんばんに ならんだ おとの まとまり。

たとえば、「ド」 を はじまりのおと に したときの 「ドレミファソラシド」、 「ソ」 を はじまりのおと に したときの 「ソラシドレミ(♯ファ)ソ」 の こと。" +#: js/utils/musicutils.js:1574 +msgid "Custom" +msgstr "" -#: js/IntervalsBlocks.js:1088 -#.TRANS: the mode in music is 'major', 'minor', etc. -msgid "current mode" -msgstr "げんだいの おんかい" +#: js/utils/musicutils.js:5387 +#: js/utils/musicutils.js:5430 +msgid "current" +msgstr "げんざいの" -#: js/IntervalsBlocks.js:1141 -#.TRANS: the key is a group of pitches with which a music composition is created -msgid "current key" -msgstr "げんだいの ちょう" +#: js/utils/musicutils.js:5390 +#: js/utils/musicutils.js:5421 +msgid "next" +msgstr "このつぎの" -#: js/IntervalsBlocks.js:1193 -#: js/IntervalsBlocks.js:1238 -#.TRANS: set the key and mode, e.g. C Major -msgid "set key" -msgstr "ちょうをせってい" +#: js/utils/musicutils.js:5393 +#: js/utils/musicutils.js:5426 +msgid "previous" +msgstr "このまえの" -#: js/IntervalsBlocks.js:1247 -#: js/IntervalsBlocks.js:1253 -msgid "The Set key block is used to set the key and mode," -msgstr "

ちょうをせっていブロック


ちょうの ぶぶんに おとのたかさ、おんかいの ぶぶんに おんかいのしゅるいを えらび、ちょうを せっていする。

★ちょうとは
ちゅうしんてきな やくわりを はたすおとと、 おんかいの しゅるいによって きまる、 きょくの かんじ。 ちゅうしんてきな やくわりを はたすおと だけを さすこともある。
★おんかいとは
じゅんばんに ならんだ おとの まとまり。" +#: js/utils/synthutils.js:120 +#.TRANS: simple monotone synthesizer +msgid "simple-2" +msgstr "シンプル・シンセ2" -#: js/IntervalsBlocks.js:1253 -msgid "eg C Major" -msgstr "

たとえば、「ド」 を はじまりのおと に したときの 「ドレミファソラシド」、 「ソ」 を はじまりのおと に したときの 「ソラシドレミ(♯ファ)ソ」 の こと。" +#: js/utils/synthutils.js:122 +#.TRANS: simple monotone synthesizer +msgid "simple-3" +msgstr "シンプル・シンセ3" -#: js/IntervalsBlocks.js:1266 -#: js/DictBlocks.js:215 -#: js/DictBlocks.js:216 -#: js/DictBlocks.js:289 -#: js/DictBlocks.js:290 -#: js/DictBlocks.js:357 -#: js/DictBlocks.js:430 -#: js/DictBlocks.js:431 -#.TRANS: key, e.g., C in C Major -msgid "key" -msgstr "ちょう" +#: js/utils/synthutils.js:124 +#.TRANS: simple monotone synthesizer +msgid "simple-4" +msgstr "シンプル・シンセ4" -#: js/ActionBlocks.js:58 +#: js/utils/synthutils.js:162 +#.TRANS: musical instrument +msgid "taiko" +msgstr "たいこ" + +#: js/blocks/ActionBlocks.js:58 msgid "The Return block will return a value from an action." msgstr "" -#: js/ActionBlocks.js:75 +#: js/blocks/ActionBlocks.js:75 msgid "return" msgstr "リターン" -#: js/ActionBlocks.js:128 +#: js/blocks/ActionBlocks.js:128 msgid "The Return to URL block will return a value to a webpage." msgstr "" -#: js/ActionBlocks.js:145 +#: js/blocks/ActionBlocks.js:145 msgid "return to URL" msgstr "URLに もどります" -#: js/ActionBlocks.js:233 -#: js/ActionBlocks.js:290 -#: js/ActionBlocks.js:501 -#: js/ActionBlocks.js:688 +#: js/blocks/ActionBlocks.js:233 +#: js/blocks/ActionBlocks.js:290 +#: js/blocks/ActionBlocks.js:501 +#: js/blocks/ActionBlocks.js:688 msgid "The Calculate block returns a value calculated by an action." msgstr "" -#: js/ActionBlocks.js:251 -#: js/ActionBlocks.js:517 -#: js/ActionBlocks.js:707 +#: js/blocks/ActionBlocks.js:251 +#: js/blocks/ActionBlocks.js:517 +#: js/blocks/ActionBlocks.js:707 msgid "calculate" msgstr "けいさん する" -#: js/ActionBlocks.js:376 -#: js/ActionBlocks.js:593 -#: js/ActionBlocks.js:942 -#: js/ActionBlocks.js:1389 +#: js/blocks/ActionBlocks.js:376 +#: js/blocks/ActionBlocks.js:593 +#: js/blocks/ActionBlocks.js:942 +#: js/blocks/ActionBlocks.js:1389 #.TRANS: do is the do something or take an action. msgid "The Do block is used to initiate an action." msgstr "

アクションブロック(してい)


していした アクションブロックを じっこうする。" -#: js/ActionBlocks.js:390 -#: js/ActionBlocks.js:610 -#: js/ActionBlocks.js:959 -#: js/ActionBlocks.js:1048 -#: js/MeterBlocks.js:769 +#: js/blocks/ActionBlocks.js:390 +#: js/blocks/ActionBlocks.js:610 +#: js/blocks/ActionBlocks.js:959 +#: js/blocks/ActionBlocks.js:1048 +#: js/blocks/MeterBlocks.js:769 msgid "do1" msgstr "アクション じっこう" -#: js/ActionBlocks.js:390 -#: js/ActionBlocks.js:610 -#: js/ActionBlocks.js:959 -#: js/ActionBlocks.js:1048 -#: js/FlowBlocks.js:742 -#: js/FlowBlocks.js:822 -#: js/MeterBlocks.js:769 +#: js/blocks/ActionBlocks.js:390 +#: js/blocks/ActionBlocks.js:610 +#: js/blocks/ActionBlocks.js:959 +#: js/blocks/ActionBlocks.js:1048 +#: js/blocks/FlowBlocks.js:742 +#: js/blocks/FlowBlocks.js:822 +#: js/blocks/MeterBlocks.js:769 msgid "do" msgstr "アクション" -#: js/ActionBlocks.js:791 -#: js/ActionBlocks.js:865 +#: js/blocks/ActionBlocks.js:791 +#: js/blocks/ActionBlocks.js:865 msgid "The Arg block contains the value of an argument passed to an action." msgstr "" -#: js/ActionBlocks.js:806 -#: js/ActionBlocks.js:878 +#: js/blocks/ActionBlocks.js:806 +#: js/blocks/ActionBlocks.js:878 msgid "arg" msgstr "" -#: js/ActionBlocks.js:836 -#: js/ActionBlocks.js:900 -#: js/ActionBlocks.js:908 +#: js/blocks/ActionBlocks.js:836 +#: js/blocks/ActionBlocks.js:900 +#: js/blocks/ActionBlocks.js:908 msgid "Invalid argument" msgstr "" -#: js/ActionBlocks.js:944 +#: js/blocks/ActionBlocks.js:944 msgid "In the example, it is used with the One of block to choose a random phase." msgstr "

ずのれいは、 きまったアクション ではなく、 2つの うち どちらか 1つの アクションを ランダムに じっこうさせる。" -#: js/ActionBlocks.js:1019 -#: js/ActionBlocks.js:1026 +#: js/blocks/ActionBlocks.js:1019 +#: js/blocks/ActionBlocks.js:1026 msgid "The Listen block is used to listen for an event such as a mouse click." msgstr "

イベントブロック(うけとり)


とくていの イベント にたいして、 その はっせい をうけとるたびに じっこうする アクションを 1つ きめて おくことが できる。" -#: js/ActionBlocks.js:1028 +#: js/blocks/ActionBlocks.js:1028 msgid "When the event happens, an action is taken." msgstr "

イベントの発生は、各スクリプトが【イベントのたびにアクション】で指定したアクションの引きがねとしてはたらく。" -#: js/ActionBlocks.js:1045 +#: js/blocks/ActionBlocks.js:1045 msgid "on" msgstr "のとき" -#: js/ActionBlocks.js:1048 -#: js/ActionBlocks.js:1049 -#: js/ActionBlocks.js:1153 +#: js/blocks/ActionBlocks.js:1048 +#: js/blocks/ActionBlocks.js:1049 +#: js/blocks/ActionBlocks.js:1153 msgid "event" msgstr "イベント" -#: js/ActionBlocks.js:1133 -msgid "The Broadcast block is used to trigger an event." -msgstr "

イベントブロック(はっせい)


していした なまえの イベントを すべての ネズミに おくる。 イベントの はっせいは、 かくスクリプトが 【イベントのたびにアクション】で してい した アクションの ひきがね として はたらく。" +#: js/blocks/ActionBlocks.js:1133 +msgid "The Broadcast block is used to trigger an event." +msgstr "

イベントブロック(はっせい)


していした なまえの イベントを すべての ネズミに おくる。 イベントの はっせいは、 かくスクリプトが 【イベントのたびにアクション】で してい した アクションの ひきがね として はたらく。" + +#: js/blocks/ActionBlocks.js:1151 +msgid "broadcast" +msgstr "イベントはっせい" + +#: js/blocks/ActionBlocks.js:1208 +msgid "Each Start block is a separate voice." +msgstr "

スタートブロック


じっこうボタンが おされると、 スタートブロックが じっこうされる。" + +#: js/blocks/ActionBlocks.js:1304 +msgid "It is often used for storing a phrase of music that is repeated." +msgstr "

なんども じっこうする おんがくの フレーズなどに アクションを つくっておくと べんり。" + +#: js/blocks/ActionBlocks.js:1495 +msgid "define temperament" +msgstr "おんりつを明確にする" + +#: js/blocks/BooleanBlocks.js:44 +msgid "The Not block is the logical not operator." +msgstr "" + +#: js/blocks/BooleanBlocks.js:62 +msgid "not" +msgstr "ではない" + +#: js/blocks/BooleanBlocks.js:134 +msgid "The And block is the logical and operator." +msgstr "" + +#: js/blocks/BooleanBlocks.js:152 +msgid "and" +msgstr "かつ" + +#: js/blocks/BooleanBlocks.js:218 +msgid "The Or block is the logical or operator." +msgstr "" + +#: js/blocks/BooleanBlocks.js:236 +msgid "or" +msgstr "または" + +#: js/blocks/BooleanBlocks.js:302 +msgid "The XOR block is the logical XOR operator." +msgstr "" + +#: js/blocks/BooleanBlocks.js:320 +msgid "xor" +msgstr "" + +#: js/blocks/BooleanBlocks.js:808 +msgid "The Equal block returns True if the two numbers are equal." +msgstr "

しんぎブロック(ひとしい)


2つの すうちを くらべて、 おなじ すうちで あるかどうか はんてい する。 「=」は、 2つの すうちが おなじ であれば 「しん(しん)」、 おなじ でなければ 「にせ(ぎ)」 という けっかになる。

★しんぎブロックとは
「もし~ならば」などの じょうけんブロックを うごかすために ひつような ブロック。
「もし~ならば」は、 せいかくに ひょうげんすると、 「もし~という じょうけんが ただしい ならば、 つぎの ブロックを じっこうする」という いみ である。 しんぎブロックは ふとうしき などによる ひかくが 「ただしい(しん)」か、 「ただしくない(にせ)」かの けっかを あらわし、 「もし~ならば」に つづく ブロックを じっこうするか どうか きめる。" + +#: js/blocks/BooleanBlocks.js:909 +msgid "The Not-equal-to block returns True if the two numbers are not equal to each other." +msgstr "" + +#: js/blocks/BooleanBlocks.js:1008 +msgid "The Boolean block is used to specify true or false." +msgstr "" + +#: js/blocks/BoxesBlocks.js:53 +#: js/blocks/BoxesBlocks.js:59 +msgid "The Add-to block is used to add to the value stored in a box." +msgstr "

かずのはこ(あたいをかえる)


してい した はこに、 すきな すうちを たす。" + +#: js/blocks/BoxesBlocks.js:61 +msgid "It can also be used with other blocks such as Color and Pen size." +msgstr "

マイナスの すうちを つかうと ひきざん になる。" + +#: js/blocks/BoxesBlocks.js:73 +msgid "add" +msgstr "たす" + +#: js/blocks/BoxesBlocks.js:75 +#: js/widgets/temperament.js:857 +msgid "to" +msgstr "はこへ" + +#: js/blocks/BoxesBlocks.js:75 +#: js/blocks/BoxesBlocks.js:595 +#: js/blocks/HeapBlocks.js:544 +msgid "value1" +msgstr "すうち" + +#: js/blocks/BoxesBlocks.js:118 +msgid "Block does not support incrementing." +msgstr "このブロックは、ぞうしょくの サポートが ありません" + +#: js/blocks/BoxesBlocks.js:152 +msgid "The Add-1-to block adds one to the value stored in a box." +msgstr "

かずのはこ(あたいをかえる)


してい した はこに、 1を たす。" + +#: js/blocks/BoxesBlocks.js:163 +msgid "add 1 to" +msgstr "はこに 1を たす" + +#: js/blocks/BoxesBlocks.js:211 +msgid "The Subtract-1-from block subtracts one from the value stored in a box." +msgstr "" + +#: js/blocks/BoxesBlocks.js:222 +msgid "subtract 1 from" +msgstr "〜から1ひく" + +#: js/blocks/BoxesBlocks.js:270 +#: js/blocks/BoxesBlocks.js:387 +msgid "The Box block returns the value stored in a box." +msgstr "

すうちブロック


すうちブロック として、 はこの すうちを つかう。" + +#: js/blocks/BoxesBlocks.js:500 +#: js/blocks/BoxesBlocks.js:576 +msgid "The Store in block will store a value in a box." +msgstr "

かずのはこ(あたいをいれる)


してい した はこに、 してい した すうちを いれる。" + +#: js/blocks/BoxesBlocks.js:595 +#: js/blocks/EnsembleBlocks.js:391 +#: js/blocks/EnsembleBlocks.js:402 +msgid "name1" +msgstr "はこへ" + +#: js/blocks/BoxesBlocks.js:652 +msgid "The Box2 block returns the value stored in Box2." +msgstr "" + +#: js/blocks/BoxesBlocks.js:703 +msgid "The Store in Box2 block is used to store a value in Box2." +msgstr "" + +#: js/blocks/BoxesBlocks.js:715 +msgid "store in box2" +msgstr "はこ2に すうちを いれる" + +#: js/blocks/BoxesBlocks.js:761 +msgid "The Box1 block returns the value stored in Box1." +msgstr "" + +#: js/blocks/BoxesBlocks.js:812 +msgid "The Store in Box1 block is used to store a value in Box1." +msgstr "" + +#: js/blocks/BoxesBlocks.js:826 +msgid "store in box1" +msgstr "はこ1に すうちを いれる" + +#: js/blocks/DictBlocks.js:77 +msgid "show dictionary" +msgstr "じしょを あらわす" + +#: js/blocks/DictBlocks.js:80 +#: js/blocks/DictBlocks.js:145 +#: js/blocks/DictBlocks.js:216 +#: js/blocks/DictBlocks.js:290 +#: js/blocks/ProgramBlocks.js:396 +#: js/blocks/ProgramBlocks.js:501 +#: js/blocks/ProgramBlocks.js:664 +msgid "My Dictionary" +msgstr "わたしの じしょ" + +#: js/blocks/DictBlocks.js:129 +msgid "The Dictionary block returns a dictionary." +msgstr "" + +#: js/blocks/DictBlocks.js:197 +#: js/blocks/DictBlocks.js:339 +msgid "The Get-dict block returns a value in the dictionary for a specified key." +msgstr "" + +#: js/blocks/DictBlocks.js:212 +#: js/blocks/DictBlocks.js:354 +#.TRANS: retrieve a value from the dictionary with a given key +msgid "get value" +msgstr "あたいを あらわす" -#: js/ActionBlocks.js:1151 -msgid "broadcast" -msgstr "イベントはっせい" +#: js/blocks/DictBlocks.js:215 +#: js/blocks/DictBlocks.js:216 +#: js/blocks/DictBlocks.js:289 +#: js/blocks/DictBlocks.js:290 +#: js/blocks/DictBlocks.js:357 +#: js/blocks/DictBlocks.js:430 +#: js/blocks/DictBlocks.js:431 +msgid "key2" +msgstr "キーワード" -#: js/ActionBlocks.js:1208 -msgid "Each Start block is a separate voice." -msgstr "

スタートブロック


じっこうボタンが おされると、 スタートブロックが じっこうされる。" +#: js/blocks/DictBlocks.js:215 +#: js/blocks/DictBlocks.js:216 +#: js/blocks/DictBlocks.js:289 +#: js/blocks/DictBlocks.js:290 +#: js/blocks/DictBlocks.js:357 +#: js/blocks/DictBlocks.js:430 +#: js/blocks/DictBlocks.js:431 +#: js/blocks/IntervalsBlocks.js:1462 +#.TRANS: key, e.g., C in C Major +msgid "key" +msgstr "ちょう" -#: js/ActionBlocks.js:1304 -msgid "It is often used for storing a phrase of music that is repeated." -msgstr "

なんども じっこうする おんがくの フレーズなどに アクションを つくっておくと べんり。" +#: js/blocks/DictBlocks.js:271 +#: js/blocks/DictBlocks.js:411 +msgid "The Set-dict block sets a value in the dictionary for a specified key." +msgstr "" -#: js/ActionBlocks.js:1495 -msgid "define temperament" -msgstr "おんりつを明確にする" +#: js/blocks/DictBlocks.js:286 +#: js/blocks/DictBlocks.js:427 +#.TRANS: set a value in the dictionary for a given key +msgid "set value" +msgstr "あたいを せってい" -#: js/EnsembleBlocks.js:66 +#: js/blocks/EnsembleBlocks.js:66 msgid "mouse index heap" msgstr "ネズミヒープに番号をふる" -#: js/EnsembleBlocks.js:68 +#: js/blocks/EnsembleBlocks.js:68 msgid "The Mouse index heap block returns a value in the heap at a specified location for a specified mouse." msgstr "" -#: js/EnsembleBlocks.js:77 -#: js/EnsembleBlocks.js:1080 +#: js/blocks/EnsembleBlocks.js:77 +#: js/blocks/EnsembleBlocks.js:1080 msgid "mouse name" msgstr "ネズミの なまえ" -#: js/EnsembleBlocks.js:77 -#: js/EnsembleBlocks.js:92 -#: js/HeapBlocks.js:544 +#: js/blocks/EnsembleBlocks.js:77 +#: js/blocks/EnsembleBlocks.js:92 +#: js/blocks/HeapBlocks.js:544 #.TRANS: value1 is a numeric value (JAPANESE ONLY) msgid "index" msgstr "インデックス" -#: js/EnsembleBlocks.js:80 +#: js/blocks/EnsembleBlocks.js:80 msgid "turtle index heap" msgstr "" -#: js/EnsembleBlocks.js:82 +#: js/blocks/EnsembleBlocks.js:82 msgid "The Turtle index heap block returns a value in the heap at a specified location for a specified turtle." msgstr "" -#: js/EnsembleBlocks.js:90 -#: js/EnsembleBlocks.js:167 -#: js/EnsembleBlocks.js:230 -#: js/EnsembleBlocks.js:316 -#: js/EnsembleBlocks.js:362 -#: js/EnsembleBlocks.js:400 -#: js/EnsembleBlocks.js:454 -#: js/EnsembleBlocks.js:504 -#: js/EnsembleBlocks.js:550 -#: js/EnsembleBlocks.js:597 -#: js/EnsembleBlocks.js:651 -#: js/EnsembleBlocks.js:763 -#: js/EnsembleBlocks.js:854 -#: js/EnsembleBlocks.js:915 -#: js/EnsembleBlocks.js:955 -#: js/EnsembleBlocks.js:1219 -#: js/EnsembleBlocks.js:1293 +#: js/blocks/EnsembleBlocks.js:90 +#: js/blocks/EnsembleBlocks.js:167 +#: js/blocks/EnsembleBlocks.js:230 +#: js/blocks/EnsembleBlocks.js:316 +#: js/blocks/EnsembleBlocks.js:362 +#: js/blocks/EnsembleBlocks.js:400 +#: js/blocks/EnsembleBlocks.js:454 +#: js/blocks/EnsembleBlocks.js:504 +#: js/blocks/EnsembleBlocks.js:550 +#: js/blocks/EnsembleBlocks.js:597 +#: js/blocks/EnsembleBlocks.js:651 +#: js/blocks/EnsembleBlocks.js:763 +#: js/blocks/EnsembleBlocks.js:854 +#: js/blocks/EnsembleBlocks.js:915 +#: js/blocks/EnsembleBlocks.js:955 +#: js/blocks/EnsembleBlocks.js:1219 +#: js/blocks/EnsembleBlocks.js:1293 #.TRANS: Yertle is the name of a turtle. msgid "Yertle" msgstr "" -#: js/EnsembleBlocks.js:92 -#: js/EnsembleBlocks.js:1089 +#: js/blocks/EnsembleBlocks.js:92 +#: js/blocks/EnsembleBlocks.js:1089 msgid "turtle name" msgstr "ネズミの名前" -#: js/EnsembleBlocks.js:122 -#: js/EnsembleBlocks.js:1197 -#: js/HeapBlocks.js:474 -#: js/HeapBlocks.js:572 +#: js/blocks/EnsembleBlocks.js:122 +#: js/blocks/EnsembleBlocks.js:1197 +#: js/blocks/HeapBlocks.js:474 +#: js/blocks/HeapBlocks.js:572 msgid "Index must be > 0." msgstr "インデクス ばんごうは 0 より おおきい ひつようが あります。" -#: js/EnsembleBlocks.js:127 -#: js/HeapBlocks.js:479 -#: js/HeapBlocks.js:577 +#: js/blocks/EnsembleBlocks.js:127 +#: js/blocks/HeapBlocks.js:479 +#: js/blocks/HeapBlocks.js:577 msgid "Maximum heap size is 1000." msgstr "ヒープの おおきさは、 さいだい 1000です。" -#: js/EnsembleBlocks.js:145 +#: js/blocks/EnsembleBlocks.js:145 msgid "stop mouse" msgstr "ネズミを とめる" -#: js/EnsembleBlocks.js:147 +#: js/blocks/EnsembleBlocks.js:147 msgid "The Stop mouse block stops the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:158 +#: js/blocks/EnsembleBlocks.js:158 msgid "stop turtle" msgstr "ネズミを止める" -#: js/EnsembleBlocks.js:160 +#: js/blocks/EnsembleBlocks.js:160 msgid "The Stop turtle block stops the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:184 -#: js/EnsembleBlocks.js:247 -#: js/EnsembleBlocks.js:413 -#: js/EnsembleBlocks.js:468 -#: js/EnsembleBlocks.js:706 -#: js/EnsembleBlocks.js:808 -#: js/EnsembleBlocks.js:870 -#: js/EnsembleBlocks.js:1190 -#: js/EnsembleBlocks.js:1253 +#: js/blocks/EnsembleBlocks.js:184 +#: js/blocks/EnsembleBlocks.js:247 +#: js/blocks/EnsembleBlocks.js:413 +#: js/blocks/EnsembleBlocks.js:468 +#: js/blocks/EnsembleBlocks.js:706 +#: js/blocks/EnsembleBlocks.js:808 +#: js/blocks/EnsembleBlocks.js:870 +#: js/blocks/EnsembleBlocks.js:1190 +#: js/blocks/EnsembleBlocks.js:1253 msgid "Cannot find mouse" msgstr "ネズミが みつかりません。" -#: js/EnsembleBlocks.js:186 -#: js/EnsembleBlocks.js:249 -#: js/EnsembleBlocks.js:415 -#: js/EnsembleBlocks.js:470 -#: js/EnsembleBlocks.js:708 -#: js/EnsembleBlocks.js:810 -#: js/EnsembleBlocks.js:872 -#: js/EnsembleBlocks.js:1192 -#: js/EnsembleBlocks.js:1255 +#: js/blocks/EnsembleBlocks.js:186 +#: js/blocks/EnsembleBlocks.js:249 +#: js/blocks/EnsembleBlocks.js:415 +#: js/blocks/EnsembleBlocks.js:470 +#: js/blocks/EnsembleBlocks.js:708 +#: js/blocks/EnsembleBlocks.js:810 +#: js/blocks/EnsembleBlocks.js:872 +#: js/blocks/EnsembleBlocks.js:1192 +#: js/blocks/EnsembleBlocks.js:1255 msgid "Cannot find turtle" msgstr "タートルが みつかりません。" -#: js/EnsembleBlocks.js:206 +#: js/blocks/EnsembleBlocks.js:206 msgid "start mouse" msgstr "ネズミを スタート" -#: js/EnsembleBlocks.js:209 +#: js/blocks/EnsembleBlocks.js:209 msgid "The Start mouse block starts the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:220 +#: js/blocks/EnsembleBlocks.js:220 msgid "start turtle" msgstr "ネズミをスタートする" -#: js/EnsembleBlocks.js:223 +#: js/blocks/EnsembleBlocks.js:223 msgid "The Start turtle block starts the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:256 +#: js/blocks/EnsembleBlocks.js:256 msgid "Mouse is already running." msgstr "ネズミは すでに うごいています。" -#: js/EnsembleBlocks.js:258 +#: js/blocks/EnsembleBlocks.js:258 msgid "Turtle is already running." msgstr "タートルは すでに うごいています。" -#: js/EnsembleBlocks.js:282 +#: js/blocks/EnsembleBlocks.js:282 msgid "Cannot find start block" msgstr "「スタート」ブロックが みつかりません。" -#: js/EnsembleBlocks.js:292 +#: js/blocks/EnsembleBlocks.js:292 #.TRANS: pen color for this mouse msgid "mouse color" msgstr "ネズミの いろ" -#: js/EnsembleBlocks.js:294 +#: js/blocks/EnsembleBlocks.js:294 msgid "The Mouse color block returns the pen color of the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:306 +#: js/blocks/EnsembleBlocks.js:306 #.TRANS: pen color for this turtle msgid "turtle color" msgstr "" -#: js/EnsembleBlocks.js:308 +#: js/blocks/EnsembleBlocks.js:308 msgid "The Turtle color block returns the pen color of the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:338 +#: js/blocks/EnsembleBlocks.js:338 #.TRANS: heading (compass direction) for this mouse msgid "mouse heading" msgstr "ネズミの すすむ かくど" -#: js/EnsembleBlocks.js:340 +#: js/blocks/EnsembleBlocks.js:340 msgid "The Mouse heading block returns the heading of the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:352 +#: js/blocks/EnsembleBlocks.js:352 #.TRANS: heading (compass direction) for this turtle msgid "turtle heading" msgstr "" -#: js/EnsembleBlocks.js:354 +#: js/blocks/EnsembleBlocks.js:354 msgid "The Turtle heading block returns the heading of the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:384 -#: js/EnsembleBlocks.js:439 +#: js/blocks/EnsembleBlocks.js:384 +#: js/blocks/EnsembleBlocks.js:439 #.TRANS: set xy position for this mouse msgid "set mouse" msgstr "ネズミを せってい" -#: js/EnsembleBlocks.js:391 -#: js/EnsembleBlocks.js:402 -#: js/BoxesBlocks.js:595 -msgid "name1" -msgstr "はこへ" - -#: js/EnsembleBlocks.js:391 -#: js/EnsembleBlocks.js:402 -#: js/ProgramBlocks.js:881 -#: js/GraphicsBlocks.js:235 -#: js/GraphicsBlocks.js:313 -#: js/GraphicsBlocks.js:436 -#: js/GraphicsBlocks.js:487 -#: js/GraphicsBlocks.js:534 -#: js/GraphicsBlocks.js:750 +#: js/blocks/EnsembleBlocks.js:391 +#: js/blocks/EnsembleBlocks.js:402 +#: js/blocks/GraphicsBlocks.js:235 +#: js/blocks/GraphicsBlocks.js:313 +#: js/blocks/GraphicsBlocks.js:436 +#: js/blocks/GraphicsBlocks.js:487 +#: js/blocks/GraphicsBlocks.js:534 +#: js/blocks/GraphicsBlocks.js:750 +#: js/blocks/ProgramBlocks.js:881 msgid "x" msgstr "xざひょう(よこ)" -#: js/EnsembleBlocks.js:391 -#: js/EnsembleBlocks.js:402 -#: js/ProgramBlocks.js:881 -#: js/GraphicsBlocks.js:149 -#: js/GraphicsBlocks.js:313 -#: js/GraphicsBlocks.js:436 -#: js/GraphicsBlocks.js:487 -#: js/GraphicsBlocks.js:534 -#: js/GraphicsBlocks.js:750 +#: js/blocks/EnsembleBlocks.js:391 +#: js/blocks/EnsembleBlocks.js:402 +#: js/blocks/GraphicsBlocks.js:149 +#: js/blocks/GraphicsBlocks.js:313 +#: js/blocks/GraphicsBlocks.js:436 +#: js/blocks/GraphicsBlocks.js:487 +#: js/blocks/GraphicsBlocks.js:534 +#: js/blocks/GraphicsBlocks.js:750 +#: js/blocks/ProgramBlocks.js:881 msgid "y" msgstr "yざひょう(たて)" -#: js/EnsembleBlocks.js:395 -#: js/EnsembleBlocks.js:452 +#: js/blocks/EnsembleBlocks.js:395 +#: js/blocks/EnsembleBlocks.js:452 #.TRANS: set xy position for this turtle msgid "set turtle" msgstr "" -#: js/EnsembleBlocks.js:433 +#: js/blocks/EnsembleBlocks.js:433 msgid "The Set mouse block sends a stack of blocks to be run by the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:446 +#: js/blocks/EnsembleBlocks.js:446 msgid "The Set turtle block sends a stack of blocks to be run by the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:480 +#: js/blocks/EnsembleBlocks.js:480 #.TRANS: y position for this mouse msgid "mouse y" msgstr "ネズミの yざひょう" -#: js/EnsembleBlocks.js:482 +#: js/blocks/EnsembleBlocks.js:482 msgid "The Y mouse block returns the Y position of the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:494 +#: js/blocks/EnsembleBlocks.js:494 #.TRANS: y position for this turtle msgid "turtle y" msgstr "ネズミののy座標" -#: js/EnsembleBlocks.js:496 +#: js/blocks/EnsembleBlocks.js:496 msgid "The Y turtle block returns the Y position of the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:526 +#: js/blocks/EnsembleBlocks.js:526 #.TRANS: x position for this mouse msgid "mouse x" msgstr "ネズミの xざひょう" -#: js/EnsembleBlocks.js:528 +#: js/blocks/EnsembleBlocks.js:528 msgid "The X mouse block returns the X position of the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:540 +#: js/blocks/EnsembleBlocks.js:540 #.TRANS: x position for this turtle msgid "turtle x" msgstr "ネズミのx座標" -#: js/EnsembleBlocks.js:542 +#: js/blocks/EnsembleBlocks.js:542 msgid "The X turtle block returns the X position of the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:573 +#: js/blocks/EnsembleBlocks.js:573 #.TRANS: notes played by this mouse msgid "mouse notes played" msgstr "ネズミの えんそうした おんぷの かず" -#: js/EnsembleBlocks.js:575 +#: js/blocks/EnsembleBlocks.js:575 msgid "The Mouse elapse notes block returns the number of notes played by the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:587 +#: js/blocks/EnsembleBlocks.js:587 #.TRANS: notes played by this turtle msgid "turtle notes played" msgstr "" -#: js/EnsembleBlocks.js:589 +#: js/blocks/EnsembleBlocks.js:589 msgid "The Turtle elapse notes block returns the number of notes played by the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:627 +#: js/blocks/EnsembleBlocks.js:627 #.TRANS: convert current note for this turtle to piano key (1-88) msgid "mouse pitch number" msgstr "ネズミの音高数字" -#: js/EnsembleBlocks.js:629 +#: js/blocks/EnsembleBlocks.js:629 msgid "The Mouse pitch block returns the current pitch number being played by the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:641 +#: js/blocks/EnsembleBlocks.js:641 #.TRANS: convert current note for this turtle to piano key (1-88) msgid "turtle pitch number" msgstr "" -#: js/EnsembleBlocks.js:643 -msgid "The Turrle pitch block returns the current pitch number being played by the specified turtle." +#: js/blocks/EnsembleBlocks.js:643 +msgid "The Turtle pitch block returns the current pitch number being played by the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:747 -#: js/EnsembleBlocks.js:819 +#: js/blocks/EnsembleBlocks.js:747 +#: js/blocks/EnsembleBlocks.js:819 #.TRANS: note value is the duration of the note played by this mouse msgid "mouse note value" msgstr "ネズミの おんか" -#: js/EnsembleBlocks.js:757 +#: js/blocks/EnsembleBlocks.js:757 #.TRANS: note value is the duration of the note played by this turtle msgid "turtle note value" msgstr "" -#: js/EnsembleBlocks.js:830 +#: js/blocks/EnsembleBlocks.js:830 #.TRANS: sync is short for synchronization msgid "mouse sync" msgstr "ネズミを どうき させる" -#: js/EnsembleBlocks.js:832 +#: js/blocks/EnsembleBlocks.js:832 msgid "The Mouse sync block aligns the beat count between mice." msgstr "" -#: js/EnsembleBlocks.js:844 +#: js/blocks/EnsembleBlocks.js:844 #.TRANS: sync is short for synchronization msgid "turtle sync" msgstr "" -#: js/EnsembleBlocks.js:846 +#: js/blocks/EnsembleBlocks.js:846 msgid "The Turtle sync block aligns the beat count between turtles." msgstr "" -#: js/EnsembleBlocks.js:887 +#: js/blocks/EnsembleBlocks.js:887 msgid "The Found mouse block will return true if the specified mouse can be found." msgstr "" -#: js/EnsembleBlocks.js:893 +#: js/blocks/EnsembleBlocks.js:893 msgid "found mouse" msgstr "ネズミを みつけた" -#: js/EnsembleBlocks.js:903 +#: js/blocks/EnsembleBlocks.js:903 msgid "The Found turtle block will return true if the specified turtle can be found." msgstr "" -#: js/EnsembleBlocks.js:909 +#: js/blocks/EnsembleBlocks.js:909 msgid "found turtle" msgstr "ネズミ見つかった" -#: js/EnsembleBlocks.js:932 +#: js/blocks/EnsembleBlocks.js:932 msgid "new mouse" msgstr "あたらしい ネズミ" -#: js/EnsembleBlocks.js:934 +#: js/blocks/EnsembleBlocks.js:934 msgid "The New mouse block will create a new mouse." msgstr "" -#: js/EnsembleBlocks.js:945 +#: js/blocks/EnsembleBlocks.js:945 msgid "new turtle" msgstr "あたらしいネズミ" -#: js/EnsembleBlocks.js:947 +#: js/blocks/EnsembleBlocks.js:947 msgid "The New turtle block will create a new turtle." msgstr "" -#: js/EnsembleBlocks.js:1011 +#: js/blocks/EnsembleBlocks.js:1011 msgid "set mouse color" msgstr "ネズミいろを せってい " -#: js/EnsembleBlocks.js:1014 +#: js/blocks/EnsembleBlocks.js:1014 msgid "The Set-mouse-color block is used to set the color of a mouse." msgstr "「ネズミいろを せってい」ブロックは ネズミのいろを えらぶことに たかいます。" -#: js/EnsembleBlocks.js:1020 +#: js/blocks/EnsembleBlocks.js:1020 msgid "set turtle color" msgstr "" -#: js/EnsembleBlocks.js:1023 +#: js/blocks/EnsembleBlocks.js:1023 msgid "The Set-turtle-color block is used to set the color of a turtle." msgstr "" -#: js/EnsembleBlocks.js:1083 +#: js/blocks/EnsembleBlocks.js:1083 msgid "The Mouse-name block returns the name of a mouse." msgstr "

もじブロック


このプログラムを じっこうしている ネズミのなまえ(もじれつ)を あらわす。" -#: js/EnsembleBlocks.js:1092 +#: js/blocks/EnsembleBlocks.js:1092 msgid "The Turtle-name block returns the name of a turtle." msgstr "" -#: js/EnsembleBlocks.js:1115 +#: js/blocks/EnsembleBlocks.js:1115 msgid "mouse count" msgstr "なんひきのネズミ" -#: js/EnsembleBlocks.js:1118 +#: js/blocks/EnsembleBlocks.js:1118 msgid "The Mouse-count block returns the number of mice." msgstr "「なんひきの ネズミ」のブロックは ネズミを かぞえって すうちを あらわす" -#: js/EnsembleBlocks.js:1124 +#: js/blocks/EnsembleBlocks.js:1124 msgid "turtle count" msgstr "" -#: js/EnsembleBlocks.js:1127 +#: js/blocks/EnsembleBlocks.js:1127 msgid "The Turtle-count block returns the number of turtles." msgstr "" -#: js/EnsembleBlocks.js:1149 +#: js/blocks/EnsembleBlocks.js:1149 msgid "nth mouse name" msgstr "なんひきめ のネズミの なまえ" -#: js/EnsembleBlocks.js:1152 +#: js/blocks/EnsembleBlocks.js:1152 msgid "The Nth-Mouse name block returns the name of the nth mouse." msgstr "" -#: js/EnsembleBlocks.js:1158 +#: js/blocks/EnsembleBlocks.js:1158 msgid "nth turtle name" msgstr "" -#: js/EnsembleBlocks.js:1161 +#: js/blocks/EnsembleBlocks.js:1161 msgid "The Nth-Turtle name block returns the name of the nth turtle." msgstr "" -#: js/EnsembleBlocks.js:1205 -#: js/EnsembleBlocks.js:1265 +#: js/blocks/EnsembleBlocks.js:1205 +#: js/blocks/EnsembleBlocks.js:1265 msgid "set name" msgstr "ネズミに なまえを つける" -#: js/EnsembleBlocks.js:1214 -#: js/EnsembleBlocks.js:1221 +#: js/blocks/EnsembleBlocks.js:1214 +#: js/blocks/EnsembleBlocks.js:1221 msgid "source" msgstr "ソース" -#: js/EnsembleBlocks.js:1214 -#: js/EnsembleBlocks.js:1221 +#: js/blocks/EnsembleBlocks.js:1214 +#: js/blocks/EnsembleBlocks.js:1221 msgid "target" msgstr "ターゲット" -#: js/EnsembleBlocks.js:1271 +#: js/blocks/EnsembleBlocks.js:1271 msgid "The Set-name block is used to name a mouse." msgstr "

もじブロック


ネズミに してい した なまえを つけることが できる。" -#: js/EnsembleBlocks.js:1284 +#: js/blocks/EnsembleBlocks.js:1284 msgid "The Set-name block is used to name a turtle." msgstr "" -#: js/BooleanBlocks.js:44 -msgid "The Not block is the logical not operator." -msgstr "" +#: js/blocks/ExtrasBlocks.js:33 +msgid "fraction" +msgstr "ぶんすう" -#: js/BooleanBlocks.js:62 -msgid "not" -msgstr "ではない" +#: js/blocks/ExtrasBlocks.js:36 +msgid "Convert a float to a fraction" +msgstr "しょうすうからぶんすう" -#: js/BooleanBlocks.js:134 -msgid "The And block is the logical and operator." -msgstr "" +#: js/blocks/ExtrasBlocks.js:93 +msgid "save as ABC" +msgstr "ABCフォーマットでほぞん" -#: js/BooleanBlocks.js:152 -msgid "and" -msgstr "かつ" +#: js/blocks/ExtrasBlocks.js:96 +#: js/blocks/ExtrasBlocks.js:132 +#: js/blocks/ExtrasBlocks.js:168 +msgid "title" +msgstr "めい" -#: js/BooleanBlocks.js:218 -msgid "The Or block is the logical or operator." -msgstr "" +#: js/blocks/ExtrasBlocks.js:129 +msgid "save as Lilypond" +msgstr "Lilypondのフォーマットでほぞん" -#: js/BooleanBlocks.js:236 -msgid "or" -msgstr "または" +#: js/blocks/ExtrasBlocks.js:165 +msgid "save as SVG" +msgstr "SVGフォーマットでほぞん" -#: js/BooleanBlocks.js:302 -msgid "The XOR block is the logical XOR operator." -msgstr "" +#: js/blocks/ExtrasBlocks.js:216 +msgid "no background" +msgstr "バックグラウンドなし" -#: js/BooleanBlocks.js:320 -msgid "xor" +#: js/blocks/ExtrasBlocks.js:219 +msgid "The No background block eliminates the background from the saved SVG output." msgstr "" -#: js/BooleanBlocks.js:808 -msgid "The Equal block returns True if the two numbers are equal." -msgstr "

しんぎブロック(ひとしい)


2つの すうちを くらべて、 おなじ すうちで あるかどうか はんてい する。 「=」は、 2つの すうちが おなじ であれば 「しん(しん)」、 おなじ でなければ 「にせ(ぎ)」 という けっかになる。

★しんぎブロックとは
「もし~ならば」などの じょうけんブロックを うごかすために ひつような ブロック。
「もし~ならば」は、 せいかくに ひょうげんすると、 「もし~という じょうけんが ただしい ならば、 つぎの ブロックを じっこうする」という いみ である。 しんぎブロックは ふとうしき などによる ひかくが 「ただしい(しん)」か、 「ただしくない(にせ)」かの けっかを あらわし、 「もし~ならば」に つづく ブロックを じっこうするか どうか きめる。" - -#: js/BooleanBlocks.js:909 -msgid "The Not-equal-to block returns True if the two numbers are not equal to each other." -msgstr "" +#: js/blocks/ExtrasBlocks.js:247 +msgid "show blocks" +msgstr "ブロックを ひょうじ" -#: js/BooleanBlocks.js:1008 -msgid "The Boolean block is used to specify true or false." +#: js/blocks/ExtrasBlocks.js:249 +msgid "The Show blocks block shows the blocks." msgstr "" -#: js/MediaBlocks.js:35 -#.TRANS: right side of the screen -msgid "right (screen)" -msgstr "ざひょうち(みぎ)" - -#: js/MediaBlocks.js:45 -#: js/MediaBlocks.js:56 -msgid "The Right block returns the position of the right of the canvas." -msgstr "

すうちブロック(カンバス)


カンバスの みぎはし の xざひょうち。 プラスの すうち。カンバスの たてはば、 よこはば、 ざひょうち(うえ)、 ざひょうち(した)、 ざひょうち(ひだり)、 ざひょうち(みぎ) などの 6しゅるいが ある。" - -#: js/MediaBlocks.js:97 -#.TRANS: left side of the screen -msgid "left (screen)" -msgstr "ざひょうち (ひだり)" - -#: js/MediaBlocks.js:107 -#: js/MediaBlocks.js:118 -msgid "The Left block returns the position of the left of the canvas." -msgstr "

すうちブロック(カンバス)


カンバスの ひだりはし の xざひょうち。 マイナスの すうち。 カンバスの たてはば、 よこはば、 ざひょうち(うえ)、 ざひょうち(した)、 ざひょうち(ひだり)、 ざひょうち(みぎ) などの 6しゅるいが ある。" - -#: js/MediaBlocks.js:158 -msgid "top (screen)" -msgstr "ざひょうち(うえ)" - -#: js/MediaBlocks.js:168 -#: js/MediaBlocks.js:179 -msgid "The Top block returns the position of the top of the canvas." -msgstr "

すうちブロック(カンバス)


カンバスの じょうたん の yざひょうち。 プラスの すうち。 カンバスの じょうほうを もつ すうちブロックは、 カンバスの たてはば、 よこはば、 ざひょうち(うえ)、 ざひょうち(した)、 ざひょうち(ひだり)、 ざひょうち(みぎ) などの 6しゅるいが ある。" - -#: js/MediaBlocks.js:219 -msgid "bottom (screen)" -msgstr "ざひょうち(した)" +#: js/blocks/ExtrasBlocks.js:274 +msgid "hide blocks" +msgstr "ブロックを ひひょうじ" -#: js/MediaBlocks.js:229 -#: js/MediaBlocks.js:240 -msgid "The Bottom block returns the position of the bottom of the canvas." -msgstr "

すうちブロック(カンバス)


カンバスの かたん の yざひょうち。 マイナスの すうち。 カンバスの じょうほうを もつ すうちブロックは、 カンバスの たてはば、 よこはば、 ざひょうち(うえ)、 ざひょうち(した)、 ざひょうち(ひだり)、 ざひょうち(みぎ) などの 6しゅるいが ある。" +#: js/blocks/ExtrasBlocks.js:276 +msgid "The Hide blocks block hides the blocks." +msgstr "" -#: js/MediaBlocks.js:282 -msgid "width" -msgstr "カンバスの よこはば" +#: js/blocks/ExtrasBlocks.js:305 +#: js/blocks/ExtrasBlocks.js:338 +msgid "The Space block is used to add space between blocks." +msgstr "

スペースブロック


ブロックと ブロックの あいだに スペースを いれたいときに つかう。" -#: js/MediaBlocks.js:291 -msgid "The Width block returns the width of the canvas." -msgstr "

すうちブロック(カンバス)


カンバスの たてはば の すうちを あらわす。 カンバスの じょうほうを もつ すうちブロックは、 カンバスの たてはば、 よこはば、 ざひょうち(うえ)、 ざひょうち(した)、 ざひょうち(ひだり)、 ざひょうち(みぎ) などの 6しゅるいが ある。" +#: js/blocks/ExtrasBlocks.js:376 +msgid "wait" +msgstr "まつ" -#: js/MediaBlocks.js:325 -msgid "height" -msgstr "カンバスの たてはば" +#: js/blocks/ExtrasBlocks.js:379 +msgid "The Wait block pauses the program for a specified number of seconds." +msgstr "" -#: js/MediaBlocks.js:334 -msgid "The Height block returns the height of the canvas." -msgstr "

すうちブロック(カンバス)


カンバスの たてはば の すうちを あらわす。 カンバスの じょうほうを もつ すうちブロックは、 カンバスの たてはば、 よこはば、 ざひょうち(うえ)、 ざひょうち(した)、 ざひょうち(ひだり)、 ざひょうち(みぎ) などの 6しゅるいが ある。" +#: js/blocks/ExtrasBlocks.js:433 +#: plugins/facebook.rtp:30 +msgid "comment" +msgstr "コメント" -#: js/MediaBlocks.js:369 -#.TRANS: stops playback of an audio recording -msgid "stop play" -msgstr "ていし" +#: js/blocks/ExtrasBlocks.js:469 +msgid "print" +msgstr "けっかを ひょうじ" -#: js/MediaBlocks.js:404 -#.TRANS: Erases the images and text -msgid "erase media" -msgstr "メディアを けす" +#: js/blocks/ExtrasBlocks.js:476 +msgid "The Print block displays text at the top of the screen." +msgstr "

ひょうじ ブロック(けっか)


がめんの じょうぶに、 してい した じっこうけっかの すうちや もじを ひょうじする。 ひょうじした テキストは クリックすると けすことが できる。 どこで プログラムが まちがっているかを かくにんするさい(デバグ)などに よく もちいられる。" -#: js/MediaBlocks.js:409 -msgid "The Erase Media block erases text and images." -msgstr "「メディアを けす」ブロックは もじと がぞうを けします。" +#: js/blocks/ExtrasBlocks.js:582 +msgid "display grid" +msgstr "グリッドをひょうじ" -#: js/MediaBlocks.js:439 -#.TRANS: play an audio recording -msgid "play back" -msgstr "プレーバック" +#: js/blocks/ExtrasBlocks.js:587 +msgid "The Display Grid Block changes the grid type" +msgstr "" -#: js/MediaBlocks.js:487 -msgid "speak" -msgstr "しゃべる" +#: js/blocks/ExtrasBlocks.js:689 +#: js/blocks/ExtrasBlocks.js:708 +#: js/blocks/ExtrasBlocks.js:731 +#: js/blocks/ExtrasBlocks.js:754 +#: js/blocks/ExtrasBlocks.js:772 +#: js/blocks/ExtrasBlocks.js:791 +#: js/blocks/ExtrasBlocks.js:810 +#: js/blocks/ExtrasBlocks.js:829 +msgid "unknown" +msgstr "ふめい" -#: js/MediaBlocks.js:495 -msgid "The Speak block outputs to the text-to-speech synthesizer" -msgstr "

おんせいブロック


うちこんだ もじを、 きかい おんせい で よみあげる。" +#: js/blocks/FlowBlocks.js:41 +msgid "The Backward block runs code in reverse order (Musical retrograde)." +msgstr "

じっこうブロック(ぎゃくじっこう)


はさまれている ブロックを、 つうじょうとは ぎゃくの じゅんじょで、 したから うえにむかって じっこうする。" -#: js/MediaBlocks.js:546 -msgid "camera" -msgstr "" +#: js/blocks/FlowBlocks.js:48 +msgid "backward" +msgstr "ぎゃくむきに じっこう" -#: js/MediaBlocks.js:551 -msgid "The Camera block connects a webcam to the Show block." +#: js/blocks/FlowBlocks.js:124 +msgid "The Duplicate block will run each block multiple times." msgstr "" -#: js/MediaBlocks.js:574 -msgid "video" -msgstr "" +#: js/blocks/FlowBlocks.js:136 +msgid "duplicate" +msgstr "複製する" -#: js/MediaBlocks.js:579 -msgid "The Video block selects video for use with the Show block." +#: js/blocks/FlowBlocks.js:334 +msgid "The Default block is used inside of a Switch to define the default action." msgstr "" -#: js/MediaBlocks.js:607 -msgid "The Open file block opens a file for use with the Show block." -msgstr "" +#: js/blocks/FlowBlocks.js:342 +msgid "default" +msgstr "ひょうじゅん" -#: js/MediaBlocks.js:645 -msgid "stop media" -msgstr "メデイアを ていし" +#: js/blocks/FlowBlocks.js:361 +#: js/blocks/FlowBlocks.js:418 +msgid "The Case Block must be used inside of a Switch Block." +msgstr "ケースブロックは スイッチ ブロックの なかに ある ひつようが あります。" -#: js/MediaBlocks.js:650 -msgid "The Stop media block stops audio or video playback." +#: js/blocks/FlowBlocks.js:389 +msgid "The Case block is used inside of a Switch to define matches." msgstr "" -#: js/MediaBlocks.js:679 -#: js/PitchBlocks.js:1539 -#: js/phrasemaker.js:822 -#: js/musickeyboard.js:1654 -#.TRANS: a measure of frequency: one cycle per second -msgid "hertz" -msgstr "ヘルツ" - -#: js/MediaBlocks.js:692 -msgid "duration (ms)" -msgstr "ながさ(ミリびょう)" - -#: js/MediaBlocks.js:728 -#.TRANS: translate a note into hertz, e.g., A4 -> 440HZ -msgid "note to frequency" -msgstr "おんぷの たかさを しゅうはすう ひょうじへ" +#: js/blocks/FlowBlocks.js:397 +msgid "case" +msgstr "ケース" -#: js/MediaBlocks.js:736 -msgid "The To frequency block converts a pitch name and octave to Hertz." +#: js/blocks/FlowBlocks.js:446 +msgid "The Switch block will run the code in the matching Case." msgstr "" -#: js/MediaBlocks.js:746 -#: js/PitchBlocks.js:656 -#: js/PitchBlocks.js:932 -#: js/PitchBlocks.js:1827 -#.TRANS: name2 is name as in name of pitch (JAPANESE ONLY) -msgid "name2" -msgstr "なまえ" +#: js/blocks/FlowBlocks.js:454 +msgid "switch" +msgstr "スイッチ" -#: js/MediaBlocks.js:812 -msgid "The Avatar block is used to change the appearance of the mouse." +#: js/blocks/FlowBlocks.js:595 +msgid "The Stop block will stop a loop" msgstr "" -#: js/MediaBlocks.js:819 -msgid "The Avatar block is used to change the appearance of the turtle." +#: js/blocks/FlowBlocks.js:597 +msgid "Forever, Repeat, While, or Until." msgstr "" -#: js/MediaBlocks.js:831 -#: js/MediaBlocks.js:891 -#.TRANS: a media object -msgid "size" -msgstr "おおきさ" - -#: js/MediaBlocks.js:831 -msgid "image" -msgstr "がぞう そざい" - -#: js/MediaBlocks.js:880 -msgid "The Show block is used to display text or images on the canvas." -msgstr "

ひょうじブロック(スタンプ)


スタンプは、 じっこうすると ネズミの いちに してい した もじ または がぞう を ひょうじする。 ネズミの からだの したに あらわれるので、 ちいさいもじ や がぞう だと ネズミがいどうしないと みえない ばあいがある。" - -#: js/MediaBlocks.js:888 -#.TRANS: show1 is show as in display an image or text on the screen. -msgid "show1" -msgstr "スタンプ" - -#: js/MediaBlocks.js:891 -msgid "obj" -msgstr "そざい" - -#: js/MediaBlocks.js:938 -msgid "The Media block is used to import an image." -msgstr "

がぞう ブロック


がぞうのブロック。 ブロックの マークを おすと、 コンピューターじょうから がぞうファイルを よみこむことが できる。" - -#: js/MediaBlocks.js:973 -msgid "The Text block holds a text string." -msgstr "

もじ ブロック


もじを していするブロック。" +#: js/blocks/FlowBlocks.js:604 +#: js/widgets/timbre.js:417 +#: js/widgets/timbre.js:419 +#: js/widgets/musickeyboard.js:819 +#: js/widgets/musickeyboard.js:821 +#: js/widgets/phrasemaker.js:4202 +#: plugins/rodi.rtp:29 +#: plugins/rodi.rtp:73 +#: plugins/rodi.rtp:413 +msgid "stop" +msgstr "止める" -#: js/ProgramBlocks.js:33 -msgid "The Load-heap-from-app block loads the heap from a web page." +#: js/blocks/FlowBlocks.js:653 +msgid "The Waitfor block will wait until the condition is true." msgstr "" -#: js/ProgramBlocks.js:44 -#.TRANS: load the heap contents from a URL -msgid "load heap from App" -msgstr "アプリから ヒープを ロード" - -#: js/ProgramBlocks.js:95 -msgid "Error parsing JSON data:" -msgstr "JSON データの こうぶん エラー です。" - -#: js/ProgramBlocks.js:100 -msgid "404: Page not found" -msgstr "404エラー:ページが見つかりません。" +#: js/blocks/FlowBlocks.js:661 +msgid "wait for" +msgstr "をまつ" -#: js/ProgramBlocks.js:133 -msgid "The Save-heap-to-app block saves the heap to a web page." +#: js/blocks/FlowBlocks.js:732 +msgid "The Until block will repeat until the condition is true." msgstr "" -#: js/ProgramBlocks.js:144 -#.TRANS: save the heap contents to a URL -msgid "save heap to App" -msgstr "アプリに ヒープを ほぞん" +#: js/blocks/FlowBlocks.js:740 +msgid "until" +msgstr "までに" -#: js/ProgramBlocks.js:189 -msgid "Cannot find a valid heap for" -msgstr "ただしい ヒープが みつかりません。" +#: js/blocks/FlowBlocks.js:742 +#: js/blocks/FlowBlocks.js:822 +msgid "do2" +msgstr "~する" -#: js/ProgramBlocks.js:206 -msgid "The Load-heap block loads the heap from a file." +#: js/blocks/FlowBlocks.js:812 +msgid "The While block will repeat while the condition is true." msgstr "" -#: js/ProgramBlocks.js:217 -#.TRANS: load the heap from a file -msgid "load heap" -msgstr "ヒープを ロード する" +#: js/blocks/FlowBlocks.js:820 +msgid "while" +msgstr "のあいだに" -#: js/ProgramBlocks.js:270 -msgid "The file you selected does not contain a valid heap." -msgstr "えらんだ ファイルには、ただしい ヒープが ふくまれません。" +#: js/blocks/FlowBlocks.js:903 +#: js/blocks/FlowBlocks.js:968 +#: js/blocks/FlowBlocks.js:979 +msgid "In this example if the mouse button is pressed a snare drum will play." +msgstr "

ずのれい では、 もし、 パソコンのマウスを ながおし していれば 「スネアドラム」ブロックを えんそうする。" -#: js/ProgramBlocks.js:275 -msgid "The loadHeap block needs a loadFile block." -msgstr "ロードヒープの ブロックには、 ロードファイル ブロックが ひつよう です。" +#: js/blocks/FlowBlocks.js:925 +#: js/blocks/FlowBlocks.js:988 +msgid "if" +msgstr "もし" -#: js/ProgramBlocks.js:291 -msgid "The Set-heap block loads the heap." -msgstr "" +#: js/blocks/FlowBlocks.js:927 +#: js/blocks/FlowBlocks.js:990 +msgid "then" +msgstr "ならば" -#: js/ProgramBlocks.js:299 -#: js/HeapBlocks.js:539 -#.TRANS: load the heap from a JSON encoding -msgid "set heap" -msgstr "ヒープを せってい する" +#: js/blocks/FlowBlocks.js:927 +msgid "else" +msgstr "でなければ" -#: js/ProgramBlocks.js:340 -msgid "The block you selected does not contain a valid heap." -msgstr "" +#: js/blocks/FlowBlocks.js:1025 +msgid "The Forever block will repeat the contained blocks forever." +msgstr "

じっこうブロック(くりかえし)


ずっとくりかえす」の ブロックは、 じっこうを ていし しないかぎり、 はさまれている ブロックを くりかえし じっこうする。" -#: js/ProgramBlocks.js:343 -msgid "The Set heap block needs a heap." -msgstr "" +#: js/blocks/FlowBlocks.js:1037 +msgid "forever" +msgstr "ずっと くりかえす" -#: js/ProgramBlocks.js:360 -msgid "The Load-dictionary block loads a dictionary from a file." -msgstr "" +#: js/blocks/FlowBlocks.js:1073 +msgid "The Repeat block will repeat the contained blocks." +msgstr "

じっこうブロック(くりかえし)


はさまれている ブロックの プログラムを、 にゅうりょくした かいすう だけ くりかえす。" -#: js/ProgramBlocks.js:372 -#.TRANS: load a dictionary from a file -msgid "load dictionary" -msgstr "じしょを ロードする" +#: js/blocks/FlowBlocks.js:1075 +msgid "In this example the note will be played 4 times." +msgstr "

ずのれい では、 「ソ」 の おとが 4かい えんそうされる。" -#: js/ProgramBlocks.js:390 -#: js/ProgramBlocks.js:658 -#: js/ToneBlocks.js:1025 -msgid "file" -msgstr "ファイル" +#: js/blocks/FlowBlocks.js:1083 +msgid "repeat" +msgstr "~かい くりかえす" -#: js/ProgramBlocks.js:396 -#: js/ProgramBlocks.js:501 -#: js/ProgramBlocks.js:664 -#: js/DictBlocks.js:80 -#: js/DictBlocks.js:145 -#: js/DictBlocks.js:216 -#: js/DictBlocks.js:290 -msgid "My Dictionary" -msgstr "わたしの じしょ" +#: js/blocks/FlowBlocks.js:1123 +msgid "duplicate factor" +msgstr "複製ファクター" -#: js/ProgramBlocks.js:444 -msgid "The file you selected does not contain a valid dictionary." +#: js/blocks/HeapBlocks.js:49 +msgid "The Heap block returns the heap." msgstr "" -#: js/ProgramBlocks.js:449 -msgid "The load dictionary block needs a load file block." -msgstr "" +#: js/blocks/HeapBlocks.js:133 +msgid "show heap" +msgstr "ヒープを ひょうじ する" -#: js/ProgramBlocks.js:466 -msgid "The Set-dictionary block loads a dictionary." +#: js/blocks/HeapBlocks.js:181 +msgid "The Heap-length block returns the length of the heap." msgstr "" -#: js/ProgramBlocks.js:477 -#.TRANS: load a dictionary from a JSON -msgid "set dictionary" -msgstr "じしょを せってい" +#: js/blocks/HeapBlocks.js:195 +msgid "heap length" +msgstr "ヒープの ながさ" -#: js/ProgramBlocks.js:546 -msgid "The block you selected does not contain a valid dictionary." +#: js/blocks/HeapBlocks.js:254 +msgid "The Heap-empty? block returns true if the heap is empty." msgstr "" -#: js/ProgramBlocks.js:550 -msgid "The set dictionary block needs a dictionary." -msgstr "" +#: js/blocks/HeapBlocks.js:268 +#.TRANS: Is the heap empty? +msgid "heap empty?" +msgstr "ヒープは から ですか?" -#: js/ProgramBlocks.js:567 -msgid "The Save-heap block saves the heap to a file." +#: js/blocks/HeapBlocks.js:317 +msgid "The Empty-heap block empties the heap." msgstr "" -#: js/ProgramBlocks.js:578 -#.TRANS: save the heap to a file -msgid "save heap" -msgstr "ヒープを ほぞん する" +#: js/blocks/HeapBlocks.js:327 +#: js/blocks/HeapBlocks.js:647 +#.TRANS: empty the heap +msgid "empty heap" +msgstr "からの ヒープ" -#: js/ProgramBlocks.js:629 -msgid "The Save-dictionary block saves a dictionary to a file." +#: js/blocks/HeapBlocks.js:371 +msgid "The Reverse-heap block reverses the order of the heap." msgstr "" -#: js/ProgramBlocks.js:640 -#.TRANS: save a dictionary to a file -msgid "save dictionary" -msgstr "じしょを せってい" +#: js/blocks/HeapBlocks.js:384 +#.TRANS: reverse the order of the heap +msgid "reverse heap" +msgstr "ヒープを ぎゃくに する" -#: js/ProgramBlocks.js:720 -msgid "The Open palette block opens a palette." +#: js/blocks/HeapBlocks.js:428 +msgid "The Index-heap block returns a value in the heap at a specified location." msgstr "" -#: js/ProgramBlocks.js:727 -msgid "open palette" -msgstr "パレットを ひらきます" +#: js/blocks/HeapBlocks.js:443 +#.TRANS: retrieve a value from the heap at index position in the heap +msgid "index heap" +msgstr "ヒープに ばんごうを ふる" -#: js/ProgramBlocks.js:785 -msgid "The Delete block block removes a block." +#: js/blocks/HeapBlocks.js:523 +msgid "The Set-heap entry block sets a value in he heap at the specified location." msgstr "" -#: js/ProgramBlocks.js:797 -#.TRANS: Move this block to the trash. -msgid "delete block" -msgstr "ブロックを けす" +#: js/blocks/HeapBlocks.js:539 +#: js/blocks/ProgramBlocks.js:299 +#.TRANS: load the heap from a JSON encoding +msgid "set heap" +msgstr "ヒープを せってい する" -#: js/ProgramBlocks.js:861 -msgid "The Move block block moves a block." +#: js/blocks/HeapBlocks.js:619 +msgid "The Pop block removes the value at the top of the heap." msgstr "" -#: js/ProgramBlocks.js:869 -#.TRANS: Move the position of a block on the screen. -msgid "move block" -msgstr "ブロックを うごかす" +#: js/blocks/HeapBlocks.js:633 +#.TRANS: pop a value off the top of the heap +msgid "pop" +msgstr "ポップ" -#: js/ProgramBlocks.js:881 -#: js/ProgramBlocks.js:1048 -msgid "block number" -msgstr "ブロックの ばんごう" +#: js/blocks/HeapBlocks.js:680 +msgid "The Push block adds a value to the top of the heap." +msgstr "" -#: js/ProgramBlocks.js:935 -#.TRANS: Run program beginning at this block. -msgid "run block" -msgstr "ブロックを じっこう" +#: js/blocks/HeapBlocks.js:696 +#.TRANS: push a value onto the top of the heap +msgid "push" +msgstr "プッシュ" -#: js/ProgramBlocks.js:1025 -msgid "The Dock block block connections two blocks." -msgstr "" +#: js/blocks/IntervalsBlocks.js:45 +msgid "set temperament" +msgstr "おんりつを せってい" -#: js/ProgramBlocks.js:1036 -#.TRANS: We can connect a block to another block. -msgid "connect blocks" -msgstr "ブロックを つなぐ" +#: js/blocks/IntervalsBlocks.js:63 +#: js/blocks/MediaBlocks.js:746 +#: js/blocks/PitchBlocks.js:657 +#: js/blocks/PitchBlocks.js:935 +#: js/blocks/PitchBlocks.js:974 +#: js/blocks/PitchBlocks.js:1007 +#: js/blocks/PitchBlocks.js:1194 +#: js/blocks/PitchBlocks.js:1717 +#: js/blocks/PitchBlocks.js:1758 +#: js/blocks/PitchBlocks.js:1866 +#: js/blocks/ToneBlocks.js:1025 +#: js/turtleactions/IntervalsActions.js:114 +#.TRANS: adjusts the shift up or down by one octave (twelve half-steps in the interval between two notes, one having twice or half the frequency in Hz of the other.) +msgid "octave" +msgstr "オクターヴの たかさ" -#: js/ProgramBlocks.js:1048 -msgid "target block" -msgstr "もくひょうの ブロック" +#: js/blocks/IntervalsBlocks.js:99 +msgid "The Temperament name block is used to select a tuning method." +msgstr "
おんりつブロック
ちょうりつの しかたを せっていする。
★おんりつとは
おんてい (おとどうしの へだたり) の きめかた。 おなじ おんかい でも、 おんりつに よって おとの たかさが かわる。
★ちょうりつとは
がっきの おとのたかさを、 おんりつに したがって ととのえること。" -#: js/ProgramBlocks.js:1048 -msgid "connection number" -msgstr "接続のばんごう" +#: js/blocks/IntervalsBlocks.js:161 +msgid "doubly" +msgstr "じゅう" -#: js/ProgramBlocks.js:1140 -msgid "The Make block block creates a new block." +#: js/blocks/IntervalsBlocks.js:166 +msgid "The Doubly block will double the size of an interval." msgstr "" -#: js/ProgramBlocks.js:1152 -#.TRANS: Create a new block -msgid "make block" -msgstr "ブロックを つくる" +#: js/blocks/IntervalsBlocks.js:262 +msgid "interval number" +msgstr "おんていを かずで ひょうじ" -#: js/ProgramBlocks.js:1186 -#: js/ProgramBlocks.js:1227 -#: js/RhythmBlocks.js:1128 -#: js/PitchBlocks.js:972 -#: js/PitchBlocks.js:1005 -#: js/temperament.js:340 -#: js/temperament.js:362 -#: js/temperament.js:372 -#: js/temperament.js:484 -#: js/status.js:190 -#: plugins/rodi.rtp:192 -#.TRANS: a musical note consisting of pitch and duration -msgid "note" -msgstr "おんぷ" +#: js/blocks/IntervalsBlocks.js:317 +msgid "current interval" +msgstr "げんざいの おんかい" -#: js/ProgramBlocks.js:1285 -msgid "Cannot find block" -msgstr "ブロックが みつかりません" +#: js/blocks/IntervalsBlocks.js:387 +#.TRANS: measure the distance between two pitches in semi-tones +msgid "semi-tone interval measure" +msgstr "半おんかい的音程で計る" -#: js/ProgramBlocks.js:1304 -#: js/ProgramBlocks.js:1313 -msgid "Warning: block argument type mismatch" -msgstr "ちゅうい:ブロックと タイプが あっていません。" +#: js/blocks/IntervalsBlocks.js:454 +#: js/blocks/IntervalsBlocks.js:570 +msgid "You must use two pitch blocks when measuring an interval." +msgstr "音程を計る際は、2つの音符を使うひつようがあります。" -#: js/ProgramBlocks.js:1347 -msgid "The Open project block is used to open a project from a web page." +#: js/blocks/IntervalsBlocks.js:496 +msgid "The Scalar interval block measures the distance between two notes in the current key and mode." msgstr "" -#: js/ProgramBlocks.js:1357 -msgid "open project" -msgstr "プロジェクトを ひらく" +#: js/blocks/IntervalsBlocks.js:502 +#.TRANS: measure the distance between two pitches in steps of musical scale +msgid "scalar interval measure" +msgstr "全おんかい的音程で計る" -#: js/ProgramBlocks.js:1410 -msgid "Please enter a valid URL." -msgstr "ただしい URL をいれてください。" +#: js/blocks/IntervalsBlocks.js:678 +msgid "In the figure, we add sol# to sol." +msgstr "例の画像にはソルソル#になります。" -#: js/DrumBlocks.js:59 -msgid "The Noise name block is used to select a noise synthesizer." -msgstr "" +#: js/blocks/IntervalsBlocks.js:684 +#: js/blocks/OrnamentBlocks.js:220 +#.TRANS: calculate a relative step between notes based on semi-tones +msgid "semi-tone interval" +msgstr "半おんかい的音程" -#: js/DrumBlocks.js:102 -msgid "The Drum name block is used to select a drum." -msgstr "

ドラムブロック


ドラムの しゅるいを かえるときに つかう。 クリックで、 いろいろな ドラムの おとを えらぶことが できる。" +#: js/blocks/IntervalsBlocks.js:733 +msgid "The output of the example is: do, mi, sol, sol, ti, mi" +msgstr "れいの かいけつは 「ド、ミ、ソ、ソ、シ、ミ」" -#: js/DrumBlocks.js:146 -msgid "The Effects name block is used to select a sound effect." -msgstr "

こうかおんブロック


こうかおんの しゅるいを かえるときに つかう。 クリックで、 いろいろな おもしろい おとを えらぶことが できる。" +#: js/blocks/IntervalsBlocks.js:740 +#: js/blocks/WidgetBlocks.js:768 +msgid "arpeggio" +msgstr "アルペジオ" -#: js/DrumBlocks.js:163 -msgid "noise" -msgstr "ノイズ" +#: js/blocks/IntervalsBlocks.js:931 +msgid "The Chord block calculates common chords." +msgstr "" -#: js/DrumBlocks.js:177 -msgid "The Play noise block will generate white, pink, or brown noise." +#: js/blocks/IntervalsBlocks.js:933 +msgid "In the figure, we generate a C-major chord." msgstr "" -#: js/DrumBlocks.js:191 -#: js/musicutils.js:752 -#: js/synthutils.js:47 -#.TRANS: white noise synthesizer -msgid "white noise" -msgstr "ホワイト ノイズ" +#: js/blocks/IntervalsBlocks.js:938 +msgid "chord" +msgstr "のわおん" -#: js/DrumBlocks.js:326 -msgid "Replace every instance of a pitch with a drum sound." -msgstr "" +#: js/blocks/IntervalsBlocks.js:990 +msgid "The Ratio Interval block calculates an interval based on a ratio." +msgstr "「比で音程」ブロックは比の音程のピッチを経産する。" -#: js/DrumBlocks.js:337 -#.TRANS: map a pitch to a drum sound -msgid "map pitch to drum" -msgstr "ドラムを おんぷに かえる" +#: js/blocks/IntervalsBlocks.js:995 +msgid "ratio interval" +msgstr "ひで おんてい" -#: js/DrumBlocks.js:404 -msgid "In the example above, a kick drum sound will be played instead of sol." -msgstr "例の画像にソルの代わりにキックドラムが鳴らします。" +#: js/blocks/IntervalsBlocks.js:1064 +msgid "In the figure, we add la to sol." +msgstr "

うえのず では、 ソの 「おんぷブロック」 を きじゅんに して、 「おんかいの じょうげブロック」の すうちを 2に せっていしている ので、 ソと、 ソから 2おん あがった シの おとが どうじに えんそうされる。

★おんかいとは
じゅんばんに ならんだ おとの まとまり。たとえば、「ド」 を はじまりのおと に したときの 「ドレミファソラシド」、 「ソ」 を はじまりのおと に したときの 「ソラシドレミ(♯ファ)ソ」 の こと。" -#: js/DrumBlocks.js:416 -#.TRANS: set the current drum sound for playback -msgid "set drum" -msgstr "ドラムを せってい" +#: js/blocks/IntervalsBlocks.js:1120 +#.TRANS: define a custom mode +msgid "define mode" +msgstr "ちょうを ていぎ する" -#: js/DrumBlocks.js:460 -msgid "sound effect" -msgstr "こうかおん" +#: js/blocks/IntervalsBlocks.js:1173 +msgid "movable Do" +msgstr "いどう ド" -#: js/DrumBlocks.js:498 -msgid "You can use multiple Drum blocks within a Note block." -msgstr "

ドラム ブロック


「おんぷブロック」 の なかに いれて つかう。 いろいろな ドラムの ねいろを えらぶことが できる。 1つの 「おんぷブロック」 の なかで、 ふくすうの ねいろの ドラムを くみあわせて つかうことが できる。" +#: js/blocks/IntervalsBlocks.js:1224 +#.TRANS: mode length is the number of notes in the mode, e.g., 7 for major and minor scales; 12 for chromatic scales +msgid "mode length" +msgstr "おんかいの おんすう" -#: js/RhythmBlocks.js:182 -#: js/RhythmBlocks.js:1086 -#: js/RhythmBlocks.js:1162 -msgid "Note value must be greater than 0." -msgstr "おとの ながさは、 0より おおきい あたいを せってい して ください。" +#: js/blocks/IntervalsBlocks.js:1233 +msgid "The Mode length block is the number of notes in the current scale." +msgstr "

おんかいの おんすうブロック


えんそう されている おんかいの、 おとの かずを ひょうじ する。" -#: js/RhythmBlocks.js:215 -#: js/RhythmBlocks.js:278 -#: js/RhythmBlocks.js:350 -#.TRANS: swing is a rhythmic variation that emphasises the offbeat -msgid "swing" -msgstr "スイング" +#: js/blocks/IntervalsBlocks.js:1235 +msgid "Most Western scales have 7 notes." +msgstr "
せいようの ほとんどの おんかいは、 7つの おとを もつ。

★おんかいとは
じゅんばんに ならんだ おとの まとまり。

たとえば、「ド」 を はじまりのおと に したときの 「ドレミファソラシド」、 「ソ」 を はじまりのおと に したときの 「ソラシドレミ(♯ファ)ソ」 の こと。" -#: js/RhythmBlocks.js:355 -#.TRANS: the amount to shift to the offbeat note -msgid "swing value" -msgstr "スイングの すうち" +#: js/blocks/IntervalsBlocks.js:1284 +#.TRANS: the mode in music is 'major', 'minor', etc. +msgid "current mode" +msgstr "げんだいの おんかい" -#: js/RhythmBlocks.js:419 -msgid "The Skip notes block will cause notes to be skipped." -msgstr "" +#: js/blocks/IntervalsBlocks.js:1337 +#.TRANS: the key is a group of pitches with which a music composition is created +msgid "current key" +msgstr "げんだいの ちょう" -#: js/RhythmBlocks.js:427 -#.TRANS: substitute rests on notes being skipped -msgid "skip notes" -msgstr "おんぷの省略" +#: js/blocks/IntervalsBlocks.js:1389 +#: js/blocks/IntervalsBlocks.js:1434 +#.TRANS: set the key and mode, e.g. C Major +msgid "set key" +msgstr "ちょうをせってい" -#: js/RhythmBlocks.js:489 -#.TRANS: speed up note duration by some factor, e.g. convert 1/4 to 1/8 notes by using a factor of 2 -msgid "multiply note value" -msgstr "おんかを ~ばいにする ファクター" +#: js/blocks/IntervalsBlocks.js:1443 +#: js/blocks/IntervalsBlocks.js:1449 +msgid "The Set key block is used to set the key and mode," +msgstr "

ちょうをせっていブロック


ちょうの ぶぶんに おとのたかさ、おんかいの ぶぶんに おんかいのしゅるいを えらび、ちょうを せっていする。

★ちょうとは
ちゅうしんてきな やくわりを はたすおとと、 おんかいの しゅるいによって きまる、 きょくの かんじ。 ちゅうしんてきな やくわりを はたすおと だけを さすこともある。
★おんかいとは
じゅんばんに ならんだ おとの まとまり。" -#: js/RhythmBlocks.js:542 -msgid "The Tie block works on pairs of notes, combining them into one note." -msgstr "

タイブロック


2つの おとを つなげて 1つの おとに する。 「おとのたかさブロック」 を いれて つかう。 おなじ たかさの おとだけ、 つなぐことが できる。" +#: js/blocks/IntervalsBlocks.js:1449 +msgid "eg C Major" +msgstr "

たとえば、「ド」 を はじまりのおと に したときの 「ドレミファソラシド」、 「ソ」 を はじまりのおと に したときの 「ソラシドレミ(♯ファ)ソ」 の こと。" -#: js/RhythmBlocks.js:550 -#.TRANS: tie notes together into one longer note -msgid "tie" -msgstr "タイ" +#: js/blocks/MediaBlocks.js:35 +#.TRANS: right side of the screen +msgid "right (screen)" +msgstr "ざひょうち(みぎ)" -#: js/RhythmBlocks.js:591 -#: js/RhythmBlocks.js:671 -#.TRANS: a dotted note is played for 1.5x its value, e.g., 1/8. --> 3/16 -msgid "dot" -msgstr "ふてんおんぷ" +#: js/blocks/MediaBlocks.js:45 +#: js/blocks/MediaBlocks.js:56 +msgid "The Right block returns the position of the right of the canvas." +msgstr "

すうちブロック(カンバス)


カンバスの みぎはし の xざひょうち。 プラスの すうち。カンバスの たてはば、 よこはば、 ざひょうち(うえ)、 ざひょうち(した)、 ざひょうち(ひだり)、 ざひょうち(みぎ) などの 6しゅるいが ある。" + +#: js/blocks/MediaBlocks.js:97 +#.TRANS: left side of the screen +msgid "left (screen)" +msgstr "ざひょうち (ひだり)" + +#: js/blocks/MediaBlocks.js:107 +#: js/blocks/MediaBlocks.js:118 +msgid "The Left block returns the position of the left of the canvas." +msgstr "

すうちブロック(カンバス)


カンバスの ひだりはし の xざひょうち。 マイナスの すうち。 カンバスの たてはば、 よこはば、 ざひょうち(うえ)、 ざひょうち(した)、 ざひょうち(ひだり)、 ざひょうち(みぎ) などの 6しゅるいが ある。" -#: js/RhythmBlocks.js:619 -#: js/RhythmActions.js:221 -msgid "An argument of -1 results in a note value of 0." -msgstr "ー1は 0の おんかに します" +#: js/blocks/MediaBlocks.js:158 +msgid "top (screen)" +msgstr "ざひょうち(うえ)" -#: js/RhythmBlocks.js:661 -msgid "The Dot block extends the duration of a note by 50%." -msgstr "" +#: js/blocks/MediaBlocks.js:168 +#: js/blocks/MediaBlocks.js:179 +msgid "The Top block returns the position of the top of the canvas." +msgstr "

すうちブロック(カンバス)


カンバスの じょうたん の yざひょうち。 プラスの すうち。 カンバスの じょうほうを もつ すうちブロックは、 カンバスの たてはば、 よこはば、 ざひょうち(うえ)、 ざひょうち(した)、 ざひょうち(ひだり)、 ざひょうち(みぎ) などの 6しゅるいが ある。" -#: js/RhythmBlocks.js:663 -msgid "Eg a dotted quarter note will play for 3/8 (1/4 + 1/8) of a beat." -msgstr "" +#: js/blocks/MediaBlocks.js:219 +msgid "bottom (screen)" +msgstr "ざひょうち(した)" -#: js/RhythmBlocks.js:765 -#.TRANS: Japanese only: note value block for drum -msgid "note value drum" -msgstr "おんぷ(ドラム)" +#: js/blocks/MediaBlocks.js:229 +#: js/blocks/MediaBlocks.js:240 +msgid "The Bottom block returns the position of the bottom of the canvas." +msgstr "

すうちブロック(カンバス)


カンバスの かたん の yざひょうち。 マイナスの すうち。 カンバスの じょうほうを もつ すうちブロックは、 カンバスの たてはば、 よこはば、 ざひょうち(うえ)、 ざひょうち(した)、 ざひょうち(ひだり)、 ざひょうち(みぎ) などの 6しゅるいが ある。" -#: js/RhythmBlocks.js:829 -msgid "392 hertz" -msgstr "392ヘルツ" +#: js/blocks/MediaBlocks.js:282 +msgid "width" +msgstr "カンバスの よこはば" -#: js/RhythmBlocks.js:1119 -msgid "The Note block is a container for one or more Pitch blocks." -msgstr "

おんぷブロック


おとの ながさと たかさを せってい する。ながさを きめ、「おとのたかさブロック」 を いれて つかう。" +#: js/blocks/MediaBlocks.js:291 +msgid "The Width block returns the width of the canvas." +msgstr "

すうちブロック(カンバス)


カンバスの たてはば の すうちを あらわす。 カンバスの じょうほうを もつ すうちブロックは、 カンバスの たてはば、 よこはば、 ざひょうち(うえ)、 ざひょうち(した)、 ざひょうち(ひだり)、 ざひょうち(みぎ) などの 6しゅるいが ある。" -#: js/RhythmBlocks.js:1121 -msgid "The Note block specifies the duration (note value) of its contents." -msgstr "

「おとのたかさブロック」 を 2ついじょう いれると、 おとを どうじに だすことが できる。" +#: js/blocks/MediaBlocks.js:325 +msgid "height" +msgstr "カンバスの たてはば" -#: js/RhythmBlocks.js:1130 -msgid "value2" -msgstr "ながさ" +#: js/blocks/MediaBlocks.js:334 +msgid "The Height block returns the height of the canvas." +msgstr "

すうちブロック(カンバス)


カンバスの たてはば の すうちを あらわす。 カンバスの じょうほうを もつ すうちブロックは、 カンバスの たてはば、 よこはば、 ざひょうち(うえ)、 ざひょうち(した)、 ざひょうち(ひだり)、 ざひょうち(みぎ) などの 6しゅるいが ある。" -#: js/RhythmBlocks.js:1200 -msgid "define frequency" -msgstr "周波数を明確にする" +#: js/blocks/MediaBlocks.js:369 +#.TRANS: stops playback of an audio recording +msgid "stop play" +msgstr "ていし" -#: js/RhythmBlocks.js:1218 -#: js/temperament.js:650 -#: js/temperament.js:1421 -msgid "octave space" -msgstr "オクターヴ・スペース" +#: js/blocks/MediaBlocks.js:404 +#.TRANS: Erases the images and text +msgid "erase media" +msgstr "メディアを けす" -#: js/NumberBlocks.js:28 -msgid "The Int block returns an integer." -msgstr "" +#: js/blocks/MediaBlocks.js:409 +msgid "The Erase Media block erases text and images." +msgstr "「メディアを けす」ブロックは もじと がぞうを けします。" -#: js/NumberBlocks.js:34 -msgid "int" -msgstr "整数に" +#: js/blocks/MediaBlocks.js:439 +#.TRANS: play an audio recording +msgid "play back" +msgstr "プレーバック" -#: js/NumberBlocks.js:73 -msgid "The Mod block returns the remainder from a division." -msgstr "" +#: js/blocks/MediaBlocks.js:487 +msgid "speak" +msgstr "しゃべる" -#: js/NumberBlocks.js:79 -msgid "mod" -msgstr "~でわったあまり(mod)" +#: js/blocks/MediaBlocks.js:495 +msgid "The Speak block outputs to the text-to-speech synthesizer" +msgstr "

おんせいブロック


うちこんだ もじを、 きかい おんせい で よみあげる。" -#: js/NumberBlocks.js:123 -msgid "The Power block calculates a power function." +#: js/blocks/MediaBlocks.js:546 +msgid "camera" msgstr "" -#: js/NumberBlocks.js:178 -msgid "The Sqrt block returns the square root." +#: js/blocks/MediaBlocks.js:551 +msgid "The Camera block connects a webcam to the Show block." msgstr "" -#: js/NumberBlocks.js:184 -msgid "sqrt" -msgstr "へいほうこん" - -#: js/NumberBlocks.js:230 -msgid "The Abs block returns the absolute value." +#: js/blocks/MediaBlocks.js:574 +msgid "video" msgstr "" -#: js/NumberBlocks.js:236 -msgid "abs" -msgstr "ぜったいち" - -#: js/NumberBlocks.js:277 -msgid "The Distance block returns the distance between two points. For example, between the mouse and the center of the screen." +#: js/blocks/MediaBlocks.js:579 +msgid "The Video block selects video for use with the Show block." msgstr "" -#: js/NumberBlocks.js:283 -#: plugins/rodi.rtp:310 -msgid "distance" -msgstr "距離" - -#: js/NumberBlocks.js:343 -msgid "The Divide block is used to divide." -msgstr "

すうちブロック(けいさん)


2つの すうちの わりざんした けいさんけっかを あらわす すうちブロック。 うえに つないだ すうちを、 したに つないだ すうちで わる。" - -#: js/NumberBlocks.js:411 -msgid "The Multiply block is used to multiply." -msgstr "

すうちブロック(けいさん)


2つの すうちを かけあわせた けいさんけっかを あらわす すうちブロック。" +#: js/blocks/MediaBlocks.js:607 +msgid "The Open file block opens a file for use with the Show block." +msgstr "" -#: js/NumberBlocks.js:554 -msgid "The Minus block is used to subtract." -msgstr "

すうちブロック(けいさん)


2つのすうちの ひきざんした けいさんけっかを あらわす すうちブロック。 うえに つないだ すうちから、 したに つないだ すうちを ひく。" +#: js/blocks/MediaBlocks.js:645 +msgid "stop media" +msgstr "メデイアを ていし" -#: js/NumberBlocks.js:647 -msgid "The Plus block is used to add." -msgstr "

すうちブロック(けいさん)


2つの すうちを たしあわせた けいさんけっかを あらわす すうちブロック。" +#: js/blocks/MediaBlocks.js:650 +msgid "The Stop media block stops audio or video playback." +msgstr "" -#: js/NumberBlocks.js:773 -msgid "The One-of block returns one of two choices." -msgstr "

特殊ブロック(ランダム)


つないだ 2つの ブロックのうち、 1つだけを ランダムに えらぶ。 「すうち」「アクションめい」など、 さまざまな ブロックを つなぐことが できる。

★ランダムとは
サイコロの め のように、 なにが でるか わからない すうちのこと。ランダム(random)は にほんごで 「らんすう」「でたらめな」という いみ。 ランダムを つかうと、 じっこうの たびに えんそうじゅんじょが かわる きょくなどを つくることが できる。" +#: js/blocks/MediaBlocks.js:679 +#: js/blocks/PitchBlocks.js:1577 +#: js/widgets/musickeyboard.js:1936 +#: js/widgets/phrasemaker.js:1037 +#.TRANS: a measure of frequency: one cycle per second +msgid "hertz" +msgstr "ヘルツ" -#: js/NumberBlocks.js:780 -#: js/PitchBlocks.js:616 -msgid "one of" -msgstr "どちらか ランダム" +#: js/blocks/MediaBlocks.js:692 +#: js/blocks/WidgetBlocks.js:182 +#: js/widgets/temperament.js:506 +#: js/widgets/temperament.js:546 +#: js/widgets/temperament.js:610 +#: js/widgets/temperament.js:618 +#: js/widgets/temperament.js:1505 +#: js/widgets/timbre.js:1842 +msgid "frequency" +msgstr "周波数" -#: js/NumberBlocks.js:782 -msgid "this" -msgstr "これか" +#: js/blocks/MediaBlocks.js:692 +msgid "duration (ms)" +msgstr "ながさ(ミリびょう)" -#: js/NumberBlocks.js:782 -msgid "that" -msgstr "それか" +#: js/blocks/MediaBlocks.js:728 +#.TRANS: translate a note into hertz, e.g., A4 -> 440HZ +msgid "note to frequency" +msgstr "おんぷの たかさを しゅうはすう ひょうじへ" -#: js/NumberBlocks.js:837 -msgid "The Random block returns a random number." -msgstr "

すうちブロック(ランダム)


してい した さいしょうち から さいだいち までの はんいで、 ランダムな すうちに なる。

★ランダムとは
サイコロの め のように、 なにが でるか わからない すうちのこと。ランダム(random)は にほんごで 「らんすう」「でたらめな」という いみ。 ランダムを つかうと、 じっこうの たびに えんそうじゅんじょが かわる きょくなどを つくることが できる。" +#: js/blocks/MediaBlocks.js:736 +msgid "The To frequency block converts a pitch name and octave to Hertz." +msgstr "" -#: js/NumberBlocks.js:844 -msgid "random" -msgstr "ランダム" +#: js/blocks/MediaBlocks.js:746 +#: js/blocks/PitchBlocks.js:656 +#: js/blocks/PitchBlocks.js:934 +#: js/blocks/PitchBlocks.js:1866 +#.TRANS: name2 is name as in name of pitch (JAPANESE ONLY) +msgid "name2" +msgstr "なまえ" -#: js/NumberBlocks.js:846 -msgid "min" -msgstr "さいしょうち" +#: js/blocks/MediaBlocks.js:812 +msgid "The Avatar block is used to change the appearance of the mouse." +msgstr "" -#: js/NumberBlocks.js:846 -msgid "max" -msgstr "さいだいち" +#: js/blocks/MediaBlocks.js:819 +msgid "The Avatar block is used to change the appearance of the turtle." +msgstr "" -#: js/NumberBlocks.js:910 -msgid "The Number block holds a number." -msgstr "

すうちブロック


すうちを していするブロック。" +#: js/blocks/MediaBlocks.js:831 +#: js/blocks/MediaBlocks.js:891 +#.TRANS: a media object +msgid "size" +msgstr "おおきさ" -#: js/BoxesBlocks.js:53 -#: js/BoxesBlocks.js:59 -msgid "The Add-to block is used to add to the value stored in a box." -msgstr "

かずのはこ(あたいをかえる)


してい した はこに、 すきな すうちを たす。" +#: js/blocks/MediaBlocks.js:831 +msgid "image" +msgstr "がぞう そざい" -#: js/BoxesBlocks.js:61 -msgid "It can also be used with other blocks such as Color and Pen size." -msgstr "

マイナスの すうちを つかうと ひきざん になる。" +#: js/blocks/MediaBlocks.js:880 +msgid "The Show block is used to display text or images on the canvas." +msgstr "

ひょうじブロック(スタンプ)


スタンプは、 じっこうすると ネズミの いちに してい した もじ または がぞう を ひょうじする。 ネズミの からだの したに あらわれるので、 ちいさいもじ や がぞう だと ネズミがいどうしないと みえない ばあいがある。" -#: js/BoxesBlocks.js:73 -msgid "add" -msgstr "たす" +#: js/blocks/MediaBlocks.js:888 +#.TRANS: show1 is show as in display an image or text on the screen. +msgid "show1" +msgstr "スタンプ" -#: js/BoxesBlocks.js:75 -#: js/temperament.js:716 -msgid "to" -msgstr "はこへ" +#: js/blocks/MediaBlocks.js:891 +msgid "obj" +msgstr "そざい" -#: js/BoxesBlocks.js:75 -#: js/BoxesBlocks.js:595 -#: js/HeapBlocks.js:544 -msgid "value1" -msgstr "すうち" +#: js/blocks/MediaBlocks.js:938 +msgid "The Media block is used to import an image." +msgstr "

がぞう ブロック


がぞうのブロック。 ブロックの マークを おすと、 コンピューターじょうから がぞうファイルを よみこむことが できる。" -#: js/BoxesBlocks.js:118 -msgid "Block does not support incrementing." -msgstr "このブロックは、ぞうしょくの サポートが ありません" +#: js/blocks/MediaBlocks.js:973 +msgid "The Text block holds a text string." +msgstr "

もじ ブロック


もじを していするブロック。" -#: js/BoxesBlocks.js:152 -msgid "The Add-1-to block adds one to the value stored in a box." -msgstr "

かずのはこ(あたいをかえる)


してい した はこに、 1を たす。" +#: js/blocks/MeterBlocks.js:34 +#.TRANS: musical meter (time signature), e.g., 4:4 +msgid "current meter" +msgstr "げんだいの びょうし" -#: js/BoxesBlocks.js:163 -msgid "add 1 to" -msgstr "はこに 1を たす" +#: js/blocks/MeterBlocks.js:85 +#.TRANS: number of beats per minute +msgid "beat factor" +msgstr "はくを ~ばいにする ファクター" -#: js/BoxesBlocks.js:211 -msgid "The Subtract-1-from block subtracts one from the value stored in a box." +#: js/blocks/MeterBlocks.js:161 +msgid "The Beats per minute block returns the current beats per minute." msgstr "" -#: js/BoxesBlocks.js:222 -msgid "subtract 1 from" -msgstr "〜から1ひく" - -#: js/BoxesBlocks.js:270 -#: js/BoxesBlocks.js:387 -msgid "The Box block returns the value stored in a box." -msgstr "

すうちブロック


すうちブロック として、 はこの すうちを つかう。" +#: js/blocks/MeterBlocks.js:169 +#: js/widgets/status.js:152 +#.TRANS: number of beats played per minute +msgid "beats per minute2" +msgstr "1ぷんあたりの はくのかず" -#: js/BoxesBlocks.js:500 -#: js/BoxesBlocks.js:576 -msgid "The Store in block will store a value in a box." -msgstr "

かずのはこ(あたいをいれる)


してい した はこに、 してい した すうちを いれる。" +#: js/blocks/MeterBlocks.js:169 +#: js/blocks/MeterBlocks.js:1056 +#: js/blocks/MeterBlocks.js:1133 +#: js/blocks/MeterBlocks.js:1211 +#.TRANS: sets tempo by defining a beat and beats per minute +msgid "beats per minute" +msgstr "スピードを きめる" -#: js/BoxesBlocks.js:652 -msgid "The Box2 block returns the value stored in Box2." -msgstr "" +#: js/blocks/MeterBlocks.js:233 +#.TRANS: count of current musical measure in meter +msgid "measure count" +msgstr "しょうせつの かず" -#: js/BoxesBlocks.js:703 -msgid "The Store in Box2 block is used to store a value in Box2." +#: js/blocks/MeterBlocks.js:241 +msgid "The Measure count block returns the current measure." msgstr "" -#: js/BoxesBlocks.js:715 -msgid "store in box2" -msgstr "はこ2に すうちを いれる" +#: js/blocks/MeterBlocks.js:290 +#.TRANS: count of current beat in the meter +msgid "beat count" +msgstr "はくの いち" -#: js/BoxesBlocks.js:761 -msgid "The Box1 block returns the value stored in Box1." -msgstr "" +#: js/blocks/MeterBlocks.js:300 +#: js/blocks/MeterBlocks.js:311 +#: js/blocks/MeterBlocks.js:565 +#: js/blocks/MeterBlocks.js:576 +msgid "The Beat count block is the number of the current beat," +msgstr "

はくの いちブロック


しょうせつの なかで なんぱくめかを あらわす かず。" -#: js/BoxesBlocks.js:812 -msgid "The Store in Box1 block is used to store a value in Box1." -msgstr "" +#: js/blocks/MeterBlocks.js:313 +#: js/blocks/MeterBlocks.js:578 +msgid "eg 1, 2, 3, or 4." +msgstr " たとえば、 かくしょうせつの 3はくめに なにか アクション・イベントを おこしたいときなどに つかう。" -#: js/BoxesBlocks.js:826 -msgid "store in box1" -msgstr "はこ1に すうちを いれる" +#: js/blocks/MeterBlocks.js:368 +#.TRANS: count the number of notes +msgid "sum note values" +msgstr "おとの ながさを たす" -#: js/HeapBlocks.js:49 -msgid "The Heap block returns the heap." +#: js/blocks/MeterBlocks.js:376 +#: js/blocks/MeterBlocks.js:440 +msgid "The Note counter block can be used to count the number of contained notes." msgstr "" -#: js/HeapBlocks.js:133 -msgid "show heap" -msgstr "ヒープを ひょうじ する" - -#: js/HeapBlocks.js:181 -msgid "The Heap-length block returns the length of the heap." -msgstr "" +#: js/blocks/MeterBlocks.js:432 +#.TRANS: count the number of notes +msgid "note counter" +msgstr "おんぷの ごうけい すう" -#: js/HeapBlocks.js:195 -msgid "heap length" -msgstr "ヒープの ながさ" +#: js/blocks/MeterBlocks.js:496 +#.TRANS: number of whole notes that have been played +msgid "whole notes played" +msgstr "さいせい された ぜんおんぷの かず" -#: js/HeapBlocks.js:254 -msgid "The Heap-empty? block returns true if the heap is empty." +#: js/blocks/MeterBlocks.js:505 +msgid "The Whole notes played block returns the total number of whole notes played." msgstr "" -#: js/HeapBlocks.js:268 -#.TRANS: Is the heap empty? -msgid "heap empty?" -msgstr "ヒープは から ですか?" - -#: js/HeapBlocks.js:317 -msgid "The Empty-heap block empties the heap." -msgstr "" +#: js/blocks/MeterBlocks.js:555 +#: js/turtleactions/DictActions.js:83 +#.TRANS: number of notes that have been played +msgid "notes played" +msgstr "ぜんたいの はくの かず" -#: js/HeapBlocks.js:327 -#: js/HeapBlocks.js:647 -#.TRANS: empty the heap -msgid "empty heap" -msgstr "からの ヒープ" +#: js/blocks/MeterBlocks.js:653 +msgid "The No clock block decouples the notes from the master clock." +msgstr "クロックなしブロックはそれぞれの動作の順番をリズムより優先します。" -#: js/HeapBlocks.js:371 -msgid "The Reverse-heap block reverses the order of the heap." -msgstr "" +#: js/blocks/MeterBlocks.js:661 +#.TRANS: don't lock notes to master clock +msgid "no clock" +msgstr "クロックなし" -#: js/HeapBlocks.js:384 -#.TRANS: reverse the order of the heap -msgid "reverse heap" -msgstr "ヒープを ぎゃくに する" +#: js/blocks/MeterBlocks.js:700 +msgid "on weak beat do" +msgstr "弱拍に~する" -#: js/HeapBlocks.js:428 -msgid "The Index-heap block returns a value in the heap at a specified location." +#: js/blocks/MeterBlocks.js:705 +msgid "The On-weak-beat block lets you specify actions to take on weak (off) beats." msgstr "" -#: js/HeapBlocks.js:443 -#.TRANS: retrieve a value from the heap at index position in the heap -msgid "index heap" -msgstr "ヒープに ばんごうを ふる" +#: js/blocks/MeterBlocks.js:750 +msgid "on strong beat" +msgstr "強拍に" -#: js/HeapBlocks.js:523 -msgid "The Set-heap entry block sets a value in he heap at the specified location." +#: js/blocks/MeterBlocks.js:758 +msgid "The On-strong-beat block lets you specify actions to take on specified beats." msgstr "" -#: js/HeapBlocks.js:619 -msgid "The Pop block removes the value at the top of the heap." +#: js/blocks/MeterBlocks.js:769 +msgid "beat" +msgstr "びょうし" + +#: js/blocks/MeterBlocks.js:813 +msgid "on every beat do" +msgstr "すべてのびょうしにアクションじっこう" + +#: js/blocks/MeterBlocks.js:821 +msgid "The On-every-beat block lets you specify actions to take on every beat." msgstr "" -#: js/HeapBlocks.js:633 -#.TRANS: pop a value off the top of the heap -msgid "pop" -msgstr "ポップ" +#: js/blocks/MeterBlocks.js:874 +msgid "on every note do" +msgstr "すべての おんぷに アクションじっこう" -#: js/HeapBlocks.js:680 -msgid "The Push block adds a value to the top of the heap." +#: js/blocks/MeterBlocks.js:882 +msgid "The On-every-note block lets you specify actions to take on every note." msgstr "" -#: js/HeapBlocks.js:696 -#.TRANS: push a value onto the top of the heap -msgid "push" -msgstr "プッシュ" +#: js/blocks/MeterBlocks.js:928 +#: js/blocks/MeterBlocks.js:999 +#.TRANS: sets tempo by defining a beat and beats per minute +msgid "master beats per minute" +msgstr "ぜんたいの スピードを きめる" -#: js/FlowBlocks.js:41 -msgid "The Backward block runs code in reverse order (Musical retrograde)." -msgstr "

じっこうブロック(ぎゃくじっこう)


はさまれている ブロックを、 つうじょうとは ぎゃくの じゅんじょで、 したから うえにむかって じっこうする。" +#: js/blocks/MeterBlocks.js:952 +#: js/blocks/MeterBlocks.js:1078 +#: js/blocks/MeterBlocks.js:1135 +msgid "bpm" +msgstr "1ぷんあたりの はくのかず" -#: js/FlowBlocks.js:48 -msgid "backward" -msgstr "ぎゃくむきに じっこう" +#: js/blocks/MeterBlocks.js:952 +#: js/blocks/MeterBlocks.js:1078 +#: js/blocks/MeterBlocks.js:1135 +msgid "beat value" +msgstr "1ぱく" -#: js/FlowBlocks.js:124 -msgid "The Duplicate block will run each block multiple times." -msgstr "" +#: js/blocks/MeterBlocks.js:1024 +#: js/blocks/MeterBlocks.js:1167 +#: js/blocks/MeterBlocks.js:1241 +msgid "Beats per minute must be > 30." +msgstr "1ぷん あたりの はくの かずは 30より おおきい あたいを せってい して ください。" -#: js/FlowBlocks.js:136 -msgid "duplicate" -msgstr "複製する" +#: js/blocks/MeterBlocks.js:1027 +#: js/blocks/MeterBlocks.js:1170 +#: js/blocks/MeterBlocks.js:1244 +msgid "Maximum beats per minute is 1000." +msgstr "1ぷん あたりの はくの かずは さいだい 1000です。" -#: js/FlowBlocks.js:334 -msgid "The Default block is used inside of a Switch to define the default action." -msgstr "" +#: js/blocks/MeterBlocks.js:1068 +msgid "The Beats per minute block sets the number of 1/4 notes per minute." +msgstr "

スピードを きめるブロック


1ぷんあたりの はくの かずを せってい することで、 きょくの スピードを きめる。 ひょうじゅんは 4ぶおんぷ 90こ。

★はくとは
くりかえされる リズムのこと。" -#: js/FlowBlocks.js:342 -msgid "default" -msgstr "ひょうじゅん" +#: js/blocks/MeterBlocks.js:1279 +#.TRANS: anacrusis +msgid "pickup" +msgstr "ピックアップ" -#: js/FlowBlocks.js:361 -#: js/FlowBlocks.js:418 -msgid "The Case Block must be used inside of a Switch Block." -msgstr "ケースブロックは スイッチ ブロックの なかに ある ひつようが あります。" +#: js/blocks/MeterBlocks.js:1367 +msgid "number of beats" +msgstr "はくの かず" -#: js/FlowBlocks.js:389 -msgid "The Case block is used inside of a Switch to define matches." +#: js/blocks/NumberBlocks.js:28 +msgid "The Int block returns an integer." msgstr "" -#: js/FlowBlocks.js:397 -msgid "case" -msgstr "ケース" +#: js/blocks/NumberBlocks.js:34 +msgid "int" +msgstr "整数に" -#: js/FlowBlocks.js:446 -msgid "The Switch block will run the code in the matching Case." +#: js/blocks/NumberBlocks.js:73 +msgid "The Mod block returns the remainder from a division." msgstr "" -#: js/FlowBlocks.js:454 -msgid "switch" -msgstr "スイッチ" +#: js/blocks/NumberBlocks.js:79 +msgid "mod" +msgstr "~でわったあまり(mod)" -#: js/FlowBlocks.js:595 -msgid "The Stop block will stop a loop" +#: js/blocks/NumberBlocks.js:141 +msgid "The Power block calculates a power function." msgstr "" -#: js/FlowBlocks.js:597 -msgid "Forever, Repeat, While, or Until." +#: js/blocks/NumberBlocks.js:196 +msgid "The Sqrt block returns the square root." msgstr "" -#: js/FlowBlocks.js:604 -#: js/phrasemaker.js:3799 -#: js/musickeyboard.js:629 -#: js/musickeyboard.js:631 -#: js/timbre.js:417 -#: js/timbre.js:419 -#: plugins/rodi.rtp:29 -#: plugins/rodi.rtp:73 -#: plugins/rodi.rtp:413 -msgid "stop" -msgstr "止める" +#: js/blocks/NumberBlocks.js:202 +msgid "sqrt" +msgstr "へいほうこん" -#: js/FlowBlocks.js:653 -msgid "The Waitfor block will wait until the condition is true." +#: js/blocks/NumberBlocks.js:248 +msgid "The Abs block returns the absolute value." msgstr "" -#: js/FlowBlocks.js:661 -msgid "wait for" -msgstr "をまつ" +#: js/blocks/NumberBlocks.js:254 +msgid "abs" +msgstr "ぜったいち" -#: js/FlowBlocks.js:732 -msgid "The Until block will repeat until the condition is true." +#: js/blocks/NumberBlocks.js:295 +msgid "The Distance block returns the distance between two points. For example, between the mouse and the center of the screen." msgstr "" -#: js/FlowBlocks.js:740 -msgid "until" -msgstr "までに" +#: js/blocks/NumberBlocks.js:301 +#: plugins/rodi.rtp:310 +msgid "distance" +msgstr "距離" -#: js/FlowBlocks.js:742 -#: js/FlowBlocks.js:822 -msgid "do2" -msgstr "~する" +#: js/blocks/NumberBlocks.js:361 +msgid "The Divide block is used to divide." +msgstr "

すうちブロック(けいさん)


2つの すうちの わりざんした けいさんけっかを あらわす すうちブロック。 うえに つないだ すうちを、 したに つないだ すうちで わる。" -#: js/FlowBlocks.js:812 -msgid "The While block will repeat while the condition is true." -msgstr "" +#: js/blocks/NumberBlocks.js:441 +msgid "The Multiply block is used to multiply." +msgstr "

すうちブロック(けいさん)


2つの すうちを かけあわせた けいさんけっかを あらわす すうちブロック。" -#: js/FlowBlocks.js:820 -msgid "while" -msgstr "のあいだに" +#: js/blocks/NumberBlocks.js:612 +msgid "The Minus block is used to subtract." +msgstr "

すうちブロック(けいさん)


2つのすうちの ひきざんした けいさんけっかを あらわす すうちブロック。 うえに つないだ すうちから、 したに つないだ すうちを ひく。" -#: js/FlowBlocks.js:903 -#: js/FlowBlocks.js:968 -#: js/FlowBlocks.js:979 -msgid "In this example if the mouse button is pressed a snare drum will play." -msgstr "

ずのれい では、 もし、 パソコンのマウスを ながおし していれば 「スネアドラム」ブロックを えんそうする。" +#: js/blocks/NumberBlocks.js:723 +msgid "The Plus block is used to add." +msgstr "

すうちブロック(けいさん)


2つの すうちを たしあわせた けいさんけっかを あらわす すうちブロック。" -#: js/FlowBlocks.js:925 -#: js/FlowBlocks.js:988 -msgid "if" -msgstr "もし" +#: js/blocks/NumberBlocks.js:849 +msgid "The One-of block returns one of two choices." +msgstr "

特殊ブロック(ランダム)


つないだ 2つの ブロックのうち、 1つだけを ランダムに えらぶ。 「すうち」「アクションめい」など、 さまざまな ブロックを つなぐことが できる。

★ランダムとは
サイコロの め のように、 なにが でるか わからない すうちのこと。ランダム(random)は にほんごで 「らんすう」「でたらめな」という いみ。 ランダムを つかうと、 じっこうの たびに えんそうじゅんじょが かわる きょくなどを つくることが できる。" -#: js/FlowBlocks.js:927 -#: js/FlowBlocks.js:990 -msgid "then" -msgstr "ならば" +#: js/blocks/NumberBlocks.js:856 +#: js/blocks/PitchBlocks.js:616 +msgid "one of" +msgstr "どちらか ランダム" -#: js/FlowBlocks.js:927 -msgid "else" -msgstr "でなければ" +#: js/blocks/NumberBlocks.js:858 +msgid "this" +msgstr "これか" -#: js/FlowBlocks.js:1025 -msgid "The Forever block will repeat the contained blocks forever." -msgstr "

じっこうブロック(くりかえし)


ずっとくりかえす」の ブロックは、 じっこうを ていし しないかぎり、 はさまれている ブロックを くりかえし じっこうする。" +#: js/blocks/NumberBlocks.js:858 +msgid "that" +msgstr "それか" -#: js/FlowBlocks.js:1037 -msgid "forever" -msgstr "ずっと くりかえす" +#: js/blocks/NumberBlocks.js:913 +msgid "The Random block returns a random number." +msgstr "

すうちブロック(ランダム)


してい した さいしょうち から さいだいち までの はんいで、 ランダムな すうちに なる。

★ランダムとは
サイコロの め のように、 なにが でるか わからない すうちのこと。ランダム(random)は にほんごで 「らんすう」「でたらめな」という いみ。 ランダムを つかうと、 じっこうの たびに えんそうじゅんじょが かわる きょくなどを つくることが できる。" -#: js/FlowBlocks.js:1073 -msgid "The Repeat block will repeat the contained blocks." -msgstr "

じっこうブロック(くりかえし)


はさまれている ブロックの プログラムを、 にゅうりょくした かいすう だけ くりかえす。" +#: js/blocks/NumberBlocks.js:920 +msgid "random" +msgstr "ランダム" -#: js/FlowBlocks.js:1075 -msgid "In this example the note will be played 4 times." -msgstr "

ずのれい では、 「ソ」 の おとが 4かい えんそうされる。" +#: js/blocks/NumberBlocks.js:922 +msgid "min" +msgstr "さいしょうち" -#: js/FlowBlocks.js:1083 -msgid "repeat" -msgstr "~かい くりかえす" +#: js/blocks/NumberBlocks.js:922 +msgid "max" +msgstr "さいだいち" -#: js/FlowBlocks.js:1123 -msgid "duplicate factor" -msgstr "複製ファクター" +#: js/blocks/NumberBlocks.js:986 +msgid "The Number block holds a number." +msgstr "

すうちブロック


すうちを していするブロック。" -#: js/PitchBlocks.js:39 -#: js/musicutils.js:722 -#: js/musicutils.js:1117 -#: js/synthutils.js:112 -#.TRANS: square wave -msgid "square" -msgstr "しかくの なみ" +#: js/blocks/OrnamentBlocks.js:32 +msgid "staccato factor" +msgstr "スタッカートの ながさ ファクター" -#: js/PitchBlocks.js:62 -#: js/ToneBlocks.js:39 -#: js/musicutils.js:723 -#: js/musicutils.js:1118 -#: js/synthutils.js:116 -#.TRANS: triangle wave -msgid "triangle" -msgstr "さんかくの なみ" +#: js/blocks/OrnamentBlocks.js:108 +msgid "slur factor" +msgstr "スラーの ながさ ファクター" -#: js/PitchBlocks.js:85 -#: js/musicutils.js:721 -#: js/musicutils.js:1116 -#: js/synthutils.js:110 -#.TRANS: sine wave -msgid "sine" -msgstr "サインは" +#: js/blocks/OrnamentBlocks.js:217 +#: js/blocks/OrnamentBlocks.js:309 +#.TRANS: the neighbor refers to a neighboring note, e.g., D is a neighbor of C +msgid "neighbor" +msgstr "おとを くわえる" -#: js/PitchBlocks.js:108 -#: js/musicutils.js:724 -#: js/musicutils.js:1119 -#: js/synthutils.js:114 -#.TRANS: sawtooth wave -msgid "sawtooth" -msgstr "ぎざぎざの なみ" +#: js/blocks/OrnamentBlocks.js:293 +msgid "The Neighbor block rapidly switches between neighboring pitches." +msgstr "

おとを くわえる ブロック


2つの おなじたかさの おとの あいだに、 おとを 1つ いれることが できる。
ずのれいでは、 ソとソの あいだに ラが はいり、 「ソラソ」 と すばやく えんそうされる。

★おんかいとは
じゅんばんに ならんだ おとの まとまり。たとえば、「ド」 を はじまりのおと に したときの 「ドレミファソラシド」、 「ソ」 を はじまりのおと に したときの 「ソラシドレミ(♯ファ)ソ」 の こと。" -#: js/PitchBlocks.js:141 -#.TRANS: musical transposition (adjustment of pitch up or down) -msgid "transposition" -msgstr "いちょう" +#: js/blocks/OrnamentBlocks.js:364 +msgid "glide" +msgstr "グリッサンド" -#: js/PitchBlocks.js:168 -#.TRANS: step down one note in current musical scale -msgid "scalar step down" -msgstr "おんかい内で~度下がる:" +#: js/blocks/OrnamentBlocks.js:479 +#: js/blocks/OrnamentBlocks.js:643 +msgid "slur" +msgstr "スラー" -#: js/PitchBlocks.js:172 -msgid "The Scalar step down block returns the number of semi-tones down to the previous note in the current key and mode." -msgstr "" +#: js/blocks/OrnamentBlocks.js:558 +#: js/blocks/OrnamentBlocks.js:710 +#.TRANS: play each note sharply detached from the others +msgid "staccato" +msgstr "スタッカート" -#: js/PitchBlocks.js:190 -#.TRANS: step up one note in current musical scale -msgid "scalar step up" -msgstr "おんかい内で~度上がる:" +#: js/blocks/RhythmBlocks.js:182 +#: js/blocks/RhythmBlocks.js:1086 +#: js/blocks/RhythmBlocks.js:1162 +msgid "Note value must be greater than 0." +msgstr "おとの ながさは、 0より おおきい あたいを せってい して ください。" -#: js/PitchBlocks.js:194 -msgid "The Scalar step up block returns the number of semi-tones up to the next note in the current key and mode." -msgstr "" +#: js/blocks/RhythmBlocks.js:215 +#: js/blocks/RhythmBlocks.js:278 +#: js/blocks/RhythmBlocks.js:350 +#.TRANS: swing is a rhythmic variation that emphasises the offbeat +msgid "swing" +msgstr "スイング" -#: js/PitchBlocks.js:212 -#.TRANS: the change measured in half-steps between the current pitch and the previous pitch -msgid "change in pitch" -msgstr "おんていの ちがい" +#: js/blocks/RhythmBlocks.js:355 +#.TRANS: the amount to shift to the offbeat note +msgid "swing value" +msgstr "スイングの すうち" -#: js/PitchBlocks.js:216 -msgid "The Change in pitch block is the difference (in half steps) between the current pitch being played and the previous pitch played." -msgstr "音程の違いブロックは現在に鳴らされている音高と現在のちょうど前に鳴らされている音高(半おとの値で)の違いです。" +#: js/blocks/RhythmBlocks.js:419 +msgid "The Skip notes block will cause notes to be skipped." +msgstr "" -#: js/PitchBlocks.js:243 -#.TRANS: the change measured in scale-steps between the current pitch and the previous pitch -msgid "scalar change in pitch" -msgstr "おんかいに よって おんていの ちがい" +#: js/blocks/RhythmBlocks.js:427 +#.TRANS: substitute rests on notes being skipped +msgid "skip notes" +msgstr "おんぷの省略" -#: js/PitchBlocks.js:250 -#: js/PitchBlocks.js:432 -#: js/PitchBlocks.js:1629 -#: js/DictActions.js:89 -#: js/temperament.js:477 -#: js/temperament.js:481 -#: js/temperament.js:714 -#.TRANS: convert current note to piano key (1-88) -#.TRANS: a mapping of pitch to the 88 piano keys -msgid "pitch number" -msgstr "おとのたかさを かずでひょうじ" +#: js/blocks/RhythmBlocks.js:489 +#.TRANS: speed up note duration by some factor, e.g. convert 1/4 to 1/8 notes by using a factor of 2 +msgid "multiply note value" +msgstr "おんかを ~ばいにする ファクター" -#: js/PitchBlocks.js:256 -msgid "The Pitch number block is the value of the pitch of the note currently being played." -msgstr "

おとのたかさを かずでひょうじ ブロック


おとの たかさを かずで ひょうじする。 たとえば、 「ド_4」 ならば 1、 「ソ_4」 ならば 7 、「シ_3」ならば-1、と ひょうじされる。" +#: js/blocks/RhythmBlocks.js:542 +msgid "The Tie block works on pairs of notes, combining them into one note." +msgstr "

タイブロック


2つの おとを つなげて 1つの おとに する。 「おとのたかさブロック」 を いれて つかう。 おなじ たかさの おとだけ、 つなぐことが できる。" -#: js/PitchBlocks.js:329 -#: js/PitchBlocks.js:433 -#.TRANS: the current pitch expressed in Hertz -msgid "pitch in hertz" -msgstr "おとのたかさを ヘルツで ひょうじ" +#: js/blocks/RhythmBlocks.js:550 +#.TRANS: tie notes together into one longer note +msgid "tie" +msgstr "タイ" -#: js/PitchBlocks.js:334 -msgid "The Pitch in Hertz block is the value in Hertz of the pitch of the note currently being played." -msgstr "

おとの たかさを ヘルツで ひょうじ ブロック


おとの たかさを ヘルツで ひょうじ する。
たとえば、 オクターヴが4の ラのおとは、 440ヘルツという すうちで あらわすことが できる。

★ヘルツとは
おとの たかさを あらわす しゅうはすう。
★しゅうはすうとは
おとが 1びょうかん に なんかい しんどうするかを あらわす すうち。 しゅうはすうが たかい (すうちが おおきい) ほど、 おとが たかくなる。" +#: js/blocks/RhythmBlocks.js:591 +#: js/blocks/RhythmBlocks.js:671 +#.TRANS: a dotted note is played for 1.5x its value, e.g., 1/8. --> 3/16 +msgid "dot" +msgstr "ふてんおんぷ" -#: js/PitchBlocks.js:367 -#: js/DictActions.js:87 -msgid "current pitch" -msgstr "げんだいの おとの たかさ" +#: js/blocks/RhythmBlocks.js:619 +#: js/turtleactions/RhythmActions.js:221 +msgid "An argument of -1 results in a note value of 0." +msgstr "ー1は 0の おんかに します" -#: js/PitchBlocks.js:373 -msgid "The Current Pitch block is used with the Pitch Converter block. In the example above, current pitch, sol 4, is displayed as 392 hertz." +#: js/blocks/RhythmBlocks.js:661 +msgid "The Dot block extends the duration of a note by 50%." msgstr "" -#: js/PitchBlocks.js:410 -msgid "This block converts the pitch value of the last note played into different formats such as hertz, letter name, pitch number, et al." +#: js/blocks/RhythmBlocks.js:663 +msgid "Eg a dotted quarter note will play for 3/8 (1/4 + 1/8) of a beat." msgstr "" -#: js/PitchBlocks.js:434 -msgid "alphabet" -msgstr "アルファベット" - -#: js/PitchBlocks.js:436 -#.TRANS: Translate as "alphabet class" -msgid "letter class" -msgstr "アルファベット・クラス" - -#: js/PitchBlocks.js:437 -msgid "solfege class" -msgstr "かいめい" +#: js/blocks/RhythmBlocks.js:765 +#.TRANS: Japanese only: note value block for drum +msgid "note value drum" +msgstr "おんぷ(ドラム)" -#: js/PitchBlocks.js:438 -msgid "staff y" -msgstr "おんぶきごうのyざひょう" +#: js/blocks/RhythmBlocks.js:829 +msgid "392 hertz" +msgstr "392ヘルツ" -#: js/PitchBlocks.js:439 -msgid "solfege syllable" -msgstr "かいめい(ド、レ、ミ)" +#: js/blocks/RhythmBlocks.js:1119 +msgid "The Note block is a container for one or more Pitch blocks." +msgstr "

おんぷブロック


おとの ながさと たかさを せってい する。ながさを きめ、「おとのたかさブロック」 を いれて つかう。" -#: js/PitchBlocks.js:440 -msgid "pitch class" -msgstr "ピッチクラス" +#: js/blocks/RhythmBlocks.js:1121 +msgid "The Note block specifies the duration (note value) of its contents." +msgstr "

「おとのたかさブロック」 を 2ついじょう いれると、 おとを どうじに だすことが できる。" -#: js/PitchBlocks.js:441 -msgid "scalar class" -msgstr "おんかいクラス" +#: js/blocks/RhythmBlocks.js:1128 +#: js/blocks/PitchBlocks.js:974 +#: js/blocks/PitchBlocks.js:1007 +#: js/blocks/ProgramBlocks.js:1186 +#: js/blocks/ProgramBlocks.js:1227 +#: js/widgets/status.js:190 +#: js/widgets/temperament.js:464 +#: js/widgets/temperament.js:486 +#: js/widgets/temperament.js:496 +#: js/widgets/temperament.js:617 +#: plugins/rodi.rtp:192 +#.TRANS: a musical note consisting of pitch and duration +msgid "note" +msgstr "おんぷ" -#: js/PitchBlocks.js:443 -msgid "nth degree" -msgstr "ピッチど" +#: js/blocks/RhythmBlocks.js:1130 +msgid "value2" +msgstr "ながさ" -#: js/PitchBlocks.js:444 -msgid "pitch to shade" -msgstr "おとのたかさをシェードに" +#: js/blocks/RhythmBlocks.js:1200 +msgid "define frequency" +msgstr "周波数を明確にする" -#: js/PitchBlocks.js:445 -msgid "pitch to color" -msgstr "おとのたかさをいろに" +#: js/blocks/RhythmBlocks.js:1218 +#: js/widgets/temperament.js:787 +#: js/widgets/temperament.js:1587 +msgid "octave space" +msgstr "オクターヴ・スペース" -#: js/PitchBlocks.js:629 -#: js/musickeyboard.js:565 -#.TRANS: MIDI is a technical standard for electronic music -msgid "MIDI" +#: js/blocks/SensorsBlocks.js:36 +msgid "The Input block prompts for keyboard input." msgstr "" -#: js/PitchBlocks.js:642 -#.TRANS: set an offset associated with the numeric piano keyboard mapping -msgid "set pitch number offset" -msgstr "音高の数字を初期化" +#: js/blocks/SensorsBlocks.js:46 +msgid "input" +msgstr "インプット" -#: js/PitchBlocks.js:645 -msgid "The Set pitch number offset block is used to set the offset for mapping pitch numbers to pitch and octave." -msgstr "" +#: js/blocks/SensorsBlocks.js:64 +msgid "Input a value" +msgstr "価値をインプット" -#: js/PitchBlocks.js:679 -#.TRANS: convert piano key number (1-88) to pitch -msgid "number to pitch" -msgstr "すうじを おんめいへ" +#: js/blocks/SensorsBlocks.js:126 +msgid "input value" +msgstr "インプットの価値" -#: js/PitchBlocks.js:682 -msgid "The Number to pitch block will convert a pitch number to a pich name." +#: js/blocks/SensorsBlocks.js:131 +msgid "The Input-value block stores the input." msgstr "" -#: js/PitchBlocks.js:715 -#.TRANS: convert piano key number (1-88) to octave -msgid "number to octave" -msgstr "すうちをオクターヴ表記へ" +#: js/blocks/SensorsBlocks.js:238 +msgid "loudness" +msgstr "おんりょう" -#: js/PitchBlocks.js:717 -msgid "The Number to octave block will convert a pitch number to an octave." +#: js/blocks/SensorsBlocks.js:245 +msgid "The Loudness block returns the volume detected by the microphone." msgstr "" -#: js/PitchBlocks.js:726 -msgid "y to pitch" -msgstr "おとの たかさを yに" +#: js/blocks/SensorsBlocks.js:300 +msgid "click" +msgstr "クリック" -#: js/PitchBlocks.js:729 -msgid "Y to pitch block will convert a staff y position to corresponding pitch notation." +#: js/blocks/SensorsBlocks.js:306 +msgid "The Click block triggers an event if a mouse has been clicked." msgstr "" -#: js/PitchBlocks.js:841 -msgid "accidental selector" +#: js/blocks/SensorsBlocks.js:313 +msgid "The Click block triggers an event if a turtle has been clicked." msgstr "" -#: js/PitchBlocks.js:844 -msgid "The Accidental selector block is used to choose between double-sharp, sharp, natural, flat, and double-flat." -msgstr "変化記号セレクターブロックはダブルシャープ(重嬰)、シャープ(嬰)、ナチュラル(本位)、フラット(変)、ダブルフラット(重変)からえらぶことができます。" +#: js/blocks/SensorsBlocks.js:342 +msgid "cursor over" +msgstr "カーソル(うえ)" -#: js/PitchBlocks.js:858 -msgid "Pitch can be specified in terms of ni dha pa ma ga re sa." -msgstr "おとの たかさを、「sa、re、ga、ma、pa、dha、ni」の7つのインドのソルフェージュでせっていする。" +#: js/blocks/SensorsBlocks.js:387 +msgid "cursor out" +msgstr "カーソル(外)" -#: js/PitchBlocks.js:872 -msgid "Pitch can be specified in terms of C D E F G A B." -msgstr "

おとのたかさブロック


おとのたかさを、 CDEFGABの 7つの アルファベットで せっていする。 たとえば、 ドならばC、 レならばD で あらわされる。" +#: js/blocks/SensorsBlocks.js:433 +msgid "cursor button down" +msgstr "カーソルクリック(した)" -#: js/PitchBlocks.js:883 -msgid "solfege" -msgstr "" +#: js/blocks/SensorsBlocks.js:477 +msgid "cursor button up" +msgstr "カーソルクリック(うえ)" -#: js/PitchBlocks.js:886 -msgid "Pitch can be specified in terms of do re mi fa sol la ti." -msgstr "

おとのたかさブロック


おとのたかさを、 ド、レ、ミ、ファ、ソ、ラ、シの 7つの ソルフェージュで せっていする。 たとえば、 ドならばC、 レならばD で あらわされる。" +#: js/blocks/SensorsBlocks.js:521 +#: js/blocks/PenBlocks.js:48 +#: plugins/rodi.rtp:219 +msgid "blue" +msgstr "あお" -#: js/PitchBlocks.js:920 -msgid "The Invert block rotates any contained notes around a target note." +#: js/blocks/SensorsBlocks.js:577 +#: js/blocks/PenBlocks.js:64 +#: plugins/rodi.rtp:218 +msgid "green" +msgstr "みどり" + +#: js/blocks/SensorsBlocks.js:633 +#: js/blocks/PenBlocks.js:112 +#: plugins/rodi.rtp:217 +msgid "red" +msgstr "あか" + +#: js/blocks/SensorsBlocks.js:638 +msgid "The Get red block returns the red component of the pixel under the mouse." msgstr "" -#: js/PitchBlocks.js:927 -#.TRANS: pitch inversion rotates a pitch around another pitch -msgid "invert" -msgstr "両ほうこうにずれる" +#: js/blocks/SensorsBlocks.js:644 +msgid "The Get red block returns the red component of the pixel under the turtle." +msgstr "" -#: js/PitchBlocks.js:929 -#: js/PitchBlocks.js:935 -#: js/PitchActions.js:727 -#: js/musicutils.js:726 -#: js/musicutils.js:902 -#.TRANS: invert based on even or odd number or musical scale -#.TRANS: even numbers -msgid "even" -msgstr "ぐうすう" +#: js/blocks/SensorsBlocks.js:685 +#: plugins/rodi.rtp:216 +msgid "pixel color" +msgstr "ピクセルの いろ" -#: js/PitchBlocks.js:935 -#: js/PitchActions.js:729 -#: js/musicutils.js:728 -#: js/musicutils.js:903 -#.TRANS: odd numbers -msgid "odd" -msgstr "きすう" +#: js/blocks/SensorsBlocks.js:690 +msgid "The Get pixel block returns the color of the pixel under the mouse." +msgstr "" -#: js/PitchBlocks.js:935 -#: js/PitchActions.js:731 -#: js/musicutils.js:729 -#: js/musicutils.js:904 -msgid "scalar" -msgstr "おんかいてき" +#: js/blocks/SensorsBlocks.js:696 +msgid "The Get pixel block returns the color of the pixel under the turtle." +msgstr "" -#: js/PitchBlocks.js:966 -#.TRANS: pitch inversion rotates a pitch around another pitch (odd number) -msgid "invert (odd)" -msgstr "てんかいを (きすう)" +#: js/blocks/SensorsBlocks.js:758 +msgid "time" +msgstr "じかん" -#: js/PitchBlocks.js:999 -#.TRANS: pitch inversion rotates a pitch around another pitch (even number) -msgid "invert (even)" -msgstr "てんかいを (ぐうすう)" +#: js/blocks/SensorsBlocks.js:804 +msgid "cursor y" +msgstr "yざひょうち(カーソル)" -#: js/PitchBlocks.js:1020 -#.TRANS: register is the octave of the current pitch -msgid "register" -msgstr "登録" +#: js/blocks/SensorsBlocks.js:809 +msgid "The Cursor Y block returns the vertical position of the mouse." +msgstr "

すうちブロック(カーソル)


マウスカーソルの たていち を あらわす yざひょうち。
ずのれいは、 ネズミを つかって がめんじょうに じゆうに せんを えがける プログラム。 ネズミが パソコンの マウスカーソルの いち に いどうしつづけつつ、 マウスを おしているときだけ ペンをおろし、 せんをえがく。" -#: js/PitchBlocks.js:1024 -msgid "The Register block provides an easy way to modify the register (octave) of the notes that follow it." -msgstr "" +#: js/blocks/SensorsBlocks.js:845 +msgid "cursor x" +msgstr "xざひょうち(カーソル)" -#: js/PitchBlocks.js:1074 -msgid "The Semi-tone transposition block will shift the pitches contained inside Note blocks up (or down) by half steps." -msgstr "半音で移調ブロックは音符の中に入っている音高を上(または下)に、特定されている数字の値によって、半音ずつ移動します。" +#: js/blocks/SensorsBlocks.js:850 +msgid "The Cursor X block returns the horizontal position of the mouse." +msgstr "

すうちブロック(カーソル)


マウスカーソルの よこいち を あらわす xざひょうち。
ずのれいは、 ネズミを つかって がめんじょうに じゆうに せんを えがける プログラム。 ネズミが パソコンの マウスカーソルの いち に いどうしつづけつつ、 マウスを おしているときだけ ペンをおろし、 せんをえがく。" -#: js/PitchBlocks.js:1076 -msgid "In the example shown above, sol is shifted up to sol#." -msgstr "例の画像にソルソル#に上に移動されています。" +#: js/blocks/SensorsBlocks.js:886 +msgid "mouse button" +msgstr "マウスボタン" -#: js/PitchBlocks.js:1082 -#.TRANS: adjust the amount of shift (up or down) of a pitch -msgid "semi-tone transpose" -msgstr "はんおんで いちょう" +#: js/blocks/SensorsBlocks.js:888 +msgid "The Mouse-button block returns True if the mouse button is pressed." +msgstr "

しんぎブロック(マウスボタン)


マウスの ボタンが おされているか どうか はんてい する。 マウスボタンが おされていれば 「しん(しん)」、 おされていなければ「にせ(ぎ)」と いう あたいになる。
ずのれいは、 ネズミを つかって がめんじょうに じゆうに せんを えがける プログラム。 ネズミが パソコンの マウスカーソルの いち に いどうしつづけつつ、 マウスを おしているときだけ ペンをおろし、 せんをえがく。

★しんぎブロックとは
「もし~ならば」などの じょうけんブロックを うごかすために ひつような ブロック。
「もし~ならば」は、 せいかくに ひょうげんすると、 「もし~という じょうけんが ただしい ならば、 つぎの ブロックを じっこうする」という いみ である。 しんぎブロックは ふとうしき などによる ひかくが 「ただしい(しん)」か、 「ただしくない(にせ)」かの けっかを あらわし、 「もし~ならば」に つづく ブロックを じっこうするか どうか きめる。" -#: js/PitchBlocks.js:1115 -msgid "The Transpose by Ratio block will shift the pitches contained inside Note blocks up (or down) by a ratio" -msgstr "「ひで いどう」ブロックは おんぷの なかの ピッチを ひで いどうさせる。" +#: js/blocks/SensorsBlocks.js:934 +msgid "to ASCII" +msgstr "ASCIIに" -#: js/PitchBlocks.js:1121 -#.TRANS: adjust the amount of shift (up or down) of a pitch -msgid "transpose by ratio" -msgstr "ひで いどう" +#: js/blocks/SensorsBlocks.js:938 +msgid "The To ASCII block converts numbers to letters." +msgstr "" -#: js/PitchBlocks.js:1204 -#.TRANS: down sixth means the note is five scale degrees below current note -msgid "down sixth" -msgstr "おんかいで6ど した" +#: js/blocks/SensorsBlocks.js:1005 +msgid "The Keyboard block returns computer keyboard input." +msgstr "" -#: js/PitchBlocks.js:1223 -#.TRANS: down third means the note is two scale degrees below current note -msgid "down third" -msgstr "おんかいで3ど した" +#: js/blocks/RhythmBlockPaletteBlocks.js:50 +#: js/blocks/RhythmBlockPaletteBlocks.js:233 +#.TRANS: rhythm block +#.TRANS: translate "rhythm1" as rhythm +msgid "rhythm1" +msgstr "れんぷ(かけ算)" -#: js/PitchBlocks.js:1242 -#.TRANS: seventh means the note is the six scale degrees above current note -msgid "seventh" -msgstr "7どの おと" +#: js/blocks/RhythmBlockPaletteBlocks.js:70 +#: js/blocks/RhythmBlockPaletteBlocks.js:252 +#: js/blocks/RhythmBlockPaletteBlocks.js:485 +#: js/blocks/RhythmBlockPaletteBlocks.js:554 +#: js/blocks/RhythmBlockPaletteBlocks.js:875 +msgid "number of notes" +msgstr "おんぷの かず" -#: js/PitchBlocks.js:1261 -#.TRANS: sixth means the note is the five scale degrees above current note -msgid "sixth" -msgstr "6どの おと" +#: js/blocks/RhythmBlockPaletteBlocks.js:126 +msgid "polyphonic rhythm" +msgstr "ポリリズム" -#: js/PitchBlocks.js:1280 -#.TRANS: fifth means the note is the four scale degrees above current note -msgid "fifth" -msgstr "5どの おと" +#: js/blocks/RhythmBlockPaletteBlocks.js:219 +msgid "The Rhythm block is used to generate rhythm patterns." +msgstr "

れんぷブロック(かけざん)


まとまった いくつかの おんぷ。 いっていの ながさの おとを 3つや 5つなど くりかえして つかう。3れんぷ や 5れんぷ など、 2のばいすう ではない おんぷの かずで グループを つくりやすくなる。" -#: js/PitchBlocks.js:1300 -#.TRANS: fourth means the note is three scale degrees above current note -msgid "fourth" -msgstr "4どの おと" +#: js/blocks/RhythmBlockPaletteBlocks.js:280 +msgid "1/64 note" +msgstr "64ぶん おんぷ" -#: js/PitchBlocks.js:1319 -#.TRANS: third means the note is two scale degrees above current note -msgid "third" -msgstr "3どの おと" +#: js/blocks/RhythmBlockPaletteBlocks.js:304 +msgid "1/32 note" +msgstr "32ぶん おんぷ" -#: js/PitchBlocks.js:1338 -#.TRANS: second means the note is one scale degree above current note -msgid "second" -msgstr "2どの おと" +#: js/blocks/RhythmBlockPaletteBlocks.js:332 +msgid "1/16 note" +msgstr "16ぶん おんぷ" -#: js/PitchBlocks.js:1379 -msgid "The Scalar transposition block will shift the pitches contained inside Note blocks up (or down) the scale." -msgstr "

ちょうを かえるブロック


「おんぷブロック」 ないの おとのたかさを、 すべて (おんかいないで、 せっていした すうちぶんだけ) あげる、 または さげる。" +#: js/blocks/RhythmBlockPaletteBlocks.js:360 +msgid "eighth note" +msgstr "8ぶん おんぷ" -#: js/PitchBlocks.js:1381 -msgid "In the example shown above, sol is shifted up to la." -msgstr "

ずのれいでは、 ソがラに、 ラがシに、 シがドに… と おきかえられている。

★おんかいとは
じゅんばんに ならんだ おとの まとまり。たとえば、「ド」 を はじまりのおと に したときの 「ドレミファソラシド」、 「ソ」 を はじまりのおと に したときの 「ソラシドレミ(♯ファ)ソ」 の こと。
★ちょうとは
ちゅうしんてきな やくわりを はたすおとと、 おんかいの しゅるいによって きまる、 きょくの かんじ。 ちゅうしんてきな やくわりを はたすおと だけを さすこともある。" +#: js/blocks/RhythmBlockPaletteBlocks.js:388 +msgid "quarter note" +msgstr "4ぶ おんぷ" -#: js/PitchBlocks.js:1388 -#.TRANS: adjust the amount of shift (up or down) of a pitch by musical scale (scalar) steps -msgid "scalar transpose" -msgstr "ちょうを かえる" +#: js/blocks/RhythmBlockPaletteBlocks.js:416 +msgid "half note" +msgstr "2ぶ おんぷ" -#: js/PitchBlocks.js:1423 -msgid "The Accidental block is used to create sharps and flats" -msgstr "変化記号ブロックは シャープ(嬰)フラット(変)を決めるきのうです。" +#: js/blocks/RhythmBlockPaletteBlocks.js:444 +msgid "whole note" +msgstr "ぜんおんぷ" -#: js/PitchBlocks.js:1430 -#.TRANS: An accidental is a modification to a pitch, e.g., sharp or flat. -msgid "accidental override" -msgstr "へんかきごう むし" +#: js/blocks/RhythmBlockPaletteBlocks.js:482 +#: js/blocks/RhythmBlockPaletteBlocks.js:551 +#: js/blocks/RhythmBlockPaletteBlocks.js:602 +#.TRANS: A tuplet is a note value divided into irregular time values. +msgid "tuplet" +msgstr "~れんぷ(タプル)" -#: js/PitchBlocks.js:1543 -msgid "The Hertz block (in combination with a Number block) will play a sound at the specified frequency." -msgstr "

ヘルツ ブロック


おとのたかさを ヘルツ (しゅうはすうの たんい) で せっていする。 「すうちぶろっく」 を くみあわせて つかう。

★ヘルツとは
おとの たかさを あらわす しゅうはすう。
★しゅうはすうとは
おとが 1びょうかん に なんかい しんどうするかを あらわす すうち。 しゅうはすうが たかい (すうちが おおきい) ほど、 おとが たかくなる。" +#: js/blocks/RhythmBlockPaletteBlocks.js:768 +msgid "septuplet" +msgstr "7れんぷ" -#: js/PitchBlocks.js:1633 -msgid "The Pitch Number block will play a pitch associated by its number, e.g. 0 for C and 7 for G." -msgstr "" +#: js/blocks/RhythmBlockPaletteBlocks.js:796 +msgid "quintuplet" +msgstr "5れんぷ" -#: js/PitchBlocks.js:1665 -#: js/PitchBlocks.js:1707 -#.TRANS: a numeric mapping of the notes in an octave based on the musical mode -#.TRANS: a numeric mapping of the notes in an octave based on the musical mode -msgid "nth modal pitch" -msgstr "ピッチど" +#: js/blocks/RhythmBlockPaletteBlocks.js:824 +msgid "triplet" +msgstr "3れんぷ" -#: js/PitchBlocks.js:1668 -msgid "n^th Modal Pitch takes the pattern of pitches in semitones for a mode and makes each point a degree of the mode," -msgstr "" +#: js/blocks/RhythmBlockPaletteBlocks.js:851 +msgid "simple tuplet" +msgstr "れんぷ(わり算)" -#: js/PitchBlocks.js:1670 -msgid "starting from 1 and regardless of tonal framework (i.e. not always 8 notes in the octave)" -msgstr "" +#: js/blocks/RhythmBlockPaletteBlocks.js:861 +msgid "Tuplets are a collection of notes that get scaled to a specific duration." +msgstr "

れんぷブロック(わりざん)


まとまった いくつかの おんぷ。いっていの ながさの おとを 3つや 5つに とうぶんして つかう。3れんぷ や 5れんぷ など、 2のばいすう ではない おんぷの かずで グループを つくりやすくなる。" -#: js/PitchBlocks.js:1711 -msgid "N^th Modal Pitch takes a number as an input as the n^th degree for the given mode. 0 is the first position, 1 is the second, -1 is the note before the first etc." +#: js/blocks/DrumBlocks.js:59 +msgid "The Noise name block is used to select a noise synthesizer." msgstr "" -#: js/PitchBlocks.js:1713 -msgid "The pitches change according to the mode specified without any need for respellings." -msgstr "" +#: js/blocks/DrumBlocks.js:102 +msgid "The Drum name block is used to select a drum." +msgstr "

ドラムブロック


ドラムの しゅるいを かえるときに つかう。 クリックで、 いろいろな ドラムの おとを えらぶことが できる。" -#: js/PitchBlocks.js:1752 -msgid "Scale Degree is a common convention in music. Scale Degree offers seven possible positions in the scale (1-7) and can be modified via accidentals." +#: js/blocks/DrumBlocks.js:146 +msgid "The Effects name block is used to select a sound effect." +msgstr "

こうかおんブロック


こうかおんの しゅるいを かえるときに つかう。 クリックで、 いろいろな おもしろい おとを えらぶことが できる。" + +#: js/blocks/DrumBlocks.js:163 +msgid "noise" +msgstr "ノイズ" + +#: js/blocks/DrumBlocks.js:177 +msgid "The Play noise block will generate white, pink, or brown noise." msgstr "" -#: js/PitchBlocks.js:1754 -msgid "Scale Degree 1 is always the first pitch in a given scale, regardless of octave." +#: js/blocks/DrumBlocks.js:317 +msgid "Replace every instance of a pitch with a drum sound." msgstr "" -#: js/PitchBlocks.js:1776 -#.TRANS: step some number of notes in current musical scale -msgid "scalar step" -msgstr "おんかいないを のぼる/おりる" +#: js/blocks/DrumBlocks.js:328 +#.TRANS: map a pitch to a drum sound +msgid "map pitch to drum" +msgstr "ドラムを おんぷに かえる" + +#: js/blocks/DrumBlocks.js:395 +msgid "In the example above, a kick drum sound will be played instead of sol." +msgstr "例の画像にソルの代わりにキックドラムが鳴らします。" -#: js/PitchBlocks.js:1781 -msgid "The Scalar Step block (in combination with a Number block) will play the next pitch in a scale," -msgstr "

おんかいないをのぼる/おりるブロック


おんかいない を じゅんばんに (ある いっていの かんかくで) のぼりながら、 または おりながら おとを えんそう する。 すうちを せっていする ことで、 つぎの おとは まえの おとと いくつちがうか が きまる。" +#: js/blocks/DrumBlocks.js:407 +#.TRANS: set the current drum sound for playback +msgid "set drum" +msgstr "ドラムを せってい" -#: js/PitchBlocks.js:1783 -msgid "eg if the last note played was sol, Scalar Step 1 will play la." -msgstr "

たとえば、 すうちを 1に せっていした ばあい、 ソの つぎには ラ(ソの 1おんうえ)、 ファの つぎには ソ(ファの 1おんうえ) が えんそう される。

★おんかいとは
じゅんばんに ならんだ おとの まとまり。たとえば、「ド」 を はじまりのおと に したときの 「ドレミファソラシド」、 「ソ」 を はじまりのおと に したときの 「ソラシドレミ(♯ファ)ソ」 の こと。" +#: js/blocks/DrumBlocks.js:451 +msgid "sound effect" +msgstr "こうかおん" -#: js/PitchBlocks.js:1818 -msgid "The Pitch block specifies the pitch name and octave of a note that together determine the frequency of the note." -msgstr "

おとのたかさ ブロック


おとのたかさを せってい する。 なまえと オクターヴの たかさを きめて つかう。 おとの しゅうはすうも どうじに きまる。

★しゅうはすうとは
おとが 1びょうかんに なんかい しんどうするかを あらわす すうち。 しゅうはすうが たかい (すうちが おおきい) ほど、 おとが たかくなる。
★オクターヴの たかさとは
おなじ なまえでも たかさがちがう おとを あらわす すうち。" +#: js/blocks/DrumBlocks.js:489 +msgid "You can use multiple Drum blocks within a Note block." +msgstr "

ドラム ブロック


「おんぷブロック」 の なかに いれて つかう。 いろいろな ドラムの ねいろを えらぶことが できる。 1つの 「おんぷブロック」 の なかで、 ふくすうの ねいろの ドラムを くみあわせて つかうことが できる。" -#: js/GraphicsBlocks.js:46 -#: js/DictActions.js:77 -#: js/DictActions.js:155 -#: js/DictActions.js:189 +#: js/blocks/GraphicsBlocks.js:46 +#: js/turtleactions/DictActions.js:77 +#: js/turtleactions/DictActions.js:144 +#: js/turtleactions/DictActions.js:173 msgid "heading" msgstr "むき(ネズミ)" -#: js/GraphicsBlocks.js:56 +#: js/blocks/GraphicsBlocks.js:56 msgid "The Heading block returns the orientation of the mouse." msgstr "

すうち ブロック


ネズミの むいている かくどを あらわす すうちブロック。 むきの あたいは、 0いじょうで、 360より ちいさい あたい になり、 プラスだと みぎまわり、 マイナスだと ひだりまわりに へんかする。" -#: js/GraphicsBlocks.js:62 +#: js/blocks/GraphicsBlocks.js:62 msgid "The Heading block returns the orientation of the turtle." msgstr "" -#: js/GraphicsBlocks.js:133 +#: js/blocks/GraphicsBlocks.js:133 msgid "The Y block returns the vertical position of the mouse." msgstr "

すうち ブロック


ネズミの yざひょう(たて ほうこうの いち)を あらわす すうちブロック。

★ざひょう とは
もの の いちを あらわす ための すうちのこと。 ミュージック・ブロックスでは、 2つ1くみの すうち(ざひょう)を つかう。 がめんじょうの ネズミの いちは、 ほうがん ようし の ますめ の ように、 よこ ほうこうの めもり(xざひょう)と たて ほうこうの めもり(yざひょう)を つかって あらわす。" -#: js/GraphicsBlocks.js:140 +#: js/blocks/GraphicsBlocks.js:140 msgid "The Y block returns the vertical position of the turtle." msgstr "" -#: js/GraphicsBlocks.js:149 +#: js/blocks/GraphicsBlocks.js:149 msgid "y3" msgstr "yざひょうち(ネズミ)" -#: js/GraphicsBlocks.js:219 +#: js/blocks/GraphicsBlocks.js:219 msgid "The X block returns the horizontal position of the mouse." msgstr "

すうち ブロック


ネズミの xざひょう(よこ ほうこうの いち)を あらわす すうちブロック。

★ざひょう とは
もの の いちを あらわす ための すうちのこと。 ミュージック・ブロックスでは、 2つ1くみの すうち(ざひょう)を つかう。 がめんじょうの ネズミの いちは、 ほうがん ようし の ますめ の ように、 よこ ほうこうの めもり(xざひょう)と たて ほうこうの めもり(yざひょう)を つかって あらわす。" -#: js/GraphicsBlocks.js:226 +#: js/blocks/GraphicsBlocks.js:226 msgid "The X block returns the horizontal position of the turtle." msgstr "" -#: js/GraphicsBlocks.js:235 +#: js/blocks/GraphicsBlocks.js:235 msgid "x3" msgstr "xざひょうち(ネズミ)" -#: js/GraphicsBlocks.js:295 +#: js/blocks/GraphicsBlocks.js:295 msgid "scroll xy" msgstr "カンバスを うごかす" -#: js/GraphicsBlocks.js:303 +#: js/blocks/GraphicsBlocks.js:303 msgid "The Scroll XY block moves the canvas." msgstr "

いどう ブロック(カンバス)


カンバスを じょうげ さゆうに いどう させる。 カンバスだけが いどう するので けっかてきに、 がめんじょうの すべての ネズミが どうじに いどう するように みえる。 カンバスを みぎ(プラス)に いどう すると ネズミは ひだりへ、 ひだり(マイナス)に いどう すると ネズミは みぎに うごいて みえる。 おなじく、 カンバスを うえ(プラス)に いどう すると ネズミは したへ、 した(マイナス)に いどうすると ネズミは うえに うごいて みえる。" -#: js/GraphicsBlocks.js:313 +#: js/blocks/GraphicsBlocks.js:313 msgid "x2" msgstr "よこいどう" -#: js/GraphicsBlocks.js:313 +#: js/blocks/GraphicsBlocks.js:313 msgid "y2" msgstr "たていどう" -#: js/GraphicsBlocks.js:373 -#: js/temperament.js:213 -#: js/temperament.js:241 +#: js/blocks/GraphicsBlocks.js:373 +#: js/widgets/temperament.js:319 +#: js/widgets/temperament.js:347 msgid "clear" msgstr "1つもどす" -#: js/GraphicsBlocks.js:426 +#: js/blocks/GraphicsBlocks.js:426 msgid "The Control-point 2 block sets the second control point for the Bezier curve." msgstr "" -#: js/GraphicsBlocks.js:433 +#: js/blocks/GraphicsBlocks.js:433 msgid "control point 2" msgstr "コントロール点2" -#: js/GraphicsBlocks.js:436 -#: js/GraphicsBlocks.js:487 -#: js/GraphicsBlocks.js:534 -#: js/GraphicsBlocks.js:750 +#: js/blocks/GraphicsBlocks.js:436 +#: js/blocks/GraphicsBlocks.js:487 +#: js/blocks/GraphicsBlocks.js:534 +#: js/blocks/GraphicsBlocks.js:750 msgid "x1" msgstr "xざひょう(ネズミ)" -#: js/GraphicsBlocks.js:436 -#: js/GraphicsBlocks.js:487 -#: js/GraphicsBlocks.js:534 -#: js/GraphicsBlocks.js:750 +#: js/blocks/GraphicsBlocks.js:436 +#: js/blocks/GraphicsBlocks.js:487 +#: js/blocks/GraphicsBlocks.js:534 +#: js/blocks/GraphicsBlocks.js:750 msgid "y1" msgstr "yざひょう(ネズミ)" -#: js/GraphicsBlocks.js:477 +#: js/blocks/GraphicsBlocks.js:477 msgid "The Control-point 1 block sets the first control point for the Bezier curve." msgstr "" -#: js/GraphicsBlocks.js:484 +#: js/blocks/GraphicsBlocks.js:484 msgid "control point 1" msgstr "コントロール点1" -#: js/GraphicsBlocks.js:527 +#: js/blocks/GraphicsBlocks.js:527 msgid "The Bezier block draws a Bezier curve." msgstr "" -#: js/GraphicsBlocks.js:531 +#: js/blocks/GraphicsBlocks.js:531 msgid "bezier" msgstr "ベジェ曲線" -#: js/GraphicsBlocks.js:592 +#: js/blocks/GraphicsBlocks.js:592 msgid "The Arc block moves the turtle in an arc." msgstr "" -#: js/GraphicsBlocks.js:600 +#: js/blocks/GraphicsBlocks.js:600 msgid "arc" msgstr "えんを えがいて いどう" -#: js/GraphicsBlocks.js:603 +#: js/blocks/GraphicsBlocks.js:603 msgid "angle" msgstr "かくど" -#: js/GraphicsBlocks.js:603 +#: js/blocks/GraphicsBlocks.js:603 msgid "radius" msgstr "はんけい" -#: js/GraphicsBlocks.js:620 -#: js/GraphicsBlocks.js:767 -#: js/GraphicsBlocks.js:1010 -#: js/GraphicsBlocks.js:1093 +#: js/blocks/GraphicsBlocks.js:620 +#: js/blocks/GraphicsBlocks.js:767 +#: js/blocks/GraphicsBlocks.js:1010 +#: js/blocks/GraphicsBlocks.js:1093 msgid "Value must be within -5000 to 5000 when Wrap Mode is off." msgstr "" -#: js/GraphicsBlocks.js:622 -#: js/GraphicsBlocks.js:769 -#: js/GraphicsBlocks.js:1012 -#: js/GraphicsBlocks.js:1095 +#: js/blocks/GraphicsBlocks.js:622 +#: js/blocks/GraphicsBlocks.js:769 +#: js/blocks/GraphicsBlocks.js:1012 +#: js/blocks/GraphicsBlocks.js:1095 msgid "Value must be within -20000 to 20000 when Wrap Mode is on." msgstr "" -#: js/GraphicsBlocks.js:660 +#: js/blocks/GraphicsBlocks.js:660 msgid "set heading" msgstr "むきを かえる" -#: js/GraphicsBlocks.js:673 +#: js/blocks/GraphicsBlocks.js:673 msgid "The Set heading block sets the heading of the turtle." msgstr "" -#: js/GraphicsBlocks.js:733 +#: js/blocks/GraphicsBlocks.js:733 msgid "The Set XY block moves the mouse to a specific position on the screen." msgstr "

いどう ブロック


ネズミの いちを、 してい した ざひょう に いどう させる。

★ざひょうとは
もの の いち を あらわす ための すうちのこと。 ミュージック・ブロックスでは、 2つ 1くみの すうち(ざひょう)を つかう。 がめんじょうの ネズミの いちは、 ほうがん ようし の ますめのように、 よこほうこうの めもり(xざひょう)と たてほうこうの めもり(yざひょう)を つかって あらわす。" -#: js/GraphicsBlocks.js:739 +#: js/blocks/GraphicsBlocks.js:739 msgid "The Set XY block moves the turtle to a specific position on the screen." msgstr "" -#: js/GraphicsBlocks.js:747 +#: js/blocks/GraphicsBlocks.js:747 msgid "set xy" msgstr "していざひょうに いどう" -#: js/GraphicsBlocks.js:819 +#: js/blocks/GraphicsBlocks.js:819 msgid "The Right block turns the mouse to the right." msgstr "

いどう ブロック


ネズミの むきを、 してい した すうちの かくどで みぎ まわりに かいてん させる。" -#: js/GraphicsBlocks.js:826 +#: js/blocks/GraphicsBlocks.js:826 msgid "The Right block turns the turtle to the right." msgstr "" -#: js/GraphicsBlocks.js:835 +#: js/blocks/GraphicsBlocks.js:835 msgid "right1" msgstr "みぎを むく" -#: js/GraphicsBlocks.js:835 +#: js/blocks/GraphicsBlocks.js:835 #: plugins/rodi.rtp:77 #: plugins/rodi.rtp:340 #: plugins/rodi.rtp:375 msgid "right" msgstr "ざひょうち(みぎ)" -#: js/GraphicsBlocks.js:899 +#: js/blocks/GraphicsBlocks.js:899 msgid "The Left block turns the mouse to the left." msgstr "

いどう ブロック


ネズミの むきを、 してい した すうちの かくどで ひだり まわりに かいてん させる。" -#: js/GraphicsBlocks.js:906 +#: js/blocks/GraphicsBlocks.js:906 msgid "The Left block turns the turtle to the left." msgstr "" -#: js/GraphicsBlocks.js:915 +#: js/blocks/GraphicsBlocks.js:915 msgid "left1" msgstr "ひだりを むく" -#: js/GraphicsBlocks.js:915 +#: js/blocks/GraphicsBlocks.js:915 #: plugins/rodi.rtp:79 #: plugins/rodi.rtp:339 #: plugins/rodi.rtp:362 msgid "left" msgstr "ざひょうち(ひだり)" -#: js/GraphicsBlocks.js:967 -#: js/temperament.js:734 -#: js/temperament.js:933 +#: js/blocks/GraphicsBlocks.js:967 +#: js/widgets/temperament.js:875 +#: js/widgets/temperament.js:1078 #: plugins/rodi.rtp:69 #: plugins/rodi.rtp:387 msgid "back" msgstr "うしろへ すすむ" -#: js/GraphicsBlocks.js:976 +#: js/blocks/GraphicsBlocks.js:976 msgid "The Back block moves the mouse backward." msgstr "

いどう ブロック


してい した すうちぶん、 ネズミを うしろに もどす。 からだの むきは かえない。" -#: js/GraphicsBlocks.js:983 +#: js/blocks/GraphicsBlocks.js:983 msgid "The Back block moves the turtle backward." msgstr "" -#: js/GraphicsBlocks.js:1050 +#: js/blocks/GraphicsBlocks.js:1050 #: plugins/rodi.rtp:71 #: plugins/rodi.rtp:400 msgid "forward" msgstr "まえへ すすむ" -#: js/GraphicsBlocks.js:1059 +#: js/blocks/GraphicsBlocks.js:1059 msgid "The Forward block moves the mouse forward." msgstr "

いどう ブロック


してい した すうちぶん、 ネズミを まえに すすめる。" -#: js/GraphicsBlocks.js:1066 +#: js/blocks/GraphicsBlocks.js:1066 msgid "The Forward block moves the turtle forward." msgstr "" -#: js/GraphicsBlocks.js:1154 -#: js/GraphicsBlocks.js:1172 +#: js/blocks/GraphicsBlocks.js:1154 +#: js/blocks/GraphicsBlocks.js:1172 msgid "wrap" msgstr "まきつける" -#: js/OrnamentBlocks.js:32 -msgid "staccato factor" -msgstr "スタッカートの ながさ ファクター" - -#: js/OrnamentBlocks.js:108 -msgid "slur factor" -msgstr "スラーの ながさ ファクター" - -#: js/OrnamentBlocks.js:217 -#: js/OrnamentBlocks.js:309 -#.TRANS: the neighbor refers to a neighboring note, e.g., D is a neighbor of C -msgid "neighbor" -msgstr "おとを くわえる" - -#: js/OrnamentBlocks.js:293 -msgid "The Neighbor block rapidly switches between neighboring pitches." -msgstr "

おとを くわえる ブロック


2つの おなじたかさの おとの あいだに、 おとを 1つ いれることが できる。
ずのれいでは、 ソとソの あいだに ラが はいり、 「ソラソ」 と すばやく えんそうされる。

★おんかいとは
じゅんばんに ならんだ おとの まとまり。たとえば、「ド」 を はじまりのおと に したときの 「ドレミファソラシド」、 「ソ」 を はじまりのおと に したときの 「ソラシドレミ(♯ファ)ソ」 の こと。" - -#: js/OrnamentBlocks.js:364 -msgid "glide" -msgstr "グリッサンド" - -#: js/OrnamentBlocks.js:479 -#: js/OrnamentBlocks.js:643 -msgid "slur" -msgstr "スラー" - -#: js/OrnamentBlocks.js:558 -#: js/OrnamentBlocks.js:710 -#.TRANS: play each note sharply detached from the others -msgid "staccato" -msgstr "スタッカート" - -#: js/PenBlocks.js:24 +#: js/blocks/PenBlocks.js:30 msgid "purple" msgstr "むらさき" -#: js/PenBlocks.js:37 -#: js/SensorsBlocks.js:521 -#: plugins/rodi.rtp:219 -msgid "blue" -msgstr "あお" - -#: js/PenBlocks.js:50 -#: js/SensorsBlocks.js:577 -#: plugins/rodi.rtp:218 -msgid "green" -msgstr "みどり" - -#: js/PenBlocks.js:63 +#: js/blocks/PenBlocks.js:80 msgid "yellow" msgstr "きいろ" -#: js/PenBlocks.js:76 +#: js/blocks/PenBlocks.js:96 #: plugins/nutrition.rtp:164 msgid "orange" msgstr "オレンジ" -#: js/PenBlocks.js:89 -#: js/SensorsBlocks.js:633 -#: plugins/rodi.rtp:217 -msgid "red" -msgstr "あか" - -#: js/PenBlocks.js:102 +#: js/blocks/PenBlocks.js:128 msgid "white" msgstr "しろ" -#: js/PenBlocks.js:115 +#: js/blocks/PenBlocks.js:144 msgid "black" msgstr "くろ" -#: js/PenBlocks.js:128 +#: js/blocks/PenBlocks.js:163 msgid "begin fill" msgstr "きにゅうを はじめる" -#: js/PenBlocks.js:143 +#: js/blocks/PenBlocks.js:190 msgid "end fill" msgstr "きにゅうを おわらせる" -#: js/PenBlocks.js:159 -#: js/PenBlocks.js:386 +#: js/blocks/PenBlocks.js:212 +#: js/blocks/PenBlocks.js:560 #.TRANS: set the background color msgid "background" msgstr "はいけい" -#: js/PenBlocks.js:206 -#: js/DictActions.js:71 -#: js/DictActions.js:149 -#: js/DictActions.js:186 +#: js/blocks/PenBlocks.js:274 +#: js/turtleactions/DictActions.js:71 +#: js/turtleactions/DictActions.js:138 +#: js/turtleactions/DictActions.js:170 msgid "grey" msgstr "はいいろ" -#: js/PenBlocks.js:210 +#: js/blocks/PenBlocks.js:282 msgid "The Grey block returns the current pen grey value." msgstr "" -#: js/PenBlocks.js:243 -#: js/DictActions.js:69 -#: js/DictActions.js:147 -#: js/DictActions.js:185 +#: js/blocks/PenBlocks.js:340 +#: js/turtleactions/DictActions.js:69 +#: js/turtleactions/DictActions.js:136 +#: js/turtleactions/DictActions.js:169 msgid "shade" msgstr "シェード" -#: js/PenBlocks.js:247 +#: js/blocks/PenBlocks.js:347 msgid "The Shade block returns the current pen shade value." msgstr "" -#: js/PenBlocks.js:280 -#: js/DictActions.js:67 -#: js/DictActions.js:145 -#: js/DictActions.js:184 +#: js/blocks/PenBlocks.js:405 +#: js/turtleactions/DictActions.js:67 +#: js/turtleactions/DictActions.js:134 +#: js/turtleactions/DictActions.js:168 msgid "color" msgstr "いろ" -#: js/PenBlocks.js:285 +#: js/blocks/PenBlocks.js:415 msgid "The Color block returns the current pen color." msgstr "

ペンブロック

げんざいの ペンの いろを、 すうちで ひょうじする。" -#: js/PenBlocks.js:318 -#: js/DictActions.js:73 -#: js/DictActions.js:151 -#: js/DictActions.js:187 +#: js/blocks/PenBlocks.js:470 +#: js/turtleactions/DictActions.js:73 +#: js/turtleactions/DictActions.js:140 +#: js/turtleactions/DictActions.js:171 msgid "pen size" msgstr "ペンの おおきさ" -#: js/PenBlocks.js:322 +#: js/blocks/PenBlocks.js:474 msgid "The Pen size block returns the current pen size value." msgstr "" -#: js/PenBlocks.js:355 +#: js/blocks/PenBlocks.js:513 msgid "set font" msgstr "フォントの せってい" -#: js/PenBlocks.js:358 +#: js/blocks/PenBlocks.js:518 msgid "The Set font block sets the font used by the Show block." msgstr "" -#: js/PenBlocks.js:391 +#: js/blocks/PenBlocks.js:567 msgid "The Background block sets the window background color." msgstr "はいけいブロック は、 カンバスの いろを せっていする。" -#: js/PenBlocks.js:408 +#: js/blocks/PenBlocks.js:598 msgid "The Hollow line block creates a line with a hollow center." msgstr "" -#: js/PenBlocks.js:415 +#: js/blocks/PenBlocks.js:606 #.TRANS: draw a line logo has a hollow space down its center msgid "hollow line" msgstr "(ちゅうくうの)せん" -#: js/PenBlocks.js:462 +#: js/blocks/PenBlocks.js:675 msgid "The Fill block fills in a shape with a color." msgstr "

ペンブロック


ネズミが えがいた ずけいの うちがわを ぬりつぶす。" -#: js/PenBlocks.js:470 +#: js/blocks/PenBlocks.js:684 #.TRANS: fill in as a solid color msgid "fill" msgstr "ぬりつぶす" -#: js/PenBlocks.js:527 +#: js/blocks/PenBlocks.js:761 #.TRANS: raise up the pen so logo it does not draw when it is moved msgid "pen up" msgstr "ペンを あげる" -#: js/PenBlocks.js:532 +#: js/blocks/PenBlocks.js:768 msgid "The Pen-up block raises the pen so that it does not draw." msgstr "

ペンブロック


ネズミの うごきに あわせて せんを えがくことを やめる。" -#: js/PenBlocks.js:552 +#: js/blocks/PenBlocks.js:802 #.TRANS: put down the pen so logo it draws when it is moved msgid "pen down" msgstr "ペンを おろす" -#: js/PenBlocks.js:557 +#: js/blocks/PenBlocks.js:810 msgid "The Pen-down block lowers the pen so that it draws." msgstr "

ペンブロック


ネズミの うごきに あわせて せんを えがく。" -#: js/PenBlocks.js:577 +#: js/blocks/PenBlocks.js:844 #.TRANS: set the width of the line drawn by the pen msgid "set pen size" msgstr "ふとさを せってい" -#: js/PenBlocks.js:583 +#: js/blocks/PenBlocks.js:854 msgid "The Set-pen-size block changes the size of the pen." msgstr "

ペンブロック


ネズミが えがく せんの ふとさを かえる。 ふとさには、 0より おおきい あたいを つかう。" -#: js/PenBlocks.js:623 +#: js/blocks/PenBlocks.js:913 #.TRANS: set degree of translucence of the pen color msgid "set translucency" msgstr "透明度をせってい" -#: js/PenBlocks.js:627 +#: js/blocks/PenBlocks.js:921 msgid "The Set translucency block changes the opacity of the pen." msgstr "

ペンブロック


ネズミが えがく せんが どのくらい すきとおるかを せっていする。 すうちが おおきい ほど、 せんが すきとおる。" -#: js/PenBlocks.js:668 +#: js/blocks/PenBlocks.js:981 msgid "set hue" msgstr "色相をせってい" -#: js/PenBlocks.js:672 +#: js/blocks/PenBlocks.js:989 msgid "The Set hue block changes the color of the pen." msgstr "" -#: js/PenBlocks.js:711 +#: js/blocks/PenBlocks.js:1047 msgid "set shade" msgstr "いろのこさを せってい" -#: js/PenBlocks.js:717 +#: js/blocks/PenBlocks.js:1057 msgid "The Set-shade block changes the pen color from dark to light." msgstr "

ペンブロック


ネズミが えがく せんの いろの こさを せっていする。" -#: js/PenBlocks.js:757 +#: js/blocks/PenBlocks.js:1111 #.TRANS: set the level of vividness of the pen color msgid "set grey" msgstr "はいいろを せってい" -#: js/PenBlocks.js:761 +#: js/blocks/PenBlocks.js:1119 msgid "The Set grey block changes the vividness of the pen color." msgstr "" -#: js/PenBlocks.js:800 +#: js/blocks/PenBlocks.js:1172 msgid "set color" msgstr "いろを せってい" -#: js/PenBlocks.js:806 +#: js/blocks/PenBlocks.js:1182 msgid "The Set-color block changes the pen color." msgstr "

ペンブロック


ネズミが えがく せんのいろを かえる。 いろは がめんじょうで えらぶ ほか、 それぞれ すうちで きめることも できる。 いろは、 0いじょうで、 100より ちいさい あたいになる。" -#: js/VolumeBlocks.js:35 -msgid "synth volume" -msgstr "シンセのおんりょう" - -#: js/VolumeBlocks.js:39 -msgid "The Synth volume block returns the current volume of the current synthesizer." -msgstr "" - -#: js/VolumeBlocks.js:47 -#: js/musicutils.js:730 -#: js/synthutils.js:56 -#.TRANS: musical instrument -msgid "piano" -msgstr "ピアノ" - -#: js/VolumeBlocks.js:105 -msgid "master volume" -msgstr "マスター おんりょう" - -#: js/VolumeBlocks.js:109 -msgid "The Master volume block returns the master volume." -msgstr "" - -#: js/VolumeBlocks.js:355 -#: js/VolumeBlocks.js:524 -msgid "set synth volume" -msgstr "がっきの おんりょうを せってい" - -#: js/VolumeBlocks.js:362 -#: js/VolumeBlocks.js:545 -msgid "synth" -msgstr "がっき" - -#: js/VolumeBlocks.js:403 -#: js/VolumeBlocks.js:577 -#: js/VolumeBlocks.js:740 -#: js/VolumeActions.js:173 -msgid "Setting volume to 0." -msgstr "おんりょうを 「0」に せってい します。" - -#: js/VolumeBlocks.js:440 -msgid "Synth not found" -msgstr "シンセがみつかりません" - -#: js/VolumeBlocks.js:494 -msgid "set drum volume" -msgstr "ドラムの おんりょうを せってい" - -#: js/VolumeBlocks.js:530 -msgid "The Set synth volume block will change the volume of a particular synth," -msgstr "

がっきの おんりょうを せっていブロック


ギター、ヴァイオリン、スネアドラムなどの がっきの おんりょうを せってい する。" - -#: js/VolumeBlocks.js:532 -msgid "eg guitar violin snare drum etc." -msgstr "

デフォルトは おんりょう 50。 " - -#: js/VolumeBlocks.js:534 -msgid "The default volume is 50." -msgstr "
" - -#: js/VolumeBlocks.js:536 -msgid "The range is 0 for silence to 100 for full volume." -msgstr "0から 100までの すうちを せってい できる。 " - -#: js/VolumeBlocks.js:597 -msgid "set panning" -msgstr "ステレオをせってい" - -#: js/VolumeBlocks.js:603 -msgid "The Set Panning block sets the panning for all synthesizers." -msgstr "" - -#: js/VolumeBlocks.js:625 -msgid "Warning: Sound is coming out from only the left or right side." -msgstr "ワーニング:おとはみぎかひだりだけのスピーカーからでている" - -#: js/VolumeBlocks.js:647 -#: js/VolumeBlocks.js:695 -msgid "set master volume" -msgstr "ぜんたいのおんりょうを せってい" - -#: js/VolumeBlocks.js:653 -msgid "The Set master volume block sets the volume for all synthesizers." -msgstr "

ぜんたいのおんりょうを せっていブロック


ぜんたいの おんりょうを せっていする。" - -#: js/VolumeBlocks.js:784 -msgid "The Set relative volume block changes the volume of the contained notes." -msgstr "" - -#: js/VolumeBlocks.js:791 -msgid "set relative volume" -msgstr "あいたいおんりょうを せってい" - -#: js/VolumeBlocks.js:857 -msgid "decrescendo" -msgstr "デクレシェンド" - -#: js/VolumeBlocks.js:921 -msgid "crescendo" -msgstr "クレシェンド" - -#: js/ToneBlocks.js:34 -msgid "oscillator" -msgstr "オシレータ―" - -#: js/ToneBlocks.js:44 -#: js/timbre.js:1562 -#.TRANS: Partials refers to the number of sine waves combined into the sound. -msgid "partials" -msgstr "ばいおん" - -#: js/ToneBlocks.js:76 -msgid "You are adding multiple oscillator blocks." -msgstr "ふくすうの オシレーター ブロックを ついか しています。" +#: js/blocks/PitchBlocks.js:141 +#.TRANS: musical transposition (adjustment of pitch up or down) +msgid "transposition" +msgstr "いちょう" -#: js/ToneBlocks.js:144 -#: js/timbre.js:1225 -#.TRANS: a duo synthesizer combines a synth with a sequencer -msgid "duo synth" -msgstr "シーケンサーこみ シンセ" +#: js/blocks/PitchBlocks.js:168 +#.TRANS: step down one note in current musical scale +msgid "scalar step down" +msgstr "おんかい内で~度下がる:" -#: js/ToneBlocks.js:149 -msgid "The Duo synth block is a duo-frequency modulator used to define a timbre." +#: js/blocks/PitchBlocks.js:172 +msgid "The Scalar step down block returns the number of semi-tones down to the previous note in the current key and mode." msgstr "" -#: js/ToneBlocks.js:157 -#: js/timbre.js:1476 -msgid "vibrato rate" -msgstr "ビブラート エフェクタの レート" - -#: js/ToneBlocks.js:157 -msgid "vibrato intensity" -msgstr "ビブラート エフェクタの きょうど" - -#: js/ToneBlocks.js:185 -#: js/timbre.js:1221 -#.TRANS: AM (amplitude modulation) synthesizer -msgid "AM synth" -msgstr "AM シンセ" +#: js/blocks/PitchBlocks.js:190 +#.TRANS: step up one note in current musical scale +msgid "scalar step up" +msgstr "おんかい内で~度上がる:" -#: js/ToneBlocks.js:189 -msgid "The AM synth block is an amplitude modulator used to define a timbre." +#: js/blocks/PitchBlocks.js:194 +msgid "The Scalar step up block returns the number of semi-tones up to the next note in the current key and mode." msgstr "" -#: js/ToneBlocks.js:224 -#: js/timbre.js:1223 -#.TRANS: FM (frequency modulation) synthesizer -msgid "FM synth" -msgstr "FM シンセ" - -#: js/ToneBlocks.js:228 -msgid "The FM synth block is a frequency modulator used to define a timbre." -msgstr "" +#: js/blocks/PitchBlocks.js:212 +#.TRANS: the change measured in half-steps between the current pitch and the previous pitch +msgid "change in pitch" +msgstr "おんていの ちがい" -#: js/ToneBlocks.js:262 -msgid "partial" -msgstr "ばいおん" +#: js/blocks/PitchBlocks.js:216 +msgid "The Change in pitch block is the difference (in half steps) between the current pitch being played and the previous pitch played." +msgstr "音程の違いブロックは現在に鳴らされている音高と現在のちょうど前に鳴らされている音高(半おとの値で)の違いです。" -#: js/ToneBlocks.js:265 -msgid "The Partial block is used to specify a weight for a specific partial harmonic." -msgstr "" +#: js/blocks/PitchBlocks.js:243 +#.TRANS: the change measured in scale-steps between the current pitch and the previous pitch +msgid "scalar change in pitch" +msgstr "おんかいに よって おんていの ちがい" -#: js/ToneBlocks.js:284 -#.TRANS: partials are weighted components in a harmonic series -msgid "Partial weight must be between 0 and 1." -msgstr "ばいおんの ウェートは 0と 1の あいだ である ひつようが あります。" +#: js/blocks/PitchBlocks.js:250 +#: js/blocks/PitchBlocks.js:432 +#: js/blocks/PitchBlocks.js:1667 +#: js/turtleactions/DictActions.js:89 +#: js/widgets/temperament.js:610 +#: js/widgets/temperament.js:614 +#: js/widgets/temperament.js:855 +#.TRANS: convert current note to piano key (1-88) +#.TRANS: a mapping of pitch to the 88 piano keys +msgid "pitch number" +msgstr "おとのたかさを かずでひょうじ" -#: js/ToneBlocks.js:297 -#.TRANS: partials are weighted components in a harmonic series -msgid "Partial block should be used inside of a Weighted-partials block." -msgstr "ばいおん ブロック が「ばいおん ウェート ブロック」の なかに ある ひつようが あります。" +#: js/blocks/PitchBlocks.js:256 +msgid "The Pitch number block is the value of the pitch of the note currently being played." +msgstr "

おとのたかさを かずでひょうじ ブロック


おとの たかさを かずで ひょうじする。 たとえば、 「ド_4」 ならば 1、 「ソ_4」 ならば 7 、「シ_3」ならば-1、と ひょうじされる。" -#: js/ToneBlocks.js:325 -#.TRANS: partials are weighted components in a harmonic series -msgid "weighted partials" -msgstr "ウェートばいおん" +#: js/blocks/PitchBlocks.js:329 +#: js/blocks/PitchBlocks.js:433 +#.TRANS: the current pitch expressed in Hertz +msgid "pitch in hertz" +msgstr "おとのたかさを ヘルツで ひょうじ" -#: js/ToneBlocks.js:383 -msgid "The Harmonic block will add harmonics to the contained notes." -msgstr "" +#: js/blocks/PitchBlocks.js:334 +msgid "The Pitch in Hertz block is the value in Hertz of the pitch of the note currently being played." +msgstr "

おとの たかさを ヘルツで ひょうじ ブロック


おとの たかさを ヘルツで ひょうじ する。
たとえば、 オクターヴが4の ラのおとは、 440ヘルツという すうちで あらわすことが できる。

★ヘルツとは
おとの たかさを あらわす しゅうはすう。
★しゅうはすうとは
おとが 1びょうかん に なんかい しんどうするかを あらわす すうち。 しゅうはすうが たかい (すうちが おおきい) ほど、 おとが たかくなる。" -#: js/ToneBlocks.js:390 -#.TRANS: A harmonic is an overtone. -msgid "harmonic" -msgstr "ハーモニックス" +#: js/blocks/PitchBlocks.js:367 +#: js/turtleactions/DictActions.js:87 +msgid "current pitch" +msgstr "げんだいの おとの たかさ" -#: js/ToneBlocks.js:431 -msgid "The Distortion block adds distortion to the pitch." +#: js/blocks/PitchBlocks.js:373 +msgid "The Current Pitch block is used with the Pitch Converter block. In the example above, current pitch, sol 4, is displayed as 392 hertz." msgstr "" -#: js/ToneBlocks.js:438 -#: js/timbre.js:2100 -#.TRANS: distortion is an alteration in the sound -msgid "distortion" -msgstr "ディストーション" - -#: js/ToneBlocks.js:487 -msgid "The Tremolo block adds a wavering effect." -msgstr "

トレモロ ブロック


ゆれるような おとの ひびきに する。 はやさ で、 ゆれの はやさを ちょうせつ できる。" - -#: js/ToneBlocks.js:495 -#: js/timbre.js:2092 -#.TRANS: a wavering effect in a musical tone -msgid "tremolo" -msgstr "トレモロ" - -#: js/ToneBlocks.js:500 -#: js/ToneBlocks.js:569 -#: js/ToneBlocks.js:630 -#: js/ToneBlocks.js:689 -#: js/timbre.js:2134 -#: js/timbre.js:2222 -#: js/timbre.js:2317 -#: js/timbre.js:2419 -#.TRANS: rate at which tremolo wavers -msgid "rate" -msgstr "はやさ" - -#: js/ToneBlocks.js:502 -#: js/ToneBlocks.js:630 -#: js/timbre.js:2137 -#: js/timbre.js:2328 -#.TRANS: amplitude of tremolo waver -msgid "depth" -msgstr "おおきさ" - -#: js/ToneBlocks.js:559 -msgid "The Phaser block adds a sweeping sound." +#: js/blocks/PitchBlocks.js:410 +msgid "This block converts the pitch value of the last note played into different formats such as hertz, letter name, pitch number, et al." msgstr "" -#: js/ToneBlocks.js:566 -#: js/timbre.js:2098 -#.TRANS: alter the phase of the sound -msgid "phaser" -msgstr "フェーザー" - -#: js/ToneBlocks.js:569 -#: js/timbre.js:2422 -msgid "octaves" -msgstr "オクターヴ" - -#: js/ToneBlocks.js:569 -#: js/timbre.js:2425 -msgid "base frequency" -msgstr "きほん しゅうはすう" - -#: js/ToneBlocks.js:619 -msgid "The Chorus block adds a chorus effect." -msgstr "

コーラス ブロック


ひろがりの ある おとの ひびきに する。 はやさ と ずれ で、 ひびきが のこる かんじを ちょうせつ できる。" - -#: js/ToneBlocks.js:627 -#: js/timbre.js:2096 -#.TRANS: musical effect to simulate a choral sound -msgid "chorus" -msgstr "コーラス" - -#: js/ToneBlocks.js:630 -msgid "delay" -msgstr "ずれ" +#: js/blocks/PitchBlocks.js:434 +msgid "alphabet" +msgstr "アルファベット" -#: js/ToneBlocks.js:678 -msgid "The Vibrato block adds a rapid, slight variation in pitch." -msgstr "

ビブラートブロック


おとの たかさに こきざみな へんかを つける。" +#: js/blocks/PitchBlocks.js:436 +#.TRANS: Translate as "alphabet class" +msgid "letter class" +msgstr "アルファベット・クラス" -#: js/ToneBlocks.js:686 -#: js/timbre.js:2094 -#.TRANS: a rapid, slight variation in pitch -msgid "vibrato" -msgstr "ビブラート" +#: js/blocks/PitchBlocks.js:437 +msgid "solfege class" +msgstr "かいめい" -#: js/ToneBlocks.js:689 -#: js/timbre.js:2221 -msgid "intensity" -msgstr "おおきさ" +#: js/blocks/PitchBlocks.js:438 +msgid "staff y" +msgstr "おんぶきごうのyざひょう" -#: js/ToneBlocks.js:733 -#.TRANS: select synthesizer -msgid "set synth" -msgstr "シンセを せってい" +#: js/blocks/PitchBlocks.js:439 +msgid "solfege syllable" +msgstr "かいめい(ド、レ、ミ)" -#: js/ToneBlocks.js:804 -msgid "synth name" -msgstr "シンセの なまえ" +#: js/blocks/PitchBlocks.js:440 +msgid "pitch class" +msgstr "ピッチクラス" -#: js/ToneBlocks.js:842 -msgid "set default instrument" -msgstr "ねいろひょうじゅんを せってい" +#: js/blocks/PitchBlocks.js:441 +msgid "scalar class" +msgstr "おんかいクラス" -#: js/ToneBlocks.js:895 -#: js/ToneBlocks.js:943 -#.TRANS: set the characteristics of a custom instrument -msgid "set instrument" -msgstr "ねいろを せってい" +#: js/blocks/PitchBlocks.js:443 +msgid "nth degree" +msgstr "ピッチど" -#: js/ToneBlocks.js:898 -#: js/ToneBlocks.js:926 -#: js/ToneBlocks.js:932 -msgid "The Set instrument block selects a voice for the synthesizer," -msgstr "

ねいろをせってい ブロック

なかに はいっている 「おんぷブロック」 の ねいろを せっていする。" +#: js/blocks/PitchBlocks.js:444 +msgid "pitch to shade" +msgstr "おとのたかさをシェードに" -#: js/ToneBlocks.js:900 -#: js/ToneBlocks.js:934 -msgid "eg guitar piano violin or cello." -msgstr " ねいろは、 ギター や ピアノ などの なかから えらぶことが できる。" +#: js/blocks/PitchBlocks.js:445 +msgid "pitch to color" +msgstr "おとのたかさをいろに" -#: js/ToneBlocks.js:1015 -msgid "Import a sound file to use as an instrument and set its pitch center." -msgstr "ねいろサンプルを アップロードして、 おとの たかさを あわせ" +#: js/blocks/PitchBlocks.js:629 +#: js/widgets/musickeyboard.js:735 +#.TRANS: MIDI is a technical standard for electronic music +msgid "MIDI" +msgstr "" -#: js/ToneBlocks.js:1110 -msgid "Upload a sound file to connect with the sample block." -msgstr "ねいろサンプルを アップロードして、 おとの たかさを あわせ" +#: js/blocks/PitchBlocks.js:642 +#.TRANS: set an offset associated with the numeric piano keyboard mapping +msgid "set pitch number offset" +msgstr "音高の数字を初期化" -#: js/MeterBlocks.js:34 -#.TRANS: musical meter (time signature), e.g., 4:4 -msgid "current meter" -msgstr "げんだいの びょうし" +#: js/blocks/PitchBlocks.js:645 +msgid "The Set pitch number offset block is used to set the offset for mapping pitch numbers to pitch and octave." +msgstr "" -#: js/MeterBlocks.js:85 -#.TRANS: number of beats per minute -msgid "beat factor" -msgstr "はくを ~ばいにする ファクター" +#: js/blocks/PitchBlocks.js:679 +#.TRANS: convert piano key number (1-88) to pitch +msgid "number to pitch" +msgstr "すうじを おんめいへ" -#: js/MeterBlocks.js:161 -msgid "The Beats per minute block returns the current beats per minute." +#: js/blocks/PitchBlocks.js:682 +msgid "The Number to pitch block will convert a pitch number to a pich name." msgstr "" -#: js/MeterBlocks.js:169 -#: js/status.js:152 -#.TRANS: number of beats played per minute -msgid "beats per minute2" -msgstr "1ぷんあたりの はくのかず" +#: js/blocks/PitchBlocks.js:715 +#.TRANS: convert piano key number (1-88) to octave +msgid "number to octave" +msgstr "すうちをオクターヴ表記へ" -#: js/MeterBlocks.js:169 -#: js/MeterBlocks.js:1056 -#: js/MeterBlocks.js:1133 -#: js/MeterBlocks.js:1211 -#.TRANS: sets tempo by defining a beat and beats per minute -msgid "beats per minute" -msgstr "スピードを きめる" +#: js/blocks/PitchBlocks.js:717 +msgid "The Number to octave block will convert a pitch number to an octave." +msgstr "" -#: js/MeterBlocks.js:233 -#.TRANS: count of current musical measure in meter -msgid "measure count" -msgstr "しょうせつの かず" +#: js/blocks/PitchBlocks.js:726 +msgid "y to pitch" +msgstr "おとの たかさを yに" -#: js/MeterBlocks.js:241 -msgid "The Measure count block returns the current measure." +#: js/blocks/PitchBlocks.js:729 +msgid "Y to pitch block will convert a staff y position to corresponding pitch notation." msgstr "" -#: js/MeterBlocks.js:290 -#.TRANS: count of current beat in the meter -msgid "beat count" -msgstr "はくの いち" +#: js/blocks/PitchBlocks.js:841 +msgid "accidental selector" +msgstr "" -#: js/MeterBlocks.js:300 -#: js/MeterBlocks.js:311 -#: js/MeterBlocks.js:565 -#: js/MeterBlocks.js:576 -msgid "The Beat count block is the number of the current beat," -msgstr "

はくの いちブロック


しょうせつの なかで なんぱくめかを あらわす かず。" +#: js/blocks/PitchBlocks.js:844 +msgid "The Accidental selector block is used to choose between double-sharp, sharp, natural, flat, and double-flat." +msgstr "変化記号セレクターブロックはダブルシャープ(重嬰)、シャープ(嬰)、ナチュラル(本位)、フラット(変)、ダブルフラット(重変)からえらぶことができます。" -#: js/MeterBlocks.js:313 -#: js/MeterBlocks.js:578 -msgid "eg 1, 2, 3, or 4." -msgstr " たとえば、 かくしょうせつの 3はくめに なにか アクション・イベントを おこしたいときなどに つかう。" +#: js/blocks/PitchBlocks.js:858 +msgid "Pitch can be specified in terms of ni dha pa ma ga re sa." +msgstr "おとの たかさを、「sa、re、ga、ma、pa、dha、ni」の7つのインドのソルフェージュでせっていする。" -#: js/MeterBlocks.js:368 -#.TRANS: count the number of notes -msgid "sum note values" -msgstr "おとの ながさを たす" +#: js/blocks/PitchBlocks.js:872 +msgid "Pitch can be specified in terms of C D E F G A B." +msgstr "

おとのたかさブロック


おとのたかさを、 CDEFGABの 7つの アルファベットで せっていする。 たとえば、 ドならばC、 レならばD で あらわされる。" -#: js/MeterBlocks.js:376 -#: js/MeterBlocks.js:440 -msgid "The Note counter block can be used to count the number of contained notes." +#: js/blocks/PitchBlocks.js:884 +msgid "solfege" msgstr "" -#: js/MeterBlocks.js:432 -#.TRANS: count the number of notes -msgid "note counter" -msgstr "おんぷの ごうけい すう" - -#: js/MeterBlocks.js:496 -#.TRANS: number of whole notes that have been played -msgid "whole notes played" -msgstr "さいせい された ぜんおんぷの かず" +#: js/blocks/PitchBlocks.js:887 +msgid "Pitch can be specified in terms of do re mi fa sol la ti." +msgstr "

おとのたかさブロック


おとのたかさを、 ド、レ、ミ、ファ、ソ、ラ、シの 7つの ソルフェージュで せっていする。 たとえば、 ドならばC、 レならばD で あらわされる。" -#: js/MeterBlocks.js:505 -msgid "The Whole notes played block returns the total number of whole notes played." +#: js/blocks/PitchBlocks.js:922 +msgid "The Invert block rotates any contained notes around a target note." msgstr "" -#: js/MeterBlocks.js:555 -#: js/DictActions.js:83 -#.TRANS: number of notes that have been played -msgid "notes played" -msgstr "ぜんたいの はくの かず" +#: js/blocks/PitchBlocks.js:929 +#.TRANS: pitch inversion rotates a pitch around another pitch +msgid "invert" +msgstr "両ほうこうにずれる" -#: js/MeterBlocks.js:653 -msgid "The No clock block decouples the notes from the master clock." -msgstr "クロックなしブロックはそれぞれの動作の順番をリズムより優先します。" +#: js/blocks/PitchBlocks.js:968 +#.TRANS: pitch inversion rotates a pitch around another pitch (odd number) +msgid "invert (odd)" +msgstr "てんかいを (きすう)" -#: js/MeterBlocks.js:661 -#.TRANS: don't lock notes to master clock -msgid "no clock" -msgstr "クロックなし" +#: js/blocks/PitchBlocks.js:1001 +#.TRANS: pitch inversion rotates a pitch around another pitch (even number) +msgid "invert (even)" +msgstr "てんかいを (ぐうすう)" -#: js/MeterBlocks.js:700 -msgid "on weak beat do" -msgstr "弱拍に~する" +#: js/blocks/PitchBlocks.js:1022 +#.TRANS: register is the octave of the current pitch +msgid "register" +msgstr "登録" -#: js/MeterBlocks.js:705 -msgid "The On-weak-beat block lets you specify actions to take on weak (off) beats." +#: js/blocks/PitchBlocks.js:1026 +msgid "The Register block provides an easy way to modify the register (octave) of the notes that follow it." msgstr "" -#: js/MeterBlocks.js:750 -msgid "on strong beat" -msgstr "強拍に" - -#: js/MeterBlocks.js:758 -msgid "The On-strong-beat block lets you specify actions to take on specified beats." +#: js/blocks/PitchBlocks.js:1047 +#.TRANS: cents are units used to specify the ratio between pitches. There are 100 cents between successive notes. +msgid "50 cents" msgstr "" -#: js/MeterBlocks.js:769 -msgid "beat" -msgstr "びょうし" +#: js/blocks/PitchBlocks.js:1102 +msgid "The Semi-tone transposition block will shift the pitches contained inside Note blocks up (or down) by half steps." +msgstr "半音で移調ブロックは音符の中に入っている音高を上(または下)に、特定されている数字の値によって、半音ずつ移動します。" -#: js/MeterBlocks.js:813 -msgid "on every beat do" -msgstr "すべてのびょうしにアクションじっこう" +#: js/blocks/PitchBlocks.js:1104 +msgid "In the example shown above, sol is shifted up to sol#." +msgstr "例の画像にソルソル#に上に移動されています。" -#: js/MeterBlocks.js:821 -msgid "The On-every-beat block lets you specify actions to take on every beat." -msgstr "" +#: js/blocks/PitchBlocks.js:1110 +#.TRANS: adjust the amount of shift (up or down) of a pitch +msgid "semi-tone transpose" +msgstr "はんおんで いちょう" -#: js/MeterBlocks.js:874 -msgid "on every note do" -msgstr "すべての おんぷに アクションじっこう" +#: js/blocks/PitchBlocks.js:1143 +msgid "The Transpose by Ratio block will shift the pitches contained inside Note blocks up (or down) by a ratio" +msgstr "「ひで いどう」ブロックは おんぷの なかの ピッチを ひで いどうさせる。" -#: js/MeterBlocks.js:882 -msgid "The On-every-note block lets you specify actions to take on every note." -msgstr "" +#: js/blocks/PitchBlocks.js:1149 +#.TRANS: adjust the amount of shift (up or down) of a pitch +msgid "transpose by ratio" +msgstr "ひで いどう" -#: js/MeterBlocks.js:928 -#: js/MeterBlocks.js:999 -#.TRANS: sets tempo by defining a beat and beats per minute -msgid "master beats per minute" -msgstr "ぜんたいの スピードを きめる" +#: js/blocks/PitchBlocks.js:1232 +#.TRANS: down sixth means the note is five scale degrees below current note +msgid "down sixth" +msgstr "おんかいで6ど した" -#: js/MeterBlocks.js:952 -#: js/MeterBlocks.js:1078 -#: js/MeterBlocks.js:1135 -msgid "bpm" -msgstr "1ぷんあたりの はくのかず" +#: js/blocks/PitchBlocks.js:1251 +#.TRANS: down third means the note is two scale degrees below current note +msgid "down third" +msgstr "おんかいで3ど した" -#: js/MeterBlocks.js:952 -#: js/MeterBlocks.js:1078 -#: js/MeterBlocks.js:1135 -msgid "beat value" -msgstr "1ぱく" +#: js/blocks/PitchBlocks.js:1270 +#.TRANS: seventh means the note is the six scale degrees above current note +msgid "seventh" +msgstr "7どの おと" -#: js/MeterBlocks.js:1024 -#: js/MeterBlocks.js:1167 -#: js/MeterBlocks.js:1241 -msgid "Beats per minute must be > 30." -msgstr "1ぷん あたりの はくの かずは 30より おおきい あたいを せってい して ください。" +#: js/blocks/PitchBlocks.js:1289 +#.TRANS: sixth means the note is the five scale degrees above current note +msgid "sixth" +msgstr "6どの おと" -#: js/MeterBlocks.js:1027 -#: js/MeterBlocks.js:1170 -#: js/MeterBlocks.js:1244 -msgid "Maximum beats per minute is 1000." -msgstr "1ぷん あたりの はくの かずは さいだい 1000です。" +#: js/blocks/PitchBlocks.js:1308 +#.TRANS: fifth means the note is the four scale degrees above current note +msgid "fifth" +msgstr "5どの おと" -#: js/MeterBlocks.js:1068 -msgid "The Beats per minute block sets the number of 1/4 notes per minute." -msgstr "

スピードを きめるブロック


1ぷんあたりの はくの かずを せってい することで、 きょくの スピードを きめる。 ひょうじゅんは 4ぶおんぷ 90こ。

★はくとは
くりかえされる リズムのこと。" +#: js/blocks/PitchBlocks.js:1328 +#.TRANS: fourth means the note is three scale degrees above current note +msgid "fourth" +msgstr "4どの おと" -#: js/MeterBlocks.js:1279 -#.TRANS: anacrusis -msgid "pickup" -msgstr "ピックアップ" +#: js/blocks/PitchBlocks.js:1347 +#.TRANS: third means the note is two scale degrees above current note +msgid "third" +msgstr "3どの おと" -#: js/MeterBlocks.js:1367 -msgid "number of beats" -msgstr "はくの かず" +#: js/blocks/PitchBlocks.js:1366 +#.TRANS: second means the note is one scale degree above current note +msgid "second" +msgstr "2どの おと" -#: js/DictBlocks.js:77 -msgid "show dictionary" -msgstr "じしょを あらわす" +#: js/blocks/PitchBlocks.js:1407 +msgid "The Scalar transposition block will shift the pitches contained inside Note blocks up (or down) the scale." +msgstr "

ちょうを かえるブロック


「おんぷブロック」 ないの おとのたかさを、 すべて (おんかいないで、 せっていした すうちぶんだけ) あげる、 または さげる。" -#: js/DictBlocks.js:129 -msgid "The Dictionary block returns a dictionary." -msgstr "" +#: js/blocks/PitchBlocks.js:1409 +msgid "In the example shown above, sol is shifted up to la." +msgstr "

ずのれいでは、 ソがラに、 ラがシに、 シがドに… と おきかえられている。

★おんかいとは
じゅんばんに ならんだ おとの まとまり。たとえば、「ド」 を はじまりのおと に したときの 「ドレミファソラシド」、 「ソ」 を はじまりのおと に したときの 「ソラシドレミ(♯ファ)ソ」 の こと。
★ちょうとは
ちゅうしんてきな やくわりを はたすおとと、 おんかいの しゅるいによって きまる、 きょくの かんじ。 ちゅうしんてきな やくわりを はたすおと だけを さすこともある。" -#: js/DictBlocks.js:197 -#: js/DictBlocks.js:339 -msgid "The Get-dict block returns a value in the dictionary for a specified key." +#: js/blocks/PitchBlocks.js:1416 +#.TRANS: adjust the amount of shift (up or down) of a pitch by musical scale (scalar) steps +msgid "scalar transpose" +msgstr "ちょうを かえる" + +#: js/blocks/PitchBlocks.js:1451 +msgid "The Accidental block is used to create sharps and flats" +msgstr "変化記号ブロックは シャープ(嬰)フラット(変)を決めるきのうです。" + +#: js/blocks/PitchBlocks.js:1458 +#.TRANS: An accidental is a modification to a pitch, e.g., sharp or flat. +msgid "accidental override" +msgstr "へんかきごう むし" + +#: js/blocks/PitchBlocks.js:1581 +msgid "The Hertz block (in combination with a Number block) will play a sound at the specified frequency." +msgstr "

ヘルツ ブロック


おとのたかさを ヘルツ (しゅうはすうの たんい) で せっていする。 「すうちぶろっく」 を くみあわせて つかう。

★ヘルツとは
おとの たかさを あらわす しゅうはすう。
★しゅうはすうとは
おとが 1びょうかん に なんかい しんどうするかを あらわす すうち。 しゅうはすうが たかい (すうちが おおきい) ほど、 おとが たかくなる。" + +#: js/blocks/PitchBlocks.js:1671 +msgid "The Pitch Number block will play a pitch associated by its number, e.g. 0 for C and 7 for G." msgstr "" -#: js/DictBlocks.js:212 -#: js/DictBlocks.js:354 -#.TRANS: retrieve a value from the dictionary with a given key -msgid "get value" -msgstr "あたいを あらわす" +#: js/blocks/PitchBlocks.js:1703 +#: js/blocks/PitchBlocks.js:1745 +#.TRANS: a numeric mapping of the notes in an octave based on the musical mode +#.TRANS: a numeric mapping of the notes in an octave based on the musical mode +msgid "nth modal pitch" +msgstr "ピッチど" -#: js/DictBlocks.js:215 -#: js/DictBlocks.js:216 -#: js/DictBlocks.js:289 -#: js/DictBlocks.js:290 -#: js/DictBlocks.js:357 -#: js/DictBlocks.js:430 -#: js/DictBlocks.js:431 -msgid "key2" -msgstr "キーワード" +#: js/blocks/PitchBlocks.js:1706 +msgid "n^th Modal Pitch takes the pattern of pitches in semitones for a mode and makes each point a degree of the mode," +msgstr "" -#: js/DictBlocks.js:271 -#: js/DictBlocks.js:411 -msgid "The Set-dict block sets a value in the dictionary for a specified key." +#: js/blocks/PitchBlocks.js:1708 +msgid "starting from 1 and regardless of tonal framework (i.e. not always 8 notes in the octave)" msgstr "" -#: js/DictBlocks.js:286 -#: js/DictBlocks.js:427 -#.TRANS: set a value in the dictionary for a given key -msgid "set value" -msgstr "あたいを せってい" +#: js/blocks/PitchBlocks.js:1749 +msgid "N^th Modal Pitch takes a number as an input as the n^th degree for the given mode. 0 is the first position, 1 is the second, -1 is the note before the first etc." +msgstr "" -#: js/ExtrasBlocks.js:33 -msgid "fraction" -msgstr "ぶんすう" +#: js/blocks/PitchBlocks.js:1751 +msgid "The pitches change according to the mode specified without any need for respellings." +msgstr "" -#: js/ExtrasBlocks.js:36 -msgid "Convert a float to a fraction" -msgstr "しょうすうからぶんすう" +#: js/blocks/PitchBlocks.js:1790 +msgid "Scale Degree is a common convention in music. Scale Degree offers seven possible positions in the scale (1-7) and can be modified via accidentals." +msgstr "" -#: js/ExtrasBlocks.js:93 -msgid "save as ABC" -msgstr "ABCフォーマットでほぞん" +#: js/blocks/PitchBlocks.js:1792 +msgid "Scale Degree 1 is always the first pitch in a given scale, regardless of octave." +msgstr "" -#: js/ExtrasBlocks.js:96 -#: js/ExtrasBlocks.js:132 -#: js/ExtrasBlocks.js:168 -msgid "title" -msgstr "めい" +#: js/blocks/PitchBlocks.js:1814 +#.TRANS: step some number of notes in current musical scale +msgid "scalar step" +msgstr "おんかいないを のぼる/おりる" -#: js/ExtrasBlocks.js:129 -msgid "save as Lilypond" -msgstr "Lilypondのフォーマットでほぞん" +#: js/blocks/PitchBlocks.js:1819 +msgid "The Scalar Step block (in combination with a Number block) will play the next pitch in a scale," +msgstr "

おんかいないをのぼる/おりるブロック


おんかいない を じゅんばんに (ある いっていの かんかくで) のぼりながら、 または おりながら おとを えんそう する。 すうちを せっていする ことで、 つぎの おとは まえの おとと いくつちがうか が きまる。" -#: js/ExtrasBlocks.js:165 -msgid "save as SVG" -msgstr "SVGフォーマットでほぞん" +#: js/blocks/PitchBlocks.js:1821 +msgid "eg if the last note played was sol, Scalar Step 1 will play la." +msgstr "

たとえば、 すうちを 1に せっていした ばあい、 ソの つぎには ラ(ソの 1おんうえ)、 ファの つぎには ソ(ファの 1おんうえ) が えんそう される。

★おんかいとは
じゅんばんに ならんだ おとの まとまり。たとえば、「ド」 を はじまりのおと に したときの 「ドレミファソラシド」、 「ソ」 を はじまりのおと に したときの 「ソラシドレミ(♯ファ)ソ」 の こと。" -#: js/ExtrasBlocks.js:216 -msgid "no background" -msgstr "バックグラウンドなし" +#: js/blocks/PitchBlocks.js:1857 +msgid "The Pitch block specifies the pitch name and octave of a note that together determine the frequency of the note." +msgstr "

おとのたかさ ブロック


おとのたかさを せってい する。 なまえと オクターヴの たかさを きめて つかう。 おとの しゅうはすうも どうじに きまる。

★しゅうはすうとは
おとが 1びょうかんに なんかい しんどうするかを あらわす すうち。 しゅうはすうが たかい (すうちが おおきい) ほど、 おとが たかくなる。
★オクターヴの たかさとは
おなじ なまえでも たかさがちがう おとを あらわす すうち。" -#: js/ExtrasBlocks.js:219 -msgid "The No background block eliminates the background from the saved SVG output." +#: js/blocks/ProgramBlocks.js:33 +msgid "The Load-heap-from-app block loads the heap from a web page." msgstr "" -#: js/ExtrasBlocks.js:247 -msgid "show blocks" -msgstr "ブロックを ひょうじ" +#: js/blocks/ProgramBlocks.js:44 +#.TRANS: load the heap contents from a URL +msgid "load heap from App" +msgstr "アプリから ヒープを ロード" -#: js/ExtrasBlocks.js:249 -msgid "The Show blocks block shows the blocks." -msgstr "" +#: js/blocks/ProgramBlocks.js:95 +msgid "Error parsing JSON data:" +msgstr "JSON データの こうぶん エラー です。" -#: js/ExtrasBlocks.js:274 -msgid "hide blocks" -msgstr "ブロックを ひひょうじ" +#: js/blocks/ProgramBlocks.js:100 +msgid "404: Page not found" +msgstr "404エラー:ページが見つかりません。" -#: js/ExtrasBlocks.js:276 -msgid "The Hide blocks block hides the blocks." +#: js/blocks/ProgramBlocks.js:133 +msgid "The Save-heap-to-app block saves the heap to a web page." msgstr "" -#: js/ExtrasBlocks.js:305 -#: js/ExtrasBlocks.js:335 -msgid "The Space block is used to add space between blocks." -msgstr "

スペースブロック


ブロックと ブロックの あいだに スペースを いれたいときに つかう。" +#: js/blocks/ProgramBlocks.js:144 +#.TRANS: save the heap contents to a URL +msgid "save heap to App" +msgstr "アプリに ヒープを ほぞん" -#: js/ExtrasBlocks.js:373 -msgid "wait" -msgstr "まつ" +#: js/blocks/ProgramBlocks.js:189 +msgid "Cannot find a valid heap for" +msgstr "ただしい ヒープが みつかりません。" -#: js/ExtrasBlocks.js:376 -msgid "The Wait block pauses the program for a specified number of seconds." +#: js/blocks/ProgramBlocks.js:206 +msgid "The Load-heap block loads the heap from a file." msgstr "" -#: js/ExtrasBlocks.js:430 -#: plugins/facebook.rtp:30 -msgid "comment" -msgstr "コメント" - -#: js/ExtrasBlocks.js:466 -msgid "print" -msgstr "けっかを ひょうじ" +#: js/blocks/ProgramBlocks.js:217 +#.TRANS: load the heap from a file +msgid "load heap" +msgstr "ヒープを ロード する" -#: js/ExtrasBlocks.js:473 -msgid "The Print block displays text at the top of the screen." -msgstr "

ひょうじ ブロック(けっか)


がめんの じょうぶに、 してい した じっこうけっかの すうちや もじを ひょうじする。 ひょうじした テキストは クリックすると けすことが できる。 どこで プログラムが まちがっているかを かくにんするさい(デバグ)などに よく もちいられる。" +#: js/blocks/ProgramBlocks.js:270 +msgid "The file you selected does not contain a valid heap." +msgstr "えらんだ ファイルには、ただしい ヒープが ふくまれません。" -#: js/ExtrasBlocks.js:579 -msgid "display grid" -msgstr "グリッドをひょうじ" +#: js/blocks/ProgramBlocks.js:275 +msgid "The loadHeap block needs a loadFile block." +msgstr "ロードヒープの ブロックには、 ロードファイル ブロックが ひつよう です。" -#: js/ExtrasBlocks.js:584 -msgid "The Display Grid Block changes the grid type" +#: js/blocks/ProgramBlocks.js:291 +msgid "The Set-heap block loads the heap." msgstr "" -#: js/ExtrasBlocks.js:686 -#: js/ExtrasBlocks.js:705 -#: js/ExtrasBlocks.js:728 -#: js/ExtrasBlocks.js:751 -#: js/ExtrasBlocks.js:769 -#: js/ExtrasBlocks.js:788 -#: js/ExtrasBlocks.js:807 -#: js/ExtrasBlocks.js:826 -msgid "unknown" -msgstr "ふめい" +#: js/blocks/ProgramBlocks.js:340 +msgid "The block you selected does not contain a valid heap." +msgstr "" -#: js/SensorsBlocks.js:36 -msgid "The Input block prompts for keyboard input." +#: js/blocks/ProgramBlocks.js:343 +msgid "The Set heap block needs a heap." msgstr "" -#: js/SensorsBlocks.js:46 -msgid "input" -msgstr "インプット" +#: js/blocks/ProgramBlocks.js:360 +msgid "The Load-dictionary block loads a dictionary from a file." +msgstr "" -#: js/SensorsBlocks.js:64 -msgid "Input a value" -msgstr "価値をインプット" +#: js/blocks/ProgramBlocks.js:372 +#.TRANS: load a dictionary from a file +msgid "load dictionary" +msgstr "じしょを ロードする" -#: js/SensorsBlocks.js:126 -msgid "input value" -msgstr "インプットの価値" +#: js/blocks/ProgramBlocks.js:390 +#: js/blocks/ProgramBlocks.js:658 +#: js/blocks/ToneBlocks.js:1025 +msgid "file" +msgstr "ファイル" -#: js/SensorsBlocks.js:131 -msgid "The Input-value block stores the input." +#: js/blocks/ProgramBlocks.js:444 +msgid "The file you selected does not contain a valid dictionary." msgstr "" -#: js/SensorsBlocks.js:238 -msgid "loudness" -msgstr "おんりょう" +#: js/blocks/ProgramBlocks.js:449 +msgid "The load dictionary block needs a load file block." +msgstr "" -#: js/SensorsBlocks.js:245 -msgid "The Loudness block returns the volume detected by the microphone." +#: js/blocks/ProgramBlocks.js:466 +msgid "The Set-dictionary block loads a dictionary." msgstr "" -#: js/SensorsBlocks.js:300 -msgid "click" -msgstr "クリック" +#: js/blocks/ProgramBlocks.js:477 +#.TRANS: load a dictionary from a JSON +msgid "set dictionary" +msgstr "じしょを せってい" -#: js/SensorsBlocks.js:306 -msgid "The Click block triggers an event if a mouse has been clicked." +#: js/blocks/ProgramBlocks.js:546 +msgid "The block you selected does not contain a valid dictionary." msgstr "" -#: js/SensorsBlocks.js:313 -msgid "The Click block triggers an event if a turtle has been clicked." +#: js/blocks/ProgramBlocks.js:550 +msgid "The set dictionary block needs a dictionary." msgstr "" -#: js/SensorsBlocks.js:342 -msgid "cursor over" -msgstr "カーソル(うえ)" +#: js/blocks/ProgramBlocks.js:567 +msgid "The Save-heap block saves the heap to a file." +msgstr "" -#: js/SensorsBlocks.js:387 -msgid "cursor out" -msgstr "カーソル(外)" +#: js/blocks/ProgramBlocks.js:578 +#.TRANS: save the heap to a file +msgid "save heap" +msgstr "ヒープを ほぞん する" -#: js/SensorsBlocks.js:433 -msgid "cursor button down" -msgstr "カーソルクリック(した)" +#: js/blocks/ProgramBlocks.js:629 +msgid "The Save-dictionary block saves a dictionary to a file." +msgstr "" -#: js/SensorsBlocks.js:477 -msgid "cursor button up" -msgstr "カーソルクリック(うえ)" +#: js/blocks/ProgramBlocks.js:640 +#.TRANS: save a dictionary to a file +msgid "save dictionary" +msgstr "じしょを せってい" -#: js/SensorsBlocks.js:638 -msgid "The Get red block returns the red component of the pixel under the mouse." +#: js/blocks/ProgramBlocks.js:720 +msgid "The Open palette block opens a palette." msgstr "" -#: js/SensorsBlocks.js:644 -msgid "The Get red block returns the red component of the pixel under the turtle." +#: js/blocks/ProgramBlocks.js:727 +msgid "open palette" +msgstr "パレットを ひらきます" + +#: js/blocks/ProgramBlocks.js:785 +msgid "The Delete block block removes a block." msgstr "" -#: js/SensorsBlocks.js:685 -#: plugins/rodi.rtp:216 -msgid "pixel color" -msgstr "ピクセルの いろ" +#: js/blocks/ProgramBlocks.js:797 +#.TRANS: Move this block to the trash. +msgid "delete block" +msgstr "ブロックを けす" -#: js/SensorsBlocks.js:690 -msgid "The Get pixel block returns the color of the pixel under the mouse." +#: js/blocks/ProgramBlocks.js:861 +msgid "The Move block block moves a block." msgstr "" -#: js/SensorsBlocks.js:696 -msgid "The Get pixel block returns the color of the pixel under the turtle." -msgstr "" +#: js/blocks/ProgramBlocks.js:869 +#.TRANS: Move the position of a block on the screen. +msgid "move block" +msgstr "ブロックを うごかす" -#: js/SensorsBlocks.js:758 -msgid "time" -msgstr "じかん" +#: js/blocks/ProgramBlocks.js:881 +#: js/blocks/ProgramBlocks.js:1048 +msgid "block number" +msgstr "ブロックの ばんごう" -#: js/SensorsBlocks.js:804 -msgid "cursor y" -msgstr "yざひょうち(カーソル)" +#: js/blocks/ProgramBlocks.js:935 +#.TRANS: Run program beginning at this block. +msgid "run block" +msgstr "ブロックを じっこう" -#: js/SensorsBlocks.js:809 -msgid "The Cursor Y block returns the vertical position of the mouse." -msgstr "

すうちブロック(カーソル)


マウスカーソルの たていち を あらわす yざひょうち。
ずのれいは、 ネズミを つかって がめんじょうに じゆうに せんを えがける プログラム。 ネズミが パソコンの マウスカーソルの いち に いどうしつづけつつ、 マウスを おしているときだけ ペンをおろし、 せんをえがく。" +#: js/blocks/ProgramBlocks.js:1025 +msgid "The Dock block block connections two blocks." +msgstr "" -#: js/SensorsBlocks.js:845 -msgid "cursor x" -msgstr "xざひょうち(カーソル)" +#: js/blocks/ProgramBlocks.js:1036 +#.TRANS: We can connect a block to another block. +msgid "connect blocks" +msgstr "ブロックを つなぐ" -#: js/SensorsBlocks.js:850 -msgid "The Cursor X block returns the horizontal position of the mouse." -msgstr "

すうちブロック(カーソル)


マウスカーソルの よこいち を あらわす xざひょうち。
ずのれいは、 ネズミを つかって がめんじょうに じゆうに せんを えがける プログラム。 ネズミが パソコンの マウスカーソルの いち に いどうしつづけつつ、 マウスを おしているときだけ ペンをおろし、 せんをえがく。" +#: js/blocks/ProgramBlocks.js:1048 +msgid "target block" +msgstr "もくひょうの ブロック" -#: js/SensorsBlocks.js:886 -msgid "mouse button" -msgstr "マウスボタン" +#: js/blocks/ProgramBlocks.js:1048 +msgid "connection number" +msgstr "接続のばんごう" -#: js/SensorsBlocks.js:888 -msgid "The Mouse-button block returns True if the mouse button is pressed." -msgstr "

しんぎブロック(マウスボタン)


マウスの ボタンが おされているか どうか はんてい する。 マウスボタンが おされていれば 「しん(しん)」、 おされていなければ「にせ(ぎ)」と いう あたいになる。
ずのれいは、 ネズミを つかって がめんじょうに じゆうに せんを えがける プログラム。 ネズミが パソコンの マウスカーソルの いち に いどうしつづけつつ、 マウスを おしているときだけ ペンをおろし、 せんをえがく。

★しんぎブロックとは
「もし~ならば」などの じょうけんブロックを うごかすために ひつような ブロック。
「もし~ならば」は、 せいかくに ひょうげんすると、 「もし~という じょうけんが ただしい ならば、 つぎの ブロックを じっこうする」という いみ である。 しんぎブロックは ふとうしき などによる ひかくが 「ただしい(しん)」か、 「ただしくない(にせ)」かの けっかを あらわし、 「もし~ならば」に つづく ブロックを じっこうするか どうか きめる。" +#: js/blocks/ProgramBlocks.js:1140 +msgid "The Make block block creates a new block." +msgstr "" -#: js/SensorsBlocks.js:934 -msgid "to ASCII" -msgstr "ASCIIに" +#: js/blocks/ProgramBlocks.js:1152 +#.TRANS: Create a new block +msgid "make block" +msgstr "ブロックを つくる" -#: js/SensorsBlocks.js:938 -msgid "The To ASCII block converts numbers to letters." -msgstr "" +#: js/blocks/ProgramBlocks.js:1285 +msgid "Cannot find block" +msgstr "ブロックが みつかりません" -#: js/SensorsBlocks.js:1005 -msgid "The Keyboard block returns computer keyboard input." +#: js/blocks/ProgramBlocks.js:1304 +#: js/blocks/ProgramBlocks.js:1313 +msgid "Warning: block argument type mismatch" +msgstr "ちゅうい:ブロックと タイプが あっていません。" + +#: js/blocks/ProgramBlocks.js:1347 +msgid "The Open project block is used to open a project from a web page." msgstr "" -#: js/IntervalsActions.js:216 -msgid "Adding missing pitch number 0." -msgstr "ピッチすうち「0」をくわえる" +#: js/blocks/ProgramBlocks.js:1357 +msgid "open project" +msgstr "プロジェクトを ひらく" -#: js/IntervalsActions.js:224 -msgid "Ignoring pitch numbers less than zero or greater than eleven." -msgstr "ピッチすうちの数のうち、0未満あるいは11よりおおきい数は無視します。" +#: js/blocks/ProgramBlocks.js:1410 +msgid "Please enter a valid URL." +msgstr "ただしい URL をいれてください。" -#: js/IntervalsActions.js:230 -msgid "Ignoring duplicate pitch numbers." -msgstr "ちょうふく している ピッチすうちは むし します" +#: js/blocks/ToneBlocks.js:34 +msgid "oscillator" +msgstr "オシレータ―" -#: js/PitchActions.js:88 -msgid "The Scalar Step Block must be used inside of a Note Block." -msgstr "おんかいうちを あがる/おりるブロックは、 おんぷブロックの なかに いれて つかって ください。" +#: js/blocks/ToneBlocks.js:42 +#: js/blocks/WidgetBlocks.js:179 +#: js/widgets/timbre.js:1558 +#: js/widgets/timbre.js:1808 +#.TRANS: there are different types (sine, triangle, square...) of oscillators. +#.TRANS: type of filter, e.g., lowpass, highpass, etc. +msgid "type" +msgstr "しゅるい" -#: js/PitchActions.js:107 -msgid "The Scalar Step Block must be preceded by a Pitch Block." -msgstr "おんかいうちを あがる/おりるブロックは、 おとの たかさ ブロックの あとに つかってください。" +#: js/blocks/ToneBlocks.js:44 +#: js/widgets/timbre.js:1562 +#.TRANS: Partials refers to the number of sine waves combined into the sound. +msgid "partials" +msgstr "ばいおん" -#: js/DrumActions.js:231 -msgid "Noise Block: Did you mean to use a Note block?" -msgstr "ノイズ・ブロック:おんぷ ブロックと いっしょに つかいますか?" +#: js/blocks/ToneBlocks.js:76 +msgid "You are adding multiple oscillator blocks." +msgstr "ふくすうの オシレーター ブロックを ついか しています。" -#: js/MeterActions.js:101 -#: js/MeterActions.js:139 -msgid "beats per minute must be greater than" +#: js/blocks/ToneBlocks.js:144 +#: js/widgets/timbre.js:1225 +#.TRANS: a duo synthesizer combines a synth with a sequencer +msgid "duo synth" +msgstr "シーケンサーこみ シンセ" + +#: js/blocks/ToneBlocks.js:149 +msgid "The Duo synth block is a duo-frequency modulator used to define a timbre." msgstr "" -#: js/MeterActions.js:111 -#: js/MeterActions.js:149 -msgid "maximum" -msgstr "さいだいげん" +#: js/blocks/ToneBlocks.js:157 +#: js/widgets/timbre.js:1476 +msgid "vibrato rate" +msgstr "ビブラート エフェクタの レート" -#: js/MeterActions.js:117 -#: js/MeterActions.js:155 -msgid "beats per minute is" -msgstr "" +#: js/blocks/ToneBlocks.js:157 +msgid "vibrato intensity" +msgstr "ビブラート エフェクタの きょうど" -#: js/ToneActions.js:134 -msgid "Vibrato intensity must be between 1 and 100." -msgstr "ビブラートの おおきさは、 1から 100までの はんいで せってい して ください。" +#: js/blocks/ToneBlocks.js:185 +#: js/widgets/timbre.js:1221 +#.TRANS: AM (amplitude modulation) synthesizer +msgid "AM synth" +msgstr "AM シンセ" -#: js/ToneActions.js:139 -msgid "Vibrato rate must be greater than 0." -msgstr "ビブラートの はやさは、 0より おおきい あたいを せってい して ください。" +#: js/blocks/ToneBlocks.js:189 +msgid "The AM synth block is an amplitude modulator used to define a timbre." +msgstr "" -#: js/ToneActions.js:192 -#: js/ToneActions.js:265 -#.TRANS: Depth is the intesity of the tremolo or chorus effect. -msgid "Depth is out of range." -msgstr "(エフェクタの)ふかさの すうじが へんいきがい です。" +#: js/blocks/ToneBlocks.js:224 +#: js/widgets/timbre.js:1223 +#.TRANS: FM (frequency modulation) synthesizer +msgid "FM synth" +msgstr "FM シンセ" -#: js/ToneActions.js:301 -msgid "Distortion must be from 0 to 100." -msgstr "ディストーションは、 0から 100までの はんいで せってい して ください。" +#: js/blocks/ToneBlocks.js:228 +msgid "The FM synth block is a frequency modulator used to define a timbre." +msgstr "" -#: js/ToneActions.js:332 -#.TRANS: partials components in a harmonic series -msgid "Partial must be greater than or equal to 0." -msgstr "ばいおんが 0いじょう である ひつようが あります。" +#: js/blocks/ToneBlocks.js:262 +msgid "partial" +msgstr "ばいおん" -#: js/ToneActions.js:378 -#: js/ToneActions.js:417 -#: js/ToneActions.js:456 -#: js/timbre.js:782 -msgid "Unable to use synth due to existing oscillator" -msgstr "オシレーターが あるため、シンセが つかえません。" +#: js/blocks/ToneBlocks.js:265 +msgid "The Partial block is used to specify a weight for a specific partial harmonic." +msgstr "" -#: js/ToneActions.js:388 -#: js/ToneActions.js:427 -msgid "The input cannot be negative." -msgstr "マイナスの すうちを いれることは できません。" +#: js/blocks/ToneBlocks.js:284 +#.TRANS: partials are weighted components in a harmonic series +msgid "Partial weight must be between 0 and 1." +msgstr "ばいおんの ウェートは 0と 1の あいだ である ひつようが あります。" -#: js/DictActions.js:75 -#: js/DictActions.js:153 -#: js/DictActions.js:188 -msgid "font" -msgstr "フォント" +#: js/blocks/ToneBlocks.js:297 +#.TRANS: partials are weighted components in a harmonic series +msgid "Partial block should be used inside of a Weighted-partials block." +msgstr "ばいおん ブロック が「ばいおん ウェート ブロック」の なかに ある ひつようが あります。" -#: js/musicutils.js:363 -#: js/musicutils.js:471 -#: js/pitchdrummatrix.js:151 -#: js/musickeyboard.js:2563 -msgid "rest" -msgstr "きゅうふ" +#: js/blocks/ToneBlocks.js:325 +#.TRANS: partials are weighted components in a harmonic series +msgid "weighted partials" +msgstr "ウェートばいおん" -#: js/musicutils.js:565 -#.TRANS: ordinal number. Please keep exactly one space between each number. -msgid "1st 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th" -msgstr "1ど 2ど 3ど 4ど 5ど 6ど 7ど 8ど 9ど 10ど 11ど 12ど" +#: js/blocks/ToneBlocks.js:383 +msgid "The Harmonic block will add harmonics to the contained notes." +msgstr "" -#: js/musicutils.js:629 -#: js/musicutils.js:812 -#: js/musicutils.js:911 -#.TRANS: augmented is a music term related to intervals -msgid "augmented" -msgstr "オーギュメント(ぞう)" +#: js/blocks/ToneBlocks.js:390 +#.TRANS: A harmonic is an overtone. +msgid "harmonic" +msgstr "ハーモニックス" -#: js/musicutils.js:631 -#: js/musicutils.js:813 -#: js/musicutils.js:910 -#.TRANS: diminished is a music term related to intervals and mode -msgid "diminished" -msgstr "ディミニッシュ(げん)" +#: js/blocks/ToneBlocks.js:431 +msgid "The Distortion block adds distortion to the pitch." +msgstr "" -#: js/musicutils.js:639 -#.TRANS: twelve semi-tone scale for music -msgid "chromatic" -msgstr "クロマティック おんかい" +#: js/blocks/ToneBlocks.js:438 +#: js/widgets/timbre.js:2100 +#.TRANS: distortion is an alteration in the sound +msgid "distortion" +msgstr "ディストーション" -#: js/musicutils.js:640 -msgid "algerian" -msgstr "アルジェリア おんかい" +#: js/blocks/ToneBlocks.js:487 +msgid "The Tremolo block adds a wavering effect." +msgstr "

トレモロ ブロック


ゆれるような おとの ひびきに する。 はやさ で、 ゆれの はやさを ちょうせつ できる。" -#: js/musicutils.js:641 -msgid "spanish" -msgstr "スペイン おんかい" +#: js/blocks/ToneBlocks.js:495 +#: js/widgets/timbre.js:2092 +#.TRANS: a wavering effect in a musical tone +msgid "tremolo" +msgstr "トレモロ" -#: js/musicutils.js:643 -#.TRANS: modal scale in music -msgid "octatonic" -msgstr "オクタトニック・スケール" +#: js/blocks/ToneBlocks.js:500 +#: js/blocks/ToneBlocks.js:569 +#: js/blocks/ToneBlocks.js:630 +#: js/blocks/ToneBlocks.js:689 +#: js/widgets/timbre.js:2134 +#: js/widgets/timbre.js:2222 +#: js/widgets/timbre.js:2317 +#: js/widgets/timbre.js:2419 +#.TRANS: rate at which tremolo wavers +msgid "rate" +msgstr "はやさ" -#: js/musicutils.js:645 -#.TRANS: harmonic major scale in music -msgid "harmonic major" -msgstr "ハーモニック・メジャー(和声長おんかい)" +#: js/blocks/ToneBlocks.js:502 +#: js/blocks/ToneBlocks.js:630 +#: js/widgets/timbre.js:2137 +#: js/widgets/timbre.js:2328 +#.TRANS: amplitude of tremolo waver +msgid "depth" +msgstr "おおきさ" -#: js/musicutils.js:647 -#.TRANS: natural minor scales in music -msgid "natural minor" -msgstr "しぜんたん おんかい" +#: js/blocks/ToneBlocks.js:559 +msgid "The Phaser block adds a sweeping sound." +msgstr "" -#: js/musicutils.js:649 -#.TRANS: harmonic minor scale in music -msgid "harmonic minor" -msgstr "わせいたん おんかい" +#: js/blocks/ToneBlocks.js:566 +#: js/widgets/timbre.js:2098 +#.TRANS: alter the phase of the sound +msgid "phaser" +msgstr "フェーザー" -#: js/musicutils.js:651 -#.TRANS: melodic minor scale in music -msgid "melodic minor" -msgstr "せんりつたん おんかい" +#: js/blocks/ToneBlocks.js:569 +#: js/turtleactions/IntervalsActions.js:114 +#: js/widgets/timbre.js:2422 +msgid "octaves" +msgstr "オクターヴ" -#: js/musicutils.js:655 -#.TRANS: modal scale for music -msgid "dorian" -msgstr "ドリアン おんかい" +#: js/blocks/ToneBlocks.js:569 +#: js/widgets/timbre.js:2425 +msgid "base frequency" +msgstr "きほん しゅうはすう" -#: js/musicutils.js:657 -#.TRANS: modal scale for music -msgid "phrygian" -msgstr "フリジアン おんかい" +#: js/blocks/ToneBlocks.js:619 +msgid "The Chorus block adds a chorus effect." +msgstr "

コーラス ブロック


ひろがりの ある おとの ひびきに する。 はやさ と ずれ で、 ひびきが のこる かんじを ちょうせつ できる。" -#: js/musicutils.js:659 -#.TRANS: modal scale for music -msgid "lydian" -msgstr "リディアン おんかい" +#: js/blocks/ToneBlocks.js:627 +#: js/widgets/timbre.js:2096 +#.TRANS: musical effect to simulate a choral sound +msgid "chorus" +msgstr "コーラス" -#: js/musicutils.js:661 -#.TRANS: modal scale for music -msgid "mixolydian" -msgstr "ミクソリディアン おんかい" +#: js/blocks/ToneBlocks.js:630 +msgid "delay" +msgstr "ずれ" -#: js/musicutils.js:665 -#.TRANS: modal scale for music -msgid "locrian" -msgstr "ロクリアン おんかい" +#: js/blocks/ToneBlocks.js:678 +msgid "The Vibrato block adds a rapid, slight variation in pitch." +msgstr "

ビブラートブロック


おとの たかさに こきざみな へんかを つける。" -#: js/musicutils.js:667 -#.TRANS: minor jazz scale for music -msgid "jazz minor" -msgstr "オルタード おんかい" +#: js/blocks/ToneBlocks.js:686 +#: js/widgets/timbre.js:2094 +#.TRANS: a rapid, slight variation in pitch +msgid "vibrato" +msgstr "ビブラート" -#: js/musicutils.js:669 -#.TRANS: bebop scale for music -msgid "bebop" -msgstr "ビバップ おんかい" +#: js/blocks/ToneBlocks.js:689 +#: js/widgets/timbre.js:2221 +msgid "intensity" +msgstr "おおきさ" -#: js/musicutils.js:670 -msgid "arabic" -msgstr "アラビア おんかい" +#: js/blocks/ToneBlocks.js:733 +#.TRANS: select synthesizer +msgid "set synth" +msgstr "シンセを せってい" -#: js/musicutils.js:671 -msgid "byzantine" -msgstr "ビザンティン" +#: js/blocks/ToneBlocks.js:804 +msgid "synth name" +msgstr "シンセの なまえ" -#: js/musicutils.js:673 -#.TRANS: musical scale for music by Verdi -msgid "enigmatic" -msgstr "ヴェルディのおんかい" +#: js/blocks/ToneBlocks.js:842 +msgid "set default instrument" +msgstr "ねいろひょうじゅんを せってい" -#: js/musicutils.js:674 -msgid "ethiopian" -msgstr "エチオピアおんかい" +#: js/blocks/ToneBlocks.js:895 +#: js/blocks/ToneBlocks.js:943 +#.TRANS: set the characteristics of a custom instrument +msgid "set instrument" +msgstr "ねいろを せってい" -#: js/musicutils.js:676 -#.TRANS: Ethiopic scale for music -msgid "geez" -msgstr "ゲエズ おんかい" +#: js/blocks/ToneBlocks.js:898 +#: js/blocks/ToneBlocks.js:926 +#: js/blocks/ToneBlocks.js:932 +msgid "The Set instrument block selects a voice for the synthesizer," +msgstr "

ねいろをせってい ブロック

なかに はいっている 「おんぷブロック」 の ねいろを せっていする。" -#: js/musicutils.js:677 -msgid "hindu" -msgstr "ヒンドゥー おんかい" +#: js/blocks/ToneBlocks.js:900 +#: js/blocks/ToneBlocks.js:934 +msgid "eg guitar piano violin or cello." +msgstr " ねいろは、 ギター や ピアノ などの なかから えらぶことが できる。" -#: js/musicutils.js:678 -msgid "hungarian" -msgstr "ハンガリー おんかい" +#: js/blocks/ToneBlocks.js:1015 +msgid "Import a sound file to use as an instrument and set its pitch center." +msgstr "ねいろサンプルを アップロードして、 おとの たかさを あわせ" -#: js/musicutils.js:680 -#.TRANS: minor Romanian scale for music -msgid "romanian minor" -msgstr "ルーマニア・マイナー おんかい" +#: js/blocks/ToneBlocks.js:1110 +msgid "Upload a sound file to connect with the sample block." +msgstr "ねいろサンプルを アップロードして、 おとの たかさを あわせ" -#: js/musicutils.js:681 -msgid "spanish gypsy" -msgstr "スパニッシュ・ジプシー おんかい" +#: js/blocks/VolumeBlocks.js:35 +msgid "synth volume" +msgstr "シンセのおんりょう" -#: js/musicutils.js:683 -#.TRANS: musical scale for Mid-Eastern music -msgid "maqam" -msgstr "マカーム おんかい" +#: js/blocks/VolumeBlocks.js:39 +msgid "The Synth volume block returns the current volume of the current synthesizer." +msgstr "" -#: js/musicutils.js:685 -#.TRANS: minor blues scale for music -msgid "minor blues" -msgstr "マイナー・ブルース おんかい" +#: js/blocks/VolumeBlocks.js:105 +msgid "master volume" +msgstr "マスター おんりょう" -#: js/musicutils.js:687 -#.TRANS: major blues scale for music -msgid "major blues" -msgstr "メジャー・ブルース おんかい" +#: js/blocks/VolumeBlocks.js:109 +msgid "The Master volume block returns the master volume." +msgstr "" -#: js/musicutils.js:688 -msgid "whole tone" -msgstr "ホールトーン おんかい" +#: js/blocks/VolumeBlocks.js:355 +#: js/blocks/VolumeBlocks.js:524 +msgid "set synth volume" +msgstr "がっきの おんりょうを せってい" -#: js/musicutils.js:690 -#.TRANS: pentatonic is a general term that means "five note scale". This scale is typically known as "minor pentatonic" -msgid "minor pentatonic" -msgstr "マイナー・ペンタトニック おんかい" +#: js/blocks/VolumeBlocks.js:362 +#: js/blocks/VolumeBlocks.js:545 +msgid "synth" +msgstr "がっき" -#: js/musicutils.js:692 -#.TRANS: pentatonic is a general term that means "five note scale". This scale is typically known as "major pentatonic" -msgid "major pentatonic" -msgstr "メジャー・ペンタトニックおんかい" +#: js/blocks/VolumeBlocks.js:403 +#: js/blocks/VolumeBlocks.js:577 +#: js/blocks/VolumeBlocks.js:740 +#: js/turtleactions/VolumeActions.js:173 +msgid "Setting volume to 0." +msgstr "おんりょうを 「0」に せってい します。" -#: js/musicutils.js:693 -msgid "chinese" -msgstr "ちゅうごく おんかい" +#: js/blocks/VolumeBlocks.js:440 +msgid "Synth not found" +msgstr "シンセがみつかりません" -#: js/musicutils.js:694 -msgid "egyptian" -msgstr "エジプト おんかい" +#: js/blocks/VolumeBlocks.js:494 +msgid "set drum volume" +msgstr "ドラムの おんりょうを せってい" -#: js/musicutils.js:696 -#.TRANS: https://en.wikipedia.org/wiki/Hirajoshi_scale NOTE: There are three different versions of this scale -msgid "hirajoshi" -msgstr "ひらじょうし" +#: js/blocks/VolumeBlocks.js:530 +msgid "The Set synth volume block will change the volume of a particular synth," +msgstr "

がっきの おんりょうを せっていブロック


ギター、ヴァイオリン、スネアドラムなどの がっきの おんりょうを せってい する。" -#: js/musicutils.js:697 -msgid "Japan" -msgstr "にほん" +#: js/blocks/VolumeBlocks.js:532 +msgid "eg guitar violin snare drum etc." +msgstr "

デフォルトは おんりょう 50。 " -#: js/musicutils.js:699 -#.TRANS: https://en.wikipedia.org/wiki/In_scale and https://en.wikipedia.org/wiki/Sakura_Sakura -msgid "in" -msgstr "いんおんかい" +#: js/blocks/VolumeBlocks.js:534 +msgid "The default volume is 50." +msgstr "
" -#: js/musicutils.js:701 -#.TRANS: https://en.wikipedia.org/wiki/Miny%C5%8D_scale -msgid "minyo" -msgstr "みんよ おんかい" +#: js/blocks/VolumeBlocks.js:536 +msgid "The range is 0 for silence to 100 for full volume." +msgstr "0から 100までの すうちを せってい できる。 " -#: js/musicutils.js:703 -#.TRANS: Italian mathematician -msgid "fibonacci" -msgstr "フィボナッチ おんかい" +#: js/blocks/VolumeBlocks.js:597 +msgid "set panning" +msgstr "ステレオをせってい" -#: js/musicutils.js:708 -#: js/musicutils.js:1106 -#.TRANS: lowpass filter -msgid "lowpass" -msgstr "ローパス・フィルター" +#: js/blocks/VolumeBlocks.js:603 +msgid "The Set Panning block sets the panning for all synthesizers." +msgstr "" -#: js/musicutils.js:710 -#: js/musicutils.js:1107 -#.TRANS: bandpass filter -msgid "bandpass" -msgstr "バンドパス・フィルター" +#: js/blocks/VolumeBlocks.js:625 +msgid "Warning: Sound is coming out from only the left or right side." +msgstr "ワーニング:おとはみぎかひだりだけのスピーカーからでている" -#: js/musicutils.js:712 -#: js/musicutils.js:1108 -#.TRANS: high-shelf filter -msgid "highshelf" -msgstr "ハイシェルフ・フィルター" +#: js/blocks/VolumeBlocks.js:647 +#: js/blocks/VolumeBlocks.js:695 +msgid "set master volume" +msgstr "ぜんたいのおんりょうを せってい" -#: js/musicutils.js:714 -#: js/musicutils.js:1109 -#.TRANS: low-shelf filter -msgid "lowshelf" -msgstr "ローシェルフ・フィルター" +#: js/blocks/VolumeBlocks.js:653 +msgid "The Set master volume block sets the volume for all synthesizers." +msgstr "

ぜんたいのおんりょうを せっていブロック


ぜんたいの おんりょうを せっていする。" -#: js/musicutils.js:716 -#: js/musicutils.js:1110 -#.TRANS: notch-shelf filter -msgid "notch" -msgstr "ノッチ・フィルター" +#: js/blocks/VolumeBlocks.js:784 +msgid "The Set relative volume block changes the volume of the contained notes." +msgstr "" -#: js/musicutils.js:718 -#: js/musicutils.js:1111 -#.TRANS: all-pass filter -msgid "allpass" -msgstr "オールパスフィルター" +#: js/blocks/VolumeBlocks.js:791 +msgid "set relative volume" +msgstr "あいたいおんりょうを せってい" -#: js/musicutils.js:720 -#: js/musicutils.js:1112 -#.TRANS: peaking filter -msgid "peaking" -msgstr "ピーク・フィルタ" +#: js/blocks/VolumeBlocks.js:857 +msgid "decrescendo" +msgstr "デクレシェンド" -#: js/musicutils.js:731 -#: js/synthutils.js:58 -#.TRANS: musical instrument -msgid "violin" -msgstr "バイオリン" +#: js/blocks/VolumeBlocks.js:921 +msgid "crescendo" +msgstr "クレシェンド" -#: js/musicutils.js:732 -#: js/synthutils.js:60 -#.TRANS: viola musical instrument -msgid "viola" -msgstr "ビオラ" +#: js/blocks/WidgetBlocks.js:81 +#.TRANS: sound envelope (ADSR) +msgid "envelope" +msgstr "エンベロープ" -#: js/musicutils.js:733 -#: js/synthutils.js:98 -#.TRANS: xylophone musical instrument -msgid "xylophone" -msgstr "もっきん" +#: js/blocks/WidgetBlocks.js:89 +#.TRANS: Attack time is the time taken for initial run-up of level from nil to peak, beginning when the key is first pressed. +msgid "attack" +msgstr "アタック" -#: js/musicutils.js:734 -#: js/synthutils.js:120 -#.TRANS: vibraphone musical instrument -msgid "vibraphone" -msgstr "てっきん" +#: js/blocks/WidgetBlocks.js:91 +#.TRANS: Decay time is the time taken for the subsequent run down from the attack level to the designated sustain level. +msgid "decay" +msgstr "ディケイ" + +#: js/blocks/WidgetBlocks.js:93 +#.TRANS: Sustain level is the level during the main sequence of the sound's duration, until the key is released. +msgid "sustain" +msgstr "サステイン" -#: js/musicutils.js:735 -#: js/synthutils.js:62 -#.TRANS: musical instrument -msgid "cello" -msgstr "チェロ" +#: js/blocks/WidgetBlocks.js:95 +#.TRANS: Release time is the time taken for the level to decay from the sustain level to zero after the key is released. +msgid "release" +msgstr "リリース" -#: js/musicutils.js:737 -#: js/synthutils.js:66 -#.TRANS: viola musical instrument -msgid "double bass" -msgstr "ダブルベース" +#: js/blocks/WidgetBlocks.js:113 +msgid "Attack value should be from 0 to 100." +msgstr "アタック あたいには 0 いじょう 100いかの すうじを いれて ください。" -#: js/musicutils.js:738 -#: js/synthutils.js:68 -#: js/rhythmruler.js:2119 -#.TRANS: musical instrument -msgid "guitar" -msgstr "ギター" +#: js/blocks/WidgetBlocks.js:116 +msgid "Decay value should be from 0 to 100." +msgstr "げんすい あたいには 0 いじょう 100いかの すうじを いれて ください。" -#: js/musicutils.js:739 -#: js/synthutils.js:70 -#.TRANS: musical instrument -msgid "acoustic guitar" -msgstr "アコースティック" +#: js/blocks/WidgetBlocks.js:119 +msgid "Sustain value should be from 0 to 100." +msgstr "サステイン あたいには 0 いじょう 100いかの すうじを いれて ください。" -#: js/musicutils.js:740 -#: js/synthutils.js:72 -#.TRANS: musical instrument -msgid "flute" -msgstr "フルート" +#: js/blocks/WidgetBlocks.js:122 +msgid "Release value should be from 0-100." +msgstr "リリース あたいには 0 いじょう100いかの すうじを いれて ください。" -#: js/musicutils.js:741 -#: js/synthutils.js:74 -#.TRANS: musical instrument -msgid "clarinet" -msgstr "クラリネット" +#: js/blocks/WidgetBlocks.js:140 +msgid "You are adding multiple envelope blocks." +msgstr "封筒ブロックを複数追加しています。" -#: js/musicutils.js:742 -#: js/synthutils.js:76 -#.TRANS: musical instrument -msgid "saxophone" -msgstr "サクソフォン" +#: js/blocks/WidgetBlocks.js:171 +#.TRANS: a filter removes some unwanted components from a signal +msgid "filter" +msgstr "フィルター" -#: js/musicutils.js:743 -#: js/synthutils.js:78 -#.TRANS: musical instrument -msgid "tuba" -msgstr "チューバ" +#: js/blocks/WidgetBlocks.js:181 +#: js/widgets/timbre.js:1818 +#.TRANS: rolloff is the steepness of a change in frequency. +msgid "rolloff" +msgstr "ロールオフ" -#: js/musicutils.js:744 -#: js/synthutils.js:80 -#.TRANS: musical instrument -msgid "trumpet" -msgstr "トランペット" +#: js/blocks/WidgetBlocks.js:213 +#.TRANS: rolloff is the steepness of a change in frequency. +msgid "Rolloff value should be either -12, -24, -48, or -96 decibels/octave." +msgstr "ロールオフ あたいは -12, -24, -48, -98 デシベル / オクターヴ である ひつようが あります。" -#: js/musicutils.js:745 -#: js/synthutils.js:82 -#.TRANS: musical instrument -msgid "oboe" -msgstr "オーボエ" +#: js/blocks/WidgetBlocks.js:252 +msgid "The Temperament tool is used to define custom tuning." +msgstr "" -#: js/musicutils.js:746 -#: js/synthutils.js:84 -#.TRANS: musical instrument -msgid "trombone" -msgstr "トロンボーン" +#: js/blocks/WidgetBlocks.js:332 +#: js/blocks/WidgetBlocks.js:1573 +#: js/widgets/sampler.js:547 +msgid "Upload a sample and adjust its pitch center." +msgstr "ねいろサンプルを アップロードして、 おとの たかさを あわせる" -#: js/musicutils.js:747 -#: js/synthutils.js:100 -#.TRANS: polytone synthesizer -msgid "electronic synth" -msgstr "シンセサイザー" +#: js/blocks/WidgetBlocks.js:339 +#.TRANS: the speed at music is should be played. +msgid "sampler" +msgstr "サンプラー" -#: js/musicutils.js:748 -#: js/synthutils.js:102 -#.TRANS: simple monotone synthesizer -msgid "simple 1" -msgstr "シンプル1" +#: js/blocks/WidgetBlocks.js:517 +msgid "The Meter block opens a tool to select strong beats for the meter." +msgstr "

ひょうしブロック


テーブルの すうじを クリックして、 つよい はくの いちを きめる。
★ひょうし とは
はくが いくつか まとまった もの。
★はく とは
くりかえされる リズムの こと。" -#: js/musicutils.js:749 -msgid "simple 2" -msgstr "シンプル2" +#: js/blocks/WidgetBlocks.js:573 +msgid "The oscilloscope block opens a tool to visualize waveforms." +msgstr "" -#: js/musicutils.js:750 -msgid "simple 3" -msgstr "シンプル3" +#: js/blocks/WidgetBlocks.js:578 +msgid "oscilloscope" +msgstr "オシロスコープ" -#: js/musicutils.js:751 -msgid "simple 4" -msgstr "シンプル4" +#: js/blocks/WidgetBlocks.js:645 +msgid "The Custom mode block opens a tool to explore musical mode (the spacing of the notes in a scale)." +msgstr "

モード(おんかい)ブロック


いろいろな ちょうを さがす ツールを ひょうじする。おんかいは、 おとと おとの かんかくを きめながら さがすことが できる。

★おんかいとは
じゅんばんに ならんだ おとの まとまり。たとえば、「ド」 を はじまりのおと に したときの 「ドレミファソラシド」、 「ソ」 を はじまりのおと に したときの 「ソラシドレミ(♯ファ)ソ」 の こと。" -#: js/musicutils.js:753 -#: js/synthutils.js:49 -#.TRANS: brown noise synthesizer -msgid "brown noise" -msgstr "ブラウンノイズ" +#: js/blocks/WidgetBlocks.js:651 +#.TRANS: musical mode is the pattern of half-steps in an octave, e.g., Major or Minor modes +msgid "custom mode" +msgstr "おんかい" -#: js/musicutils.js:754 -#: js/synthutils.js:51 -#.TRANS: pink noise synthesizer -msgid "pink noise" -msgstr "ピンクノイズ" +#: js/blocks/WidgetBlocks.js:700 +msgid "The Tempo block opens a metronome to visualize the beat." +msgstr "

メトロノームブロック


メトロノームを ひょうじする。 ボタンを おすと、 メトロノームの はやさを かえられる。 テーブルには、 1ぷんあたりの はくのかずが ひょうじされる。

★はくとは
くりかえされる リズムのこと。" -#: js/musicutils.js:756 -#: js/synthutils.js:127 -#: js/rhythmruler.js:1670 -#: js/rhythmruler.js:1928 -#.TRANS: musical instrument -msgid "snare drum" -msgstr "スネアドラム" +#: js/blocks/WidgetBlocks.js:762 +msgid "The Arpeggio Widget is used to compose chord sequences." +msgstr "「アルペジオ」ウィジェットは コードしんこう をつくる ためです。" -#: js/musicutils.js:757 -#: js/synthutils.js:129 -#.TRANS: musical instrument -msgid "kick drum" -msgstr "キックドラム" +#: js/blocks/WidgetBlocks.js:837 +msgid "The Pitch drum matrix is used to map pitches to drum sounds." +msgstr "" -#: js/musicutils.js:758 -#: js/synthutils.js:131 -#.TRANS: musical instrument -msgid "tom tom" -msgstr "タムタム" +#: js/blocks/WidgetBlocks.js:842 +#.TRANS: makes a mapping between pitches and drum sounds +msgid "pitch-drum mapper" +msgstr "音高-ドラム・マッパー" -#: js/musicutils.js:759 -#: js/synthutils.js:133 -#.TRANS: musical instrument -msgid "floor tom" -msgstr "フロアタム" +#: js/blocks/WidgetBlocks.js:891 +msgid "You must have at least one pitch block and one drum block in the matrix." +msgstr "フレーズメーカーブロックには、 おとの たかさブロックと ドラムブロックを さいてい 1つずつ いれて ください。" -#: js/musicutils.js:760 -#: js/synthutils.js:135 -#.TRANS: musical instrument -msgid "bass drum" -msgstr "バスドラム" +#: js/blocks/WidgetBlocks.js:920 +msgid "The Pitch slider tool to is used to generate pitches at selected frequencies." +msgstr "

ヘルツスライダーブロック


スライダーを じょうげに うごかすことで、 ちがう しゅうはすう(ヘルツのすうち) の おとを きくことが できる。 つくった おとを データに することが できる。また、 ヘルツの しょきせっていち は じゆうに かえられる。
★ヘルツとは
おとの たかさを あらわす しゅうはすう。
★しゅうはすうとは
おとが 1びょうかん に なんかい しんどうするかを あらわす すうち。 しゅうはすうが たかい (すうちが おおきい) ほど、 おとが たかくなる。" -#: js/musicutils.js:761 -#: js/synthutils.js:137 -#.TRANS: a drum made from an inverted cup -msgid "cup drum" -msgstr "カップドラム" +#: js/blocks/WidgetBlocks.js:925 +#.TRANS: widget to generate pitches using a slider +msgid "pitch slider" +msgstr "ヘルツスライダー" -#: js/musicutils.js:762 -#: js/synthutils.js:139 -#.TRANS: musical instrument -msgid "darbuka drum" -msgstr "ダブカドラム" +#: js/blocks/WidgetBlocks.js:977 +msgid "chromatic keyboard" +msgstr "クロマティック キーボード" -#: js/musicutils.js:763 -#: js/synthutils.js:143 -#.TRANS: musical instrument -msgid "hi hat" -msgstr "ハイハット" +#: js/blocks/WidgetBlocks.js:1011 +#: js/blocks/WidgetBlocks.js:1077 +#.TRANS: widget to generate pitches using a slider +msgid "music keyboard" +msgstr "キーボード" -#: js/musicutils.js:764 -#: js/synthutils.js:145 -#.TRANS: a small metal bell -msgid "ride bell" -msgstr "ライドベル" +#: js/blocks/WidgetBlocks.js:1062 +#: js/blocks/WidgetBlocks.js:1069 +msgid "The Music keyboard block opens a piano keyboard that can be used to create notes." +msgstr "

キーボードブロック


ピアノの キーボードを ひょうじする。 つくったおとを データに することが できる。" -#: js/musicutils.js:765 -#: js/synthutils.js:147 -#.TRANS: musical instrument -msgid "cow bell" -msgstr "カウベル" +#: js/blocks/WidgetBlocks.js:1128 +msgid "The Pitch staircase tool to is used to generate pitches from a given ratio." +msgstr "" -#: js/musicutils.js:766 -msgid "japanese drum" -msgstr "たいこ" +#: js/blocks/WidgetBlocks.js:1135 +#.TRANS: generate a progressive sequence of pitches +msgid "pitch staircase" +msgstr "音高の数列を作る" -#: js/musicutils.js:767 -#: js/synthutils.js:153 -#.TRANS: musical instrument -msgid "japanese bell" -msgstr "しょう" +#: js/blocks/WidgetBlocks.js:1222 +msgid "The Rhythm Maker block opens a tool to create drum machines." +msgstr "

リズムメーカー ブロック


おとの ながさで ぶんかつして、 リズムを つくる テーブルを ひょうじする。 つくった リズムを データに することが できる。" -#: js/musicutils.js:768 -#: js/synthutils.js:149 -#.TRANS: musical instrument -msgid "triangle bell" -msgstr "トライアングル" +#: js/blocks/WidgetBlocks.js:1291 +msgid "G major scale" +msgstr "Gメジャー" -#: js/musicutils.js:769 -#: js/synthutils.js:151 -#.TRANS: musical instrument -msgid "finger cymbals" -msgstr "フィンガー シンバル" +#: js/blocks/WidgetBlocks.js:1326 +msgid "C major scale" +msgstr "Cメジャー" -#: js/musicutils.js:770 -#: js/synthutils.js:155 -#.TRANS: a musically tuned set of bells -msgid "chime" -msgstr "チャイム" +#: js/blocks/WidgetBlocks.js:1366 +msgid "The Phrase Maker block opens a tool to create musical phrases." +msgstr "

フレーズメーカーブロック


フレーズを つくるための テーブルを ひょうじする。 つくった フレーズを データに することが できる。

" -#: js/musicutils.js:771 -#: js/synthutils.js:157 -#.TRANS: a musical instrument -msgid "gong" -msgstr "ドラ" +#: js/blocks/WidgetBlocks.js:1373 +#.TRANS: assigns pitch to a sequence of beats to generate a melody +msgid "phrase maker" +msgstr "フレーズメーカー" -#: js/musicutils.js:772 -#: js/synthutils.js:159 -#.TRANS: sound effect -msgid "clang" -msgstr "カチャカチャ" +#: js/blocks/WidgetBlocks.js:1444 +msgid "You must have at least one pitch block and one rhythm block in the matrix." +msgstr "フレーズメーカーには、 おとのたかさ ブロックと おんぷブロックを くみあわせて ください。" -#: js/musicutils.js:773 -#: js/synthutils.js:161 -#.TRANS: sound effect -msgid "crash" -msgstr "クラッシュ" +#: js/blocks/WidgetBlocks.js:1503 +msgid "The Status block opens a tool for inspecting the status of Music Blocks as it is running." +msgstr "

じっこうじょうきょうブロック


ブロックのじっこうじょうきょうをけんさくするテーブルをひょうじする。
" -#: js/musicutils.js:774 -#: js/synthutils.js:163 -#.TRANS: sound effect -msgid "bottle" -msgstr "あきびん" +#: js/blocks/WidgetBlocks.js:1580 +#.TRANS: AI-generated music +msgid "aimusic" +msgstr "" -#: js/musicutils.js:775 -#: js/synthutils.js:165 -#.TRANS: sound effect -msgid "clap" -msgstr "てびょうし" +#: js/turtleactions/MeterActions.js:101 +#: js/turtleactions/MeterActions.js:139 +msgid "beats per minute must be greater than" +msgstr "" -#: js/musicutils.js:776 -#: js/synthutils.js:167 -#.TRANS: sound effect -msgid "slap" -msgstr "ピシャリ" +#: js/turtleactions/MeterActions.js:111 +#: js/turtleactions/MeterActions.js:149 +msgid "maximum" +msgstr "さいだいげん" -#: js/musicutils.js:777 -#: js/synthutils.js:169 -#.TRANS: sound effect -msgid "splash" -msgstr "しぶき" +#: js/turtleactions/MeterActions.js:117 +#: js/turtleactions/MeterActions.js:155 +msgid "beats per minute is" +msgstr "" -#: js/musicutils.js:778 -#: js/synthutils.js:171 -#.TRANS: sound effect -msgid "bubbles" -msgstr "あわ" +#: js/turtleactions/DictActions.js:75 +#: js/turtleactions/DictActions.js:142 +#: js/turtleactions/DictActions.js:172 +msgid "font" +msgstr "フォント" -#: js/musicutils.js:779 -#: js/synthutils.js:173 -#.TRANS: sound effect -msgid "raindrop" -msgstr "あめのしずく" +#: js/turtleactions/DictActions.js:255 +msgid "Dictionary with this name does not exist" +msgstr "" -#: js/musicutils.js:780 -#: js/synthutils.js:175 -#.TRANS: animal sound effect -msgid "cat" -msgstr "ねこ" +#: js/turtleactions/DictActions.js:259 +msgid "Key with this name does not exist in " +msgstr "" -#: js/musicutils.js:781 -#: js/synthutils.js:177 -#.TRANS: animal sound effect -msgid "cricket" -msgstr "こおろぎ" +#: js/turtleactions/DrumActions.js:227 +msgid "Noise Block: Did you mean to use a Note block?" +msgstr "ノイズ・ブロック:おんぷ ブロックと いっしょに つかいますか?" -#: js/musicutils.js:782 -#: js/synthutils.js:179 -#.TRANS: animal sound effect -msgid "dog" -msgstr "いぬ" +#: js/turtleactions/IntervalsActions.js:113 +msgid "one" +msgstr "" -#: js/musicutils.js:784 -#: js/synthutils.js:86 -#.TRANS: musical instrument -msgid "banjo" -msgstr "バンジョー" +#: js/turtleactions/IntervalsActions.js:113 +msgid "two" +msgstr "" -#: js/musicutils.js:785 -#: js/synthutils.js:88 -#.TRANS: musical instrument -msgid "koto" -msgstr "こと" +#: js/turtleactions/IntervalsActions.js:113 +msgid "three" +msgstr "" -#: js/musicutils.js:786 -#: js/synthutils.js:90 -#.TRANS: musical instrument -msgid "dulcimer" -msgstr "ダルシマー" +#: js/turtleactions/IntervalsActions.js:113 +msgid "four" +msgstr "" -#: js/musicutils.js:787 -#: js/synthutils.js:92 -#.TRANS: musical instrument -msgid "electric guitar" -msgstr "エレクトリック" +#: js/turtleactions/IntervalsActions.js:113 +msgid "five" +msgstr "" -#: js/musicutils.js:788 -#: js/synthutils.js:94 -#.TRANS: musical instrument -msgid "bassoon" -msgstr "バスーン" +#: js/turtleactions/IntervalsActions.js:113 +msgid "six" +msgstr "" -#: js/musicutils.js:789 -#: js/synthutils.js:96 -#.TRANS: musical instrument -msgid "celeste" -msgstr "セレスタ" +#: js/turtleactions/IntervalsActions.js:113 +msgid "seven" +msgstr "" -#: js/musicutils.js:791 -#: js/musicutils.js:1123 -#: js/musicutils.js:1131 -#: js/temperament.js:650 -#.TRANS: musical temperament -msgid "equal" -msgstr "へいきん おんりつ" +#: js/turtleactions/IntervalsActions.js:113 +msgid "eight" +msgstr "" -#: js/musicutils.js:793 -#: js/musicutils.js:1125 -#: js/musicutils.js:1133 -#.TRANS: musical temperament -msgid "Pythagorean" -msgstr "ピタゴラス おんりつ " +#: js/turtleactions/IntervalsActions.js:113 +msgid "nine" +msgstr "" -#: js/musicutils.js:795 -#: js/musicutils.js:1124 -#: js/musicutils.js:1132 -#.TRANS: musical temperament -msgid "just intonation" -msgstr "じゅんせいりつ" +#: js/turtleactions/IntervalsActions.js:119 +msgid "a" +msgstr "" -#: js/musicutils.js:797 -#: js/musicutils.js:1126 -#: js/musicutils.js:1127 -#: js/musicutils.js:1134 -#: js/musicutils.js:1135 -#.TRANS: musical temperament -msgid "meantone" -msgstr "ちゅうぜん おんりつ" +#: js/turtleactions/IntervalsActions.js:120 +msgid "below" +msgstr "" -#: js/musicutils.js:814 -msgid "major 7th" -msgstr "ちょうしちのわおん(メイジャー・セブンス)" +#: js/turtleactions/IntervalsActions.js:124 +msgid "above" +msgstr "" -#: js/musicutils.js:815 -msgid "minor 7th" -msgstr "たんしちのわおん(マイナー・セブンス)" +#: js/turtleactions/IntervalsActions.js:131 +msgid "plus" +msgstr "" -#: js/musicutils.js:816 -msgid "dominant 7th" -msgstr "ぞくしちのわおん(ドミナント・セブンス)" +#: js/turtleactions/IntervalsActions.js:139 +msgid " below" +msgstr "" -#: js/musicutils.js:817 -msgid "minor-major 7th" -msgstr "たんさんちょうしちのわおん(マイナー・メ イジャー・セブンス)" +#: js/turtleactions/IntervalsActions.js:257 +msgid "Adding missing pitch number 0." +msgstr "ピッチすうち「0」をくわえる" -#: js/musicutils.js:818 -msgid "fully-diminished 7th" -msgstr "げんしちのわおん(ディミニッシュト・セブンス)" +#: js/turtleactions/IntervalsActions.js:265 +msgid "Ignoring pitch numbers less than zero or greater than eleven." +msgstr "ピッチすうちの数のうち、0未満あるいは11よりおおきい数は無視します。" -#: js/musicutils.js:819 -msgid "half-diminished 7th" -msgstr "げんごたんしちのわおん(ハーフ・ディミニッシュト)" +#: js/turtleactions/IntervalsActions.js:271 +msgid "Ignoring duplicate pitch numbers." +msgstr "ちょうふく している ピッチすうちは むし します" -#: js/musicutils.js:4379 -#: js/musicutils.js:4416 -msgid "current" -msgstr "げんざいの" +#: js/turtleactions/ToneActions.js:134 +msgid "Vibrato intensity must be between 1 and 100." +msgstr "ビブラートの おおきさは、 1から 100までの はんいで せってい して ください。" -#: js/musicutils.js:4382 -#: js/musicutils.js:4407 -msgid "next" -msgstr "このつぎの" +#: js/turtleactions/ToneActions.js:139 +msgid "Vibrato rate must be greater than 0." +msgstr "ビブラートの はやさは、 0より おおきい あたいを せってい して ください。" -#: js/musicutils.js:4385 -#: js/musicutils.js:4412 -msgid "previous" -msgstr "このまえの" +#: js/turtleactions/ToneActions.js:192 +#: js/turtleactions/ToneActions.js:265 +#.TRANS: Depth is the intesity of the tremolo or chorus effect. +msgid "Depth is out of range." +msgstr "(エフェクタの)ふかさの すうじが へんいきがい です。" -#: js/synthutils.js:104 -#.TRANS: simple monotone synthesizer -msgid "simple-2" -msgstr "シンプル・シンセ2" +#: js/turtleactions/ToneActions.js:301 +msgid "Distortion must be from 0 to 100." +msgstr "ディストーションは、 0から 100までの はんいで せってい して ください。" -#: js/synthutils.js:106 -#.TRANS: simple monotone synthesizer -msgid "simple-3" -msgstr "シンプル・シンセ3" +#: js/turtleactions/ToneActions.js:332 +#.TRANS: partials components in a harmonic series +msgid "Partial must be greater than or equal to 0." +msgstr "ばいおんが 0いじょう である ひつようが あります。" -#: js/synthutils.js:108 -#.TRANS: simple monotone synthesizer -msgid "simple-4" -msgstr "シンプル・シンセ4" +#: js/turtleactions/ToneActions.js:378 +#: js/turtleactions/ToneActions.js:417 +#: js/turtleactions/ToneActions.js:456 +#: js/widgets/timbre.js:782 +msgid "Unable to use synth due to existing oscillator" +msgstr "オシレーターが あるため、シンセが つかえません。" -#: js/synthutils.js:141 -#.TRANS: musical instrument -msgid "taiko" -msgstr "たいこ" +#: js/turtleactions/ToneActions.js:388 +#: js/turtleactions/ToneActions.js:427 +msgid "The input cannot be negative." +msgstr "マイナスの すうちを いれることは できません。" -#: js/modewidget.js:86 -#: js/modewidget.js:88 -#: js/modewidget.js:642 -#: js/modewidget.js:644 -#: js/modewidget.js:712 -#: js/modewidget.js:714 -#: js/temperament.js:2078 -#: js/rhythmruler.js:189 -#: js/rhythmruler.js:1410 -#: js/rhythmruler.js:1412 -#: js/rhythmruler.js:1435 -#: js/rhythmruler.js:1437 -#: js/meterwidget.js:89 -#: js/meterwidget.js:91 +#: js/widgets/modewidget.js:86 +#: js/widgets/modewidget.js:88 +#: js/widgets/modewidget.js:642 +#: js/widgets/modewidget.js:644 +#: js/widgets/modewidget.js:712 +#: js/widgets/modewidget.js:714 +#: js/widgets/meterwidget.js:194 +#: js/widgets/meterwidget.js:196 +#: js/widgets/temperament.js:2236 +#: js/widgets/rhythmruler.js:457 +#: js/widgets/rhythmruler.js:1790 +#: js/widgets/rhythmruler.js:1792 +#: js/widgets/rhythmruler.js:1816 +#: js/widgets/rhythmruler.js:1818 msgid "Play all" msgstr "" -#: js/modewidget.js:115 -#: js/pitchstaircase.js:641 -#: js/phrasemaker.js:339 -#: js/pitchdrummatrix.js:94 -#: js/pitchslider.js:125 -#: js/temperament.js:2083 -#: js/musickeyboard.js:530 -#: js/timbre.js:756 -#: js/meterwidget.js:124 -#: js/arpeggio.js:103 +#: js/widgets/modewidget.js:115 +#: js/widgets/meterwidget.js:229 +#: js/widgets/pitchdrummatrix.js:166 +#: js/widgets/pitchslider.js:125 +#: js/widgets/pitchstaircase.js:641 +#: js/widgets/temperament.js:2244 +#: js/widgets/timbre.js:756 +#: js/widgets/arpeggio.js:103 +#: js/widgets/musickeyboard.js:688 +#: js/widgets/phrasemaker.js:550 msgid "Save" msgstr "ほぞん する" -#: js/modewidget.js:121 -#: js/pitchstaircase.js:686 -#: js/phrasemaker.js:356 -#: js/pitchdrummatrix.js:109 -#: js/musickeyboard.js:534 -#: js/rhythmruler.js:269 -#: js/arpeggio.js:118 +#: js/widgets/modewidget.js:121 +#: js/widgets/pitchdrummatrix.js:181 +#: js/widgets/pitchstaircase.js:686 +#: js/widgets/arpeggio.js:118 +#: js/widgets/musickeyboard.js:696 +#: js/widgets/phrasemaker.js:567 +#: js/widgets/rhythmruler.js:601 #.TRANS: clear all subdivisions from the ruler. msgid "Clear" msgstr "しょうきょ" -#: js/modewidget.js:127 +#: js/widgets/modewidget.js:127 msgid "Rotate counter clockwise" msgstr "" -#: js/modewidget.js:133 +#: js/widgets/modewidget.js:133 msgid "Rotate clockwise" msgstr "" -#: js/modewidget.js:139 +#: js/widgets/modewidget.js:139 msgid "Invert" msgstr "" -#: js/modewidget.js:145 -#: js/pitchstaircase.js:678 -#: js/rhythmruler.js:258 -#: js/timbre.js:963 +#: js/widgets/modewidget.js:145 +#: js/widgets/pitchstaircase.js:678 +#: js/widgets/timbre.js:963 +#: js/widgets/rhythmruler.js:578 msgid "Undo" msgstr "1つもどす" -#: js/modewidget.js:163 +#: js/widgets/modewidget.js:163 #.TRANS: A circle of notes represents the musical mode. msgid "Click in the circle to select notes for the mode." msgstr "クリックでおとのたかさを選んでちょうをせっていできます。" -#: js/modewidget.js:1017 -#: js/pitchstaircase.js:580 -#: js/phrasemaker.js:4855 -#: js/temperament.js:1754 -#: js/rhythmruler.js:1865 -#: js/rhythmruler.js:2081 -#: js/tempo.js:414 +#: js/widgets/modewidget.js:1017 +#: js/widgets/pitchstaircase.js:580 +#: js/widgets/temperament.js:1929 +#: js/widgets/tempo.js:414 +#: js/widgets/phrasemaker.js:5356 +#: js/widgets/rhythmruler.js:2254 +#: js/widgets/rhythmruler.js:2472 msgid "New action block generated!" msgstr "あたらしいアクションを つくりました!" -#: js/oscilloscope.js:79 +#: js/widgets/meterwidget.js:275 +msgid "Reset" +msgstr "" + +#: js/widgets/meterwidget.js:301 +msgid "Click in the circle to select strong beats for the meter." +msgstr "クリックで つよい はくの いちを えらべます。" + +#: js/widgets/oscilloscope.js:79 msgid "Zoom In" msgstr "" -#: js/oscilloscope.js:88 +#: js/widgets/oscilloscope.js:88 msgid "Zoom Out" msgstr "" -#: js/pitchstaircase.js:624 -msgid "Play chord" -msgstr "わおんを さいせい する" - -#: js/pitchstaircase.js:632 -msgid "Play scale" -msgstr "ちょうを さいせい する" - -#: js/pitchstaircase.js:696 -msgid "Click on a note to create a new step." -msgstr "ピッチをクリックするとあたらしい段が作れますよ。" - -#: js/phrasemaker.js:363 -msgid "Export" -msgstr "エクスポート" - -#: js/phrasemaker.js:370 -msgid "Sort" -msgstr "せいり する" - -#: js/phrasemaker.js:373 -#: js/musickeyboard.js:559 -msgid "Add note" -msgstr "おんぷをた" - -#: js/phrasemaker.js:764 -msgid "Click on the table to add notes." -msgstr "ます目をクリックするとメロディやリズムを作れます。" - -#: js/phrasemaker.js:2414 -#: js/phrasemaker.js:2543 -msgid "tuplet value" -msgstr "何れんぷ価" - -#: js/pitchdrummatrix.js:270 -#: js/pitchdrummatrix.js:639 +#: js/widgets/pitchdrummatrix.js:356 +#: js/widgets/pitchdrummatrix.js:752 msgid "Click in the grid to map notes to drums." msgstr "グラフに クリックして おんぷを どちらの ドラムに かえるか きめる ことが できます。" -#: js/pitchslider.js:103 +#: js/widgets/pitchslider.js:103 msgid "Move up" msgstr "うえに うごかす" -#: js/pitchslider.js:114 +#: js/widgets/pitchslider.js:114 msgid "Move down" msgstr "したに うごかす" -#: js/pitchslider.js:136 +#: js/widgets/pitchslider.js:136 msgid "Click on the slider to create a note block." msgstr "スライダーでおとのたかさを変えます。" -#: js/temperament.js:215 +#: js/widgets/pitchstaircase.js:624 +msgid "Play chord" +msgstr "わおんを さいせい する" + +#: js/widgets/pitchstaircase.js:632 +msgid "Play scale" +msgstr "ちょうを さいせい する" + +#: js/widgets/pitchstaircase.js:696 +msgid "Click on a note to create a new step." +msgstr "ピッチをクリックするとあたらしい段が作れますよ。" + +#: js/widgets/temperament.js:321 msgid "back to 2:1 octave space" msgstr "2:1 オクターヴ・スペースに もどる" -#: js/temperament.js:323 +#: js/widgets/temperament.js:447 msgid "edit" msgstr "" -#: js/temperament.js:330 -#: js/temperament.js:332 -#: js/temperament.js:1336 -#: js/temperament.js:1338 +#: js/widgets/temperament.js:454 +#: js/widgets/temperament.js:456 +#: js/widgets/temperament.js:1493 +#: js/widgets/temperament.js:1495 msgid "close" msgstr "しゅうりょう" -#: js/temperament.js:423 -#: js/temperament.js:736 -#: js/temperament.js:743 -#: js/temperament.js:845 -#: js/temperament.js:935 -#: js/temperament.js:942 -#: js/temperament.js:1015 -#: js/temperament.js:1284 -#: js/temperament.js:1354 -#: js/temperament.js:1430 +#: js/widgets/temperament.js:552 +#: js/widgets/temperament.js:877 +#: js/widgets/temperament.js:884 +#: js/widgets/temperament.js:986 +#: js/widgets/temperament.js:1080 +#: js/widgets/temperament.js:1087 +#: js/widgets/temperament.js:1160 +#: js/widgets/temperament.js:1433 +#: js/widgets/temperament.js:1511 +#: js/widgets/temperament.js:1596 msgid "done" msgstr "おわった" -#: js/temperament.js:477 -#: js/temperament.js:482 -#: js/temperament.js:918 +#: js/widgets/temperament.js:610 +#: js/widgets/temperament.js:615 +#: js/widgets/temperament.js:1063 msgid "ratio" msgstr "ひりつ" -#: js/temperament.js:483 +#: js/widgets/temperament.js:616 msgid "interval" msgstr "" -#: js/temperament.js:611 +#: js/widgets/temperament.js:744 msgid "non scalar" msgstr "おんかい ないではない" -#: js/temperament.js:650 +#: js/widgets/temperament.js:787 msgid "ratios" msgstr "ひりつ" -#: js/temperament.js:650 +#: js/widgets/temperament.js:787 msgid "arbitrary" msgstr "じゆういし" -#: js/temperament.js:719 +#: js/widgets/temperament.js:860 msgid "number of divisions" msgstr "ぶんぱいの かず" -#: js/temperament.js:741 -#: js/temperament.js:858 -#: js/temperament.js:940 -#: js/temperament.js:1033 +#: js/widgets/temperament.js:882 +#: js/widgets/temperament.js:999 +#: js/widgets/temperament.js:1085 +#: js/widgets/temperament.js:1178 msgid "preview" msgstr "ためす" -#: js/temperament.js:788 +#: js/widgets/temperament.js:929 msgid "The Number of divisions is too large." msgstr "" -#: js/temperament.js:921 +#: js/widgets/temperament.js:1066 msgid "recursion" msgstr "はんぷく" -#: js/temperament.js:1450 +#: js/widgets/temperament.js:1616 msgid "The octave ratio has changed. This changes temperament significantly." msgstr "" -#: js/temperament.js:2087 +#: js/widgets/temperament.js:2248 msgid "Table" msgstr "グリッド" -#: js/temperament.js:2185 +#: js/widgets/temperament.js:2356 msgid "Add pitches" msgstr "" -#: js/musickeyboard.js:570 -msgid "Metronome" -msgstr "メトロノーム" - -#: js/musickeyboard.js:1296 -#: plugins/rodi.rtp:193 -msgid "duration" -msgstr "きかんのせってい" - -#: js/musickeyboard.js:2840 -msgid "New action blocks generated!" -msgstr "" - -#: js/musickeyboard.js:2841 -msgid "New action block generated" -msgstr "" - -#: js/musickeyboard.js:2984 -#: js/musickeyboard.js:2992 -msgid "MIDI device present." -msgstr "MIDIデバイスがみつかりました。" - -#: js/musickeyboard.js:2995 -msgid "No MIDI device found." -msgstr "MIDIデバイスがみつかりません。" - -#: js/musickeyboard.js:3000 -msgid "Failed to get MIDI access in browser." -msgstr "ブラウザはMIDIのアクセスができませんでした。" - -#: js/rhythmruler.js:202 -msgid "Save rhythms" -msgstr "リズムだけをほぞん" - -#: js/rhythmruler.js:222 -msgid "Save drum machine" -msgstr "ドラム として ほぞん" - -#: js/rhythmruler.js:263 -#.TRANS: user can tap out a rhythm by clicking on a ruler. -msgid "Tap a rhythm" -msgstr "リズムをタップする" - -#: js/rhythmruler.js:342 -#: js/rhythmruler.js:344 -#: js/rhythmruler.js:1481 -#: js/rhythmruler.js:1483 -#: js/sampler.js:110 -#: js/sampler.js:112 -#: js/tempo.js:78 -#: js/tempo.js:97 -#: js/tempo.js:99 +#: js/widgets/tempo.js:78 +#: js/widgets/tempo.js:97 +#: js/widgets/tempo.js:99 +#: js/widgets/aiwidget.js:134 +#: js/widgets/aiwidget.js:136 +#: js/widgets/rhythmruler.js:681 +#: js/widgets/rhythmruler.js:683 +#: js/widgets/rhythmruler.js:1864 +#: js/widgets/rhythmruler.js:1866 +#: js/widgets/sampler.js:180 +#: js/widgets/sampler.js:182 msgid "Pause" msgstr "いちじ ていし" -#: js/rhythmruler.js:478 -msgid "Click on the ruler to divide it." -msgstr "クリック すると リズムを わる ことが できます。" - -#: js/rhythmruler.js:603 -#: js/rhythmruler.js:605 -#: js/rhythmruler.js:804 -#: js/rhythmruler.js:806 -#: js/rhythmruler.js:1386 -#: js/rhythmruler.js:1388 -msgid "tap a rhythm" -msgstr "リズムを タップ する" - -#: js/rhythmruler.js:1084 -msgid "Maximum value of 256 has been exceeded." -msgstr "リズムメーカーの おとの ながさは、さいだい 256 です。" - -#: js/sampler.js:137 -msgid "Warning: Sample is bigger than 1MB." -msgstr "" - -#: js/sampler.js:142 -msgid "Upload failed: Sample is not a .wav file." -msgstr "" - -#: js/sampler.js:164 -msgid "A new sample block was generated." -msgstr "あたらしい 「ねいろサンプル」 ブロックが つくりました" - -#: js/sampler.js:255 -msgid "Upload sample" -msgstr "ねいろ サンプルを アップロード" - -#: js/sampler.js:306 -msgid "Save sample" -msgstr "ねいろ サンプルを ほぞん" - -#: js/sampler.js:697 -#.TRANS: The reference tone is a sound used for comparison. -msgid "reference tone" -msgstr "" - -#: js/tempo.js:113 +#: js/widgets/tempo.js:113 msgid "Save tempo" msgstr "テンポをほぞん" -#: js/tempo.js:144 +#: js/widgets/tempo.js:144 msgid "speed up" msgstr "はやくする" -#: js/tempo.js:150 +#: js/widgets/tempo.js:150 msgid "slow down" msgstr "おそく する" -#: js/tempo.js:194 +#: js/widgets/tempo.js:194 msgid "Adjust the tempo with the buttons." msgstr "ボタンで テンポが せってい できます。" -#: js/tempo.js:261 +#: js/widgets/tempo.js:261 msgid "Please enter a number between 30 and 1000" msgstr "" -#: js/tempo.js:268 -#: js/tempo.js:271 +#: js/widgets/tempo.js:268 +#: js/widgets/tempo.js:271 msgid "The beats per minute must be between 30 and 1000." msgstr "1ぷん あたりの はくの かずは、 30から 1000までの はんいで せってい して ください。" -#: js/tempo.js:287 +#: js/widgets/tempo.js:287 msgid "The beats per minute must be below 1000." msgstr "" -#: js/tempo.js:303 +#: js/widgets/tempo.js:303 msgid "The beats per minute must be above 30" msgstr "" -#: js/timbre.js:766 +#: js/widgets/timbre.js:766 msgid "Synthesizer" msgstr "シンセサイザー" -#: js/timbre.js:789 +#: js/widgets/timbre.js:789 msgid "Oscillator" msgstr "オシレータ―" -#: js/timbre.js:840 +#: js/widgets/timbre.js:840 msgid "Envelope" msgstr "エンベロープ" -#: js/timbre.js:886 -#: js/GlobalTag.js:50 +#: js/widgets/timbre.js:886 +#: planet/js/GlobalTag.js:50 #.TRANS: On the Planet, we use labels to tag projects. msgid "Effects" msgstr "こうかおん" -#: js/timbre.js:904 +#: js/widgets/timbre.js:904 msgid "Filter" msgstr "" -#: js/timbre.js:946 +#: js/widgets/timbre.js:946 msgid "Add filter" msgstr "フィルターを くわえる" -#: js/timbre.js:987 +#: js/widgets/timbre.js:987 msgid "Click on buttons to open the timbre design tools." msgstr "ボタンをクリックするとカスタムねいろツールが開きます。" -#: js/timbre.js:1273 +#: js/widgets/timbre.js:1273 msgid "harmonicity" msgstr "ばいおんの ねいろ" -#: js/timbre.js:1340 -#: js/timbre.js:1406 +#: js/widgets/timbre.js:1340 +#: js/widgets/timbre.js:1406 msgid "modulation index" msgstr "モジュレーションインデックス" -#: js/timbre.js:1484 +#: js/widgets/timbre.js:1484 msgid "vibrato amount" msgstr "ビブラートの はやさ" -#: js/timbre.js:1919 +#: js/widgets/timbre.js:1919 msgid "Filter already present." msgstr "" -#: js/timbre.js:2322 +#: js/widgets/timbre.js:2322 msgid "delay (MS)" msgstr "ディレイ・エフェクター(ms)" -#: js/timbre.js:2507 +#: js/widgets/timbre.js:2507 msgid "distortion amount" msgstr "ディストーションの おおきさ" -#: js/meterwidget.js:170 -msgid "Reset" +#: js/widgets/aiwidget.js:180 +#: js/widgets/sampler.js:227 +msgid "Warning: Sample is bigger than 1MB." msgstr "" -#: js/meterwidget.js:196 -msgid "Click in the circle to select strong beats for the meter." -msgstr "クリックで つよい はくの いちを えらべます。" +#: js/widgets/aiwidget.js:539 +msgid "New start block generated" +msgstr "" + +#: js/widgets/aiwidget.js:541 +msgid "MIDI loading. This may take some time depending upon the number of notes in the track" +msgstr "" + +#: js/widgets/aiwidget.js:551 +#: js/widgets/sampler.js:254 +msgid "Upload failed: Sample is not a .wav file." +msgstr "" -#: js/arpeggio.js:239 +#: js/widgets/aiwidget.js:679 +#: js/widgets/sampler.js:432 +msgid "Save sample" +msgstr "ねいろ サンプルを ほぞん" + +#: js/widgets/aiwidget.js:701 +msgid "AI Music" +msgstr "" + +#: js/widgets/arpeggio.js:239 msgid "Click in the grid to add steps to the arpeggio." msgstr "テーブルを クリックでアルペジオのピッチを加える。" -#: js/ProjectStorage.js:243 -msgid "anonymous" -msgstr "とくめい" +#: js/widgets/help.js:95 +#: js/widgets/help.js:125 +#: js/widgets/help.js:146 +#: js/widgets/help.js:158 +#: js/widgets/help.js:376 +#: js/widgets/help.js:391 +msgid "Take a tour" +msgstr "ツアーを はじめよう" + +#: js/widgets/musickeyboard.js:725 +#: js/widgets/phrasemaker.js:584 +msgid "Add note" +msgstr "おんぷをた" -#: js/GlobalCard.js:68 -msgid "Share" -msgstr "シェア" +#: js/widgets/musickeyboard.js:744 +msgid "Metronome" +msgstr "メトロノーム" -#: js/GlobalCard.js:74 -msgid "Flags" -msgstr "はた" +#: js/widgets/musickeyboard.js:1549 +#: plugins/rodi.rtp:193 +msgid "duration" +msgstr "きかんのせってい" -#: js/LocalCard.js:36 -msgid "View published project" -msgstr "こうかい された プロジェクトを みる" +#: js/widgets/musickeyboard.js:3179 +msgid "New action blocks generated" +msgstr "" -#: js/LocalCard.js:42 -msgid "Publish project" -msgstr "プロジェクトを こうかい する" +#: js/widgets/musickeyboard.js:3180 +msgid "New action block generated" +msgstr "" -#: js/LocalCard.js:51 -msgid "Edit project" -msgstr "プロジェクトを へんしゅう する" +#: js/widgets/musickeyboard.js:3365 +#: js/widgets/musickeyboard.js:3373 +msgid "MIDI device present." +msgstr "MIDIデバイスがみつかりました。" -#: js/LocalCard.js:52 -msgid "Delete project" -msgstr "プロジェクトを けす" +#: js/widgets/musickeyboard.js:3376 +msgid "No MIDI device found." +msgstr "MIDIデバイスがみつかりません。" + +#: js/widgets/musickeyboard.js:3386 +msgid "Failed to get MIDI access in browser." +msgstr "ブラウザはMIDIのアクセスができませんでした。" + +#: js/widgets/phrasemaker.js:574 +msgid "Export" +msgstr "エクスポート" + +#: js/widgets/phrasemaker.js:581 +msgid "Sort" +msgstr "せいり する" + +#: js/widgets/phrasemaker.js:975 +msgid "Click on the table to add notes." +msgstr "ます目をクリックするとメロディやリズムを作れます。" + +#: js/widgets/phrasemaker.js:2677 +#: js/widgets/phrasemaker.js:2819 +msgid "tuplet value" +msgstr "何れんぷ価" + +#: js/widgets/rhythmruler.js:486 +msgid "Save rhythms" +msgstr "リズムだけをほぞん" + +#: js/widgets/rhythmruler.js:512 +msgid "Save drum machine" +msgstr "ドラム として ほぞん" + +#: js/widgets/rhythmruler.js:589 +#.TRANS: user can tap out a rhythm by clicking on a ruler. +msgid "Tap a rhythm" +msgstr "リズムをタップする" + +#: js/widgets/rhythmruler.js:817 +msgid "Click on the ruler to divide it." +msgstr "クリック すると リズムを わる ことが できます。" + +#: js/widgets/rhythmruler.js:950 +#: js/widgets/rhythmruler.js:952 +#: js/widgets/rhythmruler.js:1152 +#: js/widgets/rhythmruler.js:1154 +#: js/widgets/rhythmruler.js:1765 +#: js/widgets/rhythmruler.js:1767 +msgid "tap a rhythm" +msgstr "リズムを タップ する" + +#: js/widgets/rhythmruler.js:1459 +msgid "Maximum value of 256 has been exceeded." +msgstr "リズムメーカーの おとの ながさは、さいだい 256 です。" + +#: js/widgets/sampler.js:237 +msgid "Recording started..." +msgstr "" + +#: js/widgets/sampler.js:245 +msgid "Recording complete..." +msgstr "" + +#: js/widgets/sampler.js:283 +msgid "A new sample block was generated." +msgstr "あたらしい 「ねいろサンプル」 ブロックが つくりました" + +#: js/widgets/sampler.js:378 +msgid "Upload sample" +msgstr "ねいろ サンプルを アップロード" + +#: js/widgets/sampler.js:399 +msgid "Warning: Your sample cannot be loaded because it is >1MB." +msgstr "" + +#: js/widgets/sampler.js:448 +msgid "Toggle Mic" +msgstr "" -#: js/LocalCard.js:53 -msgid "Download project" -msgstr "プロジェクトを ダウンロード する" +#: js/widgets/sampler.js:458 +msgid "Playback" +msgstr "" -#: js/LocalCard.js:55 -msgid "Duplicate project" -msgstr "プロジェクトを コピー する" +#: js/widgets/sampler.js:979 +#.TRANS: The reference tone is a sound used for comparison. +msgid "reference tone" +msgstr "" -#: js/GlobalTag.js:28 +#: planet/js/GlobalTag.js:28 #.TRANS: On the Planet, we use labels to tag projects. msgid "All Projects" msgstr "すべての プロジェクト" -#: js/GlobalTag.js:30 -#: js/StringHelper.js:37 +#: planet/js/GlobalTag.js:30 +#: planet/js/StringHelper.js:37 #.TRANS: On the Planet, we use labels to tag projects. msgid "My Projects" msgstr "じぶんの プロジェクト" -#: js/GlobalTag.js:32 +#: planet/js/GlobalTag.js:32 #.TRANS: On the Planet, we use labels to tag projects. msgid "Examples" msgstr "プロジェクトの みほん" -#: js/GlobalTag.js:34 +#: planet/js/GlobalTag.js:34 #.TRANS: On the Planet, we use labels to tag projects. msgid "Music" msgstr "おんがく" -#: js/GlobalTag.js:36 +#: planet/js/GlobalTag.js:36 #.TRANS: On the Planet, we use labels to tag projects. msgid "Art" msgstr "アート" -#: js/GlobalTag.js:38 +#: planet/js/GlobalTag.js:38 #.TRANS: On the Planet, we use labels to tag projects. msgid "Math" msgstr "さんすう" -#: js/GlobalTag.js:40 +#: planet/js/GlobalTag.js:40 #.TRANS: On the Planet, we use labels to tag projects. msgid "Interactive" msgstr "インタラクティブ" -#: js/GlobalTag.js:42 +#: planet/js/GlobalTag.js:42 #.TRANS: On the Planet, we use labels to tag projects. msgid "Design" msgstr "デザイン" -#: js/GlobalTag.js:44 +#: planet/js/GlobalTag.js:44 #.TRANS: On the Planet, we use labels to tag projects. msgid "Game" msgstr "ゲーム" -#: js/GlobalTag.js:46 +#: planet/js/GlobalTag.js:46 #.TRANS: On the Planet, we use labels to tag projects. msgid "Media" msgstr "メディア" -#: js/GlobalTag.js:48 +#: planet/js/GlobalTag.js:48 #.TRANS: On the Planet, we use labels to tag projects. msgid "Sensors" msgstr "センサー" -#: js/GlobalTag.js:52 +#: planet/js/GlobalTag.js:52 #.TRANS: On the Planet, we use labels to tag projects. msgid "Code Snippet" msgstr "みじかいコード" -#: js/helper.js:149 -#: js/StringHelper.js:49 -msgid "Show more tags" -msgstr "タッグを もっと みる" +#: planet/js/LocalCard.js:36 +msgid "View published project" +msgstr "こうかい された プロジェクトを みる" -#: js/helper.js:150 -msgid "Show fewer tags" -msgstr "タッグを ひひょうじ" +#: planet/js/LocalCard.js:42 +msgid "Publish project" +msgstr "プロジェクトを こうかい する" + +#: planet/js/LocalCard.js:51 +msgid "Edit project" +msgstr "プロジェクトを へんしゅう する" + +#: planet/js/LocalCard.js:52 +msgid "Delete project" +msgstr "プロジェクトを けす" + +#: planet/js/LocalCard.js:53 +msgid "Download project" +msgstr "プロジェクトを ダウンロード する" + +#: planet/js/LocalCard.js:55 +msgid "Duplicate project" +msgstr "プロジェクトを コピー する" + +#: planet/js/ProjectStorage.js:243 +msgid "anonymous" +msgstr "とくめい" -#: js/ProjectViewer.js:30 +#: planet/js/SaveInterface.js:34 +msgid "Open in Music Blocks" +msgstr "ミュージック・ブロックスで ひらきます" + +#: planet/js/SaveInterface.js:35 +msgid "Open in Turtle Blocks" +msgstr "" + +#: planet/js/GlobalCard.js:68 +msgid "Share" +msgstr "シェア" + +#: planet/js/GlobalCard.js:74 +msgid "Flags" +msgstr "はた" + +#: planet/js/GlobalPlanet.js:35 +msgid "No results found." +msgstr "検索の結果に何もはありません" + +#: planet/js/GlobalPlanet.js:51 +msgid "Remix of" +msgstr "のリミックス" + +#: planet/js/GlobalPlanet.js:509 +msgid "Cannot connect to server" +msgstr "サーバに せつぞく できません" + +#: planet/js/ProjectViewer.js:30 msgid "Error: Report could not be submitted. Try again later." msgstr "エラー:つうほうが できませんでした。あとで さいど ためして ください。" -#: js/ProjectViewer.js:31 +#: planet/js/ProjectViewer.js:31 msgid "Thank you for reporting this project. A moderator will review the project shortly, to verify violation of the Sugar Labs Code of Conduct." msgstr "このプロジェクトを つうほうして くださって ありがとう ございます。モデレータが まもなく、プロジェクトを みます。" -#: js/ProjectViewer.js:32 -#: js/StringHelper.js:62 -#: js/StringHelper.js:64 -#: js/StringHelper.js:68 +#: planet/js/ProjectViewer.js:32 +#: planet/js/StringHelper.js:62 +#: planet/js/StringHelper.js:64 +#: planet/js/StringHelper.js:68 msgid "Report Project" msgstr "プロジェクトを通報する" -#: js/ProjectViewer.js:33 -#: js/StringHelper.js:63 +#: planet/js/ProjectViewer.js:33 +#: planet/js/StringHelper.js:63 msgid "Project Reported" msgstr "プロジェクトは つうほう されました" -#: js/ProjectViewer.js:34 +#: planet/js/ProjectViewer.js:34 msgid "Report description required" msgstr "レポート ひょうきが ひつよう です" -#: js/ProjectViewer.js:35 +#: planet/js/ProjectViewer.js:35 msgid "Report description too long" msgstr "レポート ひょうきが ながすぎます" -#: js/StringHelper.js:30 +#: planet/js/Publisher.js:30 +msgid "Feature unavailable - cannot connect to server. Reload Music Blocks to try again." +msgstr "エラー:サーバに せつぞく できません。ブラウザを さいきどう して、さいど ためしてください。" + +#: planet/js/Publisher.js:220 +#: planet/js/Publisher.js:237 +msgid "This field is required" +msgstr "この こうもくは ひっすこうもく です" + +#: planet/js/Publisher.js:227 +msgid "Title too long" +msgstr "タイトルが ながすぎます" + +#: planet/js/Publisher.js:244 +msgid "Description too long" +msgstr "ひょうきが ながすぎます" + +#: planet/js/Publisher.js:341 +msgid "Server Error" +msgstr "サーバーエラー" + +#: planet/js/Publisher.js:341 +msgid "Try Again" +msgstr "もういちど つかいなおして ください。" + +#: planet/js/StringHelper.js:30 msgid "Planet" msgstr "プラネット" -#: js/StringHelper.js:31 +#: planet/js/StringHelper.js:31 msgid "Close Planet" msgstr "プラネットを とじる" -#: js/StringHelper.js:32 +#: planet/js/StringHelper.js:32 msgid "Open project from file" msgstr "ファイルから プロジェクトを ひらく" -#: js/StringHelper.js:34 +#: planet/js/StringHelper.js:34 msgid "Local" msgstr "ローカル" -#: js/StringHelper.js:35 +#: planet/js/StringHelper.js:35 msgid "Global" msgstr "グローバル" -#: js/StringHelper.js:36 +#: planet/js/StringHelper.js:36 msgid "Search for a project" msgstr "プロジェクト けんさく" -#: js/StringHelper.js:38 +#: planet/js/StringHelper.js:38 msgid "Publish Project" msgstr "プロジェクトを こうかい する" -#: js/StringHelper.js:40 +#: planet/js/StringHelper.js:40 msgid "Tags (max 5)" msgstr "タッグ(さいだい5こ)" -#: js/StringHelper.js:41 -#: js/StringHelper.js:61 +#: planet/js/StringHelper.js:41 +#: planet/js/StringHelper.js:61 msgid "Description" msgstr "きにゅう" -#: js/StringHelper.js:42 -#: js/StringHelper.js:67 +#: planet/js/StringHelper.js:42 +#: planet/js/StringHelper.js:67 msgid "Submit" msgstr "かくにん" -#: js/StringHelper.js:43 -#: js/StringHelper.js:47 +#: planet/js/StringHelper.js:43 +#: planet/js/StringHelper.js:47 msgid "Cancel" msgstr "キャンセル" -#: js/StringHelper.js:44 +#: planet/js/StringHelper.js:44 msgid "Delete \\"\\"?" msgstr "\\"\\"を けしますか?" -#: js/StringHelper.js:45 +#: planet/js/StringHelper.js:45 msgid "Permanently delete project \\"\\"?" msgstr "\\"\\"を かんぜん けしますか?" -#: js/StringHelper.js:48 +#: planet/js/StringHelper.js:48 msgid "Explore Projects" msgstr "プロジェクトを さがす" -#: js/StringHelper.js:50 +#: planet/js/StringHelper.js:49 +#: planet/js/helper.js:149 +msgid "Show more tags" +msgstr "タッグを もっと みる" + +#: planet/js/StringHelper.js:50 msgid "Most recent" msgstr "いちばん さいきん" -#: js/StringHelper.js:51 +#: planet/js/StringHelper.js:51 msgid "Most liked" msgstr "「いいね」の いちばん ある" -#: js/StringHelper.js:52 +#: planet/js/StringHelper.js:52 msgid "Most downloaded" msgstr "ダウンロードの いちばん ある" -#: js/StringHelper.js:53 +#: planet/js/StringHelper.js:53 msgid "A-Z" msgstr "「A-Z」の じゅんばん" -#: js/StringHelper.js:54 +#: planet/js/StringHelper.js:54 msgid "Sort by" msgstr "~で せいり する" -#: js/StringHelper.js:55 +#: planet/js/StringHelper.js:55 msgid "Load More Projects" msgstr "プロジェクトを もっと ロードする" -#: js/StringHelper.js:56 +#: planet/js/StringHelper.js:56 msgid "Last Updated" msgstr "さいごの こうしん" -#: js/StringHelper.js:57 +#: planet/js/StringHelper.js:57 msgid "Creation Date" msgstr "さくせいび" -#: js/StringHelper.js:58 +#: planet/js/StringHelper.js:58 msgid "Number of Downloads:" msgstr "ダウンロード数" -#: js/StringHelper.js:59 +#: planet/js/StringHelper.js:59 msgid "Number of Likes:" msgstr "「いいね」の かず" -#: js/StringHelper.js:60 +#: planet/js/StringHelper.js:60 msgid "Tags:" msgstr "タッグ" -#: js/StringHelper.js:65 +#: planet/js/StringHelper.js:65 msgid "Report projects which violate the Sugar Labs Code of Conduct." msgstr "シュガー・ラボ " -#: js/StringHelper.js:66 +#: planet/js/StringHelper.js:66 msgid "Reason for reporting project" msgstr "プロジェクトを つうほうする りゆう" -#: js/StringHelper.js:70 +#: planet/js/StringHelper.js:70 msgid "Download as File" msgstr "ファイルで ダウンロード する" -#: js/GlobalPlanet.js:35 -msgid "No results found." -msgstr "検索の結果に何もはありません" - -#: js/GlobalPlanet.js:51 -msgid "Remix of" -msgstr "のリミックス" - -#: js/GlobalPlanet.js:509 -msgid "Cannot connect to server" -msgstr "サーバに せつぞく できません" - -#: js/Publisher.js:30 -msgid "Feature unavailable - cannot connect to server. Reload Music Blocks to try again." -msgstr "エラー:サーバに せつぞく できません。ブラウザを さいきどう して、さいど ためしてください。" - -#: js/Publisher.js:218 -#: js/Publisher.js:235 -msgid "This field is required" -msgstr "この こうもくは ひっすこうもく です" - -#: js/Publisher.js:225 -msgid "Title too long" -msgstr "タイトルが ながすぎます" +#: planet/js/helper.js:150 +msgid "Show fewer tags" +msgstr "タッグを ひひょうじ" -#: js/Publisher.js:242 -msgid "Description too long" -msgstr "ひょうきが ながすぎます" +#: plugins/accelerometer.rtp:48 +msgid "motion x" +msgstr "x座標の動き" -#: js/Publisher.js:339 -msgid "Server Error" -msgstr "サーバーエラー" +#: plugins/accelerometer.rtp:56 +msgid "motion y" +msgstr "y座標の動き" -#: js/Publisher.js:339 -msgid "Try Again" -msgstr "もういちど つかいなおして ください。" +#: plugins/accelerometer.rtp:64 +msgid "motion z" +msgstr "z座標の動き" -#: js/SaveInterface.js:34 -msgid "Open in Music Blocks" -msgstr "ミュージック・ブロックスで ひらきます" +#: plugins/facebook.rtp:27 +msgid "publish" +msgstr "プロジェクトをフェースブックにアップロードする" -#: js/SaveInterface.js:35 -msgid "Open in Turtle Blocks" -msgstr "" +#: plugins/maths.rtp:62 +msgid "power" +msgstr "じょうべき" -#: plugins/weather.rtp:68 -#: plugins/weather.rtp:97 -msgid "Days ahead must be in the range of -1 to 5." -msgstr "日にちは -1から5までの数でなくてはなりません" +#: plugins/maths.rtp:62 +msgid "base" +msgstr "ベース" -#: plugins/weather.rtp:122 -msgid "forecast" -msgstr "天気予報" +#: plugins/maths.rtp:62 +msgid "exp" +msgstr "exp" -#: plugins/weather.rtp:123 -#: plugins/weather.rtp:137 -#: plugins/weather.rtp:150 -msgid "city" -msgstr "市" +#: plugins/maths.rtp:99 +msgid "floor" +msgstr "ゆか" -#: plugins/weather.rtp:124 -#: plugins/weather.rtp:138 -#: plugins/weather.rtp:151 -msgid "day" -msgstr "曜日" +#: plugins/maths.rtp:104 +msgid "ceiling" +msgstr "てんじょう" -#: plugins/weather.rtp:136 -msgid "high" -msgstr "高" +#: plugins/maths.rtp:109 +msgid "to degrees" +msgstr "どすうほうへ へんかん" -#: plugins/weather.rtp:149 -msgid "low" -msgstr "低" +#: plugins/maths.rtp:114 +msgid "to radians" +msgstr "ラジアンへ へんかん" #: plugins/nutrition.rtp:104 msgid "get calories" @@ -7343,45 +7752,6 @@ msgstr "クッキー" msgid "water" msgstr "水" -#: plugins/maths.rtp:62 -#: plugins/examples.rtp:93 -msgid "power" -msgstr "じょうべき" - -#: plugins/maths.rtp:62 -#: plugins/examples.rtp:93 -msgid "base" -msgstr "ベース" - -#: plugins/maths.rtp:62 -#: plugins/examples.rtp:93 -msgid "exp" -msgstr "exp" - -#: plugins/maths.rtp:99 -#: plugins/examples.rtp:130 -msgid "floor" -msgstr "ゆか" - -#: plugins/maths.rtp:104 -#: plugins/examples.rtp:135 -msgid "ceiling" -msgstr "てんじょう" - -#: plugins/maths.rtp:109 -#: plugins/examples.rtp:140 -msgid "to degrees" -msgstr "どすうほうへ へんかん" - -#: plugins/maths.rtp:114 -#: plugins/examples.rtp:145 -msgid "to radians" -msgstr "ラジアンへ へんかん" - -#: plugins/facebook.rtp:27 -msgid "publish" -msgstr "プロジェクトをフェースブックにアップロードする" - #: plugins/rodi.rtp:172 msgid "blink" msgstr "点滅する" @@ -7410,17 +7780,65 @@ msgstr "赤外光 (右)" msgid "move" msgstr "動き出し" -#: plugins/accelerometer.rtp:48 -msgid "motion x" -msgstr "x座標の動き" +#: plugins/weather.rtp:68 +#: plugins/weather.rtp:97 +msgid "Days ahead must be in the range of -1 to 5." +msgstr "日にちは -1から5までの数でなくてはなりません" -#: plugins/accelerometer.rtp:56 -msgid "motion y" -msgstr "y座標の動き" +#: plugins/weather.rtp:122 +msgid "forecast" +msgstr "天気予報" -#: plugins/accelerometer.rtp:64 -msgid "motion z" -msgstr "z座標の動き" +#: plugins/weather.rtp:123 +#: plugins/weather.rtp:137 +#: plugins/weather.rtp:150 +msgid "city" +msgstr "市" + +#: plugins/weather.rtp:124 +#: plugins/weather.rtp:138 +#: plugins/weather.rtp:151 +msgid "day" +msgstr "曜日" + +#: plugins/weather.rtp:136 +msgid "high" +msgstr "高" + +#: plugins/weather.rtp:149 +msgid "low" +msgstr "低" + +#: js/toolbar.js:70 + +#: js/toolbar.js:130 + +#: js/toolbar.js:194 + +#: js/toolbar.js:249 + +#~msgid "Toggle JavaScript Editor" +#~msgstr "JavaScriptへんしゅうをオン/オフ" + +#: js/EnsembleBlocks.js:643 + +#~msgid "The Turrle pitch block returns the current pitch number being played by the specified turtle." +#~msgstr "" + +#: js/PitchActions.js:88 + +#~msgid "The Scalar Step Block must be used inside of a Note Block." +#~msgstr "おんかいうちを あがる/おりるブロックは、 おんぷブロックの なかに いれて つかって ください。" + +#: js/PitchActions.js:107 + +#~msgid "The Scalar Step Block must be preceded by a Pitch Block." +#~msgstr "おんかいうちを あがる/おりるブロックは、 おとの たかさ ブロックの あとに つかってください。" + +#: js/musickeyboard.js:2840 + +#~msgid "New action blocks generated!" +#~msgstr "" #: js/toolbar.js:110 @@ -7762,11 +8180,6 @@ msgstr "z座標の動き" #~msgid "The Time block returns the number of seconds that the program has been running." #~msgstr "" -#: js/help.js:95 - -#~msgid "Take a tour" -#~msgstr "ツアーを はじめよう" - #: js/GlobalCard.js:48 #~msgid "More Details" @@ -9224,26 +9637,24 @@ msgstr "z座標の動き" #~msgid "half note 𝅗𝅥" #~msgstr "半おんぷ 𝅗𝅥" -msgid "current interval" -msgstr "げんざいの おんかい" +#~msgid "Solfege pitch preview" +#~msgstr "ソルフェージュで おとの たかさの プレビュー" -msgid "Solfege pitch preview" -msgstr "ソルフェージュで おとの たかさの プレビュー" +#~msgid "Moveable Do" +#~msgstr "いどうド" -msgid "Moveable Do" -msgstr "いどうド" +#~msgid "Fixed Do" +#~msgstr "こていド" -msgid "Fixed Do" -msgstr "こていド" +#~msgid "Fullscreen" +#~msgstr "フルスクリーン" -msgid "Fullscreen" -msgstr "フルスクリーン" +#~msgid "Javascript editor" +#~msgstr "ジャバスクリプト エディタ" -msgid "Javascript editor" -msgstr "ジャバスクリプト エディタ" +#~msgid "Turtle Wrap off" +#~msgstr "がめんの きょうかいを むししない" -msgid "Turtle Wrap off" -msgstr "がめんの きょうかいを むししない" +#~msgid "Turtle Wrap on" +#~msgstr "がめんの きょうかいを むしす" -msgid "Turtle Wrap on" -msgstr "がめんの きょうかいを むしする" \ No newline at end of file diff --git a/po/ja.po b/po/ja.po index 0c5919aac7..568eab667f 100644 --- a/po/ja.po +++ b/po/ja.po @@ -16,282 +16,132 @@ #js/toolbar.js:230 #js/turtledefs.js:504 #js/turtledefs.js:505 -msgid: "Toggle Fullscreen" -msgstr: "フルスクリーンの切り替え" - -#: js/planetInterface.js:104 -#: js/planetInterface.js:104 -msgid "project undefined" -msgstr "" - -#: js/logo.js:61 -msgid "Not a valid pitch name" -msgstr "選ばれた音名が適切ではありません。" - -#: js/logo.js:507 -#: js/ProgramBlocks.js:258 -#: js/ProgramBlocks.js:427 -msgid "You must select a file." -msgstr "ファイルをえらんでください。" - -#: js/logo.js:1184 -#: js/turtles.js:118 -#: js/turtle-painter.js:1192 -#: js/turtle-painter.js:1193 -#: js/block.js:1463 -#: js/lilypond.js:757 -#: js/lilypond.js:921 -#: js/lilypond.js:959 -#: js/ActionBlocks.js:1223 -#: js/ProgramBlocks.js:1267 -msgid "start" -msgstr "スタート" - -#: js/logo.js:1696 -msgid "Playback is ready." -msgstr "コンパイル完了" - -#: js/blocks.js:1011 -#: js/blocks.js:3427 -#: js/blocks.js:3428 -#: js/blocks.js:3653 -#: js/blocks.js:4012 -#: js/blocks.js:4205 -#: js/blocks.js:5343 -#: js/blocks.js:6474 -#: js/palette.js:527 -#: js/palette.js:536 -#: js/palette.js:545 -#: js/palette.js:554 -#: js/palette.js:1131 -#: js/palette.js:1142 -#: js/palette.js:1153 -#: js/palette.js:1164 -#: js/palette.js:1183 -#: js/rubrics.js:529 -#: js/macros.js:170 -#: js/macros.js:266 -#: js/macros.js:267 -#: js/macros.js:276 -#: js/macros.js:828 -#: js/block.js:1449 -#: js/block.js:4164 -#: js/block.js:4182 -#: js/block.js:4193 -#: js/turtledefs.js:128 -#: js/turtledefs.js:230 -#: js/ActionBlocks.js:254 -#: js/ActionBlocks.js:307 -#: js/ActionBlocks.js:617 -#: js/ActionBlocks.js:716 -#: js/ActionBlocks.js:961 -#: js/ActionBlocks.js:1049 -#: js/ActionBlocks.js:1322 -#: js/ActionBlocks.js:1325 -#: js/ActionBlocks.js:1337 -#: js/ActionBlocks.js:1404 -#: js/MeterBlocks.js:715 -#: js/MeterBlocks.js:768 -#: js/MeterBlocks.js:831 -#: js/MeterBlocks.js:892 -#: js/phrasemaker.js:4412 -#: js/musickeyboard.js:2647 -#: js/rhythmruler.js:1928 -#: js/rhythmruler.js:1935 -#: js/rhythmruler.js:2119 -#: js/rhythmruler.js:2126 -msgid "action" -msgstr "アクション" - -#: js/blocks.js:1205 -#: js/blocks.js:3380 -#: js/blocks.js:3770 -#: js/blocks.js:3801 -#: js/blocks.js:3850 -#: js/blocks.js:3885 -#: js/blocks.js:6497 -#: js/palette.js:509 -#: js/palette.js:638 -#: js/palette.js:1107 -#: js/BoxesBlocks.js:282 -#: js/BoxesBlocks.js:285 -#: js/BoxesBlocks.js:405 -#: js/BoxesBlocks.js:594 -msgid "box" -msgstr "箱" - -#: js/blocks.js:1680 -msgid "Consider breaking this stack into parts." -msgstr "アクションブロックを使ってプログラムをまとめませんか" +#: js/SaveInterface.js:59 +#: js/SaveInterface.js:61 +#: js/SaveInterface.js:93 +msgid "Music Blocks Project" +msgstr "ミュージック・ブロックスのプロジェクト" -#: js/blocks.js:2408 -#: js/palette.js:653 -#: js/MediaBlocks.js:602 -msgid "open file" -msgstr "ファイルを開く" +#: js/SaveInterface.js:63 +msgid "This project was created in Music Blocks" +msgstr "このプロジェクトは、ミュージック・ブロックスで作成されました。" -#: js/blocks.js:2415 -#: js/blocks.js:2423 -#: js/activity.js:1875 -msgid "audio file" -msgstr "" +#: js/SaveInterface.js:67 +msgid "Music Blocks is a Free/Libre Software application." +msgstr "ミュージック・ブロックスは、音楽のちしきを楽しみながら身につけることのできる、オープンソースのソフトです。" -#: js/blocks.js:2536 -#: js/blocks.js:3147 -#: js/block.js:3543 -msgid "on2" -msgstr "オン" +#: js/SaveInterface.js:69 +msgid "The source code can be accessed at" +msgstr "ミュージック・ブロックスのソースコードは、こちらのURLから見ることができます。" -#: js/blocks.js:2538 -#: js/blocks.js:3149 -#: js/block.js:3545 -msgid "off" -msgstr "オフ" +#: js/SaveInterface.js:72 +msgid "For more information, please consult the" +msgstr "もっと詳しく知りたい場合は、ミュージック・ブロックスのガイドを参照してください。" -#: js/blocks.js:2543 -#: js/blocks.js:3154 -#: js/palette.js:618 -#: js/block.js:3466 -#: js/BooleanBlocks.js:77 -#: js/BooleanBlocks.js:167 -#: js/BooleanBlocks.js:251 -#: js/BooleanBlocks.js:335 -#: js/BooleanBlocks.js:433 -#: js/BooleanBlocks.js:539 -#: js/BooleanBlocks.js:640 -#: js/BooleanBlocks.js:741 -#: js/BooleanBlocks.js:847 -#: js/BooleanBlocks.js:948 -#: js/BooleanBlocks.js:1033 -#: js/SensorsBlocks.js:910 -msgid "true" -msgstr "真" +#: js/SaveInterface.js:76 +#: js/turtledefs.js:795 +msgid "Music Blocks Guide" +msgstr "ミュージック・ブロックスガイド" -#: js/blocks.js:2545 -#: js/blocks.js:3156 -#: js/block.js:3466 -#: js/BooleanBlocks.js:79 -#: js/BooleanBlocks.js:169 -#: js/BooleanBlocks.js:253 -#: js/BooleanBlocks.js:337 -#: js/BooleanBlocks.js:435 -#: js/BooleanBlocks.js:541 -#: js/BooleanBlocks.js:642 -#: js/BooleanBlocks.js:743 -#: js/BooleanBlocks.js:849 -#: js/BooleanBlocks.js:950 -#: js/SensorsBlocks.js:912 -msgid "false" -msgstr "偽" +#: js/SaveInterface.js:83 +msgid "Alternatively, open the file in Music Blocks using the Load project button." +msgstr "「ファイルからプロジェクトを読みこむ」ボタンをおして、ファイルをひらいてください。" -#: js/blocks.js:3183 -#: js/palette.js:574 -#: js/MediaBlocks.js:892 -#: js/MediaBlocks.js:963 -msgid "text" -msgstr "文字そざい" +#: js/SaveInterface.js:85 +msgid "Project Code" +msgstr "プロジェクトのコード" -#: js/blocks.js:3379 -#: js/palette.js:641 -#: js/palette.js:642 -#: js/BoxesBlocks.js:514 -msgid "store in box" -msgstr "箱にほぞん" +#: js/SaveInterface.js:87 +msgid "This code stores data about the blocks in a project." +msgstr "このコードは、がいとうする場合、へんしゅうされたバージョンのプロジェクトといっしょに、プロジェクトの中のブロックに関するデータをほぞんします。" -#: js/blocks.js:3384 -#: js/blocks.js:3824 -#: js/blocks.js:3859 -#: js/blocks.js:3894 -#: js/blocks.js:5773 -#: js/blocks.js:5794 -#: js/BoxesBlocks.js:772 -msgid "box1" -msgstr "箱1" +#: js/SaveInterface.js:89 +msgid "Show" +msgstr "プロジェクトのコードを表示する" -#: js/blocks.js:3386 -#: js/blocks.js:3826 -#: js/blocks.js:3861 -#: js/blocks.js:3896 -#: js/blocks.js:5775 -#: js/blocks.js:5796 -#: js/BoxesBlocks.js:663 -msgid "box2" -msgstr "箱2" +#: js/SaveInterface.js:91 +msgid "Hide" +msgstr "プロジェクトのコードを非表示にする" -#: js/blocks.js:4058 -#: js/palette.js:639 -#: js/palette.js:644 -#: js/palette.js:1043 -#: js/BoxesBlocks.js:591 -msgid "store in" -msgstr "入れる" +#: js/SaveInterface.js:131 +#: js/SaveInterface.js:204 +#: js/SaveInterface.js:262 +#: js/SaveInterface.js:389 +#: js/SaveInterface.js:417 +#: js/activity.js:4884 +#: planet/js/ProjectStorage.js:27 +#: planet/js/GlobalPlanet.js:467 +#: planet/js/GlobalPlanet.js:469 +#: planet/js/GlobalPlanet.js:495 +#.TRANS: default project title when saving as Lilypond +msgid "My Project" +msgstr "自分のプロジェクト" -#: js/blocks.js:4058 -#: js/EnsembleBlocks.js:391 -#: js/EnsembleBlocks.js:402 -#: js/MediaBlocks.js:746 -#: js/ProgramBlocks.js:390 -#: js/ProgramBlocks.js:495 -#: js/ProgramBlocks.js:658 -#: js/BoxesBlocks.js:595 -#: js/PitchBlocks.js:656 -#: js/PitchBlocks.js:932 -#: js/PitchBlocks.js:1827 -#: js/ToneBlocks.js:1025 -#: js/DictBlocks.js:215 -#: js/DictBlocks.js:289 -msgid "name" -msgstr "名前" +#: js/SaveInterface.js:197 +#: planet/js/SaveInterface.js:58 +msgid "No description provided" +msgstr "記入がありません" -#: js/blocks.js:4058 -#: js/RhythmBlocks.js:1130 -#: js/BoxesBlocks.js:75 -#: js/BoxesBlocks.js:595 -#: js/HeapBlocks.js:544 -#: js/DictBlocks.js:289 -#: js/DictBlocks.js:430 -msgid "value" -msgstr "値" +#: js/SaveInterface.js:332 +msgid "Your recording is in progress." +msgstr "" -#: js/blocks.js:4907 -msgid "There is no block selected." -msgstr "ブロックが選ばれていません" +#: js/SaveInterface.js:401 +#.TRANS: File name prompt for save as Lilypond +msgid "File name" +msgstr "ファイル名" -#: js/blocks.js:5002 -#: js/MediaBlocks.js:888 -msgid "show" -msgstr "表示する" +#: js/SaveInterface.js:403 +#: planet/js/StringHelper.js:39 +#.TRANS: Project title prompt for save as Lilypond +msgid "Project title" +msgstr "曲名" -#: js/blocks.js:5005 -#: js/MediaBlocks.js:803 -#.TRANS: Avatar is the image used to determine the appearance of the mouse. -msgid "avatar" -msgstr "ネズミへんこう" +#: js/SaveInterface.js:405 +#.TRANS: Project title prompt for save as Lilypond +msgid "Project author" +msgstr "作曲家" -#: js/blocks.js:5008 -#: js/ToneBlocks.js:1010 -#: js/sampler.js:693 -#.TRANS: The sound sample that the user uploads. -msgid "sample" -msgstr "音色サンプル" +#: js/SaveInterface.js:407 +#.TRANS: MIDI prompt for save as Lilypond +msgid "Include MIDI output?" +msgstr "MIDIのアウトプットがくふにもまとめましょうか?" -#: js/turtles.js:874 -msgid "Grid" -msgstr "グリッド" +#: js/SaveInterface.js:409 +#.TRANS: Guitar prompt for save as Lilypond +msgid "Include guitar tablature output?" +msgstr "ギターのTABもがくふにまとめましょうか?" -#: js/turtles.js:891 -#: js/turtledefs.js:626 -msgid "Clean" -msgstr "ネズミとペンをもどす" +#: js/SaveInterface.js:411 +#.TRANS: Lilypond is a scripting language for generating sheet music +msgid "Save as Lilypond" +msgstr "Lilypondがくふのフォーマットでほぞん" -#: js/turtles.js:912 -#: js/turtledefs.js:632 -msgid "Collapse" -msgstr "カンバスをしゅくしょう" +#: js/SaveInterface.js:426 +#: js/blocks/EnsembleBlocks.js:75 +#: js/blocks/EnsembleBlocks.js:154 +#: js/blocks/EnsembleBlocks.js:216 +#: js/blocks/EnsembleBlocks.js:302 +#: js/blocks/EnsembleBlocks.js:348 +#: js/blocks/EnsembleBlocks.js:389 +#: js/blocks/EnsembleBlocks.js:441 +#: js/blocks/EnsembleBlocks.js:490 +#: js/blocks/EnsembleBlocks.js:536 +#: js/blocks/EnsembleBlocks.js:583 +#: js/blocks/EnsembleBlocks.js:637 +#: js/blocks/EnsembleBlocks.js:753 +#: js/blocks/EnsembleBlocks.js:840 +#: js/blocks/EnsembleBlocks.js:899 +#: js/blocks/EnsembleBlocks.js:942 +#: js/blocks/EnsembleBlocks.js:1212 +#: js/blocks/EnsembleBlocks.js:1280 +#.TRANS: default project author when saving as Lilypond +msgid "Mr. Mouse" +msgstr "ミスター・マウス" -#: js/turtles.js:940 -msgid "Expand" -msgstr "カンバスをかくだい" +#: js/SaveInterface.js:573 +msgid "The Lilypond code is copied to clipboard. You can paste it here: " +msgstr "" #: js/languagebox.js:198 msgid "Refresh your browser to change your language preference." @@ -301,6934 +151,7488 @@ msgstr "言語を変えるには、ブラウザをこうしんしてください msgid "Music Blocks is already set to this language." msgstr " Music Blocksは既にこの言語に設定されています。" -#: js/piemenus.js:200 -#: js/musicutils.js:808 -#: js/musicutils.js:824 -#: js/phrasemaker.js:1672 -#: js/musickeyboard.js:2041 -#: js/sampler.js:544 -#.TRANS: double sharp is a music term related to pitch -msgid "double sharp" -msgstr "ダブルシャープ" - -#: js/piemenus.js:201 -#: js/PitchBlocks.js:1510 -#: js/PitchActions.js:580 -#: js/musicutils.js:806 -#: js/musicutils.js:825 -#: js/phrasemaker.js:1673 -#: js/musickeyboard.js:2042 -#: js/sampler.js:545 -#.TRANS: sharp is a half-step up in pitch -#.TRANS: sharp is a music term related to pitch -msgid "sharp" -msgstr "シャープ" +#: js/planetInterface.js:131 +msgid "project undefined" +msgstr "" -#: js/piemenus.js:202 -#: js/musicutils.js:804 -#: js/musicutils.js:826 -#: js/phrasemaker.js:1674 -#: js/musickeyboard.js:2043 -#: js/sampler.js:546 -#.TRANS: natural is a music term related to pitch -msgid "natural" -msgstr "ナチュラル" +#: js/rubrics.js:523 +#: js/turtledefs.js:119 +#: js/turtledefs.js:221 +#: js/blocks/RhythmBlockPaletteBlocks.js:52 +#: js/blocks/RhythmBlockPaletteBlocks.js:234 +#: js/blocks/ProgramBlocks.js:745 +#: js/widgets/rhythmruler.js:2057 +#: js/widgets/rhythmruler.js:2064 +#: js/widgets/rhythmruler.js:2133 +#: js/widgets/rhythmruler.js:2140 +#: js/widgets/rhythmruler.js:2219 +#.TRANS: an arrangement of notes based on duration +msgid "rhythm" +msgstr "音符" -#: js/piemenus.js:203 -#: js/PitchBlocks.js:1469 -#: js/PitchActions.js:583 -#: js/musicutils.js:802 -#: js/musicutils.js:827 -#: js/phrasemaker.js:1675 -#: js/musickeyboard.js:2044 -#: js/sampler.js:547 -#.TRANS: flat is a half-step down in pitch -#.TRANS: flat is a music term related to pitch -msgid "flat" -msgstr "フラット" +#: js/rubrics.js:524 +#: js/turtledefs.js:121 +#: js/turtledefs.js:223 +#: js/block-verbose.js:2622 +#: js/block.js:2550 +#: js/blocks/IntervalsBlocks.js:63 +#: js/blocks/SensorsBlocks.js:178 +#: js/blocks/PitchBlocks.js:1839 +#: js/blocks/PitchBlocks.js:1853 +#: js/widgets/musickeyboard.js:1935 +#: js/widgets/phrasemaker.js:1036 +#.TRANS: pitch number +#.TRANS: pitch number +#.TRANS: we specify pitch in terms of a name and an octave. The name can be CDEFGAB or Do Re Mi Fa Sol La Ti. Octave is a number between 1 and 8. +msgid "pitch" +msgstr "音の高さ" -#: js/piemenus.js:204 -#: js/musicutils.js:800 -#: js/musicutils.js:828 -#: js/phrasemaker.js:1676 -#: js/musickeyboard.js:2045 -#: js/sampler.js:548 -#.TRANS: double flat is a music term related to pitch -msgid "double flat" -msgstr "ダブルフラット" +#: js/rubrics.js:525 +#: js/turtledefs.js:123 +#: js/turtledefs.js:225 +msgid "tone" +msgstr "音色" -#: js/piemenus.js:2861 -#: js/PitchBlocks.js:1357 -#: js/musicutils.js:627 -#.TRANS: unison means the note is the same as the current note -#.TRANS: unison is a music term related to intervals -msgid "unison" -msgstr "ユニゾン(同度)" +#: js/rubrics.js:526 +#: js/lilypond.js:605 +#: js/lilypond.js:904 +#: js/lilypond.js:910 +#: js/lilypond.js:948 +msgid "mouse" +msgstr "ネズミ" -#: js/piemenus.js:3015 -#: js/piemenus.js:3088 -#: js/musicutils.js:635 -#: js/musicutils.js:810 -#: js/musicutils.js:912 -#.TRANS: major is a music term related to intervals and mode -msgid "major" -msgstr "メジャー" +#: js/rubrics.js:527 +#: js/turtledefs.js:132 +#: js/turtledefs.js:234 +#: js/widgets/phrasemaker.js:1040 +msgid "pen" +msgstr "ペン" -#: js/piemenus.js:3015 -#: js/piemenus.js:3088 -#: js/musicutils.js:653 -#.TRANS: modal scale for music -msgid "ionian" -msgstr "アイオニアン音階" +#: js/rubrics.js:528 +#: js/turtledefs.js:133 +#: js/turtledefs.js:235 +#: js/blocks/NumberBlocks.js:981 +#: js/blocks/PitchBlocks.js:1717 +#: js/blocks/PitchBlocks.js:1758 +msgid "number" +msgstr "すうち" -#: js/piemenus.js:3017 -#: js/piemenus.js:3092 -#: js/musicutils.js:633 -#: js/musicutils.js:811 -#: js/musicutils.js:909 -#.TRANS: minor is a music term related to intervals and mode -msgid "minor" -msgstr "マイナー(短)" - -#: js/piemenus.js:3017 -#: js/piemenus.js:3092 -#: js/musicutils.js:663 -#.TRANS: modal scale for music -msgid "aeolian" -msgstr "エオリアン音階" - -#: js/piemenus.js:3407 -msgid "Duplicate" -msgstr "複製する" - -#: js/piemenus.js:3408 -#: js/turtledefs.js:534 -msgid "Extract" -msgstr "取り出す" - -#: js/piemenus.js:3409 -msgid "Move to trash" -msgstr "すてる" - -#: js/piemenus.js:3410 -#: js/timbre.js:968 -#: js/StringHelper.js:69 -msgid "Close" -msgstr "閉じる" - -#: js/piemenus.js:3416 -msgid "Save stack" -msgstr "スタックをほぞん" - -#: js/piemenus.js:3420 -#: js/toolbar.js:60 -#: js/toolbar.js:120 -#: js/toolbar.js:185 -#: js/toolbar.js:240 -#: js/turtledefs.js:752 -msgid "Help" -msgstr "説明" - -#: js/piemenus.js:3762 -msgid "You have chosen key " -msgstr "変化記号は" - -#: js/piemenus.js:3766 -msgid " for your pitch preview." -msgstr "の音階によって設定しています。" - -#: js/palette.js:571 -msgid "grid" -msgstr "グリッド" - -#: js/palette.js:577 -#: js/block.js:1540 -#: js/block.js:2343 -#: js/turtledefs.js:126 -#: js/turtledefs.js:228 -#: js/lilypond.js:740 -#: js/lilypond.js:905 -#: js/lilypond.js:949 -#: js/DrumBlocks.js:486 -#: js/RhythmBlocks.js:766 -#: js/VolumeBlocks.js:502 -#: js/phrasemaker.js:823 -msgid "drum" -msgstr "ドラム" - -#: js/palette.js:580 -msgid "effect" -msgstr "こうかおん" - -#: js/palette.js:586 -msgid "sargam" -msgstr "Sargam (インドの ソルファ)" - -#: js/palette.js:589 -#: js/activity.js:1833 -#: js/RhythmBlocks.js:923 -#: js/PitchBlocks.js:442 -#: js/PitchBlocks.js:1748 -#.TRANS: a numeric mapping of the notes in an octave based on the musical mode -msgid "scale degree" -msgstr "音度" - -#: js/palette.js:592 -#: js/activity.js:1860 -msgid "mode name" -msgstr "モード名" - -#: js/palette.js:595 -#: js/activity.js:1839 -msgid "invert mode" -msgstr "モードを反転させる" - -#: js/palette.js:598 -#: js/activity.js:1836 -msgid "voice name" -msgstr "音名" - -#: js/palette.js:601 -#: js/PitchBlocks.js:1181 -msgid "custom pitch" -msgstr "カスタムピッチ" - -#: js/palette.js:605 -#: js/block.js:1456 -#: js/block.js:1575 -#: js/WidgetBlocks.js:218 -#: js/IntervalsBlocks.js:63 -msgid "temperament" -msgstr "音律" - -#: js/palette.js:609 -msgid "accidental" -msgstr "変化記号" - -#: js/palette.js:615 -#: js/activity.js:1866 -msgid "interval name" -msgstr "音程名" - -#: js/palette.js:633 -#: js/PitchBlocks.js:405 -msgid "pitch converter" -msgstr "音の高さを調節" - -#: js/rubrics.js:522 -#: js/turtledefs.js:119 -#: js/turtledefs.js:221 -#: js/RhythmBlockPaletteBlocks.js:52 -#: js/RhythmBlockPaletteBlocks.js:233 -#: js/ProgramBlocks.js:745 -#: js/rhythmruler.js:1670 -#: js/rhythmruler.js:1677 -#: js/rhythmruler.js:1745 -#: js/rhythmruler.js:1752 -#: js/rhythmruler.js:1830 -#.TRANS: an arrangement of notes based on duration -msgid "rhythm" -msgstr "音符" - -#: js/rubrics.js:523 -#: js/block.js:2339 -#: js/turtledefs.js:121 -#: js/turtledefs.js:223 -#: js/IntervalsBlocks.js:63 -#: js/PitchBlocks.js:1801 -#: js/PitchBlocks.js:1814 -#: js/SensorsBlocks.js:178 -#: js/phrasemaker.js:821 -#: js/musickeyboard.js:1653 -#.TRANS: pitch number -#.TRANS: we specify pitch in terms of a name and an octave. The name can be CDEFGAB or Do Re Mi Fa Sol La Ti. Octave is a number between 1 and 8. -msgid "pitch" -msgstr "音の高さ" - -#: js/rubrics.js:524 -#: js/turtledefs.js:123 -#: js/turtledefs.js:225 -msgid "tone" -msgstr "音色" - -#: js/rubrics.js:525 -#: js/lilypond.js:613 -#: js/lilypond.js:912 -#: js/lilypond.js:918 -#: js/lilypond.js:956 -msgid "mouse" -msgstr "ネズミ" - -#: js/rubrics.js:526 -#: js/turtledefs.js:132 -#: js/turtledefs.js:234 -#: js/phrasemaker.js:825 -msgid "pen" -msgstr "ペン" - -#: js/rubrics.js:527 -#: js/turtledefs.js:133 -#: js/turtledefs.js:235 -#: js/NumberBlocks.js:905 -#: js/PitchBlocks.js:1679 -#: js/PitchBlocks.js:1720 -msgid "number" -msgstr "すうち" - -#: js/rubrics.js:528 -#: js/turtledefs.js:127 -#: js/turtledefs.js:229 -msgid "flow" -msgstr "実行手順" +#: js/rubrics.js:529 +#: js/turtledefs.js:127 +#: js/turtledefs.js:229 +msgid "flow" +msgstr "実行手順" #: js/rubrics.js:530 +#: js/turtledefs.js:128 +#: js/turtledefs.js:230 +#: js/block-verbose.js:1609 +#: js/block-verbose.js:4559 +#: js/block-verbose.js:4577 +#: js/block-verbose.js:4588 +#: js/block.js:1573 +#: js/block.js:4483 +#: js/block.js:4501 +#: js/block.js:4512 +#: js/blocks.js:1018 +#: js/blocks.js:3491 +#: js/blocks.js:3492 +#: js/blocks.js:3717 +#: js/blocks.js:4076 +#: js/blocks.js:4269 +#: js/blocks.js:5432 +#: js/blocks.js:6563 +#: js/macros.js:170 +#: js/macros.js:266 +#: js/macros.js:267 +#: js/macros.js:276 +#: js/macros.js:828 +#: js/palette.js:527 +#: js/palette.js:536 +#: js/palette.js:545 +#: js/palette.js:554 +#: js/palette.js:1129 +#: js/palette.js:1140 +#: js/palette.js:1151 +#: js/palette.js:1162 +#: js/palette.js:1181 +#: js/blocks/ActionBlocks.js:254 +#: js/blocks/ActionBlocks.js:307 +#: js/blocks/ActionBlocks.js:617 +#: js/blocks/ActionBlocks.js:716 +#: js/blocks/ActionBlocks.js:961 +#: js/blocks/ActionBlocks.js:1049 +#: js/blocks/ActionBlocks.js:1322 +#: js/blocks/ActionBlocks.js:1325 +#: js/blocks/ActionBlocks.js:1337 +#: js/blocks/ActionBlocks.js:1404 +#: js/blocks/MeterBlocks.js:715 +#: js/blocks/MeterBlocks.js:768 +#: js/blocks/MeterBlocks.js:831 +#: js/blocks/MeterBlocks.js:892 +#: js/widgets/musickeyboard.js:2986 +#: js/widgets/phrasemaker.js:4913 +#: js/widgets/rhythmruler.js:2319 +#: js/widgets/rhythmruler.js:2326 +#: js/widgets/rhythmruler.js:2511 +#: js/widgets/rhythmruler.js:2518 +msgid "action" +msgstr "アクション" + +#: js/rubrics.js:531 #: js/turtledefs.js:136 #: js/turtledefs.js:238 msgid "sensors" msgstr "センサー" -#: js/rubrics.js:531 +#: js/rubrics.js:532 #: js/turtledefs.js:135 #: js/turtledefs.js:237 -#: js/MediaBlocks.js:930 +#: js/blocks/MediaBlocks.js:930 msgid "media" msgstr "他のメディア" -#: js/rubrics.js:532 +#: js/rubrics.js:533 msgid "mice" msgstr "ネズミ達の関係" -#: js/macros.js:711 -#: js/musicutils.js:783 -#: js/synthutils.js:181 -#.TRANS: animal sound effect -msgid "duck" -msgstr "あひる" - -#: js/toolbar.js:46 -#: js/toolbar.js:107 +#: js/toolbar.js:48 +#: js/toolbar.js:109 msgid "About Music Blocks" msgstr "ミュージック・ブロックスについて" -#: js/toolbar.js:47 -#: js/toolbar.js:108 -#: js/toolbar.js:172 -#: js/toolbar.js:228 +#: js/toolbar.js:49 +#: js/toolbar.js:110 +#: js/toolbar.js:175 +#: js/toolbar.js:231 #: js/turtledefs.js:445 #: js/turtledefs.js:482 -#: js/activity.js:2281 -#: js/activity.js:2289 -#: js/activity.js:2520 -#: js/modewidget.js:77 -#: js/pitchstaircase.js:121 -#: js/phrasemaker.js:302 -#: js/phrasemaker.js:312 -#: js/phrasemaker.js:314 -#: js/phrasemaker.js:3901 -#: js/phrasemaker.js:4061 -#: js/phrasemaker.js:4066 -#: js/phrasemaker.js:4068 -#: js/phrasemaker.js:4183 -#: js/pitchdrummatrix.js:81 -#: js/pitchdrummatrix.js:574 -#: js/pitchdrummatrix.js:576 -#: js/pitchdrummatrix.js:628 -#: js/pitchdrummatrix.js:630 -#: js/pitchdrummatrix.js:645 -#: js/pitchdrummatrix.js:647 -#: js/pitchdrummatrix.js:674 -#: js/pitchdrummatrix.js:676 -#: js/temperament.js:477 -#: js/temperament.js:480 -#: js/temperament.js:540 -#: js/temperament.js:542 -#: js/temperament.js:1835 -#: js/temperament.js:1837 -#: js/temperament.js:1986 -#: js/temperament.js:1988 -#: js/musickeyboard.js:522 -#: js/musickeyboard.js:682 -#: js/musickeyboard.js:684 -#: js/musickeyboard.js:756 -#: js/musickeyboard.js:758 -#: js/rhythmruler.js:298 -#: js/rhythmruler.js:300 -#: js/rhythmruler.js:314 -#: js/rhythmruler.js:316 -#: js/sampler.js:96 -#: js/sampler.js:98 -#: js/sampler.js:229 -#: js/sampler.js:235 -#: js/sampler.js:237 -#: js/tempo.js:84 -#: js/tempo.js:86 -#: js/timbre.js:432 -#: js/timbre.js:434 -#: js/timbre.js:465 -#: js/timbre.js:467 -#: js/timbre.js:746 -#: js/meterwidget.js:80 -#: js/arpeggio.js:90 -#: js/arpeggio.js:547 -#: js/arpeggio.js:549 -#: js/arpeggio.js:644 -#: js/arpeggio.js:646 +#: js/activity.js:2660 +#: js/activity.js:2671 +#: js/activity.js:2902 +#: js/widgets/modewidget.js:77 +#: js/widgets/meterwidget.js:185 +#: js/widgets/pitchdrummatrix.js:147 +#: js/widgets/pitchdrummatrix.js:687 +#: js/widgets/pitchdrummatrix.js:689 +#: js/widgets/pitchdrummatrix.js:741 +#: js/widgets/pitchdrummatrix.js:743 +#: js/widgets/pitchdrummatrix.js:758 +#: js/widgets/pitchdrummatrix.js:760 +#: js/widgets/pitchdrummatrix.js:789 +#: js/widgets/pitchdrummatrix.js:791 +#: js/widgets/pitchstaircase.js:121 +#: js/widgets/temperament.js:610 +#: js/widgets/temperament.js:613 +#: js/widgets/temperament.js:673 +#: js/widgets/temperament.js:675 +#: js/widgets/temperament.js:2017 +#: js/widgets/temperament.js:2019 +#: js/widgets/tempo.js:84 +#: js/widgets/tempo.js:86 +#: js/widgets/timbre.js:432 +#: js/widgets/timbre.js:434 +#: js/widgets/timbre.js:465 +#: js/widgets/timbre.js:467 +#: js/widgets/timbre.js:746 +#: js/widgets/aiwidget.js:647 +#: js/widgets/aiwidget.js:654 +#: js/widgets/aiwidget.js:656 +#: js/widgets/arpeggio.js:90 +#: js/widgets/arpeggio.js:547 +#: js/widgets/arpeggio.js:549 +#: js/widgets/arpeggio.js:644 +#: js/widgets/arpeggio.js:646 +#: js/widgets/musickeyboard.js:676 +#: js/widgets/musickeyboard.js:872 +#: js/widgets/musickeyboard.js:874 +#: js/widgets/musickeyboard.js:953 +#: js/widgets/musickeyboard.js:955 +#: js/widgets/phrasemaker.js:513 +#: js/widgets/phrasemaker.js:523 +#: js/widgets/phrasemaker.js:525 +#: js/widgets/phrasemaker.js:4304 +#: js/widgets/phrasemaker.js:4528 +#: js/widgets/phrasemaker.js:4533 +#: js/widgets/phrasemaker.js:4535 +#: js/widgets/phrasemaker.js:4650 +#: js/widgets/rhythmruler.js:637 +#: js/widgets/rhythmruler.js:639 +#: js/widgets/rhythmruler.js:653 +#: js/widgets/rhythmruler.js:655 +#: js/widgets/sampler.js:162 +#: js/widgets/sampler.js:164 +#: js/widgets/sampler.js:363 msgid "Play" msgstr "実行" -#: js/toolbar.js:48 -#: js/toolbar.js:109 -#: js/toolbar.js:173 -#: js/toolbar.js:229 +#: js/toolbar.js:50 +#: js/toolbar.js:111 +#: js/toolbar.js:176 +#: js/toolbar.js:232 #: js/turtledefs.js:451 #: js/turtledefs.js:488 -#: js/activity.js:2297 -#: js/modewidget.js:99 -#: js/modewidget.js:101 -#: js/phrasemaker.js:323 -#: js/phrasemaker.js:325 -#: js/pitchdrummatrix.js:561 -#: js/pitchdrummatrix.js:563 -#: js/temperament.js:1820 -#: js/temperament.js:1822 -#: js/meterwidget.js:101 -#: js/meterwidget.js:103 -#: js/arpeggio.js:534 -#: js/arpeggio.js:536 +#: js/activity.js:2679 +#: js/widgets/modewidget.js:99 +#: js/widgets/modewidget.js:101 +#: js/widgets/meterwidget.js:206 +#: js/widgets/meterwidget.js:208 +#: js/widgets/pitchdrummatrix.js:674 +#: js/widgets/pitchdrummatrix.js:676 +#: js/widgets/temperament.js:2002 +#: js/widgets/temperament.js:2004 +#: js/widgets/arpeggio.js:534 +#: js/widgets/arpeggio.js:536 +#: js/widgets/phrasemaker.js:534 +#: js/widgets/phrasemaker.js:536 msgid "Stop" msgstr "停止" -#: js/toolbar.js:49 -#: js/toolbar.js:110 -#: js/toolbar.js:174 -#: js/toolbar.js:230 +#: js/toolbar.js:51 +#: js/toolbar.js:112 +#: js/toolbar.js:177 +#: js/toolbar.js:233 #: js/turtledefs.js:498 msgid "Record" msgstr "録音" -#: js/toolbar.js:50 -#: js/toolbar.js:51 +#: js/toolbar.js:52 +#: js/toolbar.js:53 msgid "Full screen" msgstr "フルスクリーン" -#: js/toolbar.js:52 -#: js/toolbar.js:112 -#: js/toolbar.js:177 -#: js/toolbar.js:232 +#: js/toolbar.js:54 +#: js/toolbar.js:115 +#: js/toolbar.js:180 +#: js/toolbar.js:236 #: js/turtledefs.js:504 msgid "Toggle Fullscreen" msgstr "" -#: js/toolbar.js:53 -#: js/toolbar.js:113 -#: js/toolbar.js:178 -#: js/toolbar.js:233 +#: js/toolbar.js:55 +#: js/toolbar.js:116 +#: js/toolbar.js:181 +#: js/toolbar.js:237 #: js/turtledefs.js:510 -#: js/StringHelper.js:33 +#: planet/js/StringHelper.js:33 msgid "New project" msgstr "新しいプロジェクト" -#: js/toolbar.js:54 -#: js/toolbar.js:114 -#: js/toolbar.js:179 -#: js/toolbar.js:234 +#: js/toolbar.js:56 +#: js/toolbar.js:117 +#: js/toolbar.js:182 +#: js/toolbar.js:238 #: js/turtledefs.js:516 msgid "Load project from file" msgstr "プロジェクトを読みこむ" -#: js/toolbar.js:55 -#: js/toolbar.js:115 -#: js/toolbar.js:116 -#: js/toolbar.js:180 -#: js/toolbar.js:235 +#: js/toolbar.js:57 +#: js/toolbar.js:118 +#: js/toolbar.js:119 +#: js/toolbar.js:183 +#: js/toolbar.js:239 #: js/turtledefs.js:541 #: js/turtledefs.js:550 #: js/turtledefs.js:571 msgid "Save project" msgstr "プロジェクトをほぞん" -#: js/toolbar.js:56 -#: js/toolbar.js:75 +#: js/toolbar.js:58 #: js/toolbar.js:77 -#: js/toolbar.js:135 -#: js/toolbar.js:144 -#: js/toolbar.js:146 -#: js/toolbar.js:181 -#: js/toolbar.js:199 -#: js/toolbar.js:201 -#: js/toolbar.js:236 -#: js/toolbar.js:254 -#: js/toolbar.js:256 +#: js/toolbar.js:79 +#: js/toolbar.js:138 +#: js/toolbar.js:147 +#: js/toolbar.js:149 +#: js/toolbar.js:184 +#: js/toolbar.js:202 +#: js/toolbar.js:204 +#: js/toolbar.js:240 +#: js/toolbar.js:258 +#: js/toolbar.js:260 msgid "Save project as HTML" msgstr "HTMLをほぞん" -#: js/toolbar.js:57 -#: js/toolbar.js:117 -#: js/toolbar.js:182 -#: js/toolbar.js:237 +#: js/toolbar.js:59 +#: js/toolbar.js:120 +#: js/toolbar.js:185 +#: js/toolbar.js:241 msgid "Find and share projects" msgstr "みんなの作品" -#: js/toolbar.js:58 -#: js/toolbar.js:118 -#: js/toolbar.js:183 -#: js/toolbar.js:238 +#: js/toolbar.js:60 +#: js/toolbar.js:121 +#: js/toolbar.js:186 +#: js/toolbar.js:242 msgid "Offline. Sharing is unavailable" msgstr "オフライン。シェア機能が使えません" -#: js/toolbar.js:59 -#: js/toolbar.js:119 -#: js/toolbar.js:184 -#: js/toolbar.js:239 -msgid "Auxiliary menu" -msgstr "サブメニュー" - #: js/toolbar.js:61 -#: js/toolbar.js:121 -#: js/toolbar.js:186 -#: js/toolbar.js:241 +#: js/toolbar.js:122 +#: js/toolbar.js:187 +#: js/toolbar.js:243 +msgid "Auxiliary menu" +msgstr "サブメニュー" + +#: js/toolbar.js:62 +#: js/toolbar.js:123 +#: js/toolbar.js:188 +#: js/toolbar.js:244 +#: js/turtledefs.js:752 +#: js/piemenus.js:3423 +msgid "Help" +msgstr "説明" + +#: js/toolbar.js:63 +#: js/toolbar.js:124 +#: js/toolbar.js:189 +#: js/toolbar.js:245 msgid "Run slowly" msgstr "ゆっくり実行する" -#: js/toolbar.js:62 -#: js/toolbar.js:122 -#: js/toolbar.js:187 -#: js/toolbar.js:242 +#: js/toolbar.js:64 +#: js/toolbar.js:125 +#: js/toolbar.js:190 +#: js/toolbar.js:246 #: js/turtledefs.js:682 msgid "Run step by step" msgstr "ブロックを1つずつ実行する" -#: js/toolbar.js:63 -#: js/toolbar.js:123 -#: js/toolbar.js:188 -#: js/toolbar.js:243 +#: js/toolbar.js:65 +#: js/toolbar.js:126 +#: js/toolbar.js:191 +#: js/toolbar.js:247 #: js/turtledefs.js:689 msgid "Display statistics" msgstr "とうけいを表示する" -#: js/toolbar.js:64 -#: js/toolbar.js:124 -#: js/toolbar.js:189 -#: js/toolbar.js:244 +#: js/toolbar.js:66 +#: js/toolbar.js:127 +#: js/toolbar.js:192 +#: js/toolbar.js:248 msgid "Load plugin" msgstr "プラグインを読みこむ" -#: js/toolbar.js:65 -#: js/toolbar.js:125 -#: js/toolbar.js:190 -#: js/toolbar.js:245 +#: js/toolbar.js:67 +#: js/toolbar.js:128 +#: js/toolbar.js:193 +#: js/toolbar.js:249 #: js/turtledefs.js:696 msgid "Delete plugin" msgstr "プラグインを消す" -#: js/toolbar.js:66 -#: js/toolbar.js:126 -#: js/toolbar.js:191 -#: js/toolbar.js:246 +#: js/toolbar.js:68 +#: js/toolbar.js:129 +#: js/toolbar.js:194 +#: js/toolbar.js:250 msgid "Enable horizontal scrolling" msgstr "自由な方向にスクロール" -#: js/toolbar.js:67 -#: js/toolbar.js:127 -#: js/toolbar.js:192 -#: js/toolbar.js:247 +#: js/toolbar.js:69 +#: js/toolbar.js:130 +#: js/toolbar.js:195 +#: js/toolbar.js:251 msgid "Disable horizontal scrolling" msgstr "たて方向にスクロール" -#: js/toolbar.js:68 -#: js/toolbar.js:128 -#: js/toolbar.js:193 -#: js/toolbar.js:248 -#: js/LocalCard.js:54 -#: js/StringHelper.js:71 +#: js/toolbar.js:70 +#: js/toolbar.js:131 +#: js/toolbar.js:196 +#: js/toolbar.js:252 +#: planet/js/LocalCard.js:54 +#: planet/js/StringHelper.js:71 msgid "Merge with current project" msgstr "プロジェクトを組みあわせる" -#: js/toolbar.js:69 -#: js/toolbar.js:129 +#: js/toolbar.js:71 +#: js/toolbar.js:132 msgid "Set Pitch Preview" msgstr "変化記号を設定" -#: js/toolbar.js:70 -#: js/toolbar.js:130 -#: js/toolbar.js:194 -#: js/toolbar.js:249 -msgid "Toggle JavaScript Editor" -msgstr "JavaScript編集をオン/オフ" +#: js/toolbar.js:72 +#: js/toolbar.js:133 +#: js/toolbar.js:197 +#: js/toolbar.js:253 +msgid "JavaScript Editor" +msgstr "" -#: js/toolbar.js:71 -#: js/toolbar.js:131 -#: js/toolbar.js:195 -#: js/toolbar.js:250 +#: js/toolbar.js:73 +#: js/toolbar.js:134 +#: js/toolbar.js:198 +#: js/toolbar.js:254 #: js/turtledefs.js:724 msgid "Restore" msgstr "すてたブロックをもどす" -#: js/toolbar.js:72 -#: js/toolbar.js:132 -#: js/toolbar.js:196 -#: js/toolbar.js:251 +#: js/toolbar.js:74 +#: js/toolbar.js:135 +#: js/toolbar.js:199 +#: js/toolbar.js:255 msgid "Switch to beginner mode" msgstr "かんたんモードにする" -#: js/toolbar.js:73 -#: js/toolbar.js:133 -#: js/toolbar.js:197 -#: js/toolbar.js:252 +#: js/toolbar.js:75 +#: js/toolbar.js:136 +#: js/toolbar.js:200 +#: js/toolbar.js:256 msgid "Switch to advanced mode" msgstr "はってんモードにする" -#: js/toolbar.js:74 -#: js/toolbar.js:134 -#: js/toolbar.js:143 -#: js/toolbar.js:198 -#: js/toolbar.js:253 +#: js/toolbar.js:76 +#: js/toolbar.js:137 +#: js/toolbar.js:146 +#: js/toolbar.js:201 +#: js/toolbar.js:257 #: js/turtledefs.js:738 msgid "Select language" msgstr "言語をえらぶ" -#: js/toolbar.js:76 -#: js/toolbar.js:79 -#: js/toolbar.js:137 +#: js/toolbar.js:78 +#: js/toolbar.js:81 +#: js/toolbar.js:140 #: js/turtledefs.js:579 msgid "Save mouse artwork as PNG" msgstr "PNGでほぞん" -#: js/toolbar.js:78 -#: js/toolbar.js:136 +#: js/toolbar.js:80 +#: js/toolbar.js:139 #: js/turtledefs.js:575 msgid "Save mouse artwork as SVG" msgstr "SVGでほぞん" -#: js/toolbar.js:80 -#: js/toolbar.js:138 +#: js/toolbar.js:82 +#: js/toolbar.js:141 #: js/turtledefs.js:583 msgid "Save music as WAV" msgstr "WAVでほぞん" -#: js/toolbar.js:81 -#: js/toolbar.js:139 +#: js/toolbar.js:83 +#: js/toolbar.js:142 #: js/turtledefs.js:587 msgid "Save sheet music as ABC" msgstr "ABCのフォーマットでほぞん" -#: js/toolbar.js:82 -#: js/toolbar.js:140 +#: js/toolbar.js:84 +#: js/toolbar.js:143 #: js/turtledefs.js:591 msgid "Save sheet music as Lilypond" msgstr "がくふ(Lilypondのフォーマット)でほぞん" -#: js/toolbar.js:83 +#: js/toolbar.js:85 msgid "Save sheet music as MusicXML" msgstr "プロジェクトをMusicXML楽譜でほぞん" -#: js/toolbar.js:84 -#: js/toolbar.js:141 -#: js/toolbar.js:149 -#: js/toolbar.js:204 -#: js/toolbar.js:259 +#: js/toolbar.js:86 +#: js/toolbar.js:144 +#: js/toolbar.js:152 +#: js/toolbar.js:207 +#: js/toolbar.js:263 #: js/turtledefs.js:562 #: js/turtledefs.js:595 msgid "Save block artwork as SVG" msgstr "ブロックのアートをほぞん" -#: js/toolbar.js:85 -#: js/toolbar.js:142 -#: js/toolbar.js:150 -#: js/toolbar.js:205 -#: js/toolbar.js:260 +#: js/toolbar.js:87 +#: js/toolbar.js:145 +#: js/toolbar.js:153 +#: js/toolbar.js:208 +#: js/toolbar.js:264 +#: js/turtles.js:911 msgid "Confirm" msgstr "作成する" -#: js/toolbar.js:86 -#: js/toolbar.js:151 -#: js/toolbar.js:206 -#: js/toolbar.js:261 +#: js/toolbar.js:88 +#: js/toolbar.js:154 +#: js/toolbar.js:209 +#: js/toolbar.js:265 msgid "English (United States)" msgstr "" -#: js/toolbar.js:87 -#: js/toolbar.js:152 -#: js/toolbar.js:207 -#: js/toolbar.js:262 +#: js/toolbar.js:89 +#: js/toolbar.js:155 +#: js/toolbar.js:210 +#: js/toolbar.js:266 msgid "English (United Kingdom)" msgstr "" -#: js/toolbar.js:88 -#: js/toolbar.js:153 -#: js/toolbar.js:208 -#: js/toolbar.js:263 +#: js/toolbar.js:90 +#: js/toolbar.js:156 +#: js/toolbar.js:211 +#: js/toolbar.js:267 msgid "日本語" msgstr "" -#: js/toolbar.js:89 +#: js/toolbar.js:91 msgid "한국어" msgstr "" -#: js/toolbar.js:90 -#: js/toolbar.js:155 -#: js/toolbar.js:210 -#: js/toolbar.js:265 -msgid "español" -msgstr "" +#: js/toolbar.js:92 +#: js/toolbar.js:158 +#: js/toolbar.js:213 +#: js/toolbar.js:269 +msgid "español" +msgstr "" + +#: js/toolbar.js:93 +#: js/toolbar.js:159 +#: js/toolbar.js:214 +#: js/toolbar.js:270 +msgid "português" +msgstr "" + +#: js/toolbar.js:94 +#: js/toolbar.js:160 +#: js/toolbar.js:215 +#: js/toolbar.js:271 +msgid "にほんご" +msgstr "" + +#: js/toolbar.js:95 +#: js/toolbar.js:161 +#: js/toolbar.js:216 +#: js/toolbar.js:272 +msgid "中文" +msgstr "" + +#: js/toolbar.js:96 +#: js/toolbar.js:162 +#: js/toolbar.js:217 +#: js/toolbar.js:273 +msgid "ภาษาไทย" +msgstr "" + +#: js/toolbar.js:97 +#: js/toolbar.js:163 +#: js/toolbar.js:218 +#: js/toolbar.js:274 +msgid "aymara" +msgstr "" + +#: js/toolbar.js:98 +#: js/toolbar.js:164 +#: js/toolbar.js:219 +#: js/toolbar.js:275 +msgid "quechua" +msgstr "" + +#: js/toolbar.js:99 +#: js/toolbar.js:165 +#: js/toolbar.js:220 +#: js/toolbar.js:276 +msgid "guarani" +msgstr "" + +#: js/toolbar.js:100 +#: js/toolbar.js:166 +#: js/toolbar.js:221 +#: js/toolbar.js:277 +msgid "हिंदी" +msgstr "" + +#: js/toolbar.js:101 +#: js/toolbar.js:168 +#: js/toolbar.js:222 +#: js/toolbar.js:279 +msgid "igbo" +msgstr "" + +#: js/toolbar.js:102 +#: js/toolbar.js:169 +#: js/toolbar.js:223 +#: js/toolbar.js:280 +msgid "عربى" +msgstr "" + +#: js/toolbar.js:103 +#: js/toolbar.js:167 +#: js/toolbar.js:224 +#: js/toolbar.js:278 +msgid "తెలుగు" +msgstr "" + +#: js/toolbar.js:104 +#: js/toolbar.js:170 +#: js/toolbar.js:225 +#: js/toolbar.js:281 +msgid "עִברִית" +msgstr "" + +#: js/toolbar.js:113 +#: js/toolbar.js:114 +#: js/toolbar.js:178 +#: js/toolbar.js:179 +#: js/toolbar.js:234 +#: js/toolbar.js:235 +msgid "Full Screen" +msgstr "" + +#: js/toolbar.js:148 +#: js/toolbar.js:151 +#: js/toolbar.js:203 +#: js/toolbar.js:206 +#: js/toolbar.js:259 +#: js/toolbar.js:262 +#: js/turtledefs.js:558 +msgid "Save turtle artwork as PNG" +msgstr "アートをPNGで保存" + +#: js/toolbar.js:150 +#: js/toolbar.js:205 +#: js/toolbar.js:261 +#: js/turtledefs.js:554 +msgid "Save turtle artwork as SVG" +msgstr "アートをSVGで保存" + +#: js/toolbar.js:157 +#: js/toolbar.js:212 +#: js/toolbar.js:268 +msgid "한국인" +msgstr "" + +#: js/toolbar.js:174 +#: js/toolbar.js:230 +msgid "About Turtle Blocks" +msgstr "タートル・ブロックスについて" + +#: js/toolbar.js:446 +#: js/toolbar.js:457 +#: js/toolbar.js:497 +msgid "Turtle Wrap Off" +msgstr "" + +#: js/toolbar.js:466 +#: js/toolbar.js:506 +msgid "Turtle Wrap On" +msgstr "" + +#: js/turtle-painter.js:1192 +#: js/turtle-painter.js:1193 +#: js/turtles.js:118 +#: js/block-verbose.js:1623 +#: js/block.js:1587 +#: js/lilypond.js:749 +#: js/lilypond.js:913 +#: js/lilypond.js:951 +#: js/logo.js:1184 +#: js/blocks/ActionBlocks.js:1223 +#: js/blocks/ProgramBlocks.js:1267 +msgid "start" +msgstr "スタート" + +#: js/turtledefs.js:40 +#.TRANS: put the URL to the guide here, e.g., https://github.com/sugarlabs/turtleblocksjs/tree/master/guide/README.md +msgid "guide url" +msgstr "https://github.com/sugarlabs/musicblocks/tree/master/guide-ja/music_blocks_operation_manual.pdf" + +#: js/turtledefs.js:85 +#: js/turtledefs.js:437 +msgid "Turtle Blocks is a Logo-inspired turtle that draws colorful pictures with snap-together visual-programming blocks." +msgstr "" + +#: js/turtledefs.js:118 +#: js/turtledefs.js:220 +msgid "search" +msgstr "検索" + +#: js/turtledefs.js:120 +#: js/turtledefs.js:222 +#: js/blocks/MeterBlocks.js:1343 +#: js/blocks/WidgetBlocks.js:522 +#.TRANS: musical meter (time signature), e.g., 4:4 +msgid "meter" +msgstr "拍子" + +#: js/turtledefs.js:122 +#: js/turtledefs.js:224 +msgid "intervals" +msgstr "音程" + +#: js/turtledefs.js:124 +#: js/turtledefs.js:226 +msgid "ornament" +msgstr "そうしょく" + +#: js/turtledefs.js:125 +#: js/turtledefs.js:227 +#: js/blocks/VolumeBlocks.js:362 +#: js/blocks/VolumeBlocks.js:502 +#: js/blocks/VolumeBlocks.js:545 +msgid "volume" +msgstr "音量" + +#: js/turtledefs.js:126 +#: js/turtledefs.js:228 +#: js/block-verbose.js:1700 +#: js/block-verbose.js:2626 +#: js/block.js:1664 +#: js/block.js:2554 +#: js/lilypond.js:732 +#: js/lilypond.js:897 +#: js/lilypond.js:941 +#: js/palette.js:577 +#: js/blocks/RhythmBlocks.js:766 +#: js/blocks/DrumBlocks.js:477 +#: js/blocks/VolumeBlocks.js:502 +#: js/widgets/phrasemaker.js:1038 +msgid "drum" +msgstr "ドラム" + +#: js/turtledefs.js:129 +#: js/turtledefs.js:231 +msgid "boxes" +msgstr "数の箱" + +#: js/turtledefs.js:130 +#: js/turtledefs.js:232 +msgid "widgets" +msgstr "ツール" + +#: js/turtledefs.js:131 +#: js/turtledefs.js:233 +#: js/widgets/phrasemaker.js:1039 +msgid "graphics" +msgstr "ネズミの動き" + +#: js/turtledefs.js:134 +#: js/turtledefs.js:236 +msgid "boolean" +msgstr "くらべる" + +#: js/turtledefs.js:137 +#: js/turtledefs.js:239 +#: js/blocks/HeapBlocks.js:59 +#: js/widgets/status.js:147 +msgid "heap" +msgstr "ヒープ" + +#: js/turtledefs.js:138 +#: js/turtledefs.js:240 +#: js/blocks/DictBlocks.js:142 +#: js/blocks/ProgramBlocks.js:495 +msgid "dictionary" +msgstr "辞書" + +#: js/turtledefs.js:139 +#: js/turtledefs.js:241 +msgid "ensemble" +msgstr "合奏" + +#: js/turtledefs.js:140 +#: js/turtledefs.js:242 +msgid "extras" +msgstr "その他" + +#: js/turtledefs.js:142 +#: js/turtledefs.js:244 +#.TRANS: program as in computer program +#.TRANS: program as in computer program +msgid "program" +msgstr "プログラム" + +#: js/turtledefs.js:143 +#: js/turtledefs.js:245 +msgid "my blocks" +msgstr "自分のブロック" + +#: js/turtledefs.js:185 +#: js/turtledefs.js:281 +msgid "artwork" +msgstr "アート" + +#: js/turtledefs.js:185 +#: js/turtledefs.js:281 +msgid "logic" +msgstr "論理" + +#: js/turtledefs.js:185 +#: js/turtledefs.js:281 +msgid "music" +msgstr "音楽" + +#: js/turtledefs.js:187 +#: js/turtledefs.js:463 +msgid "Music Blocks is a collection of tools for exploring fundamental musical concepts in a fun way." +msgstr "音楽と算数とプログラミングをむすびつけ、深く楽しむことができるツール。それが、ミュージック・ブロックスだ。" + +#: js/turtledefs.js:436 +msgid "Welcome to Turtle Blocks" +msgstr "タートル・ブロックへようこそ" + +#: js/turtledefs.js:438 +#: js/turtledefs.js:465 +#: js/turtledefs.js:774 +#: js/turtledefs.js:805 +msgid "The current version is" +msgstr "ミュージック・ブロックスの最新バージョンは" + +#: js/turtledefs.js:446 +#: js/turtledefs.js:483 +msgid "Click the run button to run the project in fast mode." +msgstr "クリックをすると、ふつうのスピードでプログラムを実行することができる。" + +#: js/turtledefs.js:452 +msgid "Stop the turtle." +msgstr "" + +#: js/turtledefs.js:454 +#: js/turtledefs.js:491 +msgid "You can also type Alt-S to stop." +msgstr "プログラムは、このボタンをおすかわりに、キーボードで「Altキーと Sキーの同時おし」でも止めることができる。" + +#: js/turtledefs.js:462 +#: js/widgets/help.js:333 +msgid "Welcome to Music Blocks" +msgstr "ミュージック・ブロックスへようこそ" + +#: js/turtledefs.js:472 +#: js/widgets/help.js:334 +msgid "Meet Mr. Mouse!" +msgstr "ミスター・マウスに会おう!" + +#: js/turtledefs.js:473 +msgid "Mr Mouse is our Music Blocks conductor." +msgstr "ミスター・マウスは、ミュージック・ブロックスの指揮者。" + +#: js/turtledefs.js:475 +msgid "Mr Mouse encourages you to explore Music Blocks." +msgstr "ミスター・マウスと一緒に、ミュージック・ブロックスの世界をたんきゅうしよう。" + +#: js/turtledefs.js:477 +msgid "Let us start our tour!" +msgstr "では、ツアーを始めよう。" + +#: js/turtledefs.js:489 +msgid "Stop the music (and the mice)." +msgstr "実行しているプログラムを止める。" + +#: js/turtledefs.js:499 +msgid "Record your project as video." +msgstr "再生されているビデオを録音する" + +#: js/turtledefs.js:505 +msgid "Toggle Fullscreen mode." +msgstr "" + +#: js/turtledefs.js:511 +msgid "Initialize a new project." +msgstr "新しいプロジェクトを作る。" + +#: js/turtledefs.js:517 +msgid "You can also load projects from the file system." +msgstr "コンピューターに保存してあるファイルから、ミュージック・ブロックスのプロジェクトを読み込んで開く。" + +#: js/turtledefs.js:522 +#: planet/js/StringHelper.js:46 +msgid "Delete" +msgstr "消す" + +#: js/turtledefs.js:523 +msgid "To delete a block, just right-click on it, then you will be able to see the delete option" +msgstr "" + +#: js/turtledefs.js:528 +#: js/activity.js:2649 +#: planet/js/LocalCard.js:31 +msgid "Copy" +msgstr "コピー" + +#: js/turtledefs.js:529 +msgid "To copy a block, just right-click on it, then you will be able to see the copy option" +msgstr "" + +#: js/turtledefs.js:534 +#: js/piemenus.js:3411 +msgid "Extract" +msgstr "取り出す" + +#: js/turtledefs.js:535 +msgid "To extract a block, just right-click on it, then you will be able to see the extract option" +msgstr "" + +#: js/turtledefs.js:542 +#: js/turtledefs.js:552 +#: js/turtledefs.js:573 +msgid "Save your project to a file." +msgstr "げんざい開いているプロジェクトをほぞんする。" + +#: js/turtledefs.js:549 +#: js/turtledefs.js:570 +msgid "save" +msgstr "保存する" + +#: js/turtledefs.js:556 +#: js/turtledefs.js:577 +msgid "Save graphics from your project to as SVG." +msgstr "プロジェクトのグラフィックをSVGで保存" + +#: js/turtledefs.js:560 +#: js/turtledefs.js:581 +msgid "Save graphics from your project as PNG." +msgstr "プロジェクトのグラフィックをPNGで保存" + +#: js/turtledefs.js:564 +#: js/turtledefs.js:597 +msgid "Save block artwork as an SVG file." +msgstr "ブロックのグラフィックをSVGで保存" + +#: js/turtledefs.js:585 +msgid "Save audio from your project as WAV." +msgstr "プロジェクトの音をWAVで保存" + +#: js/turtledefs.js:589 +msgid "Save your project to as an ABC file." +msgstr "プロジェクトをABCで保存" + +#: js/turtledefs.js:593 +msgid "Save your project to as a Lilypond file." +msgstr "作成した音楽を、コンピューター上でがくふをえがくファイル(Lilypondファイル)に変えてほぞんする。" + +#: js/turtledefs.js:604 +msgid "Load samples from server" +msgstr "みんなの作品" + +#: js/turtledefs.js:605 +msgid "This button opens a viewer for loading example projects." +msgstr "インターネットの「プラネット(わくせい)」というページから、ほかの人が作ったプロジェクトを選んで、読みこむことができる。" + +#: js/turtledefs.js:611 +msgid "Palette buttons" +msgstr "パレットボタン" + +#: js/turtledefs.js:612 +msgid "This toolbar contains the palette buttons including Rhythm Pitch Tone Action and more." +msgstr "ミュージック・ブロックスの左側には、プログラミングに使うさまざまなブロックをグループ分けした「パレットボタン」がある。" + +#: js/turtledefs.js:614 +msgid "Click to show the palettes of blocks and drag blocks from the palettes onto the canvas to use them." +msgstr "それぞれのパレットボタンをクリックし、「音符(おんぷ)」「アクション」「ペン」などから好きなブロックを選んで、カンバス上にドラッグして置いてみよう。" + +#: js/turtledefs.js:620 +msgid "Cartesian/Polar" +msgstr "中心の角度とほうがん(ざひょう)をひょうじ" + +#: js/turtledefs.js:621 +msgid "Show or hide a coordinate grid." +msgstr "カンバス上にほうがん(ざひょう)や中心の角度を表示したり、かくしたりできる。" + +#: js/turtledefs.js:626 +#: js/turtles.js:902 +msgid "Clean" +msgstr "ネズミとペンをもどす" + +#: js/turtledefs.js:627 +msgid "Clear the screen and return the mice to their initial positions." +msgstr "ネズミを元の位置にもどし、ペンでえがいた線をすべて消す。" + +#: js/turtledefs.js:632 +#: js/turtles.js:955 +msgid "Collapse" +msgstr "カンバスをしゅくしょう" + +#: js/turtledefs.js:633 +msgid "Collapse the graphics window." +msgstr "ネズミがいどうしたり、ペンで線をえがいたりできる「カンバス」の表示サイズを しゅくしょうしたり、かくだいしたりする。カンバスをしゅくしょうした場合は、プログラムをふつうのそくどで実行しても、ブロックがかくれない。ふつうの実行そくどでプログラムの動作かくにんをしたいときなどに便利だ。" + +#: js/turtledefs.js:638 +#: js/activity.js:5684 +msgid "Home" +msgstr "ホーム" + +#: js/turtledefs.js:639 +msgid "Return all blocks to the center of the screen." +msgstr "すべてのブロックを、カンバスのまんなかに配置する。" + +#: js/turtledefs.js:644 +msgid "Show/hide blocks" +msgstr "ブロックを表示する/かくす" + +#: js/turtledefs.js:645 +msgid "Hide or show the blocks and the palettes." +msgstr "クリックすると、パレットボタンとプログラムのブロックを画面上に表示させたり、かくしたりすることができる。" + +#: js/turtledefs.js:650 +msgid "Expand/collapse collapsable blocks" +msgstr "ブロックを広げる/折りたたむ" + +#: js/turtledefs.js:651 +msgid "Expand or collapse start and action stacks." +msgstr "クリックすると、「スタート」と「アクション」に使われているブロックを、広げて表示したり、折りたたんでかくしたりすることができる。" + +#: js/turtledefs.js:658 +#: js/activity.js:5704 +msgid "Decrease block size" +msgstr "ブロックの表示を小さくする" + +#: js/turtledefs.js:659 +msgid "Decrease the size of the blocks." +msgstr "画面に表示されるブロックのサイズを小さくする。" + +#: js/turtledefs.js:664 +#: js/activity.js:5710 +msgid "Increase block size" +msgstr "ブロックの表示を大きくする" + +#: js/turtledefs.js:665 +msgid "Increase the size of the blocks." +msgstr "画面に表示されるブロックのサイズを大きくする。" + +#: js/turtledefs.js:670 +msgid "Expand/collapse option toolbar" +msgstr "オプションツールバーを表示" + +#: js/turtledefs.js:671 +msgid "Click this button to expand or collapse the auxillary toolbar." +msgstr "このボタンをクリックすると「サブメニュー」を開いたり、折りたたんだりすることができる。" + +#: js/turtledefs.js:676 +msgid "Run slow" +msgstr "ゆっくり実行する" + +#: js/turtledefs.js:677 +msgid "Click to run the project in slow mode." +msgstr "クリックをすると、ゆっくりとしたスピードでプログラムを実行することができる。" + +#: js/turtledefs.js:683 +msgid "Click to run the project step by step." +msgstr "クリックをすると、とてもゆっくり、ブロックを1つずつ実行する。プログラムがうまくはたらかず、どのブロックが原因なのかを調べたいときなどに便利だ。" + +#: js/turtledefs.js:690 +msgid "Display statistics about your Music project." +msgstr "プロジェクトに含まれているブロックの種類、わりあいなど、とうけいてきなじょうほうを表示する。" + +#: js/turtledefs.js:697 +msgid "Delete a selected plugin." +msgstr "せんたくしたプラグインを消す。" + +#: js/turtledefs.js:704 +msgid "Enable scrolling" +msgstr "自由な方向に/たて方向にスクロール" + +#: js/turtledefs.js:705 +msgid "You can scroll the blocks on the canvas." +msgstr "カンバス上をドラッグそうさしたときに、画面をスクロールさせることができる方向を上下だけと上下左右に変える。" + +#: js/turtledefs.js:714 +msgid "Wrap Turtle" +msgstr "アートを包む" + +#: js/turtledefs.js:715 +msgid "Turn Turtle wrapping On or Off." +msgstr "アートを包むか・包まない" + +#: js/turtledefs.js:725 +msgid "Restore blocks from the trash." +msgstr "ゴミ箱にすててしまったブロックを取り出してもどす。ふくすうのブロックをすててあるときは新しい順に、ゴミ箱が空になるまでブロックを拾いもどすことができる。" + +#: js/turtledefs.js:732 +msgid "Switch mode" +msgstr "はってんモード/かんたんモードにする" + +#: js/turtledefs.js:733 +msgid "Switch between beginner and advance modes." +msgstr "ミュージック・ブロックスをかんたんモード/はってんモードに切りかえる。モードによって使えるきのうやブロックの種類が変わる。" + +#: js/turtledefs.js:739 +msgid "Select your language preference." +msgstr "ブロックの名前などに表示される言語をえらぶ。" + +#: js/turtledefs.js:745 +msgid "Keyboard shortcuts" +msgstr "キーボードのショートカット" + +#: js/turtledefs.js:746 +msgid "You can type d to create a do block and r to create a re block etc." +msgstr "キーボードを使うと、パレットボタンからブロックをドラッグして配置するだけでなく、ボタンをおすだけでちょくせつブロックを置くことができる。

★ショートカットキー
d …… 「ド」(4分音符、4オクターヴ)
r …… 「レ」(4分音符、4オクターヴ)
m …… 「ミ」(4分音符、4オクターヴ)
f …… 「ファ」(4分音符、4オクターヴ)
s …… 「ソ」(4分音符、4オクターヴ)
l …… 「ラ」(4分音符、4オクターヴ)
t …… 「シ」(4分音符、4オクターヴ)
" -#: js/toolbar.js:91 -#: js/toolbar.js:156 -#: js/toolbar.js:211 -#: js/toolbar.js:266 -msgid "português" -msgstr "" +#: js/turtledefs.js:753 +msgid "Show these messages." +msgstr "ミスター・マウスによる、ミュージック・ブロックスの説明を表示する。" -#: js/toolbar.js:92 -#: js/toolbar.js:157 -#: js/toolbar.js:212 -#: js/toolbar.js:267 -msgid "にほんご" -msgstr "" +#: js/turtledefs.js:759 +#: js/turtledefs.js:790 +#: js/widgets/help.js:335 +msgid "Guide" +msgstr "もっとくわしく知るには" -#: js/toolbar.js:93 -#: js/toolbar.js:158 -#: js/toolbar.js:213 -#: js/toolbar.js:268 -msgid "中文" -msgstr "" +#: js/turtledefs.js:760 +msgid "A detailed guide to Turtle Blocks is available." +msgstr "インターネットから、ミュージック・ブロックスのさらにくわしいガイドページを見ることができる。次のリンク先を開いてみよう。" -#: js/toolbar.js:94 -#: js/toolbar.js:159 -#: js/toolbar.js:214 -#: js/toolbar.js:269 -msgid "ภาษาไทย" -msgstr "" +#: js/turtledefs.js:764 +msgid "Turtle Blocks Guide" +msgstr "ミュージック・ブロックスガイド" -#: js/toolbar.js:95 -#: js/toolbar.js:160 -#: js/toolbar.js:215 -#: js/toolbar.js:270 -msgid "aymara" -msgstr "" +#: js/turtledefs.js:767 +#: js/turtledefs.js:798 +#: js/widgets/help.js:336 +msgid "About" +msgstr "ミュージック・ブロックスについて" -#: js/toolbar.js:96 -#: js/toolbar.js:161 -#: js/toolbar.js:216 -#: js/toolbar.js:271 -msgid "quechua" -msgstr "" +#: js/turtledefs.js:768 +msgid "Turtle Blocks is an open source collection of tools for exploring musical concepts." +msgstr "ミュージック・ブロックスは、音楽のコンセプトをたんきゅうするためにつくられた、オープンソースのツールだ。" -#: js/toolbar.js:97 -#: js/toolbar.js:162 -#: js/toolbar.js:217 -#: js/toolbar.js:272 -msgid "guarani" -msgstr "" +#: js/turtledefs.js:770 +msgid "A full list of contributors can be found in the Turtle Blocks GitHub repository." +msgstr "ミュージック・ブロックスにかかわってきた人のいちらんは、GitHub(ギットハブ)のリポジトリで見ることができる。" -#: js/toolbar.js:98 -#: js/toolbar.js:163 -#: js/toolbar.js:218 -#: js/toolbar.js:273 -msgid "हिंदी" -msgstr "" +#: js/turtledefs.js:772 +msgid "Turtle Blocks is licensed under the AGPL." +msgstr "ミュージック・ブロックスのプログラムは、だれでも自由にみることができる。" -#: js/toolbar.js:99 -#: js/toolbar.js:165 -#: js/toolbar.js:219 -#: js/toolbar.js:275 -msgid "igbo" +#: js/turtledefs.js:780 +msgid "Turtle Blocks GitHub repository" msgstr "" -#: js/toolbar.js:100 -#: js/toolbar.js:166 -#: js/toolbar.js:220 -#: js/toolbar.js:276 -msgid "عربى" -msgstr "" +#: js/turtledefs.js:783 +#: js/turtledefs.js:814 +#: js/widgets/help.js:337 +#: js/widgets/help.js:359 +msgid "Congratulations." +msgstr "おめでとうございます!" -#: js/toolbar.js:101 -#: js/toolbar.js:164 -#: js/toolbar.js:221 -#: js/toolbar.js:274 -msgid "తెలుగు" +#: js/turtledefs.js:784 +msgid "You have finished the tour. Please enjoy Turtle Blocks!" msgstr "" -#: js/toolbar.js:102 -#: js/toolbar.js:167 -#: js/toolbar.js:222 -#: js/toolbar.js:277 -msgid "עִברִית" -msgstr "" +#: js/turtledefs.js:791 +msgid "A detailed guide to Music Blocks is available." +msgstr "インターネットから、ミュージック・ブロックスのさらにくわしいガイドページを見ることができる。次のリンク先を開いてみよう。" -#: js/toolbar.js:111 -#: js/toolbar.js:175 -#: js/toolbar.js:176 -#: js/toolbar.js:231 -msgid "Full Screen" -msgstr "" +#: js/turtledefs.js:799 +msgid "Music Blocks is an open source collection of tools for exploring musical concepts." +msgstr "ミュージック・ブロックスは、音楽のコンセプトをたんきゅうするためにつくられた、オープンソースのツールだ。" -#: js/toolbar.js:145 -#: js/toolbar.js:148 -#: js/toolbar.js:200 -#: js/toolbar.js:203 -#: js/toolbar.js:255 -#: js/toolbar.js:258 -#: js/turtledefs.js:558 -msgid "Save turtle artwork as PNG" -msgstr "アートをPNGで保存" +#: js/turtledefs.js:801 +msgid "A full list of contributors can be found in the Music Blocks GitHub repository." +msgstr "ミュージック・ブロックスにかかわってきた人のいちらんは、GitHub(ギットハブ)のリポジトリで見ることができる。" -#: js/toolbar.js:147 -#: js/toolbar.js:202 -#: js/toolbar.js:257 -#: js/turtledefs.js:554 -msgid "Save turtle artwork as SVG" -msgstr "アートをSVGで保存" +#: js/turtledefs.js:803 +msgid "Music Blocks is licensed under the AGPL." +msgstr "ミュージック・ブロックスのプログラムは、だれでも自由にみることができる。" -#: js/toolbar.js:154 -#: js/toolbar.js:209 -#: js/toolbar.js:264 -msgid "한국인" -msgstr "" +#: js/turtledefs.js:811 +msgid "Music Blocks GitHub repository" +msgstr "ミュージック・ブロックスのリポジトリ" -#: js/toolbar.js:171 -#: js/toolbar.js:227 -msgid "About Turtle Blocks" -msgstr "タートル・ブロックスについて" +#: js/turtledefs.js:815 +msgid "You have finished the tour. Please enjoy Music Blocks!" +msgstr "ミスター・マウスのツアーはここで終わり。ミュージック・ブロックスを自由に楽しもう。" -#: js/toolbar.js:429 -#: js/toolbar.js:440 -msgid "Turtle Wrap Off" -msgstr "" +#: js/turtles.js:882 +msgid "Grid" +msgstr "グリッド" -#: js/toolbar.js:442 -msgid "Turtle Wrap On" -msgstr "" +#: js/turtles.js:1024 +msgid "Expand" +msgstr "カンバスをかくだい" -#: js/block.js:1470 +#: js/block-verbose.js:1616 +#: js/block-verbose.js:1735 +#: js/block.js:1580 +#: js/block.js:1699 +#: js/palette.js:605 +#: js/blocks/IntervalsBlocks.js:63 +#: js/blocks/WidgetBlocks.js:259 +msgid "temperament" +msgstr "音律" + +#: js/block-verbose.js:1630 +#: js/block.js:1594 msgid "matrix" msgstr "フレーズメーカー" -#: js/block.js:1477 -#: js/WidgetBlocks.js:1226 +#: js/block-verbose.js:1637 +#: js/block.js:1601 +#: js/blocks/WidgetBlocks.js:1509 #: plugins/rodi.rtp:324 msgid "status" msgstr "実行じょうきょう" -#: js/block.js:1484 +#: js/block-verbose.js:1644 +#: js/block.js:1608 msgid "drum mapper" msgstr "ドラム・ピッチ行列" -#: js/block.js:1491 +#: js/block-verbose.js:1651 +#: js/block.js:1615 msgid "ruler" msgstr "リズムメーカー" -#: js/block.js:1498 -#: js/WidgetBlocks.js:327 +#: js/block-verbose.js:1658 +#: js/block.js:1622 +#: js/blocks/WidgetBlocks.js:397 #.TRANS: timbre is the character or quality of a musical sound msgid "timbre" msgstr "音色" -#: js/block.js:1505 +#: js/block-verbose.js:1665 +#: js/block.js:1629 msgid "stair" msgstr "階段" -#: js/block.js:1512 -#: js/WidgetBlocks.js:577 +#: js/block-verbose.js:1672 +#: js/block.js:1636 +#: js/blocks/WidgetBlocks.js:707 #.TRANS: the speed at music is should be played. msgid "tempo" msgstr "メトロノーム" -#: js/block.js:1519 -#: js/block.js:1582 -#: js/IntervalsBlocks.js:1268 +#: js/block-verbose.js:1679 +#: js/block-verbose.js:1742 +#: js/block.js:1643 +#: js/block.js:1706 +#: js/blocks/IntervalsBlocks.js:1464 #.TRANS: mode, e.g., Major in C Major msgid "mode" msgstr "モード(音階)" -#: js/block.js:1526 +#: js/block-verbose.js:1686 +#: js/block.js:1650 msgid "slider" msgstr "スライダー" -#: js/block.js:1533 -#: js/SensorsBlocks.js:1001 +#: js/block-verbose.js:1693 +#: js/block.js:1657 +#: js/blocks/SensorsBlocks.js:1001 msgid "keyboard" msgstr "キーボード" -#: js/block.js:1547 -#: js/WidgetBlocks.js:957 -#: js/WidgetBlocks.js:988 +#: js/block-verbose.js:1707 +#: js/block.js:1671 +#: js/blocks/WidgetBlocks.js:1190 +#: js/blocks/WidgetBlocks.js:1228 #.TRANS: widget for subdividing a measure into distinct rhythmic elements msgid "rhythm maker" msgstr "リズムメーカー" -#: js/block.js:1554 -#: js/block.js:2182 -#: js/block.js:2236 -#: js/RhythmBlockPaletteBlocks.js:70 -#: js/RhythmBlockPaletteBlocks.js:251 -#: js/RhythmBlockPaletteBlocks.js:484 -#: js/RhythmBlockPaletteBlocks.js:553 -#: js/RhythmBlockPaletteBlocks.js:604 -#: js/RhythmBlockPaletteBlocks.js:874 -#: js/RhythmBlocks.js:33 -#: js/RhythmBlocks.js:356 -#: js/RhythmBlocks.js:766 -#: js/RhythmBlocks.js:806 -#: js/OrnamentBlocks.js:220 -#: js/OrnamentBlocks.js:312 -#: js/MeterBlocks.js:1367 -#: js/DictActions.js:85 -#: js/phrasemaker.js:731 -#: js/phrasemaker.js:2393 -#: js/phrasemaker.js:2436 -#: js/phrasemaker.js:2534 +#: js/block-verbose.js:1714 +#: js/block-verbose.js:2457 +#: js/block-verbose.js:2514 +#: js/block.js:1678 +#: js/block.js:2385 +#: js/block.js:2442 +#: js/blocks/MeterBlocks.js:1367 +#: js/blocks/OrnamentBlocks.js:220 +#: js/blocks/OrnamentBlocks.js:312 +#: js/blocks/RhythmBlocks.js:33 +#: js/blocks/RhythmBlocks.js:356 +#: js/blocks/RhythmBlocks.js:766 +#: js/blocks/RhythmBlocks.js:806 +#: js/blocks/RhythmBlockPaletteBlocks.js:70 +#: js/blocks/RhythmBlockPaletteBlocks.js:252 +#: js/blocks/RhythmBlockPaletteBlocks.js:485 +#: js/blocks/RhythmBlockPaletteBlocks.js:554 +#: js/blocks/RhythmBlockPaletteBlocks.js:605 +#: js/blocks/RhythmBlockPaletteBlocks.js:875 +#: js/turtleactions/DictActions.js:85 +#: js/widgets/phrasemaker.js:942 +#: js/widgets/phrasemaker.js:2656 +#: js/widgets/phrasemaker.js:2699 +#: js/widgets/phrasemaker.js:2810 #.TRANS: the value (e.g., 1/4 note) of the note being played. msgid "note value" msgstr "音の長さ" -#: js/block.js:1561 -#: js/block.js:2110 -#: js/block.js:2133 -#: js/IntervalsBlocks.js:875 -#: js/OrnamentBlocks.js:312 +#: js/block-verbose.js:1721 +#: js/block-verbose.js:2382 +#: js/block-verbose.js:2405 +#: js/block.js:1685 +#: js/block.js:2310 +#: js/block.js:2333 +#: js/blocks/IntervalsBlocks.js:1071 +#: js/blocks/OrnamentBlocks.js:312 #.TRANS: calculate a relative step between notes based on semi-tones msgid "scalar interval" msgstr "音階の上下" -#: js/block.js:1568 -#: js/RhythmBlocks.js:148 +#: js/block-verbose.js:1728 +#: js/block.js:1692 +#: js/blocks/RhythmBlocks.js:148 msgid "milliseconds" msgstr "ミリ秒" -#: js/block.js:2180 -#: js/block.js:2184 -#: js/block.js:2234 -#: js/block.js:2345 -#: js/ProgramBlocks.js:1273 -#: js/RhythmBlocks.js:712 -#: js/rhythmruler.js:834 -#: js/rhythmruler.js:961 +#: js/block-verbose.js:2455 +#: js/block-verbose.js:2459 +#: js/block-verbose.js:2512 +#: js/block-verbose.js:2628 +#: js/block.js:2383 +#: js/block.js:2387 +#: js/block.js:2440 +#: js/block.js:2556 +#: js/blocks/RhythmBlocks.js:712 +#: js/blocks/ProgramBlocks.js:1273 +#: js/widgets/rhythmruler.js:1183 +#: js/widgets/rhythmruler.js:1329 msgid "silence" msgstr "休符" -#: js/block.js:2265 -#: js/block.js:3134 -#: js/block.js:3151 -#: js/activity.js:2336 -#: js/activity.js:2387 -#: js/musicutils.js:2932 -#: js/musicutils.js:4287 +#: js/block-verbose.js:2548 +#: js/block-verbose.js:3492 +#: js/block-verbose.js:3509 +#: js/activity.js:2718 +#: js/activity.js:2769 +#: js/block.js:2476 +#: js/block.js:3416 +#: js/block.js:3433 +#: js/utils/musicutils.js:3780 +#: js/utils/musicutils.js:5273 +#.TRANS: the note names must be separated by single spaces #.TRANS: the note names must be separated by single spaces #.TRANS: the note names must be separated by single spaces msgid "ti la sol fa mi re do" msgstr "シ ラ ソ ファ ミ レ ド" -#: js/block.js:2333 +#: js/block-verbose.js:2616 +#: js/block.js:2544 +#.TRANS: scalar step #.TRANS: scalar step msgid "down" msgstr "下" -#: js/block.js:2334 +#: js/block-verbose.js:2617 +#: js/block.js:2545 msgid "up" msgstr "上" -#: js/block.js:3477 -#: js/block.js:3490 -#: js/ExtrasBlocks.js:612 +#: js/block-verbose.js:3026 +#: js/block.js:2950 +msgid "Silence block cannot be removed." +msgstr "" + +#: js/block-verbose.js:3824 +#: js/block.js:3748 +#: js/blocks.js:2607 +#: js/blocks.js:3218 +#: js/palette.js:618 +#: js/blocks/BooleanBlocks.js:77 +#: js/blocks/BooleanBlocks.js:167 +#: js/blocks/BooleanBlocks.js:251 +#: js/blocks/BooleanBlocks.js:335 +#: js/blocks/BooleanBlocks.js:433 +#: js/blocks/BooleanBlocks.js:539 +#: js/blocks/BooleanBlocks.js:640 +#: js/blocks/BooleanBlocks.js:741 +#: js/blocks/BooleanBlocks.js:847 +#: js/blocks/BooleanBlocks.js:948 +#: js/blocks/BooleanBlocks.js:1033 +#: js/blocks/SensorsBlocks.js:910 +msgid "true" +msgstr "真" + +#: js/block-verbose.js:3824 +#: js/block.js:3748 +#: js/blocks.js:2609 +#: js/blocks.js:3220 +#: js/blocks/BooleanBlocks.js:79 +#: js/blocks/BooleanBlocks.js:169 +#: js/blocks/BooleanBlocks.js:253 +#: js/blocks/BooleanBlocks.js:337 +#: js/blocks/BooleanBlocks.js:435 +#: js/blocks/BooleanBlocks.js:541 +#: js/blocks/BooleanBlocks.js:642 +#: js/blocks/BooleanBlocks.js:743 +#: js/blocks/BooleanBlocks.js:849 +#: js/blocks/BooleanBlocks.js:950 +#: js/blocks/SensorsBlocks.js:912 +msgid "false" +msgstr "偽" + +#: js/block-verbose.js:3835 +#: js/block-verbose.js:3848 +#: js/block.js:3759 +#: js/block.js:3772 +#: js/blocks/ExtrasBlocks.js:615 msgid "Cartesian" msgstr "ほうがん(ざひょう)を表示" -#: js/block.js:3478 -#: js/block.js:3491 -#: js/ExtrasBlocks.js:616 +#: js/block-verbose.js:3836 +#: js/block-verbose.js:3849 +#: js/block.js:3760 +#: js/block.js:3773 +#: js/blocks/ExtrasBlocks.js:619 msgid "polar" msgstr "極座標を表示" -#: js/block.js:3479 -#: js/block.js:3492 -#: js/ExtrasBlocks.js:620 +#: js/block-verbose.js:3837 +#: js/block-verbose.js:3850 +#: js/block.js:3761 +#: js/block.js:3774 +#: js/blocks/ExtrasBlocks.js:623 msgid "Cartesian+polar" msgstr "右岸座標と極座標を表示" -#: js/block.js:3480 -#: js/block.js:3499 -#: js/ExtrasBlocks.js:649 +#: js/block-verbose.js:3838 +#: js/block-verbose.js:3857 +#: js/block.js:3762 +#: js/block.js:3781 +#: js/blocks/ExtrasBlocks.js:652 msgid "none" msgstr "なし" -#: js/block.js:3493 -#: js/ExtrasBlocks.js:625 +#: js/block-verbose.js:3851 +#: js/block.js:3775 +#: js/blocks/ExtrasBlocks.js:628 msgid "treble" msgstr "トレブル記号" -#: js/block.js:3494 -#: js/ExtrasBlocks.js:629 +#: js/block-verbose.js:3852 +#: js/block.js:3776 +#: js/blocks/ExtrasBlocks.js:632 msgid "grand staff" msgstr "トレブルとバス記号" -#: js/block.js:3495 -#: js/ExtrasBlocks.js:633 +#: js/block-verbose.js:3853 +#: js/block.js:3777 +#: js/blocks/ExtrasBlocks.js:636 msgid "mezzo-soprano" msgstr "メゾソプラノ記号" -#: js/block.js:3496 -#: js/ExtrasBlocks.js:637 +#: js/block-verbose.js:3854 +#: js/block.js:3778 +#: js/blocks/ExtrasBlocks.js:640 msgid "alto" msgstr "アルト記号" -#: js/block.js:3497 -#: js/ExtrasBlocks.js:641 +#: js/block-verbose.js:3855 +#: js/block.js:3779 +#: js/blocks/ExtrasBlocks.js:644 msgid "tenor" msgstr "テノール記号" -#: js/block.js:3498 -#: js/ExtrasBlocks.js:645 -#: js/musicutils.js:736 -#: js/synthutils.js:64 +#: js/block-verbose.js:3856 +#: js/block.js:3780 +#: js/utils/musicutils.js:1115 +#: js/utils/synthutils.js:80 +#: js/blocks/ExtrasBlocks.js:648 #.TRANS: musical instrument msgid "bass" msgstr "コントラバス" -#: js/block.js:4075 +#: js/block-verbose.js:3901 +#: js/block.js:3825 +#: js/blocks.js:2600 +#: js/blocks.js:3211 +msgid "on2" +msgstr "オン" + +#: js/block-verbose.js:3903 +#: js/block.js:3827 +#: js/blocks.js:2602 +#: js/blocks.js:3213 +msgid "off" +msgstr "オフ" + +#: js/block-verbose.js:4470 +#: js/block.js:4394 msgid "Not a number" msgstr "数字ではありません" -#: js/block.js:4082 +#: js/block-verbose.js:4477 +#: js/block.js:4401 msgid "Octave value must be between 1 and 10." msgstr "" -#: js/block.js:4090 +#: js/block-verbose.js:4485 +#: js/block.js:4409 msgid "Numbers can have at most 10 digits." msgstr "" -#: js/notation.js:353 -msgid "Lilypond cannot process pickup of " -msgstr "Lilypondではこのピックアップを対応できません:" +#: js/activity.js:390 +#: js/activity.js:395 +msgid "Search for blocks" +msgstr "ブロックを検索" -#: js/turtledefs.js:40 -#.TRANS: put the URL to the guide here, e.g., https://github.com/sugarlabs/turtleblocksjs/tree/master/guide/README.md -msgid "guide url" -msgstr "https://github.com/sugarlabs/musicblocks/tree/master/guide-ja/music_blocks_operation_manual.pdf" +#: js/activity.js:1413 +msgid "Refresh your browser to change to advanced mode." +msgstr "高度モードにするには、ブラウザをこうしんして下さい。" -#: js/turtledefs.js:85 -#: js/turtledefs.js:437 -msgid "Turtle Blocks is a Logo-inspired turtle that draws colorful pictures with snap-together visual-programming blocks." +#: js/activity.js:1418 +msgid "Refresh your browser to change to beginner mode." +msgstr "はってんモードにするには、ブラウザをこうしんしてください。" + +#: js/activity.js:1477 +msgid "Catching mice" +msgstr "ネズミをつかまえているよ" + +#: js/activity.js:1478 +msgid "Cleaning the instruments" +msgstr "楽器のおていれをしているよ" + +#: js/activity.js:1479 +msgid "Testing key pieces" +msgstr "キーボードの音をたしかめているよ" + +#: js/activity.js:1480 +msgid "Sight-reading" +msgstr "がくふをよみこんでいるよ" + +#: js/activity.js:1481 +msgid "Combining math and music" +msgstr "音楽と算数をくっつけているよ" + +#: js/activity.js:1482 +msgid "Generating more blocks" +msgstr "ブロックをたくさんつくっているよ" + +#: js/activity.js:1483 +msgid "Do Re Mi Fa Sol La Ti Do" +msgstr "ド レ ミ ファ ソ ラ シ ド" + +#: js/activity.js:1484 +msgid "Tuning string instruments" +msgstr "楽器のチューニングをしているよ" + +#: js/activity.js:1485 +msgid "Pressing random keys" +msgstr "キーボードでおんがくをつくっているよ" + +#: js/activity.js:1663 +msgid "plugins will be removed upon restart." msgstr "" -#: js/turtledefs.js:118 -#: js/turtledefs.js:220 -msgid "search" -msgstr "検索" +#: js/activity.js:1672 +msgid "show Cartesian" +msgstr "ほうがん(ざひょう)を表示" -#: js/turtledefs.js:120 -#: js/turtledefs.js:222 -#: js/WidgetBlocks.js:437 -#: js/MeterBlocks.js:1343 -#.TRANS: musical meter (time signature), e.g., 4:4 -msgid "meter" -msgstr "拍子" +#: js/activity.js:2211 +#: js/palette.js:589 +#: js/blocks/RhythmBlocks.js:923 +#: js/blocks/PitchBlocks.js:442 +#: js/blocks/PitchBlocks.js:1786 +#.TRANS: a numeric mapping of the notes in an octave based on the musical mode +msgid "scale degree" +msgstr "音度" -#: js/turtledefs.js:122 -#: js/turtledefs.js:224 -msgid "intervals" -msgstr "音程" +#: js/activity.js:2214 +#: js/palette.js:598 +msgid "voice name" +msgstr "音名" -#: js/turtledefs.js:124 -#: js/turtledefs.js:226 -msgid "ornament" -msgstr "そうしょく" +#: js/activity.js:2217 +#: js/palette.js:595 +msgid "invert mode" +msgstr "モードを反転させる" -#: js/turtledefs.js:125 -#: js/turtledefs.js:227 -#: js/VolumeBlocks.js:362 -#: js/VolumeBlocks.js:502 -#: js/VolumeBlocks.js:545 -msgid "volume" -msgstr "音量" +#: js/activity.js:2220 +msgid "output tools" +msgstr "出力ツール" -#: js/turtledefs.js:129 -#: js/turtledefs.js:231 -msgid "boxes" -msgstr "数の箱" +#: js/activity.js:2223 +msgid "custom note" +msgstr "カスタムノート" -#: js/turtledefs.js:130 -#: js/turtledefs.js:232 -msgid "widgets" -msgstr "ツール" +#: js/activity.js:2226 +msgid "accidental name" +msgstr "偶然の名前" -#: js/turtledefs.js:131 -#: js/turtledefs.js:233 -#: js/phrasemaker.js:824 -msgid "graphics" -msgstr "ネズミの動き" +#: js/activity.js:2229 +#: js/blocks/PitchBlocks.js:855 +msgid "east indian solfege" +msgstr "東インドのソルフェージュ" -#: js/turtledefs.js:134 -#: js/turtledefs.js:236 -msgid "boolean" -msgstr "くらべる" +#: js/activity.js:2232 +#: js/blocks/PitchBlocks.js:869 +msgid "note name" +msgstr "音名" -#: js/turtledefs.js:137 -#: js/turtledefs.js:239 -#: js/HeapBlocks.js:59 -#: js/status.js:147 -msgid "heap" -msgstr "ヒープ" +#: js/activity.js:2235 +#: js/blocks/IntervalsBlocks.js:94 +msgid "temperament name" +msgstr "気質名" -#: js/turtledefs.js:138 -#: js/turtledefs.js:240 -#: js/ProgramBlocks.js:495 -#: js/DictBlocks.js:142 -msgid "dictionary" -msgstr "辞書" +#: js/activity.js:2238 +#: js/palette.js:592 +msgid "mode name" +msgstr "モード名" -#: js/turtledefs.js:139 -#: js/turtledefs.js:241 -msgid "ensemble" -msgstr "合奏" +#: js/activity.js:2241 +msgid "chord name" +msgstr "chord name" -#: js/turtledefs.js:140 -#: js/turtledefs.js:242 -msgid "extras" -msgstr "その他" +#: js/activity.js:2244 +#: js/palette.js:615 +msgid "interval name" +msgstr "音程名" -#: js/turtledefs.js:142 -#: js/turtledefs.js:244 -#.TRANS: program as in computer program -#.TRANS: program as in computer program -msgid "program" -msgstr "プログラム" +#: js/activity.js:2247 +msgid "filter type" +msgstr "フィルターの種類" -#: js/turtledefs.js:143 -#: js/turtledefs.js:245 -msgid "my blocks" -msgstr "自分のブロック" +#: js/activity.js:2250 +msgid "oscillator type" +msgstr "発振器の種類" -#: js/turtledefs.js:185 -#: js/turtledefs.js:281 -msgid "artwork" -msgstr "アート" +#: js/activity.js:2253 +#: js/blocks.js:2479 +#: js/blocks.js:2487 +msgid "audio file" +msgstr "" -#: js/turtledefs.js:185 -#: js/turtledefs.js:281 -msgid "logic" -msgstr "論理" +#: js/activity.js:2256 +#: js/blocks/DrumBlocks.js:32 +msgid "noise name" +msgstr "ノイズ名" -#: js/turtledefs.js:185 -#: js/turtledefs.js:281 -msgid "music" -msgstr "音楽" +#: js/activity.js:2259 +#: js/blocks/DrumBlocks.js:75 +msgid "drum name" +msgstr "ドラム名" -#: js/turtledefs.js:187 -#: js/turtledefs.js:463 -msgid "Music Blocks is a collection of tools for exploring fundamental musical concepts in a fun way." -msgstr "音楽と算数とプログラミングをむすびつけ、深く楽しむことができるツール。それが、ミュージック・ブロックスだ。" +#: js/activity.js:2262 +#: js/blocks/DrumBlocks.js:119 +msgid "effects name" +msgstr "エフェクト名" -#: js/turtledefs.js:436 -msgid "Welcome to Turtle Blocks" -msgstr "タートル・ブロックへようこそ" +#: js/activity.js:2265 +msgid "wrap mode" +msgstr "ラップモード" -#: js/turtledefs.js:438 -#: js/turtledefs.js:465 -#: js/turtledefs.js:774 -#: js/turtledefs.js:805 -msgid "The current version is" -msgstr "ミュージック・ブロックスの最新バージョンは" +#: js/activity.js:2268 +msgid "load file" +msgstr "ロード ファイル " -#: js/turtledefs.js:446 -#: js/turtledefs.js:483 -msgid "Click the run button to run the project in fast mode." -msgstr "クリックをすると、ふつうのスピードでプログラムを実行することができる。" +#: js/activity.js:2435 +#: js/activity.js:5851 +msgid "This block is deprecated." +msgstr "このブロックはもうありません。" -#: js/turtledefs.js:452 -msgid "Stop the turtle." -msgstr "" +#: js/activity.js:2437 +#: js/activity.js:5853 +msgid "Block cannot be found." +msgstr "ブロックが見つかりません。" -#: js/turtledefs.js:454 -#: js/turtledefs.js:491 -msgid "You can also type Alt-S to stop." -msgstr "プログラムは、このボタンをおすかわりに、キーボードで「Altキーと Sキーの同時おし」でも止めることができる。" +#: js/activity.js:2645 +msgid "Saving block artwork" +msgstr "ブロックのアートを保存中" -#: js/turtledefs.js:462 -#: js/help.js:333 -msgid "Welcome to Music Blocks" -msgstr "ミュージック・ブロックスへようこそ" +#: js/activity.js:2656 +msgid "Erase" +msgstr "消す" -#: js/turtledefs.js:472 -#: js/help.js:334 -msgid "Meet Mr. Mouse!" -msgstr "ミスター・マウスに会おう!" +#: js/activity.js:2683 +#: js/activity.js:2705 +msgid "Paste" +msgstr "貼り付け" -#: js/turtledefs.js:473 -msgid "Mr Mouse is our Music Blocks conductor." -msgstr "ミスター・マウスは、ミュージック・ブロックスの指揮者。" +#: js/activity.js:2687 +msgid "Save block help" +msgstr "ブロックの ヘルプを 保存" -#: js/turtledefs.js:475 -msgid "Mr Mouse encourages you to explore Music Blocks." -msgstr "ミスター・マウスと一緒に、ミュージック・ブロックスの世界をたんきゅうしよう。" +#: js/activity.js:2772 +msgid "Jumping to the bottom of the page." +msgstr "画面の下にジャンプしています" -#: js/turtledefs.js:477 -msgid "Let us start our tour!" -msgstr "では、ツアーを始めよう。" +#: js/activity.js:2778 +msgid "Scrolling up." +msgstr "上にスクロールしています" -#: js/turtledefs.js:489 -msgid "Stop the music (and the mice)." -msgstr "実行しているプログラムを止める。" +#: js/activity.js:2783 +msgid "Scrolling down." +msgstr "下にスクロールしています" -#: js/turtledefs.js:499 -msgid "Record your project as video." -msgstr "再生されているビデオを録音する" +#: js/activity.js:2788 +msgid "Extracting block" +msgstr "ブロックを取り出しています" -#: js/turtledefs.js:505 -msgid "Toggle Fullscreen mode." -msgstr "" +#: js/activity.js:2796 +msgid "Moving block up." +msgstr "ブロックを上に動かしています" -#: js/turtledefs.js:511 -msgid "Initialize a new project." -msgstr "新しいプロジェクトを作る。" +#: js/activity.js:2817 +msgid "Moving block down." +msgstr "ブロックを下に動かしています" -#: js/turtledefs.js:517 -msgid "You can also load projects from the file system." -msgstr "コンピューターに保存してあるファイルから、ミュージック・ブロックスのプロジェクトを読み込んで開く。" +#: js/activity.js:2838 +msgid "Moving block left." +msgstr "ブロックを左に動かしています" -#: js/turtledefs.js:522 -#: js/StringHelper.js:46 -msgid "Delete" -msgstr "消す" +#: js/activity.js:2855 +msgid "Moving block right." +msgstr "ブロックを右に動かしています" -#: js/turtledefs.js:523 -msgid "To delete a block, just right-click on it, then you will be able to see the delete option" -msgstr "" +#: js/activity.js:2870 +msgid "Jump to home position." +msgstr "まんなかにジャンプする" -#: js/turtledefs.js:528 -#: js/activity.js:2270 -#: js/LocalCard.js:31 -msgid "Copy" -msgstr "コピー" +#: js/activity.js:2897 +msgid "Hide blocks" +msgstr "ブロックを非表示" -#: js/turtledefs.js:529 -msgid "To copy a block, just right-click on it, then you will be able to see the copy option" -msgstr "" +#: js/activity.js:4500 +msgid "Click the run button to run the project." +msgstr "プロジェクトを再生するため、再生のボタンをクリックしてください。" -#: js/turtledefs.js:535 -msgid "To extract a block, just right-click on it, then you will be able to see the extract option" -msgstr "" +#: js/activity.js:5692 +msgid "Show/hide block" +msgstr "ブロックを表示する/かくす" -#: js/turtledefs.js:542 -#: js/turtledefs.js:552 -#: js/turtledefs.js:573 -msgid "Save your project to a file." -msgstr "げんざい開いているプロジェクトをほぞんする。" +#: js/activity.js:5698 +msgid "Expand/collapse blocks" +msgstr "ブロックを広げる/折りたたむ" -#: js/turtledefs.js:549 -#: js/turtledefs.js:570 -msgid "save" -msgstr "保存する" +#: js/activity.js:5976 +msgid "Could not parse JSON input." +msgstr "JSONのインプットのパースができません。" -#: js/turtledefs.js:556 -#: js/turtledefs.js:577 -msgid "Save graphics from your project to as SVG." -msgstr "プロジェクトのグラフィックをSVGで保存" +#: js/activity.js:6475 +#: js/activity.js:6580 +#: js/activity.js:6631 +msgid "Cannot load project from the file. Please check the file type." +msgstr "プロジェクトを読みこめません。ファイルの種類をかくにんしてください。" -#: js/turtledefs.js:560 -#: js/turtledefs.js:581 -msgid "Save graphics from your project as PNG." -msgstr "プロジェクトのグラフィックをPNGで保存" +#: js/activity.js:6917 +msgid "Invalid parameters" +msgstr "" -#: js/turtledefs.js:564 -#: js/turtledefs.js:597 -msgid "Save block artwork as an SVG file." -msgstr "ブロックのグラフィックをSVGで保存" +#: js/blocks.js:1212 +#: js/blocks.js:3444 +#: js/blocks.js:3834 +#: js/blocks.js:3865 +#: js/blocks.js:3914 +#: js/blocks.js:3949 +#: js/blocks.js:6586 +#: js/palette.js:509 +#: js/palette.js:638 +#: js/palette.js:1105 +#: js/blocks/BoxesBlocks.js:282 +#: js/blocks/BoxesBlocks.js:285 +#: js/blocks/BoxesBlocks.js:405 +#: js/blocks/BoxesBlocks.js:594 +msgid "box" +msgstr "箱" -#: js/turtledefs.js:585 -msgid "Save audio from your project as WAV." -msgstr "プロジェクトの音をWAVで保存" +#: js/blocks.js:1713 +msgid "Consider breaking this stack into parts." +msgstr "アクションブロックを使ってプログラムをまとめませんか" -#: js/turtledefs.js:589 -msgid "Save your project to as an ABC file." -msgstr "プロジェクトをABCで保存" +#: js/blocks.js:2472 +#: js/palette.js:653 +#: js/blocks/MediaBlocks.js:602 +msgid "open file" +msgstr "ファイルを開く" + +#: js/blocks.js:3247 +#: js/palette.js:574 +#: js/blocks/MediaBlocks.js:892 +#: js/blocks/MediaBlocks.js:963 +msgid "text" +msgstr "文字そざい" -#: js/turtledefs.js:593 -msgid "Save your project to as a Lilypond file." -msgstr "作成した音楽を、コンピューター上でがくふをえがくファイル(Lilypondファイル)に変えてほぞんする。" +#: js/blocks.js:3443 +#: js/palette.js:641 +#: js/palette.js:642 +#: js/blocks/BoxesBlocks.js:514 +msgid "store in box" +msgstr "箱にほぞん" -#: js/turtledefs.js:604 -msgid "Load samples from server" -msgstr "みんなの作品" +#: js/blocks.js:3448 +#: js/blocks.js:3888 +#: js/blocks.js:3923 +#: js/blocks.js:3958 +#: js/blocks.js:5862 +#: js/blocks.js:5883 +#: js/blocks/BoxesBlocks.js:772 +msgid "box1" +msgstr "箱1" -#: js/turtledefs.js:605 -msgid "This button opens a viewer for loading example projects." -msgstr "インターネットの「プラネット(わくせい)」というページから、ほかの人が作ったプロジェクトを選んで、読みこむことができる。" +#: js/blocks.js:3450 +#: js/blocks.js:3890 +#: js/blocks.js:3925 +#: js/blocks.js:3960 +#: js/blocks.js:5864 +#: js/blocks.js:5885 +#: js/blocks/BoxesBlocks.js:663 +msgid "box2" +msgstr "箱2" -#: js/turtledefs.js:611 -msgid "Palette buttons" -msgstr "パレットボタン" +#: js/blocks.js:4122 +#: js/palette.js:639 +#: js/palette.js:644 +#: js/palette.js:1041 +#: js/blocks/BoxesBlocks.js:591 +msgid "store in" +msgstr "入れる" -#: js/turtledefs.js:612 -msgid "This toolbar contains the palette buttons including Rhythm Pitch Tone Action and more." -msgstr "ミュージック・ブロックスの左側には、プログラミングに使うさまざまなブロックをグループ分けした「パレットボタン」がある。" +#: js/blocks.js:4122 +#: js/blocks/BoxesBlocks.js:595 +#: js/blocks/DictBlocks.js:215 +#: js/blocks/DictBlocks.js:289 +#: js/blocks/EnsembleBlocks.js:391 +#: js/blocks/EnsembleBlocks.js:402 +#: js/blocks/MediaBlocks.js:746 +#: js/blocks/PitchBlocks.js:656 +#: js/blocks/PitchBlocks.js:934 +#: js/blocks/PitchBlocks.js:1866 +#: js/blocks/ProgramBlocks.js:390 +#: js/blocks/ProgramBlocks.js:495 +#: js/blocks/ProgramBlocks.js:658 +#: js/blocks/ToneBlocks.js:1025 +msgid "name" +msgstr "名前" -#: js/turtledefs.js:614 -msgid "Click to show the palettes of blocks and drag blocks from the palettes onto the canvas to use them." -msgstr "それぞれのパレットボタンをクリックし、「音符(おんぷ)」「アクション」「ペン」などから好きなブロックを選んで、カンバス上にドラッグして置いてみよう。" +#: js/blocks.js:4122 +#: js/blocks/BoxesBlocks.js:75 +#: js/blocks/BoxesBlocks.js:595 +#: js/blocks/DictBlocks.js:289 +#: js/blocks/DictBlocks.js:430 +#: js/blocks/HeapBlocks.js:544 +#: js/blocks/RhythmBlocks.js:1130 +msgid "value" +msgstr "値" -#: js/turtledefs.js:620 -msgid "Cartesian/Polar" -msgstr "中心の角度とほうがん(ざひょう)をひょうじ" +#: js/blocks.js:4465 +msgid "Forever loop detected inside a note value block. Unexpected things may happen." +msgstr "" -#: js/turtledefs.js:621 -msgid "Show or hide a coordinate grid." -msgstr "カンバス上にほうがん(ざひょう)や中心の角度を表示したり、かくしたりできる。" +#: js/blocks.js:4988 +msgid "There is no block selected." +msgstr "ブロックが選ばれていません" -#: js/turtledefs.js:627 -msgid "Clear the screen and return the mice to their initial positions." -msgstr "ネズミを元の位置にもどし、ペンでえがいた線をすべて消す。" +#: js/blocks.js:5091 +#: js/blocks/MediaBlocks.js:888 +msgid "show" +msgstr "表示する" -#: js/turtledefs.js:633 -msgid "Collapse the graphics window." -msgstr "ネズミがいどうしたり、ペンで線をえがいたりできる「カンバス」の表示サイズを しゅくしょうしたり、かくだいしたりする。カンバスをしゅくしょうした場合は、プログラムをふつうのそくどで実行しても、ブロックがかくれない。ふつうの実行そくどでプログラムの動作かくにんをしたいときなどに便利だ。" +#: js/blocks.js:5094 +#: js/blocks/MediaBlocks.js:803 +#.TRANS: Avatar is the image used to determine the appearance of the mouse. +msgid "avatar" +msgstr "ネズミへんこう" -#: js/turtledefs.js:638 -#: js/activity.js:4256 -#: js/activity.js:4256 -msgid "Home" -msgstr "ホーム" +#: js/blocks.js:5097 +#: js/blocks/ToneBlocks.js:1010 +#: js/widgets/sampler.js:975 +#.TRANS: The sound sample that the user uploads. +msgid "sample" +msgstr "音色サンプル" -#: js/turtledefs.js:639 -msgid "Return all blocks to the center of the screen." -msgstr "すべてのブロックを、カンバスのまんなかに配置する。" +#: js/lilypond.js:606 +msgid "brown rat" +msgstr "茶色のドブネズミ" -#: js/turtledefs.js:644 -msgid "Show/hide blocks" -msgstr "ブロックを表示する/かくす" +#: js/lilypond.js:607 +msgid "mole" +msgstr "土竜" -#: js/turtledefs.js:645 -msgid "Hide or show the blocks and the palettes." -msgstr "クリックすると、パレットボタンとプログラムのブロックを画面上に表示させたり、かくしたりすることができる。" +#: js/lilypond.js:608 +msgid "chipmunk" +msgstr "リス" -#: js/turtledefs.js:650 -msgid "Expand/collapse collapsable blocks" -msgstr "ブロックを広げる/折りたたむ" +#: js/lilypond.js:609 +msgid "red squirrel" +msgstr "赤いリス" -#: js/turtledefs.js:651 -msgid "Expand or collapse start and action stacks." -msgstr "クリックすると、「スタート」と「アクション」に使われているブロックを、広げて表示したり、折りたたんでかくしたりすることができる。" +#: js/lilypond.js:610 +msgid "guinea pig" +msgstr "ギニーピッグ" -#: js/turtledefs.js:658 -#: js/activity.js:4265 -msgid "Decrease block size" -msgstr "ブロックの表示を小さくする" +#: js/lilypond.js:611 +msgid "capybara" +msgstr "カピバラ" -#: js/turtledefs.js:659 -msgid "Decrease the size of the blocks." -msgstr "画面に表示されるブロックのサイズを小さくする。" +#: js/lilypond.js:612 +msgid "coypu" +msgstr "ヌートリア" -#: js/turtledefs.js:664 -#: js/activity.js:4267 -msgid "Increase block size" -msgstr "ブロックの表示を大きくする" +#: js/lilypond.js:613 +msgid "black rat" +msgstr "黒い鼠" -#: js/turtledefs.js:665 -msgid "Increase the size of the blocks." -msgstr "画面に表示されるブロックのサイズを大きくする。" +#: js/lilypond.js:614 +msgid "grey squirrel" +msgstr "灰色のリス" -#: js/turtledefs.js:670 -msgid "Expand/collapse option toolbar" -msgstr "オプションツールバーを表示" +#: js/lilypond.js:615 +msgid "flying squirrel" +msgstr "モモンガ" -#: js/turtledefs.js:671 -msgid "Click this button to expand or collapse the auxillary toolbar." -msgstr "このボタンをクリックすると「サブメニュー」を開いたり、折りたたんだりすることができる。" +#: js/lilypond.js:616 +msgid "bat" +msgstr "蝙蝠" -#: js/turtledefs.js:676 -msgid "Run slow" -msgstr "ゆっくり実行する" +#: js/lilypond.js:749 +#: js/lilypond.js:913 +#: js/lilypond.js:951 +#: js/blocks/ActionBlocks.js:1256 +#: js/blocks/ExtrasBlocks.js:556 +msgid "start drum" +msgstr "ドラム・スタート" -#: js/turtledefs.js:677 -msgid "Click to run the project in slow mode." -msgstr "クリックをすると、ゆっくりとしたスピードでプログラムを実行することができる。" +#: js/logo.js:61 +msgid "Not a valid pitch name" +msgstr "選ばれた音名が適切ではありません。" -#: js/turtledefs.js:683 -msgid "Click to run the project step by step." -msgstr "クリックをすると、とてもゆっくり、ブロックを1つずつ実行する。プログラムがうまくはたらかず、どのブロックが原因なのかを調べたいときなどに便利だ。" +#: js/logo.js:507 +#: js/blocks/ProgramBlocks.js:258 +#: js/blocks/ProgramBlocks.js:427 +msgid "You must select a file." +msgstr "ファイルをえらんでください。" -#: js/turtledefs.js:690 -msgid "Display statistics about your Music project." -msgstr "プロジェクトに含まれているブロックの種類、わりあいなど、とうけいてきなじょうほうを表示する。" +#: js/logo.js:1696 +msgid "Playback is ready." +msgstr "コンパイル完了" -#: js/turtledefs.js:697 -msgid "Delete a selected plugin." -msgstr "せんたくしたプラグインを消す。" +#: js/macros.js:711 +#: js/utils/musicutils.js:1162 +#: js/utils/synthutils.js:202 +#.TRANS: animal sound effect +msgid "duck" +msgstr "あひる" -#: js/turtledefs.js:704 -msgid "Enable scrolling" -msgstr "自由な方向に/たて方向にスクロール" +#: js/notation.js:353 +msgid "Lilypond cannot process pickup of " +msgstr "Lilypondではこのピックアップを対応できません:" -#: js/turtledefs.js:705 -msgid "You can scroll the blocks on the canvas." -msgstr "カンバス上をドラッグそうさしたときに、画面をスクロールさせることができる方向を上下だけと上下左右に変える。" +#: js/palette.js:571 +msgid "grid" +msgstr "グリッド" -#: js/turtledefs.js:714 -msgid "Wrap Turtle" -msgstr "アートを包む" +#: js/palette.js:580 +msgid "effect" +msgstr "こうかおん" -#: js/turtledefs.js:715 -msgid "Turn Turtle wrapping On or Off." -msgstr "アートを包むか・包まない" +#: js/palette.js:586 +msgid "sargam" +msgstr "Sargam (インドの ソルファ)" -#: js/turtledefs.js:725 -msgid "Restore blocks from the trash." -msgstr "ゴミ箱にすててしまったブロックを取り出してもどす。ふくすうのブロックをすててあるときは新しい順に、ゴミ箱が空になるまでブロックを拾いもどすことができる。" +#: js/palette.js:601 +#: js/blocks/PitchBlocks.js:1209 +msgid "custom pitch" +msgstr "カスタムピッチ" -#: js/turtledefs.js:732 -msgid "Switch mode" -msgstr "はってんモード/かんたんモードにする" +#: js/palette.js:609 +msgid "accidental" +msgstr "変化記号" -#: js/turtledefs.js:733 -msgid "Switch between beginner and advance modes." -msgstr "ミュージック・ブロックスをかんたんモード/はってんモードに切りかえる。モードによって使えるきのうやブロックの種類が変わる。" +#: js/palette.js:633 +#: js/blocks/PitchBlocks.js:405 +msgid "pitch converter" +msgstr "音の高さを調節" -#: js/turtledefs.js:739 -msgid "Select your language preference." -msgstr "ブロックの名前などに表示される言語をえらぶ。" +#: js/piemenus.js:200 +#: js/utils/musicutils.js:1187 +#: js/utils/musicutils.js:1207 +#: js/widgets/musickeyboard.js:2341 +#: js/widgets/phrasemaker.js:1908 +#: js/widgets/sampler.js:810 +#.TRANS: double sharp is a music term related to pitch +msgid "double sharp" +msgstr "ダブルシャープ" -#: js/turtledefs.js:745 -msgid "Keyboard shortcuts" -msgstr "キーボードのショートカット" +#: js/piemenus.js:201 +#: js/utils/musicutils.js:1185 +#: js/utils/musicutils.js:1208 +#: js/blocks/PitchBlocks.js:1539 +#: js/turtleactions/PitchActions.js:323 +#: js/widgets/musickeyboard.js:2342 +#: js/widgets/phrasemaker.js:1909 +#: js/widgets/sampler.js:811 +#.TRANS: sharp is a music term related to pitch +#.TRANS: sharp is a half-step up in pitch +msgid "sharp" +msgstr "シャープ" -#: js/turtledefs.js:746 -msgid "You can type d to create a do block and r to create a re block etc." -msgstr "キーボードを使うと、パレットボタンからブロックをドラッグして配置するだけでなく、ボタンをおすだけでちょくせつブロックを置くことができる。

★ショートカットキー
d …… 「ド」(4分音符、4オクターヴ)
r …… 「レ」(4分音符、4オクターヴ)
m …… 「ミ」(4分音符、4オクターヴ)
f …… 「ファ」(4分音符、4オクターヴ)
s …… 「ソ」(4分音符、4オクターヴ)
l …… 「ラ」(4分音符、4オクターヴ)
t …… 「シ」(4分音符、4オクターヴ)
" +#: js/piemenus.js:202 +#: js/utils/musicutils.js:1183 +#: js/utils/musicutils.js:1209 +#: js/widgets/musickeyboard.js:2343 +#: js/widgets/phrasemaker.js:1910 +#: js/widgets/sampler.js:812 +#.TRANS: natural is a music term related to pitch +msgid "natural" +msgstr "ナチュラル" -#: js/turtledefs.js:753 -msgid "Show these messages." -msgstr "ミスター・マウスによる、ミュージック・ブロックスの説明を表示する。" +#: js/piemenus.js:203 +#: js/utils/musicutils.js:1181 +#: js/utils/musicutils.js:1210 +#: js/blocks/PitchBlocks.js:1498 +#: js/turtleactions/PitchActions.js:326 +#: js/widgets/musickeyboard.js:2344 +#: js/widgets/phrasemaker.js:1911 +#: js/widgets/sampler.js:813 +#.TRANS: flat is a music term related to pitch +#.TRANS: flat is a half-step down in pitch +msgid "flat" +msgstr "フラット" -#: js/turtledefs.js:759 -#: js/turtledefs.js:790 -#: js/help.js:335 -msgid "Guide" -msgstr "もっとくわしく知るには" +#: js/piemenus.js:204 +#: js/utils/musicutils.js:1179 +#: js/utils/musicutils.js:1211 +#: js/widgets/musickeyboard.js:2345 +#: js/widgets/phrasemaker.js:1912 +#: js/widgets/sampler.js:814 +#.TRANS: double flat is a music term related to pitch +msgid "double flat" +msgstr "ダブルフラット" -#: js/turtledefs.js:760 -msgid "A detailed guide to Turtle Blocks is available." -msgstr "インターネットから、ミュージック・ブロックスのさらにくわしいガイドページを見ることができる。次のリンク先を開いてみよう。" +#: js/piemenus.js:2864 +#: js/utils/musicutils.js:1006 +#: js/blocks/PitchBlocks.js:1385 +#.TRANS: unison is a music term related to intervals +#.TRANS: unison means the note is the same as the current note +msgid "unison" +msgstr "ユニゾン(同度)" -#: js/turtledefs.js:764 -msgid "Turtle Blocks Guide" -msgstr "ミュージック・ブロックスガイド" +#: js/piemenus.js:3018 +#: js/piemenus.js:3091 +#: js/utils/musicutils.js:1014 +#: js/utils/musicutils.js:1189 +#: js/utils/musicutils.js:1326 +#.TRANS: major is a music term related to intervals and mode +msgid "major" +msgstr "メジャー" -#: js/turtledefs.js:767 -#: js/turtledefs.js:798 -#: js/help.js:336 -msgid "About" -msgstr "ミュージック・ブロックスについて" +#: js/piemenus.js:3018 +#: js/piemenus.js:3091 +#: js/utils/musicutils.js:1032 +#.TRANS: modal scale for music +msgid "ionian" +msgstr "アイオニアン音階" -#: js/turtledefs.js:768 -msgid "Turtle Blocks is an open source collection of tools for exploring musical concepts." -msgstr "ミュージック・ブロックスは、音楽のコンセプトをたんきゅうするためにつくられた、オープンソースのツールだ。" +#: js/piemenus.js:3020 +#: js/piemenus.js:3095 +#: js/utils/musicutils.js:1012 +#: js/utils/musicutils.js:1190 +#: js/utils/musicutils.js:1323 +#.TRANS: minor is a music term related to intervals and mode +msgid "minor" +msgstr "マイナー(短)" -#: js/turtledefs.js:770 -msgid "A full list of contributors can be found in the Turtle Blocks GitHub repository." -msgstr "ミュージック・ブロックスにかかわってきた人のいちらんは、GitHub(ギットハブ)のリポジトリで見ることができる。" +#: js/piemenus.js:3020 +#: js/piemenus.js:3095 +#: js/utils/musicutils.js:1042 +#.TRANS: modal scale for music +msgid "aeolian" +msgstr "エオリアン音階" -#: js/turtledefs.js:772 -msgid "Turtle Blocks is licensed under the AGPL." -msgstr "ミュージック・ブロックスのプログラムは、だれでも自由にみることができる。" +#: js/piemenus.js:3410 +msgid "Duplicate" +msgstr "複製する" -#: js/turtledefs.js:780 -msgid "Turtle Blocks GitHub repository" -msgstr "" +#: js/piemenus.js:3412 +msgid "Move to trash" +msgstr "すてる" -#: js/turtledefs.js:783 -#: js/turtledefs.js:814 -#: js/help.js:337 -#: js/help.js:359 -msgid "Congratulations." -msgstr "おめでとうございます!" +#: js/piemenus.js:3413 +#: js/widgets/timbre.js:968 +#: planet/js/StringHelper.js:69 +msgid "Close" +msgstr "閉じる" -#: js/turtledefs.js:784 -msgid "You have finished the tour. Please enjoy Turtle Blocks!" -msgstr "" +#: js/piemenus.js:3419 +msgid "Save stack" +msgstr "スタックをほぞん" -#: js/turtledefs.js:791 -msgid "A detailed guide to Music Blocks is available." -msgstr "インターネットから、ミュージック・ブロックスのさらにくわしいガイドページを見ることができる。次のリンク先を開いてみよう。" +#: js/piemenus.js:3449 +msgid "In order to copy a sample, you must reload the widget, import the sample again, and export it." +msgstr "" -#: js/turtledefs.js:795 -#: js/SaveInterface.js:76 -msgid "Music Blocks Guide" -msgstr "ミュージック・ブロックスガイド" +#: js/piemenus.js:3812 +msgid "You have chosen key " +msgstr "変化記号は" -#: js/turtledefs.js:799 -msgid "Music Blocks is an open source collection of tools for exploring musical concepts." -msgstr "ミュージック・ブロックスは、音楽のコンセプトをたんきゅうするためにつくられた、オープンソースのツールだ。" +#: js/piemenus.js:3816 +msgid " for your pitch preview." +msgstr "の音階によって設定しています。" -#: js/turtledefs.js:801 -msgid "A full list of contributors can be found in the Music Blocks GitHub repository." -msgstr "ミュージック・ブロックスにかかわってきた人のいちらんは、GitHub(ギットハブ)のリポジトリで見ることができる。" +#: js/turtle-singer.js:1363 +#.TRANS: partials are weighted components in a harmonic series +msgid "You must have at least one Partial block inside of a Weighted-partial block" +msgstr "「倍音ウェート」ブロックの中に一つ以上の倍音ブロックが入っている必要があります。" -#: js/turtledefs.js:803 -msgid "Music Blocks is licensed under the AGPL." -msgstr "ミュージック・ブロックスのプログラムは、だれでも自由にみることができる。" +#: js/turtle-singer.js:2077 +msgid "synth cannot play chords." +msgstr "このシンセでは和音ができません" -#: js/turtledefs.js:811 -msgid "Music Blocks GitHub repository" -msgstr "ミュージック・ブロックスのリポジトリ" +#: js/utils/musicutils.js:505 +#: js/utils/musicutils.js:645 +#: js/widgets/pitchdrummatrix.js:228 +#: js/widgets/musickeyboard.js:2885 +msgid "rest" +msgstr "休符" -#: js/turtledefs.js:815 -msgid "You have finished the tour. Please enjoy Music Blocks!" -msgstr "ミスター・マウスのツアーはここで終わり。ミュージック・ブロックスを自由に楽しもう。" +#: js/utils/musicutils.js:689 +msgid "Perfect unison" +msgstr "" -#: js/activity.js:369 -msgid "Search for blocks" -msgstr "ブロックを検索" +#: js/utils/musicutils.js:689 +msgid "Diminished second" +msgstr "" -#: js/activity.js:1145 -msgid "Refresh your browser to change to advanced mode." -msgstr "高度モードにするには、ブラウザをこうしんして下さい。" +#: js/utils/musicutils.js:690 +msgid "Minor second" +msgstr "" -#: js/activity.js:1150 -msgid "Refresh your browser to change to beginner mode." -msgstr "はってんモードにするには、ブラウザをこうしんしてください。" +#: js/utils/musicutils.js:690 +msgid "Augmented unison" +msgstr "" -#: js/activity.js:1184 -msgid "Catching mice" -msgstr "ネズミをつかまえているよ" +#: js/utils/musicutils.js:691 +msgid "Major second" +msgstr "" -#: js/activity.js:1185 -msgid "Cleaning the instruments" -msgstr "楽器のおていれをしているよ" +#: js/utils/musicutils.js:691 +msgid "Diminished third" +msgstr "" -#: js/activity.js:1186 -msgid "Testing key pieces" -msgstr "キーボードの音をたしかめているよ" +#: js/utils/musicutils.js:692 +msgid "Minor third" +msgstr "" -#: js/activity.js:1187 -msgid "Sight-reading" -msgstr "がくふをよみこんでいるよ" +#: js/utils/musicutils.js:692 +msgid "Augmented second" +msgstr "" -#: js/activity.js:1188 -msgid "Combining math and music" -msgstr "音楽と算数をくっつけているよ" +#: js/utils/musicutils.js:693 +msgid "Major third" +msgstr "" -#: js/activity.js:1189 -msgid "Generating more blocks" -msgstr "ブロックをたくさんつくっているよ" +#: js/utils/musicutils.js:693 +msgid "Diminished fourth" +msgstr "" -#: js/activity.js:1190 -msgid "Do Re Mi Fa Sol La Ti Do" -msgstr "ド レ ミ ファ ソ ラ シ ド" +#: js/utils/musicutils.js:694 +msgid "Perfect fourth" +msgstr "" -#: js/activity.js:1191 -msgid "Tuning string instruments" -msgstr "楽器のチューニングをしているよ" +#: js/utils/musicutils.js:694 +msgid "Augmented third" +msgstr "" -#: js/activity.js:1192 -msgid "Pressing random keys" -msgstr "キーボードでおんがくをつくっているよ" +#: js/utils/musicutils.js:695 +msgid "Diminished fifth" +msgstr "" -#: js/activity.js:1351 -msgid "plugins will be removed upon restart." +#: js/utils/musicutils.js:695 +msgid "Augmented fourth" msgstr "" -#: js/activity.js:1360 -msgid "show Cartesian" -msgstr "ほうがん(ざひょう)を表示" +#: js/utils/musicutils.js:696 +msgid "Perfect fifth" +msgstr "" -#: js/activity.js:1842 -msgid "output tools" -msgstr "出力ツール" +#: js/utils/musicutils.js:696 +msgid "Diminished sixth" +msgstr "" -#: js/activity.js:1845 -msgid "custom note" -msgstr "カスタムノート" +#: js/utils/musicutils.js:697 +msgid "Minor sixth" +msgstr "" -#: js/activity.js:1848 -msgid "accidental name" -msgstr "偶然の名前" +#: js/utils/musicutils.js:697 +msgid "Augmented fifth" +msgstr "" -#: js/activity.js:1851 -#: js/PitchBlocks.js:855 -msgid "east indian solfege" -msgstr "東インドのソルフェージュ" +#: js/utils/musicutils.js:698 +msgid "Major sixth" +msgstr "" -#: js/activity.js:1854 -#: js/PitchBlocks.js:869 -msgid "note name" -msgstr "音名" +#: js/utils/musicutils.js:698 +msgid "Diminished seventh" +msgstr "" -#: js/activity.js:1857 -#: js/IntervalsBlocks.js:94 -msgid "temperament name" -msgstr "気質名" +#: js/utils/musicutils.js:699 +msgid "Minor seventh" +msgstr "" -#: js/activity.js:1863 -msgid "chord name" -msgstr "chord name" +#: js/utils/musicutils.js:699 +msgid "Augmented sixth" +msgstr "" -#: js/activity.js:1869 -msgid "filter type" -msgstr "フィルターの種類" +#: js/utils/musicutils.js:700 +msgid "Major seventh" +msgstr "" -#: js/activity.js:1872 -msgid "oscillator type" -msgstr "発振器の種類" +#: js/utils/musicutils.js:700 +msgid "Diminished octave" +msgstr "" -#: js/activity.js:1878 -#: js/DrumBlocks.js:32 -msgid "noise name" -msgstr "ノイズ名" +#: js/utils/musicutils.js:701 +msgid "Perfect octave" +msgstr "" -#: js/activity.js:1881 -#: js/DrumBlocks.js:75 -msgid "drum name" -msgstr "ドラム名" +#: js/utils/musicutils.js:701 +msgid "Augmented seventh" +msgstr "" -#: js/activity.js:1884 -#: js/DrumBlocks.js:119 -msgid "effects name" -msgstr "エフェクト名" +#: js/utils/musicutils.js:702 +msgid "Minor ninth" +msgstr "" -#: js/activity.js:1887 -msgid "wrap mode" -msgstr "ラップモード" +#: js/utils/musicutils.js:702 +msgid "Augmented octave" +msgstr "" -#: js/activity.js:1890 -msgid "load file" -msgstr "ロード ファイル " +#: js/utils/musicutils.js:703 +msgid "Major ninth" +msgstr "" -#: js/activity.js:2056 -msgid "This block is deprecated." -msgstr "このブロックはもうありません。" +#: js/utils/musicutils.js:703 +msgid "Diminished tenth" +msgstr "" -#: js/activity.js:2058 -msgid "Block cannot be found." -msgstr "ブロックが見つかりません。" +#: js/utils/musicutils.js:704 +msgid "Minor tenth" +msgstr "" -#: js/activity.js:2266 -msgid "Saving block artwork" -msgstr "ブロックのアートを保存中" +#: js/utils/musicutils.js:704 +msgid "Augmented ninth" +msgstr "" -#: js/activity.js:2277 -msgid "Erase" -msgstr "消す" +#: js/utils/musicutils.js:705 +msgid "Major tenth" +msgstr "" -#: js/activity.js:2301 -#: js/activity.js:2323 -msgid "Paste" -msgstr "貼り付け" +#: js/utils/musicutils.js:705 +msgid "Diminished eleventh" +msgstr "" -#: js/activity.js:2305 -msgid "Save block help" -msgstr "ブロックの ヘルプを 保存" +#: js/utils/musicutils.js:706 +msgid "Perfect eleventh" +msgstr "" -#: js/activity.js:2390 -msgid "Jumping to the bottom of the page." -msgstr "画面の下にジャンプしています" +#: js/utils/musicutils.js:706 +msgid "Augmented tenth" +msgstr "" -#: js/activity.js:2396 -msgid "Scrolling up." -msgstr "上にスクロールしています" +#: js/utils/musicutils.js:707 +msgid "Diminished twelfth" +msgstr "" -#: js/activity.js:2401 -msgid "Scrolling down." -msgstr "下にスクロールしています" +#: js/utils/musicutils.js:707 +msgid "Augmented eleventh" +msgstr "" -#: js/activity.js:2406 -msgid "Extracting block" -msgstr "ブロックを取り出しています" +#: js/utils/musicutils.js:708 +msgid "Perfect twelfth" +msgstr "" -#: js/activity.js:2414 -msgid "Moving block up." -msgstr "ブロックを上に動かしています" +#: js/utils/musicutils.js:708 +msgid "Diminished thirteenth" +msgstr "" -#: js/activity.js:2435 -msgid "Moving block down." -msgstr "ブロックを下に動かしています" +#: js/utils/musicutils.js:709 +msgid "Minor thirteenth" +msgstr "" -#: js/activity.js:2456 -msgid "Moving block left." -msgstr "ブロックを左に動かしています" +#: js/utils/musicutils.js:709 +msgid "Augmented fifth, plus an octave" +msgstr "" -#: js/activity.js:2473 -msgid "Moving block right." -msgstr "ブロックを右に動かしています" +#: js/utils/musicutils.js:710 +msgid "Major thirteenth" +msgstr "" -#: js/activity.js:2488 -msgid "Jump to home position." -msgstr "まんなかにジャンプする" +#: js/utils/musicutils.js:710 +msgid "Diminished seventh, plus an octave" +msgstr "" -#: js/activity.js:2515 -msgid "Hide blocks" -msgstr "ブロックを非表示" +#: js/utils/musicutils.js:838 +#.TRANS: ordinal number. Please keep exactly one space between each number. +msgid "1st 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th" +msgstr "1度 2度 3度 4度 5度 6度 7度 8度 9度 10度 11度 12度" -#: js/activity.js:3389 -msgid "Click the run button to run the project." -msgstr "プロジェクトを再生するため、再生のボタンをクリックしてください。" +#: js/utils/musicutils.js:1008 +#: js/utils/musicutils.js:1191 +#: js/utils/musicutils.js:1325 +#.TRANS: augmented is a music term related to intervals +msgid "augmented" +msgstr "オーギュメント(増)" -#: js/activity.js:3456 -#: js/SaveInterface.js:131 -#: js/SaveInterface.js:204 -#: js/SaveInterface.js:262 -#: js/SaveInterface.js:389 -#: js/SaveInterface.js:417 -#: js/ProjectStorage.js:27 -#: js/GlobalPlanet.js:467 -#: js/GlobalPlanet.js:469 -#: js/GlobalPlanet.js:495 -#.TRANS: default project title when saving as Lilypond -msgid "My Project" -msgstr "自分のプロジェクト" +#: js/utils/musicutils.js:1010 +#: js/utils/musicutils.js:1192 +#: js/utils/musicutils.js:1324 +#.TRANS: diminished is a music term related to intervals and mode +msgid "diminished" +msgstr "ディミニッシュ(減)" -#: js/activity.js:4261 -msgid "Show/hide block" -msgstr "ブロックを表示する/かくす" +#: js/utils/musicutils.js:1016 +#: js/utils/musicutils.js:1322 +#: js/blocks/IntervalsBlocks.js:649 +#: js/turtleactions/IntervalsActions.js:120 +#: js/turtleactions/IntervalsActions.js:124 +#.TRANS: perfect is a music term related to intervals +msgid "perfect" +msgstr "パーフェクト(完全)" -#: js/activity.js:4263 -msgid "Expand/collapse blocks" -msgstr "ブロックを広げる/折りたたむ" +#: js/utils/musicutils.js:1018 +#.TRANS: twelve semi-tone scale for music +msgid "chromatic" +msgstr "クロマティック音階" -#: js/activity.js:4381 -msgid "Could not parse JSON input." -msgstr "JSONのインプットのパースができません。" +#: js/utils/musicutils.js:1019 +msgid "algerian" +msgstr "アルジェリア音階" -#: js/activity.js:4684 -#: js/activity.js:4771 -#: js/activity.js:4821 -msgid "Cannot load project from the file. Please check the file type." -msgstr "プロジェクトを読みこめません。ファイルの種類をかくにんしてください。" +#: js/utils/musicutils.js:1020 +msgid "spanish" +msgstr "スペイン音階" -#: js/activity.js:5051 -msgid "Invalid parameters" -msgstr "" +#: js/utils/musicutils.js:1022 +#.TRANS: modal scale in music +msgid "octatonic" +msgstr "オクタトニック・スケール" -#: js/turtle-singer.js:1334 -#.TRANS: partials are weighted components in a harmonic series -msgid "You must have at least one Partial block inside of a Weighted-partial block" -msgstr "「倍音ウェート」ブロックの中に一つ以上の倍音ブロックが入っている必要があります。" +#: js/utils/musicutils.js:1024 +#.TRANS: harmonic major scale in music +msgid "harmonic major" +msgstr "ハーモニック・メジャー(和声長音階)" -#: js/turtle-singer.js:2048 -msgid "synth cannot play chords." -msgstr "このシンセでは和音ができません" +#: js/utils/musicutils.js:1026 +#.TRANS: natural minor scales in music +msgid "natural minor" +msgstr "自然短音階" -#: js/lilypond.js:614 -msgid "brown rat" -msgstr "茶色のドブネズミ" +#: js/utils/musicutils.js:1028 +#.TRANS: harmonic minor scale in music +msgid "harmonic minor" +msgstr "和声短音階" -#: js/lilypond.js:615 -msgid "mole" -msgstr "土竜" +#: js/utils/musicutils.js:1030 +#.TRANS: melodic minor scale in music +msgid "melodic minor" +msgstr "旋律短音階" -#: js/lilypond.js:616 -msgid "chipmunk" -msgstr "リス" +#: js/utils/musicutils.js:1034 +#.TRANS: modal scale for music +msgid "dorian" +msgstr "ドリアン音階" -#: js/lilypond.js:617 -msgid "red squirrel" -msgstr "赤いリス" +#: js/utils/musicutils.js:1036 +#.TRANS: modal scale for music +msgid "phrygian" +msgstr "フリジアン音階" -#: js/lilypond.js:618 -msgid "guinea pig" -msgstr "ギニーピッグ" +#: js/utils/musicutils.js:1038 +#.TRANS: modal scale for music +msgid "lydian" +msgstr "リディアン音階" -#: js/lilypond.js:619 -msgid "capybara" -msgstr "カピバラ" +#: js/utils/musicutils.js:1040 +#.TRANS: modal scale for music +msgid "mixolydian" +msgstr "ミクソリディアン音階" -#: js/lilypond.js:620 -msgid "coypu" -msgstr "ヌートリア" +#: js/utils/musicutils.js:1044 +#.TRANS: modal scale for music +msgid "locrian" +msgstr "ロクリアン音階" -#: js/lilypond.js:621 -msgid "black rat" -msgstr "黒い鼠" +#: js/utils/musicutils.js:1046 +#.TRANS: minor jazz scale for music +msgid "jazz minor" +msgstr "オルタード音階" -#: js/lilypond.js:622 -msgid "grey squirrel" -msgstr "灰色のリス" +#: js/utils/musicutils.js:1048 +#.TRANS: bebop scale for music +msgid "bebop" +msgstr "ビバップ音階" -#: js/lilypond.js:623 -msgid "flying squirrel" -msgstr "モモンガ" +#: js/utils/musicutils.js:1049 +msgid "arabic" +msgstr "アラビア音階" -#: js/lilypond.js:624 -msgid "bat" -msgstr "蝙蝠" +#: js/utils/musicutils.js:1050 +msgid "byzantine" +msgstr "ビザンティン" -#: js/lilypond.js:757 -#: js/lilypond.js:921 -#: js/lilypond.js:959 -#: js/ActionBlocks.js:1256 -#: js/ExtrasBlocks.js:553 -msgid "start drum" -msgstr "ドラム・スタート" +#: js/utils/musicutils.js:1052 +#.TRANS: musical scale for music by Verdi +msgid "enigmatic" +msgstr "ヴェルディの音階" -#: js/SaveInterface.js:59 -#: js/SaveInterface.js:61 -#: js/SaveInterface.js:93 -msgid "Music Blocks Project" -msgstr "ミュージック・ブロックスのプロジェクト" +#: js/utils/musicutils.js:1053 +msgid "ethiopian" +msgstr "エチオピア音階" -#: js/SaveInterface.js:63 -msgid "This project was created in Music Blocks" -msgstr "このプロジェクトは、ミュージック・ブロックスで作成されました。" +#: js/utils/musicutils.js:1055 +#.TRANS: Ethiopic scale for music +msgid "geez" +msgstr "ゲエズ音階" -#: js/SaveInterface.js:67 -msgid "Music Blocks is a Free/Libre Software application." -msgstr "ミュージック・ブロックスは、音楽のちしきを楽しみながら身につけることのできる、オープンソースのソフトです。" +#: js/utils/musicutils.js:1056 +msgid "hindu" +msgstr "ヒンドゥー音階" -#: js/SaveInterface.js:69 -msgid "The source code can be accessed at" -msgstr "ミュージック・ブロックスのソースコードは、こちらのURLから見ることができます。" +#: js/utils/musicutils.js:1057 +msgid "hungarian" +msgstr "ハンガリー音階" -#: js/SaveInterface.js:72 -msgid "For more information, please consult the" -msgstr "もっと詳しく知りたい場合は、ミュージック・ブロックスのガイドを参照してください。" +#: js/utils/musicutils.js:1059 +#.TRANS: minor Romanian scale for music +msgid "romanian minor" +msgstr "ルーマニア・マイナー音階" -#: js/SaveInterface.js:83 -msgid "Alternatively, open the file in Music Blocks using the Load project button." -msgstr "「ファイルからプロジェクトを読みこむ」ボタンをおして、ファイルをひらいてください。" +#: js/utils/musicutils.js:1060 +msgid "spanish gypsy" +msgstr "スパニッシュ・ジプシー音階" -#: js/SaveInterface.js:85 -msgid "Project Code" -msgstr "プロジェクトのコード" +#: js/utils/musicutils.js:1062 +#.TRANS: musical scale for Mid-Eastern music +msgid "maqam" +msgstr "マカーム音階" -#: js/SaveInterface.js:87 -msgid "This code stores data about the blocks in a project." -msgstr "このコードは、がいとうする場合、へんしゅうされたバージョンのプロジェクトといっしょに、プロジェクトの中のブロックに関するデータをほぞんします。" +#: js/utils/musicutils.js:1064 +#.TRANS: minor blues scale for music +msgid "minor blues" +msgstr "マイナー・ブルース音階" -#: js/SaveInterface.js:89 -msgid "Show" -msgstr "プロジェクトのコードを表示する" +#: js/utils/musicutils.js:1066 +#.TRANS: major blues scale for music +msgid "major blues" +msgstr "メジャー・ブルース音階" -#: js/SaveInterface.js:91 -msgid "Hide" -msgstr "プロジェクトのコードを非表示にする" +#: js/utils/musicutils.js:1067 +msgid "whole tone" +msgstr "ホールトーン音階" -#: js/SaveInterface.js:197 -#: js/SaveInterface.js:58 -msgid "No description provided" -msgstr "記入がありません" +#: js/utils/musicutils.js:1069 +#.TRANS: pentatonic is a general term that means "five note scale". This scale is typically known as "minor pentatonic" +msgid "minor pentatonic" +msgstr "マイナー・ペンタトニック音階" -#: js/SaveInterface.js:332 -msgid "Your recording is in progress." -msgstr "" +#: js/utils/musicutils.js:1071 +#.TRANS: pentatonic is a general term that means "five note scale". This scale is typically known as "major pentatonic" +msgid "major pentatonic" +msgstr "メジャー・ペンタトニック音階" -#: js/SaveInterface.js:401 -#.TRANS: File name prompt for save as Lilypond -msgid "File name" -msgstr "ファイル名" +#: js/utils/musicutils.js:1072 +msgid "chinese" +msgstr "中国音階" -#: js/SaveInterface.js:403 -#: js/StringHelper.js:39 -#.TRANS: Project title prompt for save as Lilypond -msgid "Project title" -msgstr "曲名" +#: js/utils/musicutils.js:1073 +msgid "egyptian" +msgstr "エジプト音階" -#: js/SaveInterface.js:405 -#.TRANS: Project title prompt for save as Lilypond -msgid "Project author" -msgstr "作曲家" +#: js/utils/musicutils.js:1075 +#.TRANS: https://en.wikipedia.org/wiki/Hirajoshi_scale NOTE: There are three different versions of this scale +msgid "hirajoshi" +msgstr "平調子" -#: js/SaveInterface.js:407 -#.TRANS: MIDI prompt for save as Lilypond -msgid "Include MIDI output?" -msgstr "MIDIのアウトプットがくふにもまとめましょうか?" +#: js/utils/musicutils.js:1076 +msgid "Japan" +msgstr "日本" -#: js/SaveInterface.js:409 -#.TRANS: Guitar prompt for save as Lilypond -msgid "Include guitar tablature output?" -msgstr "ギターのTABもがくふにまとめましょうか?" +#: js/utils/musicutils.js:1078 +#.TRANS: https://en.wikipedia.org/wiki/In_scale and https://en.wikipedia.org/wiki/Sakura_Sakura +msgid "in" +msgstr "陰音階" -#: js/SaveInterface.js:411 -#.TRANS: Lilypond is a scripting language for generating sheet music -msgid "Save as Lilypond" -msgstr "Lilypondがくふのフォーマットでほぞん" +#: js/utils/musicutils.js:1080 +#.TRANS: https://en.wikipedia.org/wiki/Miny%C5%8D_scale +msgid "minyo" +msgstr "民謡音階" -#: js/SaveInterface.js:426 -#: js/EnsembleBlocks.js:75 -#: js/EnsembleBlocks.js:154 -#: js/EnsembleBlocks.js:216 -#: js/EnsembleBlocks.js:302 -#: js/EnsembleBlocks.js:348 -#: js/EnsembleBlocks.js:389 -#: js/EnsembleBlocks.js:441 -#: js/EnsembleBlocks.js:490 -#: js/EnsembleBlocks.js:536 -#: js/EnsembleBlocks.js:583 -#: js/EnsembleBlocks.js:637 -#: js/EnsembleBlocks.js:753 -#: js/EnsembleBlocks.js:840 -#: js/EnsembleBlocks.js:899 -#: js/EnsembleBlocks.js:942 -#: js/EnsembleBlocks.js:1212 -#: js/EnsembleBlocks.js:1280 -#.TRANS: default project author when saving as Lilypond -msgid "Mr. Mouse" -msgstr "ミスター・マウス" +#: js/utils/musicutils.js:1082 +#.TRANS: Italian mathematician +msgid "fibonacci" +msgstr "フィボナッチ音階" -#: js/SaveInterface.js:573 -msgid "The Lilypond code is copied to clipboard. You can paste it here: " -msgstr "" +#: js/utils/musicutils.js:1083 +#: js/utils/musicutils.js:1134 +#: js/utils/musicutils.js:1177 +#: js/utils/musicutils.js:1199 +#: js/utils/synthutils.js:134 +#: js/blocks/IntervalsBlocks.js:1124 +#: js/blocks/ToneBlocks.js:946 +#: js/blocks/VolumeBlocks.js:411 +#: js/blocks/WidgetBlocks.js:399 +#: js/blocks/WidgetBlocks.js:404 +#: js/turtleactions/VolumeActions.js:218 +#: js/widgets/modewidget.js:919 +#.TRANS: customize voice +msgid "custom" +msgstr "オリジナル" -#: js/RhythmBlockPaletteBlocks.js:50 -#: js/RhythmBlockPaletteBlocks.js:232 -#.TRANS: rhythm block -#.TRANS: translate "rhythm1" as rhythm -msgid "rhythm1" -msgstr "連符(かけ算)" +#: js/utils/musicutils.js:1085 +#: js/utils/musicutils.js:1531 +#: js/blocks/WidgetBlocks.js:176 +#.TRANS: highpass filter +msgid "highpass" +msgstr "ハイパス・フィルター" -#: js/RhythmBlockPaletteBlocks.js:70 -#: js/RhythmBlockPaletteBlocks.js:251 -#: js/RhythmBlockPaletteBlocks.js:484 -#: js/RhythmBlockPaletteBlocks.js:553 -#: js/RhythmBlockPaletteBlocks.js:874 -msgid "number of notes" -msgstr "音符の数" +#: js/utils/musicutils.js:1087 +#: js/utils/musicutils.js:1532 +#.TRANS: lowpass filter +msgid "lowpass" +msgstr "ローパス・フィルター" -#: js/RhythmBlockPaletteBlocks.js:126 -msgid "polyphonic rhythm" -msgstr "ポリリズム" +#: js/utils/musicutils.js:1089 +#: js/utils/musicutils.js:1533 +#.TRANS: bandpass filter +msgid "bandpass" +msgstr "バンドパス・フィルター" -#: js/RhythmBlockPaletteBlocks.js:218 -msgid "The Rhythm block is used to generate rhythm patterns." -msgstr "

連符(れんぷ)ブロック(かけ算)


まとまったいくつかの音符(おんぷ)。一定の長さの音を3つや5つなどくり返して使う。3連符(れんぷ)や5連符(れんぷ)など、2の倍数ではない音符(おんぷ)の数でグループを作りやすくなる。" +#: js/utils/musicutils.js:1091 +#: js/utils/musicutils.js:1534 +#.TRANS: high-shelf filter +msgid "highshelf" +msgstr "ハイシェルフ・フィルター" -#: js/RhythmBlockPaletteBlocks.js:279 -msgid "1/64 note" -msgstr "64分音符" +#: js/utils/musicutils.js:1093 +#: js/utils/musicutils.js:1535 +#.TRANS: low-shelf filter +msgid "lowshelf" +msgstr "ローシェルフ・フィルター" -#: js/RhythmBlockPaletteBlocks.js:303 -msgid "1/32 note" -msgstr "32分音符" +#: js/utils/musicutils.js:1095 +#: js/utils/musicutils.js:1536 +#.TRANS: notch-shelf filter +msgid "notch" +msgstr "ノッチ・フィルター" -#: js/RhythmBlockPaletteBlocks.js:331 -msgid "1/16 note" -msgstr "16分音符" +#: js/utils/musicutils.js:1097 +#: js/utils/musicutils.js:1537 +#.TRANS: all-pass filter +msgid "allpass" +msgstr "オールパスフィルター" -#: js/RhythmBlockPaletteBlocks.js:359 -msgid "eighth note" -msgstr "8分音符" +#: js/utils/musicutils.js:1099 +#: js/utils/musicutils.js:1538 +#.TRANS: peaking filter +msgid "peaking" +msgstr "ピーク・フィルタ" -#: js/RhythmBlockPaletteBlocks.js:387 -msgid "quarter note" -msgstr "4分音符" +#: js/utils/musicutils.js:1100 +#: js/utils/musicutils.js:1546 +#: js/utils/synthutils.js:126 +#: js/blocks/PitchBlocks.js:85 +#.TRANS: sine wave +msgid "sine" +msgstr "サイン波" -#: js/RhythmBlockPaletteBlocks.js:415 -msgid "half note" -msgstr "2分音符" +#: js/utils/musicutils.js:1101 +#: js/utils/musicutils.js:1547 +#: js/utils/synthutils.js:128 +#: js/blocks/PitchBlocks.js:39 +#.TRANS: square wave +msgid "square" +msgstr "四角の波" -#: js/RhythmBlockPaletteBlocks.js:443 -msgid "whole note" -msgstr "全音符" +#: js/utils/musicutils.js:1102 +#: js/utils/musicutils.js:1548 +#: js/utils/synthutils.js:132 +#: js/blocks/PitchBlocks.js:62 +#: js/blocks/ToneBlocks.js:39 +#.TRANS: triangle wave +msgid "triangle" +msgstr "三角の波" -#: js/RhythmBlockPaletteBlocks.js:481 -#: js/RhythmBlockPaletteBlocks.js:550 -#: js/RhythmBlockPaletteBlocks.js:601 -#.TRANS: A tuplet is a note value divided into irregular time values. -msgid "tuplet" -msgstr "~連符(タプル)" +#: js/utils/musicutils.js:1103 +#: js/utils/musicutils.js:1549 +#: js/utils/synthutils.js:130 +#: js/blocks/PitchBlocks.js:108 +#.TRANS: sawtooth wave +msgid "sawtooth" +msgstr "ぎざぎざの波" -#: js/RhythmBlockPaletteBlocks.js:767 -msgid "septuplet" -msgstr "7連符" +#: js/utils/musicutils.js:1105 +#: js/utils/musicutils.js:1312 +#: js/blocks/PitchBlocks.js:931 +#: js/blocks/PitchBlocks.js:937 +#: js/turtleactions/PitchActions.js:469 +#.TRANS: even numbers +#.TRANS: invert based on even or odd number or musical scale +msgid "even" +msgstr "偶数" -#: js/RhythmBlockPaletteBlocks.js:795 -msgid "quintuplet" -msgstr "5連符" +#: js/utils/musicutils.js:1107 +#: js/utils/musicutils.js:1313 +#: js/blocks/PitchBlocks.js:937 +#: js/turtleactions/PitchActions.js:471 +#.TRANS: odd numbers +msgid "odd" +msgstr "奇数" -#: js/RhythmBlockPaletteBlocks.js:823 -msgid "triplet" -msgstr "3連符" +#: js/utils/musicutils.js:1108 +#: js/utils/musicutils.js:1314 +#: js/blocks/PitchBlocks.js:937 +#: js/turtleactions/PitchActions.js:473 +msgid "scalar" +msgstr "音階的" -#: js/RhythmBlockPaletteBlocks.js:850 -msgid "simple tuplet" -msgstr "連符(わり算)" +#: js/utils/musicutils.js:1109 +#: js/utils/synthutils.js:72 +#: js/blocks/VolumeBlocks.js:47 +#.TRANS: musical instrument +msgid "piano" +msgstr "ピアノ" -#: js/RhythmBlockPaletteBlocks.js:860 -msgid "Tuplets are a collection of notes that get scaled to a specific duration." -msgstr "

連符(れんぷ)ブロック(わり算)


まとまったいくつかの音符(おんぷ)。一定の長さの音を3つや5つに等分して使う。" +#: js/utils/musicutils.js:1110 +#: js/utils/synthutils.js:74 +#.TRANS: musical instrument +msgid "violin" +msgstr "バイオリン" -#: js/WidgetBlocks.js:71 -#.TRANS: sound envelope (ADSR) -msgid "envelope" -msgstr "エンベロープ" +#: js/utils/musicutils.js:1111 +#: js/utils/synthutils.js:76 +#.TRANS: viola musical instrument +msgid "viola" +msgstr "ビオラ" -#: js/WidgetBlocks.js:79 -#.TRANS: Attack time is the time taken for initial run-up of level from nil to peak, beginning when the key is first pressed. -msgid "attack" -msgstr "アタック" +#: js/utils/musicutils.js:1112 +#: js/utils/synthutils.js:114 +#.TRANS: xylophone musical instrument +msgid "xylophone" +msgstr "木琴" -#: js/WidgetBlocks.js:81 -#.TRANS: Decay time is the time taken for the subsequent run down from the attack level to the designated sustain level. -msgid "decay" -msgstr "ディケイ" +#: js/utils/musicutils.js:1113 +#: js/utils/synthutils.js:136 +#.TRANS: vibraphone musical instrument +msgid "vibraphone" +msgstr "鉄琴" -#: js/WidgetBlocks.js:83 -#.TRANS: Sustain level is the level during the main sequence of the sound's duration, until the key is released. -msgid "sustain" -msgstr "サステイン" +#: js/utils/musicutils.js:1114 +#: js/utils/synthutils.js:78 +#.TRANS: musical instrument +msgid "cello" +msgstr "チェロ" -#: js/WidgetBlocks.js:85 -#.TRANS: Release time is the time taken for the level to decay from the sustain level to zero after the key is released. -msgid "release" -msgstr "リリース" +#: js/utils/musicutils.js:1116 +#: js/utils/synthutils.js:82 +#.TRANS: viola musical instrument +msgid "double bass" +msgstr "ダブルベース" -#: js/WidgetBlocks.js:96 -msgid "Attack value should be from 0 to 100." -msgstr "アタック値には 0 以上100以下の数字をいれて下さい。" +#: js/utils/musicutils.js:1117 +#: js/utils/synthutils.js:84 +#: js/widgets/rhythmruler.js:2511 +#.TRANS: musical instrument +msgid "guitar" +msgstr "ギター" -#: js/WidgetBlocks.js:99 -msgid "Decay value should be from 0 to 100." -msgstr "減衰値には 0 以上100以下の数字をいれて下さい。" +#: js/utils/musicutils.js:1118 +#: js/utils/synthutils.js:86 +#.TRANS: musical instrument +msgid "acoustic guitar" +msgstr "アコースティック" -#: js/WidgetBlocks.js:102 -msgid "Sustain value should be from 0 to 100." -msgstr "サステイン値には 0 以上100以下の数字をいれて下さい。" +#: js/utils/musicutils.js:1119 +#: js/utils/synthutils.js:88 +#.TRANS: musical instrument +msgid "flute" +msgstr "フルート" -#: js/WidgetBlocks.js:105 -msgid "Release value should be from 0-100." -msgstr "リリース値には 0 以上100以下の数字をいれて下さい。" +#: js/utils/musicutils.js:1120 +#: js/utils/synthutils.js:90 +#.TRANS: musical instrument +msgid "clarinet" +msgstr "クラリネット" -#: js/WidgetBlocks.js:121 -msgid "You are adding multiple envelope blocks." -msgstr "封筒ブロックを複数追加しています。" +#: js/utils/musicutils.js:1121 +#: js/utils/synthutils.js:92 +#.TRANS: musical instrument +msgid "saxophone" +msgstr "サクソフォン" -#: js/WidgetBlocks.js:144 -#.TRANS: a filter removes some unwanted components from a signal -msgid "filter" -msgstr "フィルター" +#: js/utils/musicutils.js:1122 +#: js/utils/synthutils.js:94 +#.TRANS: musical instrument +msgid "tuba" +msgstr "チューバ" -#: js/WidgetBlocks.js:149 -#: js/musicutils.js:706 -#: js/musicutils.js:1105 -#.TRANS: highpass filter -msgid "highpass" -msgstr "ハイパス・フィルター" +#: js/utils/musicutils.js:1123 +#: js/utils/synthutils.js:96 +#.TRANS: musical instrument +msgid "trumpet" +msgstr "トランペット" -#: js/WidgetBlocks.js:152 -#: js/ToneBlocks.js:42 -#: js/timbre.js:1558 -#: js/timbre.js:1808 -#.TRANS: type of filter, e.g., lowpass, highpass, etc. -#.TRANS: there are different types (sine, triangle, square...) of oscillators. -msgid "type" -msgstr "種類" +#: js/utils/musicutils.js:1124 +#: js/utils/synthutils.js:98 +#.TRANS: musical instrument +msgid "oboe" +msgstr "オーボエ" -#: js/WidgetBlocks.js:154 -#: js/timbre.js:1818 -#.TRANS: rolloff is the steepness of a change in frequency. -msgid "rolloff" -msgstr "ロールオフ" +#: js/utils/musicutils.js:1125 +#: js/utils/synthutils.js:100 +#.TRANS: musical instrument +msgid "trombone" +msgstr "トロンボーン" -#: js/WidgetBlocks.js:155 -#: js/MediaBlocks.js:692 -#: js/temperament.js:382 -#: js/temperament.js:417 -#: js/temperament.js:477 -#: js/temperament.js:485 -#: js/temperament.js:1348 -#: js/timbre.js:1842 -msgid "frequency" -msgstr "周波数" +#: js/utils/musicutils.js:1126 +#: js/utils/synthutils.js:116 +#.TRANS: polytone synthesizer +msgid "electronic synth" +msgstr "シンセサイザー" -#: js/WidgetBlocks.js:179 -#.TRANS: rolloff is the steepness of a change in frequency. -msgid "Rolloff value should be either -12, -24, -48, or -96 decibels/octave." -msgstr "ロールオフ値は -12, -24, -48, -98 デシベル / オクターヴである必要があります。" +#: js/utils/musicutils.js:1127 +#: js/utils/synthutils.js:118 +#.TRANS: simple monotone synthesizer +msgid "simple 1" +msgstr "シンプル1" -#: js/WidgetBlocks.js:211 -msgid "The Temperament tool is used to define custom tuning." -msgstr "" +#: js/utils/musicutils.js:1128 +msgid "simple 2" +msgstr "シンプル2" -#: js/WidgetBlocks.js:277 -#: js/sampler.js:329 -msgid "Upload a sample and adjust its pitch center." -msgstr "" +#: js/utils/musicutils.js:1129 +msgid "simple 3" +msgstr "シンプル3" -#: js/WidgetBlocks.js:284 -#.TRANS: the speed at music is should be played. -msgid "sampler" -msgstr "サンプラー" +#: js/utils/musicutils.js:1130 +msgid "simple 4" +msgstr "シンプル4" -#: js/WidgetBlocks.js:329 -#: js/WidgetBlocks.js:334 -#: js/IntervalsBlocks.js:928 -#: js/VolumeBlocks.js:411 -#: js/ToneBlocks.js:946 -#: js/VolumeActions.js:218 -#: js/musicutils.js:704 -#: js/musicutils.js:755 -#: js/musicutils.js:798 -#: js/musicutils.js:820 -#: js/musicutils.js:1136 -#: js/synthutils.js:118 -#: js/modewidget.js:919 -#.TRANS: customize voice -msgid "custom" -msgstr "オリジナル" +#: js/utils/musicutils.js:1131 +#: js/utils/synthutils.js:58 +#: js/blocks/DrumBlocks.js:191 +#.TRANS: white noise synthesizer +msgid "white noise" +msgstr "ホワイトノイズ" -#: js/WidgetBlocks.js:432 -msgid "The Meter block opens a tool to select strong beats for the meter." -msgstr "

拍子ブロック


テーブルの数字をクリックして、強い拍(はく)の位置を決める。
★拍子(ひょうし)とは
拍(はく)がいくつかまとまったもの。
★拍(はく)とは
くり返されるリズムのこと。" +#: js/utils/musicutils.js:1132 +#: js/utils/synthutils.js:60 +#.TRANS: brown noise synthesizer +msgid "brown noise" +msgstr "ブラウンノイズ" -#: js/WidgetBlocks.js:473 -msgid "The oscilloscope block opens a tool to visualize waveforms." -msgstr "" +#: js/utils/musicutils.js:1133 +#: js/utils/synthutils.js:62 +#.TRANS: pink noise synthesizer +msgid "pink noise" +msgstr "ピンクノイズ" -#: js/WidgetBlocks.js:478 -msgid "oscilloscope" -msgstr "オシロスコープ" +#: js/utils/musicutils.js:1135 +#: js/utils/synthutils.js:148 +#: js/widgets/rhythmruler.js:2057 +#: js/widgets/rhythmruler.js:2319 +#.TRANS: musical instrument +msgid "snare drum" +msgstr "スネアドラム" -#: js/WidgetBlocks.js:530 -msgid "The Custom mode block opens a tool to explore musical mode (the spacing of the notes in a scale)." -msgstr "

モード(音階)ブロック


いろいろな音階をさがすツールを表示する。音階は、音と音のかんかくを決めながらさがすことができる。

★音階とは
順番に並んだ音のまとまり。たとえば、「ド」を始まりの音にしたときの「ドレミファソラシド」、「ソ」を始まりの音にしたときの「ソラシドレミ(♯ファ)ソ」のこと。" +#: js/utils/musicutils.js:1136 +#: js/utils/synthutils.js:150 +#.TRANS: musical instrument +msgid "kick drum" +msgstr "キックドラム" -#: js/WidgetBlocks.js:536 -#.TRANS: musical mode is the pattern of half-steps in an octave, e.g., Major or Minor modes -msgid "custom mode" -msgstr "音階" +#: js/utils/musicutils.js:1137 +#: js/utils/synthutils.js:152 +#.TRANS: musical instrument +msgid "tom tom" +msgstr "タムタム" -#: js/WidgetBlocks.js:570 -msgid "The Tempo block opens a metronome to visualize the beat." -msgstr "

メトロノームブロック


メトロノームを表示する。ボタンをおすと、メトロノームのはやさを変えられる。テーブルには、1分あたりの拍(はく)の数が表示される。

★拍(はく)とは
くり返されるリズムのこと。" +#: js/utils/musicutils.js:1138 +#: js/utils/synthutils.js:154 +#.TRANS: musical instrument +msgid "floor tom" +msgstr "フロアタム" -#: js/WidgetBlocks.js:617 -msgid "The Arpeggio Widget is used to compose chord sequences." -msgstr "「アルペジオ」ウィジェットは コード進行 を作るためです。" +#: js/utils/musicutils.js:1139 +#: js/utils/synthutils.js:156 +#.TRANS: musical instrument +msgid "bass drum" +msgstr "バスドラム" -#: js/WidgetBlocks.js:623 -#: js/IntervalsBlocks.js:683 -msgid "arpeggio" -msgstr "アルペジオ" +#: js/utils/musicutils.js:1140 +#: js/utils/synthutils.js:158 +#.TRANS: a drum made from an inverted cup +msgid "cup drum" +msgstr "カップドラム" -#: js/WidgetBlocks.js:677 -msgid "The Pitch drum matrix is used to map pitches to drum sounds." -msgstr "" +#: js/utils/musicutils.js:1141 +#: js/utils/synthutils.js:160 +#.TRANS: musical instrument +msgid "darbuka drum" +msgstr "ダブカドラム" -#: js/WidgetBlocks.js:682 -#.TRANS: makes a mapping between pitches and drum sounds -msgid "pitch-drum mapper" -msgstr "音高-ドラム・マッパー" +#: js/utils/musicutils.js:1142 +#: js/utils/synthutils.js:164 +#.TRANS: musical instrument +msgid "hi hat" +msgstr "ハイハット" -#: js/WidgetBlocks.js:724 -msgid "You must have at least one pitch block and one drum block in the matrix." -msgstr "フレーズメーカーブロックには、音の高さブロックとドラムブロックを最低1つずつ入れてください。" +#: js/utils/musicutils.js:1143 +#: js/utils/synthutils.js:166 +#.TRANS: a small metal bell +msgid "ride bell" +msgstr "ライドベル" -#: js/WidgetBlocks.js:746 -msgid "The Pitch slider tool to is used to generate pitches at selected frequencies." -msgstr "

ヘルツスライダーブロック


スライダーを上下にうごかすことで、違う周波数(ヘルツのすうち)の音を聞くことができる。作った音をデータ化することができる。また、ヘルツの初期せっていちは、自由に変えられる。

★ヘルツとは音の高さを表す周波数。
★周波数とは音が1秒間に何回しんどうするかを表すすうち。周波数が高い(すうちが大きい)ほど、音が高くなる。" +#: js/utils/musicutils.js:1144 +#: js/utils/synthutils.js:168 +#.TRANS: musical instrument +msgid "cow bell" +msgstr "カウベル" -#: js/WidgetBlocks.js:751 -#.TRANS: widget to generate pitches using a slider -msgid "pitch slider" -msgstr "ヘルツスライダー" +#: js/utils/musicutils.js:1145 +msgid "japanese drum" +msgstr "太鼓" -#: js/WidgetBlocks.js:788 -msgid "chromatic keyboard" -msgstr "クロマティック・キーボード" +#: js/utils/musicutils.js:1146 +#: js/utils/synthutils.js:174 +#.TRANS: musical instrument +msgid "japanese bell" +msgstr "鉦" -#: js/WidgetBlocks.js:815 -#: js/WidgetBlocks.js:874 -#.TRANS: widget to generate pitches using a slider -msgid "music keyboard" -msgstr "キーボード" +#: js/utils/musicutils.js:1147 +#: js/utils/synthutils.js:170 +#.TRANS: musical instrument +msgid "triangle bell" +msgstr "トライアングル" -#: js/WidgetBlocks.js:859 -#: js/WidgetBlocks.js:866 -msgid "The Music keyboard block opens a piano keyboard that can be used to create notes." -msgstr "

キーボードブロック


ピアノのキーボードを表示する。作った音をデータ化することができる。

" +#: js/utils/musicutils.js:1148 +#: js/utils/synthutils.js:172 +#.TRANS: musical instrument +msgid "finger cymbals" +msgstr "フィンガーシンバル" -#: js/WidgetBlocks.js:910 -msgid "The Pitch staircase tool to is used to generate pitches from a given ratio." -msgstr "" +#: js/utils/musicutils.js:1149 +#: js/utils/synthutils.js:176 +#.TRANS: a musically tuned set of bells +msgid "chime" +msgstr "チャイム" -#: js/WidgetBlocks.js:917 -#.TRANS: generate a progressive sequence of pitches -msgid "pitch staircase" -msgstr "音高の数列を作る" +#: js/utils/musicutils.js:1150 +#: js/utils/synthutils.js:178 +#.TRANS: a musical instrument +msgid "gong" +msgstr "ドラ" -#: js/WidgetBlocks.js:982 -msgid "The Rhythm Maker block opens a tool to create drum machines." -msgstr "

リズムメーカーブロック


音の長さでぶんかつしてリズムを作るテーブルを表示する。作ったリズムをデータ化することができる。

" +#: js/utils/musicutils.js:1151 +#: js/utils/synthutils.js:180 +#.TRANS: sound effect +msgid "clang" +msgstr "カチャカチャ" -#: js/WidgetBlocks.js:1036 -msgid "G major scale" -msgstr "Gメジャー" +#: js/utils/musicutils.js:1152 +#: js/utils/synthutils.js:182 +#.TRANS: sound effect +msgid "crash" +msgstr "クラッシュ" -#: js/WidgetBlocks.js:1064 -msgid "C major scale" -msgstr "Cメジャー" +#: js/utils/musicutils.js:1153 +#: js/utils/synthutils.js:184 +#.TRANS: sound effect +msgid "bottle" +msgstr "空きびん" -#: js/WidgetBlocks.js:1097 -msgid "The Phrase Maker block opens a tool to create musical phrases." -msgstr "

フレーズメーカーブロック


フレーズを作るためのテーブルを表示する。作ったフレーズをデータ化することができる。

★フレーズとは
ひとまとまりの音楽。

" +#: js/utils/musicutils.js:1154 +#: js/utils/synthutils.js:186 +#.TRANS: sound effect +msgid "clap" +msgstr "てびょうし" -#: js/WidgetBlocks.js:1104 -#.TRANS: assigns pitch to a sequence of beats to generate a melody -msgid "phrase maker" -msgstr "フレーズメーカー" +#: js/utils/musicutils.js:1155 +#: js/utils/synthutils.js:188 +#.TRANS: sound effect +msgid "slap" +msgstr "ピシャリ" -#: js/WidgetBlocks.js:1168 -msgid "You must have at least one pitch block and one rhythm block in the matrix." -msgstr "フレーズメーカーには、音の高さブロックと音符ブロックを組み合わせてください。" +#: js/utils/musicutils.js:1156 +#: js/utils/synthutils.js:190 +#.TRANS: sound effect +msgid "splash" +msgstr "しぶき" -#: js/WidgetBlocks.js:1220 -msgid "The Status block opens a tool for inspecting the status of Music Blocks as it is running." -msgstr "

実行じょうきょうブロック


ブロックの実行じょうきょうをけんさくするテーブルを表示する。
" +#: js/utils/musicutils.js:1157 +#: js/utils/synthutils.js:192 +#.TRANS: sound effect +msgid "bubbles" +msgstr "あわ" -#: js/IntervalsBlocks.js:45 -msgid "set temperament" -msgstr "音律をせってい" +#: js/utils/musicutils.js:1158 +#: js/utils/synthutils.js:194 +#.TRANS: sound effect +msgid "raindrop" +msgstr "雨のしずく" -#: js/IntervalsBlocks.js:63 -#: js/MediaBlocks.js:746 -#: js/PitchBlocks.js:657 -#: js/PitchBlocks.js:933 -#: js/PitchBlocks.js:972 -#: js/PitchBlocks.js:1005 -#: js/PitchBlocks.js:1166 -#: js/PitchBlocks.js:1679 -#: js/PitchBlocks.js:1720 -#: js/PitchBlocks.js:1827 -#: js/ToneBlocks.js:1025 -#.TRANS: adjusts the shift up or down by one octave (twelve half-steps in the interval between two notes, one having twice or half the frequency in Hz of the other.) -msgid "octave" -msgstr "オクターヴの高さ" +#: js/utils/musicutils.js:1159 +#: js/utils/synthutils.js:196 +#.TRANS: animal sound effect +msgid "cat" +msgstr "ねこ" -#: js/IntervalsBlocks.js:99 -msgid "The Temperament name block is used to select a tuning method." -msgstr "

音律(おんりつ)ブロック


調律(ちょうりつ)のしかたをせっていする。
★音律(おんりつ)とは
音程(おんてい)(音どうしのへだたり)の決め方。同じ音階でも、音律(おんりつ)によって音の高さが変わる。
★調律(ちょうりつ)とは
楽器の音の高さを、音律(おんりつ)にしたがって整えること。" +#: js/utils/musicutils.js:1160 +#: js/utils/synthutils.js:198 +#.TRANS: animal sound effect +msgid "cricket" +msgstr "こおろぎ" -#: js/IntervalsBlocks.js:161 -msgid "doubly" -msgstr "重" +#: js/utils/musicutils.js:1161 +#: js/utils/synthutils.js:200 +#.TRANS: animal sound effect +msgid "dog" +msgstr "いぬ" -#: js/IntervalsBlocks.js:166 -msgid "The Doubly block will double the size of an interval." -msgstr "" +#: js/utils/musicutils.js:1163 +#: js/utils/synthutils.js:102 +#.TRANS: musical instrument +msgid "banjo" +msgstr "バンジョー" -#: js/IntervalsBlocks.js:262 -msgid "interval number" -msgstr "音程を数で表示" +#: js/utils/musicutils.js:1164 +#: js/utils/synthutils.js:104 +#.TRANS: musical instrument +msgid "koto" +msgstr "こと" -#: js/IntervalsBlocks.js:330 -#.TRANS: measure the distance between two pitches in semi-tones -msgid "semi-tone interval measure" -msgstr "半音階的音程で計る" +#: js/utils/musicutils.js:1165 +#: js/utils/synthutils.js:106 +#.TRANS: musical instrument +msgid "dulcimer" +msgstr "ダルシマー" -#: js/IntervalsBlocks.js:397 -#: js/IntervalsBlocks.js:513 -msgid "You must use two pitch blocks when measuring an interval." -msgstr "音程を計る際は、2つの音符を使う必要があります。" +#: js/utils/musicutils.js:1166 +#: js/utils/synthutils.js:108 +#.TRANS: musical instrument +msgid "electric guitar" +msgstr "エレキギター" -#: js/IntervalsBlocks.js:439 -msgid "The Scalar interval block measures the distance between two notes in the current key and mode." -msgstr "" +#: js/utils/musicutils.js:1167 +#: js/utils/synthutils.js:110 +#.TRANS: musical instrument +msgid "bassoon" +msgstr "バスーン" -#: js/IntervalsBlocks.js:445 -#.TRANS: measure the distance between two pitches in steps of musical scale -msgid "scalar interval measure" -msgstr "全音階的音程で計る" +#: js/utils/musicutils.js:1168 +#: js/utils/synthutils.js:112 +#.TRANS: musical instrument +msgid "celeste" +msgstr "セレスタ" -#: js/IntervalsBlocks.js:592 -#: js/musicutils.js:637 -#: js/musicutils.js:908 -#.TRANS: perfect is a music term related to intervals -msgid "perfect" -msgstr "パーフェクト(完全)" +#: js/utils/musicutils.js:1170 +#: js/widgets/temperament.js:787 +#.TRANS: musical temperament +msgid "equal" +msgstr "平均律" -#: js/IntervalsBlocks.js:621 -msgid "In the figure, we add sol# to sol." -msgstr "例の画像にはソルソル#になります。" +#: js/utils/musicutils.js:1172 +#.TRANS: musical temperament +msgid "Pythagorean" +msgstr "ピタゴラス音律 " -#: js/IntervalsBlocks.js:627 -#: js/OrnamentBlocks.js:220 -#.TRANS: calculate a relative step between notes based on semi-tones -msgid "semi-tone interval" -msgstr "半音階的音程" +#: js/utils/musicutils.js:1174 +#.TRANS: musical temperament +msgid "just intonation" +msgstr "純正律" -#: js/IntervalsBlocks.js:676 -msgid "The output of the example is: do, mi, sol, sol, ti, mi" -msgstr "例の解決は「ド、ミ、ソ、ソ、シ、ミ」" +#: js/utils/musicutils.js:1176 +#.TRANS: musical temperament +msgid "meantone" +msgstr "中全音律" -#: js/IntervalsBlocks.js:735 -msgid "The Chord block calculates common chords." -msgstr "" +#: js/utils/musicutils.js:1193 +msgid "major 7th" +msgstr "長七の和音(メイジャー・セブンス)" -#: js/IntervalsBlocks.js:737 -msgid "In the figure, we generate a C-major chord." -msgstr "" +#: js/utils/musicutils.js:1194 +msgid "minor 7th" +msgstr "短七の和音(マイナー・セブンス)" -#: js/IntervalsBlocks.js:742 -msgid "chord" -msgstr "の和音" +#: js/utils/musicutils.js:1195 +msgid "dominant 7th" +msgstr "属七の和音(ドミナント・セブンス)" -#: js/IntervalsBlocks.js:794 -msgid "The Ratio Interval block calculates an interval based on a ratio." -msgstr "「比で音程」ブロックは比の音程のピッチを経産する。" +#: js/utils/musicutils.js:1196 +msgid "minor-major 7th" +msgstr "短三長七の和音(マイナー・メイジャー・セブンス)" -#: js/IntervalsBlocks.js:799 -msgid "ratio interval" -msgstr "比で音程" +#: js/utils/musicutils.js:1197 +msgid "fully-diminished 7th" +msgstr "減七の和音(ディミニッシュト・セブンス)" -#: js/IntervalsBlocks.js:868 -msgid "In the figure, we add la to sol." -msgstr "

上の図では、ソの「音符(おんぷ)ブロック」をきじゅんにして、「音階の上下ブロック」のすうちを2にせっていしているので、ソと、ソから2音あがったシの音が同時にえんそうされる。

★音階とは
順番に並んだ音のまとまり。たとえば、「ド」を始まりの音にしたときの「ドレミファソラシド」、「ソ」を始まりの音にしたときの「ソラシドレミ(♯ファ)ソ」のこと。" +#: js/utils/musicutils.js:1198 +msgid "half-diminished 7th" +msgstr "減五短七の和音(ハーフ・ディミニッシュト)" -#: js/IntervalsBlocks.js:924 -#.TRANS: define a custom mode -msgid "define mode" -msgstr "モードを定義する" +#: js/utils/musicutils.js:1557 +#: js/utils/musicutils.js:1569 +msgid "Equal (12EDO)" +msgstr "" -#: js/IntervalsBlocks.js:977 -msgid "movable Do" -msgstr "移動ド" +#: js/utils/musicutils.js:1558 +#: js/utils/musicutils.js:1570 +msgid "5-limit Just Intonation" +msgstr "" -#: js/IntervalsBlocks.js:1028 -#.TRANS: mode length is the number of notes in the mode, e.g., 7 for major and minor scales; 12 for chromatic scales -msgid "mode length" -msgstr "音階の音数" +#: js/utils/musicutils.js:1559 +#: js/utils/musicutils.js:1571 +msgid "Pythagorean (3-limit JI)" +msgstr "" -#: js/IntervalsBlocks.js:1037 -msgid "The Mode length block is the number of notes in the current scale." -msgstr "

音階の音数ブロック


えんそうされている音階の、音の数を表示する。" +#: js/utils/musicutils.js:1560 +#: js/utils/musicutils.js:1561 +#: js/utils/musicutils.js:1572 +#: js/utils/musicutils.js:1573 +msgid "Meantone" +msgstr "" -#: js/IntervalsBlocks.js:1039 -msgid "Most Western scales have 7 notes." -msgstr "西洋のほとんどの音階は、7つの音をもつ。

★音階とは
順番に並んだ音のまとまり。たとえば、「ド」を始まりの音にしたときの「ドレミファソラシド」、「ソ」を始まりの音にしたときの「ソラシドレミ(♯ファ)ソ」のこと。" +#: js/utils/musicutils.js:1574 +msgid "Custom" +msgstr "" -#: js/IntervalsBlocks.js:1088 -#.TRANS: the mode in music is 'major', 'minor', etc. -msgid "current mode" -msgstr "現代の音階" +#: js/utils/musicutils.js:5387 +#: js/utils/musicutils.js:5430 +msgid "current" +msgstr "現在の" -#: js/IntervalsBlocks.js:1141 -#.TRANS: the key is a group of pitches with which a music composition is created -msgid "current key" -msgstr "現代の調" +#: js/utils/musicutils.js:5390 +#: js/utils/musicutils.js:5421 +msgid "next" +msgstr "この次の" -#: js/IntervalsBlocks.js:1193 -#: js/IntervalsBlocks.js:1238 -#.TRANS: set the key and mode, e.g. C Major -msgid "set key" -msgstr "調をせってい" +#: js/utils/musicutils.js:5393 +#: js/utils/musicutils.js:5426 +msgid "previous" +msgstr "この前の" -#: js/IntervalsBlocks.js:1247 -#: js/IntervalsBlocks.js:1253 -msgid "The Set key block is used to set the key and mode," -msgstr "

調をせっていブロック


調の部分に音の高さ、音階の部分に音階の種類を選び、調をせっていする。

★調とは
中心的な役わりをはたす音と、音階の種類によって決まる、曲の感じ。中心的な役わりをはたす音だけを指すこともある。
★音階とは
順番に並んだ音のまとまり。" +#: js/utils/synthutils.js:120 +#.TRANS: simple monotone synthesizer +msgid "simple-2" +msgstr "シンプル・シンセ2" -#: js/IntervalsBlocks.js:1253 -msgid "eg C Major" -msgstr "たとえば、「ド」を始まりの音にしたときの「ドレミファソラシド」、「ソ」を始まりの音にしたときの「ソラシドレミ(♯ファ)ソ」のこと。" +#: js/utils/synthutils.js:122 +#.TRANS: simple monotone synthesizer +msgid "simple-3" +msgstr "シンプル・シンセ3" -#: js/IntervalsBlocks.js:1266 -#: js/DictBlocks.js:215 -#: js/DictBlocks.js:216 -#: js/DictBlocks.js:289 -#: js/DictBlocks.js:290 -#: js/DictBlocks.js:357 -#: js/DictBlocks.js:430 -#: js/DictBlocks.js:431 -#.TRANS: key, e.g., C in C Major -msgid "key" -msgstr "調" +#: js/utils/synthutils.js:124 +#.TRANS: simple monotone synthesizer +msgid "simple-4" +msgstr "シンプル・シンセ4" -#: js/ActionBlocks.js:58 +#: js/utils/synthutils.js:162 +#.TRANS: musical instrument +msgid "taiko" +msgstr "太鼓" + +#: js/blocks/ActionBlocks.js:58 msgid "The Return block will return a value from an action." msgstr "" -#: js/ActionBlocks.js:75 +#: js/blocks/ActionBlocks.js:75 msgid "return" msgstr "リターン" -#: js/ActionBlocks.js:128 +#: js/blocks/ActionBlocks.js:128 msgid "The Return to URL block will return a value to a webpage." msgstr "" -#: js/ActionBlocks.js:145 +#: js/blocks/ActionBlocks.js:145 msgid "return to URL" msgstr "URLに戻ります" -#: js/ActionBlocks.js:233 -#: js/ActionBlocks.js:290 -#: js/ActionBlocks.js:501 -#: js/ActionBlocks.js:688 +#: js/blocks/ActionBlocks.js:233 +#: js/blocks/ActionBlocks.js:290 +#: js/blocks/ActionBlocks.js:501 +#: js/blocks/ActionBlocks.js:688 msgid "The Calculate block returns a value calculated by an action." msgstr "" -#: js/ActionBlocks.js:251 -#: js/ActionBlocks.js:517 -#: js/ActionBlocks.js:707 +#: js/blocks/ActionBlocks.js:251 +#: js/blocks/ActionBlocks.js:517 +#: js/blocks/ActionBlocks.js:707 msgid "calculate" msgstr "計算する" -#: js/ActionBlocks.js:376 -#: js/ActionBlocks.js:593 -#: js/ActionBlocks.js:942 -#: js/ActionBlocks.js:1389 +#: js/blocks/ActionBlocks.js:376 +#: js/blocks/ActionBlocks.js:593 +#: js/blocks/ActionBlocks.js:942 +#: js/blocks/ActionBlocks.js:1389 #.TRANS: do is the do something or take an action. msgid "The Do block is used to initiate an action." msgstr "

アクションブロック(指定)


指定したアクションブロックを実行する。" -#: js/ActionBlocks.js:390 -#: js/ActionBlocks.js:610 -#: js/ActionBlocks.js:959 -#: js/ActionBlocks.js:1048 -#: js/MeterBlocks.js:769 +#: js/blocks/ActionBlocks.js:390 +#: js/blocks/ActionBlocks.js:610 +#: js/blocks/ActionBlocks.js:959 +#: js/blocks/ActionBlocks.js:1048 +#: js/blocks/MeterBlocks.js:769 msgid "do1" msgstr "アクション実行" -#: js/ActionBlocks.js:390 -#: js/ActionBlocks.js:610 -#: js/ActionBlocks.js:959 -#: js/ActionBlocks.js:1048 -#: js/FlowBlocks.js:742 -#: js/FlowBlocks.js:822 -#: js/MeterBlocks.js:769 +#: js/blocks/ActionBlocks.js:390 +#: js/blocks/ActionBlocks.js:610 +#: js/blocks/ActionBlocks.js:959 +#: js/blocks/ActionBlocks.js:1048 +#: js/blocks/FlowBlocks.js:742 +#: js/blocks/FlowBlocks.js:822 +#: js/blocks/MeterBlocks.js:769 msgid "do" msgstr "アクション" -#: js/ActionBlocks.js:791 -#: js/ActionBlocks.js:865 +#: js/blocks/ActionBlocks.js:791 +#: js/blocks/ActionBlocks.js:865 msgid "The Arg block contains the value of an argument passed to an action." msgstr "" -#: js/ActionBlocks.js:806 -#: js/ActionBlocks.js:878 +#: js/blocks/ActionBlocks.js:806 +#: js/blocks/ActionBlocks.js:878 msgid "arg" msgstr "" -#: js/ActionBlocks.js:836 -#: js/ActionBlocks.js:900 -#: js/ActionBlocks.js:908 +#: js/blocks/ActionBlocks.js:836 +#: js/blocks/ActionBlocks.js:900 +#: js/blocks/ActionBlocks.js:908 msgid "Invalid argument" msgstr "" -#: js/ActionBlocks.js:944 +#: js/blocks/ActionBlocks.js:944 msgid "In the example, it is used with the One of block to choose a random phase." msgstr "

図の例は、決まったアクションではなく、2つのうちどちらか1つのアクションをランダムに実行させる。" -#: js/ActionBlocks.js:1019 -#: js/ActionBlocks.js:1026 +#: js/blocks/ActionBlocks.js:1019 +#: js/blocks/ActionBlocks.js:1026 msgid "The Listen block is used to listen for an event such as a mouse click." msgstr "

イベントブロック(受け取り)


特定のイベントに対して、その発生を受け取るたびに実行するアクションを1つ決めておくことができる。" -#: js/ActionBlocks.js:1028 +#: js/blocks/ActionBlocks.js:1028 msgid "When the event happens, an action is taken." msgstr "

イベントの発生は、各スクリプトが【イベントのたびにアクション】で指定したアクションの引きがねとしてはたらく。" -#: js/ActionBlocks.js:1045 +#: js/blocks/ActionBlocks.js:1045 msgid "on" msgstr "のとき" -#: js/ActionBlocks.js:1048 -#: js/ActionBlocks.js:1049 -#: js/ActionBlocks.js:1153 +#: js/blocks/ActionBlocks.js:1048 +#: js/blocks/ActionBlocks.js:1049 +#: js/blocks/ActionBlocks.js:1153 msgid "event" msgstr "イベント" -#: js/ActionBlocks.js:1133 +#: js/blocks/ActionBlocks.js:1133 msgid "The Broadcast block is used to trigger an event." msgstr "

イベントブロック(発生)


指定した名前のイベントをすべてのネズミに送る。イベントの発生は、各スクリプトが【イベントのたびにアクション】で指定したアクションの引きがねとしてはたらく。" -#: js/ActionBlocks.js:1151 -msgid "broadcast" -msgstr "イベント発生" +#: js/blocks/ActionBlocks.js:1151 +msgid "broadcast" +msgstr "イベント発生" + +#: js/blocks/ActionBlocks.js:1208 +msgid "Each Start block is a separate voice." +msgstr "

スタートブロック


実行ボタンがおされると、スタートブロックが実行される。" + +#: js/blocks/ActionBlocks.js:1304 +msgid "It is often used for storing a phrase of music that is repeated." +msgstr "

何度も実行する音楽のフレーズなどにアクションを作っておくと便利。" + +#: js/blocks/ActionBlocks.js:1495 +msgid "define temperament" +msgstr "音律を明確にする" + +#: js/blocks/BooleanBlocks.js:44 +msgid "The Not block is the logical not operator." +msgstr "" + +#: js/blocks/BooleanBlocks.js:62 +msgid "not" +msgstr "ではない" + +#: js/blocks/BooleanBlocks.js:134 +msgid "The And block is the logical and operator." +msgstr "" + +#: js/blocks/BooleanBlocks.js:152 +msgid "and" +msgstr "かつ" + +#: js/blocks/BooleanBlocks.js:218 +msgid "The Or block is the logical or operator." +msgstr "" + +#: js/blocks/BooleanBlocks.js:236 +msgid "or" +msgstr "または" + +#: js/blocks/BooleanBlocks.js:302 +msgid "The XOR block is the logical XOR operator." +msgstr "" + +#: js/blocks/BooleanBlocks.js:320 +msgid "xor" +msgstr "" + +#: js/blocks/BooleanBlocks.js:808 +msgid "The Equal block returns True if the two numbers are equal." +msgstr "

しんぎブロック(等しい)


2つのすうちをくらべて、同じすうちであるかどうかはんていする。「=」は、2つのすうちが同じであれば「真(しん)」、同じでなければ「偽(ぎ)」という結果になる。

★しんぎブロックとは
「もし~ならば」などのじょうけんブロックを動かすために必要なブロック。
「もし~ならば」は、せいかくに表現すると、「もし~というじょうけんが正しいならば、次のブロックを実行する」という意味である。しんぎブロックは不等式などによるひかくが「正しい(真)」か、「正しくない(偽)」かの結果を表し、「もし~ならば」に続くブロックを実行するかどうか決める。" + +#: js/blocks/BooleanBlocks.js:909 +msgid "The Not-equal-to block returns True if the two numbers are not equal to each other." +msgstr "" + +#: js/blocks/BooleanBlocks.js:1008 +msgid "The Boolean block is used to specify true or false." +msgstr "" + +#: js/blocks/BoxesBlocks.js:53 +#: js/blocks/BoxesBlocks.js:59 +msgid "The Add-to block is used to add to the value stored in a box." +msgstr "

数の箱(あたいを変える)


指定した箱に、好きなすうちを足す。マイナスのすうちを使うと引き算になる。" + +#: js/blocks/BoxesBlocks.js:61 +msgid "It can also be used with other blocks such as Color and Pen size." +msgstr "

マイナスの数値を使うと引き算になる。" + +#: js/blocks/BoxesBlocks.js:73 +msgid "add" +msgstr "足す" + +#: js/blocks/BoxesBlocks.js:75 +#: js/widgets/temperament.js:857 +msgid "to" +msgstr "箱へ" + +#: js/blocks/BoxesBlocks.js:75 +#: js/blocks/BoxesBlocks.js:595 +#: js/blocks/HeapBlocks.js:544 +msgid "value1" +msgstr "すうち" + +#: js/blocks/BoxesBlocks.js:118 +msgid "Block does not support incrementing." +msgstr "ブロックは、増殖をサポートできません" + +#: js/blocks/BoxesBlocks.js:152 +msgid "The Add-1-to block adds one to the value stored in a box." +msgstr "

数の箱(あたいを変える)


指定した箱に、1を足す。" + +#: js/blocks/BoxesBlocks.js:163 +msgid "add 1 to" +msgstr "箱に1を足す" + +#: js/blocks/BoxesBlocks.js:211 +msgid "The Subtract-1-from block subtracts one from the value stored in a box." +msgstr "" + +#: js/blocks/BoxesBlocks.js:222 +msgid "subtract 1 from" +msgstr "〜から1引く" + +#: js/blocks/BoxesBlocks.js:270 +#: js/blocks/BoxesBlocks.js:387 +msgid "The Box block returns the value stored in a box." +msgstr "

すうちブロック


すうちブロックとして、箱のすうちを使う。" + +#: js/blocks/BoxesBlocks.js:500 +#: js/blocks/BoxesBlocks.js:576 +msgid "The Store in block will store a value in a box." +msgstr "

数の箱(あたいを入れる)


指定した箱に、指定したすうちを入れる。" + +#: js/blocks/BoxesBlocks.js:595 +#: js/blocks/EnsembleBlocks.js:391 +#: js/blocks/EnsembleBlocks.js:402 +msgid "name1" +msgstr "箱へ" + +#: js/blocks/BoxesBlocks.js:652 +msgid "The Box2 block returns the value stored in Box2." +msgstr "" + +#: js/blocks/BoxesBlocks.js:703 +msgid "The Store in Box2 block is used to store a value in Box2." +msgstr "" + +#: js/blocks/BoxesBlocks.js:715 +msgid "store in box2" +msgstr "箱2にすうちを入れる" + +#: js/blocks/BoxesBlocks.js:761 +msgid "The Box1 block returns the value stored in Box1." +msgstr "" + +#: js/blocks/BoxesBlocks.js:812 +msgid "The Store in Box1 block is used to store a value in Box1." +msgstr "" + +#: js/blocks/BoxesBlocks.js:826 +msgid "store in box1" +msgstr "箱1にすうちを入れる" + +#: js/blocks/DictBlocks.js:77 +msgid "show dictionary" +msgstr "辞書を表す" + +#: js/blocks/DictBlocks.js:80 +#: js/blocks/DictBlocks.js:145 +#: js/blocks/DictBlocks.js:216 +#: js/blocks/DictBlocks.js:290 +#: js/blocks/ProgramBlocks.js:396 +#: js/blocks/ProgramBlocks.js:501 +#: js/blocks/ProgramBlocks.js:664 +msgid "My Dictionary" +msgstr "私の辞書" + +#: js/blocks/DictBlocks.js:129 +msgid "The Dictionary block returns a dictionary." +msgstr "" + +#: js/blocks/DictBlocks.js:197 +#: js/blocks/DictBlocks.js:339 +msgid "The Get-dict block returns a value in the dictionary for a specified key." +msgstr "" + +#: js/blocks/DictBlocks.js:212 +#: js/blocks/DictBlocks.js:354 +#.TRANS: retrieve a value from the dictionary with a given key +msgid "get value" +msgstr "数価を表す" + +#: js/blocks/DictBlocks.js:215 +#: js/blocks/DictBlocks.js:216 +#: js/blocks/DictBlocks.js:289 +#: js/blocks/DictBlocks.js:290 +#: js/blocks/DictBlocks.js:357 +#: js/blocks/DictBlocks.js:430 +#: js/blocks/DictBlocks.js:431 +msgid "key2" +msgstr "キーワード" -#: js/ActionBlocks.js:1208 -msgid "Each Start block is a separate voice." -msgstr "

スタートブロック


実行ボタンがおされると、スタートブロックが実行される。" +#: js/blocks/DictBlocks.js:215 +#: js/blocks/DictBlocks.js:216 +#: js/blocks/DictBlocks.js:289 +#: js/blocks/DictBlocks.js:290 +#: js/blocks/DictBlocks.js:357 +#: js/blocks/DictBlocks.js:430 +#: js/blocks/DictBlocks.js:431 +#: js/blocks/IntervalsBlocks.js:1462 +#.TRANS: key, e.g., C in C Major +msgid "key" +msgstr "調" -#: js/ActionBlocks.js:1304 -msgid "It is often used for storing a phrase of music that is repeated." -msgstr "

何度も実行する音楽のフレーズなどにアクションを作っておくと便利。" +#: js/blocks/DictBlocks.js:271 +#: js/blocks/DictBlocks.js:411 +msgid "The Set-dict block sets a value in the dictionary for a specified key." +msgstr "" -#: js/ActionBlocks.js:1495 -msgid "define temperament" -msgstr "音律を明確にする" +#: js/blocks/DictBlocks.js:286 +#: js/blocks/DictBlocks.js:427 +#.TRANS: set a value in the dictionary for a given key +msgid "set value" +msgstr "値を設定" -#: js/EnsembleBlocks.js:66 +#: js/blocks/EnsembleBlocks.js:66 msgid "mouse index heap" msgstr "ネズミヒープに番号をふる" -#: js/EnsembleBlocks.js:68 +#: js/blocks/EnsembleBlocks.js:68 msgid "The Mouse index heap block returns a value in the heap at a specified location for a specified mouse." msgstr "" -#: js/EnsembleBlocks.js:77 -#: js/EnsembleBlocks.js:1080 +#: js/blocks/EnsembleBlocks.js:77 +#: js/blocks/EnsembleBlocks.js:1080 msgid "mouse name" msgstr "ネズミの名前" -#: js/EnsembleBlocks.js:77 -#: js/EnsembleBlocks.js:92 -#: js/HeapBlocks.js:544 +#: js/blocks/EnsembleBlocks.js:77 +#: js/blocks/EnsembleBlocks.js:92 +#: js/blocks/HeapBlocks.js:544 #.TRANS: value1 is a numeric value (JAPANESE ONLY) msgid "index" msgstr "インデックス" -#: js/EnsembleBlocks.js:80 +#: js/blocks/EnsembleBlocks.js:80 msgid "turtle index heap" msgstr "" -#: js/EnsembleBlocks.js:82 +#: js/blocks/EnsembleBlocks.js:82 msgid "The Turtle index heap block returns a value in the heap at a specified location for a specified turtle." msgstr "" -#: js/EnsembleBlocks.js:90 -#: js/EnsembleBlocks.js:167 -#: js/EnsembleBlocks.js:230 -#: js/EnsembleBlocks.js:316 -#: js/EnsembleBlocks.js:362 -#: js/EnsembleBlocks.js:400 -#: js/EnsembleBlocks.js:454 -#: js/EnsembleBlocks.js:504 -#: js/EnsembleBlocks.js:550 -#: js/EnsembleBlocks.js:597 -#: js/EnsembleBlocks.js:651 -#: js/EnsembleBlocks.js:763 -#: js/EnsembleBlocks.js:854 -#: js/EnsembleBlocks.js:915 -#: js/EnsembleBlocks.js:955 -#: js/EnsembleBlocks.js:1219 -#: js/EnsembleBlocks.js:1293 +#: js/blocks/EnsembleBlocks.js:90 +#: js/blocks/EnsembleBlocks.js:167 +#: js/blocks/EnsembleBlocks.js:230 +#: js/blocks/EnsembleBlocks.js:316 +#: js/blocks/EnsembleBlocks.js:362 +#: js/blocks/EnsembleBlocks.js:400 +#: js/blocks/EnsembleBlocks.js:454 +#: js/blocks/EnsembleBlocks.js:504 +#: js/blocks/EnsembleBlocks.js:550 +#: js/blocks/EnsembleBlocks.js:597 +#: js/blocks/EnsembleBlocks.js:651 +#: js/blocks/EnsembleBlocks.js:763 +#: js/blocks/EnsembleBlocks.js:854 +#: js/blocks/EnsembleBlocks.js:915 +#: js/blocks/EnsembleBlocks.js:955 +#: js/blocks/EnsembleBlocks.js:1219 +#: js/blocks/EnsembleBlocks.js:1293 #.TRANS: Yertle is the name of a turtle. msgid "Yertle" msgstr "" -#: js/EnsembleBlocks.js:92 -#: js/EnsembleBlocks.js:1089 +#: js/blocks/EnsembleBlocks.js:92 +#: js/blocks/EnsembleBlocks.js:1089 msgid "turtle name" msgstr "ネズミの名前" -#: js/EnsembleBlocks.js:122 -#: js/EnsembleBlocks.js:1197 -#: js/HeapBlocks.js:474 -#: js/HeapBlocks.js:572 +#: js/blocks/EnsembleBlocks.js:122 +#: js/blocks/EnsembleBlocks.js:1197 +#: js/blocks/HeapBlocks.js:474 +#: js/blocks/HeapBlocks.js:572 msgid "Index must be > 0." msgstr "インデクス番号は 0 より大きい必要があります。" -#: js/EnsembleBlocks.js:127 -#: js/HeapBlocks.js:479 -#: js/HeapBlocks.js:577 +#: js/blocks/EnsembleBlocks.js:127 +#: js/blocks/HeapBlocks.js:479 +#: js/blocks/HeapBlocks.js:577 msgid "Maximum heap size is 1000." msgstr "ヒープの大きさは、最大1000です。" -#: js/EnsembleBlocks.js:145 +#: js/blocks/EnsembleBlocks.js:145 msgid "stop mouse" msgstr "ネズミを止める" -#: js/EnsembleBlocks.js:147 +#: js/blocks/EnsembleBlocks.js:147 msgid "The Stop mouse block stops the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:158 +#: js/blocks/EnsembleBlocks.js:158 msgid "stop turtle" msgstr "ネズミを止める" -#: js/EnsembleBlocks.js:160 +#: js/blocks/EnsembleBlocks.js:160 msgid "The Stop turtle block stops the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:184 -#: js/EnsembleBlocks.js:247 -#: js/EnsembleBlocks.js:413 -#: js/EnsembleBlocks.js:468 -#: js/EnsembleBlocks.js:706 -#: js/EnsembleBlocks.js:808 -#: js/EnsembleBlocks.js:870 -#: js/EnsembleBlocks.js:1190 -#: js/EnsembleBlocks.js:1253 +#: js/blocks/EnsembleBlocks.js:184 +#: js/blocks/EnsembleBlocks.js:247 +#: js/blocks/EnsembleBlocks.js:413 +#: js/blocks/EnsembleBlocks.js:468 +#: js/blocks/EnsembleBlocks.js:706 +#: js/blocks/EnsembleBlocks.js:808 +#: js/blocks/EnsembleBlocks.js:870 +#: js/blocks/EnsembleBlocks.js:1190 +#: js/blocks/EnsembleBlocks.js:1253 msgid "Cannot find mouse" msgstr "ネズミが見つかりません。" -#: js/EnsembleBlocks.js:186 -#: js/EnsembleBlocks.js:249 -#: js/EnsembleBlocks.js:415 -#: js/EnsembleBlocks.js:470 -#: js/EnsembleBlocks.js:708 -#: js/EnsembleBlocks.js:810 -#: js/EnsembleBlocks.js:872 -#: js/EnsembleBlocks.js:1192 -#: js/EnsembleBlocks.js:1255 +#: js/blocks/EnsembleBlocks.js:186 +#: js/blocks/EnsembleBlocks.js:249 +#: js/blocks/EnsembleBlocks.js:415 +#: js/blocks/EnsembleBlocks.js:470 +#: js/blocks/EnsembleBlocks.js:708 +#: js/blocks/EnsembleBlocks.js:810 +#: js/blocks/EnsembleBlocks.js:872 +#: js/blocks/EnsembleBlocks.js:1192 +#: js/blocks/EnsembleBlocks.js:1255 msgid "Cannot find turtle" msgstr "タートルが見つかりません。" -#: js/EnsembleBlocks.js:206 +#: js/blocks/EnsembleBlocks.js:206 msgid "start mouse" msgstr "ネズミをスタート" -#: js/EnsembleBlocks.js:209 +#: js/blocks/EnsembleBlocks.js:209 msgid "The Start mouse block starts the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:220 +#: js/blocks/EnsembleBlocks.js:220 msgid "start turtle" msgstr "ネズミをスタートする" -#: js/EnsembleBlocks.js:223 +#: js/blocks/EnsembleBlocks.js:223 msgid "The Start turtle block starts the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:256 +#: js/blocks/EnsembleBlocks.js:256 msgid "Mouse is already running." msgstr "ネズミはすでに動いています。" -#: js/EnsembleBlocks.js:258 +#: js/blocks/EnsembleBlocks.js:258 msgid "Turtle is already running." msgstr "タートルはすでに動いています。" -#: js/EnsembleBlocks.js:282 +#: js/blocks/EnsembleBlocks.js:282 msgid "Cannot find start block" msgstr "「スタート」ブロックが見つかりません。" -#: js/EnsembleBlocks.js:292 +#: js/blocks/EnsembleBlocks.js:292 #.TRANS: pen color for this mouse msgid "mouse color" msgstr "ネズミの色" -#: js/EnsembleBlocks.js:294 +#: js/blocks/EnsembleBlocks.js:294 msgid "The Mouse color block returns the pen color of the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:306 +#: js/blocks/EnsembleBlocks.js:306 #.TRANS: pen color for this turtle msgid "turtle color" msgstr "タートルの色" -#: js/EnsembleBlocks.js:308 +#: js/blocks/EnsembleBlocks.js:308 msgid "The Turtle color block returns the pen color of the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:338 +#: js/blocks/EnsembleBlocks.js:338 #.TRANS: heading (compass direction) for this mouse msgid "mouse heading" msgstr "ネズミの進む角度" -#: js/EnsembleBlocks.js:340 +#: js/blocks/EnsembleBlocks.js:340 msgid "The Mouse heading block returns the heading of the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:352 +#: js/blocks/EnsembleBlocks.js:352 #.TRANS: heading (compass direction) for this turtle msgid "turtle heading" msgstr "タートルの進む角度" -#: js/EnsembleBlocks.js:354 +#: js/blocks/EnsembleBlocks.js:354 msgid "The Turtle heading block returns the heading of the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:384 -#: js/EnsembleBlocks.js:439 +#: js/blocks/EnsembleBlocks.js:384 +#: js/blocks/EnsembleBlocks.js:439 #.TRANS: set xy position for this mouse msgid "set mouse" msgstr "ネズミを設定" -#: js/EnsembleBlocks.js:391 -#: js/EnsembleBlocks.js:402 -#: js/BoxesBlocks.js:595 -msgid "name1" -msgstr "箱へ" - -#: js/EnsembleBlocks.js:391 -#: js/EnsembleBlocks.js:402 -#: js/ProgramBlocks.js:881 -#: js/GraphicsBlocks.js:235 -#: js/GraphicsBlocks.js:313 -#: js/GraphicsBlocks.js:436 -#: js/GraphicsBlocks.js:487 -#: js/GraphicsBlocks.js:534 -#: js/GraphicsBlocks.js:750 +#: js/blocks/EnsembleBlocks.js:391 +#: js/blocks/EnsembleBlocks.js:402 +#: js/blocks/GraphicsBlocks.js:235 +#: js/blocks/GraphicsBlocks.js:313 +#: js/blocks/GraphicsBlocks.js:436 +#: js/blocks/GraphicsBlocks.js:487 +#: js/blocks/GraphicsBlocks.js:534 +#: js/blocks/GraphicsBlocks.js:750 +#: js/blocks/ProgramBlocks.js:881 msgid "x" msgstr "xざひょう(よこ)" -#: js/EnsembleBlocks.js:391 -#: js/EnsembleBlocks.js:402 -#: js/ProgramBlocks.js:881 -#: js/GraphicsBlocks.js:149 -#: js/GraphicsBlocks.js:313 -#: js/GraphicsBlocks.js:436 -#: js/GraphicsBlocks.js:487 -#: js/GraphicsBlocks.js:534 -#: js/GraphicsBlocks.js:750 +#: js/blocks/EnsembleBlocks.js:391 +#: js/blocks/EnsembleBlocks.js:402 +#: js/blocks/GraphicsBlocks.js:149 +#: js/blocks/GraphicsBlocks.js:313 +#: js/blocks/GraphicsBlocks.js:436 +#: js/blocks/GraphicsBlocks.js:487 +#: js/blocks/GraphicsBlocks.js:534 +#: js/blocks/GraphicsBlocks.js:750 +#: js/blocks/ProgramBlocks.js:881 msgid "y" msgstr "yざひょう(たて)" -#: js/EnsembleBlocks.js:395 -#: js/EnsembleBlocks.js:452 +#: js/blocks/EnsembleBlocks.js:395 +#: js/blocks/EnsembleBlocks.js:452 #.TRANS: set xy position for this turtle msgid "set turtle" msgstr "タートルを設定" -#: js/EnsembleBlocks.js:433 +#: js/blocks/EnsembleBlocks.js:433 msgid "The Set mouse block sends a stack of blocks to be run by the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:446 +#: js/blocks/EnsembleBlocks.js:446 msgid "The Set turtle block sends a stack of blocks to be run by the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:480 +#: js/blocks/EnsembleBlocks.js:480 #.TRANS: y position for this mouse msgid "mouse y" msgstr "ネズミのy座標" -#: js/EnsembleBlocks.js:482 +#: js/blocks/EnsembleBlocks.js:482 msgid "The Y mouse block returns the Y position of the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:494 +#: js/blocks/EnsembleBlocks.js:494 #.TRANS: y position for this turtle msgid "turtle y" msgstr "タートルのy座標" -#: js/EnsembleBlocks.js:496 +#: js/blocks/EnsembleBlocks.js:496 msgid "The Y turtle block returns the Y position of the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:526 +#: js/blocks/EnsembleBlocks.js:526 #.TRANS: x position for this mouse msgid "mouse x" msgstr "ネズミのx座標" -#: js/EnsembleBlocks.js:528 +#: js/blocks/EnsembleBlocks.js:528 msgid "The X mouse block returns the X position of the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:540 +#: js/blocks/EnsembleBlocks.js:540 #.TRANS: x position for this turtle msgid "turtle x" msgstr "タートルのx座標" -#: js/EnsembleBlocks.js:542 +#: js/blocks/EnsembleBlocks.js:542 msgid "The X turtle block returns the X position of the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:573 +#: js/blocks/EnsembleBlocks.js:573 #.TRANS: notes played by this mouse msgid "mouse notes played" msgstr "ネズミの演奏した音符の数" -#: js/EnsembleBlocks.js:575 +#: js/blocks/EnsembleBlocks.js:575 msgid "The Mouse elapse notes block returns the number of notes played by the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:587 +#: js/blocks/EnsembleBlocks.js:587 #.TRANS: notes played by this turtle msgid "turtle notes played" msgstr "タートルの演奏した音符の数" -#: js/EnsembleBlocks.js:589 +#: js/blocks/EnsembleBlocks.js:589 msgid "The Turtle elapse notes block returns the number of notes played by the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:627 +#: js/blocks/EnsembleBlocks.js:627 #.TRANS: convert current note for this turtle to piano key (1-88) msgid "mouse pitch number" msgstr "ネズミの音高数字" -#: js/EnsembleBlocks.js:629 +#: js/blocks/EnsembleBlocks.js:629 msgid "The Mouse pitch block returns the current pitch number being played by the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:641 +#: js/blocks/EnsembleBlocks.js:641 #.TRANS: convert current note for this turtle to piano key (1-88) msgid "turtle pitch number" msgstr "タートルの音高数字" -#: js/EnsembleBlocks.js:643 -msgid "The Turrle pitch block returns the current pitch number being played by the specified turtle." +#: js/blocks/EnsembleBlocks.js:643 +msgid "The Turtle pitch block returns the current pitch number being played by the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:747 -#: js/EnsembleBlocks.js:819 +#: js/blocks/EnsembleBlocks.js:747 +#: js/blocks/EnsembleBlocks.js:819 #.TRANS: note value is the duration of the note played by this mouse msgid "mouse note value" msgstr "ネズミの音価" -#: js/EnsembleBlocks.js:757 +#: js/blocks/EnsembleBlocks.js:757 #.TRANS: note value is the duration of the note played by this turtle msgid "turtle note value" msgstr "タートルの音価" -#: js/EnsembleBlocks.js:830 +#: js/blocks/EnsembleBlocks.js:830 #.TRANS: sync is short for synchronization msgid "mouse sync" msgstr "ネズミを同期させる" -#: js/EnsembleBlocks.js:832 +#: js/blocks/EnsembleBlocks.js:832 msgid "The Mouse sync block aligns the beat count between mice." msgstr "" -#: js/EnsembleBlocks.js:844 +#: js/blocks/EnsembleBlocks.js:844 #.TRANS: sync is short for synchronization msgid "turtle sync" msgstr "タートルを同期させる" -#: js/EnsembleBlocks.js:846 +#: js/blocks/EnsembleBlocks.js:846 msgid "The Turtle sync block aligns the beat count between turtles." msgstr "" -#: js/EnsembleBlocks.js:887 +#: js/blocks/EnsembleBlocks.js:887 msgid "The Found mouse block will return true if the specified mouse can be found." msgstr "" -#: js/EnsembleBlocks.js:893 +#: js/blocks/EnsembleBlocks.js:893 msgid "found mouse" msgstr "ネズミを見つけた" -#: js/EnsembleBlocks.js:903 +#: js/blocks/EnsembleBlocks.js:903 msgid "The Found turtle block will return true if the specified turtle can be found." msgstr "" -#: js/EnsembleBlocks.js:909 +#: js/blocks/EnsembleBlocks.js:909 msgid "found turtle" msgstr "タートル見つかった" -#: js/EnsembleBlocks.js:932 +#: js/blocks/EnsembleBlocks.js:932 msgid "new mouse" msgstr "新しいネズミ" -#: js/EnsembleBlocks.js:934 +#: js/blocks/EnsembleBlocks.js:934 msgid "The New mouse block will create a new mouse." msgstr "" -#: js/EnsembleBlocks.js:945 +#: js/blocks/EnsembleBlocks.js:945 msgid "new turtle" msgstr "新しいタートル" -#: js/EnsembleBlocks.js:947 +#: js/blocks/EnsembleBlocks.js:947 msgid "The New turtle block will create a new turtle." msgstr "" -#: js/EnsembleBlocks.js:1011 +#: js/blocks/EnsembleBlocks.js:1011 msgid "set mouse color" msgstr "ネズミ色を設定" -#: js/EnsembleBlocks.js:1014 +#: js/blocks/EnsembleBlocks.js:1014 msgid "The Set-mouse-color block is used to set the color of a mouse." msgstr "「ネズミ色を設定」ブロックは ネズミの色を選ぶことに使います。" -#: js/EnsembleBlocks.js:1020 +#: js/blocks/EnsembleBlocks.js:1020 msgid "set turtle color" msgstr "タートル色を設定" -#: js/EnsembleBlocks.js:1023 +#: js/blocks/EnsembleBlocks.js:1023 msgid "The Set-turtle-color block is used to set the color of a turtle." msgstr "" -#: js/EnsembleBlocks.js:1083 +#: js/blocks/EnsembleBlocks.js:1083 msgid "The Mouse-name block returns the name of a mouse." msgstr "

文字ブロック


このプログラムを実行しているネズミの名前(文字列)を表す。" -#: js/EnsembleBlocks.js:1092 +#: js/blocks/EnsembleBlocks.js:1092 msgid "The Turtle-name block returns the name of a turtle." msgstr "" -#: js/EnsembleBlocks.js:1115 +#: js/blocks/EnsembleBlocks.js:1115 msgid "mouse count" msgstr "何匹のネズミ" -#: js/EnsembleBlocks.js:1118 +#: js/blocks/EnsembleBlocks.js:1118 msgid "The Mouse-count block returns the number of mice." msgstr "「何匹のネズミ」のブロックはネズミを数えって数字を表す。" -#: js/EnsembleBlocks.js:1124 +#: js/blocks/EnsembleBlocks.js:1124 msgid "turtle count" msgstr "何匹のタートル" -#: js/EnsembleBlocks.js:1127 +#: js/blocks/EnsembleBlocks.js:1127 msgid "The Turtle-count block returns the number of turtles." msgstr "" -#: js/EnsembleBlocks.js:1149 +#: js/blocks/EnsembleBlocks.js:1149 msgid "nth mouse name" msgstr "何匹目のネズミの名前" -#: js/EnsembleBlocks.js:1152 +#: js/blocks/EnsembleBlocks.js:1152 msgid "The Nth-Mouse name block returns the name of the nth mouse." msgstr "" -#: js/EnsembleBlocks.js:1158 +#: js/blocks/EnsembleBlocks.js:1158 msgid "nth turtle name" msgstr "何匹目のタートルの名前" -#: js/EnsembleBlocks.js:1161 +#: js/blocks/EnsembleBlocks.js:1161 msgid "The Nth-Turtle name block returns the name of the nth turtle." msgstr "" -#: js/EnsembleBlocks.js:1205 -#: js/EnsembleBlocks.js:1265 +#: js/blocks/EnsembleBlocks.js:1205 +#: js/blocks/EnsembleBlocks.js:1265 msgid "set name" msgstr "ネズミに名前をつける" -#: js/EnsembleBlocks.js:1214 -#: js/EnsembleBlocks.js:1221 +#: js/blocks/EnsembleBlocks.js:1214 +#: js/blocks/EnsembleBlocks.js:1221 msgid "source" msgstr "ソース" -#: js/EnsembleBlocks.js:1214 -#: js/EnsembleBlocks.js:1221 +#: js/blocks/EnsembleBlocks.js:1214 +#: js/blocks/EnsembleBlocks.js:1221 msgid "target" msgstr "ターゲット" -#: js/EnsembleBlocks.js:1271 +#: js/blocks/EnsembleBlocks.js:1271 msgid "The Set-name block is used to name a mouse." msgstr "

文字ブロック


ネズミに指定した名前をつけることができる。" -#: js/EnsembleBlocks.js:1284 +#: js/blocks/EnsembleBlocks.js:1284 msgid "The Set-name block is used to name a turtle." msgstr "

文字ブロック


タートルに指定した名前をつけることができる。" -#: js/BooleanBlocks.js:44 -msgid "The Not block is the logical not operator." -msgstr "" +#: js/blocks/ExtrasBlocks.js:33 +msgid "fraction" +msgstr "分数" -#: js/BooleanBlocks.js:62 -msgid "not" -msgstr "ではない" +#: js/blocks/ExtrasBlocks.js:36 +msgid "Convert a float to a fraction" +msgstr "小数から分数" -#: js/BooleanBlocks.js:134 -msgid "The And block is the logical and operator." -msgstr "" +#: js/blocks/ExtrasBlocks.js:93 +msgid "save as ABC" +msgstr "ABCでほぞん" -#: js/BooleanBlocks.js:152 -msgid "and" -msgstr "かつ" +#: js/blocks/ExtrasBlocks.js:96 +#: js/blocks/ExtrasBlocks.js:132 +#: js/blocks/ExtrasBlocks.js:168 +msgid "title" +msgstr "名" -#: js/BooleanBlocks.js:218 -msgid "The Or block is the logical or operator." -msgstr "" +#: js/blocks/ExtrasBlocks.js:129 +msgid "save as Lilypond" +msgstr "Lilypondのフォーマットでほぞん" -#: js/BooleanBlocks.js:236 -msgid "or" -msgstr "または" +#: js/blocks/ExtrasBlocks.js:165 +msgid "save as SVG" +msgstr "SVGでほぞん" -#: js/BooleanBlocks.js:302 -msgid "The XOR block is the logical XOR operator." -msgstr "" +#: js/blocks/ExtrasBlocks.js:216 +msgid "no background" +msgstr "バックグラウンドなし" -#: js/BooleanBlocks.js:320 -msgid "xor" +#: js/blocks/ExtrasBlocks.js:219 +msgid "The No background block eliminates the background from the saved SVG output." msgstr "" -#: js/BooleanBlocks.js:808 -msgid "The Equal block returns True if the two numbers are equal." -msgstr "

しんぎブロック(等しい)


2つのすうちをくらべて、同じすうちであるかどうかはんていする。「=」は、2つのすうちが同じであれば「真(しん)」、同じでなければ「偽(ぎ)」という結果になる。

★しんぎブロックとは
「もし~ならば」などのじょうけんブロックを動かすために必要なブロック。
「もし~ならば」は、せいかくに表現すると、「もし~というじょうけんが正しいならば、次のブロックを実行する」という意味である。しんぎブロックは不等式などによるひかくが「正しい(真)」か、「正しくない(偽)」かの結果を表し、「もし~ならば」に続くブロックを実行するかどうか決める。" - -#: js/BooleanBlocks.js:909 -msgid "The Not-equal-to block returns True if the two numbers are not equal to each other." -msgstr "" +#: js/blocks/ExtrasBlocks.js:247 +msgid "show blocks" +msgstr "ブロックを表示" -#: js/BooleanBlocks.js:1008 -msgid "The Boolean block is used to specify true or false." +#: js/blocks/ExtrasBlocks.js:249 +msgid "The Show blocks block shows the blocks." msgstr "" -#: js/MediaBlocks.js:35 -#.TRANS: right side of the screen -msgid "right (screen)" -msgstr "ざひょうち(右)" - -#: js/MediaBlocks.js:45 -#: js/MediaBlocks.js:56 -msgid "The Right block returns the position of the right of the canvas." -msgstr "

すうちブロック(カンバス)


カンバスの右のxざひょうち。プラスのすうち。カンバスのじょうほうを持つすうちブロックは、カンバスのたてはば、よこはば、ざひょうち(上)、ざひょうち(下)、ざひょうち(左)、ざひょうち(右)などの6種類がある。" - -#: js/MediaBlocks.js:97 -#.TRANS: left side of the screen -msgid "left (screen)" -msgstr "ざひょうち(左)" - -#: js/MediaBlocks.js:107 -#: js/MediaBlocks.js:118 -msgid "The Left block returns the position of the left of the canvas." -msgstr "

すうちブロック(カンバス)


カンバスの左のxざひょうち。マイナスのすうち。カンバスのじょうほうを持つすうちブロックは、カンバスのたてはば、よこはば、ざひょうち(上))、ざひょうち(下)、ざひょうち(左)、ざひょうち(右)などの6種類がある。" - -#: js/MediaBlocks.js:158 -msgid "top (screen)" -msgstr "ざひょうち(上)" - -#: js/MediaBlocks.js:168 -#: js/MediaBlocks.js:179 -msgid "The Top block returns the position of the top of the canvas." -msgstr "

すうちブロック(カンバス)


カンバスの上のyざひょうち。プラスのすうち。カンバスのじょうほうを持つすうちブロックは、カンバスのたてはば、よこはば、上(y座標)、ざひょうち(下)、ざひょうち(左)、ざひょうち(右)などの6種類がある。" - -#: js/MediaBlocks.js:219 -msgid "bottom (screen)" -msgstr "ざひょうち(下)" +#: js/blocks/ExtrasBlocks.js:274 +msgid "hide blocks" +msgstr "ブロックを非表示" -#: js/MediaBlocks.js:229 -#: js/MediaBlocks.js:240 -msgid "The Bottom block returns the position of the bottom of the canvas." -msgstr "

すうちブロック(カンバス)


カンバスの下のyざひょうち。マイナスのすうち。カンバスのじょうほうを持つすうちブロックは、カンバスのたてはば、よこはば、ざひょうち(上)、ざひょうち(下)、ざひょうち(左)、ざひょうち(右)などの6種類がある。" +#: js/blocks/ExtrasBlocks.js:276 +msgid "The Hide blocks block hides the blocks." +msgstr "" -#: js/MediaBlocks.js:282 -msgid "width" -msgstr "カンバスのよこはば" +#: js/blocks/ExtrasBlocks.js:305 +#: js/blocks/ExtrasBlocks.js:338 +msgid "The Space block is used to add space between blocks." +msgstr "

スペースブロック


ブロックとブロックの間にスペースを入れたいときに使う。" -#: js/MediaBlocks.js:291 -msgid "The Width block returns the width of the canvas." -msgstr "

すうちブロック(カンバス)


カンバスのたてはばのすうちを表す。カンバスのじょうほうを持つすうちブロックは、カンバスのたてはば、よこはば、ざひょうち(上)、ざひょうち(下)、ざひょうち(左)、ざひょうち(右)などの6種類がある。" +#: js/blocks/ExtrasBlocks.js:376 +msgid "wait" +msgstr "待つ" -#: js/MediaBlocks.js:325 -msgid "height" -msgstr "カンバスのたてはば" +#: js/blocks/ExtrasBlocks.js:379 +msgid "The Wait block pauses the program for a specified number of seconds." +msgstr "" -#: js/MediaBlocks.js:334 -msgid "The Height block returns the height of the canvas." -msgstr "

すうちブロック(カンバス)


カンバスのたてはばのすうちを表す。カンバスのじょうほうを持つすうちブロックは、カンバスのたてはば、よこはば、ざひょうち(上)、ざひょうち(下)、ざひょうち(左)、ざひょうち(右)などの6種類がある。" +#: js/blocks/ExtrasBlocks.js:433 +#: plugins/facebook.rtp:30 +msgid "comment" +msgstr "コメント" -#: js/MediaBlocks.js:369 -#.TRANS: stops playback of an audio recording -msgid "stop play" -msgstr "再生を停止" +#: js/blocks/ExtrasBlocks.js:469 +msgid "print" +msgstr "結果を表示" -#: js/MediaBlocks.js:404 -#.TRANS: Erases the images and text -msgid "erase media" -msgstr "メディアを消す" +#: js/blocks/ExtrasBlocks.js:476 +msgid "The Print block displays text at the top of the screen." +msgstr "

表示ブロック(結果)


画面の上部に、指定した実行結果のすうちや文字を表示する。表示したテキストはクリックすると消すことができる。どこでプログラムがまちがっているかをかくにんする際(デバグ)などによく用いられる。" -#: js/MediaBlocks.js:409 -msgid "The Erase Media block erases text and images." -msgstr "「メディアを消す」のブロックは文字と画像を消します。" +#: js/blocks/ExtrasBlocks.js:582 +msgid "display grid" +msgstr "グリッドを表示" -#: js/MediaBlocks.js:439 -#.TRANS: play an audio recording -msgid "play back" -msgstr "プレーバック" +#: js/blocks/ExtrasBlocks.js:587 +msgid "The Display Grid Block changes the grid type" +msgstr "表示グリッド ブロックのグリッド タイプの変更" -#: js/MediaBlocks.js:487 -msgid "speak" -msgstr "しゃべる" +#: js/blocks/ExtrasBlocks.js:689 +#: js/blocks/ExtrasBlocks.js:708 +#: js/blocks/ExtrasBlocks.js:731 +#: js/blocks/ExtrasBlocks.js:754 +#: js/blocks/ExtrasBlocks.js:772 +#: js/blocks/ExtrasBlocks.js:791 +#: js/blocks/ExtrasBlocks.js:810 +#: js/blocks/ExtrasBlocks.js:829 +msgid "unknown" +msgstr "不明" -#: js/MediaBlocks.js:495 -msgid "The Speak block outputs to the text-to-speech synthesizer" -msgstr "

音声ブロック


打ち込んだ文字を、機械音声で読み上げる。" +#: js/blocks/FlowBlocks.js:41 +msgid "The Backward block runs code in reverse order (Musical retrograde)." +msgstr "

実行ブロック(ぎゃく実行)


はさまれているブロックを、つうじょうとはぎゃくの順じょで、下から上に向かって実行する。" -#: js/MediaBlocks.js:546 -msgid "camera" -msgstr "" +#: js/blocks/FlowBlocks.js:48 +msgid "backward" +msgstr "ぎゃく向きに実行" -#: js/MediaBlocks.js:551 -msgid "The Camera block connects a webcam to the Show block." +#: js/blocks/FlowBlocks.js:124 +msgid "The Duplicate block will run each block multiple times." msgstr "" -#: js/MediaBlocks.js:574 -msgid "video" -msgstr "" +#: js/blocks/FlowBlocks.js:136 +msgid "duplicate" +msgstr "複製する" -#: js/MediaBlocks.js:579 -msgid "The Video block selects video for use with the Show block." +#: js/blocks/FlowBlocks.js:334 +msgid "The Default block is used inside of a Switch to define the default action." msgstr "" -#: js/MediaBlocks.js:607 -msgid "The Open file block opens a file for use with the Show block." -msgstr "" +#: js/blocks/FlowBlocks.js:342 +msgid "default" +msgstr "ひょうじゅん" -#: js/MediaBlocks.js:645 -msgid "stop media" -msgstr "メデイアを停止" +#: js/blocks/FlowBlocks.js:361 +#: js/blocks/FlowBlocks.js:418 +msgid "The Case Block must be used inside of a Switch Block." +msgstr "ケースブロックはスイッチブロックの中にある必要があります。" -#: js/MediaBlocks.js:650 -msgid "The Stop media block stops audio or video playback." +#: js/blocks/FlowBlocks.js:389 +msgid "The Case block is used inside of a Switch to define matches." msgstr "" -#: js/MediaBlocks.js:679 -#: js/PitchBlocks.js:1539 -#: js/phrasemaker.js:822 -#: js/musickeyboard.js:1654 -#.TRANS: a measure of frequency: one cycle per second -msgid "hertz" -msgstr "ヘルツ" - -#: js/MediaBlocks.js:692 -msgid "duration (ms)" -msgstr "長さ(ミリ秒)" - -#: js/MediaBlocks.js:728 -#.TRANS: translate a note into hertz, e.g., A4 -> 440HZ -msgid "note to frequency" -msgstr "音符の高さを周波数表示へ" +#: js/blocks/FlowBlocks.js:397 +msgid "case" +msgstr "ケース" -#: js/MediaBlocks.js:736 -msgid "The To frequency block converts a pitch name and octave to Hertz." +#: js/blocks/FlowBlocks.js:446 +msgid "The Switch block will run the code in the matching Case." msgstr "" -#: js/MediaBlocks.js:746 -#: js/PitchBlocks.js:656 -#: js/PitchBlocks.js:932 -#: js/PitchBlocks.js:1827 -#.TRANS: name2 is name as in name of pitch (JAPANESE ONLY) -msgid "name2" -msgstr "名前" +#: js/blocks/FlowBlocks.js:454 +msgid "switch" +msgstr "スイッチ" -#: js/MediaBlocks.js:812 -msgid "The Avatar block is used to change the appearance of the mouse." +#: js/blocks/FlowBlocks.js:595 +msgid "The Stop block will stop a loop" msgstr "" -#: js/MediaBlocks.js:819 -msgid "The Avatar block is used to change the appearance of the turtle." +#: js/blocks/FlowBlocks.js:597 +msgid "Forever, Repeat, While, or Until." msgstr "" -#: js/MediaBlocks.js:831 -#: js/MediaBlocks.js:891 -#.TRANS: a media object -msgid "size" -msgstr "大きさ" - -#: js/MediaBlocks.js:831 -msgid "image" -msgstr "がぞうそざい" - -#: js/MediaBlocks.js:880 -msgid "The Show block is used to display text or images on the canvas." -msgstr "

表示ブロック(スタンプ)


スタンプは、実行するとネズミの位置に指定した文字またはがぞうを表示する。ネズミの体の下に表れるので、小さい文字やがぞうだとネズミが移動しないと見えない場合がある。" - -#: js/MediaBlocks.js:888 -#.TRANS: show1 is show as in display an image or text on the screen. -msgid "show1" -msgstr "スタンプ" - -#: js/MediaBlocks.js:891 -msgid "obj" -msgstr "そざい" - -#: js/MediaBlocks.js:938 -msgid "The Media block is used to import an image." -msgstr "

がぞうブロック


がぞうのブロック。ブロックのマークをおすと、コンピューター上からがぞうファイルを読み込むことができる。" - -#: js/MediaBlocks.js:973 -msgid "The Text block holds a text string." -msgstr "

文字ブロック


文字を指定するブロック。" +#: js/blocks/FlowBlocks.js:604 +#: js/widgets/timbre.js:417 +#: js/widgets/timbre.js:419 +#: js/widgets/musickeyboard.js:819 +#: js/widgets/musickeyboard.js:821 +#: js/widgets/phrasemaker.js:4202 +#: plugins/rodi.rtp:29 +#: plugins/rodi.rtp:73 +#: plugins/rodi.rtp:413 +msgid "stop" +msgstr "止める" -#: js/ProgramBlocks.js:33 -msgid "The Load-heap-from-app block loads the heap from a web page." +#: js/blocks/FlowBlocks.js:653 +msgid "The Waitfor block will wait until the condition is true." msgstr "" -#: js/ProgramBlocks.js:44 -#.TRANS: load the heap contents from a URL -msgid "load heap from App" -msgstr "アプリからヒープをロード" - -#: js/ProgramBlocks.js:95 -msgid "Error parsing JSON data:" -msgstr "JSON データの構文エラーです。" - -#: js/ProgramBlocks.js:100 -msgid "404: Page not found" -msgstr "404エラー:ページが見つかりません。" +#: js/blocks/FlowBlocks.js:661 +msgid "wait for" +msgstr "を待つ" -#: js/ProgramBlocks.js:133 -msgid "The Save-heap-to-app block saves the heap to a web page." +#: js/blocks/FlowBlocks.js:732 +msgid "The Until block will repeat until the condition is true." msgstr "" -#: js/ProgramBlocks.js:144 -#.TRANS: save the heap contents to a URL -msgid "save heap to App" -msgstr "アプリにヒープを保存" +#: js/blocks/FlowBlocks.js:740 +msgid "until" +msgstr "までに" -#: js/ProgramBlocks.js:189 -msgid "Cannot find a valid heap for" -msgstr "正しいヒープが見つかりません。" +#: js/blocks/FlowBlocks.js:742 +#: js/blocks/FlowBlocks.js:822 +msgid "do2" +msgstr "~する" -#: js/ProgramBlocks.js:206 -msgid "The Load-heap block loads the heap from a file." +#: js/blocks/FlowBlocks.js:812 +msgid "The While block will repeat while the condition is true." msgstr "" -#: js/ProgramBlocks.js:217 -#.TRANS: load the heap from a file -msgid "load heap" -msgstr "ヒープをロードする" - -#: js/ProgramBlocks.js:270 -msgid "The file you selected does not contain a valid heap." -msgstr "選んだファイルには、正しいヒープが含まれません。" +#: js/blocks/FlowBlocks.js:820 +msgid "while" +msgstr "の間に" -#: js/ProgramBlocks.js:275 -msgid "The loadHeap block needs a loadFile block." -msgstr "ロードヒープのブロックには、ロードファイルブロックが必要です。" +#: js/blocks/FlowBlocks.js:903 +#: js/blocks/FlowBlocks.js:968 +#: js/blocks/FlowBlocks.js:979 +msgid "In this example if the mouse button is pressed a snare drum will play." +msgstr "

図の例では、もし、パソコンのマウスを長おししていれば「キックドラム」ブロックをえんそうする。" -#: js/ProgramBlocks.js:291 -msgid "The Set-heap block loads the heap." -msgstr "" +#: js/blocks/FlowBlocks.js:925 +#: js/blocks/FlowBlocks.js:988 +msgid "if" +msgstr "もし" -#: js/ProgramBlocks.js:299 -#: js/HeapBlocks.js:539 -#.TRANS: load the heap from a JSON encoding -msgid "set heap" -msgstr "ヒープを設定する" +#: js/blocks/FlowBlocks.js:927 +#: js/blocks/FlowBlocks.js:990 +msgid "then" +msgstr "ならば" -#: js/ProgramBlocks.js:340 -msgid "The block you selected does not contain a valid heap." -msgstr "" +#: js/blocks/FlowBlocks.js:927 +msgid "else" +msgstr "でなければ" -#: js/ProgramBlocks.js:343 -msgid "The Set heap block needs a heap." -msgstr "" +#: js/blocks/FlowBlocks.js:1025 +msgid "The Forever block will repeat the contained blocks forever." +msgstr "

実行ブロック(くり返し)


「ずっとくり返す」のブロックは、実行を停止しないかぎり、はさまれているブロックをくり返し実行する。" -#: js/ProgramBlocks.js:360 -msgid "The Load-dictionary block loads a dictionary from a file." -msgstr "" +#: js/blocks/FlowBlocks.js:1037 +msgid "forever" +msgstr "ずっとくり返す" -#: js/ProgramBlocks.js:372 -#.TRANS: load a dictionary from a file -msgid "load dictionary" -msgstr "辞書をロード" +#: js/blocks/FlowBlocks.js:1073 +msgid "The Repeat block will repeat the contained blocks." +msgstr "

実行ブロック(くり返し)


はさまれているブロックのプログラムを、入力した回数だけくり返す。" -#: js/ProgramBlocks.js:390 -#: js/ProgramBlocks.js:658 -#: js/ToneBlocks.js:1025 -msgid "file" -msgstr "ファイル" +#: js/blocks/FlowBlocks.js:1075 +msgid "In this example the note will be played 4 times." +msgstr "

図の例では、「ソ」の音が4回えんそうされる。" -#: js/ProgramBlocks.js:396 -#: js/ProgramBlocks.js:501 -#: js/ProgramBlocks.js:664 -#: js/DictBlocks.js:80 -#: js/DictBlocks.js:145 -#: js/DictBlocks.js:216 -#: js/DictBlocks.js:290 -msgid "My Dictionary" -msgstr "私の辞書" +#: js/blocks/FlowBlocks.js:1083 +msgid "repeat" +msgstr "~回くり返す" -#: js/ProgramBlocks.js:444 -msgid "The file you selected does not contain a valid dictionary." -msgstr "" +#: js/blocks/FlowBlocks.js:1123 +msgid "duplicate factor" +msgstr "複製ファクター" -#: js/ProgramBlocks.js:449 -msgid "The load dictionary block needs a load file block." +#: js/blocks/HeapBlocks.js:49 +msgid "The Heap block returns the heap." msgstr "" -#: js/ProgramBlocks.js:466 -msgid "The Set-dictionary block loads a dictionary." +#: js/blocks/HeapBlocks.js:133 +msgid "show heap" +msgstr "ヒープを表示する" + +#: js/blocks/HeapBlocks.js:181 +msgid "The Heap-length block returns the length of the heap." msgstr "" -#: js/ProgramBlocks.js:477 -#.TRANS: load a dictionary from a JSON -msgid "set dictionary" -msgstr "辞書を設定" +#: js/blocks/HeapBlocks.js:195 +msgid "heap length" +msgstr "ヒープの長さ" -#: js/ProgramBlocks.js:546 -msgid "The block you selected does not contain a valid dictionary." +#: js/blocks/HeapBlocks.js:254 +msgid "The Heap-empty? block returns true if the heap is empty." msgstr "" -#: js/ProgramBlocks.js:550 -msgid "The set dictionary block needs a dictionary." -msgstr "" +#: js/blocks/HeapBlocks.js:268 +#.TRANS: Is the heap empty? +msgid "heap empty?" +msgstr "ヒープは空ですか?" -#: js/ProgramBlocks.js:567 -msgid "The Save-heap block saves the heap to a file." +#: js/blocks/HeapBlocks.js:317 +msgid "The Empty-heap block empties the heap." msgstr "" -#: js/ProgramBlocks.js:578 -#.TRANS: save the heap to a file -msgid "save heap" -msgstr "ヒープを保存する" +#: js/blocks/HeapBlocks.js:327 +#: js/blocks/HeapBlocks.js:647 +#.TRANS: empty the heap +msgid "empty heap" +msgstr "空のヒープ" -#: js/ProgramBlocks.js:629 -msgid "The Save-dictionary block saves a dictionary to a file." +#: js/blocks/HeapBlocks.js:371 +msgid "The Reverse-heap block reverses the order of the heap." msgstr "" -#: js/ProgramBlocks.js:640 -#.TRANS: save a dictionary to a file -msgid "save dictionary" -msgstr "辞書を保存" +#: js/blocks/HeapBlocks.js:384 +#.TRANS: reverse the order of the heap +msgid "reverse heap" +msgstr "ヒープを逆にする" -#: js/ProgramBlocks.js:720 -msgid "The Open palette block opens a palette." +#: js/blocks/HeapBlocks.js:428 +msgid "The Index-heap block returns a value in the heap at a specified location." msgstr "" -#: js/ProgramBlocks.js:727 -msgid "open palette" -msgstr "パレットを開きます" +#: js/blocks/HeapBlocks.js:443 +#.TRANS: retrieve a value from the heap at index position in the heap +msgid "index heap" +msgstr "ヒープに番号をふる" -#: js/ProgramBlocks.js:785 -msgid "The Delete block block removes a block." +#: js/blocks/HeapBlocks.js:523 +msgid "The Set-heap entry block sets a value in he heap at the specified location." msgstr "" -#: js/ProgramBlocks.js:797 -#.TRANS: Move this block to the trash. -msgid "delete block" -msgstr "ブロックを消す" +#: js/blocks/HeapBlocks.js:539 +#: js/blocks/ProgramBlocks.js:299 +#.TRANS: load the heap from a JSON encoding +msgid "set heap" +msgstr "ヒープを設定する" -#: js/ProgramBlocks.js:861 -msgid "The Move block block moves a block." +#: js/blocks/HeapBlocks.js:619 +msgid "The Pop block removes the value at the top of the heap." msgstr "" -#: js/ProgramBlocks.js:869 -#.TRANS: Move the position of a block on the screen. -msgid "move block" -msgstr "ブロックを動かす" +#: js/blocks/HeapBlocks.js:633 +#.TRANS: pop a value off the top of the heap +msgid "pop" +msgstr "ポップ" -#: js/ProgramBlocks.js:881 -#: js/ProgramBlocks.js:1048 -msgid "block number" -msgstr "ブロックの番号" +#: js/blocks/HeapBlocks.js:680 +msgid "The Push block adds a value to the top of the heap." +msgstr "" -#: js/ProgramBlocks.js:935 -#.TRANS: Run program beginning at this block. -msgid "run block" -msgstr "ブロックを再生" +#: js/blocks/HeapBlocks.js:696 +#.TRANS: push a value onto the top of the heap +msgid "push" +msgstr "プッシュ" -#: js/ProgramBlocks.js:1025 -msgid "The Dock block block connections two blocks." -msgstr "" +#: js/blocks/IntervalsBlocks.js:45 +msgid "set temperament" +msgstr "音律をせってい" -#: js/ProgramBlocks.js:1036 -#.TRANS: We can connect a block to another block. -msgid "connect blocks" -msgstr "ブロックを繋ぐ" +#: js/blocks/IntervalsBlocks.js:63 +#: js/blocks/MediaBlocks.js:746 +#: js/blocks/PitchBlocks.js:657 +#: js/blocks/PitchBlocks.js:935 +#: js/blocks/PitchBlocks.js:974 +#: js/blocks/PitchBlocks.js:1007 +#: js/blocks/PitchBlocks.js:1194 +#: js/blocks/PitchBlocks.js:1717 +#: js/blocks/PitchBlocks.js:1758 +#: js/blocks/PitchBlocks.js:1866 +#: js/blocks/ToneBlocks.js:1025 +#: js/turtleactions/IntervalsActions.js:114 +#.TRANS: adjusts the shift up or down by one octave (twelve half-steps in the interval between two notes, one having twice or half the frequency in Hz of the other.) +msgid "octave" +msgstr "オクターヴの高さ" -#: js/ProgramBlocks.js:1048 -msgid "target block" -msgstr "目標のブロック" +#: js/blocks/IntervalsBlocks.js:99 +msgid "The Temperament name block is used to select a tuning method." +msgstr "

音律(おんりつ)ブロック


調律(ちょうりつ)のしかたをせっていする。
★音律(おんりつ)とは
音程(おんてい)(音どうしのへだたり)の決め方。同じ音階でも、音律(おんりつ)によって音の高さが変わる。
★調律(ちょうりつ)とは
楽器の音の高さを、音律(おんりつ)にしたがって整えること。" -#: js/ProgramBlocks.js:1048 -msgid "connection number" -msgstr "接続の番号" +#: js/blocks/IntervalsBlocks.js:161 +msgid "doubly" +msgstr "重" -#: js/ProgramBlocks.js:1140 -msgid "The Make block block creates a new block." +#: js/blocks/IntervalsBlocks.js:166 +msgid "The Doubly block will double the size of an interval." msgstr "" -#: js/ProgramBlocks.js:1152 -#.TRANS: Create a new block -msgid "make block" -msgstr "ブロックを作る" +#: js/blocks/IntervalsBlocks.js:262 +msgid "interval number" +msgstr "音程を数で表示" -#: js/ProgramBlocks.js:1186 -#: js/ProgramBlocks.js:1227 -#: js/RhythmBlocks.js:1128 -#: js/PitchBlocks.js:972 -#: js/PitchBlocks.js:1005 -#: js/temperament.js:340 -#: js/temperament.js:362 -#: js/temperament.js:372 -#: js/temperament.js:484 -#: js/status.js:190 -#: plugins/rodi.rtp:192 -#.TRANS: a musical note consisting of pitch and duration -msgid "note" -msgstr "音符" +#: js/blocks/IntervalsBlocks.js:317 +msgid "current interval" +msgstr "現在の音階" -#: js/ProgramBlocks.js:1285 -msgid "Cannot find block" -msgstr "ブロックが見つかりません" +#: js/blocks/IntervalsBlocks.js:387 +#.TRANS: measure the distance between two pitches in semi-tones +msgid "semi-tone interval measure" +msgstr "半音階的音程で計る" -#: js/ProgramBlocks.js:1304 -#: js/ProgramBlocks.js:1313 -msgid "Warning: block argument type mismatch" -msgstr "注意:ブロックとタイプが合っていません。" +#: js/blocks/IntervalsBlocks.js:454 +#: js/blocks/IntervalsBlocks.js:570 +msgid "You must use two pitch blocks when measuring an interval." +msgstr "音程を計る際は、2つの音符を使う必要があります。" -#: js/ProgramBlocks.js:1347 -msgid "The Open project block is used to open a project from a web page." +#: js/blocks/IntervalsBlocks.js:496 +msgid "The Scalar interval block measures the distance between two notes in the current key and mode." msgstr "" -#: js/ProgramBlocks.js:1357 -msgid "open project" -msgstr "プロジェクトを開く" +#: js/blocks/IntervalsBlocks.js:502 +#.TRANS: measure the distance between two pitches in steps of musical scale +msgid "scalar interval measure" +msgstr "全音階的音程で計る" -#: js/ProgramBlocks.js:1410 -msgid "Please enter a valid URL." -msgstr "正しい URL をいれて下さい。" +#: js/blocks/IntervalsBlocks.js:678 +msgid "In the figure, we add sol# to sol." +msgstr "例の画像にはソルソル#になります。" -#: js/DrumBlocks.js:59 -msgid "The Noise name block is used to select a noise synthesizer." -msgstr "" +#: js/blocks/IntervalsBlocks.js:684 +#: js/blocks/OrnamentBlocks.js:220 +#.TRANS: calculate a relative step between notes based on semi-tones +msgid "semi-tone interval" +msgstr "半音階的音程" -#: js/DrumBlocks.js:102 -msgid "The Drum name block is used to select a drum." -msgstr "

ドラムブロック


ドラムの種類を変えるときに使う。クリックで、いろいろなドラムの音を選ぶことができる。" +#: js/blocks/IntervalsBlocks.js:733 +msgid "The output of the example is: do, mi, sol, sol, ti, mi" +msgstr "例の解決は「ド、ミ、ソ、ソ、シ、ミ」" -#: js/DrumBlocks.js:146 -msgid "The Effects name block is used to select a sound effect." -msgstr "

こうかおんブロック


こうかおんの種類を変えるときに使う。クリックで、いろいろなおもしろい音を選ぶことができる。" +#: js/blocks/IntervalsBlocks.js:740 +#: js/blocks/WidgetBlocks.js:768 +msgid "arpeggio" +msgstr "アルペジオ" -#: js/DrumBlocks.js:163 -msgid "noise" -msgstr "ノイズ" +#: js/blocks/IntervalsBlocks.js:931 +msgid "The Chord block calculates common chords." +msgstr "" -#: js/DrumBlocks.js:177 -msgid "The Play noise block will generate white, pink, or brown noise." +#: js/blocks/IntervalsBlocks.js:933 +msgid "In the figure, we generate a C-major chord." msgstr "" -#: js/DrumBlocks.js:191 -#: js/musicutils.js:752 -#: js/synthutils.js:47 -#.TRANS: white noise synthesizer -msgid "white noise" -msgstr "ホワイトノイズ" +#: js/blocks/IntervalsBlocks.js:938 +msgid "chord" +msgstr "の和音" -#: js/DrumBlocks.js:326 -msgid "Replace every instance of a pitch with a drum sound." -msgstr "" +#: js/blocks/IntervalsBlocks.js:990 +msgid "The Ratio Interval block calculates an interval based on a ratio." +msgstr "「比で音程」ブロックは比の音程のピッチを経産する。" -#: js/DrumBlocks.js:337 -#.TRANS: map a pitch to a drum sound -msgid "map pitch to drum" -msgstr "音符をドラムに変える" +#: js/blocks/IntervalsBlocks.js:995 +msgid "ratio interval" +msgstr "比で音程" -#: js/DrumBlocks.js:404 -msgid "In the example above, a kick drum sound will be played instead of sol." -msgstr "例の画像にソルの代わりにキックドラムが鳴らします。" +#: js/blocks/IntervalsBlocks.js:1064 +msgid "In the figure, we add la to sol." +msgstr "

上の図では、ソの「音符(おんぷ)ブロック」をきじゅんにして、「音階の上下ブロック」のすうちを2にせっていしているので、ソと、ソから2音あがったシの音が同時にえんそうされる。

★音階とは
順番に並んだ音のまとまり。たとえば、「ド」を始まりの音にしたときの「ドレミファソラシド」、「ソ」を始まりの音にしたときの「ソラシドレミ(♯ファ)ソ」のこと。" -#: js/DrumBlocks.js:416 -#.TRANS: set the current drum sound for playback -msgid "set drum" -msgstr "ドラムをせってい" +#: js/blocks/IntervalsBlocks.js:1120 +#.TRANS: define a custom mode +msgid "define mode" +msgstr "モードを定義する" -#: js/DrumBlocks.js:460 -msgid "sound effect" -msgstr "こうかおん" +#: js/blocks/IntervalsBlocks.js:1173 +msgid "movable Do" +msgstr "移動ド" -#: js/DrumBlocks.js:498 -msgid "You can use multiple Drum blocks within a Note block." -msgstr "

ドラムブロック


「音符(おんぷ)ブロック」のなかに入れて使う。色々なドラムの音色を選ぶことができる。1つの「音符(おんぷ)ブロック」の中でふくすうの音色のドラムを組み合わせて使うことができる。" +#: js/blocks/IntervalsBlocks.js:1224 +#.TRANS: mode length is the number of notes in the mode, e.g., 7 for major and minor scales; 12 for chromatic scales +msgid "mode length" +msgstr "音階の音数" -#: js/RhythmBlocks.js:182 -#: js/RhythmBlocks.js:1086 -#: js/RhythmBlocks.js:1162 -msgid "Note value must be greater than 0." -msgstr "音の長さは、0より大きいあたいをせっていしてください。" +#: js/blocks/IntervalsBlocks.js:1233 +msgid "The Mode length block is the number of notes in the current scale." +msgstr "

音階の音数ブロック


えんそうされている音階の、音の数を表示する。" -#: js/RhythmBlocks.js:215 -#: js/RhythmBlocks.js:278 -#: js/RhythmBlocks.js:350 -#.TRANS: swing is a rhythmic variation that emphasises the offbeat -msgid "swing" -msgstr "スイング" +#: js/blocks/IntervalsBlocks.js:1235 +msgid "Most Western scales have 7 notes." +msgstr "西洋のほとんどの音階は、7つの音をもつ。

★音階とは
順番に並んだ音のまとまり。たとえば、「ド」を始まりの音にしたときの「ドレミファソラシド」、「ソ」を始まりの音にしたときの「ソラシドレミ(♯ファ)ソ」のこと。" -#: js/RhythmBlocks.js:355 -#.TRANS: the amount to shift to the offbeat note -msgid "swing value" -msgstr "スイングの数値" +#: js/blocks/IntervalsBlocks.js:1284 +#.TRANS: the mode in music is 'major', 'minor', etc. +msgid "current mode" +msgstr "現代の音階" -#: js/RhythmBlocks.js:419 -msgid "The Skip notes block will cause notes to be skipped." -msgstr "" +#: js/blocks/IntervalsBlocks.js:1337 +#.TRANS: the key is a group of pitches with which a music composition is created +msgid "current key" +msgstr "現代の調" -#: js/RhythmBlocks.js:427 -#.TRANS: substitute rests on notes being skipped -msgid "skip notes" -msgstr "音符の省略" +#: js/blocks/IntervalsBlocks.js:1389 +#: js/blocks/IntervalsBlocks.js:1434 +#.TRANS: set the key and mode, e.g. C Major +msgid "set key" +msgstr "調をせってい" -#: js/RhythmBlocks.js:489 -#.TRANS: speed up note duration by some factor, e.g. convert 1/4 to 1/8 notes by using a factor of 2 -msgid "multiply note value" -msgstr "音価を~倍にするファクター" +#: js/blocks/IntervalsBlocks.js:1443 +#: js/blocks/IntervalsBlocks.js:1449 +msgid "The Set key block is used to set the key and mode," +msgstr "

調をせっていブロック


調の部分に音の高さ、音階の部分に音階の種類を選び、調をせっていする。

★調とは
中心的な役わりをはたす音と、音階の種類によって決まる、曲の感じ。中心的な役わりをはたす音だけを指すこともある。
★音階とは
順番に並んだ音のまとまり。" -#: js/RhythmBlocks.js:542 -msgid "The Tie block works on pairs of notes, combining them into one note." -msgstr "

タイブロック


2つの音をつなげて1つの音にする。「音の高さブロック」を入れて使う。同じ高さの音だけ、つなぐことができる。" +#: js/blocks/IntervalsBlocks.js:1449 +msgid "eg C Major" +msgstr "たとえば、「ド」を始まりの音にしたときの「ドレミファソラシド」、「ソ」を始まりの音にしたときの「ソラシドレミ(♯ファ)ソ」のこと。" -#: js/RhythmBlocks.js:550 -#.TRANS: tie notes together into one longer note -msgid "tie" -msgstr "タイ" +#: js/blocks/MediaBlocks.js:35 +#.TRANS: right side of the screen +msgid "right (screen)" +msgstr "ざひょうち(右)" -#: js/RhythmBlocks.js:591 -#: js/RhythmBlocks.js:671 -#.TRANS: a dotted note is played for 1.5x its value, e.g., 1/8. --> 3/16 -msgid "dot" -msgstr "付点音符" +#: js/blocks/MediaBlocks.js:45 +#: js/blocks/MediaBlocks.js:56 +msgid "The Right block returns the position of the right of the canvas." +msgstr "

すうちブロック(カンバス)


カンバスの右のxざひょうち。プラスのすうち。カンバスのじょうほうを持つすうちブロックは、カンバスのたてはば、よこはば、ざひょうち(上)、ざひょうち(下)、ざひょうち(左)、ざひょうち(右)などの6種類がある。" -#: js/RhythmBlocks.js:619 -#: js/RhythmActions.js:221 -msgid "An argument of -1 results in a note value of 0." -msgstr "ー1は0の音価にします" +#: js/blocks/MediaBlocks.js:97 +#.TRANS: left side of the screen +msgid "left (screen)" +msgstr "ざひょうち(左)" + +#: js/blocks/MediaBlocks.js:107 +#: js/blocks/MediaBlocks.js:118 +msgid "The Left block returns the position of the left of the canvas." +msgstr "

すうちブロック(カンバス)


カンバスの左のxざひょうち。マイナスのすうち。カンバスのじょうほうを持つすうちブロックは、カンバスのたてはば、よこはば、ざひょうち(上))、ざひょうち(下)、ざひょうち(左)、ざひょうち(右)などの6種類がある。" + +#: js/blocks/MediaBlocks.js:158 +msgid "top (screen)" +msgstr "ざひょうち(上)" -#: js/RhythmBlocks.js:661 -msgid "The Dot block extends the duration of a note by 50%." -msgstr "" +#: js/blocks/MediaBlocks.js:168 +#: js/blocks/MediaBlocks.js:179 +msgid "The Top block returns the position of the top of the canvas." +msgstr "

すうちブロック(カンバス)


カンバスの上のyざひょうち。プラスのすうち。カンバスのじょうほうを持つすうちブロックは、カンバスのたてはば、よこはば、上(y座標)、ざひょうち(下)、ざひょうち(左)、ざひょうち(右)などの6種類がある。" -#: js/RhythmBlocks.js:663 -msgid "Eg a dotted quarter note will play for 3/8 (1/4 + 1/8) of a beat." -msgstr "" +#: js/blocks/MediaBlocks.js:219 +msgid "bottom (screen)" +msgstr "ざひょうち(下)" -#: js/RhythmBlocks.js:765 -#.TRANS: Japanese only: note value block for drum -msgid "note value drum" -msgstr "音符(ドラム)" +#: js/blocks/MediaBlocks.js:229 +#: js/blocks/MediaBlocks.js:240 +msgid "The Bottom block returns the position of the bottom of the canvas." +msgstr "

すうちブロック(カンバス)


カンバスの下のyざひょうち。マイナスのすうち。カンバスのじょうほうを持つすうちブロックは、カンバスのたてはば、よこはば、ざひょうち(上)、ざひょうち(下)、ざひょうち(左)、ざひょうち(右)などの6種類がある。" -#: js/RhythmBlocks.js:829 -msgid "392 hertz" -msgstr "392ヘルツ" +#: js/blocks/MediaBlocks.js:282 +msgid "width" +msgstr "カンバスのよこはば" -#: js/RhythmBlocks.js:1119 -msgid "The Note block is a container for one or more Pitch blocks." -msgstr "

音符(おんぷ)ブロック


音の長さと高さをせっていする。長さを決め、「音の高さブロック」を入れて使う。" +#: js/blocks/MediaBlocks.js:291 +msgid "The Width block returns the width of the canvas." +msgstr "

すうちブロック(カンバス)


カンバスのたてはばのすうちを表す。カンバスのじょうほうを持つすうちブロックは、カンバスのたてはば、よこはば、ざひょうち(上)、ざひょうち(下)、ざひょうち(左)、ざひょうち(右)などの6種類がある。" -#: js/RhythmBlocks.js:1121 -msgid "The Note block specifies the duration (note value) of its contents." -msgstr "

「音の高さブロック」を2つ以上入れると、音を同時に出すことができる。" +#: js/blocks/MediaBlocks.js:325 +msgid "height" +msgstr "カンバスのたてはば" -#: js/RhythmBlocks.js:1130 -msgid "value2" -msgstr "長さ" +#: js/blocks/MediaBlocks.js:334 +msgid "The Height block returns the height of the canvas." +msgstr "

すうちブロック(カンバス)


カンバスのたてはばのすうちを表す。カンバスのじょうほうを持つすうちブロックは、カンバスのたてはば、よこはば、ざひょうち(上)、ざひょうち(下)、ざひょうち(左)、ざひょうち(右)などの6種類がある。" -#: js/RhythmBlocks.js:1200 -msgid "define frequency" -msgstr "周波数を明確にする" +#: js/blocks/MediaBlocks.js:369 +#.TRANS: stops playback of an audio recording +msgid "stop play" +msgstr "再生を停止" -#: js/RhythmBlocks.js:1218 -#: js/temperament.js:650 -#: js/temperament.js:1421 -msgid "octave space" -msgstr "オクターヴ・スペース" +#: js/blocks/MediaBlocks.js:404 +#.TRANS: Erases the images and text +msgid "erase media" +msgstr "メディアを消す" -#: js/NumberBlocks.js:28 -msgid "The Int block returns an integer." -msgstr "" +#: js/blocks/MediaBlocks.js:409 +msgid "The Erase Media block erases text and images." +msgstr "「メディアを消す」のブロックは文字と画像を消します。" -#: js/NumberBlocks.js:34 -msgid "int" -msgstr "整数に" +#: js/blocks/MediaBlocks.js:439 +#.TRANS: play an audio recording +msgid "play back" +msgstr "プレーバック" -#: js/NumberBlocks.js:73 -msgid "The Mod block returns the remainder from a division." -msgstr "" +#: js/blocks/MediaBlocks.js:487 +msgid "speak" +msgstr "しゃべる" -#: js/NumberBlocks.js:79 -msgid "mod" -msgstr "~で割った余り(mod)" +#: js/blocks/MediaBlocks.js:495 +msgid "The Speak block outputs to the text-to-speech synthesizer" +msgstr "

音声ブロック


打ち込んだ文字を、機械音声で読み上げる。" -#: js/NumberBlocks.js:123 -msgid "The Power block calculates a power function." +#: js/blocks/MediaBlocks.js:546 +msgid "camera" msgstr "" -#: js/NumberBlocks.js:178 -msgid "The Sqrt block returns the square root." +#: js/blocks/MediaBlocks.js:551 +msgid "The Camera block connects a webcam to the Show block." msgstr "" -#: js/NumberBlocks.js:184 -msgid "sqrt" -msgstr "平方根" - -#: js/NumberBlocks.js:230 -msgid "The Abs block returns the absolute value." +#: js/blocks/MediaBlocks.js:574 +msgid "video" msgstr "" -#: js/NumberBlocks.js:236 -msgid "abs" -msgstr "絶対値" - -#: js/NumberBlocks.js:277 -msgid "The Distance block returns the distance between two points. For example, between the mouse and the center of the screen." +#: js/blocks/MediaBlocks.js:579 +msgid "The Video block selects video for use with the Show block." msgstr "" -#: js/NumberBlocks.js:283 -#: plugins/rodi.rtp:310 -msgid "distance" -msgstr "距離" - -#: js/NumberBlocks.js:343 -msgid "The Divide block is used to divide." -msgstr "

すうちブロック(計算)


2つのすうちの割り算した計算結果を表すすうちブロック。上につないだすうちを、下につないだすうちで割る。" - -#: js/NumberBlocks.js:411 -msgid "The Multiply block is used to multiply." -msgstr "

すうちブロック(計算)


2つのすうちを掛け合わせた計算結果を表すすうちブロック。" +#: js/blocks/MediaBlocks.js:607 +msgid "The Open file block opens a file for use with the Show block." +msgstr "" -#: js/NumberBlocks.js:554 -msgid "The Minus block is used to subtract." -msgstr "

すうちブロック(計算)


2つのすうちの引き算した計算結果を表すすうちブロック。上につないだすうちから、下につないだすうちを引く。" +#: js/blocks/MediaBlocks.js:645 +msgid "stop media" +msgstr "メデイアを停止" -#: js/NumberBlocks.js:647 -msgid "The Plus block is used to add." -msgstr "

すうちブロック(計算)


2つのすうちを足し合わせた計算結果を表すすうちブロック。" +#: js/blocks/MediaBlocks.js:650 +msgid "The Stop media block stops audio or video playback." +msgstr "" -#: js/NumberBlocks.js:773 -msgid "The One-of block returns one of two choices." -msgstr "

特殊ブロック(ランダム)


つないだ2つのブロックのうち、1つだけをランダムに選ぶ。「すうち」「アクション名」など、さまざまなブロックをつなぐことができる。

★ランダムとは
サイコロの目のように、何が出るか分からないすうちのこと。ランダム(random)は日本語で「らんすう」「でたらめな」という意味。ランダムを使うと、実行のたびにえんそう順じょが変わる曲などを作ることができる。" +#: js/blocks/MediaBlocks.js:679 +#: js/blocks/PitchBlocks.js:1577 +#: js/widgets/musickeyboard.js:1936 +#: js/widgets/phrasemaker.js:1037 +#.TRANS: a measure of frequency: one cycle per second +msgid "hertz" +msgstr "ヘルツ" -#: js/NumberBlocks.js:780 -#: js/PitchBlocks.js:616 -msgid "one of" -msgstr "どちらかランダム" +#: js/blocks/MediaBlocks.js:692 +#: js/blocks/WidgetBlocks.js:182 +#: js/widgets/temperament.js:506 +#: js/widgets/temperament.js:546 +#: js/widgets/temperament.js:610 +#: js/widgets/temperament.js:618 +#: js/widgets/temperament.js:1505 +#: js/widgets/timbre.js:1842 +msgid "frequency" +msgstr "周波数" -#: js/NumberBlocks.js:782 -msgid "this" -msgstr "これか" +#: js/blocks/MediaBlocks.js:692 +msgid "duration (ms)" +msgstr "長さ(ミリ秒)" -#: js/NumberBlocks.js:782 -msgid "that" -msgstr "それか" +#: js/blocks/MediaBlocks.js:728 +#.TRANS: translate a note into hertz, e.g., A4 -> 440HZ +msgid "note to frequency" +msgstr "音符の高さを周波数表示へ" -#: js/NumberBlocks.js:837 -msgid "The Random block returns a random number." -msgstr "

すうちブロック(ランダム)


指定したさいしょうちからさいだいちまでのはんいで、ランダムなすうちになる。

★ランダムとは
サイコロの目のように、何が出るか分からないすうちのこと。ランダム(random)は日本語で「らんすう」「でたらめな」という意味。ランダムを使うと、実行のたびにえんそう順じょが変わる曲などを作ることができる。" +#: js/blocks/MediaBlocks.js:736 +msgid "The To frequency block converts a pitch name and octave to Hertz." +msgstr "" -#: js/NumberBlocks.js:844 -msgid "random" -msgstr "ランダム" +#: js/blocks/MediaBlocks.js:746 +#: js/blocks/PitchBlocks.js:656 +#: js/blocks/PitchBlocks.js:934 +#: js/blocks/PitchBlocks.js:1866 +#.TRANS: name2 is name as in name of pitch (JAPANESE ONLY) +msgid "name2" +msgstr "名前" -#: js/NumberBlocks.js:846 -msgid "min" -msgstr "さいしょうち" +#: js/blocks/MediaBlocks.js:812 +msgid "The Avatar block is used to change the appearance of the mouse." +msgstr "" -#: js/NumberBlocks.js:846 -msgid "max" -msgstr "さいだいち" +#: js/blocks/MediaBlocks.js:819 +msgid "The Avatar block is used to change the appearance of the turtle." +msgstr "" -#: js/NumberBlocks.js:910 -msgid "The Number block holds a number." -msgstr "

すうちブロック


すうちを指定するブロック。" +#: js/blocks/MediaBlocks.js:831 +#: js/blocks/MediaBlocks.js:891 +#.TRANS: a media object +msgid "size" +msgstr "大きさ" -#: js/BoxesBlocks.js:53 -#: js/BoxesBlocks.js:59 -msgid "The Add-to block is used to add to the value stored in a box." -msgstr "

数の箱(あたいを変える)


指定した箱に、好きなすうちを足す。マイナスのすうちを使うと引き算になる。" +#: js/blocks/MediaBlocks.js:831 +msgid "image" +msgstr "がぞうそざい" -#: js/BoxesBlocks.js:61 -msgid "It can also be used with other blocks such as Color and Pen size." -msgstr "

マイナスの数値を使うと引き算になる。" +#: js/blocks/MediaBlocks.js:880 +msgid "The Show block is used to display text or images on the canvas." +msgstr "

表示ブロック(スタンプ)


スタンプは、実行するとネズミの位置に指定した文字またはがぞうを表示する。ネズミの体の下に表れるので、小さい文字やがぞうだとネズミが移動しないと見えない場合がある。" -#: js/BoxesBlocks.js:73 -msgid "add" -msgstr "足す" +#: js/blocks/MediaBlocks.js:888 +#.TRANS: show1 is show as in display an image or text on the screen. +msgid "show1" +msgstr "スタンプ" -#: js/BoxesBlocks.js:75 -#: js/temperament.js:716 -msgid "to" -msgstr "箱へ" +#: js/blocks/MediaBlocks.js:891 +msgid "obj" +msgstr "そざい" -#: js/BoxesBlocks.js:75 -#: js/BoxesBlocks.js:595 -#: js/HeapBlocks.js:544 -msgid "value1" -msgstr "すうち" +#: js/blocks/MediaBlocks.js:938 +msgid "The Media block is used to import an image." +msgstr "

がぞうブロック


がぞうのブロック。ブロックのマークをおすと、コンピューター上からがぞうファイルを読み込むことができる。" -#: js/BoxesBlocks.js:118 -msgid "Block does not support incrementing." -msgstr "ブロックは、増殖をサポートできません" +#: js/blocks/MediaBlocks.js:973 +msgid "The Text block holds a text string." +msgstr "

文字ブロック


文字を指定するブロック。" -#: js/BoxesBlocks.js:152 -msgid "The Add-1-to block adds one to the value stored in a box." -msgstr "

数の箱(あたいを変える)


指定した箱に、1を足す。" +#: js/blocks/MeterBlocks.js:34 +#.TRANS: musical meter (time signature), e.g., 4:4 +msgid "current meter" +msgstr "現代の拍子" -#: js/BoxesBlocks.js:163 -msgid "add 1 to" -msgstr "箱に1を足す" +#: js/blocks/MeterBlocks.js:85 +#.TRANS: number of beats per minute +msgid "beat factor" +msgstr "拍を~倍にするファクター" -#: js/BoxesBlocks.js:211 -msgid "The Subtract-1-from block subtracts one from the value stored in a box." +#: js/blocks/MeterBlocks.js:161 +msgid "The Beats per minute block returns the current beats per minute." msgstr "" -#: js/BoxesBlocks.js:222 -msgid "subtract 1 from" -msgstr "〜から1引く" - -#: js/BoxesBlocks.js:270 -#: js/BoxesBlocks.js:387 -msgid "The Box block returns the value stored in a box." -msgstr "

すうちブロック


すうちブロックとして、箱のすうちを使う。" +#: js/blocks/MeterBlocks.js:169 +#: js/widgets/status.js:152 +#.TRANS: number of beats played per minute +msgid "beats per minute2" +msgstr "1分当たりの拍の数" -#: js/BoxesBlocks.js:500 -#: js/BoxesBlocks.js:576 -msgid "The Store in block will store a value in a box." -msgstr "

数の箱(あたいを入れる)


指定した箱に、指定したすうちを入れる。" +#: js/blocks/MeterBlocks.js:169 +#: js/blocks/MeterBlocks.js:1056 +#: js/blocks/MeterBlocks.js:1133 +#: js/blocks/MeterBlocks.js:1211 +#.TRANS: sets tempo by defining a beat and beats per minute +msgid "beats per minute" +msgstr "スピードを決める" -#: js/BoxesBlocks.js:652 -msgid "The Box2 block returns the value stored in Box2." -msgstr "" +#: js/blocks/MeterBlocks.js:233 +#.TRANS: count of current musical measure in meter +msgid "measure count" +msgstr "小節の数" -#: js/BoxesBlocks.js:703 -msgid "The Store in Box2 block is used to store a value in Box2." +#: js/blocks/MeterBlocks.js:241 +msgid "The Measure count block returns the current measure." msgstr "" -#: js/BoxesBlocks.js:715 -msgid "store in box2" -msgstr "箱2にすうちを入れる" +#: js/blocks/MeterBlocks.js:290 +#.TRANS: count of current beat in the meter +msgid "beat count" +msgstr "拍の位置" -#: js/BoxesBlocks.js:761 -msgid "The Box1 block returns the value stored in Box1." -msgstr "" +#: js/blocks/MeterBlocks.js:300 +#: js/blocks/MeterBlocks.js:311 +#: js/blocks/MeterBlocks.js:565 +#: js/blocks/MeterBlocks.js:576 +msgid "The Beat count block is the number of the current beat," +msgstr "

拍(はく)の位置ブロック


小節の中で何拍(はく)目かをあらわす数。たとえば、各小節の3拍(はく)めに何かアクション・イベントを起こしたいときなどに使う。" -#: js/BoxesBlocks.js:812 -msgid "The Store in Box1 block is used to store a value in Box1." -msgstr "" +#: js/blocks/MeterBlocks.js:313 +#: js/blocks/MeterBlocks.js:578 +msgid "eg 1, 2, 3, or 4." +msgstr "
図の例では、それぞれの小節の1拍(ぱく)目に、特定のアクション・イベントを起こしている。" -#: js/BoxesBlocks.js:826 -msgid "store in box1" -msgstr "箱1にすうちを入れる" +#: js/blocks/MeterBlocks.js:368 +#.TRANS: count the number of notes +msgid "sum note values" +msgstr "音の長さを足す" -#: js/HeapBlocks.js:49 -msgid "The Heap block returns the heap." +#: js/blocks/MeterBlocks.js:376 +#: js/blocks/MeterBlocks.js:440 +msgid "The Note counter block can be used to count the number of contained notes." msgstr "" -#: js/HeapBlocks.js:133 -msgid "show heap" -msgstr "ヒープを表示する" - -#: js/HeapBlocks.js:181 -msgid "The Heap-length block returns the length of the heap." -msgstr "" +#: js/blocks/MeterBlocks.js:432 +#.TRANS: count the number of notes +msgid "note counter" +msgstr "音符の合計数" -#: js/HeapBlocks.js:195 -msgid "heap length" -msgstr "ヒープの長さ" +#: js/blocks/MeterBlocks.js:496 +#.TRANS: number of whole notes that have been played +msgid "whole notes played" +msgstr "さいせいされた全音符の数" -#: js/HeapBlocks.js:254 -msgid "The Heap-empty? block returns true if the heap is empty." +#: js/blocks/MeterBlocks.js:505 +msgid "The Whole notes played block returns the total number of whole notes played." msgstr "" -#: js/HeapBlocks.js:268 -#.TRANS: Is the heap empty? -msgid "heap empty?" -msgstr "ヒープは空ですか?" +#: js/blocks/MeterBlocks.js:555 +#: js/turtleactions/DictActions.js:83 +#.TRANS: number of notes that have been played +msgid "notes played" +msgstr "全体の拍の数" -#: js/HeapBlocks.js:317 -msgid "The Empty-heap block empties the heap." -msgstr "" +#: js/blocks/MeterBlocks.js:653 +msgid "The No clock block decouples the notes from the master clock." +msgstr "クロックなしブロックはそれぞれの動作の順番をリズムより優先します。" -#: js/HeapBlocks.js:327 -#: js/HeapBlocks.js:647 -#.TRANS: empty the heap -msgid "empty heap" -msgstr "空のヒープ" +#: js/blocks/MeterBlocks.js:661 +#.TRANS: don't lock notes to master clock +msgid "no clock" +msgstr "クロックなし" -#: js/HeapBlocks.js:371 -msgid "The Reverse-heap block reverses the order of the heap." +#: js/blocks/MeterBlocks.js:700 +msgid "on weak beat do" +msgstr "弱拍に~する" + +#: js/blocks/MeterBlocks.js:705 +msgid "The On-weak-beat block lets you specify actions to take on weak (off) beats." msgstr "" -#: js/HeapBlocks.js:384 -#.TRANS: reverse the order of the heap -msgid "reverse heap" -msgstr "ヒープを逆にする" +#: js/blocks/MeterBlocks.js:750 +msgid "on strong beat" +msgstr "強拍に" -#: js/HeapBlocks.js:428 -msgid "The Index-heap block returns a value in the heap at a specified location." +#: js/blocks/MeterBlocks.js:758 +msgid "The On-strong-beat block lets you specify actions to take on specified beats." msgstr "" -#: js/HeapBlocks.js:443 -#.TRANS: retrieve a value from the heap at index position in the heap -msgid "index heap" -msgstr "ヒープに番号をふる" +#: js/blocks/MeterBlocks.js:769 +msgid "beat" +msgstr "拍子" -#: js/HeapBlocks.js:523 -msgid "The Set-heap entry block sets a value in he heap at the specified location." -msgstr "" +#: js/blocks/MeterBlocks.js:813 +msgid "on every beat do" +msgstr "全ての拍子にアクション実行" -#: js/HeapBlocks.js:619 -msgid "The Pop block removes the value at the top of the heap." +#: js/blocks/MeterBlocks.js:821 +msgid "The On-every-beat block lets you specify actions to take on every beat." msgstr "" -#: js/HeapBlocks.js:633 -#.TRANS: pop a value off the top of the heap -msgid "pop" -msgstr "ポップ" +#: js/blocks/MeterBlocks.js:874 +msgid "on every note do" +msgstr "全ての音符にアクション実行" -#: js/HeapBlocks.js:680 -msgid "The Push block adds a value to the top of the heap." +#: js/blocks/MeterBlocks.js:882 +msgid "The On-every-note block lets you specify actions to take on every note." msgstr "" -#: js/HeapBlocks.js:696 -#.TRANS: push a value onto the top of the heap -msgid "push" -msgstr "プッシュ" +#: js/blocks/MeterBlocks.js:928 +#: js/blocks/MeterBlocks.js:999 +#.TRANS: sets tempo by defining a beat and beats per minute +msgid "master beats per minute" +msgstr "全体のスピードを決める" -#: js/FlowBlocks.js:41 -msgid "The Backward block runs code in reverse order (Musical retrograde)." -msgstr "

実行ブロック(ぎゃく実行)


はさまれているブロックを、つうじょうとはぎゃくの順じょで、下から上に向かって実行する。" +#: js/blocks/MeterBlocks.js:952 +#: js/blocks/MeterBlocks.js:1078 +#: js/blocks/MeterBlocks.js:1135 +msgid "bpm" +msgstr "1分あたりの拍の数" -#: js/FlowBlocks.js:48 -msgid "backward" -msgstr "ぎゃく向きに実行" +#: js/blocks/MeterBlocks.js:952 +#: js/blocks/MeterBlocks.js:1078 +#: js/blocks/MeterBlocks.js:1135 +msgid "beat value" +msgstr "1拍" -#: js/FlowBlocks.js:124 -msgid "The Duplicate block will run each block multiple times." -msgstr "" +#: js/blocks/MeterBlocks.js:1024 +#: js/blocks/MeterBlocks.js:1167 +#: js/blocks/MeterBlocks.js:1241 +msgid "Beats per minute must be > 30." +msgstr "1分あたりの拍の数には、30より大きいあたいをせっていしてください。" -#: js/FlowBlocks.js:136 -msgid "duplicate" -msgstr "複製する" +#: js/blocks/MeterBlocks.js:1027 +#: js/blocks/MeterBlocks.js:1170 +#: js/blocks/MeterBlocks.js:1244 +msgid "Maximum beats per minute is 1000." +msgstr "1分あたりの拍の数は、最大1000です。" -#: js/FlowBlocks.js:334 -msgid "The Default block is used inside of a Switch to define the default action." -msgstr "" +#: js/blocks/MeterBlocks.js:1068 +msgid "The Beats per minute block sets the number of 1/4 notes per minute." +msgstr "

スピードを決めるブロック


1分あたりの拍(はく)の数をせっていすることで、曲のスピードを決める。ひょうじゅんは4分音符(おんぷ)90こ。

★拍(はく)とは
くり返されるリズムのこと。" -#: js/FlowBlocks.js:342 -msgid "default" -msgstr "ひょうじゅん" +#: js/blocks/MeterBlocks.js:1279 +#.TRANS: anacrusis +msgid "pickup" +msgstr "ピックアップ" -#: js/FlowBlocks.js:361 -#: js/FlowBlocks.js:418 -msgid "The Case Block must be used inside of a Switch Block." -msgstr "ケースブロックはスイッチブロックの中にある必要があります。" +#: js/blocks/MeterBlocks.js:1367 +msgid "number of beats" +msgstr "拍の数" -#: js/FlowBlocks.js:389 -msgid "The Case block is used inside of a Switch to define matches." +#: js/blocks/NumberBlocks.js:28 +msgid "The Int block returns an integer." msgstr "" -#: js/FlowBlocks.js:397 -msgid "case" -msgstr "ケース" +#: js/blocks/NumberBlocks.js:34 +msgid "int" +msgstr "整数に" -#: js/FlowBlocks.js:446 -msgid "The Switch block will run the code in the matching Case." +#: js/blocks/NumberBlocks.js:73 +msgid "The Mod block returns the remainder from a division." msgstr "" -#: js/FlowBlocks.js:454 -msgid "switch" -msgstr "スイッチ" +#: js/blocks/NumberBlocks.js:79 +msgid "mod" +msgstr "~で割った余り(mod)" -#: js/FlowBlocks.js:595 -msgid "The Stop block will stop a loop" +#: js/blocks/NumberBlocks.js:141 +msgid "The Power block calculates a power function." msgstr "" -#: js/FlowBlocks.js:597 -msgid "Forever, Repeat, While, or Until." +#: js/blocks/NumberBlocks.js:196 +msgid "The Sqrt block returns the square root." msgstr "" -#: js/FlowBlocks.js:604 -#: js/phrasemaker.js:3799 -#: js/musickeyboard.js:629 -#: js/musickeyboard.js:631 -#: js/timbre.js:417 -#: js/timbre.js:419 -#: plugins/rodi.rtp:29 -#: plugins/rodi.rtp:73 -#: plugins/rodi.rtp:413 -msgid "stop" -msgstr "止める" +#: js/blocks/NumberBlocks.js:202 +msgid "sqrt" +msgstr "平方根" -#: js/FlowBlocks.js:653 -msgid "The Waitfor block will wait until the condition is true." +#: js/blocks/NumberBlocks.js:248 +msgid "The Abs block returns the absolute value." msgstr "" -#: js/FlowBlocks.js:661 -msgid "wait for" -msgstr "を待つ" +#: js/blocks/NumberBlocks.js:254 +msgid "abs" +msgstr "絶対値" -#: js/FlowBlocks.js:732 -msgid "The Until block will repeat until the condition is true." +#: js/blocks/NumberBlocks.js:295 +msgid "The Distance block returns the distance between two points. For example, between the mouse and the center of the screen." msgstr "" -#: js/FlowBlocks.js:740 -msgid "until" -msgstr "までに" +#: js/blocks/NumberBlocks.js:301 +#: plugins/rodi.rtp:310 +msgid "distance" +msgstr "距離" -#: js/FlowBlocks.js:742 -#: js/FlowBlocks.js:822 -msgid "do2" -msgstr "~する" +#: js/blocks/NumberBlocks.js:361 +msgid "The Divide block is used to divide." +msgstr "

すうちブロック(計算)


2つのすうちの割り算した計算結果を表すすうちブロック。上につないだすうちを、下につないだすうちで割る。" -#: js/FlowBlocks.js:812 -msgid "The While block will repeat while the condition is true." -msgstr "" +#: js/blocks/NumberBlocks.js:441 +msgid "The Multiply block is used to multiply." +msgstr "

すうちブロック(計算)


2つのすうちを掛け合わせた計算結果を表すすうちブロック。" -#: js/FlowBlocks.js:820 -msgid "while" -msgstr "の間に" +#: js/blocks/NumberBlocks.js:612 +msgid "The Minus block is used to subtract." +msgstr "

すうちブロック(計算)


2つのすうちの引き算した計算結果を表すすうちブロック。上につないだすうちから、下につないだすうちを引く。" -#: js/FlowBlocks.js:903 -#: js/FlowBlocks.js:968 -#: js/FlowBlocks.js:979 -msgid "In this example if the mouse button is pressed a snare drum will play." -msgstr "

図の例では、もし、パソコンのマウスを長おししていれば「キックドラム」ブロックをえんそうする。" +#: js/blocks/NumberBlocks.js:723 +msgid "The Plus block is used to add." +msgstr "

すうちブロック(計算)


2つのすうちを足し合わせた計算結果を表すすうちブロック。" -#: js/FlowBlocks.js:925 -#: js/FlowBlocks.js:988 -msgid "if" -msgstr "もし" +#: js/blocks/NumberBlocks.js:849 +msgid "The One-of block returns one of two choices." +msgstr "

特殊ブロック(ランダム)


つないだ2つのブロックのうち、1つだけをランダムに選ぶ。「すうち」「アクション名」など、さまざまなブロックをつなぐことができる。

★ランダムとは
サイコロの目のように、何が出るか分からないすうちのこと。ランダム(random)は日本語で「らんすう」「でたらめな」という意味。ランダムを使うと、実行のたびにえんそう順じょが変わる曲などを作ることができる。" -#: js/FlowBlocks.js:927 -#: js/FlowBlocks.js:990 -msgid "then" -msgstr "ならば" +#: js/blocks/NumberBlocks.js:856 +#: js/blocks/PitchBlocks.js:616 +msgid "one of" +msgstr "どちらかランダム" -#: js/FlowBlocks.js:927 -msgid "else" -msgstr "でなければ" +#: js/blocks/NumberBlocks.js:858 +msgid "this" +msgstr "これか" -#: js/FlowBlocks.js:1025 -msgid "The Forever block will repeat the contained blocks forever." -msgstr "

実行ブロック(くり返し)


「ずっとくり返す」のブロックは、実行を停止しないかぎり、はさまれているブロックをくり返し実行する。" +#: js/blocks/NumberBlocks.js:858 +msgid "that" +msgstr "それか" -#: js/FlowBlocks.js:1037 -msgid "forever" -msgstr "ずっとくり返す" +#: js/blocks/NumberBlocks.js:913 +msgid "The Random block returns a random number." +msgstr "

すうちブロック(ランダム)


指定したさいしょうちからさいだいちまでのはんいで、ランダムなすうちになる。

★ランダムとは
サイコロの目のように、何が出るか分からないすうちのこと。ランダム(random)は日本語で「らんすう」「でたらめな」という意味。ランダムを使うと、実行のたびにえんそう順じょが変わる曲などを作ることができる。" -#: js/FlowBlocks.js:1073 -msgid "The Repeat block will repeat the contained blocks." -msgstr "

実行ブロック(くり返し)


はさまれているブロックのプログラムを、入力した回数だけくり返す。" +#: js/blocks/NumberBlocks.js:920 +msgid "random" +msgstr "ランダム" -#: js/FlowBlocks.js:1075 -msgid "In this example the note will be played 4 times." -msgstr "

図の例では、「ソ」の音が4回えんそうされる。" +#: js/blocks/NumberBlocks.js:922 +msgid "min" +msgstr "さいしょうち" -#: js/FlowBlocks.js:1083 -msgid "repeat" -msgstr "~回くり返す" +#: js/blocks/NumberBlocks.js:922 +msgid "max" +msgstr "さいだいち" -#: js/FlowBlocks.js:1123 -msgid "duplicate factor" -msgstr "複製ファクター" +#: js/blocks/NumberBlocks.js:986 +msgid "The Number block holds a number." +msgstr "

すうちブロック


すうちを指定するブロック。" -#: js/PitchBlocks.js:39 -#: js/musicutils.js:722 -#: js/musicutils.js:1117 -#: js/synthutils.js:112 -#.TRANS: square wave -msgid "square" -msgstr "四角の波" +#: js/blocks/OrnamentBlocks.js:32 +msgid "staccato factor" +msgstr "スタッカートの長さファクター" -#: js/PitchBlocks.js:62 -#: js/ToneBlocks.js:39 -#: js/musicutils.js:723 -#: js/musicutils.js:1118 -#: js/synthutils.js:116 -#.TRANS: triangle wave -msgid "triangle" -msgstr "三角の波" +#: js/blocks/OrnamentBlocks.js:108 +msgid "slur factor" +msgstr "スラーの長さファクター" -#: js/PitchBlocks.js:85 -#: js/musicutils.js:721 -#: js/musicutils.js:1116 -#: js/synthutils.js:110 -#.TRANS: sine wave -msgid "sine" -msgstr "サイン波" +#: js/blocks/OrnamentBlocks.js:217 +#: js/blocks/OrnamentBlocks.js:309 +#.TRANS: the neighbor refers to a neighboring note, e.g., D is a neighbor of C +msgid "neighbor" +msgstr "音を加える" -#: js/PitchBlocks.js:108 -#: js/musicutils.js:724 -#: js/musicutils.js:1119 -#: js/synthutils.js:114 -#.TRANS: sawtooth wave -msgid "sawtooth" -msgstr "ぎざぎざの波" +#: js/blocks/OrnamentBlocks.js:293 +msgid "The Neighbor block rapidly switches between neighboring pitches." +msgstr "

音を加えるブロック


2つの同じ高さの音のあいだに、音を1つ入れることができる。
図の例では、ソとソのあいだにラが入り、「ソラソ」とすばやくえんそうされる。

★音階とは
順番に並んだ音のまとまり。たとえば、「ド」を始まりの音にしたときの「ドレミファソラシド」、「ソ」を始まりの音にしたときの「ソラシドレミ(♯ファ)ソ」のこと。" -#: js/PitchBlocks.js:141 -#.TRANS: musical transposition (adjustment of pitch up or down) -msgid "transposition" -msgstr "移調" +#: js/blocks/OrnamentBlocks.js:364 +msgid "glide" +msgstr "グリッサンド" -#: js/PitchBlocks.js:168 -#.TRANS: step down one note in current musical scale -msgid "scalar step down" -msgstr "音階内で~度下がる:" +#: js/blocks/OrnamentBlocks.js:479 +#: js/blocks/OrnamentBlocks.js:643 +msgid "slur" +msgstr "スラー" -#: js/PitchBlocks.js:172 -msgid "The Scalar step down block returns the number of semi-tones down to the previous note in the current key and mode." -msgstr "" +#: js/blocks/OrnamentBlocks.js:558 +#: js/blocks/OrnamentBlocks.js:710 +#.TRANS: play each note sharply detached from the others +msgid "staccato" +msgstr "スタッカート" -#: js/PitchBlocks.js:190 -#.TRANS: step up one note in current musical scale -msgid "scalar step up" -msgstr "音階内で~度上がる:" +#: js/blocks/RhythmBlocks.js:182 +#: js/blocks/RhythmBlocks.js:1086 +#: js/blocks/RhythmBlocks.js:1162 +msgid "Note value must be greater than 0." +msgstr "音の長さは、0より大きいあたいをせっていしてください。" -#: js/PitchBlocks.js:194 -msgid "The Scalar step up block returns the number of semi-tones up to the next note in the current key and mode." -msgstr "" +#: js/blocks/RhythmBlocks.js:215 +#: js/blocks/RhythmBlocks.js:278 +#: js/blocks/RhythmBlocks.js:350 +#.TRANS: swing is a rhythmic variation that emphasises the offbeat +msgid "swing" +msgstr "スイング" -#: js/PitchBlocks.js:212 -#.TRANS: the change measured in half-steps between the current pitch and the previous pitch -msgid "change in pitch" -msgstr "音程の違い" +#: js/blocks/RhythmBlocks.js:355 +#.TRANS: the amount to shift to the offbeat note +msgid "swing value" +msgstr "スイングの数値" -#: js/PitchBlocks.js:216 -msgid "The Change in pitch block is the difference (in half steps) between the current pitch being played and the previous pitch played." -msgstr "音程の違いブロックは現在に鳴らされている音高と現在のちょうど前に鳴らされている音高(半音の値で)の違いです。" +#: js/blocks/RhythmBlocks.js:419 +msgid "The Skip notes block will cause notes to be skipped." +msgstr "" -#: js/PitchBlocks.js:243 -#.TRANS: the change measured in scale-steps between the current pitch and the previous pitch -msgid "scalar change in pitch" -msgstr "音階のよって音程の違い" +#: js/blocks/RhythmBlocks.js:427 +#.TRANS: substitute rests on notes being skipped +msgid "skip notes" +msgstr "音符の省略" -#: js/PitchBlocks.js:250 -#: js/PitchBlocks.js:432 -#: js/PitchBlocks.js:1629 -#: js/DictActions.js:89 -#: js/temperament.js:477 -#: js/temperament.js:481 -#: js/temperament.js:714 -#.TRANS: convert current note to piano key (1-88) -#.TRANS: a mapping of pitch to the 88 piano keys -msgid "pitch number" -msgstr "音の高さを数で表示" +#: js/blocks/RhythmBlocks.js:489 +#.TRANS: speed up note duration by some factor, e.g. convert 1/4 to 1/8 notes by using a factor of 2 +msgid "multiply note value" +msgstr "音価を~倍にするファクター" -#: js/PitchBlocks.js:256 -msgid "The Pitch number block is the value of the pitch of the note currently being played." -msgstr "

音の高さを数で表示ブロック


音の高さを数で表示する。
" +#: js/blocks/RhythmBlocks.js:542 +msgid "The Tie block works on pairs of notes, combining them into one note." +msgstr "

タイブロック


2つの音をつなげて1つの音にする。「音の高さブロック」を入れて使う。同じ高さの音だけ、つなぐことができる。" -#: js/PitchBlocks.js:329 -#: js/PitchBlocks.js:433 -#.TRANS: the current pitch expressed in Hertz -msgid "pitch in hertz" -msgstr "音の高さをヘルツで表示" +#: js/blocks/RhythmBlocks.js:550 +#.TRANS: tie notes together into one longer note +msgid "tie" +msgstr "タイ" -#: js/PitchBlocks.js:334 -msgid "The Pitch in Hertz block is the value in Hertz of the pitch of the note currently being played." -msgstr "

音の高さをヘルツで表示ブロック


音の高さをヘルツで表示する。
たとえば、オクターヴが4のラの音は、440ヘルツというすうちで表すことができる。

★ヘルツとは
音の高さを表す周波数。
★周波数とは
音が1秒間に何回しんどうするかを表すすうち。周波数が高い(すうちが大きい)ほど、音が高くなる。

" +#: js/blocks/RhythmBlocks.js:591 +#: js/blocks/RhythmBlocks.js:671 +#.TRANS: a dotted note is played for 1.5x its value, e.g., 1/8. --> 3/16 +msgid "dot" +msgstr "付点音符" -#: js/PitchBlocks.js:367 -#: js/DictActions.js:87 -msgid "current pitch" -msgstr "現代の音の高さ" +#: js/blocks/RhythmBlocks.js:619 +#: js/turtleactions/RhythmActions.js:221 +msgid "An argument of -1 results in a note value of 0." +msgstr "ー1は0の音価にします" -#: js/PitchBlocks.js:373 -msgid "The Current Pitch block is used with the Pitch Converter block. In the example above, current pitch, sol 4, is displayed as 392 hertz." +#: js/blocks/RhythmBlocks.js:661 +msgid "The Dot block extends the duration of a note by 50%." msgstr "" -#: js/PitchBlocks.js:410 -msgid "This block converts the pitch value of the last note played into different formats such as hertz, letter name, pitch number, et al." +#: js/blocks/RhythmBlocks.js:663 +msgid "Eg a dotted quarter note will play for 3/8 (1/4 + 1/8) of a beat." msgstr "" -#: js/PitchBlocks.js:434 -msgid "alphabet" -msgstr "アルファベット" - -#: js/PitchBlocks.js:436 -#.TRANS: Translate as "alphabet class" -msgid "letter class" -msgstr "アルファベット・クラス" - -#: js/PitchBlocks.js:437 -msgid "solfege class" -msgstr "階名" +#: js/blocks/RhythmBlocks.js:765 +#.TRANS: Japanese only: note value block for drum +msgid "note value drum" +msgstr "音符(ドラム)" -#: js/PitchBlocks.js:438 -msgid "staff y" -msgstr "音部記号のy座標" +#: js/blocks/RhythmBlocks.js:829 +msgid "392 hertz" +msgstr "392ヘルツ" -#: js/PitchBlocks.js:439 -msgid "solfege syllable" -msgstr "階名(ド、レ、ミ)" +#: js/blocks/RhythmBlocks.js:1119 +msgid "The Note block is a container for one or more Pitch blocks." +msgstr "

音符(おんぷ)ブロック


音の長さと高さをせっていする。長さを決め、「音の高さブロック」を入れて使う。" -#: js/PitchBlocks.js:440 -msgid "pitch class" -msgstr "ピッチ・クラス" +#: js/blocks/RhythmBlocks.js:1121 +msgid "The Note block specifies the duration (note value) of its contents." +msgstr "

「音の高さブロック」を2つ以上入れると、音を同時に出すことができる。" -#: js/PitchBlocks.js:441 -msgid "scalar class" -msgstr "音階クラス" +#: js/blocks/RhythmBlocks.js:1128 +#: js/blocks/PitchBlocks.js:974 +#: js/blocks/PitchBlocks.js:1007 +#: js/blocks/ProgramBlocks.js:1186 +#: js/blocks/ProgramBlocks.js:1227 +#: js/widgets/status.js:190 +#: js/widgets/temperament.js:464 +#: js/widgets/temperament.js:486 +#: js/widgets/temperament.js:496 +#: js/widgets/temperament.js:617 +#: plugins/rodi.rtp:192 +#.TRANS: a musical note consisting of pitch and duration +msgid "note" +msgstr "音符" -#: js/PitchBlocks.js:443 -msgid "nth degree" -msgstr "ピッチ度" +#: js/blocks/RhythmBlocks.js:1130 +msgid "value2" +msgstr "長さ" -#: js/PitchBlocks.js:444 -msgid "pitch to shade" -msgstr "音の高さををシェードに" +#: js/blocks/RhythmBlocks.js:1200 +msgid "define frequency" +msgstr "周波数を明確にする" -#: js/PitchBlocks.js:445 -msgid "pitch to color" -msgstr "音の高さを色に" +#: js/blocks/RhythmBlocks.js:1218 +#: js/widgets/temperament.js:787 +#: js/widgets/temperament.js:1587 +msgid "octave space" +msgstr "オクターヴ・スペース" -#: js/PitchBlocks.js:629 -#: js/musickeyboard.js:565 -#.TRANS: MIDI is a technical standard for electronic music -msgid "MIDI" +#: js/blocks/SensorsBlocks.js:36 +msgid "The Input block prompts for keyboard input." msgstr "" -#: js/PitchBlocks.js:642 -#.TRANS: set an offset associated with the numeric piano keyboard mapping -msgid "set pitch number offset" -msgstr "音高の数字を初期化" +#: js/blocks/SensorsBlocks.js:46 +msgid "input" +msgstr "インプット" -#: js/PitchBlocks.js:645 -msgid "The Set pitch number offset block is used to set the offset for mapping pitch numbers to pitch and octave." -msgstr "" +#: js/blocks/SensorsBlocks.js:64 +msgid "Input a value" +msgstr "価値をインプット" -#: js/PitchBlocks.js:679 -#.TRANS: convert piano key number (1-88) to pitch -msgid "number to pitch" -msgstr "数字を音名へ" +#: js/blocks/SensorsBlocks.js:126 +msgid "input value" +msgstr "インプットの価値" -#: js/PitchBlocks.js:682 -msgid "The Number to pitch block will convert a pitch number to a pich name." +#: js/blocks/SensorsBlocks.js:131 +msgid "The Input-value block stores the input." msgstr "" -#: js/PitchBlocks.js:715 -#.TRANS: convert piano key number (1-88) to octave -msgid "number to octave" -msgstr "数値をオクターヴ表記へ" +#: js/blocks/SensorsBlocks.js:238 +msgid "loudness" +msgstr "音量" -#: js/PitchBlocks.js:717 -msgid "The Number to octave block will convert a pitch number to an octave." +#: js/blocks/SensorsBlocks.js:245 +msgid "The Loudness block returns the volume detected by the microphone." msgstr "" -#: js/PitchBlocks.js:726 -msgid "y to pitch" -msgstr "音の高さをy座に" +#: js/blocks/SensorsBlocks.js:300 +msgid "click" +msgstr "クリック" -#: js/PitchBlocks.js:729 -msgid "Y to pitch block will convert a staff y position to corresponding pitch notation." +#: js/blocks/SensorsBlocks.js:306 +msgid "The Click block triggers an event if a mouse has been clicked." msgstr "" -#: js/PitchBlocks.js:841 -msgid "accidental selector" +#: js/blocks/SensorsBlocks.js:313 +msgid "The Click block triggers an event if a turtle has been clicked." msgstr "" -#: js/PitchBlocks.js:844 -msgid "The Accidental selector block is used to choose between double-sharp, sharp, natural, flat, and double-flat." -msgstr "変化記号セレクターブロックはダブルシャープ(重嬰)、シャープ(嬰)、ナチュラル(本位)、フラット(変)、ダブルフラット(重変)から選ぶことができます。" +#: js/blocks/SensorsBlocks.js:342 +msgid "cursor over" +msgstr "カーソル(上)" -#: js/PitchBlocks.js:858 -msgid "Pitch can be specified in terms of ni dha pa ma ga re sa." -msgstr "音の高さを、「sa、re、ga、ma、pa、dha、ni」の7つのインドのソルフェージュでせっていする。" +#: js/blocks/SensorsBlocks.js:387 +msgid "cursor out" +msgstr "カーソル(外)" -#: js/PitchBlocks.js:872 -msgid "Pitch can be specified in terms of C D E F G A B." -msgstr "

音の高さブロック


音の高さを、CDEFGABの7つのアルファベットでせっていする。たとえば、ドならばC、レならばDであらわされる。" +#: js/blocks/SensorsBlocks.js:433 +msgid "cursor button down" +msgstr "カーソルクリック(下)" -#: js/PitchBlocks.js:883 -msgid "solfege" -msgstr "" +#: js/blocks/SensorsBlocks.js:477 +msgid "cursor button up" +msgstr "カーソルクリック(上)" -#: js/PitchBlocks.js:886 -msgid "Pitch can be specified in terms of do re mi fa sol la ti." -msgstr "

音の高さブロック


音の高さを、ド、レ、ミ、ファ、ソ、ラ、シの7つのソルフェージュでせっていする。" +#: js/blocks/SensorsBlocks.js:521 +#: js/blocks/PenBlocks.js:48 +#: plugins/rodi.rtp:219 +msgid "blue" +msgstr "青" -#: js/PitchBlocks.js:920 -msgid "The Invert block rotates any contained notes around a target note." +#: js/blocks/SensorsBlocks.js:577 +#: js/blocks/PenBlocks.js:64 +#: plugins/rodi.rtp:218 +msgid "green" +msgstr "緑" + +#: js/blocks/SensorsBlocks.js:633 +#: js/blocks/PenBlocks.js:112 +#: plugins/rodi.rtp:217 +msgid "red" +msgstr "赤" + +#: js/blocks/SensorsBlocks.js:638 +msgid "The Get red block returns the red component of the pixel under the mouse." msgstr "" -#: js/PitchBlocks.js:927 -#.TRANS: pitch inversion rotates a pitch around another pitch -msgid "invert" -msgstr "両方向にずれる" +#: js/blocks/SensorsBlocks.js:644 +msgid "The Get red block returns the red component of the pixel under the turtle." +msgstr "" -#: js/PitchBlocks.js:929 -#: js/PitchBlocks.js:935 -#: js/PitchActions.js:727 -#: js/musicutils.js:726 -#: js/musicutils.js:902 -#.TRANS: invert based on even or odd number or musical scale -#.TRANS: even numbers -msgid "even" -msgstr "偶数" +#: js/blocks/SensorsBlocks.js:685 +#: plugins/rodi.rtp:216 +msgid "pixel color" +msgstr "ピクセルの色" -#: js/PitchBlocks.js:935 -#: js/PitchActions.js:729 -#: js/musicutils.js:728 -#: js/musicutils.js:903 -#.TRANS: odd numbers -msgid "odd" -msgstr "奇数" +#: js/blocks/SensorsBlocks.js:690 +msgid "The Get pixel block returns the color of the pixel under the mouse." +msgstr "" -#: js/PitchBlocks.js:935 -#: js/PitchActions.js:731 -#: js/musicutils.js:729 -#: js/musicutils.js:904 -msgid "scalar" -msgstr "音階的" +#: js/blocks/SensorsBlocks.js:696 +msgid "The Get pixel block returns the color of the pixel under the turtle." +msgstr "" -#: js/PitchBlocks.js:966 -#.TRANS: pitch inversion rotates a pitch around another pitch (odd number) -msgid "invert (odd)" -msgstr "転回を (奇数)" +#: js/blocks/SensorsBlocks.js:758 +msgid "time" +msgstr "時間" -#: js/PitchBlocks.js:999 -#.TRANS: pitch inversion rotates a pitch around another pitch (even number) -msgid "invert (even)" -msgstr "転回を (偶数)" +#: js/blocks/SensorsBlocks.js:804 +msgid "cursor y" +msgstr "yざひょうち(カーソル)" -#: js/PitchBlocks.js:1020 -#.TRANS: register is the octave of the current pitch -msgid "register" -msgstr "登録" +#: js/blocks/SensorsBlocks.js:809 +msgid "The Cursor Y block returns the vertical position of the mouse." +msgstr "

すうちブロック(カーソル)


マウスカーソルのたて位置を表すyざひょうち。
図の例は、ネズミを使って画面上に自由に線をえがけるプログラム。ネズミがパソコンのマウスカーソルの位置にいどうし続けつつ、マウスをおしているときだけペンをおろし、線をえがく。" -#: js/PitchBlocks.js:1024 -msgid "The Register block provides an easy way to modify the register (octave) of the notes that follow it." -msgstr "" +#: js/blocks/SensorsBlocks.js:845 +msgid "cursor x" +msgstr "xざひょうち(カーソル)" -#: js/PitchBlocks.js:1074 -msgid "The Semi-tone transposition block will shift the pitches contained inside Note blocks up (or down) by half steps." -msgstr "半音で移調ブロックは音符の中に入っている音高を上(または下)に、特定されている数字の値によって、半音ずつ移動します。" +#: js/blocks/SensorsBlocks.js:850 +msgid "The Cursor X block returns the horizontal position of the mouse." +msgstr "

すうちブロック(カーソル)


マウスカーソルの横位置を表すxざひょうち。
図の例は、ネズミを使って画面上に自由に線をえがけるプログラム。ネズミがパソコンのマウスカーソルの位置にいどうし続けつつ、マウスをおしているときだけペンをおろし、線をえがく。" -#: js/PitchBlocks.js:1076 -msgid "In the example shown above, sol is shifted up to sol#." -msgstr "例の画像にソルソル#に上に移動されています。" +#: js/blocks/SensorsBlocks.js:886 +msgid "mouse button" +msgstr "マウスボタン" -#: js/PitchBlocks.js:1082 -#.TRANS: adjust the amount of shift (up or down) of a pitch -msgid "semi-tone transpose" -msgstr "半音で移調" +#: js/blocks/SensorsBlocks.js:888 +msgid "The Mouse-button block returns True if the mouse button is pressed." +msgstr "

真偽ブロック(マウスボタン)


マウスのボタンがおされているかどうかはんていする。マウスボタンがおされていれば「真(しん)」、おされていなければ「偽(ぎ)」という値になる。
図の例は、ネズミを使って画面上に自由に線をえがけるプログラム。ネズミがパソコンのマウスカーソルの位置にいどうし続けつつ、マウスをおしているときだけペンをおろし、線をえがく。

★しんぎブロックとは
「もし~ならば」などのじょうけんブロックを動かすために必要なブロック。
「もし~ならば」は、せいかくに表現すると、「もし~というじょうけんが正しいならば、次のブロックを実行する」という意味である。しんぎブロックは不等式などによるひかくが「正しい(真)」か、「正しくない(偽)」かの結果を表し、「もし~ならば」に続くブロックを実行するかどうか決める。" -#: js/PitchBlocks.js:1115 -msgid "The Transpose by Ratio block will shift the pitches contained inside Note blocks up (or down) by a ratio" -msgstr "「比で移動」ブロックは 音符の中のピッチを比で移動させる。" +#: js/blocks/SensorsBlocks.js:934 +msgid "to ASCII" +msgstr "ASCIIに" -#: js/PitchBlocks.js:1121 -#.TRANS: adjust the amount of shift (up or down) of a pitch -msgid "transpose by ratio" -msgstr "比で移動" +#: js/blocks/SensorsBlocks.js:938 +msgid "The To ASCII block converts numbers to letters." +msgstr "" -#: js/PitchBlocks.js:1204 -#.TRANS: down sixth means the note is five scale degrees below current note -msgid "down sixth" -msgstr "音階で6度下" +#: js/blocks/SensorsBlocks.js:1005 +msgid "The Keyboard block returns computer keyboard input." +msgstr "" -#: js/PitchBlocks.js:1223 -#.TRANS: down third means the note is two scale degrees below current note -msgid "down third" -msgstr "音階で3度下" +#: js/blocks/RhythmBlockPaletteBlocks.js:50 +#: js/blocks/RhythmBlockPaletteBlocks.js:233 +#.TRANS: rhythm block +#.TRANS: translate "rhythm1" as rhythm +msgid "rhythm1" +msgstr "連符(かけ算)" -#: js/PitchBlocks.js:1242 -#.TRANS: seventh means the note is the six scale degrees above current note -msgid "seventh" -msgstr "7度の音" +#: js/blocks/RhythmBlockPaletteBlocks.js:70 +#: js/blocks/RhythmBlockPaletteBlocks.js:252 +#: js/blocks/RhythmBlockPaletteBlocks.js:485 +#: js/blocks/RhythmBlockPaletteBlocks.js:554 +#: js/blocks/RhythmBlockPaletteBlocks.js:875 +msgid "number of notes" +msgstr "音符の数" -#: js/PitchBlocks.js:1261 -#.TRANS: sixth means the note is the five scale degrees above current note -msgid "sixth" -msgstr "6度の音" +#: js/blocks/RhythmBlockPaletteBlocks.js:126 +msgid "polyphonic rhythm" +msgstr "ポリリズム" -#: js/PitchBlocks.js:1280 -#.TRANS: fifth means the note is the four scale degrees above current note -msgid "fifth" -msgstr "5度の音" +#: js/blocks/RhythmBlockPaletteBlocks.js:219 +msgid "The Rhythm block is used to generate rhythm patterns." +msgstr "

連符(れんぷ)ブロック(かけ算)


まとまったいくつかの音符(おんぷ)。一定の長さの音を3つや5つなどくり返して使う。3連符(れんぷ)や5連符(れんぷ)など、2の倍数ではない音符(おんぷ)の数でグループを作りやすくなる。" -#: js/PitchBlocks.js:1300 -#.TRANS: fourth means the note is three scale degrees above current note -msgid "fourth" -msgstr "4度の音" +#: js/blocks/RhythmBlockPaletteBlocks.js:280 +msgid "1/64 note" +msgstr "64分音符" -#: js/PitchBlocks.js:1319 -#.TRANS: third means the note is two scale degrees above current note -msgid "third" -msgstr "3度の音" +#: js/blocks/RhythmBlockPaletteBlocks.js:304 +msgid "1/32 note" +msgstr "32分音符" -#: js/PitchBlocks.js:1338 -#.TRANS: second means the note is one scale degree above current note -msgid "second" -msgstr "2度の音" +#: js/blocks/RhythmBlockPaletteBlocks.js:332 +msgid "1/16 note" +msgstr "16分音符" -#: js/PitchBlocks.js:1379 -msgid "The Scalar transposition block will shift the pitches contained inside Note blocks up (or down) the scale." -msgstr "

調を変えるブロック


「音符ブロック」内の音の高さを、すべて(音階内で、せっていしたすうち分だけ)上げる、または下げる。" +#: js/blocks/RhythmBlockPaletteBlocks.js:360 +msgid "eighth note" +msgstr "8分音符" -#: js/PitchBlocks.js:1381 -msgid "In the example shown above, sol is shifted up to la." -msgstr "

図の例では、ソがラに、ラがシに、シがドに…と置きかえられている。

★音階とは
順番に並んだ音のまとまり。たとえば、「ド」を始まりの音にしたときの「ドレミファソラシド」、「ソ」を始まりの音にしたときの「ソラシドレミ(♯ファ)ソ」のこと。
★調とは
中心的な役わりをはたす音と、音階の種類によって決まる、曲の感じ。中心的な役わりをはたす音だけを指すこともある。" +#: js/blocks/RhythmBlockPaletteBlocks.js:388 +msgid "quarter note" +msgstr "4分音符" -#: js/PitchBlocks.js:1388 -#.TRANS: adjust the amount of shift (up or down) of a pitch by musical scale (scalar) steps -msgid "scalar transpose" -msgstr "調を変える" +#: js/blocks/RhythmBlockPaletteBlocks.js:416 +msgid "half note" +msgstr "2分音符" -#: js/PitchBlocks.js:1423 -msgid "The Accidental block is used to create sharps and flats" -msgstr "変化記号ブロックは シャープ(嬰)フラット(変)を決める機能です。" +#: js/blocks/RhythmBlockPaletteBlocks.js:444 +msgid "whole note" +msgstr "全音符" -#: js/PitchBlocks.js:1430 -#.TRANS: An accidental is a modification to a pitch, e.g., sharp or flat. -msgid "accidental override" -msgstr "変化記号無視" +#: js/blocks/RhythmBlockPaletteBlocks.js:482 +#: js/blocks/RhythmBlockPaletteBlocks.js:551 +#: js/blocks/RhythmBlockPaletteBlocks.js:602 +#.TRANS: A tuplet is a note value divided into irregular time values. +msgid "tuplet" +msgstr "~連符(タプル)" -#: js/PitchBlocks.js:1543 -msgid "The Hertz block (in combination with a Number block) will play a sound at the specified frequency." -msgstr "

ヘルツブロック


音の高さをヘルツ(周波数の単位)でせっていする。「すうちブロック」を組み合わせて使う。

★ヘルツとは
音の高さを表す周波数。
★周波数とは
音が1秒間に何回しんどうするかを表すすうち。周波数が高い(すうちが大きい)ほど、音が高くなる。

" +#: js/blocks/RhythmBlockPaletteBlocks.js:768 +msgid "septuplet" +msgstr "7連符" -#: js/PitchBlocks.js:1633 -msgid "The Pitch Number block will play a pitch associated by its number, e.g. 0 for C and 7 for G." -msgstr "" +#: js/blocks/RhythmBlockPaletteBlocks.js:796 +msgid "quintuplet" +msgstr "5連符" -#: js/PitchBlocks.js:1665 -#: js/PitchBlocks.js:1707 -#.TRANS: a numeric mapping of the notes in an octave based on the musical mode -#.TRANS: a numeric mapping of the notes in an octave based on the musical mode -msgid "nth modal pitch" -msgstr "ピッチ度" +#: js/blocks/RhythmBlockPaletteBlocks.js:824 +msgid "triplet" +msgstr "3連符" -#: js/PitchBlocks.js:1668 -msgid "n^th Modal Pitch takes the pattern of pitches in semitones for a mode and makes each point a degree of the mode," -msgstr "" +#: js/blocks/RhythmBlockPaletteBlocks.js:851 +msgid "simple tuplet" +msgstr "連符(わり算)" -#: js/PitchBlocks.js:1670 -msgid "starting from 1 and regardless of tonal framework (i.e. not always 8 notes in the octave)" -msgstr "" +#: js/blocks/RhythmBlockPaletteBlocks.js:861 +msgid "Tuplets are a collection of notes that get scaled to a specific duration." +msgstr "

連符(れんぷ)ブロック(わり算)


まとまったいくつかの音符(おんぷ)。一定の長さの音を3つや5つに等分して使う。" -#: js/PitchBlocks.js:1711 -msgid "N^th Modal Pitch takes a number as an input as the n^th degree for the given mode. 0 is the first position, 1 is the second, -1 is the note before the first etc." +#: js/blocks/DrumBlocks.js:59 +msgid "The Noise name block is used to select a noise synthesizer." msgstr "" -#: js/PitchBlocks.js:1713 -msgid "The pitches change according to the mode specified without any need for respellings." -msgstr "" +#: js/blocks/DrumBlocks.js:102 +msgid "The Drum name block is used to select a drum." +msgstr "

ドラムブロック


ドラムの種類を変えるときに使う。クリックで、いろいろなドラムの音を選ぶことができる。" -#: js/PitchBlocks.js:1752 -msgid "Scale Degree is a common convention in music. Scale Degree offers seven possible positions in the scale (1-7) and can be modified via accidentals." +#: js/blocks/DrumBlocks.js:146 +msgid "The Effects name block is used to select a sound effect." +msgstr "

こうかおんブロック


こうかおんの種類を変えるときに使う。クリックで、いろいろなおもしろい音を選ぶことができる。" + +#: js/blocks/DrumBlocks.js:163 +msgid "noise" +msgstr "ノイズ" + +#: js/blocks/DrumBlocks.js:177 +msgid "The Play noise block will generate white, pink, or brown noise." msgstr "" -#: js/PitchBlocks.js:1754 -msgid "Scale Degree 1 is always the first pitch in a given scale, regardless of octave." +#: js/blocks/DrumBlocks.js:317 +msgid "Replace every instance of a pitch with a drum sound." msgstr "" -#: js/PitchBlocks.js:1776 -#.TRANS: step some number of notes in current musical scale -msgid "scalar step" -msgstr "音階内を上る/下りる" +#: js/blocks/DrumBlocks.js:328 +#.TRANS: map a pitch to a drum sound +msgid "map pitch to drum" +msgstr "音符をドラムに変える" -#: js/PitchBlocks.js:1781 -msgid "The Scalar Step block (in combination with a Number block) will play the next pitch in a scale," -msgstr "

音階内を上る/下りるブロック


音階内を順番に(ある一定のかんかくで)上りながら、または下りながら音をえんそうする。すうちをせっていすることで、次の音は前の音といくつちがうかが決まる。
たとえば、すうちを1にせっていした場合、ソの次にはラ(ソの1音上)、ファの次にはソ(ファの1音上)がえんそうされる。

★音階とは
順番に並んだ音のまとまり。" +#: js/blocks/DrumBlocks.js:395 +msgid "In the example above, a kick drum sound will be played instead of sol." +msgstr "例の画像にソルの代わりにキックドラムが鳴らします。" + +#: js/blocks/DrumBlocks.js:407 +#.TRANS: set the current drum sound for playback +msgid "set drum" +msgstr "ドラムをせってい" -#: js/PitchBlocks.js:1783 -msgid "eg if the last note played was sol, Scalar Step 1 will play la." -msgstr "

たとえば、「ド」を始まりの音にしたときの「ドレミファソラシド」、「ソ」を始まりの音にしたときの「ソラシドレミ(♯ファ)ソ」のこと。
" +#: js/blocks/DrumBlocks.js:451 +msgid "sound effect" +msgstr "こうかおん" -#: js/PitchBlocks.js:1818 -msgid "The Pitch block specifies the pitch name and octave of a note that together determine the frequency of the note." -msgstr "

音の高さブロック


音の高さをせっていする。名前とオクターヴの高さを決めて使う。音の周波数も同時に決まる。

★周波数とは
音が1秒間に何回しんどうするかを表すすうち。周波数が高い(すうちが大きい)ほど、音が高くなる。
★オクターヴの高さとは
同じ名前でも高さがちがう音を表すすうち。

" +#: js/blocks/DrumBlocks.js:489 +msgid "You can use multiple Drum blocks within a Note block." +msgstr "

ドラムブロック


「音符(おんぷ)ブロック」のなかに入れて使う。色々なドラムの音色を選ぶことができる。1つの「音符(おんぷ)ブロック」の中でふくすうの音色のドラムを組み合わせて使うことができる。" -#: js/GraphicsBlocks.js:46 -#: js/DictActions.js:77 -#: js/DictActions.js:155 -#: js/DictActions.js:189 +#: js/blocks/GraphicsBlocks.js:46 +#: js/turtleactions/DictActions.js:77 +#: js/turtleactions/DictActions.js:144 +#: js/turtleactions/DictActions.js:173 msgid "heading" msgstr "向き(ネズミ)" -#: js/GraphicsBlocks.js:56 +#: js/blocks/GraphicsBlocks.js:56 msgid "The Heading block returns the orientation of the mouse." msgstr "

すうちブロック


ネズミの向いている角度を表すすうちブロック。向きの値は、0以上で、360より小さい値になり、プラスだと右回り、マイナスだと左回りに変化する。" -#: js/GraphicsBlocks.js:62 +#: js/blocks/GraphicsBlocks.js:62 msgid "The Heading block returns the orientation of the turtle." msgstr "" -#: js/GraphicsBlocks.js:133 +#: js/blocks/GraphicsBlocks.js:133 msgid "The Y block returns the vertical position of the mouse." msgstr "

すうちブロック


ネズミのyざひょう(たて方向の位置)を表すすうちブロック。

★ざひょうとは
物の位置を表すためのすうちのこと。ミュージック・ブロックスでは、2つ1組みのすうち(ざひょう)を使う。画面上のネズミの位置は、ほうがん用紙のマス目のように、よこ方向の目もり(xざひょう)とたて方向の目もり(yざひょう)を使って表す。" -#: js/GraphicsBlocks.js:140 +#: js/blocks/GraphicsBlocks.js:140 msgid "The Y block returns the vertical position of the turtle." msgstr "" -#: js/GraphicsBlocks.js:149 +#: js/blocks/GraphicsBlocks.js:149 msgid "y3" msgstr "yざひょうち(ネズミ)" -#: js/GraphicsBlocks.js:219 +#: js/blocks/GraphicsBlocks.js:219 msgid "The X block returns the horizontal position of the mouse." msgstr "

すうちブロック


ネズミのxざひょう(よこ方向の位置)を表すすうちブロック。

★ざひょうとは
物の位置を表すためのすうちのこと。ミュージック・ブロックスでは、2つ1組みのすうち(ざひょう)を使う。画面上のネズミの位置は、ほうがん用紙のマス目のように、よこ方向の目もり(xざひょう)とたて方向の目もり(yざひょう)を使って表す。" -#: js/GraphicsBlocks.js:226 +#: js/blocks/GraphicsBlocks.js:226 msgid "The X block returns the horizontal position of the turtle." msgstr "" -#: js/GraphicsBlocks.js:235 +#: js/blocks/GraphicsBlocks.js:235 msgid "x3" msgstr "xざひょうち(ネズミ)" -#: js/GraphicsBlocks.js:295 +#: js/blocks/GraphicsBlocks.js:295 msgid "scroll xy" msgstr "カンバスを動かす" -#: js/GraphicsBlocks.js:303 +#: js/blocks/GraphicsBlocks.js:303 msgid "The Scroll XY block moves the canvas." msgstr "

いどうブロック(カンバス)


カンバスを上下左右にいどうさせる。カンバスだけがいどうするので結果的に、画面上のすべてのネズミが同時にいどうするように見える。カンバスを右(プラス)にいどうするとネズミは左へ、左(マイナス)にいどうするとネズミは右に動いて見える。同じく、カンバスを上(プラス)にいどうするとネズミは下へ、下(マイナス)にいどうするとネズミは上に動いて見える。" -#: js/GraphicsBlocks.js:313 +#: js/blocks/GraphicsBlocks.js:313 msgid "x2" msgstr "よこいどう" -#: js/GraphicsBlocks.js:313 +#: js/blocks/GraphicsBlocks.js:313 msgid "y2" msgstr "たていどう" -#: js/GraphicsBlocks.js:373 -#: js/temperament.js:213 -#: js/temperament.js:241 +#: js/blocks/GraphicsBlocks.js:373 +#: js/widgets/temperament.js:319 +#: js/widgets/temperament.js:347 msgid "clear" msgstr "もとにもどす" -#: js/GraphicsBlocks.js:426 +#: js/blocks/GraphicsBlocks.js:426 msgid "The Control-point 2 block sets the second control point for the Bezier curve." msgstr "" -#: js/GraphicsBlocks.js:433 +#: js/blocks/GraphicsBlocks.js:433 msgid "control point 2" msgstr "コントロール点2" -#: js/GraphicsBlocks.js:436 -#: js/GraphicsBlocks.js:487 -#: js/GraphicsBlocks.js:534 -#: js/GraphicsBlocks.js:750 +#: js/blocks/GraphicsBlocks.js:436 +#: js/blocks/GraphicsBlocks.js:487 +#: js/blocks/GraphicsBlocks.js:534 +#: js/blocks/GraphicsBlocks.js:750 msgid "x1" msgstr "xざひょう(ネズミ)" -#: js/GraphicsBlocks.js:436 -#: js/GraphicsBlocks.js:487 -#: js/GraphicsBlocks.js:534 -#: js/GraphicsBlocks.js:750 +#: js/blocks/GraphicsBlocks.js:436 +#: js/blocks/GraphicsBlocks.js:487 +#: js/blocks/GraphicsBlocks.js:534 +#: js/blocks/GraphicsBlocks.js:750 msgid "y1" msgstr "yざひょう(ネズミ)" -#: js/GraphicsBlocks.js:477 +#: js/blocks/GraphicsBlocks.js:477 msgid "The Control-point 1 block sets the first control point for the Bezier curve." msgstr "" -#: js/GraphicsBlocks.js:484 +#: js/blocks/GraphicsBlocks.js:484 msgid "control point 1" msgstr "コントロール点1" -#: js/GraphicsBlocks.js:527 +#: js/blocks/GraphicsBlocks.js:527 msgid "The Bezier block draws a Bezier curve." msgstr "" -#: js/GraphicsBlocks.js:531 +#: js/blocks/GraphicsBlocks.js:531 msgid "bezier" msgstr "ベジェ曲線" -#: js/GraphicsBlocks.js:592 +#: js/blocks/GraphicsBlocks.js:592 msgid "The Arc block moves the turtle in an arc." msgstr "" -#: js/GraphicsBlocks.js:600 +#: js/blocks/GraphicsBlocks.js:600 msgid "arc" msgstr "円をえがいていどう" -#: js/GraphicsBlocks.js:603 +#: js/blocks/GraphicsBlocks.js:603 msgid "angle" msgstr "角度" -#: js/GraphicsBlocks.js:603 +#: js/blocks/GraphicsBlocks.js:603 msgid "radius" msgstr "半径" -#: js/GraphicsBlocks.js:620 -#: js/GraphicsBlocks.js:767 -#: js/GraphicsBlocks.js:1010 -#: js/GraphicsBlocks.js:1093 +#: js/blocks/GraphicsBlocks.js:620 +#: js/blocks/GraphicsBlocks.js:767 +#: js/blocks/GraphicsBlocks.js:1010 +#: js/blocks/GraphicsBlocks.js:1093 msgid "Value must be within -5000 to 5000 when Wrap Mode is off." msgstr "" -#: js/GraphicsBlocks.js:622 -#: js/GraphicsBlocks.js:769 -#: js/GraphicsBlocks.js:1012 -#: js/GraphicsBlocks.js:1095 +#: js/blocks/GraphicsBlocks.js:622 +#: js/blocks/GraphicsBlocks.js:769 +#: js/blocks/GraphicsBlocks.js:1012 +#: js/blocks/GraphicsBlocks.js:1095 msgid "Value must be within -20000 to 20000 when Wrap Mode is on." msgstr "" -#: js/GraphicsBlocks.js:660 +#: js/blocks/GraphicsBlocks.js:660 msgid "set heading" msgstr "向きを変える" -#: js/GraphicsBlocks.js:673 +#: js/blocks/GraphicsBlocks.js:673 msgid "The Set heading block sets the heading of the turtle." msgstr "

いどうブロック


タートルの向きを、指定したすうちの角度に変える。" -#: js/GraphicsBlocks.js:733 +#: js/blocks/GraphicsBlocks.js:733 msgid "The Set XY block moves the mouse to a specific position on the screen." msgstr "

いどうブロック


ネズミの位置を、指定したざひょうにいどうさせる。

★ざひょうとは
物の位置を表すためのすうちのこと。ミュージック・ブロックスでは、2つ1組みのすうち(ざひょう)を使う。画面上のネズミの位置は、ほうがん用紙のマス目のように、よこ方向の目もり(xざひょう)とたて方向の目もり(yざひょう)を使って表す。" -#: js/GraphicsBlocks.js:739 +#: js/blocks/GraphicsBlocks.js:739 msgid "The Set XY block moves the turtle to a specific position on the screen." msgstr "

いどうブロック


タートルの位置を、指定したざひょうにいどうさせる。

★ざひょうとは
物の位置を表すためのすうちのこと。ミュージック・ブロックスでは、2つ1組みのすうち(ざひょう)を使う。画面上のタートルの位置は、ほうがん用紙のマス目のように、よこ方向の目もり(xざひょう)とたて方向の目もり(yざひょう)を使って表す。" -#: js/GraphicsBlocks.js:747 +#: js/blocks/GraphicsBlocks.js:747 msgid "set xy" msgstr "指定ざひょうにいどう" -#: js/GraphicsBlocks.js:819 +#: js/blocks/GraphicsBlocks.js:819 msgid "The Right block turns the mouse to the right." msgstr "

いどうブロック


ネズミの向きを、指定したすうちの角度で右回りに回転させる。" -#: js/GraphicsBlocks.js:826 +#: js/blocks/GraphicsBlocks.js:826 msgid "The Right block turns the turtle to the right." msgstr "

いどうブロック


タートルの向きを、指定したすうちの角度で右回りに回転させる。" -#: js/GraphicsBlocks.js:835 +#: js/blocks/GraphicsBlocks.js:835 msgid "right1" msgstr "右を向く" -#: js/GraphicsBlocks.js:835 +#: js/blocks/GraphicsBlocks.js:835 #: plugins/rodi.rtp:77 #: plugins/rodi.rtp:340 #: plugins/rodi.rtp:375 msgid "right" msgstr "ざひょうち(右)" -#: js/GraphicsBlocks.js:899 +#: js/blocks/GraphicsBlocks.js:899 msgid "The Left block turns the mouse to the left." msgstr "

いどうブロック


ネズミの向きを、指定したすうちの角度で左回りに回転させる。" -#: js/GraphicsBlocks.js:906 +#: js/blocks/GraphicsBlocks.js:906 msgid "The Left block turns the turtle to the left." msgstr "

いどうブロック


タートルの向きを、指定したすうちの角度で左回りに回転させる。" -#: js/GraphicsBlocks.js:915 +#: js/blocks/GraphicsBlocks.js:915 msgid "left1" msgstr "左を向く" -#: js/GraphicsBlocks.js:915 +#: js/blocks/GraphicsBlocks.js:915 #: plugins/rodi.rtp:79 #: plugins/rodi.rtp:339 #: plugins/rodi.rtp:362 msgid "left" msgstr "ざひょうち(左)" -#: js/GraphicsBlocks.js:967 -#: js/temperament.js:734 -#: js/temperament.js:933 +#: js/blocks/GraphicsBlocks.js:967 +#: js/widgets/temperament.js:875 +#: js/widgets/temperament.js:1078 #: plugins/rodi.rtp:69 #: plugins/rodi.rtp:387 msgid "back" msgstr "後ろへ進む" -#: js/GraphicsBlocks.js:976 +#: js/blocks/GraphicsBlocks.js:976 msgid "The Back block moves the mouse backward." msgstr "

いどうブロック


指定したすうち分、ネズミを後ろにもどす。体の向きは変えない。" -#: js/GraphicsBlocks.js:983 +#: js/blocks/GraphicsBlocks.js:983 msgid "The Back block moves the turtle backward." msgstr "

いどうブロック


指定したすうち分、タートルを後ろにもどす。体の向きは変えない。" -#: js/GraphicsBlocks.js:1050 +#: js/blocks/GraphicsBlocks.js:1050 #: plugins/rodi.rtp:71 #: plugins/rodi.rtp:400 msgid "forward" msgstr "前へ進む" -#: js/GraphicsBlocks.js:1059 +#: js/blocks/GraphicsBlocks.js:1059 msgid "The Forward block moves the mouse forward." msgstr "

いどうブロック


指定したすうち分、ネズミを前に進める。" -#: js/GraphicsBlocks.js:1066 +#: js/blocks/GraphicsBlocks.js:1066 msgid "The Forward block moves the turtle forward." msgstr "

いどうブロック


指定したすうち分、タートルを前に進める。" -#: js/GraphicsBlocks.js:1154 -#: js/GraphicsBlocks.js:1172 +#: js/blocks/GraphicsBlocks.js:1154 +#: js/blocks/GraphicsBlocks.js:1172 msgid "wrap" msgstr "巻きつける" -#: js/OrnamentBlocks.js:32 -msgid "staccato factor" -msgstr "スタッカートの長さファクター" - -#: js/OrnamentBlocks.js:108 -msgid "slur factor" -msgstr "スラーの長さファクター" - -#: js/OrnamentBlocks.js:217 -#: js/OrnamentBlocks.js:309 -#.TRANS: the neighbor refers to a neighboring note, e.g., D is a neighbor of C -msgid "neighbor" -msgstr "音を加える" - -#: js/OrnamentBlocks.js:293 -msgid "The Neighbor block rapidly switches between neighboring pitches." -msgstr "

音を加えるブロック


2つの同じ高さの音のあいだに、音を1つ入れることができる。
図の例では、ソとソのあいだにラが入り、「ソラソ」とすばやくえんそうされる。

★音階とは
順番に並んだ音のまとまり。たとえば、「ド」を始まりの音にしたときの「ドレミファソラシド」、「ソ」を始まりの音にしたときの「ソラシドレミ(♯ファ)ソ」のこと。" - -#: js/OrnamentBlocks.js:364 -msgid "glide" -msgstr "グリッサンド" - -#: js/OrnamentBlocks.js:479 -#: js/OrnamentBlocks.js:643 -msgid "slur" -msgstr "スラー" - -#: js/OrnamentBlocks.js:558 -#: js/OrnamentBlocks.js:710 -#.TRANS: play each note sharply detached from the others -msgid "staccato" -msgstr "スタッカート" - -#: js/PenBlocks.js:24 +#: js/blocks/PenBlocks.js:30 msgid "purple" msgstr "紫" -#: js/PenBlocks.js:37 -#: js/SensorsBlocks.js:521 -#: plugins/rodi.rtp:219 -msgid "blue" -msgstr "青" - -#: js/PenBlocks.js:50 -#: js/SensorsBlocks.js:577 -#: plugins/rodi.rtp:218 -msgid "green" -msgstr "緑" - -#: js/PenBlocks.js:63 +#: js/blocks/PenBlocks.js:80 msgid "yellow" msgstr "黄色" -#: js/PenBlocks.js:76 +#: js/blocks/PenBlocks.js:96 #: plugins/nutrition.rtp:164 msgid "orange" msgstr "オレンジ" -#: js/PenBlocks.js:89 -#: js/SensorsBlocks.js:633 -#: plugins/rodi.rtp:217 -msgid "red" -msgstr "赤" - -#: js/PenBlocks.js:102 +#: js/blocks/PenBlocks.js:128 msgid "white" msgstr "白" -#: js/PenBlocks.js:115 +#: js/blocks/PenBlocks.js:144 msgid "black" msgstr "黒" -#: js/PenBlocks.js:128 +#: js/blocks/PenBlocks.js:163 msgid "begin fill" msgstr "記入を始める" -#: js/PenBlocks.js:143 +#: js/blocks/PenBlocks.js:190 msgid "end fill" msgstr "記入を終わらせる" -#: js/PenBlocks.js:159 -#: js/PenBlocks.js:386 +#: js/blocks/PenBlocks.js:212 +#: js/blocks/PenBlocks.js:560 #.TRANS: set the background color msgid "background" msgstr "背景" -#: js/PenBlocks.js:206 -#: js/DictActions.js:71 -#: js/DictActions.js:149 -#: js/DictActions.js:186 +#: js/blocks/PenBlocks.js:274 +#: js/turtleactions/DictActions.js:71 +#: js/turtleactions/DictActions.js:138 +#: js/turtleactions/DictActions.js:170 msgid "grey" msgstr "灰色" -#: js/PenBlocks.js:210 +#: js/blocks/PenBlocks.js:282 msgid "The Grey block returns the current pen grey value." msgstr "" -#: js/PenBlocks.js:243 -#: js/DictActions.js:69 -#: js/DictActions.js:147 -#: js/DictActions.js:185 +#: js/blocks/PenBlocks.js:340 +#: js/turtleactions/DictActions.js:69 +#: js/turtleactions/DictActions.js:136 +#: js/turtleactions/DictActions.js:169 msgid "shade" msgstr "シェード" -#: js/PenBlocks.js:247 +#: js/blocks/PenBlocks.js:347 msgid "The Shade block returns the current pen shade value." msgstr "" -#: js/PenBlocks.js:280 -#: js/DictActions.js:67 -#: js/DictActions.js:145 -#: js/DictActions.js:184 +#: js/blocks/PenBlocks.js:405 +#: js/turtleactions/DictActions.js:67 +#: js/turtleactions/DictActions.js:134 +#: js/turtleactions/DictActions.js:168 msgid "color" msgstr "いろ" -#: js/PenBlocks.js:285 +#: js/blocks/PenBlocks.js:415 msgid "The Color block returns the current pen color." msgstr "

ペンブロック


げんざいのペンの色を、すうちでひょうじする。" -#: js/PenBlocks.js:318 -#: js/DictActions.js:73 -#: js/DictActions.js:151 -#: js/DictActions.js:187 +#: js/blocks/PenBlocks.js:470 +#: js/turtleactions/DictActions.js:73 +#: js/turtleactions/DictActions.js:140 +#: js/turtleactions/DictActions.js:171 msgid "pen size" msgstr "ペンの大きさ" -#: js/PenBlocks.js:322 +#: js/blocks/PenBlocks.js:474 msgid "The Pen size block returns the current pen size value." msgstr "" -#: js/PenBlocks.js:355 +#: js/blocks/PenBlocks.js:513 msgid "set font" msgstr "フォントの設定" -#: js/PenBlocks.js:358 +#: js/blocks/PenBlocks.js:518 msgid "The Set font block sets the font used by the Show block." msgstr "" -#: js/PenBlocks.js:391 +#: js/blocks/PenBlocks.js:567 msgid "The Background block sets the window background color." msgstr "背景ブロックは、カンバスの色をせっていする。" -#: js/PenBlocks.js:408 +#: js/blocks/PenBlocks.js:598 msgid "The Hollow line block creates a line with a hollow center." msgstr "" -#: js/PenBlocks.js:415 +#: js/blocks/PenBlocks.js:606 #.TRANS: draw a line logo has a hollow space down its center msgid "hollow line" msgstr "(中空の)線" -#: js/PenBlocks.js:462 +#: js/blocks/PenBlocks.js:675 msgid "The Fill block fills in a shape with a color." msgstr "

ペンブロック


ネズミがえがいた図形の内がわをぬりつぶす。" -#: js/PenBlocks.js:470 +#: js/blocks/PenBlocks.js:684 #.TRANS: fill in as a solid color msgid "fill" msgstr "ぬりつぶす" -#: js/PenBlocks.js:527 +#: js/blocks/PenBlocks.js:761 #.TRANS: raise up the pen so logo it does not draw when it is moved msgid "pen up" msgstr "ペンを上げる" -#: js/PenBlocks.js:532 +#: js/blocks/PenBlocks.js:768 msgid "The Pen-up block raises the pen so that it does not draw." msgstr "

ペンブロック


ネズミの動きに合わせて線をえがくことをやめる。" -#: js/PenBlocks.js:552 +#: js/blocks/PenBlocks.js:802 #.TRANS: put down the pen so logo it draws when it is moved msgid "pen down" msgstr "ペンを下ろす" -#: js/PenBlocks.js:557 +#: js/blocks/PenBlocks.js:810 msgid "The Pen-down block lowers the pen so that it draws." msgstr "

ペンブロック


ネズミの動きに合わせて線をえがく。" -#: js/PenBlocks.js:577 +#: js/blocks/PenBlocks.js:844 #.TRANS: set the width of the line drawn by the pen msgid "set pen size" msgstr "太さをせってい" -#: js/PenBlocks.js:583 +#: js/blocks/PenBlocks.js:854 msgid "The Set-pen-size block changes the size of the pen." msgstr "

ペンブロック


ネズミがえがく線の太さをせっていする。太さには、0より大きいあたいを使う。" -#: js/PenBlocks.js:623 +#: js/blocks/PenBlocks.js:913 #.TRANS: set degree of translucence of the pen color msgid "set translucency" msgstr "透明度を設定" -#: js/PenBlocks.js:627 +#: js/blocks/PenBlocks.js:921 msgid "The Set translucency block changes the opacity of the pen." msgstr "

ペンブロック


ネズミがえがく線がどのくらいすきとおるかをせっていする。すうちが大きいほど、線がすきとおる。" -#: js/PenBlocks.js:668 +#: js/blocks/PenBlocks.js:981 msgid "set hue" msgstr "色相を設定" -#: js/PenBlocks.js:672 +#: js/blocks/PenBlocks.js:989 msgid "The Set hue block changes the color of the pen." msgstr "" -#: js/PenBlocks.js:711 +#: js/blocks/PenBlocks.js:1047 msgid "set shade" msgstr "色のこさをせってい" -#: js/PenBlocks.js:717 +#: js/blocks/PenBlocks.js:1057 msgid "The Set-shade block changes the pen color from dark to light." msgstr "

ペンブロック


ネズミがえがく線の色のこさをせっていする。" -#: js/PenBlocks.js:757 +#: js/blocks/PenBlocks.js:1111 #.TRANS: set the level of vividness of the pen color msgid "set grey" msgstr "灰色を設定" -#: js/PenBlocks.js:761 +#: js/blocks/PenBlocks.js:1119 msgid "The Set grey block changes the vividness of the pen color." msgstr "" -#: js/PenBlocks.js:800 +#: js/blocks/PenBlocks.js:1172 msgid "set color" msgstr "色をせってい" -#: js/PenBlocks.js:806 +#: js/blocks/PenBlocks.js:1182 msgid "The Set-color block changes the pen color." msgstr "

ペンブロック


ネズミがえがく線の色をせっていする。色は画面上で選ぶほか、それぞれすうちで決めることもできる。色は、0以上で、100より小さいあたいになる。" -#: js/VolumeBlocks.js:35 -msgid "synth volume" -msgstr "シンセノ音量" - -#: js/VolumeBlocks.js:39 -msgid "The Synth volume block returns the current volume of the current synthesizer." -msgstr "" - -#: js/VolumeBlocks.js:47 -#: js/musicutils.js:730 -#: js/synthutils.js:56 -#.TRANS: musical instrument -msgid "piano" -msgstr "ピアノ" - -#: js/VolumeBlocks.js:105 -msgid "master volume" -msgstr "マスター音量" - -#: js/VolumeBlocks.js:109 -msgid "The Master volume block returns the master volume." -msgstr "" - -#: js/VolumeBlocks.js:355 -#: js/VolumeBlocks.js:524 -msgid "set synth volume" -msgstr "楽器の音量をせってい" - -#: js/VolumeBlocks.js:362 -#: js/VolumeBlocks.js:545 -msgid "synth" -msgstr "楽器" - -#: js/VolumeBlocks.js:403 -#: js/VolumeBlocks.js:577 -#: js/VolumeBlocks.js:740 -#: js/VolumeActions.js:173 -msgid "Setting volume to 0." -msgstr "音量を「0」にせっていします。" - -#: js/VolumeBlocks.js:440 -msgid "Synth not found" -msgstr "シンセが見つかりません" - -#: js/VolumeBlocks.js:494 -msgid "set drum volume" -msgstr "ドラムの音量をせってい" - -#: js/VolumeBlocks.js:530 -msgid "The Set synth volume block will change the volume of a particular synth," -msgstr "

楽器の音量をせっていブロック


ギター、ヴァイオリン、スネアドラムなどの楽器の音量をせっていする。" - -#: js/VolumeBlocks.js:532 -msgid "eg guitar violin snare drum etc." -msgstr "
" - -#: js/VolumeBlocks.js:534 -msgid "The default volume is 50." -msgstr "デフォルトは音量50。" - -#: js/VolumeBlocks.js:536 -msgid "The range is 0 for silence to 100 for full volume." -msgstr "0から100までのすうちをせっていできる。

" - -#: js/VolumeBlocks.js:597 -msgid "set panning" -msgstr "ステレオを設定" - -#: js/VolumeBlocks.js:603 -msgid "The Set Panning block sets the panning for all synthesizers." -msgstr "" - -#: js/VolumeBlocks.js:625 -msgid "Warning: Sound is coming out from only the left or right side." -msgstr "ワーニング:音は右か左だけのスピーカーから出ている" - -#: js/VolumeBlocks.js:647 -#: js/VolumeBlocks.js:695 -msgid "set master volume" -msgstr "全体の音量をせってい" - -#: js/VolumeBlocks.js:653 -msgid "The Set master volume block sets the volume for all synthesizers." -msgstr "

全体の音量をせっていブロック


全体の音量をせっていする。" - -#: js/VolumeBlocks.js:784 -msgid "The Set relative volume block changes the volume of the contained notes." -msgstr "" - -#: js/VolumeBlocks.js:791 -msgid "set relative volume" -msgstr "相対音量を設定" - -#: js/VolumeBlocks.js:857 -msgid "decrescendo" -msgstr "デクレシェンド" - -#: js/VolumeBlocks.js:921 -msgid "crescendo" -msgstr "クレシェンド" - -#: js/ToneBlocks.js:34 -msgid "oscillator" -msgstr "オシレータ―" - -#: js/ToneBlocks.js:44 -#: js/timbre.js:1562 -#.TRANS: Partials refers to the number of sine waves combined into the sound. -msgid "partials" -msgstr "倍音" - -#: js/ToneBlocks.js:76 -msgid "You are adding multiple oscillator blocks." -msgstr "複数のオシレーターブロックを追加しています。" +#: js/blocks/PitchBlocks.js:141 +#.TRANS: musical transposition (adjustment of pitch up or down) +msgid "transposition" +msgstr "移調" -#: js/ToneBlocks.js:144 -#: js/timbre.js:1225 -#.TRANS: a duo synthesizer combines a synth with a sequencer -msgid "duo synth" -msgstr "シーケンサー込みシンセ" +#: js/blocks/PitchBlocks.js:168 +#.TRANS: step down one note in current musical scale +msgid "scalar step down" +msgstr "音階内で~度下がる:" -#: js/ToneBlocks.js:149 -msgid "The Duo synth block is a duo-frequency modulator used to define a timbre." +#: js/blocks/PitchBlocks.js:172 +msgid "The Scalar step down block returns the number of semi-tones down to the previous note in the current key and mode." msgstr "" -#: js/ToneBlocks.js:157 -#: js/timbre.js:1476 -msgid "vibrato rate" -msgstr "ビブラートエフェクタのレート" - -#: js/ToneBlocks.js:157 -msgid "vibrato intensity" -msgstr "ビブラートエフェクタの強度" - -#: js/ToneBlocks.js:185 -#: js/timbre.js:1221 -#.TRANS: AM (amplitude modulation) synthesizer -msgid "AM synth" -msgstr "AM シンセ" +#: js/blocks/PitchBlocks.js:190 +#.TRANS: step up one note in current musical scale +msgid "scalar step up" +msgstr "音階内で~度上がる:" -#: js/ToneBlocks.js:189 -msgid "The AM synth block is an amplitude modulator used to define a timbre." +#: js/blocks/PitchBlocks.js:194 +msgid "The Scalar step up block returns the number of semi-tones up to the next note in the current key and mode." msgstr "" -#: js/ToneBlocks.js:224 -#: js/timbre.js:1223 -#.TRANS: FM (frequency modulation) synthesizer -msgid "FM synth" -msgstr "FM シンセ" - -#: js/ToneBlocks.js:228 -msgid "The FM synth block is a frequency modulator used to define a timbre." -msgstr "" +#: js/blocks/PitchBlocks.js:212 +#.TRANS: the change measured in half-steps between the current pitch and the previous pitch +msgid "change in pitch" +msgstr "音程の違い" -#: js/ToneBlocks.js:262 -msgid "partial" -msgstr "倍音" +#: js/blocks/PitchBlocks.js:216 +msgid "The Change in pitch block is the difference (in half steps) between the current pitch being played and the previous pitch played." +msgstr "音程の違いブロックは現在に鳴らされている音高と現在のちょうど前に鳴らされている音高(半音の値で)の違いです。" -#: js/ToneBlocks.js:265 -msgid "The Partial block is used to specify a weight for a specific partial harmonic." -msgstr "" +#: js/blocks/PitchBlocks.js:243 +#.TRANS: the change measured in scale-steps between the current pitch and the previous pitch +msgid "scalar change in pitch" +msgstr "音階のよって音程の違い" -#: js/ToneBlocks.js:284 -#.TRANS: partials are weighted components in a harmonic series -msgid "Partial weight must be between 0 and 1." -msgstr "倍音のウェートは0と1の間である必要があります。" +#: js/blocks/PitchBlocks.js:250 +#: js/blocks/PitchBlocks.js:432 +#: js/blocks/PitchBlocks.js:1667 +#: js/turtleactions/DictActions.js:89 +#: js/widgets/temperament.js:610 +#: js/widgets/temperament.js:614 +#: js/widgets/temperament.js:855 +#.TRANS: convert current note to piano key (1-88) +#.TRANS: a mapping of pitch to the 88 piano keys +msgid "pitch number" +msgstr "音の高さを数で表示" -#: js/ToneBlocks.js:297 -#.TRANS: partials are weighted components in a harmonic series -msgid "Partial block should be used inside of a Weighted-partials block." -msgstr "倍音ブロックが「倍音ウェートブロック」の中にある必要があります。" +#: js/blocks/PitchBlocks.js:256 +msgid "The Pitch number block is the value of the pitch of the note currently being played." +msgstr "

音の高さを数で表示ブロック


音の高さを数で表示する。
" -#: js/ToneBlocks.js:325 -#.TRANS: partials are weighted components in a harmonic series -msgid "weighted partials" -msgstr "ウェート倍音" +#: js/blocks/PitchBlocks.js:329 +#: js/blocks/PitchBlocks.js:433 +#.TRANS: the current pitch expressed in Hertz +msgid "pitch in hertz" +msgstr "音の高さをヘルツで表示" -#: js/ToneBlocks.js:383 -msgid "The Harmonic block will add harmonics to the contained notes." -msgstr "" +#: js/blocks/PitchBlocks.js:334 +msgid "The Pitch in Hertz block is the value in Hertz of the pitch of the note currently being played." +msgstr "

音の高さをヘルツで表示ブロック


音の高さをヘルツで表示する。
たとえば、オクターヴが4のラの音は、440ヘルツというすうちで表すことができる。

★ヘルツとは
音の高さを表す周波数。
★周波数とは
音が1秒間に何回しんどうするかを表すすうち。周波数が高い(すうちが大きい)ほど、音が高くなる。

" -#: js/ToneBlocks.js:390 -#.TRANS: A harmonic is an overtone. -msgid "harmonic" -msgstr "ハーモニックス" +#: js/blocks/PitchBlocks.js:367 +#: js/turtleactions/DictActions.js:87 +msgid "current pitch" +msgstr "現代の音の高さ" -#: js/ToneBlocks.js:431 -msgid "The Distortion block adds distortion to the pitch." +#: js/blocks/PitchBlocks.js:373 +msgid "The Current Pitch block is used with the Pitch Converter block. In the example above, current pitch, sol 4, is displayed as 392 hertz." msgstr "" -#: js/ToneBlocks.js:438 -#: js/timbre.js:2100 -#.TRANS: distortion is an alteration in the sound -msgid "distortion" -msgstr "ディストーション" - -#: js/ToneBlocks.js:487 -msgid "The Tremolo block adds a wavering effect." -msgstr "

トレモロブロック


ゆれるような音のひびきにする。はやさで、ゆれのはやさを調節できる。
" - -#: js/ToneBlocks.js:495 -#: js/timbre.js:2092 -#.TRANS: a wavering effect in a musical tone -msgid "tremolo" -msgstr "トレモロ" - -#: js/ToneBlocks.js:500 -#: js/ToneBlocks.js:569 -#: js/ToneBlocks.js:630 -#: js/ToneBlocks.js:689 -#: js/timbre.js:2134 -#: js/timbre.js:2222 -#: js/timbre.js:2317 -#: js/timbre.js:2419 -#.TRANS: rate at which tremolo wavers -msgid "rate" -msgstr "はやさ" - -#: js/ToneBlocks.js:502 -#: js/ToneBlocks.js:630 -#: js/timbre.js:2137 -#: js/timbre.js:2328 -#.TRANS: amplitude of tremolo waver -msgid "depth" -msgstr "大きさ" - -#: js/ToneBlocks.js:559 -msgid "The Phaser block adds a sweeping sound." +#: js/blocks/PitchBlocks.js:410 +msgid "This block converts the pitch value of the last note played into different formats such as hertz, letter name, pitch number, et al." msgstr "" -#: js/ToneBlocks.js:566 -#: js/timbre.js:2098 -#.TRANS: alter the phase of the sound -msgid "phaser" -msgstr "フェーザー" - -#: js/ToneBlocks.js:569 -#: js/timbre.js:2422 -msgid "octaves" -msgstr "オクターヴ" - -#: js/ToneBlocks.js:569 -#: js/timbre.js:2425 -msgid "base frequency" -msgstr "基本周波数" - -#: js/ToneBlocks.js:619 -msgid "The Chorus block adds a chorus effect." -msgstr "

コーラスブロック


広がりのある音のひびきにする。はやさとずれで、ひびきが残る感じを調節できる。
" - -#: js/ToneBlocks.js:627 -#: js/timbre.js:2096 -#.TRANS: musical effect to simulate a choral sound -msgid "chorus" -msgstr "コーラス" - -#: js/ToneBlocks.js:630 -msgid "delay" -msgstr "ずれ" +#: js/blocks/PitchBlocks.js:434 +msgid "alphabet" +msgstr "アルファベット" -#: js/ToneBlocks.js:678 -msgid "The Vibrato block adds a rapid, slight variation in pitch." -msgstr "

ビブラートブロック


音の高さに小きざみな変化をつける。" +#: js/blocks/PitchBlocks.js:436 +#.TRANS: Translate as "alphabet class" +msgid "letter class" +msgstr "アルファベット・クラス" -#: js/ToneBlocks.js:686 -#: js/timbre.js:2094 -#.TRANS: a rapid, slight variation in pitch -msgid "vibrato" -msgstr "ビブラート" +#: js/blocks/PitchBlocks.js:437 +msgid "solfege class" +msgstr "階名" -#: js/ToneBlocks.js:689 -#: js/timbre.js:2221 -msgid "intensity" -msgstr "大きさ" +#: js/blocks/PitchBlocks.js:438 +msgid "staff y" +msgstr "音部記号のy座標" -#: js/ToneBlocks.js:733 -#.TRANS: select synthesizer -msgid "set synth" -msgstr "シンセを設定" +#: js/blocks/PitchBlocks.js:439 +msgid "solfege syllable" +msgstr "階名(ド、レ、ミ)" -#: js/ToneBlocks.js:804 -msgid "synth name" -msgstr "シンセの名前" +#: js/blocks/PitchBlocks.js:440 +msgid "pitch class" +msgstr "ピッチ・クラス" -#: js/ToneBlocks.js:842 -msgid "set default instrument" -msgstr "音色標準を設定" +#: js/blocks/PitchBlocks.js:441 +msgid "scalar class" +msgstr "音階クラス" -#: js/ToneBlocks.js:895 -#: js/ToneBlocks.js:943 -#.TRANS: set the characteristics of a custom instrument -msgid "set instrument" -msgstr "音色をせってい" +#: js/blocks/PitchBlocks.js:443 +msgid "nth degree" +msgstr "ピッチ度" -#: js/ToneBlocks.js:898 -#: js/ToneBlocks.js:926 -#: js/ToneBlocks.js:932 -msgid "The Set instrument block selects a voice for the synthesizer," -msgstr "

音色をせっていブロック


中に入っている「音符(おんぷ)ブロック」の音色を設定する。音色は、ギターやピアノなどの中から選ぶことができる。

" +#: js/blocks/PitchBlocks.js:444 +msgid "pitch to shade" +msgstr "音の高さををシェードに" -#: js/ToneBlocks.js:900 -#: js/ToneBlocks.js:934 -msgid "eg guitar piano violin or cello." -msgstr "(例えば、ギター、ピアノ、バイオリン、チェロなど)。" +#: js/blocks/PitchBlocks.js:445 +msgid "pitch to color" +msgstr "音の高さを色に" -#: js/ToneBlocks.js:1015 -msgid "Import a sound file to use as an instrument and set its pitch center." -msgstr "音色サンプルをアップロードして、音の高さを合わせる" +#: js/blocks/PitchBlocks.js:629 +#: js/widgets/musickeyboard.js:735 +#.TRANS: MIDI is a technical standard for electronic music +msgid "MIDI" +msgstr "" -#: js/ToneBlocks.js:1110 -msgid "Upload a sound file to connect with the sample block." -msgstr "音色サンプルをアップロードして、音の高さを合わせる" +#: js/blocks/PitchBlocks.js:642 +#.TRANS: set an offset associated with the numeric piano keyboard mapping +msgid "set pitch number offset" +msgstr "音高の数字を初期化" -#: js/MeterBlocks.js:34 -#.TRANS: musical meter (time signature), e.g., 4:4 -msgid "current meter" -msgstr "現代の拍子" +#: js/blocks/PitchBlocks.js:645 +msgid "The Set pitch number offset block is used to set the offset for mapping pitch numbers to pitch and octave." +msgstr "" -#: js/MeterBlocks.js:85 -#.TRANS: number of beats per minute -msgid "beat factor" -msgstr "拍を~倍にするファクター" +#: js/blocks/PitchBlocks.js:679 +#.TRANS: convert piano key number (1-88) to pitch +msgid "number to pitch" +msgstr "数字を音名へ" -#: js/MeterBlocks.js:161 -msgid "The Beats per minute block returns the current beats per minute." +#: js/blocks/PitchBlocks.js:682 +msgid "The Number to pitch block will convert a pitch number to a pich name." msgstr "" -#: js/MeterBlocks.js:169 -#: js/status.js:152 -#.TRANS: number of beats played per minute -msgid "beats per minute2" -msgstr "1分当たりの拍の数" +#: js/blocks/PitchBlocks.js:715 +#.TRANS: convert piano key number (1-88) to octave +msgid "number to octave" +msgstr "数値をオクターヴ表記へ" -#: js/MeterBlocks.js:169 -#: js/MeterBlocks.js:1056 -#: js/MeterBlocks.js:1133 -#: js/MeterBlocks.js:1211 -#.TRANS: sets tempo by defining a beat and beats per minute -msgid "beats per minute" -msgstr "スピードを決める" +#: js/blocks/PitchBlocks.js:717 +msgid "The Number to octave block will convert a pitch number to an octave." +msgstr "" -#: js/MeterBlocks.js:233 -#.TRANS: count of current musical measure in meter -msgid "measure count" -msgstr "小節の数" +#: js/blocks/PitchBlocks.js:726 +msgid "y to pitch" +msgstr "音の高さをy座に" -#: js/MeterBlocks.js:241 -msgid "The Measure count block returns the current measure." +#: js/blocks/PitchBlocks.js:729 +msgid "Y to pitch block will convert a staff y position to corresponding pitch notation." msgstr "" -#: js/MeterBlocks.js:290 -#.TRANS: count of current beat in the meter -msgid "beat count" -msgstr "拍の位置" +#: js/blocks/PitchBlocks.js:841 +msgid "accidental selector" +msgstr "" -#: js/MeterBlocks.js:300 -#: js/MeterBlocks.js:311 -#: js/MeterBlocks.js:565 -#: js/MeterBlocks.js:576 -msgid "The Beat count block is the number of the current beat," -msgstr "

拍(はく)の位置ブロック


小節の中で何拍(はく)目かをあらわす数。たとえば、各小節の3拍(はく)めに何かアクション・イベントを起こしたいときなどに使う。" +#: js/blocks/PitchBlocks.js:844 +msgid "The Accidental selector block is used to choose between double-sharp, sharp, natural, flat, and double-flat." +msgstr "変化記号セレクターブロックはダブルシャープ(重嬰)、シャープ(嬰)、ナチュラル(本位)、フラット(変)、ダブルフラット(重変)から選ぶことができます。" -#: js/MeterBlocks.js:313 -#: js/MeterBlocks.js:578 -msgid "eg 1, 2, 3, or 4." -msgstr "
図の例では、それぞれの小節の1拍(ぱく)目に、特定のアクション・イベントを起こしている。" +#: js/blocks/PitchBlocks.js:858 +msgid "Pitch can be specified in terms of ni dha pa ma ga re sa." +msgstr "音の高さを、「sa、re、ga、ma、pa、dha、ni」の7つのインドのソルフェージュでせっていする。" -#: js/MeterBlocks.js:368 -#.TRANS: count the number of notes -msgid "sum note values" -msgstr "音の長さを足す" +#: js/blocks/PitchBlocks.js:872 +msgid "Pitch can be specified in terms of C D E F G A B." +msgstr "

音の高さブロック


音の高さを、CDEFGABの7つのアルファベットでせっていする。たとえば、ドならばC、レならばDであらわされる。" -#: js/MeterBlocks.js:376 -#: js/MeterBlocks.js:440 -msgid "The Note counter block can be used to count the number of contained notes." +#: js/blocks/PitchBlocks.js:884 +msgid "solfege" msgstr "" -#: js/MeterBlocks.js:432 -#.TRANS: count the number of notes -msgid "note counter" -msgstr "音符の合計数" - -#: js/MeterBlocks.js:496 -#.TRANS: number of whole notes that have been played -msgid "whole notes played" -msgstr "さいせいされた全音符の数" +#: js/blocks/PitchBlocks.js:887 +msgid "Pitch can be specified in terms of do re mi fa sol la ti." +msgstr "

音の高さブロック


音の高さを、ド、レ、ミ、ファ、ソ、ラ、シの7つのソルフェージュでせっていする。" -#: js/MeterBlocks.js:505 -msgid "The Whole notes played block returns the total number of whole notes played." +#: js/blocks/PitchBlocks.js:922 +msgid "The Invert block rotates any contained notes around a target note." msgstr "" -#: js/MeterBlocks.js:555 -#: js/DictActions.js:83 -#.TRANS: number of notes that have been played -msgid "notes played" -msgstr "全体の拍の数" +#: js/blocks/PitchBlocks.js:929 +#.TRANS: pitch inversion rotates a pitch around another pitch +msgid "invert" +msgstr "両方向にずれる" -#: js/MeterBlocks.js:653 -msgid "The No clock block decouples the notes from the master clock." -msgstr "クロックなしブロックはそれぞれの動作の順番をリズムより優先します。" +#: js/blocks/PitchBlocks.js:968 +#.TRANS: pitch inversion rotates a pitch around another pitch (odd number) +msgid "invert (odd)" +msgstr "転回を (奇数)" -#: js/MeterBlocks.js:661 -#.TRANS: don't lock notes to master clock -msgid "no clock" -msgstr "クロックなし" +#: js/blocks/PitchBlocks.js:1001 +#.TRANS: pitch inversion rotates a pitch around another pitch (even number) +msgid "invert (even)" +msgstr "転回を (偶数)" -#: js/MeterBlocks.js:700 -msgid "on weak beat do" -msgstr "弱拍に~する" +#: js/blocks/PitchBlocks.js:1022 +#.TRANS: register is the octave of the current pitch +msgid "register" +msgstr "登録" -#: js/MeterBlocks.js:705 -msgid "The On-weak-beat block lets you specify actions to take on weak (off) beats." +#: js/blocks/PitchBlocks.js:1026 +msgid "The Register block provides an easy way to modify the register (octave) of the notes that follow it." msgstr "" -#: js/MeterBlocks.js:750 -msgid "on strong beat" -msgstr "強拍に" - -#: js/MeterBlocks.js:758 -msgid "The On-strong-beat block lets you specify actions to take on specified beats." +#: js/blocks/PitchBlocks.js:1047 +#.TRANS: cents are units used to specify the ratio between pitches. There are 100 cents between successive notes. +msgid "50 cents" msgstr "" -#: js/MeterBlocks.js:769 -msgid "beat" -msgstr "拍子" +#: js/blocks/PitchBlocks.js:1102 +msgid "The Semi-tone transposition block will shift the pitches contained inside Note blocks up (or down) by half steps." +msgstr "半音で移調ブロックは音符の中に入っている音高を上(または下)に、特定されている数字の値によって、半音ずつ移動します。" -#: js/MeterBlocks.js:813 -msgid "on every beat do" -msgstr "全ての拍子にアクション実行" +#: js/blocks/PitchBlocks.js:1104 +msgid "In the example shown above, sol is shifted up to sol#." +msgstr "例の画像にソルソル#に上に移動されています。" -#: js/MeterBlocks.js:821 -msgid "The On-every-beat block lets you specify actions to take on every beat." -msgstr "" +#: js/blocks/PitchBlocks.js:1110 +#.TRANS: adjust the amount of shift (up or down) of a pitch +msgid "semi-tone transpose" +msgstr "半音で移調" -#: js/MeterBlocks.js:874 -msgid "on every note do" -msgstr "全ての音符にアクション実行" +#: js/blocks/PitchBlocks.js:1143 +msgid "The Transpose by Ratio block will shift the pitches contained inside Note blocks up (or down) by a ratio" +msgstr "「比で移動」ブロックは 音符の中のピッチを比で移動させる。" -#: js/MeterBlocks.js:882 -msgid "The On-every-note block lets you specify actions to take on every note." -msgstr "" +#: js/blocks/PitchBlocks.js:1149 +#.TRANS: adjust the amount of shift (up or down) of a pitch +msgid "transpose by ratio" +msgstr "比で移動" -#: js/MeterBlocks.js:928 -#: js/MeterBlocks.js:999 -#.TRANS: sets tempo by defining a beat and beats per minute -msgid "master beats per minute" -msgstr "全体のスピードを決める" +#: js/blocks/PitchBlocks.js:1232 +#.TRANS: down sixth means the note is five scale degrees below current note +msgid "down sixth" +msgstr "音階で6度下" -#: js/MeterBlocks.js:952 -#: js/MeterBlocks.js:1078 -#: js/MeterBlocks.js:1135 -msgid "bpm" -msgstr "1分あたりの拍の数" +#: js/blocks/PitchBlocks.js:1251 +#.TRANS: down third means the note is two scale degrees below current note +msgid "down third" +msgstr "音階で3度下" -#: js/MeterBlocks.js:952 -#: js/MeterBlocks.js:1078 -#: js/MeterBlocks.js:1135 -msgid "beat value" -msgstr "1拍" +#: js/blocks/PitchBlocks.js:1270 +#.TRANS: seventh means the note is the six scale degrees above current note +msgid "seventh" +msgstr "7度の音" -#: js/MeterBlocks.js:1024 -#: js/MeterBlocks.js:1167 -#: js/MeterBlocks.js:1241 -msgid "Beats per minute must be > 30." -msgstr "1分あたりの拍の数には、30より大きいあたいをせっていしてください。" +#: js/blocks/PitchBlocks.js:1289 +#.TRANS: sixth means the note is the five scale degrees above current note +msgid "sixth" +msgstr "6度の音" -#: js/MeterBlocks.js:1027 -#: js/MeterBlocks.js:1170 -#: js/MeterBlocks.js:1244 -msgid "Maximum beats per minute is 1000." -msgstr "1分あたりの拍の数は、最大1000です。" +#: js/blocks/PitchBlocks.js:1308 +#.TRANS: fifth means the note is the four scale degrees above current note +msgid "fifth" +msgstr "5度の音" -#: js/MeterBlocks.js:1068 -msgid "The Beats per minute block sets the number of 1/4 notes per minute." -msgstr "

スピードを決めるブロック


1分あたりの拍(はく)の数をせっていすることで、曲のスピードを決める。ひょうじゅんは4分音符(おんぷ)90こ。

★拍(はく)とは
くり返されるリズムのこと。" +#: js/blocks/PitchBlocks.js:1328 +#.TRANS: fourth means the note is three scale degrees above current note +msgid "fourth" +msgstr "4度の音" -#: js/MeterBlocks.js:1279 -#.TRANS: anacrusis -msgid "pickup" -msgstr "ピックアップ" +#: js/blocks/PitchBlocks.js:1347 +#.TRANS: third means the note is two scale degrees above current note +msgid "third" +msgstr "3度の音" -#: js/MeterBlocks.js:1367 -msgid "number of beats" -msgstr "拍の数" +#: js/blocks/PitchBlocks.js:1366 +#.TRANS: second means the note is one scale degree above current note +msgid "second" +msgstr "2度の音" -#: js/DictBlocks.js:77 -msgid "show dictionary" -msgstr "辞書を表す" +#: js/blocks/PitchBlocks.js:1407 +msgid "The Scalar transposition block will shift the pitches contained inside Note blocks up (or down) the scale." +msgstr "

調を変えるブロック


「音符ブロック」内の音の高さを、すべて(音階内で、せっていしたすうち分だけ)上げる、または下げる。" -#: js/DictBlocks.js:129 -msgid "The Dictionary block returns a dictionary." -msgstr "" +#: js/blocks/PitchBlocks.js:1409 +msgid "In the example shown above, sol is shifted up to la." +msgstr "

図の例では、ソがラに、ラがシに、シがドに…と置きかえられている。

★音階とは
順番に並んだ音のまとまり。たとえば、「ド」を始まりの音にしたときの「ドレミファソラシド」、「ソ」を始まりの音にしたときの「ソラシドレミ(♯ファ)ソ」のこと。
★調とは
中心的な役わりをはたす音と、音階の種類によって決まる、曲の感じ。中心的な役わりをはたす音だけを指すこともある。" -#: js/DictBlocks.js:197 -#: js/DictBlocks.js:339 -msgid "The Get-dict block returns a value in the dictionary for a specified key." -msgstr "" +#: js/blocks/PitchBlocks.js:1416 +#.TRANS: adjust the amount of shift (up or down) of a pitch by musical scale (scalar) steps +msgid "scalar transpose" +msgstr "調を変える" -#: js/DictBlocks.js:212 -#: js/DictBlocks.js:354 -#.TRANS: retrieve a value from the dictionary with a given key -msgid "get value" -msgstr "数価を表す" +#: js/blocks/PitchBlocks.js:1451 +msgid "The Accidental block is used to create sharps and flats" +msgstr "変化記号ブロックは シャープ(嬰)フラット(変)を決める機能です。" -#: js/DictBlocks.js:215 -#: js/DictBlocks.js:216 -#: js/DictBlocks.js:289 -#: js/DictBlocks.js:290 -#: js/DictBlocks.js:357 -#: js/DictBlocks.js:430 -#: js/DictBlocks.js:431 -msgid "key2" -msgstr "キーワード" +#: js/blocks/PitchBlocks.js:1458 +#.TRANS: An accidental is a modification to a pitch, e.g., sharp or flat. +msgid "accidental override" +msgstr "変化記号無視" -#: js/DictBlocks.js:271 -#: js/DictBlocks.js:411 -msgid "The Set-dict block sets a value in the dictionary for a specified key." +#: js/blocks/PitchBlocks.js:1581 +msgid "The Hertz block (in combination with a Number block) will play a sound at the specified frequency." +msgstr "

ヘルツブロック


音の高さをヘルツ(周波数の単位)でせっていする。「すうちブロック」を組み合わせて使う。

★ヘルツとは
音の高さを表す周波数。
★周波数とは
音が1秒間に何回しんどうするかを表すすうち。周波数が高い(すうちが大きい)ほど、音が高くなる。

" + +#: js/blocks/PitchBlocks.js:1671 +msgid "The Pitch Number block will play a pitch associated by its number, e.g. 0 for C and 7 for G." msgstr "" -#: js/DictBlocks.js:286 -#: js/DictBlocks.js:427 -#.TRANS: set a value in the dictionary for a given key -msgid "set value" -msgstr "値を設定" +#: js/blocks/PitchBlocks.js:1703 +#: js/blocks/PitchBlocks.js:1745 +#.TRANS: a numeric mapping of the notes in an octave based on the musical mode +#.TRANS: a numeric mapping of the notes in an octave based on the musical mode +msgid "nth modal pitch" +msgstr "ピッチ度" -#: js/ExtrasBlocks.js:33 -msgid "fraction" -msgstr "分数" +#: js/blocks/PitchBlocks.js:1706 +msgid "n^th Modal Pitch takes the pattern of pitches in semitones for a mode and makes each point a degree of the mode," +msgstr "" -#: js/ExtrasBlocks.js:36 -msgid "Convert a float to a fraction" -msgstr "小数から分数" +#: js/blocks/PitchBlocks.js:1708 +msgid "starting from 1 and regardless of tonal framework (i.e. not always 8 notes in the octave)" +msgstr "" -#: js/ExtrasBlocks.js:93 -msgid "save as ABC" -msgstr "ABCでほぞん" +#: js/blocks/PitchBlocks.js:1749 +msgid "N^th Modal Pitch takes a number as an input as the n^th degree for the given mode. 0 is the first position, 1 is the second, -1 is the note before the first etc." +msgstr "" -#: js/ExtrasBlocks.js:96 -#: js/ExtrasBlocks.js:132 -#: js/ExtrasBlocks.js:168 -msgid "title" -msgstr "名" +#: js/blocks/PitchBlocks.js:1751 +msgid "The pitches change according to the mode specified without any need for respellings." +msgstr "" -#: js/ExtrasBlocks.js:129 -msgid "save as Lilypond" -msgstr "Lilypondのフォーマットでほぞん" +#: js/blocks/PitchBlocks.js:1790 +msgid "Scale Degree is a common convention in music. Scale Degree offers seven possible positions in the scale (1-7) and can be modified via accidentals." +msgstr "" -#: js/ExtrasBlocks.js:165 -msgid "save as SVG" -msgstr "SVGでほぞん" +#: js/blocks/PitchBlocks.js:1792 +msgid "Scale Degree 1 is always the first pitch in a given scale, regardless of octave." +msgstr "" -#: js/ExtrasBlocks.js:216 -msgid "no background" -msgstr "バックグラウンドなし" +#: js/blocks/PitchBlocks.js:1814 +#.TRANS: step some number of notes in current musical scale +msgid "scalar step" +msgstr "音階内を上る/下りる" + +#: js/blocks/PitchBlocks.js:1819 +msgid "The Scalar Step block (in combination with a Number block) will play the next pitch in a scale," +msgstr "

音階内を上る/下りるブロック


音階内を順番に(ある一定のかんかくで)上りながら、または下りながら音をえんそうする。すうちをせっていすることで、次の音は前の音といくつちがうかが決まる。
たとえば、すうちを1にせっていした場合、ソの次にはラ(ソの1音上)、ファの次にはソ(ファの1音上)がえんそうされる。

★音階とは
順番に並んだ音のまとまり。" + +#: js/blocks/PitchBlocks.js:1821 +msgid "eg if the last note played was sol, Scalar Step 1 will play la." +msgstr "

たとえば、「ド」を始まりの音にしたときの「ドレミファソラシド」、「ソ」を始まりの音にしたときの「ソラシドレミ(♯ファ)ソ」のこと。
" -#: js/ExtrasBlocks.js:219 -msgid "The No background block eliminates the background from the saved SVG output." +#: js/blocks/PitchBlocks.js:1857 +msgid "The Pitch block specifies the pitch name and octave of a note that together determine the frequency of the note." +msgstr "

音の高さブロック


音の高さをせっていする。名前とオクターヴの高さを決めて使う。音の周波数も同時に決まる。

★周波数とは
音が1秒間に何回しんどうするかを表すすうち。周波数が高い(すうちが大きい)ほど、音が高くなる。
★オクターヴの高さとは
同じ名前でも高さがちがう音を表すすうち。

" + +#: js/blocks/ProgramBlocks.js:33 +msgid "The Load-heap-from-app block loads the heap from a web page." msgstr "" -#: js/ExtrasBlocks.js:247 -msgid "show blocks" -msgstr "ブロックを表示" +#: js/blocks/ProgramBlocks.js:44 +#.TRANS: load the heap contents from a URL +msgid "load heap from App" +msgstr "アプリからヒープをロード" -#: js/ExtrasBlocks.js:249 -msgid "The Show blocks block shows the blocks." -msgstr "" +#: js/blocks/ProgramBlocks.js:95 +msgid "Error parsing JSON data:" +msgstr "JSON データの構文エラーです。" -#: js/ExtrasBlocks.js:274 -msgid "hide blocks" -msgstr "ブロックを非表示" +#: js/blocks/ProgramBlocks.js:100 +msgid "404: Page not found" +msgstr "404エラー:ページが見つかりません。" -#: js/ExtrasBlocks.js:276 -msgid "The Hide blocks block hides the blocks." +#: js/blocks/ProgramBlocks.js:133 +msgid "The Save-heap-to-app block saves the heap to a web page." msgstr "" -#: js/ExtrasBlocks.js:305 -#: js/ExtrasBlocks.js:335 -msgid "The Space block is used to add space between blocks." -msgstr "

スペースブロック


ブロックとブロックの間にスペースを入れたいときに使う。" +#: js/blocks/ProgramBlocks.js:144 +#.TRANS: save the heap contents to a URL +msgid "save heap to App" +msgstr "アプリにヒープを保存" -#: js/ExtrasBlocks.js:373 -msgid "wait" -msgstr "待つ" +#: js/blocks/ProgramBlocks.js:189 +msgid "Cannot find a valid heap for" +msgstr "正しいヒープが見つかりません。" -#: js/ExtrasBlocks.js:376 -msgid "The Wait block pauses the program for a specified number of seconds." +#: js/blocks/ProgramBlocks.js:206 +msgid "The Load-heap block loads the heap from a file." msgstr "" -#: js/ExtrasBlocks.js:430 -#: plugins/facebook.rtp:30 -msgid "comment" -msgstr "コメント" - -#: js/ExtrasBlocks.js:466 -msgid "print" -msgstr "結果を表示" +#: js/blocks/ProgramBlocks.js:217 +#.TRANS: load the heap from a file +msgid "load heap" +msgstr "ヒープをロードする" -#: js/ExtrasBlocks.js:473 -msgid "The Print block displays text at the top of the screen." -msgstr "

表示ブロック(結果)


画面の上部に、指定した実行結果のすうちや文字を表示する。表示したテキストはクリックすると消すことができる。どこでプログラムがまちがっているかをかくにんする際(デバグ)などによく用いられる。" +#: js/blocks/ProgramBlocks.js:270 +msgid "The file you selected does not contain a valid heap." +msgstr "選んだファイルには、正しいヒープが含まれません。" -#: js/ExtrasBlocks.js:579 -msgid "display grid" -msgstr "グリッドを表示" +#: js/blocks/ProgramBlocks.js:275 +msgid "The loadHeap block needs a loadFile block." +msgstr "ロードヒープのブロックには、ロードファイルブロックが必要です。" -#: js/ExtrasBlocks.js:584 -msgid "The Display Grid Block changes the grid type" -msgstr "表示グリッド ブロックのグリッド タイプの変更" +#: js/blocks/ProgramBlocks.js:291 +msgid "The Set-heap block loads the heap." +msgstr "" -#: js/ExtrasBlocks.js:686 -#: js/ExtrasBlocks.js:705 -#: js/ExtrasBlocks.js:728 -#: js/ExtrasBlocks.js:751 -#: js/ExtrasBlocks.js:769 -#: js/ExtrasBlocks.js:788 -#: js/ExtrasBlocks.js:807 -#: js/ExtrasBlocks.js:826 -msgid "unknown" -msgstr "不明" +#: js/blocks/ProgramBlocks.js:340 +msgid "The block you selected does not contain a valid heap." +msgstr "" -#: js/SensorsBlocks.js:36 -msgid "The Input block prompts for keyboard input." +#: js/blocks/ProgramBlocks.js:343 +msgid "The Set heap block needs a heap." msgstr "" -#: js/SensorsBlocks.js:46 -msgid "input" -msgstr "インプット" +#: js/blocks/ProgramBlocks.js:360 +msgid "The Load-dictionary block loads a dictionary from a file." +msgstr "" -#: js/SensorsBlocks.js:64 -msgid "Input a value" -msgstr "価値をインプット" +#: js/blocks/ProgramBlocks.js:372 +#.TRANS: load a dictionary from a file +msgid "load dictionary" +msgstr "辞書をロード" -#: js/SensorsBlocks.js:126 -msgid "input value" -msgstr "インプットの価値" +#: js/blocks/ProgramBlocks.js:390 +#: js/blocks/ProgramBlocks.js:658 +#: js/blocks/ToneBlocks.js:1025 +msgid "file" +msgstr "ファイル" -#: js/SensorsBlocks.js:131 -msgid "The Input-value block stores the input." +#: js/blocks/ProgramBlocks.js:444 +msgid "The file you selected does not contain a valid dictionary." msgstr "" -#: js/SensorsBlocks.js:238 -msgid "loudness" -msgstr "音量" +#: js/blocks/ProgramBlocks.js:449 +msgid "The load dictionary block needs a load file block." +msgstr "" -#: js/SensorsBlocks.js:245 -msgid "The Loudness block returns the volume detected by the microphone." +#: js/blocks/ProgramBlocks.js:466 +msgid "The Set-dictionary block loads a dictionary." msgstr "" -#: js/SensorsBlocks.js:300 -msgid "click" -msgstr "クリック" +#: js/blocks/ProgramBlocks.js:477 +#.TRANS: load a dictionary from a JSON +msgid "set dictionary" +msgstr "辞書を設定" -#: js/SensorsBlocks.js:306 -msgid "The Click block triggers an event if a mouse has been clicked." +#: js/blocks/ProgramBlocks.js:546 +msgid "The block you selected does not contain a valid dictionary." msgstr "" -#: js/SensorsBlocks.js:313 -msgid "The Click block triggers an event if a turtle has been clicked." +#: js/blocks/ProgramBlocks.js:550 +msgid "The set dictionary block needs a dictionary." msgstr "" -#: js/SensorsBlocks.js:342 -msgid "cursor over" -msgstr "カーソル(上)" +#: js/blocks/ProgramBlocks.js:567 +msgid "The Save-heap block saves the heap to a file." +msgstr "" -#: js/SensorsBlocks.js:387 -msgid "cursor out" -msgstr "カーソル(外)" +#: js/blocks/ProgramBlocks.js:578 +#.TRANS: save the heap to a file +msgid "save heap" +msgstr "ヒープを保存する" -#: js/SensorsBlocks.js:433 -msgid "cursor button down" -msgstr "カーソルクリック(下)" +#: js/blocks/ProgramBlocks.js:629 +msgid "The Save-dictionary block saves a dictionary to a file." +msgstr "" -#: js/SensorsBlocks.js:477 -msgid "cursor button up" -msgstr "カーソルクリック(上)" +#: js/blocks/ProgramBlocks.js:640 +#.TRANS: save a dictionary to a file +msgid "save dictionary" +msgstr "辞書を保存" -#: js/SensorsBlocks.js:638 -msgid "The Get red block returns the red component of the pixel under the mouse." +#: js/blocks/ProgramBlocks.js:720 +msgid "The Open palette block opens a palette." msgstr "" -#: js/SensorsBlocks.js:644 -msgid "The Get red block returns the red component of the pixel under the turtle." +#: js/blocks/ProgramBlocks.js:727 +msgid "open palette" +msgstr "パレットを開きます" + +#: js/blocks/ProgramBlocks.js:785 +msgid "The Delete block block removes a block." msgstr "" -#: js/SensorsBlocks.js:685 -#: plugins/rodi.rtp:216 -msgid "pixel color" -msgstr "ピクセルの色" +#: js/blocks/ProgramBlocks.js:797 +#.TRANS: Move this block to the trash. +msgid "delete block" +msgstr "ブロックを消す" -#: js/SensorsBlocks.js:690 -msgid "The Get pixel block returns the color of the pixel under the mouse." +#: js/blocks/ProgramBlocks.js:861 +msgid "The Move block block moves a block." msgstr "" -#: js/SensorsBlocks.js:696 -msgid "The Get pixel block returns the color of the pixel under the turtle." -msgstr "" +#: js/blocks/ProgramBlocks.js:869 +#.TRANS: Move the position of a block on the screen. +msgid "move block" +msgstr "ブロックを動かす" -#: js/SensorsBlocks.js:758 -msgid "time" -msgstr "時間" +#: js/blocks/ProgramBlocks.js:881 +#: js/blocks/ProgramBlocks.js:1048 +msgid "block number" +msgstr "ブロックの番号" -#: js/SensorsBlocks.js:804 -msgid "cursor y" -msgstr "yざひょうち(カーソル)" +#: js/blocks/ProgramBlocks.js:935 +#.TRANS: Run program beginning at this block. +msgid "run block" +msgstr "ブロックを再生" -#: js/SensorsBlocks.js:809 -msgid "The Cursor Y block returns the vertical position of the mouse." -msgstr "

すうちブロック(カーソル)


マウスカーソルのたて位置を表すyざひょうち。
図の例は、ネズミを使って画面上に自由に線をえがけるプログラム。ネズミがパソコンのマウスカーソルの位置にいどうし続けつつ、マウスをおしているときだけペンをおろし、線をえがく。" +#: js/blocks/ProgramBlocks.js:1025 +msgid "The Dock block block connections two blocks." +msgstr "" -#: js/SensorsBlocks.js:845 -msgid "cursor x" -msgstr "xざひょうち(カーソル)" +#: js/blocks/ProgramBlocks.js:1036 +#.TRANS: We can connect a block to another block. +msgid "connect blocks" +msgstr "ブロックを繋ぐ" -#: js/SensorsBlocks.js:850 -msgid "The Cursor X block returns the horizontal position of the mouse." -msgstr "

すうちブロック(カーソル)


マウスカーソルの横位置を表すxざひょうち。
図の例は、ネズミを使って画面上に自由に線をえがけるプログラム。ネズミがパソコンのマウスカーソルの位置にいどうし続けつつ、マウスをおしているときだけペンをおろし、線をえがく。" +#: js/blocks/ProgramBlocks.js:1048 +msgid "target block" +msgstr "目標のブロック" -#: js/SensorsBlocks.js:886 -msgid "mouse button" -msgstr "マウスボタン" +#: js/blocks/ProgramBlocks.js:1048 +msgid "connection number" +msgstr "接続の番号" -#: js/SensorsBlocks.js:888 -msgid "The Mouse-button block returns True if the mouse button is pressed." -msgstr "

真偽ブロック(マウスボタン)


マウスのボタンがおされているかどうかはんていする。マウスボタンがおされていれば「真(しん)」、おされていなければ「偽(ぎ)」という値になる。
図の例は、ネズミを使って画面上に自由に線をえがけるプログラム。ネズミがパソコンのマウスカーソルの位置にいどうし続けつつ、マウスをおしているときだけペンをおろし、線をえがく。

★しんぎブロックとは
「もし~ならば」などのじょうけんブロックを動かすために必要なブロック。
「もし~ならば」は、せいかくに表現すると、「もし~というじょうけんが正しいならば、次のブロックを実行する」という意味である。しんぎブロックは不等式などによるひかくが「正しい(真)」か、「正しくない(偽)」かの結果を表し、「もし~ならば」に続くブロックを実行するかどうか決める。" +#: js/blocks/ProgramBlocks.js:1140 +msgid "The Make block block creates a new block." +msgstr "" -#: js/SensorsBlocks.js:934 -msgid "to ASCII" -msgstr "ASCIIに" +#: js/blocks/ProgramBlocks.js:1152 +#.TRANS: Create a new block +msgid "make block" +msgstr "ブロックを作る" -#: js/SensorsBlocks.js:938 -msgid "The To ASCII block converts numbers to letters." -msgstr "" +#: js/blocks/ProgramBlocks.js:1285 +msgid "Cannot find block" +msgstr "ブロックが見つかりません" -#: js/SensorsBlocks.js:1005 -msgid "The Keyboard block returns computer keyboard input." +#: js/blocks/ProgramBlocks.js:1304 +#: js/blocks/ProgramBlocks.js:1313 +msgid "Warning: block argument type mismatch" +msgstr "注意:ブロックとタイプが合っていません。" + +#: js/blocks/ProgramBlocks.js:1347 +msgid "The Open project block is used to open a project from a web page." msgstr "" -#: js/IntervalsActions.js:216 -msgid "Adding missing pitch number 0." -msgstr "ピッチ数値「0」を加える" +#: js/blocks/ProgramBlocks.js:1357 +msgid "open project" +msgstr "プロジェクトを開く" -#: js/IntervalsActions.js:224 -msgid "Ignoring pitch numbers less than zero or greater than eleven." -msgstr "ピッチ数値の数のうち、0未満あるいは11より大きい数は無視します。" +#: js/blocks/ProgramBlocks.js:1410 +msgid "Please enter a valid URL." +msgstr "正しい URL をいれて下さい。" -#: js/IntervalsActions.js:230 -msgid "Ignoring duplicate pitch numbers." -msgstr "重複しているピッチ数値は無視します" +#: js/blocks/ToneBlocks.js:34 +msgid "oscillator" +msgstr "オシレータ―" -#: js/PitchActions.js:88 -msgid "The Scalar Step Block must be used inside of a Note Block." -msgstr "音階内を上る/下りるブロックは、音符ブロックの中に入れて使ってください。" +#: js/blocks/ToneBlocks.js:42 +#: js/blocks/WidgetBlocks.js:179 +#: js/widgets/timbre.js:1558 +#: js/widgets/timbre.js:1808 +#.TRANS: there are different types (sine, triangle, square...) of oscillators. +#.TRANS: type of filter, e.g., lowpass, highpass, etc. +msgid "type" +msgstr "種類" -#: js/PitchActions.js:107 -msgid "The Scalar Step Block must be preceded by a Pitch Block." -msgstr "音階内を上る/下りるブロックは、音の高さブロックの後に使ってください。" +#: js/blocks/ToneBlocks.js:44 +#: js/widgets/timbre.js:1562 +#.TRANS: Partials refers to the number of sine waves combined into the sound. +msgid "partials" +msgstr "倍音" -#: js/DrumActions.js:231 -msgid "Noise Block: Did you mean to use a Note block?" -msgstr "音符ブロックを使いますか?" +#: js/blocks/ToneBlocks.js:76 +msgid "You are adding multiple oscillator blocks." +msgstr "複数のオシレーターブロックを追加しています。" -#: js/MeterActions.js:101 -#: js/MeterActions.js:139 -msgid "beats per minute must be greater than" +#: js/blocks/ToneBlocks.js:144 +#: js/widgets/timbre.js:1225 +#.TRANS: a duo synthesizer combines a synth with a sequencer +msgid "duo synth" +msgstr "シーケンサー込みシンセ" + +#: js/blocks/ToneBlocks.js:149 +msgid "The Duo synth block is a duo-frequency modulator used to define a timbre." msgstr "" -#: js/MeterActions.js:111 -#: js/MeterActions.js:149 -msgid "maximum" -msgstr "最大限" +#: js/blocks/ToneBlocks.js:157 +#: js/widgets/timbre.js:1476 +msgid "vibrato rate" +msgstr "ビブラートエフェクタのレート" -#: js/MeterActions.js:117 -#: js/MeterActions.js:155 -msgid "beats per minute is" -msgstr "" +#: js/blocks/ToneBlocks.js:157 +msgid "vibrato intensity" +msgstr "ビブラートエフェクタの強度" -#: js/ToneActions.js:134 -msgid "Vibrato intensity must be between 1 and 100." -msgstr "ビブラートの大きさは、1から100までのはんいでせっていしてください。" +#: js/blocks/ToneBlocks.js:185 +#: js/widgets/timbre.js:1221 +#.TRANS: AM (amplitude modulation) synthesizer +msgid "AM synth" +msgstr "AM シンセ" -#: js/ToneActions.js:139 -msgid "Vibrato rate must be greater than 0." -msgstr "ビブラートのはやさは、0より大きいあたいをせっていしてください。" +#: js/blocks/ToneBlocks.js:189 +msgid "The AM synth block is an amplitude modulator used to define a timbre." +msgstr "" -#: js/ToneActions.js:192 -#: js/ToneActions.js:265 -#.TRANS: Depth is the intesity of the tremolo or chorus effect. -msgid "Depth is out of range." -msgstr "(エフェクタの)深さの数字が変域外です。" +#: js/blocks/ToneBlocks.js:224 +#: js/widgets/timbre.js:1223 +#.TRANS: FM (frequency modulation) synthesizer +msgid "FM synth" +msgstr "FM シンセ" -#: js/ToneActions.js:301 -msgid "Distortion must be from 0 to 100." -msgstr "ディストーションは、0から100までのはんいでせっていしてください。" +#: js/blocks/ToneBlocks.js:228 +msgid "The FM synth block is a frequency modulator used to define a timbre." +msgstr "" -#: js/ToneActions.js:332 -#.TRANS: partials components in a harmonic series -msgid "Partial must be greater than or equal to 0." -msgstr "倍音が0以上である必要があります。" +#: js/blocks/ToneBlocks.js:262 +msgid "partial" +msgstr "倍音" -#: js/ToneActions.js:378 -#: js/ToneActions.js:417 -#: js/ToneActions.js:456 -#: js/timbre.js:782 -msgid "Unable to use synth due to existing oscillator" -msgstr "オシレーターがあるため、シンセが使えません。" +#: js/blocks/ToneBlocks.js:265 +msgid "The Partial block is used to specify a weight for a specific partial harmonic." +msgstr "" -#: js/ToneActions.js:388 -#: js/ToneActions.js:427 -msgid "The input cannot be negative." -msgstr "マイナスの数値をいれることはできません。" +#: js/blocks/ToneBlocks.js:284 +#.TRANS: partials are weighted components in a harmonic series +msgid "Partial weight must be between 0 and 1." +msgstr "倍音のウェートは0と1の間である必要があります。" -#: js/DictActions.js:75 -#: js/DictActions.js:153 -#: js/DictActions.js:188 -msgid "font" -msgstr "フォント" +#: js/blocks/ToneBlocks.js:297 +#.TRANS: partials are weighted components in a harmonic series +msgid "Partial block should be used inside of a Weighted-partials block." +msgstr "倍音ブロックが「倍音ウェートブロック」の中にある必要があります。" -#: js/musicutils.js:363 -#: js/musicutils.js:471 -#: js/pitchdrummatrix.js:151 -#: js/musickeyboard.js:2563 -msgid "rest" -msgstr "休符" +#: js/blocks/ToneBlocks.js:325 +#.TRANS: partials are weighted components in a harmonic series +msgid "weighted partials" +msgstr "ウェート倍音" -#: js/musicutils.js:565 -#.TRANS: ordinal number. Please keep exactly one space between each number. -msgid "1st 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th" -msgstr "1度 2度 3度 4度 5度 6度 7度 8度 9度 10度 11度 12度" +#: js/blocks/ToneBlocks.js:383 +msgid "The Harmonic block will add harmonics to the contained notes." +msgstr "" -#: js/musicutils.js:629 -#: js/musicutils.js:812 -#: js/musicutils.js:911 -#.TRANS: augmented is a music term related to intervals -msgid "augmented" -msgstr "オーギュメント(増)" +#: js/blocks/ToneBlocks.js:390 +#.TRANS: A harmonic is an overtone. +msgid "harmonic" +msgstr "ハーモニックス" -#: js/musicutils.js:631 -#: js/musicutils.js:813 -#: js/musicutils.js:910 -#.TRANS: diminished is a music term related to intervals and mode -msgid "diminished" -msgstr "ディミニッシュ(減)" +#: js/blocks/ToneBlocks.js:431 +msgid "The Distortion block adds distortion to the pitch." +msgstr "" -#: js/musicutils.js:639 -#.TRANS: twelve semi-tone scale for music -msgid "chromatic" -msgstr "クロマティック音階" +#: js/blocks/ToneBlocks.js:438 +#: js/widgets/timbre.js:2100 +#.TRANS: distortion is an alteration in the sound +msgid "distortion" +msgstr "ディストーション" -#: js/musicutils.js:640 -msgid "algerian" -msgstr "アルジェリア音階" +#: js/blocks/ToneBlocks.js:487 +msgid "The Tremolo block adds a wavering effect." +msgstr "

トレモロブロック


ゆれるような音のひびきにする。はやさで、ゆれのはやさを調節できる。
" -#: js/musicutils.js:641 -msgid "spanish" -msgstr "スペイン音階" +#: js/blocks/ToneBlocks.js:495 +#: js/widgets/timbre.js:2092 +#.TRANS: a wavering effect in a musical tone +msgid "tremolo" +msgstr "トレモロ" -#: js/musicutils.js:643 -#.TRANS: modal scale in music -msgid "octatonic" -msgstr "オクタトニック・スケール" +#: js/blocks/ToneBlocks.js:500 +#: js/blocks/ToneBlocks.js:569 +#: js/blocks/ToneBlocks.js:630 +#: js/blocks/ToneBlocks.js:689 +#: js/widgets/timbre.js:2134 +#: js/widgets/timbre.js:2222 +#: js/widgets/timbre.js:2317 +#: js/widgets/timbre.js:2419 +#.TRANS: rate at which tremolo wavers +msgid "rate" +msgstr "はやさ" -#: js/musicutils.js:645 -#.TRANS: harmonic major scale in music -msgid "harmonic major" -msgstr "ハーモニック・メジャー(和声長音階)" +#: js/blocks/ToneBlocks.js:502 +#: js/blocks/ToneBlocks.js:630 +#: js/widgets/timbre.js:2137 +#: js/widgets/timbre.js:2328 +#.TRANS: amplitude of tremolo waver +msgid "depth" +msgstr "大きさ" -#: js/musicutils.js:647 -#.TRANS: natural minor scales in music -msgid "natural minor" -msgstr "自然短音階" +#: js/blocks/ToneBlocks.js:559 +msgid "The Phaser block adds a sweeping sound." +msgstr "" -#: js/musicutils.js:649 -#.TRANS: harmonic minor scale in music -msgid "harmonic minor" -msgstr "和声短音階" +#: js/blocks/ToneBlocks.js:566 +#: js/widgets/timbre.js:2098 +#.TRANS: alter the phase of the sound +msgid "phaser" +msgstr "フェーザー" -#: js/musicutils.js:651 -#.TRANS: melodic minor scale in music -msgid "melodic minor" -msgstr "旋律短音階" +#: js/blocks/ToneBlocks.js:569 +#: js/turtleactions/IntervalsActions.js:114 +#: js/widgets/timbre.js:2422 +msgid "octaves" +msgstr "オクターヴ" -#: js/musicutils.js:655 -#.TRANS: modal scale for music -msgid "dorian" -msgstr "ドリアン音階" +#: js/blocks/ToneBlocks.js:569 +#: js/widgets/timbre.js:2425 +msgid "base frequency" +msgstr "基本周波数" -#: js/musicutils.js:657 -#.TRANS: modal scale for music -msgid "phrygian" -msgstr "フリジアン音階" +#: js/blocks/ToneBlocks.js:619 +msgid "The Chorus block adds a chorus effect." +msgstr "

コーラスブロック


広がりのある音のひびきにする。はやさとずれで、ひびきが残る感じを調節できる。
" -#: js/musicutils.js:659 -#.TRANS: modal scale for music -msgid "lydian" -msgstr "リディアン音階" +#: js/blocks/ToneBlocks.js:627 +#: js/widgets/timbre.js:2096 +#.TRANS: musical effect to simulate a choral sound +msgid "chorus" +msgstr "コーラス" -#: js/musicutils.js:661 -#.TRANS: modal scale for music -msgid "mixolydian" -msgstr "ミクソリディアン音階" +#: js/blocks/ToneBlocks.js:630 +msgid "delay" +msgstr "ずれ" -#: js/musicutils.js:665 -#.TRANS: modal scale for music -msgid "locrian" -msgstr "ロクリアン音階" +#: js/blocks/ToneBlocks.js:678 +msgid "The Vibrato block adds a rapid, slight variation in pitch." +msgstr "

ビブラートブロック


音の高さに小きざみな変化をつける。" -#: js/musicutils.js:667 -#.TRANS: minor jazz scale for music -msgid "jazz minor" -msgstr "オルタード音階" +#: js/blocks/ToneBlocks.js:686 +#: js/widgets/timbre.js:2094 +#.TRANS: a rapid, slight variation in pitch +msgid "vibrato" +msgstr "ビブラート" -#: js/musicutils.js:669 -#.TRANS: bebop scale for music -msgid "bebop" -msgstr "ビバップ音階" +#: js/blocks/ToneBlocks.js:689 +#: js/widgets/timbre.js:2221 +msgid "intensity" +msgstr "大きさ" -#: js/musicutils.js:670 -msgid "arabic" -msgstr "アラビア音階" +#: js/blocks/ToneBlocks.js:733 +#.TRANS: select synthesizer +msgid "set synth" +msgstr "シンセを設定" -#: js/musicutils.js:671 -msgid "byzantine" -msgstr "ビザンティン" +#: js/blocks/ToneBlocks.js:804 +msgid "synth name" +msgstr "シンセの名前" -#: js/musicutils.js:673 -#.TRANS: musical scale for music by Verdi -msgid "enigmatic" -msgstr "ヴェルディの音階" +#: js/blocks/ToneBlocks.js:842 +msgid "set default instrument" +msgstr "音色標準を設定" -#: js/musicutils.js:674 -msgid "ethiopian" -msgstr "エチオピア音階" +#: js/blocks/ToneBlocks.js:895 +#: js/blocks/ToneBlocks.js:943 +#.TRANS: set the characteristics of a custom instrument +msgid "set instrument" +msgstr "音色をせってい" -#: js/musicutils.js:676 -#.TRANS: Ethiopic scale for music -msgid "geez" -msgstr "ゲエズ音階" +#: js/blocks/ToneBlocks.js:898 +#: js/blocks/ToneBlocks.js:926 +#: js/blocks/ToneBlocks.js:932 +msgid "The Set instrument block selects a voice for the synthesizer," +msgstr "

音色をせっていブロック


中に入っている「音符(おんぷ)ブロック」の音色を設定する。音色は、ギターやピアノなどの中から選ぶことができる。

" -#: js/musicutils.js:677 -msgid "hindu" -msgstr "ヒンドゥー音階" +#: js/blocks/ToneBlocks.js:900 +#: js/blocks/ToneBlocks.js:934 +msgid "eg guitar piano violin or cello." +msgstr "(例えば、ギター、ピアノ、バイオリン、チェロなど)。" -#: js/musicutils.js:678 -msgid "hungarian" -msgstr "ハンガリー音階" +#: js/blocks/ToneBlocks.js:1015 +msgid "Import a sound file to use as an instrument and set its pitch center." +msgstr "音色サンプルをアップロードして、音の高さを合わせる" -#: js/musicutils.js:680 -#.TRANS: minor Romanian scale for music -msgid "romanian minor" -msgstr "ルーマニア・マイナー音階" +#: js/blocks/ToneBlocks.js:1110 +msgid "Upload a sound file to connect with the sample block." +msgstr "音色サンプルをアップロードして、音の高さを合わせる" -#: js/musicutils.js:681 -msgid "spanish gypsy" -msgstr "スパニッシュ・ジプシー音階" +#: js/blocks/VolumeBlocks.js:35 +msgid "synth volume" +msgstr "シンセノ音量" -#: js/musicutils.js:683 -#.TRANS: musical scale for Mid-Eastern music -msgid "maqam" -msgstr "マカーム音階" +#: js/blocks/VolumeBlocks.js:39 +msgid "The Synth volume block returns the current volume of the current synthesizer." +msgstr "" -#: js/musicutils.js:685 -#.TRANS: minor blues scale for music -msgid "minor blues" -msgstr "マイナー・ブルース音階" +#: js/blocks/VolumeBlocks.js:105 +msgid "master volume" +msgstr "マスター音量" -#: js/musicutils.js:687 -#.TRANS: major blues scale for music -msgid "major blues" -msgstr "メジャー・ブルース音階" +#: js/blocks/VolumeBlocks.js:109 +msgid "The Master volume block returns the master volume." +msgstr "" -#: js/musicutils.js:688 -msgid "whole tone" -msgstr "ホールトーン音階" +#: js/blocks/VolumeBlocks.js:355 +#: js/blocks/VolumeBlocks.js:524 +msgid "set synth volume" +msgstr "楽器の音量をせってい" -#: js/musicutils.js:690 -#.TRANS: pentatonic is a general term that means "five note scale". This scale is typically known as "minor pentatonic" -msgid "minor pentatonic" -msgstr "マイナー・ペンタトニック音階" +#: js/blocks/VolumeBlocks.js:362 +#: js/blocks/VolumeBlocks.js:545 +msgid "synth" +msgstr "楽器" -#: js/musicutils.js:692 -#.TRANS: pentatonic is a general term that means "five note scale". This scale is typically known as "major pentatonic" -msgid "major pentatonic" -msgstr "メジャー・ペンタトニック音階" +#: js/blocks/VolumeBlocks.js:403 +#: js/blocks/VolumeBlocks.js:577 +#: js/blocks/VolumeBlocks.js:740 +#: js/turtleactions/VolumeActions.js:173 +msgid "Setting volume to 0." +msgstr "音量を「0」にせっていします。" -#: js/musicutils.js:693 -msgid "chinese" -msgstr "中国音階" +#: js/blocks/VolumeBlocks.js:440 +msgid "Synth not found" +msgstr "シンセが見つかりません" -#: js/musicutils.js:694 -msgid "egyptian" -msgstr "エジプト音階" +#: js/blocks/VolumeBlocks.js:494 +msgid "set drum volume" +msgstr "ドラムの音量をせってい" -#: js/musicutils.js:696 -#.TRANS: https://en.wikipedia.org/wiki/Hirajoshi_scale NOTE: There are three different versions of this scale -msgid "hirajoshi" -msgstr "平調子" +#: js/blocks/VolumeBlocks.js:530 +msgid "The Set synth volume block will change the volume of a particular synth," +msgstr "

楽器の音量をせっていブロック


ギター、ヴァイオリン、スネアドラムなどの楽器の音量をせっていする。" -#: js/musicutils.js:697 -msgid "Japan" -msgstr "日本" +#: js/blocks/VolumeBlocks.js:532 +msgid "eg guitar violin snare drum etc." +msgstr "
" -#: js/musicutils.js:699 -#.TRANS: https://en.wikipedia.org/wiki/In_scale and https://en.wikipedia.org/wiki/Sakura_Sakura -msgid "in" -msgstr "陰音階" +#: js/blocks/VolumeBlocks.js:534 +msgid "The default volume is 50." +msgstr "デフォルトは音量50。" -#: js/musicutils.js:701 -#.TRANS: https://en.wikipedia.org/wiki/Miny%C5%8D_scale -msgid "minyo" -msgstr "民謡音階" +#: js/blocks/VolumeBlocks.js:536 +msgid "The range is 0 for silence to 100 for full volume." +msgstr "0から100までのすうちをせっていできる。

" -#: js/musicutils.js:703 -#.TRANS: Italian mathematician -msgid "fibonacci" -msgstr "フィボナッチ音階" +#: js/blocks/VolumeBlocks.js:597 +msgid "set panning" +msgstr "ステレオを設定" -#: js/musicutils.js:708 -#: js/musicutils.js:1106 -#.TRANS: lowpass filter -msgid "lowpass" -msgstr "ローパス・フィルター" +#: js/blocks/VolumeBlocks.js:603 +msgid "The Set Panning block sets the panning for all synthesizers." +msgstr "" -#: js/musicutils.js:710 -#: js/musicutils.js:1107 -#.TRANS: bandpass filter -msgid "bandpass" -msgstr "バンドパス・フィルター" +#: js/blocks/VolumeBlocks.js:625 +msgid "Warning: Sound is coming out from only the left or right side." +msgstr "ワーニング:音は右か左だけのスピーカーから出ている" -#: js/musicutils.js:712 -#: js/musicutils.js:1108 -#.TRANS: high-shelf filter -msgid "highshelf" -msgstr "ハイシェルフ・フィルター" +#: js/blocks/VolumeBlocks.js:647 +#: js/blocks/VolumeBlocks.js:695 +msgid "set master volume" +msgstr "全体の音量をせってい" -#: js/musicutils.js:714 -#: js/musicutils.js:1109 -#.TRANS: low-shelf filter -msgid "lowshelf" -msgstr "ローシェルフ・フィルター" +#: js/blocks/VolumeBlocks.js:653 +msgid "The Set master volume block sets the volume for all synthesizers." +msgstr "

全体の音量をせっていブロック


全体の音量をせっていする。" -#: js/musicutils.js:716 -#: js/musicutils.js:1110 -#.TRANS: notch-shelf filter -msgid "notch" -msgstr "ノッチ・フィルター" +#: js/blocks/VolumeBlocks.js:784 +msgid "The Set relative volume block changes the volume of the contained notes." +msgstr "" -#: js/musicutils.js:718 -#: js/musicutils.js:1111 -#.TRANS: all-pass filter -msgid "allpass" -msgstr "オールパスフィルター" +#: js/blocks/VolumeBlocks.js:791 +msgid "set relative volume" +msgstr "相対音量を設定" -#: js/musicutils.js:720 -#: js/musicutils.js:1112 -#.TRANS: peaking filter -msgid "peaking" -msgstr "ピーク・フィルタ" +#: js/blocks/VolumeBlocks.js:857 +msgid "decrescendo" +msgstr "デクレシェンド" -#: js/musicutils.js:731 -#: js/synthutils.js:58 -#.TRANS: musical instrument -msgid "violin" -msgstr "バイオリン" +#: js/blocks/VolumeBlocks.js:921 +msgid "crescendo" +msgstr "クレシェンド" -#: js/musicutils.js:732 -#: js/synthutils.js:60 -#.TRANS: viola musical instrument -msgid "viola" -msgstr "ビオラ" +#: js/blocks/WidgetBlocks.js:81 +#.TRANS: sound envelope (ADSR) +msgid "envelope" +msgstr "エンベロープ" -#: js/musicutils.js:733 -#: js/synthutils.js:98 -#.TRANS: xylophone musical instrument -msgid "xylophone" -msgstr "木琴" +#: js/blocks/WidgetBlocks.js:89 +#.TRANS: Attack time is the time taken for initial run-up of level from nil to peak, beginning when the key is first pressed. +msgid "attack" +msgstr "アタック" -#: js/musicutils.js:734 -#: js/synthutils.js:120 -#.TRANS: vibraphone musical instrument -msgid "vibraphone" -msgstr "鉄琴" +#: js/blocks/WidgetBlocks.js:91 +#.TRANS: Decay time is the time taken for the subsequent run down from the attack level to the designated sustain level. +msgid "decay" +msgstr "ディケイ" + +#: js/blocks/WidgetBlocks.js:93 +#.TRANS: Sustain level is the level during the main sequence of the sound's duration, until the key is released. +msgid "sustain" +msgstr "サステイン" -#: js/musicutils.js:735 -#: js/synthutils.js:62 -#.TRANS: musical instrument -msgid "cello" -msgstr "チェロ" +#: js/blocks/WidgetBlocks.js:95 +#.TRANS: Release time is the time taken for the level to decay from the sustain level to zero after the key is released. +msgid "release" +msgstr "リリース" -#: js/musicutils.js:737 -#: js/synthutils.js:66 -#.TRANS: viola musical instrument -msgid "double bass" -msgstr "ダブルベース" +#: js/blocks/WidgetBlocks.js:113 +msgid "Attack value should be from 0 to 100." +msgstr "アタック値には 0 以上100以下の数字をいれて下さい。" -#: js/musicutils.js:738 -#: js/synthutils.js:68 -#: js/rhythmruler.js:2119 -#.TRANS: musical instrument -msgid "guitar" -msgstr "ギター" +#: js/blocks/WidgetBlocks.js:116 +msgid "Decay value should be from 0 to 100." +msgstr "減衰値には 0 以上100以下の数字をいれて下さい。" -#: js/musicutils.js:739 -#: js/synthutils.js:70 -#.TRANS: musical instrument -msgid "acoustic guitar" -msgstr "アコースティック" +#: js/blocks/WidgetBlocks.js:119 +msgid "Sustain value should be from 0 to 100." +msgstr "サステイン値には 0 以上100以下の数字をいれて下さい。" -#: js/musicutils.js:740 -#: js/synthutils.js:72 -#.TRANS: musical instrument -msgid "flute" -msgstr "フルート" +#: js/blocks/WidgetBlocks.js:122 +msgid "Release value should be from 0-100." +msgstr "リリース値には 0 以上100以下の数字をいれて下さい。" -#: js/musicutils.js:741 -#: js/synthutils.js:74 -#.TRANS: musical instrument -msgid "clarinet" -msgstr "クラリネット" +#: js/blocks/WidgetBlocks.js:140 +msgid "You are adding multiple envelope blocks." +msgstr "封筒ブロックを複数追加しています。" -#: js/musicutils.js:742 -#: js/synthutils.js:76 -#.TRANS: musical instrument -msgid "saxophone" -msgstr "サクソフォン" +#: js/blocks/WidgetBlocks.js:171 +#.TRANS: a filter removes some unwanted components from a signal +msgid "filter" +msgstr "フィルター" -#: js/musicutils.js:743 -#: js/synthutils.js:78 -#.TRANS: musical instrument -msgid "tuba" -msgstr "チューバ" +#: js/blocks/WidgetBlocks.js:181 +#: js/widgets/timbre.js:1818 +#.TRANS: rolloff is the steepness of a change in frequency. +msgid "rolloff" +msgstr "ロールオフ" -#: js/musicutils.js:744 -#: js/synthutils.js:80 -#.TRANS: musical instrument -msgid "trumpet" -msgstr "トランペット" +#: js/blocks/WidgetBlocks.js:213 +#.TRANS: rolloff is the steepness of a change in frequency. +msgid "Rolloff value should be either -12, -24, -48, or -96 decibels/octave." +msgstr "ロールオフ値は -12, -24, -48, -98 デシベル / オクターヴである必要があります。" -#: js/musicutils.js:745 -#: js/synthutils.js:82 -#.TRANS: musical instrument -msgid "oboe" -msgstr "オーボエ" +#: js/blocks/WidgetBlocks.js:252 +msgid "The Temperament tool is used to define custom tuning." +msgstr "" -#: js/musicutils.js:746 -#: js/synthutils.js:84 -#.TRANS: musical instrument -msgid "trombone" -msgstr "トロンボーン" +#: js/blocks/WidgetBlocks.js:332 +#: js/blocks/WidgetBlocks.js:1573 +#: js/widgets/sampler.js:547 +msgid "Upload a sample and adjust its pitch center." +msgstr "" -#: js/musicutils.js:747 -#: js/synthutils.js:100 -#.TRANS: polytone synthesizer -msgid "electronic synth" -msgstr "シンセサイザー" +#: js/blocks/WidgetBlocks.js:339 +#.TRANS: the speed at music is should be played. +msgid "sampler" +msgstr "サンプラー" -#: js/musicutils.js:748 -#: js/synthutils.js:102 -#.TRANS: simple monotone synthesizer -msgid "simple 1" -msgstr "シンプル1" +#: js/blocks/WidgetBlocks.js:517 +msgid "The Meter block opens a tool to select strong beats for the meter." +msgstr "

拍子ブロック


テーブルの数字をクリックして、強い拍(はく)の位置を決める。
★拍子(ひょうし)とは
拍(はく)がいくつかまとまったもの。
★拍(はく)とは
くり返されるリズムのこと。" -#: js/musicutils.js:749 -msgid "simple 2" -msgstr "シンプル2" +#: js/blocks/WidgetBlocks.js:573 +msgid "The oscilloscope block opens a tool to visualize waveforms." +msgstr "" -#: js/musicutils.js:750 -msgid "simple 3" -msgstr "シンプル3" +#: js/blocks/WidgetBlocks.js:578 +msgid "oscilloscope" +msgstr "オシロスコープ" -#: js/musicutils.js:751 -msgid "simple 4" -msgstr "シンプル4" +#: js/blocks/WidgetBlocks.js:645 +msgid "The Custom mode block opens a tool to explore musical mode (the spacing of the notes in a scale)." +msgstr "

モード(音階)ブロック


いろいろな音階をさがすツールを表示する。音階は、音と音のかんかくを決めながらさがすことができる。

★音階とは
順番に並んだ音のまとまり。たとえば、「ド」を始まりの音にしたときの「ドレミファソラシド」、「ソ」を始まりの音にしたときの「ソラシドレミ(♯ファ)ソ」のこと。" -#: js/musicutils.js:753 -#: js/synthutils.js:49 -#.TRANS: brown noise synthesizer -msgid "brown noise" -msgstr "ブラウンノイズ" +#: js/blocks/WidgetBlocks.js:651 +#.TRANS: musical mode is the pattern of half-steps in an octave, e.g., Major or Minor modes +msgid "custom mode" +msgstr "音階" -#: js/musicutils.js:754 -#: js/synthutils.js:51 -#.TRANS: pink noise synthesizer -msgid "pink noise" -msgstr "ピンクノイズ" +#: js/blocks/WidgetBlocks.js:700 +msgid "The Tempo block opens a metronome to visualize the beat." +msgstr "

メトロノームブロック


メトロノームを表示する。ボタンをおすと、メトロノームのはやさを変えられる。テーブルには、1分あたりの拍(はく)の数が表示される。

★拍(はく)とは
くり返されるリズムのこと。" -#: js/musicutils.js:756 -#: js/synthutils.js:127 -#: js/rhythmruler.js:1670 -#: js/rhythmruler.js:1928 -#.TRANS: musical instrument -msgid "snare drum" -msgstr "スネアドラム" +#: js/blocks/WidgetBlocks.js:762 +msgid "The Arpeggio Widget is used to compose chord sequences." +msgstr "「アルペジオ」ウィジェットは コード進行 を作るためです。" -#: js/musicutils.js:757 -#: js/synthutils.js:129 -#.TRANS: musical instrument -msgid "kick drum" -msgstr "キックドラム" +#: js/blocks/WidgetBlocks.js:837 +msgid "The Pitch drum matrix is used to map pitches to drum sounds." +msgstr "" -#: js/musicutils.js:758 -#: js/synthutils.js:131 -#.TRANS: musical instrument -msgid "tom tom" -msgstr "タムタム" +#: js/blocks/WidgetBlocks.js:842 +#.TRANS: makes a mapping between pitches and drum sounds +msgid "pitch-drum mapper" +msgstr "音高-ドラム・マッパー" -#: js/musicutils.js:759 -#: js/synthutils.js:133 -#.TRANS: musical instrument -msgid "floor tom" -msgstr "フロアタム" +#: js/blocks/WidgetBlocks.js:891 +msgid "You must have at least one pitch block and one drum block in the matrix." +msgstr "フレーズメーカーブロックには、音の高さブロックとドラムブロックを最低1つずつ入れてください。" -#: js/musicutils.js:760 -#: js/synthutils.js:135 -#.TRANS: musical instrument -msgid "bass drum" -msgstr "バスドラム" +#: js/blocks/WidgetBlocks.js:920 +msgid "The Pitch slider tool to is used to generate pitches at selected frequencies." +msgstr "

ヘルツスライダーブロック


スライダーを上下にうごかすことで、違う周波数(ヘルツのすうち)の音を聞くことができる。作った音をデータ化することができる。また、ヘルツの初期せっていちは、自由に変えられる。

★ヘルツとは音の高さを表す周波数。
★周波数とは音が1秒間に何回しんどうするかを表すすうち。周波数が高い(すうちが大きい)ほど、音が高くなる。" -#: js/musicutils.js:761 -#: js/synthutils.js:137 -#.TRANS: a drum made from an inverted cup -msgid "cup drum" -msgstr "カップドラム" +#: js/blocks/WidgetBlocks.js:925 +#.TRANS: widget to generate pitches using a slider +msgid "pitch slider" +msgstr "ヘルツスライダー" -#: js/musicutils.js:762 -#: js/synthutils.js:139 -#.TRANS: musical instrument -msgid "darbuka drum" -msgstr "ダブカドラム" +#: js/blocks/WidgetBlocks.js:977 +msgid "chromatic keyboard" +msgstr "クロマティック・キーボード" -#: js/musicutils.js:763 -#: js/synthutils.js:143 -#.TRANS: musical instrument -msgid "hi hat" -msgstr "ハイハット" +#: js/blocks/WidgetBlocks.js:1011 +#: js/blocks/WidgetBlocks.js:1077 +#.TRANS: widget to generate pitches using a slider +msgid "music keyboard" +msgstr "キーボード" -#: js/musicutils.js:764 -#: js/synthutils.js:145 -#.TRANS: a small metal bell -msgid "ride bell" -msgstr "ライドベル" +#: js/blocks/WidgetBlocks.js:1062 +#: js/blocks/WidgetBlocks.js:1069 +msgid "The Music keyboard block opens a piano keyboard that can be used to create notes." +msgstr "

キーボードブロック


ピアノのキーボードを表示する。作った音をデータ化することができる。

" -#: js/musicutils.js:765 -#: js/synthutils.js:147 -#.TRANS: musical instrument -msgid "cow bell" -msgstr "カウベル" +#: js/blocks/WidgetBlocks.js:1128 +msgid "The Pitch staircase tool to is used to generate pitches from a given ratio." +msgstr "" -#: js/musicutils.js:766 -msgid "japanese drum" -msgstr "太鼓" +#: js/blocks/WidgetBlocks.js:1135 +#.TRANS: generate a progressive sequence of pitches +msgid "pitch staircase" +msgstr "音高の数列を作る" -#: js/musicutils.js:767 -#: js/synthutils.js:153 -#.TRANS: musical instrument -msgid "japanese bell" -msgstr "鉦" +#: js/blocks/WidgetBlocks.js:1222 +msgid "The Rhythm Maker block opens a tool to create drum machines." +msgstr "

リズムメーカーブロック


音の長さでぶんかつしてリズムを作るテーブルを表示する。作ったリズムをデータ化することができる。

" -#: js/musicutils.js:768 -#: js/synthutils.js:149 -#.TRANS: musical instrument -msgid "triangle bell" -msgstr "トライアングル" +#: js/blocks/WidgetBlocks.js:1291 +msgid "G major scale" +msgstr "Gメジャー" -#: js/musicutils.js:769 -#: js/synthutils.js:151 -#.TRANS: musical instrument -msgid "finger cymbals" -msgstr "フィンガーシンバル" +#: js/blocks/WidgetBlocks.js:1326 +msgid "C major scale" +msgstr "Cメジャー" -#: js/musicutils.js:770 -#: js/synthutils.js:155 -#.TRANS: a musically tuned set of bells -msgid "chime" -msgstr "チャイム" +#: js/blocks/WidgetBlocks.js:1366 +msgid "The Phrase Maker block opens a tool to create musical phrases." +msgstr "

フレーズメーカーブロック


フレーズを作るためのテーブルを表示する。作ったフレーズをデータ化することができる。

★フレーズとは
ひとまとまりの音楽。

" -#: js/musicutils.js:771 -#: js/synthutils.js:157 -#.TRANS: a musical instrument -msgid "gong" -msgstr "ドラ" +#: js/blocks/WidgetBlocks.js:1373 +#.TRANS: assigns pitch to a sequence of beats to generate a melody +msgid "phrase maker" +msgstr "フレーズメーカー" -#: js/musicutils.js:772 -#: js/synthutils.js:159 -#.TRANS: sound effect -msgid "clang" -msgstr "カチャカチャ" +#: js/blocks/WidgetBlocks.js:1444 +msgid "You must have at least one pitch block and one rhythm block in the matrix." +msgstr "フレーズメーカーには、音の高さブロックと音符ブロックを組み合わせてください。" -#: js/musicutils.js:773 -#: js/synthutils.js:161 -#.TRANS: sound effect -msgid "crash" -msgstr "クラッシュ" +#: js/blocks/WidgetBlocks.js:1503 +msgid "The Status block opens a tool for inspecting the status of Music Blocks as it is running." +msgstr "

実行じょうきょうブロック


ブロックの実行じょうきょうをけんさくするテーブルを表示する。
" -#: js/musicutils.js:774 -#: js/synthutils.js:163 -#.TRANS: sound effect -msgid "bottle" -msgstr "空きびん" +#: js/blocks/WidgetBlocks.js:1580 +#.TRANS: AI-generated music +msgid "aimusic" +msgstr "" -#: js/musicutils.js:775 -#: js/synthutils.js:165 -#.TRANS: sound effect -msgid "clap" -msgstr "てびょうし" +#: js/turtleactions/MeterActions.js:101 +#: js/turtleactions/MeterActions.js:139 +msgid "beats per minute must be greater than" +msgstr "" -#: js/musicutils.js:776 -#: js/synthutils.js:167 -#.TRANS: sound effect -msgid "slap" -msgstr "ピシャリ" +#: js/turtleactions/MeterActions.js:111 +#: js/turtleactions/MeterActions.js:149 +msgid "maximum" +msgstr "最大限" -#: js/musicutils.js:777 -#: js/synthutils.js:169 -#.TRANS: sound effect -msgid "splash" -msgstr "しぶき" +#: js/turtleactions/MeterActions.js:117 +#: js/turtleactions/MeterActions.js:155 +msgid "beats per minute is" +msgstr "" -#: js/musicutils.js:778 -#: js/synthutils.js:171 -#.TRANS: sound effect -msgid "bubbles" -msgstr "あわ" +#: js/turtleactions/DictActions.js:75 +#: js/turtleactions/DictActions.js:142 +#: js/turtleactions/DictActions.js:172 +msgid "font" +msgstr "フォント" -#: js/musicutils.js:779 -#: js/synthutils.js:173 -#.TRANS: sound effect -msgid "raindrop" -msgstr "雨のしずく" +#: js/turtleactions/DictActions.js:255 +msgid "Dictionary with this name does not exist" +msgstr "" -#: js/musicutils.js:780 -#: js/synthutils.js:175 -#.TRANS: animal sound effect -msgid "cat" -msgstr "ねこ" +#: js/turtleactions/DictActions.js:259 +msgid "Key with this name does not exist in " +msgstr "" -#: js/musicutils.js:781 -#: js/synthutils.js:177 -#.TRANS: animal sound effect -msgid "cricket" -msgstr "こおろぎ" +#: js/turtleactions/DrumActions.js:227 +msgid "Noise Block: Did you mean to use a Note block?" +msgstr "音符ブロックを使いますか?" -#: js/musicutils.js:782 -#: js/synthutils.js:179 -#.TRANS: animal sound effect -msgid "dog" -msgstr "いぬ" +#: js/turtleactions/IntervalsActions.js:113 +msgid "one" +msgstr "" -#: js/musicutils.js:784 -#: js/synthutils.js:86 -#.TRANS: musical instrument -msgid "banjo" -msgstr "バンジョー" +#: js/turtleactions/IntervalsActions.js:113 +msgid "two" +msgstr "" -#: js/musicutils.js:785 -#: js/synthutils.js:88 -#.TRANS: musical instrument -msgid "koto" -msgstr "こと" +#: js/turtleactions/IntervalsActions.js:113 +msgid "three" +msgstr "" -#: js/musicutils.js:786 -#: js/synthutils.js:90 -#.TRANS: musical instrument -msgid "dulcimer" -msgstr "ダルシマー" +#: js/turtleactions/IntervalsActions.js:113 +msgid "four" +msgstr "" -#: js/musicutils.js:787 -#: js/synthutils.js:92 -#.TRANS: musical instrument -msgid "electric guitar" -msgstr "エレキギター" +#: js/turtleactions/IntervalsActions.js:113 +msgid "five" +msgstr "" -#: js/musicutils.js:788 -#: js/synthutils.js:94 -#.TRANS: musical instrument -msgid "bassoon" -msgstr "バスーン" +#: js/turtleactions/IntervalsActions.js:113 +msgid "six" +msgstr "" -#: js/musicutils.js:789 -#: js/synthutils.js:96 -#.TRANS: musical instrument -msgid "celeste" -msgstr "セレスタ" +#: js/turtleactions/IntervalsActions.js:113 +msgid "seven" +msgstr "" -#: js/musicutils.js:791 -#: js/musicutils.js:1123 -#: js/musicutils.js:1131 -#: js/temperament.js:650 -#.TRANS: musical temperament -msgid "equal" -msgstr "平均律" +#: js/turtleactions/IntervalsActions.js:113 +msgid "eight" +msgstr "" -#: js/musicutils.js:793 -#: js/musicutils.js:1125 -#: js/musicutils.js:1133 -#.TRANS: musical temperament -msgid "Pythagorean" -msgstr "ピタゴラス音律 " +#: js/turtleactions/IntervalsActions.js:113 +msgid "nine" +msgstr "" -#: js/musicutils.js:795 -#: js/musicutils.js:1124 -#: js/musicutils.js:1132 -#.TRANS: musical temperament -msgid "just intonation" -msgstr "純正律" +#: js/turtleactions/IntervalsActions.js:119 +msgid "a" +msgstr "" -#: js/musicutils.js:797 -#: js/musicutils.js:1126 -#: js/musicutils.js:1127 -#: js/musicutils.js:1134 -#: js/musicutils.js:1135 -#.TRANS: musical temperament -msgid "meantone" -msgstr "中全音律" +#: js/turtleactions/IntervalsActions.js:120 +msgid "below" +msgstr "" -#: js/musicutils.js:814 -msgid "major 7th" -msgstr "長七の和音(メイジャー・セブンス)" +#: js/turtleactions/IntervalsActions.js:124 +msgid "above" +msgstr "" -#: js/musicutils.js:815 -msgid "minor 7th" -msgstr "短七の和音(マイナー・セブンス)" +#: js/turtleactions/IntervalsActions.js:131 +msgid "plus" +msgstr "" -#: js/musicutils.js:816 -msgid "dominant 7th" -msgstr "属七の和音(ドミナント・セブンス)" +#: js/turtleactions/IntervalsActions.js:139 +msgid " below" +msgstr "" -#: js/musicutils.js:817 -msgid "minor-major 7th" -msgstr "短三長七の和音(マイナー・メイジャー・セブンス)" +#: js/turtleactions/IntervalsActions.js:257 +msgid "Adding missing pitch number 0." +msgstr "ピッチ数値「0」を加える" -#: js/musicutils.js:818 -msgid "fully-diminished 7th" -msgstr "減七の和音(ディミニッシュト・セブンス)" +#: js/turtleactions/IntervalsActions.js:265 +msgid "Ignoring pitch numbers less than zero or greater than eleven." +msgstr "ピッチ数値の数のうち、0未満あるいは11より大きい数は無視します。" -#: js/musicutils.js:819 -msgid "half-diminished 7th" -msgstr "減五短七の和音(ハーフ・ディミニッシュト)" +#: js/turtleactions/IntervalsActions.js:271 +msgid "Ignoring duplicate pitch numbers." +msgstr "重複しているピッチ数値は無視します" -#: js/musicutils.js:4379 -#: js/musicutils.js:4416 -msgid "current" -msgstr "現在の" +#: js/turtleactions/ToneActions.js:134 +msgid "Vibrato intensity must be between 1 and 100." +msgstr "ビブラートの大きさは、1から100までのはんいでせっていしてください。" -#: js/musicutils.js:4382 -#: js/musicutils.js:4407 -msgid "next" -msgstr "この次の" +#: js/turtleactions/ToneActions.js:139 +msgid "Vibrato rate must be greater than 0." +msgstr "ビブラートのはやさは、0より大きいあたいをせっていしてください。" -#: js/musicutils.js:4385 -#: js/musicutils.js:4412 -msgid "previous" -msgstr "この前の" +#: js/turtleactions/ToneActions.js:192 +#: js/turtleactions/ToneActions.js:265 +#.TRANS: Depth is the intesity of the tremolo or chorus effect. +msgid "Depth is out of range." +msgstr "(エフェクタの)深さの数字が変域外です。" -#: js/synthutils.js:104 -#.TRANS: simple monotone synthesizer -msgid "simple-2" -msgstr "シンプル・シンセ2" +#: js/turtleactions/ToneActions.js:301 +msgid "Distortion must be from 0 to 100." +msgstr "ディストーションは、0から100までのはんいでせっていしてください。" -#: js/synthutils.js:106 -#.TRANS: simple monotone synthesizer -msgid "simple-3" -msgstr "シンプル・シンセ3" +#: js/turtleactions/ToneActions.js:332 +#.TRANS: partials components in a harmonic series +msgid "Partial must be greater than or equal to 0." +msgstr "倍音が0以上である必要があります。" -#: js/synthutils.js:108 -#.TRANS: simple monotone synthesizer -msgid "simple-4" -msgstr "シンプル・シンセ4" +#: js/turtleactions/ToneActions.js:378 +#: js/turtleactions/ToneActions.js:417 +#: js/turtleactions/ToneActions.js:456 +#: js/widgets/timbre.js:782 +msgid "Unable to use synth due to existing oscillator" +msgstr "オシレーターがあるため、シンセが使えません。" -#: js/synthutils.js:141 -#.TRANS: musical instrument -msgid "taiko" -msgstr "太鼓" +#: js/turtleactions/ToneActions.js:388 +#: js/turtleactions/ToneActions.js:427 +msgid "The input cannot be negative." +msgstr "マイナスの数値をいれることはできません。" -#: js/modewidget.js:86 -#: js/modewidget.js:88 -#: js/modewidget.js:642 -#: js/modewidget.js:644 -#: js/modewidget.js:712 -#: js/modewidget.js:714 -#: js/temperament.js:2078 -#: js/rhythmruler.js:189 -#: js/rhythmruler.js:1410 -#: js/rhythmruler.js:1412 -#: js/rhythmruler.js:1435 -#: js/rhythmruler.js:1437 -#: js/meterwidget.js:89 -#: js/meterwidget.js:91 +#: js/widgets/modewidget.js:86 +#: js/widgets/modewidget.js:88 +#: js/widgets/modewidget.js:642 +#: js/widgets/modewidget.js:644 +#: js/widgets/modewidget.js:712 +#: js/widgets/modewidget.js:714 +#: js/widgets/meterwidget.js:194 +#: js/widgets/meterwidget.js:196 +#: js/widgets/temperament.js:2236 +#: js/widgets/rhythmruler.js:457 +#: js/widgets/rhythmruler.js:1790 +#: js/widgets/rhythmruler.js:1792 +#: js/widgets/rhythmruler.js:1816 +#: js/widgets/rhythmruler.js:1818 msgid "Play all" msgstr "全てさいせい" -#: js/modewidget.js:115 -#: js/pitchstaircase.js:641 -#: js/phrasemaker.js:339 -#: js/pitchdrummatrix.js:94 -#: js/pitchslider.js:125 -#: js/temperament.js:2083 -#: js/musickeyboard.js:530 -#: js/timbre.js:756 -#: js/meterwidget.js:124 -#: js/arpeggio.js:103 +#: js/widgets/modewidget.js:115 +#: js/widgets/meterwidget.js:229 +#: js/widgets/pitchdrummatrix.js:166 +#: js/widgets/pitchslider.js:125 +#: js/widgets/pitchstaircase.js:641 +#: js/widgets/temperament.js:2244 +#: js/widgets/timbre.js:756 +#: js/widgets/arpeggio.js:103 +#: js/widgets/musickeyboard.js:688 +#: js/widgets/phrasemaker.js:550 msgid "Save" msgstr "保存する" -#: js/modewidget.js:121 -#: js/pitchstaircase.js:686 -#: js/phrasemaker.js:356 -#: js/pitchdrummatrix.js:109 -#: js/musickeyboard.js:534 -#: js/rhythmruler.js:269 -#: js/arpeggio.js:118 +#: js/widgets/modewidget.js:121 +#: js/widgets/pitchdrummatrix.js:181 +#: js/widgets/pitchstaircase.js:686 +#: js/widgets/arpeggio.js:118 +#: js/widgets/musickeyboard.js:696 +#: js/widgets/phrasemaker.js:567 +#: js/widgets/rhythmruler.js:601 #.TRANS: clear all subdivisions from the ruler. msgid "Clear" msgstr "もとにもどす" -#: js/modewidget.js:127 +#: js/widgets/modewidget.js:127 msgid "Rotate counter clockwise" msgstr "左回りにずれる" -#: js/modewidget.js:133 +#: js/widgets/modewidget.js:133 msgid "Rotate clockwise" msgstr "右回りにずれる" -#: js/modewidget.js:139 +#: js/widgets/modewidget.js:139 msgid "Invert" msgstr "転回を" -#: js/modewidget.js:145 -#: js/pitchstaircase.js:678 -#: js/rhythmruler.js:258 -#: js/timbre.js:963 +#: js/widgets/modewidget.js:145 +#: js/widgets/pitchstaircase.js:678 +#: js/widgets/timbre.js:963 +#: js/widgets/rhythmruler.js:578 msgid "Undo" msgstr "1つもどす" -#: js/modewidget.js:163 +#: js/widgets/modewidget.js:163 #.TRANS: A circle of notes represents the musical mode. msgid "Click in the circle to select notes for the mode." msgstr "クリックで音の高さを選んで音階を設定できます。" -#: js/modewidget.js:1017 -#: js/pitchstaircase.js:580 -#: js/phrasemaker.js:4855 -#: js/temperament.js:1754 -#: js/rhythmruler.js:1865 -#: js/rhythmruler.js:2081 -#: js/tempo.js:414 +#: js/widgets/modewidget.js:1017 +#: js/widgets/pitchstaircase.js:580 +#: js/widgets/temperament.js:1929 +#: js/widgets/tempo.js:414 +#: js/widgets/phrasemaker.js:5356 +#: js/widgets/rhythmruler.js:2254 +#: js/widgets/rhythmruler.js:2472 msgid "New action block generated!" msgstr "新しいアクションを作りました!" -#: js/oscilloscope.js:79 +#: js/widgets/meterwidget.js:275 +msgid "Reset" +msgstr "" + +#: js/widgets/meterwidget.js:301 +msgid "Click in the circle to select strong beats for the meter." +msgstr "クリックで強い拍の位置を選べます。" + +#: js/widgets/oscilloscope.js:79 msgid "Zoom In" msgstr "" -#: js/oscilloscope.js:88 +#: js/widgets/oscilloscope.js:88 msgid "Zoom Out" msgstr "" -#: js/pitchstaircase.js:624 -msgid "Play chord" -msgstr "和音を再生する" - -#: js/pitchstaircase.js:632 -msgid "Play scale" -msgstr "音階を再生する" - -#: js/pitchstaircase.js:696 -msgid "Click on a note to create a new step." -msgstr "ピッチをクリックすると新しい段が作れますよ。" - -#: js/phrasemaker.js:363 -msgid "Export" -msgstr "テーブルをほぞん" - -#: js/phrasemaker.js:370 -msgid "Sort" -msgstr "ならべなおす" - -#: js/phrasemaker.js:373 -#: js/musickeyboard.js:559 -msgid "Add note" -msgstr "音符を足す" - -#: js/phrasemaker.js:764 -msgid "Click on the table to add notes." -msgstr "ます目をクリックするとメロディやリズムを作れます。" - -#: js/phrasemaker.js:2414 -#: js/phrasemaker.js:2543 -msgid "tuplet value" -msgstr "何連符価" - -#: js/pitchdrummatrix.js:270 -#: js/pitchdrummatrix.js:639 +#: js/widgets/pitchdrummatrix.js:356 +#: js/widgets/pitchdrummatrix.js:752 msgid "Click in the grid to map notes to drums." msgstr "グラフにクリックして音符をどちらのドラムに変えるか決めることができます。" -#: js/pitchslider.js:103 +#: js/widgets/pitchslider.js:103 msgid "Move up" msgstr "上げる" -#: js/pitchslider.js:114 +#: js/widgets/pitchslider.js:114 msgid "Move down" msgstr "下げる" -#: js/pitchslider.js:136 +#: js/widgets/pitchslider.js:136 msgid "Click on the slider to create a note block." msgstr "スライダーで音の高さを変えます。" -#: js/temperament.js:215 +#: js/widgets/pitchstaircase.js:624 +msgid "Play chord" +msgstr "和音を再生する" + +#: js/widgets/pitchstaircase.js:632 +msgid "Play scale" +msgstr "音階を再生する" + +#: js/widgets/pitchstaircase.js:696 +msgid "Click on a note to create a new step." +msgstr "ピッチをクリックすると新しい段が作れますよ。" + +#: js/widgets/temperament.js:321 msgid "back to 2:1 octave space" msgstr "2:1 オクターヴ・スペースに戻る" -#: js/temperament.js:323 +#: js/widgets/temperament.js:447 msgid "edit" msgstr "" -#: js/temperament.js:330 -#: js/temperament.js:332 -#: js/temperament.js:1336 -#: js/temperament.js:1338 +#: js/widgets/temperament.js:454 +#: js/widgets/temperament.js:456 +#: js/widgets/temperament.js:1493 +#: js/widgets/temperament.js:1495 msgid "close" msgstr "とじる" -#: js/temperament.js:423 -#: js/temperament.js:736 -#: js/temperament.js:743 -#: js/temperament.js:845 -#: js/temperament.js:935 -#: js/temperament.js:942 -#: js/temperament.js:1015 -#: js/temperament.js:1284 -#: js/temperament.js:1354 -#: js/temperament.js:1430 +#: js/widgets/temperament.js:552 +#: js/widgets/temperament.js:877 +#: js/widgets/temperament.js:884 +#: js/widgets/temperament.js:986 +#: js/widgets/temperament.js:1080 +#: js/widgets/temperament.js:1087 +#: js/widgets/temperament.js:1160 +#: js/widgets/temperament.js:1433 +#: js/widgets/temperament.js:1511 +#: js/widgets/temperament.js:1596 msgid "done" msgstr "終った" -#: js/temperament.js:477 -#: js/temperament.js:482 -#: js/temperament.js:918 +#: js/widgets/temperament.js:610 +#: js/widgets/temperament.js:615 +#: js/widgets/temperament.js:1063 msgid "ratio" msgstr "比率" -#: js/temperament.js:483 +#: js/widgets/temperament.js:616 msgid "interval" msgstr "音と音の間の間隔" -#: js/temperament.js:611 +#: js/widgets/temperament.js:744 msgid "non scalar" msgstr "音階内ではない" -#: js/temperament.js:650 +#: js/widgets/temperament.js:787 msgid "ratios" msgstr "比率" -#: js/temperament.js:650 +#: js/widgets/temperament.js:787 msgid "arbitrary" msgstr "自由意思" -#: js/temperament.js:719 +#: js/widgets/temperament.js:860 msgid "number of divisions" msgstr "分配の数" -#: js/temperament.js:741 -#: js/temperament.js:858 -#: js/temperament.js:940 -#: js/temperament.js:1033 +#: js/widgets/temperament.js:882 +#: js/widgets/temperament.js:999 +#: js/widgets/temperament.js:1085 +#: js/widgets/temperament.js:1178 msgid "preview" msgstr "試す" -#: js/temperament.js:788 +#: js/widgets/temperament.js:929 msgid "The Number of divisions is too large." msgstr "" -#: js/temperament.js:921 +#: js/widgets/temperament.js:1066 msgid "recursion" msgstr "反復" -#: js/temperament.js:1450 +#: js/widgets/temperament.js:1616 msgid "The octave ratio has changed. This changes temperament significantly." msgstr "" -#: js/temperament.js:2087 +#: js/widgets/temperament.js:2248 msgid "Table" msgstr "グリッド" -#: js/temperament.js:2185 +#: js/widgets/temperament.js:2356 msgid "Add pitches" msgstr "音高を足す" -#: js/musickeyboard.js:570 -msgid "Metronome" -msgstr "メトロノーム" - -#: js/musickeyboard.js:1296 -#: plugins/rodi.rtp:193 -msgid "duration" -msgstr "期間の設定" - -#: js/musickeyboard.js:2840 -msgid "New action blocks generated!" -msgstr "" - -#: js/musickeyboard.js:2841 -msgid "New action block generated" -msgstr "" - -#: js/musickeyboard.js:2984 -#: js/musickeyboard.js:2992 -msgid "MIDI device present." -msgstr "MIDIデバイスが見つかりました。" - -#: js/musickeyboard.js:2995 -msgid "No MIDI device found." -msgstr "MIDIデバイスが見つかりません。" - -#: js/musickeyboard.js:3000 -msgid "Failed to get MIDI access in browser." -msgstr "ブラウザはMIDIのアクセスができませんでした。" - -#: js/rhythmruler.js:202 -msgid "Save rhythms" -msgstr "リズムだけをほぞん" - -#: js/rhythmruler.js:222 -msgid "Save drum machine" -msgstr "ドラムとしてほぞん" - -#: js/rhythmruler.js:263 -#.TRANS: user can tap out a rhythm by clicking on a ruler. -msgid "Tap a rhythm" -msgstr "リズムをタップする" - -#: js/rhythmruler.js:342 -#: js/rhythmruler.js:344 -#: js/rhythmruler.js:1481 -#: js/rhythmruler.js:1483 -#: js/sampler.js:110 -#: js/sampler.js:112 -#: js/tempo.js:78 -#: js/tempo.js:97 -#: js/tempo.js:99 +#: js/widgets/tempo.js:78 +#: js/widgets/tempo.js:97 +#: js/widgets/tempo.js:99 +#: js/widgets/aiwidget.js:134 +#: js/widgets/aiwidget.js:136 +#: js/widgets/rhythmruler.js:681 +#: js/widgets/rhythmruler.js:683 +#: js/widgets/rhythmruler.js:1864 +#: js/widgets/rhythmruler.js:1866 +#: js/widgets/sampler.js:180 +#: js/widgets/sampler.js:182 msgid "Pause" msgstr "止める" -#: js/rhythmruler.js:478 -msgid "Click on the ruler to divide it." -msgstr "クリックするとリズムをわけることができます。" - -#: js/rhythmruler.js:603 -#: js/rhythmruler.js:605 -#: js/rhythmruler.js:804 -#: js/rhythmruler.js:806 -#: js/rhythmruler.js:1386 -#: js/rhythmruler.js:1388 -msgid "tap a rhythm" -msgstr "リズムをタップする" - -#: js/rhythmruler.js:1084 -msgid "Maximum value of 256 has been exceeded." -msgstr "リズムメーカーの音の長さは、最大256です。" - -#: js/sampler.js:137 -msgid "Warning: Sample is bigger than 1MB." -msgstr "" - -#: js/sampler.js:142 -msgid "Upload failed: Sample is not a .wav file." -msgstr "" - -#: js/sampler.js:164 -msgid "A new sample block was generated." -msgstr "新しい「音色サンプル」ブロックが作りました" - -#: js/sampler.js:255 -msgid "Upload sample" -msgstr "音色サンプルをアップロード" - -#: js/sampler.js:306 -msgid "Save sample" -msgstr "音色 サンプルを 保存" - -#: js/sampler.js:697 -#.TRANS: The reference tone is a sound used for comparison. -msgid "reference tone" -msgstr "" - -#: js/tempo.js:113 +#: js/widgets/tempo.js:113 msgid "Save tempo" msgstr "テンポを保存" -#: js/tempo.js:144 +#: js/widgets/tempo.js:144 msgid "speed up" msgstr "速くする" -#: js/tempo.js:150 +#: js/widgets/tempo.js:150 msgid "slow down" msgstr "遅くする" -#: js/tempo.js:194 +#: js/widgets/tempo.js:194 msgid "Adjust the tempo with the buttons." msgstr "1分あたりの拍数でテンポを決められます。" -#: js/tempo.js:261 +#: js/widgets/tempo.js:261 msgid "Please enter a number between 30 and 1000" msgstr "" -#: js/tempo.js:268 -#: js/tempo.js:271 +#: js/widgets/tempo.js:268 +#: js/widgets/tempo.js:271 msgid "The beats per minute must be between 30 and 1000." msgstr "1分あたりの拍の数は、30から1000までのはんいでせっていしてください。" -#: js/tempo.js:287 +#: js/widgets/tempo.js:287 msgid "The beats per minute must be below 1000." msgstr "" -#: js/tempo.js:303 +#: js/widgets/tempo.js:303 msgid "The beats per minute must be above 30" msgstr "" -#: js/timbre.js:766 +#: js/widgets/timbre.js:766 msgid "Synthesizer" msgstr "シンセサイザー" -#: js/timbre.js:789 +#: js/widgets/timbre.js:789 msgid "Oscillator" msgstr "オシレータ―" -#: js/timbre.js:840 +#: js/widgets/timbre.js:840 msgid "Envelope" msgstr "エンベロープ" -#: js/timbre.js:886 -#: js/GlobalTag.js:50 +#: js/widgets/timbre.js:886 +#: planet/js/GlobalTag.js:50 #.TRANS: On the Planet, we use labels to tag projects. msgid "Effects" msgstr "音響効果" -#: js/timbre.js:904 +#: js/widgets/timbre.js:904 msgid "Filter" msgstr "" -#: js/timbre.js:946 +#: js/widgets/timbre.js:946 msgid "Add filter" msgstr "フィルターを加える" -#: js/timbre.js:987 +#: js/widgets/timbre.js:987 msgid "Click on buttons to open the timbre design tools." msgstr "ボタンをクリックするとカスタム音色ツールが開きます。" -#: js/timbre.js:1273 +#: js/widgets/timbre.js:1273 msgid "harmonicity" msgstr "倍音の音色" -#: js/timbre.js:1340 -#: js/timbre.js:1406 +#: js/widgets/timbre.js:1340 +#: js/widgets/timbre.js:1406 msgid "modulation index" msgstr "モジュレーションインデックス" -#: js/timbre.js:1484 +#: js/widgets/timbre.js:1484 msgid "vibrato amount" msgstr "ビブラートの速さ" -#: js/timbre.js:1919 +#: js/widgets/timbre.js:1919 msgid "Filter already present." msgstr "" -#: js/timbre.js:2322 +#: js/widgets/timbre.js:2322 msgid "delay (MS)" msgstr "ディレイ・エフェクター(ms)" -#: js/timbre.js:2507 +#: js/widgets/timbre.js:2507 msgid "distortion amount" msgstr "ディストーションの大きさ" -#: js/meterwidget.js:170 -msgid "Reset" +#: js/widgets/aiwidget.js:180 +#: js/widgets/sampler.js:227 +msgid "Warning: Sample is bigger than 1MB." msgstr "" -#: js/meterwidget.js:196 -msgid "Click in the circle to select strong beats for the meter." -msgstr "クリックで強い拍の位置を選べます。" +#: js/widgets/aiwidget.js:539 +msgid "New start block generated" +msgstr "" + +#: js/widgets/aiwidget.js:541 +msgid "MIDI loading. This may take some time depending upon the number of notes in the track" +msgstr "" + +#: js/widgets/aiwidget.js:551 +#: js/widgets/sampler.js:254 +msgid "Upload failed: Sample is not a .wav file." +msgstr "" -#: js/arpeggio.js:239 +#: js/widgets/aiwidget.js:679 +#: js/widgets/sampler.js:432 +msgid "Save sample" +msgstr "音色 サンプルを 保存" + +#: js/widgets/aiwidget.js:701 +msgid "AI Music" +msgstr "" + +#: js/widgets/arpeggio.js:239 msgid "Click in the grid to add steps to the arpeggio." msgstr "テーブルを クリックでアルペジオのピッチを加える。" -#: js/ProjectStorage.js:243 -msgid "anonymous" -msgstr "匿名" +#: js/widgets/help.js:95 +#: js/widgets/help.js:125 +#: js/widgets/help.js:146 +#: js/widgets/help.js:158 +#: js/widgets/help.js:376 +#: js/widgets/help.js:391 +msgid "Take a tour" +msgstr "ツアーを始めよう" + +#: js/widgets/musickeyboard.js:725 +#: js/widgets/phrasemaker.js:584 +msgid "Add note" +msgstr "音符を足す" -#: js/GlobalCard.js:68 -msgid "Share" -msgstr "シェア" +#: js/widgets/musickeyboard.js:744 +msgid "Metronome" +msgstr "メトロノーム" -#: js/GlobalCard.js:74 -msgid "Flags" -msgstr "旗" +#: js/widgets/musickeyboard.js:1549 +#: plugins/rodi.rtp:193 +msgid "duration" +msgstr "期間の設定" -#: js/LocalCard.js:36 -msgid "View published project" -msgstr "公開されたプロジェクトを見る" +#: js/widgets/musickeyboard.js:3179 +msgid "New action blocks generated" +msgstr "" -#: js/LocalCard.js:42 -msgid "Publish project" -msgstr "プロジェクトを公開する" +#: js/widgets/musickeyboard.js:3180 +msgid "New action block generated" +msgstr "" -#: js/LocalCard.js:51 -msgid "Edit project" -msgstr "プロジェクトを編集する" +#: js/widgets/musickeyboard.js:3365 +#: js/widgets/musickeyboard.js:3373 +msgid "MIDI device present." +msgstr "MIDIデバイスが見つかりました。" -#: js/LocalCard.js:52 -msgid "Delete project" -msgstr "プロジェクトを消す" +#: js/widgets/musickeyboard.js:3376 +msgid "No MIDI device found." +msgstr "MIDIデバイスが見つかりません。" + +#: js/widgets/musickeyboard.js:3386 +msgid "Failed to get MIDI access in browser." +msgstr "ブラウザはMIDIのアクセスができませんでした。" + +#: js/widgets/phrasemaker.js:574 +msgid "Export" +msgstr "テーブルをほぞん" + +#: js/widgets/phrasemaker.js:581 +msgid "Sort" +msgstr "ならべなおす" + +#: js/widgets/phrasemaker.js:975 +msgid "Click on the table to add notes." +msgstr "ます目をクリックするとメロディやリズムを作れます。" + +#: js/widgets/phrasemaker.js:2677 +#: js/widgets/phrasemaker.js:2819 +msgid "tuplet value" +msgstr "何連符価" + +#: js/widgets/rhythmruler.js:486 +msgid "Save rhythms" +msgstr "リズムだけをほぞん" + +#: js/widgets/rhythmruler.js:512 +msgid "Save drum machine" +msgstr "ドラムとしてほぞん" + +#: js/widgets/rhythmruler.js:589 +#.TRANS: user can tap out a rhythm by clicking on a ruler. +msgid "Tap a rhythm" +msgstr "リズムをタップする" + +#: js/widgets/rhythmruler.js:817 +msgid "Click on the ruler to divide it." +msgstr "クリックするとリズムをわけることができます。" + +#: js/widgets/rhythmruler.js:950 +#: js/widgets/rhythmruler.js:952 +#: js/widgets/rhythmruler.js:1152 +#: js/widgets/rhythmruler.js:1154 +#: js/widgets/rhythmruler.js:1765 +#: js/widgets/rhythmruler.js:1767 +msgid "tap a rhythm" +msgstr "リズムをタップする" + +#: js/widgets/rhythmruler.js:1459 +msgid "Maximum value of 256 has been exceeded." +msgstr "リズムメーカーの音の長さは、最大256です。" + +#: js/widgets/sampler.js:237 +msgid "Recording started..." +msgstr "" + +#: js/widgets/sampler.js:245 +msgid "Recording complete..." +msgstr "" + +#: js/widgets/sampler.js:283 +msgid "A new sample block was generated." +msgstr "新しい「音色サンプル」ブロックが作りました" + +#: js/widgets/sampler.js:378 +msgid "Upload sample" +msgstr "音色サンプルをアップロード" + +#: js/widgets/sampler.js:399 +msgid "Warning: Your sample cannot be loaded because it is >1MB." +msgstr "" + +#: js/widgets/sampler.js:448 +msgid "Toggle Mic" +msgstr "" -#: js/LocalCard.js:53 -msgid "Download project" -msgstr "プロジェクトをダウンロードする" +#: js/widgets/sampler.js:458 +msgid "Playback" +msgstr "" -#: js/LocalCard.js:55 -msgid "Duplicate project" -msgstr "プロジェクトをコピーする" +#: js/widgets/sampler.js:979 +#.TRANS: The reference tone is a sound used for comparison. +msgid "reference tone" +msgstr "" -#: js/GlobalTag.js:28 +#: planet/js/GlobalTag.js:28 #.TRANS: On the Planet, we use labels to tag projects. msgid "All Projects" msgstr "全てのプロジェクト" -#: js/GlobalTag.js:30 -#: js/StringHelper.js:37 +#: planet/js/GlobalTag.js:30 +#: planet/js/StringHelper.js:37 #.TRANS: On the Planet, we use labels to tag projects. msgid "My Projects" msgstr "自分のプロジェクト" -#: js/GlobalTag.js:32 +#: planet/js/GlobalTag.js:32 #.TRANS: On the Planet, we use labels to tag projects. msgid "Examples" msgstr "プロジェクトの見本" -#: js/GlobalTag.js:34 +#: planet/js/GlobalTag.js:34 #.TRANS: On the Planet, we use labels to tag projects. msgid "Music" msgstr "音楽" -#: js/GlobalTag.js:36 +#: planet/js/GlobalTag.js:36 #.TRANS: On the Planet, we use labels to tag projects. msgid "Art" msgstr "アート" -#: js/GlobalTag.js:38 +#: planet/js/GlobalTag.js:38 #.TRANS: On the Planet, we use labels to tag projects. msgid "Math" msgstr "算数" -#: js/GlobalTag.js:40 +#: planet/js/GlobalTag.js:40 #.TRANS: On the Planet, we use labels to tag projects. msgid "Interactive" msgstr "インタラクティブ" -#: js/GlobalTag.js:42 +#: planet/js/GlobalTag.js:42 #.TRANS: On the Planet, we use labels to tag projects. msgid "Design" msgstr "デザイン" -#: js/GlobalTag.js:44 +#: planet/js/GlobalTag.js:44 #.TRANS: On the Planet, we use labels to tag projects. msgid "Game" msgstr "ゲーム" -#: js/GlobalTag.js:46 +#: planet/js/GlobalTag.js:46 #.TRANS: On the Planet, we use labels to tag projects. msgid "Media" msgstr "メディア" -#: js/GlobalTag.js:48 +#: planet/js/GlobalTag.js:48 #.TRANS: On the Planet, we use labels to tag projects. msgid "Sensors" msgstr "センサー" -#: js/GlobalTag.js:52 +#: planet/js/GlobalTag.js:52 #.TRANS: On the Planet, we use labels to tag projects. msgid "Code Snippet" msgstr "短いコード" -#: js/helper.js:149 -#: js/StringHelper.js:49 -msgid "Show more tags" -msgstr "タッグをもっと見る" +#: planet/js/LocalCard.js:36 +msgid "View published project" +msgstr "公開されたプロジェクトを見る" -#: js/helper.js:150 -msgid "Show fewer tags" -msgstr "タッグを非表示" +#: planet/js/LocalCard.js:42 +msgid "Publish project" +msgstr "プロジェクトを公開する" + +#: planet/js/LocalCard.js:51 +msgid "Edit project" +msgstr "プロジェクトを編集する" + +#: planet/js/LocalCard.js:52 +msgid "Delete project" +msgstr "プロジェクトを消す" + +#: planet/js/LocalCard.js:53 +msgid "Download project" +msgstr "プロジェクトをダウンロードする" + +#: planet/js/LocalCard.js:55 +msgid "Duplicate project" +msgstr "プロジェクトをコピーする" + +#: planet/js/ProjectStorage.js:243 +msgid "anonymous" +msgstr "匿名" -#: js/ProjectViewer.js:30 +#: planet/js/SaveInterface.js:34 +msgid "Open in Music Blocks" +msgstr "ミュージック・ブロックスで開きます" + +#: planet/js/SaveInterface.js:35 +msgid "Open in Turtle Blocks" +msgstr "" + +#: planet/js/GlobalCard.js:68 +msgid "Share" +msgstr "シェア" + +#: planet/js/GlobalCard.js:74 +msgid "Flags" +msgstr "旗" + +#: planet/js/GlobalPlanet.js:35 +msgid "No results found." +msgstr "検索の結果に何もはありません" + +#: planet/js/GlobalPlanet.js:51 +msgid "Remix of" +msgstr "のリミックス" + +#: planet/js/GlobalPlanet.js:509 +msgid "Cannot connect to server" +msgstr "サーバに接続できません" + +#: planet/js/ProjectViewer.js:30 msgid "Error: Report could not be submitted. Try again later." msgstr "エラー:通報ができませんでした。後で再度試してください。" -#: js/ProjectViewer.js:31 +#: planet/js/ProjectViewer.js:31 msgid "Thank you for reporting this project. A moderator will review the project shortly, to verify violation of the Sugar Labs Code of Conduct." msgstr "このプロジェクトを通報して下さってありがとうございます。モデレータが間もなく、プロジェクトを見ます。" -#: js/ProjectViewer.js:32 -#: js/StringHelper.js:62 -#: js/StringHelper.js:64 -#: js/StringHelper.js:68 +#: planet/js/ProjectViewer.js:32 +#: planet/js/StringHelper.js:62 +#: planet/js/StringHelper.js:64 +#: planet/js/StringHelper.js:68 msgid "Report Project" msgstr "プロジェクトを通報する" -#: js/ProjectViewer.js:33 -#: js/StringHelper.js:63 +#: planet/js/ProjectViewer.js:33 +#: planet/js/StringHelper.js:63 msgid "Project Reported" msgstr "プロジェクトは通報されました" -#: js/ProjectViewer.js:34 +#: planet/js/ProjectViewer.js:34 msgid "Report description required" msgstr "レポート表記が必要です" -#: js/ProjectViewer.js:35 +#: planet/js/ProjectViewer.js:35 msgid "Report description too long" msgstr "レポート表記が長すぎます" -#: js/StringHelper.js:30 +#: planet/js/Publisher.js:30 +msgid "Feature unavailable - cannot connect to server. Reload Music Blocks to try again." +msgstr "エラー:サーバに接続できません。ミュージック・ブロックスをリロードし、再度試して下さい。" + +#: planet/js/Publisher.js:220 +#: planet/js/Publisher.js:237 +msgid "This field is required" +msgstr "この項目は必須項目です" + +#: planet/js/Publisher.js:227 +msgid "Title too long" +msgstr "タイトルが長すぎます" + +#: planet/js/Publisher.js:244 +msgid "Description too long" +msgstr "表記が長すぎます" + +#: planet/js/Publisher.js:341 +msgid "Server Error" +msgstr "サーバーエラー" + +#: planet/js/Publisher.js:341 +msgid "Try Again" +msgstr "もう一度使い直してください。" + +#: planet/js/StringHelper.js:30 msgid "Planet" msgstr "プラネット" -#: js/StringHelper.js:31 +#: planet/js/StringHelper.js:31 msgid "Close Planet" msgstr "プラネットを閉じる" -#: js/StringHelper.js:32 +#: planet/js/StringHelper.js:32 msgid "Open project from file" msgstr "ファイルからプロジェクトを開く" -#: js/StringHelper.js:34 +#: planet/js/StringHelper.js:34 msgid "Local" msgstr "ローカル" -#: js/StringHelper.js:35 +#: planet/js/StringHelper.js:35 msgid "Global" msgstr "グローバル" -#: js/StringHelper.js:36 +#: planet/js/StringHelper.js:36 msgid "Search for a project" msgstr "プロジェクト検索" -#: js/StringHelper.js:38 +#: planet/js/StringHelper.js:38 msgid "Publish Project" msgstr "プロジェクトを公開する" -#: js/StringHelper.js:40 +#: planet/js/StringHelper.js:40 msgid "Tags (max 5)" msgstr "タッグ(最大5個)" -#: js/StringHelper.js:41 -#: js/StringHelper.js:61 +#: planet/js/StringHelper.js:41 +#: planet/js/StringHelper.js:61 msgid "Description" msgstr "記入" -#: js/StringHelper.js:42 -#: js/StringHelper.js:67 +#: planet/js/StringHelper.js:42 +#: planet/js/StringHelper.js:67 msgid "Submit" msgstr "確認" -#: js/StringHelper.js:43 -#: js/StringHelper.js:47 +#: planet/js/StringHelper.js:43 +#: planet/js/StringHelper.js:47 msgid "Cancel" msgstr "キャンセル" -#: js/StringHelper.js:44 +#: planet/js/StringHelper.js:44 msgid "Delete \\"\\"?" msgstr "\\"\\"を消しますか?" -#: js/StringHelper.js:45 +#: planet/js/StringHelper.js:45 msgid "Permanently delete project \\"\\"?" msgstr "\\"\\"を完全消しますか?" -#: js/StringHelper.js:48 +#: planet/js/StringHelper.js:48 msgid "Explore Projects" msgstr "プロジェクトを探す" -#: js/StringHelper.js:50 +#: planet/js/StringHelper.js:49 +#: planet/js/helper.js:149 +msgid "Show more tags" +msgstr "タッグをもっと見る" + +#: planet/js/StringHelper.js:50 msgid "Most recent" msgstr "一番最近" -#: js/StringHelper.js:51 +#: planet/js/StringHelper.js:51 msgid "Most liked" msgstr "「いいね」の一番ある" -#: js/StringHelper.js:52 +#: planet/js/StringHelper.js:52 msgid "Most downloaded" msgstr "ダウンロードの一番ある" -#: js/StringHelper.js:53 +#: planet/js/StringHelper.js:53 msgid "A-Z" msgstr "「A-Z」の順番" -#: js/StringHelper.js:54 +#: planet/js/StringHelper.js:54 msgid "Sort by" msgstr "~で整理する" -#: js/StringHelper.js:55 +#: planet/js/StringHelper.js:55 msgid "Load More Projects" msgstr "プロジェクトをもっとロードする" -#: js/StringHelper.js:56 +#: planet/js/StringHelper.js:56 msgid "Last Updated" msgstr "最後の更新" -#: js/StringHelper.js:57 +#: planet/js/StringHelper.js:57 msgid "Creation Date" msgstr "作成日" -#: js/StringHelper.js:58 +#: planet/js/StringHelper.js:58 msgid "Number of Downloads:" msgstr "ダウンロード数" -#: js/StringHelper.js:59 +#: planet/js/StringHelper.js:59 msgid "Number of Likes:" msgstr "「いいね」の数" -#: js/StringHelper.js:60 +#: planet/js/StringHelper.js:60 msgid "Tags:" msgstr "タッグ" -#: js/StringHelper.js:65 +#: planet/js/StringHelper.js:65 msgid "Report projects which violate the
Sugar Labs Code of Conduct." msgstr "シュガー・ラボ " -#: js/StringHelper.js:66 +#: planet/js/StringHelper.js:66 msgid "Reason for reporting project" msgstr "プロジェクトを通報する理由" -#: js/StringHelper.js:70 +#: planet/js/StringHelper.js:70 msgid "Download as File" msgstr "ファイルでダウンロードする" -#: js/GlobalPlanet.js:35 -msgid "No results found." -msgstr "検索の結果に何もはありません" - -#: js/GlobalPlanet.js:51 -msgid "Remix of" -msgstr "のリミックス" - -#: js/GlobalPlanet.js:509 -msgid "Cannot connect to server" -msgstr "サーバに接続できません" - -#: js/Publisher.js:30 -msgid "Feature unavailable - cannot connect to server. Reload Music Blocks to try again." -msgstr "エラー:サーバに接続できません。ミュージック・ブロックスをリロードし、再度試して下さい。" - -#: js/Publisher.js:218 -#: js/Publisher.js:235 -msgid "This field is required" -msgstr "この項目は必須項目です" - -#: js/Publisher.js:225 -msgid "Title too long" -msgstr "タイトルが長すぎます" +#: planet/js/helper.js:150 +msgid "Show fewer tags" +msgstr "タッグを非表示" -#: js/Publisher.js:242 -msgid "Description too long" -msgstr "表記が長すぎます" +#: plugins/accelerometer.rtp:48 +msgid "motion x" +msgstr "x座標の動き" -#: js/Publisher.js:339 -msgid "Server Error" -msgstr "サーバーエラー" +#: plugins/accelerometer.rtp:56 +msgid "motion y" +msgstr "y座標の動き" -#: js/Publisher.js:339 -msgid "Try Again" -msgstr "もう一度使い直してください。" +#: plugins/accelerometer.rtp:64 +msgid "motion z" +msgstr "z座標の動き" -#: js/SaveInterface.js:34 -msgid "Open in Music Blocks" -msgstr "ミュージック・ブロックスで開きます" +#: plugins/facebook.rtp:27 +msgid "publish" +msgstr "プロジェクトをフェースブックにアップロードする" -#: js/SaveInterface.js:35 -msgid "Open in Turtle Blocks" -msgstr "" +#: plugins/maths.rtp:62 +msgid "power" +msgstr "指数" -#: plugins/weather.rtp:68 -#: plugins/weather.rtp:97 -msgid "Days ahead must be in the range of -1 to 5." -msgstr "日にちは -1から5までの数でなくてはなりません" +#: plugins/maths.rtp:62 +msgid "base" +msgstr "ベース" -#: plugins/weather.rtp:122 -msgid "forecast" -msgstr "天気予報" +#: plugins/maths.rtp:62 +msgid "exp" +msgstr "exp" -#: plugins/weather.rtp:123 -#: plugins/weather.rtp:137 -#: plugins/weather.rtp:150 -msgid "city" -msgstr "市" +#: plugins/maths.rtp:99 +msgid "floor" +msgstr "床" -#: plugins/weather.rtp:124 -#: plugins/weather.rtp:138 -#: plugins/weather.rtp:151 -msgid "day" -msgstr "曜日" +#: plugins/maths.rtp:104 +msgid "ceiling" +msgstr "天井" -#: plugins/weather.rtp:136 -msgid "high" -msgstr "高" +#: plugins/maths.rtp:109 +msgid "to degrees" +msgstr "度数法へ変換" -#: plugins/weather.rtp:149 -msgid "low" -msgstr "低" +#: plugins/maths.rtp:114 +msgid "to radians" +msgstr "ラジアンへ変換" #: plugins/nutrition.rtp:104 msgid "get calories" @@ -7350,45 +7754,6 @@ msgstr "クッキー" msgid "water" msgstr "水" -#: plugins/maths.rtp:62 -#: plugins/examples.rtp:93 -msgid "power" -msgstr "指数" - -#: plugins/maths.rtp:62 -#: plugins/examples.rtp:93 -msgid "base" -msgstr "ベース" - -#: plugins/maths.rtp:62 -#: plugins/examples.rtp:93 -msgid "exp" -msgstr "exp" - -#: plugins/maths.rtp:99 -#: plugins/examples.rtp:130 -msgid "floor" -msgstr "床" - -#: plugins/maths.rtp:104 -#: plugins/examples.rtp:135 -msgid "ceiling" -msgstr "天井" - -#: plugins/maths.rtp:109 -#: plugins/examples.rtp:140 -msgid "to degrees" -msgstr "度数法へ変換" - -#: plugins/maths.rtp:114 -#: plugins/examples.rtp:145 -msgid "to radians" -msgstr "ラジアンへ変換" - -#: plugins/facebook.rtp:27 -msgid "publish" -msgstr "プロジェクトをフェースブックにアップロードする" - #: plugins/rodi.rtp:172 msgid "blink" msgstr "点滅する" @@ -7417,17 +7782,68 @@ msgstr "赤外光 (右)" msgid "move" msgstr "動き出し" -#: plugins/accelerometer.rtp:48 -msgid "motion x" -msgstr "x座標の動き" +#: plugins/weather.rtp:68 +#: plugins/weather.rtp:97 +msgid "Days ahead must be in the range of -1 to 5." +msgstr "日にちは -1から5までの数でなくてはなりません" -#: plugins/accelerometer.rtp:56 -msgid "motion y" -msgstr "y座標の動き" +#: plugins/weather.rtp:122 +msgid "forecast" +msgstr "天気予報" -#: plugins/accelerometer.rtp:64 -msgid "motion z" -msgstr "z座標の動き" +#: plugins/weather.rtp:123 +#: plugins/weather.rtp:137 +#: plugins/weather.rtp:150 +msgid "city" +msgstr "市" + +#: plugins/weather.rtp:124 +#: plugins/weather.rtp:138 +#: plugins/weather.rtp:151 +msgid "day" +msgstr "曜日" + +#: plugins/weather.rtp:136 +msgid "high" +msgstr "高" + +#: plugins/weather.rtp:149 +msgid "low" +msgstr "低" + +#~msgid ""Toggle Fullscreen" +#~msgstr ""フルスクリーンの切り替え" + +#: js/toolbar.js:70 + +#: js/toolbar.js:130 + +#: js/toolbar.js:194 + +#: js/toolbar.js:249 + +#~msgid "Toggle JavaScript Editor" +#~msgstr "JavaScript編集をオン/オフ" + +#: js/EnsembleBlocks.js:643 + +#~msgid "The Turrle pitch block returns the current pitch number being played by the specified turtle." +#~msgstr "" + +#: js/PitchActions.js:88 + +#~msgid "The Scalar Step Block must be used inside of a Note Block." +#~msgstr "音階内を上る/下りるブロックは、音符ブロックの中に入れて使ってください。" + +#: js/PitchActions.js:107 + +#~msgid "The Scalar Step Block must be preceded by a Pitch Block." +#~msgstr "音階内を上る/下りるブロックは、音の高さブロックの後に使ってください。" + +#: js/musickeyboard.js:2840 + +#~msgid "New action blocks generated!" +#~msgstr "" #: js/toolbar.js:110 @@ -7769,11 +8185,6 @@ msgstr "z座標の動き" #~msgid "The Time block returns the number of seconds that the program has been running." #~msgstr "" -#: js/help.js:95 - -#~msgid "Take a tour" -#~msgstr "ツアーを始めよう" - #: js/GlobalCard.js:48 #~msgid "More Details" @@ -8979,26 +9390,24 @@ msgstr "z座標の動き" #~msgid "half note 𝅗𝅥" #~msgstr "半音符 𝅗𝅥" -msgid "current interval" -msgstr "現在の音階" +#~msgid "Solfege pitch preview" +#~msgstr "ソルフェージュで音の高さのプレビュー" -msgid "Solfege pitch preview" -msgstr "ソルフェージュで音の高さのプレビュー" +#~msgid "Moveable Do" +#~msgstr "移動ド" -msgid "Moveable Do" -msgstr "移動ド" +#~msgid "Fixed Do" +#~msgstr "固定ド" -msgid "Fixed Do" -msgstr "固定ド" +#~msgid "Fullscreen" +#~msgstr "フルスクリーン" -msgid "Fullscreen" -msgstr "フルスクリーン" +#~msgid "Javascript editor" +#~msgstr "ジャバスクリプト エディタ" -msgid "Javascript editor" -msgstr "ジャバスクリプト エディタ" +#~msgid "Turtle Wrap off" +#~msgstr "画面の境界を無視しない" -msgid "Turtle Wrap off" -msgstr "画面の境界を無視しない" +#~msgid "Turtle Wrap on" +#~msgstr "画面の境界を無視す" -msgid "Turtle Wrap on" -msgstr "画面の境界を無視する" \ No newline at end of file diff --git a/po/km.po b/po/km.po index 93e7dc69f1..cc8501b66e 100644 --- a/po/km.po +++ b/po/km.po @@ -2129,276 +2129,131 @@ #: js/planetInterface.js:104 #: js/planetInterface.js:104 #: js/planetInterface.js:104 -msgid "project undefined" +#: js/SaveInterface.js:59 +#: js/SaveInterface.js:61 +#: js/SaveInterface.js:93 +msgid "Music Blocks Project" msgstr "" -#: js/logo.js:61 -msgid "Not a valid pitch name" +#: js/SaveInterface.js:63 +msgid "This project was created in Music Blocks" msgstr "" -#: js/logo.js:507 -#: js/ProgramBlocks.js:258 -#: js/ProgramBlocks.js:427 -msgid "You must select a file." +#: js/SaveInterface.js:67 +msgid "Music Blocks is a Free/Libre Software application." msgstr "" -#: js/logo.js:1184 -#: js/turtles.js:118 -#: js/turtle-painter.js:1192 -#: js/turtle-painter.js:1193 -#: js/block.js:1463 -#: js/lilypond.js:757 -#: js/lilypond.js:921 -#: js/lilypond.js:959 -#: js/ActionBlocks.js:1223 -#: js/ProgramBlocks.js:1267 -msgid "start" -msgstr "ចាប់ផ្ដើម" - -#: js/logo.js:1696 -msgid "Playback is ready." +#: js/SaveInterface.js:69 +msgid "The source code can be accessed at" msgstr "" -#: js/blocks.js:1011 -#: js/blocks.js:3427 -#: js/blocks.js:3428 -#: js/blocks.js:3653 -#: js/blocks.js:4012 -#: js/blocks.js:4205 -#: js/blocks.js:5343 -#: js/blocks.js:6474 -#: js/palette.js:527 -#: js/palette.js:536 -#: js/palette.js:545 -#: js/palette.js:554 -#: js/palette.js:1131 -#: js/palette.js:1142 -#: js/palette.js:1153 -#: js/palette.js:1164 -#: js/palette.js:1183 -#: js/rubrics.js:529 -#: js/macros.js:170 -#: js/macros.js:266 -#: js/macros.js:267 -#: js/macros.js:276 -#: js/macros.js:828 -#: js/block.js:1449 -#: js/block.js:4164 -#: js/block.js:4182 -#: js/block.js:4193 -#: js/turtledefs.js:128 -#: js/turtledefs.js:230 -#: js/ActionBlocks.js:254 -#: js/ActionBlocks.js:307 -#: js/ActionBlocks.js:617 -#: js/ActionBlocks.js:716 -#: js/ActionBlocks.js:961 -#: js/ActionBlocks.js:1049 -#: js/ActionBlocks.js:1322 -#: js/ActionBlocks.js:1325 -#: js/ActionBlocks.js:1337 -#: js/ActionBlocks.js:1404 -#: js/MeterBlocks.js:715 -#: js/MeterBlocks.js:768 -#: js/MeterBlocks.js:831 -#: js/MeterBlocks.js:892 -#: js/phrasemaker.js:4412 -#: js/musickeyboard.js:2647 -#: js/rhythmruler.js:1928 -#: js/rhythmruler.js:1935 -#: js/rhythmruler.js:2119 -#: js/rhythmruler.js:2126 -msgid "action" -msgstr "សកម្មភាព" - -#: js/blocks.js:1205 -#: js/blocks.js:3380 -#: js/blocks.js:3770 -#: js/blocks.js:3801 -#: js/blocks.js:3850 -#: js/blocks.js:3885 -#: js/blocks.js:6497 -#: js/palette.js:509 -#: js/palette.js:638 -#: js/palette.js:1107 -#: js/BoxesBlocks.js:282 -#: js/BoxesBlocks.js:285 -#: js/BoxesBlocks.js:405 -#: js/BoxesBlocks.js:594 -msgid "box" -msgstr "ប្រអប់​" - -#: js/blocks.js:1680 -msgid "Consider breaking this stack into parts." +#: js/SaveInterface.js:72 +msgid "For more information, please consult the" msgstr "" -#: js/blocks.js:2408 -#: js/palette.js:653 -#: js/MediaBlocks.js:602 -msgid "open file" +#: js/SaveInterface.js:76 +#: js/turtledefs.js:795 +msgid "Music Blocks Guide" msgstr "" -#: js/blocks.js:2415 -#: js/blocks.js:2423 -#: js/activity.js:1875 -msgid "audio file" +#: js/SaveInterface.js:83 +msgid "Alternatively, open the file in Music Blocks using the Load project button." msgstr "" -#: js/blocks.js:2536 -#: js/blocks.js:3147 -#: js/block.js:3543 -msgid "on2" +#: js/SaveInterface.js:85 +msgid "Project Code" msgstr "" -#: js/blocks.js:2538 -#: js/blocks.js:3149 -#: js/block.js:3545 -msgid "off" +#: js/SaveInterface.js:87 +msgid "This code stores data about the blocks in a project." msgstr "" -#: js/blocks.js:2543 -#: js/blocks.js:3154 -#: js/palette.js:618 -#: js/block.js:3466 -#: js/BooleanBlocks.js:77 -#: js/BooleanBlocks.js:167 -#: js/BooleanBlocks.js:251 -#: js/BooleanBlocks.js:335 -#: js/BooleanBlocks.js:433 -#: js/BooleanBlocks.js:539 -#: js/BooleanBlocks.js:640 -#: js/BooleanBlocks.js:741 -#: js/BooleanBlocks.js:847 -#: js/BooleanBlocks.js:948 -#: js/BooleanBlocks.js:1033 -#: js/SensorsBlocks.js:910 -msgid "true" +#: js/SaveInterface.js:89 +msgid "Show" msgstr "" -#: js/blocks.js:2545 -#: js/blocks.js:3156 -#: js/block.js:3466 -#: js/BooleanBlocks.js:79 -#: js/BooleanBlocks.js:169 -#: js/BooleanBlocks.js:253 -#: js/BooleanBlocks.js:337 -#: js/BooleanBlocks.js:435 -#: js/BooleanBlocks.js:541 -#: js/BooleanBlocks.js:642 -#: js/BooleanBlocks.js:743 -#: js/BooleanBlocks.js:849 -#: js/BooleanBlocks.js:950 -#: js/SensorsBlocks.js:912 -msgid "false" +#: js/SaveInterface.js:91 +msgid "Hide" msgstr "" -#: js/blocks.js:3183 -#: js/palette.js:574 -#: js/MediaBlocks.js:892 -#: js/MediaBlocks.js:963 -msgid "text" -msgstr "អត្ថបទ" - -#: js/blocks.js:3379 -#: js/palette.js:641 -#: js/palette.js:642 -#: js/BoxesBlocks.js:514 -msgid "store in box" +#: js/SaveInterface.js:131 +#: js/SaveInterface.js:204 +#: js/SaveInterface.js:262 +#: js/SaveInterface.js:389 +#: js/SaveInterface.js:417 +#: js/activity.js:4884 +#: planet/js/ProjectStorage.js:27 +#: planet/js/GlobalPlanet.js:467 +#: planet/js/GlobalPlanet.js:469 +#: planet/js/GlobalPlanet.js:495 +#.TRANS: default project title when saving as Lilypond +msgid "My Project" msgstr "" -#: js/blocks.js:3384 -#: js/blocks.js:3824 -#: js/blocks.js:3859 -#: js/blocks.js:3894 -#: js/blocks.js:5773 -#: js/blocks.js:5794 -#: js/BoxesBlocks.js:772 -msgid "box1" +#: js/SaveInterface.js:197 +#: planet/js/SaveInterface.js:58 +msgid "No description provided" msgstr "" -#: js/blocks.js:3386 -#: js/blocks.js:3826 -#: js/blocks.js:3861 -#: js/blocks.js:3896 -#: js/blocks.js:5775 -#: js/blocks.js:5796 -#: js/BoxesBlocks.js:663 -msgid "box2" +#: js/SaveInterface.js:332 +msgid "Your recording is in progress." msgstr "" -#: js/blocks.js:4058 -#: js/palette.js:639 -#: js/palette.js:644 -#: js/palette.js:1043 -#: js/BoxesBlocks.js:591 -msgid "store in" +#: js/SaveInterface.js:401 +#.TRANS: File name prompt for save as Lilypond +msgid "File name" msgstr "" -#: js/blocks.js:4058 -#: js/EnsembleBlocks.js:391 -#: js/EnsembleBlocks.js:402 -#: js/MediaBlocks.js:746 -#: js/ProgramBlocks.js:390 -#: js/ProgramBlocks.js:495 -#: js/ProgramBlocks.js:658 -#: js/BoxesBlocks.js:595 -#: js/PitchBlocks.js:656 -#: js/PitchBlocks.js:932 -#: js/PitchBlocks.js:1827 -#: js/ToneBlocks.js:1025 -#: js/DictBlocks.js:215 -#: js/DictBlocks.js:289 -msgid "name" +#: js/SaveInterface.js:403 +#: planet/js/StringHelper.js:39 +#.TRANS: Project title prompt for save as Lilypond +msgid "Project title" msgstr "" -#: js/blocks.js:4058 -#: js/RhythmBlocks.js:1130 -#: js/BoxesBlocks.js:75 -#: js/BoxesBlocks.js:595 -#: js/HeapBlocks.js:544 -#: js/DictBlocks.js:289 -#: js/DictBlocks.js:430 -msgid "value" -msgstr "តម្លៃ​" - -#: js/blocks.js:4907 -msgid "There is no block selected." +#: js/SaveInterface.js:405 +#.TRANS: Project title prompt for save as Lilypond +msgid "Project author" msgstr "" -#: js/blocks.js:5002 -#: js/MediaBlocks.js:888 -msgid "show" -msgstr "បង្ហាញ" - -#: js/blocks.js:5005 -#: js/MediaBlocks.js:803 -#.TRANS: Avatar is the image used to determine the appearance of the mouse. -msgid "avatar" +#: js/SaveInterface.js:407 +#.TRANS: MIDI prompt for save as Lilypond +msgid "Include MIDI output?" msgstr "" -#: js/blocks.js:5008 -#: js/ToneBlocks.js:1010 -#: js/sampler.js:693 -#.TRANS: The sound sample that the user uploads. -msgid "sample" +#: js/SaveInterface.js:409 +#.TRANS: Guitar prompt for save as Lilypond +msgid "Include guitar tablature output?" msgstr "" -#: js/turtles.js:874 -msgid "Grid" +#: js/SaveInterface.js:411 +#.TRANS: Lilypond is a scripting language for generating sheet music +msgid "Save as Lilypond" msgstr "" -#: js/turtles.js:891 -#: js/turtledefs.js:626 -msgid "Clean" -msgstr "ស្អាត" - -#: js/turtles.js:912 -#: js/turtledefs.js:632 -msgid "Collapse" +#: js/SaveInterface.js:426 +#: js/blocks/EnsembleBlocks.js:75 +#: js/blocks/EnsembleBlocks.js:154 +#: js/blocks/EnsembleBlocks.js:216 +#: js/blocks/EnsembleBlocks.js:302 +#: js/blocks/EnsembleBlocks.js:348 +#: js/blocks/EnsembleBlocks.js:389 +#: js/blocks/EnsembleBlocks.js:441 +#: js/blocks/EnsembleBlocks.js:490 +#: js/blocks/EnsembleBlocks.js:536 +#: js/blocks/EnsembleBlocks.js:583 +#: js/blocks/EnsembleBlocks.js:637 +#: js/blocks/EnsembleBlocks.js:753 +#: js/blocks/EnsembleBlocks.js:840 +#: js/blocks/EnsembleBlocks.js:899 +#: js/blocks/EnsembleBlocks.js:942 +#: js/blocks/EnsembleBlocks.js:1212 +#: js/blocks/EnsembleBlocks.js:1280 +#.TRANS: default project author when saving as Lilypond +msgid "Mr. Mouse" msgstr "" -#: js/turtles.js:940 -msgid "Expand" +#: js/SaveInterface.js:573 +msgid "The Lilypond code is copied to clipboard. You can paste it here: " msgstr "" #: js/languagebox.js:198 @@ -2409,6933 +2264,7487 @@ msgstr "" msgid "Music Blocks is already set to this language." msgstr "" -#: js/piemenus.js:200 -#: js/musicutils.js:808 -#: js/musicutils.js:824 -#: js/phrasemaker.js:1672 -#: js/musickeyboard.js:2041 -#: js/sampler.js:544 -#.TRANS: double sharp is a music term related to pitch -msgid "double sharp" +#: js/planetInterface.js:131 +msgid "project undefined" msgstr "" -#: js/piemenus.js:201 -#: js/PitchBlocks.js:1510 -#: js/PitchActions.js:580 -#: js/musicutils.js:806 -#: js/musicutils.js:825 -#: js/phrasemaker.js:1673 -#: js/musickeyboard.js:2042 -#: js/sampler.js:545 -#.TRANS: sharp is a half-step up in pitch -#.TRANS: sharp is a music term related to pitch -msgid "sharp" +#: js/rubrics.js:523 +#: js/turtledefs.js:119 +#: js/turtledefs.js:221 +#: js/blocks/RhythmBlockPaletteBlocks.js:52 +#: js/blocks/RhythmBlockPaletteBlocks.js:234 +#: js/blocks/ProgramBlocks.js:745 +#: js/widgets/rhythmruler.js:2057 +#: js/widgets/rhythmruler.js:2064 +#: js/widgets/rhythmruler.js:2133 +#: js/widgets/rhythmruler.js:2140 +#: js/widgets/rhythmruler.js:2219 +#.TRANS: an arrangement of notes based on duration +msgid "rhythm" msgstr "" -#: js/piemenus.js:202 -#: js/musicutils.js:804 -#: js/musicutils.js:826 -#: js/phrasemaker.js:1674 -#: js/musickeyboard.js:2043 -#: js/sampler.js:546 -#.TRANS: natural is a music term related to pitch -msgid "natural" +#: js/rubrics.js:524 +#: js/turtledefs.js:121 +#: js/turtledefs.js:223 +#: js/block-verbose.js:2622 +#: js/block.js:2550 +#: js/blocks/IntervalsBlocks.js:63 +#: js/blocks/SensorsBlocks.js:178 +#: js/blocks/PitchBlocks.js:1839 +#: js/blocks/PitchBlocks.js:1853 +#: js/widgets/musickeyboard.js:1935 +#: js/widgets/phrasemaker.js:1036 +#.TRANS: pitch number +#.TRANS: pitch number +#.TRANS: we specify pitch in terms of a name and an octave. The name can be CDEFGAB or Do Re Mi Fa Sol La Ti. Octave is a number between 1 and 8. +msgid "pitch" msgstr "" -#: js/piemenus.js:203 -#: js/PitchBlocks.js:1469 -#: js/PitchActions.js:583 -#: js/musicutils.js:802 -#: js/musicutils.js:827 -#: js/phrasemaker.js:1675 -#: js/musickeyboard.js:2044 -#: js/sampler.js:547 -#.TRANS: flat is a half-step down in pitch -#.TRANS: flat is a music term related to pitch -msgid "flat" +#: js/rubrics.js:525 +#: js/turtledefs.js:123 +#: js/turtledefs.js:225 +msgid "tone" msgstr "" -#: js/piemenus.js:204 -#: js/musicutils.js:800 -#: js/musicutils.js:828 -#: js/phrasemaker.js:1676 -#: js/musickeyboard.js:2045 -#: js/sampler.js:548 -#.TRANS: double flat is a music term related to pitch -msgid "double flat" +#: js/rubrics.js:526 +#: js/lilypond.js:605 +#: js/lilypond.js:904 +#: js/lilypond.js:910 +#: js/lilypond.js:948 +msgid "mouse" msgstr "" -#: js/piemenus.js:2861 -#: js/PitchBlocks.js:1357 -#: js/musicutils.js:627 -#.TRANS: unison means the note is the same as the current note -#.TRANS: unison is a music term related to intervals -msgid "unison" +#: js/rubrics.js:527 +#: js/turtledefs.js:132 +#: js/turtledefs.js:234 +#: js/widgets/phrasemaker.js:1040 +msgid "pen" msgstr "" -#: js/piemenus.js:3015 -#: js/piemenus.js:3088 -#: js/musicutils.js:635 -#: js/musicutils.js:810 -#: js/musicutils.js:912 -#.TRANS: major is a music term related to intervals and mode -msgid "major" -msgstr "" +#: js/rubrics.js:528 +#: js/turtledefs.js:133 +#: js/turtledefs.js:235 +#: js/blocks/NumberBlocks.js:981 +#: js/blocks/PitchBlocks.js:1717 +#: js/blocks/PitchBlocks.js:1758 +msgid "number" +msgstr "លេខ" -#: js/piemenus.js:3015 -#: js/piemenus.js:3088 -#: js/musicutils.js:653 -#.TRANS: modal scale for music -msgid "ionian" +#: js/rubrics.js:529 +#: js/turtledefs.js:127 +#: js/turtledefs.js:229 +msgid "flow" msgstr "" -#: js/piemenus.js:3017 -#: js/piemenus.js:3092 -#: js/musicutils.js:633 -#: js/musicutils.js:811 -#: js/musicutils.js:909 -#.TRANS: minor is a music term related to intervals and mode -msgid "minor" +#: js/rubrics.js:530 +#: js/turtledefs.js:128 +#: js/turtledefs.js:230 +#: js/block-verbose.js:1609 +#: js/block-verbose.js:4559 +#: js/block-verbose.js:4577 +#: js/block-verbose.js:4588 +#: js/block.js:1573 +#: js/block.js:4483 +#: js/block.js:4501 +#: js/block.js:4512 +#: js/blocks.js:1018 +#: js/blocks.js:3491 +#: js/blocks.js:3492 +#: js/blocks.js:3717 +#: js/blocks.js:4076 +#: js/blocks.js:4269 +#: js/blocks.js:5432 +#: js/blocks.js:6563 +#: js/macros.js:170 +#: js/macros.js:266 +#: js/macros.js:267 +#: js/macros.js:276 +#: js/macros.js:828 +#: js/palette.js:527 +#: js/palette.js:536 +#: js/palette.js:545 +#: js/palette.js:554 +#: js/palette.js:1129 +#: js/palette.js:1140 +#: js/palette.js:1151 +#: js/palette.js:1162 +#: js/palette.js:1181 +#: js/blocks/ActionBlocks.js:254 +#: js/blocks/ActionBlocks.js:307 +#: js/blocks/ActionBlocks.js:617 +#: js/blocks/ActionBlocks.js:716 +#: js/blocks/ActionBlocks.js:961 +#: js/blocks/ActionBlocks.js:1049 +#: js/blocks/ActionBlocks.js:1322 +#: js/blocks/ActionBlocks.js:1325 +#: js/blocks/ActionBlocks.js:1337 +#: js/blocks/ActionBlocks.js:1404 +#: js/blocks/MeterBlocks.js:715 +#: js/blocks/MeterBlocks.js:768 +#: js/blocks/MeterBlocks.js:831 +#: js/blocks/MeterBlocks.js:892 +#: js/widgets/musickeyboard.js:2986 +#: js/widgets/phrasemaker.js:4913 +#: js/widgets/rhythmruler.js:2319 +#: js/widgets/rhythmruler.js:2326 +#: js/widgets/rhythmruler.js:2511 +#: js/widgets/rhythmruler.js:2518 +msgid "action" +msgstr "សកម្មភាព" + +#: js/rubrics.js:531 +#: js/turtledefs.js:136 +#: js/turtledefs.js:238 +msgid "sensors" msgstr "" -#: js/piemenus.js:3017 -#: js/piemenus.js:3092 -#: js/musicutils.js:663 -#.TRANS: modal scale for music -msgid "aeolian" +#: js/rubrics.js:532 +#: js/turtledefs.js:135 +#: js/turtledefs.js:237 +#: js/blocks/MediaBlocks.js:930 +msgid "media" msgstr "" -#: js/piemenus.js:3407 -msgid "Duplicate" +#: js/rubrics.js:533 +msgid "mice" msgstr "" -#: js/piemenus.js:3408 -#: js/turtledefs.js:534 -msgid "Extract" +#: js/toolbar.js:48 +#: js/toolbar.js:109 +msgid "About Music Blocks" msgstr "" -#: js/piemenus.js:3409 -msgid "Move to trash" +#: js/toolbar.js:49 +#: js/toolbar.js:110 +#: js/toolbar.js:175 +#: js/toolbar.js:231 +#: js/turtledefs.js:445 +#: js/turtledefs.js:482 +#: js/activity.js:2660 +#: js/activity.js:2671 +#: js/activity.js:2902 +#: js/widgets/modewidget.js:77 +#: js/widgets/meterwidget.js:185 +#: js/widgets/pitchdrummatrix.js:147 +#: js/widgets/pitchdrummatrix.js:687 +#: js/widgets/pitchdrummatrix.js:689 +#: js/widgets/pitchdrummatrix.js:741 +#: js/widgets/pitchdrummatrix.js:743 +#: js/widgets/pitchdrummatrix.js:758 +#: js/widgets/pitchdrummatrix.js:760 +#: js/widgets/pitchdrummatrix.js:789 +#: js/widgets/pitchdrummatrix.js:791 +#: js/widgets/pitchstaircase.js:121 +#: js/widgets/temperament.js:610 +#: js/widgets/temperament.js:613 +#: js/widgets/temperament.js:673 +#: js/widgets/temperament.js:675 +#: js/widgets/temperament.js:2017 +#: js/widgets/temperament.js:2019 +#: js/widgets/tempo.js:84 +#: js/widgets/tempo.js:86 +#: js/widgets/timbre.js:432 +#: js/widgets/timbre.js:434 +#: js/widgets/timbre.js:465 +#: js/widgets/timbre.js:467 +#: js/widgets/timbre.js:746 +#: js/widgets/aiwidget.js:647 +#: js/widgets/aiwidget.js:654 +#: js/widgets/aiwidget.js:656 +#: js/widgets/arpeggio.js:90 +#: js/widgets/arpeggio.js:547 +#: js/widgets/arpeggio.js:549 +#: js/widgets/arpeggio.js:644 +#: js/widgets/arpeggio.js:646 +#: js/widgets/musickeyboard.js:676 +#: js/widgets/musickeyboard.js:872 +#: js/widgets/musickeyboard.js:874 +#: js/widgets/musickeyboard.js:953 +#: js/widgets/musickeyboard.js:955 +#: js/widgets/phrasemaker.js:513 +#: js/widgets/phrasemaker.js:523 +#: js/widgets/phrasemaker.js:525 +#: js/widgets/phrasemaker.js:4304 +#: js/widgets/phrasemaker.js:4528 +#: js/widgets/phrasemaker.js:4533 +#: js/widgets/phrasemaker.js:4535 +#: js/widgets/phrasemaker.js:4650 +#: js/widgets/rhythmruler.js:637 +#: js/widgets/rhythmruler.js:639 +#: js/widgets/rhythmruler.js:653 +#: js/widgets/rhythmruler.js:655 +#: js/widgets/sampler.js:162 +#: js/widgets/sampler.js:164 +#: js/widgets/sampler.js:363 +msgid "Play" msgstr "" -#: js/piemenus.js:3410 -#: js/timbre.js:968 -#: js/StringHelper.js:69 -msgid "Close" +#: js/toolbar.js:50 +#: js/toolbar.js:111 +#: js/toolbar.js:176 +#: js/toolbar.js:232 +#: js/turtledefs.js:451 +#: js/turtledefs.js:488 +#: js/activity.js:2679 +#: js/widgets/modewidget.js:99 +#: js/widgets/modewidget.js:101 +#: js/widgets/meterwidget.js:206 +#: js/widgets/meterwidget.js:208 +#: js/widgets/pitchdrummatrix.js:674 +#: js/widgets/pitchdrummatrix.js:676 +#: js/widgets/temperament.js:2002 +#: js/widgets/temperament.js:2004 +#: js/widgets/arpeggio.js:534 +#: js/widgets/arpeggio.js:536 +#: js/widgets/phrasemaker.js:534 +#: js/widgets/phrasemaker.js:536 +msgid "Stop" +msgstr "ឈប់" + +#: js/toolbar.js:51 +#: js/toolbar.js:112 +#: js/toolbar.js:177 +#: js/toolbar.js:233 +#: js/turtledefs.js:498 +msgid "Record" msgstr "" -#: js/piemenus.js:3416 -msgid "Save stack" +#: js/toolbar.js:52 +#: js/toolbar.js:53 +msgid "Full screen" msgstr "" -#: js/piemenus.js:3420 -#: js/toolbar.js:60 +#: js/toolbar.js:54 +#: js/toolbar.js:115 +#: js/toolbar.js:180 +#: js/toolbar.js:236 +#: js/turtledefs.js:504 +msgid "Toggle Fullscreen" +msgstr "" + +#: js/toolbar.js:55 +#: js/toolbar.js:116 +#: js/toolbar.js:181 +#: js/toolbar.js:237 +#: js/turtledefs.js:510 +#: planet/js/StringHelper.js:33 +msgid "New project" +msgstr "" + +#: js/toolbar.js:56 +#: js/toolbar.js:117 +#: js/toolbar.js:182 +#: js/toolbar.js:238 +#: js/turtledefs.js:516 +msgid "Load project from file" +msgstr "" + +#: js/toolbar.js:57 +#: js/toolbar.js:118 +#: js/toolbar.js:119 +#: js/toolbar.js:183 +#: js/toolbar.js:239 +#: js/turtledefs.js:541 +#: js/turtledefs.js:550 +#: js/turtledefs.js:571 +msgid "Save project" +msgstr "" + +#: js/toolbar.js:58 +#: js/toolbar.js:77 +#: js/toolbar.js:79 +#: js/toolbar.js:138 +#: js/toolbar.js:147 +#: js/toolbar.js:149 +#: js/toolbar.js:184 +#: js/toolbar.js:202 +#: js/toolbar.js:204 +#: js/toolbar.js:240 +#: js/toolbar.js:258 +#: js/toolbar.js:260 +msgid "Save project as HTML" +msgstr "" + +#: js/toolbar.js:59 #: js/toolbar.js:120 #: js/toolbar.js:185 -#: js/toolbar.js:240 +#: js/toolbar.js:241 +msgid "Find and share projects" +msgstr "" + +#: js/toolbar.js:60 +#: js/toolbar.js:121 +#: js/toolbar.js:186 +#: js/toolbar.js:242 +msgid "Offline. Sharing is unavailable" +msgstr "" + +#: js/toolbar.js:61 +#: js/toolbar.js:122 +#: js/toolbar.js:187 +#: js/toolbar.js:243 +msgid "Auxiliary menu" +msgstr "" + +#: js/toolbar.js:62 +#: js/toolbar.js:123 +#: js/toolbar.js:188 +#: js/toolbar.js:244 #: js/turtledefs.js:752 +#: js/piemenus.js:3423 msgid "Help" msgstr "ជំនួយ" -#: js/piemenus.js:3762 -msgid "You have chosen key " +#: js/toolbar.js:63 +#: js/toolbar.js:124 +#: js/toolbar.js:189 +#: js/toolbar.js:245 +msgid "Run slowly" +msgstr "" + +#: js/toolbar.js:64 +#: js/toolbar.js:125 +#: js/toolbar.js:190 +#: js/toolbar.js:246 +#: js/turtledefs.js:682 +msgid "Run step by step" +msgstr "" + +#: js/toolbar.js:65 +#: js/toolbar.js:126 +#: js/toolbar.js:191 +#: js/toolbar.js:247 +#: js/turtledefs.js:689 +msgid "Display statistics" +msgstr "" + +#: js/toolbar.js:66 +#: js/toolbar.js:127 +#: js/toolbar.js:192 +#: js/toolbar.js:248 +msgid "Load plugin" +msgstr "" + +#: js/toolbar.js:67 +#: js/toolbar.js:128 +#: js/toolbar.js:193 +#: js/toolbar.js:249 +#: js/turtledefs.js:696 +msgid "Delete plugin" +msgstr "" + +#: js/toolbar.js:68 +#: js/toolbar.js:129 +#: js/toolbar.js:194 +#: js/toolbar.js:250 +msgid "Enable horizontal scrolling" +msgstr "" + +#: js/toolbar.js:69 +#: js/toolbar.js:130 +#: js/toolbar.js:195 +#: js/toolbar.js:251 +msgid "Disable horizontal scrolling" +msgstr "" + +#: js/toolbar.js:70 +#: js/toolbar.js:131 +#: js/toolbar.js:196 +#: js/toolbar.js:252 +#: planet/js/LocalCard.js:54 +#: planet/js/StringHelper.js:71 +msgid "Merge with current project" +msgstr "" + +#: js/toolbar.js:71 +#: js/toolbar.js:132 +msgid "Set Pitch Preview" +msgstr "" + +#: js/toolbar.js:72 +#: js/toolbar.js:133 +#: js/toolbar.js:197 +#: js/toolbar.js:253 +msgid "JavaScript Editor" +msgstr "" + +#: js/toolbar.js:73 +#: js/toolbar.js:134 +#: js/toolbar.js:198 +#: js/toolbar.js:254 +#: js/turtledefs.js:724 +msgid "Restore" +msgstr "" + +#: js/toolbar.js:74 +#: js/toolbar.js:135 +#: js/toolbar.js:199 +#: js/toolbar.js:255 +msgid "Switch to beginner mode" +msgstr "" + +#: js/toolbar.js:75 +#: js/toolbar.js:136 +#: js/toolbar.js:200 +#: js/toolbar.js:256 +msgid "Switch to advanced mode" +msgstr "" + +#: js/toolbar.js:76 +#: js/toolbar.js:137 +#: js/toolbar.js:146 +#: js/toolbar.js:201 +#: js/toolbar.js:257 +#: js/turtledefs.js:738 +msgid "Select language" +msgstr "" + +#: js/toolbar.js:78 +#: js/toolbar.js:81 +#: js/toolbar.js:140 +#: js/turtledefs.js:579 +msgid "Save mouse artwork as PNG" +msgstr "" + +#: js/toolbar.js:80 +#: js/toolbar.js:139 +#: js/turtledefs.js:575 +msgid "Save mouse artwork as SVG" +msgstr "" + +#: js/toolbar.js:82 +#: js/toolbar.js:141 +#: js/turtledefs.js:583 +msgid "Save music as WAV" +msgstr "" + +#: js/toolbar.js:83 +#: js/toolbar.js:142 +#: js/turtledefs.js:587 +msgid "Save sheet music as ABC" +msgstr "" + +#: js/toolbar.js:84 +#: js/toolbar.js:143 +#: js/turtledefs.js:591 +msgid "Save sheet music as Lilypond" +msgstr "" + +#: js/toolbar.js:85 +msgid "Save sheet music as MusicXML" +msgstr "" + +#: js/toolbar.js:86 +#: js/toolbar.js:144 +#: js/toolbar.js:152 +#: js/toolbar.js:207 +#: js/toolbar.js:263 +#: js/turtledefs.js:562 +#: js/turtledefs.js:595 +msgid "Save block artwork as SVG" +msgstr "" + +#: js/toolbar.js:87 +#: js/toolbar.js:145 +#: js/toolbar.js:153 +#: js/toolbar.js:208 +#: js/toolbar.js:264 +#: js/turtles.js:911 +msgid "Confirm" +msgstr "" + +#: js/toolbar.js:88 +#: js/toolbar.js:154 +#: js/toolbar.js:209 +#: js/toolbar.js:265 +msgid "English (United States)" +msgstr "" + +#: js/toolbar.js:89 +#: js/toolbar.js:155 +#: js/toolbar.js:210 +#: js/toolbar.js:266 +msgid "English (United Kingdom)" +msgstr "" + +#: js/toolbar.js:90 +#: js/toolbar.js:156 +#: js/toolbar.js:211 +#: js/toolbar.js:267 +msgid "日本語" +msgstr "" + +#: js/toolbar.js:91 +msgid "한국어" +msgstr "" + +#: js/toolbar.js:92 +#: js/toolbar.js:158 +#: js/toolbar.js:213 +#: js/toolbar.js:269 +msgid "español" +msgstr "" + +#: js/toolbar.js:93 +#: js/toolbar.js:159 +#: js/toolbar.js:214 +#: js/toolbar.js:270 +msgid "português" +msgstr "" + +#: js/toolbar.js:94 +#: js/toolbar.js:160 +#: js/toolbar.js:215 +#: js/toolbar.js:271 +msgid "にほんご" +msgstr "" + +#: js/toolbar.js:95 +#: js/toolbar.js:161 +#: js/toolbar.js:216 +#: js/toolbar.js:272 +msgid "中文" +msgstr "" + +#: js/toolbar.js:96 +#: js/toolbar.js:162 +#: js/toolbar.js:217 +#: js/toolbar.js:273 +msgid "ภาษาไทย" +msgstr "" + +#: js/toolbar.js:97 +#: js/toolbar.js:163 +#: js/toolbar.js:218 +#: js/toolbar.js:274 +msgid "aymara" +msgstr "" + +#: js/toolbar.js:98 +#: js/toolbar.js:164 +#: js/toolbar.js:219 +#: js/toolbar.js:275 +msgid "quechua" +msgstr "" + +#: js/toolbar.js:99 +#: js/toolbar.js:165 +#: js/toolbar.js:220 +#: js/toolbar.js:276 +msgid "guarani" +msgstr "" + +#: js/toolbar.js:100 +#: js/toolbar.js:166 +#: js/toolbar.js:221 +#: js/toolbar.js:277 +msgid "हिंदी" +msgstr "" + +#: js/toolbar.js:101 +#: js/toolbar.js:168 +#: js/toolbar.js:222 +#: js/toolbar.js:279 +msgid "igbo" +msgstr "" + +#: js/toolbar.js:102 +#: js/toolbar.js:169 +#: js/toolbar.js:223 +#: js/toolbar.js:280 +msgid "عربى" +msgstr "" + +#: js/toolbar.js:103 +#: js/toolbar.js:167 +#: js/toolbar.js:224 +#: js/toolbar.js:278 +msgid "తెలుగు" +msgstr "" + +#: js/toolbar.js:104 +#: js/toolbar.js:170 +#: js/toolbar.js:225 +#: js/toolbar.js:281 +msgid "עִברִית" +msgstr "" + +#: js/toolbar.js:113 +#: js/toolbar.js:114 +#: js/toolbar.js:178 +#: js/toolbar.js:179 +#: js/toolbar.js:234 +#: js/toolbar.js:235 +msgid "Full Screen" +msgstr "" + +#: js/toolbar.js:148 +#: js/toolbar.js:151 +#: js/toolbar.js:203 +#: js/toolbar.js:206 +#: js/toolbar.js:259 +#: js/toolbar.js:262 +#: js/turtledefs.js:558 +msgid "Save turtle artwork as PNG" +msgstr "" + +#: js/toolbar.js:150 +#: js/toolbar.js:205 +#: js/toolbar.js:261 +#: js/turtledefs.js:554 +msgid "Save turtle artwork as SVG" +msgstr "" + +#: js/toolbar.js:157 +#: js/toolbar.js:212 +#: js/toolbar.js:268 +msgid "한국인" +msgstr "" + +#: js/toolbar.js:174 +#: js/toolbar.js:230 +msgid "About Turtle Blocks" +msgstr "" + +#: js/toolbar.js:446 +#: js/toolbar.js:457 +#: js/toolbar.js:497 +msgid "Turtle Wrap Off" +msgstr "" + +#: js/toolbar.js:466 +#: js/toolbar.js:506 +msgid "Turtle Wrap On" +msgstr "" + +#: js/turtle-painter.js:1192 +#: js/turtle-painter.js:1193 +#: js/turtles.js:118 +#: js/block-verbose.js:1623 +#: js/block.js:1587 +#: js/lilypond.js:749 +#: js/lilypond.js:913 +#: js/lilypond.js:951 +#: js/logo.js:1184 +#: js/blocks/ActionBlocks.js:1223 +#: js/blocks/ProgramBlocks.js:1267 +msgid "start" +msgstr "ចាប់ផ្ដើម" + +#: js/turtledefs.js:40 +#.TRANS: put the URL to the guide here, e.g., https://github.com/sugarlabs/turtleblocksjs/tree/master/guide/README.md +msgid "guide url" +msgstr "" + +#: js/turtledefs.js:85 +#: js/turtledefs.js:437 +msgid "Turtle Blocks is a Logo-inspired turtle that draws colorful pictures with snap-together visual-programming blocks." +msgstr "" + +#: js/turtledefs.js:118 +#: js/turtledefs.js:220 +msgid "search" +msgstr "" + +#: js/turtledefs.js:120 +#: js/turtledefs.js:222 +#: js/blocks/MeterBlocks.js:1343 +#: js/blocks/WidgetBlocks.js:522 +#.TRANS: musical meter (time signature), e.g., 4:4 +msgid "meter" +msgstr "" + +#: js/turtledefs.js:122 +#: js/turtledefs.js:224 +msgid "intervals" +msgstr "" + +#: js/turtledefs.js:124 +#: js/turtledefs.js:226 +msgid "ornament" +msgstr "" + +#: js/turtledefs.js:125 +#: js/turtledefs.js:227 +#: js/blocks/VolumeBlocks.js:362 +#: js/blocks/VolumeBlocks.js:502 +#: js/blocks/VolumeBlocks.js:545 +msgid "volume" +msgstr "" + +#: js/turtledefs.js:126 +#: js/turtledefs.js:228 +#: js/block-verbose.js:1700 +#: js/block-verbose.js:2626 +#: js/block.js:1664 +#: js/block.js:2554 +#: js/lilypond.js:732 +#: js/lilypond.js:897 +#: js/lilypond.js:941 +#: js/palette.js:577 +#: js/blocks/RhythmBlocks.js:766 +#: js/blocks/DrumBlocks.js:477 +#: js/blocks/VolumeBlocks.js:502 +#: js/widgets/phrasemaker.js:1038 +msgid "drum" +msgstr "" + +#: js/turtledefs.js:129 +#: js/turtledefs.js:231 +msgid "boxes" +msgstr "" + +#: js/turtledefs.js:130 +#: js/turtledefs.js:232 +msgid "widgets" +msgstr "" + +#: js/turtledefs.js:131 +#: js/turtledefs.js:233 +#: js/widgets/phrasemaker.js:1039 +msgid "graphics" +msgstr "" + +#: js/turtledefs.js:134 +#: js/turtledefs.js:236 +msgid "boolean" +msgstr "" + +#: js/turtledefs.js:137 +#: js/turtledefs.js:239 +#: js/blocks/HeapBlocks.js:59 +#: js/widgets/status.js:147 +msgid "heap" +msgstr "" + +#: js/turtledefs.js:138 +#: js/turtledefs.js:240 +#: js/blocks/DictBlocks.js:142 +#: js/blocks/ProgramBlocks.js:495 +msgid "dictionary" +msgstr "" + +#: js/turtledefs.js:139 +#: js/turtledefs.js:241 +msgid "ensemble" +msgstr "" + +#: js/turtledefs.js:140 +#: js/turtledefs.js:242 +msgid "extras" +msgstr "" + +#: js/turtledefs.js:142 +#: js/turtledefs.js:244 +#.TRANS: program as in computer program +#.TRANS: program as in computer program +msgid "program" +msgstr "" + +#: js/turtledefs.js:143 +#: js/turtledefs.js:245 +msgid "my blocks" msgstr "" -#: js/piemenus.js:3766 -msgid " for your pitch preview." +#: js/turtledefs.js:185 +#: js/turtledefs.js:281 +msgid "artwork" msgstr "" -#: js/palette.js:571 -msgid "grid" +#: js/turtledefs.js:185 +#: js/turtledefs.js:281 +msgid "logic" msgstr "" -#: js/palette.js:577 -#: js/block.js:1540 -#: js/block.js:2343 -#: js/turtledefs.js:126 -#: js/turtledefs.js:228 -#: js/lilypond.js:740 -#: js/lilypond.js:905 -#: js/lilypond.js:949 -#: js/DrumBlocks.js:486 -#: js/RhythmBlocks.js:766 -#: js/VolumeBlocks.js:502 -#: js/phrasemaker.js:823 -msgid "drum" +#: js/turtledefs.js:185 +#: js/turtledefs.js:281 +msgid "music" msgstr "" -#: js/palette.js:580 -msgid "effect" +#: js/turtledefs.js:187 +#: js/turtledefs.js:463 +msgid "Music Blocks is a collection of tools for exploring fundamental musical concepts in a fun way." msgstr "" -#: js/palette.js:586 -msgid "sargam" +#: js/turtledefs.js:436 +msgid "Welcome to Turtle Blocks" msgstr "" -#: js/palette.js:589 -#: js/activity.js:1833 -#: js/RhythmBlocks.js:923 -#: js/PitchBlocks.js:442 -#: js/PitchBlocks.js:1748 -#.TRANS: a numeric mapping of the notes in an octave based on the musical mode -msgid "scale degree" +#: js/turtledefs.js:438 +#: js/turtledefs.js:465 +#: js/turtledefs.js:774 +#: js/turtledefs.js:805 +msgid "The current version is" msgstr "" -#: js/palette.js:592 -#: js/activity.js:1860 -msgid "mode name" +#: js/turtledefs.js:446 +#: js/turtledefs.js:483 +msgid "Click the run button to run the project in fast mode." msgstr "" -#: js/palette.js:595 -#: js/activity.js:1839 -msgid "invert mode" +#: js/turtledefs.js:452 +msgid "Stop the turtle." msgstr "" -#: js/palette.js:598 -#: js/activity.js:1836 -msgid "voice name" +#: js/turtledefs.js:454 +#: js/turtledefs.js:491 +msgid "You can also type Alt-S to stop." msgstr "" -#: js/palette.js:601 -#: js/PitchBlocks.js:1181 -msgid "custom pitch" +#: js/turtledefs.js:462 +#: js/widgets/help.js:333 +msgid "Welcome to Music Blocks" msgstr "" -#: js/palette.js:605 -#: js/block.js:1456 -#: js/block.js:1575 -#: js/WidgetBlocks.js:218 -#: js/IntervalsBlocks.js:63 -msgid "temperament" +#: js/turtledefs.js:472 +#: js/widgets/help.js:334 +msgid "Meet Mr. Mouse!" msgstr "" -#: js/palette.js:609 -msgid "accidental" +#: js/turtledefs.js:473 +msgid "Mr Mouse is our Music Blocks conductor." msgstr "" -#: js/palette.js:615 -#: js/activity.js:1866 -msgid "interval name" +#: js/turtledefs.js:475 +msgid "Mr Mouse encourages you to explore Music Blocks." msgstr "" -#: js/palette.js:633 -#: js/PitchBlocks.js:405 -msgid "pitch converter" +#: js/turtledefs.js:477 +msgid "Let us start our tour!" msgstr "" -#: js/rubrics.js:522 -#: js/turtledefs.js:119 -#: js/turtledefs.js:221 -#: js/RhythmBlockPaletteBlocks.js:52 -#: js/RhythmBlockPaletteBlocks.js:233 -#: js/ProgramBlocks.js:745 -#: js/rhythmruler.js:1670 -#: js/rhythmruler.js:1677 -#: js/rhythmruler.js:1745 -#: js/rhythmruler.js:1752 -#: js/rhythmruler.js:1830 -#.TRANS: an arrangement of notes based on duration -msgid "rhythm" +#: js/turtledefs.js:489 +msgid "Stop the music (and the mice)." msgstr "" -#: js/rubrics.js:523 -#: js/block.js:2339 -#: js/turtledefs.js:121 -#: js/turtledefs.js:223 -#: js/IntervalsBlocks.js:63 -#: js/PitchBlocks.js:1801 -#: js/PitchBlocks.js:1814 -#: js/SensorsBlocks.js:178 -#: js/phrasemaker.js:821 -#: js/musickeyboard.js:1653 -#.TRANS: pitch number -#.TRANS: we specify pitch in terms of a name and an octave. The name can be CDEFGAB or Do Re Mi Fa Sol La Ti. Octave is a number between 1 and 8. -msgid "pitch" +#: js/turtledefs.js:499 +msgid "Record your project as video." msgstr "" -#: js/rubrics.js:524 -#: js/turtledefs.js:123 -#: js/turtledefs.js:225 -msgid "tone" +#: js/turtledefs.js:505 +msgid "Toggle Fullscreen mode." msgstr "" -#: js/rubrics.js:525 -#: js/lilypond.js:613 -#: js/lilypond.js:912 -#: js/lilypond.js:918 -#: js/lilypond.js:956 -msgid "mouse" +#: js/turtledefs.js:511 +msgid "Initialize a new project." msgstr "" -#: js/rubrics.js:526 -#: js/turtledefs.js:132 -#: js/turtledefs.js:234 -#: js/phrasemaker.js:825 -msgid "pen" +#: js/turtledefs.js:517 +msgid "You can also load projects from the file system." msgstr "" -#: js/rubrics.js:527 -#: js/turtledefs.js:133 -#: js/turtledefs.js:235 -#: js/NumberBlocks.js:905 -#: js/PitchBlocks.js:1679 -#: js/PitchBlocks.js:1720 -msgid "number" -msgstr "លេខ" +#: js/turtledefs.js:522 +#: planet/js/StringHelper.js:46 +msgid "Delete" +msgstr "" -#: js/rubrics.js:528 -#: js/turtledefs.js:127 -#: js/turtledefs.js:229 -msgid "flow" +#: js/turtledefs.js:523 +msgid "To delete a block, just right-click on it, then you will be able to see the delete option" msgstr "" -#: js/rubrics.js:530 -#: js/turtledefs.js:136 -#: js/turtledefs.js:238 -msgid "sensors" +#: js/turtledefs.js:528 +#: js/activity.js:2649 +#: planet/js/LocalCard.js:31 +msgid "Copy" +msgstr "ចំលង" + +#: js/turtledefs.js:529 +msgid "To copy a block, just right-click on it, then you will be able to see the copy option" msgstr "" -#: js/rubrics.js:531 -#: js/turtledefs.js:135 -#: js/turtledefs.js:237 -#: js/MediaBlocks.js:930 -msgid "media" +#: js/turtledefs.js:534 +#: js/piemenus.js:3411 +msgid "Extract" msgstr "" -#: js/rubrics.js:532 -msgid "mice" +#: js/turtledefs.js:535 +msgid "To extract a block, just right-click on it, then you will be able to see the extract option" msgstr "" -#: js/macros.js:711 -#: js/musicutils.js:783 -#: js/synthutils.js:181 -#.TRANS: animal sound effect -msgid "duck" +#: js/turtledefs.js:542 +#: js/turtledefs.js:552 +#: js/turtledefs.js:573 +msgid "Save your project to a file." msgstr "" -#: js/toolbar.js:46 -#: js/toolbar.js:107 -msgid "About Music Blocks" +#: js/turtledefs.js:549 +#: js/turtledefs.js:570 +msgid "save" msgstr "" -#: js/toolbar.js:47 -#: js/toolbar.js:108 -#: js/toolbar.js:172 -#: js/toolbar.js:228 -#: js/turtledefs.js:445 -#: js/turtledefs.js:482 -#: js/activity.js:2281 -#: js/activity.js:2289 -#: js/activity.js:2520 -#: js/modewidget.js:77 -#: js/pitchstaircase.js:121 -#: js/phrasemaker.js:302 -#: js/phrasemaker.js:312 -#: js/phrasemaker.js:314 -#: js/phrasemaker.js:3901 -#: js/phrasemaker.js:4061 -#: js/phrasemaker.js:4066 -#: js/phrasemaker.js:4068 -#: js/phrasemaker.js:4183 -#: js/pitchdrummatrix.js:81 -#: js/pitchdrummatrix.js:574 -#: js/pitchdrummatrix.js:576 -#: js/pitchdrummatrix.js:628 -#: js/pitchdrummatrix.js:630 -#: js/pitchdrummatrix.js:645 -#: js/pitchdrummatrix.js:647 -#: js/pitchdrummatrix.js:674 -#: js/pitchdrummatrix.js:676 -#: js/temperament.js:477 -#: js/temperament.js:480 -#: js/temperament.js:540 -#: js/temperament.js:542 -#: js/temperament.js:1835 -#: js/temperament.js:1837 -#: js/temperament.js:1986 -#: js/temperament.js:1988 -#: js/musickeyboard.js:522 -#: js/musickeyboard.js:682 -#: js/musickeyboard.js:684 -#: js/musickeyboard.js:756 -#: js/musickeyboard.js:758 -#: js/rhythmruler.js:298 -#: js/rhythmruler.js:300 -#: js/rhythmruler.js:314 -#: js/rhythmruler.js:316 -#: js/sampler.js:96 -#: js/sampler.js:98 -#: js/sampler.js:229 -#: js/sampler.js:235 -#: js/sampler.js:237 -#: js/tempo.js:84 -#: js/tempo.js:86 -#: js/timbre.js:432 -#: js/timbre.js:434 -#: js/timbre.js:465 -#: js/timbre.js:467 -#: js/timbre.js:746 -#: js/meterwidget.js:80 -#: js/arpeggio.js:90 -#: js/arpeggio.js:547 -#: js/arpeggio.js:549 -#: js/arpeggio.js:644 -#: js/arpeggio.js:646 -msgid "Play" +#: js/turtledefs.js:556 +#: js/turtledefs.js:577 +msgid "Save graphics from your project to as SVG." msgstr "" -#: js/toolbar.js:48 -#: js/toolbar.js:109 -#: js/toolbar.js:173 -#: js/toolbar.js:229 -#: js/turtledefs.js:451 -#: js/turtledefs.js:488 -#: js/activity.js:2297 -#: js/modewidget.js:99 -#: js/modewidget.js:101 -#: js/phrasemaker.js:323 -#: js/phrasemaker.js:325 -#: js/pitchdrummatrix.js:561 -#: js/pitchdrummatrix.js:563 -#: js/temperament.js:1820 -#: js/temperament.js:1822 -#: js/meterwidget.js:101 -#: js/meterwidget.js:103 -#: js/arpeggio.js:534 -#: js/arpeggio.js:536 -msgid "Stop" -msgstr "ឈប់" +#: js/turtledefs.js:560 +#: js/turtledefs.js:581 +msgid "Save graphics from your project as PNG." +msgstr "" -#: js/toolbar.js:49 -#: js/toolbar.js:110 -#: js/toolbar.js:174 -#: js/toolbar.js:230 -#: js/turtledefs.js:498 -msgid "Record" +#: js/turtledefs.js:564 +#: js/turtledefs.js:597 +msgid "Save block artwork as an SVG file." msgstr "" -#: js/toolbar.js:50 -#: js/toolbar.js:51 -msgid "Full screen" +#: js/turtledefs.js:585 +msgid "Save audio from your project as WAV." msgstr "" -#: js/toolbar.js:52 -#: js/toolbar.js:112 -#: js/toolbar.js:177 -#: js/toolbar.js:232 -#: js/turtledefs.js:504 -msgid "Toggle Fullscreen" +#: js/turtledefs.js:589 +msgid "Save your project to as an ABC file." msgstr "" -#: js/toolbar.js:53 -#: js/toolbar.js:113 -#: js/toolbar.js:178 -#: js/toolbar.js:233 -#: js/turtledefs.js:510 -#: js/StringHelper.js:33 -msgid "New project" +#: js/turtledefs.js:593 +msgid "Save your project to as a Lilypond file." msgstr "" -#: js/toolbar.js:54 -#: js/toolbar.js:114 -#: js/toolbar.js:179 -#: js/toolbar.js:234 -#: js/turtledefs.js:516 -msgid "Load project from file" +#: js/turtledefs.js:604 +msgid "Load samples from server" msgstr "" -#: js/toolbar.js:55 -#: js/toolbar.js:115 -#: js/toolbar.js:116 -#: js/toolbar.js:180 -#: js/toolbar.js:235 -#: js/turtledefs.js:541 -#: js/turtledefs.js:550 -#: js/turtledefs.js:571 -msgid "Save project" +#: js/turtledefs.js:605 +msgid "This button opens a viewer for loading example projects." msgstr "" -#: js/toolbar.js:56 -#: js/toolbar.js:75 -#: js/toolbar.js:77 -#: js/toolbar.js:135 -#: js/toolbar.js:144 -#: js/toolbar.js:146 -#: js/toolbar.js:181 -#: js/toolbar.js:199 -#: js/toolbar.js:201 -#: js/toolbar.js:236 -#: js/toolbar.js:254 -#: js/toolbar.js:256 -msgid "Save project as HTML" +#: js/turtledefs.js:611 +msgid "Palette buttons" +msgstr "" + +#: js/turtledefs.js:612 +msgid "This toolbar contains the palette buttons including Rhythm Pitch Tone Action and more." +msgstr "" + +#: js/turtledefs.js:614 +msgid "Click to show the palettes of blocks and drag blocks from the palettes onto the canvas to use them." +msgstr "" + +#: js/turtledefs.js:620 +msgid "Cartesian/Polar" +msgstr "" + +#: js/turtledefs.js:621 +msgid "Show or hide a coordinate grid." +msgstr "" + +#: js/turtledefs.js:626 +#: js/turtles.js:902 +msgid "Clean" +msgstr "ស្អាត" + +#: js/turtledefs.js:627 +msgid "Clear the screen and return the mice to their initial positions." msgstr "" -#: js/toolbar.js:57 -#: js/toolbar.js:117 -#: js/toolbar.js:182 -#: js/toolbar.js:237 -msgid "Find and share projects" +#: js/turtledefs.js:632 +#: js/turtles.js:955 +msgid "Collapse" msgstr "" -#: js/toolbar.js:58 -#: js/toolbar.js:118 -#: js/toolbar.js:183 -#: js/toolbar.js:238 -msgid "Offline. Sharing is unavailable" +#: js/turtledefs.js:633 +msgid "Collapse the graphics window." msgstr "" -#: js/toolbar.js:59 -#: js/toolbar.js:119 -#: js/toolbar.js:184 -#: js/toolbar.js:239 -msgid "Auxiliary menu" +#: js/turtledefs.js:638 +#: js/activity.js:5684 +msgid "Home" msgstr "" -#: js/toolbar.js:61 -#: js/toolbar.js:121 -#: js/toolbar.js:186 -#: js/toolbar.js:241 -msgid "Run slowly" +#: js/turtledefs.js:639 +msgid "Return all blocks to the center of the screen." msgstr "" -#: js/toolbar.js:62 -#: js/toolbar.js:122 -#: js/toolbar.js:187 -#: js/toolbar.js:242 -#: js/turtledefs.js:682 -msgid "Run step by step" +#: js/turtledefs.js:644 +msgid "Show/hide blocks" msgstr "" -#: js/toolbar.js:63 -#: js/toolbar.js:123 -#: js/toolbar.js:188 -#: js/toolbar.js:243 -#: js/turtledefs.js:689 -msgid "Display statistics" +#: js/turtledefs.js:645 +msgid "Hide or show the blocks and the palettes." msgstr "" -#: js/toolbar.js:64 -#: js/toolbar.js:124 -#: js/toolbar.js:189 -#: js/toolbar.js:244 -msgid "Load plugin" +#: js/turtledefs.js:650 +msgid "Expand/collapse collapsable blocks" msgstr "" -#: js/toolbar.js:65 -#: js/toolbar.js:125 -#: js/toolbar.js:190 -#: js/toolbar.js:245 -#: js/turtledefs.js:696 -msgid "Delete plugin" +#: js/turtledefs.js:651 +msgid "Expand or collapse start and action stacks." msgstr "" -#: js/toolbar.js:66 -#: js/toolbar.js:126 -#: js/toolbar.js:191 -#: js/toolbar.js:246 -msgid "Enable horizontal scrolling" +#: js/turtledefs.js:658 +#: js/activity.js:5704 +msgid "Decrease block size" msgstr "" -#: js/toolbar.js:67 -#: js/toolbar.js:127 -#: js/toolbar.js:192 -#: js/toolbar.js:247 -msgid "Disable horizontal scrolling" +#: js/turtledefs.js:659 +msgid "Decrease the size of the blocks." msgstr "" -#: js/toolbar.js:68 -#: js/toolbar.js:128 -#: js/toolbar.js:193 -#: js/toolbar.js:248 -#: js/LocalCard.js:54 -#: js/StringHelper.js:71 -msgid "Merge with current project" +#: js/turtledefs.js:664 +#: js/activity.js:5710 +msgid "Increase block size" msgstr "" -#: js/toolbar.js:69 -#: js/toolbar.js:129 -msgid "Set Pitch Preview" +#: js/turtledefs.js:665 +msgid "Increase the size of the blocks." msgstr "" -#: js/toolbar.js:70 -#: js/toolbar.js:130 -#: js/toolbar.js:194 -#: js/toolbar.js:249 -msgid "Toggle JavaScript Editor" +#: js/turtledefs.js:670 +msgid "Expand/collapse option toolbar" msgstr "" -#: js/toolbar.js:71 -#: js/toolbar.js:131 -#: js/toolbar.js:195 -#: js/toolbar.js:250 -#: js/turtledefs.js:724 -msgid "Restore" +#: js/turtledefs.js:671 +msgid "Click this button to expand or collapse the auxillary toolbar." msgstr "" -#: js/toolbar.js:72 -#: js/toolbar.js:132 -#: js/toolbar.js:196 -#: js/toolbar.js:251 -msgid "Switch to beginner mode" +#: js/turtledefs.js:676 +msgid "Run slow" msgstr "" -#: js/toolbar.js:73 -#: js/toolbar.js:133 -#: js/toolbar.js:197 -#: js/toolbar.js:252 -msgid "Switch to advanced mode" +#: js/turtledefs.js:677 +msgid "Click to run the project in slow mode." msgstr "" -#: js/toolbar.js:74 -#: js/toolbar.js:134 -#: js/toolbar.js:143 -#: js/toolbar.js:198 -#: js/toolbar.js:253 -#: js/turtledefs.js:738 -msgid "Select language" +#: js/turtledefs.js:683 +msgid "Click to run the project step by step." msgstr "" -#: js/toolbar.js:76 -#: js/toolbar.js:79 -#: js/toolbar.js:137 -#: js/turtledefs.js:579 -msgid "Save mouse artwork as PNG" +#: js/turtledefs.js:690 +msgid "Display statistics about your Music project." msgstr "" -#: js/toolbar.js:78 -#: js/toolbar.js:136 -#: js/turtledefs.js:575 -msgid "Save mouse artwork as SVG" +#: js/turtledefs.js:697 +msgid "Delete a selected plugin." msgstr "" -#: js/toolbar.js:80 -#: js/toolbar.js:138 -#: js/turtledefs.js:583 -msgid "Save music as WAV" +#: js/turtledefs.js:704 +msgid "Enable scrolling" msgstr "" -#: js/toolbar.js:81 -#: js/toolbar.js:139 -#: js/turtledefs.js:587 -msgid "Save sheet music as ABC" +#: js/turtledefs.js:705 +msgid "You can scroll the blocks on the canvas." msgstr "" -#: js/toolbar.js:82 -#: js/toolbar.js:140 -#: js/turtledefs.js:591 -msgid "Save sheet music as Lilypond" +#: js/turtledefs.js:714 +msgid "Wrap Turtle" msgstr "" -#: js/toolbar.js:83 -msgid "Save sheet music as MusicXML" +#: js/turtledefs.js:715 +msgid "Turn Turtle wrapping On or Off." msgstr "" -#: js/toolbar.js:84 -#: js/toolbar.js:141 -#: js/toolbar.js:149 -#: js/toolbar.js:204 -#: js/toolbar.js:259 -#: js/turtledefs.js:562 -#: js/turtledefs.js:595 -msgid "Save block artwork as SVG" +#: js/turtledefs.js:725 +msgid "Restore blocks from the trash." msgstr "" -#: js/toolbar.js:85 -#: js/toolbar.js:142 -#: js/toolbar.js:150 -#: js/toolbar.js:205 -#: js/toolbar.js:260 -msgid "Confirm" +#: js/turtledefs.js:732 +msgid "Switch mode" msgstr "" -#: js/toolbar.js:86 -#: js/toolbar.js:151 -#: js/toolbar.js:206 -#: js/toolbar.js:261 -msgid "English (United States)" +#: js/turtledefs.js:733 +msgid "Switch between beginner and advance modes." msgstr "" -#: js/toolbar.js:87 -#: js/toolbar.js:152 -#: js/toolbar.js:207 -#: js/toolbar.js:262 -msgid "English (United Kingdom)" +#: js/turtledefs.js:739 +msgid "Select your language preference." msgstr "" -#: js/toolbar.js:88 -#: js/toolbar.js:153 -#: js/toolbar.js:208 -#: js/toolbar.js:263 -msgid "日本語" +#: js/turtledefs.js:745 +msgid "Keyboard shortcuts" msgstr "" -#: js/toolbar.js:89 -msgid "한국어" +#: js/turtledefs.js:746 +msgid "You can type d to create a do block and r to create a re block etc." msgstr "" -#: js/toolbar.js:90 -#: js/toolbar.js:155 -#: js/toolbar.js:210 -#: js/toolbar.js:265 -msgid "español" +#: js/turtledefs.js:753 +msgid "Show these messages." msgstr "" -#: js/toolbar.js:91 -#: js/toolbar.js:156 -#: js/toolbar.js:211 -#: js/toolbar.js:266 -msgid "português" +#: js/turtledefs.js:759 +#: js/turtledefs.js:790 +#: js/widgets/help.js:335 +msgid "Guide" msgstr "" -#: js/toolbar.js:92 -#: js/toolbar.js:157 -#: js/toolbar.js:212 -#: js/toolbar.js:267 -msgid "にほんご" +#: js/turtledefs.js:760 +msgid "A detailed guide to Turtle Blocks is available." msgstr "" -#: js/toolbar.js:93 -#: js/toolbar.js:158 -#: js/toolbar.js:213 -#: js/toolbar.js:268 -msgid "中文" +#: js/turtledefs.js:764 +msgid "Turtle Blocks Guide" msgstr "" -#: js/toolbar.js:94 -#: js/toolbar.js:159 -#: js/toolbar.js:214 -#: js/toolbar.js:269 -msgid "ภาษาไทย" +#: js/turtledefs.js:767 +#: js/turtledefs.js:798 +#: js/widgets/help.js:336 +msgid "About" msgstr "" -#: js/toolbar.js:95 -#: js/toolbar.js:160 -#: js/toolbar.js:215 -#: js/toolbar.js:270 -msgid "aymara" +#: js/turtledefs.js:768 +msgid "Turtle Blocks is an open source collection of tools for exploring musical concepts." msgstr "" -#: js/toolbar.js:96 -#: js/toolbar.js:161 -#: js/toolbar.js:216 -#: js/toolbar.js:271 -msgid "quechua" +#: js/turtledefs.js:770 +msgid "A full list of contributors can be found in the Turtle Blocks GitHub repository." msgstr "" -#: js/toolbar.js:97 -#: js/toolbar.js:162 -#: js/toolbar.js:217 -#: js/toolbar.js:272 -msgid "guarani" +#: js/turtledefs.js:772 +msgid "Turtle Blocks is licensed under the AGPL." msgstr "" -#: js/toolbar.js:98 -#: js/toolbar.js:163 -#: js/toolbar.js:218 -#: js/toolbar.js:273 -msgid "हिंदी" +#: js/turtledefs.js:780 +msgid "Turtle Blocks GitHub repository" msgstr "" -#: js/toolbar.js:99 -#: js/toolbar.js:165 -#: js/toolbar.js:219 -#: js/toolbar.js:275 -msgid "igbo" +#: js/turtledefs.js:783 +#: js/turtledefs.js:814 +#: js/widgets/help.js:337 +#: js/widgets/help.js:359 +msgid "Congratulations." msgstr "" -#: js/toolbar.js:100 -#: js/toolbar.js:166 -#: js/toolbar.js:220 -#: js/toolbar.js:276 -msgid "عربى" +#: js/turtledefs.js:784 +msgid "You have finished the tour. Please enjoy Turtle Blocks!" msgstr "" -#: js/toolbar.js:101 -#: js/toolbar.js:164 -#: js/toolbar.js:221 -#: js/toolbar.js:274 -msgid "తెలుగు" +#: js/turtledefs.js:791 +msgid "A detailed guide to Music Blocks is available." msgstr "" -#: js/toolbar.js:102 -#: js/toolbar.js:167 -#: js/toolbar.js:222 -#: js/toolbar.js:277 -msgid "עִברִית" +#: js/turtledefs.js:799 +msgid "Music Blocks is an open source collection of tools for exploring musical concepts." msgstr "" -#: js/toolbar.js:111 -#: js/toolbar.js:175 -#: js/toolbar.js:176 -#: js/toolbar.js:231 -msgid "Full Screen" +#: js/turtledefs.js:801 +msgid "A full list of contributors can be found in the Music Blocks GitHub repository." msgstr "" -#: js/toolbar.js:145 -#: js/toolbar.js:148 -#: js/toolbar.js:200 -#: js/toolbar.js:203 -#: js/toolbar.js:255 -#: js/toolbar.js:258 -#: js/turtledefs.js:558 -msgid "Save turtle artwork as PNG" +#: js/turtledefs.js:803 +msgid "Music Blocks is licensed under the AGPL." msgstr "" -#: js/toolbar.js:147 -#: js/toolbar.js:202 -#: js/toolbar.js:257 -#: js/turtledefs.js:554 -msgid "Save turtle artwork as SVG" +#: js/turtledefs.js:811 +msgid "Music Blocks GitHub repository" msgstr "" -#: js/toolbar.js:154 -#: js/toolbar.js:209 -#: js/toolbar.js:264 -msgid "한국인" +#: js/turtledefs.js:815 +msgid "You have finished the tour. Please enjoy Music Blocks!" msgstr "" -#: js/toolbar.js:171 -#: js/toolbar.js:227 -msgid "About Turtle Blocks" +#: js/turtles.js:882 +msgid "Grid" msgstr "" -#: js/toolbar.js:429 -#: js/toolbar.js:440 -msgid "Turtle Wrap Off" +#: js/turtles.js:1024 +msgid "Expand" msgstr "" -#: js/toolbar.js:442 -msgid "Turtle Wrap On" +#: js/block-verbose.js:1616 +#: js/block-verbose.js:1735 +#: js/block.js:1580 +#: js/block.js:1699 +#: js/palette.js:605 +#: js/blocks/IntervalsBlocks.js:63 +#: js/blocks/WidgetBlocks.js:259 +msgid "temperament" msgstr "" -#: js/block.js:1470 +#: js/block-verbose.js:1630 +#: js/block.js:1594 msgid "matrix" msgstr "" -#: js/block.js:1477 -#: js/WidgetBlocks.js:1226 +#: js/block-verbose.js:1637 +#: js/block.js:1601 +#: js/blocks/WidgetBlocks.js:1509 #: plugins/rodi.rtp:324 msgid "status" msgstr "" -#: js/block.js:1484 +#: js/block-verbose.js:1644 +#: js/block.js:1608 msgid "drum mapper" msgstr "" -#: js/block.js:1491 +#: js/block-verbose.js:1651 +#: js/block.js:1615 msgid "ruler" msgstr "" -#: js/block.js:1498 -#: js/WidgetBlocks.js:327 +#: js/block-verbose.js:1658 +#: js/block.js:1622 +#: js/blocks/WidgetBlocks.js:397 #.TRANS: timbre is the character or quality of a musical sound msgid "timbre" msgstr "" -#: js/block.js:1505 +#: js/block-verbose.js:1665 +#: js/block.js:1629 msgid "stair" msgstr "" -#: js/block.js:1512 -#: js/WidgetBlocks.js:577 +#: js/block-verbose.js:1672 +#: js/block.js:1636 +#: js/blocks/WidgetBlocks.js:707 #.TRANS: the speed at music is should be played. msgid "tempo" msgstr "" -#: js/block.js:1519 -#: js/block.js:1582 -#: js/IntervalsBlocks.js:1268 +#: js/block-verbose.js:1679 +#: js/block-verbose.js:1742 +#: js/block.js:1643 +#: js/block.js:1706 +#: js/blocks/IntervalsBlocks.js:1464 #.TRANS: mode, e.g., Major in C Major msgid "mode" msgstr "" -#: js/block.js:1526 +#: js/block-verbose.js:1686 +#: js/block.js:1650 msgid "slider" msgstr "" -#: js/block.js:1533 -#: js/SensorsBlocks.js:1001 +#: js/block-verbose.js:1693 +#: js/block.js:1657 +#: js/blocks/SensorsBlocks.js:1001 msgid "keyboard" msgstr "ក្ដារ​ចុច" -#: js/block.js:1547 -#: js/WidgetBlocks.js:957 -#: js/WidgetBlocks.js:988 +#: js/block-verbose.js:1707 +#: js/block.js:1671 +#: js/blocks/WidgetBlocks.js:1190 +#: js/blocks/WidgetBlocks.js:1228 #.TRANS: widget for subdividing a measure into distinct rhythmic elements msgid "rhythm maker" msgstr "" -#: js/block.js:1554 -#: js/block.js:2182 -#: js/block.js:2236 -#: js/RhythmBlockPaletteBlocks.js:70 -#: js/RhythmBlockPaletteBlocks.js:251 -#: js/RhythmBlockPaletteBlocks.js:484 -#: js/RhythmBlockPaletteBlocks.js:553 -#: js/RhythmBlockPaletteBlocks.js:604 -#: js/RhythmBlockPaletteBlocks.js:874 -#: js/RhythmBlocks.js:33 -#: js/RhythmBlocks.js:356 -#: js/RhythmBlocks.js:766 -#: js/RhythmBlocks.js:806 -#: js/OrnamentBlocks.js:220 -#: js/OrnamentBlocks.js:312 -#: js/MeterBlocks.js:1367 -#: js/DictActions.js:85 -#: js/phrasemaker.js:731 -#: js/phrasemaker.js:2393 -#: js/phrasemaker.js:2436 -#: js/phrasemaker.js:2534 +#: js/block-verbose.js:1714 +#: js/block-verbose.js:2457 +#: js/block-verbose.js:2514 +#: js/block.js:1678 +#: js/block.js:2385 +#: js/block.js:2442 +#: js/blocks/MeterBlocks.js:1367 +#: js/blocks/OrnamentBlocks.js:220 +#: js/blocks/OrnamentBlocks.js:312 +#: js/blocks/RhythmBlocks.js:33 +#: js/blocks/RhythmBlocks.js:356 +#: js/blocks/RhythmBlocks.js:766 +#: js/blocks/RhythmBlocks.js:806 +#: js/blocks/RhythmBlockPaletteBlocks.js:70 +#: js/blocks/RhythmBlockPaletteBlocks.js:252 +#: js/blocks/RhythmBlockPaletteBlocks.js:485 +#: js/blocks/RhythmBlockPaletteBlocks.js:554 +#: js/blocks/RhythmBlockPaletteBlocks.js:605 +#: js/blocks/RhythmBlockPaletteBlocks.js:875 +#: js/turtleactions/DictActions.js:85 +#: js/widgets/phrasemaker.js:942 +#: js/widgets/phrasemaker.js:2656 +#: js/widgets/phrasemaker.js:2699 +#: js/widgets/phrasemaker.js:2810 #.TRANS: the value (e.g., 1/4 note) of the note being played. msgid "note value" msgstr "" -#: js/block.js:1561 -#: js/block.js:2110 -#: js/block.js:2133 -#: js/IntervalsBlocks.js:875 -#: js/OrnamentBlocks.js:312 +#: js/block-verbose.js:1721 +#: js/block-verbose.js:2382 +#: js/block-verbose.js:2405 +#: js/block.js:1685 +#: js/block.js:2310 +#: js/block.js:2333 +#: js/blocks/IntervalsBlocks.js:1071 +#: js/blocks/OrnamentBlocks.js:312 #.TRANS: calculate a relative step between notes based on semi-tones msgid "scalar interval" msgstr "" -#: js/block.js:1568 -#: js/RhythmBlocks.js:148 +#: js/block-verbose.js:1728 +#: js/block.js:1692 +#: js/blocks/RhythmBlocks.js:148 msgid "milliseconds" msgstr "" -#: js/block.js:2180 -#: js/block.js:2184 -#: js/block.js:2234 -#: js/block.js:2345 -#: js/ProgramBlocks.js:1273 -#: js/RhythmBlocks.js:712 -#: js/rhythmruler.js:834 -#: js/rhythmruler.js:961 +#: js/block-verbose.js:2455 +#: js/block-verbose.js:2459 +#: js/block-verbose.js:2512 +#: js/block-verbose.js:2628 +#: js/block.js:2383 +#: js/block.js:2387 +#: js/block.js:2440 +#: js/block.js:2556 +#: js/blocks/RhythmBlocks.js:712 +#: js/blocks/ProgramBlocks.js:1273 +#: js/widgets/rhythmruler.js:1183 +#: js/widgets/rhythmruler.js:1329 msgid "silence" msgstr "" -#: js/block.js:2265 -#: js/block.js:3134 -#: js/block.js:3151 -#: js/activity.js:2336 -#: js/activity.js:2387 -#: js/musicutils.js:2932 -#: js/musicutils.js:4287 +#: js/block-verbose.js:2548 +#: js/block-verbose.js:3492 +#: js/block-verbose.js:3509 +#: js/activity.js:2718 +#: js/activity.js:2769 +#: js/block.js:2476 +#: js/block.js:3416 +#: js/block.js:3433 +#: js/utils/musicutils.js:3780 +#: js/utils/musicutils.js:5273 +#.TRANS: the note names must be separated by single spaces #.TRANS: the note names must be separated by single spaces #.TRANS: the note names must be separated by single spaces msgid "ti la sol fa mi re do" msgstr "" -#: js/block.js:2333 +#: js/block-verbose.js:2616 +#: js/block.js:2544 +#.TRANS: scalar step #.TRANS: scalar step msgid "down" msgstr "" -#: js/block.js:2334 +#: js/block-verbose.js:2617 +#: js/block.js:2545 msgid "up" msgstr "" -#: js/block.js:3477 -#: js/block.js:3490 -#: js/ExtrasBlocks.js:612 +#: js/block-verbose.js:3026 +#: js/block.js:2950 +msgid "Silence block cannot be removed." +msgstr "" + +#: js/block-verbose.js:3824 +#: js/block.js:3748 +#: js/blocks.js:2607 +#: js/blocks.js:3218 +#: js/palette.js:618 +#: js/blocks/BooleanBlocks.js:77 +#: js/blocks/BooleanBlocks.js:167 +#: js/blocks/BooleanBlocks.js:251 +#: js/blocks/BooleanBlocks.js:335 +#: js/blocks/BooleanBlocks.js:433 +#: js/blocks/BooleanBlocks.js:539 +#: js/blocks/BooleanBlocks.js:640 +#: js/blocks/BooleanBlocks.js:741 +#: js/blocks/BooleanBlocks.js:847 +#: js/blocks/BooleanBlocks.js:948 +#: js/blocks/BooleanBlocks.js:1033 +#: js/blocks/SensorsBlocks.js:910 +msgid "true" +msgstr "" + +#: js/block-verbose.js:3824 +#: js/block.js:3748 +#: js/blocks.js:2609 +#: js/blocks.js:3220 +#: js/blocks/BooleanBlocks.js:79 +#: js/blocks/BooleanBlocks.js:169 +#: js/blocks/BooleanBlocks.js:253 +#: js/blocks/BooleanBlocks.js:337 +#: js/blocks/BooleanBlocks.js:435 +#: js/blocks/BooleanBlocks.js:541 +#: js/blocks/BooleanBlocks.js:642 +#: js/blocks/BooleanBlocks.js:743 +#: js/blocks/BooleanBlocks.js:849 +#: js/blocks/BooleanBlocks.js:950 +#: js/blocks/SensorsBlocks.js:912 +msgid "false" +msgstr "" + +#: js/block-verbose.js:3835 +#: js/block-verbose.js:3848 +#: js/block.js:3759 +#: js/block.js:3772 +#: js/blocks/ExtrasBlocks.js:615 msgid "Cartesian" msgstr "" -#: js/block.js:3478 -#: js/block.js:3491 -#: js/ExtrasBlocks.js:616 +#: js/block-verbose.js:3836 +#: js/block-verbose.js:3849 +#: js/block.js:3760 +#: js/block.js:3773 +#: js/blocks/ExtrasBlocks.js:619 msgid "polar" msgstr "" -#: js/block.js:3479 -#: js/block.js:3492 -#: js/ExtrasBlocks.js:620 +#: js/block-verbose.js:3837 +#: js/block-verbose.js:3850 +#: js/block.js:3761 +#: js/block.js:3774 +#: js/blocks/ExtrasBlocks.js:623 msgid "Cartesian+polar" msgstr "" -#: js/block.js:3480 -#: js/block.js:3499 -#: js/ExtrasBlocks.js:649 +#: js/block-verbose.js:3838 +#: js/block-verbose.js:3857 +#: js/block.js:3762 +#: js/block.js:3781 +#: js/blocks/ExtrasBlocks.js:652 msgid "none" msgstr "" -#: js/block.js:3493 -#: js/ExtrasBlocks.js:625 +#: js/block-verbose.js:3851 +#: js/block.js:3775 +#: js/blocks/ExtrasBlocks.js:628 msgid "treble" msgstr "" -#: js/block.js:3494 -#: js/ExtrasBlocks.js:629 +#: js/block-verbose.js:3852 +#: js/block.js:3776 +#: js/blocks/ExtrasBlocks.js:632 msgid "grand staff" msgstr "" -#: js/block.js:3495 -#: js/ExtrasBlocks.js:633 +#: js/block-verbose.js:3853 +#: js/block.js:3777 +#: js/blocks/ExtrasBlocks.js:636 msgid "mezzo-soprano" msgstr "" -#: js/block.js:3496 -#: js/ExtrasBlocks.js:637 +#: js/block-verbose.js:3854 +#: js/block.js:3778 +#: js/blocks/ExtrasBlocks.js:640 msgid "alto" msgstr "" -#: js/block.js:3497 -#: js/ExtrasBlocks.js:641 +#: js/block-verbose.js:3855 +#: js/block.js:3779 +#: js/blocks/ExtrasBlocks.js:644 msgid "tenor" msgstr "" -#: js/block.js:3498 -#: js/ExtrasBlocks.js:645 -#: js/musicutils.js:736 -#: js/synthutils.js:64 +#: js/block-verbose.js:3856 +#: js/block.js:3780 +#: js/utils/musicutils.js:1115 +#: js/utils/synthutils.js:80 +#: js/blocks/ExtrasBlocks.js:648 #.TRANS: musical instrument msgid "bass" msgstr "" -#: js/block.js:4075 +#: js/block-verbose.js:3901 +#: js/block.js:3825 +#: js/blocks.js:2600 +#: js/blocks.js:3211 +msgid "on2" +msgstr "" + +#: js/block-verbose.js:3903 +#: js/block.js:3827 +#: js/blocks.js:2602 +#: js/blocks.js:3213 +msgid "off" +msgstr "" + +#: js/block-verbose.js:4470 +#: js/block.js:4394 msgid "Not a number" msgstr "" -#: js/block.js:4082 +#: js/block-verbose.js:4477 +#: js/block.js:4401 msgid "Octave value must be between 1 and 10." msgstr "" -#: js/block.js:4090 +#: js/block-verbose.js:4485 +#: js/block.js:4409 msgid "Numbers can have at most 10 digits." msgstr "" -#: js/notation.js:353 -msgid "Lilypond cannot process pickup of " +#: js/activity.js:390 +#: js/activity.js:395 +msgid "Search for blocks" msgstr "" -#: js/turtledefs.js:40 -#.TRANS: put the URL to the guide here, e.g., https://github.com/sugarlabs/turtleblocksjs/tree/master/guide/README.md -msgid "guide url" +#: js/activity.js:1413 +msgid "Refresh your browser to change to advanced mode." msgstr "" -#: js/turtledefs.js:85 -#: js/turtledefs.js:437 -msgid "Turtle Blocks is a Logo-inspired turtle that draws colorful pictures with snap-together visual-programming blocks." +#: js/activity.js:1418 +msgid "Refresh your browser to change to beginner mode." msgstr "" -#: js/turtledefs.js:118 -#: js/turtledefs.js:220 -msgid "search" +#: js/activity.js:1477 +msgid "Catching mice" +msgstr "" + +#: js/activity.js:1478 +msgid "Cleaning the instruments" +msgstr "" + +#: js/activity.js:1479 +msgid "Testing key pieces" +msgstr "" + +#: js/activity.js:1480 +msgid "Sight-reading" +msgstr "" + +#: js/activity.js:1481 +msgid "Combining math and music" +msgstr "" + +#: js/activity.js:1482 +msgid "Generating more blocks" +msgstr "" + +#: js/activity.js:1483 +msgid "Do Re Mi Fa Sol La Ti Do" +msgstr "" + +#: js/activity.js:1484 +msgid "Tuning string instruments" +msgstr "" + +#: js/activity.js:1485 +msgid "Pressing random keys" +msgstr "" + +#: js/activity.js:1663 +msgid "plugins will be removed upon restart." +msgstr "" + +#: js/activity.js:1672 +msgid "show Cartesian" +msgstr "" + +#: js/activity.js:2211 +#: js/palette.js:589 +#: js/blocks/RhythmBlocks.js:923 +#: js/blocks/PitchBlocks.js:442 +#: js/blocks/PitchBlocks.js:1786 +#.TRANS: a numeric mapping of the notes in an octave based on the musical mode +msgid "scale degree" +msgstr "" + +#: js/activity.js:2214 +#: js/palette.js:598 +msgid "voice name" +msgstr "" + +#: js/activity.js:2217 +#: js/palette.js:595 +msgid "invert mode" +msgstr "" + +#: js/activity.js:2220 +msgid "output tools" +msgstr "" + +#: js/activity.js:2223 +msgid "custom note" +msgstr "" + +#: js/activity.js:2226 +msgid "accidental name" +msgstr "" + +#: js/activity.js:2229 +#: js/blocks/PitchBlocks.js:855 +msgid "east indian solfege" +msgstr "" + +#: js/activity.js:2232 +#: js/blocks/PitchBlocks.js:869 +msgid "note name" +msgstr "" + +#: js/activity.js:2235 +#: js/blocks/IntervalsBlocks.js:94 +msgid "temperament name" +msgstr "" + +#: js/activity.js:2238 +#: js/palette.js:592 +msgid "mode name" +msgstr "" + +#: js/activity.js:2241 +msgid "chord name" +msgstr "" + +#: js/activity.js:2244 +#: js/palette.js:615 +msgid "interval name" +msgstr "" + +#: js/activity.js:2247 +msgid "filter type" +msgstr "" + +#: js/activity.js:2250 +msgid "oscillator type" +msgstr "" + +#: js/activity.js:2253 +#: js/blocks.js:2479 +#: js/blocks.js:2487 +msgid "audio file" +msgstr "" + +#: js/activity.js:2256 +#: js/blocks/DrumBlocks.js:32 +msgid "noise name" +msgstr "" + +#: js/activity.js:2259 +#: js/blocks/DrumBlocks.js:75 +msgid "drum name" +msgstr "" + +#: js/activity.js:2262 +#: js/blocks/DrumBlocks.js:119 +msgid "effects name" +msgstr "" + +#: js/activity.js:2265 +msgid "wrap mode" +msgstr "" + +#: js/activity.js:2268 +msgid "load file" +msgstr "" + +#: js/activity.js:2435 +#: js/activity.js:5851 +msgid "This block is deprecated." +msgstr "" + +#: js/activity.js:2437 +#: js/activity.js:5853 +msgid "Block cannot be found." +msgstr "" + +#: js/activity.js:2645 +msgid "Saving block artwork" +msgstr "" + +#: js/activity.js:2656 +msgid "Erase" +msgstr "" + +#: js/activity.js:2683 +#: js/activity.js:2705 +msgid "Paste" +msgstr "បិទភ្ជាប់​" + +#: js/activity.js:2687 +msgid "Save block help" +msgstr "" + +#: js/activity.js:2772 +msgid "Jumping to the bottom of the page." +msgstr "" + +#: js/activity.js:2778 +msgid "Scrolling up." +msgstr "" + +#: js/activity.js:2783 +msgid "Scrolling down." +msgstr "" + +#: js/activity.js:2788 +msgid "Extracting block" +msgstr "" + +#: js/activity.js:2796 +msgid "Moving block up." +msgstr "" + +#: js/activity.js:2817 +msgid "Moving block down." +msgstr "" + +#: js/activity.js:2838 +msgid "Moving block left." +msgstr "" + +#: js/activity.js:2855 +msgid "Moving block right." +msgstr "" + +#: js/activity.js:2870 +msgid "Jump to home position." +msgstr "" + +#: js/activity.js:2897 +msgid "Hide blocks" msgstr "" -#: js/turtledefs.js:120 -#: js/turtledefs.js:222 -#: js/WidgetBlocks.js:437 -#: js/MeterBlocks.js:1343 -#.TRANS: musical meter (time signature), e.g., 4:4 -msgid "meter" +#: js/activity.js:4500 +msgid "Click the run button to run the project." msgstr "" -#: js/turtledefs.js:122 -#: js/turtledefs.js:224 -msgid "intervals" +#: js/activity.js:5692 +msgid "Show/hide block" msgstr "" -#: js/turtledefs.js:124 -#: js/turtledefs.js:226 -msgid "ornament" +#: js/activity.js:5698 +msgid "Expand/collapse blocks" msgstr "" -#: js/turtledefs.js:125 -#: js/turtledefs.js:227 -#: js/VolumeBlocks.js:362 -#: js/VolumeBlocks.js:502 -#: js/VolumeBlocks.js:545 -msgid "volume" +#: js/activity.js:5976 +msgid "Could not parse JSON input." msgstr "" -#: js/turtledefs.js:129 -#: js/turtledefs.js:231 -msgid "boxes" +#: js/activity.js:6475 +#: js/activity.js:6580 +#: js/activity.js:6631 +msgid "Cannot load project from the file. Please check the file type." msgstr "" -#: js/turtledefs.js:130 -#: js/turtledefs.js:232 -msgid "widgets" +#: js/activity.js:6917 +msgid "Invalid parameters" msgstr "" -#: js/turtledefs.js:131 -#: js/turtledefs.js:233 -#: js/phrasemaker.js:824 -msgid "graphics" -msgstr "" +#: js/blocks.js:1212 +#: js/blocks.js:3444 +#: js/blocks.js:3834 +#: js/blocks.js:3865 +#: js/blocks.js:3914 +#: js/blocks.js:3949 +#: js/blocks.js:6586 +#: js/palette.js:509 +#: js/palette.js:638 +#: js/palette.js:1105 +#: js/blocks/BoxesBlocks.js:282 +#: js/blocks/BoxesBlocks.js:285 +#: js/blocks/BoxesBlocks.js:405 +#: js/blocks/BoxesBlocks.js:594 +msgid "box" +msgstr "ប្រអប់​" -#: js/turtledefs.js:134 -#: js/turtledefs.js:236 -msgid "boolean" +#: js/blocks.js:1713 +msgid "Consider breaking this stack into parts." msgstr "" -#: js/turtledefs.js:137 -#: js/turtledefs.js:239 -#: js/HeapBlocks.js:59 -#: js/status.js:147 -msgid "heap" +#: js/blocks.js:2472 +#: js/palette.js:653 +#: js/blocks/MediaBlocks.js:602 +msgid "open file" msgstr "" -#: js/turtledefs.js:138 -#: js/turtledefs.js:240 -#: js/ProgramBlocks.js:495 -#: js/DictBlocks.js:142 -msgid "dictionary" +#: js/blocks.js:3247 +#: js/palette.js:574 +#: js/blocks/MediaBlocks.js:892 +#: js/blocks/MediaBlocks.js:963 +msgid "text" +msgstr "អត្ថបទ" + +#: js/blocks.js:3443 +#: js/palette.js:641 +#: js/palette.js:642 +#: js/blocks/BoxesBlocks.js:514 +msgid "store in box" msgstr "" -#: js/turtledefs.js:139 -#: js/turtledefs.js:241 -msgid "ensemble" +#: js/blocks.js:3448 +#: js/blocks.js:3888 +#: js/blocks.js:3923 +#: js/blocks.js:3958 +#: js/blocks.js:5862 +#: js/blocks.js:5883 +#: js/blocks/BoxesBlocks.js:772 +msgid "box1" msgstr "" -#: js/turtledefs.js:140 -#: js/turtledefs.js:242 -msgid "extras" +#: js/blocks.js:3450 +#: js/blocks.js:3890 +#: js/blocks.js:3925 +#: js/blocks.js:3960 +#: js/blocks.js:5864 +#: js/blocks.js:5885 +#: js/blocks/BoxesBlocks.js:663 +msgid "box2" msgstr "" -#: js/turtledefs.js:142 -#: js/turtledefs.js:244 -#.TRANS: program as in computer program -#.TRANS: program as in computer program -msgid "program" +#: js/blocks.js:4122 +#: js/palette.js:639 +#: js/palette.js:644 +#: js/palette.js:1041 +#: js/blocks/BoxesBlocks.js:591 +msgid "store in" msgstr "" -#: js/turtledefs.js:143 -#: js/turtledefs.js:245 -msgid "my blocks" +#: js/blocks.js:4122 +#: js/blocks/BoxesBlocks.js:595 +#: js/blocks/DictBlocks.js:215 +#: js/blocks/DictBlocks.js:289 +#: js/blocks/EnsembleBlocks.js:391 +#: js/blocks/EnsembleBlocks.js:402 +#: js/blocks/MediaBlocks.js:746 +#: js/blocks/PitchBlocks.js:656 +#: js/blocks/PitchBlocks.js:934 +#: js/blocks/PitchBlocks.js:1866 +#: js/blocks/ProgramBlocks.js:390 +#: js/blocks/ProgramBlocks.js:495 +#: js/blocks/ProgramBlocks.js:658 +#: js/blocks/ToneBlocks.js:1025 +msgid "name" msgstr "" -#: js/turtledefs.js:185 -#: js/turtledefs.js:281 -msgid "artwork" +#: js/blocks.js:4122 +#: js/blocks/BoxesBlocks.js:75 +#: js/blocks/BoxesBlocks.js:595 +#: js/blocks/DictBlocks.js:289 +#: js/blocks/DictBlocks.js:430 +#: js/blocks/HeapBlocks.js:544 +#: js/blocks/RhythmBlocks.js:1130 +msgid "value" +msgstr "តម្លៃ​" + +#: js/blocks.js:4465 +msgid "Forever loop detected inside a note value block. Unexpected things may happen." msgstr "" -#: js/turtledefs.js:185 -#: js/turtledefs.js:281 -msgid "logic" +#: js/blocks.js:4988 +msgid "There is no block selected." msgstr "" -#: js/turtledefs.js:185 -#: js/turtledefs.js:281 -msgid "music" +#: js/blocks.js:5091 +#: js/blocks/MediaBlocks.js:888 +msgid "show" +msgstr "បង្ហាញ" + +#: js/blocks.js:5094 +#: js/blocks/MediaBlocks.js:803 +#.TRANS: Avatar is the image used to determine the appearance of the mouse. +msgid "avatar" msgstr "" -#: js/turtledefs.js:187 -#: js/turtledefs.js:463 -msgid "Music Blocks is a collection of tools for exploring fundamental musical concepts in a fun way." +#: js/blocks.js:5097 +#: js/blocks/ToneBlocks.js:1010 +#: js/widgets/sampler.js:975 +#.TRANS: The sound sample that the user uploads. +msgid "sample" msgstr "" -#: js/turtledefs.js:436 -msgid "Welcome to Turtle Blocks" +#: js/lilypond.js:606 +msgid "brown rat" msgstr "" -#: js/turtledefs.js:438 -#: js/turtledefs.js:465 -#: js/turtledefs.js:774 -#: js/turtledefs.js:805 -msgid "The current version is" +#: js/lilypond.js:607 +msgid "mole" msgstr "" -#: js/turtledefs.js:446 -#: js/turtledefs.js:483 -msgid "Click the run button to run the project in fast mode." +#: js/lilypond.js:608 +msgid "chipmunk" msgstr "" -#: js/turtledefs.js:452 -msgid "Stop the turtle." +#: js/lilypond.js:609 +msgid "red squirrel" msgstr "" -#: js/turtledefs.js:454 -#: js/turtledefs.js:491 -msgid "You can also type Alt-S to stop." +#: js/lilypond.js:610 +msgid "guinea pig" msgstr "" -#: js/turtledefs.js:462 -#: js/help.js:333 -msgid "Welcome to Music Blocks" +#: js/lilypond.js:611 +msgid "capybara" msgstr "" -#: js/turtledefs.js:472 -#: js/help.js:334 -msgid "Meet Mr. Mouse!" +#: js/lilypond.js:612 +msgid "coypu" msgstr "" -#: js/turtledefs.js:473 -msgid "Mr Mouse is our Music Blocks conductor." +#: js/lilypond.js:613 +msgid "black rat" msgstr "" -#: js/turtledefs.js:475 -msgid "Mr Mouse encourages you to explore Music Blocks." +#: js/lilypond.js:614 +msgid "grey squirrel" msgstr "" -#: js/turtledefs.js:477 -msgid "Let us start our tour!" +#: js/lilypond.js:615 +msgid "flying squirrel" msgstr "" -#: js/turtledefs.js:489 -msgid "Stop the music (and the mice)." +#: js/lilypond.js:616 +msgid "bat" msgstr "" -#: js/turtledefs.js:499 -msgid "Record your project as video." +#: js/lilypond.js:749 +#: js/lilypond.js:913 +#: js/lilypond.js:951 +#: js/blocks/ActionBlocks.js:1256 +#: js/blocks/ExtrasBlocks.js:556 +msgid "start drum" msgstr "" -#: js/turtledefs.js:505 -msgid "Toggle Fullscreen mode." +#: js/logo.js:61 +msgid "Not a valid pitch name" msgstr "" -#: js/turtledefs.js:511 -msgid "Initialize a new project." +#: js/logo.js:507 +#: js/blocks/ProgramBlocks.js:258 +#: js/blocks/ProgramBlocks.js:427 +msgid "You must select a file." msgstr "" -#: js/turtledefs.js:517 -msgid "You can also load projects from the file system." +#: js/logo.js:1696 +msgid "Playback is ready." msgstr "" -#: js/turtledefs.js:522 -#: js/StringHelper.js:46 -msgid "Delete" +#: js/macros.js:711 +#: js/utils/musicutils.js:1162 +#: js/utils/synthutils.js:202 +#.TRANS: animal sound effect +msgid "duck" msgstr "" -#: js/turtledefs.js:523 -msgid "To delete a block, just right-click on it, then you will be able to see the delete option" +#: js/notation.js:353 +msgid "Lilypond cannot process pickup of " msgstr "" -#: js/turtledefs.js:528 -#: js/activity.js:2270 -#: js/LocalCard.js:31 -msgid "Copy" -msgstr "ចំលង" +#: js/palette.js:571 +msgid "grid" +msgstr "" -#: js/turtledefs.js:529 -msgid "To copy a block, just right-click on it, then you will be able to see the copy option" +#: js/palette.js:580 +msgid "effect" msgstr "" -#: js/turtledefs.js:535 -msgid "To extract a block, just right-click on it, then you will be able to see the extract option" +#: js/palette.js:586 +msgid "sargam" msgstr "" -#: js/turtledefs.js:542 -#: js/turtledefs.js:552 -#: js/turtledefs.js:573 -msgid "Save your project to a file." +#: js/palette.js:601 +#: js/blocks/PitchBlocks.js:1209 +msgid "custom pitch" msgstr "" -#: js/turtledefs.js:549 -#: js/turtledefs.js:570 -msgid "save" +#: js/palette.js:609 +msgid "accidental" msgstr "" -#: js/turtledefs.js:556 -#: js/turtledefs.js:577 -msgid "Save graphics from your project to as SVG." +#: js/palette.js:633 +#: js/blocks/PitchBlocks.js:405 +msgid "pitch converter" msgstr "" -#: js/turtledefs.js:560 -#: js/turtledefs.js:581 -msgid "Save graphics from your project as PNG." +#: js/piemenus.js:200 +#: js/utils/musicutils.js:1187 +#: js/utils/musicutils.js:1207 +#: js/widgets/musickeyboard.js:2341 +#: js/widgets/phrasemaker.js:1908 +#: js/widgets/sampler.js:810 +#.TRANS: double sharp is a music term related to pitch +msgid "double sharp" msgstr "" -#: js/turtledefs.js:564 -#: js/turtledefs.js:597 -msgid "Save block artwork as an SVG file." +#: js/piemenus.js:201 +#: js/utils/musicutils.js:1185 +#: js/utils/musicutils.js:1208 +#: js/blocks/PitchBlocks.js:1539 +#: js/turtleactions/PitchActions.js:323 +#: js/widgets/musickeyboard.js:2342 +#: js/widgets/phrasemaker.js:1909 +#: js/widgets/sampler.js:811 +#.TRANS: sharp is a music term related to pitch +#.TRANS: sharp is a half-step up in pitch +msgid "sharp" msgstr "" -#: js/turtledefs.js:585 -msgid "Save audio from your project as WAV." +#: js/piemenus.js:202 +#: js/utils/musicutils.js:1183 +#: js/utils/musicutils.js:1209 +#: js/widgets/musickeyboard.js:2343 +#: js/widgets/phrasemaker.js:1910 +#: js/widgets/sampler.js:812 +#.TRANS: natural is a music term related to pitch +msgid "natural" msgstr "" -#: js/turtledefs.js:589 -msgid "Save your project to as an ABC file." +#: js/piemenus.js:203 +#: js/utils/musicutils.js:1181 +#: js/utils/musicutils.js:1210 +#: js/blocks/PitchBlocks.js:1498 +#: js/turtleactions/PitchActions.js:326 +#: js/widgets/musickeyboard.js:2344 +#: js/widgets/phrasemaker.js:1911 +#: js/widgets/sampler.js:813 +#.TRANS: flat is a music term related to pitch +#.TRANS: flat is a half-step down in pitch +msgid "flat" msgstr "" -#: js/turtledefs.js:593 -msgid "Save your project to as a Lilypond file." +#: js/piemenus.js:204 +#: js/utils/musicutils.js:1179 +#: js/utils/musicutils.js:1211 +#: js/widgets/musickeyboard.js:2345 +#: js/widgets/phrasemaker.js:1912 +#: js/widgets/sampler.js:814 +#.TRANS: double flat is a music term related to pitch +msgid "double flat" msgstr "" -#: js/turtledefs.js:604 -msgid "Load samples from server" +#: js/piemenus.js:2864 +#: js/utils/musicutils.js:1006 +#: js/blocks/PitchBlocks.js:1385 +#.TRANS: unison is a music term related to intervals +#.TRANS: unison means the note is the same as the current note +msgid "unison" msgstr "" -#: js/turtledefs.js:605 -msgid "This button opens a viewer for loading example projects." +#: js/piemenus.js:3018 +#: js/piemenus.js:3091 +#: js/utils/musicutils.js:1014 +#: js/utils/musicutils.js:1189 +#: js/utils/musicutils.js:1326 +#.TRANS: major is a music term related to intervals and mode +msgid "major" msgstr "" -#: js/turtledefs.js:611 -msgid "Palette buttons" +#: js/piemenus.js:3018 +#: js/piemenus.js:3091 +#: js/utils/musicutils.js:1032 +#.TRANS: modal scale for music +msgid "ionian" msgstr "" -#: js/turtledefs.js:612 -msgid "This toolbar contains the palette buttons including Rhythm Pitch Tone Action and more." +#: js/piemenus.js:3020 +#: js/piemenus.js:3095 +#: js/utils/musicutils.js:1012 +#: js/utils/musicutils.js:1190 +#: js/utils/musicutils.js:1323 +#.TRANS: minor is a music term related to intervals and mode +msgid "minor" msgstr "" -#: js/turtledefs.js:614 -msgid "Click to show the palettes of blocks and drag blocks from the palettes onto the canvas to use them." +#: js/piemenus.js:3020 +#: js/piemenus.js:3095 +#: js/utils/musicutils.js:1042 +#.TRANS: modal scale for music +msgid "aeolian" msgstr "" -#: js/turtledefs.js:620 -msgid "Cartesian/Polar" +#: js/piemenus.js:3410 +msgid "Duplicate" msgstr "" -#: js/turtledefs.js:621 -msgid "Show or hide a coordinate grid." +#: js/piemenus.js:3412 +msgid "Move to trash" msgstr "" -#: js/turtledefs.js:627 -msgid "Clear the screen and return the mice to their initial positions." +#: js/piemenus.js:3413 +#: js/widgets/timbre.js:968 +#: planet/js/StringHelper.js:69 +msgid "Close" msgstr "" -#: js/turtledefs.js:633 -msgid "Collapse the graphics window." +#: js/piemenus.js:3419 +msgid "Save stack" msgstr "" -#: js/turtledefs.js:638 -#: js/activity.js:4256 -#: js/activity.js:4256 -msgid "Home" +#: js/piemenus.js:3449 +msgid "In order to copy a sample, you must reload the widget, import the sample again, and export it." msgstr "" -#: js/turtledefs.js:639 -msgid "Return all blocks to the center of the screen." +#: js/piemenus.js:3812 +msgid "You have chosen key " msgstr "" -#: js/turtledefs.js:644 -msgid "Show/hide blocks" +#: js/piemenus.js:3816 +msgid " for your pitch preview." msgstr "" -#: js/turtledefs.js:645 -msgid "Hide or show the blocks and the palettes." +#: js/turtle-singer.js:1363 +#.TRANS: partials are weighted components in a harmonic series +msgid "You must have at least one Partial block inside of a Weighted-partial block" msgstr "" -#: js/turtledefs.js:650 -msgid "Expand/collapse collapsable blocks" +#: js/turtle-singer.js:2077 +msgid "synth cannot play chords." msgstr "" -#: js/turtledefs.js:651 -msgid "Expand or collapse start and action stacks." +#: js/utils/musicutils.js:505 +#: js/utils/musicutils.js:645 +#: js/widgets/pitchdrummatrix.js:228 +#: js/widgets/musickeyboard.js:2885 +msgid "rest" msgstr "" -#: js/turtledefs.js:658 -#: js/activity.js:4265 -msgid "Decrease block size" +#: js/utils/musicutils.js:689 +msgid "Perfect unison" msgstr "" -#: js/turtledefs.js:659 -msgid "Decrease the size of the blocks." +#: js/utils/musicutils.js:689 +msgid "Diminished second" msgstr "" -#: js/turtledefs.js:664 -#: js/activity.js:4267 -msgid "Increase block size" +#: js/utils/musicutils.js:690 +msgid "Minor second" msgstr "" -#: js/turtledefs.js:665 -msgid "Increase the size of the blocks." +#: js/utils/musicutils.js:690 +msgid "Augmented unison" msgstr "" -#: js/turtledefs.js:670 -msgid "Expand/collapse option toolbar" +#: js/utils/musicutils.js:691 +msgid "Major second" msgstr "" -#: js/turtledefs.js:671 -msgid "Click this button to expand or collapse the auxillary toolbar." +#: js/utils/musicutils.js:691 +msgid "Diminished third" msgstr "" -#: js/turtledefs.js:676 -msgid "Run slow" +#: js/utils/musicutils.js:692 +msgid "Minor third" msgstr "" -#: js/turtledefs.js:677 -msgid "Click to run the project in slow mode." +#: js/utils/musicutils.js:692 +msgid "Augmented second" msgstr "" -#: js/turtledefs.js:683 -msgid "Click to run the project step by step." +#: js/utils/musicutils.js:693 +msgid "Major third" msgstr "" -#: js/turtledefs.js:690 -msgid "Display statistics about your Music project." +#: js/utils/musicutils.js:693 +msgid "Diminished fourth" msgstr "" -#: js/turtledefs.js:697 -msgid "Delete a selected plugin." +#: js/utils/musicutils.js:694 +msgid "Perfect fourth" msgstr "" -#: js/turtledefs.js:704 -msgid "Enable scrolling" +#: js/utils/musicutils.js:694 +msgid "Augmented third" msgstr "" -#: js/turtledefs.js:705 -msgid "You can scroll the blocks on the canvas." +#: js/utils/musicutils.js:695 +msgid "Diminished fifth" msgstr "" -#: js/turtledefs.js:714 -msgid "Wrap Turtle" +#: js/utils/musicutils.js:695 +msgid "Augmented fourth" msgstr "" -#: js/turtledefs.js:715 -msgid "Turn Turtle wrapping On or Off." +#: js/utils/musicutils.js:696 +msgid "Perfect fifth" msgstr "" -#: js/turtledefs.js:725 -msgid "Restore blocks from the trash." +#: js/utils/musicutils.js:696 +msgid "Diminished sixth" msgstr "" -#: js/turtledefs.js:732 -msgid "Switch mode" +#: js/utils/musicutils.js:697 +msgid "Minor sixth" msgstr "" -#: js/turtledefs.js:733 -msgid "Switch between beginner and advance modes." +#: js/utils/musicutils.js:697 +msgid "Augmented fifth" msgstr "" -#: js/turtledefs.js:739 -msgid "Select your language preference." +#: js/utils/musicutils.js:698 +msgid "Major sixth" msgstr "" -#: js/turtledefs.js:745 -msgid "Keyboard shortcuts" +#: js/utils/musicutils.js:698 +msgid "Diminished seventh" msgstr "" -#: js/turtledefs.js:746 -msgid "You can type d to create a do block and r to create a re block etc." +#: js/utils/musicutils.js:699 +msgid "Minor seventh" msgstr "" -#: js/turtledefs.js:753 -msgid "Show these messages." +#: js/utils/musicutils.js:699 +msgid "Augmented sixth" msgstr "" -#: js/turtledefs.js:759 -#: js/turtledefs.js:790 -#: js/help.js:335 -msgid "Guide" +#: js/utils/musicutils.js:700 +msgid "Major seventh" msgstr "" -#: js/turtledefs.js:760 -msgid "A detailed guide to Turtle Blocks is available." +#: js/utils/musicutils.js:700 +msgid "Diminished octave" msgstr "" -#: js/turtledefs.js:764 -msgid "Turtle Blocks Guide" +#: js/utils/musicutils.js:701 +msgid "Perfect octave" msgstr "" -#: js/turtledefs.js:767 -#: js/turtledefs.js:798 -#: js/help.js:336 -msgid "About" +#: js/utils/musicutils.js:701 +msgid "Augmented seventh" msgstr "" -#: js/turtledefs.js:768 -msgid "Turtle Blocks is an open source collection of tools for exploring musical concepts." +#: js/utils/musicutils.js:702 +msgid "Minor ninth" msgstr "" -#: js/turtledefs.js:770 -msgid "A full list of contributors can be found in the Turtle Blocks GitHub repository." +#: js/utils/musicutils.js:702 +msgid "Augmented octave" msgstr "" -#: js/turtledefs.js:772 -msgid "Turtle Blocks is licensed under the AGPL." +#: js/utils/musicutils.js:703 +msgid "Major ninth" msgstr "" -#: js/turtledefs.js:780 -msgid "Turtle Blocks GitHub repository" +#: js/utils/musicutils.js:703 +msgid "Diminished tenth" msgstr "" -#: js/turtledefs.js:783 -#: js/turtledefs.js:814 -#: js/help.js:337 -#: js/help.js:359 -msgid "Congratulations." +#: js/utils/musicutils.js:704 +msgid "Minor tenth" msgstr "" -#: js/turtledefs.js:784 -msgid "You have finished the tour. Please enjoy Turtle Blocks!" +#: js/utils/musicutils.js:704 +msgid "Augmented ninth" msgstr "" -#: js/turtledefs.js:791 -msgid "A detailed guide to Music Blocks is available." +#: js/utils/musicutils.js:705 +msgid "Major tenth" msgstr "" -#: js/turtledefs.js:795 -#: js/SaveInterface.js:76 -msgid "Music Blocks Guide" +#: js/utils/musicutils.js:705 +msgid "Diminished eleventh" msgstr "" -#: js/turtledefs.js:799 -msgid "Music Blocks is an open source collection of tools for exploring musical concepts." +#: js/utils/musicutils.js:706 +msgid "Perfect eleventh" msgstr "" -#: js/turtledefs.js:801 -msgid "A full list of contributors can be found in the Music Blocks GitHub repository." +#: js/utils/musicutils.js:706 +msgid "Augmented tenth" msgstr "" -#: js/turtledefs.js:803 -msgid "Music Blocks is licensed under the AGPL." +#: js/utils/musicutils.js:707 +msgid "Diminished twelfth" msgstr "" -#: js/turtledefs.js:811 -msgid "Music Blocks GitHub repository" +#: js/utils/musicutils.js:707 +msgid "Augmented eleventh" msgstr "" -#: js/turtledefs.js:815 -msgid "You have finished the tour. Please enjoy Music Blocks!" +#: js/utils/musicutils.js:708 +msgid "Perfect twelfth" msgstr "" -#: js/activity.js:369 -msgid "Search for blocks" +#: js/utils/musicutils.js:708 +msgid "Diminished thirteenth" msgstr "" -#: js/activity.js:1145 -msgid "Refresh your browser to change to advanced mode." +#: js/utils/musicutils.js:709 +msgid "Minor thirteenth" msgstr "" -#: js/activity.js:1150 -msgid "Refresh your browser to change to beginner mode." +#: js/utils/musicutils.js:709 +msgid "Augmented fifth, plus an octave" msgstr "" -#: js/activity.js:1184 -msgid "Catching mice" +#: js/utils/musicutils.js:710 +msgid "Major thirteenth" msgstr "" -#: js/activity.js:1185 -msgid "Cleaning the instruments" +#: js/utils/musicutils.js:710 +msgid "Diminished seventh, plus an octave" msgstr "" -#: js/activity.js:1186 -msgid "Testing key pieces" +#: js/utils/musicutils.js:838 +#.TRANS: ordinal number. Please keep exactly one space between each number. +msgid "1st 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th" msgstr "" -#: js/activity.js:1187 -msgid "Sight-reading" +#: js/utils/musicutils.js:1008 +#: js/utils/musicutils.js:1191 +#: js/utils/musicutils.js:1325 +#.TRANS: augmented is a music term related to intervals +msgid "augmented" msgstr "" -#: js/activity.js:1188 -msgid "Combining math and music" +#: js/utils/musicutils.js:1010 +#: js/utils/musicutils.js:1192 +#: js/utils/musicutils.js:1324 +#.TRANS: diminished is a music term related to intervals and mode +msgid "diminished" msgstr "" -#: js/activity.js:1189 -msgid "Generating more blocks" +#: js/utils/musicutils.js:1016 +#: js/utils/musicutils.js:1322 +#: js/blocks/IntervalsBlocks.js:649 +#: js/turtleactions/IntervalsActions.js:120 +#: js/turtleactions/IntervalsActions.js:124 +#.TRANS: perfect is a music term related to intervals +msgid "perfect" msgstr "" -#: js/activity.js:1190 -msgid "Do Re Mi Fa Sol La Ti Do" +#: js/utils/musicutils.js:1018 +#.TRANS: twelve semi-tone scale for music +msgid "chromatic" msgstr "" -#: js/activity.js:1191 -msgid "Tuning string instruments" +#: js/utils/musicutils.js:1019 +msgid "algerian" msgstr "" -#: js/activity.js:1192 -msgid "Pressing random keys" +#: js/utils/musicutils.js:1020 +msgid "spanish" msgstr "" -#: js/activity.js:1351 -msgid "plugins will be removed upon restart." +#: js/utils/musicutils.js:1022 +#.TRANS: modal scale in music +msgid "octatonic" msgstr "" -#: js/activity.js:1360 -msgid "show Cartesian" +#: js/utils/musicutils.js:1024 +#.TRANS: harmonic major scale in music +msgid "harmonic major" msgstr "" -#: js/activity.js:1842 -msgid "output tools" +#: js/utils/musicutils.js:1026 +#.TRANS: natural minor scales in music +msgid "natural minor" msgstr "" -#: js/activity.js:1845 -msgid "custom note" +#: js/utils/musicutils.js:1028 +#.TRANS: harmonic minor scale in music +msgid "harmonic minor" msgstr "" -#: js/activity.js:1848 -msgid "accidental name" +#: js/utils/musicutils.js:1030 +#.TRANS: melodic minor scale in music +msgid "melodic minor" msgstr "" -#: js/activity.js:1851 -#: js/PitchBlocks.js:855 -msgid "east indian solfege" +#: js/utils/musicutils.js:1034 +#.TRANS: modal scale for music +msgid "dorian" msgstr "" -#: js/activity.js:1854 -#: js/PitchBlocks.js:869 -msgid "note name" +#: js/utils/musicutils.js:1036 +#.TRANS: modal scale for music +msgid "phrygian" msgstr "" -#: js/activity.js:1857 -#: js/IntervalsBlocks.js:94 -msgid "temperament name" +#: js/utils/musicutils.js:1038 +#.TRANS: modal scale for music +msgid "lydian" msgstr "" -#: js/activity.js:1863 -msgid "chord name" +#: js/utils/musicutils.js:1040 +#.TRANS: modal scale for music +msgid "mixolydian" msgstr "" -#: js/activity.js:1869 -msgid "filter type" +#: js/utils/musicutils.js:1044 +#.TRANS: modal scale for music +msgid "locrian" msgstr "" -#: js/activity.js:1872 -msgid "oscillator type" +#: js/utils/musicutils.js:1046 +#.TRANS: minor jazz scale for music +msgid "jazz minor" msgstr "" -#: js/activity.js:1878 -#: js/DrumBlocks.js:32 -msgid "noise name" +#: js/utils/musicutils.js:1048 +#.TRANS: bebop scale for music +msgid "bebop" msgstr "" -#: js/activity.js:1881 -#: js/DrumBlocks.js:75 -msgid "drum name" +#: js/utils/musicutils.js:1049 +msgid "arabic" msgstr "" -#: js/activity.js:1884 -#: js/DrumBlocks.js:119 -msgid "effects name" +#: js/utils/musicutils.js:1050 +msgid "byzantine" msgstr "" -#: js/activity.js:1887 -msgid "wrap mode" +#: js/utils/musicutils.js:1052 +#.TRANS: musical scale for music by Verdi +msgid "enigmatic" msgstr "" -#: js/activity.js:1890 -msgid "load file" +#: js/utils/musicutils.js:1053 +msgid "ethiopian" msgstr "" -#: js/activity.js:2056 -msgid "This block is deprecated." +#: js/utils/musicutils.js:1055 +#.TRANS: Ethiopic scale for music +msgid "geez" msgstr "" -#: js/activity.js:2058 -msgid "Block cannot be found." +#: js/utils/musicutils.js:1056 +msgid "hindu" msgstr "" -#: js/activity.js:2266 -msgid "Saving block artwork" +#: js/utils/musicutils.js:1057 +msgid "hungarian" msgstr "" -#: js/activity.js:2277 -msgid "Erase" +#: js/utils/musicutils.js:1059 +#.TRANS: minor Romanian scale for music +msgid "romanian minor" msgstr "" -#: js/activity.js:2301 -#: js/activity.js:2323 -msgid "Paste" -msgstr "បិទភ្ជាប់​" +#: js/utils/musicutils.js:1060 +msgid "spanish gypsy" +msgstr "" -#: js/activity.js:2305 -msgid "Save block help" +#: js/utils/musicutils.js:1062 +#.TRANS: musical scale for Mid-Eastern music +msgid "maqam" msgstr "" -#: js/activity.js:2390 -msgid "Jumping to the bottom of the page." +#: js/utils/musicutils.js:1064 +#.TRANS: minor blues scale for music +msgid "minor blues" msgstr "" -#: js/activity.js:2396 -msgid "Scrolling up." +#: js/utils/musicutils.js:1066 +#.TRANS: major blues scale for music +msgid "major blues" msgstr "" -#: js/activity.js:2401 -msgid "Scrolling down." +#: js/utils/musicutils.js:1067 +msgid "whole tone" msgstr "" -#: js/activity.js:2406 -msgid "Extracting block" +#: js/utils/musicutils.js:1069 +#.TRANS: pentatonic is a general term that means "five note scale". This scale is typically known as "minor pentatonic" +msgid "minor pentatonic" msgstr "" -#: js/activity.js:2414 -msgid "Moving block up." +#: js/utils/musicutils.js:1071 +#.TRANS: pentatonic is a general term that means "five note scale". This scale is typically known as "major pentatonic" +msgid "major pentatonic" msgstr "" -#: js/activity.js:2435 -msgid "Moving block down." +#: js/utils/musicutils.js:1072 +msgid "chinese" msgstr "" -#: js/activity.js:2456 -msgid "Moving block left." +#: js/utils/musicutils.js:1073 +msgid "egyptian" msgstr "" -#: js/activity.js:2473 -msgid "Moving block right." +#: js/utils/musicutils.js:1075 +#.TRANS: https://en.wikipedia.org/wiki/Hirajoshi_scale NOTE: There are three different versions of this scale +msgid "hirajoshi" msgstr "" -#: js/activity.js:2488 -msgid "Jump to home position." +#: js/utils/musicutils.js:1076 +msgid "Japan" msgstr "" -#: js/activity.js:2515 -msgid "Hide blocks" +#: js/utils/musicutils.js:1078 +#.TRANS: https://en.wikipedia.org/wiki/In_scale and https://en.wikipedia.org/wiki/Sakura_Sakura +msgid "in" msgstr "" -#: js/activity.js:3389 -msgid "Click the run button to run the project." +#: js/utils/musicutils.js:1080 +#.TRANS: https://en.wikipedia.org/wiki/Miny%C5%8D_scale +msgid "minyo" msgstr "" -#: js/activity.js:3456 -#: js/SaveInterface.js:131 -#: js/SaveInterface.js:204 -#: js/SaveInterface.js:262 -#: js/SaveInterface.js:389 -#: js/SaveInterface.js:417 -#: js/ProjectStorage.js:27 -#: js/GlobalPlanet.js:467 -#: js/GlobalPlanet.js:469 -#: js/GlobalPlanet.js:495 -#.TRANS: default project title when saving as Lilypond -msgid "My Project" +#: js/utils/musicutils.js:1082 +#.TRANS: Italian mathematician +msgid "fibonacci" msgstr "" -#: js/activity.js:4261 -msgid "Show/hide block" +#: js/utils/musicutils.js:1083 +#: js/utils/musicutils.js:1134 +#: js/utils/musicutils.js:1177 +#: js/utils/musicutils.js:1199 +#: js/utils/synthutils.js:134 +#: js/blocks/IntervalsBlocks.js:1124 +#: js/blocks/ToneBlocks.js:946 +#: js/blocks/VolumeBlocks.js:411 +#: js/blocks/WidgetBlocks.js:399 +#: js/blocks/WidgetBlocks.js:404 +#: js/turtleactions/VolumeActions.js:218 +#: js/widgets/modewidget.js:919 +#.TRANS: customize voice +msgid "custom" msgstr "" -#: js/activity.js:4263 -msgid "Expand/collapse blocks" +#: js/utils/musicutils.js:1085 +#: js/utils/musicutils.js:1531 +#: js/blocks/WidgetBlocks.js:176 +#.TRANS: highpass filter +msgid "highpass" msgstr "" -#: js/activity.js:4381 -msgid "Could not parse JSON input." +#: js/utils/musicutils.js:1087 +#: js/utils/musicutils.js:1532 +#.TRANS: lowpass filter +msgid "lowpass" msgstr "" -#: js/activity.js:4684 -#: js/activity.js:4771 -#: js/activity.js:4821 -msgid "Cannot load project from the file. Please check the file type." +#: js/utils/musicutils.js:1089 +#: js/utils/musicutils.js:1533 +#.TRANS: bandpass filter +msgid "bandpass" msgstr "" -#: js/activity.js:5051 -msgid "Invalid parameters" +#: js/utils/musicutils.js:1091 +#: js/utils/musicutils.js:1534 +#.TRANS: high-shelf filter +msgid "highshelf" msgstr "" -#: js/turtle-singer.js:1334 -#.TRANS: partials are weighted components in a harmonic series -msgid "You must have at least one Partial block inside of a Weighted-partial block" +#: js/utils/musicutils.js:1093 +#: js/utils/musicutils.js:1535 +#.TRANS: low-shelf filter +msgid "lowshelf" msgstr "" -#: js/turtle-singer.js:2048 -msgid "synth cannot play chords." +#: js/utils/musicutils.js:1095 +#: js/utils/musicutils.js:1536 +#.TRANS: notch-shelf filter +msgid "notch" msgstr "" -#: js/lilypond.js:614 -msgid "brown rat" +#: js/utils/musicutils.js:1097 +#: js/utils/musicutils.js:1537 +#.TRANS: all-pass filter +msgid "allpass" msgstr "" -#: js/lilypond.js:615 -msgid "mole" +#: js/utils/musicutils.js:1099 +#: js/utils/musicutils.js:1538 +#.TRANS: peaking filter +msgid "peaking" msgstr "" -#: js/lilypond.js:616 -msgid "chipmunk" +#: js/utils/musicutils.js:1100 +#: js/utils/musicutils.js:1546 +#: js/utils/synthutils.js:126 +#: js/blocks/PitchBlocks.js:85 +#.TRANS: sine wave +msgid "sine" msgstr "" -#: js/lilypond.js:617 -msgid "red squirrel" +#: js/utils/musicutils.js:1101 +#: js/utils/musicutils.js:1547 +#: js/utils/synthutils.js:128 +#: js/blocks/PitchBlocks.js:39 +#.TRANS: square wave +msgid "square" msgstr "" -#: js/lilypond.js:618 -msgid "guinea pig" +#: js/utils/musicutils.js:1102 +#: js/utils/musicutils.js:1548 +#: js/utils/synthutils.js:132 +#: js/blocks/PitchBlocks.js:62 +#: js/blocks/ToneBlocks.js:39 +#.TRANS: triangle wave +msgid "triangle" msgstr "" -#: js/lilypond.js:619 -msgid "capybara" +#: js/utils/musicutils.js:1103 +#: js/utils/musicutils.js:1549 +#: js/utils/synthutils.js:130 +#: js/blocks/PitchBlocks.js:108 +#.TRANS: sawtooth wave +msgid "sawtooth" msgstr "" -#: js/lilypond.js:620 -msgid "coypu" +#: js/utils/musicutils.js:1105 +#: js/utils/musicutils.js:1312 +#: js/blocks/PitchBlocks.js:931 +#: js/blocks/PitchBlocks.js:937 +#: js/turtleactions/PitchActions.js:469 +#.TRANS: even numbers +#.TRANS: invert based on even or odd number or musical scale +msgid "even" msgstr "" -#: js/lilypond.js:621 -msgid "black rat" +#: js/utils/musicutils.js:1107 +#: js/utils/musicutils.js:1313 +#: js/blocks/PitchBlocks.js:937 +#: js/turtleactions/PitchActions.js:471 +#.TRANS: odd numbers +msgid "odd" msgstr "" -#: js/lilypond.js:622 -msgid "grey squirrel" +#: js/utils/musicutils.js:1108 +#: js/utils/musicutils.js:1314 +#: js/blocks/PitchBlocks.js:937 +#: js/turtleactions/PitchActions.js:473 +msgid "scalar" msgstr "" -#: js/lilypond.js:623 -msgid "flying squirrel" +#: js/utils/musicutils.js:1109 +#: js/utils/synthutils.js:72 +#: js/blocks/VolumeBlocks.js:47 +#.TRANS: musical instrument +msgid "piano" msgstr "" -#: js/lilypond.js:624 -msgid "bat" +#: js/utils/musicutils.js:1110 +#: js/utils/synthutils.js:74 +#.TRANS: musical instrument +msgid "violin" msgstr "" -#: js/lilypond.js:757 -#: js/lilypond.js:921 -#: js/lilypond.js:959 -#: js/ActionBlocks.js:1256 -#: js/ExtrasBlocks.js:553 -msgid "start drum" +#: js/utils/musicutils.js:1111 +#: js/utils/synthutils.js:76 +#.TRANS: viola musical instrument +msgid "viola" msgstr "" -#: js/SaveInterface.js:59 -#: js/SaveInterface.js:61 -#: js/SaveInterface.js:93 -msgid "Music Blocks Project" +#: js/utils/musicutils.js:1112 +#: js/utils/synthutils.js:114 +#.TRANS: xylophone musical instrument +msgid "xylophone" msgstr "" -#: js/SaveInterface.js:63 -msgid "This project was created in Music Blocks" +#: js/utils/musicutils.js:1113 +#: js/utils/synthutils.js:136 +#.TRANS: vibraphone musical instrument +msgid "vibraphone" msgstr "" -#: js/SaveInterface.js:67 -msgid "Music Blocks is a Free/Libre Software application." +#: js/utils/musicutils.js:1114 +#: js/utils/synthutils.js:78 +#.TRANS: musical instrument +msgid "cello" msgstr "" -#: js/SaveInterface.js:69 -msgid "The source code can be accessed at" +#: js/utils/musicutils.js:1116 +#: js/utils/synthutils.js:82 +#.TRANS: viola musical instrument +msgid "double bass" msgstr "" -#: js/SaveInterface.js:72 -msgid "For more information, please consult the" +#: js/utils/musicutils.js:1117 +#: js/utils/synthutils.js:84 +#: js/widgets/rhythmruler.js:2511 +#.TRANS: musical instrument +msgid "guitar" msgstr "" -#: js/SaveInterface.js:83 -msgid "Alternatively, open the file in Music Blocks using the Load project button." +#: js/utils/musicutils.js:1118 +#: js/utils/synthutils.js:86 +#.TRANS: musical instrument +msgid "acoustic guitar" msgstr "" -#: js/SaveInterface.js:85 -msgid "Project Code" +#: js/utils/musicutils.js:1119 +#: js/utils/synthutils.js:88 +#.TRANS: musical instrument +msgid "flute" msgstr "" -#: js/SaveInterface.js:87 -msgid "This code stores data about the blocks in a project." +#: js/utils/musicutils.js:1120 +#: js/utils/synthutils.js:90 +#.TRANS: musical instrument +msgid "clarinet" msgstr "" -#: js/SaveInterface.js:89 -msgid "Show" +#: js/utils/musicutils.js:1121 +#: js/utils/synthutils.js:92 +#.TRANS: musical instrument +msgid "saxophone" msgstr "" -#: js/SaveInterface.js:91 -msgid "Hide" +#: js/utils/musicutils.js:1122 +#: js/utils/synthutils.js:94 +#.TRANS: musical instrument +msgid "tuba" msgstr "" -#: js/SaveInterface.js:197 -#: js/SaveInterface.js:58 -msgid "No description provided" +#: js/utils/musicutils.js:1123 +#: js/utils/synthutils.js:96 +#.TRANS: musical instrument +msgid "trumpet" msgstr "" -#: js/SaveInterface.js:332 -msgid "Your recording is in progress." +#: js/utils/musicutils.js:1124 +#: js/utils/synthutils.js:98 +#.TRANS: musical instrument +msgid "oboe" msgstr "" -#: js/SaveInterface.js:401 -#.TRANS: File name prompt for save as Lilypond -msgid "File name" +#: js/utils/musicutils.js:1125 +#: js/utils/synthutils.js:100 +#.TRANS: musical instrument +msgid "trombone" msgstr "" -#: js/SaveInterface.js:403 -#: js/StringHelper.js:39 -#.TRANS: Project title prompt for save as Lilypond -msgid "Project title" +#: js/utils/musicutils.js:1126 +#: js/utils/synthutils.js:116 +#.TRANS: polytone synthesizer +msgid "electronic synth" msgstr "" -#: js/SaveInterface.js:405 -#.TRANS: Project title prompt for save as Lilypond -msgid "Project author" +#: js/utils/musicutils.js:1127 +#: js/utils/synthutils.js:118 +#.TRANS: simple monotone synthesizer +msgid "simple 1" msgstr "" -#: js/SaveInterface.js:407 -#.TRANS: MIDI prompt for save as Lilypond -msgid "Include MIDI output?" +#: js/utils/musicutils.js:1128 +msgid "simple 2" msgstr "" -#: js/SaveInterface.js:409 -#.TRANS: Guitar prompt for save as Lilypond -msgid "Include guitar tablature output?" +#: js/utils/musicutils.js:1129 +msgid "simple 3" msgstr "" -#: js/SaveInterface.js:411 -#.TRANS: Lilypond is a scripting language for generating sheet music -msgid "Save as Lilypond" +#: js/utils/musicutils.js:1130 +msgid "simple 4" msgstr "" -#: js/SaveInterface.js:426 -#: js/EnsembleBlocks.js:75 -#: js/EnsembleBlocks.js:154 -#: js/EnsembleBlocks.js:216 -#: js/EnsembleBlocks.js:302 -#: js/EnsembleBlocks.js:348 -#: js/EnsembleBlocks.js:389 -#: js/EnsembleBlocks.js:441 -#: js/EnsembleBlocks.js:490 -#: js/EnsembleBlocks.js:536 -#: js/EnsembleBlocks.js:583 -#: js/EnsembleBlocks.js:637 -#: js/EnsembleBlocks.js:753 -#: js/EnsembleBlocks.js:840 -#: js/EnsembleBlocks.js:899 -#: js/EnsembleBlocks.js:942 -#: js/EnsembleBlocks.js:1212 -#: js/EnsembleBlocks.js:1280 -#.TRANS: default project author when saving as Lilypond -msgid "Mr. Mouse" +#: js/utils/musicutils.js:1131 +#: js/utils/synthutils.js:58 +#: js/blocks/DrumBlocks.js:191 +#.TRANS: white noise synthesizer +msgid "white noise" msgstr "" -#: js/SaveInterface.js:573 -msgid "The Lilypond code is copied to clipboard. You can paste it here: " +#: js/utils/musicutils.js:1132 +#: js/utils/synthutils.js:60 +#.TRANS: brown noise synthesizer +msgid "brown noise" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:50 -#: js/RhythmBlockPaletteBlocks.js:232 -#.TRANS: rhythm block -#.TRANS: translate "rhythm1" as rhythm -msgid "rhythm1" +#: js/utils/musicutils.js:1133 +#: js/utils/synthutils.js:62 +#.TRANS: pink noise synthesizer +msgid "pink noise" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:70 -#: js/RhythmBlockPaletteBlocks.js:251 -#: js/RhythmBlockPaletteBlocks.js:484 -#: js/RhythmBlockPaletteBlocks.js:553 -#: js/RhythmBlockPaletteBlocks.js:874 -msgid "number of notes" +#: js/utils/musicutils.js:1135 +#: js/utils/synthutils.js:148 +#: js/widgets/rhythmruler.js:2057 +#: js/widgets/rhythmruler.js:2319 +#.TRANS: musical instrument +msgid "snare drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:126 -msgid "polyphonic rhythm" +#: js/utils/musicutils.js:1136 +#: js/utils/synthutils.js:150 +#.TRANS: musical instrument +msgid "kick drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:218 -msgid "The Rhythm block is used to generate rhythm patterns." +#: js/utils/musicutils.js:1137 +#: js/utils/synthutils.js:152 +#.TRANS: musical instrument +msgid "tom tom" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:279 -msgid "1/64 note" +#: js/utils/musicutils.js:1138 +#: js/utils/synthutils.js:154 +#.TRANS: musical instrument +msgid "floor tom" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:303 -msgid "1/32 note" +#: js/utils/musicutils.js:1139 +#: js/utils/synthutils.js:156 +#.TRANS: musical instrument +msgid "bass drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:331 -msgid "1/16 note" +#: js/utils/musicutils.js:1140 +#: js/utils/synthutils.js:158 +#.TRANS: a drum made from an inverted cup +msgid "cup drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:359 -msgid "eighth note" +#: js/utils/musicutils.js:1141 +#: js/utils/synthutils.js:160 +#.TRANS: musical instrument +msgid "darbuka drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:387 -msgid "quarter note" +#: js/utils/musicutils.js:1142 +#: js/utils/synthutils.js:164 +#.TRANS: musical instrument +msgid "hi hat" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:415 -msgid "half note" +#: js/utils/musicutils.js:1143 +#: js/utils/synthutils.js:166 +#.TRANS: a small metal bell +msgid "ride bell" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:443 -msgid "whole note" +#: js/utils/musicutils.js:1144 +#: js/utils/synthutils.js:168 +#.TRANS: musical instrument +msgid "cow bell" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:481 -#: js/RhythmBlockPaletteBlocks.js:550 -#: js/RhythmBlockPaletteBlocks.js:601 -#.TRANS: A tuplet is a note value divided into irregular time values. -msgid "tuplet" +#: js/utils/musicutils.js:1145 +msgid "japanese drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:767 -msgid "septuplet" +#: js/utils/musicutils.js:1146 +#: js/utils/synthutils.js:174 +#.TRANS: musical instrument +msgid "japanese bell" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:795 -msgid "quintuplet" +#: js/utils/musicutils.js:1147 +#: js/utils/synthutils.js:170 +#.TRANS: musical instrument +msgid "triangle bell" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:823 -msgid "triplet" +#: js/utils/musicutils.js:1148 +#: js/utils/synthutils.js:172 +#.TRANS: musical instrument +msgid "finger cymbals" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:850 -msgid "simple tuplet" +#: js/utils/musicutils.js:1149 +#: js/utils/synthutils.js:176 +#.TRANS: a musically tuned set of bells +msgid "chime" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:860 -msgid "Tuplets are a collection of notes that get scaled to a specific duration." +#: js/utils/musicutils.js:1150 +#: js/utils/synthutils.js:178 +#.TRANS: a musical instrument +msgid "gong" msgstr "" -#: js/WidgetBlocks.js:71 -#.TRANS: sound envelope (ADSR) -msgid "envelope" +#: js/utils/musicutils.js:1151 +#: js/utils/synthutils.js:180 +#.TRANS: sound effect +msgid "clang" msgstr "" -#: js/WidgetBlocks.js:79 -#.TRANS: Attack time is the time taken for initial run-up of level from nil to peak, beginning when the key is first pressed. -msgid "attack" +#: js/utils/musicutils.js:1152 +#: js/utils/synthutils.js:182 +#.TRANS: sound effect +msgid "crash" msgstr "" -#: js/WidgetBlocks.js:81 -#.TRANS: Decay time is the time taken for the subsequent run down from the attack level to the designated sustain level. -msgid "decay" +#: js/utils/musicutils.js:1153 +#: js/utils/synthutils.js:184 +#.TRANS: sound effect +msgid "bottle" msgstr "" -#: js/WidgetBlocks.js:83 -#.TRANS: Sustain level is the level during the main sequence of the sound's duration, until the key is released. -msgid "sustain" +#: js/utils/musicutils.js:1154 +#: js/utils/synthutils.js:186 +#.TRANS: sound effect +msgid "clap" msgstr "" -#: js/WidgetBlocks.js:85 -#.TRANS: Release time is the time taken for the level to decay from the sustain level to zero after the key is released. -msgid "release" +#: js/utils/musicutils.js:1155 +#: js/utils/synthutils.js:188 +#.TRANS: sound effect +msgid "slap" msgstr "" -#: js/WidgetBlocks.js:96 -msgid "Attack value should be from 0 to 100." +#: js/utils/musicutils.js:1156 +#: js/utils/synthutils.js:190 +#.TRANS: sound effect +msgid "splash" msgstr "" -#: js/WidgetBlocks.js:99 -msgid "Decay value should be from 0 to 100." +#: js/utils/musicutils.js:1157 +#: js/utils/synthutils.js:192 +#.TRANS: sound effect +msgid "bubbles" msgstr "" -#: js/WidgetBlocks.js:102 -msgid "Sustain value should be from 0 to 100." +#: js/utils/musicutils.js:1158 +#: js/utils/synthutils.js:194 +#.TRANS: sound effect +msgid "raindrop" msgstr "" -#: js/WidgetBlocks.js:105 -msgid "Release value should be from 0-100." +#: js/utils/musicutils.js:1159 +#: js/utils/synthutils.js:196 +#.TRANS: animal sound effect +msgid "cat" msgstr "" -#: js/WidgetBlocks.js:121 -msgid "You are adding multiple envelope blocks." +#: js/utils/musicutils.js:1160 +#: js/utils/synthutils.js:198 +#.TRANS: animal sound effect +msgid "cricket" msgstr "" -#: js/WidgetBlocks.js:144 -#.TRANS: a filter removes some unwanted components from a signal -msgid "filter" +#: js/utils/musicutils.js:1161 +#: js/utils/synthutils.js:200 +#.TRANS: animal sound effect +msgid "dog" msgstr "" -#: js/WidgetBlocks.js:149 -#: js/musicutils.js:706 -#: js/musicutils.js:1105 -#.TRANS: highpass filter -msgid "highpass" +#: js/utils/musicutils.js:1163 +#: js/utils/synthutils.js:102 +#.TRANS: musical instrument +msgid "banjo" msgstr "" -#: js/WidgetBlocks.js:152 -#: js/ToneBlocks.js:42 -#: js/timbre.js:1558 -#: js/timbre.js:1808 -#.TRANS: type of filter, e.g., lowpass, highpass, etc. -#.TRANS: there are different types (sine, triangle, square...) of oscillators. -msgid "type" +#: js/utils/musicutils.js:1164 +#: js/utils/synthutils.js:104 +#.TRANS: musical instrument +msgid "koto" msgstr "" -#: js/WidgetBlocks.js:154 -#: js/timbre.js:1818 -#.TRANS: rolloff is the steepness of a change in frequency. -msgid "rolloff" +#: js/utils/musicutils.js:1165 +#: js/utils/synthutils.js:106 +#.TRANS: musical instrument +msgid "dulcimer" msgstr "" -#: js/WidgetBlocks.js:155 -#: js/MediaBlocks.js:692 -#: js/temperament.js:382 -#: js/temperament.js:417 -#: js/temperament.js:477 -#: js/temperament.js:485 -#: js/temperament.js:1348 -#: js/timbre.js:1842 -msgid "frequency" +#: js/utils/musicutils.js:1166 +#: js/utils/synthutils.js:108 +#.TRANS: musical instrument +msgid "electric guitar" msgstr "" -#: js/WidgetBlocks.js:179 -#.TRANS: rolloff is the steepness of a change in frequency. -msgid "Rolloff value should be either -12, -24, -48, or -96 decibels/octave." +#: js/utils/musicutils.js:1167 +#: js/utils/synthutils.js:110 +#.TRANS: musical instrument +msgid "bassoon" msgstr "" -#: js/WidgetBlocks.js:211 -msgid "The Temperament tool is used to define custom tuning." +#: js/utils/musicutils.js:1168 +#: js/utils/synthutils.js:112 +#.TRANS: musical instrument +msgid "celeste" msgstr "" -#: js/WidgetBlocks.js:277 -#: js/sampler.js:329 -msgid "Upload a sample and adjust its pitch center." +#: js/utils/musicutils.js:1170 +#: js/widgets/temperament.js:787 +#.TRANS: musical temperament +msgid "equal" msgstr "" -#: js/WidgetBlocks.js:284 -#.TRANS: the speed at music is should be played. -msgid "sampler" +#: js/utils/musicutils.js:1172 +#.TRANS: musical temperament +msgid "Pythagorean" msgstr "" -#: js/WidgetBlocks.js:329 -#: js/WidgetBlocks.js:334 -#: js/IntervalsBlocks.js:928 -#: js/VolumeBlocks.js:411 -#: js/ToneBlocks.js:946 -#: js/VolumeActions.js:218 -#: js/musicutils.js:704 -#: js/musicutils.js:755 -#: js/musicutils.js:798 -#: js/musicutils.js:820 -#: js/musicutils.js:1136 -#: js/synthutils.js:118 -#: js/modewidget.js:919 -#.TRANS: customize voice -msgid "custom" +#: js/utils/musicutils.js:1174 +#.TRANS: musical temperament +msgid "just intonation" msgstr "" -#: js/WidgetBlocks.js:432 -msgid "The Meter block opens a tool to select strong beats for the meter." +#: js/utils/musicutils.js:1176 +#.TRANS: musical temperament +msgid "meantone" msgstr "" -#: js/WidgetBlocks.js:473 -msgid "The oscilloscope block opens a tool to visualize waveforms." +#: js/utils/musicutils.js:1193 +msgid "major 7th" msgstr "" -#: js/WidgetBlocks.js:478 -msgid "oscilloscope" +#: js/utils/musicutils.js:1194 +msgid "minor 7th" msgstr "" -#: js/WidgetBlocks.js:530 -msgid "The Custom mode block opens a tool to explore musical mode (the spacing of the notes in a scale)." +#: js/utils/musicutils.js:1195 +msgid "dominant 7th" msgstr "" -#: js/WidgetBlocks.js:536 -#.TRANS: musical mode is the pattern of half-steps in an octave, e.g., Major or Minor modes -msgid "custom mode" +#: js/utils/musicutils.js:1196 +msgid "minor-major 7th" msgstr "" -#: js/WidgetBlocks.js:570 -msgid "The Tempo block opens a metronome to visualize the beat." +#: js/utils/musicutils.js:1197 +msgid "fully-diminished 7th" msgstr "" -#: js/WidgetBlocks.js:617 -msgid "The Arpeggio Widget is used to compose chord sequences." +#: js/utils/musicutils.js:1198 +msgid "half-diminished 7th" msgstr "" -#: js/WidgetBlocks.js:623 -#: js/IntervalsBlocks.js:683 -msgid "arpeggio" +#: js/utils/musicutils.js:1557 +#: js/utils/musicutils.js:1569 +msgid "Equal (12EDO)" msgstr "" -#: js/WidgetBlocks.js:677 -msgid "The Pitch drum matrix is used to map pitches to drum sounds." +#: js/utils/musicutils.js:1558 +#: js/utils/musicutils.js:1570 +msgid "5-limit Just Intonation" msgstr "" -#: js/WidgetBlocks.js:682 -#.TRANS: makes a mapping between pitches and drum sounds -msgid "pitch-drum mapper" +#: js/utils/musicutils.js:1559 +#: js/utils/musicutils.js:1571 +msgid "Pythagorean (3-limit JI)" msgstr "" -#: js/WidgetBlocks.js:724 -msgid "You must have at least one pitch block and one drum block in the matrix." +#: js/utils/musicutils.js:1560 +#: js/utils/musicutils.js:1561 +#: js/utils/musicutils.js:1572 +#: js/utils/musicutils.js:1573 +msgid "Meantone" msgstr "" -#: js/WidgetBlocks.js:746 -msgid "The Pitch slider tool to is used to generate pitches at selected frequencies." +#: js/utils/musicutils.js:1574 +msgid "Custom" msgstr "" -#: js/WidgetBlocks.js:751 -#.TRANS: widget to generate pitches using a slider -msgid "pitch slider" +#: js/utils/musicutils.js:5387 +#: js/utils/musicutils.js:5430 +msgid "current" msgstr "" -#: js/WidgetBlocks.js:788 -msgid "chromatic keyboard" +#: js/utils/musicutils.js:5390 +#: js/utils/musicutils.js:5421 +msgid "next" msgstr "" -#: js/WidgetBlocks.js:815 -#: js/WidgetBlocks.js:874 -#.TRANS: widget to generate pitches using a slider -msgid "music keyboard" +#: js/utils/musicutils.js:5393 +#: js/utils/musicutils.js:5426 +msgid "previous" msgstr "" -#: js/WidgetBlocks.js:859 -#: js/WidgetBlocks.js:866 -msgid "The Music keyboard block opens a piano keyboard that can be used to create notes." +#: js/utils/synthutils.js:120 +#.TRANS: simple monotone synthesizer +msgid "simple-2" msgstr "" -#: js/WidgetBlocks.js:910 -msgid "The Pitch staircase tool to is used to generate pitches from a given ratio." +#: js/utils/synthutils.js:122 +#.TRANS: simple monotone synthesizer +msgid "simple-3" msgstr "" -#: js/WidgetBlocks.js:917 -#.TRANS: generate a progressive sequence of pitches -msgid "pitch staircase" +#: js/utils/synthutils.js:124 +#.TRANS: simple monotone synthesizer +msgid "simple-4" msgstr "" -#: js/WidgetBlocks.js:982 -msgid "The Rhythm Maker block opens a tool to create drum machines." +#: js/utils/synthutils.js:162 +#.TRANS: musical instrument +msgid "taiko" msgstr "" -#: js/WidgetBlocks.js:1036 -msgid "G major scale" +#: js/blocks/ActionBlocks.js:58 +msgid "The Return block will return a value from an action." msgstr "" -#: js/WidgetBlocks.js:1064 -msgid "C major scale" +#: js/blocks/ActionBlocks.js:75 +msgid "return" msgstr "" -#: js/WidgetBlocks.js:1097 -msgid "The Phrase Maker block opens a tool to create musical phrases." +#: js/blocks/ActionBlocks.js:128 +msgid "The Return to URL block will return a value to a webpage." msgstr "" -#: js/WidgetBlocks.js:1104 -#.TRANS: assigns pitch to a sequence of beats to generate a melody -msgid "phrase maker" +#: js/blocks/ActionBlocks.js:145 +msgid "return to URL" msgstr "" -#: js/WidgetBlocks.js:1168 -msgid "You must have at least one pitch block and one rhythm block in the matrix." +#: js/blocks/ActionBlocks.js:233 +#: js/blocks/ActionBlocks.js:290 +#: js/blocks/ActionBlocks.js:501 +#: js/blocks/ActionBlocks.js:688 +msgid "The Calculate block returns a value calculated by an action." msgstr "" -#: js/WidgetBlocks.js:1220 -msgid "The Status block opens a tool for inspecting the status of Music Blocks as it is running." +#: js/blocks/ActionBlocks.js:251 +#: js/blocks/ActionBlocks.js:517 +#: js/blocks/ActionBlocks.js:707 +msgid "calculate" msgstr "" -#: js/IntervalsBlocks.js:45 -msgid "set temperament" +#: js/blocks/ActionBlocks.js:376 +#: js/blocks/ActionBlocks.js:593 +#: js/blocks/ActionBlocks.js:942 +#: js/blocks/ActionBlocks.js:1389 +#.TRANS: do is the do something or take an action. +msgid "The Do block is used to initiate an action." msgstr "" -#: js/IntervalsBlocks.js:63 -#: js/MediaBlocks.js:746 -#: js/PitchBlocks.js:657 -#: js/PitchBlocks.js:933 -#: js/PitchBlocks.js:972 -#: js/PitchBlocks.js:1005 -#: js/PitchBlocks.js:1166 -#: js/PitchBlocks.js:1679 -#: js/PitchBlocks.js:1720 -#: js/PitchBlocks.js:1827 -#: js/ToneBlocks.js:1025 -#.TRANS: adjusts the shift up or down by one octave (twelve half-steps in the interval between two notes, one having twice or half the frequency in Hz of the other.) -msgid "octave" +#: js/blocks/ActionBlocks.js:390 +#: js/blocks/ActionBlocks.js:610 +#: js/blocks/ActionBlocks.js:959 +#: js/blocks/ActionBlocks.js:1048 +#: js/blocks/MeterBlocks.js:769 +msgid "do1" msgstr "" -#: js/IntervalsBlocks.js:99 -msgid "The Temperament name block is used to select a tuning method." +#: js/blocks/ActionBlocks.js:390 +#: js/blocks/ActionBlocks.js:610 +#: js/blocks/ActionBlocks.js:959 +#: js/blocks/ActionBlocks.js:1048 +#: js/blocks/FlowBlocks.js:742 +#: js/blocks/FlowBlocks.js:822 +#: js/blocks/MeterBlocks.js:769 +msgid "do" msgstr "" -#: js/IntervalsBlocks.js:161 -msgid "doubly" +#: js/blocks/ActionBlocks.js:791 +#: js/blocks/ActionBlocks.js:865 +msgid "The Arg block contains the value of an argument passed to an action." msgstr "" -#: js/IntervalsBlocks.js:166 -msgid "The Doubly block will double the size of an interval." +#: js/blocks/ActionBlocks.js:806 +#: js/blocks/ActionBlocks.js:878 +msgid "arg" msgstr "" -#: js/IntervalsBlocks.js:262 -msgid "interval number" +#: js/blocks/ActionBlocks.js:836 +#: js/blocks/ActionBlocks.js:900 +#: js/blocks/ActionBlocks.js:908 +msgid "Invalid argument" msgstr "" -#: js/IntervalsBlocks.js:330 -#.TRANS: measure the distance between two pitches in semi-tones -msgid "semi-tone interval measure" +#: js/blocks/ActionBlocks.js:944 +msgid "In the example, it is used with the One of block to choose a random phase." msgstr "" -#: js/IntervalsBlocks.js:397 -#: js/IntervalsBlocks.js:513 -msgid "You must use two pitch blocks when measuring an interval." +#: js/blocks/ActionBlocks.js:1019 +#: js/blocks/ActionBlocks.js:1026 +msgid "The Listen block is used to listen for an event such as a mouse click." msgstr "" -#: js/IntervalsBlocks.js:439 -msgid "The Scalar interval block measures the distance between two notes in the current key and mode." +#: js/blocks/ActionBlocks.js:1028 +msgid "When the event happens, an action is taken." msgstr "" -#: js/IntervalsBlocks.js:445 -#.TRANS: measure the distance between two pitches in steps of musical scale -msgid "scalar interval measure" +#: js/blocks/ActionBlocks.js:1045 +msgid "on" msgstr "" -#: js/IntervalsBlocks.js:592 -#: js/musicutils.js:637 -#: js/musicutils.js:908 -#.TRANS: perfect is a music term related to intervals -msgid "perfect" +#: js/blocks/ActionBlocks.js:1048 +#: js/blocks/ActionBlocks.js:1049 +#: js/blocks/ActionBlocks.js:1153 +msgid "event" msgstr "" -#: js/IntervalsBlocks.js:621 -msgid "In the figure, we add sol# to sol." +#: js/blocks/ActionBlocks.js:1133 +msgid "The Broadcast block is used to trigger an event." msgstr "" -#: js/IntervalsBlocks.js:627 -#: js/OrnamentBlocks.js:220 -#.TRANS: calculate a relative step between notes based on semi-tones -msgid "semi-tone interval" +#: js/blocks/ActionBlocks.js:1151 +msgid "broadcast" msgstr "" -#: js/IntervalsBlocks.js:676 -msgid "The output of the example is: do, mi, sol, sol, ti, mi" +#: js/blocks/ActionBlocks.js:1208 +msgid "Each Start block is a separate voice." msgstr "" -#: js/IntervalsBlocks.js:735 -msgid "The Chord block calculates common chords." +#: js/blocks/ActionBlocks.js:1304 +msgid "It is often used for storing a phrase of music that is repeated." msgstr "" -#: js/IntervalsBlocks.js:737 -msgid "In the figure, we generate a C-major chord." +#: js/blocks/ActionBlocks.js:1495 +msgid "define temperament" msgstr "" -#: js/IntervalsBlocks.js:742 -msgid "chord" +#: js/blocks/BooleanBlocks.js:44 +msgid "The Not block is the logical not operator." msgstr "" -#: js/IntervalsBlocks.js:794 -msgid "The Ratio Interval block calculates an interval based on a ratio." +#: js/blocks/BooleanBlocks.js:62 +msgid "not" +msgstr "មិន" + +#: js/blocks/BooleanBlocks.js:134 +msgid "The And block is the logical and operator." msgstr "" -#: js/IntervalsBlocks.js:799 -msgid "ratio interval" +#: js/blocks/BooleanBlocks.js:152 +msgid "and" msgstr "" -#: js/IntervalsBlocks.js:868 -msgid "In the figure, we add la to sol." +#: js/blocks/BooleanBlocks.js:218 +msgid "The Or block is the logical or operator." msgstr "" -#: js/IntervalsBlocks.js:924 -#.TRANS: define a custom mode -msgid "define mode" +#: js/blocks/BooleanBlocks.js:236 +msgid "or" +msgstr "ឬ" + +#: js/blocks/BooleanBlocks.js:302 +msgid "The XOR block is the logical XOR operator." msgstr "" -#: js/IntervalsBlocks.js:977 -msgid "movable Do" +#: js/blocks/BooleanBlocks.js:320 +msgid "xor" msgstr "" -#: js/IntervalsBlocks.js:1028 -#.TRANS: mode length is the number of notes in the mode, e.g., 7 for major and minor scales; 12 for chromatic scales -msgid "mode length" +#: js/blocks/BooleanBlocks.js:808 +msgid "The Equal block returns True if the two numbers are equal." msgstr "" -#: js/IntervalsBlocks.js:1037 -msgid "The Mode length block is the number of notes in the current scale." +#: js/blocks/BooleanBlocks.js:909 +msgid "The Not-equal-to block returns True if the two numbers are not equal to each other." msgstr "" -#: js/IntervalsBlocks.js:1039 -msgid "Most Western scales have 7 notes." +#: js/blocks/BooleanBlocks.js:1008 +msgid "The Boolean block is used to specify true or false." msgstr "" -#: js/IntervalsBlocks.js:1088 -#.TRANS: the mode in music is 'major', 'minor', etc. -msgid "current mode" +#: js/blocks/BoxesBlocks.js:53 +#: js/blocks/BoxesBlocks.js:59 +msgid "The Add-to block is used to add to the value stored in a box." msgstr "" -#: js/IntervalsBlocks.js:1141 -#.TRANS: the key is a group of pitches with which a music composition is created -msgid "current key" +#: js/blocks/BoxesBlocks.js:61 +msgid "It can also be used with other blocks such as Color and Pen size." msgstr "" -#: js/IntervalsBlocks.js:1193 -#: js/IntervalsBlocks.js:1238 -#.TRANS: set the key and mode, e.g. C Major -msgid "set key" +#: js/blocks/BoxesBlocks.js:73 +msgid "add" msgstr "" -#: js/IntervalsBlocks.js:1247 -#: js/IntervalsBlocks.js:1253 -msgid "The Set key block is used to set the key and mode," +#: js/blocks/BoxesBlocks.js:75 +#: js/widgets/temperament.js:857 +msgid "to" msgstr "" -#: js/IntervalsBlocks.js:1253 -msgid "eg C Major" +#: js/blocks/BoxesBlocks.js:75 +#: js/blocks/BoxesBlocks.js:595 +#: js/blocks/HeapBlocks.js:544 +msgid "value1" msgstr "" -#: js/IntervalsBlocks.js:1266 -#: js/DictBlocks.js:215 -#: js/DictBlocks.js:216 -#: js/DictBlocks.js:289 -#: js/DictBlocks.js:290 -#: js/DictBlocks.js:357 -#: js/DictBlocks.js:430 -#: js/DictBlocks.js:431 -#.TRANS: key, e.g., C in C Major -msgid "key" +#: js/blocks/BoxesBlocks.js:118 +msgid "Block does not support incrementing." msgstr "" -#: js/ActionBlocks.js:58 -msgid "The Return block will return a value from an action." +#: js/blocks/BoxesBlocks.js:152 +msgid "The Add-1-to block adds one to the value stored in a box." msgstr "" -#: js/ActionBlocks.js:75 -msgid "return" +#: js/blocks/BoxesBlocks.js:163 +msgid "add 1 to" msgstr "" -#: js/ActionBlocks.js:128 -msgid "The Return to URL block will return a value to a webpage." +#: js/blocks/BoxesBlocks.js:211 +msgid "The Subtract-1-from block subtracts one from the value stored in a box." msgstr "" -#: js/ActionBlocks.js:145 -msgid "return to URL" +#: js/blocks/BoxesBlocks.js:222 +msgid "subtract 1 from" msgstr "" -#: js/ActionBlocks.js:233 -#: js/ActionBlocks.js:290 -#: js/ActionBlocks.js:501 -#: js/ActionBlocks.js:688 -msgid "The Calculate block returns a value calculated by an action." +#: js/blocks/BoxesBlocks.js:270 +#: js/blocks/BoxesBlocks.js:387 +msgid "The Box block returns the value stored in a box." msgstr "" -#: js/ActionBlocks.js:251 -#: js/ActionBlocks.js:517 -#: js/ActionBlocks.js:707 -msgid "calculate" +#: js/blocks/BoxesBlocks.js:500 +#: js/blocks/BoxesBlocks.js:576 +msgid "The Store in block will store a value in a box." msgstr "" -#: js/ActionBlocks.js:376 -#: js/ActionBlocks.js:593 -#: js/ActionBlocks.js:942 -#: js/ActionBlocks.js:1389 -#.TRANS: do is the do something or take an action. -msgid "The Do block is used to initiate an action." +#: js/blocks/BoxesBlocks.js:595 +#: js/blocks/EnsembleBlocks.js:391 +#: js/blocks/EnsembleBlocks.js:402 +msgid "name1" msgstr "" -#: js/ActionBlocks.js:390 -#: js/ActionBlocks.js:610 -#: js/ActionBlocks.js:959 -#: js/ActionBlocks.js:1048 -#: js/MeterBlocks.js:769 -msgid "do1" +#: js/blocks/BoxesBlocks.js:652 +msgid "The Box2 block returns the value stored in Box2." msgstr "" -#: js/ActionBlocks.js:390 -#: js/ActionBlocks.js:610 -#: js/ActionBlocks.js:959 -#: js/ActionBlocks.js:1048 -#: js/FlowBlocks.js:742 -#: js/FlowBlocks.js:822 -#: js/MeterBlocks.js:769 -msgid "do" +#: js/blocks/BoxesBlocks.js:703 +msgid "The Store in Box2 block is used to store a value in Box2." msgstr "" -#: js/ActionBlocks.js:791 -#: js/ActionBlocks.js:865 -msgid "The Arg block contains the value of an argument passed to an action." +#: js/blocks/BoxesBlocks.js:715 +msgid "store in box2" msgstr "" -#: js/ActionBlocks.js:806 -#: js/ActionBlocks.js:878 -msgid "arg" +#: js/blocks/BoxesBlocks.js:761 +msgid "The Box1 block returns the value stored in Box1." msgstr "" -#: js/ActionBlocks.js:836 -#: js/ActionBlocks.js:900 -#: js/ActionBlocks.js:908 -msgid "Invalid argument" +#: js/blocks/BoxesBlocks.js:812 +msgid "The Store in Box1 block is used to store a value in Box1." msgstr "" -#: js/ActionBlocks.js:944 -msgid "In the example, it is used with the One of block to choose a random phase." +#: js/blocks/BoxesBlocks.js:826 +msgid "store in box1" msgstr "" -#: js/ActionBlocks.js:1019 -#: js/ActionBlocks.js:1026 -msgid "The Listen block is used to listen for an event such as a mouse click." +#: js/blocks/DictBlocks.js:77 +msgid "show dictionary" msgstr "" -#: js/ActionBlocks.js:1028 -msgid "When the event happens, an action is taken." +#: js/blocks/DictBlocks.js:80 +#: js/blocks/DictBlocks.js:145 +#: js/blocks/DictBlocks.js:216 +#: js/blocks/DictBlocks.js:290 +#: js/blocks/ProgramBlocks.js:396 +#: js/blocks/ProgramBlocks.js:501 +#: js/blocks/ProgramBlocks.js:664 +msgid "My Dictionary" msgstr "" -#: js/ActionBlocks.js:1045 -msgid "on" +#: js/blocks/DictBlocks.js:129 +msgid "The Dictionary block returns a dictionary." msgstr "" -#: js/ActionBlocks.js:1048 -#: js/ActionBlocks.js:1049 -#: js/ActionBlocks.js:1153 -msgid "event" +#: js/blocks/DictBlocks.js:197 +#: js/blocks/DictBlocks.js:339 +msgid "The Get-dict block returns a value in the dictionary for a specified key." msgstr "" -#: js/ActionBlocks.js:1133 -msgid "The Broadcast block is used to trigger an event." +#: js/blocks/DictBlocks.js:212 +#: js/blocks/DictBlocks.js:354 +#.TRANS: retrieve a value from the dictionary with a given key +msgid "get value" msgstr "" -#: js/ActionBlocks.js:1151 -msgid "broadcast" +#: js/blocks/DictBlocks.js:215 +#: js/blocks/DictBlocks.js:216 +#: js/blocks/DictBlocks.js:289 +#: js/blocks/DictBlocks.js:290 +#: js/blocks/DictBlocks.js:357 +#: js/blocks/DictBlocks.js:430 +#: js/blocks/DictBlocks.js:431 +msgid "key2" msgstr "" -#: js/ActionBlocks.js:1208 -msgid "Each Start block is a separate voice." +#: js/blocks/DictBlocks.js:215 +#: js/blocks/DictBlocks.js:216 +#: js/blocks/DictBlocks.js:289 +#: js/blocks/DictBlocks.js:290 +#: js/blocks/DictBlocks.js:357 +#: js/blocks/DictBlocks.js:430 +#: js/blocks/DictBlocks.js:431 +#: js/blocks/IntervalsBlocks.js:1462 +#.TRANS: key, e.g., C in C Major +msgid "key" msgstr "" -#: js/ActionBlocks.js:1304 -msgid "It is often used for storing a phrase of music that is repeated." +#: js/blocks/DictBlocks.js:271 +#: js/blocks/DictBlocks.js:411 +msgid "The Set-dict block sets a value in the dictionary for a specified key." msgstr "" -#: js/ActionBlocks.js:1495 -msgid "define temperament" +#: js/blocks/DictBlocks.js:286 +#: js/blocks/DictBlocks.js:427 +#.TRANS: set a value in the dictionary for a given key +msgid "set value" msgstr "" -#: js/EnsembleBlocks.js:66 +#: js/blocks/EnsembleBlocks.js:66 msgid "mouse index heap" msgstr "" -#: js/EnsembleBlocks.js:68 +#: js/blocks/EnsembleBlocks.js:68 msgid "The Mouse index heap block returns a value in the heap at a specified location for a specified mouse." msgstr "" -#: js/EnsembleBlocks.js:77 -#: js/EnsembleBlocks.js:1080 +#: js/blocks/EnsembleBlocks.js:77 +#: js/blocks/EnsembleBlocks.js:1080 msgid "mouse name" msgstr "" -#: js/EnsembleBlocks.js:77 -#: js/EnsembleBlocks.js:92 -#: js/HeapBlocks.js:544 +#: js/blocks/EnsembleBlocks.js:77 +#: js/blocks/EnsembleBlocks.js:92 +#: js/blocks/HeapBlocks.js:544 #.TRANS: value1 is a numeric value (JAPANESE ONLY) msgid "index" msgstr "" -#: js/EnsembleBlocks.js:80 +#: js/blocks/EnsembleBlocks.js:80 msgid "turtle index heap" msgstr "" -#: js/EnsembleBlocks.js:82 +#: js/blocks/EnsembleBlocks.js:82 msgid "The Turtle index heap block returns a value in the heap at a specified location for a specified turtle." msgstr "" -#: js/EnsembleBlocks.js:90 -#: js/EnsembleBlocks.js:167 -#: js/EnsembleBlocks.js:230 -#: js/EnsembleBlocks.js:316 -#: js/EnsembleBlocks.js:362 -#: js/EnsembleBlocks.js:400 -#: js/EnsembleBlocks.js:454 -#: js/EnsembleBlocks.js:504 -#: js/EnsembleBlocks.js:550 -#: js/EnsembleBlocks.js:597 -#: js/EnsembleBlocks.js:651 -#: js/EnsembleBlocks.js:763 -#: js/EnsembleBlocks.js:854 -#: js/EnsembleBlocks.js:915 -#: js/EnsembleBlocks.js:955 -#: js/EnsembleBlocks.js:1219 -#: js/EnsembleBlocks.js:1293 +#: js/blocks/EnsembleBlocks.js:90 +#: js/blocks/EnsembleBlocks.js:167 +#: js/blocks/EnsembleBlocks.js:230 +#: js/blocks/EnsembleBlocks.js:316 +#: js/blocks/EnsembleBlocks.js:362 +#: js/blocks/EnsembleBlocks.js:400 +#: js/blocks/EnsembleBlocks.js:454 +#: js/blocks/EnsembleBlocks.js:504 +#: js/blocks/EnsembleBlocks.js:550 +#: js/blocks/EnsembleBlocks.js:597 +#: js/blocks/EnsembleBlocks.js:651 +#: js/blocks/EnsembleBlocks.js:763 +#: js/blocks/EnsembleBlocks.js:854 +#: js/blocks/EnsembleBlocks.js:915 +#: js/blocks/EnsembleBlocks.js:955 +#: js/blocks/EnsembleBlocks.js:1219 +#: js/blocks/EnsembleBlocks.js:1293 #.TRANS: Yertle is the name of a turtle. msgid "Yertle" msgstr "" -#: js/EnsembleBlocks.js:92 -#: js/EnsembleBlocks.js:1089 +#: js/blocks/EnsembleBlocks.js:92 +#: js/blocks/EnsembleBlocks.js:1089 msgid "turtle name" msgstr "" -#: js/EnsembleBlocks.js:122 -#: js/EnsembleBlocks.js:1197 -#: js/HeapBlocks.js:474 -#: js/HeapBlocks.js:572 +#: js/blocks/EnsembleBlocks.js:122 +#: js/blocks/EnsembleBlocks.js:1197 +#: js/blocks/HeapBlocks.js:474 +#: js/blocks/HeapBlocks.js:572 msgid "Index must be > 0." msgstr "" -#: js/EnsembleBlocks.js:127 -#: js/HeapBlocks.js:479 -#: js/HeapBlocks.js:577 +#: js/blocks/EnsembleBlocks.js:127 +#: js/blocks/HeapBlocks.js:479 +#: js/blocks/HeapBlocks.js:577 msgid "Maximum heap size is 1000." msgstr "" -#: js/EnsembleBlocks.js:145 +#: js/blocks/EnsembleBlocks.js:145 msgid "stop mouse" msgstr "" -#: js/EnsembleBlocks.js:147 +#: js/blocks/EnsembleBlocks.js:147 msgid "The Stop mouse block stops the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:158 +#: js/blocks/EnsembleBlocks.js:158 msgid "stop turtle" msgstr "" -#: js/EnsembleBlocks.js:160 +#: js/blocks/EnsembleBlocks.js:160 msgid "The Stop turtle block stops the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:184 -#: js/EnsembleBlocks.js:247 -#: js/EnsembleBlocks.js:413 -#: js/EnsembleBlocks.js:468 -#: js/EnsembleBlocks.js:706 -#: js/EnsembleBlocks.js:808 -#: js/EnsembleBlocks.js:870 -#: js/EnsembleBlocks.js:1190 -#: js/EnsembleBlocks.js:1253 +#: js/blocks/EnsembleBlocks.js:184 +#: js/blocks/EnsembleBlocks.js:247 +#: js/blocks/EnsembleBlocks.js:413 +#: js/blocks/EnsembleBlocks.js:468 +#: js/blocks/EnsembleBlocks.js:706 +#: js/blocks/EnsembleBlocks.js:808 +#: js/blocks/EnsembleBlocks.js:870 +#: js/blocks/EnsembleBlocks.js:1190 +#: js/blocks/EnsembleBlocks.js:1253 msgid "Cannot find mouse" msgstr "" -#: js/EnsembleBlocks.js:186 -#: js/EnsembleBlocks.js:249 -#: js/EnsembleBlocks.js:415 -#: js/EnsembleBlocks.js:470 -#: js/EnsembleBlocks.js:708 -#: js/EnsembleBlocks.js:810 -#: js/EnsembleBlocks.js:872 -#: js/EnsembleBlocks.js:1192 -#: js/EnsembleBlocks.js:1255 +#: js/blocks/EnsembleBlocks.js:186 +#: js/blocks/EnsembleBlocks.js:249 +#: js/blocks/EnsembleBlocks.js:415 +#: js/blocks/EnsembleBlocks.js:470 +#: js/blocks/EnsembleBlocks.js:708 +#: js/blocks/EnsembleBlocks.js:810 +#: js/blocks/EnsembleBlocks.js:872 +#: js/blocks/EnsembleBlocks.js:1192 +#: js/blocks/EnsembleBlocks.js:1255 msgid "Cannot find turtle" msgstr "" -#: js/EnsembleBlocks.js:206 +#: js/blocks/EnsembleBlocks.js:206 msgid "start mouse" msgstr "" -#: js/EnsembleBlocks.js:209 +#: js/blocks/EnsembleBlocks.js:209 msgid "The Start mouse block starts the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:220 +#: js/blocks/EnsembleBlocks.js:220 msgid "start turtle" msgstr "" -#: js/EnsembleBlocks.js:223 +#: js/blocks/EnsembleBlocks.js:223 msgid "The Start turtle block starts the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:256 +#: js/blocks/EnsembleBlocks.js:256 msgid "Mouse is already running." msgstr "" -#: js/EnsembleBlocks.js:258 +#: js/blocks/EnsembleBlocks.js:258 msgid "Turtle is already running." msgstr "" -#: js/EnsembleBlocks.js:282 +#: js/blocks/EnsembleBlocks.js:282 msgid "Cannot find start block" msgstr "" -#: js/EnsembleBlocks.js:292 +#: js/blocks/EnsembleBlocks.js:292 #.TRANS: pen color for this mouse msgid "mouse color" msgstr "" -#: js/EnsembleBlocks.js:294 +#: js/blocks/EnsembleBlocks.js:294 msgid "The Mouse color block returns the pen color of the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:306 +#: js/blocks/EnsembleBlocks.js:306 #.TRANS: pen color for this turtle msgid "turtle color" msgstr "" -#: js/EnsembleBlocks.js:308 +#: js/blocks/EnsembleBlocks.js:308 msgid "The Turtle color block returns the pen color of the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:338 +#: js/blocks/EnsembleBlocks.js:338 #.TRANS: heading (compass direction) for this mouse msgid "mouse heading" msgstr "" -#: js/EnsembleBlocks.js:340 +#: js/blocks/EnsembleBlocks.js:340 msgid "The Mouse heading block returns the heading of the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:352 +#: js/blocks/EnsembleBlocks.js:352 #.TRANS: heading (compass direction) for this turtle msgid "turtle heading" msgstr "" -#: js/EnsembleBlocks.js:354 +#: js/blocks/EnsembleBlocks.js:354 msgid "The Turtle heading block returns the heading of the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:384 -#: js/EnsembleBlocks.js:439 +#: js/blocks/EnsembleBlocks.js:384 +#: js/blocks/EnsembleBlocks.js:439 #.TRANS: set xy position for this mouse msgid "set mouse" msgstr "" -#: js/EnsembleBlocks.js:391 -#: js/EnsembleBlocks.js:402 -#: js/BoxesBlocks.js:595 -msgid "name1" -msgstr "" - -#: js/EnsembleBlocks.js:391 -#: js/EnsembleBlocks.js:402 -#: js/ProgramBlocks.js:881 -#: js/GraphicsBlocks.js:235 -#: js/GraphicsBlocks.js:313 -#: js/GraphicsBlocks.js:436 -#: js/GraphicsBlocks.js:487 -#: js/GraphicsBlocks.js:534 -#: js/GraphicsBlocks.js:750 +#: js/blocks/EnsembleBlocks.js:391 +#: js/blocks/EnsembleBlocks.js:402 +#: js/blocks/GraphicsBlocks.js:235 +#: js/blocks/GraphicsBlocks.js:313 +#: js/blocks/GraphicsBlocks.js:436 +#: js/blocks/GraphicsBlocks.js:487 +#: js/blocks/GraphicsBlocks.js:534 +#: js/blocks/GraphicsBlocks.js:750 +#: js/blocks/ProgramBlocks.js:881 msgid "x" msgstr "x" -#: js/EnsembleBlocks.js:391 -#: js/EnsembleBlocks.js:402 -#: js/ProgramBlocks.js:881 -#: js/GraphicsBlocks.js:149 -#: js/GraphicsBlocks.js:313 -#: js/GraphicsBlocks.js:436 -#: js/GraphicsBlocks.js:487 -#: js/GraphicsBlocks.js:534 -#: js/GraphicsBlocks.js:750 +#: js/blocks/EnsembleBlocks.js:391 +#: js/blocks/EnsembleBlocks.js:402 +#: js/blocks/GraphicsBlocks.js:149 +#: js/blocks/GraphicsBlocks.js:313 +#: js/blocks/GraphicsBlocks.js:436 +#: js/blocks/GraphicsBlocks.js:487 +#: js/blocks/GraphicsBlocks.js:534 +#: js/blocks/GraphicsBlocks.js:750 +#: js/blocks/ProgramBlocks.js:881 msgid "y" msgstr "y" -#: js/EnsembleBlocks.js:395 -#: js/EnsembleBlocks.js:452 +#: js/blocks/EnsembleBlocks.js:395 +#: js/blocks/EnsembleBlocks.js:452 #.TRANS: set xy position for this turtle msgid "set turtle" msgstr "" -#: js/EnsembleBlocks.js:433 +#: js/blocks/EnsembleBlocks.js:433 msgid "The Set mouse block sends a stack of blocks to be run by the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:446 +#: js/blocks/EnsembleBlocks.js:446 msgid "The Set turtle block sends a stack of blocks to be run by the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:480 +#: js/blocks/EnsembleBlocks.js:480 #.TRANS: y position for this mouse msgid "mouse y" msgstr "" -#: js/EnsembleBlocks.js:482 +#: js/blocks/EnsembleBlocks.js:482 msgid "The Y mouse block returns the Y position of the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:494 +#: js/blocks/EnsembleBlocks.js:494 #.TRANS: y position for this turtle msgid "turtle y" msgstr "" -#: js/EnsembleBlocks.js:496 +#: js/blocks/EnsembleBlocks.js:496 msgid "The Y turtle block returns the Y position of the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:526 +#: js/blocks/EnsembleBlocks.js:526 #.TRANS: x position for this mouse msgid "mouse x" msgstr "" -#: js/EnsembleBlocks.js:528 +#: js/blocks/EnsembleBlocks.js:528 msgid "The X mouse block returns the X position of the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:540 +#: js/blocks/EnsembleBlocks.js:540 #.TRANS: x position for this turtle msgid "turtle x" msgstr "" -#: js/EnsembleBlocks.js:542 +#: js/blocks/EnsembleBlocks.js:542 msgid "The X turtle block returns the X position of the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:573 +#: js/blocks/EnsembleBlocks.js:573 #.TRANS: notes played by this mouse msgid "mouse notes played" msgstr "" -#: js/EnsembleBlocks.js:575 +#: js/blocks/EnsembleBlocks.js:575 msgid "The Mouse elapse notes block returns the number of notes played by the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:587 +#: js/blocks/EnsembleBlocks.js:587 #.TRANS: notes played by this turtle msgid "turtle notes played" msgstr "" -#: js/EnsembleBlocks.js:589 +#: js/blocks/EnsembleBlocks.js:589 msgid "The Turtle elapse notes block returns the number of notes played by the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:627 +#: js/blocks/EnsembleBlocks.js:627 #.TRANS: convert current note for this turtle to piano key (1-88) msgid "mouse pitch number" msgstr "" -#: js/EnsembleBlocks.js:629 +#: js/blocks/EnsembleBlocks.js:629 msgid "The Mouse pitch block returns the current pitch number being played by the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:641 +#: js/blocks/EnsembleBlocks.js:641 #.TRANS: convert current note for this turtle to piano key (1-88) msgid "turtle pitch number" msgstr "" -#: js/EnsembleBlocks.js:643 -msgid "The Turrle pitch block returns the current pitch number being played by the specified turtle." +#: js/blocks/EnsembleBlocks.js:643 +msgid "The Turtle pitch block returns the current pitch number being played by the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:747 -#: js/EnsembleBlocks.js:819 +#: js/blocks/EnsembleBlocks.js:747 +#: js/blocks/EnsembleBlocks.js:819 #.TRANS: note value is the duration of the note played by this mouse msgid "mouse note value" msgstr "" -#: js/EnsembleBlocks.js:757 +#: js/blocks/EnsembleBlocks.js:757 #.TRANS: note value is the duration of the note played by this turtle msgid "turtle note value" msgstr "" -#: js/EnsembleBlocks.js:830 +#: js/blocks/EnsembleBlocks.js:830 #.TRANS: sync is short for synchronization msgid "mouse sync" msgstr "" -#: js/EnsembleBlocks.js:832 +#: js/blocks/EnsembleBlocks.js:832 msgid "The Mouse sync block aligns the beat count between mice." msgstr "" -#: js/EnsembleBlocks.js:844 +#: js/blocks/EnsembleBlocks.js:844 #.TRANS: sync is short for synchronization msgid "turtle sync" msgstr "" -#: js/EnsembleBlocks.js:846 +#: js/blocks/EnsembleBlocks.js:846 msgid "The Turtle sync block aligns the beat count between turtles." msgstr "" -#: js/EnsembleBlocks.js:887 +#: js/blocks/EnsembleBlocks.js:887 msgid "The Found mouse block will return true if the specified mouse can be found." msgstr "" -#: js/EnsembleBlocks.js:893 +#: js/blocks/EnsembleBlocks.js:893 msgid "found mouse" msgstr "" -#: js/EnsembleBlocks.js:903 +#: js/blocks/EnsembleBlocks.js:903 msgid "The Found turtle block will return true if the specified turtle can be found." msgstr "" -#: js/EnsembleBlocks.js:909 +#: js/blocks/EnsembleBlocks.js:909 msgid "found turtle" msgstr "" -#: js/EnsembleBlocks.js:932 +#: js/blocks/EnsembleBlocks.js:932 msgid "new mouse" msgstr "" -#: js/EnsembleBlocks.js:934 +#: js/blocks/EnsembleBlocks.js:934 msgid "The New mouse block will create a new mouse." msgstr "" -#: js/EnsembleBlocks.js:945 -msgid "new turtle" -msgstr "" - -#: js/EnsembleBlocks.js:947 -msgid "The New turtle block will create a new turtle." -msgstr "" - -#: js/EnsembleBlocks.js:1011 -msgid "set mouse color" -msgstr "" - -#: js/EnsembleBlocks.js:1014 -msgid "The Set-mouse-color block is used to set the color of a mouse." -msgstr "" - -#: js/EnsembleBlocks.js:1020 -msgid "set turtle color" -msgstr "" - -#: js/EnsembleBlocks.js:1023 -msgid "The Set-turtle-color block is used to set the color of a turtle." -msgstr "" - -#: js/EnsembleBlocks.js:1083 -msgid "The Mouse-name block returns the name of a mouse." -msgstr "" - -#: js/EnsembleBlocks.js:1092 -msgid "The Turtle-name block returns the name of a turtle." -msgstr "" - -#: js/EnsembleBlocks.js:1115 -msgid "mouse count" -msgstr "" - -#: js/EnsembleBlocks.js:1118 -msgid "The Mouse-count block returns the number of mice." -msgstr "" - -#: js/EnsembleBlocks.js:1124 -msgid "turtle count" -msgstr "" - -#: js/EnsembleBlocks.js:1127 -msgid "The Turtle-count block returns the number of turtles." -msgstr "" - -#: js/EnsembleBlocks.js:1149 -msgid "nth mouse name" -msgstr "" - -#: js/EnsembleBlocks.js:1152 -msgid "The Nth-Mouse name block returns the name of the nth mouse." -msgstr "" - -#: js/EnsembleBlocks.js:1158 -msgid "nth turtle name" -msgstr "" - -#: js/EnsembleBlocks.js:1161 -msgid "The Nth-Turtle name block returns the name of the nth turtle." -msgstr "" - -#: js/EnsembleBlocks.js:1205 -#: js/EnsembleBlocks.js:1265 -msgid "set name" -msgstr "" - -#: js/EnsembleBlocks.js:1214 -#: js/EnsembleBlocks.js:1221 -msgid "source" -msgstr "" - -#: js/EnsembleBlocks.js:1214 -#: js/EnsembleBlocks.js:1221 -msgid "target" -msgstr "" - -#: js/EnsembleBlocks.js:1271 -msgid "The Set-name block is used to name a mouse." -msgstr "" - -#: js/EnsembleBlocks.js:1284 -msgid "The Set-name block is used to name a turtle." -msgstr "" - -#: js/BooleanBlocks.js:44 -msgid "The Not block is the logical not operator." -msgstr "" - -#: js/BooleanBlocks.js:62 -msgid "not" -msgstr "មិន" - -#: js/BooleanBlocks.js:134 -msgid "The And block is the logical and operator." -msgstr "" - -#: js/BooleanBlocks.js:152 -msgid "and" -msgstr "" - -#: js/BooleanBlocks.js:218 -msgid "The Or block is the logical or operator." -msgstr "" - -#: js/BooleanBlocks.js:236 -msgid "or" -msgstr "ឬ" - -#: js/BooleanBlocks.js:302 -msgid "The XOR block is the logical XOR operator." +#: js/blocks/EnsembleBlocks.js:945 +msgid "new turtle" msgstr "" -#: js/BooleanBlocks.js:320 -msgid "xor" +#: js/blocks/EnsembleBlocks.js:947 +msgid "The New turtle block will create a new turtle." msgstr "" -#: js/BooleanBlocks.js:808 -msgid "The Equal block returns True if the two numbers are equal." +#: js/blocks/EnsembleBlocks.js:1011 +msgid "set mouse color" msgstr "" -#: js/BooleanBlocks.js:909 -msgid "The Not-equal-to block returns True if the two numbers are not equal to each other." +#: js/blocks/EnsembleBlocks.js:1014 +msgid "The Set-mouse-color block is used to set the color of a mouse." msgstr "" -#: js/BooleanBlocks.js:1008 -msgid "The Boolean block is used to specify true or false." +#: js/blocks/EnsembleBlocks.js:1020 +msgid "set turtle color" msgstr "" -#: js/MediaBlocks.js:35 -#.TRANS: right side of the screen -msgid "right (screen)" +#: js/blocks/EnsembleBlocks.js:1023 +msgid "The Set-turtle-color block is used to set the color of a turtle." msgstr "" -#: js/MediaBlocks.js:45 -#: js/MediaBlocks.js:56 -msgid "The Right block returns the position of the right of the canvas." +#: js/blocks/EnsembleBlocks.js:1083 +msgid "The Mouse-name block returns the name of a mouse." msgstr "" -#: js/MediaBlocks.js:97 -#.TRANS: left side of the screen -msgid "left (screen)" +#: js/blocks/EnsembleBlocks.js:1092 +msgid "The Turtle-name block returns the name of a turtle." msgstr "" -#: js/MediaBlocks.js:107 -#: js/MediaBlocks.js:118 -msgid "The Left block returns the position of the left of the canvas." +#: js/blocks/EnsembleBlocks.js:1115 +msgid "mouse count" msgstr "" -#: js/MediaBlocks.js:158 -msgid "top (screen)" +#: js/blocks/EnsembleBlocks.js:1118 +msgid "The Mouse-count block returns the number of mice." msgstr "" -#: js/MediaBlocks.js:168 -#: js/MediaBlocks.js:179 -msgid "The Top block returns the position of the top of the canvas." +#: js/blocks/EnsembleBlocks.js:1124 +msgid "turtle count" msgstr "" -#: js/MediaBlocks.js:219 -msgid "bottom (screen)" +#: js/blocks/EnsembleBlocks.js:1127 +msgid "The Turtle-count block returns the number of turtles." msgstr "" -#: js/MediaBlocks.js:229 -#: js/MediaBlocks.js:240 -msgid "The Bottom block returns the position of the bottom of the canvas." +#: js/blocks/EnsembleBlocks.js:1149 +msgid "nth mouse name" msgstr "" -#: js/MediaBlocks.js:282 -msgid "width" +#: js/blocks/EnsembleBlocks.js:1152 +msgid "The Nth-Mouse name block returns the name of the nth mouse." msgstr "" -#: js/MediaBlocks.js:291 -msgid "The Width block returns the width of the canvas." +#: js/blocks/EnsembleBlocks.js:1158 +msgid "nth turtle name" msgstr "" -#: js/MediaBlocks.js:325 -msgid "height" +#: js/blocks/EnsembleBlocks.js:1161 +msgid "The Nth-Turtle name block returns the name of the nth turtle." msgstr "" -#: js/MediaBlocks.js:334 -msgid "The Height block returns the height of the canvas." +#: js/blocks/EnsembleBlocks.js:1205 +#: js/blocks/EnsembleBlocks.js:1265 +msgid "set name" msgstr "" -#: js/MediaBlocks.js:369 -#.TRANS: stops playback of an audio recording -msgid "stop play" +#: js/blocks/EnsembleBlocks.js:1214 +#: js/blocks/EnsembleBlocks.js:1221 +msgid "source" msgstr "" -#: js/MediaBlocks.js:404 -#.TRANS: Erases the images and text -msgid "erase media" +#: js/blocks/EnsembleBlocks.js:1214 +#: js/blocks/EnsembleBlocks.js:1221 +msgid "target" msgstr "" -#: js/MediaBlocks.js:409 -msgid "The Erase Media block erases text and images." +#: js/blocks/EnsembleBlocks.js:1271 +msgid "The Set-name block is used to name a mouse." msgstr "" -#: js/MediaBlocks.js:439 -#.TRANS: play an audio recording -msgid "play back" +#: js/blocks/EnsembleBlocks.js:1284 +msgid "The Set-name block is used to name a turtle." msgstr "" -#: js/MediaBlocks.js:487 -msgid "speak" +#: js/blocks/ExtrasBlocks.js:33 +msgid "fraction" msgstr "" -#: js/MediaBlocks.js:495 -msgid "The Speak block outputs to the text-to-speech synthesizer" +#: js/blocks/ExtrasBlocks.js:36 +msgid "Convert a float to a fraction" msgstr "" -#: js/MediaBlocks.js:546 -msgid "camera" +#: js/blocks/ExtrasBlocks.js:93 +msgid "save as ABC" msgstr "" -#: js/MediaBlocks.js:551 -msgid "The Camera block connects a webcam to the Show block." +#: js/blocks/ExtrasBlocks.js:96 +#: js/blocks/ExtrasBlocks.js:132 +#: js/blocks/ExtrasBlocks.js:168 +msgid "title" msgstr "" -#: js/MediaBlocks.js:574 -msgid "video" +#: js/blocks/ExtrasBlocks.js:129 +msgid "save as Lilypond" msgstr "" -#: js/MediaBlocks.js:579 -msgid "The Video block selects video for use with the Show block." +#: js/blocks/ExtrasBlocks.js:165 +msgid "save as SVG" msgstr "" -#: js/MediaBlocks.js:607 -msgid "The Open file block opens a file for use with the Show block." +#: js/blocks/ExtrasBlocks.js:216 +msgid "no background" msgstr "" -#: js/MediaBlocks.js:645 -msgid "stop media" +#: js/blocks/ExtrasBlocks.js:219 +msgid "The No background block eliminates the background from the saved SVG output." msgstr "" -#: js/MediaBlocks.js:650 -msgid "The Stop media block stops audio or video playback." +#: js/blocks/ExtrasBlocks.js:247 +msgid "show blocks" msgstr "" -#: js/MediaBlocks.js:679 -#: js/PitchBlocks.js:1539 -#: js/phrasemaker.js:822 -#: js/musickeyboard.js:1654 -#.TRANS: a measure of frequency: one cycle per second -msgid "hertz" +#: js/blocks/ExtrasBlocks.js:249 +msgid "The Show blocks block shows the blocks." msgstr "" -#: js/MediaBlocks.js:692 -msgid "duration (ms)" +#: js/blocks/ExtrasBlocks.js:274 +msgid "hide blocks" msgstr "" -#: js/MediaBlocks.js:728 -#.TRANS: translate a note into hertz, e.g., A4 -> 440HZ -msgid "note to frequency" +#: js/blocks/ExtrasBlocks.js:276 +msgid "The Hide blocks block hides the blocks." msgstr "" -#: js/MediaBlocks.js:736 -msgid "The To frequency block converts a pitch name and octave to Hertz." +#: js/blocks/ExtrasBlocks.js:305 +#: js/blocks/ExtrasBlocks.js:338 +msgid "The Space block is used to add space between blocks." msgstr "" -#: js/MediaBlocks.js:746 -#: js/PitchBlocks.js:656 -#: js/PitchBlocks.js:932 -#: js/PitchBlocks.js:1827 -#.TRANS: name2 is name as in name of pitch (JAPANESE ONLY) -msgid "name2" +#: js/blocks/ExtrasBlocks.js:376 +msgid "wait" +msgstr "រង់​ចាំ" + +#: js/blocks/ExtrasBlocks.js:379 +msgid "The Wait block pauses the program for a specified number of seconds." msgstr "" -#: js/MediaBlocks.js:812 -msgid "The Avatar block is used to change the appearance of the mouse." +#: js/blocks/ExtrasBlocks.js:433 +#: plugins/facebook.rtp:30 +msgid "comment" +msgstr "មតិ​យោបល់" + +#: js/blocks/ExtrasBlocks.js:469 +msgid "print" +msgstr "បោះពុម្ព" + +#: js/blocks/ExtrasBlocks.js:476 +msgid "The Print block displays text at the top of the screen." msgstr "" -#: js/MediaBlocks.js:819 -msgid "The Avatar block is used to change the appearance of the turtle." +#: js/blocks/ExtrasBlocks.js:582 +msgid "display grid" msgstr "" -#: js/MediaBlocks.js:831 -#: js/MediaBlocks.js:891 -#.TRANS: a media object -msgid "size" +#: js/blocks/ExtrasBlocks.js:587 +msgid "The Display Grid Block changes the grid type" msgstr "" -#: js/MediaBlocks.js:831 -msgid "image" -msgstr "រូប​ភាព" +#: js/blocks/ExtrasBlocks.js:689 +#: js/blocks/ExtrasBlocks.js:708 +#: js/blocks/ExtrasBlocks.js:731 +#: js/blocks/ExtrasBlocks.js:754 +#: js/blocks/ExtrasBlocks.js:772 +#: js/blocks/ExtrasBlocks.js:791 +#: js/blocks/ExtrasBlocks.js:810 +#: js/blocks/ExtrasBlocks.js:829 +msgid "unknown" +msgstr "" -#: js/MediaBlocks.js:880 -msgid "The Show block is used to display text or images on the canvas." +#: js/blocks/FlowBlocks.js:41 +msgid "The Backward block runs code in reverse order (Musical retrograde)." msgstr "" -#: js/MediaBlocks.js:888 -#.TRANS: show1 is show as in display an image or text on the screen. -msgid "show1" +#: js/blocks/FlowBlocks.js:48 +msgid "backward" msgstr "" -#: js/MediaBlocks.js:891 -msgid "obj" +#: js/blocks/FlowBlocks.js:124 +msgid "The Duplicate block will run each block multiple times." msgstr "" -#: js/MediaBlocks.js:938 -msgid "The Media block is used to import an image." +#: js/blocks/FlowBlocks.js:136 +msgid "duplicate" msgstr "" -#: js/MediaBlocks.js:973 -msgid "The Text block holds a text string." +#: js/blocks/FlowBlocks.js:334 +msgid "The Default block is used inside of a Switch to define the default action." msgstr "" -#: js/ProgramBlocks.js:33 -msgid "The Load-heap-from-app block loads the heap from a web page." +#: js/blocks/FlowBlocks.js:342 +msgid "default" msgstr "" -#: js/ProgramBlocks.js:44 -#.TRANS: load the heap contents from a URL -msgid "load heap from App" +#: js/blocks/FlowBlocks.js:361 +#: js/blocks/FlowBlocks.js:418 +msgid "The Case Block must be used inside of a Switch Block." msgstr "" -#: js/ProgramBlocks.js:95 -msgid "Error parsing JSON data:" +#: js/blocks/FlowBlocks.js:389 +msgid "The Case block is used inside of a Switch to define matches." msgstr "" -#: js/ProgramBlocks.js:100 -msgid "404: Page not found" +#: js/blocks/FlowBlocks.js:397 +msgid "case" msgstr "" -#: js/ProgramBlocks.js:133 -msgid "The Save-heap-to-app block saves the heap to a web page." +#: js/blocks/FlowBlocks.js:446 +msgid "The Switch block will run the code in the matching Case." msgstr "" -#: js/ProgramBlocks.js:144 -#.TRANS: save the heap contents to a URL -msgid "save heap to App" +#: js/blocks/FlowBlocks.js:454 +msgid "switch" msgstr "" -#: js/ProgramBlocks.js:189 -msgid "Cannot find a valid heap for" +#: js/blocks/FlowBlocks.js:595 +msgid "The Stop block will stop a loop" msgstr "" -#: js/ProgramBlocks.js:206 -msgid "The Load-heap block loads the heap from a file." +#: js/blocks/FlowBlocks.js:597 +msgid "Forever, Repeat, While, or Until." msgstr "" -#: js/ProgramBlocks.js:217 -#.TRANS: load the heap from a file -msgid "load heap" +#: js/blocks/FlowBlocks.js:604 +#: js/widgets/timbre.js:417 +#: js/widgets/timbre.js:419 +#: js/widgets/musickeyboard.js:819 +#: js/widgets/musickeyboard.js:821 +#: js/widgets/phrasemaker.js:4202 +#: plugins/rodi.rtp:29 +#: plugins/rodi.rtp:73 +#: plugins/rodi.rtp:413 +msgid "stop" +msgstr "បញ្ឈប់" + +#: js/blocks/FlowBlocks.js:653 +msgid "The Waitfor block will wait until the condition is true." msgstr "" -#: js/ProgramBlocks.js:270 -msgid "The file you selected does not contain a valid heap." +#: js/blocks/FlowBlocks.js:661 +msgid "wait for" msgstr "" -#: js/ProgramBlocks.js:275 -msgid "The loadHeap block needs a loadFile block." +#: js/blocks/FlowBlocks.js:732 +msgid "The Until block will repeat until the condition is true." msgstr "" -#: js/ProgramBlocks.js:291 -msgid "The Set-heap block loads the heap." +#: js/blocks/FlowBlocks.js:740 +msgid "until" msgstr "" -#: js/ProgramBlocks.js:299 -#: js/HeapBlocks.js:539 -#.TRANS: load the heap from a JSON encoding -msgid "set heap" +#: js/blocks/FlowBlocks.js:742 +#: js/blocks/FlowBlocks.js:822 +msgid "do2" msgstr "" -#: js/ProgramBlocks.js:340 -msgid "The block you selected does not contain a valid heap." +#: js/blocks/FlowBlocks.js:812 +msgid "The While block will repeat while the condition is true." msgstr "" -#: js/ProgramBlocks.js:343 -msgid "The Set heap block needs a heap." +#: js/blocks/FlowBlocks.js:820 +msgid "while" +msgstr "ស" + +#: js/blocks/FlowBlocks.js:903 +#: js/blocks/FlowBlocks.js:968 +#: js/blocks/FlowBlocks.js:979 +msgid "In this example if the mouse button is pressed a snare drum will play." msgstr "" -#: js/ProgramBlocks.js:360 -msgid "The Load-dictionary block loads a dictionary from a file." +#: js/blocks/FlowBlocks.js:925 +#: js/blocks/FlowBlocks.js:988 +msgid "if" msgstr "" -#: js/ProgramBlocks.js:372 -#.TRANS: load a dictionary from a file -msgid "load dictionary" +#: js/blocks/FlowBlocks.js:927 +#: js/blocks/FlowBlocks.js:990 +msgid "then" +msgstr "នោះ" + +#: js/blocks/FlowBlocks.js:927 +msgid "else" msgstr "" -#: js/ProgramBlocks.js:390 -#: js/ProgramBlocks.js:658 -#: js/ToneBlocks.js:1025 -msgid "file" +#: js/blocks/FlowBlocks.js:1025 +msgid "The Forever block will repeat the contained blocks forever." msgstr "" -#: js/ProgramBlocks.js:396 -#: js/ProgramBlocks.js:501 -#: js/ProgramBlocks.js:664 -#: js/DictBlocks.js:80 -#: js/DictBlocks.js:145 -#: js/DictBlocks.js:216 -#: js/DictBlocks.js:290 -msgid "My Dictionary" +#: js/blocks/FlowBlocks.js:1037 +msgid "forever" +msgstr "ជារៀង​រហូត" + +#: js/blocks/FlowBlocks.js:1073 +msgid "The Repeat block will repeat the contained blocks." msgstr "" -#: js/ProgramBlocks.js:444 -msgid "The file you selected does not contain a valid dictionary." +#: js/blocks/FlowBlocks.js:1075 +msgid "In this example the note will be played 4 times." msgstr "" -#: js/ProgramBlocks.js:449 -msgid "The load dictionary block needs a load file block." +#: js/blocks/FlowBlocks.js:1083 +msgid "repeat" +msgstr "ធ្វើម្តង​ទៀត​" + +#: js/blocks/FlowBlocks.js:1123 +msgid "duplicate factor" msgstr "" -#: js/ProgramBlocks.js:466 -msgid "The Set-dictionary block loads a dictionary." +#: js/blocks/HeapBlocks.js:49 +msgid "The Heap block returns the heap." msgstr "" -#: js/ProgramBlocks.js:477 -#.TRANS: load a dictionary from a JSON -msgid "set dictionary" +#: js/blocks/HeapBlocks.js:133 +msgid "show heap" +msgstr "បង្ហាញ​ជំនួយ" + +#: js/blocks/HeapBlocks.js:181 +msgid "The Heap-length block returns the length of the heap." msgstr "" -#: js/ProgramBlocks.js:546 -msgid "The block you selected does not contain a valid dictionary." +#: js/blocks/HeapBlocks.js:195 +msgid "heap length" msgstr "" -#: js/ProgramBlocks.js:550 -msgid "The set dictionary block needs a dictionary." +#: js/blocks/HeapBlocks.js:254 +msgid "The Heap-empty? block returns true if the heap is empty." msgstr "" -#: js/ProgramBlocks.js:567 -msgid "The Save-heap block saves the heap to a file." +#: js/blocks/HeapBlocks.js:268 +#.TRANS: Is the heap empty? +msgid "heap empty?" msgstr "" -#: js/ProgramBlocks.js:578 -#.TRANS: save the heap to a file -msgid "save heap" +#: js/blocks/HeapBlocks.js:317 +msgid "The Empty-heap block empties the heap." msgstr "" -#: js/ProgramBlocks.js:629 -msgid "The Save-dictionary block saves a dictionary to a file." +#: js/blocks/HeapBlocks.js:327 +#: js/blocks/HeapBlocks.js:647 +#.TRANS: empty the heap +msgid "empty heap" msgstr "" -#: js/ProgramBlocks.js:640 -#.TRANS: save a dictionary to a file -msgid "save dictionary" +#: js/blocks/HeapBlocks.js:371 +msgid "The Reverse-heap block reverses the order of the heap." msgstr "" -#: js/ProgramBlocks.js:720 -msgid "The Open palette block opens a palette." +#: js/blocks/HeapBlocks.js:384 +#.TRANS: reverse the order of the heap +msgid "reverse heap" msgstr "" -#: js/ProgramBlocks.js:727 -msgid "open palette" +#: js/blocks/HeapBlocks.js:428 +msgid "The Index-heap block returns a value in the heap at a specified location." msgstr "" -#: js/ProgramBlocks.js:785 -msgid "The Delete block block removes a block." +#: js/blocks/HeapBlocks.js:443 +#.TRANS: retrieve a value from the heap at index position in the heap +msgid "index heap" msgstr "" -#: js/ProgramBlocks.js:797 -#.TRANS: Move this block to the trash. -msgid "delete block" +#: js/blocks/HeapBlocks.js:523 +msgid "The Set-heap entry block sets a value in he heap at the specified location." msgstr "" -#: js/ProgramBlocks.js:861 -msgid "The Move block block moves a block." +#: js/blocks/HeapBlocks.js:539 +#: js/blocks/ProgramBlocks.js:299 +#.TRANS: load the heap from a JSON encoding +msgid "set heap" msgstr "" -#: js/ProgramBlocks.js:869 -#.TRANS: Move the position of a block on the screen. -msgid "move block" +#: js/blocks/HeapBlocks.js:619 +msgid "The Pop block removes the value at the top of the heap." msgstr "" -#: js/ProgramBlocks.js:881 -#: js/ProgramBlocks.js:1048 -msgid "block number" +#: js/blocks/HeapBlocks.js:633 +#.TRANS: pop a value off the top of the heap +msgid "pop" +msgstr "លេច​ឡើង" + +#: js/blocks/HeapBlocks.js:680 +msgid "The Push block adds a value to the top of the heap." msgstr "" -#: js/ProgramBlocks.js:935 -#.TRANS: Run program beginning at this block. -msgid "run block" +#: js/blocks/HeapBlocks.js:696 +#.TRANS: push a value onto the top of the heap +msgid "push" +msgstr "ចុច" + +#: js/blocks/IntervalsBlocks.js:45 +msgid "set temperament" msgstr "" -#: js/ProgramBlocks.js:1025 -msgid "The Dock block block connections two blocks." +#: js/blocks/IntervalsBlocks.js:63 +#: js/blocks/MediaBlocks.js:746 +#: js/blocks/PitchBlocks.js:657 +#: js/blocks/PitchBlocks.js:935 +#: js/blocks/PitchBlocks.js:974 +#: js/blocks/PitchBlocks.js:1007 +#: js/blocks/PitchBlocks.js:1194 +#: js/blocks/PitchBlocks.js:1717 +#: js/blocks/PitchBlocks.js:1758 +#: js/blocks/PitchBlocks.js:1866 +#: js/blocks/ToneBlocks.js:1025 +#: js/turtleactions/IntervalsActions.js:114 +#.TRANS: adjusts the shift up or down by one octave (twelve half-steps in the interval between two notes, one having twice or half the frequency in Hz of the other.) +msgid "octave" msgstr "" -#: js/ProgramBlocks.js:1036 -#.TRANS: We can connect a block to another block. -msgid "connect blocks" +#: js/blocks/IntervalsBlocks.js:99 +msgid "The Temperament name block is used to select a tuning method." msgstr "" -#: js/ProgramBlocks.js:1048 -msgid "target block" +#: js/blocks/IntervalsBlocks.js:161 +msgid "doubly" msgstr "" -#: js/ProgramBlocks.js:1048 -msgid "connection number" +#: js/blocks/IntervalsBlocks.js:166 +msgid "The Doubly block will double the size of an interval." msgstr "" -#: js/ProgramBlocks.js:1140 -msgid "The Make block block creates a new block." +#: js/blocks/IntervalsBlocks.js:262 +msgid "interval number" msgstr "" -#: js/ProgramBlocks.js:1152 -#.TRANS: Create a new block -msgid "make block" +#: js/blocks/IntervalsBlocks.js:317 +msgid "current interval" msgstr "" -#: js/ProgramBlocks.js:1186 -#: js/ProgramBlocks.js:1227 -#: js/RhythmBlocks.js:1128 -#: js/PitchBlocks.js:972 -#: js/PitchBlocks.js:1005 -#: js/temperament.js:340 -#: js/temperament.js:362 -#: js/temperament.js:372 -#: js/temperament.js:484 -#: js/status.js:190 -#: plugins/rodi.rtp:192 -#.TRANS: a musical note consisting of pitch and duration -msgid "note" +#: js/blocks/IntervalsBlocks.js:387 +#.TRANS: measure the distance between two pitches in semi-tones +msgid "semi-tone interval measure" msgstr "" -#: js/ProgramBlocks.js:1285 -msgid "Cannot find block" +#: js/blocks/IntervalsBlocks.js:454 +#: js/blocks/IntervalsBlocks.js:570 +msgid "You must use two pitch blocks when measuring an interval." msgstr "" -#: js/ProgramBlocks.js:1304 -#: js/ProgramBlocks.js:1313 -msgid "Warning: block argument type mismatch" +#: js/blocks/IntervalsBlocks.js:496 +msgid "The Scalar interval block measures the distance between two notes in the current key and mode." msgstr "" -#: js/ProgramBlocks.js:1347 -msgid "The Open project block is used to open a project from a web page." +#: js/blocks/IntervalsBlocks.js:502 +#.TRANS: measure the distance between two pitches in steps of musical scale +msgid "scalar interval measure" msgstr "" -#: js/ProgramBlocks.js:1357 -msgid "open project" +#: js/blocks/IntervalsBlocks.js:678 +msgid "In the figure, we add sol# to sol." msgstr "" -#: js/ProgramBlocks.js:1410 -msgid "Please enter a valid URL." +#: js/blocks/IntervalsBlocks.js:684 +#: js/blocks/OrnamentBlocks.js:220 +#.TRANS: calculate a relative step between notes based on semi-tones +msgid "semi-tone interval" msgstr "" -#: js/DrumBlocks.js:59 -msgid "The Noise name block is used to select a noise synthesizer." +#: js/blocks/IntervalsBlocks.js:733 +msgid "The output of the example is: do, mi, sol, sol, ti, mi" msgstr "" -#: js/DrumBlocks.js:102 -msgid "The Drum name block is used to select a drum." +#: js/blocks/IntervalsBlocks.js:740 +#: js/blocks/WidgetBlocks.js:768 +msgid "arpeggio" msgstr "" -#: js/DrumBlocks.js:146 -msgid "The Effects name block is used to select a sound effect." +#: js/blocks/IntervalsBlocks.js:931 +msgid "The Chord block calculates common chords." msgstr "" -#: js/DrumBlocks.js:163 -msgid "noise" +#: js/blocks/IntervalsBlocks.js:933 +msgid "In the figure, we generate a C-major chord." msgstr "" -#: js/DrumBlocks.js:177 -msgid "The Play noise block will generate white, pink, or brown noise." +#: js/blocks/IntervalsBlocks.js:938 +msgid "chord" msgstr "" -#: js/DrumBlocks.js:191 -#: js/musicutils.js:752 -#: js/synthutils.js:47 -#.TRANS: white noise synthesizer -msgid "white noise" +#: js/blocks/IntervalsBlocks.js:990 +msgid "The Ratio Interval block calculates an interval based on a ratio." msgstr "" -#: js/DrumBlocks.js:326 -msgid "Replace every instance of a pitch with a drum sound." +#: js/blocks/IntervalsBlocks.js:995 +msgid "ratio interval" msgstr "" -#: js/DrumBlocks.js:337 -#.TRANS: map a pitch to a drum sound -msgid "map pitch to drum" +#: js/blocks/IntervalsBlocks.js:1064 +msgid "In the figure, we add la to sol." msgstr "" -#: js/DrumBlocks.js:404 -msgid "In the example above, a kick drum sound will be played instead of sol." +#: js/blocks/IntervalsBlocks.js:1120 +#.TRANS: define a custom mode +msgid "define mode" msgstr "" -#: js/DrumBlocks.js:416 -#.TRANS: set the current drum sound for playback -msgid "set drum" +#: js/blocks/IntervalsBlocks.js:1173 +msgid "movable Do" msgstr "" -#: js/DrumBlocks.js:460 -msgid "sound effect" +#: js/blocks/IntervalsBlocks.js:1224 +#.TRANS: mode length is the number of notes in the mode, e.g., 7 for major and minor scales; 12 for chromatic scales +msgid "mode length" msgstr "" -#: js/DrumBlocks.js:498 -msgid "You can use multiple Drum blocks within a Note block." +#: js/blocks/IntervalsBlocks.js:1233 +msgid "The Mode length block is the number of notes in the current scale." msgstr "" -#: js/RhythmBlocks.js:182 -#: js/RhythmBlocks.js:1086 -#: js/RhythmBlocks.js:1162 -msgid "Note value must be greater than 0." +#: js/blocks/IntervalsBlocks.js:1235 +msgid "Most Western scales have 7 notes." msgstr "" -#: js/RhythmBlocks.js:215 -#: js/RhythmBlocks.js:278 -#: js/RhythmBlocks.js:350 -#.TRANS: swing is a rhythmic variation that emphasises the offbeat -msgid "swing" +#: js/blocks/IntervalsBlocks.js:1284 +#.TRANS: the mode in music is 'major', 'minor', etc. +msgid "current mode" msgstr "" -#: js/RhythmBlocks.js:355 -#.TRANS: the amount to shift to the offbeat note -msgid "swing value" +#: js/blocks/IntervalsBlocks.js:1337 +#.TRANS: the key is a group of pitches with which a music composition is created +msgid "current key" msgstr "" -#: js/RhythmBlocks.js:419 -msgid "The Skip notes block will cause notes to be skipped." +#: js/blocks/IntervalsBlocks.js:1389 +#: js/blocks/IntervalsBlocks.js:1434 +#.TRANS: set the key and mode, e.g. C Major +msgid "set key" msgstr "" -#: js/RhythmBlocks.js:427 -#.TRANS: substitute rests on notes being skipped -msgid "skip notes" +#: js/blocks/IntervalsBlocks.js:1443 +#: js/blocks/IntervalsBlocks.js:1449 +msgid "The Set key block is used to set the key and mode," msgstr "" -#: js/RhythmBlocks.js:489 -#.TRANS: speed up note duration by some factor, e.g. convert 1/4 to 1/8 notes by using a factor of 2 -msgid "multiply note value" +#: js/blocks/IntervalsBlocks.js:1449 +msgid "eg C Major" msgstr "" -#: js/RhythmBlocks.js:542 -msgid "The Tie block works on pairs of notes, combining them into one note." +#: js/blocks/MediaBlocks.js:35 +#.TRANS: right side of the screen +msgid "right (screen)" msgstr "" -#: js/RhythmBlocks.js:550 -#.TRANS: tie notes together into one longer note -msgid "tie" +#: js/blocks/MediaBlocks.js:45 +#: js/blocks/MediaBlocks.js:56 +msgid "The Right block returns the position of the right of the canvas." msgstr "" -#: js/RhythmBlocks.js:591 -#: js/RhythmBlocks.js:671 -#.TRANS: a dotted note is played for 1.5x its value, e.g., 1/8. --> 3/16 -msgid "dot" +#: js/blocks/MediaBlocks.js:97 +#.TRANS: left side of the screen +msgid "left (screen)" msgstr "" -#: js/RhythmBlocks.js:619 -#: js/RhythmActions.js:221 -msgid "An argument of -1 results in a note value of 0." +#: js/blocks/MediaBlocks.js:107 +#: js/blocks/MediaBlocks.js:118 +msgid "The Left block returns the position of the left of the canvas." msgstr "" -#: js/RhythmBlocks.js:661 -msgid "The Dot block extends the duration of a note by 50%." +#: js/blocks/MediaBlocks.js:158 +msgid "top (screen)" msgstr "" -#: js/RhythmBlocks.js:663 -msgid "Eg a dotted quarter note will play for 3/8 (1/4 + 1/8) of a beat." +#: js/blocks/MediaBlocks.js:168 +#: js/blocks/MediaBlocks.js:179 +msgid "The Top block returns the position of the top of the canvas." msgstr "" -#: js/RhythmBlocks.js:765 -#.TRANS: Japanese only: note value block for drum -msgid "note value drum" +#: js/blocks/MediaBlocks.js:219 +msgid "bottom (screen)" msgstr "" -#: js/RhythmBlocks.js:829 -msgid "392 hertz" +#: js/blocks/MediaBlocks.js:229 +#: js/blocks/MediaBlocks.js:240 +msgid "The Bottom block returns the position of the bottom of the canvas." msgstr "" -#: js/RhythmBlocks.js:1119 -msgid "The Note block is a container for one or more Pitch blocks." +#: js/blocks/MediaBlocks.js:282 +msgid "width" msgstr "" -#: js/RhythmBlocks.js:1121 -msgid "The Note block specifies the duration (note value) of its contents." +#: js/blocks/MediaBlocks.js:291 +msgid "The Width block returns the width of the canvas." msgstr "" -#: js/RhythmBlocks.js:1130 -msgid "value2" +#: js/blocks/MediaBlocks.js:325 +msgid "height" msgstr "" -#: js/RhythmBlocks.js:1200 -msgid "define frequency" +#: js/blocks/MediaBlocks.js:334 +msgid "The Height block returns the height of the canvas." msgstr "" -#: js/RhythmBlocks.js:1218 -#: js/temperament.js:650 -#: js/temperament.js:1421 -msgid "octave space" +#: js/blocks/MediaBlocks.js:369 +#.TRANS: stops playback of an audio recording +msgid "stop play" msgstr "" -#: js/NumberBlocks.js:28 -msgid "The Int block returns an integer." +#: js/blocks/MediaBlocks.js:404 +#.TRANS: Erases the images and text +msgid "erase media" msgstr "" -#: js/NumberBlocks.js:34 -msgid "int" +#: js/blocks/MediaBlocks.js:409 +msgid "The Erase Media block erases text and images." msgstr "" -#: js/NumberBlocks.js:73 -msgid "The Mod block returns the remainder from a division." +#: js/blocks/MediaBlocks.js:439 +#.TRANS: play an audio recording +msgid "play back" msgstr "" -#: js/NumberBlocks.js:79 -msgid "mod" -msgstr "ផ្លាស់ទី" - -#: js/NumberBlocks.js:123 -msgid "The Power block calculates a power function." +#: js/blocks/MediaBlocks.js:487 +msgid "speak" msgstr "" -#: js/NumberBlocks.js:178 -msgid "The Sqrt block returns the square root." +#: js/blocks/MediaBlocks.js:495 +msgid "The Speak block outputs to the text-to-speech synthesizer" msgstr "" -#: js/NumberBlocks.js:184 -msgid "sqrt" +#: js/blocks/MediaBlocks.js:546 +msgid "camera" msgstr "" -#: js/NumberBlocks.js:230 -msgid "The Abs block returns the absolute value." +#: js/blocks/MediaBlocks.js:551 +msgid "The Camera block connects a webcam to the Show block." msgstr "" -#: js/NumberBlocks.js:236 -msgid "abs" +#: js/blocks/MediaBlocks.js:574 +msgid "video" msgstr "" -#: js/NumberBlocks.js:277 -msgid "The Distance block returns the distance between two points. For example, between the mouse and the center of the screen." +#: js/blocks/MediaBlocks.js:579 +msgid "The Video block selects video for use with the Show block." msgstr "" -#: js/NumberBlocks.js:283 -#: plugins/rodi.rtp:310 -msgid "distance" +#: js/blocks/MediaBlocks.js:607 +msgid "The Open file block opens a file for use with the Show block." msgstr "" -#: js/NumberBlocks.js:343 -msgid "The Divide block is used to divide." +#: js/blocks/MediaBlocks.js:645 +msgid "stop media" msgstr "" -#: js/NumberBlocks.js:411 -msgid "The Multiply block is used to multiply." +#: js/blocks/MediaBlocks.js:650 +msgid "The Stop media block stops audio or video playback." msgstr "" -#: js/NumberBlocks.js:554 -msgid "The Minus block is used to subtract." +#: js/blocks/MediaBlocks.js:679 +#: js/blocks/PitchBlocks.js:1577 +#: js/widgets/musickeyboard.js:1936 +#: js/widgets/phrasemaker.js:1037 +#.TRANS: a measure of frequency: one cycle per second +msgid "hertz" msgstr "" -#: js/NumberBlocks.js:647 -msgid "The Plus block is used to add." +#: js/blocks/MediaBlocks.js:692 +#: js/blocks/WidgetBlocks.js:182 +#: js/widgets/temperament.js:506 +#: js/widgets/temperament.js:546 +#: js/widgets/temperament.js:610 +#: js/widgets/temperament.js:618 +#: js/widgets/temperament.js:1505 +#: js/widgets/timbre.js:1842 +msgid "frequency" msgstr "" -#: js/NumberBlocks.js:773 -msgid "The One-of block returns one of two choices." +#: js/blocks/MediaBlocks.js:692 +msgid "duration (ms)" msgstr "" -#: js/NumberBlocks.js:780 -#: js/PitchBlocks.js:616 -msgid "one of" +#: js/blocks/MediaBlocks.js:728 +#.TRANS: translate a note into hertz, e.g., A4 -> 440HZ +msgid "note to frequency" msgstr "" -#: js/NumberBlocks.js:782 -msgid "this" +#: js/blocks/MediaBlocks.js:736 +msgid "The To frequency block converts a pitch name and octave to Hertz." msgstr "" -#: js/NumberBlocks.js:782 -msgid "that" +#: js/blocks/MediaBlocks.js:746 +#: js/blocks/PitchBlocks.js:656 +#: js/blocks/PitchBlocks.js:934 +#: js/blocks/PitchBlocks.js:1866 +#.TRANS: name2 is name as in name of pitch (JAPANESE ONLY) +msgid "name2" msgstr "" -#: js/NumberBlocks.js:837 -msgid "The Random block returns a random number." +#: js/blocks/MediaBlocks.js:812 +msgid "The Avatar block is used to change the appearance of the mouse." msgstr "" -#: js/NumberBlocks.js:844 -msgid "random" -msgstr "ព្រាវ" - -#: js/NumberBlocks.js:846 -msgid "min" -msgstr "នាទី" - -#: js/NumberBlocks.js:846 -msgid "max" -msgstr "អតិ" - -#: js/NumberBlocks.js:910 -msgid "The Number block holds a number." +#: js/blocks/MediaBlocks.js:819 +msgid "The Avatar block is used to change the appearance of the turtle." msgstr "" -#: js/BoxesBlocks.js:53 -#: js/BoxesBlocks.js:59 -msgid "The Add-to block is used to add to the value stored in a box." +#: js/blocks/MediaBlocks.js:831 +#: js/blocks/MediaBlocks.js:891 +#.TRANS: a media object +msgid "size" msgstr "" -#: js/BoxesBlocks.js:61 -msgid "It can also be used with other blocks such as Color and Pen size." -msgstr "" +#: js/blocks/MediaBlocks.js:831 +msgid "image" +msgstr "រូប​ភាព" -#: js/BoxesBlocks.js:73 -msgid "add" +#: js/blocks/MediaBlocks.js:880 +msgid "The Show block is used to display text or images on the canvas." msgstr "" -#: js/BoxesBlocks.js:75 -#: js/temperament.js:716 -msgid "to" +#: js/blocks/MediaBlocks.js:888 +#.TRANS: show1 is show as in display an image or text on the screen. +msgid "show1" msgstr "" -#: js/BoxesBlocks.js:75 -#: js/BoxesBlocks.js:595 -#: js/HeapBlocks.js:544 -msgid "value1" +#: js/blocks/MediaBlocks.js:891 +msgid "obj" msgstr "" -#: js/BoxesBlocks.js:118 -msgid "Block does not support incrementing." +#: js/blocks/MediaBlocks.js:938 +msgid "The Media block is used to import an image." msgstr "" -#: js/BoxesBlocks.js:152 -msgid "The Add-1-to block adds one to the value stored in a box." +#: js/blocks/MediaBlocks.js:973 +msgid "The Text block holds a text string." msgstr "" -#: js/BoxesBlocks.js:163 -msgid "add 1 to" +#: js/blocks/MeterBlocks.js:34 +#.TRANS: musical meter (time signature), e.g., 4:4 +msgid "current meter" msgstr "" -#: js/BoxesBlocks.js:211 -msgid "The Subtract-1-from block subtracts one from the value stored in a box." +#: js/blocks/MeterBlocks.js:85 +#.TRANS: number of beats per minute +msgid "beat factor" msgstr "" -#: js/BoxesBlocks.js:222 -msgid "subtract 1 from" +#: js/blocks/MeterBlocks.js:161 +msgid "The Beats per minute block returns the current beats per minute." msgstr "" -#: js/BoxesBlocks.js:270 -#: js/BoxesBlocks.js:387 -msgid "The Box block returns the value stored in a box." +#: js/blocks/MeterBlocks.js:169 +#: js/widgets/status.js:152 +#.TRANS: number of beats played per minute +msgid "beats per minute2" msgstr "" -#: js/BoxesBlocks.js:500 -#: js/BoxesBlocks.js:576 -msgid "The Store in block will store a value in a box." +#: js/blocks/MeterBlocks.js:169 +#: js/blocks/MeterBlocks.js:1056 +#: js/blocks/MeterBlocks.js:1133 +#: js/blocks/MeterBlocks.js:1211 +#.TRANS: sets tempo by defining a beat and beats per minute +msgid "beats per minute" msgstr "" -#: js/BoxesBlocks.js:652 -msgid "The Box2 block returns the value stored in Box2." +#: js/blocks/MeterBlocks.js:233 +#.TRANS: count of current musical measure in meter +msgid "measure count" msgstr "" -#: js/BoxesBlocks.js:703 -msgid "The Store in Box2 block is used to store a value in Box2." +#: js/blocks/MeterBlocks.js:241 +msgid "The Measure count block returns the current measure." msgstr "" -#: js/BoxesBlocks.js:715 -msgid "store in box2" +#: js/blocks/MeterBlocks.js:290 +#.TRANS: count of current beat in the meter +msgid "beat count" msgstr "" -#: js/BoxesBlocks.js:761 -msgid "The Box1 block returns the value stored in Box1." +#: js/blocks/MeterBlocks.js:300 +#: js/blocks/MeterBlocks.js:311 +#: js/blocks/MeterBlocks.js:565 +#: js/blocks/MeterBlocks.js:576 +msgid "The Beat count block is the number of the current beat," msgstr "" -#: js/BoxesBlocks.js:812 -msgid "The Store in Box1 block is used to store a value in Box1." +#: js/blocks/MeterBlocks.js:313 +#: js/blocks/MeterBlocks.js:578 +msgid "eg 1, 2, 3, or 4." msgstr "" -#: js/BoxesBlocks.js:826 -msgid "store in box1" +#: js/blocks/MeterBlocks.js:368 +#.TRANS: count the number of notes +msgid "sum note values" msgstr "" -#: js/HeapBlocks.js:49 -msgid "The Heap block returns the heap." +#: js/blocks/MeterBlocks.js:376 +#: js/blocks/MeterBlocks.js:440 +msgid "The Note counter block can be used to count the number of contained notes." msgstr "" -#: js/HeapBlocks.js:133 -msgid "show heap" -msgstr "បង្ហាញ​ជំនួយ" - -#: js/HeapBlocks.js:181 -msgid "The Heap-length block returns the length of the heap." +#: js/blocks/MeterBlocks.js:432 +#.TRANS: count the number of notes +msgid "note counter" msgstr "" -#: js/HeapBlocks.js:195 -msgid "heap length" +#: js/blocks/MeterBlocks.js:496 +#.TRANS: number of whole notes that have been played +msgid "whole notes played" msgstr "" -#: js/HeapBlocks.js:254 -msgid "The Heap-empty? block returns true if the heap is empty." +#: js/blocks/MeterBlocks.js:505 +msgid "The Whole notes played block returns the total number of whole notes played." msgstr "" -#: js/HeapBlocks.js:268 -#.TRANS: Is the heap empty? -msgid "heap empty?" +#: js/blocks/MeterBlocks.js:555 +#: js/turtleactions/DictActions.js:83 +#.TRANS: number of notes that have been played +msgid "notes played" msgstr "" -#: js/HeapBlocks.js:317 -msgid "The Empty-heap block empties the heap." +#: js/blocks/MeterBlocks.js:653 +msgid "The No clock block decouples the notes from the master clock." msgstr "" -#: js/HeapBlocks.js:327 -#: js/HeapBlocks.js:647 -#.TRANS: empty the heap -msgid "empty heap" +#: js/blocks/MeterBlocks.js:661 +#.TRANS: don't lock notes to master clock +msgid "no clock" msgstr "" -#: js/HeapBlocks.js:371 -msgid "The Reverse-heap block reverses the order of the heap." +#: js/blocks/MeterBlocks.js:700 +msgid "on weak beat do" msgstr "" -#: js/HeapBlocks.js:384 -#.TRANS: reverse the order of the heap -msgid "reverse heap" +#: js/blocks/MeterBlocks.js:705 +msgid "The On-weak-beat block lets you specify actions to take on weak (off) beats." msgstr "" -#: js/HeapBlocks.js:428 -msgid "The Index-heap block returns a value in the heap at a specified location." +#: js/blocks/MeterBlocks.js:750 +msgid "on strong beat" msgstr "" -#: js/HeapBlocks.js:443 -#.TRANS: retrieve a value from the heap at index position in the heap -msgid "index heap" +#: js/blocks/MeterBlocks.js:758 +msgid "The On-strong-beat block lets you specify actions to take on specified beats." msgstr "" -#: js/HeapBlocks.js:523 -msgid "The Set-heap entry block sets a value in he heap at the specified location." +#: js/blocks/MeterBlocks.js:769 +msgid "beat" msgstr "" -#: js/HeapBlocks.js:619 -msgid "The Pop block removes the value at the top of the heap." +#: js/blocks/MeterBlocks.js:813 +msgid "on every beat do" msgstr "" -#: js/HeapBlocks.js:633 -#.TRANS: pop a value off the top of the heap -msgid "pop" -msgstr "លេច​ឡើង" +#: js/blocks/MeterBlocks.js:821 +msgid "The On-every-beat block lets you specify actions to take on every beat." +msgstr "" -#: js/HeapBlocks.js:680 -msgid "The Push block adds a value to the top of the heap." +#: js/blocks/MeterBlocks.js:874 +msgid "on every note do" msgstr "" -#: js/HeapBlocks.js:696 -#.TRANS: push a value onto the top of the heap -msgid "push" -msgstr "ចុច" +#: js/blocks/MeterBlocks.js:882 +msgid "The On-every-note block lets you specify actions to take on every note." +msgstr "" -#: js/FlowBlocks.js:41 -msgid "The Backward block runs code in reverse order (Musical retrograde)." +#: js/blocks/MeterBlocks.js:928 +#: js/blocks/MeterBlocks.js:999 +#.TRANS: sets tempo by defining a beat and beats per minute +msgid "master beats per minute" msgstr "" -#: js/FlowBlocks.js:48 -msgid "backward" +#: js/blocks/MeterBlocks.js:952 +#: js/blocks/MeterBlocks.js:1078 +#: js/blocks/MeterBlocks.js:1135 +msgid "bpm" msgstr "" -#: js/FlowBlocks.js:124 -msgid "The Duplicate block will run each block multiple times." +#: js/blocks/MeterBlocks.js:952 +#: js/blocks/MeterBlocks.js:1078 +#: js/blocks/MeterBlocks.js:1135 +msgid "beat value" msgstr "" -#: js/FlowBlocks.js:136 -msgid "duplicate" +#: js/blocks/MeterBlocks.js:1024 +#: js/blocks/MeterBlocks.js:1167 +#: js/blocks/MeterBlocks.js:1241 +msgid "Beats per minute must be > 30." msgstr "" -#: js/FlowBlocks.js:334 -msgid "The Default block is used inside of a Switch to define the default action." +#: js/blocks/MeterBlocks.js:1027 +#: js/blocks/MeterBlocks.js:1170 +#: js/blocks/MeterBlocks.js:1244 +msgid "Maximum beats per minute is 1000." msgstr "" -#: js/FlowBlocks.js:342 -msgid "default" +#: js/blocks/MeterBlocks.js:1068 +msgid "The Beats per minute block sets the number of 1/4 notes per minute." msgstr "" -#: js/FlowBlocks.js:361 -#: js/FlowBlocks.js:418 -msgid "The Case Block must be used inside of a Switch Block." +#: js/blocks/MeterBlocks.js:1279 +#.TRANS: anacrusis +msgid "pickup" msgstr "" -#: js/FlowBlocks.js:389 -msgid "The Case block is used inside of a Switch to define matches." +#: js/blocks/MeterBlocks.js:1367 +msgid "number of beats" msgstr "" -#: js/FlowBlocks.js:397 -msgid "case" +#: js/blocks/NumberBlocks.js:28 +msgid "The Int block returns an integer." msgstr "" -#: js/FlowBlocks.js:446 -msgid "The Switch block will run the code in the matching Case." +#: js/blocks/NumberBlocks.js:34 +msgid "int" msgstr "" -#: js/FlowBlocks.js:454 -msgid "switch" +#: js/blocks/NumberBlocks.js:73 +msgid "The Mod block returns the remainder from a division." msgstr "" -#: js/FlowBlocks.js:595 -msgid "The Stop block will stop a loop" -msgstr "" +#: js/blocks/NumberBlocks.js:79 +msgid "mod" +msgstr "ផ្លាស់ទី" -#: js/FlowBlocks.js:597 -msgid "Forever, Repeat, While, or Until." +#: js/blocks/NumberBlocks.js:141 +msgid "The Power block calculates a power function." msgstr "" -#: js/FlowBlocks.js:604 -#: js/phrasemaker.js:3799 -#: js/musickeyboard.js:629 -#: js/musickeyboard.js:631 -#: js/timbre.js:417 -#: js/timbre.js:419 -#: plugins/rodi.rtp:29 -#: plugins/rodi.rtp:73 -#: plugins/rodi.rtp:413 -msgid "stop" -msgstr "បញ្ឈប់" - -#: js/FlowBlocks.js:653 -msgid "The Waitfor block will wait until the condition is true." +#: js/blocks/NumberBlocks.js:196 +msgid "The Sqrt block returns the square root." msgstr "" -#: js/FlowBlocks.js:661 -msgid "wait for" +#: js/blocks/NumberBlocks.js:202 +msgid "sqrt" msgstr "" -#: js/FlowBlocks.js:732 -msgid "The Until block will repeat until the condition is true." +#: js/blocks/NumberBlocks.js:248 +msgid "The Abs block returns the absolute value." msgstr "" -#: js/FlowBlocks.js:740 -msgid "until" +#: js/blocks/NumberBlocks.js:254 +msgid "abs" msgstr "" -#: js/FlowBlocks.js:742 -#: js/FlowBlocks.js:822 -msgid "do2" +#: js/blocks/NumberBlocks.js:295 +msgid "The Distance block returns the distance between two points. For example, between the mouse and the center of the screen." msgstr "" -#: js/FlowBlocks.js:812 -msgid "The While block will repeat while the condition is true." +#: js/blocks/NumberBlocks.js:301 +#: plugins/rodi.rtp:310 +msgid "distance" msgstr "" -#: js/FlowBlocks.js:820 -msgid "while" -msgstr "ស" +#: js/blocks/NumberBlocks.js:361 +msgid "The Divide block is used to divide." +msgstr "" -#: js/FlowBlocks.js:903 -#: js/FlowBlocks.js:968 -#: js/FlowBlocks.js:979 -msgid "In this example if the mouse button is pressed a snare drum will play." +#: js/blocks/NumberBlocks.js:441 +msgid "The Multiply block is used to multiply." msgstr "" -#: js/FlowBlocks.js:925 -#: js/FlowBlocks.js:988 -msgid "if" +#: js/blocks/NumberBlocks.js:612 +msgid "The Minus block is used to subtract." msgstr "" -#: js/FlowBlocks.js:927 -#: js/FlowBlocks.js:990 -msgid "then" -msgstr "នោះ" +#: js/blocks/NumberBlocks.js:723 +msgid "The Plus block is used to add." +msgstr "" -#: js/FlowBlocks.js:927 -msgid "else" +#: js/blocks/NumberBlocks.js:849 +msgid "The One-of block returns one of two choices." msgstr "" -#: js/FlowBlocks.js:1025 -msgid "The Forever block will repeat the contained blocks forever." +#: js/blocks/NumberBlocks.js:856 +#: js/blocks/PitchBlocks.js:616 +msgid "one of" msgstr "" -#: js/FlowBlocks.js:1037 -msgid "forever" -msgstr "ជារៀង​រហូត" +#: js/blocks/NumberBlocks.js:858 +msgid "this" +msgstr "" -#: js/FlowBlocks.js:1073 -msgid "The Repeat block will repeat the contained blocks." +#: js/blocks/NumberBlocks.js:858 +msgid "that" msgstr "" -#: js/FlowBlocks.js:1075 -msgid "In this example the note will be played 4 times." +#: js/blocks/NumberBlocks.js:913 +msgid "The Random block returns a random number." msgstr "" -#: js/FlowBlocks.js:1083 -msgid "repeat" -msgstr "ធ្វើម្តង​ទៀត​" +#: js/blocks/NumberBlocks.js:920 +msgid "random" +msgstr "ព្រាវ" -#: js/FlowBlocks.js:1123 -msgid "duplicate factor" +#: js/blocks/NumberBlocks.js:922 +msgid "min" +msgstr "នាទី" + +#: js/blocks/NumberBlocks.js:922 +msgid "max" +msgstr "អតិ" + +#: js/blocks/NumberBlocks.js:986 +msgid "The Number block holds a number." msgstr "" -#: js/PitchBlocks.js:39 -#: js/musicutils.js:722 -#: js/musicutils.js:1117 -#: js/synthutils.js:112 -#.TRANS: square wave -msgid "square" +#: js/blocks/OrnamentBlocks.js:32 +msgid "staccato factor" msgstr "" -#: js/PitchBlocks.js:62 -#: js/ToneBlocks.js:39 -#: js/musicutils.js:723 -#: js/musicutils.js:1118 -#: js/synthutils.js:116 -#.TRANS: triangle wave -msgid "triangle" +#: js/blocks/OrnamentBlocks.js:108 +msgid "slur factor" msgstr "" -#: js/PitchBlocks.js:85 -#: js/musicutils.js:721 -#: js/musicutils.js:1116 -#: js/synthutils.js:110 -#.TRANS: sine wave -msgid "sine" +#: js/blocks/OrnamentBlocks.js:217 +#: js/blocks/OrnamentBlocks.js:309 +#.TRANS: the neighbor refers to a neighboring note, e.g., D is a neighbor of C +msgid "neighbor" msgstr "" -#: js/PitchBlocks.js:108 -#: js/musicutils.js:724 -#: js/musicutils.js:1119 -#: js/synthutils.js:114 -#.TRANS: sawtooth wave -msgid "sawtooth" +#: js/blocks/OrnamentBlocks.js:293 +msgid "The Neighbor block rapidly switches between neighboring pitches." msgstr "" -#: js/PitchBlocks.js:141 -#.TRANS: musical transposition (adjustment of pitch up or down) -msgid "transposition" +#: js/blocks/OrnamentBlocks.js:364 +msgid "glide" msgstr "" -#: js/PitchBlocks.js:168 -#.TRANS: step down one note in current musical scale -msgid "scalar step down" +#: js/blocks/OrnamentBlocks.js:479 +#: js/blocks/OrnamentBlocks.js:643 +msgid "slur" msgstr "" -#: js/PitchBlocks.js:172 -msgid "The Scalar step down block returns the number of semi-tones down to the previous note in the current key and mode." +#: js/blocks/OrnamentBlocks.js:558 +#: js/blocks/OrnamentBlocks.js:710 +#.TRANS: play each note sharply detached from the others +msgid "staccato" msgstr "" -#: js/PitchBlocks.js:190 -#.TRANS: step up one note in current musical scale -msgid "scalar step up" +#: js/blocks/RhythmBlocks.js:182 +#: js/blocks/RhythmBlocks.js:1086 +#: js/blocks/RhythmBlocks.js:1162 +msgid "Note value must be greater than 0." msgstr "" -#: js/PitchBlocks.js:194 -msgid "The Scalar step up block returns the number of semi-tones up to the next note in the current key and mode." +#: js/blocks/RhythmBlocks.js:215 +#: js/blocks/RhythmBlocks.js:278 +#: js/blocks/RhythmBlocks.js:350 +#.TRANS: swing is a rhythmic variation that emphasises the offbeat +msgid "swing" msgstr "" -#: js/PitchBlocks.js:212 -#.TRANS: the change measured in half-steps between the current pitch and the previous pitch -msgid "change in pitch" +#: js/blocks/RhythmBlocks.js:355 +#.TRANS: the amount to shift to the offbeat note +msgid "swing value" msgstr "" -#: js/PitchBlocks.js:216 -msgid "The Change in pitch block is the difference (in half steps) between the current pitch being played and the previous pitch played." +#: js/blocks/RhythmBlocks.js:419 +msgid "The Skip notes block will cause notes to be skipped." msgstr "" -#: js/PitchBlocks.js:243 -#.TRANS: the change measured in scale-steps between the current pitch and the previous pitch -msgid "scalar change in pitch" +#: js/blocks/RhythmBlocks.js:427 +#.TRANS: substitute rests on notes being skipped +msgid "skip notes" msgstr "" -#: js/PitchBlocks.js:250 -#: js/PitchBlocks.js:432 -#: js/PitchBlocks.js:1629 -#: js/DictActions.js:89 -#: js/temperament.js:477 -#: js/temperament.js:481 -#: js/temperament.js:714 -#.TRANS: convert current note to piano key (1-88) -#.TRANS: a mapping of pitch to the 88 piano keys -msgid "pitch number" +#: js/blocks/RhythmBlocks.js:489 +#.TRANS: speed up note duration by some factor, e.g. convert 1/4 to 1/8 notes by using a factor of 2 +msgid "multiply note value" msgstr "" -#: js/PitchBlocks.js:256 -msgid "The Pitch number block is the value of the pitch of the note currently being played." +#: js/blocks/RhythmBlocks.js:542 +msgid "The Tie block works on pairs of notes, combining them into one note." msgstr "" -#: js/PitchBlocks.js:329 -#: js/PitchBlocks.js:433 -#.TRANS: the current pitch expressed in Hertz -msgid "pitch in hertz" +#: js/blocks/RhythmBlocks.js:550 +#.TRANS: tie notes together into one longer note +msgid "tie" msgstr "" -#: js/PitchBlocks.js:334 -msgid "The Pitch in Hertz block is the value in Hertz of the pitch of the note currently being played." +#: js/blocks/RhythmBlocks.js:591 +#: js/blocks/RhythmBlocks.js:671 +#.TRANS: a dotted note is played for 1.5x its value, e.g., 1/8. --> 3/16 +msgid "dot" msgstr "" -#: js/PitchBlocks.js:367 -#: js/DictActions.js:87 -msgid "current pitch" +#: js/blocks/RhythmBlocks.js:619 +#: js/turtleactions/RhythmActions.js:221 +msgid "An argument of -1 results in a note value of 0." msgstr "" -#: js/PitchBlocks.js:373 -msgid "The Current Pitch block is used with the Pitch Converter block. In the example above, current pitch, sol 4, is displayed as 392 hertz." +#: js/blocks/RhythmBlocks.js:661 +msgid "The Dot block extends the duration of a note by 50%." msgstr "" -#: js/PitchBlocks.js:410 -msgid "This block converts the pitch value of the last note played into different formats such as hertz, letter name, pitch number, et al." +#: js/blocks/RhythmBlocks.js:663 +msgid "Eg a dotted quarter note will play for 3/8 (1/4 + 1/8) of a beat." msgstr "" -#: js/PitchBlocks.js:434 -msgid "alphabet" +#: js/blocks/RhythmBlocks.js:765 +#.TRANS: Japanese only: note value block for drum +msgid "note value drum" msgstr "" -#: js/PitchBlocks.js:436 -#.TRANS: Translate as "alphabet class" -msgid "letter class" +#: js/blocks/RhythmBlocks.js:829 +msgid "392 hertz" msgstr "" -#: js/PitchBlocks.js:437 -msgid "solfege class" +#: js/blocks/RhythmBlocks.js:1119 +msgid "The Note block is a container for one or more Pitch blocks." msgstr "" -#: js/PitchBlocks.js:438 -msgid "staff y" +#: js/blocks/RhythmBlocks.js:1121 +msgid "The Note block specifies the duration (note value) of its contents." msgstr "" -#: js/PitchBlocks.js:439 -msgid "solfege syllable" +#: js/blocks/RhythmBlocks.js:1128 +#: js/blocks/PitchBlocks.js:974 +#: js/blocks/PitchBlocks.js:1007 +#: js/blocks/ProgramBlocks.js:1186 +#: js/blocks/ProgramBlocks.js:1227 +#: js/widgets/status.js:190 +#: js/widgets/temperament.js:464 +#: js/widgets/temperament.js:486 +#: js/widgets/temperament.js:496 +#: js/widgets/temperament.js:617 +#: plugins/rodi.rtp:192 +#.TRANS: a musical note consisting of pitch and duration +msgid "note" msgstr "" -#: js/PitchBlocks.js:440 -msgid "pitch class" +#: js/blocks/RhythmBlocks.js:1130 +msgid "value2" msgstr "" -#: js/PitchBlocks.js:441 -msgid "scalar class" +#: js/blocks/RhythmBlocks.js:1200 +msgid "define frequency" msgstr "" -#: js/PitchBlocks.js:443 -msgid "nth degree" +#: js/blocks/RhythmBlocks.js:1218 +#: js/widgets/temperament.js:787 +#: js/widgets/temperament.js:1587 +msgid "octave space" msgstr "" -#: js/PitchBlocks.js:444 -msgid "pitch to shade" +#: js/blocks/SensorsBlocks.js:36 +msgid "The Input block prompts for keyboard input." msgstr "" -#: js/PitchBlocks.js:445 -msgid "pitch to color" +#: js/blocks/SensorsBlocks.js:46 +msgid "input" msgstr "" -#: js/PitchBlocks.js:629 -#: js/musickeyboard.js:565 -#.TRANS: MIDI is a technical standard for electronic music -msgid "MIDI" +#: js/blocks/SensorsBlocks.js:64 +msgid "Input a value" msgstr "" -#: js/PitchBlocks.js:642 -#.TRANS: set an offset associated with the numeric piano keyboard mapping -msgid "set pitch number offset" +#: js/blocks/SensorsBlocks.js:126 +msgid "input value" msgstr "" -#: js/PitchBlocks.js:645 -msgid "The Set pitch number offset block is used to set the offset for mapping pitch numbers to pitch and octave." +#: js/blocks/SensorsBlocks.js:131 +msgid "The Input-value block stores the input." msgstr "" -#: js/PitchBlocks.js:679 -#.TRANS: convert piano key number (1-88) to pitch -msgid "number to pitch" +#: js/blocks/SensorsBlocks.js:238 +msgid "loudness" +msgstr "ភាពឮ" + +#: js/blocks/SensorsBlocks.js:245 +msgid "The Loudness block returns the volume detected by the microphone." msgstr "" -#: js/PitchBlocks.js:682 -msgid "The Number to pitch block will convert a pitch number to a pich name." +#: js/blocks/SensorsBlocks.js:300 +msgid "click" msgstr "" -#: js/PitchBlocks.js:715 -#.TRANS: convert piano key number (1-88) to octave -msgid "number to octave" +#: js/blocks/SensorsBlocks.js:306 +msgid "The Click block triggers an event if a mouse has been clicked." msgstr "" -#: js/PitchBlocks.js:717 -msgid "The Number to octave block will convert a pitch number to an octave." +#: js/blocks/SensorsBlocks.js:313 +msgid "The Click block triggers an event if a turtle has been clicked." msgstr "" -#: js/PitchBlocks.js:726 -msgid "y to pitch" +#: js/blocks/SensorsBlocks.js:342 +msgid "cursor over" msgstr "" -#: js/PitchBlocks.js:729 -msgid "Y to pitch block will convert a staff y position to corresponding pitch notation." +#: js/blocks/SensorsBlocks.js:387 +msgid "cursor out" msgstr "" -#: js/PitchBlocks.js:841 -msgid "accidental selector" +#: js/blocks/SensorsBlocks.js:433 +msgid "cursor button down" msgstr "" -#: js/PitchBlocks.js:844 -msgid "The Accidental selector block is used to choose between double-sharp, sharp, natural, flat, and double-flat." +#: js/blocks/SensorsBlocks.js:477 +msgid "cursor button up" msgstr "" -#: js/PitchBlocks.js:858 -msgid "Pitch can be specified in terms of ni dha pa ma ga re sa." +#: js/blocks/SensorsBlocks.js:521 +#: js/blocks/PenBlocks.js:48 +#: plugins/rodi.rtp:219 +msgid "blue" msgstr "" -#: js/PitchBlocks.js:872 -msgid "Pitch can be specified in terms of C D E F G A B." +#: js/blocks/SensorsBlocks.js:577 +#: js/blocks/PenBlocks.js:64 +#: plugins/rodi.rtp:218 +msgid "green" msgstr "" -#: js/PitchBlocks.js:883 -msgid "solfege" +#: js/blocks/SensorsBlocks.js:633 +#: js/blocks/PenBlocks.js:112 +#: plugins/rodi.rtp:217 +msgid "red" msgstr "" -#: js/PitchBlocks.js:886 -msgid "Pitch can be specified in terms of do re mi fa sol la ti." +#: js/blocks/SensorsBlocks.js:638 +msgid "The Get red block returns the red component of the pixel under the mouse." msgstr "" -#: js/PitchBlocks.js:920 -msgid "The Invert block rotates any contained notes around a target note." +#: js/blocks/SensorsBlocks.js:644 +msgid "The Get red block returns the red component of the pixel under the turtle." msgstr "" -#: js/PitchBlocks.js:927 -#.TRANS: pitch inversion rotates a pitch around another pitch -msgid "invert" +#: js/blocks/SensorsBlocks.js:685 +#: plugins/rodi.rtp:216 +msgid "pixel color" msgstr "" -#: js/PitchBlocks.js:929 -#: js/PitchBlocks.js:935 -#: js/PitchActions.js:727 -#: js/musicutils.js:726 -#: js/musicutils.js:902 -#.TRANS: invert based on even or odd number or musical scale -#.TRANS: even numbers -msgid "even" +#: js/blocks/SensorsBlocks.js:690 +msgid "The Get pixel block returns the color of the pixel under the mouse." msgstr "" -#: js/PitchBlocks.js:935 -#: js/PitchActions.js:729 -#: js/musicutils.js:728 -#: js/musicutils.js:903 -#.TRANS: odd numbers -msgid "odd" +#: js/blocks/SensorsBlocks.js:696 +msgid "The Get pixel block returns the color of the pixel under the turtle." msgstr "" -#: js/PitchBlocks.js:935 -#: js/PitchActions.js:731 -#: js/musicutils.js:729 -#: js/musicutils.js:904 -msgid "scalar" +#: js/blocks/SensorsBlocks.js:758 +msgid "time" +msgstr "ពេល​វេលា" + +#: js/blocks/SensorsBlocks.js:804 +msgid "cursor y" msgstr "" -#: js/PitchBlocks.js:966 -#.TRANS: pitch inversion rotates a pitch around another pitch (odd number) -msgid "invert (odd)" +#: js/blocks/SensorsBlocks.js:809 +msgid "The Cursor Y block returns the vertical position of the mouse." msgstr "" -#: js/PitchBlocks.js:999 -#.TRANS: pitch inversion rotates a pitch around another pitch (even number) -msgid "invert (even)" +#: js/blocks/SensorsBlocks.js:845 +msgid "cursor x" msgstr "" -#: js/PitchBlocks.js:1020 -#.TRANS: register is the octave of the current pitch -msgid "register" +#: js/blocks/SensorsBlocks.js:850 +msgid "The Cursor X block returns the horizontal position of the mouse." msgstr "" -#: js/PitchBlocks.js:1024 -msgid "The Register block provides an easy way to modify the register (octave) of the notes that follow it." +#: js/blocks/SensorsBlocks.js:886 +msgid "mouse button" msgstr "" -#: js/PitchBlocks.js:1074 -msgid "The Semi-tone transposition block will shift the pitches contained inside Note blocks up (or down) by half steps." +#: js/blocks/SensorsBlocks.js:888 +msgid "The Mouse-button block returns True if the mouse button is pressed." msgstr "" -#: js/PitchBlocks.js:1076 -msgid "In the example shown above, sol is shifted up to sol#." +#: js/blocks/SensorsBlocks.js:934 +msgid "to ASCII" msgstr "" -#: js/PitchBlocks.js:1082 -#.TRANS: adjust the amount of shift (up or down) of a pitch -msgid "semi-tone transpose" +#: js/blocks/SensorsBlocks.js:938 +msgid "The To ASCII block converts numbers to letters." msgstr "" -#: js/PitchBlocks.js:1115 -msgid "The Transpose by Ratio block will shift the pitches contained inside Note blocks up (or down) by a ratio" +#: js/blocks/SensorsBlocks.js:1005 +msgid "The Keyboard block returns computer keyboard input." msgstr "" -#: js/PitchBlocks.js:1121 -#.TRANS: adjust the amount of shift (up or down) of a pitch -msgid "transpose by ratio" +#: js/blocks/RhythmBlockPaletteBlocks.js:50 +#: js/blocks/RhythmBlockPaletteBlocks.js:233 +#.TRANS: rhythm block +#.TRANS: translate "rhythm1" as rhythm +msgid "rhythm1" msgstr "" -#: js/PitchBlocks.js:1204 -#.TRANS: down sixth means the note is five scale degrees below current note -msgid "down sixth" +#: js/blocks/RhythmBlockPaletteBlocks.js:70 +#: js/blocks/RhythmBlockPaletteBlocks.js:252 +#: js/blocks/RhythmBlockPaletteBlocks.js:485 +#: js/blocks/RhythmBlockPaletteBlocks.js:554 +#: js/blocks/RhythmBlockPaletteBlocks.js:875 +msgid "number of notes" msgstr "" -#: js/PitchBlocks.js:1223 -#.TRANS: down third means the note is two scale degrees below current note -msgid "down third" +#: js/blocks/RhythmBlockPaletteBlocks.js:126 +msgid "polyphonic rhythm" msgstr "" -#: js/PitchBlocks.js:1242 -#.TRANS: seventh means the note is the six scale degrees above current note -msgid "seventh" +#: js/blocks/RhythmBlockPaletteBlocks.js:219 +msgid "The Rhythm block is used to generate rhythm patterns." msgstr "" -#: js/PitchBlocks.js:1261 -#.TRANS: sixth means the note is the five scale degrees above current note -msgid "sixth" +#: js/blocks/RhythmBlockPaletteBlocks.js:280 +msgid "1/64 note" msgstr "" -#: js/PitchBlocks.js:1280 -#.TRANS: fifth means the note is the four scale degrees above current note -msgid "fifth" +#: js/blocks/RhythmBlockPaletteBlocks.js:304 +msgid "1/32 note" msgstr "" -#: js/PitchBlocks.js:1300 -#.TRANS: fourth means the note is three scale degrees above current note -msgid "fourth" +#: js/blocks/RhythmBlockPaletteBlocks.js:332 +msgid "1/16 note" msgstr "" -#: js/PitchBlocks.js:1319 -#.TRANS: third means the note is two scale degrees above current note -msgid "third" +#: js/blocks/RhythmBlockPaletteBlocks.js:360 +msgid "eighth note" +msgstr "" + +#: js/blocks/RhythmBlockPaletteBlocks.js:388 +msgid "quarter note" msgstr "" -#: js/PitchBlocks.js:1338 -#.TRANS: second means the note is one scale degree above current note -msgid "second" +#: js/blocks/RhythmBlockPaletteBlocks.js:416 +msgid "half note" msgstr "" -#: js/PitchBlocks.js:1379 -msgid "The Scalar transposition block will shift the pitches contained inside Note blocks up (or down) the scale." +#: js/blocks/RhythmBlockPaletteBlocks.js:444 +msgid "whole note" msgstr "" -#: js/PitchBlocks.js:1381 -msgid "In the example shown above, sol is shifted up to la." +#: js/blocks/RhythmBlockPaletteBlocks.js:482 +#: js/blocks/RhythmBlockPaletteBlocks.js:551 +#: js/blocks/RhythmBlockPaletteBlocks.js:602 +#.TRANS: A tuplet is a note value divided into irregular time values. +msgid "tuplet" msgstr "" -#: js/PitchBlocks.js:1388 -#.TRANS: adjust the amount of shift (up or down) of a pitch by musical scale (scalar) steps -msgid "scalar transpose" +#: js/blocks/RhythmBlockPaletteBlocks.js:768 +msgid "septuplet" msgstr "" -#: js/PitchBlocks.js:1423 -msgid "The Accidental block is used to create sharps and flats" +#: js/blocks/RhythmBlockPaletteBlocks.js:796 +msgid "quintuplet" msgstr "" -#: js/PitchBlocks.js:1430 -#.TRANS: An accidental is a modification to a pitch, e.g., sharp or flat. -msgid "accidental override" +#: js/blocks/RhythmBlockPaletteBlocks.js:824 +msgid "triplet" msgstr "" -#: js/PitchBlocks.js:1543 -msgid "The Hertz block (in combination with a Number block) will play a sound at the specified frequency." +#: js/blocks/RhythmBlockPaletteBlocks.js:851 +msgid "simple tuplet" msgstr "" -#: js/PitchBlocks.js:1633 -msgid "The Pitch Number block will play a pitch associated by its number, e.g. 0 for C and 7 for G." +#: js/blocks/RhythmBlockPaletteBlocks.js:861 +msgid "Tuplets are a collection of notes that get scaled to a specific duration." msgstr "" -#: js/PitchBlocks.js:1665 -#: js/PitchBlocks.js:1707 -#.TRANS: a numeric mapping of the notes in an octave based on the musical mode -#.TRANS: a numeric mapping of the notes in an octave based on the musical mode -msgid "nth modal pitch" +#: js/blocks/DrumBlocks.js:59 +msgid "The Noise name block is used to select a noise synthesizer." msgstr "" -#: js/PitchBlocks.js:1668 -msgid "n^th Modal Pitch takes the pattern of pitches in semitones for a mode and makes each point a degree of the mode," +#: js/blocks/DrumBlocks.js:102 +msgid "The Drum name block is used to select a drum." msgstr "" -#: js/PitchBlocks.js:1670 -msgid "starting from 1 and regardless of tonal framework (i.e. not always 8 notes in the octave)" +#: js/blocks/DrumBlocks.js:146 +msgid "The Effects name block is used to select a sound effect." msgstr "" -#: js/PitchBlocks.js:1711 -msgid "N^th Modal Pitch takes a number as an input as the n^th degree for the given mode. 0 is the first position, 1 is the second, -1 is the note before the first etc." +#: js/blocks/DrumBlocks.js:163 +msgid "noise" msgstr "" -#: js/PitchBlocks.js:1713 -msgid "The pitches change according to the mode specified without any need for respellings." +#: js/blocks/DrumBlocks.js:177 +msgid "The Play noise block will generate white, pink, or brown noise." msgstr "" -#: js/PitchBlocks.js:1752 -msgid "Scale Degree is a common convention in music. Scale Degree offers seven possible positions in the scale (1-7) and can be modified via accidentals." +#: js/blocks/DrumBlocks.js:317 +msgid "Replace every instance of a pitch with a drum sound." msgstr "" -#: js/PitchBlocks.js:1754 -msgid "Scale Degree 1 is always the first pitch in a given scale, regardless of octave." +#: js/blocks/DrumBlocks.js:328 +#.TRANS: map a pitch to a drum sound +msgid "map pitch to drum" msgstr "" -#: js/PitchBlocks.js:1776 -#.TRANS: step some number of notes in current musical scale -msgid "scalar step" +#: js/blocks/DrumBlocks.js:395 +msgid "In the example above, a kick drum sound will be played instead of sol." msgstr "" -#: js/PitchBlocks.js:1781 -msgid "The Scalar Step block (in combination with a Number block) will play the next pitch in a scale," +#: js/blocks/DrumBlocks.js:407 +#.TRANS: set the current drum sound for playback +msgid "set drum" msgstr "" -#: js/PitchBlocks.js:1783 -msgid "eg if the last note played was sol, Scalar Step 1 will play la." +#: js/blocks/DrumBlocks.js:451 +msgid "sound effect" msgstr "" -#: js/PitchBlocks.js:1818 -msgid "The Pitch block specifies the pitch name and octave of a note that together determine the frequency of the note." +#: js/blocks/DrumBlocks.js:489 +msgid "You can use multiple Drum blocks within a Note block." msgstr "" -#: js/GraphicsBlocks.js:46 -#: js/DictActions.js:77 -#: js/DictActions.js:155 -#: js/DictActions.js:189 +#: js/blocks/GraphicsBlocks.js:46 +#: js/turtleactions/DictActions.js:77 +#: js/turtleactions/DictActions.js:144 +#: js/turtleactions/DictActions.js:173 msgid "heading" msgstr "ការអាន​ " -#: js/GraphicsBlocks.js:56 +#: js/blocks/GraphicsBlocks.js:56 msgid "The Heading block returns the orientation of the mouse." msgstr "" -#: js/GraphicsBlocks.js:62 +#: js/blocks/GraphicsBlocks.js:62 msgid "The Heading block returns the orientation of the turtle." msgstr "" -#: js/GraphicsBlocks.js:133 +#: js/blocks/GraphicsBlocks.js:133 msgid "The Y block returns the vertical position of the mouse." msgstr "" -#: js/GraphicsBlocks.js:140 +#: js/blocks/GraphicsBlocks.js:140 msgid "The Y block returns the vertical position of the turtle." msgstr "" -#: js/GraphicsBlocks.js:149 +#: js/blocks/GraphicsBlocks.js:149 msgid "y3" msgstr "" -#: js/GraphicsBlocks.js:219 +#: js/blocks/GraphicsBlocks.js:219 msgid "The X block returns the horizontal position of the mouse." msgstr "" -#: js/GraphicsBlocks.js:226 +#: js/blocks/GraphicsBlocks.js:226 msgid "The X block returns the horizontal position of the turtle." msgstr "" -#: js/GraphicsBlocks.js:235 +#: js/blocks/GraphicsBlocks.js:235 msgid "x3" msgstr "" -#: js/GraphicsBlocks.js:295 +#: js/blocks/GraphicsBlocks.js:295 msgid "scroll xy" msgstr "" -#: js/GraphicsBlocks.js:303 +#: js/blocks/GraphicsBlocks.js:303 msgid "The Scroll XY block moves the canvas." msgstr "" -#: js/GraphicsBlocks.js:313 +#: js/blocks/GraphicsBlocks.js:313 msgid "x2" msgstr "" -#: js/GraphicsBlocks.js:313 +#: js/blocks/GraphicsBlocks.js:313 msgid "y2" msgstr "" -#: js/GraphicsBlocks.js:373 -#: js/temperament.js:213 -#: js/temperament.js:241 +#: js/blocks/GraphicsBlocks.js:373 +#: js/widgets/temperament.js:319 +#: js/widgets/temperament.js:347 msgid "clear" msgstr "" -#: js/GraphicsBlocks.js:426 +#: js/blocks/GraphicsBlocks.js:426 msgid "The Control-point 2 block sets the second control point for the Bezier curve." msgstr "" -#: js/GraphicsBlocks.js:433 +#: js/blocks/GraphicsBlocks.js:433 msgid "control point 2" msgstr "" -#: js/GraphicsBlocks.js:436 -#: js/GraphicsBlocks.js:487 -#: js/GraphicsBlocks.js:534 -#: js/GraphicsBlocks.js:750 +#: js/blocks/GraphicsBlocks.js:436 +#: js/blocks/GraphicsBlocks.js:487 +#: js/blocks/GraphicsBlocks.js:534 +#: js/blocks/GraphicsBlocks.js:750 msgid "x1" msgstr "" -#: js/GraphicsBlocks.js:436 -#: js/GraphicsBlocks.js:487 -#: js/GraphicsBlocks.js:534 -#: js/GraphicsBlocks.js:750 +#: js/blocks/GraphicsBlocks.js:436 +#: js/blocks/GraphicsBlocks.js:487 +#: js/blocks/GraphicsBlocks.js:534 +#: js/blocks/GraphicsBlocks.js:750 msgid "y1" msgstr "" -#: js/GraphicsBlocks.js:477 +#: js/blocks/GraphicsBlocks.js:477 msgid "The Control-point 1 block sets the first control point for the Bezier curve." msgstr "" -#: js/GraphicsBlocks.js:484 +#: js/blocks/GraphicsBlocks.js:484 msgid "control point 1" msgstr "" -#: js/GraphicsBlocks.js:527 +#: js/blocks/GraphicsBlocks.js:527 msgid "The Bezier block draws a Bezier curve." msgstr "" -#: js/GraphicsBlocks.js:531 +#: js/blocks/GraphicsBlocks.js:531 msgid "bezier" msgstr "" -#: js/GraphicsBlocks.js:592 +#: js/blocks/GraphicsBlocks.js:592 msgid "The Arc block moves the turtle in an arc." msgstr "" -#: js/GraphicsBlocks.js:600 +#: js/blocks/GraphicsBlocks.js:600 msgid "arc" msgstr "ធ្នូ" -#: js/GraphicsBlocks.js:603 +#: js/blocks/GraphicsBlocks.js:603 msgid "angle" msgstr "មុំ" -#: js/GraphicsBlocks.js:603 +#: js/blocks/GraphicsBlocks.js:603 msgid "radius" msgstr "កាំ" -#: js/GraphicsBlocks.js:620 -#: js/GraphicsBlocks.js:767 -#: js/GraphicsBlocks.js:1010 -#: js/GraphicsBlocks.js:1093 +#: js/blocks/GraphicsBlocks.js:620 +#: js/blocks/GraphicsBlocks.js:767 +#: js/blocks/GraphicsBlocks.js:1010 +#: js/blocks/GraphicsBlocks.js:1093 msgid "Value must be within -5000 to 5000 when Wrap Mode is off." msgstr "" -#: js/GraphicsBlocks.js:622 -#: js/GraphicsBlocks.js:769 -#: js/GraphicsBlocks.js:1012 -#: js/GraphicsBlocks.js:1095 +#: js/blocks/GraphicsBlocks.js:622 +#: js/blocks/GraphicsBlocks.js:769 +#: js/blocks/GraphicsBlocks.js:1012 +#: js/blocks/GraphicsBlocks.js:1095 msgid "Value must be within -20000 to 20000 when Wrap Mode is on." msgstr "" -#: js/GraphicsBlocks.js:660 +#: js/blocks/GraphicsBlocks.js:660 msgid "set heading" msgstr "" -#: js/GraphicsBlocks.js:673 +#: js/blocks/GraphicsBlocks.js:673 msgid "The Set heading block sets the heading of the turtle." msgstr "" -#: js/GraphicsBlocks.js:733 +#: js/blocks/GraphicsBlocks.js:733 msgid "The Set XY block moves the mouse to a specific position on the screen." msgstr "" -#: js/GraphicsBlocks.js:739 +#: js/blocks/GraphicsBlocks.js:739 msgid "The Set XY block moves the turtle to a specific position on the screen." msgstr "" -#: js/GraphicsBlocks.js:747 +#: js/blocks/GraphicsBlocks.js:747 msgid "set xy" msgstr "" -#: js/GraphicsBlocks.js:819 +#: js/blocks/GraphicsBlocks.js:819 msgid "The Right block turns the mouse to the right." msgstr "" -#: js/GraphicsBlocks.js:826 +#: js/blocks/GraphicsBlocks.js:826 msgid "The Right block turns the turtle to the right." msgstr "" -#: js/GraphicsBlocks.js:835 +#: js/blocks/GraphicsBlocks.js:835 msgid "right1" msgstr "" -#: js/GraphicsBlocks.js:835 +#: js/blocks/GraphicsBlocks.js:835 #: plugins/rodi.rtp:77 #: plugins/rodi.rtp:340 #: plugins/rodi.rtp:375 msgid "right" msgstr "ស្តាំ" -#: js/GraphicsBlocks.js:899 +#: js/blocks/GraphicsBlocks.js:899 msgid "The Left block turns the mouse to the left." msgstr "" -#: js/GraphicsBlocks.js:906 +#: js/blocks/GraphicsBlocks.js:906 msgid "The Left block turns the turtle to the left." msgstr "" -#: js/GraphicsBlocks.js:915 +#: js/blocks/GraphicsBlocks.js:915 msgid "left1" msgstr "" -#: js/GraphicsBlocks.js:915 +#: js/blocks/GraphicsBlocks.js:915 #: plugins/rodi.rtp:79 #: plugins/rodi.rtp:339 #: plugins/rodi.rtp:362 msgid "left" msgstr "ឆ្វេង" -#: js/GraphicsBlocks.js:967 -#: js/temperament.js:734 -#: js/temperament.js:933 +#: js/blocks/GraphicsBlocks.js:967 +#: js/widgets/temperament.js:875 +#: js/widgets/temperament.js:1078 #: plugins/rodi.rtp:69 #: plugins/rodi.rtp:387 msgid "back" msgstr "ថយ​ក្រោយ" -#: js/GraphicsBlocks.js:976 +#: js/blocks/GraphicsBlocks.js:976 msgid "The Back block moves the mouse backward." msgstr "" -#: js/GraphicsBlocks.js:983 +#: js/blocks/GraphicsBlocks.js:983 msgid "The Back block moves the turtle backward." msgstr "" -#: js/GraphicsBlocks.js:1050 +#: js/blocks/GraphicsBlocks.js:1050 #: plugins/rodi.rtp:71 #: plugins/rodi.rtp:400 msgid "forward" msgstr "បញ្ជូនបន្ត" -#: js/GraphicsBlocks.js:1059 +#: js/blocks/GraphicsBlocks.js:1059 msgid "The Forward block moves the mouse forward." msgstr "" -#: js/GraphicsBlocks.js:1066 +#: js/blocks/GraphicsBlocks.js:1066 msgid "The Forward block moves the turtle forward." msgstr "" -#: js/GraphicsBlocks.js:1154 -#: js/GraphicsBlocks.js:1172 +#: js/blocks/GraphicsBlocks.js:1154 +#: js/blocks/GraphicsBlocks.js:1172 msgid "wrap" msgstr "" -#: js/OrnamentBlocks.js:32 -msgid "staccato factor" -msgstr "" - -#: js/OrnamentBlocks.js:108 -msgid "slur factor" -msgstr "" - -#: js/OrnamentBlocks.js:217 -#: js/OrnamentBlocks.js:309 -#.TRANS: the neighbor refers to a neighboring note, e.g., D is a neighbor of C -msgid "neighbor" -msgstr "" - -#: js/OrnamentBlocks.js:293 -msgid "The Neighbor block rapidly switches between neighboring pitches." -msgstr "" - -#: js/OrnamentBlocks.js:364 -msgid "glide" -msgstr "" - -#: js/OrnamentBlocks.js:479 -#: js/OrnamentBlocks.js:643 -msgid "slur" -msgstr "" - -#: js/OrnamentBlocks.js:558 -#: js/OrnamentBlocks.js:710 -#.TRANS: play each note sharply detached from the others -msgid "staccato" -msgstr "" - -#: js/PenBlocks.js:24 +#: js/blocks/PenBlocks.js:30 msgid "purple" msgstr "" -#: js/PenBlocks.js:37 -#: js/SensorsBlocks.js:521 -#: plugins/rodi.rtp:219 -msgid "blue" -msgstr "" - -#: js/PenBlocks.js:50 -#: js/SensorsBlocks.js:577 -#: plugins/rodi.rtp:218 -msgid "green" -msgstr "" - -#: js/PenBlocks.js:63 +#: js/blocks/PenBlocks.js:80 msgid "yellow" msgstr "" -#: js/PenBlocks.js:76 +#: js/blocks/PenBlocks.js:96 #: plugins/nutrition.rtp:164 msgid "orange" msgstr "ពណ៌​ទឹក​ក្រូច​" -#: js/PenBlocks.js:89 -#: js/SensorsBlocks.js:633 -#: plugins/rodi.rtp:217 -msgid "red" -msgstr "" - -#: js/PenBlocks.js:102 +#: js/blocks/PenBlocks.js:128 msgid "white" msgstr "" -#: js/PenBlocks.js:115 +#: js/blocks/PenBlocks.js:144 msgid "black" msgstr "" -#: js/PenBlocks.js:128 +#: js/blocks/PenBlocks.js:163 msgid "begin fill" msgstr "" -#: js/PenBlocks.js:143 +#: js/blocks/PenBlocks.js:190 msgid "end fill" msgstr "" -#: js/PenBlocks.js:159 -#: js/PenBlocks.js:386 +#: js/blocks/PenBlocks.js:212 +#: js/blocks/PenBlocks.js:560 #.TRANS: set the background color msgid "background" msgstr "" -#: js/PenBlocks.js:206 -#: js/DictActions.js:71 -#: js/DictActions.js:149 -#: js/DictActions.js:186 +#: js/blocks/PenBlocks.js:274 +#: js/turtleactions/DictActions.js:71 +#: js/turtleactions/DictActions.js:138 +#: js/turtleactions/DictActions.js:170 msgid "grey" msgstr "" -#: js/PenBlocks.js:210 +#: js/blocks/PenBlocks.js:282 msgid "The Grey block returns the current pen grey value." msgstr "" -#: js/PenBlocks.js:243 -#: js/DictActions.js:69 -#: js/DictActions.js:147 -#: js/DictActions.js:185 +#: js/blocks/PenBlocks.js:340 +#: js/turtleactions/DictActions.js:69 +#: js/turtleactions/DictActions.js:136 +#: js/turtleactions/DictActions.js:169 msgid "shade" msgstr "ស្រមោល​" -#: js/PenBlocks.js:247 +#: js/blocks/PenBlocks.js:347 msgid "The Shade block returns the current pen shade value." msgstr "" -#: js/PenBlocks.js:280 -#: js/DictActions.js:67 -#: js/DictActions.js:145 -#: js/DictActions.js:184 +#: js/blocks/PenBlocks.js:405 +#: js/turtleactions/DictActions.js:67 +#: js/turtleactions/DictActions.js:134 +#: js/turtleactions/DictActions.js:168 msgid "color" msgstr "ពណ៌" -#: js/PenBlocks.js:285 +#: js/blocks/PenBlocks.js:415 msgid "The Color block returns the current pen color." msgstr "" -#: js/PenBlocks.js:318 -#: js/DictActions.js:73 -#: js/DictActions.js:151 -#: js/DictActions.js:187 +#: js/blocks/PenBlocks.js:470 +#: js/turtleactions/DictActions.js:73 +#: js/turtleactions/DictActions.js:140 +#: js/turtleactions/DictActions.js:171 msgid "pen size" msgstr "" -#: js/PenBlocks.js:322 +#: js/blocks/PenBlocks.js:474 msgid "The Pen size block returns the current pen size value." msgstr "" -#: js/PenBlocks.js:355 +#: js/blocks/PenBlocks.js:513 msgid "set font" msgstr "" -#: js/PenBlocks.js:358 +#: js/blocks/PenBlocks.js:518 msgid "The Set font block sets the font used by the Show block." msgstr "" -#: js/PenBlocks.js:391 +#: js/blocks/PenBlocks.js:567 msgid "The Background block sets the window background color." msgstr "" -#: js/PenBlocks.js:408 +#: js/blocks/PenBlocks.js:598 msgid "The Hollow line block creates a line with a hollow center." msgstr "" -#: js/PenBlocks.js:415 +#: js/blocks/PenBlocks.js:606 #.TRANS: draw a line logo has a hollow space down its center msgid "hollow line" msgstr "" -#: js/PenBlocks.js:462 +#: js/blocks/PenBlocks.js:675 msgid "The Fill block fills in a shape with a color." msgstr "" -#: js/PenBlocks.js:470 +#: js/blocks/PenBlocks.js:684 #.TRANS: fill in as a solid color msgid "fill" msgstr "" -#: js/PenBlocks.js:527 +#: js/blocks/PenBlocks.js:761 #.TRANS: raise up the pen so logo it does not draw when it is moved msgid "pen up" msgstr "" -#: js/PenBlocks.js:532 +#: js/blocks/PenBlocks.js:768 msgid "The Pen-up block raises the pen so that it does not draw." msgstr "" -#: js/PenBlocks.js:552 +#: js/blocks/PenBlocks.js:802 #.TRANS: put down the pen so logo it draws when it is moved msgid "pen down" msgstr "" -#: js/PenBlocks.js:557 +#: js/blocks/PenBlocks.js:810 msgid "The Pen-down block lowers the pen so that it draws." msgstr "" -#: js/PenBlocks.js:577 +#: js/blocks/PenBlocks.js:844 #.TRANS: set the width of the line drawn by the pen msgid "set pen size" msgstr "" -#: js/PenBlocks.js:583 +#: js/blocks/PenBlocks.js:854 msgid "The Set-pen-size block changes the size of the pen." msgstr "" -#: js/PenBlocks.js:623 +#: js/blocks/PenBlocks.js:913 #.TRANS: set degree of translucence of the pen color msgid "set translucency" msgstr "" -#: js/PenBlocks.js:627 +#: js/blocks/PenBlocks.js:921 msgid "The Set translucency block changes the opacity of the pen." msgstr "" -#: js/PenBlocks.js:668 +#: js/blocks/PenBlocks.js:981 msgid "set hue" msgstr "" -#: js/PenBlocks.js:672 +#: js/blocks/PenBlocks.js:989 msgid "The Set hue block changes the color of the pen." msgstr "" -#: js/PenBlocks.js:711 +#: js/blocks/PenBlocks.js:1047 msgid "set shade" msgstr "" -#: js/PenBlocks.js:717 +#: js/blocks/PenBlocks.js:1057 msgid "The Set-shade block changes the pen color from dark to light." msgstr "" -#: js/PenBlocks.js:757 +#: js/blocks/PenBlocks.js:1111 #.TRANS: set the level of vividness of the pen color msgid "set grey" msgstr "" -#: js/PenBlocks.js:761 +#: js/blocks/PenBlocks.js:1119 msgid "The Set grey block changes the vividness of the pen color." msgstr "" -#: js/PenBlocks.js:800 +#: js/blocks/PenBlocks.js:1172 msgid "set color" msgstr "កំណត់​ពណ៌" -#: js/PenBlocks.js:806 +#: js/blocks/PenBlocks.js:1182 msgid "The Set-color block changes the pen color." msgstr "" -#: js/VolumeBlocks.js:35 -msgid "synth volume" -msgstr "" - -#: js/VolumeBlocks.js:39 -msgid "The Synth volume block returns the current volume of the current synthesizer." -msgstr "" - -#: js/VolumeBlocks.js:47 -#: js/musicutils.js:730 -#: js/synthutils.js:56 -#.TRANS: musical instrument -msgid "piano" -msgstr "" - -#: js/VolumeBlocks.js:105 -msgid "master volume" -msgstr "" - -#: js/VolumeBlocks.js:109 -msgid "The Master volume block returns the master volume." -msgstr "" - -#: js/VolumeBlocks.js:355 -#: js/VolumeBlocks.js:524 -msgid "set synth volume" -msgstr "" - -#: js/VolumeBlocks.js:362 -#: js/VolumeBlocks.js:545 -msgid "synth" -msgstr "" - -#: js/VolumeBlocks.js:403 -#: js/VolumeBlocks.js:577 -#: js/VolumeBlocks.js:740 -#: js/VolumeActions.js:173 -msgid "Setting volume to 0." -msgstr "" - -#: js/VolumeBlocks.js:440 -msgid "Synth not found" -msgstr "" - -#: js/VolumeBlocks.js:494 -msgid "set drum volume" -msgstr "" - -#: js/VolumeBlocks.js:530 -msgid "The Set synth volume block will change the volume of a particular synth," -msgstr "" - -#: js/VolumeBlocks.js:532 -msgid "eg guitar violin snare drum etc." -msgstr "" - -#: js/VolumeBlocks.js:534 -msgid "The default volume is 50." -msgstr "" - -#: js/VolumeBlocks.js:536 -msgid "The range is 0 for silence to 100 for full volume." -msgstr "" - -#: js/VolumeBlocks.js:597 -msgid "set panning" -msgstr "" - -#: js/VolumeBlocks.js:603 -msgid "The Set Panning block sets the panning for all synthesizers." -msgstr "" - -#: js/VolumeBlocks.js:625 -msgid "Warning: Sound is coming out from only the left or right side." -msgstr "" - -#: js/VolumeBlocks.js:647 -#: js/VolumeBlocks.js:695 -msgid "set master volume" -msgstr "" - -#: js/VolumeBlocks.js:653 -msgid "The Set master volume block sets the volume for all synthesizers." -msgstr "" - -#: js/VolumeBlocks.js:784 -msgid "The Set relative volume block changes the volume of the contained notes." -msgstr "" - -#: js/VolumeBlocks.js:791 -msgid "set relative volume" -msgstr "" - -#: js/VolumeBlocks.js:857 -msgid "decrescendo" -msgstr "" - -#: js/VolumeBlocks.js:921 -msgid "crescendo" -msgstr "" - -#: js/ToneBlocks.js:34 -msgid "oscillator" -msgstr "" - -#: js/ToneBlocks.js:44 -#: js/timbre.js:1562 -#.TRANS: Partials refers to the number of sine waves combined into the sound. -msgid "partials" -msgstr "" - -#: js/ToneBlocks.js:76 -msgid "You are adding multiple oscillator blocks." -msgstr "" - -#: js/ToneBlocks.js:144 -#: js/timbre.js:1225 -#.TRANS: a duo synthesizer combines a synth with a sequencer -msgid "duo synth" -msgstr "" - -#: js/ToneBlocks.js:149 -msgid "The Duo synth block is a duo-frequency modulator used to define a timbre." -msgstr "" - -#: js/ToneBlocks.js:157 -#: js/timbre.js:1476 -msgid "vibrato rate" -msgstr "" - -#: js/ToneBlocks.js:157 -msgid "vibrato intensity" -msgstr "" - -#: js/ToneBlocks.js:185 -#: js/timbre.js:1221 -#.TRANS: AM (amplitude modulation) synthesizer -msgid "AM synth" -msgstr "" - -#: js/ToneBlocks.js:189 -msgid "The AM synth block is an amplitude modulator used to define a timbre." -msgstr "" - -#: js/ToneBlocks.js:224 -#: js/timbre.js:1223 -#.TRANS: FM (frequency modulation) synthesizer -msgid "FM synth" -msgstr "" - -#: js/ToneBlocks.js:228 -msgid "The FM synth block is a frequency modulator used to define a timbre." +#: js/blocks/PitchBlocks.js:141 +#.TRANS: musical transposition (adjustment of pitch up or down) +msgid "transposition" msgstr "" -#: js/ToneBlocks.js:262 -msgid "partial" +#: js/blocks/PitchBlocks.js:168 +#.TRANS: step down one note in current musical scale +msgid "scalar step down" msgstr "" -#: js/ToneBlocks.js:265 -msgid "The Partial block is used to specify a weight for a specific partial harmonic." +#: js/blocks/PitchBlocks.js:172 +msgid "The Scalar step down block returns the number of semi-tones down to the previous note in the current key and mode." msgstr "" -#: js/ToneBlocks.js:284 -#.TRANS: partials are weighted components in a harmonic series -msgid "Partial weight must be between 0 and 1." +#: js/blocks/PitchBlocks.js:190 +#.TRANS: step up one note in current musical scale +msgid "scalar step up" msgstr "" -#: js/ToneBlocks.js:297 -#.TRANS: partials are weighted components in a harmonic series -msgid "Partial block should be used inside of a Weighted-partials block." +#: js/blocks/PitchBlocks.js:194 +msgid "The Scalar step up block returns the number of semi-tones up to the next note in the current key and mode." msgstr "" -#: js/ToneBlocks.js:325 -#.TRANS: partials are weighted components in a harmonic series -msgid "weighted partials" +#: js/blocks/PitchBlocks.js:212 +#.TRANS: the change measured in half-steps between the current pitch and the previous pitch +msgid "change in pitch" msgstr "" -#: js/ToneBlocks.js:383 -msgid "The Harmonic block will add harmonics to the contained notes." +#: js/blocks/PitchBlocks.js:216 +msgid "The Change in pitch block is the difference (in half steps) between the current pitch being played and the previous pitch played." msgstr "" -#: js/ToneBlocks.js:390 -#.TRANS: A harmonic is an overtone. -msgid "harmonic" +#: js/blocks/PitchBlocks.js:243 +#.TRANS: the change measured in scale-steps between the current pitch and the previous pitch +msgid "scalar change in pitch" msgstr "" -#: js/ToneBlocks.js:431 -msgid "The Distortion block adds distortion to the pitch." +#: js/blocks/PitchBlocks.js:250 +#: js/blocks/PitchBlocks.js:432 +#: js/blocks/PitchBlocks.js:1667 +#: js/turtleactions/DictActions.js:89 +#: js/widgets/temperament.js:610 +#: js/widgets/temperament.js:614 +#: js/widgets/temperament.js:855 +#.TRANS: convert current note to piano key (1-88) +#.TRANS: a mapping of pitch to the 88 piano keys +msgid "pitch number" msgstr "" -#: js/ToneBlocks.js:438 -#: js/timbre.js:2100 -#.TRANS: distortion is an alteration in the sound -msgid "distortion" +#: js/blocks/PitchBlocks.js:256 +msgid "The Pitch number block is the value of the pitch of the note currently being played." msgstr "" -#: js/ToneBlocks.js:487 -msgid "The Tremolo block adds a wavering effect." +#: js/blocks/PitchBlocks.js:329 +#: js/blocks/PitchBlocks.js:433 +#.TRANS: the current pitch expressed in Hertz +msgid "pitch in hertz" msgstr "" -#: js/ToneBlocks.js:495 -#: js/timbre.js:2092 -#.TRANS: a wavering effect in a musical tone -msgid "tremolo" +#: js/blocks/PitchBlocks.js:334 +msgid "The Pitch in Hertz block is the value in Hertz of the pitch of the note currently being played." msgstr "" -#: js/ToneBlocks.js:500 -#: js/ToneBlocks.js:569 -#: js/ToneBlocks.js:630 -#: js/ToneBlocks.js:689 -#: js/timbre.js:2134 -#: js/timbre.js:2222 -#: js/timbre.js:2317 -#: js/timbre.js:2419 -#.TRANS: rate at which tremolo wavers -msgid "rate" +#: js/blocks/PitchBlocks.js:367 +#: js/turtleactions/DictActions.js:87 +msgid "current pitch" msgstr "" -#: js/ToneBlocks.js:502 -#: js/ToneBlocks.js:630 -#: js/timbre.js:2137 -#: js/timbre.js:2328 -#.TRANS: amplitude of tremolo waver -msgid "depth" +#: js/blocks/PitchBlocks.js:373 +msgid "The Current Pitch block is used with the Pitch Converter block. In the example above, current pitch, sol 4, is displayed as 392 hertz." msgstr "" -#: js/ToneBlocks.js:559 -msgid "The Phaser block adds a sweeping sound." +#: js/blocks/PitchBlocks.js:410 +msgid "This block converts the pitch value of the last note played into different formats such as hertz, letter name, pitch number, et al." msgstr "" -#: js/ToneBlocks.js:566 -#: js/timbre.js:2098 -#.TRANS: alter the phase of the sound -msgid "phaser" +#: js/blocks/PitchBlocks.js:434 +msgid "alphabet" msgstr "" -#: js/ToneBlocks.js:569 -#: js/timbre.js:2422 -msgid "octaves" +#: js/blocks/PitchBlocks.js:436 +#.TRANS: Translate as "alphabet class" +msgid "letter class" msgstr "" -#: js/ToneBlocks.js:569 -#: js/timbre.js:2425 -msgid "base frequency" +#: js/blocks/PitchBlocks.js:437 +msgid "solfege class" msgstr "" -#: js/ToneBlocks.js:619 -msgid "The Chorus block adds a chorus effect." +#: js/blocks/PitchBlocks.js:438 +msgid "staff y" msgstr "" -#: js/ToneBlocks.js:627 -#: js/timbre.js:2096 -#.TRANS: musical effect to simulate a choral sound -msgid "chorus" +#: js/blocks/PitchBlocks.js:439 +msgid "solfege syllable" msgstr "" -#: js/ToneBlocks.js:630 -msgid "delay" +#: js/blocks/PitchBlocks.js:440 +msgid "pitch class" msgstr "" -#: js/ToneBlocks.js:678 -msgid "The Vibrato block adds a rapid, slight variation in pitch." +#: js/blocks/PitchBlocks.js:441 +msgid "scalar class" msgstr "" -#: js/ToneBlocks.js:686 -#: js/timbre.js:2094 -#.TRANS: a rapid, slight variation in pitch -msgid "vibrato" +#: js/blocks/PitchBlocks.js:443 +msgid "nth degree" msgstr "" -#: js/ToneBlocks.js:689 -#: js/timbre.js:2221 -msgid "intensity" +#: js/blocks/PitchBlocks.js:444 +msgid "pitch to shade" msgstr "" -#: js/ToneBlocks.js:733 -#.TRANS: select synthesizer -msgid "set synth" +#: js/blocks/PitchBlocks.js:445 +msgid "pitch to color" msgstr "" -#: js/ToneBlocks.js:804 -msgid "synth name" +#: js/blocks/PitchBlocks.js:629 +#: js/widgets/musickeyboard.js:735 +#.TRANS: MIDI is a technical standard for electronic music +msgid "MIDI" msgstr "" -#: js/ToneBlocks.js:842 -msgid "set default instrument" +#: js/blocks/PitchBlocks.js:642 +#.TRANS: set an offset associated with the numeric piano keyboard mapping +msgid "set pitch number offset" msgstr "" -#: js/ToneBlocks.js:895 -#: js/ToneBlocks.js:943 -#.TRANS: set the characteristics of a custom instrument -msgid "set instrument" +#: js/blocks/PitchBlocks.js:645 +msgid "The Set pitch number offset block is used to set the offset for mapping pitch numbers to pitch and octave." msgstr "" -#: js/ToneBlocks.js:898 -#: js/ToneBlocks.js:926 -#: js/ToneBlocks.js:932 -msgid "The Set instrument block selects a voice for the synthesizer," +#: js/blocks/PitchBlocks.js:679 +#.TRANS: convert piano key number (1-88) to pitch +msgid "number to pitch" msgstr "" -#: js/ToneBlocks.js:900 -#: js/ToneBlocks.js:934 -msgid "eg guitar piano violin or cello." +#: js/blocks/PitchBlocks.js:682 +msgid "The Number to pitch block will convert a pitch number to a pich name." msgstr "" -#: js/ToneBlocks.js:1015 -msgid "Import a sound file to use as an instrument and set its pitch center." +#: js/blocks/PitchBlocks.js:715 +#.TRANS: convert piano key number (1-88) to octave +msgid "number to octave" msgstr "" -#: js/ToneBlocks.js:1110 -msgid "Upload a sound file to connect with the sample block." +#: js/blocks/PitchBlocks.js:717 +msgid "The Number to octave block will convert a pitch number to an octave." msgstr "" -#: js/MeterBlocks.js:34 -#.TRANS: musical meter (time signature), e.g., 4:4 -msgid "current meter" +#: js/blocks/PitchBlocks.js:726 +msgid "y to pitch" msgstr "" -#: js/MeterBlocks.js:85 -#.TRANS: number of beats per minute -msgid "beat factor" +#: js/blocks/PitchBlocks.js:729 +msgid "Y to pitch block will convert a staff y position to corresponding pitch notation." msgstr "" -#: js/MeterBlocks.js:161 -msgid "The Beats per minute block returns the current beats per minute." +#: js/blocks/PitchBlocks.js:841 +msgid "accidental selector" msgstr "" -#: js/MeterBlocks.js:169 -#: js/status.js:152 -#.TRANS: number of beats played per minute -msgid "beats per minute2" +#: js/blocks/PitchBlocks.js:844 +msgid "The Accidental selector block is used to choose between double-sharp, sharp, natural, flat, and double-flat." msgstr "" -#: js/MeterBlocks.js:169 -#: js/MeterBlocks.js:1056 -#: js/MeterBlocks.js:1133 -#: js/MeterBlocks.js:1211 -#.TRANS: sets tempo by defining a beat and beats per minute -msgid "beats per minute" +#: js/blocks/PitchBlocks.js:858 +msgid "Pitch can be specified in terms of ni dha pa ma ga re sa." msgstr "" -#: js/MeterBlocks.js:233 -#.TRANS: count of current musical measure in meter -msgid "measure count" +#: js/blocks/PitchBlocks.js:872 +msgid "Pitch can be specified in terms of C D E F G A B." msgstr "" -#: js/MeterBlocks.js:241 -msgid "The Measure count block returns the current measure." +#: js/blocks/PitchBlocks.js:884 +msgid "solfege" msgstr "" -#: js/MeterBlocks.js:290 -#.TRANS: count of current beat in the meter -msgid "beat count" +#: js/blocks/PitchBlocks.js:887 +msgid "Pitch can be specified in terms of do re mi fa sol la ti." msgstr "" -#: js/MeterBlocks.js:300 -#: js/MeterBlocks.js:311 -#: js/MeterBlocks.js:565 -#: js/MeterBlocks.js:576 -msgid "The Beat count block is the number of the current beat," +#: js/blocks/PitchBlocks.js:922 +msgid "The Invert block rotates any contained notes around a target note." msgstr "" -#: js/MeterBlocks.js:313 -#: js/MeterBlocks.js:578 -msgid "eg 1, 2, 3, or 4." +#: js/blocks/PitchBlocks.js:929 +#.TRANS: pitch inversion rotates a pitch around another pitch +msgid "invert" msgstr "" -#: js/MeterBlocks.js:368 -#.TRANS: count the number of notes -msgid "sum note values" +#: js/blocks/PitchBlocks.js:968 +#.TRANS: pitch inversion rotates a pitch around another pitch (odd number) +msgid "invert (odd)" msgstr "" -#: js/MeterBlocks.js:376 -#: js/MeterBlocks.js:440 -msgid "The Note counter block can be used to count the number of contained notes." +#: js/blocks/PitchBlocks.js:1001 +#.TRANS: pitch inversion rotates a pitch around another pitch (even number) +msgid "invert (even)" msgstr "" -#: js/MeterBlocks.js:432 -#.TRANS: count the number of notes -msgid "note counter" +#: js/blocks/PitchBlocks.js:1022 +#.TRANS: register is the octave of the current pitch +msgid "register" msgstr "" -#: js/MeterBlocks.js:496 -#.TRANS: number of whole notes that have been played -msgid "whole notes played" +#: js/blocks/PitchBlocks.js:1026 +msgid "The Register block provides an easy way to modify the register (octave) of the notes that follow it." msgstr "" -#: js/MeterBlocks.js:505 -msgid "The Whole notes played block returns the total number of whole notes played." +#: js/blocks/PitchBlocks.js:1047 +#.TRANS: cents are units used to specify the ratio between pitches. There are 100 cents between successive notes. +msgid "50 cents" msgstr "" -#: js/MeterBlocks.js:555 -#: js/DictActions.js:83 -#.TRANS: number of notes that have been played -msgid "notes played" +#: js/blocks/PitchBlocks.js:1102 +msgid "The Semi-tone transposition block will shift the pitches contained inside Note blocks up (or down) by half steps." msgstr "" -#: js/MeterBlocks.js:653 -msgid "The No clock block decouples the notes from the master clock." +#: js/blocks/PitchBlocks.js:1104 +msgid "In the example shown above, sol is shifted up to sol#." msgstr "" -#: js/MeterBlocks.js:661 -#.TRANS: don't lock notes to master clock -msgid "no clock" +#: js/blocks/PitchBlocks.js:1110 +#.TRANS: adjust the amount of shift (up or down) of a pitch +msgid "semi-tone transpose" msgstr "" -#: js/MeterBlocks.js:700 -msgid "on weak beat do" +#: js/blocks/PitchBlocks.js:1143 +msgid "The Transpose by Ratio block will shift the pitches contained inside Note blocks up (or down) by a ratio" msgstr "" -#: js/MeterBlocks.js:705 -msgid "The On-weak-beat block lets you specify actions to take on weak (off) beats." +#: js/blocks/PitchBlocks.js:1149 +#.TRANS: adjust the amount of shift (up or down) of a pitch +msgid "transpose by ratio" msgstr "" -#: js/MeterBlocks.js:750 -msgid "on strong beat" +#: js/blocks/PitchBlocks.js:1232 +#.TRANS: down sixth means the note is five scale degrees below current note +msgid "down sixth" msgstr "" -#: js/MeterBlocks.js:758 -msgid "The On-strong-beat block lets you specify actions to take on specified beats." +#: js/blocks/PitchBlocks.js:1251 +#.TRANS: down third means the note is two scale degrees below current note +msgid "down third" msgstr "" -#: js/MeterBlocks.js:769 -msgid "beat" +#: js/blocks/PitchBlocks.js:1270 +#.TRANS: seventh means the note is the six scale degrees above current note +msgid "seventh" msgstr "" -#: js/MeterBlocks.js:813 -msgid "on every beat do" +#: js/blocks/PitchBlocks.js:1289 +#.TRANS: sixth means the note is the five scale degrees above current note +msgid "sixth" msgstr "" -#: js/MeterBlocks.js:821 -msgid "The On-every-beat block lets you specify actions to take on every beat." +#: js/blocks/PitchBlocks.js:1308 +#.TRANS: fifth means the note is the four scale degrees above current note +msgid "fifth" msgstr "" -#: js/MeterBlocks.js:874 -msgid "on every note do" +#: js/blocks/PitchBlocks.js:1328 +#.TRANS: fourth means the note is three scale degrees above current note +msgid "fourth" msgstr "" -#: js/MeterBlocks.js:882 -msgid "The On-every-note block lets you specify actions to take on every note." +#: js/blocks/PitchBlocks.js:1347 +#.TRANS: third means the note is two scale degrees above current note +msgid "third" msgstr "" -#: js/MeterBlocks.js:928 -#: js/MeterBlocks.js:999 -#.TRANS: sets tempo by defining a beat and beats per minute -msgid "master beats per minute" +#: js/blocks/PitchBlocks.js:1366 +#.TRANS: second means the note is one scale degree above current note +msgid "second" msgstr "" -#: js/MeterBlocks.js:952 -#: js/MeterBlocks.js:1078 -#: js/MeterBlocks.js:1135 -msgid "bpm" +#: js/blocks/PitchBlocks.js:1407 +msgid "The Scalar transposition block will shift the pitches contained inside Note blocks up (or down) the scale." msgstr "" -#: js/MeterBlocks.js:952 -#: js/MeterBlocks.js:1078 -#: js/MeterBlocks.js:1135 -msgid "beat value" +#: js/blocks/PitchBlocks.js:1409 +msgid "In the example shown above, sol is shifted up to la." msgstr "" -#: js/MeterBlocks.js:1024 -#: js/MeterBlocks.js:1167 -#: js/MeterBlocks.js:1241 -msgid "Beats per minute must be > 30." +#: js/blocks/PitchBlocks.js:1416 +#.TRANS: adjust the amount of shift (up or down) of a pitch by musical scale (scalar) steps +msgid "scalar transpose" msgstr "" -#: js/MeterBlocks.js:1027 -#: js/MeterBlocks.js:1170 -#: js/MeterBlocks.js:1244 -msgid "Maximum beats per minute is 1000." +#: js/blocks/PitchBlocks.js:1451 +msgid "The Accidental block is used to create sharps and flats" msgstr "" -#: js/MeterBlocks.js:1068 -msgid "The Beats per minute block sets the number of 1/4 notes per minute." +#: js/blocks/PitchBlocks.js:1458 +#.TRANS: An accidental is a modification to a pitch, e.g., sharp or flat. +msgid "accidental override" msgstr "" -#: js/MeterBlocks.js:1279 -#.TRANS: anacrusis -msgid "pickup" +#: js/blocks/PitchBlocks.js:1581 +msgid "The Hertz block (in combination with a Number block) will play a sound at the specified frequency." msgstr "" -#: js/MeterBlocks.js:1367 -msgid "number of beats" +#: js/blocks/PitchBlocks.js:1671 +msgid "The Pitch Number block will play a pitch associated by its number, e.g. 0 for C and 7 for G." msgstr "" -#: js/DictBlocks.js:77 -msgid "show dictionary" +#: js/blocks/PitchBlocks.js:1703 +#: js/blocks/PitchBlocks.js:1745 +#.TRANS: a numeric mapping of the notes in an octave based on the musical mode +#.TRANS: a numeric mapping of the notes in an octave based on the musical mode +msgid "nth modal pitch" msgstr "" -#: js/DictBlocks.js:129 -msgid "The Dictionary block returns a dictionary." +#: js/blocks/PitchBlocks.js:1706 +msgid "n^th Modal Pitch takes the pattern of pitches in semitones for a mode and makes each point a degree of the mode," msgstr "" -#: js/DictBlocks.js:197 -#: js/DictBlocks.js:339 -msgid "The Get-dict block returns a value in the dictionary for a specified key." +#: js/blocks/PitchBlocks.js:1708 +msgid "starting from 1 and regardless of tonal framework (i.e. not always 8 notes in the octave)" msgstr "" -#: js/DictBlocks.js:212 -#: js/DictBlocks.js:354 -#.TRANS: retrieve a value from the dictionary with a given key -msgid "get value" +#: js/blocks/PitchBlocks.js:1749 +msgid "N^th Modal Pitch takes a number as an input as the n^th degree for the given mode. 0 is the first position, 1 is the second, -1 is the note before the first etc." msgstr "" -#: js/DictBlocks.js:215 -#: js/DictBlocks.js:216 -#: js/DictBlocks.js:289 -#: js/DictBlocks.js:290 -#: js/DictBlocks.js:357 -#: js/DictBlocks.js:430 -#: js/DictBlocks.js:431 -msgid "key2" +#: js/blocks/PitchBlocks.js:1751 +msgid "The pitches change according to the mode specified without any need for respellings." msgstr "" -#: js/DictBlocks.js:271 -#: js/DictBlocks.js:411 -msgid "The Set-dict block sets a value in the dictionary for a specified key." +#: js/blocks/PitchBlocks.js:1790 +msgid "Scale Degree is a common convention in music. Scale Degree offers seven possible positions in the scale (1-7) and can be modified via accidentals." msgstr "" -#: js/DictBlocks.js:286 -#: js/DictBlocks.js:427 -#.TRANS: set a value in the dictionary for a given key -msgid "set value" +#: js/blocks/PitchBlocks.js:1792 +msgid "Scale Degree 1 is always the first pitch in a given scale, regardless of octave." msgstr "" -#: js/ExtrasBlocks.js:33 -msgid "fraction" +#: js/blocks/PitchBlocks.js:1814 +#.TRANS: step some number of notes in current musical scale +msgid "scalar step" msgstr "" -#: js/ExtrasBlocks.js:36 -msgid "Convert a float to a fraction" +#: js/blocks/PitchBlocks.js:1819 +msgid "The Scalar Step block (in combination with a Number block) will play the next pitch in a scale," msgstr "" -#: js/ExtrasBlocks.js:93 -msgid "save as ABC" +#: js/blocks/PitchBlocks.js:1821 +msgid "eg if the last note played was sol, Scalar Step 1 will play la." msgstr "" -#: js/ExtrasBlocks.js:96 -#: js/ExtrasBlocks.js:132 -#: js/ExtrasBlocks.js:168 -msgid "title" +#: js/blocks/PitchBlocks.js:1857 +msgid "The Pitch block specifies the pitch name and octave of a note that together determine the frequency of the note." msgstr "" -#: js/ExtrasBlocks.js:129 -msgid "save as Lilypond" +#: js/blocks/ProgramBlocks.js:33 +msgid "The Load-heap-from-app block loads the heap from a web page." msgstr "" -#: js/ExtrasBlocks.js:165 -msgid "save as SVG" +#: js/blocks/ProgramBlocks.js:44 +#.TRANS: load the heap contents from a URL +msgid "load heap from App" msgstr "" -#: js/ExtrasBlocks.js:216 -msgid "no background" +#: js/blocks/ProgramBlocks.js:95 +msgid "Error parsing JSON data:" msgstr "" -#: js/ExtrasBlocks.js:219 -msgid "The No background block eliminates the background from the saved SVG output." +#: js/blocks/ProgramBlocks.js:100 +msgid "404: Page not found" msgstr "" -#: js/ExtrasBlocks.js:247 -msgid "show blocks" +#: js/blocks/ProgramBlocks.js:133 +msgid "The Save-heap-to-app block saves the heap to a web page." msgstr "" -#: js/ExtrasBlocks.js:249 -msgid "The Show blocks block shows the blocks." +#: js/blocks/ProgramBlocks.js:144 +#.TRANS: save the heap contents to a URL +msgid "save heap to App" msgstr "" -#: js/ExtrasBlocks.js:274 -msgid "hide blocks" +#: js/blocks/ProgramBlocks.js:189 +msgid "Cannot find a valid heap for" msgstr "" -#: js/ExtrasBlocks.js:276 -msgid "The Hide blocks block hides the blocks." +#: js/blocks/ProgramBlocks.js:206 +msgid "The Load-heap block loads the heap from a file." msgstr "" -#: js/ExtrasBlocks.js:305 -#: js/ExtrasBlocks.js:335 -msgid "The Space block is used to add space between blocks." +#: js/blocks/ProgramBlocks.js:217 +#.TRANS: load the heap from a file +msgid "load heap" msgstr "" -#: js/ExtrasBlocks.js:373 -msgid "wait" -msgstr "រង់​ចាំ" +#: js/blocks/ProgramBlocks.js:270 +msgid "The file you selected does not contain a valid heap." +msgstr "" -#: js/ExtrasBlocks.js:376 -msgid "The Wait block pauses the program for a specified number of seconds." +#: js/blocks/ProgramBlocks.js:275 +msgid "The loadHeap block needs a loadFile block." msgstr "" -#: js/ExtrasBlocks.js:430 -#: plugins/facebook.rtp:30 -msgid "comment" -msgstr "មតិ​យោបល់" +#: js/blocks/ProgramBlocks.js:291 +msgid "The Set-heap block loads the heap." +msgstr "" -#: js/ExtrasBlocks.js:466 -msgid "print" -msgstr "បោះពុម្ព" +#: js/blocks/ProgramBlocks.js:340 +msgid "The block you selected does not contain a valid heap." +msgstr "" -#: js/ExtrasBlocks.js:473 -msgid "The Print block displays text at the top of the screen." +#: js/blocks/ProgramBlocks.js:343 +msgid "The Set heap block needs a heap." msgstr "" -#: js/ExtrasBlocks.js:579 -msgid "display grid" +#: js/blocks/ProgramBlocks.js:360 +msgid "The Load-dictionary block loads a dictionary from a file." msgstr "" -#: js/ExtrasBlocks.js:584 -msgid "The Display Grid Block changes the grid type" +#: js/blocks/ProgramBlocks.js:372 +#.TRANS: load a dictionary from a file +msgid "load dictionary" msgstr "" -#: js/ExtrasBlocks.js:686 -#: js/ExtrasBlocks.js:705 -#: js/ExtrasBlocks.js:728 -#: js/ExtrasBlocks.js:751 -#: js/ExtrasBlocks.js:769 -#: js/ExtrasBlocks.js:788 -#: js/ExtrasBlocks.js:807 -#: js/ExtrasBlocks.js:826 -msgid "unknown" +#: js/blocks/ProgramBlocks.js:390 +#: js/blocks/ProgramBlocks.js:658 +#: js/blocks/ToneBlocks.js:1025 +msgid "file" msgstr "" -#: js/SensorsBlocks.js:36 -msgid "The Input block prompts for keyboard input." +#: js/blocks/ProgramBlocks.js:444 +msgid "The file you selected does not contain a valid dictionary." msgstr "" -#: js/SensorsBlocks.js:46 -msgid "input" +#: js/blocks/ProgramBlocks.js:449 +msgid "The load dictionary block needs a load file block." msgstr "" -#: js/SensorsBlocks.js:64 -msgid "Input a value" +#: js/blocks/ProgramBlocks.js:466 +msgid "The Set-dictionary block loads a dictionary." msgstr "" -#: js/SensorsBlocks.js:126 -msgid "input value" +#: js/blocks/ProgramBlocks.js:477 +#.TRANS: load a dictionary from a JSON +msgid "set dictionary" msgstr "" -#: js/SensorsBlocks.js:131 -msgid "The Input-value block stores the input." +#: js/blocks/ProgramBlocks.js:546 +msgid "The block you selected does not contain a valid dictionary." msgstr "" -#: js/SensorsBlocks.js:238 -msgid "loudness" -msgstr "ភាពឮ" +#: js/blocks/ProgramBlocks.js:550 +msgid "The set dictionary block needs a dictionary." +msgstr "" -#: js/SensorsBlocks.js:245 -msgid "The Loudness block returns the volume detected by the microphone." +#: js/blocks/ProgramBlocks.js:567 +msgid "The Save-heap block saves the heap to a file." msgstr "" -#: js/SensorsBlocks.js:300 -msgid "click" +#: js/blocks/ProgramBlocks.js:578 +#.TRANS: save the heap to a file +msgid "save heap" msgstr "" -#: js/SensorsBlocks.js:306 -msgid "The Click block triggers an event if a mouse has been clicked." +#: js/blocks/ProgramBlocks.js:629 +msgid "The Save-dictionary block saves a dictionary to a file." msgstr "" -#: js/SensorsBlocks.js:313 -msgid "The Click block triggers an event if a turtle has been clicked." +#: js/blocks/ProgramBlocks.js:640 +#.TRANS: save a dictionary to a file +msgid "save dictionary" msgstr "" -#: js/SensorsBlocks.js:342 -msgid "cursor over" +#: js/blocks/ProgramBlocks.js:720 +msgid "The Open palette block opens a palette." msgstr "" -#: js/SensorsBlocks.js:387 -msgid "cursor out" +#: js/blocks/ProgramBlocks.js:727 +msgid "open palette" msgstr "" -#: js/SensorsBlocks.js:433 -msgid "cursor button down" +#: js/blocks/ProgramBlocks.js:785 +msgid "The Delete block block removes a block." msgstr "" -#: js/SensorsBlocks.js:477 -msgid "cursor button up" +#: js/blocks/ProgramBlocks.js:797 +#.TRANS: Move this block to the trash. +msgid "delete block" msgstr "" -#: js/SensorsBlocks.js:638 -msgid "The Get red block returns the red component of the pixel under the mouse." +#: js/blocks/ProgramBlocks.js:861 +msgid "The Move block block moves a block." msgstr "" -#: js/SensorsBlocks.js:644 -msgid "The Get red block returns the red component of the pixel under the turtle." +#: js/blocks/ProgramBlocks.js:869 +#.TRANS: Move the position of a block on the screen. +msgid "move block" msgstr "" -#: js/SensorsBlocks.js:685 -#: plugins/rodi.rtp:216 -msgid "pixel color" +#: js/blocks/ProgramBlocks.js:881 +#: js/blocks/ProgramBlocks.js:1048 +msgid "block number" msgstr "" -#: js/SensorsBlocks.js:690 -msgid "The Get pixel block returns the color of the pixel under the mouse." +#: js/blocks/ProgramBlocks.js:935 +#.TRANS: Run program beginning at this block. +msgid "run block" msgstr "" -#: js/SensorsBlocks.js:696 -msgid "The Get pixel block returns the color of the pixel under the turtle." +#: js/blocks/ProgramBlocks.js:1025 +msgid "The Dock block block connections two blocks." msgstr "" -#: js/SensorsBlocks.js:758 -msgid "time" -msgstr "ពេល​វេលា" +#: js/blocks/ProgramBlocks.js:1036 +#.TRANS: We can connect a block to another block. +msgid "connect blocks" +msgstr "" -#: js/SensorsBlocks.js:804 -msgid "cursor y" +#: js/blocks/ProgramBlocks.js:1048 +msgid "target block" msgstr "" -#: js/SensorsBlocks.js:809 -msgid "The Cursor Y block returns the vertical position of the mouse." +#: js/blocks/ProgramBlocks.js:1048 +msgid "connection number" msgstr "" -#: js/SensorsBlocks.js:845 -msgid "cursor x" +#: js/blocks/ProgramBlocks.js:1140 +msgid "The Make block block creates a new block." msgstr "" -#: js/SensorsBlocks.js:850 -msgid "The Cursor X block returns the horizontal position of the mouse." +#: js/blocks/ProgramBlocks.js:1152 +#.TRANS: Create a new block +msgid "make block" msgstr "" -#: js/SensorsBlocks.js:886 -msgid "mouse button" +#: js/blocks/ProgramBlocks.js:1285 +msgid "Cannot find block" msgstr "" -#: js/SensorsBlocks.js:888 -msgid "The Mouse-button block returns True if the mouse button is pressed." +#: js/blocks/ProgramBlocks.js:1304 +#: js/blocks/ProgramBlocks.js:1313 +msgid "Warning: block argument type mismatch" msgstr "" -#: js/SensorsBlocks.js:934 -msgid "to ASCII" +#: js/blocks/ProgramBlocks.js:1347 +msgid "The Open project block is used to open a project from a web page." msgstr "" -#: js/SensorsBlocks.js:938 -msgid "The To ASCII block converts numbers to letters." +#: js/blocks/ProgramBlocks.js:1357 +msgid "open project" msgstr "" -#: js/SensorsBlocks.js:1005 -msgid "The Keyboard block returns computer keyboard input." +#: js/blocks/ProgramBlocks.js:1410 +msgid "Please enter a valid URL." msgstr "" -#: js/IntervalsActions.js:216 -msgid "Adding missing pitch number 0." +#: js/blocks/ToneBlocks.js:34 +msgid "oscillator" msgstr "" -#: js/IntervalsActions.js:224 -msgid "Ignoring pitch numbers less than zero or greater than eleven." +#: js/blocks/ToneBlocks.js:42 +#: js/blocks/WidgetBlocks.js:179 +#: js/widgets/timbre.js:1558 +#: js/widgets/timbre.js:1808 +#.TRANS: there are different types (sine, triangle, square...) of oscillators. +#.TRANS: type of filter, e.g., lowpass, highpass, etc. +msgid "type" msgstr "" -#: js/IntervalsActions.js:230 -msgid "Ignoring duplicate pitch numbers." +#: js/blocks/ToneBlocks.js:44 +#: js/widgets/timbre.js:1562 +#.TRANS: Partials refers to the number of sine waves combined into the sound. +msgid "partials" msgstr "" -#: js/PitchActions.js:88 -msgid "The Scalar Step Block must be used inside of a Note Block." +#: js/blocks/ToneBlocks.js:76 +msgid "You are adding multiple oscillator blocks." msgstr "" -#: js/PitchActions.js:107 -msgid "The Scalar Step Block must be preceded by a Pitch Block." +#: js/blocks/ToneBlocks.js:144 +#: js/widgets/timbre.js:1225 +#.TRANS: a duo synthesizer combines a synth with a sequencer +msgid "duo synth" msgstr "" -#: js/DrumActions.js:231 -msgid "Noise Block: Did you mean to use a Note block?" +#: js/blocks/ToneBlocks.js:149 +msgid "The Duo synth block is a duo-frequency modulator used to define a timbre." msgstr "" -#: js/MeterActions.js:101 -#: js/MeterActions.js:139 -msgid "beats per minute must be greater than" +#: js/blocks/ToneBlocks.js:157 +#: js/widgets/timbre.js:1476 +msgid "vibrato rate" msgstr "" -#: js/MeterActions.js:111 -#: js/MeterActions.js:149 -msgid "maximum" +#: js/blocks/ToneBlocks.js:157 +msgid "vibrato intensity" msgstr "" -#: js/MeterActions.js:117 -#: js/MeterActions.js:155 -msgid "beats per minute is" +#: js/blocks/ToneBlocks.js:185 +#: js/widgets/timbre.js:1221 +#.TRANS: AM (amplitude modulation) synthesizer +msgid "AM synth" msgstr "" -#: js/ToneActions.js:134 -msgid "Vibrato intensity must be between 1 and 100." +#: js/blocks/ToneBlocks.js:189 +msgid "The AM synth block is an amplitude modulator used to define a timbre." msgstr "" -#: js/ToneActions.js:139 -msgid "Vibrato rate must be greater than 0." +#: js/blocks/ToneBlocks.js:224 +#: js/widgets/timbre.js:1223 +#.TRANS: FM (frequency modulation) synthesizer +msgid "FM synth" msgstr "" -#: js/ToneActions.js:192 -#: js/ToneActions.js:265 -#.TRANS: Depth is the intesity of the tremolo or chorus effect. -msgid "Depth is out of range." +#: js/blocks/ToneBlocks.js:228 +msgid "The FM synth block is a frequency modulator used to define a timbre." msgstr "" -#: js/ToneActions.js:301 -msgid "Distortion must be from 0 to 100." +#: js/blocks/ToneBlocks.js:262 +msgid "partial" msgstr "" -#: js/ToneActions.js:332 -#.TRANS: partials components in a harmonic series -msgid "Partial must be greater than or equal to 0." +#: js/blocks/ToneBlocks.js:265 +msgid "The Partial block is used to specify a weight for a specific partial harmonic." msgstr "" -#: js/ToneActions.js:378 -#: js/ToneActions.js:417 -#: js/ToneActions.js:456 -#: js/timbre.js:782 -msgid "Unable to use synth due to existing oscillator" +#: js/blocks/ToneBlocks.js:284 +#.TRANS: partials are weighted components in a harmonic series +msgid "Partial weight must be between 0 and 1." msgstr "" -#: js/ToneActions.js:388 -#: js/ToneActions.js:427 -msgid "The input cannot be negative." +#: js/blocks/ToneBlocks.js:297 +#.TRANS: partials are weighted components in a harmonic series +msgid "Partial block should be used inside of a Weighted-partials block." msgstr "" -#: js/DictActions.js:75 -#: js/DictActions.js:153 -#: js/DictActions.js:188 -msgid "font" +#: js/blocks/ToneBlocks.js:325 +#.TRANS: partials are weighted components in a harmonic series +msgid "weighted partials" msgstr "" -#: js/musicutils.js:363 -#: js/musicutils.js:471 -#: js/pitchdrummatrix.js:151 -#: js/musickeyboard.js:2563 -msgid "rest" +#: js/blocks/ToneBlocks.js:383 +msgid "The Harmonic block will add harmonics to the contained notes." msgstr "" -#: js/musicutils.js:565 -#.TRANS: ordinal number. Please keep exactly one space between each number. -msgid "1st 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th" +#: js/blocks/ToneBlocks.js:390 +#.TRANS: A harmonic is an overtone. +msgid "harmonic" msgstr "" -#: js/musicutils.js:629 -#: js/musicutils.js:812 -#: js/musicutils.js:911 -#.TRANS: augmented is a music term related to intervals -msgid "augmented" +#: js/blocks/ToneBlocks.js:431 +msgid "The Distortion block adds distortion to the pitch." msgstr "" -#: js/musicutils.js:631 -#: js/musicutils.js:813 -#: js/musicutils.js:910 -#.TRANS: diminished is a music term related to intervals and mode -msgid "diminished" +#: js/blocks/ToneBlocks.js:438 +#: js/widgets/timbre.js:2100 +#.TRANS: distortion is an alteration in the sound +msgid "distortion" msgstr "" -#: js/musicutils.js:639 -#.TRANS: twelve semi-tone scale for music -msgid "chromatic" +#: js/blocks/ToneBlocks.js:487 +msgid "The Tremolo block adds a wavering effect." msgstr "" -#: js/musicutils.js:640 -msgid "algerian" +#: js/blocks/ToneBlocks.js:495 +#: js/widgets/timbre.js:2092 +#.TRANS: a wavering effect in a musical tone +msgid "tremolo" msgstr "" -#: js/musicutils.js:641 -msgid "spanish" +#: js/blocks/ToneBlocks.js:500 +#: js/blocks/ToneBlocks.js:569 +#: js/blocks/ToneBlocks.js:630 +#: js/blocks/ToneBlocks.js:689 +#: js/widgets/timbre.js:2134 +#: js/widgets/timbre.js:2222 +#: js/widgets/timbre.js:2317 +#: js/widgets/timbre.js:2419 +#.TRANS: rate at which tremolo wavers +msgid "rate" msgstr "" -#: js/musicutils.js:643 -#.TRANS: modal scale in music -msgid "octatonic" +#: js/blocks/ToneBlocks.js:502 +#: js/blocks/ToneBlocks.js:630 +#: js/widgets/timbre.js:2137 +#: js/widgets/timbre.js:2328 +#.TRANS: amplitude of tremolo waver +msgid "depth" msgstr "" -#: js/musicutils.js:645 -#.TRANS: harmonic major scale in music -msgid "harmonic major" +#: js/blocks/ToneBlocks.js:559 +msgid "The Phaser block adds a sweeping sound." msgstr "" -#: js/musicutils.js:647 -#.TRANS: natural minor scales in music -msgid "natural minor" +#: js/blocks/ToneBlocks.js:566 +#: js/widgets/timbre.js:2098 +#.TRANS: alter the phase of the sound +msgid "phaser" msgstr "" -#: js/musicutils.js:649 -#.TRANS: harmonic minor scale in music -msgid "harmonic minor" +#: js/blocks/ToneBlocks.js:569 +#: js/turtleactions/IntervalsActions.js:114 +#: js/widgets/timbre.js:2422 +msgid "octaves" msgstr "" -#: js/musicutils.js:651 -#.TRANS: melodic minor scale in music -msgid "melodic minor" +#: js/blocks/ToneBlocks.js:569 +#: js/widgets/timbre.js:2425 +msgid "base frequency" msgstr "" -#: js/musicutils.js:655 -#.TRANS: modal scale for music -msgid "dorian" +#: js/blocks/ToneBlocks.js:619 +msgid "The Chorus block adds a chorus effect." msgstr "" -#: js/musicutils.js:657 -#.TRANS: modal scale for music -msgid "phrygian" +#: js/blocks/ToneBlocks.js:627 +#: js/widgets/timbre.js:2096 +#.TRANS: musical effect to simulate a choral sound +msgid "chorus" msgstr "" -#: js/musicutils.js:659 -#.TRANS: modal scale for music -msgid "lydian" +#: js/blocks/ToneBlocks.js:630 +msgid "delay" msgstr "" -#: js/musicutils.js:661 -#.TRANS: modal scale for music -msgid "mixolydian" +#: js/blocks/ToneBlocks.js:678 +msgid "The Vibrato block adds a rapid, slight variation in pitch." msgstr "" -#: js/musicutils.js:665 -#.TRANS: modal scale for music -msgid "locrian" +#: js/blocks/ToneBlocks.js:686 +#: js/widgets/timbre.js:2094 +#.TRANS: a rapid, slight variation in pitch +msgid "vibrato" msgstr "" -#: js/musicutils.js:667 -#.TRANS: minor jazz scale for music -msgid "jazz minor" +#: js/blocks/ToneBlocks.js:689 +#: js/widgets/timbre.js:2221 +msgid "intensity" msgstr "" -#: js/musicutils.js:669 -#.TRANS: bebop scale for music -msgid "bebop" +#: js/blocks/ToneBlocks.js:733 +#.TRANS: select synthesizer +msgid "set synth" msgstr "" -#: js/musicutils.js:670 -msgid "arabic" +#: js/blocks/ToneBlocks.js:804 +msgid "synth name" msgstr "" -#: js/musicutils.js:671 -msgid "byzantine" +#: js/blocks/ToneBlocks.js:842 +msgid "set default instrument" msgstr "" -#: js/musicutils.js:673 -#.TRANS: musical scale for music by Verdi -msgid "enigmatic" +#: js/blocks/ToneBlocks.js:895 +#: js/blocks/ToneBlocks.js:943 +#.TRANS: set the characteristics of a custom instrument +msgid "set instrument" msgstr "" -#: js/musicutils.js:674 -msgid "ethiopian" +#: js/blocks/ToneBlocks.js:898 +#: js/blocks/ToneBlocks.js:926 +#: js/blocks/ToneBlocks.js:932 +msgid "The Set instrument block selects a voice for the synthesizer," msgstr "" -#: js/musicutils.js:676 -#.TRANS: Ethiopic scale for music -msgid "geez" +#: js/blocks/ToneBlocks.js:900 +#: js/blocks/ToneBlocks.js:934 +msgid "eg guitar piano violin or cello." msgstr "" -#: js/musicutils.js:677 -msgid "hindu" +#: js/blocks/ToneBlocks.js:1015 +msgid "Import a sound file to use as an instrument and set its pitch center." msgstr "" -#: js/musicutils.js:678 -msgid "hungarian" +#: js/blocks/ToneBlocks.js:1110 +msgid "Upload a sound file to connect with the sample block." msgstr "" -#: js/musicutils.js:680 -#.TRANS: minor Romanian scale for music -msgid "romanian minor" +#: js/blocks/VolumeBlocks.js:35 +msgid "synth volume" msgstr "" -#: js/musicutils.js:681 -msgid "spanish gypsy" +#: js/blocks/VolumeBlocks.js:39 +msgid "The Synth volume block returns the current volume of the current synthesizer." msgstr "" -#: js/musicutils.js:683 -#.TRANS: musical scale for Mid-Eastern music -msgid "maqam" +#: js/blocks/VolumeBlocks.js:105 +msgid "master volume" msgstr "" -#: js/musicutils.js:685 -#.TRANS: minor blues scale for music -msgid "minor blues" +#: js/blocks/VolumeBlocks.js:109 +msgid "The Master volume block returns the master volume." msgstr "" -#: js/musicutils.js:687 -#.TRANS: major blues scale for music -msgid "major blues" +#: js/blocks/VolumeBlocks.js:355 +#: js/blocks/VolumeBlocks.js:524 +msgid "set synth volume" msgstr "" -#: js/musicutils.js:688 -msgid "whole tone" +#: js/blocks/VolumeBlocks.js:362 +#: js/blocks/VolumeBlocks.js:545 +msgid "synth" msgstr "" -#: js/musicutils.js:690 -#.TRANS: pentatonic is a general term that means "five note scale". This scale is typically known as "minor pentatonic" -msgid "minor pentatonic" +#: js/blocks/VolumeBlocks.js:403 +#: js/blocks/VolumeBlocks.js:577 +#: js/blocks/VolumeBlocks.js:740 +#: js/turtleactions/VolumeActions.js:173 +msgid "Setting volume to 0." msgstr "" -#: js/musicutils.js:692 -#.TRANS: pentatonic is a general term that means "five note scale". This scale is typically known as "major pentatonic" -msgid "major pentatonic" +#: js/blocks/VolumeBlocks.js:440 +msgid "Synth not found" msgstr "" -#: js/musicutils.js:693 -msgid "chinese" +#: js/blocks/VolumeBlocks.js:494 +msgid "set drum volume" msgstr "" -#: js/musicutils.js:694 -msgid "egyptian" +#: js/blocks/VolumeBlocks.js:530 +msgid "The Set synth volume block will change the volume of a particular synth," msgstr "" -#: js/musicutils.js:696 -#.TRANS: https://en.wikipedia.org/wiki/Hirajoshi_scale NOTE: There are three different versions of this scale -msgid "hirajoshi" +#: js/blocks/VolumeBlocks.js:532 +msgid "eg guitar violin snare drum etc." msgstr "" -#: js/musicutils.js:697 -msgid "Japan" +#: js/blocks/VolumeBlocks.js:534 +msgid "The default volume is 50." msgstr "" -#: js/musicutils.js:699 -#.TRANS: https://en.wikipedia.org/wiki/In_scale and https://en.wikipedia.org/wiki/Sakura_Sakura -msgid "in" +#: js/blocks/VolumeBlocks.js:536 +msgid "The range is 0 for silence to 100 for full volume." msgstr "" -#: js/musicutils.js:701 -#.TRANS: https://en.wikipedia.org/wiki/Miny%C5%8D_scale -msgid "minyo" +#: js/blocks/VolumeBlocks.js:597 +msgid "set panning" msgstr "" -#: js/musicutils.js:703 -#.TRANS: Italian mathematician -msgid "fibonacci" +#: js/blocks/VolumeBlocks.js:603 +msgid "The Set Panning block sets the panning for all synthesizers." msgstr "" -#: js/musicutils.js:708 -#: js/musicutils.js:1106 -#.TRANS: lowpass filter -msgid "lowpass" +#: js/blocks/VolumeBlocks.js:625 +msgid "Warning: Sound is coming out from only the left or right side." msgstr "" -#: js/musicutils.js:710 -#: js/musicutils.js:1107 -#.TRANS: bandpass filter -msgid "bandpass" +#: js/blocks/VolumeBlocks.js:647 +#: js/blocks/VolumeBlocks.js:695 +msgid "set master volume" msgstr "" -#: js/musicutils.js:712 -#: js/musicutils.js:1108 -#.TRANS: high-shelf filter -msgid "highshelf" +#: js/blocks/VolumeBlocks.js:653 +msgid "The Set master volume block sets the volume for all synthesizers." msgstr "" -#: js/musicutils.js:714 -#: js/musicutils.js:1109 -#.TRANS: low-shelf filter -msgid "lowshelf" +#: js/blocks/VolumeBlocks.js:784 +msgid "The Set relative volume block changes the volume of the contained notes." msgstr "" -#: js/musicutils.js:716 -#: js/musicutils.js:1110 -#.TRANS: notch-shelf filter -msgid "notch" +#: js/blocks/VolumeBlocks.js:791 +msgid "set relative volume" msgstr "" -#: js/musicutils.js:718 -#: js/musicutils.js:1111 -#.TRANS: all-pass filter -msgid "allpass" +#: js/blocks/VolumeBlocks.js:857 +msgid "decrescendo" msgstr "" -#: js/musicutils.js:720 -#: js/musicutils.js:1112 -#.TRANS: peaking filter -msgid "peaking" +#: js/blocks/VolumeBlocks.js:921 +msgid "crescendo" msgstr "" -#: js/musicutils.js:731 -#: js/synthutils.js:58 -#.TRANS: musical instrument -msgid "violin" +#: js/blocks/WidgetBlocks.js:81 +#.TRANS: sound envelope (ADSR) +msgid "envelope" msgstr "" -#: js/musicutils.js:732 -#: js/synthutils.js:60 -#.TRANS: viola musical instrument -msgid "viola" +#: js/blocks/WidgetBlocks.js:89 +#.TRANS: Attack time is the time taken for initial run-up of level from nil to peak, beginning when the key is first pressed. +msgid "attack" msgstr "" -#: js/musicutils.js:733 -#: js/synthutils.js:98 -#.TRANS: xylophone musical instrument -msgid "xylophone" +#: js/blocks/WidgetBlocks.js:91 +#.TRANS: Decay time is the time taken for the subsequent run down from the attack level to the designated sustain level. +msgid "decay" msgstr "" -#: js/musicutils.js:734 -#: js/synthutils.js:120 -#.TRANS: vibraphone musical instrument -msgid "vibraphone" +#: js/blocks/WidgetBlocks.js:93 +#.TRANS: Sustain level is the level during the main sequence of the sound's duration, until the key is released. +msgid "sustain" msgstr "" -#: js/musicutils.js:735 -#: js/synthutils.js:62 -#.TRANS: musical instrument -msgid "cello" +#: js/blocks/WidgetBlocks.js:95 +#.TRANS: Release time is the time taken for the level to decay from the sustain level to zero after the key is released. +msgid "release" msgstr "" -#: js/musicutils.js:737 -#: js/synthutils.js:66 -#.TRANS: viola musical instrument -msgid "double bass" +#: js/blocks/WidgetBlocks.js:113 +msgid "Attack value should be from 0 to 100." msgstr "" -#: js/musicutils.js:738 -#: js/synthutils.js:68 -#: js/rhythmruler.js:2119 -#.TRANS: musical instrument -msgid "guitar" +#: js/blocks/WidgetBlocks.js:116 +msgid "Decay value should be from 0 to 100." msgstr "" -#: js/musicutils.js:739 -#: js/synthutils.js:70 -#.TRANS: musical instrument -msgid "acoustic guitar" +#: js/blocks/WidgetBlocks.js:119 +msgid "Sustain value should be from 0 to 100." msgstr "" -#: js/musicutils.js:740 -#: js/synthutils.js:72 -#.TRANS: musical instrument -msgid "flute" +#: js/blocks/WidgetBlocks.js:122 +msgid "Release value should be from 0-100." msgstr "" -#: js/musicutils.js:741 -#: js/synthutils.js:74 -#.TRANS: musical instrument -msgid "clarinet" +#: js/blocks/WidgetBlocks.js:140 +msgid "You are adding multiple envelope blocks." msgstr "" -#: js/musicutils.js:742 -#: js/synthutils.js:76 -#.TRANS: musical instrument -msgid "saxophone" +#: js/blocks/WidgetBlocks.js:171 +#.TRANS: a filter removes some unwanted components from a signal +msgid "filter" msgstr "" -#: js/musicutils.js:743 -#: js/synthutils.js:78 -#.TRANS: musical instrument -msgid "tuba" +#: js/blocks/WidgetBlocks.js:181 +#: js/widgets/timbre.js:1818 +#.TRANS: rolloff is the steepness of a change in frequency. +msgid "rolloff" msgstr "" -#: js/musicutils.js:744 -#: js/synthutils.js:80 -#.TRANS: musical instrument -msgid "trumpet" +#: js/blocks/WidgetBlocks.js:213 +#.TRANS: rolloff is the steepness of a change in frequency. +msgid "Rolloff value should be either -12, -24, -48, or -96 decibels/octave." msgstr "" -#: js/musicutils.js:745 -#: js/synthutils.js:82 -#.TRANS: musical instrument -msgid "oboe" +#: js/blocks/WidgetBlocks.js:252 +msgid "The Temperament tool is used to define custom tuning." msgstr "" -#: js/musicutils.js:746 -#: js/synthutils.js:84 -#.TRANS: musical instrument -msgid "trombone" +#: js/blocks/WidgetBlocks.js:332 +#: js/blocks/WidgetBlocks.js:1573 +#: js/widgets/sampler.js:547 +msgid "Upload a sample and adjust its pitch center." msgstr "" -#: js/musicutils.js:747 -#: js/synthutils.js:100 -#.TRANS: polytone synthesizer -msgid "electronic synth" +#: js/blocks/WidgetBlocks.js:339 +#.TRANS: the speed at music is should be played. +msgid "sampler" msgstr "" -#: js/musicutils.js:748 -#: js/synthutils.js:102 -#.TRANS: simple monotone synthesizer -msgid "simple 1" +#: js/blocks/WidgetBlocks.js:517 +msgid "The Meter block opens a tool to select strong beats for the meter." msgstr "" -#: js/musicutils.js:749 -msgid "simple 2" +#: js/blocks/WidgetBlocks.js:573 +msgid "The oscilloscope block opens a tool to visualize waveforms." msgstr "" -#: js/musicutils.js:750 -msgid "simple 3" +#: js/blocks/WidgetBlocks.js:578 +msgid "oscilloscope" msgstr "" -#: js/musicutils.js:751 -msgid "simple 4" +#: js/blocks/WidgetBlocks.js:645 +msgid "The Custom mode block opens a tool to explore musical mode (the spacing of the notes in a scale)." msgstr "" -#: js/musicutils.js:753 -#: js/synthutils.js:49 -#.TRANS: brown noise synthesizer -msgid "brown noise" +#: js/blocks/WidgetBlocks.js:651 +#.TRANS: musical mode is the pattern of half-steps in an octave, e.g., Major or Minor modes +msgid "custom mode" msgstr "" -#: js/musicutils.js:754 -#: js/synthutils.js:51 -#.TRANS: pink noise synthesizer -msgid "pink noise" +#: js/blocks/WidgetBlocks.js:700 +msgid "The Tempo block opens a metronome to visualize the beat." msgstr "" -#: js/musicutils.js:756 -#: js/synthutils.js:127 -#: js/rhythmruler.js:1670 -#: js/rhythmruler.js:1928 -#.TRANS: musical instrument -msgid "snare drum" +#: js/blocks/WidgetBlocks.js:762 +msgid "The Arpeggio Widget is used to compose chord sequences." msgstr "" -#: js/musicutils.js:757 -#: js/synthutils.js:129 -#.TRANS: musical instrument -msgid "kick drum" +#: js/blocks/WidgetBlocks.js:837 +msgid "The Pitch drum matrix is used to map pitches to drum sounds." msgstr "" -#: js/musicutils.js:758 -#: js/synthutils.js:131 -#.TRANS: musical instrument -msgid "tom tom" +#: js/blocks/WidgetBlocks.js:842 +#.TRANS: makes a mapping between pitches and drum sounds +msgid "pitch-drum mapper" msgstr "" -#: js/musicutils.js:759 -#: js/synthutils.js:133 -#.TRANS: musical instrument -msgid "floor tom" +#: js/blocks/WidgetBlocks.js:891 +msgid "You must have at least one pitch block and one drum block in the matrix." msgstr "" -#: js/musicutils.js:760 -#: js/synthutils.js:135 -#.TRANS: musical instrument -msgid "bass drum" +#: js/blocks/WidgetBlocks.js:920 +msgid "The Pitch slider tool to is used to generate pitches at selected frequencies." msgstr "" -#: js/musicutils.js:761 -#: js/synthutils.js:137 -#.TRANS: a drum made from an inverted cup -msgid "cup drum" +#: js/blocks/WidgetBlocks.js:925 +#.TRANS: widget to generate pitches using a slider +msgid "pitch slider" msgstr "" -#: js/musicutils.js:762 -#: js/synthutils.js:139 -#.TRANS: musical instrument -msgid "darbuka drum" +#: js/blocks/WidgetBlocks.js:977 +msgid "chromatic keyboard" msgstr "" -#: js/musicutils.js:763 -#: js/synthutils.js:143 -#.TRANS: musical instrument -msgid "hi hat" +#: js/blocks/WidgetBlocks.js:1011 +#: js/blocks/WidgetBlocks.js:1077 +#.TRANS: widget to generate pitches using a slider +msgid "music keyboard" msgstr "" -#: js/musicutils.js:764 -#: js/synthutils.js:145 -#.TRANS: a small metal bell -msgid "ride bell" +#: js/blocks/WidgetBlocks.js:1062 +#: js/blocks/WidgetBlocks.js:1069 +msgid "The Music keyboard block opens a piano keyboard that can be used to create notes." msgstr "" -#: js/musicutils.js:765 -#: js/synthutils.js:147 -#.TRANS: musical instrument -msgid "cow bell" +#: js/blocks/WidgetBlocks.js:1128 +msgid "The Pitch staircase tool to is used to generate pitches from a given ratio." msgstr "" -#: js/musicutils.js:766 -msgid "japanese drum" +#: js/blocks/WidgetBlocks.js:1135 +#.TRANS: generate a progressive sequence of pitches +msgid "pitch staircase" msgstr "" -#: js/musicutils.js:767 -#: js/synthutils.js:153 -#.TRANS: musical instrument -msgid "japanese bell" +#: js/blocks/WidgetBlocks.js:1222 +msgid "The Rhythm Maker block opens a tool to create drum machines." msgstr "" -#: js/musicutils.js:768 -#: js/synthutils.js:149 -#.TRANS: musical instrument -msgid "triangle bell" +#: js/blocks/WidgetBlocks.js:1291 +msgid "G major scale" msgstr "" -#: js/musicutils.js:769 -#: js/synthutils.js:151 -#.TRANS: musical instrument -msgid "finger cymbals" +#: js/blocks/WidgetBlocks.js:1326 +msgid "C major scale" msgstr "" -#: js/musicutils.js:770 -#: js/synthutils.js:155 -#.TRANS: a musically tuned set of bells -msgid "chime" +#: js/blocks/WidgetBlocks.js:1366 +msgid "The Phrase Maker block opens a tool to create musical phrases." msgstr "" -#: js/musicutils.js:771 -#: js/synthutils.js:157 -#.TRANS: a musical instrument -msgid "gong" +#: js/blocks/WidgetBlocks.js:1373 +#.TRANS: assigns pitch to a sequence of beats to generate a melody +msgid "phrase maker" msgstr "" -#: js/musicutils.js:772 -#: js/synthutils.js:159 -#.TRANS: sound effect -msgid "clang" +#: js/blocks/WidgetBlocks.js:1444 +msgid "You must have at least one pitch block and one rhythm block in the matrix." msgstr "" -#: js/musicutils.js:773 -#: js/synthutils.js:161 -#.TRANS: sound effect -msgid "crash" +#: js/blocks/WidgetBlocks.js:1503 +msgid "The Status block opens a tool for inspecting the status of Music Blocks as it is running." msgstr "" -#: js/musicutils.js:774 -#: js/synthutils.js:163 -#.TRANS: sound effect -msgid "bottle" +#: js/blocks/WidgetBlocks.js:1580 +#.TRANS: AI-generated music +msgid "aimusic" msgstr "" -#: js/musicutils.js:775 -#: js/synthutils.js:165 -#.TRANS: sound effect -msgid "clap" +#: js/turtleactions/MeterActions.js:101 +#: js/turtleactions/MeterActions.js:139 +msgid "beats per minute must be greater than" msgstr "" -#: js/musicutils.js:776 -#: js/synthutils.js:167 -#.TRANS: sound effect -msgid "slap" +#: js/turtleactions/MeterActions.js:111 +#: js/turtleactions/MeterActions.js:149 +msgid "maximum" msgstr "" -#: js/musicutils.js:777 -#: js/synthutils.js:169 -#.TRANS: sound effect -msgid "splash" +#: js/turtleactions/MeterActions.js:117 +#: js/turtleactions/MeterActions.js:155 +msgid "beats per minute is" msgstr "" -#: js/musicutils.js:778 -#: js/synthutils.js:171 -#.TRANS: sound effect -msgid "bubbles" +#: js/turtleactions/DictActions.js:75 +#: js/turtleactions/DictActions.js:142 +#: js/turtleactions/DictActions.js:172 +msgid "font" msgstr "" -#: js/musicutils.js:779 -#: js/synthutils.js:173 -#.TRANS: sound effect -msgid "raindrop" +#: js/turtleactions/DictActions.js:255 +msgid "Dictionary with this name does not exist" msgstr "" -#: js/musicutils.js:780 -#: js/synthutils.js:175 -#.TRANS: animal sound effect -msgid "cat" +#: js/turtleactions/DictActions.js:259 +msgid "Key with this name does not exist in " msgstr "" -#: js/musicutils.js:781 -#: js/synthutils.js:177 -#.TRANS: animal sound effect -msgid "cricket" +#: js/turtleactions/DrumActions.js:227 +msgid "Noise Block: Did you mean to use a Note block?" msgstr "" -#: js/musicutils.js:782 -#: js/synthutils.js:179 -#.TRANS: animal sound effect -msgid "dog" +#: js/turtleactions/IntervalsActions.js:113 +msgid "one" msgstr "" -#: js/musicutils.js:784 -#: js/synthutils.js:86 -#.TRANS: musical instrument -msgid "banjo" +#: js/turtleactions/IntervalsActions.js:113 +msgid "two" msgstr "" -#: js/musicutils.js:785 -#: js/synthutils.js:88 -#.TRANS: musical instrument -msgid "koto" +#: js/turtleactions/IntervalsActions.js:113 +msgid "three" msgstr "" -#: js/musicutils.js:786 -#: js/synthutils.js:90 -#.TRANS: musical instrument -msgid "dulcimer" +#: js/turtleactions/IntervalsActions.js:113 +msgid "four" msgstr "" -#: js/musicutils.js:787 -#: js/synthutils.js:92 -#.TRANS: musical instrument -msgid "electric guitar" +#: js/turtleactions/IntervalsActions.js:113 +msgid "five" msgstr "" -#: js/musicutils.js:788 -#: js/synthutils.js:94 -#.TRANS: musical instrument -msgid "bassoon" +#: js/turtleactions/IntervalsActions.js:113 +msgid "six" msgstr "" -#: js/musicutils.js:789 -#: js/synthutils.js:96 -#.TRANS: musical instrument -msgid "celeste" +#: js/turtleactions/IntervalsActions.js:113 +msgid "seven" msgstr "" -#: js/musicutils.js:791 -#: js/musicutils.js:1123 -#: js/musicutils.js:1131 -#: js/temperament.js:650 -#.TRANS: musical temperament -msgid "equal" +#: js/turtleactions/IntervalsActions.js:113 +msgid "eight" msgstr "" -#: js/musicutils.js:793 -#: js/musicutils.js:1125 -#: js/musicutils.js:1133 -#.TRANS: musical temperament -msgid "Pythagorean" +#: js/turtleactions/IntervalsActions.js:113 +msgid "nine" msgstr "" -#: js/musicutils.js:795 -#: js/musicutils.js:1124 -#: js/musicutils.js:1132 -#.TRANS: musical temperament -msgid "just intonation" +#: js/turtleactions/IntervalsActions.js:119 +msgid "a" msgstr "" -#: js/musicutils.js:797 -#: js/musicutils.js:1126 -#: js/musicutils.js:1127 -#: js/musicutils.js:1134 -#: js/musicutils.js:1135 -#.TRANS: musical temperament -msgid "meantone" +#: js/turtleactions/IntervalsActions.js:120 +msgid "below" msgstr "" -#: js/musicutils.js:814 -msgid "major 7th" +#: js/turtleactions/IntervalsActions.js:124 +msgid "above" msgstr "" -#: js/musicutils.js:815 -msgid "minor 7th" +#: js/turtleactions/IntervalsActions.js:131 +msgid "plus" msgstr "" -#: js/musicutils.js:816 -msgid "dominant 7th" +#: js/turtleactions/IntervalsActions.js:139 +msgid " below" msgstr "" -#: js/musicutils.js:817 -msgid "minor-major 7th" +#: js/turtleactions/IntervalsActions.js:257 +msgid "Adding missing pitch number 0." msgstr "" -#: js/musicutils.js:818 -msgid "fully-diminished 7th" +#: js/turtleactions/IntervalsActions.js:265 +msgid "Ignoring pitch numbers less than zero or greater than eleven." msgstr "" -#: js/musicutils.js:819 -msgid "half-diminished 7th" +#: js/turtleactions/IntervalsActions.js:271 +msgid "Ignoring duplicate pitch numbers." msgstr "" -#: js/musicutils.js:4379 -#: js/musicutils.js:4416 -msgid "current" +#: js/turtleactions/ToneActions.js:134 +msgid "Vibrato intensity must be between 1 and 100." msgstr "" -#: js/musicutils.js:4382 -#: js/musicutils.js:4407 -msgid "next" +#: js/turtleactions/ToneActions.js:139 +msgid "Vibrato rate must be greater than 0." msgstr "" -#: js/musicutils.js:4385 -#: js/musicutils.js:4412 -msgid "previous" +#: js/turtleactions/ToneActions.js:192 +#: js/turtleactions/ToneActions.js:265 +#.TRANS: Depth is the intesity of the tremolo or chorus effect. +msgid "Depth is out of range." msgstr "" -#: js/synthutils.js:104 -#.TRANS: simple monotone synthesizer -msgid "simple-2" +#: js/turtleactions/ToneActions.js:301 +msgid "Distortion must be from 0 to 100." msgstr "" -#: js/synthutils.js:106 -#.TRANS: simple monotone synthesizer -msgid "simple-3" +#: js/turtleactions/ToneActions.js:332 +#.TRANS: partials components in a harmonic series +msgid "Partial must be greater than or equal to 0." msgstr "" -#: js/synthutils.js:108 -#.TRANS: simple monotone synthesizer -msgid "simple-4" +#: js/turtleactions/ToneActions.js:378 +#: js/turtleactions/ToneActions.js:417 +#: js/turtleactions/ToneActions.js:456 +#: js/widgets/timbre.js:782 +msgid "Unable to use synth due to existing oscillator" msgstr "" -#: js/synthutils.js:141 -#.TRANS: musical instrument -msgid "taiko" +#: js/turtleactions/ToneActions.js:388 +#: js/turtleactions/ToneActions.js:427 +msgid "The input cannot be negative." msgstr "" -#: js/modewidget.js:86 -#: js/modewidget.js:88 -#: js/modewidget.js:642 -#: js/modewidget.js:644 -#: js/modewidget.js:712 -#: js/modewidget.js:714 -#: js/temperament.js:2078 -#: js/rhythmruler.js:189 -#: js/rhythmruler.js:1410 -#: js/rhythmruler.js:1412 -#: js/rhythmruler.js:1435 -#: js/rhythmruler.js:1437 -#: js/meterwidget.js:89 -#: js/meterwidget.js:91 +#: js/widgets/modewidget.js:86 +#: js/widgets/modewidget.js:88 +#: js/widgets/modewidget.js:642 +#: js/widgets/modewidget.js:644 +#: js/widgets/modewidget.js:712 +#: js/widgets/modewidget.js:714 +#: js/widgets/meterwidget.js:194 +#: js/widgets/meterwidget.js:196 +#: js/widgets/temperament.js:2236 +#: js/widgets/rhythmruler.js:457 +#: js/widgets/rhythmruler.js:1790 +#: js/widgets/rhythmruler.js:1792 +#: js/widgets/rhythmruler.js:1816 +#: js/widgets/rhythmruler.js:1818 msgid "Play all" msgstr "" -#: js/modewidget.js:115 -#: js/pitchstaircase.js:641 -#: js/phrasemaker.js:339 -#: js/pitchdrummatrix.js:94 -#: js/pitchslider.js:125 -#: js/temperament.js:2083 -#: js/musickeyboard.js:530 -#: js/timbre.js:756 -#: js/meterwidget.js:124 -#: js/arpeggio.js:103 +#: js/widgets/modewidget.js:115 +#: js/widgets/meterwidget.js:229 +#: js/widgets/pitchdrummatrix.js:166 +#: js/widgets/pitchslider.js:125 +#: js/widgets/pitchstaircase.js:641 +#: js/widgets/temperament.js:2244 +#: js/widgets/timbre.js:756 +#: js/widgets/arpeggio.js:103 +#: js/widgets/musickeyboard.js:688 +#: js/widgets/phrasemaker.js:550 msgid "Save" msgstr "" -#: js/modewidget.js:121 -#: js/pitchstaircase.js:686 -#: js/phrasemaker.js:356 -#: js/pitchdrummatrix.js:109 -#: js/musickeyboard.js:534 -#: js/rhythmruler.js:269 -#: js/arpeggio.js:118 +#: js/widgets/modewidget.js:121 +#: js/widgets/pitchdrummatrix.js:181 +#: js/widgets/pitchstaircase.js:686 +#: js/widgets/arpeggio.js:118 +#: js/widgets/musickeyboard.js:696 +#: js/widgets/phrasemaker.js:567 +#: js/widgets/rhythmruler.js:601 #.TRANS: clear all subdivisions from the ruler. msgid "Clear" msgstr "" -#: js/modewidget.js:127 +#: js/widgets/modewidget.js:127 msgid "Rotate counter clockwise" msgstr "" -#: js/modewidget.js:133 +#: js/widgets/modewidget.js:133 msgid "Rotate clockwise" msgstr "" -#: js/modewidget.js:139 +#: js/widgets/modewidget.js:139 msgid "Invert" msgstr "" -#: js/modewidget.js:145 -#: js/pitchstaircase.js:678 -#: js/rhythmruler.js:258 -#: js/timbre.js:963 +#: js/widgets/modewidget.js:145 +#: js/widgets/pitchstaircase.js:678 +#: js/widgets/timbre.js:963 +#: js/widgets/rhythmruler.js:578 msgid "Undo" msgstr "" -#: js/modewidget.js:163 +#: js/widgets/modewidget.js:163 #.TRANS: A circle of notes represents the musical mode. msgid "Click in the circle to select notes for the mode." msgstr "" -#: js/modewidget.js:1017 -#: js/pitchstaircase.js:580 -#: js/phrasemaker.js:4855 -#: js/temperament.js:1754 -#: js/rhythmruler.js:1865 -#: js/rhythmruler.js:2081 -#: js/tempo.js:414 +#: js/widgets/modewidget.js:1017 +#: js/widgets/pitchstaircase.js:580 +#: js/widgets/temperament.js:1929 +#: js/widgets/tempo.js:414 +#: js/widgets/phrasemaker.js:5356 +#: js/widgets/rhythmruler.js:2254 +#: js/widgets/rhythmruler.js:2472 msgid "New action block generated!" msgstr "" -#: js/oscilloscope.js:79 -msgid "Zoom In" -msgstr "" - -#: js/oscilloscope.js:88 -msgid "Zoom Out" -msgstr "" - -#: js/pitchstaircase.js:624 -msgid "Play chord" -msgstr "" - -#: js/pitchstaircase.js:632 -msgid "Play scale" +#: js/widgets/meterwidget.js:275 +msgid "Reset" msgstr "" -#: js/pitchstaircase.js:696 -msgid "Click on a note to create a new step." +#: js/widgets/meterwidget.js:301 +msgid "Click in the circle to select strong beats for the meter." msgstr "" -#: js/phrasemaker.js:363 -msgid "Export" +#: js/widgets/oscilloscope.js:79 +msgid "Zoom In" msgstr "" -#: js/phrasemaker.js:370 -msgid "Sort" +#: js/widgets/oscilloscope.js:88 +msgid "Zoom Out" msgstr "" -#: js/phrasemaker.js:373 -#: js/musickeyboard.js:559 -msgid "Add note" +#: js/widgets/pitchdrummatrix.js:356 +#: js/widgets/pitchdrummatrix.js:752 +msgid "Click in the grid to map notes to drums." msgstr "" -#: js/phrasemaker.js:764 -msgid "Click on the table to add notes." +#: js/widgets/pitchslider.js:103 +msgid "Move up" msgstr "" -#: js/phrasemaker.js:2414 -#: js/phrasemaker.js:2543 -msgid "tuplet value" +#: js/widgets/pitchslider.js:114 +msgid "Move down" msgstr "" -#: js/pitchdrummatrix.js:270 -#: js/pitchdrummatrix.js:639 -msgid "Click in the grid to map notes to drums." +#: js/widgets/pitchslider.js:136 +msgid "Click on the slider to create a note block." msgstr "" -#: js/pitchslider.js:103 -msgid "Move up" +#: js/widgets/pitchstaircase.js:624 +msgid "Play chord" msgstr "" -#: js/pitchslider.js:114 -msgid "Move down" +#: js/widgets/pitchstaircase.js:632 +msgid "Play scale" msgstr "" -#: js/pitchslider.js:136 -msgid "Click on the slider to create a note block." +#: js/widgets/pitchstaircase.js:696 +msgid "Click on a note to create a new step." msgstr "" -#: js/temperament.js:215 +#: js/widgets/temperament.js:321 msgid "back to 2:1 octave space" msgstr "" -#: js/temperament.js:323 +#: js/widgets/temperament.js:447 msgid "edit" msgstr "" -#: js/temperament.js:330 -#: js/temperament.js:332 -#: js/temperament.js:1336 -#: js/temperament.js:1338 +#: js/widgets/temperament.js:454 +#: js/widgets/temperament.js:456 +#: js/widgets/temperament.js:1493 +#: js/widgets/temperament.js:1495 msgid "close" msgstr "" -#: js/temperament.js:423 -#: js/temperament.js:736 -#: js/temperament.js:743 -#: js/temperament.js:845 -#: js/temperament.js:935 -#: js/temperament.js:942 -#: js/temperament.js:1015 -#: js/temperament.js:1284 -#: js/temperament.js:1354 -#: js/temperament.js:1430 +#: js/widgets/temperament.js:552 +#: js/widgets/temperament.js:877 +#: js/widgets/temperament.js:884 +#: js/widgets/temperament.js:986 +#: js/widgets/temperament.js:1080 +#: js/widgets/temperament.js:1087 +#: js/widgets/temperament.js:1160 +#: js/widgets/temperament.js:1433 +#: js/widgets/temperament.js:1511 +#: js/widgets/temperament.js:1596 msgid "done" msgstr "" -#: js/temperament.js:477 -#: js/temperament.js:482 -#: js/temperament.js:918 +#: js/widgets/temperament.js:610 +#: js/widgets/temperament.js:615 +#: js/widgets/temperament.js:1063 msgid "ratio" msgstr "" -#: js/temperament.js:483 +#: js/widgets/temperament.js:616 msgid "interval" msgstr "" -#: js/temperament.js:611 +#: js/widgets/temperament.js:744 msgid "non scalar" msgstr "" -#: js/temperament.js:650 +#: js/widgets/temperament.js:787 msgid "ratios" msgstr "" -#: js/temperament.js:650 +#: js/widgets/temperament.js:787 msgid "arbitrary" msgstr "" -#: js/temperament.js:719 +#: js/widgets/temperament.js:860 msgid "number of divisions" msgstr "" -#: js/temperament.js:741 -#: js/temperament.js:858 -#: js/temperament.js:940 -#: js/temperament.js:1033 +#: js/widgets/temperament.js:882 +#: js/widgets/temperament.js:999 +#: js/widgets/temperament.js:1085 +#: js/widgets/temperament.js:1178 msgid "preview" msgstr "" -#: js/temperament.js:788 +#: js/widgets/temperament.js:929 msgid "The Number of divisions is too large." msgstr "" -#: js/temperament.js:921 +#: js/widgets/temperament.js:1066 msgid "recursion" msgstr "" -#: js/temperament.js:1450 +#: js/widgets/temperament.js:1616 msgid "The octave ratio has changed. This changes temperament significantly." msgstr "" -#: js/temperament.js:2087 +#: js/widgets/temperament.js:2248 msgid "Table" msgstr "" -#: js/temperament.js:2185 +#: js/widgets/temperament.js:2356 msgid "Add pitches" msgstr "" -#: js/musickeyboard.js:570 -msgid "Metronome" +#: js/widgets/tempo.js:78 +#: js/widgets/tempo.js:97 +#: js/widgets/tempo.js:99 +#: js/widgets/aiwidget.js:134 +#: js/widgets/aiwidget.js:136 +#: js/widgets/rhythmruler.js:681 +#: js/widgets/rhythmruler.js:683 +#: js/widgets/rhythmruler.js:1864 +#: js/widgets/rhythmruler.js:1866 +#: js/widgets/sampler.js:180 +#: js/widgets/sampler.js:182 +msgid "Pause" msgstr "" -#: js/musickeyboard.js:1296 -#: plugins/rodi.rtp:193 -msgid "duration" +#: js/widgets/tempo.js:113 +msgid "Save tempo" msgstr "" -#: js/musickeyboard.js:2840 -msgid "New action blocks generated!" +#: js/widgets/tempo.js:144 +msgid "speed up" msgstr "" -#: js/musickeyboard.js:2841 -msgid "New action block generated" +#: js/widgets/tempo.js:150 +msgid "slow down" msgstr "" -#: js/musickeyboard.js:2984 -#: js/musickeyboard.js:2992 -msgid "MIDI device present." +#: js/widgets/tempo.js:194 +msgid "Adjust the tempo with the buttons." msgstr "" -#: js/musickeyboard.js:2995 -msgid "No MIDI device found." +#: js/widgets/tempo.js:261 +msgid "Please enter a number between 30 and 1000" msgstr "" -#: js/musickeyboard.js:3000 -msgid "Failed to get MIDI access in browser." +#: js/widgets/tempo.js:268 +#: js/widgets/tempo.js:271 +msgid "The beats per minute must be between 30 and 1000." msgstr "" -#: js/rhythmruler.js:202 -msgid "Save rhythms" +#: js/widgets/tempo.js:287 +msgid "The beats per minute must be below 1000." msgstr "" -#: js/rhythmruler.js:222 -msgid "Save drum machine" +#: js/widgets/tempo.js:303 +msgid "The beats per minute must be above 30" msgstr "" -#: js/rhythmruler.js:263 -#.TRANS: user can tap out a rhythm by clicking on a ruler. -msgid "Tap a rhythm" +#: js/widgets/timbre.js:766 +msgid "Synthesizer" msgstr "" -#: js/rhythmruler.js:342 -#: js/rhythmruler.js:344 -#: js/rhythmruler.js:1481 -#: js/rhythmruler.js:1483 -#: js/sampler.js:110 -#: js/sampler.js:112 -#: js/tempo.js:78 -#: js/tempo.js:97 -#: js/tempo.js:99 -msgid "Pause" +#: js/widgets/timbre.js:789 +msgid "Oscillator" msgstr "" -#: js/rhythmruler.js:478 -msgid "Click on the ruler to divide it." +#: js/widgets/timbre.js:840 +msgid "Envelope" msgstr "" -#: js/rhythmruler.js:603 -#: js/rhythmruler.js:605 -#: js/rhythmruler.js:804 -#: js/rhythmruler.js:806 -#: js/rhythmruler.js:1386 -#: js/rhythmruler.js:1388 -msgid "tap a rhythm" +#: js/widgets/timbre.js:886 +#: planet/js/GlobalTag.js:50 +#.TRANS: On the Planet, we use labels to tag projects. +msgid "Effects" msgstr "" -#: js/rhythmruler.js:1084 -msgid "Maximum value of 256 has been exceeded." +#: js/widgets/timbre.js:904 +msgid "Filter" msgstr "" -#: js/sampler.js:137 -msgid "Warning: Sample is bigger than 1MB." +#: js/widgets/timbre.js:946 +msgid "Add filter" msgstr "" -#: js/sampler.js:142 -msgid "Upload failed: Sample is not a .wav file." +#: js/widgets/timbre.js:987 +msgid "Click on buttons to open the timbre design tools." msgstr "" -#: js/sampler.js:164 -msgid "A new sample block was generated." +#: js/widgets/timbre.js:1273 +msgid "harmonicity" msgstr "" -#: js/sampler.js:255 -msgid "Upload sample" +#: js/widgets/timbre.js:1340 +#: js/widgets/timbre.js:1406 +msgid "modulation index" msgstr "" -#: js/sampler.js:306 -msgid "Save sample" +#: js/widgets/timbre.js:1484 +msgid "vibrato amount" msgstr "" -#: js/sampler.js:697 -#.TRANS: The reference tone is a sound used for comparison. -msgid "reference tone" +#: js/widgets/timbre.js:1919 +msgid "Filter already present." msgstr "" -#: js/tempo.js:113 -msgid "Save tempo" +#: js/widgets/timbre.js:2322 +msgid "delay (MS)" msgstr "" -#: js/tempo.js:144 -msgid "speed up" +#: js/widgets/timbre.js:2507 +msgid "distortion amount" msgstr "" -#: js/tempo.js:150 -msgid "slow down" +#: js/widgets/aiwidget.js:180 +#: js/widgets/sampler.js:227 +msgid "Warning: Sample is bigger than 1MB." msgstr "" -#: js/tempo.js:194 -msgid "Adjust the tempo with the buttons." +#: js/widgets/aiwidget.js:539 +msgid "New start block generated" msgstr "" -#: js/tempo.js:261 -msgid "Please enter a number between 30 and 1000" +#: js/widgets/aiwidget.js:541 +msgid "MIDI loading. This may take some time depending upon the number of notes in the track" msgstr "" -#: js/tempo.js:268 -#: js/tempo.js:271 -msgid "The beats per minute must be between 30 and 1000." +#: js/widgets/aiwidget.js:551 +#: js/widgets/sampler.js:254 +msgid "Upload failed: Sample is not a .wav file." msgstr "" -#: js/tempo.js:287 -msgid "The beats per minute must be below 1000." +#: js/widgets/aiwidget.js:679 +#: js/widgets/sampler.js:432 +msgid "Save sample" msgstr "" -#: js/tempo.js:303 -msgid "The beats per minute must be above 30" +#: js/widgets/aiwidget.js:701 +msgid "AI Music" msgstr "" -#: js/timbre.js:766 -msgid "Synthesizer" +#: js/widgets/arpeggio.js:239 +msgid "Click in the grid to add steps to the arpeggio." msgstr "" -#: js/timbre.js:789 -msgid "Oscillator" +#: js/widgets/help.js:95 +#: js/widgets/help.js:125 +#: js/widgets/help.js:146 +#: js/widgets/help.js:158 +#: js/widgets/help.js:376 +#: js/widgets/help.js:391 +msgid "Take a tour" msgstr "" -#: js/timbre.js:840 -msgid "Envelope" +#: js/widgets/musickeyboard.js:725 +#: js/widgets/phrasemaker.js:584 +msgid "Add note" msgstr "" -#: js/timbre.js:886 -#: js/GlobalTag.js:50 -#.TRANS: On the Planet, we use labels to tag projects. -msgid "Effects" +#: js/widgets/musickeyboard.js:744 +msgid "Metronome" +msgstr "" + +#: js/widgets/musickeyboard.js:1549 +#: plugins/rodi.rtp:193 +msgid "duration" +msgstr "" + +#: js/widgets/musickeyboard.js:3179 +msgid "New action blocks generated" +msgstr "" + +#: js/widgets/musickeyboard.js:3180 +msgid "New action block generated" msgstr "" -#: js/timbre.js:904 -msgid "Filter" +#: js/widgets/musickeyboard.js:3365 +#: js/widgets/musickeyboard.js:3373 +msgid "MIDI device present." msgstr "" -#: js/timbre.js:946 -msgid "Add filter" +#: js/widgets/musickeyboard.js:3376 +msgid "No MIDI device found." msgstr "" -#: js/timbre.js:987 -msgid "Click on buttons to open the timbre design tools." +#: js/widgets/musickeyboard.js:3386 +msgid "Failed to get MIDI access in browser." msgstr "" -#: js/timbre.js:1273 -msgid "harmonicity" +#: js/widgets/phrasemaker.js:574 +msgid "Export" msgstr "" -#: js/timbre.js:1340 -#: js/timbre.js:1406 -msgid "modulation index" +#: js/widgets/phrasemaker.js:581 +msgid "Sort" msgstr "" -#: js/timbre.js:1484 -msgid "vibrato amount" +#: js/widgets/phrasemaker.js:975 +msgid "Click on the table to add notes." msgstr "" -#: js/timbre.js:1919 -msgid "Filter already present." +#: js/widgets/phrasemaker.js:2677 +#: js/widgets/phrasemaker.js:2819 +msgid "tuplet value" msgstr "" -#: js/timbre.js:2322 -msgid "delay (MS)" +#: js/widgets/rhythmruler.js:486 +msgid "Save rhythms" msgstr "" -#: js/timbre.js:2507 -msgid "distortion amount" +#: js/widgets/rhythmruler.js:512 +msgid "Save drum machine" msgstr "" -#: js/meterwidget.js:170 -msgid "Reset" +#: js/widgets/rhythmruler.js:589 +#.TRANS: user can tap out a rhythm by clicking on a ruler. +msgid "Tap a rhythm" msgstr "" -#: js/meterwidget.js:196 -msgid "Click in the circle to select strong beats for the meter." +#: js/widgets/rhythmruler.js:817 +msgid "Click on the ruler to divide it." msgstr "" -#: js/arpeggio.js:239 -msgid "Click in the grid to add steps to the arpeggio." +#: js/widgets/rhythmruler.js:950 +#: js/widgets/rhythmruler.js:952 +#: js/widgets/rhythmruler.js:1152 +#: js/widgets/rhythmruler.js:1154 +#: js/widgets/rhythmruler.js:1765 +#: js/widgets/rhythmruler.js:1767 +msgid "tap a rhythm" msgstr "" -#: js/ProjectStorage.js:243 -msgid "anonymous" +#: js/widgets/rhythmruler.js:1459 +msgid "Maximum value of 256 has been exceeded." msgstr "" -#: js/GlobalCard.js:68 -msgid "Share" +#: js/widgets/sampler.js:237 +msgid "Recording started..." msgstr "" -#: js/GlobalCard.js:74 -msgid "Flags" +#: js/widgets/sampler.js:245 +msgid "Recording complete..." msgstr "" -#: js/LocalCard.js:36 -msgid "View published project" +#: js/widgets/sampler.js:283 +msgid "A new sample block was generated." msgstr "" -#: js/LocalCard.js:42 -msgid "Publish project" +#: js/widgets/sampler.js:378 +msgid "Upload sample" msgstr "" -#: js/LocalCard.js:51 -msgid "Edit project" +#: js/widgets/sampler.js:399 +msgid "Warning: Your sample cannot be loaded because it is >1MB." msgstr "" -#: js/LocalCard.js:52 -msgid "Delete project" +#: js/widgets/sampler.js:448 +msgid "Toggle Mic" msgstr "" -#: js/LocalCard.js:53 -msgid "Download project" +#: js/widgets/sampler.js:458 +msgid "Playback" msgstr "" -#: js/LocalCard.js:55 -msgid "Duplicate project" +#: js/widgets/sampler.js:979 +#.TRANS: The reference tone is a sound used for comparison. +msgid "reference tone" msgstr "" -#: js/GlobalTag.js:28 +#: planet/js/GlobalTag.js:28 #.TRANS: On the Planet, we use labels to tag projects. msgid "All Projects" msgstr "" -#: js/GlobalTag.js:30 -#: js/StringHelper.js:37 +#: planet/js/GlobalTag.js:30 +#: planet/js/StringHelper.js:37 #.TRANS: On the Planet, we use labels to tag projects. msgid "My Projects" msgstr "" -#: js/GlobalTag.js:32 +#: planet/js/GlobalTag.js:32 #.TRANS: On the Planet, we use labels to tag projects. msgid "Examples" msgstr "" -#: js/GlobalTag.js:34 +#: planet/js/GlobalTag.js:34 #.TRANS: On the Planet, we use labels to tag projects. msgid "Music" msgstr "" -#: js/GlobalTag.js:36 +#: planet/js/GlobalTag.js:36 #.TRANS: On the Planet, we use labels to tag projects. msgid "Art" msgstr "" -#: js/GlobalTag.js:38 +#: planet/js/GlobalTag.js:38 #.TRANS: On the Planet, we use labels to tag projects. msgid "Math" msgstr "" -#: js/GlobalTag.js:40 +#: planet/js/GlobalTag.js:40 #.TRANS: On the Planet, we use labels to tag projects. msgid "Interactive" msgstr "" -#: js/GlobalTag.js:42 +#: planet/js/GlobalTag.js:42 #.TRANS: On the Planet, we use labels to tag projects. msgid "Design" msgstr "" -#: js/GlobalTag.js:44 +#: planet/js/GlobalTag.js:44 #.TRANS: On the Planet, we use labels to tag projects. msgid "Game" msgstr "" -#: js/GlobalTag.js:46 +#: planet/js/GlobalTag.js:46 #.TRANS: On the Planet, we use labels to tag projects. msgid "Media" msgstr "" -#: js/GlobalTag.js:48 +#: planet/js/GlobalTag.js:48 #.TRANS: On the Planet, we use labels to tag projects. msgid "Sensors" msgstr "" -#: js/GlobalTag.js:52 +#: planet/js/GlobalTag.js:52 #.TRANS: On the Planet, we use labels to tag projects. msgid "Code Snippet" msgstr "" -#: js/helper.js:149 -#: js/StringHelper.js:49 -msgid "Show more tags" +#: planet/js/LocalCard.js:36 +msgid "View published project" msgstr "" -#: js/helper.js:150 -msgid "Show fewer tags" +#: planet/js/LocalCard.js:42 +msgid "Publish project" +msgstr "" + +#: planet/js/LocalCard.js:51 +msgid "Edit project" +msgstr "" + +#: planet/js/LocalCard.js:52 +msgid "Delete project" +msgstr "" + +#: planet/js/LocalCard.js:53 +msgid "Download project" +msgstr "" + +#: planet/js/LocalCard.js:55 +msgid "Duplicate project" +msgstr "" + +#: planet/js/ProjectStorage.js:243 +msgid "anonymous" +msgstr "" + +#: planet/js/SaveInterface.js:34 +msgid "Open in Music Blocks" +msgstr "" + +#: planet/js/SaveInterface.js:35 +msgid "Open in Turtle Blocks" +msgstr "" + +#: planet/js/GlobalCard.js:68 +msgid "Share" +msgstr "" + +#: planet/js/GlobalCard.js:74 +msgid "Flags" +msgstr "" + +#: planet/js/GlobalPlanet.js:35 +msgid "No results found." +msgstr "" + +#: planet/js/GlobalPlanet.js:51 +msgid "Remix of" +msgstr "" + +#: planet/js/GlobalPlanet.js:509 +msgid "Cannot connect to server" msgstr "" -#: js/ProjectViewer.js:30 +#: planet/js/ProjectViewer.js:30 msgid "Error: Report could not be submitted. Try again later." msgstr "" -#: js/ProjectViewer.js:31 +#: planet/js/ProjectViewer.js:31 msgid "Thank you for reporting this project. A moderator will review the project shortly, to verify violation of the Sugar Labs Code of Conduct." msgstr "" -#: js/ProjectViewer.js:32 -#: js/StringHelper.js:62 -#: js/StringHelper.js:64 -#: js/StringHelper.js:68 +#: planet/js/ProjectViewer.js:32 +#: planet/js/StringHelper.js:62 +#: planet/js/StringHelper.js:64 +#: planet/js/StringHelper.js:68 msgid "Report Project" msgstr "" -#: js/ProjectViewer.js:33 -#: js/StringHelper.js:63 +#: planet/js/ProjectViewer.js:33 +#: planet/js/StringHelper.js:63 msgid "Project Reported" msgstr "" -#: js/ProjectViewer.js:34 +#: planet/js/ProjectViewer.js:34 msgid "Report description required" msgstr "" -#: js/ProjectViewer.js:35 +#: planet/js/ProjectViewer.js:35 msgid "Report description too long" msgstr "" -#: js/StringHelper.js:30 +#: planet/js/Publisher.js:30 +msgid "Feature unavailable - cannot connect to server. Reload Music Blocks to try again." +msgstr "" + +#: planet/js/Publisher.js:220 +#: planet/js/Publisher.js:237 +msgid "This field is required" +msgstr "" + +#: planet/js/Publisher.js:227 +msgid "Title too long" +msgstr "" + +#: planet/js/Publisher.js:244 +msgid "Description too long" +msgstr "" + +#: planet/js/Publisher.js:341 +msgid "Server Error" +msgstr "" + +#: planet/js/Publisher.js:341 +msgid "Try Again" +msgstr "" + +#: planet/js/StringHelper.js:30 msgid "Planet" msgstr "" -#: js/StringHelper.js:31 +#: planet/js/StringHelper.js:31 msgid "Close Planet" msgstr "" -#: js/StringHelper.js:32 +#: planet/js/StringHelper.js:32 msgid "Open project from file" msgstr "" -#: js/StringHelper.js:34 +#: planet/js/StringHelper.js:34 msgid "Local" msgstr "" -#: js/StringHelper.js:35 +#: planet/js/StringHelper.js:35 msgid "Global" msgstr "" -#: js/StringHelper.js:36 +#: planet/js/StringHelper.js:36 msgid "Search for a project" msgstr "" -#: js/StringHelper.js:38 +#: planet/js/StringHelper.js:38 msgid "Publish Project" msgstr "" -#: js/StringHelper.js:40 +#: planet/js/StringHelper.js:40 msgid "Tags (max 5)" msgstr "" -#: js/StringHelper.js:41 -#: js/StringHelper.js:61 +#: planet/js/StringHelper.js:41 +#: planet/js/StringHelper.js:61 msgid "Description" msgstr "" -#: js/StringHelper.js:42 -#: js/StringHelper.js:67 +#: planet/js/StringHelper.js:42 +#: planet/js/StringHelper.js:67 msgid "Submit" msgstr "" -#: js/StringHelper.js:43 -#: js/StringHelper.js:47 +#: planet/js/StringHelper.js:43 +#: planet/js/StringHelper.js:47 msgid "Cancel" msgstr "" -#: js/StringHelper.js:44 +#: planet/js/StringHelper.js:44 msgid "Delete \\"\\"?" msgstr "" -#: js/StringHelper.js:45 +#: planet/js/StringHelper.js:45 msgid "Permanently delete project \\"\\"?" msgstr "" -#: js/StringHelper.js:48 +#: planet/js/StringHelper.js:48 msgid "Explore Projects" msgstr "" -#: js/StringHelper.js:50 +#: planet/js/StringHelper.js:49 +#: planet/js/helper.js:149 +msgid "Show more tags" +msgstr "" + +#: planet/js/StringHelper.js:50 msgid "Most recent" msgstr "" -#: js/StringHelper.js:51 +#: planet/js/StringHelper.js:51 msgid "Most liked" msgstr "" -#: js/StringHelper.js:52 +#: planet/js/StringHelper.js:52 msgid "Most downloaded" msgstr "" -#: js/StringHelper.js:53 +#: planet/js/StringHelper.js:53 msgid "A-Z" msgstr "" -#: js/StringHelper.js:54 +#: planet/js/StringHelper.js:54 msgid "Sort by" msgstr "" -#: js/StringHelper.js:55 +#: planet/js/StringHelper.js:55 msgid "Load More Projects" msgstr "" -#: js/StringHelper.js:56 +#: planet/js/StringHelper.js:56 msgid "Last Updated" msgstr "" -#: js/StringHelper.js:57 +#: planet/js/StringHelper.js:57 msgid "Creation Date" msgstr "" -#: js/StringHelper.js:58 +#: planet/js/StringHelper.js:58 msgid "Number of Downloads:" msgstr "" -#: js/StringHelper.js:59 +#: planet/js/StringHelper.js:59 msgid "Number of Likes:" msgstr "" -#: js/StringHelper.js:60 +#: planet/js/StringHelper.js:60 msgid "Tags:" msgstr "" -#: js/StringHelper.js:65 +#: planet/js/StringHelper.js:65 msgid "Report projects which violate the Sugar Labs Code of Conduct." msgstr "" -#: js/StringHelper.js:66 +#: planet/js/StringHelper.js:66 msgid "Reason for reporting project" msgstr "" -#: js/StringHelper.js:70 +#: planet/js/StringHelper.js:70 msgid "Download as File" msgstr "" -#: js/GlobalPlanet.js:35 -msgid "No results found." -msgstr "" - -#: js/GlobalPlanet.js:51 -msgid "Remix of" -msgstr "" - -#: js/GlobalPlanet.js:509 -msgid "Cannot connect to server" -msgstr "" - -#: js/Publisher.js:30 -msgid "Feature unavailable - cannot connect to server. Reload Music Blocks to try again." -msgstr "" - -#: js/Publisher.js:218 -#: js/Publisher.js:235 -msgid "This field is required" -msgstr "" - -#: js/Publisher.js:225 -msgid "Title too long" +#: planet/js/helper.js:150 +msgid "Show fewer tags" msgstr "" -#: js/Publisher.js:242 -msgid "Description too long" +#: plugins/accelerometer.rtp:48 +msgid "motion x" msgstr "" -#: js/Publisher.js:339 -msgid "Server Error" +#: plugins/accelerometer.rtp:56 +msgid "motion y" msgstr "" -#: js/Publisher.js:339 -msgid "Try Again" +#: plugins/accelerometer.rtp:64 +msgid "motion z" msgstr "" -#: js/SaveInterface.js:34 -msgid "Open in Music Blocks" +#: plugins/facebook.rtp:27 +msgid "publish" msgstr "" -#: js/SaveInterface.js:35 -msgid "Open in Turtle Blocks" +#: plugins/maths.rtp:62 +msgid "power" msgstr "" -#: plugins/weather.rtp:68 -#: plugins/weather.rtp:97 -msgid "Days ahead must be in the range of -1 to 5." +#: plugins/maths.rtp:62 +msgid "base" msgstr "" -#: plugins/weather.rtp:122 -msgid "forecast" +#: plugins/maths.rtp:62 +msgid "exp" msgstr "" -#: plugins/weather.rtp:123 -#: plugins/weather.rtp:137 -#: plugins/weather.rtp:150 -msgid "city" +#: plugins/maths.rtp:99 +msgid "floor" msgstr "" -#: plugins/weather.rtp:124 -#: plugins/weather.rtp:138 -#: plugins/weather.rtp:151 -msgid "day" +#: plugins/maths.rtp:104 +msgid "ceiling" msgstr "" -#: plugins/weather.rtp:136 -msgid "high" +#: plugins/maths.rtp:109 +msgid "to degrees" msgstr "" -#: plugins/weather.rtp:149 -msgid "low" +#: plugins/maths.rtp:114 +msgid "to radians" msgstr "" #: plugins/nutrition.rtp:104 @@ -9458,45 +9867,6 @@ msgstr "" msgid "water" msgstr "" -#: plugins/maths.rtp:62 -#: plugins/examples.rtp:93 -msgid "power" -msgstr "" - -#: plugins/maths.rtp:62 -#: plugins/examples.rtp:93 -msgid "base" -msgstr "" - -#: plugins/maths.rtp:62 -#: plugins/examples.rtp:93 -msgid "exp" -msgstr "" - -#: plugins/maths.rtp:99 -#: plugins/examples.rtp:130 -msgid "floor" -msgstr "" - -#: plugins/maths.rtp:104 -#: plugins/examples.rtp:135 -msgid "ceiling" -msgstr "" - -#: plugins/maths.rtp:109 -#: plugins/examples.rtp:140 -msgid "to degrees" -msgstr "" - -#: plugins/maths.rtp:114 -#: plugins/examples.rtp:145 -msgid "to radians" -msgstr "" - -#: plugins/facebook.rtp:27 -msgid "publish" -msgstr "" - #: plugins/rodi.rtp:172 msgid "blink" msgstr "" @@ -9525,18 +9895,66 @@ msgstr "" msgid "move" msgstr "" -#: plugins/accelerometer.rtp:48 -msgid "motion x" +#: plugins/weather.rtp:68 +#: plugins/weather.rtp:97 +msgid "Days ahead must be in the range of -1 to 5." msgstr "" -#: plugins/accelerometer.rtp:56 -msgid "motion y" +#: plugins/weather.rtp:122 +msgid "forecast" msgstr "" -#: plugins/accelerometer.rtp:64 -msgid "motion z" +#: plugins/weather.rtp:123 +#: plugins/weather.rtp:137 +#: plugins/weather.rtp:150 +msgid "city" +msgstr "" + +#: plugins/weather.rtp:124 +#: plugins/weather.rtp:138 +#: plugins/weather.rtp:151 +msgid "day" +msgstr "" + +#: plugins/weather.rtp:136 +msgid "high" +msgstr "" + +#: plugins/weather.rtp:149 +msgid "low" msgstr "" +#: js/toolbar.js:70 + +#: js/toolbar.js:130 + +#: js/toolbar.js:194 + +#: js/toolbar.js:249 + +#~msgid "Toggle JavaScript Editor" +#~msgstr "" + +#: js/EnsembleBlocks.js:643 + +#~msgid "The Turrle pitch block returns the current pitch number being played by the specified turtle." +#~msgstr "" + +#: js/PitchActions.js:88 + +#~msgid "The Scalar Step Block must be used inside of a Note Block." +#~msgstr "" + +#: js/PitchActions.js:107 + +#~msgid "The Scalar Step Block must be preceded by a Pitch Block." +#~msgstr "" + +#: js/musickeyboard.js:2840 + +#~msgid "New action blocks generated!" +#~msgstr "" + #: js/toolbar.js:110 #: js/toolbar.js:204 @@ -9877,11 +10295,6 @@ msgstr "" #~msgid "The Time block returns the number of seconds that the program has been running." #~msgstr "" -#: js/help.js:95 - -#~msgid "Take a tour" -#~msgstr "" - #: js/GlobalCard.js:48 #~msgid "More Details" @@ -12780,11 +13193,6 @@ msgstr "" #~msgid "The save-stack button saves a stack onto a custom palette. It appears after a \"long press\" on a stack." #~msgstr "" -#: js/musicutils.js:254 - -#~msgid "Custom" -#~msgstr "" - #: js/basicblocks.js:4785 #~msgid "Rhythm" diff --git a/po/kn.po b/po/kn.po index e11bbc2a1c..5a0dc14d90 100644 --- a/po/kn.po +++ b/po/kn.po @@ -2126,276 +2126,131 @@ #: js/planetInterface.js:104 #: js/planetInterface.js:104 #: js/planetInterface.js:104 -msgid "project undefined" -msgstr "" - -#: js/logo.js:61 -msgid "Not a valid pitch name" -msgstr "" - -#: js/logo.js:507 -#: js/ProgramBlocks.js:258 -#: js/ProgramBlocks.js:427 -msgid "You must select a file." -msgstr "" - -#: js/logo.js:1184 -#: js/turtles.js:118 -#: js/turtle-painter.js:1192 -#: js/turtle-painter.js:1193 -#: js/block.js:1463 -#: js/lilypond.js:757 -#: js/lilypond.js:921 -#: js/lilypond.js:959 -#: js/ActionBlocks.js:1223 -#: js/ProgramBlocks.js:1267 -msgid "start" -msgstr "" - -#: js/logo.js:1696 -msgid "Playback is ready." -msgstr "" - -#: js/blocks.js:1011 -#: js/blocks.js:3427 -#: js/blocks.js:3428 -#: js/blocks.js:3653 -#: js/blocks.js:4012 -#: js/blocks.js:4205 -#: js/blocks.js:5343 -#: js/blocks.js:6474 -#: js/palette.js:527 -#: js/palette.js:536 -#: js/palette.js:545 -#: js/palette.js:554 -#: js/palette.js:1131 -#: js/palette.js:1142 -#: js/palette.js:1153 -#: js/palette.js:1164 -#: js/palette.js:1183 -#: js/rubrics.js:529 -#: js/macros.js:170 -#: js/macros.js:266 -#: js/macros.js:267 -#: js/macros.js:276 -#: js/macros.js:828 -#: js/block.js:1449 -#: js/block.js:4164 -#: js/block.js:4182 -#: js/block.js:4193 -#: js/turtledefs.js:128 -#: js/turtledefs.js:230 -#: js/ActionBlocks.js:254 -#: js/ActionBlocks.js:307 -#: js/ActionBlocks.js:617 -#: js/ActionBlocks.js:716 -#: js/ActionBlocks.js:961 -#: js/ActionBlocks.js:1049 -#: js/ActionBlocks.js:1322 -#: js/ActionBlocks.js:1325 -#: js/ActionBlocks.js:1337 -#: js/ActionBlocks.js:1404 -#: js/MeterBlocks.js:715 -#: js/MeterBlocks.js:768 -#: js/MeterBlocks.js:831 -#: js/MeterBlocks.js:892 -#: js/phrasemaker.js:4412 -#: js/musickeyboard.js:2647 -#: js/rhythmruler.js:1928 -#: js/rhythmruler.js:1935 -#: js/rhythmruler.js:2119 -#: js/rhythmruler.js:2126 -msgid "action" -msgstr "" - -#: js/blocks.js:1205 -#: js/blocks.js:3380 -#: js/blocks.js:3770 -#: js/blocks.js:3801 -#: js/blocks.js:3850 -#: js/blocks.js:3885 -#: js/blocks.js:6497 -#: js/palette.js:509 -#: js/palette.js:638 -#: js/palette.js:1107 -#: js/BoxesBlocks.js:282 -#: js/BoxesBlocks.js:285 -#: js/BoxesBlocks.js:405 -#: js/BoxesBlocks.js:594 -msgid "box" -msgstr "" - -#: js/blocks.js:1680 -msgid "Consider breaking this stack into parts." +#: js/SaveInterface.js:59 +#: js/SaveInterface.js:61 +#: js/SaveInterface.js:93 +msgid "Music Blocks Project" msgstr "" -#: js/blocks.js:2408 -#: js/palette.js:653 -#: js/MediaBlocks.js:602 -msgid "open file" +#: js/SaveInterface.js:63 +msgid "This project was created in Music Blocks" msgstr "" -#: js/blocks.js:2415 -#: js/blocks.js:2423 -#: js/activity.js:1875 -msgid "audio file" +#: js/SaveInterface.js:67 +msgid "Music Blocks is a Free/Libre Software application." msgstr "" -#: js/blocks.js:2536 -#: js/blocks.js:3147 -#: js/block.js:3543 -msgid "on2" +#: js/SaveInterface.js:69 +msgid "The source code can be accessed at" msgstr "" -#: js/blocks.js:2538 -#: js/blocks.js:3149 -#: js/block.js:3545 -msgid "off" +#: js/SaveInterface.js:72 +msgid "For more information, please consult the" msgstr "" -#: js/blocks.js:2543 -#: js/blocks.js:3154 -#: js/palette.js:618 -#: js/block.js:3466 -#: js/BooleanBlocks.js:77 -#: js/BooleanBlocks.js:167 -#: js/BooleanBlocks.js:251 -#: js/BooleanBlocks.js:335 -#: js/BooleanBlocks.js:433 -#: js/BooleanBlocks.js:539 -#: js/BooleanBlocks.js:640 -#: js/BooleanBlocks.js:741 -#: js/BooleanBlocks.js:847 -#: js/BooleanBlocks.js:948 -#: js/BooleanBlocks.js:1033 -#: js/SensorsBlocks.js:910 -msgid "true" +#: js/SaveInterface.js:76 +#: js/turtledefs.js:795 +msgid "Music Blocks Guide" msgstr "" -#: js/blocks.js:2545 -#: js/blocks.js:3156 -#: js/block.js:3466 -#: js/BooleanBlocks.js:79 -#: js/BooleanBlocks.js:169 -#: js/BooleanBlocks.js:253 -#: js/BooleanBlocks.js:337 -#: js/BooleanBlocks.js:435 -#: js/BooleanBlocks.js:541 -#: js/BooleanBlocks.js:642 -#: js/BooleanBlocks.js:743 -#: js/BooleanBlocks.js:849 -#: js/BooleanBlocks.js:950 -#: js/SensorsBlocks.js:912 -msgid "false" +#: js/SaveInterface.js:83 +msgid "Alternatively, open the file in Music Blocks using the Load project button." msgstr "" -#: js/blocks.js:3183 -#: js/palette.js:574 -#: js/MediaBlocks.js:892 -#: js/MediaBlocks.js:963 -msgid "text" +#: js/SaveInterface.js:85 +msgid "Project Code" msgstr "" -#: js/blocks.js:3379 -#: js/palette.js:641 -#: js/palette.js:642 -#: js/BoxesBlocks.js:514 -msgid "store in box" +#: js/SaveInterface.js:87 +msgid "This code stores data about the blocks in a project." msgstr "" -#: js/blocks.js:3384 -#: js/blocks.js:3824 -#: js/blocks.js:3859 -#: js/blocks.js:3894 -#: js/blocks.js:5773 -#: js/blocks.js:5794 -#: js/BoxesBlocks.js:772 -msgid "box1" +#: js/SaveInterface.js:89 +msgid "Show" msgstr "" -#: js/blocks.js:3386 -#: js/blocks.js:3826 -#: js/blocks.js:3861 -#: js/blocks.js:3896 -#: js/blocks.js:5775 -#: js/blocks.js:5796 -#: js/BoxesBlocks.js:663 -msgid "box2" +#: js/SaveInterface.js:91 +msgid "Hide" msgstr "" -#: js/blocks.js:4058 -#: js/palette.js:639 -#: js/palette.js:644 -#: js/palette.js:1043 -#: js/BoxesBlocks.js:591 -msgid "store in" +#: js/SaveInterface.js:131 +#: js/SaveInterface.js:204 +#: js/SaveInterface.js:262 +#: js/SaveInterface.js:389 +#: js/SaveInterface.js:417 +#: js/activity.js:4884 +#: planet/js/ProjectStorage.js:27 +#: planet/js/GlobalPlanet.js:467 +#: planet/js/GlobalPlanet.js:469 +#: planet/js/GlobalPlanet.js:495 +#.TRANS: default project title when saving as Lilypond +msgid "My Project" msgstr "" -#: js/blocks.js:4058 -#: js/EnsembleBlocks.js:391 -#: js/EnsembleBlocks.js:402 -#: js/MediaBlocks.js:746 -#: js/ProgramBlocks.js:390 -#: js/ProgramBlocks.js:495 -#: js/ProgramBlocks.js:658 -#: js/BoxesBlocks.js:595 -#: js/PitchBlocks.js:656 -#: js/PitchBlocks.js:932 -#: js/PitchBlocks.js:1827 -#: js/ToneBlocks.js:1025 -#: js/DictBlocks.js:215 -#: js/DictBlocks.js:289 -msgid "name" +#: js/SaveInterface.js:197 +#: planet/js/SaveInterface.js:58 +msgid "No description provided" msgstr "" -#: js/blocks.js:4058 -#: js/RhythmBlocks.js:1130 -#: js/BoxesBlocks.js:75 -#: js/BoxesBlocks.js:595 -#: js/HeapBlocks.js:544 -#: js/DictBlocks.js:289 -#: js/DictBlocks.js:430 -msgid "value" +#: js/SaveInterface.js:332 +msgid "Your recording is in progress." msgstr "" -#: js/blocks.js:4907 -msgid "There is no block selected." +#: js/SaveInterface.js:401 +#.TRANS: File name prompt for save as Lilypond +msgid "File name" msgstr "" -#: js/blocks.js:5002 -#: js/MediaBlocks.js:888 -msgid "show" +#: js/SaveInterface.js:403 +#: planet/js/StringHelper.js:39 +#.TRANS: Project title prompt for save as Lilypond +msgid "Project title" msgstr "" -#: js/blocks.js:5005 -#: js/MediaBlocks.js:803 -#.TRANS: Avatar is the image used to determine the appearance of the mouse. -msgid "avatar" +#: js/SaveInterface.js:405 +#.TRANS: Project title prompt for save as Lilypond +msgid "Project author" msgstr "" -#: js/blocks.js:5008 -#: js/ToneBlocks.js:1010 -#: js/sampler.js:693 -#.TRANS: The sound sample that the user uploads. -msgid "sample" +#: js/SaveInterface.js:407 +#.TRANS: MIDI prompt for save as Lilypond +msgid "Include MIDI output?" msgstr "" -#: js/turtles.js:874 -msgid "Grid" +#: js/SaveInterface.js:409 +#.TRANS: Guitar prompt for save as Lilypond +msgid "Include guitar tablature output?" msgstr "" -#: js/turtles.js:891 -#: js/turtledefs.js:626 -msgid "Clean" +#: js/SaveInterface.js:411 +#.TRANS: Lilypond is a scripting language for generating sheet music +msgid "Save as Lilypond" msgstr "" -#: js/turtles.js:912 -#: js/turtledefs.js:632 -msgid "Collapse" +#: js/SaveInterface.js:426 +#: js/blocks/EnsembleBlocks.js:75 +#: js/blocks/EnsembleBlocks.js:154 +#: js/blocks/EnsembleBlocks.js:216 +#: js/blocks/EnsembleBlocks.js:302 +#: js/blocks/EnsembleBlocks.js:348 +#: js/blocks/EnsembleBlocks.js:389 +#: js/blocks/EnsembleBlocks.js:441 +#: js/blocks/EnsembleBlocks.js:490 +#: js/blocks/EnsembleBlocks.js:536 +#: js/blocks/EnsembleBlocks.js:583 +#: js/blocks/EnsembleBlocks.js:637 +#: js/blocks/EnsembleBlocks.js:753 +#: js/blocks/EnsembleBlocks.js:840 +#: js/blocks/EnsembleBlocks.js:899 +#: js/blocks/EnsembleBlocks.js:942 +#: js/blocks/EnsembleBlocks.js:1212 +#: js/blocks/EnsembleBlocks.js:1280 +#.TRANS: default project author when saving as Lilypond +msgid "Mr. Mouse" msgstr "" -#: js/turtles.js:940 -msgid "Expand" +#: js/SaveInterface.js:573 +msgid "The Lilypond code is copied to clipboard. You can paste it here: " msgstr "" #: js/languagebox.js:198 @@ -2406,6933 +2261,7487 @@ msgstr "" msgid "Music Blocks is already set to this language." msgstr "" -#: js/piemenus.js:200 -#: js/musicutils.js:808 -#: js/musicutils.js:824 -#: js/phrasemaker.js:1672 -#: js/musickeyboard.js:2041 -#: js/sampler.js:544 -#.TRANS: double sharp is a music term related to pitch -msgid "double sharp" +#: js/planetInterface.js:131 +msgid "project undefined" msgstr "" -#: js/piemenus.js:201 -#: js/PitchBlocks.js:1510 -#: js/PitchActions.js:580 -#: js/musicutils.js:806 -#: js/musicutils.js:825 -#: js/phrasemaker.js:1673 -#: js/musickeyboard.js:2042 -#: js/sampler.js:545 -#.TRANS: sharp is a half-step up in pitch -#.TRANS: sharp is a music term related to pitch -msgid "sharp" +#: js/rubrics.js:523 +#: js/turtledefs.js:119 +#: js/turtledefs.js:221 +#: js/blocks/RhythmBlockPaletteBlocks.js:52 +#: js/blocks/RhythmBlockPaletteBlocks.js:234 +#: js/blocks/ProgramBlocks.js:745 +#: js/widgets/rhythmruler.js:2057 +#: js/widgets/rhythmruler.js:2064 +#: js/widgets/rhythmruler.js:2133 +#: js/widgets/rhythmruler.js:2140 +#: js/widgets/rhythmruler.js:2219 +#.TRANS: an arrangement of notes based on duration +msgid "rhythm" msgstr "" -#: js/piemenus.js:202 -#: js/musicutils.js:804 -#: js/musicutils.js:826 -#: js/phrasemaker.js:1674 -#: js/musickeyboard.js:2043 -#: js/sampler.js:546 -#.TRANS: natural is a music term related to pitch -msgid "natural" +#: js/rubrics.js:524 +#: js/turtledefs.js:121 +#: js/turtledefs.js:223 +#: js/block-verbose.js:2622 +#: js/block.js:2550 +#: js/blocks/IntervalsBlocks.js:63 +#: js/blocks/SensorsBlocks.js:178 +#: js/blocks/PitchBlocks.js:1839 +#: js/blocks/PitchBlocks.js:1853 +#: js/widgets/musickeyboard.js:1935 +#: js/widgets/phrasemaker.js:1036 +#.TRANS: pitch number +#.TRANS: pitch number +#.TRANS: we specify pitch in terms of a name and an octave. The name can be CDEFGAB or Do Re Mi Fa Sol La Ti. Octave is a number between 1 and 8. +msgid "pitch" msgstr "" -#: js/piemenus.js:203 -#: js/PitchBlocks.js:1469 -#: js/PitchActions.js:583 -#: js/musicutils.js:802 -#: js/musicutils.js:827 -#: js/phrasemaker.js:1675 -#: js/musickeyboard.js:2044 -#: js/sampler.js:547 -#.TRANS: flat is a half-step down in pitch -#.TRANS: flat is a music term related to pitch -msgid "flat" +#: js/rubrics.js:525 +#: js/turtledefs.js:123 +#: js/turtledefs.js:225 +msgid "tone" msgstr "" -#: js/piemenus.js:204 -#: js/musicutils.js:800 -#: js/musicutils.js:828 -#: js/phrasemaker.js:1676 -#: js/musickeyboard.js:2045 -#: js/sampler.js:548 -#.TRANS: double flat is a music term related to pitch -msgid "double flat" +#: js/rubrics.js:526 +#: js/lilypond.js:605 +#: js/lilypond.js:904 +#: js/lilypond.js:910 +#: js/lilypond.js:948 +msgid "mouse" msgstr "" -#: js/piemenus.js:2861 -#: js/PitchBlocks.js:1357 -#: js/musicutils.js:627 -#.TRANS: unison means the note is the same as the current note -#.TRANS: unison is a music term related to intervals -msgid "unison" +#: js/rubrics.js:527 +#: js/turtledefs.js:132 +#: js/turtledefs.js:234 +#: js/widgets/phrasemaker.js:1040 +msgid "pen" msgstr "" -#: js/piemenus.js:3015 -#: js/piemenus.js:3088 -#: js/musicutils.js:635 -#: js/musicutils.js:810 -#: js/musicutils.js:912 -#.TRANS: major is a music term related to intervals and mode -msgid "major" +#: js/rubrics.js:528 +#: js/turtledefs.js:133 +#: js/turtledefs.js:235 +#: js/blocks/NumberBlocks.js:981 +#: js/blocks/PitchBlocks.js:1717 +#: js/blocks/PitchBlocks.js:1758 +msgid "number" msgstr "" -#: js/piemenus.js:3015 -#: js/piemenus.js:3088 -#: js/musicutils.js:653 -#.TRANS: modal scale for music -msgid "ionian" +#: js/rubrics.js:529 +#: js/turtledefs.js:127 +#: js/turtledefs.js:229 +msgid "flow" msgstr "" -#: js/piemenus.js:3017 -#: js/piemenus.js:3092 -#: js/musicutils.js:633 -#: js/musicutils.js:811 -#: js/musicutils.js:909 -#.TRANS: minor is a music term related to intervals and mode -msgid "minor" +#: js/rubrics.js:530 +#: js/turtledefs.js:128 +#: js/turtledefs.js:230 +#: js/block-verbose.js:1609 +#: js/block-verbose.js:4559 +#: js/block-verbose.js:4577 +#: js/block-verbose.js:4588 +#: js/block.js:1573 +#: js/block.js:4483 +#: js/block.js:4501 +#: js/block.js:4512 +#: js/blocks.js:1018 +#: js/blocks.js:3491 +#: js/blocks.js:3492 +#: js/blocks.js:3717 +#: js/blocks.js:4076 +#: js/blocks.js:4269 +#: js/blocks.js:5432 +#: js/blocks.js:6563 +#: js/macros.js:170 +#: js/macros.js:266 +#: js/macros.js:267 +#: js/macros.js:276 +#: js/macros.js:828 +#: js/palette.js:527 +#: js/palette.js:536 +#: js/palette.js:545 +#: js/palette.js:554 +#: js/palette.js:1129 +#: js/palette.js:1140 +#: js/palette.js:1151 +#: js/palette.js:1162 +#: js/palette.js:1181 +#: js/blocks/ActionBlocks.js:254 +#: js/blocks/ActionBlocks.js:307 +#: js/blocks/ActionBlocks.js:617 +#: js/blocks/ActionBlocks.js:716 +#: js/blocks/ActionBlocks.js:961 +#: js/blocks/ActionBlocks.js:1049 +#: js/blocks/ActionBlocks.js:1322 +#: js/blocks/ActionBlocks.js:1325 +#: js/blocks/ActionBlocks.js:1337 +#: js/blocks/ActionBlocks.js:1404 +#: js/blocks/MeterBlocks.js:715 +#: js/blocks/MeterBlocks.js:768 +#: js/blocks/MeterBlocks.js:831 +#: js/blocks/MeterBlocks.js:892 +#: js/widgets/musickeyboard.js:2986 +#: js/widgets/phrasemaker.js:4913 +#: js/widgets/rhythmruler.js:2319 +#: js/widgets/rhythmruler.js:2326 +#: js/widgets/rhythmruler.js:2511 +#: js/widgets/rhythmruler.js:2518 +msgid "action" msgstr "" -#: js/piemenus.js:3017 -#: js/piemenus.js:3092 -#: js/musicutils.js:663 -#.TRANS: modal scale for music -msgid "aeolian" +#: js/rubrics.js:531 +#: js/turtledefs.js:136 +#: js/turtledefs.js:238 +msgid "sensors" msgstr "" -#: js/piemenus.js:3407 -msgid "Duplicate" +#: js/rubrics.js:532 +#: js/turtledefs.js:135 +#: js/turtledefs.js:237 +#: js/blocks/MediaBlocks.js:930 +msgid "media" msgstr "" -#: js/piemenus.js:3408 -#: js/turtledefs.js:534 -msgid "Extract" +#: js/rubrics.js:533 +msgid "mice" msgstr "" -#: js/piemenus.js:3409 -msgid "Move to trash" +#: js/toolbar.js:48 +#: js/toolbar.js:109 +msgid "About Music Blocks" msgstr "" -#: js/piemenus.js:3410 -#: js/timbre.js:968 -#: js/StringHelper.js:69 -msgid "Close" +#: js/toolbar.js:49 +#: js/toolbar.js:110 +#: js/toolbar.js:175 +#: js/toolbar.js:231 +#: js/turtledefs.js:445 +#: js/turtledefs.js:482 +#: js/activity.js:2660 +#: js/activity.js:2671 +#: js/activity.js:2902 +#: js/widgets/modewidget.js:77 +#: js/widgets/meterwidget.js:185 +#: js/widgets/pitchdrummatrix.js:147 +#: js/widgets/pitchdrummatrix.js:687 +#: js/widgets/pitchdrummatrix.js:689 +#: js/widgets/pitchdrummatrix.js:741 +#: js/widgets/pitchdrummatrix.js:743 +#: js/widgets/pitchdrummatrix.js:758 +#: js/widgets/pitchdrummatrix.js:760 +#: js/widgets/pitchdrummatrix.js:789 +#: js/widgets/pitchdrummatrix.js:791 +#: js/widgets/pitchstaircase.js:121 +#: js/widgets/temperament.js:610 +#: js/widgets/temperament.js:613 +#: js/widgets/temperament.js:673 +#: js/widgets/temperament.js:675 +#: js/widgets/temperament.js:2017 +#: js/widgets/temperament.js:2019 +#: js/widgets/tempo.js:84 +#: js/widgets/tempo.js:86 +#: js/widgets/timbre.js:432 +#: js/widgets/timbre.js:434 +#: js/widgets/timbre.js:465 +#: js/widgets/timbre.js:467 +#: js/widgets/timbre.js:746 +#: js/widgets/aiwidget.js:647 +#: js/widgets/aiwidget.js:654 +#: js/widgets/aiwidget.js:656 +#: js/widgets/arpeggio.js:90 +#: js/widgets/arpeggio.js:547 +#: js/widgets/arpeggio.js:549 +#: js/widgets/arpeggio.js:644 +#: js/widgets/arpeggio.js:646 +#: js/widgets/musickeyboard.js:676 +#: js/widgets/musickeyboard.js:872 +#: js/widgets/musickeyboard.js:874 +#: js/widgets/musickeyboard.js:953 +#: js/widgets/musickeyboard.js:955 +#: js/widgets/phrasemaker.js:513 +#: js/widgets/phrasemaker.js:523 +#: js/widgets/phrasemaker.js:525 +#: js/widgets/phrasemaker.js:4304 +#: js/widgets/phrasemaker.js:4528 +#: js/widgets/phrasemaker.js:4533 +#: js/widgets/phrasemaker.js:4535 +#: js/widgets/phrasemaker.js:4650 +#: js/widgets/rhythmruler.js:637 +#: js/widgets/rhythmruler.js:639 +#: js/widgets/rhythmruler.js:653 +#: js/widgets/rhythmruler.js:655 +#: js/widgets/sampler.js:162 +#: js/widgets/sampler.js:164 +#: js/widgets/sampler.js:363 +msgid "Play" msgstr "" -#: js/piemenus.js:3416 -msgid "Save stack" +#: js/toolbar.js:50 +#: js/toolbar.js:111 +#: js/toolbar.js:176 +#: js/toolbar.js:232 +#: js/turtledefs.js:451 +#: js/turtledefs.js:488 +#: js/activity.js:2679 +#: js/widgets/modewidget.js:99 +#: js/widgets/modewidget.js:101 +#: js/widgets/meterwidget.js:206 +#: js/widgets/meterwidget.js:208 +#: js/widgets/pitchdrummatrix.js:674 +#: js/widgets/pitchdrummatrix.js:676 +#: js/widgets/temperament.js:2002 +#: js/widgets/temperament.js:2004 +#: js/widgets/arpeggio.js:534 +#: js/widgets/arpeggio.js:536 +#: js/widgets/phrasemaker.js:534 +#: js/widgets/phrasemaker.js:536 +msgid "Stop" msgstr "" -#: js/piemenus.js:3420 -#: js/toolbar.js:60 -#: js/toolbar.js:120 -#: js/toolbar.js:185 -#: js/toolbar.js:240 -#: js/turtledefs.js:752 -msgid "Help" +#: js/toolbar.js:51 +#: js/toolbar.js:112 +#: js/toolbar.js:177 +#: js/toolbar.js:233 +#: js/turtledefs.js:498 +msgid "Record" msgstr "" -#: js/piemenus.js:3762 -msgid "You have chosen key " +#: js/toolbar.js:52 +#: js/toolbar.js:53 +msgid "Full screen" msgstr "" -#: js/piemenus.js:3766 -msgid " for your pitch preview." +#: js/toolbar.js:54 +#: js/toolbar.js:115 +#: js/toolbar.js:180 +#: js/toolbar.js:236 +#: js/turtledefs.js:504 +msgid "Toggle Fullscreen" +msgstr "" + +#: js/toolbar.js:55 +#: js/toolbar.js:116 +#: js/toolbar.js:181 +#: js/toolbar.js:237 +#: js/turtledefs.js:510 +#: planet/js/StringHelper.js:33 +msgid "New project" +msgstr "" + +#: js/toolbar.js:56 +#: js/toolbar.js:117 +#: js/toolbar.js:182 +#: js/toolbar.js:238 +#: js/turtledefs.js:516 +msgid "Load project from file" +msgstr "" + +#: js/toolbar.js:57 +#: js/toolbar.js:118 +#: js/toolbar.js:119 +#: js/toolbar.js:183 +#: js/toolbar.js:239 +#: js/turtledefs.js:541 +#: js/turtledefs.js:550 +#: js/turtledefs.js:571 +msgid "Save project" +msgstr "" + +#: js/toolbar.js:58 +#: js/toolbar.js:77 +#: js/toolbar.js:79 +#: js/toolbar.js:138 +#: js/toolbar.js:147 +#: js/toolbar.js:149 +#: js/toolbar.js:184 +#: js/toolbar.js:202 +#: js/toolbar.js:204 +#: js/toolbar.js:240 +#: js/toolbar.js:258 +#: js/toolbar.js:260 +msgid "Save project as HTML" +msgstr "" + +#: js/toolbar.js:59 +#: js/toolbar.js:120 +#: js/toolbar.js:185 +#: js/toolbar.js:241 +msgid "Find and share projects" +msgstr "" + +#: js/toolbar.js:60 +#: js/toolbar.js:121 +#: js/toolbar.js:186 +#: js/toolbar.js:242 +msgid "Offline. Sharing is unavailable" +msgstr "" + +#: js/toolbar.js:61 +#: js/toolbar.js:122 +#: js/toolbar.js:187 +#: js/toolbar.js:243 +msgid "Auxiliary menu" +msgstr "" + +#: js/toolbar.js:62 +#: js/toolbar.js:123 +#: js/toolbar.js:188 +#: js/toolbar.js:244 +#: js/turtledefs.js:752 +#: js/piemenus.js:3423 +msgid "Help" +msgstr "" + +#: js/toolbar.js:63 +#: js/toolbar.js:124 +#: js/toolbar.js:189 +#: js/toolbar.js:245 +msgid "Run slowly" +msgstr "" + +#: js/toolbar.js:64 +#: js/toolbar.js:125 +#: js/toolbar.js:190 +#: js/toolbar.js:246 +#: js/turtledefs.js:682 +msgid "Run step by step" +msgstr "" + +#: js/toolbar.js:65 +#: js/toolbar.js:126 +#: js/toolbar.js:191 +#: js/toolbar.js:247 +#: js/turtledefs.js:689 +msgid "Display statistics" +msgstr "" + +#: js/toolbar.js:66 +#: js/toolbar.js:127 +#: js/toolbar.js:192 +#: js/toolbar.js:248 +msgid "Load plugin" +msgstr "" + +#: js/toolbar.js:67 +#: js/toolbar.js:128 +#: js/toolbar.js:193 +#: js/toolbar.js:249 +#: js/turtledefs.js:696 +msgid "Delete plugin" +msgstr "" + +#: js/toolbar.js:68 +#: js/toolbar.js:129 +#: js/toolbar.js:194 +#: js/toolbar.js:250 +msgid "Enable horizontal scrolling" +msgstr "" + +#: js/toolbar.js:69 +#: js/toolbar.js:130 +#: js/toolbar.js:195 +#: js/toolbar.js:251 +msgid "Disable horizontal scrolling" +msgstr "" + +#: js/toolbar.js:70 +#: js/toolbar.js:131 +#: js/toolbar.js:196 +#: js/toolbar.js:252 +#: planet/js/LocalCard.js:54 +#: planet/js/StringHelper.js:71 +msgid "Merge with current project" +msgstr "" + +#: js/toolbar.js:71 +#: js/toolbar.js:132 +msgid "Set Pitch Preview" +msgstr "" + +#: js/toolbar.js:72 +#: js/toolbar.js:133 +#: js/toolbar.js:197 +#: js/toolbar.js:253 +msgid "JavaScript Editor" +msgstr "" + +#: js/toolbar.js:73 +#: js/toolbar.js:134 +#: js/toolbar.js:198 +#: js/toolbar.js:254 +#: js/turtledefs.js:724 +msgid "Restore" +msgstr "" + +#: js/toolbar.js:74 +#: js/toolbar.js:135 +#: js/toolbar.js:199 +#: js/toolbar.js:255 +msgid "Switch to beginner mode" +msgstr "" + +#: js/toolbar.js:75 +#: js/toolbar.js:136 +#: js/toolbar.js:200 +#: js/toolbar.js:256 +msgid "Switch to advanced mode" +msgstr "" + +#: js/toolbar.js:76 +#: js/toolbar.js:137 +#: js/toolbar.js:146 +#: js/toolbar.js:201 +#: js/toolbar.js:257 +#: js/turtledefs.js:738 +msgid "Select language" +msgstr "" + +#: js/toolbar.js:78 +#: js/toolbar.js:81 +#: js/toolbar.js:140 +#: js/turtledefs.js:579 +msgid "Save mouse artwork as PNG" +msgstr "" + +#: js/toolbar.js:80 +#: js/toolbar.js:139 +#: js/turtledefs.js:575 +msgid "Save mouse artwork as SVG" +msgstr "" + +#: js/toolbar.js:82 +#: js/toolbar.js:141 +#: js/turtledefs.js:583 +msgid "Save music as WAV" +msgstr "" + +#: js/toolbar.js:83 +#: js/toolbar.js:142 +#: js/turtledefs.js:587 +msgid "Save sheet music as ABC" +msgstr "" + +#: js/toolbar.js:84 +#: js/toolbar.js:143 +#: js/turtledefs.js:591 +msgid "Save sheet music as Lilypond" +msgstr "" + +#: js/toolbar.js:85 +msgid "Save sheet music as MusicXML" +msgstr "" + +#: js/toolbar.js:86 +#: js/toolbar.js:144 +#: js/toolbar.js:152 +#: js/toolbar.js:207 +#: js/toolbar.js:263 +#: js/turtledefs.js:562 +#: js/turtledefs.js:595 +msgid "Save block artwork as SVG" +msgstr "" + +#: js/toolbar.js:87 +#: js/toolbar.js:145 +#: js/toolbar.js:153 +#: js/toolbar.js:208 +#: js/toolbar.js:264 +#: js/turtles.js:911 +msgid "Confirm" +msgstr "" + +#: js/toolbar.js:88 +#: js/toolbar.js:154 +#: js/toolbar.js:209 +#: js/toolbar.js:265 +msgid "English (United States)" +msgstr "" + +#: js/toolbar.js:89 +#: js/toolbar.js:155 +#: js/toolbar.js:210 +#: js/toolbar.js:266 +msgid "English (United Kingdom)" +msgstr "" + +#: js/toolbar.js:90 +#: js/toolbar.js:156 +#: js/toolbar.js:211 +#: js/toolbar.js:267 +msgid "日本語" +msgstr "" + +#: js/toolbar.js:91 +msgid "한국어" +msgstr "" + +#: js/toolbar.js:92 +#: js/toolbar.js:158 +#: js/toolbar.js:213 +#: js/toolbar.js:269 +msgid "español" +msgstr "" + +#: js/toolbar.js:93 +#: js/toolbar.js:159 +#: js/toolbar.js:214 +#: js/toolbar.js:270 +msgid "português" +msgstr "" + +#: js/toolbar.js:94 +#: js/toolbar.js:160 +#: js/toolbar.js:215 +#: js/toolbar.js:271 +msgid "にほんご" +msgstr "" + +#: js/toolbar.js:95 +#: js/toolbar.js:161 +#: js/toolbar.js:216 +#: js/toolbar.js:272 +msgid "中文" +msgstr "" + +#: js/toolbar.js:96 +#: js/toolbar.js:162 +#: js/toolbar.js:217 +#: js/toolbar.js:273 +msgid "ภาษาไทย" +msgstr "" + +#: js/toolbar.js:97 +#: js/toolbar.js:163 +#: js/toolbar.js:218 +#: js/toolbar.js:274 +msgid "aymara" +msgstr "" + +#: js/toolbar.js:98 +#: js/toolbar.js:164 +#: js/toolbar.js:219 +#: js/toolbar.js:275 +msgid "quechua" +msgstr "" + +#: js/toolbar.js:99 +#: js/toolbar.js:165 +#: js/toolbar.js:220 +#: js/toolbar.js:276 +msgid "guarani" +msgstr "" + +#: js/toolbar.js:100 +#: js/toolbar.js:166 +#: js/toolbar.js:221 +#: js/toolbar.js:277 +msgid "हिंदी" +msgstr "" + +#: js/toolbar.js:101 +#: js/toolbar.js:168 +#: js/toolbar.js:222 +#: js/toolbar.js:279 +msgid "igbo" +msgstr "" + +#: js/toolbar.js:102 +#: js/toolbar.js:169 +#: js/toolbar.js:223 +#: js/toolbar.js:280 +msgid "عربى" +msgstr "" + +#: js/toolbar.js:103 +#: js/toolbar.js:167 +#: js/toolbar.js:224 +#: js/toolbar.js:278 +msgid "తెలుగు" +msgstr "" + +#: js/toolbar.js:104 +#: js/toolbar.js:170 +#: js/toolbar.js:225 +#: js/toolbar.js:281 +msgid "עִברִית" +msgstr "" + +#: js/toolbar.js:113 +#: js/toolbar.js:114 +#: js/toolbar.js:178 +#: js/toolbar.js:179 +#: js/toolbar.js:234 +#: js/toolbar.js:235 +msgid "Full Screen" +msgstr "" + +#: js/toolbar.js:148 +#: js/toolbar.js:151 +#: js/toolbar.js:203 +#: js/toolbar.js:206 +#: js/toolbar.js:259 +#: js/toolbar.js:262 +#: js/turtledefs.js:558 +msgid "Save turtle artwork as PNG" +msgstr "" + +#: js/toolbar.js:150 +#: js/toolbar.js:205 +#: js/toolbar.js:261 +#: js/turtledefs.js:554 +msgid "Save turtle artwork as SVG" +msgstr "" + +#: js/toolbar.js:157 +#: js/toolbar.js:212 +#: js/toolbar.js:268 +msgid "한국인" +msgstr "" + +#: js/toolbar.js:174 +#: js/toolbar.js:230 +msgid "About Turtle Blocks" +msgstr "" + +#: js/toolbar.js:446 +#: js/toolbar.js:457 +#: js/toolbar.js:497 +msgid "Turtle Wrap Off" +msgstr "" + +#: js/toolbar.js:466 +#: js/toolbar.js:506 +msgid "Turtle Wrap On" +msgstr "" + +#: js/turtle-painter.js:1192 +#: js/turtle-painter.js:1193 +#: js/turtles.js:118 +#: js/block-verbose.js:1623 +#: js/block.js:1587 +#: js/lilypond.js:749 +#: js/lilypond.js:913 +#: js/lilypond.js:951 +#: js/logo.js:1184 +#: js/blocks/ActionBlocks.js:1223 +#: js/blocks/ProgramBlocks.js:1267 +msgid "start" +msgstr "" + +#: js/turtledefs.js:40 +#.TRANS: put the URL to the guide here, e.g., https://github.com/sugarlabs/turtleblocksjs/tree/master/guide/README.md +msgid "guide url" +msgstr "" + +#: js/turtledefs.js:85 +#: js/turtledefs.js:437 +msgid "Turtle Blocks is a Logo-inspired turtle that draws colorful pictures with snap-together visual-programming blocks." +msgstr "" + +#: js/turtledefs.js:118 +#: js/turtledefs.js:220 +msgid "search" +msgstr "" + +#: js/turtledefs.js:120 +#: js/turtledefs.js:222 +#: js/blocks/MeterBlocks.js:1343 +#: js/blocks/WidgetBlocks.js:522 +#.TRANS: musical meter (time signature), e.g., 4:4 +msgid "meter" +msgstr "" + +#: js/turtledefs.js:122 +#: js/turtledefs.js:224 +msgid "intervals" +msgstr "" + +#: js/turtledefs.js:124 +#: js/turtledefs.js:226 +msgid "ornament" +msgstr "" + +#: js/turtledefs.js:125 +#: js/turtledefs.js:227 +#: js/blocks/VolumeBlocks.js:362 +#: js/blocks/VolumeBlocks.js:502 +#: js/blocks/VolumeBlocks.js:545 +msgid "volume" +msgstr "" + +#: js/turtledefs.js:126 +#: js/turtledefs.js:228 +#: js/block-verbose.js:1700 +#: js/block-verbose.js:2626 +#: js/block.js:1664 +#: js/block.js:2554 +#: js/lilypond.js:732 +#: js/lilypond.js:897 +#: js/lilypond.js:941 +#: js/palette.js:577 +#: js/blocks/RhythmBlocks.js:766 +#: js/blocks/DrumBlocks.js:477 +#: js/blocks/VolumeBlocks.js:502 +#: js/widgets/phrasemaker.js:1038 +msgid "drum" +msgstr "" + +#: js/turtledefs.js:129 +#: js/turtledefs.js:231 +msgid "boxes" +msgstr "" + +#: js/turtledefs.js:130 +#: js/turtledefs.js:232 +msgid "widgets" +msgstr "" + +#: js/turtledefs.js:131 +#: js/turtledefs.js:233 +#: js/widgets/phrasemaker.js:1039 +msgid "graphics" +msgstr "" + +#: js/turtledefs.js:134 +#: js/turtledefs.js:236 +msgid "boolean" +msgstr "" + +#: js/turtledefs.js:137 +#: js/turtledefs.js:239 +#: js/blocks/HeapBlocks.js:59 +#: js/widgets/status.js:147 +msgid "heap" +msgstr "" + +#: js/turtledefs.js:138 +#: js/turtledefs.js:240 +#: js/blocks/DictBlocks.js:142 +#: js/blocks/ProgramBlocks.js:495 +msgid "dictionary" +msgstr "" + +#: js/turtledefs.js:139 +#: js/turtledefs.js:241 +msgid "ensemble" +msgstr "" + +#: js/turtledefs.js:140 +#: js/turtledefs.js:242 +msgid "extras" +msgstr "" + +#: js/turtledefs.js:142 +#: js/turtledefs.js:244 +#.TRANS: program as in computer program +#.TRANS: program as in computer program +msgid "program" +msgstr "" + +#: js/turtledefs.js:143 +#: js/turtledefs.js:245 +msgid "my blocks" +msgstr "" + +#: js/turtledefs.js:185 +#: js/turtledefs.js:281 +msgid "artwork" +msgstr "" + +#: js/turtledefs.js:185 +#: js/turtledefs.js:281 +msgid "logic" +msgstr "" + +#: js/turtledefs.js:185 +#: js/turtledefs.js:281 +msgid "music" +msgstr "" + +#: js/turtledefs.js:187 +#: js/turtledefs.js:463 +msgid "Music Blocks is a collection of tools for exploring fundamental musical concepts in a fun way." +msgstr "" + +#: js/turtledefs.js:436 +msgid "Welcome to Turtle Blocks" +msgstr "" + +#: js/turtledefs.js:438 +#: js/turtledefs.js:465 +#: js/turtledefs.js:774 +#: js/turtledefs.js:805 +msgid "The current version is" +msgstr "" + +#: js/turtledefs.js:446 +#: js/turtledefs.js:483 +msgid "Click the run button to run the project in fast mode." +msgstr "" + +#: js/turtledefs.js:452 +msgid "Stop the turtle." +msgstr "" + +#: js/turtledefs.js:454 +#: js/turtledefs.js:491 +msgid "You can also type Alt-S to stop." +msgstr "" + +#: js/turtledefs.js:462 +#: js/widgets/help.js:333 +msgid "Welcome to Music Blocks" +msgstr "" + +#: js/turtledefs.js:472 +#: js/widgets/help.js:334 +msgid "Meet Mr. Mouse!" +msgstr "" + +#: js/turtledefs.js:473 +msgid "Mr Mouse is our Music Blocks conductor." +msgstr "" + +#: js/turtledefs.js:475 +msgid "Mr Mouse encourages you to explore Music Blocks." +msgstr "" + +#: js/turtledefs.js:477 +msgid "Let us start our tour!" +msgstr "" + +#: js/turtledefs.js:489 +msgid "Stop the music (and the mice)." +msgstr "" + +#: js/turtledefs.js:499 +msgid "Record your project as video." +msgstr "" + +#: js/turtledefs.js:505 +msgid "Toggle Fullscreen mode." +msgstr "" + +#: js/turtledefs.js:511 +msgid "Initialize a new project." +msgstr "" + +#: js/turtledefs.js:517 +msgid "You can also load projects from the file system." +msgstr "" + +#: js/turtledefs.js:522 +#: planet/js/StringHelper.js:46 +msgid "Delete" +msgstr "" + +#: js/turtledefs.js:523 +msgid "To delete a block, just right-click on it, then you will be able to see the delete option" +msgstr "" + +#: js/turtledefs.js:528 +#: js/activity.js:2649 +#: planet/js/LocalCard.js:31 +msgid "Copy" +msgstr "" + +#: js/turtledefs.js:529 +msgid "To copy a block, just right-click on it, then you will be able to see the copy option" +msgstr "" + +#: js/turtledefs.js:534 +#: js/piemenus.js:3411 +msgid "Extract" +msgstr "" + +#: js/turtledefs.js:535 +msgid "To extract a block, just right-click on it, then you will be able to see the extract option" +msgstr "" + +#: js/turtledefs.js:542 +#: js/turtledefs.js:552 +#: js/turtledefs.js:573 +msgid "Save your project to a file." +msgstr "" + +#: js/turtledefs.js:549 +#: js/turtledefs.js:570 +msgid "save" +msgstr "" + +#: js/turtledefs.js:556 +#: js/turtledefs.js:577 +msgid "Save graphics from your project to as SVG." +msgstr "" + +#: js/turtledefs.js:560 +#: js/turtledefs.js:581 +msgid "Save graphics from your project as PNG." +msgstr "" + +#: js/turtledefs.js:564 +#: js/turtledefs.js:597 +msgid "Save block artwork as an SVG file." +msgstr "" + +#: js/turtledefs.js:585 +msgid "Save audio from your project as WAV." +msgstr "" + +#: js/turtledefs.js:589 +msgid "Save your project to as an ABC file." +msgstr "" + +#: js/turtledefs.js:593 +msgid "Save your project to as a Lilypond file." +msgstr "" + +#: js/turtledefs.js:604 +msgid "Load samples from server" +msgstr "" + +#: js/turtledefs.js:605 +msgid "This button opens a viewer for loading example projects." +msgstr "" + +#: js/turtledefs.js:611 +msgid "Palette buttons" +msgstr "" + +#: js/turtledefs.js:612 +msgid "This toolbar contains the palette buttons including Rhythm Pitch Tone Action and more." +msgstr "" + +#: js/turtledefs.js:614 +msgid "Click to show the palettes of blocks and drag blocks from the palettes onto the canvas to use them." +msgstr "" + +#: js/turtledefs.js:620 +msgid "Cartesian/Polar" +msgstr "" + +#: js/turtledefs.js:621 +msgid "Show or hide a coordinate grid." +msgstr "" + +#: js/turtledefs.js:626 +#: js/turtles.js:902 +msgid "Clean" +msgstr "" + +#: js/turtledefs.js:627 +msgid "Clear the screen and return the mice to their initial positions." +msgstr "" + +#: js/turtledefs.js:632 +#: js/turtles.js:955 +msgid "Collapse" +msgstr "" + +#: js/turtledefs.js:633 +msgid "Collapse the graphics window." msgstr "" -#: js/palette.js:571 -msgid "grid" +#: js/turtledefs.js:638 +#: js/activity.js:5684 +msgid "Home" msgstr "" -#: js/palette.js:577 -#: js/block.js:1540 -#: js/block.js:2343 -#: js/turtledefs.js:126 -#: js/turtledefs.js:228 -#: js/lilypond.js:740 -#: js/lilypond.js:905 -#: js/lilypond.js:949 -#: js/DrumBlocks.js:486 -#: js/RhythmBlocks.js:766 -#: js/VolumeBlocks.js:502 -#: js/phrasemaker.js:823 -msgid "drum" +#: js/turtledefs.js:639 +msgid "Return all blocks to the center of the screen." msgstr "" -#: js/palette.js:580 -msgid "effect" +#: js/turtledefs.js:644 +msgid "Show/hide blocks" msgstr "" -#: js/palette.js:586 -msgid "sargam" +#: js/turtledefs.js:645 +msgid "Hide or show the blocks and the palettes." msgstr "" -#: js/palette.js:589 -#: js/activity.js:1833 -#: js/RhythmBlocks.js:923 -#: js/PitchBlocks.js:442 -#: js/PitchBlocks.js:1748 -#.TRANS: a numeric mapping of the notes in an octave based on the musical mode -msgid "scale degree" +#: js/turtledefs.js:650 +msgid "Expand/collapse collapsable blocks" msgstr "" -#: js/palette.js:592 -#: js/activity.js:1860 -msgid "mode name" +#: js/turtledefs.js:651 +msgid "Expand or collapse start and action stacks." msgstr "" -#: js/palette.js:595 -#: js/activity.js:1839 -msgid "invert mode" +#: js/turtledefs.js:658 +#: js/activity.js:5704 +msgid "Decrease block size" msgstr "" -#: js/palette.js:598 -#: js/activity.js:1836 -msgid "voice name" +#: js/turtledefs.js:659 +msgid "Decrease the size of the blocks." msgstr "" -#: js/palette.js:601 -#: js/PitchBlocks.js:1181 -msgid "custom pitch" +#: js/turtledefs.js:664 +#: js/activity.js:5710 +msgid "Increase block size" msgstr "" -#: js/palette.js:605 -#: js/block.js:1456 -#: js/block.js:1575 -#: js/WidgetBlocks.js:218 -#: js/IntervalsBlocks.js:63 -msgid "temperament" +#: js/turtledefs.js:665 +msgid "Increase the size of the blocks." msgstr "" -#: js/palette.js:609 -msgid "accidental" +#: js/turtledefs.js:670 +msgid "Expand/collapse option toolbar" msgstr "" -#: js/palette.js:615 -#: js/activity.js:1866 -msgid "interval name" +#: js/turtledefs.js:671 +msgid "Click this button to expand or collapse the auxillary toolbar." msgstr "" -#: js/palette.js:633 -#: js/PitchBlocks.js:405 -msgid "pitch converter" +#: js/turtledefs.js:676 +msgid "Run slow" msgstr "" -#: js/rubrics.js:522 -#: js/turtledefs.js:119 -#: js/turtledefs.js:221 -#: js/RhythmBlockPaletteBlocks.js:52 -#: js/RhythmBlockPaletteBlocks.js:233 -#: js/ProgramBlocks.js:745 -#: js/rhythmruler.js:1670 -#: js/rhythmruler.js:1677 -#: js/rhythmruler.js:1745 -#: js/rhythmruler.js:1752 -#: js/rhythmruler.js:1830 -#.TRANS: an arrangement of notes based on duration -msgid "rhythm" +#: js/turtledefs.js:677 +msgid "Click to run the project in slow mode." msgstr "" -#: js/rubrics.js:523 -#: js/block.js:2339 -#: js/turtledefs.js:121 -#: js/turtledefs.js:223 -#: js/IntervalsBlocks.js:63 -#: js/PitchBlocks.js:1801 -#: js/PitchBlocks.js:1814 -#: js/SensorsBlocks.js:178 -#: js/phrasemaker.js:821 -#: js/musickeyboard.js:1653 -#.TRANS: pitch number -#.TRANS: we specify pitch in terms of a name and an octave. The name can be CDEFGAB or Do Re Mi Fa Sol La Ti. Octave is a number between 1 and 8. -msgid "pitch" +#: js/turtledefs.js:683 +msgid "Click to run the project step by step." msgstr "" -#: js/rubrics.js:524 -#: js/turtledefs.js:123 -#: js/turtledefs.js:225 -msgid "tone" +#: js/turtledefs.js:690 +msgid "Display statistics about your Music project." msgstr "" -#: js/rubrics.js:525 -#: js/lilypond.js:613 -#: js/lilypond.js:912 -#: js/lilypond.js:918 -#: js/lilypond.js:956 -msgid "mouse" +#: js/turtledefs.js:697 +msgid "Delete a selected plugin." msgstr "" -#: js/rubrics.js:526 -#: js/turtledefs.js:132 -#: js/turtledefs.js:234 -#: js/phrasemaker.js:825 -msgid "pen" +#: js/turtledefs.js:704 +msgid "Enable scrolling" msgstr "" -#: js/rubrics.js:527 -#: js/turtledefs.js:133 -#: js/turtledefs.js:235 -#: js/NumberBlocks.js:905 -#: js/PitchBlocks.js:1679 -#: js/PitchBlocks.js:1720 -msgid "number" +#: js/turtledefs.js:705 +msgid "You can scroll the blocks on the canvas." msgstr "" -#: js/rubrics.js:528 -#: js/turtledefs.js:127 -#: js/turtledefs.js:229 -msgid "flow" +#: js/turtledefs.js:714 +msgid "Wrap Turtle" msgstr "" -#: js/rubrics.js:530 -#: js/turtledefs.js:136 -#: js/turtledefs.js:238 -msgid "sensors" +#: js/turtledefs.js:715 +msgid "Turn Turtle wrapping On or Off." msgstr "" -#: js/rubrics.js:531 -#: js/turtledefs.js:135 -#: js/turtledefs.js:237 -#: js/MediaBlocks.js:930 -msgid "media" +#: js/turtledefs.js:725 +msgid "Restore blocks from the trash." msgstr "" -#: js/rubrics.js:532 -msgid "mice" +#: js/turtledefs.js:732 +msgid "Switch mode" msgstr "" -#: js/macros.js:711 -#: js/musicutils.js:783 -#: js/synthutils.js:181 -#.TRANS: animal sound effect -msgid "duck" +#: js/turtledefs.js:733 +msgid "Switch between beginner and advance modes." msgstr "" -#: js/toolbar.js:46 -#: js/toolbar.js:107 -msgid "About Music Blocks" +#: js/turtledefs.js:739 +msgid "Select your language preference." msgstr "" -#: js/toolbar.js:47 -#: js/toolbar.js:108 -#: js/toolbar.js:172 -#: js/toolbar.js:228 -#: js/turtledefs.js:445 -#: js/turtledefs.js:482 -#: js/activity.js:2281 -#: js/activity.js:2289 -#: js/activity.js:2520 -#: js/modewidget.js:77 -#: js/pitchstaircase.js:121 -#: js/phrasemaker.js:302 -#: js/phrasemaker.js:312 -#: js/phrasemaker.js:314 -#: js/phrasemaker.js:3901 -#: js/phrasemaker.js:4061 -#: js/phrasemaker.js:4066 -#: js/phrasemaker.js:4068 -#: js/phrasemaker.js:4183 -#: js/pitchdrummatrix.js:81 -#: js/pitchdrummatrix.js:574 -#: js/pitchdrummatrix.js:576 -#: js/pitchdrummatrix.js:628 -#: js/pitchdrummatrix.js:630 -#: js/pitchdrummatrix.js:645 -#: js/pitchdrummatrix.js:647 -#: js/pitchdrummatrix.js:674 -#: js/pitchdrummatrix.js:676 -#: js/temperament.js:477 -#: js/temperament.js:480 -#: js/temperament.js:540 -#: js/temperament.js:542 -#: js/temperament.js:1835 -#: js/temperament.js:1837 -#: js/temperament.js:1986 -#: js/temperament.js:1988 -#: js/musickeyboard.js:522 -#: js/musickeyboard.js:682 -#: js/musickeyboard.js:684 -#: js/musickeyboard.js:756 -#: js/musickeyboard.js:758 -#: js/rhythmruler.js:298 -#: js/rhythmruler.js:300 -#: js/rhythmruler.js:314 -#: js/rhythmruler.js:316 -#: js/sampler.js:96 -#: js/sampler.js:98 -#: js/sampler.js:229 -#: js/sampler.js:235 -#: js/sampler.js:237 -#: js/tempo.js:84 -#: js/tempo.js:86 -#: js/timbre.js:432 -#: js/timbre.js:434 -#: js/timbre.js:465 -#: js/timbre.js:467 -#: js/timbre.js:746 -#: js/meterwidget.js:80 -#: js/arpeggio.js:90 -#: js/arpeggio.js:547 -#: js/arpeggio.js:549 -#: js/arpeggio.js:644 -#: js/arpeggio.js:646 -msgid "Play" +#: js/turtledefs.js:745 +msgid "Keyboard shortcuts" msgstr "" -#: js/toolbar.js:48 -#: js/toolbar.js:109 -#: js/toolbar.js:173 -#: js/toolbar.js:229 -#: js/turtledefs.js:451 -#: js/turtledefs.js:488 -#: js/activity.js:2297 -#: js/modewidget.js:99 -#: js/modewidget.js:101 -#: js/phrasemaker.js:323 -#: js/phrasemaker.js:325 -#: js/pitchdrummatrix.js:561 -#: js/pitchdrummatrix.js:563 -#: js/temperament.js:1820 -#: js/temperament.js:1822 -#: js/meterwidget.js:101 -#: js/meterwidget.js:103 -#: js/arpeggio.js:534 -#: js/arpeggio.js:536 -msgid "Stop" +#: js/turtledefs.js:746 +msgid "You can type d to create a do block and r to create a re block etc." msgstr "" -#: js/toolbar.js:49 -#: js/toolbar.js:110 -#: js/toolbar.js:174 -#: js/toolbar.js:230 -#: js/turtledefs.js:498 -msgid "Record" +#: js/turtledefs.js:753 +msgid "Show these messages." msgstr "" -#: js/toolbar.js:50 -#: js/toolbar.js:51 -msgid "Full screen" +#: js/turtledefs.js:759 +#: js/turtledefs.js:790 +#: js/widgets/help.js:335 +msgid "Guide" msgstr "" -#: js/toolbar.js:52 -#: js/toolbar.js:112 -#: js/toolbar.js:177 -#: js/toolbar.js:232 -#: js/turtledefs.js:504 -msgid "Toggle Fullscreen" +#: js/turtledefs.js:760 +msgid "A detailed guide to Turtle Blocks is available." msgstr "" -#: js/toolbar.js:53 -#: js/toolbar.js:113 -#: js/toolbar.js:178 -#: js/toolbar.js:233 -#: js/turtledefs.js:510 -#: js/StringHelper.js:33 -msgid "New project" +#: js/turtledefs.js:764 +msgid "Turtle Blocks Guide" msgstr "" -#: js/toolbar.js:54 -#: js/toolbar.js:114 -#: js/toolbar.js:179 -#: js/toolbar.js:234 -#: js/turtledefs.js:516 -msgid "Load project from file" +#: js/turtledefs.js:767 +#: js/turtledefs.js:798 +#: js/widgets/help.js:336 +msgid "About" msgstr "" -#: js/toolbar.js:55 -#: js/toolbar.js:115 -#: js/toolbar.js:116 -#: js/toolbar.js:180 -#: js/toolbar.js:235 -#: js/turtledefs.js:541 -#: js/turtledefs.js:550 -#: js/turtledefs.js:571 -msgid "Save project" +#: js/turtledefs.js:768 +msgid "Turtle Blocks is an open source collection of tools for exploring musical concepts." msgstr "" -#: js/toolbar.js:56 -#: js/toolbar.js:75 -#: js/toolbar.js:77 -#: js/toolbar.js:135 -#: js/toolbar.js:144 -#: js/toolbar.js:146 -#: js/toolbar.js:181 -#: js/toolbar.js:199 -#: js/toolbar.js:201 -#: js/toolbar.js:236 -#: js/toolbar.js:254 -#: js/toolbar.js:256 -msgid "Save project as HTML" +#: js/turtledefs.js:770 +msgid "A full list of contributors can be found in the Turtle Blocks GitHub repository." +msgstr "" + +#: js/turtledefs.js:772 +msgid "Turtle Blocks is licensed under the AGPL." +msgstr "" + +#: js/turtledefs.js:780 +msgid "Turtle Blocks GitHub repository" +msgstr "" + +#: js/turtledefs.js:783 +#: js/turtledefs.js:814 +#: js/widgets/help.js:337 +#: js/widgets/help.js:359 +msgid "Congratulations." +msgstr "" + +#: js/turtledefs.js:784 +msgid "You have finished the tour. Please enjoy Turtle Blocks!" +msgstr "" + +#: js/turtledefs.js:791 +msgid "A detailed guide to Music Blocks is available." +msgstr "" + +#: js/turtledefs.js:799 +msgid "Music Blocks is an open source collection of tools for exploring musical concepts." +msgstr "" + +#: js/turtledefs.js:801 +msgid "A full list of contributors can be found in the Music Blocks GitHub repository." +msgstr "" + +#: js/turtledefs.js:803 +msgid "Music Blocks is licensed under the AGPL." +msgstr "" + +#: js/turtledefs.js:811 +msgid "Music Blocks GitHub repository" +msgstr "" + +#: js/turtledefs.js:815 +msgid "You have finished the tour. Please enjoy Music Blocks!" +msgstr "" + +#: js/turtles.js:882 +msgid "Grid" +msgstr "" + +#: js/turtles.js:1024 +msgid "Expand" +msgstr "" + +#: js/block-verbose.js:1616 +#: js/block-verbose.js:1735 +#: js/block.js:1580 +#: js/block.js:1699 +#: js/palette.js:605 +#: js/blocks/IntervalsBlocks.js:63 +#: js/blocks/WidgetBlocks.js:259 +msgid "temperament" +msgstr "" + +#: js/block-verbose.js:1630 +#: js/block.js:1594 +msgid "matrix" msgstr "" -#: js/toolbar.js:57 -#: js/toolbar.js:117 -#: js/toolbar.js:182 -#: js/toolbar.js:237 -msgid "Find and share projects" +#: js/block-verbose.js:1637 +#: js/block.js:1601 +#: js/blocks/WidgetBlocks.js:1509 +#: plugins/rodi.rtp:324 +msgid "status" msgstr "" -#: js/toolbar.js:58 -#: js/toolbar.js:118 -#: js/toolbar.js:183 -#: js/toolbar.js:238 -msgid "Offline. Sharing is unavailable" +#: js/block-verbose.js:1644 +#: js/block.js:1608 +msgid "drum mapper" msgstr "" -#: js/toolbar.js:59 -#: js/toolbar.js:119 -#: js/toolbar.js:184 -#: js/toolbar.js:239 -msgid "Auxiliary menu" +#: js/block-verbose.js:1651 +#: js/block.js:1615 +msgid "ruler" msgstr "" -#: js/toolbar.js:61 -#: js/toolbar.js:121 -#: js/toolbar.js:186 -#: js/toolbar.js:241 -msgid "Run slowly" +#: js/block-verbose.js:1658 +#: js/block.js:1622 +#: js/blocks/WidgetBlocks.js:397 +#.TRANS: timbre is the character or quality of a musical sound +msgid "timbre" msgstr "" -#: js/toolbar.js:62 -#: js/toolbar.js:122 -#: js/toolbar.js:187 -#: js/toolbar.js:242 -#: js/turtledefs.js:682 -msgid "Run step by step" +#: js/block-verbose.js:1665 +#: js/block.js:1629 +msgid "stair" msgstr "" -#: js/toolbar.js:63 -#: js/toolbar.js:123 -#: js/toolbar.js:188 -#: js/toolbar.js:243 -#: js/turtledefs.js:689 -msgid "Display statistics" +#: js/block-verbose.js:1672 +#: js/block.js:1636 +#: js/blocks/WidgetBlocks.js:707 +#.TRANS: the speed at music is should be played. +msgid "tempo" msgstr "" -#: js/toolbar.js:64 -#: js/toolbar.js:124 -#: js/toolbar.js:189 -#: js/toolbar.js:244 -msgid "Load plugin" +#: js/block-verbose.js:1679 +#: js/block-verbose.js:1742 +#: js/block.js:1643 +#: js/block.js:1706 +#: js/blocks/IntervalsBlocks.js:1464 +#.TRANS: mode, e.g., Major in C Major +msgid "mode" msgstr "" -#: js/toolbar.js:65 -#: js/toolbar.js:125 -#: js/toolbar.js:190 -#: js/toolbar.js:245 -#: js/turtledefs.js:696 -msgid "Delete plugin" +#: js/block-verbose.js:1686 +#: js/block.js:1650 +msgid "slider" msgstr "" -#: js/toolbar.js:66 -#: js/toolbar.js:126 -#: js/toolbar.js:191 -#: js/toolbar.js:246 -msgid "Enable horizontal scrolling" +#: js/block-verbose.js:1693 +#: js/block.js:1657 +#: js/blocks/SensorsBlocks.js:1001 +msgid "keyboard" msgstr "" -#: js/toolbar.js:67 -#: js/toolbar.js:127 -#: js/toolbar.js:192 -#: js/toolbar.js:247 -msgid "Disable horizontal scrolling" +#: js/block-verbose.js:1707 +#: js/block.js:1671 +#: js/blocks/WidgetBlocks.js:1190 +#: js/blocks/WidgetBlocks.js:1228 +#.TRANS: widget for subdividing a measure into distinct rhythmic elements +msgid "rhythm maker" msgstr "" -#: js/toolbar.js:68 -#: js/toolbar.js:128 -#: js/toolbar.js:193 -#: js/toolbar.js:248 -#: js/LocalCard.js:54 -#: js/StringHelper.js:71 -msgid "Merge with current project" +#: js/block-verbose.js:1714 +#: js/block-verbose.js:2457 +#: js/block-verbose.js:2514 +#: js/block.js:1678 +#: js/block.js:2385 +#: js/block.js:2442 +#: js/blocks/MeterBlocks.js:1367 +#: js/blocks/OrnamentBlocks.js:220 +#: js/blocks/OrnamentBlocks.js:312 +#: js/blocks/RhythmBlocks.js:33 +#: js/blocks/RhythmBlocks.js:356 +#: js/blocks/RhythmBlocks.js:766 +#: js/blocks/RhythmBlocks.js:806 +#: js/blocks/RhythmBlockPaletteBlocks.js:70 +#: js/blocks/RhythmBlockPaletteBlocks.js:252 +#: js/blocks/RhythmBlockPaletteBlocks.js:485 +#: js/blocks/RhythmBlockPaletteBlocks.js:554 +#: js/blocks/RhythmBlockPaletteBlocks.js:605 +#: js/blocks/RhythmBlockPaletteBlocks.js:875 +#: js/turtleactions/DictActions.js:85 +#: js/widgets/phrasemaker.js:942 +#: js/widgets/phrasemaker.js:2656 +#: js/widgets/phrasemaker.js:2699 +#: js/widgets/phrasemaker.js:2810 +#.TRANS: the value (e.g., 1/4 note) of the note being played. +msgid "note value" msgstr "" -#: js/toolbar.js:69 -#: js/toolbar.js:129 -msgid "Set Pitch Preview" +#: js/block-verbose.js:1721 +#: js/block-verbose.js:2382 +#: js/block-verbose.js:2405 +#: js/block.js:1685 +#: js/block.js:2310 +#: js/block.js:2333 +#: js/blocks/IntervalsBlocks.js:1071 +#: js/blocks/OrnamentBlocks.js:312 +#.TRANS: calculate a relative step between notes based on semi-tones +msgid "scalar interval" msgstr "" -#: js/toolbar.js:70 -#: js/toolbar.js:130 -#: js/toolbar.js:194 -#: js/toolbar.js:249 -msgid "Toggle JavaScript Editor" +#: js/block-verbose.js:1728 +#: js/block.js:1692 +#: js/blocks/RhythmBlocks.js:148 +msgid "milliseconds" msgstr "" -#: js/toolbar.js:71 -#: js/toolbar.js:131 -#: js/toolbar.js:195 -#: js/toolbar.js:250 -#: js/turtledefs.js:724 -msgid "Restore" +#: js/block-verbose.js:2455 +#: js/block-verbose.js:2459 +#: js/block-verbose.js:2512 +#: js/block-verbose.js:2628 +#: js/block.js:2383 +#: js/block.js:2387 +#: js/block.js:2440 +#: js/block.js:2556 +#: js/blocks/RhythmBlocks.js:712 +#: js/blocks/ProgramBlocks.js:1273 +#: js/widgets/rhythmruler.js:1183 +#: js/widgets/rhythmruler.js:1329 +msgid "silence" msgstr "" -#: js/toolbar.js:72 -#: js/toolbar.js:132 -#: js/toolbar.js:196 -#: js/toolbar.js:251 -msgid "Switch to beginner mode" +#: js/block-verbose.js:2548 +#: js/block-verbose.js:3492 +#: js/block-verbose.js:3509 +#: js/activity.js:2718 +#: js/activity.js:2769 +#: js/block.js:2476 +#: js/block.js:3416 +#: js/block.js:3433 +#: js/utils/musicutils.js:3780 +#: js/utils/musicutils.js:5273 +#.TRANS: the note names must be separated by single spaces +#.TRANS: the note names must be separated by single spaces +#.TRANS: the note names must be separated by single spaces +msgid "ti la sol fa mi re do" msgstr "" -#: js/toolbar.js:73 -#: js/toolbar.js:133 -#: js/toolbar.js:197 -#: js/toolbar.js:252 -msgid "Switch to advanced mode" +#: js/block-verbose.js:2616 +#: js/block.js:2544 +#.TRANS: scalar step +#.TRANS: scalar step +msgid "down" msgstr "" -#: js/toolbar.js:74 -#: js/toolbar.js:134 -#: js/toolbar.js:143 -#: js/toolbar.js:198 -#: js/toolbar.js:253 -#: js/turtledefs.js:738 -msgid "Select language" +#: js/block-verbose.js:2617 +#: js/block.js:2545 +msgid "up" msgstr "" -#: js/toolbar.js:76 -#: js/toolbar.js:79 -#: js/toolbar.js:137 -#: js/turtledefs.js:579 -msgid "Save mouse artwork as PNG" +#: js/block-verbose.js:3026 +#: js/block.js:2950 +msgid "Silence block cannot be removed." msgstr "" -#: js/toolbar.js:78 -#: js/toolbar.js:136 -#: js/turtledefs.js:575 -msgid "Save mouse artwork as SVG" +#: js/block-verbose.js:3824 +#: js/block.js:3748 +#: js/blocks.js:2607 +#: js/blocks.js:3218 +#: js/palette.js:618 +#: js/blocks/BooleanBlocks.js:77 +#: js/blocks/BooleanBlocks.js:167 +#: js/blocks/BooleanBlocks.js:251 +#: js/blocks/BooleanBlocks.js:335 +#: js/blocks/BooleanBlocks.js:433 +#: js/blocks/BooleanBlocks.js:539 +#: js/blocks/BooleanBlocks.js:640 +#: js/blocks/BooleanBlocks.js:741 +#: js/blocks/BooleanBlocks.js:847 +#: js/blocks/BooleanBlocks.js:948 +#: js/blocks/BooleanBlocks.js:1033 +#: js/blocks/SensorsBlocks.js:910 +msgid "true" msgstr "" -#: js/toolbar.js:80 -#: js/toolbar.js:138 -#: js/turtledefs.js:583 -msgid "Save music as WAV" +#: js/block-verbose.js:3824 +#: js/block.js:3748 +#: js/blocks.js:2609 +#: js/blocks.js:3220 +#: js/blocks/BooleanBlocks.js:79 +#: js/blocks/BooleanBlocks.js:169 +#: js/blocks/BooleanBlocks.js:253 +#: js/blocks/BooleanBlocks.js:337 +#: js/blocks/BooleanBlocks.js:435 +#: js/blocks/BooleanBlocks.js:541 +#: js/blocks/BooleanBlocks.js:642 +#: js/blocks/BooleanBlocks.js:743 +#: js/blocks/BooleanBlocks.js:849 +#: js/blocks/BooleanBlocks.js:950 +#: js/blocks/SensorsBlocks.js:912 +msgid "false" msgstr "" -#: js/toolbar.js:81 -#: js/toolbar.js:139 -#: js/turtledefs.js:587 -msgid "Save sheet music as ABC" +#: js/block-verbose.js:3835 +#: js/block-verbose.js:3848 +#: js/block.js:3759 +#: js/block.js:3772 +#: js/blocks/ExtrasBlocks.js:615 +msgid "Cartesian" msgstr "" -#: js/toolbar.js:82 -#: js/toolbar.js:140 -#: js/turtledefs.js:591 -msgid "Save sheet music as Lilypond" +#: js/block-verbose.js:3836 +#: js/block-verbose.js:3849 +#: js/block.js:3760 +#: js/block.js:3773 +#: js/blocks/ExtrasBlocks.js:619 +msgid "polar" msgstr "" -#: js/toolbar.js:83 -msgid "Save sheet music as MusicXML" +#: js/block-verbose.js:3837 +#: js/block-verbose.js:3850 +#: js/block.js:3761 +#: js/block.js:3774 +#: js/blocks/ExtrasBlocks.js:623 +msgid "Cartesian+polar" msgstr "" -#: js/toolbar.js:84 -#: js/toolbar.js:141 -#: js/toolbar.js:149 -#: js/toolbar.js:204 -#: js/toolbar.js:259 -#: js/turtledefs.js:562 -#: js/turtledefs.js:595 -msgid "Save block artwork as SVG" +#: js/block-verbose.js:3838 +#: js/block-verbose.js:3857 +#: js/block.js:3762 +#: js/block.js:3781 +#: js/blocks/ExtrasBlocks.js:652 +msgid "none" msgstr "" -#: js/toolbar.js:85 -#: js/toolbar.js:142 -#: js/toolbar.js:150 -#: js/toolbar.js:205 -#: js/toolbar.js:260 -msgid "Confirm" +#: js/block-verbose.js:3851 +#: js/block.js:3775 +#: js/blocks/ExtrasBlocks.js:628 +msgid "treble" msgstr "" -#: js/toolbar.js:86 -#: js/toolbar.js:151 -#: js/toolbar.js:206 -#: js/toolbar.js:261 -msgid "English (United States)" +#: js/block-verbose.js:3852 +#: js/block.js:3776 +#: js/blocks/ExtrasBlocks.js:632 +msgid "grand staff" msgstr "" -#: js/toolbar.js:87 -#: js/toolbar.js:152 -#: js/toolbar.js:207 -#: js/toolbar.js:262 -msgid "English (United Kingdom)" +#: js/block-verbose.js:3853 +#: js/block.js:3777 +#: js/blocks/ExtrasBlocks.js:636 +msgid "mezzo-soprano" msgstr "" -#: js/toolbar.js:88 -#: js/toolbar.js:153 -#: js/toolbar.js:208 -#: js/toolbar.js:263 -msgid "日本語" +#: js/block-verbose.js:3854 +#: js/block.js:3778 +#: js/blocks/ExtrasBlocks.js:640 +msgid "alto" msgstr "" -#: js/toolbar.js:89 -msgid "한국어" +#: js/block-verbose.js:3855 +#: js/block.js:3779 +#: js/blocks/ExtrasBlocks.js:644 +msgid "tenor" msgstr "" -#: js/toolbar.js:90 -#: js/toolbar.js:155 -#: js/toolbar.js:210 -#: js/toolbar.js:265 -msgid "español" +#: js/block-verbose.js:3856 +#: js/block.js:3780 +#: js/utils/musicutils.js:1115 +#: js/utils/synthutils.js:80 +#: js/blocks/ExtrasBlocks.js:648 +#.TRANS: musical instrument +msgid "bass" msgstr "" -#: js/toolbar.js:91 -#: js/toolbar.js:156 -#: js/toolbar.js:211 -#: js/toolbar.js:266 -msgid "português" +#: js/block-verbose.js:3901 +#: js/block.js:3825 +#: js/blocks.js:2600 +#: js/blocks.js:3211 +msgid "on2" msgstr "" -#: js/toolbar.js:92 -#: js/toolbar.js:157 -#: js/toolbar.js:212 -#: js/toolbar.js:267 -msgid "にほんご" +#: js/block-verbose.js:3903 +#: js/block.js:3827 +#: js/blocks.js:2602 +#: js/blocks.js:3213 +msgid "off" msgstr "" -#: js/toolbar.js:93 -#: js/toolbar.js:158 -#: js/toolbar.js:213 -#: js/toolbar.js:268 -msgid "中文" +#: js/block-verbose.js:4470 +#: js/block.js:4394 +msgid "Not a number" msgstr "" -#: js/toolbar.js:94 -#: js/toolbar.js:159 -#: js/toolbar.js:214 -#: js/toolbar.js:269 -msgid "ภาษาไทย" +#: js/block-verbose.js:4477 +#: js/block.js:4401 +msgid "Octave value must be between 1 and 10." msgstr "" -#: js/toolbar.js:95 -#: js/toolbar.js:160 -#: js/toolbar.js:215 -#: js/toolbar.js:270 -msgid "aymara" +#: js/block-verbose.js:4485 +#: js/block.js:4409 +msgid "Numbers can have at most 10 digits." msgstr "" -#: js/toolbar.js:96 -#: js/toolbar.js:161 -#: js/toolbar.js:216 -#: js/toolbar.js:271 -msgid "quechua" +#: js/activity.js:390 +#: js/activity.js:395 +msgid "Search for blocks" msgstr "" -#: js/toolbar.js:97 -#: js/toolbar.js:162 -#: js/toolbar.js:217 -#: js/toolbar.js:272 -msgid "guarani" +#: js/activity.js:1413 +msgid "Refresh your browser to change to advanced mode." msgstr "" -#: js/toolbar.js:98 -#: js/toolbar.js:163 -#: js/toolbar.js:218 -#: js/toolbar.js:273 -msgid "हिंदी" +#: js/activity.js:1418 +msgid "Refresh your browser to change to beginner mode." msgstr "" -#: js/toolbar.js:99 -#: js/toolbar.js:165 -#: js/toolbar.js:219 -#: js/toolbar.js:275 -msgid "igbo" +#: js/activity.js:1477 +msgid "Catching mice" +msgstr "" + +#: js/activity.js:1478 +msgid "Cleaning the instruments" +msgstr "" + +#: js/activity.js:1479 +msgid "Testing key pieces" +msgstr "" + +#: js/activity.js:1480 +msgid "Sight-reading" +msgstr "" + +#: js/activity.js:1481 +msgid "Combining math and music" msgstr "" -#: js/toolbar.js:100 -#: js/toolbar.js:166 -#: js/toolbar.js:220 -#: js/toolbar.js:276 -msgid "عربى" +#: js/activity.js:1482 +msgid "Generating more blocks" msgstr "" -#: js/toolbar.js:101 -#: js/toolbar.js:164 -#: js/toolbar.js:221 -#: js/toolbar.js:274 -msgid "తెలుగు" +#: js/activity.js:1483 +msgid "Do Re Mi Fa Sol La Ti Do" msgstr "" -#: js/toolbar.js:102 -#: js/toolbar.js:167 -#: js/toolbar.js:222 -#: js/toolbar.js:277 -msgid "עִברִית" +#: js/activity.js:1484 +msgid "Tuning string instruments" msgstr "" -#: js/toolbar.js:111 -#: js/toolbar.js:175 -#: js/toolbar.js:176 -#: js/toolbar.js:231 -msgid "Full Screen" +#: js/activity.js:1485 +msgid "Pressing random keys" msgstr "" -#: js/toolbar.js:145 -#: js/toolbar.js:148 -#: js/toolbar.js:200 -#: js/toolbar.js:203 -#: js/toolbar.js:255 -#: js/toolbar.js:258 -#: js/turtledefs.js:558 -msgid "Save turtle artwork as PNG" +#: js/activity.js:1663 +msgid "plugins will be removed upon restart." msgstr "" -#: js/toolbar.js:147 -#: js/toolbar.js:202 -#: js/toolbar.js:257 -#: js/turtledefs.js:554 -msgid "Save turtle artwork as SVG" +#: js/activity.js:1672 +msgid "show Cartesian" msgstr "" -#: js/toolbar.js:154 -#: js/toolbar.js:209 -#: js/toolbar.js:264 -msgid "한국인" +#: js/activity.js:2211 +#: js/palette.js:589 +#: js/blocks/RhythmBlocks.js:923 +#: js/blocks/PitchBlocks.js:442 +#: js/blocks/PitchBlocks.js:1786 +#.TRANS: a numeric mapping of the notes in an octave based on the musical mode +msgid "scale degree" msgstr "" -#: js/toolbar.js:171 -#: js/toolbar.js:227 -msgid "About Turtle Blocks" +#: js/activity.js:2214 +#: js/palette.js:598 +msgid "voice name" msgstr "" -#: js/toolbar.js:429 -#: js/toolbar.js:440 -msgid "Turtle Wrap Off" +#: js/activity.js:2217 +#: js/palette.js:595 +msgid "invert mode" msgstr "" -#: js/toolbar.js:442 -msgid "Turtle Wrap On" +#: js/activity.js:2220 +msgid "output tools" msgstr "" -#: js/block.js:1470 -msgid "matrix" +#: js/activity.js:2223 +msgid "custom note" msgstr "" -#: js/block.js:1477 -#: js/WidgetBlocks.js:1226 -#: plugins/rodi.rtp:324 -msgid "status" +#: js/activity.js:2226 +msgid "accidental name" msgstr "" -#: js/block.js:1484 -msgid "drum mapper" +#: js/activity.js:2229 +#: js/blocks/PitchBlocks.js:855 +msgid "east indian solfege" msgstr "" -#: js/block.js:1491 -msgid "ruler" +#: js/activity.js:2232 +#: js/blocks/PitchBlocks.js:869 +msgid "note name" msgstr "" -#: js/block.js:1498 -#: js/WidgetBlocks.js:327 -#.TRANS: timbre is the character or quality of a musical sound -msgid "timbre" +#: js/activity.js:2235 +#: js/blocks/IntervalsBlocks.js:94 +msgid "temperament name" msgstr "" -#: js/block.js:1505 -msgid "stair" +#: js/activity.js:2238 +#: js/palette.js:592 +msgid "mode name" msgstr "" -#: js/block.js:1512 -#: js/WidgetBlocks.js:577 -#.TRANS: the speed at music is should be played. -msgid "tempo" +#: js/activity.js:2241 +msgid "chord name" msgstr "" -#: js/block.js:1519 -#: js/block.js:1582 -#: js/IntervalsBlocks.js:1268 -#.TRANS: mode, e.g., Major in C Major -msgid "mode" +#: js/activity.js:2244 +#: js/palette.js:615 +msgid "interval name" msgstr "" -#: js/block.js:1526 -msgid "slider" +#: js/activity.js:2247 +msgid "filter type" msgstr "" -#: js/block.js:1533 -#: js/SensorsBlocks.js:1001 -msgid "keyboard" +#: js/activity.js:2250 +msgid "oscillator type" msgstr "" -#: js/block.js:1547 -#: js/WidgetBlocks.js:957 -#: js/WidgetBlocks.js:988 -#.TRANS: widget for subdividing a measure into distinct rhythmic elements -msgid "rhythm maker" +#: js/activity.js:2253 +#: js/blocks.js:2479 +#: js/blocks.js:2487 +msgid "audio file" msgstr "" -#: js/block.js:1554 -#: js/block.js:2182 -#: js/block.js:2236 -#: js/RhythmBlockPaletteBlocks.js:70 -#: js/RhythmBlockPaletteBlocks.js:251 -#: js/RhythmBlockPaletteBlocks.js:484 -#: js/RhythmBlockPaletteBlocks.js:553 -#: js/RhythmBlockPaletteBlocks.js:604 -#: js/RhythmBlockPaletteBlocks.js:874 -#: js/RhythmBlocks.js:33 -#: js/RhythmBlocks.js:356 -#: js/RhythmBlocks.js:766 -#: js/RhythmBlocks.js:806 -#: js/OrnamentBlocks.js:220 -#: js/OrnamentBlocks.js:312 -#: js/MeterBlocks.js:1367 -#: js/DictActions.js:85 -#: js/phrasemaker.js:731 -#: js/phrasemaker.js:2393 -#: js/phrasemaker.js:2436 -#: js/phrasemaker.js:2534 -#.TRANS: the value (e.g., 1/4 note) of the note being played. -msgid "note value" +#: js/activity.js:2256 +#: js/blocks/DrumBlocks.js:32 +msgid "noise name" msgstr "" -#: js/block.js:1561 -#: js/block.js:2110 -#: js/block.js:2133 -#: js/IntervalsBlocks.js:875 -#: js/OrnamentBlocks.js:312 -#.TRANS: calculate a relative step between notes based on semi-tones -msgid "scalar interval" +#: js/activity.js:2259 +#: js/blocks/DrumBlocks.js:75 +msgid "drum name" msgstr "" -#: js/block.js:1568 -#: js/RhythmBlocks.js:148 -msgid "milliseconds" +#: js/activity.js:2262 +#: js/blocks/DrumBlocks.js:119 +msgid "effects name" msgstr "" -#: js/block.js:2180 -#: js/block.js:2184 -#: js/block.js:2234 -#: js/block.js:2345 -#: js/ProgramBlocks.js:1273 -#: js/RhythmBlocks.js:712 -#: js/rhythmruler.js:834 -#: js/rhythmruler.js:961 -msgid "silence" +#: js/activity.js:2265 +msgid "wrap mode" msgstr "" -#: js/block.js:2265 -#: js/block.js:3134 -#: js/block.js:3151 -#: js/activity.js:2336 -#: js/activity.js:2387 -#: js/musicutils.js:2932 -#: js/musicutils.js:4287 -#.TRANS: the note names must be separated by single spaces -#.TRANS: the note names must be separated by single spaces -msgid "ti la sol fa mi re do" +#: js/activity.js:2268 +msgid "load file" msgstr "" -#: js/block.js:2333 -#.TRANS: scalar step -msgid "down" +#: js/activity.js:2435 +#: js/activity.js:5851 +msgid "This block is deprecated." msgstr "" -#: js/block.js:2334 -msgid "up" +#: js/activity.js:2437 +#: js/activity.js:5853 +msgid "Block cannot be found." msgstr "" -#: js/block.js:3477 -#: js/block.js:3490 -#: js/ExtrasBlocks.js:612 -msgid "Cartesian" +#: js/activity.js:2645 +msgid "Saving block artwork" msgstr "" -#: js/block.js:3478 -#: js/block.js:3491 -#: js/ExtrasBlocks.js:616 -msgid "polar" +#: js/activity.js:2656 +msgid "Erase" msgstr "" -#: js/block.js:3479 -#: js/block.js:3492 -#: js/ExtrasBlocks.js:620 -msgid "Cartesian+polar" +#: js/activity.js:2683 +#: js/activity.js:2705 +msgid "Paste" msgstr "" -#: js/block.js:3480 -#: js/block.js:3499 -#: js/ExtrasBlocks.js:649 -msgid "none" +#: js/activity.js:2687 +msgid "Save block help" msgstr "" -#: js/block.js:3493 -#: js/ExtrasBlocks.js:625 -msgid "treble" +#: js/activity.js:2772 +msgid "Jumping to the bottom of the page." msgstr "" -#: js/block.js:3494 -#: js/ExtrasBlocks.js:629 -msgid "grand staff" +#: js/activity.js:2778 +msgid "Scrolling up." msgstr "" -#: js/block.js:3495 -#: js/ExtrasBlocks.js:633 -msgid "mezzo-soprano" +#: js/activity.js:2783 +msgid "Scrolling down." msgstr "" -#: js/block.js:3496 -#: js/ExtrasBlocks.js:637 -msgid "alto" +#: js/activity.js:2788 +msgid "Extracting block" msgstr "" -#: js/block.js:3497 -#: js/ExtrasBlocks.js:641 -msgid "tenor" +#: js/activity.js:2796 +msgid "Moving block up." msgstr "" -#: js/block.js:3498 -#: js/ExtrasBlocks.js:645 -#: js/musicutils.js:736 -#: js/synthutils.js:64 -#.TRANS: musical instrument -msgid "bass" +#: js/activity.js:2817 +msgid "Moving block down." msgstr "" -#: js/block.js:4075 -msgid "Not a number" +#: js/activity.js:2838 +msgid "Moving block left." msgstr "" -#: js/block.js:4082 -msgid "Octave value must be between 1 and 10." +#: js/activity.js:2855 +msgid "Moving block right." msgstr "" -#: js/block.js:4090 -msgid "Numbers can have at most 10 digits." +#: js/activity.js:2870 +msgid "Jump to home position." msgstr "" -#: js/notation.js:353 -msgid "Lilypond cannot process pickup of " +#: js/activity.js:2897 +msgid "Hide blocks" msgstr "" -#: js/turtledefs.js:40 -#.TRANS: put the URL to the guide here, e.g., https://github.com/sugarlabs/turtleblocksjs/tree/master/guide/README.md -msgid "guide url" +#: js/activity.js:4500 +msgid "Click the run button to run the project." msgstr "" -#: js/turtledefs.js:85 -#: js/turtledefs.js:437 -msgid "Turtle Blocks is a Logo-inspired turtle that draws colorful pictures with snap-together visual-programming blocks." +#: js/activity.js:5692 +msgid "Show/hide block" msgstr "" -#: js/turtledefs.js:118 -#: js/turtledefs.js:220 -msgid "search" +#: js/activity.js:5698 +msgid "Expand/collapse blocks" msgstr "" -#: js/turtledefs.js:120 -#: js/turtledefs.js:222 -#: js/WidgetBlocks.js:437 -#: js/MeterBlocks.js:1343 -#.TRANS: musical meter (time signature), e.g., 4:4 -msgid "meter" +#: js/activity.js:5976 +msgid "Could not parse JSON input." msgstr "" -#: js/turtledefs.js:122 -#: js/turtledefs.js:224 -msgid "intervals" +#: js/activity.js:6475 +#: js/activity.js:6580 +#: js/activity.js:6631 +msgid "Cannot load project from the file. Please check the file type." msgstr "" -#: js/turtledefs.js:124 -#: js/turtledefs.js:226 -msgid "ornament" +#: js/activity.js:6917 +msgid "Invalid parameters" msgstr "" -#: js/turtledefs.js:125 -#: js/turtledefs.js:227 -#: js/VolumeBlocks.js:362 -#: js/VolumeBlocks.js:502 -#: js/VolumeBlocks.js:545 -msgid "volume" +#: js/blocks.js:1212 +#: js/blocks.js:3444 +#: js/blocks.js:3834 +#: js/blocks.js:3865 +#: js/blocks.js:3914 +#: js/blocks.js:3949 +#: js/blocks.js:6586 +#: js/palette.js:509 +#: js/palette.js:638 +#: js/palette.js:1105 +#: js/blocks/BoxesBlocks.js:282 +#: js/blocks/BoxesBlocks.js:285 +#: js/blocks/BoxesBlocks.js:405 +#: js/blocks/BoxesBlocks.js:594 +msgid "box" msgstr "" -#: js/turtledefs.js:129 -#: js/turtledefs.js:231 -msgid "boxes" +#: js/blocks.js:1713 +msgid "Consider breaking this stack into parts." msgstr "" -#: js/turtledefs.js:130 -#: js/turtledefs.js:232 -msgid "widgets" +#: js/blocks.js:2472 +#: js/palette.js:653 +#: js/blocks/MediaBlocks.js:602 +msgid "open file" msgstr "" -#: js/turtledefs.js:131 -#: js/turtledefs.js:233 -#: js/phrasemaker.js:824 -msgid "graphics" +#: js/blocks.js:3247 +#: js/palette.js:574 +#: js/blocks/MediaBlocks.js:892 +#: js/blocks/MediaBlocks.js:963 +msgid "text" msgstr "" -#: js/turtledefs.js:134 -#: js/turtledefs.js:236 -msgid "boolean" +#: js/blocks.js:3443 +#: js/palette.js:641 +#: js/palette.js:642 +#: js/blocks/BoxesBlocks.js:514 +msgid "store in box" msgstr "" -#: js/turtledefs.js:137 -#: js/turtledefs.js:239 -#: js/HeapBlocks.js:59 -#: js/status.js:147 -msgid "heap" +#: js/blocks.js:3448 +#: js/blocks.js:3888 +#: js/blocks.js:3923 +#: js/blocks.js:3958 +#: js/blocks.js:5862 +#: js/blocks.js:5883 +#: js/blocks/BoxesBlocks.js:772 +msgid "box1" msgstr "" -#: js/turtledefs.js:138 -#: js/turtledefs.js:240 -#: js/ProgramBlocks.js:495 -#: js/DictBlocks.js:142 -msgid "dictionary" +#: js/blocks.js:3450 +#: js/blocks.js:3890 +#: js/blocks.js:3925 +#: js/blocks.js:3960 +#: js/blocks.js:5864 +#: js/blocks.js:5885 +#: js/blocks/BoxesBlocks.js:663 +msgid "box2" msgstr "" -#: js/turtledefs.js:139 -#: js/turtledefs.js:241 -msgid "ensemble" +#: js/blocks.js:4122 +#: js/palette.js:639 +#: js/palette.js:644 +#: js/palette.js:1041 +#: js/blocks/BoxesBlocks.js:591 +msgid "store in" msgstr "" -#: js/turtledefs.js:140 -#: js/turtledefs.js:242 -msgid "extras" +#: js/blocks.js:4122 +#: js/blocks/BoxesBlocks.js:595 +#: js/blocks/DictBlocks.js:215 +#: js/blocks/DictBlocks.js:289 +#: js/blocks/EnsembleBlocks.js:391 +#: js/blocks/EnsembleBlocks.js:402 +#: js/blocks/MediaBlocks.js:746 +#: js/blocks/PitchBlocks.js:656 +#: js/blocks/PitchBlocks.js:934 +#: js/blocks/PitchBlocks.js:1866 +#: js/blocks/ProgramBlocks.js:390 +#: js/blocks/ProgramBlocks.js:495 +#: js/blocks/ProgramBlocks.js:658 +#: js/blocks/ToneBlocks.js:1025 +msgid "name" msgstr "" -#: js/turtledefs.js:142 -#: js/turtledefs.js:244 -#.TRANS: program as in computer program -#.TRANS: program as in computer program -msgid "program" +#: js/blocks.js:4122 +#: js/blocks/BoxesBlocks.js:75 +#: js/blocks/BoxesBlocks.js:595 +#: js/blocks/DictBlocks.js:289 +#: js/blocks/DictBlocks.js:430 +#: js/blocks/HeapBlocks.js:544 +#: js/blocks/RhythmBlocks.js:1130 +msgid "value" msgstr "" -#: js/turtledefs.js:143 -#: js/turtledefs.js:245 -msgid "my blocks" +#: js/blocks.js:4465 +msgid "Forever loop detected inside a note value block. Unexpected things may happen." msgstr "" -#: js/turtledefs.js:185 -#: js/turtledefs.js:281 -msgid "artwork" +#: js/blocks.js:4988 +msgid "There is no block selected." msgstr "" -#: js/turtledefs.js:185 -#: js/turtledefs.js:281 -msgid "logic" +#: js/blocks.js:5091 +#: js/blocks/MediaBlocks.js:888 +msgid "show" msgstr "" -#: js/turtledefs.js:185 -#: js/turtledefs.js:281 -msgid "music" +#: js/blocks.js:5094 +#: js/blocks/MediaBlocks.js:803 +#.TRANS: Avatar is the image used to determine the appearance of the mouse. +msgid "avatar" msgstr "" -#: js/turtledefs.js:187 -#: js/turtledefs.js:463 -msgid "Music Blocks is a collection of tools for exploring fundamental musical concepts in a fun way." +#: js/blocks.js:5097 +#: js/blocks/ToneBlocks.js:1010 +#: js/widgets/sampler.js:975 +#.TRANS: The sound sample that the user uploads. +msgid "sample" msgstr "" -#: js/turtledefs.js:436 -msgid "Welcome to Turtle Blocks" +#: js/lilypond.js:606 +msgid "brown rat" msgstr "" -#: js/turtledefs.js:438 -#: js/turtledefs.js:465 -#: js/turtledefs.js:774 -#: js/turtledefs.js:805 -msgid "The current version is" +#: js/lilypond.js:607 +msgid "mole" msgstr "" -#: js/turtledefs.js:446 -#: js/turtledefs.js:483 -msgid "Click the run button to run the project in fast mode." +#: js/lilypond.js:608 +msgid "chipmunk" msgstr "" -#: js/turtledefs.js:452 -msgid "Stop the turtle." +#: js/lilypond.js:609 +msgid "red squirrel" msgstr "" -#: js/turtledefs.js:454 -#: js/turtledefs.js:491 -msgid "You can also type Alt-S to stop." +#: js/lilypond.js:610 +msgid "guinea pig" +msgstr "" + +#: js/lilypond.js:611 +msgid "capybara" msgstr "" -#: js/turtledefs.js:462 -#: js/help.js:333 -msgid "Welcome to Music Blocks" +#: js/lilypond.js:612 +msgid "coypu" msgstr "" -#: js/turtledefs.js:472 -#: js/help.js:334 -msgid "Meet Mr. Mouse!" +#: js/lilypond.js:613 +msgid "black rat" msgstr "" -#: js/turtledefs.js:473 -msgid "Mr Mouse is our Music Blocks conductor." +#: js/lilypond.js:614 +msgid "grey squirrel" msgstr "" -#: js/turtledefs.js:475 -msgid "Mr Mouse encourages you to explore Music Blocks." +#: js/lilypond.js:615 +msgid "flying squirrel" msgstr "" -#: js/turtledefs.js:477 -msgid "Let us start our tour!" +#: js/lilypond.js:616 +msgid "bat" msgstr "" -#: js/turtledefs.js:489 -msgid "Stop the music (and the mice)." +#: js/lilypond.js:749 +#: js/lilypond.js:913 +#: js/lilypond.js:951 +#: js/blocks/ActionBlocks.js:1256 +#: js/blocks/ExtrasBlocks.js:556 +msgid "start drum" msgstr "" -#: js/turtledefs.js:499 -msgid "Record your project as video." +#: js/logo.js:61 +msgid "Not a valid pitch name" msgstr "" -#: js/turtledefs.js:505 -msgid "Toggle Fullscreen mode." +#: js/logo.js:507 +#: js/blocks/ProgramBlocks.js:258 +#: js/blocks/ProgramBlocks.js:427 +msgid "You must select a file." msgstr "" -#: js/turtledefs.js:511 -msgid "Initialize a new project." +#: js/logo.js:1696 +msgid "Playback is ready." msgstr "" -#: js/turtledefs.js:517 -msgid "You can also load projects from the file system." +#: js/macros.js:711 +#: js/utils/musicutils.js:1162 +#: js/utils/synthutils.js:202 +#.TRANS: animal sound effect +msgid "duck" msgstr "" -#: js/turtledefs.js:522 -#: js/StringHelper.js:46 -msgid "Delete" +#: js/notation.js:353 +msgid "Lilypond cannot process pickup of " msgstr "" -#: js/turtledefs.js:523 -msgid "To delete a block, just right-click on it, then you will be able to see the delete option" +#: js/palette.js:571 +msgid "grid" msgstr "" -#: js/turtledefs.js:528 -#: js/activity.js:2270 -#: js/LocalCard.js:31 -msgid "Copy" +#: js/palette.js:580 +msgid "effect" msgstr "" -#: js/turtledefs.js:529 -msgid "To copy a block, just right-click on it, then you will be able to see the copy option" +#: js/palette.js:586 +msgid "sargam" msgstr "" -#: js/turtledefs.js:535 -msgid "To extract a block, just right-click on it, then you will be able to see the extract option" +#: js/palette.js:601 +#: js/blocks/PitchBlocks.js:1209 +msgid "custom pitch" msgstr "" -#: js/turtledefs.js:542 -#: js/turtledefs.js:552 -#: js/turtledefs.js:573 -msgid "Save your project to a file." +#: js/palette.js:609 +msgid "accidental" msgstr "" -#: js/turtledefs.js:549 -#: js/turtledefs.js:570 -msgid "save" +#: js/palette.js:633 +#: js/blocks/PitchBlocks.js:405 +msgid "pitch converter" msgstr "" -#: js/turtledefs.js:556 -#: js/turtledefs.js:577 -msgid "Save graphics from your project to as SVG." +#: js/piemenus.js:200 +#: js/utils/musicutils.js:1187 +#: js/utils/musicutils.js:1207 +#: js/widgets/musickeyboard.js:2341 +#: js/widgets/phrasemaker.js:1908 +#: js/widgets/sampler.js:810 +#.TRANS: double sharp is a music term related to pitch +msgid "double sharp" msgstr "" -#: js/turtledefs.js:560 -#: js/turtledefs.js:581 -msgid "Save graphics from your project as PNG." +#: js/piemenus.js:201 +#: js/utils/musicutils.js:1185 +#: js/utils/musicutils.js:1208 +#: js/blocks/PitchBlocks.js:1539 +#: js/turtleactions/PitchActions.js:323 +#: js/widgets/musickeyboard.js:2342 +#: js/widgets/phrasemaker.js:1909 +#: js/widgets/sampler.js:811 +#.TRANS: sharp is a music term related to pitch +#.TRANS: sharp is a half-step up in pitch +msgid "sharp" msgstr "" -#: js/turtledefs.js:564 -#: js/turtledefs.js:597 -msgid "Save block artwork as an SVG file." +#: js/piemenus.js:202 +#: js/utils/musicutils.js:1183 +#: js/utils/musicutils.js:1209 +#: js/widgets/musickeyboard.js:2343 +#: js/widgets/phrasemaker.js:1910 +#: js/widgets/sampler.js:812 +#.TRANS: natural is a music term related to pitch +msgid "natural" msgstr "" -#: js/turtledefs.js:585 -msgid "Save audio from your project as WAV." +#: js/piemenus.js:203 +#: js/utils/musicutils.js:1181 +#: js/utils/musicutils.js:1210 +#: js/blocks/PitchBlocks.js:1498 +#: js/turtleactions/PitchActions.js:326 +#: js/widgets/musickeyboard.js:2344 +#: js/widgets/phrasemaker.js:1911 +#: js/widgets/sampler.js:813 +#.TRANS: flat is a music term related to pitch +#.TRANS: flat is a half-step down in pitch +msgid "flat" msgstr "" -#: js/turtledefs.js:589 -msgid "Save your project to as an ABC file." +#: js/piemenus.js:204 +#: js/utils/musicutils.js:1179 +#: js/utils/musicutils.js:1211 +#: js/widgets/musickeyboard.js:2345 +#: js/widgets/phrasemaker.js:1912 +#: js/widgets/sampler.js:814 +#.TRANS: double flat is a music term related to pitch +msgid "double flat" msgstr "" -#: js/turtledefs.js:593 -msgid "Save your project to as a Lilypond file." +#: js/piemenus.js:2864 +#: js/utils/musicutils.js:1006 +#: js/blocks/PitchBlocks.js:1385 +#.TRANS: unison is a music term related to intervals +#.TRANS: unison means the note is the same as the current note +msgid "unison" msgstr "" -#: js/turtledefs.js:604 -msgid "Load samples from server" +#: js/piemenus.js:3018 +#: js/piemenus.js:3091 +#: js/utils/musicutils.js:1014 +#: js/utils/musicutils.js:1189 +#: js/utils/musicutils.js:1326 +#.TRANS: major is a music term related to intervals and mode +msgid "major" msgstr "" -#: js/turtledefs.js:605 -msgid "This button opens a viewer for loading example projects." +#: js/piemenus.js:3018 +#: js/piemenus.js:3091 +#: js/utils/musicutils.js:1032 +#.TRANS: modal scale for music +msgid "ionian" msgstr "" -#: js/turtledefs.js:611 -msgid "Palette buttons" +#: js/piemenus.js:3020 +#: js/piemenus.js:3095 +#: js/utils/musicutils.js:1012 +#: js/utils/musicutils.js:1190 +#: js/utils/musicutils.js:1323 +#.TRANS: minor is a music term related to intervals and mode +msgid "minor" msgstr "" -#: js/turtledefs.js:612 -msgid "This toolbar contains the palette buttons including Rhythm Pitch Tone Action and more." +#: js/piemenus.js:3020 +#: js/piemenus.js:3095 +#: js/utils/musicutils.js:1042 +#.TRANS: modal scale for music +msgid "aeolian" msgstr "" -#: js/turtledefs.js:614 -msgid "Click to show the palettes of blocks and drag blocks from the palettes onto the canvas to use them." +#: js/piemenus.js:3410 +msgid "Duplicate" msgstr "" -#: js/turtledefs.js:620 -msgid "Cartesian/Polar" +#: js/piemenus.js:3412 +msgid "Move to trash" msgstr "" -#: js/turtledefs.js:621 -msgid "Show or hide a coordinate grid." +#: js/piemenus.js:3413 +#: js/widgets/timbre.js:968 +#: planet/js/StringHelper.js:69 +msgid "Close" msgstr "" -#: js/turtledefs.js:627 -msgid "Clear the screen and return the mice to their initial positions." +#: js/piemenus.js:3419 +msgid "Save stack" msgstr "" -#: js/turtledefs.js:633 -msgid "Collapse the graphics window." +#: js/piemenus.js:3449 +msgid "In order to copy a sample, you must reload the widget, import the sample again, and export it." msgstr "" -#: js/turtledefs.js:638 -#: js/activity.js:4256 -#: js/activity.js:4256 -msgid "Home" +#: js/piemenus.js:3812 +msgid "You have chosen key " msgstr "" -#: js/turtledefs.js:639 -msgid "Return all blocks to the center of the screen." +#: js/piemenus.js:3816 +msgid " for your pitch preview." msgstr "" -#: js/turtledefs.js:644 -msgid "Show/hide blocks" +#: js/turtle-singer.js:1363 +#.TRANS: partials are weighted components in a harmonic series +msgid "You must have at least one Partial block inside of a Weighted-partial block" msgstr "" -#: js/turtledefs.js:645 -msgid "Hide or show the blocks and the palettes." +#: js/turtle-singer.js:2077 +msgid "synth cannot play chords." msgstr "" -#: js/turtledefs.js:650 -msgid "Expand/collapse collapsable blocks" +#: js/utils/musicutils.js:505 +#: js/utils/musicutils.js:645 +#: js/widgets/pitchdrummatrix.js:228 +#: js/widgets/musickeyboard.js:2885 +msgid "rest" msgstr "" -#: js/turtledefs.js:651 -msgid "Expand or collapse start and action stacks." +#: js/utils/musicutils.js:689 +msgid "Perfect unison" msgstr "" -#: js/turtledefs.js:658 -#: js/activity.js:4265 -msgid "Decrease block size" +#: js/utils/musicutils.js:689 +msgid "Diminished second" msgstr "" -#: js/turtledefs.js:659 -msgid "Decrease the size of the blocks." +#: js/utils/musicutils.js:690 +msgid "Minor second" msgstr "" -#: js/turtledefs.js:664 -#: js/activity.js:4267 -msgid "Increase block size" +#: js/utils/musicutils.js:690 +msgid "Augmented unison" msgstr "" -#: js/turtledefs.js:665 -msgid "Increase the size of the blocks." +#: js/utils/musicutils.js:691 +msgid "Major second" msgstr "" -#: js/turtledefs.js:670 -msgid "Expand/collapse option toolbar" +#: js/utils/musicutils.js:691 +msgid "Diminished third" msgstr "" -#: js/turtledefs.js:671 -msgid "Click this button to expand or collapse the auxillary toolbar." +#: js/utils/musicutils.js:692 +msgid "Minor third" msgstr "" -#: js/turtledefs.js:676 -msgid "Run slow" +#: js/utils/musicutils.js:692 +msgid "Augmented second" msgstr "" -#: js/turtledefs.js:677 -msgid "Click to run the project in slow mode." +#: js/utils/musicutils.js:693 +msgid "Major third" msgstr "" -#: js/turtledefs.js:683 -msgid "Click to run the project step by step." +#: js/utils/musicutils.js:693 +msgid "Diminished fourth" msgstr "" -#: js/turtledefs.js:690 -msgid "Display statistics about your Music project." +#: js/utils/musicutils.js:694 +msgid "Perfect fourth" msgstr "" -#: js/turtledefs.js:697 -msgid "Delete a selected plugin." +#: js/utils/musicutils.js:694 +msgid "Augmented third" msgstr "" -#: js/turtledefs.js:704 -msgid "Enable scrolling" +#: js/utils/musicutils.js:695 +msgid "Diminished fifth" msgstr "" -#: js/turtledefs.js:705 -msgid "You can scroll the blocks on the canvas." +#: js/utils/musicutils.js:695 +msgid "Augmented fourth" msgstr "" -#: js/turtledefs.js:714 -msgid "Wrap Turtle" +#: js/utils/musicutils.js:696 +msgid "Perfect fifth" msgstr "" -#: js/turtledefs.js:715 -msgid "Turn Turtle wrapping On or Off." +#: js/utils/musicutils.js:696 +msgid "Diminished sixth" msgstr "" -#: js/turtledefs.js:725 -msgid "Restore blocks from the trash." +#: js/utils/musicutils.js:697 +msgid "Minor sixth" msgstr "" -#: js/turtledefs.js:732 -msgid "Switch mode" +#: js/utils/musicutils.js:697 +msgid "Augmented fifth" msgstr "" -#: js/turtledefs.js:733 -msgid "Switch between beginner and advance modes." +#: js/utils/musicutils.js:698 +msgid "Major sixth" msgstr "" -#: js/turtledefs.js:739 -msgid "Select your language preference." +#: js/utils/musicutils.js:698 +msgid "Diminished seventh" msgstr "" -#: js/turtledefs.js:745 -msgid "Keyboard shortcuts" +#: js/utils/musicutils.js:699 +msgid "Minor seventh" msgstr "" -#: js/turtledefs.js:746 -msgid "You can type d to create a do block and r to create a re block etc." +#: js/utils/musicutils.js:699 +msgid "Augmented sixth" msgstr "" -#: js/turtledefs.js:753 -msgid "Show these messages." +#: js/utils/musicutils.js:700 +msgid "Major seventh" msgstr "" -#: js/turtledefs.js:759 -#: js/turtledefs.js:790 -#: js/help.js:335 -msgid "Guide" +#: js/utils/musicutils.js:700 +msgid "Diminished octave" msgstr "" -#: js/turtledefs.js:760 -msgid "A detailed guide to Turtle Blocks is available." +#: js/utils/musicutils.js:701 +msgid "Perfect octave" msgstr "" -#: js/turtledefs.js:764 -msgid "Turtle Blocks Guide" +#: js/utils/musicutils.js:701 +msgid "Augmented seventh" msgstr "" -#: js/turtledefs.js:767 -#: js/turtledefs.js:798 -#: js/help.js:336 -msgid "About" +#: js/utils/musicutils.js:702 +msgid "Minor ninth" msgstr "" -#: js/turtledefs.js:768 -msgid "Turtle Blocks is an open source collection of tools for exploring musical concepts." +#: js/utils/musicutils.js:702 +msgid "Augmented octave" msgstr "" -#: js/turtledefs.js:770 -msgid "A full list of contributors can be found in the Turtle Blocks GitHub repository." +#: js/utils/musicutils.js:703 +msgid "Major ninth" msgstr "" -#: js/turtledefs.js:772 -msgid "Turtle Blocks is licensed under the AGPL." +#: js/utils/musicutils.js:703 +msgid "Diminished tenth" msgstr "" -#: js/turtledefs.js:780 -msgid "Turtle Blocks GitHub repository" +#: js/utils/musicutils.js:704 +msgid "Minor tenth" msgstr "" -#: js/turtledefs.js:783 -#: js/turtledefs.js:814 -#: js/help.js:337 -#: js/help.js:359 -msgid "Congratulations." +#: js/utils/musicutils.js:704 +msgid "Augmented ninth" msgstr "" -#: js/turtledefs.js:784 -msgid "You have finished the tour. Please enjoy Turtle Blocks!" +#: js/utils/musicutils.js:705 +msgid "Major tenth" msgstr "" -#: js/turtledefs.js:791 -msgid "A detailed guide to Music Blocks is available." +#: js/utils/musicutils.js:705 +msgid "Diminished eleventh" msgstr "" -#: js/turtledefs.js:795 -#: js/SaveInterface.js:76 -msgid "Music Blocks Guide" +#: js/utils/musicutils.js:706 +msgid "Perfect eleventh" msgstr "" -#: js/turtledefs.js:799 -msgid "Music Blocks is an open source collection of tools for exploring musical concepts." +#: js/utils/musicutils.js:706 +msgid "Augmented tenth" msgstr "" -#: js/turtledefs.js:801 -msgid "A full list of contributors can be found in the Music Blocks GitHub repository." +#: js/utils/musicutils.js:707 +msgid "Diminished twelfth" msgstr "" -#: js/turtledefs.js:803 -msgid "Music Blocks is licensed under the AGPL." +#: js/utils/musicutils.js:707 +msgid "Augmented eleventh" msgstr "" -#: js/turtledefs.js:811 -msgid "Music Blocks GitHub repository" +#: js/utils/musicutils.js:708 +msgid "Perfect twelfth" msgstr "" -#: js/turtledefs.js:815 -msgid "You have finished the tour. Please enjoy Music Blocks!" +#: js/utils/musicutils.js:708 +msgid "Diminished thirteenth" msgstr "" -#: js/activity.js:369 -msgid "Search for blocks" +#: js/utils/musicutils.js:709 +msgid "Minor thirteenth" msgstr "" -#: js/activity.js:1145 -msgid "Refresh your browser to change to advanced mode." +#: js/utils/musicutils.js:709 +msgid "Augmented fifth, plus an octave" msgstr "" -#: js/activity.js:1150 -msgid "Refresh your browser to change to beginner mode." +#: js/utils/musicutils.js:710 +msgid "Major thirteenth" msgstr "" -#: js/activity.js:1184 -msgid "Catching mice" +#: js/utils/musicutils.js:710 +msgid "Diminished seventh, plus an octave" msgstr "" -#: js/activity.js:1185 -msgid "Cleaning the instruments" +#: js/utils/musicutils.js:838 +#.TRANS: ordinal number. Please keep exactly one space between each number. +msgid "1st 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th" msgstr "" -#: js/activity.js:1186 -msgid "Testing key pieces" +#: js/utils/musicutils.js:1008 +#: js/utils/musicutils.js:1191 +#: js/utils/musicutils.js:1325 +#.TRANS: augmented is a music term related to intervals +msgid "augmented" msgstr "" -#: js/activity.js:1187 -msgid "Sight-reading" +#: js/utils/musicutils.js:1010 +#: js/utils/musicutils.js:1192 +#: js/utils/musicutils.js:1324 +#.TRANS: diminished is a music term related to intervals and mode +msgid "diminished" msgstr "" -#: js/activity.js:1188 -msgid "Combining math and music" +#: js/utils/musicutils.js:1016 +#: js/utils/musicutils.js:1322 +#: js/blocks/IntervalsBlocks.js:649 +#: js/turtleactions/IntervalsActions.js:120 +#: js/turtleactions/IntervalsActions.js:124 +#.TRANS: perfect is a music term related to intervals +msgid "perfect" +msgstr "" + +#: js/utils/musicutils.js:1018 +#.TRANS: twelve semi-tone scale for music +msgid "chromatic" msgstr "" -#: js/activity.js:1189 -msgid "Generating more blocks" +#: js/utils/musicutils.js:1019 +msgid "algerian" msgstr "" -#: js/activity.js:1190 -msgid "Do Re Mi Fa Sol La Ti Do" +#: js/utils/musicutils.js:1020 +msgid "spanish" msgstr "" -#: js/activity.js:1191 -msgid "Tuning string instruments" +#: js/utils/musicutils.js:1022 +#.TRANS: modal scale in music +msgid "octatonic" msgstr "" -#: js/activity.js:1192 -msgid "Pressing random keys" +#: js/utils/musicutils.js:1024 +#.TRANS: harmonic major scale in music +msgid "harmonic major" msgstr "" -#: js/activity.js:1351 -msgid "plugins will be removed upon restart." +#: js/utils/musicutils.js:1026 +#.TRANS: natural minor scales in music +msgid "natural minor" msgstr "" -#: js/activity.js:1360 -msgid "show Cartesian" +#: js/utils/musicutils.js:1028 +#.TRANS: harmonic minor scale in music +msgid "harmonic minor" msgstr "" -#: js/activity.js:1842 -msgid "output tools" +#: js/utils/musicutils.js:1030 +#.TRANS: melodic minor scale in music +msgid "melodic minor" msgstr "" -#: js/activity.js:1845 -msgid "custom note" +#: js/utils/musicutils.js:1034 +#.TRANS: modal scale for music +msgid "dorian" msgstr "" -#: js/activity.js:1848 -msgid "accidental name" +#: js/utils/musicutils.js:1036 +#.TRANS: modal scale for music +msgid "phrygian" msgstr "" -#: js/activity.js:1851 -#: js/PitchBlocks.js:855 -msgid "east indian solfege" +#: js/utils/musicutils.js:1038 +#.TRANS: modal scale for music +msgid "lydian" msgstr "" -#: js/activity.js:1854 -#: js/PitchBlocks.js:869 -msgid "note name" +#: js/utils/musicutils.js:1040 +#.TRANS: modal scale for music +msgid "mixolydian" msgstr "" -#: js/activity.js:1857 -#: js/IntervalsBlocks.js:94 -msgid "temperament name" +#: js/utils/musicutils.js:1044 +#.TRANS: modal scale for music +msgid "locrian" msgstr "" -#: js/activity.js:1863 -msgid "chord name" +#: js/utils/musicutils.js:1046 +#.TRANS: minor jazz scale for music +msgid "jazz minor" msgstr "" -#: js/activity.js:1869 -msgid "filter type" +#: js/utils/musicutils.js:1048 +#.TRANS: bebop scale for music +msgid "bebop" msgstr "" -#: js/activity.js:1872 -msgid "oscillator type" +#: js/utils/musicutils.js:1049 +msgid "arabic" msgstr "" -#: js/activity.js:1878 -#: js/DrumBlocks.js:32 -msgid "noise name" +#: js/utils/musicutils.js:1050 +msgid "byzantine" msgstr "" -#: js/activity.js:1881 -#: js/DrumBlocks.js:75 -msgid "drum name" +#: js/utils/musicutils.js:1052 +#.TRANS: musical scale for music by Verdi +msgid "enigmatic" msgstr "" -#: js/activity.js:1884 -#: js/DrumBlocks.js:119 -msgid "effects name" +#: js/utils/musicutils.js:1053 +msgid "ethiopian" msgstr "" -#: js/activity.js:1887 -msgid "wrap mode" +#: js/utils/musicutils.js:1055 +#.TRANS: Ethiopic scale for music +msgid "geez" msgstr "" -#: js/activity.js:1890 -msgid "load file" +#: js/utils/musicutils.js:1056 +msgid "hindu" msgstr "" -#: js/activity.js:2056 -msgid "This block is deprecated." +#: js/utils/musicutils.js:1057 +msgid "hungarian" msgstr "" -#: js/activity.js:2058 -msgid "Block cannot be found." +#: js/utils/musicutils.js:1059 +#.TRANS: minor Romanian scale for music +msgid "romanian minor" msgstr "" -#: js/activity.js:2266 -msgid "Saving block artwork" +#: js/utils/musicutils.js:1060 +msgid "spanish gypsy" msgstr "" -#: js/activity.js:2277 -msgid "Erase" +#: js/utils/musicutils.js:1062 +#.TRANS: musical scale for Mid-Eastern music +msgid "maqam" msgstr "" -#: js/activity.js:2301 -#: js/activity.js:2323 -msgid "Paste" +#: js/utils/musicutils.js:1064 +#.TRANS: minor blues scale for music +msgid "minor blues" msgstr "" -#: js/activity.js:2305 -msgid "Save block help" +#: js/utils/musicutils.js:1066 +#.TRANS: major blues scale for music +msgid "major blues" msgstr "" -#: js/activity.js:2390 -msgid "Jumping to the bottom of the page." +#: js/utils/musicutils.js:1067 +msgid "whole tone" msgstr "" -#: js/activity.js:2396 -msgid "Scrolling up." +#: js/utils/musicutils.js:1069 +#.TRANS: pentatonic is a general term that means "five note scale". This scale is typically known as "minor pentatonic" +msgid "minor pentatonic" msgstr "" -#: js/activity.js:2401 -msgid "Scrolling down." +#: js/utils/musicutils.js:1071 +#.TRANS: pentatonic is a general term that means "five note scale". This scale is typically known as "major pentatonic" +msgid "major pentatonic" msgstr "" -#: js/activity.js:2406 -msgid "Extracting block" +#: js/utils/musicutils.js:1072 +msgid "chinese" msgstr "" -#: js/activity.js:2414 -msgid "Moving block up." +#: js/utils/musicutils.js:1073 +msgid "egyptian" msgstr "" -#: js/activity.js:2435 -msgid "Moving block down." +#: js/utils/musicutils.js:1075 +#.TRANS: https://en.wikipedia.org/wiki/Hirajoshi_scale NOTE: There are three different versions of this scale +msgid "hirajoshi" msgstr "" -#: js/activity.js:2456 -msgid "Moving block left." +#: js/utils/musicutils.js:1076 +msgid "Japan" msgstr "" -#: js/activity.js:2473 -msgid "Moving block right." +#: js/utils/musicutils.js:1078 +#.TRANS: https://en.wikipedia.org/wiki/In_scale and https://en.wikipedia.org/wiki/Sakura_Sakura +msgid "in" msgstr "" -#: js/activity.js:2488 -msgid "Jump to home position." +#: js/utils/musicutils.js:1080 +#.TRANS: https://en.wikipedia.org/wiki/Miny%C5%8D_scale +msgid "minyo" msgstr "" -#: js/activity.js:2515 -msgid "Hide blocks" +#: js/utils/musicutils.js:1082 +#.TRANS: Italian mathematician +msgid "fibonacci" msgstr "" -#: js/activity.js:3389 -msgid "Click the run button to run the project." +#: js/utils/musicutils.js:1083 +#: js/utils/musicutils.js:1134 +#: js/utils/musicutils.js:1177 +#: js/utils/musicutils.js:1199 +#: js/utils/synthutils.js:134 +#: js/blocks/IntervalsBlocks.js:1124 +#: js/blocks/ToneBlocks.js:946 +#: js/blocks/VolumeBlocks.js:411 +#: js/blocks/WidgetBlocks.js:399 +#: js/blocks/WidgetBlocks.js:404 +#: js/turtleactions/VolumeActions.js:218 +#: js/widgets/modewidget.js:919 +#.TRANS: customize voice +msgid "custom" msgstr "" -#: js/activity.js:3456 -#: js/SaveInterface.js:131 -#: js/SaveInterface.js:204 -#: js/SaveInterface.js:262 -#: js/SaveInterface.js:389 -#: js/SaveInterface.js:417 -#: js/ProjectStorage.js:27 -#: js/GlobalPlanet.js:467 -#: js/GlobalPlanet.js:469 -#: js/GlobalPlanet.js:495 -#.TRANS: default project title when saving as Lilypond -msgid "My Project" +#: js/utils/musicutils.js:1085 +#: js/utils/musicutils.js:1531 +#: js/blocks/WidgetBlocks.js:176 +#.TRANS: highpass filter +msgid "highpass" msgstr "" -#: js/activity.js:4261 -msgid "Show/hide block" +#: js/utils/musicutils.js:1087 +#: js/utils/musicutils.js:1532 +#.TRANS: lowpass filter +msgid "lowpass" msgstr "" -#: js/activity.js:4263 -msgid "Expand/collapse blocks" +#: js/utils/musicutils.js:1089 +#: js/utils/musicutils.js:1533 +#.TRANS: bandpass filter +msgid "bandpass" msgstr "" -#: js/activity.js:4381 -msgid "Could not parse JSON input." +#: js/utils/musicutils.js:1091 +#: js/utils/musicutils.js:1534 +#.TRANS: high-shelf filter +msgid "highshelf" msgstr "" -#: js/activity.js:4684 -#: js/activity.js:4771 -#: js/activity.js:4821 -msgid "Cannot load project from the file. Please check the file type." +#: js/utils/musicutils.js:1093 +#: js/utils/musicutils.js:1535 +#.TRANS: low-shelf filter +msgid "lowshelf" msgstr "" -#: js/activity.js:5051 -msgid "Invalid parameters" +#: js/utils/musicutils.js:1095 +#: js/utils/musicutils.js:1536 +#.TRANS: notch-shelf filter +msgid "notch" msgstr "" -#: js/turtle-singer.js:1334 -#.TRANS: partials are weighted components in a harmonic series -msgid "You must have at least one Partial block inside of a Weighted-partial block" +#: js/utils/musicutils.js:1097 +#: js/utils/musicutils.js:1537 +#.TRANS: all-pass filter +msgid "allpass" msgstr "" -#: js/turtle-singer.js:2048 -msgid "synth cannot play chords." +#: js/utils/musicutils.js:1099 +#: js/utils/musicutils.js:1538 +#.TRANS: peaking filter +msgid "peaking" msgstr "" -#: js/lilypond.js:614 -msgid "brown rat" +#: js/utils/musicutils.js:1100 +#: js/utils/musicutils.js:1546 +#: js/utils/synthutils.js:126 +#: js/blocks/PitchBlocks.js:85 +#.TRANS: sine wave +msgid "sine" msgstr "" -#: js/lilypond.js:615 -msgid "mole" +#: js/utils/musicutils.js:1101 +#: js/utils/musicutils.js:1547 +#: js/utils/synthutils.js:128 +#: js/blocks/PitchBlocks.js:39 +#.TRANS: square wave +msgid "square" msgstr "" -#: js/lilypond.js:616 -msgid "chipmunk" +#: js/utils/musicutils.js:1102 +#: js/utils/musicutils.js:1548 +#: js/utils/synthutils.js:132 +#: js/blocks/PitchBlocks.js:62 +#: js/blocks/ToneBlocks.js:39 +#.TRANS: triangle wave +msgid "triangle" msgstr "" -#: js/lilypond.js:617 -msgid "red squirrel" +#: js/utils/musicutils.js:1103 +#: js/utils/musicutils.js:1549 +#: js/utils/synthutils.js:130 +#: js/blocks/PitchBlocks.js:108 +#.TRANS: sawtooth wave +msgid "sawtooth" msgstr "" -#: js/lilypond.js:618 -msgid "guinea pig" +#: js/utils/musicutils.js:1105 +#: js/utils/musicutils.js:1312 +#: js/blocks/PitchBlocks.js:931 +#: js/blocks/PitchBlocks.js:937 +#: js/turtleactions/PitchActions.js:469 +#.TRANS: even numbers +#.TRANS: invert based on even or odd number or musical scale +msgid "even" msgstr "" -#: js/lilypond.js:619 -msgid "capybara" +#: js/utils/musicutils.js:1107 +#: js/utils/musicutils.js:1313 +#: js/blocks/PitchBlocks.js:937 +#: js/turtleactions/PitchActions.js:471 +#.TRANS: odd numbers +msgid "odd" msgstr "" -#: js/lilypond.js:620 -msgid "coypu" +#: js/utils/musicutils.js:1108 +#: js/utils/musicutils.js:1314 +#: js/blocks/PitchBlocks.js:937 +#: js/turtleactions/PitchActions.js:473 +msgid "scalar" msgstr "" -#: js/lilypond.js:621 -msgid "black rat" +#: js/utils/musicutils.js:1109 +#: js/utils/synthutils.js:72 +#: js/blocks/VolumeBlocks.js:47 +#.TRANS: musical instrument +msgid "piano" msgstr "" -#: js/lilypond.js:622 -msgid "grey squirrel" +#: js/utils/musicutils.js:1110 +#: js/utils/synthutils.js:74 +#.TRANS: musical instrument +msgid "violin" msgstr "" -#: js/lilypond.js:623 -msgid "flying squirrel" +#: js/utils/musicutils.js:1111 +#: js/utils/synthutils.js:76 +#.TRANS: viola musical instrument +msgid "viola" msgstr "" -#: js/lilypond.js:624 -msgid "bat" +#: js/utils/musicutils.js:1112 +#: js/utils/synthutils.js:114 +#.TRANS: xylophone musical instrument +msgid "xylophone" msgstr "" -#: js/lilypond.js:757 -#: js/lilypond.js:921 -#: js/lilypond.js:959 -#: js/ActionBlocks.js:1256 -#: js/ExtrasBlocks.js:553 -msgid "start drum" +#: js/utils/musicutils.js:1113 +#: js/utils/synthutils.js:136 +#.TRANS: vibraphone musical instrument +msgid "vibraphone" msgstr "" -#: js/SaveInterface.js:59 -#: js/SaveInterface.js:61 -#: js/SaveInterface.js:93 -msgid "Music Blocks Project" +#: js/utils/musicutils.js:1114 +#: js/utils/synthutils.js:78 +#.TRANS: musical instrument +msgid "cello" msgstr "" -#: js/SaveInterface.js:63 -msgid "This project was created in Music Blocks" +#: js/utils/musicutils.js:1116 +#: js/utils/synthutils.js:82 +#.TRANS: viola musical instrument +msgid "double bass" msgstr "" -#: js/SaveInterface.js:67 -msgid "Music Blocks is a Free/Libre Software application." +#: js/utils/musicutils.js:1117 +#: js/utils/synthutils.js:84 +#: js/widgets/rhythmruler.js:2511 +#.TRANS: musical instrument +msgid "guitar" msgstr "" -#: js/SaveInterface.js:69 -msgid "The source code can be accessed at" +#: js/utils/musicutils.js:1118 +#: js/utils/synthutils.js:86 +#.TRANS: musical instrument +msgid "acoustic guitar" msgstr "" -#: js/SaveInterface.js:72 -msgid "For more information, please consult the" +#: js/utils/musicutils.js:1119 +#: js/utils/synthutils.js:88 +#.TRANS: musical instrument +msgid "flute" msgstr "" -#: js/SaveInterface.js:83 -msgid "Alternatively, open the file in Music Blocks using the Load project button." +#: js/utils/musicutils.js:1120 +#: js/utils/synthutils.js:90 +#.TRANS: musical instrument +msgid "clarinet" msgstr "" -#: js/SaveInterface.js:85 -msgid "Project Code" +#: js/utils/musicutils.js:1121 +#: js/utils/synthutils.js:92 +#.TRANS: musical instrument +msgid "saxophone" msgstr "" -#: js/SaveInterface.js:87 -msgid "This code stores data about the blocks in a project." +#: js/utils/musicutils.js:1122 +#: js/utils/synthutils.js:94 +#.TRANS: musical instrument +msgid "tuba" msgstr "" -#: js/SaveInterface.js:89 -msgid "Show" +#: js/utils/musicutils.js:1123 +#: js/utils/synthutils.js:96 +#.TRANS: musical instrument +msgid "trumpet" msgstr "" -#: js/SaveInterface.js:91 -msgid "Hide" +#: js/utils/musicutils.js:1124 +#: js/utils/synthutils.js:98 +#.TRANS: musical instrument +msgid "oboe" msgstr "" -#: js/SaveInterface.js:197 -#: js/SaveInterface.js:58 -msgid "No description provided" +#: js/utils/musicutils.js:1125 +#: js/utils/synthutils.js:100 +#.TRANS: musical instrument +msgid "trombone" msgstr "" -#: js/SaveInterface.js:332 -msgid "Your recording is in progress." +#: js/utils/musicutils.js:1126 +#: js/utils/synthutils.js:116 +#.TRANS: polytone synthesizer +msgid "electronic synth" msgstr "" -#: js/SaveInterface.js:401 -#.TRANS: File name prompt for save as Lilypond -msgid "File name" +#: js/utils/musicutils.js:1127 +#: js/utils/synthutils.js:118 +#.TRANS: simple monotone synthesizer +msgid "simple 1" msgstr "" -#: js/SaveInterface.js:403 -#: js/StringHelper.js:39 -#.TRANS: Project title prompt for save as Lilypond -msgid "Project title" +#: js/utils/musicutils.js:1128 +msgid "simple 2" msgstr "" -#: js/SaveInterface.js:405 -#.TRANS: Project title prompt for save as Lilypond -msgid "Project author" +#: js/utils/musicutils.js:1129 +msgid "simple 3" msgstr "" -#: js/SaveInterface.js:407 -#.TRANS: MIDI prompt for save as Lilypond -msgid "Include MIDI output?" +#: js/utils/musicutils.js:1130 +msgid "simple 4" msgstr "" -#: js/SaveInterface.js:409 -#.TRANS: Guitar prompt for save as Lilypond -msgid "Include guitar tablature output?" +#: js/utils/musicutils.js:1131 +#: js/utils/synthutils.js:58 +#: js/blocks/DrumBlocks.js:191 +#.TRANS: white noise synthesizer +msgid "white noise" msgstr "" -#: js/SaveInterface.js:411 -#.TRANS: Lilypond is a scripting language for generating sheet music -msgid "Save as Lilypond" +#: js/utils/musicutils.js:1132 +#: js/utils/synthutils.js:60 +#.TRANS: brown noise synthesizer +msgid "brown noise" msgstr "" -#: js/SaveInterface.js:426 -#: js/EnsembleBlocks.js:75 -#: js/EnsembleBlocks.js:154 -#: js/EnsembleBlocks.js:216 -#: js/EnsembleBlocks.js:302 -#: js/EnsembleBlocks.js:348 -#: js/EnsembleBlocks.js:389 -#: js/EnsembleBlocks.js:441 -#: js/EnsembleBlocks.js:490 -#: js/EnsembleBlocks.js:536 -#: js/EnsembleBlocks.js:583 -#: js/EnsembleBlocks.js:637 -#: js/EnsembleBlocks.js:753 -#: js/EnsembleBlocks.js:840 -#: js/EnsembleBlocks.js:899 -#: js/EnsembleBlocks.js:942 -#: js/EnsembleBlocks.js:1212 -#: js/EnsembleBlocks.js:1280 -#.TRANS: default project author when saving as Lilypond -msgid "Mr. Mouse" +#: js/utils/musicutils.js:1133 +#: js/utils/synthutils.js:62 +#.TRANS: pink noise synthesizer +msgid "pink noise" msgstr "" -#: js/SaveInterface.js:573 -msgid "The Lilypond code is copied to clipboard. You can paste it here: " +#: js/utils/musicutils.js:1135 +#: js/utils/synthutils.js:148 +#: js/widgets/rhythmruler.js:2057 +#: js/widgets/rhythmruler.js:2319 +#.TRANS: musical instrument +msgid "snare drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:50 -#: js/RhythmBlockPaletteBlocks.js:232 -#.TRANS: rhythm block -#.TRANS: translate "rhythm1" as rhythm -msgid "rhythm1" +#: js/utils/musicutils.js:1136 +#: js/utils/synthutils.js:150 +#.TRANS: musical instrument +msgid "kick drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:70 -#: js/RhythmBlockPaletteBlocks.js:251 -#: js/RhythmBlockPaletteBlocks.js:484 -#: js/RhythmBlockPaletteBlocks.js:553 -#: js/RhythmBlockPaletteBlocks.js:874 -msgid "number of notes" +#: js/utils/musicutils.js:1137 +#: js/utils/synthutils.js:152 +#.TRANS: musical instrument +msgid "tom tom" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:126 -msgid "polyphonic rhythm" +#: js/utils/musicutils.js:1138 +#: js/utils/synthutils.js:154 +#.TRANS: musical instrument +msgid "floor tom" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:218 -msgid "The Rhythm block is used to generate rhythm patterns." +#: js/utils/musicutils.js:1139 +#: js/utils/synthutils.js:156 +#.TRANS: musical instrument +msgid "bass drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:279 -msgid "1/64 note" +#: js/utils/musicutils.js:1140 +#: js/utils/synthutils.js:158 +#.TRANS: a drum made from an inverted cup +msgid "cup drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:303 -msgid "1/32 note" +#: js/utils/musicutils.js:1141 +#: js/utils/synthutils.js:160 +#.TRANS: musical instrument +msgid "darbuka drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:331 -msgid "1/16 note" +#: js/utils/musicutils.js:1142 +#: js/utils/synthutils.js:164 +#.TRANS: musical instrument +msgid "hi hat" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:359 -msgid "eighth note" +#: js/utils/musicutils.js:1143 +#: js/utils/synthutils.js:166 +#.TRANS: a small metal bell +msgid "ride bell" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:387 -msgid "quarter note" +#: js/utils/musicutils.js:1144 +#: js/utils/synthutils.js:168 +#.TRANS: musical instrument +msgid "cow bell" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:415 -msgid "half note" +#: js/utils/musicutils.js:1145 +msgid "japanese drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:443 -msgid "whole note" +#: js/utils/musicutils.js:1146 +#: js/utils/synthutils.js:174 +#.TRANS: musical instrument +msgid "japanese bell" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:481 -#: js/RhythmBlockPaletteBlocks.js:550 -#: js/RhythmBlockPaletteBlocks.js:601 -#.TRANS: A tuplet is a note value divided into irregular time values. -msgid "tuplet" +#: js/utils/musicutils.js:1147 +#: js/utils/synthutils.js:170 +#.TRANS: musical instrument +msgid "triangle bell" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:767 -msgid "septuplet" +#: js/utils/musicutils.js:1148 +#: js/utils/synthutils.js:172 +#.TRANS: musical instrument +msgid "finger cymbals" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:795 -msgid "quintuplet" +#: js/utils/musicutils.js:1149 +#: js/utils/synthutils.js:176 +#.TRANS: a musically tuned set of bells +msgid "chime" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:823 -msgid "triplet" +#: js/utils/musicutils.js:1150 +#: js/utils/synthutils.js:178 +#.TRANS: a musical instrument +msgid "gong" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:850 -msgid "simple tuplet" +#: js/utils/musicutils.js:1151 +#: js/utils/synthutils.js:180 +#.TRANS: sound effect +msgid "clang" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:860 -msgid "Tuplets are a collection of notes that get scaled to a specific duration." +#: js/utils/musicutils.js:1152 +#: js/utils/synthutils.js:182 +#.TRANS: sound effect +msgid "crash" msgstr "" -#: js/WidgetBlocks.js:71 -#.TRANS: sound envelope (ADSR) -msgid "envelope" +#: js/utils/musicutils.js:1153 +#: js/utils/synthutils.js:184 +#.TRANS: sound effect +msgid "bottle" msgstr "" -#: js/WidgetBlocks.js:79 -#.TRANS: Attack time is the time taken for initial run-up of level from nil to peak, beginning when the key is first pressed. -msgid "attack" +#: js/utils/musicutils.js:1154 +#: js/utils/synthutils.js:186 +#.TRANS: sound effect +msgid "clap" msgstr "" -#: js/WidgetBlocks.js:81 -#.TRANS: Decay time is the time taken for the subsequent run down from the attack level to the designated sustain level. -msgid "decay" +#: js/utils/musicutils.js:1155 +#: js/utils/synthutils.js:188 +#.TRANS: sound effect +msgid "slap" msgstr "" -#: js/WidgetBlocks.js:83 -#.TRANS: Sustain level is the level during the main sequence of the sound's duration, until the key is released. -msgid "sustain" +#: js/utils/musicutils.js:1156 +#: js/utils/synthutils.js:190 +#.TRANS: sound effect +msgid "splash" msgstr "" -#: js/WidgetBlocks.js:85 -#.TRANS: Release time is the time taken for the level to decay from the sustain level to zero after the key is released. -msgid "release" +#: js/utils/musicutils.js:1157 +#: js/utils/synthutils.js:192 +#.TRANS: sound effect +msgid "bubbles" msgstr "" -#: js/WidgetBlocks.js:96 -msgid "Attack value should be from 0 to 100." +#: js/utils/musicutils.js:1158 +#: js/utils/synthutils.js:194 +#.TRANS: sound effect +msgid "raindrop" msgstr "" -#: js/WidgetBlocks.js:99 -msgid "Decay value should be from 0 to 100." +#: js/utils/musicutils.js:1159 +#: js/utils/synthutils.js:196 +#.TRANS: animal sound effect +msgid "cat" msgstr "" -#: js/WidgetBlocks.js:102 -msgid "Sustain value should be from 0 to 100." +#: js/utils/musicutils.js:1160 +#: js/utils/synthutils.js:198 +#.TRANS: animal sound effect +msgid "cricket" msgstr "" -#: js/WidgetBlocks.js:105 -msgid "Release value should be from 0-100." +#: js/utils/musicutils.js:1161 +#: js/utils/synthutils.js:200 +#.TRANS: animal sound effect +msgid "dog" msgstr "" -#: js/WidgetBlocks.js:121 -msgid "You are adding multiple envelope blocks." +#: js/utils/musicutils.js:1163 +#: js/utils/synthutils.js:102 +#.TRANS: musical instrument +msgid "banjo" msgstr "" -#: js/WidgetBlocks.js:144 -#.TRANS: a filter removes some unwanted components from a signal -msgid "filter" +#: js/utils/musicutils.js:1164 +#: js/utils/synthutils.js:104 +#.TRANS: musical instrument +msgid "koto" msgstr "" -#: js/WidgetBlocks.js:149 -#: js/musicutils.js:706 -#: js/musicutils.js:1105 -#.TRANS: highpass filter -msgid "highpass" +#: js/utils/musicutils.js:1165 +#: js/utils/synthutils.js:106 +#.TRANS: musical instrument +msgid "dulcimer" msgstr "" -#: js/WidgetBlocks.js:152 -#: js/ToneBlocks.js:42 -#: js/timbre.js:1558 -#: js/timbre.js:1808 -#.TRANS: type of filter, e.g., lowpass, highpass, etc. -#.TRANS: there are different types (sine, triangle, square...) of oscillators. -msgid "type" +#: js/utils/musicutils.js:1166 +#: js/utils/synthutils.js:108 +#.TRANS: musical instrument +msgid "electric guitar" msgstr "" -#: js/WidgetBlocks.js:154 -#: js/timbre.js:1818 -#.TRANS: rolloff is the steepness of a change in frequency. -msgid "rolloff" +#: js/utils/musicutils.js:1167 +#: js/utils/synthutils.js:110 +#.TRANS: musical instrument +msgid "bassoon" msgstr "" -#: js/WidgetBlocks.js:155 -#: js/MediaBlocks.js:692 -#: js/temperament.js:382 -#: js/temperament.js:417 -#: js/temperament.js:477 -#: js/temperament.js:485 -#: js/temperament.js:1348 -#: js/timbre.js:1842 -msgid "frequency" +#: js/utils/musicutils.js:1168 +#: js/utils/synthutils.js:112 +#.TRANS: musical instrument +msgid "celeste" msgstr "" -#: js/WidgetBlocks.js:179 -#.TRANS: rolloff is the steepness of a change in frequency. -msgid "Rolloff value should be either -12, -24, -48, or -96 decibels/octave." +#: js/utils/musicutils.js:1170 +#: js/widgets/temperament.js:787 +#.TRANS: musical temperament +msgid "equal" msgstr "" -#: js/WidgetBlocks.js:211 -msgid "The Temperament tool is used to define custom tuning." +#: js/utils/musicutils.js:1172 +#.TRANS: musical temperament +msgid "Pythagorean" msgstr "" -#: js/WidgetBlocks.js:277 -#: js/sampler.js:329 -msgid "Upload a sample and adjust its pitch center." +#: js/utils/musicutils.js:1174 +#.TRANS: musical temperament +msgid "just intonation" msgstr "" -#: js/WidgetBlocks.js:284 -#.TRANS: the speed at music is should be played. -msgid "sampler" +#: js/utils/musicutils.js:1176 +#.TRANS: musical temperament +msgid "meantone" msgstr "" -#: js/WidgetBlocks.js:329 -#: js/WidgetBlocks.js:334 -#: js/IntervalsBlocks.js:928 -#: js/VolumeBlocks.js:411 -#: js/ToneBlocks.js:946 -#: js/VolumeActions.js:218 -#: js/musicutils.js:704 -#: js/musicutils.js:755 -#: js/musicutils.js:798 -#: js/musicutils.js:820 -#: js/musicutils.js:1136 -#: js/synthutils.js:118 -#: js/modewidget.js:919 -#.TRANS: customize voice -msgid "custom" +#: js/utils/musicutils.js:1193 +msgid "major 7th" msgstr "" -#: js/WidgetBlocks.js:432 -msgid "The Meter block opens a tool to select strong beats for the meter." +#: js/utils/musicutils.js:1194 +msgid "minor 7th" msgstr "" -#: js/WidgetBlocks.js:473 -msgid "The oscilloscope block opens a tool to visualize waveforms." +#: js/utils/musicutils.js:1195 +msgid "dominant 7th" msgstr "" -#: js/WidgetBlocks.js:478 -msgid "oscilloscope" +#: js/utils/musicutils.js:1196 +msgid "minor-major 7th" msgstr "" -#: js/WidgetBlocks.js:530 -msgid "The Custom mode block opens a tool to explore musical mode (the spacing of the notes in a scale)." +#: js/utils/musicutils.js:1197 +msgid "fully-diminished 7th" msgstr "" -#: js/WidgetBlocks.js:536 -#.TRANS: musical mode is the pattern of half-steps in an octave, e.g., Major or Minor modes -msgid "custom mode" +#: js/utils/musicutils.js:1198 +msgid "half-diminished 7th" msgstr "" -#: js/WidgetBlocks.js:570 -msgid "The Tempo block opens a metronome to visualize the beat." +#: js/utils/musicutils.js:1557 +#: js/utils/musicutils.js:1569 +msgid "Equal (12EDO)" msgstr "" -#: js/WidgetBlocks.js:617 -msgid "The Arpeggio Widget is used to compose chord sequences." +#: js/utils/musicutils.js:1558 +#: js/utils/musicutils.js:1570 +msgid "5-limit Just Intonation" msgstr "" -#: js/WidgetBlocks.js:623 -#: js/IntervalsBlocks.js:683 -msgid "arpeggio" +#: js/utils/musicutils.js:1559 +#: js/utils/musicutils.js:1571 +msgid "Pythagorean (3-limit JI)" msgstr "" -#: js/WidgetBlocks.js:677 -msgid "The Pitch drum matrix is used to map pitches to drum sounds." +#: js/utils/musicutils.js:1560 +#: js/utils/musicutils.js:1561 +#: js/utils/musicutils.js:1572 +#: js/utils/musicutils.js:1573 +msgid "Meantone" msgstr "" -#: js/WidgetBlocks.js:682 -#.TRANS: makes a mapping between pitches and drum sounds -msgid "pitch-drum mapper" +#: js/utils/musicutils.js:1574 +msgid "Custom" msgstr "" -#: js/WidgetBlocks.js:724 -msgid "You must have at least one pitch block and one drum block in the matrix." +#: js/utils/musicutils.js:5387 +#: js/utils/musicutils.js:5430 +msgid "current" msgstr "" -#: js/WidgetBlocks.js:746 -msgid "The Pitch slider tool to is used to generate pitches at selected frequencies." +#: js/utils/musicutils.js:5390 +#: js/utils/musicutils.js:5421 +msgid "next" msgstr "" -#: js/WidgetBlocks.js:751 -#.TRANS: widget to generate pitches using a slider -msgid "pitch slider" +#: js/utils/musicutils.js:5393 +#: js/utils/musicutils.js:5426 +msgid "previous" msgstr "" -#: js/WidgetBlocks.js:788 -msgid "chromatic keyboard" +#: js/utils/synthutils.js:120 +#.TRANS: simple monotone synthesizer +msgid "simple-2" msgstr "" -#: js/WidgetBlocks.js:815 -#: js/WidgetBlocks.js:874 -#.TRANS: widget to generate pitches using a slider -msgid "music keyboard" +#: js/utils/synthutils.js:122 +#.TRANS: simple monotone synthesizer +msgid "simple-3" msgstr "" -#: js/WidgetBlocks.js:859 -#: js/WidgetBlocks.js:866 -msgid "The Music keyboard block opens a piano keyboard that can be used to create notes." +#: js/utils/synthutils.js:124 +#.TRANS: simple monotone synthesizer +msgid "simple-4" msgstr "" -#: js/WidgetBlocks.js:910 -msgid "The Pitch staircase tool to is used to generate pitches from a given ratio." +#: js/utils/synthutils.js:162 +#.TRANS: musical instrument +msgid "taiko" msgstr "" -#: js/WidgetBlocks.js:917 -#.TRANS: generate a progressive sequence of pitches -msgid "pitch staircase" +#: js/blocks/ActionBlocks.js:58 +msgid "The Return block will return a value from an action." msgstr "" -#: js/WidgetBlocks.js:982 -msgid "The Rhythm Maker block opens a tool to create drum machines." +#: js/blocks/ActionBlocks.js:75 +msgid "return" msgstr "" -#: js/WidgetBlocks.js:1036 -msgid "G major scale" +#: js/blocks/ActionBlocks.js:128 +msgid "The Return to URL block will return a value to a webpage." msgstr "" -#: js/WidgetBlocks.js:1064 -msgid "C major scale" +#: js/blocks/ActionBlocks.js:145 +msgid "return to URL" msgstr "" -#: js/WidgetBlocks.js:1097 -msgid "The Phrase Maker block opens a tool to create musical phrases." +#: js/blocks/ActionBlocks.js:233 +#: js/blocks/ActionBlocks.js:290 +#: js/blocks/ActionBlocks.js:501 +#: js/blocks/ActionBlocks.js:688 +msgid "The Calculate block returns a value calculated by an action." msgstr "" -#: js/WidgetBlocks.js:1104 -#.TRANS: assigns pitch to a sequence of beats to generate a melody -msgid "phrase maker" +#: js/blocks/ActionBlocks.js:251 +#: js/blocks/ActionBlocks.js:517 +#: js/blocks/ActionBlocks.js:707 +msgid "calculate" msgstr "" -#: js/WidgetBlocks.js:1168 -msgid "You must have at least one pitch block and one rhythm block in the matrix." +#: js/blocks/ActionBlocks.js:376 +#: js/blocks/ActionBlocks.js:593 +#: js/blocks/ActionBlocks.js:942 +#: js/blocks/ActionBlocks.js:1389 +#.TRANS: do is the do something or take an action. +msgid "The Do block is used to initiate an action." msgstr "" -#: js/WidgetBlocks.js:1220 -msgid "The Status block opens a tool for inspecting the status of Music Blocks as it is running." +#: js/blocks/ActionBlocks.js:390 +#: js/blocks/ActionBlocks.js:610 +#: js/blocks/ActionBlocks.js:959 +#: js/blocks/ActionBlocks.js:1048 +#: js/blocks/MeterBlocks.js:769 +msgid "do1" msgstr "" -#: js/IntervalsBlocks.js:45 -msgid "set temperament" +#: js/blocks/ActionBlocks.js:390 +#: js/blocks/ActionBlocks.js:610 +#: js/blocks/ActionBlocks.js:959 +#: js/blocks/ActionBlocks.js:1048 +#: js/blocks/FlowBlocks.js:742 +#: js/blocks/FlowBlocks.js:822 +#: js/blocks/MeterBlocks.js:769 +msgid "do" msgstr "" -#: js/IntervalsBlocks.js:63 -#: js/MediaBlocks.js:746 -#: js/PitchBlocks.js:657 -#: js/PitchBlocks.js:933 -#: js/PitchBlocks.js:972 -#: js/PitchBlocks.js:1005 -#: js/PitchBlocks.js:1166 -#: js/PitchBlocks.js:1679 -#: js/PitchBlocks.js:1720 -#: js/PitchBlocks.js:1827 -#: js/ToneBlocks.js:1025 -#.TRANS: adjusts the shift up or down by one octave (twelve half-steps in the interval between two notes, one having twice or half the frequency in Hz of the other.) -msgid "octave" +#: js/blocks/ActionBlocks.js:791 +#: js/blocks/ActionBlocks.js:865 +msgid "The Arg block contains the value of an argument passed to an action." msgstr "" -#: js/IntervalsBlocks.js:99 -msgid "The Temperament name block is used to select a tuning method." +#: js/blocks/ActionBlocks.js:806 +#: js/blocks/ActionBlocks.js:878 +msgid "arg" msgstr "" -#: js/IntervalsBlocks.js:161 -msgid "doubly" +#: js/blocks/ActionBlocks.js:836 +#: js/blocks/ActionBlocks.js:900 +#: js/blocks/ActionBlocks.js:908 +msgid "Invalid argument" msgstr "" -#: js/IntervalsBlocks.js:166 -msgid "The Doubly block will double the size of an interval." +#: js/blocks/ActionBlocks.js:944 +msgid "In the example, it is used with the One of block to choose a random phase." msgstr "" -#: js/IntervalsBlocks.js:262 -msgid "interval number" +#: js/blocks/ActionBlocks.js:1019 +#: js/blocks/ActionBlocks.js:1026 +msgid "The Listen block is used to listen for an event such as a mouse click." msgstr "" -#: js/IntervalsBlocks.js:330 -#.TRANS: measure the distance between two pitches in semi-tones -msgid "semi-tone interval measure" +#: js/blocks/ActionBlocks.js:1028 +msgid "When the event happens, an action is taken." msgstr "" -#: js/IntervalsBlocks.js:397 -#: js/IntervalsBlocks.js:513 -msgid "You must use two pitch blocks when measuring an interval." +#: js/blocks/ActionBlocks.js:1045 +msgid "on" msgstr "" -#: js/IntervalsBlocks.js:439 -msgid "The Scalar interval block measures the distance between two notes in the current key and mode." +#: js/blocks/ActionBlocks.js:1048 +#: js/blocks/ActionBlocks.js:1049 +#: js/blocks/ActionBlocks.js:1153 +msgid "event" msgstr "" -#: js/IntervalsBlocks.js:445 -#.TRANS: measure the distance between two pitches in steps of musical scale -msgid "scalar interval measure" +#: js/blocks/ActionBlocks.js:1133 +msgid "The Broadcast block is used to trigger an event." msgstr "" -#: js/IntervalsBlocks.js:592 -#: js/musicutils.js:637 -#: js/musicutils.js:908 -#.TRANS: perfect is a music term related to intervals -msgid "perfect" +#: js/blocks/ActionBlocks.js:1151 +msgid "broadcast" msgstr "" -#: js/IntervalsBlocks.js:621 -msgid "In the figure, we add sol# to sol." +#: js/blocks/ActionBlocks.js:1208 +msgid "Each Start block is a separate voice." msgstr "" -#: js/IntervalsBlocks.js:627 -#: js/OrnamentBlocks.js:220 -#.TRANS: calculate a relative step between notes based on semi-tones -msgid "semi-tone interval" +#: js/blocks/ActionBlocks.js:1304 +msgid "It is often used for storing a phrase of music that is repeated." msgstr "" -#: js/IntervalsBlocks.js:676 -msgid "The output of the example is: do, mi, sol, sol, ti, mi" +#: js/blocks/ActionBlocks.js:1495 +msgid "define temperament" msgstr "" -#: js/IntervalsBlocks.js:735 -msgid "The Chord block calculates common chords." +#: js/blocks/BooleanBlocks.js:44 +msgid "The Not block is the logical not operator." msgstr "" -#: js/IntervalsBlocks.js:737 -msgid "In the figure, we generate a C-major chord." +#: js/blocks/BooleanBlocks.js:62 +msgid "not" msgstr "" -#: js/IntervalsBlocks.js:742 -msgid "chord" +#: js/blocks/BooleanBlocks.js:134 +msgid "The And block is the logical and operator." msgstr "" -#: js/IntervalsBlocks.js:794 -msgid "The Ratio Interval block calculates an interval based on a ratio." +#: js/blocks/BooleanBlocks.js:152 +msgid "and" msgstr "" -#: js/IntervalsBlocks.js:799 -msgid "ratio interval" +#: js/blocks/BooleanBlocks.js:218 +msgid "The Or block is the logical or operator." msgstr "" -#: js/IntervalsBlocks.js:868 -msgid "In the figure, we add la to sol." +#: js/blocks/BooleanBlocks.js:236 +msgid "or" msgstr "" -#: js/IntervalsBlocks.js:924 -#.TRANS: define a custom mode -msgid "define mode" +#: js/blocks/BooleanBlocks.js:302 +msgid "The XOR block is the logical XOR operator." msgstr "" -#: js/IntervalsBlocks.js:977 -msgid "movable Do" +#: js/blocks/BooleanBlocks.js:320 +msgid "xor" msgstr "" -#: js/IntervalsBlocks.js:1028 -#.TRANS: mode length is the number of notes in the mode, e.g., 7 for major and minor scales; 12 for chromatic scales -msgid "mode length" +#: js/blocks/BooleanBlocks.js:808 +msgid "The Equal block returns True if the two numbers are equal." msgstr "" -#: js/IntervalsBlocks.js:1037 -msgid "The Mode length block is the number of notes in the current scale." +#: js/blocks/BooleanBlocks.js:909 +msgid "The Not-equal-to block returns True if the two numbers are not equal to each other." msgstr "" -#: js/IntervalsBlocks.js:1039 -msgid "Most Western scales have 7 notes." +#: js/blocks/BooleanBlocks.js:1008 +msgid "The Boolean block is used to specify true or false." msgstr "" -#: js/IntervalsBlocks.js:1088 -#.TRANS: the mode in music is 'major', 'minor', etc. -msgid "current mode" +#: js/blocks/BoxesBlocks.js:53 +#: js/blocks/BoxesBlocks.js:59 +msgid "The Add-to block is used to add to the value stored in a box." msgstr "" -#: js/IntervalsBlocks.js:1141 -#.TRANS: the key is a group of pitches with which a music composition is created -msgid "current key" +#: js/blocks/BoxesBlocks.js:61 +msgid "It can also be used with other blocks such as Color and Pen size." msgstr "" -#: js/IntervalsBlocks.js:1193 -#: js/IntervalsBlocks.js:1238 -#.TRANS: set the key and mode, e.g. C Major -msgid "set key" +#: js/blocks/BoxesBlocks.js:73 +msgid "add" msgstr "" -#: js/IntervalsBlocks.js:1247 -#: js/IntervalsBlocks.js:1253 -msgid "The Set key block is used to set the key and mode," +#: js/blocks/BoxesBlocks.js:75 +#: js/widgets/temperament.js:857 +msgid "to" msgstr "" -#: js/IntervalsBlocks.js:1253 -msgid "eg C Major" +#: js/blocks/BoxesBlocks.js:75 +#: js/blocks/BoxesBlocks.js:595 +#: js/blocks/HeapBlocks.js:544 +msgid "value1" msgstr "" -#: js/IntervalsBlocks.js:1266 -#: js/DictBlocks.js:215 -#: js/DictBlocks.js:216 -#: js/DictBlocks.js:289 -#: js/DictBlocks.js:290 -#: js/DictBlocks.js:357 -#: js/DictBlocks.js:430 -#: js/DictBlocks.js:431 -#.TRANS: key, e.g., C in C Major -msgid "key" +#: js/blocks/BoxesBlocks.js:118 +msgid "Block does not support incrementing." msgstr "" -#: js/ActionBlocks.js:58 -msgid "The Return block will return a value from an action." +#: js/blocks/BoxesBlocks.js:152 +msgid "The Add-1-to block adds one to the value stored in a box." msgstr "" -#: js/ActionBlocks.js:75 -msgid "return" +#: js/blocks/BoxesBlocks.js:163 +msgid "add 1 to" msgstr "" -#: js/ActionBlocks.js:128 -msgid "The Return to URL block will return a value to a webpage." +#: js/blocks/BoxesBlocks.js:211 +msgid "The Subtract-1-from block subtracts one from the value stored in a box." msgstr "" -#: js/ActionBlocks.js:145 -msgid "return to URL" +#: js/blocks/BoxesBlocks.js:222 +msgid "subtract 1 from" msgstr "" -#: js/ActionBlocks.js:233 -#: js/ActionBlocks.js:290 -#: js/ActionBlocks.js:501 -#: js/ActionBlocks.js:688 -msgid "The Calculate block returns a value calculated by an action." +#: js/blocks/BoxesBlocks.js:270 +#: js/blocks/BoxesBlocks.js:387 +msgid "The Box block returns the value stored in a box." msgstr "" -#: js/ActionBlocks.js:251 -#: js/ActionBlocks.js:517 -#: js/ActionBlocks.js:707 -msgid "calculate" +#: js/blocks/BoxesBlocks.js:500 +#: js/blocks/BoxesBlocks.js:576 +msgid "The Store in block will store a value in a box." msgstr "" -#: js/ActionBlocks.js:376 -#: js/ActionBlocks.js:593 -#: js/ActionBlocks.js:942 -#: js/ActionBlocks.js:1389 -#.TRANS: do is the do something or take an action. -msgid "The Do block is used to initiate an action." +#: js/blocks/BoxesBlocks.js:595 +#: js/blocks/EnsembleBlocks.js:391 +#: js/blocks/EnsembleBlocks.js:402 +msgid "name1" msgstr "" -#: js/ActionBlocks.js:390 -#: js/ActionBlocks.js:610 -#: js/ActionBlocks.js:959 -#: js/ActionBlocks.js:1048 -#: js/MeterBlocks.js:769 -msgid "do1" +#: js/blocks/BoxesBlocks.js:652 +msgid "The Box2 block returns the value stored in Box2." msgstr "" -#: js/ActionBlocks.js:390 -#: js/ActionBlocks.js:610 -#: js/ActionBlocks.js:959 -#: js/ActionBlocks.js:1048 -#: js/FlowBlocks.js:742 -#: js/FlowBlocks.js:822 -#: js/MeterBlocks.js:769 -msgid "do" +#: js/blocks/BoxesBlocks.js:703 +msgid "The Store in Box2 block is used to store a value in Box2." msgstr "" -#: js/ActionBlocks.js:791 -#: js/ActionBlocks.js:865 -msgid "The Arg block contains the value of an argument passed to an action." +#: js/blocks/BoxesBlocks.js:715 +msgid "store in box2" msgstr "" -#: js/ActionBlocks.js:806 -#: js/ActionBlocks.js:878 -msgid "arg" +#: js/blocks/BoxesBlocks.js:761 +msgid "The Box1 block returns the value stored in Box1." msgstr "" -#: js/ActionBlocks.js:836 -#: js/ActionBlocks.js:900 -#: js/ActionBlocks.js:908 -msgid "Invalid argument" +#: js/blocks/BoxesBlocks.js:812 +msgid "The Store in Box1 block is used to store a value in Box1." msgstr "" -#: js/ActionBlocks.js:944 -msgid "In the example, it is used with the One of block to choose a random phase." +#: js/blocks/BoxesBlocks.js:826 +msgid "store in box1" msgstr "" -#: js/ActionBlocks.js:1019 -#: js/ActionBlocks.js:1026 -msgid "The Listen block is used to listen for an event such as a mouse click." +#: js/blocks/DictBlocks.js:77 +msgid "show dictionary" msgstr "" -#: js/ActionBlocks.js:1028 -msgid "When the event happens, an action is taken." +#: js/blocks/DictBlocks.js:80 +#: js/blocks/DictBlocks.js:145 +#: js/blocks/DictBlocks.js:216 +#: js/blocks/DictBlocks.js:290 +#: js/blocks/ProgramBlocks.js:396 +#: js/blocks/ProgramBlocks.js:501 +#: js/blocks/ProgramBlocks.js:664 +msgid "My Dictionary" msgstr "" -#: js/ActionBlocks.js:1045 -msgid "on" +#: js/blocks/DictBlocks.js:129 +msgid "The Dictionary block returns a dictionary." msgstr "" -#: js/ActionBlocks.js:1048 -#: js/ActionBlocks.js:1049 -#: js/ActionBlocks.js:1153 -msgid "event" +#: js/blocks/DictBlocks.js:197 +#: js/blocks/DictBlocks.js:339 +msgid "The Get-dict block returns a value in the dictionary for a specified key." msgstr "" -#: js/ActionBlocks.js:1133 -msgid "The Broadcast block is used to trigger an event." +#: js/blocks/DictBlocks.js:212 +#: js/blocks/DictBlocks.js:354 +#.TRANS: retrieve a value from the dictionary with a given key +msgid "get value" msgstr "" -#: js/ActionBlocks.js:1151 -msgid "broadcast" +#: js/blocks/DictBlocks.js:215 +#: js/blocks/DictBlocks.js:216 +#: js/blocks/DictBlocks.js:289 +#: js/blocks/DictBlocks.js:290 +#: js/blocks/DictBlocks.js:357 +#: js/blocks/DictBlocks.js:430 +#: js/blocks/DictBlocks.js:431 +msgid "key2" msgstr "" -#: js/ActionBlocks.js:1208 -msgid "Each Start block is a separate voice." +#: js/blocks/DictBlocks.js:215 +#: js/blocks/DictBlocks.js:216 +#: js/blocks/DictBlocks.js:289 +#: js/blocks/DictBlocks.js:290 +#: js/blocks/DictBlocks.js:357 +#: js/blocks/DictBlocks.js:430 +#: js/blocks/DictBlocks.js:431 +#: js/blocks/IntervalsBlocks.js:1462 +#.TRANS: key, e.g., C in C Major +msgid "key" msgstr "" -#: js/ActionBlocks.js:1304 -msgid "It is often used for storing a phrase of music that is repeated." +#: js/blocks/DictBlocks.js:271 +#: js/blocks/DictBlocks.js:411 +msgid "The Set-dict block sets a value in the dictionary for a specified key." msgstr "" -#: js/ActionBlocks.js:1495 -msgid "define temperament" +#: js/blocks/DictBlocks.js:286 +#: js/blocks/DictBlocks.js:427 +#.TRANS: set a value in the dictionary for a given key +msgid "set value" msgstr "" -#: js/EnsembleBlocks.js:66 +#: js/blocks/EnsembleBlocks.js:66 msgid "mouse index heap" msgstr "" -#: js/EnsembleBlocks.js:68 +#: js/blocks/EnsembleBlocks.js:68 msgid "The Mouse index heap block returns a value in the heap at a specified location for a specified mouse." msgstr "" -#: js/EnsembleBlocks.js:77 -#: js/EnsembleBlocks.js:1080 +#: js/blocks/EnsembleBlocks.js:77 +#: js/blocks/EnsembleBlocks.js:1080 msgid "mouse name" msgstr "" -#: js/EnsembleBlocks.js:77 -#: js/EnsembleBlocks.js:92 -#: js/HeapBlocks.js:544 +#: js/blocks/EnsembleBlocks.js:77 +#: js/blocks/EnsembleBlocks.js:92 +#: js/blocks/HeapBlocks.js:544 #.TRANS: value1 is a numeric value (JAPANESE ONLY) msgid "index" msgstr "" -#: js/EnsembleBlocks.js:80 +#: js/blocks/EnsembleBlocks.js:80 msgid "turtle index heap" msgstr "" -#: js/EnsembleBlocks.js:82 +#: js/blocks/EnsembleBlocks.js:82 msgid "The Turtle index heap block returns a value in the heap at a specified location for a specified turtle." msgstr "" -#: js/EnsembleBlocks.js:90 -#: js/EnsembleBlocks.js:167 -#: js/EnsembleBlocks.js:230 -#: js/EnsembleBlocks.js:316 -#: js/EnsembleBlocks.js:362 -#: js/EnsembleBlocks.js:400 -#: js/EnsembleBlocks.js:454 -#: js/EnsembleBlocks.js:504 -#: js/EnsembleBlocks.js:550 -#: js/EnsembleBlocks.js:597 -#: js/EnsembleBlocks.js:651 -#: js/EnsembleBlocks.js:763 -#: js/EnsembleBlocks.js:854 -#: js/EnsembleBlocks.js:915 -#: js/EnsembleBlocks.js:955 -#: js/EnsembleBlocks.js:1219 -#: js/EnsembleBlocks.js:1293 +#: js/blocks/EnsembleBlocks.js:90 +#: js/blocks/EnsembleBlocks.js:167 +#: js/blocks/EnsembleBlocks.js:230 +#: js/blocks/EnsembleBlocks.js:316 +#: js/blocks/EnsembleBlocks.js:362 +#: js/blocks/EnsembleBlocks.js:400 +#: js/blocks/EnsembleBlocks.js:454 +#: js/blocks/EnsembleBlocks.js:504 +#: js/blocks/EnsembleBlocks.js:550 +#: js/blocks/EnsembleBlocks.js:597 +#: js/blocks/EnsembleBlocks.js:651 +#: js/blocks/EnsembleBlocks.js:763 +#: js/blocks/EnsembleBlocks.js:854 +#: js/blocks/EnsembleBlocks.js:915 +#: js/blocks/EnsembleBlocks.js:955 +#: js/blocks/EnsembleBlocks.js:1219 +#: js/blocks/EnsembleBlocks.js:1293 #.TRANS: Yertle is the name of a turtle. msgid "Yertle" msgstr "" -#: js/EnsembleBlocks.js:92 -#: js/EnsembleBlocks.js:1089 +#: js/blocks/EnsembleBlocks.js:92 +#: js/blocks/EnsembleBlocks.js:1089 msgid "turtle name" msgstr "" -#: js/EnsembleBlocks.js:122 -#: js/EnsembleBlocks.js:1197 -#: js/HeapBlocks.js:474 -#: js/HeapBlocks.js:572 +#: js/blocks/EnsembleBlocks.js:122 +#: js/blocks/EnsembleBlocks.js:1197 +#: js/blocks/HeapBlocks.js:474 +#: js/blocks/HeapBlocks.js:572 msgid "Index must be > 0." msgstr "" -#: js/EnsembleBlocks.js:127 -#: js/HeapBlocks.js:479 -#: js/HeapBlocks.js:577 +#: js/blocks/EnsembleBlocks.js:127 +#: js/blocks/HeapBlocks.js:479 +#: js/blocks/HeapBlocks.js:577 msgid "Maximum heap size is 1000." msgstr "" -#: js/EnsembleBlocks.js:145 +#: js/blocks/EnsembleBlocks.js:145 msgid "stop mouse" msgstr "" -#: js/EnsembleBlocks.js:147 +#: js/blocks/EnsembleBlocks.js:147 msgid "The Stop mouse block stops the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:158 +#: js/blocks/EnsembleBlocks.js:158 msgid "stop turtle" msgstr "" -#: js/EnsembleBlocks.js:160 +#: js/blocks/EnsembleBlocks.js:160 msgid "The Stop turtle block stops the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:184 -#: js/EnsembleBlocks.js:247 -#: js/EnsembleBlocks.js:413 -#: js/EnsembleBlocks.js:468 -#: js/EnsembleBlocks.js:706 -#: js/EnsembleBlocks.js:808 -#: js/EnsembleBlocks.js:870 -#: js/EnsembleBlocks.js:1190 -#: js/EnsembleBlocks.js:1253 +#: js/blocks/EnsembleBlocks.js:184 +#: js/blocks/EnsembleBlocks.js:247 +#: js/blocks/EnsembleBlocks.js:413 +#: js/blocks/EnsembleBlocks.js:468 +#: js/blocks/EnsembleBlocks.js:706 +#: js/blocks/EnsembleBlocks.js:808 +#: js/blocks/EnsembleBlocks.js:870 +#: js/blocks/EnsembleBlocks.js:1190 +#: js/blocks/EnsembleBlocks.js:1253 msgid "Cannot find mouse" msgstr "" -#: js/EnsembleBlocks.js:186 -#: js/EnsembleBlocks.js:249 -#: js/EnsembleBlocks.js:415 -#: js/EnsembleBlocks.js:470 -#: js/EnsembleBlocks.js:708 -#: js/EnsembleBlocks.js:810 -#: js/EnsembleBlocks.js:872 -#: js/EnsembleBlocks.js:1192 -#: js/EnsembleBlocks.js:1255 +#: js/blocks/EnsembleBlocks.js:186 +#: js/blocks/EnsembleBlocks.js:249 +#: js/blocks/EnsembleBlocks.js:415 +#: js/blocks/EnsembleBlocks.js:470 +#: js/blocks/EnsembleBlocks.js:708 +#: js/blocks/EnsembleBlocks.js:810 +#: js/blocks/EnsembleBlocks.js:872 +#: js/blocks/EnsembleBlocks.js:1192 +#: js/blocks/EnsembleBlocks.js:1255 msgid "Cannot find turtle" msgstr "" -#: js/EnsembleBlocks.js:206 +#: js/blocks/EnsembleBlocks.js:206 msgid "start mouse" msgstr "" -#: js/EnsembleBlocks.js:209 +#: js/blocks/EnsembleBlocks.js:209 msgid "The Start mouse block starts the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:220 +#: js/blocks/EnsembleBlocks.js:220 msgid "start turtle" msgstr "" -#: js/EnsembleBlocks.js:223 +#: js/blocks/EnsembleBlocks.js:223 msgid "The Start turtle block starts the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:256 +#: js/blocks/EnsembleBlocks.js:256 msgid "Mouse is already running." msgstr "" -#: js/EnsembleBlocks.js:258 +#: js/blocks/EnsembleBlocks.js:258 msgid "Turtle is already running." msgstr "" -#: js/EnsembleBlocks.js:282 +#: js/blocks/EnsembleBlocks.js:282 msgid "Cannot find start block" msgstr "" -#: js/EnsembleBlocks.js:292 +#: js/blocks/EnsembleBlocks.js:292 #.TRANS: pen color for this mouse msgid "mouse color" msgstr "" -#: js/EnsembleBlocks.js:294 +#: js/blocks/EnsembleBlocks.js:294 msgid "The Mouse color block returns the pen color of the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:306 +#: js/blocks/EnsembleBlocks.js:306 #.TRANS: pen color for this turtle msgid "turtle color" msgstr "" -#: js/EnsembleBlocks.js:308 +#: js/blocks/EnsembleBlocks.js:308 msgid "The Turtle color block returns the pen color of the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:338 +#: js/blocks/EnsembleBlocks.js:338 #.TRANS: heading (compass direction) for this mouse msgid "mouse heading" msgstr "" -#: js/EnsembleBlocks.js:340 +#: js/blocks/EnsembleBlocks.js:340 msgid "The Mouse heading block returns the heading of the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:352 +#: js/blocks/EnsembleBlocks.js:352 #.TRANS: heading (compass direction) for this turtle msgid "turtle heading" msgstr "" -#: js/EnsembleBlocks.js:354 +#: js/blocks/EnsembleBlocks.js:354 msgid "The Turtle heading block returns the heading of the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:384 -#: js/EnsembleBlocks.js:439 +#: js/blocks/EnsembleBlocks.js:384 +#: js/blocks/EnsembleBlocks.js:439 #.TRANS: set xy position for this mouse msgid "set mouse" msgstr "" -#: js/EnsembleBlocks.js:391 -#: js/EnsembleBlocks.js:402 -#: js/BoxesBlocks.js:595 -msgid "name1" -msgstr "" - -#: js/EnsembleBlocks.js:391 -#: js/EnsembleBlocks.js:402 -#: js/ProgramBlocks.js:881 -#: js/GraphicsBlocks.js:235 -#: js/GraphicsBlocks.js:313 -#: js/GraphicsBlocks.js:436 -#: js/GraphicsBlocks.js:487 -#: js/GraphicsBlocks.js:534 -#: js/GraphicsBlocks.js:750 +#: js/blocks/EnsembleBlocks.js:391 +#: js/blocks/EnsembleBlocks.js:402 +#: js/blocks/GraphicsBlocks.js:235 +#: js/blocks/GraphicsBlocks.js:313 +#: js/blocks/GraphicsBlocks.js:436 +#: js/blocks/GraphicsBlocks.js:487 +#: js/blocks/GraphicsBlocks.js:534 +#: js/blocks/GraphicsBlocks.js:750 +#: js/blocks/ProgramBlocks.js:881 msgid "x" msgstr "" -#: js/EnsembleBlocks.js:391 -#: js/EnsembleBlocks.js:402 -#: js/ProgramBlocks.js:881 -#: js/GraphicsBlocks.js:149 -#: js/GraphicsBlocks.js:313 -#: js/GraphicsBlocks.js:436 -#: js/GraphicsBlocks.js:487 -#: js/GraphicsBlocks.js:534 -#: js/GraphicsBlocks.js:750 +#: js/blocks/EnsembleBlocks.js:391 +#: js/blocks/EnsembleBlocks.js:402 +#: js/blocks/GraphicsBlocks.js:149 +#: js/blocks/GraphicsBlocks.js:313 +#: js/blocks/GraphicsBlocks.js:436 +#: js/blocks/GraphicsBlocks.js:487 +#: js/blocks/GraphicsBlocks.js:534 +#: js/blocks/GraphicsBlocks.js:750 +#: js/blocks/ProgramBlocks.js:881 msgid "y" msgstr "" -#: js/EnsembleBlocks.js:395 -#: js/EnsembleBlocks.js:452 +#: js/blocks/EnsembleBlocks.js:395 +#: js/blocks/EnsembleBlocks.js:452 #.TRANS: set xy position for this turtle msgid "set turtle" msgstr "" -#: js/EnsembleBlocks.js:433 +#: js/blocks/EnsembleBlocks.js:433 msgid "The Set mouse block sends a stack of blocks to be run by the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:446 +#: js/blocks/EnsembleBlocks.js:446 msgid "The Set turtle block sends a stack of blocks to be run by the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:480 +#: js/blocks/EnsembleBlocks.js:480 #.TRANS: y position for this mouse msgid "mouse y" msgstr "" -#: js/EnsembleBlocks.js:482 +#: js/blocks/EnsembleBlocks.js:482 msgid "The Y mouse block returns the Y position of the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:494 +#: js/blocks/EnsembleBlocks.js:494 #.TRANS: y position for this turtle msgid "turtle y" msgstr "" -#: js/EnsembleBlocks.js:496 +#: js/blocks/EnsembleBlocks.js:496 msgid "The Y turtle block returns the Y position of the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:526 +#: js/blocks/EnsembleBlocks.js:526 #.TRANS: x position for this mouse msgid "mouse x" msgstr "" -#: js/EnsembleBlocks.js:528 +#: js/blocks/EnsembleBlocks.js:528 msgid "The X mouse block returns the X position of the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:540 +#: js/blocks/EnsembleBlocks.js:540 #.TRANS: x position for this turtle msgid "turtle x" msgstr "" -#: js/EnsembleBlocks.js:542 +#: js/blocks/EnsembleBlocks.js:542 msgid "The X turtle block returns the X position of the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:573 +#: js/blocks/EnsembleBlocks.js:573 #.TRANS: notes played by this mouse msgid "mouse notes played" msgstr "" -#: js/EnsembleBlocks.js:575 +#: js/blocks/EnsembleBlocks.js:575 msgid "The Mouse elapse notes block returns the number of notes played by the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:587 +#: js/blocks/EnsembleBlocks.js:587 #.TRANS: notes played by this turtle msgid "turtle notes played" msgstr "" -#: js/EnsembleBlocks.js:589 +#: js/blocks/EnsembleBlocks.js:589 msgid "The Turtle elapse notes block returns the number of notes played by the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:627 +#: js/blocks/EnsembleBlocks.js:627 #.TRANS: convert current note for this turtle to piano key (1-88) msgid "mouse pitch number" msgstr "" -#: js/EnsembleBlocks.js:629 +#: js/blocks/EnsembleBlocks.js:629 msgid "The Mouse pitch block returns the current pitch number being played by the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:641 +#: js/blocks/EnsembleBlocks.js:641 #.TRANS: convert current note for this turtle to piano key (1-88) msgid "turtle pitch number" msgstr "" -#: js/EnsembleBlocks.js:643 -msgid "The Turrle pitch block returns the current pitch number being played by the specified turtle." +#: js/blocks/EnsembleBlocks.js:643 +msgid "The Turtle pitch block returns the current pitch number being played by the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:747 -#: js/EnsembleBlocks.js:819 +#: js/blocks/EnsembleBlocks.js:747 +#: js/blocks/EnsembleBlocks.js:819 #.TRANS: note value is the duration of the note played by this mouse msgid "mouse note value" msgstr "" -#: js/EnsembleBlocks.js:757 +#: js/blocks/EnsembleBlocks.js:757 #.TRANS: note value is the duration of the note played by this turtle msgid "turtle note value" msgstr "" -#: js/EnsembleBlocks.js:830 +#: js/blocks/EnsembleBlocks.js:830 #.TRANS: sync is short for synchronization msgid "mouse sync" msgstr "" -#: js/EnsembleBlocks.js:832 +#: js/blocks/EnsembleBlocks.js:832 msgid "The Mouse sync block aligns the beat count between mice." msgstr "" -#: js/EnsembleBlocks.js:844 +#: js/blocks/EnsembleBlocks.js:844 #.TRANS: sync is short for synchronization msgid "turtle sync" msgstr "" -#: js/EnsembleBlocks.js:846 +#: js/blocks/EnsembleBlocks.js:846 msgid "The Turtle sync block aligns the beat count between turtles." msgstr "" -#: js/EnsembleBlocks.js:887 +#: js/blocks/EnsembleBlocks.js:887 msgid "The Found mouse block will return true if the specified mouse can be found." msgstr "" -#: js/EnsembleBlocks.js:893 +#: js/blocks/EnsembleBlocks.js:893 msgid "found mouse" msgstr "" -#: js/EnsembleBlocks.js:903 +#: js/blocks/EnsembleBlocks.js:903 msgid "The Found turtle block will return true if the specified turtle can be found." msgstr "" -#: js/EnsembleBlocks.js:909 +#: js/blocks/EnsembleBlocks.js:909 msgid "found turtle" msgstr "" -#: js/EnsembleBlocks.js:932 +#: js/blocks/EnsembleBlocks.js:932 msgid "new mouse" msgstr "" -#: js/EnsembleBlocks.js:934 +#: js/blocks/EnsembleBlocks.js:934 msgid "The New mouse block will create a new mouse." msgstr "" -#: js/EnsembleBlocks.js:945 +#: js/blocks/EnsembleBlocks.js:945 msgid "new turtle" msgstr "" -#: js/EnsembleBlocks.js:947 +#: js/blocks/EnsembleBlocks.js:947 msgid "The New turtle block will create a new turtle." msgstr "" -#: js/EnsembleBlocks.js:1011 +#: js/blocks/EnsembleBlocks.js:1011 msgid "set mouse color" msgstr "" -#: js/EnsembleBlocks.js:1014 +#: js/blocks/EnsembleBlocks.js:1014 msgid "The Set-mouse-color block is used to set the color of a mouse." msgstr "" -#: js/EnsembleBlocks.js:1020 +#: js/blocks/EnsembleBlocks.js:1020 msgid "set turtle color" msgstr "" -#: js/EnsembleBlocks.js:1023 +#: js/blocks/EnsembleBlocks.js:1023 msgid "The Set-turtle-color block is used to set the color of a turtle." msgstr "" -#: js/EnsembleBlocks.js:1083 +#: js/blocks/EnsembleBlocks.js:1083 msgid "The Mouse-name block returns the name of a mouse." msgstr "" -#: js/EnsembleBlocks.js:1092 +#: js/blocks/EnsembleBlocks.js:1092 msgid "The Turtle-name block returns the name of a turtle." msgstr "" -#: js/EnsembleBlocks.js:1115 +#: js/blocks/EnsembleBlocks.js:1115 msgid "mouse count" msgstr "" -#: js/EnsembleBlocks.js:1118 +#: js/blocks/EnsembleBlocks.js:1118 msgid "The Mouse-count block returns the number of mice." msgstr "" -#: js/EnsembleBlocks.js:1124 +#: js/blocks/EnsembleBlocks.js:1124 msgid "turtle count" msgstr "" -#: js/EnsembleBlocks.js:1127 +#: js/blocks/EnsembleBlocks.js:1127 msgid "The Turtle-count block returns the number of turtles." msgstr "" -#: js/EnsembleBlocks.js:1149 +#: js/blocks/EnsembleBlocks.js:1149 msgid "nth mouse name" msgstr "" -#: js/EnsembleBlocks.js:1152 +#: js/blocks/EnsembleBlocks.js:1152 msgid "The Nth-Mouse name block returns the name of the nth mouse." msgstr "" -#: js/EnsembleBlocks.js:1158 +#: js/blocks/EnsembleBlocks.js:1158 msgid "nth turtle name" msgstr "" -#: js/EnsembleBlocks.js:1161 +#: js/blocks/EnsembleBlocks.js:1161 msgid "The Nth-Turtle name block returns the name of the nth turtle." msgstr "" -#: js/EnsembleBlocks.js:1205 -#: js/EnsembleBlocks.js:1265 +#: js/blocks/EnsembleBlocks.js:1205 +#: js/blocks/EnsembleBlocks.js:1265 msgid "set name" msgstr "" -#: js/EnsembleBlocks.js:1214 -#: js/EnsembleBlocks.js:1221 +#: js/blocks/EnsembleBlocks.js:1214 +#: js/blocks/EnsembleBlocks.js:1221 msgid "source" msgstr "" -#: js/EnsembleBlocks.js:1214 -#: js/EnsembleBlocks.js:1221 +#: js/blocks/EnsembleBlocks.js:1214 +#: js/blocks/EnsembleBlocks.js:1221 msgid "target" msgstr "" -#: js/EnsembleBlocks.js:1271 +#: js/blocks/EnsembleBlocks.js:1271 msgid "The Set-name block is used to name a mouse." msgstr "" -#: js/EnsembleBlocks.js:1284 +#: js/blocks/EnsembleBlocks.js:1284 msgid "The Set-name block is used to name a turtle." msgstr "" -#: js/BooleanBlocks.js:44 -msgid "The Not block is the logical not operator." -msgstr "" - -#: js/BooleanBlocks.js:62 -msgid "not" -msgstr "" - -#: js/BooleanBlocks.js:134 -msgid "The And block is the logical and operator." -msgstr "" - -#: js/BooleanBlocks.js:152 -msgid "and" -msgstr "" - -#: js/BooleanBlocks.js:218 -msgid "The Or block is the logical or operator." -msgstr "" - -#: js/BooleanBlocks.js:236 -msgid "or" -msgstr "" - -#: js/BooleanBlocks.js:302 -msgid "The XOR block is the logical XOR operator." -msgstr "" - -#: js/BooleanBlocks.js:320 -msgid "xor" -msgstr "" - -#: js/BooleanBlocks.js:808 -msgid "The Equal block returns True if the two numbers are equal." -msgstr "" - -#: js/BooleanBlocks.js:909 -msgid "The Not-equal-to block returns True if the two numbers are not equal to each other." -msgstr "" - -#: js/BooleanBlocks.js:1008 -msgid "The Boolean block is used to specify true or false." -msgstr "" - -#: js/MediaBlocks.js:35 -#.TRANS: right side of the screen -msgid "right (screen)" -msgstr "" - -#: js/MediaBlocks.js:45 -#: js/MediaBlocks.js:56 -msgid "The Right block returns the position of the right of the canvas." -msgstr "" - -#: js/MediaBlocks.js:97 -#.TRANS: left side of the screen -msgid "left (screen)" -msgstr "" - -#: js/MediaBlocks.js:107 -#: js/MediaBlocks.js:118 -msgid "The Left block returns the position of the left of the canvas." -msgstr "" - -#: js/MediaBlocks.js:158 -msgid "top (screen)" -msgstr "" - -#: js/MediaBlocks.js:168 -#: js/MediaBlocks.js:179 -msgid "The Top block returns the position of the top of the canvas." -msgstr "" - -#: js/MediaBlocks.js:219 -msgid "bottom (screen)" +#: js/blocks/ExtrasBlocks.js:33 +msgid "fraction" msgstr "" -#: js/MediaBlocks.js:229 -#: js/MediaBlocks.js:240 -msgid "The Bottom block returns the position of the bottom of the canvas." +#: js/blocks/ExtrasBlocks.js:36 +msgid "Convert a float to a fraction" msgstr "" -#: js/MediaBlocks.js:282 -msgid "width" +#: js/blocks/ExtrasBlocks.js:93 +msgid "save as ABC" msgstr "" -#: js/MediaBlocks.js:291 -msgid "The Width block returns the width of the canvas." +#: js/blocks/ExtrasBlocks.js:96 +#: js/blocks/ExtrasBlocks.js:132 +#: js/blocks/ExtrasBlocks.js:168 +msgid "title" msgstr "" -#: js/MediaBlocks.js:325 -msgid "height" +#: js/blocks/ExtrasBlocks.js:129 +msgid "save as Lilypond" msgstr "" -#: js/MediaBlocks.js:334 -msgid "The Height block returns the height of the canvas." +#: js/blocks/ExtrasBlocks.js:165 +msgid "save as SVG" msgstr "" -#: js/MediaBlocks.js:369 -#.TRANS: stops playback of an audio recording -msgid "stop play" +#: js/blocks/ExtrasBlocks.js:216 +msgid "no background" msgstr "" -#: js/MediaBlocks.js:404 -#.TRANS: Erases the images and text -msgid "erase media" +#: js/blocks/ExtrasBlocks.js:219 +msgid "The No background block eliminates the background from the saved SVG output." msgstr "" -#: js/MediaBlocks.js:409 -msgid "The Erase Media block erases text and images." +#: js/blocks/ExtrasBlocks.js:247 +msgid "show blocks" msgstr "" -#: js/MediaBlocks.js:439 -#.TRANS: play an audio recording -msgid "play back" +#: js/blocks/ExtrasBlocks.js:249 +msgid "The Show blocks block shows the blocks." msgstr "" -#: js/MediaBlocks.js:487 -msgid "speak" +#: js/blocks/ExtrasBlocks.js:274 +msgid "hide blocks" msgstr "" -#: js/MediaBlocks.js:495 -msgid "The Speak block outputs to the text-to-speech synthesizer" +#: js/blocks/ExtrasBlocks.js:276 +msgid "The Hide blocks block hides the blocks." msgstr "" -#: js/MediaBlocks.js:546 -msgid "camera" +#: js/blocks/ExtrasBlocks.js:305 +#: js/blocks/ExtrasBlocks.js:338 +msgid "The Space block is used to add space between blocks." msgstr "" -#: js/MediaBlocks.js:551 -msgid "The Camera block connects a webcam to the Show block." +#: js/blocks/ExtrasBlocks.js:376 +msgid "wait" msgstr "" -#: js/MediaBlocks.js:574 -msgid "video" +#: js/blocks/ExtrasBlocks.js:379 +msgid "The Wait block pauses the program for a specified number of seconds." msgstr "" -#: js/MediaBlocks.js:579 -msgid "The Video block selects video for use with the Show block." +#: js/blocks/ExtrasBlocks.js:433 +#: plugins/facebook.rtp:30 +msgid "comment" msgstr "" -#: js/MediaBlocks.js:607 -msgid "The Open file block opens a file for use with the Show block." +#: js/blocks/ExtrasBlocks.js:469 +msgid "print" msgstr "" -#: js/MediaBlocks.js:645 -msgid "stop media" +#: js/blocks/ExtrasBlocks.js:476 +msgid "The Print block displays text at the top of the screen." msgstr "" -#: js/MediaBlocks.js:650 -msgid "The Stop media block stops audio or video playback." +#: js/blocks/ExtrasBlocks.js:582 +msgid "display grid" msgstr "" -#: js/MediaBlocks.js:679 -#: js/PitchBlocks.js:1539 -#: js/phrasemaker.js:822 -#: js/musickeyboard.js:1654 -#.TRANS: a measure of frequency: one cycle per second -msgid "hertz" +#: js/blocks/ExtrasBlocks.js:587 +msgid "The Display Grid Block changes the grid type" msgstr "" -#: js/MediaBlocks.js:692 -msgid "duration (ms)" +#: js/blocks/ExtrasBlocks.js:689 +#: js/blocks/ExtrasBlocks.js:708 +#: js/blocks/ExtrasBlocks.js:731 +#: js/blocks/ExtrasBlocks.js:754 +#: js/blocks/ExtrasBlocks.js:772 +#: js/blocks/ExtrasBlocks.js:791 +#: js/blocks/ExtrasBlocks.js:810 +#: js/blocks/ExtrasBlocks.js:829 +msgid "unknown" msgstr "" -#: js/MediaBlocks.js:728 -#.TRANS: translate a note into hertz, e.g., A4 -> 440HZ -msgid "note to frequency" +#: js/blocks/FlowBlocks.js:41 +msgid "The Backward block runs code in reverse order (Musical retrograde)." msgstr "" -#: js/MediaBlocks.js:736 -msgid "The To frequency block converts a pitch name and octave to Hertz." +#: js/blocks/FlowBlocks.js:48 +msgid "backward" msgstr "" -#: js/MediaBlocks.js:746 -#: js/PitchBlocks.js:656 -#: js/PitchBlocks.js:932 -#: js/PitchBlocks.js:1827 -#.TRANS: name2 is name as in name of pitch (JAPANESE ONLY) -msgid "name2" +#: js/blocks/FlowBlocks.js:124 +msgid "The Duplicate block will run each block multiple times." msgstr "" -#: js/MediaBlocks.js:812 -msgid "The Avatar block is used to change the appearance of the mouse." +#: js/blocks/FlowBlocks.js:136 +msgid "duplicate" msgstr "" -#: js/MediaBlocks.js:819 -msgid "The Avatar block is used to change the appearance of the turtle." +#: js/blocks/FlowBlocks.js:334 +msgid "The Default block is used inside of a Switch to define the default action." msgstr "" -#: js/MediaBlocks.js:831 -#: js/MediaBlocks.js:891 -#.TRANS: a media object -msgid "size" +#: js/blocks/FlowBlocks.js:342 +msgid "default" msgstr "" -#: js/MediaBlocks.js:831 -msgid "image" +#: js/blocks/FlowBlocks.js:361 +#: js/blocks/FlowBlocks.js:418 +msgid "The Case Block must be used inside of a Switch Block." msgstr "" -#: js/MediaBlocks.js:880 -msgid "The Show block is used to display text or images on the canvas." +#: js/blocks/FlowBlocks.js:389 +msgid "The Case block is used inside of a Switch to define matches." msgstr "" -#: js/MediaBlocks.js:888 -#.TRANS: show1 is show as in display an image or text on the screen. -msgid "show1" +#: js/blocks/FlowBlocks.js:397 +msgid "case" msgstr "" -#: js/MediaBlocks.js:891 -msgid "obj" +#: js/blocks/FlowBlocks.js:446 +msgid "The Switch block will run the code in the matching Case." msgstr "" -#: js/MediaBlocks.js:938 -msgid "The Media block is used to import an image." +#: js/blocks/FlowBlocks.js:454 +msgid "switch" msgstr "" -#: js/MediaBlocks.js:973 -msgid "The Text block holds a text string." +#: js/blocks/FlowBlocks.js:595 +msgid "The Stop block will stop a loop" msgstr "" -#: js/ProgramBlocks.js:33 -msgid "The Load-heap-from-app block loads the heap from a web page." +#: js/blocks/FlowBlocks.js:597 +msgid "Forever, Repeat, While, or Until." msgstr "" -#: js/ProgramBlocks.js:44 -#.TRANS: load the heap contents from a URL -msgid "load heap from App" +#: js/blocks/FlowBlocks.js:604 +#: js/widgets/timbre.js:417 +#: js/widgets/timbre.js:419 +#: js/widgets/musickeyboard.js:819 +#: js/widgets/musickeyboard.js:821 +#: js/widgets/phrasemaker.js:4202 +#: plugins/rodi.rtp:29 +#: plugins/rodi.rtp:73 +#: plugins/rodi.rtp:413 +msgid "stop" msgstr "" -#: js/ProgramBlocks.js:95 -msgid "Error parsing JSON data:" +#: js/blocks/FlowBlocks.js:653 +msgid "The Waitfor block will wait until the condition is true." msgstr "" -#: js/ProgramBlocks.js:100 -msgid "404: Page not found" +#: js/blocks/FlowBlocks.js:661 +msgid "wait for" msgstr "" -#: js/ProgramBlocks.js:133 -msgid "The Save-heap-to-app block saves the heap to a web page." +#: js/blocks/FlowBlocks.js:732 +msgid "The Until block will repeat until the condition is true." msgstr "" -#: js/ProgramBlocks.js:144 -#.TRANS: save the heap contents to a URL -msgid "save heap to App" +#: js/blocks/FlowBlocks.js:740 +msgid "until" msgstr "" -#: js/ProgramBlocks.js:189 -msgid "Cannot find a valid heap for" +#: js/blocks/FlowBlocks.js:742 +#: js/blocks/FlowBlocks.js:822 +msgid "do2" msgstr "" -#: js/ProgramBlocks.js:206 -msgid "The Load-heap block loads the heap from a file." +#: js/blocks/FlowBlocks.js:812 +msgid "The While block will repeat while the condition is true." msgstr "" -#: js/ProgramBlocks.js:217 -#.TRANS: load the heap from a file -msgid "load heap" +#: js/blocks/FlowBlocks.js:820 +msgid "while" msgstr "" -#: js/ProgramBlocks.js:270 -msgid "The file you selected does not contain a valid heap." +#: js/blocks/FlowBlocks.js:903 +#: js/blocks/FlowBlocks.js:968 +#: js/blocks/FlowBlocks.js:979 +msgid "In this example if the mouse button is pressed a snare drum will play." msgstr "" -#: js/ProgramBlocks.js:275 -msgid "The loadHeap block needs a loadFile block." +#: js/blocks/FlowBlocks.js:925 +#: js/blocks/FlowBlocks.js:988 +msgid "if" msgstr "" -#: js/ProgramBlocks.js:291 -msgid "The Set-heap block loads the heap." +#: js/blocks/FlowBlocks.js:927 +#: js/blocks/FlowBlocks.js:990 +msgid "then" msgstr "" -#: js/ProgramBlocks.js:299 -#: js/HeapBlocks.js:539 -#.TRANS: load the heap from a JSON encoding -msgid "set heap" +#: js/blocks/FlowBlocks.js:927 +msgid "else" msgstr "" -#: js/ProgramBlocks.js:340 -msgid "The block you selected does not contain a valid heap." +#: js/blocks/FlowBlocks.js:1025 +msgid "The Forever block will repeat the contained blocks forever." msgstr "" -#: js/ProgramBlocks.js:343 -msgid "The Set heap block needs a heap." +#: js/blocks/FlowBlocks.js:1037 +msgid "forever" msgstr "" -#: js/ProgramBlocks.js:360 -msgid "The Load-dictionary block loads a dictionary from a file." +#: js/blocks/FlowBlocks.js:1073 +msgid "The Repeat block will repeat the contained blocks." msgstr "" -#: js/ProgramBlocks.js:372 -#.TRANS: load a dictionary from a file -msgid "load dictionary" +#: js/blocks/FlowBlocks.js:1075 +msgid "In this example the note will be played 4 times." msgstr "" -#: js/ProgramBlocks.js:390 -#: js/ProgramBlocks.js:658 -#: js/ToneBlocks.js:1025 -msgid "file" +#: js/blocks/FlowBlocks.js:1083 +msgid "repeat" msgstr "" -#: js/ProgramBlocks.js:396 -#: js/ProgramBlocks.js:501 -#: js/ProgramBlocks.js:664 -#: js/DictBlocks.js:80 -#: js/DictBlocks.js:145 -#: js/DictBlocks.js:216 -#: js/DictBlocks.js:290 -msgid "My Dictionary" +#: js/blocks/FlowBlocks.js:1123 +msgid "duplicate factor" msgstr "" -#: js/ProgramBlocks.js:444 -msgid "The file you selected does not contain a valid dictionary." +#: js/blocks/HeapBlocks.js:49 +msgid "The Heap block returns the heap." msgstr "" -#: js/ProgramBlocks.js:449 -msgid "The load dictionary block needs a load file block." +#: js/blocks/HeapBlocks.js:133 +msgid "show heap" msgstr "" -#: js/ProgramBlocks.js:466 -msgid "The Set-dictionary block loads a dictionary." +#: js/blocks/HeapBlocks.js:181 +msgid "The Heap-length block returns the length of the heap." msgstr "" -#: js/ProgramBlocks.js:477 -#.TRANS: load a dictionary from a JSON -msgid "set dictionary" +#: js/blocks/HeapBlocks.js:195 +msgid "heap length" msgstr "" -#: js/ProgramBlocks.js:546 -msgid "The block you selected does not contain a valid dictionary." +#: js/blocks/HeapBlocks.js:254 +msgid "The Heap-empty? block returns true if the heap is empty." msgstr "" -#: js/ProgramBlocks.js:550 -msgid "The set dictionary block needs a dictionary." +#: js/blocks/HeapBlocks.js:268 +#.TRANS: Is the heap empty? +msgid "heap empty?" msgstr "" -#: js/ProgramBlocks.js:567 -msgid "The Save-heap block saves the heap to a file." +#: js/blocks/HeapBlocks.js:317 +msgid "The Empty-heap block empties the heap." msgstr "" -#: js/ProgramBlocks.js:578 -#.TRANS: save the heap to a file -msgid "save heap" +#: js/blocks/HeapBlocks.js:327 +#: js/blocks/HeapBlocks.js:647 +#.TRANS: empty the heap +msgid "empty heap" msgstr "" -#: js/ProgramBlocks.js:629 -msgid "The Save-dictionary block saves a dictionary to a file." +#: js/blocks/HeapBlocks.js:371 +msgid "The Reverse-heap block reverses the order of the heap." msgstr "" -#: js/ProgramBlocks.js:640 -#.TRANS: save a dictionary to a file -msgid "save dictionary" +#: js/blocks/HeapBlocks.js:384 +#.TRANS: reverse the order of the heap +msgid "reverse heap" msgstr "" -#: js/ProgramBlocks.js:720 -msgid "The Open palette block opens a palette." +#: js/blocks/HeapBlocks.js:428 +msgid "The Index-heap block returns a value in the heap at a specified location." msgstr "" -#: js/ProgramBlocks.js:727 -msgid "open palette" +#: js/blocks/HeapBlocks.js:443 +#.TRANS: retrieve a value from the heap at index position in the heap +msgid "index heap" msgstr "" -#: js/ProgramBlocks.js:785 -msgid "The Delete block block removes a block." +#: js/blocks/HeapBlocks.js:523 +msgid "The Set-heap entry block sets a value in he heap at the specified location." msgstr "" -#: js/ProgramBlocks.js:797 -#.TRANS: Move this block to the trash. -msgid "delete block" +#: js/blocks/HeapBlocks.js:539 +#: js/blocks/ProgramBlocks.js:299 +#.TRANS: load the heap from a JSON encoding +msgid "set heap" msgstr "" -#: js/ProgramBlocks.js:861 -msgid "The Move block block moves a block." +#: js/blocks/HeapBlocks.js:619 +msgid "The Pop block removes the value at the top of the heap." msgstr "" -#: js/ProgramBlocks.js:869 -#.TRANS: Move the position of a block on the screen. -msgid "move block" +#: js/blocks/HeapBlocks.js:633 +#.TRANS: pop a value off the top of the heap +msgid "pop" msgstr "" -#: js/ProgramBlocks.js:881 -#: js/ProgramBlocks.js:1048 -msgid "block number" +#: js/blocks/HeapBlocks.js:680 +msgid "The Push block adds a value to the top of the heap." msgstr "" -#: js/ProgramBlocks.js:935 -#.TRANS: Run program beginning at this block. -msgid "run block" +#: js/blocks/HeapBlocks.js:696 +#.TRANS: push a value onto the top of the heap +msgid "push" msgstr "" -#: js/ProgramBlocks.js:1025 -msgid "The Dock block block connections two blocks." +#: js/blocks/IntervalsBlocks.js:45 +msgid "set temperament" msgstr "" -#: js/ProgramBlocks.js:1036 -#.TRANS: We can connect a block to another block. -msgid "connect blocks" +#: js/blocks/IntervalsBlocks.js:63 +#: js/blocks/MediaBlocks.js:746 +#: js/blocks/PitchBlocks.js:657 +#: js/blocks/PitchBlocks.js:935 +#: js/blocks/PitchBlocks.js:974 +#: js/blocks/PitchBlocks.js:1007 +#: js/blocks/PitchBlocks.js:1194 +#: js/blocks/PitchBlocks.js:1717 +#: js/blocks/PitchBlocks.js:1758 +#: js/blocks/PitchBlocks.js:1866 +#: js/blocks/ToneBlocks.js:1025 +#: js/turtleactions/IntervalsActions.js:114 +#.TRANS: adjusts the shift up or down by one octave (twelve half-steps in the interval between two notes, one having twice or half the frequency in Hz of the other.) +msgid "octave" msgstr "" -#: js/ProgramBlocks.js:1048 -msgid "target block" +#: js/blocks/IntervalsBlocks.js:99 +msgid "The Temperament name block is used to select a tuning method." msgstr "" -#: js/ProgramBlocks.js:1048 -msgid "connection number" +#: js/blocks/IntervalsBlocks.js:161 +msgid "doubly" msgstr "" -#: js/ProgramBlocks.js:1140 -msgid "The Make block block creates a new block." +#: js/blocks/IntervalsBlocks.js:166 +msgid "The Doubly block will double the size of an interval." msgstr "" -#: js/ProgramBlocks.js:1152 -#.TRANS: Create a new block -msgid "make block" +#: js/blocks/IntervalsBlocks.js:262 +msgid "interval number" msgstr "" -#: js/ProgramBlocks.js:1186 -#: js/ProgramBlocks.js:1227 -#: js/RhythmBlocks.js:1128 -#: js/PitchBlocks.js:972 -#: js/PitchBlocks.js:1005 -#: js/temperament.js:340 -#: js/temperament.js:362 -#: js/temperament.js:372 -#: js/temperament.js:484 -#: js/status.js:190 -#: plugins/rodi.rtp:192 -#.TRANS: a musical note consisting of pitch and duration -msgid "note" +#: js/blocks/IntervalsBlocks.js:317 +msgid "current interval" msgstr "" -#: js/ProgramBlocks.js:1285 -msgid "Cannot find block" +#: js/blocks/IntervalsBlocks.js:387 +#.TRANS: measure the distance between two pitches in semi-tones +msgid "semi-tone interval measure" msgstr "" -#: js/ProgramBlocks.js:1304 -#: js/ProgramBlocks.js:1313 -msgid "Warning: block argument type mismatch" +#: js/blocks/IntervalsBlocks.js:454 +#: js/blocks/IntervalsBlocks.js:570 +msgid "You must use two pitch blocks when measuring an interval." msgstr "" -#: js/ProgramBlocks.js:1347 -msgid "The Open project block is used to open a project from a web page." +#: js/blocks/IntervalsBlocks.js:496 +msgid "The Scalar interval block measures the distance between two notes in the current key and mode." msgstr "" -#: js/ProgramBlocks.js:1357 -msgid "open project" +#: js/blocks/IntervalsBlocks.js:502 +#.TRANS: measure the distance between two pitches in steps of musical scale +msgid "scalar interval measure" msgstr "" -#: js/ProgramBlocks.js:1410 -msgid "Please enter a valid URL." +#: js/blocks/IntervalsBlocks.js:678 +msgid "In the figure, we add sol# to sol." msgstr "" -#: js/DrumBlocks.js:59 -msgid "The Noise name block is used to select a noise synthesizer." +#: js/blocks/IntervalsBlocks.js:684 +#: js/blocks/OrnamentBlocks.js:220 +#.TRANS: calculate a relative step between notes based on semi-tones +msgid "semi-tone interval" msgstr "" -#: js/DrumBlocks.js:102 -msgid "The Drum name block is used to select a drum." +#: js/blocks/IntervalsBlocks.js:733 +msgid "The output of the example is: do, mi, sol, sol, ti, mi" msgstr "" -#: js/DrumBlocks.js:146 -msgid "The Effects name block is used to select a sound effect." +#: js/blocks/IntervalsBlocks.js:740 +#: js/blocks/WidgetBlocks.js:768 +msgid "arpeggio" msgstr "" -#: js/DrumBlocks.js:163 -msgid "noise" +#: js/blocks/IntervalsBlocks.js:931 +msgid "The Chord block calculates common chords." msgstr "" -#: js/DrumBlocks.js:177 -msgid "The Play noise block will generate white, pink, or brown noise." +#: js/blocks/IntervalsBlocks.js:933 +msgid "In the figure, we generate a C-major chord." msgstr "" -#: js/DrumBlocks.js:191 -#: js/musicutils.js:752 -#: js/synthutils.js:47 -#.TRANS: white noise synthesizer -msgid "white noise" +#: js/blocks/IntervalsBlocks.js:938 +msgid "chord" msgstr "" -#: js/DrumBlocks.js:326 -msgid "Replace every instance of a pitch with a drum sound." +#: js/blocks/IntervalsBlocks.js:990 +msgid "The Ratio Interval block calculates an interval based on a ratio." msgstr "" -#: js/DrumBlocks.js:337 -#.TRANS: map a pitch to a drum sound -msgid "map pitch to drum" +#: js/blocks/IntervalsBlocks.js:995 +msgid "ratio interval" msgstr "" -#: js/DrumBlocks.js:404 -msgid "In the example above, a kick drum sound will be played instead of sol." +#: js/blocks/IntervalsBlocks.js:1064 +msgid "In the figure, we add la to sol." msgstr "" -#: js/DrumBlocks.js:416 -#.TRANS: set the current drum sound for playback -msgid "set drum" +#: js/blocks/IntervalsBlocks.js:1120 +#.TRANS: define a custom mode +msgid "define mode" msgstr "" -#: js/DrumBlocks.js:460 -msgid "sound effect" +#: js/blocks/IntervalsBlocks.js:1173 +msgid "movable Do" msgstr "" -#: js/DrumBlocks.js:498 -msgid "You can use multiple Drum blocks within a Note block." +#: js/blocks/IntervalsBlocks.js:1224 +#.TRANS: mode length is the number of notes in the mode, e.g., 7 for major and minor scales; 12 for chromatic scales +msgid "mode length" msgstr "" -#: js/RhythmBlocks.js:182 -#: js/RhythmBlocks.js:1086 -#: js/RhythmBlocks.js:1162 -msgid "Note value must be greater than 0." +#: js/blocks/IntervalsBlocks.js:1233 +msgid "The Mode length block is the number of notes in the current scale." msgstr "" -#: js/RhythmBlocks.js:215 -#: js/RhythmBlocks.js:278 -#: js/RhythmBlocks.js:350 -#.TRANS: swing is a rhythmic variation that emphasises the offbeat -msgid "swing" +#: js/blocks/IntervalsBlocks.js:1235 +msgid "Most Western scales have 7 notes." msgstr "" -#: js/RhythmBlocks.js:355 -#.TRANS: the amount to shift to the offbeat note -msgid "swing value" +#: js/blocks/IntervalsBlocks.js:1284 +#.TRANS: the mode in music is 'major', 'minor', etc. +msgid "current mode" msgstr "" -#: js/RhythmBlocks.js:419 -msgid "The Skip notes block will cause notes to be skipped." +#: js/blocks/IntervalsBlocks.js:1337 +#.TRANS: the key is a group of pitches with which a music composition is created +msgid "current key" msgstr "" -#: js/RhythmBlocks.js:427 -#.TRANS: substitute rests on notes being skipped -msgid "skip notes" +#: js/blocks/IntervalsBlocks.js:1389 +#: js/blocks/IntervalsBlocks.js:1434 +#.TRANS: set the key and mode, e.g. C Major +msgid "set key" msgstr "" -#: js/RhythmBlocks.js:489 -#.TRANS: speed up note duration by some factor, e.g. convert 1/4 to 1/8 notes by using a factor of 2 -msgid "multiply note value" +#: js/blocks/IntervalsBlocks.js:1443 +#: js/blocks/IntervalsBlocks.js:1449 +msgid "The Set key block is used to set the key and mode," msgstr "" -#: js/RhythmBlocks.js:542 -msgid "The Tie block works on pairs of notes, combining them into one note." +#: js/blocks/IntervalsBlocks.js:1449 +msgid "eg C Major" msgstr "" -#: js/RhythmBlocks.js:550 -#.TRANS: tie notes together into one longer note -msgid "tie" +#: js/blocks/MediaBlocks.js:35 +#.TRANS: right side of the screen +msgid "right (screen)" msgstr "" -#: js/RhythmBlocks.js:591 -#: js/RhythmBlocks.js:671 -#.TRANS: a dotted note is played for 1.5x its value, e.g., 1/8. --> 3/16 -msgid "dot" +#: js/blocks/MediaBlocks.js:45 +#: js/blocks/MediaBlocks.js:56 +msgid "The Right block returns the position of the right of the canvas." msgstr "" -#: js/RhythmBlocks.js:619 -#: js/RhythmActions.js:221 -msgid "An argument of -1 results in a note value of 0." +#: js/blocks/MediaBlocks.js:97 +#.TRANS: left side of the screen +msgid "left (screen)" msgstr "" -#: js/RhythmBlocks.js:661 -msgid "The Dot block extends the duration of a note by 50%." +#: js/blocks/MediaBlocks.js:107 +#: js/blocks/MediaBlocks.js:118 +msgid "The Left block returns the position of the left of the canvas." msgstr "" -#: js/RhythmBlocks.js:663 -msgid "Eg a dotted quarter note will play for 3/8 (1/4 + 1/8) of a beat." +#: js/blocks/MediaBlocks.js:158 +msgid "top (screen)" msgstr "" -#: js/RhythmBlocks.js:765 -#.TRANS: Japanese only: note value block for drum -msgid "note value drum" +#: js/blocks/MediaBlocks.js:168 +#: js/blocks/MediaBlocks.js:179 +msgid "The Top block returns the position of the top of the canvas." msgstr "" -#: js/RhythmBlocks.js:829 -msgid "392 hertz" +#: js/blocks/MediaBlocks.js:219 +msgid "bottom (screen)" msgstr "" -#: js/RhythmBlocks.js:1119 -msgid "The Note block is a container for one or more Pitch blocks." +#: js/blocks/MediaBlocks.js:229 +#: js/blocks/MediaBlocks.js:240 +msgid "The Bottom block returns the position of the bottom of the canvas." msgstr "" -#: js/RhythmBlocks.js:1121 -msgid "The Note block specifies the duration (note value) of its contents." +#: js/blocks/MediaBlocks.js:282 +msgid "width" msgstr "" -#: js/RhythmBlocks.js:1130 -msgid "value2" +#: js/blocks/MediaBlocks.js:291 +msgid "The Width block returns the width of the canvas." msgstr "" -#: js/RhythmBlocks.js:1200 -msgid "define frequency" +#: js/blocks/MediaBlocks.js:325 +msgid "height" msgstr "" -#: js/RhythmBlocks.js:1218 -#: js/temperament.js:650 -#: js/temperament.js:1421 -msgid "octave space" +#: js/blocks/MediaBlocks.js:334 +msgid "The Height block returns the height of the canvas." msgstr "" -#: js/NumberBlocks.js:28 -msgid "The Int block returns an integer." +#: js/blocks/MediaBlocks.js:369 +#.TRANS: stops playback of an audio recording +msgid "stop play" msgstr "" -#: js/NumberBlocks.js:34 -msgid "int" +#: js/blocks/MediaBlocks.js:404 +#.TRANS: Erases the images and text +msgid "erase media" msgstr "" -#: js/NumberBlocks.js:73 -msgid "The Mod block returns the remainder from a division." +#: js/blocks/MediaBlocks.js:409 +msgid "The Erase Media block erases text and images." msgstr "" -#: js/NumberBlocks.js:79 -msgid "mod" +#: js/blocks/MediaBlocks.js:439 +#.TRANS: play an audio recording +msgid "play back" msgstr "" -#: js/NumberBlocks.js:123 -msgid "The Power block calculates a power function." +#: js/blocks/MediaBlocks.js:487 +msgid "speak" msgstr "" -#: js/NumberBlocks.js:178 -msgid "The Sqrt block returns the square root." +#: js/blocks/MediaBlocks.js:495 +msgid "The Speak block outputs to the text-to-speech synthesizer" msgstr "" -#: js/NumberBlocks.js:184 -msgid "sqrt" +#: js/blocks/MediaBlocks.js:546 +msgid "camera" msgstr "" -#: js/NumberBlocks.js:230 -msgid "The Abs block returns the absolute value." +#: js/blocks/MediaBlocks.js:551 +msgid "The Camera block connects a webcam to the Show block." msgstr "" -#: js/NumberBlocks.js:236 -msgid "abs" +#: js/blocks/MediaBlocks.js:574 +msgid "video" msgstr "" -#: js/NumberBlocks.js:277 -msgid "The Distance block returns the distance between two points. For example, between the mouse and the center of the screen." +#: js/blocks/MediaBlocks.js:579 +msgid "The Video block selects video for use with the Show block." msgstr "" -#: js/NumberBlocks.js:283 -#: plugins/rodi.rtp:310 -msgid "distance" +#: js/blocks/MediaBlocks.js:607 +msgid "The Open file block opens a file for use with the Show block." msgstr "" -#: js/NumberBlocks.js:343 -msgid "The Divide block is used to divide." +#: js/blocks/MediaBlocks.js:645 +msgid "stop media" msgstr "" -#: js/NumberBlocks.js:411 -msgid "The Multiply block is used to multiply." +#: js/blocks/MediaBlocks.js:650 +msgid "The Stop media block stops audio or video playback." msgstr "" -#: js/NumberBlocks.js:554 -msgid "The Minus block is used to subtract." +#: js/blocks/MediaBlocks.js:679 +#: js/blocks/PitchBlocks.js:1577 +#: js/widgets/musickeyboard.js:1936 +#: js/widgets/phrasemaker.js:1037 +#.TRANS: a measure of frequency: one cycle per second +msgid "hertz" msgstr "" -#: js/NumberBlocks.js:647 -msgid "The Plus block is used to add." +#: js/blocks/MediaBlocks.js:692 +#: js/blocks/WidgetBlocks.js:182 +#: js/widgets/temperament.js:506 +#: js/widgets/temperament.js:546 +#: js/widgets/temperament.js:610 +#: js/widgets/temperament.js:618 +#: js/widgets/temperament.js:1505 +#: js/widgets/timbre.js:1842 +msgid "frequency" msgstr "" -#: js/NumberBlocks.js:773 -msgid "The One-of block returns one of two choices." +#: js/blocks/MediaBlocks.js:692 +msgid "duration (ms)" msgstr "" -#: js/NumberBlocks.js:780 -#: js/PitchBlocks.js:616 -msgid "one of" +#: js/blocks/MediaBlocks.js:728 +#.TRANS: translate a note into hertz, e.g., A4 -> 440HZ +msgid "note to frequency" msgstr "" -#: js/NumberBlocks.js:782 -msgid "this" +#: js/blocks/MediaBlocks.js:736 +msgid "The To frequency block converts a pitch name and octave to Hertz." msgstr "" -#: js/NumberBlocks.js:782 -msgid "that" +#: js/blocks/MediaBlocks.js:746 +#: js/blocks/PitchBlocks.js:656 +#: js/blocks/PitchBlocks.js:934 +#: js/blocks/PitchBlocks.js:1866 +#.TRANS: name2 is name as in name of pitch (JAPANESE ONLY) +msgid "name2" msgstr "" -#: js/NumberBlocks.js:837 -msgid "The Random block returns a random number." +#: js/blocks/MediaBlocks.js:812 +msgid "The Avatar block is used to change the appearance of the mouse." msgstr "" -#: js/NumberBlocks.js:844 -msgid "random" +#: js/blocks/MediaBlocks.js:819 +msgid "The Avatar block is used to change the appearance of the turtle." msgstr "" -#: js/NumberBlocks.js:846 -msgid "min" +#: js/blocks/MediaBlocks.js:831 +#: js/blocks/MediaBlocks.js:891 +#.TRANS: a media object +msgid "size" msgstr "" -#: js/NumberBlocks.js:846 -msgid "max" +#: js/blocks/MediaBlocks.js:831 +msgid "image" msgstr "" -#: js/NumberBlocks.js:910 -msgid "The Number block holds a number." +#: js/blocks/MediaBlocks.js:880 +msgid "The Show block is used to display text or images on the canvas." msgstr "" -#: js/BoxesBlocks.js:53 -#: js/BoxesBlocks.js:59 -msgid "The Add-to block is used to add to the value stored in a box." +#: js/blocks/MediaBlocks.js:888 +#.TRANS: show1 is show as in display an image or text on the screen. +msgid "show1" msgstr "" -#: js/BoxesBlocks.js:61 -msgid "It can also be used with other blocks such as Color and Pen size." +#: js/blocks/MediaBlocks.js:891 +msgid "obj" msgstr "" -#: js/BoxesBlocks.js:73 -msgid "add" +#: js/blocks/MediaBlocks.js:938 +msgid "The Media block is used to import an image." msgstr "" -#: js/BoxesBlocks.js:75 -#: js/temperament.js:716 -msgid "to" +#: js/blocks/MediaBlocks.js:973 +msgid "The Text block holds a text string." msgstr "" -#: js/BoxesBlocks.js:75 -#: js/BoxesBlocks.js:595 -#: js/HeapBlocks.js:544 -msgid "value1" +#: js/blocks/MeterBlocks.js:34 +#.TRANS: musical meter (time signature), e.g., 4:4 +msgid "current meter" msgstr "" -#: js/BoxesBlocks.js:118 -msgid "Block does not support incrementing." +#: js/blocks/MeterBlocks.js:85 +#.TRANS: number of beats per minute +msgid "beat factor" msgstr "" -#: js/BoxesBlocks.js:152 -msgid "The Add-1-to block adds one to the value stored in a box." +#: js/blocks/MeterBlocks.js:161 +msgid "The Beats per minute block returns the current beats per minute." msgstr "" -#: js/BoxesBlocks.js:163 -msgid "add 1 to" +#: js/blocks/MeterBlocks.js:169 +#: js/widgets/status.js:152 +#.TRANS: number of beats played per minute +msgid "beats per minute2" msgstr "" -#: js/BoxesBlocks.js:211 -msgid "The Subtract-1-from block subtracts one from the value stored in a box." +#: js/blocks/MeterBlocks.js:169 +#: js/blocks/MeterBlocks.js:1056 +#: js/blocks/MeterBlocks.js:1133 +#: js/blocks/MeterBlocks.js:1211 +#.TRANS: sets tempo by defining a beat and beats per minute +msgid "beats per minute" msgstr "" -#: js/BoxesBlocks.js:222 -msgid "subtract 1 from" +#: js/blocks/MeterBlocks.js:233 +#.TRANS: count of current musical measure in meter +msgid "measure count" msgstr "" -#: js/BoxesBlocks.js:270 -#: js/BoxesBlocks.js:387 -msgid "The Box block returns the value stored in a box." +#: js/blocks/MeterBlocks.js:241 +msgid "The Measure count block returns the current measure." msgstr "" -#: js/BoxesBlocks.js:500 -#: js/BoxesBlocks.js:576 -msgid "The Store in block will store a value in a box." +#: js/blocks/MeterBlocks.js:290 +#.TRANS: count of current beat in the meter +msgid "beat count" msgstr "" -#: js/BoxesBlocks.js:652 -msgid "The Box2 block returns the value stored in Box2." +#: js/blocks/MeterBlocks.js:300 +#: js/blocks/MeterBlocks.js:311 +#: js/blocks/MeterBlocks.js:565 +#: js/blocks/MeterBlocks.js:576 +msgid "The Beat count block is the number of the current beat," msgstr "" -#: js/BoxesBlocks.js:703 -msgid "The Store in Box2 block is used to store a value in Box2." +#: js/blocks/MeterBlocks.js:313 +#: js/blocks/MeterBlocks.js:578 +msgid "eg 1, 2, 3, or 4." msgstr "" -#: js/BoxesBlocks.js:715 -msgid "store in box2" +#: js/blocks/MeterBlocks.js:368 +#.TRANS: count the number of notes +msgid "sum note values" msgstr "" -#: js/BoxesBlocks.js:761 -msgid "The Box1 block returns the value stored in Box1." +#: js/blocks/MeterBlocks.js:376 +#: js/blocks/MeterBlocks.js:440 +msgid "The Note counter block can be used to count the number of contained notes." msgstr "" -#: js/BoxesBlocks.js:812 -msgid "The Store in Box1 block is used to store a value in Box1." +#: js/blocks/MeterBlocks.js:432 +#.TRANS: count the number of notes +msgid "note counter" msgstr "" -#: js/BoxesBlocks.js:826 -msgid "store in box1" +#: js/blocks/MeterBlocks.js:496 +#.TRANS: number of whole notes that have been played +msgid "whole notes played" msgstr "" -#: js/HeapBlocks.js:49 -msgid "The Heap block returns the heap." +#: js/blocks/MeterBlocks.js:505 +msgid "The Whole notes played block returns the total number of whole notes played." msgstr "" -#: js/HeapBlocks.js:133 -msgid "show heap" +#: js/blocks/MeterBlocks.js:555 +#: js/turtleactions/DictActions.js:83 +#.TRANS: number of notes that have been played +msgid "notes played" msgstr "" -#: js/HeapBlocks.js:181 -msgid "The Heap-length block returns the length of the heap." +#: js/blocks/MeterBlocks.js:653 +msgid "The No clock block decouples the notes from the master clock." msgstr "" -#: js/HeapBlocks.js:195 -msgid "heap length" +#: js/blocks/MeterBlocks.js:661 +#.TRANS: don't lock notes to master clock +msgid "no clock" msgstr "" -#: js/HeapBlocks.js:254 -msgid "The Heap-empty? block returns true if the heap is empty." +#: js/blocks/MeterBlocks.js:700 +msgid "on weak beat do" msgstr "" -#: js/HeapBlocks.js:268 -#.TRANS: Is the heap empty? -msgid "heap empty?" +#: js/blocks/MeterBlocks.js:705 +msgid "The On-weak-beat block lets you specify actions to take on weak (off) beats." msgstr "" -#: js/HeapBlocks.js:317 -msgid "The Empty-heap block empties the heap." +#: js/blocks/MeterBlocks.js:750 +msgid "on strong beat" msgstr "" -#: js/HeapBlocks.js:327 -#: js/HeapBlocks.js:647 -#.TRANS: empty the heap -msgid "empty heap" +#: js/blocks/MeterBlocks.js:758 +msgid "The On-strong-beat block lets you specify actions to take on specified beats." msgstr "" -#: js/HeapBlocks.js:371 -msgid "The Reverse-heap block reverses the order of the heap." +#: js/blocks/MeterBlocks.js:769 +msgid "beat" msgstr "" -#: js/HeapBlocks.js:384 -#.TRANS: reverse the order of the heap -msgid "reverse heap" +#: js/blocks/MeterBlocks.js:813 +msgid "on every beat do" msgstr "" -#: js/HeapBlocks.js:428 -msgid "The Index-heap block returns a value in the heap at a specified location." +#: js/blocks/MeterBlocks.js:821 +msgid "The On-every-beat block lets you specify actions to take on every beat." msgstr "" -#: js/HeapBlocks.js:443 -#.TRANS: retrieve a value from the heap at index position in the heap -msgid "index heap" +#: js/blocks/MeterBlocks.js:874 +msgid "on every note do" msgstr "" -#: js/HeapBlocks.js:523 -msgid "The Set-heap entry block sets a value in he heap at the specified location." +#: js/blocks/MeterBlocks.js:882 +msgid "The On-every-note block lets you specify actions to take on every note." msgstr "" -#: js/HeapBlocks.js:619 -msgid "The Pop block removes the value at the top of the heap." +#: js/blocks/MeterBlocks.js:928 +#: js/blocks/MeterBlocks.js:999 +#.TRANS: sets tempo by defining a beat and beats per minute +msgid "master beats per minute" msgstr "" -#: js/HeapBlocks.js:633 -#.TRANS: pop a value off the top of the heap -msgid "pop" +#: js/blocks/MeterBlocks.js:952 +#: js/blocks/MeterBlocks.js:1078 +#: js/blocks/MeterBlocks.js:1135 +msgid "bpm" msgstr "" -#: js/HeapBlocks.js:680 -msgid "The Push block adds a value to the top of the heap." +#: js/blocks/MeterBlocks.js:952 +#: js/blocks/MeterBlocks.js:1078 +#: js/blocks/MeterBlocks.js:1135 +msgid "beat value" msgstr "" -#: js/HeapBlocks.js:696 -#.TRANS: push a value onto the top of the heap -msgid "push" +#: js/blocks/MeterBlocks.js:1024 +#: js/blocks/MeterBlocks.js:1167 +#: js/blocks/MeterBlocks.js:1241 +msgid "Beats per minute must be > 30." msgstr "" -#: js/FlowBlocks.js:41 -msgid "The Backward block runs code in reverse order (Musical retrograde)." +#: js/blocks/MeterBlocks.js:1027 +#: js/blocks/MeterBlocks.js:1170 +#: js/blocks/MeterBlocks.js:1244 +msgid "Maximum beats per minute is 1000." msgstr "" -#: js/FlowBlocks.js:48 -msgid "backward" +#: js/blocks/MeterBlocks.js:1068 +msgid "The Beats per minute block sets the number of 1/4 notes per minute." msgstr "" -#: js/FlowBlocks.js:124 -msgid "The Duplicate block will run each block multiple times." +#: js/blocks/MeterBlocks.js:1279 +#.TRANS: anacrusis +msgid "pickup" msgstr "" -#: js/FlowBlocks.js:136 -msgid "duplicate" +#: js/blocks/MeterBlocks.js:1367 +msgid "number of beats" msgstr "" -#: js/FlowBlocks.js:334 -msgid "The Default block is used inside of a Switch to define the default action." +#: js/blocks/NumberBlocks.js:28 +msgid "The Int block returns an integer." msgstr "" -#: js/FlowBlocks.js:342 -msgid "default" +#: js/blocks/NumberBlocks.js:34 +msgid "int" msgstr "" -#: js/FlowBlocks.js:361 -#: js/FlowBlocks.js:418 -msgid "The Case Block must be used inside of a Switch Block." +#: js/blocks/NumberBlocks.js:73 +msgid "The Mod block returns the remainder from a division." msgstr "" -#: js/FlowBlocks.js:389 -msgid "The Case block is used inside of a Switch to define matches." +#: js/blocks/NumberBlocks.js:79 +msgid "mod" msgstr "" -#: js/FlowBlocks.js:397 -msgid "case" +#: js/blocks/NumberBlocks.js:141 +msgid "The Power block calculates a power function." msgstr "" -#: js/FlowBlocks.js:446 -msgid "The Switch block will run the code in the matching Case." +#: js/blocks/NumberBlocks.js:196 +msgid "The Sqrt block returns the square root." msgstr "" -#: js/FlowBlocks.js:454 -msgid "switch" +#: js/blocks/NumberBlocks.js:202 +msgid "sqrt" msgstr "" -#: js/FlowBlocks.js:595 -msgid "The Stop block will stop a loop" +#: js/blocks/NumberBlocks.js:248 +msgid "The Abs block returns the absolute value." msgstr "" -#: js/FlowBlocks.js:597 -msgid "Forever, Repeat, While, or Until." +#: js/blocks/NumberBlocks.js:254 +msgid "abs" msgstr "" -#: js/FlowBlocks.js:604 -#: js/phrasemaker.js:3799 -#: js/musickeyboard.js:629 -#: js/musickeyboard.js:631 -#: js/timbre.js:417 -#: js/timbre.js:419 -#: plugins/rodi.rtp:29 -#: plugins/rodi.rtp:73 -#: plugins/rodi.rtp:413 -msgid "stop" +#: js/blocks/NumberBlocks.js:295 +msgid "The Distance block returns the distance between two points. For example, between the mouse and the center of the screen." msgstr "" -#: js/FlowBlocks.js:653 -msgid "The Waitfor block will wait until the condition is true." +#: js/blocks/NumberBlocks.js:301 +#: plugins/rodi.rtp:310 +msgid "distance" msgstr "" -#: js/FlowBlocks.js:661 -msgid "wait for" +#: js/blocks/NumberBlocks.js:361 +msgid "The Divide block is used to divide." msgstr "" -#: js/FlowBlocks.js:732 -msgid "The Until block will repeat until the condition is true." +#: js/blocks/NumberBlocks.js:441 +msgid "The Multiply block is used to multiply." msgstr "" -#: js/FlowBlocks.js:740 -msgid "until" +#: js/blocks/NumberBlocks.js:612 +msgid "The Minus block is used to subtract." msgstr "" -#: js/FlowBlocks.js:742 -#: js/FlowBlocks.js:822 -msgid "do2" +#: js/blocks/NumberBlocks.js:723 +msgid "The Plus block is used to add." msgstr "" -#: js/FlowBlocks.js:812 -msgid "The While block will repeat while the condition is true." +#: js/blocks/NumberBlocks.js:849 +msgid "The One-of block returns one of two choices." msgstr "" -#: js/FlowBlocks.js:820 -msgid "while" +#: js/blocks/NumberBlocks.js:856 +#: js/blocks/PitchBlocks.js:616 +msgid "one of" msgstr "" -#: js/FlowBlocks.js:903 -#: js/FlowBlocks.js:968 -#: js/FlowBlocks.js:979 -msgid "In this example if the mouse button is pressed a snare drum will play." +#: js/blocks/NumberBlocks.js:858 +msgid "this" msgstr "" -#: js/FlowBlocks.js:925 -#: js/FlowBlocks.js:988 -msgid "if" +#: js/blocks/NumberBlocks.js:858 +msgid "that" msgstr "" -#: js/FlowBlocks.js:927 -#: js/FlowBlocks.js:990 -msgid "then" +#: js/blocks/NumberBlocks.js:913 +msgid "The Random block returns a random number." msgstr "" -#: js/FlowBlocks.js:927 -msgid "else" +#: js/blocks/NumberBlocks.js:920 +msgid "random" msgstr "" -#: js/FlowBlocks.js:1025 -msgid "The Forever block will repeat the contained blocks forever." +#: js/blocks/NumberBlocks.js:922 +msgid "min" msgstr "" -#: js/FlowBlocks.js:1037 -msgid "forever" +#: js/blocks/NumberBlocks.js:922 +msgid "max" msgstr "" -#: js/FlowBlocks.js:1073 -msgid "The Repeat block will repeat the contained blocks." +#: js/blocks/NumberBlocks.js:986 +msgid "The Number block holds a number." msgstr "" -#: js/FlowBlocks.js:1075 -msgid "In this example the note will be played 4 times." +#: js/blocks/OrnamentBlocks.js:32 +msgid "staccato factor" msgstr "" -#: js/FlowBlocks.js:1083 -msgid "repeat" +#: js/blocks/OrnamentBlocks.js:108 +msgid "slur factor" msgstr "" -#: js/FlowBlocks.js:1123 -msgid "duplicate factor" +#: js/blocks/OrnamentBlocks.js:217 +#: js/blocks/OrnamentBlocks.js:309 +#.TRANS: the neighbor refers to a neighboring note, e.g., D is a neighbor of C +msgid "neighbor" msgstr "" -#: js/PitchBlocks.js:39 -#: js/musicutils.js:722 -#: js/musicutils.js:1117 -#: js/synthutils.js:112 -#.TRANS: square wave -msgid "square" +#: js/blocks/OrnamentBlocks.js:293 +msgid "The Neighbor block rapidly switches between neighboring pitches." msgstr "" -#: js/PitchBlocks.js:62 -#: js/ToneBlocks.js:39 -#: js/musicutils.js:723 -#: js/musicutils.js:1118 -#: js/synthutils.js:116 -#.TRANS: triangle wave -msgid "triangle" +#: js/blocks/OrnamentBlocks.js:364 +msgid "glide" msgstr "" -#: js/PitchBlocks.js:85 -#: js/musicutils.js:721 -#: js/musicutils.js:1116 -#: js/synthutils.js:110 -#.TRANS: sine wave -msgid "sine" +#: js/blocks/OrnamentBlocks.js:479 +#: js/blocks/OrnamentBlocks.js:643 +msgid "slur" msgstr "" -#: js/PitchBlocks.js:108 -#: js/musicutils.js:724 -#: js/musicutils.js:1119 -#: js/synthutils.js:114 -#.TRANS: sawtooth wave -msgid "sawtooth" +#: js/blocks/OrnamentBlocks.js:558 +#: js/blocks/OrnamentBlocks.js:710 +#.TRANS: play each note sharply detached from the others +msgid "staccato" msgstr "" -#: js/PitchBlocks.js:141 -#.TRANS: musical transposition (adjustment of pitch up or down) -msgid "transposition" +#: js/blocks/RhythmBlocks.js:182 +#: js/blocks/RhythmBlocks.js:1086 +#: js/blocks/RhythmBlocks.js:1162 +msgid "Note value must be greater than 0." msgstr "" -#: js/PitchBlocks.js:168 -#.TRANS: step down one note in current musical scale -msgid "scalar step down" +#: js/blocks/RhythmBlocks.js:215 +#: js/blocks/RhythmBlocks.js:278 +#: js/blocks/RhythmBlocks.js:350 +#.TRANS: swing is a rhythmic variation that emphasises the offbeat +msgid "swing" msgstr "" -#: js/PitchBlocks.js:172 -msgid "The Scalar step down block returns the number of semi-tones down to the previous note in the current key and mode." +#: js/blocks/RhythmBlocks.js:355 +#.TRANS: the amount to shift to the offbeat note +msgid "swing value" msgstr "" -#: js/PitchBlocks.js:190 -#.TRANS: step up one note in current musical scale -msgid "scalar step up" +#: js/blocks/RhythmBlocks.js:419 +msgid "The Skip notes block will cause notes to be skipped." msgstr "" -#: js/PitchBlocks.js:194 -msgid "The Scalar step up block returns the number of semi-tones up to the next note in the current key and mode." +#: js/blocks/RhythmBlocks.js:427 +#.TRANS: substitute rests on notes being skipped +msgid "skip notes" msgstr "" -#: js/PitchBlocks.js:212 -#.TRANS: the change measured in half-steps between the current pitch and the previous pitch -msgid "change in pitch" +#: js/blocks/RhythmBlocks.js:489 +#.TRANS: speed up note duration by some factor, e.g. convert 1/4 to 1/8 notes by using a factor of 2 +msgid "multiply note value" msgstr "" -#: js/PitchBlocks.js:216 -msgid "The Change in pitch block is the difference (in half steps) between the current pitch being played and the previous pitch played." +#: js/blocks/RhythmBlocks.js:542 +msgid "The Tie block works on pairs of notes, combining them into one note." msgstr "" -#: js/PitchBlocks.js:243 -#.TRANS: the change measured in scale-steps between the current pitch and the previous pitch -msgid "scalar change in pitch" +#: js/blocks/RhythmBlocks.js:550 +#.TRANS: tie notes together into one longer note +msgid "tie" msgstr "" -#: js/PitchBlocks.js:250 -#: js/PitchBlocks.js:432 -#: js/PitchBlocks.js:1629 -#: js/DictActions.js:89 -#: js/temperament.js:477 -#: js/temperament.js:481 -#: js/temperament.js:714 -#.TRANS: convert current note to piano key (1-88) -#.TRANS: a mapping of pitch to the 88 piano keys -msgid "pitch number" +#: js/blocks/RhythmBlocks.js:591 +#: js/blocks/RhythmBlocks.js:671 +#.TRANS: a dotted note is played for 1.5x its value, e.g., 1/8. --> 3/16 +msgid "dot" msgstr "" -#: js/PitchBlocks.js:256 -msgid "The Pitch number block is the value of the pitch of the note currently being played." +#: js/blocks/RhythmBlocks.js:619 +#: js/turtleactions/RhythmActions.js:221 +msgid "An argument of -1 results in a note value of 0." msgstr "" -#: js/PitchBlocks.js:329 -#: js/PitchBlocks.js:433 -#.TRANS: the current pitch expressed in Hertz -msgid "pitch in hertz" +#: js/blocks/RhythmBlocks.js:661 +msgid "The Dot block extends the duration of a note by 50%." msgstr "" -#: js/PitchBlocks.js:334 -msgid "The Pitch in Hertz block is the value in Hertz of the pitch of the note currently being played." +#: js/blocks/RhythmBlocks.js:663 +msgid "Eg a dotted quarter note will play for 3/8 (1/4 + 1/8) of a beat." msgstr "" -#: js/PitchBlocks.js:367 -#: js/DictActions.js:87 -msgid "current pitch" +#: js/blocks/RhythmBlocks.js:765 +#.TRANS: Japanese only: note value block for drum +msgid "note value drum" msgstr "" -#: js/PitchBlocks.js:373 -msgid "The Current Pitch block is used with the Pitch Converter block. In the example above, current pitch, sol 4, is displayed as 392 hertz." +#: js/blocks/RhythmBlocks.js:829 +msgid "392 hertz" msgstr "" -#: js/PitchBlocks.js:410 -msgid "This block converts the pitch value of the last note played into different formats such as hertz, letter name, pitch number, et al." +#: js/blocks/RhythmBlocks.js:1119 +msgid "The Note block is a container for one or more Pitch blocks." msgstr "" -#: js/PitchBlocks.js:434 -msgid "alphabet" +#: js/blocks/RhythmBlocks.js:1121 +msgid "The Note block specifies the duration (note value) of its contents." msgstr "" -#: js/PitchBlocks.js:436 -#.TRANS: Translate as "alphabet class" -msgid "letter class" +#: js/blocks/RhythmBlocks.js:1128 +#: js/blocks/PitchBlocks.js:974 +#: js/blocks/PitchBlocks.js:1007 +#: js/blocks/ProgramBlocks.js:1186 +#: js/blocks/ProgramBlocks.js:1227 +#: js/widgets/status.js:190 +#: js/widgets/temperament.js:464 +#: js/widgets/temperament.js:486 +#: js/widgets/temperament.js:496 +#: js/widgets/temperament.js:617 +#: plugins/rodi.rtp:192 +#.TRANS: a musical note consisting of pitch and duration +msgid "note" msgstr "" -#: js/PitchBlocks.js:437 -msgid "solfege class" +#: js/blocks/RhythmBlocks.js:1130 +msgid "value2" msgstr "" -#: js/PitchBlocks.js:438 -msgid "staff y" +#: js/blocks/RhythmBlocks.js:1200 +msgid "define frequency" msgstr "" -#: js/PitchBlocks.js:439 -msgid "solfege syllable" +#: js/blocks/RhythmBlocks.js:1218 +#: js/widgets/temperament.js:787 +#: js/widgets/temperament.js:1587 +msgid "octave space" msgstr "" -#: js/PitchBlocks.js:440 -msgid "pitch class" +#: js/blocks/SensorsBlocks.js:36 +msgid "The Input block prompts for keyboard input." msgstr "" -#: js/PitchBlocks.js:441 -msgid "scalar class" +#: js/blocks/SensorsBlocks.js:46 +msgid "input" msgstr "" -#: js/PitchBlocks.js:443 -msgid "nth degree" +#: js/blocks/SensorsBlocks.js:64 +msgid "Input a value" msgstr "" -#: js/PitchBlocks.js:444 -msgid "pitch to shade" +#: js/blocks/SensorsBlocks.js:126 +msgid "input value" msgstr "" -#: js/PitchBlocks.js:445 -msgid "pitch to color" +#: js/blocks/SensorsBlocks.js:131 +msgid "The Input-value block stores the input." msgstr "" -#: js/PitchBlocks.js:629 -#: js/musickeyboard.js:565 -#.TRANS: MIDI is a technical standard for electronic music -msgid "MIDI" +#: js/blocks/SensorsBlocks.js:238 +msgid "loudness" msgstr "" -#: js/PitchBlocks.js:642 -#.TRANS: set an offset associated with the numeric piano keyboard mapping -msgid "set pitch number offset" +#: js/blocks/SensorsBlocks.js:245 +msgid "The Loudness block returns the volume detected by the microphone." msgstr "" -#: js/PitchBlocks.js:645 -msgid "The Set pitch number offset block is used to set the offset for mapping pitch numbers to pitch and octave." +#: js/blocks/SensorsBlocks.js:300 +msgid "click" msgstr "" -#: js/PitchBlocks.js:679 -#.TRANS: convert piano key number (1-88) to pitch -msgid "number to pitch" +#: js/blocks/SensorsBlocks.js:306 +msgid "The Click block triggers an event if a mouse has been clicked." msgstr "" -#: js/PitchBlocks.js:682 -msgid "The Number to pitch block will convert a pitch number to a pich name." +#: js/blocks/SensorsBlocks.js:313 +msgid "The Click block triggers an event if a turtle has been clicked." msgstr "" -#: js/PitchBlocks.js:715 -#.TRANS: convert piano key number (1-88) to octave -msgid "number to octave" +#: js/blocks/SensorsBlocks.js:342 +msgid "cursor over" msgstr "" -#: js/PitchBlocks.js:717 -msgid "The Number to octave block will convert a pitch number to an octave." +#: js/blocks/SensorsBlocks.js:387 +msgid "cursor out" msgstr "" -#: js/PitchBlocks.js:726 -msgid "y to pitch" +#: js/blocks/SensorsBlocks.js:433 +msgid "cursor button down" msgstr "" -#: js/PitchBlocks.js:729 -msgid "Y to pitch block will convert a staff y position to corresponding pitch notation." +#: js/blocks/SensorsBlocks.js:477 +msgid "cursor button up" msgstr "" -#: js/PitchBlocks.js:841 -msgid "accidental selector" +#: js/blocks/SensorsBlocks.js:521 +#: js/blocks/PenBlocks.js:48 +#: plugins/rodi.rtp:219 +msgid "blue" msgstr "" -#: js/PitchBlocks.js:844 -msgid "The Accidental selector block is used to choose between double-sharp, sharp, natural, flat, and double-flat." +#: js/blocks/SensorsBlocks.js:577 +#: js/blocks/PenBlocks.js:64 +#: plugins/rodi.rtp:218 +msgid "green" msgstr "" -#: js/PitchBlocks.js:858 -msgid "Pitch can be specified in terms of ni dha pa ma ga re sa." +#: js/blocks/SensorsBlocks.js:633 +#: js/blocks/PenBlocks.js:112 +#: plugins/rodi.rtp:217 +msgid "red" msgstr "" -#: js/PitchBlocks.js:872 -msgid "Pitch can be specified in terms of C D E F G A B." +#: js/blocks/SensorsBlocks.js:638 +msgid "The Get red block returns the red component of the pixel under the mouse." msgstr "" -#: js/PitchBlocks.js:883 -msgid "solfege" +#: js/blocks/SensorsBlocks.js:644 +msgid "The Get red block returns the red component of the pixel under the turtle." msgstr "" -#: js/PitchBlocks.js:886 -msgid "Pitch can be specified in terms of do re mi fa sol la ti." +#: js/blocks/SensorsBlocks.js:685 +#: plugins/rodi.rtp:216 +msgid "pixel color" msgstr "" -#: js/PitchBlocks.js:920 -msgid "The Invert block rotates any contained notes around a target note." +#: js/blocks/SensorsBlocks.js:690 +msgid "The Get pixel block returns the color of the pixel under the mouse." msgstr "" -#: js/PitchBlocks.js:927 -#.TRANS: pitch inversion rotates a pitch around another pitch -msgid "invert" +#: js/blocks/SensorsBlocks.js:696 +msgid "The Get pixel block returns the color of the pixel under the turtle." msgstr "" -#: js/PitchBlocks.js:929 -#: js/PitchBlocks.js:935 -#: js/PitchActions.js:727 -#: js/musicutils.js:726 -#: js/musicutils.js:902 -#.TRANS: invert based on even or odd number or musical scale -#.TRANS: even numbers -msgid "even" +#: js/blocks/SensorsBlocks.js:758 +msgid "time" msgstr "" -#: js/PitchBlocks.js:935 -#: js/PitchActions.js:729 -#: js/musicutils.js:728 -#: js/musicutils.js:903 -#.TRANS: odd numbers -msgid "odd" +#: js/blocks/SensorsBlocks.js:804 +msgid "cursor y" msgstr "" -#: js/PitchBlocks.js:935 -#: js/PitchActions.js:731 -#: js/musicutils.js:729 -#: js/musicutils.js:904 -msgid "scalar" +#: js/blocks/SensorsBlocks.js:809 +msgid "The Cursor Y block returns the vertical position of the mouse." msgstr "" -#: js/PitchBlocks.js:966 -#.TRANS: pitch inversion rotates a pitch around another pitch (odd number) -msgid "invert (odd)" +#: js/blocks/SensorsBlocks.js:845 +msgid "cursor x" msgstr "" -#: js/PitchBlocks.js:999 -#.TRANS: pitch inversion rotates a pitch around another pitch (even number) -msgid "invert (even)" +#: js/blocks/SensorsBlocks.js:850 +msgid "The Cursor X block returns the horizontal position of the mouse." msgstr "" -#: js/PitchBlocks.js:1020 -#.TRANS: register is the octave of the current pitch -msgid "register" +#: js/blocks/SensorsBlocks.js:886 +msgid "mouse button" msgstr "" -#: js/PitchBlocks.js:1024 -msgid "The Register block provides an easy way to modify the register (octave) of the notes that follow it." +#: js/blocks/SensorsBlocks.js:888 +msgid "The Mouse-button block returns True if the mouse button is pressed." msgstr "" -#: js/PitchBlocks.js:1074 -msgid "The Semi-tone transposition block will shift the pitches contained inside Note blocks up (or down) by half steps." +#: js/blocks/SensorsBlocks.js:934 +msgid "to ASCII" msgstr "" -#: js/PitchBlocks.js:1076 -msgid "In the example shown above, sol is shifted up to sol#." +#: js/blocks/SensorsBlocks.js:938 +msgid "The To ASCII block converts numbers to letters." msgstr "" -#: js/PitchBlocks.js:1082 -#.TRANS: adjust the amount of shift (up or down) of a pitch -msgid "semi-tone transpose" +#: js/blocks/SensorsBlocks.js:1005 +msgid "The Keyboard block returns computer keyboard input." msgstr "" -#: js/PitchBlocks.js:1115 -msgid "The Transpose by Ratio block will shift the pitches contained inside Note blocks up (or down) by a ratio" +#: js/blocks/RhythmBlockPaletteBlocks.js:50 +#: js/blocks/RhythmBlockPaletteBlocks.js:233 +#.TRANS: rhythm block +#.TRANS: translate "rhythm1" as rhythm +msgid "rhythm1" msgstr "" -#: js/PitchBlocks.js:1121 -#.TRANS: adjust the amount of shift (up or down) of a pitch -msgid "transpose by ratio" +#: js/blocks/RhythmBlockPaletteBlocks.js:70 +#: js/blocks/RhythmBlockPaletteBlocks.js:252 +#: js/blocks/RhythmBlockPaletteBlocks.js:485 +#: js/blocks/RhythmBlockPaletteBlocks.js:554 +#: js/blocks/RhythmBlockPaletteBlocks.js:875 +msgid "number of notes" msgstr "" -#: js/PitchBlocks.js:1204 -#.TRANS: down sixth means the note is five scale degrees below current note -msgid "down sixth" +#: js/blocks/RhythmBlockPaletteBlocks.js:126 +msgid "polyphonic rhythm" msgstr "" -#: js/PitchBlocks.js:1223 -#.TRANS: down third means the note is two scale degrees below current note -msgid "down third" +#: js/blocks/RhythmBlockPaletteBlocks.js:219 +msgid "The Rhythm block is used to generate rhythm patterns." msgstr "" -#: js/PitchBlocks.js:1242 -#.TRANS: seventh means the note is the six scale degrees above current note -msgid "seventh" +#: js/blocks/RhythmBlockPaletteBlocks.js:280 +msgid "1/64 note" msgstr "" -#: js/PitchBlocks.js:1261 -#.TRANS: sixth means the note is the five scale degrees above current note -msgid "sixth" +#: js/blocks/RhythmBlockPaletteBlocks.js:304 +msgid "1/32 note" msgstr "" -#: js/PitchBlocks.js:1280 -#.TRANS: fifth means the note is the four scale degrees above current note -msgid "fifth" +#: js/blocks/RhythmBlockPaletteBlocks.js:332 +msgid "1/16 note" msgstr "" -#: js/PitchBlocks.js:1300 -#.TRANS: fourth means the note is three scale degrees above current note -msgid "fourth" +#: js/blocks/RhythmBlockPaletteBlocks.js:360 +msgid "eighth note" msgstr "" -#: js/PitchBlocks.js:1319 -#.TRANS: third means the note is two scale degrees above current note -msgid "third" +#: js/blocks/RhythmBlockPaletteBlocks.js:388 +msgid "quarter note" msgstr "" -#: js/PitchBlocks.js:1338 -#.TRANS: second means the note is one scale degree above current note -msgid "second" +#: js/blocks/RhythmBlockPaletteBlocks.js:416 +msgid "half note" msgstr "" -#: js/PitchBlocks.js:1379 -msgid "The Scalar transposition block will shift the pitches contained inside Note blocks up (or down) the scale." +#: js/blocks/RhythmBlockPaletteBlocks.js:444 +msgid "whole note" msgstr "" -#: js/PitchBlocks.js:1381 -msgid "In the example shown above, sol is shifted up to la." +#: js/blocks/RhythmBlockPaletteBlocks.js:482 +#: js/blocks/RhythmBlockPaletteBlocks.js:551 +#: js/blocks/RhythmBlockPaletteBlocks.js:602 +#.TRANS: A tuplet is a note value divided into irregular time values. +msgid "tuplet" msgstr "" -#: js/PitchBlocks.js:1388 -#.TRANS: adjust the amount of shift (up or down) of a pitch by musical scale (scalar) steps -msgid "scalar transpose" +#: js/blocks/RhythmBlockPaletteBlocks.js:768 +msgid "septuplet" msgstr "" -#: js/PitchBlocks.js:1423 -msgid "The Accidental block is used to create sharps and flats" +#: js/blocks/RhythmBlockPaletteBlocks.js:796 +msgid "quintuplet" msgstr "" -#: js/PitchBlocks.js:1430 -#.TRANS: An accidental is a modification to a pitch, e.g., sharp or flat. -msgid "accidental override" +#: js/blocks/RhythmBlockPaletteBlocks.js:824 +msgid "triplet" msgstr "" -#: js/PitchBlocks.js:1543 -msgid "The Hertz block (in combination with a Number block) will play a sound at the specified frequency." +#: js/blocks/RhythmBlockPaletteBlocks.js:851 +msgid "simple tuplet" msgstr "" -#: js/PitchBlocks.js:1633 -msgid "The Pitch Number block will play a pitch associated by its number, e.g. 0 for C and 7 for G." +#: js/blocks/RhythmBlockPaletteBlocks.js:861 +msgid "Tuplets are a collection of notes that get scaled to a specific duration." msgstr "" -#: js/PitchBlocks.js:1665 -#: js/PitchBlocks.js:1707 -#.TRANS: a numeric mapping of the notes in an octave based on the musical mode -#.TRANS: a numeric mapping of the notes in an octave based on the musical mode -msgid "nth modal pitch" +#: js/blocks/DrumBlocks.js:59 +msgid "The Noise name block is used to select a noise synthesizer." msgstr "" -#: js/PitchBlocks.js:1668 -msgid "n^th Modal Pitch takes the pattern of pitches in semitones for a mode and makes each point a degree of the mode," +#: js/blocks/DrumBlocks.js:102 +msgid "The Drum name block is used to select a drum." msgstr "" -#: js/PitchBlocks.js:1670 -msgid "starting from 1 and regardless of tonal framework (i.e. not always 8 notes in the octave)" +#: js/blocks/DrumBlocks.js:146 +msgid "The Effects name block is used to select a sound effect." msgstr "" -#: js/PitchBlocks.js:1711 -msgid "N^th Modal Pitch takes a number as an input as the n^th degree for the given mode. 0 is the first position, 1 is the second, -1 is the note before the first etc." +#: js/blocks/DrumBlocks.js:163 +msgid "noise" msgstr "" -#: js/PitchBlocks.js:1713 -msgid "The pitches change according to the mode specified without any need for respellings." +#: js/blocks/DrumBlocks.js:177 +msgid "The Play noise block will generate white, pink, or brown noise." msgstr "" -#: js/PitchBlocks.js:1752 -msgid "Scale Degree is a common convention in music. Scale Degree offers seven possible positions in the scale (1-7) and can be modified via accidentals." +#: js/blocks/DrumBlocks.js:317 +msgid "Replace every instance of a pitch with a drum sound." msgstr "" -#: js/PitchBlocks.js:1754 -msgid "Scale Degree 1 is always the first pitch in a given scale, regardless of octave." +#: js/blocks/DrumBlocks.js:328 +#.TRANS: map a pitch to a drum sound +msgid "map pitch to drum" msgstr "" -#: js/PitchBlocks.js:1776 -#.TRANS: step some number of notes in current musical scale -msgid "scalar step" +#: js/blocks/DrumBlocks.js:395 +msgid "In the example above, a kick drum sound will be played instead of sol." msgstr "" -#: js/PitchBlocks.js:1781 -msgid "The Scalar Step block (in combination with a Number block) will play the next pitch in a scale," +#: js/blocks/DrumBlocks.js:407 +#.TRANS: set the current drum sound for playback +msgid "set drum" msgstr "" -#: js/PitchBlocks.js:1783 -msgid "eg if the last note played was sol, Scalar Step 1 will play la." +#: js/blocks/DrumBlocks.js:451 +msgid "sound effect" msgstr "" -#: js/PitchBlocks.js:1818 -msgid "The Pitch block specifies the pitch name and octave of a note that together determine the frequency of the note." +#: js/blocks/DrumBlocks.js:489 +msgid "You can use multiple Drum blocks within a Note block." msgstr "" -#: js/GraphicsBlocks.js:46 -#: js/DictActions.js:77 -#: js/DictActions.js:155 -#: js/DictActions.js:189 +#: js/blocks/GraphicsBlocks.js:46 +#: js/turtleactions/DictActions.js:77 +#: js/turtleactions/DictActions.js:144 +#: js/turtleactions/DictActions.js:173 msgid "heading" msgstr "" -#: js/GraphicsBlocks.js:56 +#: js/blocks/GraphicsBlocks.js:56 msgid "The Heading block returns the orientation of the mouse." msgstr "" -#: js/GraphicsBlocks.js:62 +#: js/blocks/GraphicsBlocks.js:62 msgid "The Heading block returns the orientation of the turtle." msgstr "" -#: js/GraphicsBlocks.js:133 +#: js/blocks/GraphicsBlocks.js:133 msgid "The Y block returns the vertical position of the mouse." msgstr "" -#: js/GraphicsBlocks.js:140 +#: js/blocks/GraphicsBlocks.js:140 msgid "The Y block returns the vertical position of the turtle." msgstr "" -#: js/GraphicsBlocks.js:149 +#: js/blocks/GraphicsBlocks.js:149 msgid "y3" msgstr "" -#: js/GraphicsBlocks.js:219 +#: js/blocks/GraphicsBlocks.js:219 msgid "The X block returns the horizontal position of the mouse." msgstr "" -#: js/GraphicsBlocks.js:226 +#: js/blocks/GraphicsBlocks.js:226 msgid "The X block returns the horizontal position of the turtle." msgstr "" -#: js/GraphicsBlocks.js:235 +#: js/blocks/GraphicsBlocks.js:235 msgid "x3" msgstr "" -#: js/GraphicsBlocks.js:295 +#: js/blocks/GraphicsBlocks.js:295 msgid "scroll xy" msgstr "" -#: js/GraphicsBlocks.js:303 +#: js/blocks/GraphicsBlocks.js:303 msgid "The Scroll XY block moves the canvas." msgstr "" -#: js/GraphicsBlocks.js:313 +#: js/blocks/GraphicsBlocks.js:313 msgid "x2" msgstr "" -#: js/GraphicsBlocks.js:313 +#: js/blocks/GraphicsBlocks.js:313 msgid "y2" msgstr "" -#: js/GraphicsBlocks.js:373 -#: js/temperament.js:213 -#: js/temperament.js:241 +#: js/blocks/GraphicsBlocks.js:373 +#: js/widgets/temperament.js:319 +#: js/widgets/temperament.js:347 msgid "clear" msgstr "" -#: js/GraphicsBlocks.js:426 +#: js/blocks/GraphicsBlocks.js:426 msgid "The Control-point 2 block sets the second control point for the Bezier curve." msgstr "" -#: js/GraphicsBlocks.js:433 +#: js/blocks/GraphicsBlocks.js:433 msgid "control point 2" msgstr "" -#: js/GraphicsBlocks.js:436 -#: js/GraphicsBlocks.js:487 -#: js/GraphicsBlocks.js:534 -#: js/GraphicsBlocks.js:750 +#: js/blocks/GraphicsBlocks.js:436 +#: js/blocks/GraphicsBlocks.js:487 +#: js/blocks/GraphicsBlocks.js:534 +#: js/blocks/GraphicsBlocks.js:750 msgid "x1" msgstr "" -#: js/GraphicsBlocks.js:436 -#: js/GraphicsBlocks.js:487 -#: js/GraphicsBlocks.js:534 -#: js/GraphicsBlocks.js:750 +#: js/blocks/GraphicsBlocks.js:436 +#: js/blocks/GraphicsBlocks.js:487 +#: js/blocks/GraphicsBlocks.js:534 +#: js/blocks/GraphicsBlocks.js:750 msgid "y1" msgstr "" -#: js/GraphicsBlocks.js:477 +#: js/blocks/GraphicsBlocks.js:477 msgid "The Control-point 1 block sets the first control point for the Bezier curve." msgstr "" -#: js/GraphicsBlocks.js:484 +#: js/blocks/GraphicsBlocks.js:484 msgid "control point 1" msgstr "" -#: js/GraphicsBlocks.js:527 +#: js/blocks/GraphicsBlocks.js:527 msgid "The Bezier block draws a Bezier curve." msgstr "" -#: js/GraphicsBlocks.js:531 +#: js/blocks/GraphicsBlocks.js:531 msgid "bezier" msgstr "" -#: js/GraphicsBlocks.js:592 +#: js/blocks/GraphicsBlocks.js:592 msgid "The Arc block moves the turtle in an arc." msgstr "" -#: js/GraphicsBlocks.js:600 +#: js/blocks/GraphicsBlocks.js:600 msgid "arc" msgstr "" -#: js/GraphicsBlocks.js:603 +#: js/blocks/GraphicsBlocks.js:603 msgid "angle" msgstr "" -#: js/GraphicsBlocks.js:603 +#: js/blocks/GraphicsBlocks.js:603 msgid "radius" msgstr "" -#: js/GraphicsBlocks.js:620 -#: js/GraphicsBlocks.js:767 -#: js/GraphicsBlocks.js:1010 -#: js/GraphicsBlocks.js:1093 +#: js/blocks/GraphicsBlocks.js:620 +#: js/blocks/GraphicsBlocks.js:767 +#: js/blocks/GraphicsBlocks.js:1010 +#: js/blocks/GraphicsBlocks.js:1093 msgid "Value must be within -5000 to 5000 when Wrap Mode is off." msgstr "" -#: js/GraphicsBlocks.js:622 -#: js/GraphicsBlocks.js:769 -#: js/GraphicsBlocks.js:1012 -#: js/GraphicsBlocks.js:1095 +#: js/blocks/GraphicsBlocks.js:622 +#: js/blocks/GraphicsBlocks.js:769 +#: js/blocks/GraphicsBlocks.js:1012 +#: js/blocks/GraphicsBlocks.js:1095 msgid "Value must be within -20000 to 20000 when Wrap Mode is on." msgstr "" -#: js/GraphicsBlocks.js:660 +#: js/blocks/GraphicsBlocks.js:660 msgid "set heading" msgstr "" -#: js/GraphicsBlocks.js:673 +#: js/blocks/GraphicsBlocks.js:673 msgid "The Set heading block sets the heading of the turtle." msgstr "" -#: js/GraphicsBlocks.js:733 +#: js/blocks/GraphicsBlocks.js:733 msgid "The Set XY block moves the mouse to a specific position on the screen." msgstr "" -#: js/GraphicsBlocks.js:739 +#: js/blocks/GraphicsBlocks.js:739 msgid "The Set XY block moves the turtle to a specific position on the screen." msgstr "" -#: js/GraphicsBlocks.js:747 +#: js/blocks/GraphicsBlocks.js:747 msgid "set xy" msgstr "" -#: js/GraphicsBlocks.js:819 +#: js/blocks/GraphicsBlocks.js:819 msgid "The Right block turns the mouse to the right." msgstr "" -#: js/GraphicsBlocks.js:826 +#: js/blocks/GraphicsBlocks.js:826 msgid "The Right block turns the turtle to the right." msgstr "" -#: js/GraphicsBlocks.js:835 +#: js/blocks/GraphicsBlocks.js:835 msgid "right1" msgstr "" -#: js/GraphicsBlocks.js:835 +#: js/blocks/GraphicsBlocks.js:835 #: plugins/rodi.rtp:77 #: plugins/rodi.rtp:340 #: plugins/rodi.rtp:375 msgid "right" msgstr "" -#: js/GraphicsBlocks.js:899 +#: js/blocks/GraphicsBlocks.js:899 msgid "The Left block turns the mouse to the left." msgstr "" -#: js/GraphicsBlocks.js:906 +#: js/blocks/GraphicsBlocks.js:906 msgid "The Left block turns the turtle to the left." msgstr "" -#: js/GraphicsBlocks.js:915 +#: js/blocks/GraphicsBlocks.js:915 msgid "left1" msgstr "" -#: js/GraphicsBlocks.js:915 +#: js/blocks/GraphicsBlocks.js:915 #: plugins/rodi.rtp:79 #: plugins/rodi.rtp:339 #: plugins/rodi.rtp:362 msgid "left" msgstr "" -#: js/GraphicsBlocks.js:967 -#: js/temperament.js:734 -#: js/temperament.js:933 +#: js/blocks/GraphicsBlocks.js:967 +#: js/widgets/temperament.js:875 +#: js/widgets/temperament.js:1078 #: plugins/rodi.rtp:69 #: plugins/rodi.rtp:387 msgid "back" msgstr "" -#: js/GraphicsBlocks.js:976 +#: js/blocks/GraphicsBlocks.js:976 msgid "The Back block moves the mouse backward." msgstr "" -#: js/GraphicsBlocks.js:983 +#: js/blocks/GraphicsBlocks.js:983 msgid "The Back block moves the turtle backward." msgstr "" -#: js/GraphicsBlocks.js:1050 +#: js/blocks/GraphicsBlocks.js:1050 #: plugins/rodi.rtp:71 #: plugins/rodi.rtp:400 msgid "forward" msgstr "" -#: js/GraphicsBlocks.js:1059 +#: js/blocks/GraphicsBlocks.js:1059 msgid "The Forward block moves the mouse forward." msgstr "" -#: js/GraphicsBlocks.js:1066 +#: js/blocks/GraphicsBlocks.js:1066 msgid "The Forward block moves the turtle forward." msgstr "" -#: js/GraphicsBlocks.js:1154 -#: js/GraphicsBlocks.js:1172 +#: js/blocks/GraphicsBlocks.js:1154 +#: js/blocks/GraphicsBlocks.js:1172 msgid "wrap" msgstr "" -#: js/OrnamentBlocks.js:32 -msgid "staccato factor" -msgstr "" - -#: js/OrnamentBlocks.js:108 -msgid "slur factor" -msgstr "" - -#: js/OrnamentBlocks.js:217 -#: js/OrnamentBlocks.js:309 -#.TRANS: the neighbor refers to a neighboring note, e.g., D is a neighbor of C -msgid "neighbor" -msgstr "" - -#: js/OrnamentBlocks.js:293 -msgid "The Neighbor block rapidly switches between neighboring pitches." -msgstr "" - -#: js/OrnamentBlocks.js:364 -msgid "glide" -msgstr "" - -#: js/OrnamentBlocks.js:479 -#: js/OrnamentBlocks.js:643 -msgid "slur" -msgstr "" - -#: js/OrnamentBlocks.js:558 -#: js/OrnamentBlocks.js:710 -#.TRANS: play each note sharply detached from the others -msgid "staccato" -msgstr "" - -#: js/PenBlocks.js:24 +#: js/blocks/PenBlocks.js:30 msgid "purple" msgstr "" -#: js/PenBlocks.js:37 -#: js/SensorsBlocks.js:521 -#: plugins/rodi.rtp:219 -msgid "blue" -msgstr "" - -#: js/PenBlocks.js:50 -#: js/SensorsBlocks.js:577 -#: plugins/rodi.rtp:218 -msgid "green" -msgstr "" - -#: js/PenBlocks.js:63 +#: js/blocks/PenBlocks.js:80 msgid "yellow" msgstr "" -#: js/PenBlocks.js:76 +#: js/blocks/PenBlocks.js:96 #: plugins/nutrition.rtp:164 msgid "orange" msgstr "" -#: js/PenBlocks.js:89 -#: js/SensorsBlocks.js:633 -#: plugins/rodi.rtp:217 -msgid "red" -msgstr "" - -#: js/PenBlocks.js:102 +#: js/blocks/PenBlocks.js:128 msgid "white" msgstr "" -#: js/PenBlocks.js:115 +#: js/blocks/PenBlocks.js:144 msgid "black" msgstr "" -#: js/PenBlocks.js:128 +#: js/blocks/PenBlocks.js:163 msgid "begin fill" msgstr "" -#: js/PenBlocks.js:143 +#: js/blocks/PenBlocks.js:190 msgid "end fill" msgstr "" -#: js/PenBlocks.js:159 -#: js/PenBlocks.js:386 +#: js/blocks/PenBlocks.js:212 +#: js/blocks/PenBlocks.js:560 #.TRANS: set the background color msgid "background" msgstr "" -#: js/PenBlocks.js:206 -#: js/DictActions.js:71 -#: js/DictActions.js:149 -#: js/DictActions.js:186 +#: js/blocks/PenBlocks.js:274 +#: js/turtleactions/DictActions.js:71 +#: js/turtleactions/DictActions.js:138 +#: js/turtleactions/DictActions.js:170 msgid "grey" msgstr "" -#: js/PenBlocks.js:210 +#: js/blocks/PenBlocks.js:282 msgid "The Grey block returns the current pen grey value." msgstr "" -#: js/PenBlocks.js:243 -#: js/DictActions.js:69 -#: js/DictActions.js:147 -#: js/DictActions.js:185 +#: js/blocks/PenBlocks.js:340 +#: js/turtleactions/DictActions.js:69 +#: js/turtleactions/DictActions.js:136 +#: js/turtleactions/DictActions.js:169 msgid "shade" msgstr "" -#: js/PenBlocks.js:247 +#: js/blocks/PenBlocks.js:347 msgid "The Shade block returns the current pen shade value." msgstr "" -#: js/PenBlocks.js:280 -#: js/DictActions.js:67 -#: js/DictActions.js:145 -#: js/DictActions.js:184 +#: js/blocks/PenBlocks.js:405 +#: js/turtleactions/DictActions.js:67 +#: js/turtleactions/DictActions.js:134 +#: js/turtleactions/DictActions.js:168 msgid "color" msgstr "" -#: js/PenBlocks.js:285 +#: js/blocks/PenBlocks.js:415 msgid "The Color block returns the current pen color." msgstr "" -#: js/PenBlocks.js:318 -#: js/DictActions.js:73 -#: js/DictActions.js:151 -#: js/DictActions.js:187 +#: js/blocks/PenBlocks.js:470 +#: js/turtleactions/DictActions.js:73 +#: js/turtleactions/DictActions.js:140 +#: js/turtleactions/DictActions.js:171 msgid "pen size" msgstr "" -#: js/PenBlocks.js:322 +#: js/blocks/PenBlocks.js:474 msgid "The Pen size block returns the current pen size value." msgstr "" -#: js/PenBlocks.js:355 +#: js/blocks/PenBlocks.js:513 msgid "set font" msgstr "" -#: js/PenBlocks.js:358 +#: js/blocks/PenBlocks.js:518 msgid "The Set font block sets the font used by the Show block." msgstr "" -#: js/PenBlocks.js:391 +#: js/blocks/PenBlocks.js:567 msgid "The Background block sets the window background color." msgstr "" -#: js/PenBlocks.js:408 +#: js/blocks/PenBlocks.js:598 msgid "The Hollow line block creates a line with a hollow center." msgstr "" -#: js/PenBlocks.js:415 +#: js/blocks/PenBlocks.js:606 #.TRANS: draw a line logo has a hollow space down its center msgid "hollow line" msgstr "" -#: js/PenBlocks.js:462 +#: js/blocks/PenBlocks.js:675 msgid "The Fill block fills in a shape with a color." msgstr "" -#: js/PenBlocks.js:470 +#: js/blocks/PenBlocks.js:684 #.TRANS: fill in as a solid color msgid "fill" msgstr "" -#: js/PenBlocks.js:527 +#: js/blocks/PenBlocks.js:761 #.TRANS: raise up the pen so logo it does not draw when it is moved msgid "pen up" msgstr "" -#: js/PenBlocks.js:532 +#: js/blocks/PenBlocks.js:768 msgid "The Pen-up block raises the pen so that it does not draw." msgstr "" -#: js/PenBlocks.js:552 +#: js/blocks/PenBlocks.js:802 #.TRANS: put down the pen so logo it draws when it is moved msgid "pen down" msgstr "" -#: js/PenBlocks.js:557 +#: js/blocks/PenBlocks.js:810 msgid "The Pen-down block lowers the pen so that it draws." msgstr "" -#: js/PenBlocks.js:577 +#: js/blocks/PenBlocks.js:844 #.TRANS: set the width of the line drawn by the pen msgid "set pen size" msgstr "" -#: js/PenBlocks.js:583 +#: js/blocks/PenBlocks.js:854 msgid "The Set-pen-size block changes the size of the pen." msgstr "" -#: js/PenBlocks.js:623 +#: js/blocks/PenBlocks.js:913 #.TRANS: set degree of translucence of the pen color msgid "set translucency" msgstr "" -#: js/PenBlocks.js:627 +#: js/blocks/PenBlocks.js:921 msgid "The Set translucency block changes the opacity of the pen." msgstr "" -#: js/PenBlocks.js:668 +#: js/blocks/PenBlocks.js:981 msgid "set hue" msgstr "" -#: js/PenBlocks.js:672 +#: js/blocks/PenBlocks.js:989 msgid "The Set hue block changes the color of the pen." msgstr "" -#: js/PenBlocks.js:711 +#: js/blocks/PenBlocks.js:1047 msgid "set shade" msgstr "" -#: js/PenBlocks.js:717 +#: js/blocks/PenBlocks.js:1057 msgid "The Set-shade block changes the pen color from dark to light." msgstr "" -#: js/PenBlocks.js:757 +#: js/blocks/PenBlocks.js:1111 #.TRANS: set the level of vividness of the pen color msgid "set grey" msgstr "" -#: js/PenBlocks.js:761 +#: js/blocks/PenBlocks.js:1119 msgid "The Set grey block changes the vividness of the pen color." msgstr "" -#: js/PenBlocks.js:800 +#: js/blocks/PenBlocks.js:1172 msgid "set color" msgstr "" -#: js/PenBlocks.js:806 +#: js/blocks/PenBlocks.js:1182 msgid "The Set-color block changes the pen color." msgstr "" -#: js/VolumeBlocks.js:35 -msgid "synth volume" -msgstr "" - -#: js/VolumeBlocks.js:39 -msgid "The Synth volume block returns the current volume of the current synthesizer." -msgstr "" - -#: js/VolumeBlocks.js:47 -#: js/musicutils.js:730 -#: js/synthutils.js:56 -#.TRANS: musical instrument -msgid "piano" -msgstr "" - -#: js/VolumeBlocks.js:105 -msgid "master volume" -msgstr "" - -#: js/VolumeBlocks.js:109 -msgid "The Master volume block returns the master volume." -msgstr "" - -#: js/VolumeBlocks.js:355 -#: js/VolumeBlocks.js:524 -msgid "set synth volume" -msgstr "" - -#: js/VolumeBlocks.js:362 -#: js/VolumeBlocks.js:545 -msgid "synth" -msgstr "" - -#: js/VolumeBlocks.js:403 -#: js/VolumeBlocks.js:577 -#: js/VolumeBlocks.js:740 -#: js/VolumeActions.js:173 -msgid "Setting volume to 0." -msgstr "" - -#: js/VolumeBlocks.js:440 -msgid "Synth not found" -msgstr "" - -#: js/VolumeBlocks.js:494 -msgid "set drum volume" -msgstr "" - -#: js/VolumeBlocks.js:530 -msgid "The Set synth volume block will change the volume of a particular synth," -msgstr "" - -#: js/VolumeBlocks.js:532 -msgid "eg guitar violin snare drum etc." -msgstr "" - -#: js/VolumeBlocks.js:534 -msgid "The default volume is 50." -msgstr "" - -#: js/VolumeBlocks.js:536 -msgid "The range is 0 for silence to 100 for full volume." -msgstr "" - -#: js/VolumeBlocks.js:597 -msgid "set panning" -msgstr "" - -#: js/VolumeBlocks.js:603 -msgid "The Set Panning block sets the panning for all synthesizers." -msgstr "" - -#: js/VolumeBlocks.js:625 -msgid "Warning: Sound is coming out from only the left or right side." -msgstr "" - -#: js/VolumeBlocks.js:647 -#: js/VolumeBlocks.js:695 -msgid "set master volume" -msgstr "" - -#: js/VolumeBlocks.js:653 -msgid "The Set master volume block sets the volume for all synthesizers." -msgstr "" - -#: js/VolumeBlocks.js:784 -msgid "The Set relative volume block changes the volume of the contained notes." -msgstr "" - -#: js/VolumeBlocks.js:791 -msgid "set relative volume" -msgstr "" - -#: js/VolumeBlocks.js:857 -msgid "decrescendo" -msgstr "" - -#: js/VolumeBlocks.js:921 -msgid "crescendo" -msgstr "" - -#: js/ToneBlocks.js:34 -msgid "oscillator" -msgstr "" - -#: js/ToneBlocks.js:44 -#: js/timbre.js:1562 -#.TRANS: Partials refers to the number of sine waves combined into the sound. -msgid "partials" -msgstr "" - -#: js/ToneBlocks.js:76 -msgid "You are adding multiple oscillator blocks." -msgstr "" - -#: js/ToneBlocks.js:144 -#: js/timbre.js:1225 -#.TRANS: a duo synthesizer combines a synth with a sequencer -msgid "duo synth" -msgstr "" - -#: js/ToneBlocks.js:149 -msgid "The Duo synth block is a duo-frequency modulator used to define a timbre." -msgstr "" - -#: js/ToneBlocks.js:157 -#: js/timbre.js:1476 -msgid "vibrato rate" -msgstr "" - -#: js/ToneBlocks.js:157 -msgid "vibrato intensity" -msgstr "" - -#: js/ToneBlocks.js:185 -#: js/timbre.js:1221 -#.TRANS: AM (amplitude modulation) synthesizer -msgid "AM synth" -msgstr "" - -#: js/ToneBlocks.js:189 -msgid "The AM synth block is an amplitude modulator used to define a timbre." -msgstr "" - -#: js/ToneBlocks.js:224 -#: js/timbre.js:1223 -#.TRANS: FM (frequency modulation) synthesizer -msgid "FM synth" -msgstr "" - -#: js/ToneBlocks.js:228 -msgid "The FM synth block is a frequency modulator used to define a timbre." +#: js/blocks/PitchBlocks.js:141 +#.TRANS: musical transposition (adjustment of pitch up or down) +msgid "transposition" msgstr "" -#: js/ToneBlocks.js:262 -msgid "partial" +#: js/blocks/PitchBlocks.js:168 +#.TRANS: step down one note in current musical scale +msgid "scalar step down" msgstr "" -#: js/ToneBlocks.js:265 -msgid "The Partial block is used to specify a weight for a specific partial harmonic." +#: js/blocks/PitchBlocks.js:172 +msgid "The Scalar step down block returns the number of semi-tones down to the previous note in the current key and mode." msgstr "" -#: js/ToneBlocks.js:284 -#.TRANS: partials are weighted components in a harmonic series -msgid "Partial weight must be between 0 and 1." +#: js/blocks/PitchBlocks.js:190 +#.TRANS: step up one note in current musical scale +msgid "scalar step up" msgstr "" -#: js/ToneBlocks.js:297 -#.TRANS: partials are weighted components in a harmonic series -msgid "Partial block should be used inside of a Weighted-partials block." +#: js/blocks/PitchBlocks.js:194 +msgid "The Scalar step up block returns the number of semi-tones up to the next note in the current key and mode." msgstr "" -#: js/ToneBlocks.js:325 -#.TRANS: partials are weighted components in a harmonic series -msgid "weighted partials" +#: js/blocks/PitchBlocks.js:212 +#.TRANS: the change measured in half-steps between the current pitch and the previous pitch +msgid "change in pitch" msgstr "" -#: js/ToneBlocks.js:383 -msgid "The Harmonic block will add harmonics to the contained notes." +#: js/blocks/PitchBlocks.js:216 +msgid "The Change in pitch block is the difference (in half steps) between the current pitch being played and the previous pitch played." msgstr "" -#: js/ToneBlocks.js:390 -#.TRANS: A harmonic is an overtone. -msgid "harmonic" +#: js/blocks/PitchBlocks.js:243 +#.TRANS: the change measured in scale-steps between the current pitch and the previous pitch +msgid "scalar change in pitch" msgstr "" -#: js/ToneBlocks.js:431 -msgid "The Distortion block adds distortion to the pitch." +#: js/blocks/PitchBlocks.js:250 +#: js/blocks/PitchBlocks.js:432 +#: js/blocks/PitchBlocks.js:1667 +#: js/turtleactions/DictActions.js:89 +#: js/widgets/temperament.js:610 +#: js/widgets/temperament.js:614 +#: js/widgets/temperament.js:855 +#.TRANS: convert current note to piano key (1-88) +#.TRANS: a mapping of pitch to the 88 piano keys +msgid "pitch number" msgstr "" -#: js/ToneBlocks.js:438 -#: js/timbre.js:2100 -#.TRANS: distortion is an alteration in the sound -msgid "distortion" +#: js/blocks/PitchBlocks.js:256 +msgid "The Pitch number block is the value of the pitch of the note currently being played." msgstr "" -#: js/ToneBlocks.js:487 -msgid "The Tremolo block adds a wavering effect." +#: js/blocks/PitchBlocks.js:329 +#: js/blocks/PitchBlocks.js:433 +#.TRANS: the current pitch expressed in Hertz +msgid "pitch in hertz" msgstr "" -#: js/ToneBlocks.js:495 -#: js/timbre.js:2092 -#.TRANS: a wavering effect in a musical tone -msgid "tremolo" +#: js/blocks/PitchBlocks.js:334 +msgid "The Pitch in Hertz block is the value in Hertz of the pitch of the note currently being played." msgstr "" -#: js/ToneBlocks.js:500 -#: js/ToneBlocks.js:569 -#: js/ToneBlocks.js:630 -#: js/ToneBlocks.js:689 -#: js/timbre.js:2134 -#: js/timbre.js:2222 -#: js/timbre.js:2317 -#: js/timbre.js:2419 -#.TRANS: rate at which tremolo wavers -msgid "rate" +#: js/blocks/PitchBlocks.js:367 +#: js/turtleactions/DictActions.js:87 +msgid "current pitch" msgstr "" -#: js/ToneBlocks.js:502 -#: js/ToneBlocks.js:630 -#: js/timbre.js:2137 -#: js/timbre.js:2328 -#.TRANS: amplitude of tremolo waver -msgid "depth" +#: js/blocks/PitchBlocks.js:373 +msgid "The Current Pitch block is used with the Pitch Converter block. In the example above, current pitch, sol 4, is displayed as 392 hertz." msgstr "" -#: js/ToneBlocks.js:559 -msgid "The Phaser block adds a sweeping sound." +#: js/blocks/PitchBlocks.js:410 +msgid "This block converts the pitch value of the last note played into different formats such as hertz, letter name, pitch number, et al." msgstr "" -#: js/ToneBlocks.js:566 -#: js/timbre.js:2098 -#.TRANS: alter the phase of the sound -msgid "phaser" +#: js/blocks/PitchBlocks.js:434 +msgid "alphabet" msgstr "" -#: js/ToneBlocks.js:569 -#: js/timbre.js:2422 -msgid "octaves" +#: js/blocks/PitchBlocks.js:436 +#.TRANS: Translate as "alphabet class" +msgid "letter class" msgstr "" -#: js/ToneBlocks.js:569 -#: js/timbre.js:2425 -msgid "base frequency" +#: js/blocks/PitchBlocks.js:437 +msgid "solfege class" msgstr "" -#: js/ToneBlocks.js:619 -msgid "The Chorus block adds a chorus effect." +#: js/blocks/PitchBlocks.js:438 +msgid "staff y" msgstr "" -#: js/ToneBlocks.js:627 -#: js/timbre.js:2096 -#.TRANS: musical effect to simulate a choral sound -msgid "chorus" +#: js/blocks/PitchBlocks.js:439 +msgid "solfege syllable" msgstr "" -#: js/ToneBlocks.js:630 -msgid "delay" +#: js/blocks/PitchBlocks.js:440 +msgid "pitch class" msgstr "" -#: js/ToneBlocks.js:678 -msgid "The Vibrato block adds a rapid, slight variation in pitch." +#: js/blocks/PitchBlocks.js:441 +msgid "scalar class" msgstr "" -#: js/ToneBlocks.js:686 -#: js/timbre.js:2094 -#.TRANS: a rapid, slight variation in pitch -msgid "vibrato" +#: js/blocks/PitchBlocks.js:443 +msgid "nth degree" msgstr "" -#: js/ToneBlocks.js:689 -#: js/timbre.js:2221 -msgid "intensity" +#: js/blocks/PitchBlocks.js:444 +msgid "pitch to shade" msgstr "" -#: js/ToneBlocks.js:733 -#.TRANS: select synthesizer -msgid "set synth" +#: js/blocks/PitchBlocks.js:445 +msgid "pitch to color" msgstr "" -#: js/ToneBlocks.js:804 -msgid "synth name" +#: js/blocks/PitchBlocks.js:629 +#: js/widgets/musickeyboard.js:735 +#.TRANS: MIDI is a technical standard for electronic music +msgid "MIDI" msgstr "" -#: js/ToneBlocks.js:842 -msgid "set default instrument" +#: js/blocks/PitchBlocks.js:642 +#.TRANS: set an offset associated with the numeric piano keyboard mapping +msgid "set pitch number offset" msgstr "" -#: js/ToneBlocks.js:895 -#: js/ToneBlocks.js:943 -#.TRANS: set the characteristics of a custom instrument -msgid "set instrument" +#: js/blocks/PitchBlocks.js:645 +msgid "The Set pitch number offset block is used to set the offset for mapping pitch numbers to pitch and octave." msgstr "" -#: js/ToneBlocks.js:898 -#: js/ToneBlocks.js:926 -#: js/ToneBlocks.js:932 -msgid "The Set instrument block selects a voice for the synthesizer," +#: js/blocks/PitchBlocks.js:679 +#.TRANS: convert piano key number (1-88) to pitch +msgid "number to pitch" msgstr "" -#: js/ToneBlocks.js:900 -#: js/ToneBlocks.js:934 -msgid "eg guitar piano violin or cello." +#: js/blocks/PitchBlocks.js:682 +msgid "The Number to pitch block will convert a pitch number to a pich name." msgstr "" -#: js/ToneBlocks.js:1015 -msgid "Import a sound file to use as an instrument and set its pitch center." +#: js/blocks/PitchBlocks.js:715 +#.TRANS: convert piano key number (1-88) to octave +msgid "number to octave" msgstr "" -#: js/ToneBlocks.js:1110 -msgid "Upload a sound file to connect with the sample block." +#: js/blocks/PitchBlocks.js:717 +msgid "The Number to octave block will convert a pitch number to an octave." msgstr "" -#: js/MeterBlocks.js:34 -#.TRANS: musical meter (time signature), e.g., 4:4 -msgid "current meter" +#: js/blocks/PitchBlocks.js:726 +msgid "y to pitch" msgstr "" -#: js/MeterBlocks.js:85 -#.TRANS: number of beats per minute -msgid "beat factor" +#: js/blocks/PitchBlocks.js:729 +msgid "Y to pitch block will convert a staff y position to corresponding pitch notation." msgstr "" -#: js/MeterBlocks.js:161 -msgid "The Beats per minute block returns the current beats per minute." +#: js/blocks/PitchBlocks.js:841 +msgid "accidental selector" msgstr "" -#: js/MeterBlocks.js:169 -#: js/status.js:152 -#.TRANS: number of beats played per minute -msgid "beats per minute2" +#: js/blocks/PitchBlocks.js:844 +msgid "The Accidental selector block is used to choose between double-sharp, sharp, natural, flat, and double-flat." msgstr "" -#: js/MeterBlocks.js:169 -#: js/MeterBlocks.js:1056 -#: js/MeterBlocks.js:1133 -#: js/MeterBlocks.js:1211 -#.TRANS: sets tempo by defining a beat and beats per minute -msgid "beats per minute" +#: js/blocks/PitchBlocks.js:858 +msgid "Pitch can be specified in terms of ni dha pa ma ga re sa." msgstr "" -#: js/MeterBlocks.js:233 -#.TRANS: count of current musical measure in meter -msgid "measure count" +#: js/blocks/PitchBlocks.js:872 +msgid "Pitch can be specified in terms of C D E F G A B." msgstr "" -#: js/MeterBlocks.js:241 -msgid "The Measure count block returns the current measure." +#: js/blocks/PitchBlocks.js:884 +msgid "solfege" msgstr "" -#: js/MeterBlocks.js:290 -#.TRANS: count of current beat in the meter -msgid "beat count" +#: js/blocks/PitchBlocks.js:887 +msgid "Pitch can be specified in terms of do re mi fa sol la ti." msgstr "" -#: js/MeterBlocks.js:300 -#: js/MeterBlocks.js:311 -#: js/MeterBlocks.js:565 -#: js/MeterBlocks.js:576 -msgid "The Beat count block is the number of the current beat," +#: js/blocks/PitchBlocks.js:922 +msgid "The Invert block rotates any contained notes around a target note." msgstr "" -#: js/MeterBlocks.js:313 -#: js/MeterBlocks.js:578 -msgid "eg 1, 2, 3, or 4." +#: js/blocks/PitchBlocks.js:929 +#.TRANS: pitch inversion rotates a pitch around another pitch +msgid "invert" msgstr "" -#: js/MeterBlocks.js:368 -#.TRANS: count the number of notes -msgid "sum note values" +#: js/blocks/PitchBlocks.js:968 +#.TRANS: pitch inversion rotates a pitch around another pitch (odd number) +msgid "invert (odd)" msgstr "" -#: js/MeterBlocks.js:376 -#: js/MeterBlocks.js:440 -msgid "The Note counter block can be used to count the number of contained notes." +#: js/blocks/PitchBlocks.js:1001 +#.TRANS: pitch inversion rotates a pitch around another pitch (even number) +msgid "invert (even)" msgstr "" -#: js/MeterBlocks.js:432 -#.TRANS: count the number of notes -msgid "note counter" +#: js/blocks/PitchBlocks.js:1022 +#.TRANS: register is the octave of the current pitch +msgid "register" msgstr "" -#: js/MeterBlocks.js:496 -#.TRANS: number of whole notes that have been played -msgid "whole notes played" +#: js/blocks/PitchBlocks.js:1026 +msgid "The Register block provides an easy way to modify the register (octave) of the notes that follow it." msgstr "" -#: js/MeterBlocks.js:505 -msgid "The Whole notes played block returns the total number of whole notes played." +#: js/blocks/PitchBlocks.js:1047 +#.TRANS: cents are units used to specify the ratio between pitches. There are 100 cents between successive notes. +msgid "50 cents" msgstr "" -#: js/MeterBlocks.js:555 -#: js/DictActions.js:83 -#.TRANS: number of notes that have been played -msgid "notes played" +#: js/blocks/PitchBlocks.js:1102 +msgid "The Semi-tone transposition block will shift the pitches contained inside Note blocks up (or down) by half steps." msgstr "" -#: js/MeterBlocks.js:653 -msgid "The No clock block decouples the notes from the master clock." +#: js/blocks/PitchBlocks.js:1104 +msgid "In the example shown above, sol is shifted up to sol#." msgstr "" -#: js/MeterBlocks.js:661 -#.TRANS: don't lock notes to master clock -msgid "no clock" +#: js/blocks/PitchBlocks.js:1110 +#.TRANS: adjust the amount of shift (up or down) of a pitch +msgid "semi-tone transpose" msgstr "" -#: js/MeterBlocks.js:700 -msgid "on weak beat do" +#: js/blocks/PitchBlocks.js:1143 +msgid "The Transpose by Ratio block will shift the pitches contained inside Note blocks up (or down) by a ratio" msgstr "" -#: js/MeterBlocks.js:705 -msgid "The On-weak-beat block lets you specify actions to take on weak (off) beats." +#: js/blocks/PitchBlocks.js:1149 +#.TRANS: adjust the amount of shift (up or down) of a pitch +msgid "transpose by ratio" msgstr "" -#: js/MeterBlocks.js:750 -msgid "on strong beat" +#: js/blocks/PitchBlocks.js:1232 +#.TRANS: down sixth means the note is five scale degrees below current note +msgid "down sixth" msgstr "" -#: js/MeterBlocks.js:758 -msgid "The On-strong-beat block lets you specify actions to take on specified beats." +#: js/blocks/PitchBlocks.js:1251 +#.TRANS: down third means the note is two scale degrees below current note +msgid "down third" msgstr "" -#: js/MeterBlocks.js:769 -msgid "beat" +#: js/blocks/PitchBlocks.js:1270 +#.TRANS: seventh means the note is the six scale degrees above current note +msgid "seventh" msgstr "" -#: js/MeterBlocks.js:813 -msgid "on every beat do" +#: js/blocks/PitchBlocks.js:1289 +#.TRANS: sixth means the note is the five scale degrees above current note +msgid "sixth" msgstr "" -#: js/MeterBlocks.js:821 -msgid "The On-every-beat block lets you specify actions to take on every beat." +#: js/blocks/PitchBlocks.js:1308 +#.TRANS: fifth means the note is the four scale degrees above current note +msgid "fifth" msgstr "" -#: js/MeterBlocks.js:874 -msgid "on every note do" +#: js/blocks/PitchBlocks.js:1328 +#.TRANS: fourth means the note is three scale degrees above current note +msgid "fourth" msgstr "" -#: js/MeterBlocks.js:882 -msgid "The On-every-note block lets you specify actions to take on every note." +#: js/blocks/PitchBlocks.js:1347 +#.TRANS: third means the note is two scale degrees above current note +msgid "third" msgstr "" -#: js/MeterBlocks.js:928 -#: js/MeterBlocks.js:999 -#.TRANS: sets tempo by defining a beat and beats per minute -msgid "master beats per minute" +#: js/blocks/PitchBlocks.js:1366 +#.TRANS: second means the note is one scale degree above current note +msgid "second" msgstr "" -#: js/MeterBlocks.js:952 -#: js/MeterBlocks.js:1078 -#: js/MeterBlocks.js:1135 -msgid "bpm" +#: js/blocks/PitchBlocks.js:1407 +msgid "The Scalar transposition block will shift the pitches contained inside Note blocks up (or down) the scale." msgstr "" -#: js/MeterBlocks.js:952 -#: js/MeterBlocks.js:1078 -#: js/MeterBlocks.js:1135 -msgid "beat value" +#: js/blocks/PitchBlocks.js:1409 +msgid "In the example shown above, sol is shifted up to la." msgstr "" -#: js/MeterBlocks.js:1024 -#: js/MeterBlocks.js:1167 -#: js/MeterBlocks.js:1241 -msgid "Beats per minute must be > 30." +#: js/blocks/PitchBlocks.js:1416 +#.TRANS: adjust the amount of shift (up or down) of a pitch by musical scale (scalar) steps +msgid "scalar transpose" msgstr "" -#: js/MeterBlocks.js:1027 -#: js/MeterBlocks.js:1170 -#: js/MeterBlocks.js:1244 -msgid "Maximum beats per minute is 1000." +#: js/blocks/PitchBlocks.js:1451 +msgid "The Accidental block is used to create sharps and flats" msgstr "" -#: js/MeterBlocks.js:1068 -msgid "The Beats per minute block sets the number of 1/4 notes per minute." +#: js/blocks/PitchBlocks.js:1458 +#.TRANS: An accidental is a modification to a pitch, e.g., sharp or flat. +msgid "accidental override" msgstr "" -#: js/MeterBlocks.js:1279 -#.TRANS: anacrusis -msgid "pickup" +#: js/blocks/PitchBlocks.js:1581 +msgid "The Hertz block (in combination with a Number block) will play a sound at the specified frequency." msgstr "" -#: js/MeterBlocks.js:1367 -msgid "number of beats" +#: js/blocks/PitchBlocks.js:1671 +msgid "The Pitch Number block will play a pitch associated by its number, e.g. 0 for C and 7 for G." msgstr "" -#: js/DictBlocks.js:77 -msgid "show dictionary" +#: js/blocks/PitchBlocks.js:1703 +#: js/blocks/PitchBlocks.js:1745 +#.TRANS: a numeric mapping of the notes in an octave based on the musical mode +#.TRANS: a numeric mapping of the notes in an octave based on the musical mode +msgid "nth modal pitch" msgstr "" -#: js/DictBlocks.js:129 -msgid "The Dictionary block returns a dictionary." +#: js/blocks/PitchBlocks.js:1706 +msgid "n^th Modal Pitch takes the pattern of pitches in semitones for a mode and makes each point a degree of the mode," msgstr "" -#: js/DictBlocks.js:197 -#: js/DictBlocks.js:339 -msgid "The Get-dict block returns a value in the dictionary for a specified key." +#: js/blocks/PitchBlocks.js:1708 +msgid "starting from 1 and regardless of tonal framework (i.e. not always 8 notes in the octave)" msgstr "" -#: js/DictBlocks.js:212 -#: js/DictBlocks.js:354 -#.TRANS: retrieve a value from the dictionary with a given key -msgid "get value" +#: js/blocks/PitchBlocks.js:1749 +msgid "N^th Modal Pitch takes a number as an input as the n^th degree for the given mode. 0 is the first position, 1 is the second, -1 is the note before the first etc." msgstr "" -#: js/DictBlocks.js:215 -#: js/DictBlocks.js:216 -#: js/DictBlocks.js:289 -#: js/DictBlocks.js:290 -#: js/DictBlocks.js:357 -#: js/DictBlocks.js:430 -#: js/DictBlocks.js:431 -msgid "key2" +#: js/blocks/PitchBlocks.js:1751 +msgid "The pitches change according to the mode specified without any need for respellings." msgstr "" -#: js/DictBlocks.js:271 -#: js/DictBlocks.js:411 -msgid "The Set-dict block sets a value in the dictionary for a specified key." +#: js/blocks/PitchBlocks.js:1790 +msgid "Scale Degree is a common convention in music. Scale Degree offers seven possible positions in the scale (1-7) and can be modified via accidentals." msgstr "" -#: js/DictBlocks.js:286 -#: js/DictBlocks.js:427 -#.TRANS: set a value in the dictionary for a given key -msgid "set value" +#: js/blocks/PitchBlocks.js:1792 +msgid "Scale Degree 1 is always the first pitch in a given scale, regardless of octave." msgstr "" -#: js/ExtrasBlocks.js:33 -msgid "fraction" +#: js/blocks/PitchBlocks.js:1814 +#.TRANS: step some number of notes in current musical scale +msgid "scalar step" msgstr "" -#: js/ExtrasBlocks.js:36 -msgid "Convert a float to a fraction" +#: js/blocks/PitchBlocks.js:1819 +msgid "The Scalar Step block (in combination with a Number block) will play the next pitch in a scale," msgstr "" -#: js/ExtrasBlocks.js:93 -msgid "save as ABC" +#: js/blocks/PitchBlocks.js:1821 +msgid "eg if the last note played was sol, Scalar Step 1 will play la." msgstr "" -#: js/ExtrasBlocks.js:96 -#: js/ExtrasBlocks.js:132 -#: js/ExtrasBlocks.js:168 -msgid "title" +#: js/blocks/PitchBlocks.js:1857 +msgid "The Pitch block specifies the pitch name and octave of a note that together determine the frequency of the note." msgstr "" -#: js/ExtrasBlocks.js:129 -msgid "save as Lilypond" +#: js/blocks/ProgramBlocks.js:33 +msgid "The Load-heap-from-app block loads the heap from a web page." msgstr "" -#: js/ExtrasBlocks.js:165 -msgid "save as SVG" +#: js/blocks/ProgramBlocks.js:44 +#.TRANS: load the heap contents from a URL +msgid "load heap from App" msgstr "" -#: js/ExtrasBlocks.js:216 -msgid "no background" +#: js/blocks/ProgramBlocks.js:95 +msgid "Error parsing JSON data:" msgstr "" -#: js/ExtrasBlocks.js:219 -msgid "The No background block eliminates the background from the saved SVG output." +#: js/blocks/ProgramBlocks.js:100 +msgid "404: Page not found" msgstr "" -#: js/ExtrasBlocks.js:247 -msgid "show blocks" +#: js/blocks/ProgramBlocks.js:133 +msgid "The Save-heap-to-app block saves the heap to a web page." msgstr "" -#: js/ExtrasBlocks.js:249 -msgid "The Show blocks block shows the blocks." +#: js/blocks/ProgramBlocks.js:144 +#.TRANS: save the heap contents to a URL +msgid "save heap to App" msgstr "" -#: js/ExtrasBlocks.js:274 -msgid "hide blocks" +#: js/blocks/ProgramBlocks.js:189 +msgid "Cannot find a valid heap for" msgstr "" -#: js/ExtrasBlocks.js:276 -msgid "The Hide blocks block hides the blocks." +#: js/blocks/ProgramBlocks.js:206 +msgid "The Load-heap block loads the heap from a file." msgstr "" -#: js/ExtrasBlocks.js:305 -#: js/ExtrasBlocks.js:335 -msgid "The Space block is used to add space between blocks." +#: js/blocks/ProgramBlocks.js:217 +#.TRANS: load the heap from a file +msgid "load heap" msgstr "" -#: js/ExtrasBlocks.js:373 -msgid "wait" +#: js/blocks/ProgramBlocks.js:270 +msgid "The file you selected does not contain a valid heap." msgstr "" -#: js/ExtrasBlocks.js:376 -msgid "The Wait block pauses the program for a specified number of seconds." +#: js/blocks/ProgramBlocks.js:275 +msgid "The loadHeap block needs a loadFile block." msgstr "" -#: js/ExtrasBlocks.js:430 -#: plugins/facebook.rtp:30 -msgid "comment" +#: js/blocks/ProgramBlocks.js:291 +msgid "The Set-heap block loads the heap." msgstr "" -#: js/ExtrasBlocks.js:466 -msgid "print" +#: js/blocks/ProgramBlocks.js:340 +msgid "The block you selected does not contain a valid heap." msgstr "" -#: js/ExtrasBlocks.js:473 -msgid "The Print block displays text at the top of the screen." +#: js/blocks/ProgramBlocks.js:343 +msgid "The Set heap block needs a heap." msgstr "" -#: js/ExtrasBlocks.js:579 -msgid "display grid" +#: js/blocks/ProgramBlocks.js:360 +msgid "The Load-dictionary block loads a dictionary from a file." msgstr "" -#: js/ExtrasBlocks.js:584 -msgid "The Display Grid Block changes the grid type" +#: js/blocks/ProgramBlocks.js:372 +#.TRANS: load a dictionary from a file +msgid "load dictionary" msgstr "" -#: js/ExtrasBlocks.js:686 -#: js/ExtrasBlocks.js:705 -#: js/ExtrasBlocks.js:728 -#: js/ExtrasBlocks.js:751 -#: js/ExtrasBlocks.js:769 -#: js/ExtrasBlocks.js:788 -#: js/ExtrasBlocks.js:807 -#: js/ExtrasBlocks.js:826 -msgid "unknown" +#: js/blocks/ProgramBlocks.js:390 +#: js/blocks/ProgramBlocks.js:658 +#: js/blocks/ToneBlocks.js:1025 +msgid "file" msgstr "" -#: js/SensorsBlocks.js:36 -msgid "The Input block prompts for keyboard input." +#: js/blocks/ProgramBlocks.js:444 +msgid "The file you selected does not contain a valid dictionary." msgstr "" -#: js/SensorsBlocks.js:46 -msgid "input" +#: js/blocks/ProgramBlocks.js:449 +msgid "The load dictionary block needs a load file block." msgstr "" -#: js/SensorsBlocks.js:64 -msgid "Input a value" +#: js/blocks/ProgramBlocks.js:466 +msgid "The Set-dictionary block loads a dictionary." msgstr "" -#: js/SensorsBlocks.js:126 -msgid "input value" +#: js/blocks/ProgramBlocks.js:477 +#.TRANS: load a dictionary from a JSON +msgid "set dictionary" msgstr "" -#: js/SensorsBlocks.js:131 -msgid "The Input-value block stores the input." +#: js/blocks/ProgramBlocks.js:546 +msgid "The block you selected does not contain a valid dictionary." msgstr "" -#: js/SensorsBlocks.js:238 -msgid "loudness" +#: js/blocks/ProgramBlocks.js:550 +msgid "The set dictionary block needs a dictionary." msgstr "" -#: js/SensorsBlocks.js:245 -msgid "The Loudness block returns the volume detected by the microphone." +#: js/blocks/ProgramBlocks.js:567 +msgid "The Save-heap block saves the heap to a file." msgstr "" -#: js/SensorsBlocks.js:300 -msgid "click" +#: js/blocks/ProgramBlocks.js:578 +#.TRANS: save the heap to a file +msgid "save heap" msgstr "" -#: js/SensorsBlocks.js:306 -msgid "The Click block triggers an event if a mouse has been clicked." +#: js/blocks/ProgramBlocks.js:629 +msgid "The Save-dictionary block saves a dictionary to a file." msgstr "" -#: js/SensorsBlocks.js:313 -msgid "The Click block triggers an event if a turtle has been clicked." +#: js/blocks/ProgramBlocks.js:640 +#.TRANS: save a dictionary to a file +msgid "save dictionary" msgstr "" -#: js/SensorsBlocks.js:342 -msgid "cursor over" +#: js/blocks/ProgramBlocks.js:720 +msgid "The Open palette block opens a palette." msgstr "" -#: js/SensorsBlocks.js:387 -msgid "cursor out" +#: js/blocks/ProgramBlocks.js:727 +msgid "open palette" msgstr "" -#: js/SensorsBlocks.js:433 -msgid "cursor button down" +#: js/blocks/ProgramBlocks.js:785 +msgid "The Delete block block removes a block." msgstr "" -#: js/SensorsBlocks.js:477 -msgid "cursor button up" +#: js/blocks/ProgramBlocks.js:797 +#.TRANS: Move this block to the trash. +msgid "delete block" msgstr "" -#: js/SensorsBlocks.js:638 -msgid "The Get red block returns the red component of the pixel under the mouse." +#: js/blocks/ProgramBlocks.js:861 +msgid "The Move block block moves a block." msgstr "" -#: js/SensorsBlocks.js:644 -msgid "The Get red block returns the red component of the pixel under the turtle." +#: js/blocks/ProgramBlocks.js:869 +#.TRANS: Move the position of a block on the screen. +msgid "move block" msgstr "" -#: js/SensorsBlocks.js:685 -#: plugins/rodi.rtp:216 -msgid "pixel color" +#: js/blocks/ProgramBlocks.js:881 +#: js/blocks/ProgramBlocks.js:1048 +msgid "block number" msgstr "" -#: js/SensorsBlocks.js:690 -msgid "The Get pixel block returns the color of the pixel under the mouse." +#: js/blocks/ProgramBlocks.js:935 +#.TRANS: Run program beginning at this block. +msgid "run block" msgstr "" -#: js/SensorsBlocks.js:696 -msgid "The Get pixel block returns the color of the pixel under the turtle." +#: js/blocks/ProgramBlocks.js:1025 +msgid "The Dock block block connections two blocks." msgstr "" -#: js/SensorsBlocks.js:758 -msgid "time" +#: js/blocks/ProgramBlocks.js:1036 +#.TRANS: We can connect a block to another block. +msgid "connect blocks" msgstr "" -#: js/SensorsBlocks.js:804 -msgid "cursor y" +#: js/blocks/ProgramBlocks.js:1048 +msgid "target block" msgstr "" -#: js/SensorsBlocks.js:809 -msgid "The Cursor Y block returns the vertical position of the mouse." +#: js/blocks/ProgramBlocks.js:1048 +msgid "connection number" msgstr "" -#: js/SensorsBlocks.js:845 -msgid "cursor x" +#: js/blocks/ProgramBlocks.js:1140 +msgid "The Make block block creates a new block." msgstr "" -#: js/SensorsBlocks.js:850 -msgid "The Cursor X block returns the horizontal position of the mouse." +#: js/blocks/ProgramBlocks.js:1152 +#.TRANS: Create a new block +msgid "make block" msgstr "" -#: js/SensorsBlocks.js:886 -msgid "mouse button" +#: js/blocks/ProgramBlocks.js:1285 +msgid "Cannot find block" msgstr "" -#: js/SensorsBlocks.js:888 -msgid "The Mouse-button block returns True if the mouse button is pressed." +#: js/blocks/ProgramBlocks.js:1304 +#: js/blocks/ProgramBlocks.js:1313 +msgid "Warning: block argument type mismatch" msgstr "" -#: js/SensorsBlocks.js:934 -msgid "to ASCII" +#: js/blocks/ProgramBlocks.js:1347 +msgid "The Open project block is used to open a project from a web page." msgstr "" -#: js/SensorsBlocks.js:938 -msgid "The To ASCII block converts numbers to letters." +#: js/blocks/ProgramBlocks.js:1357 +msgid "open project" msgstr "" -#: js/SensorsBlocks.js:1005 -msgid "The Keyboard block returns computer keyboard input." +#: js/blocks/ProgramBlocks.js:1410 +msgid "Please enter a valid URL." msgstr "" -#: js/IntervalsActions.js:216 -msgid "Adding missing pitch number 0." +#: js/blocks/ToneBlocks.js:34 +msgid "oscillator" msgstr "" -#: js/IntervalsActions.js:224 -msgid "Ignoring pitch numbers less than zero or greater than eleven." +#: js/blocks/ToneBlocks.js:42 +#: js/blocks/WidgetBlocks.js:179 +#: js/widgets/timbre.js:1558 +#: js/widgets/timbre.js:1808 +#.TRANS: there are different types (sine, triangle, square...) of oscillators. +#.TRANS: type of filter, e.g., lowpass, highpass, etc. +msgid "type" msgstr "" -#: js/IntervalsActions.js:230 -msgid "Ignoring duplicate pitch numbers." +#: js/blocks/ToneBlocks.js:44 +#: js/widgets/timbre.js:1562 +#.TRANS: Partials refers to the number of sine waves combined into the sound. +msgid "partials" msgstr "" -#: js/PitchActions.js:88 -msgid "The Scalar Step Block must be used inside of a Note Block." +#: js/blocks/ToneBlocks.js:76 +msgid "You are adding multiple oscillator blocks." msgstr "" -#: js/PitchActions.js:107 -msgid "The Scalar Step Block must be preceded by a Pitch Block." +#: js/blocks/ToneBlocks.js:144 +#: js/widgets/timbre.js:1225 +#.TRANS: a duo synthesizer combines a synth with a sequencer +msgid "duo synth" msgstr "" -#: js/DrumActions.js:231 -msgid "Noise Block: Did you mean to use a Note block?" +#: js/blocks/ToneBlocks.js:149 +msgid "The Duo synth block is a duo-frequency modulator used to define a timbre." msgstr "" -#: js/MeterActions.js:101 -#: js/MeterActions.js:139 -msgid "beats per minute must be greater than" +#: js/blocks/ToneBlocks.js:157 +#: js/widgets/timbre.js:1476 +msgid "vibrato rate" msgstr "" -#: js/MeterActions.js:111 -#: js/MeterActions.js:149 -msgid "maximum" +#: js/blocks/ToneBlocks.js:157 +msgid "vibrato intensity" msgstr "" -#: js/MeterActions.js:117 -#: js/MeterActions.js:155 -msgid "beats per minute is" +#: js/blocks/ToneBlocks.js:185 +#: js/widgets/timbre.js:1221 +#.TRANS: AM (amplitude modulation) synthesizer +msgid "AM synth" msgstr "" -#: js/ToneActions.js:134 -msgid "Vibrato intensity must be between 1 and 100." +#: js/blocks/ToneBlocks.js:189 +msgid "The AM synth block is an amplitude modulator used to define a timbre." msgstr "" -#: js/ToneActions.js:139 -msgid "Vibrato rate must be greater than 0." +#: js/blocks/ToneBlocks.js:224 +#: js/widgets/timbre.js:1223 +#.TRANS: FM (frequency modulation) synthesizer +msgid "FM synth" msgstr "" -#: js/ToneActions.js:192 -#: js/ToneActions.js:265 -#.TRANS: Depth is the intesity of the tremolo or chorus effect. -msgid "Depth is out of range." +#: js/blocks/ToneBlocks.js:228 +msgid "The FM synth block is a frequency modulator used to define a timbre." msgstr "" -#: js/ToneActions.js:301 -msgid "Distortion must be from 0 to 100." +#: js/blocks/ToneBlocks.js:262 +msgid "partial" msgstr "" -#: js/ToneActions.js:332 -#.TRANS: partials components in a harmonic series -msgid "Partial must be greater than or equal to 0." +#: js/blocks/ToneBlocks.js:265 +msgid "The Partial block is used to specify a weight for a specific partial harmonic." msgstr "" -#: js/ToneActions.js:378 -#: js/ToneActions.js:417 -#: js/ToneActions.js:456 -#: js/timbre.js:782 -msgid "Unable to use synth due to existing oscillator" +#: js/blocks/ToneBlocks.js:284 +#.TRANS: partials are weighted components in a harmonic series +msgid "Partial weight must be between 0 and 1." msgstr "" -#: js/ToneActions.js:388 -#: js/ToneActions.js:427 -msgid "The input cannot be negative." +#: js/blocks/ToneBlocks.js:297 +#.TRANS: partials are weighted components in a harmonic series +msgid "Partial block should be used inside of a Weighted-partials block." msgstr "" -#: js/DictActions.js:75 -#: js/DictActions.js:153 -#: js/DictActions.js:188 -msgid "font" +#: js/blocks/ToneBlocks.js:325 +#.TRANS: partials are weighted components in a harmonic series +msgid "weighted partials" msgstr "" -#: js/musicutils.js:363 -#: js/musicutils.js:471 -#: js/pitchdrummatrix.js:151 -#: js/musickeyboard.js:2563 -msgid "rest" +#: js/blocks/ToneBlocks.js:383 +msgid "The Harmonic block will add harmonics to the contained notes." msgstr "" -#: js/musicutils.js:565 -#.TRANS: ordinal number. Please keep exactly one space between each number. -msgid "1st 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th" +#: js/blocks/ToneBlocks.js:390 +#.TRANS: A harmonic is an overtone. +msgid "harmonic" msgstr "" -#: js/musicutils.js:629 -#: js/musicutils.js:812 -#: js/musicutils.js:911 -#.TRANS: augmented is a music term related to intervals -msgid "augmented" +#: js/blocks/ToneBlocks.js:431 +msgid "The Distortion block adds distortion to the pitch." msgstr "" -#: js/musicutils.js:631 -#: js/musicutils.js:813 -#: js/musicutils.js:910 -#.TRANS: diminished is a music term related to intervals and mode -msgid "diminished" +#: js/blocks/ToneBlocks.js:438 +#: js/widgets/timbre.js:2100 +#.TRANS: distortion is an alteration in the sound +msgid "distortion" msgstr "" -#: js/musicutils.js:639 -#.TRANS: twelve semi-tone scale for music -msgid "chromatic" +#: js/blocks/ToneBlocks.js:487 +msgid "The Tremolo block adds a wavering effect." msgstr "" -#: js/musicutils.js:640 -msgid "algerian" +#: js/blocks/ToneBlocks.js:495 +#: js/widgets/timbre.js:2092 +#.TRANS: a wavering effect in a musical tone +msgid "tremolo" msgstr "" -#: js/musicutils.js:641 -msgid "spanish" +#: js/blocks/ToneBlocks.js:500 +#: js/blocks/ToneBlocks.js:569 +#: js/blocks/ToneBlocks.js:630 +#: js/blocks/ToneBlocks.js:689 +#: js/widgets/timbre.js:2134 +#: js/widgets/timbre.js:2222 +#: js/widgets/timbre.js:2317 +#: js/widgets/timbre.js:2419 +#.TRANS: rate at which tremolo wavers +msgid "rate" msgstr "" -#: js/musicutils.js:643 -#.TRANS: modal scale in music -msgid "octatonic" +#: js/blocks/ToneBlocks.js:502 +#: js/blocks/ToneBlocks.js:630 +#: js/widgets/timbre.js:2137 +#: js/widgets/timbre.js:2328 +#.TRANS: amplitude of tremolo waver +msgid "depth" msgstr "" -#: js/musicutils.js:645 -#.TRANS: harmonic major scale in music -msgid "harmonic major" +#: js/blocks/ToneBlocks.js:559 +msgid "The Phaser block adds a sweeping sound." msgstr "" -#: js/musicutils.js:647 -#.TRANS: natural minor scales in music -msgid "natural minor" +#: js/blocks/ToneBlocks.js:566 +#: js/widgets/timbre.js:2098 +#.TRANS: alter the phase of the sound +msgid "phaser" msgstr "" -#: js/musicutils.js:649 -#.TRANS: harmonic minor scale in music -msgid "harmonic minor" +#: js/blocks/ToneBlocks.js:569 +#: js/turtleactions/IntervalsActions.js:114 +#: js/widgets/timbre.js:2422 +msgid "octaves" msgstr "" -#: js/musicutils.js:651 -#.TRANS: melodic minor scale in music -msgid "melodic minor" +#: js/blocks/ToneBlocks.js:569 +#: js/widgets/timbre.js:2425 +msgid "base frequency" msgstr "" -#: js/musicutils.js:655 -#.TRANS: modal scale for music -msgid "dorian" +#: js/blocks/ToneBlocks.js:619 +msgid "The Chorus block adds a chorus effect." msgstr "" -#: js/musicutils.js:657 -#.TRANS: modal scale for music -msgid "phrygian" +#: js/blocks/ToneBlocks.js:627 +#: js/widgets/timbre.js:2096 +#.TRANS: musical effect to simulate a choral sound +msgid "chorus" msgstr "" -#: js/musicutils.js:659 -#.TRANS: modal scale for music -msgid "lydian" +#: js/blocks/ToneBlocks.js:630 +msgid "delay" msgstr "" -#: js/musicutils.js:661 -#.TRANS: modal scale for music -msgid "mixolydian" +#: js/blocks/ToneBlocks.js:678 +msgid "The Vibrato block adds a rapid, slight variation in pitch." msgstr "" -#: js/musicutils.js:665 -#.TRANS: modal scale for music -msgid "locrian" +#: js/blocks/ToneBlocks.js:686 +#: js/widgets/timbre.js:2094 +#.TRANS: a rapid, slight variation in pitch +msgid "vibrato" msgstr "" -#: js/musicutils.js:667 -#.TRANS: minor jazz scale for music -msgid "jazz minor" +#: js/blocks/ToneBlocks.js:689 +#: js/widgets/timbre.js:2221 +msgid "intensity" msgstr "" -#: js/musicutils.js:669 -#.TRANS: bebop scale for music -msgid "bebop" +#: js/blocks/ToneBlocks.js:733 +#.TRANS: select synthesizer +msgid "set synth" msgstr "" -#: js/musicutils.js:670 -msgid "arabic" +#: js/blocks/ToneBlocks.js:804 +msgid "synth name" msgstr "" -#: js/musicutils.js:671 -msgid "byzantine" +#: js/blocks/ToneBlocks.js:842 +msgid "set default instrument" msgstr "" -#: js/musicutils.js:673 -#.TRANS: musical scale for music by Verdi -msgid "enigmatic" +#: js/blocks/ToneBlocks.js:895 +#: js/blocks/ToneBlocks.js:943 +#.TRANS: set the characteristics of a custom instrument +msgid "set instrument" msgstr "" -#: js/musicutils.js:674 -msgid "ethiopian" +#: js/blocks/ToneBlocks.js:898 +#: js/blocks/ToneBlocks.js:926 +#: js/blocks/ToneBlocks.js:932 +msgid "The Set instrument block selects a voice for the synthesizer," msgstr "" -#: js/musicutils.js:676 -#.TRANS: Ethiopic scale for music -msgid "geez" +#: js/blocks/ToneBlocks.js:900 +#: js/blocks/ToneBlocks.js:934 +msgid "eg guitar piano violin or cello." msgstr "" -#: js/musicutils.js:677 -msgid "hindu" +#: js/blocks/ToneBlocks.js:1015 +msgid "Import a sound file to use as an instrument and set its pitch center." msgstr "" -#: js/musicutils.js:678 -msgid "hungarian" +#: js/blocks/ToneBlocks.js:1110 +msgid "Upload a sound file to connect with the sample block." msgstr "" -#: js/musicutils.js:680 -#.TRANS: minor Romanian scale for music -msgid "romanian minor" +#: js/blocks/VolumeBlocks.js:35 +msgid "synth volume" msgstr "" -#: js/musicutils.js:681 -msgid "spanish gypsy" +#: js/blocks/VolumeBlocks.js:39 +msgid "The Synth volume block returns the current volume of the current synthesizer." msgstr "" -#: js/musicutils.js:683 -#.TRANS: musical scale for Mid-Eastern music -msgid "maqam" +#: js/blocks/VolumeBlocks.js:105 +msgid "master volume" msgstr "" -#: js/musicutils.js:685 -#.TRANS: minor blues scale for music -msgid "minor blues" +#: js/blocks/VolumeBlocks.js:109 +msgid "The Master volume block returns the master volume." msgstr "" -#: js/musicutils.js:687 -#.TRANS: major blues scale for music -msgid "major blues" +#: js/blocks/VolumeBlocks.js:355 +#: js/blocks/VolumeBlocks.js:524 +msgid "set synth volume" msgstr "" -#: js/musicutils.js:688 -msgid "whole tone" +#: js/blocks/VolumeBlocks.js:362 +#: js/blocks/VolumeBlocks.js:545 +msgid "synth" msgstr "" -#: js/musicutils.js:690 -#.TRANS: pentatonic is a general term that means "five note scale". This scale is typically known as "minor pentatonic" -msgid "minor pentatonic" +#: js/blocks/VolumeBlocks.js:403 +#: js/blocks/VolumeBlocks.js:577 +#: js/blocks/VolumeBlocks.js:740 +#: js/turtleactions/VolumeActions.js:173 +msgid "Setting volume to 0." msgstr "" -#: js/musicutils.js:692 -#.TRANS: pentatonic is a general term that means "five note scale". This scale is typically known as "major pentatonic" -msgid "major pentatonic" +#: js/blocks/VolumeBlocks.js:440 +msgid "Synth not found" msgstr "" -#: js/musicutils.js:693 -msgid "chinese" +#: js/blocks/VolumeBlocks.js:494 +msgid "set drum volume" msgstr "" -#: js/musicutils.js:694 -msgid "egyptian" +#: js/blocks/VolumeBlocks.js:530 +msgid "The Set synth volume block will change the volume of a particular synth," msgstr "" -#: js/musicutils.js:696 -#.TRANS: https://en.wikipedia.org/wiki/Hirajoshi_scale NOTE: There are three different versions of this scale -msgid "hirajoshi" +#: js/blocks/VolumeBlocks.js:532 +msgid "eg guitar violin snare drum etc." msgstr "" -#: js/musicutils.js:697 -msgid "Japan" +#: js/blocks/VolumeBlocks.js:534 +msgid "The default volume is 50." msgstr "" -#: js/musicutils.js:699 -#.TRANS: https://en.wikipedia.org/wiki/In_scale and https://en.wikipedia.org/wiki/Sakura_Sakura -msgid "in" +#: js/blocks/VolumeBlocks.js:536 +msgid "The range is 0 for silence to 100 for full volume." msgstr "" -#: js/musicutils.js:701 -#.TRANS: https://en.wikipedia.org/wiki/Miny%C5%8D_scale -msgid "minyo" +#: js/blocks/VolumeBlocks.js:597 +msgid "set panning" msgstr "" -#: js/musicutils.js:703 -#.TRANS: Italian mathematician -msgid "fibonacci" +#: js/blocks/VolumeBlocks.js:603 +msgid "The Set Panning block sets the panning for all synthesizers." msgstr "" -#: js/musicutils.js:708 -#: js/musicutils.js:1106 -#.TRANS: lowpass filter -msgid "lowpass" +#: js/blocks/VolumeBlocks.js:625 +msgid "Warning: Sound is coming out from only the left or right side." msgstr "" -#: js/musicutils.js:710 -#: js/musicutils.js:1107 -#.TRANS: bandpass filter -msgid "bandpass" +#: js/blocks/VolumeBlocks.js:647 +#: js/blocks/VolumeBlocks.js:695 +msgid "set master volume" msgstr "" -#: js/musicutils.js:712 -#: js/musicutils.js:1108 -#.TRANS: high-shelf filter -msgid "highshelf" +#: js/blocks/VolumeBlocks.js:653 +msgid "The Set master volume block sets the volume for all synthesizers." msgstr "" -#: js/musicutils.js:714 -#: js/musicutils.js:1109 -#.TRANS: low-shelf filter -msgid "lowshelf" +#: js/blocks/VolumeBlocks.js:784 +msgid "The Set relative volume block changes the volume of the contained notes." msgstr "" -#: js/musicutils.js:716 -#: js/musicutils.js:1110 -#.TRANS: notch-shelf filter -msgid "notch" +#: js/blocks/VolumeBlocks.js:791 +msgid "set relative volume" msgstr "" -#: js/musicutils.js:718 -#: js/musicutils.js:1111 -#.TRANS: all-pass filter -msgid "allpass" +#: js/blocks/VolumeBlocks.js:857 +msgid "decrescendo" msgstr "" -#: js/musicutils.js:720 -#: js/musicutils.js:1112 -#.TRANS: peaking filter -msgid "peaking" +#: js/blocks/VolumeBlocks.js:921 +msgid "crescendo" msgstr "" -#: js/musicutils.js:731 -#: js/synthutils.js:58 -#.TRANS: musical instrument -msgid "violin" +#: js/blocks/WidgetBlocks.js:81 +#.TRANS: sound envelope (ADSR) +msgid "envelope" msgstr "" -#: js/musicutils.js:732 -#: js/synthutils.js:60 -#.TRANS: viola musical instrument -msgid "viola" +#: js/blocks/WidgetBlocks.js:89 +#.TRANS: Attack time is the time taken for initial run-up of level from nil to peak, beginning when the key is first pressed. +msgid "attack" msgstr "" -#: js/musicutils.js:733 -#: js/synthutils.js:98 -#.TRANS: xylophone musical instrument -msgid "xylophone" +#: js/blocks/WidgetBlocks.js:91 +#.TRANS: Decay time is the time taken for the subsequent run down from the attack level to the designated sustain level. +msgid "decay" msgstr "" -#: js/musicutils.js:734 -#: js/synthutils.js:120 -#.TRANS: vibraphone musical instrument -msgid "vibraphone" +#: js/blocks/WidgetBlocks.js:93 +#.TRANS: Sustain level is the level during the main sequence of the sound's duration, until the key is released. +msgid "sustain" msgstr "" -#: js/musicutils.js:735 -#: js/synthutils.js:62 -#.TRANS: musical instrument -msgid "cello" +#: js/blocks/WidgetBlocks.js:95 +#.TRANS: Release time is the time taken for the level to decay from the sustain level to zero after the key is released. +msgid "release" msgstr "" -#: js/musicutils.js:737 -#: js/synthutils.js:66 -#.TRANS: viola musical instrument -msgid "double bass" +#: js/blocks/WidgetBlocks.js:113 +msgid "Attack value should be from 0 to 100." msgstr "" -#: js/musicutils.js:738 -#: js/synthutils.js:68 -#: js/rhythmruler.js:2119 -#.TRANS: musical instrument -msgid "guitar" +#: js/blocks/WidgetBlocks.js:116 +msgid "Decay value should be from 0 to 100." msgstr "" -#: js/musicutils.js:739 -#: js/synthutils.js:70 -#.TRANS: musical instrument -msgid "acoustic guitar" +#: js/blocks/WidgetBlocks.js:119 +msgid "Sustain value should be from 0 to 100." msgstr "" -#: js/musicutils.js:740 -#: js/synthutils.js:72 -#.TRANS: musical instrument -msgid "flute" +#: js/blocks/WidgetBlocks.js:122 +msgid "Release value should be from 0-100." msgstr "" -#: js/musicutils.js:741 -#: js/synthutils.js:74 -#.TRANS: musical instrument -msgid "clarinet" +#: js/blocks/WidgetBlocks.js:140 +msgid "You are adding multiple envelope blocks." msgstr "" -#: js/musicutils.js:742 -#: js/synthutils.js:76 -#.TRANS: musical instrument -msgid "saxophone" +#: js/blocks/WidgetBlocks.js:171 +#.TRANS: a filter removes some unwanted components from a signal +msgid "filter" msgstr "" -#: js/musicutils.js:743 -#: js/synthutils.js:78 -#.TRANS: musical instrument -msgid "tuba" +#: js/blocks/WidgetBlocks.js:181 +#: js/widgets/timbre.js:1818 +#.TRANS: rolloff is the steepness of a change in frequency. +msgid "rolloff" msgstr "" -#: js/musicutils.js:744 -#: js/synthutils.js:80 -#.TRANS: musical instrument -msgid "trumpet" +#: js/blocks/WidgetBlocks.js:213 +#.TRANS: rolloff is the steepness of a change in frequency. +msgid "Rolloff value should be either -12, -24, -48, or -96 decibels/octave." msgstr "" -#: js/musicutils.js:745 -#: js/synthutils.js:82 -#.TRANS: musical instrument -msgid "oboe" +#: js/blocks/WidgetBlocks.js:252 +msgid "The Temperament tool is used to define custom tuning." msgstr "" -#: js/musicutils.js:746 -#: js/synthutils.js:84 -#.TRANS: musical instrument -msgid "trombone" +#: js/blocks/WidgetBlocks.js:332 +#: js/blocks/WidgetBlocks.js:1573 +#: js/widgets/sampler.js:547 +msgid "Upload a sample and adjust its pitch center." msgstr "" -#: js/musicutils.js:747 -#: js/synthutils.js:100 -#.TRANS: polytone synthesizer -msgid "electronic synth" +#: js/blocks/WidgetBlocks.js:339 +#.TRANS: the speed at music is should be played. +msgid "sampler" msgstr "" -#: js/musicutils.js:748 -#: js/synthutils.js:102 -#.TRANS: simple monotone synthesizer -msgid "simple 1" +#: js/blocks/WidgetBlocks.js:517 +msgid "The Meter block opens a tool to select strong beats for the meter." msgstr "" -#: js/musicutils.js:749 -msgid "simple 2" +#: js/blocks/WidgetBlocks.js:573 +msgid "The oscilloscope block opens a tool to visualize waveforms." msgstr "" -#: js/musicutils.js:750 -msgid "simple 3" +#: js/blocks/WidgetBlocks.js:578 +msgid "oscilloscope" msgstr "" -#: js/musicutils.js:751 -msgid "simple 4" +#: js/blocks/WidgetBlocks.js:645 +msgid "The Custom mode block opens a tool to explore musical mode (the spacing of the notes in a scale)." msgstr "" -#: js/musicutils.js:753 -#: js/synthutils.js:49 -#.TRANS: brown noise synthesizer -msgid "brown noise" +#: js/blocks/WidgetBlocks.js:651 +#.TRANS: musical mode is the pattern of half-steps in an octave, e.g., Major or Minor modes +msgid "custom mode" msgstr "" -#: js/musicutils.js:754 -#: js/synthutils.js:51 -#.TRANS: pink noise synthesizer -msgid "pink noise" +#: js/blocks/WidgetBlocks.js:700 +msgid "The Tempo block opens a metronome to visualize the beat." msgstr "" -#: js/musicutils.js:756 -#: js/synthutils.js:127 -#: js/rhythmruler.js:1670 -#: js/rhythmruler.js:1928 -#.TRANS: musical instrument -msgid "snare drum" +#: js/blocks/WidgetBlocks.js:762 +msgid "The Arpeggio Widget is used to compose chord sequences." msgstr "" -#: js/musicutils.js:757 -#: js/synthutils.js:129 -#.TRANS: musical instrument -msgid "kick drum" +#: js/blocks/WidgetBlocks.js:837 +msgid "The Pitch drum matrix is used to map pitches to drum sounds." msgstr "" -#: js/musicutils.js:758 -#: js/synthutils.js:131 -#.TRANS: musical instrument -msgid "tom tom" +#: js/blocks/WidgetBlocks.js:842 +#.TRANS: makes a mapping between pitches and drum sounds +msgid "pitch-drum mapper" msgstr "" -#: js/musicutils.js:759 -#: js/synthutils.js:133 -#.TRANS: musical instrument -msgid "floor tom" +#: js/blocks/WidgetBlocks.js:891 +msgid "You must have at least one pitch block and one drum block in the matrix." msgstr "" -#: js/musicutils.js:760 -#: js/synthutils.js:135 -#.TRANS: musical instrument -msgid "bass drum" +#: js/blocks/WidgetBlocks.js:920 +msgid "The Pitch slider tool to is used to generate pitches at selected frequencies." msgstr "" -#: js/musicutils.js:761 -#: js/synthutils.js:137 -#.TRANS: a drum made from an inverted cup -msgid "cup drum" +#: js/blocks/WidgetBlocks.js:925 +#.TRANS: widget to generate pitches using a slider +msgid "pitch slider" msgstr "" -#: js/musicutils.js:762 -#: js/synthutils.js:139 -#.TRANS: musical instrument -msgid "darbuka drum" +#: js/blocks/WidgetBlocks.js:977 +msgid "chromatic keyboard" msgstr "" -#: js/musicutils.js:763 -#: js/synthutils.js:143 -#.TRANS: musical instrument -msgid "hi hat" +#: js/blocks/WidgetBlocks.js:1011 +#: js/blocks/WidgetBlocks.js:1077 +#.TRANS: widget to generate pitches using a slider +msgid "music keyboard" msgstr "" -#: js/musicutils.js:764 -#: js/synthutils.js:145 -#.TRANS: a small metal bell -msgid "ride bell" +#: js/blocks/WidgetBlocks.js:1062 +#: js/blocks/WidgetBlocks.js:1069 +msgid "The Music keyboard block opens a piano keyboard that can be used to create notes." msgstr "" -#: js/musicutils.js:765 -#: js/synthutils.js:147 -#.TRANS: musical instrument -msgid "cow bell" +#: js/blocks/WidgetBlocks.js:1128 +msgid "The Pitch staircase tool to is used to generate pitches from a given ratio." msgstr "" -#: js/musicutils.js:766 -msgid "japanese drum" +#: js/blocks/WidgetBlocks.js:1135 +#.TRANS: generate a progressive sequence of pitches +msgid "pitch staircase" msgstr "" -#: js/musicutils.js:767 -#: js/synthutils.js:153 -#.TRANS: musical instrument -msgid "japanese bell" +#: js/blocks/WidgetBlocks.js:1222 +msgid "The Rhythm Maker block opens a tool to create drum machines." msgstr "" -#: js/musicutils.js:768 -#: js/synthutils.js:149 -#.TRANS: musical instrument -msgid "triangle bell" +#: js/blocks/WidgetBlocks.js:1291 +msgid "G major scale" msgstr "" -#: js/musicutils.js:769 -#: js/synthutils.js:151 -#.TRANS: musical instrument -msgid "finger cymbals" +#: js/blocks/WidgetBlocks.js:1326 +msgid "C major scale" msgstr "" -#: js/musicutils.js:770 -#: js/synthutils.js:155 -#.TRANS: a musically tuned set of bells -msgid "chime" +#: js/blocks/WidgetBlocks.js:1366 +msgid "The Phrase Maker block opens a tool to create musical phrases." msgstr "" -#: js/musicutils.js:771 -#: js/synthutils.js:157 -#.TRANS: a musical instrument -msgid "gong" +#: js/blocks/WidgetBlocks.js:1373 +#.TRANS: assigns pitch to a sequence of beats to generate a melody +msgid "phrase maker" msgstr "" -#: js/musicutils.js:772 -#: js/synthutils.js:159 -#.TRANS: sound effect -msgid "clang" +#: js/blocks/WidgetBlocks.js:1444 +msgid "You must have at least one pitch block and one rhythm block in the matrix." msgstr "" -#: js/musicutils.js:773 -#: js/synthutils.js:161 -#.TRANS: sound effect -msgid "crash" +#: js/blocks/WidgetBlocks.js:1503 +msgid "The Status block opens a tool for inspecting the status of Music Blocks as it is running." msgstr "" -#: js/musicutils.js:774 -#: js/synthutils.js:163 -#.TRANS: sound effect -msgid "bottle" +#: js/blocks/WidgetBlocks.js:1580 +#.TRANS: AI-generated music +msgid "aimusic" msgstr "" -#: js/musicutils.js:775 -#: js/synthutils.js:165 -#.TRANS: sound effect -msgid "clap" +#: js/turtleactions/MeterActions.js:101 +#: js/turtleactions/MeterActions.js:139 +msgid "beats per minute must be greater than" msgstr "" -#: js/musicutils.js:776 -#: js/synthutils.js:167 -#.TRANS: sound effect -msgid "slap" +#: js/turtleactions/MeterActions.js:111 +#: js/turtleactions/MeterActions.js:149 +msgid "maximum" msgstr "" -#: js/musicutils.js:777 -#: js/synthutils.js:169 -#.TRANS: sound effect -msgid "splash" +#: js/turtleactions/MeterActions.js:117 +#: js/turtleactions/MeterActions.js:155 +msgid "beats per minute is" msgstr "" -#: js/musicutils.js:778 -#: js/synthutils.js:171 -#.TRANS: sound effect -msgid "bubbles" +#: js/turtleactions/DictActions.js:75 +#: js/turtleactions/DictActions.js:142 +#: js/turtleactions/DictActions.js:172 +msgid "font" msgstr "" -#: js/musicutils.js:779 -#: js/synthutils.js:173 -#.TRANS: sound effect -msgid "raindrop" +#: js/turtleactions/DictActions.js:255 +msgid "Dictionary with this name does not exist" msgstr "" -#: js/musicutils.js:780 -#: js/synthutils.js:175 -#.TRANS: animal sound effect -msgid "cat" +#: js/turtleactions/DictActions.js:259 +msgid "Key with this name does not exist in " msgstr "" -#: js/musicutils.js:781 -#: js/synthutils.js:177 -#.TRANS: animal sound effect -msgid "cricket" +#: js/turtleactions/DrumActions.js:227 +msgid "Noise Block: Did you mean to use a Note block?" msgstr "" -#: js/musicutils.js:782 -#: js/synthutils.js:179 -#.TRANS: animal sound effect -msgid "dog" +#: js/turtleactions/IntervalsActions.js:113 +msgid "one" msgstr "" -#: js/musicutils.js:784 -#: js/synthutils.js:86 -#.TRANS: musical instrument -msgid "banjo" +#: js/turtleactions/IntervalsActions.js:113 +msgid "two" msgstr "" -#: js/musicutils.js:785 -#: js/synthutils.js:88 -#.TRANS: musical instrument -msgid "koto" +#: js/turtleactions/IntervalsActions.js:113 +msgid "three" msgstr "" -#: js/musicutils.js:786 -#: js/synthutils.js:90 -#.TRANS: musical instrument -msgid "dulcimer" +#: js/turtleactions/IntervalsActions.js:113 +msgid "four" msgstr "" -#: js/musicutils.js:787 -#: js/synthutils.js:92 -#.TRANS: musical instrument -msgid "electric guitar" +#: js/turtleactions/IntervalsActions.js:113 +msgid "five" msgstr "" -#: js/musicutils.js:788 -#: js/synthutils.js:94 -#.TRANS: musical instrument -msgid "bassoon" +#: js/turtleactions/IntervalsActions.js:113 +msgid "six" msgstr "" -#: js/musicutils.js:789 -#: js/synthutils.js:96 -#.TRANS: musical instrument -msgid "celeste" +#: js/turtleactions/IntervalsActions.js:113 +msgid "seven" msgstr "" -#: js/musicutils.js:791 -#: js/musicutils.js:1123 -#: js/musicutils.js:1131 -#: js/temperament.js:650 -#.TRANS: musical temperament -msgid "equal" +#: js/turtleactions/IntervalsActions.js:113 +msgid "eight" msgstr "" -#: js/musicutils.js:793 -#: js/musicutils.js:1125 -#: js/musicutils.js:1133 -#.TRANS: musical temperament -msgid "Pythagorean" +#: js/turtleactions/IntervalsActions.js:113 +msgid "nine" msgstr "" -#: js/musicutils.js:795 -#: js/musicutils.js:1124 -#: js/musicutils.js:1132 -#.TRANS: musical temperament -msgid "just intonation" +#: js/turtleactions/IntervalsActions.js:119 +msgid "a" msgstr "" -#: js/musicutils.js:797 -#: js/musicutils.js:1126 -#: js/musicutils.js:1127 -#: js/musicutils.js:1134 -#: js/musicutils.js:1135 -#.TRANS: musical temperament -msgid "meantone" +#: js/turtleactions/IntervalsActions.js:120 +msgid "below" msgstr "" -#: js/musicutils.js:814 -msgid "major 7th" +#: js/turtleactions/IntervalsActions.js:124 +msgid "above" msgstr "" -#: js/musicutils.js:815 -msgid "minor 7th" +#: js/turtleactions/IntervalsActions.js:131 +msgid "plus" msgstr "" -#: js/musicutils.js:816 -msgid "dominant 7th" +#: js/turtleactions/IntervalsActions.js:139 +msgid " below" msgstr "" -#: js/musicutils.js:817 -msgid "minor-major 7th" +#: js/turtleactions/IntervalsActions.js:257 +msgid "Adding missing pitch number 0." msgstr "" -#: js/musicutils.js:818 -msgid "fully-diminished 7th" +#: js/turtleactions/IntervalsActions.js:265 +msgid "Ignoring pitch numbers less than zero or greater than eleven." msgstr "" -#: js/musicutils.js:819 -msgid "half-diminished 7th" +#: js/turtleactions/IntervalsActions.js:271 +msgid "Ignoring duplicate pitch numbers." msgstr "" -#: js/musicutils.js:4379 -#: js/musicutils.js:4416 -msgid "current" +#: js/turtleactions/ToneActions.js:134 +msgid "Vibrato intensity must be between 1 and 100." msgstr "" -#: js/musicutils.js:4382 -#: js/musicutils.js:4407 -msgid "next" +#: js/turtleactions/ToneActions.js:139 +msgid "Vibrato rate must be greater than 0." msgstr "" -#: js/musicutils.js:4385 -#: js/musicutils.js:4412 -msgid "previous" +#: js/turtleactions/ToneActions.js:192 +#: js/turtleactions/ToneActions.js:265 +#.TRANS: Depth is the intesity of the tremolo or chorus effect. +msgid "Depth is out of range." msgstr "" -#: js/synthutils.js:104 -#.TRANS: simple monotone synthesizer -msgid "simple-2" +#: js/turtleactions/ToneActions.js:301 +msgid "Distortion must be from 0 to 100." msgstr "" -#: js/synthutils.js:106 -#.TRANS: simple monotone synthesizer -msgid "simple-3" +#: js/turtleactions/ToneActions.js:332 +#.TRANS: partials components in a harmonic series +msgid "Partial must be greater than or equal to 0." msgstr "" -#: js/synthutils.js:108 -#.TRANS: simple monotone synthesizer -msgid "simple-4" +#: js/turtleactions/ToneActions.js:378 +#: js/turtleactions/ToneActions.js:417 +#: js/turtleactions/ToneActions.js:456 +#: js/widgets/timbre.js:782 +msgid "Unable to use synth due to existing oscillator" msgstr "" -#: js/synthutils.js:141 -#.TRANS: musical instrument -msgid "taiko" +#: js/turtleactions/ToneActions.js:388 +#: js/turtleactions/ToneActions.js:427 +msgid "The input cannot be negative." msgstr "" -#: js/modewidget.js:86 -#: js/modewidget.js:88 -#: js/modewidget.js:642 -#: js/modewidget.js:644 -#: js/modewidget.js:712 -#: js/modewidget.js:714 -#: js/temperament.js:2078 -#: js/rhythmruler.js:189 -#: js/rhythmruler.js:1410 -#: js/rhythmruler.js:1412 -#: js/rhythmruler.js:1435 -#: js/rhythmruler.js:1437 -#: js/meterwidget.js:89 -#: js/meterwidget.js:91 +#: js/widgets/modewidget.js:86 +#: js/widgets/modewidget.js:88 +#: js/widgets/modewidget.js:642 +#: js/widgets/modewidget.js:644 +#: js/widgets/modewidget.js:712 +#: js/widgets/modewidget.js:714 +#: js/widgets/meterwidget.js:194 +#: js/widgets/meterwidget.js:196 +#: js/widgets/temperament.js:2236 +#: js/widgets/rhythmruler.js:457 +#: js/widgets/rhythmruler.js:1790 +#: js/widgets/rhythmruler.js:1792 +#: js/widgets/rhythmruler.js:1816 +#: js/widgets/rhythmruler.js:1818 msgid "Play all" msgstr "" -#: js/modewidget.js:115 -#: js/pitchstaircase.js:641 -#: js/phrasemaker.js:339 -#: js/pitchdrummatrix.js:94 -#: js/pitchslider.js:125 -#: js/temperament.js:2083 -#: js/musickeyboard.js:530 -#: js/timbre.js:756 -#: js/meterwidget.js:124 -#: js/arpeggio.js:103 +#: js/widgets/modewidget.js:115 +#: js/widgets/meterwidget.js:229 +#: js/widgets/pitchdrummatrix.js:166 +#: js/widgets/pitchslider.js:125 +#: js/widgets/pitchstaircase.js:641 +#: js/widgets/temperament.js:2244 +#: js/widgets/timbre.js:756 +#: js/widgets/arpeggio.js:103 +#: js/widgets/musickeyboard.js:688 +#: js/widgets/phrasemaker.js:550 msgid "Save" msgstr "" -#: js/modewidget.js:121 -#: js/pitchstaircase.js:686 -#: js/phrasemaker.js:356 -#: js/pitchdrummatrix.js:109 -#: js/musickeyboard.js:534 -#: js/rhythmruler.js:269 -#: js/arpeggio.js:118 +#: js/widgets/modewidget.js:121 +#: js/widgets/pitchdrummatrix.js:181 +#: js/widgets/pitchstaircase.js:686 +#: js/widgets/arpeggio.js:118 +#: js/widgets/musickeyboard.js:696 +#: js/widgets/phrasemaker.js:567 +#: js/widgets/rhythmruler.js:601 #.TRANS: clear all subdivisions from the ruler. msgid "Clear" msgstr "" -#: js/modewidget.js:127 +#: js/widgets/modewidget.js:127 msgid "Rotate counter clockwise" msgstr "" -#: js/modewidget.js:133 +#: js/widgets/modewidget.js:133 msgid "Rotate clockwise" msgstr "" -#: js/modewidget.js:139 +#: js/widgets/modewidget.js:139 msgid "Invert" msgstr "" -#: js/modewidget.js:145 -#: js/pitchstaircase.js:678 -#: js/rhythmruler.js:258 -#: js/timbre.js:963 +#: js/widgets/modewidget.js:145 +#: js/widgets/pitchstaircase.js:678 +#: js/widgets/timbre.js:963 +#: js/widgets/rhythmruler.js:578 msgid "Undo" msgstr "" -#: js/modewidget.js:163 +#: js/widgets/modewidget.js:163 #.TRANS: A circle of notes represents the musical mode. msgid "Click in the circle to select notes for the mode." msgstr "" -#: js/modewidget.js:1017 -#: js/pitchstaircase.js:580 -#: js/phrasemaker.js:4855 -#: js/temperament.js:1754 -#: js/rhythmruler.js:1865 -#: js/rhythmruler.js:2081 -#: js/tempo.js:414 +#: js/widgets/modewidget.js:1017 +#: js/widgets/pitchstaircase.js:580 +#: js/widgets/temperament.js:1929 +#: js/widgets/tempo.js:414 +#: js/widgets/phrasemaker.js:5356 +#: js/widgets/rhythmruler.js:2254 +#: js/widgets/rhythmruler.js:2472 msgid "New action block generated!" msgstr "" -#: js/oscilloscope.js:79 -msgid "Zoom In" -msgstr "" - -#: js/oscilloscope.js:88 -msgid "Zoom Out" -msgstr "" - -#: js/pitchstaircase.js:624 -msgid "Play chord" -msgstr "" - -#: js/pitchstaircase.js:632 -msgid "Play scale" +#: js/widgets/meterwidget.js:275 +msgid "Reset" msgstr "" -#: js/pitchstaircase.js:696 -msgid "Click on a note to create a new step." +#: js/widgets/meterwidget.js:301 +msgid "Click in the circle to select strong beats for the meter." msgstr "" -#: js/phrasemaker.js:363 -msgid "Export" +#: js/widgets/oscilloscope.js:79 +msgid "Zoom In" msgstr "" -#: js/phrasemaker.js:370 -msgid "Sort" +#: js/widgets/oscilloscope.js:88 +msgid "Zoom Out" msgstr "" -#: js/phrasemaker.js:373 -#: js/musickeyboard.js:559 -msgid "Add note" +#: js/widgets/pitchdrummatrix.js:356 +#: js/widgets/pitchdrummatrix.js:752 +msgid "Click in the grid to map notes to drums." msgstr "" -#: js/phrasemaker.js:764 -msgid "Click on the table to add notes." +#: js/widgets/pitchslider.js:103 +msgid "Move up" msgstr "" -#: js/phrasemaker.js:2414 -#: js/phrasemaker.js:2543 -msgid "tuplet value" +#: js/widgets/pitchslider.js:114 +msgid "Move down" msgstr "" -#: js/pitchdrummatrix.js:270 -#: js/pitchdrummatrix.js:639 -msgid "Click in the grid to map notes to drums." +#: js/widgets/pitchslider.js:136 +msgid "Click on the slider to create a note block." msgstr "" -#: js/pitchslider.js:103 -msgid "Move up" +#: js/widgets/pitchstaircase.js:624 +msgid "Play chord" msgstr "" -#: js/pitchslider.js:114 -msgid "Move down" +#: js/widgets/pitchstaircase.js:632 +msgid "Play scale" msgstr "" -#: js/pitchslider.js:136 -msgid "Click on the slider to create a note block." +#: js/widgets/pitchstaircase.js:696 +msgid "Click on a note to create a new step." msgstr "" -#: js/temperament.js:215 +#: js/widgets/temperament.js:321 msgid "back to 2:1 octave space" msgstr "" -#: js/temperament.js:323 +#: js/widgets/temperament.js:447 msgid "edit" msgstr "" -#: js/temperament.js:330 -#: js/temperament.js:332 -#: js/temperament.js:1336 -#: js/temperament.js:1338 +#: js/widgets/temperament.js:454 +#: js/widgets/temperament.js:456 +#: js/widgets/temperament.js:1493 +#: js/widgets/temperament.js:1495 msgid "close" msgstr "" -#: js/temperament.js:423 -#: js/temperament.js:736 -#: js/temperament.js:743 -#: js/temperament.js:845 -#: js/temperament.js:935 -#: js/temperament.js:942 -#: js/temperament.js:1015 -#: js/temperament.js:1284 -#: js/temperament.js:1354 -#: js/temperament.js:1430 +#: js/widgets/temperament.js:552 +#: js/widgets/temperament.js:877 +#: js/widgets/temperament.js:884 +#: js/widgets/temperament.js:986 +#: js/widgets/temperament.js:1080 +#: js/widgets/temperament.js:1087 +#: js/widgets/temperament.js:1160 +#: js/widgets/temperament.js:1433 +#: js/widgets/temperament.js:1511 +#: js/widgets/temperament.js:1596 msgid "done" msgstr "" -#: js/temperament.js:477 -#: js/temperament.js:482 -#: js/temperament.js:918 +#: js/widgets/temperament.js:610 +#: js/widgets/temperament.js:615 +#: js/widgets/temperament.js:1063 msgid "ratio" msgstr "" -#: js/temperament.js:483 +#: js/widgets/temperament.js:616 msgid "interval" msgstr "" -#: js/temperament.js:611 +#: js/widgets/temperament.js:744 msgid "non scalar" msgstr "" -#: js/temperament.js:650 +#: js/widgets/temperament.js:787 msgid "ratios" msgstr "" -#: js/temperament.js:650 +#: js/widgets/temperament.js:787 msgid "arbitrary" msgstr "" -#: js/temperament.js:719 +#: js/widgets/temperament.js:860 msgid "number of divisions" msgstr "" -#: js/temperament.js:741 -#: js/temperament.js:858 -#: js/temperament.js:940 -#: js/temperament.js:1033 +#: js/widgets/temperament.js:882 +#: js/widgets/temperament.js:999 +#: js/widgets/temperament.js:1085 +#: js/widgets/temperament.js:1178 msgid "preview" msgstr "" -#: js/temperament.js:788 +#: js/widgets/temperament.js:929 msgid "The Number of divisions is too large." msgstr "" -#: js/temperament.js:921 +#: js/widgets/temperament.js:1066 msgid "recursion" msgstr "" -#: js/temperament.js:1450 +#: js/widgets/temperament.js:1616 msgid "The octave ratio has changed. This changes temperament significantly." msgstr "" -#: js/temperament.js:2087 +#: js/widgets/temperament.js:2248 msgid "Table" msgstr "" -#: js/temperament.js:2185 +#: js/widgets/temperament.js:2356 msgid "Add pitches" msgstr "" -#: js/musickeyboard.js:570 -msgid "Metronome" +#: js/widgets/tempo.js:78 +#: js/widgets/tempo.js:97 +#: js/widgets/tempo.js:99 +#: js/widgets/aiwidget.js:134 +#: js/widgets/aiwidget.js:136 +#: js/widgets/rhythmruler.js:681 +#: js/widgets/rhythmruler.js:683 +#: js/widgets/rhythmruler.js:1864 +#: js/widgets/rhythmruler.js:1866 +#: js/widgets/sampler.js:180 +#: js/widgets/sampler.js:182 +msgid "Pause" msgstr "" -#: js/musickeyboard.js:1296 -#: plugins/rodi.rtp:193 -msgid "duration" +#: js/widgets/tempo.js:113 +msgid "Save tempo" msgstr "" -#: js/musickeyboard.js:2840 -msgid "New action blocks generated!" +#: js/widgets/tempo.js:144 +msgid "speed up" msgstr "" -#: js/musickeyboard.js:2841 -msgid "New action block generated" +#: js/widgets/tempo.js:150 +msgid "slow down" msgstr "" -#: js/musickeyboard.js:2984 -#: js/musickeyboard.js:2992 -msgid "MIDI device present." +#: js/widgets/tempo.js:194 +msgid "Adjust the tempo with the buttons." msgstr "" -#: js/musickeyboard.js:2995 -msgid "No MIDI device found." +#: js/widgets/tempo.js:261 +msgid "Please enter a number between 30 and 1000" msgstr "" -#: js/musickeyboard.js:3000 -msgid "Failed to get MIDI access in browser." +#: js/widgets/tempo.js:268 +#: js/widgets/tempo.js:271 +msgid "The beats per minute must be between 30 and 1000." msgstr "" -#: js/rhythmruler.js:202 -msgid "Save rhythms" +#: js/widgets/tempo.js:287 +msgid "The beats per minute must be below 1000." msgstr "" -#: js/rhythmruler.js:222 -msgid "Save drum machine" +#: js/widgets/tempo.js:303 +msgid "The beats per minute must be above 30" msgstr "" -#: js/rhythmruler.js:263 -#.TRANS: user can tap out a rhythm by clicking on a ruler. -msgid "Tap a rhythm" +#: js/widgets/timbre.js:766 +msgid "Synthesizer" msgstr "" -#: js/rhythmruler.js:342 -#: js/rhythmruler.js:344 -#: js/rhythmruler.js:1481 -#: js/rhythmruler.js:1483 -#: js/sampler.js:110 -#: js/sampler.js:112 -#: js/tempo.js:78 -#: js/tempo.js:97 -#: js/tempo.js:99 -msgid "Pause" +#: js/widgets/timbre.js:789 +msgid "Oscillator" msgstr "" -#: js/rhythmruler.js:478 -msgid "Click on the ruler to divide it." +#: js/widgets/timbre.js:840 +msgid "Envelope" msgstr "" -#: js/rhythmruler.js:603 -#: js/rhythmruler.js:605 -#: js/rhythmruler.js:804 -#: js/rhythmruler.js:806 -#: js/rhythmruler.js:1386 -#: js/rhythmruler.js:1388 -msgid "tap a rhythm" +#: js/widgets/timbre.js:886 +#: planet/js/GlobalTag.js:50 +#.TRANS: On the Planet, we use labels to tag projects. +msgid "Effects" msgstr "" -#: js/rhythmruler.js:1084 -msgid "Maximum value of 256 has been exceeded." +#: js/widgets/timbre.js:904 +msgid "Filter" msgstr "" -#: js/sampler.js:137 -msgid "Warning: Sample is bigger than 1MB." +#: js/widgets/timbre.js:946 +msgid "Add filter" msgstr "" -#: js/sampler.js:142 -msgid "Upload failed: Sample is not a .wav file." +#: js/widgets/timbre.js:987 +msgid "Click on buttons to open the timbre design tools." msgstr "" -#: js/sampler.js:164 -msgid "A new sample block was generated." +#: js/widgets/timbre.js:1273 +msgid "harmonicity" msgstr "" -#: js/sampler.js:255 -msgid "Upload sample" +#: js/widgets/timbre.js:1340 +#: js/widgets/timbre.js:1406 +msgid "modulation index" msgstr "" -#: js/sampler.js:306 -msgid "Save sample" +#: js/widgets/timbre.js:1484 +msgid "vibrato amount" msgstr "" -#: js/sampler.js:697 -#.TRANS: The reference tone is a sound used for comparison. -msgid "reference tone" +#: js/widgets/timbre.js:1919 +msgid "Filter already present." msgstr "" -#: js/tempo.js:113 -msgid "Save tempo" +#: js/widgets/timbre.js:2322 +msgid "delay (MS)" msgstr "" -#: js/tempo.js:144 -msgid "speed up" +#: js/widgets/timbre.js:2507 +msgid "distortion amount" msgstr "" -#: js/tempo.js:150 -msgid "slow down" +#: js/widgets/aiwidget.js:180 +#: js/widgets/sampler.js:227 +msgid "Warning: Sample is bigger than 1MB." msgstr "" -#: js/tempo.js:194 -msgid "Adjust the tempo with the buttons." +#: js/widgets/aiwidget.js:539 +msgid "New start block generated" msgstr "" -#: js/tempo.js:261 -msgid "Please enter a number between 30 and 1000" +#: js/widgets/aiwidget.js:541 +msgid "MIDI loading. This may take some time depending upon the number of notes in the track" msgstr "" -#: js/tempo.js:268 -#: js/tempo.js:271 -msgid "The beats per minute must be between 30 and 1000." +#: js/widgets/aiwidget.js:551 +#: js/widgets/sampler.js:254 +msgid "Upload failed: Sample is not a .wav file." msgstr "" -#: js/tempo.js:287 -msgid "The beats per minute must be below 1000." +#: js/widgets/aiwidget.js:679 +#: js/widgets/sampler.js:432 +msgid "Save sample" msgstr "" -#: js/tempo.js:303 -msgid "The beats per minute must be above 30" +#: js/widgets/aiwidget.js:701 +msgid "AI Music" msgstr "" -#: js/timbre.js:766 -msgid "Synthesizer" +#: js/widgets/arpeggio.js:239 +msgid "Click in the grid to add steps to the arpeggio." msgstr "" -#: js/timbre.js:789 -msgid "Oscillator" +#: js/widgets/help.js:95 +#: js/widgets/help.js:125 +#: js/widgets/help.js:146 +#: js/widgets/help.js:158 +#: js/widgets/help.js:376 +#: js/widgets/help.js:391 +msgid "Take a tour" msgstr "" -#: js/timbre.js:840 -msgid "Envelope" +#: js/widgets/musickeyboard.js:725 +#: js/widgets/phrasemaker.js:584 +msgid "Add note" msgstr "" -#: js/timbre.js:886 -#: js/GlobalTag.js:50 -#.TRANS: On the Planet, we use labels to tag projects. -msgid "Effects" +#: js/widgets/musickeyboard.js:744 +msgid "Metronome" +msgstr "" + +#: js/widgets/musickeyboard.js:1549 +#: plugins/rodi.rtp:193 +msgid "duration" +msgstr "" + +#: js/widgets/musickeyboard.js:3179 +msgid "New action blocks generated" +msgstr "" + +#: js/widgets/musickeyboard.js:3180 +msgid "New action block generated" msgstr "" -#: js/timbre.js:904 -msgid "Filter" +#: js/widgets/musickeyboard.js:3365 +#: js/widgets/musickeyboard.js:3373 +msgid "MIDI device present." msgstr "" -#: js/timbre.js:946 -msgid "Add filter" +#: js/widgets/musickeyboard.js:3376 +msgid "No MIDI device found." msgstr "" -#: js/timbre.js:987 -msgid "Click on buttons to open the timbre design tools." +#: js/widgets/musickeyboard.js:3386 +msgid "Failed to get MIDI access in browser." msgstr "" -#: js/timbre.js:1273 -msgid "harmonicity" +#: js/widgets/phrasemaker.js:574 +msgid "Export" msgstr "" -#: js/timbre.js:1340 -#: js/timbre.js:1406 -msgid "modulation index" +#: js/widgets/phrasemaker.js:581 +msgid "Sort" msgstr "" -#: js/timbre.js:1484 -msgid "vibrato amount" +#: js/widgets/phrasemaker.js:975 +msgid "Click on the table to add notes." msgstr "" -#: js/timbre.js:1919 -msgid "Filter already present." +#: js/widgets/phrasemaker.js:2677 +#: js/widgets/phrasemaker.js:2819 +msgid "tuplet value" msgstr "" -#: js/timbre.js:2322 -msgid "delay (MS)" +#: js/widgets/rhythmruler.js:486 +msgid "Save rhythms" msgstr "" -#: js/timbre.js:2507 -msgid "distortion amount" +#: js/widgets/rhythmruler.js:512 +msgid "Save drum machine" msgstr "" -#: js/meterwidget.js:170 -msgid "Reset" +#: js/widgets/rhythmruler.js:589 +#.TRANS: user can tap out a rhythm by clicking on a ruler. +msgid "Tap a rhythm" msgstr "" -#: js/meterwidget.js:196 -msgid "Click in the circle to select strong beats for the meter." +#: js/widgets/rhythmruler.js:817 +msgid "Click on the ruler to divide it." msgstr "" -#: js/arpeggio.js:239 -msgid "Click in the grid to add steps to the arpeggio." +#: js/widgets/rhythmruler.js:950 +#: js/widgets/rhythmruler.js:952 +#: js/widgets/rhythmruler.js:1152 +#: js/widgets/rhythmruler.js:1154 +#: js/widgets/rhythmruler.js:1765 +#: js/widgets/rhythmruler.js:1767 +msgid "tap a rhythm" msgstr "" -#: js/ProjectStorage.js:243 -msgid "anonymous" +#: js/widgets/rhythmruler.js:1459 +msgid "Maximum value of 256 has been exceeded." msgstr "" -#: js/GlobalCard.js:68 -msgid "Share" +#: js/widgets/sampler.js:237 +msgid "Recording started..." msgstr "" -#: js/GlobalCard.js:74 -msgid "Flags" +#: js/widgets/sampler.js:245 +msgid "Recording complete..." msgstr "" -#: js/LocalCard.js:36 -msgid "View published project" +#: js/widgets/sampler.js:283 +msgid "A new sample block was generated." msgstr "" -#: js/LocalCard.js:42 -msgid "Publish project" +#: js/widgets/sampler.js:378 +msgid "Upload sample" msgstr "" -#: js/LocalCard.js:51 -msgid "Edit project" +#: js/widgets/sampler.js:399 +msgid "Warning: Your sample cannot be loaded because it is >1MB." msgstr "" -#: js/LocalCard.js:52 -msgid "Delete project" +#: js/widgets/sampler.js:448 +msgid "Toggle Mic" msgstr "" -#: js/LocalCard.js:53 -msgid "Download project" +#: js/widgets/sampler.js:458 +msgid "Playback" msgstr "" -#: js/LocalCard.js:55 -msgid "Duplicate project" +#: js/widgets/sampler.js:979 +#.TRANS: The reference tone is a sound used for comparison. +msgid "reference tone" msgstr "" -#: js/GlobalTag.js:28 +#: planet/js/GlobalTag.js:28 #.TRANS: On the Planet, we use labels to tag projects. msgid "All Projects" msgstr "" -#: js/GlobalTag.js:30 -#: js/StringHelper.js:37 +#: planet/js/GlobalTag.js:30 +#: planet/js/StringHelper.js:37 #.TRANS: On the Planet, we use labels to tag projects. msgid "My Projects" msgstr "" -#: js/GlobalTag.js:32 +#: planet/js/GlobalTag.js:32 #.TRANS: On the Planet, we use labels to tag projects. msgid "Examples" msgstr "" -#: js/GlobalTag.js:34 +#: planet/js/GlobalTag.js:34 #.TRANS: On the Planet, we use labels to tag projects. msgid "Music" msgstr "" -#: js/GlobalTag.js:36 +#: planet/js/GlobalTag.js:36 #.TRANS: On the Planet, we use labels to tag projects. msgid "Art" msgstr "" -#: js/GlobalTag.js:38 +#: planet/js/GlobalTag.js:38 #.TRANS: On the Planet, we use labels to tag projects. msgid "Math" msgstr "" -#: js/GlobalTag.js:40 +#: planet/js/GlobalTag.js:40 #.TRANS: On the Planet, we use labels to tag projects. msgid "Interactive" msgstr "" -#: js/GlobalTag.js:42 +#: planet/js/GlobalTag.js:42 #.TRANS: On the Planet, we use labels to tag projects. msgid "Design" msgstr "" -#: js/GlobalTag.js:44 +#: planet/js/GlobalTag.js:44 #.TRANS: On the Planet, we use labels to tag projects. msgid "Game" msgstr "" -#: js/GlobalTag.js:46 +#: planet/js/GlobalTag.js:46 #.TRANS: On the Planet, we use labels to tag projects. msgid "Media" msgstr "" -#: js/GlobalTag.js:48 +#: planet/js/GlobalTag.js:48 #.TRANS: On the Planet, we use labels to tag projects. msgid "Sensors" msgstr "" -#: js/GlobalTag.js:52 +#: planet/js/GlobalTag.js:52 #.TRANS: On the Planet, we use labels to tag projects. msgid "Code Snippet" msgstr "" -#: js/helper.js:149 -#: js/StringHelper.js:49 -msgid "Show more tags" +#: planet/js/LocalCard.js:36 +msgid "View published project" msgstr "" -#: js/helper.js:150 -msgid "Show fewer tags" +#: planet/js/LocalCard.js:42 +msgid "Publish project" +msgstr "" + +#: planet/js/LocalCard.js:51 +msgid "Edit project" +msgstr "" + +#: planet/js/LocalCard.js:52 +msgid "Delete project" +msgstr "" + +#: planet/js/LocalCard.js:53 +msgid "Download project" +msgstr "" + +#: planet/js/LocalCard.js:55 +msgid "Duplicate project" +msgstr "" + +#: planet/js/ProjectStorage.js:243 +msgid "anonymous" +msgstr "" + +#: planet/js/SaveInterface.js:34 +msgid "Open in Music Blocks" +msgstr "" + +#: planet/js/SaveInterface.js:35 +msgid "Open in Turtle Blocks" +msgstr "" + +#: planet/js/GlobalCard.js:68 +msgid "Share" +msgstr "" + +#: planet/js/GlobalCard.js:74 +msgid "Flags" +msgstr "" + +#: planet/js/GlobalPlanet.js:35 +msgid "No results found." +msgstr "" + +#: planet/js/GlobalPlanet.js:51 +msgid "Remix of" +msgstr "" + +#: planet/js/GlobalPlanet.js:509 +msgid "Cannot connect to server" msgstr "" -#: js/ProjectViewer.js:30 +#: planet/js/ProjectViewer.js:30 msgid "Error: Report could not be submitted. Try again later." msgstr "" -#: js/ProjectViewer.js:31 +#: planet/js/ProjectViewer.js:31 msgid "Thank you for reporting this project. A moderator will review the project shortly, to verify violation of the Sugar Labs Code of Conduct." msgstr "" -#: js/ProjectViewer.js:32 -#: js/StringHelper.js:62 -#: js/StringHelper.js:64 -#: js/StringHelper.js:68 +#: planet/js/ProjectViewer.js:32 +#: planet/js/StringHelper.js:62 +#: planet/js/StringHelper.js:64 +#: planet/js/StringHelper.js:68 msgid "Report Project" msgstr "" -#: js/ProjectViewer.js:33 -#: js/StringHelper.js:63 +#: planet/js/ProjectViewer.js:33 +#: planet/js/StringHelper.js:63 msgid "Project Reported" msgstr "" -#: js/ProjectViewer.js:34 +#: planet/js/ProjectViewer.js:34 msgid "Report description required" msgstr "" -#: js/ProjectViewer.js:35 +#: planet/js/ProjectViewer.js:35 msgid "Report description too long" msgstr "" -#: js/StringHelper.js:30 +#: planet/js/Publisher.js:30 +msgid "Feature unavailable - cannot connect to server. Reload Music Blocks to try again." +msgstr "" + +#: planet/js/Publisher.js:220 +#: planet/js/Publisher.js:237 +msgid "This field is required" +msgstr "" + +#: planet/js/Publisher.js:227 +msgid "Title too long" +msgstr "" + +#: planet/js/Publisher.js:244 +msgid "Description too long" +msgstr "" + +#: planet/js/Publisher.js:341 +msgid "Server Error" +msgstr "" + +#: planet/js/Publisher.js:341 +msgid "Try Again" +msgstr "" + +#: planet/js/StringHelper.js:30 msgid "Planet" msgstr "" -#: js/StringHelper.js:31 +#: planet/js/StringHelper.js:31 msgid "Close Planet" msgstr "" -#: js/StringHelper.js:32 +#: planet/js/StringHelper.js:32 msgid "Open project from file" msgstr "" -#: js/StringHelper.js:34 +#: planet/js/StringHelper.js:34 msgid "Local" msgstr "" -#: js/StringHelper.js:35 +#: planet/js/StringHelper.js:35 msgid "Global" msgstr "" -#: js/StringHelper.js:36 +#: planet/js/StringHelper.js:36 msgid "Search for a project" msgstr "" -#: js/StringHelper.js:38 +#: planet/js/StringHelper.js:38 msgid "Publish Project" msgstr "" -#: js/StringHelper.js:40 +#: planet/js/StringHelper.js:40 msgid "Tags (max 5)" msgstr "" -#: js/StringHelper.js:41 -#: js/StringHelper.js:61 +#: planet/js/StringHelper.js:41 +#: planet/js/StringHelper.js:61 msgid "Description" msgstr "" -#: js/StringHelper.js:42 -#: js/StringHelper.js:67 +#: planet/js/StringHelper.js:42 +#: planet/js/StringHelper.js:67 msgid "Submit" msgstr "" -#: js/StringHelper.js:43 -#: js/StringHelper.js:47 +#: planet/js/StringHelper.js:43 +#: planet/js/StringHelper.js:47 msgid "Cancel" msgstr "" -#: js/StringHelper.js:44 +#: planet/js/StringHelper.js:44 msgid "Delete \\"\\"?" msgstr "" -#: js/StringHelper.js:45 +#: planet/js/StringHelper.js:45 msgid "Permanently delete project \\"\\"?" msgstr "" -#: js/StringHelper.js:48 +#: planet/js/StringHelper.js:48 msgid "Explore Projects" msgstr "" -#: js/StringHelper.js:50 +#: planet/js/StringHelper.js:49 +#: planet/js/helper.js:149 +msgid "Show more tags" +msgstr "" + +#: planet/js/StringHelper.js:50 msgid "Most recent" msgstr "" -#: js/StringHelper.js:51 +#: planet/js/StringHelper.js:51 msgid "Most liked" msgstr "" -#: js/StringHelper.js:52 +#: planet/js/StringHelper.js:52 msgid "Most downloaded" msgstr "" -#: js/StringHelper.js:53 +#: planet/js/StringHelper.js:53 msgid "A-Z" msgstr "" -#: js/StringHelper.js:54 +#: planet/js/StringHelper.js:54 msgid "Sort by" msgstr "" -#: js/StringHelper.js:55 +#: planet/js/StringHelper.js:55 msgid "Load More Projects" msgstr "" -#: js/StringHelper.js:56 +#: planet/js/StringHelper.js:56 msgid "Last Updated" msgstr "" -#: js/StringHelper.js:57 +#: planet/js/StringHelper.js:57 msgid "Creation Date" msgstr "" -#: js/StringHelper.js:58 +#: planet/js/StringHelper.js:58 msgid "Number of Downloads:" msgstr "" -#: js/StringHelper.js:59 +#: planet/js/StringHelper.js:59 msgid "Number of Likes:" msgstr "" -#: js/StringHelper.js:60 +#: planet/js/StringHelper.js:60 msgid "Tags:" msgstr "" -#: js/StringHelper.js:65 +#: planet/js/StringHelper.js:65 msgid "Report projects which violate the Sugar Labs Code of Conduct." msgstr "" -#: js/StringHelper.js:66 +#: planet/js/StringHelper.js:66 msgid "Reason for reporting project" msgstr "" -#: js/StringHelper.js:70 +#: planet/js/StringHelper.js:70 msgid "Download as File" msgstr "" -#: js/GlobalPlanet.js:35 -msgid "No results found." -msgstr "" - -#: js/GlobalPlanet.js:51 -msgid "Remix of" -msgstr "" - -#: js/GlobalPlanet.js:509 -msgid "Cannot connect to server" -msgstr "" - -#: js/Publisher.js:30 -msgid "Feature unavailable - cannot connect to server. Reload Music Blocks to try again." -msgstr "" - -#: js/Publisher.js:218 -#: js/Publisher.js:235 -msgid "This field is required" -msgstr "" - -#: js/Publisher.js:225 -msgid "Title too long" +#: planet/js/helper.js:150 +msgid "Show fewer tags" msgstr "" -#: js/Publisher.js:242 -msgid "Description too long" +#: plugins/accelerometer.rtp:48 +msgid "motion x" msgstr "" -#: js/Publisher.js:339 -msgid "Server Error" +#: plugins/accelerometer.rtp:56 +msgid "motion y" msgstr "" -#: js/Publisher.js:339 -msgid "Try Again" +#: plugins/accelerometer.rtp:64 +msgid "motion z" msgstr "" -#: js/SaveInterface.js:34 -msgid "Open in Music Blocks" +#: plugins/facebook.rtp:27 +msgid "publish" msgstr "" -#: js/SaveInterface.js:35 -msgid "Open in Turtle Blocks" +#: plugins/maths.rtp:62 +msgid "power" msgstr "" -#: plugins/weather.rtp:68 -#: plugins/weather.rtp:97 -msgid "Days ahead must be in the range of -1 to 5." +#: plugins/maths.rtp:62 +msgid "base" msgstr "" -#: plugins/weather.rtp:122 -msgid "forecast" +#: plugins/maths.rtp:62 +msgid "exp" msgstr "" -#: plugins/weather.rtp:123 -#: plugins/weather.rtp:137 -#: plugins/weather.rtp:150 -msgid "city" +#: plugins/maths.rtp:99 +msgid "floor" msgstr "" -#: plugins/weather.rtp:124 -#: plugins/weather.rtp:138 -#: plugins/weather.rtp:151 -msgid "day" +#: plugins/maths.rtp:104 +msgid "ceiling" msgstr "" -#: plugins/weather.rtp:136 -msgid "high" +#: plugins/maths.rtp:109 +msgid "to degrees" msgstr "" -#: plugins/weather.rtp:149 -msgid "low" +#: plugins/maths.rtp:114 +msgid "to radians" msgstr "" #: plugins/nutrition.rtp:104 @@ -9455,45 +9864,6 @@ msgstr "" msgid "water" msgstr "" -#: plugins/maths.rtp:62 -#: plugins/examples.rtp:93 -msgid "power" -msgstr "" - -#: plugins/maths.rtp:62 -#: plugins/examples.rtp:93 -msgid "base" -msgstr "" - -#: plugins/maths.rtp:62 -#: plugins/examples.rtp:93 -msgid "exp" -msgstr "" - -#: plugins/maths.rtp:99 -#: plugins/examples.rtp:130 -msgid "floor" -msgstr "" - -#: plugins/maths.rtp:104 -#: plugins/examples.rtp:135 -msgid "ceiling" -msgstr "" - -#: plugins/maths.rtp:109 -#: plugins/examples.rtp:140 -msgid "to degrees" -msgstr "" - -#: plugins/maths.rtp:114 -#: plugins/examples.rtp:145 -msgid "to radians" -msgstr "" - -#: plugins/facebook.rtp:27 -msgid "publish" -msgstr "" - #: plugins/rodi.rtp:172 msgid "blink" msgstr "" @@ -9522,18 +9892,66 @@ msgstr "" msgid "move" msgstr "" -#: plugins/accelerometer.rtp:48 -msgid "motion x" +#: plugins/weather.rtp:68 +#: plugins/weather.rtp:97 +msgid "Days ahead must be in the range of -1 to 5." msgstr "" -#: plugins/accelerometer.rtp:56 -msgid "motion y" +#: plugins/weather.rtp:122 +msgid "forecast" msgstr "" -#: plugins/accelerometer.rtp:64 -msgid "motion z" +#: plugins/weather.rtp:123 +#: plugins/weather.rtp:137 +#: plugins/weather.rtp:150 +msgid "city" +msgstr "" + +#: plugins/weather.rtp:124 +#: plugins/weather.rtp:138 +#: plugins/weather.rtp:151 +msgid "day" +msgstr "" + +#: plugins/weather.rtp:136 +msgid "high" +msgstr "" + +#: plugins/weather.rtp:149 +msgid "low" msgstr "" +#: js/toolbar.js:70 + +#: js/toolbar.js:130 + +#: js/toolbar.js:194 + +#: js/toolbar.js:249 + +#~msgid "Toggle JavaScript Editor" +#~msgstr "" + +#: js/EnsembleBlocks.js:643 + +#~msgid "The Turrle pitch block returns the current pitch number being played by the specified turtle." +#~msgstr "" + +#: js/PitchActions.js:88 + +#~msgid "The Scalar Step Block must be used inside of a Note Block." +#~msgstr "" + +#: js/PitchActions.js:107 + +#~msgid "The Scalar Step Block must be preceded by a Pitch Block." +#~msgstr "" + +#: js/musickeyboard.js:2840 + +#~msgid "New action blocks generated!" +#~msgstr "" + #: js/toolbar.js:110 #: js/toolbar.js:204 @@ -9874,11 +10292,6 @@ msgstr "" #~msgid "The Time block returns the number of seconds that the program has been running." #~msgstr "" -#: js/help.js:95 - -#~msgid "Take a tour" -#~msgstr "" - #: js/GlobalCard.js:48 #~msgid "More Details" @@ -12777,11 +13190,6 @@ msgstr "" #~msgid "The save-stack button saves a stack onto a custom palette. It appears after a \"long press\" on a stack." #~msgstr "" -#: js/musicutils.js:254 - -#~msgid "Custom" -#~msgstr "" - #: js/basicblocks.js:4785 #~msgid "Rhythm" diff --git a/po/ko.po b/po/ko.po index caa1e92581..022b5da8f6 100644 --- a/po/ko.po +++ b/po/ko.po @@ -15,683 +15,131 @@ #js/toolbar.js:230 #js/turtledefs.js:504 #js/turtledefs.js:505 -msgid: "Toggle Fullscreen" -msgstr: "전체 화면 전환" - -#: js/RhythmBlockPaletteBlocks.js:177 -#: js/RhythmBlockPaletteBlocks.js:14 -#: js/RhythmBlockPaletteBlocks.js:177 -#: js/RhythmBlockPaletteBlocks.js:14 -#: js/RhythmBlockPaletteBlocks.js:170 -#: js/block.js:1436 -#: js/block.js:7910 -#: js/block.js:7931 -#: js/block.js:7948 -#: js/activity.js:2693 -#: js/palette.js:932 -#: js/palette.js:941 -#: js/palette.js:950 -#: js/palette.js:959 -#: js/palette.js:2511 -#: js/palette.js:2522 -#: js/palette.js:2533 -#: js/palette.js:2544 -#: js/palette.js:2563 -#: js/turtledefs.js:76 -#: js/rubrics.js:497 -#: js/macros.js:153 -#: js/macros.js:249 -#: js/macros.js:250 -#: js/macros.js:259 -#: js/macros.js:801 -#: js/blocks.js:1120 -#: js/blocks.js:3549 -#: js/blocks.js:3550 -#: js/blocks.js:3786 -#: js/blocks.js:4168 -#: js/blocks.js:4363 -#: js/blocks.js:5526 -#: js/blocks.js:6776 -#: js/ActionBlocks.js:99 -#: js/ActionBlocks.js:147 -#: js/ActionBlocks.js:350 -#: js/ActionBlocks.js:415 -#: js/ActionBlocks.js:569 -#: js/ActionBlocks.js:629 -#: js/ActionBlocks.js:765 -#: js/ActionBlocks.js:768 -#: js/ActionBlocks.js:773 -#: js/ActionBlocks.js:805 -#: js/MeterBlocks.js:412 -#: js/MeterBlocks.js:479 -#: js/MeterBlocks.js:568 -#: js/MeterBlocks.js:669 -#: js/musickeyboard.js:2360 -#: js/pitchtimematrix.js:4708 -#: js/rhythmruler.js:1602 -#: js/rhythmruler.js:1610 -#: js/rhythmruler.js:1911 -#: js/rhythmruler.js:1919 -#: js/block.js:1436 -#: js/block.js:8089 -#: js/block.js:8110 -#: js/block.js:8127 -#: js/activity.js:2968 -#: js/palette.js:503 -#: js/palette.js:512 -#: js/palette.js:521 -#: js/palette.js:530 -#: js/palette.js:1122 -#: js/palette.js:1133 -#: js/palette.js:1144 -#: js/palette.js:1155 -#: js/palette.js:1174 -#: js/turtledefs.js:76 -#: js/rubrics.js:497 -#: js/macros.js:153 -#: js/macros.js:249 -#: js/macros.js:250 -#: js/macros.js:259 -#: js/macros.js:801 -#: js/blocks.js:1120 -#: js/blocks.js:3572 -#: js/blocks.js:3573 -#: js/blocks.js:3809 -#: js/blocks.js:4191 -#: js/blocks.js:4382 -#: js/blocks.js:5545 -#: js/blocks.js:6795 -#: js/ActionBlocks.js:99 -#: js/ActionBlocks.js:147 -#: js/ActionBlocks.js:343 -#: js/ActionBlocks.js:408 -#: js/ActionBlocks.js:562 -#: js/ActionBlocks.js:622 -#: js/ActionBlocks.js:749 -#: js/ActionBlocks.js:752 -#: js/ActionBlocks.js:757 -#: js/ActionBlocks.js:789 -#: js/MeterBlocks.js:390 -#: js/MeterBlocks.js:419 -#: js/MeterBlocks.js:455 -#: js/MeterBlocks.js:494 -#: js/musickeyboard.js:2421 -#: js/pitchtimematrix.js:4706 -#: js/rhythmruler.js:1602 -#: js/rhythmruler.js:1610 -#: js/rhythmruler.js:1911 -#: js/rhythmruler.js:1919 -#: js/block.js:1436 -#: js/block.js:8073 -#: js/block.js:8094 -#: js/block.js:8111 -#: js/activity.js:2984 -#: js/palette.js:503 -#: js/palette.js:512 -#: js/palette.js:521 -#: js/palette.js:530 -#: js/palette.js:1122 -#: js/palette.js:1133 -#: js/palette.js:1144 -#: js/palette.js:1155 -#: js/palette.js:1174 -#: js/turtledefs.js:78 -#: js/rubrics.js:501 -#: js/macros.js:153 -#: js/macros.js:249 -#: js/macros.js:250 -#: js/macros.js:259 -#: js/macros.js:801 -#: js/blocks.js:1112 -#: js/blocks.js:3545 -#: js/blocks.js:3546 -#: js/blocks.js:3779 -#: js/blocks.js:4160 -#: js/blocks.js:4346 -#: js/blocks.js:5496 -#: js/blocks.js:6721 -#: js/ActionBlocks.js:99 -#: js/ActionBlocks.js:147 -#: js/ActionBlocks.js:343 -#: js/ActionBlocks.js:408 -#: js/ActionBlocks.js:562 -#: js/ActionBlocks.js:622 -#: js/ActionBlocks.js:750 -#: js/ActionBlocks.js:753 -#: js/ActionBlocks.js:758 -#: js/ActionBlocks.js:790 -#: js/MeterBlocks.js:396 -#: js/MeterBlocks.js:425 -#: js/MeterBlocks.js:461 -#: js/MeterBlocks.js:500 -#: js/musickeyboard.js:2495 -#: js/pitchtimematrix.js:4718 -#: js/rhythmruler.js:1602 -#: js/rhythmruler.js:1610 -#: js/rhythmruler.js:1911 -#: js/rhythmruler.js:1919 -#: js/block.js:1436 -#: js/block.js:8073 -#: js/block.js:8094 -#: js/block.js:8111 -#: js/activity.js:2984 -#: js/palette.js:503 -#: js/palette.js:512 -#: js/palette.js:521 -#: js/palette.js:530 -#: js/palette.js:1122 -#: js/palette.js:1133 -#: js/palette.js:1144 -#: js/palette.js:1155 -#: js/palette.js:1174 -#: js/turtledefs.js:78 -#: js/rubrics.js:501 -#: js/macros.js:153 -#: js/macros.js:249 -#: js/macros.js:250 -#: js/macros.js:259 -#: js/macros.js:801 -#: js/blocks.js:1112 -#: js/blocks.js:3545 -#: js/blocks.js:3546 -#: js/blocks.js:3779 -#: js/blocks.js:4160 -#: js/blocks.js:4346 -#: js/blocks.js:5496 -#: js/blocks.js:6721 -#: js/ActionBlocks.js:99 -#: js/ActionBlocks.js:147 -#: js/ActionBlocks.js:343 -#: js/ActionBlocks.js:408 -#: js/ActionBlocks.js:562 -#: js/ActionBlocks.js:622 -#: js/ActionBlocks.js:750 -#: js/ActionBlocks.js:753 -#: js/ActionBlocks.js:758 -#: js/ActionBlocks.js:790 -#: js/MeterBlocks.js:396 -#: js/MeterBlocks.js:425 -#: js/MeterBlocks.js:461 -#: js/MeterBlocks.js:500 -#: js/musickeyboard.js:2495 -#: js/pitchtimematrix.js:4718 -#: js/rhythmruler.js:1602 -#: js/rhythmruler.js:1610 -#: js/rhythmruler.js:1911 -#: js/rhythmruler.js:1919 -#: js/block.js:1436 -#: js/block.js:8073 -#: js/block.js:8094 -#: js/block.js:8111 -#: js/activity.js:2984 -#: js/palette.js:506 -#: js/palette.js:515 -#: js/palette.js:524 -#: js/palette.js:533 -#: js/palette.js:1128 -#: js/palette.js:1139 -#: js/palette.js:1150 -#: js/palette.js:1161 -#: js/palette.js:1180 -#: js/turtledefs.js:78 -#: js/rubrics.js:501 -#: js/macros.js:153 -#: js/macros.js:249 -#: js/macros.js:250 -#: js/macros.js:259 -#: js/macros.js:801 -#: js/blocks.js:1112 -#: js/blocks.js:3545 -#: js/blocks.js:3546 -#: js/blocks.js:3779 -#: js/blocks.js:4160 -#: js/blocks.js:4346 -#: js/blocks.js:5496 -#: js/blocks.js:6721 -#: js/ActionBlocks.js:99 -#: js/ActionBlocks.js:147 -#: js/ActionBlocks.js:343 -#: js/ActionBlocks.js:408 -#: js/ActionBlocks.js:562 -#: js/ActionBlocks.js:622 -#: js/ActionBlocks.js:750 -#: js/ActionBlocks.js:753 -#: js/ActionBlocks.js:758 -#: js/ActionBlocks.js:790 -#: js/MeterBlocks.js:396 -#: js/MeterBlocks.js:425 -#: js/MeterBlocks.js:461 -#: js/MeterBlocks.js:500 -#: js/musickeyboard.js:2495 -#: js/pitchtimematrix.js:4718 -#: js/rhythmruler.js:1602 -#: js/rhythmruler.js:1610 -#: js/rhythmruler.js:1911 -#: js/rhythmruler.js:1919 -#: js/block.js:1414 -#: js/block.js:4018 -#: js/block.js:4036 -#: js/block.js:4047 -#: js/activity.js:2899 -#: js/palette.js:486 -#: js/palette.js:495 -#: js/palette.js:504 -#: js/palette.js:513 -#: js/palette.js:1089 -#: js/palette.js:1100 -#: js/palette.js:1111 -#: js/palette.js:1122 -#: js/palette.js:1141 -#: js/turtledefs.js:78 -#: js/rubrics.js:501 -#: js/macros.js:170 -#: js/macros.js:266 -#: js/macros.js:267 -#: js/macros.js:276 -#: js/macros.js:828 -#: js/blocks.js:1071 -#: js/blocks.js:3210 -#: js/blocks.js:3211 -#: js/blocks.js:3428 -#: js/blocks.js:3752 -#: js/blocks.js:3932 -#: js/blocks.js:4976 -#: js/blocks.js:5845 -#: js/ActionBlocks.js:99 -#: js/ActionBlocks.js:147 -#: js/ActionBlocks.js:343 -#: js/ActionBlocks.js:408 -#: js/ActionBlocks.js:562 -#: js/ActionBlocks.js:622 -#: js/ActionBlocks.js:750 -#: js/ActionBlocks.js:753 -#: js/ActionBlocks.js:758 -#: js/ActionBlocks.js:790 -#: js/MeterBlocks.js:396 -#: js/MeterBlocks.js:426 -#: js/MeterBlocks.js:462 -#: js/MeterBlocks.js:501 -#: js/musickeyboard.js:2495 -#: js/rhythmruler.js:1874 -#: js/rhythmruler.js:1881 -#: js/rhythmruler.js:2065 -#: js/rhythmruler.js:2072 -#: js/phrasemaker.js:4226 -#: js/block.js:1414 -#: js/block.js:4020 -#: js/block.js:4038 -#: js/block.js:4049 -#: js/activity.js:2899 -#: js/palette.js:486 -#: js/palette.js:495 -#: js/palette.js:504 -#: js/palette.js:513 -#: js/palette.js:1089 -#: js/palette.js:1100 -#: js/palette.js:1111 -#: js/palette.js:1122 -#: js/palette.js:1141 -#: js/turtledefs.js:78 -#: js/rubrics.js:501 -#: js/macros.js:170 -#: js/macros.js:266 -#: js/macros.js:267 -#: js/macros.js:276 -#: js/macros.js:828 -#: js/blocks.js:1071 -#: js/blocks.js:3210 -#: js/blocks.js:3211 -#: js/blocks.js:3428 -#: js/blocks.js:3752 -#: js/blocks.js:3932 -#: js/blocks.js:4976 -#: js/blocks.js:5845 -#: js/ActionBlocks.js:99 -#: js/ActionBlocks.js:147 -#: js/ActionBlocks.js:343 -#: js/ActionBlocks.js:408 -#: js/ActionBlocks.js:562 -#: js/ActionBlocks.js:622 -#: js/ActionBlocks.js:750 -#: js/ActionBlocks.js:753 -#: js/ActionBlocks.js:758 -#: js/ActionBlocks.js:790 -#: js/MeterBlocks.js:396 -#: js/MeterBlocks.js:426 -#: js/MeterBlocks.js:462 -#: js/MeterBlocks.js:501 -#: js/musickeyboard.js:2495 -#: js/rhythmruler.js:1874 -#: js/rhythmruler.js:1881 -#: js/rhythmruler.js:2065 -#: js/rhythmruler.js:2072 -#: js/phrasemaker.js:4226 -#: js/block.js:1439 -#: js/block.js:4063 -#: js/block.js:4081 -#: js/block.js:4092 -#: js/palette.js:505 -#: js/palette.js:514 -#: js/palette.js:523 -#: js/palette.js:532 -#: js/palette.js:1125 -#: js/palette.js:1136 -#: js/palette.js:1147 -#: js/palette.js:1158 -#: js/palette.js:1177 -#: js/turtledefs.js:101 -#: js/rubrics.js:522 -#: js/macros.js:168 -#: js/macros.js:264 -#: js/macros.js:265 -#: js/macros.js:274 -#: js/macros.js:826 -#: js/blocks.js:1001 -#: js/blocks.js:3394 -#: js/blocks.js:3395 -#: js/blocks.js:3620 -#: js/blocks.js:3981 -#: js/blocks.js:4172 -#: js/blocks.js:5305 -#: js/blocks.js:6432 -#: js/ActionBlocks.js:119 -#: js/ActionBlocks.js:167 -#: js/ActionBlocks.js:364 -#: js/ActionBlocks.js:429 -#: js/ActionBlocks.js:582 -#: js/ActionBlocks.js:643 -#: js/ActionBlocks.js:772 -#: js/ActionBlocks.js:775 -#: js/ActionBlocks.js:780 -#: js/ActionBlocks.js:813 -#: js/MeterBlocks.js:416 -#: js/MeterBlocks.js:446 -#: js/MeterBlocks.js:482 -#: js/MeterBlocks.js:521 -#: js/musickeyboard.js:2564 -#: js/rhythmruler.js:1925 -#: js/rhythmruler.js:1932 -#: js/rhythmruler.js:2116 -#: js/rhythmruler.js:2123 -#: js/phrasemaker.js:4402 -#: js/planetInterface.js:101 -#: js/planetInterface.js:101 -#: js/planetInterface.js:101 -#: js/planetInterface.js:101 -#: js/planetInterface.js:102 -#: js/planetInterface.js:104 -#: js/planetInterface.js:104 -#: js/planetInterface.js:104 -msgid "project undefined" -msgstr "" - -#: js/logo.js:61 -msgid "Not a valid pitch name" -msgstr "" - -#: js/logo.js:507 -#: js/ProgramBlocks.js:258 -#: js/ProgramBlocks.js:427 -msgid "You must select a file." +#: js/SaveInterface.js:59 +#: js/SaveInterface.js:61 +#: js/SaveInterface.js:93 +msgid "Music Blocks Project" msgstr "" -#: js/logo.js:1184 -#: js/turtles.js:118 -#: js/turtle-painter.js:1192 -#: js/turtle-painter.js:1193 -#: js/block.js:1463 -#: js/lilypond.js:757 -#: js/lilypond.js:921 -#: js/lilypond.js:959 -#: js/ActionBlocks.js:1223 -#: js/ProgramBlocks.js:1267 -msgid "start" -msgstr "시작" - -#: js/logo.js:1696 -msgid "Playback is ready." +#: js/SaveInterface.js:63 +msgid "This project was created in Music Blocks" msgstr "" -#: js/blocks.js:1011 -#: js/blocks.js:3427 -#: js/blocks.js:3428 -#: js/blocks.js:3653 -#: js/blocks.js:4012 -#: js/blocks.js:4205 -#: js/blocks.js:5343 -#: js/blocks.js:6474 -#: js/palette.js:527 -#: js/palette.js:536 -#: js/palette.js:545 -#: js/palette.js:554 -#: js/palette.js:1131 -#: js/palette.js:1142 -#: js/palette.js:1153 -#: js/palette.js:1164 -#: js/palette.js:1183 -#: js/rubrics.js:529 -#: js/macros.js:170 -#: js/macros.js:266 -#: js/macros.js:267 -#: js/macros.js:276 -#: js/macros.js:828 -#: js/block.js:1449 -#: js/block.js:4164 -#: js/block.js:4182 -#: js/block.js:4193 -#: js/turtledefs.js:128 -#: js/turtledefs.js:230 -#: js/ActionBlocks.js:254 -#: js/ActionBlocks.js:307 -#: js/ActionBlocks.js:617 -#: js/ActionBlocks.js:716 -#: js/ActionBlocks.js:961 -#: js/ActionBlocks.js:1049 -#: js/ActionBlocks.js:1322 -#: js/ActionBlocks.js:1325 -#: js/ActionBlocks.js:1337 -#: js/ActionBlocks.js:1404 -#: js/MeterBlocks.js:715 -#: js/MeterBlocks.js:768 -#: js/MeterBlocks.js:831 -#: js/MeterBlocks.js:892 -#: js/phrasemaker.js:4412 -#: js/musickeyboard.js:2647 -#: js/rhythmruler.js:1928 -#: js/rhythmruler.js:1935 -#: js/rhythmruler.js:2119 -#: js/rhythmruler.js:2126 -msgid "action" +#: js/SaveInterface.js:67 +msgid "Music Blocks is a Free/Libre Software application." msgstr "" -#: js/blocks.js:1205 -#: js/blocks.js:3380 -#: js/blocks.js:3770 -#: js/blocks.js:3801 -#: js/blocks.js:3850 -#: js/blocks.js:3885 -#: js/blocks.js:6497 -#: js/palette.js:509 -#: js/palette.js:638 -#: js/palette.js:1107 -#: js/BoxesBlocks.js:282 -#: js/BoxesBlocks.js:285 -#: js/BoxesBlocks.js:405 -#: js/BoxesBlocks.js:594 -msgid "box" -msgstr "상자" - -#: js/blocks.js:1680 -msgid "Consider breaking this stack into parts." +#: js/SaveInterface.js:69 +msgid "The source code can be accessed at" msgstr "" -#: js/blocks.js:2408 -#: js/palette.js:653 -#: js/MediaBlocks.js:602 -msgid "open file" +#: js/SaveInterface.js:72 +msgid "For more information, please consult the" msgstr "" -#: js/blocks.js:2415 -#: js/blocks.js:2423 -#: js/activity.js:1875 -msgid "audio file" +#: js/SaveInterface.js:76 +#: js/turtledefs.js:795 +msgid "Music Blocks Guide" msgstr "" -#: js/blocks.js:2536 -#: js/blocks.js:3147 -#: js/block.js:3543 -msgid "on2" +#: js/SaveInterface.js:83 +msgid "Alternatively, open the file in Music Blocks using the Load project button." msgstr "" -#: js/blocks.js:2538 -#: js/blocks.js:3149 -#: js/block.js:3545 -msgid "off" +#: js/SaveInterface.js:85 +msgid "Project Code" msgstr "" -#: js/blocks.js:2543 -#: js/blocks.js:3154 -#: js/palette.js:618 -#: js/block.js:3466 -#: js/BooleanBlocks.js:77 -#: js/BooleanBlocks.js:167 -#: js/BooleanBlocks.js:251 -#: js/BooleanBlocks.js:335 -#: js/BooleanBlocks.js:433 -#: js/BooleanBlocks.js:539 -#: js/BooleanBlocks.js:640 -#: js/BooleanBlocks.js:741 -#: js/BooleanBlocks.js:847 -#: js/BooleanBlocks.js:948 -#: js/BooleanBlocks.js:1033 -#: js/SensorsBlocks.js:910 -msgid "true" +#: js/SaveInterface.js:87 +msgid "This code stores data about the blocks in a project." msgstr "" -#: js/blocks.js:2545 -#: js/blocks.js:3156 -#: js/block.js:3466 -#: js/BooleanBlocks.js:79 -#: js/BooleanBlocks.js:169 -#: js/BooleanBlocks.js:253 -#: js/BooleanBlocks.js:337 -#: js/BooleanBlocks.js:435 -#: js/BooleanBlocks.js:541 -#: js/BooleanBlocks.js:642 -#: js/BooleanBlocks.js:743 -#: js/BooleanBlocks.js:849 -#: js/BooleanBlocks.js:950 -#: js/SensorsBlocks.js:912 -msgid "false" +#: js/SaveInterface.js:89 +msgid "Show" msgstr "" -#: js/blocks.js:3183 -#: js/palette.js:574 -#: js/MediaBlocks.js:892 -#: js/MediaBlocks.js:963 -msgid "text" -msgstr "텍스트" - -#: js/blocks.js:3379 -#: js/palette.js:641 -#: js/palette.js:642 -#: js/BoxesBlocks.js:514 -msgid "store in box" +#: js/SaveInterface.js:91 +msgid "Hide" msgstr "" -#: js/blocks.js:3384 -#: js/blocks.js:3824 -#: js/blocks.js:3859 -#: js/blocks.js:3894 -#: js/blocks.js:5773 -#: js/blocks.js:5794 -#: js/BoxesBlocks.js:772 -msgid "box1" +#: js/SaveInterface.js:131 +#: js/SaveInterface.js:204 +#: js/SaveInterface.js:262 +#: js/SaveInterface.js:389 +#: js/SaveInterface.js:417 +#: js/activity.js:4884 +#: planet/js/ProjectStorage.js:27 +#: planet/js/GlobalPlanet.js:467 +#: planet/js/GlobalPlanet.js:469 +#: planet/js/GlobalPlanet.js:495 +#.TRANS: default project title when saving as Lilypond +msgid "My Project" msgstr "" -#: js/blocks.js:3386 -#: js/blocks.js:3826 -#: js/blocks.js:3861 -#: js/blocks.js:3896 -#: js/blocks.js:5775 -#: js/blocks.js:5796 -#: js/BoxesBlocks.js:663 -msgid "box2" +#: js/SaveInterface.js:197 +#: planet/js/SaveInterface.js:58 +msgid "No description provided" msgstr "" -#: js/blocks.js:4058 -#: js/palette.js:639 -#: js/palette.js:644 -#: js/palette.js:1043 -#: js/BoxesBlocks.js:591 -msgid "store in" +#: js/SaveInterface.js:332 +msgid "Your recording is in progress." msgstr "" -#: js/blocks.js:4058 -#: js/EnsembleBlocks.js:391 -#: js/EnsembleBlocks.js:402 -#: js/MediaBlocks.js:746 -#: js/ProgramBlocks.js:390 -#: js/ProgramBlocks.js:495 -#: js/ProgramBlocks.js:658 -#: js/BoxesBlocks.js:595 -#: js/PitchBlocks.js:656 -#: js/PitchBlocks.js:932 -#: js/PitchBlocks.js:1827 -#: js/ToneBlocks.js:1025 -#: js/DictBlocks.js:215 -#: js/DictBlocks.js:289 -msgid "name" +#: js/SaveInterface.js:401 +#.TRANS: File name prompt for save as Lilypond +msgid "File name" msgstr "" -#: js/blocks.js:4058 -#: js/RhythmBlocks.js:1130 -#: js/BoxesBlocks.js:75 -#: js/BoxesBlocks.js:595 -#: js/HeapBlocks.js:544 -#: js/DictBlocks.js:289 -#: js/DictBlocks.js:430 -msgid "value" -msgstr "값" - -#: js/blocks.js:4907 -msgid "There is no block selected." +#: js/SaveInterface.js:403 +#: planet/js/StringHelper.js:39 +#.TRANS: Project title prompt for save as Lilypond +msgid "Project title" msgstr "" -#: js/blocks.js:5002 -#: js/MediaBlocks.js:888 -msgid "show" +#: js/SaveInterface.js:405 +#.TRANS: Project title prompt for save as Lilypond +msgid "Project author" msgstr "" -#: js/blocks.js:5005 -#: js/MediaBlocks.js:803 -#.TRANS: Avatar is the image used to determine the appearance of the mouse. -msgid "avatar" +#: js/SaveInterface.js:407 +#.TRANS: MIDI prompt for save as Lilypond +msgid "Include MIDI output?" msgstr "" -#: js/blocks.js:5008 -#: js/ToneBlocks.js:1010 -#: js/sampler.js:693 -#.TRANS: The sound sample that the user uploads. -msgid "sample" +#: js/SaveInterface.js:409 +#.TRANS: Guitar prompt for save as Lilypond +msgid "Include guitar tablature output?" msgstr "" -#: js/turtles.js:874 -msgid "Grid" +#: js/SaveInterface.js:411 +#.TRANS: Lilypond is a scripting language for generating sheet music +msgid "Save as Lilypond" msgstr "" -#: js/turtles.js:891 -#: js/turtledefs.js:626 -msgid "Clean" -msgstr "지우기" - -#: js/turtles.js:912 -#: js/turtledefs.js:632 -msgid "Collapse" +#: js/SaveInterface.js:426 +#: js/blocks/EnsembleBlocks.js:75 +#: js/blocks/EnsembleBlocks.js:154 +#: js/blocks/EnsembleBlocks.js:216 +#: js/blocks/EnsembleBlocks.js:302 +#: js/blocks/EnsembleBlocks.js:348 +#: js/blocks/EnsembleBlocks.js:389 +#: js/blocks/EnsembleBlocks.js:441 +#: js/blocks/EnsembleBlocks.js:490 +#: js/blocks/EnsembleBlocks.js:536 +#: js/blocks/EnsembleBlocks.js:583 +#: js/blocks/EnsembleBlocks.js:637 +#: js/blocks/EnsembleBlocks.js:753 +#: js/blocks/EnsembleBlocks.js:840 +#: js/blocks/EnsembleBlocks.js:899 +#: js/blocks/EnsembleBlocks.js:942 +#: js/blocks/EnsembleBlocks.js:1212 +#: js/blocks/EnsembleBlocks.js:1280 +#.TRANS: default project author when saving as Lilypond +msgid "Mr. Mouse" msgstr "" -#: js/turtles.js:940 -msgid "Expand" +#: js/SaveInterface.js:573 +msgid "The Lilypond code is copied to clipboard. You can paste it here: " msgstr "" #: js/languagebox.js:198 @@ -702,6933 +150,7487 @@ msgstr "" msgid "Music Blocks is already set to this language." msgstr "뮤직 블록스는 이미 이 언어로 설정되어 있습니다." -#: js/piemenus.js:200 -#: js/musicutils.js:808 -#: js/musicutils.js:824 -#: js/phrasemaker.js:1672 -#: js/musickeyboard.js:2041 -#: js/sampler.js:544 -#.TRANS: double sharp is a music term related to pitch -msgid "double sharp" +#: js/planetInterface.js:131 +msgid "project undefined" msgstr "" -#: js/piemenus.js:201 -#: js/PitchBlocks.js:1510 -#: js/PitchActions.js:580 -#: js/musicutils.js:806 -#: js/musicutils.js:825 -#: js/phrasemaker.js:1673 -#: js/musickeyboard.js:2042 -#: js/sampler.js:545 -#.TRANS: sharp is a half-step up in pitch -#.TRANS: sharp is a music term related to pitch -msgid "sharp" -msgstr "" +#: js/rubrics.js:523 +#: js/turtledefs.js:119 +#: js/turtledefs.js:221 +#: js/blocks/RhythmBlockPaletteBlocks.js:52 +#: js/blocks/RhythmBlockPaletteBlocks.js:234 +#: js/blocks/ProgramBlocks.js:745 +#: js/widgets/rhythmruler.js:2057 +#: js/widgets/rhythmruler.js:2064 +#: js/widgets/rhythmruler.js:2133 +#: js/widgets/rhythmruler.js:2140 +#: js/widgets/rhythmruler.js:2219 +#.TRANS: an arrangement of notes based on duration +msgid "rhythm" +msgstr "박자" -#: js/piemenus.js:202 -#: js/musicutils.js:804 -#: js/musicutils.js:826 -#: js/phrasemaker.js:1674 -#: js/musickeyboard.js:2043 -#: js/sampler.js:546 -#.TRANS: natural is a music term related to pitch -msgid "natural" +#: js/rubrics.js:524 +#: js/turtledefs.js:121 +#: js/turtledefs.js:223 +#: js/block-verbose.js:2622 +#: js/block.js:2550 +#: js/blocks/IntervalsBlocks.js:63 +#: js/blocks/SensorsBlocks.js:178 +#: js/blocks/PitchBlocks.js:1839 +#: js/blocks/PitchBlocks.js:1853 +#: js/widgets/musickeyboard.js:1935 +#: js/widgets/phrasemaker.js:1036 +#.TRANS: pitch number +#.TRANS: pitch number +#.TRANS: we specify pitch in terms of a name and an octave. The name can be CDEFGAB or Do Re Mi Fa Sol La Ti. Octave is a number between 1 and 8. +msgid "pitch" msgstr "" -#: js/piemenus.js:203 -#: js/PitchBlocks.js:1469 -#: js/PitchActions.js:583 -#: js/musicutils.js:802 -#: js/musicutils.js:827 -#: js/phrasemaker.js:1675 -#: js/musickeyboard.js:2044 -#: js/sampler.js:547 -#.TRANS: flat is a half-step down in pitch -#.TRANS: flat is a music term related to pitch -msgid "flat" +#: js/rubrics.js:525 +#: js/turtledefs.js:123 +#: js/turtledefs.js:225 +msgid "tone" msgstr "" -#: js/piemenus.js:204 -#: js/musicutils.js:800 -#: js/musicutils.js:828 -#: js/phrasemaker.js:1676 -#: js/musickeyboard.js:2045 -#: js/sampler.js:548 -#.TRANS: double flat is a music term related to pitch -msgid "double flat" +#: js/rubrics.js:526 +#: js/lilypond.js:605 +#: js/lilypond.js:904 +#: js/lilypond.js:910 +#: js/lilypond.js:948 +msgid "mouse" msgstr "" -#: js/piemenus.js:2861 -#: js/PitchBlocks.js:1357 -#: js/musicutils.js:627 -#.TRANS: unison means the note is the same as the current note -#.TRANS: unison is a music term related to intervals -msgid "unison" +#: js/rubrics.js:527 +#: js/turtledefs.js:132 +#: js/turtledefs.js:234 +#: js/widgets/phrasemaker.js:1040 +msgid "pen" msgstr "" -#: js/piemenus.js:3015 -#: js/piemenus.js:3088 -#: js/musicutils.js:635 -#: js/musicutils.js:810 -#: js/musicutils.js:912 -#.TRANS: major is a music term related to intervals and mode -msgid "major" -msgstr "" +#: js/rubrics.js:528 +#: js/turtledefs.js:133 +#: js/turtledefs.js:235 +#: js/blocks/NumberBlocks.js:981 +#: js/blocks/PitchBlocks.js:1717 +#: js/blocks/PitchBlocks.js:1758 +msgid "number" +msgstr "숫자" -#: js/piemenus.js:3015 -#: js/piemenus.js:3088 -#: js/musicutils.js:653 -#.TRANS: modal scale for music -msgid "ionian" +#: js/rubrics.js:529 +#: js/turtledefs.js:127 +#: js/turtledefs.js:229 +msgid "flow" msgstr "" -#: js/piemenus.js:3017 -#: js/piemenus.js:3092 -#: js/musicutils.js:633 -#: js/musicutils.js:811 -#: js/musicutils.js:909 -#.TRANS: minor is a music term related to intervals and mode -msgid "minor" +#: js/rubrics.js:530 +#: js/turtledefs.js:128 +#: js/turtledefs.js:230 +#: js/block-verbose.js:1609 +#: js/block-verbose.js:4559 +#: js/block-verbose.js:4577 +#: js/block-verbose.js:4588 +#: js/block.js:1573 +#: js/block.js:4483 +#: js/block.js:4501 +#: js/block.js:4512 +#: js/blocks.js:1018 +#: js/blocks.js:3491 +#: js/blocks.js:3492 +#: js/blocks.js:3717 +#: js/blocks.js:4076 +#: js/blocks.js:4269 +#: js/blocks.js:5432 +#: js/blocks.js:6563 +#: js/macros.js:170 +#: js/macros.js:266 +#: js/macros.js:267 +#: js/macros.js:276 +#: js/macros.js:828 +#: js/palette.js:527 +#: js/palette.js:536 +#: js/palette.js:545 +#: js/palette.js:554 +#: js/palette.js:1129 +#: js/palette.js:1140 +#: js/palette.js:1151 +#: js/palette.js:1162 +#: js/palette.js:1181 +#: js/blocks/ActionBlocks.js:254 +#: js/blocks/ActionBlocks.js:307 +#: js/blocks/ActionBlocks.js:617 +#: js/blocks/ActionBlocks.js:716 +#: js/blocks/ActionBlocks.js:961 +#: js/blocks/ActionBlocks.js:1049 +#: js/blocks/ActionBlocks.js:1322 +#: js/blocks/ActionBlocks.js:1325 +#: js/blocks/ActionBlocks.js:1337 +#: js/blocks/ActionBlocks.js:1404 +#: js/blocks/MeterBlocks.js:715 +#: js/blocks/MeterBlocks.js:768 +#: js/blocks/MeterBlocks.js:831 +#: js/blocks/MeterBlocks.js:892 +#: js/widgets/musickeyboard.js:2986 +#: js/widgets/phrasemaker.js:4913 +#: js/widgets/rhythmruler.js:2319 +#: js/widgets/rhythmruler.js:2326 +#: js/widgets/rhythmruler.js:2511 +#: js/widgets/rhythmruler.js:2518 +msgid "action" msgstr "" -#: js/piemenus.js:3017 -#: js/piemenus.js:3092 -#: js/musicutils.js:663 -#.TRANS: modal scale for music -msgid "aeolian" +#: js/rubrics.js:531 +#: js/turtledefs.js:136 +#: js/turtledefs.js:238 +msgid "sensors" msgstr "" -#: js/piemenus.js:3407 -msgid "Duplicate" +#: js/rubrics.js:532 +#: js/turtledefs.js:135 +#: js/turtledefs.js:237 +#: js/blocks/MediaBlocks.js:930 +msgid "media" msgstr "" -#: js/piemenus.js:3408 -#: js/turtledefs.js:534 -msgid "Extract" +#: js/rubrics.js:533 +msgid "mice" msgstr "" -#: js/piemenus.js:3409 -msgid "Move to trash" +#: js/toolbar.js:48 +#: js/toolbar.js:109 +msgid "About Music Blocks" msgstr "" -#: js/piemenus.js:3410 -#: js/timbre.js:968 -#: js/StringHelper.js:69 -msgid "Close" +#: js/toolbar.js:49 +#: js/toolbar.js:110 +#: js/toolbar.js:175 +#: js/toolbar.js:231 +#: js/turtledefs.js:445 +#: js/turtledefs.js:482 +#: js/activity.js:2660 +#: js/activity.js:2671 +#: js/activity.js:2902 +#: js/widgets/modewidget.js:77 +#: js/widgets/meterwidget.js:185 +#: js/widgets/pitchdrummatrix.js:147 +#: js/widgets/pitchdrummatrix.js:687 +#: js/widgets/pitchdrummatrix.js:689 +#: js/widgets/pitchdrummatrix.js:741 +#: js/widgets/pitchdrummatrix.js:743 +#: js/widgets/pitchdrummatrix.js:758 +#: js/widgets/pitchdrummatrix.js:760 +#: js/widgets/pitchdrummatrix.js:789 +#: js/widgets/pitchdrummatrix.js:791 +#: js/widgets/pitchstaircase.js:121 +#: js/widgets/temperament.js:610 +#: js/widgets/temperament.js:613 +#: js/widgets/temperament.js:673 +#: js/widgets/temperament.js:675 +#: js/widgets/temperament.js:2017 +#: js/widgets/temperament.js:2019 +#: js/widgets/tempo.js:84 +#: js/widgets/tempo.js:86 +#: js/widgets/timbre.js:432 +#: js/widgets/timbre.js:434 +#: js/widgets/timbre.js:465 +#: js/widgets/timbre.js:467 +#: js/widgets/timbre.js:746 +#: js/widgets/aiwidget.js:647 +#: js/widgets/aiwidget.js:654 +#: js/widgets/aiwidget.js:656 +#: js/widgets/arpeggio.js:90 +#: js/widgets/arpeggio.js:547 +#: js/widgets/arpeggio.js:549 +#: js/widgets/arpeggio.js:644 +#: js/widgets/arpeggio.js:646 +#: js/widgets/musickeyboard.js:676 +#: js/widgets/musickeyboard.js:872 +#: js/widgets/musickeyboard.js:874 +#: js/widgets/musickeyboard.js:953 +#: js/widgets/musickeyboard.js:955 +#: js/widgets/phrasemaker.js:513 +#: js/widgets/phrasemaker.js:523 +#: js/widgets/phrasemaker.js:525 +#: js/widgets/phrasemaker.js:4304 +#: js/widgets/phrasemaker.js:4528 +#: js/widgets/phrasemaker.js:4533 +#: js/widgets/phrasemaker.js:4535 +#: js/widgets/phrasemaker.js:4650 +#: js/widgets/rhythmruler.js:637 +#: js/widgets/rhythmruler.js:639 +#: js/widgets/rhythmruler.js:653 +#: js/widgets/rhythmruler.js:655 +#: js/widgets/sampler.js:162 +#: js/widgets/sampler.js:164 +#: js/widgets/sampler.js:363 +msgid "Play" msgstr "" -#: js/piemenus.js:3416 -msgid "Save stack" -msgstr "" +#: js/toolbar.js:50 +#: js/toolbar.js:111 +#: js/toolbar.js:176 +#: js/toolbar.js:232 +#: js/turtledefs.js:451 +#: js/turtledefs.js:488 +#: js/activity.js:2679 +#: js/widgets/modewidget.js:99 +#: js/widgets/modewidget.js:101 +#: js/widgets/meterwidget.js:206 +#: js/widgets/meterwidget.js:208 +#: js/widgets/pitchdrummatrix.js:674 +#: js/widgets/pitchdrummatrix.js:676 +#: js/widgets/temperament.js:2002 +#: js/widgets/temperament.js:2004 +#: js/widgets/arpeggio.js:534 +#: js/widgets/arpeggio.js:536 +#: js/widgets/phrasemaker.js:534 +#: js/widgets/phrasemaker.js:536 +msgid "Stop" +msgstr "단계 실행" + +#: js/toolbar.js:51 +#: js/toolbar.js:112 +#: js/toolbar.js:177 +#: js/toolbar.js:233 +#: js/turtledefs.js:498 +msgid "Record" +msgstr "" + +#: js/toolbar.js:52 +#: js/toolbar.js:53 +msgid "Full screen" +msgstr "" + +#: js/toolbar.js:54 +#: js/toolbar.js:115 +#: js/toolbar.js:180 +#: js/toolbar.js:236 +#: js/turtledefs.js:504 +msgid "Toggle Fullscreen" +msgstr "" + +#: js/toolbar.js:55 +#: js/toolbar.js:116 +#: js/toolbar.js:181 +#: js/toolbar.js:237 +#: js/turtledefs.js:510 +#: planet/js/StringHelper.js:33 +msgid "New project" +msgstr "" + +#: js/toolbar.js:56 +#: js/toolbar.js:117 +#: js/toolbar.js:182 +#: js/toolbar.js:238 +#: js/turtledefs.js:516 +msgid "Load project from file" +msgstr "" + +#: js/toolbar.js:57 +#: js/toolbar.js:118 +#: js/toolbar.js:119 +#: js/toolbar.js:183 +#: js/toolbar.js:239 +#: js/turtledefs.js:541 +#: js/turtledefs.js:550 +#: js/turtledefs.js:571 +msgid "Save project" +msgstr "" + +#: js/toolbar.js:58 +#: js/toolbar.js:77 +#: js/toolbar.js:79 +#: js/toolbar.js:138 +#: js/toolbar.js:147 +#: js/toolbar.js:149 +#: js/toolbar.js:184 +#: js/toolbar.js:202 +#: js/toolbar.js:204 +#: js/toolbar.js:240 +#: js/toolbar.js:258 +#: js/toolbar.js:260 +msgid "Save project as HTML" +msgstr "" + +#: js/toolbar.js:59 +#: js/toolbar.js:120 +#: js/toolbar.js:185 +#: js/toolbar.js:241 +msgid "Find and share projects" +msgstr "" + +#: js/toolbar.js:60 +#: js/toolbar.js:121 +#: js/toolbar.js:186 +#: js/toolbar.js:242 +msgid "Offline. Sharing is unavailable" +msgstr "" + +#: js/toolbar.js:61 +#: js/toolbar.js:122 +#: js/toolbar.js:187 +#: js/toolbar.js:243 +msgid "Auxiliary menu" +msgstr "" + +#: js/toolbar.js:62 +#: js/toolbar.js:123 +#: js/toolbar.js:188 +#: js/toolbar.js:244 +#: js/turtledefs.js:752 +#: js/piemenus.js:3423 +msgid "Help" +msgstr "" + +#: js/toolbar.js:63 +#: js/toolbar.js:124 +#: js/toolbar.js:189 +#: js/toolbar.js:245 +msgid "Run slowly" +msgstr "" + +#: js/toolbar.js:64 +#: js/toolbar.js:125 +#: js/toolbar.js:190 +#: js/toolbar.js:246 +#: js/turtledefs.js:682 +msgid "Run step by step" +msgstr "" + +#: js/toolbar.js:65 +#: js/toolbar.js:126 +#: js/toolbar.js:191 +#: js/toolbar.js:247 +#: js/turtledefs.js:689 +msgid "Display statistics" +msgstr "" + +#: js/toolbar.js:66 +#: js/toolbar.js:127 +#: js/toolbar.js:192 +#: js/toolbar.js:248 +msgid "Load plugin" +msgstr "" + +#: js/toolbar.js:67 +#: js/toolbar.js:128 +#: js/toolbar.js:193 +#: js/toolbar.js:249 +#: js/turtledefs.js:696 +msgid "Delete plugin" +msgstr "" + +#: js/toolbar.js:68 +#: js/toolbar.js:129 +#: js/toolbar.js:194 +#: js/toolbar.js:250 +msgid "Enable horizontal scrolling" +msgstr "" + +#: js/toolbar.js:69 +#: js/toolbar.js:130 +#: js/toolbar.js:195 +#: js/toolbar.js:251 +msgid "Disable horizontal scrolling" +msgstr "" + +#: js/toolbar.js:70 +#: js/toolbar.js:131 +#: js/toolbar.js:196 +#: js/toolbar.js:252 +#: planet/js/LocalCard.js:54 +#: planet/js/StringHelper.js:71 +msgid "Merge with current project" +msgstr "" + +#: js/toolbar.js:71 +#: js/toolbar.js:132 +msgid "Set Pitch Preview" +msgstr "" + +#: js/toolbar.js:72 +#: js/toolbar.js:133 +#: js/toolbar.js:197 +#: js/toolbar.js:253 +msgid "JavaScript Editor" +msgstr "" + +#: js/toolbar.js:73 +#: js/toolbar.js:134 +#: js/toolbar.js:198 +#: js/toolbar.js:254 +#: js/turtledefs.js:724 +msgid "Restore" +msgstr "" + +#: js/toolbar.js:74 +#: js/toolbar.js:135 +#: js/toolbar.js:199 +#: js/toolbar.js:255 +msgid "Switch to beginner mode" +msgstr "" + +#: js/toolbar.js:75 +#: js/toolbar.js:136 +#: js/toolbar.js:200 +#: js/toolbar.js:256 +msgid "Switch to advanced mode" +msgstr "" + +#: js/toolbar.js:76 +#: js/toolbar.js:137 +#: js/toolbar.js:146 +#: js/toolbar.js:201 +#: js/toolbar.js:257 +#: js/turtledefs.js:738 +msgid "Select language" +msgstr "" + +#: js/toolbar.js:78 +#: js/toolbar.js:81 +#: js/toolbar.js:140 +#: js/turtledefs.js:579 +msgid "Save mouse artwork as PNG" +msgstr "" + +#: js/toolbar.js:80 +#: js/toolbar.js:139 +#: js/turtledefs.js:575 +msgid "Save mouse artwork as SVG" +msgstr "" + +#: js/toolbar.js:82 +#: js/toolbar.js:141 +#: js/turtledefs.js:583 +msgid "Save music as WAV" +msgstr "" + +#: js/toolbar.js:83 +#: js/toolbar.js:142 +#: js/turtledefs.js:587 +msgid "Save sheet music as ABC" +msgstr "" + +#: js/toolbar.js:84 +#: js/toolbar.js:143 +#: js/turtledefs.js:591 +msgid "Save sheet music as Lilypond" +msgstr "" + +#: js/toolbar.js:85 +msgid "Save sheet music as MusicXML" +msgstr "" + +#: js/toolbar.js:86 +#: js/toolbar.js:144 +#: js/toolbar.js:152 +#: js/toolbar.js:207 +#: js/toolbar.js:263 +#: js/turtledefs.js:562 +#: js/turtledefs.js:595 +msgid "Save block artwork as SVG" +msgstr "" + +#: js/toolbar.js:87 +#: js/toolbar.js:145 +#: js/toolbar.js:153 +#: js/toolbar.js:208 +#: js/toolbar.js:264 +#: js/turtles.js:911 +msgid "Confirm" +msgstr "" + +#: js/toolbar.js:88 +#: js/toolbar.js:154 +#: js/toolbar.js:209 +#: js/toolbar.js:265 +msgid "English (United States)" +msgstr "" + +#: js/toolbar.js:89 +#: js/toolbar.js:155 +#: js/toolbar.js:210 +#: js/toolbar.js:266 +msgid "English (United Kingdom)" +msgstr "" + +#: js/toolbar.js:90 +#: js/toolbar.js:156 +#: js/toolbar.js:211 +#: js/toolbar.js:267 +msgid "日本語" +msgstr "" + +#: js/toolbar.js:91 +msgid "한국어" +msgstr "" + +#: js/toolbar.js:92 +#: js/toolbar.js:158 +#: js/toolbar.js:213 +#: js/toolbar.js:269 +msgid "español" +msgstr "" + +#: js/toolbar.js:93 +#: js/toolbar.js:159 +#: js/toolbar.js:214 +#: js/toolbar.js:270 +msgid "português" +msgstr "" + +#: js/toolbar.js:94 +#: js/toolbar.js:160 +#: js/toolbar.js:215 +#: js/toolbar.js:271 +msgid "にほんご" +msgstr "" + +#: js/toolbar.js:95 +#: js/toolbar.js:161 +#: js/toolbar.js:216 +#: js/toolbar.js:272 +msgid "中文" +msgstr "" + +#: js/toolbar.js:96 +#: js/toolbar.js:162 +#: js/toolbar.js:217 +#: js/toolbar.js:273 +msgid "ภาษาไทย" +msgstr "" + +#: js/toolbar.js:97 +#: js/toolbar.js:163 +#: js/toolbar.js:218 +#: js/toolbar.js:274 +msgid "aymara" +msgstr "" + +#: js/toolbar.js:98 +#: js/toolbar.js:164 +#: js/toolbar.js:219 +#: js/toolbar.js:275 +msgid "quechua" +msgstr "" + +#: js/toolbar.js:99 +#: js/toolbar.js:165 +#: js/toolbar.js:220 +#: js/toolbar.js:276 +msgid "guarani" +msgstr "" + +#: js/toolbar.js:100 +#: js/toolbar.js:166 +#: js/toolbar.js:221 +#: js/toolbar.js:277 +msgid "हिंदी" +msgstr "" + +#: js/toolbar.js:101 +#: js/toolbar.js:168 +#: js/toolbar.js:222 +#: js/toolbar.js:279 +msgid "igbo" +msgstr "" + +#: js/toolbar.js:102 +#: js/toolbar.js:169 +#: js/toolbar.js:223 +#: js/toolbar.js:280 +msgid "عربى" +msgstr "" + +#: js/toolbar.js:103 +#: js/toolbar.js:167 +#: js/toolbar.js:224 +#: js/toolbar.js:278 +msgid "తెలుగు" +msgstr "" + +#: js/toolbar.js:104 +#: js/toolbar.js:170 +#: js/toolbar.js:225 +#: js/toolbar.js:281 +msgid "עִברִית" +msgstr "" + +#: js/toolbar.js:113 +#: js/toolbar.js:114 +#: js/toolbar.js:178 +#: js/toolbar.js:179 +#: js/toolbar.js:234 +#: js/toolbar.js:235 +msgid "Full Screen" +msgstr "" + +#: js/toolbar.js:148 +#: js/toolbar.js:151 +#: js/toolbar.js:203 +#: js/toolbar.js:206 +#: js/toolbar.js:259 +#: js/toolbar.js:262 +#: js/turtledefs.js:558 +msgid "Save turtle artwork as PNG" +msgstr "" + +#: js/toolbar.js:150 +#: js/toolbar.js:205 +#: js/toolbar.js:261 +#: js/turtledefs.js:554 +msgid "Save turtle artwork as SVG" +msgstr "" + +#: js/toolbar.js:157 +#: js/toolbar.js:212 +#: js/toolbar.js:268 +msgid "한국인" +msgstr "" + +#: js/toolbar.js:174 +#: js/toolbar.js:230 +msgid "About Turtle Blocks" +msgstr "" + +#: js/toolbar.js:446 +#: js/toolbar.js:457 +#: js/toolbar.js:497 +msgid "Turtle Wrap Off" +msgstr "" + +#: js/toolbar.js:466 +#: js/toolbar.js:506 +msgid "Turtle Wrap On" +msgstr "" + +#: js/turtle-painter.js:1192 +#: js/turtle-painter.js:1193 +#: js/turtles.js:118 +#: js/block-verbose.js:1623 +#: js/block.js:1587 +#: js/lilypond.js:749 +#: js/lilypond.js:913 +#: js/lilypond.js:951 +#: js/logo.js:1184 +#: js/blocks/ActionBlocks.js:1223 +#: js/blocks/ProgramBlocks.js:1267 +msgid "start" +msgstr "시작" + +#: js/turtledefs.js:40 +#.TRANS: put the URL to the guide here, e.g., https://github.com/sugarlabs/turtleblocksjs/tree/master/guide/README.md +msgid "guide url" +msgstr "" + +#: js/turtledefs.js:85 +#: js/turtledefs.js:437 +msgid "Turtle Blocks is a Logo-inspired turtle that draws colorful pictures with snap-together visual-programming blocks." +msgstr "" + +#: js/turtledefs.js:118 +#: js/turtledefs.js:220 +msgid "search" +msgstr "" + +#: js/turtledefs.js:120 +#: js/turtledefs.js:222 +#: js/blocks/MeterBlocks.js:1343 +#: js/blocks/WidgetBlocks.js:522 +#.TRANS: musical meter (time signature), e.g., 4:4 +msgid "meter" +msgstr "" + +#: js/turtledefs.js:122 +#: js/turtledefs.js:224 +msgid "intervals" +msgstr "" + +#: js/turtledefs.js:124 +#: js/turtledefs.js:226 +msgid "ornament" +msgstr "" + +#: js/turtledefs.js:125 +#: js/turtledefs.js:227 +#: js/blocks/VolumeBlocks.js:362 +#: js/blocks/VolumeBlocks.js:502 +#: js/blocks/VolumeBlocks.js:545 +msgid "volume" +msgstr "" + +#: js/turtledefs.js:126 +#: js/turtledefs.js:228 +#: js/block-verbose.js:1700 +#: js/block-verbose.js:2626 +#: js/block.js:1664 +#: js/block.js:2554 +#: js/lilypond.js:732 +#: js/lilypond.js:897 +#: js/lilypond.js:941 +#: js/palette.js:577 +#: js/blocks/RhythmBlocks.js:766 +#: js/blocks/DrumBlocks.js:477 +#: js/blocks/VolumeBlocks.js:502 +#: js/widgets/phrasemaker.js:1038 +msgid "drum" +msgstr "" + +#: js/turtledefs.js:129 +#: js/turtledefs.js:231 +msgid "boxes" +msgstr "" + +#: js/turtledefs.js:130 +#: js/turtledefs.js:232 +msgid "widgets" +msgstr "" + +#: js/turtledefs.js:131 +#: js/turtledefs.js:233 +#: js/widgets/phrasemaker.js:1039 +msgid "graphics" +msgstr "" + +#: js/turtledefs.js:134 +#: js/turtledefs.js:236 +msgid "boolean" +msgstr "" + +#: js/turtledefs.js:137 +#: js/turtledefs.js:239 +#: js/blocks/HeapBlocks.js:59 +#: js/widgets/status.js:147 +msgid "heap" +msgstr "" + +#: js/turtledefs.js:138 +#: js/turtledefs.js:240 +#: js/blocks/DictBlocks.js:142 +#: js/blocks/ProgramBlocks.js:495 +msgid "dictionary" +msgstr "" + +#: js/turtledefs.js:139 +#: js/turtledefs.js:241 +msgid "ensemble" +msgstr "" + +#: js/turtledefs.js:140 +#: js/turtledefs.js:242 +msgid "extras" +msgstr "" + +#: js/turtledefs.js:142 +#: js/turtledefs.js:244 +#.TRANS: program as in computer program +#.TRANS: program as in computer program +msgid "program" +msgstr "" + +#: js/turtledefs.js:143 +#: js/turtledefs.js:245 +msgid "my blocks" +msgstr "" + +#: js/turtledefs.js:185 +#: js/turtledefs.js:281 +msgid "artwork" +msgstr "" + +#: js/turtledefs.js:185 +#: js/turtledefs.js:281 +msgid "logic" +msgstr "" + +#: js/turtledefs.js:185 +#: js/turtledefs.js:281 +msgid "music" +msgstr "" + +#: js/turtledefs.js:187 +#: js/turtledefs.js:463 +msgid "Music Blocks is a collection of tools for exploring fundamental musical concepts in a fun way." +msgstr "" + +#: js/turtledefs.js:436 +msgid "Welcome to Turtle Blocks" +msgstr "" + +#: js/turtledefs.js:438 +#: js/turtledefs.js:465 +#: js/turtledefs.js:774 +#: js/turtledefs.js:805 +msgid "The current version is" +msgstr "" + +#: js/turtledefs.js:446 +#: js/turtledefs.js:483 +msgid "Click the run button to run the project in fast mode." +msgstr "" + +#: js/turtledefs.js:452 +msgid "Stop the turtle." +msgstr "" + +#: js/turtledefs.js:454 +#: js/turtledefs.js:491 +msgid "You can also type Alt-S to stop." +msgstr "" + +#: js/turtledefs.js:462 +#: js/widgets/help.js:333 +msgid "Welcome to Music Blocks" +msgstr "" + +#: js/turtledefs.js:472 +#: js/widgets/help.js:334 +msgid "Meet Mr. Mouse!" +msgstr "" + +#: js/turtledefs.js:473 +msgid "Mr Mouse is our Music Blocks conductor." +msgstr "" + +#: js/turtledefs.js:475 +msgid "Mr Mouse encourages you to explore Music Blocks." +msgstr "" + +#: js/turtledefs.js:477 +msgid "Let us start our tour!" +msgstr "" + +#: js/turtledefs.js:489 +msgid "Stop the music (and the mice)." +msgstr "" + +#: js/turtledefs.js:499 +msgid "Record your project as video." +msgstr "" + +#: js/turtledefs.js:505 +msgid "Toggle Fullscreen mode." +msgstr "" + +#: js/turtledefs.js:511 +msgid "Initialize a new project." +msgstr "" + +#: js/turtledefs.js:517 +msgid "You can also load projects from the file system." +msgstr "" + +#: js/turtledefs.js:522 +#: planet/js/StringHelper.js:46 +msgid "Delete" +msgstr "" + +#: js/turtledefs.js:523 +msgid "To delete a block, just right-click on it, then you will be able to see the delete option" +msgstr "" + +#: js/turtledefs.js:528 +#: js/activity.js:2649 +#: planet/js/LocalCard.js:31 +msgid "Copy" +msgstr "" + +#: js/turtledefs.js:529 +msgid "To copy a block, just right-click on it, then you will be able to see the copy option" +msgstr "" + +#: js/turtledefs.js:534 +#: js/piemenus.js:3411 +msgid "Extract" +msgstr "" + +#: js/turtledefs.js:535 +msgid "To extract a block, just right-click on it, then you will be able to see the extract option" +msgstr "" + +#: js/turtledefs.js:542 +#: js/turtledefs.js:552 +#: js/turtledefs.js:573 +msgid "Save your project to a file." +msgstr "" + +#: js/turtledefs.js:549 +#: js/turtledefs.js:570 +msgid "save" +msgstr "" + +#: js/turtledefs.js:556 +#: js/turtledefs.js:577 +msgid "Save graphics from your project to as SVG." +msgstr "" + +#: js/turtledefs.js:560 +#: js/turtledefs.js:581 +msgid "Save graphics from your project as PNG." +msgstr "" + +#: js/turtledefs.js:564 +#: js/turtledefs.js:597 +msgid "Save block artwork as an SVG file." +msgstr "" + +#: js/turtledefs.js:585 +msgid "Save audio from your project as WAV." +msgstr "" + +#: js/turtledefs.js:589 +msgid "Save your project to as an ABC file." +msgstr "" + +#: js/turtledefs.js:593 +msgid "Save your project to as a Lilypond file." +msgstr "" + +#: js/turtledefs.js:604 +msgid "Load samples from server" +msgstr "" + +#: js/turtledefs.js:605 +msgid "This button opens a viewer for loading example projects." +msgstr "" + +#: js/turtledefs.js:611 +msgid "Palette buttons" +msgstr "" + +#: js/turtledefs.js:612 +msgid "This toolbar contains the palette buttons including Rhythm Pitch Tone Action and more." +msgstr "" + +#: js/turtledefs.js:614 +msgid "Click to show the palettes of blocks and drag blocks from the palettes onto the canvas to use them." +msgstr "" + +#: js/turtledefs.js:620 +msgid "Cartesian/Polar" +msgstr "" + +#: js/turtledefs.js:621 +msgid "Show or hide a coordinate grid." +msgstr "" + +#: js/turtledefs.js:626 +#: js/turtles.js:902 +msgid "Clean" +msgstr "지우기" + +#: js/turtledefs.js:627 +msgid "Clear the screen and return the mice to their initial positions." +msgstr "" -#: js/piemenus.js:3420 -#: js/toolbar.js:60 -#: js/toolbar.js:120 -#: js/toolbar.js:185 -#: js/toolbar.js:240 -#: js/turtledefs.js:752 -msgid "Help" +#: js/turtledefs.js:632 +#: js/turtles.js:955 +msgid "Collapse" msgstr "" -#: js/piemenus.js:3762 -msgid "You have chosen key " +#: js/turtledefs.js:633 +msgid "Collapse the graphics window." msgstr "" -#: js/piemenus.js:3766 -msgid " for your pitch preview." +#: js/turtledefs.js:638 +#: js/activity.js:5684 +msgid "Home" msgstr "" -#: js/palette.js:571 -msgid "grid" +#: js/turtledefs.js:639 +msgid "Return all blocks to the center of the screen." msgstr "" -#: js/palette.js:577 -#: js/block.js:1540 -#: js/block.js:2343 -#: js/turtledefs.js:126 -#: js/turtledefs.js:228 -#: js/lilypond.js:740 -#: js/lilypond.js:905 -#: js/lilypond.js:949 -#: js/DrumBlocks.js:486 -#: js/RhythmBlocks.js:766 -#: js/VolumeBlocks.js:502 -#: js/phrasemaker.js:823 -msgid "drum" +#: js/turtledefs.js:644 +msgid "Show/hide blocks" msgstr "" -#: js/palette.js:580 -msgid "effect" +#: js/turtledefs.js:645 +msgid "Hide or show the blocks and the palettes." msgstr "" -#: js/palette.js:586 -msgid "sargam" +#: js/turtledefs.js:650 +msgid "Expand/collapse collapsable blocks" msgstr "" -#: js/palette.js:589 -#: js/activity.js:1833 -#: js/RhythmBlocks.js:923 -#: js/PitchBlocks.js:442 -#: js/PitchBlocks.js:1748 -#.TRANS: a numeric mapping of the notes in an octave based on the musical mode -msgid "scale degree" +#: js/turtledefs.js:651 +msgid "Expand or collapse start and action stacks." msgstr "" -#: js/palette.js:592 -#: js/activity.js:1860 -msgid "mode name" +#: js/turtledefs.js:658 +#: js/activity.js:5704 +msgid "Decrease block size" msgstr "" -#: js/palette.js:595 -#: js/activity.js:1839 -msgid "invert mode" +#: js/turtledefs.js:659 +msgid "Decrease the size of the blocks." msgstr "" -#: js/palette.js:598 -#: js/activity.js:1836 -msgid "voice name" +#: js/turtledefs.js:664 +#: js/activity.js:5710 +msgid "Increase block size" msgstr "" -#: js/palette.js:601 -#: js/PitchBlocks.js:1181 -msgid "custom pitch" +#: js/turtledefs.js:665 +msgid "Increase the size of the blocks." msgstr "" -#: js/palette.js:605 -#: js/block.js:1456 -#: js/block.js:1575 -#: js/WidgetBlocks.js:218 -#: js/IntervalsBlocks.js:63 -msgid "temperament" +#: js/turtledefs.js:670 +msgid "Expand/collapse option toolbar" msgstr "" -#: js/palette.js:609 -msgid "accidental" +#: js/turtledefs.js:671 +msgid "Click this button to expand or collapse the auxillary toolbar." msgstr "" -#: js/palette.js:615 -#: js/activity.js:1866 -msgid "interval name" +#: js/turtledefs.js:676 +msgid "Run slow" msgstr "" -#: js/palette.js:633 -#: js/PitchBlocks.js:405 -msgid "pitch converter" +#: js/turtledefs.js:677 +msgid "Click to run the project in slow mode." msgstr "" -#: js/rubrics.js:522 -#: js/turtledefs.js:119 -#: js/turtledefs.js:221 -#: js/RhythmBlockPaletteBlocks.js:52 -#: js/RhythmBlockPaletteBlocks.js:233 -#: js/ProgramBlocks.js:745 -#: js/rhythmruler.js:1670 -#: js/rhythmruler.js:1677 -#: js/rhythmruler.js:1745 -#: js/rhythmruler.js:1752 -#: js/rhythmruler.js:1830 -#.TRANS: an arrangement of notes based on duration -msgid "rhythm" -msgstr "박자" +#: js/turtledefs.js:683 +msgid "Click to run the project step by step." +msgstr "" -#: js/rubrics.js:523 -#: js/block.js:2339 -#: js/turtledefs.js:121 -#: js/turtledefs.js:223 -#: js/IntervalsBlocks.js:63 -#: js/PitchBlocks.js:1801 -#: js/PitchBlocks.js:1814 -#: js/SensorsBlocks.js:178 -#: js/phrasemaker.js:821 -#: js/musickeyboard.js:1653 -#.TRANS: pitch number -#.TRANS: we specify pitch in terms of a name and an octave. The name can be CDEFGAB or Do Re Mi Fa Sol La Ti. Octave is a number between 1 and 8. -msgid "pitch" +#: js/turtledefs.js:690 +msgid "Display statistics about your Music project." msgstr "" -#: js/rubrics.js:524 -#: js/turtledefs.js:123 -#: js/turtledefs.js:225 -msgid "tone" +#: js/turtledefs.js:697 +msgid "Delete a selected plugin." msgstr "" -#: js/rubrics.js:525 -#: js/lilypond.js:613 -#: js/lilypond.js:912 -#: js/lilypond.js:918 -#: js/lilypond.js:956 -msgid "mouse" +#: js/turtledefs.js:704 +msgid "Enable scrolling" msgstr "" -#: js/rubrics.js:526 -#: js/turtledefs.js:132 -#: js/turtledefs.js:234 -#: js/phrasemaker.js:825 -msgid "pen" +#: js/turtledefs.js:705 +msgid "You can scroll the blocks on the canvas." msgstr "" -#: js/rubrics.js:527 -#: js/turtledefs.js:133 -#: js/turtledefs.js:235 -#: js/NumberBlocks.js:905 -#: js/PitchBlocks.js:1679 -#: js/PitchBlocks.js:1720 -msgid "number" -msgstr "숫자" +#: js/turtledefs.js:714 +msgid "Wrap Turtle" +msgstr "" -#: js/rubrics.js:528 -#: js/turtledefs.js:127 -#: js/turtledefs.js:229 -msgid "flow" +#: js/turtledefs.js:715 +msgid "Turn Turtle wrapping On or Off." msgstr "" -#: js/rubrics.js:530 -#: js/turtledefs.js:136 -#: js/turtledefs.js:238 -msgid "sensors" +#: js/turtledefs.js:725 +msgid "Restore blocks from the trash." msgstr "" -#: js/rubrics.js:531 -#: js/turtledefs.js:135 -#: js/turtledefs.js:237 -#: js/MediaBlocks.js:930 -msgid "media" +#: js/turtledefs.js:732 +msgid "Switch mode" msgstr "" -#: js/rubrics.js:532 -msgid "mice" +#: js/turtledefs.js:733 +msgid "Switch between beginner and advance modes." msgstr "" -#: js/macros.js:711 -#: js/musicutils.js:783 -#: js/synthutils.js:181 -#.TRANS: animal sound effect -msgid "duck" +#: js/turtledefs.js:739 +msgid "Select your language preference." msgstr "" -#: js/toolbar.js:46 -#: js/toolbar.js:107 -msgid "About Music Blocks" +#: js/turtledefs.js:745 +msgid "Keyboard shortcuts" msgstr "" -#: js/toolbar.js:47 -#: js/toolbar.js:108 -#: js/toolbar.js:172 -#: js/toolbar.js:228 -#: js/turtledefs.js:445 -#: js/turtledefs.js:482 -#: js/activity.js:2281 -#: js/activity.js:2289 -#: js/activity.js:2520 -#: js/modewidget.js:77 -#: js/pitchstaircase.js:121 -#: js/phrasemaker.js:302 -#: js/phrasemaker.js:312 -#: js/phrasemaker.js:314 -#: js/phrasemaker.js:3901 -#: js/phrasemaker.js:4061 -#: js/phrasemaker.js:4066 -#: js/phrasemaker.js:4068 -#: js/phrasemaker.js:4183 -#: js/pitchdrummatrix.js:81 -#: js/pitchdrummatrix.js:574 -#: js/pitchdrummatrix.js:576 -#: js/pitchdrummatrix.js:628 -#: js/pitchdrummatrix.js:630 -#: js/pitchdrummatrix.js:645 -#: js/pitchdrummatrix.js:647 -#: js/pitchdrummatrix.js:674 -#: js/pitchdrummatrix.js:676 -#: js/temperament.js:477 -#: js/temperament.js:480 -#: js/temperament.js:540 -#: js/temperament.js:542 -#: js/temperament.js:1835 -#: js/temperament.js:1837 -#: js/temperament.js:1986 -#: js/temperament.js:1988 -#: js/musickeyboard.js:522 -#: js/musickeyboard.js:682 -#: js/musickeyboard.js:684 -#: js/musickeyboard.js:756 -#: js/musickeyboard.js:758 -#: js/rhythmruler.js:298 -#: js/rhythmruler.js:300 -#: js/rhythmruler.js:314 -#: js/rhythmruler.js:316 -#: js/sampler.js:96 -#: js/sampler.js:98 -#: js/sampler.js:229 -#: js/sampler.js:235 -#: js/sampler.js:237 -#: js/tempo.js:84 -#: js/tempo.js:86 -#: js/timbre.js:432 -#: js/timbre.js:434 -#: js/timbre.js:465 -#: js/timbre.js:467 -#: js/timbre.js:746 -#: js/meterwidget.js:80 -#: js/arpeggio.js:90 -#: js/arpeggio.js:547 -#: js/arpeggio.js:549 -#: js/arpeggio.js:644 -#: js/arpeggio.js:646 -msgid "Play" +#: js/turtledefs.js:746 +msgid "You can type d to create a do block and r to create a re block etc." msgstr "" -#: js/toolbar.js:48 -#: js/toolbar.js:109 -#: js/toolbar.js:173 -#: js/toolbar.js:229 -#: js/turtledefs.js:451 -#: js/turtledefs.js:488 -#: js/activity.js:2297 -#: js/modewidget.js:99 -#: js/modewidget.js:101 -#: js/phrasemaker.js:323 -#: js/phrasemaker.js:325 -#: js/pitchdrummatrix.js:561 -#: js/pitchdrummatrix.js:563 -#: js/temperament.js:1820 -#: js/temperament.js:1822 -#: js/meterwidget.js:101 -#: js/meterwidget.js:103 -#: js/arpeggio.js:534 -#: js/arpeggio.js:536 -msgid "Stop" -msgstr "단계 실행" +#: js/turtledefs.js:753 +msgid "Show these messages." +msgstr "" -#: js/toolbar.js:49 -#: js/toolbar.js:110 -#: js/toolbar.js:174 -#: js/toolbar.js:230 -#: js/turtledefs.js:498 -msgid "Record" +#: js/turtledefs.js:759 +#: js/turtledefs.js:790 +#: js/widgets/help.js:335 +msgid "Guide" msgstr "" -#: js/toolbar.js:50 -#: js/toolbar.js:51 -msgid "Full screen" +#: js/turtledefs.js:760 +msgid "A detailed guide to Turtle Blocks is available." msgstr "" -#: js/toolbar.js:52 -#: js/toolbar.js:112 -#: js/toolbar.js:177 -#: js/toolbar.js:232 -#: js/turtledefs.js:504 -msgid "Toggle Fullscreen" +#: js/turtledefs.js:764 +msgid "Turtle Blocks Guide" msgstr "" -#: js/toolbar.js:53 -#: js/toolbar.js:113 -#: js/toolbar.js:178 -#: js/toolbar.js:233 -#: js/turtledefs.js:510 -#: js/StringHelper.js:33 -msgid "New project" +#: js/turtledefs.js:767 +#: js/turtledefs.js:798 +#: js/widgets/help.js:336 +msgid "About" msgstr "" -#: js/toolbar.js:54 -#: js/toolbar.js:114 -#: js/toolbar.js:179 -#: js/toolbar.js:234 -#: js/turtledefs.js:516 -msgid "Load project from file" +#: js/turtledefs.js:768 +msgid "Turtle Blocks is an open source collection of tools for exploring musical concepts." msgstr "" -#: js/toolbar.js:55 -#: js/toolbar.js:115 -#: js/toolbar.js:116 -#: js/toolbar.js:180 -#: js/toolbar.js:235 -#: js/turtledefs.js:541 -#: js/turtledefs.js:550 -#: js/turtledefs.js:571 -msgid "Save project" +#: js/turtledefs.js:770 +msgid "A full list of contributors can be found in the Turtle Blocks GitHub repository." msgstr "" -#: js/toolbar.js:56 -#: js/toolbar.js:75 -#: js/toolbar.js:77 -#: js/toolbar.js:135 -#: js/toolbar.js:144 -#: js/toolbar.js:146 -#: js/toolbar.js:181 -#: js/toolbar.js:199 -#: js/toolbar.js:201 -#: js/toolbar.js:236 -#: js/toolbar.js:254 -#: js/toolbar.js:256 -msgid "Save project as HTML" +#: js/turtledefs.js:772 +msgid "Turtle Blocks is licensed under the AGPL." msgstr "" -#: js/toolbar.js:57 -#: js/toolbar.js:117 -#: js/toolbar.js:182 -#: js/toolbar.js:237 -msgid "Find and share projects" +#: js/turtledefs.js:780 +msgid "Turtle Blocks GitHub repository" +msgstr "" + +#: js/turtledefs.js:783 +#: js/turtledefs.js:814 +#: js/widgets/help.js:337 +#: js/widgets/help.js:359 +msgid "Congratulations." +msgstr "" + +#: js/turtledefs.js:784 +msgid "You have finished the tour. Please enjoy Turtle Blocks!" +msgstr "" + +#: js/turtledefs.js:791 +msgid "A detailed guide to Music Blocks is available." +msgstr "" + +#: js/turtledefs.js:799 +msgid "Music Blocks is an open source collection of tools for exploring musical concepts." +msgstr "" + +#: js/turtledefs.js:801 +msgid "A full list of contributors can be found in the Music Blocks GitHub repository." +msgstr "" + +#: js/turtledefs.js:803 +msgid "Music Blocks is licensed under the AGPL." +msgstr "" + +#: js/turtledefs.js:811 +msgid "Music Blocks GitHub repository" msgstr "" -#: js/toolbar.js:58 -#: js/toolbar.js:118 -#: js/toolbar.js:183 -#: js/toolbar.js:238 -msgid "Offline. Sharing is unavailable" +#: js/turtledefs.js:815 +msgid "You have finished the tour. Please enjoy Music Blocks!" msgstr "" -#: js/toolbar.js:59 -#: js/toolbar.js:119 -#: js/toolbar.js:184 -#: js/toolbar.js:239 -msgid "Auxiliary menu" +#: js/turtles.js:882 +msgid "Grid" msgstr "" -#: js/toolbar.js:61 -#: js/toolbar.js:121 -#: js/toolbar.js:186 -#: js/toolbar.js:241 -msgid "Run slowly" +#: js/turtles.js:1024 +msgid "Expand" msgstr "" -#: js/toolbar.js:62 -#: js/toolbar.js:122 -#: js/toolbar.js:187 -#: js/toolbar.js:242 -#: js/turtledefs.js:682 -msgid "Run step by step" +#: js/block-verbose.js:1616 +#: js/block-verbose.js:1735 +#: js/block.js:1580 +#: js/block.js:1699 +#: js/palette.js:605 +#: js/blocks/IntervalsBlocks.js:63 +#: js/blocks/WidgetBlocks.js:259 +msgid "temperament" msgstr "" -#: js/toolbar.js:63 -#: js/toolbar.js:123 -#: js/toolbar.js:188 -#: js/toolbar.js:243 -#: js/turtledefs.js:689 -msgid "Display statistics" +#: js/block-verbose.js:1630 +#: js/block.js:1594 +msgid "matrix" msgstr "" -#: js/toolbar.js:64 -#: js/toolbar.js:124 -#: js/toolbar.js:189 -#: js/toolbar.js:244 -msgid "Load plugin" +#: js/block-verbose.js:1637 +#: js/block.js:1601 +#: js/blocks/WidgetBlocks.js:1509 +#: plugins/rodi.rtp:324 +msgid "status" msgstr "" -#: js/toolbar.js:65 -#: js/toolbar.js:125 -#: js/toolbar.js:190 -#: js/toolbar.js:245 -#: js/turtledefs.js:696 -msgid "Delete plugin" +#: js/block-verbose.js:1644 +#: js/block.js:1608 +msgid "drum mapper" msgstr "" -#: js/toolbar.js:66 -#: js/toolbar.js:126 -#: js/toolbar.js:191 -#: js/toolbar.js:246 -msgid "Enable horizontal scrolling" +#: js/block-verbose.js:1651 +#: js/block.js:1615 +msgid "ruler" msgstr "" -#: js/toolbar.js:67 -#: js/toolbar.js:127 -#: js/toolbar.js:192 -#: js/toolbar.js:247 -msgid "Disable horizontal scrolling" +#: js/block-verbose.js:1658 +#: js/block.js:1622 +#: js/blocks/WidgetBlocks.js:397 +#.TRANS: timbre is the character or quality of a musical sound +msgid "timbre" msgstr "" -#: js/toolbar.js:68 -#: js/toolbar.js:128 -#: js/toolbar.js:193 -#: js/toolbar.js:248 -#: js/LocalCard.js:54 -#: js/StringHelper.js:71 -msgid "Merge with current project" +#: js/block-verbose.js:1665 +#: js/block.js:1629 +msgid "stair" msgstr "" -#: js/toolbar.js:69 -#: js/toolbar.js:129 -msgid "Set Pitch Preview" -msgstr "" +#: js/block-verbose.js:1672 +#: js/block.js:1636 +#: js/blocks/WidgetBlocks.js:707 +#.TRANS: the speed at music is should be played. +msgid "tempo" +msgstr "빠르기." -#: js/toolbar.js:70 -#: js/toolbar.js:130 -#: js/toolbar.js:194 -#: js/toolbar.js:249 -msgid "Toggle JavaScript Editor" +#: js/block-verbose.js:1679 +#: js/block-verbose.js:1742 +#: js/block.js:1643 +#: js/block.js:1706 +#: js/blocks/IntervalsBlocks.js:1464 +#.TRANS: mode, e.g., Major in C Major +msgid "mode" msgstr "" -#: js/toolbar.js:71 -#: js/toolbar.js:131 -#: js/toolbar.js:195 -#: js/toolbar.js:250 -#: js/turtledefs.js:724 -msgid "Restore" +#: js/block-verbose.js:1686 +#: js/block.js:1650 +msgid "slider" msgstr "" -#: js/toolbar.js:72 -#: js/toolbar.js:132 -#: js/toolbar.js:196 -#: js/toolbar.js:251 -msgid "Switch to beginner mode" +#: js/block-verbose.js:1693 +#: js/block.js:1657 +#: js/blocks/SensorsBlocks.js:1001 +msgid "keyboard" +msgstr "키보드" + +#: js/block-verbose.js:1707 +#: js/block.js:1671 +#: js/blocks/WidgetBlocks.js:1190 +#: js/blocks/WidgetBlocks.js:1228 +#.TRANS: widget for subdividing a measure into distinct rhythmic elements +msgid "rhythm maker" msgstr "" -#: js/toolbar.js:73 -#: js/toolbar.js:133 -#: js/toolbar.js:197 -#: js/toolbar.js:252 -msgid "Switch to advanced mode" +#: js/block-verbose.js:1714 +#: js/block-verbose.js:2457 +#: js/block-verbose.js:2514 +#: js/block.js:1678 +#: js/block.js:2385 +#: js/block.js:2442 +#: js/blocks/MeterBlocks.js:1367 +#: js/blocks/OrnamentBlocks.js:220 +#: js/blocks/OrnamentBlocks.js:312 +#: js/blocks/RhythmBlocks.js:33 +#: js/blocks/RhythmBlocks.js:356 +#: js/blocks/RhythmBlocks.js:766 +#: js/blocks/RhythmBlocks.js:806 +#: js/blocks/RhythmBlockPaletteBlocks.js:70 +#: js/blocks/RhythmBlockPaletteBlocks.js:252 +#: js/blocks/RhythmBlockPaletteBlocks.js:485 +#: js/blocks/RhythmBlockPaletteBlocks.js:554 +#: js/blocks/RhythmBlockPaletteBlocks.js:605 +#: js/blocks/RhythmBlockPaletteBlocks.js:875 +#: js/turtleactions/DictActions.js:85 +#: js/widgets/phrasemaker.js:942 +#: js/widgets/phrasemaker.js:2656 +#: js/widgets/phrasemaker.js:2699 +#: js/widgets/phrasemaker.js:2810 +#.TRANS: the value (e.g., 1/4 note) of the note being played. +msgid "note value" +msgstr "음표 값" + +#: js/block-verbose.js:1721 +#: js/block-verbose.js:2382 +#: js/block-verbose.js:2405 +#: js/block.js:1685 +#: js/block.js:2310 +#: js/block.js:2333 +#: js/blocks/IntervalsBlocks.js:1071 +#: js/blocks/OrnamentBlocks.js:312 +#.TRANS: calculate a relative step between notes based on semi-tones +msgid "scalar interval" msgstr "" -#: js/toolbar.js:74 -#: js/toolbar.js:134 -#: js/toolbar.js:143 -#: js/toolbar.js:198 -#: js/toolbar.js:253 -#: js/turtledefs.js:738 -msgid "Select language" +#: js/block-verbose.js:1728 +#: js/block.js:1692 +#: js/blocks/RhythmBlocks.js:148 +msgid "milliseconds" msgstr "" -#: js/toolbar.js:76 -#: js/toolbar.js:79 -#: js/toolbar.js:137 -#: js/turtledefs.js:579 -msgid "Save mouse artwork as PNG" +#: js/block-verbose.js:2455 +#: js/block-verbose.js:2459 +#: js/block-verbose.js:2512 +#: js/block-verbose.js:2628 +#: js/block.js:2383 +#: js/block.js:2387 +#: js/block.js:2440 +#: js/block.js:2556 +#: js/blocks/RhythmBlocks.js:712 +#: js/blocks/ProgramBlocks.js:1273 +#: js/widgets/rhythmruler.js:1183 +#: js/widgets/rhythmruler.js:1329 +msgid "silence" msgstr "" -#: js/toolbar.js:78 -#: js/toolbar.js:136 -#: js/turtledefs.js:575 -msgid "Save mouse artwork as SVG" +#: js/block-verbose.js:2548 +#: js/block-verbose.js:3492 +#: js/block-verbose.js:3509 +#: js/activity.js:2718 +#: js/activity.js:2769 +#: js/block.js:2476 +#: js/block.js:3416 +#: js/block.js:3433 +#: js/utils/musicutils.js:3780 +#: js/utils/musicutils.js:5273 +#.TRANS: the note names must be separated by single spaces +#.TRANS: the note names must be separated by single spaces +#.TRANS: the note names must be separated by single spaces +msgid "ti la sol fa mi re do" msgstr "" -#: js/toolbar.js:80 -#: js/toolbar.js:138 -#: js/turtledefs.js:583 -msgid "Save music as WAV" +#: js/block-verbose.js:2616 +#: js/block.js:2544 +#.TRANS: scalar step +#.TRANS: scalar step +msgid "down" msgstr "" -#: js/toolbar.js:81 -#: js/toolbar.js:139 -#: js/turtledefs.js:587 -msgid "Save sheet music as ABC" +#: js/block-verbose.js:2617 +#: js/block.js:2545 +msgid "up" msgstr "" -#: js/toolbar.js:82 -#: js/toolbar.js:140 -#: js/turtledefs.js:591 -msgid "Save sheet music as Lilypond" +#: js/block-verbose.js:3026 +#: js/block.js:2950 +msgid "Silence block cannot be removed." msgstr "" -#: js/toolbar.js:83 -msgid "Save sheet music as MusicXML" +#: js/block-verbose.js:3824 +#: js/block.js:3748 +#: js/blocks.js:2607 +#: js/blocks.js:3218 +#: js/palette.js:618 +#: js/blocks/BooleanBlocks.js:77 +#: js/blocks/BooleanBlocks.js:167 +#: js/blocks/BooleanBlocks.js:251 +#: js/blocks/BooleanBlocks.js:335 +#: js/blocks/BooleanBlocks.js:433 +#: js/blocks/BooleanBlocks.js:539 +#: js/blocks/BooleanBlocks.js:640 +#: js/blocks/BooleanBlocks.js:741 +#: js/blocks/BooleanBlocks.js:847 +#: js/blocks/BooleanBlocks.js:948 +#: js/blocks/BooleanBlocks.js:1033 +#: js/blocks/SensorsBlocks.js:910 +msgid "true" msgstr "" -#: js/toolbar.js:84 -#: js/toolbar.js:141 -#: js/toolbar.js:149 -#: js/toolbar.js:204 -#: js/toolbar.js:259 -#: js/turtledefs.js:562 -#: js/turtledefs.js:595 -msgid "Save block artwork as SVG" +#: js/block-verbose.js:3824 +#: js/block.js:3748 +#: js/blocks.js:2609 +#: js/blocks.js:3220 +#: js/blocks/BooleanBlocks.js:79 +#: js/blocks/BooleanBlocks.js:169 +#: js/blocks/BooleanBlocks.js:253 +#: js/blocks/BooleanBlocks.js:337 +#: js/blocks/BooleanBlocks.js:435 +#: js/blocks/BooleanBlocks.js:541 +#: js/blocks/BooleanBlocks.js:642 +#: js/blocks/BooleanBlocks.js:743 +#: js/blocks/BooleanBlocks.js:849 +#: js/blocks/BooleanBlocks.js:950 +#: js/blocks/SensorsBlocks.js:912 +msgid "false" msgstr "" -#: js/toolbar.js:85 -#: js/toolbar.js:142 -#: js/toolbar.js:150 -#: js/toolbar.js:205 -#: js/toolbar.js:260 -msgid "Confirm" +#: js/block-verbose.js:3835 +#: js/block-verbose.js:3848 +#: js/block.js:3759 +#: js/block.js:3772 +#: js/blocks/ExtrasBlocks.js:615 +msgid "Cartesian" msgstr "" -#: js/toolbar.js:86 -#: js/toolbar.js:151 -#: js/toolbar.js:206 -#: js/toolbar.js:261 -msgid "English (United States)" +#: js/block-verbose.js:3836 +#: js/block-verbose.js:3849 +#: js/block.js:3760 +#: js/block.js:3773 +#: js/blocks/ExtrasBlocks.js:619 +msgid "polar" msgstr "" -#: js/toolbar.js:87 -#: js/toolbar.js:152 -#: js/toolbar.js:207 -#: js/toolbar.js:262 -msgid "English (United Kingdom)" +#: js/block-verbose.js:3837 +#: js/block-verbose.js:3850 +#: js/block.js:3761 +#: js/block.js:3774 +#: js/blocks/ExtrasBlocks.js:623 +msgid "Cartesian+polar" msgstr "" -#: js/toolbar.js:88 -#: js/toolbar.js:153 -#: js/toolbar.js:208 -#: js/toolbar.js:263 -msgid "日本語" +#: js/block-verbose.js:3838 +#: js/block-verbose.js:3857 +#: js/block.js:3762 +#: js/block.js:3781 +#: js/blocks/ExtrasBlocks.js:652 +msgid "none" msgstr "" -#: js/toolbar.js:89 -msgid "한국어" +#: js/block-verbose.js:3851 +#: js/block.js:3775 +#: js/blocks/ExtrasBlocks.js:628 +msgid "treble" msgstr "" -#: js/toolbar.js:90 -#: js/toolbar.js:155 -#: js/toolbar.js:210 -#: js/toolbar.js:265 -msgid "español" +#: js/block-verbose.js:3852 +#: js/block.js:3776 +#: js/blocks/ExtrasBlocks.js:632 +msgid "grand staff" msgstr "" -#: js/toolbar.js:91 -#: js/toolbar.js:156 -#: js/toolbar.js:211 -#: js/toolbar.js:266 -msgid "português" +#: js/block-verbose.js:3853 +#: js/block.js:3777 +#: js/blocks/ExtrasBlocks.js:636 +msgid "mezzo-soprano" +msgstr "메조 소프라노." + +#: js/block-verbose.js:3854 +#: js/block.js:3778 +#: js/blocks/ExtrasBlocks.js:640 +msgid "alto" +msgstr "알토." + +#: js/block-verbose.js:3855 +#: js/block.js:3779 +#: js/blocks/ExtrasBlocks.js:644 +msgid "tenor" +msgstr "테너." + +#: js/block-verbose.js:3856 +#: js/block.js:3780 +#: js/utils/musicutils.js:1115 +#: js/utils/synthutils.js:80 +#: js/blocks/ExtrasBlocks.js:648 +#.TRANS: musical instrument +msgid "bass" +msgstr "베이스." + +#: js/block-verbose.js:3901 +#: js/block.js:3825 +#: js/blocks.js:2600 +#: js/blocks.js:3211 +msgid "on2" msgstr "" -#: js/toolbar.js:92 -#: js/toolbar.js:157 -#: js/toolbar.js:212 -#: js/toolbar.js:267 -msgid "にほんご" +#: js/block-verbose.js:3903 +#: js/block.js:3827 +#: js/blocks.js:2602 +#: js/blocks.js:3213 +msgid "off" msgstr "" -#: js/toolbar.js:93 -#: js/toolbar.js:158 -#: js/toolbar.js:213 -#: js/toolbar.js:268 -msgid "中文" +#: js/block-verbose.js:4470 +#: js/block.js:4394 +msgid "Not a number" msgstr "" -#: js/toolbar.js:94 -#: js/toolbar.js:159 -#: js/toolbar.js:214 -#: js/toolbar.js:269 -msgid "ภาษาไทย" +#: js/block-verbose.js:4477 +#: js/block.js:4401 +msgid "Octave value must be between 1 and 10." msgstr "" -#: js/toolbar.js:95 -#: js/toolbar.js:160 -#: js/toolbar.js:215 -#: js/toolbar.js:270 -msgid "aymara" +#: js/block-verbose.js:4485 +#: js/block.js:4409 +msgid "Numbers can have at most 10 digits." msgstr "" -#: js/toolbar.js:96 -#: js/toolbar.js:161 -#: js/toolbar.js:216 -#: js/toolbar.js:271 -msgid "quechua" +#: js/activity.js:390 +#: js/activity.js:395 +msgid "Search for blocks" msgstr "" -#: js/toolbar.js:97 -#: js/toolbar.js:162 -#: js/toolbar.js:217 -#: js/toolbar.js:272 -msgid "guarani" +#: js/activity.js:1413 +msgid "Refresh your browser to change to advanced mode." msgstr "" -#: js/toolbar.js:98 -#: js/toolbar.js:163 -#: js/toolbar.js:218 -#: js/toolbar.js:273 -msgid "हिंदी" +#: js/activity.js:1418 +msgid "Refresh your browser to change to beginner mode." msgstr "" -#: js/toolbar.js:99 -#: js/toolbar.js:165 -#: js/toolbar.js:219 -#: js/toolbar.js:275 -msgid "igbo" +#: js/activity.js:1477 +msgid "Catching mice" msgstr "" -#: js/toolbar.js:100 -#: js/toolbar.js:166 -#: js/toolbar.js:220 -#: js/toolbar.js:276 -msgid "عربى" +#: js/activity.js:1478 +msgid "Cleaning the instruments" msgstr "" -#: js/toolbar.js:101 -#: js/toolbar.js:164 -#: js/toolbar.js:221 -#: js/toolbar.js:274 -msgid "తెలుగు" +#: js/activity.js:1479 +msgid "Testing key pieces" msgstr "" -#: js/toolbar.js:102 -#: js/toolbar.js:167 -#: js/toolbar.js:222 -#: js/toolbar.js:277 -msgid "עִברִית" +#: js/activity.js:1480 +msgid "Sight-reading" msgstr "" -#: js/toolbar.js:111 -#: js/toolbar.js:175 -#: js/toolbar.js:176 -#: js/toolbar.js:231 -msgid "Full Screen" +#: js/activity.js:1481 +msgid "Combining math and music" msgstr "" -#: js/toolbar.js:145 -#: js/toolbar.js:148 -#: js/toolbar.js:200 -#: js/toolbar.js:203 -#: js/toolbar.js:255 -#: js/toolbar.js:258 -#: js/turtledefs.js:558 -msgid "Save turtle artwork as PNG" +#: js/activity.js:1482 +msgid "Generating more blocks" msgstr "" -#: js/toolbar.js:147 -#: js/toolbar.js:202 -#: js/toolbar.js:257 -#: js/turtledefs.js:554 -msgid "Save turtle artwork as SVG" +#: js/activity.js:1483 +msgid "Do Re Mi Fa Sol La Ti Do" msgstr "" -#: js/toolbar.js:154 -#: js/toolbar.js:209 -#: js/toolbar.js:264 -msgid "한국인" +#: js/activity.js:1484 +msgid "Tuning string instruments" msgstr "" -#: js/toolbar.js:171 -#: js/toolbar.js:227 -msgid "About Turtle Blocks" +#: js/activity.js:1485 +msgid "Pressing random keys" msgstr "" -#: js/toolbar.js:429 -#: js/toolbar.js:440 -msgid "Turtle Wrap Off" +#: js/activity.js:1663 +msgid "plugins will be removed upon restart." msgstr "" -#: js/toolbar.js:442 -msgid "Turtle Wrap On" +#: js/activity.js:1672 +msgid "show Cartesian" msgstr "" -#: js/block.js:1470 -msgid "matrix" +#: js/activity.js:2211 +#: js/palette.js:589 +#: js/blocks/RhythmBlocks.js:923 +#: js/blocks/PitchBlocks.js:442 +#: js/blocks/PitchBlocks.js:1786 +#.TRANS: a numeric mapping of the notes in an octave based on the musical mode +msgid "scale degree" msgstr "" -#: js/block.js:1477 -#: js/WidgetBlocks.js:1226 -#: plugins/rodi.rtp:324 -msgid "status" +#: js/activity.js:2214 +#: js/palette.js:598 +msgid "voice name" msgstr "" -#: js/block.js:1484 -msgid "drum mapper" +#: js/activity.js:2217 +#: js/palette.js:595 +msgid "invert mode" msgstr "" -#: js/block.js:1491 -msgid "ruler" +#: js/activity.js:2220 +msgid "output tools" msgstr "" -#: js/block.js:1498 -#: js/WidgetBlocks.js:327 -#.TRANS: timbre is the character or quality of a musical sound -msgid "timbre" +#: js/activity.js:2223 +msgid "custom note" msgstr "" -#: js/block.js:1505 -msgid "stair" +#: js/activity.js:2226 +msgid "accidental name" msgstr "" -#: js/block.js:1512 -#: js/WidgetBlocks.js:577 -#.TRANS: the speed at music is should be played. -msgid "tempo" -msgstr "빠르기." - -#: js/block.js:1519 -#: js/block.js:1582 -#: js/IntervalsBlocks.js:1268 -#.TRANS: mode, e.g., Major in C Major -msgid "mode" +#: js/activity.js:2229 +#: js/blocks/PitchBlocks.js:855 +msgid "east indian solfege" msgstr "" -#: js/block.js:1526 -msgid "slider" +#: js/activity.js:2232 +#: js/blocks/PitchBlocks.js:869 +msgid "note name" msgstr "" -#: js/block.js:1533 -#: js/SensorsBlocks.js:1001 -msgid "keyboard" -msgstr "키보드" +#: js/activity.js:2235 +#: js/blocks/IntervalsBlocks.js:94 +msgid "temperament name" +msgstr "" -#: js/block.js:1547 -#: js/WidgetBlocks.js:957 -#: js/WidgetBlocks.js:988 -#.TRANS: widget for subdividing a measure into distinct rhythmic elements -msgid "rhythm maker" +#: js/activity.js:2238 +#: js/palette.js:592 +msgid "mode name" msgstr "" -#: js/block.js:1554 -#: js/block.js:2182 -#: js/block.js:2236 -#: js/RhythmBlockPaletteBlocks.js:70 -#: js/RhythmBlockPaletteBlocks.js:251 -#: js/RhythmBlockPaletteBlocks.js:484 -#: js/RhythmBlockPaletteBlocks.js:553 -#: js/RhythmBlockPaletteBlocks.js:604 -#: js/RhythmBlockPaletteBlocks.js:874 -#: js/RhythmBlocks.js:33 -#: js/RhythmBlocks.js:356 -#: js/RhythmBlocks.js:766 -#: js/RhythmBlocks.js:806 -#: js/OrnamentBlocks.js:220 -#: js/OrnamentBlocks.js:312 -#: js/MeterBlocks.js:1367 -#: js/DictActions.js:85 -#: js/phrasemaker.js:731 -#: js/phrasemaker.js:2393 -#: js/phrasemaker.js:2436 -#: js/phrasemaker.js:2534 -#.TRANS: the value (e.g., 1/4 note) of the note being played. -msgid "note value" -msgstr "음표 값" +#: js/activity.js:2241 +msgid "chord name" +msgstr "" -#: js/block.js:1561 -#: js/block.js:2110 -#: js/block.js:2133 -#: js/IntervalsBlocks.js:875 -#: js/OrnamentBlocks.js:312 -#.TRANS: calculate a relative step between notes based on semi-tones -msgid "scalar interval" +#: js/activity.js:2244 +#: js/palette.js:615 +msgid "interval name" msgstr "" -#: js/block.js:1568 -#: js/RhythmBlocks.js:148 -msgid "milliseconds" +#: js/activity.js:2247 +msgid "filter type" msgstr "" -#: js/block.js:2180 -#: js/block.js:2184 -#: js/block.js:2234 -#: js/block.js:2345 -#: js/ProgramBlocks.js:1273 -#: js/RhythmBlocks.js:712 -#: js/rhythmruler.js:834 -#: js/rhythmruler.js:961 -msgid "silence" +#: js/activity.js:2250 +msgid "oscillator type" msgstr "" -#: js/block.js:2265 -#: js/block.js:3134 -#: js/block.js:3151 -#: js/activity.js:2336 -#: js/activity.js:2387 -#: js/musicutils.js:2932 -#: js/musicutils.js:4287 -#.TRANS: the note names must be separated by single spaces -#.TRANS: the note names must be separated by single spaces -msgid "ti la sol fa mi re do" +#: js/activity.js:2253 +#: js/blocks.js:2479 +#: js/blocks.js:2487 +msgid "audio file" msgstr "" -#: js/block.js:2333 -#.TRANS: scalar step -msgid "down" +#: js/activity.js:2256 +#: js/blocks/DrumBlocks.js:32 +msgid "noise name" msgstr "" -#: js/block.js:2334 -msgid "up" +#: js/activity.js:2259 +#: js/blocks/DrumBlocks.js:75 +msgid "drum name" msgstr "" -#: js/block.js:3477 -#: js/block.js:3490 -#: js/ExtrasBlocks.js:612 -msgid "Cartesian" +#: js/activity.js:2262 +#: js/blocks/DrumBlocks.js:119 +msgid "effects name" msgstr "" -#: js/block.js:3478 -#: js/block.js:3491 -#: js/ExtrasBlocks.js:616 -msgid "polar" +#: js/activity.js:2265 +msgid "wrap mode" msgstr "" -#: js/block.js:3479 -#: js/block.js:3492 -#: js/ExtrasBlocks.js:620 -msgid "Cartesian+polar" +#: js/activity.js:2268 +msgid "load file" msgstr "" -#: js/block.js:3480 -#: js/block.js:3499 -#: js/ExtrasBlocks.js:649 -msgid "none" +#: js/activity.js:2435 +#: js/activity.js:5851 +msgid "This block is deprecated." msgstr "" -#: js/block.js:3493 -#: js/ExtrasBlocks.js:625 -msgid "treble" +#: js/activity.js:2437 +#: js/activity.js:5853 +msgid "Block cannot be found." msgstr "" -#: js/block.js:3494 -#: js/ExtrasBlocks.js:629 -msgid "grand staff" +#: js/activity.js:2645 +msgid "Saving block artwork" msgstr "" -#: js/block.js:3495 -#: js/ExtrasBlocks.js:633 -msgid "mezzo-soprano" -msgstr "메조 소프라노." +#: js/activity.js:2656 +msgid "Erase" +msgstr "" -#: js/block.js:3496 -#: js/ExtrasBlocks.js:637 -msgid "alto" -msgstr "알토." +#: js/activity.js:2683 +#: js/activity.js:2705 +msgid "Paste" +msgstr "" -#: js/block.js:3497 -#: js/ExtrasBlocks.js:641 -msgid "tenor" -msgstr "테너." +#: js/activity.js:2687 +msgid "Save block help" +msgstr "" -#: js/block.js:3498 -#: js/ExtrasBlocks.js:645 -#: js/musicutils.js:736 -#: js/synthutils.js:64 -#.TRANS: musical instrument -msgid "bass" -msgstr "베이스." +#: js/activity.js:2772 +msgid "Jumping to the bottom of the page." +msgstr "" -#: js/block.js:4075 -msgid "Not a number" +#: js/activity.js:2778 +msgid "Scrolling up." msgstr "" -#: js/block.js:4082 -msgid "Octave value must be between 1 and 10." +#: js/activity.js:2783 +msgid "Scrolling down." msgstr "" -#: js/block.js:4090 -msgid "Numbers can have at most 10 digits." +#: js/activity.js:2788 +msgid "Extracting block" msgstr "" -#: js/notation.js:353 -msgid "Lilypond cannot process pickup of " +#: js/activity.js:2796 +msgid "Moving block up." msgstr "" -#: js/turtledefs.js:40 -#.TRANS: put the URL to the guide here, e.g., https://github.com/sugarlabs/turtleblocksjs/tree/master/guide/README.md -msgid "guide url" +#: js/activity.js:2817 +msgid "Moving block down." msgstr "" -#: js/turtledefs.js:85 -#: js/turtledefs.js:437 -msgid "Turtle Blocks is a Logo-inspired turtle that draws colorful pictures with snap-together visual-programming blocks." +#: js/activity.js:2838 +msgid "Moving block left." msgstr "" -#: js/turtledefs.js:118 -#: js/turtledefs.js:220 -msgid "search" +#: js/activity.js:2855 +msgid "Moving block right." msgstr "" -#: js/turtledefs.js:120 -#: js/turtledefs.js:222 -#: js/WidgetBlocks.js:437 -#: js/MeterBlocks.js:1343 -#.TRANS: musical meter (time signature), e.g., 4:4 -msgid "meter" +#: js/activity.js:2870 +msgid "Jump to home position." msgstr "" -#: js/turtledefs.js:122 -#: js/turtledefs.js:224 -msgid "intervals" +#: js/activity.js:2897 +msgid "Hide blocks" msgstr "" -#: js/turtledefs.js:124 -#: js/turtledefs.js:226 -msgid "ornament" +#: js/activity.js:4500 +msgid "Click the run button to run the project." msgstr "" -#: js/turtledefs.js:125 -#: js/turtledefs.js:227 -#: js/VolumeBlocks.js:362 -#: js/VolumeBlocks.js:502 -#: js/VolumeBlocks.js:545 -msgid "volume" +#: js/activity.js:5692 +msgid "Show/hide block" msgstr "" -#: js/turtledefs.js:129 -#: js/turtledefs.js:231 -msgid "boxes" +#: js/activity.js:5698 +msgid "Expand/collapse blocks" msgstr "" -#: js/turtledefs.js:130 -#: js/turtledefs.js:232 -msgid "widgets" +#: js/activity.js:5976 +msgid "Could not parse JSON input." msgstr "" -#: js/turtledefs.js:131 -#: js/turtledefs.js:233 -#: js/phrasemaker.js:824 -msgid "graphics" +#: js/activity.js:6475 +#: js/activity.js:6580 +#: js/activity.js:6631 +msgid "Cannot load project from the file. Please check the file type." msgstr "" -#: js/turtledefs.js:134 -#: js/turtledefs.js:236 -msgid "boolean" +#: js/activity.js:6917 +msgid "Invalid parameters" msgstr "" -#: js/turtledefs.js:137 -#: js/turtledefs.js:239 -#: js/HeapBlocks.js:59 -#: js/status.js:147 -msgid "heap" +#: js/blocks.js:1212 +#: js/blocks.js:3444 +#: js/blocks.js:3834 +#: js/blocks.js:3865 +#: js/blocks.js:3914 +#: js/blocks.js:3949 +#: js/blocks.js:6586 +#: js/palette.js:509 +#: js/palette.js:638 +#: js/palette.js:1105 +#: js/blocks/BoxesBlocks.js:282 +#: js/blocks/BoxesBlocks.js:285 +#: js/blocks/BoxesBlocks.js:405 +#: js/blocks/BoxesBlocks.js:594 +msgid "box" +msgstr "상자" + +#: js/blocks.js:1713 +msgid "Consider breaking this stack into parts." msgstr "" -#: js/turtledefs.js:138 -#: js/turtledefs.js:240 -#: js/ProgramBlocks.js:495 -#: js/DictBlocks.js:142 -msgid "dictionary" +#: js/blocks.js:2472 +#: js/palette.js:653 +#: js/blocks/MediaBlocks.js:602 +msgid "open file" msgstr "" -#: js/turtledefs.js:139 -#: js/turtledefs.js:241 -msgid "ensemble" +#: js/blocks.js:3247 +#: js/palette.js:574 +#: js/blocks/MediaBlocks.js:892 +#: js/blocks/MediaBlocks.js:963 +msgid "text" +msgstr "텍스트" + +#: js/blocks.js:3443 +#: js/palette.js:641 +#: js/palette.js:642 +#: js/blocks/BoxesBlocks.js:514 +msgid "store in box" msgstr "" -#: js/turtledefs.js:140 -#: js/turtledefs.js:242 -msgid "extras" +#: js/blocks.js:3448 +#: js/blocks.js:3888 +#: js/blocks.js:3923 +#: js/blocks.js:3958 +#: js/blocks.js:5862 +#: js/blocks.js:5883 +#: js/blocks/BoxesBlocks.js:772 +msgid "box1" msgstr "" -#: js/turtledefs.js:142 -#: js/turtledefs.js:244 -#.TRANS: program as in computer program -#.TRANS: program as in computer program -msgid "program" +#: js/blocks.js:3450 +#: js/blocks.js:3890 +#: js/blocks.js:3925 +#: js/blocks.js:3960 +#: js/blocks.js:5864 +#: js/blocks.js:5885 +#: js/blocks/BoxesBlocks.js:663 +msgid "box2" msgstr "" -#: js/turtledefs.js:143 -#: js/turtledefs.js:245 -msgid "my blocks" +#: js/blocks.js:4122 +#: js/palette.js:639 +#: js/palette.js:644 +#: js/palette.js:1041 +#: js/blocks/BoxesBlocks.js:591 +msgid "store in" msgstr "" -#: js/turtledefs.js:185 -#: js/turtledefs.js:281 -msgid "artwork" +#: js/blocks.js:4122 +#: js/blocks/BoxesBlocks.js:595 +#: js/blocks/DictBlocks.js:215 +#: js/blocks/DictBlocks.js:289 +#: js/blocks/EnsembleBlocks.js:391 +#: js/blocks/EnsembleBlocks.js:402 +#: js/blocks/MediaBlocks.js:746 +#: js/blocks/PitchBlocks.js:656 +#: js/blocks/PitchBlocks.js:934 +#: js/blocks/PitchBlocks.js:1866 +#: js/blocks/ProgramBlocks.js:390 +#: js/blocks/ProgramBlocks.js:495 +#: js/blocks/ProgramBlocks.js:658 +#: js/blocks/ToneBlocks.js:1025 +msgid "name" msgstr "" -#: js/turtledefs.js:185 -#: js/turtledefs.js:281 -msgid "logic" +#: js/blocks.js:4122 +#: js/blocks/BoxesBlocks.js:75 +#: js/blocks/BoxesBlocks.js:595 +#: js/blocks/DictBlocks.js:289 +#: js/blocks/DictBlocks.js:430 +#: js/blocks/HeapBlocks.js:544 +#: js/blocks/RhythmBlocks.js:1130 +msgid "value" +msgstr "값" + +#: js/blocks.js:4465 +msgid "Forever loop detected inside a note value block. Unexpected things may happen." msgstr "" -#: js/turtledefs.js:185 -#: js/turtledefs.js:281 -msgid "music" +#: js/blocks.js:4988 +msgid "There is no block selected." msgstr "" -#: js/turtledefs.js:187 -#: js/turtledefs.js:463 -msgid "Music Blocks is a collection of tools for exploring fundamental musical concepts in a fun way." +#: js/blocks.js:5091 +#: js/blocks/MediaBlocks.js:888 +msgid "show" msgstr "" -#: js/turtledefs.js:436 -msgid "Welcome to Turtle Blocks" +#: js/blocks.js:5094 +#: js/blocks/MediaBlocks.js:803 +#.TRANS: Avatar is the image used to determine the appearance of the mouse. +msgid "avatar" msgstr "" -#: js/turtledefs.js:438 -#: js/turtledefs.js:465 -#: js/turtledefs.js:774 -#: js/turtledefs.js:805 -msgid "The current version is" +#: js/blocks.js:5097 +#: js/blocks/ToneBlocks.js:1010 +#: js/widgets/sampler.js:975 +#.TRANS: The sound sample that the user uploads. +msgid "sample" msgstr "" -#: js/turtledefs.js:446 -#: js/turtledefs.js:483 -msgid "Click the run button to run the project in fast mode." +#: js/lilypond.js:606 +msgid "brown rat" msgstr "" -#: js/turtledefs.js:452 -msgid "Stop the turtle." +#: js/lilypond.js:607 +msgid "mole" msgstr "" -#: js/turtledefs.js:454 -#: js/turtledefs.js:491 -msgid "You can also type Alt-S to stop." +#: js/lilypond.js:608 +msgid "chipmunk" msgstr "" -#: js/turtledefs.js:462 -#: js/help.js:333 -msgid "Welcome to Music Blocks" +#: js/lilypond.js:609 +msgid "red squirrel" msgstr "" -#: js/turtledefs.js:472 -#: js/help.js:334 -msgid "Meet Mr. Mouse!" +#: js/lilypond.js:610 +msgid "guinea pig" msgstr "" -#: js/turtledefs.js:473 -msgid "Mr Mouse is our Music Blocks conductor." +#: js/lilypond.js:611 +msgid "capybara" msgstr "" -#: js/turtledefs.js:475 -msgid "Mr Mouse encourages you to explore Music Blocks." +#: js/lilypond.js:612 +msgid "coypu" msgstr "" -#: js/turtledefs.js:477 -msgid "Let us start our tour!" +#: js/lilypond.js:613 +msgid "black rat" msgstr "" -#: js/turtledefs.js:489 -msgid "Stop the music (and the mice)." +#: js/lilypond.js:614 +msgid "grey squirrel" msgstr "" -#: js/turtledefs.js:499 -msgid "Record your project as video." +#: js/lilypond.js:615 +msgid "flying squirrel" msgstr "" -#: js/turtledefs.js:505 -msgid "Toggle Fullscreen mode." +#: js/lilypond.js:616 +msgid "bat" msgstr "" -#: js/turtledefs.js:511 -msgid "Initialize a new project." +#: js/lilypond.js:749 +#: js/lilypond.js:913 +#: js/lilypond.js:951 +#: js/blocks/ActionBlocks.js:1256 +#: js/blocks/ExtrasBlocks.js:556 +msgid "start drum" msgstr "" -#: js/turtledefs.js:517 -msgid "You can also load projects from the file system." +#: js/logo.js:61 +msgid "Not a valid pitch name" msgstr "" -#: js/turtledefs.js:522 -#: js/StringHelper.js:46 -msgid "Delete" +#: js/logo.js:507 +#: js/blocks/ProgramBlocks.js:258 +#: js/blocks/ProgramBlocks.js:427 +msgid "You must select a file." msgstr "" -#: js/turtledefs.js:523 -msgid "To delete a block, just right-click on it, then you will be able to see the delete option" +#: js/logo.js:1696 +msgid "Playback is ready." msgstr "" -#: js/turtledefs.js:528 -#: js/activity.js:2270 -#: js/LocalCard.js:31 -msgid "Copy" +#: js/macros.js:711 +#: js/utils/musicutils.js:1162 +#: js/utils/synthutils.js:202 +#.TRANS: animal sound effect +msgid "duck" msgstr "" -#: js/turtledefs.js:529 -msgid "To copy a block, just right-click on it, then you will be able to see the copy option" +#: js/notation.js:353 +msgid "Lilypond cannot process pickup of " msgstr "" -#: js/turtledefs.js:535 -msgid "To extract a block, just right-click on it, then you will be able to see the extract option" +#: js/palette.js:571 +msgid "grid" msgstr "" -#: js/turtledefs.js:542 -#: js/turtledefs.js:552 -#: js/turtledefs.js:573 -msgid "Save your project to a file." +#: js/palette.js:580 +msgid "effect" msgstr "" -#: js/turtledefs.js:549 -#: js/turtledefs.js:570 -msgid "save" +#: js/palette.js:586 +msgid "sargam" msgstr "" -#: js/turtledefs.js:556 -#: js/turtledefs.js:577 -msgid "Save graphics from your project to as SVG." +#: js/palette.js:601 +#: js/blocks/PitchBlocks.js:1209 +msgid "custom pitch" msgstr "" -#: js/turtledefs.js:560 -#: js/turtledefs.js:581 -msgid "Save graphics from your project as PNG." +#: js/palette.js:609 +msgid "accidental" msgstr "" -#: js/turtledefs.js:564 -#: js/turtledefs.js:597 -msgid "Save block artwork as an SVG file." +#: js/palette.js:633 +#: js/blocks/PitchBlocks.js:405 +msgid "pitch converter" msgstr "" -#: js/turtledefs.js:585 -msgid "Save audio from your project as WAV." +#: js/piemenus.js:200 +#: js/utils/musicutils.js:1187 +#: js/utils/musicutils.js:1207 +#: js/widgets/musickeyboard.js:2341 +#: js/widgets/phrasemaker.js:1908 +#: js/widgets/sampler.js:810 +#.TRANS: double sharp is a music term related to pitch +msgid "double sharp" msgstr "" -#: js/turtledefs.js:589 -msgid "Save your project to as an ABC file." +#: js/piemenus.js:201 +#: js/utils/musicutils.js:1185 +#: js/utils/musicutils.js:1208 +#: js/blocks/PitchBlocks.js:1539 +#: js/turtleactions/PitchActions.js:323 +#: js/widgets/musickeyboard.js:2342 +#: js/widgets/phrasemaker.js:1909 +#: js/widgets/sampler.js:811 +#.TRANS: sharp is a music term related to pitch +#.TRANS: sharp is a half-step up in pitch +msgid "sharp" msgstr "" -#: js/turtledefs.js:593 -msgid "Save your project to as a Lilypond file." +#: js/piemenus.js:202 +#: js/utils/musicutils.js:1183 +#: js/utils/musicutils.js:1209 +#: js/widgets/musickeyboard.js:2343 +#: js/widgets/phrasemaker.js:1910 +#: js/widgets/sampler.js:812 +#.TRANS: natural is a music term related to pitch +msgid "natural" msgstr "" -#: js/turtledefs.js:604 -msgid "Load samples from server" +#: js/piemenus.js:203 +#: js/utils/musicutils.js:1181 +#: js/utils/musicutils.js:1210 +#: js/blocks/PitchBlocks.js:1498 +#: js/turtleactions/PitchActions.js:326 +#: js/widgets/musickeyboard.js:2344 +#: js/widgets/phrasemaker.js:1911 +#: js/widgets/sampler.js:813 +#.TRANS: flat is a music term related to pitch +#.TRANS: flat is a half-step down in pitch +msgid "flat" msgstr "" -#: js/turtledefs.js:605 -msgid "This button opens a viewer for loading example projects." +#: js/piemenus.js:204 +#: js/utils/musicutils.js:1179 +#: js/utils/musicutils.js:1211 +#: js/widgets/musickeyboard.js:2345 +#: js/widgets/phrasemaker.js:1912 +#: js/widgets/sampler.js:814 +#.TRANS: double flat is a music term related to pitch +msgid "double flat" msgstr "" -#: js/turtledefs.js:611 -msgid "Palette buttons" +#: js/piemenus.js:2864 +#: js/utils/musicutils.js:1006 +#: js/blocks/PitchBlocks.js:1385 +#.TRANS: unison is a music term related to intervals +#.TRANS: unison means the note is the same as the current note +msgid "unison" msgstr "" -#: js/turtledefs.js:612 -msgid "This toolbar contains the palette buttons including Rhythm Pitch Tone Action and more." +#: js/piemenus.js:3018 +#: js/piemenus.js:3091 +#: js/utils/musicutils.js:1014 +#: js/utils/musicutils.js:1189 +#: js/utils/musicutils.js:1326 +#.TRANS: major is a music term related to intervals and mode +msgid "major" msgstr "" -#: js/turtledefs.js:614 -msgid "Click to show the palettes of blocks and drag blocks from the palettes onto the canvas to use them." +#: js/piemenus.js:3018 +#: js/piemenus.js:3091 +#: js/utils/musicutils.js:1032 +#.TRANS: modal scale for music +msgid "ionian" msgstr "" -#: js/turtledefs.js:620 -msgid "Cartesian/Polar" +#: js/piemenus.js:3020 +#: js/piemenus.js:3095 +#: js/utils/musicutils.js:1012 +#: js/utils/musicutils.js:1190 +#: js/utils/musicutils.js:1323 +#.TRANS: minor is a music term related to intervals and mode +msgid "minor" msgstr "" -#: js/turtledefs.js:621 -msgid "Show or hide a coordinate grid." +#: js/piemenus.js:3020 +#: js/piemenus.js:3095 +#: js/utils/musicutils.js:1042 +#.TRANS: modal scale for music +msgid "aeolian" msgstr "" -#: js/turtledefs.js:627 -msgid "Clear the screen and return the mice to their initial positions." +#: js/piemenus.js:3410 +msgid "Duplicate" msgstr "" -#: js/turtledefs.js:633 -msgid "Collapse the graphics window." +#: js/piemenus.js:3412 +msgid "Move to trash" msgstr "" -#: js/turtledefs.js:638 -#: js/activity.js:4256 -#: js/activity.js:4256 -msgid "Home" +#: js/piemenus.js:3413 +#: js/widgets/timbre.js:968 +#: planet/js/StringHelper.js:69 +msgid "Close" msgstr "" -#: js/turtledefs.js:639 -msgid "Return all blocks to the center of the screen." +#: js/piemenus.js:3419 +msgid "Save stack" msgstr "" -#: js/turtledefs.js:644 -msgid "Show/hide blocks" +#: js/piemenus.js:3449 +msgid "In order to copy a sample, you must reload the widget, import the sample again, and export it." msgstr "" -#: js/turtledefs.js:645 -msgid "Hide or show the blocks and the palettes." +#: js/piemenus.js:3812 +msgid "You have chosen key " msgstr "" -#: js/turtledefs.js:650 -msgid "Expand/collapse collapsable blocks" +#: js/piemenus.js:3816 +msgid " for your pitch preview." msgstr "" -#: js/turtledefs.js:651 -msgid "Expand or collapse start and action stacks." +#: js/turtle-singer.js:1363 +#.TRANS: partials are weighted components in a harmonic series +msgid "You must have at least one Partial block inside of a Weighted-partial block" msgstr "" -#: js/turtledefs.js:658 -#: js/activity.js:4265 -msgid "Decrease block size" +#: js/turtle-singer.js:2077 +msgid "synth cannot play chords." msgstr "" -#: js/turtledefs.js:659 -msgid "Decrease the size of the blocks." +#: js/utils/musicutils.js:505 +#: js/utils/musicutils.js:645 +#: js/widgets/pitchdrummatrix.js:228 +#: js/widgets/musickeyboard.js:2885 +msgid "rest" msgstr "" -#: js/turtledefs.js:664 -#: js/activity.js:4267 -msgid "Increase block size" +#: js/utils/musicutils.js:689 +msgid "Perfect unison" msgstr "" -#: js/turtledefs.js:665 -msgid "Increase the size of the blocks." +#: js/utils/musicutils.js:689 +msgid "Diminished second" msgstr "" -#: js/turtledefs.js:670 -msgid "Expand/collapse option toolbar" +#: js/utils/musicutils.js:690 +msgid "Minor second" msgstr "" -#: js/turtledefs.js:671 -msgid "Click this button to expand or collapse the auxillary toolbar." +#: js/utils/musicutils.js:690 +msgid "Augmented unison" msgstr "" -#: js/turtledefs.js:676 -msgid "Run slow" +#: js/utils/musicutils.js:691 +msgid "Major second" msgstr "" -#: js/turtledefs.js:677 -msgid "Click to run the project in slow mode." +#: js/utils/musicutils.js:691 +msgid "Diminished third" msgstr "" -#: js/turtledefs.js:683 -msgid "Click to run the project step by step." +#: js/utils/musicutils.js:692 +msgid "Minor third" msgstr "" -#: js/turtledefs.js:690 -msgid "Display statistics about your Music project." +#: js/utils/musicutils.js:692 +msgid "Augmented second" msgstr "" -#: js/turtledefs.js:697 -msgid "Delete a selected plugin." +#: js/utils/musicutils.js:693 +msgid "Major third" msgstr "" -#: js/turtledefs.js:704 -msgid "Enable scrolling" +#: js/utils/musicutils.js:693 +msgid "Diminished fourth" msgstr "" -#: js/turtledefs.js:705 -msgid "You can scroll the blocks on the canvas." +#: js/utils/musicutils.js:694 +msgid "Perfect fourth" msgstr "" -#: js/turtledefs.js:714 -msgid "Wrap Turtle" +#: js/utils/musicutils.js:694 +msgid "Augmented third" msgstr "" -#: js/turtledefs.js:715 -msgid "Turn Turtle wrapping On or Off." +#: js/utils/musicutils.js:695 +msgid "Diminished fifth" msgstr "" -#: js/turtledefs.js:725 -msgid "Restore blocks from the trash." +#: js/utils/musicutils.js:695 +msgid "Augmented fourth" msgstr "" -#: js/turtledefs.js:732 -msgid "Switch mode" +#: js/utils/musicutils.js:696 +msgid "Perfect fifth" msgstr "" -#: js/turtledefs.js:733 -msgid "Switch between beginner and advance modes." +#: js/utils/musicutils.js:696 +msgid "Diminished sixth" msgstr "" -#: js/turtledefs.js:739 -msgid "Select your language preference." +#: js/utils/musicutils.js:697 +msgid "Minor sixth" msgstr "" -#: js/turtledefs.js:745 -msgid "Keyboard shortcuts" +#: js/utils/musicutils.js:697 +msgid "Augmented fifth" msgstr "" -#: js/turtledefs.js:746 -msgid "You can type d to create a do block and r to create a re block etc." +#: js/utils/musicutils.js:698 +msgid "Major sixth" msgstr "" -#: js/turtledefs.js:753 -msgid "Show these messages." +#: js/utils/musicutils.js:698 +msgid "Diminished seventh" msgstr "" -#: js/turtledefs.js:759 -#: js/turtledefs.js:790 -#: js/help.js:335 -msgid "Guide" +#: js/utils/musicutils.js:699 +msgid "Minor seventh" msgstr "" -#: js/turtledefs.js:760 -msgid "A detailed guide to Turtle Blocks is available." +#: js/utils/musicutils.js:699 +msgid "Augmented sixth" msgstr "" -#: js/turtledefs.js:764 -msgid "Turtle Blocks Guide" +#: js/utils/musicutils.js:700 +msgid "Major seventh" msgstr "" -#: js/turtledefs.js:767 -#: js/turtledefs.js:798 -#: js/help.js:336 -msgid "About" +#: js/utils/musicutils.js:700 +msgid "Diminished octave" msgstr "" -#: js/turtledefs.js:768 -msgid "Turtle Blocks is an open source collection of tools for exploring musical concepts." +#: js/utils/musicutils.js:701 +msgid "Perfect octave" msgstr "" -#: js/turtledefs.js:770 -msgid "A full list of contributors can be found in the Turtle Blocks GitHub repository." +#: js/utils/musicutils.js:701 +msgid "Augmented seventh" msgstr "" -#: js/turtledefs.js:772 -msgid "Turtle Blocks is licensed under the AGPL." +#: js/utils/musicutils.js:702 +msgid "Minor ninth" msgstr "" -#: js/turtledefs.js:780 -msgid "Turtle Blocks GitHub repository" +#: js/utils/musicutils.js:702 +msgid "Augmented octave" msgstr "" -#: js/turtledefs.js:783 -#: js/turtledefs.js:814 -#: js/help.js:337 -#: js/help.js:359 -msgid "Congratulations." +#: js/utils/musicutils.js:703 +msgid "Major ninth" msgstr "" -#: js/turtledefs.js:784 -msgid "You have finished the tour. Please enjoy Turtle Blocks!" +#: js/utils/musicutils.js:703 +msgid "Diminished tenth" msgstr "" -#: js/turtledefs.js:791 -msgid "A detailed guide to Music Blocks is available." +#: js/utils/musicutils.js:704 +msgid "Minor tenth" msgstr "" -#: js/turtledefs.js:795 -#: js/SaveInterface.js:76 -msgid "Music Blocks Guide" +#: js/utils/musicutils.js:704 +msgid "Augmented ninth" msgstr "" -#: js/turtledefs.js:799 -msgid "Music Blocks is an open source collection of tools for exploring musical concepts." +#: js/utils/musicutils.js:705 +msgid "Major tenth" msgstr "" - -#: js/turtledefs.js:801 -msgid "A full list of contributors can be found in the Music Blocks GitHub repository." + +#: js/utils/musicutils.js:705 +msgid "Diminished eleventh" msgstr "" -#: js/turtledefs.js:803 -msgid "Music Blocks is licensed under the AGPL." +#: js/utils/musicutils.js:706 +msgid "Perfect eleventh" msgstr "" -#: js/turtledefs.js:811 -msgid "Music Blocks GitHub repository" +#: js/utils/musicutils.js:706 +msgid "Augmented tenth" msgstr "" -#: js/turtledefs.js:815 -msgid "You have finished the tour. Please enjoy Music Blocks!" +#: js/utils/musicutils.js:707 +msgid "Diminished twelfth" msgstr "" -#: js/activity.js:369 -msgid "Search for blocks" +#: js/utils/musicutils.js:707 +msgid "Augmented eleventh" msgstr "" -#: js/activity.js:1145 -msgid "Refresh your browser to change to advanced mode." +#: js/utils/musicutils.js:708 +msgid "Perfect twelfth" msgstr "" -#: js/activity.js:1150 -msgid "Refresh your browser to change to beginner mode." +#: js/utils/musicutils.js:708 +msgid "Diminished thirteenth" msgstr "" -#: js/activity.js:1184 -msgid "Catching mice" +#: js/utils/musicutils.js:709 +msgid "Minor thirteenth" msgstr "" -#: js/activity.js:1185 -msgid "Cleaning the instruments" +#: js/utils/musicutils.js:709 +msgid "Augmented fifth, plus an octave" msgstr "" -#: js/activity.js:1186 -msgid "Testing key pieces" +#: js/utils/musicutils.js:710 +msgid "Major thirteenth" msgstr "" -#: js/activity.js:1187 -msgid "Sight-reading" +#: js/utils/musicutils.js:710 +msgid "Diminished seventh, plus an octave" msgstr "" -#: js/activity.js:1188 -msgid "Combining math and music" +#: js/utils/musicutils.js:838 +#.TRANS: ordinal number. Please keep exactly one space between each number. +msgid "1st 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th" msgstr "" -#: js/activity.js:1189 -msgid "Generating more blocks" +#: js/utils/musicutils.js:1008 +#: js/utils/musicutils.js:1191 +#: js/utils/musicutils.js:1325 +#.TRANS: augmented is a music term related to intervals +msgid "augmented" msgstr "" -#: js/activity.js:1190 -msgid "Do Re Mi Fa Sol La Ti Do" +#: js/utils/musicutils.js:1010 +#: js/utils/musicutils.js:1192 +#: js/utils/musicutils.js:1324 +#.TRANS: diminished is a music term related to intervals and mode +msgid "diminished" msgstr "" -#: js/activity.js:1191 -msgid "Tuning string instruments" +#: js/utils/musicutils.js:1016 +#: js/utils/musicutils.js:1322 +#: js/blocks/IntervalsBlocks.js:649 +#: js/turtleactions/IntervalsActions.js:120 +#: js/turtleactions/IntervalsActions.js:124 +#.TRANS: perfect is a music term related to intervals +msgid "perfect" msgstr "" -#: js/activity.js:1192 -msgid "Pressing random keys" +#: js/utils/musicutils.js:1018 +#.TRANS: twelve semi-tone scale for music +msgid "chromatic" msgstr "" -#: js/activity.js:1351 -msgid "plugins will be removed upon restart." +#: js/utils/musicutils.js:1019 +msgid "algerian" msgstr "" -#: js/activity.js:1360 -msgid "show Cartesian" +#: js/utils/musicutils.js:1020 +msgid "spanish" msgstr "" -#: js/activity.js:1842 -msgid "output tools" +#: js/utils/musicutils.js:1022 +#.TRANS: modal scale in music +msgid "octatonic" msgstr "" -#: js/activity.js:1845 -msgid "custom note" +#: js/utils/musicutils.js:1024 +#.TRANS: harmonic major scale in music +msgid "harmonic major" msgstr "" -#: js/activity.js:1848 -msgid "accidental name" +#: js/utils/musicutils.js:1026 +#.TRANS: natural minor scales in music +msgid "natural minor" msgstr "" -#: js/activity.js:1851 -#: js/PitchBlocks.js:855 -msgid "east indian solfege" +#: js/utils/musicutils.js:1028 +#.TRANS: harmonic minor scale in music +msgid "harmonic minor" msgstr "" -#: js/activity.js:1854 -#: js/PitchBlocks.js:869 -msgid "note name" +#: js/utils/musicutils.js:1030 +#.TRANS: melodic minor scale in music +msgid "melodic minor" msgstr "" -#: js/activity.js:1857 -#: js/IntervalsBlocks.js:94 -msgid "temperament name" +#: js/utils/musicutils.js:1034 +#.TRANS: modal scale for music +msgid "dorian" msgstr "" -#: js/activity.js:1863 -msgid "chord name" +#: js/utils/musicutils.js:1036 +#.TRANS: modal scale for music +msgid "phrygian" msgstr "" -#: js/activity.js:1869 -msgid "filter type" +#: js/utils/musicutils.js:1038 +#.TRANS: modal scale for music +msgid "lydian" msgstr "" -#: js/activity.js:1872 -msgid "oscillator type" +#: js/utils/musicutils.js:1040 +#.TRANS: modal scale for music +msgid "mixolydian" msgstr "" -#: js/activity.js:1878 -#: js/DrumBlocks.js:32 -msgid "noise name" +#: js/utils/musicutils.js:1044 +#.TRANS: modal scale for music +msgid "locrian" msgstr "" -#: js/activity.js:1881 -#: js/DrumBlocks.js:75 -msgid "drum name" +#: js/utils/musicutils.js:1046 +#.TRANS: minor jazz scale for music +msgid "jazz minor" msgstr "" -#: js/activity.js:1884 -#: js/DrumBlocks.js:119 -msgid "effects name" +#: js/utils/musicutils.js:1048 +#.TRANS: bebop scale for music +msgid "bebop" msgstr "" -#: js/activity.js:1887 -msgid "wrap mode" +#: js/utils/musicutils.js:1049 +msgid "arabic" msgstr "" -#: js/activity.js:1890 -msgid "load file" +#: js/utils/musicutils.js:1050 +msgid "byzantine" msgstr "" -#: js/activity.js:2056 -msgid "This block is deprecated." +#: js/utils/musicutils.js:1052 +#.TRANS: musical scale for music by Verdi +msgid "enigmatic" msgstr "" -#: js/activity.js:2058 -msgid "Block cannot be found." +#: js/utils/musicutils.js:1053 +msgid "ethiopian" msgstr "" -#: js/activity.js:2266 -msgid "Saving block artwork" +#: js/utils/musicutils.js:1055 +#.TRANS: Ethiopic scale for music +msgid "geez" msgstr "" -#: js/activity.js:2277 -msgid "Erase" +#: js/utils/musicutils.js:1056 +msgid "hindu" msgstr "" -#: js/activity.js:2301 -#: js/activity.js:2323 -msgid "Paste" +#: js/utils/musicutils.js:1057 +msgid "hungarian" msgstr "" -#: js/activity.js:2305 -msgid "Save block help" +#: js/utils/musicutils.js:1059 +#.TRANS: minor Romanian scale for music +msgid "romanian minor" msgstr "" -#: js/activity.js:2390 -msgid "Jumping to the bottom of the page." +#: js/utils/musicutils.js:1060 +msgid "spanish gypsy" msgstr "" -#: js/activity.js:2396 -msgid "Scrolling up." +#: js/utils/musicutils.js:1062 +#.TRANS: musical scale for Mid-Eastern music +msgid "maqam" msgstr "" -#: js/activity.js:2401 -msgid "Scrolling down." +#: js/utils/musicutils.js:1064 +#.TRANS: minor blues scale for music +msgid "minor blues" msgstr "" -#: js/activity.js:2406 -msgid "Extracting block" +#: js/utils/musicutils.js:1066 +#.TRANS: major blues scale for music +msgid "major blues" msgstr "" -#: js/activity.js:2414 -msgid "Moving block up." +#: js/utils/musicutils.js:1067 +msgid "whole tone" msgstr "" -#: js/activity.js:2435 -msgid "Moving block down." +#: js/utils/musicutils.js:1069 +#.TRANS: pentatonic is a general term that means "five note scale". This scale is typically known as "minor pentatonic" +msgid "minor pentatonic" msgstr "" -#: js/activity.js:2456 -msgid "Moving block left." +#: js/utils/musicutils.js:1071 +#.TRANS: pentatonic is a general term that means "five note scale". This scale is typically known as "major pentatonic" +msgid "major pentatonic" msgstr "" -#: js/activity.js:2473 -msgid "Moving block right." +#: js/utils/musicutils.js:1072 +msgid "chinese" msgstr "" -#: js/activity.js:2488 -msgid "Jump to home position." +#: js/utils/musicutils.js:1073 +msgid "egyptian" msgstr "" -#: js/activity.js:2515 -msgid "Hide blocks" +#: js/utils/musicutils.js:1075 +#.TRANS: https://en.wikipedia.org/wiki/Hirajoshi_scale NOTE: There are three different versions of this scale +msgid "hirajoshi" msgstr "" -#: js/activity.js:3389 -msgid "Click the run button to run the project." +#: js/utils/musicutils.js:1076 +msgid "Japan" msgstr "" -#: js/activity.js:3456 -#: js/SaveInterface.js:131 -#: js/SaveInterface.js:204 -#: js/SaveInterface.js:262 -#: js/SaveInterface.js:389 -#: js/SaveInterface.js:417 -#: js/ProjectStorage.js:27 -#: js/GlobalPlanet.js:467 -#: js/GlobalPlanet.js:469 -#: js/GlobalPlanet.js:495 -#.TRANS: default project title when saving as Lilypond -msgid "My Project" +#: js/utils/musicutils.js:1078 +#.TRANS: https://en.wikipedia.org/wiki/In_scale and https://en.wikipedia.org/wiki/Sakura_Sakura +msgid "in" msgstr "" -#: js/activity.js:4261 -msgid "Show/hide block" +#: js/utils/musicutils.js:1080 +#.TRANS: https://en.wikipedia.org/wiki/Miny%C5%8D_scale +msgid "minyo" msgstr "" -#: js/activity.js:4263 -msgid "Expand/collapse blocks" +#: js/utils/musicutils.js:1082 +#.TRANS: Italian mathematician +msgid "fibonacci" msgstr "" -#: js/activity.js:4381 -msgid "Could not parse JSON input." +#: js/utils/musicutils.js:1083 +#: js/utils/musicutils.js:1134 +#: js/utils/musicutils.js:1177 +#: js/utils/musicutils.js:1199 +#: js/utils/synthutils.js:134 +#: js/blocks/IntervalsBlocks.js:1124 +#: js/blocks/ToneBlocks.js:946 +#: js/blocks/VolumeBlocks.js:411 +#: js/blocks/WidgetBlocks.js:399 +#: js/blocks/WidgetBlocks.js:404 +#: js/turtleactions/VolumeActions.js:218 +#: js/widgets/modewidget.js:919 +#.TRANS: customize voice +msgid "custom" msgstr "" -#: js/activity.js:4684 -#: js/activity.js:4771 -#: js/activity.js:4821 -msgid "Cannot load project from the file. Please check the file type." +#: js/utils/musicutils.js:1085 +#: js/utils/musicutils.js:1531 +#: js/blocks/WidgetBlocks.js:176 +#.TRANS: highpass filter +msgid "highpass" msgstr "" -#: js/activity.js:5051 -msgid "Invalid parameters" +#: js/utils/musicutils.js:1087 +#: js/utils/musicutils.js:1532 +#.TRANS: lowpass filter +msgid "lowpass" msgstr "" -#: js/turtle-singer.js:1334 -#.TRANS: partials are weighted components in a harmonic series -msgid "You must have at least one Partial block inside of a Weighted-partial block" +#: js/utils/musicutils.js:1089 +#: js/utils/musicutils.js:1533 +#.TRANS: bandpass filter +msgid "bandpass" msgstr "" -#: js/turtle-singer.js:2048 -msgid "synth cannot play chords." +#: js/utils/musicutils.js:1091 +#: js/utils/musicutils.js:1534 +#.TRANS: high-shelf filter +msgid "highshelf" msgstr "" -#: js/lilypond.js:614 -msgid "brown rat" +#: js/utils/musicutils.js:1093 +#: js/utils/musicutils.js:1535 +#.TRANS: low-shelf filter +msgid "lowshelf" msgstr "" -#: js/lilypond.js:615 -msgid "mole" +#: js/utils/musicutils.js:1095 +#: js/utils/musicutils.js:1536 +#.TRANS: notch-shelf filter +msgid "notch" msgstr "" -#: js/lilypond.js:616 -msgid "chipmunk" +#: js/utils/musicutils.js:1097 +#: js/utils/musicutils.js:1537 +#.TRANS: all-pass filter +msgid "allpass" msgstr "" -#: js/lilypond.js:617 -msgid "red squirrel" +#: js/utils/musicutils.js:1099 +#: js/utils/musicutils.js:1538 +#.TRANS: peaking filter +msgid "peaking" msgstr "" -#: js/lilypond.js:618 -msgid "guinea pig" +#: js/utils/musicutils.js:1100 +#: js/utils/musicutils.js:1546 +#: js/utils/synthutils.js:126 +#: js/blocks/PitchBlocks.js:85 +#.TRANS: sine wave +msgid "sine" msgstr "" -#: js/lilypond.js:619 -msgid "capybara" +#: js/utils/musicutils.js:1101 +#: js/utils/musicutils.js:1547 +#: js/utils/synthutils.js:128 +#: js/blocks/PitchBlocks.js:39 +#.TRANS: square wave +msgid "square" msgstr "" -#: js/lilypond.js:620 -msgid "coypu" +#: js/utils/musicutils.js:1102 +#: js/utils/musicutils.js:1548 +#: js/utils/synthutils.js:132 +#: js/blocks/PitchBlocks.js:62 +#: js/blocks/ToneBlocks.js:39 +#.TRANS: triangle wave +msgid "triangle" msgstr "" -#: js/lilypond.js:621 -msgid "black rat" +#: js/utils/musicutils.js:1103 +#: js/utils/musicutils.js:1549 +#: js/utils/synthutils.js:130 +#: js/blocks/PitchBlocks.js:108 +#.TRANS: sawtooth wave +msgid "sawtooth" msgstr "" -#: js/lilypond.js:622 -msgid "grey squirrel" +#: js/utils/musicutils.js:1105 +#: js/utils/musicutils.js:1312 +#: js/blocks/PitchBlocks.js:931 +#: js/blocks/PitchBlocks.js:937 +#: js/turtleactions/PitchActions.js:469 +#.TRANS: even numbers +#.TRANS: invert based on even or odd number or musical scale +msgid "even" msgstr "" -#: js/lilypond.js:623 -msgid "flying squirrel" +#: js/utils/musicutils.js:1107 +#: js/utils/musicutils.js:1313 +#: js/blocks/PitchBlocks.js:937 +#: js/turtleactions/PitchActions.js:471 +#.TRANS: odd numbers +msgid "odd" msgstr "" -#: js/lilypond.js:624 -msgid "bat" +#: js/utils/musicutils.js:1108 +#: js/utils/musicutils.js:1314 +#: js/blocks/PitchBlocks.js:937 +#: js/turtleactions/PitchActions.js:473 +msgid "scalar" msgstr "" -#: js/lilypond.js:757 -#: js/lilypond.js:921 -#: js/lilypond.js:959 -#: js/ActionBlocks.js:1256 -#: js/ExtrasBlocks.js:553 -msgid "start drum" +#: js/utils/musicutils.js:1109 +#: js/utils/synthutils.js:72 +#: js/blocks/VolumeBlocks.js:47 +#.TRANS: musical instrument +msgid "piano" msgstr "" -#: js/SaveInterface.js:59 -#: js/SaveInterface.js:61 -#: js/SaveInterface.js:93 -msgid "Music Blocks Project" +#: js/utils/musicutils.js:1110 +#: js/utils/synthutils.js:74 +#.TRANS: musical instrument +msgid "violin" msgstr "" -#: js/SaveInterface.js:63 -msgid "This project was created in Music Blocks" +#: js/utils/musicutils.js:1111 +#: js/utils/synthutils.js:76 +#.TRANS: viola musical instrument +msgid "viola" msgstr "" -#: js/SaveInterface.js:67 -msgid "Music Blocks is a Free/Libre Software application." +#: js/utils/musicutils.js:1112 +#: js/utils/synthutils.js:114 +#.TRANS: xylophone musical instrument +msgid "xylophone" msgstr "" -#: js/SaveInterface.js:69 -msgid "The source code can be accessed at" +#: js/utils/musicutils.js:1113 +#: js/utils/synthutils.js:136 +#.TRANS: vibraphone musical instrument +msgid "vibraphone" msgstr "" -#: js/SaveInterface.js:72 -msgid "For more information, please consult the" +#: js/utils/musicutils.js:1114 +#: js/utils/synthutils.js:78 +#.TRANS: musical instrument +msgid "cello" msgstr "" -#: js/SaveInterface.js:83 -msgid "Alternatively, open the file in Music Blocks using the Load project button." +#: js/utils/musicutils.js:1116 +#: js/utils/synthutils.js:82 +#.TRANS: viola musical instrument +msgid "double bass" msgstr "" -#: js/SaveInterface.js:85 -msgid "Project Code" +#: js/utils/musicutils.js:1117 +#: js/utils/synthutils.js:84 +#: js/widgets/rhythmruler.js:2511 +#.TRANS: musical instrument +msgid "guitar" msgstr "" -#: js/SaveInterface.js:87 -msgid "This code stores data about the blocks in a project." +#: js/utils/musicutils.js:1118 +#: js/utils/synthutils.js:86 +#.TRANS: musical instrument +msgid "acoustic guitar" msgstr "" -#: js/SaveInterface.js:89 -msgid "Show" +#: js/utils/musicutils.js:1119 +#: js/utils/synthutils.js:88 +#.TRANS: musical instrument +msgid "flute" msgstr "" -#: js/SaveInterface.js:91 -msgid "Hide" +#: js/utils/musicutils.js:1120 +#: js/utils/synthutils.js:90 +#.TRANS: musical instrument +msgid "clarinet" msgstr "" -#: js/SaveInterface.js:197 -#: js/SaveInterface.js:58 -msgid "No description provided" +#: js/utils/musicutils.js:1121 +#: js/utils/synthutils.js:92 +#.TRANS: musical instrument +msgid "saxophone" msgstr "" -#: js/SaveInterface.js:332 -msgid "Your recording is in progress." +#: js/utils/musicutils.js:1122 +#: js/utils/synthutils.js:94 +#.TRANS: musical instrument +msgid "tuba" msgstr "" -#: js/SaveInterface.js:401 -#.TRANS: File name prompt for save as Lilypond -msgid "File name" +#: js/utils/musicutils.js:1123 +#: js/utils/synthutils.js:96 +#.TRANS: musical instrument +msgid "trumpet" msgstr "" -#: js/SaveInterface.js:403 -#: js/StringHelper.js:39 -#.TRANS: Project title prompt for save as Lilypond -msgid "Project title" +#: js/utils/musicutils.js:1124 +#: js/utils/synthutils.js:98 +#.TRANS: musical instrument +msgid "oboe" msgstr "" -#: js/SaveInterface.js:405 -#.TRANS: Project title prompt for save as Lilypond -msgid "Project author" +#: js/utils/musicutils.js:1125 +#: js/utils/synthutils.js:100 +#.TRANS: musical instrument +msgid "trombone" msgstr "" -#: js/SaveInterface.js:407 -#.TRANS: MIDI prompt for save as Lilypond -msgid "Include MIDI output?" +#: js/utils/musicutils.js:1126 +#: js/utils/synthutils.js:116 +#.TRANS: polytone synthesizer +msgid "electronic synth" msgstr "" -#: js/SaveInterface.js:409 -#.TRANS: Guitar prompt for save as Lilypond -msgid "Include guitar tablature output?" +#: js/utils/musicutils.js:1127 +#: js/utils/synthutils.js:118 +#.TRANS: simple monotone synthesizer +msgid "simple 1" msgstr "" -#: js/SaveInterface.js:411 -#.TRANS: Lilypond is a scripting language for generating sheet music -msgid "Save as Lilypond" +#: js/utils/musicutils.js:1128 +msgid "simple 2" msgstr "" -#: js/SaveInterface.js:426 -#: js/EnsembleBlocks.js:75 -#: js/EnsembleBlocks.js:154 -#: js/EnsembleBlocks.js:216 -#: js/EnsembleBlocks.js:302 -#: js/EnsembleBlocks.js:348 -#: js/EnsembleBlocks.js:389 -#: js/EnsembleBlocks.js:441 -#: js/EnsembleBlocks.js:490 -#: js/EnsembleBlocks.js:536 -#: js/EnsembleBlocks.js:583 -#: js/EnsembleBlocks.js:637 -#: js/EnsembleBlocks.js:753 -#: js/EnsembleBlocks.js:840 -#: js/EnsembleBlocks.js:899 -#: js/EnsembleBlocks.js:942 -#: js/EnsembleBlocks.js:1212 -#: js/EnsembleBlocks.js:1280 -#.TRANS: default project author when saving as Lilypond -msgid "Mr. Mouse" +#: js/utils/musicutils.js:1129 +msgid "simple 3" msgstr "" -#: js/SaveInterface.js:573 -msgid "The Lilypond code is copied to clipboard. You can paste it here: " +#: js/utils/musicutils.js:1130 +msgid "simple 4" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:50 -#: js/RhythmBlockPaletteBlocks.js:232 -#.TRANS: rhythm block -#.TRANS: translate "rhythm1" as rhythm -msgid "rhythm1" -msgstr "박자" +#: js/utils/musicutils.js:1131 +#: js/utils/synthutils.js:58 +#: js/blocks/DrumBlocks.js:191 +#.TRANS: white noise synthesizer +msgid "white noise" +msgstr "백색 소음." -#: js/RhythmBlockPaletteBlocks.js:70 -#: js/RhythmBlockPaletteBlocks.js:251 -#: js/RhythmBlockPaletteBlocks.js:484 -#: js/RhythmBlockPaletteBlocks.js:553 -#: js/RhythmBlockPaletteBlocks.js:874 -msgid "number of notes" -msgstr "음표 개수" +#: js/utils/musicutils.js:1132 +#: js/utils/synthutils.js:60 +#.TRANS: brown noise synthesizer +msgid "brown noise" +msgstr "" -#: js/RhythmBlockPaletteBlocks.js:126 -msgid "polyphonic rhythm" +#: js/utils/musicutils.js:1133 +#: js/utils/synthutils.js:62 +#.TRANS: pink noise synthesizer +msgid "pink noise" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:218 -msgid "The Rhythm block is used to generate rhythm patterns." -msgstr "박자 블록은 박자 패턴을 만드는 데 사용된다" +#: js/utils/musicutils.js:1135 +#: js/utils/synthutils.js:148 +#: js/widgets/rhythmruler.js:2057 +#: js/widgets/rhythmruler.js:2319 +#.TRANS: musical instrument +msgid "snare drum" +msgstr "" -#: js/RhythmBlockPaletteBlocks.js:279 -msgid "1/64 note" -msgstr "64분 음표" +#: js/utils/musicutils.js:1136 +#: js/utils/synthutils.js:150 +#.TRANS: musical instrument +msgid "kick drum" +msgstr "" -#: js/RhythmBlockPaletteBlocks.js:303 -msgid "1/32 note" -msgstr "32분 음표" +#: js/utils/musicutils.js:1137 +#: js/utils/synthutils.js:152 +#.TRANS: musical instrument +msgid "tom tom" +msgstr "" -#: js/RhythmBlockPaletteBlocks.js:331 -msgid "1/16 note" -msgstr "16분 음표" +#: js/utils/musicutils.js:1138 +#: js/utils/synthutils.js:154 +#.TRANS: musical instrument +msgid "floor tom" +msgstr "" -#: js/RhythmBlockPaletteBlocks.js:359 -msgid "eighth note" -msgstr "8분 음표" +#: js/utils/musicutils.js:1139 +#: js/utils/synthutils.js:156 +#.TRANS: musical instrument +msgid "bass drum" +msgstr "" -#: js/RhythmBlockPaletteBlocks.js:387 -msgid "quarter note" -msgstr "4분 음표" +#: js/utils/musicutils.js:1140 +#: js/utils/synthutils.js:158 +#.TRANS: a drum made from an inverted cup +msgid "cup drum" +msgstr "" -#: js/RhythmBlockPaletteBlocks.js:415 -msgid "half note" -msgstr "2분 음표" +#: js/utils/musicutils.js:1141 +#: js/utils/synthutils.js:160 +#.TRANS: musical instrument +msgid "darbuka drum" +msgstr "" -#: js/RhythmBlockPaletteBlocks.js:443 -msgid "whole note" +#: js/utils/musicutils.js:1142 +#: js/utils/synthutils.js:164 +#.TRANS: musical instrument +msgid "hi hat" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:481 -#: js/RhythmBlockPaletteBlocks.js:550 -#: js/RhythmBlockPaletteBlocks.js:601 -#.TRANS: A tuplet is a note value divided into irregular time values. -msgid "tuplet" +#: js/utils/musicutils.js:1143 +#: js/utils/synthutils.js:166 +#.TRANS: a small metal bell +msgid "ride bell" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:767 -msgid "septuplet" +#: js/utils/musicutils.js:1144 +#: js/utils/synthutils.js:168 +#.TRANS: musical instrument +msgid "cow bell" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:795 -msgid "quintuplet" +#: js/utils/musicutils.js:1145 +msgid "japanese drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:823 -msgid "triplet" -msgstr "셋잇단음표" +#: js/utils/musicutils.js:1146 +#: js/utils/synthutils.js:174 +#.TRANS: musical instrument +msgid "japanese bell" +msgstr "" -#: js/RhythmBlockPaletteBlocks.js:850 -msgid "simple tuplet" +#: js/utils/musicutils.js:1147 +#: js/utils/synthutils.js:170 +#.TRANS: musical instrument +msgid "triangle bell" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:860 -msgid "Tuplets are a collection of notes that get scaled to a specific duration." +#: js/utils/musicutils.js:1148 +#: js/utils/synthutils.js:172 +#.TRANS: musical instrument +msgid "finger cymbals" msgstr "" -#: js/WidgetBlocks.js:71 -#.TRANS: sound envelope (ADSR) -msgid "envelope" +#: js/utils/musicutils.js:1149 +#: js/utils/synthutils.js:176 +#.TRANS: a musically tuned set of bells +msgid "chime" msgstr "" -#: js/WidgetBlocks.js:79 -#.TRANS: Attack time is the time taken for initial run-up of level from nil to peak, beginning when the key is first pressed. -msgid "attack" +#: js/utils/musicutils.js:1150 +#: js/utils/synthutils.js:178 +#.TRANS: a musical instrument +msgid "gong" msgstr "" -#: js/WidgetBlocks.js:81 -#.TRANS: Decay time is the time taken for the subsequent run down from the attack level to the designated sustain level. -msgid "decay" +#: js/utils/musicutils.js:1151 +#: js/utils/synthutils.js:180 +#.TRANS: sound effect +msgid "clang" msgstr "" -#: js/WidgetBlocks.js:83 -#.TRANS: Sustain level is the level during the main sequence of the sound's duration, until the key is released. -msgid "sustain" +#: js/utils/musicutils.js:1152 +#: js/utils/synthutils.js:182 +#.TRANS: sound effect +msgid "crash" msgstr "" -#: js/WidgetBlocks.js:85 -#.TRANS: Release time is the time taken for the level to decay from the sustain level to zero after the key is released. -msgid "release" +#: js/utils/musicutils.js:1153 +#: js/utils/synthutils.js:184 +#.TRANS: sound effect +msgid "bottle" msgstr "" -#: js/WidgetBlocks.js:96 -msgid "Attack value should be from 0 to 100." +#: js/utils/musicutils.js:1154 +#: js/utils/synthutils.js:186 +#.TRANS: sound effect +msgid "clap" msgstr "" -#: js/WidgetBlocks.js:99 -msgid "Decay value should be from 0 to 100." +#: js/utils/musicutils.js:1155 +#: js/utils/synthutils.js:188 +#.TRANS: sound effect +msgid "slap" msgstr "" -#: js/WidgetBlocks.js:102 -msgid "Sustain value should be from 0 to 100." +#: js/utils/musicutils.js:1156 +#: js/utils/synthutils.js:190 +#.TRANS: sound effect +msgid "splash" msgstr "" -#: js/WidgetBlocks.js:105 -msgid "Release value should be from 0-100." +#: js/utils/musicutils.js:1157 +#: js/utils/synthutils.js:192 +#.TRANS: sound effect +msgid "bubbles" msgstr "" -#: js/WidgetBlocks.js:121 -msgid "You are adding multiple envelope blocks." +#: js/utils/musicutils.js:1158 +#: js/utils/synthutils.js:194 +#.TRANS: sound effect +msgid "raindrop" msgstr "" -#: js/WidgetBlocks.js:144 -#.TRANS: a filter removes some unwanted components from a signal -msgid "filter" -msgstr "필터." +#: js/utils/musicutils.js:1159 +#: js/utils/synthutils.js:196 +#.TRANS: animal sound effect +msgid "cat" +msgstr "" -#: js/WidgetBlocks.js:149 -#: js/musicutils.js:706 -#: js/musicutils.js:1105 -#.TRANS: highpass filter -msgid "highpass" +#: js/utils/musicutils.js:1160 +#: js/utils/synthutils.js:198 +#.TRANS: animal sound effect +msgid "cricket" msgstr "" -#: js/WidgetBlocks.js:152 -#: js/ToneBlocks.js:42 -#: js/timbre.js:1558 -#: js/timbre.js:1808 -#.TRANS: type of filter, e.g., lowpass, highpass, etc. -#.TRANS: there are different types (sine, triangle, square...) of oscillators. -msgid "type" +#: js/utils/musicutils.js:1161 +#: js/utils/synthutils.js:200 +#.TRANS: animal sound effect +msgid "dog" msgstr "" -#: js/WidgetBlocks.js:154 -#: js/timbre.js:1818 -#.TRANS: rolloff is the steepness of a change in frequency. -msgid "rolloff" +#: js/utils/musicutils.js:1163 +#: js/utils/synthutils.js:102 +#.TRANS: musical instrument +msgid "banjo" msgstr "" -#: js/WidgetBlocks.js:155 -#: js/MediaBlocks.js:692 -#: js/temperament.js:382 -#: js/temperament.js:417 -#: js/temperament.js:477 -#: js/temperament.js:485 -#: js/temperament.js:1348 -#: js/timbre.js:1842 -msgid "frequency" +#: js/utils/musicutils.js:1164 +#: js/utils/synthutils.js:104 +#.TRANS: musical instrument +msgid "koto" msgstr "" -#: js/WidgetBlocks.js:179 -#.TRANS: rolloff is the steepness of a change in frequency. -msgid "Rolloff value should be either -12, -24, -48, or -96 decibels/octave." +#: js/utils/musicutils.js:1165 +#: js/utils/synthutils.js:106 +#.TRANS: musical instrument +msgid "dulcimer" msgstr "" -#: js/WidgetBlocks.js:211 -msgid "The Temperament tool is used to define custom tuning." +#: js/utils/musicutils.js:1166 +#: js/utils/synthutils.js:108 +#.TRANS: musical instrument +msgid "electric guitar" msgstr "" -#: js/WidgetBlocks.js:277 -#: js/sampler.js:329 -msgid "Upload a sample and adjust its pitch center." +#: js/utils/musicutils.js:1167 +#: js/utils/synthutils.js:110 +#.TRANS: musical instrument +msgid "bassoon" msgstr "" -#: js/WidgetBlocks.js:284 -#.TRANS: the speed at music is should be played. -msgid "sampler" +#: js/utils/musicutils.js:1168 +#: js/utils/synthutils.js:112 +#.TRANS: musical instrument +msgid "celeste" msgstr "" -#: js/WidgetBlocks.js:329 -#: js/WidgetBlocks.js:334 -#: js/IntervalsBlocks.js:928 -#: js/VolumeBlocks.js:411 -#: js/ToneBlocks.js:946 -#: js/VolumeActions.js:218 -#: js/musicutils.js:704 -#: js/musicutils.js:755 -#: js/musicutils.js:798 -#: js/musicutils.js:820 -#: js/musicutils.js:1136 -#: js/synthutils.js:118 -#: js/modewidget.js:919 -#.TRANS: customize voice -msgid "custom" +#: js/utils/musicutils.js:1170 +#: js/widgets/temperament.js:787 +#.TRANS: musical temperament +msgid "equal" msgstr "" -#: js/WidgetBlocks.js:432 -msgid "The Meter block opens a tool to select strong beats for the meter." +#: js/utils/musicutils.js:1172 +#.TRANS: musical temperament +msgid "Pythagorean" msgstr "" -#: js/WidgetBlocks.js:473 -msgid "The oscilloscope block opens a tool to visualize waveforms." +#: js/utils/musicutils.js:1174 +#.TRANS: musical temperament +msgid "just intonation" msgstr "" -#: js/WidgetBlocks.js:478 -msgid "oscilloscope" +#: js/utils/musicutils.js:1176 +#.TRANS: musical temperament +msgid "meantone" msgstr "" -#: js/WidgetBlocks.js:530 -msgid "The Custom mode block opens a tool to explore musical mode (the spacing of the notes in a scale)." +#: js/utils/musicutils.js:1193 +msgid "major 7th" msgstr "" -#: js/WidgetBlocks.js:536 -#.TRANS: musical mode is the pattern of half-steps in an octave, e.g., Major or Minor modes -msgid "custom mode" +#: js/utils/musicutils.js:1194 +msgid "minor 7th" msgstr "" -#: js/WidgetBlocks.js:570 -msgid "The Tempo block opens a metronome to visualize the beat." +#: js/utils/musicutils.js:1195 +msgid "dominant 7th" msgstr "" -#: js/WidgetBlocks.js:617 -msgid "The Arpeggio Widget is used to compose chord sequences." +#: js/utils/musicutils.js:1196 +msgid "minor-major 7th" msgstr "" -#: js/WidgetBlocks.js:623 -#: js/IntervalsBlocks.js:683 -msgid "arpeggio" +#: js/utils/musicutils.js:1197 +msgid "fully-diminished 7th" msgstr "" -#: js/WidgetBlocks.js:677 -msgid "The Pitch drum matrix is used to map pitches to drum sounds." +#: js/utils/musicutils.js:1198 +msgid "half-diminished 7th" msgstr "" -#: js/WidgetBlocks.js:682 -#.TRANS: makes a mapping between pitches and drum sounds -msgid "pitch-drum mapper" +#: js/utils/musicutils.js:1557 +#: js/utils/musicutils.js:1569 +msgid "Equal (12EDO)" msgstr "" -#: js/WidgetBlocks.js:724 -msgid "You must have at least one pitch block and one drum block in the matrix." +#: js/utils/musicutils.js:1558 +#: js/utils/musicutils.js:1570 +msgid "5-limit Just Intonation" msgstr "" -#: js/WidgetBlocks.js:746 -msgid "The Pitch slider tool to is used to generate pitches at selected frequencies." +#: js/utils/musicutils.js:1559 +#: js/utils/musicutils.js:1571 +msgid "Pythagorean (3-limit JI)" msgstr "" -#: js/WidgetBlocks.js:751 -#.TRANS: widget to generate pitches using a slider -msgid "pitch slider" +#: js/utils/musicutils.js:1560 +#: js/utils/musicutils.js:1561 +#: js/utils/musicutils.js:1572 +#: js/utils/musicutils.js:1573 +msgid "Meantone" msgstr "" -#: js/WidgetBlocks.js:788 -msgid "chromatic keyboard" +#: js/utils/musicutils.js:1574 +msgid "Custom" msgstr "" -#: js/WidgetBlocks.js:815 -#: js/WidgetBlocks.js:874 -#.TRANS: widget to generate pitches using a slider -msgid "music keyboard" +#: js/utils/musicutils.js:5387 +#: js/utils/musicutils.js:5430 +msgid "current" msgstr "" -#: js/WidgetBlocks.js:859 -#: js/WidgetBlocks.js:866 -msgid "The Music keyboard block opens a piano keyboard that can be used to create notes." +#: js/utils/musicutils.js:5390 +#: js/utils/musicutils.js:5421 +msgid "next" msgstr "" -#: js/WidgetBlocks.js:910 -msgid "The Pitch staircase tool to is used to generate pitches from a given ratio." +#: js/utils/musicutils.js:5393 +#: js/utils/musicutils.js:5426 +msgid "previous" msgstr "" -#: js/WidgetBlocks.js:917 -#.TRANS: generate a progressive sequence of pitches -msgid "pitch staircase" +#: js/utils/synthutils.js:120 +#.TRANS: simple monotone synthesizer +msgid "simple-2" msgstr "" -#: js/WidgetBlocks.js:982 -msgid "The Rhythm Maker block opens a tool to create drum machines." +#: js/utils/synthutils.js:122 +#.TRANS: simple monotone synthesizer +msgid "simple-3" msgstr "" -#: js/WidgetBlocks.js:1036 -msgid "G major scale" -msgstr "사장조 스케일." +#: js/utils/synthutils.js:124 +#.TRANS: simple monotone synthesizer +msgid "simple-4" +msgstr "" -#: js/WidgetBlocks.js:1064 -msgid "C major scale" -msgstr "다장조 스케일." +#: js/utils/synthutils.js:162 +#.TRANS: musical instrument +msgid "taiko" +msgstr "" -#: js/WidgetBlocks.js:1097 -msgid "The Phrase Maker block opens a tool to create musical phrases." +#: js/blocks/ActionBlocks.js:58 +msgid "The Return block will return a value from an action." msgstr "" -#: js/WidgetBlocks.js:1104 -#.TRANS: assigns pitch to a sequence of beats to generate a melody -msgid "phrase maker" +#: js/blocks/ActionBlocks.js:75 +msgid "return" msgstr "" -#: js/WidgetBlocks.js:1168 -msgid "You must have at least one pitch block and one rhythm block in the matrix." +#: js/blocks/ActionBlocks.js:128 +msgid "The Return to URL block will return a value to a webpage." msgstr "" -#: js/WidgetBlocks.js:1220 -msgid "The Status block opens a tool for inspecting the status of Music Blocks as it is running." +#: js/blocks/ActionBlocks.js:145 +msgid "return to URL" msgstr "" -#: js/IntervalsBlocks.js:45 -msgid "set temperament" +#: js/blocks/ActionBlocks.js:233 +#: js/blocks/ActionBlocks.js:290 +#: js/blocks/ActionBlocks.js:501 +#: js/blocks/ActionBlocks.js:688 +msgid "The Calculate block returns a value calculated by an action." msgstr "" -#: js/IntervalsBlocks.js:63 -#: js/MediaBlocks.js:746 -#: js/PitchBlocks.js:657 -#: js/PitchBlocks.js:933 -#: js/PitchBlocks.js:972 -#: js/PitchBlocks.js:1005 -#: js/PitchBlocks.js:1166 -#: js/PitchBlocks.js:1679 -#: js/PitchBlocks.js:1720 -#: js/PitchBlocks.js:1827 -#: js/ToneBlocks.js:1025 -#.TRANS: adjusts the shift up or down by one octave (twelve half-steps in the interval between two notes, one having twice or half the frequency in Hz of the other.) -msgid "octave" +#: js/blocks/ActionBlocks.js:251 +#: js/blocks/ActionBlocks.js:517 +#: js/blocks/ActionBlocks.js:707 +msgid "calculate" +msgstr "계산하기." + +#: js/blocks/ActionBlocks.js:376 +#: js/blocks/ActionBlocks.js:593 +#: js/blocks/ActionBlocks.js:942 +#: js/blocks/ActionBlocks.js:1389 +#.TRANS: do is the do something or take an action. +msgid "The Do block is used to initiate an action." msgstr "" -#: js/IntervalsBlocks.js:99 -msgid "The Temperament name block is used to select a tuning method." +#: js/blocks/ActionBlocks.js:390 +#: js/blocks/ActionBlocks.js:610 +#: js/blocks/ActionBlocks.js:959 +#: js/blocks/ActionBlocks.js:1048 +#: js/blocks/MeterBlocks.js:769 +msgid "do1" msgstr "" -#: js/IntervalsBlocks.js:161 -msgid "doubly" +#: js/blocks/ActionBlocks.js:390 +#: js/blocks/ActionBlocks.js:610 +#: js/blocks/ActionBlocks.js:959 +#: js/blocks/ActionBlocks.js:1048 +#: js/blocks/FlowBlocks.js:742 +#: js/blocks/FlowBlocks.js:822 +#: js/blocks/MeterBlocks.js:769 +msgid "do" msgstr "" -#: js/IntervalsBlocks.js:166 -msgid "The Doubly block will double the size of an interval." +#: js/blocks/ActionBlocks.js:791 +#: js/blocks/ActionBlocks.js:865 +msgid "The Arg block contains the value of an argument passed to an action." msgstr "" -#: js/IntervalsBlocks.js:262 -msgid "interval number" +#: js/blocks/ActionBlocks.js:806 +#: js/blocks/ActionBlocks.js:878 +msgid "arg" msgstr "" -#: js/IntervalsBlocks.js:330 -#.TRANS: measure the distance between two pitches in semi-tones -msgid "semi-tone interval measure" +#: js/blocks/ActionBlocks.js:836 +#: js/blocks/ActionBlocks.js:900 +#: js/blocks/ActionBlocks.js:908 +msgid "Invalid argument" msgstr "" -#: js/IntervalsBlocks.js:397 -#: js/IntervalsBlocks.js:513 -msgid "You must use two pitch blocks when measuring an interval." +#: js/blocks/ActionBlocks.js:944 +msgid "In the example, it is used with the One of block to choose a random phase." msgstr "" -#: js/IntervalsBlocks.js:439 -msgid "The Scalar interval block measures the distance between two notes in the current key and mode." +#: js/blocks/ActionBlocks.js:1019 +#: js/blocks/ActionBlocks.js:1026 +msgid "The Listen block is used to listen for an event such as a mouse click." +msgstr "" + +#: js/blocks/ActionBlocks.js:1028 +msgid "When the event happens, an action is taken." msgstr "" -#: js/IntervalsBlocks.js:445 -#.TRANS: measure the distance between two pitches in steps of musical scale -msgid "scalar interval measure" +#: js/blocks/ActionBlocks.js:1045 +msgid "on" msgstr "" -#: js/IntervalsBlocks.js:592 -#: js/musicutils.js:637 -#: js/musicutils.js:908 -#.TRANS: perfect is a music term related to intervals -msgid "perfect" +#: js/blocks/ActionBlocks.js:1048 +#: js/blocks/ActionBlocks.js:1049 +#: js/blocks/ActionBlocks.js:1153 +msgid "event" msgstr "" -#: js/IntervalsBlocks.js:621 -msgid "In the figure, we add sol# to sol." +#: js/blocks/ActionBlocks.js:1133 +msgid "The Broadcast block is used to trigger an event." msgstr "" -#: js/IntervalsBlocks.js:627 -#: js/OrnamentBlocks.js:220 -#.TRANS: calculate a relative step between notes based on semi-tones -msgid "semi-tone interval" +#: js/blocks/ActionBlocks.js:1151 +msgid "broadcast" msgstr "" -#: js/IntervalsBlocks.js:676 -msgid "The output of the example is: do, mi, sol, sol, ti, mi" +#: js/blocks/ActionBlocks.js:1208 +msgid "Each Start block is a separate voice." msgstr "" -#: js/IntervalsBlocks.js:735 -msgid "The Chord block calculates common chords." +#: js/blocks/ActionBlocks.js:1304 +msgid "It is often used for storing a phrase of music that is repeated." msgstr "" -#: js/IntervalsBlocks.js:737 -msgid "In the figure, we generate a C-major chord." +#: js/blocks/ActionBlocks.js:1495 +msgid "define temperament" msgstr "" -#: js/IntervalsBlocks.js:742 -msgid "chord" +#: js/blocks/BooleanBlocks.js:44 +msgid "The Not block is the logical not operator." msgstr "" -#: js/IntervalsBlocks.js:794 -msgid "The Ratio Interval block calculates an interval based on a ratio." -msgstr "" +#: js/blocks/BooleanBlocks.js:62 +msgid "not" +msgstr "아니다" -#: js/IntervalsBlocks.js:799 -msgid "ratio interval" +#: js/blocks/BooleanBlocks.js:134 +msgid "The And block is the logical and operator." msgstr "" -#: js/IntervalsBlocks.js:868 -msgid "In the figure, we add la to sol." +#: js/blocks/BooleanBlocks.js:152 +msgid "and" +msgstr "그리고" + +#: js/blocks/BooleanBlocks.js:218 +msgid "The Or block is the logical or operator." msgstr "" -#: js/IntervalsBlocks.js:924 -#.TRANS: define a custom mode -msgid "define mode" +#: js/blocks/BooleanBlocks.js:236 +msgid "or" +msgstr "또는" + +#: js/blocks/BooleanBlocks.js:302 +msgid "The XOR block is the logical XOR operator." msgstr "" -#: js/IntervalsBlocks.js:977 -msgid "movable Do" +#: js/blocks/BooleanBlocks.js:320 +msgid "xor" msgstr "" -#: js/IntervalsBlocks.js:1028 -#.TRANS: mode length is the number of notes in the mode, e.g., 7 for major and minor scales; 12 for chromatic scales -msgid "mode length" +#: js/blocks/BooleanBlocks.js:808 +msgid "The Equal block returns True if the two numbers are equal." msgstr "" -#: js/IntervalsBlocks.js:1037 -msgid "The Mode length block is the number of notes in the current scale." +#: js/blocks/BooleanBlocks.js:909 +msgid "The Not-equal-to block returns True if the two numbers are not equal to each other." msgstr "" -#: js/IntervalsBlocks.js:1039 -msgid "Most Western scales have 7 notes." +#: js/blocks/BooleanBlocks.js:1008 +msgid "The Boolean block is used to specify true or false." msgstr "" -#: js/IntervalsBlocks.js:1088 -#.TRANS: the mode in music is 'major', 'minor', etc. -msgid "current mode" +#: js/blocks/BoxesBlocks.js:53 +#: js/blocks/BoxesBlocks.js:59 +msgid "The Add-to block is used to add to the value stored in a box." msgstr "" -#: js/IntervalsBlocks.js:1141 -#.TRANS: the key is a group of pitches with which a music composition is created -msgid "current key" +#: js/blocks/BoxesBlocks.js:61 +msgid "It can also be used with other blocks such as Color and Pen size." msgstr "" -#: js/IntervalsBlocks.js:1193 -#: js/IntervalsBlocks.js:1238 -#.TRANS: set the key and mode, e.g. C Major -msgid "set key" +#: js/blocks/BoxesBlocks.js:73 +msgid "add" msgstr "" -#: js/IntervalsBlocks.js:1247 -#: js/IntervalsBlocks.js:1253 -msgid "The Set key block is used to set the key and mode," +#: js/blocks/BoxesBlocks.js:75 +#: js/widgets/temperament.js:857 +msgid "to" msgstr "" -#: js/IntervalsBlocks.js:1253 -msgid "eg C Major" +#: js/blocks/BoxesBlocks.js:75 +#: js/blocks/BoxesBlocks.js:595 +#: js/blocks/HeapBlocks.js:544 +msgid "value1" msgstr "" -#: js/IntervalsBlocks.js:1266 -#: js/DictBlocks.js:215 -#: js/DictBlocks.js:216 -#: js/DictBlocks.js:289 -#: js/DictBlocks.js:290 -#: js/DictBlocks.js:357 -#: js/DictBlocks.js:430 -#: js/DictBlocks.js:431 -#.TRANS: key, e.g., C in C Major -msgid "key" +#: js/blocks/BoxesBlocks.js:118 +msgid "Block does not support incrementing." msgstr "" -#: js/ActionBlocks.js:58 -msgid "The Return block will return a value from an action." +#: js/blocks/BoxesBlocks.js:152 +msgid "The Add-1-to block adds one to the value stored in a box." msgstr "" -#: js/ActionBlocks.js:75 -msgid "return" +#: js/blocks/BoxesBlocks.js:163 +msgid "add 1 to" msgstr "" -#: js/ActionBlocks.js:128 -msgid "The Return to URL block will return a value to a webpage." +#: js/blocks/BoxesBlocks.js:211 +msgid "The Subtract-1-from block subtracts one from the value stored in a box." msgstr "" -#: js/ActionBlocks.js:145 -msgid "return to URL" +#: js/blocks/BoxesBlocks.js:222 +msgid "subtract 1 from" msgstr "" -#: js/ActionBlocks.js:233 -#: js/ActionBlocks.js:290 -#: js/ActionBlocks.js:501 -#: js/ActionBlocks.js:688 -msgid "The Calculate block returns a value calculated by an action." +#: js/blocks/BoxesBlocks.js:270 +#: js/blocks/BoxesBlocks.js:387 +msgid "The Box block returns the value stored in a box." msgstr "" -#: js/ActionBlocks.js:251 -#: js/ActionBlocks.js:517 -#: js/ActionBlocks.js:707 -msgid "calculate" -msgstr "계산하기." +#: js/blocks/BoxesBlocks.js:500 +#: js/blocks/BoxesBlocks.js:576 +msgid "The Store in block will store a value in a box." +msgstr "" -#: js/ActionBlocks.js:376 -#: js/ActionBlocks.js:593 -#: js/ActionBlocks.js:942 -#: js/ActionBlocks.js:1389 -#.TRANS: do is the do something or take an action. -msgid "The Do block is used to initiate an action." +#: js/blocks/BoxesBlocks.js:595 +#: js/blocks/EnsembleBlocks.js:391 +#: js/blocks/EnsembleBlocks.js:402 +msgid "name1" msgstr "" -#: js/ActionBlocks.js:390 -#: js/ActionBlocks.js:610 -#: js/ActionBlocks.js:959 -#: js/ActionBlocks.js:1048 -#: js/MeterBlocks.js:769 -msgid "do1" +#: js/blocks/BoxesBlocks.js:652 +msgid "The Box2 block returns the value stored in Box2." msgstr "" -#: js/ActionBlocks.js:390 -#: js/ActionBlocks.js:610 -#: js/ActionBlocks.js:959 -#: js/ActionBlocks.js:1048 -#: js/FlowBlocks.js:742 -#: js/FlowBlocks.js:822 -#: js/MeterBlocks.js:769 -msgid "do" +#: js/blocks/BoxesBlocks.js:703 +msgid "The Store in Box2 block is used to store a value in Box2." msgstr "" -#: js/ActionBlocks.js:791 -#: js/ActionBlocks.js:865 -msgid "The Arg block contains the value of an argument passed to an action." +#: js/blocks/BoxesBlocks.js:715 +msgid "store in box2" msgstr "" -#: js/ActionBlocks.js:806 -#: js/ActionBlocks.js:878 -msgid "arg" +#: js/blocks/BoxesBlocks.js:761 +msgid "The Box1 block returns the value stored in Box1." msgstr "" -#: js/ActionBlocks.js:836 -#: js/ActionBlocks.js:900 -#: js/ActionBlocks.js:908 -msgid "Invalid argument" +#: js/blocks/BoxesBlocks.js:812 +msgid "The Store in Box1 block is used to store a value in Box1." msgstr "" -#: js/ActionBlocks.js:944 -msgid "In the example, it is used with the One of block to choose a random phase." +#: js/blocks/BoxesBlocks.js:826 +msgid "store in box1" msgstr "" -#: js/ActionBlocks.js:1019 -#: js/ActionBlocks.js:1026 -msgid "The Listen block is used to listen for an event such as a mouse click." +#: js/blocks/DictBlocks.js:77 +msgid "show dictionary" msgstr "" -#: js/ActionBlocks.js:1028 -msgid "When the event happens, an action is taken." +#: js/blocks/DictBlocks.js:80 +#: js/blocks/DictBlocks.js:145 +#: js/blocks/DictBlocks.js:216 +#: js/blocks/DictBlocks.js:290 +#: js/blocks/ProgramBlocks.js:396 +#: js/blocks/ProgramBlocks.js:501 +#: js/blocks/ProgramBlocks.js:664 +msgid "My Dictionary" msgstr "" -#: js/ActionBlocks.js:1045 -msgid "on" +#: js/blocks/DictBlocks.js:129 +msgid "The Dictionary block returns a dictionary." msgstr "" -#: js/ActionBlocks.js:1048 -#: js/ActionBlocks.js:1049 -#: js/ActionBlocks.js:1153 -msgid "event" +#: js/blocks/DictBlocks.js:197 +#: js/blocks/DictBlocks.js:339 +msgid "The Get-dict block returns a value in the dictionary for a specified key." msgstr "" -#: js/ActionBlocks.js:1133 -msgid "The Broadcast block is used to trigger an event." +#: js/blocks/DictBlocks.js:212 +#: js/blocks/DictBlocks.js:354 +#.TRANS: retrieve a value from the dictionary with a given key +msgid "get value" msgstr "" -#: js/ActionBlocks.js:1151 -msgid "broadcast" +#: js/blocks/DictBlocks.js:215 +#: js/blocks/DictBlocks.js:216 +#: js/blocks/DictBlocks.js:289 +#: js/blocks/DictBlocks.js:290 +#: js/blocks/DictBlocks.js:357 +#: js/blocks/DictBlocks.js:430 +#: js/blocks/DictBlocks.js:431 +msgid "key2" msgstr "" -#: js/ActionBlocks.js:1208 -msgid "Each Start block is a separate voice." +#: js/blocks/DictBlocks.js:215 +#: js/blocks/DictBlocks.js:216 +#: js/blocks/DictBlocks.js:289 +#: js/blocks/DictBlocks.js:290 +#: js/blocks/DictBlocks.js:357 +#: js/blocks/DictBlocks.js:430 +#: js/blocks/DictBlocks.js:431 +#: js/blocks/IntervalsBlocks.js:1462 +#.TRANS: key, e.g., C in C Major +msgid "key" msgstr "" -#: js/ActionBlocks.js:1304 -msgid "It is often used for storing a phrase of music that is repeated." +#: js/blocks/DictBlocks.js:271 +#: js/blocks/DictBlocks.js:411 +msgid "The Set-dict block sets a value in the dictionary for a specified key." msgstr "" -#: js/ActionBlocks.js:1495 -msgid "define temperament" +#: js/blocks/DictBlocks.js:286 +#: js/blocks/DictBlocks.js:427 +#.TRANS: set a value in the dictionary for a given key +msgid "set value" msgstr "" -#: js/EnsembleBlocks.js:66 +#: js/blocks/EnsembleBlocks.js:66 msgid "mouse index heap" msgstr "" -#: js/EnsembleBlocks.js:68 +#: js/blocks/EnsembleBlocks.js:68 msgid "The Mouse index heap block returns a value in the heap at a specified location for a specified mouse." msgstr "" -#: js/EnsembleBlocks.js:77 -#: js/EnsembleBlocks.js:1080 +#: js/blocks/EnsembleBlocks.js:77 +#: js/blocks/EnsembleBlocks.js:1080 msgid "mouse name" msgstr "" -#: js/EnsembleBlocks.js:77 -#: js/EnsembleBlocks.js:92 -#: js/HeapBlocks.js:544 +#: js/blocks/EnsembleBlocks.js:77 +#: js/blocks/EnsembleBlocks.js:92 +#: js/blocks/HeapBlocks.js:544 #.TRANS: value1 is a numeric value (JAPANESE ONLY) msgid "index" msgstr "" -#: js/EnsembleBlocks.js:80 +#: js/blocks/EnsembleBlocks.js:80 msgid "turtle index heap" msgstr "" -#: js/EnsembleBlocks.js:82 +#: js/blocks/EnsembleBlocks.js:82 msgid "The Turtle index heap block returns a value in the heap at a specified location for a specified turtle." msgstr "" -#: js/EnsembleBlocks.js:90 -#: js/EnsembleBlocks.js:167 -#: js/EnsembleBlocks.js:230 -#: js/EnsembleBlocks.js:316 -#: js/EnsembleBlocks.js:362 -#: js/EnsembleBlocks.js:400 -#: js/EnsembleBlocks.js:454 -#: js/EnsembleBlocks.js:504 -#: js/EnsembleBlocks.js:550 -#: js/EnsembleBlocks.js:597 -#: js/EnsembleBlocks.js:651 -#: js/EnsembleBlocks.js:763 -#: js/EnsembleBlocks.js:854 -#: js/EnsembleBlocks.js:915 -#: js/EnsembleBlocks.js:955 -#: js/EnsembleBlocks.js:1219 -#: js/EnsembleBlocks.js:1293 +#: js/blocks/EnsembleBlocks.js:90 +#: js/blocks/EnsembleBlocks.js:167 +#: js/blocks/EnsembleBlocks.js:230 +#: js/blocks/EnsembleBlocks.js:316 +#: js/blocks/EnsembleBlocks.js:362 +#: js/blocks/EnsembleBlocks.js:400 +#: js/blocks/EnsembleBlocks.js:454 +#: js/blocks/EnsembleBlocks.js:504 +#: js/blocks/EnsembleBlocks.js:550 +#: js/blocks/EnsembleBlocks.js:597 +#: js/blocks/EnsembleBlocks.js:651 +#: js/blocks/EnsembleBlocks.js:763 +#: js/blocks/EnsembleBlocks.js:854 +#: js/blocks/EnsembleBlocks.js:915 +#: js/blocks/EnsembleBlocks.js:955 +#: js/blocks/EnsembleBlocks.js:1219 +#: js/blocks/EnsembleBlocks.js:1293 #.TRANS: Yertle is the name of a turtle. msgid "Yertle" msgstr "" -#: js/EnsembleBlocks.js:92 -#: js/EnsembleBlocks.js:1089 +#: js/blocks/EnsembleBlocks.js:92 +#: js/blocks/EnsembleBlocks.js:1089 msgid "turtle name" msgstr "" -#: js/EnsembleBlocks.js:122 -#: js/EnsembleBlocks.js:1197 -#: js/HeapBlocks.js:474 -#: js/HeapBlocks.js:572 +#: js/blocks/EnsembleBlocks.js:122 +#: js/blocks/EnsembleBlocks.js:1197 +#: js/blocks/HeapBlocks.js:474 +#: js/blocks/HeapBlocks.js:572 msgid "Index must be > 0." msgstr "" -#: js/EnsembleBlocks.js:127 -#: js/HeapBlocks.js:479 -#: js/HeapBlocks.js:577 +#: js/blocks/EnsembleBlocks.js:127 +#: js/blocks/HeapBlocks.js:479 +#: js/blocks/HeapBlocks.js:577 msgid "Maximum heap size is 1000." msgstr "" -#: js/EnsembleBlocks.js:145 +#: js/blocks/EnsembleBlocks.js:145 msgid "stop mouse" msgstr "" -#: js/EnsembleBlocks.js:147 +#: js/blocks/EnsembleBlocks.js:147 msgid "The Stop mouse block stops the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:158 +#: js/blocks/EnsembleBlocks.js:158 msgid "stop turtle" msgstr "" -#: js/EnsembleBlocks.js:160 +#: js/blocks/EnsembleBlocks.js:160 msgid "The Stop turtle block stops the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:184 -#: js/EnsembleBlocks.js:247 -#: js/EnsembleBlocks.js:413 -#: js/EnsembleBlocks.js:468 -#: js/EnsembleBlocks.js:706 -#: js/EnsembleBlocks.js:808 -#: js/EnsembleBlocks.js:870 -#: js/EnsembleBlocks.js:1190 -#: js/EnsembleBlocks.js:1253 +#: js/blocks/EnsembleBlocks.js:184 +#: js/blocks/EnsembleBlocks.js:247 +#: js/blocks/EnsembleBlocks.js:413 +#: js/blocks/EnsembleBlocks.js:468 +#: js/blocks/EnsembleBlocks.js:706 +#: js/blocks/EnsembleBlocks.js:808 +#: js/blocks/EnsembleBlocks.js:870 +#: js/blocks/EnsembleBlocks.js:1190 +#: js/blocks/EnsembleBlocks.js:1253 msgid "Cannot find mouse" msgstr "" -#: js/EnsembleBlocks.js:186 -#: js/EnsembleBlocks.js:249 -#: js/EnsembleBlocks.js:415 -#: js/EnsembleBlocks.js:470 -#: js/EnsembleBlocks.js:708 -#: js/EnsembleBlocks.js:810 -#: js/EnsembleBlocks.js:872 -#: js/EnsembleBlocks.js:1192 -#: js/EnsembleBlocks.js:1255 +#: js/blocks/EnsembleBlocks.js:186 +#: js/blocks/EnsembleBlocks.js:249 +#: js/blocks/EnsembleBlocks.js:415 +#: js/blocks/EnsembleBlocks.js:470 +#: js/blocks/EnsembleBlocks.js:708 +#: js/blocks/EnsembleBlocks.js:810 +#: js/blocks/EnsembleBlocks.js:872 +#: js/blocks/EnsembleBlocks.js:1192 +#: js/blocks/EnsembleBlocks.js:1255 msgid "Cannot find turtle" msgstr "" -#: js/EnsembleBlocks.js:206 +#: js/blocks/EnsembleBlocks.js:206 msgid "start mouse" msgstr "" -#: js/EnsembleBlocks.js:209 +#: js/blocks/EnsembleBlocks.js:209 msgid "The Start mouse block starts the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:220 +#: js/blocks/EnsembleBlocks.js:220 msgid "start turtle" msgstr "" -#: js/EnsembleBlocks.js:223 +#: js/blocks/EnsembleBlocks.js:223 msgid "The Start turtle block starts the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:256 +#: js/blocks/EnsembleBlocks.js:256 msgid "Mouse is already running." msgstr "" -#: js/EnsembleBlocks.js:258 +#: js/blocks/EnsembleBlocks.js:258 msgid "Turtle is already running." msgstr "" -#: js/EnsembleBlocks.js:282 +#: js/blocks/EnsembleBlocks.js:282 msgid "Cannot find start block" msgstr "" -#: js/EnsembleBlocks.js:292 +#: js/blocks/EnsembleBlocks.js:292 #.TRANS: pen color for this mouse msgid "mouse color" msgstr "" -#: js/EnsembleBlocks.js:294 +#: js/blocks/EnsembleBlocks.js:294 msgid "The Mouse color block returns the pen color of the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:306 +#: js/blocks/EnsembleBlocks.js:306 #.TRANS: pen color for this turtle msgid "turtle color" msgstr "" -#: js/EnsembleBlocks.js:308 +#: js/blocks/EnsembleBlocks.js:308 msgid "The Turtle color block returns the pen color of the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:338 +#: js/blocks/EnsembleBlocks.js:338 #.TRANS: heading (compass direction) for this mouse msgid "mouse heading" msgstr "" -#: js/EnsembleBlocks.js:340 +#: js/blocks/EnsembleBlocks.js:340 msgid "The Mouse heading block returns the heading of the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:352 +#: js/blocks/EnsembleBlocks.js:352 #.TRANS: heading (compass direction) for this turtle msgid "turtle heading" msgstr "" -#: js/EnsembleBlocks.js:354 +#: js/blocks/EnsembleBlocks.js:354 msgid "The Turtle heading block returns the heading of the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:384 -#: js/EnsembleBlocks.js:439 +#: js/blocks/EnsembleBlocks.js:384 +#: js/blocks/EnsembleBlocks.js:439 #.TRANS: set xy position for this mouse msgid "set mouse" msgstr "" -#: js/EnsembleBlocks.js:391 -#: js/EnsembleBlocks.js:402 -#: js/BoxesBlocks.js:595 -msgid "name1" -msgstr "" - -#: js/EnsembleBlocks.js:391 -#: js/EnsembleBlocks.js:402 -#: js/ProgramBlocks.js:881 -#: js/GraphicsBlocks.js:235 -#: js/GraphicsBlocks.js:313 -#: js/GraphicsBlocks.js:436 -#: js/GraphicsBlocks.js:487 -#: js/GraphicsBlocks.js:534 -#: js/GraphicsBlocks.js:750 +#: js/blocks/EnsembleBlocks.js:391 +#: js/blocks/EnsembleBlocks.js:402 +#: js/blocks/GraphicsBlocks.js:235 +#: js/blocks/GraphicsBlocks.js:313 +#: js/blocks/GraphicsBlocks.js:436 +#: js/blocks/GraphicsBlocks.js:487 +#: js/blocks/GraphicsBlocks.js:534 +#: js/blocks/GraphicsBlocks.js:750 +#: js/blocks/ProgramBlocks.js:881 msgid "x" msgstr "x" -#: js/EnsembleBlocks.js:391 -#: js/EnsembleBlocks.js:402 -#: js/ProgramBlocks.js:881 -#: js/GraphicsBlocks.js:149 -#: js/GraphicsBlocks.js:313 -#: js/GraphicsBlocks.js:436 -#: js/GraphicsBlocks.js:487 -#: js/GraphicsBlocks.js:534 -#: js/GraphicsBlocks.js:750 +#: js/blocks/EnsembleBlocks.js:391 +#: js/blocks/EnsembleBlocks.js:402 +#: js/blocks/GraphicsBlocks.js:149 +#: js/blocks/GraphicsBlocks.js:313 +#: js/blocks/GraphicsBlocks.js:436 +#: js/blocks/GraphicsBlocks.js:487 +#: js/blocks/GraphicsBlocks.js:534 +#: js/blocks/GraphicsBlocks.js:750 +#: js/blocks/ProgramBlocks.js:881 msgid "y" msgstr "y" -#: js/EnsembleBlocks.js:395 -#: js/EnsembleBlocks.js:452 +#: js/blocks/EnsembleBlocks.js:395 +#: js/blocks/EnsembleBlocks.js:452 #.TRANS: set xy position for this turtle msgid "set turtle" msgstr "" -#: js/EnsembleBlocks.js:433 +#: js/blocks/EnsembleBlocks.js:433 msgid "The Set mouse block sends a stack of blocks to be run by the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:446 +#: js/blocks/EnsembleBlocks.js:446 msgid "The Set turtle block sends a stack of blocks to be run by the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:480 +#: js/blocks/EnsembleBlocks.js:480 #.TRANS: y position for this mouse msgid "mouse y" msgstr "" -#: js/EnsembleBlocks.js:482 +#: js/blocks/EnsembleBlocks.js:482 msgid "The Y mouse block returns the Y position of the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:494 +#: js/blocks/EnsembleBlocks.js:494 #.TRANS: y position for this turtle msgid "turtle y" msgstr "" -#: js/EnsembleBlocks.js:496 +#: js/blocks/EnsembleBlocks.js:496 msgid "The Y turtle block returns the Y position of the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:526 +#: js/blocks/EnsembleBlocks.js:526 #.TRANS: x position for this mouse msgid "mouse x" msgstr "" -#: js/EnsembleBlocks.js:528 +#: js/blocks/EnsembleBlocks.js:528 msgid "The X mouse block returns the X position of the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:540 +#: js/blocks/EnsembleBlocks.js:540 #.TRANS: x position for this turtle msgid "turtle x" msgstr "" -#: js/EnsembleBlocks.js:542 +#: js/blocks/EnsembleBlocks.js:542 msgid "The X turtle block returns the X position of the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:573 +#: js/blocks/EnsembleBlocks.js:573 #.TRANS: notes played by this mouse msgid "mouse notes played" msgstr "" -#: js/EnsembleBlocks.js:575 +#: js/blocks/EnsembleBlocks.js:575 msgid "The Mouse elapse notes block returns the number of notes played by the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:587 +#: js/blocks/EnsembleBlocks.js:587 #.TRANS: notes played by this turtle msgid "turtle notes played" msgstr "" -#: js/EnsembleBlocks.js:589 +#: js/blocks/EnsembleBlocks.js:589 msgid "The Turtle elapse notes block returns the number of notes played by the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:627 +#: js/blocks/EnsembleBlocks.js:627 #.TRANS: convert current note for this turtle to piano key (1-88) msgid "mouse pitch number" msgstr "" -#: js/EnsembleBlocks.js:629 +#: js/blocks/EnsembleBlocks.js:629 msgid "The Mouse pitch block returns the current pitch number being played by the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:641 +#: js/blocks/EnsembleBlocks.js:641 #.TRANS: convert current note for this turtle to piano key (1-88) msgid "turtle pitch number" msgstr "" -#: js/EnsembleBlocks.js:643 -msgid "The Turrle pitch block returns the current pitch number being played by the specified turtle." +#: js/blocks/EnsembleBlocks.js:643 +msgid "The Turtle pitch block returns the current pitch number being played by the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:747 -#: js/EnsembleBlocks.js:819 +#: js/blocks/EnsembleBlocks.js:747 +#: js/blocks/EnsembleBlocks.js:819 #.TRANS: note value is the duration of the note played by this mouse msgid "mouse note value" msgstr "" -#: js/EnsembleBlocks.js:757 +#: js/blocks/EnsembleBlocks.js:757 #.TRANS: note value is the duration of the note played by this turtle msgid "turtle note value" msgstr "" -#: js/EnsembleBlocks.js:830 +#: js/blocks/EnsembleBlocks.js:830 #.TRANS: sync is short for synchronization msgid "mouse sync" msgstr "" -#: js/EnsembleBlocks.js:832 +#: js/blocks/EnsembleBlocks.js:832 msgid "The Mouse sync block aligns the beat count between mice." msgstr "" -#: js/EnsembleBlocks.js:844 +#: js/blocks/EnsembleBlocks.js:844 #.TRANS: sync is short for synchronization msgid "turtle sync" msgstr "" -#: js/EnsembleBlocks.js:846 +#: js/blocks/EnsembleBlocks.js:846 msgid "The Turtle sync block aligns the beat count between turtles." msgstr "" -#: js/EnsembleBlocks.js:887 +#: js/blocks/EnsembleBlocks.js:887 msgid "The Found mouse block will return true if the specified mouse can be found." msgstr "" -#: js/EnsembleBlocks.js:893 +#: js/blocks/EnsembleBlocks.js:893 msgid "found mouse" msgstr "" -#: js/EnsembleBlocks.js:903 +#: js/blocks/EnsembleBlocks.js:903 msgid "The Found turtle block will return true if the specified turtle can be found." msgstr "" -#: js/EnsembleBlocks.js:909 +#: js/blocks/EnsembleBlocks.js:909 msgid "found turtle" msgstr "" -#: js/EnsembleBlocks.js:932 +#: js/blocks/EnsembleBlocks.js:932 msgid "new mouse" msgstr "" -#: js/EnsembleBlocks.js:934 +#: js/blocks/EnsembleBlocks.js:934 msgid "The New mouse block will create a new mouse." msgstr "" -#: js/EnsembleBlocks.js:945 +#: js/blocks/EnsembleBlocks.js:945 msgid "new turtle" msgstr "" -#: js/EnsembleBlocks.js:947 +#: js/blocks/EnsembleBlocks.js:947 msgid "The New turtle block will create a new turtle." msgstr "" -#: js/EnsembleBlocks.js:1011 +#: js/blocks/EnsembleBlocks.js:1011 msgid "set mouse color" msgstr "" -#: js/EnsembleBlocks.js:1014 +#: js/blocks/EnsembleBlocks.js:1014 msgid "The Set-mouse-color block is used to set the color of a mouse." msgstr "" -#: js/EnsembleBlocks.js:1020 +#: js/blocks/EnsembleBlocks.js:1020 msgid "set turtle color" msgstr "" -#: js/EnsembleBlocks.js:1023 +#: js/blocks/EnsembleBlocks.js:1023 msgid "The Set-turtle-color block is used to set the color of a turtle." msgstr "" -#: js/EnsembleBlocks.js:1083 +#: js/blocks/EnsembleBlocks.js:1083 msgid "The Mouse-name block returns the name of a mouse." msgstr "" -#: js/EnsembleBlocks.js:1092 +#: js/blocks/EnsembleBlocks.js:1092 msgid "The Turtle-name block returns the name of a turtle." msgstr "" -#: js/EnsembleBlocks.js:1115 +#: js/blocks/EnsembleBlocks.js:1115 msgid "mouse count" msgstr "" -#: js/EnsembleBlocks.js:1118 +#: js/blocks/EnsembleBlocks.js:1118 msgid "The Mouse-count block returns the number of mice." msgstr "" -#: js/EnsembleBlocks.js:1124 +#: js/blocks/EnsembleBlocks.js:1124 msgid "turtle count" msgstr "" -#: js/EnsembleBlocks.js:1127 +#: js/blocks/EnsembleBlocks.js:1127 msgid "The Turtle-count block returns the number of turtles." msgstr "" -#: js/EnsembleBlocks.js:1149 +#: js/blocks/EnsembleBlocks.js:1149 msgid "nth mouse name" msgstr "" -#: js/EnsembleBlocks.js:1152 +#: js/blocks/EnsembleBlocks.js:1152 msgid "The Nth-Mouse name block returns the name of the nth mouse." msgstr "" -#: js/EnsembleBlocks.js:1158 +#: js/blocks/EnsembleBlocks.js:1158 msgid "nth turtle name" msgstr "" -#: js/EnsembleBlocks.js:1161 +#: js/blocks/EnsembleBlocks.js:1161 msgid "The Nth-Turtle name block returns the name of the nth turtle." msgstr "" -#: js/EnsembleBlocks.js:1205 -#: js/EnsembleBlocks.js:1265 +#: js/blocks/EnsembleBlocks.js:1205 +#: js/blocks/EnsembleBlocks.js:1265 msgid "set name" msgstr "" -#: js/EnsembleBlocks.js:1214 -#: js/EnsembleBlocks.js:1221 +#: js/blocks/EnsembleBlocks.js:1214 +#: js/blocks/EnsembleBlocks.js:1221 msgid "source" msgstr "" -#: js/EnsembleBlocks.js:1214 -#: js/EnsembleBlocks.js:1221 +#: js/blocks/EnsembleBlocks.js:1214 +#: js/blocks/EnsembleBlocks.js:1221 msgid "target" msgstr "" -#: js/EnsembleBlocks.js:1271 +#: js/blocks/EnsembleBlocks.js:1271 msgid "The Set-name block is used to name a mouse." msgstr "" -#: js/EnsembleBlocks.js:1284 +#: js/blocks/EnsembleBlocks.js:1284 msgid "The Set-name block is used to name a turtle." msgstr "" -#: js/BooleanBlocks.js:44 -msgid "The Not block is the logical not operator." -msgstr "" - -#: js/BooleanBlocks.js:62 -msgid "not" -msgstr "아니다" - -#: js/BooleanBlocks.js:134 -msgid "The And block is the logical and operator." -msgstr "" - -#: js/BooleanBlocks.js:152 -msgid "and" -msgstr "그리고" - -#: js/BooleanBlocks.js:218 -msgid "The Or block is the logical or operator." -msgstr "" - -#: js/BooleanBlocks.js:236 -msgid "or" -msgstr "또는" - -#: js/BooleanBlocks.js:302 -msgid "The XOR block is the logical XOR operator." -msgstr "" - -#: js/BooleanBlocks.js:320 -msgid "xor" -msgstr "" - -#: js/BooleanBlocks.js:808 -msgid "The Equal block returns True if the two numbers are equal." -msgstr "" - -#: js/BooleanBlocks.js:909 -msgid "The Not-equal-to block returns True if the two numbers are not equal to each other." -msgstr "" - -#: js/BooleanBlocks.js:1008 -msgid "The Boolean block is used to specify true or false." -msgstr "" - -#: js/MediaBlocks.js:35 -#.TRANS: right side of the screen -msgid "right (screen)" -msgstr "" - -#: js/MediaBlocks.js:45 -#: js/MediaBlocks.js:56 -msgid "The Right block returns the position of the right of the canvas." -msgstr "" - -#: js/MediaBlocks.js:97 -#.TRANS: left side of the screen -msgid "left (screen)" -msgstr "" - -#: js/MediaBlocks.js:107 -#: js/MediaBlocks.js:118 -msgid "The Left block returns the position of the left of the canvas." -msgstr "" - -#: js/MediaBlocks.js:158 -msgid "top (screen)" -msgstr "" - -#: js/MediaBlocks.js:168 -#: js/MediaBlocks.js:179 -msgid "The Top block returns the position of the top of the canvas." -msgstr "" - -#: js/MediaBlocks.js:219 -msgid "bottom (screen)" -msgstr "" - -#: js/MediaBlocks.js:229 -#: js/MediaBlocks.js:240 -msgid "The Bottom block returns the position of the bottom of the canvas." -msgstr "" - -#: js/MediaBlocks.js:282 -msgid "width" -msgstr "" - -#: js/MediaBlocks.js:291 -msgid "The Width block returns the width of the canvas." -msgstr "" - -#: js/MediaBlocks.js:325 -msgid "height" -msgstr "" - -#: js/MediaBlocks.js:334 -msgid "The Height block returns the height of the canvas." -msgstr "" - -#: js/MediaBlocks.js:369 -#.TRANS: stops playback of an audio recording -msgid "stop play" -msgstr "" - -#: js/MediaBlocks.js:404 -#.TRANS: Erases the images and text -msgid "erase media" -msgstr "" - -#: js/MediaBlocks.js:409 -msgid "The Erase Media block erases text and images." -msgstr "" - -#: js/MediaBlocks.js:439 -#.TRANS: play an audio recording -msgid "play back" -msgstr "" - -#: js/MediaBlocks.js:487 -msgid "speak" -msgstr "" - -#: js/MediaBlocks.js:495 -msgid "The Speak block outputs to the text-to-speech synthesizer" -msgstr "" - -#: js/MediaBlocks.js:546 -msgid "camera" -msgstr "" - -#: js/MediaBlocks.js:551 -msgid "The Camera block connects a webcam to the Show block." -msgstr "" - -#: js/MediaBlocks.js:574 -msgid "video" -msgstr "" - -#: js/MediaBlocks.js:579 -msgid "The Video block selects video for use with the Show block." +#: js/blocks/ExtrasBlocks.js:33 +msgid "fraction" msgstr "" -#: js/MediaBlocks.js:607 -msgid "The Open file block opens a file for use with the Show block." +#: js/blocks/ExtrasBlocks.js:36 +msgid "Convert a float to a fraction" msgstr "" -#: js/MediaBlocks.js:645 -msgid "stop media" +#: js/blocks/ExtrasBlocks.js:93 +msgid "save as ABC" msgstr "" -#: js/MediaBlocks.js:650 -msgid "The Stop media block stops audio or video playback." +#: js/blocks/ExtrasBlocks.js:96 +#: js/blocks/ExtrasBlocks.js:132 +#: js/blocks/ExtrasBlocks.js:168 +msgid "title" msgstr "" -#: js/MediaBlocks.js:679 -#: js/PitchBlocks.js:1539 -#: js/phrasemaker.js:822 -#: js/musickeyboard.js:1654 -#.TRANS: a measure of frequency: one cycle per second -msgid "hertz" +#: js/blocks/ExtrasBlocks.js:129 +msgid "save as Lilypond" msgstr "" -#: js/MediaBlocks.js:692 -msgid "duration (ms)" +#: js/blocks/ExtrasBlocks.js:165 +msgid "save as SVG" msgstr "" -#: js/MediaBlocks.js:728 -#.TRANS: translate a note into hertz, e.g., A4 -> 440HZ -msgid "note to frequency" +#: js/blocks/ExtrasBlocks.js:216 +msgid "no background" msgstr "" -#: js/MediaBlocks.js:736 -msgid "The To frequency block converts a pitch name and octave to Hertz." +#: js/blocks/ExtrasBlocks.js:219 +msgid "The No background block eliminates the background from the saved SVG output." msgstr "" -#: js/MediaBlocks.js:746 -#: js/PitchBlocks.js:656 -#: js/PitchBlocks.js:932 -#: js/PitchBlocks.js:1827 -#.TRANS: name2 is name as in name of pitch (JAPANESE ONLY) -msgid "name2" -msgstr "" +#: js/blocks/ExtrasBlocks.js:247 +msgid "show blocks" +msgstr "블록 보기" -#: js/MediaBlocks.js:812 -msgid "The Avatar block is used to change the appearance of the mouse." +#: js/blocks/ExtrasBlocks.js:249 +msgid "The Show blocks block shows the blocks." msgstr "" -#: js/MediaBlocks.js:819 -msgid "The Avatar block is used to change the appearance of the turtle." -msgstr "" +#: js/blocks/ExtrasBlocks.js:274 +msgid "hide blocks" +msgstr "블록 숨기기" -#: js/MediaBlocks.js:831 -#: js/MediaBlocks.js:891 -#.TRANS: a media object -msgid "size" +#: js/blocks/ExtrasBlocks.js:276 +msgid "The Hide blocks block hides the blocks." msgstr "" -#: js/MediaBlocks.js:831 -msgid "image" +#: js/blocks/ExtrasBlocks.js:305 +#: js/blocks/ExtrasBlocks.js:338 +msgid "The Space block is used to add space between blocks." msgstr "" -#: js/MediaBlocks.js:880 -msgid "The Show block is used to display text or images on the canvas." -msgstr "" +#: js/blocks/ExtrasBlocks.js:376 +msgid "wait" +msgstr "기다리기" -#: js/MediaBlocks.js:888 -#.TRANS: show1 is show as in display an image or text on the screen. -msgid "show1" +#: js/blocks/ExtrasBlocks.js:379 +msgid "The Wait block pauses the program for a specified number of seconds." msgstr "" -#: js/MediaBlocks.js:891 -msgid "obj" +#: js/blocks/ExtrasBlocks.js:433 +#: plugins/facebook.rtp:30 +msgid "comment" msgstr "" -#: js/MediaBlocks.js:938 -msgid "The Media block is used to import an image." -msgstr "" +#: js/blocks/ExtrasBlocks.js:469 +msgid "print" +msgstr "인쇄" -#: js/MediaBlocks.js:973 -msgid "The Text block holds a text string." +#: js/blocks/ExtrasBlocks.js:476 +msgid "The Print block displays text at the top of the screen." msgstr "" -#: js/ProgramBlocks.js:33 -msgid "The Load-heap-from-app block loads the heap from a web page." +#: js/blocks/ExtrasBlocks.js:582 +msgid "display grid" msgstr "" -#: js/ProgramBlocks.js:44 -#.TRANS: load the heap contents from a URL -msgid "load heap from App" +#: js/blocks/ExtrasBlocks.js:587 +msgid "The Display Grid Block changes the grid type" msgstr "" -#: js/ProgramBlocks.js:95 -msgid "Error parsing JSON data:" +#: js/blocks/ExtrasBlocks.js:689 +#: js/blocks/ExtrasBlocks.js:708 +#: js/blocks/ExtrasBlocks.js:731 +#: js/blocks/ExtrasBlocks.js:754 +#: js/blocks/ExtrasBlocks.js:772 +#: js/blocks/ExtrasBlocks.js:791 +#: js/blocks/ExtrasBlocks.js:810 +#: js/blocks/ExtrasBlocks.js:829 +msgid "unknown" msgstr "" -#: js/ProgramBlocks.js:100 -msgid "404: Page not found" +#: js/blocks/FlowBlocks.js:41 +msgid "The Backward block runs code in reverse order (Musical retrograde)." msgstr "" -#: js/ProgramBlocks.js:133 -msgid "The Save-heap-to-app block saves the heap to a web page." +#: js/blocks/FlowBlocks.js:48 +msgid "backward" msgstr "" -#: js/ProgramBlocks.js:144 -#.TRANS: save the heap contents to a URL -msgid "save heap to App" +#: js/blocks/FlowBlocks.js:124 +msgid "The Duplicate block will run each block multiple times." msgstr "" -#: js/ProgramBlocks.js:189 -msgid "Cannot find a valid heap for" +#: js/blocks/FlowBlocks.js:136 +msgid "duplicate" msgstr "" -#: js/ProgramBlocks.js:206 -msgid "The Load-heap block loads the heap from a file." +#: js/blocks/FlowBlocks.js:334 +msgid "The Default block is used inside of a Switch to define the default action." msgstr "" -#: js/ProgramBlocks.js:217 -#.TRANS: load the heap from a file -msgid "load heap" +#: js/blocks/FlowBlocks.js:342 +msgid "default" msgstr "" -#: js/ProgramBlocks.js:270 -msgid "The file you selected does not contain a valid heap." +#: js/blocks/FlowBlocks.js:361 +#: js/blocks/FlowBlocks.js:418 +msgid "The Case Block must be used inside of a Switch Block." msgstr "" -#: js/ProgramBlocks.js:275 -msgid "The loadHeap block needs a loadFile block." +#: js/blocks/FlowBlocks.js:389 +msgid "The Case block is used inside of a Switch to define matches." msgstr "" -#: js/ProgramBlocks.js:291 -msgid "The Set-heap block loads the heap." +#: js/blocks/FlowBlocks.js:397 +msgid "case" msgstr "" -#: js/ProgramBlocks.js:299 -#: js/HeapBlocks.js:539 -#.TRANS: load the heap from a JSON encoding -msgid "set heap" +#: js/blocks/FlowBlocks.js:446 +msgid "The Switch block will run the code in the matching Case." msgstr "" -#: js/ProgramBlocks.js:340 -msgid "The block you selected does not contain a valid heap." +#: js/blocks/FlowBlocks.js:454 +msgid "switch" msgstr "" -#: js/ProgramBlocks.js:343 -msgid "The Set heap block needs a heap." +#: js/blocks/FlowBlocks.js:595 +msgid "The Stop block will stop a loop" msgstr "" -#: js/ProgramBlocks.js:360 -msgid "The Load-dictionary block loads a dictionary from a file." +#: js/blocks/FlowBlocks.js:597 +msgid "Forever, Repeat, While, or Until." msgstr "" -#: js/ProgramBlocks.js:372 -#.TRANS: load a dictionary from a file -msgid "load dictionary" -msgstr "" +#: js/blocks/FlowBlocks.js:604 +#: js/widgets/timbre.js:417 +#: js/widgets/timbre.js:419 +#: js/widgets/musickeyboard.js:819 +#: js/widgets/musickeyboard.js:821 +#: js/widgets/phrasemaker.js:4202 +#: plugins/rodi.rtp:29 +#: plugins/rodi.rtp:73 +#: plugins/rodi.rtp:413 +msgid "stop" +msgstr "단계 실행" -#: js/ProgramBlocks.js:390 -#: js/ProgramBlocks.js:658 -#: js/ToneBlocks.js:1025 -msgid "file" +#: js/blocks/FlowBlocks.js:653 +msgid "The Waitfor block will wait until the condition is true." msgstr "" -#: js/ProgramBlocks.js:396 -#: js/ProgramBlocks.js:501 -#: js/ProgramBlocks.js:664 -#: js/DictBlocks.js:80 -#: js/DictBlocks.js:145 -#: js/DictBlocks.js:216 -#: js/DictBlocks.js:290 -msgid "My Dictionary" +#: js/blocks/FlowBlocks.js:661 +msgid "wait for" msgstr "" -#: js/ProgramBlocks.js:444 -msgid "The file you selected does not contain a valid dictionary." +#: js/blocks/FlowBlocks.js:732 +msgid "The Until block will repeat until the condition is true." msgstr "" -#: js/ProgramBlocks.js:449 -msgid "The load dictionary block needs a load file block." +#: js/blocks/FlowBlocks.js:740 +msgid "until" msgstr "" -#: js/ProgramBlocks.js:466 -msgid "The Set-dictionary block loads a dictionary." +#: js/blocks/FlowBlocks.js:742 +#: js/blocks/FlowBlocks.js:822 +msgid "do2" msgstr "" -#: js/ProgramBlocks.js:477 -#.TRANS: load a dictionary from a JSON -msgid "set dictionary" +#: js/blocks/FlowBlocks.js:812 +msgid "The While block will repeat while the condition is true." msgstr "" -#: js/ProgramBlocks.js:546 -msgid "The block you selected does not contain a valid dictionary." +#: js/blocks/FlowBlocks.js:820 +msgid "while" msgstr "" -#: js/ProgramBlocks.js:550 -msgid "The set dictionary block needs a dictionary." +#: js/blocks/FlowBlocks.js:903 +#: js/blocks/FlowBlocks.js:968 +#: js/blocks/FlowBlocks.js:979 +msgid "In this example if the mouse button is pressed a snare drum will play." msgstr "" -#: js/ProgramBlocks.js:567 -msgid "The Save-heap block saves the heap to a file." -msgstr "" +#: js/blocks/FlowBlocks.js:925 +#: js/blocks/FlowBlocks.js:988 +msgid "if" +msgstr "만약" -#: js/ProgramBlocks.js:578 -#.TRANS: save the heap to a file -msgid "save heap" -msgstr "" +#: js/blocks/FlowBlocks.js:927 +#: js/blocks/FlowBlocks.js:990 +msgid "then" +msgstr "이면" -#: js/ProgramBlocks.js:629 -msgid "The Save-dictionary block saves a dictionary to a file." -msgstr "" +#: js/blocks/FlowBlocks.js:927 +msgid "else" +msgstr "아니면" -#: js/ProgramBlocks.js:640 -#.TRANS: save a dictionary to a file -msgid "save dictionary" +#: js/blocks/FlowBlocks.js:1025 +msgid "The Forever block will repeat the contained blocks forever." msgstr "" -#: js/ProgramBlocks.js:720 -msgid "The Open palette block opens a palette." -msgstr "" +#: js/blocks/FlowBlocks.js:1037 +msgid "forever" +msgstr "언제나" -#: js/ProgramBlocks.js:727 -msgid "open palette" +#: js/blocks/FlowBlocks.js:1073 +msgid "The Repeat block will repeat the contained blocks." msgstr "" -#: js/ProgramBlocks.js:785 -msgid "The Delete block block removes a block." +#: js/blocks/FlowBlocks.js:1075 +msgid "In this example the note will be played 4 times." msgstr "" -#: js/ProgramBlocks.js:797 -#.TRANS: Move this block to the trash. -msgid "delete block" -msgstr "" +#: js/blocks/FlowBlocks.js:1083 +msgid "repeat" +msgstr "반복" -#: js/ProgramBlocks.js:861 -msgid "The Move block block moves a block." +#: js/blocks/FlowBlocks.js:1123 +msgid "duplicate factor" msgstr "" -#: js/ProgramBlocks.js:869 -#.TRANS: Move the position of a block on the screen. -msgid "move block" +#: js/blocks/HeapBlocks.js:49 +msgid "The Heap block returns the heap." msgstr "" -#: js/ProgramBlocks.js:881 -#: js/ProgramBlocks.js:1048 -msgid "block number" +#: js/blocks/HeapBlocks.js:133 +msgid "show heap" msgstr "" -#: js/ProgramBlocks.js:935 -#.TRANS: Run program beginning at this block. -msgid "run block" +#: js/blocks/HeapBlocks.js:181 +msgid "The Heap-length block returns the length of the heap." msgstr "" -#: js/ProgramBlocks.js:1025 -msgid "The Dock block block connections two blocks." +#: js/blocks/HeapBlocks.js:195 +msgid "heap length" msgstr "" -#: js/ProgramBlocks.js:1036 -#.TRANS: We can connect a block to another block. -msgid "connect blocks" +#: js/blocks/HeapBlocks.js:254 +msgid "The Heap-empty? block returns true if the heap is empty." msgstr "" -#: js/ProgramBlocks.js:1048 -msgid "target block" +#: js/blocks/HeapBlocks.js:268 +#.TRANS: Is the heap empty? +msgid "heap empty?" msgstr "" -#: js/ProgramBlocks.js:1048 -msgid "connection number" +#: js/blocks/HeapBlocks.js:317 +msgid "The Empty-heap block empties the heap." msgstr "" -#: js/ProgramBlocks.js:1140 -msgid "The Make block block creates a new block." +#: js/blocks/HeapBlocks.js:327 +#: js/blocks/HeapBlocks.js:647 +#.TRANS: empty the heap +msgid "empty heap" msgstr "" -#: js/ProgramBlocks.js:1152 -#.TRANS: Create a new block -msgid "make block" +#: js/blocks/HeapBlocks.js:371 +msgid "The Reverse-heap block reverses the order of the heap." msgstr "" -#: js/ProgramBlocks.js:1186 -#: js/ProgramBlocks.js:1227 -#: js/RhythmBlocks.js:1128 -#: js/PitchBlocks.js:972 -#: js/PitchBlocks.js:1005 -#: js/temperament.js:340 -#: js/temperament.js:362 -#: js/temperament.js:372 -#: js/temperament.js:484 -#: js/status.js:190 -#: plugins/rodi.rtp:192 -#.TRANS: a musical note consisting of pitch and duration -msgid "note" -msgstr "음표" - -#: js/ProgramBlocks.js:1285 -msgid "Cannot find block" +#: js/blocks/HeapBlocks.js:384 +#.TRANS: reverse the order of the heap +msgid "reverse heap" msgstr "" -#: js/ProgramBlocks.js:1304 -#: js/ProgramBlocks.js:1313 -msgid "Warning: block argument type mismatch" +#: js/blocks/HeapBlocks.js:428 +msgid "The Index-heap block returns a value in the heap at a specified location." msgstr "" -#: js/ProgramBlocks.js:1347 -msgid "The Open project block is used to open a project from a web page." +#: js/blocks/HeapBlocks.js:443 +#.TRANS: retrieve a value from the heap at index position in the heap +msgid "index heap" msgstr "" -#: js/ProgramBlocks.js:1357 -msgid "open project" -msgstr "프로젝트 열기." - -#: js/ProgramBlocks.js:1410 -msgid "Please enter a valid URL." +#: js/blocks/HeapBlocks.js:523 +msgid "The Set-heap entry block sets a value in he heap at the specified location." msgstr "" -#: js/DrumBlocks.js:59 -msgid "The Noise name block is used to select a noise synthesizer." +#: js/blocks/HeapBlocks.js:539 +#: js/blocks/ProgramBlocks.js:299 +#.TRANS: load the heap from a JSON encoding +msgid "set heap" msgstr "" -#: js/DrumBlocks.js:102 -msgid "The Drum name block is used to select a drum." +#: js/blocks/HeapBlocks.js:619 +msgid "The Pop block removes the value at the top of the heap." msgstr "" -#: js/DrumBlocks.js:146 -msgid "The Effects name block is used to select a sound effect." -msgstr "효과 명 블록은 음향 효과를 선택하는 데 사용된다." - -#: js/DrumBlocks.js:163 -msgid "noise" -msgstr "소음." +#: js/blocks/HeapBlocks.js:633 +#.TRANS: pop a value off the top of the heap +msgid "pop" +msgstr "빼기" -#: js/DrumBlocks.js:177 -msgid "The Play noise block will generate white, pink, or brown noise." +#: js/blocks/HeapBlocks.js:680 +msgid "The Push block adds a value to the top of the heap." msgstr "" -#: js/DrumBlocks.js:191 -#: js/musicutils.js:752 -#: js/synthutils.js:47 -#.TRANS: white noise synthesizer -msgid "white noise" -msgstr "백색 소음." +#: js/blocks/HeapBlocks.js:696 +#.TRANS: push a value onto the top of the heap +msgid "push" +msgstr "넣기" -#: js/DrumBlocks.js:326 -msgid "Replace every instance of a pitch with a drum sound." +#: js/blocks/IntervalsBlocks.js:45 +msgid "set temperament" msgstr "" -#: js/DrumBlocks.js:337 -#.TRANS: map a pitch to a drum sound -msgid "map pitch to drum" +#: js/blocks/IntervalsBlocks.js:63 +#: js/blocks/MediaBlocks.js:746 +#: js/blocks/PitchBlocks.js:657 +#: js/blocks/PitchBlocks.js:935 +#: js/blocks/PitchBlocks.js:974 +#: js/blocks/PitchBlocks.js:1007 +#: js/blocks/PitchBlocks.js:1194 +#: js/blocks/PitchBlocks.js:1717 +#: js/blocks/PitchBlocks.js:1758 +#: js/blocks/PitchBlocks.js:1866 +#: js/blocks/ToneBlocks.js:1025 +#: js/turtleactions/IntervalsActions.js:114 +#.TRANS: adjusts the shift up or down by one octave (twelve half-steps in the interval between two notes, one having twice or half the frequency in Hz of the other.) +msgid "octave" msgstr "" -#: js/DrumBlocks.js:404 -msgid "In the example above, a kick drum sound will be played instead of sol." +#: js/blocks/IntervalsBlocks.js:99 +msgid "The Temperament name block is used to select a tuning method." msgstr "" -#: js/DrumBlocks.js:416 -#.TRANS: set the current drum sound for playback -msgid "set drum" -msgstr "드럼 설정." - -#: js/DrumBlocks.js:460 -msgid "sound effect" -msgstr "음향 효과." - -#: js/DrumBlocks.js:498 -msgid "You can use multiple Drum blocks within a Note block." +#: js/blocks/IntervalsBlocks.js:161 +msgid "doubly" msgstr "" -#: js/RhythmBlocks.js:182 -#: js/RhythmBlocks.js:1086 -#: js/RhythmBlocks.js:1162 -msgid "Note value must be greater than 0." +#: js/blocks/IntervalsBlocks.js:166 +msgid "The Doubly block will double the size of an interval." msgstr "" -#: js/RhythmBlocks.js:215 -#: js/RhythmBlocks.js:278 -#: js/RhythmBlocks.js:350 -#.TRANS: swing is a rhythmic variation that emphasises the offbeat -msgid "swing" -msgstr "스윙" - -#: js/RhythmBlocks.js:355 -#.TRANS: the amount to shift to the offbeat note -msgid "swing value" -msgstr "스윙 값" - -#: js/RhythmBlocks.js:419 -msgid "The Skip notes block will cause notes to be skipped." -msgstr "음표 건너뛰기 블록은 음표들을 건너 뛰고 연주하지 않는다." - -#: js/RhythmBlocks.js:427 -#.TRANS: substitute rests on notes being skipped -msgid "skip notes" -msgstr "음표 건너뛰기" - -#: js/RhythmBlocks.js:489 -#.TRANS: speed up note duration by some factor, e.g. convert 1/4 to 1/8 notes by using a factor of 2 -msgid "multiply note value" +#: js/blocks/IntervalsBlocks.js:262 +msgid "interval number" msgstr "" -#: js/RhythmBlocks.js:542 -msgid "The Tie block works on pairs of notes, combining them into one note." +#: js/blocks/IntervalsBlocks.js:317 +msgid "current interval" msgstr "" -#: js/RhythmBlocks.js:550 -#.TRANS: tie notes together into one longer note -msgid "tie" -msgstr "붙임줄" - -#: js/RhythmBlocks.js:591 -#: js/RhythmBlocks.js:671 -#.TRANS: a dotted note is played for 1.5x its value, e.g., 1/8. --> 3/16 -msgid "dot" +#: js/blocks/IntervalsBlocks.js:387 +#.TRANS: measure the distance between two pitches in semi-tones +msgid "semi-tone interval measure" msgstr "" -#: js/RhythmBlocks.js:619 -#: js/RhythmActions.js:221 -msgid "An argument of -1 results in a note value of 0." +#: js/blocks/IntervalsBlocks.js:454 +#: js/blocks/IntervalsBlocks.js:570 +msgid "You must use two pitch blocks when measuring an interval." msgstr "" -#: js/RhythmBlocks.js:661 -msgid "The Dot block extends the duration of a note by 50%." +#: js/blocks/IntervalsBlocks.js:496 +msgid "The Scalar interval block measures the distance between two notes in the current key and mode." msgstr "" -#: js/RhythmBlocks.js:663 -msgid "Eg a dotted quarter note will play for 3/8 (1/4 + 1/8) of a beat." +#: js/blocks/IntervalsBlocks.js:502 +#.TRANS: measure the distance between two pitches in steps of musical scale +msgid "scalar interval measure" msgstr "" -#: js/RhythmBlocks.js:765 -#.TRANS: Japanese only: note value block for drum -msgid "note value drum" +#: js/blocks/IntervalsBlocks.js:678 +msgid "In the figure, we add sol# to sol." msgstr "" -#: js/RhythmBlocks.js:829 -msgid "392 hertz" -msgstr "392 헤르츠" - -#: js/RhythmBlocks.js:1119 -msgid "The Note block is a container for one or more Pitch blocks." +#: js/blocks/IntervalsBlocks.js:684 +#: js/blocks/OrnamentBlocks.js:220 +#.TRANS: calculate a relative step between notes based on semi-tones +msgid "semi-tone interval" msgstr "" -#: js/RhythmBlocks.js:1121 -msgid "The Note block specifies the duration (note value) of its contents." +#: js/blocks/IntervalsBlocks.js:733 +msgid "The output of the example is: do, mi, sol, sol, ti, mi" msgstr "" -#: js/RhythmBlocks.js:1130 -msgid "value2" +#: js/blocks/IntervalsBlocks.js:740 +#: js/blocks/WidgetBlocks.js:768 +msgid "arpeggio" msgstr "" -#: js/RhythmBlocks.js:1200 -msgid "define frequency" -msgstr "진동수를 정의하시오" - -#: js/RhythmBlocks.js:1218 -#: js/temperament.js:650 -#: js/temperament.js:1421 -msgid "octave space" -msgstr "옥타브 공간" +#: js/blocks/IntervalsBlocks.js:931 +msgid "The Chord block calculates common chords." +msgstr "" -#: js/NumberBlocks.js:28 -msgid "The Int block returns an integer." +#: js/blocks/IntervalsBlocks.js:933 +msgid "In the figure, we generate a C-major chord." msgstr "" -#: js/NumberBlocks.js:34 -msgid "int" +#: js/blocks/IntervalsBlocks.js:938 +msgid "chord" msgstr "" -#: js/NumberBlocks.js:73 -msgid "The Mod block returns the remainder from a division." +#: js/blocks/IntervalsBlocks.js:990 +msgid "The Ratio Interval block calculates an interval based on a ratio." msgstr "" -#: js/NumberBlocks.js:79 -msgid "mod" -msgstr "나누기" +#: js/blocks/IntervalsBlocks.js:995 +msgid "ratio interval" +msgstr "" -#: js/NumberBlocks.js:123 -msgid "The Power block calculates a power function." +#: js/blocks/IntervalsBlocks.js:1064 +msgid "In the figure, we add la to sol." msgstr "" -#: js/NumberBlocks.js:178 -msgid "The Sqrt block returns the square root." +#: js/blocks/IntervalsBlocks.js:1120 +#.TRANS: define a custom mode +msgid "define mode" msgstr "" -#: js/NumberBlocks.js:184 -msgid "sqrt" +#: js/blocks/IntervalsBlocks.js:1173 +msgid "movable Do" msgstr "" -#: js/NumberBlocks.js:230 -msgid "The Abs block returns the absolute value." +#: js/blocks/IntervalsBlocks.js:1224 +#.TRANS: mode length is the number of notes in the mode, e.g., 7 for major and minor scales; 12 for chromatic scales +msgid "mode length" msgstr "" -#: js/NumberBlocks.js:236 -msgid "abs" +#: js/blocks/IntervalsBlocks.js:1233 +msgid "The Mode length block is the number of notes in the current scale." msgstr "" -#: js/NumberBlocks.js:277 -msgid "The Distance block returns the distance between two points. For example, between the mouse and the center of the screen." +#: js/blocks/IntervalsBlocks.js:1235 +msgid "Most Western scales have 7 notes." msgstr "" -#: js/NumberBlocks.js:283 -#: plugins/rodi.rtp:310 -msgid "distance" +#: js/blocks/IntervalsBlocks.js:1284 +#.TRANS: the mode in music is 'major', 'minor', etc. +msgid "current mode" msgstr "" -#: js/NumberBlocks.js:343 -msgid "The Divide block is used to divide." +#: js/blocks/IntervalsBlocks.js:1337 +#.TRANS: the key is a group of pitches with which a music composition is created +msgid "current key" msgstr "" -#: js/NumberBlocks.js:411 -msgid "The Multiply block is used to multiply." +#: js/blocks/IntervalsBlocks.js:1389 +#: js/blocks/IntervalsBlocks.js:1434 +#.TRANS: set the key and mode, e.g. C Major +msgid "set key" msgstr "" -#: js/NumberBlocks.js:554 -msgid "The Minus block is used to subtract." +#: js/blocks/IntervalsBlocks.js:1443 +#: js/blocks/IntervalsBlocks.js:1449 +msgid "The Set key block is used to set the key and mode," msgstr "" -#: js/NumberBlocks.js:647 -msgid "The Plus block is used to add." +#: js/blocks/IntervalsBlocks.js:1449 +msgid "eg C Major" msgstr "" -#: js/NumberBlocks.js:773 -msgid "The One-of block returns one of two choices." +#: js/blocks/MediaBlocks.js:35 +#.TRANS: right side of the screen +msgid "right (screen)" msgstr "" -#: js/NumberBlocks.js:780 -#: js/PitchBlocks.js:616 -msgid "one of" +#: js/blocks/MediaBlocks.js:45 +#: js/blocks/MediaBlocks.js:56 +msgid "The Right block returns the position of the right of the canvas." msgstr "" -#: js/NumberBlocks.js:782 -msgid "this" +#: js/blocks/MediaBlocks.js:97 +#.TRANS: left side of the screen +msgid "left (screen)" msgstr "" -#: js/NumberBlocks.js:782 -msgid "that" +#: js/blocks/MediaBlocks.js:107 +#: js/blocks/MediaBlocks.js:118 +msgid "The Left block returns the position of the left of the canvas." msgstr "" -#: js/NumberBlocks.js:837 -msgid "The Random block returns a random number." +#: js/blocks/MediaBlocks.js:158 +msgid "top (screen)" msgstr "" -#: js/NumberBlocks.js:844 -msgid "random" -msgstr "무작위" - -#: js/NumberBlocks.js:846 -msgid "min" -msgstr "최소" - -#: js/NumberBlocks.js:846 -msgid "max" -msgstr "최대" - -#: js/NumberBlocks.js:910 -msgid "The Number block holds a number." +#: js/blocks/MediaBlocks.js:168 +#: js/blocks/MediaBlocks.js:179 +msgid "The Top block returns the position of the top of the canvas." msgstr "" -#: js/BoxesBlocks.js:53 -#: js/BoxesBlocks.js:59 -msgid "The Add-to block is used to add to the value stored in a box." +#: js/blocks/MediaBlocks.js:219 +msgid "bottom (screen)" msgstr "" -#: js/BoxesBlocks.js:61 -msgid "It can also be used with other blocks such as Color and Pen size." +#: js/blocks/MediaBlocks.js:229 +#: js/blocks/MediaBlocks.js:240 +msgid "The Bottom block returns the position of the bottom of the canvas." msgstr "" -#: js/BoxesBlocks.js:73 -msgid "add" +#: js/blocks/MediaBlocks.js:282 +msgid "width" msgstr "" -#: js/BoxesBlocks.js:75 -#: js/temperament.js:716 -msgid "to" +#: js/blocks/MediaBlocks.js:291 +msgid "The Width block returns the width of the canvas." msgstr "" -#: js/BoxesBlocks.js:75 -#: js/BoxesBlocks.js:595 -#: js/HeapBlocks.js:544 -msgid "value1" +#: js/blocks/MediaBlocks.js:325 +msgid "height" msgstr "" -#: js/BoxesBlocks.js:118 -msgid "Block does not support incrementing." +#: js/blocks/MediaBlocks.js:334 +msgid "The Height block returns the height of the canvas." msgstr "" -#: js/BoxesBlocks.js:152 -msgid "The Add-1-to block adds one to the value stored in a box." +#: js/blocks/MediaBlocks.js:369 +#.TRANS: stops playback of an audio recording +msgid "stop play" msgstr "" -#: js/BoxesBlocks.js:163 -msgid "add 1 to" +#: js/blocks/MediaBlocks.js:404 +#.TRANS: Erases the images and text +msgid "erase media" msgstr "" -#: js/BoxesBlocks.js:211 -msgid "The Subtract-1-from block subtracts one from the value stored in a box." +#: js/blocks/MediaBlocks.js:409 +msgid "The Erase Media block erases text and images." msgstr "" -#: js/BoxesBlocks.js:222 -msgid "subtract 1 from" +#: js/blocks/MediaBlocks.js:439 +#.TRANS: play an audio recording +msgid "play back" msgstr "" -#: js/BoxesBlocks.js:270 -#: js/BoxesBlocks.js:387 -msgid "The Box block returns the value stored in a box." +#: js/blocks/MediaBlocks.js:487 +msgid "speak" msgstr "" -#: js/BoxesBlocks.js:500 -#: js/BoxesBlocks.js:576 -msgid "The Store in block will store a value in a box." +#: js/blocks/MediaBlocks.js:495 +msgid "The Speak block outputs to the text-to-speech synthesizer" msgstr "" -#: js/BoxesBlocks.js:652 -msgid "The Box2 block returns the value stored in Box2." +#: js/blocks/MediaBlocks.js:546 +msgid "camera" msgstr "" -#: js/BoxesBlocks.js:703 -msgid "The Store in Box2 block is used to store a value in Box2." +#: js/blocks/MediaBlocks.js:551 +msgid "The Camera block connects a webcam to the Show block." msgstr "" -#: js/BoxesBlocks.js:715 -msgid "store in box2" +#: js/blocks/MediaBlocks.js:574 +msgid "video" msgstr "" -#: js/BoxesBlocks.js:761 -msgid "The Box1 block returns the value stored in Box1." +#: js/blocks/MediaBlocks.js:579 +msgid "The Video block selects video for use with the Show block." msgstr "" -#: js/BoxesBlocks.js:812 -msgid "The Store in Box1 block is used to store a value in Box1." +#: js/blocks/MediaBlocks.js:607 +msgid "The Open file block opens a file for use with the Show block." msgstr "" -#: js/BoxesBlocks.js:826 -msgid "store in box1" +#: js/blocks/MediaBlocks.js:645 +msgid "stop media" msgstr "" -#: js/HeapBlocks.js:49 -msgid "The Heap block returns the heap." +#: js/blocks/MediaBlocks.js:650 +msgid "The Stop media block stops audio or video playback." msgstr "" -#: js/HeapBlocks.js:133 -msgid "show heap" +#: js/blocks/MediaBlocks.js:679 +#: js/blocks/PitchBlocks.js:1577 +#: js/widgets/musickeyboard.js:1936 +#: js/widgets/phrasemaker.js:1037 +#.TRANS: a measure of frequency: one cycle per second +msgid "hertz" msgstr "" -#: js/HeapBlocks.js:181 -msgid "The Heap-length block returns the length of the heap." +#: js/blocks/MediaBlocks.js:692 +#: js/blocks/WidgetBlocks.js:182 +#: js/widgets/temperament.js:506 +#: js/widgets/temperament.js:546 +#: js/widgets/temperament.js:610 +#: js/widgets/temperament.js:618 +#: js/widgets/temperament.js:1505 +#: js/widgets/timbre.js:1842 +msgid "frequency" msgstr "" -#: js/HeapBlocks.js:195 -msgid "heap length" +#: js/blocks/MediaBlocks.js:692 +msgid "duration (ms)" msgstr "" -#: js/HeapBlocks.js:254 -msgid "The Heap-empty? block returns true if the heap is empty." +#: js/blocks/MediaBlocks.js:728 +#.TRANS: translate a note into hertz, e.g., A4 -> 440HZ +msgid "note to frequency" msgstr "" -#: js/HeapBlocks.js:268 -#.TRANS: Is the heap empty? -msgid "heap empty?" +#: js/blocks/MediaBlocks.js:736 +msgid "The To frequency block converts a pitch name and octave to Hertz." msgstr "" -#: js/HeapBlocks.js:317 -msgid "The Empty-heap block empties the heap." +#: js/blocks/MediaBlocks.js:746 +#: js/blocks/PitchBlocks.js:656 +#: js/blocks/PitchBlocks.js:934 +#: js/blocks/PitchBlocks.js:1866 +#.TRANS: name2 is name as in name of pitch (JAPANESE ONLY) +msgid "name2" msgstr "" -#: js/HeapBlocks.js:327 -#: js/HeapBlocks.js:647 -#.TRANS: empty the heap -msgid "empty heap" +#: js/blocks/MediaBlocks.js:812 +msgid "The Avatar block is used to change the appearance of the mouse." msgstr "" -#: js/HeapBlocks.js:371 -msgid "The Reverse-heap block reverses the order of the heap." +#: js/blocks/MediaBlocks.js:819 +msgid "The Avatar block is used to change the appearance of the turtle." msgstr "" -#: js/HeapBlocks.js:384 -#.TRANS: reverse the order of the heap -msgid "reverse heap" +#: js/blocks/MediaBlocks.js:831 +#: js/blocks/MediaBlocks.js:891 +#.TRANS: a media object +msgid "size" msgstr "" -#: js/HeapBlocks.js:428 -msgid "The Index-heap block returns a value in the heap at a specified location." +#: js/blocks/MediaBlocks.js:831 +msgid "image" msgstr "" -#: js/HeapBlocks.js:443 -#.TRANS: retrieve a value from the heap at index position in the heap -msgid "index heap" +#: js/blocks/MediaBlocks.js:880 +msgid "The Show block is used to display text or images on the canvas." msgstr "" -#: js/HeapBlocks.js:523 -msgid "The Set-heap entry block sets a value in he heap at the specified location." +#: js/blocks/MediaBlocks.js:888 +#.TRANS: show1 is show as in display an image or text on the screen. +msgid "show1" msgstr "" -#: js/HeapBlocks.js:619 -msgid "The Pop block removes the value at the top of the heap." +#: js/blocks/MediaBlocks.js:891 +msgid "obj" msgstr "" -#: js/HeapBlocks.js:633 -#.TRANS: pop a value off the top of the heap -msgid "pop" -msgstr "빼기" - -#: js/HeapBlocks.js:680 -msgid "The Push block adds a value to the top of the heap." +#: js/blocks/MediaBlocks.js:938 +msgid "The Media block is used to import an image." msgstr "" -#: js/HeapBlocks.js:696 -#.TRANS: push a value onto the top of the heap -msgid "push" -msgstr "넣기" - -#: js/FlowBlocks.js:41 -msgid "The Backward block runs code in reverse order (Musical retrograde)." +#: js/blocks/MediaBlocks.js:973 +msgid "The Text block holds a text string." msgstr "" -#: js/FlowBlocks.js:48 -msgid "backward" +#: js/blocks/MeterBlocks.js:34 +#.TRANS: musical meter (time signature), e.g., 4:4 +msgid "current meter" msgstr "" -#: js/FlowBlocks.js:124 -msgid "The Duplicate block will run each block multiple times." +#: js/blocks/MeterBlocks.js:85 +#.TRANS: number of beats per minute +msgid "beat factor" msgstr "" -#: js/FlowBlocks.js:136 -msgid "duplicate" +#: js/blocks/MeterBlocks.js:161 +msgid "The Beats per minute block returns the current beats per minute." msgstr "" -#: js/FlowBlocks.js:334 -msgid "The Default block is used inside of a Switch to define the default action." -msgstr "" +#: js/blocks/MeterBlocks.js:169 +#: js/widgets/status.js:152 +#.TRANS: number of beats played per minute +msgid "beats per minute2" +msgstr "분당 비트2" -#: js/FlowBlocks.js:342 -msgid "default" -msgstr "" +#: js/blocks/MeterBlocks.js:169 +#: js/blocks/MeterBlocks.js:1056 +#: js/blocks/MeterBlocks.js:1133 +#: js/blocks/MeterBlocks.js:1211 +#.TRANS: sets tempo by defining a beat and beats per minute +msgid "beats per minute" +msgstr "분당 비트." -#: js/FlowBlocks.js:361 -#: js/FlowBlocks.js:418 -msgid "The Case Block must be used inside of a Switch Block." +#: js/blocks/MeterBlocks.js:233 +#.TRANS: count of current musical measure in meter +msgid "measure count" msgstr "" -#: js/FlowBlocks.js:389 -msgid "The Case block is used inside of a Switch to define matches." +#: js/blocks/MeterBlocks.js:241 +msgid "The Measure count block returns the current measure." msgstr "" -#: js/FlowBlocks.js:397 -msgid "case" +#: js/blocks/MeterBlocks.js:290 +#.TRANS: count of current beat in the meter +msgid "beat count" msgstr "" -#: js/FlowBlocks.js:446 -msgid "The Switch block will run the code in the matching Case." +#: js/blocks/MeterBlocks.js:300 +#: js/blocks/MeterBlocks.js:311 +#: js/blocks/MeterBlocks.js:565 +#: js/blocks/MeterBlocks.js:576 +msgid "The Beat count block is the number of the current beat," msgstr "" -#: js/FlowBlocks.js:454 -msgid "switch" +#: js/blocks/MeterBlocks.js:313 +#: js/blocks/MeterBlocks.js:578 +msgid "eg 1, 2, 3, or 4." msgstr "" -#: js/FlowBlocks.js:595 -msgid "The Stop block will stop a loop" +#: js/blocks/MeterBlocks.js:368 +#.TRANS: count the number of notes +msgid "sum note values" msgstr "" -#: js/FlowBlocks.js:597 -msgid "Forever, Repeat, While, or Until." +#: js/blocks/MeterBlocks.js:376 +#: js/blocks/MeterBlocks.js:440 +msgid "The Note counter block can be used to count the number of contained notes." msgstr "" -#: js/FlowBlocks.js:604 -#: js/phrasemaker.js:3799 -#: js/musickeyboard.js:629 -#: js/musickeyboard.js:631 -#: js/timbre.js:417 -#: js/timbre.js:419 -#: plugins/rodi.rtp:29 -#: plugins/rodi.rtp:73 -#: plugins/rodi.rtp:413 -msgid "stop" -msgstr "단계 실행" +#: js/blocks/MeterBlocks.js:432 +#.TRANS: count the number of notes +msgid "note counter" +msgstr "" -#: js/FlowBlocks.js:653 -msgid "The Waitfor block will wait until the condition is true." +#: js/blocks/MeterBlocks.js:496 +#.TRANS: number of whole notes that have been played +msgid "whole notes played" msgstr "" -#: js/FlowBlocks.js:661 -msgid "wait for" +#: js/blocks/MeterBlocks.js:505 +msgid "The Whole notes played block returns the total number of whole notes played." msgstr "" -#: js/FlowBlocks.js:732 -msgid "The Until block will repeat until the condition is true." +#: js/blocks/MeterBlocks.js:555 +#: js/turtleactions/DictActions.js:83 +#.TRANS: number of notes that have been played +msgid "notes played" msgstr "" -#: js/FlowBlocks.js:740 -msgid "until" +#: js/blocks/MeterBlocks.js:653 +msgid "The No clock block decouples the notes from the master clock." msgstr "" -#: js/FlowBlocks.js:742 -#: js/FlowBlocks.js:822 -msgid "do2" +#: js/blocks/MeterBlocks.js:661 +#.TRANS: don't lock notes to master clock +msgid "no clock" msgstr "" -#: js/FlowBlocks.js:812 -msgid "The While block will repeat while the condition is true." +#: js/blocks/MeterBlocks.js:700 +msgid "on weak beat do" msgstr "" -#: js/FlowBlocks.js:820 -msgid "while" +#: js/blocks/MeterBlocks.js:705 +msgid "The On-weak-beat block lets you specify actions to take on weak (off) beats." msgstr "" -#: js/FlowBlocks.js:903 -#: js/FlowBlocks.js:968 -#: js/FlowBlocks.js:979 -msgid "In this example if the mouse button is pressed a snare drum will play." +#: js/blocks/MeterBlocks.js:750 +msgid "on strong beat" msgstr "" -#: js/FlowBlocks.js:925 -#: js/FlowBlocks.js:988 -msgid "if" -msgstr "만약" +#: js/blocks/MeterBlocks.js:758 +msgid "The On-strong-beat block lets you specify actions to take on specified beats." +msgstr "" -#: js/FlowBlocks.js:927 -#: js/FlowBlocks.js:990 -msgid "then" -msgstr "이면" +#: js/blocks/MeterBlocks.js:769 +msgid "beat" +msgstr "비트." -#: js/FlowBlocks.js:927 -msgid "else" -msgstr "아니면" +#: js/blocks/MeterBlocks.js:813 +msgid "on every beat do" +msgstr "" -#: js/FlowBlocks.js:1025 -msgid "The Forever block will repeat the contained blocks forever." +#: js/blocks/MeterBlocks.js:821 +msgid "The On-every-beat block lets you specify actions to take on every beat." msgstr "" -#: js/FlowBlocks.js:1037 -msgid "forever" -msgstr "언제나" +#: js/blocks/MeterBlocks.js:874 +msgid "on every note do" +msgstr "" -#: js/FlowBlocks.js:1073 -msgid "The Repeat block will repeat the contained blocks." +#: js/blocks/MeterBlocks.js:882 +msgid "The On-every-note block lets you specify actions to take on every note." msgstr "" -#: js/FlowBlocks.js:1075 -msgid "In this example the note will be played 4 times." +#: js/blocks/MeterBlocks.js:928 +#: js/blocks/MeterBlocks.js:999 +#.TRANS: sets tempo by defining a beat and beats per minute +msgid "master beats per minute" msgstr "" -#: js/FlowBlocks.js:1083 -msgid "repeat" -msgstr "반복" +#: js/blocks/MeterBlocks.js:952 +#: js/blocks/MeterBlocks.js:1078 +#: js/blocks/MeterBlocks.js:1135 +msgid "bpm" +msgstr "" -#: js/FlowBlocks.js:1123 -msgid "duplicate factor" +#: js/blocks/MeterBlocks.js:952 +#: js/blocks/MeterBlocks.js:1078 +#: js/blocks/MeterBlocks.js:1135 +msgid "beat value" msgstr "" -#: js/PitchBlocks.js:39 -#: js/musicutils.js:722 -#: js/musicutils.js:1117 -#: js/synthutils.js:112 -#.TRANS: square wave -msgid "square" +#: js/blocks/MeterBlocks.js:1024 +#: js/blocks/MeterBlocks.js:1167 +#: js/blocks/MeterBlocks.js:1241 +msgid "Beats per minute must be > 30." msgstr "" -#: js/PitchBlocks.js:62 -#: js/ToneBlocks.js:39 -#: js/musicutils.js:723 -#: js/musicutils.js:1118 -#: js/synthutils.js:116 -#.TRANS: triangle wave -msgid "triangle" +#: js/blocks/MeterBlocks.js:1027 +#: js/blocks/MeterBlocks.js:1170 +#: js/blocks/MeterBlocks.js:1244 +msgid "Maximum beats per minute is 1000." msgstr "" -#: js/PitchBlocks.js:85 -#: js/musicutils.js:721 -#: js/musicutils.js:1116 -#: js/synthutils.js:110 -#.TRANS: sine wave -msgid "sine" +#: js/blocks/MeterBlocks.js:1068 +msgid "The Beats per minute block sets the number of 1/4 notes per minute." msgstr "" -#: js/PitchBlocks.js:108 -#: js/musicutils.js:724 -#: js/musicutils.js:1119 -#: js/synthutils.js:114 -#.TRANS: sawtooth wave -msgid "sawtooth" +#: js/blocks/MeterBlocks.js:1279 +#.TRANS: anacrusis +msgid "pickup" msgstr "" -#: js/PitchBlocks.js:141 -#.TRANS: musical transposition (adjustment of pitch up or down) -msgid "transposition" +#: js/blocks/MeterBlocks.js:1367 +msgid "number of beats" msgstr "" -#: js/PitchBlocks.js:168 -#.TRANS: step down one note in current musical scale -msgid "scalar step down" +#: js/blocks/NumberBlocks.js:28 +msgid "The Int block returns an integer." msgstr "" -#: js/PitchBlocks.js:172 -msgid "The Scalar step down block returns the number of semi-tones down to the previous note in the current key and mode." +#: js/blocks/NumberBlocks.js:34 +msgid "int" msgstr "" -#: js/PitchBlocks.js:190 -#.TRANS: step up one note in current musical scale -msgid "scalar step up" +#: js/blocks/NumberBlocks.js:73 +msgid "The Mod block returns the remainder from a division." msgstr "" -#: js/PitchBlocks.js:194 -msgid "The Scalar step up block returns the number of semi-tones up to the next note in the current key and mode." +#: js/blocks/NumberBlocks.js:79 +msgid "mod" +msgstr "나누기" + +#: js/blocks/NumberBlocks.js:141 +msgid "The Power block calculates a power function." msgstr "" -#: js/PitchBlocks.js:212 -#.TRANS: the change measured in half-steps between the current pitch and the previous pitch -msgid "change in pitch" +#: js/blocks/NumberBlocks.js:196 +msgid "The Sqrt block returns the square root." msgstr "" -#: js/PitchBlocks.js:216 -msgid "The Change in pitch block is the difference (in half steps) between the current pitch being played and the previous pitch played." +#: js/blocks/NumberBlocks.js:202 +msgid "sqrt" msgstr "" -#: js/PitchBlocks.js:243 -#.TRANS: the change measured in scale-steps between the current pitch and the previous pitch -msgid "scalar change in pitch" +#: js/blocks/NumberBlocks.js:248 +msgid "The Abs block returns the absolute value." msgstr "" -#: js/PitchBlocks.js:250 -#: js/PitchBlocks.js:432 -#: js/PitchBlocks.js:1629 -#: js/DictActions.js:89 -#: js/temperament.js:477 -#: js/temperament.js:481 -#: js/temperament.js:714 -#.TRANS: convert current note to piano key (1-88) -#.TRANS: a mapping of pitch to the 88 piano keys -msgid "pitch number" +#: js/blocks/NumberBlocks.js:254 +msgid "abs" msgstr "" -#: js/PitchBlocks.js:256 -msgid "The Pitch number block is the value of the pitch of the note currently being played." +#: js/blocks/NumberBlocks.js:295 +msgid "The Distance block returns the distance between two points. For example, between the mouse and the center of the screen." msgstr "" -#: js/PitchBlocks.js:329 -#: js/PitchBlocks.js:433 -#.TRANS: the current pitch expressed in Hertz -msgid "pitch in hertz" +#: js/blocks/NumberBlocks.js:301 +#: plugins/rodi.rtp:310 +msgid "distance" msgstr "" -#: js/PitchBlocks.js:334 -msgid "The Pitch in Hertz block is the value in Hertz of the pitch of the note currently being played." +#: js/blocks/NumberBlocks.js:361 +msgid "The Divide block is used to divide." msgstr "" -#: js/PitchBlocks.js:367 -#: js/DictActions.js:87 -msgid "current pitch" +#: js/blocks/NumberBlocks.js:441 +msgid "The Multiply block is used to multiply." msgstr "" -#: js/PitchBlocks.js:373 -msgid "The Current Pitch block is used with the Pitch Converter block. In the example above, current pitch, sol 4, is displayed as 392 hertz." +#: js/blocks/NumberBlocks.js:612 +msgid "The Minus block is used to subtract." msgstr "" -#: js/PitchBlocks.js:410 -msgid "This block converts the pitch value of the last note played into different formats such as hertz, letter name, pitch number, et al." +#: js/blocks/NumberBlocks.js:723 +msgid "The Plus block is used to add." msgstr "" -#: js/PitchBlocks.js:434 -msgid "alphabet" +#: js/blocks/NumberBlocks.js:849 +msgid "The One-of block returns one of two choices." msgstr "" -#: js/PitchBlocks.js:436 -#.TRANS: Translate as "alphabet class" -msgid "letter class" +#: js/blocks/NumberBlocks.js:856 +#: js/blocks/PitchBlocks.js:616 +msgid "one of" msgstr "" -#: js/PitchBlocks.js:437 -msgid "solfege class" +#: js/blocks/NumberBlocks.js:858 +msgid "this" msgstr "" -#: js/PitchBlocks.js:438 -msgid "staff y" +#: js/blocks/NumberBlocks.js:858 +msgid "that" msgstr "" -#: js/PitchBlocks.js:439 -msgid "solfege syllable" +#: js/blocks/NumberBlocks.js:913 +msgid "The Random block returns a random number." msgstr "" -#: js/PitchBlocks.js:440 -msgid "pitch class" +#: js/blocks/NumberBlocks.js:920 +msgid "random" +msgstr "무작위" + +#: js/blocks/NumberBlocks.js:922 +msgid "min" +msgstr "최소" + +#: js/blocks/NumberBlocks.js:922 +msgid "max" +msgstr "최대" + +#: js/blocks/NumberBlocks.js:986 +msgid "The Number block holds a number." msgstr "" -#: js/PitchBlocks.js:441 -msgid "scalar class" +#: js/blocks/OrnamentBlocks.js:32 +msgid "staccato factor" msgstr "" -#: js/PitchBlocks.js:443 -msgid "nth degree" +#: js/blocks/OrnamentBlocks.js:108 +msgid "slur factor" msgstr "" -#: js/PitchBlocks.js:444 -msgid "pitch to shade" +#: js/blocks/OrnamentBlocks.js:217 +#: js/blocks/OrnamentBlocks.js:309 +#.TRANS: the neighbor refers to a neighboring note, e.g., D is a neighbor of C +msgid "neighbor" msgstr "" -#: js/PitchBlocks.js:445 -msgid "pitch to color" +#: js/blocks/OrnamentBlocks.js:293 +msgid "The Neighbor block rapidly switches between neighboring pitches." msgstr "" -#: js/PitchBlocks.js:629 -#: js/musickeyboard.js:565 -#.TRANS: MIDI is a technical standard for electronic music -msgid "MIDI" +#: js/blocks/OrnamentBlocks.js:364 +msgid "glide" msgstr "" -#: js/PitchBlocks.js:642 -#.TRANS: set an offset associated with the numeric piano keyboard mapping -msgid "set pitch number offset" +#: js/blocks/OrnamentBlocks.js:479 +#: js/blocks/OrnamentBlocks.js:643 +msgid "slur" +msgstr "이음줄." + +#: js/blocks/OrnamentBlocks.js:558 +#: js/blocks/OrnamentBlocks.js:710 +#.TRANS: play each note sharply detached from the others +msgid "staccato" +msgstr "스타카토." + +#: js/blocks/RhythmBlocks.js:182 +#: js/blocks/RhythmBlocks.js:1086 +#: js/blocks/RhythmBlocks.js:1162 +msgid "Note value must be greater than 0." msgstr "" -#: js/PitchBlocks.js:645 -msgid "The Set pitch number offset block is used to set the offset for mapping pitch numbers to pitch and octave." +#: js/blocks/RhythmBlocks.js:215 +#: js/blocks/RhythmBlocks.js:278 +#: js/blocks/RhythmBlocks.js:350 +#.TRANS: swing is a rhythmic variation that emphasises the offbeat +msgid "swing" +msgstr "스윙" + +#: js/blocks/RhythmBlocks.js:355 +#.TRANS: the amount to shift to the offbeat note +msgid "swing value" +msgstr "스윙 값" + +#: js/blocks/RhythmBlocks.js:419 +msgid "The Skip notes block will cause notes to be skipped." +msgstr "음표 건너뛰기 블록은 음표들을 건너 뛰고 연주하지 않는다." + +#: js/blocks/RhythmBlocks.js:427 +#.TRANS: substitute rests on notes being skipped +msgid "skip notes" +msgstr "음표 건너뛰기" + +#: js/blocks/RhythmBlocks.js:489 +#.TRANS: speed up note duration by some factor, e.g. convert 1/4 to 1/8 notes by using a factor of 2 +msgid "multiply note value" msgstr "" -#: js/PitchBlocks.js:679 -#.TRANS: convert piano key number (1-88) to pitch -msgid "number to pitch" +#: js/blocks/RhythmBlocks.js:542 +msgid "The Tie block works on pairs of notes, combining them into one note." msgstr "" -#: js/PitchBlocks.js:682 -msgid "The Number to pitch block will convert a pitch number to a pich name." +#: js/blocks/RhythmBlocks.js:550 +#.TRANS: tie notes together into one longer note +msgid "tie" +msgstr "붙임줄" + +#: js/blocks/RhythmBlocks.js:591 +#: js/blocks/RhythmBlocks.js:671 +#.TRANS: a dotted note is played for 1.5x its value, e.g., 1/8. --> 3/16 +msgid "dot" msgstr "" -#: js/PitchBlocks.js:715 -#.TRANS: convert piano key number (1-88) to octave -msgid "number to octave" +#: js/blocks/RhythmBlocks.js:619 +#: js/turtleactions/RhythmActions.js:221 +msgid "An argument of -1 results in a note value of 0." msgstr "" -#: js/PitchBlocks.js:717 -msgid "The Number to octave block will convert a pitch number to an octave." +#: js/blocks/RhythmBlocks.js:661 +msgid "The Dot block extends the duration of a note by 50%." msgstr "" -#: js/PitchBlocks.js:726 -msgid "y to pitch" +#: js/blocks/RhythmBlocks.js:663 +msgid "Eg a dotted quarter note will play for 3/8 (1/4 + 1/8) of a beat." msgstr "" -#: js/PitchBlocks.js:729 -msgid "Y to pitch block will convert a staff y position to corresponding pitch notation." +#: js/blocks/RhythmBlocks.js:765 +#.TRANS: Japanese only: note value block for drum +msgid "note value drum" msgstr "" -#: js/PitchBlocks.js:841 -msgid "accidental selector" +#: js/blocks/RhythmBlocks.js:829 +msgid "392 hertz" +msgstr "392 헤르츠" + +#: js/blocks/RhythmBlocks.js:1119 +msgid "The Note block is a container for one or more Pitch blocks." msgstr "" -#: js/PitchBlocks.js:844 -msgid "The Accidental selector block is used to choose between double-sharp, sharp, natural, flat, and double-flat." +#: js/blocks/RhythmBlocks.js:1121 +msgid "The Note block specifies the duration (note value) of its contents." msgstr "" -#: js/PitchBlocks.js:858 -msgid "Pitch can be specified in terms of ni dha pa ma ga re sa." +#: js/blocks/RhythmBlocks.js:1128 +#: js/blocks/PitchBlocks.js:974 +#: js/blocks/PitchBlocks.js:1007 +#: js/blocks/ProgramBlocks.js:1186 +#: js/blocks/ProgramBlocks.js:1227 +#: js/widgets/status.js:190 +#: js/widgets/temperament.js:464 +#: js/widgets/temperament.js:486 +#: js/widgets/temperament.js:496 +#: js/widgets/temperament.js:617 +#: plugins/rodi.rtp:192 +#.TRANS: a musical note consisting of pitch and duration +msgid "note" +msgstr "음표" + +#: js/blocks/RhythmBlocks.js:1130 +msgid "value2" msgstr "" -#: js/PitchBlocks.js:872 -msgid "Pitch can be specified in terms of C D E F G A B." +#: js/blocks/RhythmBlocks.js:1200 +msgid "define frequency" +msgstr "진동수를 정의하시오" + +#: js/blocks/RhythmBlocks.js:1218 +#: js/widgets/temperament.js:787 +#: js/widgets/temperament.js:1587 +msgid "octave space" +msgstr "옥타브 공간" + +#: js/blocks/SensorsBlocks.js:36 +msgid "The Input block prompts for keyboard input." msgstr "" -#: js/PitchBlocks.js:883 -msgid "solfege" +#: js/blocks/SensorsBlocks.js:46 +msgid "input" msgstr "" -#: js/PitchBlocks.js:886 -msgid "Pitch can be specified in terms of do re mi fa sol la ti." +#: js/blocks/SensorsBlocks.js:64 +msgid "Input a value" msgstr "" -#: js/PitchBlocks.js:920 -msgid "The Invert block rotates any contained notes around a target note." +#: js/blocks/SensorsBlocks.js:126 +msgid "input value" msgstr "" -#: js/PitchBlocks.js:927 -#.TRANS: pitch inversion rotates a pitch around another pitch -msgid "invert" +#: js/blocks/SensorsBlocks.js:131 +msgid "The Input-value block stores the input." msgstr "" -#: js/PitchBlocks.js:929 -#: js/PitchBlocks.js:935 -#: js/PitchActions.js:727 -#: js/musicutils.js:726 -#: js/musicutils.js:902 -#.TRANS: invert based on even or odd number or musical scale -#.TRANS: even numbers -msgid "even" +#: js/blocks/SensorsBlocks.js:238 +msgid "loudness" msgstr "" -#: js/PitchBlocks.js:935 -#: js/PitchActions.js:729 -#: js/musicutils.js:728 -#: js/musicutils.js:903 -#.TRANS: odd numbers -msgid "odd" +#: js/blocks/SensorsBlocks.js:245 +msgid "The Loudness block returns the volume detected by the microphone." msgstr "" -#: js/PitchBlocks.js:935 -#: js/PitchActions.js:731 -#: js/musicutils.js:729 -#: js/musicutils.js:904 -msgid "scalar" +#: js/blocks/SensorsBlocks.js:300 +msgid "click" msgstr "" -#: js/PitchBlocks.js:966 -#.TRANS: pitch inversion rotates a pitch around another pitch (odd number) -msgid "invert (odd)" +#: js/blocks/SensorsBlocks.js:306 +msgid "The Click block triggers an event if a mouse has been clicked." msgstr "" -#: js/PitchBlocks.js:999 -#.TRANS: pitch inversion rotates a pitch around another pitch (even number) -msgid "invert (even)" +#: js/blocks/SensorsBlocks.js:313 +msgid "The Click block triggers an event if a turtle has been clicked." msgstr "" -#: js/PitchBlocks.js:1020 -#.TRANS: register is the octave of the current pitch -msgid "register" +#: js/blocks/SensorsBlocks.js:342 +msgid "cursor over" msgstr "" -#: js/PitchBlocks.js:1024 -msgid "The Register block provides an easy way to modify the register (octave) of the notes that follow it." +#: js/blocks/SensorsBlocks.js:387 +msgid "cursor out" msgstr "" -#: js/PitchBlocks.js:1074 -msgid "The Semi-tone transposition block will shift the pitches contained inside Note blocks up (or down) by half steps." +#: js/blocks/SensorsBlocks.js:433 +msgid "cursor button down" msgstr "" -#: js/PitchBlocks.js:1076 -msgid "In the example shown above, sol is shifted up to sol#." +#: js/blocks/SensorsBlocks.js:477 +msgid "cursor button up" msgstr "" -#: js/PitchBlocks.js:1082 -#.TRANS: adjust the amount of shift (up or down) of a pitch -msgid "semi-tone transpose" +#: js/blocks/SensorsBlocks.js:521 +#: js/blocks/PenBlocks.js:48 +#: plugins/rodi.rtp:219 +msgid "blue" +msgstr "파랑" + +#: js/blocks/SensorsBlocks.js:577 +#: js/blocks/PenBlocks.js:64 +#: plugins/rodi.rtp:218 +msgid "green" +msgstr "초록" + +#: js/blocks/SensorsBlocks.js:633 +#: js/blocks/PenBlocks.js:112 +#: plugins/rodi.rtp:217 +msgid "red" +msgstr "빨강" + +#: js/blocks/SensorsBlocks.js:638 +msgid "The Get red block returns the red component of the pixel under the mouse." msgstr "" -#: js/PitchBlocks.js:1115 -msgid "The Transpose by Ratio block will shift the pitches contained inside Note blocks up (or down) by a ratio" +#: js/blocks/SensorsBlocks.js:644 +msgid "The Get red block returns the red component of the pixel under the turtle." msgstr "" -#: js/PitchBlocks.js:1121 -#.TRANS: adjust the amount of shift (up or down) of a pitch -msgid "transpose by ratio" +#: js/blocks/SensorsBlocks.js:685 +#: plugins/rodi.rtp:216 +msgid "pixel color" msgstr "" -#: js/PitchBlocks.js:1204 -#.TRANS: down sixth means the note is five scale degrees below current note -msgid "down sixth" +#: js/blocks/SensorsBlocks.js:690 +msgid "The Get pixel block returns the color of the pixel under the mouse." msgstr "" -#: js/PitchBlocks.js:1223 -#.TRANS: down third means the note is two scale degrees below current note -msgid "down third" +#: js/blocks/SensorsBlocks.js:696 +msgid "The Get pixel block returns the color of the pixel under the turtle." msgstr "" -#: js/PitchBlocks.js:1242 -#.TRANS: seventh means the note is the six scale degrees above current note -msgid "seventh" +#: js/blocks/SensorsBlocks.js:758 +msgid "time" msgstr "" -#: js/PitchBlocks.js:1261 -#.TRANS: sixth means the note is the five scale degrees above current note -msgid "sixth" +#: js/blocks/SensorsBlocks.js:804 +msgid "cursor y" msgstr "" -#: js/PitchBlocks.js:1280 -#.TRANS: fifth means the note is the four scale degrees above current note -msgid "fifth" +#: js/blocks/SensorsBlocks.js:809 +msgid "The Cursor Y block returns the vertical position of the mouse." msgstr "" -#: js/PitchBlocks.js:1300 -#.TRANS: fourth means the note is three scale degrees above current note -msgid "fourth" +#: js/blocks/SensorsBlocks.js:845 +msgid "cursor x" msgstr "" -#: js/PitchBlocks.js:1319 -#.TRANS: third means the note is two scale degrees above current note -msgid "third" +#: js/blocks/SensorsBlocks.js:850 +msgid "The Cursor X block returns the horizontal position of the mouse." msgstr "" -#: js/PitchBlocks.js:1338 -#.TRANS: second means the note is one scale degree above current note -msgid "second" +#: js/blocks/SensorsBlocks.js:886 +msgid "mouse button" msgstr "" -#: js/PitchBlocks.js:1379 -msgid "The Scalar transposition block will shift the pitches contained inside Note blocks up (or down) the scale." +#: js/blocks/SensorsBlocks.js:888 +msgid "The Mouse-button block returns True if the mouse button is pressed." msgstr "" -#: js/PitchBlocks.js:1381 -msgid "In the example shown above, sol is shifted up to la." +#: js/blocks/SensorsBlocks.js:934 +msgid "to ASCII" msgstr "" -#: js/PitchBlocks.js:1388 -#.TRANS: adjust the amount of shift (up or down) of a pitch by musical scale (scalar) steps -msgid "scalar transpose" +#: js/blocks/SensorsBlocks.js:938 +msgid "The To ASCII block converts numbers to letters." msgstr "" -#: js/PitchBlocks.js:1423 -msgid "The Accidental block is used to create sharps and flats" +#: js/blocks/SensorsBlocks.js:1005 +msgid "The Keyboard block returns computer keyboard input." msgstr "" -#: js/PitchBlocks.js:1430 -#.TRANS: An accidental is a modification to a pitch, e.g., sharp or flat. -msgid "accidental override" +#: js/blocks/RhythmBlockPaletteBlocks.js:50 +#: js/blocks/RhythmBlockPaletteBlocks.js:233 +#.TRANS: rhythm block +#.TRANS: translate "rhythm1" as rhythm +msgid "rhythm1" +msgstr "박자" + +#: js/blocks/RhythmBlockPaletteBlocks.js:70 +#: js/blocks/RhythmBlockPaletteBlocks.js:252 +#: js/blocks/RhythmBlockPaletteBlocks.js:485 +#: js/blocks/RhythmBlockPaletteBlocks.js:554 +#: js/blocks/RhythmBlockPaletteBlocks.js:875 +msgid "number of notes" +msgstr "음표 개수" + +#: js/blocks/RhythmBlockPaletteBlocks.js:126 +msgid "polyphonic rhythm" msgstr "" -#: js/PitchBlocks.js:1543 -msgid "The Hertz block (in combination with a Number block) will play a sound at the specified frequency." +#: js/blocks/RhythmBlockPaletteBlocks.js:219 +msgid "The Rhythm block is used to generate rhythm patterns." +msgstr "박자 블록은 박자 패턴을 만드는 데 사용된다" + +#: js/blocks/RhythmBlockPaletteBlocks.js:280 +msgid "1/64 note" +msgstr "64분 음표" + +#: js/blocks/RhythmBlockPaletteBlocks.js:304 +msgid "1/32 note" +msgstr "32분 음표" + +#: js/blocks/RhythmBlockPaletteBlocks.js:332 +msgid "1/16 note" +msgstr "16분 음표" + +#: js/blocks/RhythmBlockPaletteBlocks.js:360 +msgid "eighth note" +msgstr "8분 음표" + +#: js/blocks/RhythmBlockPaletteBlocks.js:388 +msgid "quarter note" +msgstr "4분 음표" + +#: js/blocks/RhythmBlockPaletteBlocks.js:416 +msgid "half note" +msgstr "2분 음표" + +#: js/blocks/RhythmBlockPaletteBlocks.js:444 +msgid "whole note" msgstr "" -#: js/PitchBlocks.js:1633 -msgid "The Pitch Number block will play a pitch associated by its number, e.g. 0 for C and 7 for G." +#: js/blocks/RhythmBlockPaletteBlocks.js:482 +#: js/blocks/RhythmBlockPaletteBlocks.js:551 +#: js/blocks/RhythmBlockPaletteBlocks.js:602 +#.TRANS: A tuplet is a note value divided into irregular time values. +msgid "tuplet" msgstr "" -#: js/PitchBlocks.js:1665 -#: js/PitchBlocks.js:1707 -#.TRANS: a numeric mapping of the notes in an octave based on the musical mode -#.TRANS: a numeric mapping of the notes in an octave based on the musical mode -msgid "nth modal pitch" +#: js/blocks/RhythmBlockPaletteBlocks.js:768 +msgid "septuplet" msgstr "" -#: js/PitchBlocks.js:1668 -msgid "n^th Modal Pitch takes the pattern of pitches in semitones for a mode and makes each point a degree of the mode," +#: js/blocks/RhythmBlockPaletteBlocks.js:796 +msgid "quintuplet" msgstr "" -#: js/PitchBlocks.js:1670 -msgid "starting from 1 and regardless of tonal framework (i.e. not always 8 notes in the octave)" +#: js/blocks/RhythmBlockPaletteBlocks.js:824 +msgid "triplet" +msgstr "셋잇단음표" + +#: js/blocks/RhythmBlockPaletteBlocks.js:851 +msgid "simple tuplet" msgstr "" -#: js/PitchBlocks.js:1711 -msgid "N^th Modal Pitch takes a number as an input as the n^th degree for the given mode. 0 is the first position, 1 is the second, -1 is the note before the first etc." +#: js/blocks/RhythmBlockPaletteBlocks.js:861 +msgid "Tuplets are a collection of notes that get scaled to a specific duration." msgstr "" -#: js/PitchBlocks.js:1713 -msgid "The pitches change according to the mode specified without any need for respellings." +#: js/blocks/DrumBlocks.js:59 +msgid "The Noise name block is used to select a noise synthesizer." msgstr "" -#: js/PitchBlocks.js:1752 -msgid "Scale Degree is a common convention in music. Scale Degree offers seven possible positions in the scale (1-7) and can be modified via accidentals." +#: js/blocks/DrumBlocks.js:102 +msgid "The Drum name block is used to select a drum." msgstr "" -#: js/PitchBlocks.js:1754 -msgid "Scale Degree 1 is always the first pitch in a given scale, regardless of octave." +#: js/blocks/DrumBlocks.js:146 +msgid "The Effects name block is used to select a sound effect." +msgstr "효과 명 블록은 음향 효과를 선택하는 데 사용된다." + +#: js/blocks/DrumBlocks.js:163 +msgid "noise" +msgstr "소음." + +#: js/blocks/DrumBlocks.js:177 +msgid "The Play noise block will generate white, pink, or brown noise." msgstr "" -#: js/PitchBlocks.js:1776 -#.TRANS: step some number of notes in current musical scale -msgid "scalar step" +#: js/blocks/DrumBlocks.js:317 +msgid "Replace every instance of a pitch with a drum sound." msgstr "" -#: js/PitchBlocks.js:1781 -msgid "The Scalar Step block (in combination with a Number block) will play the next pitch in a scale," +#: js/blocks/DrumBlocks.js:328 +#.TRANS: map a pitch to a drum sound +msgid "map pitch to drum" msgstr "" -#: js/PitchBlocks.js:1783 -msgid "eg if the last note played was sol, Scalar Step 1 will play la." +#: js/blocks/DrumBlocks.js:395 +msgid "In the example above, a kick drum sound will be played instead of sol." msgstr "" -#: js/PitchBlocks.js:1818 -msgid "The Pitch block specifies the pitch name and octave of a note that together determine the frequency of the note." +#: js/blocks/DrumBlocks.js:407 +#.TRANS: set the current drum sound for playback +msgid "set drum" +msgstr "드럼 설정." + +#: js/blocks/DrumBlocks.js:451 +msgid "sound effect" +msgstr "음향 효과." + +#: js/blocks/DrumBlocks.js:489 +msgid "You can use multiple Drum blocks within a Note block." msgstr "" -#: js/GraphicsBlocks.js:46 -#: js/DictActions.js:77 -#: js/DictActions.js:155 -#: js/DictActions.js:189 +#: js/blocks/GraphicsBlocks.js:46 +#: js/turtleactions/DictActions.js:77 +#: js/turtleactions/DictActions.js:144 +#: js/turtleactions/DictActions.js:173 msgid "heading" msgstr "머리방향" -#: js/GraphicsBlocks.js:56 +#: js/blocks/GraphicsBlocks.js:56 msgid "The Heading block returns the orientation of the mouse." msgstr "" -#: js/GraphicsBlocks.js:62 +#: js/blocks/GraphicsBlocks.js:62 msgid "The Heading block returns the orientation of the turtle." msgstr "" -#: js/GraphicsBlocks.js:133 +#: js/blocks/GraphicsBlocks.js:133 msgid "The Y block returns the vertical position of the mouse." msgstr "" -#: js/GraphicsBlocks.js:140 +#: js/blocks/GraphicsBlocks.js:140 msgid "The Y block returns the vertical position of the turtle." msgstr "" -#: js/GraphicsBlocks.js:149 +#: js/blocks/GraphicsBlocks.js:149 msgid "y3" msgstr "" -#: js/GraphicsBlocks.js:219 +#: js/blocks/GraphicsBlocks.js:219 msgid "The X block returns the horizontal position of the mouse." msgstr "" -#: js/GraphicsBlocks.js:226 +#: js/blocks/GraphicsBlocks.js:226 msgid "The X block returns the horizontal position of the turtle." msgstr "" -#: js/GraphicsBlocks.js:235 +#: js/blocks/GraphicsBlocks.js:235 msgid "x3" msgstr "" -#: js/GraphicsBlocks.js:295 +#: js/blocks/GraphicsBlocks.js:295 msgid "scroll xy" msgstr "" -#: js/GraphicsBlocks.js:303 +#: js/blocks/GraphicsBlocks.js:303 msgid "The Scroll XY block moves the canvas." msgstr "" -#: js/GraphicsBlocks.js:313 +#: js/blocks/GraphicsBlocks.js:313 msgid "x2" msgstr "" -#: js/GraphicsBlocks.js:313 +#: js/blocks/GraphicsBlocks.js:313 msgid "y2" msgstr "" -#: js/GraphicsBlocks.js:373 -#: js/temperament.js:213 -#: js/temperament.js:241 +#: js/blocks/GraphicsBlocks.js:373 +#: js/widgets/temperament.js:319 +#: js/widgets/temperament.js:347 msgid "clear" msgstr "" -#: js/GraphicsBlocks.js:426 +#: js/blocks/GraphicsBlocks.js:426 msgid "The Control-point 2 block sets the second control point for the Bezier curve." msgstr "" -#: js/GraphicsBlocks.js:433 +#: js/blocks/GraphicsBlocks.js:433 msgid "control point 2" msgstr "" -#: js/GraphicsBlocks.js:436 -#: js/GraphicsBlocks.js:487 -#: js/GraphicsBlocks.js:534 -#: js/GraphicsBlocks.js:750 +#: js/blocks/GraphicsBlocks.js:436 +#: js/blocks/GraphicsBlocks.js:487 +#: js/blocks/GraphicsBlocks.js:534 +#: js/blocks/GraphicsBlocks.js:750 msgid "x1" msgstr "" -#: js/GraphicsBlocks.js:436 -#: js/GraphicsBlocks.js:487 -#: js/GraphicsBlocks.js:534 -#: js/GraphicsBlocks.js:750 +#: js/blocks/GraphicsBlocks.js:436 +#: js/blocks/GraphicsBlocks.js:487 +#: js/blocks/GraphicsBlocks.js:534 +#: js/blocks/GraphicsBlocks.js:750 msgid "y1" msgstr "" -#: js/GraphicsBlocks.js:477 +#: js/blocks/GraphicsBlocks.js:477 msgid "The Control-point 1 block sets the first control point for the Bezier curve." msgstr "" -#: js/GraphicsBlocks.js:484 +#: js/blocks/GraphicsBlocks.js:484 msgid "control point 1" msgstr "" -#: js/GraphicsBlocks.js:527 +#: js/blocks/GraphicsBlocks.js:527 msgid "The Bezier block draws a Bezier curve." msgstr "" -#: js/GraphicsBlocks.js:531 +#: js/blocks/GraphicsBlocks.js:531 msgid "bezier" msgstr "" -#: js/GraphicsBlocks.js:592 +#: js/blocks/GraphicsBlocks.js:592 msgid "The Arc block moves the turtle in an arc." msgstr "" -#: js/GraphicsBlocks.js:600 +#: js/blocks/GraphicsBlocks.js:600 msgid "arc" msgstr "arc" -#: js/GraphicsBlocks.js:603 +#: js/blocks/GraphicsBlocks.js:603 msgid "angle" msgstr "도" -#: js/GraphicsBlocks.js:603 +#: js/blocks/GraphicsBlocks.js:603 msgid "radius" msgstr "라디우스" -#: js/GraphicsBlocks.js:620 -#: js/GraphicsBlocks.js:767 -#: js/GraphicsBlocks.js:1010 -#: js/GraphicsBlocks.js:1093 +#: js/blocks/GraphicsBlocks.js:620 +#: js/blocks/GraphicsBlocks.js:767 +#: js/blocks/GraphicsBlocks.js:1010 +#: js/blocks/GraphicsBlocks.js:1093 msgid "Value must be within -5000 to 5000 when Wrap Mode is off." msgstr "" -#: js/GraphicsBlocks.js:622 -#: js/GraphicsBlocks.js:769 -#: js/GraphicsBlocks.js:1012 -#: js/GraphicsBlocks.js:1095 +#: js/blocks/GraphicsBlocks.js:622 +#: js/blocks/GraphicsBlocks.js:769 +#: js/blocks/GraphicsBlocks.js:1012 +#: js/blocks/GraphicsBlocks.js:1095 msgid "Value must be within -20000 to 20000 when Wrap Mode is on." msgstr "" -#: js/GraphicsBlocks.js:660 +#: js/blocks/GraphicsBlocks.js:660 msgid "set heading" msgstr "머리방향 지정하기" -#: js/GraphicsBlocks.js:673 +#: js/blocks/GraphicsBlocks.js:673 msgid "The Set heading block sets the heading of the turtle." msgstr "" -#: js/GraphicsBlocks.js:733 +#: js/blocks/GraphicsBlocks.js:733 msgid "The Set XY block moves the mouse to a specific position on the screen." msgstr "" -#: js/GraphicsBlocks.js:739 +#: js/blocks/GraphicsBlocks.js:739 msgid "The Set XY block moves the turtle to a specific position on the screen." msgstr "" -#: js/GraphicsBlocks.js:747 +#: js/blocks/GraphicsBlocks.js:747 msgid "set xy" msgstr "xy 지정하기" -#: js/GraphicsBlocks.js:819 +#: js/blocks/GraphicsBlocks.js:819 msgid "The Right block turns the mouse to the right." msgstr "" -#: js/GraphicsBlocks.js:826 +#: js/blocks/GraphicsBlocks.js:826 msgid "The Right block turns the turtle to the right." msgstr "" -#: js/GraphicsBlocks.js:835 +#: js/blocks/GraphicsBlocks.js:835 msgid "right1" msgstr "" -#: js/GraphicsBlocks.js:835 +#: js/blocks/GraphicsBlocks.js:835 #: plugins/rodi.rtp:77 #: plugins/rodi.rtp:340 #: plugins/rodi.rtp:375 msgid "right" msgstr "오른쪽" -#: js/GraphicsBlocks.js:899 +#: js/blocks/GraphicsBlocks.js:899 msgid "The Left block turns the mouse to the left." msgstr "" -#: js/GraphicsBlocks.js:906 +#: js/blocks/GraphicsBlocks.js:906 msgid "The Left block turns the turtle to the left." msgstr "" -#: js/GraphicsBlocks.js:915 +#: js/blocks/GraphicsBlocks.js:915 msgid "left1" msgstr "" -#: js/GraphicsBlocks.js:915 +#: js/blocks/GraphicsBlocks.js:915 #: plugins/rodi.rtp:79 #: plugins/rodi.rtp:339 #: plugins/rodi.rtp:362 msgid "left" msgstr "왼쪽" -#: js/GraphicsBlocks.js:967 -#: js/temperament.js:734 -#: js/temperament.js:933 +#: js/blocks/GraphicsBlocks.js:967 +#: js/widgets/temperament.js:875 +#: js/widgets/temperament.js:1078 #: plugins/rodi.rtp:69 #: plugins/rodi.rtp:387 msgid "back" msgstr "뒤" -#: js/GraphicsBlocks.js:976 +#: js/blocks/GraphicsBlocks.js:976 msgid "The Back block moves the mouse backward." msgstr "" -#: js/GraphicsBlocks.js:983 +#: js/blocks/GraphicsBlocks.js:983 msgid "The Back block moves the turtle backward." msgstr "" -#: js/GraphicsBlocks.js:1050 +#: js/blocks/GraphicsBlocks.js:1050 #: plugins/rodi.rtp:71 #: plugins/rodi.rtp:400 msgid "forward" msgstr "전진" -#: js/GraphicsBlocks.js:1059 +#: js/blocks/GraphicsBlocks.js:1059 msgid "The Forward block moves the mouse forward." msgstr "" -#: js/GraphicsBlocks.js:1066 +#: js/blocks/GraphicsBlocks.js:1066 msgid "The Forward block moves the turtle forward." msgstr "" -#: js/GraphicsBlocks.js:1154 -#: js/GraphicsBlocks.js:1172 +#: js/blocks/GraphicsBlocks.js:1154 +#: js/blocks/GraphicsBlocks.js:1172 msgid "wrap" msgstr "" -#: js/OrnamentBlocks.js:32 -msgid "staccato factor" -msgstr "" - -#: js/OrnamentBlocks.js:108 -msgid "slur factor" -msgstr "" - -#: js/OrnamentBlocks.js:217 -#: js/OrnamentBlocks.js:309 -#.TRANS: the neighbor refers to a neighboring note, e.g., D is a neighbor of C -msgid "neighbor" -msgstr "" - -#: js/OrnamentBlocks.js:293 -msgid "The Neighbor block rapidly switches between neighboring pitches." -msgstr "" - -#: js/OrnamentBlocks.js:364 -msgid "glide" -msgstr "" - -#: js/OrnamentBlocks.js:479 -#: js/OrnamentBlocks.js:643 -msgid "slur" -msgstr "이음줄." - -#: js/OrnamentBlocks.js:558 -#: js/OrnamentBlocks.js:710 -#.TRANS: play each note sharply detached from the others -msgid "staccato" -msgstr "스타카토." - -#: js/PenBlocks.js:24 +#: js/blocks/PenBlocks.js:30 msgid "purple" msgstr "보라" -#: js/PenBlocks.js:37 -#: js/SensorsBlocks.js:521 -#: plugins/rodi.rtp:219 -msgid "blue" -msgstr "파랑" - -#: js/PenBlocks.js:50 -#: js/SensorsBlocks.js:577 -#: plugins/rodi.rtp:218 -msgid "green" -msgstr "초록" - -#: js/PenBlocks.js:63 +#: js/blocks/PenBlocks.js:80 msgid "yellow" msgstr "노랑" -#: js/PenBlocks.js:76 +#: js/blocks/PenBlocks.js:96 #: plugins/nutrition.rtp:164 msgid "orange" msgstr "주황" -#: js/PenBlocks.js:89 -#: js/SensorsBlocks.js:633 -#: plugins/rodi.rtp:217 -msgid "red" -msgstr "빨강" - -#: js/PenBlocks.js:102 +#: js/blocks/PenBlocks.js:128 msgid "white" msgstr "하양" -#: js/PenBlocks.js:115 +#: js/blocks/PenBlocks.js:144 msgid "black" msgstr "검정" -#: js/PenBlocks.js:128 +#: js/blocks/PenBlocks.js:163 msgid "begin fill" msgstr "채우기 시작" -#: js/PenBlocks.js:143 +#: js/blocks/PenBlocks.js:190 msgid "end fill" msgstr "채우기 끝" -#: js/PenBlocks.js:159 -#: js/PenBlocks.js:386 +#: js/blocks/PenBlocks.js:212 +#: js/blocks/PenBlocks.js:560 #.TRANS: set the background color msgid "background" msgstr "배경" -#: js/PenBlocks.js:206 -#: js/DictActions.js:71 -#: js/DictActions.js:149 -#: js/DictActions.js:186 +#: js/blocks/PenBlocks.js:274 +#: js/turtleactions/DictActions.js:71 +#: js/turtleactions/DictActions.js:138 +#: js/turtleactions/DictActions.js:170 msgid "grey" msgstr "회색" -#: js/PenBlocks.js:210 +#: js/blocks/PenBlocks.js:282 msgid "The Grey block returns the current pen grey value." msgstr "" -#: js/PenBlocks.js:243 -#: js/DictActions.js:69 -#: js/DictActions.js:147 -#: js/DictActions.js:185 +#: js/blocks/PenBlocks.js:340 +#: js/turtleactions/DictActions.js:69 +#: js/turtleactions/DictActions.js:136 +#: js/turtleactions/DictActions.js:169 msgid "shade" msgstr "명암" -#: js/PenBlocks.js:247 +#: js/blocks/PenBlocks.js:347 msgid "The Shade block returns the current pen shade value." msgstr "" -#: js/PenBlocks.js:280 -#: js/DictActions.js:67 -#: js/DictActions.js:145 -#: js/DictActions.js:184 +#: js/blocks/PenBlocks.js:405 +#: js/turtleactions/DictActions.js:67 +#: js/turtleactions/DictActions.js:134 +#: js/turtleactions/DictActions.js:168 msgid "color" msgstr "색" -#: js/PenBlocks.js:285 +#: js/blocks/PenBlocks.js:415 msgid "The Color block returns the current pen color." msgstr "" -#: js/PenBlocks.js:318 -#: js/DictActions.js:73 -#: js/DictActions.js:151 -#: js/DictActions.js:187 +#: js/blocks/PenBlocks.js:470 +#: js/turtleactions/DictActions.js:73 +#: js/turtleactions/DictActions.js:140 +#: js/turtleactions/DictActions.js:171 msgid "pen size" msgstr "펜 크기" -#: js/PenBlocks.js:322 +#: js/blocks/PenBlocks.js:474 msgid "The Pen size block returns the current pen size value." msgstr "" -#: js/PenBlocks.js:355 +#: js/blocks/PenBlocks.js:513 msgid "set font" msgstr "폰트 설정" -#: js/PenBlocks.js:358 +#: js/blocks/PenBlocks.js:518 msgid "The Set font block sets the font used by the Show block." msgstr "폰트 설정 블록은" -#: js/PenBlocks.js:391 +#: js/blocks/PenBlocks.js:567 msgid "The Background block sets the window background color." msgstr "배경 블록은 윈도 배경 색을 설정한다." -#: js/PenBlocks.js:408 +#: js/blocks/PenBlocks.js:598 msgid "The Hollow line block creates a line with a hollow center." msgstr "" -#: js/PenBlocks.js:415 +#: js/blocks/PenBlocks.js:606 #.TRANS: draw a line logo has a hollow space down its center msgid "hollow line" msgstr "빈 선." -#: js/PenBlocks.js:462 +#: js/blocks/PenBlocks.js:675 msgid "The Fill block fills in a shape with a color." msgstr "" -#: js/PenBlocks.js:470 +#: js/blocks/PenBlocks.js:684 #.TRANS: fill in as a solid color msgid "fill" msgstr "채우기." -#: js/PenBlocks.js:527 +#: js/blocks/PenBlocks.js:761 #.TRANS: raise up the pen so logo it does not draw when it is moved msgid "pen up" msgstr "펜 그리지 않기." -#: js/PenBlocks.js:532 +#: js/blocks/PenBlocks.js:768 msgid "The Pen-up block raises the pen so that it does not draw." msgstr "펜 그리지 않기 블록은 팬을 들어올려 더이상 그려지지 않게 한다." -#: js/PenBlocks.js:552 +#: js/blocks/PenBlocks.js:802 #.TRANS: put down the pen so logo it draws when it is moved msgid "pen down" msgstr "펜 그리기" -#: js/PenBlocks.js:557 +#: js/blocks/PenBlocks.js:810 msgid "The Pen-down block lowers the pen so that it draws." msgstr "펜 그리기 블록은 펜을 내려 그릴 수 있게 한다." -#: js/PenBlocks.js:577 +#: js/blocks/PenBlocks.js:844 #.TRANS: set the width of the line drawn by the pen msgid "set pen size" msgstr "펜 크기 지정" -#: js/PenBlocks.js:583 +#: js/blocks/PenBlocks.js:854 msgid "The Set-pen-size block changes the size of the pen." msgstr "" -#: js/PenBlocks.js:623 +#: js/blocks/PenBlocks.js:913 #.TRANS: set degree of translucence of the pen color msgid "set translucency" msgstr "투명도 설정." -#: js/PenBlocks.js:627 +#: js/blocks/PenBlocks.js:921 msgid "The Set translucency block changes the opacity of the pen." msgstr "투병도 설정 블록은 펜의 투명도를 바꾼다." -#: js/PenBlocks.js:668 +#: js/blocks/PenBlocks.js:981 msgid "set hue" msgstr "" -#: js/PenBlocks.js:672 +#: js/blocks/PenBlocks.js:989 msgid "The Set hue block changes the color of the pen." msgstr "" -#: js/PenBlocks.js:711 +#: js/blocks/PenBlocks.js:1047 msgid "set shade" msgstr "명암 지정" -#: js/PenBlocks.js:717 +#: js/blocks/PenBlocks.js:1057 msgid "The Set-shade block changes the pen color from dark to light." msgstr "" -#: js/PenBlocks.js:757 +#: js/blocks/PenBlocks.js:1111 #.TRANS: set the level of vividness of the pen color msgid "set grey" msgstr "" -#: js/PenBlocks.js:761 +#: js/blocks/PenBlocks.js:1119 msgid "The Set grey block changes the vividness of the pen color." msgstr "" -#: js/PenBlocks.js:800 +#: js/blocks/PenBlocks.js:1172 msgid "set color" msgstr "색 지정" -#: js/PenBlocks.js:806 +#: js/blocks/PenBlocks.js:1182 msgid "The Set-color block changes the pen color." msgstr "색 설정 블록은 펜의 색을 바꾼다." -#: js/VolumeBlocks.js:35 -msgid "synth volume" -msgstr "" - -#: js/VolumeBlocks.js:39 -msgid "The Synth volume block returns the current volume of the current synthesizer." -msgstr "" - -#: js/VolumeBlocks.js:47 -#: js/musicutils.js:730 -#: js/synthutils.js:56 -#.TRANS: musical instrument -msgid "piano" -msgstr "" - -#: js/VolumeBlocks.js:105 -msgid "master volume" -msgstr "" - -#: js/VolumeBlocks.js:109 -msgid "The Master volume block returns the master volume." -msgstr "" - -#: js/VolumeBlocks.js:355 -#: js/VolumeBlocks.js:524 -msgid "set synth volume" -msgstr "" - -#: js/VolumeBlocks.js:362 -#: js/VolumeBlocks.js:545 -msgid "synth" -msgstr "" - -#: js/VolumeBlocks.js:403 -#: js/VolumeBlocks.js:577 -#: js/VolumeBlocks.js:740 -#: js/VolumeActions.js:173 -msgid "Setting volume to 0." -msgstr "" - -#: js/VolumeBlocks.js:440 -msgid "Synth not found" -msgstr "" - -#: js/VolumeBlocks.js:494 -msgid "set drum volume" -msgstr "" - -#: js/VolumeBlocks.js:530 -msgid "The Set synth volume block will change the volume of a particular synth," -msgstr "" - -#: js/VolumeBlocks.js:532 -msgid "eg guitar violin snare drum etc." -msgstr "" - -#: js/VolumeBlocks.js:534 -msgid "The default volume is 50." -msgstr "" - -#: js/VolumeBlocks.js:536 -msgid "The range is 0 for silence to 100 for full volume." -msgstr "" - -#: js/VolumeBlocks.js:597 -msgid "set panning" -msgstr "" - -#: js/VolumeBlocks.js:603 -msgid "The Set Panning block sets the panning for all synthesizers." -msgstr "" - -#: js/VolumeBlocks.js:625 -msgid "Warning: Sound is coming out from only the left or right side." -msgstr "" - -#: js/VolumeBlocks.js:647 -#: js/VolumeBlocks.js:695 -msgid "set master volume" -msgstr "" - -#: js/VolumeBlocks.js:653 -msgid "The Set master volume block sets the volume for all synthesizers." -msgstr "" - -#: js/VolumeBlocks.js:784 -msgid "The Set relative volume block changes the volume of the contained notes." -msgstr "" - -#: js/VolumeBlocks.js:791 -msgid "set relative volume" -msgstr "" - -#: js/VolumeBlocks.js:857 -msgid "decrescendo" -msgstr "디크레센도." - -#: js/VolumeBlocks.js:921 -msgid "crescendo" -msgstr "크레센도." - -#: js/ToneBlocks.js:34 -msgid "oscillator" -msgstr "" - -#: js/ToneBlocks.js:44 -#: js/timbre.js:1562 -#.TRANS: Partials refers to the number of sine waves combined into the sound. -msgid "partials" -msgstr "" - -#: js/ToneBlocks.js:76 -msgid "You are adding multiple oscillator blocks." -msgstr "" - -#: js/ToneBlocks.js:144 -#: js/timbre.js:1225 -#.TRANS: a duo synthesizer combines a synth with a sequencer -msgid "duo synth" -msgstr "" - -#: js/ToneBlocks.js:149 -msgid "The Duo synth block is a duo-frequency modulator used to define a timbre." -msgstr "" - -#: js/ToneBlocks.js:157 -#: js/timbre.js:1476 -msgid "vibrato rate" -msgstr "" - -#: js/ToneBlocks.js:157 -msgid "vibrato intensity" -msgstr "" - -#: js/ToneBlocks.js:185 -#: js/timbre.js:1221 -#.TRANS: AM (amplitude modulation) synthesizer -msgid "AM synth" +#: js/blocks/PitchBlocks.js:141 +#.TRANS: musical transposition (adjustment of pitch up or down) +msgid "transposition" msgstr "" -#: js/ToneBlocks.js:189 -msgid "The AM synth block is an amplitude modulator used to define a timbre." +#: js/blocks/PitchBlocks.js:168 +#.TRANS: step down one note in current musical scale +msgid "scalar step down" msgstr "" -#: js/ToneBlocks.js:224 -#: js/timbre.js:1223 -#.TRANS: FM (frequency modulation) synthesizer -msgid "FM synth" +#: js/blocks/PitchBlocks.js:172 +msgid "The Scalar step down block returns the number of semi-tones down to the previous note in the current key and mode." msgstr "" -#: js/ToneBlocks.js:228 -msgid "The FM synth block is a frequency modulator used to define a timbre." +#: js/blocks/PitchBlocks.js:190 +#.TRANS: step up one note in current musical scale +msgid "scalar step up" msgstr "" -#: js/ToneBlocks.js:262 -msgid "partial" +#: js/blocks/PitchBlocks.js:194 +msgid "The Scalar step up block returns the number of semi-tones up to the next note in the current key and mode." msgstr "" -#: js/ToneBlocks.js:265 -msgid "The Partial block is used to specify a weight for a specific partial harmonic." +#: js/blocks/PitchBlocks.js:212 +#.TRANS: the change measured in half-steps between the current pitch and the previous pitch +msgid "change in pitch" msgstr "" -#: js/ToneBlocks.js:284 -#.TRANS: partials are weighted components in a harmonic series -msgid "Partial weight must be between 0 and 1." +#: js/blocks/PitchBlocks.js:216 +msgid "The Change in pitch block is the difference (in half steps) between the current pitch being played and the previous pitch played." msgstr "" -#: js/ToneBlocks.js:297 -#.TRANS: partials are weighted components in a harmonic series -msgid "Partial block should be used inside of a Weighted-partials block." +#: js/blocks/PitchBlocks.js:243 +#.TRANS: the change measured in scale-steps between the current pitch and the previous pitch +msgid "scalar change in pitch" msgstr "" -#: js/ToneBlocks.js:325 -#.TRANS: partials are weighted components in a harmonic series -msgid "weighted partials" +#: js/blocks/PitchBlocks.js:250 +#: js/blocks/PitchBlocks.js:432 +#: js/blocks/PitchBlocks.js:1667 +#: js/turtleactions/DictActions.js:89 +#: js/widgets/temperament.js:610 +#: js/widgets/temperament.js:614 +#: js/widgets/temperament.js:855 +#.TRANS: convert current note to piano key (1-88) +#.TRANS: a mapping of pitch to the 88 piano keys +msgid "pitch number" msgstr "" -#: js/ToneBlocks.js:383 -msgid "The Harmonic block will add harmonics to the contained notes." +#: js/blocks/PitchBlocks.js:256 +msgid "The Pitch number block is the value of the pitch of the note currently being played." msgstr "" -#: js/ToneBlocks.js:390 -#.TRANS: A harmonic is an overtone. -msgid "harmonic" +#: js/blocks/PitchBlocks.js:329 +#: js/blocks/PitchBlocks.js:433 +#.TRANS: the current pitch expressed in Hertz +msgid "pitch in hertz" msgstr "" -#: js/ToneBlocks.js:431 -msgid "The Distortion block adds distortion to the pitch." +#: js/blocks/PitchBlocks.js:334 +msgid "The Pitch in Hertz block is the value in Hertz of the pitch of the note currently being played." msgstr "" -#: js/ToneBlocks.js:438 -#: js/timbre.js:2100 -#.TRANS: distortion is an alteration in the sound -msgid "distortion" +#: js/blocks/PitchBlocks.js:367 +#: js/turtleactions/DictActions.js:87 +msgid "current pitch" msgstr "" -#: js/ToneBlocks.js:487 -msgid "The Tremolo block adds a wavering effect." +#: js/blocks/PitchBlocks.js:373 +msgid "The Current Pitch block is used with the Pitch Converter block. In the example above, current pitch, sol 4, is displayed as 392 hertz." msgstr "" -#: js/ToneBlocks.js:495 -#: js/timbre.js:2092 -#.TRANS: a wavering effect in a musical tone -msgid "tremolo" +#: js/blocks/PitchBlocks.js:410 +msgid "This block converts the pitch value of the last note played into different formats such as hertz, letter name, pitch number, et al." msgstr "" -#: js/ToneBlocks.js:500 -#: js/ToneBlocks.js:569 -#: js/ToneBlocks.js:630 -#: js/ToneBlocks.js:689 -#: js/timbre.js:2134 -#: js/timbre.js:2222 -#: js/timbre.js:2317 -#: js/timbre.js:2419 -#.TRANS: rate at which tremolo wavers -msgid "rate" +#: js/blocks/PitchBlocks.js:434 +msgid "alphabet" msgstr "" -#: js/ToneBlocks.js:502 -#: js/ToneBlocks.js:630 -#: js/timbre.js:2137 -#: js/timbre.js:2328 -#.TRANS: amplitude of tremolo waver -msgid "depth" +#: js/blocks/PitchBlocks.js:436 +#.TRANS: Translate as "alphabet class" +msgid "letter class" msgstr "" -#: js/ToneBlocks.js:559 -msgid "The Phaser block adds a sweeping sound." +#: js/blocks/PitchBlocks.js:437 +msgid "solfege class" msgstr "" -#: js/ToneBlocks.js:566 -#: js/timbre.js:2098 -#.TRANS: alter the phase of the sound -msgid "phaser" +#: js/blocks/PitchBlocks.js:438 +msgid "staff y" msgstr "" -#: js/ToneBlocks.js:569 -#: js/timbre.js:2422 -msgid "octaves" +#: js/blocks/PitchBlocks.js:439 +msgid "solfege syllable" msgstr "" -#: js/ToneBlocks.js:569 -#: js/timbre.js:2425 -msgid "base frequency" +#: js/blocks/PitchBlocks.js:440 +msgid "pitch class" msgstr "" -#: js/ToneBlocks.js:619 -msgid "The Chorus block adds a chorus effect." +#: js/blocks/PitchBlocks.js:441 +msgid "scalar class" msgstr "" -#: js/ToneBlocks.js:627 -#: js/timbre.js:2096 -#.TRANS: musical effect to simulate a choral sound -msgid "chorus" +#: js/blocks/PitchBlocks.js:443 +msgid "nth degree" msgstr "" -#: js/ToneBlocks.js:630 -msgid "delay" +#: js/blocks/PitchBlocks.js:444 +msgid "pitch to shade" msgstr "" -#: js/ToneBlocks.js:678 -msgid "The Vibrato block adds a rapid, slight variation in pitch." +#: js/blocks/PitchBlocks.js:445 +msgid "pitch to color" msgstr "" -#: js/ToneBlocks.js:686 -#: js/timbre.js:2094 -#.TRANS: a rapid, slight variation in pitch -msgid "vibrato" +#: js/blocks/PitchBlocks.js:629 +#: js/widgets/musickeyboard.js:735 +#.TRANS: MIDI is a technical standard for electronic music +msgid "MIDI" msgstr "" -#: js/ToneBlocks.js:689 -#: js/timbre.js:2221 -msgid "intensity" +#: js/blocks/PitchBlocks.js:642 +#.TRANS: set an offset associated with the numeric piano keyboard mapping +msgid "set pitch number offset" msgstr "" -#: js/ToneBlocks.js:733 -#.TRANS: select synthesizer -msgid "set synth" +#: js/blocks/PitchBlocks.js:645 +msgid "The Set pitch number offset block is used to set the offset for mapping pitch numbers to pitch and octave." msgstr "" -#: js/ToneBlocks.js:804 -msgid "synth name" +#: js/blocks/PitchBlocks.js:679 +#.TRANS: convert piano key number (1-88) to pitch +msgid "number to pitch" msgstr "" -#: js/ToneBlocks.js:842 -msgid "set default instrument" +#: js/blocks/PitchBlocks.js:682 +msgid "The Number to pitch block will convert a pitch number to a pich name." msgstr "" -#: js/ToneBlocks.js:895 -#: js/ToneBlocks.js:943 -#.TRANS: set the characteristics of a custom instrument -msgid "set instrument" +#: js/blocks/PitchBlocks.js:715 +#.TRANS: convert piano key number (1-88) to octave +msgid "number to octave" msgstr "" -#: js/ToneBlocks.js:898 -#: js/ToneBlocks.js:926 -#: js/ToneBlocks.js:932 -msgid "The Set instrument block selects a voice for the synthesizer," +#: js/blocks/PitchBlocks.js:717 +msgid "The Number to octave block will convert a pitch number to an octave." msgstr "" -#: js/ToneBlocks.js:900 -#: js/ToneBlocks.js:934 -msgid "eg guitar piano violin or cello." +#: js/blocks/PitchBlocks.js:726 +msgid "y to pitch" msgstr "" -#: js/ToneBlocks.js:1015 -msgid "Import a sound file to use as an instrument and set its pitch center." +#: js/blocks/PitchBlocks.js:729 +msgid "Y to pitch block will convert a staff y position to corresponding pitch notation." msgstr "" -#: js/ToneBlocks.js:1110 -msgid "Upload a sound file to connect with the sample block." +#: js/blocks/PitchBlocks.js:841 +msgid "accidental selector" msgstr "" -#: js/MeterBlocks.js:34 -#.TRANS: musical meter (time signature), e.g., 4:4 -msgid "current meter" +#: js/blocks/PitchBlocks.js:844 +msgid "The Accidental selector block is used to choose between double-sharp, sharp, natural, flat, and double-flat." msgstr "" -#: js/MeterBlocks.js:85 -#.TRANS: number of beats per minute -msgid "beat factor" +#: js/blocks/PitchBlocks.js:858 +msgid "Pitch can be specified in terms of ni dha pa ma ga re sa." msgstr "" -#: js/MeterBlocks.js:161 -msgid "The Beats per minute block returns the current beats per minute." +#: js/blocks/PitchBlocks.js:872 +msgid "Pitch can be specified in terms of C D E F G A B." msgstr "" -#: js/MeterBlocks.js:169 -#: js/status.js:152 -#.TRANS: number of beats played per minute -msgid "beats per minute2" -msgstr "분당 비트2" - -#: js/MeterBlocks.js:169 -#: js/MeterBlocks.js:1056 -#: js/MeterBlocks.js:1133 -#: js/MeterBlocks.js:1211 -#.TRANS: sets tempo by defining a beat and beats per minute -msgid "beats per minute" -msgstr "분당 비트." - -#: js/MeterBlocks.js:233 -#.TRANS: count of current musical measure in meter -msgid "measure count" +#: js/blocks/PitchBlocks.js:884 +msgid "solfege" msgstr "" -#: js/MeterBlocks.js:241 -msgid "The Measure count block returns the current measure." +#: js/blocks/PitchBlocks.js:887 +msgid "Pitch can be specified in terms of do re mi fa sol la ti." msgstr "" -#: js/MeterBlocks.js:290 -#.TRANS: count of current beat in the meter -msgid "beat count" +#: js/blocks/PitchBlocks.js:922 +msgid "The Invert block rotates any contained notes around a target note." msgstr "" -#: js/MeterBlocks.js:300 -#: js/MeterBlocks.js:311 -#: js/MeterBlocks.js:565 -#: js/MeterBlocks.js:576 -msgid "The Beat count block is the number of the current beat," +#: js/blocks/PitchBlocks.js:929 +#.TRANS: pitch inversion rotates a pitch around another pitch +msgid "invert" msgstr "" -#: js/MeterBlocks.js:313 -#: js/MeterBlocks.js:578 -msgid "eg 1, 2, 3, or 4." +#: js/blocks/PitchBlocks.js:968 +#.TRANS: pitch inversion rotates a pitch around another pitch (odd number) +msgid "invert (odd)" msgstr "" -#: js/MeterBlocks.js:368 -#.TRANS: count the number of notes -msgid "sum note values" +#: js/blocks/PitchBlocks.js:1001 +#.TRANS: pitch inversion rotates a pitch around another pitch (even number) +msgid "invert (even)" msgstr "" -#: js/MeterBlocks.js:376 -#: js/MeterBlocks.js:440 -msgid "The Note counter block can be used to count the number of contained notes." +#: js/blocks/PitchBlocks.js:1022 +#.TRANS: register is the octave of the current pitch +msgid "register" msgstr "" -#: js/MeterBlocks.js:432 -#.TRANS: count the number of notes -msgid "note counter" +#: js/blocks/PitchBlocks.js:1026 +msgid "The Register block provides an easy way to modify the register (octave) of the notes that follow it." msgstr "" -#: js/MeterBlocks.js:496 -#.TRANS: number of whole notes that have been played -msgid "whole notes played" +#: js/blocks/PitchBlocks.js:1047 +#.TRANS: cents are units used to specify the ratio between pitches. There are 100 cents between successive notes. +msgid "50 cents" msgstr "" -#: js/MeterBlocks.js:505 -msgid "The Whole notes played block returns the total number of whole notes played." +#: js/blocks/PitchBlocks.js:1102 +msgid "The Semi-tone transposition block will shift the pitches contained inside Note blocks up (or down) by half steps." msgstr "" -#: js/MeterBlocks.js:555 -#: js/DictActions.js:83 -#.TRANS: number of notes that have been played -msgid "notes played" +#: js/blocks/PitchBlocks.js:1104 +msgid "In the example shown above, sol is shifted up to sol#." msgstr "" -#: js/MeterBlocks.js:653 -msgid "The No clock block decouples the notes from the master clock." +#: js/blocks/PitchBlocks.js:1110 +#.TRANS: adjust the amount of shift (up or down) of a pitch +msgid "semi-tone transpose" msgstr "" -#: js/MeterBlocks.js:661 -#.TRANS: don't lock notes to master clock -msgid "no clock" +#: js/blocks/PitchBlocks.js:1143 +msgid "The Transpose by Ratio block will shift the pitches contained inside Note blocks up (or down) by a ratio" msgstr "" -#: js/MeterBlocks.js:700 -msgid "on weak beat do" +#: js/blocks/PitchBlocks.js:1149 +#.TRANS: adjust the amount of shift (up or down) of a pitch +msgid "transpose by ratio" msgstr "" -#: js/MeterBlocks.js:705 -msgid "The On-weak-beat block lets you specify actions to take on weak (off) beats." +#: js/blocks/PitchBlocks.js:1232 +#.TRANS: down sixth means the note is five scale degrees below current note +msgid "down sixth" msgstr "" -#: js/MeterBlocks.js:750 -msgid "on strong beat" +#: js/blocks/PitchBlocks.js:1251 +#.TRANS: down third means the note is two scale degrees below current note +msgid "down third" msgstr "" -#: js/MeterBlocks.js:758 -msgid "The On-strong-beat block lets you specify actions to take on specified beats." +#: js/blocks/PitchBlocks.js:1270 +#.TRANS: seventh means the note is the six scale degrees above current note +msgid "seventh" msgstr "" -#: js/MeterBlocks.js:769 -msgid "beat" -msgstr "비트." - -#: js/MeterBlocks.js:813 -msgid "on every beat do" +#: js/blocks/PitchBlocks.js:1289 +#.TRANS: sixth means the note is the five scale degrees above current note +msgid "sixth" msgstr "" -#: js/MeterBlocks.js:821 -msgid "The On-every-beat block lets you specify actions to take on every beat." +#: js/blocks/PitchBlocks.js:1308 +#.TRANS: fifth means the note is the four scale degrees above current note +msgid "fifth" msgstr "" -#: js/MeterBlocks.js:874 -msgid "on every note do" +#: js/blocks/PitchBlocks.js:1328 +#.TRANS: fourth means the note is three scale degrees above current note +msgid "fourth" msgstr "" -#: js/MeterBlocks.js:882 -msgid "The On-every-note block lets you specify actions to take on every note." +#: js/blocks/PitchBlocks.js:1347 +#.TRANS: third means the note is two scale degrees above current note +msgid "third" msgstr "" -#: js/MeterBlocks.js:928 -#: js/MeterBlocks.js:999 -#.TRANS: sets tempo by defining a beat and beats per minute -msgid "master beats per minute" +#: js/blocks/PitchBlocks.js:1366 +#.TRANS: second means the note is one scale degree above current note +msgid "second" msgstr "" -#: js/MeterBlocks.js:952 -#: js/MeterBlocks.js:1078 -#: js/MeterBlocks.js:1135 -msgid "bpm" +#: js/blocks/PitchBlocks.js:1407 +msgid "The Scalar transposition block will shift the pitches contained inside Note blocks up (or down) the scale." msgstr "" -#: js/MeterBlocks.js:952 -#: js/MeterBlocks.js:1078 -#: js/MeterBlocks.js:1135 -msgid "beat value" +#: js/blocks/PitchBlocks.js:1409 +msgid "In the example shown above, sol is shifted up to la." msgstr "" -#: js/MeterBlocks.js:1024 -#: js/MeterBlocks.js:1167 -#: js/MeterBlocks.js:1241 -msgid "Beats per minute must be > 30." +#: js/blocks/PitchBlocks.js:1416 +#.TRANS: adjust the amount of shift (up or down) of a pitch by musical scale (scalar) steps +msgid "scalar transpose" msgstr "" -#: js/MeterBlocks.js:1027 -#: js/MeterBlocks.js:1170 -#: js/MeterBlocks.js:1244 -msgid "Maximum beats per minute is 1000." +#: js/blocks/PitchBlocks.js:1451 +msgid "The Accidental block is used to create sharps and flats" msgstr "" -#: js/MeterBlocks.js:1068 -msgid "The Beats per minute block sets the number of 1/4 notes per minute." +#: js/blocks/PitchBlocks.js:1458 +#.TRANS: An accidental is a modification to a pitch, e.g., sharp or flat. +msgid "accidental override" msgstr "" -#: js/MeterBlocks.js:1279 -#.TRANS: anacrusis -msgid "pickup" +#: js/blocks/PitchBlocks.js:1581 +msgid "The Hertz block (in combination with a Number block) will play a sound at the specified frequency." msgstr "" -#: js/MeterBlocks.js:1367 -msgid "number of beats" +#: js/blocks/PitchBlocks.js:1671 +msgid "The Pitch Number block will play a pitch associated by its number, e.g. 0 for C and 7 for G." msgstr "" -#: js/DictBlocks.js:77 -msgid "show dictionary" +#: js/blocks/PitchBlocks.js:1703 +#: js/blocks/PitchBlocks.js:1745 +#.TRANS: a numeric mapping of the notes in an octave based on the musical mode +#.TRANS: a numeric mapping of the notes in an octave based on the musical mode +msgid "nth modal pitch" msgstr "" -#: js/DictBlocks.js:129 -msgid "The Dictionary block returns a dictionary." +#: js/blocks/PitchBlocks.js:1706 +msgid "n^th Modal Pitch takes the pattern of pitches in semitones for a mode and makes each point a degree of the mode," msgstr "" -#: js/DictBlocks.js:197 -#: js/DictBlocks.js:339 -msgid "The Get-dict block returns a value in the dictionary for a specified key." +#: js/blocks/PitchBlocks.js:1708 +msgid "starting from 1 and regardless of tonal framework (i.e. not always 8 notes in the octave)" msgstr "" -#: js/DictBlocks.js:212 -#: js/DictBlocks.js:354 -#.TRANS: retrieve a value from the dictionary with a given key -msgid "get value" +#: js/blocks/PitchBlocks.js:1749 +msgid "N^th Modal Pitch takes a number as an input as the n^th degree for the given mode. 0 is the first position, 1 is the second, -1 is the note before the first etc." msgstr "" -#: js/DictBlocks.js:215 -#: js/DictBlocks.js:216 -#: js/DictBlocks.js:289 -#: js/DictBlocks.js:290 -#: js/DictBlocks.js:357 -#: js/DictBlocks.js:430 -#: js/DictBlocks.js:431 -msgid "key2" +#: js/blocks/PitchBlocks.js:1751 +msgid "The pitches change according to the mode specified without any need for respellings." msgstr "" -#: js/DictBlocks.js:271 -#: js/DictBlocks.js:411 -msgid "The Set-dict block sets a value in the dictionary for a specified key." +#: js/blocks/PitchBlocks.js:1790 +msgid "Scale Degree is a common convention in music. Scale Degree offers seven possible positions in the scale (1-7) and can be modified via accidentals." msgstr "" -#: js/DictBlocks.js:286 -#: js/DictBlocks.js:427 -#.TRANS: set a value in the dictionary for a given key -msgid "set value" +#: js/blocks/PitchBlocks.js:1792 +msgid "Scale Degree 1 is always the first pitch in a given scale, regardless of octave." msgstr "" -#: js/ExtrasBlocks.js:33 -msgid "fraction" +#: js/blocks/PitchBlocks.js:1814 +#.TRANS: step some number of notes in current musical scale +msgid "scalar step" msgstr "" -#: js/ExtrasBlocks.js:36 -msgid "Convert a float to a fraction" +#: js/blocks/PitchBlocks.js:1819 +msgid "The Scalar Step block (in combination with a Number block) will play the next pitch in a scale," msgstr "" -#: js/ExtrasBlocks.js:93 -msgid "save as ABC" +#: js/blocks/PitchBlocks.js:1821 +msgid "eg if the last note played was sol, Scalar Step 1 will play la." msgstr "" -#: js/ExtrasBlocks.js:96 -#: js/ExtrasBlocks.js:132 -#: js/ExtrasBlocks.js:168 -msgid "title" +#: js/blocks/PitchBlocks.js:1857 +msgid "The Pitch block specifies the pitch name and octave of a note that together determine the frequency of the note." msgstr "" -#: js/ExtrasBlocks.js:129 -msgid "save as Lilypond" +#: js/blocks/ProgramBlocks.js:33 +msgid "The Load-heap-from-app block loads the heap from a web page." msgstr "" -#: js/ExtrasBlocks.js:165 -msgid "save as SVG" +#: js/blocks/ProgramBlocks.js:44 +#.TRANS: load the heap contents from a URL +msgid "load heap from App" msgstr "" -#: js/ExtrasBlocks.js:216 -msgid "no background" +#: js/blocks/ProgramBlocks.js:95 +msgid "Error parsing JSON data:" msgstr "" -#: js/ExtrasBlocks.js:219 -msgid "The No background block eliminates the background from the saved SVG output." +#: js/blocks/ProgramBlocks.js:100 +msgid "404: Page not found" msgstr "" -#: js/ExtrasBlocks.js:247 -msgid "show blocks" -msgstr "블록 보기" - -#: js/ExtrasBlocks.js:249 -msgid "The Show blocks block shows the blocks." +#: js/blocks/ProgramBlocks.js:133 +msgid "The Save-heap-to-app block saves the heap to a web page." msgstr "" -#: js/ExtrasBlocks.js:274 -msgid "hide blocks" -msgstr "블록 숨기기" - -#: js/ExtrasBlocks.js:276 -msgid "The Hide blocks block hides the blocks." +#: js/blocks/ProgramBlocks.js:144 +#.TRANS: save the heap contents to a URL +msgid "save heap to App" msgstr "" -#: js/ExtrasBlocks.js:305 -#: js/ExtrasBlocks.js:335 -msgid "The Space block is used to add space between blocks." +#: js/blocks/ProgramBlocks.js:189 +msgid "Cannot find a valid heap for" msgstr "" -#: js/ExtrasBlocks.js:373 -msgid "wait" -msgstr "기다리기" - -#: js/ExtrasBlocks.js:376 -msgid "The Wait block pauses the program for a specified number of seconds." +#: js/blocks/ProgramBlocks.js:206 +msgid "The Load-heap block loads the heap from a file." msgstr "" -#: js/ExtrasBlocks.js:430 -#: plugins/facebook.rtp:30 -msgid "comment" +#: js/blocks/ProgramBlocks.js:217 +#.TRANS: load the heap from a file +msgid "load heap" msgstr "" -#: js/ExtrasBlocks.js:466 -msgid "print" -msgstr "인쇄" - -#: js/ExtrasBlocks.js:473 -msgid "The Print block displays text at the top of the screen." +#: js/blocks/ProgramBlocks.js:270 +msgid "The file you selected does not contain a valid heap." msgstr "" -#: js/ExtrasBlocks.js:579 -msgid "display grid" +#: js/blocks/ProgramBlocks.js:275 +msgid "The loadHeap block needs a loadFile block." msgstr "" -#: js/ExtrasBlocks.js:584 -msgid "The Display Grid Block changes the grid type" +#: js/blocks/ProgramBlocks.js:291 +msgid "The Set-heap block loads the heap." msgstr "" -#: js/ExtrasBlocks.js:686 -#: js/ExtrasBlocks.js:705 -#: js/ExtrasBlocks.js:728 -#: js/ExtrasBlocks.js:751 -#: js/ExtrasBlocks.js:769 -#: js/ExtrasBlocks.js:788 -#: js/ExtrasBlocks.js:807 -#: js/ExtrasBlocks.js:826 -msgid "unknown" +#: js/blocks/ProgramBlocks.js:340 +msgid "The block you selected does not contain a valid heap." msgstr "" -#: js/SensorsBlocks.js:36 -msgid "The Input block prompts for keyboard input." +#: js/blocks/ProgramBlocks.js:343 +msgid "The Set heap block needs a heap." msgstr "" -#: js/SensorsBlocks.js:46 -msgid "input" +#: js/blocks/ProgramBlocks.js:360 +msgid "The Load-dictionary block loads a dictionary from a file." msgstr "" -#: js/SensorsBlocks.js:64 -msgid "Input a value" +#: js/blocks/ProgramBlocks.js:372 +#.TRANS: load a dictionary from a file +msgid "load dictionary" msgstr "" -#: js/SensorsBlocks.js:126 -msgid "input value" +#: js/blocks/ProgramBlocks.js:390 +#: js/blocks/ProgramBlocks.js:658 +#: js/blocks/ToneBlocks.js:1025 +msgid "file" msgstr "" -#: js/SensorsBlocks.js:131 -msgid "The Input-value block stores the input." +#: js/blocks/ProgramBlocks.js:444 +msgid "The file you selected does not contain a valid dictionary." msgstr "" -#: js/SensorsBlocks.js:238 -msgid "loudness" +#: js/blocks/ProgramBlocks.js:449 +msgid "The load dictionary block needs a load file block." msgstr "" -#: js/SensorsBlocks.js:245 -msgid "The Loudness block returns the volume detected by the microphone." +#: js/blocks/ProgramBlocks.js:466 +msgid "The Set-dictionary block loads a dictionary." msgstr "" -#: js/SensorsBlocks.js:300 -msgid "click" +#: js/blocks/ProgramBlocks.js:477 +#.TRANS: load a dictionary from a JSON +msgid "set dictionary" msgstr "" -#: js/SensorsBlocks.js:306 -msgid "The Click block triggers an event if a mouse has been clicked." +#: js/blocks/ProgramBlocks.js:546 +msgid "The block you selected does not contain a valid dictionary." msgstr "" -#: js/SensorsBlocks.js:313 -msgid "The Click block triggers an event if a turtle has been clicked." +#: js/blocks/ProgramBlocks.js:550 +msgid "The set dictionary block needs a dictionary." msgstr "" -#: js/SensorsBlocks.js:342 -msgid "cursor over" +#: js/blocks/ProgramBlocks.js:567 +msgid "The Save-heap block saves the heap to a file." msgstr "" -#: js/SensorsBlocks.js:387 -msgid "cursor out" +#: js/blocks/ProgramBlocks.js:578 +#.TRANS: save the heap to a file +msgid "save heap" msgstr "" -#: js/SensorsBlocks.js:433 -msgid "cursor button down" +#: js/blocks/ProgramBlocks.js:629 +msgid "The Save-dictionary block saves a dictionary to a file." msgstr "" -#: js/SensorsBlocks.js:477 -msgid "cursor button up" +#: js/blocks/ProgramBlocks.js:640 +#.TRANS: save a dictionary to a file +msgid "save dictionary" msgstr "" -#: js/SensorsBlocks.js:638 -msgid "The Get red block returns the red component of the pixel under the mouse." +#: js/blocks/ProgramBlocks.js:720 +msgid "The Open palette block opens a palette." msgstr "" -#: js/SensorsBlocks.js:644 -msgid "The Get red block returns the red component of the pixel under the turtle." +#: js/blocks/ProgramBlocks.js:727 +msgid "open palette" msgstr "" -#: js/SensorsBlocks.js:685 -#: plugins/rodi.rtp:216 -msgid "pixel color" +#: js/blocks/ProgramBlocks.js:785 +msgid "The Delete block block removes a block." msgstr "" -#: js/SensorsBlocks.js:690 -msgid "The Get pixel block returns the color of the pixel under the mouse." +#: js/blocks/ProgramBlocks.js:797 +#.TRANS: Move this block to the trash. +msgid "delete block" msgstr "" -#: js/SensorsBlocks.js:696 -msgid "The Get pixel block returns the color of the pixel under the turtle." +#: js/blocks/ProgramBlocks.js:861 +msgid "The Move block block moves a block." msgstr "" -#: js/SensorsBlocks.js:758 -msgid "time" +#: js/blocks/ProgramBlocks.js:869 +#.TRANS: Move the position of a block on the screen. +msgid "move block" msgstr "" -#: js/SensorsBlocks.js:804 -msgid "cursor y" +#: js/blocks/ProgramBlocks.js:881 +#: js/blocks/ProgramBlocks.js:1048 +msgid "block number" msgstr "" -#: js/SensorsBlocks.js:809 -msgid "The Cursor Y block returns the vertical position of the mouse." +#: js/blocks/ProgramBlocks.js:935 +#.TRANS: Run program beginning at this block. +msgid "run block" msgstr "" -#: js/SensorsBlocks.js:845 -msgid "cursor x" +#: js/blocks/ProgramBlocks.js:1025 +msgid "The Dock block block connections two blocks." msgstr "" -#: js/SensorsBlocks.js:850 -msgid "The Cursor X block returns the horizontal position of the mouse." +#: js/blocks/ProgramBlocks.js:1036 +#.TRANS: We can connect a block to another block. +msgid "connect blocks" msgstr "" -#: js/SensorsBlocks.js:886 -msgid "mouse button" +#: js/blocks/ProgramBlocks.js:1048 +msgid "target block" msgstr "" -#: js/SensorsBlocks.js:888 -msgid "The Mouse-button block returns True if the mouse button is pressed." +#: js/blocks/ProgramBlocks.js:1048 +msgid "connection number" msgstr "" -#: js/SensorsBlocks.js:934 -msgid "to ASCII" +#: js/blocks/ProgramBlocks.js:1140 +msgid "The Make block block creates a new block." msgstr "" -#: js/SensorsBlocks.js:938 -msgid "The To ASCII block converts numbers to letters." +#: js/blocks/ProgramBlocks.js:1152 +#.TRANS: Create a new block +msgid "make block" msgstr "" -#: js/SensorsBlocks.js:1005 -msgid "The Keyboard block returns computer keyboard input." +#: js/blocks/ProgramBlocks.js:1285 +msgid "Cannot find block" msgstr "" -#: js/IntervalsActions.js:216 -msgid "Adding missing pitch number 0." +#: js/blocks/ProgramBlocks.js:1304 +#: js/blocks/ProgramBlocks.js:1313 +msgid "Warning: block argument type mismatch" msgstr "" -#: js/IntervalsActions.js:224 -msgid "Ignoring pitch numbers less than zero or greater than eleven." +#: js/blocks/ProgramBlocks.js:1347 +msgid "The Open project block is used to open a project from a web page." msgstr "" -#: js/IntervalsActions.js:230 -msgid "Ignoring duplicate pitch numbers." -msgstr "" +#: js/blocks/ProgramBlocks.js:1357 +msgid "open project" +msgstr "프로젝트 열기." -#: js/PitchActions.js:88 -msgid "The Scalar Step Block must be used inside of a Note Block." +#: js/blocks/ProgramBlocks.js:1410 +msgid "Please enter a valid URL." msgstr "" -#: js/PitchActions.js:107 -msgid "The Scalar Step Block must be preceded by a Pitch Block." +#: js/blocks/ToneBlocks.js:34 +msgid "oscillator" msgstr "" -#: js/DrumActions.js:231 -msgid "Noise Block: Did you mean to use a Note block?" +#: js/blocks/ToneBlocks.js:42 +#: js/blocks/WidgetBlocks.js:179 +#: js/widgets/timbre.js:1558 +#: js/widgets/timbre.js:1808 +#.TRANS: there are different types (sine, triangle, square...) of oscillators. +#.TRANS: type of filter, e.g., lowpass, highpass, etc. +msgid "type" msgstr "" -#: js/MeterActions.js:101 -#: js/MeterActions.js:139 -msgid "beats per minute must be greater than" +#: js/blocks/ToneBlocks.js:44 +#: js/widgets/timbre.js:1562 +#.TRANS: Partials refers to the number of sine waves combined into the sound. +msgid "partials" msgstr "" -#: js/MeterActions.js:111 -#: js/MeterActions.js:149 -msgid "maximum" +#: js/blocks/ToneBlocks.js:76 +msgid "You are adding multiple oscillator blocks." msgstr "" -#: js/MeterActions.js:117 -#: js/MeterActions.js:155 -msgid "beats per minute is" +#: js/blocks/ToneBlocks.js:144 +#: js/widgets/timbre.js:1225 +#.TRANS: a duo synthesizer combines a synth with a sequencer +msgid "duo synth" msgstr "" -#: js/ToneActions.js:134 -msgid "Vibrato intensity must be between 1 and 100." +#: js/blocks/ToneBlocks.js:149 +msgid "The Duo synth block is a duo-frequency modulator used to define a timbre." msgstr "" -#: js/ToneActions.js:139 -msgid "Vibrato rate must be greater than 0." +#: js/blocks/ToneBlocks.js:157 +#: js/widgets/timbre.js:1476 +msgid "vibrato rate" msgstr "" -#: js/ToneActions.js:192 -#: js/ToneActions.js:265 -#.TRANS: Depth is the intesity of the tremolo or chorus effect. -msgid "Depth is out of range." +#: js/blocks/ToneBlocks.js:157 +msgid "vibrato intensity" msgstr "" -#: js/ToneActions.js:301 -msgid "Distortion must be from 0 to 100." +#: js/blocks/ToneBlocks.js:185 +#: js/widgets/timbre.js:1221 +#.TRANS: AM (amplitude modulation) synthesizer +msgid "AM synth" msgstr "" -#: js/ToneActions.js:332 -#.TRANS: partials components in a harmonic series -msgid "Partial must be greater than or equal to 0." +#: js/blocks/ToneBlocks.js:189 +msgid "The AM synth block is an amplitude modulator used to define a timbre." msgstr "" -#: js/ToneActions.js:378 -#: js/ToneActions.js:417 -#: js/ToneActions.js:456 -#: js/timbre.js:782 -msgid "Unable to use synth due to existing oscillator" +#: js/blocks/ToneBlocks.js:224 +#: js/widgets/timbre.js:1223 +#.TRANS: FM (frequency modulation) synthesizer +msgid "FM synth" msgstr "" -#: js/ToneActions.js:388 -#: js/ToneActions.js:427 -msgid "The input cannot be negative." +#: js/blocks/ToneBlocks.js:228 +msgid "The FM synth block is a frequency modulator used to define a timbre." msgstr "" -#: js/DictActions.js:75 -#: js/DictActions.js:153 -#: js/DictActions.js:188 -msgid "font" +#: js/blocks/ToneBlocks.js:262 +msgid "partial" msgstr "" -#: js/musicutils.js:363 -#: js/musicutils.js:471 -#: js/pitchdrummatrix.js:151 -#: js/musickeyboard.js:2563 -msgid "rest" +#: js/blocks/ToneBlocks.js:265 +msgid "The Partial block is used to specify a weight for a specific partial harmonic." msgstr "" -#: js/musicutils.js:565 -#.TRANS: ordinal number. Please keep exactly one space between each number. -msgid "1st 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th" +#: js/blocks/ToneBlocks.js:284 +#.TRANS: partials are weighted components in a harmonic series +msgid "Partial weight must be between 0 and 1." msgstr "" -#: js/musicutils.js:629 -#: js/musicutils.js:812 -#: js/musicutils.js:911 -#.TRANS: augmented is a music term related to intervals -msgid "augmented" +#: js/blocks/ToneBlocks.js:297 +#.TRANS: partials are weighted components in a harmonic series +msgid "Partial block should be used inside of a Weighted-partials block." msgstr "" -#: js/musicutils.js:631 -#: js/musicutils.js:813 -#: js/musicutils.js:910 -#.TRANS: diminished is a music term related to intervals and mode -msgid "diminished" +#: js/blocks/ToneBlocks.js:325 +#.TRANS: partials are weighted components in a harmonic series +msgid "weighted partials" msgstr "" -#: js/musicutils.js:639 -#.TRANS: twelve semi-tone scale for music -msgid "chromatic" +#: js/blocks/ToneBlocks.js:383 +msgid "The Harmonic block will add harmonics to the contained notes." msgstr "" -#: js/musicutils.js:640 -msgid "algerian" +#: js/blocks/ToneBlocks.js:390 +#.TRANS: A harmonic is an overtone. +msgid "harmonic" msgstr "" -#: js/musicutils.js:641 -msgid "spanish" +#: js/blocks/ToneBlocks.js:431 +msgid "The Distortion block adds distortion to the pitch." msgstr "" -#: js/musicutils.js:643 -#.TRANS: modal scale in music -msgid "octatonic" +#: js/blocks/ToneBlocks.js:438 +#: js/widgets/timbre.js:2100 +#.TRANS: distortion is an alteration in the sound +msgid "distortion" msgstr "" -#: js/musicutils.js:645 -#.TRANS: harmonic major scale in music -msgid "harmonic major" +#: js/blocks/ToneBlocks.js:487 +msgid "The Tremolo block adds a wavering effect." msgstr "" -#: js/musicutils.js:647 -#.TRANS: natural minor scales in music -msgid "natural minor" +#: js/blocks/ToneBlocks.js:495 +#: js/widgets/timbre.js:2092 +#.TRANS: a wavering effect in a musical tone +msgid "tremolo" msgstr "" -#: js/musicutils.js:649 -#.TRANS: harmonic minor scale in music -msgid "harmonic minor" +#: js/blocks/ToneBlocks.js:500 +#: js/blocks/ToneBlocks.js:569 +#: js/blocks/ToneBlocks.js:630 +#: js/blocks/ToneBlocks.js:689 +#: js/widgets/timbre.js:2134 +#: js/widgets/timbre.js:2222 +#: js/widgets/timbre.js:2317 +#: js/widgets/timbre.js:2419 +#.TRANS: rate at which tremolo wavers +msgid "rate" msgstr "" -#: js/musicutils.js:651 -#.TRANS: melodic minor scale in music -msgid "melodic minor" +#: js/blocks/ToneBlocks.js:502 +#: js/blocks/ToneBlocks.js:630 +#: js/widgets/timbre.js:2137 +#: js/widgets/timbre.js:2328 +#.TRANS: amplitude of tremolo waver +msgid "depth" msgstr "" -#: js/musicutils.js:655 -#.TRANS: modal scale for music -msgid "dorian" +#: js/blocks/ToneBlocks.js:559 +msgid "The Phaser block adds a sweeping sound." msgstr "" -#: js/musicutils.js:657 -#.TRANS: modal scale for music -msgid "phrygian" +#: js/blocks/ToneBlocks.js:566 +#: js/widgets/timbre.js:2098 +#.TRANS: alter the phase of the sound +msgid "phaser" msgstr "" -#: js/musicutils.js:659 -#.TRANS: modal scale for music -msgid "lydian" +#: js/blocks/ToneBlocks.js:569 +#: js/turtleactions/IntervalsActions.js:114 +#: js/widgets/timbre.js:2422 +msgid "octaves" msgstr "" -#: js/musicutils.js:661 -#.TRANS: modal scale for music -msgid "mixolydian" +#: js/blocks/ToneBlocks.js:569 +#: js/widgets/timbre.js:2425 +msgid "base frequency" msgstr "" -#: js/musicutils.js:665 -#.TRANS: modal scale for music -msgid "locrian" +#: js/blocks/ToneBlocks.js:619 +msgid "The Chorus block adds a chorus effect." msgstr "" -#: js/musicutils.js:667 -#.TRANS: minor jazz scale for music -msgid "jazz minor" +#: js/blocks/ToneBlocks.js:627 +#: js/widgets/timbre.js:2096 +#.TRANS: musical effect to simulate a choral sound +msgid "chorus" msgstr "" -#: js/musicutils.js:669 -#.TRANS: bebop scale for music -msgid "bebop" +#: js/blocks/ToneBlocks.js:630 +msgid "delay" msgstr "" -#: js/musicutils.js:670 -msgid "arabic" +#: js/blocks/ToneBlocks.js:678 +msgid "The Vibrato block adds a rapid, slight variation in pitch." msgstr "" -#: js/musicutils.js:671 -msgid "byzantine" +#: js/blocks/ToneBlocks.js:686 +#: js/widgets/timbre.js:2094 +#.TRANS: a rapid, slight variation in pitch +msgid "vibrato" msgstr "" -#: js/musicutils.js:673 -#.TRANS: musical scale for music by Verdi -msgid "enigmatic" +#: js/blocks/ToneBlocks.js:689 +#: js/widgets/timbre.js:2221 +msgid "intensity" msgstr "" -#: js/musicutils.js:674 -msgid "ethiopian" +#: js/blocks/ToneBlocks.js:733 +#.TRANS: select synthesizer +msgid "set synth" msgstr "" -#: js/musicutils.js:676 -#.TRANS: Ethiopic scale for music -msgid "geez" +#: js/blocks/ToneBlocks.js:804 +msgid "synth name" msgstr "" -#: js/musicutils.js:677 -msgid "hindu" +#: js/blocks/ToneBlocks.js:842 +msgid "set default instrument" msgstr "" -#: js/musicutils.js:678 -msgid "hungarian" +#: js/blocks/ToneBlocks.js:895 +#: js/blocks/ToneBlocks.js:943 +#.TRANS: set the characteristics of a custom instrument +msgid "set instrument" msgstr "" -#: js/musicutils.js:680 -#.TRANS: minor Romanian scale for music -msgid "romanian minor" +#: js/blocks/ToneBlocks.js:898 +#: js/blocks/ToneBlocks.js:926 +#: js/blocks/ToneBlocks.js:932 +msgid "The Set instrument block selects a voice for the synthesizer," msgstr "" -#: js/musicutils.js:681 -msgid "spanish gypsy" +#: js/blocks/ToneBlocks.js:900 +#: js/blocks/ToneBlocks.js:934 +msgid "eg guitar piano violin or cello." msgstr "" -#: js/musicutils.js:683 -#.TRANS: musical scale for Mid-Eastern music -msgid "maqam" +#: js/blocks/ToneBlocks.js:1015 +msgid "Import a sound file to use as an instrument and set its pitch center." msgstr "" -#: js/musicutils.js:685 -#.TRANS: minor blues scale for music -msgid "minor blues" +#: js/blocks/ToneBlocks.js:1110 +msgid "Upload a sound file to connect with the sample block." msgstr "" -#: js/musicutils.js:687 -#.TRANS: major blues scale for music -msgid "major blues" +#: js/blocks/VolumeBlocks.js:35 +msgid "synth volume" msgstr "" -#: js/musicutils.js:688 -msgid "whole tone" +#: js/blocks/VolumeBlocks.js:39 +msgid "The Synth volume block returns the current volume of the current synthesizer." msgstr "" -#: js/musicutils.js:690 -#.TRANS: pentatonic is a general term that means "five note scale". This scale is typically known as "minor pentatonic" -msgid "minor pentatonic" +#: js/blocks/VolumeBlocks.js:105 +msgid "master volume" msgstr "" -#: js/musicutils.js:692 -#.TRANS: pentatonic is a general term that means "five note scale". This scale is typically known as "major pentatonic" -msgid "major pentatonic" +#: js/blocks/VolumeBlocks.js:109 +msgid "The Master volume block returns the master volume." msgstr "" -#: js/musicutils.js:693 -msgid "chinese" +#: js/blocks/VolumeBlocks.js:355 +#: js/blocks/VolumeBlocks.js:524 +msgid "set synth volume" msgstr "" -#: js/musicutils.js:694 -msgid "egyptian" +#: js/blocks/VolumeBlocks.js:362 +#: js/blocks/VolumeBlocks.js:545 +msgid "synth" msgstr "" -#: js/musicutils.js:696 -#.TRANS: https://en.wikipedia.org/wiki/Hirajoshi_scale NOTE: There are three different versions of this scale -msgid "hirajoshi" +#: js/blocks/VolumeBlocks.js:403 +#: js/blocks/VolumeBlocks.js:577 +#: js/blocks/VolumeBlocks.js:740 +#: js/turtleactions/VolumeActions.js:173 +msgid "Setting volume to 0." msgstr "" -#: js/musicutils.js:697 -msgid "Japan" +#: js/blocks/VolumeBlocks.js:440 +msgid "Synth not found" msgstr "" -#: js/musicutils.js:699 -#.TRANS: https://en.wikipedia.org/wiki/In_scale and https://en.wikipedia.org/wiki/Sakura_Sakura -msgid "in" +#: js/blocks/VolumeBlocks.js:494 +msgid "set drum volume" msgstr "" -#: js/musicutils.js:701 -#.TRANS: https://en.wikipedia.org/wiki/Miny%C5%8D_scale -msgid "minyo" +#: js/blocks/VolumeBlocks.js:530 +msgid "The Set synth volume block will change the volume of a particular synth," msgstr "" -#: js/musicutils.js:703 -#.TRANS: Italian mathematician -msgid "fibonacci" +#: js/blocks/VolumeBlocks.js:532 +msgid "eg guitar violin snare drum etc." msgstr "" -#: js/musicutils.js:708 -#: js/musicutils.js:1106 -#.TRANS: lowpass filter -msgid "lowpass" +#: js/blocks/VolumeBlocks.js:534 +msgid "The default volume is 50." msgstr "" -#: js/musicutils.js:710 -#: js/musicutils.js:1107 -#.TRANS: bandpass filter -msgid "bandpass" +#: js/blocks/VolumeBlocks.js:536 +msgid "The range is 0 for silence to 100 for full volume." msgstr "" -#: js/musicutils.js:712 -#: js/musicutils.js:1108 -#.TRANS: high-shelf filter -msgid "highshelf" +#: js/blocks/VolumeBlocks.js:597 +msgid "set panning" msgstr "" -#: js/musicutils.js:714 -#: js/musicutils.js:1109 -#.TRANS: low-shelf filter -msgid "lowshelf" +#: js/blocks/VolumeBlocks.js:603 +msgid "The Set Panning block sets the panning for all synthesizers." msgstr "" -#: js/musicutils.js:716 -#: js/musicutils.js:1110 -#.TRANS: notch-shelf filter -msgid "notch" +#: js/blocks/VolumeBlocks.js:625 +msgid "Warning: Sound is coming out from only the left or right side." msgstr "" -#: js/musicutils.js:718 -#: js/musicutils.js:1111 -#.TRANS: all-pass filter -msgid "allpass" +#: js/blocks/VolumeBlocks.js:647 +#: js/blocks/VolumeBlocks.js:695 +msgid "set master volume" msgstr "" -#: js/musicutils.js:720 -#: js/musicutils.js:1112 -#.TRANS: peaking filter -msgid "peaking" +#: js/blocks/VolumeBlocks.js:653 +msgid "The Set master volume block sets the volume for all synthesizers." msgstr "" -#: js/musicutils.js:731 -#: js/synthutils.js:58 -#.TRANS: musical instrument -msgid "violin" +#: js/blocks/VolumeBlocks.js:784 +msgid "The Set relative volume block changes the volume of the contained notes." msgstr "" -#: js/musicutils.js:732 -#: js/synthutils.js:60 -#.TRANS: viola musical instrument -msgid "viola" +#: js/blocks/VolumeBlocks.js:791 +msgid "set relative volume" msgstr "" -#: js/musicutils.js:733 -#: js/synthutils.js:98 -#.TRANS: xylophone musical instrument -msgid "xylophone" +#: js/blocks/VolumeBlocks.js:857 +msgid "decrescendo" +msgstr "디크레센도." + +#: js/blocks/VolumeBlocks.js:921 +msgid "crescendo" +msgstr "크레센도." + +#: js/blocks/WidgetBlocks.js:81 +#.TRANS: sound envelope (ADSR) +msgid "envelope" msgstr "" -#: js/musicutils.js:734 -#: js/synthutils.js:120 -#.TRANS: vibraphone musical instrument -msgid "vibraphone" +#: js/blocks/WidgetBlocks.js:89 +#.TRANS: Attack time is the time taken for initial run-up of level from nil to peak, beginning when the key is first pressed. +msgid "attack" msgstr "" -#: js/musicutils.js:735 -#: js/synthutils.js:62 -#.TRANS: musical instrument -msgid "cello" +#: js/blocks/WidgetBlocks.js:91 +#.TRANS: Decay time is the time taken for the subsequent run down from the attack level to the designated sustain level. +msgid "decay" msgstr "" -#: js/musicutils.js:737 -#: js/synthutils.js:66 -#.TRANS: viola musical instrument -msgid "double bass" +#: js/blocks/WidgetBlocks.js:93 +#.TRANS: Sustain level is the level during the main sequence of the sound's duration, until the key is released. +msgid "sustain" msgstr "" -#: js/musicutils.js:738 -#: js/synthutils.js:68 -#: js/rhythmruler.js:2119 -#.TRANS: musical instrument -msgid "guitar" +#: js/blocks/WidgetBlocks.js:95 +#.TRANS: Release time is the time taken for the level to decay from the sustain level to zero after the key is released. +msgid "release" msgstr "" -#: js/musicutils.js:739 -#: js/synthutils.js:70 -#.TRANS: musical instrument -msgid "acoustic guitar" +#: js/blocks/WidgetBlocks.js:113 +msgid "Attack value should be from 0 to 100." msgstr "" -#: js/musicutils.js:740 -#: js/synthutils.js:72 -#.TRANS: musical instrument -msgid "flute" +#: js/blocks/WidgetBlocks.js:116 +msgid "Decay value should be from 0 to 100." msgstr "" -#: js/musicutils.js:741 -#: js/synthutils.js:74 -#.TRANS: musical instrument -msgid "clarinet" +#: js/blocks/WidgetBlocks.js:119 +msgid "Sustain value should be from 0 to 100." msgstr "" -#: js/musicutils.js:742 -#: js/synthutils.js:76 -#.TRANS: musical instrument -msgid "saxophone" +#: js/blocks/WidgetBlocks.js:122 +msgid "Release value should be from 0-100." msgstr "" -#: js/musicutils.js:743 -#: js/synthutils.js:78 -#.TRANS: musical instrument -msgid "tuba" +#: js/blocks/WidgetBlocks.js:140 +msgid "You are adding multiple envelope blocks." msgstr "" -#: js/musicutils.js:744 -#: js/synthutils.js:80 -#.TRANS: musical instrument -msgid "trumpet" +#: js/blocks/WidgetBlocks.js:171 +#.TRANS: a filter removes some unwanted components from a signal +msgid "filter" +msgstr "필터." + +#: js/blocks/WidgetBlocks.js:181 +#: js/widgets/timbre.js:1818 +#.TRANS: rolloff is the steepness of a change in frequency. +msgid "rolloff" msgstr "" -#: js/musicutils.js:745 -#: js/synthutils.js:82 -#.TRANS: musical instrument -msgid "oboe" +#: js/blocks/WidgetBlocks.js:213 +#.TRANS: rolloff is the steepness of a change in frequency. +msgid "Rolloff value should be either -12, -24, -48, or -96 decibels/octave." msgstr "" -#: js/musicutils.js:746 -#: js/synthutils.js:84 -#.TRANS: musical instrument -msgid "trombone" +#: js/blocks/WidgetBlocks.js:252 +msgid "The Temperament tool is used to define custom tuning." msgstr "" -#: js/musicutils.js:747 -#: js/synthutils.js:100 -#.TRANS: polytone synthesizer -msgid "electronic synth" +#: js/blocks/WidgetBlocks.js:332 +#: js/blocks/WidgetBlocks.js:1573 +#: js/widgets/sampler.js:547 +msgid "Upload a sample and adjust its pitch center." msgstr "" -#: js/musicutils.js:748 -#: js/synthutils.js:102 -#.TRANS: simple monotone synthesizer -msgid "simple 1" +#: js/blocks/WidgetBlocks.js:339 +#.TRANS: the speed at music is should be played. +msgid "sampler" msgstr "" -#: js/musicutils.js:749 -msgid "simple 2" +#: js/blocks/WidgetBlocks.js:517 +msgid "The Meter block opens a tool to select strong beats for the meter." msgstr "" -#: js/musicutils.js:750 -msgid "simple 3" +#: js/blocks/WidgetBlocks.js:573 +msgid "The oscilloscope block opens a tool to visualize waveforms." msgstr "" -#: js/musicutils.js:751 -msgid "simple 4" +#: js/blocks/WidgetBlocks.js:578 +msgid "oscilloscope" msgstr "" -#: js/musicutils.js:753 -#: js/synthutils.js:49 -#.TRANS: brown noise synthesizer -msgid "brown noise" +#: js/blocks/WidgetBlocks.js:645 +msgid "The Custom mode block opens a tool to explore musical mode (the spacing of the notes in a scale)." msgstr "" -#: js/musicutils.js:754 -#: js/synthutils.js:51 -#.TRANS: pink noise synthesizer -msgid "pink noise" +#: js/blocks/WidgetBlocks.js:651 +#.TRANS: musical mode is the pattern of half-steps in an octave, e.g., Major or Minor modes +msgid "custom mode" msgstr "" -#: js/musicutils.js:756 -#: js/synthutils.js:127 -#: js/rhythmruler.js:1670 -#: js/rhythmruler.js:1928 -#.TRANS: musical instrument -msgid "snare drum" +#: js/blocks/WidgetBlocks.js:700 +msgid "The Tempo block opens a metronome to visualize the beat." msgstr "" -#: js/musicutils.js:757 -#: js/synthutils.js:129 -#.TRANS: musical instrument -msgid "kick drum" +#: js/blocks/WidgetBlocks.js:762 +msgid "The Arpeggio Widget is used to compose chord sequences." msgstr "" -#: js/musicutils.js:758 -#: js/synthutils.js:131 -#.TRANS: musical instrument -msgid "tom tom" +#: js/blocks/WidgetBlocks.js:837 +msgid "The Pitch drum matrix is used to map pitches to drum sounds." msgstr "" -#: js/musicutils.js:759 -#: js/synthutils.js:133 -#.TRANS: musical instrument -msgid "floor tom" +#: js/blocks/WidgetBlocks.js:842 +#.TRANS: makes a mapping between pitches and drum sounds +msgid "pitch-drum mapper" msgstr "" -#: js/musicutils.js:760 -#: js/synthutils.js:135 -#.TRANS: musical instrument -msgid "bass drum" +#: js/blocks/WidgetBlocks.js:891 +msgid "You must have at least one pitch block and one drum block in the matrix." msgstr "" -#: js/musicutils.js:761 -#: js/synthutils.js:137 -#.TRANS: a drum made from an inverted cup -msgid "cup drum" +#: js/blocks/WidgetBlocks.js:920 +msgid "The Pitch slider tool to is used to generate pitches at selected frequencies." msgstr "" -#: js/musicutils.js:762 -#: js/synthutils.js:139 -#.TRANS: musical instrument -msgid "darbuka drum" +#: js/blocks/WidgetBlocks.js:925 +#.TRANS: widget to generate pitches using a slider +msgid "pitch slider" msgstr "" -#: js/musicutils.js:763 -#: js/synthutils.js:143 -#.TRANS: musical instrument -msgid "hi hat" +#: js/blocks/WidgetBlocks.js:977 +msgid "chromatic keyboard" msgstr "" -#: js/musicutils.js:764 -#: js/synthutils.js:145 -#.TRANS: a small metal bell -msgid "ride bell" +#: js/blocks/WidgetBlocks.js:1011 +#: js/blocks/WidgetBlocks.js:1077 +#.TRANS: widget to generate pitches using a slider +msgid "music keyboard" msgstr "" -#: js/musicutils.js:765 -#: js/synthutils.js:147 -#.TRANS: musical instrument -msgid "cow bell" +#: js/blocks/WidgetBlocks.js:1062 +#: js/blocks/WidgetBlocks.js:1069 +msgid "The Music keyboard block opens a piano keyboard that can be used to create notes." msgstr "" -#: js/musicutils.js:766 -msgid "japanese drum" +#: js/blocks/WidgetBlocks.js:1128 +msgid "The Pitch staircase tool to is used to generate pitches from a given ratio." msgstr "" -#: js/musicutils.js:767 -#: js/synthutils.js:153 -#.TRANS: musical instrument -msgid "japanese bell" +#: js/blocks/WidgetBlocks.js:1135 +#.TRANS: generate a progressive sequence of pitches +msgid "pitch staircase" msgstr "" -#: js/musicutils.js:768 -#: js/synthutils.js:149 -#.TRANS: musical instrument -msgid "triangle bell" +#: js/blocks/WidgetBlocks.js:1222 +msgid "The Rhythm Maker block opens a tool to create drum machines." msgstr "" -#: js/musicutils.js:769 -#: js/synthutils.js:151 -#.TRANS: musical instrument -msgid "finger cymbals" -msgstr "" +#: js/blocks/WidgetBlocks.js:1291 +msgid "G major scale" +msgstr "사장조 스케일." -#: js/musicutils.js:770 -#: js/synthutils.js:155 -#.TRANS: a musically tuned set of bells -msgid "chime" +#: js/blocks/WidgetBlocks.js:1326 +msgid "C major scale" +msgstr "다장조 스케일." + +#: js/blocks/WidgetBlocks.js:1366 +msgid "The Phrase Maker block opens a tool to create musical phrases." msgstr "" -#: js/musicutils.js:771 -#: js/synthutils.js:157 -#.TRANS: a musical instrument -msgid "gong" +#: js/blocks/WidgetBlocks.js:1373 +#.TRANS: assigns pitch to a sequence of beats to generate a melody +msgid "phrase maker" msgstr "" -#: js/musicutils.js:772 -#: js/synthutils.js:159 -#.TRANS: sound effect -msgid "clang" +#: js/blocks/WidgetBlocks.js:1444 +msgid "You must have at least one pitch block and one rhythm block in the matrix." msgstr "" -#: js/musicutils.js:773 -#: js/synthutils.js:161 -#.TRANS: sound effect -msgid "crash" +#: js/blocks/WidgetBlocks.js:1503 +msgid "The Status block opens a tool for inspecting the status of Music Blocks as it is running." msgstr "" -#: js/musicutils.js:774 -#: js/synthutils.js:163 -#.TRANS: sound effect -msgid "bottle" +#: js/blocks/WidgetBlocks.js:1580 +#.TRANS: AI-generated music +msgid "aimusic" msgstr "" -#: js/musicutils.js:775 -#: js/synthutils.js:165 -#.TRANS: sound effect -msgid "clap" +#: js/turtleactions/MeterActions.js:101 +#: js/turtleactions/MeterActions.js:139 +msgid "beats per minute must be greater than" msgstr "" -#: js/musicutils.js:776 -#: js/synthutils.js:167 -#.TRANS: sound effect -msgid "slap" +#: js/turtleactions/MeterActions.js:111 +#: js/turtleactions/MeterActions.js:149 +msgid "maximum" msgstr "" -#: js/musicutils.js:777 -#: js/synthutils.js:169 -#.TRANS: sound effect -msgid "splash" +#: js/turtleactions/MeterActions.js:117 +#: js/turtleactions/MeterActions.js:155 +msgid "beats per minute is" msgstr "" -#: js/musicutils.js:778 -#: js/synthutils.js:171 -#.TRANS: sound effect -msgid "bubbles" +#: js/turtleactions/DictActions.js:75 +#: js/turtleactions/DictActions.js:142 +#: js/turtleactions/DictActions.js:172 +msgid "font" msgstr "" -#: js/musicutils.js:779 -#: js/synthutils.js:173 -#.TRANS: sound effect -msgid "raindrop" +#: js/turtleactions/DictActions.js:255 +msgid "Dictionary with this name does not exist" msgstr "" -#: js/musicutils.js:780 -#: js/synthutils.js:175 -#.TRANS: animal sound effect -msgid "cat" +#: js/turtleactions/DictActions.js:259 +msgid "Key with this name does not exist in " msgstr "" -#: js/musicutils.js:781 -#: js/synthutils.js:177 -#.TRANS: animal sound effect -msgid "cricket" +#: js/turtleactions/DrumActions.js:227 +msgid "Noise Block: Did you mean to use a Note block?" msgstr "" -#: js/musicutils.js:782 -#: js/synthutils.js:179 -#.TRANS: animal sound effect -msgid "dog" +#: js/turtleactions/IntervalsActions.js:113 +msgid "one" msgstr "" -#: js/musicutils.js:784 -#: js/synthutils.js:86 -#.TRANS: musical instrument -msgid "banjo" +#: js/turtleactions/IntervalsActions.js:113 +msgid "two" msgstr "" -#: js/musicutils.js:785 -#: js/synthutils.js:88 -#.TRANS: musical instrument -msgid "koto" +#: js/turtleactions/IntervalsActions.js:113 +msgid "three" msgstr "" -#: js/musicutils.js:786 -#: js/synthutils.js:90 -#.TRANS: musical instrument -msgid "dulcimer" +#: js/turtleactions/IntervalsActions.js:113 +msgid "four" msgstr "" -#: js/musicutils.js:787 -#: js/synthutils.js:92 -#.TRANS: musical instrument -msgid "electric guitar" +#: js/turtleactions/IntervalsActions.js:113 +msgid "five" msgstr "" -#: js/musicutils.js:788 -#: js/synthutils.js:94 -#.TRANS: musical instrument -msgid "bassoon" +#: js/turtleactions/IntervalsActions.js:113 +msgid "six" msgstr "" -#: js/musicutils.js:789 -#: js/synthutils.js:96 -#.TRANS: musical instrument -msgid "celeste" +#: js/turtleactions/IntervalsActions.js:113 +msgid "seven" msgstr "" -#: js/musicutils.js:791 -#: js/musicutils.js:1123 -#: js/musicutils.js:1131 -#: js/temperament.js:650 -#.TRANS: musical temperament -msgid "equal" +#: js/turtleactions/IntervalsActions.js:113 +msgid "eight" msgstr "" -#: js/musicutils.js:793 -#: js/musicutils.js:1125 -#: js/musicutils.js:1133 -#.TRANS: musical temperament -msgid "Pythagorean" +#: js/turtleactions/IntervalsActions.js:113 +msgid "nine" msgstr "" -#: js/musicutils.js:795 -#: js/musicutils.js:1124 -#: js/musicutils.js:1132 -#.TRANS: musical temperament -msgid "just intonation" +#: js/turtleactions/IntervalsActions.js:119 +msgid "a" msgstr "" -#: js/musicutils.js:797 -#: js/musicutils.js:1126 -#: js/musicutils.js:1127 -#: js/musicutils.js:1134 -#: js/musicutils.js:1135 -#.TRANS: musical temperament -msgid "meantone" +#: js/turtleactions/IntervalsActions.js:120 +msgid "below" msgstr "" -#: js/musicutils.js:814 -msgid "major 7th" +#: js/turtleactions/IntervalsActions.js:124 +msgid "above" msgstr "" -#: js/musicutils.js:815 -msgid "minor 7th" +#: js/turtleactions/IntervalsActions.js:131 +msgid "plus" msgstr "" -#: js/musicutils.js:816 -msgid "dominant 7th" +#: js/turtleactions/IntervalsActions.js:139 +msgid " below" msgstr "" -#: js/musicutils.js:817 -msgid "minor-major 7th" +#: js/turtleactions/IntervalsActions.js:257 +msgid "Adding missing pitch number 0." msgstr "" -#: js/musicutils.js:818 -msgid "fully-diminished 7th" +#: js/turtleactions/IntervalsActions.js:265 +msgid "Ignoring pitch numbers less than zero or greater than eleven." msgstr "" -#: js/musicutils.js:819 -msgid "half-diminished 7th" +#: js/turtleactions/IntervalsActions.js:271 +msgid "Ignoring duplicate pitch numbers." msgstr "" -#: js/musicutils.js:4379 -#: js/musicutils.js:4416 -msgid "current" +#: js/turtleactions/ToneActions.js:134 +msgid "Vibrato intensity must be between 1 and 100." msgstr "" -#: js/musicutils.js:4382 -#: js/musicutils.js:4407 -msgid "next" +#: js/turtleactions/ToneActions.js:139 +msgid "Vibrato rate must be greater than 0." msgstr "" -#: js/musicutils.js:4385 -#: js/musicutils.js:4412 -msgid "previous" +#: js/turtleactions/ToneActions.js:192 +#: js/turtleactions/ToneActions.js:265 +#.TRANS: Depth is the intesity of the tremolo or chorus effect. +msgid "Depth is out of range." msgstr "" -#: js/synthutils.js:104 -#.TRANS: simple monotone synthesizer -msgid "simple-2" +#: js/turtleactions/ToneActions.js:301 +msgid "Distortion must be from 0 to 100." msgstr "" -#: js/synthutils.js:106 -#.TRANS: simple monotone synthesizer -msgid "simple-3" +#: js/turtleactions/ToneActions.js:332 +#.TRANS: partials components in a harmonic series +msgid "Partial must be greater than or equal to 0." msgstr "" -#: js/synthutils.js:108 -#.TRANS: simple monotone synthesizer -msgid "simple-4" +#: js/turtleactions/ToneActions.js:378 +#: js/turtleactions/ToneActions.js:417 +#: js/turtleactions/ToneActions.js:456 +#: js/widgets/timbre.js:782 +msgid "Unable to use synth due to existing oscillator" msgstr "" -#: js/synthutils.js:141 -#.TRANS: musical instrument -msgid "taiko" +#: js/turtleactions/ToneActions.js:388 +#: js/turtleactions/ToneActions.js:427 +msgid "The input cannot be negative." msgstr "" -#: js/modewidget.js:86 -#: js/modewidget.js:88 -#: js/modewidget.js:642 -#: js/modewidget.js:644 -#: js/modewidget.js:712 -#: js/modewidget.js:714 -#: js/temperament.js:2078 -#: js/rhythmruler.js:189 -#: js/rhythmruler.js:1410 -#: js/rhythmruler.js:1412 -#: js/rhythmruler.js:1435 -#: js/rhythmruler.js:1437 -#: js/meterwidget.js:89 -#: js/meterwidget.js:91 +#: js/widgets/modewidget.js:86 +#: js/widgets/modewidget.js:88 +#: js/widgets/modewidget.js:642 +#: js/widgets/modewidget.js:644 +#: js/widgets/modewidget.js:712 +#: js/widgets/modewidget.js:714 +#: js/widgets/meterwidget.js:194 +#: js/widgets/meterwidget.js:196 +#: js/widgets/temperament.js:2236 +#: js/widgets/rhythmruler.js:457 +#: js/widgets/rhythmruler.js:1790 +#: js/widgets/rhythmruler.js:1792 +#: js/widgets/rhythmruler.js:1816 +#: js/widgets/rhythmruler.js:1818 msgid "Play all" msgstr "" -#: js/modewidget.js:115 -#: js/pitchstaircase.js:641 -#: js/phrasemaker.js:339 -#: js/pitchdrummatrix.js:94 -#: js/pitchslider.js:125 -#: js/temperament.js:2083 -#: js/musickeyboard.js:530 -#: js/timbre.js:756 -#: js/meterwidget.js:124 -#: js/arpeggio.js:103 +#: js/widgets/modewidget.js:115 +#: js/widgets/meterwidget.js:229 +#: js/widgets/pitchdrummatrix.js:166 +#: js/widgets/pitchslider.js:125 +#: js/widgets/pitchstaircase.js:641 +#: js/widgets/temperament.js:2244 +#: js/widgets/timbre.js:756 +#: js/widgets/arpeggio.js:103 +#: js/widgets/musickeyboard.js:688 +#: js/widgets/phrasemaker.js:550 msgid "Save" msgstr "" -#: js/modewidget.js:121 -#: js/pitchstaircase.js:686 -#: js/phrasemaker.js:356 -#: js/pitchdrummatrix.js:109 -#: js/musickeyboard.js:534 -#: js/rhythmruler.js:269 -#: js/arpeggio.js:118 +#: js/widgets/modewidget.js:121 +#: js/widgets/pitchdrummatrix.js:181 +#: js/widgets/pitchstaircase.js:686 +#: js/widgets/arpeggio.js:118 +#: js/widgets/musickeyboard.js:696 +#: js/widgets/phrasemaker.js:567 +#: js/widgets/rhythmruler.js:601 #.TRANS: clear all subdivisions from the ruler. msgid "Clear" msgstr "" -#: js/modewidget.js:127 +#: js/widgets/modewidget.js:127 msgid "Rotate counter clockwise" msgstr "" -#: js/modewidget.js:133 +#: js/widgets/modewidget.js:133 msgid "Rotate clockwise" msgstr "" -#: js/modewidget.js:139 +#: js/widgets/modewidget.js:139 msgid "Invert" msgstr "" -#: js/modewidget.js:145 -#: js/pitchstaircase.js:678 -#: js/rhythmruler.js:258 -#: js/timbre.js:963 +#: js/widgets/modewidget.js:145 +#: js/widgets/pitchstaircase.js:678 +#: js/widgets/timbre.js:963 +#: js/widgets/rhythmruler.js:578 msgid "Undo" msgstr "" -#: js/modewidget.js:163 +#: js/widgets/modewidget.js:163 #.TRANS: A circle of notes represents the musical mode. msgid "Click in the circle to select notes for the mode." msgstr "" -#: js/modewidget.js:1017 -#: js/pitchstaircase.js:580 -#: js/phrasemaker.js:4855 -#: js/temperament.js:1754 -#: js/rhythmruler.js:1865 -#: js/rhythmruler.js:2081 -#: js/tempo.js:414 +#: js/widgets/modewidget.js:1017 +#: js/widgets/pitchstaircase.js:580 +#: js/widgets/temperament.js:1929 +#: js/widgets/tempo.js:414 +#: js/widgets/phrasemaker.js:5356 +#: js/widgets/rhythmruler.js:2254 +#: js/widgets/rhythmruler.js:2472 msgid "New action block generated!" msgstr "" -#: js/oscilloscope.js:79 -msgid "Zoom In" -msgstr "" - -#: js/oscilloscope.js:88 -msgid "Zoom Out" -msgstr "" - -#: js/pitchstaircase.js:624 -msgid "Play chord" -msgstr "" - -#: js/pitchstaircase.js:632 -msgid "Play scale" +#: js/widgets/meterwidget.js:275 +msgid "Reset" msgstr "" -#: js/pitchstaircase.js:696 -msgid "Click on a note to create a new step." +#: js/widgets/meterwidget.js:301 +msgid "Click in the circle to select strong beats for the meter." msgstr "" -#: js/phrasemaker.js:363 -msgid "Export" +#: js/widgets/oscilloscope.js:79 +msgid "Zoom In" msgstr "" -#: js/phrasemaker.js:370 -msgid "Sort" +#: js/widgets/oscilloscope.js:88 +msgid "Zoom Out" msgstr "" -#: js/phrasemaker.js:373 -#: js/musickeyboard.js:559 -msgid "Add note" +#: js/widgets/pitchdrummatrix.js:356 +#: js/widgets/pitchdrummatrix.js:752 +msgid "Click in the grid to map notes to drums." msgstr "" -#: js/phrasemaker.js:764 -msgid "Click on the table to add notes." +#: js/widgets/pitchslider.js:103 +msgid "Move up" msgstr "" -#: js/phrasemaker.js:2414 -#: js/phrasemaker.js:2543 -msgid "tuplet value" +#: js/widgets/pitchslider.js:114 +msgid "Move down" msgstr "" -#: js/pitchdrummatrix.js:270 -#: js/pitchdrummatrix.js:639 -msgid "Click in the grid to map notes to drums." +#: js/widgets/pitchslider.js:136 +msgid "Click on the slider to create a note block." msgstr "" -#: js/pitchslider.js:103 -msgid "Move up" +#: js/widgets/pitchstaircase.js:624 +msgid "Play chord" msgstr "" -#: js/pitchslider.js:114 -msgid "Move down" +#: js/widgets/pitchstaircase.js:632 +msgid "Play scale" msgstr "" -#: js/pitchslider.js:136 -msgid "Click on the slider to create a note block." +#: js/widgets/pitchstaircase.js:696 +msgid "Click on a note to create a new step." msgstr "" -#: js/temperament.js:215 +#: js/widgets/temperament.js:321 msgid "back to 2:1 octave space" msgstr "" -#: js/temperament.js:323 +#: js/widgets/temperament.js:447 msgid "edit" msgstr "" -#: js/temperament.js:330 -#: js/temperament.js:332 -#: js/temperament.js:1336 -#: js/temperament.js:1338 +#: js/widgets/temperament.js:454 +#: js/widgets/temperament.js:456 +#: js/widgets/temperament.js:1493 +#: js/widgets/temperament.js:1495 msgid "close" msgstr "" -#: js/temperament.js:423 -#: js/temperament.js:736 -#: js/temperament.js:743 -#: js/temperament.js:845 -#: js/temperament.js:935 -#: js/temperament.js:942 -#: js/temperament.js:1015 -#: js/temperament.js:1284 -#: js/temperament.js:1354 -#: js/temperament.js:1430 +#: js/widgets/temperament.js:552 +#: js/widgets/temperament.js:877 +#: js/widgets/temperament.js:884 +#: js/widgets/temperament.js:986 +#: js/widgets/temperament.js:1080 +#: js/widgets/temperament.js:1087 +#: js/widgets/temperament.js:1160 +#: js/widgets/temperament.js:1433 +#: js/widgets/temperament.js:1511 +#: js/widgets/temperament.js:1596 msgid "done" msgstr "" -#: js/temperament.js:477 -#: js/temperament.js:482 -#: js/temperament.js:918 +#: js/widgets/temperament.js:610 +#: js/widgets/temperament.js:615 +#: js/widgets/temperament.js:1063 msgid "ratio" msgstr "" -#: js/temperament.js:483 +#: js/widgets/temperament.js:616 msgid "interval" msgstr "" -#: js/temperament.js:611 +#: js/widgets/temperament.js:744 msgid "non scalar" msgstr "" -#: js/temperament.js:650 +#: js/widgets/temperament.js:787 msgid "ratios" msgstr "" -#: js/temperament.js:650 +#: js/widgets/temperament.js:787 msgid "arbitrary" msgstr "" -#: js/temperament.js:719 +#: js/widgets/temperament.js:860 msgid "number of divisions" msgstr "" -#: js/temperament.js:741 -#: js/temperament.js:858 -#: js/temperament.js:940 -#: js/temperament.js:1033 +#: js/widgets/temperament.js:882 +#: js/widgets/temperament.js:999 +#: js/widgets/temperament.js:1085 +#: js/widgets/temperament.js:1178 msgid "preview" msgstr "" -#: js/temperament.js:788 +#: js/widgets/temperament.js:929 msgid "The Number of divisions is too large." msgstr "" -#: js/temperament.js:921 +#: js/widgets/temperament.js:1066 msgid "recursion" msgstr "" -#: js/temperament.js:1450 +#: js/widgets/temperament.js:1616 msgid "The octave ratio has changed. This changes temperament significantly." msgstr "" -#: js/temperament.js:2087 +#: js/widgets/temperament.js:2248 msgid "Table" msgstr "" -#: js/temperament.js:2185 +#: js/widgets/temperament.js:2356 msgid "Add pitches" msgstr "" -#: js/musickeyboard.js:570 -msgid "Metronome" +#: js/widgets/tempo.js:78 +#: js/widgets/tempo.js:97 +#: js/widgets/tempo.js:99 +#: js/widgets/aiwidget.js:134 +#: js/widgets/aiwidget.js:136 +#: js/widgets/rhythmruler.js:681 +#: js/widgets/rhythmruler.js:683 +#: js/widgets/rhythmruler.js:1864 +#: js/widgets/rhythmruler.js:1866 +#: js/widgets/sampler.js:180 +#: js/widgets/sampler.js:182 +msgid "Pause" msgstr "" -#: js/musickeyboard.js:1296 -#: plugins/rodi.rtp:193 -msgid "duration" +#: js/widgets/tempo.js:113 +msgid "Save tempo" msgstr "" -#: js/musickeyboard.js:2840 -msgid "New action blocks generated!" +#: js/widgets/tempo.js:144 +msgid "speed up" msgstr "" -#: js/musickeyboard.js:2841 -msgid "New action block generated" +#: js/widgets/tempo.js:150 +msgid "slow down" msgstr "" -#: js/musickeyboard.js:2984 -#: js/musickeyboard.js:2992 -msgid "MIDI device present." +#: js/widgets/tempo.js:194 +msgid "Adjust the tempo with the buttons." msgstr "" -#: js/musickeyboard.js:2995 -msgid "No MIDI device found." +#: js/widgets/tempo.js:261 +msgid "Please enter a number between 30 and 1000" msgstr "" -#: js/musickeyboard.js:3000 -msgid "Failed to get MIDI access in browser." +#: js/widgets/tempo.js:268 +#: js/widgets/tempo.js:271 +msgid "The beats per minute must be between 30 and 1000." msgstr "" -#: js/rhythmruler.js:202 -msgid "Save rhythms" +#: js/widgets/tempo.js:287 +msgid "The beats per minute must be below 1000." msgstr "" -#: js/rhythmruler.js:222 -msgid "Save drum machine" +#: js/widgets/tempo.js:303 +msgid "The beats per minute must be above 30" msgstr "" -#: js/rhythmruler.js:263 -#.TRANS: user can tap out a rhythm by clicking on a ruler. -msgid "Tap a rhythm" +#: js/widgets/timbre.js:766 +msgid "Synthesizer" msgstr "" -#: js/rhythmruler.js:342 -#: js/rhythmruler.js:344 -#: js/rhythmruler.js:1481 -#: js/rhythmruler.js:1483 -#: js/sampler.js:110 -#: js/sampler.js:112 -#: js/tempo.js:78 -#: js/tempo.js:97 -#: js/tempo.js:99 -msgid "Pause" +#: js/widgets/timbre.js:789 +msgid "Oscillator" msgstr "" -#: js/rhythmruler.js:478 -msgid "Click on the ruler to divide it." +#: js/widgets/timbre.js:840 +msgid "Envelope" msgstr "" -#: js/rhythmruler.js:603 -#: js/rhythmruler.js:605 -#: js/rhythmruler.js:804 -#: js/rhythmruler.js:806 -#: js/rhythmruler.js:1386 -#: js/rhythmruler.js:1388 -msgid "tap a rhythm" +#: js/widgets/timbre.js:886 +#: planet/js/GlobalTag.js:50 +#.TRANS: On the Planet, we use labels to tag projects. +msgid "Effects" msgstr "" -#: js/rhythmruler.js:1084 -msgid "Maximum value of 256 has been exceeded." +#: js/widgets/timbre.js:904 +msgid "Filter" msgstr "" -#: js/sampler.js:137 -msgid "Warning: Sample is bigger than 1MB." +#: js/widgets/timbre.js:946 +msgid "Add filter" msgstr "" -#: js/sampler.js:142 -msgid "Upload failed: Sample is not a .wav file." +#: js/widgets/timbre.js:987 +msgid "Click on buttons to open the timbre design tools." msgstr "" -#: js/sampler.js:164 -msgid "A new sample block was generated." +#: js/widgets/timbre.js:1273 +msgid "harmonicity" msgstr "" -#: js/sampler.js:255 -msgid "Upload sample" +#: js/widgets/timbre.js:1340 +#: js/widgets/timbre.js:1406 +msgid "modulation index" msgstr "" -#: js/sampler.js:306 -msgid "Save sample" +#: js/widgets/timbre.js:1484 +msgid "vibrato amount" msgstr "" -#: js/sampler.js:697 -#.TRANS: The reference tone is a sound used for comparison. -msgid "reference tone" +#: js/widgets/timbre.js:1919 +msgid "Filter already present." msgstr "" -#: js/tempo.js:113 -msgid "Save tempo" +#: js/widgets/timbre.js:2322 +msgid "delay (MS)" msgstr "" -#: js/tempo.js:144 -msgid "speed up" +#: js/widgets/timbre.js:2507 +msgid "distortion amount" msgstr "" -#: js/tempo.js:150 -msgid "slow down" +#: js/widgets/aiwidget.js:180 +#: js/widgets/sampler.js:227 +msgid "Warning: Sample is bigger than 1MB." msgstr "" -#: js/tempo.js:194 -msgid "Adjust the tempo with the buttons." +#: js/widgets/aiwidget.js:539 +msgid "New start block generated" msgstr "" -#: js/tempo.js:261 -msgid "Please enter a number between 30 and 1000" +#: js/widgets/aiwidget.js:541 +msgid "MIDI loading. This may take some time depending upon the number of notes in the track" msgstr "" -#: js/tempo.js:268 -#: js/tempo.js:271 -msgid "The beats per minute must be between 30 and 1000." +#: js/widgets/aiwidget.js:551 +#: js/widgets/sampler.js:254 +msgid "Upload failed: Sample is not a .wav file." msgstr "" -#: js/tempo.js:287 -msgid "The beats per minute must be below 1000." +#: js/widgets/aiwidget.js:679 +#: js/widgets/sampler.js:432 +msgid "Save sample" msgstr "" -#: js/tempo.js:303 -msgid "The beats per minute must be above 30" +#: js/widgets/aiwidget.js:701 +msgid "AI Music" msgstr "" -#: js/timbre.js:766 -msgid "Synthesizer" +#: js/widgets/arpeggio.js:239 +msgid "Click in the grid to add steps to the arpeggio." msgstr "" -#: js/timbre.js:789 -msgid "Oscillator" +#: js/widgets/help.js:95 +#: js/widgets/help.js:125 +#: js/widgets/help.js:146 +#: js/widgets/help.js:158 +#: js/widgets/help.js:376 +#: js/widgets/help.js:391 +msgid "Take a tour" msgstr "" -#: js/timbre.js:840 -msgid "Envelope" +#: js/widgets/musickeyboard.js:725 +#: js/widgets/phrasemaker.js:584 +msgid "Add note" msgstr "" -#: js/timbre.js:886 -#: js/GlobalTag.js:50 -#.TRANS: On the Planet, we use labels to tag projects. -msgid "Effects" +#: js/widgets/musickeyboard.js:744 +msgid "Metronome" +msgstr "" + +#: js/widgets/musickeyboard.js:1549 +#: plugins/rodi.rtp:193 +msgid "duration" +msgstr "" + +#: js/widgets/musickeyboard.js:3179 +msgid "New action blocks generated" +msgstr "" + +#: js/widgets/musickeyboard.js:3180 +msgid "New action block generated" msgstr "" -#: js/timbre.js:904 -msgid "Filter" +#: js/widgets/musickeyboard.js:3365 +#: js/widgets/musickeyboard.js:3373 +msgid "MIDI device present." msgstr "" -#: js/timbre.js:946 -msgid "Add filter" +#: js/widgets/musickeyboard.js:3376 +msgid "No MIDI device found." msgstr "" -#: js/timbre.js:987 -msgid "Click on buttons to open the timbre design tools." +#: js/widgets/musickeyboard.js:3386 +msgid "Failed to get MIDI access in browser." msgstr "" -#: js/timbre.js:1273 -msgid "harmonicity" +#: js/widgets/phrasemaker.js:574 +msgid "Export" msgstr "" -#: js/timbre.js:1340 -#: js/timbre.js:1406 -msgid "modulation index" +#: js/widgets/phrasemaker.js:581 +msgid "Sort" msgstr "" -#: js/timbre.js:1484 -msgid "vibrato amount" +#: js/widgets/phrasemaker.js:975 +msgid "Click on the table to add notes." msgstr "" -#: js/timbre.js:1919 -msgid "Filter already present." +#: js/widgets/phrasemaker.js:2677 +#: js/widgets/phrasemaker.js:2819 +msgid "tuplet value" msgstr "" -#: js/timbre.js:2322 -msgid "delay (MS)" +#: js/widgets/rhythmruler.js:486 +msgid "Save rhythms" msgstr "" -#: js/timbre.js:2507 -msgid "distortion amount" +#: js/widgets/rhythmruler.js:512 +msgid "Save drum machine" msgstr "" -#: js/meterwidget.js:170 -msgid "Reset" +#: js/widgets/rhythmruler.js:589 +#.TRANS: user can tap out a rhythm by clicking on a ruler. +msgid "Tap a rhythm" msgstr "" -#: js/meterwidget.js:196 -msgid "Click in the circle to select strong beats for the meter." +#: js/widgets/rhythmruler.js:817 +msgid "Click on the ruler to divide it." msgstr "" -#: js/arpeggio.js:239 -msgid "Click in the grid to add steps to the arpeggio." +#: js/widgets/rhythmruler.js:950 +#: js/widgets/rhythmruler.js:952 +#: js/widgets/rhythmruler.js:1152 +#: js/widgets/rhythmruler.js:1154 +#: js/widgets/rhythmruler.js:1765 +#: js/widgets/rhythmruler.js:1767 +msgid "tap a rhythm" msgstr "" -#: js/ProjectStorage.js:243 -msgid "anonymous" +#: js/widgets/rhythmruler.js:1459 +msgid "Maximum value of 256 has been exceeded." msgstr "" -#: js/GlobalCard.js:68 -msgid "Share" +#: js/widgets/sampler.js:237 +msgid "Recording started..." msgstr "" -#: js/GlobalCard.js:74 -msgid "Flags" +#: js/widgets/sampler.js:245 +msgid "Recording complete..." msgstr "" -#: js/LocalCard.js:36 -msgid "View published project" +#: js/widgets/sampler.js:283 +msgid "A new sample block was generated." msgstr "" -#: js/LocalCard.js:42 -msgid "Publish project" +#: js/widgets/sampler.js:378 +msgid "Upload sample" msgstr "" -#: js/LocalCard.js:51 -msgid "Edit project" +#: js/widgets/sampler.js:399 +msgid "Warning: Your sample cannot be loaded because it is >1MB." msgstr "" -#: js/LocalCard.js:52 -msgid "Delete project" +#: js/widgets/sampler.js:448 +msgid "Toggle Mic" msgstr "" -#: js/LocalCard.js:53 -msgid "Download project" +#: js/widgets/sampler.js:458 +msgid "Playback" msgstr "" -#: js/LocalCard.js:55 -msgid "Duplicate project" +#: js/widgets/sampler.js:979 +#.TRANS: The reference tone is a sound used for comparison. +msgid "reference tone" msgstr "" -#: js/GlobalTag.js:28 +#: planet/js/GlobalTag.js:28 #.TRANS: On the Planet, we use labels to tag projects. msgid "All Projects" msgstr "" -#: js/GlobalTag.js:30 -#: js/StringHelper.js:37 +#: planet/js/GlobalTag.js:30 +#: planet/js/StringHelper.js:37 #.TRANS: On the Planet, we use labels to tag projects. msgid "My Projects" msgstr "" -#: js/GlobalTag.js:32 +#: planet/js/GlobalTag.js:32 #.TRANS: On the Planet, we use labels to tag projects. msgid "Examples" msgstr "" -#: js/GlobalTag.js:34 +#: planet/js/GlobalTag.js:34 #.TRANS: On the Planet, we use labels to tag projects. msgid "Music" msgstr "" -#: js/GlobalTag.js:36 +#: planet/js/GlobalTag.js:36 #.TRANS: On the Planet, we use labels to tag projects. msgid "Art" msgstr "" -#: js/GlobalTag.js:38 +#: planet/js/GlobalTag.js:38 #.TRANS: On the Planet, we use labels to tag projects. msgid "Math" msgstr "" -#: js/GlobalTag.js:40 +#: planet/js/GlobalTag.js:40 #.TRANS: On the Planet, we use labels to tag projects. msgid "Interactive" msgstr "" -#: js/GlobalTag.js:42 +#: planet/js/GlobalTag.js:42 #.TRANS: On the Planet, we use labels to tag projects. msgid "Design" msgstr "" -#: js/GlobalTag.js:44 +#: planet/js/GlobalTag.js:44 #.TRANS: On the Planet, we use labels to tag projects. msgid "Game" msgstr "" -#: js/GlobalTag.js:46 +#: planet/js/GlobalTag.js:46 #.TRANS: On the Planet, we use labels to tag projects. msgid "Media" msgstr "" -#: js/GlobalTag.js:48 +#: planet/js/GlobalTag.js:48 #.TRANS: On the Planet, we use labels to tag projects. msgid "Sensors" msgstr "" -#: js/GlobalTag.js:52 +#: planet/js/GlobalTag.js:52 #.TRANS: On the Planet, we use labels to tag projects. msgid "Code Snippet" msgstr "" -#: js/helper.js:149 -#: js/StringHelper.js:49 -msgid "Show more tags" +#: planet/js/LocalCard.js:36 +msgid "View published project" msgstr "" -#: js/helper.js:150 -msgid "Show fewer tags" +#: planet/js/LocalCard.js:42 +msgid "Publish project" +msgstr "" + +#: planet/js/LocalCard.js:51 +msgid "Edit project" +msgstr "" + +#: planet/js/LocalCard.js:52 +msgid "Delete project" +msgstr "" + +#: planet/js/LocalCard.js:53 +msgid "Download project" +msgstr "" + +#: planet/js/LocalCard.js:55 +msgid "Duplicate project" +msgstr "" + +#: planet/js/ProjectStorage.js:243 +msgid "anonymous" +msgstr "" + +#: planet/js/SaveInterface.js:34 +msgid "Open in Music Blocks" +msgstr "" + +#: planet/js/SaveInterface.js:35 +msgid "Open in Turtle Blocks" msgstr "" -#: js/ProjectViewer.js:30 +#: planet/js/GlobalCard.js:68 +msgid "Share" +msgstr "" + +#: planet/js/GlobalCard.js:74 +msgid "Flags" +msgstr "" + +#: planet/js/GlobalPlanet.js:35 +msgid "No results found." +msgstr "" + +#: planet/js/GlobalPlanet.js:51 +msgid "Remix of" +msgstr "" + +#: planet/js/GlobalPlanet.js:509 +msgid "Cannot connect to server" +msgstr "" + +#: planet/js/ProjectViewer.js:30 msgid "Error: Report could not be submitted. Try again later." msgstr "" -#: js/ProjectViewer.js:31 +#: planet/js/ProjectViewer.js:31 msgid "Thank you for reporting this project. A moderator will review the project shortly, to verify violation of the Sugar Labs Code of Conduct." msgstr "" -#: js/ProjectViewer.js:32 -#: js/StringHelper.js:62 -#: js/StringHelper.js:64 -#: js/StringHelper.js:68 +#: planet/js/ProjectViewer.js:32 +#: planet/js/StringHelper.js:62 +#: planet/js/StringHelper.js:64 +#: planet/js/StringHelper.js:68 msgid "Report Project" msgstr "" -#: js/ProjectViewer.js:33 -#: js/StringHelper.js:63 +#: planet/js/ProjectViewer.js:33 +#: planet/js/StringHelper.js:63 msgid "Project Reported" msgstr "" -#: js/ProjectViewer.js:34 +#: planet/js/ProjectViewer.js:34 msgid "Report description required" msgstr "" -#: js/ProjectViewer.js:35 +#: planet/js/ProjectViewer.js:35 msgid "Report description too long" msgstr "" -#: js/StringHelper.js:30 +#: planet/js/Publisher.js:30 +msgid "Feature unavailable - cannot connect to server. Reload Music Blocks to try again." +msgstr "" + +#: planet/js/Publisher.js:220 +#: planet/js/Publisher.js:237 +msgid "This field is required" +msgstr "" + +#: planet/js/Publisher.js:227 +msgid "Title too long" +msgstr "" + +#: planet/js/Publisher.js:244 +msgid "Description too long" +msgstr "" + +#: planet/js/Publisher.js:341 +msgid "Server Error" +msgstr "" + +#: planet/js/Publisher.js:341 +msgid "Try Again" +msgstr "" + +#: planet/js/StringHelper.js:30 msgid "Planet" msgstr "" -#: js/StringHelper.js:31 +#: planet/js/StringHelper.js:31 msgid "Close Planet" msgstr "" -#: js/StringHelper.js:32 +#: planet/js/StringHelper.js:32 msgid "Open project from file" msgstr "" -#: js/StringHelper.js:34 +#: planet/js/StringHelper.js:34 msgid "Local" msgstr "" -#: js/StringHelper.js:35 +#: planet/js/StringHelper.js:35 msgid "Global" msgstr "" -#: js/StringHelper.js:36 +#: planet/js/StringHelper.js:36 msgid "Search for a project" msgstr "" -#: js/StringHelper.js:38 +#: planet/js/StringHelper.js:38 msgid "Publish Project" msgstr "" -#: js/StringHelper.js:40 +#: planet/js/StringHelper.js:40 msgid "Tags (max 5)" msgstr "" -#: js/StringHelper.js:41 -#: js/StringHelper.js:61 +#: planet/js/StringHelper.js:41 +#: planet/js/StringHelper.js:61 msgid "Description" msgstr "" -#: js/StringHelper.js:42 -#: js/StringHelper.js:67 +#: planet/js/StringHelper.js:42 +#: planet/js/StringHelper.js:67 msgid "Submit" msgstr "" -#: js/StringHelper.js:43 -#: js/StringHelper.js:47 +#: planet/js/StringHelper.js:43 +#: planet/js/StringHelper.js:47 msgid "Cancel" msgstr "" -#: js/StringHelper.js:44 +#: planet/js/StringHelper.js:44 msgid "Delete \\"\\"?" msgstr "" -#: js/StringHelper.js:45 +#: planet/js/StringHelper.js:45 msgid "Permanently delete project \\"\\"?" msgstr "" -#: js/StringHelper.js:48 +#: planet/js/StringHelper.js:48 msgid "Explore Projects" msgstr "" -#: js/StringHelper.js:50 +#: planet/js/StringHelper.js:49 +#: planet/js/helper.js:149 +msgid "Show more tags" +msgstr "" + +#: planet/js/StringHelper.js:50 msgid "Most recent" msgstr "" -#: js/StringHelper.js:51 +#: planet/js/StringHelper.js:51 msgid "Most liked" msgstr "" -#: js/StringHelper.js:52 +#: planet/js/StringHelper.js:52 msgid "Most downloaded" msgstr "" -#: js/StringHelper.js:53 +#: planet/js/StringHelper.js:53 msgid "A-Z" msgstr "" -#: js/StringHelper.js:54 +#: planet/js/StringHelper.js:54 msgid "Sort by" msgstr "" -#: js/StringHelper.js:55 +#: planet/js/StringHelper.js:55 msgid "Load More Projects" msgstr "" -#: js/StringHelper.js:56 +#: planet/js/StringHelper.js:56 msgid "Last Updated" msgstr "" -#: js/StringHelper.js:57 +#: planet/js/StringHelper.js:57 msgid "Creation Date" msgstr "" -#: js/StringHelper.js:58 +#: planet/js/StringHelper.js:58 msgid "Number of Downloads:" msgstr "" -#: js/StringHelper.js:59 +#: planet/js/StringHelper.js:59 msgid "Number of Likes:" msgstr "" -#: js/StringHelper.js:60 +#: planet/js/StringHelper.js:60 msgid "Tags:" msgstr "" -#: js/StringHelper.js:65 +#: planet/js/StringHelper.js:65 msgid "Report projects which violate the Sugar Labs Code of Conduct." msgstr "" -#: js/StringHelper.js:66 +#: planet/js/StringHelper.js:66 msgid "Reason for reporting project" msgstr "" -#: js/StringHelper.js:70 +#: planet/js/StringHelper.js:70 msgid "Download as File" msgstr "" -#: js/GlobalPlanet.js:35 -msgid "No results found." -msgstr "" - -#: js/GlobalPlanet.js:51 -msgid "Remix of" -msgstr "" - -#: js/GlobalPlanet.js:509 -msgid "Cannot connect to server" -msgstr "" - -#: js/Publisher.js:30 -msgid "Feature unavailable - cannot connect to server. Reload Music Blocks to try again." -msgstr "" - -#: js/Publisher.js:218 -#: js/Publisher.js:235 -msgid "This field is required" -msgstr "" - -#: js/Publisher.js:225 -msgid "Title too long" +#: planet/js/helper.js:150 +msgid "Show fewer tags" msgstr "" -#: js/Publisher.js:242 -msgid "Description too long" +#: plugins/accelerometer.rtp:48 +msgid "motion x" msgstr "" -#: js/Publisher.js:339 -msgid "Server Error" +#: plugins/accelerometer.rtp:56 +msgid "motion y" msgstr "" -#: js/Publisher.js:339 -msgid "Try Again" +#: plugins/accelerometer.rtp:64 +msgid "motion z" msgstr "" -#: js/SaveInterface.js:34 -msgid "Open in Music Blocks" +#: plugins/facebook.rtp:27 +msgid "publish" msgstr "" -#: js/SaveInterface.js:35 -msgid "Open in Turtle Blocks" +#: plugins/maths.rtp:62 +msgid "power" msgstr "" -#: plugins/weather.rtp:68 -#: plugins/weather.rtp:97 -msgid "Days ahead must be in the range of -1 to 5." +#: plugins/maths.rtp:62 +msgid "base" msgstr "" -#: plugins/weather.rtp:122 -msgid "forecast" +#: plugins/maths.rtp:62 +msgid "exp" msgstr "" -#: plugins/weather.rtp:123 -#: plugins/weather.rtp:137 -#: plugins/weather.rtp:150 -msgid "city" +#: plugins/maths.rtp:99 +msgid "floor" msgstr "" -#: plugins/weather.rtp:124 -#: plugins/weather.rtp:138 -#: plugins/weather.rtp:151 -msgid "day" +#: plugins/maths.rtp:104 +msgid "ceiling" msgstr "" -#: plugins/weather.rtp:136 -msgid "high" +#: plugins/maths.rtp:109 +msgid "to degrees" msgstr "" -#: plugins/weather.rtp:149 -msgid "low" +#: plugins/maths.rtp:114 +msgid "to radians" msgstr "" #: plugins/nutrition.rtp:104 @@ -7751,45 +7753,6 @@ msgstr "" msgid "water" msgstr "" -#: plugins/maths.rtp:62 -#: plugins/examples.rtp:93 -msgid "power" -msgstr "" - -#: plugins/maths.rtp:62 -#: plugins/examples.rtp:93 -msgid "base" -msgstr "" - -#: plugins/maths.rtp:62 -#: plugins/examples.rtp:93 -msgid "exp" -msgstr "" - -#: plugins/maths.rtp:99 -#: plugins/examples.rtp:130 -msgid "floor" -msgstr "" - -#: plugins/maths.rtp:104 -#: plugins/examples.rtp:135 -msgid "ceiling" -msgstr "" - -#: plugins/maths.rtp:109 -#: plugins/examples.rtp:140 -msgid "to degrees" -msgstr "" - -#: plugins/maths.rtp:114 -#: plugins/examples.rtp:145 -msgid "to radians" -msgstr "" - -#: plugins/facebook.rtp:27 -msgid "publish" -msgstr "" - #: plugins/rodi.rtp:172 msgid "blink" msgstr "" @@ -7818,18 +7781,69 @@ msgstr "" msgid "move" msgstr "" -#: plugins/accelerometer.rtp:48 -msgid "motion x" +#: plugins/weather.rtp:68 +#: plugins/weather.rtp:97 +msgid "Days ahead must be in the range of -1 to 5." msgstr "" -#: plugins/accelerometer.rtp:56 -msgid "motion y" +#: plugins/weather.rtp:122 +msgid "forecast" msgstr "" -#: plugins/accelerometer.rtp:64 -msgid "motion z" +#: plugins/weather.rtp:123 +#: plugins/weather.rtp:137 +#: plugins/weather.rtp:150 +msgid "city" +msgstr "" + +#: plugins/weather.rtp:124 +#: plugins/weather.rtp:138 +#: plugins/weather.rtp:151 +msgid "day" +msgstr "" + +#: plugins/weather.rtp:136 +msgid "high" +msgstr "" + +#: plugins/weather.rtp:149 +msgid "low" msgstr "" +#~msgid ""Toggle Fullscreen" +#~msgstr ""전체 화면 전환" + +#: js/toolbar.js:70 + +#: js/toolbar.js:130 + +#: js/toolbar.js:194 + +#: js/toolbar.js:249 + +#~msgid "Toggle JavaScript Editor" +#~msgstr "" + +#: js/EnsembleBlocks.js:643 + +#~msgid "The Turrle pitch block returns the current pitch number being played by the specified turtle." +#~msgstr "" + +#: js/PitchActions.js:88 + +#~msgid "The Scalar Step Block must be used inside of a Note Block." +#~msgstr "" + +#: js/PitchActions.js:107 + +#~msgid "The Scalar Step Block must be preceded by a Pitch Block." +#~msgstr "" + +#: js/musickeyboard.js:2840 + +#~msgid "New action blocks generated!" +#~msgstr "" + #: js/toolbar.js:110 #: js/toolbar.js:204 @@ -8170,11 +8184,6 @@ msgstr "" #~msgid "The Time block returns the number of seconds that the program has been running." #~msgstr "" -#: js/help.js:95 - -#~msgid "Take a tour" -#~msgstr "" - #: js/GlobalCard.js:48 #~msgid "More Details" @@ -11073,11 +11082,6 @@ msgstr "" #~msgid "The save-stack button saves a stack onto a custom palette. It appears after a \"long press\" on a stack." #~msgstr "" -#: js/musicutils.js:254 - -#~msgid "Custom" -#~msgstr "" - #: js/basicblocks.js:4785 #~msgid "Rhythm" diff --git a/po/kos.po b/po/kos.po index 35a3c4238b..313cc8c111 100644 --- a/po/kos.po +++ b/po/kos.po @@ -2129,276 +2129,131 @@ #: js/planetInterface.js:104 #: js/planetInterface.js:104 #: js/planetInterface.js:104 -msgid "project undefined" -msgstr "" - -#: js/logo.js:61 -msgid "Not a valid pitch name" -msgstr "" - -#: js/logo.js:507 -#: js/ProgramBlocks.js:258 -#: js/ProgramBlocks.js:427 -msgid "You must select a file." -msgstr "" - -#: js/logo.js:1184 -#: js/turtles.js:118 -#: js/turtle-painter.js:1192 -#: js/turtle-painter.js:1193 -#: js/block.js:1463 -#: js/lilypond.js:757 -#: js/lilypond.js:921 -#: js/lilypond.js:959 -#: js/ActionBlocks.js:1223 -#: js/ProgramBlocks.js:1267 -msgid "start" -msgstr "" - -#: js/logo.js:1696 -msgid "Playback is ready." -msgstr "" - -#: js/blocks.js:1011 -#: js/blocks.js:3427 -#: js/blocks.js:3428 -#: js/blocks.js:3653 -#: js/blocks.js:4012 -#: js/blocks.js:4205 -#: js/blocks.js:5343 -#: js/blocks.js:6474 -#: js/palette.js:527 -#: js/palette.js:536 -#: js/palette.js:545 -#: js/palette.js:554 -#: js/palette.js:1131 -#: js/palette.js:1142 -#: js/palette.js:1153 -#: js/palette.js:1164 -#: js/palette.js:1183 -#: js/rubrics.js:529 -#: js/macros.js:170 -#: js/macros.js:266 -#: js/macros.js:267 -#: js/macros.js:276 -#: js/macros.js:828 -#: js/block.js:1449 -#: js/block.js:4164 -#: js/block.js:4182 -#: js/block.js:4193 -#: js/turtledefs.js:128 -#: js/turtledefs.js:230 -#: js/ActionBlocks.js:254 -#: js/ActionBlocks.js:307 -#: js/ActionBlocks.js:617 -#: js/ActionBlocks.js:716 -#: js/ActionBlocks.js:961 -#: js/ActionBlocks.js:1049 -#: js/ActionBlocks.js:1322 -#: js/ActionBlocks.js:1325 -#: js/ActionBlocks.js:1337 -#: js/ActionBlocks.js:1404 -#: js/MeterBlocks.js:715 -#: js/MeterBlocks.js:768 -#: js/MeterBlocks.js:831 -#: js/MeterBlocks.js:892 -#: js/phrasemaker.js:4412 -#: js/musickeyboard.js:2647 -#: js/rhythmruler.js:1928 -#: js/rhythmruler.js:1935 -#: js/rhythmruler.js:2119 -#: js/rhythmruler.js:2126 -msgid "action" -msgstr "" - -#: js/blocks.js:1205 -#: js/blocks.js:3380 -#: js/blocks.js:3770 -#: js/blocks.js:3801 -#: js/blocks.js:3850 -#: js/blocks.js:3885 -#: js/blocks.js:6497 -#: js/palette.js:509 -#: js/palette.js:638 -#: js/palette.js:1107 -#: js/BoxesBlocks.js:282 -#: js/BoxesBlocks.js:285 -#: js/BoxesBlocks.js:405 -#: js/BoxesBlocks.js:594 -msgid "box" -msgstr "" - -#: js/blocks.js:1680 -msgid "Consider breaking this stack into parts." +#: js/SaveInterface.js:59 +#: js/SaveInterface.js:61 +#: js/SaveInterface.js:93 +msgid "Music Blocks Project" msgstr "" -#: js/blocks.js:2408 -#: js/palette.js:653 -#: js/MediaBlocks.js:602 -msgid "open file" +#: js/SaveInterface.js:63 +msgid "This project was created in Music Blocks" msgstr "" -#: js/blocks.js:2415 -#: js/blocks.js:2423 -#: js/activity.js:1875 -msgid "audio file" +#: js/SaveInterface.js:67 +msgid "Music Blocks is a Free/Libre Software application." msgstr "" -#: js/blocks.js:2536 -#: js/blocks.js:3147 -#: js/block.js:3543 -msgid "on2" +#: js/SaveInterface.js:69 +msgid "The source code can be accessed at" msgstr "" -#: js/blocks.js:2538 -#: js/blocks.js:3149 -#: js/block.js:3545 -msgid "off" +#: js/SaveInterface.js:72 +msgid "For more information, please consult the" msgstr "" -#: js/blocks.js:2543 -#: js/blocks.js:3154 -#: js/palette.js:618 -#: js/block.js:3466 -#: js/BooleanBlocks.js:77 -#: js/BooleanBlocks.js:167 -#: js/BooleanBlocks.js:251 -#: js/BooleanBlocks.js:335 -#: js/BooleanBlocks.js:433 -#: js/BooleanBlocks.js:539 -#: js/BooleanBlocks.js:640 -#: js/BooleanBlocks.js:741 -#: js/BooleanBlocks.js:847 -#: js/BooleanBlocks.js:948 -#: js/BooleanBlocks.js:1033 -#: js/SensorsBlocks.js:910 -msgid "true" +#: js/SaveInterface.js:76 +#: js/turtledefs.js:795 +msgid "Music Blocks Guide" msgstr "" -#: js/blocks.js:2545 -#: js/blocks.js:3156 -#: js/block.js:3466 -#: js/BooleanBlocks.js:79 -#: js/BooleanBlocks.js:169 -#: js/BooleanBlocks.js:253 -#: js/BooleanBlocks.js:337 -#: js/BooleanBlocks.js:435 -#: js/BooleanBlocks.js:541 -#: js/BooleanBlocks.js:642 -#: js/BooleanBlocks.js:743 -#: js/BooleanBlocks.js:849 -#: js/BooleanBlocks.js:950 -#: js/SensorsBlocks.js:912 -msgid "false" +#: js/SaveInterface.js:83 +msgid "Alternatively, open the file in Music Blocks using the Load project button." msgstr "" -#: js/blocks.js:3183 -#: js/palette.js:574 -#: js/MediaBlocks.js:892 -#: js/MediaBlocks.js:963 -msgid "text" +#: js/SaveInterface.js:85 +msgid "Project Code" msgstr "" -#: js/blocks.js:3379 -#: js/palette.js:641 -#: js/palette.js:642 -#: js/BoxesBlocks.js:514 -msgid "store in box" +#: js/SaveInterface.js:87 +msgid "This code stores data about the blocks in a project." msgstr "" -#: js/blocks.js:3384 -#: js/blocks.js:3824 -#: js/blocks.js:3859 -#: js/blocks.js:3894 -#: js/blocks.js:5773 -#: js/blocks.js:5794 -#: js/BoxesBlocks.js:772 -msgid "box1" +#: js/SaveInterface.js:89 +msgid "Show" msgstr "" -#: js/blocks.js:3386 -#: js/blocks.js:3826 -#: js/blocks.js:3861 -#: js/blocks.js:3896 -#: js/blocks.js:5775 -#: js/blocks.js:5796 -#: js/BoxesBlocks.js:663 -msgid "box2" +#: js/SaveInterface.js:91 +msgid "Hide" msgstr "" -#: js/blocks.js:4058 -#: js/palette.js:639 -#: js/palette.js:644 -#: js/palette.js:1043 -#: js/BoxesBlocks.js:591 -msgid "store in" +#: js/SaveInterface.js:131 +#: js/SaveInterface.js:204 +#: js/SaveInterface.js:262 +#: js/SaveInterface.js:389 +#: js/SaveInterface.js:417 +#: js/activity.js:4884 +#: planet/js/ProjectStorage.js:27 +#: planet/js/GlobalPlanet.js:467 +#: planet/js/GlobalPlanet.js:469 +#: planet/js/GlobalPlanet.js:495 +#.TRANS: default project title when saving as Lilypond +msgid "My Project" msgstr "" -#: js/blocks.js:4058 -#: js/EnsembleBlocks.js:391 -#: js/EnsembleBlocks.js:402 -#: js/MediaBlocks.js:746 -#: js/ProgramBlocks.js:390 -#: js/ProgramBlocks.js:495 -#: js/ProgramBlocks.js:658 -#: js/BoxesBlocks.js:595 -#: js/PitchBlocks.js:656 -#: js/PitchBlocks.js:932 -#: js/PitchBlocks.js:1827 -#: js/ToneBlocks.js:1025 -#: js/DictBlocks.js:215 -#: js/DictBlocks.js:289 -msgid "name" +#: js/SaveInterface.js:197 +#: planet/js/SaveInterface.js:58 +msgid "No description provided" msgstr "" -#: js/blocks.js:4058 -#: js/RhythmBlocks.js:1130 -#: js/BoxesBlocks.js:75 -#: js/BoxesBlocks.js:595 -#: js/HeapBlocks.js:544 -#: js/DictBlocks.js:289 -#: js/DictBlocks.js:430 -msgid "value" +#: js/SaveInterface.js:332 +msgid "Your recording is in progress." msgstr "" -#: js/blocks.js:4907 -msgid "There is no block selected." +#: js/SaveInterface.js:401 +#.TRANS: File name prompt for save as Lilypond +msgid "File name" msgstr "" -#: js/blocks.js:5002 -#: js/MediaBlocks.js:888 -msgid "show" +#: js/SaveInterface.js:403 +#: planet/js/StringHelper.js:39 +#.TRANS: Project title prompt for save as Lilypond +msgid "Project title" msgstr "" -#: js/blocks.js:5005 -#: js/MediaBlocks.js:803 -#.TRANS: Avatar is the image used to determine the appearance of the mouse. -msgid "avatar" +#: js/SaveInterface.js:405 +#.TRANS: Project title prompt for save as Lilypond +msgid "Project author" msgstr "" -#: js/blocks.js:5008 -#: js/ToneBlocks.js:1010 -#: js/sampler.js:693 -#.TRANS: The sound sample that the user uploads. -msgid "sample" +#: js/SaveInterface.js:407 +#.TRANS: MIDI prompt for save as Lilypond +msgid "Include MIDI output?" msgstr "" -#: js/turtles.js:874 -msgid "Grid" +#: js/SaveInterface.js:409 +#.TRANS: Guitar prompt for save as Lilypond +msgid "Include guitar tablature output?" msgstr "" -#: js/turtles.js:891 -#: js/turtledefs.js:626 -msgid "Clean" +#: js/SaveInterface.js:411 +#.TRANS: Lilypond is a scripting language for generating sheet music +msgid "Save as Lilypond" msgstr "" -#: js/turtles.js:912 -#: js/turtledefs.js:632 -msgid "Collapse" +#: js/SaveInterface.js:426 +#: js/blocks/EnsembleBlocks.js:75 +#: js/blocks/EnsembleBlocks.js:154 +#: js/blocks/EnsembleBlocks.js:216 +#: js/blocks/EnsembleBlocks.js:302 +#: js/blocks/EnsembleBlocks.js:348 +#: js/blocks/EnsembleBlocks.js:389 +#: js/blocks/EnsembleBlocks.js:441 +#: js/blocks/EnsembleBlocks.js:490 +#: js/blocks/EnsembleBlocks.js:536 +#: js/blocks/EnsembleBlocks.js:583 +#: js/blocks/EnsembleBlocks.js:637 +#: js/blocks/EnsembleBlocks.js:753 +#: js/blocks/EnsembleBlocks.js:840 +#: js/blocks/EnsembleBlocks.js:899 +#: js/blocks/EnsembleBlocks.js:942 +#: js/blocks/EnsembleBlocks.js:1212 +#: js/blocks/EnsembleBlocks.js:1280 +#.TRANS: default project author when saving as Lilypond +msgid "Mr. Mouse" msgstr "" -#: js/turtles.js:940 -msgid "Expand" +#: js/SaveInterface.js:573 +msgid "The Lilypond code is copied to clipboard. You can paste it here: " msgstr "" #: js/languagebox.js:198 @@ -2409,6933 +2264,7487 @@ msgstr "" msgid "Music Blocks is already set to this language." msgstr "" -#: js/piemenus.js:200 -#: js/musicutils.js:808 -#: js/musicutils.js:824 -#: js/phrasemaker.js:1672 -#: js/musickeyboard.js:2041 -#: js/sampler.js:544 -#.TRANS: double sharp is a music term related to pitch -msgid "double sharp" +#: js/planetInterface.js:131 +msgid "project undefined" msgstr "" -#: js/piemenus.js:201 -#: js/PitchBlocks.js:1510 -#: js/PitchActions.js:580 -#: js/musicutils.js:806 -#: js/musicutils.js:825 -#: js/phrasemaker.js:1673 -#: js/musickeyboard.js:2042 -#: js/sampler.js:545 -#.TRANS: sharp is a half-step up in pitch -#.TRANS: sharp is a music term related to pitch -msgid "sharp" +#: js/rubrics.js:523 +#: js/turtledefs.js:119 +#: js/turtledefs.js:221 +#: js/blocks/RhythmBlockPaletteBlocks.js:52 +#: js/blocks/RhythmBlockPaletteBlocks.js:234 +#: js/blocks/ProgramBlocks.js:745 +#: js/widgets/rhythmruler.js:2057 +#: js/widgets/rhythmruler.js:2064 +#: js/widgets/rhythmruler.js:2133 +#: js/widgets/rhythmruler.js:2140 +#: js/widgets/rhythmruler.js:2219 +#.TRANS: an arrangement of notes based on duration +msgid "rhythm" msgstr "" -#: js/piemenus.js:202 -#: js/musicutils.js:804 -#: js/musicutils.js:826 -#: js/phrasemaker.js:1674 -#: js/musickeyboard.js:2043 -#: js/sampler.js:546 -#.TRANS: natural is a music term related to pitch -msgid "natural" +#: js/rubrics.js:524 +#: js/turtledefs.js:121 +#: js/turtledefs.js:223 +#: js/block-verbose.js:2622 +#: js/block.js:2550 +#: js/blocks/IntervalsBlocks.js:63 +#: js/blocks/SensorsBlocks.js:178 +#: js/blocks/PitchBlocks.js:1839 +#: js/blocks/PitchBlocks.js:1853 +#: js/widgets/musickeyboard.js:1935 +#: js/widgets/phrasemaker.js:1036 +#.TRANS: pitch number +#.TRANS: pitch number +#.TRANS: we specify pitch in terms of a name and an octave. The name can be CDEFGAB or Do Re Mi Fa Sol La Ti. Octave is a number between 1 and 8. +msgid "pitch" msgstr "" -#: js/piemenus.js:203 -#: js/PitchBlocks.js:1469 -#: js/PitchActions.js:583 -#: js/musicutils.js:802 -#: js/musicutils.js:827 -#: js/phrasemaker.js:1675 -#: js/musickeyboard.js:2044 -#: js/sampler.js:547 -#.TRANS: flat is a half-step down in pitch -#.TRANS: flat is a music term related to pitch -msgid "flat" +#: js/rubrics.js:525 +#: js/turtledefs.js:123 +#: js/turtledefs.js:225 +msgid "tone" msgstr "" -#: js/piemenus.js:204 -#: js/musicutils.js:800 -#: js/musicutils.js:828 -#: js/phrasemaker.js:1676 -#: js/musickeyboard.js:2045 -#: js/sampler.js:548 -#.TRANS: double flat is a music term related to pitch -msgid "double flat" +#: js/rubrics.js:526 +#: js/lilypond.js:605 +#: js/lilypond.js:904 +#: js/lilypond.js:910 +#: js/lilypond.js:948 +msgid "mouse" msgstr "" -#: js/piemenus.js:2861 -#: js/PitchBlocks.js:1357 -#: js/musicutils.js:627 -#.TRANS: unison means the note is the same as the current note -#.TRANS: unison is a music term related to intervals -msgid "unison" +#: js/rubrics.js:527 +#: js/turtledefs.js:132 +#: js/turtledefs.js:234 +#: js/widgets/phrasemaker.js:1040 +msgid "pen" msgstr "" -#: js/piemenus.js:3015 -#: js/piemenus.js:3088 -#: js/musicutils.js:635 -#: js/musicutils.js:810 -#: js/musicutils.js:912 -#.TRANS: major is a music term related to intervals and mode -msgid "major" +#: js/rubrics.js:528 +#: js/turtledefs.js:133 +#: js/turtledefs.js:235 +#: js/blocks/NumberBlocks.js:981 +#: js/blocks/PitchBlocks.js:1717 +#: js/blocks/PitchBlocks.js:1758 +msgid "number" msgstr "" -#: js/piemenus.js:3015 -#: js/piemenus.js:3088 -#: js/musicutils.js:653 -#.TRANS: modal scale for music -msgid "ionian" +#: js/rubrics.js:529 +#: js/turtledefs.js:127 +#: js/turtledefs.js:229 +msgid "flow" msgstr "" -#: js/piemenus.js:3017 -#: js/piemenus.js:3092 -#: js/musicutils.js:633 -#: js/musicutils.js:811 -#: js/musicutils.js:909 -#.TRANS: minor is a music term related to intervals and mode -msgid "minor" +#: js/rubrics.js:530 +#: js/turtledefs.js:128 +#: js/turtledefs.js:230 +#: js/block-verbose.js:1609 +#: js/block-verbose.js:4559 +#: js/block-verbose.js:4577 +#: js/block-verbose.js:4588 +#: js/block.js:1573 +#: js/block.js:4483 +#: js/block.js:4501 +#: js/block.js:4512 +#: js/blocks.js:1018 +#: js/blocks.js:3491 +#: js/blocks.js:3492 +#: js/blocks.js:3717 +#: js/blocks.js:4076 +#: js/blocks.js:4269 +#: js/blocks.js:5432 +#: js/blocks.js:6563 +#: js/macros.js:170 +#: js/macros.js:266 +#: js/macros.js:267 +#: js/macros.js:276 +#: js/macros.js:828 +#: js/palette.js:527 +#: js/palette.js:536 +#: js/palette.js:545 +#: js/palette.js:554 +#: js/palette.js:1129 +#: js/palette.js:1140 +#: js/palette.js:1151 +#: js/palette.js:1162 +#: js/palette.js:1181 +#: js/blocks/ActionBlocks.js:254 +#: js/blocks/ActionBlocks.js:307 +#: js/blocks/ActionBlocks.js:617 +#: js/blocks/ActionBlocks.js:716 +#: js/blocks/ActionBlocks.js:961 +#: js/blocks/ActionBlocks.js:1049 +#: js/blocks/ActionBlocks.js:1322 +#: js/blocks/ActionBlocks.js:1325 +#: js/blocks/ActionBlocks.js:1337 +#: js/blocks/ActionBlocks.js:1404 +#: js/blocks/MeterBlocks.js:715 +#: js/blocks/MeterBlocks.js:768 +#: js/blocks/MeterBlocks.js:831 +#: js/blocks/MeterBlocks.js:892 +#: js/widgets/musickeyboard.js:2986 +#: js/widgets/phrasemaker.js:4913 +#: js/widgets/rhythmruler.js:2319 +#: js/widgets/rhythmruler.js:2326 +#: js/widgets/rhythmruler.js:2511 +#: js/widgets/rhythmruler.js:2518 +msgid "action" msgstr "" -#: js/piemenus.js:3017 -#: js/piemenus.js:3092 -#: js/musicutils.js:663 -#.TRANS: modal scale for music -msgid "aeolian" +#: js/rubrics.js:531 +#: js/turtledefs.js:136 +#: js/turtledefs.js:238 +msgid "sensors" msgstr "" -#: js/piemenus.js:3407 -msgid "Duplicate" +#: js/rubrics.js:532 +#: js/turtledefs.js:135 +#: js/turtledefs.js:237 +#: js/blocks/MediaBlocks.js:930 +msgid "media" msgstr "" -#: js/piemenus.js:3408 -#: js/turtledefs.js:534 -msgid "Extract" +#: js/rubrics.js:533 +msgid "mice" msgstr "" -#: js/piemenus.js:3409 -msgid "Move to trash" +#: js/toolbar.js:48 +#: js/toolbar.js:109 +msgid "About Music Blocks" msgstr "" -#: js/piemenus.js:3410 -#: js/timbre.js:968 -#: js/StringHelper.js:69 -msgid "Close" +#: js/toolbar.js:49 +#: js/toolbar.js:110 +#: js/toolbar.js:175 +#: js/toolbar.js:231 +#: js/turtledefs.js:445 +#: js/turtledefs.js:482 +#: js/activity.js:2660 +#: js/activity.js:2671 +#: js/activity.js:2902 +#: js/widgets/modewidget.js:77 +#: js/widgets/meterwidget.js:185 +#: js/widgets/pitchdrummatrix.js:147 +#: js/widgets/pitchdrummatrix.js:687 +#: js/widgets/pitchdrummatrix.js:689 +#: js/widgets/pitchdrummatrix.js:741 +#: js/widgets/pitchdrummatrix.js:743 +#: js/widgets/pitchdrummatrix.js:758 +#: js/widgets/pitchdrummatrix.js:760 +#: js/widgets/pitchdrummatrix.js:789 +#: js/widgets/pitchdrummatrix.js:791 +#: js/widgets/pitchstaircase.js:121 +#: js/widgets/temperament.js:610 +#: js/widgets/temperament.js:613 +#: js/widgets/temperament.js:673 +#: js/widgets/temperament.js:675 +#: js/widgets/temperament.js:2017 +#: js/widgets/temperament.js:2019 +#: js/widgets/tempo.js:84 +#: js/widgets/tempo.js:86 +#: js/widgets/timbre.js:432 +#: js/widgets/timbre.js:434 +#: js/widgets/timbre.js:465 +#: js/widgets/timbre.js:467 +#: js/widgets/timbre.js:746 +#: js/widgets/aiwidget.js:647 +#: js/widgets/aiwidget.js:654 +#: js/widgets/aiwidget.js:656 +#: js/widgets/arpeggio.js:90 +#: js/widgets/arpeggio.js:547 +#: js/widgets/arpeggio.js:549 +#: js/widgets/arpeggio.js:644 +#: js/widgets/arpeggio.js:646 +#: js/widgets/musickeyboard.js:676 +#: js/widgets/musickeyboard.js:872 +#: js/widgets/musickeyboard.js:874 +#: js/widgets/musickeyboard.js:953 +#: js/widgets/musickeyboard.js:955 +#: js/widgets/phrasemaker.js:513 +#: js/widgets/phrasemaker.js:523 +#: js/widgets/phrasemaker.js:525 +#: js/widgets/phrasemaker.js:4304 +#: js/widgets/phrasemaker.js:4528 +#: js/widgets/phrasemaker.js:4533 +#: js/widgets/phrasemaker.js:4535 +#: js/widgets/phrasemaker.js:4650 +#: js/widgets/rhythmruler.js:637 +#: js/widgets/rhythmruler.js:639 +#: js/widgets/rhythmruler.js:653 +#: js/widgets/rhythmruler.js:655 +#: js/widgets/sampler.js:162 +#: js/widgets/sampler.js:164 +#: js/widgets/sampler.js:363 +msgid "Play" msgstr "" -#: js/piemenus.js:3416 -msgid "Save stack" +#: js/toolbar.js:50 +#: js/toolbar.js:111 +#: js/toolbar.js:176 +#: js/toolbar.js:232 +#: js/turtledefs.js:451 +#: js/turtledefs.js:488 +#: js/activity.js:2679 +#: js/widgets/modewidget.js:99 +#: js/widgets/modewidget.js:101 +#: js/widgets/meterwidget.js:206 +#: js/widgets/meterwidget.js:208 +#: js/widgets/pitchdrummatrix.js:674 +#: js/widgets/pitchdrummatrix.js:676 +#: js/widgets/temperament.js:2002 +#: js/widgets/temperament.js:2004 +#: js/widgets/arpeggio.js:534 +#: js/widgets/arpeggio.js:536 +#: js/widgets/phrasemaker.js:534 +#: js/widgets/phrasemaker.js:536 +msgid "Stop" msgstr "" -#: js/piemenus.js:3420 -#: js/toolbar.js:60 -#: js/toolbar.js:120 -#: js/toolbar.js:185 -#: js/toolbar.js:240 -#: js/turtledefs.js:752 -msgid "Help" +#: js/toolbar.js:51 +#: js/toolbar.js:112 +#: js/toolbar.js:177 +#: js/toolbar.js:233 +#: js/turtledefs.js:498 +msgid "Record" msgstr "" -#: js/piemenus.js:3762 -msgid "You have chosen key " +#: js/toolbar.js:52 +#: js/toolbar.js:53 +msgid "Full screen" msgstr "" -#: js/piemenus.js:3766 -msgid " for your pitch preview." +#: js/toolbar.js:54 +#: js/toolbar.js:115 +#: js/toolbar.js:180 +#: js/toolbar.js:236 +#: js/turtledefs.js:504 +msgid "Toggle Fullscreen" +msgstr "" + +#: js/toolbar.js:55 +#: js/toolbar.js:116 +#: js/toolbar.js:181 +#: js/toolbar.js:237 +#: js/turtledefs.js:510 +#: planet/js/StringHelper.js:33 +msgid "New project" +msgstr "" + +#: js/toolbar.js:56 +#: js/toolbar.js:117 +#: js/toolbar.js:182 +#: js/toolbar.js:238 +#: js/turtledefs.js:516 +msgid "Load project from file" +msgstr "" + +#: js/toolbar.js:57 +#: js/toolbar.js:118 +#: js/toolbar.js:119 +#: js/toolbar.js:183 +#: js/toolbar.js:239 +#: js/turtledefs.js:541 +#: js/turtledefs.js:550 +#: js/turtledefs.js:571 +msgid "Save project" +msgstr "" + +#: js/toolbar.js:58 +#: js/toolbar.js:77 +#: js/toolbar.js:79 +#: js/toolbar.js:138 +#: js/toolbar.js:147 +#: js/toolbar.js:149 +#: js/toolbar.js:184 +#: js/toolbar.js:202 +#: js/toolbar.js:204 +#: js/toolbar.js:240 +#: js/toolbar.js:258 +#: js/toolbar.js:260 +msgid "Save project as HTML" +msgstr "" + +#: js/toolbar.js:59 +#: js/toolbar.js:120 +#: js/toolbar.js:185 +#: js/toolbar.js:241 +msgid "Find and share projects" +msgstr "" + +#: js/toolbar.js:60 +#: js/toolbar.js:121 +#: js/toolbar.js:186 +#: js/toolbar.js:242 +msgid "Offline. Sharing is unavailable" +msgstr "" + +#: js/toolbar.js:61 +#: js/toolbar.js:122 +#: js/toolbar.js:187 +#: js/toolbar.js:243 +msgid "Auxiliary menu" +msgstr "" + +#: js/toolbar.js:62 +#: js/toolbar.js:123 +#: js/toolbar.js:188 +#: js/toolbar.js:244 +#: js/turtledefs.js:752 +#: js/piemenus.js:3423 +msgid "Help" +msgstr "" + +#: js/toolbar.js:63 +#: js/toolbar.js:124 +#: js/toolbar.js:189 +#: js/toolbar.js:245 +msgid "Run slowly" +msgstr "" + +#: js/toolbar.js:64 +#: js/toolbar.js:125 +#: js/toolbar.js:190 +#: js/toolbar.js:246 +#: js/turtledefs.js:682 +msgid "Run step by step" +msgstr "" + +#: js/toolbar.js:65 +#: js/toolbar.js:126 +#: js/toolbar.js:191 +#: js/toolbar.js:247 +#: js/turtledefs.js:689 +msgid "Display statistics" +msgstr "" + +#: js/toolbar.js:66 +#: js/toolbar.js:127 +#: js/toolbar.js:192 +#: js/toolbar.js:248 +msgid "Load plugin" +msgstr "" + +#: js/toolbar.js:67 +#: js/toolbar.js:128 +#: js/toolbar.js:193 +#: js/toolbar.js:249 +#: js/turtledefs.js:696 +msgid "Delete plugin" +msgstr "" + +#: js/toolbar.js:68 +#: js/toolbar.js:129 +#: js/toolbar.js:194 +#: js/toolbar.js:250 +msgid "Enable horizontal scrolling" +msgstr "" + +#: js/toolbar.js:69 +#: js/toolbar.js:130 +#: js/toolbar.js:195 +#: js/toolbar.js:251 +msgid "Disable horizontal scrolling" +msgstr "" + +#: js/toolbar.js:70 +#: js/toolbar.js:131 +#: js/toolbar.js:196 +#: js/toolbar.js:252 +#: planet/js/LocalCard.js:54 +#: planet/js/StringHelper.js:71 +msgid "Merge with current project" +msgstr "" + +#: js/toolbar.js:71 +#: js/toolbar.js:132 +msgid "Set Pitch Preview" +msgstr "" + +#: js/toolbar.js:72 +#: js/toolbar.js:133 +#: js/toolbar.js:197 +#: js/toolbar.js:253 +msgid "JavaScript Editor" +msgstr "" + +#: js/toolbar.js:73 +#: js/toolbar.js:134 +#: js/toolbar.js:198 +#: js/toolbar.js:254 +#: js/turtledefs.js:724 +msgid "Restore" +msgstr "" + +#: js/toolbar.js:74 +#: js/toolbar.js:135 +#: js/toolbar.js:199 +#: js/toolbar.js:255 +msgid "Switch to beginner mode" +msgstr "" + +#: js/toolbar.js:75 +#: js/toolbar.js:136 +#: js/toolbar.js:200 +#: js/toolbar.js:256 +msgid "Switch to advanced mode" +msgstr "" + +#: js/toolbar.js:76 +#: js/toolbar.js:137 +#: js/toolbar.js:146 +#: js/toolbar.js:201 +#: js/toolbar.js:257 +#: js/turtledefs.js:738 +msgid "Select language" +msgstr "" + +#: js/toolbar.js:78 +#: js/toolbar.js:81 +#: js/toolbar.js:140 +#: js/turtledefs.js:579 +msgid "Save mouse artwork as PNG" +msgstr "" + +#: js/toolbar.js:80 +#: js/toolbar.js:139 +#: js/turtledefs.js:575 +msgid "Save mouse artwork as SVG" +msgstr "" + +#: js/toolbar.js:82 +#: js/toolbar.js:141 +#: js/turtledefs.js:583 +msgid "Save music as WAV" +msgstr "" + +#: js/toolbar.js:83 +#: js/toolbar.js:142 +#: js/turtledefs.js:587 +msgid "Save sheet music as ABC" +msgstr "" + +#: js/toolbar.js:84 +#: js/toolbar.js:143 +#: js/turtledefs.js:591 +msgid "Save sheet music as Lilypond" +msgstr "" + +#: js/toolbar.js:85 +msgid "Save sheet music as MusicXML" +msgstr "" + +#: js/toolbar.js:86 +#: js/toolbar.js:144 +#: js/toolbar.js:152 +#: js/toolbar.js:207 +#: js/toolbar.js:263 +#: js/turtledefs.js:562 +#: js/turtledefs.js:595 +msgid "Save block artwork as SVG" +msgstr "" + +#: js/toolbar.js:87 +#: js/toolbar.js:145 +#: js/toolbar.js:153 +#: js/toolbar.js:208 +#: js/toolbar.js:264 +#: js/turtles.js:911 +msgid "Confirm" +msgstr "" + +#: js/toolbar.js:88 +#: js/toolbar.js:154 +#: js/toolbar.js:209 +#: js/toolbar.js:265 +msgid "English (United States)" +msgstr "" + +#: js/toolbar.js:89 +#: js/toolbar.js:155 +#: js/toolbar.js:210 +#: js/toolbar.js:266 +msgid "English (United Kingdom)" +msgstr "" + +#: js/toolbar.js:90 +#: js/toolbar.js:156 +#: js/toolbar.js:211 +#: js/toolbar.js:267 +msgid "日本語" +msgstr "" + +#: js/toolbar.js:91 +msgid "한국어" +msgstr "" + +#: js/toolbar.js:92 +#: js/toolbar.js:158 +#: js/toolbar.js:213 +#: js/toolbar.js:269 +msgid "español" +msgstr "" + +#: js/toolbar.js:93 +#: js/toolbar.js:159 +#: js/toolbar.js:214 +#: js/toolbar.js:270 +msgid "português" +msgstr "" + +#: js/toolbar.js:94 +#: js/toolbar.js:160 +#: js/toolbar.js:215 +#: js/toolbar.js:271 +msgid "にほんご" +msgstr "" + +#: js/toolbar.js:95 +#: js/toolbar.js:161 +#: js/toolbar.js:216 +#: js/toolbar.js:272 +msgid "中文" +msgstr "" + +#: js/toolbar.js:96 +#: js/toolbar.js:162 +#: js/toolbar.js:217 +#: js/toolbar.js:273 +msgid "ภาษาไทย" +msgstr "" + +#: js/toolbar.js:97 +#: js/toolbar.js:163 +#: js/toolbar.js:218 +#: js/toolbar.js:274 +msgid "aymara" +msgstr "" + +#: js/toolbar.js:98 +#: js/toolbar.js:164 +#: js/toolbar.js:219 +#: js/toolbar.js:275 +msgid "quechua" +msgstr "" + +#: js/toolbar.js:99 +#: js/toolbar.js:165 +#: js/toolbar.js:220 +#: js/toolbar.js:276 +msgid "guarani" +msgstr "" + +#: js/toolbar.js:100 +#: js/toolbar.js:166 +#: js/toolbar.js:221 +#: js/toolbar.js:277 +msgid "हिंदी" +msgstr "" + +#: js/toolbar.js:101 +#: js/toolbar.js:168 +#: js/toolbar.js:222 +#: js/toolbar.js:279 +msgid "igbo" +msgstr "" + +#: js/toolbar.js:102 +#: js/toolbar.js:169 +#: js/toolbar.js:223 +#: js/toolbar.js:280 +msgid "عربى" +msgstr "" + +#: js/toolbar.js:103 +#: js/toolbar.js:167 +#: js/toolbar.js:224 +#: js/toolbar.js:278 +msgid "తెలుగు" +msgstr "" + +#: js/toolbar.js:104 +#: js/toolbar.js:170 +#: js/toolbar.js:225 +#: js/toolbar.js:281 +msgid "עִברִית" +msgstr "" + +#: js/toolbar.js:113 +#: js/toolbar.js:114 +#: js/toolbar.js:178 +#: js/toolbar.js:179 +#: js/toolbar.js:234 +#: js/toolbar.js:235 +msgid "Full Screen" +msgstr "" + +#: js/toolbar.js:148 +#: js/toolbar.js:151 +#: js/toolbar.js:203 +#: js/toolbar.js:206 +#: js/toolbar.js:259 +#: js/toolbar.js:262 +#: js/turtledefs.js:558 +msgid "Save turtle artwork as PNG" +msgstr "" + +#: js/toolbar.js:150 +#: js/toolbar.js:205 +#: js/toolbar.js:261 +#: js/turtledefs.js:554 +msgid "Save turtle artwork as SVG" +msgstr "" + +#: js/toolbar.js:157 +#: js/toolbar.js:212 +#: js/toolbar.js:268 +msgid "한국인" +msgstr "" + +#: js/toolbar.js:174 +#: js/toolbar.js:230 +msgid "About Turtle Blocks" +msgstr "" + +#: js/toolbar.js:446 +#: js/toolbar.js:457 +#: js/toolbar.js:497 +msgid "Turtle Wrap Off" +msgstr "" + +#: js/toolbar.js:466 +#: js/toolbar.js:506 +msgid "Turtle Wrap On" +msgstr "" + +#: js/turtle-painter.js:1192 +#: js/turtle-painter.js:1193 +#: js/turtles.js:118 +#: js/block-verbose.js:1623 +#: js/block.js:1587 +#: js/lilypond.js:749 +#: js/lilypond.js:913 +#: js/lilypond.js:951 +#: js/logo.js:1184 +#: js/blocks/ActionBlocks.js:1223 +#: js/blocks/ProgramBlocks.js:1267 +msgid "start" +msgstr "" + +#: js/turtledefs.js:40 +#.TRANS: put the URL to the guide here, e.g., https://github.com/sugarlabs/turtleblocksjs/tree/master/guide/README.md +msgid "guide url" +msgstr "" + +#: js/turtledefs.js:85 +#: js/turtledefs.js:437 +msgid "Turtle Blocks is a Logo-inspired turtle that draws colorful pictures with snap-together visual-programming blocks." +msgstr "" + +#: js/turtledefs.js:118 +#: js/turtledefs.js:220 +msgid "search" +msgstr "" + +#: js/turtledefs.js:120 +#: js/turtledefs.js:222 +#: js/blocks/MeterBlocks.js:1343 +#: js/blocks/WidgetBlocks.js:522 +#.TRANS: musical meter (time signature), e.g., 4:4 +msgid "meter" +msgstr "" + +#: js/turtledefs.js:122 +#: js/turtledefs.js:224 +msgid "intervals" +msgstr "" + +#: js/turtledefs.js:124 +#: js/turtledefs.js:226 +msgid "ornament" +msgstr "" + +#: js/turtledefs.js:125 +#: js/turtledefs.js:227 +#: js/blocks/VolumeBlocks.js:362 +#: js/blocks/VolumeBlocks.js:502 +#: js/blocks/VolumeBlocks.js:545 +msgid "volume" +msgstr "" + +#: js/turtledefs.js:126 +#: js/turtledefs.js:228 +#: js/block-verbose.js:1700 +#: js/block-verbose.js:2626 +#: js/block.js:1664 +#: js/block.js:2554 +#: js/lilypond.js:732 +#: js/lilypond.js:897 +#: js/lilypond.js:941 +#: js/palette.js:577 +#: js/blocks/RhythmBlocks.js:766 +#: js/blocks/DrumBlocks.js:477 +#: js/blocks/VolumeBlocks.js:502 +#: js/widgets/phrasemaker.js:1038 +msgid "drum" +msgstr "" + +#: js/turtledefs.js:129 +#: js/turtledefs.js:231 +msgid "boxes" +msgstr "" + +#: js/turtledefs.js:130 +#: js/turtledefs.js:232 +msgid "widgets" +msgstr "" + +#: js/turtledefs.js:131 +#: js/turtledefs.js:233 +#: js/widgets/phrasemaker.js:1039 +msgid "graphics" +msgstr "" + +#: js/turtledefs.js:134 +#: js/turtledefs.js:236 +msgid "boolean" +msgstr "" + +#: js/turtledefs.js:137 +#: js/turtledefs.js:239 +#: js/blocks/HeapBlocks.js:59 +#: js/widgets/status.js:147 +msgid "heap" +msgstr "" + +#: js/turtledefs.js:138 +#: js/turtledefs.js:240 +#: js/blocks/DictBlocks.js:142 +#: js/blocks/ProgramBlocks.js:495 +msgid "dictionary" +msgstr "" + +#: js/turtledefs.js:139 +#: js/turtledefs.js:241 +msgid "ensemble" +msgstr "" + +#: js/turtledefs.js:140 +#: js/turtledefs.js:242 +msgid "extras" +msgstr "" + +#: js/turtledefs.js:142 +#: js/turtledefs.js:244 +#.TRANS: program as in computer program +#.TRANS: program as in computer program +msgid "program" +msgstr "" + +#: js/turtledefs.js:143 +#: js/turtledefs.js:245 +msgid "my blocks" +msgstr "" + +#: js/turtledefs.js:185 +#: js/turtledefs.js:281 +msgid "artwork" +msgstr "" + +#: js/turtledefs.js:185 +#: js/turtledefs.js:281 +msgid "logic" +msgstr "" + +#: js/turtledefs.js:185 +#: js/turtledefs.js:281 +msgid "music" +msgstr "" + +#: js/turtledefs.js:187 +#: js/turtledefs.js:463 +msgid "Music Blocks is a collection of tools for exploring fundamental musical concepts in a fun way." +msgstr "" + +#: js/turtledefs.js:436 +msgid "Welcome to Turtle Blocks" +msgstr "" + +#: js/turtledefs.js:438 +#: js/turtledefs.js:465 +#: js/turtledefs.js:774 +#: js/turtledefs.js:805 +msgid "The current version is" +msgstr "" + +#: js/turtledefs.js:446 +#: js/turtledefs.js:483 +msgid "Click the run button to run the project in fast mode." +msgstr "" + +#: js/turtledefs.js:452 +msgid "Stop the turtle." +msgstr "" + +#: js/turtledefs.js:454 +#: js/turtledefs.js:491 +msgid "You can also type Alt-S to stop." +msgstr "" + +#: js/turtledefs.js:462 +#: js/widgets/help.js:333 +msgid "Welcome to Music Blocks" +msgstr "" + +#: js/turtledefs.js:472 +#: js/widgets/help.js:334 +msgid "Meet Mr. Mouse!" +msgstr "" + +#: js/turtledefs.js:473 +msgid "Mr Mouse is our Music Blocks conductor." +msgstr "" + +#: js/turtledefs.js:475 +msgid "Mr Mouse encourages you to explore Music Blocks." +msgstr "" + +#: js/turtledefs.js:477 +msgid "Let us start our tour!" +msgstr "" + +#: js/turtledefs.js:489 +msgid "Stop the music (and the mice)." +msgstr "" + +#: js/turtledefs.js:499 +msgid "Record your project as video." +msgstr "" + +#: js/turtledefs.js:505 +msgid "Toggle Fullscreen mode." +msgstr "" + +#: js/turtledefs.js:511 +msgid "Initialize a new project." +msgstr "" + +#: js/turtledefs.js:517 +msgid "You can also load projects from the file system." +msgstr "" + +#: js/turtledefs.js:522 +#: planet/js/StringHelper.js:46 +msgid "Delete" +msgstr "" + +#: js/turtledefs.js:523 +msgid "To delete a block, just right-click on it, then you will be able to see the delete option" +msgstr "" + +#: js/turtledefs.js:528 +#: js/activity.js:2649 +#: planet/js/LocalCard.js:31 +msgid "Copy" +msgstr "" + +#: js/turtledefs.js:529 +msgid "To copy a block, just right-click on it, then you will be able to see the copy option" +msgstr "" + +#: js/turtledefs.js:534 +#: js/piemenus.js:3411 +msgid "Extract" +msgstr "" + +#: js/turtledefs.js:535 +msgid "To extract a block, just right-click on it, then you will be able to see the extract option" +msgstr "" + +#: js/turtledefs.js:542 +#: js/turtledefs.js:552 +#: js/turtledefs.js:573 +msgid "Save your project to a file." +msgstr "" + +#: js/turtledefs.js:549 +#: js/turtledefs.js:570 +msgid "save" +msgstr "" + +#: js/turtledefs.js:556 +#: js/turtledefs.js:577 +msgid "Save graphics from your project to as SVG." +msgstr "" + +#: js/turtledefs.js:560 +#: js/turtledefs.js:581 +msgid "Save graphics from your project as PNG." +msgstr "" + +#: js/turtledefs.js:564 +#: js/turtledefs.js:597 +msgid "Save block artwork as an SVG file." +msgstr "" + +#: js/turtledefs.js:585 +msgid "Save audio from your project as WAV." +msgstr "" + +#: js/turtledefs.js:589 +msgid "Save your project to as an ABC file." +msgstr "" + +#: js/turtledefs.js:593 +msgid "Save your project to as a Lilypond file." +msgstr "" + +#: js/turtledefs.js:604 +msgid "Load samples from server" +msgstr "" + +#: js/turtledefs.js:605 +msgid "This button opens a viewer for loading example projects." +msgstr "" + +#: js/turtledefs.js:611 +msgid "Palette buttons" +msgstr "" + +#: js/turtledefs.js:612 +msgid "This toolbar contains the palette buttons including Rhythm Pitch Tone Action and more." +msgstr "" + +#: js/turtledefs.js:614 +msgid "Click to show the palettes of blocks and drag blocks from the palettes onto the canvas to use them." +msgstr "" + +#: js/turtledefs.js:620 +msgid "Cartesian/Polar" +msgstr "" + +#: js/turtledefs.js:621 +msgid "Show or hide a coordinate grid." +msgstr "" + +#: js/turtledefs.js:626 +#: js/turtles.js:902 +msgid "Clean" +msgstr "" + +#: js/turtledefs.js:627 +msgid "Clear the screen and return the mice to their initial positions." +msgstr "" + +#: js/turtledefs.js:632 +#: js/turtles.js:955 +msgid "Collapse" +msgstr "" + +#: js/turtledefs.js:633 +msgid "Collapse the graphics window." msgstr "" -#: js/palette.js:571 -msgid "grid" +#: js/turtledefs.js:638 +#: js/activity.js:5684 +msgid "Home" msgstr "" -#: js/palette.js:577 -#: js/block.js:1540 -#: js/block.js:2343 -#: js/turtledefs.js:126 -#: js/turtledefs.js:228 -#: js/lilypond.js:740 -#: js/lilypond.js:905 -#: js/lilypond.js:949 -#: js/DrumBlocks.js:486 -#: js/RhythmBlocks.js:766 -#: js/VolumeBlocks.js:502 -#: js/phrasemaker.js:823 -msgid "drum" +#: js/turtledefs.js:639 +msgid "Return all blocks to the center of the screen." msgstr "" -#: js/palette.js:580 -msgid "effect" +#: js/turtledefs.js:644 +msgid "Show/hide blocks" msgstr "" -#: js/palette.js:586 -msgid "sargam" +#: js/turtledefs.js:645 +msgid "Hide or show the blocks and the palettes." msgstr "" -#: js/palette.js:589 -#: js/activity.js:1833 -#: js/RhythmBlocks.js:923 -#: js/PitchBlocks.js:442 -#: js/PitchBlocks.js:1748 -#.TRANS: a numeric mapping of the notes in an octave based on the musical mode -msgid "scale degree" +#: js/turtledefs.js:650 +msgid "Expand/collapse collapsable blocks" msgstr "" -#: js/palette.js:592 -#: js/activity.js:1860 -msgid "mode name" +#: js/turtledefs.js:651 +msgid "Expand or collapse start and action stacks." msgstr "" -#: js/palette.js:595 -#: js/activity.js:1839 -msgid "invert mode" +#: js/turtledefs.js:658 +#: js/activity.js:5704 +msgid "Decrease block size" msgstr "" -#: js/palette.js:598 -#: js/activity.js:1836 -msgid "voice name" +#: js/turtledefs.js:659 +msgid "Decrease the size of the blocks." msgstr "" -#: js/palette.js:601 -#: js/PitchBlocks.js:1181 -msgid "custom pitch" +#: js/turtledefs.js:664 +#: js/activity.js:5710 +msgid "Increase block size" msgstr "" -#: js/palette.js:605 -#: js/block.js:1456 -#: js/block.js:1575 -#: js/WidgetBlocks.js:218 -#: js/IntervalsBlocks.js:63 -msgid "temperament" +#: js/turtledefs.js:665 +msgid "Increase the size of the blocks." msgstr "" -#: js/palette.js:609 -msgid "accidental" +#: js/turtledefs.js:670 +msgid "Expand/collapse option toolbar" msgstr "" -#: js/palette.js:615 -#: js/activity.js:1866 -msgid "interval name" +#: js/turtledefs.js:671 +msgid "Click this button to expand or collapse the auxillary toolbar." msgstr "" -#: js/palette.js:633 -#: js/PitchBlocks.js:405 -msgid "pitch converter" +#: js/turtledefs.js:676 +msgid "Run slow" msgstr "" -#: js/rubrics.js:522 -#: js/turtledefs.js:119 -#: js/turtledefs.js:221 -#: js/RhythmBlockPaletteBlocks.js:52 -#: js/RhythmBlockPaletteBlocks.js:233 -#: js/ProgramBlocks.js:745 -#: js/rhythmruler.js:1670 -#: js/rhythmruler.js:1677 -#: js/rhythmruler.js:1745 -#: js/rhythmruler.js:1752 -#: js/rhythmruler.js:1830 -#.TRANS: an arrangement of notes based on duration -msgid "rhythm" +#: js/turtledefs.js:677 +msgid "Click to run the project in slow mode." msgstr "" -#: js/rubrics.js:523 -#: js/block.js:2339 -#: js/turtledefs.js:121 -#: js/turtledefs.js:223 -#: js/IntervalsBlocks.js:63 -#: js/PitchBlocks.js:1801 -#: js/PitchBlocks.js:1814 -#: js/SensorsBlocks.js:178 -#: js/phrasemaker.js:821 -#: js/musickeyboard.js:1653 -#.TRANS: pitch number -#.TRANS: we specify pitch in terms of a name and an octave. The name can be CDEFGAB or Do Re Mi Fa Sol La Ti. Octave is a number between 1 and 8. -msgid "pitch" +#: js/turtledefs.js:683 +msgid "Click to run the project step by step." msgstr "" -#: js/rubrics.js:524 -#: js/turtledefs.js:123 -#: js/turtledefs.js:225 -msgid "tone" +#: js/turtledefs.js:690 +msgid "Display statistics about your Music project." msgstr "" -#: js/rubrics.js:525 -#: js/lilypond.js:613 -#: js/lilypond.js:912 -#: js/lilypond.js:918 -#: js/lilypond.js:956 -msgid "mouse" +#: js/turtledefs.js:697 +msgid "Delete a selected plugin." msgstr "" -#: js/rubrics.js:526 -#: js/turtledefs.js:132 -#: js/turtledefs.js:234 -#: js/phrasemaker.js:825 -msgid "pen" +#: js/turtledefs.js:704 +msgid "Enable scrolling" msgstr "" -#: js/rubrics.js:527 -#: js/turtledefs.js:133 -#: js/turtledefs.js:235 -#: js/NumberBlocks.js:905 -#: js/PitchBlocks.js:1679 -#: js/PitchBlocks.js:1720 -msgid "number" +#: js/turtledefs.js:705 +msgid "You can scroll the blocks on the canvas." msgstr "" -#: js/rubrics.js:528 -#: js/turtledefs.js:127 -#: js/turtledefs.js:229 -msgid "flow" +#: js/turtledefs.js:714 +msgid "Wrap Turtle" msgstr "" -#: js/rubrics.js:530 -#: js/turtledefs.js:136 -#: js/turtledefs.js:238 -msgid "sensors" +#: js/turtledefs.js:715 +msgid "Turn Turtle wrapping On or Off." msgstr "" -#: js/rubrics.js:531 -#: js/turtledefs.js:135 -#: js/turtledefs.js:237 -#: js/MediaBlocks.js:930 -msgid "media" +#: js/turtledefs.js:725 +msgid "Restore blocks from the trash." msgstr "" -#: js/rubrics.js:532 -msgid "mice" +#: js/turtledefs.js:732 +msgid "Switch mode" msgstr "" -#: js/macros.js:711 -#: js/musicutils.js:783 -#: js/synthutils.js:181 -#.TRANS: animal sound effect -msgid "duck" +#: js/turtledefs.js:733 +msgid "Switch between beginner and advance modes." msgstr "" -#: js/toolbar.js:46 -#: js/toolbar.js:107 -msgid "About Music Blocks" +#: js/turtledefs.js:739 +msgid "Select your language preference." msgstr "" -#: js/toolbar.js:47 -#: js/toolbar.js:108 -#: js/toolbar.js:172 -#: js/toolbar.js:228 -#: js/turtledefs.js:445 -#: js/turtledefs.js:482 -#: js/activity.js:2281 -#: js/activity.js:2289 -#: js/activity.js:2520 -#: js/modewidget.js:77 -#: js/pitchstaircase.js:121 -#: js/phrasemaker.js:302 -#: js/phrasemaker.js:312 -#: js/phrasemaker.js:314 -#: js/phrasemaker.js:3901 -#: js/phrasemaker.js:4061 -#: js/phrasemaker.js:4066 -#: js/phrasemaker.js:4068 -#: js/phrasemaker.js:4183 -#: js/pitchdrummatrix.js:81 -#: js/pitchdrummatrix.js:574 -#: js/pitchdrummatrix.js:576 -#: js/pitchdrummatrix.js:628 -#: js/pitchdrummatrix.js:630 -#: js/pitchdrummatrix.js:645 -#: js/pitchdrummatrix.js:647 -#: js/pitchdrummatrix.js:674 -#: js/pitchdrummatrix.js:676 -#: js/temperament.js:477 -#: js/temperament.js:480 -#: js/temperament.js:540 -#: js/temperament.js:542 -#: js/temperament.js:1835 -#: js/temperament.js:1837 -#: js/temperament.js:1986 -#: js/temperament.js:1988 -#: js/musickeyboard.js:522 -#: js/musickeyboard.js:682 -#: js/musickeyboard.js:684 -#: js/musickeyboard.js:756 -#: js/musickeyboard.js:758 -#: js/rhythmruler.js:298 -#: js/rhythmruler.js:300 -#: js/rhythmruler.js:314 -#: js/rhythmruler.js:316 -#: js/sampler.js:96 -#: js/sampler.js:98 -#: js/sampler.js:229 -#: js/sampler.js:235 -#: js/sampler.js:237 -#: js/tempo.js:84 -#: js/tempo.js:86 -#: js/timbre.js:432 -#: js/timbre.js:434 -#: js/timbre.js:465 -#: js/timbre.js:467 -#: js/timbre.js:746 -#: js/meterwidget.js:80 -#: js/arpeggio.js:90 -#: js/arpeggio.js:547 -#: js/arpeggio.js:549 -#: js/arpeggio.js:644 -#: js/arpeggio.js:646 -msgid "Play" +#: js/turtledefs.js:745 +msgid "Keyboard shortcuts" msgstr "" -#: js/toolbar.js:48 -#: js/toolbar.js:109 -#: js/toolbar.js:173 -#: js/toolbar.js:229 -#: js/turtledefs.js:451 -#: js/turtledefs.js:488 -#: js/activity.js:2297 -#: js/modewidget.js:99 -#: js/modewidget.js:101 -#: js/phrasemaker.js:323 -#: js/phrasemaker.js:325 -#: js/pitchdrummatrix.js:561 -#: js/pitchdrummatrix.js:563 -#: js/temperament.js:1820 -#: js/temperament.js:1822 -#: js/meterwidget.js:101 -#: js/meterwidget.js:103 -#: js/arpeggio.js:534 -#: js/arpeggio.js:536 -msgid "Stop" +#: js/turtledefs.js:746 +msgid "You can type d to create a do block and r to create a re block etc." msgstr "" -#: js/toolbar.js:49 -#: js/toolbar.js:110 -#: js/toolbar.js:174 -#: js/toolbar.js:230 -#: js/turtledefs.js:498 -msgid "Record" +#: js/turtledefs.js:753 +msgid "Show these messages." msgstr "" -#: js/toolbar.js:50 -#: js/toolbar.js:51 -msgid "Full screen" +#: js/turtledefs.js:759 +#: js/turtledefs.js:790 +#: js/widgets/help.js:335 +msgid "Guide" msgstr "" -#: js/toolbar.js:52 -#: js/toolbar.js:112 -#: js/toolbar.js:177 -#: js/toolbar.js:232 -#: js/turtledefs.js:504 -msgid "Toggle Fullscreen" +#: js/turtledefs.js:760 +msgid "A detailed guide to Turtle Blocks is available." msgstr "" -#: js/toolbar.js:53 -#: js/toolbar.js:113 -#: js/toolbar.js:178 -#: js/toolbar.js:233 -#: js/turtledefs.js:510 -#: js/StringHelper.js:33 -msgid "New project" +#: js/turtledefs.js:764 +msgid "Turtle Blocks Guide" msgstr "" -#: js/toolbar.js:54 -#: js/toolbar.js:114 -#: js/toolbar.js:179 -#: js/toolbar.js:234 -#: js/turtledefs.js:516 -msgid "Load project from file" +#: js/turtledefs.js:767 +#: js/turtledefs.js:798 +#: js/widgets/help.js:336 +msgid "About" msgstr "" -#: js/toolbar.js:55 -#: js/toolbar.js:115 -#: js/toolbar.js:116 -#: js/toolbar.js:180 -#: js/toolbar.js:235 -#: js/turtledefs.js:541 -#: js/turtledefs.js:550 -#: js/turtledefs.js:571 -msgid "Save project" +#: js/turtledefs.js:768 +msgid "Turtle Blocks is an open source collection of tools for exploring musical concepts." msgstr "" -#: js/toolbar.js:56 -#: js/toolbar.js:75 -#: js/toolbar.js:77 -#: js/toolbar.js:135 -#: js/toolbar.js:144 -#: js/toolbar.js:146 -#: js/toolbar.js:181 -#: js/toolbar.js:199 -#: js/toolbar.js:201 -#: js/toolbar.js:236 -#: js/toolbar.js:254 -#: js/toolbar.js:256 -msgid "Save project as HTML" +#: js/turtledefs.js:770 +msgid "A full list of contributors can be found in the Turtle Blocks GitHub repository." +msgstr "" + +#: js/turtledefs.js:772 +msgid "Turtle Blocks is licensed under the AGPL." +msgstr "" + +#: js/turtledefs.js:780 +msgid "Turtle Blocks GitHub repository" +msgstr "" + +#: js/turtledefs.js:783 +#: js/turtledefs.js:814 +#: js/widgets/help.js:337 +#: js/widgets/help.js:359 +msgid "Congratulations." +msgstr "" + +#: js/turtledefs.js:784 +msgid "You have finished the tour. Please enjoy Turtle Blocks!" +msgstr "" + +#: js/turtledefs.js:791 +msgid "A detailed guide to Music Blocks is available." +msgstr "" + +#: js/turtledefs.js:799 +msgid "Music Blocks is an open source collection of tools for exploring musical concepts." +msgstr "" + +#: js/turtledefs.js:801 +msgid "A full list of contributors can be found in the Music Blocks GitHub repository." +msgstr "" + +#: js/turtledefs.js:803 +msgid "Music Blocks is licensed under the AGPL." +msgstr "" + +#: js/turtledefs.js:811 +msgid "Music Blocks GitHub repository" +msgstr "" + +#: js/turtledefs.js:815 +msgid "You have finished the tour. Please enjoy Music Blocks!" +msgstr "" + +#: js/turtles.js:882 +msgid "Grid" +msgstr "" + +#: js/turtles.js:1024 +msgid "Expand" +msgstr "" + +#: js/block-verbose.js:1616 +#: js/block-verbose.js:1735 +#: js/block.js:1580 +#: js/block.js:1699 +#: js/palette.js:605 +#: js/blocks/IntervalsBlocks.js:63 +#: js/blocks/WidgetBlocks.js:259 +msgid "temperament" +msgstr "" + +#: js/block-verbose.js:1630 +#: js/block.js:1594 +msgid "matrix" msgstr "" -#: js/toolbar.js:57 -#: js/toolbar.js:117 -#: js/toolbar.js:182 -#: js/toolbar.js:237 -msgid "Find and share projects" +#: js/block-verbose.js:1637 +#: js/block.js:1601 +#: js/blocks/WidgetBlocks.js:1509 +#: plugins/rodi.rtp:324 +msgid "status" msgstr "" -#: js/toolbar.js:58 -#: js/toolbar.js:118 -#: js/toolbar.js:183 -#: js/toolbar.js:238 -msgid "Offline. Sharing is unavailable" +#: js/block-verbose.js:1644 +#: js/block.js:1608 +msgid "drum mapper" msgstr "" -#: js/toolbar.js:59 -#: js/toolbar.js:119 -#: js/toolbar.js:184 -#: js/toolbar.js:239 -msgid "Auxiliary menu" +#: js/block-verbose.js:1651 +#: js/block.js:1615 +msgid "ruler" msgstr "" -#: js/toolbar.js:61 -#: js/toolbar.js:121 -#: js/toolbar.js:186 -#: js/toolbar.js:241 -msgid "Run slowly" +#: js/block-verbose.js:1658 +#: js/block.js:1622 +#: js/blocks/WidgetBlocks.js:397 +#.TRANS: timbre is the character or quality of a musical sound +msgid "timbre" msgstr "" -#: js/toolbar.js:62 -#: js/toolbar.js:122 -#: js/toolbar.js:187 -#: js/toolbar.js:242 -#: js/turtledefs.js:682 -msgid "Run step by step" +#: js/block-verbose.js:1665 +#: js/block.js:1629 +msgid "stair" msgstr "" -#: js/toolbar.js:63 -#: js/toolbar.js:123 -#: js/toolbar.js:188 -#: js/toolbar.js:243 -#: js/turtledefs.js:689 -msgid "Display statistics" +#: js/block-verbose.js:1672 +#: js/block.js:1636 +#: js/blocks/WidgetBlocks.js:707 +#.TRANS: the speed at music is should be played. +msgid "tempo" msgstr "" -#: js/toolbar.js:64 -#: js/toolbar.js:124 -#: js/toolbar.js:189 -#: js/toolbar.js:244 -msgid "Load plugin" +#: js/block-verbose.js:1679 +#: js/block-verbose.js:1742 +#: js/block.js:1643 +#: js/block.js:1706 +#: js/blocks/IntervalsBlocks.js:1464 +#.TRANS: mode, e.g., Major in C Major +msgid "mode" msgstr "" -#: js/toolbar.js:65 -#: js/toolbar.js:125 -#: js/toolbar.js:190 -#: js/toolbar.js:245 -#: js/turtledefs.js:696 -msgid "Delete plugin" +#: js/block-verbose.js:1686 +#: js/block.js:1650 +msgid "slider" msgstr "" -#: js/toolbar.js:66 -#: js/toolbar.js:126 -#: js/toolbar.js:191 -#: js/toolbar.js:246 -msgid "Enable horizontal scrolling" +#: js/block-verbose.js:1693 +#: js/block.js:1657 +#: js/blocks/SensorsBlocks.js:1001 +msgid "keyboard" msgstr "" -#: js/toolbar.js:67 -#: js/toolbar.js:127 -#: js/toolbar.js:192 -#: js/toolbar.js:247 -msgid "Disable horizontal scrolling" +#: js/block-verbose.js:1707 +#: js/block.js:1671 +#: js/blocks/WidgetBlocks.js:1190 +#: js/blocks/WidgetBlocks.js:1228 +#.TRANS: widget for subdividing a measure into distinct rhythmic elements +msgid "rhythm maker" msgstr "" -#: js/toolbar.js:68 -#: js/toolbar.js:128 -#: js/toolbar.js:193 -#: js/toolbar.js:248 -#: js/LocalCard.js:54 -#: js/StringHelper.js:71 -msgid "Merge with current project" +#: js/block-verbose.js:1714 +#: js/block-verbose.js:2457 +#: js/block-verbose.js:2514 +#: js/block.js:1678 +#: js/block.js:2385 +#: js/block.js:2442 +#: js/blocks/MeterBlocks.js:1367 +#: js/blocks/OrnamentBlocks.js:220 +#: js/blocks/OrnamentBlocks.js:312 +#: js/blocks/RhythmBlocks.js:33 +#: js/blocks/RhythmBlocks.js:356 +#: js/blocks/RhythmBlocks.js:766 +#: js/blocks/RhythmBlocks.js:806 +#: js/blocks/RhythmBlockPaletteBlocks.js:70 +#: js/blocks/RhythmBlockPaletteBlocks.js:252 +#: js/blocks/RhythmBlockPaletteBlocks.js:485 +#: js/blocks/RhythmBlockPaletteBlocks.js:554 +#: js/blocks/RhythmBlockPaletteBlocks.js:605 +#: js/blocks/RhythmBlockPaletteBlocks.js:875 +#: js/turtleactions/DictActions.js:85 +#: js/widgets/phrasemaker.js:942 +#: js/widgets/phrasemaker.js:2656 +#: js/widgets/phrasemaker.js:2699 +#: js/widgets/phrasemaker.js:2810 +#.TRANS: the value (e.g., 1/4 note) of the note being played. +msgid "note value" msgstr "" -#: js/toolbar.js:69 -#: js/toolbar.js:129 -msgid "Set Pitch Preview" +#: js/block-verbose.js:1721 +#: js/block-verbose.js:2382 +#: js/block-verbose.js:2405 +#: js/block.js:1685 +#: js/block.js:2310 +#: js/block.js:2333 +#: js/blocks/IntervalsBlocks.js:1071 +#: js/blocks/OrnamentBlocks.js:312 +#.TRANS: calculate a relative step between notes based on semi-tones +msgid "scalar interval" msgstr "" -#: js/toolbar.js:70 -#: js/toolbar.js:130 -#: js/toolbar.js:194 -#: js/toolbar.js:249 -msgid "Toggle JavaScript Editor" +#: js/block-verbose.js:1728 +#: js/block.js:1692 +#: js/blocks/RhythmBlocks.js:148 +msgid "milliseconds" msgstr "" -#: js/toolbar.js:71 -#: js/toolbar.js:131 -#: js/toolbar.js:195 -#: js/toolbar.js:250 -#: js/turtledefs.js:724 -msgid "Restore" +#: js/block-verbose.js:2455 +#: js/block-verbose.js:2459 +#: js/block-verbose.js:2512 +#: js/block-verbose.js:2628 +#: js/block.js:2383 +#: js/block.js:2387 +#: js/block.js:2440 +#: js/block.js:2556 +#: js/blocks/RhythmBlocks.js:712 +#: js/blocks/ProgramBlocks.js:1273 +#: js/widgets/rhythmruler.js:1183 +#: js/widgets/rhythmruler.js:1329 +msgid "silence" msgstr "" -#: js/toolbar.js:72 -#: js/toolbar.js:132 -#: js/toolbar.js:196 -#: js/toolbar.js:251 -msgid "Switch to beginner mode" +#: js/block-verbose.js:2548 +#: js/block-verbose.js:3492 +#: js/block-verbose.js:3509 +#: js/activity.js:2718 +#: js/activity.js:2769 +#: js/block.js:2476 +#: js/block.js:3416 +#: js/block.js:3433 +#: js/utils/musicutils.js:3780 +#: js/utils/musicutils.js:5273 +#.TRANS: the note names must be separated by single spaces +#.TRANS: the note names must be separated by single spaces +#.TRANS: the note names must be separated by single spaces +msgid "ti la sol fa mi re do" msgstr "" -#: js/toolbar.js:73 -#: js/toolbar.js:133 -#: js/toolbar.js:197 -#: js/toolbar.js:252 -msgid "Switch to advanced mode" +#: js/block-verbose.js:2616 +#: js/block.js:2544 +#.TRANS: scalar step +#.TRANS: scalar step +msgid "down" msgstr "" -#: js/toolbar.js:74 -#: js/toolbar.js:134 -#: js/toolbar.js:143 -#: js/toolbar.js:198 -#: js/toolbar.js:253 -#: js/turtledefs.js:738 -msgid "Select language" +#: js/block-verbose.js:2617 +#: js/block.js:2545 +msgid "up" msgstr "" -#: js/toolbar.js:76 -#: js/toolbar.js:79 -#: js/toolbar.js:137 -#: js/turtledefs.js:579 -msgid "Save mouse artwork as PNG" +#: js/block-verbose.js:3026 +#: js/block.js:2950 +msgid "Silence block cannot be removed." msgstr "" -#: js/toolbar.js:78 -#: js/toolbar.js:136 -#: js/turtledefs.js:575 -msgid "Save mouse artwork as SVG" +#: js/block-verbose.js:3824 +#: js/block.js:3748 +#: js/blocks.js:2607 +#: js/blocks.js:3218 +#: js/palette.js:618 +#: js/blocks/BooleanBlocks.js:77 +#: js/blocks/BooleanBlocks.js:167 +#: js/blocks/BooleanBlocks.js:251 +#: js/blocks/BooleanBlocks.js:335 +#: js/blocks/BooleanBlocks.js:433 +#: js/blocks/BooleanBlocks.js:539 +#: js/blocks/BooleanBlocks.js:640 +#: js/blocks/BooleanBlocks.js:741 +#: js/blocks/BooleanBlocks.js:847 +#: js/blocks/BooleanBlocks.js:948 +#: js/blocks/BooleanBlocks.js:1033 +#: js/blocks/SensorsBlocks.js:910 +msgid "true" msgstr "" -#: js/toolbar.js:80 -#: js/toolbar.js:138 -#: js/turtledefs.js:583 -msgid "Save music as WAV" +#: js/block-verbose.js:3824 +#: js/block.js:3748 +#: js/blocks.js:2609 +#: js/blocks.js:3220 +#: js/blocks/BooleanBlocks.js:79 +#: js/blocks/BooleanBlocks.js:169 +#: js/blocks/BooleanBlocks.js:253 +#: js/blocks/BooleanBlocks.js:337 +#: js/blocks/BooleanBlocks.js:435 +#: js/blocks/BooleanBlocks.js:541 +#: js/blocks/BooleanBlocks.js:642 +#: js/blocks/BooleanBlocks.js:743 +#: js/blocks/BooleanBlocks.js:849 +#: js/blocks/BooleanBlocks.js:950 +#: js/blocks/SensorsBlocks.js:912 +msgid "false" msgstr "" -#: js/toolbar.js:81 -#: js/toolbar.js:139 -#: js/turtledefs.js:587 -msgid "Save sheet music as ABC" +#: js/block-verbose.js:3835 +#: js/block-verbose.js:3848 +#: js/block.js:3759 +#: js/block.js:3772 +#: js/blocks/ExtrasBlocks.js:615 +msgid "Cartesian" msgstr "" -#: js/toolbar.js:82 -#: js/toolbar.js:140 -#: js/turtledefs.js:591 -msgid "Save sheet music as Lilypond" +#: js/block-verbose.js:3836 +#: js/block-verbose.js:3849 +#: js/block.js:3760 +#: js/block.js:3773 +#: js/blocks/ExtrasBlocks.js:619 +msgid "polar" msgstr "" -#: js/toolbar.js:83 -msgid "Save sheet music as MusicXML" +#: js/block-verbose.js:3837 +#: js/block-verbose.js:3850 +#: js/block.js:3761 +#: js/block.js:3774 +#: js/blocks/ExtrasBlocks.js:623 +msgid "Cartesian+polar" msgstr "" -#: js/toolbar.js:84 -#: js/toolbar.js:141 -#: js/toolbar.js:149 -#: js/toolbar.js:204 -#: js/toolbar.js:259 -#: js/turtledefs.js:562 -#: js/turtledefs.js:595 -msgid "Save block artwork as SVG" +#: js/block-verbose.js:3838 +#: js/block-verbose.js:3857 +#: js/block.js:3762 +#: js/block.js:3781 +#: js/blocks/ExtrasBlocks.js:652 +msgid "none" msgstr "" -#: js/toolbar.js:85 -#: js/toolbar.js:142 -#: js/toolbar.js:150 -#: js/toolbar.js:205 -#: js/toolbar.js:260 -msgid "Confirm" +#: js/block-verbose.js:3851 +#: js/block.js:3775 +#: js/blocks/ExtrasBlocks.js:628 +msgid "treble" msgstr "" -#: js/toolbar.js:86 -#: js/toolbar.js:151 -#: js/toolbar.js:206 -#: js/toolbar.js:261 -msgid "English (United States)" +#: js/block-verbose.js:3852 +#: js/block.js:3776 +#: js/blocks/ExtrasBlocks.js:632 +msgid "grand staff" msgstr "" -#: js/toolbar.js:87 -#: js/toolbar.js:152 -#: js/toolbar.js:207 -#: js/toolbar.js:262 -msgid "English (United Kingdom)" +#: js/block-verbose.js:3853 +#: js/block.js:3777 +#: js/blocks/ExtrasBlocks.js:636 +msgid "mezzo-soprano" msgstr "" -#: js/toolbar.js:88 -#: js/toolbar.js:153 -#: js/toolbar.js:208 -#: js/toolbar.js:263 -msgid "日本語" +#: js/block-verbose.js:3854 +#: js/block.js:3778 +#: js/blocks/ExtrasBlocks.js:640 +msgid "alto" msgstr "" -#: js/toolbar.js:89 -msgid "한국어" +#: js/block-verbose.js:3855 +#: js/block.js:3779 +#: js/blocks/ExtrasBlocks.js:644 +msgid "tenor" msgstr "" -#: js/toolbar.js:90 -#: js/toolbar.js:155 -#: js/toolbar.js:210 -#: js/toolbar.js:265 -msgid "español" +#: js/block-verbose.js:3856 +#: js/block.js:3780 +#: js/utils/musicutils.js:1115 +#: js/utils/synthutils.js:80 +#: js/blocks/ExtrasBlocks.js:648 +#.TRANS: musical instrument +msgid "bass" msgstr "" -#: js/toolbar.js:91 -#: js/toolbar.js:156 -#: js/toolbar.js:211 -#: js/toolbar.js:266 -msgid "português" +#: js/block-verbose.js:3901 +#: js/block.js:3825 +#: js/blocks.js:2600 +#: js/blocks.js:3211 +msgid "on2" msgstr "" -#: js/toolbar.js:92 -#: js/toolbar.js:157 -#: js/toolbar.js:212 -#: js/toolbar.js:267 -msgid "にほんご" +#: js/block-verbose.js:3903 +#: js/block.js:3827 +#: js/blocks.js:2602 +#: js/blocks.js:3213 +msgid "off" msgstr "" -#: js/toolbar.js:93 -#: js/toolbar.js:158 -#: js/toolbar.js:213 -#: js/toolbar.js:268 -msgid "中文" +#: js/block-verbose.js:4470 +#: js/block.js:4394 +msgid "Not a number" msgstr "" -#: js/toolbar.js:94 -#: js/toolbar.js:159 -#: js/toolbar.js:214 -#: js/toolbar.js:269 -msgid "ภาษาไทย" +#: js/block-verbose.js:4477 +#: js/block.js:4401 +msgid "Octave value must be between 1 and 10." msgstr "" -#: js/toolbar.js:95 -#: js/toolbar.js:160 -#: js/toolbar.js:215 -#: js/toolbar.js:270 -msgid "aymara" +#: js/block-verbose.js:4485 +#: js/block.js:4409 +msgid "Numbers can have at most 10 digits." msgstr "" -#: js/toolbar.js:96 -#: js/toolbar.js:161 -#: js/toolbar.js:216 -#: js/toolbar.js:271 -msgid "quechua" +#: js/activity.js:390 +#: js/activity.js:395 +msgid "Search for blocks" msgstr "" -#: js/toolbar.js:97 -#: js/toolbar.js:162 -#: js/toolbar.js:217 -#: js/toolbar.js:272 -msgid "guarani" +#: js/activity.js:1413 +msgid "Refresh your browser to change to advanced mode." msgstr "" -#: js/toolbar.js:98 -#: js/toolbar.js:163 -#: js/toolbar.js:218 -#: js/toolbar.js:273 -msgid "हिंदी" +#: js/activity.js:1418 +msgid "Refresh your browser to change to beginner mode." msgstr "" -#: js/toolbar.js:99 -#: js/toolbar.js:165 -#: js/toolbar.js:219 -#: js/toolbar.js:275 -msgid "igbo" +#: js/activity.js:1477 +msgid "Catching mice" +msgstr "" + +#: js/activity.js:1478 +msgid "Cleaning the instruments" +msgstr "" + +#: js/activity.js:1479 +msgid "Testing key pieces" +msgstr "" + +#: js/activity.js:1480 +msgid "Sight-reading" +msgstr "" + +#: js/activity.js:1481 +msgid "Combining math and music" msgstr "" -#: js/toolbar.js:100 -#: js/toolbar.js:166 -#: js/toolbar.js:220 -#: js/toolbar.js:276 -msgid "عربى" +#: js/activity.js:1482 +msgid "Generating more blocks" msgstr "" -#: js/toolbar.js:101 -#: js/toolbar.js:164 -#: js/toolbar.js:221 -#: js/toolbar.js:274 -msgid "తెలుగు" +#: js/activity.js:1483 +msgid "Do Re Mi Fa Sol La Ti Do" msgstr "" -#: js/toolbar.js:102 -#: js/toolbar.js:167 -#: js/toolbar.js:222 -#: js/toolbar.js:277 -msgid "עִברִית" +#: js/activity.js:1484 +msgid "Tuning string instruments" msgstr "" -#: js/toolbar.js:111 -#: js/toolbar.js:175 -#: js/toolbar.js:176 -#: js/toolbar.js:231 -msgid "Full Screen" +#: js/activity.js:1485 +msgid "Pressing random keys" msgstr "" -#: js/toolbar.js:145 -#: js/toolbar.js:148 -#: js/toolbar.js:200 -#: js/toolbar.js:203 -#: js/toolbar.js:255 -#: js/toolbar.js:258 -#: js/turtledefs.js:558 -msgid "Save turtle artwork as PNG" +#: js/activity.js:1663 +msgid "plugins will be removed upon restart." msgstr "" -#: js/toolbar.js:147 -#: js/toolbar.js:202 -#: js/toolbar.js:257 -#: js/turtledefs.js:554 -msgid "Save turtle artwork as SVG" +#: js/activity.js:1672 +msgid "show Cartesian" msgstr "" -#: js/toolbar.js:154 -#: js/toolbar.js:209 -#: js/toolbar.js:264 -msgid "한국인" +#: js/activity.js:2211 +#: js/palette.js:589 +#: js/blocks/RhythmBlocks.js:923 +#: js/blocks/PitchBlocks.js:442 +#: js/blocks/PitchBlocks.js:1786 +#.TRANS: a numeric mapping of the notes in an octave based on the musical mode +msgid "scale degree" msgstr "" -#: js/toolbar.js:171 -#: js/toolbar.js:227 -msgid "About Turtle Blocks" +#: js/activity.js:2214 +#: js/palette.js:598 +msgid "voice name" msgstr "" -#: js/toolbar.js:429 -#: js/toolbar.js:440 -msgid "Turtle Wrap Off" +#: js/activity.js:2217 +#: js/palette.js:595 +msgid "invert mode" msgstr "" -#: js/toolbar.js:442 -msgid "Turtle Wrap On" +#: js/activity.js:2220 +msgid "output tools" msgstr "" -#: js/block.js:1470 -msgid "matrix" +#: js/activity.js:2223 +msgid "custom note" msgstr "" -#: js/block.js:1477 -#: js/WidgetBlocks.js:1226 -#: plugins/rodi.rtp:324 -msgid "status" +#: js/activity.js:2226 +msgid "accidental name" msgstr "" -#: js/block.js:1484 -msgid "drum mapper" +#: js/activity.js:2229 +#: js/blocks/PitchBlocks.js:855 +msgid "east indian solfege" msgstr "" -#: js/block.js:1491 -msgid "ruler" +#: js/activity.js:2232 +#: js/blocks/PitchBlocks.js:869 +msgid "note name" msgstr "" -#: js/block.js:1498 -#: js/WidgetBlocks.js:327 -#.TRANS: timbre is the character or quality of a musical sound -msgid "timbre" +#: js/activity.js:2235 +#: js/blocks/IntervalsBlocks.js:94 +msgid "temperament name" msgstr "" -#: js/block.js:1505 -msgid "stair" +#: js/activity.js:2238 +#: js/palette.js:592 +msgid "mode name" msgstr "" -#: js/block.js:1512 -#: js/WidgetBlocks.js:577 -#.TRANS: the speed at music is should be played. -msgid "tempo" +#: js/activity.js:2241 +msgid "chord name" msgstr "" -#: js/block.js:1519 -#: js/block.js:1582 -#: js/IntervalsBlocks.js:1268 -#.TRANS: mode, e.g., Major in C Major -msgid "mode" +#: js/activity.js:2244 +#: js/palette.js:615 +msgid "interval name" msgstr "" -#: js/block.js:1526 -msgid "slider" +#: js/activity.js:2247 +msgid "filter type" msgstr "" -#: js/block.js:1533 -#: js/SensorsBlocks.js:1001 -msgid "keyboard" +#: js/activity.js:2250 +msgid "oscillator type" msgstr "" -#: js/block.js:1547 -#: js/WidgetBlocks.js:957 -#: js/WidgetBlocks.js:988 -#.TRANS: widget for subdividing a measure into distinct rhythmic elements -msgid "rhythm maker" +#: js/activity.js:2253 +#: js/blocks.js:2479 +#: js/blocks.js:2487 +msgid "audio file" msgstr "" -#: js/block.js:1554 -#: js/block.js:2182 -#: js/block.js:2236 -#: js/RhythmBlockPaletteBlocks.js:70 -#: js/RhythmBlockPaletteBlocks.js:251 -#: js/RhythmBlockPaletteBlocks.js:484 -#: js/RhythmBlockPaletteBlocks.js:553 -#: js/RhythmBlockPaletteBlocks.js:604 -#: js/RhythmBlockPaletteBlocks.js:874 -#: js/RhythmBlocks.js:33 -#: js/RhythmBlocks.js:356 -#: js/RhythmBlocks.js:766 -#: js/RhythmBlocks.js:806 -#: js/OrnamentBlocks.js:220 -#: js/OrnamentBlocks.js:312 -#: js/MeterBlocks.js:1367 -#: js/DictActions.js:85 -#: js/phrasemaker.js:731 -#: js/phrasemaker.js:2393 -#: js/phrasemaker.js:2436 -#: js/phrasemaker.js:2534 -#.TRANS: the value (e.g., 1/4 note) of the note being played. -msgid "note value" +#: js/activity.js:2256 +#: js/blocks/DrumBlocks.js:32 +msgid "noise name" msgstr "" -#: js/block.js:1561 -#: js/block.js:2110 -#: js/block.js:2133 -#: js/IntervalsBlocks.js:875 -#: js/OrnamentBlocks.js:312 -#.TRANS: calculate a relative step between notes based on semi-tones -msgid "scalar interval" +#: js/activity.js:2259 +#: js/blocks/DrumBlocks.js:75 +msgid "drum name" msgstr "" -#: js/block.js:1568 -#: js/RhythmBlocks.js:148 -msgid "milliseconds" +#: js/activity.js:2262 +#: js/blocks/DrumBlocks.js:119 +msgid "effects name" msgstr "" -#: js/block.js:2180 -#: js/block.js:2184 -#: js/block.js:2234 -#: js/block.js:2345 -#: js/ProgramBlocks.js:1273 -#: js/RhythmBlocks.js:712 -#: js/rhythmruler.js:834 -#: js/rhythmruler.js:961 -msgid "silence" +#: js/activity.js:2265 +msgid "wrap mode" msgstr "" -#: js/block.js:2265 -#: js/block.js:3134 -#: js/block.js:3151 -#: js/activity.js:2336 -#: js/activity.js:2387 -#: js/musicutils.js:2932 -#: js/musicutils.js:4287 -#.TRANS: the note names must be separated by single spaces -#.TRANS: the note names must be separated by single spaces -msgid "ti la sol fa mi re do" +#: js/activity.js:2268 +msgid "load file" msgstr "" -#: js/block.js:2333 -#.TRANS: scalar step -msgid "down" +#: js/activity.js:2435 +#: js/activity.js:5851 +msgid "This block is deprecated." msgstr "" -#: js/block.js:2334 -msgid "up" +#: js/activity.js:2437 +#: js/activity.js:5853 +msgid "Block cannot be found." msgstr "" -#: js/block.js:3477 -#: js/block.js:3490 -#: js/ExtrasBlocks.js:612 -msgid "Cartesian" +#: js/activity.js:2645 +msgid "Saving block artwork" msgstr "" -#: js/block.js:3478 -#: js/block.js:3491 -#: js/ExtrasBlocks.js:616 -msgid "polar" +#: js/activity.js:2656 +msgid "Erase" msgstr "" -#: js/block.js:3479 -#: js/block.js:3492 -#: js/ExtrasBlocks.js:620 -msgid "Cartesian+polar" +#: js/activity.js:2683 +#: js/activity.js:2705 +msgid "Paste" msgstr "" -#: js/block.js:3480 -#: js/block.js:3499 -#: js/ExtrasBlocks.js:649 -msgid "none" +#: js/activity.js:2687 +msgid "Save block help" msgstr "" -#: js/block.js:3493 -#: js/ExtrasBlocks.js:625 -msgid "treble" +#: js/activity.js:2772 +msgid "Jumping to the bottom of the page." msgstr "" -#: js/block.js:3494 -#: js/ExtrasBlocks.js:629 -msgid "grand staff" +#: js/activity.js:2778 +msgid "Scrolling up." msgstr "" -#: js/block.js:3495 -#: js/ExtrasBlocks.js:633 -msgid "mezzo-soprano" +#: js/activity.js:2783 +msgid "Scrolling down." msgstr "" -#: js/block.js:3496 -#: js/ExtrasBlocks.js:637 -msgid "alto" +#: js/activity.js:2788 +msgid "Extracting block" msgstr "" -#: js/block.js:3497 -#: js/ExtrasBlocks.js:641 -msgid "tenor" +#: js/activity.js:2796 +msgid "Moving block up." msgstr "" -#: js/block.js:3498 -#: js/ExtrasBlocks.js:645 -#: js/musicutils.js:736 -#: js/synthutils.js:64 -#.TRANS: musical instrument -msgid "bass" +#: js/activity.js:2817 +msgid "Moving block down." msgstr "" -#: js/block.js:4075 -msgid "Not a number" +#: js/activity.js:2838 +msgid "Moving block left." msgstr "" -#: js/block.js:4082 -msgid "Octave value must be between 1 and 10." +#: js/activity.js:2855 +msgid "Moving block right." msgstr "" -#: js/block.js:4090 -msgid "Numbers can have at most 10 digits." +#: js/activity.js:2870 +msgid "Jump to home position." msgstr "" -#: js/notation.js:353 -msgid "Lilypond cannot process pickup of " +#: js/activity.js:2897 +msgid "Hide blocks" msgstr "" -#: js/turtledefs.js:40 -#.TRANS: put the URL to the guide here, e.g., https://github.com/sugarlabs/turtleblocksjs/tree/master/guide/README.md -msgid "guide url" +#: js/activity.js:4500 +msgid "Click the run button to run the project." msgstr "" -#: js/turtledefs.js:85 -#: js/turtledefs.js:437 -msgid "Turtle Blocks is a Logo-inspired turtle that draws colorful pictures with snap-together visual-programming blocks." +#: js/activity.js:5692 +msgid "Show/hide block" msgstr "" -#: js/turtledefs.js:118 -#: js/turtledefs.js:220 -msgid "search" +#: js/activity.js:5698 +msgid "Expand/collapse blocks" msgstr "" -#: js/turtledefs.js:120 -#: js/turtledefs.js:222 -#: js/WidgetBlocks.js:437 -#: js/MeterBlocks.js:1343 -#.TRANS: musical meter (time signature), e.g., 4:4 -msgid "meter" +#: js/activity.js:5976 +msgid "Could not parse JSON input." msgstr "" -#: js/turtledefs.js:122 -#: js/turtledefs.js:224 -msgid "intervals" +#: js/activity.js:6475 +#: js/activity.js:6580 +#: js/activity.js:6631 +msgid "Cannot load project from the file. Please check the file type." msgstr "" -#: js/turtledefs.js:124 -#: js/turtledefs.js:226 -msgid "ornament" +#: js/activity.js:6917 +msgid "Invalid parameters" msgstr "" -#: js/turtledefs.js:125 -#: js/turtledefs.js:227 -#: js/VolumeBlocks.js:362 -#: js/VolumeBlocks.js:502 -#: js/VolumeBlocks.js:545 -msgid "volume" +#: js/blocks.js:1212 +#: js/blocks.js:3444 +#: js/blocks.js:3834 +#: js/blocks.js:3865 +#: js/blocks.js:3914 +#: js/blocks.js:3949 +#: js/blocks.js:6586 +#: js/palette.js:509 +#: js/palette.js:638 +#: js/palette.js:1105 +#: js/blocks/BoxesBlocks.js:282 +#: js/blocks/BoxesBlocks.js:285 +#: js/blocks/BoxesBlocks.js:405 +#: js/blocks/BoxesBlocks.js:594 +msgid "box" msgstr "" -#: js/turtledefs.js:129 -#: js/turtledefs.js:231 -msgid "boxes" +#: js/blocks.js:1713 +msgid "Consider breaking this stack into parts." msgstr "" -#: js/turtledefs.js:130 -#: js/turtledefs.js:232 -msgid "widgets" +#: js/blocks.js:2472 +#: js/palette.js:653 +#: js/blocks/MediaBlocks.js:602 +msgid "open file" msgstr "" -#: js/turtledefs.js:131 -#: js/turtledefs.js:233 -#: js/phrasemaker.js:824 -msgid "graphics" +#: js/blocks.js:3247 +#: js/palette.js:574 +#: js/blocks/MediaBlocks.js:892 +#: js/blocks/MediaBlocks.js:963 +msgid "text" msgstr "" -#: js/turtledefs.js:134 -#: js/turtledefs.js:236 -msgid "boolean" +#: js/blocks.js:3443 +#: js/palette.js:641 +#: js/palette.js:642 +#: js/blocks/BoxesBlocks.js:514 +msgid "store in box" msgstr "" -#: js/turtledefs.js:137 -#: js/turtledefs.js:239 -#: js/HeapBlocks.js:59 -#: js/status.js:147 -msgid "heap" +#: js/blocks.js:3448 +#: js/blocks.js:3888 +#: js/blocks.js:3923 +#: js/blocks.js:3958 +#: js/blocks.js:5862 +#: js/blocks.js:5883 +#: js/blocks/BoxesBlocks.js:772 +msgid "box1" msgstr "" -#: js/turtledefs.js:138 -#: js/turtledefs.js:240 -#: js/ProgramBlocks.js:495 -#: js/DictBlocks.js:142 -msgid "dictionary" +#: js/blocks.js:3450 +#: js/blocks.js:3890 +#: js/blocks.js:3925 +#: js/blocks.js:3960 +#: js/blocks.js:5864 +#: js/blocks.js:5885 +#: js/blocks/BoxesBlocks.js:663 +msgid "box2" msgstr "" -#: js/turtledefs.js:139 -#: js/turtledefs.js:241 -msgid "ensemble" +#: js/blocks.js:4122 +#: js/palette.js:639 +#: js/palette.js:644 +#: js/palette.js:1041 +#: js/blocks/BoxesBlocks.js:591 +msgid "store in" msgstr "" -#: js/turtledefs.js:140 -#: js/turtledefs.js:242 -msgid "extras" +#: js/blocks.js:4122 +#: js/blocks/BoxesBlocks.js:595 +#: js/blocks/DictBlocks.js:215 +#: js/blocks/DictBlocks.js:289 +#: js/blocks/EnsembleBlocks.js:391 +#: js/blocks/EnsembleBlocks.js:402 +#: js/blocks/MediaBlocks.js:746 +#: js/blocks/PitchBlocks.js:656 +#: js/blocks/PitchBlocks.js:934 +#: js/blocks/PitchBlocks.js:1866 +#: js/blocks/ProgramBlocks.js:390 +#: js/blocks/ProgramBlocks.js:495 +#: js/blocks/ProgramBlocks.js:658 +#: js/blocks/ToneBlocks.js:1025 +msgid "name" msgstr "" -#: js/turtledefs.js:142 -#: js/turtledefs.js:244 -#.TRANS: program as in computer program -#.TRANS: program as in computer program -msgid "program" +#: js/blocks.js:4122 +#: js/blocks/BoxesBlocks.js:75 +#: js/blocks/BoxesBlocks.js:595 +#: js/blocks/DictBlocks.js:289 +#: js/blocks/DictBlocks.js:430 +#: js/blocks/HeapBlocks.js:544 +#: js/blocks/RhythmBlocks.js:1130 +msgid "value" msgstr "" -#: js/turtledefs.js:143 -#: js/turtledefs.js:245 -msgid "my blocks" +#: js/blocks.js:4465 +msgid "Forever loop detected inside a note value block. Unexpected things may happen." msgstr "" -#: js/turtledefs.js:185 -#: js/turtledefs.js:281 -msgid "artwork" +#: js/blocks.js:4988 +msgid "There is no block selected." msgstr "" -#: js/turtledefs.js:185 -#: js/turtledefs.js:281 -msgid "logic" +#: js/blocks.js:5091 +#: js/blocks/MediaBlocks.js:888 +msgid "show" msgstr "" -#: js/turtledefs.js:185 -#: js/turtledefs.js:281 -msgid "music" +#: js/blocks.js:5094 +#: js/blocks/MediaBlocks.js:803 +#.TRANS: Avatar is the image used to determine the appearance of the mouse. +msgid "avatar" msgstr "" -#: js/turtledefs.js:187 -#: js/turtledefs.js:463 -msgid "Music Blocks is a collection of tools for exploring fundamental musical concepts in a fun way." +#: js/blocks.js:5097 +#: js/blocks/ToneBlocks.js:1010 +#: js/widgets/sampler.js:975 +#.TRANS: The sound sample that the user uploads. +msgid "sample" msgstr "" -#: js/turtledefs.js:436 -msgid "Welcome to Turtle Blocks" +#: js/lilypond.js:606 +msgid "brown rat" msgstr "" -#: js/turtledefs.js:438 -#: js/turtledefs.js:465 -#: js/turtledefs.js:774 -#: js/turtledefs.js:805 -msgid "The current version is" +#: js/lilypond.js:607 +msgid "mole" msgstr "" -#: js/turtledefs.js:446 -#: js/turtledefs.js:483 -msgid "Click the run button to run the project in fast mode." +#: js/lilypond.js:608 +msgid "chipmunk" msgstr "" -#: js/turtledefs.js:452 -msgid "Stop the turtle." +#: js/lilypond.js:609 +msgid "red squirrel" msgstr "" -#: js/turtledefs.js:454 -#: js/turtledefs.js:491 -msgid "You can also type Alt-S to stop." +#: js/lilypond.js:610 +msgid "guinea pig" +msgstr "" + +#: js/lilypond.js:611 +msgid "capybara" msgstr "" -#: js/turtledefs.js:462 -#: js/help.js:333 -msgid "Welcome to Music Blocks" +#: js/lilypond.js:612 +msgid "coypu" msgstr "" -#: js/turtledefs.js:472 -#: js/help.js:334 -msgid "Meet Mr. Mouse!" +#: js/lilypond.js:613 +msgid "black rat" msgstr "" -#: js/turtledefs.js:473 -msgid "Mr Mouse is our Music Blocks conductor." +#: js/lilypond.js:614 +msgid "grey squirrel" msgstr "" -#: js/turtledefs.js:475 -msgid "Mr Mouse encourages you to explore Music Blocks." +#: js/lilypond.js:615 +msgid "flying squirrel" msgstr "" -#: js/turtledefs.js:477 -msgid "Let us start our tour!" +#: js/lilypond.js:616 +msgid "bat" msgstr "" -#: js/turtledefs.js:489 -msgid "Stop the music (and the mice)." +#: js/lilypond.js:749 +#: js/lilypond.js:913 +#: js/lilypond.js:951 +#: js/blocks/ActionBlocks.js:1256 +#: js/blocks/ExtrasBlocks.js:556 +msgid "start drum" msgstr "" -#: js/turtledefs.js:499 -msgid "Record your project as video." +#: js/logo.js:61 +msgid "Not a valid pitch name" msgstr "" -#: js/turtledefs.js:505 -msgid "Toggle Fullscreen mode." +#: js/logo.js:507 +#: js/blocks/ProgramBlocks.js:258 +#: js/blocks/ProgramBlocks.js:427 +msgid "You must select a file." msgstr "" -#: js/turtledefs.js:511 -msgid "Initialize a new project." +#: js/logo.js:1696 +msgid "Playback is ready." msgstr "" -#: js/turtledefs.js:517 -msgid "You can also load projects from the file system." +#: js/macros.js:711 +#: js/utils/musicutils.js:1162 +#: js/utils/synthutils.js:202 +#.TRANS: animal sound effect +msgid "duck" msgstr "" -#: js/turtledefs.js:522 -#: js/StringHelper.js:46 -msgid "Delete" +#: js/notation.js:353 +msgid "Lilypond cannot process pickup of " msgstr "" -#: js/turtledefs.js:523 -msgid "To delete a block, just right-click on it, then you will be able to see the delete option" +#: js/palette.js:571 +msgid "grid" msgstr "" -#: js/turtledefs.js:528 -#: js/activity.js:2270 -#: js/LocalCard.js:31 -msgid "Copy" +#: js/palette.js:580 +msgid "effect" msgstr "" -#: js/turtledefs.js:529 -msgid "To copy a block, just right-click on it, then you will be able to see the copy option" +#: js/palette.js:586 +msgid "sargam" msgstr "" -#: js/turtledefs.js:535 -msgid "To extract a block, just right-click on it, then you will be able to see the extract option" +#: js/palette.js:601 +#: js/blocks/PitchBlocks.js:1209 +msgid "custom pitch" msgstr "" -#: js/turtledefs.js:542 -#: js/turtledefs.js:552 -#: js/turtledefs.js:573 -msgid "Save your project to a file." +#: js/palette.js:609 +msgid "accidental" msgstr "" -#: js/turtledefs.js:549 -#: js/turtledefs.js:570 -msgid "save" +#: js/palette.js:633 +#: js/blocks/PitchBlocks.js:405 +msgid "pitch converter" msgstr "" -#: js/turtledefs.js:556 -#: js/turtledefs.js:577 -msgid "Save graphics from your project to as SVG." +#: js/piemenus.js:200 +#: js/utils/musicutils.js:1187 +#: js/utils/musicutils.js:1207 +#: js/widgets/musickeyboard.js:2341 +#: js/widgets/phrasemaker.js:1908 +#: js/widgets/sampler.js:810 +#.TRANS: double sharp is a music term related to pitch +msgid "double sharp" msgstr "" -#: js/turtledefs.js:560 -#: js/turtledefs.js:581 -msgid "Save graphics from your project as PNG." +#: js/piemenus.js:201 +#: js/utils/musicutils.js:1185 +#: js/utils/musicutils.js:1208 +#: js/blocks/PitchBlocks.js:1539 +#: js/turtleactions/PitchActions.js:323 +#: js/widgets/musickeyboard.js:2342 +#: js/widgets/phrasemaker.js:1909 +#: js/widgets/sampler.js:811 +#.TRANS: sharp is a music term related to pitch +#.TRANS: sharp is a half-step up in pitch +msgid "sharp" msgstr "" -#: js/turtledefs.js:564 -#: js/turtledefs.js:597 -msgid "Save block artwork as an SVG file." +#: js/piemenus.js:202 +#: js/utils/musicutils.js:1183 +#: js/utils/musicutils.js:1209 +#: js/widgets/musickeyboard.js:2343 +#: js/widgets/phrasemaker.js:1910 +#: js/widgets/sampler.js:812 +#.TRANS: natural is a music term related to pitch +msgid "natural" msgstr "" -#: js/turtledefs.js:585 -msgid "Save audio from your project as WAV." +#: js/piemenus.js:203 +#: js/utils/musicutils.js:1181 +#: js/utils/musicutils.js:1210 +#: js/blocks/PitchBlocks.js:1498 +#: js/turtleactions/PitchActions.js:326 +#: js/widgets/musickeyboard.js:2344 +#: js/widgets/phrasemaker.js:1911 +#: js/widgets/sampler.js:813 +#.TRANS: flat is a music term related to pitch +#.TRANS: flat is a half-step down in pitch +msgid "flat" msgstr "" -#: js/turtledefs.js:589 -msgid "Save your project to as an ABC file." +#: js/piemenus.js:204 +#: js/utils/musicutils.js:1179 +#: js/utils/musicutils.js:1211 +#: js/widgets/musickeyboard.js:2345 +#: js/widgets/phrasemaker.js:1912 +#: js/widgets/sampler.js:814 +#.TRANS: double flat is a music term related to pitch +msgid "double flat" msgstr "" -#: js/turtledefs.js:593 -msgid "Save your project to as a Lilypond file." +#: js/piemenus.js:2864 +#: js/utils/musicutils.js:1006 +#: js/blocks/PitchBlocks.js:1385 +#.TRANS: unison is a music term related to intervals +#.TRANS: unison means the note is the same as the current note +msgid "unison" msgstr "" -#: js/turtledefs.js:604 -msgid "Load samples from server" +#: js/piemenus.js:3018 +#: js/piemenus.js:3091 +#: js/utils/musicutils.js:1014 +#: js/utils/musicutils.js:1189 +#: js/utils/musicutils.js:1326 +#.TRANS: major is a music term related to intervals and mode +msgid "major" msgstr "" -#: js/turtledefs.js:605 -msgid "This button opens a viewer for loading example projects." +#: js/piemenus.js:3018 +#: js/piemenus.js:3091 +#: js/utils/musicutils.js:1032 +#.TRANS: modal scale for music +msgid "ionian" msgstr "" -#: js/turtledefs.js:611 -msgid "Palette buttons" +#: js/piemenus.js:3020 +#: js/piemenus.js:3095 +#: js/utils/musicutils.js:1012 +#: js/utils/musicutils.js:1190 +#: js/utils/musicutils.js:1323 +#.TRANS: minor is a music term related to intervals and mode +msgid "minor" msgstr "" -#: js/turtledefs.js:612 -msgid "This toolbar contains the palette buttons including Rhythm Pitch Tone Action and more." +#: js/piemenus.js:3020 +#: js/piemenus.js:3095 +#: js/utils/musicutils.js:1042 +#.TRANS: modal scale for music +msgid "aeolian" msgstr "" -#: js/turtledefs.js:614 -msgid "Click to show the palettes of blocks and drag blocks from the palettes onto the canvas to use them." +#: js/piemenus.js:3410 +msgid "Duplicate" msgstr "" -#: js/turtledefs.js:620 -msgid "Cartesian/Polar" +#: js/piemenus.js:3412 +msgid "Move to trash" msgstr "" -#: js/turtledefs.js:621 -msgid "Show or hide a coordinate grid." +#: js/piemenus.js:3413 +#: js/widgets/timbre.js:968 +#: planet/js/StringHelper.js:69 +msgid "Close" msgstr "" -#: js/turtledefs.js:627 -msgid "Clear the screen and return the mice to their initial positions." +#: js/piemenus.js:3419 +msgid "Save stack" msgstr "" -#: js/turtledefs.js:633 -msgid "Collapse the graphics window." +#: js/piemenus.js:3449 +msgid "In order to copy a sample, you must reload the widget, import the sample again, and export it." msgstr "" -#: js/turtledefs.js:638 -#: js/activity.js:4256 -#: js/activity.js:4256 -msgid "Home" +#: js/piemenus.js:3812 +msgid "You have chosen key " msgstr "" -#: js/turtledefs.js:639 -msgid "Return all blocks to the center of the screen." +#: js/piemenus.js:3816 +msgid " for your pitch preview." msgstr "" -#: js/turtledefs.js:644 -msgid "Show/hide blocks" +#: js/turtle-singer.js:1363 +#.TRANS: partials are weighted components in a harmonic series +msgid "You must have at least one Partial block inside of a Weighted-partial block" msgstr "" -#: js/turtledefs.js:645 -msgid "Hide or show the blocks and the palettes." +#: js/turtle-singer.js:2077 +msgid "synth cannot play chords." msgstr "" -#: js/turtledefs.js:650 -msgid "Expand/collapse collapsable blocks" +#: js/utils/musicutils.js:505 +#: js/utils/musicutils.js:645 +#: js/widgets/pitchdrummatrix.js:228 +#: js/widgets/musickeyboard.js:2885 +msgid "rest" msgstr "" -#: js/turtledefs.js:651 -msgid "Expand or collapse start and action stacks." +#: js/utils/musicutils.js:689 +msgid "Perfect unison" msgstr "" -#: js/turtledefs.js:658 -#: js/activity.js:4265 -msgid "Decrease block size" +#: js/utils/musicutils.js:689 +msgid "Diminished second" msgstr "" -#: js/turtledefs.js:659 -msgid "Decrease the size of the blocks." +#: js/utils/musicutils.js:690 +msgid "Minor second" msgstr "" -#: js/turtledefs.js:664 -#: js/activity.js:4267 -msgid "Increase block size" +#: js/utils/musicutils.js:690 +msgid "Augmented unison" msgstr "" -#: js/turtledefs.js:665 -msgid "Increase the size of the blocks." +#: js/utils/musicutils.js:691 +msgid "Major second" msgstr "" -#: js/turtledefs.js:670 -msgid "Expand/collapse option toolbar" +#: js/utils/musicutils.js:691 +msgid "Diminished third" msgstr "" -#: js/turtledefs.js:671 -msgid "Click this button to expand or collapse the auxillary toolbar." +#: js/utils/musicutils.js:692 +msgid "Minor third" msgstr "" -#: js/turtledefs.js:676 -msgid "Run slow" +#: js/utils/musicutils.js:692 +msgid "Augmented second" msgstr "" -#: js/turtledefs.js:677 -msgid "Click to run the project in slow mode." +#: js/utils/musicutils.js:693 +msgid "Major third" msgstr "" -#: js/turtledefs.js:683 -msgid "Click to run the project step by step." +#: js/utils/musicutils.js:693 +msgid "Diminished fourth" msgstr "" -#: js/turtledefs.js:690 -msgid "Display statistics about your Music project." +#: js/utils/musicutils.js:694 +msgid "Perfect fourth" msgstr "" -#: js/turtledefs.js:697 -msgid "Delete a selected plugin." +#: js/utils/musicutils.js:694 +msgid "Augmented third" msgstr "" -#: js/turtledefs.js:704 -msgid "Enable scrolling" +#: js/utils/musicutils.js:695 +msgid "Diminished fifth" msgstr "" -#: js/turtledefs.js:705 -msgid "You can scroll the blocks on the canvas." +#: js/utils/musicutils.js:695 +msgid "Augmented fourth" msgstr "" -#: js/turtledefs.js:714 -msgid "Wrap Turtle" +#: js/utils/musicutils.js:696 +msgid "Perfect fifth" msgstr "" -#: js/turtledefs.js:715 -msgid "Turn Turtle wrapping On or Off." +#: js/utils/musicutils.js:696 +msgid "Diminished sixth" msgstr "" -#: js/turtledefs.js:725 -msgid "Restore blocks from the trash." +#: js/utils/musicutils.js:697 +msgid "Minor sixth" msgstr "" -#: js/turtledefs.js:732 -msgid "Switch mode" +#: js/utils/musicutils.js:697 +msgid "Augmented fifth" msgstr "" -#: js/turtledefs.js:733 -msgid "Switch between beginner and advance modes." +#: js/utils/musicutils.js:698 +msgid "Major sixth" msgstr "" -#: js/turtledefs.js:739 -msgid "Select your language preference." +#: js/utils/musicutils.js:698 +msgid "Diminished seventh" msgstr "" -#: js/turtledefs.js:745 -msgid "Keyboard shortcuts" +#: js/utils/musicutils.js:699 +msgid "Minor seventh" msgstr "" -#: js/turtledefs.js:746 -msgid "You can type d to create a do block and r to create a re block etc." +#: js/utils/musicutils.js:699 +msgid "Augmented sixth" msgstr "" -#: js/turtledefs.js:753 -msgid "Show these messages." +#: js/utils/musicutils.js:700 +msgid "Major seventh" msgstr "" -#: js/turtledefs.js:759 -#: js/turtledefs.js:790 -#: js/help.js:335 -msgid "Guide" +#: js/utils/musicutils.js:700 +msgid "Diminished octave" msgstr "" -#: js/turtledefs.js:760 -msgid "A detailed guide to Turtle Blocks is available." +#: js/utils/musicutils.js:701 +msgid "Perfect octave" msgstr "" -#: js/turtledefs.js:764 -msgid "Turtle Blocks Guide" +#: js/utils/musicutils.js:701 +msgid "Augmented seventh" msgstr "" -#: js/turtledefs.js:767 -#: js/turtledefs.js:798 -#: js/help.js:336 -msgid "About" +#: js/utils/musicutils.js:702 +msgid "Minor ninth" msgstr "" -#: js/turtledefs.js:768 -msgid "Turtle Blocks is an open source collection of tools for exploring musical concepts." +#: js/utils/musicutils.js:702 +msgid "Augmented octave" msgstr "" -#: js/turtledefs.js:770 -msgid "A full list of contributors can be found in the Turtle Blocks GitHub repository." +#: js/utils/musicutils.js:703 +msgid "Major ninth" msgstr "" -#: js/turtledefs.js:772 -msgid "Turtle Blocks is licensed under the AGPL." +#: js/utils/musicutils.js:703 +msgid "Diminished tenth" msgstr "" -#: js/turtledefs.js:780 -msgid "Turtle Blocks GitHub repository" +#: js/utils/musicutils.js:704 +msgid "Minor tenth" msgstr "" -#: js/turtledefs.js:783 -#: js/turtledefs.js:814 -#: js/help.js:337 -#: js/help.js:359 -msgid "Congratulations." +#: js/utils/musicutils.js:704 +msgid "Augmented ninth" msgstr "" -#: js/turtledefs.js:784 -msgid "You have finished the tour. Please enjoy Turtle Blocks!" +#: js/utils/musicutils.js:705 +msgid "Major tenth" msgstr "" -#: js/turtledefs.js:791 -msgid "A detailed guide to Music Blocks is available." +#: js/utils/musicutils.js:705 +msgid "Diminished eleventh" msgstr "" -#: js/turtledefs.js:795 -#: js/SaveInterface.js:76 -msgid "Music Blocks Guide" +#: js/utils/musicutils.js:706 +msgid "Perfect eleventh" msgstr "" -#: js/turtledefs.js:799 -msgid "Music Blocks is an open source collection of tools for exploring musical concepts." +#: js/utils/musicutils.js:706 +msgid "Augmented tenth" msgstr "" -#: js/turtledefs.js:801 -msgid "A full list of contributors can be found in the Music Blocks GitHub repository." +#: js/utils/musicutils.js:707 +msgid "Diminished twelfth" msgstr "" -#: js/turtledefs.js:803 -msgid "Music Blocks is licensed under the AGPL." +#: js/utils/musicutils.js:707 +msgid "Augmented eleventh" msgstr "" -#: js/turtledefs.js:811 -msgid "Music Blocks GitHub repository" +#: js/utils/musicutils.js:708 +msgid "Perfect twelfth" msgstr "" -#: js/turtledefs.js:815 -msgid "You have finished the tour. Please enjoy Music Blocks!" +#: js/utils/musicutils.js:708 +msgid "Diminished thirteenth" msgstr "" -#: js/activity.js:369 -msgid "Search for blocks" +#: js/utils/musicutils.js:709 +msgid "Minor thirteenth" msgstr "" -#: js/activity.js:1145 -msgid "Refresh your browser to change to advanced mode." +#: js/utils/musicutils.js:709 +msgid "Augmented fifth, plus an octave" msgstr "" -#: js/activity.js:1150 -msgid "Refresh your browser to change to beginner mode." +#: js/utils/musicutils.js:710 +msgid "Major thirteenth" msgstr "" -#: js/activity.js:1184 -msgid "Catching mice" +#: js/utils/musicutils.js:710 +msgid "Diminished seventh, plus an octave" msgstr "" -#: js/activity.js:1185 -msgid "Cleaning the instruments" +#: js/utils/musicutils.js:838 +#.TRANS: ordinal number. Please keep exactly one space between each number. +msgid "1st 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th" msgstr "" -#: js/activity.js:1186 -msgid "Testing key pieces" +#: js/utils/musicutils.js:1008 +#: js/utils/musicutils.js:1191 +#: js/utils/musicutils.js:1325 +#.TRANS: augmented is a music term related to intervals +msgid "augmented" msgstr "" -#: js/activity.js:1187 -msgid "Sight-reading" +#: js/utils/musicutils.js:1010 +#: js/utils/musicutils.js:1192 +#: js/utils/musicutils.js:1324 +#.TRANS: diminished is a music term related to intervals and mode +msgid "diminished" msgstr "" -#: js/activity.js:1188 -msgid "Combining math and music" +#: js/utils/musicutils.js:1016 +#: js/utils/musicutils.js:1322 +#: js/blocks/IntervalsBlocks.js:649 +#: js/turtleactions/IntervalsActions.js:120 +#: js/turtleactions/IntervalsActions.js:124 +#.TRANS: perfect is a music term related to intervals +msgid "perfect" +msgstr "" + +#: js/utils/musicutils.js:1018 +#.TRANS: twelve semi-tone scale for music +msgid "chromatic" msgstr "" -#: js/activity.js:1189 -msgid "Generating more blocks" +#: js/utils/musicutils.js:1019 +msgid "algerian" msgstr "" -#: js/activity.js:1190 -msgid "Do Re Mi Fa Sol La Ti Do" +#: js/utils/musicutils.js:1020 +msgid "spanish" msgstr "" -#: js/activity.js:1191 -msgid "Tuning string instruments" +#: js/utils/musicutils.js:1022 +#.TRANS: modal scale in music +msgid "octatonic" msgstr "" -#: js/activity.js:1192 -msgid "Pressing random keys" +#: js/utils/musicutils.js:1024 +#.TRANS: harmonic major scale in music +msgid "harmonic major" msgstr "" -#: js/activity.js:1351 -msgid "plugins will be removed upon restart." +#: js/utils/musicutils.js:1026 +#.TRANS: natural minor scales in music +msgid "natural minor" msgstr "" -#: js/activity.js:1360 -msgid "show Cartesian" +#: js/utils/musicutils.js:1028 +#.TRANS: harmonic minor scale in music +msgid "harmonic minor" msgstr "" -#: js/activity.js:1842 -msgid "output tools" +#: js/utils/musicutils.js:1030 +#.TRANS: melodic minor scale in music +msgid "melodic minor" msgstr "" -#: js/activity.js:1845 -msgid "custom note" +#: js/utils/musicutils.js:1034 +#.TRANS: modal scale for music +msgid "dorian" msgstr "" -#: js/activity.js:1848 -msgid "accidental name" +#: js/utils/musicutils.js:1036 +#.TRANS: modal scale for music +msgid "phrygian" msgstr "" -#: js/activity.js:1851 -#: js/PitchBlocks.js:855 -msgid "east indian solfege" +#: js/utils/musicutils.js:1038 +#.TRANS: modal scale for music +msgid "lydian" msgstr "" -#: js/activity.js:1854 -#: js/PitchBlocks.js:869 -msgid "note name" +#: js/utils/musicutils.js:1040 +#.TRANS: modal scale for music +msgid "mixolydian" msgstr "" -#: js/activity.js:1857 -#: js/IntervalsBlocks.js:94 -msgid "temperament name" +#: js/utils/musicutils.js:1044 +#.TRANS: modal scale for music +msgid "locrian" msgstr "" -#: js/activity.js:1863 -msgid "chord name" +#: js/utils/musicutils.js:1046 +#.TRANS: minor jazz scale for music +msgid "jazz minor" msgstr "" -#: js/activity.js:1869 -msgid "filter type" +#: js/utils/musicutils.js:1048 +#.TRANS: bebop scale for music +msgid "bebop" msgstr "" -#: js/activity.js:1872 -msgid "oscillator type" +#: js/utils/musicutils.js:1049 +msgid "arabic" msgstr "" -#: js/activity.js:1878 -#: js/DrumBlocks.js:32 -msgid "noise name" +#: js/utils/musicutils.js:1050 +msgid "byzantine" msgstr "" -#: js/activity.js:1881 -#: js/DrumBlocks.js:75 -msgid "drum name" +#: js/utils/musicutils.js:1052 +#.TRANS: musical scale for music by Verdi +msgid "enigmatic" msgstr "" -#: js/activity.js:1884 -#: js/DrumBlocks.js:119 -msgid "effects name" +#: js/utils/musicutils.js:1053 +msgid "ethiopian" msgstr "" -#: js/activity.js:1887 -msgid "wrap mode" +#: js/utils/musicutils.js:1055 +#.TRANS: Ethiopic scale for music +msgid "geez" msgstr "" -#: js/activity.js:1890 -msgid "load file" +#: js/utils/musicutils.js:1056 +msgid "hindu" msgstr "" -#: js/activity.js:2056 -msgid "This block is deprecated." +#: js/utils/musicutils.js:1057 +msgid "hungarian" msgstr "" -#: js/activity.js:2058 -msgid "Block cannot be found." +#: js/utils/musicutils.js:1059 +#.TRANS: minor Romanian scale for music +msgid "romanian minor" msgstr "" -#: js/activity.js:2266 -msgid "Saving block artwork" +#: js/utils/musicutils.js:1060 +msgid "spanish gypsy" msgstr "" -#: js/activity.js:2277 -msgid "Erase" +#: js/utils/musicutils.js:1062 +#.TRANS: musical scale for Mid-Eastern music +msgid "maqam" msgstr "" -#: js/activity.js:2301 -#: js/activity.js:2323 -msgid "Paste" +#: js/utils/musicutils.js:1064 +#.TRANS: minor blues scale for music +msgid "minor blues" msgstr "" -#: js/activity.js:2305 -msgid "Save block help" +#: js/utils/musicutils.js:1066 +#.TRANS: major blues scale for music +msgid "major blues" msgstr "" -#: js/activity.js:2390 -msgid "Jumping to the bottom of the page." +#: js/utils/musicutils.js:1067 +msgid "whole tone" msgstr "" -#: js/activity.js:2396 -msgid "Scrolling up." +#: js/utils/musicutils.js:1069 +#.TRANS: pentatonic is a general term that means "five note scale". This scale is typically known as "minor pentatonic" +msgid "minor pentatonic" msgstr "" -#: js/activity.js:2401 -msgid "Scrolling down." +#: js/utils/musicutils.js:1071 +#.TRANS: pentatonic is a general term that means "five note scale". This scale is typically known as "major pentatonic" +msgid "major pentatonic" msgstr "" -#: js/activity.js:2406 -msgid "Extracting block" +#: js/utils/musicutils.js:1072 +msgid "chinese" msgstr "" -#: js/activity.js:2414 -msgid "Moving block up." +#: js/utils/musicutils.js:1073 +msgid "egyptian" msgstr "" -#: js/activity.js:2435 -msgid "Moving block down." +#: js/utils/musicutils.js:1075 +#.TRANS: https://en.wikipedia.org/wiki/Hirajoshi_scale NOTE: There are three different versions of this scale +msgid "hirajoshi" msgstr "" -#: js/activity.js:2456 -msgid "Moving block left." +#: js/utils/musicutils.js:1076 +msgid "Japan" msgstr "" -#: js/activity.js:2473 -msgid "Moving block right." +#: js/utils/musicutils.js:1078 +#.TRANS: https://en.wikipedia.org/wiki/In_scale and https://en.wikipedia.org/wiki/Sakura_Sakura +msgid "in" msgstr "" -#: js/activity.js:2488 -msgid "Jump to home position." +#: js/utils/musicutils.js:1080 +#.TRANS: https://en.wikipedia.org/wiki/Miny%C5%8D_scale +msgid "minyo" msgstr "" -#: js/activity.js:2515 -msgid "Hide blocks" +#: js/utils/musicutils.js:1082 +#.TRANS: Italian mathematician +msgid "fibonacci" msgstr "" -#: js/activity.js:3389 -msgid "Click the run button to run the project." +#: js/utils/musicutils.js:1083 +#: js/utils/musicutils.js:1134 +#: js/utils/musicutils.js:1177 +#: js/utils/musicutils.js:1199 +#: js/utils/synthutils.js:134 +#: js/blocks/IntervalsBlocks.js:1124 +#: js/blocks/ToneBlocks.js:946 +#: js/blocks/VolumeBlocks.js:411 +#: js/blocks/WidgetBlocks.js:399 +#: js/blocks/WidgetBlocks.js:404 +#: js/turtleactions/VolumeActions.js:218 +#: js/widgets/modewidget.js:919 +#.TRANS: customize voice +msgid "custom" msgstr "" -#: js/activity.js:3456 -#: js/SaveInterface.js:131 -#: js/SaveInterface.js:204 -#: js/SaveInterface.js:262 -#: js/SaveInterface.js:389 -#: js/SaveInterface.js:417 -#: js/ProjectStorage.js:27 -#: js/GlobalPlanet.js:467 -#: js/GlobalPlanet.js:469 -#: js/GlobalPlanet.js:495 -#.TRANS: default project title when saving as Lilypond -msgid "My Project" +#: js/utils/musicutils.js:1085 +#: js/utils/musicutils.js:1531 +#: js/blocks/WidgetBlocks.js:176 +#.TRANS: highpass filter +msgid "highpass" msgstr "" -#: js/activity.js:4261 -msgid "Show/hide block" +#: js/utils/musicutils.js:1087 +#: js/utils/musicutils.js:1532 +#.TRANS: lowpass filter +msgid "lowpass" msgstr "" -#: js/activity.js:4263 -msgid "Expand/collapse blocks" +#: js/utils/musicutils.js:1089 +#: js/utils/musicutils.js:1533 +#.TRANS: bandpass filter +msgid "bandpass" msgstr "" -#: js/activity.js:4381 -msgid "Could not parse JSON input." +#: js/utils/musicutils.js:1091 +#: js/utils/musicutils.js:1534 +#.TRANS: high-shelf filter +msgid "highshelf" msgstr "" -#: js/activity.js:4684 -#: js/activity.js:4771 -#: js/activity.js:4821 -msgid "Cannot load project from the file. Please check the file type." +#: js/utils/musicutils.js:1093 +#: js/utils/musicutils.js:1535 +#.TRANS: low-shelf filter +msgid "lowshelf" msgstr "" -#: js/activity.js:5051 -msgid "Invalid parameters" +#: js/utils/musicutils.js:1095 +#: js/utils/musicutils.js:1536 +#.TRANS: notch-shelf filter +msgid "notch" msgstr "" -#: js/turtle-singer.js:1334 -#.TRANS: partials are weighted components in a harmonic series -msgid "You must have at least one Partial block inside of a Weighted-partial block" +#: js/utils/musicutils.js:1097 +#: js/utils/musicutils.js:1537 +#.TRANS: all-pass filter +msgid "allpass" msgstr "" -#: js/turtle-singer.js:2048 -msgid "synth cannot play chords." +#: js/utils/musicutils.js:1099 +#: js/utils/musicutils.js:1538 +#.TRANS: peaking filter +msgid "peaking" msgstr "" -#: js/lilypond.js:614 -msgid "brown rat" +#: js/utils/musicutils.js:1100 +#: js/utils/musicutils.js:1546 +#: js/utils/synthutils.js:126 +#: js/blocks/PitchBlocks.js:85 +#.TRANS: sine wave +msgid "sine" msgstr "" -#: js/lilypond.js:615 -msgid "mole" +#: js/utils/musicutils.js:1101 +#: js/utils/musicutils.js:1547 +#: js/utils/synthutils.js:128 +#: js/blocks/PitchBlocks.js:39 +#.TRANS: square wave +msgid "square" msgstr "" -#: js/lilypond.js:616 -msgid "chipmunk" +#: js/utils/musicutils.js:1102 +#: js/utils/musicutils.js:1548 +#: js/utils/synthutils.js:132 +#: js/blocks/PitchBlocks.js:62 +#: js/blocks/ToneBlocks.js:39 +#.TRANS: triangle wave +msgid "triangle" msgstr "" -#: js/lilypond.js:617 -msgid "red squirrel" +#: js/utils/musicutils.js:1103 +#: js/utils/musicutils.js:1549 +#: js/utils/synthutils.js:130 +#: js/blocks/PitchBlocks.js:108 +#.TRANS: sawtooth wave +msgid "sawtooth" msgstr "" -#: js/lilypond.js:618 -msgid "guinea pig" +#: js/utils/musicutils.js:1105 +#: js/utils/musicutils.js:1312 +#: js/blocks/PitchBlocks.js:931 +#: js/blocks/PitchBlocks.js:937 +#: js/turtleactions/PitchActions.js:469 +#.TRANS: even numbers +#.TRANS: invert based on even or odd number or musical scale +msgid "even" msgstr "" -#: js/lilypond.js:619 -msgid "capybara" +#: js/utils/musicutils.js:1107 +#: js/utils/musicutils.js:1313 +#: js/blocks/PitchBlocks.js:937 +#: js/turtleactions/PitchActions.js:471 +#.TRANS: odd numbers +msgid "odd" msgstr "" -#: js/lilypond.js:620 -msgid "coypu" +#: js/utils/musicutils.js:1108 +#: js/utils/musicutils.js:1314 +#: js/blocks/PitchBlocks.js:937 +#: js/turtleactions/PitchActions.js:473 +msgid "scalar" msgstr "" -#: js/lilypond.js:621 -msgid "black rat" +#: js/utils/musicutils.js:1109 +#: js/utils/synthutils.js:72 +#: js/blocks/VolumeBlocks.js:47 +#.TRANS: musical instrument +msgid "piano" msgstr "" -#: js/lilypond.js:622 -msgid "grey squirrel" +#: js/utils/musicutils.js:1110 +#: js/utils/synthutils.js:74 +#.TRANS: musical instrument +msgid "violin" msgstr "" -#: js/lilypond.js:623 -msgid "flying squirrel" +#: js/utils/musicutils.js:1111 +#: js/utils/synthutils.js:76 +#.TRANS: viola musical instrument +msgid "viola" msgstr "" -#: js/lilypond.js:624 -msgid "bat" +#: js/utils/musicutils.js:1112 +#: js/utils/synthutils.js:114 +#.TRANS: xylophone musical instrument +msgid "xylophone" msgstr "" -#: js/lilypond.js:757 -#: js/lilypond.js:921 -#: js/lilypond.js:959 -#: js/ActionBlocks.js:1256 -#: js/ExtrasBlocks.js:553 -msgid "start drum" +#: js/utils/musicutils.js:1113 +#: js/utils/synthutils.js:136 +#.TRANS: vibraphone musical instrument +msgid "vibraphone" msgstr "" -#: js/SaveInterface.js:59 -#: js/SaveInterface.js:61 -#: js/SaveInterface.js:93 -msgid "Music Blocks Project" +#: js/utils/musicutils.js:1114 +#: js/utils/synthutils.js:78 +#.TRANS: musical instrument +msgid "cello" msgstr "" -#: js/SaveInterface.js:63 -msgid "This project was created in Music Blocks" +#: js/utils/musicutils.js:1116 +#: js/utils/synthutils.js:82 +#.TRANS: viola musical instrument +msgid "double bass" msgstr "" -#: js/SaveInterface.js:67 -msgid "Music Blocks is a Free/Libre Software application." +#: js/utils/musicutils.js:1117 +#: js/utils/synthutils.js:84 +#: js/widgets/rhythmruler.js:2511 +#.TRANS: musical instrument +msgid "guitar" msgstr "" -#: js/SaveInterface.js:69 -msgid "The source code can be accessed at" +#: js/utils/musicutils.js:1118 +#: js/utils/synthutils.js:86 +#.TRANS: musical instrument +msgid "acoustic guitar" msgstr "" -#: js/SaveInterface.js:72 -msgid "For more information, please consult the" +#: js/utils/musicutils.js:1119 +#: js/utils/synthutils.js:88 +#.TRANS: musical instrument +msgid "flute" msgstr "" -#: js/SaveInterface.js:83 -msgid "Alternatively, open the file in Music Blocks using the Load project button." +#: js/utils/musicutils.js:1120 +#: js/utils/synthutils.js:90 +#.TRANS: musical instrument +msgid "clarinet" msgstr "" -#: js/SaveInterface.js:85 -msgid "Project Code" +#: js/utils/musicutils.js:1121 +#: js/utils/synthutils.js:92 +#.TRANS: musical instrument +msgid "saxophone" msgstr "" -#: js/SaveInterface.js:87 -msgid "This code stores data about the blocks in a project." +#: js/utils/musicutils.js:1122 +#: js/utils/synthutils.js:94 +#.TRANS: musical instrument +msgid "tuba" msgstr "" -#: js/SaveInterface.js:89 -msgid "Show" +#: js/utils/musicutils.js:1123 +#: js/utils/synthutils.js:96 +#.TRANS: musical instrument +msgid "trumpet" msgstr "" -#: js/SaveInterface.js:91 -msgid "Hide" +#: js/utils/musicutils.js:1124 +#: js/utils/synthutils.js:98 +#.TRANS: musical instrument +msgid "oboe" msgstr "" -#: js/SaveInterface.js:197 -#: js/SaveInterface.js:58 -msgid "No description provided" +#: js/utils/musicutils.js:1125 +#: js/utils/synthutils.js:100 +#.TRANS: musical instrument +msgid "trombone" msgstr "" -#: js/SaveInterface.js:332 -msgid "Your recording is in progress." +#: js/utils/musicutils.js:1126 +#: js/utils/synthutils.js:116 +#.TRANS: polytone synthesizer +msgid "electronic synth" msgstr "" -#: js/SaveInterface.js:401 -#.TRANS: File name prompt for save as Lilypond -msgid "File name" +#: js/utils/musicutils.js:1127 +#: js/utils/synthutils.js:118 +#.TRANS: simple monotone synthesizer +msgid "simple 1" msgstr "" -#: js/SaveInterface.js:403 -#: js/StringHelper.js:39 -#.TRANS: Project title prompt for save as Lilypond -msgid "Project title" +#: js/utils/musicutils.js:1128 +msgid "simple 2" msgstr "" -#: js/SaveInterface.js:405 -#.TRANS: Project title prompt for save as Lilypond -msgid "Project author" +#: js/utils/musicutils.js:1129 +msgid "simple 3" msgstr "" -#: js/SaveInterface.js:407 -#.TRANS: MIDI prompt for save as Lilypond -msgid "Include MIDI output?" +#: js/utils/musicutils.js:1130 +msgid "simple 4" msgstr "" -#: js/SaveInterface.js:409 -#.TRANS: Guitar prompt for save as Lilypond -msgid "Include guitar tablature output?" +#: js/utils/musicutils.js:1131 +#: js/utils/synthutils.js:58 +#: js/blocks/DrumBlocks.js:191 +#.TRANS: white noise synthesizer +msgid "white noise" msgstr "" -#: js/SaveInterface.js:411 -#.TRANS: Lilypond is a scripting language for generating sheet music -msgid "Save as Lilypond" +#: js/utils/musicutils.js:1132 +#: js/utils/synthutils.js:60 +#.TRANS: brown noise synthesizer +msgid "brown noise" msgstr "" -#: js/SaveInterface.js:426 -#: js/EnsembleBlocks.js:75 -#: js/EnsembleBlocks.js:154 -#: js/EnsembleBlocks.js:216 -#: js/EnsembleBlocks.js:302 -#: js/EnsembleBlocks.js:348 -#: js/EnsembleBlocks.js:389 -#: js/EnsembleBlocks.js:441 -#: js/EnsembleBlocks.js:490 -#: js/EnsembleBlocks.js:536 -#: js/EnsembleBlocks.js:583 -#: js/EnsembleBlocks.js:637 -#: js/EnsembleBlocks.js:753 -#: js/EnsembleBlocks.js:840 -#: js/EnsembleBlocks.js:899 -#: js/EnsembleBlocks.js:942 -#: js/EnsembleBlocks.js:1212 -#: js/EnsembleBlocks.js:1280 -#.TRANS: default project author when saving as Lilypond -msgid "Mr. Mouse" +#: js/utils/musicutils.js:1133 +#: js/utils/synthutils.js:62 +#.TRANS: pink noise synthesizer +msgid "pink noise" msgstr "" -#: js/SaveInterface.js:573 -msgid "The Lilypond code is copied to clipboard. You can paste it here: " +#: js/utils/musicutils.js:1135 +#: js/utils/synthutils.js:148 +#: js/widgets/rhythmruler.js:2057 +#: js/widgets/rhythmruler.js:2319 +#.TRANS: musical instrument +msgid "snare drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:50 -#: js/RhythmBlockPaletteBlocks.js:232 -#.TRANS: rhythm block -#.TRANS: translate "rhythm1" as rhythm -msgid "rhythm1" +#: js/utils/musicutils.js:1136 +#: js/utils/synthutils.js:150 +#.TRANS: musical instrument +msgid "kick drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:70 -#: js/RhythmBlockPaletteBlocks.js:251 -#: js/RhythmBlockPaletteBlocks.js:484 -#: js/RhythmBlockPaletteBlocks.js:553 -#: js/RhythmBlockPaletteBlocks.js:874 -msgid "number of notes" +#: js/utils/musicutils.js:1137 +#: js/utils/synthutils.js:152 +#.TRANS: musical instrument +msgid "tom tom" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:126 -msgid "polyphonic rhythm" +#: js/utils/musicutils.js:1138 +#: js/utils/synthutils.js:154 +#.TRANS: musical instrument +msgid "floor tom" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:218 -msgid "The Rhythm block is used to generate rhythm patterns." +#: js/utils/musicutils.js:1139 +#: js/utils/synthutils.js:156 +#.TRANS: musical instrument +msgid "bass drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:279 -msgid "1/64 note" +#: js/utils/musicutils.js:1140 +#: js/utils/synthutils.js:158 +#.TRANS: a drum made from an inverted cup +msgid "cup drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:303 -msgid "1/32 note" +#: js/utils/musicutils.js:1141 +#: js/utils/synthutils.js:160 +#.TRANS: musical instrument +msgid "darbuka drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:331 -msgid "1/16 note" +#: js/utils/musicutils.js:1142 +#: js/utils/synthutils.js:164 +#.TRANS: musical instrument +msgid "hi hat" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:359 -msgid "eighth note" +#: js/utils/musicutils.js:1143 +#: js/utils/synthutils.js:166 +#.TRANS: a small metal bell +msgid "ride bell" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:387 -msgid "quarter note" +#: js/utils/musicutils.js:1144 +#: js/utils/synthutils.js:168 +#.TRANS: musical instrument +msgid "cow bell" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:415 -msgid "half note" +#: js/utils/musicutils.js:1145 +msgid "japanese drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:443 -msgid "whole note" +#: js/utils/musicutils.js:1146 +#: js/utils/synthutils.js:174 +#.TRANS: musical instrument +msgid "japanese bell" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:481 -#: js/RhythmBlockPaletteBlocks.js:550 -#: js/RhythmBlockPaletteBlocks.js:601 -#.TRANS: A tuplet is a note value divided into irregular time values. -msgid "tuplet" +#: js/utils/musicutils.js:1147 +#: js/utils/synthutils.js:170 +#.TRANS: musical instrument +msgid "triangle bell" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:767 -msgid "septuplet" +#: js/utils/musicutils.js:1148 +#: js/utils/synthutils.js:172 +#.TRANS: musical instrument +msgid "finger cymbals" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:795 -msgid "quintuplet" +#: js/utils/musicutils.js:1149 +#: js/utils/synthutils.js:176 +#.TRANS: a musically tuned set of bells +msgid "chime" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:823 -msgid "triplet" +#: js/utils/musicutils.js:1150 +#: js/utils/synthutils.js:178 +#.TRANS: a musical instrument +msgid "gong" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:850 -msgid "simple tuplet" +#: js/utils/musicutils.js:1151 +#: js/utils/synthutils.js:180 +#.TRANS: sound effect +msgid "clang" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:860 -msgid "Tuplets are a collection of notes that get scaled to a specific duration." +#: js/utils/musicutils.js:1152 +#: js/utils/synthutils.js:182 +#.TRANS: sound effect +msgid "crash" msgstr "" -#: js/WidgetBlocks.js:71 -#.TRANS: sound envelope (ADSR) -msgid "envelope" +#: js/utils/musicutils.js:1153 +#: js/utils/synthutils.js:184 +#.TRANS: sound effect +msgid "bottle" msgstr "" -#: js/WidgetBlocks.js:79 -#.TRANS: Attack time is the time taken for initial run-up of level from nil to peak, beginning when the key is first pressed. -msgid "attack" +#: js/utils/musicutils.js:1154 +#: js/utils/synthutils.js:186 +#.TRANS: sound effect +msgid "clap" msgstr "" -#: js/WidgetBlocks.js:81 -#.TRANS: Decay time is the time taken for the subsequent run down from the attack level to the designated sustain level. -msgid "decay" +#: js/utils/musicutils.js:1155 +#: js/utils/synthutils.js:188 +#.TRANS: sound effect +msgid "slap" msgstr "" -#: js/WidgetBlocks.js:83 -#.TRANS: Sustain level is the level during the main sequence of the sound's duration, until the key is released. -msgid "sustain" +#: js/utils/musicutils.js:1156 +#: js/utils/synthutils.js:190 +#.TRANS: sound effect +msgid "splash" msgstr "" -#: js/WidgetBlocks.js:85 -#.TRANS: Release time is the time taken for the level to decay from the sustain level to zero after the key is released. -msgid "release" +#: js/utils/musicutils.js:1157 +#: js/utils/synthutils.js:192 +#.TRANS: sound effect +msgid "bubbles" msgstr "" -#: js/WidgetBlocks.js:96 -msgid "Attack value should be from 0 to 100." +#: js/utils/musicutils.js:1158 +#: js/utils/synthutils.js:194 +#.TRANS: sound effect +msgid "raindrop" msgstr "" -#: js/WidgetBlocks.js:99 -msgid "Decay value should be from 0 to 100." +#: js/utils/musicutils.js:1159 +#: js/utils/synthutils.js:196 +#.TRANS: animal sound effect +msgid "cat" msgstr "" -#: js/WidgetBlocks.js:102 -msgid "Sustain value should be from 0 to 100." +#: js/utils/musicutils.js:1160 +#: js/utils/synthutils.js:198 +#.TRANS: animal sound effect +msgid "cricket" msgstr "" -#: js/WidgetBlocks.js:105 -msgid "Release value should be from 0-100." +#: js/utils/musicutils.js:1161 +#: js/utils/synthutils.js:200 +#.TRANS: animal sound effect +msgid "dog" msgstr "" -#: js/WidgetBlocks.js:121 -msgid "You are adding multiple envelope blocks." +#: js/utils/musicutils.js:1163 +#: js/utils/synthutils.js:102 +#.TRANS: musical instrument +msgid "banjo" msgstr "" -#: js/WidgetBlocks.js:144 -#.TRANS: a filter removes some unwanted components from a signal -msgid "filter" +#: js/utils/musicutils.js:1164 +#: js/utils/synthutils.js:104 +#.TRANS: musical instrument +msgid "koto" msgstr "" -#: js/WidgetBlocks.js:149 -#: js/musicutils.js:706 -#: js/musicutils.js:1105 -#.TRANS: highpass filter -msgid "highpass" +#: js/utils/musicutils.js:1165 +#: js/utils/synthutils.js:106 +#.TRANS: musical instrument +msgid "dulcimer" msgstr "" -#: js/WidgetBlocks.js:152 -#: js/ToneBlocks.js:42 -#: js/timbre.js:1558 -#: js/timbre.js:1808 -#.TRANS: type of filter, e.g., lowpass, highpass, etc. -#.TRANS: there are different types (sine, triangle, square...) of oscillators. -msgid "type" +#: js/utils/musicutils.js:1166 +#: js/utils/synthutils.js:108 +#.TRANS: musical instrument +msgid "electric guitar" msgstr "" -#: js/WidgetBlocks.js:154 -#: js/timbre.js:1818 -#.TRANS: rolloff is the steepness of a change in frequency. -msgid "rolloff" +#: js/utils/musicutils.js:1167 +#: js/utils/synthutils.js:110 +#.TRANS: musical instrument +msgid "bassoon" msgstr "" -#: js/WidgetBlocks.js:155 -#: js/MediaBlocks.js:692 -#: js/temperament.js:382 -#: js/temperament.js:417 -#: js/temperament.js:477 -#: js/temperament.js:485 -#: js/temperament.js:1348 -#: js/timbre.js:1842 -msgid "frequency" +#: js/utils/musicutils.js:1168 +#: js/utils/synthutils.js:112 +#.TRANS: musical instrument +msgid "celeste" msgstr "" -#: js/WidgetBlocks.js:179 -#.TRANS: rolloff is the steepness of a change in frequency. -msgid "Rolloff value should be either -12, -24, -48, or -96 decibels/octave." +#: js/utils/musicutils.js:1170 +#: js/widgets/temperament.js:787 +#.TRANS: musical temperament +msgid "equal" msgstr "" -#: js/WidgetBlocks.js:211 -msgid "The Temperament tool is used to define custom tuning." +#: js/utils/musicutils.js:1172 +#.TRANS: musical temperament +msgid "Pythagorean" msgstr "" -#: js/WidgetBlocks.js:277 -#: js/sampler.js:329 -msgid "Upload a sample and adjust its pitch center." +#: js/utils/musicutils.js:1174 +#.TRANS: musical temperament +msgid "just intonation" msgstr "" -#: js/WidgetBlocks.js:284 -#.TRANS: the speed at music is should be played. -msgid "sampler" +#: js/utils/musicutils.js:1176 +#.TRANS: musical temperament +msgid "meantone" msgstr "" -#: js/WidgetBlocks.js:329 -#: js/WidgetBlocks.js:334 -#: js/IntervalsBlocks.js:928 -#: js/VolumeBlocks.js:411 -#: js/ToneBlocks.js:946 -#: js/VolumeActions.js:218 -#: js/musicutils.js:704 -#: js/musicutils.js:755 -#: js/musicutils.js:798 -#: js/musicutils.js:820 -#: js/musicutils.js:1136 -#: js/synthutils.js:118 -#: js/modewidget.js:919 -#.TRANS: customize voice -msgid "custom" +#: js/utils/musicutils.js:1193 +msgid "major 7th" msgstr "" -#: js/WidgetBlocks.js:432 -msgid "The Meter block opens a tool to select strong beats for the meter." +#: js/utils/musicutils.js:1194 +msgid "minor 7th" msgstr "" -#: js/WidgetBlocks.js:473 -msgid "The oscilloscope block opens a tool to visualize waveforms." +#: js/utils/musicutils.js:1195 +msgid "dominant 7th" msgstr "" -#: js/WidgetBlocks.js:478 -msgid "oscilloscope" +#: js/utils/musicutils.js:1196 +msgid "minor-major 7th" msgstr "" -#: js/WidgetBlocks.js:530 -msgid "The Custom mode block opens a tool to explore musical mode (the spacing of the notes in a scale)." +#: js/utils/musicutils.js:1197 +msgid "fully-diminished 7th" msgstr "" -#: js/WidgetBlocks.js:536 -#.TRANS: musical mode is the pattern of half-steps in an octave, e.g., Major or Minor modes -msgid "custom mode" +#: js/utils/musicutils.js:1198 +msgid "half-diminished 7th" msgstr "" -#: js/WidgetBlocks.js:570 -msgid "The Tempo block opens a metronome to visualize the beat." +#: js/utils/musicutils.js:1557 +#: js/utils/musicutils.js:1569 +msgid "Equal (12EDO)" msgstr "" -#: js/WidgetBlocks.js:617 -msgid "The Arpeggio Widget is used to compose chord sequences." +#: js/utils/musicutils.js:1558 +#: js/utils/musicutils.js:1570 +msgid "5-limit Just Intonation" msgstr "" -#: js/WidgetBlocks.js:623 -#: js/IntervalsBlocks.js:683 -msgid "arpeggio" +#: js/utils/musicutils.js:1559 +#: js/utils/musicutils.js:1571 +msgid "Pythagorean (3-limit JI)" msgstr "" -#: js/WidgetBlocks.js:677 -msgid "The Pitch drum matrix is used to map pitches to drum sounds." +#: js/utils/musicutils.js:1560 +#: js/utils/musicutils.js:1561 +#: js/utils/musicutils.js:1572 +#: js/utils/musicutils.js:1573 +msgid "Meantone" msgstr "" -#: js/WidgetBlocks.js:682 -#.TRANS: makes a mapping between pitches and drum sounds -msgid "pitch-drum mapper" +#: js/utils/musicutils.js:1574 +msgid "Custom" msgstr "" -#: js/WidgetBlocks.js:724 -msgid "You must have at least one pitch block and one drum block in the matrix." +#: js/utils/musicutils.js:5387 +#: js/utils/musicutils.js:5430 +msgid "current" msgstr "" -#: js/WidgetBlocks.js:746 -msgid "The Pitch slider tool to is used to generate pitches at selected frequencies." +#: js/utils/musicutils.js:5390 +#: js/utils/musicutils.js:5421 +msgid "next" msgstr "" -#: js/WidgetBlocks.js:751 -#.TRANS: widget to generate pitches using a slider -msgid "pitch slider" +#: js/utils/musicutils.js:5393 +#: js/utils/musicutils.js:5426 +msgid "previous" msgstr "" -#: js/WidgetBlocks.js:788 -msgid "chromatic keyboard" +#: js/utils/synthutils.js:120 +#.TRANS: simple monotone synthesizer +msgid "simple-2" msgstr "" -#: js/WidgetBlocks.js:815 -#: js/WidgetBlocks.js:874 -#.TRANS: widget to generate pitches using a slider -msgid "music keyboard" +#: js/utils/synthutils.js:122 +#.TRANS: simple monotone synthesizer +msgid "simple-3" msgstr "" -#: js/WidgetBlocks.js:859 -#: js/WidgetBlocks.js:866 -msgid "The Music keyboard block opens a piano keyboard that can be used to create notes." +#: js/utils/synthutils.js:124 +#.TRANS: simple monotone synthesizer +msgid "simple-4" msgstr "" -#: js/WidgetBlocks.js:910 -msgid "The Pitch staircase tool to is used to generate pitches from a given ratio." +#: js/utils/synthutils.js:162 +#.TRANS: musical instrument +msgid "taiko" msgstr "" -#: js/WidgetBlocks.js:917 -#.TRANS: generate a progressive sequence of pitches -msgid "pitch staircase" +#: js/blocks/ActionBlocks.js:58 +msgid "The Return block will return a value from an action." msgstr "" -#: js/WidgetBlocks.js:982 -msgid "The Rhythm Maker block opens a tool to create drum machines." +#: js/blocks/ActionBlocks.js:75 +msgid "return" msgstr "" -#: js/WidgetBlocks.js:1036 -msgid "G major scale" +#: js/blocks/ActionBlocks.js:128 +msgid "The Return to URL block will return a value to a webpage." msgstr "" -#: js/WidgetBlocks.js:1064 -msgid "C major scale" +#: js/blocks/ActionBlocks.js:145 +msgid "return to URL" msgstr "" -#: js/WidgetBlocks.js:1097 -msgid "The Phrase Maker block opens a tool to create musical phrases." +#: js/blocks/ActionBlocks.js:233 +#: js/blocks/ActionBlocks.js:290 +#: js/blocks/ActionBlocks.js:501 +#: js/blocks/ActionBlocks.js:688 +msgid "The Calculate block returns a value calculated by an action." msgstr "" -#: js/WidgetBlocks.js:1104 -#.TRANS: assigns pitch to a sequence of beats to generate a melody -msgid "phrase maker" +#: js/blocks/ActionBlocks.js:251 +#: js/blocks/ActionBlocks.js:517 +#: js/blocks/ActionBlocks.js:707 +msgid "calculate" msgstr "" -#: js/WidgetBlocks.js:1168 -msgid "You must have at least one pitch block and one rhythm block in the matrix." +#: js/blocks/ActionBlocks.js:376 +#: js/blocks/ActionBlocks.js:593 +#: js/blocks/ActionBlocks.js:942 +#: js/blocks/ActionBlocks.js:1389 +#.TRANS: do is the do something or take an action. +msgid "The Do block is used to initiate an action." msgstr "" -#: js/WidgetBlocks.js:1220 -msgid "The Status block opens a tool for inspecting the status of Music Blocks as it is running." +#: js/blocks/ActionBlocks.js:390 +#: js/blocks/ActionBlocks.js:610 +#: js/blocks/ActionBlocks.js:959 +#: js/blocks/ActionBlocks.js:1048 +#: js/blocks/MeterBlocks.js:769 +msgid "do1" msgstr "" -#: js/IntervalsBlocks.js:45 -msgid "set temperament" +#: js/blocks/ActionBlocks.js:390 +#: js/blocks/ActionBlocks.js:610 +#: js/blocks/ActionBlocks.js:959 +#: js/blocks/ActionBlocks.js:1048 +#: js/blocks/FlowBlocks.js:742 +#: js/blocks/FlowBlocks.js:822 +#: js/blocks/MeterBlocks.js:769 +msgid "do" msgstr "" -#: js/IntervalsBlocks.js:63 -#: js/MediaBlocks.js:746 -#: js/PitchBlocks.js:657 -#: js/PitchBlocks.js:933 -#: js/PitchBlocks.js:972 -#: js/PitchBlocks.js:1005 -#: js/PitchBlocks.js:1166 -#: js/PitchBlocks.js:1679 -#: js/PitchBlocks.js:1720 -#: js/PitchBlocks.js:1827 -#: js/ToneBlocks.js:1025 -#.TRANS: adjusts the shift up or down by one octave (twelve half-steps in the interval between two notes, one having twice or half the frequency in Hz of the other.) -msgid "octave" +#: js/blocks/ActionBlocks.js:791 +#: js/blocks/ActionBlocks.js:865 +msgid "The Arg block contains the value of an argument passed to an action." msgstr "" -#: js/IntervalsBlocks.js:99 -msgid "The Temperament name block is used to select a tuning method." +#: js/blocks/ActionBlocks.js:806 +#: js/blocks/ActionBlocks.js:878 +msgid "arg" msgstr "" -#: js/IntervalsBlocks.js:161 -msgid "doubly" +#: js/blocks/ActionBlocks.js:836 +#: js/blocks/ActionBlocks.js:900 +#: js/blocks/ActionBlocks.js:908 +msgid "Invalid argument" msgstr "" -#: js/IntervalsBlocks.js:166 -msgid "The Doubly block will double the size of an interval." +#: js/blocks/ActionBlocks.js:944 +msgid "In the example, it is used with the One of block to choose a random phase." msgstr "" -#: js/IntervalsBlocks.js:262 -msgid "interval number" +#: js/blocks/ActionBlocks.js:1019 +#: js/blocks/ActionBlocks.js:1026 +msgid "The Listen block is used to listen for an event such as a mouse click." msgstr "" -#: js/IntervalsBlocks.js:330 -#.TRANS: measure the distance between two pitches in semi-tones -msgid "semi-tone interval measure" +#: js/blocks/ActionBlocks.js:1028 +msgid "When the event happens, an action is taken." msgstr "" -#: js/IntervalsBlocks.js:397 -#: js/IntervalsBlocks.js:513 -msgid "You must use two pitch blocks when measuring an interval." +#: js/blocks/ActionBlocks.js:1045 +msgid "on" msgstr "" -#: js/IntervalsBlocks.js:439 -msgid "The Scalar interval block measures the distance between two notes in the current key and mode." +#: js/blocks/ActionBlocks.js:1048 +#: js/blocks/ActionBlocks.js:1049 +#: js/blocks/ActionBlocks.js:1153 +msgid "event" msgstr "" -#: js/IntervalsBlocks.js:445 -#.TRANS: measure the distance between two pitches in steps of musical scale -msgid "scalar interval measure" +#: js/blocks/ActionBlocks.js:1133 +msgid "The Broadcast block is used to trigger an event." msgstr "" -#: js/IntervalsBlocks.js:592 -#: js/musicutils.js:637 -#: js/musicutils.js:908 -#.TRANS: perfect is a music term related to intervals -msgid "perfect" +#: js/blocks/ActionBlocks.js:1151 +msgid "broadcast" msgstr "" -#: js/IntervalsBlocks.js:621 -msgid "In the figure, we add sol# to sol." +#: js/blocks/ActionBlocks.js:1208 +msgid "Each Start block is a separate voice." msgstr "" -#: js/IntervalsBlocks.js:627 -#: js/OrnamentBlocks.js:220 -#.TRANS: calculate a relative step between notes based on semi-tones -msgid "semi-tone interval" +#: js/blocks/ActionBlocks.js:1304 +msgid "It is often used for storing a phrase of music that is repeated." msgstr "" -#: js/IntervalsBlocks.js:676 -msgid "The output of the example is: do, mi, sol, sol, ti, mi" +#: js/blocks/ActionBlocks.js:1495 +msgid "define temperament" msgstr "" -#: js/IntervalsBlocks.js:735 -msgid "The Chord block calculates common chords." +#: js/blocks/BooleanBlocks.js:44 +msgid "The Not block is the logical not operator." msgstr "" -#: js/IntervalsBlocks.js:737 -msgid "In the figure, we generate a C-major chord." +#: js/blocks/BooleanBlocks.js:62 +msgid "not" msgstr "" -#: js/IntervalsBlocks.js:742 -msgid "chord" +#: js/blocks/BooleanBlocks.js:134 +msgid "The And block is the logical and operator." msgstr "" -#: js/IntervalsBlocks.js:794 -msgid "The Ratio Interval block calculates an interval based on a ratio." +#: js/blocks/BooleanBlocks.js:152 +msgid "and" msgstr "" -#: js/IntervalsBlocks.js:799 -msgid "ratio interval" +#: js/blocks/BooleanBlocks.js:218 +msgid "The Or block is the logical or operator." msgstr "" -#: js/IntervalsBlocks.js:868 -msgid "In the figure, we add la to sol." +#: js/blocks/BooleanBlocks.js:236 +msgid "or" msgstr "" -#: js/IntervalsBlocks.js:924 -#.TRANS: define a custom mode -msgid "define mode" +#: js/blocks/BooleanBlocks.js:302 +msgid "The XOR block is the logical XOR operator." msgstr "" -#: js/IntervalsBlocks.js:977 -msgid "movable Do" +#: js/blocks/BooleanBlocks.js:320 +msgid "xor" msgstr "" -#: js/IntervalsBlocks.js:1028 -#.TRANS: mode length is the number of notes in the mode, e.g., 7 for major and minor scales; 12 for chromatic scales -msgid "mode length" +#: js/blocks/BooleanBlocks.js:808 +msgid "The Equal block returns True if the two numbers are equal." msgstr "" -#: js/IntervalsBlocks.js:1037 -msgid "The Mode length block is the number of notes in the current scale." +#: js/blocks/BooleanBlocks.js:909 +msgid "The Not-equal-to block returns True if the two numbers are not equal to each other." msgstr "" -#: js/IntervalsBlocks.js:1039 -msgid "Most Western scales have 7 notes." +#: js/blocks/BooleanBlocks.js:1008 +msgid "The Boolean block is used to specify true or false." msgstr "" -#: js/IntervalsBlocks.js:1088 -#.TRANS: the mode in music is 'major', 'minor', etc. -msgid "current mode" +#: js/blocks/BoxesBlocks.js:53 +#: js/blocks/BoxesBlocks.js:59 +msgid "The Add-to block is used to add to the value stored in a box." msgstr "" -#: js/IntervalsBlocks.js:1141 -#.TRANS: the key is a group of pitches with which a music composition is created -msgid "current key" +#: js/blocks/BoxesBlocks.js:61 +msgid "It can also be used with other blocks such as Color and Pen size." msgstr "" -#: js/IntervalsBlocks.js:1193 -#: js/IntervalsBlocks.js:1238 -#.TRANS: set the key and mode, e.g. C Major -msgid "set key" +#: js/blocks/BoxesBlocks.js:73 +msgid "add" msgstr "" -#: js/IntervalsBlocks.js:1247 -#: js/IntervalsBlocks.js:1253 -msgid "The Set key block is used to set the key and mode," +#: js/blocks/BoxesBlocks.js:75 +#: js/widgets/temperament.js:857 +msgid "to" msgstr "" -#: js/IntervalsBlocks.js:1253 -msgid "eg C Major" +#: js/blocks/BoxesBlocks.js:75 +#: js/blocks/BoxesBlocks.js:595 +#: js/blocks/HeapBlocks.js:544 +msgid "value1" msgstr "" -#: js/IntervalsBlocks.js:1266 -#: js/DictBlocks.js:215 -#: js/DictBlocks.js:216 -#: js/DictBlocks.js:289 -#: js/DictBlocks.js:290 -#: js/DictBlocks.js:357 -#: js/DictBlocks.js:430 -#: js/DictBlocks.js:431 -#.TRANS: key, e.g., C in C Major -msgid "key" +#: js/blocks/BoxesBlocks.js:118 +msgid "Block does not support incrementing." msgstr "" -#: js/ActionBlocks.js:58 -msgid "The Return block will return a value from an action." +#: js/blocks/BoxesBlocks.js:152 +msgid "The Add-1-to block adds one to the value stored in a box." msgstr "" -#: js/ActionBlocks.js:75 -msgid "return" +#: js/blocks/BoxesBlocks.js:163 +msgid "add 1 to" msgstr "" -#: js/ActionBlocks.js:128 -msgid "The Return to URL block will return a value to a webpage." +#: js/blocks/BoxesBlocks.js:211 +msgid "The Subtract-1-from block subtracts one from the value stored in a box." msgstr "" -#: js/ActionBlocks.js:145 -msgid "return to URL" +#: js/blocks/BoxesBlocks.js:222 +msgid "subtract 1 from" msgstr "" -#: js/ActionBlocks.js:233 -#: js/ActionBlocks.js:290 -#: js/ActionBlocks.js:501 -#: js/ActionBlocks.js:688 -msgid "The Calculate block returns a value calculated by an action." +#: js/blocks/BoxesBlocks.js:270 +#: js/blocks/BoxesBlocks.js:387 +msgid "The Box block returns the value stored in a box." msgstr "" -#: js/ActionBlocks.js:251 -#: js/ActionBlocks.js:517 -#: js/ActionBlocks.js:707 -msgid "calculate" +#: js/blocks/BoxesBlocks.js:500 +#: js/blocks/BoxesBlocks.js:576 +msgid "The Store in block will store a value in a box." msgstr "" -#: js/ActionBlocks.js:376 -#: js/ActionBlocks.js:593 -#: js/ActionBlocks.js:942 -#: js/ActionBlocks.js:1389 -#.TRANS: do is the do something or take an action. -msgid "The Do block is used to initiate an action." +#: js/blocks/BoxesBlocks.js:595 +#: js/blocks/EnsembleBlocks.js:391 +#: js/blocks/EnsembleBlocks.js:402 +msgid "name1" msgstr "" -#: js/ActionBlocks.js:390 -#: js/ActionBlocks.js:610 -#: js/ActionBlocks.js:959 -#: js/ActionBlocks.js:1048 -#: js/MeterBlocks.js:769 -msgid "do1" +#: js/blocks/BoxesBlocks.js:652 +msgid "The Box2 block returns the value stored in Box2." msgstr "" -#: js/ActionBlocks.js:390 -#: js/ActionBlocks.js:610 -#: js/ActionBlocks.js:959 -#: js/ActionBlocks.js:1048 -#: js/FlowBlocks.js:742 -#: js/FlowBlocks.js:822 -#: js/MeterBlocks.js:769 -msgid "do" +#: js/blocks/BoxesBlocks.js:703 +msgid "The Store in Box2 block is used to store a value in Box2." msgstr "" -#: js/ActionBlocks.js:791 -#: js/ActionBlocks.js:865 -msgid "The Arg block contains the value of an argument passed to an action." +#: js/blocks/BoxesBlocks.js:715 +msgid "store in box2" msgstr "" -#: js/ActionBlocks.js:806 -#: js/ActionBlocks.js:878 -msgid "arg" +#: js/blocks/BoxesBlocks.js:761 +msgid "The Box1 block returns the value stored in Box1." msgstr "" -#: js/ActionBlocks.js:836 -#: js/ActionBlocks.js:900 -#: js/ActionBlocks.js:908 -msgid "Invalid argument" +#: js/blocks/BoxesBlocks.js:812 +msgid "The Store in Box1 block is used to store a value in Box1." msgstr "" -#: js/ActionBlocks.js:944 -msgid "In the example, it is used with the One of block to choose a random phase." +#: js/blocks/BoxesBlocks.js:826 +msgid "store in box1" msgstr "" -#: js/ActionBlocks.js:1019 -#: js/ActionBlocks.js:1026 -msgid "The Listen block is used to listen for an event such as a mouse click." +#: js/blocks/DictBlocks.js:77 +msgid "show dictionary" msgstr "" -#: js/ActionBlocks.js:1028 -msgid "When the event happens, an action is taken." +#: js/blocks/DictBlocks.js:80 +#: js/blocks/DictBlocks.js:145 +#: js/blocks/DictBlocks.js:216 +#: js/blocks/DictBlocks.js:290 +#: js/blocks/ProgramBlocks.js:396 +#: js/blocks/ProgramBlocks.js:501 +#: js/blocks/ProgramBlocks.js:664 +msgid "My Dictionary" msgstr "" -#: js/ActionBlocks.js:1045 -msgid "on" +#: js/blocks/DictBlocks.js:129 +msgid "The Dictionary block returns a dictionary." msgstr "" -#: js/ActionBlocks.js:1048 -#: js/ActionBlocks.js:1049 -#: js/ActionBlocks.js:1153 -msgid "event" +#: js/blocks/DictBlocks.js:197 +#: js/blocks/DictBlocks.js:339 +msgid "The Get-dict block returns a value in the dictionary for a specified key." msgstr "" -#: js/ActionBlocks.js:1133 -msgid "The Broadcast block is used to trigger an event." +#: js/blocks/DictBlocks.js:212 +#: js/blocks/DictBlocks.js:354 +#.TRANS: retrieve a value from the dictionary with a given key +msgid "get value" msgstr "" -#: js/ActionBlocks.js:1151 -msgid "broadcast" +#: js/blocks/DictBlocks.js:215 +#: js/blocks/DictBlocks.js:216 +#: js/blocks/DictBlocks.js:289 +#: js/blocks/DictBlocks.js:290 +#: js/blocks/DictBlocks.js:357 +#: js/blocks/DictBlocks.js:430 +#: js/blocks/DictBlocks.js:431 +msgid "key2" msgstr "" -#: js/ActionBlocks.js:1208 -msgid "Each Start block is a separate voice." +#: js/blocks/DictBlocks.js:215 +#: js/blocks/DictBlocks.js:216 +#: js/blocks/DictBlocks.js:289 +#: js/blocks/DictBlocks.js:290 +#: js/blocks/DictBlocks.js:357 +#: js/blocks/DictBlocks.js:430 +#: js/blocks/DictBlocks.js:431 +#: js/blocks/IntervalsBlocks.js:1462 +#.TRANS: key, e.g., C in C Major +msgid "key" msgstr "" -#: js/ActionBlocks.js:1304 -msgid "It is often used for storing a phrase of music that is repeated." +#: js/blocks/DictBlocks.js:271 +#: js/blocks/DictBlocks.js:411 +msgid "The Set-dict block sets a value in the dictionary for a specified key." msgstr "" -#: js/ActionBlocks.js:1495 -msgid "define temperament" +#: js/blocks/DictBlocks.js:286 +#: js/blocks/DictBlocks.js:427 +#.TRANS: set a value in the dictionary for a given key +msgid "set value" msgstr "" -#: js/EnsembleBlocks.js:66 +#: js/blocks/EnsembleBlocks.js:66 msgid "mouse index heap" msgstr "" -#: js/EnsembleBlocks.js:68 +#: js/blocks/EnsembleBlocks.js:68 msgid "The Mouse index heap block returns a value in the heap at a specified location for a specified mouse." msgstr "" -#: js/EnsembleBlocks.js:77 -#: js/EnsembleBlocks.js:1080 +#: js/blocks/EnsembleBlocks.js:77 +#: js/blocks/EnsembleBlocks.js:1080 msgid "mouse name" msgstr "" -#: js/EnsembleBlocks.js:77 -#: js/EnsembleBlocks.js:92 -#: js/HeapBlocks.js:544 +#: js/blocks/EnsembleBlocks.js:77 +#: js/blocks/EnsembleBlocks.js:92 +#: js/blocks/HeapBlocks.js:544 #.TRANS: value1 is a numeric value (JAPANESE ONLY) msgid "index" msgstr "" -#: js/EnsembleBlocks.js:80 +#: js/blocks/EnsembleBlocks.js:80 msgid "turtle index heap" msgstr "" -#: js/EnsembleBlocks.js:82 +#: js/blocks/EnsembleBlocks.js:82 msgid "The Turtle index heap block returns a value in the heap at a specified location for a specified turtle." msgstr "" -#: js/EnsembleBlocks.js:90 -#: js/EnsembleBlocks.js:167 -#: js/EnsembleBlocks.js:230 -#: js/EnsembleBlocks.js:316 -#: js/EnsembleBlocks.js:362 -#: js/EnsembleBlocks.js:400 -#: js/EnsembleBlocks.js:454 -#: js/EnsembleBlocks.js:504 -#: js/EnsembleBlocks.js:550 -#: js/EnsembleBlocks.js:597 -#: js/EnsembleBlocks.js:651 -#: js/EnsembleBlocks.js:763 -#: js/EnsembleBlocks.js:854 -#: js/EnsembleBlocks.js:915 -#: js/EnsembleBlocks.js:955 -#: js/EnsembleBlocks.js:1219 -#: js/EnsembleBlocks.js:1293 +#: js/blocks/EnsembleBlocks.js:90 +#: js/blocks/EnsembleBlocks.js:167 +#: js/blocks/EnsembleBlocks.js:230 +#: js/blocks/EnsembleBlocks.js:316 +#: js/blocks/EnsembleBlocks.js:362 +#: js/blocks/EnsembleBlocks.js:400 +#: js/blocks/EnsembleBlocks.js:454 +#: js/blocks/EnsembleBlocks.js:504 +#: js/blocks/EnsembleBlocks.js:550 +#: js/blocks/EnsembleBlocks.js:597 +#: js/blocks/EnsembleBlocks.js:651 +#: js/blocks/EnsembleBlocks.js:763 +#: js/blocks/EnsembleBlocks.js:854 +#: js/blocks/EnsembleBlocks.js:915 +#: js/blocks/EnsembleBlocks.js:955 +#: js/blocks/EnsembleBlocks.js:1219 +#: js/blocks/EnsembleBlocks.js:1293 #.TRANS: Yertle is the name of a turtle. msgid "Yertle" msgstr "" -#: js/EnsembleBlocks.js:92 -#: js/EnsembleBlocks.js:1089 +#: js/blocks/EnsembleBlocks.js:92 +#: js/blocks/EnsembleBlocks.js:1089 msgid "turtle name" msgstr "" -#: js/EnsembleBlocks.js:122 -#: js/EnsembleBlocks.js:1197 -#: js/HeapBlocks.js:474 -#: js/HeapBlocks.js:572 +#: js/blocks/EnsembleBlocks.js:122 +#: js/blocks/EnsembleBlocks.js:1197 +#: js/blocks/HeapBlocks.js:474 +#: js/blocks/HeapBlocks.js:572 msgid "Index must be > 0." msgstr "" -#: js/EnsembleBlocks.js:127 -#: js/HeapBlocks.js:479 -#: js/HeapBlocks.js:577 +#: js/blocks/EnsembleBlocks.js:127 +#: js/blocks/HeapBlocks.js:479 +#: js/blocks/HeapBlocks.js:577 msgid "Maximum heap size is 1000." msgstr "" -#: js/EnsembleBlocks.js:145 +#: js/blocks/EnsembleBlocks.js:145 msgid "stop mouse" msgstr "" -#: js/EnsembleBlocks.js:147 +#: js/blocks/EnsembleBlocks.js:147 msgid "The Stop mouse block stops the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:158 +#: js/blocks/EnsembleBlocks.js:158 msgid "stop turtle" msgstr "" -#: js/EnsembleBlocks.js:160 +#: js/blocks/EnsembleBlocks.js:160 msgid "The Stop turtle block stops the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:184 -#: js/EnsembleBlocks.js:247 -#: js/EnsembleBlocks.js:413 -#: js/EnsembleBlocks.js:468 -#: js/EnsembleBlocks.js:706 -#: js/EnsembleBlocks.js:808 -#: js/EnsembleBlocks.js:870 -#: js/EnsembleBlocks.js:1190 -#: js/EnsembleBlocks.js:1253 +#: js/blocks/EnsembleBlocks.js:184 +#: js/blocks/EnsembleBlocks.js:247 +#: js/blocks/EnsembleBlocks.js:413 +#: js/blocks/EnsembleBlocks.js:468 +#: js/blocks/EnsembleBlocks.js:706 +#: js/blocks/EnsembleBlocks.js:808 +#: js/blocks/EnsembleBlocks.js:870 +#: js/blocks/EnsembleBlocks.js:1190 +#: js/blocks/EnsembleBlocks.js:1253 msgid "Cannot find mouse" msgstr "" -#: js/EnsembleBlocks.js:186 -#: js/EnsembleBlocks.js:249 -#: js/EnsembleBlocks.js:415 -#: js/EnsembleBlocks.js:470 -#: js/EnsembleBlocks.js:708 -#: js/EnsembleBlocks.js:810 -#: js/EnsembleBlocks.js:872 -#: js/EnsembleBlocks.js:1192 -#: js/EnsembleBlocks.js:1255 +#: js/blocks/EnsembleBlocks.js:186 +#: js/blocks/EnsembleBlocks.js:249 +#: js/blocks/EnsembleBlocks.js:415 +#: js/blocks/EnsembleBlocks.js:470 +#: js/blocks/EnsembleBlocks.js:708 +#: js/blocks/EnsembleBlocks.js:810 +#: js/blocks/EnsembleBlocks.js:872 +#: js/blocks/EnsembleBlocks.js:1192 +#: js/blocks/EnsembleBlocks.js:1255 msgid "Cannot find turtle" msgstr "" -#: js/EnsembleBlocks.js:206 +#: js/blocks/EnsembleBlocks.js:206 msgid "start mouse" msgstr "" -#: js/EnsembleBlocks.js:209 +#: js/blocks/EnsembleBlocks.js:209 msgid "The Start mouse block starts the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:220 +#: js/blocks/EnsembleBlocks.js:220 msgid "start turtle" msgstr "" -#: js/EnsembleBlocks.js:223 +#: js/blocks/EnsembleBlocks.js:223 msgid "The Start turtle block starts the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:256 +#: js/blocks/EnsembleBlocks.js:256 msgid "Mouse is already running." msgstr "" -#: js/EnsembleBlocks.js:258 +#: js/blocks/EnsembleBlocks.js:258 msgid "Turtle is already running." msgstr "" -#: js/EnsembleBlocks.js:282 +#: js/blocks/EnsembleBlocks.js:282 msgid "Cannot find start block" msgstr "" -#: js/EnsembleBlocks.js:292 +#: js/blocks/EnsembleBlocks.js:292 #.TRANS: pen color for this mouse msgid "mouse color" msgstr "" -#: js/EnsembleBlocks.js:294 +#: js/blocks/EnsembleBlocks.js:294 msgid "The Mouse color block returns the pen color of the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:306 +#: js/blocks/EnsembleBlocks.js:306 #.TRANS: pen color for this turtle msgid "turtle color" msgstr "" -#: js/EnsembleBlocks.js:308 +#: js/blocks/EnsembleBlocks.js:308 msgid "The Turtle color block returns the pen color of the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:338 +#: js/blocks/EnsembleBlocks.js:338 #.TRANS: heading (compass direction) for this mouse msgid "mouse heading" msgstr "" -#: js/EnsembleBlocks.js:340 +#: js/blocks/EnsembleBlocks.js:340 msgid "The Mouse heading block returns the heading of the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:352 +#: js/blocks/EnsembleBlocks.js:352 #.TRANS: heading (compass direction) for this turtle msgid "turtle heading" msgstr "" -#: js/EnsembleBlocks.js:354 +#: js/blocks/EnsembleBlocks.js:354 msgid "The Turtle heading block returns the heading of the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:384 -#: js/EnsembleBlocks.js:439 +#: js/blocks/EnsembleBlocks.js:384 +#: js/blocks/EnsembleBlocks.js:439 #.TRANS: set xy position for this mouse msgid "set mouse" msgstr "" -#: js/EnsembleBlocks.js:391 -#: js/EnsembleBlocks.js:402 -#: js/BoxesBlocks.js:595 -msgid "name1" -msgstr "" - -#: js/EnsembleBlocks.js:391 -#: js/EnsembleBlocks.js:402 -#: js/ProgramBlocks.js:881 -#: js/GraphicsBlocks.js:235 -#: js/GraphicsBlocks.js:313 -#: js/GraphicsBlocks.js:436 -#: js/GraphicsBlocks.js:487 -#: js/GraphicsBlocks.js:534 -#: js/GraphicsBlocks.js:750 +#: js/blocks/EnsembleBlocks.js:391 +#: js/blocks/EnsembleBlocks.js:402 +#: js/blocks/GraphicsBlocks.js:235 +#: js/blocks/GraphicsBlocks.js:313 +#: js/blocks/GraphicsBlocks.js:436 +#: js/blocks/GraphicsBlocks.js:487 +#: js/blocks/GraphicsBlocks.js:534 +#: js/blocks/GraphicsBlocks.js:750 +#: js/blocks/ProgramBlocks.js:881 msgid "x" msgstr "" -#: js/EnsembleBlocks.js:391 -#: js/EnsembleBlocks.js:402 -#: js/ProgramBlocks.js:881 -#: js/GraphicsBlocks.js:149 -#: js/GraphicsBlocks.js:313 -#: js/GraphicsBlocks.js:436 -#: js/GraphicsBlocks.js:487 -#: js/GraphicsBlocks.js:534 -#: js/GraphicsBlocks.js:750 +#: js/blocks/EnsembleBlocks.js:391 +#: js/blocks/EnsembleBlocks.js:402 +#: js/blocks/GraphicsBlocks.js:149 +#: js/blocks/GraphicsBlocks.js:313 +#: js/blocks/GraphicsBlocks.js:436 +#: js/blocks/GraphicsBlocks.js:487 +#: js/blocks/GraphicsBlocks.js:534 +#: js/blocks/GraphicsBlocks.js:750 +#: js/blocks/ProgramBlocks.js:881 msgid "y" msgstr "" -#: js/EnsembleBlocks.js:395 -#: js/EnsembleBlocks.js:452 +#: js/blocks/EnsembleBlocks.js:395 +#: js/blocks/EnsembleBlocks.js:452 #.TRANS: set xy position for this turtle msgid "set turtle" msgstr "" -#: js/EnsembleBlocks.js:433 +#: js/blocks/EnsembleBlocks.js:433 msgid "The Set mouse block sends a stack of blocks to be run by the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:446 +#: js/blocks/EnsembleBlocks.js:446 msgid "The Set turtle block sends a stack of blocks to be run by the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:480 +#: js/blocks/EnsembleBlocks.js:480 #.TRANS: y position for this mouse msgid "mouse y" msgstr "" -#: js/EnsembleBlocks.js:482 +#: js/blocks/EnsembleBlocks.js:482 msgid "The Y mouse block returns the Y position of the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:494 +#: js/blocks/EnsembleBlocks.js:494 #.TRANS: y position for this turtle msgid "turtle y" msgstr "" -#: js/EnsembleBlocks.js:496 +#: js/blocks/EnsembleBlocks.js:496 msgid "The Y turtle block returns the Y position of the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:526 +#: js/blocks/EnsembleBlocks.js:526 #.TRANS: x position for this mouse msgid "mouse x" msgstr "" -#: js/EnsembleBlocks.js:528 +#: js/blocks/EnsembleBlocks.js:528 msgid "The X mouse block returns the X position of the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:540 +#: js/blocks/EnsembleBlocks.js:540 #.TRANS: x position for this turtle msgid "turtle x" msgstr "" -#: js/EnsembleBlocks.js:542 +#: js/blocks/EnsembleBlocks.js:542 msgid "The X turtle block returns the X position of the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:573 +#: js/blocks/EnsembleBlocks.js:573 #.TRANS: notes played by this mouse msgid "mouse notes played" msgstr "" -#: js/EnsembleBlocks.js:575 +#: js/blocks/EnsembleBlocks.js:575 msgid "The Mouse elapse notes block returns the number of notes played by the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:587 +#: js/blocks/EnsembleBlocks.js:587 #.TRANS: notes played by this turtle msgid "turtle notes played" msgstr "" -#: js/EnsembleBlocks.js:589 +#: js/blocks/EnsembleBlocks.js:589 msgid "The Turtle elapse notes block returns the number of notes played by the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:627 +#: js/blocks/EnsembleBlocks.js:627 #.TRANS: convert current note for this turtle to piano key (1-88) msgid "mouse pitch number" msgstr "" -#: js/EnsembleBlocks.js:629 +#: js/blocks/EnsembleBlocks.js:629 msgid "The Mouse pitch block returns the current pitch number being played by the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:641 +#: js/blocks/EnsembleBlocks.js:641 #.TRANS: convert current note for this turtle to piano key (1-88) msgid "turtle pitch number" msgstr "" -#: js/EnsembleBlocks.js:643 -msgid "The Turrle pitch block returns the current pitch number being played by the specified turtle." +#: js/blocks/EnsembleBlocks.js:643 +msgid "The Turtle pitch block returns the current pitch number being played by the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:747 -#: js/EnsembleBlocks.js:819 +#: js/blocks/EnsembleBlocks.js:747 +#: js/blocks/EnsembleBlocks.js:819 #.TRANS: note value is the duration of the note played by this mouse msgid "mouse note value" msgstr "" -#: js/EnsembleBlocks.js:757 +#: js/blocks/EnsembleBlocks.js:757 #.TRANS: note value is the duration of the note played by this turtle msgid "turtle note value" msgstr "" -#: js/EnsembleBlocks.js:830 +#: js/blocks/EnsembleBlocks.js:830 #.TRANS: sync is short for synchronization msgid "mouse sync" msgstr "" -#: js/EnsembleBlocks.js:832 +#: js/blocks/EnsembleBlocks.js:832 msgid "The Mouse sync block aligns the beat count between mice." msgstr "" -#: js/EnsembleBlocks.js:844 +#: js/blocks/EnsembleBlocks.js:844 #.TRANS: sync is short for synchronization msgid "turtle sync" msgstr "" -#: js/EnsembleBlocks.js:846 +#: js/blocks/EnsembleBlocks.js:846 msgid "The Turtle sync block aligns the beat count between turtles." msgstr "" -#: js/EnsembleBlocks.js:887 +#: js/blocks/EnsembleBlocks.js:887 msgid "The Found mouse block will return true if the specified mouse can be found." msgstr "" -#: js/EnsembleBlocks.js:893 +#: js/blocks/EnsembleBlocks.js:893 msgid "found mouse" msgstr "" -#: js/EnsembleBlocks.js:903 +#: js/blocks/EnsembleBlocks.js:903 msgid "The Found turtle block will return true if the specified turtle can be found." msgstr "" -#: js/EnsembleBlocks.js:909 +#: js/blocks/EnsembleBlocks.js:909 msgid "found turtle" msgstr "" -#: js/EnsembleBlocks.js:932 +#: js/blocks/EnsembleBlocks.js:932 msgid "new mouse" msgstr "" -#: js/EnsembleBlocks.js:934 +#: js/blocks/EnsembleBlocks.js:934 msgid "The New mouse block will create a new mouse." msgstr "" -#: js/EnsembleBlocks.js:945 +#: js/blocks/EnsembleBlocks.js:945 msgid "new turtle" msgstr "" -#: js/EnsembleBlocks.js:947 +#: js/blocks/EnsembleBlocks.js:947 msgid "The New turtle block will create a new turtle." msgstr "" -#: js/EnsembleBlocks.js:1011 +#: js/blocks/EnsembleBlocks.js:1011 msgid "set mouse color" msgstr "" -#: js/EnsembleBlocks.js:1014 +#: js/blocks/EnsembleBlocks.js:1014 msgid "The Set-mouse-color block is used to set the color of a mouse." msgstr "" -#: js/EnsembleBlocks.js:1020 +#: js/blocks/EnsembleBlocks.js:1020 msgid "set turtle color" msgstr "" -#: js/EnsembleBlocks.js:1023 +#: js/blocks/EnsembleBlocks.js:1023 msgid "The Set-turtle-color block is used to set the color of a turtle." msgstr "" -#: js/EnsembleBlocks.js:1083 +#: js/blocks/EnsembleBlocks.js:1083 msgid "The Mouse-name block returns the name of a mouse." msgstr "" -#: js/EnsembleBlocks.js:1092 +#: js/blocks/EnsembleBlocks.js:1092 msgid "The Turtle-name block returns the name of a turtle." msgstr "" -#: js/EnsembleBlocks.js:1115 +#: js/blocks/EnsembleBlocks.js:1115 msgid "mouse count" msgstr "" -#: js/EnsembleBlocks.js:1118 +#: js/blocks/EnsembleBlocks.js:1118 msgid "The Mouse-count block returns the number of mice." msgstr "" -#: js/EnsembleBlocks.js:1124 +#: js/blocks/EnsembleBlocks.js:1124 msgid "turtle count" msgstr "" -#: js/EnsembleBlocks.js:1127 +#: js/blocks/EnsembleBlocks.js:1127 msgid "The Turtle-count block returns the number of turtles." msgstr "" -#: js/EnsembleBlocks.js:1149 +#: js/blocks/EnsembleBlocks.js:1149 msgid "nth mouse name" msgstr "" -#: js/EnsembleBlocks.js:1152 +#: js/blocks/EnsembleBlocks.js:1152 msgid "The Nth-Mouse name block returns the name of the nth mouse." msgstr "" -#: js/EnsembleBlocks.js:1158 +#: js/blocks/EnsembleBlocks.js:1158 msgid "nth turtle name" msgstr "" -#: js/EnsembleBlocks.js:1161 +#: js/blocks/EnsembleBlocks.js:1161 msgid "The Nth-Turtle name block returns the name of the nth turtle." msgstr "" -#: js/EnsembleBlocks.js:1205 -#: js/EnsembleBlocks.js:1265 +#: js/blocks/EnsembleBlocks.js:1205 +#: js/blocks/EnsembleBlocks.js:1265 msgid "set name" msgstr "" -#: js/EnsembleBlocks.js:1214 -#: js/EnsembleBlocks.js:1221 +#: js/blocks/EnsembleBlocks.js:1214 +#: js/blocks/EnsembleBlocks.js:1221 msgid "source" msgstr "" -#: js/EnsembleBlocks.js:1214 -#: js/EnsembleBlocks.js:1221 +#: js/blocks/EnsembleBlocks.js:1214 +#: js/blocks/EnsembleBlocks.js:1221 msgid "target" msgstr "" -#: js/EnsembleBlocks.js:1271 +#: js/blocks/EnsembleBlocks.js:1271 msgid "The Set-name block is used to name a mouse." msgstr "" -#: js/EnsembleBlocks.js:1284 +#: js/blocks/EnsembleBlocks.js:1284 msgid "The Set-name block is used to name a turtle." msgstr "" -#: js/BooleanBlocks.js:44 -msgid "The Not block is the logical not operator." -msgstr "" - -#: js/BooleanBlocks.js:62 -msgid "not" -msgstr "" - -#: js/BooleanBlocks.js:134 -msgid "The And block is the logical and operator." -msgstr "" - -#: js/BooleanBlocks.js:152 -msgid "and" -msgstr "" - -#: js/BooleanBlocks.js:218 -msgid "The Or block is the logical or operator." -msgstr "" - -#: js/BooleanBlocks.js:236 -msgid "or" -msgstr "" - -#: js/BooleanBlocks.js:302 -msgid "The XOR block is the logical XOR operator." -msgstr "" - -#: js/BooleanBlocks.js:320 -msgid "xor" -msgstr "" - -#: js/BooleanBlocks.js:808 -msgid "The Equal block returns True if the two numbers are equal." -msgstr "" - -#: js/BooleanBlocks.js:909 -msgid "The Not-equal-to block returns True if the two numbers are not equal to each other." -msgstr "" - -#: js/BooleanBlocks.js:1008 -msgid "The Boolean block is used to specify true or false." -msgstr "" - -#: js/MediaBlocks.js:35 -#.TRANS: right side of the screen -msgid "right (screen)" -msgstr "" - -#: js/MediaBlocks.js:45 -#: js/MediaBlocks.js:56 -msgid "The Right block returns the position of the right of the canvas." -msgstr "" - -#: js/MediaBlocks.js:97 -#.TRANS: left side of the screen -msgid "left (screen)" -msgstr "" - -#: js/MediaBlocks.js:107 -#: js/MediaBlocks.js:118 -msgid "The Left block returns the position of the left of the canvas." -msgstr "" - -#: js/MediaBlocks.js:158 -msgid "top (screen)" -msgstr "" - -#: js/MediaBlocks.js:168 -#: js/MediaBlocks.js:179 -msgid "The Top block returns the position of the top of the canvas." -msgstr "" - -#: js/MediaBlocks.js:219 -msgid "bottom (screen)" +#: js/blocks/ExtrasBlocks.js:33 +msgid "fraction" msgstr "" -#: js/MediaBlocks.js:229 -#: js/MediaBlocks.js:240 -msgid "The Bottom block returns the position of the bottom of the canvas." +#: js/blocks/ExtrasBlocks.js:36 +msgid "Convert a float to a fraction" msgstr "" -#: js/MediaBlocks.js:282 -msgid "width" +#: js/blocks/ExtrasBlocks.js:93 +msgid "save as ABC" msgstr "" -#: js/MediaBlocks.js:291 -msgid "The Width block returns the width of the canvas." +#: js/blocks/ExtrasBlocks.js:96 +#: js/blocks/ExtrasBlocks.js:132 +#: js/blocks/ExtrasBlocks.js:168 +msgid "title" msgstr "" -#: js/MediaBlocks.js:325 -msgid "height" +#: js/blocks/ExtrasBlocks.js:129 +msgid "save as Lilypond" msgstr "" -#: js/MediaBlocks.js:334 -msgid "The Height block returns the height of the canvas." +#: js/blocks/ExtrasBlocks.js:165 +msgid "save as SVG" msgstr "" -#: js/MediaBlocks.js:369 -#.TRANS: stops playback of an audio recording -msgid "stop play" +#: js/blocks/ExtrasBlocks.js:216 +msgid "no background" msgstr "" -#: js/MediaBlocks.js:404 -#.TRANS: Erases the images and text -msgid "erase media" +#: js/blocks/ExtrasBlocks.js:219 +msgid "The No background block eliminates the background from the saved SVG output." msgstr "" -#: js/MediaBlocks.js:409 -msgid "The Erase Media block erases text and images." +#: js/blocks/ExtrasBlocks.js:247 +msgid "show blocks" msgstr "" -#: js/MediaBlocks.js:439 -#.TRANS: play an audio recording -msgid "play back" +#: js/blocks/ExtrasBlocks.js:249 +msgid "The Show blocks block shows the blocks." msgstr "" -#: js/MediaBlocks.js:487 -msgid "speak" +#: js/blocks/ExtrasBlocks.js:274 +msgid "hide blocks" msgstr "" -#: js/MediaBlocks.js:495 -msgid "The Speak block outputs to the text-to-speech synthesizer" +#: js/blocks/ExtrasBlocks.js:276 +msgid "The Hide blocks block hides the blocks." msgstr "" -#: js/MediaBlocks.js:546 -msgid "camera" +#: js/blocks/ExtrasBlocks.js:305 +#: js/blocks/ExtrasBlocks.js:338 +msgid "The Space block is used to add space between blocks." msgstr "" -#: js/MediaBlocks.js:551 -msgid "The Camera block connects a webcam to the Show block." +#: js/blocks/ExtrasBlocks.js:376 +msgid "wait" msgstr "" -#: js/MediaBlocks.js:574 -msgid "video" +#: js/blocks/ExtrasBlocks.js:379 +msgid "The Wait block pauses the program for a specified number of seconds." msgstr "" -#: js/MediaBlocks.js:579 -msgid "The Video block selects video for use with the Show block." +#: js/blocks/ExtrasBlocks.js:433 +#: plugins/facebook.rtp:30 +msgid "comment" msgstr "" -#: js/MediaBlocks.js:607 -msgid "The Open file block opens a file for use with the Show block." +#: js/blocks/ExtrasBlocks.js:469 +msgid "print" msgstr "" -#: js/MediaBlocks.js:645 -msgid "stop media" +#: js/blocks/ExtrasBlocks.js:476 +msgid "The Print block displays text at the top of the screen." msgstr "" -#: js/MediaBlocks.js:650 -msgid "The Stop media block stops audio or video playback." +#: js/blocks/ExtrasBlocks.js:582 +msgid "display grid" msgstr "" -#: js/MediaBlocks.js:679 -#: js/PitchBlocks.js:1539 -#: js/phrasemaker.js:822 -#: js/musickeyboard.js:1654 -#.TRANS: a measure of frequency: one cycle per second -msgid "hertz" +#: js/blocks/ExtrasBlocks.js:587 +msgid "The Display Grid Block changes the grid type" msgstr "" -#: js/MediaBlocks.js:692 -msgid "duration (ms)" +#: js/blocks/ExtrasBlocks.js:689 +#: js/blocks/ExtrasBlocks.js:708 +#: js/blocks/ExtrasBlocks.js:731 +#: js/blocks/ExtrasBlocks.js:754 +#: js/blocks/ExtrasBlocks.js:772 +#: js/blocks/ExtrasBlocks.js:791 +#: js/blocks/ExtrasBlocks.js:810 +#: js/blocks/ExtrasBlocks.js:829 +msgid "unknown" msgstr "" -#: js/MediaBlocks.js:728 -#.TRANS: translate a note into hertz, e.g., A4 -> 440HZ -msgid "note to frequency" +#: js/blocks/FlowBlocks.js:41 +msgid "The Backward block runs code in reverse order (Musical retrograde)." msgstr "" -#: js/MediaBlocks.js:736 -msgid "The To frequency block converts a pitch name and octave to Hertz." +#: js/blocks/FlowBlocks.js:48 +msgid "backward" msgstr "" -#: js/MediaBlocks.js:746 -#: js/PitchBlocks.js:656 -#: js/PitchBlocks.js:932 -#: js/PitchBlocks.js:1827 -#.TRANS: name2 is name as in name of pitch (JAPANESE ONLY) -msgid "name2" +#: js/blocks/FlowBlocks.js:124 +msgid "The Duplicate block will run each block multiple times." msgstr "" -#: js/MediaBlocks.js:812 -msgid "The Avatar block is used to change the appearance of the mouse." +#: js/blocks/FlowBlocks.js:136 +msgid "duplicate" msgstr "" -#: js/MediaBlocks.js:819 -msgid "The Avatar block is used to change the appearance of the turtle." +#: js/blocks/FlowBlocks.js:334 +msgid "The Default block is used inside of a Switch to define the default action." msgstr "" -#: js/MediaBlocks.js:831 -#: js/MediaBlocks.js:891 -#.TRANS: a media object -msgid "size" +#: js/blocks/FlowBlocks.js:342 +msgid "default" msgstr "" -#: js/MediaBlocks.js:831 -msgid "image" +#: js/blocks/FlowBlocks.js:361 +#: js/blocks/FlowBlocks.js:418 +msgid "The Case Block must be used inside of a Switch Block." msgstr "" -#: js/MediaBlocks.js:880 -msgid "The Show block is used to display text or images on the canvas." +#: js/blocks/FlowBlocks.js:389 +msgid "The Case block is used inside of a Switch to define matches." msgstr "" -#: js/MediaBlocks.js:888 -#.TRANS: show1 is show as in display an image or text on the screen. -msgid "show1" +#: js/blocks/FlowBlocks.js:397 +msgid "case" msgstr "" -#: js/MediaBlocks.js:891 -msgid "obj" +#: js/blocks/FlowBlocks.js:446 +msgid "The Switch block will run the code in the matching Case." msgstr "" -#: js/MediaBlocks.js:938 -msgid "The Media block is used to import an image." +#: js/blocks/FlowBlocks.js:454 +msgid "switch" msgstr "" -#: js/MediaBlocks.js:973 -msgid "The Text block holds a text string." +#: js/blocks/FlowBlocks.js:595 +msgid "The Stop block will stop a loop" msgstr "" -#: js/ProgramBlocks.js:33 -msgid "The Load-heap-from-app block loads the heap from a web page." +#: js/blocks/FlowBlocks.js:597 +msgid "Forever, Repeat, While, or Until." msgstr "" -#: js/ProgramBlocks.js:44 -#.TRANS: load the heap contents from a URL -msgid "load heap from App" +#: js/blocks/FlowBlocks.js:604 +#: js/widgets/timbre.js:417 +#: js/widgets/timbre.js:419 +#: js/widgets/musickeyboard.js:819 +#: js/widgets/musickeyboard.js:821 +#: js/widgets/phrasemaker.js:4202 +#: plugins/rodi.rtp:29 +#: plugins/rodi.rtp:73 +#: plugins/rodi.rtp:413 +msgid "stop" msgstr "" -#: js/ProgramBlocks.js:95 -msgid "Error parsing JSON data:" +#: js/blocks/FlowBlocks.js:653 +msgid "The Waitfor block will wait until the condition is true." msgstr "" -#: js/ProgramBlocks.js:100 -msgid "404: Page not found" +#: js/blocks/FlowBlocks.js:661 +msgid "wait for" msgstr "" -#: js/ProgramBlocks.js:133 -msgid "The Save-heap-to-app block saves the heap to a web page." +#: js/blocks/FlowBlocks.js:732 +msgid "The Until block will repeat until the condition is true." msgstr "" -#: js/ProgramBlocks.js:144 -#.TRANS: save the heap contents to a URL -msgid "save heap to App" +#: js/blocks/FlowBlocks.js:740 +msgid "until" msgstr "" -#: js/ProgramBlocks.js:189 -msgid "Cannot find a valid heap for" +#: js/blocks/FlowBlocks.js:742 +#: js/blocks/FlowBlocks.js:822 +msgid "do2" msgstr "" -#: js/ProgramBlocks.js:206 -msgid "The Load-heap block loads the heap from a file." +#: js/blocks/FlowBlocks.js:812 +msgid "The While block will repeat while the condition is true." msgstr "" -#: js/ProgramBlocks.js:217 -#.TRANS: load the heap from a file -msgid "load heap" +#: js/blocks/FlowBlocks.js:820 +msgid "while" msgstr "" -#: js/ProgramBlocks.js:270 -msgid "The file you selected does not contain a valid heap." +#: js/blocks/FlowBlocks.js:903 +#: js/blocks/FlowBlocks.js:968 +#: js/blocks/FlowBlocks.js:979 +msgid "In this example if the mouse button is pressed a snare drum will play." msgstr "" -#: js/ProgramBlocks.js:275 -msgid "The loadHeap block needs a loadFile block." +#: js/blocks/FlowBlocks.js:925 +#: js/blocks/FlowBlocks.js:988 +msgid "if" msgstr "" -#: js/ProgramBlocks.js:291 -msgid "The Set-heap block loads the heap." +#: js/blocks/FlowBlocks.js:927 +#: js/blocks/FlowBlocks.js:990 +msgid "then" msgstr "" -#: js/ProgramBlocks.js:299 -#: js/HeapBlocks.js:539 -#.TRANS: load the heap from a JSON encoding -msgid "set heap" +#: js/blocks/FlowBlocks.js:927 +msgid "else" msgstr "" -#: js/ProgramBlocks.js:340 -msgid "The block you selected does not contain a valid heap." +#: js/blocks/FlowBlocks.js:1025 +msgid "The Forever block will repeat the contained blocks forever." msgstr "" -#: js/ProgramBlocks.js:343 -msgid "The Set heap block needs a heap." +#: js/blocks/FlowBlocks.js:1037 +msgid "forever" msgstr "" -#: js/ProgramBlocks.js:360 -msgid "The Load-dictionary block loads a dictionary from a file." +#: js/blocks/FlowBlocks.js:1073 +msgid "The Repeat block will repeat the contained blocks." msgstr "" -#: js/ProgramBlocks.js:372 -#.TRANS: load a dictionary from a file -msgid "load dictionary" +#: js/blocks/FlowBlocks.js:1075 +msgid "In this example the note will be played 4 times." msgstr "" -#: js/ProgramBlocks.js:390 -#: js/ProgramBlocks.js:658 -#: js/ToneBlocks.js:1025 -msgid "file" +#: js/blocks/FlowBlocks.js:1083 +msgid "repeat" msgstr "" -#: js/ProgramBlocks.js:396 -#: js/ProgramBlocks.js:501 -#: js/ProgramBlocks.js:664 -#: js/DictBlocks.js:80 -#: js/DictBlocks.js:145 -#: js/DictBlocks.js:216 -#: js/DictBlocks.js:290 -msgid "My Dictionary" +#: js/blocks/FlowBlocks.js:1123 +msgid "duplicate factor" msgstr "" -#: js/ProgramBlocks.js:444 -msgid "The file you selected does not contain a valid dictionary." +#: js/blocks/HeapBlocks.js:49 +msgid "The Heap block returns the heap." msgstr "" -#: js/ProgramBlocks.js:449 -msgid "The load dictionary block needs a load file block." +#: js/blocks/HeapBlocks.js:133 +msgid "show heap" msgstr "" -#: js/ProgramBlocks.js:466 -msgid "The Set-dictionary block loads a dictionary." +#: js/blocks/HeapBlocks.js:181 +msgid "The Heap-length block returns the length of the heap." msgstr "" -#: js/ProgramBlocks.js:477 -#.TRANS: load a dictionary from a JSON -msgid "set dictionary" +#: js/blocks/HeapBlocks.js:195 +msgid "heap length" msgstr "" -#: js/ProgramBlocks.js:546 -msgid "The block you selected does not contain a valid dictionary." +#: js/blocks/HeapBlocks.js:254 +msgid "The Heap-empty? block returns true if the heap is empty." msgstr "" -#: js/ProgramBlocks.js:550 -msgid "The set dictionary block needs a dictionary." +#: js/blocks/HeapBlocks.js:268 +#.TRANS: Is the heap empty? +msgid "heap empty?" msgstr "" -#: js/ProgramBlocks.js:567 -msgid "The Save-heap block saves the heap to a file." +#: js/blocks/HeapBlocks.js:317 +msgid "The Empty-heap block empties the heap." msgstr "" -#: js/ProgramBlocks.js:578 -#.TRANS: save the heap to a file -msgid "save heap" +#: js/blocks/HeapBlocks.js:327 +#: js/blocks/HeapBlocks.js:647 +#.TRANS: empty the heap +msgid "empty heap" msgstr "" -#: js/ProgramBlocks.js:629 -msgid "The Save-dictionary block saves a dictionary to a file." +#: js/blocks/HeapBlocks.js:371 +msgid "The Reverse-heap block reverses the order of the heap." msgstr "" -#: js/ProgramBlocks.js:640 -#.TRANS: save a dictionary to a file -msgid "save dictionary" +#: js/blocks/HeapBlocks.js:384 +#.TRANS: reverse the order of the heap +msgid "reverse heap" msgstr "" -#: js/ProgramBlocks.js:720 -msgid "The Open palette block opens a palette." +#: js/blocks/HeapBlocks.js:428 +msgid "The Index-heap block returns a value in the heap at a specified location." msgstr "" -#: js/ProgramBlocks.js:727 -msgid "open palette" +#: js/blocks/HeapBlocks.js:443 +#.TRANS: retrieve a value from the heap at index position in the heap +msgid "index heap" msgstr "" -#: js/ProgramBlocks.js:785 -msgid "The Delete block block removes a block." +#: js/blocks/HeapBlocks.js:523 +msgid "The Set-heap entry block sets a value in he heap at the specified location." msgstr "" -#: js/ProgramBlocks.js:797 -#.TRANS: Move this block to the trash. -msgid "delete block" +#: js/blocks/HeapBlocks.js:539 +#: js/blocks/ProgramBlocks.js:299 +#.TRANS: load the heap from a JSON encoding +msgid "set heap" msgstr "" -#: js/ProgramBlocks.js:861 -msgid "The Move block block moves a block." +#: js/blocks/HeapBlocks.js:619 +msgid "The Pop block removes the value at the top of the heap." msgstr "" -#: js/ProgramBlocks.js:869 -#.TRANS: Move the position of a block on the screen. -msgid "move block" +#: js/blocks/HeapBlocks.js:633 +#.TRANS: pop a value off the top of the heap +msgid "pop" msgstr "" -#: js/ProgramBlocks.js:881 -#: js/ProgramBlocks.js:1048 -msgid "block number" +#: js/blocks/HeapBlocks.js:680 +msgid "The Push block adds a value to the top of the heap." msgstr "" -#: js/ProgramBlocks.js:935 -#.TRANS: Run program beginning at this block. -msgid "run block" +#: js/blocks/HeapBlocks.js:696 +#.TRANS: push a value onto the top of the heap +msgid "push" msgstr "" -#: js/ProgramBlocks.js:1025 -msgid "The Dock block block connections two blocks." +#: js/blocks/IntervalsBlocks.js:45 +msgid "set temperament" msgstr "" -#: js/ProgramBlocks.js:1036 -#.TRANS: We can connect a block to another block. -msgid "connect blocks" +#: js/blocks/IntervalsBlocks.js:63 +#: js/blocks/MediaBlocks.js:746 +#: js/blocks/PitchBlocks.js:657 +#: js/blocks/PitchBlocks.js:935 +#: js/blocks/PitchBlocks.js:974 +#: js/blocks/PitchBlocks.js:1007 +#: js/blocks/PitchBlocks.js:1194 +#: js/blocks/PitchBlocks.js:1717 +#: js/blocks/PitchBlocks.js:1758 +#: js/blocks/PitchBlocks.js:1866 +#: js/blocks/ToneBlocks.js:1025 +#: js/turtleactions/IntervalsActions.js:114 +#.TRANS: adjusts the shift up or down by one octave (twelve half-steps in the interval between two notes, one having twice or half the frequency in Hz of the other.) +msgid "octave" msgstr "" -#: js/ProgramBlocks.js:1048 -msgid "target block" +#: js/blocks/IntervalsBlocks.js:99 +msgid "The Temperament name block is used to select a tuning method." msgstr "" -#: js/ProgramBlocks.js:1048 -msgid "connection number" +#: js/blocks/IntervalsBlocks.js:161 +msgid "doubly" msgstr "" -#: js/ProgramBlocks.js:1140 -msgid "The Make block block creates a new block." +#: js/blocks/IntervalsBlocks.js:166 +msgid "The Doubly block will double the size of an interval." msgstr "" -#: js/ProgramBlocks.js:1152 -#.TRANS: Create a new block -msgid "make block" +#: js/blocks/IntervalsBlocks.js:262 +msgid "interval number" msgstr "" -#: js/ProgramBlocks.js:1186 -#: js/ProgramBlocks.js:1227 -#: js/RhythmBlocks.js:1128 -#: js/PitchBlocks.js:972 -#: js/PitchBlocks.js:1005 -#: js/temperament.js:340 -#: js/temperament.js:362 -#: js/temperament.js:372 -#: js/temperament.js:484 -#: js/status.js:190 -#: plugins/rodi.rtp:192 -#.TRANS: a musical note consisting of pitch and duration -msgid "note" +#: js/blocks/IntervalsBlocks.js:317 +msgid "current interval" msgstr "" -#: js/ProgramBlocks.js:1285 -msgid "Cannot find block" +#: js/blocks/IntervalsBlocks.js:387 +#.TRANS: measure the distance between two pitches in semi-tones +msgid "semi-tone interval measure" msgstr "" -#: js/ProgramBlocks.js:1304 -#: js/ProgramBlocks.js:1313 -msgid "Warning: block argument type mismatch" +#: js/blocks/IntervalsBlocks.js:454 +#: js/blocks/IntervalsBlocks.js:570 +msgid "You must use two pitch blocks when measuring an interval." msgstr "" -#: js/ProgramBlocks.js:1347 -msgid "The Open project block is used to open a project from a web page." +#: js/blocks/IntervalsBlocks.js:496 +msgid "The Scalar interval block measures the distance between two notes in the current key and mode." msgstr "" -#: js/ProgramBlocks.js:1357 -msgid "open project" +#: js/blocks/IntervalsBlocks.js:502 +#.TRANS: measure the distance between two pitches in steps of musical scale +msgid "scalar interval measure" msgstr "" -#: js/ProgramBlocks.js:1410 -msgid "Please enter a valid URL." +#: js/blocks/IntervalsBlocks.js:678 +msgid "In the figure, we add sol# to sol." msgstr "" -#: js/DrumBlocks.js:59 -msgid "The Noise name block is used to select a noise synthesizer." +#: js/blocks/IntervalsBlocks.js:684 +#: js/blocks/OrnamentBlocks.js:220 +#.TRANS: calculate a relative step between notes based on semi-tones +msgid "semi-tone interval" msgstr "" -#: js/DrumBlocks.js:102 -msgid "The Drum name block is used to select a drum." +#: js/blocks/IntervalsBlocks.js:733 +msgid "The output of the example is: do, mi, sol, sol, ti, mi" msgstr "" -#: js/DrumBlocks.js:146 -msgid "The Effects name block is used to select a sound effect." +#: js/blocks/IntervalsBlocks.js:740 +#: js/blocks/WidgetBlocks.js:768 +msgid "arpeggio" msgstr "" -#: js/DrumBlocks.js:163 -msgid "noise" +#: js/blocks/IntervalsBlocks.js:931 +msgid "The Chord block calculates common chords." msgstr "" -#: js/DrumBlocks.js:177 -msgid "The Play noise block will generate white, pink, or brown noise." +#: js/blocks/IntervalsBlocks.js:933 +msgid "In the figure, we generate a C-major chord." msgstr "" -#: js/DrumBlocks.js:191 -#: js/musicutils.js:752 -#: js/synthutils.js:47 -#.TRANS: white noise synthesizer -msgid "white noise" +#: js/blocks/IntervalsBlocks.js:938 +msgid "chord" msgstr "" -#: js/DrumBlocks.js:326 -msgid "Replace every instance of a pitch with a drum sound." +#: js/blocks/IntervalsBlocks.js:990 +msgid "The Ratio Interval block calculates an interval based on a ratio." msgstr "" -#: js/DrumBlocks.js:337 -#.TRANS: map a pitch to a drum sound -msgid "map pitch to drum" +#: js/blocks/IntervalsBlocks.js:995 +msgid "ratio interval" msgstr "" -#: js/DrumBlocks.js:404 -msgid "In the example above, a kick drum sound will be played instead of sol." +#: js/blocks/IntervalsBlocks.js:1064 +msgid "In the figure, we add la to sol." msgstr "" -#: js/DrumBlocks.js:416 -#.TRANS: set the current drum sound for playback -msgid "set drum" +#: js/blocks/IntervalsBlocks.js:1120 +#.TRANS: define a custom mode +msgid "define mode" msgstr "" -#: js/DrumBlocks.js:460 -msgid "sound effect" +#: js/blocks/IntervalsBlocks.js:1173 +msgid "movable Do" msgstr "" -#: js/DrumBlocks.js:498 -msgid "You can use multiple Drum blocks within a Note block." +#: js/blocks/IntervalsBlocks.js:1224 +#.TRANS: mode length is the number of notes in the mode, e.g., 7 for major and minor scales; 12 for chromatic scales +msgid "mode length" msgstr "" -#: js/RhythmBlocks.js:182 -#: js/RhythmBlocks.js:1086 -#: js/RhythmBlocks.js:1162 -msgid "Note value must be greater than 0." +#: js/blocks/IntervalsBlocks.js:1233 +msgid "The Mode length block is the number of notes in the current scale." msgstr "" -#: js/RhythmBlocks.js:215 -#: js/RhythmBlocks.js:278 -#: js/RhythmBlocks.js:350 -#.TRANS: swing is a rhythmic variation that emphasises the offbeat -msgid "swing" +#: js/blocks/IntervalsBlocks.js:1235 +msgid "Most Western scales have 7 notes." msgstr "" -#: js/RhythmBlocks.js:355 -#.TRANS: the amount to shift to the offbeat note -msgid "swing value" +#: js/blocks/IntervalsBlocks.js:1284 +#.TRANS: the mode in music is 'major', 'minor', etc. +msgid "current mode" msgstr "" -#: js/RhythmBlocks.js:419 -msgid "The Skip notes block will cause notes to be skipped." +#: js/blocks/IntervalsBlocks.js:1337 +#.TRANS: the key is a group of pitches with which a music composition is created +msgid "current key" msgstr "" -#: js/RhythmBlocks.js:427 -#.TRANS: substitute rests on notes being skipped -msgid "skip notes" +#: js/blocks/IntervalsBlocks.js:1389 +#: js/blocks/IntervalsBlocks.js:1434 +#.TRANS: set the key and mode, e.g. C Major +msgid "set key" msgstr "" -#: js/RhythmBlocks.js:489 -#.TRANS: speed up note duration by some factor, e.g. convert 1/4 to 1/8 notes by using a factor of 2 -msgid "multiply note value" +#: js/blocks/IntervalsBlocks.js:1443 +#: js/blocks/IntervalsBlocks.js:1449 +msgid "The Set key block is used to set the key and mode," msgstr "" -#: js/RhythmBlocks.js:542 -msgid "The Tie block works on pairs of notes, combining them into one note." +#: js/blocks/IntervalsBlocks.js:1449 +msgid "eg C Major" msgstr "" -#: js/RhythmBlocks.js:550 -#.TRANS: tie notes together into one longer note -msgid "tie" +#: js/blocks/MediaBlocks.js:35 +#.TRANS: right side of the screen +msgid "right (screen)" msgstr "" -#: js/RhythmBlocks.js:591 -#: js/RhythmBlocks.js:671 -#.TRANS: a dotted note is played for 1.5x its value, e.g., 1/8. --> 3/16 -msgid "dot" +#: js/blocks/MediaBlocks.js:45 +#: js/blocks/MediaBlocks.js:56 +msgid "The Right block returns the position of the right of the canvas." msgstr "" -#: js/RhythmBlocks.js:619 -#: js/RhythmActions.js:221 -msgid "An argument of -1 results in a note value of 0." +#: js/blocks/MediaBlocks.js:97 +#.TRANS: left side of the screen +msgid "left (screen)" msgstr "" -#: js/RhythmBlocks.js:661 -msgid "The Dot block extends the duration of a note by 50%." +#: js/blocks/MediaBlocks.js:107 +#: js/blocks/MediaBlocks.js:118 +msgid "The Left block returns the position of the left of the canvas." msgstr "" -#: js/RhythmBlocks.js:663 -msgid "Eg a dotted quarter note will play for 3/8 (1/4 + 1/8) of a beat." +#: js/blocks/MediaBlocks.js:158 +msgid "top (screen)" msgstr "" -#: js/RhythmBlocks.js:765 -#.TRANS: Japanese only: note value block for drum -msgid "note value drum" +#: js/blocks/MediaBlocks.js:168 +#: js/blocks/MediaBlocks.js:179 +msgid "The Top block returns the position of the top of the canvas." msgstr "" -#: js/RhythmBlocks.js:829 -msgid "392 hertz" +#: js/blocks/MediaBlocks.js:219 +msgid "bottom (screen)" msgstr "" -#: js/RhythmBlocks.js:1119 -msgid "The Note block is a container for one or more Pitch blocks." +#: js/blocks/MediaBlocks.js:229 +#: js/blocks/MediaBlocks.js:240 +msgid "The Bottom block returns the position of the bottom of the canvas." msgstr "" -#: js/RhythmBlocks.js:1121 -msgid "The Note block specifies the duration (note value) of its contents." +#: js/blocks/MediaBlocks.js:282 +msgid "width" msgstr "" -#: js/RhythmBlocks.js:1130 -msgid "value2" +#: js/blocks/MediaBlocks.js:291 +msgid "The Width block returns the width of the canvas." msgstr "" -#: js/RhythmBlocks.js:1200 -msgid "define frequency" +#: js/blocks/MediaBlocks.js:325 +msgid "height" msgstr "" -#: js/RhythmBlocks.js:1218 -#: js/temperament.js:650 -#: js/temperament.js:1421 -msgid "octave space" +#: js/blocks/MediaBlocks.js:334 +msgid "The Height block returns the height of the canvas." msgstr "" -#: js/NumberBlocks.js:28 -msgid "The Int block returns an integer." +#: js/blocks/MediaBlocks.js:369 +#.TRANS: stops playback of an audio recording +msgid "stop play" msgstr "" -#: js/NumberBlocks.js:34 -msgid "int" +#: js/blocks/MediaBlocks.js:404 +#.TRANS: Erases the images and text +msgid "erase media" msgstr "" -#: js/NumberBlocks.js:73 -msgid "The Mod block returns the remainder from a division." +#: js/blocks/MediaBlocks.js:409 +msgid "The Erase Media block erases text and images." msgstr "" -#: js/NumberBlocks.js:79 -msgid "mod" +#: js/blocks/MediaBlocks.js:439 +#.TRANS: play an audio recording +msgid "play back" msgstr "" -#: js/NumberBlocks.js:123 -msgid "The Power block calculates a power function." +#: js/blocks/MediaBlocks.js:487 +msgid "speak" msgstr "" -#: js/NumberBlocks.js:178 -msgid "The Sqrt block returns the square root." +#: js/blocks/MediaBlocks.js:495 +msgid "The Speak block outputs to the text-to-speech synthesizer" msgstr "" -#: js/NumberBlocks.js:184 -msgid "sqrt" +#: js/blocks/MediaBlocks.js:546 +msgid "camera" msgstr "" -#: js/NumberBlocks.js:230 -msgid "The Abs block returns the absolute value." +#: js/blocks/MediaBlocks.js:551 +msgid "The Camera block connects a webcam to the Show block." msgstr "" -#: js/NumberBlocks.js:236 -msgid "abs" +#: js/blocks/MediaBlocks.js:574 +msgid "video" msgstr "" -#: js/NumberBlocks.js:277 -msgid "The Distance block returns the distance between two points. For example, between the mouse and the center of the screen." +#: js/blocks/MediaBlocks.js:579 +msgid "The Video block selects video for use with the Show block." msgstr "" -#: js/NumberBlocks.js:283 -#: plugins/rodi.rtp:310 -msgid "distance" +#: js/blocks/MediaBlocks.js:607 +msgid "The Open file block opens a file for use with the Show block." msgstr "" -#: js/NumberBlocks.js:343 -msgid "The Divide block is used to divide." +#: js/blocks/MediaBlocks.js:645 +msgid "stop media" msgstr "" -#: js/NumberBlocks.js:411 -msgid "The Multiply block is used to multiply." +#: js/blocks/MediaBlocks.js:650 +msgid "The Stop media block stops audio or video playback." msgstr "" -#: js/NumberBlocks.js:554 -msgid "The Minus block is used to subtract." +#: js/blocks/MediaBlocks.js:679 +#: js/blocks/PitchBlocks.js:1577 +#: js/widgets/musickeyboard.js:1936 +#: js/widgets/phrasemaker.js:1037 +#.TRANS: a measure of frequency: one cycle per second +msgid "hertz" msgstr "" -#: js/NumberBlocks.js:647 -msgid "The Plus block is used to add." +#: js/blocks/MediaBlocks.js:692 +#: js/blocks/WidgetBlocks.js:182 +#: js/widgets/temperament.js:506 +#: js/widgets/temperament.js:546 +#: js/widgets/temperament.js:610 +#: js/widgets/temperament.js:618 +#: js/widgets/temperament.js:1505 +#: js/widgets/timbre.js:1842 +msgid "frequency" msgstr "" -#: js/NumberBlocks.js:773 -msgid "The One-of block returns one of two choices." +#: js/blocks/MediaBlocks.js:692 +msgid "duration (ms)" msgstr "" -#: js/NumberBlocks.js:780 -#: js/PitchBlocks.js:616 -msgid "one of" +#: js/blocks/MediaBlocks.js:728 +#.TRANS: translate a note into hertz, e.g., A4 -> 440HZ +msgid "note to frequency" msgstr "" -#: js/NumberBlocks.js:782 -msgid "this" +#: js/blocks/MediaBlocks.js:736 +msgid "The To frequency block converts a pitch name and octave to Hertz." msgstr "" -#: js/NumberBlocks.js:782 -msgid "that" +#: js/blocks/MediaBlocks.js:746 +#: js/blocks/PitchBlocks.js:656 +#: js/blocks/PitchBlocks.js:934 +#: js/blocks/PitchBlocks.js:1866 +#.TRANS: name2 is name as in name of pitch (JAPANESE ONLY) +msgid "name2" msgstr "" -#: js/NumberBlocks.js:837 -msgid "The Random block returns a random number." +#: js/blocks/MediaBlocks.js:812 +msgid "The Avatar block is used to change the appearance of the mouse." msgstr "" -#: js/NumberBlocks.js:844 -msgid "random" +#: js/blocks/MediaBlocks.js:819 +msgid "The Avatar block is used to change the appearance of the turtle." msgstr "" -#: js/NumberBlocks.js:846 -msgid "min" +#: js/blocks/MediaBlocks.js:831 +#: js/blocks/MediaBlocks.js:891 +#.TRANS: a media object +msgid "size" msgstr "" -#: js/NumberBlocks.js:846 -msgid "max" +#: js/blocks/MediaBlocks.js:831 +msgid "image" msgstr "" -#: js/NumberBlocks.js:910 -msgid "The Number block holds a number." +#: js/blocks/MediaBlocks.js:880 +msgid "The Show block is used to display text or images on the canvas." msgstr "" -#: js/BoxesBlocks.js:53 -#: js/BoxesBlocks.js:59 -msgid "The Add-to block is used to add to the value stored in a box." +#: js/blocks/MediaBlocks.js:888 +#.TRANS: show1 is show as in display an image or text on the screen. +msgid "show1" msgstr "" -#: js/BoxesBlocks.js:61 -msgid "It can also be used with other blocks such as Color and Pen size." +#: js/blocks/MediaBlocks.js:891 +msgid "obj" msgstr "" -#: js/BoxesBlocks.js:73 -msgid "add" +#: js/blocks/MediaBlocks.js:938 +msgid "The Media block is used to import an image." msgstr "" -#: js/BoxesBlocks.js:75 -#: js/temperament.js:716 -msgid "to" +#: js/blocks/MediaBlocks.js:973 +msgid "The Text block holds a text string." msgstr "" -#: js/BoxesBlocks.js:75 -#: js/BoxesBlocks.js:595 -#: js/HeapBlocks.js:544 -msgid "value1" +#: js/blocks/MeterBlocks.js:34 +#.TRANS: musical meter (time signature), e.g., 4:4 +msgid "current meter" msgstr "" -#: js/BoxesBlocks.js:118 -msgid "Block does not support incrementing." +#: js/blocks/MeterBlocks.js:85 +#.TRANS: number of beats per minute +msgid "beat factor" msgstr "" -#: js/BoxesBlocks.js:152 -msgid "The Add-1-to block adds one to the value stored in a box." +#: js/blocks/MeterBlocks.js:161 +msgid "The Beats per minute block returns the current beats per minute." msgstr "" -#: js/BoxesBlocks.js:163 -msgid "add 1 to" +#: js/blocks/MeterBlocks.js:169 +#: js/widgets/status.js:152 +#.TRANS: number of beats played per minute +msgid "beats per minute2" msgstr "" -#: js/BoxesBlocks.js:211 -msgid "The Subtract-1-from block subtracts one from the value stored in a box." +#: js/blocks/MeterBlocks.js:169 +#: js/blocks/MeterBlocks.js:1056 +#: js/blocks/MeterBlocks.js:1133 +#: js/blocks/MeterBlocks.js:1211 +#.TRANS: sets tempo by defining a beat and beats per minute +msgid "beats per minute" msgstr "" -#: js/BoxesBlocks.js:222 -msgid "subtract 1 from" +#: js/blocks/MeterBlocks.js:233 +#.TRANS: count of current musical measure in meter +msgid "measure count" msgstr "" -#: js/BoxesBlocks.js:270 -#: js/BoxesBlocks.js:387 -msgid "The Box block returns the value stored in a box." +#: js/blocks/MeterBlocks.js:241 +msgid "The Measure count block returns the current measure." msgstr "" -#: js/BoxesBlocks.js:500 -#: js/BoxesBlocks.js:576 -msgid "The Store in block will store a value in a box." +#: js/blocks/MeterBlocks.js:290 +#.TRANS: count of current beat in the meter +msgid "beat count" msgstr "" -#: js/BoxesBlocks.js:652 -msgid "The Box2 block returns the value stored in Box2." +#: js/blocks/MeterBlocks.js:300 +#: js/blocks/MeterBlocks.js:311 +#: js/blocks/MeterBlocks.js:565 +#: js/blocks/MeterBlocks.js:576 +msgid "The Beat count block is the number of the current beat," msgstr "" -#: js/BoxesBlocks.js:703 -msgid "The Store in Box2 block is used to store a value in Box2." +#: js/blocks/MeterBlocks.js:313 +#: js/blocks/MeterBlocks.js:578 +msgid "eg 1, 2, 3, or 4." msgstr "" -#: js/BoxesBlocks.js:715 -msgid "store in box2" +#: js/blocks/MeterBlocks.js:368 +#.TRANS: count the number of notes +msgid "sum note values" msgstr "" -#: js/BoxesBlocks.js:761 -msgid "The Box1 block returns the value stored in Box1." +#: js/blocks/MeterBlocks.js:376 +#: js/blocks/MeterBlocks.js:440 +msgid "The Note counter block can be used to count the number of contained notes." msgstr "" -#: js/BoxesBlocks.js:812 -msgid "The Store in Box1 block is used to store a value in Box1." +#: js/blocks/MeterBlocks.js:432 +#.TRANS: count the number of notes +msgid "note counter" msgstr "" -#: js/BoxesBlocks.js:826 -msgid "store in box1" +#: js/blocks/MeterBlocks.js:496 +#.TRANS: number of whole notes that have been played +msgid "whole notes played" msgstr "" -#: js/HeapBlocks.js:49 -msgid "The Heap block returns the heap." +#: js/blocks/MeterBlocks.js:505 +msgid "The Whole notes played block returns the total number of whole notes played." msgstr "" -#: js/HeapBlocks.js:133 -msgid "show heap" +#: js/blocks/MeterBlocks.js:555 +#: js/turtleactions/DictActions.js:83 +#.TRANS: number of notes that have been played +msgid "notes played" msgstr "" -#: js/HeapBlocks.js:181 -msgid "The Heap-length block returns the length of the heap." +#: js/blocks/MeterBlocks.js:653 +msgid "The No clock block decouples the notes from the master clock." msgstr "" -#: js/HeapBlocks.js:195 -msgid "heap length" +#: js/blocks/MeterBlocks.js:661 +#.TRANS: don't lock notes to master clock +msgid "no clock" msgstr "" -#: js/HeapBlocks.js:254 -msgid "The Heap-empty? block returns true if the heap is empty." +#: js/blocks/MeterBlocks.js:700 +msgid "on weak beat do" msgstr "" -#: js/HeapBlocks.js:268 -#.TRANS: Is the heap empty? -msgid "heap empty?" +#: js/blocks/MeterBlocks.js:705 +msgid "The On-weak-beat block lets you specify actions to take on weak (off) beats." msgstr "" -#: js/HeapBlocks.js:317 -msgid "The Empty-heap block empties the heap." +#: js/blocks/MeterBlocks.js:750 +msgid "on strong beat" msgstr "" -#: js/HeapBlocks.js:327 -#: js/HeapBlocks.js:647 -#.TRANS: empty the heap -msgid "empty heap" +#: js/blocks/MeterBlocks.js:758 +msgid "The On-strong-beat block lets you specify actions to take on specified beats." msgstr "" -#: js/HeapBlocks.js:371 -msgid "The Reverse-heap block reverses the order of the heap." +#: js/blocks/MeterBlocks.js:769 +msgid "beat" msgstr "" -#: js/HeapBlocks.js:384 -#.TRANS: reverse the order of the heap -msgid "reverse heap" +#: js/blocks/MeterBlocks.js:813 +msgid "on every beat do" msgstr "" -#: js/HeapBlocks.js:428 -msgid "The Index-heap block returns a value in the heap at a specified location." +#: js/blocks/MeterBlocks.js:821 +msgid "The On-every-beat block lets you specify actions to take on every beat." msgstr "" -#: js/HeapBlocks.js:443 -#.TRANS: retrieve a value from the heap at index position in the heap -msgid "index heap" +#: js/blocks/MeterBlocks.js:874 +msgid "on every note do" msgstr "" -#: js/HeapBlocks.js:523 -msgid "The Set-heap entry block sets a value in he heap at the specified location." +#: js/blocks/MeterBlocks.js:882 +msgid "The On-every-note block lets you specify actions to take on every note." msgstr "" -#: js/HeapBlocks.js:619 -msgid "The Pop block removes the value at the top of the heap." +#: js/blocks/MeterBlocks.js:928 +#: js/blocks/MeterBlocks.js:999 +#.TRANS: sets tempo by defining a beat and beats per minute +msgid "master beats per minute" msgstr "" -#: js/HeapBlocks.js:633 -#.TRANS: pop a value off the top of the heap -msgid "pop" +#: js/blocks/MeterBlocks.js:952 +#: js/blocks/MeterBlocks.js:1078 +#: js/blocks/MeterBlocks.js:1135 +msgid "bpm" msgstr "" -#: js/HeapBlocks.js:680 -msgid "The Push block adds a value to the top of the heap." +#: js/blocks/MeterBlocks.js:952 +#: js/blocks/MeterBlocks.js:1078 +#: js/blocks/MeterBlocks.js:1135 +msgid "beat value" msgstr "" -#: js/HeapBlocks.js:696 -#.TRANS: push a value onto the top of the heap -msgid "push" +#: js/blocks/MeterBlocks.js:1024 +#: js/blocks/MeterBlocks.js:1167 +#: js/blocks/MeterBlocks.js:1241 +msgid "Beats per minute must be > 30." msgstr "" -#: js/FlowBlocks.js:41 -msgid "The Backward block runs code in reverse order (Musical retrograde)." +#: js/blocks/MeterBlocks.js:1027 +#: js/blocks/MeterBlocks.js:1170 +#: js/blocks/MeterBlocks.js:1244 +msgid "Maximum beats per minute is 1000." msgstr "" -#: js/FlowBlocks.js:48 -msgid "backward" +#: js/blocks/MeterBlocks.js:1068 +msgid "The Beats per minute block sets the number of 1/4 notes per minute." msgstr "" -#: js/FlowBlocks.js:124 -msgid "The Duplicate block will run each block multiple times." +#: js/blocks/MeterBlocks.js:1279 +#.TRANS: anacrusis +msgid "pickup" msgstr "" -#: js/FlowBlocks.js:136 -msgid "duplicate" +#: js/blocks/MeterBlocks.js:1367 +msgid "number of beats" msgstr "" -#: js/FlowBlocks.js:334 -msgid "The Default block is used inside of a Switch to define the default action." +#: js/blocks/NumberBlocks.js:28 +msgid "The Int block returns an integer." msgstr "" -#: js/FlowBlocks.js:342 -msgid "default" +#: js/blocks/NumberBlocks.js:34 +msgid "int" msgstr "" -#: js/FlowBlocks.js:361 -#: js/FlowBlocks.js:418 -msgid "The Case Block must be used inside of a Switch Block." +#: js/blocks/NumberBlocks.js:73 +msgid "The Mod block returns the remainder from a division." msgstr "" -#: js/FlowBlocks.js:389 -msgid "The Case block is used inside of a Switch to define matches." +#: js/blocks/NumberBlocks.js:79 +msgid "mod" msgstr "" -#: js/FlowBlocks.js:397 -msgid "case" +#: js/blocks/NumberBlocks.js:141 +msgid "The Power block calculates a power function." msgstr "" -#: js/FlowBlocks.js:446 -msgid "The Switch block will run the code in the matching Case." +#: js/blocks/NumberBlocks.js:196 +msgid "The Sqrt block returns the square root." msgstr "" -#: js/FlowBlocks.js:454 -msgid "switch" +#: js/blocks/NumberBlocks.js:202 +msgid "sqrt" msgstr "" -#: js/FlowBlocks.js:595 -msgid "The Stop block will stop a loop" +#: js/blocks/NumberBlocks.js:248 +msgid "The Abs block returns the absolute value." msgstr "" -#: js/FlowBlocks.js:597 -msgid "Forever, Repeat, While, or Until." +#: js/blocks/NumberBlocks.js:254 +msgid "abs" msgstr "" -#: js/FlowBlocks.js:604 -#: js/phrasemaker.js:3799 -#: js/musickeyboard.js:629 -#: js/musickeyboard.js:631 -#: js/timbre.js:417 -#: js/timbre.js:419 -#: plugins/rodi.rtp:29 -#: plugins/rodi.rtp:73 -#: plugins/rodi.rtp:413 -msgid "stop" +#: js/blocks/NumberBlocks.js:295 +msgid "The Distance block returns the distance between two points. For example, between the mouse and the center of the screen." msgstr "" -#: js/FlowBlocks.js:653 -msgid "The Waitfor block will wait until the condition is true." +#: js/blocks/NumberBlocks.js:301 +#: plugins/rodi.rtp:310 +msgid "distance" msgstr "" -#: js/FlowBlocks.js:661 -msgid "wait for" +#: js/blocks/NumberBlocks.js:361 +msgid "The Divide block is used to divide." msgstr "" -#: js/FlowBlocks.js:732 -msgid "The Until block will repeat until the condition is true." +#: js/blocks/NumberBlocks.js:441 +msgid "The Multiply block is used to multiply." msgstr "" -#: js/FlowBlocks.js:740 -msgid "until" +#: js/blocks/NumberBlocks.js:612 +msgid "The Minus block is used to subtract." msgstr "" -#: js/FlowBlocks.js:742 -#: js/FlowBlocks.js:822 -msgid "do2" +#: js/blocks/NumberBlocks.js:723 +msgid "The Plus block is used to add." msgstr "" -#: js/FlowBlocks.js:812 -msgid "The While block will repeat while the condition is true." +#: js/blocks/NumberBlocks.js:849 +msgid "The One-of block returns one of two choices." msgstr "" -#: js/FlowBlocks.js:820 -msgid "while" +#: js/blocks/NumberBlocks.js:856 +#: js/blocks/PitchBlocks.js:616 +msgid "one of" msgstr "" -#: js/FlowBlocks.js:903 -#: js/FlowBlocks.js:968 -#: js/FlowBlocks.js:979 -msgid "In this example if the mouse button is pressed a snare drum will play." +#: js/blocks/NumberBlocks.js:858 +msgid "this" msgstr "" -#: js/FlowBlocks.js:925 -#: js/FlowBlocks.js:988 -msgid "if" +#: js/blocks/NumberBlocks.js:858 +msgid "that" msgstr "" -#: js/FlowBlocks.js:927 -#: js/FlowBlocks.js:990 -msgid "then" +#: js/blocks/NumberBlocks.js:913 +msgid "The Random block returns a random number." msgstr "" -#: js/FlowBlocks.js:927 -msgid "else" +#: js/blocks/NumberBlocks.js:920 +msgid "random" msgstr "" -#: js/FlowBlocks.js:1025 -msgid "The Forever block will repeat the contained blocks forever." +#: js/blocks/NumberBlocks.js:922 +msgid "min" msgstr "" -#: js/FlowBlocks.js:1037 -msgid "forever" +#: js/blocks/NumberBlocks.js:922 +msgid "max" msgstr "" -#: js/FlowBlocks.js:1073 -msgid "The Repeat block will repeat the contained blocks." +#: js/blocks/NumberBlocks.js:986 +msgid "The Number block holds a number." msgstr "" -#: js/FlowBlocks.js:1075 -msgid "In this example the note will be played 4 times." +#: js/blocks/OrnamentBlocks.js:32 +msgid "staccato factor" msgstr "" -#: js/FlowBlocks.js:1083 -msgid "repeat" +#: js/blocks/OrnamentBlocks.js:108 +msgid "slur factor" msgstr "" -#: js/FlowBlocks.js:1123 -msgid "duplicate factor" +#: js/blocks/OrnamentBlocks.js:217 +#: js/blocks/OrnamentBlocks.js:309 +#.TRANS: the neighbor refers to a neighboring note, e.g., D is a neighbor of C +msgid "neighbor" msgstr "" -#: js/PitchBlocks.js:39 -#: js/musicutils.js:722 -#: js/musicutils.js:1117 -#: js/synthutils.js:112 -#.TRANS: square wave -msgid "square" +#: js/blocks/OrnamentBlocks.js:293 +msgid "The Neighbor block rapidly switches between neighboring pitches." msgstr "" -#: js/PitchBlocks.js:62 -#: js/ToneBlocks.js:39 -#: js/musicutils.js:723 -#: js/musicutils.js:1118 -#: js/synthutils.js:116 -#.TRANS: triangle wave -msgid "triangle" +#: js/blocks/OrnamentBlocks.js:364 +msgid "glide" msgstr "" -#: js/PitchBlocks.js:85 -#: js/musicutils.js:721 -#: js/musicutils.js:1116 -#: js/synthutils.js:110 -#.TRANS: sine wave -msgid "sine" +#: js/blocks/OrnamentBlocks.js:479 +#: js/blocks/OrnamentBlocks.js:643 +msgid "slur" msgstr "" -#: js/PitchBlocks.js:108 -#: js/musicutils.js:724 -#: js/musicutils.js:1119 -#: js/synthutils.js:114 -#.TRANS: sawtooth wave -msgid "sawtooth" +#: js/blocks/OrnamentBlocks.js:558 +#: js/blocks/OrnamentBlocks.js:710 +#.TRANS: play each note sharply detached from the others +msgid "staccato" msgstr "" -#: js/PitchBlocks.js:141 -#.TRANS: musical transposition (adjustment of pitch up or down) -msgid "transposition" +#: js/blocks/RhythmBlocks.js:182 +#: js/blocks/RhythmBlocks.js:1086 +#: js/blocks/RhythmBlocks.js:1162 +msgid "Note value must be greater than 0." msgstr "" -#: js/PitchBlocks.js:168 -#.TRANS: step down one note in current musical scale -msgid "scalar step down" +#: js/blocks/RhythmBlocks.js:215 +#: js/blocks/RhythmBlocks.js:278 +#: js/blocks/RhythmBlocks.js:350 +#.TRANS: swing is a rhythmic variation that emphasises the offbeat +msgid "swing" msgstr "" -#: js/PitchBlocks.js:172 -msgid "The Scalar step down block returns the number of semi-tones down to the previous note in the current key and mode." +#: js/blocks/RhythmBlocks.js:355 +#.TRANS: the amount to shift to the offbeat note +msgid "swing value" msgstr "" -#: js/PitchBlocks.js:190 -#.TRANS: step up one note in current musical scale -msgid "scalar step up" +#: js/blocks/RhythmBlocks.js:419 +msgid "The Skip notes block will cause notes to be skipped." msgstr "" -#: js/PitchBlocks.js:194 -msgid "The Scalar step up block returns the number of semi-tones up to the next note in the current key and mode." +#: js/blocks/RhythmBlocks.js:427 +#.TRANS: substitute rests on notes being skipped +msgid "skip notes" msgstr "" -#: js/PitchBlocks.js:212 -#.TRANS: the change measured in half-steps between the current pitch and the previous pitch -msgid "change in pitch" +#: js/blocks/RhythmBlocks.js:489 +#.TRANS: speed up note duration by some factor, e.g. convert 1/4 to 1/8 notes by using a factor of 2 +msgid "multiply note value" msgstr "" -#: js/PitchBlocks.js:216 -msgid "The Change in pitch block is the difference (in half steps) between the current pitch being played and the previous pitch played." +#: js/blocks/RhythmBlocks.js:542 +msgid "The Tie block works on pairs of notes, combining them into one note." msgstr "" -#: js/PitchBlocks.js:243 -#.TRANS: the change measured in scale-steps between the current pitch and the previous pitch -msgid "scalar change in pitch" +#: js/blocks/RhythmBlocks.js:550 +#.TRANS: tie notes together into one longer note +msgid "tie" msgstr "" -#: js/PitchBlocks.js:250 -#: js/PitchBlocks.js:432 -#: js/PitchBlocks.js:1629 -#: js/DictActions.js:89 -#: js/temperament.js:477 -#: js/temperament.js:481 -#: js/temperament.js:714 -#.TRANS: convert current note to piano key (1-88) -#.TRANS: a mapping of pitch to the 88 piano keys -msgid "pitch number" +#: js/blocks/RhythmBlocks.js:591 +#: js/blocks/RhythmBlocks.js:671 +#.TRANS: a dotted note is played for 1.5x its value, e.g., 1/8. --> 3/16 +msgid "dot" msgstr "" -#: js/PitchBlocks.js:256 -msgid "The Pitch number block is the value of the pitch of the note currently being played." +#: js/blocks/RhythmBlocks.js:619 +#: js/turtleactions/RhythmActions.js:221 +msgid "An argument of -1 results in a note value of 0." msgstr "" -#: js/PitchBlocks.js:329 -#: js/PitchBlocks.js:433 -#.TRANS: the current pitch expressed in Hertz -msgid "pitch in hertz" +#: js/blocks/RhythmBlocks.js:661 +msgid "The Dot block extends the duration of a note by 50%." msgstr "" -#: js/PitchBlocks.js:334 -msgid "The Pitch in Hertz block is the value in Hertz of the pitch of the note currently being played." +#: js/blocks/RhythmBlocks.js:663 +msgid "Eg a dotted quarter note will play for 3/8 (1/4 + 1/8) of a beat." msgstr "" -#: js/PitchBlocks.js:367 -#: js/DictActions.js:87 -msgid "current pitch" +#: js/blocks/RhythmBlocks.js:765 +#.TRANS: Japanese only: note value block for drum +msgid "note value drum" msgstr "" -#: js/PitchBlocks.js:373 -msgid "The Current Pitch block is used with the Pitch Converter block. In the example above, current pitch, sol 4, is displayed as 392 hertz." +#: js/blocks/RhythmBlocks.js:829 +msgid "392 hertz" msgstr "" -#: js/PitchBlocks.js:410 -msgid "This block converts the pitch value of the last note played into different formats such as hertz, letter name, pitch number, et al." +#: js/blocks/RhythmBlocks.js:1119 +msgid "The Note block is a container for one or more Pitch blocks." msgstr "" -#: js/PitchBlocks.js:434 -msgid "alphabet" +#: js/blocks/RhythmBlocks.js:1121 +msgid "The Note block specifies the duration (note value) of its contents." msgstr "" -#: js/PitchBlocks.js:436 -#.TRANS: Translate as "alphabet class" -msgid "letter class" +#: js/blocks/RhythmBlocks.js:1128 +#: js/blocks/PitchBlocks.js:974 +#: js/blocks/PitchBlocks.js:1007 +#: js/blocks/ProgramBlocks.js:1186 +#: js/blocks/ProgramBlocks.js:1227 +#: js/widgets/status.js:190 +#: js/widgets/temperament.js:464 +#: js/widgets/temperament.js:486 +#: js/widgets/temperament.js:496 +#: js/widgets/temperament.js:617 +#: plugins/rodi.rtp:192 +#.TRANS: a musical note consisting of pitch and duration +msgid "note" msgstr "" -#: js/PitchBlocks.js:437 -msgid "solfege class" +#: js/blocks/RhythmBlocks.js:1130 +msgid "value2" msgstr "" -#: js/PitchBlocks.js:438 -msgid "staff y" +#: js/blocks/RhythmBlocks.js:1200 +msgid "define frequency" msgstr "" -#: js/PitchBlocks.js:439 -msgid "solfege syllable" +#: js/blocks/RhythmBlocks.js:1218 +#: js/widgets/temperament.js:787 +#: js/widgets/temperament.js:1587 +msgid "octave space" msgstr "" -#: js/PitchBlocks.js:440 -msgid "pitch class" +#: js/blocks/SensorsBlocks.js:36 +msgid "The Input block prompts for keyboard input." msgstr "" -#: js/PitchBlocks.js:441 -msgid "scalar class" +#: js/blocks/SensorsBlocks.js:46 +msgid "input" msgstr "" -#: js/PitchBlocks.js:443 -msgid "nth degree" +#: js/blocks/SensorsBlocks.js:64 +msgid "Input a value" msgstr "" -#: js/PitchBlocks.js:444 -msgid "pitch to shade" +#: js/blocks/SensorsBlocks.js:126 +msgid "input value" msgstr "" -#: js/PitchBlocks.js:445 -msgid "pitch to color" +#: js/blocks/SensorsBlocks.js:131 +msgid "The Input-value block stores the input." msgstr "" -#: js/PitchBlocks.js:629 -#: js/musickeyboard.js:565 -#.TRANS: MIDI is a technical standard for electronic music -msgid "MIDI" +#: js/blocks/SensorsBlocks.js:238 +msgid "loudness" msgstr "" -#: js/PitchBlocks.js:642 -#.TRANS: set an offset associated with the numeric piano keyboard mapping -msgid "set pitch number offset" +#: js/blocks/SensorsBlocks.js:245 +msgid "The Loudness block returns the volume detected by the microphone." msgstr "" -#: js/PitchBlocks.js:645 -msgid "The Set pitch number offset block is used to set the offset for mapping pitch numbers to pitch and octave." +#: js/blocks/SensorsBlocks.js:300 +msgid "click" msgstr "" -#: js/PitchBlocks.js:679 -#.TRANS: convert piano key number (1-88) to pitch -msgid "number to pitch" +#: js/blocks/SensorsBlocks.js:306 +msgid "The Click block triggers an event if a mouse has been clicked." msgstr "" -#: js/PitchBlocks.js:682 -msgid "The Number to pitch block will convert a pitch number to a pich name." +#: js/blocks/SensorsBlocks.js:313 +msgid "The Click block triggers an event if a turtle has been clicked." msgstr "" -#: js/PitchBlocks.js:715 -#.TRANS: convert piano key number (1-88) to octave -msgid "number to octave" +#: js/blocks/SensorsBlocks.js:342 +msgid "cursor over" msgstr "" -#: js/PitchBlocks.js:717 -msgid "The Number to octave block will convert a pitch number to an octave." +#: js/blocks/SensorsBlocks.js:387 +msgid "cursor out" msgstr "" -#: js/PitchBlocks.js:726 -msgid "y to pitch" +#: js/blocks/SensorsBlocks.js:433 +msgid "cursor button down" msgstr "" -#: js/PitchBlocks.js:729 -msgid "Y to pitch block will convert a staff y position to corresponding pitch notation." +#: js/blocks/SensorsBlocks.js:477 +msgid "cursor button up" msgstr "" -#: js/PitchBlocks.js:841 -msgid "accidental selector" +#: js/blocks/SensorsBlocks.js:521 +#: js/blocks/PenBlocks.js:48 +#: plugins/rodi.rtp:219 +msgid "blue" msgstr "" -#: js/PitchBlocks.js:844 -msgid "The Accidental selector block is used to choose between double-sharp, sharp, natural, flat, and double-flat." +#: js/blocks/SensorsBlocks.js:577 +#: js/blocks/PenBlocks.js:64 +#: plugins/rodi.rtp:218 +msgid "green" msgstr "" -#: js/PitchBlocks.js:858 -msgid "Pitch can be specified in terms of ni dha pa ma ga re sa." +#: js/blocks/SensorsBlocks.js:633 +#: js/blocks/PenBlocks.js:112 +#: plugins/rodi.rtp:217 +msgid "red" msgstr "" -#: js/PitchBlocks.js:872 -msgid "Pitch can be specified in terms of C D E F G A B." +#: js/blocks/SensorsBlocks.js:638 +msgid "The Get red block returns the red component of the pixel under the mouse." msgstr "" -#: js/PitchBlocks.js:883 -msgid "solfege" +#: js/blocks/SensorsBlocks.js:644 +msgid "The Get red block returns the red component of the pixel under the turtle." msgstr "" -#: js/PitchBlocks.js:886 -msgid "Pitch can be specified in terms of do re mi fa sol la ti." +#: js/blocks/SensorsBlocks.js:685 +#: plugins/rodi.rtp:216 +msgid "pixel color" msgstr "" -#: js/PitchBlocks.js:920 -msgid "The Invert block rotates any contained notes around a target note." +#: js/blocks/SensorsBlocks.js:690 +msgid "The Get pixel block returns the color of the pixel under the mouse." msgstr "" -#: js/PitchBlocks.js:927 -#.TRANS: pitch inversion rotates a pitch around another pitch -msgid "invert" +#: js/blocks/SensorsBlocks.js:696 +msgid "The Get pixel block returns the color of the pixel under the turtle." msgstr "" -#: js/PitchBlocks.js:929 -#: js/PitchBlocks.js:935 -#: js/PitchActions.js:727 -#: js/musicutils.js:726 -#: js/musicutils.js:902 -#.TRANS: invert based on even or odd number or musical scale -#.TRANS: even numbers -msgid "even" +#: js/blocks/SensorsBlocks.js:758 +msgid "time" msgstr "" -#: js/PitchBlocks.js:935 -#: js/PitchActions.js:729 -#: js/musicutils.js:728 -#: js/musicutils.js:903 -#.TRANS: odd numbers -msgid "odd" +#: js/blocks/SensorsBlocks.js:804 +msgid "cursor y" msgstr "" -#: js/PitchBlocks.js:935 -#: js/PitchActions.js:731 -#: js/musicutils.js:729 -#: js/musicutils.js:904 -msgid "scalar" +#: js/blocks/SensorsBlocks.js:809 +msgid "The Cursor Y block returns the vertical position of the mouse." msgstr "" -#: js/PitchBlocks.js:966 -#.TRANS: pitch inversion rotates a pitch around another pitch (odd number) -msgid "invert (odd)" +#: js/blocks/SensorsBlocks.js:845 +msgid "cursor x" msgstr "" -#: js/PitchBlocks.js:999 -#.TRANS: pitch inversion rotates a pitch around another pitch (even number) -msgid "invert (even)" +#: js/blocks/SensorsBlocks.js:850 +msgid "The Cursor X block returns the horizontal position of the mouse." msgstr "" -#: js/PitchBlocks.js:1020 -#.TRANS: register is the octave of the current pitch -msgid "register" +#: js/blocks/SensorsBlocks.js:886 +msgid "mouse button" msgstr "" -#: js/PitchBlocks.js:1024 -msgid "The Register block provides an easy way to modify the register (octave) of the notes that follow it." +#: js/blocks/SensorsBlocks.js:888 +msgid "The Mouse-button block returns True if the mouse button is pressed." msgstr "" -#: js/PitchBlocks.js:1074 -msgid "The Semi-tone transposition block will shift the pitches contained inside Note blocks up (or down) by half steps." +#: js/blocks/SensorsBlocks.js:934 +msgid "to ASCII" msgstr "" -#: js/PitchBlocks.js:1076 -msgid "In the example shown above, sol is shifted up to sol#." +#: js/blocks/SensorsBlocks.js:938 +msgid "The To ASCII block converts numbers to letters." msgstr "" -#: js/PitchBlocks.js:1082 -#.TRANS: adjust the amount of shift (up or down) of a pitch -msgid "semi-tone transpose" +#: js/blocks/SensorsBlocks.js:1005 +msgid "The Keyboard block returns computer keyboard input." msgstr "" -#: js/PitchBlocks.js:1115 -msgid "The Transpose by Ratio block will shift the pitches contained inside Note blocks up (or down) by a ratio" +#: js/blocks/RhythmBlockPaletteBlocks.js:50 +#: js/blocks/RhythmBlockPaletteBlocks.js:233 +#.TRANS: rhythm block +#.TRANS: translate "rhythm1" as rhythm +msgid "rhythm1" msgstr "" -#: js/PitchBlocks.js:1121 -#.TRANS: adjust the amount of shift (up or down) of a pitch -msgid "transpose by ratio" +#: js/blocks/RhythmBlockPaletteBlocks.js:70 +#: js/blocks/RhythmBlockPaletteBlocks.js:252 +#: js/blocks/RhythmBlockPaletteBlocks.js:485 +#: js/blocks/RhythmBlockPaletteBlocks.js:554 +#: js/blocks/RhythmBlockPaletteBlocks.js:875 +msgid "number of notes" msgstr "" -#: js/PitchBlocks.js:1204 -#.TRANS: down sixth means the note is five scale degrees below current note -msgid "down sixth" +#: js/blocks/RhythmBlockPaletteBlocks.js:126 +msgid "polyphonic rhythm" msgstr "" -#: js/PitchBlocks.js:1223 -#.TRANS: down third means the note is two scale degrees below current note -msgid "down third" +#: js/blocks/RhythmBlockPaletteBlocks.js:219 +msgid "The Rhythm block is used to generate rhythm patterns." msgstr "" -#: js/PitchBlocks.js:1242 -#.TRANS: seventh means the note is the six scale degrees above current note -msgid "seventh" +#: js/blocks/RhythmBlockPaletteBlocks.js:280 +msgid "1/64 note" msgstr "" -#: js/PitchBlocks.js:1261 -#.TRANS: sixth means the note is the five scale degrees above current note -msgid "sixth" +#: js/blocks/RhythmBlockPaletteBlocks.js:304 +msgid "1/32 note" msgstr "" -#: js/PitchBlocks.js:1280 -#.TRANS: fifth means the note is the four scale degrees above current note -msgid "fifth" +#: js/blocks/RhythmBlockPaletteBlocks.js:332 +msgid "1/16 note" msgstr "" -#: js/PitchBlocks.js:1300 -#.TRANS: fourth means the note is three scale degrees above current note -msgid "fourth" +#: js/blocks/RhythmBlockPaletteBlocks.js:360 +msgid "eighth note" msgstr "" -#: js/PitchBlocks.js:1319 -#.TRANS: third means the note is two scale degrees above current note -msgid "third" +#: js/blocks/RhythmBlockPaletteBlocks.js:388 +msgid "quarter note" msgstr "" -#: js/PitchBlocks.js:1338 -#.TRANS: second means the note is one scale degree above current note -msgid "second" +#: js/blocks/RhythmBlockPaletteBlocks.js:416 +msgid "half note" msgstr "" -#: js/PitchBlocks.js:1379 -msgid "The Scalar transposition block will shift the pitches contained inside Note blocks up (or down) the scale." +#: js/blocks/RhythmBlockPaletteBlocks.js:444 +msgid "whole note" msgstr "" -#: js/PitchBlocks.js:1381 -msgid "In the example shown above, sol is shifted up to la." +#: js/blocks/RhythmBlockPaletteBlocks.js:482 +#: js/blocks/RhythmBlockPaletteBlocks.js:551 +#: js/blocks/RhythmBlockPaletteBlocks.js:602 +#.TRANS: A tuplet is a note value divided into irregular time values. +msgid "tuplet" msgstr "" -#: js/PitchBlocks.js:1388 -#.TRANS: adjust the amount of shift (up or down) of a pitch by musical scale (scalar) steps -msgid "scalar transpose" +#: js/blocks/RhythmBlockPaletteBlocks.js:768 +msgid "septuplet" msgstr "" -#: js/PitchBlocks.js:1423 -msgid "The Accidental block is used to create sharps and flats" +#: js/blocks/RhythmBlockPaletteBlocks.js:796 +msgid "quintuplet" msgstr "" -#: js/PitchBlocks.js:1430 -#.TRANS: An accidental is a modification to a pitch, e.g., sharp or flat. -msgid "accidental override" +#: js/blocks/RhythmBlockPaletteBlocks.js:824 +msgid "triplet" msgstr "" -#: js/PitchBlocks.js:1543 -msgid "The Hertz block (in combination with a Number block) will play a sound at the specified frequency." +#: js/blocks/RhythmBlockPaletteBlocks.js:851 +msgid "simple tuplet" msgstr "" -#: js/PitchBlocks.js:1633 -msgid "The Pitch Number block will play a pitch associated by its number, e.g. 0 for C and 7 for G." +#: js/blocks/RhythmBlockPaletteBlocks.js:861 +msgid "Tuplets are a collection of notes that get scaled to a specific duration." msgstr "" -#: js/PitchBlocks.js:1665 -#: js/PitchBlocks.js:1707 -#.TRANS: a numeric mapping of the notes in an octave based on the musical mode -#.TRANS: a numeric mapping of the notes in an octave based on the musical mode -msgid "nth modal pitch" +#: js/blocks/DrumBlocks.js:59 +msgid "The Noise name block is used to select a noise synthesizer." msgstr "" -#: js/PitchBlocks.js:1668 -msgid "n^th Modal Pitch takes the pattern of pitches in semitones for a mode and makes each point a degree of the mode," +#: js/blocks/DrumBlocks.js:102 +msgid "The Drum name block is used to select a drum." msgstr "" -#: js/PitchBlocks.js:1670 -msgid "starting from 1 and regardless of tonal framework (i.e. not always 8 notes in the octave)" +#: js/blocks/DrumBlocks.js:146 +msgid "The Effects name block is used to select a sound effect." msgstr "" -#: js/PitchBlocks.js:1711 -msgid "N^th Modal Pitch takes a number as an input as the n^th degree for the given mode. 0 is the first position, 1 is the second, -1 is the note before the first etc." +#: js/blocks/DrumBlocks.js:163 +msgid "noise" msgstr "" -#: js/PitchBlocks.js:1713 -msgid "The pitches change according to the mode specified without any need for respellings." +#: js/blocks/DrumBlocks.js:177 +msgid "The Play noise block will generate white, pink, or brown noise." msgstr "" -#: js/PitchBlocks.js:1752 -msgid "Scale Degree is a common convention in music. Scale Degree offers seven possible positions in the scale (1-7) and can be modified via accidentals." +#: js/blocks/DrumBlocks.js:317 +msgid "Replace every instance of a pitch with a drum sound." msgstr "" -#: js/PitchBlocks.js:1754 -msgid "Scale Degree 1 is always the first pitch in a given scale, regardless of octave." +#: js/blocks/DrumBlocks.js:328 +#.TRANS: map a pitch to a drum sound +msgid "map pitch to drum" msgstr "" -#: js/PitchBlocks.js:1776 -#.TRANS: step some number of notes in current musical scale -msgid "scalar step" +#: js/blocks/DrumBlocks.js:395 +msgid "In the example above, a kick drum sound will be played instead of sol." msgstr "" -#: js/PitchBlocks.js:1781 -msgid "The Scalar Step block (in combination with a Number block) will play the next pitch in a scale," +#: js/blocks/DrumBlocks.js:407 +#.TRANS: set the current drum sound for playback +msgid "set drum" msgstr "" -#: js/PitchBlocks.js:1783 -msgid "eg if the last note played was sol, Scalar Step 1 will play la." +#: js/blocks/DrumBlocks.js:451 +msgid "sound effect" msgstr "" -#: js/PitchBlocks.js:1818 -msgid "The Pitch block specifies the pitch name and octave of a note that together determine the frequency of the note." +#: js/blocks/DrumBlocks.js:489 +msgid "You can use multiple Drum blocks within a Note block." msgstr "" -#: js/GraphicsBlocks.js:46 -#: js/DictActions.js:77 -#: js/DictActions.js:155 -#: js/DictActions.js:189 +#: js/blocks/GraphicsBlocks.js:46 +#: js/turtleactions/DictActions.js:77 +#: js/turtleactions/DictActions.js:144 +#: js/turtleactions/DictActions.js:173 msgid "heading" msgstr "" -#: js/GraphicsBlocks.js:56 +#: js/blocks/GraphicsBlocks.js:56 msgid "The Heading block returns the orientation of the mouse." msgstr "" -#: js/GraphicsBlocks.js:62 +#: js/blocks/GraphicsBlocks.js:62 msgid "The Heading block returns the orientation of the turtle." msgstr "" -#: js/GraphicsBlocks.js:133 +#: js/blocks/GraphicsBlocks.js:133 msgid "The Y block returns the vertical position of the mouse." msgstr "" -#: js/GraphicsBlocks.js:140 +#: js/blocks/GraphicsBlocks.js:140 msgid "The Y block returns the vertical position of the turtle." msgstr "" -#: js/GraphicsBlocks.js:149 +#: js/blocks/GraphicsBlocks.js:149 msgid "y3" msgstr "" -#: js/GraphicsBlocks.js:219 +#: js/blocks/GraphicsBlocks.js:219 msgid "The X block returns the horizontal position of the mouse." msgstr "" -#: js/GraphicsBlocks.js:226 +#: js/blocks/GraphicsBlocks.js:226 msgid "The X block returns the horizontal position of the turtle." msgstr "" -#: js/GraphicsBlocks.js:235 +#: js/blocks/GraphicsBlocks.js:235 msgid "x3" msgstr "" -#: js/GraphicsBlocks.js:295 +#: js/blocks/GraphicsBlocks.js:295 msgid "scroll xy" msgstr "" -#: js/GraphicsBlocks.js:303 +#: js/blocks/GraphicsBlocks.js:303 msgid "The Scroll XY block moves the canvas." msgstr "" -#: js/GraphicsBlocks.js:313 +#: js/blocks/GraphicsBlocks.js:313 msgid "x2" msgstr "" -#: js/GraphicsBlocks.js:313 +#: js/blocks/GraphicsBlocks.js:313 msgid "y2" msgstr "" -#: js/GraphicsBlocks.js:373 -#: js/temperament.js:213 -#: js/temperament.js:241 +#: js/blocks/GraphicsBlocks.js:373 +#: js/widgets/temperament.js:319 +#: js/widgets/temperament.js:347 msgid "clear" msgstr "" -#: js/GraphicsBlocks.js:426 +#: js/blocks/GraphicsBlocks.js:426 msgid "The Control-point 2 block sets the second control point for the Bezier curve." msgstr "" -#: js/GraphicsBlocks.js:433 +#: js/blocks/GraphicsBlocks.js:433 msgid "control point 2" msgstr "" -#: js/GraphicsBlocks.js:436 -#: js/GraphicsBlocks.js:487 -#: js/GraphicsBlocks.js:534 -#: js/GraphicsBlocks.js:750 +#: js/blocks/GraphicsBlocks.js:436 +#: js/blocks/GraphicsBlocks.js:487 +#: js/blocks/GraphicsBlocks.js:534 +#: js/blocks/GraphicsBlocks.js:750 msgid "x1" msgstr "" -#: js/GraphicsBlocks.js:436 -#: js/GraphicsBlocks.js:487 -#: js/GraphicsBlocks.js:534 -#: js/GraphicsBlocks.js:750 +#: js/blocks/GraphicsBlocks.js:436 +#: js/blocks/GraphicsBlocks.js:487 +#: js/blocks/GraphicsBlocks.js:534 +#: js/blocks/GraphicsBlocks.js:750 msgid "y1" msgstr "" -#: js/GraphicsBlocks.js:477 +#: js/blocks/GraphicsBlocks.js:477 msgid "The Control-point 1 block sets the first control point for the Bezier curve." msgstr "" -#: js/GraphicsBlocks.js:484 +#: js/blocks/GraphicsBlocks.js:484 msgid "control point 1" msgstr "" -#: js/GraphicsBlocks.js:527 +#: js/blocks/GraphicsBlocks.js:527 msgid "The Bezier block draws a Bezier curve." msgstr "" -#: js/GraphicsBlocks.js:531 +#: js/blocks/GraphicsBlocks.js:531 msgid "bezier" msgstr "" -#: js/GraphicsBlocks.js:592 +#: js/blocks/GraphicsBlocks.js:592 msgid "The Arc block moves the turtle in an arc." msgstr "" -#: js/GraphicsBlocks.js:600 +#: js/blocks/GraphicsBlocks.js:600 msgid "arc" msgstr "" -#: js/GraphicsBlocks.js:603 +#: js/blocks/GraphicsBlocks.js:603 msgid "angle" msgstr "" -#: js/GraphicsBlocks.js:603 +#: js/blocks/GraphicsBlocks.js:603 msgid "radius" msgstr "" -#: js/GraphicsBlocks.js:620 -#: js/GraphicsBlocks.js:767 -#: js/GraphicsBlocks.js:1010 -#: js/GraphicsBlocks.js:1093 +#: js/blocks/GraphicsBlocks.js:620 +#: js/blocks/GraphicsBlocks.js:767 +#: js/blocks/GraphicsBlocks.js:1010 +#: js/blocks/GraphicsBlocks.js:1093 msgid "Value must be within -5000 to 5000 when Wrap Mode is off." msgstr "" -#: js/GraphicsBlocks.js:622 -#: js/GraphicsBlocks.js:769 -#: js/GraphicsBlocks.js:1012 -#: js/GraphicsBlocks.js:1095 +#: js/blocks/GraphicsBlocks.js:622 +#: js/blocks/GraphicsBlocks.js:769 +#: js/blocks/GraphicsBlocks.js:1012 +#: js/blocks/GraphicsBlocks.js:1095 msgid "Value must be within -20000 to 20000 when Wrap Mode is on." msgstr "" -#: js/GraphicsBlocks.js:660 +#: js/blocks/GraphicsBlocks.js:660 msgid "set heading" msgstr "" -#: js/GraphicsBlocks.js:673 +#: js/blocks/GraphicsBlocks.js:673 msgid "The Set heading block sets the heading of the turtle." msgstr "" -#: js/GraphicsBlocks.js:733 +#: js/blocks/GraphicsBlocks.js:733 msgid "The Set XY block moves the mouse to a specific position on the screen." msgstr "" -#: js/GraphicsBlocks.js:739 +#: js/blocks/GraphicsBlocks.js:739 msgid "The Set XY block moves the turtle to a specific position on the screen." msgstr "" -#: js/GraphicsBlocks.js:747 +#: js/blocks/GraphicsBlocks.js:747 msgid "set xy" msgstr "" -#: js/GraphicsBlocks.js:819 +#: js/blocks/GraphicsBlocks.js:819 msgid "The Right block turns the mouse to the right." msgstr "" -#: js/GraphicsBlocks.js:826 +#: js/blocks/GraphicsBlocks.js:826 msgid "The Right block turns the turtle to the right." msgstr "" -#: js/GraphicsBlocks.js:835 +#: js/blocks/GraphicsBlocks.js:835 msgid "right1" msgstr "" -#: js/GraphicsBlocks.js:835 +#: js/blocks/GraphicsBlocks.js:835 #: plugins/rodi.rtp:77 #: plugins/rodi.rtp:340 #: plugins/rodi.rtp:375 msgid "right" msgstr "" -#: js/GraphicsBlocks.js:899 +#: js/blocks/GraphicsBlocks.js:899 msgid "The Left block turns the mouse to the left." msgstr "" -#: js/GraphicsBlocks.js:906 +#: js/blocks/GraphicsBlocks.js:906 msgid "The Left block turns the turtle to the left." msgstr "" -#: js/GraphicsBlocks.js:915 +#: js/blocks/GraphicsBlocks.js:915 msgid "left1" msgstr "" -#: js/GraphicsBlocks.js:915 +#: js/blocks/GraphicsBlocks.js:915 #: plugins/rodi.rtp:79 #: plugins/rodi.rtp:339 #: plugins/rodi.rtp:362 msgid "left" msgstr "" -#: js/GraphicsBlocks.js:967 -#: js/temperament.js:734 -#: js/temperament.js:933 +#: js/blocks/GraphicsBlocks.js:967 +#: js/widgets/temperament.js:875 +#: js/widgets/temperament.js:1078 #: plugins/rodi.rtp:69 #: plugins/rodi.rtp:387 msgid "back" msgstr "" -#: js/GraphicsBlocks.js:976 +#: js/blocks/GraphicsBlocks.js:976 msgid "The Back block moves the mouse backward." msgstr "" -#: js/GraphicsBlocks.js:983 +#: js/blocks/GraphicsBlocks.js:983 msgid "The Back block moves the turtle backward." msgstr "" -#: js/GraphicsBlocks.js:1050 +#: js/blocks/GraphicsBlocks.js:1050 #: plugins/rodi.rtp:71 #: plugins/rodi.rtp:400 msgid "forward" msgstr "" -#: js/GraphicsBlocks.js:1059 +#: js/blocks/GraphicsBlocks.js:1059 msgid "The Forward block moves the mouse forward." msgstr "" -#: js/GraphicsBlocks.js:1066 +#: js/blocks/GraphicsBlocks.js:1066 msgid "The Forward block moves the turtle forward." msgstr "" -#: js/GraphicsBlocks.js:1154 -#: js/GraphicsBlocks.js:1172 +#: js/blocks/GraphicsBlocks.js:1154 +#: js/blocks/GraphicsBlocks.js:1172 msgid "wrap" msgstr "" -#: js/OrnamentBlocks.js:32 -msgid "staccato factor" -msgstr "" - -#: js/OrnamentBlocks.js:108 -msgid "slur factor" -msgstr "" - -#: js/OrnamentBlocks.js:217 -#: js/OrnamentBlocks.js:309 -#.TRANS: the neighbor refers to a neighboring note, e.g., D is a neighbor of C -msgid "neighbor" -msgstr "" - -#: js/OrnamentBlocks.js:293 -msgid "The Neighbor block rapidly switches between neighboring pitches." -msgstr "" - -#: js/OrnamentBlocks.js:364 -msgid "glide" -msgstr "" - -#: js/OrnamentBlocks.js:479 -#: js/OrnamentBlocks.js:643 -msgid "slur" -msgstr "" - -#: js/OrnamentBlocks.js:558 -#: js/OrnamentBlocks.js:710 -#.TRANS: play each note sharply detached from the others -msgid "staccato" -msgstr "" - -#: js/PenBlocks.js:24 +#: js/blocks/PenBlocks.js:30 msgid "purple" msgstr "" -#: js/PenBlocks.js:37 -#: js/SensorsBlocks.js:521 -#: plugins/rodi.rtp:219 -msgid "blue" -msgstr "" - -#: js/PenBlocks.js:50 -#: js/SensorsBlocks.js:577 -#: plugins/rodi.rtp:218 -msgid "green" -msgstr "" - -#: js/PenBlocks.js:63 +#: js/blocks/PenBlocks.js:80 msgid "yellow" msgstr "" -#: js/PenBlocks.js:76 +#: js/blocks/PenBlocks.js:96 #: plugins/nutrition.rtp:164 msgid "orange" msgstr "" -#: js/PenBlocks.js:89 -#: js/SensorsBlocks.js:633 -#: plugins/rodi.rtp:217 -msgid "red" -msgstr "" - -#: js/PenBlocks.js:102 +#: js/blocks/PenBlocks.js:128 msgid "white" msgstr "" -#: js/PenBlocks.js:115 +#: js/blocks/PenBlocks.js:144 msgid "black" msgstr "" -#: js/PenBlocks.js:128 +#: js/blocks/PenBlocks.js:163 msgid "begin fill" msgstr "" -#: js/PenBlocks.js:143 +#: js/blocks/PenBlocks.js:190 msgid "end fill" msgstr "" -#: js/PenBlocks.js:159 -#: js/PenBlocks.js:386 +#: js/blocks/PenBlocks.js:212 +#: js/blocks/PenBlocks.js:560 #.TRANS: set the background color msgid "background" msgstr "" -#: js/PenBlocks.js:206 -#: js/DictActions.js:71 -#: js/DictActions.js:149 -#: js/DictActions.js:186 +#: js/blocks/PenBlocks.js:274 +#: js/turtleactions/DictActions.js:71 +#: js/turtleactions/DictActions.js:138 +#: js/turtleactions/DictActions.js:170 msgid "grey" msgstr "" -#: js/PenBlocks.js:210 +#: js/blocks/PenBlocks.js:282 msgid "The Grey block returns the current pen grey value." msgstr "" -#: js/PenBlocks.js:243 -#: js/DictActions.js:69 -#: js/DictActions.js:147 -#: js/DictActions.js:185 +#: js/blocks/PenBlocks.js:340 +#: js/turtleactions/DictActions.js:69 +#: js/turtleactions/DictActions.js:136 +#: js/turtleactions/DictActions.js:169 msgid "shade" msgstr "" -#: js/PenBlocks.js:247 +#: js/blocks/PenBlocks.js:347 msgid "The Shade block returns the current pen shade value." msgstr "" -#: js/PenBlocks.js:280 -#: js/DictActions.js:67 -#: js/DictActions.js:145 -#: js/DictActions.js:184 +#: js/blocks/PenBlocks.js:405 +#: js/turtleactions/DictActions.js:67 +#: js/turtleactions/DictActions.js:134 +#: js/turtleactions/DictActions.js:168 msgid "color" msgstr "" -#: js/PenBlocks.js:285 +#: js/blocks/PenBlocks.js:415 msgid "The Color block returns the current pen color." msgstr "" -#: js/PenBlocks.js:318 -#: js/DictActions.js:73 -#: js/DictActions.js:151 -#: js/DictActions.js:187 +#: js/blocks/PenBlocks.js:470 +#: js/turtleactions/DictActions.js:73 +#: js/turtleactions/DictActions.js:140 +#: js/turtleactions/DictActions.js:171 msgid "pen size" msgstr "" -#: js/PenBlocks.js:322 +#: js/blocks/PenBlocks.js:474 msgid "The Pen size block returns the current pen size value." msgstr "" -#: js/PenBlocks.js:355 +#: js/blocks/PenBlocks.js:513 msgid "set font" msgstr "" -#: js/PenBlocks.js:358 +#: js/blocks/PenBlocks.js:518 msgid "The Set font block sets the font used by the Show block." msgstr "" -#: js/PenBlocks.js:391 +#: js/blocks/PenBlocks.js:567 msgid "The Background block sets the window background color." msgstr "" -#: js/PenBlocks.js:408 +#: js/blocks/PenBlocks.js:598 msgid "The Hollow line block creates a line with a hollow center." msgstr "" -#: js/PenBlocks.js:415 +#: js/blocks/PenBlocks.js:606 #.TRANS: draw a line logo has a hollow space down its center msgid "hollow line" msgstr "" -#: js/PenBlocks.js:462 +#: js/blocks/PenBlocks.js:675 msgid "The Fill block fills in a shape with a color." msgstr "" -#: js/PenBlocks.js:470 +#: js/blocks/PenBlocks.js:684 #.TRANS: fill in as a solid color msgid "fill" msgstr "" -#: js/PenBlocks.js:527 +#: js/blocks/PenBlocks.js:761 #.TRANS: raise up the pen so logo it does not draw when it is moved msgid "pen up" msgstr "" -#: js/PenBlocks.js:532 +#: js/blocks/PenBlocks.js:768 msgid "The Pen-up block raises the pen so that it does not draw." msgstr "" -#: js/PenBlocks.js:552 +#: js/blocks/PenBlocks.js:802 #.TRANS: put down the pen so logo it draws when it is moved msgid "pen down" msgstr "" -#: js/PenBlocks.js:557 +#: js/blocks/PenBlocks.js:810 msgid "The Pen-down block lowers the pen so that it draws." msgstr "" -#: js/PenBlocks.js:577 +#: js/blocks/PenBlocks.js:844 #.TRANS: set the width of the line drawn by the pen msgid "set pen size" msgstr "" -#: js/PenBlocks.js:583 +#: js/blocks/PenBlocks.js:854 msgid "The Set-pen-size block changes the size of the pen." msgstr "" -#: js/PenBlocks.js:623 +#: js/blocks/PenBlocks.js:913 #.TRANS: set degree of translucence of the pen color msgid "set translucency" msgstr "" -#: js/PenBlocks.js:627 +#: js/blocks/PenBlocks.js:921 msgid "The Set translucency block changes the opacity of the pen." msgstr "" -#: js/PenBlocks.js:668 +#: js/blocks/PenBlocks.js:981 msgid "set hue" msgstr "" -#: js/PenBlocks.js:672 +#: js/blocks/PenBlocks.js:989 msgid "The Set hue block changes the color of the pen." msgstr "" -#: js/PenBlocks.js:711 +#: js/blocks/PenBlocks.js:1047 msgid "set shade" msgstr "" -#: js/PenBlocks.js:717 +#: js/blocks/PenBlocks.js:1057 msgid "The Set-shade block changes the pen color from dark to light." msgstr "" -#: js/PenBlocks.js:757 +#: js/blocks/PenBlocks.js:1111 #.TRANS: set the level of vividness of the pen color msgid "set grey" msgstr "" -#: js/PenBlocks.js:761 +#: js/blocks/PenBlocks.js:1119 msgid "The Set grey block changes the vividness of the pen color." msgstr "" -#: js/PenBlocks.js:800 +#: js/blocks/PenBlocks.js:1172 msgid "set color" msgstr "" -#: js/PenBlocks.js:806 +#: js/blocks/PenBlocks.js:1182 msgid "The Set-color block changes the pen color." msgstr "" -#: js/VolumeBlocks.js:35 -msgid "synth volume" -msgstr "" - -#: js/VolumeBlocks.js:39 -msgid "The Synth volume block returns the current volume of the current synthesizer." -msgstr "" - -#: js/VolumeBlocks.js:47 -#: js/musicutils.js:730 -#: js/synthutils.js:56 -#.TRANS: musical instrument -msgid "piano" -msgstr "" - -#: js/VolumeBlocks.js:105 -msgid "master volume" -msgstr "" - -#: js/VolumeBlocks.js:109 -msgid "The Master volume block returns the master volume." -msgstr "" - -#: js/VolumeBlocks.js:355 -#: js/VolumeBlocks.js:524 -msgid "set synth volume" -msgstr "" - -#: js/VolumeBlocks.js:362 -#: js/VolumeBlocks.js:545 -msgid "synth" -msgstr "" - -#: js/VolumeBlocks.js:403 -#: js/VolumeBlocks.js:577 -#: js/VolumeBlocks.js:740 -#: js/VolumeActions.js:173 -msgid "Setting volume to 0." -msgstr "" - -#: js/VolumeBlocks.js:440 -msgid "Synth not found" -msgstr "" - -#: js/VolumeBlocks.js:494 -msgid "set drum volume" -msgstr "" - -#: js/VolumeBlocks.js:530 -msgid "The Set synth volume block will change the volume of a particular synth," -msgstr "" - -#: js/VolumeBlocks.js:532 -msgid "eg guitar violin snare drum etc." -msgstr "" - -#: js/VolumeBlocks.js:534 -msgid "The default volume is 50." -msgstr "" - -#: js/VolumeBlocks.js:536 -msgid "The range is 0 for silence to 100 for full volume." -msgstr "" - -#: js/VolumeBlocks.js:597 -msgid "set panning" -msgstr "" - -#: js/VolumeBlocks.js:603 -msgid "The Set Panning block sets the panning for all synthesizers." -msgstr "" - -#: js/VolumeBlocks.js:625 -msgid "Warning: Sound is coming out from only the left or right side." -msgstr "" - -#: js/VolumeBlocks.js:647 -#: js/VolumeBlocks.js:695 -msgid "set master volume" -msgstr "" - -#: js/VolumeBlocks.js:653 -msgid "The Set master volume block sets the volume for all synthesizers." -msgstr "" - -#: js/VolumeBlocks.js:784 -msgid "The Set relative volume block changes the volume of the contained notes." -msgstr "" - -#: js/VolumeBlocks.js:791 -msgid "set relative volume" -msgstr "" - -#: js/VolumeBlocks.js:857 -msgid "decrescendo" -msgstr "" - -#: js/VolumeBlocks.js:921 -msgid "crescendo" -msgstr "" - -#: js/ToneBlocks.js:34 -msgid "oscillator" -msgstr "" - -#: js/ToneBlocks.js:44 -#: js/timbre.js:1562 -#.TRANS: Partials refers to the number of sine waves combined into the sound. -msgid "partials" -msgstr "" - -#: js/ToneBlocks.js:76 -msgid "You are adding multiple oscillator blocks." -msgstr "" - -#: js/ToneBlocks.js:144 -#: js/timbre.js:1225 -#.TRANS: a duo synthesizer combines a synth with a sequencer -msgid "duo synth" -msgstr "" - -#: js/ToneBlocks.js:149 -msgid "The Duo synth block is a duo-frequency modulator used to define a timbre." -msgstr "" - -#: js/ToneBlocks.js:157 -#: js/timbre.js:1476 -msgid "vibrato rate" -msgstr "" - -#: js/ToneBlocks.js:157 -msgid "vibrato intensity" -msgstr "" - -#: js/ToneBlocks.js:185 -#: js/timbre.js:1221 -#.TRANS: AM (amplitude modulation) synthesizer -msgid "AM synth" -msgstr "" - -#: js/ToneBlocks.js:189 -msgid "The AM synth block is an amplitude modulator used to define a timbre." -msgstr "" - -#: js/ToneBlocks.js:224 -#: js/timbre.js:1223 -#.TRANS: FM (frequency modulation) synthesizer -msgid "FM synth" -msgstr "" - -#: js/ToneBlocks.js:228 -msgid "The FM synth block is a frequency modulator used to define a timbre." +#: js/blocks/PitchBlocks.js:141 +#.TRANS: musical transposition (adjustment of pitch up or down) +msgid "transposition" msgstr "" -#: js/ToneBlocks.js:262 -msgid "partial" +#: js/blocks/PitchBlocks.js:168 +#.TRANS: step down one note in current musical scale +msgid "scalar step down" msgstr "" -#: js/ToneBlocks.js:265 -msgid "The Partial block is used to specify a weight for a specific partial harmonic." +#: js/blocks/PitchBlocks.js:172 +msgid "The Scalar step down block returns the number of semi-tones down to the previous note in the current key and mode." msgstr "" -#: js/ToneBlocks.js:284 -#.TRANS: partials are weighted components in a harmonic series -msgid "Partial weight must be between 0 and 1." +#: js/blocks/PitchBlocks.js:190 +#.TRANS: step up one note in current musical scale +msgid "scalar step up" msgstr "" -#: js/ToneBlocks.js:297 -#.TRANS: partials are weighted components in a harmonic series -msgid "Partial block should be used inside of a Weighted-partials block." +#: js/blocks/PitchBlocks.js:194 +msgid "The Scalar step up block returns the number of semi-tones up to the next note in the current key and mode." msgstr "" -#: js/ToneBlocks.js:325 -#.TRANS: partials are weighted components in a harmonic series -msgid "weighted partials" +#: js/blocks/PitchBlocks.js:212 +#.TRANS: the change measured in half-steps between the current pitch and the previous pitch +msgid "change in pitch" msgstr "" -#: js/ToneBlocks.js:383 -msgid "The Harmonic block will add harmonics to the contained notes." +#: js/blocks/PitchBlocks.js:216 +msgid "The Change in pitch block is the difference (in half steps) between the current pitch being played and the previous pitch played." msgstr "" -#: js/ToneBlocks.js:390 -#.TRANS: A harmonic is an overtone. -msgid "harmonic" +#: js/blocks/PitchBlocks.js:243 +#.TRANS: the change measured in scale-steps between the current pitch and the previous pitch +msgid "scalar change in pitch" msgstr "" -#: js/ToneBlocks.js:431 -msgid "The Distortion block adds distortion to the pitch." +#: js/blocks/PitchBlocks.js:250 +#: js/blocks/PitchBlocks.js:432 +#: js/blocks/PitchBlocks.js:1667 +#: js/turtleactions/DictActions.js:89 +#: js/widgets/temperament.js:610 +#: js/widgets/temperament.js:614 +#: js/widgets/temperament.js:855 +#.TRANS: convert current note to piano key (1-88) +#.TRANS: a mapping of pitch to the 88 piano keys +msgid "pitch number" msgstr "" -#: js/ToneBlocks.js:438 -#: js/timbre.js:2100 -#.TRANS: distortion is an alteration in the sound -msgid "distortion" +#: js/blocks/PitchBlocks.js:256 +msgid "The Pitch number block is the value of the pitch of the note currently being played." msgstr "" -#: js/ToneBlocks.js:487 -msgid "The Tremolo block adds a wavering effect." +#: js/blocks/PitchBlocks.js:329 +#: js/blocks/PitchBlocks.js:433 +#.TRANS: the current pitch expressed in Hertz +msgid "pitch in hertz" msgstr "" -#: js/ToneBlocks.js:495 -#: js/timbre.js:2092 -#.TRANS: a wavering effect in a musical tone -msgid "tremolo" +#: js/blocks/PitchBlocks.js:334 +msgid "The Pitch in Hertz block is the value in Hertz of the pitch of the note currently being played." msgstr "" -#: js/ToneBlocks.js:500 -#: js/ToneBlocks.js:569 -#: js/ToneBlocks.js:630 -#: js/ToneBlocks.js:689 -#: js/timbre.js:2134 -#: js/timbre.js:2222 -#: js/timbre.js:2317 -#: js/timbre.js:2419 -#.TRANS: rate at which tremolo wavers -msgid "rate" +#: js/blocks/PitchBlocks.js:367 +#: js/turtleactions/DictActions.js:87 +msgid "current pitch" msgstr "" -#: js/ToneBlocks.js:502 -#: js/ToneBlocks.js:630 -#: js/timbre.js:2137 -#: js/timbre.js:2328 -#.TRANS: amplitude of tremolo waver -msgid "depth" +#: js/blocks/PitchBlocks.js:373 +msgid "The Current Pitch block is used with the Pitch Converter block. In the example above, current pitch, sol 4, is displayed as 392 hertz." msgstr "" -#: js/ToneBlocks.js:559 -msgid "The Phaser block adds a sweeping sound." +#: js/blocks/PitchBlocks.js:410 +msgid "This block converts the pitch value of the last note played into different formats such as hertz, letter name, pitch number, et al." msgstr "" -#: js/ToneBlocks.js:566 -#: js/timbre.js:2098 -#.TRANS: alter the phase of the sound -msgid "phaser" +#: js/blocks/PitchBlocks.js:434 +msgid "alphabet" msgstr "" -#: js/ToneBlocks.js:569 -#: js/timbre.js:2422 -msgid "octaves" +#: js/blocks/PitchBlocks.js:436 +#.TRANS: Translate as "alphabet class" +msgid "letter class" msgstr "" -#: js/ToneBlocks.js:569 -#: js/timbre.js:2425 -msgid "base frequency" +#: js/blocks/PitchBlocks.js:437 +msgid "solfege class" msgstr "" -#: js/ToneBlocks.js:619 -msgid "The Chorus block adds a chorus effect." +#: js/blocks/PitchBlocks.js:438 +msgid "staff y" msgstr "" -#: js/ToneBlocks.js:627 -#: js/timbre.js:2096 -#.TRANS: musical effect to simulate a choral sound -msgid "chorus" +#: js/blocks/PitchBlocks.js:439 +msgid "solfege syllable" msgstr "" -#: js/ToneBlocks.js:630 -msgid "delay" +#: js/blocks/PitchBlocks.js:440 +msgid "pitch class" msgstr "" -#: js/ToneBlocks.js:678 -msgid "The Vibrato block adds a rapid, slight variation in pitch." +#: js/blocks/PitchBlocks.js:441 +msgid "scalar class" msgstr "" -#: js/ToneBlocks.js:686 -#: js/timbre.js:2094 -#.TRANS: a rapid, slight variation in pitch -msgid "vibrato" +#: js/blocks/PitchBlocks.js:443 +msgid "nth degree" msgstr "" -#: js/ToneBlocks.js:689 -#: js/timbre.js:2221 -msgid "intensity" +#: js/blocks/PitchBlocks.js:444 +msgid "pitch to shade" msgstr "" -#: js/ToneBlocks.js:733 -#.TRANS: select synthesizer -msgid "set synth" +#: js/blocks/PitchBlocks.js:445 +msgid "pitch to color" msgstr "" -#: js/ToneBlocks.js:804 -msgid "synth name" +#: js/blocks/PitchBlocks.js:629 +#: js/widgets/musickeyboard.js:735 +#.TRANS: MIDI is a technical standard for electronic music +msgid "MIDI" msgstr "" -#: js/ToneBlocks.js:842 -msgid "set default instrument" +#: js/blocks/PitchBlocks.js:642 +#.TRANS: set an offset associated with the numeric piano keyboard mapping +msgid "set pitch number offset" msgstr "" -#: js/ToneBlocks.js:895 -#: js/ToneBlocks.js:943 -#.TRANS: set the characteristics of a custom instrument -msgid "set instrument" +#: js/blocks/PitchBlocks.js:645 +msgid "The Set pitch number offset block is used to set the offset for mapping pitch numbers to pitch and octave." msgstr "" -#: js/ToneBlocks.js:898 -#: js/ToneBlocks.js:926 -#: js/ToneBlocks.js:932 -msgid "The Set instrument block selects a voice for the synthesizer," +#: js/blocks/PitchBlocks.js:679 +#.TRANS: convert piano key number (1-88) to pitch +msgid "number to pitch" msgstr "" -#: js/ToneBlocks.js:900 -#: js/ToneBlocks.js:934 -msgid "eg guitar piano violin or cello." +#: js/blocks/PitchBlocks.js:682 +msgid "The Number to pitch block will convert a pitch number to a pich name." msgstr "" -#: js/ToneBlocks.js:1015 -msgid "Import a sound file to use as an instrument and set its pitch center." +#: js/blocks/PitchBlocks.js:715 +#.TRANS: convert piano key number (1-88) to octave +msgid "number to octave" msgstr "" -#: js/ToneBlocks.js:1110 -msgid "Upload a sound file to connect with the sample block." +#: js/blocks/PitchBlocks.js:717 +msgid "The Number to octave block will convert a pitch number to an octave." msgstr "" -#: js/MeterBlocks.js:34 -#.TRANS: musical meter (time signature), e.g., 4:4 -msgid "current meter" +#: js/blocks/PitchBlocks.js:726 +msgid "y to pitch" msgstr "" -#: js/MeterBlocks.js:85 -#.TRANS: number of beats per minute -msgid "beat factor" +#: js/blocks/PitchBlocks.js:729 +msgid "Y to pitch block will convert a staff y position to corresponding pitch notation." msgstr "" -#: js/MeterBlocks.js:161 -msgid "The Beats per minute block returns the current beats per minute." +#: js/blocks/PitchBlocks.js:841 +msgid "accidental selector" msgstr "" -#: js/MeterBlocks.js:169 -#: js/status.js:152 -#.TRANS: number of beats played per minute -msgid "beats per minute2" +#: js/blocks/PitchBlocks.js:844 +msgid "The Accidental selector block is used to choose between double-sharp, sharp, natural, flat, and double-flat." msgstr "" -#: js/MeterBlocks.js:169 -#: js/MeterBlocks.js:1056 -#: js/MeterBlocks.js:1133 -#: js/MeterBlocks.js:1211 -#.TRANS: sets tempo by defining a beat and beats per minute -msgid "beats per minute" +#: js/blocks/PitchBlocks.js:858 +msgid "Pitch can be specified in terms of ni dha pa ma ga re sa." msgstr "" -#: js/MeterBlocks.js:233 -#.TRANS: count of current musical measure in meter -msgid "measure count" +#: js/blocks/PitchBlocks.js:872 +msgid "Pitch can be specified in terms of C D E F G A B." msgstr "" -#: js/MeterBlocks.js:241 -msgid "The Measure count block returns the current measure." +#: js/blocks/PitchBlocks.js:884 +msgid "solfege" msgstr "" -#: js/MeterBlocks.js:290 -#.TRANS: count of current beat in the meter -msgid "beat count" +#: js/blocks/PitchBlocks.js:887 +msgid "Pitch can be specified in terms of do re mi fa sol la ti." msgstr "" -#: js/MeterBlocks.js:300 -#: js/MeterBlocks.js:311 -#: js/MeterBlocks.js:565 -#: js/MeterBlocks.js:576 -msgid "The Beat count block is the number of the current beat," +#: js/blocks/PitchBlocks.js:922 +msgid "The Invert block rotates any contained notes around a target note." msgstr "" -#: js/MeterBlocks.js:313 -#: js/MeterBlocks.js:578 -msgid "eg 1, 2, 3, or 4." +#: js/blocks/PitchBlocks.js:929 +#.TRANS: pitch inversion rotates a pitch around another pitch +msgid "invert" msgstr "" -#: js/MeterBlocks.js:368 -#.TRANS: count the number of notes -msgid "sum note values" +#: js/blocks/PitchBlocks.js:968 +#.TRANS: pitch inversion rotates a pitch around another pitch (odd number) +msgid "invert (odd)" msgstr "" -#: js/MeterBlocks.js:376 -#: js/MeterBlocks.js:440 -msgid "The Note counter block can be used to count the number of contained notes." +#: js/blocks/PitchBlocks.js:1001 +#.TRANS: pitch inversion rotates a pitch around another pitch (even number) +msgid "invert (even)" msgstr "" -#: js/MeterBlocks.js:432 -#.TRANS: count the number of notes -msgid "note counter" +#: js/blocks/PitchBlocks.js:1022 +#.TRANS: register is the octave of the current pitch +msgid "register" msgstr "" -#: js/MeterBlocks.js:496 -#.TRANS: number of whole notes that have been played -msgid "whole notes played" +#: js/blocks/PitchBlocks.js:1026 +msgid "The Register block provides an easy way to modify the register (octave) of the notes that follow it." msgstr "" -#: js/MeterBlocks.js:505 -msgid "The Whole notes played block returns the total number of whole notes played." +#: js/blocks/PitchBlocks.js:1047 +#.TRANS: cents are units used to specify the ratio between pitches. There are 100 cents between successive notes. +msgid "50 cents" msgstr "" -#: js/MeterBlocks.js:555 -#: js/DictActions.js:83 -#.TRANS: number of notes that have been played -msgid "notes played" +#: js/blocks/PitchBlocks.js:1102 +msgid "The Semi-tone transposition block will shift the pitches contained inside Note blocks up (or down) by half steps." msgstr "" -#: js/MeterBlocks.js:653 -msgid "The No clock block decouples the notes from the master clock." +#: js/blocks/PitchBlocks.js:1104 +msgid "In the example shown above, sol is shifted up to sol#." msgstr "" -#: js/MeterBlocks.js:661 -#.TRANS: don't lock notes to master clock -msgid "no clock" +#: js/blocks/PitchBlocks.js:1110 +#.TRANS: adjust the amount of shift (up or down) of a pitch +msgid "semi-tone transpose" msgstr "" -#: js/MeterBlocks.js:700 -msgid "on weak beat do" +#: js/blocks/PitchBlocks.js:1143 +msgid "The Transpose by Ratio block will shift the pitches contained inside Note blocks up (or down) by a ratio" msgstr "" -#: js/MeterBlocks.js:705 -msgid "The On-weak-beat block lets you specify actions to take on weak (off) beats." +#: js/blocks/PitchBlocks.js:1149 +#.TRANS: adjust the amount of shift (up or down) of a pitch +msgid "transpose by ratio" msgstr "" -#: js/MeterBlocks.js:750 -msgid "on strong beat" +#: js/blocks/PitchBlocks.js:1232 +#.TRANS: down sixth means the note is five scale degrees below current note +msgid "down sixth" msgstr "" -#: js/MeterBlocks.js:758 -msgid "The On-strong-beat block lets you specify actions to take on specified beats." +#: js/blocks/PitchBlocks.js:1251 +#.TRANS: down third means the note is two scale degrees below current note +msgid "down third" msgstr "" -#: js/MeterBlocks.js:769 -msgid "beat" +#: js/blocks/PitchBlocks.js:1270 +#.TRANS: seventh means the note is the six scale degrees above current note +msgid "seventh" msgstr "" -#: js/MeterBlocks.js:813 -msgid "on every beat do" +#: js/blocks/PitchBlocks.js:1289 +#.TRANS: sixth means the note is the five scale degrees above current note +msgid "sixth" msgstr "" -#: js/MeterBlocks.js:821 -msgid "The On-every-beat block lets you specify actions to take on every beat." +#: js/blocks/PitchBlocks.js:1308 +#.TRANS: fifth means the note is the four scale degrees above current note +msgid "fifth" msgstr "" -#: js/MeterBlocks.js:874 -msgid "on every note do" +#: js/blocks/PitchBlocks.js:1328 +#.TRANS: fourth means the note is three scale degrees above current note +msgid "fourth" msgstr "" -#: js/MeterBlocks.js:882 -msgid "The On-every-note block lets you specify actions to take on every note." +#: js/blocks/PitchBlocks.js:1347 +#.TRANS: third means the note is two scale degrees above current note +msgid "third" msgstr "" -#: js/MeterBlocks.js:928 -#: js/MeterBlocks.js:999 -#.TRANS: sets tempo by defining a beat and beats per minute -msgid "master beats per minute" +#: js/blocks/PitchBlocks.js:1366 +#.TRANS: second means the note is one scale degree above current note +msgid "second" msgstr "" -#: js/MeterBlocks.js:952 -#: js/MeterBlocks.js:1078 -#: js/MeterBlocks.js:1135 -msgid "bpm" +#: js/blocks/PitchBlocks.js:1407 +msgid "The Scalar transposition block will shift the pitches contained inside Note blocks up (or down) the scale." msgstr "" -#: js/MeterBlocks.js:952 -#: js/MeterBlocks.js:1078 -#: js/MeterBlocks.js:1135 -msgid "beat value" +#: js/blocks/PitchBlocks.js:1409 +msgid "In the example shown above, sol is shifted up to la." msgstr "" -#: js/MeterBlocks.js:1024 -#: js/MeterBlocks.js:1167 -#: js/MeterBlocks.js:1241 -msgid "Beats per minute must be > 30." +#: js/blocks/PitchBlocks.js:1416 +#.TRANS: adjust the amount of shift (up or down) of a pitch by musical scale (scalar) steps +msgid "scalar transpose" msgstr "" -#: js/MeterBlocks.js:1027 -#: js/MeterBlocks.js:1170 -#: js/MeterBlocks.js:1244 -msgid "Maximum beats per minute is 1000." +#: js/blocks/PitchBlocks.js:1451 +msgid "The Accidental block is used to create sharps and flats" msgstr "" -#: js/MeterBlocks.js:1068 -msgid "The Beats per minute block sets the number of 1/4 notes per minute." +#: js/blocks/PitchBlocks.js:1458 +#.TRANS: An accidental is a modification to a pitch, e.g., sharp or flat. +msgid "accidental override" msgstr "" -#: js/MeterBlocks.js:1279 -#.TRANS: anacrusis -msgid "pickup" +#: js/blocks/PitchBlocks.js:1581 +msgid "The Hertz block (in combination with a Number block) will play a sound at the specified frequency." msgstr "" -#: js/MeterBlocks.js:1367 -msgid "number of beats" +#: js/blocks/PitchBlocks.js:1671 +msgid "The Pitch Number block will play a pitch associated by its number, e.g. 0 for C and 7 for G." msgstr "" -#: js/DictBlocks.js:77 -msgid "show dictionary" +#: js/blocks/PitchBlocks.js:1703 +#: js/blocks/PitchBlocks.js:1745 +#.TRANS: a numeric mapping of the notes in an octave based on the musical mode +#.TRANS: a numeric mapping of the notes in an octave based on the musical mode +msgid "nth modal pitch" msgstr "" -#: js/DictBlocks.js:129 -msgid "The Dictionary block returns a dictionary." +#: js/blocks/PitchBlocks.js:1706 +msgid "n^th Modal Pitch takes the pattern of pitches in semitones for a mode and makes each point a degree of the mode," msgstr "" -#: js/DictBlocks.js:197 -#: js/DictBlocks.js:339 -msgid "The Get-dict block returns a value in the dictionary for a specified key." +#: js/blocks/PitchBlocks.js:1708 +msgid "starting from 1 and regardless of tonal framework (i.e. not always 8 notes in the octave)" msgstr "" -#: js/DictBlocks.js:212 -#: js/DictBlocks.js:354 -#.TRANS: retrieve a value from the dictionary with a given key -msgid "get value" +#: js/blocks/PitchBlocks.js:1749 +msgid "N^th Modal Pitch takes a number as an input as the n^th degree for the given mode. 0 is the first position, 1 is the second, -1 is the note before the first etc." msgstr "" -#: js/DictBlocks.js:215 -#: js/DictBlocks.js:216 -#: js/DictBlocks.js:289 -#: js/DictBlocks.js:290 -#: js/DictBlocks.js:357 -#: js/DictBlocks.js:430 -#: js/DictBlocks.js:431 -msgid "key2" +#: js/blocks/PitchBlocks.js:1751 +msgid "The pitches change according to the mode specified without any need for respellings." msgstr "" -#: js/DictBlocks.js:271 -#: js/DictBlocks.js:411 -msgid "The Set-dict block sets a value in the dictionary for a specified key." +#: js/blocks/PitchBlocks.js:1790 +msgid "Scale Degree is a common convention in music. Scale Degree offers seven possible positions in the scale (1-7) and can be modified via accidentals." msgstr "" -#: js/DictBlocks.js:286 -#: js/DictBlocks.js:427 -#.TRANS: set a value in the dictionary for a given key -msgid "set value" +#: js/blocks/PitchBlocks.js:1792 +msgid "Scale Degree 1 is always the first pitch in a given scale, regardless of octave." msgstr "" -#: js/ExtrasBlocks.js:33 -msgid "fraction" +#: js/blocks/PitchBlocks.js:1814 +#.TRANS: step some number of notes in current musical scale +msgid "scalar step" msgstr "" -#: js/ExtrasBlocks.js:36 -msgid "Convert a float to a fraction" +#: js/blocks/PitchBlocks.js:1819 +msgid "The Scalar Step block (in combination with a Number block) will play the next pitch in a scale," msgstr "" -#: js/ExtrasBlocks.js:93 -msgid "save as ABC" +#: js/blocks/PitchBlocks.js:1821 +msgid "eg if the last note played was sol, Scalar Step 1 will play la." msgstr "" -#: js/ExtrasBlocks.js:96 -#: js/ExtrasBlocks.js:132 -#: js/ExtrasBlocks.js:168 -msgid "title" +#: js/blocks/PitchBlocks.js:1857 +msgid "The Pitch block specifies the pitch name and octave of a note that together determine the frequency of the note." msgstr "" -#: js/ExtrasBlocks.js:129 -msgid "save as Lilypond" +#: js/blocks/ProgramBlocks.js:33 +msgid "The Load-heap-from-app block loads the heap from a web page." msgstr "" -#: js/ExtrasBlocks.js:165 -msgid "save as SVG" +#: js/blocks/ProgramBlocks.js:44 +#.TRANS: load the heap contents from a URL +msgid "load heap from App" msgstr "" -#: js/ExtrasBlocks.js:216 -msgid "no background" +#: js/blocks/ProgramBlocks.js:95 +msgid "Error parsing JSON data:" msgstr "" -#: js/ExtrasBlocks.js:219 -msgid "The No background block eliminates the background from the saved SVG output." +#: js/blocks/ProgramBlocks.js:100 +msgid "404: Page not found" msgstr "" -#: js/ExtrasBlocks.js:247 -msgid "show blocks" +#: js/blocks/ProgramBlocks.js:133 +msgid "The Save-heap-to-app block saves the heap to a web page." msgstr "" -#: js/ExtrasBlocks.js:249 -msgid "The Show blocks block shows the blocks." +#: js/blocks/ProgramBlocks.js:144 +#.TRANS: save the heap contents to a URL +msgid "save heap to App" msgstr "" -#: js/ExtrasBlocks.js:274 -msgid "hide blocks" +#: js/blocks/ProgramBlocks.js:189 +msgid "Cannot find a valid heap for" msgstr "" -#: js/ExtrasBlocks.js:276 -msgid "The Hide blocks block hides the blocks." +#: js/blocks/ProgramBlocks.js:206 +msgid "The Load-heap block loads the heap from a file." msgstr "" -#: js/ExtrasBlocks.js:305 -#: js/ExtrasBlocks.js:335 -msgid "The Space block is used to add space between blocks." +#: js/blocks/ProgramBlocks.js:217 +#.TRANS: load the heap from a file +msgid "load heap" msgstr "" -#: js/ExtrasBlocks.js:373 -msgid "wait" +#: js/blocks/ProgramBlocks.js:270 +msgid "The file you selected does not contain a valid heap." msgstr "" -#: js/ExtrasBlocks.js:376 -msgid "The Wait block pauses the program for a specified number of seconds." +#: js/blocks/ProgramBlocks.js:275 +msgid "The loadHeap block needs a loadFile block." msgstr "" -#: js/ExtrasBlocks.js:430 -#: plugins/facebook.rtp:30 -msgid "comment" +#: js/blocks/ProgramBlocks.js:291 +msgid "The Set-heap block loads the heap." msgstr "" -#: js/ExtrasBlocks.js:466 -msgid "print" +#: js/blocks/ProgramBlocks.js:340 +msgid "The block you selected does not contain a valid heap." msgstr "" -#: js/ExtrasBlocks.js:473 -msgid "The Print block displays text at the top of the screen." +#: js/blocks/ProgramBlocks.js:343 +msgid "The Set heap block needs a heap." msgstr "" -#: js/ExtrasBlocks.js:579 -msgid "display grid" +#: js/blocks/ProgramBlocks.js:360 +msgid "The Load-dictionary block loads a dictionary from a file." msgstr "" -#: js/ExtrasBlocks.js:584 -msgid "The Display Grid Block changes the grid type" +#: js/blocks/ProgramBlocks.js:372 +#.TRANS: load a dictionary from a file +msgid "load dictionary" msgstr "" -#: js/ExtrasBlocks.js:686 -#: js/ExtrasBlocks.js:705 -#: js/ExtrasBlocks.js:728 -#: js/ExtrasBlocks.js:751 -#: js/ExtrasBlocks.js:769 -#: js/ExtrasBlocks.js:788 -#: js/ExtrasBlocks.js:807 -#: js/ExtrasBlocks.js:826 -msgid "unknown" +#: js/blocks/ProgramBlocks.js:390 +#: js/blocks/ProgramBlocks.js:658 +#: js/blocks/ToneBlocks.js:1025 +msgid "file" msgstr "" -#: js/SensorsBlocks.js:36 -msgid "The Input block prompts for keyboard input." +#: js/blocks/ProgramBlocks.js:444 +msgid "The file you selected does not contain a valid dictionary." msgstr "" -#: js/SensorsBlocks.js:46 -msgid "input" +#: js/blocks/ProgramBlocks.js:449 +msgid "The load dictionary block needs a load file block." msgstr "" -#: js/SensorsBlocks.js:64 -msgid "Input a value" +#: js/blocks/ProgramBlocks.js:466 +msgid "The Set-dictionary block loads a dictionary." msgstr "" -#: js/SensorsBlocks.js:126 -msgid "input value" +#: js/blocks/ProgramBlocks.js:477 +#.TRANS: load a dictionary from a JSON +msgid "set dictionary" msgstr "" -#: js/SensorsBlocks.js:131 -msgid "The Input-value block stores the input." +#: js/blocks/ProgramBlocks.js:546 +msgid "The block you selected does not contain a valid dictionary." msgstr "" -#: js/SensorsBlocks.js:238 -msgid "loudness" +#: js/blocks/ProgramBlocks.js:550 +msgid "The set dictionary block needs a dictionary." msgstr "" -#: js/SensorsBlocks.js:245 -msgid "The Loudness block returns the volume detected by the microphone." +#: js/blocks/ProgramBlocks.js:567 +msgid "The Save-heap block saves the heap to a file." msgstr "" -#: js/SensorsBlocks.js:300 -msgid "click" +#: js/blocks/ProgramBlocks.js:578 +#.TRANS: save the heap to a file +msgid "save heap" msgstr "" -#: js/SensorsBlocks.js:306 -msgid "The Click block triggers an event if a mouse has been clicked." +#: js/blocks/ProgramBlocks.js:629 +msgid "The Save-dictionary block saves a dictionary to a file." msgstr "" -#: js/SensorsBlocks.js:313 -msgid "The Click block triggers an event if a turtle has been clicked." +#: js/blocks/ProgramBlocks.js:640 +#.TRANS: save a dictionary to a file +msgid "save dictionary" msgstr "" -#: js/SensorsBlocks.js:342 -msgid "cursor over" +#: js/blocks/ProgramBlocks.js:720 +msgid "The Open palette block opens a palette." msgstr "" -#: js/SensorsBlocks.js:387 -msgid "cursor out" +#: js/blocks/ProgramBlocks.js:727 +msgid "open palette" msgstr "" -#: js/SensorsBlocks.js:433 -msgid "cursor button down" +#: js/blocks/ProgramBlocks.js:785 +msgid "The Delete block block removes a block." msgstr "" -#: js/SensorsBlocks.js:477 -msgid "cursor button up" +#: js/blocks/ProgramBlocks.js:797 +#.TRANS: Move this block to the trash. +msgid "delete block" msgstr "" -#: js/SensorsBlocks.js:638 -msgid "The Get red block returns the red component of the pixel under the mouse." +#: js/blocks/ProgramBlocks.js:861 +msgid "The Move block block moves a block." msgstr "" -#: js/SensorsBlocks.js:644 -msgid "The Get red block returns the red component of the pixel under the turtle." +#: js/blocks/ProgramBlocks.js:869 +#.TRANS: Move the position of a block on the screen. +msgid "move block" msgstr "" -#: js/SensorsBlocks.js:685 -#: plugins/rodi.rtp:216 -msgid "pixel color" +#: js/blocks/ProgramBlocks.js:881 +#: js/blocks/ProgramBlocks.js:1048 +msgid "block number" msgstr "" -#: js/SensorsBlocks.js:690 -msgid "The Get pixel block returns the color of the pixel under the mouse." +#: js/blocks/ProgramBlocks.js:935 +#.TRANS: Run program beginning at this block. +msgid "run block" msgstr "" -#: js/SensorsBlocks.js:696 -msgid "The Get pixel block returns the color of the pixel under the turtle." +#: js/blocks/ProgramBlocks.js:1025 +msgid "The Dock block block connections two blocks." msgstr "" -#: js/SensorsBlocks.js:758 -msgid "time" +#: js/blocks/ProgramBlocks.js:1036 +#.TRANS: We can connect a block to another block. +msgid "connect blocks" msgstr "" -#: js/SensorsBlocks.js:804 -msgid "cursor y" +#: js/blocks/ProgramBlocks.js:1048 +msgid "target block" msgstr "" -#: js/SensorsBlocks.js:809 -msgid "The Cursor Y block returns the vertical position of the mouse." +#: js/blocks/ProgramBlocks.js:1048 +msgid "connection number" msgstr "" -#: js/SensorsBlocks.js:845 -msgid "cursor x" +#: js/blocks/ProgramBlocks.js:1140 +msgid "The Make block block creates a new block." msgstr "" -#: js/SensorsBlocks.js:850 -msgid "The Cursor X block returns the horizontal position of the mouse." +#: js/blocks/ProgramBlocks.js:1152 +#.TRANS: Create a new block +msgid "make block" msgstr "" -#: js/SensorsBlocks.js:886 -msgid "mouse button" +#: js/blocks/ProgramBlocks.js:1285 +msgid "Cannot find block" msgstr "" -#: js/SensorsBlocks.js:888 -msgid "The Mouse-button block returns True if the mouse button is pressed." +#: js/blocks/ProgramBlocks.js:1304 +#: js/blocks/ProgramBlocks.js:1313 +msgid "Warning: block argument type mismatch" msgstr "" -#: js/SensorsBlocks.js:934 -msgid "to ASCII" +#: js/blocks/ProgramBlocks.js:1347 +msgid "The Open project block is used to open a project from a web page." msgstr "" -#: js/SensorsBlocks.js:938 -msgid "The To ASCII block converts numbers to letters." +#: js/blocks/ProgramBlocks.js:1357 +msgid "open project" msgstr "" -#: js/SensorsBlocks.js:1005 -msgid "The Keyboard block returns computer keyboard input." +#: js/blocks/ProgramBlocks.js:1410 +msgid "Please enter a valid URL." msgstr "" -#: js/IntervalsActions.js:216 -msgid "Adding missing pitch number 0." +#: js/blocks/ToneBlocks.js:34 +msgid "oscillator" msgstr "" -#: js/IntervalsActions.js:224 -msgid "Ignoring pitch numbers less than zero or greater than eleven." +#: js/blocks/ToneBlocks.js:42 +#: js/blocks/WidgetBlocks.js:179 +#: js/widgets/timbre.js:1558 +#: js/widgets/timbre.js:1808 +#.TRANS: there are different types (sine, triangle, square...) of oscillators. +#.TRANS: type of filter, e.g., lowpass, highpass, etc. +msgid "type" msgstr "" -#: js/IntervalsActions.js:230 -msgid "Ignoring duplicate pitch numbers." +#: js/blocks/ToneBlocks.js:44 +#: js/widgets/timbre.js:1562 +#.TRANS: Partials refers to the number of sine waves combined into the sound. +msgid "partials" msgstr "" -#: js/PitchActions.js:88 -msgid "The Scalar Step Block must be used inside of a Note Block." +#: js/blocks/ToneBlocks.js:76 +msgid "You are adding multiple oscillator blocks." msgstr "" -#: js/PitchActions.js:107 -msgid "The Scalar Step Block must be preceded by a Pitch Block." +#: js/blocks/ToneBlocks.js:144 +#: js/widgets/timbre.js:1225 +#.TRANS: a duo synthesizer combines a synth with a sequencer +msgid "duo synth" msgstr "" -#: js/DrumActions.js:231 -msgid "Noise Block: Did you mean to use a Note block?" +#: js/blocks/ToneBlocks.js:149 +msgid "The Duo synth block is a duo-frequency modulator used to define a timbre." msgstr "" -#: js/MeterActions.js:101 -#: js/MeterActions.js:139 -msgid "beats per minute must be greater than" +#: js/blocks/ToneBlocks.js:157 +#: js/widgets/timbre.js:1476 +msgid "vibrato rate" msgstr "" -#: js/MeterActions.js:111 -#: js/MeterActions.js:149 -msgid "maximum" +#: js/blocks/ToneBlocks.js:157 +msgid "vibrato intensity" msgstr "" -#: js/MeterActions.js:117 -#: js/MeterActions.js:155 -msgid "beats per minute is" +#: js/blocks/ToneBlocks.js:185 +#: js/widgets/timbre.js:1221 +#.TRANS: AM (amplitude modulation) synthesizer +msgid "AM synth" msgstr "" -#: js/ToneActions.js:134 -msgid "Vibrato intensity must be between 1 and 100." +#: js/blocks/ToneBlocks.js:189 +msgid "The AM synth block is an amplitude modulator used to define a timbre." msgstr "" -#: js/ToneActions.js:139 -msgid "Vibrato rate must be greater than 0." +#: js/blocks/ToneBlocks.js:224 +#: js/widgets/timbre.js:1223 +#.TRANS: FM (frequency modulation) synthesizer +msgid "FM synth" msgstr "" -#: js/ToneActions.js:192 -#: js/ToneActions.js:265 -#.TRANS: Depth is the intesity of the tremolo or chorus effect. -msgid "Depth is out of range." +#: js/blocks/ToneBlocks.js:228 +msgid "The FM synth block is a frequency modulator used to define a timbre." msgstr "" -#: js/ToneActions.js:301 -msgid "Distortion must be from 0 to 100." +#: js/blocks/ToneBlocks.js:262 +msgid "partial" msgstr "" -#: js/ToneActions.js:332 -#.TRANS: partials components in a harmonic series -msgid "Partial must be greater than or equal to 0." +#: js/blocks/ToneBlocks.js:265 +msgid "The Partial block is used to specify a weight for a specific partial harmonic." msgstr "" -#: js/ToneActions.js:378 -#: js/ToneActions.js:417 -#: js/ToneActions.js:456 -#: js/timbre.js:782 -msgid "Unable to use synth due to existing oscillator" +#: js/blocks/ToneBlocks.js:284 +#.TRANS: partials are weighted components in a harmonic series +msgid "Partial weight must be between 0 and 1." msgstr "" -#: js/ToneActions.js:388 -#: js/ToneActions.js:427 -msgid "The input cannot be negative." +#: js/blocks/ToneBlocks.js:297 +#.TRANS: partials are weighted components in a harmonic series +msgid "Partial block should be used inside of a Weighted-partials block." msgstr "" -#: js/DictActions.js:75 -#: js/DictActions.js:153 -#: js/DictActions.js:188 -msgid "font" +#: js/blocks/ToneBlocks.js:325 +#.TRANS: partials are weighted components in a harmonic series +msgid "weighted partials" msgstr "" -#: js/musicutils.js:363 -#: js/musicutils.js:471 -#: js/pitchdrummatrix.js:151 -#: js/musickeyboard.js:2563 -msgid "rest" +#: js/blocks/ToneBlocks.js:383 +msgid "The Harmonic block will add harmonics to the contained notes." msgstr "" -#: js/musicutils.js:565 -#.TRANS: ordinal number. Please keep exactly one space between each number. -msgid "1st 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th" +#: js/blocks/ToneBlocks.js:390 +#.TRANS: A harmonic is an overtone. +msgid "harmonic" msgstr "" -#: js/musicutils.js:629 -#: js/musicutils.js:812 -#: js/musicutils.js:911 -#.TRANS: augmented is a music term related to intervals -msgid "augmented" +#: js/blocks/ToneBlocks.js:431 +msgid "The Distortion block adds distortion to the pitch." msgstr "" -#: js/musicutils.js:631 -#: js/musicutils.js:813 -#: js/musicutils.js:910 -#.TRANS: diminished is a music term related to intervals and mode -msgid "diminished" +#: js/blocks/ToneBlocks.js:438 +#: js/widgets/timbre.js:2100 +#.TRANS: distortion is an alteration in the sound +msgid "distortion" msgstr "" -#: js/musicutils.js:639 -#.TRANS: twelve semi-tone scale for music -msgid "chromatic" +#: js/blocks/ToneBlocks.js:487 +msgid "The Tremolo block adds a wavering effect." msgstr "" -#: js/musicutils.js:640 -msgid "algerian" +#: js/blocks/ToneBlocks.js:495 +#: js/widgets/timbre.js:2092 +#.TRANS: a wavering effect in a musical tone +msgid "tremolo" msgstr "" -#: js/musicutils.js:641 -msgid "spanish" +#: js/blocks/ToneBlocks.js:500 +#: js/blocks/ToneBlocks.js:569 +#: js/blocks/ToneBlocks.js:630 +#: js/blocks/ToneBlocks.js:689 +#: js/widgets/timbre.js:2134 +#: js/widgets/timbre.js:2222 +#: js/widgets/timbre.js:2317 +#: js/widgets/timbre.js:2419 +#.TRANS: rate at which tremolo wavers +msgid "rate" msgstr "" -#: js/musicutils.js:643 -#.TRANS: modal scale in music -msgid "octatonic" +#: js/blocks/ToneBlocks.js:502 +#: js/blocks/ToneBlocks.js:630 +#: js/widgets/timbre.js:2137 +#: js/widgets/timbre.js:2328 +#.TRANS: amplitude of tremolo waver +msgid "depth" msgstr "" -#: js/musicutils.js:645 -#.TRANS: harmonic major scale in music -msgid "harmonic major" +#: js/blocks/ToneBlocks.js:559 +msgid "The Phaser block adds a sweeping sound." msgstr "" -#: js/musicutils.js:647 -#.TRANS: natural minor scales in music -msgid "natural minor" +#: js/blocks/ToneBlocks.js:566 +#: js/widgets/timbre.js:2098 +#.TRANS: alter the phase of the sound +msgid "phaser" msgstr "" -#: js/musicutils.js:649 -#.TRANS: harmonic minor scale in music -msgid "harmonic minor" +#: js/blocks/ToneBlocks.js:569 +#: js/turtleactions/IntervalsActions.js:114 +#: js/widgets/timbre.js:2422 +msgid "octaves" msgstr "" -#: js/musicutils.js:651 -#.TRANS: melodic minor scale in music -msgid "melodic minor" +#: js/blocks/ToneBlocks.js:569 +#: js/widgets/timbre.js:2425 +msgid "base frequency" msgstr "" -#: js/musicutils.js:655 -#.TRANS: modal scale for music -msgid "dorian" +#: js/blocks/ToneBlocks.js:619 +msgid "The Chorus block adds a chorus effect." msgstr "" -#: js/musicutils.js:657 -#.TRANS: modal scale for music -msgid "phrygian" +#: js/blocks/ToneBlocks.js:627 +#: js/widgets/timbre.js:2096 +#.TRANS: musical effect to simulate a choral sound +msgid "chorus" msgstr "" -#: js/musicutils.js:659 -#.TRANS: modal scale for music -msgid "lydian" +#: js/blocks/ToneBlocks.js:630 +msgid "delay" msgstr "" -#: js/musicutils.js:661 -#.TRANS: modal scale for music -msgid "mixolydian" +#: js/blocks/ToneBlocks.js:678 +msgid "The Vibrato block adds a rapid, slight variation in pitch." msgstr "" -#: js/musicutils.js:665 -#.TRANS: modal scale for music -msgid "locrian" +#: js/blocks/ToneBlocks.js:686 +#: js/widgets/timbre.js:2094 +#.TRANS: a rapid, slight variation in pitch +msgid "vibrato" msgstr "" -#: js/musicutils.js:667 -#.TRANS: minor jazz scale for music -msgid "jazz minor" +#: js/blocks/ToneBlocks.js:689 +#: js/widgets/timbre.js:2221 +msgid "intensity" msgstr "" -#: js/musicutils.js:669 -#.TRANS: bebop scale for music -msgid "bebop" +#: js/blocks/ToneBlocks.js:733 +#.TRANS: select synthesizer +msgid "set synth" msgstr "" -#: js/musicutils.js:670 -msgid "arabic" +#: js/blocks/ToneBlocks.js:804 +msgid "synth name" msgstr "" -#: js/musicutils.js:671 -msgid "byzantine" +#: js/blocks/ToneBlocks.js:842 +msgid "set default instrument" msgstr "" -#: js/musicutils.js:673 -#.TRANS: musical scale for music by Verdi -msgid "enigmatic" +#: js/blocks/ToneBlocks.js:895 +#: js/blocks/ToneBlocks.js:943 +#.TRANS: set the characteristics of a custom instrument +msgid "set instrument" msgstr "" -#: js/musicutils.js:674 -msgid "ethiopian" +#: js/blocks/ToneBlocks.js:898 +#: js/blocks/ToneBlocks.js:926 +#: js/blocks/ToneBlocks.js:932 +msgid "The Set instrument block selects a voice for the synthesizer," msgstr "" -#: js/musicutils.js:676 -#.TRANS: Ethiopic scale for music -msgid "geez" +#: js/blocks/ToneBlocks.js:900 +#: js/blocks/ToneBlocks.js:934 +msgid "eg guitar piano violin or cello." msgstr "" -#: js/musicutils.js:677 -msgid "hindu" +#: js/blocks/ToneBlocks.js:1015 +msgid "Import a sound file to use as an instrument and set its pitch center." msgstr "" -#: js/musicutils.js:678 -msgid "hungarian" +#: js/blocks/ToneBlocks.js:1110 +msgid "Upload a sound file to connect with the sample block." msgstr "" -#: js/musicutils.js:680 -#.TRANS: minor Romanian scale for music -msgid "romanian minor" +#: js/blocks/VolumeBlocks.js:35 +msgid "synth volume" msgstr "" -#: js/musicutils.js:681 -msgid "spanish gypsy" +#: js/blocks/VolumeBlocks.js:39 +msgid "The Synth volume block returns the current volume of the current synthesizer." msgstr "" -#: js/musicutils.js:683 -#.TRANS: musical scale for Mid-Eastern music -msgid "maqam" +#: js/blocks/VolumeBlocks.js:105 +msgid "master volume" msgstr "" -#: js/musicutils.js:685 -#.TRANS: minor blues scale for music -msgid "minor blues" +#: js/blocks/VolumeBlocks.js:109 +msgid "The Master volume block returns the master volume." msgstr "" -#: js/musicutils.js:687 -#.TRANS: major blues scale for music -msgid "major blues" +#: js/blocks/VolumeBlocks.js:355 +#: js/blocks/VolumeBlocks.js:524 +msgid "set synth volume" msgstr "" -#: js/musicutils.js:688 -msgid "whole tone" +#: js/blocks/VolumeBlocks.js:362 +#: js/blocks/VolumeBlocks.js:545 +msgid "synth" msgstr "" -#: js/musicutils.js:690 -#.TRANS: pentatonic is a general term that means "five note scale". This scale is typically known as "minor pentatonic" -msgid "minor pentatonic" +#: js/blocks/VolumeBlocks.js:403 +#: js/blocks/VolumeBlocks.js:577 +#: js/blocks/VolumeBlocks.js:740 +#: js/turtleactions/VolumeActions.js:173 +msgid "Setting volume to 0." msgstr "" -#: js/musicutils.js:692 -#.TRANS: pentatonic is a general term that means "five note scale". This scale is typically known as "major pentatonic" -msgid "major pentatonic" +#: js/blocks/VolumeBlocks.js:440 +msgid "Synth not found" msgstr "" -#: js/musicutils.js:693 -msgid "chinese" +#: js/blocks/VolumeBlocks.js:494 +msgid "set drum volume" msgstr "" -#: js/musicutils.js:694 -msgid "egyptian" +#: js/blocks/VolumeBlocks.js:530 +msgid "The Set synth volume block will change the volume of a particular synth," msgstr "" -#: js/musicutils.js:696 -#.TRANS: https://en.wikipedia.org/wiki/Hirajoshi_scale NOTE: There are three different versions of this scale -msgid "hirajoshi" +#: js/blocks/VolumeBlocks.js:532 +msgid "eg guitar violin snare drum etc." msgstr "" -#: js/musicutils.js:697 -msgid "Japan" +#: js/blocks/VolumeBlocks.js:534 +msgid "The default volume is 50." msgstr "" -#: js/musicutils.js:699 -#.TRANS: https://en.wikipedia.org/wiki/In_scale and https://en.wikipedia.org/wiki/Sakura_Sakura -msgid "in" +#: js/blocks/VolumeBlocks.js:536 +msgid "The range is 0 for silence to 100 for full volume." msgstr "" -#: js/musicutils.js:701 -#.TRANS: https://en.wikipedia.org/wiki/Miny%C5%8D_scale -msgid "minyo" +#: js/blocks/VolumeBlocks.js:597 +msgid "set panning" msgstr "" -#: js/musicutils.js:703 -#.TRANS: Italian mathematician -msgid "fibonacci" +#: js/blocks/VolumeBlocks.js:603 +msgid "The Set Panning block sets the panning for all synthesizers." msgstr "" -#: js/musicutils.js:708 -#: js/musicutils.js:1106 -#.TRANS: lowpass filter -msgid "lowpass" +#: js/blocks/VolumeBlocks.js:625 +msgid "Warning: Sound is coming out from only the left or right side." msgstr "" -#: js/musicutils.js:710 -#: js/musicutils.js:1107 -#.TRANS: bandpass filter -msgid "bandpass" +#: js/blocks/VolumeBlocks.js:647 +#: js/blocks/VolumeBlocks.js:695 +msgid "set master volume" msgstr "" -#: js/musicutils.js:712 -#: js/musicutils.js:1108 -#.TRANS: high-shelf filter -msgid "highshelf" +#: js/blocks/VolumeBlocks.js:653 +msgid "The Set master volume block sets the volume for all synthesizers." msgstr "" -#: js/musicutils.js:714 -#: js/musicutils.js:1109 -#.TRANS: low-shelf filter -msgid "lowshelf" +#: js/blocks/VolumeBlocks.js:784 +msgid "The Set relative volume block changes the volume of the contained notes." msgstr "" -#: js/musicutils.js:716 -#: js/musicutils.js:1110 -#.TRANS: notch-shelf filter -msgid "notch" +#: js/blocks/VolumeBlocks.js:791 +msgid "set relative volume" msgstr "" -#: js/musicutils.js:718 -#: js/musicutils.js:1111 -#.TRANS: all-pass filter -msgid "allpass" +#: js/blocks/VolumeBlocks.js:857 +msgid "decrescendo" msgstr "" -#: js/musicutils.js:720 -#: js/musicutils.js:1112 -#.TRANS: peaking filter -msgid "peaking" +#: js/blocks/VolumeBlocks.js:921 +msgid "crescendo" msgstr "" -#: js/musicutils.js:731 -#: js/synthutils.js:58 -#.TRANS: musical instrument -msgid "violin" +#: js/blocks/WidgetBlocks.js:81 +#.TRANS: sound envelope (ADSR) +msgid "envelope" msgstr "" -#: js/musicutils.js:732 -#: js/synthutils.js:60 -#.TRANS: viola musical instrument -msgid "viola" +#: js/blocks/WidgetBlocks.js:89 +#.TRANS: Attack time is the time taken for initial run-up of level from nil to peak, beginning when the key is first pressed. +msgid "attack" msgstr "" -#: js/musicutils.js:733 -#: js/synthutils.js:98 -#.TRANS: xylophone musical instrument -msgid "xylophone" +#: js/blocks/WidgetBlocks.js:91 +#.TRANS: Decay time is the time taken for the subsequent run down from the attack level to the designated sustain level. +msgid "decay" msgstr "" -#: js/musicutils.js:734 -#: js/synthutils.js:120 -#.TRANS: vibraphone musical instrument -msgid "vibraphone" +#: js/blocks/WidgetBlocks.js:93 +#.TRANS: Sustain level is the level during the main sequence of the sound's duration, until the key is released. +msgid "sustain" msgstr "" -#: js/musicutils.js:735 -#: js/synthutils.js:62 -#.TRANS: musical instrument -msgid "cello" +#: js/blocks/WidgetBlocks.js:95 +#.TRANS: Release time is the time taken for the level to decay from the sustain level to zero after the key is released. +msgid "release" msgstr "" -#: js/musicutils.js:737 -#: js/synthutils.js:66 -#.TRANS: viola musical instrument -msgid "double bass" +#: js/blocks/WidgetBlocks.js:113 +msgid "Attack value should be from 0 to 100." msgstr "" -#: js/musicutils.js:738 -#: js/synthutils.js:68 -#: js/rhythmruler.js:2119 -#.TRANS: musical instrument -msgid "guitar" +#: js/blocks/WidgetBlocks.js:116 +msgid "Decay value should be from 0 to 100." msgstr "" -#: js/musicutils.js:739 -#: js/synthutils.js:70 -#.TRANS: musical instrument -msgid "acoustic guitar" +#: js/blocks/WidgetBlocks.js:119 +msgid "Sustain value should be from 0 to 100." msgstr "" -#: js/musicutils.js:740 -#: js/synthutils.js:72 -#.TRANS: musical instrument -msgid "flute" +#: js/blocks/WidgetBlocks.js:122 +msgid "Release value should be from 0-100." msgstr "" -#: js/musicutils.js:741 -#: js/synthutils.js:74 -#.TRANS: musical instrument -msgid "clarinet" +#: js/blocks/WidgetBlocks.js:140 +msgid "You are adding multiple envelope blocks." msgstr "" -#: js/musicutils.js:742 -#: js/synthutils.js:76 -#.TRANS: musical instrument -msgid "saxophone" +#: js/blocks/WidgetBlocks.js:171 +#.TRANS: a filter removes some unwanted components from a signal +msgid "filter" msgstr "" -#: js/musicutils.js:743 -#: js/synthutils.js:78 -#.TRANS: musical instrument -msgid "tuba" +#: js/blocks/WidgetBlocks.js:181 +#: js/widgets/timbre.js:1818 +#.TRANS: rolloff is the steepness of a change in frequency. +msgid "rolloff" msgstr "" -#: js/musicutils.js:744 -#: js/synthutils.js:80 -#.TRANS: musical instrument -msgid "trumpet" +#: js/blocks/WidgetBlocks.js:213 +#.TRANS: rolloff is the steepness of a change in frequency. +msgid "Rolloff value should be either -12, -24, -48, or -96 decibels/octave." msgstr "" -#: js/musicutils.js:745 -#: js/synthutils.js:82 -#.TRANS: musical instrument -msgid "oboe" +#: js/blocks/WidgetBlocks.js:252 +msgid "The Temperament tool is used to define custom tuning." msgstr "" -#: js/musicutils.js:746 -#: js/synthutils.js:84 -#.TRANS: musical instrument -msgid "trombone" +#: js/blocks/WidgetBlocks.js:332 +#: js/blocks/WidgetBlocks.js:1573 +#: js/widgets/sampler.js:547 +msgid "Upload a sample and adjust its pitch center." msgstr "" -#: js/musicutils.js:747 -#: js/synthutils.js:100 -#.TRANS: polytone synthesizer -msgid "electronic synth" +#: js/blocks/WidgetBlocks.js:339 +#.TRANS: the speed at music is should be played. +msgid "sampler" msgstr "" -#: js/musicutils.js:748 -#: js/synthutils.js:102 -#.TRANS: simple monotone synthesizer -msgid "simple 1" +#: js/blocks/WidgetBlocks.js:517 +msgid "The Meter block opens a tool to select strong beats for the meter." msgstr "" -#: js/musicutils.js:749 -msgid "simple 2" +#: js/blocks/WidgetBlocks.js:573 +msgid "The oscilloscope block opens a tool to visualize waveforms." msgstr "" -#: js/musicutils.js:750 -msgid "simple 3" +#: js/blocks/WidgetBlocks.js:578 +msgid "oscilloscope" msgstr "" -#: js/musicutils.js:751 -msgid "simple 4" +#: js/blocks/WidgetBlocks.js:645 +msgid "The Custom mode block opens a tool to explore musical mode (the spacing of the notes in a scale)." msgstr "" -#: js/musicutils.js:753 -#: js/synthutils.js:49 -#.TRANS: brown noise synthesizer -msgid "brown noise" +#: js/blocks/WidgetBlocks.js:651 +#.TRANS: musical mode is the pattern of half-steps in an octave, e.g., Major or Minor modes +msgid "custom mode" msgstr "" -#: js/musicutils.js:754 -#: js/synthutils.js:51 -#.TRANS: pink noise synthesizer -msgid "pink noise" +#: js/blocks/WidgetBlocks.js:700 +msgid "The Tempo block opens a metronome to visualize the beat." msgstr "" -#: js/musicutils.js:756 -#: js/synthutils.js:127 -#: js/rhythmruler.js:1670 -#: js/rhythmruler.js:1928 -#.TRANS: musical instrument -msgid "snare drum" +#: js/blocks/WidgetBlocks.js:762 +msgid "The Arpeggio Widget is used to compose chord sequences." msgstr "" -#: js/musicutils.js:757 -#: js/synthutils.js:129 -#.TRANS: musical instrument -msgid "kick drum" +#: js/blocks/WidgetBlocks.js:837 +msgid "The Pitch drum matrix is used to map pitches to drum sounds." msgstr "" -#: js/musicutils.js:758 -#: js/synthutils.js:131 -#.TRANS: musical instrument -msgid "tom tom" +#: js/blocks/WidgetBlocks.js:842 +#.TRANS: makes a mapping between pitches and drum sounds +msgid "pitch-drum mapper" msgstr "" -#: js/musicutils.js:759 -#: js/synthutils.js:133 -#.TRANS: musical instrument -msgid "floor tom" +#: js/blocks/WidgetBlocks.js:891 +msgid "You must have at least one pitch block and one drum block in the matrix." msgstr "" -#: js/musicutils.js:760 -#: js/synthutils.js:135 -#.TRANS: musical instrument -msgid "bass drum" +#: js/blocks/WidgetBlocks.js:920 +msgid "The Pitch slider tool to is used to generate pitches at selected frequencies." msgstr "" -#: js/musicutils.js:761 -#: js/synthutils.js:137 -#.TRANS: a drum made from an inverted cup -msgid "cup drum" +#: js/blocks/WidgetBlocks.js:925 +#.TRANS: widget to generate pitches using a slider +msgid "pitch slider" msgstr "" -#: js/musicutils.js:762 -#: js/synthutils.js:139 -#.TRANS: musical instrument -msgid "darbuka drum" +#: js/blocks/WidgetBlocks.js:977 +msgid "chromatic keyboard" msgstr "" -#: js/musicutils.js:763 -#: js/synthutils.js:143 -#.TRANS: musical instrument -msgid "hi hat" +#: js/blocks/WidgetBlocks.js:1011 +#: js/blocks/WidgetBlocks.js:1077 +#.TRANS: widget to generate pitches using a slider +msgid "music keyboard" msgstr "" -#: js/musicutils.js:764 -#: js/synthutils.js:145 -#.TRANS: a small metal bell -msgid "ride bell" +#: js/blocks/WidgetBlocks.js:1062 +#: js/blocks/WidgetBlocks.js:1069 +msgid "The Music keyboard block opens a piano keyboard that can be used to create notes." msgstr "" -#: js/musicutils.js:765 -#: js/synthutils.js:147 -#.TRANS: musical instrument -msgid "cow bell" +#: js/blocks/WidgetBlocks.js:1128 +msgid "The Pitch staircase tool to is used to generate pitches from a given ratio." msgstr "" -#: js/musicutils.js:766 -msgid "japanese drum" +#: js/blocks/WidgetBlocks.js:1135 +#.TRANS: generate a progressive sequence of pitches +msgid "pitch staircase" msgstr "" -#: js/musicutils.js:767 -#: js/synthutils.js:153 -#.TRANS: musical instrument -msgid "japanese bell" +#: js/blocks/WidgetBlocks.js:1222 +msgid "The Rhythm Maker block opens a tool to create drum machines." msgstr "" -#: js/musicutils.js:768 -#: js/synthutils.js:149 -#.TRANS: musical instrument -msgid "triangle bell" +#: js/blocks/WidgetBlocks.js:1291 +msgid "G major scale" msgstr "" -#: js/musicutils.js:769 -#: js/synthutils.js:151 -#.TRANS: musical instrument -msgid "finger cymbals" +#: js/blocks/WidgetBlocks.js:1326 +msgid "C major scale" msgstr "" -#: js/musicutils.js:770 -#: js/synthutils.js:155 -#.TRANS: a musically tuned set of bells -msgid "chime" +#: js/blocks/WidgetBlocks.js:1366 +msgid "The Phrase Maker block opens a tool to create musical phrases." msgstr "" -#: js/musicutils.js:771 -#: js/synthutils.js:157 -#.TRANS: a musical instrument -msgid "gong" +#: js/blocks/WidgetBlocks.js:1373 +#.TRANS: assigns pitch to a sequence of beats to generate a melody +msgid "phrase maker" msgstr "" -#: js/musicutils.js:772 -#: js/synthutils.js:159 -#.TRANS: sound effect -msgid "clang" +#: js/blocks/WidgetBlocks.js:1444 +msgid "You must have at least one pitch block and one rhythm block in the matrix." msgstr "" -#: js/musicutils.js:773 -#: js/synthutils.js:161 -#.TRANS: sound effect -msgid "crash" +#: js/blocks/WidgetBlocks.js:1503 +msgid "The Status block opens a tool for inspecting the status of Music Blocks as it is running." msgstr "" -#: js/musicutils.js:774 -#: js/synthutils.js:163 -#.TRANS: sound effect -msgid "bottle" +#: js/blocks/WidgetBlocks.js:1580 +#.TRANS: AI-generated music +msgid "aimusic" msgstr "" -#: js/musicutils.js:775 -#: js/synthutils.js:165 -#.TRANS: sound effect -msgid "clap" +#: js/turtleactions/MeterActions.js:101 +#: js/turtleactions/MeterActions.js:139 +msgid "beats per minute must be greater than" msgstr "" -#: js/musicutils.js:776 -#: js/synthutils.js:167 -#.TRANS: sound effect -msgid "slap" +#: js/turtleactions/MeterActions.js:111 +#: js/turtleactions/MeterActions.js:149 +msgid "maximum" msgstr "" -#: js/musicutils.js:777 -#: js/synthutils.js:169 -#.TRANS: sound effect -msgid "splash" +#: js/turtleactions/MeterActions.js:117 +#: js/turtleactions/MeterActions.js:155 +msgid "beats per minute is" msgstr "" -#: js/musicutils.js:778 -#: js/synthutils.js:171 -#.TRANS: sound effect -msgid "bubbles" +#: js/turtleactions/DictActions.js:75 +#: js/turtleactions/DictActions.js:142 +#: js/turtleactions/DictActions.js:172 +msgid "font" msgstr "" -#: js/musicutils.js:779 -#: js/synthutils.js:173 -#.TRANS: sound effect -msgid "raindrop" +#: js/turtleactions/DictActions.js:255 +msgid "Dictionary with this name does not exist" msgstr "" -#: js/musicutils.js:780 -#: js/synthutils.js:175 -#.TRANS: animal sound effect -msgid "cat" +#: js/turtleactions/DictActions.js:259 +msgid "Key with this name does not exist in " msgstr "" -#: js/musicutils.js:781 -#: js/synthutils.js:177 -#.TRANS: animal sound effect -msgid "cricket" +#: js/turtleactions/DrumActions.js:227 +msgid "Noise Block: Did you mean to use a Note block?" msgstr "" -#: js/musicutils.js:782 -#: js/synthutils.js:179 -#.TRANS: animal sound effect -msgid "dog" +#: js/turtleactions/IntervalsActions.js:113 +msgid "one" msgstr "" -#: js/musicutils.js:784 -#: js/synthutils.js:86 -#.TRANS: musical instrument -msgid "banjo" +#: js/turtleactions/IntervalsActions.js:113 +msgid "two" msgstr "" -#: js/musicutils.js:785 -#: js/synthutils.js:88 -#.TRANS: musical instrument -msgid "koto" +#: js/turtleactions/IntervalsActions.js:113 +msgid "three" msgstr "" -#: js/musicutils.js:786 -#: js/synthutils.js:90 -#.TRANS: musical instrument -msgid "dulcimer" +#: js/turtleactions/IntervalsActions.js:113 +msgid "four" msgstr "" -#: js/musicutils.js:787 -#: js/synthutils.js:92 -#.TRANS: musical instrument -msgid "electric guitar" +#: js/turtleactions/IntervalsActions.js:113 +msgid "five" msgstr "" -#: js/musicutils.js:788 -#: js/synthutils.js:94 -#.TRANS: musical instrument -msgid "bassoon" +#: js/turtleactions/IntervalsActions.js:113 +msgid "six" msgstr "" -#: js/musicutils.js:789 -#: js/synthutils.js:96 -#.TRANS: musical instrument -msgid "celeste" +#: js/turtleactions/IntervalsActions.js:113 +msgid "seven" msgstr "" -#: js/musicutils.js:791 -#: js/musicutils.js:1123 -#: js/musicutils.js:1131 -#: js/temperament.js:650 -#.TRANS: musical temperament -msgid "equal" +#: js/turtleactions/IntervalsActions.js:113 +msgid "eight" msgstr "" -#: js/musicutils.js:793 -#: js/musicutils.js:1125 -#: js/musicutils.js:1133 -#.TRANS: musical temperament -msgid "Pythagorean" +#: js/turtleactions/IntervalsActions.js:113 +msgid "nine" msgstr "" -#: js/musicutils.js:795 -#: js/musicutils.js:1124 -#: js/musicutils.js:1132 -#.TRANS: musical temperament -msgid "just intonation" +#: js/turtleactions/IntervalsActions.js:119 +msgid "a" msgstr "" -#: js/musicutils.js:797 -#: js/musicutils.js:1126 -#: js/musicutils.js:1127 -#: js/musicutils.js:1134 -#: js/musicutils.js:1135 -#.TRANS: musical temperament -msgid "meantone" +#: js/turtleactions/IntervalsActions.js:120 +msgid "below" msgstr "" -#: js/musicutils.js:814 -msgid "major 7th" +#: js/turtleactions/IntervalsActions.js:124 +msgid "above" msgstr "" -#: js/musicutils.js:815 -msgid "minor 7th" +#: js/turtleactions/IntervalsActions.js:131 +msgid "plus" msgstr "" -#: js/musicutils.js:816 -msgid "dominant 7th" +#: js/turtleactions/IntervalsActions.js:139 +msgid " below" msgstr "" -#: js/musicutils.js:817 -msgid "minor-major 7th" +#: js/turtleactions/IntervalsActions.js:257 +msgid "Adding missing pitch number 0." msgstr "" -#: js/musicutils.js:818 -msgid "fully-diminished 7th" +#: js/turtleactions/IntervalsActions.js:265 +msgid "Ignoring pitch numbers less than zero or greater than eleven." msgstr "" -#: js/musicutils.js:819 -msgid "half-diminished 7th" +#: js/turtleactions/IntervalsActions.js:271 +msgid "Ignoring duplicate pitch numbers." msgstr "" -#: js/musicutils.js:4379 -#: js/musicutils.js:4416 -msgid "current" +#: js/turtleactions/ToneActions.js:134 +msgid "Vibrato intensity must be between 1 and 100." msgstr "" -#: js/musicutils.js:4382 -#: js/musicutils.js:4407 -msgid "next" +#: js/turtleactions/ToneActions.js:139 +msgid "Vibrato rate must be greater than 0." msgstr "" -#: js/musicutils.js:4385 -#: js/musicutils.js:4412 -msgid "previous" +#: js/turtleactions/ToneActions.js:192 +#: js/turtleactions/ToneActions.js:265 +#.TRANS: Depth is the intesity of the tremolo or chorus effect. +msgid "Depth is out of range." msgstr "" -#: js/synthutils.js:104 -#.TRANS: simple monotone synthesizer -msgid "simple-2" +#: js/turtleactions/ToneActions.js:301 +msgid "Distortion must be from 0 to 100." msgstr "" -#: js/synthutils.js:106 -#.TRANS: simple monotone synthesizer -msgid "simple-3" +#: js/turtleactions/ToneActions.js:332 +#.TRANS: partials components in a harmonic series +msgid "Partial must be greater than or equal to 0." msgstr "" -#: js/synthutils.js:108 -#.TRANS: simple monotone synthesizer -msgid "simple-4" +#: js/turtleactions/ToneActions.js:378 +#: js/turtleactions/ToneActions.js:417 +#: js/turtleactions/ToneActions.js:456 +#: js/widgets/timbre.js:782 +msgid "Unable to use synth due to existing oscillator" msgstr "" -#: js/synthutils.js:141 -#.TRANS: musical instrument -msgid "taiko" +#: js/turtleactions/ToneActions.js:388 +#: js/turtleactions/ToneActions.js:427 +msgid "The input cannot be negative." msgstr "" -#: js/modewidget.js:86 -#: js/modewidget.js:88 -#: js/modewidget.js:642 -#: js/modewidget.js:644 -#: js/modewidget.js:712 -#: js/modewidget.js:714 -#: js/temperament.js:2078 -#: js/rhythmruler.js:189 -#: js/rhythmruler.js:1410 -#: js/rhythmruler.js:1412 -#: js/rhythmruler.js:1435 -#: js/rhythmruler.js:1437 -#: js/meterwidget.js:89 -#: js/meterwidget.js:91 +#: js/widgets/modewidget.js:86 +#: js/widgets/modewidget.js:88 +#: js/widgets/modewidget.js:642 +#: js/widgets/modewidget.js:644 +#: js/widgets/modewidget.js:712 +#: js/widgets/modewidget.js:714 +#: js/widgets/meterwidget.js:194 +#: js/widgets/meterwidget.js:196 +#: js/widgets/temperament.js:2236 +#: js/widgets/rhythmruler.js:457 +#: js/widgets/rhythmruler.js:1790 +#: js/widgets/rhythmruler.js:1792 +#: js/widgets/rhythmruler.js:1816 +#: js/widgets/rhythmruler.js:1818 msgid "Play all" msgstr "" -#: js/modewidget.js:115 -#: js/pitchstaircase.js:641 -#: js/phrasemaker.js:339 -#: js/pitchdrummatrix.js:94 -#: js/pitchslider.js:125 -#: js/temperament.js:2083 -#: js/musickeyboard.js:530 -#: js/timbre.js:756 -#: js/meterwidget.js:124 -#: js/arpeggio.js:103 +#: js/widgets/modewidget.js:115 +#: js/widgets/meterwidget.js:229 +#: js/widgets/pitchdrummatrix.js:166 +#: js/widgets/pitchslider.js:125 +#: js/widgets/pitchstaircase.js:641 +#: js/widgets/temperament.js:2244 +#: js/widgets/timbre.js:756 +#: js/widgets/arpeggio.js:103 +#: js/widgets/musickeyboard.js:688 +#: js/widgets/phrasemaker.js:550 msgid "Save" msgstr "" -#: js/modewidget.js:121 -#: js/pitchstaircase.js:686 -#: js/phrasemaker.js:356 -#: js/pitchdrummatrix.js:109 -#: js/musickeyboard.js:534 -#: js/rhythmruler.js:269 -#: js/arpeggio.js:118 +#: js/widgets/modewidget.js:121 +#: js/widgets/pitchdrummatrix.js:181 +#: js/widgets/pitchstaircase.js:686 +#: js/widgets/arpeggio.js:118 +#: js/widgets/musickeyboard.js:696 +#: js/widgets/phrasemaker.js:567 +#: js/widgets/rhythmruler.js:601 #.TRANS: clear all subdivisions from the ruler. msgid "Clear" msgstr "" -#: js/modewidget.js:127 +#: js/widgets/modewidget.js:127 msgid "Rotate counter clockwise" msgstr "" -#: js/modewidget.js:133 +#: js/widgets/modewidget.js:133 msgid "Rotate clockwise" msgstr "" -#: js/modewidget.js:139 +#: js/widgets/modewidget.js:139 msgid "Invert" msgstr "" -#: js/modewidget.js:145 -#: js/pitchstaircase.js:678 -#: js/rhythmruler.js:258 -#: js/timbre.js:963 +#: js/widgets/modewidget.js:145 +#: js/widgets/pitchstaircase.js:678 +#: js/widgets/timbre.js:963 +#: js/widgets/rhythmruler.js:578 msgid "Undo" msgstr "" -#: js/modewidget.js:163 +#: js/widgets/modewidget.js:163 #.TRANS: A circle of notes represents the musical mode. msgid "Click in the circle to select notes for the mode." msgstr "" -#: js/modewidget.js:1017 -#: js/pitchstaircase.js:580 -#: js/phrasemaker.js:4855 -#: js/temperament.js:1754 -#: js/rhythmruler.js:1865 -#: js/rhythmruler.js:2081 -#: js/tempo.js:414 +#: js/widgets/modewidget.js:1017 +#: js/widgets/pitchstaircase.js:580 +#: js/widgets/temperament.js:1929 +#: js/widgets/tempo.js:414 +#: js/widgets/phrasemaker.js:5356 +#: js/widgets/rhythmruler.js:2254 +#: js/widgets/rhythmruler.js:2472 msgid "New action block generated!" msgstr "" -#: js/oscilloscope.js:79 -msgid "Zoom In" -msgstr "" - -#: js/oscilloscope.js:88 -msgid "Zoom Out" -msgstr "" - -#: js/pitchstaircase.js:624 -msgid "Play chord" -msgstr "" - -#: js/pitchstaircase.js:632 -msgid "Play scale" +#: js/widgets/meterwidget.js:275 +msgid "Reset" msgstr "" -#: js/pitchstaircase.js:696 -msgid "Click on a note to create a new step." +#: js/widgets/meterwidget.js:301 +msgid "Click in the circle to select strong beats for the meter." msgstr "" -#: js/phrasemaker.js:363 -msgid "Export" +#: js/widgets/oscilloscope.js:79 +msgid "Zoom In" msgstr "" -#: js/phrasemaker.js:370 -msgid "Sort" +#: js/widgets/oscilloscope.js:88 +msgid "Zoom Out" msgstr "" -#: js/phrasemaker.js:373 -#: js/musickeyboard.js:559 -msgid "Add note" +#: js/widgets/pitchdrummatrix.js:356 +#: js/widgets/pitchdrummatrix.js:752 +msgid "Click in the grid to map notes to drums." msgstr "" -#: js/phrasemaker.js:764 -msgid "Click on the table to add notes." +#: js/widgets/pitchslider.js:103 +msgid "Move up" msgstr "" -#: js/phrasemaker.js:2414 -#: js/phrasemaker.js:2543 -msgid "tuplet value" +#: js/widgets/pitchslider.js:114 +msgid "Move down" msgstr "" -#: js/pitchdrummatrix.js:270 -#: js/pitchdrummatrix.js:639 -msgid "Click in the grid to map notes to drums." +#: js/widgets/pitchslider.js:136 +msgid "Click on the slider to create a note block." msgstr "" -#: js/pitchslider.js:103 -msgid "Move up" +#: js/widgets/pitchstaircase.js:624 +msgid "Play chord" msgstr "" -#: js/pitchslider.js:114 -msgid "Move down" +#: js/widgets/pitchstaircase.js:632 +msgid "Play scale" msgstr "" -#: js/pitchslider.js:136 -msgid "Click on the slider to create a note block." +#: js/widgets/pitchstaircase.js:696 +msgid "Click on a note to create a new step." msgstr "" -#: js/temperament.js:215 +#: js/widgets/temperament.js:321 msgid "back to 2:1 octave space" msgstr "" -#: js/temperament.js:323 +#: js/widgets/temperament.js:447 msgid "edit" msgstr "" -#: js/temperament.js:330 -#: js/temperament.js:332 -#: js/temperament.js:1336 -#: js/temperament.js:1338 +#: js/widgets/temperament.js:454 +#: js/widgets/temperament.js:456 +#: js/widgets/temperament.js:1493 +#: js/widgets/temperament.js:1495 msgid "close" msgstr "" -#: js/temperament.js:423 -#: js/temperament.js:736 -#: js/temperament.js:743 -#: js/temperament.js:845 -#: js/temperament.js:935 -#: js/temperament.js:942 -#: js/temperament.js:1015 -#: js/temperament.js:1284 -#: js/temperament.js:1354 -#: js/temperament.js:1430 +#: js/widgets/temperament.js:552 +#: js/widgets/temperament.js:877 +#: js/widgets/temperament.js:884 +#: js/widgets/temperament.js:986 +#: js/widgets/temperament.js:1080 +#: js/widgets/temperament.js:1087 +#: js/widgets/temperament.js:1160 +#: js/widgets/temperament.js:1433 +#: js/widgets/temperament.js:1511 +#: js/widgets/temperament.js:1596 msgid "done" msgstr "" -#: js/temperament.js:477 -#: js/temperament.js:482 -#: js/temperament.js:918 +#: js/widgets/temperament.js:610 +#: js/widgets/temperament.js:615 +#: js/widgets/temperament.js:1063 msgid "ratio" msgstr "" -#: js/temperament.js:483 +#: js/widgets/temperament.js:616 msgid "interval" msgstr "" -#: js/temperament.js:611 +#: js/widgets/temperament.js:744 msgid "non scalar" msgstr "" -#: js/temperament.js:650 +#: js/widgets/temperament.js:787 msgid "ratios" msgstr "" -#: js/temperament.js:650 +#: js/widgets/temperament.js:787 msgid "arbitrary" msgstr "" -#: js/temperament.js:719 +#: js/widgets/temperament.js:860 msgid "number of divisions" msgstr "" -#: js/temperament.js:741 -#: js/temperament.js:858 -#: js/temperament.js:940 -#: js/temperament.js:1033 +#: js/widgets/temperament.js:882 +#: js/widgets/temperament.js:999 +#: js/widgets/temperament.js:1085 +#: js/widgets/temperament.js:1178 msgid "preview" msgstr "" -#: js/temperament.js:788 +#: js/widgets/temperament.js:929 msgid "The Number of divisions is too large." msgstr "" -#: js/temperament.js:921 +#: js/widgets/temperament.js:1066 msgid "recursion" msgstr "" -#: js/temperament.js:1450 +#: js/widgets/temperament.js:1616 msgid "The octave ratio has changed. This changes temperament significantly." msgstr "" -#: js/temperament.js:2087 +#: js/widgets/temperament.js:2248 msgid "Table" msgstr "" -#: js/temperament.js:2185 +#: js/widgets/temperament.js:2356 msgid "Add pitches" msgstr "" -#: js/musickeyboard.js:570 -msgid "Metronome" +#: js/widgets/tempo.js:78 +#: js/widgets/tempo.js:97 +#: js/widgets/tempo.js:99 +#: js/widgets/aiwidget.js:134 +#: js/widgets/aiwidget.js:136 +#: js/widgets/rhythmruler.js:681 +#: js/widgets/rhythmruler.js:683 +#: js/widgets/rhythmruler.js:1864 +#: js/widgets/rhythmruler.js:1866 +#: js/widgets/sampler.js:180 +#: js/widgets/sampler.js:182 +msgid "Pause" msgstr "" -#: js/musickeyboard.js:1296 -#: plugins/rodi.rtp:193 -msgid "duration" +#: js/widgets/tempo.js:113 +msgid "Save tempo" msgstr "" -#: js/musickeyboard.js:2840 -msgid "New action blocks generated!" +#: js/widgets/tempo.js:144 +msgid "speed up" msgstr "" -#: js/musickeyboard.js:2841 -msgid "New action block generated" +#: js/widgets/tempo.js:150 +msgid "slow down" msgstr "" -#: js/musickeyboard.js:2984 -#: js/musickeyboard.js:2992 -msgid "MIDI device present." +#: js/widgets/tempo.js:194 +msgid "Adjust the tempo with the buttons." msgstr "" -#: js/musickeyboard.js:2995 -msgid "No MIDI device found." +#: js/widgets/tempo.js:261 +msgid "Please enter a number between 30 and 1000" msgstr "" -#: js/musickeyboard.js:3000 -msgid "Failed to get MIDI access in browser." +#: js/widgets/tempo.js:268 +#: js/widgets/tempo.js:271 +msgid "The beats per minute must be between 30 and 1000." msgstr "" -#: js/rhythmruler.js:202 -msgid "Save rhythms" +#: js/widgets/tempo.js:287 +msgid "The beats per minute must be below 1000." msgstr "" -#: js/rhythmruler.js:222 -msgid "Save drum machine" +#: js/widgets/tempo.js:303 +msgid "The beats per minute must be above 30" msgstr "" -#: js/rhythmruler.js:263 -#.TRANS: user can tap out a rhythm by clicking on a ruler. -msgid "Tap a rhythm" +#: js/widgets/timbre.js:766 +msgid "Synthesizer" msgstr "" -#: js/rhythmruler.js:342 -#: js/rhythmruler.js:344 -#: js/rhythmruler.js:1481 -#: js/rhythmruler.js:1483 -#: js/sampler.js:110 -#: js/sampler.js:112 -#: js/tempo.js:78 -#: js/tempo.js:97 -#: js/tempo.js:99 -msgid "Pause" +#: js/widgets/timbre.js:789 +msgid "Oscillator" msgstr "" -#: js/rhythmruler.js:478 -msgid "Click on the ruler to divide it." +#: js/widgets/timbre.js:840 +msgid "Envelope" msgstr "" -#: js/rhythmruler.js:603 -#: js/rhythmruler.js:605 -#: js/rhythmruler.js:804 -#: js/rhythmruler.js:806 -#: js/rhythmruler.js:1386 -#: js/rhythmruler.js:1388 -msgid "tap a rhythm" +#: js/widgets/timbre.js:886 +#: planet/js/GlobalTag.js:50 +#.TRANS: On the Planet, we use labels to tag projects. +msgid "Effects" msgstr "" -#: js/rhythmruler.js:1084 -msgid "Maximum value of 256 has been exceeded." +#: js/widgets/timbre.js:904 +msgid "Filter" msgstr "" -#: js/sampler.js:137 -msgid "Warning: Sample is bigger than 1MB." +#: js/widgets/timbre.js:946 +msgid "Add filter" msgstr "" -#: js/sampler.js:142 -msgid "Upload failed: Sample is not a .wav file." +#: js/widgets/timbre.js:987 +msgid "Click on buttons to open the timbre design tools." msgstr "" -#: js/sampler.js:164 -msgid "A new sample block was generated." +#: js/widgets/timbre.js:1273 +msgid "harmonicity" msgstr "" -#: js/sampler.js:255 -msgid "Upload sample" +#: js/widgets/timbre.js:1340 +#: js/widgets/timbre.js:1406 +msgid "modulation index" msgstr "" -#: js/sampler.js:306 -msgid "Save sample" +#: js/widgets/timbre.js:1484 +msgid "vibrato amount" msgstr "" -#: js/sampler.js:697 -#.TRANS: The reference tone is a sound used for comparison. -msgid "reference tone" +#: js/widgets/timbre.js:1919 +msgid "Filter already present." msgstr "" -#: js/tempo.js:113 -msgid "Save tempo" +#: js/widgets/timbre.js:2322 +msgid "delay (MS)" msgstr "" -#: js/tempo.js:144 -msgid "speed up" +#: js/widgets/timbre.js:2507 +msgid "distortion amount" msgstr "" -#: js/tempo.js:150 -msgid "slow down" +#: js/widgets/aiwidget.js:180 +#: js/widgets/sampler.js:227 +msgid "Warning: Sample is bigger than 1MB." msgstr "" -#: js/tempo.js:194 -msgid "Adjust the tempo with the buttons." +#: js/widgets/aiwidget.js:539 +msgid "New start block generated" msgstr "" -#: js/tempo.js:261 -msgid "Please enter a number between 30 and 1000" +#: js/widgets/aiwidget.js:541 +msgid "MIDI loading. This may take some time depending upon the number of notes in the track" msgstr "" -#: js/tempo.js:268 -#: js/tempo.js:271 -msgid "The beats per minute must be between 30 and 1000." +#: js/widgets/aiwidget.js:551 +#: js/widgets/sampler.js:254 +msgid "Upload failed: Sample is not a .wav file." msgstr "" -#: js/tempo.js:287 -msgid "The beats per minute must be below 1000." +#: js/widgets/aiwidget.js:679 +#: js/widgets/sampler.js:432 +msgid "Save sample" msgstr "" -#: js/tempo.js:303 -msgid "The beats per minute must be above 30" +#: js/widgets/aiwidget.js:701 +msgid "AI Music" msgstr "" -#: js/timbre.js:766 -msgid "Synthesizer" +#: js/widgets/arpeggio.js:239 +msgid "Click in the grid to add steps to the arpeggio." msgstr "" -#: js/timbre.js:789 -msgid "Oscillator" +#: js/widgets/help.js:95 +#: js/widgets/help.js:125 +#: js/widgets/help.js:146 +#: js/widgets/help.js:158 +#: js/widgets/help.js:376 +#: js/widgets/help.js:391 +msgid "Take a tour" msgstr "" -#: js/timbre.js:840 -msgid "Envelope" +#: js/widgets/musickeyboard.js:725 +#: js/widgets/phrasemaker.js:584 +msgid "Add note" msgstr "" -#: js/timbre.js:886 -#: js/GlobalTag.js:50 -#.TRANS: On the Planet, we use labels to tag projects. -msgid "Effects" +#: js/widgets/musickeyboard.js:744 +msgid "Metronome" +msgstr "" + +#: js/widgets/musickeyboard.js:1549 +#: plugins/rodi.rtp:193 +msgid "duration" +msgstr "" + +#: js/widgets/musickeyboard.js:3179 +msgid "New action blocks generated" +msgstr "" + +#: js/widgets/musickeyboard.js:3180 +msgid "New action block generated" msgstr "" -#: js/timbre.js:904 -msgid "Filter" +#: js/widgets/musickeyboard.js:3365 +#: js/widgets/musickeyboard.js:3373 +msgid "MIDI device present." msgstr "" -#: js/timbre.js:946 -msgid "Add filter" +#: js/widgets/musickeyboard.js:3376 +msgid "No MIDI device found." msgstr "" -#: js/timbre.js:987 -msgid "Click on buttons to open the timbre design tools." +#: js/widgets/musickeyboard.js:3386 +msgid "Failed to get MIDI access in browser." msgstr "" -#: js/timbre.js:1273 -msgid "harmonicity" +#: js/widgets/phrasemaker.js:574 +msgid "Export" msgstr "" -#: js/timbre.js:1340 -#: js/timbre.js:1406 -msgid "modulation index" +#: js/widgets/phrasemaker.js:581 +msgid "Sort" msgstr "" -#: js/timbre.js:1484 -msgid "vibrato amount" +#: js/widgets/phrasemaker.js:975 +msgid "Click on the table to add notes." msgstr "" -#: js/timbre.js:1919 -msgid "Filter already present." +#: js/widgets/phrasemaker.js:2677 +#: js/widgets/phrasemaker.js:2819 +msgid "tuplet value" msgstr "" -#: js/timbre.js:2322 -msgid "delay (MS)" +#: js/widgets/rhythmruler.js:486 +msgid "Save rhythms" msgstr "" -#: js/timbre.js:2507 -msgid "distortion amount" +#: js/widgets/rhythmruler.js:512 +msgid "Save drum machine" msgstr "" -#: js/meterwidget.js:170 -msgid "Reset" +#: js/widgets/rhythmruler.js:589 +#.TRANS: user can tap out a rhythm by clicking on a ruler. +msgid "Tap a rhythm" msgstr "" -#: js/meterwidget.js:196 -msgid "Click in the circle to select strong beats for the meter." +#: js/widgets/rhythmruler.js:817 +msgid "Click on the ruler to divide it." msgstr "" -#: js/arpeggio.js:239 -msgid "Click in the grid to add steps to the arpeggio." +#: js/widgets/rhythmruler.js:950 +#: js/widgets/rhythmruler.js:952 +#: js/widgets/rhythmruler.js:1152 +#: js/widgets/rhythmruler.js:1154 +#: js/widgets/rhythmruler.js:1765 +#: js/widgets/rhythmruler.js:1767 +msgid "tap a rhythm" msgstr "" -#: js/ProjectStorage.js:243 -msgid "anonymous" +#: js/widgets/rhythmruler.js:1459 +msgid "Maximum value of 256 has been exceeded." msgstr "" -#: js/GlobalCard.js:68 -msgid "Share" +#: js/widgets/sampler.js:237 +msgid "Recording started..." msgstr "" -#: js/GlobalCard.js:74 -msgid "Flags" +#: js/widgets/sampler.js:245 +msgid "Recording complete..." msgstr "" -#: js/LocalCard.js:36 -msgid "View published project" +#: js/widgets/sampler.js:283 +msgid "A new sample block was generated." msgstr "" -#: js/LocalCard.js:42 -msgid "Publish project" +#: js/widgets/sampler.js:378 +msgid "Upload sample" msgstr "" -#: js/LocalCard.js:51 -msgid "Edit project" +#: js/widgets/sampler.js:399 +msgid "Warning: Your sample cannot be loaded because it is >1MB." msgstr "" -#: js/LocalCard.js:52 -msgid "Delete project" +#: js/widgets/sampler.js:448 +msgid "Toggle Mic" msgstr "" -#: js/LocalCard.js:53 -msgid "Download project" +#: js/widgets/sampler.js:458 +msgid "Playback" msgstr "" -#: js/LocalCard.js:55 -msgid "Duplicate project" +#: js/widgets/sampler.js:979 +#.TRANS: The reference tone is a sound used for comparison. +msgid "reference tone" msgstr "" -#: js/GlobalTag.js:28 +#: planet/js/GlobalTag.js:28 #.TRANS: On the Planet, we use labels to tag projects. msgid "All Projects" msgstr "" -#: js/GlobalTag.js:30 -#: js/StringHelper.js:37 +#: planet/js/GlobalTag.js:30 +#: planet/js/StringHelper.js:37 #.TRANS: On the Planet, we use labels to tag projects. msgid "My Projects" msgstr "" -#: js/GlobalTag.js:32 +#: planet/js/GlobalTag.js:32 #.TRANS: On the Planet, we use labels to tag projects. msgid "Examples" msgstr "" -#: js/GlobalTag.js:34 +#: planet/js/GlobalTag.js:34 #.TRANS: On the Planet, we use labels to tag projects. msgid "Music" msgstr "" -#: js/GlobalTag.js:36 +#: planet/js/GlobalTag.js:36 #.TRANS: On the Planet, we use labels to tag projects. msgid "Art" msgstr "" -#: js/GlobalTag.js:38 +#: planet/js/GlobalTag.js:38 #.TRANS: On the Planet, we use labels to tag projects. msgid "Math" msgstr "" -#: js/GlobalTag.js:40 +#: planet/js/GlobalTag.js:40 #.TRANS: On the Planet, we use labels to tag projects. msgid "Interactive" msgstr "" -#: js/GlobalTag.js:42 +#: planet/js/GlobalTag.js:42 #.TRANS: On the Planet, we use labels to tag projects. msgid "Design" msgstr "" -#: js/GlobalTag.js:44 +#: planet/js/GlobalTag.js:44 #.TRANS: On the Planet, we use labels to tag projects. msgid "Game" msgstr "" -#: js/GlobalTag.js:46 +#: planet/js/GlobalTag.js:46 #.TRANS: On the Planet, we use labels to tag projects. msgid "Media" msgstr "" -#: js/GlobalTag.js:48 +#: planet/js/GlobalTag.js:48 #.TRANS: On the Planet, we use labels to tag projects. msgid "Sensors" msgstr "" -#: js/GlobalTag.js:52 +#: planet/js/GlobalTag.js:52 #.TRANS: On the Planet, we use labels to tag projects. msgid "Code Snippet" msgstr "" -#: js/helper.js:149 -#: js/StringHelper.js:49 -msgid "Show more tags" +#: planet/js/LocalCard.js:36 +msgid "View published project" msgstr "" -#: js/helper.js:150 -msgid "Show fewer tags" +#: planet/js/LocalCard.js:42 +msgid "Publish project" +msgstr "" + +#: planet/js/LocalCard.js:51 +msgid "Edit project" +msgstr "" + +#: planet/js/LocalCard.js:52 +msgid "Delete project" +msgstr "" + +#: planet/js/LocalCard.js:53 +msgid "Download project" +msgstr "" + +#: planet/js/LocalCard.js:55 +msgid "Duplicate project" +msgstr "" + +#: planet/js/ProjectStorage.js:243 +msgid "anonymous" +msgstr "" + +#: planet/js/SaveInterface.js:34 +msgid "Open in Music Blocks" +msgstr "" + +#: planet/js/SaveInterface.js:35 +msgid "Open in Turtle Blocks" +msgstr "" + +#: planet/js/GlobalCard.js:68 +msgid "Share" +msgstr "" + +#: planet/js/GlobalCard.js:74 +msgid "Flags" +msgstr "" + +#: planet/js/GlobalPlanet.js:35 +msgid "No results found." +msgstr "" + +#: planet/js/GlobalPlanet.js:51 +msgid "Remix of" +msgstr "" + +#: planet/js/GlobalPlanet.js:509 +msgid "Cannot connect to server" msgstr "" -#: js/ProjectViewer.js:30 +#: planet/js/ProjectViewer.js:30 msgid "Error: Report could not be submitted. Try again later." msgstr "" -#: js/ProjectViewer.js:31 +#: planet/js/ProjectViewer.js:31 msgid "Thank you for reporting this project. A moderator will review the project shortly, to verify violation of the Sugar Labs Code of Conduct." msgstr "" -#: js/ProjectViewer.js:32 -#: js/StringHelper.js:62 -#: js/StringHelper.js:64 -#: js/StringHelper.js:68 +#: planet/js/ProjectViewer.js:32 +#: planet/js/StringHelper.js:62 +#: planet/js/StringHelper.js:64 +#: planet/js/StringHelper.js:68 msgid "Report Project" msgstr "" -#: js/ProjectViewer.js:33 -#: js/StringHelper.js:63 +#: planet/js/ProjectViewer.js:33 +#: planet/js/StringHelper.js:63 msgid "Project Reported" msgstr "" -#: js/ProjectViewer.js:34 +#: planet/js/ProjectViewer.js:34 msgid "Report description required" msgstr "" -#: js/ProjectViewer.js:35 +#: planet/js/ProjectViewer.js:35 msgid "Report description too long" msgstr "" -#: js/StringHelper.js:30 +#: planet/js/Publisher.js:30 +msgid "Feature unavailable - cannot connect to server. Reload Music Blocks to try again." +msgstr "" + +#: planet/js/Publisher.js:220 +#: planet/js/Publisher.js:237 +msgid "This field is required" +msgstr "" + +#: planet/js/Publisher.js:227 +msgid "Title too long" +msgstr "" + +#: planet/js/Publisher.js:244 +msgid "Description too long" +msgstr "" + +#: planet/js/Publisher.js:341 +msgid "Server Error" +msgstr "" + +#: planet/js/Publisher.js:341 +msgid "Try Again" +msgstr "" + +#: planet/js/StringHelper.js:30 msgid "Planet" msgstr "" -#: js/StringHelper.js:31 +#: planet/js/StringHelper.js:31 msgid "Close Planet" msgstr "" -#: js/StringHelper.js:32 +#: planet/js/StringHelper.js:32 msgid "Open project from file" msgstr "" -#: js/StringHelper.js:34 +#: planet/js/StringHelper.js:34 msgid "Local" msgstr "" -#: js/StringHelper.js:35 +#: planet/js/StringHelper.js:35 msgid "Global" msgstr "" -#: js/StringHelper.js:36 +#: planet/js/StringHelper.js:36 msgid "Search for a project" msgstr "" -#: js/StringHelper.js:38 +#: planet/js/StringHelper.js:38 msgid "Publish Project" msgstr "" -#: js/StringHelper.js:40 +#: planet/js/StringHelper.js:40 msgid "Tags (max 5)" msgstr "" -#: js/StringHelper.js:41 -#: js/StringHelper.js:61 +#: planet/js/StringHelper.js:41 +#: planet/js/StringHelper.js:61 msgid "Description" msgstr "" -#: js/StringHelper.js:42 -#: js/StringHelper.js:67 +#: planet/js/StringHelper.js:42 +#: planet/js/StringHelper.js:67 msgid "Submit" msgstr "" -#: js/StringHelper.js:43 -#: js/StringHelper.js:47 +#: planet/js/StringHelper.js:43 +#: planet/js/StringHelper.js:47 msgid "Cancel" msgstr "" -#: js/StringHelper.js:44 +#: planet/js/StringHelper.js:44 msgid "Delete \\"\\"?" msgstr "" -#: js/StringHelper.js:45 +#: planet/js/StringHelper.js:45 msgid "Permanently delete project \\"\\"?" msgstr "" -#: js/StringHelper.js:48 +#: planet/js/StringHelper.js:48 msgid "Explore Projects" msgstr "" -#: js/StringHelper.js:50 +#: planet/js/StringHelper.js:49 +#: planet/js/helper.js:149 +msgid "Show more tags" +msgstr "" + +#: planet/js/StringHelper.js:50 msgid "Most recent" msgstr "" -#: js/StringHelper.js:51 +#: planet/js/StringHelper.js:51 msgid "Most liked" msgstr "" -#: js/StringHelper.js:52 +#: planet/js/StringHelper.js:52 msgid "Most downloaded" msgstr "" -#: js/StringHelper.js:53 +#: planet/js/StringHelper.js:53 msgid "A-Z" msgstr "" -#: js/StringHelper.js:54 +#: planet/js/StringHelper.js:54 msgid "Sort by" msgstr "" -#: js/StringHelper.js:55 +#: planet/js/StringHelper.js:55 msgid "Load More Projects" msgstr "" -#: js/StringHelper.js:56 +#: planet/js/StringHelper.js:56 msgid "Last Updated" msgstr "" -#: js/StringHelper.js:57 +#: planet/js/StringHelper.js:57 msgid "Creation Date" msgstr "" -#: js/StringHelper.js:58 +#: planet/js/StringHelper.js:58 msgid "Number of Downloads:" msgstr "" -#: js/StringHelper.js:59 +#: planet/js/StringHelper.js:59 msgid "Number of Likes:" msgstr "" -#: js/StringHelper.js:60 +#: planet/js/StringHelper.js:60 msgid "Tags:" msgstr "" -#: js/StringHelper.js:65 +#: planet/js/StringHelper.js:65 msgid "Report projects which violate the Sugar Labs Code of Conduct." msgstr "" -#: js/StringHelper.js:66 +#: planet/js/StringHelper.js:66 msgid "Reason for reporting project" msgstr "" -#: js/StringHelper.js:70 +#: planet/js/StringHelper.js:70 msgid "Download as File" msgstr "" -#: js/GlobalPlanet.js:35 -msgid "No results found." -msgstr "" - -#: js/GlobalPlanet.js:51 -msgid "Remix of" -msgstr "" - -#: js/GlobalPlanet.js:509 -msgid "Cannot connect to server" -msgstr "" - -#: js/Publisher.js:30 -msgid "Feature unavailable - cannot connect to server. Reload Music Blocks to try again." -msgstr "" - -#: js/Publisher.js:218 -#: js/Publisher.js:235 -msgid "This field is required" -msgstr "" - -#: js/Publisher.js:225 -msgid "Title too long" +#: planet/js/helper.js:150 +msgid "Show fewer tags" msgstr "" -#: js/Publisher.js:242 -msgid "Description too long" +#: plugins/accelerometer.rtp:48 +msgid "motion x" msgstr "" -#: js/Publisher.js:339 -msgid "Server Error" +#: plugins/accelerometer.rtp:56 +msgid "motion y" msgstr "" -#: js/Publisher.js:339 -msgid "Try Again" +#: plugins/accelerometer.rtp:64 +msgid "motion z" msgstr "" -#: js/SaveInterface.js:34 -msgid "Open in Music Blocks" +#: plugins/facebook.rtp:27 +msgid "publish" msgstr "" -#: js/SaveInterface.js:35 -msgid "Open in Turtle Blocks" +#: plugins/maths.rtp:62 +msgid "power" msgstr "" -#: plugins/weather.rtp:68 -#: plugins/weather.rtp:97 -msgid "Days ahead must be in the range of -1 to 5." +#: plugins/maths.rtp:62 +msgid "base" msgstr "" -#: plugins/weather.rtp:122 -msgid "forecast" +#: plugins/maths.rtp:62 +msgid "exp" msgstr "" -#: plugins/weather.rtp:123 -#: plugins/weather.rtp:137 -#: plugins/weather.rtp:150 -msgid "city" +#: plugins/maths.rtp:99 +msgid "floor" msgstr "" -#: plugins/weather.rtp:124 -#: plugins/weather.rtp:138 -#: plugins/weather.rtp:151 -msgid "day" +#: plugins/maths.rtp:104 +msgid "ceiling" msgstr "" -#: plugins/weather.rtp:136 -msgid "high" +#: plugins/maths.rtp:109 +msgid "to degrees" msgstr "" -#: plugins/weather.rtp:149 -msgid "low" +#: plugins/maths.rtp:114 +msgid "to radians" msgstr "" #: plugins/nutrition.rtp:104 @@ -9458,45 +9867,6 @@ msgstr "" msgid "water" msgstr "" -#: plugins/maths.rtp:62 -#: plugins/examples.rtp:93 -msgid "power" -msgstr "" - -#: plugins/maths.rtp:62 -#: plugins/examples.rtp:93 -msgid "base" -msgstr "" - -#: plugins/maths.rtp:62 -#: plugins/examples.rtp:93 -msgid "exp" -msgstr "" - -#: plugins/maths.rtp:99 -#: plugins/examples.rtp:130 -msgid "floor" -msgstr "" - -#: plugins/maths.rtp:104 -#: plugins/examples.rtp:135 -msgid "ceiling" -msgstr "" - -#: plugins/maths.rtp:109 -#: plugins/examples.rtp:140 -msgid "to degrees" -msgstr "" - -#: plugins/maths.rtp:114 -#: plugins/examples.rtp:145 -msgid "to radians" -msgstr "" - -#: plugins/facebook.rtp:27 -msgid "publish" -msgstr "" - #: plugins/rodi.rtp:172 msgid "blink" msgstr "" @@ -9525,18 +9895,66 @@ msgstr "" msgid "move" msgstr "" -#: plugins/accelerometer.rtp:48 -msgid "motion x" +#: plugins/weather.rtp:68 +#: plugins/weather.rtp:97 +msgid "Days ahead must be in the range of -1 to 5." msgstr "" -#: plugins/accelerometer.rtp:56 -msgid "motion y" +#: plugins/weather.rtp:122 +msgid "forecast" msgstr "" -#: plugins/accelerometer.rtp:64 -msgid "motion z" +#: plugins/weather.rtp:123 +#: plugins/weather.rtp:137 +#: plugins/weather.rtp:150 +msgid "city" +msgstr "" + +#: plugins/weather.rtp:124 +#: plugins/weather.rtp:138 +#: plugins/weather.rtp:151 +msgid "day" +msgstr "" + +#: plugins/weather.rtp:136 +msgid "high" +msgstr "" + +#: plugins/weather.rtp:149 +msgid "low" msgstr "" +#: js/toolbar.js:70 + +#: js/toolbar.js:130 + +#: js/toolbar.js:194 + +#: js/toolbar.js:249 + +#~msgid "Toggle JavaScript Editor" +#~msgstr "" + +#: js/EnsembleBlocks.js:643 + +#~msgid "The Turrle pitch block returns the current pitch number being played by the specified turtle." +#~msgstr "" + +#: js/PitchActions.js:88 + +#~msgid "The Scalar Step Block must be used inside of a Note Block." +#~msgstr "" + +#: js/PitchActions.js:107 + +#~msgid "The Scalar Step Block must be preceded by a Pitch Block." +#~msgstr "" + +#: js/musickeyboard.js:2840 + +#~msgid "New action blocks generated!" +#~msgstr "" + #: js/toolbar.js:110 #: js/toolbar.js:204 @@ -9877,11 +10295,6 @@ msgstr "" #~msgid "The Time block returns the number of seconds that the program has been running." #~msgstr "" -#: js/help.js:95 - -#~msgid "Take a tour" -#~msgstr "" - #: js/GlobalCard.js:48 #~msgid "More Details" @@ -12780,11 +13193,6 @@ msgstr "" #~msgid "The save-stack button saves a stack onto a custom palette. It appears after a \"long press\" on a stack." #~msgstr "" -#: js/musicutils.js:254 - -#~msgid "Custom" -#~msgstr "" - #: js/basicblocks.js:4785 #~msgid "Rhythm" diff --git a/po/mg.po b/po/mg.po index 34b624db82..35ebbfb0a6 100644 --- a/po/mg.po +++ b/po/mg.po @@ -2129,276 +2129,131 @@ #: js/planetInterface.js:104 #: js/planetInterface.js:104 #: js/planetInterface.js:104 -msgid "project undefined" -msgstr "" - -#: js/logo.js:61 -msgid "Not a valid pitch name" +#: js/SaveInterface.js:59 +#: js/SaveInterface.js:61 +#: js/SaveInterface.js:93 +msgid "Music Blocks Project" msgstr "" -#: js/logo.js:507 -#: js/ProgramBlocks.js:258 -#: js/ProgramBlocks.js:427 -msgid "You must select a file." +#: js/SaveInterface.js:63 +msgid "This project was created in Music Blocks" msgstr "" -#: js/logo.js:1184 -#: js/turtles.js:118 -#: js/turtle-painter.js:1192 -#: js/turtle-painter.js:1193 -#: js/block.js:1463 -#: js/lilypond.js:757 -#: js/lilypond.js:921 -#: js/lilypond.js:959 -#: js/ActionBlocks.js:1223 -#: js/ProgramBlocks.js:1267 -msgid "start" -msgstr "atomboy" - -#: js/logo.js:1696 -msgid "Playback is ready." +#: js/SaveInterface.js:67 +msgid "Music Blocks is a Free/Libre Software application." msgstr "" -#: js/blocks.js:1011 -#: js/blocks.js:3427 -#: js/blocks.js:3428 -#: js/blocks.js:3653 -#: js/blocks.js:4012 -#: js/blocks.js:4205 -#: js/blocks.js:5343 -#: js/blocks.js:6474 -#: js/palette.js:527 -#: js/palette.js:536 -#: js/palette.js:545 -#: js/palette.js:554 -#: js/palette.js:1131 -#: js/palette.js:1142 -#: js/palette.js:1153 -#: js/palette.js:1164 -#: js/palette.js:1183 -#: js/rubrics.js:529 -#: js/macros.js:170 -#: js/macros.js:266 -#: js/macros.js:267 -#: js/macros.js:276 -#: js/macros.js:828 -#: js/block.js:1449 -#: js/block.js:4164 -#: js/block.js:4182 -#: js/block.js:4193 -#: js/turtledefs.js:128 -#: js/turtledefs.js:230 -#: js/ActionBlocks.js:254 -#: js/ActionBlocks.js:307 -#: js/ActionBlocks.js:617 -#: js/ActionBlocks.js:716 -#: js/ActionBlocks.js:961 -#: js/ActionBlocks.js:1049 -#: js/ActionBlocks.js:1322 -#: js/ActionBlocks.js:1325 -#: js/ActionBlocks.js:1337 -#: js/ActionBlocks.js:1404 -#: js/MeterBlocks.js:715 -#: js/MeterBlocks.js:768 -#: js/MeterBlocks.js:831 -#: js/MeterBlocks.js:892 -#: js/phrasemaker.js:4412 -#: js/musickeyboard.js:2647 -#: js/rhythmruler.js:1928 -#: js/rhythmruler.js:1935 -#: js/rhythmruler.js:2119 -#: js/rhythmruler.js:2126 -msgid "action" -msgstr "hetsika" - -#: js/blocks.js:1205 -#: js/blocks.js:3380 -#: js/blocks.js:3770 -#: js/blocks.js:3801 -#: js/blocks.js:3850 -#: js/blocks.js:3885 -#: js/blocks.js:6497 -#: js/palette.js:509 -#: js/palette.js:638 -#: js/palette.js:1107 -#: js/BoxesBlocks.js:282 -#: js/BoxesBlocks.js:285 -#: js/BoxesBlocks.js:405 -#: js/BoxesBlocks.js:594 -msgid "box" -msgstr "boaty" - -#: js/blocks.js:1680 -msgid "Consider breaking this stack into parts." +#: js/SaveInterface.js:69 +msgid "The source code can be accessed at" msgstr "" -#: js/blocks.js:2408 -#: js/palette.js:653 -#: js/MediaBlocks.js:602 -msgid "open file" +#: js/SaveInterface.js:72 +msgid "For more information, please consult the" msgstr "" -#: js/blocks.js:2415 -#: js/blocks.js:2423 -#: js/activity.js:1875 -msgid "audio file" +#: js/SaveInterface.js:76 +#: js/turtledefs.js:795 +msgid "Music Blocks Guide" msgstr "" -#: js/blocks.js:2536 -#: js/blocks.js:3147 -#: js/block.js:3543 -msgid "on2" +#: js/SaveInterface.js:83 +msgid "Alternatively, open the file in Music Blocks using the Load project button." msgstr "" -#: js/blocks.js:2538 -#: js/blocks.js:3149 -#: js/block.js:3545 -msgid "off" +#: js/SaveInterface.js:85 +msgid "Project Code" msgstr "" -#: js/blocks.js:2543 -#: js/blocks.js:3154 -#: js/palette.js:618 -#: js/block.js:3466 -#: js/BooleanBlocks.js:77 -#: js/BooleanBlocks.js:167 -#: js/BooleanBlocks.js:251 -#: js/BooleanBlocks.js:335 -#: js/BooleanBlocks.js:433 -#: js/BooleanBlocks.js:539 -#: js/BooleanBlocks.js:640 -#: js/BooleanBlocks.js:741 -#: js/BooleanBlocks.js:847 -#: js/BooleanBlocks.js:948 -#: js/BooleanBlocks.js:1033 -#: js/SensorsBlocks.js:910 -msgid "true" +#: js/SaveInterface.js:87 +msgid "This code stores data about the blocks in a project." msgstr "" -#: js/blocks.js:2545 -#: js/blocks.js:3156 -#: js/block.js:3466 -#: js/BooleanBlocks.js:79 -#: js/BooleanBlocks.js:169 -#: js/BooleanBlocks.js:253 -#: js/BooleanBlocks.js:337 -#: js/BooleanBlocks.js:435 -#: js/BooleanBlocks.js:541 -#: js/BooleanBlocks.js:642 -#: js/BooleanBlocks.js:743 -#: js/BooleanBlocks.js:849 -#: js/BooleanBlocks.js:950 -#: js/SensorsBlocks.js:912 -msgid "false" +#: js/SaveInterface.js:89 +msgid "Show" msgstr "" -#: js/blocks.js:3183 -#: js/palette.js:574 -#: js/MediaBlocks.js:892 -#: js/MediaBlocks.js:963 -msgid "text" -msgstr "Lahatsoratra" - -#: js/blocks.js:3379 -#: js/palette.js:641 -#: js/palette.js:642 -#: js/BoxesBlocks.js:514 -msgid "store in box" +#: js/SaveInterface.js:91 +msgid "Hide" msgstr "" -#: js/blocks.js:3384 -#: js/blocks.js:3824 -#: js/blocks.js:3859 -#: js/blocks.js:3894 -#: js/blocks.js:5773 -#: js/blocks.js:5794 -#: js/BoxesBlocks.js:772 -msgid "box1" +#: js/SaveInterface.js:131 +#: js/SaveInterface.js:204 +#: js/SaveInterface.js:262 +#: js/SaveInterface.js:389 +#: js/SaveInterface.js:417 +#: js/activity.js:4884 +#: planet/js/ProjectStorage.js:27 +#: planet/js/GlobalPlanet.js:467 +#: planet/js/GlobalPlanet.js:469 +#: planet/js/GlobalPlanet.js:495 +#.TRANS: default project title when saving as Lilypond +msgid "My Project" msgstr "" -#: js/blocks.js:3386 -#: js/blocks.js:3826 -#: js/blocks.js:3861 -#: js/blocks.js:3896 -#: js/blocks.js:5775 -#: js/blocks.js:5796 -#: js/BoxesBlocks.js:663 -msgid "box2" +#: js/SaveInterface.js:197 +#: planet/js/SaveInterface.js:58 +msgid "No description provided" msgstr "" -#: js/blocks.js:4058 -#: js/palette.js:639 -#: js/palette.js:644 -#: js/palette.js:1043 -#: js/BoxesBlocks.js:591 -msgid "store in" +#: js/SaveInterface.js:332 +msgid "Your recording is in progress." msgstr "" -#: js/blocks.js:4058 -#: js/EnsembleBlocks.js:391 -#: js/EnsembleBlocks.js:402 -#: js/MediaBlocks.js:746 -#: js/ProgramBlocks.js:390 -#: js/ProgramBlocks.js:495 -#: js/ProgramBlocks.js:658 -#: js/BoxesBlocks.js:595 -#: js/PitchBlocks.js:656 -#: js/PitchBlocks.js:932 -#: js/PitchBlocks.js:1827 -#: js/ToneBlocks.js:1025 -#: js/DictBlocks.js:215 -#: js/DictBlocks.js:289 -msgid "name" +#: js/SaveInterface.js:401 +#.TRANS: File name prompt for save as Lilypond +msgid "File name" msgstr "" -#: js/blocks.js:4058 -#: js/RhythmBlocks.js:1130 -#: js/BoxesBlocks.js:75 -#: js/BoxesBlocks.js:595 -#: js/HeapBlocks.js:544 -#: js/DictBlocks.js:289 -#: js/DictBlocks.js:430 -msgid "value" +#: js/SaveInterface.js:403 +#: planet/js/StringHelper.js:39 +#.TRANS: Project title prompt for save as Lilypond +msgid "Project title" msgstr "" -#: js/blocks.js:4907 -msgid "There is no block selected." +#: js/SaveInterface.js:405 +#.TRANS: Project title prompt for save as Lilypond +msgid "Project author" msgstr "" -#: js/blocks.js:5002 -#: js/MediaBlocks.js:888 -msgid "show" -msgstr "asehoy" - -#: js/blocks.js:5005 -#: js/MediaBlocks.js:803 -#.TRANS: Avatar is the image used to determine the appearance of the mouse. -msgid "avatar" +#: js/SaveInterface.js:407 +#.TRANS: MIDI prompt for save as Lilypond +msgid "Include MIDI output?" msgstr "" -#: js/blocks.js:5008 -#: js/ToneBlocks.js:1010 -#: js/sampler.js:693 -#.TRANS: The sound sample that the user uploads. -msgid "sample" +#: js/SaveInterface.js:409 +#.TRANS: Guitar prompt for save as Lilypond +msgid "Include guitar tablature output?" msgstr "" -#: js/turtles.js:874 -msgid "Grid" +#: js/SaveInterface.js:411 +#.TRANS: Lilypond is a scripting language for generating sheet music +msgid "Save as Lilypond" msgstr "" -#: js/turtles.js:891 -#: js/turtledefs.js:626 -msgid "Clean" -msgstr "Diovy" - -#: js/turtles.js:912 -#: js/turtledefs.js:632 -msgid "Collapse" +#: js/SaveInterface.js:426 +#: js/blocks/EnsembleBlocks.js:75 +#: js/blocks/EnsembleBlocks.js:154 +#: js/blocks/EnsembleBlocks.js:216 +#: js/blocks/EnsembleBlocks.js:302 +#: js/blocks/EnsembleBlocks.js:348 +#: js/blocks/EnsembleBlocks.js:389 +#: js/blocks/EnsembleBlocks.js:441 +#: js/blocks/EnsembleBlocks.js:490 +#: js/blocks/EnsembleBlocks.js:536 +#: js/blocks/EnsembleBlocks.js:583 +#: js/blocks/EnsembleBlocks.js:637 +#: js/blocks/EnsembleBlocks.js:753 +#: js/blocks/EnsembleBlocks.js:840 +#: js/blocks/EnsembleBlocks.js:899 +#: js/blocks/EnsembleBlocks.js:942 +#: js/blocks/EnsembleBlocks.js:1212 +#: js/blocks/EnsembleBlocks.js:1280 +#.TRANS: default project author when saving as Lilypond +msgid "Mr. Mouse" msgstr "" -#: js/turtles.js:940 -msgid "Expand" +#: js/SaveInterface.js:573 +msgid "The Lilypond code is copied to clipboard. You can paste it here: " msgstr "" #: js/languagebox.js:198 @@ -2409,6933 +2264,7487 @@ msgstr "" msgid "Music Blocks is already set to this language." msgstr "" -#: js/piemenus.js:200 -#: js/musicutils.js:808 -#: js/musicutils.js:824 -#: js/phrasemaker.js:1672 -#: js/musickeyboard.js:2041 -#: js/sampler.js:544 -#.TRANS: double sharp is a music term related to pitch -msgid "double sharp" +#: js/planetInterface.js:131 +msgid "project undefined" msgstr "" -#: js/piemenus.js:201 -#: js/PitchBlocks.js:1510 -#: js/PitchActions.js:580 -#: js/musicutils.js:806 -#: js/musicutils.js:825 -#: js/phrasemaker.js:1673 -#: js/musickeyboard.js:2042 -#: js/sampler.js:545 -#.TRANS: sharp is a half-step up in pitch -#.TRANS: sharp is a music term related to pitch -msgid "sharp" +#: js/rubrics.js:523 +#: js/turtledefs.js:119 +#: js/turtledefs.js:221 +#: js/blocks/RhythmBlockPaletteBlocks.js:52 +#: js/blocks/RhythmBlockPaletteBlocks.js:234 +#: js/blocks/ProgramBlocks.js:745 +#: js/widgets/rhythmruler.js:2057 +#: js/widgets/rhythmruler.js:2064 +#: js/widgets/rhythmruler.js:2133 +#: js/widgets/rhythmruler.js:2140 +#: js/widgets/rhythmruler.js:2219 +#.TRANS: an arrangement of notes based on duration +msgid "rhythm" msgstr "" -#: js/piemenus.js:202 -#: js/musicutils.js:804 -#: js/musicutils.js:826 -#: js/phrasemaker.js:1674 -#: js/musickeyboard.js:2043 -#: js/sampler.js:546 -#.TRANS: natural is a music term related to pitch -msgid "natural" +#: js/rubrics.js:524 +#: js/turtledefs.js:121 +#: js/turtledefs.js:223 +#: js/block-verbose.js:2622 +#: js/block.js:2550 +#: js/blocks/IntervalsBlocks.js:63 +#: js/blocks/SensorsBlocks.js:178 +#: js/blocks/PitchBlocks.js:1839 +#: js/blocks/PitchBlocks.js:1853 +#: js/widgets/musickeyboard.js:1935 +#: js/widgets/phrasemaker.js:1036 +#.TRANS: pitch number +#.TRANS: pitch number +#.TRANS: we specify pitch in terms of a name and an octave. The name can be CDEFGAB or Do Re Mi Fa Sol La Ti. Octave is a number between 1 and 8. +msgid "pitch" msgstr "" -#: js/piemenus.js:203 -#: js/PitchBlocks.js:1469 -#: js/PitchActions.js:583 -#: js/musicutils.js:802 -#: js/musicutils.js:827 -#: js/phrasemaker.js:1675 -#: js/musickeyboard.js:2044 -#: js/sampler.js:547 -#.TRANS: flat is a half-step down in pitch -#.TRANS: flat is a music term related to pitch -msgid "flat" +#: js/rubrics.js:525 +#: js/turtledefs.js:123 +#: js/turtledefs.js:225 +msgid "tone" msgstr "" -#: js/piemenus.js:204 -#: js/musicutils.js:800 -#: js/musicutils.js:828 -#: js/phrasemaker.js:1676 -#: js/musickeyboard.js:2045 -#: js/sampler.js:548 -#.TRANS: double flat is a music term related to pitch -msgid "double flat" +#: js/rubrics.js:526 +#: js/lilypond.js:605 +#: js/lilypond.js:904 +#: js/lilypond.js:910 +#: js/lilypond.js:948 +msgid "mouse" msgstr "" -#: js/piemenus.js:2861 -#: js/PitchBlocks.js:1357 -#: js/musicutils.js:627 -#.TRANS: unison means the note is the same as the current note -#.TRANS: unison is a music term related to intervals -msgid "unison" +#: js/rubrics.js:527 +#: js/turtledefs.js:132 +#: js/turtledefs.js:234 +#: js/widgets/phrasemaker.js:1040 +msgid "pen" msgstr "" -#: js/piemenus.js:3015 -#: js/piemenus.js:3088 -#: js/musicutils.js:635 -#: js/musicutils.js:810 -#: js/musicutils.js:912 -#.TRANS: major is a music term related to intervals and mode -msgid "major" -msgstr "" +#: js/rubrics.js:528 +#: js/turtledefs.js:133 +#: js/turtledefs.js:235 +#: js/blocks/NumberBlocks.js:981 +#: js/blocks/PitchBlocks.js:1717 +#: js/blocks/PitchBlocks.js:1758 +msgid "number" +msgstr "isa" -#: js/piemenus.js:3015 -#: js/piemenus.js:3088 -#: js/musicutils.js:653 -#.TRANS: modal scale for music -msgid "ionian" +#: js/rubrics.js:529 +#: js/turtledefs.js:127 +#: js/turtledefs.js:229 +msgid "flow" msgstr "" -#: js/piemenus.js:3017 -#: js/piemenus.js:3092 -#: js/musicutils.js:633 -#: js/musicutils.js:811 -#: js/musicutils.js:909 -#.TRANS: minor is a music term related to intervals and mode -msgid "minor" +#: js/rubrics.js:530 +#: js/turtledefs.js:128 +#: js/turtledefs.js:230 +#: js/block-verbose.js:1609 +#: js/block-verbose.js:4559 +#: js/block-verbose.js:4577 +#: js/block-verbose.js:4588 +#: js/block.js:1573 +#: js/block.js:4483 +#: js/block.js:4501 +#: js/block.js:4512 +#: js/blocks.js:1018 +#: js/blocks.js:3491 +#: js/blocks.js:3492 +#: js/blocks.js:3717 +#: js/blocks.js:4076 +#: js/blocks.js:4269 +#: js/blocks.js:5432 +#: js/blocks.js:6563 +#: js/macros.js:170 +#: js/macros.js:266 +#: js/macros.js:267 +#: js/macros.js:276 +#: js/macros.js:828 +#: js/palette.js:527 +#: js/palette.js:536 +#: js/palette.js:545 +#: js/palette.js:554 +#: js/palette.js:1129 +#: js/palette.js:1140 +#: js/palette.js:1151 +#: js/palette.js:1162 +#: js/palette.js:1181 +#: js/blocks/ActionBlocks.js:254 +#: js/blocks/ActionBlocks.js:307 +#: js/blocks/ActionBlocks.js:617 +#: js/blocks/ActionBlocks.js:716 +#: js/blocks/ActionBlocks.js:961 +#: js/blocks/ActionBlocks.js:1049 +#: js/blocks/ActionBlocks.js:1322 +#: js/blocks/ActionBlocks.js:1325 +#: js/blocks/ActionBlocks.js:1337 +#: js/blocks/ActionBlocks.js:1404 +#: js/blocks/MeterBlocks.js:715 +#: js/blocks/MeterBlocks.js:768 +#: js/blocks/MeterBlocks.js:831 +#: js/blocks/MeterBlocks.js:892 +#: js/widgets/musickeyboard.js:2986 +#: js/widgets/phrasemaker.js:4913 +#: js/widgets/rhythmruler.js:2319 +#: js/widgets/rhythmruler.js:2326 +#: js/widgets/rhythmruler.js:2511 +#: js/widgets/rhythmruler.js:2518 +msgid "action" +msgstr "hetsika" + +#: js/rubrics.js:531 +#: js/turtledefs.js:136 +#: js/turtledefs.js:238 +msgid "sensors" msgstr "" -#: js/piemenus.js:3017 -#: js/piemenus.js:3092 -#: js/musicutils.js:663 -#.TRANS: modal scale for music -msgid "aeolian" +#: js/rubrics.js:532 +#: js/turtledefs.js:135 +#: js/turtledefs.js:237 +#: js/blocks/MediaBlocks.js:930 +msgid "media" msgstr "" -#: js/piemenus.js:3407 -msgid "Duplicate" +#: js/rubrics.js:533 +msgid "mice" msgstr "" -#: js/piemenus.js:3408 -#: js/turtledefs.js:534 -msgid "Extract" +#: js/toolbar.js:48 +#: js/toolbar.js:109 +msgid "About Music Blocks" msgstr "" -#: js/piemenus.js:3409 -msgid "Move to trash" +#: js/toolbar.js:49 +#: js/toolbar.js:110 +#: js/toolbar.js:175 +#: js/toolbar.js:231 +#: js/turtledefs.js:445 +#: js/turtledefs.js:482 +#: js/activity.js:2660 +#: js/activity.js:2671 +#: js/activity.js:2902 +#: js/widgets/modewidget.js:77 +#: js/widgets/meterwidget.js:185 +#: js/widgets/pitchdrummatrix.js:147 +#: js/widgets/pitchdrummatrix.js:687 +#: js/widgets/pitchdrummatrix.js:689 +#: js/widgets/pitchdrummatrix.js:741 +#: js/widgets/pitchdrummatrix.js:743 +#: js/widgets/pitchdrummatrix.js:758 +#: js/widgets/pitchdrummatrix.js:760 +#: js/widgets/pitchdrummatrix.js:789 +#: js/widgets/pitchdrummatrix.js:791 +#: js/widgets/pitchstaircase.js:121 +#: js/widgets/temperament.js:610 +#: js/widgets/temperament.js:613 +#: js/widgets/temperament.js:673 +#: js/widgets/temperament.js:675 +#: js/widgets/temperament.js:2017 +#: js/widgets/temperament.js:2019 +#: js/widgets/tempo.js:84 +#: js/widgets/tempo.js:86 +#: js/widgets/timbre.js:432 +#: js/widgets/timbre.js:434 +#: js/widgets/timbre.js:465 +#: js/widgets/timbre.js:467 +#: js/widgets/timbre.js:746 +#: js/widgets/aiwidget.js:647 +#: js/widgets/aiwidget.js:654 +#: js/widgets/aiwidget.js:656 +#: js/widgets/arpeggio.js:90 +#: js/widgets/arpeggio.js:547 +#: js/widgets/arpeggio.js:549 +#: js/widgets/arpeggio.js:644 +#: js/widgets/arpeggio.js:646 +#: js/widgets/musickeyboard.js:676 +#: js/widgets/musickeyboard.js:872 +#: js/widgets/musickeyboard.js:874 +#: js/widgets/musickeyboard.js:953 +#: js/widgets/musickeyboard.js:955 +#: js/widgets/phrasemaker.js:513 +#: js/widgets/phrasemaker.js:523 +#: js/widgets/phrasemaker.js:525 +#: js/widgets/phrasemaker.js:4304 +#: js/widgets/phrasemaker.js:4528 +#: js/widgets/phrasemaker.js:4533 +#: js/widgets/phrasemaker.js:4535 +#: js/widgets/phrasemaker.js:4650 +#: js/widgets/rhythmruler.js:637 +#: js/widgets/rhythmruler.js:639 +#: js/widgets/rhythmruler.js:653 +#: js/widgets/rhythmruler.js:655 +#: js/widgets/sampler.js:162 +#: js/widgets/sampler.js:164 +#: js/widgets/sampler.js:363 +msgid "Play" msgstr "" -#: js/piemenus.js:3410 -#: js/timbre.js:968 -#: js/StringHelper.js:69 -msgid "Close" +#: js/toolbar.js:50 +#: js/toolbar.js:111 +#: js/toolbar.js:176 +#: js/toolbar.js:232 +#: js/turtledefs.js:451 +#: js/turtledefs.js:488 +#: js/activity.js:2679 +#: js/widgets/modewidget.js:99 +#: js/widgets/modewidget.js:101 +#: js/widgets/meterwidget.js:206 +#: js/widgets/meterwidget.js:208 +#: js/widgets/pitchdrummatrix.js:674 +#: js/widgets/pitchdrummatrix.js:676 +#: js/widgets/temperament.js:2002 +#: js/widgets/temperament.js:2004 +#: js/widgets/arpeggio.js:534 +#: js/widgets/arpeggio.js:536 +#: js/widgets/phrasemaker.js:534 +#: js/widgets/phrasemaker.js:536 +msgid "Stop" +msgstr "Ajanony" + +#: js/toolbar.js:51 +#: js/toolbar.js:112 +#: js/toolbar.js:177 +#: js/toolbar.js:233 +#: js/turtledefs.js:498 +msgid "Record" msgstr "" -#: js/piemenus.js:3416 -msgid "Save stack" +#: js/toolbar.js:52 +#: js/toolbar.js:53 +msgid "Full screen" msgstr "" -#: js/piemenus.js:3420 -#: js/toolbar.js:60 +#: js/toolbar.js:54 +#: js/toolbar.js:115 +#: js/toolbar.js:180 +#: js/toolbar.js:236 +#: js/turtledefs.js:504 +msgid "Toggle Fullscreen" +msgstr "" + +#: js/toolbar.js:55 +#: js/toolbar.js:116 +#: js/toolbar.js:181 +#: js/toolbar.js:237 +#: js/turtledefs.js:510 +#: planet/js/StringHelper.js:33 +msgid "New project" +msgstr "" + +#: js/toolbar.js:56 +#: js/toolbar.js:117 +#: js/toolbar.js:182 +#: js/toolbar.js:238 +#: js/turtledefs.js:516 +msgid "Load project from file" +msgstr "" + +#: js/toolbar.js:57 +#: js/toolbar.js:118 +#: js/toolbar.js:119 +#: js/toolbar.js:183 +#: js/toolbar.js:239 +#: js/turtledefs.js:541 +#: js/turtledefs.js:550 +#: js/turtledefs.js:571 +msgid "Save project" +msgstr "" + +#: js/toolbar.js:58 +#: js/toolbar.js:77 +#: js/toolbar.js:79 +#: js/toolbar.js:138 +#: js/toolbar.js:147 +#: js/toolbar.js:149 +#: js/toolbar.js:184 +#: js/toolbar.js:202 +#: js/toolbar.js:204 +#: js/toolbar.js:240 +#: js/toolbar.js:258 +#: js/toolbar.js:260 +msgid "Save project as HTML" +msgstr "" + +#: js/toolbar.js:59 #: js/toolbar.js:120 #: js/toolbar.js:185 -#: js/toolbar.js:240 +#: js/toolbar.js:241 +msgid "Find and share projects" +msgstr "" + +#: js/toolbar.js:60 +#: js/toolbar.js:121 +#: js/toolbar.js:186 +#: js/toolbar.js:242 +msgid "Offline. Sharing is unavailable" +msgstr "" + +#: js/toolbar.js:61 +#: js/toolbar.js:122 +#: js/toolbar.js:187 +#: js/toolbar.js:243 +msgid "Auxiliary menu" +msgstr "" + +#: js/toolbar.js:62 +#: js/toolbar.js:123 +#: js/toolbar.js:188 +#: js/toolbar.js:244 #: js/turtledefs.js:752 +#: js/piemenus.js:3423 msgid "Help" msgstr "Fanampiana" -#: js/piemenus.js:3762 -msgid "You have chosen key " +#: js/toolbar.js:63 +#: js/toolbar.js:124 +#: js/toolbar.js:189 +#: js/toolbar.js:245 +msgid "Run slowly" +msgstr "" + +#: js/toolbar.js:64 +#: js/toolbar.js:125 +#: js/toolbar.js:190 +#: js/toolbar.js:246 +#: js/turtledefs.js:682 +msgid "Run step by step" +msgstr "" + +#: js/toolbar.js:65 +#: js/toolbar.js:126 +#: js/toolbar.js:191 +#: js/toolbar.js:247 +#: js/turtledefs.js:689 +msgid "Display statistics" +msgstr "" + +#: js/toolbar.js:66 +#: js/toolbar.js:127 +#: js/toolbar.js:192 +#: js/toolbar.js:248 +msgid "Load plugin" +msgstr "" + +#: js/toolbar.js:67 +#: js/toolbar.js:128 +#: js/toolbar.js:193 +#: js/toolbar.js:249 +#: js/turtledefs.js:696 +msgid "Delete plugin" +msgstr "" + +#: js/toolbar.js:68 +#: js/toolbar.js:129 +#: js/toolbar.js:194 +#: js/toolbar.js:250 +msgid "Enable horizontal scrolling" +msgstr "" + +#: js/toolbar.js:69 +#: js/toolbar.js:130 +#: js/toolbar.js:195 +#: js/toolbar.js:251 +msgid "Disable horizontal scrolling" +msgstr "" + +#: js/toolbar.js:70 +#: js/toolbar.js:131 +#: js/toolbar.js:196 +#: js/toolbar.js:252 +#: planet/js/LocalCard.js:54 +#: planet/js/StringHelper.js:71 +msgid "Merge with current project" +msgstr "" + +#: js/toolbar.js:71 +#: js/toolbar.js:132 +msgid "Set Pitch Preview" +msgstr "" + +#: js/toolbar.js:72 +#: js/toolbar.js:133 +#: js/toolbar.js:197 +#: js/toolbar.js:253 +msgid "JavaScript Editor" +msgstr "" + +#: js/toolbar.js:73 +#: js/toolbar.js:134 +#: js/toolbar.js:198 +#: js/toolbar.js:254 +#: js/turtledefs.js:724 +msgid "Restore" +msgstr "" + +#: js/toolbar.js:74 +#: js/toolbar.js:135 +#: js/toolbar.js:199 +#: js/toolbar.js:255 +msgid "Switch to beginner mode" +msgstr "" + +#: js/toolbar.js:75 +#: js/toolbar.js:136 +#: js/toolbar.js:200 +#: js/toolbar.js:256 +msgid "Switch to advanced mode" +msgstr "" + +#: js/toolbar.js:76 +#: js/toolbar.js:137 +#: js/toolbar.js:146 +#: js/toolbar.js:201 +#: js/toolbar.js:257 +#: js/turtledefs.js:738 +msgid "Select language" +msgstr "" + +#: js/toolbar.js:78 +#: js/toolbar.js:81 +#: js/toolbar.js:140 +#: js/turtledefs.js:579 +msgid "Save mouse artwork as PNG" +msgstr "" + +#: js/toolbar.js:80 +#: js/toolbar.js:139 +#: js/turtledefs.js:575 +msgid "Save mouse artwork as SVG" +msgstr "" + +#: js/toolbar.js:82 +#: js/toolbar.js:141 +#: js/turtledefs.js:583 +msgid "Save music as WAV" +msgstr "" + +#: js/toolbar.js:83 +#: js/toolbar.js:142 +#: js/turtledefs.js:587 +msgid "Save sheet music as ABC" +msgstr "" + +#: js/toolbar.js:84 +#: js/toolbar.js:143 +#: js/turtledefs.js:591 +msgid "Save sheet music as Lilypond" +msgstr "" + +#: js/toolbar.js:85 +msgid "Save sheet music as MusicXML" +msgstr "" + +#: js/toolbar.js:86 +#: js/toolbar.js:144 +#: js/toolbar.js:152 +#: js/toolbar.js:207 +#: js/toolbar.js:263 +#: js/turtledefs.js:562 +#: js/turtledefs.js:595 +msgid "Save block artwork as SVG" +msgstr "" + +#: js/toolbar.js:87 +#: js/toolbar.js:145 +#: js/toolbar.js:153 +#: js/toolbar.js:208 +#: js/toolbar.js:264 +#: js/turtles.js:911 +msgid "Confirm" +msgstr "" + +#: js/toolbar.js:88 +#: js/toolbar.js:154 +#: js/toolbar.js:209 +#: js/toolbar.js:265 +msgid "English (United States)" +msgstr "" + +#: js/toolbar.js:89 +#: js/toolbar.js:155 +#: js/toolbar.js:210 +#: js/toolbar.js:266 +msgid "English (United Kingdom)" +msgstr "" + +#: js/toolbar.js:90 +#: js/toolbar.js:156 +#: js/toolbar.js:211 +#: js/toolbar.js:267 +msgid "日本語" +msgstr "" + +#: js/toolbar.js:91 +msgid "한국어" +msgstr "" + +#: js/toolbar.js:92 +#: js/toolbar.js:158 +#: js/toolbar.js:213 +#: js/toolbar.js:269 +msgid "español" +msgstr "" + +#: js/toolbar.js:93 +#: js/toolbar.js:159 +#: js/toolbar.js:214 +#: js/toolbar.js:270 +msgid "português" +msgstr "" + +#: js/toolbar.js:94 +#: js/toolbar.js:160 +#: js/toolbar.js:215 +#: js/toolbar.js:271 +msgid "にほんご" +msgstr "" + +#: js/toolbar.js:95 +#: js/toolbar.js:161 +#: js/toolbar.js:216 +#: js/toolbar.js:272 +msgid "中文" +msgstr "" + +#: js/toolbar.js:96 +#: js/toolbar.js:162 +#: js/toolbar.js:217 +#: js/toolbar.js:273 +msgid "ภาษาไทย" +msgstr "" + +#: js/toolbar.js:97 +#: js/toolbar.js:163 +#: js/toolbar.js:218 +#: js/toolbar.js:274 +msgid "aymara" +msgstr "" + +#: js/toolbar.js:98 +#: js/toolbar.js:164 +#: js/toolbar.js:219 +#: js/toolbar.js:275 +msgid "quechua" +msgstr "" + +#: js/toolbar.js:99 +#: js/toolbar.js:165 +#: js/toolbar.js:220 +#: js/toolbar.js:276 +msgid "guarani" +msgstr "" + +#: js/toolbar.js:100 +#: js/toolbar.js:166 +#: js/toolbar.js:221 +#: js/toolbar.js:277 +msgid "हिंदी" +msgstr "" + +#: js/toolbar.js:101 +#: js/toolbar.js:168 +#: js/toolbar.js:222 +#: js/toolbar.js:279 +msgid "igbo" +msgstr "" + +#: js/toolbar.js:102 +#: js/toolbar.js:169 +#: js/toolbar.js:223 +#: js/toolbar.js:280 +msgid "عربى" +msgstr "" + +#: js/toolbar.js:103 +#: js/toolbar.js:167 +#: js/toolbar.js:224 +#: js/toolbar.js:278 +msgid "తెలుగు" +msgstr "" + +#: js/toolbar.js:104 +#: js/toolbar.js:170 +#: js/toolbar.js:225 +#: js/toolbar.js:281 +msgid "עִברִית" +msgstr "" + +#: js/toolbar.js:113 +#: js/toolbar.js:114 +#: js/toolbar.js:178 +#: js/toolbar.js:179 +#: js/toolbar.js:234 +#: js/toolbar.js:235 +msgid "Full Screen" +msgstr "" + +#: js/toolbar.js:148 +#: js/toolbar.js:151 +#: js/toolbar.js:203 +#: js/toolbar.js:206 +#: js/toolbar.js:259 +#: js/toolbar.js:262 +#: js/turtledefs.js:558 +msgid "Save turtle artwork as PNG" +msgstr "" + +#: js/toolbar.js:150 +#: js/toolbar.js:205 +#: js/toolbar.js:261 +#: js/turtledefs.js:554 +msgid "Save turtle artwork as SVG" +msgstr "" + +#: js/toolbar.js:157 +#: js/toolbar.js:212 +#: js/toolbar.js:268 +msgid "한국인" +msgstr "" + +#: js/toolbar.js:174 +#: js/toolbar.js:230 +msgid "About Turtle Blocks" +msgstr "" + +#: js/toolbar.js:446 +#: js/toolbar.js:457 +#: js/toolbar.js:497 +msgid "Turtle Wrap Off" +msgstr "" + +#: js/toolbar.js:466 +#: js/toolbar.js:506 +msgid "Turtle Wrap On" +msgstr "" + +#: js/turtle-painter.js:1192 +#: js/turtle-painter.js:1193 +#: js/turtles.js:118 +#: js/block-verbose.js:1623 +#: js/block.js:1587 +#: js/lilypond.js:749 +#: js/lilypond.js:913 +#: js/lilypond.js:951 +#: js/logo.js:1184 +#: js/blocks/ActionBlocks.js:1223 +#: js/blocks/ProgramBlocks.js:1267 +msgid "start" +msgstr "atomboy" + +#: js/turtledefs.js:40 +#.TRANS: put the URL to the guide here, e.g., https://github.com/sugarlabs/turtleblocksjs/tree/master/guide/README.md +msgid "guide url" +msgstr "" + +#: js/turtledefs.js:85 +#: js/turtledefs.js:437 +msgid "Turtle Blocks is a Logo-inspired turtle that draws colorful pictures with snap-together visual-programming blocks." +msgstr "" + +#: js/turtledefs.js:118 +#: js/turtledefs.js:220 +msgid "search" +msgstr "" + +#: js/turtledefs.js:120 +#: js/turtledefs.js:222 +#: js/blocks/MeterBlocks.js:1343 +#: js/blocks/WidgetBlocks.js:522 +#.TRANS: musical meter (time signature), e.g., 4:4 +msgid "meter" +msgstr "" + +#: js/turtledefs.js:122 +#: js/turtledefs.js:224 +msgid "intervals" +msgstr "" + +#: js/turtledefs.js:124 +#: js/turtledefs.js:226 +msgid "ornament" +msgstr "" + +#: js/turtledefs.js:125 +#: js/turtledefs.js:227 +#: js/blocks/VolumeBlocks.js:362 +#: js/blocks/VolumeBlocks.js:502 +#: js/blocks/VolumeBlocks.js:545 +msgid "volume" +msgstr "" + +#: js/turtledefs.js:126 +#: js/turtledefs.js:228 +#: js/block-verbose.js:1700 +#: js/block-verbose.js:2626 +#: js/block.js:1664 +#: js/block.js:2554 +#: js/lilypond.js:732 +#: js/lilypond.js:897 +#: js/lilypond.js:941 +#: js/palette.js:577 +#: js/blocks/RhythmBlocks.js:766 +#: js/blocks/DrumBlocks.js:477 +#: js/blocks/VolumeBlocks.js:502 +#: js/widgets/phrasemaker.js:1038 +msgid "drum" +msgstr "" + +#: js/turtledefs.js:129 +#: js/turtledefs.js:231 +msgid "boxes" +msgstr "" + +#: js/turtledefs.js:130 +#: js/turtledefs.js:232 +msgid "widgets" +msgstr "" + +#: js/turtledefs.js:131 +#: js/turtledefs.js:233 +#: js/widgets/phrasemaker.js:1039 +msgid "graphics" +msgstr "" + +#: js/turtledefs.js:134 +#: js/turtledefs.js:236 +msgid "boolean" +msgstr "" + +#: js/turtledefs.js:137 +#: js/turtledefs.js:239 +#: js/blocks/HeapBlocks.js:59 +#: js/widgets/status.js:147 +msgid "heap" +msgstr "" + +#: js/turtledefs.js:138 +#: js/turtledefs.js:240 +#: js/blocks/DictBlocks.js:142 +#: js/blocks/ProgramBlocks.js:495 +msgid "dictionary" +msgstr "" + +#: js/turtledefs.js:139 +#: js/turtledefs.js:241 +msgid "ensemble" +msgstr "" + +#: js/turtledefs.js:140 +#: js/turtledefs.js:242 +msgid "extras" +msgstr "" + +#: js/turtledefs.js:142 +#: js/turtledefs.js:244 +#.TRANS: program as in computer program +#.TRANS: program as in computer program +msgid "program" +msgstr "" + +#: js/turtledefs.js:143 +#: js/turtledefs.js:245 +msgid "my blocks" +msgstr "" + +#: js/turtledefs.js:185 +#: js/turtledefs.js:281 +msgid "artwork" msgstr "" -#: js/piemenus.js:3766 -msgid " for your pitch preview." +#: js/turtledefs.js:185 +#: js/turtledefs.js:281 +msgid "logic" msgstr "" -#: js/palette.js:571 -msgid "grid" +#: js/turtledefs.js:185 +#: js/turtledefs.js:281 +msgid "music" msgstr "" -#: js/palette.js:577 -#: js/block.js:1540 -#: js/block.js:2343 -#: js/turtledefs.js:126 -#: js/turtledefs.js:228 -#: js/lilypond.js:740 -#: js/lilypond.js:905 -#: js/lilypond.js:949 -#: js/DrumBlocks.js:486 -#: js/RhythmBlocks.js:766 -#: js/VolumeBlocks.js:502 -#: js/phrasemaker.js:823 -msgid "drum" +#: js/turtledefs.js:187 +#: js/turtledefs.js:463 +msgid "Music Blocks is a collection of tools for exploring fundamental musical concepts in a fun way." msgstr "" -#: js/palette.js:580 -msgid "effect" +#: js/turtledefs.js:436 +msgid "Welcome to Turtle Blocks" msgstr "" -#: js/palette.js:586 -msgid "sargam" +#: js/turtledefs.js:438 +#: js/turtledefs.js:465 +#: js/turtledefs.js:774 +#: js/turtledefs.js:805 +msgid "The current version is" msgstr "" -#: js/palette.js:589 -#: js/activity.js:1833 -#: js/RhythmBlocks.js:923 -#: js/PitchBlocks.js:442 -#: js/PitchBlocks.js:1748 -#.TRANS: a numeric mapping of the notes in an octave based on the musical mode -msgid "scale degree" +#: js/turtledefs.js:446 +#: js/turtledefs.js:483 +msgid "Click the run button to run the project in fast mode." msgstr "" -#: js/palette.js:592 -#: js/activity.js:1860 -msgid "mode name" +#: js/turtledefs.js:452 +msgid "Stop the turtle." msgstr "" -#: js/palette.js:595 -#: js/activity.js:1839 -msgid "invert mode" +#: js/turtledefs.js:454 +#: js/turtledefs.js:491 +msgid "You can also type Alt-S to stop." msgstr "" -#: js/palette.js:598 -#: js/activity.js:1836 -msgid "voice name" +#: js/turtledefs.js:462 +#: js/widgets/help.js:333 +msgid "Welcome to Music Blocks" msgstr "" -#: js/palette.js:601 -#: js/PitchBlocks.js:1181 -msgid "custom pitch" +#: js/turtledefs.js:472 +#: js/widgets/help.js:334 +msgid "Meet Mr. Mouse!" msgstr "" -#: js/palette.js:605 -#: js/block.js:1456 -#: js/block.js:1575 -#: js/WidgetBlocks.js:218 -#: js/IntervalsBlocks.js:63 -msgid "temperament" +#: js/turtledefs.js:473 +msgid "Mr Mouse is our Music Blocks conductor." msgstr "" -#: js/palette.js:609 -msgid "accidental" +#: js/turtledefs.js:475 +msgid "Mr Mouse encourages you to explore Music Blocks." msgstr "" -#: js/palette.js:615 -#: js/activity.js:1866 -msgid "interval name" +#: js/turtledefs.js:477 +msgid "Let us start our tour!" msgstr "" -#: js/palette.js:633 -#: js/PitchBlocks.js:405 -msgid "pitch converter" +#: js/turtledefs.js:489 +msgid "Stop the music (and the mice)." msgstr "" -#: js/rubrics.js:522 -#: js/turtledefs.js:119 -#: js/turtledefs.js:221 -#: js/RhythmBlockPaletteBlocks.js:52 -#: js/RhythmBlockPaletteBlocks.js:233 -#: js/ProgramBlocks.js:745 -#: js/rhythmruler.js:1670 -#: js/rhythmruler.js:1677 -#: js/rhythmruler.js:1745 -#: js/rhythmruler.js:1752 -#: js/rhythmruler.js:1830 -#.TRANS: an arrangement of notes based on duration -msgid "rhythm" +#: js/turtledefs.js:499 +msgid "Record your project as video." msgstr "" -#: js/rubrics.js:523 -#: js/block.js:2339 -#: js/turtledefs.js:121 -#: js/turtledefs.js:223 -#: js/IntervalsBlocks.js:63 -#: js/PitchBlocks.js:1801 -#: js/PitchBlocks.js:1814 -#: js/SensorsBlocks.js:178 -#: js/phrasemaker.js:821 -#: js/musickeyboard.js:1653 -#.TRANS: pitch number -#.TRANS: we specify pitch in terms of a name and an octave. The name can be CDEFGAB or Do Re Mi Fa Sol La Ti. Octave is a number between 1 and 8. -msgid "pitch" +#: js/turtledefs.js:505 +msgid "Toggle Fullscreen mode." msgstr "" -#: js/rubrics.js:524 -#: js/turtledefs.js:123 -#: js/turtledefs.js:225 -msgid "tone" +#: js/turtledefs.js:511 +msgid "Initialize a new project." msgstr "" -#: js/rubrics.js:525 -#: js/lilypond.js:613 -#: js/lilypond.js:912 -#: js/lilypond.js:918 -#: js/lilypond.js:956 -msgid "mouse" +#: js/turtledefs.js:517 +msgid "You can also load projects from the file system." msgstr "" -#: js/rubrics.js:526 -#: js/turtledefs.js:132 -#: js/turtledefs.js:234 -#: js/phrasemaker.js:825 -msgid "pen" +#: js/turtledefs.js:522 +#: planet/js/StringHelper.js:46 +msgid "Delete" msgstr "" -#: js/rubrics.js:527 -#: js/turtledefs.js:133 -#: js/turtledefs.js:235 -#: js/NumberBlocks.js:905 -#: js/PitchBlocks.js:1679 -#: js/PitchBlocks.js:1720 -msgid "number" -msgstr "isa" +#: js/turtledefs.js:523 +msgid "To delete a block, just right-click on it, then you will be able to see the delete option" +msgstr "" -#: js/rubrics.js:528 -#: js/turtledefs.js:127 -#: js/turtledefs.js:229 -msgid "flow" +#: js/turtledefs.js:528 +#: js/activity.js:2649 +#: planet/js/LocalCard.js:31 +msgid "Copy" +msgstr "Adikao" + +#: js/turtledefs.js:529 +msgid "To copy a block, just right-click on it, then you will be able to see the copy option" msgstr "" -#: js/rubrics.js:530 -#: js/turtledefs.js:136 -#: js/turtledefs.js:238 -msgid "sensors" +#: js/turtledefs.js:534 +#: js/piemenus.js:3411 +msgid "Extract" msgstr "" -#: js/rubrics.js:531 -#: js/turtledefs.js:135 -#: js/turtledefs.js:237 -#: js/MediaBlocks.js:930 -msgid "media" +#: js/turtledefs.js:535 +msgid "To extract a block, just right-click on it, then you will be able to see the extract option" msgstr "" -#: js/rubrics.js:532 -msgid "mice" +#: js/turtledefs.js:542 +#: js/turtledefs.js:552 +#: js/turtledefs.js:573 +msgid "Save your project to a file." msgstr "" -#: js/macros.js:711 -#: js/musicutils.js:783 -#: js/synthutils.js:181 -#.TRANS: animal sound effect -msgid "duck" +#: js/turtledefs.js:549 +#: js/turtledefs.js:570 +msgid "save" msgstr "" -#: js/toolbar.js:46 -#: js/toolbar.js:107 -msgid "About Music Blocks" +#: js/turtledefs.js:556 +#: js/turtledefs.js:577 +msgid "Save graphics from your project to as SVG." msgstr "" -#: js/toolbar.js:47 -#: js/toolbar.js:108 -#: js/toolbar.js:172 -#: js/toolbar.js:228 -#: js/turtledefs.js:445 -#: js/turtledefs.js:482 -#: js/activity.js:2281 -#: js/activity.js:2289 -#: js/activity.js:2520 -#: js/modewidget.js:77 -#: js/pitchstaircase.js:121 -#: js/phrasemaker.js:302 -#: js/phrasemaker.js:312 -#: js/phrasemaker.js:314 -#: js/phrasemaker.js:3901 -#: js/phrasemaker.js:4061 -#: js/phrasemaker.js:4066 -#: js/phrasemaker.js:4068 -#: js/phrasemaker.js:4183 -#: js/pitchdrummatrix.js:81 -#: js/pitchdrummatrix.js:574 -#: js/pitchdrummatrix.js:576 -#: js/pitchdrummatrix.js:628 -#: js/pitchdrummatrix.js:630 -#: js/pitchdrummatrix.js:645 -#: js/pitchdrummatrix.js:647 -#: js/pitchdrummatrix.js:674 -#: js/pitchdrummatrix.js:676 -#: js/temperament.js:477 -#: js/temperament.js:480 -#: js/temperament.js:540 -#: js/temperament.js:542 -#: js/temperament.js:1835 -#: js/temperament.js:1837 -#: js/temperament.js:1986 -#: js/temperament.js:1988 -#: js/musickeyboard.js:522 -#: js/musickeyboard.js:682 -#: js/musickeyboard.js:684 -#: js/musickeyboard.js:756 -#: js/musickeyboard.js:758 -#: js/rhythmruler.js:298 -#: js/rhythmruler.js:300 -#: js/rhythmruler.js:314 -#: js/rhythmruler.js:316 -#: js/sampler.js:96 -#: js/sampler.js:98 -#: js/sampler.js:229 -#: js/sampler.js:235 -#: js/sampler.js:237 -#: js/tempo.js:84 -#: js/tempo.js:86 -#: js/timbre.js:432 -#: js/timbre.js:434 -#: js/timbre.js:465 -#: js/timbre.js:467 -#: js/timbre.js:746 -#: js/meterwidget.js:80 -#: js/arpeggio.js:90 -#: js/arpeggio.js:547 -#: js/arpeggio.js:549 -#: js/arpeggio.js:644 -#: js/arpeggio.js:646 -msgid "Play" +#: js/turtledefs.js:560 +#: js/turtledefs.js:581 +msgid "Save graphics from your project as PNG." msgstr "" -#: js/toolbar.js:48 -#: js/toolbar.js:109 -#: js/toolbar.js:173 -#: js/toolbar.js:229 -#: js/turtledefs.js:451 -#: js/turtledefs.js:488 -#: js/activity.js:2297 -#: js/modewidget.js:99 -#: js/modewidget.js:101 -#: js/phrasemaker.js:323 -#: js/phrasemaker.js:325 -#: js/pitchdrummatrix.js:561 -#: js/pitchdrummatrix.js:563 -#: js/temperament.js:1820 -#: js/temperament.js:1822 -#: js/meterwidget.js:101 -#: js/meterwidget.js:103 -#: js/arpeggio.js:534 -#: js/arpeggio.js:536 -msgid "Stop" -msgstr "Ajanony" +#: js/turtledefs.js:564 +#: js/turtledefs.js:597 +msgid "Save block artwork as an SVG file." +msgstr "" -#: js/toolbar.js:49 -#: js/toolbar.js:110 -#: js/toolbar.js:174 -#: js/toolbar.js:230 -#: js/turtledefs.js:498 -msgid "Record" +#: js/turtledefs.js:585 +msgid "Save audio from your project as WAV." msgstr "" -#: js/toolbar.js:50 -#: js/toolbar.js:51 -msgid "Full screen" +#: js/turtledefs.js:589 +msgid "Save your project to as an ABC file." msgstr "" -#: js/toolbar.js:52 -#: js/toolbar.js:112 -#: js/toolbar.js:177 -#: js/toolbar.js:232 -#: js/turtledefs.js:504 -msgid "Toggle Fullscreen" +#: js/turtledefs.js:593 +msgid "Save your project to as a Lilypond file." msgstr "" -#: js/toolbar.js:53 -#: js/toolbar.js:113 -#: js/toolbar.js:178 -#: js/toolbar.js:233 -#: js/turtledefs.js:510 -#: js/StringHelper.js:33 -msgid "New project" +#: js/turtledefs.js:604 +msgid "Load samples from server" msgstr "" -#: js/toolbar.js:54 -#: js/toolbar.js:114 -#: js/toolbar.js:179 -#: js/toolbar.js:234 -#: js/turtledefs.js:516 -msgid "Load project from file" +#: js/turtledefs.js:605 +msgid "This button opens a viewer for loading example projects." msgstr "" -#: js/toolbar.js:55 -#: js/toolbar.js:115 -#: js/toolbar.js:116 -#: js/toolbar.js:180 -#: js/toolbar.js:235 -#: js/turtledefs.js:541 -#: js/turtledefs.js:550 -#: js/turtledefs.js:571 -msgid "Save project" +#: js/turtledefs.js:611 +msgid "Palette buttons" msgstr "" -#: js/toolbar.js:56 -#: js/toolbar.js:75 -#: js/toolbar.js:77 -#: js/toolbar.js:135 -#: js/toolbar.js:144 -#: js/toolbar.js:146 -#: js/toolbar.js:181 -#: js/toolbar.js:199 -#: js/toolbar.js:201 -#: js/toolbar.js:236 -#: js/toolbar.js:254 -#: js/toolbar.js:256 -msgid "Save project as HTML" +#: js/turtledefs.js:612 +msgid "This toolbar contains the palette buttons including Rhythm Pitch Tone Action and more." msgstr "" -#: js/toolbar.js:57 -#: js/toolbar.js:117 -#: js/toolbar.js:182 -#: js/toolbar.js:237 -msgid "Find and share projects" +#: js/turtledefs.js:614 +msgid "Click to show the palettes of blocks and drag blocks from the palettes onto the canvas to use them." msgstr "" -#: js/toolbar.js:58 -#: js/toolbar.js:118 -#: js/toolbar.js:183 -#: js/toolbar.js:238 -msgid "Offline. Sharing is unavailable" +#: js/turtledefs.js:620 +msgid "Cartesian/Polar" +msgstr "" + +#: js/turtledefs.js:621 +msgid "Show or hide a coordinate grid." +msgstr "" + +#: js/turtledefs.js:626 +#: js/turtles.js:902 +msgid "Clean" +msgstr "Diovy" + +#: js/turtledefs.js:627 +msgid "Clear the screen and return the mice to their initial positions." msgstr "" -#: js/toolbar.js:59 -#: js/toolbar.js:119 -#: js/toolbar.js:184 -#: js/toolbar.js:239 -msgid "Auxiliary menu" +#: js/turtledefs.js:632 +#: js/turtles.js:955 +msgid "Collapse" msgstr "" -#: js/toolbar.js:61 -#: js/toolbar.js:121 -#: js/toolbar.js:186 -#: js/toolbar.js:241 -msgid "Run slowly" +#: js/turtledefs.js:633 +msgid "Collapse the graphics window." msgstr "" -#: js/toolbar.js:62 -#: js/toolbar.js:122 -#: js/toolbar.js:187 -#: js/toolbar.js:242 -#: js/turtledefs.js:682 -msgid "Run step by step" +#: js/turtledefs.js:638 +#: js/activity.js:5684 +msgid "Home" msgstr "" -#: js/toolbar.js:63 -#: js/toolbar.js:123 -#: js/toolbar.js:188 -#: js/toolbar.js:243 -#: js/turtledefs.js:689 -msgid "Display statistics" +#: js/turtledefs.js:639 +msgid "Return all blocks to the center of the screen." msgstr "" -#: js/toolbar.js:64 -#: js/toolbar.js:124 -#: js/toolbar.js:189 -#: js/toolbar.js:244 -msgid "Load plugin" +#: js/turtledefs.js:644 +msgid "Show/hide blocks" +msgstr "Asehoy/Afeno ireo bolongana" + +#: js/turtledefs.js:645 +msgid "Hide or show the blocks and the palettes." msgstr "" -#: js/toolbar.js:65 -#: js/toolbar.js:125 -#: js/toolbar.js:190 -#: js/toolbar.js:245 -#: js/turtledefs.js:696 -msgid "Delete plugin" +#: js/turtledefs.js:650 +msgid "Expand/collapse collapsable blocks" msgstr "" -#: js/toolbar.js:66 -#: js/toolbar.js:126 -#: js/toolbar.js:191 -#: js/toolbar.js:246 -msgid "Enable horizontal scrolling" +#: js/turtledefs.js:651 +msgid "Expand or collapse start and action stacks." msgstr "" -#: js/toolbar.js:67 -#: js/toolbar.js:127 -#: js/toolbar.js:192 -#: js/toolbar.js:247 -msgid "Disable horizontal scrolling" +#: js/turtledefs.js:658 +#: js/activity.js:5704 +msgid "Decrease block size" msgstr "" -#: js/toolbar.js:68 -#: js/toolbar.js:128 -#: js/toolbar.js:193 -#: js/toolbar.js:248 -#: js/LocalCard.js:54 -#: js/StringHelper.js:71 -msgid "Merge with current project" +#: js/turtledefs.js:659 +msgid "Decrease the size of the blocks." msgstr "" -#: js/toolbar.js:69 -#: js/toolbar.js:129 -msgid "Set Pitch Preview" +#: js/turtledefs.js:664 +#: js/activity.js:5710 +msgid "Increase block size" msgstr "" -#: js/toolbar.js:70 -#: js/toolbar.js:130 -#: js/toolbar.js:194 -#: js/toolbar.js:249 -msgid "Toggle JavaScript Editor" +#: js/turtledefs.js:665 +msgid "Increase the size of the blocks." msgstr "" -#: js/toolbar.js:71 -#: js/toolbar.js:131 -#: js/toolbar.js:195 -#: js/toolbar.js:250 -#: js/turtledefs.js:724 -msgid "Restore" +#: js/turtledefs.js:670 +msgid "Expand/collapse option toolbar" msgstr "" -#: js/toolbar.js:72 -#: js/toolbar.js:132 -#: js/toolbar.js:196 -#: js/toolbar.js:251 -msgid "Switch to beginner mode" +#: js/turtledefs.js:671 +msgid "Click this button to expand or collapse the auxillary toolbar." msgstr "" -#: js/toolbar.js:73 -#: js/toolbar.js:133 -#: js/toolbar.js:197 -#: js/toolbar.js:252 -msgid "Switch to advanced mode" +#: js/turtledefs.js:676 +msgid "Run slow" msgstr "" -#: js/toolbar.js:74 -#: js/toolbar.js:134 -#: js/toolbar.js:143 -#: js/toolbar.js:198 -#: js/toolbar.js:253 -#: js/turtledefs.js:738 -msgid "Select language" +#: js/turtledefs.js:677 +msgid "Click to run the project in slow mode." msgstr "" -#: js/toolbar.js:76 -#: js/toolbar.js:79 -#: js/toolbar.js:137 -#: js/turtledefs.js:579 -msgid "Save mouse artwork as PNG" +#: js/turtledefs.js:683 +msgid "Click to run the project step by step." msgstr "" -#: js/toolbar.js:78 -#: js/toolbar.js:136 -#: js/turtledefs.js:575 -msgid "Save mouse artwork as SVG" +#: js/turtledefs.js:690 +msgid "Display statistics about your Music project." msgstr "" -#: js/toolbar.js:80 -#: js/toolbar.js:138 -#: js/turtledefs.js:583 -msgid "Save music as WAV" +#: js/turtledefs.js:697 +msgid "Delete a selected plugin." msgstr "" -#: js/toolbar.js:81 -#: js/toolbar.js:139 -#: js/turtledefs.js:587 -msgid "Save sheet music as ABC" +#: js/turtledefs.js:704 +msgid "Enable scrolling" msgstr "" -#: js/toolbar.js:82 -#: js/toolbar.js:140 -#: js/turtledefs.js:591 -msgid "Save sheet music as Lilypond" +#: js/turtledefs.js:705 +msgid "You can scroll the blocks on the canvas." msgstr "" -#: js/toolbar.js:83 -msgid "Save sheet music as MusicXML" +#: js/turtledefs.js:714 +msgid "Wrap Turtle" msgstr "" -#: js/toolbar.js:84 -#: js/toolbar.js:141 -#: js/toolbar.js:149 -#: js/toolbar.js:204 -#: js/toolbar.js:259 -#: js/turtledefs.js:562 -#: js/turtledefs.js:595 -msgid "Save block artwork as SVG" +#: js/turtledefs.js:715 +msgid "Turn Turtle wrapping On or Off." msgstr "" -#: js/toolbar.js:85 -#: js/toolbar.js:142 -#: js/toolbar.js:150 -#: js/toolbar.js:205 -#: js/toolbar.js:260 -msgid "Confirm" +#: js/turtledefs.js:725 +msgid "Restore blocks from the trash." msgstr "" -#: js/toolbar.js:86 -#: js/toolbar.js:151 -#: js/toolbar.js:206 -#: js/toolbar.js:261 -msgid "English (United States)" +#: js/turtledefs.js:732 +msgid "Switch mode" msgstr "" -#: js/toolbar.js:87 -#: js/toolbar.js:152 -#: js/toolbar.js:207 -#: js/toolbar.js:262 -msgid "English (United Kingdom)" +#: js/turtledefs.js:733 +msgid "Switch between beginner and advance modes." msgstr "" -#: js/toolbar.js:88 -#: js/toolbar.js:153 -#: js/toolbar.js:208 -#: js/toolbar.js:263 -msgid "日本語" +#: js/turtledefs.js:739 +msgid "Select your language preference." msgstr "" -#: js/toolbar.js:89 -msgid "한국어" +#: js/turtledefs.js:745 +msgid "Keyboard shortcuts" msgstr "" -#: js/toolbar.js:90 -#: js/toolbar.js:155 -#: js/toolbar.js:210 -#: js/toolbar.js:265 -msgid "español" +#: js/turtledefs.js:746 +msgid "You can type d to create a do block and r to create a re block etc." msgstr "" -#: js/toolbar.js:91 -#: js/toolbar.js:156 -#: js/toolbar.js:211 -#: js/toolbar.js:266 -msgid "português" +#: js/turtledefs.js:753 +msgid "Show these messages." msgstr "" -#: js/toolbar.js:92 -#: js/toolbar.js:157 -#: js/toolbar.js:212 -#: js/toolbar.js:267 -msgid "にほんご" +#: js/turtledefs.js:759 +#: js/turtledefs.js:790 +#: js/widgets/help.js:335 +msgid "Guide" msgstr "" -#: js/toolbar.js:93 -#: js/toolbar.js:158 -#: js/toolbar.js:213 -#: js/toolbar.js:268 -msgid "中文" +#: js/turtledefs.js:760 +msgid "A detailed guide to Turtle Blocks is available." msgstr "" -#: js/toolbar.js:94 -#: js/toolbar.js:159 -#: js/toolbar.js:214 -#: js/toolbar.js:269 -msgid "ภาษาไทย" +#: js/turtledefs.js:764 +msgid "Turtle Blocks Guide" msgstr "" -#: js/toolbar.js:95 -#: js/toolbar.js:160 -#: js/toolbar.js:215 -#: js/toolbar.js:270 -msgid "aymara" +#: js/turtledefs.js:767 +#: js/turtledefs.js:798 +#: js/widgets/help.js:336 +msgid "About" msgstr "" -#: js/toolbar.js:96 -#: js/toolbar.js:161 -#: js/toolbar.js:216 -#: js/toolbar.js:271 -msgid "quechua" +#: js/turtledefs.js:768 +msgid "Turtle Blocks is an open source collection of tools for exploring musical concepts." msgstr "" -#: js/toolbar.js:97 -#: js/toolbar.js:162 -#: js/toolbar.js:217 -#: js/toolbar.js:272 -msgid "guarani" +#: js/turtledefs.js:770 +msgid "A full list of contributors can be found in the Turtle Blocks GitHub repository." msgstr "" -#: js/toolbar.js:98 -#: js/toolbar.js:163 -#: js/toolbar.js:218 -#: js/toolbar.js:273 -msgid "हिंदी" +#: js/turtledefs.js:772 +msgid "Turtle Blocks is licensed under the AGPL." +msgstr "" + +#: js/turtledefs.js:780 +msgid "Turtle Blocks GitHub repository" msgstr "" -#: js/toolbar.js:99 -#: js/toolbar.js:165 -#: js/toolbar.js:219 -#: js/toolbar.js:275 -msgid "igbo" +#: js/turtledefs.js:783 +#: js/turtledefs.js:814 +#: js/widgets/help.js:337 +#: js/widgets/help.js:359 +msgid "Congratulations." msgstr "" -#: js/toolbar.js:100 -#: js/toolbar.js:166 -#: js/toolbar.js:220 -#: js/toolbar.js:276 -msgid "عربى" +#: js/turtledefs.js:784 +msgid "You have finished the tour. Please enjoy Turtle Blocks!" msgstr "" -#: js/toolbar.js:101 -#: js/toolbar.js:164 -#: js/toolbar.js:221 -#: js/toolbar.js:274 -msgid "తెలుగు" +#: js/turtledefs.js:791 +msgid "A detailed guide to Music Blocks is available." msgstr "" -#: js/toolbar.js:102 -#: js/toolbar.js:167 -#: js/toolbar.js:222 -#: js/toolbar.js:277 -msgid "עִברִית" +#: js/turtledefs.js:799 +msgid "Music Blocks is an open source collection of tools for exploring musical concepts." msgstr "" -#: js/toolbar.js:111 -#: js/toolbar.js:175 -#: js/toolbar.js:176 -#: js/toolbar.js:231 -msgid "Full Screen" +#: js/turtledefs.js:801 +msgid "A full list of contributors can be found in the Music Blocks GitHub repository." msgstr "" -#: js/toolbar.js:145 -#: js/toolbar.js:148 -#: js/toolbar.js:200 -#: js/toolbar.js:203 -#: js/toolbar.js:255 -#: js/toolbar.js:258 -#: js/turtledefs.js:558 -msgid "Save turtle artwork as PNG" +#: js/turtledefs.js:803 +msgid "Music Blocks is licensed under the AGPL." msgstr "" -#: js/toolbar.js:147 -#: js/toolbar.js:202 -#: js/toolbar.js:257 -#: js/turtledefs.js:554 -msgid "Save turtle artwork as SVG" +#: js/turtledefs.js:811 +msgid "Music Blocks GitHub repository" msgstr "" -#: js/toolbar.js:154 -#: js/toolbar.js:209 -#: js/toolbar.js:264 -msgid "한국인" +#: js/turtledefs.js:815 +msgid "You have finished the tour. Please enjoy Music Blocks!" msgstr "" -#: js/toolbar.js:171 -#: js/toolbar.js:227 -msgid "About Turtle Blocks" +#: js/turtles.js:882 +msgid "Grid" msgstr "" -#: js/toolbar.js:429 -#: js/toolbar.js:440 -msgid "Turtle Wrap Off" +#: js/turtles.js:1024 +msgid "Expand" msgstr "" -#: js/toolbar.js:442 -msgid "Turtle Wrap On" +#: js/block-verbose.js:1616 +#: js/block-verbose.js:1735 +#: js/block.js:1580 +#: js/block.js:1699 +#: js/palette.js:605 +#: js/blocks/IntervalsBlocks.js:63 +#: js/blocks/WidgetBlocks.js:259 +msgid "temperament" msgstr "" -#: js/block.js:1470 +#: js/block-verbose.js:1630 +#: js/block.js:1594 msgid "matrix" msgstr "" -#: js/block.js:1477 -#: js/WidgetBlocks.js:1226 +#: js/block-verbose.js:1637 +#: js/block.js:1601 +#: js/blocks/WidgetBlocks.js:1509 #: plugins/rodi.rtp:324 msgid "status" msgstr "" -#: js/block.js:1484 +#: js/block-verbose.js:1644 +#: js/block.js:1608 msgid "drum mapper" msgstr "" -#: js/block.js:1491 +#: js/block-verbose.js:1651 +#: js/block.js:1615 msgid "ruler" msgstr "" -#: js/block.js:1498 -#: js/WidgetBlocks.js:327 +#: js/block-verbose.js:1658 +#: js/block.js:1622 +#: js/blocks/WidgetBlocks.js:397 #.TRANS: timbre is the character or quality of a musical sound msgid "timbre" msgstr "" -#: js/block.js:1505 +#: js/block-verbose.js:1665 +#: js/block.js:1629 msgid "stair" msgstr "" -#: js/block.js:1512 -#: js/WidgetBlocks.js:577 +#: js/block-verbose.js:1672 +#: js/block.js:1636 +#: js/blocks/WidgetBlocks.js:707 #.TRANS: the speed at music is should be played. msgid "tempo" msgstr "" -#: js/block.js:1519 -#: js/block.js:1582 -#: js/IntervalsBlocks.js:1268 +#: js/block-verbose.js:1679 +#: js/block-verbose.js:1742 +#: js/block.js:1643 +#: js/block.js:1706 +#: js/blocks/IntervalsBlocks.js:1464 #.TRANS: mode, e.g., Major in C Major msgid "mode" msgstr "" -#: js/block.js:1526 +#: js/block-verbose.js:1686 +#: js/block.js:1650 msgid "slider" msgstr "" -#: js/block.js:1533 -#: js/SensorsBlocks.js:1001 +#: js/block-verbose.js:1693 +#: js/block.js:1657 +#: js/blocks/SensorsBlocks.js:1001 msgid "keyboard" msgstr "" -#: js/block.js:1547 -#: js/WidgetBlocks.js:957 -#: js/WidgetBlocks.js:988 +#: js/block-verbose.js:1707 +#: js/block.js:1671 +#: js/blocks/WidgetBlocks.js:1190 +#: js/blocks/WidgetBlocks.js:1228 #.TRANS: widget for subdividing a measure into distinct rhythmic elements msgid "rhythm maker" msgstr "" -#: js/block.js:1554 -#: js/block.js:2182 -#: js/block.js:2236 -#: js/RhythmBlockPaletteBlocks.js:70 -#: js/RhythmBlockPaletteBlocks.js:251 -#: js/RhythmBlockPaletteBlocks.js:484 -#: js/RhythmBlockPaletteBlocks.js:553 -#: js/RhythmBlockPaletteBlocks.js:604 -#: js/RhythmBlockPaletteBlocks.js:874 -#: js/RhythmBlocks.js:33 -#: js/RhythmBlocks.js:356 -#: js/RhythmBlocks.js:766 -#: js/RhythmBlocks.js:806 -#: js/OrnamentBlocks.js:220 -#: js/OrnamentBlocks.js:312 -#: js/MeterBlocks.js:1367 -#: js/DictActions.js:85 -#: js/phrasemaker.js:731 -#: js/phrasemaker.js:2393 -#: js/phrasemaker.js:2436 -#: js/phrasemaker.js:2534 +#: js/block-verbose.js:1714 +#: js/block-verbose.js:2457 +#: js/block-verbose.js:2514 +#: js/block.js:1678 +#: js/block.js:2385 +#: js/block.js:2442 +#: js/blocks/MeterBlocks.js:1367 +#: js/blocks/OrnamentBlocks.js:220 +#: js/blocks/OrnamentBlocks.js:312 +#: js/blocks/RhythmBlocks.js:33 +#: js/blocks/RhythmBlocks.js:356 +#: js/blocks/RhythmBlocks.js:766 +#: js/blocks/RhythmBlocks.js:806 +#: js/blocks/RhythmBlockPaletteBlocks.js:70 +#: js/blocks/RhythmBlockPaletteBlocks.js:252 +#: js/blocks/RhythmBlockPaletteBlocks.js:485 +#: js/blocks/RhythmBlockPaletteBlocks.js:554 +#: js/blocks/RhythmBlockPaletteBlocks.js:605 +#: js/blocks/RhythmBlockPaletteBlocks.js:875 +#: js/turtleactions/DictActions.js:85 +#: js/widgets/phrasemaker.js:942 +#: js/widgets/phrasemaker.js:2656 +#: js/widgets/phrasemaker.js:2699 +#: js/widgets/phrasemaker.js:2810 #.TRANS: the value (e.g., 1/4 note) of the note being played. msgid "note value" msgstr "" -#: js/block.js:1561 -#: js/block.js:2110 -#: js/block.js:2133 -#: js/IntervalsBlocks.js:875 -#: js/OrnamentBlocks.js:312 +#: js/block-verbose.js:1721 +#: js/block-verbose.js:2382 +#: js/block-verbose.js:2405 +#: js/block.js:1685 +#: js/block.js:2310 +#: js/block.js:2333 +#: js/blocks/IntervalsBlocks.js:1071 +#: js/blocks/OrnamentBlocks.js:312 #.TRANS: calculate a relative step between notes based on semi-tones msgid "scalar interval" msgstr "" -#: js/block.js:1568 -#: js/RhythmBlocks.js:148 +#: js/block-verbose.js:1728 +#: js/block.js:1692 +#: js/blocks/RhythmBlocks.js:148 msgid "milliseconds" msgstr "" -#: js/block.js:2180 -#: js/block.js:2184 -#: js/block.js:2234 -#: js/block.js:2345 -#: js/ProgramBlocks.js:1273 -#: js/RhythmBlocks.js:712 -#: js/rhythmruler.js:834 -#: js/rhythmruler.js:961 +#: js/block-verbose.js:2455 +#: js/block-verbose.js:2459 +#: js/block-verbose.js:2512 +#: js/block-verbose.js:2628 +#: js/block.js:2383 +#: js/block.js:2387 +#: js/block.js:2440 +#: js/block.js:2556 +#: js/blocks/RhythmBlocks.js:712 +#: js/blocks/ProgramBlocks.js:1273 +#: js/widgets/rhythmruler.js:1183 +#: js/widgets/rhythmruler.js:1329 msgid "silence" msgstr "" -#: js/block.js:2265 -#: js/block.js:3134 -#: js/block.js:3151 -#: js/activity.js:2336 -#: js/activity.js:2387 -#: js/musicutils.js:2932 -#: js/musicutils.js:4287 +#: js/block-verbose.js:2548 +#: js/block-verbose.js:3492 +#: js/block-verbose.js:3509 +#: js/activity.js:2718 +#: js/activity.js:2769 +#: js/block.js:2476 +#: js/block.js:3416 +#: js/block.js:3433 +#: js/utils/musicutils.js:3780 +#: js/utils/musicutils.js:5273 +#.TRANS: the note names must be separated by single spaces #.TRANS: the note names must be separated by single spaces #.TRANS: the note names must be separated by single spaces msgid "ti la sol fa mi re do" msgstr "" -#: js/block.js:2333 +#: js/block-verbose.js:2616 +#: js/block.js:2544 +#.TRANS: scalar step #.TRANS: scalar step msgid "down" msgstr "" -#: js/block.js:2334 +#: js/block-verbose.js:2617 +#: js/block.js:2545 msgid "up" msgstr "" -#: js/block.js:3477 -#: js/block.js:3490 -#: js/ExtrasBlocks.js:612 +#: js/block-verbose.js:3026 +#: js/block.js:2950 +msgid "Silence block cannot be removed." +msgstr "" + +#: js/block-verbose.js:3824 +#: js/block.js:3748 +#: js/blocks.js:2607 +#: js/blocks.js:3218 +#: js/palette.js:618 +#: js/blocks/BooleanBlocks.js:77 +#: js/blocks/BooleanBlocks.js:167 +#: js/blocks/BooleanBlocks.js:251 +#: js/blocks/BooleanBlocks.js:335 +#: js/blocks/BooleanBlocks.js:433 +#: js/blocks/BooleanBlocks.js:539 +#: js/blocks/BooleanBlocks.js:640 +#: js/blocks/BooleanBlocks.js:741 +#: js/blocks/BooleanBlocks.js:847 +#: js/blocks/BooleanBlocks.js:948 +#: js/blocks/BooleanBlocks.js:1033 +#: js/blocks/SensorsBlocks.js:910 +msgid "true" +msgstr "" + +#: js/block-verbose.js:3824 +#: js/block.js:3748 +#: js/blocks.js:2609 +#: js/blocks.js:3220 +#: js/blocks/BooleanBlocks.js:79 +#: js/blocks/BooleanBlocks.js:169 +#: js/blocks/BooleanBlocks.js:253 +#: js/blocks/BooleanBlocks.js:337 +#: js/blocks/BooleanBlocks.js:435 +#: js/blocks/BooleanBlocks.js:541 +#: js/blocks/BooleanBlocks.js:642 +#: js/blocks/BooleanBlocks.js:743 +#: js/blocks/BooleanBlocks.js:849 +#: js/blocks/BooleanBlocks.js:950 +#: js/blocks/SensorsBlocks.js:912 +msgid "false" +msgstr "" + +#: js/block-verbose.js:3835 +#: js/block-verbose.js:3848 +#: js/block.js:3759 +#: js/block.js:3772 +#: js/blocks/ExtrasBlocks.js:615 msgid "Cartesian" msgstr "Karteziana" -#: js/block.js:3478 -#: js/block.js:3491 -#: js/ExtrasBlocks.js:616 +#: js/block-verbose.js:3836 +#: js/block-verbose.js:3849 +#: js/block.js:3760 +#: js/block.js:3773 +#: js/blocks/ExtrasBlocks.js:619 msgid "polar" msgstr "" -#: js/block.js:3479 -#: js/block.js:3492 -#: js/ExtrasBlocks.js:620 +#: js/block-verbose.js:3837 +#: js/block-verbose.js:3850 +#: js/block.js:3761 +#: js/block.js:3774 +#: js/blocks/ExtrasBlocks.js:623 msgid "Cartesian+polar" msgstr "" -#: js/block.js:3480 -#: js/block.js:3499 -#: js/ExtrasBlocks.js:649 +#: js/block-verbose.js:3838 +#: js/block-verbose.js:3857 +#: js/block.js:3762 +#: js/block.js:3781 +#: js/blocks/ExtrasBlocks.js:652 msgid "none" msgstr "" -#: js/block.js:3493 -#: js/ExtrasBlocks.js:625 +#: js/block-verbose.js:3851 +#: js/block.js:3775 +#: js/blocks/ExtrasBlocks.js:628 msgid "treble" msgstr "" -#: js/block.js:3494 -#: js/ExtrasBlocks.js:629 +#: js/block-verbose.js:3852 +#: js/block.js:3776 +#: js/blocks/ExtrasBlocks.js:632 msgid "grand staff" msgstr "" -#: js/block.js:3495 -#: js/ExtrasBlocks.js:633 +#: js/block-verbose.js:3853 +#: js/block.js:3777 +#: js/blocks/ExtrasBlocks.js:636 msgid "mezzo-soprano" msgstr "" -#: js/block.js:3496 -#: js/ExtrasBlocks.js:637 +#: js/block-verbose.js:3854 +#: js/block.js:3778 +#: js/blocks/ExtrasBlocks.js:640 msgid "alto" msgstr "" -#: js/block.js:3497 -#: js/ExtrasBlocks.js:641 +#: js/block-verbose.js:3855 +#: js/block.js:3779 +#: js/blocks/ExtrasBlocks.js:644 msgid "tenor" msgstr "" -#: js/block.js:3498 -#: js/ExtrasBlocks.js:645 -#: js/musicutils.js:736 -#: js/synthutils.js:64 +#: js/block-verbose.js:3856 +#: js/block.js:3780 +#: js/utils/musicutils.js:1115 +#: js/utils/synthutils.js:80 +#: js/blocks/ExtrasBlocks.js:648 #.TRANS: musical instrument msgid "bass" msgstr "" -#: js/block.js:4075 +#: js/block-verbose.js:3901 +#: js/block.js:3825 +#: js/blocks.js:2600 +#: js/blocks.js:3211 +msgid "on2" +msgstr "" + +#: js/block-verbose.js:3903 +#: js/block.js:3827 +#: js/blocks.js:2602 +#: js/blocks.js:3213 +msgid "off" +msgstr "" + +#: js/block-verbose.js:4470 +#: js/block.js:4394 msgid "Not a number" msgstr "" -#: js/block.js:4082 +#: js/block-verbose.js:4477 +#: js/block.js:4401 msgid "Octave value must be between 1 and 10." msgstr "" -#: js/block.js:4090 +#: js/block-verbose.js:4485 +#: js/block.js:4409 msgid "Numbers can have at most 10 digits." msgstr "" -#: js/notation.js:353 -msgid "Lilypond cannot process pickup of " +#: js/activity.js:390 +#: js/activity.js:395 +msgid "Search for blocks" msgstr "" -#: js/turtledefs.js:40 -#.TRANS: put the URL to the guide here, e.g., https://github.com/sugarlabs/turtleblocksjs/tree/master/guide/README.md -msgid "guide url" +#: js/activity.js:1413 +msgid "Refresh your browser to change to advanced mode." msgstr "" -#: js/turtledefs.js:85 -#: js/turtledefs.js:437 -msgid "Turtle Blocks is a Logo-inspired turtle that draws colorful pictures with snap-together visual-programming blocks." +#: js/activity.js:1418 +msgid "Refresh your browser to change to beginner mode." msgstr "" -#: js/turtledefs.js:118 -#: js/turtledefs.js:220 -msgid "search" +#: js/activity.js:1477 +msgid "Catching mice" msgstr "" -#: js/turtledefs.js:120 -#: js/turtledefs.js:222 -#: js/WidgetBlocks.js:437 -#: js/MeterBlocks.js:1343 -#.TRANS: musical meter (time signature), e.g., 4:4 -msgid "meter" +#: js/activity.js:1478 +msgid "Cleaning the instruments" msgstr "" -#: js/turtledefs.js:122 -#: js/turtledefs.js:224 -msgid "intervals" +#: js/activity.js:1479 +msgid "Testing key pieces" +msgstr "" + +#: js/activity.js:1480 +msgid "Sight-reading" +msgstr "" + +#: js/activity.js:1481 +msgid "Combining math and music" +msgstr "" + +#: js/activity.js:1482 +msgid "Generating more blocks" +msgstr "" + +#: js/activity.js:1483 +msgid "Do Re Mi Fa Sol La Ti Do" +msgstr "" + +#: js/activity.js:1484 +msgid "Tuning string instruments" +msgstr "" + +#: js/activity.js:1485 +msgid "Pressing random keys" +msgstr "" + +#: js/activity.js:1663 +msgid "plugins will be removed upon restart." +msgstr "" + +#: js/activity.js:1672 +msgid "show Cartesian" +msgstr "" + +#: js/activity.js:2211 +#: js/palette.js:589 +#: js/blocks/RhythmBlocks.js:923 +#: js/blocks/PitchBlocks.js:442 +#: js/blocks/PitchBlocks.js:1786 +#.TRANS: a numeric mapping of the notes in an octave based on the musical mode +msgid "scale degree" +msgstr "" + +#: js/activity.js:2214 +#: js/palette.js:598 +msgid "voice name" +msgstr "" + +#: js/activity.js:2217 +#: js/palette.js:595 +msgid "invert mode" +msgstr "" + +#: js/activity.js:2220 +msgid "output tools" +msgstr "" + +#: js/activity.js:2223 +msgid "custom note" +msgstr "" + +#: js/activity.js:2226 +msgid "accidental name" +msgstr "" + +#: js/activity.js:2229 +#: js/blocks/PitchBlocks.js:855 +msgid "east indian solfege" +msgstr "" + +#: js/activity.js:2232 +#: js/blocks/PitchBlocks.js:869 +msgid "note name" +msgstr "" + +#: js/activity.js:2235 +#: js/blocks/IntervalsBlocks.js:94 +msgid "temperament name" +msgstr "" + +#: js/activity.js:2238 +#: js/palette.js:592 +msgid "mode name" +msgstr "" + +#: js/activity.js:2241 +msgid "chord name" +msgstr "" + +#: js/activity.js:2244 +#: js/palette.js:615 +msgid "interval name" +msgstr "" + +#: js/activity.js:2247 +msgid "filter type" +msgstr "" + +#: js/activity.js:2250 +msgid "oscillator type" +msgstr "" + +#: js/activity.js:2253 +#: js/blocks.js:2479 +#: js/blocks.js:2487 +msgid "audio file" +msgstr "" + +#: js/activity.js:2256 +#: js/blocks/DrumBlocks.js:32 +msgid "noise name" +msgstr "" + +#: js/activity.js:2259 +#: js/blocks/DrumBlocks.js:75 +msgid "drum name" +msgstr "" + +#: js/activity.js:2262 +#: js/blocks/DrumBlocks.js:119 +msgid "effects name" +msgstr "" + +#: js/activity.js:2265 +msgid "wrap mode" +msgstr "" + +#: js/activity.js:2268 +msgid "load file" +msgstr "" + +#: js/activity.js:2435 +#: js/activity.js:5851 +msgid "This block is deprecated." +msgstr "" + +#: js/activity.js:2437 +#: js/activity.js:5853 +msgid "Block cannot be found." +msgstr "" + +#: js/activity.js:2645 +msgid "Saving block artwork" +msgstr "" + +#: js/activity.js:2656 +msgid "Erase" +msgstr "" + +#: js/activity.js:2683 +#: js/activity.js:2705 +msgid "Paste" +msgstr "Apetaho" + +#: js/activity.js:2687 +msgid "Save block help" +msgstr "" + +#: js/activity.js:2772 +msgid "Jumping to the bottom of the page." +msgstr "" + +#: js/activity.js:2778 +msgid "Scrolling up." +msgstr "" + +#: js/activity.js:2783 +msgid "Scrolling down." +msgstr "" + +#: js/activity.js:2788 +msgid "Extracting block" +msgstr "" + +#: js/activity.js:2796 +msgid "Moving block up." +msgstr "" + +#: js/activity.js:2817 +msgid "Moving block down." +msgstr "" + +#: js/activity.js:2838 +msgid "Moving block left." +msgstr "" + +#: js/activity.js:2855 +msgid "Moving block right." +msgstr "" + +#: js/activity.js:2870 +msgid "Jump to home position." +msgstr "" + +#: js/activity.js:2897 +msgid "Hide blocks" +msgstr "" + +#: js/activity.js:4500 +msgid "Click the run button to run the project." msgstr "" -#: js/turtledefs.js:124 -#: js/turtledefs.js:226 -msgid "ornament" +#: js/activity.js:5692 +msgid "Show/hide block" msgstr "" -#: js/turtledefs.js:125 -#: js/turtledefs.js:227 -#: js/VolumeBlocks.js:362 -#: js/VolumeBlocks.js:502 -#: js/VolumeBlocks.js:545 -msgid "volume" +#: js/activity.js:5698 +msgid "Expand/collapse blocks" msgstr "" -#: js/turtledefs.js:129 -#: js/turtledefs.js:231 -msgid "boxes" +#: js/activity.js:5976 +msgid "Could not parse JSON input." msgstr "" -#: js/turtledefs.js:130 -#: js/turtledefs.js:232 -msgid "widgets" +#: js/activity.js:6475 +#: js/activity.js:6580 +#: js/activity.js:6631 +msgid "Cannot load project from the file. Please check the file type." msgstr "" -#: js/turtledefs.js:131 -#: js/turtledefs.js:233 -#: js/phrasemaker.js:824 -msgid "graphics" +#: js/activity.js:6917 +msgid "Invalid parameters" msgstr "" -#: js/turtledefs.js:134 -#: js/turtledefs.js:236 -msgid "boolean" +#: js/blocks.js:1212 +#: js/blocks.js:3444 +#: js/blocks.js:3834 +#: js/blocks.js:3865 +#: js/blocks.js:3914 +#: js/blocks.js:3949 +#: js/blocks.js:6586 +#: js/palette.js:509 +#: js/palette.js:638 +#: js/palette.js:1105 +#: js/blocks/BoxesBlocks.js:282 +#: js/blocks/BoxesBlocks.js:285 +#: js/blocks/BoxesBlocks.js:405 +#: js/blocks/BoxesBlocks.js:594 +msgid "box" +msgstr "boaty" + +#: js/blocks.js:1713 +msgid "Consider breaking this stack into parts." msgstr "" -#: js/turtledefs.js:137 -#: js/turtledefs.js:239 -#: js/HeapBlocks.js:59 -#: js/status.js:147 -msgid "heap" +#: js/blocks.js:2472 +#: js/palette.js:653 +#: js/blocks/MediaBlocks.js:602 +msgid "open file" msgstr "" -#: js/turtledefs.js:138 -#: js/turtledefs.js:240 -#: js/ProgramBlocks.js:495 -#: js/DictBlocks.js:142 -msgid "dictionary" +#: js/blocks.js:3247 +#: js/palette.js:574 +#: js/blocks/MediaBlocks.js:892 +#: js/blocks/MediaBlocks.js:963 +msgid "text" +msgstr "Lahatsoratra" + +#: js/blocks.js:3443 +#: js/palette.js:641 +#: js/palette.js:642 +#: js/blocks/BoxesBlocks.js:514 +msgid "store in box" msgstr "" -#: js/turtledefs.js:139 -#: js/turtledefs.js:241 -msgid "ensemble" +#: js/blocks.js:3448 +#: js/blocks.js:3888 +#: js/blocks.js:3923 +#: js/blocks.js:3958 +#: js/blocks.js:5862 +#: js/blocks.js:5883 +#: js/blocks/BoxesBlocks.js:772 +msgid "box1" msgstr "" -#: js/turtledefs.js:140 -#: js/turtledefs.js:242 -msgid "extras" +#: js/blocks.js:3450 +#: js/blocks.js:3890 +#: js/blocks.js:3925 +#: js/blocks.js:3960 +#: js/blocks.js:5864 +#: js/blocks.js:5885 +#: js/blocks/BoxesBlocks.js:663 +msgid "box2" msgstr "" -#: js/turtledefs.js:142 -#: js/turtledefs.js:244 -#.TRANS: program as in computer program -#.TRANS: program as in computer program -msgid "program" +#: js/blocks.js:4122 +#: js/palette.js:639 +#: js/palette.js:644 +#: js/palette.js:1041 +#: js/blocks/BoxesBlocks.js:591 +msgid "store in" msgstr "" -#: js/turtledefs.js:143 -#: js/turtledefs.js:245 -msgid "my blocks" +#: js/blocks.js:4122 +#: js/blocks/BoxesBlocks.js:595 +#: js/blocks/DictBlocks.js:215 +#: js/blocks/DictBlocks.js:289 +#: js/blocks/EnsembleBlocks.js:391 +#: js/blocks/EnsembleBlocks.js:402 +#: js/blocks/MediaBlocks.js:746 +#: js/blocks/PitchBlocks.js:656 +#: js/blocks/PitchBlocks.js:934 +#: js/blocks/PitchBlocks.js:1866 +#: js/blocks/ProgramBlocks.js:390 +#: js/blocks/ProgramBlocks.js:495 +#: js/blocks/ProgramBlocks.js:658 +#: js/blocks/ToneBlocks.js:1025 +msgid "name" msgstr "" -#: js/turtledefs.js:185 -#: js/turtledefs.js:281 -msgid "artwork" +#: js/blocks.js:4122 +#: js/blocks/BoxesBlocks.js:75 +#: js/blocks/BoxesBlocks.js:595 +#: js/blocks/DictBlocks.js:289 +#: js/blocks/DictBlocks.js:430 +#: js/blocks/HeapBlocks.js:544 +#: js/blocks/RhythmBlocks.js:1130 +msgid "value" msgstr "" -#: js/turtledefs.js:185 -#: js/turtledefs.js:281 -msgid "logic" +#: js/blocks.js:4465 +msgid "Forever loop detected inside a note value block. Unexpected things may happen." msgstr "" -#: js/turtledefs.js:185 -#: js/turtledefs.js:281 -msgid "music" +#: js/blocks.js:4988 +msgid "There is no block selected." msgstr "" -#: js/turtledefs.js:187 -#: js/turtledefs.js:463 -msgid "Music Blocks is a collection of tools for exploring fundamental musical concepts in a fun way." +#: js/blocks.js:5091 +#: js/blocks/MediaBlocks.js:888 +msgid "show" +msgstr "asehoy" + +#: js/blocks.js:5094 +#: js/blocks/MediaBlocks.js:803 +#.TRANS: Avatar is the image used to determine the appearance of the mouse. +msgid "avatar" msgstr "" -#: js/turtledefs.js:436 -msgid "Welcome to Turtle Blocks" +#: js/blocks.js:5097 +#: js/blocks/ToneBlocks.js:1010 +#: js/widgets/sampler.js:975 +#.TRANS: The sound sample that the user uploads. +msgid "sample" msgstr "" -#: js/turtledefs.js:438 -#: js/turtledefs.js:465 -#: js/turtledefs.js:774 -#: js/turtledefs.js:805 -msgid "The current version is" +#: js/lilypond.js:606 +msgid "brown rat" msgstr "" -#: js/turtledefs.js:446 -#: js/turtledefs.js:483 -msgid "Click the run button to run the project in fast mode." +#: js/lilypond.js:607 +msgid "mole" msgstr "" -#: js/turtledefs.js:452 -msgid "Stop the turtle." +#: js/lilypond.js:608 +msgid "chipmunk" msgstr "" -#: js/turtledefs.js:454 -#: js/turtledefs.js:491 -msgid "You can also type Alt-S to stop." +#: js/lilypond.js:609 +msgid "red squirrel" msgstr "" -#: js/turtledefs.js:462 -#: js/help.js:333 -msgid "Welcome to Music Blocks" +#: js/lilypond.js:610 +msgid "guinea pig" msgstr "" -#: js/turtledefs.js:472 -#: js/help.js:334 -msgid "Meet Mr. Mouse!" +#: js/lilypond.js:611 +msgid "capybara" msgstr "" -#: js/turtledefs.js:473 -msgid "Mr Mouse is our Music Blocks conductor." +#: js/lilypond.js:612 +msgid "coypu" msgstr "" -#: js/turtledefs.js:475 -msgid "Mr Mouse encourages you to explore Music Blocks." +#: js/lilypond.js:613 +msgid "black rat" msgstr "" -#: js/turtledefs.js:477 -msgid "Let us start our tour!" +#: js/lilypond.js:614 +msgid "grey squirrel" msgstr "" -#: js/turtledefs.js:489 -msgid "Stop the music (and the mice)." +#: js/lilypond.js:615 +msgid "flying squirrel" msgstr "" -#: js/turtledefs.js:499 -msgid "Record your project as video." +#: js/lilypond.js:616 +msgid "bat" msgstr "" -#: js/turtledefs.js:505 -msgid "Toggle Fullscreen mode." +#: js/lilypond.js:749 +#: js/lilypond.js:913 +#: js/lilypond.js:951 +#: js/blocks/ActionBlocks.js:1256 +#: js/blocks/ExtrasBlocks.js:556 +msgid "start drum" msgstr "" -#: js/turtledefs.js:511 -msgid "Initialize a new project." +#: js/logo.js:61 +msgid "Not a valid pitch name" msgstr "" -#: js/turtledefs.js:517 -msgid "You can also load projects from the file system." +#: js/logo.js:507 +#: js/blocks/ProgramBlocks.js:258 +#: js/blocks/ProgramBlocks.js:427 +msgid "You must select a file." msgstr "" -#: js/turtledefs.js:522 -#: js/StringHelper.js:46 -msgid "Delete" +#: js/logo.js:1696 +msgid "Playback is ready." msgstr "" -#: js/turtledefs.js:523 -msgid "To delete a block, just right-click on it, then you will be able to see the delete option" +#: js/macros.js:711 +#: js/utils/musicutils.js:1162 +#: js/utils/synthutils.js:202 +#.TRANS: animal sound effect +msgid "duck" msgstr "" -#: js/turtledefs.js:528 -#: js/activity.js:2270 -#: js/LocalCard.js:31 -msgid "Copy" -msgstr "Adikao" +#: js/notation.js:353 +msgid "Lilypond cannot process pickup of " +msgstr "" -#: js/turtledefs.js:529 -msgid "To copy a block, just right-click on it, then you will be able to see the copy option" +#: js/palette.js:571 +msgid "grid" msgstr "" -#: js/turtledefs.js:535 -msgid "To extract a block, just right-click on it, then you will be able to see the extract option" +#: js/palette.js:580 +msgid "effect" msgstr "" -#: js/turtledefs.js:542 -#: js/turtledefs.js:552 -#: js/turtledefs.js:573 -msgid "Save your project to a file." +#: js/palette.js:586 +msgid "sargam" msgstr "" -#: js/turtledefs.js:549 -#: js/turtledefs.js:570 -msgid "save" +#: js/palette.js:601 +#: js/blocks/PitchBlocks.js:1209 +msgid "custom pitch" msgstr "" -#: js/turtledefs.js:556 -#: js/turtledefs.js:577 -msgid "Save graphics from your project to as SVG." +#: js/palette.js:609 +msgid "accidental" msgstr "" -#: js/turtledefs.js:560 -#: js/turtledefs.js:581 -msgid "Save graphics from your project as PNG." +#: js/palette.js:633 +#: js/blocks/PitchBlocks.js:405 +msgid "pitch converter" msgstr "" -#: js/turtledefs.js:564 -#: js/turtledefs.js:597 -msgid "Save block artwork as an SVG file." +#: js/piemenus.js:200 +#: js/utils/musicutils.js:1187 +#: js/utils/musicutils.js:1207 +#: js/widgets/musickeyboard.js:2341 +#: js/widgets/phrasemaker.js:1908 +#: js/widgets/sampler.js:810 +#.TRANS: double sharp is a music term related to pitch +msgid "double sharp" msgstr "" -#: js/turtledefs.js:585 -msgid "Save audio from your project as WAV." +#: js/piemenus.js:201 +#: js/utils/musicutils.js:1185 +#: js/utils/musicutils.js:1208 +#: js/blocks/PitchBlocks.js:1539 +#: js/turtleactions/PitchActions.js:323 +#: js/widgets/musickeyboard.js:2342 +#: js/widgets/phrasemaker.js:1909 +#: js/widgets/sampler.js:811 +#.TRANS: sharp is a music term related to pitch +#.TRANS: sharp is a half-step up in pitch +msgid "sharp" msgstr "" -#: js/turtledefs.js:589 -msgid "Save your project to as an ABC file." +#: js/piemenus.js:202 +#: js/utils/musicutils.js:1183 +#: js/utils/musicutils.js:1209 +#: js/widgets/musickeyboard.js:2343 +#: js/widgets/phrasemaker.js:1910 +#: js/widgets/sampler.js:812 +#.TRANS: natural is a music term related to pitch +msgid "natural" msgstr "" -#: js/turtledefs.js:593 -msgid "Save your project to as a Lilypond file." +#: js/piemenus.js:203 +#: js/utils/musicutils.js:1181 +#: js/utils/musicutils.js:1210 +#: js/blocks/PitchBlocks.js:1498 +#: js/turtleactions/PitchActions.js:326 +#: js/widgets/musickeyboard.js:2344 +#: js/widgets/phrasemaker.js:1911 +#: js/widgets/sampler.js:813 +#.TRANS: flat is a music term related to pitch +#.TRANS: flat is a half-step down in pitch +msgid "flat" msgstr "" -#: js/turtledefs.js:604 -msgid "Load samples from server" +#: js/piemenus.js:204 +#: js/utils/musicutils.js:1179 +#: js/utils/musicutils.js:1211 +#: js/widgets/musickeyboard.js:2345 +#: js/widgets/phrasemaker.js:1912 +#: js/widgets/sampler.js:814 +#.TRANS: double flat is a music term related to pitch +msgid "double flat" msgstr "" -#: js/turtledefs.js:605 -msgid "This button opens a viewer for loading example projects." +#: js/piemenus.js:2864 +#: js/utils/musicutils.js:1006 +#: js/blocks/PitchBlocks.js:1385 +#.TRANS: unison is a music term related to intervals +#.TRANS: unison means the note is the same as the current note +msgid "unison" msgstr "" -#: js/turtledefs.js:611 -msgid "Palette buttons" +#: js/piemenus.js:3018 +#: js/piemenus.js:3091 +#: js/utils/musicutils.js:1014 +#: js/utils/musicutils.js:1189 +#: js/utils/musicutils.js:1326 +#.TRANS: major is a music term related to intervals and mode +msgid "major" msgstr "" -#: js/turtledefs.js:612 -msgid "This toolbar contains the palette buttons including Rhythm Pitch Tone Action and more." +#: js/piemenus.js:3018 +#: js/piemenus.js:3091 +#: js/utils/musicutils.js:1032 +#.TRANS: modal scale for music +msgid "ionian" msgstr "" -#: js/turtledefs.js:614 -msgid "Click to show the palettes of blocks and drag blocks from the palettes onto the canvas to use them." +#: js/piemenus.js:3020 +#: js/piemenus.js:3095 +#: js/utils/musicutils.js:1012 +#: js/utils/musicutils.js:1190 +#: js/utils/musicutils.js:1323 +#.TRANS: minor is a music term related to intervals and mode +msgid "minor" msgstr "" -#: js/turtledefs.js:620 -msgid "Cartesian/Polar" +#: js/piemenus.js:3020 +#: js/piemenus.js:3095 +#: js/utils/musicutils.js:1042 +#.TRANS: modal scale for music +msgid "aeolian" msgstr "" -#: js/turtledefs.js:621 -msgid "Show or hide a coordinate grid." +#: js/piemenus.js:3410 +msgid "Duplicate" msgstr "" -#: js/turtledefs.js:627 -msgid "Clear the screen and return the mice to their initial positions." +#: js/piemenus.js:3412 +msgid "Move to trash" msgstr "" -#: js/turtledefs.js:633 -msgid "Collapse the graphics window." +#: js/piemenus.js:3413 +#: js/widgets/timbre.js:968 +#: planet/js/StringHelper.js:69 +msgid "Close" msgstr "" -#: js/turtledefs.js:638 -#: js/activity.js:4256 -#: js/activity.js:4256 -msgid "Home" +#: js/piemenus.js:3419 +msgid "Save stack" msgstr "" -#: js/turtledefs.js:639 -msgid "Return all blocks to the center of the screen." +#: js/piemenus.js:3449 +msgid "In order to copy a sample, you must reload the widget, import the sample again, and export it." msgstr "" -#: js/turtledefs.js:644 -msgid "Show/hide blocks" -msgstr "Asehoy/Afeno ireo bolongana" +#: js/piemenus.js:3812 +msgid "You have chosen key " +msgstr "" -#: js/turtledefs.js:645 -msgid "Hide or show the blocks and the palettes." +#: js/piemenus.js:3816 +msgid " for your pitch preview." msgstr "" -#: js/turtledefs.js:650 -msgid "Expand/collapse collapsable blocks" +#: js/turtle-singer.js:1363 +#.TRANS: partials are weighted components in a harmonic series +msgid "You must have at least one Partial block inside of a Weighted-partial block" msgstr "" -#: js/turtledefs.js:651 -msgid "Expand or collapse start and action stacks." +#: js/turtle-singer.js:2077 +msgid "synth cannot play chords." msgstr "" -#: js/turtledefs.js:658 -#: js/activity.js:4265 -msgid "Decrease block size" +#: js/utils/musicutils.js:505 +#: js/utils/musicutils.js:645 +#: js/widgets/pitchdrummatrix.js:228 +#: js/widgets/musickeyboard.js:2885 +msgid "rest" msgstr "" -#: js/turtledefs.js:659 -msgid "Decrease the size of the blocks." +#: js/utils/musicutils.js:689 +msgid "Perfect unison" msgstr "" -#: js/turtledefs.js:664 -#: js/activity.js:4267 -msgid "Increase block size" +#: js/utils/musicutils.js:689 +msgid "Diminished second" msgstr "" -#: js/turtledefs.js:665 -msgid "Increase the size of the blocks." +#: js/utils/musicutils.js:690 +msgid "Minor second" msgstr "" -#: js/turtledefs.js:670 -msgid "Expand/collapse option toolbar" +#: js/utils/musicutils.js:690 +msgid "Augmented unison" msgstr "" -#: js/turtledefs.js:671 -msgid "Click this button to expand or collapse the auxillary toolbar." +#: js/utils/musicutils.js:691 +msgid "Major second" msgstr "" -#: js/turtledefs.js:676 -msgid "Run slow" +#: js/utils/musicutils.js:691 +msgid "Diminished third" msgstr "" -#: js/turtledefs.js:677 -msgid "Click to run the project in slow mode." +#: js/utils/musicutils.js:692 +msgid "Minor third" msgstr "" -#: js/turtledefs.js:683 -msgid "Click to run the project step by step." +#: js/utils/musicutils.js:692 +msgid "Augmented second" msgstr "" -#: js/turtledefs.js:690 -msgid "Display statistics about your Music project." +#: js/utils/musicutils.js:693 +msgid "Major third" msgstr "" -#: js/turtledefs.js:697 -msgid "Delete a selected plugin." +#: js/utils/musicutils.js:693 +msgid "Diminished fourth" msgstr "" -#: js/turtledefs.js:704 -msgid "Enable scrolling" +#: js/utils/musicutils.js:694 +msgid "Perfect fourth" msgstr "" -#: js/turtledefs.js:705 -msgid "You can scroll the blocks on the canvas." +#: js/utils/musicutils.js:694 +msgid "Augmented third" msgstr "" -#: js/turtledefs.js:714 -msgid "Wrap Turtle" +#: js/utils/musicutils.js:695 +msgid "Diminished fifth" msgstr "" -#: js/turtledefs.js:715 -msgid "Turn Turtle wrapping On or Off." +#: js/utils/musicutils.js:695 +msgid "Augmented fourth" msgstr "" -#: js/turtledefs.js:725 -msgid "Restore blocks from the trash." +#: js/utils/musicutils.js:696 +msgid "Perfect fifth" msgstr "" -#: js/turtledefs.js:732 -msgid "Switch mode" +#: js/utils/musicutils.js:696 +msgid "Diminished sixth" msgstr "" -#: js/turtledefs.js:733 -msgid "Switch between beginner and advance modes." +#: js/utils/musicutils.js:697 +msgid "Minor sixth" msgstr "" -#: js/turtledefs.js:739 -msgid "Select your language preference." +#: js/utils/musicutils.js:697 +msgid "Augmented fifth" msgstr "" -#: js/turtledefs.js:745 -msgid "Keyboard shortcuts" +#: js/utils/musicutils.js:698 +msgid "Major sixth" msgstr "" -#: js/turtledefs.js:746 -msgid "You can type d to create a do block and r to create a re block etc." +#: js/utils/musicutils.js:698 +msgid "Diminished seventh" msgstr "" -#: js/turtledefs.js:753 -msgid "Show these messages." +#: js/utils/musicutils.js:699 +msgid "Minor seventh" msgstr "" -#: js/turtledefs.js:759 -#: js/turtledefs.js:790 -#: js/help.js:335 -msgid "Guide" +#: js/utils/musicutils.js:699 +msgid "Augmented sixth" msgstr "" -#: js/turtledefs.js:760 -msgid "A detailed guide to Turtle Blocks is available." +#: js/utils/musicutils.js:700 +msgid "Major seventh" msgstr "" -#: js/turtledefs.js:764 -msgid "Turtle Blocks Guide" +#: js/utils/musicutils.js:700 +msgid "Diminished octave" msgstr "" -#: js/turtledefs.js:767 -#: js/turtledefs.js:798 -#: js/help.js:336 -msgid "About" +#: js/utils/musicutils.js:701 +msgid "Perfect octave" msgstr "" -#: js/turtledefs.js:768 -msgid "Turtle Blocks is an open source collection of tools for exploring musical concepts." +#: js/utils/musicutils.js:701 +msgid "Augmented seventh" msgstr "" -#: js/turtledefs.js:770 -msgid "A full list of contributors can be found in the Turtle Blocks GitHub repository." +#: js/utils/musicutils.js:702 +msgid "Minor ninth" msgstr "" -#: js/turtledefs.js:772 -msgid "Turtle Blocks is licensed under the AGPL." +#: js/utils/musicutils.js:702 +msgid "Augmented octave" msgstr "" -#: js/turtledefs.js:780 -msgid "Turtle Blocks GitHub repository" +#: js/utils/musicutils.js:703 +msgid "Major ninth" msgstr "" -#: js/turtledefs.js:783 -#: js/turtledefs.js:814 -#: js/help.js:337 -#: js/help.js:359 -msgid "Congratulations." +#: js/utils/musicutils.js:703 +msgid "Diminished tenth" msgstr "" -#: js/turtledefs.js:784 -msgid "You have finished the tour. Please enjoy Turtle Blocks!" +#: js/utils/musicutils.js:704 +msgid "Minor tenth" msgstr "" -#: js/turtledefs.js:791 -msgid "A detailed guide to Music Blocks is available." +#: js/utils/musicutils.js:704 +msgid "Augmented ninth" msgstr "" -#: js/turtledefs.js:795 -#: js/SaveInterface.js:76 -msgid "Music Blocks Guide" +#: js/utils/musicutils.js:705 +msgid "Major tenth" msgstr "" -#: js/turtledefs.js:799 -msgid "Music Blocks is an open source collection of tools for exploring musical concepts." +#: js/utils/musicutils.js:705 +msgid "Diminished eleventh" msgstr "" -#: js/turtledefs.js:801 -msgid "A full list of contributors can be found in the Music Blocks GitHub repository." +#: js/utils/musicutils.js:706 +msgid "Perfect eleventh" msgstr "" -#: js/turtledefs.js:803 -msgid "Music Blocks is licensed under the AGPL." +#: js/utils/musicutils.js:706 +msgid "Augmented tenth" msgstr "" -#: js/turtledefs.js:811 -msgid "Music Blocks GitHub repository" +#: js/utils/musicutils.js:707 +msgid "Diminished twelfth" msgstr "" -#: js/turtledefs.js:815 -msgid "You have finished the tour. Please enjoy Music Blocks!" +#: js/utils/musicutils.js:707 +msgid "Augmented eleventh" msgstr "" -#: js/activity.js:369 -msgid "Search for blocks" +#: js/utils/musicutils.js:708 +msgid "Perfect twelfth" msgstr "" -#: js/activity.js:1145 -msgid "Refresh your browser to change to advanced mode." +#: js/utils/musicutils.js:708 +msgid "Diminished thirteenth" msgstr "" -#: js/activity.js:1150 -msgid "Refresh your browser to change to beginner mode." +#: js/utils/musicutils.js:709 +msgid "Minor thirteenth" msgstr "" -#: js/activity.js:1184 -msgid "Catching mice" +#: js/utils/musicutils.js:709 +msgid "Augmented fifth, plus an octave" msgstr "" -#: js/activity.js:1185 -msgid "Cleaning the instruments" +#: js/utils/musicutils.js:710 +msgid "Major thirteenth" msgstr "" -#: js/activity.js:1186 -msgid "Testing key pieces" +#: js/utils/musicutils.js:710 +msgid "Diminished seventh, plus an octave" msgstr "" -#: js/activity.js:1187 -msgid "Sight-reading" +#: js/utils/musicutils.js:838 +#.TRANS: ordinal number. Please keep exactly one space between each number. +msgid "1st 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th" msgstr "" -#: js/activity.js:1188 -msgid "Combining math and music" +#: js/utils/musicutils.js:1008 +#: js/utils/musicutils.js:1191 +#: js/utils/musicutils.js:1325 +#.TRANS: augmented is a music term related to intervals +msgid "augmented" msgstr "" -#: js/activity.js:1189 -msgid "Generating more blocks" +#: js/utils/musicutils.js:1010 +#: js/utils/musicutils.js:1192 +#: js/utils/musicutils.js:1324 +#.TRANS: diminished is a music term related to intervals and mode +msgid "diminished" msgstr "" -#: js/activity.js:1190 -msgid "Do Re Mi Fa Sol La Ti Do" +#: js/utils/musicutils.js:1016 +#: js/utils/musicutils.js:1322 +#: js/blocks/IntervalsBlocks.js:649 +#: js/turtleactions/IntervalsActions.js:120 +#: js/turtleactions/IntervalsActions.js:124 +#.TRANS: perfect is a music term related to intervals +msgid "perfect" msgstr "" -#: js/activity.js:1191 -msgid "Tuning string instruments" +#: js/utils/musicutils.js:1018 +#.TRANS: twelve semi-tone scale for music +msgid "chromatic" msgstr "" -#: js/activity.js:1192 -msgid "Pressing random keys" +#: js/utils/musicutils.js:1019 +msgid "algerian" msgstr "" -#: js/activity.js:1351 -msgid "plugins will be removed upon restart." +#: js/utils/musicutils.js:1020 +msgid "spanish" msgstr "" -#: js/activity.js:1360 -msgid "show Cartesian" +#: js/utils/musicutils.js:1022 +#.TRANS: modal scale in music +msgid "octatonic" msgstr "" -#: js/activity.js:1842 -msgid "output tools" +#: js/utils/musicutils.js:1024 +#.TRANS: harmonic major scale in music +msgid "harmonic major" msgstr "" -#: js/activity.js:1845 -msgid "custom note" +#: js/utils/musicutils.js:1026 +#.TRANS: natural minor scales in music +msgid "natural minor" msgstr "" -#: js/activity.js:1848 -msgid "accidental name" +#: js/utils/musicutils.js:1028 +#.TRANS: harmonic minor scale in music +msgid "harmonic minor" msgstr "" -#: js/activity.js:1851 -#: js/PitchBlocks.js:855 -msgid "east indian solfege" +#: js/utils/musicutils.js:1030 +#.TRANS: melodic minor scale in music +msgid "melodic minor" msgstr "" -#: js/activity.js:1854 -#: js/PitchBlocks.js:869 -msgid "note name" +#: js/utils/musicutils.js:1034 +#.TRANS: modal scale for music +msgid "dorian" msgstr "" -#: js/activity.js:1857 -#: js/IntervalsBlocks.js:94 -msgid "temperament name" +#: js/utils/musicutils.js:1036 +#.TRANS: modal scale for music +msgid "phrygian" msgstr "" -#: js/activity.js:1863 -msgid "chord name" +#: js/utils/musicutils.js:1038 +#.TRANS: modal scale for music +msgid "lydian" msgstr "" -#: js/activity.js:1869 -msgid "filter type" +#: js/utils/musicutils.js:1040 +#.TRANS: modal scale for music +msgid "mixolydian" msgstr "" -#: js/activity.js:1872 -msgid "oscillator type" +#: js/utils/musicutils.js:1044 +#.TRANS: modal scale for music +msgid "locrian" msgstr "" -#: js/activity.js:1878 -#: js/DrumBlocks.js:32 -msgid "noise name" +#: js/utils/musicutils.js:1046 +#.TRANS: minor jazz scale for music +msgid "jazz minor" msgstr "" -#: js/activity.js:1881 -#: js/DrumBlocks.js:75 -msgid "drum name" +#: js/utils/musicutils.js:1048 +#.TRANS: bebop scale for music +msgid "bebop" msgstr "" -#: js/activity.js:1884 -#: js/DrumBlocks.js:119 -msgid "effects name" +#: js/utils/musicutils.js:1049 +msgid "arabic" msgstr "" -#: js/activity.js:1887 -msgid "wrap mode" +#: js/utils/musicutils.js:1050 +msgid "byzantine" msgstr "" -#: js/activity.js:1890 -msgid "load file" +#: js/utils/musicutils.js:1052 +#.TRANS: musical scale for music by Verdi +msgid "enigmatic" msgstr "" -#: js/activity.js:2056 -msgid "This block is deprecated." +#: js/utils/musicutils.js:1053 +msgid "ethiopian" msgstr "" -#: js/activity.js:2058 -msgid "Block cannot be found." +#: js/utils/musicutils.js:1055 +#.TRANS: Ethiopic scale for music +msgid "geez" msgstr "" -#: js/activity.js:2266 -msgid "Saving block artwork" +#: js/utils/musicutils.js:1056 +msgid "hindu" msgstr "" -#: js/activity.js:2277 -msgid "Erase" +#: js/utils/musicutils.js:1057 +msgid "hungarian" msgstr "" -#: js/activity.js:2301 -#: js/activity.js:2323 -msgid "Paste" -msgstr "Apetaho" +#: js/utils/musicutils.js:1059 +#.TRANS: minor Romanian scale for music +msgid "romanian minor" +msgstr "" -#: js/activity.js:2305 -msgid "Save block help" +#: js/utils/musicutils.js:1060 +msgid "spanish gypsy" msgstr "" -#: js/activity.js:2390 -msgid "Jumping to the bottom of the page." +#: js/utils/musicutils.js:1062 +#.TRANS: musical scale for Mid-Eastern music +msgid "maqam" msgstr "" -#: js/activity.js:2396 -msgid "Scrolling up." +#: js/utils/musicutils.js:1064 +#.TRANS: minor blues scale for music +msgid "minor blues" msgstr "" -#: js/activity.js:2401 -msgid "Scrolling down." +#: js/utils/musicutils.js:1066 +#.TRANS: major blues scale for music +msgid "major blues" msgstr "" -#: js/activity.js:2406 -msgid "Extracting block" +#: js/utils/musicutils.js:1067 +msgid "whole tone" msgstr "" -#: js/activity.js:2414 -msgid "Moving block up." +#: js/utils/musicutils.js:1069 +#.TRANS: pentatonic is a general term that means "five note scale". This scale is typically known as "minor pentatonic" +msgid "minor pentatonic" msgstr "" -#: js/activity.js:2435 -msgid "Moving block down." +#: js/utils/musicutils.js:1071 +#.TRANS: pentatonic is a general term that means "five note scale". This scale is typically known as "major pentatonic" +msgid "major pentatonic" msgstr "" -#: js/activity.js:2456 -msgid "Moving block left." +#: js/utils/musicutils.js:1072 +msgid "chinese" msgstr "" -#: js/activity.js:2473 -msgid "Moving block right." +#: js/utils/musicutils.js:1073 +msgid "egyptian" msgstr "" -#: js/activity.js:2488 -msgid "Jump to home position." +#: js/utils/musicutils.js:1075 +#.TRANS: https://en.wikipedia.org/wiki/Hirajoshi_scale NOTE: There are three different versions of this scale +msgid "hirajoshi" msgstr "" -#: js/activity.js:2515 -msgid "Hide blocks" +#: js/utils/musicutils.js:1076 +msgid "Japan" msgstr "" -#: js/activity.js:3389 -msgid "Click the run button to run the project." +#: js/utils/musicutils.js:1078 +#.TRANS: https://en.wikipedia.org/wiki/In_scale and https://en.wikipedia.org/wiki/Sakura_Sakura +msgid "in" msgstr "" -#: js/activity.js:3456 -#: js/SaveInterface.js:131 -#: js/SaveInterface.js:204 -#: js/SaveInterface.js:262 -#: js/SaveInterface.js:389 -#: js/SaveInterface.js:417 -#: js/ProjectStorage.js:27 -#: js/GlobalPlanet.js:467 -#: js/GlobalPlanet.js:469 -#: js/GlobalPlanet.js:495 -#.TRANS: default project title when saving as Lilypond -msgid "My Project" +#: js/utils/musicutils.js:1080 +#.TRANS: https://en.wikipedia.org/wiki/Miny%C5%8D_scale +msgid "minyo" msgstr "" -#: js/activity.js:4261 -msgid "Show/hide block" +#: js/utils/musicutils.js:1082 +#.TRANS: Italian mathematician +msgid "fibonacci" msgstr "" -#: js/activity.js:4263 -msgid "Expand/collapse blocks" +#: js/utils/musicutils.js:1083 +#: js/utils/musicutils.js:1134 +#: js/utils/musicutils.js:1177 +#: js/utils/musicutils.js:1199 +#: js/utils/synthutils.js:134 +#: js/blocks/IntervalsBlocks.js:1124 +#: js/blocks/ToneBlocks.js:946 +#: js/blocks/VolumeBlocks.js:411 +#: js/blocks/WidgetBlocks.js:399 +#: js/blocks/WidgetBlocks.js:404 +#: js/turtleactions/VolumeActions.js:218 +#: js/widgets/modewidget.js:919 +#.TRANS: customize voice +msgid "custom" msgstr "" -#: js/activity.js:4381 -msgid "Could not parse JSON input." +#: js/utils/musicutils.js:1085 +#: js/utils/musicutils.js:1531 +#: js/blocks/WidgetBlocks.js:176 +#.TRANS: highpass filter +msgid "highpass" msgstr "" -#: js/activity.js:4684 -#: js/activity.js:4771 -#: js/activity.js:4821 -msgid "Cannot load project from the file. Please check the file type." +#: js/utils/musicutils.js:1087 +#: js/utils/musicutils.js:1532 +#.TRANS: lowpass filter +msgid "lowpass" msgstr "" -#: js/activity.js:5051 -msgid "Invalid parameters" +#: js/utils/musicutils.js:1089 +#: js/utils/musicutils.js:1533 +#.TRANS: bandpass filter +msgid "bandpass" msgstr "" -#: js/turtle-singer.js:1334 -#.TRANS: partials are weighted components in a harmonic series -msgid "You must have at least one Partial block inside of a Weighted-partial block" +#: js/utils/musicutils.js:1091 +#: js/utils/musicutils.js:1534 +#.TRANS: high-shelf filter +msgid "highshelf" msgstr "" -#: js/turtle-singer.js:2048 -msgid "synth cannot play chords." +#: js/utils/musicutils.js:1093 +#: js/utils/musicutils.js:1535 +#.TRANS: low-shelf filter +msgid "lowshelf" msgstr "" -#: js/lilypond.js:614 -msgid "brown rat" +#: js/utils/musicutils.js:1095 +#: js/utils/musicutils.js:1536 +#.TRANS: notch-shelf filter +msgid "notch" msgstr "" -#: js/lilypond.js:615 -msgid "mole" +#: js/utils/musicutils.js:1097 +#: js/utils/musicutils.js:1537 +#.TRANS: all-pass filter +msgid "allpass" msgstr "" -#: js/lilypond.js:616 -msgid "chipmunk" +#: js/utils/musicutils.js:1099 +#: js/utils/musicutils.js:1538 +#.TRANS: peaking filter +msgid "peaking" msgstr "" -#: js/lilypond.js:617 -msgid "red squirrel" +#: js/utils/musicutils.js:1100 +#: js/utils/musicutils.js:1546 +#: js/utils/synthutils.js:126 +#: js/blocks/PitchBlocks.js:85 +#.TRANS: sine wave +msgid "sine" msgstr "" -#: js/lilypond.js:618 -msgid "guinea pig" +#: js/utils/musicutils.js:1101 +#: js/utils/musicutils.js:1547 +#: js/utils/synthutils.js:128 +#: js/blocks/PitchBlocks.js:39 +#.TRANS: square wave +msgid "square" msgstr "" -#: js/lilypond.js:619 -msgid "capybara" +#: js/utils/musicutils.js:1102 +#: js/utils/musicutils.js:1548 +#: js/utils/synthutils.js:132 +#: js/blocks/PitchBlocks.js:62 +#: js/blocks/ToneBlocks.js:39 +#.TRANS: triangle wave +msgid "triangle" msgstr "" -#: js/lilypond.js:620 -msgid "coypu" +#: js/utils/musicutils.js:1103 +#: js/utils/musicutils.js:1549 +#: js/utils/synthutils.js:130 +#: js/blocks/PitchBlocks.js:108 +#.TRANS: sawtooth wave +msgid "sawtooth" msgstr "" -#: js/lilypond.js:621 -msgid "black rat" +#: js/utils/musicutils.js:1105 +#: js/utils/musicutils.js:1312 +#: js/blocks/PitchBlocks.js:931 +#: js/blocks/PitchBlocks.js:937 +#: js/turtleactions/PitchActions.js:469 +#.TRANS: even numbers +#.TRANS: invert based on even or odd number or musical scale +msgid "even" msgstr "" -#: js/lilypond.js:622 -msgid "grey squirrel" +#: js/utils/musicutils.js:1107 +#: js/utils/musicutils.js:1313 +#: js/blocks/PitchBlocks.js:937 +#: js/turtleactions/PitchActions.js:471 +#.TRANS: odd numbers +msgid "odd" msgstr "" -#: js/lilypond.js:623 -msgid "flying squirrel" +#: js/utils/musicutils.js:1108 +#: js/utils/musicutils.js:1314 +#: js/blocks/PitchBlocks.js:937 +#: js/turtleactions/PitchActions.js:473 +msgid "scalar" msgstr "" -#: js/lilypond.js:624 -msgid "bat" +#: js/utils/musicutils.js:1109 +#: js/utils/synthutils.js:72 +#: js/blocks/VolumeBlocks.js:47 +#.TRANS: musical instrument +msgid "piano" msgstr "" -#: js/lilypond.js:757 -#: js/lilypond.js:921 -#: js/lilypond.js:959 -#: js/ActionBlocks.js:1256 -#: js/ExtrasBlocks.js:553 -msgid "start drum" +#: js/utils/musicutils.js:1110 +#: js/utils/synthutils.js:74 +#.TRANS: musical instrument +msgid "violin" msgstr "" -#: js/SaveInterface.js:59 -#: js/SaveInterface.js:61 -#: js/SaveInterface.js:93 -msgid "Music Blocks Project" +#: js/utils/musicutils.js:1111 +#: js/utils/synthutils.js:76 +#.TRANS: viola musical instrument +msgid "viola" msgstr "" -#: js/SaveInterface.js:63 -msgid "This project was created in Music Blocks" +#: js/utils/musicutils.js:1112 +#: js/utils/synthutils.js:114 +#.TRANS: xylophone musical instrument +msgid "xylophone" msgstr "" -#: js/SaveInterface.js:67 -msgid "Music Blocks is a Free/Libre Software application." +#: js/utils/musicutils.js:1113 +#: js/utils/synthutils.js:136 +#.TRANS: vibraphone musical instrument +msgid "vibraphone" msgstr "" -#: js/SaveInterface.js:69 -msgid "The source code can be accessed at" +#: js/utils/musicutils.js:1114 +#: js/utils/synthutils.js:78 +#.TRANS: musical instrument +msgid "cello" msgstr "" -#: js/SaveInterface.js:72 -msgid "For more information, please consult the" +#: js/utils/musicutils.js:1116 +#: js/utils/synthutils.js:82 +#.TRANS: viola musical instrument +msgid "double bass" msgstr "" -#: js/SaveInterface.js:83 -msgid "Alternatively, open the file in Music Blocks using the Load project button." +#: js/utils/musicutils.js:1117 +#: js/utils/synthutils.js:84 +#: js/widgets/rhythmruler.js:2511 +#.TRANS: musical instrument +msgid "guitar" msgstr "" -#: js/SaveInterface.js:85 -msgid "Project Code" +#: js/utils/musicutils.js:1118 +#: js/utils/synthutils.js:86 +#.TRANS: musical instrument +msgid "acoustic guitar" msgstr "" -#: js/SaveInterface.js:87 -msgid "This code stores data about the blocks in a project." +#: js/utils/musicutils.js:1119 +#: js/utils/synthutils.js:88 +#.TRANS: musical instrument +msgid "flute" msgstr "" -#: js/SaveInterface.js:89 -msgid "Show" +#: js/utils/musicutils.js:1120 +#: js/utils/synthutils.js:90 +#.TRANS: musical instrument +msgid "clarinet" msgstr "" -#: js/SaveInterface.js:91 -msgid "Hide" +#: js/utils/musicutils.js:1121 +#: js/utils/synthutils.js:92 +#.TRANS: musical instrument +msgid "saxophone" msgstr "" -#: js/SaveInterface.js:197 -#: js/SaveInterface.js:58 -msgid "No description provided" +#: js/utils/musicutils.js:1122 +#: js/utils/synthutils.js:94 +#.TRANS: musical instrument +msgid "tuba" msgstr "" -#: js/SaveInterface.js:332 -msgid "Your recording is in progress." +#: js/utils/musicutils.js:1123 +#: js/utils/synthutils.js:96 +#.TRANS: musical instrument +msgid "trumpet" msgstr "" -#: js/SaveInterface.js:401 -#.TRANS: File name prompt for save as Lilypond -msgid "File name" +#: js/utils/musicutils.js:1124 +#: js/utils/synthutils.js:98 +#.TRANS: musical instrument +msgid "oboe" msgstr "" -#: js/SaveInterface.js:403 -#: js/StringHelper.js:39 -#.TRANS: Project title prompt for save as Lilypond -msgid "Project title" +#: js/utils/musicutils.js:1125 +#: js/utils/synthutils.js:100 +#.TRANS: musical instrument +msgid "trombone" msgstr "" -#: js/SaveInterface.js:405 -#.TRANS: Project title prompt for save as Lilypond -msgid "Project author" +#: js/utils/musicutils.js:1126 +#: js/utils/synthutils.js:116 +#.TRANS: polytone synthesizer +msgid "electronic synth" msgstr "" -#: js/SaveInterface.js:407 -#.TRANS: MIDI prompt for save as Lilypond -msgid "Include MIDI output?" +#: js/utils/musicutils.js:1127 +#: js/utils/synthutils.js:118 +#.TRANS: simple monotone synthesizer +msgid "simple 1" msgstr "" -#: js/SaveInterface.js:409 -#.TRANS: Guitar prompt for save as Lilypond -msgid "Include guitar tablature output?" +#: js/utils/musicutils.js:1128 +msgid "simple 2" msgstr "" -#: js/SaveInterface.js:411 -#.TRANS: Lilypond is a scripting language for generating sheet music -msgid "Save as Lilypond" +#: js/utils/musicutils.js:1129 +msgid "simple 3" msgstr "" -#: js/SaveInterface.js:426 -#: js/EnsembleBlocks.js:75 -#: js/EnsembleBlocks.js:154 -#: js/EnsembleBlocks.js:216 -#: js/EnsembleBlocks.js:302 -#: js/EnsembleBlocks.js:348 -#: js/EnsembleBlocks.js:389 -#: js/EnsembleBlocks.js:441 -#: js/EnsembleBlocks.js:490 -#: js/EnsembleBlocks.js:536 -#: js/EnsembleBlocks.js:583 -#: js/EnsembleBlocks.js:637 -#: js/EnsembleBlocks.js:753 -#: js/EnsembleBlocks.js:840 -#: js/EnsembleBlocks.js:899 -#: js/EnsembleBlocks.js:942 -#: js/EnsembleBlocks.js:1212 -#: js/EnsembleBlocks.js:1280 -#.TRANS: default project author when saving as Lilypond -msgid "Mr. Mouse" +#: js/utils/musicutils.js:1130 +msgid "simple 4" msgstr "" -#: js/SaveInterface.js:573 -msgid "The Lilypond code is copied to clipboard. You can paste it here: " +#: js/utils/musicutils.js:1131 +#: js/utils/synthutils.js:58 +#: js/blocks/DrumBlocks.js:191 +#.TRANS: white noise synthesizer +msgid "white noise" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:50 -#: js/RhythmBlockPaletteBlocks.js:232 -#.TRANS: rhythm block -#.TRANS: translate "rhythm1" as rhythm -msgid "rhythm1" +#: js/utils/musicutils.js:1132 +#: js/utils/synthutils.js:60 +#.TRANS: brown noise synthesizer +msgid "brown noise" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:70 -#: js/RhythmBlockPaletteBlocks.js:251 -#: js/RhythmBlockPaletteBlocks.js:484 -#: js/RhythmBlockPaletteBlocks.js:553 -#: js/RhythmBlockPaletteBlocks.js:874 -msgid "number of notes" +#: js/utils/musicutils.js:1133 +#: js/utils/synthutils.js:62 +#.TRANS: pink noise synthesizer +msgid "pink noise" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:126 -msgid "polyphonic rhythm" +#: js/utils/musicutils.js:1135 +#: js/utils/synthutils.js:148 +#: js/widgets/rhythmruler.js:2057 +#: js/widgets/rhythmruler.js:2319 +#.TRANS: musical instrument +msgid "snare drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:218 -msgid "The Rhythm block is used to generate rhythm patterns." +#: js/utils/musicutils.js:1136 +#: js/utils/synthutils.js:150 +#.TRANS: musical instrument +msgid "kick drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:279 -msgid "1/64 note" +#: js/utils/musicutils.js:1137 +#: js/utils/synthutils.js:152 +#.TRANS: musical instrument +msgid "tom tom" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:303 -msgid "1/32 note" +#: js/utils/musicutils.js:1138 +#: js/utils/synthutils.js:154 +#.TRANS: musical instrument +msgid "floor tom" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:331 -msgid "1/16 note" +#: js/utils/musicutils.js:1139 +#: js/utils/synthutils.js:156 +#.TRANS: musical instrument +msgid "bass drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:359 -msgid "eighth note" +#: js/utils/musicutils.js:1140 +#: js/utils/synthutils.js:158 +#.TRANS: a drum made from an inverted cup +msgid "cup drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:387 -msgid "quarter note" +#: js/utils/musicutils.js:1141 +#: js/utils/synthutils.js:160 +#.TRANS: musical instrument +msgid "darbuka drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:415 -msgid "half note" +#: js/utils/musicutils.js:1142 +#: js/utils/synthutils.js:164 +#.TRANS: musical instrument +msgid "hi hat" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:443 -msgid "whole note" +#: js/utils/musicutils.js:1143 +#: js/utils/synthutils.js:166 +#.TRANS: a small metal bell +msgid "ride bell" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:481 -#: js/RhythmBlockPaletteBlocks.js:550 -#: js/RhythmBlockPaletteBlocks.js:601 -#.TRANS: A tuplet is a note value divided into irregular time values. -msgid "tuplet" +#: js/utils/musicutils.js:1144 +#: js/utils/synthutils.js:168 +#.TRANS: musical instrument +msgid "cow bell" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:767 -msgid "septuplet" +#: js/utils/musicutils.js:1145 +msgid "japanese drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:795 -msgid "quintuplet" +#: js/utils/musicutils.js:1146 +#: js/utils/synthutils.js:174 +#.TRANS: musical instrument +msgid "japanese bell" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:823 -msgid "triplet" +#: js/utils/musicutils.js:1147 +#: js/utils/synthutils.js:170 +#.TRANS: musical instrument +msgid "triangle bell" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:850 -msgid "simple tuplet" +#: js/utils/musicutils.js:1148 +#: js/utils/synthutils.js:172 +#.TRANS: musical instrument +msgid "finger cymbals" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:860 -msgid "Tuplets are a collection of notes that get scaled to a specific duration." +#: js/utils/musicutils.js:1149 +#: js/utils/synthutils.js:176 +#.TRANS: a musically tuned set of bells +msgid "chime" msgstr "" -#: js/WidgetBlocks.js:71 -#.TRANS: sound envelope (ADSR) -msgid "envelope" +#: js/utils/musicutils.js:1150 +#: js/utils/synthutils.js:178 +#.TRANS: a musical instrument +msgid "gong" msgstr "" -#: js/WidgetBlocks.js:79 -#.TRANS: Attack time is the time taken for initial run-up of level from nil to peak, beginning when the key is first pressed. -msgid "attack" +#: js/utils/musicutils.js:1151 +#: js/utils/synthutils.js:180 +#.TRANS: sound effect +msgid "clang" msgstr "" -#: js/WidgetBlocks.js:81 -#.TRANS: Decay time is the time taken for the subsequent run down from the attack level to the designated sustain level. -msgid "decay" +#: js/utils/musicutils.js:1152 +#: js/utils/synthutils.js:182 +#.TRANS: sound effect +msgid "crash" msgstr "" -#: js/WidgetBlocks.js:83 -#.TRANS: Sustain level is the level during the main sequence of the sound's duration, until the key is released. -msgid "sustain" +#: js/utils/musicutils.js:1153 +#: js/utils/synthutils.js:184 +#.TRANS: sound effect +msgid "bottle" msgstr "" -#: js/WidgetBlocks.js:85 -#.TRANS: Release time is the time taken for the level to decay from the sustain level to zero after the key is released. -msgid "release" +#: js/utils/musicutils.js:1154 +#: js/utils/synthutils.js:186 +#.TRANS: sound effect +msgid "clap" msgstr "" -#: js/WidgetBlocks.js:96 -msgid "Attack value should be from 0 to 100." +#: js/utils/musicutils.js:1155 +#: js/utils/synthutils.js:188 +#.TRANS: sound effect +msgid "slap" msgstr "" -#: js/WidgetBlocks.js:99 -msgid "Decay value should be from 0 to 100." +#: js/utils/musicutils.js:1156 +#: js/utils/synthutils.js:190 +#.TRANS: sound effect +msgid "splash" msgstr "" -#: js/WidgetBlocks.js:102 -msgid "Sustain value should be from 0 to 100." +#: js/utils/musicutils.js:1157 +#: js/utils/synthutils.js:192 +#.TRANS: sound effect +msgid "bubbles" msgstr "" -#: js/WidgetBlocks.js:105 -msgid "Release value should be from 0-100." +#: js/utils/musicutils.js:1158 +#: js/utils/synthutils.js:194 +#.TRANS: sound effect +msgid "raindrop" msgstr "" -#: js/WidgetBlocks.js:121 -msgid "You are adding multiple envelope blocks." +#: js/utils/musicutils.js:1159 +#: js/utils/synthutils.js:196 +#.TRANS: animal sound effect +msgid "cat" msgstr "" -#: js/WidgetBlocks.js:144 -#.TRANS: a filter removes some unwanted components from a signal -msgid "filter" +#: js/utils/musicutils.js:1160 +#: js/utils/synthutils.js:198 +#.TRANS: animal sound effect +msgid "cricket" msgstr "" -#: js/WidgetBlocks.js:149 -#: js/musicutils.js:706 -#: js/musicutils.js:1105 -#.TRANS: highpass filter -msgid "highpass" +#: js/utils/musicutils.js:1161 +#: js/utils/synthutils.js:200 +#.TRANS: animal sound effect +msgid "dog" msgstr "" -#: js/WidgetBlocks.js:152 -#: js/ToneBlocks.js:42 -#: js/timbre.js:1558 -#: js/timbre.js:1808 -#.TRANS: type of filter, e.g., lowpass, highpass, etc. -#.TRANS: there are different types (sine, triangle, square...) of oscillators. -msgid "type" +#: js/utils/musicutils.js:1163 +#: js/utils/synthutils.js:102 +#.TRANS: musical instrument +msgid "banjo" msgstr "" -#: js/WidgetBlocks.js:154 -#: js/timbre.js:1818 -#.TRANS: rolloff is the steepness of a change in frequency. -msgid "rolloff" +#: js/utils/musicutils.js:1164 +#: js/utils/synthutils.js:104 +#.TRANS: musical instrument +msgid "koto" msgstr "" -#: js/WidgetBlocks.js:155 -#: js/MediaBlocks.js:692 -#: js/temperament.js:382 -#: js/temperament.js:417 -#: js/temperament.js:477 -#: js/temperament.js:485 -#: js/temperament.js:1348 -#: js/timbre.js:1842 -msgid "frequency" +#: js/utils/musicutils.js:1165 +#: js/utils/synthutils.js:106 +#.TRANS: musical instrument +msgid "dulcimer" msgstr "" -#: js/WidgetBlocks.js:179 -#.TRANS: rolloff is the steepness of a change in frequency. -msgid "Rolloff value should be either -12, -24, -48, or -96 decibels/octave." +#: js/utils/musicutils.js:1166 +#: js/utils/synthutils.js:108 +#.TRANS: musical instrument +msgid "electric guitar" msgstr "" -#: js/WidgetBlocks.js:211 -msgid "The Temperament tool is used to define custom tuning." +#: js/utils/musicutils.js:1167 +#: js/utils/synthutils.js:110 +#.TRANS: musical instrument +msgid "bassoon" msgstr "" -#: js/WidgetBlocks.js:277 -#: js/sampler.js:329 -msgid "Upload a sample and adjust its pitch center." +#: js/utils/musicutils.js:1168 +#: js/utils/synthutils.js:112 +#.TRANS: musical instrument +msgid "celeste" msgstr "" -#: js/WidgetBlocks.js:284 -#.TRANS: the speed at music is should be played. -msgid "sampler" +#: js/utils/musicutils.js:1170 +#: js/widgets/temperament.js:787 +#.TRANS: musical temperament +msgid "equal" msgstr "" -#: js/WidgetBlocks.js:329 -#: js/WidgetBlocks.js:334 -#: js/IntervalsBlocks.js:928 -#: js/VolumeBlocks.js:411 -#: js/ToneBlocks.js:946 -#: js/VolumeActions.js:218 -#: js/musicutils.js:704 -#: js/musicutils.js:755 -#: js/musicutils.js:798 -#: js/musicutils.js:820 -#: js/musicutils.js:1136 -#: js/synthutils.js:118 -#: js/modewidget.js:919 -#.TRANS: customize voice -msgid "custom" +#: js/utils/musicutils.js:1172 +#.TRANS: musical temperament +msgid "Pythagorean" msgstr "" -#: js/WidgetBlocks.js:432 -msgid "The Meter block opens a tool to select strong beats for the meter." +#: js/utils/musicutils.js:1174 +#.TRANS: musical temperament +msgid "just intonation" msgstr "" -#: js/WidgetBlocks.js:473 -msgid "The oscilloscope block opens a tool to visualize waveforms." +#: js/utils/musicutils.js:1176 +#.TRANS: musical temperament +msgid "meantone" msgstr "" -#: js/WidgetBlocks.js:478 -msgid "oscilloscope" +#: js/utils/musicutils.js:1193 +msgid "major 7th" msgstr "" -#: js/WidgetBlocks.js:530 -msgid "The Custom mode block opens a tool to explore musical mode (the spacing of the notes in a scale)." +#: js/utils/musicutils.js:1194 +msgid "minor 7th" msgstr "" -#: js/WidgetBlocks.js:536 -#.TRANS: musical mode is the pattern of half-steps in an octave, e.g., Major or Minor modes -msgid "custom mode" +#: js/utils/musicutils.js:1195 +msgid "dominant 7th" msgstr "" -#: js/WidgetBlocks.js:570 -msgid "The Tempo block opens a metronome to visualize the beat." +#: js/utils/musicutils.js:1196 +msgid "minor-major 7th" msgstr "" -#: js/WidgetBlocks.js:617 -msgid "The Arpeggio Widget is used to compose chord sequences." +#: js/utils/musicutils.js:1197 +msgid "fully-diminished 7th" msgstr "" -#: js/WidgetBlocks.js:623 -#: js/IntervalsBlocks.js:683 -msgid "arpeggio" +#: js/utils/musicutils.js:1198 +msgid "half-diminished 7th" msgstr "" -#: js/WidgetBlocks.js:677 -msgid "The Pitch drum matrix is used to map pitches to drum sounds." +#: js/utils/musicutils.js:1557 +#: js/utils/musicutils.js:1569 +msgid "Equal (12EDO)" msgstr "" -#: js/WidgetBlocks.js:682 -#.TRANS: makes a mapping between pitches and drum sounds -msgid "pitch-drum mapper" +#: js/utils/musicutils.js:1558 +#: js/utils/musicutils.js:1570 +msgid "5-limit Just Intonation" msgstr "" -#: js/WidgetBlocks.js:724 -msgid "You must have at least one pitch block and one drum block in the matrix." +#: js/utils/musicutils.js:1559 +#: js/utils/musicutils.js:1571 +msgid "Pythagorean (3-limit JI)" msgstr "" -#: js/WidgetBlocks.js:746 -msgid "The Pitch slider tool to is used to generate pitches at selected frequencies." +#: js/utils/musicutils.js:1560 +#: js/utils/musicutils.js:1561 +#: js/utils/musicutils.js:1572 +#: js/utils/musicutils.js:1573 +msgid "Meantone" msgstr "" -#: js/WidgetBlocks.js:751 -#.TRANS: widget to generate pitches using a slider -msgid "pitch slider" +#: js/utils/musicutils.js:1574 +msgid "Custom" msgstr "" -#: js/WidgetBlocks.js:788 -msgid "chromatic keyboard" +#: js/utils/musicutils.js:5387 +#: js/utils/musicutils.js:5430 +msgid "current" msgstr "" -#: js/WidgetBlocks.js:815 -#: js/WidgetBlocks.js:874 -#.TRANS: widget to generate pitches using a slider -msgid "music keyboard" +#: js/utils/musicutils.js:5390 +#: js/utils/musicutils.js:5421 +msgid "next" msgstr "" -#: js/WidgetBlocks.js:859 -#: js/WidgetBlocks.js:866 -msgid "The Music keyboard block opens a piano keyboard that can be used to create notes." +#: js/utils/musicutils.js:5393 +#: js/utils/musicutils.js:5426 +msgid "previous" msgstr "" -#: js/WidgetBlocks.js:910 -msgid "The Pitch staircase tool to is used to generate pitches from a given ratio." +#: js/utils/synthutils.js:120 +#.TRANS: simple monotone synthesizer +msgid "simple-2" msgstr "" -#: js/WidgetBlocks.js:917 -#.TRANS: generate a progressive sequence of pitches -msgid "pitch staircase" +#: js/utils/synthutils.js:122 +#.TRANS: simple monotone synthesizer +msgid "simple-3" msgstr "" -#: js/WidgetBlocks.js:982 -msgid "The Rhythm Maker block opens a tool to create drum machines." +#: js/utils/synthutils.js:124 +#.TRANS: simple monotone synthesizer +msgid "simple-4" msgstr "" -#: js/WidgetBlocks.js:1036 -msgid "G major scale" +#: js/utils/synthutils.js:162 +#.TRANS: musical instrument +msgid "taiko" msgstr "" -#: js/WidgetBlocks.js:1064 -msgid "C major scale" +#: js/blocks/ActionBlocks.js:58 +msgid "The Return block will return a value from an action." msgstr "" -#: js/WidgetBlocks.js:1097 -msgid "The Phrase Maker block opens a tool to create musical phrases." +#: js/blocks/ActionBlocks.js:75 +msgid "return" msgstr "" -#: js/WidgetBlocks.js:1104 -#.TRANS: assigns pitch to a sequence of beats to generate a melody -msgid "phrase maker" +#: js/blocks/ActionBlocks.js:128 +msgid "The Return to URL block will return a value to a webpage." msgstr "" -#: js/WidgetBlocks.js:1168 -msgid "You must have at least one pitch block and one rhythm block in the matrix." +#: js/blocks/ActionBlocks.js:145 +msgid "return to URL" msgstr "" -#: js/WidgetBlocks.js:1220 -msgid "The Status block opens a tool for inspecting the status of Music Blocks as it is running." +#: js/blocks/ActionBlocks.js:233 +#: js/blocks/ActionBlocks.js:290 +#: js/blocks/ActionBlocks.js:501 +#: js/blocks/ActionBlocks.js:688 +msgid "The Calculate block returns a value calculated by an action." msgstr "" -#: js/IntervalsBlocks.js:45 -msgid "set temperament" +#: js/blocks/ActionBlocks.js:251 +#: js/blocks/ActionBlocks.js:517 +#: js/blocks/ActionBlocks.js:707 +msgid "calculate" msgstr "" -#: js/IntervalsBlocks.js:63 -#: js/MediaBlocks.js:746 -#: js/PitchBlocks.js:657 -#: js/PitchBlocks.js:933 -#: js/PitchBlocks.js:972 -#: js/PitchBlocks.js:1005 -#: js/PitchBlocks.js:1166 -#: js/PitchBlocks.js:1679 -#: js/PitchBlocks.js:1720 -#: js/PitchBlocks.js:1827 -#: js/ToneBlocks.js:1025 -#.TRANS: adjusts the shift up or down by one octave (twelve half-steps in the interval between two notes, one having twice or half the frequency in Hz of the other.) -msgid "octave" +#: js/blocks/ActionBlocks.js:376 +#: js/blocks/ActionBlocks.js:593 +#: js/blocks/ActionBlocks.js:942 +#: js/blocks/ActionBlocks.js:1389 +#.TRANS: do is the do something or take an action. +msgid "The Do block is used to initiate an action." msgstr "" -#: js/IntervalsBlocks.js:99 -msgid "The Temperament name block is used to select a tuning method." +#: js/blocks/ActionBlocks.js:390 +#: js/blocks/ActionBlocks.js:610 +#: js/blocks/ActionBlocks.js:959 +#: js/blocks/ActionBlocks.js:1048 +#: js/blocks/MeterBlocks.js:769 +msgid "do1" msgstr "" -#: js/IntervalsBlocks.js:161 -msgid "doubly" +#: js/blocks/ActionBlocks.js:390 +#: js/blocks/ActionBlocks.js:610 +#: js/blocks/ActionBlocks.js:959 +#: js/blocks/ActionBlocks.js:1048 +#: js/blocks/FlowBlocks.js:742 +#: js/blocks/FlowBlocks.js:822 +#: js/blocks/MeterBlocks.js:769 +msgid "do" msgstr "" -#: js/IntervalsBlocks.js:166 -msgid "The Doubly block will double the size of an interval." +#: js/blocks/ActionBlocks.js:791 +#: js/blocks/ActionBlocks.js:865 +msgid "The Arg block contains the value of an argument passed to an action." msgstr "" -#: js/IntervalsBlocks.js:262 -msgid "interval number" +#: js/blocks/ActionBlocks.js:806 +#: js/blocks/ActionBlocks.js:878 +msgid "arg" msgstr "" -#: js/IntervalsBlocks.js:330 -#.TRANS: measure the distance between two pitches in semi-tones -msgid "semi-tone interval measure" +#: js/blocks/ActionBlocks.js:836 +#: js/blocks/ActionBlocks.js:900 +#: js/blocks/ActionBlocks.js:908 +msgid "Invalid argument" msgstr "" -#: js/IntervalsBlocks.js:397 -#: js/IntervalsBlocks.js:513 -msgid "You must use two pitch blocks when measuring an interval." +#: js/blocks/ActionBlocks.js:944 +msgid "In the example, it is used with the One of block to choose a random phase." msgstr "" -#: js/IntervalsBlocks.js:439 -msgid "The Scalar interval block measures the distance between two notes in the current key and mode." +#: js/blocks/ActionBlocks.js:1019 +#: js/blocks/ActionBlocks.js:1026 +msgid "The Listen block is used to listen for an event such as a mouse click." msgstr "" -#: js/IntervalsBlocks.js:445 -#.TRANS: measure the distance between two pitches in steps of musical scale -msgid "scalar interval measure" +#: js/blocks/ActionBlocks.js:1028 +msgid "When the event happens, an action is taken." msgstr "" -#: js/IntervalsBlocks.js:592 -#: js/musicutils.js:637 -#: js/musicutils.js:908 -#.TRANS: perfect is a music term related to intervals -msgid "perfect" +#: js/blocks/ActionBlocks.js:1045 +msgid "on" msgstr "" -#: js/IntervalsBlocks.js:621 -msgid "In the figure, we add sol# to sol." +#: js/blocks/ActionBlocks.js:1048 +#: js/blocks/ActionBlocks.js:1049 +#: js/blocks/ActionBlocks.js:1153 +msgid "event" msgstr "" -#: js/IntervalsBlocks.js:627 -#: js/OrnamentBlocks.js:220 -#.TRANS: calculate a relative step between notes based on semi-tones -msgid "semi-tone interval" +#: js/blocks/ActionBlocks.js:1133 +msgid "The Broadcast block is used to trigger an event." msgstr "" -#: js/IntervalsBlocks.js:676 -msgid "The output of the example is: do, mi, sol, sol, ti, mi" +#: js/blocks/ActionBlocks.js:1151 +msgid "broadcast" msgstr "" -#: js/IntervalsBlocks.js:735 -msgid "The Chord block calculates common chords." +#: js/blocks/ActionBlocks.js:1208 +msgid "Each Start block is a separate voice." msgstr "" -#: js/IntervalsBlocks.js:737 -msgid "In the figure, we generate a C-major chord." +#: js/blocks/ActionBlocks.js:1304 +msgid "It is often used for storing a phrase of music that is repeated." msgstr "" -#: js/IntervalsBlocks.js:742 -msgid "chord" +#: js/blocks/ActionBlocks.js:1495 +msgid "define temperament" msgstr "" -#: js/IntervalsBlocks.js:794 -msgid "The Ratio Interval block calculates an interval based on a ratio." +#: js/blocks/BooleanBlocks.js:44 +msgid "The Not block is the logical not operator." msgstr "" -#: js/IntervalsBlocks.js:799 -msgid "ratio interval" +#: js/blocks/BooleanBlocks.js:62 +msgid "not" +msgstr "tsy" + +#: js/blocks/BooleanBlocks.js:134 +msgid "The And block is the logical and operator." msgstr "" -#: js/IntervalsBlocks.js:868 -msgid "In the figure, we add la to sol." +#: js/blocks/BooleanBlocks.js:152 +msgid "and" +msgstr "sy" + +#: js/blocks/BooleanBlocks.js:218 +msgid "The Or block is the logical or operator." msgstr "" -#: js/IntervalsBlocks.js:924 -#.TRANS: define a custom mode -msgid "define mode" +#: js/blocks/BooleanBlocks.js:236 +msgid "or" +msgstr "na" + +#: js/blocks/BooleanBlocks.js:302 +msgid "The XOR block is the logical XOR operator." msgstr "" -#: js/IntervalsBlocks.js:977 -msgid "movable Do" +#: js/blocks/BooleanBlocks.js:320 +msgid "xor" msgstr "" -#: js/IntervalsBlocks.js:1028 -#.TRANS: mode length is the number of notes in the mode, e.g., 7 for major and minor scales; 12 for chromatic scales -msgid "mode length" +#: js/blocks/BooleanBlocks.js:808 +msgid "The Equal block returns True if the two numbers are equal." msgstr "" -#: js/IntervalsBlocks.js:1037 -msgid "The Mode length block is the number of notes in the current scale." +#: js/blocks/BooleanBlocks.js:909 +msgid "The Not-equal-to block returns True if the two numbers are not equal to each other." msgstr "" -#: js/IntervalsBlocks.js:1039 -msgid "Most Western scales have 7 notes." +#: js/blocks/BooleanBlocks.js:1008 +msgid "The Boolean block is used to specify true or false." msgstr "" -#: js/IntervalsBlocks.js:1088 -#.TRANS: the mode in music is 'major', 'minor', etc. -msgid "current mode" +#: js/blocks/BoxesBlocks.js:53 +#: js/blocks/BoxesBlocks.js:59 +msgid "The Add-to block is used to add to the value stored in a box." msgstr "" -#: js/IntervalsBlocks.js:1141 -#.TRANS: the key is a group of pitches with which a music composition is created -msgid "current key" +#: js/blocks/BoxesBlocks.js:61 +msgid "It can also be used with other blocks such as Color and Pen size." msgstr "" -#: js/IntervalsBlocks.js:1193 -#: js/IntervalsBlocks.js:1238 -#.TRANS: set the key and mode, e.g. C Major -msgid "set key" +#: js/blocks/BoxesBlocks.js:73 +msgid "add" msgstr "" -#: js/IntervalsBlocks.js:1247 -#: js/IntervalsBlocks.js:1253 -msgid "The Set key block is used to set the key and mode," +#: js/blocks/BoxesBlocks.js:75 +#: js/widgets/temperament.js:857 +msgid "to" msgstr "" -#: js/IntervalsBlocks.js:1253 -msgid "eg C Major" +#: js/blocks/BoxesBlocks.js:75 +#: js/blocks/BoxesBlocks.js:595 +#: js/blocks/HeapBlocks.js:544 +msgid "value1" msgstr "" -#: js/IntervalsBlocks.js:1266 -#: js/DictBlocks.js:215 -#: js/DictBlocks.js:216 -#: js/DictBlocks.js:289 -#: js/DictBlocks.js:290 -#: js/DictBlocks.js:357 -#: js/DictBlocks.js:430 -#: js/DictBlocks.js:431 -#.TRANS: key, e.g., C in C Major -msgid "key" +#: js/blocks/BoxesBlocks.js:118 +msgid "Block does not support incrementing." msgstr "" -#: js/ActionBlocks.js:58 -msgid "The Return block will return a value from an action." +#: js/blocks/BoxesBlocks.js:152 +msgid "The Add-1-to block adds one to the value stored in a box." msgstr "" -#: js/ActionBlocks.js:75 -msgid "return" +#: js/blocks/BoxesBlocks.js:163 +msgid "add 1 to" msgstr "" -#: js/ActionBlocks.js:128 -msgid "The Return to URL block will return a value to a webpage." +#: js/blocks/BoxesBlocks.js:211 +msgid "The Subtract-1-from block subtracts one from the value stored in a box." msgstr "" -#: js/ActionBlocks.js:145 -msgid "return to URL" +#: js/blocks/BoxesBlocks.js:222 +msgid "subtract 1 from" msgstr "" -#: js/ActionBlocks.js:233 -#: js/ActionBlocks.js:290 -#: js/ActionBlocks.js:501 -#: js/ActionBlocks.js:688 -msgid "The Calculate block returns a value calculated by an action." +#: js/blocks/BoxesBlocks.js:270 +#: js/blocks/BoxesBlocks.js:387 +msgid "The Box block returns the value stored in a box." msgstr "" -#: js/ActionBlocks.js:251 -#: js/ActionBlocks.js:517 -#: js/ActionBlocks.js:707 -msgid "calculate" +#: js/blocks/BoxesBlocks.js:500 +#: js/blocks/BoxesBlocks.js:576 +msgid "The Store in block will store a value in a box." msgstr "" -#: js/ActionBlocks.js:376 -#: js/ActionBlocks.js:593 -#: js/ActionBlocks.js:942 -#: js/ActionBlocks.js:1389 -#.TRANS: do is the do something or take an action. -msgid "The Do block is used to initiate an action." +#: js/blocks/BoxesBlocks.js:595 +#: js/blocks/EnsembleBlocks.js:391 +#: js/blocks/EnsembleBlocks.js:402 +msgid "name1" msgstr "" -#: js/ActionBlocks.js:390 -#: js/ActionBlocks.js:610 -#: js/ActionBlocks.js:959 -#: js/ActionBlocks.js:1048 -#: js/MeterBlocks.js:769 -msgid "do1" +#: js/blocks/BoxesBlocks.js:652 +msgid "The Box2 block returns the value stored in Box2." msgstr "" -#: js/ActionBlocks.js:390 -#: js/ActionBlocks.js:610 -#: js/ActionBlocks.js:959 -#: js/ActionBlocks.js:1048 -#: js/FlowBlocks.js:742 -#: js/FlowBlocks.js:822 -#: js/MeterBlocks.js:769 -msgid "do" +#: js/blocks/BoxesBlocks.js:703 +msgid "The Store in Box2 block is used to store a value in Box2." msgstr "" -#: js/ActionBlocks.js:791 -#: js/ActionBlocks.js:865 -msgid "The Arg block contains the value of an argument passed to an action." +#: js/blocks/BoxesBlocks.js:715 +msgid "store in box2" msgstr "" -#: js/ActionBlocks.js:806 -#: js/ActionBlocks.js:878 -msgid "arg" +#: js/blocks/BoxesBlocks.js:761 +msgid "The Box1 block returns the value stored in Box1." msgstr "" -#: js/ActionBlocks.js:836 -#: js/ActionBlocks.js:900 -#: js/ActionBlocks.js:908 -msgid "Invalid argument" +#: js/blocks/BoxesBlocks.js:812 +msgid "The Store in Box1 block is used to store a value in Box1." msgstr "" -#: js/ActionBlocks.js:944 -msgid "In the example, it is used with the One of block to choose a random phase." +#: js/blocks/BoxesBlocks.js:826 +msgid "store in box1" msgstr "" -#: js/ActionBlocks.js:1019 -#: js/ActionBlocks.js:1026 -msgid "The Listen block is used to listen for an event such as a mouse click." +#: js/blocks/DictBlocks.js:77 +msgid "show dictionary" msgstr "" -#: js/ActionBlocks.js:1028 -msgid "When the event happens, an action is taken." +#: js/blocks/DictBlocks.js:80 +#: js/blocks/DictBlocks.js:145 +#: js/blocks/DictBlocks.js:216 +#: js/blocks/DictBlocks.js:290 +#: js/blocks/ProgramBlocks.js:396 +#: js/blocks/ProgramBlocks.js:501 +#: js/blocks/ProgramBlocks.js:664 +msgid "My Dictionary" msgstr "" -#: js/ActionBlocks.js:1045 -msgid "on" +#: js/blocks/DictBlocks.js:129 +msgid "The Dictionary block returns a dictionary." msgstr "" -#: js/ActionBlocks.js:1048 -#: js/ActionBlocks.js:1049 -#: js/ActionBlocks.js:1153 -msgid "event" +#: js/blocks/DictBlocks.js:197 +#: js/blocks/DictBlocks.js:339 +msgid "The Get-dict block returns a value in the dictionary for a specified key." msgstr "" -#: js/ActionBlocks.js:1133 -msgid "The Broadcast block is used to trigger an event." +#: js/blocks/DictBlocks.js:212 +#: js/blocks/DictBlocks.js:354 +#.TRANS: retrieve a value from the dictionary with a given key +msgid "get value" msgstr "" -#: js/ActionBlocks.js:1151 -msgid "broadcast" +#: js/blocks/DictBlocks.js:215 +#: js/blocks/DictBlocks.js:216 +#: js/blocks/DictBlocks.js:289 +#: js/blocks/DictBlocks.js:290 +#: js/blocks/DictBlocks.js:357 +#: js/blocks/DictBlocks.js:430 +#: js/blocks/DictBlocks.js:431 +msgid "key2" msgstr "" -#: js/ActionBlocks.js:1208 -msgid "Each Start block is a separate voice." +#: js/blocks/DictBlocks.js:215 +#: js/blocks/DictBlocks.js:216 +#: js/blocks/DictBlocks.js:289 +#: js/blocks/DictBlocks.js:290 +#: js/blocks/DictBlocks.js:357 +#: js/blocks/DictBlocks.js:430 +#: js/blocks/DictBlocks.js:431 +#: js/blocks/IntervalsBlocks.js:1462 +#.TRANS: key, e.g., C in C Major +msgid "key" msgstr "" -#: js/ActionBlocks.js:1304 -msgid "It is often used for storing a phrase of music that is repeated." +#: js/blocks/DictBlocks.js:271 +#: js/blocks/DictBlocks.js:411 +msgid "The Set-dict block sets a value in the dictionary for a specified key." msgstr "" -#: js/ActionBlocks.js:1495 -msgid "define temperament" +#: js/blocks/DictBlocks.js:286 +#: js/blocks/DictBlocks.js:427 +#.TRANS: set a value in the dictionary for a given key +msgid "set value" msgstr "" -#: js/EnsembleBlocks.js:66 +#: js/blocks/EnsembleBlocks.js:66 msgid "mouse index heap" msgstr "" -#: js/EnsembleBlocks.js:68 +#: js/blocks/EnsembleBlocks.js:68 msgid "The Mouse index heap block returns a value in the heap at a specified location for a specified mouse." msgstr "" -#: js/EnsembleBlocks.js:77 -#: js/EnsembleBlocks.js:1080 +#: js/blocks/EnsembleBlocks.js:77 +#: js/blocks/EnsembleBlocks.js:1080 msgid "mouse name" msgstr "" -#: js/EnsembleBlocks.js:77 -#: js/EnsembleBlocks.js:92 -#: js/HeapBlocks.js:544 +#: js/blocks/EnsembleBlocks.js:77 +#: js/blocks/EnsembleBlocks.js:92 +#: js/blocks/HeapBlocks.js:544 #.TRANS: value1 is a numeric value (JAPANESE ONLY) msgid "index" msgstr "" -#: js/EnsembleBlocks.js:80 +#: js/blocks/EnsembleBlocks.js:80 msgid "turtle index heap" msgstr "" -#: js/EnsembleBlocks.js:82 +#: js/blocks/EnsembleBlocks.js:82 msgid "The Turtle index heap block returns a value in the heap at a specified location for a specified turtle." msgstr "" -#: js/EnsembleBlocks.js:90 -#: js/EnsembleBlocks.js:167 -#: js/EnsembleBlocks.js:230 -#: js/EnsembleBlocks.js:316 -#: js/EnsembleBlocks.js:362 -#: js/EnsembleBlocks.js:400 -#: js/EnsembleBlocks.js:454 -#: js/EnsembleBlocks.js:504 -#: js/EnsembleBlocks.js:550 -#: js/EnsembleBlocks.js:597 -#: js/EnsembleBlocks.js:651 -#: js/EnsembleBlocks.js:763 -#: js/EnsembleBlocks.js:854 -#: js/EnsembleBlocks.js:915 -#: js/EnsembleBlocks.js:955 -#: js/EnsembleBlocks.js:1219 -#: js/EnsembleBlocks.js:1293 +#: js/blocks/EnsembleBlocks.js:90 +#: js/blocks/EnsembleBlocks.js:167 +#: js/blocks/EnsembleBlocks.js:230 +#: js/blocks/EnsembleBlocks.js:316 +#: js/blocks/EnsembleBlocks.js:362 +#: js/blocks/EnsembleBlocks.js:400 +#: js/blocks/EnsembleBlocks.js:454 +#: js/blocks/EnsembleBlocks.js:504 +#: js/blocks/EnsembleBlocks.js:550 +#: js/blocks/EnsembleBlocks.js:597 +#: js/blocks/EnsembleBlocks.js:651 +#: js/blocks/EnsembleBlocks.js:763 +#: js/blocks/EnsembleBlocks.js:854 +#: js/blocks/EnsembleBlocks.js:915 +#: js/blocks/EnsembleBlocks.js:955 +#: js/blocks/EnsembleBlocks.js:1219 +#: js/blocks/EnsembleBlocks.js:1293 #.TRANS: Yertle is the name of a turtle. msgid "Yertle" msgstr "" -#: js/EnsembleBlocks.js:92 -#: js/EnsembleBlocks.js:1089 +#: js/blocks/EnsembleBlocks.js:92 +#: js/blocks/EnsembleBlocks.js:1089 msgid "turtle name" msgstr "" -#: js/EnsembleBlocks.js:122 -#: js/EnsembleBlocks.js:1197 -#: js/HeapBlocks.js:474 -#: js/HeapBlocks.js:572 +#: js/blocks/EnsembleBlocks.js:122 +#: js/blocks/EnsembleBlocks.js:1197 +#: js/blocks/HeapBlocks.js:474 +#: js/blocks/HeapBlocks.js:572 msgid "Index must be > 0." msgstr "" -#: js/EnsembleBlocks.js:127 -#: js/HeapBlocks.js:479 -#: js/HeapBlocks.js:577 +#: js/blocks/EnsembleBlocks.js:127 +#: js/blocks/HeapBlocks.js:479 +#: js/blocks/HeapBlocks.js:577 msgid "Maximum heap size is 1000." msgstr "" -#: js/EnsembleBlocks.js:145 +#: js/blocks/EnsembleBlocks.js:145 msgid "stop mouse" msgstr "" -#: js/EnsembleBlocks.js:147 +#: js/blocks/EnsembleBlocks.js:147 msgid "The Stop mouse block stops the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:158 +#: js/blocks/EnsembleBlocks.js:158 msgid "stop turtle" msgstr "" -#: js/EnsembleBlocks.js:160 +#: js/blocks/EnsembleBlocks.js:160 msgid "The Stop turtle block stops the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:184 -#: js/EnsembleBlocks.js:247 -#: js/EnsembleBlocks.js:413 -#: js/EnsembleBlocks.js:468 -#: js/EnsembleBlocks.js:706 -#: js/EnsembleBlocks.js:808 -#: js/EnsembleBlocks.js:870 -#: js/EnsembleBlocks.js:1190 -#: js/EnsembleBlocks.js:1253 +#: js/blocks/EnsembleBlocks.js:184 +#: js/blocks/EnsembleBlocks.js:247 +#: js/blocks/EnsembleBlocks.js:413 +#: js/blocks/EnsembleBlocks.js:468 +#: js/blocks/EnsembleBlocks.js:706 +#: js/blocks/EnsembleBlocks.js:808 +#: js/blocks/EnsembleBlocks.js:870 +#: js/blocks/EnsembleBlocks.js:1190 +#: js/blocks/EnsembleBlocks.js:1253 msgid "Cannot find mouse" msgstr "" -#: js/EnsembleBlocks.js:186 -#: js/EnsembleBlocks.js:249 -#: js/EnsembleBlocks.js:415 -#: js/EnsembleBlocks.js:470 -#: js/EnsembleBlocks.js:708 -#: js/EnsembleBlocks.js:810 -#: js/EnsembleBlocks.js:872 -#: js/EnsembleBlocks.js:1192 -#: js/EnsembleBlocks.js:1255 +#: js/blocks/EnsembleBlocks.js:186 +#: js/blocks/EnsembleBlocks.js:249 +#: js/blocks/EnsembleBlocks.js:415 +#: js/blocks/EnsembleBlocks.js:470 +#: js/blocks/EnsembleBlocks.js:708 +#: js/blocks/EnsembleBlocks.js:810 +#: js/blocks/EnsembleBlocks.js:872 +#: js/blocks/EnsembleBlocks.js:1192 +#: js/blocks/EnsembleBlocks.js:1255 msgid "Cannot find turtle" msgstr "" -#: js/EnsembleBlocks.js:206 +#: js/blocks/EnsembleBlocks.js:206 msgid "start mouse" msgstr "" -#: js/EnsembleBlocks.js:209 +#: js/blocks/EnsembleBlocks.js:209 msgid "The Start mouse block starts the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:220 +#: js/blocks/EnsembleBlocks.js:220 msgid "start turtle" msgstr "" -#: js/EnsembleBlocks.js:223 +#: js/blocks/EnsembleBlocks.js:223 msgid "The Start turtle block starts the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:256 +#: js/blocks/EnsembleBlocks.js:256 msgid "Mouse is already running." msgstr "" -#: js/EnsembleBlocks.js:258 +#: js/blocks/EnsembleBlocks.js:258 msgid "Turtle is already running." msgstr "" -#: js/EnsembleBlocks.js:282 +#: js/blocks/EnsembleBlocks.js:282 msgid "Cannot find start block" msgstr "" -#: js/EnsembleBlocks.js:292 +#: js/blocks/EnsembleBlocks.js:292 #.TRANS: pen color for this mouse msgid "mouse color" msgstr "" -#: js/EnsembleBlocks.js:294 +#: js/blocks/EnsembleBlocks.js:294 msgid "The Mouse color block returns the pen color of the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:306 +#: js/blocks/EnsembleBlocks.js:306 #.TRANS: pen color for this turtle msgid "turtle color" msgstr "" -#: js/EnsembleBlocks.js:308 +#: js/blocks/EnsembleBlocks.js:308 msgid "The Turtle color block returns the pen color of the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:338 +#: js/blocks/EnsembleBlocks.js:338 #.TRANS: heading (compass direction) for this mouse msgid "mouse heading" msgstr "" -#: js/EnsembleBlocks.js:340 +#: js/blocks/EnsembleBlocks.js:340 msgid "The Mouse heading block returns the heading of the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:352 +#: js/blocks/EnsembleBlocks.js:352 #.TRANS: heading (compass direction) for this turtle msgid "turtle heading" msgstr "" -#: js/EnsembleBlocks.js:354 +#: js/blocks/EnsembleBlocks.js:354 msgid "The Turtle heading block returns the heading of the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:384 -#: js/EnsembleBlocks.js:439 +#: js/blocks/EnsembleBlocks.js:384 +#: js/blocks/EnsembleBlocks.js:439 #.TRANS: set xy position for this mouse msgid "set mouse" msgstr "" -#: js/EnsembleBlocks.js:391 -#: js/EnsembleBlocks.js:402 -#: js/BoxesBlocks.js:595 -msgid "name1" -msgstr "" - -#: js/EnsembleBlocks.js:391 -#: js/EnsembleBlocks.js:402 -#: js/ProgramBlocks.js:881 -#: js/GraphicsBlocks.js:235 -#: js/GraphicsBlocks.js:313 -#: js/GraphicsBlocks.js:436 -#: js/GraphicsBlocks.js:487 -#: js/GraphicsBlocks.js:534 -#: js/GraphicsBlocks.js:750 +#: js/blocks/EnsembleBlocks.js:391 +#: js/blocks/EnsembleBlocks.js:402 +#: js/blocks/GraphicsBlocks.js:235 +#: js/blocks/GraphicsBlocks.js:313 +#: js/blocks/GraphicsBlocks.js:436 +#: js/blocks/GraphicsBlocks.js:487 +#: js/blocks/GraphicsBlocks.js:534 +#: js/blocks/GraphicsBlocks.js:750 +#: js/blocks/ProgramBlocks.js:881 msgid "x" msgstr "" -#: js/EnsembleBlocks.js:391 -#: js/EnsembleBlocks.js:402 -#: js/ProgramBlocks.js:881 -#: js/GraphicsBlocks.js:149 -#: js/GraphicsBlocks.js:313 -#: js/GraphicsBlocks.js:436 -#: js/GraphicsBlocks.js:487 -#: js/GraphicsBlocks.js:534 -#: js/GraphicsBlocks.js:750 +#: js/blocks/EnsembleBlocks.js:391 +#: js/blocks/EnsembleBlocks.js:402 +#: js/blocks/GraphicsBlocks.js:149 +#: js/blocks/GraphicsBlocks.js:313 +#: js/blocks/GraphicsBlocks.js:436 +#: js/blocks/GraphicsBlocks.js:487 +#: js/blocks/GraphicsBlocks.js:534 +#: js/blocks/GraphicsBlocks.js:750 +#: js/blocks/ProgramBlocks.js:881 msgid "y" msgstr "" -#: js/EnsembleBlocks.js:395 -#: js/EnsembleBlocks.js:452 +#: js/blocks/EnsembleBlocks.js:395 +#: js/blocks/EnsembleBlocks.js:452 #.TRANS: set xy position for this turtle msgid "set turtle" msgstr "" -#: js/EnsembleBlocks.js:433 +#: js/blocks/EnsembleBlocks.js:433 msgid "The Set mouse block sends a stack of blocks to be run by the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:446 +#: js/blocks/EnsembleBlocks.js:446 msgid "The Set turtle block sends a stack of blocks to be run by the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:480 +#: js/blocks/EnsembleBlocks.js:480 #.TRANS: y position for this mouse msgid "mouse y" msgstr "" -#: js/EnsembleBlocks.js:482 +#: js/blocks/EnsembleBlocks.js:482 msgid "The Y mouse block returns the Y position of the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:494 +#: js/blocks/EnsembleBlocks.js:494 #.TRANS: y position for this turtle msgid "turtle y" msgstr "" -#: js/EnsembleBlocks.js:496 +#: js/blocks/EnsembleBlocks.js:496 msgid "The Y turtle block returns the Y position of the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:526 +#: js/blocks/EnsembleBlocks.js:526 #.TRANS: x position for this mouse msgid "mouse x" msgstr "" -#: js/EnsembleBlocks.js:528 +#: js/blocks/EnsembleBlocks.js:528 msgid "The X mouse block returns the X position of the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:540 +#: js/blocks/EnsembleBlocks.js:540 #.TRANS: x position for this turtle msgid "turtle x" msgstr "" -#: js/EnsembleBlocks.js:542 +#: js/blocks/EnsembleBlocks.js:542 msgid "The X turtle block returns the X position of the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:573 +#: js/blocks/EnsembleBlocks.js:573 #.TRANS: notes played by this mouse msgid "mouse notes played" msgstr "" -#: js/EnsembleBlocks.js:575 +#: js/blocks/EnsembleBlocks.js:575 msgid "The Mouse elapse notes block returns the number of notes played by the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:587 +#: js/blocks/EnsembleBlocks.js:587 #.TRANS: notes played by this turtle msgid "turtle notes played" msgstr "" -#: js/EnsembleBlocks.js:589 +#: js/blocks/EnsembleBlocks.js:589 msgid "The Turtle elapse notes block returns the number of notes played by the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:627 +#: js/blocks/EnsembleBlocks.js:627 #.TRANS: convert current note for this turtle to piano key (1-88) msgid "mouse pitch number" msgstr "" -#: js/EnsembleBlocks.js:629 +#: js/blocks/EnsembleBlocks.js:629 msgid "The Mouse pitch block returns the current pitch number being played by the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:641 +#: js/blocks/EnsembleBlocks.js:641 #.TRANS: convert current note for this turtle to piano key (1-88) msgid "turtle pitch number" msgstr "" -#: js/EnsembleBlocks.js:643 -msgid "The Turrle pitch block returns the current pitch number being played by the specified turtle." +#: js/blocks/EnsembleBlocks.js:643 +msgid "The Turtle pitch block returns the current pitch number being played by the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:747 -#: js/EnsembleBlocks.js:819 +#: js/blocks/EnsembleBlocks.js:747 +#: js/blocks/EnsembleBlocks.js:819 #.TRANS: note value is the duration of the note played by this mouse msgid "mouse note value" msgstr "" -#: js/EnsembleBlocks.js:757 +#: js/blocks/EnsembleBlocks.js:757 #.TRANS: note value is the duration of the note played by this turtle msgid "turtle note value" msgstr "" -#: js/EnsembleBlocks.js:830 +#: js/blocks/EnsembleBlocks.js:830 #.TRANS: sync is short for synchronization msgid "mouse sync" msgstr "" -#: js/EnsembleBlocks.js:832 +#: js/blocks/EnsembleBlocks.js:832 msgid "The Mouse sync block aligns the beat count between mice." msgstr "" -#: js/EnsembleBlocks.js:844 +#: js/blocks/EnsembleBlocks.js:844 #.TRANS: sync is short for synchronization msgid "turtle sync" msgstr "" -#: js/EnsembleBlocks.js:846 +#: js/blocks/EnsembleBlocks.js:846 msgid "The Turtle sync block aligns the beat count between turtles." msgstr "" -#: js/EnsembleBlocks.js:887 +#: js/blocks/EnsembleBlocks.js:887 msgid "The Found mouse block will return true if the specified mouse can be found." msgstr "" -#: js/EnsembleBlocks.js:893 +#: js/blocks/EnsembleBlocks.js:893 msgid "found mouse" msgstr "" -#: js/EnsembleBlocks.js:903 +#: js/blocks/EnsembleBlocks.js:903 msgid "The Found turtle block will return true if the specified turtle can be found." msgstr "" -#: js/EnsembleBlocks.js:909 -msgid "found turtle" -msgstr "" - -#: js/EnsembleBlocks.js:932 -msgid "new mouse" -msgstr "" - -#: js/EnsembleBlocks.js:934 -msgid "The New mouse block will create a new mouse." -msgstr "" - -#: js/EnsembleBlocks.js:945 -msgid "new turtle" -msgstr "" - -#: js/EnsembleBlocks.js:947 -msgid "The New turtle block will create a new turtle." -msgstr "" - -#: js/EnsembleBlocks.js:1011 -msgid "set mouse color" -msgstr "" - -#: js/EnsembleBlocks.js:1014 -msgid "The Set-mouse-color block is used to set the color of a mouse." -msgstr "" - -#: js/EnsembleBlocks.js:1020 -msgid "set turtle color" -msgstr "" - -#: js/EnsembleBlocks.js:1023 -msgid "The Set-turtle-color block is used to set the color of a turtle." -msgstr "" - -#: js/EnsembleBlocks.js:1083 -msgid "The Mouse-name block returns the name of a mouse." -msgstr "" - -#: js/EnsembleBlocks.js:1092 -msgid "The Turtle-name block returns the name of a turtle." -msgstr "" - -#: js/EnsembleBlocks.js:1115 -msgid "mouse count" -msgstr "" - -#: js/EnsembleBlocks.js:1118 -msgid "The Mouse-count block returns the number of mice." -msgstr "" - -#: js/EnsembleBlocks.js:1124 -msgid "turtle count" -msgstr "" - -#: js/EnsembleBlocks.js:1127 -msgid "The Turtle-count block returns the number of turtles." -msgstr "" - -#: js/EnsembleBlocks.js:1149 -msgid "nth mouse name" -msgstr "" - -#: js/EnsembleBlocks.js:1152 -msgid "The Nth-Mouse name block returns the name of the nth mouse." -msgstr "" - -#: js/EnsembleBlocks.js:1158 -msgid "nth turtle name" -msgstr "" - -#: js/EnsembleBlocks.js:1161 -msgid "The Nth-Turtle name block returns the name of the nth turtle." -msgstr "" - -#: js/EnsembleBlocks.js:1205 -#: js/EnsembleBlocks.js:1265 -msgid "set name" -msgstr "" - -#: js/EnsembleBlocks.js:1214 -#: js/EnsembleBlocks.js:1221 -msgid "source" -msgstr "" - -#: js/EnsembleBlocks.js:1214 -#: js/EnsembleBlocks.js:1221 -msgid "target" -msgstr "" - -#: js/EnsembleBlocks.js:1271 -msgid "The Set-name block is used to name a mouse." -msgstr "" - -#: js/EnsembleBlocks.js:1284 -msgid "The Set-name block is used to name a turtle." -msgstr "" - -#: js/BooleanBlocks.js:44 -msgid "The Not block is the logical not operator." -msgstr "" - -#: js/BooleanBlocks.js:62 -msgid "not" -msgstr "tsy" - -#: js/BooleanBlocks.js:134 -msgid "The And block is the logical and operator." -msgstr "" - -#: js/BooleanBlocks.js:152 -msgid "and" -msgstr "sy" - -#: js/BooleanBlocks.js:218 -msgid "The Or block is the logical or operator." -msgstr "" - -#: js/BooleanBlocks.js:236 -msgid "or" -msgstr "na" +#: js/blocks/EnsembleBlocks.js:909 +msgid "found turtle" +msgstr "" -#: js/BooleanBlocks.js:302 -msgid "The XOR block is the logical XOR operator." +#: js/blocks/EnsembleBlocks.js:932 +msgid "new mouse" msgstr "" -#: js/BooleanBlocks.js:320 -msgid "xor" +#: js/blocks/EnsembleBlocks.js:934 +msgid "The New mouse block will create a new mouse." msgstr "" -#: js/BooleanBlocks.js:808 -msgid "The Equal block returns True if the two numbers are equal." +#: js/blocks/EnsembleBlocks.js:945 +msgid "new turtle" msgstr "" -#: js/BooleanBlocks.js:909 -msgid "The Not-equal-to block returns True if the two numbers are not equal to each other." +#: js/blocks/EnsembleBlocks.js:947 +msgid "The New turtle block will create a new turtle." msgstr "" -#: js/BooleanBlocks.js:1008 -msgid "The Boolean block is used to specify true or false." +#: js/blocks/EnsembleBlocks.js:1011 +msgid "set mouse color" msgstr "" -#: js/MediaBlocks.js:35 -#.TRANS: right side of the screen -msgid "right (screen)" +#: js/blocks/EnsembleBlocks.js:1014 +msgid "The Set-mouse-color block is used to set the color of a mouse." msgstr "" -#: js/MediaBlocks.js:45 -#: js/MediaBlocks.js:56 -msgid "The Right block returns the position of the right of the canvas." +#: js/blocks/EnsembleBlocks.js:1020 +msgid "set turtle color" msgstr "" -#: js/MediaBlocks.js:97 -#.TRANS: left side of the screen -msgid "left (screen)" +#: js/blocks/EnsembleBlocks.js:1023 +msgid "The Set-turtle-color block is used to set the color of a turtle." msgstr "" -#: js/MediaBlocks.js:107 -#: js/MediaBlocks.js:118 -msgid "The Left block returns the position of the left of the canvas." +#: js/blocks/EnsembleBlocks.js:1083 +msgid "The Mouse-name block returns the name of a mouse." msgstr "" -#: js/MediaBlocks.js:158 -msgid "top (screen)" +#: js/blocks/EnsembleBlocks.js:1092 +msgid "The Turtle-name block returns the name of a turtle." msgstr "" -#: js/MediaBlocks.js:168 -#: js/MediaBlocks.js:179 -msgid "The Top block returns the position of the top of the canvas." +#: js/blocks/EnsembleBlocks.js:1115 +msgid "mouse count" msgstr "" -#: js/MediaBlocks.js:219 -msgid "bottom (screen)" +#: js/blocks/EnsembleBlocks.js:1118 +msgid "The Mouse-count block returns the number of mice." msgstr "" -#: js/MediaBlocks.js:229 -#: js/MediaBlocks.js:240 -msgid "The Bottom block returns the position of the bottom of the canvas." +#: js/blocks/EnsembleBlocks.js:1124 +msgid "turtle count" msgstr "" -#: js/MediaBlocks.js:282 -msgid "width" +#: js/blocks/EnsembleBlocks.js:1127 +msgid "The Turtle-count block returns the number of turtles." msgstr "" -#: js/MediaBlocks.js:291 -msgid "The Width block returns the width of the canvas." +#: js/blocks/EnsembleBlocks.js:1149 +msgid "nth mouse name" msgstr "" -#: js/MediaBlocks.js:325 -msgid "height" +#: js/blocks/EnsembleBlocks.js:1152 +msgid "The Nth-Mouse name block returns the name of the nth mouse." msgstr "" -#: js/MediaBlocks.js:334 -msgid "The Height block returns the height of the canvas." +#: js/blocks/EnsembleBlocks.js:1158 +msgid "nth turtle name" msgstr "" -#: js/MediaBlocks.js:369 -#.TRANS: stops playback of an audio recording -msgid "stop play" +#: js/blocks/EnsembleBlocks.js:1161 +msgid "The Nth-Turtle name block returns the name of the nth turtle." msgstr "" -#: js/MediaBlocks.js:404 -#.TRANS: Erases the images and text -msgid "erase media" +#: js/blocks/EnsembleBlocks.js:1205 +#: js/blocks/EnsembleBlocks.js:1265 +msgid "set name" msgstr "" -#: js/MediaBlocks.js:409 -msgid "The Erase Media block erases text and images." +#: js/blocks/EnsembleBlocks.js:1214 +#: js/blocks/EnsembleBlocks.js:1221 +msgid "source" msgstr "" -#: js/MediaBlocks.js:439 -#.TRANS: play an audio recording -msgid "play back" +#: js/blocks/EnsembleBlocks.js:1214 +#: js/blocks/EnsembleBlocks.js:1221 +msgid "target" msgstr "" -#: js/MediaBlocks.js:487 -msgid "speak" +#: js/blocks/EnsembleBlocks.js:1271 +msgid "The Set-name block is used to name a mouse." msgstr "" -#: js/MediaBlocks.js:495 -msgid "The Speak block outputs to the text-to-speech synthesizer" +#: js/blocks/EnsembleBlocks.js:1284 +msgid "The Set-name block is used to name a turtle." msgstr "" -#: js/MediaBlocks.js:546 -msgid "camera" +#: js/blocks/ExtrasBlocks.js:33 +msgid "fraction" msgstr "" -#: js/MediaBlocks.js:551 -msgid "The Camera block connects a webcam to the Show block." +#: js/blocks/ExtrasBlocks.js:36 +msgid "Convert a float to a fraction" msgstr "" -#: js/MediaBlocks.js:574 -msgid "video" +#: js/blocks/ExtrasBlocks.js:93 +msgid "save as ABC" msgstr "" -#: js/MediaBlocks.js:579 -msgid "The Video block selects video for use with the Show block." +#: js/blocks/ExtrasBlocks.js:96 +#: js/blocks/ExtrasBlocks.js:132 +#: js/blocks/ExtrasBlocks.js:168 +msgid "title" msgstr "" -#: js/MediaBlocks.js:607 -msgid "The Open file block opens a file for use with the Show block." +#: js/blocks/ExtrasBlocks.js:129 +msgid "save as Lilypond" msgstr "" -#: js/MediaBlocks.js:645 -msgid "stop media" +#: js/blocks/ExtrasBlocks.js:165 +msgid "save as SVG" msgstr "" -#: js/MediaBlocks.js:650 -msgid "The Stop media block stops audio or video playback." +#: js/blocks/ExtrasBlocks.js:216 +msgid "no background" msgstr "" -#: js/MediaBlocks.js:679 -#: js/PitchBlocks.js:1539 -#: js/phrasemaker.js:822 -#: js/musickeyboard.js:1654 -#.TRANS: a measure of frequency: one cycle per second -msgid "hertz" +#: js/blocks/ExtrasBlocks.js:219 +msgid "The No background block eliminates the background from the saved SVG output." msgstr "" -#: js/MediaBlocks.js:692 -msgid "duration (ms)" +#: js/blocks/ExtrasBlocks.js:247 +msgid "show blocks" +msgstr "asehoy ireo bolongana" + +#: js/blocks/ExtrasBlocks.js:249 +msgid "The Show blocks block shows the blocks." msgstr "" -#: js/MediaBlocks.js:728 -#.TRANS: translate a note into hertz, e.g., A4 -> 440HZ -msgid "note to frequency" +#: js/blocks/ExtrasBlocks.js:274 +msgid "hide blocks" +msgstr "afeno ireo bolongana" + +#: js/blocks/ExtrasBlocks.js:276 +msgid "The Hide blocks block hides the blocks." msgstr "" -#: js/MediaBlocks.js:736 -msgid "The To frequency block converts a pitch name and octave to Hertz." +#: js/blocks/ExtrasBlocks.js:305 +#: js/blocks/ExtrasBlocks.js:338 +msgid "The Space block is used to add space between blocks." msgstr "" -#: js/MediaBlocks.js:746 -#: js/PitchBlocks.js:656 -#: js/PitchBlocks.js:932 -#: js/PitchBlocks.js:1827 -#.TRANS: name2 is name as in name of pitch (JAPANESE ONLY) -msgid "name2" +#: js/blocks/ExtrasBlocks.js:376 +msgid "wait" +msgstr "andraso" + +#: js/blocks/ExtrasBlocks.js:379 +msgid "The Wait block pauses the program for a specified number of seconds." msgstr "" -#: js/MediaBlocks.js:812 -msgid "The Avatar block is used to change the appearance of the mouse." +#: js/blocks/ExtrasBlocks.js:433 +#: plugins/facebook.rtp:30 +msgid "comment" +msgstr "tsikera" + +#: js/blocks/ExtrasBlocks.js:469 +msgid "print" +msgstr "pirinty" + +#: js/blocks/ExtrasBlocks.js:476 +msgid "The Print block displays text at the top of the screen." msgstr "" -#: js/MediaBlocks.js:819 -msgid "The Avatar block is used to change the appearance of the turtle." +#: js/blocks/ExtrasBlocks.js:582 +msgid "display grid" msgstr "" -#: js/MediaBlocks.js:831 -#: js/MediaBlocks.js:891 -#.TRANS: a media object -msgid "size" +#: js/blocks/ExtrasBlocks.js:587 +msgid "The Display Grid Block changes the grid type" msgstr "" -#: js/MediaBlocks.js:831 -msgid "image" -msgstr "sary" +#: js/blocks/ExtrasBlocks.js:689 +#: js/blocks/ExtrasBlocks.js:708 +#: js/blocks/ExtrasBlocks.js:731 +#: js/blocks/ExtrasBlocks.js:754 +#: js/blocks/ExtrasBlocks.js:772 +#: js/blocks/ExtrasBlocks.js:791 +#: js/blocks/ExtrasBlocks.js:810 +#: js/blocks/ExtrasBlocks.js:829 +msgid "unknown" +msgstr "" -#: js/MediaBlocks.js:880 -msgid "The Show block is used to display text or images on the canvas." +#: js/blocks/FlowBlocks.js:41 +msgid "The Backward block runs code in reverse order (Musical retrograde)." msgstr "" -#: js/MediaBlocks.js:888 -#.TRANS: show1 is show as in display an image or text on the screen. -msgid "show1" +#: js/blocks/FlowBlocks.js:48 +msgid "backward" msgstr "" -#: js/MediaBlocks.js:891 -msgid "obj" +#: js/blocks/FlowBlocks.js:124 +msgid "The Duplicate block will run each block multiple times." msgstr "" -#: js/MediaBlocks.js:938 -msgid "The Media block is used to import an image." +#: js/blocks/FlowBlocks.js:136 +msgid "duplicate" msgstr "" -#: js/MediaBlocks.js:973 -msgid "The Text block holds a text string." +#: js/blocks/FlowBlocks.js:334 +msgid "The Default block is used inside of a Switch to define the default action." msgstr "" -#: js/ProgramBlocks.js:33 -msgid "The Load-heap-from-app block loads the heap from a web page." +#: js/blocks/FlowBlocks.js:342 +msgid "default" msgstr "" -#: js/ProgramBlocks.js:44 -#.TRANS: load the heap contents from a URL -msgid "load heap from App" +#: js/blocks/FlowBlocks.js:361 +#: js/blocks/FlowBlocks.js:418 +msgid "The Case Block must be used inside of a Switch Block." msgstr "" -#: js/ProgramBlocks.js:95 -msgid "Error parsing JSON data:" +#: js/blocks/FlowBlocks.js:389 +msgid "The Case block is used inside of a Switch to define matches." msgstr "" -#: js/ProgramBlocks.js:100 -msgid "404: Page not found" +#: js/blocks/FlowBlocks.js:397 +msgid "case" msgstr "" -#: js/ProgramBlocks.js:133 -msgid "The Save-heap-to-app block saves the heap to a web page." +#: js/blocks/FlowBlocks.js:446 +msgid "The Switch block will run the code in the matching Case." msgstr "" -#: js/ProgramBlocks.js:144 -#.TRANS: save the heap contents to a URL -msgid "save heap to App" +#: js/blocks/FlowBlocks.js:454 +msgid "switch" msgstr "" -#: js/ProgramBlocks.js:189 -msgid "Cannot find a valid heap for" +#: js/blocks/FlowBlocks.js:595 +msgid "The Stop block will stop a loop" msgstr "" -#: js/ProgramBlocks.js:206 -msgid "The Load-heap block loads the heap from a file." +#: js/blocks/FlowBlocks.js:597 +msgid "Forever, Repeat, While, or Until." msgstr "" -#: js/ProgramBlocks.js:217 -#.TRANS: load the heap from a file -msgid "load heap" +#: js/blocks/FlowBlocks.js:604 +#: js/widgets/timbre.js:417 +#: js/widgets/timbre.js:419 +#: js/widgets/musickeyboard.js:819 +#: js/widgets/musickeyboard.js:821 +#: js/widgets/phrasemaker.js:4202 +#: plugins/rodi.rtp:29 +#: plugins/rodi.rtp:73 +#: plugins/rodi.rtp:413 +msgid "stop" +msgstr "Ajanony" + +#: js/blocks/FlowBlocks.js:653 +msgid "The Waitfor block will wait until the condition is true." msgstr "" -#: js/ProgramBlocks.js:270 -msgid "The file you selected does not contain a valid heap." +#: js/blocks/FlowBlocks.js:661 +msgid "wait for" msgstr "" -#: js/ProgramBlocks.js:275 -msgid "The loadHeap block needs a loadFile block." +#: js/blocks/FlowBlocks.js:732 +msgid "The Until block will repeat until the condition is true." msgstr "" -#: js/ProgramBlocks.js:291 -msgid "The Set-heap block loads the heap." +#: js/blocks/FlowBlocks.js:740 +msgid "until" +msgstr "mandrapaha" + +#: js/blocks/FlowBlocks.js:742 +#: js/blocks/FlowBlocks.js:822 +msgid "do2" msgstr "" -#: js/ProgramBlocks.js:299 -#: js/HeapBlocks.js:539 -#.TRANS: load the heap from a JSON encoding -msgid "set heap" +#: js/blocks/FlowBlocks.js:812 +msgid "The While block will repeat while the condition is true." msgstr "" -#: js/ProgramBlocks.js:340 -msgid "The block you selected does not contain a valid heap." +#: js/blocks/FlowBlocks.js:820 +msgid "while" msgstr "" -#: js/ProgramBlocks.js:343 -msgid "The Set heap block needs a heap." +#: js/blocks/FlowBlocks.js:903 +#: js/blocks/FlowBlocks.js:968 +#: js/blocks/FlowBlocks.js:979 +msgid "In this example if the mouse button is pressed a snare drum will play." msgstr "" -#: js/ProgramBlocks.js:360 -msgid "The Load-dictionary block loads a dictionary from a file." +#: js/blocks/FlowBlocks.js:925 +#: js/blocks/FlowBlocks.js:988 +msgid "if" +msgstr "raha" + +#: js/blocks/FlowBlocks.js:927 +#: js/blocks/FlowBlocks.js:990 +msgid "then" +msgstr "noho izany" + +#: js/blocks/FlowBlocks.js:927 +msgid "else" +msgstr "raha tsy izany" + +#: js/blocks/FlowBlocks.js:1025 +msgid "The Forever block will repeat the contained blocks forever." msgstr "" -#: js/ProgramBlocks.js:372 -#.TRANS: load a dictionary from a file -msgid "load dictionary" +#: js/blocks/FlowBlocks.js:1037 +msgid "forever" +msgstr "mandrakizay" + +#: js/blocks/FlowBlocks.js:1073 +msgid "The Repeat block will repeat the contained blocks." msgstr "" -#: js/ProgramBlocks.js:390 -#: js/ProgramBlocks.js:658 -#: js/ToneBlocks.js:1025 -msgid "file" +#: js/blocks/FlowBlocks.js:1075 +msgid "In this example the note will be played 4 times." msgstr "" -#: js/ProgramBlocks.js:396 -#: js/ProgramBlocks.js:501 -#: js/ProgramBlocks.js:664 -#: js/DictBlocks.js:80 -#: js/DictBlocks.js:145 -#: js/DictBlocks.js:216 -#: js/DictBlocks.js:290 -msgid "My Dictionary" +#: js/blocks/FlowBlocks.js:1083 +msgid "repeat" +msgstr "avereno" + +#: js/blocks/FlowBlocks.js:1123 +msgid "duplicate factor" msgstr "" -#: js/ProgramBlocks.js:444 -msgid "The file you selected does not contain a valid dictionary." +#: js/blocks/HeapBlocks.js:49 +msgid "The Heap block returns the heap." msgstr "" -#: js/ProgramBlocks.js:449 -msgid "The load dictionary block needs a load file block." +#: js/blocks/HeapBlocks.js:133 +msgid "show heap" msgstr "" -#: js/ProgramBlocks.js:466 -msgid "The Set-dictionary block loads a dictionary." +#: js/blocks/HeapBlocks.js:181 +msgid "The Heap-length block returns the length of the heap." msgstr "" -#: js/ProgramBlocks.js:477 -#.TRANS: load a dictionary from a JSON -msgid "set dictionary" +#: js/blocks/HeapBlocks.js:195 +msgid "heap length" msgstr "" -#: js/ProgramBlocks.js:546 -msgid "The block you selected does not contain a valid dictionary." +#: js/blocks/HeapBlocks.js:254 +msgid "The Heap-empty? block returns true if the heap is empty." msgstr "" -#: js/ProgramBlocks.js:550 -msgid "The set dictionary block needs a dictionary." +#: js/blocks/HeapBlocks.js:268 +#.TRANS: Is the heap empty? +msgid "heap empty?" msgstr "" -#: js/ProgramBlocks.js:567 -msgid "The Save-heap block saves the heap to a file." +#: js/blocks/HeapBlocks.js:317 +msgid "The Empty-heap block empties the heap." msgstr "" -#: js/ProgramBlocks.js:578 -#.TRANS: save the heap to a file -msgid "save heap" +#: js/blocks/HeapBlocks.js:327 +#: js/blocks/HeapBlocks.js:647 +#.TRANS: empty the heap +msgid "empty heap" +msgstr "foana" + +#: js/blocks/HeapBlocks.js:371 +msgid "The Reverse-heap block reverses the order of the heap." msgstr "" -#: js/ProgramBlocks.js:629 -msgid "The Save-dictionary block saves a dictionary to a file." +#: js/blocks/HeapBlocks.js:384 +#.TRANS: reverse the order of the heap +msgid "reverse heap" msgstr "" -#: js/ProgramBlocks.js:640 -#.TRANS: save a dictionary to a file -msgid "save dictionary" +#: js/blocks/HeapBlocks.js:428 +msgid "The Index-heap block returns a value in the heap at a specified location." msgstr "" -#: js/ProgramBlocks.js:720 -msgid "The Open palette block opens a palette." +#: js/blocks/HeapBlocks.js:443 +#.TRANS: retrieve a value from the heap at index position in the heap +msgid "index heap" msgstr "" -#: js/ProgramBlocks.js:727 -msgid "open palette" +#: js/blocks/HeapBlocks.js:523 +msgid "The Set-heap entry block sets a value in he heap at the specified location." msgstr "" -#: js/ProgramBlocks.js:785 -msgid "The Delete block block removes a block." +#: js/blocks/HeapBlocks.js:539 +#: js/blocks/ProgramBlocks.js:299 +#.TRANS: load the heap from a JSON encoding +msgid "set heap" msgstr "" -#: js/ProgramBlocks.js:797 -#.TRANS: Move this block to the trash. -msgid "delete block" +#: js/blocks/HeapBlocks.js:619 +msgid "The Pop block removes the value at the top of the heap." msgstr "" -#: js/ProgramBlocks.js:861 -msgid "The Move block block moves a block." +#: js/blocks/HeapBlocks.js:633 +#.TRANS: pop a value off the top of the heap +msgid "pop" msgstr "" -#: js/ProgramBlocks.js:869 -#.TRANS: Move the position of a block on the screen. -msgid "move block" +#: js/blocks/HeapBlocks.js:680 +msgid "The Push block adds a value to the top of the heap." msgstr "" -#: js/ProgramBlocks.js:881 -#: js/ProgramBlocks.js:1048 -msgid "block number" +#: js/blocks/HeapBlocks.js:696 +#.TRANS: push a value onto the top of the heap +msgid "push" +msgstr "atoseho" + +#: js/blocks/IntervalsBlocks.js:45 +msgid "set temperament" msgstr "" -#: js/ProgramBlocks.js:935 -#.TRANS: Run program beginning at this block. -msgid "run block" +#: js/blocks/IntervalsBlocks.js:63 +#: js/blocks/MediaBlocks.js:746 +#: js/blocks/PitchBlocks.js:657 +#: js/blocks/PitchBlocks.js:935 +#: js/blocks/PitchBlocks.js:974 +#: js/blocks/PitchBlocks.js:1007 +#: js/blocks/PitchBlocks.js:1194 +#: js/blocks/PitchBlocks.js:1717 +#: js/blocks/PitchBlocks.js:1758 +#: js/blocks/PitchBlocks.js:1866 +#: js/blocks/ToneBlocks.js:1025 +#: js/turtleactions/IntervalsActions.js:114 +#.TRANS: adjusts the shift up or down by one octave (twelve half-steps in the interval between two notes, one having twice or half the frequency in Hz of the other.) +msgid "octave" msgstr "" -#: js/ProgramBlocks.js:1025 -msgid "The Dock block block connections two blocks." +#: js/blocks/IntervalsBlocks.js:99 +msgid "The Temperament name block is used to select a tuning method." msgstr "" -#: js/ProgramBlocks.js:1036 -#.TRANS: We can connect a block to another block. -msgid "connect blocks" +#: js/blocks/IntervalsBlocks.js:161 +msgid "doubly" msgstr "" -#: js/ProgramBlocks.js:1048 -msgid "target block" +#: js/blocks/IntervalsBlocks.js:166 +msgid "The Doubly block will double the size of an interval." msgstr "" -#: js/ProgramBlocks.js:1048 -msgid "connection number" +#: js/blocks/IntervalsBlocks.js:262 +msgid "interval number" msgstr "" -#: js/ProgramBlocks.js:1140 -msgid "The Make block block creates a new block." +#: js/blocks/IntervalsBlocks.js:317 +msgid "current interval" msgstr "" -#: js/ProgramBlocks.js:1152 -#.TRANS: Create a new block -msgid "make block" +#: js/blocks/IntervalsBlocks.js:387 +#.TRANS: measure the distance between two pitches in semi-tones +msgid "semi-tone interval measure" msgstr "" -#: js/ProgramBlocks.js:1186 -#: js/ProgramBlocks.js:1227 -#: js/RhythmBlocks.js:1128 -#: js/PitchBlocks.js:972 -#: js/PitchBlocks.js:1005 -#: js/temperament.js:340 -#: js/temperament.js:362 -#: js/temperament.js:372 -#: js/temperament.js:484 -#: js/status.js:190 -#: plugins/rodi.rtp:192 -#.TRANS: a musical note consisting of pitch and duration -msgid "note" +#: js/blocks/IntervalsBlocks.js:454 +#: js/blocks/IntervalsBlocks.js:570 +msgid "You must use two pitch blocks when measuring an interval." msgstr "" -#: js/ProgramBlocks.js:1285 -msgid "Cannot find block" +#: js/blocks/IntervalsBlocks.js:496 +msgid "The Scalar interval block measures the distance between two notes in the current key and mode." msgstr "" -#: js/ProgramBlocks.js:1304 -#: js/ProgramBlocks.js:1313 -msgid "Warning: block argument type mismatch" +#: js/blocks/IntervalsBlocks.js:502 +#.TRANS: measure the distance between two pitches in steps of musical scale +msgid "scalar interval measure" msgstr "" -#: js/ProgramBlocks.js:1347 -msgid "The Open project block is used to open a project from a web page." +#: js/blocks/IntervalsBlocks.js:678 +msgid "In the figure, we add sol# to sol." msgstr "" -#: js/ProgramBlocks.js:1357 -msgid "open project" +#: js/blocks/IntervalsBlocks.js:684 +#: js/blocks/OrnamentBlocks.js:220 +#.TRANS: calculate a relative step between notes based on semi-tones +msgid "semi-tone interval" msgstr "" -#: js/ProgramBlocks.js:1410 -msgid "Please enter a valid URL." +#: js/blocks/IntervalsBlocks.js:733 +msgid "The output of the example is: do, mi, sol, sol, ti, mi" msgstr "" -#: js/DrumBlocks.js:59 -msgid "The Noise name block is used to select a noise synthesizer." +#: js/blocks/IntervalsBlocks.js:740 +#: js/blocks/WidgetBlocks.js:768 +msgid "arpeggio" msgstr "" -#: js/DrumBlocks.js:102 -msgid "The Drum name block is used to select a drum." +#: js/blocks/IntervalsBlocks.js:931 +msgid "The Chord block calculates common chords." msgstr "" -#: js/DrumBlocks.js:146 -msgid "The Effects name block is used to select a sound effect." +#: js/blocks/IntervalsBlocks.js:933 +msgid "In the figure, we generate a C-major chord." msgstr "" -#: js/DrumBlocks.js:163 -msgid "noise" +#: js/blocks/IntervalsBlocks.js:938 +msgid "chord" msgstr "" -#: js/DrumBlocks.js:177 -msgid "The Play noise block will generate white, pink, or brown noise." +#: js/blocks/IntervalsBlocks.js:990 +msgid "The Ratio Interval block calculates an interval based on a ratio." msgstr "" -#: js/DrumBlocks.js:191 -#: js/musicutils.js:752 -#: js/synthutils.js:47 -#.TRANS: white noise synthesizer -msgid "white noise" +#: js/blocks/IntervalsBlocks.js:995 +msgid "ratio interval" msgstr "" -#: js/DrumBlocks.js:326 -msgid "Replace every instance of a pitch with a drum sound." +#: js/blocks/IntervalsBlocks.js:1064 +msgid "In the figure, we add la to sol." msgstr "" -#: js/DrumBlocks.js:337 -#.TRANS: map a pitch to a drum sound -msgid "map pitch to drum" +#: js/blocks/IntervalsBlocks.js:1120 +#.TRANS: define a custom mode +msgid "define mode" msgstr "" -#: js/DrumBlocks.js:404 -msgid "In the example above, a kick drum sound will be played instead of sol." +#: js/blocks/IntervalsBlocks.js:1173 +msgid "movable Do" msgstr "" -#: js/DrumBlocks.js:416 -#.TRANS: set the current drum sound for playback -msgid "set drum" +#: js/blocks/IntervalsBlocks.js:1224 +#.TRANS: mode length is the number of notes in the mode, e.g., 7 for major and minor scales; 12 for chromatic scales +msgid "mode length" msgstr "" -#: js/DrumBlocks.js:460 -msgid "sound effect" +#: js/blocks/IntervalsBlocks.js:1233 +msgid "The Mode length block is the number of notes in the current scale." msgstr "" -#: js/DrumBlocks.js:498 -msgid "You can use multiple Drum blocks within a Note block." +#: js/blocks/IntervalsBlocks.js:1235 +msgid "Most Western scales have 7 notes." msgstr "" -#: js/RhythmBlocks.js:182 -#: js/RhythmBlocks.js:1086 -#: js/RhythmBlocks.js:1162 -msgid "Note value must be greater than 0." +#: js/blocks/IntervalsBlocks.js:1284 +#.TRANS: the mode in music is 'major', 'minor', etc. +msgid "current mode" msgstr "" -#: js/RhythmBlocks.js:215 -#: js/RhythmBlocks.js:278 -#: js/RhythmBlocks.js:350 -#.TRANS: swing is a rhythmic variation that emphasises the offbeat -msgid "swing" +#: js/blocks/IntervalsBlocks.js:1337 +#.TRANS: the key is a group of pitches with which a music composition is created +msgid "current key" msgstr "" -#: js/RhythmBlocks.js:355 -#.TRANS: the amount to shift to the offbeat note -msgid "swing value" +#: js/blocks/IntervalsBlocks.js:1389 +#: js/blocks/IntervalsBlocks.js:1434 +#.TRANS: set the key and mode, e.g. C Major +msgid "set key" msgstr "" -#: js/RhythmBlocks.js:419 -msgid "The Skip notes block will cause notes to be skipped." +#: js/blocks/IntervalsBlocks.js:1443 +#: js/blocks/IntervalsBlocks.js:1449 +msgid "The Set key block is used to set the key and mode," msgstr "" -#: js/RhythmBlocks.js:427 -#.TRANS: substitute rests on notes being skipped -msgid "skip notes" +#: js/blocks/IntervalsBlocks.js:1449 +msgid "eg C Major" msgstr "" -#: js/RhythmBlocks.js:489 -#.TRANS: speed up note duration by some factor, e.g. convert 1/4 to 1/8 notes by using a factor of 2 -msgid "multiply note value" +#: js/blocks/MediaBlocks.js:35 +#.TRANS: right side of the screen +msgid "right (screen)" msgstr "" -#: js/RhythmBlocks.js:542 -msgid "The Tie block works on pairs of notes, combining them into one note." +#: js/blocks/MediaBlocks.js:45 +#: js/blocks/MediaBlocks.js:56 +msgid "The Right block returns the position of the right of the canvas." msgstr "" -#: js/RhythmBlocks.js:550 -#.TRANS: tie notes together into one longer note -msgid "tie" +#: js/blocks/MediaBlocks.js:97 +#.TRANS: left side of the screen +msgid "left (screen)" msgstr "" -#: js/RhythmBlocks.js:591 -#: js/RhythmBlocks.js:671 -#.TRANS: a dotted note is played for 1.5x its value, e.g., 1/8. --> 3/16 -msgid "dot" +#: js/blocks/MediaBlocks.js:107 +#: js/blocks/MediaBlocks.js:118 +msgid "The Left block returns the position of the left of the canvas." msgstr "" -#: js/RhythmBlocks.js:619 -#: js/RhythmActions.js:221 -msgid "An argument of -1 results in a note value of 0." +#: js/blocks/MediaBlocks.js:158 +msgid "top (screen)" msgstr "" -#: js/RhythmBlocks.js:661 -msgid "The Dot block extends the duration of a note by 50%." +#: js/blocks/MediaBlocks.js:168 +#: js/blocks/MediaBlocks.js:179 +msgid "The Top block returns the position of the top of the canvas." msgstr "" -#: js/RhythmBlocks.js:663 -msgid "Eg a dotted quarter note will play for 3/8 (1/4 + 1/8) of a beat." +#: js/blocks/MediaBlocks.js:219 +msgid "bottom (screen)" msgstr "" -#: js/RhythmBlocks.js:765 -#.TRANS: Japanese only: note value block for drum -msgid "note value drum" +#: js/blocks/MediaBlocks.js:229 +#: js/blocks/MediaBlocks.js:240 +msgid "The Bottom block returns the position of the bottom of the canvas." msgstr "" -#: js/RhythmBlocks.js:829 -msgid "392 hertz" +#: js/blocks/MediaBlocks.js:282 +msgid "width" msgstr "" -#: js/RhythmBlocks.js:1119 -msgid "The Note block is a container for one or more Pitch blocks." +#: js/blocks/MediaBlocks.js:291 +msgid "The Width block returns the width of the canvas." msgstr "" -#: js/RhythmBlocks.js:1121 -msgid "The Note block specifies the duration (note value) of its contents." +#: js/blocks/MediaBlocks.js:325 +msgid "height" msgstr "" -#: js/RhythmBlocks.js:1130 -msgid "value2" +#: js/blocks/MediaBlocks.js:334 +msgid "The Height block returns the height of the canvas." msgstr "" -#: js/RhythmBlocks.js:1200 -msgid "define frequency" +#: js/blocks/MediaBlocks.js:369 +#.TRANS: stops playback of an audio recording +msgid "stop play" msgstr "" -#: js/RhythmBlocks.js:1218 -#: js/temperament.js:650 -#: js/temperament.js:1421 -msgid "octave space" +#: js/blocks/MediaBlocks.js:404 +#.TRANS: Erases the images and text +msgid "erase media" msgstr "" -#: js/NumberBlocks.js:28 -msgid "The Int block returns an integer." +#: js/blocks/MediaBlocks.js:409 +msgid "The Erase Media block erases text and images." msgstr "" -#: js/NumberBlocks.js:34 -msgid "int" +#: js/blocks/MediaBlocks.js:439 +#.TRANS: play an audio recording +msgid "play back" msgstr "" -#: js/NumberBlocks.js:73 -msgid "The Mod block returns the remainder from a division." +#: js/blocks/MediaBlocks.js:487 +msgid "speak" msgstr "" -#: js/NumberBlocks.js:79 -msgid "mod" +#: js/blocks/MediaBlocks.js:495 +msgid "The Speak block outputs to the text-to-speech synthesizer" msgstr "" -#: js/NumberBlocks.js:123 -msgid "The Power block calculates a power function." +#: js/blocks/MediaBlocks.js:546 +msgid "camera" msgstr "" -#: js/NumberBlocks.js:178 -msgid "The Sqrt block returns the square root." +#: js/blocks/MediaBlocks.js:551 +msgid "The Camera block connects a webcam to the Show block." msgstr "" -#: js/NumberBlocks.js:184 -msgid "sqrt" +#: js/blocks/MediaBlocks.js:574 +msgid "video" msgstr "" -#: js/NumberBlocks.js:230 -msgid "The Abs block returns the absolute value." +#: js/blocks/MediaBlocks.js:579 +msgid "The Video block selects video for use with the Show block." msgstr "" -#: js/NumberBlocks.js:236 -msgid "abs" +#: js/blocks/MediaBlocks.js:607 +msgid "The Open file block opens a file for use with the Show block." msgstr "" -#: js/NumberBlocks.js:277 -msgid "The Distance block returns the distance between two points. For example, between the mouse and the center of the screen." +#: js/blocks/MediaBlocks.js:645 +msgid "stop media" msgstr "" -#: js/NumberBlocks.js:283 -#: plugins/rodi.rtp:310 -msgid "distance" +#: js/blocks/MediaBlocks.js:650 +msgid "The Stop media block stops audio or video playback." msgstr "" -#: js/NumberBlocks.js:343 -msgid "The Divide block is used to divide." +#: js/blocks/MediaBlocks.js:679 +#: js/blocks/PitchBlocks.js:1577 +#: js/widgets/musickeyboard.js:1936 +#: js/widgets/phrasemaker.js:1037 +#.TRANS: a measure of frequency: one cycle per second +msgid "hertz" msgstr "" -#: js/NumberBlocks.js:411 -msgid "The Multiply block is used to multiply." +#: js/blocks/MediaBlocks.js:692 +#: js/blocks/WidgetBlocks.js:182 +#: js/widgets/temperament.js:506 +#: js/widgets/temperament.js:546 +#: js/widgets/temperament.js:610 +#: js/widgets/temperament.js:618 +#: js/widgets/temperament.js:1505 +#: js/widgets/timbre.js:1842 +msgid "frequency" msgstr "" -#: js/NumberBlocks.js:554 -msgid "The Minus block is used to subtract." +#: js/blocks/MediaBlocks.js:692 +msgid "duration (ms)" msgstr "" -#: js/NumberBlocks.js:647 -msgid "The Plus block is used to add." +#: js/blocks/MediaBlocks.js:728 +#.TRANS: translate a note into hertz, e.g., A4 -> 440HZ +msgid "note to frequency" msgstr "" -#: js/NumberBlocks.js:773 -msgid "The One-of block returns one of two choices." +#: js/blocks/MediaBlocks.js:736 +msgid "The To frequency block converts a pitch name and octave to Hertz." msgstr "" -#: js/NumberBlocks.js:780 -#: js/PitchBlocks.js:616 -msgid "one of" +#: js/blocks/MediaBlocks.js:746 +#: js/blocks/PitchBlocks.js:656 +#: js/blocks/PitchBlocks.js:934 +#: js/blocks/PitchBlocks.js:1866 +#.TRANS: name2 is name as in name of pitch (JAPANESE ONLY) +msgid "name2" msgstr "" -#: js/NumberBlocks.js:782 -msgid "this" +#: js/blocks/MediaBlocks.js:812 +msgid "The Avatar block is used to change the appearance of the mouse." msgstr "" -#: js/NumberBlocks.js:782 -msgid "that" +#: js/blocks/MediaBlocks.js:819 +msgid "The Avatar block is used to change the appearance of the turtle." msgstr "" -#: js/NumberBlocks.js:837 -msgid "The Random block returns a random number." +#: js/blocks/MediaBlocks.js:831 +#: js/blocks/MediaBlocks.js:891 +#.TRANS: a media object +msgid "size" msgstr "" -#: js/NumberBlocks.js:844 -msgid "random" -msgstr "kisendrasendra" +#: js/blocks/MediaBlocks.js:831 +msgid "image" +msgstr "sary" -#: js/NumberBlocks.js:846 -msgid "min" -msgstr "ambany indrindra" +#: js/blocks/MediaBlocks.js:880 +msgid "The Show block is used to display text or images on the canvas." +msgstr "" -#: js/NumberBlocks.js:846 -msgid "max" -msgstr "ambony indrindra" +#: js/blocks/MediaBlocks.js:888 +#.TRANS: show1 is show as in display an image or text on the screen. +msgid "show1" +msgstr "" -#: js/NumberBlocks.js:910 -msgid "The Number block holds a number." +#: js/blocks/MediaBlocks.js:891 +msgid "obj" msgstr "" -#: js/BoxesBlocks.js:53 -#: js/BoxesBlocks.js:59 -msgid "The Add-to block is used to add to the value stored in a box." +#: js/blocks/MediaBlocks.js:938 +msgid "The Media block is used to import an image." msgstr "" -#: js/BoxesBlocks.js:61 -msgid "It can also be used with other blocks such as Color and Pen size." +#: js/blocks/MediaBlocks.js:973 +msgid "The Text block holds a text string." msgstr "" -#: js/BoxesBlocks.js:73 -msgid "add" +#: js/blocks/MeterBlocks.js:34 +#.TRANS: musical meter (time signature), e.g., 4:4 +msgid "current meter" msgstr "" -#: js/BoxesBlocks.js:75 -#: js/temperament.js:716 -msgid "to" +#: js/blocks/MeterBlocks.js:85 +#.TRANS: number of beats per minute +msgid "beat factor" msgstr "" -#: js/BoxesBlocks.js:75 -#: js/BoxesBlocks.js:595 -#: js/HeapBlocks.js:544 -msgid "value1" +#: js/blocks/MeterBlocks.js:161 +msgid "The Beats per minute block returns the current beats per minute." msgstr "" -#: js/BoxesBlocks.js:118 -msgid "Block does not support incrementing." +#: js/blocks/MeterBlocks.js:169 +#: js/widgets/status.js:152 +#.TRANS: number of beats played per minute +msgid "beats per minute2" msgstr "" -#: js/BoxesBlocks.js:152 -msgid "The Add-1-to block adds one to the value stored in a box." +#: js/blocks/MeterBlocks.js:169 +#: js/blocks/MeterBlocks.js:1056 +#: js/blocks/MeterBlocks.js:1133 +#: js/blocks/MeterBlocks.js:1211 +#.TRANS: sets tempo by defining a beat and beats per minute +msgid "beats per minute" msgstr "" -#: js/BoxesBlocks.js:163 -msgid "add 1 to" +#: js/blocks/MeterBlocks.js:233 +#.TRANS: count of current musical measure in meter +msgid "measure count" msgstr "" -#: js/BoxesBlocks.js:211 -msgid "The Subtract-1-from block subtracts one from the value stored in a box." +#: js/blocks/MeterBlocks.js:241 +msgid "The Measure count block returns the current measure." msgstr "" -#: js/BoxesBlocks.js:222 -msgid "subtract 1 from" +#: js/blocks/MeterBlocks.js:290 +#.TRANS: count of current beat in the meter +msgid "beat count" msgstr "" -#: js/BoxesBlocks.js:270 -#: js/BoxesBlocks.js:387 -msgid "The Box block returns the value stored in a box." +#: js/blocks/MeterBlocks.js:300 +#: js/blocks/MeterBlocks.js:311 +#: js/blocks/MeterBlocks.js:565 +#: js/blocks/MeterBlocks.js:576 +msgid "The Beat count block is the number of the current beat," msgstr "" -#: js/BoxesBlocks.js:500 -#: js/BoxesBlocks.js:576 -msgid "The Store in block will store a value in a box." +#: js/blocks/MeterBlocks.js:313 +#: js/blocks/MeterBlocks.js:578 +msgid "eg 1, 2, 3, or 4." msgstr "" -#: js/BoxesBlocks.js:652 -msgid "The Box2 block returns the value stored in Box2." +#: js/blocks/MeterBlocks.js:368 +#.TRANS: count the number of notes +msgid "sum note values" msgstr "" -#: js/BoxesBlocks.js:703 -msgid "The Store in Box2 block is used to store a value in Box2." +#: js/blocks/MeterBlocks.js:376 +#: js/blocks/MeterBlocks.js:440 +msgid "The Note counter block can be used to count the number of contained notes." msgstr "" -#: js/BoxesBlocks.js:715 -msgid "store in box2" +#: js/blocks/MeterBlocks.js:432 +#.TRANS: count the number of notes +msgid "note counter" msgstr "" -#: js/BoxesBlocks.js:761 -msgid "The Box1 block returns the value stored in Box1." +#: js/blocks/MeterBlocks.js:496 +#.TRANS: number of whole notes that have been played +msgid "whole notes played" msgstr "" -#: js/BoxesBlocks.js:812 -msgid "The Store in Box1 block is used to store a value in Box1." +#: js/blocks/MeterBlocks.js:505 +msgid "The Whole notes played block returns the total number of whole notes played." msgstr "" -#: js/BoxesBlocks.js:826 -msgid "store in box1" +#: js/blocks/MeterBlocks.js:555 +#: js/turtleactions/DictActions.js:83 +#.TRANS: number of notes that have been played +msgid "notes played" msgstr "" -#: js/HeapBlocks.js:49 -msgid "The Heap block returns the heap." +#: js/blocks/MeterBlocks.js:653 +msgid "The No clock block decouples the notes from the master clock." msgstr "" -#: js/HeapBlocks.js:133 -msgid "show heap" +#: js/blocks/MeterBlocks.js:661 +#.TRANS: don't lock notes to master clock +msgid "no clock" msgstr "" -#: js/HeapBlocks.js:181 -msgid "The Heap-length block returns the length of the heap." +#: js/blocks/MeterBlocks.js:700 +msgid "on weak beat do" msgstr "" -#: js/HeapBlocks.js:195 -msgid "heap length" +#: js/blocks/MeterBlocks.js:705 +msgid "The On-weak-beat block lets you specify actions to take on weak (off) beats." msgstr "" -#: js/HeapBlocks.js:254 -msgid "The Heap-empty? block returns true if the heap is empty." +#: js/blocks/MeterBlocks.js:750 +msgid "on strong beat" msgstr "" -#: js/HeapBlocks.js:268 -#.TRANS: Is the heap empty? -msgid "heap empty?" +#: js/blocks/MeterBlocks.js:758 +msgid "The On-strong-beat block lets you specify actions to take on specified beats." msgstr "" -#: js/HeapBlocks.js:317 -msgid "The Empty-heap block empties the heap." +#: js/blocks/MeterBlocks.js:769 +msgid "beat" msgstr "" -#: js/HeapBlocks.js:327 -#: js/HeapBlocks.js:647 -#.TRANS: empty the heap -msgid "empty heap" -msgstr "foana" +#: js/blocks/MeterBlocks.js:813 +msgid "on every beat do" +msgstr "" -#: js/HeapBlocks.js:371 -msgid "The Reverse-heap block reverses the order of the heap." +#: js/blocks/MeterBlocks.js:821 +msgid "The On-every-beat block lets you specify actions to take on every beat." msgstr "" -#: js/HeapBlocks.js:384 -#.TRANS: reverse the order of the heap -msgid "reverse heap" +#: js/blocks/MeterBlocks.js:874 +msgid "on every note do" msgstr "" -#: js/HeapBlocks.js:428 -msgid "The Index-heap block returns a value in the heap at a specified location." +#: js/blocks/MeterBlocks.js:882 +msgid "The On-every-note block lets you specify actions to take on every note." msgstr "" -#: js/HeapBlocks.js:443 -#.TRANS: retrieve a value from the heap at index position in the heap -msgid "index heap" +#: js/blocks/MeterBlocks.js:928 +#: js/blocks/MeterBlocks.js:999 +#.TRANS: sets tempo by defining a beat and beats per minute +msgid "master beats per minute" msgstr "" -#: js/HeapBlocks.js:523 -msgid "The Set-heap entry block sets a value in he heap at the specified location." +#: js/blocks/MeterBlocks.js:952 +#: js/blocks/MeterBlocks.js:1078 +#: js/blocks/MeterBlocks.js:1135 +msgid "bpm" msgstr "" -#: js/HeapBlocks.js:619 -msgid "The Pop block removes the value at the top of the heap." +#: js/blocks/MeterBlocks.js:952 +#: js/blocks/MeterBlocks.js:1078 +#: js/blocks/MeterBlocks.js:1135 +msgid "beat value" msgstr "" -#: js/HeapBlocks.js:633 -#.TRANS: pop a value off the top of the heap -msgid "pop" +#: js/blocks/MeterBlocks.js:1024 +#: js/blocks/MeterBlocks.js:1167 +#: js/blocks/MeterBlocks.js:1241 +msgid "Beats per minute must be > 30." msgstr "" -#: js/HeapBlocks.js:680 -msgid "The Push block adds a value to the top of the heap." +#: js/blocks/MeterBlocks.js:1027 +#: js/blocks/MeterBlocks.js:1170 +#: js/blocks/MeterBlocks.js:1244 +msgid "Maximum beats per minute is 1000." msgstr "" -#: js/HeapBlocks.js:696 -#.TRANS: push a value onto the top of the heap -msgid "push" -msgstr "atoseho" +#: js/blocks/MeterBlocks.js:1068 +msgid "The Beats per minute block sets the number of 1/4 notes per minute." +msgstr "" -#: js/FlowBlocks.js:41 -msgid "The Backward block runs code in reverse order (Musical retrograde)." +#: js/blocks/MeterBlocks.js:1279 +#.TRANS: anacrusis +msgid "pickup" msgstr "" -#: js/FlowBlocks.js:48 -msgid "backward" +#: js/blocks/MeterBlocks.js:1367 +msgid "number of beats" msgstr "" -#: js/FlowBlocks.js:124 -msgid "The Duplicate block will run each block multiple times." +#: js/blocks/NumberBlocks.js:28 +msgid "The Int block returns an integer." msgstr "" -#: js/FlowBlocks.js:136 -msgid "duplicate" +#: js/blocks/NumberBlocks.js:34 +msgid "int" msgstr "" -#: js/FlowBlocks.js:334 -msgid "The Default block is used inside of a Switch to define the default action." +#: js/blocks/NumberBlocks.js:73 +msgid "The Mod block returns the remainder from a division." msgstr "" -#: js/FlowBlocks.js:342 -msgid "default" +#: js/blocks/NumberBlocks.js:79 +msgid "mod" msgstr "" -#: js/FlowBlocks.js:361 -#: js/FlowBlocks.js:418 -msgid "The Case Block must be used inside of a Switch Block." +#: js/blocks/NumberBlocks.js:141 +msgid "The Power block calculates a power function." msgstr "" -#: js/FlowBlocks.js:389 -msgid "The Case block is used inside of a Switch to define matches." +#: js/blocks/NumberBlocks.js:196 +msgid "The Sqrt block returns the square root." msgstr "" -#: js/FlowBlocks.js:397 -msgid "case" +#: js/blocks/NumberBlocks.js:202 +msgid "sqrt" msgstr "" -#: js/FlowBlocks.js:446 -msgid "The Switch block will run the code in the matching Case." +#: js/blocks/NumberBlocks.js:248 +msgid "The Abs block returns the absolute value." msgstr "" -#: js/FlowBlocks.js:454 -msgid "switch" +#: js/blocks/NumberBlocks.js:254 +msgid "abs" msgstr "" -#: js/FlowBlocks.js:595 -msgid "The Stop block will stop a loop" +#: js/blocks/NumberBlocks.js:295 +msgid "The Distance block returns the distance between two points. For example, between the mouse and the center of the screen." msgstr "" -#: js/FlowBlocks.js:597 -msgid "Forever, Repeat, While, or Until." +#: js/blocks/NumberBlocks.js:301 +#: plugins/rodi.rtp:310 +msgid "distance" msgstr "" -#: js/FlowBlocks.js:604 -#: js/phrasemaker.js:3799 -#: js/musickeyboard.js:629 -#: js/musickeyboard.js:631 -#: js/timbre.js:417 -#: js/timbre.js:419 -#: plugins/rodi.rtp:29 -#: plugins/rodi.rtp:73 -#: plugins/rodi.rtp:413 -msgid "stop" -msgstr "Ajanony" +#: js/blocks/NumberBlocks.js:361 +msgid "The Divide block is used to divide." +msgstr "" -#: js/FlowBlocks.js:653 -msgid "The Waitfor block will wait until the condition is true." +#: js/blocks/NumberBlocks.js:441 +msgid "The Multiply block is used to multiply." msgstr "" -#: js/FlowBlocks.js:661 -msgid "wait for" +#: js/blocks/NumberBlocks.js:612 +msgid "The Minus block is used to subtract." msgstr "" -#: js/FlowBlocks.js:732 -msgid "The Until block will repeat until the condition is true." +#: js/blocks/NumberBlocks.js:723 +msgid "The Plus block is used to add." msgstr "" -#: js/FlowBlocks.js:740 -msgid "until" -msgstr "mandrapaha" +#: js/blocks/NumberBlocks.js:849 +msgid "The One-of block returns one of two choices." +msgstr "" -#: js/FlowBlocks.js:742 -#: js/FlowBlocks.js:822 -msgid "do2" +#: js/blocks/NumberBlocks.js:856 +#: js/blocks/PitchBlocks.js:616 +msgid "one of" msgstr "" -#: js/FlowBlocks.js:812 -msgid "The While block will repeat while the condition is true." +#: js/blocks/NumberBlocks.js:858 +msgid "this" msgstr "" -#: js/FlowBlocks.js:820 -msgid "while" +#: js/blocks/NumberBlocks.js:858 +msgid "that" msgstr "" -#: js/FlowBlocks.js:903 -#: js/FlowBlocks.js:968 -#: js/FlowBlocks.js:979 -msgid "In this example if the mouse button is pressed a snare drum will play." +#: js/blocks/NumberBlocks.js:913 +msgid "The Random block returns a random number." msgstr "" -#: js/FlowBlocks.js:925 -#: js/FlowBlocks.js:988 -msgid "if" -msgstr "raha" +#: js/blocks/NumberBlocks.js:920 +msgid "random" +msgstr "kisendrasendra" -#: js/FlowBlocks.js:927 -#: js/FlowBlocks.js:990 -msgid "then" -msgstr "noho izany" +#: js/blocks/NumberBlocks.js:922 +msgid "min" +msgstr "ambany indrindra" -#: js/FlowBlocks.js:927 -msgid "else" -msgstr "raha tsy izany" +#: js/blocks/NumberBlocks.js:922 +msgid "max" +msgstr "ambony indrindra" -#: js/FlowBlocks.js:1025 -msgid "The Forever block will repeat the contained blocks forever." +#: js/blocks/NumberBlocks.js:986 +msgid "The Number block holds a number." msgstr "" -#: js/FlowBlocks.js:1037 -msgid "forever" -msgstr "mandrakizay" - -#: js/FlowBlocks.js:1073 -msgid "The Repeat block will repeat the contained blocks." +#: js/blocks/OrnamentBlocks.js:32 +msgid "staccato factor" msgstr "" -#: js/FlowBlocks.js:1075 -msgid "In this example the note will be played 4 times." +#: js/blocks/OrnamentBlocks.js:108 +msgid "slur factor" msgstr "" -#: js/FlowBlocks.js:1083 -msgid "repeat" -msgstr "avereno" - -#: js/FlowBlocks.js:1123 -msgid "duplicate factor" +#: js/blocks/OrnamentBlocks.js:217 +#: js/blocks/OrnamentBlocks.js:309 +#.TRANS: the neighbor refers to a neighboring note, e.g., D is a neighbor of C +msgid "neighbor" msgstr "" -#: js/PitchBlocks.js:39 -#: js/musicutils.js:722 -#: js/musicutils.js:1117 -#: js/synthutils.js:112 -#.TRANS: square wave -msgid "square" +#: js/blocks/OrnamentBlocks.js:293 +msgid "The Neighbor block rapidly switches between neighboring pitches." msgstr "" -#: js/PitchBlocks.js:62 -#: js/ToneBlocks.js:39 -#: js/musicutils.js:723 -#: js/musicutils.js:1118 -#: js/synthutils.js:116 -#.TRANS: triangle wave -msgid "triangle" +#: js/blocks/OrnamentBlocks.js:364 +msgid "glide" msgstr "" -#: js/PitchBlocks.js:85 -#: js/musicutils.js:721 -#: js/musicutils.js:1116 -#: js/synthutils.js:110 -#.TRANS: sine wave -msgid "sine" +#: js/blocks/OrnamentBlocks.js:479 +#: js/blocks/OrnamentBlocks.js:643 +msgid "slur" msgstr "" -#: js/PitchBlocks.js:108 -#: js/musicutils.js:724 -#: js/musicutils.js:1119 -#: js/synthutils.js:114 -#.TRANS: sawtooth wave -msgid "sawtooth" +#: js/blocks/OrnamentBlocks.js:558 +#: js/blocks/OrnamentBlocks.js:710 +#.TRANS: play each note sharply detached from the others +msgid "staccato" msgstr "" -#: js/PitchBlocks.js:141 -#.TRANS: musical transposition (adjustment of pitch up or down) -msgid "transposition" +#: js/blocks/RhythmBlocks.js:182 +#: js/blocks/RhythmBlocks.js:1086 +#: js/blocks/RhythmBlocks.js:1162 +msgid "Note value must be greater than 0." msgstr "" -#: js/PitchBlocks.js:168 -#.TRANS: step down one note in current musical scale -msgid "scalar step down" +#: js/blocks/RhythmBlocks.js:215 +#: js/blocks/RhythmBlocks.js:278 +#: js/blocks/RhythmBlocks.js:350 +#.TRANS: swing is a rhythmic variation that emphasises the offbeat +msgid "swing" msgstr "" -#: js/PitchBlocks.js:172 -msgid "The Scalar step down block returns the number of semi-tones down to the previous note in the current key and mode." +#: js/blocks/RhythmBlocks.js:355 +#.TRANS: the amount to shift to the offbeat note +msgid "swing value" msgstr "" -#: js/PitchBlocks.js:190 -#.TRANS: step up one note in current musical scale -msgid "scalar step up" +#: js/blocks/RhythmBlocks.js:419 +msgid "The Skip notes block will cause notes to be skipped." msgstr "" -#: js/PitchBlocks.js:194 -msgid "The Scalar step up block returns the number of semi-tones up to the next note in the current key and mode." +#: js/blocks/RhythmBlocks.js:427 +#.TRANS: substitute rests on notes being skipped +msgid "skip notes" msgstr "" -#: js/PitchBlocks.js:212 -#.TRANS: the change measured in half-steps between the current pitch and the previous pitch -msgid "change in pitch" +#: js/blocks/RhythmBlocks.js:489 +#.TRANS: speed up note duration by some factor, e.g. convert 1/4 to 1/8 notes by using a factor of 2 +msgid "multiply note value" msgstr "" -#: js/PitchBlocks.js:216 -msgid "The Change in pitch block is the difference (in half steps) between the current pitch being played and the previous pitch played." +#: js/blocks/RhythmBlocks.js:542 +msgid "The Tie block works on pairs of notes, combining them into one note." msgstr "" -#: js/PitchBlocks.js:243 -#.TRANS: the change measured in scale-steps between the current pitch and the previous pitch -msgid "scalar change in pitch" +#: js/blocks/RhythmBlocks.js:550 +#.TRANS: tie notes together into one longer note +msgid "tie" msgstr "" -#: js/PitchBlocks.js:250 -#: js/PitchBlocks.js:432 -#: js/PitchBlocks.js:1629 -#: js/DictActions.js:89 -#: js/temperament.js:477 -#: js/temperament.js:481 -#: js/temperament.js:714 -#.TRANS: convert current note to piano key (1-88) -#.TRANS: a mapping of pitch to the 88 piano keys -msgid "pitch number" +#: js/blocks/RhythmBlocks.js:591 +#: js/blocks/RhythmBlocks.js:671 +#.TRANS: a dotted note is played for 1.5x its value, e.g., 1/8. --> 3/16 +msgid "dot" msgstr "" -#: js/PitchBlocks.js:256 -msgid "The Pitch number block is the value of the pitch of the note currently being played." +#: js/blocks/RhythmBlocks.js:619 +#: js/turtleactions/RhythmActions.js:221 +msgid "An argument of -1 results in a note value of 0." msgstr "" -#: js/PitchBlocks.js:329 -#: js/PitchBlocks.js:433 -#.TRANS: the current pitch expressed in Hertz -msgid "pitch in hertz" +#: js/blocks/RhythmBlocks.js:661 +msgid "The Dot block extends the duration of a note by 50%." msgstr "" -#: js/PitchBlocks.js:334 -msgid "The Pitch in Hertz block is the value in Hertz of the pitch of the note currently being played." +#: js/blocks/RhythmBlocks.js:663 +msgid "Eg a dotted quarter note will play for 3/8 (1/4 + 1/8) of a beat." msgstr "" -#: js/PitchBlocks.js:367 -#: js/DictActions.js:87 -msgid "current pitch" +#: js/blocks/RhythmBlocks.js:765 +#.TRANS: Japanese only: note value block for drum +msgid "note value drum" msgstr "" -#: js/PitchBlocks.js:373 -msgid "The Current Pitch block is used with the Pitch Converter block. In the example above, current pitch, sol 4, is displayed as 392 hertz." +#: js/blocks/RhythmBlocks.js:829 +msgid "392 hertz" msgstr "" -#: js/PitchBlocks.js:410 -msgid "This block converts the pitch value of the last note played into different formats such as hertz, letter name, pitch number, et al." +#: js/blocks/RhythmBlocks.js:1119 +msgid "The Note block is a container for one or more Pitch blocks." msgstr "" -#: js/PitchBlocks.js:434 -msgid "alphabet" +#: js/blocks/RhythmBlocks.js:1121 +msgid "The Note block specifies the duration (note value) of its contents." msgstr "" -#: js/PitchBlocks.js:436 -#.TRANS: Translate as "alphabet class" -msgid "letter class" +#: js/blocks/RhythmBlocks.js:1128 +#: js/blocks/PitchBlocks.js:974 +#: js/blocks/PitchBlocks.js:1007 +#: js/blocks/ProgramBlocks.js:1186 +#: js/blocks/ProgramBlocks.js:1227 +#: js/widgets/status.js:190 +#: js/widgets/temperament.js:464 +#: js/widgets/temperament.js:486 +#: js/widgets/temperament.js:496 +#: js/widgets/temperament.js:617 +#: plugins/rodi.rtp:192 +#.TRANS: a musical note consisting of pitch and duration +msgid "note" msgstr "" -#: js/PitchBlocks.js:437 -msgid "solfege class" +#: js/blocks/RhythmBlocks.js:1130 +msgid "value2" msgstr "" -#: js/PitchBlocks.js:438 -msgid "staff y" +#: js/blocks/RhythmBlocks.js:1200 +msgid "define frequency" msgstr "" -#: js/PitchBlocks.js:439 -msgid "solfege syllable" +#: js/blocks/RhythmBlocks.js:1218 +#: js/widgets/temperament.js:787 +#: js/widgets/temperament.js:1587 +msgid "octave space" msgstr "" -#: js/PitchBlocks.js:440 -msgid "pitch class" +#: js/blocks/SensorsBlocks.js:36 +msgid "The Input block prompts for keyboard input." msgstr "" -#: js/PitchBlocks.js:441 -msgid "scalar class" +#: js/blocks/SensorsBlocks.js:46 +msgid "input" msgstr "" -#: js/PitchBlocks.js:443 -msgid "nth degree" +#: js/blocks/SensorsBlocks.js:64 +msgid "Input a value" msgstr "" -#: js/PitchBlocks.js:444 -msgid "pitch to shade" +#: js/blocks/SensorsBlocks.js:126 +msgid "input value" msgstr "" -#: js/PitchBlocks.js:445 -msgid "pitch to color" +#: js/blocks/SensorsBlocks.js:131 +msgid "The Input-value block stores the input." msgstr "" -#: js/PitchBlocks.js:629 -#: js/musickeyboard.js:565 -#.TRANS: MIDI is a technical standard for electronic music -msgid "MIDI" +#: js/blocks/SensorsBlocks.js:238 +msgid "loudness" msgstr "" -#: js/PitchBlocks.js:642 -#.TRANS: set an offset associated with the numeric piano keyboard mapping -msgid "set pitch number offset" +#: js/blocks/SensorsBlocks.js:245 +msgid "The Loudness block returns the volume detected by the microphone." msgstr "" -#: js/PitchBlocks.js:645 -msgid "The Set pitch number offset block is used to set the offset for mapping pitch numbers to pitch and octave." +#: js/blocks/SensorsBlocks.js:300 +msgid "click" msgstr "" -#: js/PitchBlocks.js:679 -#.TRANS: convert piano key number (1-88) to pitch -msgid "number to pitch" +#: js/blocks/SensorsBlocks.js:306 +msgid "The Click block triggers an event if a mouse has been clicked." msgstr "" -#: js/PitchBlocks.js:682 -msgid "The Number to pitch block will convert a pitch number to a pich name." +#: js/blocks/SensorsBlocks.js:313 +msgid "The Click block triggers an event if a turtle has been clicked." msgstr "" -#: js/PitchBlocks.js:715 -#.TRANS: convert piano key number (1-88) to octave -msgid "number to octave" +#: js/blocks/SensorsBlocks.js:342 +msgid "cursor over" msgstr "" -#: js/PitchBlocks.js:717 -msgid "The Number to octave block will convert a pitch number to an octave." +#: js/blocks/SensorsBlocks.js:387 +msgid "cursor out" msgstr "" -#: js/PitchBlocks.js:726 -msgid "y to pitch" +#: js/blocks/SensorsBlocks.js:433 +msgid "cursor button down" msgstr "" -#: js/PitchBlocks.js:729 -msgid "Y to pitch block will convert a staff y position to corresponding pitch notation." +#: js/blocks/SensorsBlocks.js:477 +msgid "cursor button up" msgstr "" -#: js/PitchBlocks.js:841 -msgid "accidental selector" +#: js/blocks/SensorsBlocks.js:521 +#: js/blocks/PenBlocks.js:48 +#: plugins/rodi.rtp:219 +msgid "blue" msgstr "" -#: js/PitchBlocks.js:844 -msgid "The Accidental selector block is used to choose between double-sharp, sharp, natural, flat, and double-flat." +#: js/blocks/SensorsBlocks.js:577 +#: js/blocks/PenBlocks.js:64 +#: plugins/rodi.rtp:218 +msgid "green" msgstr "" -#: js/PitchBlocks.js:858 -msgid "Pitch can be specified in terms of ni dha pa ma ga re sa." +#: js/blocks/SensorsBlocks.js:633 +#: js/blocks/PenBlocks.js:112 +#: plugins/rodi.rtp:217 +msgid "red" msgstr "" -#: js/PitchBlocks.js:872 -msgid "Pitch can be specified in terms of C D E F G A B." +#: js/blocks/SensorsBlocks.js:638 +msgid "The Get red block returns the red component of the pixel under the mouse." msgstr "" -#: js/PitchBlocks.js:883 -msgid "solfege" +#: js/blocks/SensorsBlocks.js:644 +msgid "The Get red block returns the red component of the pixel under the turtle." msgstr "" -#: js/PitchBlocks.js:886 -msgid "Pitch can be specified in terms of do re mi fa sol la ti." +#: js/blocks/SensorsBlocks.js:685 +#: plugins/rodi.rtp:216 +msgid "pixel color" msgstr "" -#: js/PitchBlocks.js:920 -msgid "The Invert block rotates any contained notes around a target note." +#: js/blocks/SensorsBlocks.js:690 +msgid "The Get pixel block returns the color of the pixel under the mouse." msgstr "" -#: js/PitchBlocks.js:927 -#.TRANS: pitch inversion rotates a pitch around another pitch -msgid "invert" +#: js/blocks/SensorsBlocks.js:696 +msgid "The Get pixel block returns the color of the pixel under the turtle." msgstr "" -#: js/PitchBlocks.js:929 -#: js/PitchBlocks.js:935 -#: js/PitchActions.js:727 -#: js/musicutils.js:726 -#: js/musicutils.js:902 -#.TRANS: invert based on even or odd number or musical scale -#.TRANS: even numbers -msgid "even" +#: js/blocks/SensorsBlocks.js:758 +msgid "time" msgstr "" -#: js/PitchBlocks.js:935 -#: js/PitchActions.js:729 -#: js/musicutils.js:728 -#: js/musicutils.js:903 -#.TRANS: odd numbers -msgid "odd" +#: js/blocks/SensorsBlocks.js:804 +msgid "cursor y" msgstr "" -#: js/PitchBlocks.js:935 -#: js/PitchActions.js:731 -#: js/musicutils.js:729 -#: js/musicutils.js:904 -msgid "scalar" +#: js/blocks/SensorsBlocks.js:809 +msgid "The Cursor Y block returns the vertical position of the mouse." msgstr "" -#: js/PitchBlocks.js:966 -#.TRANS: pitch inversion rotates a pitch around another pitch (odd number) -msgid "invert (odd)" +#: js/blocks/SensorsBlocks.js:845 +msgid "cursor x" msgstr "" -#: js/PitchBlocks.js:999 -#.TRANS: pitch inversion rotates a pitch around another pitch (even number) -msgid "invert (even)" +#: js/blocks/SensorsBlocks.js:850 +msgid "The Cursor X block returns the horizontal position of the mouse." msgstr "" -#: js/PitchBlocks.js:1020 -#.TRANS: register is the octave of the current pitch -msgid "register" +#: js/blocks/SensorsBlocks.js:886 +msgid "mouse button" msgstr "" -#: js/PitchBlocks.js:1024 -msgid "The Register block provides an easy way to modify the register (octave) of the notes that follow it." +#: js/blocks/SensorsBlocks.js:888 +msgid "The Mouse-button block returns True if the mouse button is pressed." msgstr "" -#: js/PitchBlocks.js:1074 -msgid "The Semi-tone transposition block will shift the pitches contained inside Note blocks up (or down) by half steps." +#: js/blocks/SensorsBlocks.js:934 +msgid "to ASCII" msgstr "" -#: js/PitchBlocks.js:1076 -msgid "In the example shown above, sol is shifted up to sol#." +#: js/blocks/SensorsBlocks.js:938 +msgid "The To ASCII block converts numbers to letters." msgstr "" -#: js/PitchBlocks.js:1082 -#.TRANS: adjust the amount of shift (up or down) of a pitch -msgid "semi-tone transpose" +#: js/blocks/SensorsBlocks.js:1005 +msgid "The Keyboard block returns computer keyboard input." msgstr "" -#: js/PitchBlocks.js:1115 -msgid "The Transpose by Ratio block will shift the pitches contained inside Note blocks up (or down) by a ratio" +#: js/blocks/RhythmBlockPaletteBlocks.js:50 +#: js/blocks/RhythmBlockPaletteBlocks.js:233 +#.TRANS: rhythm block +#.TRANS: translate "rhythm1" as rhythm +msgid "rhythm1" msgstr "" -#: js/PitchBlocks.js:1121 -#.TRANS: adjust the amount of shift (up or down) of a pitch -msgid "transpose by ratio" +#: js/blocks/RhythmBlockPaletteBlocks.js:70 +#: js/blocks/RhythmBlockPaletteBlocks.js:252 +#: js/blocks/RhythmBlockPaletteBlocks.js:485 +#: js/blocks/RhythmBlockPaletteBlocks.js:554 +#: js/blocks/RhythmBlockPaletteBlocks.js:875 +msgid "number of notes" msgstr "" -#: js/PitchBlocks.js:1204 -#.TRANS: down sixth means the note is five scale degrees below current note -msgid "down sixth" +#: js/blocks/RhythmBlockPaletteBlocks.js:126 +msgid "polyphonic rhythm" msgstr "" -#: js/PitchBlocks.js:1223 -#.TRANS: down third means the note is two scale degrees below current note -msgid "down third" +#: js/blocks/RhythmBlockPaletteBlocks.js:219 +msgid "The Rhythm block is used to generate rhythm patterns." msgstr "" -#: js/PitchBlocks.js:1242 -#.TRANS: seventh means the note is the six scale degrees above current note -msgid "seventh" +#: js/blocks/RhythmBlockPaletteBlocks.js:280 +msgid "1/64 note" msgstr "" -#: js/PitchBlocks.js:1261 -#.TRANS: sixth means the note is the five scale degrees above current note -msgid "sixth" +#: js/blocks/RhythmBlockPaletteBlocks.js:304 +msgid "1/32 note" msgstr "" -#: js/PitchBlocks.js:1280 -#.TRANS: fifth means the note is the four scale degrees above current note -msgid "fifth" +#: js/blocks/RhythmBlockPaletteBlocks.js:332 +msgid "1/16 note" msgstr "" -#: js/PitchBlocks.js:1300 -#.TRANS: fourth means the note is three scale degrees above current note -msgid "fourth" +#: js/blocks/RhythmBlockPaletteBlocks.js:360 +msgid "eighth note" msgstr "" - -#: js/PitchBlocks.js:1319 -#.TRANS: third means the note is two scale degrees above current note -msgid "third" + +#: js/blocks/RhythmBlockPaletteBlocks.js:388 +msgid "quarter note" msgstr "" -#: js/PitchBlocks.js:1338 -#.TRANS: second means the note is one scale degree above current note -msgid "second" +#: js/blocks/RhythmBlockPaletteBlocks.js:416 +msgid "half note" msgstr "" -#: js/PitchBlocks.js:1379 -msgid "The Scalar transposition block will shift the pitches contained inside Note blocks up (or down) the scale." +#: js/blocks/RhythmBlockPaletteBlocks.js:444 +msgid "whole note" msgstr "" -#: js/PitchBlocks.js:1381 -msgid "In the example shown above, sol is shifted up to la." +#: js/blocks/RhythmBlockPaletteBlocks.js:482 +#: js/blocks/RhythmBlockPaletteBlocks.js:551 +#: js/blocks/RhythmBlockPaletteBlocks.js:602 +#.TRANS: A tuplet is a note value divided into irregular time values. +msgid "tuplet" msgstr "" -#: js/PitchBlocks.js:1388 -#.TRANS: adjust the amount of shift (up or down) of a pitch by musical scale (scalar) steps -msgid "scalar transpose" +#: js/blocks/RhythmBlockPaletteBlocks.js:768 +msgid "septuplet" msgstr "" -#: js/PitchBlocks.js:1423 -msgid "The Accidental block is used to create sharps and flats" +#: js/blocks/RhythmBlockPaletteBlocks.js:796 +msgid "quintuplet" msgstr "" -#: js/PitchBlocks.js:1430 -#.TRANS: An accidental is a modification to a pitch, e.g., sharp or flat. -msgid "accidental override" +#: js/blocks/RhythmBlockPaletteBlocks.js:824 +msgid "triplet" msgstr "" -#: js/PitchBlocks.js:1543 -msgid "The Hertz block (in combination with a Number block) will play a sound at the specified frequency." +#: js/blocks/RhythmBlockPaletteBlocks.js:851 +msgid "simple tuplet" msgstr "" -#: js/PitchBlocks.js:1633 -msgid "The Pitch Number block will play a pitch associated by its number, e.g. 0 for C and 7 for G." +#: js/blocks/RhythmBlockPaletteBlocks.js:861 +msgid "Tuplets are a collection of notes that get scaled to a specific duration." msgstr "" -#: js/PitchBlocks.js:1665 -#: js/PitchBlocks.js:1707 -#.TRANS: a numeric mapping of the notes in an octave based on the musical mode -#.TRANS: a numeric mapping of the notes in an octave based on the musical mode -msgid "nth modal pitch" +#: js/blocks/DrumBlocks.js:59 +msgid "The Noise name block is used to select a noise synthesizer." msgstr "" -#: js/PitchBlocks.js:1668 -msgid "n^th Modal Pitch takes the pattern of pitches in semitones for a mode and makes each point a degree of the mode," +#: js/blocks/DrumBlocks.js:102 +msgid "The Drum name block is used to select a drum." msgstr "" -#: js/PitchBlocks.js:1670 -msgid "starting from 1 and regardless of tonal framework (i.e. not always 8 notes in the octave)" +#: js/blocks/DrumBlocks.js:146 +msgid "The Effects name block is used to select a sound effect." msgstr "" -#: js/PitchBlocks.js:1711 -msgid "N^th Modal Pitch takes a number as an input as the n^th degree for the given mode. 0 is the first position, 1 is the second, -1 is the note before the first etc." +#: js/blocks/DrumBlocks.js:163 +msgid "noise" msgstr "" -#: js/PitchBlocks.js:1713 -msgid "The pitches change according to the mode specified without any need for respellings." +#: js/blocks/DrumBlocks.js:177 +msgid "The Play noise block will generate white, pink, or brown noise." msgstr "" -#: js/PitchBlocks.js:1752 -msgid "Scale Degree is a common convention in music. Scale Degree offers seven possible positions in the scale (1-7) and can be modified via accidentals." +#: js/blocks/DrumBlocks.js:317 +msgid "Replace every instance of a pitch with a drum sound." msgstr "" -#: js/PitchBlocks.js:1754 -msgid "Scale Degree 1 is always the first pitch in a given scale, regardless of octave." +#: js/blocks/DrumBlocks.js:328 +#.TRANS: map a pitch to a drum sound +msgid "map pitch to drum" msgstr "" -#: js/PitchBlocks.js:1776 -#.TRANS: step some number of notes in current musical scale -msgid "scalar step" +#: js/blocks/DrumBlocks.js:395 +msgid "In the example above, a kick drum sound will be played instead of sol." msgstr "" -#: js/PitchBlocks.js:1781 -msgid "The Scalar Step block (in combination with a Number block) will play the next pitch in a scale," +#: js/blocks/DrumBlocks.js:407 +#.TRANS: set the current drum sound for playback +msgid "set drum" msgstr "" -#: js/PitchBlocks.js:1783 -msgid "eg if the last note played was sol, Scalar Step 1 will play la." +#: js/blocks/DrumBlocks.js:451 +msgid "sound effect" msgstr "" -#: js/PitchBlocks.js:1818 -msgid "The Pitch block specifies the pitch name and octave of a note that together determine the frequency of the note." +#: js/blocks/DrumBlocks.js:489 +msgid "You can use multiple Drum blocks within a Note block." msgstr "" -#: js/GraphicsBlocks.js:46 -#: js/DictActions.js:77 -#: js/DictActions.js:155 -#: js/DictActions.js:189 +#: js/blocks/GraphicsBlocks.js:46 +#: js/turtleactions/DictActions.js:77 +#: js/turtleactions/DictActions.js:144 +#: js/turtleactions/DictActions.js:173 msgid "heading" msgstr "lohateny" -#: js/GraphicsBlocks.js:56 +#: js/blocks/GraphicsBlocks.js:56 msgid "The Heading block returns the orientation of the mouse." msgstr "" -#: js/GraphicsBlocks.js:62 +#: js/blocks/GraphicsBlocks.js:62 msgid "The Heading block returns the orientation of the turtle." msgstr "" -#: js/GraphicsBlocks.js:133 +#: js/blocks/GraphicsBlocks.js:133 msgid "The Y block returns the vertical position of the mouse." msgstr "" -#: js/GraphicsBlocks.js:140 +#: js/blocks/GraphicsBlocks.js:140 msgid "The Y block returns the vertical position of the turtle." msgstr "" -#: js/GraphicsBlocks.js:149 +#: js/blocks/GraphicsBlocks.js:149 msgid "y3" msgstr "" -#: js/GraphicsBlocks.js:219 +#: js/blocks/GraphicsBlocks.js:219 msgid "The X block returns the horizontal position of the mouse." msgstr "" -#: js/GraphicsBlocks.js:226 +#: js/blocks/GraphicsBlocks.js:226 msgid "The X block returns the horizontal position of the turtle." msgstr "" -#: js/GraphicsBlocks.js:235 +#: js/blocks/GraphicsBlocks.js:235 msgid "x3" msgstr "" -#: js/GraphicsBlocks.js:295 +#: js/blocks/GraphicsBlocks.js:295 msgid "scroll xy" msgstr "" -#: js/GraphicsBlocks.js:303 +#: js/blocks/GraphicsBlocks.js:303 msgid "The Scroll XY block moves the canvas." msgstr "" -#: js/GraphicsBlocks.js:313 +#: js/blocks/GraphicsBlocks.js:313 msgid "x2" msgstr "" -#: js/GraphicsBlocks.js:313 +#: js/blocks/GraphicsBlocks.js:313 msgid "y2" msgstr "" -#: js/GraphicsBlocks.js:373 -#: js/temperament.js:213 -#: js/temperament.js:241 +#: js/blocks/GraphicsBlocks.js:373 +#: js/widgets/temperament.js:319 +#: js/widgets/temperament.js:347 msgid "clear" msgstr "" -#: js/GraphicsBlocks.js:426 +#: js/blocks/GraphicsBlocks.js:426 msgid "The Control-point 2 block sets the second control point for the Bezier curve." msgstr "" -#: js/GraphicsBlocks.js:433 +#: js/blocks/GraphicsBlocks.js:433 msgid "control point 2" msgstr "" -#: js/GraphicsBlocks.js:436 -#: js/GraphicsBlocks.js:487 -#: js/GraphicsBlocks.js:534 -#: js/GraphicsBlocks.js:750 +#: js/blocks/GraphicsBlocks.js:436 +#: js/blocks/GraphicsBlocks.js:487 +#: js/blocks/GraphicsBlocks.js:534 +#: js/blocks/GraphicsBlocks.js:750 msgid "x1" msgstr "" -#: js/GraphicsBlocks.js:436 -#: js/GraphicsBlocks.js:487 -#: js/GraphicsBlocks.js:534 -#: js/GraphicsBlocks.js:750 +#: js/blocks/GraphicsBlocks.js:436 +#: js/blocks/GraphicsBlocks.js:487 +#: js/blocks/GraphicsBlocks.js:534 +#: js/blocks/GraphicsBlocks.js:750 msgid "y1" msgstr "" -#: js/GraphicsBlocks.js:477 +#: js/blocks/GraphicsBlocks.js:477 msgid "The Control-point 1 block sets the first control point for the Bezier curve." msgstr "" -#: js/GraphicsBlocks.js:484 +#: js/blocks/GraphicsBlocks.js:484 msgid "control point 1" msgstr "" -#: js/GraphicsBlocks.js:527 +#: js/blocks/GraphicsBlocks.js:527 msgid "The Bezier block draws a Bezier curve." msgstr "" -#: js/GraphicsBlocks.js:531 +#: js/blocks/GraphicsBlocks.js:531 msgid "bezier" msgstr "" -#: js/GraphicsBlocks.js:592 +#: js/blocks/GraphicsBlocks.js:592 msgid "The Arc block moves the turtle in an arc." msgstr "" -#: js/GraphicsBlocks.js:600 +#: js/blocks/GraphicsBlocks.js:600 msgid "arc" msgstr "" -#: js/GraphicsBlocks.js:603 +#: js/blocks/GraphicsBlocks.js:603 msgid "angle" msgstr "zoro" -#: js/GraphicsBlocks.js:603 +#: js/blocks/GraphicsBlocks.js:603 msgid "radius" msgstr "" -#: js/GraphicsBlocks.js:620 -#: js/GraphicsBlocks.js:767 -#: js/GraphicsBlocks.js:1010 -#: js/GraphicsBlocks.js:1093 +#: js/blocks/GraphicsBlocks.js:620 +#: js/blocks/GraphicsBlocks.js:767 +#: js/blocks/GraphicsBlocks.js:1010 +#: js/blocks/GraphicsBlocks.js:1093 msgid "Value must be within -5000 to 5000 when Wrap Mode is off." msgstr "" -#: js/GraphicsBlocks.js:622 -#: js/GraphicsBlocks.js:769 -#: js/GraphicsBlocks.js:1012 -#: js/GraphicsBlocks.js:1095 +#: js/blocks/GraphicsBlocks.js:622 +#: js/blocks/GraphicsBlocks.js:769 +#: js/blocks/GraphicsBlocks.js:1012 +#: js/blocks/GraphicsBlocks.js:1095 msgid "Value must be within -20000 to 20000 when Wrap Mode is on." msgstr "" -#: js/GraphicsBlocks.js:660 +#: js/blocks/GraphicsBlocks.js:660 msgid "set heading" msgstr "" -#: js/GraphicsBlocks.js:673 +#: js/blocks/GraphicsBlocks.js:673 msgid "The Set heading block sets the heading of the turtle." msgstr "" -#: js/GraphicsBlocks.js:733 +#: js/blocks/GraphicsBlocks.js:733 msgid "The Set XY block moves the mouse to a specific position on the screen." msgstr "" -#: js/GraphicsBlocks.js:739 +#: js/blocks/GraphicsBlocks.js:739 msgid "The Set XY block moves the turtle to a specific position on the screen." msgstr "" -#: js/GraphicsBlocks.js:747 +#: js/blocks/GraphicsBlocks.js:747 msgid "set xy" msgstr "" -#: js/GraphicsBlocks.js:819 +#: js/blocks/GraphicsBlocks.js:819 msgid "The Right block turns the mouse to the right." msgstr "" -#: js/GraphicsBlocks.js:826 +#: js/blocks/GraphicsBlocks.js:826 msgid "The Right block turns the turtle to the right." msgstr "" -#: js/GraphicsBlocks.js:835 +#: js/blocks/GraphicsBlocks.js:835 msgid "right1" msgstr "" -#: js/GraphicsBlocks.js:835 +#: js/blocks/GraphicsBlocks.js:835 #: plugins/rodi.rtp:77 #: plugins/rodi.rtp:340 #: plugins/rodi.rtp:375 msgid "right" msgstr "havanana" -#: js/GraphicsBlocks.js:899 +#: js/blocks/GraphicsBlocks.js:899 msgid "The Left block turns the mouse to the left." msgstr "" -#: js/GraphicsBlocks.js:906 +#: js/blocks/GraphicsBlocks.js:906 msgid "The Left block turns the turtle to the left." msgstr "" -#: js/GraphicsBlocks.js:915 +#: js/blocks/GraphicsBlocks.js:915 msgid "left1" msgstr "" -#: js/GraphicsBlocks.js:915 +#: js/blocks/GraphicsBlocks.js:915 #: plugins/rodi.rtp:79 #: plugins/rodi.rtp:339 #: plugins/rodi.rtp:362 msgid "left" msgstr "havia" -#: js/GraphicsBlocks.js:967 -#: js/temperament.js:734 -#: js/temperament.js:933 +#: js/blocks/GraphicsBlocks.js:967 +#: js/widgets/temperament.js:875 +#: js/widgets/temperament.js:1078 #: plugins/rodi.rtp:69 #: plugins/rodi.rtp:387 msgid "back" msgstr "miverina" -#: js/GraphicsBlocks.js:976 +#: js/blocks/GraphicsBlocks.js:976 msgid "The Back block moves the mouse backward." msgstr "" -#: js/GraphicsBlocks.js:983 +#: js/blocks/GraphicsBlocks.js:983 msgid "The Back block moves the turtle backward." msgstr "" -#: js/GraphicsBlocks.js:1050 +#: js/blocks/GraphicsBlocks.js:1050 #: plugins/rodi.rtp:71 #: plugins/rodi.rtp:400 msgid "forward" msgstr "mandroso" -#: js/GraphicsBlocks.js:1059 +#: js/blocks/GraphicsBlocks.js:1059 msgid "The Forward block moves the mouse forward." msgstr "" -#: js/GraphicsBlocks.js:1066 +#: js/blocks/GraphicsBlocks.js:1066 msgid "The Forward block moves the turtle forward." msgstr "" -#: js/GraphicsBlocks.js:1154 -#: js/GraphicsBlocks.js:1172 +#: js/blocks/GraphicsBlocks.js:1154 +#: js/blocks/GraphicsBlocks.js:1172 msgid "wrap" msgstr "" -#: js/OrnamentBlocks.js:32 -msgid "staccato factor" -msgstr "" - -#: js/OrnamentBlocks.js:108 -msgid "slur factor" -msgstr "" - -#: js/OrnamentBlocks.js:217 -#: js/OrnamentBlocks.js:309 -#.TRANS: the neighbor refers to a neighboring note, e.g., D is a neighbor of C -msgid "neighbor" -msgstr "" - -#: js/OrnamentBlocks.js:293 -msgid "The Neighbor block rapidly switches between neighboring pitches." -msgstr "" - -#: js/OrnamentBlocks.js:364 -msgid "glide" -msgstr "" - -#: js/OrnamentBlocks.js:479 -#: js/OrnamentBlocks.js:643 -msgid "slur" -msgstr "" - -#: js/OrnamentBlocks.js:558 -#: js/OrnamentBlocks.js:710 -#.TRANS: play each note sharply detached from the others -msgid "staccato" -msgstr "" - -#: js/PenBlocks.js:24 +#: js/blocks/PenBlocks.js:30 msgid "purple" msgstr "" -#: js/PenBlocks.js:37 -#: js/SensorsBlocks.js:521 -#: plugins/rodi.rtp:219 -msgid "blue" -msgstr "" - -#: js/PenBlocks.js:50 -#: js/SensorsBlocks.js:577 -#: plugins/rodi.rtp:218 -msgid "green" -msgstr "" - -#: js/PenBlocks.js:63 +#: js/blocks/PenBlocks.js:80 msgid "yellow" msgstr "" -#: js/PenBlocks.js:76 +#: js/blocks/PenBlocks.js:96 #: plugins/nutrition.rtp:164 msgid "orange" msgstr "volomboasary" -#: js/PenBlocks.js:89 -#: js/SensorsBlocks.js:633 -#: plugins/rodi.rtp:217 -msgid "red" -msgstr "" - -#: js/PenBlocks.js:102 +#: js/blocks/PenBlocks.js:128 msgid "white" msgstr "" -#: js/PenBlocks.js:115 +#: js/blocks/PenBlocks.js:144 msgid "black" msgstr "" -#: js/PenBlocks.js:128 +#: js/blocks/PenBlocks.js:163 msgid "begin fill" msgstr "" -#: js/PenBlocks.js:143 +#: js/blocks/PenBlocks.js:190 msgid "end fill" msgstr "" -#: js/PenBlocks.js:159 -#: js/PenBlocks.js:386 +#: js/blocks/PenBlocks.js:212 +#: js/blocks/PenBlocks.js:560 #.TRANS: set the background color msgid "background" msgstr "" -#: js/PenBlocks.js:206 -#: js/DictActions.js:71 -#: js/DictActions.js:149 -#: js/DictActions.js:186 +#: js/blocks/PenBlocks.js:274 +#: js/turtleactions/DictActions.js:71 +#: js/turtleactions/DictActions.js:138 +#: js/turtleactions/DictActions.js:170 msgid "grey" msgstr "" -#: js/PenBlocks.js:210 +#: js/blocks/PenBlocks.js:282 msgid "The Grey block returns the current pen grey value." msgstr "" -#: js/PenBlocks.js:243 -#: js/DictActions.js:69 -#: js/DictActions.js:147 -#: js/DictActions.js:185 +#: js/blocks/PenBlocks.js:340 +#: js/turtleactions/DictActions.js:69 +#: js/turtleactions/DictActions.js:136 +#: js/turtleactions/DictActions.js:169 msgid "shade" msgstr "fahamatrohana" -#: js/PenBlocks.js:247 +#: js/blocks/PenBlocks.js:347 msgid "The Shade block returns the current pen shade value." msgstr "" -#: js/PenBlocks.js:280 -#: js/DictActions.js:67 -#: js/DictActions.js:145 -#: js/DictActions.js:184 +#: js/blocks/PenBlocks.js:405 +#: js/turtleactions/DictActions.js:67 +#: js/turtleactions/DictActions.js:134 +#: js/turtleactions/DictActions.js:168 msgid "color" msgstr "loko" -#: js/PenBlocks.js:285 +#: js/blocks/PenBlocks.js:415 msgid "The Color block returns the current pen color." msgstr "" -#: js/PenBlocks.js:318 -#: js/DictActions.js:73 -#: js/DictActions.js:151 -#: js/DictActions.js:187 +#: js/blocks/PenBlocks.js:470 +#: js/turtleactions/DictActions.js:73 +#: js/turtleactions/DictActions.js:140 +#: js/turtleactions/DictActions.js:171 msgid "pen size" msgstr "haben'ny penina" -#: js/PenBlocks.js:322 +#: js/blocks/PenBlocks.js:474 msgid "The Pen size block returns the current pen size value." msgstr "" -#: js/PenBlocks.js:355 +#: js/blocks/PenBlocks.js:513 msgid "set font" msgstr "" -#: js/PenBlocks.js:358 +#: js/blocks/PenBlocks.js:518 msgid "The Set font block sets the font used by the Show block." msgstr "" -#: js/PenBlocks.js:391 +#: js/blocks/PenBlocks.js:567 msgid "The Background block sets the window background color." msgstr "" -#: js/PenBlocks.js:408 +#: js/blocks/PenBlocks.js:598 msgid "The Hollow line block creates a line with a hollow center." msgstr "" -#: js/PenBlocks.js:415 +#: js/blocks/PenBlocks.js:606 #.TRANS: draw a line logo has a hollow space down its center msgid "hollow line" msgstr "" -#: js/PenBlocks.js:462 +#: js/blocks/PenBlocks.js:675 msgid "The Fill block fills in a shape with a color." msgstr "" -#: js/PenBlocks.js:470 +#: js/blocks/PenBlocks.js:684 #.TRANS: fill in as a solid color msgid "fill" msgstr "" -#: js/PenBlocks.js:527 +#: js/blocks/PenBlocks.js:761 #.TRANS: raise up the pen so logo it does not draw when it is moved msgid "pen up" msgstr "akaro ny penina" -#: js/PenBlocks.js:532 +#: js/blocks/PenBlocks.js:768 msgid "The Pen-up block raises the pen so that it does not draw." msgstr "" -#: js/PenBlocks.js:552 +#: js/blocks/PenBlocks.js:802 #.TRANS: put down the pen so logo it draws when it is moved msgid "pen down" msgstr "ahidino ny penina" -#: js/PenBlocks.js:557 +#: js/blocks/PenBlocks.js:810 msgid "The Pen-down block lowers the pen so that it draws." msgstr "" -#: js/PenBlocks.js:577 +#: js/blocks/PenBlocks.js:844 #.TRANS: set the width of the line drawn by the pen msgid "set pen size" msgstr "amboary ny haben'ny penina" -#: js/PenBlocks.js:583 +#: js/blocks/PenBlocks.js:854 msgid "The Set-pen-size block changes the size of the pen." msgstr "" -#: js/PenBlocks.js:623 +#: js/blocks/PenBlocks.js:913 #.TRANS: set degree of translucence of the pen color msgid "set translucency" msgstr "" -#: js/PenBlocks.js:627 +#: js/blocks/PenBlocks.js:921 msgid "The Set translucency block changes the opacity of the pen." msgstr "" -#: js/PenBlocks.js:668 +#: js/blocks/PenBlocks.js:981 msgid "set hue" msgstr "" -#: js/PenBlocks.js:672 +#: js/blocks/PenBlocks.js:989 msgid "The Set hue block changes the color of the pen." msgstr "" -#: js/PenBlocks.js:711 +#: js/blocks/PenBlocks.js:1047 msgid "set shade" msgstr "" -#: js/PenBlocks.js:717 +#: js/blocks/PenBlocks.js:1057 msgid "The Set-shade block changes the pen color from dark to light." msgstr "" -#: js/PenBlocks.js:757 +#: js/blocks/PenBlocks.js:1111 #.TRANS: set the level of vividness of the pen color msgid "set grey" msgstr "" -#: js/PenBlocks.js:761 +#: js/blocks/PenBlocks.js:1119 msgid "The Set grey block changes the vividness of the pen color." msgstr "" -#: js/PenBlocks.js:800 +#: js/blocks/PenBlocks.js:1172 msgid "set color" msgstr "" -#: js/PenBlocks.js:806 +#: js/blocks/PenBlocks.js:1182 msgid "The Set-color block changes the pen color." msgstr "" -#: js/VolumeBlocks.js:35 -msgid "synth volume" -msgstr "" - -#: js/VolumeBlocks.js:39 -msgid "The Synth volume block returns the current volume of the current synthesizer." -msgstr "" - -#: js/VolumeBlocks.js:47 -#: js/musicutils.js:730 -#: js/synthutils.js:56 -#.TRANS: musical instrument -msgid "piano" -msgstr "" - -#: js/VolumeBlocks.js:105 -msgid "master volume" -msgstr "" - -#: js/VolumeBlocks.js:109 -msgid "The Master volume block returns the master volume." -msgstr "" - -#: js/VolumeBlocks.js:355 -#: js/VolumeBlocks.js:524 -msgid "set synth volume" -msgstr "" - -#: js/VolumeBlocks.js:362 -#: js/VolumeBlocks.js:545 -msgid "synth" -msgstr "" - -#: js/VolumeBlocks.js:403 -#: js/VolumeBlocks.js:577 -#: js/VolumeBlocks.js:740 -#: js/VolumeActions.js:173 -msgid "Setting volume to 0." -msgstr "" - -#: js/VolumeBlocks.js:440 -msgid "Synth not found" -msgstr "" - -#: js/VolumeBlocks.js:494 -msgid "set drum volume" -msgstr "" - -#: js/VolumeBlocks.js:530 -msgid "The Set synth volume block will change the volume of a particular synth," -msgstr "" - -#: js/VolumeBlocks.js:532 -msgid "eg guitar violin snare drum etc." -msgstr "" - -#: js/VolumeBlocks.js:534 -msgid "The default volume is 50." -msgstr "" - -#: js/VolumeBlocks.js:536 -msgid "The range is 0 for silence to 100 for full volume." -msgstr "" - -#: js/VolumeBlocks.js:597 -msgid "set panning" -msgstr "" - -#: js/VolumeBlocks.js:603 -msgid "The Set Panning block sets the panning for all synthesizers." -msgstr "" - -#: js/VolumeBlocks.js:625 -msgid "Warning: Sound is coming out from only the left or right side." -msgstr "" - -#: js/VolumeBlocks.js:647 -#: js/VolumeBlocks.js:695 -msgid "set master volume" -msgstr "" - -#: js/VolumeBlocks.js:653 -msgid "The Set master volume block sets the volume for all synthesizers." -msgstr "" - -#: js/VolumeBlocks.js:784 -msgid "The Set relative volume block changes the volume of the contained notes." -msgstr "" - -#: js/VolumeBlocks.js:791 -msgid "set relative volume" -msgstr "" - -#: js/VolumeBlocks.js:857 -msgid "decrescendo" -msgstr "" - -#: js/VolumeBlocks.js:921 -msgid "crescendo" -msgstr "" - -#: js/ToneBlocks.js:34 -msgid "oscillator" -msgstr "" - -#: js/ToneBlocks.js:44 -#: js/timbre.js:1562 -#.TRANS: Partials refers to the number of sine waves combined into the sound. -msgid "partials" -msgstr "" - -#: js/ToneBlocks.js:76 -msgid "You are adding multiple oscillator blocks." -msgstr "" - -#: js/ToneBlocks.js:144 -#: js/timbre.js:1225 -#.TRANS: a duo synthesizer combines a synth with a sequencer -msgid "duo synth" -msgstr "" - -#: js/ToneBlocks.js:149 -msgid "The Duo synth block is a duo-frequency modulator used to define a timbre." -msgstr "" - -#: js/ToneBlocks.js:157 -#: js/timbre.js:1476 -msgid "vibrato rate" -msgstr "" - -#: js/ToneBlocks.js:157 -msgid "vibrato intensity" -msgstr "" - -#: js/ToneBlocks.js:185 -#: js/timbre.js:1221 -#.TRANS: AM (amplitude modulation) synthesizer -msgid "AM synth" -msgstr "" - -#: js/ToneBlocks.js:189 -msgid "The AM synth block is an amplitude modulator used to define a timbre." -msgstr "" - -#: js/ToneBlocks.js:224 -#: js/timbre.js:1223 -#.TRANS: FM (frequency modulation) synthesizer -msgid "FM synth" -msgstr "" - -#: js/ToneBlocks.js:228 -msgid "The FM synth block is a frequency modulator used to define a timbre." +#: js/blocks/PitchBlocks.js:141 +#.TRANS: musical transposition (adjustment of pitch up or down) +msgid "transposition" msgstr "" -#: js/ToneBlocks.js:262 -msgid "partial" +#: js/blocks/PitchBlocks.js:168 +#.TRANS: step down one note in current musical scale +msgid "scalar step down" msgstr "" -#: js/ToneBlocks.js:265 -msgid "The Partial block is used to specify a weight for a specific partial harmonic." +#: js/blocks/PitchBlocks.js:172 +msgid "The Scalar step down block returns the number of semi-tones down to the previous note in the current key and mode." msgstr "" -#: js/ToneBlocks.js:284 -#.TRANS: partials are weighted components in a harmonic series -msgid "Partial weight must be between 0 and 1." +#: js/blocks/PitchBlocks.js:190 +#.TRANS: step up one note in current musical scale +msgid "scalar step up" msgstr "" -#: js/ToneBlocks.js:297 -#.TRANS: partials are weighted components in a harmonic series -msgid "Partial block should be used inside of a Weighted-partials block." +#: js/blocks/PitchBlocks.js:194 +msgid "The Scalar step up block returns the number of semi-tones up to the next note in the current key and mode." msgstr "" -#: js/ToneBlocks.js:325 -#.TRANS: partials are weighted components in a harmonic series -msgid "weighted partials" +#: js/blocks/PitchBlocks.js:212 +#.TRANS: the change measured in half-steps between the current pitch and the previous pitch +msgid "change in pitch" msgstr "" -#: js/ToneBlocks.js:383 -msgid "The Harmonic block will add harmonics to the contained notes." +#: js/blocks/PitchBlocks.js:216 +msgid "The Change in pitch block is the difference (in half steps) between the current pitch being played and the previous pitch played." msgstr "" -#: js/ToneBlocks.js:390 -#.TRANS: A harmonic is an overtone. -msgid "harmonic" +#: js/blocks/PitchBlocks.js:243 +#.TRANS: the change measured in scale-steps between the current pitch and the previous pitch +msgid "scalar change in pitch" msgstr "" -#: js/ToneBlocks.js:431 -msgid "The Distortion block adds distortion to the pitch." +#: js/blocks/PitchBlocks.js:250 +#: js/blocks/PitchBlocks.js:432 +#: js/blocks/PitchBlocks.js:1667 +#: js/turtleactions/DictActions.js:89 +#: js/widgets/temperament.js:610 +#: js/widgets/temperament.js:614 +#: js/widgets/temperament.js:855 +#.TRANS: convert current note to piano key (1-88) +#.TRANS: a mapping of pitch to the 88 piano keys +msgid "pitch number" msgstr "" -#: js/ToneBlocks.js:438 -#: js/timbre.js:2100 -#.TRANS: distortion is an alteration in the sound -msgid "distortion" +#: js/blocks/PitchBlocks.js:256 +msgid "The Pitch number block is the value of the pitch of the note currently being played." msgstr "" -#: js/ToneBlocks.js:487 -msgid "The Tremolo block adds a wavering effect." +#: js/blocks/PitchBlocks.js:329 +#: js/blocks/PitchBlocks.js:433 +#.TRANS: the current pitch expressed in Hertz +msgid "pitch in hertz" msgstr "" -#: js/ToneBlocks.js:495 -#: js/timbre.js:2092 -#.TRANS: a wavering effect in a musical tone -msgid "tremolo" +#: js/blocks/PitchBlocks.js:334 +msgid "The Pitch in Hertz block is the value in Hertz of the pitch of the note currently being played." msgstr "" -#: js/ToneBlocks.js:500 -#: js/ToneBlocks.js:569 -#: js/ToneBlocks.js:630 -#: js/ToneBlocks.js:689 -#: js/timbre.js:2134 -#: js/timbre.js:2222 -#: js/timbre.js:2317 -#: js/timbre.js:2419 -#.TRANS: rate at which tremolo wavers -msgid "rate" +#: js/blocks/PitchBlocks.js:367 +#: js/turtleactions/DictActions.js:87 +msgid "current pitch" msgstr "" -#: js/ToneBlocks.js:502 -#: js/ToneBlocks.js:630 -#: js/timbre.js:2137 -#: js/timbre.js:2328 -#.TRANS: amplitude of tremolo waver -msgid "depth" +#: js/blocks/PitchBlocks.js:373 +msgid "The Current Pitch block is used with the Pitch Converter block. In the example above, current pitch, sol 4, is displayed as 392 hertz." msgstr "" -#: js/ToneBlocks.js:559 -msgid "The Phaser block adds a sweeping sound." +#: js/blocks/PitchBlocks.js:410 +msgid "This block converts the pitch value of the last note played into different formats such as hertz, letter name, pitch number, et al." msgstr "" -#: js/ToneBlocks.js:566 -#: js/timbre.js:2098 -#.TRANS: alter the phase of the sound -msgid "phaser" +#: js/blocks/PitchBlocks.js:434 +msgid "alphabet" msgstr "" -#: js/ToneBlocks.js:569 -#: js/timbre.js:2422 -msgid "octaves" +#: js/blocks/PitchBlocks.js:436 +#.TRANS: Translate as "alphabet class" +msgid "letter class" msgstr "" -#: js/ToneBlocks.js:569 -#: js/timbre.js:2425 -msgid "base frequency" +#: js/blocks/PitchBlocks.js:437 +msgid "solfege class" msgstr "" -#: js/ToneBlocks.js:619 -msgid "The Chorus block adds a chorus effect." +#: js/blocks/PitchBlocks.js:438 +msgid "staff y" msgstr "" -#: js/ToneBlocks.js:627 -#: js/timbre.js:2096 -#.TRANS: musical effect to simulate a choral sound -msgid "chorus" +#: js/blocks/PitchBlocks.js:439 +msgid "solfege syllable" msgstr "" -#: js/ToneBlocks.js:630 -msgid "delay" +#: js/blocks/PitchBlocks.js:440 +msgid "pitch class" msgstr "" -#: js/ToneBlocks.js:678 -msgid "The Vibrato block adds a rapid, slight variation in pitch." +#: js/blocks/PitchBlocks.js:441 +msgid "scalar class" msgstr "" -#: js/ToneBlocks.js:686 -#: js/timbre.js:2094 -#.TRANS: a rapid, slight variation in pitch -msgid "vibrato" +#: js/blocks/PitchBlocks.js:443 +msgid "nth degree" msgstr "" -#: js/ToneBlocks.js:689 -#: js/timbre.js:2221 -msgid "intensity" +#: js/blocks/PitchBlocks.js:444 +msgid "pitch to shade" msgstr "" -#: js/ToneBlocks.js:733 -#.TRANS: select synthesizer -msgid "set synth" +#: js/blocks/PitchBlocks.js:445 +msgid "pitch to color" msgstr "" -#: js/ToneBlocks.js:804 -msgid "synth name" +#: js/blocks/PitchBlocks.js:629 +#: js/widgets/musickeyboard.js:735 +#.TRANS: MIDI is a technical standard for electronic music +msgid "MIDI" msgstr "" -#: js/ToneBlocks.js:842 -msgid "set default instrument" +#: js/blocks/PitchBlocks.js:642 +#.TRANS: set an offset associated with the numeric piano keyboard mapping +msgid "set pitch number offset" msgstr "" -#: js/ToneBlocks.js:895 -#: js/ToneBlocks.js:943 -#.TRANS: set the characteristics of a custom instrument -msgid "set instrument" +#: js/blocks/PitchBlocks.js:645 +msgid "The Set pitch number offset block is used to set the offset for mapping pitch numbers to pitch and octave." msgstr "" -#: js/ToneBlocks.js:898 -#: js/ToneBlocks.js:926 -#: js/ToneBlocks.js:932 -msgid "The Set instrument block selects a voice for the synthesizer," +#: js/blocks/PitchBlocks.js:679 +#.TRANS: convert piano key number (1-88) to pitch +msgid "number to pitch" msgstr "" -#: js/ToneBlocks.js:900 -#: js/ToneBlocks.js:934 -msgid "eg guitar piano violin or cello." +#: js/blocks/PitchBlocks.js:682 +msgid "The Number to pitch block will convert a pitch number to a pich name." msgstr "" -#: js/ToneBlocks.js:1015 -msgid "Import a sound file to use as an instrument and set its pitch center." +#: js/blocks/PitchBlocks.js:715 +#.TRANS: convert piano key number (1-88) to octave +msgid "number to octave" msgstr "" -#: js/ToneBlocks.js:1110 -msgid "Upload a sound file to connect with the sample block." +#: js/blocks/PitchBlocks.js:717 +msgid "The Number to octave block will convert a pitch number to an octave." msgstr "" -#: js/MeterBlocks.js:34 -#.TRANS: musical meter (time signature), e.g., 4:4 -msgid "current meter" +#: js/blocks/PitchBlocks.js:726 +msgid "y to pitch" msgstr "" -#: js/MeterBlocks.js:85 -#.TRANS: number of beats per minute -msgid "beat factor" +#: js/blocks/PitchBlocks.js:729 +msgid "Y to pitch block will convert a staff y position to corresponding pitch notation." msgstr "" -#: js/MeterBlocks.js:161 -msgid "The Beats per minute block returns the current beats per minute." +#: js/blocks/PitchBlocks.js:841 +msgid "accidental selector" msgstr "" -#: js/MeterBlocks.js:169 -#: js/status.js:152 -#.TRANS: number of beats played per minute -msgid "beats per minute2" +#: js/blocks/PitchBlocks.js:844 +msgid "The Accidental selector block is used to choose between double-sharp, sharp, natural, flat, and double-flat." msgstr "" -#: js/MeterBlocks.js:169 -#: js/MeterBlocks.js:1056 -#: js/MeterBlocks.js:1133 -#: js/MeterBlocks.js:1211 -#.TRANS: sets tempo by defining a beat and beats per minute -msgid "beats per minute" +#: js/blocks/PitchBlocks.js:858 +msgid "Pitch can be specified in terms of ni dha pa ma ga re sa." msgstr "" -#: js/MeterBlocks.js:233 -#.TRANS: count of current musical measure in meter -msgid "measure count" +#: js/blocks/PitchBlocks.js:872 +msgid "Pitch can be specified in terms of C D E F G A B." msgstr "" -#: js/MeterBlocks.js:241 -msgid "The Measure count block returns the current measure." +#: js/blocks/PitchBlocks.js:884 +msgid "solfege" msgstr "" -#: js/MeterBlocks.js:290 -#.TRANS: count of current beat in the meter -msgid "beat count" +#: js/blocks/PitchBlocks.js:887 +msgid "Pitch can be specified in terms of do re mi fa sol la ti." msgstr "" -#: js/MeterBlocks.js:300 -#: js/MeterBlocks.js:311 -#: js/MeterBlocks.js:565 -#: js/MeterBlocks.js:576 -msgid "The Beat count block is the number of the current beat," +#: js/blocks/PitchBlocks.js:922 +msgid "The Invert block rotates any contained notes around a target note." msgstr "" -#: js/MeterBlocks.js:313 -#: js/MeterBlocks.js:578 -msgid "eg 1, 2, 3, or 4." +#: js/blocks/PitchBlocks.js:929 +#.TRANS: pitch inversion rotates a pitch around another pitch +msgid "invert" msgstr "" -#: js/MeterBlocks.js:368 -#.TRANS: count the number of notes -msgid "sum note values" +#: js/blocks/PitchBlocks.js:968 +#.TRANS: pitch inversion rotates a pitch around another pitch (odd number) +msgid "invert (odd)" msgstr "" -#: js/MeterBlocks.js:376 -#: js/MeterBlocks.js:440 -msgid "The Note counter block can be used to count the number of contained notes." +#: js/blocks/PitchBlocks.js:1001 +#.TRANS: pitch inversion rotates a pitch around another pitch (even number) +msgid "invert (even)" msgstr "" -#: js/MeterBlocks.js:432 -#.TRANS: count the number of notes -msgid "note counter" +#: js/blocks/PitchBlocks.js:1022 +#.TRANS: register is the octave of the current pitch +msgid "register" msgstr "" -#: js/MeterBlocks.js:496 -#.TRANS: number of whole notes that have been played -msgid "whole notes played" +#: js/blocks/PitchBlocks.js:1026 +msgid "The Register block provides an easy way to modify the register (octave) of the notes that follow it." msgstr "" -#: js/MeterBlocks.js:505 -msgid "The Whole notes played block returns the total number of whole notes played." +#: js/blocks/PitchBlocks.js:1047 +#.TRANS: cents are units used to specify the ratio between pitches. There are 100 cents between successive notes. +msgid "50 cents" msgstr "" -#: js/MeterBlocks.js:555 -#: js/DictActions.js:83 -#.TRANS: number of notes that have been played -msgid "notes played" +#: js/blocks/PitchBlocks.js:1102 +msgid "The Semi-tone transposition block will shift the pitches contained inside Note blocks up (or down) by half steps." msgstr "" -#: js/MeterBlocks.js:653 -msgid "The No clock block decouples the notes from the master clock." +#: js/blocks/PitchBlocks.js:1104 +msgid "In the example shown above, sol is shifted up to sol#." msgstr "" -#: js/MeterBlocks.js:661 -#.TRANS: don't lock notes to master clock -msgid "no clock" +#: js/blocks/PitchBlocks.js:1110 +#.TRANS: adjust the amount of shift (up or down) of a pitch +msgid "semi-tone transpose" msgstr "" -#: js/MeterBlocks.js:700 -msgid "on weak beat do" +#: js/blocks/PitchBlocks.js:1143 +msgid "The Transpose by Ratio block will shift the pitches contained inside Note blocks up (or down) by a ratio" msgstr "" -#: js/MeterBlocks.js:705 -msgid "The On-weak-beat block lets you specify actions to take on weak (off) beats." +#: js/blocks/PitchBlocks.js:1149 +#.TRANS: adjust the amount of shift (up or down) of a pitch +msgid "transpose by ratio" msgstr "" -#: js/MeterBlocks.js:750 -msgid "on strong beat" +#: js/blocks/PitchBlocks.js:1232 +#.TRANS: down sixth means the note is five scale degrees below current note +msgid "down sixth" msgstr "" -#: js/MeterBlocks.js:758 -msgid "The On-strong-beat block lets you specify actions to take on specified beats." +#: js/blocks/PitchBlocks.js:1251 +#.TRANS: down third means the note is two scale degrees below current note +msgid "down third" msgstr "" -#: js/MeterBlocks.js:769 -msgid "beat" +#: js/blocks/PitchBlocks.js:1270 +#.TRANS: seventh means the note is the six scale degrees above current note +msgid "seventh" msgstr "" -#: js/MeterBlocks.js:813 -msgid "on every beat do" +#: js/blocks/PitchBlocks.js:1289 +#.TRANS: sixth means the note is the five scale degrees above current note +msgid "sixth" msgstr "" -#: js/MeterBlocks.js:821 -msgid "The On-every-beat block lets you specify actions to take on every beat." +#: js/blocks/PitchBlocks.js:1308 +#.TRANS: fifth means the note is the four scale degrees above current note +msgid "fifth" msgstr "" -#: js/MeterBlocks.js:874 -msgid "on every note do" +#: js/blocks/PitchBlocks.js:1328 +#.TRANS: fourth means the note is three scale degrees above current note +msgid "fourth" msgstr "" -#: js/MeterBlocks.js:882 -msgid "The On-every-note block lets you specify actions to take on every note." +#: js/blocks/PitchBlocks.js:1347 +#.TRANS: third means the note is two scale degrees above current note +msgid "third" msgstr "" -#: js/MeterBlocks.js:928 -#: js/MeterBlocks.js:999 -#.TRANS: sets tempo by defining a beat and beats per minute -msgid "master beats per minute" +#: js/blocks/PitchBlocks.js:1366 +#.TRANS: second means the note is one scale degree above current note +msgid "second" msgstr "" -#: js/MeterBlocks.js:952 -#: js/MeterBlocks.js:1078 -#: js/MeterBlocks.js:1135 -msgid "bpm" +#: js/blocks/PitchBlocks.js:1407 +msgid "The Scalar transposition block will shift the pitches contained inside Note blocks up (or down) the scale." msgstr "" -#: js/MeterBlocks.js:952 -#: js/MeterBlocks.js:1078 -#: js/MeterBlocks.js:1135 -msgid "beat value" +#: js/blocks/PitchBlocks.js:1409 +msgid "In the example shown above, sol is shifted up to la." msgstr "" -#: js/MeterBlocks.js:1024 -#: js/MeterBlocks.js:1167 -#: js/MeterBlocks.js:1241 -msgid "Beats per minute must be > 30." +#: js/blocks/PitchBlocks.js:1416 +#.TRANS: adjust the amount of shift (up or down) of a pitch by musical scale (scalar) steps +msgid "scalar transpose" msgstr "" -#: js/MeterBlocks.js:1027 -#: js/MeterBlocks.js:1170 -#: js/MeterBlocks.js:1244 -msgid "Maximum beats per minute is 1000." +#: js/blocks/PitchBlocks.js:1451 +msgid "The Accidental block is used to create sharps and flats" msgstr "" -#: js/MeterBlocks.js:1068 -msgid "The Beats per minute block sets the number of 1/4 notes per minute." +#: js/blocks/PitchBlocks.js:1458 +#.TRANS: An accidental is a modification to a pitch, e.g., sharp or flat. +msgid "accidental override" msgstr "" -#: js/MeterBlocks.js:1279 -#.TRANS: anacrusis -msgid "pickup" +#: js/blocks/PitchBlocks.js:1581 +msgid "The Hertz block (in combination with a Number block) will play a sound at the specified frequency." msgstr "" -#: js/MeterBlocks.js:1367 -msgid "number of beats" +#: js/blocks/PitchBlocks.js:1671 +msgid "The Pitch Number block will play a pitch associated by its number, e.g. 0 for C and 7 for G." msgstr "" -#: js/DictBlocks.js:77 -msgid "show dictionary" +#: js/blocks/PitchBlocks.js:1703 +#: js/blocks/PitchBlocks.js:1745 +#.TRANS: a numeric mapping of the notes in an octave based on the musical mode +#.TRANS: a numeric mapping of the notes in an octave based on the musical mode +msgid "nth modal pitch" msgstr "" -#: js/DictBlocks.js:129 -msgid "The Dictionary block returns a dictionary." +#: js/blocks/PitchBlocks.js:1706 +msgid "n^th Modal Pitch takes the pattern of pitches in semitones for a mode and makes each point a degree of the mode," msgstr "" -#: js/DictBlocks.js:197 -#: js/DictBlocks.js:339 -msgid "The Get-dict block returns a value in the dictionary for a specified key." +#: js/blocks/PitchBlocks.js:1708 +msgid "starting from 1 and regardless of tonal framework (i.e. not always 8 notes in the octave)" msgstr "" -#: js/DictBlocks.js:212 -#: js/DictBlocks.js:354 -#.TRANS: retrieve a value from the dictionary with a given key -msgid "get value" +#: js/blocks/PitchBlocks.js:1749 +msgid "N^th Modal Pitch takes a number as an input as the n^th degree for the given mode. 0 is the first position, 1 is the second, -1 is the note before the first etc." msgstr "" -#: js/DictBlocks.js:215 -#: js/DictBlocks.js:216 -#: js/DictBlocks.js:289 -#: js/DictBlocks.js:290 -#: js/DictBlocks.js:357 -#: js/DictBlocks.js:430 -#: js/DictBlocks.js:431 -msgid "key2" +#: js/blocks/PitchBlocks.js:1751 +msgid "The pitches change according to the mode specified without any need for respellings." msgstr "" -#: js/DictBlocks.js:271 -#: js/DictBlocks.js:411 -msgid "The Set-dict block sets a value in the dictionary for a specified key." +#: js/blocks/PitchBlocks.js:1790 +msgid "Scale Degree is a common convention in music. Scale Degree offers seven possible positions in the scale (1-7) and can be modified via accidentals." msgstr "" -#: js/DictBlocks.js:286 -#: js/DictBlocks.js:427 -#.TRANS: set a value in the dictionary for a given key -msgid "set value" +#: js/blocks/PitchBlocks.js:1792 +msgid "Scale Degree 1 is always the first pitch in a given scale, regardless of octave." msgstr "" -#: js/ExtrasBlocks.js:33 -msgid "fraction" +#: js/blocks/PitchBlocks.js:1814 +#.TRANS: step some number of notes in current musical scale +msgid "scalar step" msgstr "" -#: js/ExtrasBlocks.js:36 -msgid "Convert a float to a fraction" +#: js/blocks/PitchBlocks.js:1819 +msgid "The Scalar Step block (in combination with a Number block) will play the next pitch in a scale," msgstr "" -#: js/ExtrasBlocks.js:93 -msgid "save as ABC" +#: js/blocks/PitchBlocks.js:1821 +msgid "eg if the last note played was sol, Scalar Step 1 will play la." msgstr "" -#: js/ExtrasBlocks.js:96 -#: js/ExtrasBlocks.js:132 -#: js/ExtrasBlocks.js:168 -msgid "title" +#: js/blocks/PitchBlocks.js:1857 +msgid "The Pitch block specifies the pitch name and octave of a note that together determine the frequency of the note." msgstr "" -#: js/ExtrasBlocks.js:129 -msgid "save as Lilypond" +#: js/blocks/ProgramBlocks.js:33 +msgid "The Load-heap-from-app block loads the heap from a web page." msgstr "" -#: js/ExtrasBlocks.js:165 -msgid "save as SVG" +#: js/blocks/ProgramBlocks.js:44 +#.TRANS: load the heap contents from a URL +msgid "load heap from App" msgstr "" -#: js/ExtrasBlocks.js:216 -msgid "no background" +#: js/blocks/ProgramBlocks.js:95 +msgid "Error parsing JSON data:" msgstr "" -#: js/ExtrasBlocks.js:219 -msgid "The No background block eliminates the background from the saved SVG output." +#: js/blocks/ProgramBlocks.js:100 +msgid "404: Page not found" msgstr "" -#: js/ExtrasBlocks.js:247 -msgid "show blocks" -msgstr "asehoy ireo bolongana" +#: js/blocks/ProgramBlocks.js:133 +msgid "The Save-heap-to-app block saves the heap to a web page." +msgstr "" -#: js/ExtrasBlocks.js:249 -msgid "The Show blocks block shows the blocks." +#: js/blocks/ProgramBlocks.js:144 +#.TRANS: save the heap contents to a URL +msgid "save heap to App" msgstr "" -#: js/ExtrasBlocks.js:274 -msgid "hide blocks" -msgstr "afeno ireo bolongana" +#: js/blocks/ProgramBlocks.js:189 +msgid "Cannot find a valid heap for" +msgstr "" -#: js/ExtrasBlocks.js:276 -msgid "The Hide blocks block hides the blocks." +#: js/blocks/ProgramBlocks.js:206 +msgid "The Load-heap block loads the heap from a file." msgstr "" -#: js/ExtrasBlocks.js:305 -#: js/ExtrasBlocks.js:335 -msgid "The Space block is used to add space between blocks." +#: js/blocks/ProgramBlocks.js:217 +#.TRANS: load the heap from a file +msgid "load heap" msgstr "" -#: js/ExtrasBlocks.js:373 -msgid "wait" -msgstr "andraso" +#: js/blocks/ProgramBlocks.js:270 +msgid "The file you selected does not contain a valid heap." +msgstr "" -#: js/ExtrasBlocks.js:376 -msgid "The Wait block pauses the program for a specified number of seconds." +#: js/blocks/ProgramBlocks.js:275 +msgid "The loadHeap block needs a loadFile block." msgstr "" -#: js/ExtrasBlocks.js:430 -#: plugins/facebook.rtp:30 -msgid "comment" -msgstr "tsikera" +#: js/blocks/ProgramBlocks.js:291 +msgid "The Set-heap block loads the heap." +msgstr "" -#: js/ExtrasBlocks.js:466 -msgid "print" -msgstr "pirinty" +#: js/blocks/ProgramBlocks.js:340 +msgid "The block you selected does not contain a valid heap." +msgstr "" -#: js/ExtrasBlocks.js:473 -msgid "The Print block displays text at the top of the screen." +#: js/blocks/ProgramBlocks.js:343 +msgid "The Set heap block needs a heap." msgstr "" -#: js/ExtrasBlocks.js:579 -msgid "display grid" +#: js/blocks/ProgramBlocks.js:360 +msgid "The Load-dictionary block loads a dictionary from a file." msgstr "" -#: js/ExtrasBlocks.js:584 -msgid "The Display Grid Block changes the grid type" +#: js/blocks/ProgramBlocks.js:372 +#.TRANS: load a dictionary from a file +msgid "load dictionary" msgstr "" -#: js/ExtrasBlocks.js:686 -#: js/ExtrasBlocks.js:705 -#: js/ExtrasBlocks.js:728 -#: js/ExtrasBlocks.js:751 -#: js/ExtrasBlocks.js:769 -#: js/ExtrasBlocks.js:788 -#: js/ExtrasBlocks.js:807 -#: js/ExtrasBlocks.js:826 -msgid "unknown" +#: js/blocks/ProgramBlocks.js:390 +#: js/blocks/ProgramBlocks.js:658 +#: js/blocks/ToneBlocks.js:1025 +msgid "file" msgstr "" -#: js/SensorsBlocks.js:36 -msgid "The Input block prompts for keyboard input." +#: js/blocks/ProgramBlocks.js:444 +msgid "The file you selected does not contain a valid dictionary." msgstr "" -#: js/SensorsBlocks.js:46 -msgid "input" +#: js/blocks/ProgramBlocks.js:449 +msgid "The load dictionary block needs a load file block." msgstr "" -#: js/SensorsBlocks.js:64 -msgid "Input a value" +#: js/blocks/ProgramBlocks.js:466 +msgid "The Set-dictionary block loads a dictionary." msgstr "" -#: js/SensorsBlocks.js:126 -msgid "input value" +#: js/blocks/ProgramBlocks.js:477 +#.TRANS: load a dictionary from a JSON +msgid "set dictionary" msgstr "" -#: js/SensorsBlocks.js:131 -msgid "The Input-value block stores the input." +#: js/blocks/ProgramBlocks.js:546 +msgid "The block you selected does not contain a valid dictionary." msgstr "" -#: js/SensorsBlocks.js:238 -msgid "loudness" +#: js/blocks/ProgramBlocks.js:550 +msgid "The set dictionary block needs a dictionary." msgstr "" -#: js/SensorsBlocks.js:245 -msgid "The Loudness block returns the volume detected by the microphone." +#: js/blocks/ProgramBlocks.js:567 +msgid "The Save-heap block saves the heap to a file." msgstr "" -#: js/SensorsBlocks.js:300 -msgid "click" +#: js/blocks/ProgramBlocks.js:578 +#.TRANS: save the heap to a file +msgid "save heap" msgstr "" -#: js/SensorsBlocks.js:306 -msgid "The Click block triggers an event if a mouse has been clicked." +#: js/blocks/ProgramBlocks.js:629 +msgid "The Save-dictionary block saves a dictionary to a file." msgstr "" -#: js/SensorsBlocks.js:313 -msgid "The Click block triggers an event if a turtle has been clicked." +#: js/blocks/ProgramBlocks.js:640 +#.TRANS: save a dictionary to a file +msgid "save dictionary" msgstr "" -#: js/SensorsBlocks.js:342 -msgid "cursor over" +#: js/blocks/ProgramBlocks.js:720 +msgid "The Open palette block opens a palette." msgstr "" -#: js/SensorsBlocks.js:387 -msgid "cursor out" +#: js/blocks/ProgramBlocks.js:727 +msgid "open palette" msgstr "" -#: js/SensorsBlocks.js:433 -msgid "cursor button down" +#: js/blocks/ProgramBlocks.js:785 +msgid "The Delete block block removes a block." msgstr "" -#: js/SensorsBlocks.js:477 -msgid "cursor button up" +#: js/blocks/ProgramBlocks.js:797 +#.TRANS: Move this block to the trash. +msgid "delete block" msgstr "" -#: js/SensorsBlocks.js:638 -msgid "The Get red block returns the red component of the pixel under the mouse." +#: js/blocks/ProgramBlocks.js:861 +msgid "The Move block block moves a block." msgstr "" -#: js/SensorsBlocks.js:644 -msgid "The Get red block returns the red component of the pixel under the turtle." +#: js/blocks/ProgramBlocks.js:869 +#.TRANS: Move the position of a block on the screen. +msgid "move block" msgstr "" -#: js/SensorsBlocks.js:685 -#: plugins/rodi.rtp:216 -msgid "pixel color" +#: js/blocks/ProgramBlocks.js:881 +#: js/blocks/ProgramBlocks.js:1048 +msgid "block number" msgstr "" -#: js/SensorsBlocks.js:690 -msgid "The Get pixel block returns the color of the pixel under the mouse." +#: js/blocks/ProgramBlocks.js:935 +#.TRANS: Run program beginning at this block. +msgid "run block" msgstr "" -#: js/SensorsBlocks.js:696 -msgid "The Get pixel block returns the color of the pixel under the turtle." +#: js/blocks/ProgramBlocks.js:1025 +msgid "The Dock block block connections two blocks." msgstr "" -#: js/SensorsBlocks.js:758 -msgid "time" +#: js/blocks/ProgramBlocks.js:1036 +#.TRANS: We can connect a block to another block. +msgid "connect blocks" msgstr "" -#: js/SensorsBlocks.js:804 -msgid "cursor y" +#: js/blocks/ProgramBlocks.js:1048 +msgid "target block" msgstr "" -#: js/SensorsBlocks.js:809 -msgid "The Cursor Y block returns the vertical position of the mouse." +#: js/blocks/ProgramBlocks.js:1048 +msgid "connection number" msgstr "" -#: js/SensorsBlocks.js:845 -msgid "cursor x" +#: js/blocks/ProgramBlocks.js:1140 +msgid "The Make block block creates a new block." msgstr "" -#: js/SensorsBlocks.js:850 -msgid "The Cursor X block returns the horizontal position of the mouse." +#: js/blocks/ProgramBlocks.js:1152 +#.TRANS: Create a new block +msgid "make block" msgstr "" -#: js/SensorsBlocks.js:886 -msgid "mouse button" +#: js/blocks/ProgramBlocks.js:1285 +msgid "Cannot find block" msgstr "" -#: js/SensorsBlocks.js:888 -msgid "The Mouse-button block returns True if the mouse button is pressed." +#: js/blocks/ProgramBlocks.js:1304 +#: js/blocks/ProgramBlocks.js:1313 +msgid "Warning: block argument type mismatch" msgstr "" -#: js/SensorsBlocks.js:934 -msgid "to ASCII" +#: js/blocks/ProgramBlocks.js:1347 +msgid "The Open project block is used to open a project from a web page." msgstr "" -#: js/SensorsBlocks.js:938 -msgid "The To ASCII block converts numbers to letters." +#: js/blocks/ProgramBlocks.js:1357 +msgid "open project" msgstr "" -#: js/SensorsBlocks.js:1005 -msgid "The Keyboard block returns computer keyboard input." +#: js/blocks/ProgramBlocks.js:1410 +msgid "Please enter a valid URL." msgstr "" -#: js/IntervalsActions.js:216 -msgid "Adding missing pitch number 0." +#: js/blocks/ToneBlocks.js:34 +msgid "oscillator" msgstr "" -#: js/IntervalsActions.js:224 -msgid "Ignoring pitch numbers less than zero or greater than eleven." +#: js/blocks/ToneBlocks.js:42 +#: js/blocks/WidgetBlocks.js:179 +#: js/widgets/timbre.js:1558 +#: js/widgets/timbre.js:1808 +#.TRANS: there are different types (sine, triangle, square...) of oscillators. +#.TRANS: type of filter, e.g., lowpass, highpass, etc. +msgid "type" msgstr "" -#: js/IntervalsActions.js:230 -msgid "Ignoring duplicate pitch numbers." +#: js/blocks/ToneBlocks.js:44 +#: js/widgets/timbre.js:1562 +#.TRANS: Partials refers to the number of sine waves combined into the sound. +msgid "partials" msgstr "" -#: js/PitchActions.js:88 -msgid "The Scalar Step Block must be used inside of a Note Block." +#: js/blocks/ToneBlocks.js:76 +msgid "You are adding multiple oscillator blocks." msgstr "" -#: js/PitchActions.js:107 -msgid "The Scalar Step Block must be preceded by a Pitch Block." +#: js/blocks/ToneBlocks.js:144 +#: js/widgets/timbre.js:1225 +#.TRANS: a duo synthesizer combines a synth with a sequencer +msgid "duo synth" msgstr "" -#: js/DrumActions.js:231 -msgid "Noise Block: Did you mean to use a Note block?" +#: js/blocks/ToneBlocks.js:149 +msgid "The Duo synth block is a duo-frequency modulator used to define a timbre." msgstr "" -#: js/MeterActions.js:101 -#: js/MeterActions.js:139 -msgid "beats per minute must be greater than" +#: js/blocks/ToneBlocks.js:157 +#: js/widgets/timbre.js:1476 +msgid "vibrato rate" msgstr "" -#: js/MeterActions.js:111 -#: js/MeterActions.js:149 -msgid "maximum" +#: js/blocks/ToneBlocks.js:157 +msgid "vibrato intensity" msgstr "" -#: js/MeterActions.js:117 -#: js/MeterActions.js:155 -msgid "beats per minute is" +#: js/blocks/ToneBlocks.js:185 +#: js/widgets/timbre.js:1221 +#.TRANS: AM (amplitude modulation) synthesizer +msgid "AM synth" msgstr "" -#: js/ToneActions.js:134 -msgid "Vibrato intensity must be between 1 and 100." +#: js/blocks/ToneBlocks.js:189 +msgid "The AM synth block is an amplitude modulator used to define a timbre." msgstr "" -#: js/ToneActions.js:139 -msgid "Vibrato rate must be greater than 0." +#: js/blocks/ToneBlocks.js:224 +#: js/widgets/timbre.js:1223 +#.TRANS: FM (frequency modulation) synthesizer +msgid "FM synth" msgstr "" -#: js/ToneActions.js:192 -#: js/ToneActions.js:265 -#.TRANS: Depth is the intesity of the tremolo or chorus effect. -msgid "Depth is out of range." +#: js/blocks/ToneBlocks.js:228 +msgid "The FM synth block is a frequency modulator used to define a timbre." msgstr "" -#: js/ToneActions.js:301 -msgid "Distortion must be from 0 to 100." +#: js/blocks/ToneBlocks.js:262 +msgid "partial" msgstr "" -#: js/ToneActions.js:332 -#.TRANS: partials components in a harmonic series -msgid "Partial must be greater than or equal to 0." +#: js/blocks/ToneBlocks.js:265 +msgid "The Partial block is used to specify a weight for a specific partial harmonic." msgstr "" -#: js/ToneActions.js:378 -#: js/ToneActions.js:417 -#: js/ToneActions.js:456 -#: js/timbre.js:782 -msgid "Unable to use synth due to existing oscillator" +#: js/blocks/ToneBlocks.js:284 +#.TRANS: partials are weighted components in a harmonic series +msgid "Partial weight must be between 0 and 1." msgstr "" -#: js/ToneActions.js:388 -#: js/ToneActions.js:427 -msgid "The input cannot be negative." +#: js/blocks/ToneBlocks.js:297 +#.TRANS: partials are weighted components in a harmonic series +msgid "Partial block should be used inside of a Weighted-partials block." msgstr "" -#: js/DictActions.js:75 -#: js/DictActions.js:153 -#: js/DictActions.js:188 -msgid "font" +#: js/blocks/ToneBlocks.js:325 +#.TRANS: partials are weighted components in a harmonic series +msgid "weighted partials" msgstr "" -#: js/musicutils.js:363 -#: js/musicutils.js:471 -#: js/pitchdrummatrix.js:151 -#: js/musickeyboard.js:2563 -msgid "rest" +#: js/blocks/ToneBlocks.js:383 +msgid "The Harmonic block will add harmonics to the contained notes." msgstr "" -#: js/musicutils.js:565 -#.TRANS: ordinal number. Please keep exactly one space between each number. -msgid "1st 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th" +#: js/blocks/ToneBlocks.js:390 +#.TRANS: A harmonic is an overtone. +msgid "harmonic" msgstr "" -#: js/musicutils.js:629 -#: js/musicutils.js:812 -#: js/musicutils.js:911 -#.TRANS: augmented is a music term related to intervals -msgid "augmented" +#: js/blocks/ToneBlocks.js:431 +msgid "The Distortion block adds distortion to the pitch." msgstr "" -#: js/musicutils.js:631 -#: js/musicutils.js:813 -#: js/musicutils.js:910 -#.TRANS: diminished is a music term related to intervals and mode -msgid "diminished" +#: js/blocks/ToneBlocks.js:438 +#: js/widgets/timbre.js:2100 +#.TRANS: distortion is an alteration in the sound +msgid "distortion" msgstr "" -#: js/musicutils.js:639 -#.TRANS: twelve semi-tone scale for music -msgid "chromatic" +#: js/blocks/ToneBlocks.js:487 +msgid "The Tremolo block adds a wavering effect." msgstr "" -#: js/musicutils.js:640 -msgid "algerian" +#: js/blocks/ToneBlocks.js:495 +#: js/widgets/timbre.js:2092 +#.TRANS: a wavering effect in a musical tone +msgid "tremolo" msgstr "" -#: js/musicutils.js:641 -msgid "spanish" +#: js/blocks/ToneBlocks.js:500 +#: js/blocks/ToneBlocks.js:569 +#: js/blocks/ToneBlocks.js:630 +#: js/blocks/ToneBlocks.js:689 +#: js/widgets/timbre.js:2134 +#: js/widgets/timbre.js:2222 +#: js/widgets/timbre.js:2317 +#: js/widgets/timbre.js:2419 +#.TRANS: rate at which tremolo wavers +msgid "rate" msgstr "" -#: js/musicutils.js:643 -#.TRANS: modal scale in music -msgid "octatonic" +#: js/blocks/ToneBlocks.js:502 +#: js/blocks/ToneBlocks.js:630 +#: js/widgets/timbre.js:2137 +#: js/widgets/timbre.js:2328 +#.TRANS: amplitude of tremolo waver +msgid "depth" msgstr "" -#: js/musicutils.js:645 -#.TRANS: harmonic major scale in music -msgid "harmonic major" +#: js/blocks/ToneBlocks.js:559 +msgid "The Phaser block adds a sweeping sound." msgstr "" -#: js/musicutils.js:647 -#.TRANS: natural minor scales in music -msgid "natural minor" +#: js/blocks/ToneBlocks.js:566 +#: js/widgets/timbre.js:2098 +#.TRANS: alter the phase of the sound +msgid "phaser" msgstr "" -#: js/musicutils.js:649 -#.TRANS: harmonic minor scale in music -msgid "harmonic minor" +#: js/blocks/ToneBlocks.js:569 +#: js/turtleactions/IntervalsActions.js:114 +#: js/widgets/timbre.js:2422 +msgid "octaves" msgstr "" -#: js/musicutils.js:651 -#.TRANS: melodic minor scale in music -msgid "melodic minor" +#: js/blocks/ToneBlocks.js:569 +#: js/widgets/timbre.js:2425 +msgid "base frequency" msgstr "" -#: js/musicutils.js:655 -#.TRANS: modal scale for music -msgid "dorian" +#: js/blocks/ToneBlocks.js:619 +msgid "The Chorus block adds a chorus effect." msgstr "" -#: js/musicutils.js:657 -#.TRANS: modal scale for music -msgid "phrygian" +#: js/blocks/ToneBlocks.js:627 +#: js/widgets/timbre.js:2096 +#.TRANS: musical effect to simulate a choral sound +msgid "chorus" msgstr "" -#: js/musicutils.js:659 -#.TRANS: modal scale for music -msgid "lydian" +#: js/blocks/ToneBlocks.js:630 +msgid "delay" msgstr "" -#: js/musicutils.js:661 -#.TRANS: modal scale for music -msgid "mixolydian" +#: js/blocks/ToneBlocks.js:678 +msgid "The Vibrato block adds a rapid, slight variation in pitch." msgstr "" -#: js/musicutils.js:665 -#.TRANS: modal scale for music -msgid "locrian" +#: js/blocks/ToneBlocks.js:686 +#: js/widgets/timbre.js:2094 +#.TRANS: a rapid, slight variation in pitch +msgid "vibrato" msgstr "" -#: js/musicutils.js:667 -#.TRANS: minor jazz scale for music -msgid "jazz minor" +#: js/blocks/ToneBlocks.js:689 +#: js/widgets/timbre.js:2221 +msgid "intensity" msgstr "" -#: js/musicutils.js:669 -#.TRANS: bebop scale for music -msgid "bebop" +#: js/blocks/ToneBlocks.js:733 +#.TRANS: select synthesizer +msgid "set synth" msgstr "" -#: js/musicutils.js:670 -msgid "arabic" +#: js/blocks/ToneBlocks.js:804 +msgid "synth name" msgstr "" -#: js/musicutils.js:671 -msgid "byzantine" +#: js/blocks/ToneBlocks.js:842 +msgid "set default instrument" msgstr "" -#: js/musicutils.js:673 -#.TRANS: musical scale for music by Verdi -msgid "enigmatic" +#: js/blocks/ToneBlocks.js:895 +#: js/blocks/ToneBlocks.js:943 +#.TRANS: set the characteristics of a custom instrument +msgid "set instrument" msgstr "" -#: js/musicutils.js:674 -msgid "ethiopian" +#: js/blocks/ToneBlocks.js:898 +#: js/blocks/ToneBlocks.js:926 +#: js/blocks/ToneBlocks.js:932 +msgid "The Set instrument block selects a voice for the synthesizer," msgstr "" -#: js/musicutils.js:676 -#.TRANS: Ethiopic scale for music -msgid "geez" +#: js/blocks/ToneBlocks.js:900 +#: js/blocks/ToneBlocks.js:934 +msgid "eg guitar piano violin or cello." msgstr "" -#: js/musicutils.js:677 -msgid "hindu" +#: js/blocks/ToneBlocks.js:1015 +msgid "Import a sound file to use as an instrument and set its pitch center." msgstr "" -#: js/musicutils.js:678 -msgid "hungarian" +#: js/blocks/ToneBlocks.js:1110 +msgid "Upload a sound file to connect with the sample block." msgstr "" -#: js/musicutils.js:680 -#.TRANS: minor Romanian scale for music -msgid "romanian minor" +#: js/blocks/VolumeBlocks.js:35 +msgid "synth volume" msgstr "" -#: js/musicutils.js:681 -msgid "spanish gypsy" +#: js/blocks/VolumeBlocks.js:39 +msgid "The Synth volume block returns the current volume of the current synthesizer." msgstr "" -#: js/musicutils.js:683 -#.TRANS: musical scale for Mid-Eastern music -msgid "maqam" +#: js/blocks/VolumeBlocks.js:105 +msgid "master volume" msgstr "" -#: js/musicutils.js:685 -#.TRANS: minor blues scale for music -msgid "minor blues" +#: js/blocks/VolumeBlocks.js:109 +msgid "The Master volume block returns the master volume." msgstr "" -#: js/musicutils.js:687 -#.TRANS: major blues scale for music -msgid "major blues" +#: js/blocks/VolumeBlocks.js:355 +#: js/blocks/VolumeBlocks.js:524 +msgid "set synth volume" msgstr "" -#: js/musicutils.js:688 -msgid "whole tone" +#: js/blocks/VolumeBlocks.js:362 +#: js/blocks/VolumeBlocks.js:545 +msgid "synth" msgstr "" -#: js/musicutils.js:690 -#.TRANS: pentatonic is a general term that means "five note scale". This scale is typically known as "minor pentatonic" -msgid "minor pentatonic" +#: js/blocks/VolumeBlocks.js:403 +#: js/blocks/VolumeBlocks.js:577 +#: js/blocks/VolumeBlocks.js:740 +#: js/turtleactions/VolumeActions.js:173 +msgid "Setting volume to 0." msgstr "" -#: js/musicutils.js:692 -#.TRANS: pentatonic is a general term that means "five note scale". This scale is typically known as "major pentatonic" -msgid "major pentatonic" +#: js/blocks/VolumeBlocks.js:440 +msgid "Synth not found" msgstr "" -#: js/musicutils.js:693 -msgid "chinese" +#: js/blocks/VolumeBlocks.js:494 +msgid "set drum volume" msgstr "" -#: js/musicutils.js:694 -msgid "egyptian" +#: js/blocks/VolumeBlocks.js:530 +msgid "The Set synth volume block will change the volume of a particular synth," msgstr "" -#: js/musicutils.js:696 -#.TRANS: https://en.wikipedia.org/wiki/Hirajoshi_scale NOTE: There are three different versions of this scale -msgid "hirajoshi" +#: js/blocks/VolumeBlocks.js:532 +msgid "eg guitar violin snare drum etc." msgstr "" -#: js/musicutils.js:697 -msgid "Japan" +#: js/blocks/VolumeBlocks.js:534 +msgid "The default volume is 50." msgstr "" -#: js/musicutils.js:699 -#.TRANS: https://en.wikipedia.org/wiki/In_scale and https://en.wikipedia.org/wiki/Sakura_Sakura -msgid "in" +#: js/blocks/VolumeBlocks.js:536 +msgid "The range is 0 for silence to 100 for full volume." msgstr "" -#: js/musicutils.js:701 -#.TRANS: https://en.wikipedia.org/wiki/Miny%C5%8D_scale -msgid "minyo" +#: js/blocks/VolumeBlocks.js:597 +msgid "set panning" msgstr "" -#: js/musicutils.js:703 -#.TRANS: Italian mathematician -msgid "fibonacci" +#: js/blocks/VolumeBlocks.js:603 +msgid "The Set Panning block sets the panning for all synthesizers." msgstr "" -#: js/musicutils.js:708 -#: js/musicutils.js:1106 -#.TRANS: lowpass filter -msgid "lowpass" +#: js/blocks/VolumeBlocks.js:625 +msgid "Warning: Sound is coming out from only the left or right side." msgstr "" -#: js/musicutils.js:710 -#: js/musicutils.js:1107 -#.TRANS: bandpass filter -msgid "bandpass" +#: js/blocks/VolumeBlocks.js:647 +#: js/blocks/VolumeBlocks.js:695 +msgid "set master volume" msgstr "" -#: js/musicutils.js:712 -#: js/musicutils.js:1108 -#.TRANS: high-shelf filter -msgid "highshelf" +#: js/blocks/VolumeBlocks.js:653 +msgid "The Set master volume block sets the volume for all synthesizers." msgstr "" -#: js/musicutils.js:714 -#: js/musicutils.js:1109 -#.TRANS: low-shelf filter -msgid "lowshelf" +#: js/blocks/VolumeBlocks.js:784 +msgid "The Set relative volume block changes the volume of the contained notes." msgstr "" -#: js/musicutils.js:716 -#: js/musicutils.js:1110 -#.TRANS: notch-shelf filter -msgid "notch" +#: js/blocks/VolumeBlocks.js:791 +msgid "set relative volume" msgstr "" -#: js/musicutils.js:718 -#: js/musicutils.js:1111 -#.TRANS: all-pass filter -msgid "allpass" +#: js/blocks/VolumeBlocks.js:857 +msgid "decrescendo" msgstr "" -#: js/musicutils.js:720 -#: js/musicutils.js:1112 -#.TRANS: peaking filter -msgid "peaking" +#: js/blocks/VolumeBlocks.js:921 +msgid "crescendo" msgstr "" -#: js/musicutils.js:731 -#: js/synthutils.js:58 -#.TRANS: musical instrument -msgid "violin" +#: js/blocks/WidgetBlocks.js:81 +#.TRANS: sound envelope (ADSR) +msgid "envelope" msgstr "" -#: js/musicutils.js:732 -#: js/synthutils.js:60 -#.TRANS: viola musical instrument -msgid "viola" +#: js/blocks/WidgetBlocks.js:89 +#.TRANS: Attack time is the time taken for initial run-up of level from nil to peak, beginning when the key is first pressed. +msgid "attack" msgstr "" -#: js/musicutils.js:733 -#: js/synthutils.js:98 -#.TRANS: xylophone musical instrument -msgid "xylophone" +#: js/blocks/WidgetBlocks.js:91 +#.TRANS: Decay time is the time taken for the subsequent run down from the attack level to the designated sustain level. +msgid "decay" msgstr "" -#: js/musicutils.js:734 -#: js/synthutils.js:120 -#.TRANS: vibraphone musical instrument -msgid "vibraphone" +#: js/blocks/WidgetBlocks.js:93 +#.TRANS: Sustain level is the level during the main sequence of the sound's duration, until the key is released. +msgid "sustain" msgstr "" -#: js/musicutils.js:735 -#: js/synthutils.js:62 -#.TRANS: musical instrument -msgid "cello" +#: js/blocks/WidgetBlocks.js:95 +#.TRANS: Release time is the time taken for the level to decay from the sustain level to zero after the key is released. +msgid "release" msgstr "" -#: js/musicutils.js:737 -#: js/synthutils.js:66 -#.TRANS: viola musical instrument -msgid "double bass" +#: js/blocks/WidgetBlocks.js:113 +msgid "Attack value should be from 0 to 100." msgstr "" -#: js/musicutils.js:738 -#: js/synthutils.js:68 -#: js/rhythmruler.js:2119 -#.TRANS: musical instrument -msgid "guitar" +#: js/blocks/WidgetBlocks.js:116 +msgid "Decay value should be from 0 to 100." msgstr "" -#: js/musicutils.js:739 -#: js/synthutils.js:70 -#.TRANS: musical instrument -msgid "acoustic guitar" +#: js/blocks/WidgetBlocks.js:119 +msgid "Sustain value should be from 0 to 100." msgstr "" -#: js/musicutils.js:740 -#: js/synthutils.js:72 -#.TRANS: musical instrument -msgid "flute" +#: js/blocks/WidgetBlocks.js:122 +msgid "Release value should be from 0-100." msgstr "" -#: js/musicutils.js:741 -#: js/synthutils.js:74 -#.TRANS: musical instrument -msgid "clarinet" +#: js/blocks/WidgetBlocks.js:140 +msgid "You are adding multiple envelope blocks." msgstr "" -#: js/musicutils.js:742 -#: js/synthutils.js:76 -#.TRANS: musical instrument -msgid "saxophone" +#: js/blocks/WidgetBlocks.js:171 +#.TRANS: a filter removes some unwanted components from a signal +msgid "filter" msgstr "" -#: js/musicutils.js:743 -#: js/synthutils.js:78 -#.TRANS: musical instrument -msgid "tuba" +#: js/blocks/WidgetBlocks.js:181 +#: js/widgets/timbre.js:1818 +#.TRANS: rolloff is the steepness of a change in frequency. +msgid "rolloff" msgstr "" -#: js/musicutils.js:744 -#: js/synthutils.js:80 -#.TRANS: musical instrument -msgid "trumpet" +#: js/blocks/WidgetBlocks.js:213 +#.TRANS: rolloff is the steepness of a change in frequency. +msgid "Rolloff value should be either -12, -24, -48, or -96 decibels/octave." msgstr "" -#: js/musicutils.js:745 -#: js/synthutils.js:82 -#.TRANS: musical instrument -msgid "oboe" +#: js/blocks/WidgetBlocks.js:252 +msgid "The Temperament tool is used to define custom tuning." msgstr "" -#: js/musicutils.js:746 -#: js/synthutils.js:84 -#.TRANS: musical instrument -msgid "trombone" +#: js/blocks/WidgetBlocks.js:332 +#: js/blocks/WidgetBlocks.js:1573 +#: js/widgets/sampler.js:547 +msgid "Upload a sample and adjust its pitch center." msgstr "" -#: js/musicutils.js:747 -#: js/synthutils.js:100 -#.TRANS: polytone synthesizer -msgid "electronic synth" +#: js/blocks/WidgetBlocks.js:339 +#.TRANS: the speed at music is should be played. +msgid "sampler" msgstr "" -#: js/musicutils.js:748 -#: js/synthutils.js:102 -#.TRANS: simple monotone synthesizer -msgid "simple 1" +#: js/blocks/WidgetBlocks.js:517 +msgid "The Meter block opens a tool to select strong beats for the meter." msgstr "" -#: js/musicutils.js:749 -msgid "simple 2" +#: js/blocks/WidgetBlocks.js:573 +msgid "The oscilloscope block opens a tool to visualize waveforms." msgstr "" -#: js/musicutils.js:750 -msgid "simple 3" +#: js/blocks/WidgetBlocks.js:578 +msgid "oscilloscope" msgstr "" -#: js/musicutils.js:751 -msgid "simple 4" +#: js/blocks/WidgetBlocks.js:645 +msgid "The Custom mode block opens a tool to explore musical mode (the spacing of the notes in a scale)." msgstr "" -#: js/musicutils.js:753 -#: js/synthutils.js:49 -#.TRANS: brown noise synthesizer -msgid "brown noise" +#: js/blocks/WidgetBlocks.js:651 +#.TRANS: musical mode is the pattern of half-steps in an octave, e.g., Major or Minor modes +msgid "custom mode" msgstr "" -#: js/musicutils.js:754 -#: js/synthutils.js:51 -#.TRANS: pink noise synthesizer -msgid "pink noise" +#: js/blocks/WidgetBlocks.js:700 +msgid "The Tempo block opens a metronome to visualize the beat." msgstr "" -#: js/musicutils.js:756 -#: js/synthutils.js:127 -#: js/rhythmruler.js:1670 -#: js/rhythmruler.js:1928 -#.TRANS: musical instrument -msgid "snare drum" +#: js/blocks/WidgetBlocks.js:762 +msgid "The Arpeggio Widget is used to compose chord sequences." msgstr "" -#: js/musicutils.js:757 -#: js/synthutils.js:129 -#.TRANS: musical instrument -msgid "kick drum" +#: js/blocks/WidgetBlocks.js:837 +msgid "The Pitch drum matrix is used to map pitches to drum sounds." msgstr "" -#: js/musicutils.js:758 -#: js/synthutils.js:131 -#.TRANS: musical instrument -msgid "tom tom" +#: js/blocks/WidgetBlocks.js:842 +#.TRANS: makes a mapping between pitches and drum sounds +msgid "pitch-drum mapper" msgstr "" -#: js/musicutils.js:759 -#: js/synthutils.js:133 -#.TRANS: musical instrument -msgid "floor tom" +#: js/blocks/WidgetBlocks.js:891 +msgid "You must have at least one pitch block and one drum block in the matrix." msgstr "" -#: js/musicutils.js:760 -#: js/synthutils.js:135 -#.TRANS: musical instrument -msgid "bass drum" +#: js/blocks/WidgetBlocks.js:920 +msgid "The Pitch slider tool to is used to generate pitches at selected frequencies." msgstr "" -#: js/musicutils.js:761 -#: js/synthutils.js:137 -#.TRANS: a drum made from an inverted cup -msgid "cup drum" +#: js/blocks/WidgetBlocks.js:925 +#.TRANS: widget to generate pitches using a slider +msgid "pitch slider" msgstr "" -#: js/musicutils.js:762 -#: js/synthutils.js:139 -#.TRANS: musical instrument -msgid "darbuka drum" +#: js/blocks/WidgetBlocks.js:977 +msgid "chromatic keyboard" msgstr "" -#: js/musicutils.js:763 -#: js/synthutils.js:143 -#.TRANS: musical instrument -msgid "hi hat" +#: js/blocks/WidgetBlocks.js:1011 +#: js/blocks/WidgetBlocks.js:1077 +#.TRANS: widget to generate pitches using a slider +msgid "music keyboard" msgstr "" -#: js/musicutils.js:764 -#: js/synthutils.js:145 -#.TRANS: a small metal bell -msgid "ride bell" +#: js/blocks/WidgetBlocks.js:1062 +#: js/blocks/WidgetBlocks.js:1069 +msgid "The Music keyboard block opens a piano keyboard that can be used to create notes." msgstr "" -#: js/musicutils.js:765 -#: js/synthutils.js:147 -#.TRANS: musical instrument -msgid "cow bell" +#: js/blocks/WidgetBlocks.js:1128 +msgid "The Pitch staircase tool to is used to generate pitches from a given ratio." msgstr "" -#: js/musicutils.js:766 -msgid "japanese drum" +#: js/blocks/WidgetBlocks.js:1135 +#.TRANS: generate a progressive sequence of pitches +msgid "pitch staircase" msgstr "" -#: js/musicutils.js:767 -#: js/synthutils.js:153 -#.TRANS: musical instrument -msgid "japanese bell" +#: js/blocks/WidgetBlocks.js:1222 +msgid "The Rhythm Maker block opens a tool to create drum machines." msgstr "" -#: js/musicutils.js:768 -#: js/synthutils.js:149 -#.TRANS: musical instrument -msgid "triangle bell" +#: js/blocks/WidgetBlocks.js:1291 +msgid "G major scale" msgstr "" -#: js/musicutils.js:769 -#: js/synthutils.js:151 -#.TRANS: musical instrument -msgid "finger cymbals" +#: js/blocks/WidgetBlocks.js:1326 +msgid "C major scale" msgstr "" -#: js/musicutils.js:770 -#: js/synthutils.js:155 -#.TRANS: a musically tuned set of bells -msgid "chime" +#: js/blocks/WidgetBlocks.js:1366 +msgid "The Phrase Maker block opens a tool to create musical phrases." msgstr "" -#: js/musicutils.js:771 -#: js/synthutils.js:157 -#.TRANS: a musical instrument -msgid "gong" +#: js/blocks/WidgetBlocks.js:1373 +#.TRANS: assigns pitch to a sequence of beats to generate a melody +msgid "phrase maker" msgstr "" -#: js/musicutils.js:772 -#: js/synthutils.js:159 -#.TRANS: sound effect -msgid "clang" +#: js/blocks/WidgetBlocks.js:1444 +msgid "You must have at least one pitch block and one rhythm block in the matrix." msgstr "" -#: js/musicutils.js:773 -#: js/synthutils.js:161 -#.TRANS: sound effect -msgid "crash" +#: js/blocks/WidgetBlocks.js:1503 +msgid "The Status block opens a tool for inspecting the status of Music Blocks as it is running." msgstr "" -#: js/musicutils.js:774 -#: js/synthutils.js:163 -#.TRANS: sound effect -msgid "bottle" +#: js/blocks/WidgetBlocks.js:1580 +#.TRANS: AI-generated music +msgid "aimusic" msgstr "" -#: js/musicutils.js:775 -#: js/synthutils.js:165 -#.TRANS: sound effect -msgid "clap" +#: js/turtleactions/MeterActions.js:101 +#: js/turtleactions/MeterActions.js:139 +msgid "beats per minute must be greater than" msgstr "" -#: js/musicutils.js:776 -#: js/synthutils.js:167 -#.TRANS: sound effect -msgid "slap" +#: js/turtleactions/MeterActions.js:111 +#: js/turtleactions/MeterActions.js:149 +msgid "maximum" msgstr "" -#: js/musicutils.js:777 -#: js/synthutils.js:169 -#.TRANS: sound effect -msgid "splash" +#: js/turtleactions/MeterActions.js:117 +#: js/turtleactions/MeterActions.js:155 +msgid "beats per minute is" msgstr "" -#: js/musicutils.js:778 -#: js/synthutils.js:171 -#.TRANS: sound effect -msgid "bubbles" +#: js/turtleactions/DictActions.js:75 +#: js/turtleactions/DictActions.js:142 +#: js/turtleactions/DictActions.js:172 +msgid "font" msgstr "" -#: js/musicutils.js:779 -#: js/synthutils.js:173 -#.TRANS: sound effect -msgid "raindrop" +#: js/turtleactions/DictActions.js:255 +msgid "Dictionary with this name does not exist" msgstr "" -#: js/musicutils.js:780 -#: js/synthutils.js:175 -#.TRANS: animal sound effect -msgid "cat" +#: js/turtleactions/DictActions.js:259 +msgid "Key with this name does not exist in " msgstr "" -#: js/musicutils.js:781 -#: js/synthutils.js:177 -#.TRANS: animal sound effect -msgid "cricket" +#: js/turtleactions/DrumActions.js:227 +msgid "Noise Block: Did you mean to use a Note block?" msgstr "" -#: js/musicutils.js:782 -#: js/synthutils.js:179 -#.TRANS: animal sound effect -msgid "dog" +#: js/turtleactions/IntervalsActions.js:113 +msgid "one" msgstr "" -#: js/musicutils.js:784 -#: js/synthutils.js:86 -#.TRANS: musical instrument -msgid "banjo" +#: js/turtleactions/IntervalsActions.js:113 +msgid "two" msgstr "" -#: js/musicutils.js:785 -#: js/synthutils.js:88 -#.TRANS: musical instrument -msgid "koto" +#: js/turtleactions/IntervalsActions.js:113 +msgid "three" msgstr "" -#: js/musicutils.js:786 -#: js/synthutils.js:90 -#.TRANS: musical instrument -msgid "dulcimer" +#: js/turtleactions/IntervalsActions.js:113 +msgid "four" msgstr "" -#: js/musicutils.js:787 -#: js/synthutils.js:92 -#.TRANS: musical instrument -msgid "electric guitar" +#: js/turtleactions/IntervalsActions.js:113 +msgid "five" msgstr "" -#: js/musicutils.js:788 -#: js/synthutils.js:94 -#.TRANS: musical instrument -msgid "bassoon" +#: js/turtleactions/IntervalsActions.js:113 +msgid "six" msgstr "" -#: js/musicutils.js:789 -#: js/synthutils.js:96 -#.TRANS: musical instrument -msgid "celeste" +#: js/turtleactions/IntervalsActions.js:113 +msgid "seven" msgstr "" -#: js/musicutils.js:791 -#: js/musicutils.js:1123 -#: js/musicutils.js:1131 -#: js/temperament.js:650 -#.TRANS: musical temperament -msgid "equal" +#: js/turtleactions/IntervalsActions.js:113 +msgid "eight" msgstr "" -#: js/musicutils.js:793 -#: js/musicutils.js:1125 -#: js/musicutils.js:1133 -#.TRANS: musical temperament -msgid "Pythagorean" +#: js/turtleactions/IntervalsActions.js:113 +msgid "nine" msgstr "" -#: js/musicutils.js:795 -#: js/musicutils.js:1124 -#: js/musicutils.js:1132 -#.TRANS: musical temperament -msgid "just intonation" +#: js/turtleactions/IntervalsActions.js:119 +msgid "a" msgstr "" -#: js/musicutils.js:797 -#: js/musicutils.js:1126 -#: js/musicutils.js:1127 -#: js/musicutils.js:1134 -#: js/musicutils.js:1135 -#.TRANS: musical temperament -msgid "meantone" +#: js/turtleactions/IntervalsActions.js:120 +msgid "below" msgstr "" -#: js/musicutils.js:814 -msgid "major 7th" +#: js/turtleactions/IntervalsActions.js:124 +msgid "above" msgstr "" -#: js/musicutils.js:815 -msgid "minor 7th" +#: js/turtleactions/IntervalsActions.js:131 +msgid "plus" msgstr "" -#: js/musicutils.js:816 -msgid "dominant 7th" +#: js/turtleactions/IntervalsActions.js:139 +msgid " below" msgstr "" -#: js/musicutils.js:817 -msgid "minor-major 7th" +#: js/turtleactions/IntervalsActions.js:257 +msgid "Adding missing pitch number 0." msgstr "" -#: js/musicutils.js:818 -msgid "fully-diminished 7th" +#: js/turtleactions/IntervalsActions.js:265 +msgid "Ignoring pitch numbers less than zero or greater than eleven." msgstr "" -#: js/musicutils.js:819 -msgid "half-diminished 7th" +#: js/turtleactions/IntervalsActions.js:271 +msgid "Ignoring duplicate pitch numbers." msgstr "" -#: js/musicutils.js:4379 -#: js/musicutils.js:4416 -msgid "current" +#: js/turtleactions/ToneActions.js:134 +msgid "Vibrato intensity must be between 1 and 100." msgstr "" -#: js/musicutils.js:4382 -#: js/musicutils.js:4407 -msgid "next" +#: js/turtleactions/ToneActions.js:139 +msgid "Vibrato rate must be greater than 0." msgstr "" -#: js/musicutils.js:4385 -#: js/musicutils.js:4412 -msgid "previous" +#: js/turtleactions/ToneActions.js:192 +#: js/turtleactions/ToneActions.js:265 +#.TRANS: Depth is the intesity of the tremolo or chorus effect. +msgid "Depth is out of range." msgstr "" -#: js/synthutils.js:104 -#.TRANS: simple monotone synthesizer -msgid "simple-2" +#: js/turtleactions/ToneActions.js:301 +msgid "Distortion must be from 0 to 100." msgstr "" -#: js/synthutils.js:106 -#.TRANS: simple monotone synthesizer -msgid "simple-3" +#: js/turtleactions/ToneActions.js:332 +#.TRANS: partials components in a harmonic series +msgid "Partial must be greater than or equal to 0." msgstr "" -#: js/synthutils.js:108 -#.TRANS: simple monotone synthesizer -msgid "simple-4" +#: js/turtleactions/ToneActions.js:378 +#: js/turtleactions/ToneActions.js:417 +#: js/turtleactions/ToneActions.js:456 +#: js/widgets/timbre.js:782 +msgid "Unable to use synth due to existing oscillator" msgstr "" -#: js/synthutils.js:141 -#.TRANS: musical instrument -msgid "taiko" +#: js/turtleactions/ToneActions.js:388 +#: js/turtleactions/ToneActions.js:427 +msgid "The input cannot be negative." msgstr "" -#: js/modewidget.js:86 -#: js/modewidget.js:88 -#: js/modewidget.js:642 -#: js/modewidget.js:644 -#: js/modewidget.js:712 -#: js/modewidget.js:714 -#: js/temperament.js:2078 -#: js/rhythmruler.js:189 -#: js/rhythmruler.js:1410 -#: js/rhythmruler.js:1412 -#: js/rhythmruler.js:1435 -#: js/rhythmruler.js:1437 -#: js/meterwidget.js:89 -#: js/meterwidget.js:91 +#: js/widgets/modewidget.js:86 +#: js/widgets/modewidget.js:88 +#: js/widgets/modewidget.js:642 +#: js/widgets/modewidget.js:644 +#: js/widgets/modewidget.js:712 +#: js/widgets/modewidget.js:714 +#: js/widgets/meterwidget.js:194 +#: js/widgets/meterwidget.js:196 +#: js/widgets/temperament.js:2236 +#: js/widgets/rhythmruler.js:457 +#: js/widgets/rhythmruler.js:1790 +#: js/widgets/rhythmruler.js:1792 +#: js/widgets/rhythmruler.js:1816 +#: js/widgets/rhythmruler.js:1818 msgid "Play all" msgstr "" -#: js/modewidget.js:115 -#: js/pitchstaircase.js:641 -#: js/phrasemaker.js:339 -#: js/pitchdrummatrix.js:94 -#: js/pitchslider.js:125 -#: js/temperament.js:2083 -#: js/musickeyboard.js:530 -#: js/timbre.js:756 -#: js/meterwidget.js:124 -#: js/arpeggio.js:103 +#: js/widgets/modewidget.js:115 +#: js/widgets/meterwidget.js:229 +#: js/widgets/pitchdrummatrix.js:166 +#: js/widgets/pitchslider.js:125 +#: js/widgets/pitchstaircase.js:641 +#: js/widgets/temperament.js:2244 +#: js/widgets/timbre.js:756 +#: js/widgets/arpeggio.js:103 +#: js/widgets/musickeyboard.js:688 +#: js/widgets/phrasemaker.js:550 msgid "Save" msgstr "" -#: js/modewidget.js:121 -#: js/pitchstaircase.js:686 -#: js/phrasemaker.js:356 -#: js/pitchdrummatrix.js:109 -#: js/musickeyboard.js:534 -#: js/rhythmruler.js:269 -#: js/arpeggio.js:118 +#: js/widgets/modewidget.js:121 +#: js/widgets/pitchdrummatrix.js:181 +#: js/widgets/pitchstaircase.js:686 +#: js/widgets/arpeggio.js:118 +#: js/widgets/musickeyboard.js:696 +#: js/widgets/phrasemaker.js:567 +#: js/widgets/rhythmruler.js:601 #.TRANS: clear all subdivisions from the ruler. msgid "Clear" msgstr "" -#: js/modewidget.js:127 +#: js/widgets/modewidget.js:127 msgid "Rotate counter clockwise" msgstr "" -#: js/modewidget.js:133 +#: js/widgets/modewidget.js:133 msgid "Rotate clockwise" msgstr "" -#: js/modewidget.js:139 +#: js/widgets/modewidget.js:139 msgid "Invert" msgstr "" -#: js/modewidget.js:145 -#: js/pitchstaircase.js:678 -#: js/rhythmruler.js:258 -#: js/timbre.js:963 +#: js/widgets/modewidget.js:145 +#: js/widgets/pitchstaircase.js:678 +#: js/widgets/timbre.js:963 +#: js/widgets/rhythmruler.js:578 msgid "Undo" msgstr "" -#: js/modewidget.js:163 +#: js/widgets/modewidget.js:163 #.TRANS: A circle of notes represents the musical mode. msgid "Click in the circle to select notes for the mode." msgstr "" -#: js/modewidget.js:1017 -#: js/pitchstaircase.js:580 -#: js/phrasemaker.js:4855 -#: js/temperament.js:1754 -#: js/rhythmruler.js:1865 -#: js/rhythmruler.js:2081 -#: js/tempo.js:414 +#: js/widgets/modewidget.js:1017 +#: js/widgets/pitchstaircase.js:580 +#: js/widgets/temperament.js:1929 +#: js/widgets/tempo.js:414 +#: js/widgets/phrasemaker.js:5356 +#: js/widgets/rhythmruler.js:2254 +#: js/widgets/rhythmruler.js:2472 msgid "New action block generated!" msgstr "" -#: js/oscilloscope.js:79 -msgid "Zoom In" -msgstr "" - -#: js/oscilloscope.js:88 -msgid "Zoom Out" -msgstr "" - -#: js/pitchstaircase.js:624 -msgid "Play chord" -msgstr "" - -#: js/pitchstaircase.js:632 -msgid "Play scale" +#: js/widgets/meterwidget.js:275 +msgid "Reset" msgstr "" -#: js/pitchstaircase.js:696 -msgid "Click on a note to create a new step." +#: js/widgets/meterwidget.js:301 +msgid "Click in the circle to select strong beats for the meter." msgstr "" -#: js/phrasemaker.js:363 -msgid "Export" +#: js/widgets/oscilloscope.js:79 +msgid "Zoom In" msgstr "" -#: js/phrasemaker.js:370 -msgid "Sort" +#: js/widgets/oscilloscope.js:88 +msgid "Zoom Out" msgstr "" -#: js/phrasemaker.js:373 -#: js/musickeyboard.js:559 -msgid "Add note" +#: js/widgets/pitchdrummatrix.js:356 +#: js/widgets/pitchdrummatrix.js:752 +msgid "Click in the grid to map notes to drums." msgstr "" -#: js/phrasemaker.js:764 -msgid "Click on the table to add notes." +#: js/widgets/pitchslider.js:103 +msgid "Move up" msgstr "" -#: js/phrasemaker.js:2414 -#: js/phrasemaker.js:2543 -msgid "tuplet value" +#: js/widgets/pitchslider.js:114 +msgid "Move down" msgstr "" -#: js/pitchdrummatrix.js:270 -#: js/pitchdrummatrix.js:639 -msgid "Click in the grid to map notes to drums." +#: js/widgets/pitchslider.js:136 +msgid "Click on the slider to create a note block." msgstr "" -#: js/pitchslider.js:103 -msgid "Move up" +#: js/widgets/pitchstaircase.js:624 +msgid "Play chord" msgstr "" -#: js/pitchslider.js:114 -msgid "Move down" +#: js/widgets/pitchstaircase.js:632 +msgid "Play scale" msgstr "" -#: js/pitchslider.js:136 -msgid "Click on the slider to create a note block." +#: js/widgets/pitchstaircase.js:696 +msgid "Click on a note to create a new step." msgstr "" -#: js/temperament.js:215 +#: js/widgets/temperament.js:321 msgid "back to 2:1 octave space" msgstr "" -#: js/temperament.js:323 +#: js/widgets/temperament.js:447 msgid "edit" msgstr "" -#: js/temperament.js:330 -#: js/temperament.js:332 -#: js/temperament.js:1336 -#: js/temperament.js:1338 +#: js/widgets/temperament.js:454 +#: js/widgets/temperament.js:456 +#: js/widgets/temperament.js:1493 +#: js/widgets/temperament.js:1495 msgid "close" msgstr "" -#: js/temperament.js:423 -#: js/temperament.js:736 -#: js/temperament.js:743 -#: js/temperament.js:845 -#: js/temperament.js:935 -#: js/temperament.js:942 -#: js/temperament.js:1015 -#: js/temperament.js:1284 -#: js/temperament.js:1354 -#: js/temperament.js:1430 +#: js/widgets/temperament.js:552 +#: js/widgets/temperament.js:877 +#: js/widgets/temperament.js:884 +#: js/widgets/temperament.js:986 +#: js/widgets/temperament.js:1080 +#: js/widgets/temperament.js:1087 +#: js/widgets/temperament.js:1160 +#: js/widgets/temperament.js:1433 +#: js/widgets/temperament.js:1511 +#: js/widgets/temperament.js:1596 msgid "done" msgstr "" -#: js/temperament.js:477 -#: js/temperament.js:482 -#: js/temperament.js:918 +#: js/widgets/temperament.js:610 +#: js/widgets/temperament.js:615 +#: js/widgets/temperament.js:1063 msgid "ratio" msgstr "" -#: js/temperament.js:483 +#: js/widgets/temperament.js:616 msgid "interval" msgstr "" -#: js/temperament.js:611 +#: js/widgets/temperament.js:744 msgid "non scalar" msgstr "" -#: js/temperament.js:650 +#: js/widgets/temperament.js:787 msgid "ratios" msgstr "" -#: js/temperament.js:650 +#: js/widgets/temperament.js:787 msgid "arbitrary" msgstr "" -#: js/temperament.js:719 +#: js/widgets/temperament.js:860 msgid "number of divisions" msgstr "" -#: js/temperament.js:741 -#: js/temperament.js:858 -#: js/temperament.js:940 -#: js/temperament.js:1033 +#: js/widgets/temperament.js:882 +#: js/widgets/temperament.js:999 +#: js/widgets/temperament.js:1085 +#: js/widgets/temperament.js:1178 msgid "preview" msgstr "" -#: js/temperament.js:788 +#: js/widgets/temperament.js:929 msgid "The Number of divisions is too large." msgstr "" -#: js/temperament.js:921 +#: js/widgets/temperament.js:1066 msgid "recursion" msgstr "" -#: js/temperament.js:1450 +#: js/widgets/temperament.js:1616 msgid "The octave ratio has changed. This changes temperament significantly." msgstr "" -#: js/temperament.js:2087 +#: js/widgets/temperament.js:2248 msgid "Table" msgstr "" -#: js/temperament.js:2185 +#: js/widgets/temperament.js:2356 msgid "Add pitches" msgstr "" -#: js/musickeyboard.js:570 -msgid "Metronome" +#: js/widgets/tempo.js:78 +#: js/widgets/tempo.js:97 +#: js/widgets/tempo.js:99 +#: js/widgets/aiwidget.js:134 +#: js/widgets/aiwidget.js:136 +#: js/widgets/rhythmruler.js:681 +#: js/widgets/rhythmruler.js:683 +#: js/widgets/rhythmruler.js:1864 +#: js/widgets/rhythmruler.js:1866 +#: js/widgets/sampler.js:180 +#: js/widgets/sampler.js:182 +msgid "Pause" msgstr "" -#: js/musickeyboard.js:1296 -#: plugins/rodi.rtp:193 -msgid "duration" +#: js/widgets/tempo.js:113 +msgid "Save tempo" msgstr "" -#: js/musickeyboard.js:2840 -msgid "New action blocks generated!" +#: js/widgets/tempo.js:144 +msgid "speed up" msgstr "" -#: js/musickeyboard.js:2841 -msgid "New action block generated" +#: js/widgets/tempo.js:150 +msgid "slow down" msgstr "" -#: js/musickeyboard.js:2984 -#: js/musickeyboard.js:2992 -msgid "MIDI device present." +#: js/widgets/tempo.js:194 +msgid "Adjust the tempo with the buttons." msgstr "" -#: js/musickeyboard.js:2995 -msgid "No MIDI device found." +#: js/widgets/tempo.js:261 +msgid "Please enter a number between 30 and 1000" msgstr "" -#: js/musickeyboard.js:3000 -msgid "Failed to get MIDI access in browser." +#: js/widgets/tempo.js:268 +#: js/widgets/tempo.js:271 +msgid "The beats per minute must be between 30 and 1000." msgstr "" -#: js/rhythmruler.js:202 -msgid "Save rhythms" +#: js/widgets/tempo.js:287 +msgid "The beats per minute must be below 1000." msgstr "" -#: js/rhythmruler.js:222 -msgid "Save drum machine" +#: js/widgets/tempo.js:303 +msgid "The beats per minute must be above 30" msgstr "" -#: js/rhythmruler.js:263 -#.TRANS: user can tap out a rhythm by clicking on a ruler. -msgid "Tap a rhythm" +#: js/widgets/timbre.js:766 +msgid "Synthesizer" msgstr "" -#: js/rhythmruler.js:342 -#: js/rhythmruler.js:344 -#: js/rhythmruler.js:1481 -#: js/rhythmruler.js:1483 -#: js/sampler.js:110 -#: js/sampler.js:112 -#: js/tempo.js:78 -#: js/tempo.js:97 -#: js/tempo.js:99 -msgid "Pause" +#: js/widgets/timbre.js:789 +msgid "Oscillator" msgstr "" -#: js/rhythmruler.js:478 -msgid "Click on the ruler to divide it." +#: js/widgets/timbre.js:840 +msgid "Envelope" msgstr "" -#: js/rhythmruler.js:603 -#: js/rhythmruler.js:605 -#: js/rhythmruler.js:804 -#: js/rhythmruler.js:806 -#: js/rhythmruler.js:1386 -#: js/rhythmruler.js:1388 -msgid "tap a rhythm" +#: js/widgets/timbre.js:886 +#: planet/js/GlobalTag.js:50 +#.TRANS: On the Planet, we use labels to tag projects. +msgid "Effects" msgstr "" -#: js/rhythmruler.js:1084 -msgid "Maximum value of 256 has been exceeded." +#: js/widgets/timbre.js:904 +msgid "Filter" msgstr "" -#: js/sampler.js:137 -msgid "Warning: Sample is bigger than 1MB." +#: js/widgets/timbre.js:946 +msgid "Add filter" msgstr "" -#: js/sampler.js:142 -msgid "Upload failed: Sample is not a .wav file." +#: js/widgets/timbre.js:987 +msgid "Click on buttons to open the timbre design tools." msgstr "" -#: js/sampler.js:164 -msgid "A new sample block was generated." +#: js/widgets/timbre.js:1273 +msgid "harmonicity" msgstr "" -#: js/sampler.js:255 -msgid "Upload sample" +#: js/widgets/timbre.js:1340 +#: js/widgets/timbre.js:1406 +msgid "modulation index" msgstr "" -#: js/sampler.js:306 -msgid "Save sample" +#: js/widgets/timbre.js:1484 +msgid "vibrato amount" msgstr "" -#: js/sampler.js:697 -#.TRANS: The reference tone is a sound used for comparison. -msgid "reference tone" +#: js/widgets/timbre.js:1919 +msgid "Filter already present." msgstr "" -#: js/tempo.js:113 -msgid "Save tempo" +#: js/widgets/timbre.js:2322 +msgid "delay (MS)" msgstr "" -#: js/tempo.js:144 -msgid "speed up" +#: js/widgets/timbre.js:2507 +msgid "distortion amount" msgstr "" -#: js/tempo.js:150 -msgid "slow down" +#: js/widgets/aiwidget.js:180 +#: js/widgets/sampler.js:227 +msgid "Warning: Sample is bigger than 1MB." msgstr "" -#: js/tempo.js:194 -msgid "Adjust the tempo with the buttons." +#: js/widgets/aiwidget.js:539 +msgid "New start block generated" msgstr "" -#: js/tempo.js:261 -msgid "Please enter a number between 30 and 1000" +#: js/widgets/aiwidget.js:541 +msgid "MIDI loading. This may take some time depending upon the number of notes in the track" msgstr "" -#: js/tempo.js:268 -#: js/tempo.js:271 -msgid "The beats per minute must be between 30 and 1000." +#: js/widgets/aiwidget.js:551 +#: js/widgets/sampler.js:254 +msgid "Upload failed: Sample is not a .wav file." msgstr "" -#: js/tempo.js:287 -msgid "The beats per minute must be below 1000." +#: js/widgets/aiwidget.js:679 +#: js/widgets/sampler.js:432 +msgid "Save sample" msgstr "" -#: js/tempo.js:303 -msgid "The beats per minute must be above 30" +#: js/widgets/aiwidget.js:701 +msgid "AI Music" msgstr "" -#: js/timbre.js:766 -msgid "Synthesizer" +#: js/widgets/arpeggio.js:239 +msgid "Click in the grid to add steps to the arpeggio." msgstr "" -#: js/timbre.js:789 -msgid "Oscillator" +#: js/widgets/help.js:95 +#: js/widgets/help.js:125 +#: js/widgets/help.js:146 +#: js/widgets/help.js:158 +#: js/widgets/help.js:376 +#: js/widgets/help.js:391 +msgid "Take a tour" msgstr "" -#: js/timbre.js:840 -msgid "Envelope" +#: js/widgets/musickeyboard.js:725 +#: js/widgets/phrasemaker.js:584 +msgid "Add note" msgstr "" -#: js/timbre.js:886 -#: js/GlobalTag.js:50 -#.TRANS: On the Planet, we use labels to tag projects. -msgid "Effects" +#: js/widgets/musickeyboard.js:744 +msgid "Metronome" +msgstr "" + +#: js/widgets/musickeyboard.js:1549 +#: plugins/rodi.rtp:193 +msgid "duration" +msgstr "" + +#: js/widgets/musickeyboard.js:3179 +msgid "New action blocks generated" +msgstr "" + +#: js/widgets/musickeyboard.js:3180 +msgid "New action block generated" msgstr "" -#: js/timbre.js:904 -msgid "Filter" +#: js/widgets/musickeyboard.js:3365 +#: js/widgets/musickeyboard.js:3373 +msgid "MIDI device present." msgstr "" -#: js/timbre.js:946 -msgid "Add filter" +#: js/widgets/musickeyboard.js:3376 +msgid "No MIDI device found." msgstr "" -#: js/timbre.js:987 -msgid "Click on buttons to open the timbre design tools." +#: js/widgets/musickeyboard.js:3386 +msgid "Failed to get MIDI access in browser." msgstr "" -#: js/timbre.js:1273 -msgid "harmonicity" +#: js/widgets/phrasemaker.js:574 +msgid "Export" msgstr "" -#: js/timbre.js:1340 -#: js/timbre.js:1406 -msgid "modulation index" +#: js/widgets/phrasemaker.js:581 +msgid "Sort" msgstr "" -#: js/timbre.js:1484 -msgid "vibrato amount" +#: js/widgets/phrasemaker.js:975 +msgid "Click on the table to add notes." msgstr "" -#: js/timbre.js:1919 -msgid "Filter already present." +#: js/widgets/phrasemaker.js:2677 +#: js/widgets/phrasemaker.js:2819 +msgid "tuplet value" msgstr "" -#: js/timbre.js:2322 -msgid "delay (MS)" +#: js/widgets/rhythmruler.js:486 +msgid "Save rhythms" msgstr "" -#: js/timbre.js:2507 -msgid "distortion amount" +#: js/widgets/rhythmruler.js:512 +msgid "Save drum machine" msgstr "" -#: js/meterwidget.js:170 -msgid "Reset" +#: js/widgets/rhythmruler.js:589 +#.TRANS: user can tap out a rhythm by clicking on a ruler. +msgid "Tap a rhythm" msgstr "" -#: js/meterwidget.js:196 -msgid "Click in the circle to select strong beats for the meter." +#: js/widgets/rhythmruler.js:817 +msgid "Click on the ruler to divide it." msgstr "" -#: js/arpeggio.js:239 -msgid "Click in the grid to add steps to the arpeggio." +#: js/widgets/rhythmruler.js:950 +#: js/widgets/rhythmruler.js:952 +#: js/widgets/rhythmruler.js:1152 +#: js/widgets/rhythmruler.js:1154 +#: js/widgets/rhythmruler.js:1765 +#: js/widgets/rhythmruler.js:1767 +msgid "tap a rhythm" msgstr "" -#: js/ProjectStorage.js:243 -msgid "anonymous" +#: js/widgets/rhythmruler.js:1459 +msgid "Maximum value of 256 has been exceeded." msgstr "" -#: js/GlobalCard.js:68 -msgid "Share" +#: js/widgets/sampler.js:237 +msgid "Recording started..." msgstr "" -#: js/GlobalCard.js:74 -msgid "Flags" +#: js/widgets/sampler.js:245 +msgid "Recording complete..." msgstr "" -#: js/LocalCard.js:36 -msgid "View published project" +#: js/widgets/sampler.js:283 +msgid "A new sample block was generated." msgstr "" -#: js/LocalCard.js:42 -msgid "Publish project" +#: js/widgets/sampler.js:378 +msgid "Upload sample" msgstr "" -#: js/LocalCard.js:51 -msgid "Edit project" +#: js/widgets/sampler.js:399 +msgid "Warning: Your sample cannot be loaded because it is >1MB." msgstr "" -#: js/LocalCard.js:52 -msgid "Delete project" +#: js/widgets/sampler.js:448 +msgid "Toggle Mic" msgstr "" -#: js/LocalCard.js:53 -msgid "Download project" +#: js/widgets/sampler.js:458 +msgid "Playback" msgstr "" -#: js/LocalCard.js:55 -msgid "Duplicate project" +#: js/widgets/sampler.js:979 +#.TRANS: The reference tone is a sound used for comparison. +msgid "reference tone" msgstr "" -#: js/GlobalTag.js:28 +#: planet/js/GlobalTag.js:28 #.TRANS: On the Planet, we use labels to tag projects. msgid "All Projects" msgstr "" -#: js/GlobalTag.js:30 -#: js/StringHelper.js:37 +#: planet/js/GlobalTag.js:30 +#: planet/js/StringHelper.js:37 #.TRANS: On the Planet, we use labels to tag projects. msgid "My Projects" msgstr "" -#: js/GlobalTag.js:32 +#: planet/js/GlobalTag.js:32 #.TRANS: On the Planet, we use labels to tag projects. msgid "Examples" msgstr "" -#: js/GlobalTag.js:34 +#: planet/js/GlobalTag.js:34 #.TRANS: On the Planet, we use labels to tag projects. msgid "Music" msgstr "" -#: js/GlobalTag.js:36 +#: planet/js/GlobalTag.js:36 #.TRANS: On the Planet, we use labels to tag projects. msgid "Art" msgstr "" -#: js/GlobalTag.js:38 +#: planet/js/GlobalTag.js:38 #.TRANS: On the Planet, we use labels to tag projects. msgid "Math" msgstr "" -#: js/GlobalTag.js:40 +#: planet/js/GlobalTag.js:40 #.TRANS: On the Planet, we use labels to tag projects. msgid "Interactive" msgstr "" -#: js/GlobalTag.js:42 +#: planet/js/GlobalTag.js:42 #.TRANS: On the Planet, we use labels to tag projects. msgid "Design" msgstr "" -#: js/GlobalTag.js:44 +#: planet/js/GlobalTag.js:44 #.TRANS: On the Planet, we use labels to tag projects. msgid "Game" msgstr "" -#: js/GlobalTag.js:46 +#: planet/js/GlobalTag.js:46 #.TRANS: On the Planet, we use labels to tag projects. msgid "Media" msgstr "" -#: js/GlobalTag.js:48 +#: planet/js/GlobalTag.js:48 #.TRANS: On the Planet, we use labels to tag projects. msgid "Sensors" msgstr "" -#: js/GlobalTag.js:52 +#: planet/js/GlobalTag.js:52 #.TRANS: On the Planet, we use labels to tag projects. msgid "Code Snippet" msgstr "" -#: js/helper.js:149 -#: js/StringHelper.js:49 -msgid "Show more tags" +#: planet/js/LocalCard.js:36 +msgid "View published project" msgstr "" -#: js/helper.js:150 -msgid "Show fewer tags" +#: planet/js/LocalCard.js:42 +msgid "Publish project" +msgstr "" + +#: planet/js/LocalCard.js:51 +msgid "Edit project" +msgstr "" + +#: planet/js/LocalCard.js:52 +msgid "Delete project" +msgstr "" + +#: planet/js/LocalCard.js:53 +msgid "Download project" +msgstr "" + +#: planet/js/LocalCard.js:55 +msgid "Duplicate project" +msgstr "" + +#: planet/js/ProjectStorage.js:243 +msgid "anonymous" +msgstr "" + +#: planet/js/SaveInterface.js:34 +msgid "Open in Music Blocks" +msgstr "" + +#: planet/js/SaveInterface.js:35 +msgid "Open in Turtle Blocks" +msgstr "" + +#: planet/js/GlobalCard.js:68 +msgid "Share" +msgstr "" + +#: planet/js/GlobalCard.js:74 +msgid "Flags" +msgstr "" + +#: planet/js/GlobalPlanet.js:35 +msgid "No results found." +msgstr "" + +#: planet/js/GlobalPlanet.js:51 +msgid "Remix of" +msgstr "" + +#: planet/js/GlobalPlanet.js:509 +msgid "Cannot connect to server" msgstr "" -#: js/ProjectViewer.js:30 +#: planet/js/ProjectViewer.js:30 msgid "Error: Report could not be submitted. Try again later." msgstr "" -#: js/ProjectViewer.js:31 +#: planet/js/ProjectViewer.js:31 msgid "Thank you for reporting this project. A moderator will review the project shortly, to verify violation of the Sugar Labs Code of Conduct." msgstr "" -#: js/ProjectViewer.js:32 -#: js/StringHelper.js:62 -#: js/StringHelper.js:64 -#: js/StringHelper.js:68 +#: planet/js/ProjectViewer.js:32 +#: planet/js/StringHelper.js:62 +#: planet/js/StringHelper.js:64 +#: planet/js/StringHelper.js:68 msgid "Report Project" msgstr "" -#: js/ProjectViewer.js:33 -#: js/StringHelper.js:63 +#: planet/js/ProjectViewer.js:33 +#: planet/js/StringHelper.js:63 msgid "Project Reported" msgstr "" -#: js/ProjectViewer.js:34 +#: planet/js/ProjectViewer.js:34 msgid "Report description required" msgstr "" -#: js/ProjectViewer.js:35 +#: planet/js/ProjectViewer.js:35 msgid "Report description too long" msgstr "" -#: js/StringHelper.js:30 +#: planet/js/Publisher.js:30 +msgid "Feature unavailable - cannot connect to server. Reload Music Blocks to try again." +msgstr "" + +#: planet/js/Publisher.js:220 +#: planet/js/Publisher.js:237 +msgid "This field is required" +msgstr "" + +#: planet/js/Publisher.js:227 +msgid "Title too long" +msgstr "" + +#: planet/js/Publisher.js:244 +msgid "Description too long" +msgstr "" + +#: planet/js/Publisher.js:341 +msgid "Server Error" +msgstr "" + +#: planet/js/Publisher.js:341 +msgid "Try Again" +msgstr "" + +#: planet/js/StringHelper.js:30 msgid "Planet" msgstr "" -#: js/StringHelper.js:31 +#: planet/js/StringHelper.js:31 msgid "Close Planet" msgstr "" -#: js/StringHelper.js:32 +#: planet/js/StringHelper.js:32 msgid "Open project from file" msgstr "" -#: js/StringHelper.js:34 +#: planet/js/StringHelper.js:34 msgid "Local" msgstr "" -#: js/StringHelper.js:35 +#: planet/js/StringHelper.js:35 msgid "Global" msgstr "" -#: js/StringHelper.js:36 +#: planet/js/StringHelper.js:36 msgid "Search for a project" msgstr "" -#: js/StringHelper.js:38 +#: planet/js/StringHelper.js:38 msgid "Publish Project" msgstr "" -#: js/StringHelper.js:40 +#: planet/js/StringHelper.js:40 msgid "Tags (max 5)" msgstr "" -#: js/StringHelper.js:41 -#: js/StringHelper.js:61 +#: planet/js/StringHelper.js:41 +#: planet/js/StringHelper.js:61 msgid "Description" msgstr "" -#: js/StringHelper.js:42 -#: js/StringHelper.js:67 +#: planet/js/StringHelper.js:42 +#: planet/js/StringHelper.js:67 msgid "Submit" msgstr "" -#: js/StringHelper.js:43 -#: js/StringHelper.js:47 +#: planet/js/StringHelper.js:43 +#: planet/js/StringHelper.js:47 msgid "Cancel" msgstr "" -#: js/StringHelper.js:44 +#: planet/js/StringHelper.js:44 msgid "Delete \\"\\"?" msgstr "" -#: js/StringHelper.js:45 +#: planet/js/StringHelper.js:45 msgid "Permanently delete project \\"\\"?" msgstr "" -#: js/StringHelper.js:48 +#: planet/js/StringHelper.js:48 msgid "Explore Projects" msgstr "" -#: js/StringHelper.js:50 +#: planet/js/StringHelper.js:49 +#: planet/js/helper.js:149 +msgid "Show more tags" +msgstr "" + +#: planet/js/StringHelper.js:50 msgid "Most recent" msgstr "" -#: js/StringHelper.js:51 +#: planet/js/StringHelper.js:51 msgid "Most liked" msgstr "" -#: js/StringHelper.js:52 +#: planet/js/StringHelper.js:52 msgid "Most downloaded" msgstr "" -#: js/StringHelper.js:53 +#: planet/js/StringHelper.js:53 msgid "A-Z" msgstr "" -#: js/StringHelper.js:54 +#: planet/js/StringHelper.js:54 msgid "Sort by" msgstr "" -#: js/StringHelper.js:55 +#: planet/js/StringHelper.js:55 msgid "Load More Projects" msgstr "" -#: js/StringHelper.js:56 +#: planet/js/StringHelper.js:56 msgid "Last Updated" msgstr "" -#: js/StringHelper.js:57 +#: planet/js/StringHelper.js:57 msgid "Creation Date" msgstr "" -#: js/StringHelper.js:58 +#: planet/js/StringHelper.js:58 msgid "Number of Downloads:" msgstr "" -#: js/StringHelper.js:59 +#: planet/js/StringHelper.js:59 msgid "Number of Likes:" msgstr "" -#: js/StringHelper.js:60 +#: planet/js/StringHelper.js:60 msgid "Tags:" msgstr "" -#: js/StringHelper.js:65 +#: planet/js/StringHelper.js:65 msgid "Report projects which violate the Sugar Labs Code of Conduct." msgstr "" -#: js/StringHelper.js:66 +#: planet/js/StringHelper.js:66 msgid "Reason for reporting project" msgstr "" -#: js/StringHelper.js:70 +#: planet/js/StringHelper.js:70 msgid "Download as File" msgstr "" -#: js/GlobalPlanet.js:35 -msgid "No results found." -msgstr "" - -#: js/GlobalPlanet.js:51 -msgid "Remix of" -msgstr "" - -#: js/GlobalPlanet.js:509 -msgid "Cannot connect to server" -msgstr "" - -#: js/Publisher.js:30 -msgid "Feature unavailable - cannot connect to server. Reload Music Blocks to try again." -msgstr "" - -#: js/Publisher.js:218 -#: js/Publisher.js:235 -msgid "This field is required" -msgstr "" - -#: js/Publisher.js:225 -msgid "Title too long" +#: planet/js/helper.js:150 +msgid "Show fewer tags" msgstr "" -#: js/Publisher.js:242 -msgid "Description too long" +#: plugins/accelerometer.rtp:48 +msgid "motion x" msgstr "" -#: js/Publisher.js:339 -msgid "Server Error" +#: plugins/accelerometer.rtp:56 +msgid "motion y" msgstr "" -#: js/Publisher.js:339 -msgid "Try Again" +#: plugins/accelerometer.rtp:64 +msgid "motion z" msgstr "" -#: js/SaveInterface.js:34 -msgid "Open in Music Blocks" +#: plugins/facebook.rtp:27 +msgid "publish" msgstr "" -#: js/SaveInterface.js:35 -msgid "Open in Turtle Blocks" +#: plugins/maths.rtp:62 +msgid "power" msgstr "" -#: plugins/weather.rtp:68 -#: plugins/weather.rtp:97 -msgid "Days ahead must be in the range of -1 to 5." +#: plugins/maths.rtp:62 +msgid "base" msgstr "" -#: plugins/weather.rtp:122 -msgid "forecast" +#: plugins/maths.rtp:62 +msgid "exp" msgstr "" -#: plugins/weather.rtp:123 -#: plugins/weather.rtp:137 -#: plugins/weather.rtp:150 -msgid "city" +#: plugins/maths.rtp:99 +msgid "floor" msgstr "" -#: plugins/weather.rtp:124 -#: plugins/weather.rtp:138 -#: plugins/weather.rtp:151 -msgid "day" +#: plugins/maths.rtp:104 +msgid "ceiling" msgstr "" -#: plugins/weather.rtp:136 -msgid "high" +#: plugins/maths.rtp:109 +msgid "to degrees" msgstr "" -#: plugins/weather.rtp:149 -msgid "low" +#: plugins/maths.rtp:114 +msgid "to radians" msgstr "" #: plugins/nutrition.rtp:104 @@ -9458,45 +9867,6 @@ msgstr "" msgid "water" msgstr "" -#: plugins/maths.rtp:62 -#: plugins/examples.rtp:93 -msgid "power" -msgstr "" - -#: plugins/maths.rtp:62 -#: plugins/examples.rtp:93 -msgid "base" -msgstr "" - -#: plugins/maths.rtp:62 -#: plugins/examples.rtp:93 -msgid "exp" -msgstr "" - -#: plugins/maths.rtp:99 -#: plugins/examples.rtp:130 -msgid "floor" -msgstr "" - -#: plugins/maths.rtp:104 -#: plugins/examples.rtp:135 -msgid "ceiling" -msgstr "" - -#: plugins/maths.rtp:109 -#: plugins/examples.rtp:140 -msgid "to degrees" -msgstr "" - -#: plugins/maths.rtp:114 -#: plugins/examples.rtp:145 -msgid "to radians" -msgstr "" - -#: plugins/facebook.rtp:27 -msgid "publish" -msgstr "" - #: plugins/rodi.rtp:172 msgid "blink" msgstr "" @@ -9525,18 +9895,66 @@ msgstr "" msgid "move" msgstr "" -#: plugins/accelerometer.rtp:48 -msgid "motion x" +#: plugins/weather.rtp:68 +#: plugins/weather.rtp:97 +msgid "Days ahead must be in the range of -1 to 5." msgstr "" -#: plugins/accelerometer.rtp:56 -msgid "motion y" +#: plugins/weather.rtp:122 +msgid "forecast" msgstr "" -#: plugins/accelerometer.rtp:64 -msgid "motion z" +#: plugins/weather.rtp:123 +#: plugins/weather.rtp:137 +#: plugins/weather.rtp:150 +msgid "city" +msgstr "" + +#: plugins/weather.rtp:124 +#: plugins/weather.rtp:138 +#: plugins/weather.rtp:151 +msgid "day" +msgstr "" + +#: plugins/weather.rtp:136 +msgid "high" +msgstr "" + +#: plugins/weather.rtp:149 +msgid "low" msgstr "" +#: js/toolbar.js:70 + +#: js/toolbar.js:130 + +#: js/toolbar.js:194 + +#: js/toolbar.js:249 + +#~msgid "Toggle JavaScript Editor" +#~msgstr "" + +#: js/EnsembleBlocks.js:643 + +#~msgid "The Turrle pitch block returns the current pitch number being played by the specified turtle." +#~msgstr "" + +#: js/PitchActions.js:88 + +#~msgid "The Scalar Step Block must be used inside of a Note Block." +#~msgstr "" + +#: js/PitchActions.js:107 + +#~msgid "The Scalar Step Block must be preceded by a Pitch Block." +#~msgstr "" + +#: js/musickeyboard.js:2840 + +#~msgid "New action blocks generated!" +#~msgstr "" + #: js/toolbar.js:110 #: js/toolbar.js:204 @@ -9877,11 +10295,6 @@ msgstr "" #~msgid "The Time block returns the number of seconds that the program has been running." #~msgstr "" -#: js/help.js:95 - -#~msgid "Take a tour" -#~msgstr "" - #: js/GlobalCard.js:48 #~msgid "More Details" @@ -12780,11 +13193,6 @@ msgstr "" #~msgid "The save-stack button saves a stack onto a custom palette. It appears after a \"long press\" on a stack." #~msgstr "" -#: js/musicutils.js:254 - -#~msgid "Custom" -#~msgstr "" - #: js/basicblocks.js:4785 #~msgid "Rhythm" diff --git a/po/mi.po b/po/mi.po index e0da7ac6a5..13b40a4fa7 100644 --- a/po/mi.po +++ b/po/mi.po @@ -2129,276 +2129,131 @@ #: js/planetInterface.js:104 #: js/planetInterface.js:104 #: js/planetInterface.js:104 -msgid "project undefined" +#: js/SaveInterface.js:59 +#: js/SaveInterface.js:61 +#: js/SaveInterface.js:93 +msgid "Music Blocks Project" msgstr "" -#: js/logo.js:61 -msgid "Not a valid pitch name" +#: js/SaveInterface.js:63 +msgid "This project was created in Music Blocks" msgstr "" -#: js/logo.js:507 -#: js/ProgramBlocks.js:258 -#: js/ProgramBlocks.js:427 -msgid "You must select a file." +#: js/SaveInterface.js:67 +msgid "Music Blocks is a Free/Libre Software application." msgstr "" -#: js/logo.js:1184 -#: js/turtles.js:118 -#: js/turtle-painter.js:1192 -#: js/turtle-painter.js:1193 -#: js/block.js:1463 -#: js/lilypond.js:757 -#: js/lilypond.js:921 -#: js/lilypond.js:959 -#: js/ActionBlocks.js:1223 -#: js/ProgramBlocks.js:1267 -msgid "start" -msgstr "tīmata" - -#: js/logo.js:1696 -msgid "Playback is ready." +#: js/SaveInterface.js:69 +msgid "The source code can be accessed at" msgstr "" -#: js/blocks.js:1011 -#: js/blocks.js:3427 -#: js/blocks.js:3428 -#: js/blocks.js:3653 -#: js/blocks.js:4012 -#: js/blocks.js:4205 -#: js/blocks.js:5343 -#: js/blocks.js:6474 -#: js/palette.js:527 -#: js/palette.js:536 -#: js/palette.js:545 -#: js/palette.js:554 -#: js/palette.js:1131 -#: js/palette.js:1142 -#: js/palette.js:1153 -#: js/palette.js:1164 -#: js/palette.js:1183 -#: js/rubrics.js:529 -#: js/macros.js:170 -#: js/macros.js:266 -#: js/macros.js:267 -#: js/macros.js:276 -#: js/macros.js:828 -#: js/block.js:1449 -#: js/block.js:4164 -#: js/block.js:4182 -#: js/block.js:4193 -#: js/turtledefs.js:128 -#: js/turtledefs.js:230 -#: js/ActionBlocks.js:254 -#: js/ActionBlocks.js:307 -#: js/ActionBlocks.js:617 -#: js/ActionBlocks.js:716 -#: js/ActionBlocks.js:961 -#: js/ActionBlocks.js:1049 -#: js/ActionBlocks.js:1322 -#: js/ActionBlocks.js:1325 -#: js/ActionBlocks.js:1337 -#: js/ActionBlocks.js:1404 -#: js/MeterBlocks.js:715 -#: js/MeterBlocks.js:768 -#: js/MeterBlocks.js:831 -#: js/MeterBlocks.js:892 -#: js/phrasemaker.js:4412 -#: js/musickeyboard.js:2647 -#: js/rhythmruler.js:1928 -#: js/rhythmruler.js:1935 -#: js/rhythmruler.js:2119 -#: js/rhythmruler.js:2126 -msgid "action" -msgstr "hohenga" - -#: js/blocks.js:1205 -#: js/blocks.js:3380 -#: js/blocks.js:3770 -#: js/blocks.js:3801 -#: js/blocks.js:3850 -#: js/blocks.js:3885 -#: js/blocks.js:6497 -#: js/palette.js:509 -#: js/palette.js:638 -#: js/palette.js:1107 -#: js/BoxesBlocks.js:282 -#: js/BoxesBlocks.js:285 -#: js/BoxesBlocks.js:405 -#: js/BoxesBlocks.js:594 -msgid "box" -msgstr "pouaka" - -#: js/blocks.js:1680 -msgid "Consider breaking this stack into parts." +#: js/SaveInterface.js:72 +msgid "For more information, please consult the" msgstr "" -#: js/blocks.js:2408 -#: js/palette.js:653 -#: js/MediaBlocks.js:602 -msgid "open file" +#: js/SaveInterface.js:76 +#: js/turtledefs.js:795 +msgid "Music Blocks Guide" msgstr "" -#: js/blocks.js:2415 -#: js/blocks.js:2423 -#: js/activity.js:1875 -msgid "audio file" +#: js/SaveInterface.js:83 +msgid "Alternatively, open the file in Music Blocks using the Load project button." msgstr "" -#: js/blocks.js:2536 -#: js/blocks.js:3147 -#: js/block.js:3543 -msgid "on2" +#: js/SaveInterface.js:85 +msgid "Project Code" msgstr "" -#: js/blocks.js:2538 -#: js/blocks.js:3149 -#: js/block.js:3545 -msgid "off" +#: js/SaveInterface.js:87 +msgid "This code stores data about the blocks in a project." msgstr "" -#: js/blocks.js:2543 -#: js/blocks.js:3154 -#: js/palette.js:618 -#: js/block.js:3466 -#: js/BooleanBlocks.js:77 -#: js/BooleanBlocks.js:167 -#: js/BooleanBlocks.js:251 -#: js/BooleanBlocks.js:335 -#: js/BooleanBlocks.js:433 -#: js/BooleanBlocks.js:539 -#: js/BooleanBlocks.js:640 -#: js/BooleanBlocks.js:741 -#: js/BooleanBlocks.js:847 -#: js/BooleanBlocks.js:948 -#: js/BooleanBlocks.js:1033 -#: js/SensorsBlocks.js:910 -msgid "true" +#: js/SaveInterface.js:89 +msgid "Show" msgstr "" -#: js/blocks.js:2545 -#: js/blocks.js:3156 -#: js/block.js:3466 -#: js/BooleanBlocks.js:79 -#: js/BooleanBlocks.js:169 -#: js/BooleanBlocks.js:253 -#: js/BooleanBlocks.js:337 -#: js/BooleanBlocks.js:435 -#: js/BooleanBlocks.js:541 -#: js/BooleanBlocks.js:642 -#: js/BooleanBlocks.js:743 -#: js/BooleanBlocks.js:849 -#: js/BooleanBlocks.js:950 -#: js/SensorsBlocks.js:912 -msgid "false" +#: js/SaveInterface.js:91 +msgid "Hide" msgstr "" -#: js/blocks.js:3183 -#: js/palette.js:574 -#: js/MediaBlocks.js:892 -#: js/MediaBlocks.js:963 -msgid "text" -msgstr "kupu" - -#: js/blocks.js:3379 -#: js/palette.js:641 -#: js/palette.js:642 -#: js/BoxesBlocks.js:514 -msgid "store in box" +#: js/SaveInterface.js:131 +#: js/SaveInterface.js:204 +#: js/SaveInterface.js:262 +#: js/SaveInterface.js:389 +#: js/SaveInterface.js:417 +#: js/activity.js:4884 +#: planet/js/ProjectStorage.js:27 +#: planet/js/GlobalPlanet.js:467 +#: planet/js/GlobalPlanet.js:469 +#: planet/js/GlobalPlanet.js:495 +#.TRANS: default project title when saving as Lilypond +msgid "My Project" msgstr "" -#: js/blocks.js:3384 -#: js/blocks.js:3824 -#: js/blocks.js:3859 -#: js/blocks.js:3894 -#: js/blocks.js:5773 -#: js/blocks.js:5794 -#: js/BoxesBlocks.js:772 -msgid "box1" +#: js/SaveInterface.js:197 +#: planet/js/SaveInterface.js:58 +msgid "No description provided" msgstr "" -#: js/blocks.js:3386 -#: js/blocks.js:3826 -#: js/blocks.js:3861 -#: js/blocks.js:3896 -#: js/blocks.js:5775 -#: js/blocks.js:5796 -#: js/BoxesBlocks.js:663 -msgid "box2" +#: js/SaveInterface.js:332 +msgid "Your recording is in progress." msgstr "" -#: js/blocks.js:4058 -#: js/palette.js:639 -#: js/palette.js:644 -#: js/palette.js:1043 -#: js/BoxesBlocks.js:591 -msgid "store in" -msgstr "penapena ki" - -#: js/blocks.js:4058 -#: js/EnsembleBlocks.js:391 -#: js/EnsembleBlocks.js:402 -#: js/MediaBlocks.js:746 -#: js/ProgramBlocks.js:390 -#: js/ProgramBlocks.js:495 -#: js/ProgramBlocks.js:658 -#: js/BoxesBlocks.js:595 -#: js/PitchBlocks.js:656 -#: js/PitchBlocks.js:932 -#: js/PitchBlocks.js:1827 -#: js/ToneBlocks.js:1025 -#: js/DictBlocks.js:215 -#: js/DictBlocks.js:289 -msgid "name" +#: js/SaveInterface.js:401 +#.TRANS: File name prompt for save as Lilypond +msgid "File name" msgstr "" -#: js/blocks.js:4058 -#: js/RhythmBlocks.js:1130 -#: js/BoxesBlocks.js:75 -#: js/BoxesBlocks.js:595 -#: js/HeapBlocks.js:544 -#: js/DictBlocks.js:289 -#: js/DictBlocks.js:430 -msgid "value" -msgstr "uara" - -#: js/blocks.js:4907 -msgid "There is no block selected." +#: js/SaveInterface.js:403 +#: planet/js/StringHelper.js:39 +#.TRANS: Project title prompt for save as Lilypond +msgid "Project title" msgstr "" -#: js/blocks.js:5002 -#: js/MediaBlocks.js:888 -msgid "show" -msgstr "whakaatu" - -#: js/blocks.js:5005 -#: js/MediaBlocks.js:803 -#.TRANS: Avatar is the image used to determine the appearance of the mouse. -msgid "avatar" +#: js/SaveInterface.js:405 +#.TRANS: Project title prompt for save as Lilypond +msgid "Project author" msgstr "" -#: js/blocks.js:5008 -#: js/ToneBlocks.js:1010 -#: js/sampler.js:693 -#.TRANS: The sound sample that the user uploads. -msgid "sample" +#: js/SaveInterface.js:407 +#.TRANS: MIDI prompt for save as Lilypond +msgid "Include MIDI output?" msgstr "" -#: js/turtles.js:874 -msgid "Grid" -msgstr "Mātiti" +#: js/SaveInterface.js:409 +#.TRANS: Guitar prompt for save as Lilypond +msgid "Include guitar tablature output?" +msgstr "" -#: js/turtles.js:891 -#: js/turtledefs.js:626 -msgid "Clean" -msgstr "Horoia" +#: js/SaveInterface.js:411 +#.TRANS: Lilypond is a scripting language for generating sheet music +msgid "Save as Lilypond" +msgstr "" -#: js/turtles.js:912 -#: js/turtledefs.js:632 -msgid "Collapse" +#: js/SaveInterface.js:426 +#: js/blocks/EnsembleBlocks.js:75 +#: js/blocks/EnsembleBlocks.js:154 +#: js/blocks/EnsembleBlocks.js:216 +#: js/blocks/EnsembleBlocks.js:302 +#: js/blocks/EnsembleBlocks.js:348 +#: js/blocks/EnsembleBlocks.js:389 +#: js/blocks/EnsembleBlocks.js:441 +#: js/blocks/EnsembleBlocks.js:490 +#: js/blocks/EnsembleBlocks.js:536 +#: js/blocks/EnsembleBlocks.js:583 +#: js/blocks/EnsembleBlocks.js:637 +#: js/blocks/EnsembleBlocks.js:753 +#: js/blocks/EnsembleBlocks.js:840 +#: js/blocks/EnsembleBlocks.js:899 +#: js/blocks/EnsembleBlocks.js:942 +#: js/blocks/EnsembleBlocks.js:1212 +#: js/blocks/EnsembleBlocks.js:1280 +#.TRANS: default project author when saving as Lilypond +msgid "Mr. Mouse" msgstr "" -#: js/turtles.js:940 -msgid "Expand" +#: js/SaveInterface.js:573 +msgid "The Lilypond code is copied to clipboard. You can paste it here: " msgstr "" #: js/languagebox.js:198 @@ -2409,6933 +2264,7487 @@ msgstr "" msgid "Music Blocks is already set to this language." msgstr "" -#: js/piemenus.js:200 -#: js/musicutils.js:808 -#: js/musicutils.js:824 -#: js/phrasemaker.js:1672 -#: js/musickeyboard.js:2041 -#: js/sampler.js:544 -#.TRANS: double sharp is a music term related to pitch -msgid "double sharp" +#: js/planetInterface.js:131 +msgid "project undefined" msgstr "" -#: js/piemenus.js:201 -#: js/PitchBlocks.js:1510 -#: js/PitchActions.js:580 -#: js/musicutils.js:806 -#: js/musicutils.js:825 -#: js/phrasemaker.js:1673 -#: js/musickeyboard.js:2042 -#: js/sampler.js:545 -#.TRANS: sharp is a half-step up in pitch -#.TRANS: sharp is a music term related to pitch -msgid "sharp" +#: js/rubrics.js:523 +#: js/turtledefs.js:119 +#: js/turtledefs.js:221 +#: js/blocks/RhythmBlockPaletteBlocks.js:52 +#: js/blocks/RhythmBlockPaletteBlocks.js:234 +#: js/blocks/ProgramBlocks.js:745 +#: js/widgets/rhythmruler.js:2057 +#: js/widgets/rhythmruler.js:2064 +#: js/widgets/rhythmruler.js:2133 +#: js/widgets/rhythmruler.js:2140 +#: js/widgets/rhythmruler.js:2219 +#.TRANS: an arrangement of notes based on duration +msgid "rhythm" msgstr "" -#: js/piemenus.js:202 -#: js/musicutils.js:804 -#: js/musicutils.js:826 -#: js/phrasemaker.js:1674 -#: js/musickeyboard.js:2043 -#: js/sampler.js:546 -#.TRANS: natural is a music term related to pitch -msgid "natural" +#: js/rubrics.js:524 +#: js/turtledefs.js:121 +#: js/turtledefs.js:223 +#: js/block-verbose.js:2622 +#: js/block.js:2550 +#: js/blocks/IntervalsBlocks.js:63 +#: js/blocks/SensorsBlocks.js:178 +#: js/blocks/PitchBlocks.js:1839 +#: js/blocks/PitchBlocks.js:1853 +#: js/widgets/musickeyboard.js:1935 +#: js/widgets/phrasemaker.js:1036 +#.TRANS: pitch number +#.TRANS: pitch number +#.TRANS: we specify pitch in terms of a name and an octave. The name can be CDEFGAB or Do Re Mi Fa Sol La Ti. Octave is a number between 1 and 8. +msgid "pitch" msgstr "" -#: js/piemenus.js:203 -#: js/PitchBlocks.js:1469 -#: js/PitchActions.js:583 -#: js/musicutils.js:802 -#: js/musicutils.js:827 -#: js/phrasemaker.js:1675 -#: js/musickeyboard.js:2044 -#: js/sampler.js:547 -#.TRANS: flat is a half-step down in pitch -#.TRANS: flat is a music term related to pitch -msgid "flat" +#: js/rubrics.js:525 +#: js/turtledefs.js:123 +#: js/turtledefs.js:225 +msgid "tone" msgstr "" -#: js/piemenus.js:204 -#: js/musicutils.js:800 -#: js/musicutils.js:828 -#: js/phrasemaker.js:1676 -#: js/musickeyboard.js:2045 -#: js/sampler.js:548 -#.TRANS: double flat is a music term related to pitch -msgid "double flat" +#: js/rubrics.js:526 +#: js/lilypond.js:605 +#: js/lilypond.js:904 +#: js/lilypond.js:910 +#: js/lilypond.js:948 +msgid "mouse" msgstr "" -#: js/piemenus.js:2861 -#: js/PitchBlocks.js:1357 -#: js/musicutils.js:627 -#.TRANS: unison means the note is the same as the current note -#.TRANS: unison is a music term related to intervals -msgid "unison" +#: js/rubrics.js:527 +#: js/turtledefs.js:132 +#: js/turtledefs.js:234 +#: js/widgets/phrasemaker.js:1040 +msgid "pen" msgstr "" -#: js/piemenus.js:3015 -#: js/piemenus.js:3088 -#: js/musicutils.js:635 -#: js/musicutils.js:810 -#: js/musicutils.js:912 -#.TRANS: major is a music term related to intervals and mode -msgid "major" -msgstr "" +#: js/rubrics.js:528 +#: js/turtledefs.js:133 +#: js/turtledefs.js:235 +#: js/blocks/NumberBlocks.js:981 +#: js/blocks/PitchBlocks.js:1717 +#: js/blocks/PitchBlocks.js:1758 +msgid "number" +msgstr "tau" -#: js/piemenus.js:3015 -#: js/piemenus.js:3088 -#: js/musicutils.js:653 -#.TRANS: modal scale for music -msgid "ionian" +#: js/rubrics.js:529 +#: js/turtledefs.js:127 +#: js/turtledefs.js:229 +msgid "flow" msgstr "" -#: js/piemenus.js:3017 -#: js/piemenus.js:3092 -#: js/musicutils.js:633 -#: js/musicutils.js:811 -#: js/musicutils.js:909 -#.TRANS: minor is a music term related to intervals and mode -msgid "minor" -msgstr "" +#: js/rubrics.js:530 +#: js/turtledefs.js:128 +#: js/turtledefs.js:230 +#: js/block-verbose.js:1609 +#: js/block-verbose.js:4559 +#: js/block-verbose.js:4577 +#: js/block-verbose.js:4588 +#: js/block.js:1573 +#: js/block.js:4483 +#: js/block.js:4501 +#: js/block.js:4512 +#: js/blocks.js:1018 +#: js/blocks.js:3491 +#: js/blocks.js:3492 +#: js/blocks.js:3717 +#: js/blocks.js:4076 +#: js/blocks.js:4269 +#: js/blocks.js:5432 +#: js/blocks.js:6563 +#: js/macros.js:170 +#: js/macros.js:266 +#: js/macros.js:267 +#: js/macros.js:276 +#: js/macros.js:828 +#: js/palette.js:527 +#: js/palette.js:536 +#: js/palette.js:545 +#: js/palette.js:554 +#: js/palette.js:1129 +#: js/palette.js:1140 +#: js/palette.js:1151 +#: js/palette.js:1162 +#: js/palette.js:1181 +#: js/blocks/ActionBlocks.js:254 +#: js/blocks/ActionBlocks.js:307 +#: js/blocks/ActionBlocks.js:617 +#: js/blocks/ActionBlocks.js:716 +#: js/blocks/ActionBlocks.js:961 +#: js/blocks/ActionBlocks.js:1049 +#: js/blocks/ActionBlocks.js:1322 +#: js/blocks/ActionBlocks.js:1325 +#: js/blocks/ActionBlocks.js:1337 +#: js/blocks/ActionBlocks.js:1404 +#: js/blocks/MeterBlocks.js:715 +#: js/blocks/MeterBlocks.js:768 +#: js/blocks/MeterBlocks.js:831 +#: js/blocks/MeterBlocks.js:892 +#: js/widgets/musickeyboard.js:2986 +#: js/widgets/phrasemaker.js:4913 +#: js/widgets/rhythmruler.js:2319 +#: js/widgets/rhythmruler.js:2326 +#: js/widgets/rhythmruler.js:2511 +#: js/widgets/rhythmruler.js:2518 +msgid "action" +msgstr "hohenga" -#: js/piemenus.js:3017 -#: js/piemenus.js:3092 -#: js/musicutils.js:663 -#.TRANS: modal scale for music -msgid "aeolian" +#: js/rubrics.js:531 +#: js/turtledefs.js:136 +#: js/turtledefs.js:238 +msgid "sensors" msgstr "" -#: js/piemenus.js:3407 -msgid "Duplicate" +#: js/rubrics.js:532 +#: js/turtledefs.js:135 +#: js/turtledefs.js:237 +#: js/blocks/MediaBlocks.js:930 +msgid "media" msgstr "" -#: js/piemenus.js:3408 -#: js/turtledefs.js:534 -msgid "Extract" +#: js/rubrics.js:533 +msgid "mice" msgstr "" -#: js/piemenus.js:3409 -msgid "Move to trash" +#: js/toolbar.js:48 +#: js/toolbar.js:109 +msgid "About Music Blocks" msgstr "" -#: js/piemenus.js:3410 -#: js/timbre.js:968 -#: js/StringHelper.js:69 -msgid "Close" +#: js/toolbar.js:49 +#: js/toolbar.js:110 +#: js/toolbar.js:175 +#: js/toolbar.js:231 +#: js/turtledefs.js:445 +#: js/turtledefs.js:482 +#: js/activity.js:2660 +#: js/activity.js:2671 +#: js/activity.js:2902 +#: js/widgets/modewidget.js:77 +#: js/widgets/meterwidget.js:185 +#: js/widgets/pitchdrummatrix.js:147 +#: js/widgets/pitchdrummatrix.js:687 +#: js/widgets/pitchdrummatrix.js:689 +#: js/widgets/pitchdrummatrix.js:741 +#: js/widgets/pitchdrummatrix.js:743 +#: js/widgets/pitchdrummatrix.js:758 +#: js/widgets/pitchdrummatrix.js:760 +#: js/widgets/pitchdrummatrix.js:789 +#: js/widgets/pitchdrummatrix.js:791 +#: js/widgets/pitchstaircase.js:121 +#: js/widgets/temperament.js:610 +#: js/widgets/temperament.js:613 +#: js/widgets/temperament.js:673 +#: js/widgets/temperament.js:675 +#: js/widgets/temperament.js:2017 +#: js/widgets/temperament.js:2019 +#: js/widgets/tempo.js:84 +#: js/widgets/tempo.js:86 +#: js/widgets/timbre.js:432 +#: js/widgets/timbre.js:434 +#: js/widgets/timbre.js:465 +#: js/widgets/timbre.js:467 +#: js/widgets/timbre.js:746 +#: js/widgets/aiwidget.js:647 +#: js/widgets/aiwidget.js:654 +#: js/widgets/aiwidget.js:656 +#: js/widgets/arpeggio.js:90 +#: js/widgets/arpeggio.js:547 +#: js/widgets/arpeggio.js:549 +#: js/widgets/arpeggio.js:644 +#: js/widgets/arpeggio.js:646 +#: js/widgets/musickeyboard.js:676 +#: js/widgets/musickeyboard.js:872 +#: js/widgets/musickeyboard.js:874 +#: js/widgets/musickeyboard.js:953 +#: js/widgets/musickeyboard.js:955 +#: js/widgets/phrasemaker.js:513 +#: js/widgets/phrasemaker.js:523 +#: js/widgets/phrasemaker.js:525 +#: js/widgets/phrasemaker.js:4304 +#: js/widgets/phrasemaker.js:4528 +#: js/widgets/phrasemaker.js:4533 +#: js/widgets/phrasemaker.js:4535 +#: js/widgets/phrasemaker.js:4650 +#: js/widgets/rhythmruler.js:637 +#: js/widgets/rhythmruler.js:639 +#: js/widgets/rhythmruler.js:653 +#: js/widgets/rhythmruler.js:655 +#: js/widgets/sampler.js:162 +#: js/widgets/sampler.js:164 +#: js/widgets/sampler.js:363 +msgid "Play" msgstr "" -#: js/piemenus.js:3416 -msgid "Save stack" +#: js/toolbar.js:50 +#: js/toolbar.js:111 +#: js/toolbar.js:176 +#: js/toolbar.js:232 +#: js/turtledefs.js:451 +#: js/turtledefs.js:488 +#: js/activity.js:2679 +#: js/widgets/modewidget.js:99 +#: js/widgets/modewidget.js:101 +#: js/widgets/meterwidget.js:206 +#: js/widgets/meterwidget.js:208 +#: js/widgets/pitchdrummatrix.js:674 +#: js/widgets/pitchdrummatrix.js:676 +#: js/widgets/temperament.js:2002 +#: js/widgets/temperament.js:2004 +#: js/widgets/arpeggio.js:534 +#: js/widgets/arpeggio.js:536 +#: js/widgets/phrasemaker.js:534 +#: js/widgets/phrasemaker.js:536 +msgid "Stop" +msgstr "Tū" + +#: js/toolbar.js:51 +#: js/toolbar.js:112 +#: js/toolbar.js:177 +#: js/toolbar.js:233 +#: js/turtledefs.js:498 +msgid "Record" msgstr "" -#: js/piemenus.js:3420 -#: js/toolbar.js:60 +#: js/toolbar.js:52 +#: js/toolbar.js:53 +msgid "Full screen" +msgstr "" + +#: js/toolbar.js:54 +#: js/toolbar.js:115 +#: js/toolbar.js:180 +#: js/toolbar.js:236 +#: js/turtledefs.js:504 +msgid "Toggle Fullscreen" +msgstr "" + +#: js/toolbar.js:55 +#: js/toolbar.js:116 +#: js/toolbar.js:181 +#: js/toolbar.js:237 +#: js/turtledefs.js:510 +#: planet/js/StringHelper.js:33 +msgid "New project" +msgstr "" + +#: js/toolbar.js:56 +#: js/toolbar.js:117 +#: js/toolbar.js:182 +#: js/toolbar.js:238 +#: js/turtledefs.js:516 +msgid "Load project from file" +msgstr "" + +#: js/toolbar.js:57 +#: js/toolbar.js:118 +#: js/toolbar.js:119 +#: js/toolbar.js:183 +#: js/toolbar.js:239 +#: js/turtledefs.js:541 +#: js/turtledefs.js:550 +#: js/turtledefs.js:571 +msgid "Save project" +msgstr "" + +#: js/toolbar.js:58 +#: js/toolbar.js:77 +#: js/toolbar.js:79 +#: js/toolbar.js:138 +#: js/toolbar.js:147 +#: js/toolbar.js:149 +#: js/toolbar.js:184 +#: js/toolbar.js:202 +#: js/toolbar.js:204 +#: js/toolbar.js:240 +#: js/toolbar.js:258 +#: js/toolbar.js:260 +msgid "Save project as HTML" +msgstr "" + +#: js/toolbar.js:59 #: js/toolbar.js:120 #: js/toolbar.js:185 -#: js/toolbar.js:240 +#: js/toolbar.js:241 +msgid "Find and share projects" +msgstr "" + +#: js/toolbar.js:60 +#: js/toolbar.js:121 +#: js/toolbar.js:186 +#: js/toolbar.js:242 +msgid "Offline. Sharing is unavailable" +msgstr "" + +#: js/toolbar.js:61 +#: js/toolbar.js:122 +#: js/toolbar.js:187 +#: js/toolbar.js:243 +msgid "Auxiliary menu" +msgstr "" + +#: js/toolbar.js:62 +#: js/toolbar.js:123 +#: js/toolbar.js:188 +#: js/toolbar.js:244 #: js/turtledefs.js:752 +#: js/piemenus.js:3423 msgid "Help" msgstr "Āwhina" -#: js/piemenus.js:3762 -msgid "You have chosen key " +#: js/toolbar.js:63 +#: js/toolbar.js:124 +#: js/toolbar.js:189 +#: js/toolbar.js:245 +msgid "Run slowly" +msgstr "" + +#: js/toolbar.js:64 +#: js/toolbar.js:125 +#: js/toolbar.js:190 +#: js/toolbar.js:246 +#: js/turtledefs.js:682 +msgid "Run step by step" +msgstr "" + +#: js/toolbar.js:65 +#: js/toolbar.js:126 +#: js/toolbar.js:191 +#: js/toolbar.js:247 +#: js/turtledefs.js:689 +msgid "Display statistics" +msgstr "" + +#: js/toolbar.js:66 +#: js/toolbar.js:127 +#: js/toolbar.js:192 +#: js/toolbar.js:248 +msgid "Load plugin" +msgstr "" + +#: js/toolbar.js:67 +#: js/toolbar.js:128 +#: js/toolbar.js:193 +#: js/toolbar.js:249 +#: js/turtledefs.js:696 +msgid "Delete plugin" +msgstr "" + +#: js/toolbar.js:68 +#: js/toolbar.js:129 +#: js/toolbar.js:194 +#: js/toolbar.js:250 +msgid "Enable horizontal scrolling" +msgstr "" + +#: js/toolbar.js:69 +#: js/toolbar.js:130 +#: js/toolbar.js:195 +#: js/toolbar.js:251 +msgid "Disable horizontal scrolling" +msgstr "" + +#: js/toolbar.js:70 +#: js/toolbar.js:131 +#: js/toolbar.js:196 +#: js/toolbar.js:252 +#: planet/js/LocalCard.js:54 +#: planet/js/StringHelper.js:71 +msgid "Merge with current project" +msgstr "" + +#: js/toolbar.js:71 +#: js/toolbar.js:132 +msgid "Set Pitch Preview" +msgstr "" + +#: js/toolbar.js:72 +#: js/toolbar.js:133 +#: js/toolbar.js:197 +#: js/toolbar.js:253 +msgid "JavaScript Editor" +msgstr "" + +#: js/toolbar.js:73 +#: js/toolbar.js:134 +#: js/toolbar.js:198 +#: js/toolbar.js:254 +#: js/turtledefs.js:724 +msgid "Restore" +msgstr "" + +#: js/toolbar.js:74 +#: js/toolbar.js:135 +#: js/toolbar.js:199 +#: js/toolbar.js:255 +msgid "Switch to beginner mode" +msgstr "" + +#: js/toolbar.js:75 +#: js/toolbar.js:136 +#: js/toolbar.js:200 +#: js/toolbar.js:256 +msgid "Switch to advanced mode" +msgstr "" + +#: js/toolbar.js:76 +#: js/toolbar.js:137 +#: js/toolbar.js:146 +#: js/toolbar.js:201 +#: js/toolbar.js:257 +#: js/turtledefs.js:738 +msgid "Select language" +msgstr "" + +#: js/toolbar.js:78 +#: js/toolbar.js:81 +#: js/toolbar.js:140 +#: js/turtledefs.js:579 +msgid "Save mouse artwork as PNG" +msgstr "" + +#: js/toolbar.js:80 +#: js/toolbar.js:139 +#: js/turtledefs.js:575 +msgid "Save mouse artwork as SVG" +msgstr "" + +#: js/toolbar.js:82 +#: js/toolbar.js:141 +#: js/turtledefs.js:583 +msgid "Save music as WAV" +msgstr "" + +#: js/toolbar.js:83 +#: js/toolbar.js:142 +#: js/turtledefs.js:587 +msgid "Save sheet music as ABC" +msgstr "" + +#: js/toolbar.js:84 +#: js/toolbar.js:143 +#: js/turtledefs.js:591 +msgid "Save sheet music as Lilypond" +msgstr "" + +#: js/toolbar.js:85 +msgid "Save sheet music as MusicXML" +msgstr "" + +#: js/toolbar.js:86 +#: js/toolbar.js:144 +#: js/toolbar.js:152 +#: js/toolbar.js:207 +#: js/toolbar.js:263 +#: js/turtledefs.js:562 +#: js/turtledefs.js:595 +msgid "Save block artwork as SVG" +msgstr "" + +#: js/toolbar.js:87 +#: js/toolbar.js:145 +#: js/toolbar.js:153 +#: js/toolbar.js:208 +#: js/toolbar.js:264 +#: js/turtles.js:911 +msgid "Confirm" +msgstr "" + +#: js/toolbar.js:88 +#: js/toolbar.js:154 +#: js/toolbar.js:209 +#: js/toolbar.js:265 +msgid "English (United States)" +msgstr "" + +#: js/toolbar.js:89 +#: js/toolbar.js:155 +#: js/toolbar.js:210 +#: js/toolbar.js:266 +msgid "English (United Kingdom)" +msgstr "" + +#: js/toolbar.js:90 +#: js/toolbar.js:156 +#: js/toolbar.js:211 +#: js/toolbar.js:267 +msgid "日本語" +msgstr "" + +#: js/toolbar.js:91 +msgid "한국어" +msgstr "" + +#: js/toolbar.js:92 +#: js/toolbar.js:158 +#: js/toolbar.js:213 +#: js/toolbar.js:269 +msgid "español" +msgstr "" + +#: js/toolbar.js:93 +#: js/toolbar.js:159 +#: js/toolbar.js:214 +#: js/toolbar.js:270 +msgid "português" +msgstr "" + +#: js/toolbar.js:94 +#: js/toolbar.js:160 +#: js/toolbar.js:215 +#: js/toolbar.js:271 +msgid "にほんご" +msgstr "" + +#: js/toolbar.js:95 +#: js/toolbar.js:161 +#: js/toolbar.js:216 +#: js/toolbar.js:272 +msgid "中文" +msgstr "" + +#: js/toolbar.js:96 +#: js/toolbar.js:162 +#: js/toolbar.js:217 +#: js/toolbar.js:273 +msgid "ภาษาไทย" +msgstr "" + +#: js/toolbar.js:97 +#: js/toolbar.js:163 +#: js/toolbar.js:218 +#: js/toolbar.js:274 +msgid "aymara" +msgstr "" + +#: js/toolbar.js:98 +#: js/toolbar.js:164 +#: js/toolbar.js:219 +#: js/toolbar.js:275 +msgid "quechua" +msgstr "" + +#: js/toolbar.js:99 +#: js/toolbar.js:165 +#: js/toolbar.js:220 +#: js/toolbar.js:276 +msgid "guarani" +msgstr "" + +#: js/toolbar.js:100 +#: js/toolbar.js:166 +#: js/toolbar.js:221 +#: js/toolbar.js:277 +msgid "हिंदी" +msgstr "" + +#: js/toolbar.js:101 +#: js/toolbar.js:168 +#: js/toolbar.js:222 +#: js/toolbar.js:279 +msgid "igbo" +msgstr "" + +#: js/toolbar.js:102 +#: js/toolbar.js:169 +#: js/toolbar.js:223 +#: js/toolbar.js:280 +msgid "عربى" +msgstr "" + +#: js/toolbar.js:103 +#: js/toolbar.js:167 +#: js/toolbar.js:224 +#: js/toolbar.js:278 +msgid "తెలుగు" +msgstr "" + +#: js/toolbar.js:104 +#: js/toolbar.js:170 +#: js/toolbar.js:225 +#: js/toolbar.js:281 +msgid "עִברִית" +msgstr "" + +#: js/toolbar.js:113 +#: js/toolbar.js:114 +#: js/toolbar.js:178 +#: js/toolbar.js:179 +#: js/toolbar.js:234 +#: js/toolbar.js:235 +msgid "Full Screen" +msgstr "" + +#: js/toolbar.js:148 +#: js/toolbar.js:151 +#: js/toolbar.js:203 +#: js/toolbar.js:206 +#: js/toolbar.js:259 +#: js/toolbar.js:262 +#: js/turtledefs.js:558 +msgid "Save turtle artwork as PNG" +msgstr "" + +#: js/toolbar.js:150 +#: js/toolbar.js:205 +#: js/toolbar.js:261 +#: js/turtledefs.js:554 +msgid "Save turtle artwork as SVG" +msgstr "" + +#: js/toolbar.js:157 +#: js/toolbar.js:212 +#: js/toolbar.js:268 +msgid "한국인" +msgstr "" + +#: js/toolbar.js:174 +#: js/toolbar.js:230 +msgid "About Turtle Blocks" +msgstr "" + +#: js/toolbar.js:446 +#: js/toolbar.js:457 +#: js/toolbar.js:497 +msgid "Turtle Wrap Off" +msgstr "" + +#: js/toolbar.js:466 +#: js/toolbar.js:506 +msgid "Turtle Wrap On" +msgstr "" + +#: js/turtle-painter.js:1192 +#: js/turtle-painter.js:1193 +#: js/turtles.js:118 +#: js/block-verbose.js:1623 +#: js/block.js:1587 +#: js/lilypond.js:749 +#: js/lilypond.js:913 +#: js/lilypond.js:951 +#: js/logo.js:1184 +#: js/blocks/ActionBlocks.js:1223 +#: js/blocks/ProgramBlocks.js:1267 +msgid "start" +msgstr "tīmata" + +#: js/turtledefs.js:40 +#.TRANS: put the URL to the guide here, e.g., https://github.com/sugarlabs/turtleblocksjs/tree/master/guide/README.md +msgid "guide url" +msgstr "" + +#: js/turtledefs.js:85 +#: js/turtledefs.js:437 +msgid "Turtle Blocks is a Logo-inspired turtle that draws colorful pictures with snap-together visual-programming blocks." +msgstr "" + +#: js/turtledefs.js:118 +#: js/turtledefs.js:220 +msgid "search" +msgstr "" + +#: js/turtledefs.js:120 +#: js/turtledefs.js:222 +#: js/blocks/MeterBlocks.js:1343 +#: js/blocks/WidgetBlocks.js:522 +#.TRANS: musical meter (time signature), e.g., 4:4 +msgid "meter" +msgstr "" + +#: js/turtledefs.js:122 +#: js/turtledefs.js:224 +msgid "intervals" +msgstr "" + +#: js/turtledefs.js:124 +#: js/turtledefs.js:226 +msgid "ornament" +msgstr "" + +#: js/turtledefs.js:125 +#: js/turtledefs.js:227 +#: js/blocks/VolumeBlocks.js:362 +#: js/blocks/VolumeBlocks.js:502 +#: js/blocks/VolumeBlocks.js:545 +msgid "volume" +msgstr "" + +#: js/turtledefs.js:126 +#: js/turtledefs.js:228 +#: js/block-verbose.js:1700 +#: js/block-verbose.js:2626 +#: js/block.js:1664 +#: js/block.js:2554 +#: js/lilypond.js:732 +#: js/lilypond.js:897 +#: js/lilypond.js:941 +#: js/palette.js:577 +#: js/blocks/RhythmBlocks.js:766 +#: js/blocks/DrumBlocks.js:477 +#: js/blocks/VolumeBlocks.js:502 +#: js/widgets/phrasemaker.js:1038 +msgid "drum" +msgstr "" + +#: js/turtledefs.js:129 +#: js/turtledefs.js:231 +msgid "boxes" +msgstr "" + +#: js/turtledefs.js:130 +#: js/turtledefs.js:232 +msgid "widgets" +msgstr "" + +#: js/turtledefs.js:131 +#: js/turtledefs.js:233 +#: js/widgets/phrasemaker.js:1039 +msgid "graphics" +msgstr "" + +#: js/turtledefs.js:134 +#: js/turtledefs.js:236 +msgid "boolean" +msgstr "" + +#: js/turtledefs.js:137 +#: js/turtledefs.js:239 +#: js/blocks/HeapBlocks.js:59 +#: js/widgets/status.js:147 +msgid "heap" +msgstr "" + +#: js/turtledefs.js:138 +#: js/turtledefs.js:240 +#: js/blocks/DictBlocks.js:142 +#: js/blocks/ProgramBlocks.js:495 +msgid "dictionary" +msgstr "" + +#: js/turtledefs.js:139 +#: js/turtledefs.js:241 +msgid "ensemble" +msgstr "" + +#: js/turtledefs.js:140 +#: js/turtledefs.js:242 +msgid "extras" msgstr "" -#: js/piemenus.js:3766 -msgid " for your pitch preview." +#: js/turtledefs.js:142 +#: js/turtledefs.js:244 +#.TRANS: program as in computer program +#.TRANS: program as in computer program +msgid "program" msgstr "" -#: js/palette.js:571 -msgid "grid" -msgstr "mātiti" +#: js/turtledefs.js:143 +#: js/turtledefs.js:245 +msgid "my blocks" +msgstr "" -#: js/palette.js:577 -#: js/block.js:1540 -#: js/block.js:2343 -#: js/turtledefs.js:126 -#: js/turtledefs.js:228 -#: js/lilypond.js:740 -#: js/lilypond.js:905 -#: js/lilypond.js:949 -#: js/DrumBlocks.js:486 -#: js/RhythmBlocks.js:766 -#: js/VolumeBlocks.js:502 -#: js/phrasemaker.js:823 -msgid "drum" +#: js/turtledefs.js:185 +#: js/turtledefs.js:281 +msgid "artwork" msgstr "" -#: js/palette.js:580 -msgid "effect" +#: js/turtledefs.js:185 +#: js/turtledefs.js:281 +msgid "logic" msgstr "" -#: js/palette.js:586 -msgid "sargam" +#: js/turtledefs.js:185 +#: js/turtledefs.js:281 +msgid "music" msgstr "" -#: js/palette.js:589 -#: js/activity.js:1833 -#: js/RhythmBlocks.js:923 -#: js/PitchBlocks.js:442 -#: js/PitchBlocks.js:1748 -#.TRANS: a numeric mapping of the notes in an octave based on the musical mode -msgid "scale degree" +#: js/turtledefs.js:187 +#: js/turtledefs.js:463 +msgid "Music Blocks is a collection of tools for exploring fundamental musical concepts in a fun way." msgstr "" -#: js/palette.js:592 -#: js/activity.js:1860 -msgid "mode name" +#: js/turtledefs.js:436 +msgid "Welcome to Turtle Blocks" msgstr "" -#: js/palette.js:595 -#: js/activity.js:1839 -msgid "invert mode" +#: js/turtledefs.js:438 +#: js/turtledefs.js:465 +#: js/turtledefs.js:774 +#: js/turtledefs.js:805 +msgid "The current version is" msgstr "" -#: js/palette.js:598 -#: js/activity.js:1836 -msgid "voice name" +#: js/turtledefs.js:446 +#: js/turtledefs.js:483 +msgid "Click the run button to run the project in fast mode." msgstr "" -#: js/palette.js:601 -#: js/PitchBlocks.js:1181 -msgid "custom pitch" +#: js/turtledefs.js:452 +msgid "Stop the turtle." msgstr "" -#: js/palette.js:605 -#: js/block.js:1456 -#: js/block.js:1575 -#: js/WidgetBlocks.js:218 -#: js/IntervalsBlocks.js:63 -msgid "temperament" +#: js/turtledefs.js:454 +#: js/turtledefs.js:491 +msgid "You can also type Alt-S to stop." msgstr "" -#: js/palette.js:609 -msgid "accidental" +#: js/turtledefs.js:462 +#: js/widgets/help.js:333 +msgid "Welcome to Music Blocks" msgstr "" -#: js/palette.js:615 -#: js/activity.js:1866 -msgid "interval name" +#: js/turtledefs.js:472 +#: js/widgets/help.js:334 +msgid "Meet Mr. Mouse!" msgstr "" -#: js/palette.js:633 -#: js/PitchBlocks.js:405 -msgid "pitch converter" +#: js/turtledefs.js:473 +msgid "Mr Mouse is our Music Blocks conductor." msgstr "" -#: js/rubrics.js:522 -#: js/turtledefs.js:119 -#: js/turtledefs.js:221 -#: js/RhythmBlockPaletteBlocks.js:52 -#: js/RhythmBlockPaletteBlocks.js:233 -#: js/ProgramBlocks.js:745 -#: js/rhythmruler.js:1670 -#: js/rhythmruler.js:1677 -#: js/rhythmruler.js:1745 -#: js/rhythmruler.js:1752 -#: js/rhythmruler.js:1830 -#.TRANS: an arrangement of notes based on duration -msgid "rhythm" +#: js/turtledefs.js:475 +msgid "Mr Mouse encourages you to explore Music Blocks." msgstr "" -#: js/rubrics.js:523 -#: js/block.js:2339 -#: js/turtledefs.js:121 -#: js/turtledefs.js:223 -#: js/IntervalsBlocks.js:63 -#: js/PitchBlocks.js:1801 -#: js/PitchBlocks.js:1814 -#: js/SensorsBlocks.js:178 -#: js/phrasemaker.js:821 -#: js/musickeyboard.js:1653 -#.TRANS: pitch number -#.TRANS: we specify pitch in terms of a name and an octave. The name can be CDEFGAB or Do Re Mi Fa Sol La Ti. Octave is a number between 1 and 8. -msgid "pitch" +#: js/turtledefs.js:477 +msgid "Let us start our tour!" msgstr "" -#: js/rubrics.js:524 -#: js/turtledefs.js:123 -#: js/turtledefs.js:225 -msgid "tone" +#: js/turtledefs.js:489 +msgid "Stop the music (and the mice)." msgstr "" -#: js/rubrics.js:525 -#: js/lilypond.js:613 -#: js/lilypond.js:912 -#: js/lilypond.js:918 -#: js/lilypond.js:956 -msgid "mouse" +#: js/turtledefs.js:499 +msgid "Record your project as video." msgstr "" -#: js/rubrics.js:526 -#: js/turtledefs.js:132 -#: js/turtledefs.js:234 -#: js/phrasemaker.js:825 -msgid "pen" +#: js/turtledefs.js:505 +msgid "Toggle Fullscreen mode." msgstr "" -#: js/rubrics.js:527 -#: js/turtledefs.js:133 -#: js/turtledefs.js:235 -#: js/NumberBlocks.js:905 -#: js/PitchBlocks.js:1679 -#: js/PitchBlocks.js:1720 -msgid "number" -msgstr "tau" +#: js/turtledefs.js:511 +msgid "Initialize a new project." +msgstr "" -#: js/rubrics.js:528 -#: js/turtledefs.js:127 -#: js/turtledefs.js:229 -msgid "flow" +#: js/turtledefs.js:517 +msgid "You can also load projects from the file system." msgstr "" -#: js/rubrics.js:530 -#: js/turtledefs.js:136 -#: js/turtledefs.js:238 -msgid "sensors" +#: js/turtledefs.js:522 +#: planet/js/StringHelper.js:46 +msgid "Delete" msgstr "" -#: js/rubrics.js:531 -#: js/turtledefs.js:135 -#: js/turtledefs.js:237 -#: js/MediaBlocks.js:930 -msgid "media" +#: js/turtledefs.js:523 +msgid "To delete a block, just right-click on it, then you will be able to see the delete option" msgstr "" -#: js/rubrics.js:532 -msgid "mice" +#: js/turtledefs.js:528 +#: js/activity.js:2649 +#: planet/js/LocalCard.js:31 +msgid "Copy" +msgstr "Tārua" + +#: js/turtledefs.js:529 +msgid "To copy a block, just right-click on it, then you will be able to see the copy option" msgstr "" -#: js/macros.js:711 -#: js/musicutils.js:783 -#: js/synthutils.js:181 -#.TRANS: animal sound effect -msgid "duck" +#: js/turtledefs.js:534 +#: js/piemenus.js:3411 +msgid "Extract" msgstr "" -#: js/toolbar.js:46 -#: js/toolbar.js:107 -msgid "About Music Blocks" +#: js/turtledefs.js:535 +msgid "To extract a block, just right-click on it, then you will be able to see the extract option" msgstr "" -#: js/toolbar.js:47 -#: js/toolbar.js:108 -#: js/toolbar.js:172 -#: js/toolbar.js:228 -#: js/turtledefs.js:445 -#: js/turtledefs.js:482 -#: js/activity.js:2281 -#: js/activity.js:2289 -#: js/activity.js:2520 -#: js/modewidget.js:77 -#: js/pitchstaircase.js:121 -#: js/phrasemaker.js:302 -#: js/phrasemaker.js:312 -#: js/phrasemaker.js:314 -#: js/phrasemaker.js:3901 -#: js/phrasemaker.js:4061 -#: js/phrasemaker.js:4066 -#: js/phrasemaker.js:4068 -#: js/phrasemaker.js:4183 -#: js/pitchdrummatrix.js:81 -#: js/pitchdrummatrix.js:574 -#: js/pitchdrummatrix.js:576 -#: js/pitchdrummatrix.js:628 -#: js/pitchdrummatrix.js:630 -#: js/pitchdrummatrix.js:645 -#: js/pitchdrummatrix.js:647 -#: js/pitchdrummatrix.js:674 -#: js/pitchdrummatrix.js:676 -#: js/temperament.js:477 -#: js/temperament.js:480 -#: js/temperament.js:540 -#: js/temperament.js:542 -#: js/temperament.js:1835 -#: js/temperament.js:1837 -#: js/temperament.js:1986 -#: js/temperament.js:1988 -#: js/musickeyboard.js:522 -#: js/musickeyboard.js:682 -#: js/musickeyboard.js:684 -#: js/musickeyboard.js:756 -#: js/musickeyboard.js:758 -#: js/rhythmruler.js:298 -#: js/rhythmruler.js:300 -#: js/rhythmruler.js:314 -#: js/rhythmruler.js:316 -#: js/sampler.js:96 -#: js/sampler.js:98 -#: js/sampler.js:229 -#: js/sampler.js:235 -#: js/sampler.js:237 -#: js/tempo.js:84 -#: js/tempo.js:86 -#: js/timbre.js:432 -#: js/timbre.js:434 -#: js/timbre.js:465 -#: js/timbre.js:467 -#: js/timbre.js:746 -#: js/meterwidget.js:80 -#: js/arpeggio.js:90 -#: js/arpeggio.js:547 -#: js/arpeggio.js:549 -#: js/arpeggio.js:644 -#: js/arpeggio.js:646 -msgid "Play" +#: js/turtledefs.js:542 +#: js/turtledefs.js:552 +#: js/turtledefs.js:573 +msgid "Save your project to a file." msgstr "" -#: js/toolbar.js:48 -#: js/toolbar.js:109 -#: js/toolbar.js:173 -#: js/toolbar.js:229 -#: js/turtledefs.js:451 -#: js/turtledefs.js:488 -#: js/activity.js:2297 -#: js/modewidget.js:99 -#: js/modewidget.js:101 -#: js/phrasemaker.js:323 -#: js/phrasemaker.js:325 -#: js/pitchdrummatrix.js:561 -#: js/pitchdrummatrix.js:563 -#: js/temperament.js:1820 -#: js/temperament.js:1822 -#: js/meterwidget.js:101 -#: js/meterwidget.js:103 -#: js/arpeggio.js:534 -#: js/arpeggio.js:536 -msgid "Stop" -msgstr "Tū" +#: js/turtledefs.js:549 +#: js/turtledefs.js:570 +msgid "save" +msgstr "" -#: js/toolbar.js:49 -#: js/toolbar.js:110 -#: js/toolbar.js:174 -#: js/toolbar.js:230 -#: js/turtledefs.js:498 -msgid "Record" +#: js/turtledefs.js:556 +#: js/turtledefs.js:577 +msgid "Save graphics from your project to as SVG." msgstr "" -#: js/toolbar.js:50 -#: js/toolbar.js:51 -msgid "Full screen" +#: js/turtledefs.js:560 +#: js/turtledefs.js:581 +msgid "Save graphics from your project as PNG." msgstr "" -#: js/toolbar.js:52 -#: js/toolbar.js:112 -#: js/toolbar.js:177 -#: js/toolbar.js:232 -#: js/turtledefs.js:504 -msgid "Toggle Fullscreen" +#: js/turtledefs.js:564 +#: js/turtledefs.js:597 +msgid "Save block artwork as an SVG file." msgstr "" -#: js/toolbar.js:53 -#: js/toolbar.js:113 -#: js/toolbar.js:178 -#: js/toolbar.js:233 -#: js/turtledefs.js:510 -#: js/StringHelper.js:33 -msgid "New project" +#: js/turtledefs.js:585 +msgid "Save audio from your project as WAV." msgstr "" -#: js/toolbar.js:54 -#: js/toolbar.js:114 -#: js/toolbar.js:179 -#: js/toolbar.js:234 -#: js/turtledefs.js:516 -msgid "Load project from file" +#: js/turtledefs.js:589 +msgid "Save your project to as an ABC file." msgstr "" -#: js/toolbar.js:55 -#: js/toolbar.js:115 -#: js/toolbar.js:116 -#: js/toolbar.js:180 -#: js/toolbar.js:235 -#: js/turtledefs.js:541 -#: js/turtledefs.js:550 -#: js/turtledefs.js:571 -msgid "Save project" +#: js/turtledefs.js:593 +msgid "Save your project to as a Lilypond file." msgstr "" -#: js/toolbar.js:56 -#: js/toolbar.js:75 -#: js/toolbar.js:77 -#: js/toolbar.js:135 -#: js/toolbar.js:144 -#: js/toolbar.js:146 -#: js/toolbar.js:181 -#: js/toolbar.js:199 -#: js/toolbar.js:201 -#: js/toolbar.js:236 -#: js/toolbar.js:254 -#: js/toolbar.js:256 -msgid "Save project as HTML" +#: js/turtledefs.js:604 +msgid "Load samples from server" msgstr "" -#: js/toolbar.js:57 -#: js/toolbar.js:117 -#: js/toolbar.js:182 -#: js/toolbar.js:237 -msgid "Find and share projects" +#: js/turtledefs.js:605 +msgid "This button opens a viewer for loading example projects." +msgstr "" + +#: js/turtledefs.js:611 +msgid "Palette buttons" +msgstr "" + +#: js/turtledefs.js:612 +msgid "This toolbar contains the palette buttons including Rhythm Pitch Tone Action and more." +msgstr "" + +#: js/turtledefs.js:614 +msgid "Click to show the palettes of blocks and drag blocks from the palettes onto the canvas to use them." +msgstr "" + +#: js/turtledefs.js:620 +msgid "Cartesian/Polar" msgstr "" -#: js/toolbar.js:58 -#: js/toolbar.js:118 -#: js/toolbar.js:183 -#: js/toolbar.js:238 -msgid "Offline. Sharing is unavailable" +#: js/turtledefs.js:621 +msgid "Show or hide a coordinate grid." msgstr "" -#: js/toolbar.js:59 -#: js/toolbar.js:119 -#: js/toolbar.js:184 -#: js/toolbar.js:239 -msgid "Auxiliary menu" +#: js/turtledefs.js:626 +#: js/turtles.js:902 +msgid "Clean" +msgstr "Horoia" + +#: js/turtledefs.js:627 +msgid "Clear the screen and return the mice to their initial positions." msgstr "" -#: js/toolbar.js:61 -#: js/toolbar.js:121 -#: js/toolbar.js:186 -#: js/toolbar.js:241 -msgid "Run slowly" +#: js/turtledefs.js:632 +#: js/turtles.js:955 +msgid "Collapse" msgstr "" -#: js/toolbar.js:62 -#: js/toolbar.js:122 -#: js/toolbar.js:187 -#: js/toolbar.js:242 -#: js/turtledefs.js:682 -msgid "Run step by step" +#: js/turtledefs.js:633 +msgid "Collapse the graphics window." msgstr "" -#: js/toolbar.js:63 -#: js/toolbar.js:123 -#: js/toolbar.js:188 -#: js/toolbar.js:243 -#: js/turtledefs.js:689 -msgid "Display statistics" +#: js/turtledefs.js:638 +#: js/activity.js:5684 +msgid "Home" msgstr "" -#: js/toolbar.js:64 -#: js/toolbar.js:124 -#: js/toolbar.js:189 -#: js/toolbar.js:244 -msgid "Load plugin" +#: js/turtledefs.js:639 +msgid "Return all blocks to the center of the screen." msgstr "" -#: js/toolbar.js:65 -#: js/toolbar.js:125 -#: js/toolbar.js:190 -#: js/toolbar.js:245 -#: js/turtledefs.js:696 -msgid "Delete plugin" +#: js/turtledefs.js:644 +msgid "Show/hide blocks" +msgstr "Whakaatu/huna paraka" + +#: js/turtledefs.js:645 +msgid "Hide or show the blocks and the palettes." msgstr "" -#: js/toolbar.js:66 -#: js/toolbar.js:126 -#: js/toolbar.js:191 -#: js/toolbar.js:246 -msgid "Enable horizontal scrolling" +#: js/turtledefs.js:650 +msgid "Expand/collapse collapsable blocks" msgstr "" -#: js/toolbar.js:67 -#: js/toolbar.js:127 -#: js/toolbar.js:192 -#: js/toolbar.js:247 -msgid "Disable horizontal scrolling" +#: js/turtledefs.js:651 +msgid "Expand or collapse start and action stacks." msgstr "" -#: js/toolbar.js:68 -#: js/toolbar.js:128 -#: js/toolbar.js:193 -#: js/toolbar.js:248 -#: js/LocalCard.js:54 -#: js/StringHelper.js:71 -msgid "Merge with current project" +#: js/turtledefs.js:658 +#: js/activity.js:5704 +msgid "Decrease block size" msgstr "" -#: js/toolbar.js:69 -#: js/toolbar.js:129 -msgid "Set Pitch Preview" +#: js/turtledefs.js:659 +msgid "Decrease the size of the blocks." msgstr "" -#: js/toolbar.js:70 -#: js/toolbar.js:130 -#: js/toolbar.js:194 -#: js/toolbar.js:249 -msgid "Toggle JavaScript Editor" +#: js/turtledefs.js:664 +#: js/activity.js:5710 +msgid "Increase block size" msgstr "" -#: js/toolbar.js:71 -#: js/toolbar.js:131 -#: js/toolbar.js:195 -#: js/toolbar.js:250 -#: js/turtledefs.js:724 -msgid "Restore" +#: js/turtledefs.js:665 +msgid "Increase the size of the blocks." msgstr "" -#: js/toolbar.js:72 -#: js/toolbar.js:132 -#: js/toolbar.js:196 -#: js/toolbar.js:251 -msgid "Switch to beginner mode" +#: js/turtledefs.js:670 +msgid "Expand/collapse option toolbar" msgstr "" -#: js/toolbar.js:73 -#: js/toolbar.js:133 -#: js/toolbar.js:197 -#: js/toolbar.js:252 -msgid "Switch to advanced mode" +#: js/turtledefs.js:671 +msgid "Click this button to expand or collapse the auxillary toolbar." msgstr "" -#: js/toolbar.js:74 -#: js/toolbar.js:134 -#: js/toolbar.js:143 -#: js/toolbar.js:198 -#: js/toolbar.js:253 -#: js/turtledefs.js:738 -msgid "Select language" +#: js/turtledefs.js:676 +msgid "Run slow" msgstr "" -#: js/toolbar.js:76 -#: js/toolbar.js:79 -#: js/toolbar.js:137 -#: js/turtledefs.js:579 -msgid "Save mouse artwork as PNG" +#: js/turtledefs.js:677 +msgid "Click to run the project in slow mode." msgstr "" -#: js/toolbar.js:78 -#: js/toolbar.js:136 -#: js/turtledefs.js:575 -msgid "Save mouse artwork as SVG" +#: js/turtledefs.js:683 +msgid "Click to run the project step by step." msgstr "" -#: js/toolbar.js:80 -#: js/toolbar.js:138 -#: js/turtledefs.js:583 -msgid "Save music as WAV" +#: js/turtledefs.js:690 +msgid "Display statistics about your Music project." msgstr "" -#: js/toolbar.js:81 -#: js/toolbar.js:139 -#: js/turtledefs.js:587 -msgid "Save sheet music as ABC" +#: js/turtledefs.js:697 +msgid "Delete a selected plugin." msgstr "" -#: js/toolbar.js:82 -#: js/toolbar.js:140 -#: js/turtledefs.js:591 -msgid "Save sheet music as Lilypond" +#: js/turtledefs.js:704 +msgid "Enable scrolling" msgstr "" -#: js/toolbar.js:83 -msgid "Save sheet music as MusicXML" +#: js/turtledefs.js:705 +msgid "You can scroll the blocks on the canvas." msgstr "" -#: js/toolbar.js:84 -#: js/toolbar.js:141 -#: js/toolbar.js:149 -#: js/toolbar.js:204 -#: js/toolbar.js:259 -#: js/turtledefs.js:562 -#: js/turtledefs.js:595 -msgid "Save block artwork as SVG" +#: js/turtledefs.js:714 +msgid "Wrap Turtle" msgstr "" -#: js/toolbar.js:85 -#: js/toolbar.js:142 -#: js/toolbar.js:150 -#: js/toolbar.js:205 -#: js/toolbar.js:260 -msgid "Confirm" +#: js/turtledefs.js:715 +msgid "Turn Turtle wrapping On or Off." msgstr "" -#: js/toolbar.js:86 -#: js/toolbar.js:151 -#: js/toolbar.js:206 -#: js/toolbar.js:261 -msgid "English (United States)" +#: js/turtledefs.js:725 +msgid "Restore blocks from the trash." msgstr "" -#: js/toolbar.js:87 -#: js/toolbar.js:152 -#: js/toolbar.js:207 -#: js/toolbar.js:262 -msgid "English (United Kingdom)" +#: js/turtledefs.js:732 +msgid "Switch mode" msgstr "" -#: js/toolbar.js:88 -#: js/toolbar.js:153 -#: js/toolbar.js:208 -#: js/toolbar.js:263 -msgid "日本語" +#: js/turtledefs.js:733 +msgid "Switch between beginner and advance modes." msgstr "" -#: js/toolbar.js:89 -msgid "한국어" +#: js/turtledefs.js:739 +msgid "Select your language preference." msgstr "" -#: js/toolbar.js:90 -#: js/toolbar.js:155 -#: js/toolbar.js:210 -#: js/toolbar.js:265 -msgid "español" +#: js/turtledefs.js:745 +msgid "Keyboard shortcuts" msgstr "" -#: js/toolbar.js:91 -#: js/toolbar.js:156 -#: js/toolbar.js:211 -#: js/toolbar.js:266 -msgid "português" +#: js/turtledefs.js:746 +msgid "You can type d to create a do block and r to create a re block etc." msgstr "" -#: js/toolbar.js:92 -#: js/toolbar.js:157 -#: js/toolbar.js:212 -#: js/toolbar.js:267 -msgid "にほんご" +#: js/turtledefs.js:753 +msgid "Show these messages." msgstr "" -#: js/toolbar.js:93 -#: js/toolbar.js:158 -#: js/toolbar.js:213 -#: js/toolbar.js:268 -msgid "中文" +#: js/turtledefs.js:759 +#: js/turtledefs.js:790 +#: js/widgets/help.js:335 +msgid "Guide" msgstr "" -#: js/toolbar.js:94 -#: js/toolbar.js:159 -#: js/toolbar.js:214 -#: js/toolbar.js:269 -msgid "ภาษาไทย" +#: js/turtledefs.js:760 +msgid "A detailed guide to Turtle Blocks is available." msgstr "" -#: js/toolbar.js:95 -#: js/toolbar.js:160 -#: js/toolbar.js:215 -#: js/toolbar.js:270 -msgid "aymara" +#: js/turtledefs.js:764 +msgid "Turtle Blocks Guide" msgstr "" -#: js/toolbar.js:96 -#: js/toolbar.js:161 -#: js/toolbar.js:216 -#: js/toolbar.js:271 -msgid "quechua" +#: js/turtledefs.js:767 +#: js/turtledefs.js:798 +#: js/widgets/help.js:336 +msgid "About" +msgstr "" + +#: js/turtledefs.js:768 +msgid "Turtle Blocks is an open source collection of tools for exploring musical concepts." msgstr "" -#: js/toolbar.js:97 -#: js/toolbar.js:162 -#: js/toolbar.js:217 -#: js/toolbar.js:272 -msgid "guarani" +#: js/turtledefs.js:770 +msgid "A full list of contributors can be found in the Turtle Blocks GitHub repository." msgstr "" -#: js/toolbar.js:98 -#: js/toolbar.js:163 -#: js/toolbar.js:218 -#: js/toolbar.js:273 -msgid "हिंदी" +#: js/turtledefs.js:772 +msgid "Turtle Blocks is licensed under the AGPL." msgstr "" -#: js/toolbar.js:99 -#: js/toolbar.js:165 -#: js/toolbar.js:219 -#: js/toolbar.js:275 -msgid "igbo" +#: js/turtledefs.js:780 +msgid "Turtle Blocks GitHub repository" msgstr "" -#: js/toolbar.js:100 -#: js/toolbar.js:166 -#: js/toolbar.js:220 -#: js/toolbar.js:276 -msgid "عربى" +#: js/turtledefs.js:783 +#: js/turtledefs.js:814 +#: js/widgets/help.js:337 +#: js/widgets/help.js:359 +msgid "Congratulations." msgstr "" -#: js/toolbar.js:101 -#: js/toolbar.js:164 -#: js/toolbar.js:221 -#: js/toolbar.js:274 -msgid "తెలుగు" +#: js/turtledefs.js:784 +msgid "You have finished the tour. Please enjoy Turtle Blocks!" msgstr "" -#: js/toolbar.js:102 -#: js/toolbar.js:167 -#: js/toolbar.js:222 -#: js/toolbar.js:277 -msgid "עִברִית" +#: js/turtledefs.js:791 +msgid "A detailed guide to Music Blocks is available." msgstr "" -#: js/toolbar.js:111 -#: js/toolbar.js:175 -#: js/toolbar.js:176 -#: js/toolbar.js:231 -msgid "Full Screen" +#: js/turtledefs.js:799 +msgid "Music Blocks is an open source collection of tools for exploring musical concepts." msgstr "" -#: js/toolbar.js:145 -#: js/toolbar.js:148 -#: js/toolbar.js:200 -#: js/toolbar.js:203 -#: js/toolbar.js:255 -#: js/toolbar.js:258 -#: js/turtledefs.js:558 -msgid "Save turtle artwork as PNG" +#: js/turtledefs.js:801 +msgid "A full list of contributors can be found in the Music Blocks GitHub repository." msgstr "" -#: js/toolbar.js:147 -#: js/toolbar.js:202 -#: js/toolbar.js:257 -#: js/turtledefs.js:554 -msgid "Save turtle artwork as SVG" +#: js/turtledefs.js:803 +msgid "Music Blocks is licensed under the AGPL." msgstr "" -#: js/toolbar.js:154 -#: js/toolbar.js:209 -#: js/toolbar.js:264 -msgid "한국인" +#: js/turtledefs.js:811 +msgid "Music Blocks GitHub repository" msgstr "" -#: js/toolbar.js:171 -#: js/toolbar.js:227 -msgid "About Turtle Blocks" +#: js/turtledefs.js:815 +msgid "You have finished the tour. Please enjoy Music Blocks!" msgstr "" -#: js/toolbar.js:429 -#: js/toolbar.js:440 -msgid "Turtle Wrap Off" +#: js/turtles.js:882 +msgid "Grid" +msgstr "Mātiti" + +#: js/turtles.js:1024 +msgid "Expand" msgstr "" -#: js/toolbar.js:442 -msgid "Turtle Wrap On" +#: js/block-verbose.js:1616 +#: js/block-verbose.js:1735 +#: js/block.js:1580 +#: js/block.js:1699 +#: js/palette.js:605 +#: js/blocks/IntervalsBlocks.js:63 +#: js/blocks/WidgetBlocks.js:259 +msgid "temperament" msgstr "" -#: js/block.js:1470 +#: js/block-verbose.js:1630 +#: js/block.js:1594 msgid "matrix" msgstr "" -#: js/block.js:1477 -#: js/WidgetBlocks.js:1226 +#: js/block-verbose.js:1637 +#: js/block.js:1601 +#: js/blocks/WidgetBlocks.js:1509 #: plugins/rodi.rtp:324 msgid "status" msgstr "" -#: js/block.js:1484 +#: js/block-verbose.js:1644 +#: js/block.js:1608 msgid "drum mapper" msgstr "" -#: js/block.js:1491 +#: js/block-verbose.js:1651 +#: js/block.js:1615 msgid "ruler" msgstr "" -#: js/block.js:1498 -#: js/WidgetBlocks.js:327 +#: js/block-verbose.js:1658 +#: js/block.js:1622 +#: js/blocks/WidgetBlocks.js:397 #.TRANS: timbre is the character or quality of a musical sound msgid "timbre" msgstr "" -#: js/block.js:1505 +#: js/block-verbose.js:1665 +#: js/block.js:1629 msgid "stair" msgstr "" -#: js/block.js:1512 -#: js/WidgetBlocks.js:577 +#: js/block-verbose.js:1672 +#: js/block.js:1636 +#: js/blocks/WidgetBlocks.js:707 #.TRANS: the speed at music is should be played. msgid "tempo" msgstr "" -#: js/block.js:1519 -#: js/block.js:1582 -#: js/IntervalsBlocks.js:1268 +#: js/block-verbose.js:1679 +#: js/block-verbose.js:1742 +#: js/block.js:1643 +#: js/block.js:1706 +#: js/blocks/IntervalsBlocks.js:1464 #.TRANS: mode, e.g., Major in C Major msgid "mode" msgstr "" -#: js/block.js:1526 +#: js/block-verbose.js:1686 +#: js/block.js:1650 msgid "slider" msgstr "" -#: js/block.js:1533 -#: js/SensorsBlocks.js:1001 +#: js/block-verbose.js:1693 +#: js/block.js:1657 +#: js/blocks/SensorsBlocks.js:1001 msgid "keyboard" msgstr "papapātuhi" -#: js/block.js:1547 -#: js/WidgetBlocks.js:957 -#: js/WidgetBlocks.js:988 +#: js/block-verbose.js:1707 +#: js/block.js:1671 +#: js/blocks/WidgetBlocks.js:1190 +#: js/blocks/WidgetBlocks.js:1228 #.TRANS: widget for subdividing a measure into distinct rhythmic elements msgid "rhythm maker" msgstr "" -#: js/block.js:1554 -#: js/block.js:2182 -#: js/block.js:2236 -#: js/RhythmBlockPaletteBlocks.js:70 -#: js/RhythmBlockPaletteBlocks.js:251 -#: js/RhythmBlockPaletteBlocks.js:484 -#: js/RhythmBlockPaletteBlocks.js:553 -#: js/RhythmBlockPaletteBlocks.js:604 -#: js/RhythmBlockPaletteBlocks.js:874 -#: js/RhythmBlocks.js:33 -#: js/RhythmBlocks.js:356 -#: js/RhythmBlocks.js:766 -#: js/RhythmBlocks.js:806 -#: js/OrnamentBlocks.js:220 -#: js/OrnamentBlocks.js:312 -#: js/MeterBlocks.js:1367 -#: js/DictActions.js:85 -#: js/phrasemaker.js:731 -#: js/phrasemaker.js:2393 -#: js/phrasemaker.js:2436 -#: js/phrasemaker.js:2534 +#: js/block-verbose.js:1714 +#: js/block-verbose.js:2457 +#: js/block-verbose.js:2514 +#: js/block.js:1678 +#: js/block.js:2385 +#: js/block.js:2442 +#: js/blocks/MeterBlocks.js:1367 +#: js/blocks/OrnamentBlocks.js:220 +#: js/blocks/OrnamentBlocks.js:312 +#: js/blocks/RhythmBlocks.js:33 +#: js/blocks/RhythmBlocks.js:356 +#: js/blocks/RhythmBlocks.js:766 +#: js/blocks/RhythmBlocks.js:806 +#: js/blocks/RhythmBlockPaletteBlocks.js:70 +#: js/blocks/RhythmBlockPaletteBlocks.js:252 +#: js/blocks/RhythmBlockPaletteBlocks.js:485 +#: js/blocks/RhythmBlockPaletteBlocks.js:554 +#: js/blocks/RhythmBlockPaletteBlocks.js:605 +#: js/blocks/RhythmBlockPaletteBlocks.js:875 +#: js/turtleactions/DictActions.js:85 +#: js/widgets/phrasemaker.js:942 +#: js/widgets/phrasemaker.js:2656 +#: js/widgets/phrasemaker.js:2699 +#: js/widgets/phrasemaker.js:2810 #.TRANS: the value (e.g., 1/4 note) of the note being played. msgid "note value" msgstr "" -#: js/block.js:1561 -#: js/block.js:2110 -#: js/block.js:2133 -#: js/IntervalsBlocks.js:875 -#: js/OrnamentBlocks.js:312 +#: js/block-verbose.js:1721 +#: js/block-verbose.js:2382 +#: js/block-verbose.js:2405 +#: js/block.js:1685 +#: js/block.js:2310 +#: js/block.js:2333 +#: js/blocks/IntervalsBlocks.js:1071 +#: js/blocks/OrnamentBlocks.js:312 #.TRANS: calculate a relative step between notes based on semi-tones msgid "scalar interval" msgstr "" -#: js/block.js:1568 -#: js/RhythmBlocks.js:148 +#: js/block-verbose.js:1728 +#: js/block.js:1692 +#: js/blocks/RhythmBlocks.js:148 msgid "milliseconds" msgstr "" -#: js/block.js:2180 -#: js/block.js:2184 -#: js/block.js:2234 -#: js/block.js:2345 -#: js/ProgramBlocks.js:1273 -#: js/RhythmBlocks.js:712 -#: js/rhythmruler.js:834 -#: js/rhythmruler.js:961 +#: js/block-verbose.js:2455 +#: js/block-verbose.js:2459 +#: js/block-verbose.js:2512 +#: js/block-verbose.js:2628 +#: js/block.js:2383 +#: js/block.js:2387 +#: js/block.js:2440 +#: js/block.js:2556 +#: js/blocks/RhythmBlocks.js:712 +#: js/blocks/ProgramBlocks.js:1273 +#: js/widgets/rhythmruler.js:1183 +#: js/widgets/rhythmruler.js:1329 msgid "silence" msgstr "" -#: js/block.js:2265 -#: js/block.js:3134 -#: js/block.js:3151 -#: js/activity.js:2336 -#: js/activity.js:2387 -#: js/musicutils.js:2932 -#: js/musicutils.js:4287 +#: js/block-verbose.js:2548 +#: js/block-verbose.js:3492 +#: js/block-verbose.js:3509 +#: js/activity.js:2718 +#: js/activity.js:2769 +#: js/block.js:2476 +#: js/block.js:3416 +#: js/block.js:3433 +#: js/utils/musicutils.js:3780 +#: js/utils/musicutils.js:5273 +#.TRANS: the note names must be separated by single spaces #.TRANS: the note names must be separated by single spaces #.TRANS: the note names must be separated by single spaces msgid "ti la sol fa mi re do" msgstr "" -#: js/block.js:2333 +#: js/block-verbose.js:2616 +#: js/block.js:2544 +#.TRANS: scalar step #.TRANS: scalar step msgid "down" msgstr "" -#: js/block.js:2334 +#: js/block-verbose.js:2617 +#: js/block.js:2545 msgid "up" msgstr "" -#: js/block.js:3477 -#: js/block.js:3490 -#: js/ExtrasBlocks.js:612 +#: js/block-verbose.js:3026 +#: js/block.js:2950 +msgid "Silence block cannot be removed." +msgstr "" + +#: js/block-verbose.js:3824 +#: js/block.js:3748 +#: js/blocks.js:2607 +#: js/blocks.js:3218 +#: js/palette.js:618 +#: js/blocks/BooleanBlocks.js:77 +#: js/blocks/BooleanBlocks.js:167 +#: js/blocks/BooleanBlocks.js:251 +#: js/blocks/BooleanBlocks.js:335 +#: js/blocks/BooleanBlocks.js:433 +#: js/blocks/BooleanBlocks.js:539 +#: js/blocks/BooleanBlocks.js:640 +#: js/blocks/BooleanBlocks.js:741 +#: js/blocks/BooleanBlocks.js:847 +#: js/blocks/BooleanBlocks.js:948 +#: js/blocks/BooleanBlocks.js:1033 +#: js/blocks/SensorsBlocks.js:910 +msgid "true" +msgstr "" + +#: js/block-verbose.js:3824 +#: js/block.js:3748 +#: js/blocks.js:2609 +#: js/blocks.js:3220 +#: js/blocks/BooleanBlocks.js:79 +#: js/blocks/BooleanBlocks.js:169 +#: js/blocks/BooleanBlocks.js:253 +#: js/blocks/BooleanBlocks.js:337 +#: js/blocks/BooleanBlocks.js:435 +#: js/blocks/BooleanBlocks.js:541 +#: js/blocks/BooleanBlocks.js:642 +#: js/blocks/BooleanBlocks.js:743 +#: js/blocks/BooleanBlocks.js:849 +#: js/blocks/BooleanBlocks.js:950 +#: js/blocks/SensorsBlocks.js:912 +msgid "false" +msgstr "" + +#: js/block-verbose.js:3835 +#: js/block-verbose.js:3848 +#: js/block.js:3759 +#: js/block.js:3772 +#: js/blocks/ExtrasBlocks.js:615 msgid "Cartesian" msgstr "Katihini" -#: js/block.js:3478 -#: js/block.js:3491 -#: js/ExtrasBlocks.js:616 +#: js/block-verbose.js:3836 +#: js/block-verbose.js:3849 +#: js/block.js:3760 +#: js/block.js:3773 +#: js/blocks/ExtrasBlocks.js:619 msgid "polar" msgstr "" -#: js/block.js:3479 -#: js/block.js:3492 -#: js/ExtrasBlocks.js:620 +#: js/block-verbose.js:3837 +#: js/block-verbose.js:3850 +#: js/block.js:3761 +#: js/block.js:3774 +#: js/blocks/ExtrasBlocks.js:623 msgid "Cartesian+polar" msgstr "" -#: js/block.js:3480 -#: js/block.js:3499 -#: js/ExtrasBlocks.js:649 +#: js/block-verbose.js:3838 +#: js/block-verbose.js:3857 +#: js/block.js:3762 +#: js/block.js:3781 +#: js/blocks/ExtrasBlocks.js:652 msgid "none" msgstr "" -#: js/block.js:3493 -#: js/ExtrasBlocks.js:625 +#: js/block-verbose.js:3851 +#: js/block.js:3775 +#: js/blocks/ExtrasBlocks.js:628 msgid "treble" msgstr "" -#: js/block.js:3494 -#: js/ExtrasBlocks.js:629 +#: js/block-verbose.js:3852 +#: js/block.js:3776 +#: js/blocks/ExtrasBlocks.js:632 msgid "grand staff" msgstr "" -#: js/block.js:3495 -#: js/ExtrasBlocks.js:633 +#: js/block-verbose.js:3853 +#: js/block.js:3777 +#: js/blocks/ExtrasBlocks.js:636 msgid "mezzo-soprano" msgstr "" -#: js/block.js:3496 -#: js/ExtrasBlocks.js:637 +#: js/block-verbose.js:3854 +#: js/block.js:3778 +#: js/blocks/ExtrasBlocks.js:640 msgid "alto" msgstr "" -#: js/block.js:3497 -#: js/ExtrasBlocks.js:641 +#: js/block-verbose.js:3855 +#: js/block.js:3779 +#: js/blocks/ExtrasBlocks.js:644 msgid "tenor" msgstr "" -#: js/block.js:3498 -#: js/ExtrasBlocks.js:645 -#: js/musicutils.js:736 -#: js/synthutils.js:64 +#: js/block-verbose.js:3856 +#: js/block.js:3780 +#: js/utils/musicutils.js:1115 +#: js/utils/synthutils.js:80 +#: js/blocks/ExtrasBlocks.js:648 #.TRANS: musical instrument msgid "bass" msgstr "" -#: js/block.js:4075 +#: js/block-verbose.js:3901 +#: js/block.js:3825 +#: js/blocks.js:2600 +#: js/blocks.js:3211 +msgid "on2" +msgstr "" + +#: js/block-verbose.js:3903 +#: js/block.js:3827 +#: js/blocks.js:2602 +#: js/blocks.js:3213 +msgid "off" +msgstr "" + +#: js/block-verbose.js:4470 +#: js/block.js:4394 msgid "Not a number" msgstr "" -#: js/block.js:4082 -msgid "Octave value must be between 1 and 10." +#: js/block-verbose.js:4477 +#: js/block.js:4401 +msgid "Octave value must be between 1 and 10." +msgstr "" + +#: js/block-verbose.js:4485 +#: js/block.js:4409 +msgid "Numbers can have at most 10 digits." +msgstr "" + +#: js/activity.js:390 +#: js/activity.js:395 +msgid "Search for blocks" +msgstr "" + +#: js/activity.js:1413 +msgid "Refresh your browser to change to advanced mode." +msgstr "" + +#: js/activity.js:1418 +msgid "Refresh your browser to change to beginner mode." +msgstr "" + +#: js/activity.js:1477 +msgid "Catching mice" +msgstr "" + +#: js/activity.js:1478 +msgid "Cleaning the instruments" +msgstr "" + +#: js/activity.js:1479 +msgid "Testing key pieces" +msgstr "" + +#: js/activity.js:1480 +msgid "Sight-reading" +msgstr "" + +#: js/activity.js:1481 +msgid "Combining math and music" +msgstr "" + +#: js/activity.js:1482 +msgid "Generating more blocks" +msgstr "" + +#: js/activity.js:1483 +msgid "Do Re Mi Fa Sol La Ti Do" +msgstr "" + +#: js/activity.js:1484 +msgid "Tuning string instruments" +msgstr "" + +#: js/activity.js:1485 +msgid "Pressing random keys" +msgstr "" + +#: js/activity.js:1663 +msgid "plugins will be removed upon restart." +msgstr "" + +#: js/activity.js:1672 +msgid "show Cartesian" +msgstr "" + +#: js/activity.js:2211 +#: js/palette.js:589 +#: js/blocks/RhythmBlocks.js:923 +#: js/blocks/PitchBlocks.js:442 +#: js/blocks/PitchBlocks.js:1786 +#.TRANS: a numeric mapping of the notes in an octave based on the musical mode +msgid "scale degree" +msgstr "" + +#: js/activity.js:2214 +#: js/palette.js:598 +msgid "voice name" +msgstr "" + +#: js/activity.js:2217 +#: js/palette.js:595 +msgid "invert mode" +msgstr "" + +#: js/activity.js:2220 +msgid "output tools" +msgstr "" + +#: js/activity.js:2223 +msgid "custom note" +msgstr "" + +#: js/activity.js:2226 +msgid "accidental name" +msgstr "" + +#: js/activity.js:2229 +#: js/blocks/PitchBlocks.js:855 +msgid "east indian solfege" +msgstr "" + +#: js/activity.js:2232 +#: js/blocks/PitchBlocks.js:869 +msgid "note name" +msgstr "" + +#: js/activity.js:2235 +#: js/blocks/IntervalsBlocks.js:94 +msgid "temperament name" +msgstr "" + +#: js/activity.js:2238 +#: js/palette.js:592 +msgid "mode name" +msgstr "" + +#: js/activity.js:2241 +msgid "chord name" +msgstr "" + +#: js/activity.js:2244 +#: js/palette.js:615 +msgid "interval name" +msgstr "" + +#: js/activity.js:2247 +msgid "filter type" +msgstr "" + +#: js/activity.js:2250 +msgid "oscillator type" +msgstr "" + +#: js/activity.js:2253 +#: js/blocks.js:2479 +#: js/blocks.js:2487 +msgid "audio file" +msgstr "" + +#: js/activity.js:2256 +#: js/blocks/DrumBlocks.js:32 +msgid "noise name" +msgstr "" + +#: js/activity.js:2259 +#: js/blocks/DrumBlocks.js:75 +msgid "drum name" +msgstr "" + +#: js/activity.js:2262 +#: js/blocks/DrumBlocks.js:119 +msgid "effects name" +msgstr "" + +#: js/activity.js:2265 +msgid "wrap mode" +msgstr "" + +#: js/activity.js:2268 +msgid "load file" +msgstr "" + +#: js/activity.js:2435 +#: js/activity.js:5851 +msgid "This block is deprecated." +msgstr "" + +#: js/activity.js:2437 +#: js/activity.js:5853 +msgid "Block cannot be found." +msgstr "" + +#: js/activity.js:2645 +msgid "Saving block artwork" +msgstr "" + +#: js/activity.js:2656 +msgid "Erase" +msgstr "" + +#: js/activity.js:2683 +#: js/activity.js:2705 +msgid "Paste" +msgstr "Whakapiri" + +#: js/activity.js:2687 +msgid "Save block help" +msgstr "" + +#: js/activity.js:2772 +msgid "Jumping to the bottom of the page." +msgstr "" + +#: js/activity.js:2778 +msgid "Scrolling up." +msgstr "" + +#: js/activity.js:2783 +msgid "Scrolling down." +msgstr "" + +#: js/activity.js:2788 +msgid "Extracting block" +msgstr "" + +#: js/activity.js:2796 +msgid "Moving block up." +msgstr "" + +#: js/activity.js:2817 +msgid "Moving block down." msgstr "" -#: js/block.js:4090 -msgid "Numbers can have at most 10 digits." +#: js/activity.js:2838 +msgid "Moving block left." msgstr "" -#: js/notation.js:353 -msgid "Lilypond cannot process pickup of " +#: js/activity.js:2855 +msgid "Moving block right." msgstr "" -#: js/turtledefs.js:40 -#.TRANS: put the URL to the guide here, e.g., https://github.com/sugarlabs/turtleblocksjs/tree/master/guide/README.md -msgid "guide url" +#: js/activity.js:2870 +msgid "Jump to home position." msgstr "" -#: js/turtledefs.js:85 -#: js/turtledefs.js:437 -msgid "Turtle Blocks is a Logo-inspired turtle that draws colorful pictures with snap-together visual-programming blocks." +#: js/activity.js:2897 +msgid "Hide blocks" msgstr "" -#: js/turtledefs.js:118 -#: js/turtledefs.js:220 -msgid "search" +#: js/activity.js:4500 +msgid "Click the run button to run the project." msgstr "" -#: js/turtledefs.js:120 -#: js/turtledefs.js:222 -#: js/WidgetBlocks.js:437 -#: js/MeterBlocks.js:1343 -#.TRANS: musical meter (time signature), e.g., 4:4 -msgid "meter" +#: js/activity.js:5692 +msgid "Show/hide block" msgstr "" -#: js/turtledefs.js:122 -#: js/turtledefs.js:224 -msgid "intervals" +#: js/activity.js:5698 +msgid "Expand/collapse blocks" msgstr "" -#: js/turtledefs.js:124 -#: js/turtledefs.js:226 -msgid "ornament" +#: js/activity.js:5976 +msgid "Could not parse JSON input." msgstr "" -#: js/turtledefs.js:125 -#: js/turtledefs.js:227 -#: js/VolumeBlocks.js:362 -#: js/VolumeBlocks.js:502 -#: js/VolumeBlocks.js:545 -msgid "volume" +#: js/activity.js:6475 +#: js/activity.js:6580 +#: js/activity.js:6631 +msgid "Cannot load project from the file. Please check the file type." msgstr "" -#: js/turtledefs.js:129 -#: js/turtledefs.js:231 -msgid "boxes" +#: js/activity.js:6917 +msgid "Invalid parameters" msgstr "" -#: js/turtledefs.js:130 -#: js/turtledefs.js:232 -msgid "widgets" -msgstr "" +#: js/blocks.js:1212 +#: js/blocks.js:3444 +#: js/blocks.js:3834 +#: js/blocks.js:3865 +#: js/blocks.js:3914 +#: js/blocks.js:3949 +#: js/blocks.js:6586 +#: js/palette.js:509 +#: js/palette.js:638 +#: js/palette.js:1105 +#: js/blocks/BoxesBlocks.js:282 +#: js/blocks/BoxesBlocks.js:285 +#: js/blocks/BoxesBlocks.js:405 +#: js/blocks/BoxesBlocks.js:594 +msgid "box" +msgstr "pouaka" -#: js/turtledefs.js:131 -#: js/turtledefs.js:233 -#: js/phrasemaker.js:824 -msgid "graphics" +#: js/blocks.js:1713 +msgid "Consider breaking this stack into parts." msgstr "" -#: js/turtledefs.js:134 -#: js/turtledefs.js:236 -msgid "boolean" +#: js/blocks.js:2472 +#: js/palette.js:653 +#: js/blocks/MediaBlocks.js:602 +msgid "open file" msgstr "" -#: js/turtledefs.js:137 -#: js/turtledefs.js:239 -#: js/HeapBlocks.js:59 -#: js/status.js:147 -msgid "heap" +#: js/blocks.js:3247 +#: js/palette.js:574 +#: js/blocks/MediaBlocks.js:892 +#: js/blocks/MediaBlocks.js:963 +msgid "text" +msgstr "kupu" + +#: js/blocks.js:3443 +#: js/palette.js:641 +#: js/palette.js:642 +#: js/blocks/BoxesBlocks.js:514 +msgid "store in box" msgstr "" -#: js/turtledefs.js:138 -#: js/turtledefs.js:240 -#: js/ProgramBlocks.js:495 -#: js/DictBlocks.js:142 -msgid "dictionary" +#: js/blocks.js:3448 +#: js/blocks.js:3888 +#: js/blocks.js:3923 +#: js/blocks.js:3958 +#: js/blocks.js:5862 +#: js/blocks.js:5883 +#: js/blocks/BoxesBlocks.js:772 +msgid "box1" msgstr "" -#: js/turtledefs.js:139 -#: js/turtledefs.js:241 -msgid "ensemble" +#: js/blocks.js:3450 +#: js/blocks.js:3890 +#: js/blocks.js:3925 +#: js/blocks.js:3960 +#: js/blocks.js:5864 +#: js/blocks.js:5885 +#: js/blocks/BoxesBlocks.js:663 +msgid "box2" msgstr "" -#: js/turtledefs.js:140 -#: js/turtledefs.js:242 -msgid "extras" +#: js/blocks.js:4122 +#: js/palette.js:639 +#: js/palette.js:644 +#: js/palette.js:1041 +#: js/blocks/BoxesBlocks.js:591 +msgid "store in" +msgstr "penapena ki" + +#: js/blocks.js:4122 +#: js/blocks/BoxesBlocks.js:595 +#: js/blocks/DictBlocks.js:215 +#: js/blocks/DictBlocks.js:289 +#: js/blocks/EnsembleBlocks.js:391 +#: js/blocks/EnsembleBlocks.js:402 +#: js/blocks/MediaBlocks.js:746 +#: js/blocks/PitchBlocks.js:656 +#: js/blocks/PitchBlocks.js:934 +#: js/blocks/PitchBlocks.js:1866 +#: js/blocks/ProgramBlocks.js:390 +#: js/blocks/ProgramBlocks.js:495 +#: js/blocks/ProgramBlocks.js:658 +#: js/blocks/ToneBlocks.js:1025 +msgid "name" msgstr "" -#: js/turtledefs.js:142 -#: js/turtledefs.js:244 -#.TRANS: program as in computer program -#.TRANS: program as in computer program -msgid "program" +#: js/blocks.js:4122 +#: js/blocks/BoxesBlocks.js:75 +#: js/blocks/BoxesBlocks.js:595 +#: js/blocks/DictBlocks.js:289 +#: js/blocks/DictBlocks.js:430 +#: js/blocks/HeapBlocks.js:544 +#: js/blocks/RhythmBlocks.js:1130 +msgid "value" +msgstr "uara" + +#: js/blocks.js:4465 +msgid "Forever loop detected inside a note value block. Unexpected things may happen." msgstr "" -#: js/turtledefs.js:143 -#: js/turtledefs.js:245 -msgid "my blocks" +#: js/blocks.js:4988 +msgid "There is no block selected." msgstr "" -#: js/turtledefs.js:185 -#: js/turtledefs.js:281 -msgid "artwork" +#: js/blocks.js:5091 +#: js/blocks/MediaBlocks.js:888 +msgid "show" +msgstr "whakaatu" + +#: js/blocks.js:5094 +#: js/blocks/MediaBlocks.js:803 +#.TRANS: Avatar is the image used to determine the appearance of the mouse. +msgid "avatar" msgstr "" -#: js/turtledefs.js:185 -#: js/turtledefs.js:281 -msgid "logic" +#: js/blocks.js:5097 +#: js/blocks/ToneBlocks.js:1010 +#: js/widgets/sampler.js:975 +#.TRANS: The sound sample that the user uploads. +msgid "sample" msgstr "" -#: js/turtledefs.js:185 -#: js/turtledefs.js:281 -msgid "music" +#: js/lilypond.js:606 +msgid "brown rat" msgstr "" -#: js/turtledefs.js:187 -#: js/turtledefs.js:463 -msgid "Music Blocks is a collection of tools for exploring fundamental musical concepts in a fun way." +#: js/lilypond.js:607 +msgid "mole" msgstr "" -#: js/turtledefs.js:436 -msgid "Welcome to Turtle Blocks" +#: js/lilypond.js:608 +msgid "chipmunk" msgstr "" -#: js/turtledefs.js:438 -#: js/turtledefs.js:465 -#: js/turtledefs.js:774 -#: js/turtledefs.js:805 -msgid "The current version is" +#: js/lilypond.js:609 +msgid "red squirrel" msgstr "" -#: js/turtledefs.js:446 -#: js/turtledefs.js:483 -msgid "Click the run button to run the project in fast mode." +#: js/lilypond.js:610 +msgid "guinea pig" msgstr "" -#: js/turtledefs.js:452 -msgid "Stop the turtle." +#: js/lilypond.js:611 +msgid "capybara" msgstr "" -#: js/turtledefs.js:454 -#: js/turtledefs.js:491 -msgid "You can also type Alt-S to stop." +#: js/lilypond.js:612 +msgid "coypu" msgstr "" -#: js/turtledefs.js:462 -#: js/help.js:333 -msgid "Welcome to Music Blocks" +#: js/lilypond.js:613 +msgid "black rat" msgstr "" -#: js/turtledefs.js:472 -#: js/help.js:334 -msgid "Meet Mr. Mouse!" +#: js/lilypond.js:614 +msgid "grey squirrel" msgstr "" -#: js/turtledefs.js:473 -msgid "Mr Mouse is our Music Blocks conductor." +#: js/lilypond.js:615 +msgid "flying squirrel" msgstr "" -#: js/turtledefs.js:475 -msgid "Mr Mouse encourages you to explore Music Blocks." +#: js/lilypond.js:616 +msgid "bat" msgstr "" -#: js/turtledefs.js:477 -msgid "Let us start our tour!" +#: js/lilypond.js:749 +#: js/lilypond.js:913 +#: js/lilypond.js:951 +#: js/blocks/ActionBlocks.js:1256 +#: js/blocks/ExtrasBlocks.js:556 +msgid "start drum" msgstr "" -#: js/turtledefs.js:489 -msgid "Stop the music (and the mice)." +#: js/logo.js:61 +msgid "Not a valid pitch name" msgstr "" -#: js/turtledefs.js:499 -msgid "Record your project as video." +#: js/logo.js:507 +#: js/blocks/ProgramBlocks.js:258 +#: js/blocks/ProgramBlocks.js:427 +msgid "You must select a file." msgstr "" -#: js/turtledefs.js:505 -msgid "Toggle Fullscreen mode." +#: js/logo.js:1696 +msgid "Playback is ready." msgstr "" -#: js/turtledefs.js:511 -msgid "Initialize a new project." +#: js/macros.js:711 +#: js/utils/musicutils.js:1162 +#: js/utils/synthutils.js:202 +#.TRANS: animal sound effect +msgid "duck" msgstr "" -#: js/turtledefs.js:517 -msgid "You can also load projects from the file system." +#: js/notation.js:353 +msgid "Lilypond cannot process pickup of " msgstr "" -#: js/turtledefs.js:522 -#: js/StringHelper.js:46 -msgid "Delete" +#: js/palette.js:571 +msgid "grid" +msgstr "mātiti" + +#: js/palette.js:580 +msgid "effect" msgstr "" -#: js/turtledefs.js:523 -msgid "To delete a block, just right-click on it, then you will be able to see the delete option" +#: js/palette.js:586 +msgid "sargam" msgstr "" -#: js/turtledefs.js:528 -#: js/activity.js:2270 -#: js/LocalCard.js:31 -msgid "Copy" -msgstr "Tārua" +#: js/palette.js:601 +#: js/blocks/PitchBlocks.js:1209 +msgid "custom pitch" +msgstr "" -#: js/turtledefs.js:529 -msgid "To copy a block, just right-click on it, then you will be able to see the copy option" +#: js/palette.js:609 +msgid "accidental" msgstr "" -#: js/turtledefs.js:535 -msgid "To extract a block, just right-click on it, then you will be able to see the extract option" +#: js/palette.js:633 +#: js/blocks/PitchBlocks.js:405 +msgid "pitch converter" msgstr "" -#: js/turtledefs.js:542 -#: js/turtledefs.js:552 -#: js/turtledefs.js:573 -msgid "Save your project to a file." +#: js/piemenus.js:200 +#: js/utils/musicutils.js:1187 +#: js/utils/musicutils.js:1207 +#: js/widgets/musickeyboard.js:2341 +#: js/widgets/phrasemaker.js:1908 +#: js/widgets/sampler.js:810 +#.TRANS: double sharp is a music term related to pitch +msgid "double sharp" msgstr "" -#: js/turtledefs.js:549 -#: js/turtledefs.js:570 -msgid "save" +#: js/piemenus.js:201 +#: js/utils/musicutils.js:1185 +#: js/utils/musicutils.js:1208 +#: js/blocks/PitchBlocks.js:1539 +#: js/turtleactions/PitchActions.js:323 +#: js/widgets/musickeyboard.js:2342 +#: js/widgets/phrasemaker.js:1909 +#: js/widgets/sampler.js:811 +#.TRANS: sharp is a music term related to pitch +#.TRANS: sharp is a half-step up in pitch +msgid "sharp" msgstr "" -#: js/turtledefs.js:556 -#: js/turtledefs.js:577 -msgid "Save graphics from your project to as SVG." +#: js/piemenus.js:202 +#: js/utils/musicutils.js:1183 +#: js/utils/musicutils.js:1209 +#: js/widgets/musickeyboard.js:2343 +#: js/widgets/phrasemaker.js:1910 +#: js/widgets/sampler.js:812 +#.TRANS: natural is a music term related to pitch +msgid "natural" msgstr "" -#: js/turtledefs.js:560 -#: js/turtledefs.js:581 -msgid "Save graphics from your project as PNG." +#: js/piemenus.js:203 +#: js/utils/musicutils.js:1181 +#: js/utils/musicutils.js:1210 +#: js/blocks/PitchBlocks.js:1498 +#: js/turtleactions/PitchActions.js:326 +#: js/widgets/musickeyboard.js:2344 +#: js/widgets/phrasemaker.js:1911 +#: js/widgets/sampler.js:813 +#.TRANS: flat is a music term related to pitch +#.TRANS: flat is a half-step down in pitch +msgid "flat" msgstr "" -#: js/turtledefs.js:564 -#: js/turtledefs.js:597 -msgid "Save block artwork as an SVG file." +#: js/piemenus.js:204 +#: js/utils/musicutils.js:1179 +#: js/utils/musicutils.js:1211 +#: js/widgets/musickeyboard.js:2345 +#: js/widgets/phrasemaker.js:1912 +#: js/widgets/sampler.js:814 +#.TRANS: double flat is a music term related to pitch +msgid "double flat" msgstr "" -#: js/turtledefs.js:585 -msgid "Save audio from your project as WAV." +#: js/piemenus.js:2864 +#: js/utils/musicutils.js:1006 +#: js/blocks/PitchBlocks.js:1385 +#.TRANS: unison is a music term related to intervals +#.TRANS: unison means the note is the same as the current note +msgid "unison" msgstr "" -#: js/turtledefs.js:589 -msgid "Save your project to as an ABC file." +#: js/piemenus.js:3018 +#: js/piemenus.js:3091 +#: js/utils/musicutils.js:1014 +#: js/utils/musicutils.js:1189 +#: js/utils/musicutils.js:1326 +#.TRANS: major is a music term related to intervals and mode +msgid "major" msgstr "" -#: js/turtledefs.js:593 -msgid "Save your project to as a Lilypond file." +#: js/piemenus.js:3018 +#: js/piemenus.js:3091 +#: js/utils/musicutils.js:1032 +#.TRANS: modal scale for music +msgid "ionian" msgstr "" -#: js/turtledefs.js:604 -msgid "Load samples from server" +#: js/piemenus.js:3020 +#: js/piemenus.js:3095 +#: js/utils/musicutils.js:1012 +#: js/utils/musicutils.js:1190 +#: js/utils/musicutils.js:1323 +#.TRANS: minor is a music term related to intervals and mode +msgid "minor" msgstr "" -#: js/turtledefs.js:605 -msgid "This button opens a viewer for loading example projects." +#: js/piemenus.js:3020 +#: js/piemenus.js:3095 +#: js/utils/musicutils.js:1042 +#.TRANS: modal scale for music +msgid "aeolian" msgstr "" -#: js/turtledefs.js:611 -msgid "Palette buttons" +#: js/piemenus.js:3410 +msgid "Duplicate" msgstr "" -#: js/turtledefs.js:612 -msgid "This toolbar contains the palette buttons including Rhythm Pitch Tone Action and more." +#: js/piemenus.js:3412 +msgid "Move to trash" msgstr "" -#: js/turtledefs.js:614 -msgid "Click to show the palettes of blocks and drag blocks from the palettes onto the canvas to use them." +#: js/piemenus.js:3413 +#: js/widgets/timbre.js:968 +#: planet/js/StringHelper.js:69 +msgid "Close" msgstr "" -#: js/turtledefs.js:620 -msgid "Cartesian/Polar" +#: js/piemenus.js:3419 +msgid "Save stack" msgstr "" -#: js/turtledefs.js:621 -msgid "Show or hide a coordinate grid." +#: js/piemenus.js:3449 +msgid "In order to copy a sample, you must reload the widget, import the sample again, and export it." msgstr "" -#: js/turtledefs.js:627 -msgid "Clear the screen and return the mice to their initial positions." +#: js/piemenus.js:3812 +msgid "You have chosen key " msgstr "" -#: js/turtledefs.js:633 -msgid "Collapse the graphics window." +#: js/piemenus.js:3816 +msgid " for your pitch preview." msgstr "" -#: js/turtledefs.js:638 -#: js/activity.js:4256 -#: js/activity.js:4256 -msgid "Home" +#: js/turtle-singer.js:1363 +#.TRANS: partials are weighted components in a harmonic series +msgid "You must have at least one Partial block inside of a Weighted-partial block" msgstr "" -#: js/turtledefs.js:639 -msgid "Return all blocks to the center of the screen." +#: js/turtle-singer.js:2077 +msgid "synth cannot play chords." msgstr "" -#: js/turtledefs.js:644 -msgid "Show/hide blocks" -msgstr "Whakaatu/huna paraka" - -#: js/turtledefs.js:645 -msgid "Hide or show the blocks and the palettes." +#: js/utils/musicutils.js:505 +#: js/utils/musicutils.js:645 +#: js/widgets/pitchdrummatrix.js:228 +#: js/widgets/musickeyboard.js:2885 +msgid "rest" msgstr "" -#: js/turtledefs.js:650 -msgid "Expand/collapse collapsable blocks" +#: js/utils/musicutils.js:689 +msgid "Perfect unison" msgstr "" -#: js/turtledefs.js:651 -msgid "Expand or collapse start and action stacks." +#: js/utils/musicutils.js:689 +msgid "Diminished second" msgstr "" -#: js/turtledefs.js:658 -#: js/activity.js:4265 -msgid "Decrease block size" +#: js/utils/musicutils.js:690 +msgid "Minor second" msgstr "" -#: js/turtledefs.js:659 -msgid "Decrease the size of the blocks." +#: js/utils/musicutils.js:690 +msgid "Augmented unison" msgstr "" -#: js/turtledefs.js:664 -#: js/activity.js:4267 -msgid "Increase block size" +#: js/utils/musicutils.js:691 +msgid "Major second" msgstr "" -#: js/turtledefs.js:665 -msgid "Increase the size of the blocks." +#: js/utils/musicutils.js:691 +msgid "Diminished third" msgstr "" -#: js/turtledefs.js:670 -msgid "Expand/collapse option toolbar" +#: js/utils/musicutils.js:692 +msgid "Minor third" msgstr "" -#: js/turtledefs.js:671 -msgid "Click this button to expand or collapse the auxillary toolbar." +#: js/utils/musicutils.js:692 +msgid "Augmented second" msgstr "" -#: js/turtledefs.js:676 -msgid "Run slow" +#: js/utils/musicutils.js:693 +msgid "Major third" msgstr "" -#: js/turtledefs.js:677 -msgid "Click to run the project in slow mode." +#: js/utils/musicutils.js:693 +msgid "Diminished fourth" msgstr "" -#: js/turtledefs.js:683 -msgid "Click to run the project step by step." +#: js/utils/musicutils.js:694 +msgid "Perfect fourth" msgstr "" -#: js/turtledefs.js:690 -msgid "Display statistics about your Music project." +#: js/utils/musicutils.js:694 +msgid "Augmented third" msgstr "" -#: js/turtledefs.js:697 -msgid "Delete a selected plugin." +#: js/utils/musicutils.js:695 +msgid "Diminished fifth" msgstr "" -#: js/turtledefs.js:704 -msgid "Enable scrolling" +#: js/utils/musicutils.js:695 +msgid "Augmented fourth" msgstr "" -#: js/turtledefs.js:705 -msgid "You can scroll the blocks on the canvas." +#: js/utils/musicutils.js:696 +msgid "Perfect fifth" msgstr "" -#: js/turtledefs.js:714 -msgid "Wrap Turtle" +#: js/utils/musicutils.js:696 +msgid "Diminished sixth" msgstr "" -#: js/turtledefs.js:715 -msgid "Turn Turtle wrapping On or Off." +#: js/utils/musicutils.js:697 +msgid "Minor sixth" msgstr "" -#: js/turtledefs.js:725 -msgid "Restore blocks from the trash." +#: js/utils/musicutils.js:697 +msgid "Augmented fifth" msgstr "" -#: js/turtledefs.js:732 -msgid "Switch mode" +#: js/utils/musicutils.js:698 +msgid "Major sixth" msgstr "" -#: js/turtledefs.js:733 -msgid "Switch between beginner and advance modes." +#: js/utils/musicutils.js:698 +msgid "Diminished seventh" msgstr "" -#: js/turtledefs.js:739 -msgid "Select your language preference." +#: js/utils/musicutils.js:699 +msgid "Minor seventh" msgstr "" -#: js/turtledefs.js:745 -msgid "Keyboard shortcuts" +#: js/utils/musicutils.js:699 +msgid "Augmented sixth" msgstr "" -#: js/turtledefs.js:746 -msgid "You can type d to create a do block and r to create a re block etc." +#: js/utils/musicutils.js:700 +msgid "Major seventh" msgstr "" -#: js/turtledefs.js:753 -msgid "Show these messages." +#: js/utils/musicutils.js:700 +msgid "Diminished octave" msgstr "" -#: js/turtledefs.js:759 -#: js/turtledefs.js:790 -#: js/help.js:335 -msgid "Guide" +#: js/utils/musicutils.js:701 +msgid "Perfect octave" msgstr "" -#: js/turtledefs.js:760 -msgid "A detailed guide to Turtle Blocks is available." +#: js/utils/musicutils.js:701 +msgid "Augmented seventh" msgstr "" -#: js/turtledefs.js:764 -msgid "Turtle Blocks Guide" +#: js/utils/musicutils.js:702 +msgid "Minor ninth" msgstr "" -#: js/turtledefs.js:767 -#: js/turtledefs.js:798 -#: js/help.js:336 -msgid "About" +#: js/utils/musicutils.js:702 +msgid "Augmented octave" msgstr "" -#: js/turtledefs.js:768 -msgid "Turtle Blocks is an open source collection of tools for exploring musical concepts." +#: js/utils/musicutils.js:703 +msgid "Major ninth" msgstr "" -#: js/turtledefs.js:770 -msgid "A full list of contributors can be found in the Turtle Blocks GitHub repository." +#: js/utils/musicutils.js:703 +msgid "Diminished tenth" msgstr "" -#: js/turtledefs.js:772 -msgid "Turtle Blocks is licensed under the AGPL." +#: js/utils/musicutils.js:704 +msgid "Minor tenth" msgstr "" -#: js/turtledefs.js:780 -msgid "Turtle Blocks GitHub repository" +#: js/utils/musicutils.js:704 +msgid "Augmented ninth" msgstr "" -#: js/turtledefs.js:783 -#: js/turtledefs.js:814 -#: js/help.js:337 -#: js/help.js:359 -msgid "Congratulations." +#: js/utils/musicutils.js:705 +msgid "Major tenth" msgstr "" -#: js/turtledefs.js:784 -msgid "You have finished the tour. Please enjoy Turtle Blocks!" +#: js/utils/musicutils.js:705 +msgid "Diminished eleventh" msgstr "" -#: js/turtledefs.js:791 -msgid "A detailed guide to Music Blocks is available." +#: js/utils/musicutils.js:706 +msgid "Perfect eleventh" msgstr "" -#: js/turtledefs.js:795 -#: js/SaveInterface.js:76 -msgid "Music Blocks Guide" +#: js/utils/musicutils.js:706 +msgid "Augmented tenth" msgstr "" -#: js/turtledefs.js:799 -msgid "Music Blocks is an open source collection of tools for exploring musical concepts." +#: js/utils/musicutils.js:707 +msgid "Diminished twelfth" msgstr "" -#: js/turtledefs.js:801 -msgid "A full list of contributors can be found in the Music Blocks GitHub repository." +#: js/utils/musicutils.js:707 +msgid "Augmented eleventh" msgstr "" -#: js/turtledefs.js:803 -msgid "Music Blocks is licensed under the AGPL." +#: js/utils/musicutils.js:708 +msgid "Perfect twelfth" msgstr "" -#: js/turtledefs.js:811 -msgid "Music Blocks GitHub repository" +#: js/utils/musicutils.js:708 +msgid "Diminished thirteenth" msgstr "" -#: js/turtledefs.js:815 -msgid "You have finished the tour. Please enjoy Music Blocks!" +#: js/utils/musicutils.js:709 +msgid "Minor thirteenth" msgstr "" -#: js/activity.js:369 -msgid "Search for blocks" +#: js/utils/musicutils.js:709 +msgid "Augmented fifth, plus an octave" msgstr "" -#: js/activity.js:1145 -msgid "Refresh your browser to change to advanced mode." +#: js/utils/musicutils.js:710 +msgid "Major thirteenth" msgstr "" -#: js/activity.js:1150 -msgid "Refresh your browser to change to beginner mode." +#: js/utils/musicutils.js:710 +msgid "Diminished seventh, plus an octave" msgstr "" -#: js/activity.js:1184 -msgid "Catching mice" +#: js/utils/musicutils.js:838 +#.TRANS: ordinal number. Please keep exactly one space between each number. +msgid "1st 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th" msgstr "" -#: js/activity.js:1185 -msgid "Cleaning the instruments" +#: js/utils/musicutils.js:1008 +#: js/utils/musicutils.js:1191 +#: js/utils/musicutils.js:1325 +#.TRANS: augmented is a music term related to intervals +msgid "augmented" msgstr "" -#: js/activity.js:1186 -msgid "Testing key pieces" +#: js/utils/musicutils.js:1010 +#: js/utils/musicutils.js:1192 +#: js/utils/musicutils.js:1324 +#.TRANS: diminished is a music term related to intervals and mode +msgid "diminished" msgstr "" -#: js/activity.js:1187 -msgid "Sight-reading" +#: js/utils/musicutils.js:1016 +#: js/utils/musicutils.js:1322 +#: js/blocks/IntervalsBlocks.js:649 +#: js/turtleactions/IntervalsActions.js:120 +#: js/turtleactions/IntervalsActions.js:124 +#.TRANS: perfect is a music term related to intervals +msgid "perfect" msgstr "" -#: js/activity.js:1188 -msgid "Combining math and music" +#: js/utils/musicutils.js:1018 +#.TRANS: twelve semi-tone scale for music +msgid "chromatic" msgstr "" -#: js/activity.js:1189 -msgid "Generating more blocks" +#: js/utils/musicutils.js:1019 +msgid "algerian" msgstr "" -#: js/activity.js:1190 -msgid "Do Re Mi Fa Sol La Ti Do" +#: js/utils/musicutils.js:1020 +msgid "spanish" msgstr "" -#: js/activity.js:1191 -msgid "Tuning string instruments" +#: js/utils/musicutils.js:1022 +#.TRANS: modal scale in music +msgid "octatonic" msgstr "" -#: js/activity.js:1192 -msgid "Pressing random keys" +#: js/utils/musicutils.js:1024 +#.TRANS: harmonic major scale in music +msgid "harmonic major" msgstr "" -#: js/activity.js:1351 -msgid "plugins will be removed upon restart." +#: js/utils/musicutils.js:1026 +#.TRANS: natural minor scales in music +msgid "natural minor" msgstr "" -#: js/activity.js:1360 -msgid "show Cartesian" +#: js/utils/musicutils.js:1028 +#.TRANS: harmonic minor scale in music +msgid "harmonic minor" msgstr "" -#: js/activity.js:1842 -msgid "output tools" +#: js/utils/musicutils.js:1030 +#.TRANS: melodic minor scale in music +msgid "melodic minor" msgstr "" -#: js/activity.js:1845 -msgid "custom note" +#: js/utils/musicutils.js:1034 +#.TRANS: modal scale for music +msgid "dorian" msgstr "" -#: js/activity.js:1848 -msgid "accidental name" +#: js/utils/musicutils.js:1036 +#.TRANS: modal scale for music +msgid "phrygian" msgstr "" -#: js/activity.js:1851 -#: js/PitchBlocks.js:855 -msgid "east indian solfege" +#: js/utils/musicutils.js:1038 +#.TRANS: modal scale for music +msgid "lydian" msgstr "" -#: js/activity.js:1854 -#: js/PitchBlocks.js:869 -msgid "note name" +#: js/utils/musicutils.js:1040 +#.TRANS: modal scale for music +msgid "mixolydian" msgstr "" -#: js/activity.js:1857 -#: js/IntervalsBlocks.js:94 -msgid "temperament name" +#: js/utils/musicutils.js:1044 +#.TRANS: modal scale for music +msgid "locrian" msgstr "" -#: js/activity.js:1863 -msgid "chord name" +#: js/utils/musicutils.js:1046 +#.TRANS: minor jazz scale for music +msgid "jazz minor" msgstr "" -#: js/activity.js:1869 -msgid "filter type" +#: js/utils/musicutils.js:1048 +#.TRANS: bebop scale for music +msgid "bebop" msgstr "" -#: js/activity.js:1872 -msgid "oscillator type" +#: js/utils/musicutils.js:1049 +msgid "arabic" msgstr "" -#: js/activity.js:1878 -#: js/DrumBlocks.js:32 -msgid "noise name" +#: js/utils/musicutils.js:1050 +msgid "byzantine" msgstr "" -#: js/activity.js:1881 -#: js/DrumBlocks.js:75 -msgid "drum name" +#: js/utils/musicutils.js:1052 +#.TRANS: musical scale for music by Verdi +msgid "enigmatic" msgstr "" -#: js/activity.js:1884 -#: js/DrumBlocks.js:119 -msgid "effects name" +#: js/utils/musicutils.js:1053 +msgid "ethiopian" msgstr "" -#: js/activity.js:1887 -msgid "wrap mode" +#: js/utils/musicutils.js:1055 +#.TRANS: Ethiopic scale for music +msgid "geez" msgstr "" -#: js/activity.js:1890 -msgid "load file" +#: js/utils/musicutils.js:1056 +msgid "hindu" msgstr "" -#: js/activity.js:2056 -msgid "This block is deprecated." +#: js/utils/musicutils.js:1057 +msgid "hungarian" msgstr "" -#: js/activity.js:2058 -msgid "Block cannot be found." +#: js/utils/musicutils.js:1059 +#.TRANS: minor Romanian scale for music +msgid "romanian minor" msgstr "" -#: js/activity.js:2266 -msgid "Saving block artwork" +#: js/utils/musicutils.js:1060 +msgid "spanish gypsy" msgstr "" -#: js/activity.js:2277 -msgid "Erase" +#: js/utils/musicutils.js:1062 +#.TRANS: musical scale for Mid-Eastern music +msgid "maqam" msgstr "" -#: js/activity.js:2301 -#: js/activity.js:2323 -msgid "Paste" -msgstr "Whakapiri" +#: js/utils/musicutils.js:1064 +#.TRANS: minor blues scale for music +msgid "minor blues" +msgstr "" -#: js/activity.js:2305 -msgid "Save block help" +#: js/utils/musicutils.js:1066 +#.TRANS: major blues scale for music +msgid "major blues" msgstr "" -#: js/activity.js:2390 -msgid "Jumping to the bottom of the page." +#: js/utils/musicutils.js:1067 +msgid "whole tone" msgstr "" -#: js/activity.js:2396 -msgid "Scrolling up." +#: js/utils/musicutils.js:1069 +#.TRANS: pentatonic is a general term that means "five note scale". This scale is typically known as "minor pentatonic" +msgid "minor pentatonic" msgstr "" -#: js/activity.js:2401 -msgid "Scrolling down." +#: js/utils/musicutils.js:1071 +#.TRANS: pentatonic is a general term that means "five note scale". This scale is typically known as "major pentatonic" +msgid "major pentatonic" msgstr "" -#: js/activity.js:2406 -msgid "Extracting block" +#: js/utils/musicutils.js:1072 +msgid "chinese" msgstr "" -#: js/activity.js:2414 -msgid "Moving block up." +#: js/utils/musicutils.js:1073 +msgid "egyptian" msgstr "" -#: js/activity.js:2435 -msgid "Moving block down." +#: js/utils/musicutils.js:1075 +#.TRANS: https://en.wikipedia.org/wiki/Hirajoshi_scale NOTE: There are three different versions of this scale +msgid "hirajoshi" msgstr "" -#: js/activity.js:2456 -msgid "Moving block left." +#: js/utils/musicutils.js:1076 +msgid "Japan" msgstr "" -#: js/activity.js:2473 -msgid "Moving block right." +#: js/utils/musicutils.js:1078 +#.TRANS: https://en.wikipedia.org/wiki/In_scale and https://en.wikipedia.org/wiki/Sakura_Sakura +msgid "in" msgstr "" -#: js/activity.js:2488 -msgid "Jump to home position." +#: js/utils/musicutils.js:1080 +#.TRANS: https://en.wikipedia.org/wiki/Miny%C5%8D_scale +msgid "minyo" msgstr "" -#: js/activity.js:2515 -msgid "Hide blocks" +#: js/utils/musicutils.js:1082 +#.TRANS: Italian mathematician +msgid "fibonacci" msgstr "" -#: js/activity.js:3389 -msgid "Click the run button to run the project." +#: js/utils/musicutils.js:1083 +#: js/utils/musicutils.js:1134 +#: js/utils/musicutils.js:1177 +#: js/utils/musicutils.js:1199 +#: js/utils/synthutils.js:134 +#: js/blocks/IntervalsBlocks.js:1124 +#: js/blocks/ToneBlocks.js:946 +#: js/blocks/VolumeBlocks.js:411 +#: js/blocks/WidgetBlocks.js:399 +#: js/blocks/WidgetBlocks.js:404 +#: js/turtleactions/VolumeActions.js:218 +#: js/widgets/modewidget.js:919 +#.TRANS: customize voice +msgid "custom" msgstr "" -#: js/activity.js:3456 -#: js/SaveInterface.js:131 -#: js/SaveInterface.js:204 -#: js/SaveInterface.js:262 -#: js/SaveInterface.js:389 -#: js/SaveInterface.js:417 -#: js/ProjectStorage.js:27 -#: js/GlobalPlanet.js:467 -#: js/GlobalPlanet.js:469 -#: js/GlobalPlanet.js:495 -#.TRANS: default project title when saving as Lilypond -msgid "My Project" +#: js/utils/musicutils.js:1085 +#: js/utils/musicutils.js:1531 +#: js/blocks/WidgetBlocks.js:176 +#.TRANS: highpass filter +msgid "highpass" msgstr "" -#: js/activity.js:4261 -msgid "Show/hide block" +#: js/utils/musicutils.js:1087 +#: js/utils/musicutils.js:1532 +#.TRANS: lowpass filter +msgid "lowpass" msgstr "" -#: js/activity.js:4263 -msgid "Expand/collapse blocks" +#: js/utils/musicutils.js:1089 +#: js/utils/musicutils.js:1533 +#.TRANS: bandpass filter +msgid "bandpass" msgstr "" -#: js/activity.js:4381 -msgid "Could not parse JSON input." +#: js/utils/musicutils.js:1091 +#: js/utils/musicutils.js:1534 +#.TRANS: high-shelf filter +msgid "highshelf" msgstr "" -#: js/activity.js:4684 -#: js/activity.js:4771 -#: js/activity.js:4821 -msgid "Cannot load project from the file. Please check the file type." +#: js/utils/musicutils.js:1093 +#: js/utils/musicutils.js:1535 +#.TRANS: low-shelf filter +msgid "lowshelf" msgstr "" -#: js/activity.js:5051 -msgid "Invalid parameters" +#: js/utils/musicutils.js:1095 +#: js/utils/musicutils.js:1536 +#.TRANS: notch-shelf filter +msgid "notch" msgstr "" -#: js/turtle-singer.js:1334 -#.TRANS: partials are weighted components in a harmonic series -msgid "You must have at least one Partial block inside of a Weighted-partial block" +#: js/utils/musicutils.js:1097 +#: js/utils/musicutils.js:1537 +#.TRANS: all-pass filter +msgid "allpass" msgstr "" -#: js/turtle-singer.js:2048 -msgid "synth cannot play chords." +#: js/utils/musicutils.js:1099 +#: js/utils/musicutils.js:1538 +#.TRANS: peaking filter +msgid "peaking" msgstr "" -#: js/lilypond.js:614 -msgid "brown rat" +#: js/utils/musicutils.js:1100 +#: js/utils/musicutils.js:1546 +#: js/utils/synthutils.js:126 +#: js/blocks/PitchBlocks.js:85 +#.TRANS: sine wave +msgid "sine" msgstr "" -#: js/lilypond.js:615 -msgid "mole" +#: js/utils/musicutils.js:1101 +#: js/utils/musicutils.js:1547 +#: js/utils/synthutils.js:128 +#: js/blocks/PitchBlocks.js:39 +#.TRANS: square wave +msgid "square" msgstr "" -#: js/lilypond.js:616 -msgid "chipmunk" +#: js/utils/musicutils.js:1102 +#: js/utils/musicutils.js:1548 +#: js/utils/synthutils.js:132 +#: js/blocks/PitchBlocks.js:62 +#: js/blocks/ToneBlocks.js:39 +#.TRANS: triangle wave +msgid "triangle" msgstr "" -#: js/lilypond.js:617 -msgid "red squirrel" +#: js/utils/musicutils.js:1103 +#: js/utils/musicutils.js:1549 +#: js/utils/synthutils.js:130 +#: js/blocks/PitchBlocks.js:108 +#.TRANS: sawtooth wave +msgid "sawtooth" msgstr "" -#: js/lilypond.js:618 -msgid "guinea pig" +#: js/utils/musicutils.js:1105 +#: js/utils/musicutils.js:1312 +#: js/blocks/PitchBlocks.js:931 +#: js/blocks/PitchBlocks.js:937 +#: js/turtleactions/PitchActions.js:469 +#.TRANS: even numbers +#.TRANS: invert based on even or odd number or musical scale +msgid "even" msgstr "" -#: js/lilypond.js:619 -msgid "capybara" +#: js/utils/musicutils.js:1107 +#: js/utils/musicutils.js:1313 +#: js/blocks/PitchBlocks.js:937 +#: js/turtleactions/PitchActions.js:471 +#.TRANS: odd numbers +msgid "odd" msgstr "" -#: js/lilypond.js:620 -msgid "coypu" +#: js/utils/musicutils.js:1108 +#: js/utils/musicutils.js:1314 +#: js/blocks/PitchBlocks.js:937 +#: js/turtleactions/PitchActions.js:473 +msgid "scalar" msgstr "" -#: js/lilypond.js:621 -msgid "black rat" +#: js/utils/musicutils.js:1109 +#: js/utils/synthutils.js:72 +#: js/blocks/VolumeBlocks.js:47 +#.TRANS: musical instrument +msgid "piano" msgstr "" -#: js/lilypond.js:622 -msgid "grey squirrel" +#: js/utils/musicutils.js:1110 +#: js/utils/synthutils.js:74 +#.TRANS: musical instrument +msgid "violin" msgstr "" -#: js/lilypond.js:623 -msgid "flying squirrel" +#: js/utils/musicutils.js:1111 +#: js/utils/synthutils.js:76 +#.TRANS: viola musical instrument +msgid "viola" msgstr "" -#: js/lilypond.js:624 -msgid "bat" +#: js/utils/musicutils.js:1112 +#: js/utils/synthutils.js:114 +#.TRANS: xylophone musical instrument +msgid "xylophone" msgstr "" -#: js/lilypond.js:757 -#: js/lilypond.js:921 -#: js/lilypond.js:959 -#: js/ActionBlocks.js:1256 -#: js/ExtrasBlocks.js:553 -msgid "start drum" +#: js/utils/musicutils.js:1113 +#: js/utils/synthutils.js:136 +#.TRANS: vibraphone musical instrument +msgid "vibraphone" msgstr "" -#: js/SaveInterface.js:59 -#: js/SaveInterface.js:61 -#: js/SaveInterface.js:93 -msgid "Music Blocks Project" +#: js/utils/musicutils.js:1114 +#: js/utils/synthutils.js:78 +#.TRANS: musical instrument +msgid "cello" msgstr "" -#: js/SaveInterface.js:63 -msgid "This project was created in Music Blocks" +#: js/utils/musicutils.js:1116 +#: js/utils/synthutils.js:82 +#.TRANS: viola musical instrument +msgid "double bass" msgstr "" -#: js/SaveInterface.js:67 -msgid "Music Blocks is a Free/Libre Software application." +#: js/utils/musicutils.js:1117 +#: js/utils/synthutils.js:84 +#: js/widgets/rhythmruler.js:2511 +#.TRANS: musical instrument +msgid "guitar" msgstr "" -#: js/SaveInterface.js:69 -msgid "The source code can be accessed at" +#: js/utils/musicutils.js:1118 +#: js/utils/synthutils.js:86 +#.TRANS: musical instrument +msgid "acoustic guitar" msgstr "" -#: js/SaveInterface.js:72 -msgid "For more information, please consult the" +#: js/utils/musicutils.js:1119 +#: js/utils/synthutils.js:88 +#.TRANS: musical instrument +msgid "flute" msgstr "" -#: js/SaveInterface.js:83 -msgid "Alternatively, open the file in Music Blocks using the Load project button." +#: js/utils/musicutils.js:1120 +#: js/utils/synthutils.js:90 +#.TRANS: musical instrument +msgid "clarinet" msgstr "" -#: js/SaveInterface.js:85 -msgid "Project Code" +#: js/utils/musicutils.js:1121 +#: js/utils/synthutils.js:92 +#.TRANS: musical instrument +msgid "saxophone" msgstr "" -#: js/SaveInterface.js:87 -msgid "This code stores data about the blocks in a project." +#: js/utils/musicutils.js:1122 +#: js/utils/synthutils.js:94 +#.TRANS: musical instrument +msgid "tuba" msgstr "" -#: js/SaveInterface.js:89 -msgid "Show" +#: js/utils/musicutils.js:1123 +#: js/utils/synthutils.js:96 +#.TRANS: musical instrument +msgid "trumpet" msgstr "" -#: js/SaveInterface.js:91 -msgid "Hide" +#: js/utils/musicutils.js:1124 +#: js/utils/synthutils.js:98 +#.TRANS: musical instrument +msgid "oboe" msgstr "" -#: js/SaveInterface.js:197 -#: js/SaveInterface.js:58 -msgid "No description provided" +#: js/utils/musicutils.js:1125 +#: js/utils/synthutils.js:100 +#.TRANS: musical instrument +msgid "trombone" msgstr "" -#: js/SaveInterface.js:332 -msgid "Your recording is in progress." +#: js/utils/musicutils.js:1126 +#: js/utils/synthutils.js:116 +#.TRANS: polytone synthesizer +msgid "electronic synth" msgstr "" -#: js/SaveInterface.js:401 -#.TRANS: File name prompt for save as Lilypond -msgid "File name" +#: js/utils/musicutils.js:1127 +#: js/utils/synthutils.js:118 +#.TRANS: simple monotone synthesizer +msgid "simple 1" msgstr "" -#: js/SaveInterface.js:403 -#: js/StringHelper.js:39 -#.TRANS: Project title prompt for save as Lilypond -msgid "Project title" +#: js/utils/musicutils.js:1128 +msgid "simple 2" msgstr "" -#: js/SaveInterface.js:405 -#.TRANS: Project title prompt for save as Lilypond -msgid "Project author" +#: js/utils/musicutils.js:1129 +msgid "simple 3" msgstr "" -#: js/SaveInterface.js:407 -#.TRANS: MIDI prompt for save as Lilypond -msgid "Include MIDI output?" +#: js/utils/musicutils.js:1130 +msgid "simple 4" msgstr "" -#: js/SaveInterface.js:409 -#.TRANS: Guitar prompt for save as Lilypond -msgid "Include guitar tablature output?" +#: js/utils/musicutils.js:1131 +#: js/utils/synthutils.js:58 +#: js/blocks/DrumBlocks.js:191 +#.TRANS: white noise synthesizer +msgid "white noise" msgstr "" -#: js/SaveInterface.js:411 -#.TRANS: Lilypond is a scripting language for generating sheet music -msgid "Save as Lilypond" +#: js/utils/musicutils.js:1132 +#: js/utils/synthutils.js:60 +#.TRANS: brown noise synthesizer +msgid "brown noise" msgstr "" -#: js/SaveInterface.js:426 -#: js/EnsembleBlocks.js:75 -#: js/EnsembleBlocks.js:154 -#: js/EnsembleBlocks.js:216 -#: js/EnsembleBlocks.js:302 -#: js/EnsembleBlocks.js:348 -#: js/EnsembleBlocks.js:389 -#: js/EnsembleBlocks.js:441 -#: js/EnsembleBlocks.js:490 -#: js/EnsembleBlocks.js:536 -#: js/EnsembleBlocks.js:583 -#: js/EnsembleBlocks.js:637 -#: js/EnsembleBlocks.js:753 -#: js/EnsembleBlocks.js:840 -#: js/EnsembleBlocks.js:899 -#: js/EnsembleBlocks.js:942 -#: js/EnsembleBlocks.js:1212 -#: js/EnsembleBlocks.js:1280 -#.TRANS: default project author when saving as Lilypond -msgid "Mr. Mouse" +#: js/utils/musicutils.js:1133 +#: js/utils/synthutils.js:62 +#.TRANS: pink noise synthesizer +msgid "pink noise" msgstr "" -#: js/SaveInterface.js:573 -msgid "The Lilypond code is copied to clipboard. You can paste it here: " +#: js/utils/musicutils.js:1135 +#: js/utils/synthutils.js:148 +#: js/widgets/rhythmruler.js:2057 +#: js/widgets/rhythmruler.js:2319 +#.TRANS: musical instrument +msgid "snare drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:50 -#: js/RhythmBlockPaletteBlocks.js:232 -#.TRANS: rhythm block -#.TRANS: translate "rhythm1" as rhythm -msgid "rhythm1" +#: js/utils/musicutils.js:1136 +#: js/utils/synthutils.js:150 +#.TRANS: musical instrument +msgid "kick drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:70 -#: js/RhythmBlockPaletteBlocks.js:251 -#: js/RhythmBlockPaletteBlocks.js:484 -#: js/RhythmBlockPaletteBlocks.js:553 -#: js/RhythmBlockPaletteBlocks.js:874 -msgid "number of notes" +#: js/utils/musicutils.js:1137 +#: js/utils/synthutils.js:152 +#.TRANS: musical instrument +msgid "tom tom" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:126 -msgid "polyphonic rhythm" +#: js/utils/musicutils.js:1138 +#: js/utils/synthutils.js:154 +#.TRANS: musical instrument +msgid "floor tom" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:218 -msgid "The Rhythm block is used to generate rhythm patterns." +#: js/utils/musicutils.js:1139 +#: js/utils/synthutils.js:156 +#.TRANS: musical instrument +msgid "bass drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:279 -msgid "1/64 note" +#: js/utils/musicutils.js:1140 +#: js/utils/synthutils.js:158 +#.TRANS: a drum made from an inverted cup +msgid "cup drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:303 -msgid "1/32 note" +#: js/utils/musicutils.js:1141 +#: js/utils/synthutils.js:160 +#.TRANS: musical instrument +msgid "darbuka drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:331 -msgid "1/16 note" +#: js/utils/musicutils.js:1142 +#: js/utils/synthutils.js:164 +#.TRANS: musical instrument +msgid "hi hat" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:359 -msgid "eighth note" +#: js/utils/musicutils.js:1143 +#: js/utils/synthutils.js:166 +#.TRANS: a small metal bell +msgid "ride bell" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:387 -msgid "quarter note" +#: js/utils/musicutils.js:1144 +#: js/utils/synthutils.js:168 +#.TRANS: musical instrument +msgid "cow bell" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:415 -msgid "half note" +#: js/utils/musicutils.js:1145 +msgid "japanese drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:443 -msgid "whole note" +#: js/utils/musicutils.js:1146 +#: js/utils/synthutils.js:174 +#.TRANS: musical instrument +msgid "japanese bell" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:481 -#: js/RhythmBlockPaletteBlocks.js:550 -#: js/RhythmBlockPaletteBlocks.js:601 -#.TRANS: A tuplet is a note value divided into irregular time values. -msgid "tuplet" +#: js/utils/musicutils.js:1147 +#: js/utils/synthutils.js:170 +#.TRANS: musical instrument +msgid "triangle bell" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:767 -msgid "septuplet" +#: js/utils/musicutils.js:1148 +#: js/utils/synthutils.js:172 +#.TRANS: musical instrument +msgid "finger cymbals" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:795 -msgid "quintuplet" +#: js/utils/musicutils.js:1149 +#: js/utils/synthutils.js:176 +#.TRANS: a musically tuned set of bells +msgid "chime" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:823 -msgid "triplet" +#: js/utils/musicutils.js:1150 +#: js/utils/synthutils.js:178 +#.TRANS: a musical instrument +msgid "gong" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:850 -msgid "simple tuplet" +#: js/utils/musicutils.js:1151 +#: js/utils/synthutils.js:180 +#.TRANS: sound effect +msgid "clang" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:860 -msgid "Tuplets are a collection of notes that get scaled to a specific duration." +#: js/utils/musicutils.js:1152 +#: js/utils/synthutils.js:182 +#.TRANS: sound effect +msgid "crash" msgstr "" -#: js/WidgetBlocks.js:71 -#.TRANS: sound envelope (ADSR) -msgid "envelope" +#: js/utils/musicutils.js:1153 +#: js/utils/synthutils.js:184 +#.TRANS: sound effect +msgid "bottle" msgstr "" -#: js/WidgetBlocks.js:79 -#.TRANS: Attack time is the time taken for initial run-up of level from nil to peak, beginning when the key is first pressed. -msgid "attack" +#: js/utils/musicutils.js:1154 +#: js/utils/synthutils.js:186 +#.TRANS: sound effect +msgid "clap" msgstr "" -#: js/WidgetBlocks.js:81 -#.TRANS: Decay time is the time taken for the subsequent run down from the attack level to the designated sustain level. -msgid "decay" +#: js/utils/musicutils.js:1155 +#: js/utils/synthutils.js:188 +#.TRANS: sound effect +msgid "slap" msgstr "" -#: js/WidgetBlocks.js:83 -#.TRANS: Sustain level is the level during the main sequence of the sound's duration, until the key is released. -msgid "sustain" +#: js/utils/musicutils.js:1156 +#: js/utils/synthutils.js:190 +#.TRANS: sound effect +msgid "splash" msgstr "" -#: js/WidgetBlocks.js:85 -#.TRANS: Release time is the time taken for the level to decay from the sustain level to zero after the key is released. -msgid "release" +#: js/utils/musicutils.js:1157 +#: js/utils/synthutils.js:192 +#.TRANS: sound effect +msgid "bubbles" msgstr "" -#: js/WidgetBlocks.js:96 -msgid "Attack value should be from 0 to 100." +#: js/utils/musicutils.js:1158 +#: js/utils/synthutils.js:194 +#.TRANS: sound effect +msgid "raindrop" msgstr "" -#: js/WidgetBlocks.js:99 -msgid "Decay value should be from 0 to 100." +#: js/utils/musicutils.js:1159 +#: js/utils/synthutils.js:196 +#.TRANS: animal sound effect +msgid "cat" msgstr "" -#: js/WidgetBlocks.js:102 -msgid "Sustain value should be from 0 to 100." +#: js/utils/musicutils.js:1160 +#: js/utils/synthutils.js:198 +#.TRANS: animal sound effect +msgid "cricket" msgstr "" -#: js/WidgetBlocks.js:105 -msgid "Release value should be from 0-100." +#: js/utils/musicutils.js:1161 +#: js/utils/synthutils.js:200 +#.TRANS: animal sound effect +msgid "dog" msgstr "" -#: js/WidgetBlocks.js:121 -msgid "You are adding multiple envelope blocks." +#: js/utils/musicutils.js:1163 +#: js/utils/synthutils.js:102 +#.TRANS: musical instrument +msgid "banjo" msgstr "" -#: js/WidgetBlocks.js:144 -#.TRANS: a filter removes some unwanted components from a signal -msgid "filter" +#: js/utils/musicutils.js:1164 +#: js/utils/synthutils.js:104 +#.TRANS: musical instrument +msgid "koto" msgstr "" -#: js/WidgetBlocks.js:149 -#: js/musicutils.js:706 -#: js/musicutils.js:1105 -#.TRANS: highpass filter -msgid "highpass" +#: js/utils/musicutils.js:1165 +#: js/utils/synthutils.js:106 +#.TRANS: musical instrument +msgid "dulcimer" msgstr "" -#: js/WidgetBlocks.js:152 -#: js/ToneBlocks.js:42 -#: js/timbre.js:1558 -#: js/timbre.js:1808 -#.TRANS: type of filter, e.g., lowpass, highpass, etc. -#.TRANS: there are different types (sine, triangle, square...) of oscillators. -msgid "type" +#: js/utils/musicutils.js:1166 +#: js/utils/synthutils.js:108 +#.TRANS: musical instrument +msgid "electric guitar" msgstr "" -#: js/WidgetBlocks.js:154 -#: js/timbre.js:1818 -#.TRANS: rolloff is the steepness of a change in frequency. -msgid "rolloff" +#: js/utils/musicutils.js:1167 +#: js/utils/synthutils.js:110 +#.TRANS: musical instrument +msgid "bassoon" msgstr "" -#: js/WidgetBlocks.js:155 -#: js/MediaBlocks.js:692 -#: js/temperament.js:382 -#: js/temperament.js:417 -#: js/temperament.js:477 -#: js/temperament.js:485 -#: js/temperament.js:1348 -#: js/timbre.js:1842 -msgid "frequency" +#: js/utils/musicutils.js:1168 +#: js/utils/synthutils.js:112 +#.TRANS: musical instrument +msgid "celeste" msgstr "" -#: js/WidgetBlocks.js:179 -#.TRANS: rolloff is the steepness of a change in frequency. -msgid "Rolloff value should be either -12, -24, -48, or -96 decibels/octave." +#: js/utils/musicutils.js:1170 +#: js/widgets/temperament.js:787 +#.TRANS: musical temperament +msgid "equal" msgstr "" -#: js/WidgetBlocks.js:211 -msgid "The Temperament tool is used to define custom tuning." +#: js/utils/musicutils.js:1172 +#.TRANS: musical temperament +msgid "Pythagorean" msgstr "" -#: js/WidgetBlocks.js:277 -#: js/sampler.js:329 -msgid "Upload a sample and adjust its pitch center." +#: js/utils/musicutils.js:1174 +#.TRANS: musical temperament +msgid "just intonation" msgstr "" -#: js/WidgetBlocks.js:284 -#.TRANS: the speed at music is should be played. -msgid "sampler" +#: js/utils/musicutils.js:1176 +#.TRANS: musical temperament +msgid "meantone" msgstr "" -#: js/WidgetBlocks.js:329 -#: js/WidgetBlocks.js:334 -#: js/IntervalsBlocks.js:928 -#: js/VolumeBlocks.js:411 -#: js/ToneBlocks.js:946 -#: js/VolumeActions.js:218 -#: js/musicutils.js:704 -#: js/musicutils.js:755 -#: js/musicutils.js:798 -#: js/musicutils.js:820 -#: js/musicutils.js:1136 -#: js/synthutils.js:118 -#: js/modewidget.js:919 -#.TRANS: customize voice -msgid "custom" +#: js/utils/musicutils.js:1193 +msgid "major 7th" msgstr "" -#: js/WidgetBlocks.js:432 -msgid "The Meter block opens a tool to select strong beats for the meter." +#: js/utils/musicutils.js:1194 +msgid "minor 7th" msgstr "" -#: js/WidgetBlocks.js:473 -msgid "The oscilloscope block opens a tool to visualize waveforms." +#: js/utils/musicutils.js:1195 +msgid "dominant 7th" msgstr "" -#: js/WidgetBlocks.js:478 -msgid "oscilloscope" +#: js/utils/musicutils.js:1196 +msgid "minor-major 7th" msgstr "" -#: js/WidgetBlocks.js:530 -msgid "The Custom mode block opens a tool to explore musical mode (the spacing of the notes in a scale)." +#: js/utils/musicutils.js:1197 +msgid "fully-diminished 7th" msgstr "" -#: js/WidgetBlocks.js:536 -#.TRANS: musical mode is the pattern of half-steps in an octave, e.g., Major or Minor modes -msgid "custom mode" +#: js/utils/musicutils.js:1198 +msgid "half-diminished 7th" msgstr "" -#: js/WidgetBlocks.js:570 -msgid "The Tempo block opens a metronome to visualize the beat." +#: js/utils/musicutils.js:1557 +#: js/utils/musicutils.js:1569 +msgid "Equal (12EDO)" msgstr "" -#: js/WidgetBlocks.js:617 -msgid "The Arpeggio Widget is used to compose chord sequences." +#: js/utils/musicutils.js:1558 +#: js/utils/musicutils.js:1570 +msgid "5-limit Just Intonation" msgstr "" -#: js/WidgetBlocks.js:623 -#: js/IntervalsBlocks.js:683 -msgid "arpeggio" +#: js/utils/musicutils.js:1559 +#: js/utils/musicutils.js:1571 +msgid "Pythagorean (3-limit JI)" msgstr "" -#: js/WidgetBlocks.js:677 -msgid "The Pitch drum matrix is used to map pitches to drum sounds." +#: js/utils/musicutils.js:1560 +#: js/utils/musicutils.js:1561 +#: js/utils/musicutils.js:1572 +#: js/utils/musicutils.js:1573 +msgid "Meantone" msgstr "" -#: js/WidgetBlocks.js:682 -#.TRANS: makes a mapping between pitches and drum sounds -msgid "pitch-drum mapper" +#: js/utils/musicutils.js:1574 +msgid "Custom" msgstr "" -#: js/WidgetBlocks.js:724 -msgid "You must have at least one pitch block and one drum block in the matrix." +#: js/utils/musicutils.js:5387 +#: js/utils/musicutils.js:5430 +msgid "current" msgstr "" -#: js/WidgetBlocks.js:746 -msgid "The Pitch slider tool to is used to generate pitches at selected frequencies." +#: js/utils/musicutils.js:5390 +#: js/utils/musicutils.js:5421 +msgid "next" msgstr "" -#: js/WidgetBlocks.js:751 -#.TRANS: widget to generate pitches using a slider -msgid "pitch slider" +#: js/utils/musicutils.js:5393 +#: js/utils/musicutils.js:5426 +msgid "previous" msgstr "" -#: js/WidgetBlocks.js:788 -msgid "chromatic keyboard" +#: js/utils/synthutils.js:120 +#.TRANS: simple monotone synthesizer +msgid "simple-2" msgstr "" -#: js/WidgetBlocks.js:815 -#: js/WidgetBlocks.js:874 -#.TRANS: widget to generate pitches using a slider -msgid "music keyboard" +#: js/utils/synthutils.js:122 +#.TRANS: simple monotone synthesizer +msgid "simple-3" msgstr "" -#: js/WidgetBlocks.js:859 -#: js/WidgetBlocks.js:866 -msgid "The Music keyboard block opens a piano keyboard that can be used to create notes." +#: js/utils/synthutils.js:124 +#.TRANS: simple monotone synthesizer +msgid "simple-4" msgstr "" -#: js/WidgetBlocks.js:910 -msgid "The Pitch staircase tool to is used to generate pitches from a given ratio." +#: js/utils/synthutils.js:162 +#.TRANS: musical instrument +msgid "taiko" msgstr "" -#: js/WidgetBlocks.js:917 -#.TRANS: generate a progressive sequence of pitches -msgid "pitch staircase" +#: js/blocks/ActionBlocks.js:58 +msgid "The Return block will return a value from an action." msgstr "" -#: js/WidgetBlocks.js:982 -msgid "The Rhythm Maker block opens a tool to create drum machines." +#: js/blocks/ActionBlocks.js:75 +msgid "return" msgstr "" -#: js/WidgetBlocks.js:1036 -msgid "G major scale" +#: js/blocks/ActionBlocks.js:128 +msgid "The Return to URL block will return a value to a webpage." msgstr "" -#: js/WidgetBlocks.js:1064 -msgid "C major scale" +#: js/blocks/ActionBlocks.js:145 +msgid "return to URL" msgstr "" -#: js/WidgetBlocks.js:1097 -msgid "The Phrase Maker block opens a tool to create musical phrases." +#: js/blocks/ActionBlocks.js:233 +#: js/blocks/ActionBlocks.js:290 +#: js/blocks/ActionBlocks.js:501 +#: js/blocks/ActionBlocks.js:688 +msgid "The Calculate block returns a value calculated by an action." msgstr "" -#: js/WidgetBlocks.js:1104 -#.TRANS: assigns pitch to a sequence of beats to generate a melody -msgid "phrase maker" +#: js/blocks/ActionBlocks.js:251 +#: js/blocks/ActionBlocks.js:517 +#: js/blocks/ActionBlocks.js:707 +msgid "calculate" msgstr "" -#: js/WidgetBlocks.js:1168 -msgid "You must have at least one pitch block and one rhythm block in the matrix." +#: js/blocks/ActionBlocks.js:376 +#: js/blocks/ActionBlocks.js:593 +#: js/blocks/ActionBlocks.js:942 +#: js/blocks/ActionBlocks.js:1389 +#.TRANS: do is the do something or take an action. +msgid "The Do block is used to initiate an action." msgstr "" -#: js/WidgetBlocks.js:1220 -msgid "The Status block opens a tool for inspecting the status of Music Blocks as it is running." +#: js/blocks/ActionBlocks.js:390 +#: js/blocks/ActionBlocks.js:610 +#: js/blocks/ActionBlocks.js:959 +#: js/blocks/ActionBlocks.js:1048 +#: js/blocks/MeterBlocks.js:769 +msgid "do1" msgstr "" -#: js/IntervalsBlocks.js:45 -msgid "set temperament" +#: js/blocks/ActionBlocks.js:390 +#: js/blocks/ActionBlocks.js:610 +#: js/blocks/ActionBlocks.js:959 +#: js/blocks/ActionBlocks.js:1048 +#: js/blocks/FlowBlocks.js:742 +#: js/blocks/FlowBlocks.js:822 +#: js/blocks/MeterBlocks.js:769 +msgid "do" msgstr "" -#: js/IntervalsBlocks.js:63 -#: js/MediaBlocks.js:746 -#: js/PitchBlocks.js:657 -#: js/PitchBlocks.js:933 -#: js/PitchBlocks.js:972 -#: js/PitchBlocks.js:1005 -#: js/PitchBlocks.js:1166 -#: js/PitchBlocks.js:1679 -#: js/PitchBlocks.js:1720 -#: js/PitchBlocks.js:1827 -#: js/ToneBlocks.js:1025 -#.TRANS: adjusts the shift up or down by one octave (twelve half-steps in the interval between two notes, one having twice or half the frequency in Hz of the other.) -msgid "octave" +#: js/blocks/ActionBlocks.js:791 +#: js/blocks/ActionBlocks.js:865 +msgid "The Arg block contains the value of an argument passed to an action." msgstr "" -#: js/IntervalsBlocks.js:99 -msgid "The Temperament name block is used to select a tuning method." +#: js/blocks/ActionBlocks.js:806 +#: js/blocks/ActionBlocks.js:878 +msgid "arg" msgstr "" -#: js/IntervalsBlocks.js:161 -msgid "doubly" +#: js/blocks/ActionBlocks.js:836 +#: js/blocks/ActionBlocks.js:900 +#: js/blocks/ActionBlocks.js:908 +msgid "Invalid argument" msgstr "" -#: js/IntervalsBlocks.js:166 -msgid "The Doubly block will double the size of an interval." +#: js/blocks/ActionBlocks.js:944 +msgid "In the example, it is used with the One of block to choose a random phase." msgstr "" -#: js/IntervalsBlocks.js:262 -msgid "interval number" +#: js/blocks/ActionBlocks.js:1019 +#: js/blocks/ActionBlocks.js:1026 +msgid "The Listen block is used to listen for an event such as a mouse click." msgstr "" -#: js/IntervalsBlocks.js:330 -#.TRANS: measure the distance between two pitches in semi-tones -msgid "semi-tone interval measure" +#: js/blocks/ActionBlocks.js:1028 +msgid "When the event happens, an action is taken." msgstr "" -#: js/IntervalsBlocks.js:397 -#: js/IntervalsBlocks.js:513 -msgid "You must use two pitch blocks when measuring an interval." +#: js/blocks/ActionBlocks.js:1045 +msgid "on" msgstr "" -#: js/IntervalsBlocks.js:439 -msgid "The Scalar interval block measures the distance between two notes in the current key and mode." +#: js/blocks/ActionBlocks.js:1048 +#: js/blocks/ActionBlocks.js:1049 +#: js/blocks/ActionBlocks.js:1153 +msgid "event" msgstr "" -#: js/IntervalsBlocks.js:445 -#.TRANS: measure the distance between two pitches in steps of musical scale -msgid "scalar interval measure" +#: js/blocks/ActionBlocks.js:1133 +msgid "The Broadcast block is used to trigger an event." msgstr "" -#: js/IntervalsBlocks.js:592 -#: js/musicutils.js:637 -#: js/musicutils.js:908 -#.TRANS: perfect is a music term related to intervals -msgid "perfect" +#: js/blocks/ActionBlocks.js:1151 +msgid "broadcast" msgstr "" -#: js/IntervalsBlocks.js:621 -msgid "In the figure, we add sol# to sol." +#: js/blocks/ActionBlocks.js:1208 +msgid "Each Start block is a separate voice." msgstr "" -#: js/IntervalsBlocks.js:627 -#: js/OrnamentBlocks.js:220 -#.TRANS: calculate a relative step between notes based on semi-tones -msgid "semi-tone interval" +#: js/blocks/ActionBlocks.js:1304 +msgid "It is often used for storing a phrase of music that is repeated." msgstr "" -#: js/IntervalsBlocks.js:676 -msgid "The output of the example is: do, mi, sol, sol, ti, mi" +#: js/blocks/ActionBlocks.js:1495 +msgid "define temperament" msgstr "" -#: js/IntervalsBlocks.js:735 -msgid "The Chord block calculates common chords." +#: js/blocks/BooleanBlocks.js:44 +msgid "The Not block is the logical not operator." msgstr "" -#: js/IntervalsBlocks.js:737 -msgid "In the figure, we generate a C-major chord." -msgstr "" +#: js/blocks/BooleanBlocks.js:62 +msgid "not" +msgstr "ehara" -#: js/IntervalsBlocks.js:742 -msgid "chord" +#: js/blocks/BooleanBlocks.js:134 +msgid "The And block is the logical and operator." msgstr "" -#: js/IntervalsBlocks.js:794 -msgid "The Ratio Interval block calculates an interval based on a ratio." -msgstr "" +#: js/blocks/BooleanBlocks.js:152 +msgid "and" +msgstr " me " -#: js/IntervalsBlocks.js:799 -msgid "ratio interval" +#: js/blocks/BooleanBlocks.js:218 +msgid "The Or block is the logical or operator." msgstr "" -#: js/IntervalsBlocks.js:868 -msgid "In the figure, we add la to sol." -msgstr "" +#: js/blocks/BooleanBlocks.js:236 +msgid "or" +msgstr "rānei" -#: js/IntervalsBlocks.js:924 -#.TRANS: define a custom mode -msgid "define mode" +#: js/blocks/BooleanBlocks.js:302 +msgid "The XOR block is the logical XOR operator." msgstr "" -#: js/IntervalsBlocks.js:977 -msgid "movable Do" +#: js/blocks/BooleanBlocks.js:320 +msgid "xor" msgstr "" -#: js/IntervalsBlocks.js:1028 -#.TRANS: mode length is the number of notes in the mode, e.g., 7 for major and minor scales; 12 for chromatic scales -msgid "mode length" +#: js/blocks/BooleanBlocks.js:808 +msgid "The Equal block returns True if the two numbers are equal." msgstr "" -#: js/IntervalsBlocks.js:1037 -msgid "The Mode length block is the number of notes in the current scale." +#: js/blocks/BooleanBlocks.js:909 +msgid "The Not-equal-to block returns True if the two numbers are not equal to each other." msgstr "" -#: js/IntervalsBlocks.js:1039 -msgid "Most Western scales have 7 notes." +#: js/blocks/BooleanBlocks.js:1008 +msgid "The Boolean block is used to specify true or false." msgstr "" -#: js/IntervalsBlocks.js:1088 -#.TRANS: the mode in music is 'major', 'minor', etc. -msgid "current mode" +#: js/blocks/BoxesBlocks.js:53 +#: js/blocks/BoxesBlocks.js:59 +msgid "The Add-to block is used to add to the value stored in a box." msgstr "" -#: js/IntervalsBlocks.js:1141 -#.TRANS: the key is a group of pitches with which a music composition is created -msgid "current key" +#: js/blocks/BoxesBlocks.js:61 +msgid "It can also be used with other blocks such as Color and Pen size." msgstr "" -#: js/IntervalsBlocks.js:1193 -#: js/IntervalsBlocks.js:1238 -#.TRANS: set the key and mode, e.g. C Major -msgid "set key" +#: js/blocks/BoxesBlocks.js:73 +msgid "add" msgstr "" -#: js/IntervalsBlocks.js:1247 -#: js/IntervalsBlocks.js:1253 -msgid "The Set key block is used to set the key and mode," +#: js/blocks/BoxesBlocks.js:75 +#: js/widgets/temperament.js:857 +msgid "to" msgstr "" -#: js/IntervalsBlocks.js:1253 -msgid "eg C Major" +#: js/blocks/BoxesBlocks.js:75 +#: js/blocks/BoxesBlocks.js:595 +#: js/blocks/HeapBlocks.js:544 +msgid "value1" msgstr "" -#: js/IntervalsBlocks.js:1266 -#: js/DictBlocks.js:215 -#: js/DictBlocks.js:216 -#: js/DictBlocks.js:289 -#: js/DictBlocks.js:290 -#: js/DictBlocks.js:357 -#: js/DictBlocks.js:430 -#: js/DictBlocks.js:431 -#.TRANS: key, e.g., C in C Major -msgid "key" +#: js/blocks/BoxesBlocks.js:118 +msgid "Block does not support incrementing." msgstr "" -#: js/ActionBlocks.js:58 -msgid "The Return block will return a value from an action." +#: js/blocks/BoxesBlocks.js:152 +msgid "The Add-1-to block adds one to the value stored in a box." msgstr "" -#: js/ActionBlocks.js:75 -msgid "return" +#: js/blocks/BoxesBlocks.js:163 +msgid "add 1 to" msgstr "" -#: js/ActionBlocks.js:128 -msgid "The Return to URL block will return a value to a webpage." +#: js/blocks/BoxesBlocks.js:211 +msgid "The Subtract-1-from block subtracts one from the value stored in a box." msgstr "" -#: js/ActionBlocks.js:145 -msgid "return to URL" +#: js/blocks/BoxesBlocks.js:222 +msgid "subtract 1 from" msgstr "" -#: js/ActionBlocks.js:233 -#: js/ActionBlocks.js:290 -#: js/ActionBlocks.js:501 -#: js/ActionBlocks.js:688 -msgid "The Calculate block returns a value calculated by an action." +#: js/blocks/BoxesBlocks.js:270 +#: js/blocks/BoxesBlocks.js:387 +msgid "The Box block returns the value stored in a box." msgstr "" -#: js/ActionBlocks.js:251 -#: js/ActionBlocks.js:517 -#: js/ActionBlocks.js:707 -msgid "calculate" +#: js/blocks/BoxesBlocks.js:500 +#: js/blocks/BoxesBlocks.js:576 +msgid "The Store in block will store a value in a box." msgstr "" -#: js/ActionBlocks.js:376 -#: js/ActionBlocks.js:593 -#: js/ActionBlocks.js:942 -#: js/ActionBlocks.js:1389 -#.TRANS: do is the do something or take an action. -msgid "The Do block is used to initiate an action." +#: js/blocks/BoxesBlocks.js:595 +#: js/blocks/EnsembleBlocks.js:391 +#: js/blocks/EnsembleBlocks.js:402 +msgid "name1" msgstr "" -#: js/ActionBlocks.js:390 -#: js/ActionBlocks.js:610 -#: js/ActionBlocks.js:959 -#: js/ActionBlocks.js:1048 -#: js/MeterBlocks.js:769 -msgid "do1" +#: js/blocks/BoxesBlocks.js:652 +msgid "The Box2 block returns the value stored in Box2." msgstr "" -#: js/ActionBlocks.js:390 -#: js/ActionBlocks.js:610 -#: js/ActionBlocks.js:959 -#: js/ActionBlocks.js:1048 -#: js/FlowBlocks.js:742 -#: js/FlowBlocks.js:822 -#: js/MeterBlocks.js:769 -msgid "do" +#: js/blocks/BoxesBlocks.js:703 +msgid "The Store in Box2 block is used to store a value in Box2." msgstr "" -#: js/ActionBlocks.js:791 -#: js/ActionBlocks.js:865 -msgid "The Arg block contains the value of an argument passed to an action." +#: js/blocks/BoxesBlocks.js:715 +msgid "store in box2" msgstr "" -#: js/ActionBlocks.js:806 -#: js/ActionBlocks.js:878 -msgid "arg" +#: js/blocks/BoxesBlocks.js:761 +msgid "The Box1 block returns the value stored in Box1." msgstr "" -#: js/ActionBlocks.js:836 -#: js/ActionBlocks.js:900 -#: js/ActionBlocks.js:908 -msgid "Invalid argument" +#: js/blocks/BoxesBlocks.js:812 +msgid "The Store in Box1 block is used to store a value in Box1." msgstr "" -#: js/ActionBlocks.js:944 -msgid "In the example, it is used with the One of block to choose a random phase." +#: js/blocks/BoxesBlocks.js:826 +msgid "store in box1" msgstr "" -#: js/ActionBlocks.js:1019 -#: js/ActionBlocks.js:1026 -msgid "The Listen block is used to listen for an event such as a mouse click." +#: js/blocks/DictBlocks.js:77 +msgid "show dictionary" msgstr "" -#: js/ActionBlocks.js:1028 -msgid "When the event happens, an action is taken." +#: js/blocks/DictBlocks.js:80 +#: js/blocks/DictBlocks.js:145 +#: js/blocks/DictBlocks.js:216 +#: js/blocks/DictBlocks.js:290 +#: js/blocks/ProgramBlocks.js:396 +#: js/blocks/ProgramBlocks.js:501 +#: js/blocks/ProgramBlocks.js:664 +msgid "My Dictionary" msgstr "" -#: js/ActionBlocks.js:1045 -msgid "on" +#: js/blocks/DictBlocks.js:129 +msgid "The Dictionary block returns a dictionary." msgstr "" -#: js/ActionBlocks.js:1048 -#: js/ActionBlocks.js:1049 -#: js/ActionBlocks.js:1153 -msgid "event" +#: js/blocks/DictBlocks.js:197 +#: js/blocks/DictBlocks.js:339 +msgid "The Get-dict block returns a value in the dictionary for a specified key." msgstr "" -#: js/ActionBlocks.js:1133 -msgid "The Broadcast block is used to trigger an event." +#: js/blocks/DictBlocks.js:212 +#: js/blocks/DictBlocks.js:354 +#.TRANS: retrieve a value from the dictionary with a given key +msgid "get value" msgstr "" -#: js/ActionBlocks.js:1151 -msgid "broadcast" +#: js/blocks/DictBlocks.js:215 +#: js/blocks/DictBlocks.js:216 +#: js/blocks/DictBlocks.js:289 +#: js/blocks/DictBlocks.js:290 +#: js/blocks/DictBlocks.js:357 +#: js/blocks/DictBlocks.js:430 +#: js/blocks/DictBlocks.js:431 +msgid "key2" msgstr "" -#: js/ActionBlocks.js:1208 -msgid "Each Start block is a separate voice." +#: js/blocks/DictBlocks.js:215 +#: js/blocks/DictBlocks.js:216 +#: js/blocks/DictBlocks.js:289 +#: js/blocks/DictBlocks.js:290 +#: js/blocks/DictBlocks.js:357 +#: js/blocks/DictBlocks.js:430 +#: js/blocks/DictBlocks.js:431 +#: js/blocks/IntervalsBlocks.js:1462 +#.TRANS: key, e.g., C in C Major +msgid "key" msgstr "" -#: js/ActionBlocks.js:1304 -msgid "It is often used for storing a phrase of music that is repeated." +#: js/blocks/DictBlocks.js:271 +#: js/blocks/DictBlocks.js:411 +msgid "The Set-dict block sets a value in the dictionary for a specified key." msgstr "" -#: js/ActionBlocks.js:1495 -msgid "define temperament" +#: js/blocks/DictBlocks.js:286 +#: js/blocks/DictBlocks.js:427 +#.TRANS: set a value in the dictionary for a given key +msgid "set value" msgstr "" -#: js/EnsembleBlocks.js:66 +#: js/blocks/EnsembleBlocks.js:66 msgid "mouse index heap" msgstr "" -#: js/EnsembleBlocks.js:68 +#: js/blocks/EnsembleBlocks.js:68 msgid "The Mouse index heap block returns a value in the heap at a specified location for a specified mouse." msgstr "" -#: js/EnsembleBlocks.js:77 -#: js/EnsembleBlocks.js:1080 +#: js/blocks/EnsembleBlocks.js:77 +#: js/blocks/EnsembleBlocks.js:1080 msgid "mouse name" msgstr "" -#: js/EnsembleBlocks.js:77 -#: js/EnsembleBlocks.js:92 -#: js/HeapBlocks.js:544 +#: js/blocks/EnsembleBlocks.js:77 +#: js/blocks/EnsembleBlocks.js:92 +#: js/blocks/HeapBlocks.js:544 #.TRANS: value1 is a numeric value (JAPANESE ONLY) msgid "index" msgstr "" -#: js/EnsembleBlocks.js:80 +#: js/blocks/EnsembleBlocks.js:80 msgid "turtle index heap" msgstr "" -#: js/EnsembleBlocks.js:82 +#: js/blocks/EnsembleBlocks.js:82 msgid "The Turtle index heap block returns a value in the heap at a specified location for a specified turtle." msgstr "" -#: js/EnsembleBlocks.js:90 -#: js/EnsembleBlocks.js:167 -#: js/EnsembleBlocks.js:230 -#: js/EnsembleBlocks.js:316 -#: js/EnsembleBlocks.js:362 -#: js/EnsembleBlocks.js:400 -#: js/EnsembleBlocks.js:454 -#: js/EnsembleBlocks.js:504 -#: js/EnsembleBlocks.js:550 -#: js/EnsembleBlocks.js:597 -#: js/EnsembleBlocks.js:651 -#: js/EnsembleBlocks.js:763 -#: js/EnsembleBlocks.js:854 -#: js/EnsembleBlocks.js:915 -#: js/EnsembleBlocks.js:955 -#: js/EnsembleBlocks.js:1219 -#: js/EnsembleBlocks.js:1293 +#: js/blocks/EnsembleBlocks.js:90 +#: js/blocks/EnsembleBlocks.js:167 +#: js/blocks/EnsembleBlocks.js:230 +#: js/blocks/EnsembleBlocks.js:316 +#: js/blocks/EnsembleBlocks.js:362 +#: js/blocks/EnsembleBlocks.js:400 +#: js/blocks/EnsembleBlocks.js:454 +#: js/blocks/EnsembleBlocks.js:504 +#: js/blocks/EnsembleBlocks.js:550 +#: js/blocks/EnsembleBlocks.js:597 +#: js/blocks/EnsembleBlocks.js:651 +#: js/blocks/EnsembleBlocks.js:763 +#: js/blocks/EnsembleBlocks.js:854 +#: js/blocks/EnsembleBlocks.js:915 +#: js/blocks/EnsembleBlocks.js:955 +#: js/blocks/EnsembleBlocks.js:1219 +#: js/blocks/EnsembleBlocks.js:1293 #.TRANS: Yertle is the name of a turtle. msgid "Yertle" msgstr "" -#: js/EnsembleBlocks.js:92 -#: js/EnsembleBlocks.js:1089 +#: js/blocks/EnsembleBlocks.js:92 +#: js/blocks/EnsembleBlocks.js:1089 msgid "turtle name" msgstr "" -#: js/EnsembleBlocks.js:122 -#: js/EnsembleBlocks.js:1197 -#: js/HeapBlocks.js:474 -#: js/HeapBlocks.js:572 +#: js/blocks/EnsembleBlocks.js:122 +#: js/blocks/EnsembleBlocks.js:1197 +#: js/blocks/HeapBlocks.js:474 +#: js/blocks/HeapBlocks.js:572 msgid "Index must be > 0." msgstr "" -#: js/EnsembleBlocks.js:127 -#: js/HeapBlocks.js:479 -#: js/HeapBlocks.js:577 +#: js/blocks/EnsembleBlocks.js:127 +#: js/blocks/HeapBlocks.js:479 +#: js/blocks/HeapBlocks.js:577 msgid "Maximum heap size is 1000." msgstr "" -#: js/EnsembleBlocks.js:145 +#: js/blocks/EnsembleBlocks.js:145 msgid "stop mouse" msgstr "" -#: js/EnsembleBlocks.js:147 +#: js/blocks/EnsembleBlocks.js:147 msgid "The Stop mouse block stops the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:158 +#: js/blocks/EnsembleBlocks.js:158 msgid "stop turtle" msgstr "" -#: js/EnsembleBlocks.js:160 +#: js/blocks/EnsembleBlocks.js:160 msgid "The Stop turtle block stops the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:184 -#: js/EnsembleBlocks.js:247 -#: js/EnsembleBlocks.js:413 -#: js/EnsembleBlocks.js:468 -#: js/EnsembleBlocks.js:706 -#: js/EnsembleBlocks.js:808 -#: js/EnsembleBlocks.js:870 -#: js/EnsembleBlocks.js:1190 -#: js/EnsembleBlocks.js:1253 +#: js/blocks/EnsembleBlocks.js:184 +#: js/blocks/EnsembleBlocks.js:247 +#: js/blocks/EnsembleBlocks.js:413 +#: js/blocks/EnsembleBlocks.js:468 +#: js/blocks/EnsembleBlocks.js:706 +#: js/blocks/EnsembleBlocks.js:808 +#: js/blocks/EnsembleBlocks.js:870 +#: js/blocks/EnsembleBlocks.js:1190 +#: js/blocks/EnsembleBlocks.js:1253 msgid "Cannot find mouse" msgstr "" -#: js/EnsembleBlocks.js:186 -#: js/EnsembleBlocks.js:249 -#: js/EnsembleBlocks.js:415 -#: js/EnsembleBlocks.js:470 -#: js/EnsembleBlocks.js:708 -#: js/EnsembleBlocks.js:810 -#: js/EnsembleBlocks.js:872 -#: js/EnsembleBlocks.js:1192 -#: js/EnsembleBlocks.js:1255 +#: js/blocks/EnsembleBlocks.js:186 +#: js/blocks/EnsembleBlocks.js:249 +#: js/blocks/EnsembleBlocks.js:415 +#: js/blocks/EnsembleBlocks.js:470 +#: js/blocks/EnsembleBlocks.js:708 +#: js/blocks/EnsembleBlocks.js:810 +#: js/blocks/EnsembleBlocks.js:872 +#: js/blocks/EnsembleBlocks.js:1192 +#: js/blocks/EnsembleBlocks.js:1255 msgid "Cannot find turtle" msgstr "" -#: js/EnsembleBlocks.js:206 +#: js/blocks/EnsembleBlocks.js:206 msgid "start mouse" msgstr "" -#: js/EnsembleBlocks.js:209 +#: js/blocks/EnsembleBlocks.js:209 msgid "The Start mouse block starts the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:220 +#: js/blocks/EnsembleBlocks.js:220 msgid "start turtle" msgstr "" -#: js/EnsembleBlocks.js:223 +#: js/blocks/EnsembleBlocks.js:223 msgid "The Start turtle block starts the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:256 +#: js/blocks/EnsembleBlocks.js:256 msgid "Mouse is already running." msgstr "" -#: js/EnsembleBlocks.js:258 +#: js/blocks/EnsembleBlocks.js:258 msgid "Turtle is already running." msgstr "" -#: js/EnsembleBlocks.js:282 +#: js/blocks/EnsembleBlocks.js:282 msgid "Cannot find start block" msgstr "" -#: js/EnsembleBlocks.js:292 +#: js/blocks/EnsembleBlocks.js:292 #.TRANS: pen color for this mouse msgid "mouse color" msgstr "" -#: js/EnsembleBlocks.js:294 +#: js/blocks/EnsembleBlocks.js:294 msgid "The Mouse color block returns the pen color of the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:306 +#: js/blocks/EnsembleBlocks.js:306 #.TRANS: pen color for this turtle msgid "turtle color" msgstr "" -#: js/EnsembleBlocks.js:308 +#: js/blocks/EnsembleBlocks.js:308 msgid "The Turtle color block returns the pen color of the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:338 +#: js/blocks/EnsembleBlocks.js:338 #.TRANS: heading (compass direction) for this mouse msgid "mouse heading" msgstr "" -#: js/EnsembleBlocks.js:340 +#: js/blocks/EnsembleBlocks.js:340 msgid "The Mouse heading block returns the heading of the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:352 +#: js/blocks/EnsembleBlocks.js:352 #.TRANS: heading (compass direction) for this turtle msgid "turtle heading" msgstr "" -#: js/EnsembleBlocks.js:354 +#: js/blocks/EnsembleBlocks.js:354 msgid "The Turtle heading block returns the heading of the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:384 -#: js/EnsembleBlocks.js:439 +#: js/blocks/EnsembleBlocks.js:384 +#: js/blocks/EnsembleBlocks.js:439 #.TRANS: set xy position for this mouse msgid "set mouse" msgstr "" -#: js/EnsembleBlocks.js:391 -#: js/EnsembleBlocks.js:402 -#: js/BoxesBlocks.js:595 -msgid "name1" -msgstr "" - -#: js/EnsembleBlocks.js:391 -#: js/EnsembleBlocks.js:402 -#: js/ProgramBlocks.js:881 -#: js/GraphicsBlocks.js:235 -#: js/GraphicsBlocks.js:313 -#: js/GraphicsBlocks.js:436 -#: js/GraphicsBlocks.js:487 -#: js/GraphicsBlocks.js:534 -#: js/GraphicsBlocks.js:750 +#: js/blocks/EnsembleBlocks.js:391 +#: js/blocks/EnsembleBlocks.js:402 +#: js/blocks/GraphicsBlocks.js:235 +#: js/blocks/GraphicsBlocks.js:313 +#: js/blocks/GraphicsBlocks.js:436 +#: js/blocks/GraphicsBlocks.js:487 +#: js/blocks/GraphicsBlocks.js:534 +#: js/blocks/GraphicsBlocks.js:750 +#: js/blocks/ProgramBlocks.js:881 msgid "x" msgstr "x" -#: js/EnsembleBlocks.js:391 -#: js/EnsembleBlocks.js:402 -#: js/ProgramBlocks.js:881 -#: js/GraphicsBlocks.js:149 -#: js/GraphicsBlocks.js:313 -#: js/GraphicsBlocks.js:436 -#: js/GraphicsBlocks.js:487 -#: js/GraphicsBlocks.js:534 -#: js/GraphicsBlocks.js:750 +#: js/blocks/EnsembleBlocks.js:391 +#: js/blocks/EnsembleBlocks.js:402 +#: js/blocks/GraphicsBlocks.js:149 +#: js/blocks/GraphicsBlocks.js:313 +#: js/blocks/GraphicsBlocks.js:436 +#: js/blocks/GraphicsBlocks.js:487 +#: js/blocks/GraphicsBlocks.js:534 +#: js/blocks/GraphicsBlocks.js:750 +#: js/blocks/ProgramBlocks.js:881 msgid "y" msgstr "y" -#: js/EnsembleBlocks.js:395 -#: js/EnsembleBlocks.js:452 +#: js/blocks/EnsembleBlocks.js:395 +#: js/blocks/EnsembleBlocks.js:452 #.TRANS: set xy position for this turtle msgid "set turtle" msgstr "" -#: js/EnsembleBlocks.js:433 +#: js/blocks/EnsembleBlocks.js:433 msgid "The Set mouse block sends a stack of blocks to be run by the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:446 +#: js/blocks/EnsembleBlocks.js:446 msgid "The Set turtle block sends a stack of blocks to be run by the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:480 +#: js/blocks/EnsembleBlocks.js:480 #.TRANS: y position for this mouse msgid "mouse y" msgstr "kiore y" -#: js/EnsembleBlocks.js:482 +#: js/blocks/EnsembleBlocks.js:482 msgid "The Y mouse block returns the Y position of the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:494 +#: js/blocks/EnsembleBlocks.js:494 #.TRANS: y position for this turtle msgid "turtle y" msgstr "" -#: js/EnsembleBlocks.js:496 +#: js/blocks/EnsembleBlocks.js:496 msgid "The Y turtle block returns the Y position of the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:526 +#: js/blocks/EnsembleBlocks.js:526 #.TRANS: x position for this mouse msgid "mouse x" msgstr "kiore x" -#: js/EnsembleBlocks.js:528 +#: js/blocks/EnsembleBlocks.js:528 msgid "The X mouse block returns the X position of the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:540 +#: js/blocks/EnsembleBlocks.js:540 #.TRANS: x position for this turtle msgid "turtle x" msgstr "" -#: js/EnsembleBlocks.js:542 +#: js/blocks/EnsembleBlocks.js:542 msgid "The X turtle block returns the X position of the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:573 +#: js/blocks/EnsembleBlocks.js:573 #.TRANS: notes played by this mouse msgid "mouse notes played" msgstr "" -#: js/EnsembleBlocks.js:575 +#: js/blocks/EnsembleBlocks.js:575 msgid "The Mouse elapse notes block returns the number of notes played by the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:587 +#: js/blocks/EnsembleBlocks.js:587 #.TRANS: notes played by this turtle msgid "turtle notes played" msgstr "" -#: js/EnsembleBlocks.js:589 +#: js/blocks/EnsembleBlocks.js:589 msgid "The Turtle elapse notes block returns the number of notes played by the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:627 +#: js/blocks/EnsembleBlocks.js:627 #.TRANS: convert current note for this turtle to piano key (1-88) msgid "mouse pitch number" msgstr "" -#: js/EnsembleBlocks.js:629 +#: js/blocks/EnsembleBlocks.js:629 msgid "The Mouse pitch block returns the current pitch number being played by the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:641 +#: js/blocks/EnsembleBlocks.js:641 #.TRANS: convert current note for this turtle to piano key (1-88) msgid "turtle pitch number" msgstr "" -#: js/EnsembleBlocks.js:643 -msgid "The Turrle pitch block returns the current pitch number being played by the specified turtle." +#: js/blocks/EnsembleBlocks.js:643 +msgid "The Turtle pitch block returns the current pitch number being played by the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:747 -#: js/EnsembleBlocks.js:819 +#: js/blocks/EnsembleBlocks.js:747 +#: js/blocks/EnsembleBlocks.js:819 #.TRANS: note value is the duration of the note played by this mouse msgid "mouse note value" msgstr "" -#: js/EnsembleBlocks.js:757 +#: js/blocks/EnsembleBlocks.js:757 #.TRANS: note value is the duration of the note played by this turtle msgid "turtle note value" msgstr "" -#: js/EnsembleBlocks.js:830 +#: js/blocks/EnsembleBlocks.js:830 #.TRANS: sync is short for synchronization msgid "mouse sync" msgstr "" -#: js/EnsembleBlocks.js:832 +#: js/blocks/EnsembleBlocks.js:832 msgid "The Mouse sync block aligns the beat count between mice." msgstr "" -#: js/EnsembleBlocks.js:844 +#: js/blocks/EnsembleBlocks.js:844 #.TRANS: sync is short for synchronization msgid "turtle sync" msgstr "" -#: js/EnsembleBlocks.js:846 +#: js/blocks/EnsembleBlocks.js:846 msgid "The Turtle sync block aligns the beat count between turtles." msgstr "" -#: js/EnsembleBlocks.js:887 +#: js/blocks/EnsembleBlocks.js:887 msgid "The Found mouse block will return true if the specified mouse can be found." msgstr "" -#: js/EnsembleBlocks.js:893 +#: js/blocks/EnsembleBlocks.js:893 msgid "found mouse" msgstr "" -#: js/EnsembleBlocks.js:903 +#: js/blocks/EnsembleBlocks.js:903 msgid "The Found turtle block will return true if the specified turtle can be found." msgstr "" -#: js/EnsembleBlocks.js:909 +#: js/blocks/EnsembleBlocks.js:909 msgid "found turtle" msgstr "" -#: js/EnsembleBlocks.js:932 +#: js/blocks/EnsembleBlocks.js:932 msgid "new mouse" msgstr "" -#: js/EnsembleBlocks.js:934 +#: js/blocks/EnsembleBlocks.js:934 msgid "The New mouse block will create a new mouse." msgstr "" -#: js/EnsembleBlocks.js:945 +#: js/blocks/EnsembleBlocks.js:945 msgid "new turtle" msgstr "" -#: js/EnsembleBlocks.js:947 +#: js/blocks/EnsembleBlocks.js:947 msgid "The New turtle block will create a new turtle." msgstr "" -#: js/EnsembleBlocks.js:1011 +#: js/blocks/EnsembleBlocks.js:1011 msgid "set mouse color" msgstr "" -#: js/EnsembleBlocks.js:1014 +#: js/blocks/EnsembleBlocks.js:1014 msgid "The Set-mouse-color block is used to set the color of a mouse." msgstr "" -#: js/EnsembleBlocks.js:1020 +#: js/blocks/EnsembleBlocks.js:1020 msgid "set turtle color" msgstr "" -#: js/EnsembleBlocks.js:1023 +#: js/blocks/EnsembleBlocks.js:1023 msgid "The Set-turtle-color block is used to set the color of a turtle." msgstr "" -#: js/EnsembleBlocks.js:1083 +#: js/blocks/EnsembleBlocks.js:1083 msgid "The Mouse-name block returns the name of a mouse." msgstr "" -#: js/EnsembleBlocks.js:1092 +#: js/blocks/EnsembleBlocks.js:1092 msgid "The Turtle-name block returns the name of a turtle." msgstr "" -#: js/EnsembleBlocks.js:1115 +#: js/blocks/EnsembleBlocks.js:1115 msgid "mouse count" msgstr "" -#: js/EnsembleBlocks.js:1118 +#: js/blocks/EnsembleBlocks.js:1118 msgid "The Mouse-count block returns the number of mice." msgstr "" -#: js/EnsembleBlocks.js:1124 +#: js/blocks/EnsembleBlocks.js:1124 msgid "turtle count" msgstr "" -#: js/EnsembleBlocks.js:1127 +#: js/blocks/EnsembleBlocks.js:1127 msgid "The Turtle-count block returns the number of turtles." msgstr "" -#: js/EnsembleBlocks.js:1149 +#: js/blocks/EnsembleBlocks.js:1149 msgid "nth mouse name" msgstr "" -#: js/EnsembleBlocks.js:1152 +#: js/blocks/EnsembleBlocks.js:1152 msgid "The Nth-Mouse name block returns the name of the nth mouse." msgstr "" -#: js/EnsembleBlocks.js:1158 +#: js/blocks/EnsembleBlocks.js:1158 msgid "nth turtle name" msgstr "" -#: js/EnsembleBlocks.js:1161 -msgid "The Nth-Turtle name block returns the name of the nth turtle." -msgstr "" - -#: js/EnsembleBlocks.js:1205 -#: js/EnsembleBlocks.js:1265 -msgid "set name" -msgstr "" - -#: js/EnsembleBlocks.js:1214 -#: js/EnsembleBlocks.js:1221 -msgid "source" -msgstr "" - -#: js/EnsembleBlocks.js:1214 -#: js/EnsembleBlocks.js:1221 -msgid "target" -msgstr "" - -#: js/EnsembleBlocks.js:1271 -msgid "The Set-name block is used to name a mouse." -msgstr "" - -#: js/EnsembleBlocks.js:1284 -msgid "The Set-name block is used to name a turtle." -msgstr "" - -#: js/BooleanBlocks.js:44 -msgid "The Not block is the logical not operator." -msgstr "" - -#: js/BooleanBlocks.js:62 -msgid "not" -msgstr "ehara" - -#: js/BooleanBlocks.js:134 -msgid "The And block is the logical and operator." -msgstr "" - -#: js/BooleanBlocks.js:152 -msgid "and" -msgstr " me " - -#: js/BooleanBlocks.js:218 -msgid "The Or block is the logical or operator." -msgstr "" - -#: js/BooleanBlocks.js:236 -msgid "or" -msgstr "rānei" - -#: js/BooleanBlocks.js:302 -msgid "The XOR block is the logical XOR operator." -msgstr "" - -#: js/BooleanBlocks.js:320 -msgid "xor" -msgstr "" - -#: js/BooleanBlocks.js:808 -msgid "The Equal block returns True if the two numbers are equal." -msgstr "" - -#: js/BooleanBlocks.js:909 -msgid "The Not-equal-to block returns True if the two numbers are not equal to each other." -msgstr "" - -#: js/BooleanBlocks.js:1008 -msgid "The Boolean block is used to specify true or false." -msgstr "" - -#: js/MediaBlocks.js:35 -#.TRANS: right side of the screen -msgid "right (screen)" -msgstr "" - -#: js/MediaBlocks.js:45 -#: js/MediaBlocks.js:56 -msgid "The Right block returns the position of the right of the canvas." +#: js/blocks/EnsembleBlocks.js:1161 +msgid "The Nth-Turtle name block returns the name of the nth turtle." msgstr "" -#: js/MediaBlocks.js:97 -#.TRANS: left side of the screen -msgid "left (screen)" +#: js/blocks/EnsembleBlocks.js:1205 +#: js/blocks/EnsembleBlocks.js:1265 +msgid "set name" msgstr "" -#: js/MediaBlocks.js:107 -#: js/MediaBlocks.js:118 -msgid "The Left block returns the position of the left of the canvas." +#: js/blocks/EnsembleBlocks.js:1214 +#: js/blocks/EnsembleBlocks.js:1221 +msgid "source" msgstr "" -#: js/MediaBlocks.js:158 -msgid "top (screen)" +#: js/blocks/EnsembleBlocks.js:1214 +#: js/blocks/EnsembleBlocks.js:1221 +msgid "target" msgstr "" -#: js/MediaBlocks.js:168 -#: js/MediaBlocks.js:179 -msgid "The Top block returns the position of the top of the canvas." +#: js/blocks/EnsembleBlocks.js:1271 +msgid "The Set-name block is used to name a mouse." msgstr "" -#: js/MediaBlocks.js:219 -msgid "bottom (screen)" +#: js/blocks/EnsembleBlocks.js:1284 +msgid "The Set-name block is used to name a turtle." msgstr "" -#: js/MediaBlocks.js:229 -#: js/MediaBlocks.js:240 -msgid "The Bottom block returns the position of the bottom of the canvas." +#: js/blocks/ExtrasBlocks.js:33 +msgid "fraction" msgstr "" -#: js/MediaBlocks.js:282 -msgid "width" +#: js/blocks/ExtrasBlocks.js:36 +msgid "Convert a float to a fraction" msgstr "" -#: js/MediaBlocks.js:291 -msgid "The Width block returns the width of the canvas." +#: js/blocks/ExtrasBlocks.js:93 +msgid "save as ABC" msgstr "" -#: js/MediaBlocks.js:325 -msgid "height" +#: js/blocks/ExtrasBlocks.js:96 +#: js/blocks/ExtrasBlocks.js:132 +#: js/blocks/ExtrasBlocks.js:168 +msgid "title" msgstr "" -#: js/MediaBlocks.js:334 -msgid "The Height block returns the height of the canvas." +#: js/blocks/ExtrasBlocks.js:129 +msgid "save as Lilypond" msgstr "" -#: js/MediaBlocks.js:369 -#.TRANS: stops playback of an audio recording -msgid "stop play" +#: js/blocks/ExtrasBlocks.js:165 +msgid "save as SVG" msgstr "" -#: js/MediaBlocks.js:404 -#.TRANS: Erases the images and text -msgid "erase media" +#: js/blocks/ExtrasBlocks.js:216 +msgid "no background" msgstr "" -#: js/MediaBlocks.js:409 -msgid "The Erase Media block erases text and images." +#: js/blocks/ExtrasBlocks.js:219 +msgid "The No background block eliminates the background from the saved SVG output." msgstr "" -#: js/MediaBlocks.js:439 -#.TRANS: play an audio recording -msgid "play back" +#: js/blocks/ExtrasBlocks.js:247 +msgid "show blocks" +msgstr "whakaatu paraka" + +#: js/blocks/ExtrasBlocks.js:249 +msgid "The Show blocks block shows the blocks." msgstr "" -#: js/MediaBlocks.js:487 -msgid "speak" -msgstr "whakahua" +#: js/blocks/ExtrasBlocks.js:274 +msgid "hide blocks" +msgstr "huna paraka" -#: js/MediaBlocks.js:495 -msgid "The Speak block outputs to the text-to-speech synthesizer" +#: js/blocks/ExtrasBlocks.js:276 +msgid "The Hide blocks block hides the blocks." msgstr "" -#: js/MediaBlocks.js:546 -msgid "camera" +#: js/blocks/ExtrasBlocks.js:305 +#: js/blocks/ExtrasBlocks.js:338 +msgid "The Space block is used to add space between blocks." msgstr "" -#: js/MediaBlocks.js:551 -msgid "The Camera block connects a webcam to the Show block." -msgstr "" +#: js/blocks/ExtrasBlocks.js:376 +msgid "wait" +msgstr "taihoa" -#: js/MediaBlocks.js:574 -msgid "video" +#: js/blocks/ExtrasBlocks.js:379 +msgid "The Wait block pauses the program for a specified number of seconds." msgstr "" -#: js/MediaBlocks.js:579 -msgid "The Video block selects video for use with the Show block." -msgstr "" +#: js/blocks/ExtrasBlocks.js:433 +#: plugins/facebook.rtp:30 +msgid "comment" +msgstr "tākupu" -#: js/MediaBlocks.js:607 -msgid "The Open file block opens a file for use with the Show block." -msgstr "" +#: js/blocks/ExtrasBlocks.js:469 +msgid "print" +msgstr "tā" -#: js/MediaBlocks.js:645 -msgid "stop media" +#: js/blocks/ExtrasBlocks.js:476 +msgid "The Print block displays text at the top of the screen." msgstr "" -#: js/MediaBlocks.js:650 -msgid "The Stop media block stops audio or video playback." +#: js/blocks/ExtrasBlocks.js:582 +msgid "display grid" msgstr "" -#: js/MediaBlocks.js:679 -#: js/PitchBlocks.js:1539 -#: js/phrasemaker.js:822 -#: js/musickeyboard.js:1654 -#.TRANS: a measure of frequency: one cycle per second -msgid "hertz" +#: js/blocks/ExtrasBlocks.js:587 +msgid "The Display Grid Block changes the grid type" msgstr "" -#: js/MediaBlocks.js:692 -msgid "duration (ms)" +#: js/blocks/ExtrasBlocks.js:689 +#: js/blocks/ExtrasBlocks.js:708 +#: js/blocks/ExtrasBlocks.js:731 +#: js/blocks/ExtrasBlocks.js:754 +#: js/blocks/ExtrasBlocks.js:772 +#: js/blocks/ExtrasBlocks.js:791 +#: js/blocks/ExtrasBlocks.js:810 +#: js/blocks/ExtrasBlocks.js:829 +msgid "unknown" msgstr "" -#: js/MediaBlocks.js:728 -#.TRANS: translate a note into hertz, e.g., A4 -> 440HZ -msgid "note to frequency" +#: js/blocks/FlowBlocks.js:41 +msgid "The Backward block runs code in reverse order (Musical retrograde)." msgstr "" -#: js/MediaBlocks.js:736 -msgid "The To frequency block converts a pitch name and octave to Hertz." +#: js/blocks/FlowBlocks.js:48 +msgid "backward" msgstr "" -#: js/MediaBlocks.js:746 -#: js/PitchBlocks.js:656 -#: js/PitchBlocks.js:932 -#: js/PitchBlocks.js:1827 -#.TRANS: name2 is name as in name of pitch (JAPANESE ONLY) -msgid "name2" +#: js/blocks/FlowBlocks.js:124 +msgid "The Duplicate block will run each block multiple times." msgstr "" -#: js/MediaBlocks.js:812 -msgid "The Avatar block is used to change the appearance of the mouse." +#: js/blocks/FlowBlocks.js:136 +msgid "duplicate" msgstr "" -#: js/MediaBlocks.js:819 -msgid "The Avatar block is used to change the appearance of the turtle." +#: js/blocks/FlowBlocks.js:334 +msgid "The Default block is used inside of a Switch to define the default action." msgstr "" -#: js/MediaBlocks.js:831 -#: js/MediaBlocks.js:891 -#.TRANS: a media object -msgid "size" +#: js/blocks/FlowBlocks.js:342 +msgid "default" msgstr "" -#: js/MediaBlocks.js:831 -msgid "image" -msgstr "atahanga" - -#: js/MediaBlocks.js:880 -msgid "The Show block is used to display text or images on the canvas." +#: js/blocks/FlowBlocks.js:361 +#: js/blocks/FlowBlocks.js:418 +msgid "The Case Block must be used inside of a Switch Block." msgstr "" -#: js/MediaBlocks.js:888 -#.TRANS: show1 is show as in display an image or text on the screen. -msgid "show1" +#: js/blocks/FlowBlocks.js:389 +msgid "The Case block is used inside of a Switch to define matches." msgstr "" -#: js/MediaBlocks.js:891 -msgid "obj" +#: js/blocks/FlowBlocks.js:397 +msgid "case" msgstr "" -#: js/MediaBlocks.js:938 -msgid "The Media block is used to import an image." +#: js/blocks/FlowBlocks.js:446 +msgid "The Switch block will run the code in the matching Case." msgstr "" -#: js/MediaBlocks.js:973 -msgid "The Text block holds a text string." +#: js/blocks/FlowBlocks.js:454 +msgid "switch" msgstr "" -#: js/ProgramBlocks.js:33 -msgid "The Load-heap-from-app block loads the heap from a web page." +#: js/blocks/FlowBlocks.js:595 +msgid "The Stop block will stop a loop" msgstr "" -#: js/ProgramBlocks.js:44 -#.TRANS: load the heap contents from a URL -msgid "load heap from App" +#: js/blocks/FlowBlocks.js:597 +msgid "Forever, Repeat, While, or Until." msgstr "" -#: js/ProgramBlocks.js:95 -msgid "Error parsing JSON data:" -msgstr "" +#: js/blocks/FlowBlocks.js:604 +#: js/widgets/timbre.js:417 +#: js/widgets/timbre.js:419 +#: js/widgets/musickeyboard.js:819 +#: js/widgets/musickeyboard.js:821 +#: js/widgets/phrasemaker.js:4202 +#: plugins/rodi.rtp:29 +#: plugins/rodi.rtp:73 +#: plugins/rodi.rtp:413 +msgid "stop" +msgstr "tū" -#: js/ProgramBlocks.js:100 -msgid "404: Page not found" +#: js/blocks/FlowBlocks.js:653 +msgid "The Waitfor block will wait until the condition is true." msgstr "" -#: js/ProgramBlocks.js:133 -msgid "The Save-heap-to-app block saves the heap to a web page." +#: js/blocks/FlowBlocks.js:661 +msgid "wait for" msgstr "" -#: js/ProgramBlocks.js:144 -#.TRANS: save the heap contents to a URL -msgid "save heap to App" +#: js/blocks/FlowBlocks.js:732 +msgid "The Until block will repeat until the condition is true." msgstr "" -#: js/ProgramBlocks.js:189 -msgid "Cannot find a valid heap for" -msgstr "" +#: js/blocks/FlowBlocks.js:740 +msgid "until" +msgstr "hei te" -#: js/ProgramBlocks.js:206 -msgid "The Load-heap block loads the heap from a file." +#: js/blocks/FlowBlocks.js:742 +#: js/blocks/FlowBlocks.js:822 +msgid "do2" msgstr "" -#: js/ProgramBlocks.js:217 -#.TRANS: load the heap from a file -msgid "load heap" +#: js/blocks/FlowBlocks.js:812 +msgid "The While block will repeat while the condition is true." msgstr "" -#: js/ProgramBlocks.js:270 -msgid "The file you selected does not contain a valid heap." -msgstr "" +#: js/blocks/FlowBlocks.js:820 +msgid "while" +msgstr "i te wā" -#: js/ProgramBlocks.js:275 -msgid "The loadHeap block needs a loadFile block." +#: js/blocks/FlowBlocks.js:903 +#: js/blocks/FlowBlocks.js:968 +#: js/blocks/FlowBlocks.js:979 +msgid "In this example if the mouse button is pressed a snare drum will play." msgstr "" -#: js/ProgramBlocks.js:291 -msgid "The Set-heap block loads the heap." -msgstr "" +#: js/blocks/FlowBlocks.js:925 +#: js/blocks/FlowBlocks.js:988 +msgid "if" +msgstr "mēnā" -#: js/ProgramBlocks.js:299 -#: js/HeapBlocks.js:539 -#.TRANS: load the heap from a JSON encoding -msgid "set heap" -msgstr "" +#: js/blocks/FlowBlocks.js:927 +#: js/blocks/FlowBlocks.js:990 +msgid "then" +msgstr "kātahi ka" -#: js/ProgramBlocks.js:340 -msgid "The block you selected does not contain a valid heap." -msgstr "" +#: js/blocks/FlowBlocks.js:927 +msgid "else" +msgstr "kē atu" -#: js/ProgramBlocks.js:343 -msgid "The Set heap block needs a heap." +#: js/blocks/FlowBlocks.js:1025 +msgid "The Forever block will repeat the contained blocks forever." msgstr "" -#: js/ProgramBlocks.js:360 -msgid "The Load-dictionary block loads a dictionary from a file." -msgstr "" +#: js/blocks/FlowBlocks.js:1037 +msgid "forever" +msgstr "mō ake tonu" -#: js/ProgramBlocks.js:372 -#.TRANS: load a dictionary from a file -msgid "load dictionary" +#: js/blocks/FlowBlocks.js:1073 +msgid "The Repeat block will repeat the contained blocks." msgstr "" -#: js/ProgramBlocks.js:390 -#: js/ProgramBlocks.js:658 -#: js/ToneBlocks.js:1025 -msgid "file" +#: js/blocks/FlowBlocks.js:1075 +msgid "In this example the note will be played 4 times." msgstr "" -#: js/ProgramBlocks.js:396 -#: js/ProgramBlocks.js:501 -#: js/ProgramBlocks.js:664 -#: js/DictBlocks.js:80 -#: js/DictBlocks.js:145 -#: js/DictBlocks.js:216 -#: js/DictBlocks.js:290 -msgid "My Dictionary" -msgstr "" +#: js/blocks/FlowBlocks.js:1083 +msgid "repeat" +msgstr "tārua" -#: js/ProgramBlocks.js:444 -msgid "The file you selected does not contain a valid dictionary." +#: js/blocks/FlowBlocks.js:1123 +msgid "duplicate factor" msgstr "" -#: js/ProgramBlocks.js:449 -msgid "The load dictionary block needs a load file block." +#: js/blocks/HeapBlocks.js:49 +msgid "The Heap block returns the heap." msgstr "" -#: js/ProgramBlocks.js:466 -msgid "The Set-dictionary block loads a dictionary." -msgstr "" +#: js/blocks/HeapBlocks.js:133 +msgid "show heap" +msgstr "whakaatu tāpae" -#: js/ProgramBlocks.js:477 -#.TRANS: load a dictionary from a JSON -msgid "set dictionary" +#: js/blocks/HeapBlocks.js:181 +msgid "The Heap-length block returns the length of the heap." msgstr "" -#: js/ProgramBlocks.js:546 -msgid "The block you selected does not contain a valid dictionary." +#: js/blocks/HeapBlocks.js:195 +msgid "heap length" msgstr "" -#: js/ProgramBlocks.js:550 -msgid "The set dictionary block needs a dictionary." +#: js/blocks/HeapBlocks.js:254 +msgid "The Heap-empty? block returns true if the heap is empty." msgstr "" -#: js/ProgramBlocks.js:567 -msgid "The Save-heap block saves the heap to a file." +#: js/blocks/HeapBlocks.js:268 +#.TRANS: Is the heap empty? +msgid "heap empty?" msgstr "" -#: js/ProgramBlocks.js:578 -#.TRANS: save the heap to a file -msgid "save heap" +#: js/blocks/HeapBlocks.js:317 +msgid "The Empty-heap block empties the heap." msgstr "" -#: js/ProgramBlocks.js:629 -msgid "The Save-dictionary block saves a dictionary to a file." +#: js/blocks/HeapBlocks.js:327 +#: js/blocks/HeapBlocks.js:647 +#.TRANS: empty the heap +msgid "empty heap" +msgstr "putu tāpae" + +#: js/blocks/HeapBlocks.js:371 +msgid "The Reverse-heap block reverses the order of the heap." msgstr "" -#: js/ProgramBlocks.js:640 -#.TRANS: save a dictionary to a file -msgid "save dictionary" +#: js/blocks/HeapBlocks.js:384 +#.TRANS: reverse the order of the heap +msgid "reverse heap" msgstr "" -#: js/ProgramBlocks.js:720 -msgid "The Open palette block opens a palette." +#: js/blocks/HeapBlocks.js:428 +msgid "The Index-heap block returns a value in the heap at a specified location." msgstr "" -#: js/ProgramBlocks.js:727 -msgid "open palette" +#: js/blocks/HeapBlocks.js:443 +#.TRANS: retrieve a value from the heap at index position in the heap +msgid "index heap" msgstr "" -#: js/ProgramBlocks.js:785 -msgid "The Delete block block removes a block." +#: js/blocks/HeapBlocks.js:523 +msgid "The Set-heap entry block sets a value in he heap at the specified location." msgstr "" -#: js/ProgramBlocks.js:797 -#.TRANS: Move this block to the trash. -msgid "delete block" +#: js/blocks/HeapBlocks.js:539 +#: js/blocks/ProgramBlocks.js:299 +#.TRANS: load the heap from a JSON encoding +msgid "set heap" msgstr "" -#: js/ProgramBlocks.js:861 -msgid "The Move block block moves a block." +#: js/blocks/HeapBlocks.js:619 +msgid "The Pop block removes the value at the top of the heap." msgstr "" -#: js/ProgramBlocks.js:869 -#.TRANS: Move the position of a block on the screen. -msgid "move block" +#: js/blocks/HeapBlocks.js:633 +#.TRANS: pop a value off the top of the heap +msgid "pop" +msgstr "pahū" + +#: js/blocks/HeapBlocks.js:680 +msgid "The Push block adds a value to the top of the heap." msgstr "" -#: js/ProgramBlocks.js:881 -#: js/ProgramBlocks.js:1048 -msgid "block number" +#: js/blocks/HeapBlocks.js:696 +#.TRANS: push a value onto the top of the heap +msgid "push" +msgstr "peia" + +#: js/blocks/IntervalsBlocks.js:45 +msgid "set temperament" msgstr "" -#: js/ProgramBlocks.js:935 -#.TRANS: Run program beginning at this block. -msgid "run block" +#: js/blocks/IntervalsBlocks.js:63 +#: js/blocks/MediaBlocks.js:746 +#: js/blocks/PitchBlocks.js:657 +#: js/blocks/PitchBlocks.js:935 +#: js/blocks/PitchBlocks.js:974 +#: js/blocks/PitchBlocks.js:1007 +#: js/blocks/PitchBlocks.js:1194 +#: js/blocks/PitchBlocks.js:1717 +#: js/blocks/PitchBlocks.js:1758 +#: js/blocks/PitchBlocks.js:1866 +#: js/blocks/ToneBlocks.js:1025 +#: js/turtleactions/IntervalsActions.js:114 +#.TRANS: adjusts the shift up or down by one octave (twelve half-steps in the interval between two notes, one having twice or half the frequency in Hz of the other.) +msgid "octave" msgstr "" -#: js/ProgramBlocks.js:1025 -msgid "The Dock block block connections two blocks." +#: js/blocks/IntervalsBlocks.js:99 +msgid "The Temperament name block is used to select a tuning method." msgstr "" -#: js/ProgramBlocks.js:1036 -#.TRANS: We can connect a block to another block. -msgid "connect blocks" +#: js/blocks/IntervalsBlocks.js:161 +msgid "doubly" msgstr "" -#: js/ProgramBlocks.js:1048 -msgid "target block" +#: js/blocks/IntervalsBlocks.js:166 +msgid "The Doubly block will double the size of an interval." msgstr "" -#: js/ProgramBlocks.js:1048 -msgid "connection number" +#: js/blocks/IntervalsBlocks.js:262 +msgid "interval number" msgstr "" -#: js/ProgramBlocks.js:1140 -msgid "The Make block block creates a new block." +#: js/blocks/IntervalsBlocks.js:317 +msgid "current interval" msgstr "" -#: js/ProgramBlocks.js:1152 -#.TRANS: Create a new block -msgid "make block" +#: js/blocks/IntervalsBlocks.js:387 +#.TRANS: measure the distance between two pitches in semi-tones +msgid "semi-tone interval measure" msgstr "" -#: js/ProgramBlocks.js:1186 -#: js/ProgramBlocks.js:1227 -#: js/RhythmBlocks.js:1128 -#: js/PitchBlocks.js:972 -#: js/PitchBlocks.js:1005 -#: js/temperament.js:340 -#: js/temperament.js:362 -#: js/temperament.js:372 -#: js/temperament.js:484 -#: js/status.js:190 -#: plugins/rodi.rtp:192 -#.TRANS: a musical note consisting of pitch and duration -msgid "note" +#: js/blocks/IntervalsBlocks.js:454 +#: js/blocks/IntervalsBlocks.js:570 +msgid "You must use two pitch blocks when measuring an interval." msgstr "" -#: js/ProgramBlocks.js:1285 -msgid "Cannot find block" +#: js/blocks/IntervalsBlocks.js:496 +msgid "The Scalar interval block measures the distance between two notes in the current key and mode." msgstr "" -#: js/ProgramBlocks.js:1304 -#: js/ProgramBlocks.js:1313 -msgid "Warning: block argument type mismatch" +#: js/blocks/IntervalsBlocks.js:502 +#.TRANS: measure the distance between two pitches in steps of musical scale +msgid "scalar interval measure" msgstr "" -#: js/ProgramBlocks.js:1347 -msgid "The Open project block is used to open a project from a web page." +#: js/blocks/IntervalsBlocks.js:678 +msgid "In the figure, we add sol# to sol." msgstr "" -#: js/ProgramBlocks.js:1357 -msgid "open project" +#: js/blocks/IntervalsBlocks.js:684 +#: js/blocks/OrnamentBlocks.js:220 +#.TRANS: calculate a relative step between notes based on semi-tones +msgid "semi-tone interval" msgstr "" -#: js/ProgramBlocks.js:1410 -msgid "Please enter a valid URL." +#: js/blocks/IntervalsBlocks.js:733 +msgid "The output of the example is: do, mi, sol, sol, ti, mi" msgstr "" -#: js/DrumBlocks.js:59 -msgid "The Noise name block is used to select a noise synthesizer." +#: js/blocks/IntervalsBlocks.js:740 +#: js/blocks/WidgetBlocks.js:768 +msgid "arpeggio" msgstr "" -#: js/DrumBlocks.js:102 -msgid "The Drum name block is used to select a drum." +#: js/blocks/IntervalsBlocks.js:931 +msgid "The Chord block calculates common chords." msgstr "" -#: js/DrumBlocks.js:146 -msgid "The Effects name block is used to select a sound effect." +#: js/blocks/IntervalsBlocks.js:933 +msgid "In the figure, we generate a C-major chord." msgstr "" -#: js/DrumBlocks.js:163 -msgid "noise" +#: js/blocks/IntervalsBlocks.js:938 +msgid "chord" msgstr "" -#: js/DrumBlocks.js:177 -msgid "The Play noise block will generate white, pink, or brown noise." +#: js/blocks/IntervalsBlocks.js:990 +msgid "The Ratio Interval block calculates an interval based on a ratio." msgstr "" -#: js/DrumBlocks.js:191 -#: js/musicutils.js:752 -#: js/synthutils.js:47 -#.TRANS: white noise synthesizer -msgid "white noise" +#: js/blocks/IntervalsBlocks.js:995 +msgid "ratio interval" msgstr "" -#: js/DrumBlocks.js:326 -msgid "Replace every instance of a pitch with a drum sound." +#: js/blocks/IntervalsBlocks.js:1064 +msgid "In the figure, we add la to sol." msgstr "" -#: js/DrumBlocks.js:337 -#.TRANS: map a pitch to a drum sound -msgid "map pitch to drum" +#: js/blocks/IntervalsBlocks.js:1120 +#.TRANS: define a custom mode +msgid "define mode" msgstr "" -#: js/DrumBlocks.js:404 -msgid "In the example above, a kick drum sound will be played instead of sol." +#: js/blocks/IntervalsBlocks.js:1173 +msgid "movable Do" msgstr "" -#: js/DrumBlocks.js:416 -#.TRANS: set the current drum sound for playback -msgid "set drum" +#: js/blocks/IntervalsBlocks.js:1224 +#.TRANS: mode length is the number of notes in the mode, e.g., 7 for major and minor scales; 12 for chromatic scales +msgid "mode length" msgstr "" -#: js/DrumBlocks.js:460 -msgid "sound effect" +#: js/blocks/IntervalsBlocks.js:1233 +msgid "The Mode length block is the number of notes in the current scale." msgstr "" -#: js/DrumBlocks.js:498 -msgid "You can use multiple Drum blocks within a Note block." +#: js/blocks/IntervalsBlocks.js:1235 +msgid "Most Western scales have 7 notes." msgstr "" -#: js/RhythmBlocks.js:182 -#: js/RhythmBlocks.js:1086 -#: js/RhythmBlocks.js:1162 -msgid "Note value must be greater than 0." +#: js/blocks/IntervalsBlocks.js:1284 +#.TRANS: the mode in music is 'major', 'minor', etc. +msgid "current mode" msgstr "" -#: js/RhythmBlocks.js:215 -#: js/RhythmBlocks.js:278 -#: js/RhythmBlocks.js:350 -#.TRANS: swing is a rhythmic variation that emphasises the offbeat -msgid "swing" +#: js/blocks/IntervalsBlocks.js:1337 +#.TRANS: the key is a group of pitches with which a music composition is created +msgid "current key" msgstr "" -#: js/RhythmBlocks.js:355 -#.TRANS: the amount to shift to the offbeat note -msgid "swing value" +#: js/blocks/IntervalsBlocks.js:1389 +#: js/blocks/IntervalsBlocks.js:1434 +#.TRANS: set the key and mode, e.g. C Major +msgid "set key" msgstr "" -#: js/RhythmBlocks.js:419 -msgid "The Skip notes block will cause notes to be skipped." +#: js/blocks/IntervalsBlocks.js:1443 +#: js/blocks/IntervalsBlocks.js:1449 +msgid "The Set key block is used to set the key and mode," msgstr "" -#: js/RhythmBlocks.js:427 -#.TRANS: substitute rests on notes being skipped -msgid "skip notes" +#: js/blocks/IntervalsBlocks.js:1449 +msgid "eg C Major" msgstr "" -#: js/RhythmBlocks.js:489 -#.TRANS: speed up note duration by some factor, e.g. convert 1/4 to 1/8 notes by using a factor of 2 -msgid "multiply note value" +#: js/blocks/MediaBlocks.js:35 +#.TRANS: right side of the screen +msgid "right (screen)" msgstr "" -#: js/RhythmBlocks.js:542 -msgid "The Tie block works on pairs of notes, combining them into one note." +#: js/blocks/MediaBlocks.js:45 +#: js/blocks/MediaBlocks.js:56 +msgid "The Right block returns the position of the right of the canvas." msgstr "" -#: js/RhythmBlocks.js:550 -#.TRANS: tie notes together into one longer note -msgid "tie" +#: js/blocks/MediaBlocks.js:97 +#.TRANS: left side of the screen +msgid "left (screen)" msgstr "" -#: js/RhythmBlocks.js:591 -#: js/RhythmBlocks.js:671 -#.TRANS: a dotted note is played for 1.5x its value, e.g., 1/8. --> 3/16 -msgid "dot" +#: js/blocks/MediaBlocks.js:107 +#: js/blocks/MediaBlocks.js:118 +msgid "The Left block returns the position of the left of the canvas." msgstr "" -#: js/RhythmBlocks.js:619 -#: js/RhythmActions.js:221 -msgid "An argument of -1 results in a note value of 0." +#: js/blocks/MediaBlocks.js:158 +msgid "top (screen)" msgstr "" -#: js/RhythmBlocks.js:661 -msgid "The Dot block extends the duration of a note by 50%." +#: js/blocks/MediaBlocks.js:168 +#: js/blocks/MediaBlocks.js:179 +msgid "The Top block returns the position of the top of the canvas." msgstr "" -#: js/RhythmBlocks.js:663 -msgid "Eg a dotted quarter note will play for 3/8 (1/4 + 1/8) of a beat." +#: js/blocks/MediaBlocks.js:219 +msgid "bottom (screen)" msgstr "" -#: js/RhythmBlocks.js:765 -#.TRANS: Japanese only: note value block for drum -msgid "note value drum" +#: js/blocks/MediaBlocks.js:229 +#: js/blocks/MediaBlocks.js:240 +msgid "The Bottom block returns the position of the bottom of the canvas." msgstr "" -#: js/RhythmBlocks.js:829 -msgid "392 hertz" +#: js/blocks/MediaBlocks.js:282 +msgid "width" msgstr "" -#: js/RhythmBlocks.js:1119 -msgid "The Note block is a container for one or more Pitch blocks." +#: js/blocks/MediaBlocks.js:291 +msgid "The Width block returns the width of the canvas." msgstr "" -#: js/RhythmBlocks.js:1121 -msgid "The Note block specifies the duration (note value) of its contents." +#: js/blocks/MediaBlocks.js:325 +msgid "height" msgstr "" -#: js/RhythmBlocks.js:1130 -msgid "value2" +#: js/blocks/MediaBlocks.js:334 +msgid "The Height block returns the height of the canvas." msgstr "" -#: js/RhythmBlocks.js:1200 -msgid "define frequency" +#: js/blocks/MediaBlocks.js:369 +#.TRANS: stops playback of an audio recording +msgid "stop play" msgstr "" -#: js/RhythmBlocks.js:1218 -#: js/temperament.js:650 -#: js/temperament.js:1421 -msgid "octave space" +#: js/blocks/MediaBlocks.js:404 +#.TRANS: Erases the images and text +msgid "erase media" msgstr "" -#: js/NumberBlocks.js:28 -msgid "The Int block returns an integer." +#: js/blocks/MediaBlocks.js:409 +msgid "The Erase Media block erases text and images." msgstr "" -#: js/NumberBlocks.js:34 -msgid "int" +#: js/blocks/MediaBlocks.js:439 +#.TRANS: play an audio recording +msgid "play back" msgstr "" -#: js/NumberBlocks.js:73 -msgid "The Mod block returns the remainder from a division." -msgstr "" +#: js/blocks/MediaBlocks.js:487 +msgid "speak" +msgstr "whakahua" -#: js/NumberBlocks.js:79 -msgid "mod" -msgstr "mod" +#: js/blocks/MediaBlocks.js:495 +msgid "The Speak block outputs to the text-to-speech synthesizer" +msgstr "" -#: js/NumberBlocks.js:123 -msgid "The Power block calculates a power function." +#: js/blocks/MediaBlocks.js:546 +msgid "camera" msgstr "" -#: js/NumberBlocks.js:178 -msgid "The Sqrt block returns the square root." +#: js/blocks/MediaBlocks.js:551 +msgid "The Camera block connects a webcam to the Show block." msgstr "" -#: js/NumberBlocks.js:184 -msgid "sqrt" +#: js/blocks/MediaBlocks.js:574 +msgid "video" msgstr "" -#: js/NumberBlocks.js:230 -msgid "The Abs block returns the absolute value." +#: js/blocks/MediaBlocks.js:579 +msgid "The Video block selects video for use with the Show block." msgstr "" -#: js/NumberBlocks.js:236 -msgid "abs" +#: js/blocks/MediaBlocks.js:607 +msgid "The Open file block opens a file for use with the Show block." msgstr "" -#: js/NumberBlocks.js:277 -msgid "The Distance block returns the distance between two points. For example, between the mouse and the center of the screen." +#: js/blocks/MediaBlocks.js:645 +msgid "stop media" msgstr "" -#: js/NumberBlocks.js:283 -#: plugins/rodi.rtp:310 -msgid "distance" +#: js/blocks/MediaBlocks.js:650 +msgid "The Stop media block stops audio or video playback." msgstr "" -#: js/NumberBlocks.js:343 -msgid "The Divide block is used to divide." +#: js/blocks/MediaBlocks.js:679 +#: js/blocks/PitchBlocks.js:1577 +#: js/widgets/musickeyboard.js:1936 +#: js/widgets/phrasemaker.js:1037 +#.TRANS: a measure of frequency: one cycle per second +msgid "hertz" msgstr "" -#: js/NumberBlocks.js:411 -msgid "The Multiply block is used to multiply." +#: js/blocks/MediaBlocks.js:692 +#: js/blocks/WidgetBlocks.js:182 +#: js/widgets/temperament.js:506 +#: js/widgets/temperament.js:546 +#: js/widgets/temperament.js:610 +#: js/widgets/temperament.js:618 +#: js/widgets/temperament.js:1505 +#: js/widgets/timbre.js:1842 +msgid "frequency" msgstr "" -#: js/NumberBlocks.js:554 -msgid "The Minus block is used to subtract." +#: js/blocks/MediaBlocks.js:692 +msgid "duration (ms)" msgstr "" -#: js/NumberBlocks.js:647 -msgid "The Plus block is used to add." +#: js/blocks/MediaBlocks.js:728 +#.TRANS: translate a note into hertz, e.g., A4 -> 440HZ +msgid "note to frequency" msgstr "" -#: js/NumberBlocks.js:773 -msgid "The One-of block returns one of two choices." +#: js/blocks/MediaBlocks.js:736 +msgid "The To frequency block converts a pitch name and octave to Hertz." msgstr "" -#: js/NumberBlocks.js:780 -#: js/PitchBlocks.js:616 -msgid "one of" +#: js/blocks/MediaBlocks.js:746 +#: js/blocks/PitchBlocks.js:656 +#: js/blocks/PitchBlocks.js:934 +#: js/blocks/PitchBlocks.js:1866 +#.TRANS: name2 is name as in name of pitch (JAPANESE ONLY) +msgid "name2" msgstr "" -#: js/NumberBlocks.js:782 -msgid "this" +#: js/blocks/MediaBlocks.js:812 +msgid "The Avatar block is used to change the appearance of the mouse." msgstr "" -#: js/NumberBlocks.js:782 -msgid "that" +#: js/blocks/MediaBlocks.js:819 +msgid "The Avatar block is used to change the appearance of the turtle." msgstr "" -#: js/NumberBlocks.js:837 -msgid "The Random block returns a random number." +#: js/blocks/MediaBlocks.js:831 +#: js/blocks/MediaBlocks.js:891 +#.TRANS: a media object +msgid "size" msgstr "" -#: js/NumberBlocks.js:844 -msgid "random" -msgstr "tupurangi" +#: js/blocks/MediaBlocks.js:831 +msgid "image" +msgstr "atahanga" -#: js/NumberBlocks.js:846 -msgid "min" -msgstr "mōkito" +#: js/blocks/MediaBlocks.js:880 +msgid "The Show block is used to display text or images on the canvas." +msgstr "" -#: js/NumberBlocks.js:846 -msgid "max" -msgstr "mōrahi" +#: js/blocks/MediaBlocks.js:888 +#.TRANS: show1 is show as in display an image or text on the screen. +msgid "show1" +msgstr "" -#: js/NumberBlocks.js:910 -msgid "The Number block holds a number." +#: js/blocks/MediaBlocks.js:891 +msgid "obj" msgstr "" -#: js/BoxesBlocks.js:53 -#: js/BoxesBlocks.js:59 -msgid "The Add-to block is used to add to the value stored in a box." +#: js/blocks/MediaBlocks.js:938 +msgid "The Media block is used to import an image." msgstr "" -#: js/BoxesBlocks.js:61 -msgid "It can also be used with other blocks such as Color and Pen size." +#: js/blocks/MediaBlocks.js:973 +msgid "The Text block holds a text string." msgstr "" -#: js/BoxesBlocks.js:73 -msgid "add" +#: js/blocks/MeterBlocks.js:34 +#.TRANS: musical meter (time signature), e.g., 4:4 +msgid "current meter" msgstr "" -#: js/BoxesBlocks.js:75 -#: js/temperament.js:716 -msgid "to" +#: js/blocks/MeterBlocks.js:85 +#.TRANS: number of beats per minute +msgid "beat factor" msgstr "" -#: js/BoxesBlocks.js:75 -#: js/BoxesBlocks.js:595 -#: js/HeapBlocks.js:544 -msgid "value1" +#: js/blocks/MeterBlocks.js:161 +msgid "The Beats per minute block returns the current beats per minute." msgstr "" -#: js/BoxesBlocks.js:118 -msgid "Block does not support incrementing." +#: js/blocks/MeterBlocks.js:169 +#: js/widgets/status.js:152 +#.TRANS: number of beats played per minute +msgid "beats per minute2" msgstr "" -#: js/BoxesBlocks.js:152 -msgid "The Add-1-to block adds one to the value stored in a box." +#: js/blocks/MeterBlocks.js:169 +#: js/blocks/MeterBlocks.js:1056 +#: js/blocks/MeterBlocks.js:1133 +#: js/blocks/MeterBlocks.js:1211 +#.TRANS: sets tempo by defining a beat and beats per minute +msgid "beats per minute" msgstr "" -#: js/BoxesBlocks.js:163 -msgid "add 1 to" +#: js/blocks/MeterBlocks.js:233 +#.TRANS: count of current musical measure in meter +msgid "measure count" msgstr "" -#: js/BoxesBlocks.js:211 -msgid "The Subtract-1-from block subtracts one from the value stored in a box." +#: js/blocks/MeterBlocks.js:241 +msgid "The Measure count block returns the current measure." msgstr "" -#: js/BoxesBlocks.js:222 -msgid "subtract 1 from" +#: js/blocks/MeterBlocks.js:290 +#.TRANS: count of current beat in the meter +msgid "beat count" msgstr "" -#: js/BoxesBlocks.js:270 -#: js/BoxesBlocks.js:387 -msgid "The Box block returns the value stored in a box." +#: js/blocks/MeterBlocks.js:300 +#: js/blocks/MeterBlocks.js:311 +#: js/blocks/MeterBlocks.js:565 +#: js/blocks/MeterBlocks.js:576 +msgid "The Beat count block is the number of the current beat," msgstr "" -#: js/BoxesBlocks.js:500 -#: js/BoxesBlocks.js:576 -msgid "The Store in block will store a value in a box." +#: js/blocks/MeterBlocks.js:313 +#: js/blocks/MeterBlocks.js:578 +msgid "eg 1, 2, 3, or 4." msgstr "" -#: js/BoxesBlocks.js:652 -msgid "The Box2 block returns the value stored in Box2." +#: js/blocks/MeterBlocks.js:368 +#.TRANS: count the number of notes +msgid "sum note values" msgstr "" -#: js/BoxesBlocks.js:703 -msgid "The Store in Box2 block is used to store a value in Box2." +#: js/blocks/MeterBlocks.js:376 +#: js/blocks/MeterBlocks.js:440 +msgid "The Note counter block can be used to count the number of contained notes." msgstr "" -#: js/BoxesBlocks.js:715 -msgid "store in box2" +#: js/blocks/MeterBlocks.js:432 +#.TRANS: count the number of notes +msgid "note counter" msgstr "" -#: js/BoxesBlocks.js:761 -msgid "The Box1 block returns the value stored in Box1." +#: js/blocks/MeterBlocks.js:496 +#.TRANS: number of whole notes that have been played +msgid "whole notes played" msgstr "" -#: js/BoxesBlocks.js:812 -msgid "The Store in Box1 block is used to store a value in Box1." +#: js/blocks/MeterBlocks.js:505 +msgid "The Whole notes played block returns the total number of whole notes played." msgstr "" -#: js/BoxesBlocks.js:826 -msgid "store in box1" +#: js/blocks/MeterBlocks.js:555 +#: js/turtleactions/DictActions.js:83 +#.TRANS: number of notes that have been played +msgid "notes played" msgstr "" -#: js/HeapBlocks.js:49 -msgid "The Heap block returns the heap." +#: js/blocks/MeterBlocks.js:653 +msgid "The No clock block decouples the notes from the master clock." msgstr "" -#: js/HeapBlocks.js:133 -msgid "show heap" -msgstr "whakaatu tāpae" +#: js/blocks/MeterBlocks.js:661 +#.TRANS: don't lock notes to master clock +msgid "no clock" +msgstr "" -#: js/HeapBlocks.js:181 -msgid "The Heap-length block returns the length of the heap." +#: js/blocks/MeterBlocks.js:700 +msgid "on weak beat do" msgstr "" -#: js/HeapBlocks.js:195 -msgid "heap length" +#: js/blocks/MeterBlocks.js:705 +msgid "The On-weak-beat block lets you specify actions to take on weak (off) beats." msgstr "" -#: js/HeapBlocks.js:254 -msgid "The Heap-empty? block returns true if the heap is empty." +#: js/blocks/MeterBlocks.js:750 +msgid "on strong beat" msgstr "" -#: js/HeapBlocks.js:268 -#.TRANS: Is the heap empty? -msgid "heap empty?" +#: js/blocks/MeterBlocks.js:758 +msgid "The On-strong-beat block lets you specify actions to take on specified beats." msgstr "" -#: js/HeapBlocks.js:317 -msgid "The Empty-heap block empties the heap." +#: js/blocks/MeterBlocks.js:769 +msgid "beat" msgstr "" -#: js/HeapBlocks.js:327 -#: js/HeapBlocks.js:647 -#.TRANS: empty the heap -msgid "empty heap" -msgstr "putu tāpae" +#: js/blocks/MeterBlocks.js:813 +msgid "on every beat do" +msgstr "" -#: js/HeapBlocks.js:371 -msgid "The Reverse-heap block reverses the order of the heap." +#: js/blocks/MeterBlocks.js:821 +msgid "The On-every-beat block lets you specify actions to take on every beat." msgstr "" -#: js/HeapBlocks.js:384 -#.TRANS: reverse the order of the heap -msgid "reverse heap" +#: js/blocks/MeterBlocks.js:874 +msgid "on every note do" msgstr "" -#: js/HeapBlocks.js:428 -msgid "The Index-heap block returns a value in the heap at a specified location." +#: js/blocks/MeterBlocks.js:882 +msgid "The On-every-note block lets you specify actions to take on every note." msgstr "" -#: js/HeapBlocks.js:443 -#.TRANS: retrieve a value from the heap at index position in the heap -msgid "index heap" +#: js/blocks/MeterBlocks.js:928 +#: js/blocks/MeterBlocks.js:999 +#.TRANS: sets tempo by defining a beat and beats per minute +msgid "master beats per minute" msgstr "" -#: js/HeapBlocks.js:523 -msgid "The Set-heap entry block sets a value in he heap at the specified location." +#: js/blocks/MeterBlocks.js:952 +#: js/blocks/MeterBlocks.js:1078 +#: js/blocks/MeterBlocks.js:1135 +msgid "bpm" msgstr "" -#: js/HeapBlocks.js:619 -msgid "The Pop block removes the value at the top of the heap." +#: js/blocks/MeterBlocks.js:952 +#: js/blocks/MeterBlocks.js:1078 +#: js/blocks/MeterBlocks.js:1135 +msgid "beat value" msgstr "" -#: js/HeapBlocks.js:633 -#.TRANS: pop a value off the top of the heap -msgid "pop" -msgstr "pahū" +#: js/blocks/MeterBlocks.js:1024 +#: js/blocks/MeterBlocks.js:1167 +#: js/blocks/MeterBlocks.js:1241 +msgid "Beats per minute must be > 30." +msgstr "" -#: js/HeapBlocks.js:680 -msgid "The Push block adds a value to the top of the heap." +#: js/blocks/MeterBlocks.js:1027 +#: js/blocks/MeterBlocks.js:1170 +#: js/blocks/MeterBlocks.js:1244 +msgid "Maximum beats per minute is 1000." msgstr "" -#: js/HeapBlocks.js:696 -#.TRANS: push a value onto the top of the heap -msgid "push" -msgstr "peia" +#: js/blocks/MeterBlocks.js:1068 +msgid "The Beats per minute block sets the number of 1/4 notes per minute." +msgstr "" -#: js/FlowBlocks.js:41 -msgid "The Backward block runs code in reverse order (Musical retrograde)." +#: js/blocks/MeterBlocks.js:1279 +#.TRANS: anacrusis +msgid "pickup" msgstr "" -#: js/FlowBlocks.js:48 -msgid "backward" +#: js/blocks/MeterBlocks.js:1367 +msgid "number of beats" msgstr "" -#: js/FlowBlocks.js:124 -msgid "The Duplicate block will run each block multiple times." +#: js/blocks/NumberBlocks.js:28 +msgid "The Int block returns an integer." msgstr "" -#: js/FlowBlocks.js:136 -msgid "duplicate" +#: js/blocks/NumberBlocks.js:34 +msgid "int" msgstr "" -#: js/FlowBlocks.js:334 -msgid "The Default block is used inside of a Switch to define the default action." +#: js/blocks/NumberBlocks.js:73 +msgid "The Mod block returns the remainder from a division." +msgstr "" + +#: js/blocks/NumberBlocks.js:79 +msgid "mod" +msgstr "mod" + +#: js/blocks/NumberBlocks.js:141 +msgid "The Power block calculates a power function." msgstr "" -#: js/FlowBlocks.js:342 -msgid "default" +#: js/blocks/NumberBlocks.js:196 +msgid "The Sqrt block returns the square root." msgstr "" -#: js/FlowBlocks.js:361 -#: js/FlowBlocks.js:418 -msgid "The Case Block must be used inside of a Switch Block." +#: js/blocks/NumberBlocks.js:202 +msgid "sqrt" msgstr "" -#: js/FlowBlocks.js:389 -msgid "The Case block is used inside of a Switch to define matches." +#: js/blocks/NumberBlocks.js:248 +msgid "The Abs block returns the absolute value." msgstr "" -#: js/FlowBlocks.js:397 -msgid "case" +#: js/blocks/NumberBlocks.js:254 +msgid "abs" msgstr "" -#: js/FlowBlocks.js:446 -msgid "The Switch block will run the code in the matching Case." +#: js/blocks/NumberBlocks.js:295 +msgid "The Distance block returns the distance between two points. For example, between the mouse and the center of the screen." msgstr "" -#: js/FlowBlocks.js:454 -msgid "switch" +#: js/blocks/NumberBlocks.js:301 +#: plugins/rodi.rtp:310 +msgid "distance" msgstr "" -#: js/FlowBlocks.js:595 -msgid "The Stop block will stop a loop" +#: js/blocks/NumberBlocks.js:361 +msgid "The Divide block is used to divide." msgstr "" -#: js/FlowBlocks.js:597 -msgid "Forever, Repeat, While, or Until." +#: js/blocks/NumberBlocks.js:441 +msgid "The Multiply block is used to multiply." msgstr "" -#: js/FlowBlocks.js:604 -#: js/phrasemaker.js:3799 -#: js/musickeyboard.js:629 -#: js/musickeyboard.js:631 -#: js/timbre.js:417 -#: js/timbre.js:419 -#: plugins/rodi.rtp:29 -#: plugins/rodi.rtp:73 -#: plugins/rodi.rtp:413 -msgid "stop" -msgstr "tū" - -#: js/FlowBlocks.js:653 -msgid "The Waitfor block will wait until the condition is true." +#: js/blocks/NumberBlocks.js:612 +msgid "The Minus block is used to subtract." msgstr "" -#: js/FlowBlocks.js:661 -msgid "wait for" +#: js/blocks/NumberBlocks.js:723 +msgid "The Plus block is used to add." msgstr "" -#: js/FlowBlocks.js:732 -msgid "The Until block will repeat until the condition is true." +#: js/blocks/NumberBlocks.js:849 +msgid "The One-of block returns one of two choices." msgstr "" -#: js/FlowBlocks.js:740 -msgid "until" -msgstr "hei te" - -#: js/FlowBlocks.js:742 -#: js/FlowBlocks.js:822 -msgid "do2" +#: js/blocks/NumberBlocks.js:856 +#: js/blocks/PitchBlocks.js:616 +msgid "one of" msgstr "" -#: js/FlowBlocks.js:812 -msgid "The While block will repeat while the condition is true." +#: js/blocks/NumberBlocks.js:858 +msgid "this" msgstr "" -#: js/FlowBlocks.js:820 -msgid "while" -msgstr "i te wā" +#: js/blocks/NumberBlocks.js:858 +msgid "that" +msgstr "" -#: js/FlowBlocks.js:903 -#: js/FlowBlocks.js:968 -#: js/FlowBlocks.js:979 -msgid "In this example if the mouse button is pressed a snare drum will play." +#: js/blocks/NumberBlocks.js:913 +msgid "The Random block returns a random number." msgstr "" -#: js/FlowBlocks.js:925 -#: js/FlowBlocks.js:988 -msgid "if" -msgstr "mēnā" +#: js/blocks/NumberBlocks.js:920 +msgid "random" +msgstr "tupurangi" -#: js/FlowBlocks.js:927 -#: js/FlowBlocks.js:990 -msgid "then" -msgstr "kātahi ka" +#: js/blocks/NumberBlocks.js:922 +msgid "min" +msgstr "mōkito" -#: js/FlowBlocks.js:927 -msgid "else" -msgstr "kē atu" +#: js/blocks/NumberBlocks.js:922 +msgid "max" +msgstr "mōrahi" -#: js/FlowBlocks.js:1025 -msgid "The Forever block will repeat the contained blocks forever." +#: js/blocks/NumberBlocks.js:986 +msgid "The Number block holds a number." msgstr "" -#: js/FlowBlocks.js:1037 -msgid "forever" -msgstr "mō ake tonu" - -#: js/FlowBlocks.js:1073 -msgid "The Repeat block will repeat the contained blocks." +#: js/blocks/OrnamentBlocks.js:32 +msgid "staccato factor" msgstr "" -#: js/FlowBlocks.js:1075 -msgid "In this example the note will be played 4 times." +#: js/blocks/OrnamentBlocks.js:108 +msgid "slur factor" msgstr "" -#: js/FlowBlocks.js:1083 -msgid "repeat" -msgstr "tārua" - -#: js/FlowBlocks.js:1123 -msgid "duplicate factor" +#: js/blocks/OrnamentBlocks.js:217 +#: js/blocks/OrnamentBlocks.js:309 +#.TRANS: the neighbor refers to a neighboring note, e.g., D is a neighbor of C +msgid "neighbor" msgstr "" -#: js/PitchBlocks.js:39 -#: js/musicutils.js:722 -#: js/musicutils.js:1117 -#: js/synthutils.js:112 -#.TRANS: square wave -msgid "square" +#: js/blocks/OrnamentBlocks.js:293 +msgid "The Neighbor block rapidly switches between neighboring pitches." msgstr "" -#: js/PitchBlocks.js:62 -#: js/ToneBlocks.js:39 -#: js/musicutils.js:723 -#: js/musicutils.js:1118 -#: js/synthutils.js:116 -#.TRANS: triangle wave -msgid "triangle" +#: js/blocks/OrnamentBlocks.js:364 +msgid "glide" msgstr "" -#: js/PitchBlocks.js:85 -#: js/musicutils.js:721 -#: js/musicutils.js:1116 -#: js/synthutils.js:110 -#.TRANS: sine wave -msgid "sine" +#: js/blocks/OrnamentBlocks.js:479 +#: js/blocks/OrnamentBlocks.js:643 +msgid "slur" msgstr "" -#: js/PitchBlocks.js:108 -#: js/musicutils.js:724 -#: js/musicutils.js:1119 -#: js/synthutils.js:114 -#.TRANS: sawtooth wave -msgid "sawtooth" +#: js/blocks/OrnamentBlocks.js:558 +#: js/blocks/OrnamentBlocks.js:710 +#.TRANS: play each note sharply detached from the others +msgid "staccato" msgstr "" -#: js/PitchBlocks.js:141 -#.TRANS: musical transposition (adjustment of pitch up or down) -msgid "transposition" +#: js/blocks/RhythmBlocks.js:182 +#: js/blocks/RhythmBlocks.js:1086 +#: js/blocks/RhythmBlocks.js:1162 +msgid "Note value must be greater than 0." msgstr "" -#: js/PitchBlocks.js:168 -#.TRANS: step down one note in current musical scale -msgid "scalar step down" +#: js/blocks/RhythmBlocks.js:215 +#: js/blocks/RhythmBlocks.js:278 +#: js/blocks/RhythmBlocks.js:350 +#.TRANS: swing is a rhythmic variation that emphasises the offbeat +msgid "swing" msgstr "" -#: js/PitchBlocks.js:172 -msgid "The Scalar step down block returns the number of semi-tones down to the previous note in the current key and mode." +#: js/blocks/RhythmBlocks.js:355 +#.TRANS: the amount to shift to the offbeat note +msgid "swing value" msgstr "" -#: js/PitchBlocks.js:190 -#.TRANS: step up one note in current musical scale -msgid "scalar step up" +#: js/blocks/RhythmBlocks.js:419 +msgid "The Skip notes block will cause notes to be skipped." msgstr "" -#: js/PitchBlocks.js:194 -msgid "The Scalar step up block returns the number of semi-tones up to the next note in the current key and mode." +#: js/blocks/RhythmBlocks.js:427 +#.TRANS: substitute rests on notes being skipped +msgid "skip notes" msgstr "" -#: js/PitchBlocks.js:212 -#.TRANS: the change measured in half-steps between the current pitch and the previous pitch -msgid "change in pitch" +#: js/blocks/RhythmBlocks.js:489 +#.TRANS: speed up note duration by some factor, e.g. convert 1/4 to 1/8 notes by using a factor of 2 +msgid "multiply note value" msgstr "" -#: js/PitchBlocks.js:216 -msgid "The Change in pitch block is the difference (in half steps) between the current pitch being played and the previous pitch played." +#: js/blocks/RhythmBlocks.js:542 +msgid "The Tie block works on pairs of notes, combining them into one note." msgstr "" -#: js/PitchBlocks.js:243 -#.TRANS: the change measured in scale-steps between the current pitch and the previous pitch -msgid "scalar change in pitch" +#: js/blocks/RhythmBlocks.js:550 +#.TRANS: tie notes together into one longer note +msgid "tie" msgstr "" -#: js/PitchBlocks.js:250 -#: js/PitchBlocks.js:432 -#: js/PitchBlocks.js:1629 -#: js/DictActions.js:89 -#: js/temperament.js:477 -#: js/temperament.js:481 -#: js/temperament.js:714 -#.TRANS: convert current note to piano key (1-88) -#.TRANS: a mapping of pitch to the 88 piano keys -msgid "pitch number" +#: js/blocks/RhythmBlocks.js:591 +#: js/blocks/RhythmBlocks.js:671 +#.TRANS: a dotted note is played for 1.5x its value, e.g., 1/8. --> 3/16 +msgid "dot" msgstr "" -#: js/PitchBlocks.js:256 -msgid "The Pitch number block is the value of the pitch of the note currently being played." +#: js/blocks/RhythmBlocks.js:619 +#: js/turtleactions/RhythmActions.js:221 +msgid "An argument of -1 results in a note value of 0." msgstr "" -#: js/PitchBlocks.js:329 -#: js/PitchBlocks.js:433 -#.TRANS: the current pitch expressed in Hertz -msgid "pitch in hertz" +#: js/blocks/RhythmBlocks.js:661 +msgid "The Dot block extends the duration of a note by 50%." msgstr "" -#: js/PitchBlocks.js:334 -msgid "The Pitch in Hertz block is the value in Hertz of the pitch of the note currently being played." +#: js/blocks/RhythmBlocks.js:663 +msgid "Eg a dotted quarter note will play for 3/8 (1/4 + 1/8) of a beat." msgstr "" -#: js/PitchBlocks.js:367 -#: js/DictActions.js:87 -msgid "current pitch" +#: js/blocks/RhythmBlocks.js:765 +#.TRANS: Japanese only: note value block for drum +msgid "note value drum" msgstr "" -#: js/PitchBlocks.js:373 -msgid "The Current Pitch block is used with the Pitch Converter block. In the example above, current pitch, sol 4, is displayed as 392 hertz." +#: js/blocks/RhythmBlocks.js:829 +msgid "392 hertz" msgstr "" -#: js/PitchBlocks.js:410 -msgid "This block converts the pitch value of the last note played into different formats such as hertz, letter name, pitch number, et al." +#: js/blocks/RhythmBlocks.js:1119 +msgid "The Note block is a container for one or more Pitch blocks." msgstr "" -#: js/PitchBlocks.js:434 -msgid "alphabet" +#: js/blocks/RhythmBlocks.js:1121 +msgid "The Note block specifies the duration (note value) of its contents." msgstr "" -#: js/PitchBlocks.js:436 -#.TRANS: Translate as "alphabet class" -msgid "letter class" +#: js/blocks/RhythmBlocks.js:1128 +#: js/blocks/PitchBlocks.js:974 +#: js/blocks/PitchBlocks.js:1007 +#: js/blocks/ProgramBlocks.js:1186 +#: js/blocks/ProgramBlocks.js:1227 +#: js/widgets/status.js:190 +#: js/widgets/temperament.js:464 +#: js/widgets/temperament.js:486 +#: js/widgets/temperament.js:496 +#: js/widgets/temperament.js:617 +#: plugins/rodi.rtp:192 +#.TRANS: a musical note consisting of pitch and duration +msgid "note" msgstr "" -#: js/PitchBlocks.js:437 -msgid "solfege class" +#: js/blocks/RhythmBlocks.js:1130 +msgid "value2" msgstr "" -#: js/PitchBlocks.js:438 -msgid "staff y" +#: js/blocks/RhythmBlocks.js:1200 +msgid "define frequency" msgstr "" -#: js/PitchBlocks.js:439 -msgid "solfege syllable" +#: js/blocks/RhythmBlocks.js:1218 +#: js/widgets/temperament.js:787 +#: js/widgets/temperament.js:1587 +msgid "octave space" msgstr "" -#: js/PitchBlocks.js:440 -msgid "pitch class" +#: js/blocks/SensorsBlocks.js:36 +msgid "The Input block prompts for keyboard input." msgstr "" -#: js/PitchBlocks.js:441 -msgid "scalar class" +#: js/blocks/SensorsBlocks.js:46 +msgid "input" msgstr "" -#: js/PitchBlocks.js:443 -msgid "nth degree" +#: js/blocks/SensorsBlocks.js:64 +msgid "Input a value" msgstr "" -#: js/PitchBlocks.js:444 -msgid "pitch to shade" +#: js/blocks/SensorsBlocks.js:126 +msgid "input value" msgstr "" -#: js/PitchBlocks.js:445 -msgid "pitch to color" +#: js/blocks/SensorsBlocks.js:131 +msgid "The Input-value block stores the input." msgstr "" -#: js/PitchBlocks.js:629 -#: js/musickeyboard.js:565 -#.TRANS: MIDI is a technical standard for electronic music -msgid "MIDI" -msgstr "" +#: js/blocks/SensorsBlocks.js:238 +msgid "loudness" +msgstr "hoihoi" -#: js/PitchBlocks.js:642 -#.TRANS: set an offset associated with the numeric piano keyboard mapping -msgid "set pitch number offset" +#: js/blocks/SensorsBlocks.js:245 +msgid "The Loudness block returns the volume detected by the microphone." msgstr "" -#: js/PitchBlocks.js:645 -msgid "The Set pitch number offset block is used to set the offset for mapping pitch numbers to pitch and octave." +#: js/blocks/SensorsBlocks.js:300 +msgid "click" msgstr "" -#: js/PitchBlocks.js:679 -#.TRANS: convert piano key number (1-88) to pitch -msgid "number to pitch" +#: js/blocks/SensorsBlocks.js:306 +msgid "The Click block triggers an event if a mouse has been clicked." msgstr "" -#: js/PitchBlocks.js:682 -msgid "The Number to pitch block will convert a pitch number to a pich name." +#: js/blocks/SensorsBlocks.js:313 +msgid "The Click block triggers an event if a turtle has been clicked." msgstr "" -#: js/PitchBlocks.js:715 -#.TRANS: convert piano key number (1-88) to octave -msgid "number to octave" +#: js/blocks/SensorsBlocks.js:342 +msgid "cursor over" msgstr "" -#: js/PitchBlocks.js:717 -msgid "The Number to octave block will convert a pitch number to an octave." +#: js/blocks/SensorsBlocks.js:387 +msgid "cursor out" msgstr "" -#: js/PitchBlocks.js:726 -msgid "y to pitch" +#: js/blocks/SensorsBlocks.js:433 +msgid "cursor button down" msgstr "" -#: js/PitchBlocks.js:729 -msgid "Y to pitch block will convert a staff y position to corresponding pitch notation." +#: js/blocks/SensorsBlocks.js:477 +msgid "cursor button up" msgstr "" -#: js/PitchBlocks.js:841 -msgid "accidental selector" +#: js/blocks/SensorsBlocks.js:521 +#: js/blocks/PenBlocks.js:48 +#: plugins/rodi.rtp:219 +msgid "blue" msgstr "" -#: js/PitchBlocks.js:844 -msgid "The Accidental selector block is used to choose between double-sharp, sharp, natural, flat, and double-flat." +#: js/blocks/SensorsBlocks.js:577 +#: js/blocks/PenBlocks.js:64 +#: plugins/rodi.rtp:218 +msgid "green" msgstr "" -#: js/PitchBlocks.js:858 -msgid "Pitch can be specified in terms of ni dha pa ma ga re sa." +#: js/blocks/SensorsBlocks.js:633 +#: js/blocks/PenBlocks.js:112 +#: plugins/rodi.rtp:217 +msgid "red" msgstr "" -#: js/PitchBlocks.js:872 -msgid "Pitch can be specified in terms of C D E F G A B." +#: js/blocks/SensorsBlocks.js:638 +msgid "The Get red block returns the red component of the pixel under the mouse." msgstr "" -#: js/PitchBlocks.js:883 -msgid "solfege" +#: js/blocks/SensorsBlocks.js:644 +msgid "The Get red block returns the red component of the pixel under the turtle." msgstr "" -#: js/PitchBlocks.js:886 -msgid "Pitch can be specified in terms of do re mi fa sol la ti." +#: js/blocks/SensorsBlocks.js:685 +#: plugins/rodi.rtp:216 +msgid "pixel color" msgstr "" -#: js/PitchBlocks.js:920 -msgid "The Invert block rotates any contained notes around a target note." +#: js/blocks/SensorsBlocks.js:690 +msgid "The Get pixel block returns the color of the pixel under the mouse." msgstr "" -#: js/PitchBlocks.js:927 -#.TRANS: pitch inversion rotates a pitch around another pitch -msgid "invert" +#: js/blocks/SensorsBlocks.js:696 +msgid "The Get pixel block returns the color of the pixel under the turtle." msgstr "" -#: js/PitchBlocks.js:929 -#: js/PitchBlocks.js:935 -#: js/PitchActions.js:727 -#: js/musicutils.js:726 -#: js/musicutils.js:902 -#.TRANS: invert based on even or odd number or musical scale -#.TRANS: even numbers -msgid "even" -msgstr "" +#: js/blocks/SensorsBlocks.js:758 +msgid "time" +msgstr "wā" -#: js/PitchBlocks.js:935 -#: js/PitchActions.js:729 -#: js/musicutils.js:728 -#: js/musicutils.js:903 -#.TRANS: odd numbers -msgid "odd" +#: js/blocks/SensorsBlocks.js:804 +msgid "cursor y" msgstr "" -#: js/PitchBlocks.js:935 -#: js/PitchActions.js:731 -#: js/musicutils.js:729 -#: js/musicutils.js:904 -msgid "scalar" +#: js/blocks/SensorsBlocks.js:809 +msgid "The Cursor Y block returns the vertical position of the mouse." msgstr "" -#: js/PitchBlocks.js:966 -#.TRANS: pitch inversion rotates a pitch around another pitch (odd number) -msgid "invert (odd)" +#: js/blocks/SensorsBlocks.js:845 +msgid "cursor x" msgstr "" -#: js/PitchBlocks.js:999 -#.TRANS: pitch inversion rotates a pitch around another pitch (even number) -msgid "invert (even)" +#: js/blocks/SensorsBlocks.js:850 +msgid "The Cursor X block returns the horizontal position of the mouse." msgstr "" -#: js/PitchBlocks.js:1020 -#.TRANS: register is the octave of the current pitch -msgid "register" +#: js/blocks/SensorsBlocks.js:886 +msgid "mouse button" msgstr "" -#: js/PitchBlocks.js:1024 -msgid "The Register block provides an easy way to modify the register (octave) of the notes that follow it." +#: js/blocks/SensorsBlocks.js:888 +msgid "The Mouse-button block returns True if the mouse button is pressed." msgstr "" -#: js/PitchBlocks.js:1074 -msgid "The Semi-tone transposition block will shift the pitches contained inside Note blocks up (or down) by half steps." +#: js/blocks/SensorsBlocks.js:934 +msgid "to ASCII" msgstr "" -#: js/PitchBlocks.js:1076 -msgid "In the example shown above, sol is shifted up to sol#." +#: js/blocks/SensorsBlocks.js:938 +msgid "The To ASCII block converts numbers to letters." msgstr "" -#: js/PitchBlocks.js:1082 -#.TRANS: adjust the amount of shift (up or down) of a pitch -msgid "semi-tone transpose" +#: js/blocks/SensorsBlocks.js:1005 +msgid "The Keyboard block returns computer keyboard input." msgstr "" -#: js/PitchBlocks.js:1115 -msgid "The Transpose by Ratio block will shift the pitches contained inside Note blocks up (or down) by a ratio" +#: js/blocks/RhythmBlockPaletteBlocks.js:50 +#: js/blocks/RhythmBlockPaletteBlocks.js:233 +#.TRANS: rhythm block +#.TRANS: translate "rhythm1" as rhythm +msgid "rhythm1" msgstr "" -#: js/PitchBlocks.js:1121 -#.TRANS: adjust the amount of shift (up or down) of a pitch -msgid "transpose by ratio" +#: js/blocks/RhythmBlockPaletteBlocks.js:70 +#: js/blocks/RhythmBlockPaletteBlocks.js:252 +#: js/blocks/RhythmBlockPaletteBlocks.js:485 +#: js/blocks/RhythmBlockPaletteBlocks.js:554 +#: js/blocks/RhythmBlockPaletteBlocks.js:875 +msgid "number of notes" msgstr "" -#: js/PitchBlocks.js:1204 -#.TRANS: down sixth means the note is five scale degrees below current note -msgid "down sixth" +#: js/blocks/RhythmBlockPaletteBlocks.js:126 +msgid "polyphonic rhythm" msgstr "" -#: js/PitchBlocks.js:1223 -#.TRANS: down third means the note is two scale degrees below current note -msgid "down third" +#: js/blocks/RhythmBlockPaletteBlocks.js:219 +msgid "The Rhythm block is used to generate rhythm patterns." msgstr "" -#: js/PitchBlocks.js:1242 -#.TRANS: seventh means the note is the six scale degrees above current note -msgid "seventh" +#: js/blocks/RhythmBlockPaletteBlocks.js:280 +msgid "1/64 note" msgstr "" -#: js/PitchBlocks.js:1261 -#.TRANS: sixth means the note is the five scale degrees above current note -msgid "sixth" +#: js/blocks/RhythmBlockPaletteBlocks.js:304 +msgid "1/32 note" msgstr "" -#: js/PitchBlocks.js:1280 -#.TRANS: fifth means the note is the four scale degrees above current note -msgid "fifth" +#: js/blocks/RhythmBlockPaletteBlocks.js:332 +msgid "1/16 note" msgstr "" -#: js/PitchBlocks.js:1300 -#.TRANS: fourth means the note is three scale degrees above current note -msgid "fourth" +#: js/blocks/RhythmBlockPaletteBlocks.js:360 +msgid "eighth note" msgstr "" -#: js/PitchBlocks.js:1319 -#.TRANS: third means the note is two scale degrees above current note -msgid "third" +#: js/blocks/RhythmBlockPaletteBlocks.js:388 +msgid "quarter note" msgstr "" -#: js/PitchBlocks.js:1338 -#.TRANS: second means the note is one scale degree above current note -msgid "second" +#: js/blocks/RhythmBlockPaletteBlocks.js:416 +msgid "half note" msgstr "" -#: js/PitchBlocks.js:1379 -msgid "The Scalar transposition block will shift the pitches contained inside Note blocks up (or down) the scale." +#: js/blocks/RhythmBlockPaletteBlocks.js:444 +msgid "whole note" msgstr "" -#: js/PitchBlocks.js:1381 -msgid "In the example shown above, sol is shifted up to la." +#: js/blocks/RhythmBlockPaletteBlocks.js:482 +#: js/blocks/RhythmBlockPaletteBlocks.js:551 +#: js/blocks/RhythmBlockPaletteBlocks.js:602 +#.TRANS: A tuplet is a note value divided into irregular time values. +msgid "tuplet" msgstr "" -#: js/PitchBlocks.js:1388 -#.TRANS: adjust the amount of shift (up or down) of a pitch by musical scale (scalar) steps -msgid "scalar transpose" +#: js/blocks/RhythmBlockPaletteBlocks.js:768 +msgid "septuplet" msgstr "" -#: js/PitchBlocks.js:1423 -msgid "The Accidental block is used to create sharps and flats" +#: js/blocks/RhythmBlockPaletteBlocks.js:796 +msgid "quintuplet" msgstr "" -#: js/PitchBlocks.js:1430 -#.TRANS: An accidental is a modification to a pitch, e.g., sharp or flat. -msgid "accidental override" +#: js/blocks/RhythmBlockPaletteBlocks.js:824 +msgid "triplet" msgstr "" -#: js/PitchBlocks.js:1543 -msgid "The Hertz block (in combination with a Number block) will play a sound at the specified frequency." +#: js/blocks/RhythmBlockPaletteBlocks.js:851 +msgid "simple tuplet" msgstr "" -#: js/PitchBlocks.js:1633 -msgid "The Pitch Number block will play a pitch associated by its number, e.g. 0 for C and 7 for G." +#: js/blocks/RhythmBlockPaletteBlocks.js:861 +msgid "Tuplets are a collection of notes that get scaled to a specific duration." msgstr "" -#: js/PitchBlocks.js:1665 -#: js/PitchBlocks.js:1707 -#.TRANS: a numeric mapping of the notes in an octave based on the musical mode -#.TRANS: a numeric mapping of the notes in an octave based on the musical mode -msgid "nth modal pitch" +#: js/blocks/DrumBlocks.js:59 +msgid "The Noise name block is used to select a noise synthesizer." msgstr "" -#: js/PitchBlocks.js:1668 -msgid "n^th Modal Pitch takes the pattern of pitches in semitones for a mode and makes each point a degree of the mode," +#: js/blocks/DrumBlocks.js:102 +msgid "The Drum name block is used to select a drum." msgstr "" -#: js/PitchBlocks.js:1670 -msgid "starting from 1 and regardless of tonal framework (i.e. not always 8 notes in the octave)" +#: js/blocks/DrumBlocks.js:146 +msgid "The Effects name block is used to select a sound effect." msgstr "" -#: js/PitchBlocks.js:1711 -msgid "N^th Modal Pitch takes a number as an input as the n^th degree for the given mode. 0 is the first position, 1 is the second, -1 is the note before the first etc." +#: js/blocks/DrumBlocks.js:163 +msgid "noise" msgstr "" -#: js/PitchBlocks.js:1713 -msgid "The pitches change according to the mode specified without any need for respellings." +#: js/blocks/DrumBlocks.js:177 +msgid "The Play noise block will generate white, pink, or brown noise." msgstr "" -#: js/PitchBlocks.js:1752 -msgid "Scale Degree is a common convention in music. Scale Degree offers seven possible positions in the scale (1-7) and can be modified via accidentals." +#: js/blocks/DrumBlocks.js:317 +msgid "Replace every instance of a pitch with a drum sound." msgstr "" -#: js/PitchBlocks.js:1754 -msgid "Scale Degree 1 is always the first pitch in a given scale, regardless of octave." +#: js/blocks/DrumBlocks.js:328 +#.TRANS: map a pitch to a drum sound +msgid "map pitch to drum" msgstr "" -#: js/PitchBlocks.js:1776 -#.TRANS: step some number of notes in current musical scale -msgid "scalar step" +#: js/blocks/DrumBlocks.js:395 +msgid "In the example above, a kick drum sound will be played instead of sol." msgstr "" -#: js/PitchBlocks.js:1781 -msgid "The Scalar Step block (in combination with a Number block) will play the next pitch in a scale," +#: js/blocks/DrumBlocks.js:407 +#.TRANS: set the current drum sound for playback +msgid "set drum" msgstr "" -#: js/PitchBlocks.js:1783 -msgid "eg if the last note played was sol, Scalar Step 1 will play la." +#: js/blocks/DrumBlocks.js:451 +msgid "sound effect" msgstr "" -#: js/PitchBlocks.js:1818 -msgid "The Pitch block specifies the pitch name and octave of a note that together determine the frequency of the note." +#: js/blocks/DrumBlocks.js:489 +msgid "You can use multiple Drum blocks within a Note block." msgstr "" -#: js/GraphicsBlocks.js:46 -#: js/DictActions.js:77 -#: js/DictActions.js:155 -#: js/DictActions.js:189 +#: js/blocks/GraphicsBlocks.js:46 +#: js/turtleactions/DictActions.js:77 +#: js/turtleactions/DictActions.js:144 +#: js/turtleactions/DictActions.js:173 msgid "heading" msgstr "panekōrero" -#: js/GraphicsBlocks.js:56 +#: js/blocks/GraphicsBlocks.js:56 msgid "The Heading block returns the orientation of the mouse." msgstr "" -#: js/GraphicsBlocks.js:62 +#: js/blocks/GraphicsBlocks.js:62 msgid "The Heading block returns the orientation of the turtle." msgstr "" -#: js/GraphicsBlocks.js:133 +#: js/blocks/GraphicsBlocks.js:133 msgid "The Y block returns the vertical position of the mouse." msgstr "" -#: js/GraphicsBlocks.js:140 +#: js/blocks/GraphicsBlocks.js:140 msgid "The Y block returns the vertical position of the turtle." msgstr "" -#: js/GraphicsBlocks.js:149 +#: js/blocks/GraphicsBlocks.js:149 msgid "y3" msgstr "" -#: js/GraphicsBlocks.js:219 +#: js/blocks/GraphicsBlocks.js:219 msgid "The X block returns the horizontal position of the mouse." msgstr "" -#: js/GraphicsBlocks.js:226 +#: js/blocks/GraphicsBlocks.js:226 msgid "The X block returns the horizontal position of the turtle." msgstr "" -#: js/GraphicsBlocks.js:235 +#: js/blocks/GraphicsBlocks.js:235 msgid "x3" msgstr "" -#: js/GraphicsBlocks.js:295 +#: js/blocks/GraphicsBlocks.js:295 msgid "scroll xy" msgstr "" -#: js/GraphicsBlocks.js:303 +#: js/blocks/GraphicsBlocks.js:303 msgid "The Scroll XY block moves the canvas." msgstr "" -#: js/GraphicsBlocks.js:313 +#: js/blocks/GraphicsBlocks.js:313 msgid "x2" msgstr "" -#: js/GraphicsBlocks.js:313 +#: js/blocks/GraphicsBlocks.js:313 msgid "y2" msgstr "" -#: js/GraphicsBlocks.js:373 -#: js/temperament.js:213 -#: js/temperament.js:241 +#: js/blocks/GraphicsBlocks.js:373 +#: js/widgets/temperament.js:319 +#: js/widgets/temperament.js:347 msgid "clear" msgstr "" -#: js/GraphicsBlocks.js:426 +#: js/blocks/GraphicsBlocks.js:426 msgid "The Control-point 2 block sets the second control point for the Bezier curve." msgstr "" -#: js/GraphicsBlocks.js:433 +#: js/blocks/GraphicsBlocks.js:433 msgid "control point 2" msgstr "" -#: js/GraphicsBlocks.js:436 -#: js/GraphicsBlocks.js:487 -#: js/GraphicsBlocks.js:534 -#: js/GraphicsBlocks.js:750 +#: js/blocks/GraphicsBlocks.js:436 +#: js/blocks/GraphicsBlocks.js:487 +#: js/blocks/GraphicsBlocks.js:534 +#: js/blocks/GraphicsBlocks.js:750 msgid "x1" msgstr "" -#: js/GraphicsBlocks.js:436 -#: js/GraphicsBlocks.js:487 -#: js/GraphicsBlocks.js:534 -#: js/GraphicsBlocks.js:750 +#: js/blocks/GraphicsBlocks.js:436 +#: js/blocks/GraphicsBlocks.js:487 +#: js/blocks/GraphicsBlocks.js:534 +#: js/blocks/GraphicsBlocks.js:750 msgid "y1" msgstr "" -#: js/GraphicsBlocks.js:477 +#: js/blocks/GraphicsBlocks.js:477 msgid "The Control-point 1 block sets the first control point for the Bezier curve." msgstr "" -#: js/GraphicsBlocks.js:484 +#: js/blocks/GraphicsBlocks.js:484 msgid "control point 1" msgstr "" -#: js/GraphicsBlocks.js:527 +#: js/blocks/GraphicsBlocks.js:527 msgid "The Bezier block draws a Bezier curve." msgstr "" -#: js/GraphicsBlocks.js:531 +#: js/blocks/GraphicsBlocks.js:531 msgid "bezier" msgstr "" -#: js/GraphicsBlocks.js:592 +#: js/blocks/GraphicsBlocks.js:592 msgid "The Arc block moves the turtle in an arc." msgstr "" -#: js/GraphicsBlocks.js:600 +#: js/blocks/GraphicsBlocks.js:600 msgid "arc" msgstr "pewa" -#: js/GraphicsBlocks.js:603 +#: js/blocks/GraphicsBlocks.js:603 msgid "angle" msgstr "koki" -#: js/GraphicsBlocks.js:603 +#: js/blocks/GraphicsBlocks.js:603 msgid "radius" msgstr "pūtoro" -#: js/GraphicsBlocks.js:620 -#: js/GraphicsBlocks.js:767 -#: js/GraphicsBlocks.js:1010 -#: js/GraphicsBlocks.js:1093 +#: js/blocks/GraphicsBlocks.js:620 +#: js/blocks/GraphicsBlocks.js:767 +#: js/blocks/GraphicsBlocks.js:1010 +#: js/blocks/GraphicsBlocks.js:1093 msgid "Value must be within -5000 to 5000 when Wrap Mode is off." msgstr "" -#: js/GraphicsBlocks.js:622 -#: js/GraphicsBlocks.js:769 -#: js/GraphicsBlocks.js:1012 -#: js/GraphicsBlocks.js:1095 +#: js/blocks/GraphicsBlocks.js:622 +#: js/blocks/GraphicsBlocks.js:769 +#: js/blocks/GraphicsBlocks.js:1012 +#: js/blocks/GraphicsBlocks.js:1095 msgid "Value must be within -20000 to 20000 when Wrap Mode is on." msgstr "" -#: js/GraphicsBlocks.js:660 +#: js/blocks/GraphicsBlocks.js:660 msgid "set heading" msgstr "tautuhi panekōrero" -#: js/GraphicsBlocks.js:673 +#: js/blocks/GraphicsBlocks.js:673 msgid "The Set heading block sets the heading of the turtle." msgstr "" -#: js/GraphicsBlocks.js:733 +#: js/blocks/GraphicsBlocks.js:733 msgid "The Set XY block moves the mouse to a specific position on the screen." msgstr "" -#: js/GraphicsBlocks.js:739 +#: js/blocks/GraphicsBlocks.js:739 msgid "The Set XY block moves the turtle to a specific position on the screen." msgstr "" -#: js/GraphicsBlocks.js:747 +#: js/blocks/GraphicsBlocks.js:747 msgid "set xy" msgstr "tautuhi xy" -#: js/GraphicsBlocks.js:819 +#: js/blocks/GraphicsBlocks.js:819 msgid "The Right block turns the mouse to the right." msgstr "" -#: js/GraphicsBlocks.js:826 +#: js/blocks/GraphicsBlocks.js:826 msgid "The Right block turns the turtle to the right." msgstr "" -#: js/GraphicsBlocks.js:835 +#: js/blocks/GraphicsBlocks.js:835 msgid "right1" msgstr "" -#: js/GraphicsBlocks.js:835 +#: js/blocks/GraphicsBlocks.js:835 #: plugins/rodi.rtp:77 #: plugins/rodi.rtp:340 #: plugins/rodi.rtp:375 msgid "right" msgstr "matau" -#: js/GraphicsBlocks.js:899 +#: js/blocks/GraphicsBlocks.js:899 msgid "The Left block turns the mouse to the left." msgstr "" -#: js/GraphicsBlocks.js:906 +#: js/blocks/GraphicsBlocks.js:906 msgid "The Left block turns the turtle to the left." msgstr "" -#: js/GraphicsBlocks.js:915 +#: js/blocks/GraphicsBlocks.js:915 msgid "left1" msgstr "" -#: js/GraphicsBlocks.js:915 +#: js/blocks/GraphicsBlocks.js:915 #: plugins/rodi.rtp:79 #: plugins/rodi.rtp:339 #: plugins/rodi.rtp:362 msgid "left" msgstr "mauī" -#: js/GraphicsBlocks.js:967 -#: js/temperament.js:734 -#: js/temperament.js:933 +#: js/blocks/GraphicsBlocks.js:967 +#: js/widgets/temperament.js:875 +#: js/widgets/temperament.js:1078 #: plugins/rodi.rtp:69 #: plugins/rodi.rtp:387 msgid "back" msgstr "whakamuri" -#: js/GraphicsBlocks.js:976 +#: js/blocks/GraphicsBlocks.js:976 msgid "The Back block moves the mouse backward." msgstr "" -#: js/GraphicsBlocks.js:983 +#: js/blocks/GraphicsBlocks.js:983 msgid "The Back block moves the turtle backward." msgstr "" -#: js/GraphicsBlocks.js:1050 +#: js/blocks/GraphicsBlocks.js:1050 #: plugins/rodi.rtp:71 #: plugins/rodi.rtp:400 msgid "forward" msgstr "whakamua" -#: js/GraphicsBlocks.js:1059 +#: js/blocks/GraphicsBlocks.js:1059 msgid "The Forward block moves the mouse forward." msgstr "" -#: js/GraphicsBlocks.js:1066 +#: js/blocks/GraphicsBlocks.js:1066 msgid "The Forward block moves the turtle forward." msgstr "" -#: js/GraphicsBlocks.js:1154 -#: js/GraphicsBlocks.js:1172 +#: js/blocks/GraphicsBlocks.js:1154 +#: js/blocks/GraphicsBlocks.js:1172 msgid "wrap" msgstr "" -#: js/OrnamentBlocks.js:32 -msgid "staccato factor" -msgstr "" - -#: js/OrnamentBlocks.js:108 -msgid "slur factor" -msgstr "" - -#: js/OrnamentBlocks.js:217 -#: js/OrnamentBlocks.js:309 -#.TRANS: the neighbor refers to a neighboring note, e.g., D is a neighbor of C -msgid "neighbor" -msgstr "" - -#: js/OrnamentBlocks.js:293 -msgid "The Neighbor block rapidly switches between neighboring pitches." -msgstr "" - -#: js/OrnamentBlocks.js:364 -msgid "glide" -msgstr "" - -#: js/OrnamentBlocks.js:479 -#: js/OrnamentBlocks.js:643 -msgid "slur" -msgstr "" - -#: js/OrnamentBlocks.js:558 -#: js/OrnamentBlocks.js:710 -#.TRANS: play each note sharply detached from the others -msgid "staccato" -msgstr "" - -#: js/PenBlocks.js:24 +#: js/blocks/PenBlocks.js:30 msgid "purple" msgstr "" -#: js/PenBlocks.js:37 -#: js/SensorsBlocks.js:521 -#: plugins/rodi.rtp:219 -msgid "blue" -msgstr "" - -#: js/PenBlocks.js:50 -#: js/SensorsBlocks.js:577 -#: plugins/rodi.rtp:218 -msgid "green" -msgstr "" - -#: js/PenBlocks.js:63 +#: js/blocks/PenBlocks.js:80 msgid "yellow" msgstr "" -#: js/PenBlocks.js:76 +#: js/blocks/PenBlocks.js:96 #: plugins/nutrition.rtp:164 msgid "orange" msgstr "karaka" -#: js/PenBlocks.js:89 -#: js/SensorsBlocks.js:633 -#: plugins/rodi.rtp:217 -msgid "red" -msgstr "" - -#: js/PenBlocks.js:102 +#: js/blocks/PenBlocks.js:128 msgid "white" msgstr "" -#: js/PenBlocks.js:115 +#: js/blocks/PenBlocks.js:144 msgid "black" msgstr "" -#: js/PenBlocks.js:128 +#: js/blocks/PenBlocks.js:163 msgid "begin fill" msgstr "" -#: js/PenBlocks.js:143 +#: js/blocks/PenBlocks.js:190 msgid "end fill" msgstr "whakakī mutunga" -#: js/PenBlocks.js:159 -#: js/PenBlocks.js:386 +#: js/blocks/PenBlocks.js:212 +#: js/blocks/PenBlocks.js:560 #.TRANS: set the background color msgid "background" msgstr "" -#: js/PenBlocks.js:206 -#: js/DictActions.js:71 -#: js/DictActions.js:149 -#: js/DictActions.js:186 +#: js/blocks/PenBlocks.js:274 +#: js/turtleactions/DictActions.js:71 +#: js/turtleactions/DictActions.js:138 +#: js/turtleactions/DictActions.js:170 msgid "grey" msgstr "" -#: js/PenBlocks.js:210 +#: js/blocks/PenBlocks.js:282 msgid "The Grey block returns the current pen grey value." msgstr "" -#: js/PenBlocks.js:243 -#: js/DictActions.js:69 -#: js/DictActions.js:147 -#: js/DictActions.js:185 +#: js/blocks/PenBlocks.js:340 +#: js/turtleactions/DictActions.js:69 +#: js/turtleactions/DictActions.js:136 +#: js/turtleactions/DictActions.js:169 msgid "shade" msgstr "uriuri" -#: js/PenBlocks.js:247 +#: js/blocks/PenBlocks.js:347 msgid "The Shade block returns the current pen shade value." msgstr "" -#: js/PenBlocks.js:280 -#: js/DictActions.js:67 -#: js/DictActions.js:145 -#: js/DictActions.js:184 +#: js/blocks/PenBlocks.js:405 +#: js/turtleactions/DictActions.js:67 +#: js/turtleactions/DictActions.js:134 +#: js/turtleactions/DictActions.js:168 msgid "color" msgstr "tae" -#: js/PenBlocks.js:285 +#: js/blocks/PenBlocks.js:415 msgid "The Color block returns the current pen color." msgstr "" -#: js/PenBlocks.js:318 -#: js/DictActions.js:73 -#: js/DictActions.js:151 -#: js/DictActions.js:187 +#: js/blocks/PenBlocks.js:470 +#: js/turtleactions/DictActions.js:73 +#: js/turtleactions/DictActions.js:140 +#: js/turtleactions/DictActions.js:171 msgid "pen size" msgstr "rahinga pene" -#: js/PenBlocks.js:322 +#: js/blocks/PenBlocks.js:474 msgid "The Pen size block returns the current pen size value." msgstr "" -#: js/PenBlocks.js:355 +#: js/blocks/PenBlocks.js:513 msgid "set font" msgstr "" -#: js/PenBlocks.js:358 +#: js/blocks/PenBlocks.js:518 msgid "The Set font block sets the font used by the Show block." msgstr "" -#: js/PenBlocks.js:391 +#: js/blocks/PenBlocks.js:567 msgid "The Background block sets the window background color." msgstr "" -#: js/PenBlocks.js:408 +#: js/blocks/PenBlocks.js:598 msgid "The Hollow line block creates a line with a hollow center." msgstr "" -#: js/PenBlocks.js:415 +#: js/blocks/PenBlocks.js:606 #.TRANS: draw a line logo has a hollow space down its center msgid "hollow line" msgstr "" -#: js/PenBlocks.js:462 +#: js/blocks/PenBlocks.js:675 msgid "The Fill block fills in a shape with a color." msgstr "" -#: js/PenBlocks.js:470 +#: js/blocks/PenBlocks.js:684 #.TRANS: fill in as a solid color msgid "fill" msgstr "" -#: js/PenBlocks.js:527 +#: js/blocks/PenBlocks.js:761 #.TRANS: raise up the pen so logo it does not draw when it is moved msgid "pen up" msgstr "pene ki runga" -#: js/PenBlocks.js:532 +#: js/blocks/PenBlocks.js:768 msgid "The Pen-up block raises the pen so that it does not draw." msgstr "" -#: js/PenBlocks.js:552 +#: js/blocks/PenBlocks.js:802 #.TRANS: put down the pen so logo it draws when it is moved msgid "pen down" msgstr "pene ki raro" -#: js/PenBlocks.js:557 +#: js/blocks/PenBlocks.js:810 msgid "The Pen-down block lowers the pen so that it draws." msgstr "" -#: js/PenBlocks.js:577 +#: js/blocks/PenBlocks.js:844 #.TRANS: set the width of the line drawn by the pen msgid "set pen size" msgstr "tautuhi rahinga pene" -#: js/PenBlocks.js:583 +#: js/blocks/PenBlocks.js:854 msgid "The Set-pen-size block changes the size of the pen." msgstr "" -#: js/PenBlocks.js:623 +#: js/blocks/PenBlocks.js:913 #.TRANS: set degree of translucence of the pen color msgid "set translucency" msgstr "" -#: js/PenBlocks.js:627 +#: js/blocks/PenBlocks.js:921 msgid "The Set translucency block changes the opacity of the pen." msgstr "" -#: js/PenBlocks.js:668 +#: js/blocks/PenBlocks.js:981 msgid "set hue" msgstr "" -#: js/PenBlocks.js:672 +#: js/blocks/PenBlocks.js:989 msgid "The Set hue block changes the color of the pen." msgstr "" -#: js/PenBlocks.js:711 +#: js/blocks/PenBlocks.js:1047 msgid "set shade" msgstr "tautuhi uriuri" -#: js/PenBlocks.js:717 +#: js/blocks/PenBlocks.js:1057 msgid "The Set-shade block changes the pen color from dark to light." msgstr "" -#: js/PenBlocks.js:757 +#: js/blocks/PenBlocks.js:1111 #.TRANS: set the level of vividness of the pen color msgid "set grey" msgstr "" -#: js/PenBlocks.js:761 +#: js/blocks/PenBlocks.js:1119 msgid "The Set grey block changes the vividness of the pen color." msgstr "" -#: js/PenBlocks.js:800 +#: js/blocks/PenBlocks.js:1172 msgid "set color" msgstr "tautuhi tae" -#: js/PenBlocks.js:806 +#: js/blocks/PenBlocks.js:1182 msgid "The Set-color block changes the pen color." msgstr "" -#: js/VolumeBlocks.js:35 -msgid "synth volume" -msgstr "" - -#: js/VolumeBlocks.js:39 -msgid "The Synth volume block returns the current volume of the current synthesizer." -msgstr "" - -#: js/VolumeBlocks.js:47 -#: js/musicutils.js:730 -#: js/synthutils.js:56 -#.TRANS: musical instrument -msgid "piano" -msgstr "" - -#: js/VolumeBlocks.js:105 -msgid "master volume" -msgstr "" - -#: js/VolumeBlocks.js:109 -msgid "The Master volume block returns the master volume." -msgstr "" - -#: js/VolumeBlocks.js:355 -#: js/VolumeBlocks.js:524 -msgid "set synth volume" -msgstr "" - -#: js/VolumeBlocks.js:362 -#: js/VolumeBlocks.js:545 -msgid "synth" -msgstr "" - -#: js/VolumeBlocks.js:403 -#: js/VolumeBlocks.js:577 -#: js/VolumeBlocks.js:740 -#: js/VolumeActions.js:173 -msgid "Setting volume to 0." -msgstr "" - -#: js/VolumeBlocks.js:440 -msgid "Synth not found" -msgstr "" - -#: js/VolumeBlocks.js:494 -msgid "set drum volume" -msgstr "" - -#: js/VolumeBlocks.js:530 -msgid "The Set synth volume block will change the volume of a particular synth," -msgstr "" - -#: js/VolumeBlocks.js:532 -msgid "eg guitar violin snare drum etc." -msgstr "" - -#: js/VolumeBlocks.js:534 -msgid "The default volume is 50." -msgstr "" - -#: js/VolumeBlocks.js:536 -msgid "The range is 0 for silence to 100 for full volume." -msgstr "" - -#: js/VolumeBlocks.js:597 -msgid "set panning" -msgstr "" - -#: js/VolumeBlocks.js:603 -msgid "The Set Panning block sets the panning for all synthesizers." -msgstr "" - -#: js/VolumeBlocks.js:625 -msgid "Warning: Sound is coming out from only the left or right side." -msgstr "" - -#: js/VolumeBlocks.js:647 -#: js/VolumeBlocks.js:695 -msgid "set master volume" -msgstr "" - -#: js/VolumeBlocks.js:653 -msgid "The Set master volume block sets the volume for all synthesizers." -msgstr "" - -#: js/VolumeBlocks.js:784 -msgid "The Set relative volume block changes the volume of the contained notes." -msgstr "" - -#: js/VolumeBlocks.js:791 -msgid "set relative volume" -msgstr "" - -#: js/VolumeBlocks.js:857 -msgid "decrescendo" -msgstr "" - -#: js/VolumeBlocks.js:921 -msgid "crescendo" -msgstr "" - -#: js/ToneBlocks.js:34 -msgid "oscillator" -msgstr "" - -#: js/ToneBlocks.js:44 -#: js/timbre.js:1562 -#.TRANS: Partials refers to the number of sine waves combined into the sound. -msgid "partials" -msgstr "" - -#: js/ToneBlocks.js:76 -msgid "You are adding multiple oscillator blocks." -msgstr "" - -#: js/ToneBlocks.js:144 -#: js/timbre.js:1225 -#.TRANS: a duo synthesizer combines a synth with a sequencer -msgid "duo synth" -msgstr "" - -#: js/ToneBlocks.js:149 -msgid "The Duo synth block is a duo-frequency modulator used to define a timbre." -msgstr "" - -#: js/ToneBlocks.js:157 -#: js/timbre.js:1476 -msgid "vibrato rate" -msgstr "" - -#: js/ToneBlocks.js:157 -msgid "vibrato intensity" -msgstr "" - -#: js/ToneBlocks.js:185 -#: js/timbre.js:1221 -#.TRANS: AM (amplitude modulation) synthesizer -msgid "AM synth" -msgstr "" - -#: js/ToneBlocks.js:189 -msgid "The AM synth block is an amplitude modulator used to define a timbre." -msgstr "" - -#: js/ToneBlocks.js:224 -#: js/timbre.js:1223 -#.TRANS: FM (frequency modulation) synthesizer -msgid "FM synth" +#: js/blocks/PitchBlocks.js:141 +#.TRANS: musical transposition (adjustment of pitch up or down) +msgid "transposition" msgstr "" -#: js/ToneBlocks.js:228 -msgid "The FM synth block is a frequency modulator used to define a timbre." +#: js/blocks/PitchBlocks.js:168 +#.TRANS: step down one note in current musical scale +msgid "scalar step down" msgstr "" -#: js/ToneBlocks.js:262 -msgid "partial" +#: js/blocks/PitchBlocks.js:172 +msgid "The Scalar step down block returns the number of semi-tones down to the previous note in the current key and mode." msgstr "" -#: js/ToneBlocks.js:265 -msgid "The Partial block is used to specify a weight for a specific partial harmonic." +#: js/blocks/PitchBlocks.js:190 +#.TRANS: step up one note in current musical scale +msgid "scalar step up" msgstr "" -#: js/ToneBlocks.js:284 -#.TRANS: partials are weighted components in a harmonic series -msgid "Partial weight must be between 0 and 1." +#: js/blocks/PitchBlocks.js:194 +msgid "The Scalar step up block returns the number of semi-tones up to the next note in the current key and mode." msgstr "" -#: js/ToneBlocks.js:297 -#.TRANS: partials are weighted components in a harmonic series -msgid "Partial block should be used inside of a Weighted-partials block." +#: js/blocks/PitchBlocks.js:212 +#.TRANS: the change measured in half-steps between the current pitch and the previous pitch +msgid "change in pitch" msgstr "" -#: js/ToneBlocks.js:325 -#.TRANS: partials are weighted components in a harmonic series -msgid "weighted partials" +#: js/blocks/PitchBlocks.js:216 +msgid "The Change in pitch block is the difference (in half steps) between the current pitch being played and the previous pitch played." msgstr "" -#: js/ToneBlocks.js:383 -msgid "The Harmonic block will add harmonics to the contained notes." +#: js/blocks/PitchBlocks.js:243 +#.TRANS: the change measured in scale-steps between the current pitch and the previous pitch +msgid "scalar change in pitch" msgstr "" -#: js/ToneBlocks.js:390 -#.TRANS: A harmonic is an overtone. -msgid "harmonic" +#: js/blocks/PitchBlocks.js:250 +#: js/blocks/PitchBlocks.js:432 +#: js/blocks/PitchBlocks.js:1667 +#: js/turtleactions/DictActions.js:89 +#: js/widgets/temperament.js:610 +#: js/widgets/temperament.js:614 +#: js/widgets/temperament.js:855 +#.TRANS: convert current note to piano key (1-88) +#.TRANS: a mapping of pitch to the 88 piano keys +msgid "pitch number" msgstr "" -#: js/ToneBlocks.js:431 -msgid "The Distortion block adds distortion to the pitch." +#: js/blocks/PitchBlocks.js:256 +msgid "The Pitch number block is the value of the pitch of the note currently being played." msgstr "" -#: js/ToneBlocks.js:438 -#: js/timbre.js:2100 -#.TRANS: distortion is an alteration in the sound -msgid "distortion" +#: js/blocks/PitchBlocks.js:329 +#: js/blocks/PitchBlocks.js:433 +#.TRANS: the current pitch expressed in Hertz +msgid "pitch in hertz" msgstr "" -#: js/ToneBlocks.js:487 -msgid "The Tremolo block adds a wavering effect." +#: js/blocks/PitchBlocks.js:334 +msgid "The Pitch in Hertz block is the value in Hertz of the pitch of the note currently being played." msgstr "" -#: js/ToneBlocks.js:495 -#: js/timbre.js:2092 -#.TRANS: a wavering effect in a musical tone -msgid "tremolo" +#: js/blocks/PitchBlocks.js:367 +#: js/turtleactions/DictActions.js:87 +msgid "current pitch" msgstr "" -#: js/ToneBlocks.js:500 -#: js/ToneBlocks.js:569 -#: js/ToneBlocks.js:630 -#: js/ToneBlocks.js:689 -#: js/timbre.js:2134 -#: js/timbre.js:2222 -#: js/timbre.js:2317 -#: js/timbre.js:2419 -#.TRANS: rate at which tremolo wavers -msgid "rate" +#: js/blocks/PitchBlocks.js:373 +msgid "The Current Pitch block is used with the Pitch Converter block. In the example above, current pitch, sol 4, is displayed as 392 hertz." msgstr "" -#: js/ToneBlocks.js:502 -#: js/ToneBlocks.js:630 -#: js/timbre.js:2137 -#: js/timbre.js:2328 -#.TRANS: amplitude of tremolo waver -msgid "depth" +#: js/blocks/PitchBlocks.js:410 +msgid "This block converts the pitch value of the last note played into different formats such as hertz, letter name, pitch number, et al." msgstr "" -#: js/ToneBlocks.js:559 -msgid "The Phaser block adds a sweeping sound." +#: js/blocks/PitchBlocks.js:434 +msgid "alphabet" msgstr "" -#: js/ToneBlocks.js:566 -#: js/timbre.js:2098 -#.TRANS: alter the phase of the sound -msgid "phaser" +#: js/blocks/PitchBlocks.js:436 +#.TRANS: Translate as "alphabet class" +msgid "letter class" msgstr "" -#: js/ToneBlocks.js:569 -#: js/timbre.js:2422 -msgid "octaves" +#: js/blocks/PitchBlocks.js:437 +msgid "solfege class" msgstr "" -#: js/ToneBlocks.js:569 -#: js/timbre.js:2425 -msgid "base frequency" +#: js/blocks/PitchBlocks.js:438 +msgid "staff y" msgstr "" -#: js/ToneBlocks.js:619 -msgid "The Chorus block adds a chorus effect." +#: js/blocks/PitchBlocks.js:439 +msgid "solfege syllable" msgstr "" -#: js/ToneBlocks.js:627 -#: js/timbre.js:2096 -#.TRANS: musical effect to simulate a choral sound -msgid "chorus" +#: js/blocks/PitchBlocks.js:440 +msgid "pitch class" msgstr "" -#: js/ToneBlocks.js:630 -msgid "delay" +#: js/blocks/PitchBlocks.js:441 +msgid "scalar class" msgstr "" -#: js/ToneBlocks.js:678 -msgid "The Vibrato block adds a rapid, slight variation in pitch." +#: js/blocks/PitchBlocks.js:443 +msgid "nth degree" msgstr "" -#: js/ToneBlocks.js:686 -#: js/timbre.js:2094 -#.TRANS: a rapid, slight variation in pitch -msgid "vibrato" +#: js/blocks/PitchBlocks.js:444 +msgid "pitch to shade" msgstr "" -#: js/ToneBlocks.js:689 -#: js/timbre.js:2221 -msgid "intensity" +#: js/blocks/PitchBlocks.js:445 +msgid "pitch to color" msgstr "" -#: js/ToneBlocks.js:733 -#.TRANS: select synthesizer -msgid "set synth" +#: js/blocks/PitchBlocks.js:629 +#: js/widgets/musickeyboard.js:735 +#.TRANS: MIDI is a technical standard for electronic music +msgid "MIDI" msgstr "" -#: js/ToneBlocks.js:804 -msgid "synth name" +#: js/blocks/PitchBlocks.js:642 +#.TRANS: set an offset associated with the numeric piano keyboard mapping +msgid "set pitch number offset" msgstr "" -#: js/ToneBlocks.js:842 -msgid "set default instrument" +#: js/blocks/PitchBlocks.js:645 +msgid "The Set pitch number offset block is used to set the offset for mapping pitch numbers to pitch and octave." msgstr "" -#: js/ToneBlocks.js:895 -#: js/ToneBlocks.js:943 -#.TRANS: set the characteristics of a custom instrument -msgid "set instrument" +#: js/blocks/PitchBlocks.js:679 +#.TRANS: convert piano key number (1-88) to pitch +msgid "number to pitch" msgstr "" -#: js/ToneBlocks.js:898 -#: js/ToneBlocks.js:926 -#: js/ToneBlocks.js:932 -msgid "The Set instrument block selects a voice for the synthesizer," +#: js/blocks/PitchBlocks.js:682 +msgid "The Number to pitch block will convert a pitch number to a pich name." msgstr "" -#: js/ToneBlocks.js:900 -#: js/ToneBlocks.js:934 -msgid "eg guitar piano violin or cello." +#: js/blocks/PitchBlocks.js:715 +#.TRANS: convert piano key number (1-88) to octave +msgid "number to octave" msgstr "" -#: js/ToneBlocks.js:1015 -msgid "Import a sound file to use as an instrument and set its pitch center." +#: js/blocks/PitchBlocks.js:717 +msgid "The Number to octave block will convert a pitch number to an octave." msgstr "" -#: js/ToneBlocks.js:1110 -msgid "Upload a sound file to connect with the sample block." +#: js/blocks/PitchBlocks.js:726 +msgid "y to pitch" msgstr "" -#: js/MeterBlocks.js:34 -#.TRANS: musical meter (time signature), e.g., 4:4 -msgid "current meter" +#: js/blocks/PitchBlocks.js:729 +msgid "Y to pitch block will convert a staff y position to corresponding pitch notation." msgstr "" -#: js/MeterBlocks.js:85 -#.TRANS: number of beats per minute -msgid "beat factor" +#: js/blocks/PitchBlocks.js:841 +msgid "accidental selector" msgstr "" -#: js/MeterBlocks.js:161 -msgid "The Beats per minute block returns the current beats per minute." +#: js/blocks/PitchBlocks.js:844 +msgid "The Accidental selector block is used to choose between double-sharp, sharp, natural, flat, and double-flat." msgstr "" -#: js/MeterBlocks.js:169 -#: js/status.js:152 -#.TRANS: number of beats played per minute -msgid "beats per minute2" +#: js/blocks/PitchBlocks.js:858 +msgid "Pitch can be specified in terms of ni dha pa ma ga re sa." msgstr "" -#: js/MeterBlocks.js:169 -#: js/MeterBlocks.js:1056 -#: js/MeterBlocks.js:1133 -#: js/MeterBlocks.js:1211 -#.TRANS: sets tempo by defining a beat and beats per minute -msgid "beats per minute" +#: js/blocks/PitchBlocks.js:872 +msgid "Pitch can be specified in terms of C D E F G A B." msgstr "" -#: js/MeterBlocks.js:233 -#.TRANS: count of current musical measure in meter -msgid "measure count" +#: js/blocks/PitchBlocks.js:884 +msgid "solfege" msgstr "" -#: js/MeterBlocks.js:241 -msgid "The Measure count block returns the current measure." +#: js/blocks/PitchBlocks.js:887 +msgid "Pitch can be specified in terms of do re mi fa sol la ti." msgstr "" -#: js/MeterBlocks.js:290 -#.TRANS: count of current beat in the meter -msgid "beat count" +#: js/blocks/PitchBlocks.js:922 +msgid "The Invert block rotates any contained notes around a target note." msgstr "" -#: js/MeterBlocks.js:300 -#: js/MeterBlocks.js:311 -#: js/MeterBlocks.js:565 -#: js/MeterBlocks.js:576 -msgid "The Beat count block is the number of the current beat," +#: js/blocks/PitchBlocks.js:929 +#.TRANS: pitch inversion rotates a pitch around another pitch +msgid "invert" msgstr "" -#: js/MeterBlocks.js:313 -#: js/MeterBlocks.js:578 -msgid "eg 1, 2, 3, or 4." +#: js/blocks/PitchBlocks.js:968 +#.TRANS: pitch inversion rotates a pitch around another pitch (odd number) +msgid "invert (odd)" msgstr "" -#: js/MeterBlocks.js:368 -#.TRANS: count the number of notes -msgid "sum note values" +#: js/blocks/PitchBlocks.js:1001 +#.TRANS: pitch inversion rotates a pitch around another pitch (even number) +msgid "invert (even)" msgstr "" -#: js/MeterBlocks.js:376 -#: js/MeterBlocks.js:440 -msgid "The Note counter block can be used to count the number of contained notes." +#: js/blocks/PitchBlocks.js:1022 +#.TRANS: register is the octave of the current pitch +msgid "register" msgstr "" -#: js/MeterBlocks.js:432 -#.TRANS: count the number of notes -msgid "note counter" +#: js/blocks/PitchBlocks.js:1026 +msgid "The Register block provides an easy way to modify the register (octave) of the notes that follow it." msgstr "" -#: js/MeterBlocks.js:496 -#.TRANS: number of whole notes that have been played -msgid "whole notes played" +#: js/blocks/PitchBlocks.js:1047 +#.TRANS: cents are units used to specify the ratio between pitches. There are 100 cents between successive notes. +msgid "50 cents" msgstr "" -#: js/MeterBlocks.js:505 -msgid "The Whole notes played block returns the total number of whole notes played." +#: js/blocks/PitchBlocks.js:1102 +msgid "The Semi-tone transposition block will shift the pitches contained inside Note blocks up (or down) by half steps." msgstr "" -#: js/MeterBlocks.js:555 -#: js/DictActions.js:83 -#.TRANS: number of notes that have been played -msgid "notes played" +#: js/blocks/PitchBlocks.js:1104 +msgid "In the example shown above, sol is shifted up to sol#." msgstr "" -#: js/MeterBlocks.js:653 -msgid "The No clock block decouples the notes from the master clock." +#: js/blocks/PitchBlocks.js:1110 +#.TRANS: adjust the amount of shift (up or down) of a pitch +msgid "semi-tone transpose" msgstr "" -#: js/MeterBlocks.js:661 -#.TRANS: don't lock notes to master clock -msgid "no clock" +#: js/blocks/PitchBlocks.js:1143 +msgid "The Transpose by Ratio block will shift the pitches contained inside Note blocks up (or down) by a ratio" msgstr "" -#: js/MeterBlocks.js:700 -msgid "on weak beat do" +#: js/blocks/PitchBlocks.js:1149 +#.TRANS: adjust the amount of shift (up or down) of a pitch +msgid "transpose by ratio" msgstr "" -#: js/MeterBlocks.js:705 -msgid "The On-weak-beat block lets you specify actions to take on weak (off) beats." +#: js/blocks/PitchBlocks.js:1232 +#.TRANS: down sixth means the note is five scale degrees below current note +msgid "down sixth" msgstr "" -#: js/MeterBlocks.js:750 -msgid "on strong beat" +#: js/blocks/PitchBlocks.js:1251 +#.TRANS: down third means the note is two scale degrees below current note +msgid "down third" msgstr "" -#: js/MeterBlocks.js:758 -msgid "The On-strong-beat block lets you specify actions to take on specified beats." +#: js/blocks/PitchBlocks.js:1270 +#.TRANS: seventh means the note is the six scale degrees above current note +msgid "seventh" msgstr "" -#: js/MeterBlocks.js:769 -msgid "beat" +#: js/blocks/PitchBlocks.js:1289 +#.TRANS: sixth means the note is the five scale degrees above current note +msgid "sixth" msgstr "" -#: js/MeterBlocks.js:813 -msgid "on every beat do" +#: js/blocks/PitchBlocks.js:1308 +#.TRANS: fifth means the note is the four scale degrees above current note +msgid "fifth" msgstr "" -#: js/MeterBlocks.js:821 -msgid "The On-every-beat block lets you specify actions to take on every beat." +#: js/blocks/PitchBlocks.js:1328 +#.TRANS: fourth means the note is three scale degrees above current note +msgid "fourth" msgstr "" -#: js/MeterBlocks.js:874 -msgid "on every note do" +#: js/blocks/PitchBlocks.js:1347 +#.TRANS: third means the note is two scale degrees above current note +msgid "third" msgstr "" -#: js/MeterBlocks.js:882 -msgid "The On-every-note block lets you specify actions to take on every note." +#: js/blocks/PitchBlocks.js:1366 +#.TRANS: second means the note is one scale degree above current note +msgid "second" msgstr "" -#: js/MeterBlocks.js:928 -#: js/MeterBlocks.js:999 -#.TRANS: sets tempo by defining a beat and beats per minute -msgid "master beats per minute" +#: js/blocks/PitchBlocks.js:1407 +msgid "The Scalar transposition block will shift the pitches contained inside Note blocks up (or down) the scale." msgstr "" -#: js/MeterBlocks.js:952 -#: js/MeterBlocks.js:1078 -#: js/MeterBlocks.js:1135 -msgid "bpm" +#: js/blocks/PitchBlocks.js:1409 +msgid "In the example shown above, sol is shifted up to la." msgstr "" -#: js/MeterBlocks.js:952 -#: js/MeterBlocks.js:1078 -#: js/MeterBlocks.js:1135 -msgid "beat value" +#: js/blocks/PitchBlocks.js:1416 +#.TRANS: adjust the amount of shift (up or down) of a pitch by musical scale (scalar) steps +msgid "scalar transpose" msgstr "" -#: js/MeterBlocks.js:1024 -#: js/MeterBlocks.js:1167 -#: js/MeterBlocks.js:1241 -msgid "Beats per minute must be > 30." +#: js/blocks/PitchBlocks.js:1451 +msgid "The Accidental block is used to create sharps and flats" msgstr "" -#: js/MeterBlocks.js:1027 -#: js/MeterBlocks.js:1170 -#: js/MeterBlocks.js:1244 -msgid "Maximum beats per minute is 1000." +#: js/blocks/PitchBlocks.js:1458 +#.TRANS: An accidental is a modification to a pitch, e.g., sharp or flat. +msgid "accidental override" msgstr "" -#: js/MeterBlocks.js:1068 -msgid "The Beats per minute block sets the number of 1/4 notes per minute." +#: js/blocks/PitchBlocks.js:1581 +msgid "The Hertz block (in combination with a Number block) will play a sound at the specified frequency." msgstr "" -#: js/MeterBlocks.js:1279 -#.TRANS: anacrusis -msgid "pickup" +#: js/blocks/PitchBlocks.js:1671 +msgid "The Pitch Number block will play a pitch associated by its number, e.g. 0 for C and 7 for G." msgstr "" -#: js/MeterBlocks.js:1367 -msgid "number of beats" +#: js/blocks/PitchBlocks.js:1703 +#: js/blocks/PitchBlocks.js:1745 +#.TRANS: a numeric mapping of the notes in an octave based on the musical mode +#.TRANS: a numeric mapping of the notes in an octave based on the musical mode +msgid "nth modal pitch" msgstr "" -#: js/DictBlocks.js:77 -msgid "show dictionary" +#: js/blocks/PitchBlocks.js:1706 +msgid "n^th Modal Pitch takes the pattern of pitches in semitones for a mode and makes each point a degree of the mode," msgstr "" -#: js/DictBlocks.js:129 -msgid "The Dictionary block returns a dictionary." +#: js/blocks/PitchBlocks.js:1708 +msgid "starting from 1 and regardless of tonal framework (i.e. not always 8 notes in the octave)" msgstr "" -#: js/DictBlocks.js:197 -#: js/DictBlocks.js:339 -msgid "The Get-dict block returns a value in the dictionary for a specified key." +#: js/blocks/PitchBlocks.js:1749 +msgid "N^th Modal Pitch takes a number as an input as the n^th degree for the given mode. 0 is the first position, 1 is the second, -1 is the note before the first etc." msgstr "" -#: js/DictBlocks.js:212 -#: js/DictBlocks.js:354 -#.TRANS: retrieve a value from the dictionary with a given key -msgid "get value" +#: js/blocks/PitchBlocks.js:1751 +msgid "The pitches change according to the mode specified without any need for respellings." msgstr "" -#: js/DictBlocks.js:215 -#: js/DictBlocks.js:216 -#: js/DictBlocks.js:289 -#: js/DictBlocks.js:290 -#: js/DictBlocks.js:357 -#: js/DictBlocks.js:430 -#: js/DictBlocks.js:431 -msgid "key2" +#: js/blocks/PitchBlocks.js:1790 +msgid "Scale Degree is a common convention in music. Scale Degree offers seven possible positions in the scale (1-7) and can be modified via accidentals." msgstr "" -#: js/DictBlocks.js:271 -#: js/DictBlocks.js:411 -msgid "The Set-dict block sets a value in the dictionary for a specified key." +#: js/blocks/PitchBlocks.js:1792 +msgid "Scale Degree 1 is always the first pitch in a given scale, regardless of octave." msgstr "" -#: js/DictBlocks.js:286 -#: js/DictBlocks.js:427 -#.TRANS: set a value in the dictionary for a given key -msgid "set value" +#: js/blocks/PitchBlocks.js:1814 +#.TRANS: step some number of notes in current musical scale +msgid "scalar step" msgstr "" -#: js/ExtrasBlocks.js:33 -msgid "fraction" +#: js/blocks/PitchBlocks.js:1819 +msgid "The Scalar Step block (in combination with a Number block) will play the next pitch in a scale," msgstr "" -#: js/ExtrasBlocks.js:36 -msgid "Convert a float to a fraction" +#: js/blocks/PitchBlocks.js:1821 +msgid "eg if the last note played was sol, Scalar Step 1 will play la." msgstr "" -#: js/ExtrasBlocks.js:93 -msgid "save as ABC" +#: js/blocks/PitchBlocks.js:1857 +msgid "The Pitch block specifies the pitch name and octave of a note that together determine the frequency of the note." msgstr "" -#: js/ExtrasBlocks.js:96 -#: js/ExtrasBlocks.js:132 -#: js/ExtrasBlocks.js:168 -msgid "title" +#: js/blocks/ProgramBlocks.js:33 +msgid "The Load-heap-from-app block loads the heap from a web page." msgstr "" -#: js/ExtrasBlocks.js:129 -msgid "save as Lilypond" +#: js/blocks/ProgramBlocks.js:44 +#.TRANS: load the heap contents from a URL +msgid "load heap from App" msgstr "" -#: js/ExtrasBlocks.js:165 -msgid "save as SVG" +#: js/blocks/ProgramBlocks.js:95 +msgid "Error parsing JSON data:" msgstr "" -#: js/ExtrasBlocks.js:216 -msgid "no background" +#: js/blocks/ProgramBlocks.js:100 +msgid "404: Page not found" msgstr "" -#: js/ExtrasBlocks.js:219 -msgid "The No background block eliminates the background from the saved SVG output." +#: js/blocks/ProgramBlocks.js:133 +msgid "The Save-heap-to-app block saves the heap to a web page." msgstr "" -#: js/ExtrasBlocks.js:247 -msgid "show blocks" -msgstr "whakaatu paraka" - -#: js/ExtrasBlocks.js:249 -msgid "The Show blocks block shows the blocks." +#: js/blocks/ProgramBlocks.js:144 +#.TRANS: save the heap contents to a URL +msgid "save heap to App" msgstr "" -#: js/ExtrasBlocks.js:274 -msgid "hide blocks" -msgstr "huna paraka" - -#: js/ExtrasBlocks.js:276 -msgid "The Hide blocks block hides the blocks." +#: js/blocks/ProgramBlocks.js:189 +msgid "Cannot find a valid heap for" msgstr "" -#: js/ExtrasBlocks.js:305 -#: js/ExtrasBlocks.js:335 -msgid "The Space block is used to add space between blocks." +#: js/blocks/ProgramBlocks.js:206 +msgid "The Load-heap block loads the heap from a file." msgstr "" -#: js/ExtrasBlocks.js:373 -msgid "wait" -msgstr "taihoa" +#: js/blocks/ProgramBlocks.js:217 +#.TRANS: load the heap from a file +msgid "load heap" +msgstr "" -#: js/ExtrasBlocks.js:376 -msgid "The Wait block pauses the program for a specified number of seconds." +#: js/blocks/ProgramBlocks.js:270 +msgid "The file you selected does not contain a valid heap." msgstr "" -#: js/ExtrasBlocks.js:430 -#: plugins/facebook.rtp:30 -msgid "comment" -msgstr "tākupu" +#: js/blocks/ProgramBlocks.js:275 +msgid "The loadHeap block needs a loadFile block." +msgstr "" -#: js/ExtrasBlocks.js:466 -msgid "print" -msgstr "tā" +#: js/blocks/ProgramBlocks.js:291 +msgid "The Set-heap block loads the heap." +msgstr "" -#: js/ExtrasBlocks.js:473 -msgid "The Print block displays text at the top of the screen." +#: js/blocks/ProgramBlocks.js:340 +msgid "The block you selected does not contain a valid heap." msgstr "" -#: js/ExtrasBlocks.js:579 -msgid "display grid" +#: js/blocks/ProgramBlocks.js:343 +msgid "The Set heap block needs a heap." msgstr "" -#: js/ExtrasBlocks.js:584 -msgid "The Display Grid Block changes the grid type" +#: js/blocks/ProgramBlocks.js:360 +msgid "The Load-dictionary block loads a dictionary from a file." msgstr "" -#: js/ExtrasBlocks.js:686 -#: js/ExtrasBlocks.js:705 -#: js/ExtrasBlocks.js:728 -#: js/ExtrasBlocks.js:751 -#: js/ExtrasBlocks.js:769 -#: js/ExtrasBlocks.js:788 -#: js/ExtrasBlocks.js:807 -#: js/ExtrasBlocks.js:826 -msgid "unknown" +#: js/blocks/ProgramBlocks.js:372 +#.TRANS: load a dictionary from a file +msgid "load dictionary" msgstr "" -#: js/SensorsBlocks.js:36 -msgid "The Input block prompts for keyboard input." +#: js/blocks/ProgramBlocks.js:390 +#: js/blocks/ProgramBlocks.js:658 +#: js/blocks/ToneBlocks.js:1025 +msgid "file" msgstr "" -#: js/SensorsBlocks.js:46 -msgid "input" +#: js/blocks/ProgramBlocks.js:444 +msgid "The file you selected does not contain a valid dictionary." msgstr "" -#: js/SensorsBlocks.js:64 -msgid "Input a value" +#: js/blocks/ProgramBlocks.js:449 +msgid "The load dictionary block needs a load file block." msgstr "" -#: js/SensorsBlocks.js:126 -msgid "input value" +#: js/blocks/ProgramBlocks.js:466 +msgid "The Set-dictionary block loads a dictionary." msgstr "" -#: js/SensorsBlocks.js:131 -msgid "The Input-value block stores the input." +#: js/blocks/ProgramBlocks.js:477 +#.TRANS: load a dictionary from a JSON +msgid "set dictionary" msgstr "" -#: js/SensorsBlocks.js:238 -msgid "loudness" -msgstr "hoihoi" +#: js/blocks/ProgramBlocks.js:546 +msgid "The block you selected does not contain a valid dictionary." +msgstr "" -#: js/SensorsBlocks.js:245 -msgid "The Loudness block returns the volume detected by the microphone." +#: js/blocks/ProgramBlocks.js:550 +msgid "The set dictionary block needs a dictionary." msgstr "" -#: js/SensorsBlocks.js:300 -msgid "click" +#: js/blocks/ProgramBlocks.js:567 +msgid "The Save-heap block saves the heap to a file." msgstr "" -#: js/SensorsBlocks.js:306 -msgid "The Click block triggers an event if a mouse has been clicked." +#: js/blocks/ProgramBlocks.js:578 +#.TRANS: save the heap to a file +msgid "save heap" msgstr "" -#: js/SensorsBlocks.js:313 -msgid "The Click block triggers an event if a turtle has been clicked." +#: js/blocks/ProgramBlocks.js:629 +msgid "The Save-dictionary block saves a dictionary to a file." msgstr "" -#: js/SensorsBlocks.js:342 -msgid "cursor over" +#: js/blocks/ProgramBlocks.js:640 +#.TRANS: save a dictionary to a file +msgid "save dictionary" msgstr "" -#: js/SensorsBlocks.js:387 -msgid "cursor out" +#: js/blocks/ProgramBlocks.js:720 +msgid "The Open palette block opens a palette." msgstr "" -#: js/SensorsBlocks.js:433 -msgid "cursor button down" +#: js/blocks/ProgramBlocks.js:727 +msgid "open palette" msgstr "" -#: js/SensorsBlocks.js:477 -msgid "cursor button up" +#: js/blocks/ProgramBlocks.js:785 +msgid "The Delete block block removes a block." msgstr "" -#: js/SensorsBlocks.js:638 -msgid "The Get red block returns the red component of the pixel under the mouse." +#: js/blocks/ProgramBlocks.js:797 +#.TRANS: Move this block to the trash. +msgid "delete block" msgstr "" -#: js/SensorsBlocks.js:644 -msgid "The Get red block returns the red component of the pixel under the turtle." +#: js/blocks/ProgramBlocks.js:861 +msgid "The Move block block moves a block." msgstr "" -#: js/SensorsBlocks.js:685 -#: plugins/rodi.rtp:216 -msgid "pixel color" +#: js/blocks/ProgramBlocks.js:869 +#.TRANS: Move the position of a block on the screen. +msgid "move block" msgstr "" -#: js/SensorsBlocks.js:690 -msgid "The Get pixel block returns the color of the pixel under the mouse." +#: js/blocks/ProgramBlocks.js:881 +#: js/blocks/ProgramBlocks.js:1048 +msgid "block number" msgstr "" -#: js/SensorsBlocks.js:696 -msgid "The Get pixel block returns the color of the pixel under the turtle." +#: js/blocks/ProgramBlocks.js:935 +#.TRANS: Run program beginning at this block. +msgid "run block" msgstr "" -#: js/SensorsBlocks.js:758 -msgid "time" -msgstr "wā" +#: js/blocks/ProgramBlocks.js:1025 +msgid "The Dock block block connections two blocks." +msgstr "" -#: js/SensorsBlocks.js:804 -msgid "cursor y" +#: js/blocks/ProgramBlocks.js:1036 +#.TRANS: We can connect a block to another block. +msgid "connect blocks" msgstr "" -#: js/SensorsBlocks.js:809 -msgid "The Cursor Y block returns the vertical position of the mouse." +#: js/blocks/ProgramBlocks.js:1048 +msgid "target block" msgstr "" -#: js/SensorsBlocks.js:845 -msgid "cursor x" +#: js/blocks/ProgramBlocks.js:1048 +msgid "connection number" msgstr "" -#: js/SensorsBlocks.js:850 -msgid "The Cursor X block returns the horizontal position of the mouse." +#: js/blocks/ProgramBlocks.js:1140 +msgid "The Make block block creates a new block." msgstr "" -#: js/SensorsBlocks.js:886 -msgid "mouse button" +#: js/blocks/ProgramBlocks.js:1152 +#.TRANS: Create a new block +msgid "make block" msgstr "" -#: js/SensorsBlocks.js:888 -msgid "The Mouse-button block returns True if the mouse button is pressed." +#: js/blocks/ProgramBlocks.js:1285 +msgid "Cannot find block" msgstr "" -#: js/SensorsBlocks.js:934 -msgid "to ASCII" +#: js/blocks/ProgramBlocks.js:1304 +#: js/blocks/ProgramBlocks.js:1313 +msgid "Warning: block argument type mismatch" msgstr "" -#: js/SensorsBlocks.js:938 -msgid "The To ASCII block converts numbers to letters." +#: js/blocks/ProgramBlocks.js:1347 +msgid "The Open project block is used to open a project from a web page." msgstr "" -#: js/SensorsBlocks.js:1005 -msgid "The Keyboard block returns computer keyboard input." +#: js/blocks/ProgramBlocks.js:1357 +msgid "open project" msgstr "" -#: js/IntervalsActions.js:216 -msgid "Adding missing pitch number 0." +#: js/blocks/ProgramBlocks.js:1410 +msgid "Please enter a valid URL." msgstr "" -#: js/IntervalsActions.js:224 -msgid "Ignoring pitch numbers less than zero or greater than eleven." +#: js/blocks/ToneBlocks.js:34 +msgid "oscillator" msgstr "" -#: js/IntervalsActions.js:230 -msgid "Ignoring duplicate pitch numbers." +#: js/blocks/ToneBlocks.js:42 +#: js/blocks/WidgetBlocks.js:179 +#: js/widgets/timbre.js:1558 +#: js/widgets/timbre.js:1808 +#.TRANS: there are different types (sine, triangle, square...) of oscillators. +#.TRANS: type of filter, e.g., lowpass, highpass, etc. +msgid "type" msgstr "" -#: js/PitchActions.js:88 -msgid "The Scalar Step Block must be used inside of a Note Block." +#: js/blocks/ToneBlocks.js:44 +#: js/widgets/timbre.js:1562 +#.TRANS: Partials refers to the number of sine waves combined into the sound. +msgid "partials" msgstr "" -#: js/PitchActions.js:107 -msgid "The Scalar Step Block must be preceded by a Pitch Block." +#: js/blocks/ToneBlocks.js:76 +msgid "You are adding multiple oscillator blocks." msgstr "" -#: js/DrumActions.js:231 -msgid "Noise Block: Did you mean to use a Note block?" +#: js/blocks/ToneBlocks.js:144 +#: js/widgets/timbre.js:1225 +#.TRANS: a duo synthesizer combines a synth with a sequencer +msgid "duo synth" msgstr "" -#: js/MeterActions.js:101 -#: js/MeterActions.js:139 -msgid "beats per minute must be greater than" +#: js/blocks/ToneBlocks.js:149 +msgid "The Duo synth block is a duo-frequency modulator used to define a timbre." msgstr "" -#: js/MeterActions.js:111 -#: js/MeterActions.js:149 -msgid "maximum" +#: js/blocks/ToneBlocks.js:157 +#: js/widgets/timbre.js:1476 +msgid "vibrato rate" msgstr "" -#: js/MeterActions.js:117 -#: js/MeterActions.js:155 -msgid "beats per minute is" +#: js/blocks/ToneBlocks.js:157 +msgid "vibrato intensity" msgstr "" -#: js/ToneActions.js:134 -msgid "Vibrato intensity must be between 1 and 100." +#: js/blocks/ToneBlocks.js:185 +#: js/widgets/timbre.js:1221 +#.TRANS: AM (amplitude modulation) synthesizer +msgid "AM synth" msgstr "" -#: js/ToneActions.js:139 -msgid "Vibrato rate must be greater than 0." +#: js/blocks/ToneBlocks.js:189 +msgid "The AM synth block is an amplitude modulator used to define a timbre." msgstr "" -#: js/ToneActions.js:192 -#: js/ToneActions.js:265 -#.TRANS: Depth is the intesity of the tremolo or chorus effect. -msgid "Depth is out of range." +#: js/blocks/ToneBlocks.js:224 +#: js/widgets/timbre.js:1223 +#.TRANS: FM (frequency modulation) synthesizer +msgid "FM synth" msgstr "" -#: js/ToneActions.js:301 -msgid "Distortion must be from 0 to 100." +#: js/blocks/ToneBlocks.js:228 +msgid "The FM synth block is a frequency modulator used to define a timbre." msgstr "" -#: js/ToneActions.js:332 -#.TRANS: partials components in a harmonic series -msgid "Partial must be greater than or equal to 0." +#: js/blocks/ToneBlocks.js:262 +msgid "partial" msgstr "" -#: js/ToneActions.js:378 -#: js/ToneActions.js:417 -#: js/ToneActions.js:456 -#: js/timbre.js:782 -msgid "Unable to use synth due to existing oscillator" +#: js/blocks/ToneBlocks.js:265 +msgid "The Partial block is used to specify a weight for a specific partial harmonic." msgstr "" -#: js/ToneActions.js:388 -#: js/ToneActions.js:427 -msgid "The input cannot be negative." +#: js/blocks/ToneBlocks.js:284 +#.TRANS: partials are weighted components in a harmonic series +msgid "Partial weight must be between 0 and 1." msgstr "" -#: js/DictActions.js:75 -#: js/DictActions.js:153 -#: js/DictActions.js:188 -msgid "font" +#: js/blocks/ToneBlocks.js:297 +#.TRANS: partials are weighted components in a harmonic series +msgid "Partial block should be used inside of a Weighted-partials block." msgstr "" -#: js/musicutils.js:363 -#: js/musicutils.js:471 -#: js/pitchdrummatrix.js:151 -#: js/musickeyboard.js:2563 -msgid "rest" +#: js/blocks/ToneBlocks.js:325 +#.TRANS: partials are weighted components in a harmonic series +msgid "weighted partials" msgstr "" -#: js/musicutils.js:565 -#.TRANS: ordinal number. Please keep exactly one space between each number. -msgid "1st 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th" +#: js/blocks/ToneBlocks.js:383 +msgid "The Harmonic block will add harmonics to the contained notes." msgstr "" -#: js/musicutils.js:629 -#: js/musicutils.js:812 -#: js/musicutils.js:911 -#.TRANS: augmented is a music term related to intervals -msgid "augmented" +#: js/blocks/ToneBlocks.js:390 +#.TRANS: A harmonic is an overtone. +msgid "harmonic" msgstr "" -#: js/musicutils.js:631 -#: js/musicutils.js:813 -#: js/musicutils.js:910 -#.TRANS: diminished is a music term related to intervals and mode -msgid "diminished" +#: js/blocks/ToneBlocks.js:431 +msgid "The Distortion block adds distortion to the pitch." msgstr "" -#: js/musicutils.js:639 -#.TRANS: twelve semi-tone scale for music -msgid "chromatic" +#: js/blocks/ToneBlocks.js:438 +#: js/widgets/timbre.js:2100 +#.TRANS: distortion is an alteration in the sound +msgid "distortion" msgstr "" -#: js/musicutils.js:640 -msgid "algerian" +#: js/blocks/ToneBlocks.js:487 +msgid "The Tremolo block adds a wavering effect." msgstr "" -#: js/musicutils.js:641 -msgid "spanish" +#: js/blocks/ToneBlocks.js:495 +#: js/widgets/timbre.js:2092 +#.TRANS: a wavering effect in a musical tone +msgid "tremolo" msgstr "" -#: js/musicutils.js:643 -#.TRANS: modal scale in music -msgid "octatonic" +#: js/blocks/ToneBlocks.js:500 +#: js/blocks/ToneBlocks.js:569 +#: js/blocks/ToneBlocks.js:630 +#: js/blocks/ToneBlocks.js:689 +#: js/widgets/timbre.js:2134 +#: js/widgets/timbre.js:2222 +#: js/widgets/timbre.js:2317 +#: js/widgets/timbre.js:2419 +#.TRANS: rate at which tremolo wavers +msgid "rate" msgstr "" -#: js/musicutils.js:645 -#.TRANS: harmonic major scale in music -msgid "harmonic major" +#: js/blocks/ToneBlocks.js:502 +#: js/blocks/ToneBlocks.js:630 +#: js/widgets/timbre.js:2137 +#: js/widgets/timbre.js:2328 +#.TRANS: amplitude of tremolo waver +msgid "depth" msgstr "" -#: js/musicutils.js:647 -#.TRANS: natural minor scales in music -msgid "natural minor" +#: js/blocks/ToneBlocks.js:559 +msgid "The Phaser block adds a sweeping sound." msgstr "" -#: js/musicutils.js:649 -#.TRANS: harmonic minor scale in music -msgid "harmonic minor" +#: js/blocks/ToneBlocks.js:566 +#: js/widgets/timbre.js:2098 +#.TRANS: alter the phase of the sound +msgid "phaser" msgstr "" -#: js/musicutils.js:651 -#.TRANS: melodic minor scale in music -msgid "melodic minor" +#: js/blocks/ToneBlocks.js:569 +#: js/turtleactions/IntervalsActions.js:114 +#: js/widgets/timbre.js:2422 +msgid "octaves" msgstr "" -#: js/musicutils.js:655 -#.TRANS: modal scale for music -msgid "dorian" +#: js/blocks/ToneBlocks.js:569 +#: js/widgets/timbre.js:2425 +msgid "base frequency" msgstr "" -#: js/musicutils.js:657 -#.TRANS: modal scale for music -msgid "phrygian" +#: js/blocks/ToneBlocks.js:619 +msgid "The Chorus block adds a chorus effect." msgstr "" -#: js/musicutils.js:659 -#.TRANS: modal scale for music -msgid "lydian" +#: js/blocks/ToneBlocks.js:627 +#: js/widgets/timbre.js:2096 +#.TRANS: musical effect to simulate a choral sound +msgid "chorus" msgstr "" -#: js/musicutils.js:661 -#.TRANS: modal scale for music -msgid "mixolydian" +#: js/blocks/ToneBlocks.js:630 +msgid "delay" msgstr "" -#: js/musicutils.js:665 -#.TRANS: modal scale for music -msgid "locrian" +#: js/blocks/ToneBlocks.js:678 +msgid "The Vibrato block adds a rapid, slight variation in pitch." msgstr "" -#: js/musicutils.js:667 -#.TRANS: minor jazz scale for music -msgid "jazz minor" +#: js/blocks/ToneBlocks.js:686 +#: js/widgets/timbre.js:2094 +#.TRANS: a rapid, slight variation in pitch +msgid "vibrato" msgstr "" -#: js/musicutils.js:669 -#.TRANS: bebop scale for music -msgid "bebop" +#: js/blocks/ToneBlocks.js:689 +#: js/widgets/timbre.js:2221 +msgid "intensity" msgstr "" -#: js/musicutils.js:670 -msgid "arabic" +#: js/blocks/ToneBlocks.js:733 +#.TRANS: select synthesizer +msgid "set synth" msgstr "" -#: js/musicutils.js:671 -msgid "byzantine" +#: js/blocks/ToneBlocks.js:804 +msgid "synth name" msgstr "" -#: js/musicutils.js:673 -#.TRANS: musical scale for music by Verdi -msgid "enigmatic" +#: js/blocks/ToneBlocks.js:842 +msgid "set default instrument" msgstr "" -#: js/musicutils.js:674 -msgid "ethiopian" +#: js/blocks/ToneBlocks.js:895 +#: js/blocks/ToneBlocks.js:943 +#.TRANS: set the characteristics of a custom instrument +msgid "set instrument" msgstr "" -#: js/musicutils.js:676 -#.TRANS: Ethiopic scale for music -msgid "geez" +#: js/blocks/ToneBlocks.js:898 +#: js/blocks/ToneBlocks.js:926 +#: js/blocks/ToneBlocks.js:932 +msgid "The Set instrument block selects a voice for the synthesizer," msgstr "" -#: js/musicutils.js:677 -msgid "hindu" +#: js/blocks/ToneBlocks.js:900 +#: js/blocks/ToneBlocks.js:934 +msgid "eg guitar piano violin or cello." msgstr "" -#: js/musicutils.js:678 -msgid "hungarian" +#: js/blocks/ToneBlocks.js:1015 +msgid "Import a sound file to use as an instrument and set its pitch center." msgstr "" -#: js/musicutils.js:680 -#.TRANS: minor Romanian scale for music -msgid "romanian minor" +#: js/blocks/ToneBlocks.js:1110 +msgid "Upload a sound file to connect with the sample block." msgstr "" -#: js/musicutils.js:681 -msgid "spanish gypsy" +#: js/blocks/VolumeBlocks.js:35 +msgid "synth volume" msgstr "" -#: js/musicutils.js:683 -#.TRANS: musical scale for Mid-Eastern music -msgid "maqam" +#: js/blocks/VolumeBlocks.js:39 +msgid "The Synth volume block returns the current volume of the current synthesizer." msgstr "" -#: js/musicutils.js:685 -#.TRANS: minor blues scale for music -msgid "minor blues" +#: js/blocks/VolumeBlocks.js:105 +msgid "master volume" msgstr "" -#: js/musicutils.js:687 -#.TRANS: major blues scale for music -msgid "major blues" +#: js/blocks/VolumeBlocks.js:109 +msgid "The Master volume block returns the master volume." msgstr "" -#: js/musicutils.js:688 -msgid "whole tone" +#: js/blocks/VolumeBlocks.js:355 +#: js/blocks/VolumeBlocks.js:524 +msgid "set synth volume" msgstr "" -#: js/musicutils.js:690 -#.TRANS: pentatonic is a general term that means "five note scale". This scale is typically known as "minor pentatonic" -msgid "minor pentatonic" +#: js/blocks/VolumeBlocks.js:362 +#: js/blocks/VolumeBlocks.js:545 +msgid "synth" msgstr "" -#: js/musicutils.js:692 -#.TRANS: pentatonic is a general term that means "five note scale". This scale is typically known as "major pentatonic" -msgid "major pentatonic" +#: js/blocks/VolumeBlocks.js:403 +#: js/blocks/VolumeBlocks.js:577 +#: js/blocks/VolumeBlocks.js:740 +#: js/turtleactions/VolumeActions.js:173 +msgid "Setting volume to 0." msgstr "" -#: js/musicutils.js:693 -msgid "chinese" +#: js/blocks/VolumeBlocks.js:440 +msgid "Synth not found" msgstr "" -#: js/musicutils.js:694 -msgid "egyptian" +#: js/blocks/VolumeBlocks.js:494 +msgid "set drum volume" msgstr "" -#: js/musicutils.js:696 -#.TRANS: https://en.wikipedia.org/wiki/Hirajoshi_scale NOTE: There are three different versions of this scale -msgid "hirajoshi" +#: js/blocks/VolumeBlocks.js:530 +msgid "The Set synth volume block will change the volume of a particular synth," msgstr "" -#: js/musicutils.js:697 -msgid "Japan" +#: js/blocks/VolumeBlocks.js:532 +msgid "eg guitar violin snare drum etc." msgstr "" -#: js/musicutils.js:699 -#.TRANS: https://en.wikipedia.org/wiki/In_scale and https://en.wikipedia.org/wiki/Sakura_Sakura -msgid "in" +#: js/blocks/VolumeBlocks.js:534 +msgid "The default volume is 50." msgstr "" -#: js/musicutils.js:701 -#.TRANS: https://en.wikipedia.org/wiki/Miny%C5%8D_scale -msgid "minyo" +#: js/blocks/VolumeBlocks.js:536 +msgid "The range is 0 for silence to 100 for full volume." msgstr "" -#: js/musicutils.js:703 -#.TRANS: Italian mathematician -msgid "fibonacci" +#: js/blocks/VolumeBlocks.js:597 +msgid "set panning" msgstr "" -#: js/musicutils.js:708 -#: js/musicutils.js:1106 -#.TRANS: lowpass filter -msgid "lowpass" +#: js/blocks/VolumeBlocks.js:603 +msgid "The Set Panning block sets the panning for all synthesizers." msgstr "" -#: js/musicutils.js:710 -#: js/musicutils.js:1107 -#.TRANS: bandpass filter -msgid "bandpass" +#: js/blocks/VolumeBlocks.js:625 +msgid "Warning: Sound is coming out from only the left or right side." msgstr "" -#: js/musicutils.js:712 -#: js/musicutils.js:1108 -#.TRANS: high-shelf filter -msgid "highshelf" +#: js/blocks/VolumeBlocks.js:647 +#: js/blocks/VolumeBlocks.js:695 +msgid "set master volume" msgstr "" -#: js/musicutils.js:714 -#: js/musicutils.js:1109 -#.TRANS: low-shelf filter -msgid "lowshelf" +#: js/blocks/VolumeBlocks.js:653 +msgid "The Set master volume block sets the volume for all synthesizers." msgstr "" -#: js/musicutils.js:716 -#: js/musicutils.js:1110 -#.TRANS: notch-shelf filter -msgid "notch" +#: js/blocks/VolumeBlocks.js:784 +msgid "The Set relative volume block changes the volume of the contained notes." msgstr "" -#: js/musicutils.js:718 -#: js/musicutils.js:1111 -#.TRANS: all-pass filter -msgid "allpass" +#: js/blocks/VolumeBlocks.js:791 +msgid "set relative volume" msgstr "" -#: js/musicutils.js:720 -#: js/musicutils.js:1112 -#.TRANS: peaking filter -msgid "peaking" +#: js/blocks/VolumeBlocks.js:857 +msgid "decrescendo" msgstr "" -#: js/musicutils.js:731 -#: js/synthutils.js:58 -#.TRANS: musical instrument -msgid "violin" +#: js/blocks/VolumeBlocks.js:921 +msgid "crescendo" msgstr "" -#: js/musicutils.js:732 -#: js/synthutils.js:60 -#.TRANS: viola musical instrument -msgid "viola" +#: js/blocks/WidgetBlocks.js:81 +#.TRANS: sound envelope (ADSR) +msgid "envelope" msgstr "" -#: js/musicutils.js:733 -#: js/synthutils.js:98 -#.TRANS: xylophone musical instrument -msgid "xylophone" +#: js/blocks/WidgetBlocks.js:89 +#.TRANS: Attack time is the time taken for initial run-up of level from nil to peak, beginning when the key is first pressed. +msgid "attack" msgstr "" -#: js/musicutils.js:734 -#: js/synthutils.js:120 -#.TRANS: vibraphone musical instrument -msgid "vibraphone" +#: js/blocks/WidgetBlocks.js:91 +#.TRANS: Decay time is the time taken for the subsequent run down from the attack level to the designated sustain level. +msgid "decay" msgstr "" -#: js/musicutils.js:735 -#: js/synthutils.js:62 -#.TRANS: musical instrument -msgid "cello" +#: js/blocks/WidgetBlocks.js:93 +#.TRANS: Sustain level is the level during the main sequence of the sound's duration, until the key is released. +msgid "sustain" msgstr "" -#: js/musicutils.js:737 -#: js/synthutils.js:66 -#.TRANS: viola musical instrument -msgid "double bass" +#: js/blocks/WidgetBlocks.js:95 +#.TRANS: Release time is the time taken for the level to decay from the sustain level to zero after the key is released. +msgid "release" msgstr "" -#: js/musicutils.js:738 -#: js/synthutils.js:68 -#: js/rhythmruler.js:2119 -#.TRANS: musical instrument -msgid "guitar" +#: js/blocks/WidgetBlocks.js:113 +msgid "Attack value should be from 0 to 100." msgstr "" -#: js/musicutils.js:739 -#: js/synthutils.js:70 -#.TRANS: musical instrument -msgid "acoustic guitar" +#: js/blocks/WidgetBlocks.js:116 +msgid "Decay value should be from 0 to 100." msgstr "" -#: js/musicutils.js:740 -#: js/synthutils.js:72 -#.TRANS: musical instrument -msgid "flute" +#: js/blocks/WidgetBlocks.js:119 +msgid "Sustain value should be from 0 to 100." msgstr "" -#: js/musicutils.js:741 -#: js/synthutils.js:74 -#.TRANS: musical instrument -msgid "clarinet" +#: js/blocks/WidgetBlocks.js:122 +msgid "Release value should be from 0-100." msgstr "" -#: js/musicutils.js:742 -#: js/synthutils.js:76 -#.TRANS: musical instrument -msgid "saxophone" +#: js/blocks/WidgetBlocks.js:140 +msgid "You are adding multiple envelope blocks." msgstr "" -#: js/musicutils.js:743 -#: js/synthutils.js:78 -#.TRANS: musical instrument -msgid "tuba" +#: js/blocks/WidgetBlocks.js:171 +#.TRANS: a filter removes some unwanted components from a signal +msgid "filter" msgstr "" -#: js/musicutils.js:744 -#: js/synthutils.js:80 -#.TRANS: musical instrument -msgid "trumpet" +#: js/blocks/WidgetBlocks.js:181 +#: js/widgets/timbre.js:1818 +#.TRANS: rolloff is the steepness of a change in frequency. +msgid "rolloff" msgstr "" -#: js/musicutils.js:745 -#: js/synthutils.js:82 -#.TRANS: musical instrument -msgid "oboe" +#: js/blocks/WidgetBlocks.js:213 +#.TRANS: rolloff is the steepness of a change in frequency. +msgid "Rolloff value should be either -12, -24, -48, or -96 decibels/octave." msgstr "" -#: js/musicutils.js:746 -#: js/synthutils.js:84 -#.TRANS: musical instrument -msgid "trombone" +#: js/blocks/WidgetBlocks.js:252 +msgid "The Temperament tool is used to define custom tuning." msgstr "" -#: js/musicutils.js:747 -#: js/synthutils.js:100 -#.TRANS: polytone synthesizer -msgid "electronic synth" +#: js/blocks/WidgetBlocks.js:332 +#: js/blocks/WidgetBlocks.js:1573 +#: js/widgets/sampler.js:547 +msgid "Upload a sample and adjust its pitch center." msgstr "" -#: js/musicutils.js:748 -#: js/synthutils.js:102 -#.TRANS: simple monotone synthesizer -msgid "simple 1" +#: js/blocks/WidgetBlocks.js:339 +#.TRANS: the speed at music is should be played. +msgid "sampler" +msgstr "" + +#: js/blocks/WidgetBlocks.js:517 +msgid "The Meter block opens a tool to select strong beats for the meter." msgstr "" -#: js/musicutils.js:749 -msgid "simple 2" +#: js/blocks/WidgetBlocks.js:573 +msgid "The oscilloscope block opens a tool to visualize waveforms." msgstr "" -#: js/musicutils.js:750 -msgid "simple 3" +#: js/blocks/WidgetBlocks.js:578 +msgid "oscilloscope" msgstr "" -#: js/musicutils.js:751 -msgid "simple 4" +#: js/blocks/WidgetBlocks.js:645 +msgid "The Custom mode block opens a tool to explore musical mode (the spacing of the notes in a scale)." msgstr "" -#: js/musicutils.js:753 -#: js/synthutils.js:49 -#.TRANS: brown noise synthesizer -msgid "brown noise" +#: js/blocks/WidgetBlocks.js:651 +#.TRANS: musical mode is the pattern of half-steps in an octave, e.g., Major or Minor modes +msgid "custom mode" msgstr "" -#: js/musicutils.js:754 -#: js/synthutils.js:51 -#.TRANS: pink noise synthesizer -msgid "pink noise" +#: js/blocks/WidgetBlocks.js:700 +msgid "The Tempo block opens a metronome to visualize the beat." msgstr "" -#: js/musicutils.js:756 -#: js/synthutils.js:127 -#: js/rhythmruler.js:1670 -#: js/rhythmruler.js:1928 -#.TRANS: musical instrument -msgid "snare drum" +#: js/blocks/WidgetBlocks.js:762 +msgid "The Arpeggio Widget is used to compose chord sequences." msgstr "" -#: js/musicutils.js:757 -#: js/synthutils.js:129 -#.TRANS: musical instrument -msgid "kick drum" +#: js/blocks/WidgetBlocks.js:837 +msgid "The Pitch drum matrix is used to map pitches to drum sounds." msgstr "" -#: js/musicutils.js:758 -#: js/synthutils.js:131 -#.TRANS: musical instrument -msgid "tom tom" +#: js/blocks/WidgetBlocks.js:842 +#.TRANS: makes a mapping between pitches and drum sounds +msgid "pitch-drum mapper" msgstr "" -#: js/musicutils.js:759 -#: js/synthutils.js:133 -#.TRANS: musical instrument -msgid "floor tom" +#: js/blocks/WidgetBlocks.js:891 +msgid "You must have at least one pitch block and one drum block in the matrix." msgstr "" -#: js/musicutils.js:760 -#: js/synthutils.js:135 -#.TRANS: musical instrument -msgid "bass drum" +#: js/blocks/WidgetBlocks.js:920 +msgid "The Pitch slider tool to is used to generate pitches at selected frequencies." msgstr "" -#: js/musicutils.js:761 -#: js/synthutils.js:137 -#.TRANS: a drum made from an inverted cup -msgid "cup drum" +#: js/blocks/WidgetBlocks.js:925 +#.TRANS: widget to generate pitches using a slider +msgid "pitch slider" msgstr "" -#: js/musicutils.js:762 -#: js/synthutils.js:139 -#.TRANS: musical instrument -msgid "darbuka drum" +#: js/blocks/WidgetBlocks.js:977 +msgid "chromatic keyboard" msgstr "" -#: js/musicutils.js:763 -#: js/synthutils.js:143 -#.TRANS: musical instrument -msgid "hi hat" +#: js/blocks/WidgetBlocks.js:1011 +#: js/blocks/WidgetBlocks.js:1077 +#.TRANS: widget to generate pitches using a slider +msgid "music keyboard" msgstr "" -#: js/musicutils.js:764 -#: js/synthutils.js:145 -#.TRANS: a small metal bell -msgid "ride bell" +#: js/blocks/WidgetBlocks.js:1062 +#: js/blocks/WidgetBlocks.js:1069 +msgid "The Music keyboard block opens a piano keyboard that can be used to create notes." msgstr "" -#: js/musicutils.js:765 -#: js/synthutils.js:147 -#.TRANS: musical instrument -msgid "cow bell" +#: js/blocks/WidgetBlocks.js:1128 +msgid "The Pitch staircase tool to is used to generate pitches from a given ratio." msgstr "" -#: js/musicutils.js:766 -msgid "japanese drum" +#: js/blocks/WidgetBlocks.js:1135 +#.TRANS: generate a progressive sequence of pitches +msgid "pitch staircase" msgstr "" -#: js/musicutils.js:767 -#: js/synthutils.js:153 -#.TRANS: musical instrument -msgid "japanese bell" +#: js/blocks/WidgetBlocks.js:1222 +msgid "The Rhythm Maker block opens a tool to create drum machines." msgstr "" -#: js/musicutils.js:768 -#: js/synthutils.js:149 -#.TRANS: musical instrument -msgid "triangle bell" +#: js/blocks/WidgetBlocks.js:1291 +msgid "G major scale" msgstr "" -#: js/musicutils.js:769 -#: js/synthutils.js:151 -#.TRANS: musical instrument -msgid "finger cymbals" +#: js/blocks/WidgetBlocks.js:1326 +msgid "C major scale" msgstr "" -#: js/musicutils.js:770 -#: js/synthutils.js:155 -#.TRANS: a musically tuned set of bells -msgid "chime" +#: js/blocks/WidgetBlocks.js:1366 +msgid "The Phrase Maker block opens a tool to create musical phrases." msgstr "" -#: js/musicutils.js:771 -#: js/synthutils.js:157 -#.TRANS: a musical instrument -msgid "gong" +#: js/blocks/WidgetBlocks.js:1373 +#.TRANS: assigns pitch to a sequence of beats to generate a melody +msgid "phrase maker" msgstr "" -#: js/musicutils.js:772 -#: js/synthutils.js:159 -#.TRANS: sound effect -msgid "clang" +#: js/blocks/WidgetBlocks.js:1444 +msgid "You must have at least one pitch block and one rhythm block in the matrix." msgstr "" -#: js/musicutils.js:773 -#: js/synthutils.js:161 -#.TRANS: sound effect -msgid "crash" +#: js/blocks/WidgetBlocks.js:1503 +msgid "The Status block opens a tool for inspecting the status of Music Blocks as it is running." msgstr "" -#: js/musicutils.js:774 -#: js/synthutils.js:163 -#.TRANS: sound effect -msgid "bottle" +#: js/blocks/WidgetBlocks.js:1580 +#.TRANS: AI-generated music +msgid "aimusic" msgstr "" -#: js/musicutils.js:775 -#: js/synthutils.js:165 -#.TRANS: sound effect -msgid "clap" +#: js/turtleactions/MeterActions.js:101 +#: js/turtleactions/MeterActions.js:139 +msgid "beats per minute must be greater than" msgstr "" -#: js/musicutils.js:776 -#: js/synthutils.js:167 -#.TRANS: sound effect -msgid "slap" +#: js/turtleactions/MeterActions.js:111 +#: js/turtleactions/MeterActions.js:149 +msgid "maximum" msgstr "" -#: js/musicutils.js:777 -#: js/synthutils.js:169 -#.TRANS: sound effect -msgid "splash" +#: js/turtleactions/MeterActions.js:117 +#: js/turtleactions/MeterActions.js:155 +msgid "beats per minute is" msgstr "" -#: js/musicutils.js:778 -#: js/synthutils.js:171 -#.TRANS: sound effect -msgid "bubbles" +#: js/turtleactions/DictActions.js:75 +#: js/turtleactions/DictActions.js:142 +#: js/turtleactions/DictActions.js:172 +msgid "font" msgstr "" -#: js/musicutils.js:779 -#: js/synthutils.js:173 -#.TRANS: sound effect -msgid "raindrop" +#: js/turtleactions/DictActions.js:255 +msgid "Dictionary with this name does not exist" msgstr "" -#: js/musicutils.js:780 -#: js/synthutils.js:175 -#.TRANS: animal sound effect -msgid "cat" +#: js/turtleactions/DictActions.js:259 +msgid "Key with this name does not exist in " msgstr "" -#: js/musicutils.js:781 -#: js/synthutils.js:177 -#.TRANS: animal sound effect -msgid "cricket" +#: js/turtleactions/DrumActions.js:227 +msgid "Noise Block: Did you mean to use a Note block?" msgstr "" -#: js/musicutils.js:782 -#: js/synthutils.js:179 -#.TRANS: animal sound effect -msgid "dog" +#: js/turtleactions/IntervalsActions.js:113 +msgid "one" msgstr "" -#: js/musicutils.js:784 -#: js/synthutils.js:86 -#.TRANS: musical instrument -msgid "banjo" +#: js/turtleactions/IntervalsActions.js:113 +msgid "two" msgstr "" -#: js/musicutils.js:785 -#: js/synthutils.js:88 -#.TRANS: musical instrument -msgid "koto" +#: js/turtleactions/IntervalsActions.js:113 +msgid "three" msgstr "" -#: js/musicutils.js:786 -#: js/synthutils.js:90 -#.TRANS: musical instrument -msgid "dulcimer" +#: js/turtleactions/IntervalsActions.js:113 +msgid "four" msgstr "" -#: js/musicutils.js:787 -#: js/synthutils.js:92 -#.TRANS: musical instrument -msgid "electric guitar" +#: js/turtleactions/IntervalsActions.js:113 +msgid "five" msgstr "" -#: js/musicutils.js:788 -#: js/synthutils.js:94 -#.TRANS: musical instrument -msgid "bassoon" +#: js/turtleactions/IntervalsActions.js:113 +msgid "six" msgstr "" -#: js/musicutils.js:789 -#: js/synthutils.js:96 -#.TRANS: musical instrument -msgid "celeste" +#: js/turtleactions/IntervalsActions.js:113 +msgid "seven" msgstr "" -#: js/musicutils.js:791 -#: js/musicutils.js:1123 -#: js/musicutils.js:1131 -#: js/temperament.js:650 -#.TRANS: musical temperament -msgid "equal" +#: js/turtleactions/IntervalsActions.js:113 +msgid "eight" msgstr "" -#: js/musicutils.js:793 -#: js/musicutils.js:1125 -#: js/musicutils.js:1133 -#.TRANS: musical temperament -msgid "Pythagorean" +#: js/turtleactions/IntervalsActions.js:113 +msgid "nine" msgstr "" -#: js/musicutils.js:795 -#: js/musicutils.js:1124 -#: js/musicutils.js:1132 -#.TRANS: musical temperament -msgid "just intonation" +#: js/turtleactions/IntervalsActions.js:119 +msgid "a" msgstr "" -#: js/musicutils.js:797 -#: js/musicutils.js:1126 -#: js/musicutils.js:1127 -#: js/musicutils.js:1134 -#: js/musicutils.js:1135 -#.TRANS: musical temperament -msgid "meantone" +#: js/turtleactions/IntervalsActions.js:120 +msgid "below" msgstr "" -#: js/musicutils.js:814 -msgid "major 7th" +#: js/turtleactions/IntervalsActions.js:124 +msgid "above" msgstr "" -#: js/musicutils.js:815 -msgid "minor 7th" +#: js/turtleactions/IntervalsActions.js:131 +msgid "plus" msgstr "" -#: js/musicutils.js:816 -msgid "dominant 7th" +#: js/turtleactions/IntervalsActions.js:139 +msgid " below" msgstr "" -#: js/musicutils.js:817 -msgid "minor-major 7th" +#: js/turtleactions/IntervalsActions.js:257 +msgid "Adding missing pitch number 0." msgstr "" -#: js/musicutils.js:818 -msgid "fully-diminished 7th" +#: js/turtleactions/IntervalsActions.js:265 +msgid "Ignoring pitch numbers less than zero or greater than eleven." msgstr "" -#: js/musicutils.js:819 -msgid "half-diminished 7th" +#: js/turtleactions/IntervalsActions.js:271 +msgid "Ignoring duplicate pitch numbers." msgstr "" -#: js/musicutils.js:4379 -#: js/musicutils.js:4416 -msgid "current" +#: js/turtleactions/ToneActions.js:134 +msgid "Vibrato intensity must be between 1 and 100." msgstr "" -#: js/musicutils.js:4382 -#: js/musicutils.js:4407 -msgid "next" +#: js/turtleactions/ToneActions.js:139 +msgid "Vibrato rate must be greater than 0." msgstr "" -#: js/musicutils.js:4385 -#: js/musicutils.js:4412 -msgid "previous" +#: js/turtleactions/ToneActions.js:192 +#: js/turtleactions/ToneActions.js:265 +#.TRANS: Depth is the intesity of the tremolo or chorus effect. +msgid "Depth is out of range." msgstr "" -#: js/synthutils.js:104 -#.TRANS: simple monotone synthesizer -msgid "simple-2" +#: js/turtleactions/ToneActions.js:301 +msgid "Distortion must be from 0 to 100." msgstr "" -#: js/synthutils.js:106 -#.TRANS: simple monotone synthesizer -msgid "simple-3" +#: js/turtleactions/ToneActions.js:332 +#.TRANS: partials components in a harmonic series +msgid "Partial must be greater than or equal to 0." msgstr "" -#: js/synthutils.js:108 -#.TRANS: simple monotone synthesizer -msgid "simple-4" +#: js/turtleactions/ToneActions.js:378 +#: js/turtleactions/ToneActions.js:417 +#: js/turtleactions/ToneActions.js:456 +#: js/widgets/timbre.js:782 +msgid "Unable to use synth due to existing oscillator" msgstr "" -#: js/synthutils.js:141 -#.TRANS: musical instrument -msgid "taiko" +#: js/turtleactions/ToneActions.js:388 +#: js/turtleactions/ToneActions.js:427 +msgid "The input cannot be negative." msgstr "" -#: js/modewidget.js:86 -#: js/modewidget.js:88 -#: js/modewidget.js:642 -#: js/modewidget.js:644 -#: js/modewidget.js:712 -#: js/modewidget.js:714 -#: js/temperament.js:2078 -#: js/rhythmruler.js:189 -#: js/rhythmruler.js:1410 -#: js/rhythmruler.js:1412 -#: js/rhythmruler.js:1435 -#: js/rhythmruler.js:1437 -#: js/meterwidget.js:89 -#: js/meterwidget.js:91 +#: js/widgets/modewidget.js:86 +#: js/widgets/modewidget.js:88 +#: js/widgets/modewidget.js:642 +#: js/widgets/modewidget.js:644 +#: js/widgets/modewidget.js:712 +#: js/widgets/modewidget.js:714 +#: js/widgets/meterwidget.js:194 +#: js/widgets/meterwidget.js:196 +#: js/widgets/temperament.js:2236 +#: js/widgets/rhythmruler.js:457 +#: js/widgets/rhythmruler.js:1790 +#: js/widgets/rhythmruler.js:1792 +#: js/widgets/rhythmruler.js:1816 +#: js/widgets/rhythmruler.js:1818 msgid "Play all" msgstr "" -#: js/modewidget.js:115 -#: js/pitchstaircase.js:641 -#: js/phrasemaker.js:339 -#: js/pitchdrummatrix.js:94 -#: js/pitchslider.js:125 -#: js/temperament.js:2083 -#: js/musickeyboard.js:530 -#: js/timbre.js:756 -#: js/meterwidget.js:124 -#: js/arpeggio.js:103 +#: js/widgets/modewidget.js:115 +#: js/widgets/meterwidget.js:229 +#: js/widgets/pitchdrummatrix.js:166 +#: js/widgets/pitchslider.js:125 +#: js/widgets/pitchstaircase.js:641 +#: js/widgets/temperament.js:2244 +#: js/widgets/timbre.js:756 +#: js/widgets/arpeggio.js:103 +#: js/widgets/musickeyboard.js:688 +#: js/widgets/phrasemaker.js:550 msgid "Save" msgstr "" -#: js/modewidget.js:121 -#: js/pitchstaircase.js:686 -#: js/phrasemaker.js:356 -#: js/pitchdrummatrix.js:109 -#: js/musickeyboard.js:534 -#: js/rhythmruler.js:269 -#: js/arpeggio.js:118 +#: js/widgets/modewidget.js:121 +#: js/widgets/pitchdrummatrix.js:181 +#: js/widgets/pitchstaircase.js:686 +#: js/widgets/arpeggio.js:118 +#: js/widgets/musickeyboard.js:696 +#: js/widgets/phrasemaker.js:567 +#: js/widgets/rhythmruler.js:601 #.TRANS: clear all subdivisions from the ruler. msgid "Clear" msgstr "" -#: js/modewidget.js:127 +#: js/widgets/modewidget.js:127 msgid "Rotate counter clockwise" msgstr "" -#: js/modewidget.js:133 +#: js/widgets/modewidget.js:133 msgid "Rotate clockwise" msgstr "" -#: js/modewidget.js:139 +#: js/widgets/modewidget.js:139 msgid "Invert" msgstr "" -#: js/modewidget.js:145 -#: js/pitchstaircase.js:678 -#: js/rhythmruler.js:258 -#: js/timbre.js:963 +#: js/widgets/modewidget.js:145 +#: js/widgets/pitchstaircase.js:678 +#: js/widgets/timbre.js:963 +#: js/widgets/rhythmruler.js:578 msgid "Undo" msgstr "" -#: js/modewidget.js:163 +#: js/widgets/modewidget.js:163 #.TRANS: A circle of notes represents the musical mode. msgid "Click in the circle to select notes for the mode." msgstr "" -#: js/modewidget.js:1017 -#: js/pitchstaircase.js:580 -#: js/phrasemaker.js:4855 -#: js/temperament.js:1754 -#: js/rhythmruler.js:1865 -#: js/rhythmruler.js:2081 -#: js/tempo.js:414 +#: js/widgets/modewidget.js:1017 +#: js/widgets/pitchstaircase.js:580 +#: js/widgets/temperament.js:1929 +#: js/widgets/tempo.js:414 +#: js/widgets/phrasemaker.js:5356 +#: js/widgets/rhythmruler.js:2254 +#: js/widgets/rhythmruler.js:2472 msgid "New action block generated!" msgstr "" -#: js/oscilloscope.js:79 -msgid "Zoom In" -msgstr "" - -#: js/oscilloscope.js:88 -msgid "Zoom Out" -msgstr "" - -#: js/pitchstaircase.js:624 -msgid "Play chord" -msgstr "" - -#: js/pitchstaircase.js:632 -msgid "Play scale" +#: js/widgets/meterwidget.js:275 +msgid "Reset" msgstr "" -#: js/pitchstaircase.js:696 -msgid "Click on a note to create a new step." +#: js/widgets/meterwidget.js:301 +msgid "Click in the circle to select strong beats for the meter." msgstr "" -#: js/phrasemaker.js:363 -msgid "Export" +#: js/widgets/oscilloscope.js:79 +msgid "Zoom In" msgstr "" -#: js/phrasemaker.js:370 -msgid "Sort" +#: js/widgets/oscilloscope.js:88 +msgid "Zoom Out" msgstr "" -#: js/phrasemaker.js:373 -#: js/musickeyboard.js:559 -msgid "Add note" +#: js/widgets/pitchdrummatrix.js:356 +#: js/widgets/pitchdrummatrix.js:752 +msgid "Click in the grid to map notes to drums." msgstr "" -#: js/phrasemaker.js:764 -msgid "Click on the table to add notes." +#: js/widgets/pitchslider.js:103 +msgid "Move up" msgstr "" -#: js/phrasemaker.js:2414 -#: js/phrasemaker.js:2543 -msgid "tuplet value" +#: js/widgets/pitchslider.js:114 +msgid "Move down" msgstr "" -#: js/pitchdrummatrix.js:270 -#: js/pitchdrummatrix.js:639 -msgid "Click in the grid to map notes to drums." +#: js/widgets/pitchslider.js:136 +msgid "Click on the slider to create a note block." msgstr "" -#: js/pitchslider.js:103 -msgid "Move up" +#: js/widgets/pitchstaircase.js:624 +msgid "Play chord" msgstr "" -#: js/pitchslider.js:114 -msgid "Move down" +#: js/widgets/pitchstaircase.js:632 +msgid "Play scale" msgstr "" -#: js/pitchslider.js:136 -msgid "Click on the slider to create a note block." +#: js/widgets/pitchstaircase.js:696 +msgid "Click on a note to create a new step." msgstr "" -#: js/temperament.js:215 +#: js/widgets/temperament.js:321 msgid "back to 2:1 octave space" msgstr "" -#: js/temperament.js:323 +#: js/widgets/temperament.js:447 msgid "edit" msgstr "" -#: js/temperament.js:330 -#: js/temperament.js:332 -#: js/temperament.js:1336 -#: js/temperament.js:1338 +#: js/widgets/temperament.js:454 +#: js/widgets/temperament.js:456 +#: js/widgets/temperament.js:1493 +#: js/widgets/temperament.js:1495 msgid "close" msgstr "" -#: js/temperament.js:423 -#: js/temperament.js:736 -#: js/temperament.js:743 -#: js/temperament.js:845 -#: js/temperament.js:935 -#: js/temperament.js:942 -#: js/temperament.js:1015 -#: js/temperament.js:1284 -#: js/temperament.js:1354 -#: js/temperament.js:1430 +#: js/widgets/temperament.js:552 +#: js/widgets/temperament.js:877 +#: js/widgets/temperament.js:884 +#: js/widgets/temperament.js:986 +#: js/widgets/temperament.js:1080 +#: js/widgets/temperament.js:1087 +#: js/widgets/temperament.js:1160 +#: js/widgets/temperament.js:1433 +#: js/widgets/temperament.js:1511 +#: js/widgets/temperament.js:1596 msgid "done" msgstr "" -#: js/temperament.js:477 -#: js/temperament.js:482 -#: js/temperament.js:918 +#: js/widgets/temperament.js:610 +#: js/widgets/temperament.js:615 +#: js/widgets/temperament.js:1063 msgid "ratio" msgstr "" -#: js/temperament.js:483 +#: js/widgets/temperament.js:616 msgid "interval" msgstr "" -#: js/temperament.js:611 +#: js/widgets/temperament.js:744 msgid "non scalar" msgstr "" -#: js/temperament.js:650 +#: js/widgets/temperament.js:787 msgid "ratios" msgstr "" -#: js/temperament.js:650 +#: js/widgets/temperament.js:787 msgid "arbitrary" msgstr "" -#: js/temperament.js:719 +#: js/widgets/temperament.js:860 msgid "number of divisions" msgstr "" -#: js/temperament.js:741 -#: js/temperament.js:858 -#: js/temperament.js:940 -#: js/temperament.js:1033 +#: js/widgets/temperament.js:882 +#: js/widgets/temperament.js:999 +#: js/widgets/temperament.js:1085 +#: js/widgets/temperament.js:1178 msgid "preview" msgstr "" -#: js/temperament.js:788 +#: js/widgets/temperament.js:929 msgid "The Number of divisions is too large." msgstr "" -#: js/temperament.js:921 +#: js/widgets/temperament.js:1066 msgid "recursion" msgstr "" -#: js/temperament.js:1450 +#: js/widgets/temperament.js:1616 msgid "The octave ratio has changed. This changes temperament significantly." msgstr "" -#: js/temperament.js:2087 +#: js/widgets/temperament.js:2248 msgid "Table" msgstr "" -#: js/temperament.js:2185 +#: js/widgets/temperament.js:2356 msgid "Add pitches" msgstr "" -#: js/musickeyboard.js:570 -msgid "Metronome" +#: js/widgets/tempo.js:78 +#: js/widgets/tempo.js:97 +#: js/widgets/tempo.js:99 +#: js/widgets/aiwidget.js:134 +#: js/widgets/aiwidget.js:136 +#: js/widgets/rhythmruler.js:681 +#: js/widgets/rhythmruler.js:683 +#: js/widgets/rhythmruler.js:1864 +#: js/widgets/rhythmruler.js:1866 +#: js/widgets/sampler.js:180 +#: js/widgets/sampler.js:182 +msgid "Pause" msgstr "" -#: js/musickeyboard.js:1296 -#: plugins/rodi.rtp:193 -msgid "duration" -msgstr "roanga" +#: js/widgets/tempo.js:113 +msgid "Save tempo" +msgstr "" -#: js/musickeyboard.js:2840 -msgid "New action blocks generated!" +#: js/widgets/tempo.js:144 +msgid "speed up" msgstr "" -#: js/musickeyboard.js:2841 -msgid "New action block generated" +#: js/widgets/tempo.js:150 +msgid "slow down" msgstr "" -#: js/musickeyboard.js:2984 -#: js/musickeyboard.js:2992 -msgid "MIDI device present." +#: js/widgets/tempo.js:194 +msgid "Adjust the tempo with the buttons." msgstr "" -#: js/musickeyboard.js:2995 -msgid "No MIDI device found." +#: js/widgets/tempo.js:261 +msgid "Please enter a number between 30 and 1000" msgstr "" -#: js/musickeyboard.js:3000 -msgid "Failed to get MIDI access in browser." +#: js/widgets/tempo.js:268 +#: js/widgets/tempo.js:271 +msgid "The beats per minute must be between 30 and 1000." msgstr "" -#: js/rhythmruler.js:202 -msgid "Save rhythms" +#: js/widgets/tempo.js:287 +msgid "The beats per minute must be below 1000." msgstr "" -#: js/rhythmruler.js:222 -msgid "Save drum machine" +#: js/widgets/tempo.js:303 +msgid "The beats per minute must be above 30" msgstr "" -#: js/rhythmruler.js:263 -#.TRANS: user can tap out a rhythm by clicking on a ruler. -msgid "Tap a rhythm" +#: js/widgets/timbre.js:766 +msgid "Synthesizer" msgstr "" -#: js/rhythmruler.js:342 -#: js/rhythmruler.js:344 -#: js/rhythmruler.js:1481 -#: js/rhythmruler.js:1483 -#: js/sampler.js:110 -#: js/sampler.js:112 -#: js/tempo.js:78 -#: js/tempo.js:97 -#: js/tempo.js:99 -msgid "Pause" +#: js/widgets/timbre.js:789 +msgid "Oscillator" msgstr "" -#: js/rhythmruler.js:478 -msgid "Click on the ruler to divide it." +#: js/widgets/timbre.js:840 +msgid "Envelope" msgstr "" -#: js/rhythmruler.js:603 -#: js/rhythmruler.js:605 -#: js/rhythmruler.js:804 -#: js/rhythmruler.js:806 -#: js/rhythmruler.js:1386 -#: js/rhythmruler.js:1388 -msgid "tap a rhythm" +#: js/widgets/timbre.js:886 +#: planet/js/GlobalTag.js:50 +#.TRANS: On the Planet, we use labels to tag projects. +msgid "Effects" msgstr "" -#: js/rhythmruler.js:1084 -msgid "Maximum value of 256 has been exceeded." +#: js/widgets/timbre.js:904 +msgid "Filter" msgstr "" -#: js/sampler.js:137 -msgid "Warning: Sample is bigger than 1MB." +#: js/widgets/timbre.js:946 +msgid "Add filter" msgstr "" -#: js/sampler.js:142 -msgid "Upload failed: Sample is not a .wav file." +#: js/widgets/timbre.js:987 +msgid "Click on buttons to open the timbre design tools." msgstr "" -#: js/sampler.js:164 -msgid "A new sample block was generated." +#: js/widgets/timbre.js:1273 +msgid "harmonicity" msgstr "" -#: js/sampler.js:255 -msgid "Upload sample" +#: js/widgets/timbre.js:1340 +#: js/widgets/timbre.js:1406 +msgid "modulation index" msgstr "" -#: js/sampler.js:306 -msgid "Save sample" +#: js/widgets/timbre.js:1484 +msgid "vibrato amount" msgstr "" -#: js/sampler.js:697 -#.TRANS: The reference tone is a sound used for comparison. -msgid "reference tone" +#: js/widgets/timbre.js:1919 +msgid "Filter already present." msgstr "" -#: js/tempo.js:113 -msgid "Save tempo" +#: js/widgets/timbre.js:2322 +msgid "delay (MS)" msgstr "" -#: js/tempo.js:144 -msgid "speed up" +#: js/widgets/timbre.js:2507 +msgid "distortion amount" msgstr "" -#: js/tempo.js:150 -msgid "slow down" +#: js/widgets/aiwidget.js:180 +#: js/widgets/sampler.js:227 +msgid "Warning: Sample is bigger than 1MB." msgstr "" -#: js/tempo.js:194 -msgid "Adjust the tempo with the buttons." +#: js/widgets/aiwidget.js:539 +msgid "New start block generated" msgstr "" -#: js/tempo.js:261 -msgid "Please enter a number between 30 and 1000" +#: js/widgets/aiwidget.js:541 +msgid "MIDI loading. This may take some time depending upon the number of notes in the track" msgstr "" -#: js/tempo.js:268 -#: js/tempo.js:271 -msgid "The beats per minute must be between 30 and 1000." +#: js/widgets/aiwidget.js:551 +#: js/widgets/sampler.js:254 +msgid "Upload failed: Sample is not a .wav file." msgstr "" -#: js/tempo.js:287 -msgid "The beats per minute must be below 1000." +#: js/widgets/aiwidget.js:679 +#: js/widgets/sampler.js:432 +msgid "Save sample" msgstr "" -#: js/tempo.js:303 -msgid "The beats per minute must be above 30" +#: js/widgets/aiwidget.js:701 +msgid "AI Music" msgstr "" -#: js/timbre.js:766 -msgid "Synthesizer" +#: js/widgets/arpeggio.js:239 +msgid "Click in the grid to add steps to the arpeggio." msgstr "" -#: js/timbre.js:789 -msgid "Oscillator" +#: js/widgets/help.js:95 +#: js/widgets/help.js:125 +#: js/widgets/help.js:146 +#: js/widgets/help.js:158 +#: js/widgets/help.js:376 +#: js/widgets/help.js:391 +msgid "Take a tour" msgstr "" -#: js/timbre.js:840 -msgid "Envelope" +#: js/widgets/musickeyboard.js:725 +#: js/widgets/phrasemaker.js:584 +msgid "Add note" msgstr "" -#: js/timbre.js:886 -#: js/GlobalTag.js:50 -#.TRANS: On the Planet, we use labels to tag projects. -msgid "Effects" +#: js/widgets/musickeyboard.js:744 +msgid "Metronome" +msgstr "" + +#: js/widgets/musickeyboard.js:1549 +#: plugins/rodi.rtp:193 +msgid "duration" +msgstr "roanga" + +#: js/widgets/musickeyboard.js:3179 +msgid "New action blocks generated" +msgstr "" + +#: js/widgets/musickeyboard.js:3180 +msgid "New action block generated" msgstr "" -#: js/timbre.js:904 -msgid "Filter" +#: js/widgets/musickeyboard.js:3365 +#: js/widgets/musickeyboard.js:3373 +msgid "MIDI device present." msgstr "" -#: js/timbre.js:946 -msgid "Add filter" +#: js/widgets/musickeyboard.js:3376 +msgid "No MIDI device found." msgstr "" -#: js/timbre.js:987 -msgid "Click on buttons to open the timbre design tools." +#: js/widgets/musickeyboard.js:3386 +msgid "Failed to get MIDI access in browser." msgstr "" -#: js/timbre.js:1273 -msgid "harmonicity" +#: js/widgets/phrasemaker.js:574 +msgid "Export" msgstr "" -#: js/timbre.js:1340 -#: js/timbre.js:1406 -msgid "modulation index" +#: js/widgets/phrasemaker.js:581 +msgid "Sort" msgstr "" -#: js/timbre.js:1484 -msgid "vibrato amount" +#: js/widgets/phrasemaker.js:975 +msgid "Click on the table to add notes." msgstr "" -#: js/timbre.js:1919 -msgid "Filter already present." +#: js/widgets/phrasemaker.js:2677 +#: js/widgets/phrasemaker.js:2819 +msgid "tuplet value" msgstr "" -#: js/timbre.js:2322 -msgid "delay (MS)" +#: js/widgets/rhythmruler.js:486 +msgid "Save rhythms" msgstr "" -#: js/timbre.js:2507 -msgid "distortion amount" +#: js/widgets/rhythmruler.js:512 +msgid "Save drum machine" msgstr "" -#: js/meterwidget.js:170 -msgid "Reset" +#: js/widgets/rhythmruler.js:589 +#.TRANS: user can tap out a rhythm by clicking on a ruler. +msgid "Tap a rhythm" msgstr "" -#: js/meterwidget.js:196 -msgid "Click in the circle to select strong beats for the meter." +#: js/widgets/rhythmruler.js:817 +msgid "Click on the ruler to divide it." msgstr "" -#: js/arpeggio.js:239 -msgid "Click in the grid to add steps to the arpeggio." +#: js/widgets/rhythmruler.js:950 +#: js/widgets/rhythmruler.js:952 +#: js/widgets/rhythmruler.js:1152 +#: js/widgets/rhythmruler.js:1154 +#: js/widgets/rhythmruler.js:1765 +#: js/widgets/rhythmruler.js:1767 +msgid "tap a rhythm" msgstr "" -#: js/ProjectStorage.js:243 -msgid "anonymous" +#: js/widgets/rhythmruler.js:1459 +msgid "Maximum value of 256 has been exceeded." msgstr "" -#: js/GlobalCard.js:68 -msgid "Share" +#: js/widgets/sampler.js:237 +msgid "Recording started..." msgstr "" -#: js/GlobalCard.js:74 -msgid "Flags" +#: js/widgets/sampler.js:245 +msgid "Recording complete..." msgstr "" -#: js/LocalCard.js:36 -msgid "View published project" +#: js/widgets/sampler.js:283 +msgid "A new sample block was generated." msgstr "" -#: js/LocalCard.js:42 -msgid "Publish project" +#: js/widgets/sampler.js:378 +msgid "Upload sample" msgstr "" -#: js/LocalCard.js:51 -msgid "Edit project" +#: js/widgets/sampler.js:399 +msgid "Warning: Your sample cannot be loaded because it is >1MB." msgstr "" -#: js/LocalCard.js:52 -msgid "Delete project" +#: js/widgets/sampler.js:448 +msgid "Toggle Mic" msgstr "" -#: js/LocalCard.js:53 -msgid "Download project" +#: js/widgets/sampler.js:458 +msgid "Playback" msgstr "" -#: js/LocalCard.js:55 -msgid "Duplicate project" +#: js/widgets/sampler.js:979 +#.TRANS: The reference tone is a sound used for comparison. +msgid "reference tone" msgstr "" -#: js/GlobalTag.js:28 +#: planet/js/GlobalTag.js:28 #.TRANS: On the Planet, we use labels to tag projects. msgid "All Projects" msgstr "" -#: js/GlobalTag.js:30 -#: js/StringHelper.js:37 +#: planet/js/GlobalTag.js:30 +#: planet/js/StringHelper.js:37 #.TRANS: On the Planet, we use labels to tag projects. msgid "My Projects" msgstr "" -#: js/GlobalTag.js:32 +#: planet/js/GlobalTag.js:32 #.TRANS: On the Planet, we use labels to tag projects. msgid "Examples" msgstr "" -#: js/GlobalTag.js:34 +#: planet/js/GlobalTag.js:34 #.TRANS: On the Planet, we use labels to tag projects. msgid "Music" msgstr "" -#: js/GlobalTag.js:36 +#: planet/js/GlobalTag.js:36 #.TRANS: On the Planet, we use labels to tag projects. msgid "Art" msgstr "" -#: js/GlobalTag.js:38 +#: planet/js/GlobalTag.js:38 #.TRANS: On the Planet, we use labels to tag projects. msgid "Math" msgstr "" -#: js/GlobalTag.js:40 +#: planet/js/GlobalTag.js:40 #.TRANS: On the Planet, we use labels to tag projects. msgid "Interactive" msgstr "" -#: js/GlobalTag.js:42 +#: planet/js/GlobalTag.js:42 #.TRANS: On the Planet, we use labels to tag projects. msgid "Design" msgstr "" -#: js/GlobalTag.js:44 +#: planet/js/GlobalTag.js:44 #.TRANS: On the Planet, we use labels to tag projects. msgid "Game" msgstr "" -#: js/GlobalTag.js:46 +#: planet/js/GlobalTag.js:46 #.TRANS: On the Planet, we use labels to tag projects. msgid "Media" msgstr "" -#: js/GlobalTag.js:48 +#: planet/js/GlobalTag.js:48 #.TRANS: On the Planet, we use labels to tag projects. msgid "Sensors" msgstr "" -#: js/GlobalTag.js:52 +#: planet/js/GlobalTag.js:52 #.TRANS: On the Planet, we use labels to tag projects. msgid "Code Snippet" msgstr "" -#: js/helper.js:149 -#: js/StringHelper.js:49 -msgid "Show more tags" +#: planet/js/LocalCard.js:36 +msgid "View published project" msgstr "" -#: js/helper.js:150 -msgid "Show fewer tags" +#: planet/js/LocalCard.js:42 +msgid "Publish project" +msgstr "" + +#: planet/js/LocalCard.js:51 +msgid "Edit project" +msgstr "" + +#: planet/js/LocalCard.js:52 +msgid "Delete project" +msgstr "" + +#: planet/js/LocalCard.js:53 +msgid "Download project" +msgstr "" + +#: planet/js/LocalCard.js:55 +msgid "Duplicate project" +msgstr "" + +#: planet/js/ProjectStorage.js:243 +msgid "anonymous" +msgstr "" + +#: planet/js/SaveInterface.js:34 +msgid "Open in Music Blocks" +msgstr "" + +#: planet/js/SaveInterface.js:35 +msgid "Open in Turtle Blocks" +msgstr "" + +#: planet/js/GlobalCard.js:68 +msgid "Share" +msgstr "" + +#: planet/js/GlobalCard.js:74 +msgid "Flags" +msgstr "" + +#: planet/js/GlobalPlanet.js:35 +msgid "No results found." +msgstr "" + +#: planet/js/GlobalPlanet.js:51 +msgid "Remix of" +msgstr "" + +#: planet/js/GlobalPlanet.js:509 +msgid "Cannot connect to server" msgstr "" -#: js/ProjectViewer.js:30 +#: planet/js/ProjectViewer.js:30 msgid "Error: Report could not be submitted. Try again later." msgstr "" -#: js/ProjectViewer.js:31 +#: planet/js/ProjectViewer.js:31 msgid "Thank you for reporting this project. A moderator will review the project shortly, to verify violation of the Sugar Labs Code of Conduct." msgstr "" -#: js/ProjectViewer.js:32 -#: js/StringHelper.js:62 -#: js/StringHelper.js:64 -#: js/StringHelper.js:68 +#: planet/js/ProjectViewer.js:32 +#: planet/js/StringHelper.js:62 +#: planet/js/StringHelper.js:64 +#: planet/js/StringHelper.js:68 msgid "Report Project" msgstr "" -#: js/ProjectViewer.js:33 -#: js/StringHelper.js:63 +#: planet/js/ProjectViewer.js:33 +#: planet/js/StringHelper.js:63 msgid "Project Reported" msgstr "" -#: js/ProjectViewer.js:34 +#: planet/js/ProjectViewer.js:34 msgid "Report description required" msgstr "" -#: js/ProjectViewer.js:35 +#: planet/js/ProjectViewer.js:35 msgid "Report description too long" msgstr "" -#: js/StringHelper.js:30 +#: planet/js/Publisher.js:30 +msgid "Feature unavailable - cannot connect to server. Reload Music Blocks to try again." +msgstr "" + +#: planet/js/Publisher.js:220 +#: planet/js/Publisher.js:237 +msgid "This field is required" +msgstr "" + +#: planet/js/Publisher.js:227 +msgid "Title too long" +msgstr "" + +#: planet/js/Publisher.js:244 +msgid "Description too long" +msgstr "" + +#: planet/js/Publisher.js:341 +msgid "Server Error" +msgstr "" + +#: planet/js/Publisher.js:341 +msgid "Try Again" +msgstr "" + +#: planet/js/StringHelper.js:30 msgid "Planet" msgstr "" -#: js/StringHelper.js:31 +#: planet/js/StringHelper.js:31 msgid "Close Planet" msgstr "" -#: js/StringHelper.js:32 +#: planet/js/StringHelper.js:32 msgid "Open project from file" msgstr "" -#: js/StringHelper.js:34 +#: planet/js/StringHelper.js:34 msgid "Local" msgstr "" -#: js/StringHelper.js:35 +#: planet/js/StringHelper.js:35 msgid "Global" msgstr "" -#: js/StringHelper.js:36 +#: planet/js/StringHelper.js:36 msgid "Search for a project" msgstr "" -#: js/StringHelper.js:38 +#: planet/js/StringHelper.js:38 msgid "Publish Project" msgstr "" -#: js/StringHelper.js:40 +#: planet/js/StringHelper.js:40 msgid "Tags (max 5)" msgstr "" -#: js/StringHelper.js:41 -#: js/StringHelper.js:61 +#: planet/js/StringHelper.js:41 +#: planet/js/StringHelper.js:61 msgid "Description" msgstr "" -#: js/StringHelper.js:42 -#: js/StringHelper.js:67 +#: planet/js/StringHelper.js:42 +#: planet/js/StringHelper.js:67 msgid "Submit" msgstr "" -#: js/StringHelper.js:43 -#: js/StringHelper.js:47 +#: planet/js/StringHelper.js:43 +#: planet/js/StringHelper.js:47 msgid "Cancel" msgstr "" -#: js/StringHelper.js:44 +#: planet/js/StringHelper.js:44 msgid "Delete \\"\\"?" msgstr "" -#: js/StringHelper.js:45 +#: planet/js/StringHelper.js:45 msgid "Permanently delete project \\"\\"?" msgstr "" -#: js/StringHelper.js:48 +#: planet/js/StringHelper.js:48 msgid "Explore Projects" msgstr "" -#: js/StringHelper.js:50 +#: planet/js/StringHelper.js:49 +#: planet/js/helper.js:149 +msgid "Show more tags" +msgstr "" + +#: planet/js/StringHelper.js:50 msgid "Most recent" msgstr "" -#: js/StringHelper.js:51 +#: planet/js/StringHelper.js:51 msgid "Most liked" msgstr "" -#: js/StringHelper.js:52 +#: planet/js/StringHelper.js:52 msgid "Most downloaded" msgstr "" -#: js/StringHelper.js:53 +#: planet/js/StringHelper.js:53 msgid "A-Z" msgstr "" -#: js/StringHelper.js:54 +#: planet/js/StringHelper.js:54 msgid "Sort by" msgstr "" -#: js/StringHelper.js:55 +#: planet/js/StringHelper.js:55 msgid "Load More Projects" msgstr "" -#: js/StringHelper.js:56 +#: planet/js/StringHelper.js:56 msgid "Last Updated" msgstr "" -#: js/StringHelper.js:57 +#: planet/js/StringHelper.js:57 msgid "Creation Date" msgstr "" -#: js/StringHelper.js:58 +#: planet/js/StringHelper.js:58 msgid "Number of Downloads:" msgstr "" -#: js/StringHelper.js:59 +#: planet/js/StringHelper.js:59 msgid "Number of Likes:" msgstr "" -#: js/StringHelper.js:60 +#: planet/js/StringHelper.js:60 msgid "Tags:" msgstr "" -#: js/StringHelper.js:65 +#: planet/js/StringHelper.js:65 msgid "Report projects which violate the Sugar Labs Code of Conduct." msgstr "" -#: js/StringHelper.js:66 +#: planet/js/StringHelper.js:66 msgid "Reason for reporting project" msgstr "" -#: js/StringHelper.js:70 +#: planet/js/StringHelper.js:70 msgid "Download as File" msgstr "" -#: js/GlobalPlanet.js:35 -msgid "No results found." -msgstr "" - -#: js/GlobalPlanet.js:51 -msgid "Remix of" -msgstr "" - -#: js/GlobalPlanet.js:509 -msgid "Cannot connect to server" -msgstr "" - -#: js/Publisher.js:30 -msgid "Feature unavailable - cannot connect to server. Reload Music Blocks to try again." -msgstr "" - -#: js/Publisher.js:218 -#: js/Publisher.js:235 -msgid "This field is required" -msgstr "" - -#: js/Publisher.js:225 -msgid "Title too long" +#: planet/js/helper.js:150 +msgid "Show fewer tags" msgstr "" -#: js/Publisher.js:242 -msgid "Description too long" +#: plugins/accelerometer.rtp:48 +msgid "motion x" msgstr "" -#: js/Publisher.js:339 -msgid "Server Error" +#: plugins/accelerometer.rtp:56 +msgid "motion y" msgstr "" -#: js/Publisher.js:339 -msgid "Try Again" +#: plugins/accelerometer.rtp:64 +msgid "motion z" msgstr "" -#: js/SaveInterface.js:34 -msgid "Open in Music Blocks" +#: plugins/facebook.rtp:27 +msgid "publish" msgstr "" -#: js/SaveInterface.js:35 -msgid "Open in Turtle Blocks" +#: plugins/maths.rtp:62 +msgid "power" msgstr "" -#: plugins/weather.rtp:68 -#: plugins/weather.rtp:97 -msgid "Days ahead must be in the range of -1 to 5." +#: plugins/maths.rtp:62 +msgid "base" msgstr "" -#: plugins/weather.rtp:122 -msgid "forecast" +#: plugins/maths.rtp:62 +msgid "exp" msgstr "" -#: plugins/weather.rtp:123 -#: plugins/weather.rtp:137 -#: plugins/weather.rtp:150 -msgid "city" +#: plugins/maths.rtp:99 +msgid "floor" msgstr "" -#: plugins/weather.rtp:124 -#: plugins/weather.rtp:138 -#: plugins/weather.rtp:151 -msgid "day" +#: plugins/maths.rtp:104 +msgid "ceiling" msgstr "" -#: plugins/weather.rtp:136 -msgid "high" +#: plugins/maths.rtp:109 +msgid "to degrees" msgstr "" -#: plugins/weather.rtp:149 -msgid "low" +#: plugins/maths.rtp:114 +msgid "to radians" msgstr "" #: plugins/nutrition.rtp:104 @@ -9458,45 +9867,6 @@ msgstr "" msgid "water" msgstr "" -#: plugins/maths.rtp:62 -#: plugins/examples.rtp:93 -msgid "power" -msgstr "" - -#: plugins/maths.rtp:62 -#: plugins/examples.rtp:93 -msgid "base" -msgstr "" - -#: plugins/maths.rtp:62 -#: plugins/examples.rtp:93 -msgid "exp" -msgstr "" - -#: plugins/maths.rtp:99 -#: plugins/examples.rtp:130 -msgid "floor" -msgstr "" - -#: plugins/maths.rtp:104 -#: plugins/examples.rtp:135 -msgid "ceiling" -msgstr "" - -#: plugins/maths.rtp:109 -#: plugins/examples.rtp:140 -msgid "to degrees" -msgstr "" - -#: plugins/maths.rtp:114 -#: plugins/examples.rtp:145 -msgid "to radians" -msgstr "" - -#: plugins/facebook.rtp:27 -msgid "publish" -msgstr "" - #: plugins/rodi.rtp:172 msgid "blink" msgstr "" @@ -9525,18 +9895,66 @@ msgstr "" msgid "move" msgstr "" -#: plugins/accelerometer.rtp:48 -msgid "motion x" +#: plugins/weather.rtp:68 +#: plugins/weather.rtp:97 +msgid "Days ahead must be in the range of -1 to 5." msgstr "" -#: plugins/accelerometer.rtp:56 -msgid "motion y" +#: plugins/weather.rtp:122 +msgid "forecast" msgstr "" -#: plugins/accelerometer.rtp:64 -msgid "motion z" +#: plugins/weather.rtp:123 +#: plugins/weather.rtp:137 +#: plugins/weather.rtp:150 +msgid "city" +msgstr "" + +#: plugins/weather.rtp:124 +#: plugins/weather.rtp:138 +#: plugins/weather.rtp:151 +msgid "day" +msgstr "" + +#: plugins/weather.rtp:136 +msgid "high" +msgstr "" + +#: plugins/weather.rtp:149 +msgid "low" msgstr "" +#: js/toolbar.js:70 + +#: js/toolbar.js:130 + +#: js/toolbar.js:194 + +#: js/toolbar.js:249 + +#~msgid "Toggle JavaScript Editor" +#~msgstr "" + +#: js/EnsembleBlocks.js:643 + +#~msgid "The Turrle pitch block returns the current pitch number being played by the specified turtle." +#~msgstr "" + +#: js/PitchActions.js:88 + +#~msgid "The Scalar Step Block must be used inside of a Note Block." +#~msgstr "" + +#: js/PitchActions.js:107 + +#~msgid "The Scalar Step Block must be preceded by a Pitch Block." +#~msgstr "" + +#: js/musickeyboard.js:2840 + +#~msgid "New action blocks generated!" +#~msgstr "" + #: js/toolbar.js:110 #: js/toolbar.js:204 @@ -9877,11 +10295,6 @@ msgstr "" #~msgid "The Time block returns the number of seconds that the program has been running." #~msgstr "" -#: js/help.js:95 - -#~msgid "Take a tour" -#~msgstr "" - #: js/GlobalCard.js:48 #~msgid "More Details" @@ -12780,11 +13193,6 @@ msgstr "" #~msgid "The save-stack button saves a stack onto a custom palette. It appears after a \"long press\" on a stack." #~msgstr "" -#: js/musicutils.js:254 - -#~msgid "Custom" -#~msgstr "" - #: js/basicblocks.js:4785 #~msgid "Rhythm" diff --git a/po/mk.po b/po/mk.po index ea009c6cc0..a90cfc8476 100644 --- a/po/mk.po +++ b/po/mk.po @@ -2129,276 +2129,131 @@ #: js/planetInterface.js:104 #: js/planetInterface.js:104 #: js/planetInterface.js:104 -msgid "project undefined" -msgstr "" - -#: js/logo.js:61 -msgid "Not a valid pitch name" -msgstr "" - -#: js/logo.js:507 -#: js/ProgramBlocks.js:258 -#: js/ProgramBlocks.js:427 -msgid "You must select a file." -msgstr "" - -#: js/logo.js:1184 -#: js/turtles.js:118 -#: js/turtle-painter.js:1192 -#: js/turtle-painter.js:1193 -#: js/block.js:1463 -#: js/lilypond.js:757 -#: js/lilypond.js:921 -#: js/lilypond.js:959 -#: js/ActionBlocks.js:1223 -#: js/ProgramBlocks.js:1267 -msgid "start" -msgstr "" - -#: js/logo.js:1696 -msgid "Playback is ready." -msgstr "" - -#: js/blocks.js:1011 -#: js/blocks.js:3427 -#: js/blocks.js:3428 -#: js/blocks.js:3653 -#: js/blocks.js:4012 -#: js/blocks.js:4205 -#: js/blocks.js:5343 -#: js/blocks.js:6474 -#: js/palette.js:527 -#: js/palette.js:536 -#: js/palette.js:545 -#: js/palette.js:554 -#: js/palette.js:1131 -#: js/palette.js:1142 -#: js/palette.js:1153 -#: js/palette.js:1164 -#: js/palette.js:1183 -#: js/rubrics.js:529 -#: js/macros.js:170 -#: js/macros.js:266 -#: js/macros.js:267 -#: js/macros.js:276 -#: js/macros.js:828 -#: js/block.js:1449 -#: js/block.js:4164 -#: js/block.js:4182 -#: js/block.js:4193 -#: js/turtledefs.js:128 -#: js/turtledefs.js:230 -#: js/ActionBlocks.js:254 -#: js/ActionBlocks.js:307 -#: js/ActionBlocks.js:617 -#: js/ActionBlocks.js:716 -#: js/ActionBlocks.js:961 -#: js/ActionBlocks.js:1049 -#: js/ActionBlocks.js:1322 -#: js/ActionBlocks.js:1325 -#: js/ActionBlocks.js:1337 -#: js/ActionBlocks.js:1404 -#: js/MeterBlocks.js:715 -#: js/MeterBlocks.js:768 -#: js/MeterBlocks.js:831 -#: js/MeterBlocks.js:892 -#: js/phrasemaker.js:4412 -#: js/musickeyboard.js:2647 -#: js/rhythmruler.js:1928 -#: js/rhythmruler.js:1935 -#: js/rhythmruler.js:2119 -#: js/rhythmruler.js:2126 -msgid "action" -msgstr "" - -#: js/blocks.js:1205 -#: js/blocks.js:3380 -#: js/blocks.js:3770 -#: js/blocks.js:3801 -#: js/blocks.js:3850 -#: js/blocks.js:3885 -#: js/blocks.js:6497 -#: js/palette.js:509 -#: js/palette.js:638 -#: js/palette.js:1107 -#: js/BoxesBlocks.js:282 -#: js/BoxesBlocks.js:285 -#: js/BoxesBlocks.js:405 -#: js/BoxesBlocks.js:594 -msgid "box" -msgstr "" - -#: js/blocks.js:1680 -msgid "Consider breaking this stack into parts." +#: js/SaveInterface.js:59 +#: js/SaveInterface.js:61 +#: js/SaveInterface.js:93 +msgid "Music Blocks Project" msgstr "" -#: js/blocks.js:2408 -#: js/palette.js:653 -#: js/MediaBlocks.js:602 -msgid "open file" +#: js/SaveInterface.js:63 +msgid "This project was created in Music Blocks" msgstr "" -#: js/blocks.js:2415 -#: js/blocks.js:2423 -#: js/activity.js:1875 -msgid "audio file" +#: js/SaveInterface.js:67 +msgid "Music Blocks is a Free/Libre Software application." msgstr "" -#: js/blocks.js:2536 -#: js/blocks.js:3147 -#: js/block.js:3543 -msgid "on2" +#: js/SaveInterface.js:69 +msgid "The source code can be accessed at" msgstr "" -#: js/blocks.js:2538 -#: js/blocks.js:3149 -#: js/block.js:3545 -msgid "off" +#: js/SaveInterface.js:72 +msgid "For more information, please consult the" msgstr "" -#: js/blocks.js:2543 -#: js/blocks.js:3154 -#: js/palette.js:618 -#: js/block.js:3466 -#: js/BooleanBlocks.js:77 -#: js/BooleanBlocks.js:167 -#: js/BooleanBlocks.js:251 -#: js/BooleanBlocks.js:335 -#: js/BooleanBlocks.js:433 -#: js/BooleanBlocks.js:539 -#: js/BooleanBlocks.js:640 -#: js/BooleanBlocks.js:741 -#: js/BooleanBlocks.js:847 -#: js/BooleanBlocks.js:948 -#: js/BooleanBlocks.js:1033 -#: js/SensorsBlocks.js:910 -msgid "true" +#: js/SaveInterface.js:76 +#: js/turtledefs.js:795 +msgid "Music Blocks Guide" msgstr "" -#: js/blocks.js:2545 -#: js/blocks.js:3156 -#: js/block.js:3466 -#: js/BooleanBlocks.js:79 -#: js/BooleanBlocks.js:169 -#: js/BooleanBlocks.js:253 -#: js/BooleanBlocks.js:337 -#: js/BooleanBlocks.js:435 -#: js/BooleanBlocks.js:541 -#: js/BooleanBlocks.js:642 -#: js/BooleanBlocks.js:743 -#: js/BooleanBlocks.js:849 -#: js/BooleanBlocks.js:950 -#: js/SensorsBlocks.js:912 -msgid "false" +#: js/SaveInterface.js:83 +msgid "Alternatively, open the file in Music Blocks using the Load project button." msgstr "" -#: js/blocks.js:3183 -#: js/palette.js:574 -#: js/MediaBlocks.js:892 -#: js/MediaBlocks.js:963 -msgid "text" +#: js/SaveInterface.js:85 +msgid "Project Code" msgstr "" -#: js/blocks.js:3379 -#: js/palette.js:641 -#: js/palette.js:642 -#: js/BoxesBlocks.js:514 -msgid "store in box" +#: js/SaveInterface.js:87 +msgid "This code stores data about the blocks in a project." msgstr "" -#: js/blocks.js:3384 -#: js/blocks.js:3824 -#: js/blocks.js:3859 -#: js/blocks.js:3894 -#: js/blocks.js:5773 -#: js/blocks.js:5794 -#: js/BoxesBlocks.js:772 -msgid "box1" +#: js/SaveInterface.js:89 +msgid "Show" msgstr "" -#: js/blocks.js:3386 -#: js/blocks.js:3826 -#: js/blocks.js:3861 -#: js/blocks.js:3896 -#: js/blocks.js:5775 -#: js/blocks.js:5796 -#: js/BoxesBlocks.js:663 -msgid "box2" +#: js/SaveInterface.js:91 +msgid "Hide" msgstr "" -#: js/blocks.js:4058 -#: js/palette.js:639 -#: js/palette.js:644 -#: js/palette.js:1043 -#: js/BoxesBlocks.js:591 -msgid "store in" +#: js/SaveInterface.js:131 +#: js/SaveInterface.js:204 +#: js/SaveInterface.js:262 +#: js/SaveInterface.js:389 +#: js/SaveInterface.js:417 +#: js/activity.js:4884 +#: planet/js/ProjectStorage.js:27 +#: planet/js/GlobalPlanet.js:467 +#: planet/js/GlobalPlanet.js:469 +#: planet/js/GlobalPlanet.js:495 +#.TRANS: default project title when saving as Lilypond +msgid "My Project" msgstr "" -#: js/blocks.js:4058 -#: js/EnsembleBlocks.js:391 -#: js/EnsembleBlocks.js:402 -#: js/MediaBlocks.js:746 -#: js/ProgramBlocks.js:390 -#: js/ProgramBlocks.js:495 -#: js/ProgramBlocks.js:658 -#: js/BoxesBlocks.js:595 -#: js/PitchBlocks.js:656 -#: js/PitchBlocks.js:932 -#: js/PitchBlocks.js:1827 -#: js/ToneBlocks.js:1025 -#: js/DictBlocks.js:215 -#: js/DictBlocks.js:289 -msgid "name" +#: js/SaveInterface.js:197 +#: planet/js/SaveInterface.js:58 +msgid "No description provided" msgstr "" -#: js/blocks.js:4058 -#: js/RhythmBlocks.js:1130 -#: js/BoxesBlocks.js:75 -#: js/BoxesBlocks.js:595 -#: js/HeapBlocks.js:544 -#: js/DictBlocks.js:289 -#: js/DictBlocks.js:430 -msgid "value" +#: js/SaveInterface.js:332 +msgid "Your recording is in progress." msgstr "" -#: js/blocks.js:4907 -msgid "There is no block selected." +#: js/SaveInterface.js:401 +#.TRANS: File name prompt for save as Lilypond +msgid "File name" msgstr "" -#: js/blocks.js:5002 -#: js/MediaBlocks.js:888 -msgid "show" +#: js/SaveInterface.js:403 +#: planet/js/StringHelper.js:39 +#.TRANS: Project title prompt for save as Lilypond +msgid "Project title" msgstr "" -#: js/blocks.js:5005 -#: js/MediaBlocks.js:803 -#.TRANS: Avatar is the image used to determine the appearance of the mouse. -msgid "avatar" +#: js/SaveInterface.js:405 +#.TRANS: Project title prompt for save as Lilypond +msgid "Project author" msgstr "" -#: js/blocks.js:5008 -#: js/ToneBlocks.js:1010 -#: js/sampler.js:693 -#.TRANS: The sound sample that the user uploads. -msgid "sample" +#: js/SaveInterface.js:407 +#.TRANS: MIDI prompt for save as Lilypond +msgid "Include MIDI output?" msgstr "" -#: js/turtles.js:874 -msgid "Grid" +#: js/SaveInterface.js:409 +#.TRANS: Guitar prompt for save as Lilypond +msgid "Include guitar tablature output?" msgstr "" -#: js/turtles.js:891 -#: js/turtledefs.js:626 -msgid "Clean" +#: js/SaveInterface.js:411 +#.TRANS: Lilypond is a scripting language for generating sheet music +msgid "Save as Lilypond" msgstr "" -#: js/turtles.js:912 -#: js/turtledefs.js:632 -msgid "Collapse" +#: js/SaveInterface.js:426 +#: js/blocks/EnsembleBlocks.js:75 +#: js/blocks/EnsembleBlocks.js:154 +#: js/blocks/EnsembleBlocks.js:216 +#: js/blocks/EnsembleBlocks.js:302 +#: js/blocks/EnsembleBlocks.js:348 +#: js/blocks/EnsembleBlocks.js:389 +#: js/blocks/EnsembleBlocks.js:441 +#: js/blocks/EnsembleBlocks.js:490 +#: js/blocks/EnsembleBlocks.js:536 +#: js/blocks/EnsembleBlocks.js:583 +#: js/blocks/EnsembleBlocks.js:637 +#: js/blocks/EnsembleBlocks.js:753 +#: js/blocks/EnsembleBlocks.js:840 +#: js/blocks/EnsembleBlocks.js:899 +#: js/blocks/EnsembleBlocks.js:942 +#: js/blocks/EnsembleBlocks.js:1212 +#: js/blocks/EnsembleBlocks.js:1280 +#.TRANS: default project author when saving as Lilypond +msgid "Mr. Mouse" msgstr "" -#: js/turtles.js:940 -msgid "Expand" +#: js/SaveInterface.js:573 +msgid "The Lilypond code is copied to clipboard. You can paste it here: " msgstr "" #: js/languagebox.js:198 @@ -2409,6933 +2264,7487 @@ msgstr "" msgid "Music Blocks is already set to this language." msgstr "" -#: js/piemenus.js:200 -#: js/musicutils.js:808 -#: js/musicutils.js:824 -#: js/phrasemaker.js:1672 -#: js/musickeyboard.js:2041 -#: js/sampler.js:544 -#.TRANS: double sharp is a music term related to pitch -msgid "double sharp" +#: js/planetInterface.js:131 +msgid "project undefined" msgstr "" -#: js/piemenus.js:201 -#: js/PitchBlocks.js:1510 -#: js/PitchActions.js:580 -#: js/musicutils.js:806 -#: js/musicutils.js:825 -#: js/phrasemaker.js:1673 -#: js/musickeyboard.js:2042 -#: js/sampler.js:545 -#.TRANS: sharp is a half-step up in pitch -#.TRANS: sharp is a music term related to pitch -msgid "sharp" +#: js/rubrics.js:523 +#: js/turtledefs.js:119 +#: js/turtledefs.js:221 +#: js/blocks/RhythmBlockPaletteBlocks.js:52 +#: js/blocks/RhythmBlockPaletteBlocks.js:234 +#: js/blocks/ProgramBlocks.js:745 +#: js/widgets/rhythmruler.js:2057 +#: js/widgets/rhythmruler.js:2064 +#: js/widgets/rhythmruler.js:2133 +#: js/widgets/rhythmruler.js:2140 +#: js/widgets/rhythmruler.js:2219 +#.TRANS: an arrangement of notes based on duration +msgid "rhythm" msgstr "" -#: js/piemenus.js:202 -#: js/musicutils.js:804 -#: js/musicutils.js:826 -#: js/phrasemaker.js:1674 -#: js/musickeyboard.js:2043 -#: js/sampler.js:546 -#.TRANS: natural is a music term related to pitch -msgid "natural" +#: js/rubrics.js:524 +#: js/turtledefs.js:121 +#: js/turtledefs.js:223 +#: js/block-verbose.js:2622 +#: js/block.js:2550 +#: js/blocks/IntervalsBlocks.js:63 +#: js/blocks/SensorsBlocks.js:178 +#: js/blocks/PitchBlocks.js:1839 +#: js/blocks/PitchBlocks.js:1853 +#: js/widgets/musickeyboard.js:1935 +#: js/widgets/phrasemaker.js:1036 +#.TRANS: pitch number +#.TRANS: pitch number +#.TRANS: we specify pitch in terms of a name and an octave. The name can be CDEFGAB or Do Re Mi Fa Sol La Ti. Octave is a number between 1 and 8. +msgid "pitch" msgstr "" -#: js/piemenus.js:203 -#: js/PitchBlocks.js:1469 -#: js/PitchActions.js:583 -#: js/musicutils.js:802 -#: js/musicutils.js:827 -#: js/phrasemaker.js:1675 -#: js/musickeyboard.js:2044 -#: js/sampler.js:547 -#.TRANS: flat is a half-step down in pitch -#.TRANS: flat is a music term related to pitch -msgid "flat" +#: js/rubrics.js:525 +#: js/turtledefs.js:123 +#: js/turtledefs.js:225 +msgid "tone" msgstr "" -#: js/piemenus.js:204 -#: js/musicutils.js:800 -#: js/musicutils.js:828 -#: js/phrasemaker.js:1676 -#: js/musickeyboard.js:2045 -#: js/sampler.js:548 -#.TRANS: double flat is a music term related to pitch -msgid "double flat" +#: js/rubrics.js:526 +#: js/lilypond.js:605 +#: js/lilypond.js:904 +#: js/lilypond.js:910 +#: js/lilypond.js:948 +msgid "mouse" msgstr "" -#: js/piemenus.js:2861 -#: js/PitchBlocks.js:1357 -#: js/musicutils.js:627 -#.TRANS: unison means the note is the same as the current note -#.TRANS: unison is a music term related to intervals -msgid "unison" +#: js/rubrics.js:527 +#: js/turtledefs.js:132 +#: js/turtledefs.js:234 +#: js/widgets/phrasemaker.js:1040 +msgid "pen" msgstr "" -#: js/piemenus.js:3015 -#: js/piemenus.js:3088 -#: js/musicutils.js:635 -#: js/musicutils.js:810 -#: js/musicutils.js:912 -#.TRANS: major is a music term related to intervals and mode -msgid "major" +#: js/rubrics.js:528 +#: js/turtledefs.js:133 +#: js/turtledefs.js:235 +#: js/blocks/NumberBlocks.js:981 +#: js/blocks/PitchBlocks.js:1717 +#: js/blocks/PitchBlocks.js:1758 +msgid "number" msgstr "" -#: js/piemenus.js:3015 -#: js/piemenus.js:3088 -#: js/musicutils.js:653 -#.TRANS: modal scale for music -msgid "ionian" +#: js/rubrics.js:529 +#: js/turtledefs.js:127 +#: js/turtledefs.js:229 +msgid "flow" msgstr "" -#: js/piemenus.js:3017 -#: js/piemenus.js:3092 -#: js/musicutils.js:633 -#: js/musicutils.js:811 -#: js/musicutils.js:909 -#.TRANS: minor is a music term related to intervals and mode -msgid "minor" +#: js/rubrics.js:530 +#: js/turtledefs.js:128 +#: js/turtledefs.js:230 +#: js/block-verbose.js:1609 +#: js/block-verbose.js:4559 +#: js/block-verbose.js:4577 +#: js/block-verbose.js:4588 +#: js/block.js:1573 +#: js/block.js:4483 +#: js/block.js:4501 +#: js/block.js:4512 +#: js/blocks.js:1018 +#: js/blocks.js:3491 +#: js/blocks.js:3492 +#: js/blocks.js:3717 +#: js/blocks.js:4076 +#: js/blocks.js:4269 +#: js/blocks.js:5432 +#: js/blocks.js:6563 +#: js/macros.js:170 +#: js/macros.js:266 +#: js/macros.js:267 +#: js/macros.js:276 +#: js/macros.js:828 +#: js/palette.js:527 +#: js/palette.js:536 +#: js/palette.js:545 +#: js/palette.js:554 +#: js/palette.js:1129 +#: js/palette.js:1140 +#: js/palette.js:1151 +#: js/palette.js:1162 +#: js/palette.js:1181 +#: js/blocks/ActionBlocks.js:254 +#: js/blocks/ActionBlocks.js:307 +#: js/blocks/ActionBlocks.js:617 +#: js/blocks/ActionBlocks.js:716 +#: js/blocks/ActionBlocks.js:961 +#: js/blocks/ActionBlocks.js:1049 +#: js/blocks/ActionBlocks.js:1322 +#: js/blocks/ActionBlocks.js:1325 +#: js/blocks/ActionBlocks.js:1337 +#: js/blocks/ActionBlocks.js:1404 +#: js/blocks/MeterBlocks.js:715 +#: js/blocks/MeterBlocks.js:768 +#: js/blocks/MeterBlocks.js:831 +#: js/blocks/MeterBlocks.js:892 +#: js/widgets/musickeyboard.js:2986 +#: js/widgets/phrasemaker.js:4913 +#: js/widgets/rhythmruler.js:2319 +#: js/widgets/rhythmruler.js:2326 +#: js/widgets/rhythmruler.js:2511 +#: js/widgets/rhythmruler.js:2518 +msgid "action" msgstr "" -#: js/piemenus.js:3017 -#: js/piemenus.js:3092 -#: js/musicutils.js:663 -#.TRANS: modal scale for music -msgid "aeolian" +#: js/rubrics.js:531 +#: js/turtledefs.js:136 +#: js/turtledefs.js:238 +msgid "sensors" msgstr "" -#: js/piemenus.js:3407 -msgid "Duplicate" +#: js/rubrics.js:532 +#: js/turtledefs.js:135 +#: js/turtledefs.js:237 +#: js/blocks/MediaBlocks.js:930 +msgid "media" msgstr "" -#: js/piemenus.js:3408 -#: js/turtledefs.js:534 -msgid "Extract" +#: js/rubrics.js:533 +msgid "mice" msgstr "" -#: js/piemenus.js:3409 -msgid "Move to trash" +#: js/toolbar.js:48 +#: js/toolbar.js:109 +msgid "About Music Blocks" msgstr "" -#: js/piemenus.js:3410 -#: js/timbre.js:968 -#: js/StringHelper.js:69 -msgid "Close" +#: js/toolbar.js:49 +#: js/toolbar.js:110 +#: js/toolbar.js:175 +#: js/toolbar.js:231 +#: js/turtledefs.js:445 +#: js/turtledefs.js:482 +#: js/activity.js:2660 +#: js/activity.js:2671 +#: js/activity.js:2902 +#: js/widgets/modewidget.js:77 +#: js/widgets/meterwidget.js:185 +#: js/widgets/pitchdrummatrix.js:147 +#: js/widgets/pitchdrummatrix.js:687 +#: js/widgets/pitchdrummatrix.js:689 +#: js/widgets/pitchdrummatrix.js:741 +#: js/widgets/pitchdrummatrix.js:743 +#: js/widgets/pitchdrummatrix.js:758 +#: js/widgets/pitchdrummatrix.js:760 +#: js/widgets/pitchdrummatrix.js:789 +#: js/widgets/pitchdrummatrix.js:791 +#: js/widgets/pitchstaircase.js:121 +#: js/widgets/temperament.js:610 +#: js/widgets/temperament.js:613 +#: js/widgets/temperament.js:673 +#: js/widgets/temperament.js:675 +#: js/widgets/temperament.js:2017 +#: js/widgets/temperament.js:2019 +#: js/widgets/tempo.js:84 +#: js/widgets/tempo.js:86 +#: js/widgets/timbre.js:432 +#: js/widgets/timbre.js:434 +#: js/widgets/timbre.js:465 +#: js/widgets/timbre.js:467 +#: js/widgets/timbre.js:746 +#: js/widgets/aiwidget.js:647 +#: js/widgets/aiwidget.js:654 +#: js/widgets/aiwidget.js:656 +#: js/widgets/arpeggio.js:90 +#: js/widgets/arpeggio.js:547 +#: js/widgets/arpeggio.js:549 +#: js/widgets/arpeggio.js:644 +#: js/widgets/arpeggio.js:646 +#: js/widgets/musickeyboard.js:676 +#: js/widgets/musickeyboard.js:872 +#: js/widgets/musickeyboard.js:874 +#: js/widgets/musickeyboard.js:953 +#: js/widgets/musickeyboard.js:955 +#: js/widgets/phrasemaker.js:513 +#: js/widgets/phrasemaker.js:523 +#: js/widgets/phrasemaker.js:525 +#: js/widgets/phrasemaker.js:4304 +#: js/widgets/phrasemaker.js:4528 +#: js/widgets/phrasemaker.js:4533 +#: js/widgets/phrasemaker.js:4535 +#: js/widgets/phrasemaker.js:4650 +#: js/widgets/rhythmruler.js:637 +#: js/widgets/rhythmruler.js:639 +#: js/widgets/rhythmruler.js:653 +#: js/widgets/rhythmruler.js:655 +#: js/widgets/sampler.js:162 +#: js/widgets/sampler.js:164 +#: js/widgets/sampler.js:363 +msgid "Play" msgstr "" -#: js/piemenus.js:3416 -msgid "Save stack" +#: js/toolbar.js:50 +#: js/toolbar.js:111 +#: js/toolbar.js:176 +#: js/toolbar.js:232 +#: js/turtledefs.js:451 +#: js/turtledefs.js:488 +#: js/activity.js:2679 +#: js/widgets/modewidget.js:99 +#: js/widgets/modewidget.js:101 +#: js/widgets/meterwidget.js:206 +#: js/widgets/meterwidget.js:208 +#: js/widgets/pitchdrummatrix.js:674 +#: js/widgets/pitchdrummatrix.js:676 +#: js/widgets/temperament.js:2002 +#: js/widgets/temperament.js:2004 +#: js/widgets/arpeggio.js:534 +#: js/widgets/arpeggio.js:536 +#: js/widgets/phrasemaker.js:534 +#: js/widgets/phrasemaker.js:536 +msgid "Stop" msgstr "" -#: js/piemenus.js:3420 -#: js/toolbar.js:60 -#: js/toolbar.js:120 -#: js/toolbar.js:185 -#: js/toolbar.js:240 -#: js/turtledefs.js:752 -msgid "Help" +#: js/toolbar.js:51 +#: js/toolbar.js:112 +#: js/toolbar.js:177 +#: js/toolbar.js:233 +#: js/turtledefs.js:498 +msgid "Record" msgstr "" -#: js/piemenus.js:3762 -msgid "You have chosen key " +#: js/toolbar.js:52 +#: js/toolbar.js:53 +msgid "Full screen" msgstr "" -#: js/piemenus.js:3766 -msgid " for your pitch preview." +#: js/toolbar.js:54 +#: js/toolbar.js:115 +#: js/toolbar.js:180 +#: js/toolbar.js:236 +#: js/turtledefs.js:504 +msgid "Toggle Fullscreen" +msgstr "" + +#: js/toolbar.js:55 +#: js/toolbar.js:116 +#: js/toolbar.js:181 +#: js/toolbar.js:237 +#: js/turtledefs.js:510 +#: planet/js/StringHelper.js:33 +msgid "New project" +msgstr "" + +#: js/toolbar.js:56 +#: js/toolbar.js:117 +#: js/toolbar.js:182 +#: js/toolbar.js:238 +#: js/turtledefs.js:516 +msgid "Load project from file" +msgstr "" + +#: js/toolbar.js:57 +#: js/toolbar.js:118 +#: js/toolbar.js:119 +#: js/toolbar.js:183 +#: js/toolbar.js:239 +#: js/turtledefs.js:541 +#: js/turtledefs.js:550 +#: js/turtledefs.js:571 +msgid "Save project" +msgstr "" + +#: js/toolbar.js:58 +#: js/toolbar.js:77 +#: js/toolbar.js:79 +#: js/toolbar.js:138 +#: js/toolbar.js:147 +#: js/toolbar.js:149 +#: js/toolbar.js:184 +#: js/toolbar.js:202 +#: js/toolbar.js:204 +#: js/toolbar.js:240 +#: js/toolbar.js:258 +#: js/toolbar.js:260 +msgid "Save project as HTML" +msgstr "" + +#: js/toolbar.js:59 +#: js/toolbar.js:120 +#: js/toolbar.js:185 +#: js/toolbar.js:241 +msgid "Find and share projects" +msgstr "" + +#: js/toolbar.js:60 +#: js/toolbar.js:121 +#: js/toolbar.js:186 +#: js/toolbar.js:242 +msgid "Offline. Sharing is unavailable" +msgstr "" + +#: js/toolbar.js:61 +#: js/toolbar.js:122 +#: js/toolbar.js:187 +#: js/toolbar.js:243 +msgid "Auxiliary menu" +msgstr "" + +#: js/toolbar.js:62 +#: js/toolbar.js:123 +#: js/toolbar.js:188 +#: js/toolbar.js:244 +#: js/turtledefs.js:752 +#: js/piemenus.js:3423 +msgid "Help" +msgstr "" + +#: js/toolbar.js:63 +#: js/toolbar.js:124 +#: js/toolbar.js:189 +#: js/toolbar.js:245 +msgid "Run slowly" +msgstr "" + +#: js/toolbar.js:64 +#: js/toolbar.js:125 +#: js/toolbar.js:190 +#: js/toolbar.js:246 +#: js/turtledefs.js:682 +msgid "Run step by step" +msgstr "" + +#: js/toolbar.js:65 +#: js/toolbar.js:126 +#: js/toolbar.js:191 +#: js/toolbar.js:247 +#: js/turtledefs.js:689 +msgid "Display statistics" +msgstr "" + +#: js/toolbar.js:66 +#: js/toolbar.js:127 +#: js/toolbar.js:192 +#: js/toolbar.js:248 +msgid "Load plugin" +msgstr "" + +#: js/toolbar.js:67 +#: js/toolbar.js:128 +#: js/toolbar.js:193 +#: js/toolbar.js:249 +#: js/turtledefs.js:696 +msgid "Delete plugin" +msgstr "" + +#: js/toolbar.js:68 +#: js/toolbar.js:129 +#: js/toolbar.js:194 +#: js/toolbar.js:250 +msgid "Enable horizontal scrolling" +msgstr "" + +#: js/toolbar.js:69 +#: js/toolbar.js:130 +#: js/toolbar.js:195 +#: js/toolbar.js:251 +msgid "Disable horizontal scrolling" +msgstr "" + +#: js/toolbar.js:70 +#: js/toolbar.js:131 +#: js/toolbar.js:196 +#: js/toolbar.js:252 +#: planet/js/LocalCard.js:54 +#: planet/js/StringHelper.js:71 +msgid "Merge with current project" +msgstr "" + +#: js/toolbar.js:71 +#: js/toolbar.js:132 +msgid "Set Pitch Preview" +msgstr "" + +#: js/toolbar.js:72 +#: js/toolbar.js:133 +#: js/toolbar.js:197 +#: js/toolbar.js:253 +msgid "JavaScript Editor" +msgstr "" + +#: js/toolbar.js:73 +#: js/toolbar.js:134 +#: js/toolbar.js:198 +#: js/toolbar.js:254 +#: js/turtledefs.js:724 +msgid "Restore" +msgstr "" + +#: js/toolbar.js:74 +#: js/toolbar.js:135 +#: js/toolbar.js:199 +#: js/toolbar.js:255 +msgid "Switch to beginner mode" +msgstr "" + +#: js/toolbar.js:75 +#: js/toolbar.js:136 +#: js/toolbar.js:200 +#: js/toolbar.js:256 +msgid "Switch to advanced mode" +msgstr "" + +#: js/toolbar.js:76 +#: js/toolbar.js:137 +#: js/toolbar.js:146 +#: js/toolbar.js:201 +#: js/toolbar.js:257 +#: js/turtledefs.js:738 +msgid "Select language" +msgstr "" + +#: js/toolbar.js:78 +#: js/toolbar.js:81 +#: js/toolbar.js:140 +#: js/turtledefs.js:579 +msgid "Save mouse artwork as PNG" +msgstr "" + +#: js/toolbar.js:80 +#: js/toolbar.js:139 +#: js/turtledefs.js:575 +msgid "Save mouse artwork as SVG" +msgstr "" + +#: js/toolbar.js:82 +#: js/toolbar.js:141 +#: js/turtledefs.js:583 +msgid "Save music as WAV" +msgstr "" + +#: js/toolbar.js:83 +#: js/toolbar.js:142 +#: js/turtledefs.js:587 +msgid "Save sheet music as ABC" +msgstr "" + +#: js/toolbar.js:84 +#: js/toolbar.js:143 +#: js/turtledefs.js:591 +msgid "Save sheet music as Lilypond" +msgstr "" + +#: js/toolbar.js:85 +msgid "Save sheet music as MusicXML" +msgstr "" + +#: js/toolbar.js:86 +#: js/toolbar.js:144 +#: js/toolbar.js:152 +#: js/toolbar.js:207 +#: js/toolbar.js:263 +#: js/turtledefs.js:562 +#: js/turtledefs.js:595 +msgid "Save block artwork as SVG" +msgstr "" + +#: js/toolbar.js:87 +#: js/toolbar.js:145 +#: js/toolbar.js:153 +#: js/toolbar.js:208 +#: js/toolbar.js:264 +#: js/turtles.js:911 +msgid "Confirm" +msgstr "" + +#: js/toolbar.js:88 +#: js/toolbar.js:154 +#: js/toolbar.js:209 +#: js/toolbar.js:265 +msgid "English (United States)" +msgstr "" + +#: js/toolbar.js:89 +#: js/toolbar.js:155 +#: js/toolbar.js:210 +#: js/toolbar.js:266 +msgid "English (United Kingdom)" +msgstr "" + +#: js/toolbar.js:90 +#: js/toolbar.js:156 +#: js/toolbar.js:211 +#: js/toolbar.js:267 +msgid "日本語" +msgstr "" + +#: js/toolbar.js:91 +msgid "한국어" +msgstr "" + +#: js/toolbar.js:92 +#: js/toolbar.js:158 +#: js/toolbar.js:213 +#: js/toolbar.js:269 +msgid "español" +msgstr "" + +#: js/toolbar.js:93 +#: js/toolbar.js:159 +#: js/toolbar.js:214 +#: js/toolbar.js:270 +msgid "português" +msgstr "" + +#: js/toolbar.js:94 +#: js/toolbar.js:160 +#: js/toolbar.js:215 +#: js/toolbar.js:271 +msgid "にほんご" +msgstr "" + +#: js/toolbar.js:95 +#: js/toolbar.js:161 +#: js/toolbar.js:216 +#: js/toolbar.js:272 +msgid "中文" +msgstr "" + +#: js/toolbar.js:96 +#: js/toolbar.js:162 +#: js/toolbar.js:217 +#: js/toolbar.js:273 +msgid "ภาษาไทย" +msgstr "" + +#: js/toolbar.js:97 +#: js/toolbar.js:163 +#: js/toolbar.js:218 +#: js/toolbar.js:274 +msgid "aymara" +msgstr "" + +#: js/toolbar.js:98 +#: js/toolbar.js:164 +#: js/toolbar.js:219 +#: js/toolbar.js:275 +msgid "quechua" +msgstr "" + +#: js/toolbar.js:99 +#: js/toolbar.js:165 +#: js/toolbar.js:220 +#: js/toolbar.js:276 +msgid "guarani" +msgstr "" + +#: js/toolbar.js:100 +#: js/toolbar.js:166 +#: js/toolbar.js:221 +#: js/toolbar.js:277 +msgid "हिंदी" +msgstr "" + +#: js/toolbar.js:101 +#: js/toolbar.js:168 +#: js/toolbar.js:222 +#: js/toolbar.js:279 +msgid "igbo" +msgstr "" + +#: js/toolbar.js:102 +#: js/toolbar.js:169 +#: js/toolbar.js:223 +#: js/toolbar.js:280 +msgid "عربى" +msgstr "" + +#: js/toolbar.js:103 +#: js/toolbar.js:167 +#: js/toolbar.js:224 +#: js/toolbar.js:278 +msgid "తెలుగు" +msgstr "" + +#: js/toolbar.js:104 +#: js/toolbar.js:170 +#: js/toolbar.js:225 +#: js/toolbar.js:281 +msgid "עִברִית" +msgstr "" + +#: js/toolbar.js:113 +#: js/toolbar.js:114 +#: js/toolbar.js:178 +#: js/toolbar.js:179 +#: js/toolbar.js:234 +#: js/toolbar.js:235 +msgid "Full Screen" +msgstr "" + +#: js/toolbar.js:148 +#: js/toolbar.js:151 +#: js/toolbar.js:203 +#: js/toolbar.js:206 +#: js/toolbar.js:259 +#: js/toolbar.js:262 +#: js/turtledefs.js:558 +msgid "Save turtle artwork as PNG" +msgstr "" + +#: js/toolbar.js:150 +#: js/toolbar.js:205 +#: js/toolbar.js:261 +#: js/turtledefs.js:554 +msgid "Save turtle artwork as SVG" +msgstr "" + +#: js/toolbar.js:157 +#: js/toolbar.js:212 +#: js/toolbar.js:268 +msgid "한국인" +msgstr "" + +#: js/toolbar.js:174 +#: js/toolbar.js:230 +msgid "About Turtle Blocks" +msgstr "" + +#: js/toolbar.js:446 +#: js/toolbar.js:457 +#: js/toolbar.js:497 +msgid "Turtle Wrap Off" +msgstr "" + +#: js/toolbar.js:466 +#: js/toolbar.js:506 +msgid "Turtle Wrap On" +msgstr "" + +#: js/turtle-painter.js:1192 +#: js/turtle-painter.js:1193 +#: js/turtles.js:118 +#: js/block-verbose.js:1623 +#: js/block.js:1587 +#: js/lilypond.js:749 +#: js/lilypond.js:913 +#: js/lilypond.js:951 +#: js/logo.js:1184 +#: js/blocks/ActionBlocks.js:1223 +#: js/blocks/ProgramBlocks.js:1267 +msgid "start" +msgstr "" + +#: js/turtledefs.js:40 +#.TRANS: put the URL to the guide here, e.g., https://github.com/sugarlabs/turtleblocksjs/tree/master/guide/README.md +msgid "guide url" +msgstr "" + +#: js/turtledefs.js:85 +#: js/turtledefs.js:437 +msgid "Turtle Blocks is a Logo-inspired turtle that draws colorful pictures with snap-together visual-programming blocks." +msgstr "" + +#: js/turtledefs.js:118 +#: js/turtledefs.js:220 +msgid "search" +msgstr "" + +#: js/turtledefs.js:120 +#: js/turtledefs.js:222 +#: js/blocks/MeterBlocks.js:1343 +#: js/blocks/WidgetBlocks.js:522 +#.TRANS: musical meter (time signature), e.g., 4:4 +msgid "meter" +msgstr "" + +#: js/turtledefs.js:122 +#: js/turtledefs.js:224 +msgid "intervals" +msgstr "" + +#: js/turtledefs.js:124 +#: js/turtledefs.js:226 +msgid "ornament" +msgstr "" + +#: js/turtledefs.js:125 +#: js/turtledefs.js:227 +#: js/blocks/VolumeBlocks.js:362 +#: js/blocks/VolumeBlocks.js:502 +#: js/blocks/VolumeBlocks.js:545 +msgid "volume" +msgstr "" + +#: js/turtledefs.js:126 +#: js/turtledefs.js:228 +#: js/block-verbose.js:1700 +#: js/block-verbose.js:2626 +#: js/block.js:1664 +#: js/block.js:2554 +#: js/lilypond.js:732 +#: js/lilypond.js:897 +#: js/lilypond.js:941 +#: js/palette.js:577 +#: js/blocks/RhythmBlocks.js:766 +#: js/blocks/DrumBlocks.js:477 +#: js/blocks/VolumeBlocks.js:502 +#: js/widgets/phrasemaker.js:1038 +msgid "drum" +msgstr "" + +#: js/turtledefs.js:129 +#: js/turtledefs.js:231 +msgid "boxes" +msgstr "" + +#: js/turtledefs.js:130 +#: js/turtledefs.js:232 +msgid "widgets" +msgstr "" + +#: js/turtledefs.js:131 +#: js/turtledefs.js:233 +#: js/widgets/phrasemaker.js:1039 +msgid "graphics" +msgstr "" + +#: js/turtledefs.js:134 +#: js/turtledefs.js:236 +msgid "boolean" +msgstr "" + +#: js/turtledefs.js:137 +#: js/turtledefs.js:239 +#: js/blocks/HeapBlocks.js:59 +#: js/widgets/status.js:147 +msgid "heap" +msgstr "" + +#: js/turtledefs.js:138 +#: js/turtledefs.js:240 +#: js/blocks/DictBlocks.js:142 +#: js/blocks/ProgramBlocks.js:495 +msgid "dictionary" +msgstr "" + +#: js/turtledefs.js:139 +#: js/turtledefs.js:241 +msgid "ensemble" +msgstr "" + +#: js/turtledefs.js:140 +#: js/turtledefs.js:242 +msgid "extras" +msgstr "" + +#: js/turtledefs.js:142 +#: js/turtledefs.js:244 +#.TRANS: program as in computer program +#.TRANS: program as in computer program +msgid "program" +msgstr "" + +#: js/turtledefs.js:143 +#: js/turtledefs.js:245 +msgid "my blocks" +msgstr "" + +#: js/turtledefs.js:185 +#: js/turtledefs.js:281 +msgid "artwork" +msgstr "" + +#: js/turtledefs.js:185 +#: js/turtledefs.js:281 +msgid "logic" +msgstr "" + +#: js/turtledefs.js:185 +#: js/turtledefs.js:281 +msgid "music" +msgstr "" + +#: js/turtledefs.js:187 +#: js/turtledefs.js:463 +msgid "Music Blocks is a collection of tools for exploring fundamental musical concepts in a fun way." +msgstr "" + +#: js/turtledefs.js:436 +msgid "Welcome to Turtle Blocks" +msgstr "" + +#: js/turtledefs.js:438 +#: js/turtledefs.js:465 +#: js/turtledefs.js:774 +#: js/turtledefs.js:805 +msgid "The current version is" +msgstr "" + +#: js/turtledefs.js:446 +#: js/turtledefs.js:483 +msgid "Click the run button to run the project in fast mode." +msgstr "" + +#: js/turtledefs.js:452 +msgid "Stop the turtle." +msgstr "" + +#: js/turtledefs.js:454 +#: js/turtledefs.js:491 +msgid "You can also type Alt-S to stop." +msgstr "" + +#: js/turtledefs.js:462 +#: js/widgets/help.js:333 +msgid "Welcome to Music Blocks" +msgstr "" + +#: js/turtledefs.js:472 +#: js/widgets/help.js:334 +msgid "Meet Mr. Mouse!" +msgstr "" + +#: js/turtledefs.js:473 +msgid "Mr Mouse is our Music Blocks conductor." +msgstr "" + +#: js/turtledefs.js:475 +msgid "Mr Mouse encourages you to explore Music Blocks." +msgstr "" + +#: js/turtledefs.js:477 +msgid "Let us start our tour!" +msgstr "" + +#: js/turtledefs.js:489 +msgid "Stop the music (and the mice)." +msgstr "" + +#: js/turtledefs.js:499 +msgid "Record your project as video." +msgstr "" + +#: js/turtledefs.js:505 +msgid "Toggle Fullscreen mode." +msgstr "" + +#: js/turtledefs.js:511 +msgid "Initialize a new project." +msgstr "" + +#: js/turtledefs.js:517 +msgid "You can also load projects from the file system." +msgstr "" + +#: js/turtledefs.js:522 +#: planet/js/StringHelper.js:46 +msgid "Delete" +msgstr "" + +#: js/turtledefs.js:523 +msgid "To delete a block, just right-click on it, then you will be able to see the delete option" +msgstr "" + +#: js/turtledefs.js:528 +#: js/activity.js:2649 +#: planet/js/LocalCard.js:31 +msgid "Copy" +msgstr "" + +#: js/turtledefs.js:529 +msgid "To copy a block, just right-click on it, then you will be able to see the copy option" +msgstr "" + +#: js/turtledefs.js:534 +#: js/piemenus.js:3411 +msgid "Extract" +msgstr "" + +#: js/turtledefs.js:535 +msgid "To extract a block, just right-click on it, then you will be able to see the extract option" +msgstr "" + +#: js/turtledefs.js:542 +#: js/turtledefs.js:552 +#: js/turtledefs.js:573 +msgid "Save your project to a file." +msgstr "" + +#: js/turtledefs.js:549 +#: js/turtledefs.js:570 +msgid "save" +msgstr "" + +#: js/turtledefs.js:556 +#: js/turtledefs.js:577 +msgid "Save graphics from your project to as SVG." +msgstr "" + +#: js/turtledefs.js:560 +#: js/turtledefs.js:581 +msgid "Save graphics from your project as PNG." +msgstr "" + +#: js/turtledefs.js:564 +#: js/turtledefs.js:597 +msgid "Save block artwork as an SVG file." +msgstr "" + +#: js/turtledefs.js:585 +msgid "Save audio from your project as WAV." +msgstr "" + +#: js/turtledefs.js:589 +msgid "Save your project to as an ABC file." +msgstr "" + +#: js/turtledefs.js:593 +msgid "Save your project to as a Lilypond file." +msgstr "" + +#: js/turtledefs.js:604 +msgid "Load samples from server" +msgstr "" + +#: js/turtledefs.js:605 +msgid "This button opens a viewer for loading example projects." +msgstr "" + +#: js/turtledefs.js:611 +msgid "Palette buttons" +msgstr "" + +#: js/turtledefs.js:612 +msgid "This toolbar contains the palette buttons including Rhythm Pitch Tone Action and more." +msgstr "" + +#: js/turtledefs.js:614 +msgid "Click to show the palettes of blocks and drag blocks from the palettes onto the canvas to use them." +msgstr "" + +#: js/turtledefs.js:620 +msgid "Cartesian/Polar" +msgstr "" + +#: js/turtledefs.js:621 +msgid "Show or hide a coordinate grid." +msgstr "" + +#: js/turtledefs.js:626 +#: js/turtles.js:902 +msgid "Clean" +msgstr "" + +#: js/turtledefs.js:627 +msgid "Clear the screen and return the mice to their initial positions." +msgstr "" + +#: js/turtledefs.js:632 +#: js/turtles.js:955 +msgid "Collapse" +msgstr "" + +#: js/turtledefs.js:633 +msgid "Collapse the graphics window." msgstr "" -#: js/palette.js:571 -msgid "grid" +#: js/turtledefs.js:638 +#: js/activity.js:5684 +msgid "Home" msgstr "" -#: js/palette.js:577 -#: js/block.js:1540 -#: js/block.js:2343 -#: js/turtledefs.js:126 -#: js/turtledefs.js:228 -#: js/lilypond.js:740 -#: js/lilypond.js:905 -#: js/lilypond.js:949 -#: js/DrumBlocks.js:486 -#: js/RhythmBlocks.js:766 -#: js/VolumeBlocks.js:502 -#: js/phrasemaker.js:823 -msgid "drum" +#: js/turtledefs.js:639 +msgid "Return all blocks to the center of the screen." msgstr "" -#: js/palette.js:580 -msgid "effect" +#: js/turtledefs.js:644 +msgid "Show/hide blocks" msgstr "" -#: js/palette.js:586 -msgid "sargam" +#: js/turtledefs.js:645 +msgid "Hide or show the blocks and the palettes." msgstr "" -#: js/palette.js:589 -#: js/activity.js:1833 -#: js/RhythmBlocks.js:923 -#: js/PitchBlocks.js:442 -#: js/PitchBlocks.js:1748 -#.TRANS: a numeric mapping of the notes in an octave based on the musical mode -msgid "scale degree" +#: js/turtledefs.js:650 +msgid "Expand/collapse collapsable blocks" msgstr "" -#: js/palette.js:592 -#: js/activity.js:1860 -msgid "mode name" +#: js/turtledefs.js:651 +msgid "Expand or collapse start and action stacks." msgstr "" -#: js/palette.js:595 -#: js/activity.js:1839 -msgid "invert mode" +#: js/turtledefs.js:658 +#: js/activity.js:5704 +msgid "Decrease block size" msgstr "" -#: js/palette.js:598 -#: js/activity.js:1836 -msgid "voice name" +#: js/turtledefs.js:659 +msgid "Decrease the size of the blocks." msgstr "" -#: js/palette.js:601 -#: js/PitchBlocks.js:1181 -msgid "custom pitch" +#: js/turtledefs.js:664 +#: js/activity.js:5710 +msgid "Increase block size" msgstr "" -#: js/palette.js:605 -#: js/block.js:1456 -#: js/block.js:1575 -#: js/WidgetBlocks.js:218 -#: js/IntervalsBlocks.js:63 -msgid "temperament" +#: js/turtledefs.js:665 +msgid "Increase the size of the blocks." msgstr "" -#: js/palette.js:609 -msgid "accidental" +#: js/turtledefs.js:670 +msgid "Expand/collapse option toolbar" msgstr "" -#: js/palette.js:615 -#: js/activity.js:1866 -msgid "interval name" +#: js/turtledefs.js:671 +msgid "Click this button to expand or collapse the auxillary toolbar." msgstr "" -#: js/palette.js:633 -#: js/PitchBlocks.js:405 -msgid "pitch converter" +#: js/turtledefs.js:676 +msgid "Run slow" msgstr "" -#: js/rubrics.js:522 -#: js/turtledefs.js:119 -#: js/turtledefs.js:221 -#: js/RhythmBlockPaletteBlocks.js:52 -#: js/RhythmBlockPaletteBlocks.js:233 -#: js/ProgramBlocks.js:745 -#: js/rhythmruler.js:1670 -#: js/rhythmruler.js:1677 -#: js/rhythmruler.js:1745 -#: js/rhythmruler.js:1752 -#: js/rhythmruler.js:1830 -#.TRANS: an arrangement of notes based on duration -msgid "rhythm" +#: js/turtledefs.js:677 +msgid "Click to run the project in slow mode." msgstr "" -#: js/rubrics.js:523 -#: js/block.js:2339 -#: js/turtledefs.js:121 -#: js/turtledefs.js:223 -#: js/IntervalsBlocks.js:63 -#: js/PitchBlocks.js:1801 -#: js/PitchBlocks.js:1814 -#: js/SensorsBlocks.js:178 -#: js/phrasemaker.js:821 -#: js/musickeyboard.js:1653 -#.TRANS: pitch number -#.TRANS: we specify pitch in terms of a name and an octave. The name can be CDEFGAB or Do Re Mi Fa Sol La Ti. Octave is a number between 1 and 8. -msgid "pitch" +#: js/turtledefs.js:683 +msgid "Click to run the project step by step." msgstr "" -#: js/rubrics.js:524 -#: js/turtledefs.js:123 -#: js/turtledefs.js:225 -msgid "tone" +#: js/turtledefs.js:690 +msgid "Display statistics about your Music project." msgstr "" -#: js/rubrics.js:525 -#: js/lilypond.js:613 -#: js/lilypond.js:912 -#: js/lilypond.js:918 -#: js/lilypond.js:956 -msgid "mouse" +#: js/turtledefs.js:697 +msgid "Delete a selected plugin." msgstr "" -#: js/rubrics.js:526 -#: js/turtledefs.js:132 -#: js/turtledefs.js:234 -#: js/phrasemaker.js:825 -msgid "pen" +#: js/turtledefs.js:704 +msgid "Enable scrolling" msgstr "" -#: js/rubrics.js:527 -#: js/turtledefs.js:133 -#: js/turtledefs.js:235 -#: js/NumberBlocks.js:905 -#: js/PitchBlocks.js:1679 -#: js/PitchBlocks.js:1720 -msgid "number" +#: js/turtledefs.js:705 +msgid "You can scroll the blocks on the canvas." msgstr "" -#: js/rubrics.js:528 -#: js/turtledefs.js:127 -#: js/turtledefs.js:229 -msgid "flow" +#: js/turtledefs.js:714 +msgid "Wrap Turtle" msgstr "" -#: js/rubrics.js:530 -#: js/turtledefs.js:136 -#: js/turtledefs.js:238 -msgid "sensors" +#: js/turtledefs.js:715 +msgid "Turn Turtle wrapping On or Off." msgstr "" -#: js/rubrics.js:531 -#: js/turtledefs.js:135 -#: js/turtledefs.js:237 -#: js/MediaBlocks.js:930 -msgid "media" +#: js/turtledefs.js:725 +msgid "Restore blocks from the trash." msgstr "" -#: js/rubrics.js:532 -msgid "mice" +#: js/turtledefs.js:732 +msgid "Switch mode" msgstr "" -#: js/macros.js:711 -#: js/musicutils.js:783 -#: js/synthutils.js:181 -#.TRANS: animal sound effect -msgid "duck" +#: js/turtledefs.js:733 +msgid "Switch between beginner and advance modes." msgstr "" -#: js/toolbar.js:46 -#: js/toolbar.js:107 -msgid "About Music Blocks" +#: js/turtledefs.js:739 +msgid "Select your language preference." msgstr "" -#: js/toolbar.js:47 -#: js/toolbar.js:108 -#: js/toolbar.js:172 -#: js/toolbar.js:228 -#: js/turtledefs.js:445 -#: js/turtledefs.js:482 -#: js/activity.js:2281 -#: js/activity.js:2289 -#: js/activity.js:2520 -#: js/modewidget.js:77 -#: js/pitchstaircase.js:121 -#: js/phrasemaker.js:302 -#: js/phrasemaker.js:312 -#: js/phrasemaker.js:314 -#: js/phrasemaker.js:3901 -#: js/phrasemaker.js:4061 -#: js/phrasemaker.js:4066 -#: js/phrasemaker.js:4068 -#: js/phrasemaker.js:4183 -#: js/pitchdrummatrix.js:81 -#: js/pitchdrummatrix.js:574 -#: js/pitchdrummatrix.js:576 -#: js/pitchdrummatrix.js:628 -#: js/pitchdrummatrix.js:630 -#: js/pitchdrummatrix.js:645 -#: js/pitchdrummatrix.js:647 -#: js/pitchdrummatrix.js:674 -#: js/pitchdrummatrix.js:676 -#: js/temperament.js:477 -#: js/temperament.js:480 -#: js/temperament.js:540 -#: js/temperament.js:542 -#: js/temperament.js:1835 -#: js/temperament.js:1837 -#: js/temperament.js:1986 -#: js/temperament.js:1988 -#: js/musickeyboard.js:522 -#: js/musickeyboard.js:682 -#: js/musickeyboard.js:684 -#: js/musickeyboard.js:756 -#: js/musickeyboard.js:758 -#: js/rhythmruler.js:298 -#: js/rhythmruler.js:300 -#: js/rhythmruler.js:314 -#: js/rhythmruler.js:316 -#: js/sampler.js:96 -#: js/sampler.js:98 -#: js/sampler.js:229 -#: js/sampler.js:235 -#: js/sampler.js:237 -#: js/tempo.js:84 -#: js/tempo.js:86 -#: js/timbre.js:432 -#: js/timbre.js:434 -#: js/timbre.js:465 -#: js/timbre.js:467 -#: js/timbre.js:746 -#: js/meterwidget.js:80 -#: js/arpeggio.js:90 -#: js/arpeggio.js:547 -#: js/arpeggio.js:549 -#: js/arpeggio.js:644 -#: js/arpeggio.js:646 -msgid "Play" +#: js/turtledefs.js:745 +msgid "Keyboard shortcuts" msgstr "" -#: js/toolbar.js:48 -#: js/toolbar.js:109 -#: js/toolbar.js:173 -#: js/toolbar.js:229 -#: js/turtledefs.js:451 -#: js/turtledefs.js:488 -#: js/activity.js:2297 -#: js/modewidget.js:99 -#: js/modewidget.js:101 -#: js/phrasemaker.js:323 -#: js/phrasemaker.js:325 -#: js/pitchdrummatrix.js:561 -#: js/pitchdrummatrix.js:563 -#: js/temperament.js:1820 -#: js/temperament.js:1822 -#: js/meterwidget.js:101 -#: js/meterwidget.js:103 -#: js/arpeggio.js:534 -#: js/arpeggio.js:536 -msgid "Stop" +#: js/turtledefs.js:746 +msgid "You can type d to create a do block and r to create a re block etc." msgstr "" -#: js/toolbar.js:49 -#: js/toolbar.js:110 -#: js/toolbar.js:174 -#: js/toolbar.js:230 -#: js/turtledefs.js:498 -msgid "Record" +#: js/turtledefs.js:753 +msgid "Show these messages." msgstr "" -#: js/toolbar.js:50 -#: js/toolbar.js:51 -msgid "Full screen" +#: js/turtledefs.js:759 +#: js/turtledefs.js:790 +#: js/widgets/help.js:335 +msgid "Guide" msgstr "" -#: js/toolbar.js:52 -#: js/toolbar.js:112 -#: js/toolbar.js:177 -#: js/toolbar.js:232 -#: js/turtledefs.js:504 -msgid "Toggle Fullscreen" +#: js/turtledefs.js:760 +msgid "A detailed guide to Turtle Blocks is available." msgstr "" -#: js/toolbar.js:53 -#: js/toolbar.js:113 -#: js/toolbar.js:178 -#: js/toolbar.js:233 -#: js/turtledefs.js:510 -#: js/StringHelper.js:33 -msgid "New project" +#: js/turtledefs.js:764 +msgid "Turtle Blocks Guide" msgstr "" -#: js/toolbar.js:54 -#: js/toolbar.js:114 -#: js/toolbar.js:179 -#: js/toolbar.js:234 -#: js/turtledefs.js:516 -msgid "Load project from file" +#: js/turtledefs.js:767 +#: js/turtledefs.js:798 +#: js/widgets/help.js:336 +msgid "About" msgstr "" -#: js/toolbar.js:55 -#: js/toolbar.js:115 -#: js/toolbar.js:116 -#: js/toolbar.js:180 -#: js/toolbar.js:235 -#: js/turtledefs.js:541 -#: js/turtledefs.js:550 -#: js/turtledefs.js:571 -msgid "Save project" +#: js/turtledefs.js:768 +msgid "Turtle Blocks is an open source collection of tools for exploring musical concepts." msgstr "" -#: js/toolbar.js:56 -#: js/toolbar.js:75 -#: js/toolbar.js:77 -#: js/toolbar.js:135 -#: js/toolbar.js:144 -#: js/toolbar.js:146 -#: js/toolbar.js:181 -#: js/toolbar.js:199 -#: js/toolbar.js:201 -#: js/toolbar.js:236 -#: js/toolbar.js:254 -#: js/toolbar.js:256 -msgid "Save project as HTML" +#: js/turtledefs.js:770 +msgid "A full list of contributors can be found in the Turtle Blocks GitHub repository." +msgstr "" + +#: js/turtledefs.js:772 +msgid "Turtle Blocks is licensed under the AGPL." +msgstr "" + +#: js/turtledefs.js:780 +msgid "Turtle Blocks GitHub repository" +msgstr "" + +#: js/turtledefs.js:783 +#: js/turtledefs.js:814 +#: js/widgets/help.js:337 +#: js/widgets/help.js:359 +msgid "Congratulations." +msgstr "" + +#: js/turtledefs.js:784 +msgid "You have finished the tour. Please enjoy Turtle Blocks!" +msgstr "" + +#: js/turtledefs.js:791 +msgid "A detailed guide to Music Blocks is available." +msgstr "" + +#: js/turtledefs.js:799 +msgid "Music Blocks is an open source collection of tools for exploring musical concepts." +msgstr "" + +#: js/turtledefs.js:801 +msgid "A full list of contributors can be found in the Music Blocks GitHub repository." +msgstr "" + +#: js/turtledefs.js:803 +msgid "Music Blocks is licensed under the AGPL." +msgstr "" + +#: js/turtledefs.js:811 +msgid "Music Blocks GitHub repository" +msgstr "" + +#: js/turtledefs.js:815 +msgid "You have finished the tour. Please enjoy Music Blocks!" +msgstr "" + +#: js/turtles.js:882 +msgid "Grid" +msgstr "" + +#: js/turtles.js:1024 +msgid "Expand" +msgstr "" + +#: js/block-verbose.js:1616 +#: js/block-verbose.js:1735 +#: js/block.js:1580 +#: js/block.js:1699 +#: js/palette.js:605 +#: js/blocks/IntervalsBlocks.js:63 +#: js/blocks/WidgetBlocks.js:259 +msgid "temperament" +msgstr "" + +#: js/block-verbose.js:1630 +#: js/block.js:1594 +msgid "matrix" msgstr "" -#: js/toolbar.js:57 -#: js/toolbar.js:117 -#: js/toolbar.js:182 -#: js/toolbar.js:237 -msgid "Find and share projects" +#: js/block-verbose.js:1637 +#: js/block.js:1601 +#: js/blocks/WidgetBlocks.js:1509 +#: plugins/rodi.rtp:324 +msgid "status" msgstr "" -#: js/toolbar.js:58 -#: js/toolbar.js:118 -#: js/toolbar.js:183 -#: js/toolbar.js:238 -msgid "Offline. Sharing is unavailable" +#: js/block-verbose.js:1644 +#: js/block.js:1608 +msgid "drum mapper" msgstr "" -#: js/toolbar.js:59 -#: js/toolbar.js:119 -#: js/toolbar.js:184 -#: js/toolbar.js:239 -msgid "Auxiliary menu" +#: js/block-verbose.js:1651 +#: js/block.js:1615 +msgid "ruler" msgstr "" -#: js/toolbar.js:61 -#: js/toolbar.js:121 -#: js/toolbar.js:186 -#: js/toolbar.js:241 -msgid "Run slowly" +#: js/block-verbose.js:1658 +#: js/block.js:1622 +#: js/blocks/WidgetBlocks.js:397 +#.TRANS: timbre is the character or quality of a musical sound +msgid "timbre" msgstr "" -#: js/toolbar.js:62 -#: js/toolbar.js:122 -#: js/toolbar.js:187 -#: js/toolbar.js:242 -#: js/turtledefs.js:682 -msgid "Run step by step" +#: js/block-verbose.js:1665 +#: js/block.js:1629 +msgid "stair" msgstr "" -#: js/toolbar.js:63 -#: js/toolbar.js:123 -#: js/toolbar.js:188 -#: js/toolbar.js:243 -#: js/turtledefs.js:689 -msgid "Display statistics" +#: js/block-verbose.js:1672 +#: js/block.js:1636 +#: js/blocks/WidgetBlocks.js:707 +#.TRANS: the speed at music is should be played. +msgid "tempo" msgstr "" -#: js/toolbar.js:64 -#: js/toolbar.js:124 -#: js/toolbar.js:189 -#: js/toolbar.js:244 -msgid "Load plugin" +#: js/block-verbose.js:1679 +#: js/block-verbose.js:1742 +#: js/block.js:1643 +#: js/block.js:1706 +#: js/blocks/IntervalsBlocks.js:1464 +#.TRANS: mode, e.g., Major in C Major +msgid "mode" msgstr "" -#: js/toolbar.js:65 -#: js/toolbar.js:125 -#: js/toolbar.js:190 -#: js/toolbar.js:245 -#: js/turtledefs.js:696 -msgid "Delete plugin" +#: js/block-verbose.js:1686 +#: js/block.js:1650 +msgid "slider" msgstr "" -#: js/toolbar.js:66 -#: js/toolbar.js:126 -#: js/toolbar.js:191 -#: js/toolbar.js:246 -msgid "Enable horizontal scrolling" +#: js/block-verbose.js:1693 +#: js/block.js:1657 +#: js/blocks/SensorsBlocks.js:1001 +msgid "keyboard" msgstr "" -#: js/toolbar.js:67 -#: js/toolbar.js:127 -#: js/toolbar.js:192 -#: js/toolbar.js:247 -msgid "Disable horizontal scrolling" +#: js/block-verbose.js:1707 +#: js/block.js:1671 +#: js/blocks/WidgetBlocks.js:1190 +#: js/blocks/WidgetBlocks.js:1228 +#.TRANS: widget for subdividing a measure into distinct rhythmic elements +msgid "rhythm maker" msgstr "" -#: js/toolbar.js:68 -#: js/toolbar.js:128 -#: js/toolbar.js:193 -#: js/toolbar.js:248 -#: js/LocalCard.js:54 -#: js/StringHelper.js:71 -msgid "Merge with current project" +#: js/block-verbose.js:1714 +#: js/block-verbose.js:2457 +#: js/block-verbose.js:2514 +#: js/block.js:1678 +#: js/block.js:2385 +#: js/block.js:2442 +#: js/blocks/MeterBlocks.js:1367 +#: js/blocks/OrnamentBlocks.js:220 +#: js/blocks/OrnamentBlocks.js:312 +#: js/blocks/RhythmBlocks.js:33 +#: js/blocks/RhythmBlocks.js:356 +#: js/blocks/RhythmBlocks.js:766 +#: js/blocks/RhythmBlocks.js:806 +#: js/blocks/RhythmBlockPaletteBlocks.js:70 +#: js/blocks/RhythmBlockPaletteBlocks.js:252 +#: js/blocks/RhythmBlockPaletteBlocks.js:485 +#: js/blocks/RhythmBlockPaletteBlocks.js:554 +#: js/blocks/RhythmBlockPaletteBlocks.js:605 +#: js/blocks/RhythmBlockPaletteBlocks.js:875 +#: js/turtleactions/DictActions.js:85 +#: js/widgets/phrasemaker.js:942 +#: js/widgets/phrasemaker.js:2656 +#: js/widgets/phrasemaker.js:2699 +#: js/widgets/phrasemaker.js:2810 +#.TRANS: the value (e.g., 1/4 note) of the note being played. +msgid "note value" msgstr "" -#: js/toolbar.js:69 -#: js/toolbar.js:129 -msgid "Set Pitch Preview" +#: js/block-verbose.js:1721 +#: js/block-verbose.js:2382 +#: js/block-verbose.js:2405 +#: js/block.js:1685 +#: js/block.js:2310 +#: js/block.js:2333 +#: js/blocks/IntervalsBlocks.js:1071 +#: js/blocks/OrnamentBlocks.js:312 +#.TRANS: calculate a relative step between notes based on semi-tones +msgid "scalar interval" msgstr "" -#: js/toolbar.js:70 -#: js/toolbar.js:130 -#: js/toolbar.js:194 -#: js/toolbar.js:249 -msgid "Toggle JavaScript Editor" +#: js/block-verbose.js:1728 +#: js/block.js:1692 +#: js/blocks/RhythmBlocks.js:148 +msgid "milliseconds" msgstr "" -#: js/toolbar.js:71 -#: js/toolbar.js:131 -#: js/toolbar.js:195 -#: js/toolbar.js:250 -#: js/turtledefs.js:724 -msgid "Restore" +#: js/block-verbose.js:2455 +#: js/block-verbose.js:2459 +#: js/block-verbose.js:2512 +#: js/block-verbose.js:2628 +#: js/block.js:2383 +#: js/block.js:2387 +#: js/block.js:2440 +#: js/block.js:2556 +#: js/blocks/RhythmBlocks.js:712 +#: js/blocks/ProgramBlocks.js:1273 +#: js/widgets/rhythmruler.js:1183 +#: js/widgets/rhythmruler.js:1329 +msgid "silence" msgstr "" -#: js/toolbar.js:72 -#: js/toolbar.js:132 -#: js/toolbar.js:196 -#: js/toolbar.js:251 -msgid "Switch to beginner mode" +#: js/block-verbose.js:2548 +#: js/block-verbose.js:3492 +#: js/block-verbose.js:3509 +#: js/activity.js:2718 +#: js/activity.js:2769 +#: js/block.js:2476 +#: js/block.js:3416 +#: js/block.js:3433 +#: js/utils/musicutils.js:3780 +#: js/utils/musicutils.js:5273 +#.TRANS: the note names must be separated by single spaces +#.TRANS: the note names must be separated by single spaces +#.TRANS: the note names must be separated by single spaces +msgid "ti la sol fa mi re do" msgstr "" -#: js/toolbar.js:73 -#: js/toolbar.js:133 -#: js/toolbar.js:197 -#: js/toolbar.js:252 -msgid "Switch to advanced mode" +#: js/block-verbose.js:2616 +#: js/block.js:2544 +#.TRANS: scalar step +#.TRANS: scalar step +msgid "down" msgstr "" -#: js/toolbar.js:74 -#: js/toolbar.js:134 -#: js/toolbar.js:143 -#: js/toolbar.js:198 -#: js/toolbar.js:253 -#: js/turtledefs.js:738 -msgid "Select language" +#: js/block-verbose.js:2617 +#: js/block.js:2545 +msgid "up" msgstr "" -#: js/toolbar.js:76 -#: js/toolbar.js:79 -#: js/toolbar.js:137 -#: js/turtledefs.js:579 -msgid "Save mouse artwork as PNG" +#: js/block-verbose.js:3026 +#: js/block.js:2950 +msgid "Silence block cannot be removed." msgstr "" -#: js/toolbar.js:78 -#: js/toolbar.js:136 -#: js/turtledefs.js:575 -msgid "Save mouse artwork as SVG" +#: js/block-verbose.js:3824 +#: js/block.js:3748 +#: js/blocks.js:2607 +#: js/blocks.js:3218 +#: js/palette.js:618 +#: js/blocks/BooleanBlocks.js:77 +#: js/blocks/BooleanBlocks.js:167 +#: js/blocks/BooleanBlocks.js:251 +#: js/blocks/BooleanBlocks.js:335 +#: js/blocks/BooleanBlocks.js:433 +#: js/blocks/BooleanBlocks.js:539 +#: js/blocks/BooleanBlocks.js:640 +#: js/blocks/BooleanBlocks.js:741 +#: js/blocks/BooleanBlocks.js:847 +#: js/blocks/BooleanBlocks.js:948 +#: js/blocks/BooleanBlocks.js:1033 +#: js/blocks/SensorsBlocks.js:910 +msgid "true" msgstr "" -#: js/toolbar.js:80 -#: js/toolbar.js:138 -#: js/turtledefs.js:583 -msgid "Save music as WAV" +#: js/block-verbose.js:3824 +#: js/block.js:3748 +#: js/blocks.js:2609 +#: js/blocks.js:3220 +#: js/blocks/BooleanBlocks.js:79 +#: js/blocks/BooleanBlocks.js:169 +#: js/blocks/BooleanBlocks.js:253 +#: js/blocks/BooleanBlocks.js:337 +#: js/blocks/BooleanBlocks.js:435 +#: js/blocks/BooleanBlocks.js:541 +#: js/blocks/BooleanBlocks.js:642 +#: js/blocks/BooleanBlocks.js:743 +#: js/blocks/BooleanBlocks.js:849 +#: js/blocks/BooleanBlocks.js:950 +#: js/blocks/SensorsBlocks.js:912 +msgid "false" msgstr "" -#: js/toolbar.js:81 -#: js/toolbar.js:139 -#: js/turtledefs.js:587 -msgid "Save sheet music as ABC" +#: js/block-verbose.js:3835 +#: js/block-verbose.js:3848 +#: js/block.js:3759 +#: js/block.js:3772 +#: js/blocks/ExtrasBlocks.js:615 +msgid "Cartesian" msgstr "" -#: js/toolbar.js:82 -#: js/toolbar.js:140 -#: js/turtledefs.js:591 -msgid "Save sheet music as Lilypond" +#: js/block-verbose.js:3836 +#: js/block-verbose.js:3849 +#: js/block.js:3760 +#: js/block.js:3773 +#: js/blocks/ExtrasBlocks.js:619 +msgid "polar" msgstr "" -#: js/toolbar.js:83 -msgid "Save sheet music as MusicXML" +#: js/block-verbose.js:3837 +#: js/block-verbose.js:3850 +#: js/block.js:3761 +#: js/block.js:3774 +#: js/blocks/ExtrasBlocks.js:623 +msgid "Cartesian+polar" msgstr "" -#: js/toolbar.js:84 -#: js/toolbar.js:141 -#: js/toolbar.js:149 -#: js/toolbar.js:204 -#: js/toolbar.js:259 -#: js/turtledefs.js:562 -#: js/turtledefs.js:595 -msgid "Save block artwork as SVG" +#: js/block-verbose.js:3838 +#: js/block-verbose.js:3857 +#: js/block.js:3762 +#: js/block.js:3781 +#: js/blocks/ExtrasBlocks.js:652 +msgid "none" msgstr "" -#: js/toolbar.js:85 -#: js/toolbar.js:142 -#: js/toolbar.js:150 -#: js/toolbar.js:205 -#: js/toolbar.js:260 -msgid "Confirm" +#: js/block-verbose.js:3851 +#: js/block.js:3775 +#: js/blocks/ExtrasBlocks.js:628 +msgid "treble" msgstr "" -#: js/toolbar.js:86 -#: js/toolbar.js:151 -#: js/toolbar.js:206 -#: js/toolbar.js:261 -msgid "English (United States)" +#: js/block-verbose.js:3852 +#: js/block.js:3776 +#: js/blocks/ExtrasBlocks.js:632 +msgid "grand staff" msgstr "" -#: js/toolbar.js:87 -#: js/toolbar.js:152 -#: js/toolbar.js:207 -#: js/toolbar.js:262 -msgid "English (United Kingdom)" +#: js/block-verbose.js:3853 +#: js/block.js:3777 +#: js/blocks/ExtrasBlocks.js:636 +msgid "mezzo-soprano" msgstr "" -#: js/toolbar.js:88 -#: js/toolbar.js:153 -#: js/toolbar.js:208 -#: js/toolbar.js:263 -msgid "日本語" +#: js/block-verbose.js:3854 +#: js/block.js:3778 +#: js/blocks/ExtrasBlocks.js:640 +msgid "alto" msgstr "" -#: js/toolbar.js:89 -msgid "한국어" +#: js/block-verbose.js:3855 +#: js/block.js:3779 +#: js/blocks/ExtrasBlocks.js:644 +msgid "tenor" msgstr "" -#: js/toolbar.js:90 -#: js/toolbar.js:155 -#: js/toolbar.js:210 -#: js/toolbar.js:265 -msgid "español" +#: js/block-verbose.js:3856 +#: js/block.js:3780 +#: js/utils/musicutils.js:1115 +#: js/utils/synthutils.js:80 +#: js/blocks/ExtrasBlocks.js:648 +#.TRANS: musical instrument +msgid "bass" msgstr "" -#: js/toolbar.js:91 -#: js/toolbar.js:156 -#: js/toolbar.js:211 -#: js/toolbar.js:266 -msgid "português" +#: js/block-verbose.js:3901 +#: js/block.js:3825 +#: js/blocks.js:2600 +#: js/blocks.js:3211 +msgid "on2" msgstr "" -#: js/toolbar.js:92 -#: js/toolbar.js:157 -#: js/toolbar.js:212 -#: js/toolbar.js:267 -msgid "にほんご" +#: js/block-verbose.js:3903 +#: js/block.js:3827 +#: js/blocks.js:2602 +#: js/blocks.js:3213 +msgid "off" msgstr "" -#: js/toolbar.js:93 -#: js/toolbar.js:158 -#: js/toolbar.js:213 -#: js/toolbar.js:268 -msgid "中文" +#: js/block-verbose.js:4470 +#: js/block.js:4394 +msgid "Not a number" msgstr "" -#: js/toolbar.js:94 -#: js/toolbar.js:159 -#: js/toolbar.js:214 -#: js/toolbar.js:269 -msgid "ภาษาไทย" +#: js/block-verbose.js:4477 +#: js/block.js:4401 +msgid "Octave value must be between 1 and 10." msgstr "" -#: js/toolbar.js:95 -#: js/toolbar.js:160 -#: js/toolbar.js:215 -#: js/toolbar.js:270 -msgid "aymara" +#: js/block-verbose.js:4485 +#: js/block.js:4409 +msgid "Numbers can have at most 10 digits." msgstr "" -#: js/toolbar.js:96 -#: js/toolbar.js:161 -#: js/toolbar.js:216 -#: js/toolbar.js:271 -msgid "quechua" +#: js/activity.js:390 +#: js/activity.js:395 +msgid "Search for blocks" msgstr "" -#: js/toolbar.js:97 -#: js/toolbar.js:162 -#: js/toolbar.js:217 -#: js/toolbar.js:272 -msgid "guarani" +#: js/activity.js:1413 +msgid "Refresh your browser to change to advanced mode." msgstr "" -#: js/toolbar.js:98 -#: js/toolbar.js:163 -#: js/toolbar.js:218 -#: js/toolbar.js:273 -msgid "हिंदी" +#: js/activity.js:1418 +msgid "Refresh your browser to change to beginner mode." msgstr "" -#: js/toolbar.js:99 -#: js/toolbar.js:165 -#: js/toolbar.js:219 -#: js/toolbar.js:275 -msgid "igbo" +#: js/activity.js:1477 +msgid "Catching mice" +msgstr "" + +#: js/activity.js:1478 +msgid "Cleaning the instruments" +msgstr "" + +#: js/activity.js:1479 +msgid "Testing key pieces" +msgstr "" + +#: js/activity.js:1480 +msgid "Sight-reading" +msgstr "" + +#: js/activity.js:1481 +msgid "Combining math and music" msgstr "" -#: js/toolbar.js:100 -#: js/toolbar.js:166 -#: js/toolbar.js:220 -#: js/toolbar.js:276 -msgid "عربى" +#: js/activity.js:1482 +msgid "Generating more blocks" msgstr "" -#: js/toolbar.js:101 -#: js/toolbar.js:164 -#: js/toolbar.js:221 -#: js/toolbar.js:274 -msgid "తెలుగు" +#: js/activity.js:1483 +msgid "Do Re Mi Fa Sol La Ti Do" msgstr "" -#: js/toolbar.js:102 -#: js/toolbar.js:167 -#: js/toolbar.js:222 -#: js/toolbar.js:277 -msgid "עִברִית" +#: js/activity.js:1484 +msgid "Tuning string instruments" msgstr "" -#: js/toolbar.js:111 -#: js/toolbar.js:175 -#: js/toolbar.js:176 -#: js/toolbar.js:231 -msgid "Full Screen" +#: js/activity.js:1485 +msgid "Pressing random keys" msgstr "" -#: js/toolbar.js:145 -#: js/toolbar.js:148 -#: js/toolbar.js:200 -#: js/toolbar.js:203 -#: js/toolbar.js:255 -#: js/toolbar.js:258 -#: js/turtledefs.js:558 -msgid "Save turtle artwork as PNG" +#: js/activity.js:1663 +msgid "plugins will be removed upon restart." msgstr "" -#: js/toolbar.js:147 -#: js/toolbar.js:202 -#: js/toolbar.js:257 -#: js/turtledefs.js:554 -msgid "Save turtle artwork as SVG" +#: js/activity.js:1672 +msgid "show Cartesian" msgstr "" -#: js/toolbar.js:154 -#: js/toolbar.js:209 -#: js/toolbar.js:264 -msgid "한국인" +#: js/activity.js:2211 +#: js/palette.js:589 +#: js/blocks/RhythmBlocks.js:923 +#: js/blocks/PitchBlocks.js:442 +#: js/blocks/PitchBlocks.js:1786 +#.TRANS: a numeric mapping of the notes in an octave based on the musical mode +msgid "scale degree" msgstr "" -#: js/toolbar.js:171 -#: js/toolbar.js:227 -msgid "About Turtle Blocks" +#: js/activity.js:2214 +#: js/palette.js:598 +msgid "voice name" msgstr "" -#: js/toolbar.js:429 -#: js/toolbar.js:440 -msgid "Turtle Wrap Off" +#: js/activity.js:2217 +#: js/palette.js:595 +msgid "invert mode" msgstr "" -#: js/toolbar.js:442 -msgid "Turtle Wrap On" +#: js/activity.js:2220 +msgid "output tools" msgstr "" -#: js/block.js:1470 -msgid "matrix" +#: js/activity.js:2223 +msgid "custom note" msgstr "" -#: js/block.js:1477 -#: js/WidgetBlocks.js:1226 -#: plugins/rodi.rtp:324 -msgid "status" +#: js/activity.js:2226 +msgid "accidental name" msgstr "" -#: js/block.js:1484 -msgid "drum mapper" +#: js/activity.js:2229 +#: js/blocks/PitchBlocks.js:855 +msgid "east indian solfege" msgstr "" -#: js/block.js:1491 -msgid "ruler" +#: js/activity.js:2232 +#: js/blocks/PitchBlocks.js:869 +msgid "note name" msgstr "" -#: js/block.js:1498 -#: js/WidgetBlocks.js:327 -#.TRANS: timbre is the character or quality of a musical sound -msgid "timbre" +#: js/activity.js:2235 +#: js/blocks/IntervalsBlocks.js:94 +msgid "temperament name" msgstr "" -#: js/block.js:1505 -msgid "stair" +#: js/activity.js:2238 +#: js/palette.js:592 +msgid "mode name" msgstr "" -#: js/block.js:1512 -#: js/WidgetBlocks.js:577 -#.TRANS: the speed at music is should be played. -msgid "tempo" +#: js/activity.js:2241 +msgid "chord name" msgstr "" -#: js/block.js:1519 -#: js/block.js:1582 -#: js/IntervalsBlocks.js:1268 -#.TRANS: mode, e.g., Major in C Major -msgid "mode" +#: js/activity.js:2244 +#: js/palette.js:615 +msgid "interval name" msgstr "" -#: js/block.js:1526 -msgid "slider" +#: js/activity.js:2247 +msgid "filter type" msgstr "" -#: js/block.js:1533 -#: js/SensorsBlocks.js:1001 -msgid "keyboard" +#: js/activity.js:2250 +msgid "oscillator type" msgstr "" -#: js/block.js:1547 -#: js/WidgetBlocks.js:957 -#: js/WidgetBlocks.js:988 -#.TRANS: widget for subdividing a measure into distinct rhythmic elements -msgid "rhythm maker" +#: js/activity.js:2253 +#: js/blocks.js:2479 +#: js/blocks.js:2487 +msgid "audio file" msgstr "" -#: js/block.js:1554 -#: js/block.js:2182 -#: js/block.js:2236 -#: js/RhythmBlockPaletteBlocks.js:70 -#: js/RhythmBlockPaletteBlocks.js:251 -#: js/RhythmBlockPaletteBlocks.js:484 -#: js/RhythmBlockPaletteBlocks.js:553 -#: js/RhythmBlockPaletteBlocks.js:604 -#: js/RhythmBlockPaletteBlocks.js:874 -#: js/RhythmBlocks.js:33 -#: js/RhythmBlocks.js:356 -#: js/RhythmBlocks.js:766 -#: js/RhythmBlocks.js:806 -#: js/OrnamentBlocks.js:220 -#: js/OrnamentBlocks.js:312 -#: js/MeterBlocks.js:1367 -#: js/DictActions.js:85 -#: js/phrasemaker.js:731 -#: js/phrasemaker.js:2393 -#: js/phrasemaker.js:2436 -#: js/phrasemaker.js:2534 -#.TRANS: the value (e.g., 1/4 note) of the note being played. -msgid "note value" +#: js/activity.js:2256 +#: js/blocks/DrumBlocks.js:32 +msgid "noise name" msgstr "" -#: js/block.js:1561 -#: js/block.js:2110 -#: js/block.js:2133 -#: js/IntervalsBlocks.js:875 -#: js/OrnamentBlocks.js:312 -#.TRANS: calculate a relative step between notes based on semi-tones -msgid "scalar interval" +#: js/activity.js:2259 +#: js/blocks/DrumBlocks.js:75 +msgid "drum name" msgstr "" -#: js/block.js:1568 -#: js/RhythmBlocks.js:148 -msgid "milliseconds" +#: js/activity.js:2262 +#: js/blocks/DrumBlocks.js:119 +msgid "effects name" msgstr "" -#: js/block.js:2180 -#: js/block.js:2184 -#: js/block.js:2234 -#: js/block.js:2345 -#: js/ProgramBlocks.js:1273 -#: js/RhythmBlocks.js:712 -#: js/rhythmruler.js:834 -#: js/rhythmruler.js:961 -msgid "silence" +#: js/activity.js:2265 +msgid "wrap mode" msgstr "" -#: js/block.js:2265 -#: js/block.js:3134 -#: js/block.js:3151 -#: js/activity.js:2336 -#: js/activity.js:2387 -#: js/musicutils.js:2932 -#: js/musicutils.js:4287 -#.TRANS: the note names must be separated by single spaces -#.TRANS: the note names must be separated by single spaces -msgid "ti la sol fa mi re do" +#: js/activity.js:2268 +msgid "load file" msgstr "" -#: js/block.js:2333 -#.TRANS: scalar step -msgid "down" +#: js/activity.js:2435 +#: js/activity.js:5851 +msgid "This block is deprecated." msgstr "" -#: js/block.js:2334 -msgid "up" +#: js/activity.js:2437 +#: js/activity.js:5853 +msgid "Block cannot be found." msgstr "" -#: js/block.js:3477 -#: js/block.js:3490 -#: js/ExtrasBlocks.js:612 -msgid "Cartesian" +#: js/activity.js:2645 +msgid "Saving block artwork" msgstr "" -#: js/block.js:3478 -#: js/block.js:3491 -#: js/ExtrasBlocks.js:616 -msgid "polar" +#: js/activity.js:2656 +msgid "Erase" msgstr "" -#: js/block.js:3479 -#: js/block.js:3492 -#: js/ExtrasBlocks.js:620 -msgid "Cartesian+polar" +#: js/activity.js:2683 +#: js/activity.js:2705 +msgid "Paste" msgstr "" -#: js/block.js:3480 -#: js/block.js:3499 -#: js/ExtrasBlocks.js:649 -msgid "none" +#: js/activity.js:2687 +msgid "Save block help" msgstr "" -#: js/block.js:3493 -#: js/ExtrasBlocks.js:625 -msgid "treble" +#: js/activity.js:2772 +msgid "Jumping to the bottom of the page." msgstr "" -#: js/block.js:3494 -#: js/ExtrasBlocks.js:629 -msgid "grand staff" +#: js/activity.js:2778 +msgid "Scrolling up." msgstr "" -#: js/block.js:3495 -#: js/ExtrasBlocks.js:633 -msgid "mezzo-soprano" +#: js/activity.js:2783 +msgid "Scrolling down." msgstr "" -#: js/block.js:3496 -#: js/ExtrasBlocks.js:637 -msgid "alto" +#: js/activity.js:2788 +msgid "Extracting block" msgstr "" -#: js/block.js:3497 -#: js/ExtrasBlocks.js:641 -msgid "tenor" +#: js/activity.js:2796 +msgid "Moving block up." msgstr "" -#: js/block.js:3498 -#: js/ExtrasBlocks.js:645 -#: js/musicutils.js:736 -#: js/synthutils.js:64 -#.TRANS: musical instrument -msgid "bass" +#: js/activity.js:2817 +msgid "Moving block down." msgstr "" -#: js/block.js:4075 -msgid "Not a number" +#: js/activity.js:2838 +msgid "Moving block left." msgstr "" -#: js/block.js:4082 -msgid "Octave value must be between 1 and 10." +#: js/activity.js:2855 +msgid "Moving block right." msgstr "" -#: js/block.js:4090 -msgid "Numbers can have at most 10 digits." +#: js/activity.js:2870 +msgid "Jump to home position." msgstr "" -#: js/notation.js:353 -msgid "Lilypond cannot process pickup of " +#: js/activity.js:2897 +msgid "Hide blocks" msgstr "" -#: js/turtledefs.js:40 -#.TRANS: put the URL to the guide here, e.g., https://github.com/sugarlabs/turtleblocksjs/tree/master/guide/README.md -msgid "guide url" +#: js/activity.js:4500 +msgid "Click the run button to run the project." msgstr "" -#: js/turtledefs.js:85 -#: js/turtledefs.js:437 -msgid "Turtle Blocks is a Logo-inspired turtle that draws colorful pictures with snap-together visual-programming blocks." +#: js/activity.js:5692 +msgid "Show/hide block" msgstr "" -#: js/turtledefs.js:118 -#: js/turtledefs.js:220 -msgid "search" +#: js/activity.js:5698 +msgid "Expand/collapse blocks" msgstr "" -#: js/turtledefs.js:120 -#: js/turtledefs.js:222 -#: js/WidgetBlocks.js:437 -#: js/MeterBlocks.js:1343 -#.TRANS: musical meter (time signature), e.g., 4:4 -msgid "meter" +#: js/activity.js:5976 +msgid "Could not parse JSON input." msgstr "" -#: js/turtledefs.js:122 -#: js/turtledefs.js:224 -msgid "intervals" +#: js/activity.js:6475 +#: js/activity.js:6580 +#: js/activity.js:6631 +msgid "Cannot load project from the file. Please check the file type." msgstr "" -#: js/turtledefs.js:124 -#: js/turtledefs.js:226 -msgid "ornament" +#: js/activity.js:6917 +msgid "Invalid parameters" msgstr "" -#: js/turtledefs.js:125 -#: js/turtledefs.js:227 -#: js/VolumeBlocks.js:362 -#: js/VolumeBlocks.js:502 -#: js/VolumeBlocks.js:545 -msgid "volume" +#: js/blocks.js:1212 +#: js/blocks.js:3444 +#: js/blocks.js:3834 +#: js/blocks.js:3865 +#: js/blocks.js:3914 +#: js/blocks.js:3949 +#: js/blocks.js:6586 +#: js/palette.js:509 +#: js/palette.js:638 +#: js/palette.js:1105 +#: js/blocks/BoxesBlocks.js:282 +#: js/blocks/BoxesBlocks.js:285 +#: js/blocks/BoxesBlocks.js:405 +#: js/blocks/BoxesBlocks.js:594 +msgid "box" msgstr "" -#: js/turtledefs.js:129 -#: js/turtledefs.js:231 -msgid "boxes" +#: js/blocks.js:1713 +msgid "Consider breaking this stack into parts." msgstr "" -#: js/turtledefs.js:130 -#: js/turtledefs.js:232 -msgid "widgets" +#: js/blocks.js:2472 +#: js/palette.js:653 +#: js/blocks/MediaBlocks.js:602 +msgid "open file" msgstr "" -#: js/turtledefs.js:131 -#: js/turtledefs.js:233 -#: js/phrasemaker.js:824 -msgid "graphics" +#: js/blocks.js:3247 +#: js/palette.js:574 +#: js/blocks/MediaBlocks.js:892 +#: js/blocks/MediaBlocks.js:963 +msgid "text" msgstr "" -#: js/turtledefs.js:134 -#: js/turtledefs.js:236 -msgid "boolean" +#: js/blocks.js:3443 +#: js/palette.js:641 +#: js/palette.js:642 +#: js/blocks/BoxesBlocks.js:514 +msgid "store in box" msgstr "" -#: js/turtledefs.js:137 -#: js/turtledefs.js:239 -#: js/HeapBlocks.js:59 -#: js/status.js:147 -msgid "heap" +#: js/blocks.js:3448 +#: js/blocks.js:3888 +#: js/blocks.js:3923 +#: js/blocks.js:3958 +#: js/blocks.js:5862 +#: js/blocks.js:5883 +#: js/blocks/BoxesBlocks.js:772 +msgid "box1" msgstr "" -#: js/turtledefs.js:138 -#: js/turtledefs.js:240 -#: js/ProgramBlocks.js:495 -#: js/DictBlocks.js:142 -msgid "dictionary" +#: js/blocks.js:3450 +#: js/blocks.js:3890 +#: js/blocks.js:3925 +#: js/blocks.js:3960 +#: js/blocks.js:5864 +#: js/blocks.js:5885 +#: js/blocks/BoxesBlocks.js:663 +msgid "box2" msgstr "" -#: js/turtledefs.js:139 -#: js/turtledefs.js:241 -msgid "ensemble" +#: js/blocks.js:4122 +#: js/palette.js:639 +#: js/palette.js:644 +#: js/palette.js:1041 +#: js/blocks/BoxesBlocks.js:591 +msgid "store in" msgstr "" -#: js/turtledefs.js:140 -#: js/turtledefs.js:242 -msgid "extras" +#: js/blocks.js:4122 +#: js/blocks/BoxesBlocks.js:595 +#: js/blocks/DictBlocks.js:215 +#: js/blocks/DictBlocks.js:289 +#: js/blocks/EnsembleBlocks.js:391 +#: js/blocks/EnsembleBlocks.js:402 +#: js/blocks/MediaBlocks.js:746 +#: js/blocks/PitchBlocks.js:656 +#: js/blocks/PitchBlocks.js:934 +#: js/blocks/PitchBlocks.js:1866 +#: js/blocks/ProgramBlocks.js:390 +#: js/blocks/ProgramBlocks.js:495 +#: js/blocks/ProgramBlocks.js:658 +#: js/blocks/ToneBlocks.js:1025 +msgid "name" msgstr "" -#: js/turtledefs.js:142 -#: js/turtledefs.js:244 -#.TRANS: program as in computer program -#.TRANS: program as in computer program -msgid "program" +#: js/blocks.js:4122 +#: js/blocks/BoxesBlocks.js:75 +#: js/blocks/BoxesBlocks.js:595 +#: js/blocks/DictBlocks.js:289 +#: js/blocks/DictBlocks.js:430 +#: js/blocks/HeapBlocks.js:544 +#: js/blocks/RhythmBlocks.js:1130 +msgid "value" msgstr "" -#: js/turtledefs.js:143 -#: js/turtledefs.js:245 -msgid "my blocks" +#: js/blocks.js:4465 +msgid "Forever loop detected inside a note value block. Unexpected things may happen." msgstr "" -#: js/turtledefs.js:185 -#: js/turtledefs.js:281 -msgid "artwork" +#: js/blocks.js:4988 +msgid "There is no block selected." msgstr "" -#: js/turtledefs.js:185 -#: js/turtledefs.js:281 -msgid "logic" +#: js/blocks.js:5091 +#: js/blocks/MediaBlocks.js:888 +msgid "show" msgstr "" -#: js/turtledefs.js:185 -#: js/turtledefs.js:281 -msgid "music" +#: js/blocks.js:5094 +#: js/blocks/MediaBlocks.js:803 +#.TRANS: Avatar is the image used to determine the appearance of the mouse. +msgid "avatar" msgstr "" -#: js/turtledefs.js:187 -#: js/turtledefs.js:463 -msgid "Music Blocks is a collection of tools for exploring fundamental musical concepts in a fun way." +#: js/blocks.js:5097 +#: js/blocks/ToneBlocks.js:1010 +#: js/widgets/sampler.js:975 +#.TRANS: The sound sample that the user uploads. +msgid "sample" msgstr "" -#: js/turtledefs.js:436 -msgid "Welcome to Turtle Blocks" +#: js/lilypond.js:606 +msgid "brown rat" msgstr "" -#: js/turtledefs.js:438 -#: js/turtledefs.js:465 -#: js/turtledefs.js:774 -#: js/turtledefs.js:805 -msgid "The current version is" +#: js/lilypond.js:607 +msgid "mole" msgstr "" -#: js/turtledefs.js:446 -#: js/turtledefs.js:483 -msgid "Click the run button to run the project in fast mode." +#: js/lilypond.js:608 +msgid "chipmunk" msgstr "" -#: js/turtledefs.js:452 -msgid "Stop the turtle." +#: js/lilypond.js:609 +msgid "red squirrel" msgstr "" -#: js/turtledefs.js:454 -#: js/turtledefs.js:491 -msgid "You can also type Alt-S to stop." +#: js/lilypond.js:610 +msgid "guinea pig" +msgstr "" + +#: js/lilypond.js:611 +msgid "capybara" msgstr "" -#: js/turtledefs.js:462 -#: js/help.js:333 -msgid "Welcome to Music Blocks" +#: js/lilypond.js:612 +msgid "coypu" msgstr "" -#: js/turtledefs.js:472 -#: js/help.js:334 -msgid "Meet Mr. Mouse!" +#: js/lilypond.js:613 +msgid "black rat" msgstr "" -#: js/turtledefs.js:473 -msgid "Mr Mouse is our Music Blocks conductor." +#: js/lilypond.js:614 +msgid "grey squirrel" msgstr "" -#: js/turtledefs.js:475 -msgid "Mr Mouse encourages you to explore Music Blocks." +#: js/lilypond.js:615 +msgid "flying squirrel" msgstr "" -#: js/turtledefs.js:477 -msgid "Let us start our tour!" +#: js/lilypond.js:616 +msgid "bat" msgstr "" -#: js/turtledefs.js:489 -msgid "Stop the music (and the mice)." +#: js/lilypond.js:749 +#: js/lilypond.js:913 +#: js/lilypond.js:951 +#: js/blocks/ActionBlocks.js:1256 +#: js/blocks/ExtrasBlocks.js:556 +msgid "start drum" msgstr "" -#: js/turtledefs.js:499 -msgid "Record your project as video." +#: js/logo.js:61 +msgid "Not a valid pitch name" msgstr "" -#: js/turtledefs.js:505 -msgid "Toggle Fullscreen mode." +#: js/logo.js:507 +#: js/blocks/ProgramBlocks.js:258 +#: js/blocks/ProgramBlocks.js:427 +msgid "You must select a file." msgstr "" -#: js/turtledefs.js:511 -msgid "Initialize a new project." +#: js/logo.js:1696 +msgid "Playback is ready." msgstr "" -#: js/turtledefs.js:517 -msgid "You can also load projects from the file system." +#: js/macros.js:711 +#: js/utils/musicutils.js:1162 +#: js/utils/synthutils.js:202 +#.TRANS: animal sound effect +msgid "duck" msgstr "" -#: js/turtledefs.js:522 -#: js/StringHelper.js:46 -msgid "Delete" +#: js/notation.js:353 +msgid "Lilypond cannot process pickup of " msgstr "" -#: js/turtledefs.js:523 -msgid "To delete a block, just right-click on it, then you will be able to see the delete option" +#: js/palette.js:571 +msgid "grid" msgstr "" -#: js/turtledefs.js:528 -#: js/activity.js:2270 -#: js/LocalCard.js:31 -msgid "Copy" +#: js/palette.js:580 +msgid "effect" msgstr "" -#: js/turtledefs.js:529 -msgid "To copy a block, just right-click on it, then you will be able to see the copy option" +#: js/palette.js:586 +msgid "sargam" msgstr "" -#: js/turtledefs.js:535 -msgid "To extract a block, just right-click on it, then you will be able to see the extract option" +#: js/palette.js:601 +#: js/blocks/PitchBlocks.js:1209 +msgid "custom pitch" msgstr "" -#: js/turtledefs.js:542 -#: js/turtledefs.js:552 -#: js/turtledefs.js:573 -msgid "Save your project to a file." +#: js/palette.js:609 +msgid "accidental" msgstr "" -#: js/turtledefs.js:549 -#: js/turtledefs.js:570 -msgid "save" +#: js/palette.js:633 +#: js/blocks/PitchBlocks.js:405 +msgid "pitch converter" msgstr "" -#: js/turtledefs.js:556 -#: js/turtledefs.js:577 -msgid "Save graphics from your project to as SVG." +#: js/piemenus.js:200 +#: js/utils/musicutils.js:1187 +#: js/utils/musicutils.js:1207 +#: js/widgets/musickeyboard.js:2341 +#: js/widgets/phrasemaker.js:1908 +#: js/widgets/sampler.js:810 +#.TRANS: double sharp is a music term related to pitch +msgid "double sharp" msgstr "" -#: js/turtledefs.js:560 -#: js/turtledefs.js:581 -msgid "Save graphics from your project as PNG." +#: js/piemenus.js:201 +#: js/utils/musicutils.js:1185 +#: js/utils/musicutils.js:1208 +#: js/blocks/PitchBlocks.js:1539 +#: js/turtleactions/PitchActions.js:323 +#: js/widgets/musickeyboard.js:2342 +#: js/widgets/phrasemaker.js:1909 +#: js/widgets/sampler.js:811 +#.TRANS: sharp is a music term related to pitch +#.TRANS: sharp is a half-step up in pitch +msgid "sharp" msgstr "" -#: js/turtledefs.js:564 -#: js/turtledefs.js:597 -msgid "Save block artwork as an SVG file." +#: js/piemenus.js:202 +#: js/utils/musicutils.js:1183 +#: js/utils/musicutils.js:1209 +#: js/widgets/musickeyboard.js:2343 +#: js/widgets/phrasemaker.js:1910 +#: js/widgets/sampler.js:812 +#.TRANS: natural is a music term related to pitch +msgid "natural" msgstr "" -#: js/turtledefs.js:585 -msgid "Save audio from your project as WAV." +#: js/piemenus.js:203 +#: js/utils/musicutils.js:1181 +#: js/utils/musicutils.js:1210 +#: js/blocks/PitchBlocks.js:1498 +#: js/turtleactions/PitchActions.js:326 +#: js/widgets/musickeyboard.js:2344 +#: js/widgets/phrasemaker.js:1911 +#: js/widgets/sampler.js:813 +#.TRANS: flat is a music term related to pitch +#.TRANS: flat is a half-step down in pitch +msgid "flat" msgstr "" -#: js/turtledefs.js:589 -msgid "Save your project to as an ABC file." +#: js/piemenus.js:204 +#: js/utils/musicutils.js:1179 +#: js/utils/musicutils.js:1211 +#: js/widgets/musickeyboard.js:2345 +#: js/widgets/phrasemaker.js:1912 +#: js/widgets/sampler.js:814 +#.TRANS: double flat is a music term related to pitch +msgid "double flat" msgstr "" -#: js/turtledefs.js:593 -msgid "Save your project to as a Lilypond file." +#: js/piemenus.js:2864 +#: js/utils/musicutils.js:1006 +#: js/blocks/PitchBlocks.js:1385 +#.TRANS: unison is a music term related to intervals +#.TRANS: unison means the note is the same as the current note +msgid "unison" msgstr "" -#: js/turtledefs.js:604 -msgid "Load samples from server" +#: js/piemenus.js:3018 +#: js/piemenus.js:3091 +#: js/utils/musicutils.js:1014 +#: js/utils/musicutils.js:1189 +#: js/utils/musicutils.js:1326 +#.TRANS: major is a music term related to intervals and mode +msgid "major" msgstr "" -#: js/turtledefs.js:605 -msgid "This button opens a viewer for loading example projects." +#: js/piemenus.js:3018 +#: js/piemenus.js:3091 +#: js/utils/musicutils.js:1032 +#.TRANS: modal scale for music +msgid "ionian" msgstr "" -#: js/turtledefs.js:611 -msgid "Palette buttons" +#: js/piemenus.js:3020 +#: js/piemenus.js:3095 +#: js/utils/musicutils.js:1012 +#: js/utils/musicutils.js:1190 +#: js/utils/musicutils.js:1323 +#.TRANS: minor is a music term related to intervals and mode +msgid "minor" msgstr "" -#: js/turtledefs.js:612 -msgid "This toolbar contains the palette buttons including Rhythm Pitch Tone Action and more." +#: js/piemenus.js:3020 +#: js/piemenus.js:3095 +#: js/utils/musicutils.js:1042 +#.TRANS: modal scale for music +msgid "aeolian" msgstr "" -#: js/turtledefs.js:614 -msgid "Click to show the palettes of blocks and drag blocks from the palettes onto the canvas to use them." +#: js/piemenus.js:3410 +msgid "Duplicate" msgstr "" -#: js/turtledefs.js:620 -msgid "Cartesian/Polar" +#: js/piemenus.js:3412 +msgid "Move to trash" msgstr "" -#: js/turtledefs.js:621 -msgid "Show or hide a coordinate grid." +#: js/piemenus.js:3413 +#: js/widgets/timbre.js:968 +#: planet/js/StringHelper.js:69 +msgid "Close" msgstr "" -#: js/turtledefs.js:627 -msgid "Clear the screen and return the mice to their initial positions." +#: js/piemenus.js:3419 +msgid "Save stack" msgstr "" -#: js/turtledefs.js:633 -msgid "Collapse the graphics window." +#: js/piemenus.js:3449 +msgid "In order to copy a sample, you must reload the widget, import the sample again, and export it." msgstr "" -#: js/turtledefs.js:638 -#: js/activity.js:4256 -#: js/activity.js:4256 -msgid "Home" +#: js/piemenus.js:3812 +msgid "You have chosen key " msgstr "" -#: js/turtledefs.js:639 -msgid "Return all blocks to the center of the screen." +#: js/piemenus.js:3816 +msgid " for your pitch preview." msgstr "" -#: js/turtledefs.js:644 -msgid "Show/hide blocks" +#: js/turtle-singer.js:1363 +#.TRANS: partials are weighted components in a harmonic series +msgid "You must have at least one Partial block inside of a Weighted-partial block" msgstr "" -#: js/turtledefs.js:645 -msgid "Hide or show the blocks and the palettes." +#: js/turtle-singer.js:2077 +msgid "synth cannot play chords." msgstr "" -#: js/turtledefs.js:650 -msgid "Expand/collapse collapsable blocks" +#: js/utils/musicutils.js:505 +#: js/utils/musicutils.js:645 +#: js/widgets/pitchdrummatrix.js:228 +#: js/widgets/musickeyboard.js:2885 +msgid "rest" msgstr "" -#: js/turtledefs.js:651 -msgid "Expand or collapse start and action stacks." +#: js/utils/musicutils.js:689 +msgid "Perfect unison" msgstr "" -#: js/turtledefs.js:658 -#: js/activity.js:4265 -msgid "Decrease block size" +#: js/utils/musicutils.js:689 +msgid "Diminished second" msgstr "" -#: js/turtledefs.js:659 -msgid "Decrease the size of the blocks." +#: js/utils/musicutils.js:690 +msgid "Minor second" msgstr "" -#: js/turtledefs.js:664 -#: js/activity.js:4267 -msgid "Increase block size" +#: js/utils/musicutils.js:690 +msgid "Augmented unison" msgstr "" -#: js/turtledefs.js:665 -msgid "Increase the size of the blocks." +#: js/utils/musicutils.js:691 +msgid "Major second" msgstr "" -#: js/turtledefs.js:670 -msgid "Expand/collapse option toolbar" +#: js/utils/musicutils.js:691 +msgid "Diminished third" msgstr "" -#: js/turtledefs.js:671 -msgid "Click this button to expand or collapse the auxillary toolbar." +#: js/utils/musicutils.js:692 +msgid "Minor third" msgstr "" -#: js/turtledefs.js:676 -msgid "Run slow" +#: js/utils/musicutils.js:692 +msgid "Augmented second" msgstr "" -#: js/turtledefs.js:677 -msgid "Click to run the project in slow mode." +#: js/utils/musicutils.js:693 +msgid "Major third" msgstr "" -#: js/turtledefs.js:683 -msgid "Click to run the project step by step." +#: js/utils/musicutils.js:693 +msgid "Diminished fourth" msgstr "" -#: js/turtledefs.js:690 -msgid "Display statistics about your Music project." +#: js/utils/musicutils.js:694 +msgid "Perfect fourth" msgstr "" -#: js/turtledefs.js:697 -msgid "Delete a selected plugin." +#: js/utils/musicutils.js:694 +msgid "Augmented third" msgstr "" -#: js/turtledefs.js:704 -msgid "Enable scrolling" +#: js/utils/musicutils.js:695 +msgid "Diminished fifth" msgstr "" -#: js/turtledefs.js:705 -msgid "You can scroll the blocks on the canvas." +#: js/utils/musicutils.js:695 +msgid "Augmented fourth" msgstr "" -#: js/turtledefs.js:714 -msgid "Wrap Turtle" +#: js/utils/musicutils.js:696 +msgid "Perfect fifth" msgstr "" -#: js/turtledefs.js:715 -msgid "Turn Turtle wrapping On or Off." +#: js/utils/musicutils.js:696 +msgid "Diminished sixth" msgstr "" -#: js/turtledefs.js:725 -msgid "Restore blocks from the trash." +#: js/utils/musicutils.js:697 +msgid "Minor sixth" msgstr "" -#: js/turtledefs.js:732 -msgid "Switch mode" +#: js/utils/musicutils.js:697 +msgid "Augmented fifth" msgstr "" -#: js/turtledefs.js:733 -msgid "Switch between beginner and advance modes." +#: js/utils/musicutils.js:698 +msgid "Major sixth" msgstr "" -#: js/turtledefs.js:739 -msgid "Select your language preference." +#: js/utils/musicutils.js:698 +msgid "Diminished seventh" msgstr "" -#: js/turtledefs.js:745 -msgid "Keyboard shortcuts" +#: js/utils/musicutils.js:699 +msgid "Minor seventh" msgstr "" -#: js/turtledefs.js:746 -msgid "You can type d to create a do block and r to create a re block etc." +#: js/utils/musicutils.js:699 +msgid "Augmented sixth" msgstr "" -#: js/turtledefs.js:753 -msgid "Show these messages." +#: js/utils/musicutils.js:700 +msgid "Major seventh" msgstr "" -#: js/turtledefs.js:759 -#: js/turtledefs.js:790 -#: js/help.js:335 -msgid "Guide" +#: js/utils/musicutils.js:700 +msgid "Diminished octave" msgstr "" -#: js/turtledefs.js:760 -msgid "A detailed guide to Turtle Blocks is available." +#: js/utils/musicutils.js:701 +msgid "Perfect octave" msgstr "" -#: js/turtledefs.js:764 -msgid "Turtle Blocks Guide" +#: js/utils/musicutils.js:701 +msgid "Augmented seventh" msgstr "" -#: js/turtledefs.js:767 -#: js/turtledefs.js:798 -#: js/help.js:336 -msgid "About" +#: js/utils/musicutils.js:702 +msgid "Minor ninth" msgstr "" -#: js/turtledefs.js:768 -msgid "Turtle Blocks is an open source collection of tools for exploring musical concepts." +#: js/utils/musicutils.js:702 +msgid "Augmented octave" msgstr "" -#: js/turtledefs.js:770 -msgid "A full list of contributors can be found in the Turtle Blocks GitHub repository." +#: js/utils/musicutils.js:703 +msgid "Major ninth" msgstr "" -#: js/turtledefs.js:772 -msgid "Turtle Blocks is licensed under the AGPL." +#: js/utils/musicutils.js:703 +msgid "Diminished tenth" msgstr "" -#: js/turtledefs.js:780 -msgid "Turtle Blocks GitHub repository" +#: js/utils/musicutils.js:704 +msgid "Minor tenth" msgstr "" -#: js/turtledefs.js:783 -#: js/turtledefs.js:814 -#: js/help.js:337 -#: js/help.js:359 -msgid "Congratulations." +#: js/utils/musicutils.js:704 +msgid "Augmented ninth" msgstr "" -#: js/turtledefs.js:784 -msgid "You have finished the tour. Please enjoy Turtle Blocks!" +#: js/utils/musicutils.js:705 +msgid "Major tenth" msgstr "" -#: js/turtledefs.js:791 -msgid "A detailed guide to Music Blocks is available." +#: js/utils/musicutils.js:705 +msgid "Diminished eleventh" msgstr "" -#: js/turtledefs.js:795 -#: js/SaveInterface.js:76 -msgid "Music Blocks Guide" +#: js/utils/musicutils.js:706 +msgid "Perfect eleventh" msgstr "" -#: js/turtledefs.js:799 -msgid "Music Blocks is an open source collection of tools for exploring musical concepts." +#: js/utils/musicutils.js:706 +msgid "Augmented tenth" msgstr "" -#: js/turtledefs.js:801 -msgid "A full list of contributors can be found in the Music Blocks GitHub repository." +#: js/utils/musicutils.js:707 +msgid "Diminished twelfth" msgstr "" -#: js/turtledefs.js:803 -msgid "Music Blocks is licensed under the AGPL." +#: js/utils/musicutils.js:707 +msgid "Augmented eleventh" msgstr "" -#: js/turtledefs.js:811 -msgid "Music Blocks GitHub repository" +#: js/utils/musicutils.js:708 +msgid "Perfect twelfth" msgstr "" -#: js/turtledefs.js:815 -msgid "You have finished the tour. Please enjoy Music Blocks!" +#: js/utils/musicutils.js:708 +msgid "Diminished thirteenth" msgstr "" -#: js/activity.js:369 -msgid "Search for blocks" +#: js/utils/musicutils.js:709 +msgid "Minor thirteenth" msgstr "" -#: js/activity.js:1145 -msgid "Refresh your browser to change to advanced mode." +#: js/utils/musicutils.js:709 +msgid "Augmented fifth, plus an octave" msgstr "" -#: js/activity.js:1150 -msgid "Refresh your browser to change to beginner mode." +#: js/utils/musicutils.js:710 +msgid "Major thirteenth" msgstr "" -#: js/activity.js:1184 -msgid "Catching mice" +#: js/utils/musicutils.js:710 +msgid "Diminished seventh, plus an octave" msgstr "" -#: js/activity.js:1185 -msgid "Cleaning the instruments" +#: js/utils/musicutils.js:838 +#.TRANS: ordinal number. Please keep exactly one space between each number. +msgid "1st 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th" msgstr "" -#: js/activity.js:1186 -msgid "Testing key pieces" +#: js/utils/musicutils.js:1008 +#: js/utils/musicutils.js:1191 +#: js/utils/musicutils.js:1325 +#.TRANS: augmented is a music term related to intervals +msgid "augmented" msgstr "" -#: js/activity.js:1187 -msgid "Sight-reading" +#: js/utils/musicutils.js:1010 +#: js/utils/musicutils.js:1192 +#: js/utils/musicutils.js:1324 +#.TRANS: diminished is a music term related to intervals and mode +msgid "diminished" msgstr "" -#: js/activity.js:1188 -msgid "Combining math and music" +#: js/utils/musicutils.js:1016 +#: js/utils/musicutils.js:1322 +#: js/blocks/IntervalsBlocks.js:649 +#: js/turtleactions/IntervalsActions.js:120 +#: js/turtleactions/IntervalsActions.js:124 +#.TRANS: perfect is a music term related to intervals +msgid "perfect" +msgstr "" + +#: js/utils/musicutils.js:1018 +#.TRANS: twelve semi-tone scale for music +msgid "chromatic" msgstr "" -#: js/activity.js:1189 -msgid "Generating more blocks" +#: js/utils/musicutils.js:1019 +msgid "algerian" msgstr "" -#: js/activity.js:1190 -msgid "Do Re Mi Fa Sol La Ti Do" +#: js/utils/musicutils.js:1020 +msgid "spanish" msgstr "" -#: js/activity.js:1191 -msgid "Tuning string instruments" +#: js/utils/musicutils.js:1022 +#.TRANS: modal scale in music +msgid "octatonic" msgstr "" -#: js/activity.js:1192 -msgid "Pressing random keys" +#: js/utils/musicutils.js:1024 +#.TRANS: harmonic major scale in music +msgid "harmonic major" msgstr "" -#: js/activity.js:1351 -msgid "plugins will be removed upon restart." +#: js/utils/musicutils.js:1026 +#.TRANS: natural minor scales in music +msgid "natural minor" msgstr "" -#: js/activity.js:1360 -msgid "show Cartesian" +#: js/utils/musicutils.js:1028 +#.TRANS: harmonic minor scale in music +msgid "harmonic minor" msgstr "" -#: js/activity.js:1842 -msgid "output tools" +#: js/utils/musicutils.js:1030 +#.TRANS: melodic minor scale in music +msgid "melodic minor" msgstr "" -#: js/activity.js:1845 -msgid "custom note" +#: js/utils/musicutils.js:1034 +#.TRANS: modal scale for music +msgid "dorian" msgstr "" -#: js/activity.js:1848 -msgid "accidental name" +#: js/utils/musicutils.js:1036 +#.TRANS: modal scale for music +msgid "phrygian" msgstr "" -#: js/activity.js:1851 -#: js/PitchBlocks.js:855 -msgid "east indian solfege" +#: js/utils/musicutils.js:1038 +#.TRANS: modal scale for music +msgid "lydian" msgstr "" -#: js/activity.js:1854 -#: js/PitchBlocks.js:869 -msgid "note name" +#: js/utils/musicutils.js:1040 +#.TRANS: modal scale for music +msgid "mixolydian" msgstr "" -#: js/activity.js:1857 -#: js/IntervalsBlocks.js:94 -msgid "temperament name" +#: js/utils/musicutils.js:1044 +#.TRANS: modal scale for music +msgid "locrian" msgstr "" -#: js/activity.js:1863 -msgid "chord name" +#: js/utils/musicutils.js:1046 +#.TRANS: minor jazz scale for music +msgid "jazz minor" msgstr "" -#: js/activity.js:1869 -msgid "filter type" +#: js/utils/musicutils.js:1048 +#.TRANS: bebop scale for music +msgid "bebop" msgstr "" -#: js/activity.js:1872 -msgid "oscillator type" +#: js/utils/musicutils.js:1049 +msgid "arabic" msgstr "" -#: js/activity.js:1878 -#: js/DrumBlocks.js:32 -msgid "noise name" +#: js/utils/musicutils.js:1050 +msgid "byzantine" msgstr "" -#: js/activity.js:1881 -#: js/DrumBlocks.js:75 -msgid "drum name" +#: js/utils/musicutils.js:1052 +#.TRANS: musical scale for music by Verdi +msgid "enigmatic" msgstr "" -#: js/activity.js:1884 -#: js/DrumBlocks.js:119 -msgid "effects name" +#: js/utils/musicutils.js:1053 +msgid "ethiopian" msgstr "" -#: js/activity.js:1887 -msgid "wrap mode" +#: js/utils/musicutils.js:1055 +#.TRANS: Ethiopic scale for music +msgid "geez" msgstr "" -#: js/activity.js:1890 -msgid "load file" +#: js/utils/musicutils.js:1056 +msgid "hindu" msgstr "" -#: js/activity.js:2056 -msgid "This block is deprecated." +#: js/utils/musicutils.js:1057 +msgid "hungarian" msgstr "" -#: js/activity.js:2058 -msgid "Block cannot be found." +#: js/utils/musicutils.js:1059 +#.TRANS: minor Romanian scale for music +msgid "romanian minor" msgstr "" -#: js/activity.js:2266 -msgid "Saving block artwork" +#: js/utils/musicutils.js:1060 +msgid "spanish gypsy" msgstr "" -#: js/activity.js:2277 -msgid "Erase" +#: js/utils/musicutils.js:1062 +#.TRANS: musical scale for Mid-Eastern music +msgid "maqam" msgstr "" -#: js/activity.js:2301 -#: js/activity.js:2323 -msgid "Paste" +#: js/utils/musicutils.js:1064 +#.TRANS: minor blues scale for music +msgid "minor blues" msgstr "" -#: js/activity.js:2305 -msgid "Save block help" +#: js/utils/musicutils.js:1066 +#.TRANS: major blues scale for music +msgid "major blues" msgstr "" -#: js/activity.js:2390 -msgid "Jumping to the bottom of the page." +#: js/utils/musicutils.js:1067 +msgid "whole tone" msgstr "" -#: js/activity.js:2396 -msgid "Scrolling up." +#: js/utils/musicutils.js:1069 +#.TRANS: pentatonic is a general term that means "five note scale". This scale is typically known as "minor pentatonic" +msgid "minor pentatonic" msgstr "" -#: js/activity.js:2401 -msgid "Scrolling down." +#: js/utils/musicutils.js:1071 +#.TRANS: pentatonic is a general term that means "five note scale". This scale is typically known as "major pentatonic" +msgid "major pentatonic" msgstr "" -#: js/activity.js:2406 -msgid "Extracting block" +#: js/utils/musicutils.js:1072 +msgid "chinese" msgstr "" -#: js/activity.js:2414 -msgid "Moving block up." +#: js/utils/musicutils.js:1073 +msgid "egyptian" msgstr "" -#: js/activity.js:2435 -msgid "Moving block down." +#: js/utils/musicutils.js:1075 +#.TRANS: https://en.wikipedia.org/wiki/Hirajoshi_scale NOTE: There are three different versions of this scale +msgid "hirajoshi" msgstr "" -#: js/activity.js:2456 -msgid "Moving block left." +#: js/utils/musicutils.js:1076 +msgid "Japan" msgstr "" -#: js/activity.js:2473 -msgid "Moving block right." +#: js/utils/musicutils.js:1078 +#.TRANS: https://en.wikipedia.org/wiki/In_scale and https://en.wikipedia.org/wiki/Sakura_Sakura +msgid "in" msgstr "" -#: js/activity.js:2488 -msgid "Jump to home position." +#: js/utils/musicutils.js:1080 +#.TRANS: https://en.wikipedia.org/wiki/Miny%C5%8D_scale +msgid "minyo" msgstr "" -#: js/activity.js:2515 -msgid "Hide blocks" +#: js/utils/musicutils.js:1082 +#.TRANS: Italian mathematician +msgid "fibonacci" msgstr "" -#: js/activity.js:3389 -msgid "Click the run button to run the project." +#: js/utils/musicutils.js:1083 +#: js/utils/musicutils.js:1134 +#: js/utils/musicutils.js:1177 +#: js/utils/musicutils.js:1199 +#: js/utils/synthutils.js:134 +#: js/blocks/IntervalsBlocks.js:1124 +#: js/blocks/ToneBlocks.js:946 +#: js/blocks/VolumeBlocks.js:411 +#: js/blocks/WidgetBlocks.js:399 +#: js/blocks/WidgetBlocks.js:404 +#: js/turtleactions/VolumeActions.js:218 +#: js/widgets/modewidget.js:919 +#.TRANS: customize voice +msgid "custom" msgstr "" -#: js/activity.js:3456 -#: js/SaveInterface.js:131 -#: js/SaveInterface.js:204 -#: js/SaveInterface.js:262 -#: js/SaveInterface.js:389 -#: js/SaveInterface.js:417 -#: js/ProjectStorage.js:27 -#: js/GlobalPlanet.js:467 -#: js/GlobalPlanet.js:469 -#: js/GlobalPlanet.js:495 -#.TRANS: default project title when saving as Lilypond -msgid "My Project" +#: js/utils/musicutils.js:1085 +#: js/utils/musicutils.js:1531 +#: js/blocks/WidgetBlocks.js:176 +#.TRANS: highpass filter +msgid "highpass" msgstr "" -#: js/activity.js:4261 -msgid "Show/hide block" +#: js/utils/musicutils.js:1087 +#: js/utils/musicutils.js:1532 +#.TRANS: lowpass filter +msgid "lowpass" msgstr "" -#: js/activity.js:4263 -msgid "Expand/collapse blocks" +#: js/utils/musicutils.js:1089 +#: js/utils/musicutils.js:1533 +#.TRANS: bandpass filter +msgid "bandpass" msgstr "" -#: js/activity.js:4381 -msgid "Could not parse JSON input." +#: js/utils/musicutils.js:1091 +#: js/utils/musicutils.js:1534 +#.TRANS: high-shelf filter +msgid "highshelf" msgstr "" -#: js/activity.js:4684 -#: js/activity.js:4771 -#: js/activity.js:4821 -msgid "Cannot load project from the file. Please check the file type." +#: js/utils/musicutils.js:1093 +#: js/utils/musicutils.js:1535 +#.TRANS: low-shelf filter +msgid "lowshelf" msgstr "" -#: js/activity.js:5051 -msgid "Invalid parameters" +#: js/utils/musicutils.js:1095 +#: js/utils/musicutils.js:1536 +#.TRANS: notch-shelf filter +msgid "notch" msgstr "" -#: js/turtle-singer.js:1334 -#.TRANS: partials are weighted components in a harmonic series -msgid "You must have at least one Partial block inside of a Weighted-partial block" +#: js/utils/musicutils.js:1097 +#: js/utils/musicutils.js:1537 +#.TRANS: all-pass filter +msgid "allpass" msgstr "" -#: js/turtle-singer.js:2048 -msgid "synth cannot play chords." +#: js/utils/musicutils.js:1099 +#: js/utils/musicutils.js:1538 +#.TRANS: peaking filter +msgid "peaking" msgstr "" -#: js/lilypond.js:614 -msgid "brown rat" +#: js/utils/musicutils.js:1100 +#: js/utils/musicutils.js:1546 +#: js/utils/synthutils.js:126 +#: js/blocks/PitchBlocks.js:85 +#.TRANS: sine wave +msgid "sine" msgstr "" -#: js/lilypond.js:615 -msgid "mole" +#: js/utils/musicutils.js:1101 +#: js/utils/musicutils.js:1547 +#: js/utils/synthutils.js:128 +#: js/blocks/PitchBlocks.js:39 +#.TRANS: square wave +msgid "square" msgstr "" -#: js/lilypond.js:616 -msgid "chipmunk" +#: js/utils/musicutils.js:1102 +#: js/utils/musicutils.js:1548 +#: js/utils/synthutils.js:132 +#: js/blocks/PitchBlocks.js:62 +#: js/blocks/ToneBlocks.js:39 +#.TRANS: triangle wave +msgid "triangle" msgstr "" -#: js/lilypond.js:617 -msgid "red squirrel" +#: js/utils/musicutils.js:1103 +#: js/utils/musicutils.js:1549 +#: js/utils/synthutils.js:130 +#: js/blocks/PitchBlocks.js:108 +#.TRANS: sawtooth wave +msgid "sawtooth" msgstr "" -#: js/lilypond.js:618 -msgid "guinea pig" +#: js/utils/musicutils.js:1105 +#: js/utils/musicutils.js:1312 +#: js/blocks/PitchBlocks.js:931 +#: js/blocks/PitchBlocks.js:937 +#: js/turtleactions/PitchActions.js:469 +#.TRANS: even numbers +#.TRANS: invert based on even or odd number or musical scale +msgid "even" msgstr "" -#: js/lilypond.js:619 -msgid "capybara" +#: js/utils/musicutils.js:1107 +#: js/utils/musicutils.js:1313 +#: js/blocks/PitchBlocks.js:937 +#: js/turtleactions/PitchActions.js:471 +#.TRANS: odd numbers +msgid "odd" msgstr "" -#: js/lilypond.js:620 -msgid "coypu" +#: js/utils/musicutils.js:1108 +#: js/utils/musicutils.js:1314 +#: js/blocks/PitchBlocks.js:937 +#: js/turtleactions/PitchActions.js:473 +msgid "scalar" msgstr "" -#: js/lilypond.js:621 -msgid "black rat" +#: js/utils/musicutils.js:1109 +#: js/utils/synthutils.js:72 +#: js/blocks/VolumeBlocks.js:47 +#.TRANS: musical instrument +msgid "piano" msgstr "" -#: js/lilypond.js:622 -msgid "grey squirrel" +#: js/utils/musicutils.js:1110 +#: js/utils/synthutils.js:74 +#.TRANS: musical instrument +msgid "violin" msgstr "" -#: js/lilypond.js:623 -msgid "flying squirrel" +#: js/utils/musicutils.js:1111 +#: js/utils/synthutils.js:76 +#.TRANS: viola musical instrument +msgid "viola" msgstr "" -#: js/lilypond.js:624 -msgid "bat" +#: js/utils/musicutils.js:1112 +#: js/utils/synthutils.js:114 +#.TRANS: xylophone musical instrument +msgid "xylophone" msgstr "" -#: js/lilypond.js:757 -#: js/lilypond.js:921 -#: js/lilypond.js:959 -#: js/ActionBlocks.js:1256 -#: js/ExtrasBlocks.js:553 -msgid "start drum" +#: js/utils/musicutils.js:1113 +#: js/utils/synthutils.js:136 +#.TRANS: vibraphone musical instrument +msgid "vibraphone" msgstr "" -#: js/SaveInterface.js:59 -#: js/SaveInterface.js:61 -#: js/SaveInterface.js:93 -msgid "Music Blocks Project" +#: js/utils/musicutils.js:1114 +#: js/utils/synthutils.js:78 +#.TRANS: musical instrument +msgid "cello" msgstr "" -#: js/SaveInterface.js:63 -msgid "This project was created in Music Blocks" +#: js/utils/musicutils.js:1116 +#: js/utils/synthutils.js:82 +#.TRANS: viola musical instrument +msgid "double bass" msgstr "" -#: js/SaveInterface.js:67 -msgid "Music Blocks is a Free/Libre Software application." +#: js/utils/musicutils.js:1117 +#: js/utils/synthutils.js:84 +#: js/widgets/rhythmruler.js:2511 +#.TRANS: musical instrument +msgid "guitar" msgstr "" -#: js/SaveInterface.js:69 -msgid "The source code can be accessed at" +#: js/utils/musicutils.js:1118 +#: js/utils/synthutils.js:86 +#.TRANS: musical instrument +msgid "acoustic guitar" msgstr "" -#: js/SaveInterface.js:72 -msgid "For more information, please consult the" +#: js/utils/musicutils.js:1119 +#: js/utils/synthutils.js:88 +#.TRANS: musical instrument +msgid "flute" msgstr "" -#: js/SaveInterface.js:83 -msgid "Alternatively, open the file in Music Blocks using the Load project button." +#: js/utils/musicutils.js:1120 +#: js/utils/synthutils.js:90 +#.TRANS: musical instrument +msgid "clarinet" msgstr "" -#: js/SaveInterface.js:85 -msgid "Project Code" +#: js/utils/musicutils.js:1121 +#: js/utils/synthutils.js:92 +#.TRANS: musical instrument +msgid "saxophone" msgstr "" -#: js/SaveInterface.js:87 -msgid "This code stores data about the blocks in a project." +#: js/utils/musicutils.js:1122 +#: js/utils/synthutils.js:94 +#.TRANS: musical instrument +msgid "tuba" msgstr "" -#: js/SaveInterface.js:89 -msgid "Show" +#: js/utils/musicutils.js:1123 +#: js/utils/synthutils.js:96 +#.TRANS: musical instrument +msgid "trumpet" msgstr "" -#: js/SaveInterface.js:91 -msgid "Hide" +#: js/utils/musicutils.js:1124 +#: js/utils/synthutils.js:98 +#.TRANS: musical instrument +msgid "oboe" msgstr "" -#: js/SaveInterface.js:197 -#: js/SaveInterface.js:58 -msgid "No description provided" +#: js/utils/musicutils.js:1125 +#: js/utils/synthutils.js:100 +#.TRANS: musical instrument +msgid "trombone" msgstr "" -#: js/SaveInterface.js:332 -msgid "Your recording is in progress." +#: js/utils/musicutils.js:1126 +#: js/utils/synthutils.js:116 +#.TRANS: polytone synthesizer +msgid "electronic synth" msgstr "" -#: js/SaveInterface.js:401 -#.TRANS: File name prompt for save as Lilypond -msgid "File name" +#: js/utils/musicutils.js:1127 +#: js/utils/synthutils.js:118 +#.TRANS: simple monotone synthesizer +msgid "simple 1" msgstr "" -#: js/SaveInterface.js:403 -#: js/StringHelper.js:39 -#.TRANS: Project title prompt for save as Lilypond -msgid "Project title" +#: js/utils/musicutils.js:1128 +msgid "simple 2" msgstr "" -#: js/SaveInterface.js:405 -#.TRANS: Project title prompt for save as Lilypond -msgid "Project author" +#: js/utils/musicutils.js:1129 +msgid "simple 3" msgstr "" -#: js/SaveInterface.js:407 -#.TRANS: MIDI prompt for save as Lilypond -msgid "Include MIDI output?" +#: js/utils/musicutils.js:1130 +msgid "simple 4" msgstr "" -#: js/SaveInterface.js:409 -#.TRANS: Guitar prompt for save as Lilypond -msgid "Include guitar tablature output?" +#: js/utils/musicutils.js:1131 +#: js/utils/synthutils.js:58 +#: js/blocks/DrumBlocks.js:191 +#.TRANS: white noise synthesizer +msgid "white noise" msgstr "" -#: js/SaveInterface.js:411 -#.TRANS: Lilypond is a scripting language for generating sheet music -msgid "Save as Lilypond" +#: js/utils/musicutils.js:1132 +#: js/utils/synthutils.js:60 +#.TRANS: brown noise synthesizer +msgid "brown noise" msgstr "" -#: js/SaveInterface.js:426 -#: js/EnsembleBlocks.js:75 -#: js/EnsembleBlocks.js:154 -#: js/EnsembleBlocks.js:216 -#: js/EnsembleBlocks.js:302 -#: js/EnsembleBlocks.js:348 -#: js/EnsembleBlocks.js:389 -#: js/EnsembleBlocks.js:441 -#: js/EnsembleBlocks.js:490 -#: js/EnsembleBlocks.js:536 -#: js/EnsembleBlocks.js:583 -#: js/EnsembleBlocks.js:637 -#: js/EnsembleBlocks.js:753 -#: js/EnsembleBlocks.js:840 -#: js/EnsembleBlocks.js:899 -#: js/EnsembleBlocks.js:942 -#: js/EnsembleBlocks.js:1212 -#: js/EnsembleBlocks.js:1280 -#.TRANS: default project author when saving as Lilypond -msgid "Mr. Mouse" +#: js/utils/musicutils.js:1133 +#: js/utils/synthutils.js:62 +#.TRANS: pink noise synthesizer +msgid "pink noise" msgstr "" -#: js/SaveInterface.js:573 -msgid "The Lilypond code is copied to clipboard. You can paste it here: " +#: js/utils/musicutils.js:1135 +#: js/utils/synthutils.js:148 +#: js/widgets/rhythmruler.js:2057 +#: js/widgets/rhythmruler.js:2319 +#.TRANS: musical instrument +msgid "snare drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:50 -#: js/RhythmBlockPaletteBlocks.js:232 -#.TRANS: rhythm block -#.TRANS: translate "rhythm1" as rhythm -msgid "rhythm1" +#: js/utils/musicutils.js:1136 +#: js/utils/synthutils.js:150 +#.TRANS: musical instrument +msgid "kick drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:70 -#: js/RhythmBlockPaletteBlocks.js:251 -#: js/RhythmBlockPaletteBlocks.js:484 -#: js/RhythmBlockPaletteBlocks.js:553 -#: js/RhythmBlockPaletteBlocks.js:874 -msgid "number of notes" +#: js/utils/musicutils.js:1137 +#: js/utils/synthutils.js:152 +#.TRANS: musical instrument +msgid "tom tom" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:126 -msgid "polyphonic rhythm" +#: js/utils/musicutils.js:1138 +#: js/utils/synthutils.js:154 +#.TRANS: musical instrument +msgid "floor tom" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:218 -msgid "The Rhythm block is used to generate rhythm patterns." +#: js/utils/musicutils.js:1139 +#: js/utils/synthutils.js:156 +#.TRANS: musical instrument +msgid "bass drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:279 -msgid "1/64 note" +#: js/utils/musicutils.js:1140 +#: js/utils/synthutils.js:158 +#.TRANS: a drum made from an inverted cup +msgid "cup drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:303 -msgid "1/32 note" +#: js/utils/musicutils.js:1141 +#: js/utils/synthutils.js:160 +#.TRANS: musical instrument +msgid "darbuka drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:331 -msgid "1/16 note" +#: js/utils/musicutils.js:1142 +#: js/utils/synthutils.js:164 +#.TRANS: musical instrument +msgid "hi hat" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:359 -msgid "eighth note" +#: js/utils/musicutils.js:1143 +#: js/utils/synthutils.js:166 +#.TRANS: a small metal bell +msgid "ride bell" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:387 -msgid "quarter note" +#: js/utils/musicutils.js:1144 +#: js/utils/synthutils.js:168 +#.TRANS: musical instrument +msgid "cow bell" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:415 -msgid "half note" +#: js/utils/musicutils.js:1145 +msgid "japanese drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:443 -msgid "whole note" +#: js/utils/musicutils.js:1146 +#: js/utils/synthutils.js:174 +#.TRANS: musical instrument +msgid "japanese bell" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:481 -#: js/RhythmBlockPaletteBlocks.js:550 -#: js/RhythmBlockPaletteBlocks.js:601 -#.TRANS: A tuplet is a note value divided into irregular time values. -msgid "tuplet" +#: js/utils/musicutils.js:1147 +#: js/utils/synthutils.js:170 +#.TRANS: musical instrument +msgid "triangle bell" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:767 -msgid "septuplet" +#: js/utils/musicutils.js:1148 +#: js/utils/synthutils.js:172 +#.TRANS: musical instrument +msgid "finger cymbals" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:795 -msgid "quintuplet" +#: js/utils/musicutils.js:1149 +#: js/utils/synthutils.js:176 +#.TRANS: a musically tuned set of bells +msgid "chime" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:823 -msgid "triplet" +#: js/utils/musicutils.js:1150 +#: js/utils/synthutils.js:178 +#.TRANS: a musical instrument +msgid "gong" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:850 -msgid "simple tuplet" +#: js/utils/musicutils.js:1151 +#: js/utils/synthutils.js:180 +#.TRANS: sound effect +msgid "clang" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:860 -msgid "Tuplets are a collection of notes that get scaled to a specific duration." +#: js/utils/musicutils.js:1152 +#: js/utils/synthutils.js:182 +#.TRANS: sound effect +msgid "crash" msgstr "" -#: js/WidgetBlocks.js:71 -#.TRANS: sound envelope (ADSR) -msgid "envelope" +#: js/utils/musicutils.js:1153 +#: js/utils/synthutils.js:184 +#.TRANS: sound effect +msgid "bottle" msgstr "" -#: js/WidgetBlocks.js:79 -#.TRANS: Attack time is the time taken for initial run-up of level from nil to peak, beginning when the key is first pressed. -msgid "attack" +#: js/utils/musicutils.js:1154 +#: js/utils/synthutils.js:186 +#.TRANS: sound effect +msgid "clap" msgstr "" -#: js/WidgetBlocks.js:81 -#.TRANS: Decay time is the time taken for the subsequent run down from the attack level to the designated sustain level. -msgid "decay" +#: js/utils/musicutils.js:1155 +#: js/utils/synthutils.js:188 +#.TRANS: sound effect +msgid "slap" msgstr "" -#: js/WidgetBlocks.js:83 -#.TRANS: Sustain level is the level during the main sequence of the sound's duration, until the key is released. -msgid "sustain" +#: js/utils/musicutils.js:1156 +#: js/utils/synthutils.js:190 +#.TRANS: sound effect +msgid "splash" msgstr "" -#: js/WidgetBlocks.js:85 -#.TRANS: Release time is the time taken for the level to decay from the sustain level to zero after the key is released. -msgid "release" +#: js/utils/musicutils.js:1157 +#: js/utils/synthutils.js:192 +#.TRANS: sound effect +msgid "bubbles" msgstr "" -#: js/WidgetBlocks.js:96 -msgid "Attack value should be from 0 to 100." +#: js/utils/musicutils.js:1158 +#: js/utils/synthutils.js:194 +#.TRANS: sound effect +msgid "raindrop" msgstr "" -#: js/WidgetBlocks.js:99 -msgid "Decay value should be from 0 to 100." +#: js/utils/musicutils.js:1159 +#: js/utils/synthutils.js:196 +#.TRANS: animal sound effect +msgid "cat" msgstr "" -#: js/WidgetBlocks.js:102 -msgid "Sustain value should be from 0 to 100." +#: js/utils/musicutils.js:1160 +#: js/utils/synthutils.js:198 +#.TRANS: animal sound effect +msgid "cricket" msgstr "" -#: js/WidgetBlocks.js:105 -msgid "Release value should be from 0-100." +#: js/utils/musicutils.js:1161 +#: js/utils/synthutils.js:200 +#.TRANS: animal sound effect +msgid "dog" msgstr "" -#: js/WidgetBlocks.js:121 -msgid "You are adding multiple envelope blocks." +#: js/utils/musicutils.js:1163 +#: js/utils/synthutils.js:102 +#.TRANS: musical instrument +msgid "banjo" msgstr "" -#: js/WidgetBlocks.js:144 -#.TRANS: a filter removes some unwanted components from a signal -msgid "filter" +#: js/utils/musicutils.js:1164 +#: js/utils/synthutils.js:104 +#.TRANS: musical instrument +msgid "koto" msgstr "" -#: js/WidgetBlocks.js:149 -#: js/musicutils.js:706 -#: js/musicutils.js:1105 -#.TRANS: highpass filter -msgid "highpass" +#: js/utils/musicutils.js:1165 +#: js/utils/synthutils.js:106 +#.TRANS: musical instrument +msgid "dulcimer" msgstr "" -#: js/WidgetBlocks.js:152 -#: js/ToneBlocks.js:42 -#: js/timbre.js:1558 -#: js/timbre.js:1808 -#.TRANS: type of filter, e.g., lowpass, highpass, etc. -#.TRANS: there are different types (sine, triangle, square...) of oscillators. -msgid "type" +#: js/utils/musicutils.js:1166 +#: js/utils/synthutils.js:108 +#.TRANS: musical instrument +msgid "electric guitar" msgstr "" -#: js/WidgetBlocks.js:154 -#: js/timbre.js:1818 -#.TRANS: rolloff is the steepness of a change in frequency. -msgid "rolloff" +#: js/utils/musicutils.js:1167 +#: js/utils/synthutils.js:110 +#.TRANS: musical instrument +msgid "bassoon" msgstr "" -#: js/WidgetBlocks.js:155 -#: js/MediaBlocks.js:692 -#: js/temperament.js:382 -#: js/temperament.js:417 -#: js/temperament.js:477 -#: js/temperament.js:485 -#: js/temperament.js:1348 -#: js/timbre.js:1842 -msgid "frequency" +#: js/utils/musicutils.js:1168 +#: js/utils/synthutils.js:112 +#.TRANS: musical instrument +msgid "celeste" msgstr "" -#: js/WidgetBlocks.js:179 -#.TRANS: rolloff is the steepness of a change in frequency. -msgid "Rolloff value should be either -12, -24, -48, or -96 decibels/octave." +#: js/utils/musicutils.js:1170 +#: js/widgets/temperament.js:787 +#.TRANS: musical temperament +msgid "equal" msgstr "" -#: js/WidgetBlocks.js:211 -msgid "The Temperament tool is used to define custom tuning." +#: js/utils/musicutils.js:1172 +#.TRANS: musical temperament +msgid "Pythagorean" msgstr "" -#: js/WidgetBlocks.js:277 -#: js/sampler.js:329 -msgid "Upload a sample and adjust its pitch center." +#: js/utils/musicutils.js:1174 +#.TRANS: musical temperament +msgid "just intonation" msgstr "" -#: js/WidgetBlocks.js:284 -#.TRANS: the speed at music is should be played. -msgid "sampler" +#: js/utils/musicutils.js:1176 +#.TRANS: musical temperament +msgid "meantone" msgstr "" -#: js/WidgetBlocks.js:329 -#: js/WidgetBlocks.js:334 -#: js/IntervalsBlocks.js:928 -#: js/VolumeBlocks.js:411 -#: js/ToneBlocks.js:946 -#: js/VolumeActions.js:218 -#: js/musicutils.js:704 -#: js/musicutils.js:755 -#: js/musicutils.js:798 -#: js/musicutils.js:820 -#: js/musicutils.js:1136 -#: js/synthutils.js:118 -#: js/modewidget.js:919 -#.TRANS: customize voice -msgid "custom" +#: js/utils/musicutils.js:1193 +msgid "major 7th" msgstr "" -#: js/WidgetBlocks.js:432 -msgid "The Meter block opens a tool to select strong beats for the meter." +#: js/utils/musicutils.js:1194 +msgid "minor 7th" msgstr "" -#: js/WidgetBlocks.js:473 -msgid "The oscilloscope block opens a tool to visualize waveforms." +#: js/utils/musicutils.js:1195 +msgid "dominant 7th" msgstr "" -#: js/WidgetBlocks.js:478 -msgid "oscilloscope" +#: js/utils/musicutils.js:1196 +msgid "minor-major 7th" msgstr "" -#: js/WidgetBlocks.js:530 -msgid "The Custom mode block opens a tool to explore musical mode (the spacing of the notes in a scale)." +#: js/utils/musicutils.js:1197 +msgid "fully-diminished 7th" msgstr "" -#: js/WidgetBlocks.js:536 -#.TRANS: musical mode is the pattern of half-steps in an octave, e.g., Major or Minor modes -msgid "custom mode" +#: js/utils/musicutils.js:1198 +msgid "half-diminished 7th" msgstr "" -#: js/WidgetBlocks.js:570 -msgid "The Tempo block opens a metronome to visualize the beat." +#: js/utils/musicutils.js:1557 +#: js/utils/musicutils.js:1569 +msgid "Equal (12EDO)" msgstr "" -#: js/WidgetBlocks.js:617 -msgid "The Arpeggio Widget is used to compose chord sequences." +#: js/utils/musicutils.js:1558 +#: js/utils/musicutils.js:1570 +msgid "5-limit Just Intonation" msgstr "" -#: js/WidgetBlocks.js:623 -#: js/IntervalsBlocks.js:683 -msgid "arpeggio" +#: js/utils/musicutils.js:1559 +#: js/utils/musicutils.js:1571 +msgid "Pythagorean (3-limit JI)" msgstr "" -#: js/WidgetBlocks.js:677 -msgid "The Pitch drum matrix is used to map pitches to drum sounds." +#: js/utils/musicutils.js:1560 +#: js/utils/musicutils.js:1561 +#: js/utils/musicutils.js:1572 +#: js/utils/musicutils.js:1573 +msgid "Meantone" msgstr "" -#: js/WidgetBlocks.js:682 -#.TRANS: makes a mapping between pitches and drum sounds -msgid "pitch-drum mapper" +#: js/utils/musicutils.js:1574 +msgid "Custom" msgstr "" -#: js/WidgetBlocks.js:724 -msgid "You must have at least one pitch block and one drum block in the matrix." +#: js/utils/musicutils.js:5387 +#: js/utils/musicutils.js:5430 +msgid "current" msgstr "" -#: js/WidgetBlocks.js:746 -msgid "The Pitch slider tool to is used to generate pitches at selected frequencies." +#: js/utils/musicutils.js:5390 +#: js/utils/musicutils.js:5421 +msgid "next" msgstr "" -#: js/WidgetBlocks.js:751 -#.TRANS: widget to generate pitches using a slider -msgid "pitch slider" +#: js/utils/musicutils.js:5393 +#: js/utils/musicutils.js:5426 +msgid "previous" msgstr "" -#: js/WidgetBlocks.js:788 -msgid "chromatic keyboard" +#: js/utils/synthutils.js:120 +#.TRANS: simple monotone synthesizer +msgid "simple-2" msgstr "" -#: js/WidgetBlocks.js:815 -#: js/WidgetBlocks.js:874 -#.TRANS: widget to generate pitches using a slider -msgid "music keyboard" +#: js/utils/synthutils.js:122 +#.TRANS: simple monotone synthesizer +msgid "simple-3" msgstr "" -#: js/WidgetBlocks.js:859 -#: js/WidgetBlocks.js:866 -msgid "The Music keyboard block opens a piano keyboard that can be used to create notes." +#: js/utils/synthutils.js:124 +#.TRANS: simple monotone synthesizer +msgid "simple-4" msgstr "" -#: js/WidgetBlocks.js:910 -msgid "The Pitch staircase tool to is used to generate pitches from a given ratio." +#: js/utils/synthutils.js:162 +#.TRANS: musical instrument +msgid "taiko" msgstr "" -#: js/WidgetBlocks.js:917 -#.TRANS: generate a progressive sequence of pitches -msgid "pitch staircase" +#: js/blocks/ActionBlocks.js:58 +msgid "The Return block will return a value from an action." msgstr "" -#: js/WidgetBlocks.js:982 -msgid "The Rhythm Maker block opens a tool to create drum machines." +#: js/blocks/ActionBlocks.js:75 +msgid "return" msgstr "" -#: js/WidgetBlocks.js:1036 -msgid "G major scale" +#: js/blocks/ActionBlocks.js:128 +msgid "The Return to URL block will return a value to a webpage." msgstr "" -#: js/WidgetBlocks.js:1064 -msgid "C major scale" +#: js/blocks/ActionBlocks.js:145 +msgid "return to URL" msgstr "" -#: js/WidgetBlocks.js:1097 -msgid "The Phrase Maker block opens a tool to create musical phrases." +#: js/blocks/ActionBlocks.js:233 +#: js/blocks/ActionBlocks.js:290 +#: js/blocks/ActionBlocks.js:501 +#: js/blocks/ActionBlocks.js:688 +msgid "The Calculate block returns a value calculated by an action." msgstr "" -#: js/WidgetBlocks.js:1104 -#.TRANS: assigns pitch to a sequence of beats to generate a melody -msgid "phrase maker" +#: js/blocks/ActionBlocks.js:251 +#: js/blocks/ActionBlocks.js:517 +#: js/blocks/ActionBlocks.js:707 +msgid "calculate" msgstr "" -#: js/WidgetBlocks.js:1168 -msgid "You must have at least one pitch block and one rhythm block in the matrix." +#: js/blocks/ActionBlocks.js:376 +#: js/blocks/ActionBlocks.js:593 +#: js/blocks/ActionBlocks.js:942 +#: js/blocks/ActionBlocks.js:1389 +#.TRANS: do is the do something or take an action. +msgid "The Do block is used to initiate an action." msgstr "" -#: js/WidgetBlocks.js:1220 -msgid "The Status block opens a tool for inspecting the status of Music Blocks as it is running." +#: js/blocks/ActionBlocks.js:390 +#: js/blocks/ActionBlocks.js:610 +#: js/blocks/ActionBlocks.js:959 +#: js/blocks/ActionBlocks.js:1048 +#: js/blocks/MeterBlocks.js:769 +msgid "do1" msgstr "" -#: js/IntervalsBlocks.js:45 -msgid "set temperament" +#: js/blocks/ActionBlocks.js:390 +#: js/blocks/ActionBlocks.js:610 +#: js/blocks/ActionBlocks.js:959 +#: js/blocks/ActionBlocks.js:1048 +#: js/blocks/FlowBlocks.js:742 +#: js/blocks/FlowBlocks.js:822 +#: js/blocks/MeterBlocks.js:769 +msgid "do" msgstr "" -#: js/IntervalsBlocks.js:63 -#: js/MediaBlocks.js:746 -#: js/PitchBlocks.js:657 -#: js/PitchBlocks.js:933 -#: js/PitchBlocks.js:972 -#: js/PitchBlocks.js:1005 -#: js/PitchBlocks.js:1166 -#: js/PitchBlocks.js:1679 -#: js/PitchBlocks.js:1720 -#: js/PitchBlocks.js:1827 -#: js/ToneBlocks.js:1025 -#.TRANS: adjusts the shift up or down by one octave (twelve half-steps in the interval between two notes, one having twice or half the frequency in Hz of the other.) -msgid "octave" +#: js/blocks/ActionBlocks.js:791 +#: js/blocks/ActionBlocks.js:865 +msgid "The Arg block contains the value of an argument passed to an action." msgstr "" -#: js/IntervalsBlocks.js:99 -msgid "The Temperament name block is used to select a tuning method." +#: js/blocks/ActionBlocks.js:806 +#: js/blocks/ActionBlocks.js:878 +msgid "arg" msgstr "" -#: js/IntervalsBlocks.js:161 -msgid "doubly" +#: js/blocks/ActionBlocks.js:836 +#: js/blocks/ActionBlocks.js:900 +#: js/blocks/ActionBlocks.js:908 +msgid "Invalid argument" msgstr "" -#: js/IntervalsBlocks.js:166 -msgid "The Doubly block will double the size of an interval." +#: js/blocks/ActionBlocks.js:944 +msgid "In the example, it is used with the One of block to choose a random phase." msgstr "" -#: js/IntervalsBlocks.js:262 -msgid "interval number" +#: js/blocks/ActionBlocks.js:1019 +#: js/blocks/ActionBlocks.js:1026 +msgid "The Listen block is used to listen for an event such as a mouse click." msgstr "" -#: js/IntervalsBlocks.js:330 -#.TRANS: measure the distance between two pitches in semi-tones -msgid "semi-tone interval measure" +#: js/blocks/ActionBlocks.js:1028 +msgid "When the event happens, an action is taken." msgstr "" -#: js/IntervalsBlocks.js:397 -#: js/IntervalsBlocks.js:513 -msgid "You must use two pitch blocks when measuring an interval." +#: js/blocks/ActionBlocks.js:1045 +msgid "on" msgstr "" -#: js/IntervalsBlocks.js:439 -msgid "The Scalar interval block measures the distance between two notes in the current key and mode." +#: js/blocks/ActionBlocks.js:1048 +#: js/blocks/ActionBlocks.js:1049 +#: js/blocks/ActionBlocks.js:1153 +msgid "event" msgstr "" -#: js/IntervalsBlocks.js:445 -#.TRANS: measure the distance between two pitches in steps of musical scale -msgid "scalar interval measure" +#: js/blocks/ActionBlocks.js:1133 +msgid "The Broadcast block is used to trigger an event." msgstr "" -#: js/IntervalsBlocks.js:592 -#: js/musicutils.js:637 -#: js/musicutils.js:908 -#.TRANS: perfect is a music term related to intervals -msgid "perfect" +#: js/blocks/ActionBlocks.js:1151 +msgid "broadcast" msgstr "" -#: js/IntervalsBlocks.js:621 -msgid "In the figure, we add sol# to sol." +#: js/blocks/ActionBlocks.js:1208 +msgid "Each Start block is a separate voice." msgstr "" -#: js/IntervalsBlocks.js:627 -#: js/OrnamentBlocks.js:220 -#.TRANS: calculate a relative step between notes based on semi-tones -msgid "semi-tone interval" +#: js/blocks/ActionBlocks.js:1304 +msgid "It is often used for storing a phrase of music that is repeated." msgstr "" -#: js/IntervalsBlocks.js:676 -msgid "The output of the example is: do, mi, sol, sol, ti, mi" +#: js/blocks/ActionBlocks.js:1495 +msgid "define temperament" msgstr "" -#: js/IntervalsBlocks.js:735 -msgid "The Chord block calculates common chords." +#: js/blocks/BooleanBlocks.js:44 +msgid "The Not block is the logical not operator." msgstr "" -#: js/IntervalsBlocks.js:737 -msgid "In the figure, we generate a C-major chord." +#: js/blocks/BooleanBlocks.js:62 +msgid "not" msgstr "" -#: js/IntervalsBlocks.js:742 -msgid "chord" +#: js/blocks/BooleanBlocks.js:134 +msgid "The And block is the logical and operator." msgstr "" -#: js/IntervalsBlocks.js:794 -msgid "The Ratio Interval block calculates an interval based on a ratio." +#: js/blocks/BooleanBlocks.js:152 +msgid "and" msgstr "" -#: js/IntervalsBlocks.js:799 -msgid "ratio interval" +#: js/blocks/BooleanBlocks.js:218 +msgid "The Or block is the logical or operator." msgstr "" -#: js/IntervalsBlocks.js:868 -msgid "In the figure, we add la to sol." +#: js/blocks/BooleanBlocks.js:236 +msgid "or" msgstr "" -#: js/IntervalsBlocks.js:924 -#.TRANS: define a custom mode -msgid "define mode" +#: js/blocks/BooleanBlocks.js:302 +msgid "The XOR block is the logical XOR operator." msgstr "" -#: js/IntervalsBlocks.js:977 -msgid "movable Do" +#: js/blocks/BooleanBlocks.js:320 +msgid "xor" msgstr "" -#: js/IntervalsBlocks.js:1028 -#.TRANS: mode length is the number of notes in the mode, e.g., 7 for major and minor scales; 12 for chromatic scales -msgid "mode length" +#: js/blocks/BooleanBlocks.js:808 +msgid "The Equal block returns True if the two numbers are equal." msgstr "" -#: js/IntervalsBlocks.js:1037 -msgid "The Mode length block is the number of notes in the current scale." +#: js/blocks/BooleanBlocks.js:909 +msgid "The Not-equal-to block returns True if the two numbers are not equal to each other." msgstr "" -#: js/IntervalsBlocks.js:1039 -msgid "Most Western scales have 7 notes." +#: js/blocks/BooleanBlocks.js:1008 +msgid "The Boolean block is used to specify true or false." msgstr "" -#: js/IntervalsBlocks.js:1088 -#.TRANS: the mode in music is 'major', 'minor', etc. -msgid "current mode" +#: js/blocks/BoxesBlocks.js:53 +#: js/blocks/BoxesBlocks.js:59 +msgid "The Add-to block is used to add to the value stored in a box." msgstr "" -#: js/IntervalsBlocks.js:1141 -#.TRANS: the key is a group of pitches with which a music composition is created -msgid "current key" +#: js/blocks/BoxesBlocks.js:61 +msgid "It can also be used with other blocks such as Color and Pen size." msgstr "" -#: js/IntervalsBlocks.js:1193 -#: js/IntervalsBlocks.js:1238 -#.TRANS: set the key and mode, e.g. C Major -msgid "set key" +#: js/blocks/BoxesBlocks.js:73 +msgid "add" msgstr "" -#: js/IntervalsBlocks.js:1247 -#: js/IntervalsBlocks.js:1253 -msgid "The Set key block is used to set the key and mode," +#: js/blocks/BoxesBlocks.js:75 +#: js/widgets/temperament.js:857 +msgid "to" msgstr "" -#: js/IntervalsBlocks.js:1253 -msgid "eg C Major" +#: js/blocks/BoxesBlocks.js:75 +#: js/blocks/BoxesBlocks.js:595 +#: js/blocks/HeapBlocks.js:544 +msgid "value1" msgstr "" -#: js/IntervalsBlocks.js:1266 -#: js/DictBlocks.js:215 -#: js/DictBlocks.js:216 -#: js/DictBlocks.js:289 -#: js/DictBlocks.js:290 -#: js/DictBlocks.js:357 -#: js/DictBlocks.js:430 -#: js/DictBlocks.js:431 -#.TRANS: key, e.g., C in C Major -msgid "key" +#: js/blocks/BoxesBlocks.js:118 +msgid "Block does not support incrementing." msgstr "" -#: js/ActionBlocks.js:58 -msgid "The Return block will return a value from an action." +#: js/blocks/BoxesBlocks.js:152 +msgid "The Add-1-to block adds one to the value stored in a box." msgstr "" -#: js/ActionBlocks.js:75 -msgid "return" +#: js/blocks/BoxesBlocks.js:163 +msgid "add 1 to" msgstr "" -#: js/ActionBlocks.js:128 -msgid "The Return to URL block will return a value to a webpage." +#: js/blocks/BoxesBlocks.js:211 +msgid "The Subtract-1-from block subtracts one from the value stored in a box." msgstr "" -#: js/ActionBlocks.js:145 -msgid "return to URL" +#: js/blocks/BoxesBlocks.js:222 +msgid "subtract 1 from" msgstr "" -#: js/ActionBlocks.js:233 -#: js/ActionBlocks.js:290 -#: js/ActionBlocks.js:501 -#: js/ActionBlocks.js:688 -msgid "The Calculate block returns a value calculated by an action." +#: js/blocks/BoxesBlocks.js:270 +#: js/blocks/BoxesBlocks.js:387 +msgid "The Box block returns the value stored in a box." msgstr "" -#: js/ActionBlocks.js:251 -#: js/ActionBlocks.js:517 -#: js/ActionBlocks.js:707 -msgid "calculate" +#: js/blocks/BoxesBlocks.js:500 +#: js/blocks/BoxesBlocks.js:576 +msgid "The Store in block will store a value in a box." msgstr "" -#: js/ActionBlocks.js:376 -#: js/ActionBlocks.js:593 -#: js/ActionBlocks.js:942 -#: js/ActionBlocks.js:1389 -#.TRANS: do is the do something or take an action. -msgid "The Do block is used to initiate an action." +#: js/blocks/BoxesBlocks.js:595 +#: js/blocks/EnsembleBlocks.js:391 +#: js/blocks/EnsembleBlocks.js:402 +msgid "name1" msgstr "" -#: js/ActionBlocks.js:390 -#: js/ActionBlocks.js:610 -#: js/ActionBlocks.js:959 -#: js/ActionBlocks.js:1048 -#: js/MeterBlocks.js:769 -msgid "do1" +#: js/blocks/BoxesBlocks.js:652 +msgid "The Box2 block returns the value stored in Box2." msgstr "" -#: js/ActionBlocks.js:390 -#: js/ActionBlocks.js:610 -#: js/ActionBlocks.js:959 -#: js/ActionBlocks.js:1048 -#: js/FlowBlocks.js:742 -#: js/FlowBlocks.js:822 -#: js/MeterBlocks.js:769 -msgid "do" +#: js/blocks/BoxesBlocks.js:703 +msgid "The Store in Box2 block is used to store a value in Box2." msgstr "" -#: js/ActionBlocks.js:791 -#: js/ActionBlocks.js:865 -msgid "The Arg block contains the value of an argument passed to an action." +#: js/blocks/BoxesBlocks.js:715 +msgid "store in box2" msgstr "" -#: js/ActionBlocks.js:806 -#: js/ActionBlocks.js:878 -msgid "arg" +#: js/blocks/BoxesBlocks.js:761 +msgid "The Box1 block returns the value stored in Box1." msgstr "" -#: js/ActionBlocks.js:836 -#: js/ActionBlocks.js:900 -#: js/ActionBlocks.js:908 -msgid "Invalid argument" +#: js/blocks/BoxesBlocks.js:812 +msgid "The Store in Box1 block is used to store a value in Box1." msgstr "" -#: js/ActionBlocks.js:944 -msgid "In the example, it is used with the One of block to choose a random phase." +#: js/blocks/BoxesBlocks.js:826 +msgid "store in box1" msgstr "" -#: js/ActionBlocks.js:1019 -#: js/ActionBlocks.js:1026 -msgid "The Listen block is used to listen for an event such as a mouse click." +#: js/blocks/DictBlocks.js:77 +msgid "show dictionary" msgstr "" -#: js/ActionBlocks.js:1028 -msgid "When the event happens, an action is taken." +#: js/blocks/DictBlocks.js:80 +#: js/blocks/DictBlocks.js:145 +#: js/blocks/DictBlocks.js:216 +#: js/blocks/DictBlocks.js:290 +#: js/blocks/ProgramBlocks.js:396 +#: js/blocks/ProgramBlocks.js:501 +#: js/blocks/ProgramBlocks.js:664 +msgid "My Dictionary" msgstr "" -#: js/ActionBlocks.js:1045 -msgid "on" +#: js/blocks/DictBlocks.js:129 +msgid "The Dictionary block returns a dictionary." msgstr "" -#: js/ActionBlocks.js:1048 -#: js/ActionBlocks.js:1049 -#: js/ActionBlocks.js:1153 -msgid "event" +#: js/blocks/DictBlocks.js:197 +#: js/blocks/DictBlocks.js:339 +msgid "The Get-dict block returns a value in the dictionary for a specified key." msgstr "" -#: js/ActionBlocks.js:1133 -msgid "The Broadcast block is used to trigger an event." +#: js/blocks/DictBlocks.js:212 +#: js/blocks/DictBlocks.js:354 +#.TRANS: retrieve a value from the dictionary with a given key +msgid "get value" msgstr "" -#: js/ActionBlocks.js:1151 -msgid "broadcast" +#: js/blocks/DictBlocks.js:215 +#: js/blocks/DictBlocks.js:216 +#: js/blocks/DictBlocks.js:289 +#: js/blocks/DictBlocks.js:290 +#: js/blocks/DictBlocks.js:357 +#: js/blocks/DictBlocks.js:430 +#: js/blocks/DictBlocks.js:431 +msgid "key2" msgstr "" -#: js/ActionBlocks.js:1208 -msgid "Each Start block is a separate voice." +#: js/blocks/DictBlocks.js:215 +#: js/blocks/DictBlocks.js:216 +#: js/blocks/DictBlocks.js:289 +#: js/blocks/DictBlocks.js:290 +#: js/blocks/DictBlocks.js:357 +#: js/blocks/DictBlocks.js:430 +#: js/blocks/DictBlocks.js:431 +#: js/blocks/IntervalsBlocks.js:1462 +#.TRANS: key, e.g., C in C Major +msgid "key" msgstr "" -#: js/ActionBlocks.js:1304 -msgid "It is often used for storing a phrase of music that is repeated." +#: js/blocks/DictBlocks.js:271 +#: js/blocks/DictBlocks.js:411 +msgid "The Set-dict block sets a value in the dictionary for a specified key." msgstr "" -#: js/ActionBlocks.js:1495 -msgid "define temperament" +#: js/blocks/DictBlocks.js:286 +#: js/blocks/DictBlocks.js:427 +#.TRANS: set a value in the dictionary for a given key +msgid "set value" msgstr "" -#: js/EnsembleBlocks.js:66 +#: js/blocks/EnsembleBlocks.js:66 msgid "mouse index heap" msgstr "" -#: js/EnsembleBlocks.js:68 +#: js/blocks/EnsembleBlocks.js:68 msgid "The Mouse index heap block returns a value in the heap at a specified location for a specified mouse." msgstr "" -#: js/EnsembleBlocks.js:77 -#: js/EnsembleBlocks.js:1080 +#: js/blocks/EnsembleBlocks.js:77 +#: js/blocks/EnsembleBlocks.js:1080 msgid "mouse name" msgstr "" -#: js/EnsembleBlocks.js:77 -#: js/EnsembleBlocks.js:92 -#: js/HeapBlocks.js:544 +#: js/blocks/EnsembleBlocks.js:77 +#: js/blocks/EnsembleBlocks.js:92 +#: js/blocks/HeapBlocks.js:544 #.TRANS: value1 is a numeric value (JAPANESE ONLY) msgid "index" msgstr "" -#: js/EnsembleBlocks.js:80 +#: js/blocks/EnsembleBlocks.js:80 msgid "turtle index heap" msgstr "" -#: js/EnsembleBlocks.js:82 +#: js/blocks/EnsembleBlocks.js:82 msgid "The Turtle index heap block returns a value in the heap at a specified location for a specified turtle." msgstr "" -#: js/EnsembleBlocks.js:90 -#: js/EnsembleBlocks.js:167 -#: js/EnsembleBlocks.js:230 -#: js/EnsembleBlocks.js:316 -#: js/EnsembleBlocks.js:362 -#: js/EnsembleBlocks.js:400 -#: js/EnsembleBlocks.js:454 -#: js/EnsembleBlocks.js:504 -#: js/EnsembleBlocks.js:550 -#: js/EnsembleBlocks.js:597 -#: js/EnsembleBlocks.js:651 -#: js/EnsembleBlocks.js:763 -#: js/EnsembleBlocks.js:854 -#: js/EnsembleBlocks.js:915 -#: js/EnsembleBlocks.js:955 -#: js/EnsembleBlocks.js:1219 -#: js/EnsembleBlocks.js:1293 +#: js/blocks/EnsembleBlocks.js:90 +#: js/blocks/EnsembleBlocks.js:167 +#: js/blocks/EnsembleBlocks.js:230 +#: js/blocks/EnsembleBlocks.js:316 +#: js/blocks/EnsembleBlocks.js:362 +#: js/blocks/EnsembleBlocks.js:400 +#: js/blocks/EnsembleBlocks.js:454 +#: js/blocks/EnsembleBlocks.js:504 +#: js/blocks/EnsembleBlocks.js:550 +#: js/blocks/EnsembleBlocks.js:597 +#: js/blocks/EnsembleBlocks.js:651 +#: js/blocks/EnsembleBlocks.js:763 +#: js/blocks/EnsembleBlocks.js:854 +#: js/blocks/EnsembleBlocks.js:915 +#: js/blocks/EnsembleBlocks.js:955 +#: js/blocks/EnsembleBlocks.js:1219 +#: js/blocks/EnsembleBlocks.js:1293 #.TRANS: Yertle is the name of a turtle. msgid "Yertle" msgstr "" -#: js/EnsembleBlocks.js:92 -#: js/EnsembleBlocks.js:1089 +#: js/blocks/EnsembleBlocks.js:92 +#: js/blocks/EnsembleBlocks.js:1089 msgid "turtle name" msgstr "" -#: js/EnsembleBlocks.js:122 -#: js/EnsembleBlocks.js:1197 -#: js/HeapBlocks.js:474 -#: js/HeapBlocks.js:572 +#: js/blocks/EnsembleBlocks.js:122 +#: js/blocks/EnsembleBlocks.js:1197 +#: js/blocks/HeapBlocks.js:474 +#: js/blocks/HeapBlocks.js:572 msgid "Index must be > 0." msgstr "" -#: js/EnsembleBlocks.js:127 -#: js/HeapBlocks.js:479 -#: js/HeapBlocks.js:577 +#: js/blocks/EnsembleBlocks.js:127 +#: js/blocks/HeapBlocks.js:479 +#: js/blocks/HeapBlocks.js:577 msgid "Maximum heap size is 1000." msgstr "" -#: js/EnsembleBlocks.js:145 +#: js/blocks/EnsembleBlocks.js:145 msgid "stop mouse" msgstr "" -#: js/EnsembleBlocks.js:147 +#: js/blocks/EnsembleBlocks.js:147 msgid "The Stop mouse block stops the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:158 +#: js/blocks/EnsembleBlocks.js:158 msgid "stop turtle" msgstr "" -#: js/EnsembleBlocks.js:160 +#: js/blocks/EnsembleBlocks.js:160 msgid "The Stop turtle block stops the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:184 -#: js/EnsembleBlocks.js:247 -#: js/EnsembleBlocks.js:413 -#: js/EnsembleBlocks.js:468 -#: js/EnsembleBlocks.js:706 -#: js/EnsembleBlocks.js:808 -#: js/EnsembleBlocks.js:870 -#: js/EnsembleBlocks.js:1190 -#: js/EnsembleBlocks.js:1253 +#: js/blocks/EnsembleBlocks.js:184 +#: js/blocks/EnsembleBlocks.js:247 +#: js/blocks/EnsembleBlocks.js:413 +#: js/blocks/EnsembleBlocks.js:468 +#: js/blocks/EnsembleBlocks.js:706 +#: js/blocks/EnsembleBlocks.js:808 +#: js/blocks/EnsembleBlocks.js:870 +#: js/blocks/EnsembleBlocks.js:1190 +#: js/blocks/EnsembleBlocks.js:1253 msgid "Cannot find mouse" msgstr "" -#: js/EnsembleBlocks.js:186 -#: js/EnsembleBlocks.js:249 -#: js/EnsembleBlocks.js:415 -#: js/EnsembleBlocks.js:470 -#: js/EnsembleBlocks.js:708 -#: js/EnsembleBlocks.js:810 -#: js/EnsembleBlocks.js:872 -#: js/EnsembleBlocks.js:1192 -#: js/EnsembleBlocks.js:1255 +#: js/blocks/EnsembleBlocks.js:186 +#: js/blocks/EnsembleBlocks.js:249 +#: js/blocks/EnsembleBlocks.js:415 +#: js/blocks/EnsembleBlocks.js:470 +#: js/blocks/EnsembleBlocks.js:708 +#: js/blocks/EnsembleBlocks.js:810 +#: js/blocks/EnsembleBlocks.js:872 +#: js/blocks/EnsembleBlocks.js:1192 +#: js/blocks/EnsembleBlocks.js:1255 msgid "Cannot find turtle" msgstr "" -#: js/EnsembleBlocks.js:206 +#: js/blocks/EnsembleBlocks.js:206 msgid "start mouse" msgstr "" -#: js/EnsembleBlocks.js:209 +#: js/blocks/EnsembleBlocks.js:209 msgid "The Start mouse block starts the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:220 +#: js/blocks/EnsembleBlocks.js:220 msgid "start turtle" msgstr "" -#: js/EnsembleBlocks.js:223 +#: js/blocks/EnsembleBlocks.js:223 msgid "The Start turtle block starts the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:256 +#: js/blocks/EnsembleBlocks.js:256 msgid "Mouse is already running." msgstr "" -#: js/EnsembleBlocks.js:258 +#: js/blocks/EnsembleBlocks.js:258 msgid "Turtle is already running." msgstr "" -#: js/EnsembleBlocks.js:282 +#: js/blocks/EnsembleBlocks.js:282 msgid "Cannot find start block" msgstr "" -#: js/EnsembleBlocks.js:292 +#: js/blocks/EnsembleBlocks.js:292 #.TRANS: pen color for this mouse msgid "mouse color" msgstr "" -#: js/EnsembleBlocks.js:294 +#: js/blocks/EnsembleBlocks.js:294 msgid "The Mouse color block returns the pen color of the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:306 +#: js/blocks/EnsembleBlocks.js:306 #.TRANS: pen color for this turtle msgid "turtle color" msgstr "" -#: js/EnsembleBlocks.js:308 +#: js/blocks/EnsembleBlocks.js:308 msgid "The Turtle color block returns the pen color of the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:338 +#: js/blocks/EnsembleBlocks.js:338 #.TRANS: heading (compass direction) for this mouse msgid "mouse heading" msgstr "" -#: js/EnsembleBlocks.js:340 +#: js/blocks/EnsembleBlocks.js:340 msgid "The Mouse heading block returns the heading of the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:352 +#: js/blocks/EnsembleBlocks.js:352 #.TRANS: heading (compass direction) for this turtle msgid "turtle heading" msgstr "" -#: js/EnsembleBlocks.js:354 +#: js/blocks/EnsembleBlocks.js:354 msgid "The Turtle heading block returns the heading of the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:384 -#: js/EnsembleBlocks.js:439 +#: js/blocks/EnsembleBlocks.js:384 +#: js/blocks/EnsembleBlocks.js:439 #.TRANS: set xy position for this mouse msgid "set mouse" msgstr "" -#: js/EnsembleBlocks.js:391 -#: js/EnsembleBlocks.js:402 -#: js/BoxesBlocks.js:595 -msgid "name1" -msgstr "" - -#: js/EnsembleBlocks.js:391 -#: js/EnsembleBlocks.js:402 -#: js/ProgramBlocks.js:881 -#: js/GraphicsBlocks.js:235 -#: js/GraphicsBlocks.js:313 -#: js/GraphicsBlocks.js:436 -#: js/GraphicsBlocks.js:487 -#: js/GraphicsBlocks.js:534 -#: js/GraphicsBlocks.js:750 +#: js/blocks/EnsembleBlocks.js:391 +#: js/blocks/EnsembleBlocks.js:402 +#: js/blocks/GraphicsBlocks.js:235 +#: js/blocks/GraphicsBlocks.js:313 +#: js/blocks/GraphicsBlocks.js:436 +#: js/blocks/GraphicsBlocks.js:487 +#: js/blocks/GraphicsBlocks.js:534 +#: js/blocks/GraphicsBlocks.js:750 +#: js/blocks/ProgramBlocks.js:881 msgid "x" msgstr "" -#: js/EnsembleBlocks.js:391 -#: js/EnsembleBlocks.js:402 -#: js/ProgramBlocks.js:881 -#: js/GraphicsBlocks.js:149 -#: js/GraphicsBlocks.js:313 -#: js/GraphicsBlocks.js:436 -#: js/GraphicsBlocks.js:487 -#: js/GraphicsBlocks.js:534 -#: js/GraphicsBlocks.js:750 +#: js/blocks/EnsembleBlocks.js:391 +#: js/blocks/EnsembleBlocks.js:402 +#: js/blocks/GraphicsBlocks.js:149 +#: js/blocks/GraphicsBlocks.js:313 +#: js/blocks/GraphicsBlocks.js:436 +#: js/blocks/GraphicsBlocks.js:487 +#: js/blocks/GraphicsBlocks.js:534 +#: js/blocks/GraphicsBlocks.js:750 +#: js/blocks/ProgramBlocks.js:881 msgid "y" msgstr "" -#: js/EnsembleBlocks.js:395 -#: js/EnsembleBlocks.js:452 +#: js/blocks/EnsembleBlocks.js:395 +#: js/blocks/EnsembleBlocks.js:452 #.TRANS: set xy position for this turtle msgid "set turtle" msgstr "" -#: js/EnsembleBlocks.js:433 +#: js/blocks/EnsembleBlocks.js:433 msgid "The Set mouse block sends a stack of blocks to be run by the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:446 +#: js/blocks/EnsembleBlocks.js:446 msgid "The Set turtle block sends a stack of blocks to be run by the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:480 +#: js/blocks/EnsembleBlocks.js:480 #.TRANS: y position for this mouse msgid "mouse y" msgstr "" -#: js/EnsembleBlocks.js:482 +#: js/blocks/EnsembleBlocks.js:482 msgid "The Y mouse block returns the Y position of the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:494 +#: js/blocks/EnsembleBlocks.js:494 #.TRANS: y position for this turtle msgid "turtle y" msgstr "" -#: js/EnsembleBlocks.js:496 +#: js/blocks/EnsembleBlocks.js:496 msgid "The Y turtle block returns the Y position of the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:526 +#: js/blocks/EnsembleBlocks.js:526 #.TRANS: x position for this mouse msgid "mouse x" msgstr "" -#: js/EnsembleBlocks.js:528 +#: js/blocks/EnsembleBlocks.js:528 msgid "The X mouse block returns the X position of the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:540 +#: js/blocks/EnsembleBlocks.js:540 #.TRANS: x position for this turtle msgid "turtle x" msgstr "" -#: js/EnsembleBlocks.js:542 +#: js/blocks/EnsembleBlocks.js:542 msgid "The X turtle block returns the X position of the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:573 +#: js/blocks/EnsembleBlocks.js:573 #.TRANS: notes played by this mouse msgid "mouse notes played" msgstr "" -#: js/EnsembleBlocks.js:575 +#: js/blocks/EnsembleBlocks.js:575 msgid "The Mouse elapse notes block returns the number of notes played by the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:587 +#: js/blocks/EnsembleBlocks.js:587 #.TRANS: notes played by this turtle msgid "turtle notes played" msgstr "" -#: js/EnsembleBlocks.js:589 +#: js/blocks/EnsembleBlocks.js:589 msgid "The Turtle elapse notes block returns the number of notes played by the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:627 +#: js/blocks/EnsembleBlocks.js:627 #.TRANS: convert current note for this turtle to piano key (1-88) msgid "mouse pitch number" msgstr "" -#: js/EnsembleBlocks.js:629 +#: js/blocks/EnsembleBlocks.js:629 msgid "The Mouse pitch block returns the current pitch number being played by the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:641 +#: js/blocks/EnsembleBlocks.js:641 #.TRANS: convert current note for this turtle to piano key (1-88) msgid "turtle pitch number" msgstr "" -#: js/EnsembleBlocks.js:643 -msgid "The Turrle pitch block returns the current pitch number being played by the specified turtle." +#: js/blocks/EnsembleBlocks.js:643 +msgid "The Turtle pitch block returns the current pitch number being played by the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:747 -#: js/EnsembleBlocks.js:819 +#: js/blocks/EnsembleBlocks.js:747 +#: js/blocks/EnsembleBlocks.js:819 #.TRANS: note value is the duration of the note played by this mouse msgid "mouse note value" msgstr "" -#: js/EnsembleBlocks.js:757 +#: js/blocks/EnsembleBlocks.js:757 #.TRANS: note value is the duration of the note played by this turtle msgid "turtle note value" msgstr "" -#: js/EnsembleBlocks.js:830 +#: js/blocks/EnsembleBlocks.js:830 #.TRANS: sync is short for synchronization msgid "mouse sync" msgstr "" -#: js/EnsembleBlocks.js:832 +#: js/blocks/EnsembleBlocks.js:832 msgid "The Mouse sync block aligns the beat count between mice." msgstr "" -#: js/EnsembleBlocks.js:844 +#: js/blocks/EnsembleBlocks.js:844 #.TRANS: sync is short for synchronization msgid "turtle sync" msgstr "" -#: js/EnsembleBlocks.js:846 +#: js/blocks/EnsembleBlocks.js:846 msgid "The Turtle sync block aligns the beat count between turtles." msgstr "" -#: js/EnsembleBlocks.js:887 +#: js/blocks/EnsembleBlocks.js:887 msgid "The Found mouse block will return true if the specified mouse can be found." msgstr "" -#: js/EnsembleBlocks.js:893 +#: js/blocks/EnsembleBlocks.js:893 msgid "found mouse" msgstr "" -#: js/EnsembleBlocks.js:903 +#: js/blocks/EnsembleBlocks.js:903 msgid "The Found turtle block will return true if the specified turtle can be found." msgstr "" -#: js/EnsembleBlocks.js:909 +#: js/blocks/EnsembleBlocks.js:909 msgid "found turtle" msgstr "" -#: js/EnsembleBlocks.js:932 +#: js/blocks/EnsembleBlocks.js:932 msgid "new mouse" msgstr "" -#: js/EnsembleBlocks.js:934 +#: js/blocks/EnsembleBlocks.js:934 msgid "The New mouse block will create a new mouse." msgstr "" -#: js/EnsembleBlocks.js:945 +#: js/blocks/EnsembleBlocks.js:945 msgid "new turtle" msgstr "" -#: js/EnsembleBlocks.js:947 +#: js/blocks/EnsembleBlocks.js:947 msgid "The New turtle block will create a new turtle." msgstr "" -#: js/EnsembleBlocks.js:1011 +#: js/blocks/EnsembleBlocks.js:1011 msgid "set mouse color" msgstr "" -#: js/EnsembleBlocks.js:1014 +#: js/blocks/EnsembleBlocks.js:1014 msgid "The Set-mouse-color block is used to set the color of a mouse." msgstr "" -#: js/EnsembleBlocks.js:1020 +#: js/blocks/EnsembleBlocks.js:1020 msgid "set turtle color" msgstr "" -#: js/EnsembleBlocks.js:1023 +#: js/blocks/EnsembleBlocks.js:1023 msgid "The Set-turtle-color block is used to set the color of a turtle." msgstr "" -#: js/EnsembleBlocks.js:1083 +#: js/blocks/EnsembleBlocks.js:1083 msgid "The Mouse-name block returns the name of a mouse." msgstr "" -#: js/EnsembleBlocks.js:1092 +#: js/blocks/EnsembleBlocks.js:1092 msgid "The Turtle-name block returns the name of a turtle." msgstr "" -#: js/EnsembleBlocks.js:1115 +#: js/blocks/EnsembleBlocks.js:1115 msgid "mouse count" msgstr "" -#: js/EnsembleBlocks.js:1118 +#: js/blocks/EnsembleBlocks.js:1118 msgid "The Mouse-count block returns the number of mice." msgstr "" -#: js/EnsembleBlocks.js:1124 +#: js/blocks/EnsembleBlocks.js:1124 msgid "turtle count" msgstr "" -#: js/EnsembleBlocks.js:1127 +#: js/blocks/EnsembleBlocks.js:1127 msgid "The Turtle-count block returns the number of turtles." msgstr "" -#: js/EnsembleBlocks.js:1149 +#: js/blocks/EnsembleBlocks.js:1149 msgid "nth mouse name" msgstr "" -#: js/EnsembleBlocks.js:1152 +#: js/blocks/EnsembleBlocks.js:1152 msgid "The Nth-Mouse name block returns the name of the nth mouse." msgstr "" -#: js/EnsembleBlocks.js:1158 +#: js/blocks/EnsembleBlocks.js:1158 msgid "nth turtle name" msgstr "" -#: js/EnsembleBlocks.js:1161 +#: js/blocks/EnsembleBlocks.js:1161 msgid "The Nth-Turtle name block returns the name of the nth turtle." msgstr "" -#: js/EnsembleBlocks.js:1205 -#: js/EnsembleBlocks.js:1265 +#: js/blocks/EnsembleBlocks.js:1205 +#: js/blocks/EnsembleBlocks.js:1265 msgid "set name" msgstr "" -#: js/EnsembleBlocks.js:1214 -#: js/EnsembleBlocks.js:1221 +#: js/blocks/EnsembleBlocks.js:1214 +#: js/blocks/EnsembleBlocks.js:1221 msgid "source" msgstr "" -#: js/EnsembleBlocks.js:1214 -#: js/EnsembleBlocks.js:1221 +#: js/blocks/EnsembleBlocks.js:1214 +#: js/blocks/EnsembleBlocks.js:1221 msgid "target" msgstr "" -#: js/EnsembleBlocks.js:1271 +#: js/blocks/EnsembleBlocks.js:1271 msgid "The Set-name block is used to name a mouse." msgstr "" -#: js/EnsembleBlocks.js:1284 +#: js/blocks/EnsembleBlocks.js:1284 msgid "The Set-name block is used to name a turtle." msgstr "" -#: js/BooleanBlocks.js:44 -msgid "The Not block is the logical not operator." -msgstr "" - -#: js/BooleanBlocks.js:62 -msgid "not" -msgstr "" - -#: js/BooleanBlocks.js:134 -msgid "The And block is the logical and operator." -msgstr "" - -#: js/BooleanBlocks.js:152 -msgid "and" -msgstr "" - -#: js/BooleanBlocks.js:218 -msgid "The Or block is the logical or operator." -msgstr "" - -#: js/BooleanBlocks.js:236 -msgid "or" -msgstr "" - -#: js/BooleanBlocks.js:302 -msgid "The XOR block is the logical XOR operator." -msgstr "" - -#: js/BooleanBlocks.js:320 -msgid "xor" -msgstr "" - -#: js/BooleanBlocks.js:808 -msgid "The Equal block returns True if the two numbers are equal." -msgstr "" - -#: js/BooleanBlocks.js:909 -msgid "The Not-equal-to block returns True if the two numbers are not equal to each other." -msgstr "" - -#: js/BooleanBlocks.js:1008 -msgid "The Boolean block is used to specify true or false." -msgstr "" - -#: js/MediaBlocks.js:35 -#.TRANS: right side of the screen -msgid "right (screen)" -msgstr "" - -#: js/MediaBlocks.js:45 -#: js/MediaBlocks.js:56 -msgid "The Right block returns the position of the right of the canvas." -msgstr "" - -#: js/MediaBlocks.js:97 -#.TRANS: left side of the screen -msgid "left (screen)" -msgstr "" - -#: js/MediaBlocks.js:107 -#: js/MediaBlocks.js:118 -msgid "The Left block returns the position of the left of the canvas." -msgstr "" - -#: js/MediaBlocks.js:158 -msgid "top (screen)" -msgstr "" - -#: js/MediaBlocks.js:168 -#: js/MediaBlocks.js:179 -msgid "The Top block returns the position of the top of the canvas." -msgstr "" - -#: js/MediaBlocks.js:219 -msgid "bottom (screen)" +#: js/blocks/ExtrasBlocks.js:33 +msgid "fraction" msgstr "" -#: js/MediaBlocks.js:229 -#: js/MediaBlocks.js:240 -msgid "The Bottom block returns the position of the bottom of the canvas." +#: js/blocks/ExtrasBlocks.js:36 +msgid "Convert a float to a fraction" msgstr "" -#: js/MediaBlocks.js:282 -msgid "width" +#: js/blocks/ExtrasBlocks.js:93 +msgid "save as ABC" msgstr "" -#: js/MediaBlocks.js:291 -msgid "The Width block returns the width of the canvas." +#: js/blocks/ExtrasBlocks.js:96 +#: js/blocks/ExtrasBlocks.js:132 +#: js/blocks/ExtrasBlocks.js:168 +msgid "title" msgstr "" -#: js/MediaBlocks.js:325 -msgid "height" +#: js/blocks/ExtrasBlocks.js:129 +msgid "save as Lilypond" msgstr "" -#: js/MediaBlocks.js:334 -msgid "The Height block returns the height of the canvas." +#: js/blocks/ExtrasBlocks.js:165 +msgid "save as SVG" msgstr "" -#: js/MediaBlocks.js:369 -#.TRANS: stops playback of an audio recording -msgid "stop play" +#: js/blocks/ExtrasBlocks.js:216 +msgid "no background" msgstr "" -#: js/MediaBlocks.js:404 -#.TRANS: Erases the images and text -msgid "erase media" +#: js/blocks/ExtrasBlocks.js:219 +msgid "The No background block eliminates the background from the saved SVG output." msgstr "" -#: js/MediaBlocks.js:409 -msgid "The Erase Media block erases text and images." +#: js/blocks/ExtrasBlocks.js:247 +msgid "show blocks" msgstr "" -#: js/MediaBlocks.js:439 -#.TRANS: play an audio recording -msgid "play back" +#: js/blocks/ExtrasBlocks.js:249 +msgid "The Show blocks block shows the blocks." msgstr "" -#: js/MediaBlocks.js:487 -msgid "speak" +#: js/blocks/ExtrasBlocks.js:274 +msgid "hide blocks" msgstr "" -#: js/MediaBlocks.js:495 -msgid "The Speak block outputs to the text-to-speech synthesizer" +#: js/blocks/ExtrasBlocks.js:276 +msgid "The Hide blocks block hides the blocks." msgstr "" -#: js/MediaBlocks.js:546 -msgid "camera" +#: js/blocks/ExtrasBlocks.js:305 +#: js/blocks/ExtrasBlocks.js:338 +msgid "The Space block is used to add space between blocks." msgstr "" -#: js/MediaBlocks.js:551 -msgid "The Camera block connects a webcam to the Show block." +#: js/blocks/ExtrasBlocks.js:376 +msgid "wait" msgstr "" -#: js/MediaBlocks.js:574 -msgid "video" +#: js/blocks/ExtrasBlocks.js:379 +msgid "The Wait block pauses the program for a specified number of seconds." msgstr "" -#: js/MediaBlocks.js:579 -msgid "The Video block selects video for use with the Show block." +#: js/blocks/ExtrasBlocks.js:433 +#: plugins/facebook.rtp:30 +msgid "comment" msgstr "" -#: js/MediaBlocks.js:607 -msgid "The Open file block opens a file for use with the Show block." +#: js/blocks/ExtrasBlocks.js:469 +msgid "print" msgstr "" -#: js/MediaBlocks.js:645 -msgid "stop media" +#: js/blocks/ExtrasBlocks.js:476 +msgid "The Print block displays text at the top of the screen." msgstr "" -#: js/MediaBlocks.js:650 -msgid "The Stop media block stops audio or video playback." +#: js/blocks/ExtrasBlocks.js:582 +msgid "display grid" msgstr "" -#: js/MediaBlocks.js:679 -#: js/PitchBlocks.js:1539 -#: js/phrasemaker.js:822 -#: js/musickeyboard.js:1654 -#.TRANS: a measure of frequency: one cycle per second -msgid "hertz" +#: js/blocks/ExtrasBlocks.js:587 +msgid "The Display Grid Block changes the grid type" msgstr "" -#: js/MediaBlocks.js:692 -msgid "duration (ms)" +#: js/blocks/ExtrasBlocks.js:689 +#: js/blocks/ExtrasBlocks.js:708 +#: js/blocks/ExtrasBlocks.js:731 +#: js/blocks/ExtrasBlocks.js:754 +#: js/blocks/ExtrasBlocks.js:772 +#: js/blocks/ExtrasBlocks.js:791 +#: js/blocks/ExtrasBlocks.js:810 +#: js/blocks/ExtrasBlocks.js:829 +msgid "unknown" msgstr "" -#: js/MediaBlocks.js:728 -#.TRANS: translate a note into hertz, e.g., A4 -> 440HZ -msgid "note to frequency" +#: js/blocks/FlowBlocks.js:41 +msgid "The Backward block runs code in reverse order (Musical retrograde)." msgstr "" -#: js/MediaBlocks.js:736 -msgid "The To frequency block converts a pitch name and octave to Hertz." +#: js/blocks/FlowBlocks.js:48 +msgid "backward" msgstr "" -#: js/MediaBlocks.js:746 -#: js/PitchBlocks.js:656 -#: js/PitchBlocks.js:932 -#: js/PitchBlocks.js:1827 -#.TRANS: name2 is name as in name of pitch (JAPANESE ONLY) -msgid "name2" +#: js/blocks/FlowBlocks.js:124 +msgid "The Duplicate block will run each block multiple times." msgstr "" -#: js/MediaBlocks.js:812 -msgid "The Avatar block is used to change the appearance of the mouse." +#: js/blocks/FlowBlocks.js:136 +msgid "duplicate" msgstr "" -#: js/MediaBlocks.js:819 -msgid "The Avatar block is used to change the appearance of the turtle." +#: js/blocks/FlowBlocks.js:334 +msgid "The Default block is used inside of a Switch to define the default action." msgstr "" -#: js/MediaBlocks.js:831 -#: js/MediaBlocks.js:891 -#.TRANS: a media object -msgid "size" +#: js/blocks/FlowBlocks.js:342 +msgid "default" msgstr "" -#: js/MediaBlocks.js:831 -msgid "image" +#: js/blocks/FlowBlocks.js:361 +#: js/blocks/FlowBlocks.js:418 +msgid "The Case Block must be used inside of a Switch Block." msgstr "" -#: js/MediaBlocks.js:880 -msgid "The Show block is used to display text or images on the canvas." +#: js/blocks/FlowBlocks.js:389 +msgid "The Case block is used inside of a Switch to define matches." msgstr "" -#: js/MediaBlocks.js:888 -#.TRANS: show1 is show as in display an image or text on the screen. -msgid "show1" +#: js/blocks/FlowBlocks.js:397 +msgid "case" msgstr "" -#: js/MediaBlocks.js:891 -msgid "obj" +#: js/blocks/FlowBlocks.js:446 +msgid "The Switch block will run the code in the matching Case." msgstr "" -#: js/MediaBlocks.js:938 -msgid "The Media block is used to import an image." +#: js/blocks/FlowBlocks.js:454 +msgid "switch" msgstr "" -#: js/MediaBlocks.js:973 -msgid "The Text block holds a text string." +#: js/blocks/FlowBlocks.js:595 +msgid "The Stop block will stop a loop" msgstr "" -#: js/ProgramBlocks.js:33 -msgid "The Load-heap-from-app block loads the heap from a web page." +#: js/blocks/FlowBlocks.js:597 +msgid "Forever, Repeat, While, or Until." msgstr "" -#: js/ProgramBlocks.js:44 -#.TRANS: load the heap contents from a URL -msgid "load heap from App" +#: js/blocks/FlowBlocks.js:604 +#: js/widgets/timbre.js:417 +#: js/widgets/timbre.js:419 +#: js/widgets/musickeyboard.js:819 +#: js/widgets/musickeyboard.js:821 +#: js/widgets/phrasemaker.js:4202 +#: plugins/rodi.rtp:29 +#: plugins/rodi.rtp:73 +#: plugins/rodi.rtp:413 +msgid "stop" msgstr "" -#: js/ProgramBlocks.js:95 -msgid "Error parsing JSON data:" +#: js/blocks/FlowBlocks.js:653 +msgid "The Waitfor block will wait until the condition is true." msgstr "" -#: js/ProgramBlocks.js:100 -msgid "404: Page not found" +#: js/blocks/FlowBlocks.js:661 +msgid "wait for" msgstr "" -#: js/ProgramBlocks.js:133 -msgid "The Save-heap-to-app block saves the heap to a web page." +#: js/blocks/FlowBlocks.js:732 +msgid "The Until block will repeat until the condition is true." msgstr "" -#: js/ProgramBlocks.js:144 -#.TRANS: save the heap contents to a URL -msgid "save heap to App" +#: js/blocks/FlowBlocks.js:740 +msgid "until" msgstr "" -#: js/ProgramBlocks.js:189 -msgid "Cannot find a valid heap for" +#: js/blocks/FlowBlocks.js:742 +#: js/blocks/FlowBlocks.js:822 +msgid "do2" msgstr "" -#: js/ProgramBlocks.js:206 -msgid "The Load-heap block loads the heap from a file." +#: js/blocks/FlowBlocks.js:812 +msgid "The While block will repeat while the condition is true." msgstr "" -#: js/ProgramBlocks.js:217 -#.TRANS: load the heap from a file -msgid "load heap" +#: js/blocks/FlowBlocks.js:820 +msgid "while" msgstr "" -#: js/ProgramBlocks.js:270 -msgid "The file you selected does not contain a valid heap." +#: js/blocks/FlowBlocks.js:903 +#: js/blocks/FlowBlocks.js:968 +#: js/blocks/FlowBlocks.js:979 +msgid "In this example if the mouse button is pressed a snare drum will play." msgstr "" -#: js/ProgramBlocks.js:275 -msgid "The loadHeap block needs a loadFile block." +#: js/blocks/FlowBlocks.js:925 +#: js/blocks/FlowBlocks.js:988 +msgid "if" msgstr "" -#: js/ProgramBlocks.js:291 -msgid "The Set-heap block loads the heap." +#: js/blocks/FlowBlocks.js:927 +#: js/blocks/FlowBlocks.js:990 +msgid "then" msgstr "" -#: js/ProgramBlocks.js:299 -#: js/HeapBlocks.js:539 -#.TRANS: load the heap from a JSON encoding -msgid "set heap" +#: js/blocks/FlowBlocks.js:927 +msgid "else" msgstr "" -#: js/ProgramBlocks.js:340 -msgid "The block you selected does not contain a valid heap." +#: js/blocks/FlowBlocks.js:1025 +msgid "The Forever block will repeat the contained blocks forever." msgstr "" -#: js/ProgramBlocks.js:343 -msgid "The Set heap block needs a heap." +#: js/blocks/FlowBlocks.js:1037 +msgid "forever" msgstr "" -#: js/ProgramBlocks.js:360 -msgid "The Load-dictionary block loads a dictionary from a file." +#: js/blocks/FlowBlocks.js:1073 +msgid "The Repeat block will repeat the contained blocks." msgstr "" -#: js/ProgramBlocks.js:372 -#.TRANS: load a dictionary from a file -msgid "load dictionary" +#: js/blocks/FlowBlocks.js:1075 +msgid "In this example the note will be played 4 times." msgstr "" -#: js/ProgramBlocks.js:390 -#: js/ProgramBlocks.js:658 -#: js/ToneBlocks.js:1025 -msgid "file" +#: js/blocks/FlowBlocks.js:1083 +msgid "repeat" msgstr "" -#: js/ProgramBlocks.js:396 -#: js/ProgramBlocks.js:501 -#: js/ProgramBlocks.js:664 -#: js/DictBlocks.js:80 -#: js/DictBlocks.js:145 -#: js/DictBlocks.js:216 -#: js/DictBlocks.js:290 -msgid "My Dictionary" +#: js/blocks/FlowBlocks.js:1123 +msgid "duplicate factor" msgstr "" -#: js/ProgramBlocks.js:444 -msgid "The file you selected does not contain a valid dictionary." +#: js/blocks/HeapBlocks.js:49 +msgid "The Heap block returns the heap." msgstr "" -#: js/ProgramBlocks.js:449 -msgid "The load dictionary block needs a load file block." +#: js/blocks/HeapBlocks.js:133 +msgid "show heap" msgstr "" -#: js/ProgramBlocks.js:466 -msgid "The Set-dictionary block loads a dictionary." +#: js/blocks/HeapBlocks.js:181 +msgid "The Heap-length block returns the length of the heap." msgstr "" -#: js/ProgramBlocks.js:477 -#.TRANS: load a dictionary from a JSON -msgid "set dictionary" +#: js/blocks/HeapBlocks.js:195 +msgid "heap length" msgstr "" -#: js/ProgramBlocks.js:546 -msgid "The block you selected does not contain a valid dictionary." +#: js/blocks/HeapBlocks.js:254 +msgid "The Heap-empty? block returns true if the heap is empty." msgstr "" -#: js/ProgramBlocks.js:550 -msgid "The set dictionary block needs a dictionary." +#: js/blocks/HeapBlocks.js:268 +#.TRANS: Is the heap empty? +msgid "heap empty?" msgstr "" -#: js/ProgramBlocks.js:567 -msgid "The Save-heap block saves the heap to a file." +#: js/blocks/HeapBlocks.js:317 +msgid "The Empty-heap block empties the heap." msgstr "" -#: js/ProgramBlocks.js:578 -#.TRANS: save the heap to a file -msgid "save heap" +#: js/blocks/HeapBlocks.js:327 +#: js/blocks/HeapBlocks.js:647 +#.TRANS: empty the heap +msgid "empty heap" msgstr "" -#: js/ProgramBlocks.js:629 -msgid "The Save-dictionary block saves a dictionary to a file." +#: js/blocks/HeapBlocks.js:371 +msgid "The Reverse-heap block reverses the order of the heap." msgstr "" -#: js/ProgramBlocks.js:640 -#.TRANS: save a dictionary to a file -msgid "save dictionary" +#: js/blocks/HeapBlocks.js:384 +#.TRANS: reverse the order of the heap +msgid "reverse heap" msgstr "" -#: js/ProgramBlocks.js:720 -msgid "The Open palette block opens a palette." +#: js/blocks/HeapBlocks.js:428 +msgid "The Index-heap block returns a value in the heap at a specified location." msgstr "" -#: js/ProgramBlocks.js:727 -msgid "open palette" +#: js/blocks/HeapBlocks.js:443 +#.TRANS: retrieve a value from the heap at index position in the heap +msgid "index heap" msgstr "" -#: js/ProgramBlocks.js:785 -msgid "The Delete block block removes a block." +#: js/blocks/HeapBlocks.js:523 +msgid "The Set-heap entry block sets a value in he heap at the specified location." msgstr "" -#: js/ProgramBlocks.js:797 -#.TRANS: Move this block to the trash. -msgid "delete block" +#: js/blocks/HeapBlocks.js:539 +#: js/blocks/ProgramBlocks.js:299 +#.TRANS: load the heap from a JSON encoding +msgid "set heap" msgstr "" -#: js/ProgramBlocks.js:861 -msgid "The Move block block moves a block." +#: js/blocks/HeapBlocks.js:619 +msgid "The Pop block removes the value at the top of the heap." msgstr "" -#: js/ProgramBlocks.js:869 -#.TRANS: Move the position of a block on the screen. -msgid "move block" +#: js/blocks/HeapBlocks.js:633 +#.TRANS: pop a value off the top of the heap +msgid "pop" msgstr "" -#: js/ProgramBlocks.js:881 -#: js/ProgramBlocks.js:1048 -msgid "block number" +#: js/blocks/HeapBlocks.js:680 +msgid "The Push block adds a value to the top of the heap." msgstr "" -#: js/ProgramBlocks.js:935 -#.TRANS: Run program beginning at this block. -msgid "run block" +#: js/blocks/HeapBlocks.js:696 +#.TRANS: push a value onto the top of the heap +msgid "push" msgstr "" -#: js/ProgramBlocks.js:1025 -msgid "The Dock block block connections two blocks." +#: js/blocks/IntervalsBlocks.js:45 +msgid "set temperament" msgstr "" -#: js/ProgramBlocks.js:1036 -#.TRANS: We can connect a block to another block. -msgid "connect blocks" +#: js/blocks/IntervalsBlocks.js:63 +#: js/blocks/MediaBlocks.js:746 +#: js/blocks/PitchBlocks.js:657 +#: js/blocks/PitchBlocks.js:935 +#: js/blocks/PitchBlocks.js:974 +#: js/blocks/PitchBlocks.js:1007 +#: js/blocks/PitchBlocks.js:1194 +#: js/blocks/PitchBlocks.js:1717 +#: js/blocks/PitchBlocks.js:1758 +#: js/blocks/PitchBlocks.js:1866 +#: js/blocks/ToneBlocks.js:1025 +#: js/turtleactions/IntervalsActions.js:114 +#.TRANS: adjusts the shift up or down by one octave (twelve half-steps in the interval between two notes, one having twice or half the frequency in Hz of the other.) +msgid "octave" msgstr "" -#: js/ProgramBlocks.js:1048 -msgid "target block" +#: js/blocks/IntervalsBlocks.js:99 +msgid "The Temperament name block is used to select a tuning method." msgstr "" -#: js/ProgramBlocks.js:1048 -msgid "connection number" +#: js/blocks/IntervalsBlocks.js:161 +msgid "doubly" msgstr "" -#: js/ProgramBlocks.js:1140 -msgid "The Make block block creates a new block." +#: js/blocks/IntervalsBlocks.js:166 +msgid "The Doubly block will double the size of an interval." msgstr "" -#: js/ProgramBlocks.js:1152 -#.TRANS: Create a new block -msgid "make block" +#: js/blocks/IntervalsBlocks.js:262 +msgid "interval number" msgstr "" -#: js/ProgramBlocks.js:1186 -#: js/ProgramBlocks.js:1227 -#: js/RhythmBlocks.js:1128 -#: js/PitchBlocks.js:972 -#: js/PitchBlocks.js:1005 -#: js/temperament.js:340 -#: js/temperament.js:362 -#: js/temperament.js:372 -#: js/temperament.js:484 -#: js/status.js:190 -#: plugins/rodi.rtp:192 -#.TRANS: a musical note consisting of pitch and duration -msgid "note" +#: js/blocks/IntervalsBlocks.js:317 +msgid "current interval" msgstr "" -#: js/ProgramBlocks.js:1285 -msgid "Cannot find block" +#: js/blocks/IntervalsBlocks.js:387 +#.TRANS: measure the distance between two pitches in semi-tones +msgid "semi-tone interval measure" msgstr "" -#: js/ProgramBlocks.js:1304 -#: js/ProgramBlocks.js:1313 -msgid "Warning: block argument type mismatch" +#: js/blocks/IntervalsBlocks.js:454 +#: js/blocks/IntervalsBlocks.js:570 +msgid "You must use two pitch blocks when measuring an interval." msgstr "" -#: js/ProgramBlocks.js:1347 -msgid "The Open project block is used to open a project from a web page." +#: js/blocks/IntervalsBlocks.js:496 +msgid "The Scalar interval block measures the distance between two notes in the current key and mode." msgstr "" -#: js/ProgramBlocks.js:1357 -msgid "open project" +#: js/blocks/IntervalsBlocks.js:502 +#.TRANS: measure the distance between two pitches in steps of musical scale +msgid "scalar interval measure" msgstr "" -#: js/ProgramBlocks.js:1410 -msgid "Please enter a valid URL." +#: js/blocks/IntervalsBlocks.js:678 +msgid "In the figure, we add sol# to sol." msgstr "" -#: js/DrumBlocks.js:59 -msgid "The Noise name block is used to select a noise synthesizer." +#: js/blocks/IntervalsBlocks.js:684 +#: js/blocks/OrnamentBlocks.js:220 +#.TRANS: calculate a relative step between notes based on semi-tones +msgid "semi-tone interval" msgstr "" -#: js/DrumBlocks.js:102 -msgid "The Drum name block is used to select a drum." +#: js/blocks/IntervalsBlocks.js:733 +msgid "The output of the example is: do, mi, sol, sol, ti, mi" msgstr "" -#: js/DrumBlocks.js:146 -msgid "The Effects name block is used to select a sound effect." +#: js/blocks/IntervalsBlocks.js:740 +#: js/blocks/WidgetBlocks.js:768 +msgid "arpeggio" msgstr "" -#: js/DrumBlocks.js:163 -msgid "noise" +#: js/blocks/IntervalsBlocks.js:931 +msgid "The Chord block calculates common chords." msgstr "" -#: js/DrumBlocks.js:177 -msgid "The Play noise block will generate white, pink, or brown noise." +#: js/blocks/IntervalsBlocks.js:933 +msgid "In the figure, we generate a C-major chord." msgstr "" -#: js/DrumBlocks.js:191 -#: js/musicutils.js:752 -#: js/synthutils.js:47 -#.TRANS: white noise synthesizer -msgid "white noise" +#: js/blocks/IntervalsBlocks.js:938 +msgid "chord" msgstr "" -#: js/DrumBlocks.js:326 -msgid "Replace every instance of a pitch with a drum sound." +#: js/blocks/IntervalsBlocks.js:990 +msgid "The Ratio Interval block calculates an interval based on a ratio." msgstr "" -#: js/DrumBlocks.js:337 -#.TRANS: map a pitch to a drum sound -msgid "map pitch to drum" +#: js/blocks/IntervalsBlocks.js:995 +msgid "ratio interval" msgstr "" -#: js/DrumBlocks.js:404 -msgid "In the example above, a kick drum sound will be played instead of sol." +#: js/blocks/IntervalsBlocks.js:1064 +msgid "In the figure, we add la to sol." msgstr "" -#: js/DrumBlocks.js:416 -#.TRANS: set the current drum sound for playback -msgid "set drum" +#: js/blocks/IntervalsBlocks.js:1120 +#.TRANS: define a custom mode +msgid "define mode" msgstr "" -#: js/DrumBlocks.js:460 -msgid "sound effect" +#: js/blocks/IntervalsBlocks.js:1173 +msgid "movable Do" msgstr "" -#: js/DrumBlocks.js:498 -msgid "You can use multiple Drum blocks within a Note block." +#: js/blocks/IntervalsBlocks.js:1224 +#.TRANS: mode length is the number of notes in the mode, e.g., 7 for major and minor scales; 12 for chromatic scales +msgid "mode length" msgstr "" -#: js/RhythmBlocks.js:182 -#: js/RhythmBlocks.js:1086 -#: js/RhythmBlocks.js:1162 -msgid "Note value must be greater than 0." +#: js/blocks/IntervalsBlocks.js:1233 +msgid "The Mode length block is the number of notes in the current scale." msgstr "" -#: js/RhythmBlocks.js:215 -#: js/RhythmBlocks.js:278 -#: js/RhythmBlocks.js:350 -#.TRANS: swing is a rhythmic variation that emphasises the offbeat -msgid "swing" +#: js/blocks/IntervalsBlocks.js:1235 +msgid "Most Western scales have 7 notes." msgstr "" -#: js/RhythmBlocks.js:355 -#.TRANS: the amount to shift to the offbeat note -msgid "swing value" +#: js/blocks/IntervalsBlocks.js:1284 +#.TRANS: the mode in music is 'major', 'minor', etc. +msgid "current mode" msgstr "" -#: js/RhythmBlocks.js:419 -msgid "The Skip notes block will cause notes to be skipped." +#: js/blocks/IntervalsBlocks.js:1337 +#.TRANS: the key is a group of pitches with which a music composition is created +msgid "current key" msgstr "" -#: js/RhythmBlocks.js:427 -#.TRANS: substitute rests on notes being skipped -msgid "skip notes" +#: js/blocks/IntervalsBlocks.js:1389 +#: js/blocks/IntervalsBlocks.js:1434 +#.TRANS: set the key and mode, e.g. C Major +msgid "set key" msgstr "" -#: js/RhythmBlocks.js:489 -#.TRANS: speed up note duration by some factor, e.g. convert 1/4 to 1/8 notes by using a factor of 2 -msgid "multiply note value" +#: js/blocks/IntervalsBlocks.js:1443 +#: js/blocks/IntervalsBlocks.js:1449 +msgid "The Set key block is used to set the key and mode," msgstr "" -#: js/RhythmBlocks.js:542 -msgid "The Tie block works on pairs of notes, combining them into one note." +#: js/blocks/IntervalsBlocks.js:1449 +msgid "eg C Major" msgstr "" -#: js/RhythmBlocks.js:550 -#.TRANS: tie notes together into one longer note -msgid "tie" +#: js/blocks/MediaBlocks.js:35 +#.TRANS: right side of the screen +msgid "right (screen)" msgstr "" -#: js/RhythmBlocks.js:591 -#: js/RhythmBlocks.js:671 -#.TRANS: a dotted note is played for 1.5x its value, e.g., 1/8. --> 3/16 -msgid "dot" +#: js/blocks/MediaBlocks.js:45 +#: js/blocks/MediaBlocks.js:56 +msgid "The Right block returns the position of the right of the canvas." msgstr "" -#: js/RhythmBlocks.js:619 -#: js/RhythmActions.js:221 -msgid "An argument of -1 results in a note value of 0." +#: js/blocks/MediaBlocks.js:97 +#.TRANS: left side of the screen +msgid "left (screen)" msgstr "" -#: js/RhythmBlocks.js:661 -msgid "The Dot block extends the duration of a note by 50%." +#: js/blocks/MediaBlocks.js:107 +#: js/blocks/MediaBlocks.js:118 +msgid "The Left block returns the position of the left of the canvas." msgstr "" -#: js/RhythmBlocks.js:663 -msgid "Eg a dotted quarter note will play for 3/8 (1/4 + 1/8) of a beat." +#: js/blocks/MediaBlocks.js:158 +msgid "top (screen)" msgstr "" -#: js/RhythmBlocks.js:765 -#.TRANS: Japanese only: note value block for drum -msgid "note value drum" +#: js/blocks/MediaBlocks.js:168 +#: js/blocks/MediaBlocks.js:179 +msgid "The Top block returns the position of the top of the canvas." msgstr "" -#: js/RhythmBlocks.js:829 -msgid "392 hertz" +#: js/blocks/MediaBlocks.js:219 +msgid "bottom (screen)" msgstr "" -#: js/RhythmBlocks.js:1119 -msgid "The Note block is a container for one or more Pitch blocks." +#: js/blocks/MediaBlocks.js:229 +#: js/blocks/MediaBlocks.js:240 +msgid "The Bottom block returns the position of the bottom of the canvas." msgstr "" -#: js/RhythmBlocks.js:1121 -msgid "The Note block specifies the duration (note value) of its contents." +#: js/blocks/MediaBlocks.js:282 +msgid "width" msgstr "" -#: js/RhythmBlocks.js:1130 -msgid "value2" +#: js/blocks/MediaBlocks.js:291 +msgid "The Width block returns the width of the canvas." msgstr "" -#: js/RhythmBlocks.js:1200 -msgid "define frequency" +#: js/blocks/MediaBlocks.js:325 +msgid "height" msgstr "" -#: js/RhythmBlocks.js:1218 -#: js/temperament.js:650 -#: js/temperament.js:1421 -msgid "octave space" +#: js/blocks/MediaBlocks.js:334 +msgid "The Height block returns the height of the canvas." msgstr "" -#: js/NumberBlocks.js:28 -msgid "The Int block returns an integer." +#: js/blocks/MediaBlocks.js:369 +#.TRANS: stops playback of an audio recording +msgid "stop play" msgstr "" -#: js/NumberBlocks.js:34 -msgid "int" +#: js/blocks/MediaBlocks.js:404 +#.TRANS: Erases the images and text +msgid "erase media" msgstr "" -#: js/NumberBlocks.js:73 -msgid "The Mod block returns the remainder from a division." +#: js/blocks/MediaBlocks.js:409 +msgid "The Erase Media block erases text and images." msgstr "" -#: js/NumberBlocks.js:79 -msgid "mod" +#: js/blocks/MediaBlocks.js:439 +#.TRANS: play an audio recording +msgid "play back" msgstr "" -#: js/NumberBlocks.js:123 -msgid "The Power block calculates a power function." +#: js/blocks/MediaBlocks.js:487 +msgid "speak" msgstr "" -#: js/NumberBlocks.js:178 -msgid "The Sqrt block returns the square root." +#: js/blocks/MediaBlocks.js:495 +msgid "The Speak block outputs to the text-to-speech synthesizer" msgstr "" -#: js/NumberBlocks.js:184 -msgid "sqrt" +#: js/blocks/MediaBlocks.js:546 +msgid "camera" msgstr "" -#: js/NumberBlocks.js:230 -msgid "The Abs block returns the absolute value." +#: js/blocks/MediaBlocks.js:551 +msgid "The Camera block connects a webcam to the Show block." msgstr "" -#: js/NumberBlocks.js:236 -msgid "abs" +#: js/blocks/MediaBlocks.js:574 +msgid "video" msgstr "" -#: js/NumberBlocks.js:277 -msgid "The Distance block returns the distance between two points. For example, between the mouse and the center of the screen." +#: js/blocks/MediaBlocks.js:579 +msgid "The Video block selects video for use with the Show block." msgstr "" -#: js/NumberBlocks.js:283 -#: plugins/rodi.rtp:310 -msgid "distance" +#: js/blocks/MediaBlocks.js:607 +msgid "The Open file block opens a file for use with the Show block." msgstr "" -#: js/NumberBlocks.js:343 -msgid "The Divide block is used to divide." +#: js/blocks/MediaBlocks.js:645 +msgid "stop media" msgstr "" -#: js/NumberBlocks.js:411 -msgid "The Multiply block is used to multiply." +#: js/blocks/MediaBlocks.js:650 +msgid "The Stop media block stops audio or video playback." msgstr "" -#: js/NumberBlocks.js:554 -msgid "The Minus block is used to subtract." +#: js/blocks/MediaBlocks.js:679 +#: js/blocks/PitchBlocks.js:1577 +#: js/widgets/musickeyboard.js:1936 +#: js/widgets/phrasemaker.js:1037 +#.TRANS: a measure of frequency: one cycle per second +msgid "hertz" msgstr "" -#: js/NumberBlocks.js:647 -msgid "The Plus block is used to add." +#: js/blocks/MediaBlocks.js:692 +#: js/blocks/WidgetBlocks.js:182 +#: js/widgets/temperament.js:506 +#: js/widgets/temperament.js:546 +#: js/widgets/temperament.js:610 +#: js/widgets/temperament.js:618 +#: js/widgets/temperament.js:1505 +#: js/widgets/timbre.js:1842 +msgid "frequency" msgstr "" -#: js/NumberBlocks.js:773 -msgid "The One-of block returns one of two choices." +#: js/blocks/MediaBlocks.js:692 +msgid "duration (ms)" msgstr "" -#: js/NumberBlocks.js:780 -#: js/PitchBlocks.js:616 -msgid "one of" +#: js/blocks/MediaBlocks.js:728 +#.TRANS: translate a note into hertz, e.g., A4 -> 440HZ +msgid "note to frequency" msgstr "" -#: js/NumberBlocks.js:782 -msgid "this" +#: js/blocks/MediaBlocks.js:736 +msgid "The To frequency block converts a pitch name and octave to Hertz." msgstr "" -#: js/NumberBlocks.js:782 -msgid "that" +#: js/blocks/MediaBlocks.js:746 +#: js/blocks/PitchBlocks.js:656 +#: js/blocks/PitchBlocks.js:934 +#: js/blocks/PitchBlocks.js:1866 +#.TRANS: name2 is name as in name of pitch (JAPANESE ONLY) +msgid "name2" msgstr "" -#: js/NumberBlocks.js:837 -msgid "The Random block returns a random number." +#: js/blocks/MediaBlocks.js:812 +msgid "The Avatar block is used to change the appearance of the mouse." msgstr "" -#: js/NumberBlocks.js:844 -msgid "random" +#: js/blocks/MediaBlocks.js:819 +msgid "The Avatar block is used to change the appearance of the turtle." msgstr "" -#: js/NumberBlocks.js:846 -msgid "min" +#: js/blocks/MediaBlocks.js:831 +#: js/blocks/MediaBlocks.js:891 +#.TRANS: a media object +msgid "size" msgstr "" -#: js/NumberBlocks.js:846 -msgid "max" +#: js/blocks/MediaBlocks.js:831 +msgid "image" msgstr "" -#: js/NumberBlocks.js:910 -msgid "The Number block holds a number." +#: js/blocks/MediaBlocks.js:880 +msgid "The Show block is used to display text or images on the canvas." msgstr "" -#: js/BoxesBlocks.js:53 -#: js/BoxesBlocks.js:59 -msgid "The Add-to block is used to add to the value stored in a box." +#: js/blocks/MediaBlocks.js:888 +#.TRANS: show1 is show as in display an image or text on the screen. +msgid "show1" msgstr "" -#: js/BoxesBlocks.js:61 -msgid "It can also be used with other blocks such as Color and Pen size." +#: js/blocks/MediaBlocks.js:891 +msgid "obj" msgstr "" -#: js/BoxesBlocks.js:73 -msgid "add" +#: js/blocks/MediaBlocks.js:938 +msgid "The Media block is used to import an image." msgstr "" -#: js/BoxesBlocks.js:75 -#: js/temperament.js:716 -msgid "to" +#: js/blocks/MediaBlocks.js:973 +msgid "The Text block holds a text string." msgstr "" -#: js/BoxesBlocks.js:75 -#: js/BoxesBlocks.js:595 -#: js/HeapBlocks.js:544 -msgid "value1" +#: js/blocks/MeterBlocks.js:34 +#.TRANS: musical meter (time signature), e.g., 4:4 +msgid "current meter" msgstr "" -#: js/BoxesBlocks.js:118 -msgid "Block does not support incrementing." +#: js/blocks/MeterBlocks.js:85 +#.TRANS: number of beats per minute +msgid "beat factor" msgstr "" -#: js/BoxesBlocks.js:152 -msgid "The Add-1-to block adds one to the value stored in a box." +#: js/blocks/MeterBlocks.js:161 +msgid "The Beats per minute block returns the current beats per minute." msgstr "" -#: js/BoxesBlocks.js:163 -msgid "add 1 to" +#: js/blocks/MeterBlocks.js:169 +#: js/widgets/status.js:152 +#.TRANS: number of beats played per minute +msgid "beats per minute2" msgstr "" -#: js/BoxesBlocks.js:211 -msgid "The Subtract-1-from block subtracts one from the value stored in a box." +#: js/blocks/MeterBlocks.js:169 +#: js/blocks/MeterBlocks.js:1056 +#: js/blocks/MeterBlocks.js:1133 +#: js/blocks/MeterBlocks.js:1211 +#.TRANS: sets tempo by defining a beat and beats per minute +msgid "beats per minute" msgstr "" -#: js/BoxesBlocks.js:222 -msgid "subtract 1 from" +#: js/blocks/MeterBlocks.js:233 +#.TRANS: count of current musical measure in meter +msgid "measure count" msgstr "" -#: js/BoxesBlocks.js:270 -#: js/BoxesBlocks.js:387 -msgid "The Box block returns the value stored in a box." +#: js/blocks/MeterBlocks.js:241 +msgid "The Measure count block returns the current measure." msgstr "" -#: js/BoxesBlocks.js:500 -#: js/BoxesBlocks.js:576 -msgid "The Store in block will store a value in a box." +#: js/blocks/MeterBlocks.js:290 +#.TRANS: count of current beat in the meter +msgid "beat count" msgstr "" -#: js/BoxesBlocks.js:652 -msgid "The Box2 block returns the value stored in Box2." +#: js/blocks/MeterBlocks.js:300 +#: js/blocks/MeterBlocks.js:311 +#: js/blocks/MeterBlocks.js:565 +#: js/blocks/MeterBlocks.js:576 +msgid "The Beat count block is the number of the current beat," msgstr "" -#: js/BoxesBlocks.js:703 -msgid "The Store in Box2 block is used to store a value in Box2." +#: js/blocks/MeterBlocks.js:313 +#: js/blocks/MeterBlocks.js:578 +msgid "eg 1, 2, 3, or 4." msgstr "" -#: js/BoxesBlocks.js:715 -msgid "store in box2" +#: js/blocks/MeterBlocks.js:368 +#.TRANS: count the number of notes +msgid "sum note values" msgstr "" -#: js/BoxesBlocks.js:761 -msgid "The Box1 block returns the value stored in Box1." +#: js/blocks/MeterBlocks.js:376 +#: js/blocks/MeterBlocks.js:440 +msgid "The Note counter block can be used to count the number of contained notes." msgstr "" -#: js/BoxesBlocks.js:812 -msgid "The Store in Box1 block is used to store a value in Box1." +#: js/blocks/MeterBlocks.js:432 +#.TRANS: count the number of notes +msgid "note counter" msgstr "" -#: js/BoxesBlocks.js:826 -msgid "store in box1" +#: js/blocks/MeterBlocks.js:496 +#.TRANS: number of whole notes that have been played +msgid "whole notes played" msgstr "" -#: js/HeapBlocks.js:49 -msgid "The Heap block returns the heap." +#: js/blocks/MeterBlocks.js:505 +msgid "The Whole notes played block returns the total number of whole notes played." msgstr "" -#: js/HeapBlocks.js:133 -msgid "show heap" +#: js/blocks/MeterBlocks.js:555 +#: js/turtleactions/DictActions.js:83 +#.TRANS: number of notes that have been played +msgid "notes played" msgstr "" -#: js/HeapBlocks.js:181 -msgid "The Heap-length block returns the length of the heap." +#: js/blocks/MeterBlocks.js:653 +msgid "The No clock block decouples the notes from the master clock." msgstr "" -#: js/HeapBlocks.js:195 -msgid "heap length" +#: js/blocks/MeterBlocks.js:661 +#.TRANS: don't lock notes to master clock +msgid "no clock" msgstr "" -#: js/HeapBlocks.js:254 -msgid "The Heap-empty? block returns true if the heap is empty." +#: js/blocks/MeterBlocks.js:700 +msgid "on weak beat do" msgstr "" -#: js/HeapBlocks.js:268 -#.TRANS: Is the heap empty? -msgid "heap empty?" +#: js/blocks/MeterBlocks.js:705 +msgid "The On-weak-beat block lets you specify actions to take on weak (off) beats." msgstr "" -#: js/HeapBlocks.js:317 -msgid "The Empty-heap block empties the heap." +#: js/blocks/MeterBlocks.js:750 +msgid "on strong beat" msgstr "" -#: js/HeapBlocks.js:327 -#: js/HeapBlocks.js:647 -#.TRANS: empty the heap -msgid "empty heap" +#: js/blocks/MeterBlocks.js:758 +msgid "The On-strong-beat block lets you specify actions to take on specified beats." msgstr "" -#: js/HeapBlocks.js:371 -msgid "The Reverse-heap block reverses the order of the heap." +#: js/blocks/MeterBlocks.js:769 +msgid "beat" msgstr "" -#: js/HeapBlocks.js:384 -#.TRANS: reverse the order of the heap -msgid "reverse heap" +#: js/blocks/MeterBlocks.js:813 +msgid "on every beat do" msgstr "" -#: js/HeapBlocks.js:428 -msgid "The Index-heap block returns a value in the heap at a specified location." +#: js/blocks/MeterBlocks.js:821 +msgid "The On-every-beat block lets you specify actions to take on every beat." msgstr "" -#: js/HeapBlocks.js:443 -#.TRANS: retrieve a value from the heap at index position in the heap -msgid "index heap" +#: js/blocks/MeterBlocks.js:874 +msgid "on every note do" msgstr "" -#: js/HeapBlocks.js:523 -msgid "The Set-heap entry block sets a value in he heap at the specified location." +#: js/blocks/MeterBlocks.js:882 +msgid "The On-every-note block lets you specify actions to take on every note." msgstr "" -#: js/HeapBlocks.js:619 -msgid "The Pop block removes the value at the top of the heap." +#: js/blocks/MeterBlocks.js:928 +#: js/blocks/MeterBlocks.js:999 +#.TRANS: sets tempo by defining a beat and beats per minute +msgid "master beats per minute" msgstr "" -#: js/HeapBlocks.js:633 -#.TRANS: pop a value off the top of the heap -msgid "pop" +#: js/blocks/MeterBlocks.js:952 +#: js/blocks/MeterBlocks.js:1078 +#: js/blocks/MeterBlocks.js:1135 +msgid "bpm" msgstr "" -#: js/HeapBlocks.js:680 -msgid "The Push block adds a value to the top of the heap." +#: js/blocks/MeterBlocks.js:952 +#: js/blocks/MeterBlocks.js:1078 +#: js/blocks/MeterBlocks.js:1135 +msgid "beat value" msgstr "" -#: js/HeapBlocks.js:696 -#.TRANS: push a value onto the top of the heap -msgid "push" +#: js/blocks/MeterBlocks.js:1024 +#: js/blocks/MeterBlocks.js:1167 +#: js/blocks/MeterBlocks.js:1241 +msgid "Beats per minute must be > 30." msgstr "" -#: js/FlowBlocks.js:41 -msgid "The Backward block runs code in reverse order (Musical retrograde)." +#: js/blocks/MeterBlocks.js:1027 +#: js/blocks/MeterBlocks.js:1170 +#: js/blocks/MeterBlocks.js:1244 +msgid "Maximum beats per minute is 1000." msgstr "" -#: js/FlowBlocks.js:48 -msgid "backward" +#: js/blocks/MeterBlocks.js:1068 +msgid "The Beats per minute block sets the number of 1/4 notes per minute." msgstr "" -#: js/FlowBlocks.js:124 -msgid "The Duplicate block will run each block multiple times." +#: js/blocks/MeterBlocks.js:1279 +#.TRANS: anacrusis +msgid "pickup" msgstr "" -#: js/FlowBlocks.js:136 -msgid "duplicate" +#: js/blocks/MeterBlocks.js:1367 +msgid "number of beats" msgstr "" -#: js/FlowBlocks.js:334 -msgid "The Default block is used inside of a Switch to define the default action." +#: js/blocks/NumberBlocks.js:28 +msgid "The Int block returns an integer." msgstr "" -#: js/FlowBlocks.js:342 -msgid "default" +#: js/blocks/NumberBlocks.js:34 +msgid "int" msgstr "" -#: js/FlowBlocks.js:361 -#: js/FlowBlocks.js:418 -msgid "The Case Block must be used inside of a Switch Block." +#: js/blocks/NumberBlocks.js:73 +msgid "The Mod block returns the remainder from a division." msgstr "" -#: js/FlowBlocks.js:389 -msgid "The Case block is used inside of a Switch to define matches." +#: js/blocks/NumberBlocks.js:79 +msgid "mod" msgstr "" -#: js/FlowBlocks.js:397 -msgid "case" +#: js/blocks/NumberBlocks.js:141 +msgid "The Power block calculates a power function." msgstr "" -#: js/FlowBlocks.js:446 -msgid "The Switch block will run the code in the matching Case." +#: js/blocks/NumberBlocks.js:196 +msgid "The Sqrt block returns the square root." msgstr "" -#: js/FlowBlocks.js:454 -msgid "switch" +#: js/blocks/NumberBlocks.js:202 +msgid "sqrt" msgstr "" -#: js/FlowBlocks.js:595 -msgid "The Stop block will stop a loop" +#: js/blocks/NumberBlocks.js:248 +msgid "The Abs block returns the absolute value." msgstr "" -#: js/FlowBlocks.js:597 -msgid "Forever, Repeat, While, or Until." +#: js/blocks/NumberBlocks.js:254 +msgid "abs" msgstr "" -#: js/FlowBlocks.js:604 -#: js/phrasemaker.js:3799 -#: js/musickeyboard.js:629 -#: js/musickeyboard.js:631 -#: js/timbre.js:417 -#: js/timbre.js:419 -#: plugins/rodi.rtp:29 -#: plugins/rodi.rtp:73 -#: plugins/rodi.rtp:413 -msgid "stop" +#: js/blocks/NumberBlocks.js:295 +msgid "The Distance block returns the distance between two points. For example, between the mouse and the center of the screen." msgstr "" -#: js/FlowBlocks.js:653 -msgid "The Waitfor block will wait until the condition is true." +#: js/blocks/NumberBlocks.js:301 +#: plugins/rodi.rtp:310 +msgid "distance" msgstr "" -#: js/FlowBlocks.js:661 -msgid "wait for" +#: js/blocks/NumberBlocks.js:361 +msgid "The Divide block is used to divide." msgstr "" -#: js/FlowBlocks.js:732 -msgid "The Until block will repeat until the condition is true." +#: js/blocks/NumberBlocks.js:441 +msgid "The Multiply block is used to multiply." msgstr "" -#: js/FlowBlocks.js:740 -msgid "until" +#: js/blocks/NumberBlocks.js:612 +msgid "The Minus block is used to subtract." msgstr "" -#: js/FlowBlocks.js:742 -#: js/FlowBlocks.js:822 -msgid "do2" +#: js/blocks/NumberBlocks.js:723 +msgid "The Plus block is used to add." msgstr "" -#: js/FlowBlocks.js:812 -msgid "The While block will repeat while the condition is true." +#: js/blocks/NumberBlocks.js:849 +msgid "The One-of block returns one of two choices." msgstr "" -#: js/FlowBlocks.js:820 -msgid "while" +#: js/blocks/NumberBlocks.js:856 +#: js/blocks/PitchBlocks.js:616 +msgid "one of" msgstr "" -#: js/FlowBlocks.js:903 -#: js/FlowBlocks.js:968 -#: js/FlowBlocks.js:979 -msgid "In this example if the mouse button is pressed a snare drum will play." +#: js/blocks/NumberBlocks.js:858 +msgid "this" msgstr "" -#: js/FlowBlocks.js:925 -#: js/FlowBlocks.js:988 -msgid "if" +#: js/blocks/NumberBlocks.js:858 +msgid "that" msgstr "" -#: js/FlowBlocks.js:927 -#: js/FlowBlocks.js:990 -msgid "then" +#: js/blocks/NumberBlocks.js:913 +msgid "The Random block returns a random number." msgstr "" -#: js/FlowBlocks.js:927 -msgid "else" +#: js/blocks/NumberBlocks.js:920 +msgid "random" msgstr "" -#: js/FlowBlocks.js:1025 -msgid "The Forever block will repeat the contained blocks forever." +#: js/blocks/NumberBlocks.js:922 +msgid "min" msgstr "" -#: js/FlowBlocks.js:1037 -msgid "forever" +#: js/blocks/NumberBlocks.js:922 +msgid "max" msgstr "" -#: js/FlowBlocks.js:1073 -msgid "The Repeat block will repeat the contained blocks." +#: js/blocks/NumberBlocks.js:986 +msgid "The Number block holds a number." msgstr "" -#: js/FlowBlocks.js:1075 -msgid "In this example the note will be played 4 times." +#: js/blocks/OrnamentBlocks.js:32 +msgid "staccato factor" msgstr "" -#: js/FlowBlocks.js:1083 -msgid "repeat" +#: js/blocks/OrnamentBlocks.js:108 +msgid "slur factor" msgstr "" -#: js/FlowBlocks.js:1123 -msgid "duplicate factor" +#: js/blocks/OrnamentBlocks.js:217 +#: js/blocks/OrnamentBlocks.js:309 +#.TRANS: the neighbor refers to a neighboring note, e.g., D is a neighbor of C +msgid "neighbor" msgstr "" -#: js/PitchBlocks.js:39 -#: js/musicutils.js:722 -#: js/musicutils.js:1117 -#: js/synthutils.js:112 -#.TRANS: square wave -msgid "square" +#: js/blocks/OrnamentBlocks.js:293 +msgid "The Neighbor block rapidly switches between neighboring pitches." msgstr "" -#: js/PitchBlocks.js:62 -#: js/ToneBlocks.js:39 -#: js/musicutils.js:723 -#: js/musicutils.js:1118 -#: js/synthutils.js:116 -#.TRANS: triangle wave -msgid "triangle" +#: js/blocks/OrnamentBlocks.js:364 +msgid "glide" msgstr "" -#: js/PitchBlocks.js:85 -#: js/musicutils.js:721 -#: js/musicutils.js:1116 -#: js/synthutils.js:110 -#.TRANS: sine wave -msgid "sine" +#: js/blocks/OrnamentBlocks.js:479 +#: js/blocks/OrnamentBlocks.js:643 +msgid "slur" msgstr "" -#: js/PitchBlocks.js:108 -#: js/musicutils.js:724 -#: js/musicutils.js:1119 -#: js/synthutils.js:114 -#.TRANS: sawtooth wave -msgid "sawtooth" +#: js/blocks/OrnamentBlocks.js:558 +#: js/blocks/OrnamentBlocks.js:710 +#.TRANS: play each note sharply detached from the others +msgid "staccato" msgstr "" -#: js/PitchBlocks.js:141 -#.TRANS: musical transposition (adjustment of pitch up or down) -msgid "transposition" +#: js/blocks/RhythmBlocks.js:182 +#: js/blocks/RhythmBlocks.js:1086 +#: js/blocks/RhythmBlocks.js:1162 +msgid "Note value must be greater than 0." msgstr "" -#: js/PitchBlocks.js:168 -#.TRANS: step down one note in current musical scale -msgid "scalar step down" +#: js/blocks/RhythmBlocks.js:215 +#: js/blocks/RhythmBlocks.js:278 +#: js/blocks/RhythmBlocks.js:350 +#.TRANS: swing is a rhythmic variation that emphasises the offbeat +msgid "swing" msgstr "" -#: js/PitchBlocks.js:172 -msgid "The Scalar step down block returns the number of semi-tones down to the previous note in the current key and mode." +#: js/blocks/RhythmBlocks.js:355 +#.TRANS: the amount to shift to the offbeat note +msgid "swing value" msgstr "" -#: js/PitchBlocks.js:190 -#.TRANS: step up one note in current musical scale -msgid "scalar step up" +#: js/blocks/RhythmBlocks.js:419 +msgid "The Skip notes block will cause notes to be skipped." msgstr "" -#: js/PitchBlocks.js:194 -msgid "The Scalar step up block returns the number of semi-tones up to the next note in the current key and mode." +#: js/blocks/RhythmBlocks.js:427 +#.TRANS: substitute rests on notes being skipped +msgid "skip notes" msgstr "" -#: js/PitchBlocks.js:212 -#.TRANS: the change measured in half-steps between the current pitch and the previous pitch -msgid "change in pitch" +#: js/blocks/RhythmBlocks.js:489 +#.TRANS: speed up note duration by some factor, e.g. convert 1/4 to 1/8 notes by using a factor of 2 +msgid "multiply note value" msgstr "" -#: js/PitchBlocks.js:216 -msgid "The Change in pitch block is the difference (in half steps) between the current pitch being played and the previous pitch played." +#: js/blocks/RhythmBlocks.js:542 +msgid "The Tie block works on pairs of notes, combining them into one note." msgstr "" -#: js/PitchBlocks.js:243 -#.TRANS: the change measured in scale-steps between the current pitch and the previous pitch -msgid "scalar change in pitch" +#: js/blocks/RhythmBlocks.js:550 +#.TRANS: tie notes together into one longer note +msgid "tie" msgstr "" -#: js/PitchBlocks.js:250 -#: js/PitchBlocks.js:432 -#: js/PitchBlocks.js:1629 -#: js/DictActions.js:89 -#: js/temperament.js:477 -#: js/temperament.js:481 -#: js/temperament.js:714 -#.TRANS: convert current note to piano key (1-88) -#.TRANS: a mapping of pitch to the 88 piano keys -msgid "pitch number" +#: js/blocks/RhythmBlocks.js:591 +#: js/blocks/RhythmBlocks.js:671 +#.TRANS: a dotted note is played for 1.5x its value, e.g., 1/8. --> 3/16 +msgid "dot" msgstr "" -#: js/PitchBlocks.js:256 -msgid "The Pitch number block is the value of the pitch of the note currently being played." +#: js/blocks/RhythmBlocks.js:619 +#: js/turtleactions/RhythmActions.js:221 +msgid "An argument of -1 results in a note value of 0." msgstr "" -#: js/PitchBlocks.js:329 -#: js/PitchBlocks.js:433 -#.TRANS: the current pitch expressed in Hertz -msgid "pitch in hertz" +#: js/blocks/RhythmBlocks.js:661 +msgid "The Dot block extends the duration of a note by 50%." msgstr "" -#: js/PitchBlocks.js:334 -msgid "The Pitch in Hertz block is the value in Hertz of the pitch of the note currently being played." +#: js/blocks/RhythmBlocks.js:663 +msgid "Eg a dotted quarter note will play for 3/8 (1/4 + 1/8) of a beat." msgstr "" -#: js/PitchBlocks.js:367 -#: js/DictActions.js:87 -msgid "current pitch" +#: js/blocks/RhythmBlocks.js:765 +#.TRANS: Japanese only: note value block for drum +msgid "note value drum" msgstr "" -#: js/PitchBlocks.js:373 -msgid "The Current Pitch block is used with the Pitch Converter block. In the example above, current pitch, sol 4, is displayed as 392 hertz." +#: js/blocks/RhythmBlocks.js:829 +msgid "392 hertz" msgstr "" -#: js/PitchBlocks.js:410 -msgid "This block converts the pitch value of the last note played into different formats such as hertz, letter name, pitch number, et al." +#: js/blocks/RhythmBlocks.js:1119 +msgid "The Note block is a container for one or more Pitch blocks." msgstr "" -#: js/PitchBlocks.js:434 -msgid "alphabet" +#: js/blocks/RhythmBlocks.js:1121 +msgid "The Note block specifies the duration (note value) of its contents." msgstr "" -#: js/PitchBlocks.js:436 -#.TRANS: Translate as "alphabet class" -msgid "letter class" +#: js/blocks/RhythmBlocks.js:1128 +#: js/blocks/PitchBlocks.js:974 +#: js/blocks/PitchBlocks.js:1007 +#: js/blocks/ProgramBlocks.js:1186 +#: js/blocks/ProgramBlocks.js:1227 +#: js/widgets/status.js:190 +#: js/widgets/temperament.js:464 +#: js/widgets/temperament.js:486 +#: js/widgets/temperament.js:496 +#: js/widgets/temperament.js:617 +#: plugins/rodi.rtp:192 +#.TRANS: a musical note consisting of pitch and duration +msgid "note" msgstr "" -#: js/PitchBlocks.js:437 -msgid "solfege class" +#: js/blocks/RhythmBlocks.js:1130 +msgid "value2" msgstr "" -#: js/PitchBlocks.js:438 -msgid "staff y" +#: js/blocks/RhythmBlocks.js:1200 +msgid "define frequency" msgstr "" -#: js/PitchBlocks.js:439 -msgid "solfege syllable" +#: js/blocks/RhythmBlocks.js:1218 +#: js/widgets/temperament.js:787 +#: js/widgets/temperament.js:1587 +msgid "octave space" msgstr "" -#: js/PitchBlocks.js:440 -msgid "pitch class" +#: js/blocks/SensorsBlocks.js:36 +msgid "The Input block prompts for keyboard input." msgstr "" -#: js/PitchBlocks.js:441 -msgid "scalar class" +#: js/blocks/SensorsBlocks.js:46 +msgid "input" msgstr "" -#: js/PitchBlocks.js:443 -msgid "nth degree" +#: js/blocks/SensorsBlocks.js:64 +msgid "Input a value" msgstr "" -#: js/PitchBlocks.js:444 -msgid "pitch to shade" +#: js/blocks/SensorsBlocks.js:126 +msgid "input value" msgstr "" -#: js/PitchBlocks.js:445 -msgid "pitch to color" +#: js/blocks/SensorsBlocks.js:131 +msgid "The Input-value block stores the input." msgstr "" -#: js/PitchBlocks.js:629 -#: js/musickeyboard.js:565 -#.TRANS: MIDI is a technical standard for electronic music -msgid "MIDI" +#: js/blocks/SensorsBlocks.js:238 +msgid "loudness" msgstr "" -#: js/PitchBlocks.js:642 -#.TRANS: set an offset associated with the numeric piano keyboard mapping -msgid "set pitch number offset" +#: js/blocks/SensorsBlocks.js:245 +msgid "The Loudness block returns the volume detected by the microphone." msgstr "" -#: js/PitchBlocks.js:645 -msgid "The Set pitch number offset block is used to set the offset for mapping pitch numbers to pitch and octave." +#: js/blocks/SensorsBlocks.js:300 +msgid "click" msgstr "" -#: js/PitchBlocks.js:679 -#.TRANS: convert piano key number (1-88) to pitch -msgid "number to pitch" +#: js/blocks/SensorsBlocks.js:306 +msgid "The Click block triggers an event if a mouse has been clicked." msgstr "" -#: js/PitchBlocks.js:682 -msgid "The Number to pitch block will convert a pitch number to a pich name." +#: js/blocks/SensorsBlocks.js:313 +msgid "The Click block triggers an event if a turtle has been clicked." msgstr "" -#: js/PitchBlocks.js:715 -#.TRANS: convert piano key number (1-88) to octave -msgid "number to octave" +#: js/blocks/SensorsBlocks.js:342 +msgid "cursor over" msgstr "" -#: js/PitchBlocks.js:717 -msgid "The Number to octave block will convert a pitch number to an octave." +#: js/blocks/SensorsBlocks.js:387 +msgid "cursor out" msgstr "" -#: js/PitchBlocks.js:726 -msgid "y to pitch" +#: js/blocks/SensorsBlocks.js:433 +msgid "cursor button down" msgstr "" -#: js/PitchBlocks.js:729 -msgid "Y to pitch block will convert a staff y position to corresponding pitch notation." +#: js/blocks/SensorsBlocks.js:477 +msgid "cursor button up" msgstr "" -#: js/PitchBlocks.js:841 -msgid "accidental selector" +#: js/blocks/SensorsBlocks.js:521 +#: js/blocks/PenBlocks.js:48 +#: plugins/rodi.rtp:219 +msgid "blue" msgstr "" -#: js/PitchBlocks.js:844 -msgid "The Accidental selector block is used to choose between double-sharp, sharp, natural, flat, and double-flat." +#: js/blocks/SensorsBlocks.js:577 +#: js/blocks/PenBlocks.js:64 +#: plugins/rodi.rtp:218 +msgid "green" msgstr "" -#: js/PitchBlocks.js:858 -msgid "Pitch can be specified in terms of ni dha pa ma ga re sa." +#: js/blocks/SensorsBlocks.js:633 +#: js/blocks/PenBlocks.js:112 +#: plugins/rodi.rtp:217 +msgid "red" msgstr "" -#: js/PitchBlocks.js:872 -msgid "Pitch can be specified in terms of C D E F G A B." +#: js/blocks/SensorsBlocks.js:638 +msgid "The Get red block returns the red component of the pixel under the mouse." msgstr "" -#: js/PitchBlocks.js:883 -msgid "solfege" +#: js/blocks/SensorsBlocks.js:644 +msgid "The Get red block returns the red component of the pixel under the turtle." msgstr "" -#: js/PitchBlocks.js:886 -msgid "Pitch can be specified in terms of do re mi fa sol la ti." +#: js/blocks/SensorsBlocks.js:685 +#: plugins/rodi.rtp:216 +msgid "pixel color" msgstr "" -#: js/PitchBlocks.js:920 -msgid "The Invert block rotates any contained notes around a target note." +#: js/blocks/SensorsBlocks.js:690 +msgid "The Get pixel block returns the color of the pixel under the mouse." msgstr "" -#: js/PitchBlocks.js:927 -#.TRANS: pitch inversion rotates a pitch around another pitch -msgid "invert" +#: js/blocks/SensorsBlocks.js:696 +msgid "The Get pixel block returns the color of the pixel under the turtle." msgstr "" -#: js/PitchBlocks.js:929 -#: js/PitchBlocks.js:935 -#: js/PitchActions.js:727 -#: js/musicutils.js:726 -#: js/musicutils.js:902 -#.TRANS: invert based on even or odd number or musical scale -#.TRANS: even numbers -msgid "even" +#: js/blocks/SensorsBlocks.js:758 +msgid "time" msgstr "" -#: js/PitchBlocks.js:935 -#: js/PitchActions.js:729 -#: js/musicutils.js:728 -#: js/musicutils.js:903 -#.TRANS: odd numbers -msgid "odd" +#: js/blocks/SensorsBlocks.js:804 +msgid "cursor y" msgstr "" -#: js/PitchBlocks.js:935 -#: js/PitchActions.js:731 -#: js/musicutils.js:729 -#: js/musicutils.js:904 -msgid "scalar" +#: js/blocks/SensorsBlocks.js:809 +msgid "The Cursor Y block returns the vertical position of the mouse." msgstr "" -#: js/PitchBlocks.js:966 -#.TRANS: pitch inversion rotates a pitch around another pitch (odd number) -msgid "invert (odd)" +#: js/blocks/SensorsBlocks.js:845 +msgid "cursor x" msgstr "" -#: js/PitchBlocks.js:999 -#.TRANS: pitch inversion rotates a pitch around another pitch (even number) -msgid "invert (even)" +#: js/blocks/SensorsBlocks.js:850 +msgid "The Cursor X block returns the horizontal position of the mouse." msgstr "" -#: js/PitchBlocks.js:1020 -#.TRANS: register is the octave of the current pitch -msgid "register" +#: js/blocks/SensorsBlocks.js:886 +msgid "mouse button" msgstr "" -#: js/PitchBlocks.js:1024 -msgid "The Register block provides an easy way to modify the register (octave) of the notes that follow it." +#: js/blocks/SensorsBlocks.js:888 +msgid "The Mouse-button block returns True if the mouse button is pressed." msgstr "" -#: js/PitchBlocks.js:1074 -msgid "The Semi-tone transposition block will shift the pitches contained inside Note blocks up (or down) by half steps." +#: js/blocks/SensorsBlocks.js:934 +msgid "to ASCII" msgstr "" -#: js/PitchBlocks.js:1076 -msgid "In the example shown above, sol is shifted up to sol#." +#: js/blocks/SensorsBlocks.js:938 +msgid "The To ASCII block converts numbers to letters." msgstr "" -#: js/PitchBlocks.js:1082 -#.TRANS: adjust the amount of shift (up or down) of a pitch -msgid "semi-tone transpose" +#: js/blocks/SensorsBlocks.js:1005 +msgid "The Keyboard block returns computer keyboard input." msgstr "" -#: js/PitchBlocks.js:1115 -msgid "The Transpose by Ratio block will shift the pitches contained inside Note blocks up (or down) by a ratio" +#: js/blocks/RhythmBlockPaletteBlocks.js:50 +#: js/blocks/RhythmBlockPaletteBlocks.js:233 +#.TRANS: rhythm block +#.TRANS: translate "rhythm1" as rhythm +msgid "rhythm1" msgstr "" -#: js/PitchBlocks.js:1121 -#.TRANS: adjust the amount of shift (up or down) of a pitch -msgid "transpose by ratio" +#: js/blocks/RhythmBlockPaletteBlocks.js:70 +#: js/blocks/RhythmBlockPaletteBlocks.js:252 +#: js/blocks/RhythmBlockPaletteBlocks.js:485 +#: js/blocks/RhythmBlockPaletteBlocks.js:554 +#: js/blocks/RhythmBlockPaletteBlocks.js:875 +msgid "number of notes" msgstr "" -#: js/PitchBlocks.js:1204 -#.TRANS: down sixth means the note is five scale degrees below current note -msgid "down sixth" +#: js/blocks/RhythmBlockPaletteBlocks.js:126 +msgid "polyphonic rhythm" msgstr "" -#: js/PitchBlocks.js:1223 -#.TRANS: down third means the note is two scale degrees below current note -msgid "down third" +#: js/blocks/RhythmBlockPaletteBlocks.js:219 +msgid "The Rhythm block is used to generate rhythm patterns." msgstr "" -#: js/PitchBlocks.js:1242 -#.TRANS: seventh means the note is the six scale degrees above current note -msgid "seventh" +#: js/blocks/RhythmBlockPaletteBlocks.js:280 +msgid "1/64 note" msgstr "" -#: js/PitchBlocks.js:1261 -#.TRANS: sixth means the note is the five scale degrees above current note -msgid "sixth" +#: js/blocks/RhythmBlockPaletteBlocks.js:304 +msgid "1/32 note" msgstr "" -#: js/PitchBlocks.js:1280 -#.TRANS: fifth means the note is the four scale degrees above current note -msgid "fifth" +#: js/blocks/RhythmBlockPaletteBlocks.js:332 +msgid "1/16 note" msgstr "" -#: js/PitchBlocks.js:1300 -#.TRANS: fourth means the note is three scale degrees above current note -msgid "fourth" +#: js/blocks/RhythmBlockPaletteBlocks.js:360 +msgid "eighth note" msgstr "" -#: js/PitchBlocks.js:1319 -#.TRANS: third means the note is two scale degrees above current note -msgid "third" +#: js/blocks/RhythmBlockPaletteBlocks.js:388 +msgid "quarter note" msgstr "" -#: js/PitchBlocks.js:1338 -#.TRANS: second means the note is one scale degree above current note -msgid "second" +#: js/blocks/RhythmBlockPaletteBlocks.js:416 +msgid "half note" msgstr "" -#: js/PitchBlocks.js:1379 -msgid "The Scalar transposition block will shift the pitches contained inside Note blocks up (or down) the scale." +#: js/blocks/RhythmBlockPaletteBlocks.js:444 +msgid "whole note" msgstr "" -#: js/PitchBlocks.js:1381 -msgid "In the example shown above, sol is shifted up to la." +#: js/blocks/RhythmBlockPaletteBlocks.js:482 +#: js/blocks/RhythmBlockPaletteBlocks.js:551 +#: js/blocks/RhythmBlockPaletteBlocks.js:602 +#.TRANS: A tuplet is a note value divided into irregular time values. +msgid "tuplet" msgstr "" -#: js/PitchBlocks.js:1388 -#.TRANS: adjust the amount of shift (up or down) of a pitch by musical scale (scalar) steps -msgid "scalar transpose" +#: js/blocks/RhythmBlockPaletteBlocks.js:768 +msgid "septuplet" msgstr "" -#: js/PitchBlocks.js:1423 -msgid "The Accidental block is used to create sharps and flats" +#: js/blocks/RhythmBlockPaletteBlocks.js:796 +msgid "quintuplet" msgstr "" -#: js/PitchBlocks.js:1430 -#.TRANS: An accidental is a modification to a pitch, e.g., sharp or flat. -msgid "accidental override" +#: js/blocks/RhythmBlockPaletteBlocks.js:824 +msgid "triplet" msgstr "" -#: js/PitchBlocks.js:1543 -msgid "The Hertz block (in combination with a Number block) will play a sound at the specified frequency." +#: js/blocks/RhythmBlockPaletteBlocks.js:851 +msgid "simple tuplet" msgstr "" -#: js/PitchBlocks.js:1633 -msgid "The Pitch Number block will play a pitch associated by its number, e.g. 0 for C and 7 for G." +#: js/blocks/RhythmBlockPaletteBlocks.js:861 +msgid "Tuplets are a collection of notes that get scaled to a specific duration." msgstr "" -#: js/PitchBlocks.js:1665 -#: js/PitchBlocks.js:1707 -#.TRANS: a numeric mapping of the notes in an octave based on the musical mode -#.TRANS: a numeric mapping of the notes in an octave based on the musical mode -msgid "nth modal pitch" +#: js/blocks/DrumBlocks.js:59 +msgid "The Noise name block is used to select a noise synthesizer." msgstr "" -#: js/PitchBlocks.js:1668 -msgid "n^th Modal Pitch takes the pattern of pitches in semitones for a mode and makes each point a degree of the mode," +#: js/blocks/DrumBlocks.js:102 +msgid "The Drum name block is used to select a drum." msgstr "" -#: js/PitchBlocks.js:1670 -msgid "starting from 1 and regardless of tonal framework (i.e. not always 8 notes in the octave)" +#: js/blocks/DrumBlocks.js:146 +msgid "The Effects name block is used to select a sound effect." msgstr "" -#: js/PitchBlocks.js:1711 -msgid "N^th Modal Pitch takes a number as an input as the n^th degree for the given mode. 0 is the first position, 1 is the second, -1 is the note before the first etc." +#: js/blocks/DrumBlocks.js:163 +msgid "noise" msgstr "" -#: js/PitchBlocks.js:1713 -msgid "The pitches change according to the mode specified without any need for respellings." +#: js/blocks/DrumBlocks.js:177 +msgid "The Play noise block will generate white, pink, or brown noise." msgstr "" -#: js/PitchBlocks.js:1752 -msgid "Scale Degree is a common convention in music. Scale Degree offers seven possible positions in the scale (1-7) and can be modified via accidentals." +#: js/blocks/DrumBlocks.js:317 +msgid "Replace every instance of a pitch with a drum sound." msgstr "" -#: js/PitchBlocks.js:1754 -msgid "Scale Degree 1 is always the first pitch in a given scale, regardless of octave." +#: js/blocks/DrumBlocks.js:328 +#.TRANS: map a pitch to a drum sound +msgid "map pitch to drum" msgstr "" -#: js/PitchBlocks.js:1776 -#.TRANS: step some number of notes in current musical scale -msgid "scalar step" +#: js/blocks/DrumBlocks.js:395 +msgid "In the example above, a kick drum sound will be played instead of sol." msgstr "" -#: js/PitchBlocks.js:1781 -msgid "The Scalar Step block (in combination with a Number block) will play the next pitch in a scale," +#: js/blocks/DrumBlocks.js:407 +#.TRANS: set the current drum sound for playback +msgid "set drum" msgstr "" -#: js/PitchBlocks.js:1783 -msgid "eg if the last note played was sol, Scalar Step 1 will play la." +#: js/blocks/DrumBlocks.js:451 +msgid "sound effect" msgstr "" -#: js/PitchBlocks.js:1818 -msgid "The Pitch block specifies the pitch name and octave of a note that together determine the frequency of the note." +#: js/blocks/DrumBlocks.js:489 +msgid "You can use multiple Drum blocks within a Note block." msgstr "" -#: js/GraphicsBlocks.js:46 -#: js/DictActions.js:77 -#: js/DictActions.js:155 -#: js/DictActions.js:189 +#: js/blocks/GraphicsBlocks.js:46 +#: js/turtleactions/DictActions.js:77 +#: js/turtleactions/DictActions.js:144 +#: js/turtleactions/DictActions.js:173 msgid "heading" msgstr "" -#: js/GraphicsBlocks.js:56 +#: js/blocks/GraphicsBlocks.js:56 msgid "The Heading block returns the orientation of the mouse." msgstr "" -#: js/GraphicsBlocks.js:62 +#: js/blocks/GraphicsBlocks.js:62 msgid "The Heading block returns the orientation of the turtle." msgstr "" -#: js/GraphicsBlocks.js:133 +#: js/blocks/GraphicsBlocks.js:133 msgid "The Y block returns the vertical position of the mouse." msgstr "" -#: js/GraphicsBlocks.js:140 +#: js/blocks/GraphicsBlocks.js:140 msgid "The Y block returns the vertical position of the turtle." msgstr "" -#: js/GraphicsBlocks.js:149 +#: js/blocks/GraphicsBlocks.js:149 msgid "y3" msgstr "" -#: js/GraphicsBlocks.js:219 +#: js/blocks/GraphicsBlocks.js:219 msgid "The X block returns the horizontal position of the mouse." msgstr "" -#: js/GraphicsBlocks.js:226 +#: js/blocks/GraphicsBlocks.js:226 msgid "The X block returns the horizontal position of the turtle." msgstr "" -#: js/GraphicsBlocks.js:235 +#: js/blocks/GraphicsBlocks.js:235 msgid "x3" msgstr "" -#: js/GraphicsBlocks.js:295 +#: js/blocks/GraphicsBlocks.js:295 msgid "scroll xy" msgstr "" -#: js/GraphicsBlocks.js:303 +#: js/blocks/GraphicsBlocks.js:303 msgid "The Scroll XY block moves the canvas." msgstr "" -#: js/GraphicsBlocks.js:313 +#: js/blocks/GraphicsBlocks.js:313 msgid "x2" msgstr "" -#: js/GraphicsBlocks.js:313 +#: js/blocks/GraphicsBlocks.js:313 msgid "y2" msgstr "" -#: js/GraphicsBlocks.js:373 -#: js/temperament.js:213 -#: js/temperament.js:241 +#: js/blocks/GraphicsBlocks.js:373 +#: js/widgets/temperament.js:319 +#: js/widgets/temperament.js:347 msgid "clear" msgstr "" -#: js/GraphicsBlocks.js:426 +#: js/blocks/GraphicsBlocks.js:426 msgid "The Control-point 2 block sets the second control point for the Bezier curve." msgstr "" -#: js/GraphicsBlocks.js:433 +#: js/blocks/GraphicsBlocks.js:433 msgid "control point 2" msgstr "" -#: js/GraphicsBlocks.js:436 -#: js/GraphicsBlocks.js:487 -#: js/GraphicsBlocks.js:534 -#: js/GraphicsBlocks.js:750 +#: js/blocks/GraphicsBlocks.js:436 +#: js/blocks/GraphicsBlocks.js:487 +#: js/blocks/GraphicsBlocks.js:534 +#: js/blocks/GraphicsBlocks.js:750 msgid "x1" msgstr "" -#: js/GraphicsBlocks.js:436 -#: js/GraphicsBlocks.js:487 -#: js/GraphicsBlocks.js:534 -#: js/GraphicsBlocks.js:750 +#: js/blocks/GraphicsBlocks.js:436 +#: js/blocks/GraphicsBlocks.js:487 +#: js/blocks/GraphicsBlocks.js:534 +#: js/blocks/GraphicsBlocks.js:750 msgid "y1" msgstr "" -#: js/GraphicsBlocks.js:477 +#: js/blocks/GraphicsBlocks.js:477 msgid "The Control-point 1 block sets the first control point for the Bezier curve." msgstr "" -#: js/GraphicsBlocks.js:484 +#: js/blocks/GraphicsBlocks.js:484 msgid "control point 1" msgstr "" -#: js/GraphicsBlocks.js:527 +#: js/blocks/GraphicsBlocks.js:527 msgid "The Bezier block draws a Bezier curve." msgstr "" -#: js/GraphicsBlocks.js:531 +#: js/blocks/GraphicsBlocks.js:531 msgid "bezier" msgstr "" -#: js/GraphicsBlocks.js:592 +#: js/blocks/GraphicsBlocks.js:592 msgid "The Arc block moves the turtle in an arc." msgstr "" -#: js/GraphicsBlocks.js:600 +#: js/blocks/GraphicsBlocks.js:600 msgid "arc" msgstr "" -#: js/GraphicsBlocks.js:603 +#: js/blocks/GraphicsBlocks.js:603 msgid "angle" msgstr "" -#: js/GraphicsBlocks.js:603 +#: js/blocks/GraphicsBlocks.js:603 msgid "radius" msgstr "" -#: js/GraphicsBlocks.js:620 -#: js/GraphicsBlocks.js:767 -#: js/GraphicsBlocks.js:1010 -#: js/GraphicsBlocks.js:1093 +#: js/blocks/GraphicsBlocks.js:620 +#: js/blocks/GraphicsBlocks.js:767 +#: js/blocks/GraphicsBlocks.js:1010 +#: js/blocks/GraphicsBlocks.js:1093 msgid "Value must be within -5000 to 5000 when Wrap Mode is off." msgstr "" -#: js/GraphicsBlocks.js:622 -#: js/GraphicsBlocks.js:769 -#: js/GraphicsBlocks.js:1012 -#: js/GraphicsBlocks.js:1095 +#: js/blocks/GraphicsBlocks.js:622 +#: js/blocks/GraphicsBlocks.js:769 +#: js/blocks/GraphicsBlocks.js:1012 +#: js/blocks/GraphicsBlocks.js:1095 msgid "Value must be within -20000 to 20000 when Wrap Mode is on." msgstr "" -#: js/GraphicsBlocks.js:660 +#: js/blocks/GraphicsBlocks.js:660 msgid "set heading" msgstr "seth" -#: js/GraphicsBlocks.js:673 +#: js/blocks/GraphicsBlocks.js:673 msgid "The Set heading block sets the heading of the turtle." msgstr "" -#: js/GraphicsBlocks.js:733 +#: js/blocks/GraphicsBlocks.js:733 msgid "The Set XY block moves the mouse to a specific position on the screen." msgstr "" -#: js/GraphicsBlocks.js:739 +#: js/blocks/GraphicsBlocks.js:739 msgid "The Set XY block moves the turtle to a specific position on the screen." msgstr "" -#: js/GraphicsBlocks.js:747 +#: js/blocks/GraphicsBlocks.js:747 msgid "set xy" msgstr "" -#: js/GraphicsBlocks.js:819 +#: js/blocks/GraphicsBlocks.js:819 msgid "The Right block turns the mouse to the right." msgstr "" -#: js/GraphicsBlocks.js:826 +#: js/blocks/GraphicsBlocks.js:826 msgid "The Right block turns the turtle to the right." msgstr "" -#: js/GraphicsBlocks.js:835 +#: js/blocks/GraphicsBlocks.js:835 msgid "right1" msgstr "" -#: js/GraphicsBlocks.js:835 +#: js/blocks/GraphicsBlocks.js:835 #: plugins/rodi.rtp:77 #: plugins/rodi.rtp:340 #: plugins/rodi.rtp:375 msgid "right" msgstr "" -#: js/GraphicsBlocks.js:899 +#: js/blocks/GraphicsBlocks.js:899 msgid "The Left block turns the mouse to the left." msgstr "" -#: js/GraphicsBlocks.js:906 +#: js/blocks/GraphicsBlocks.js:906 msgid "The Left block turns the turtle to the left." msgstr "" -#: js/GraphicsBlocks.js:915 +#: js/blocks/GraphicsBlocks.js:915 msgid "left1" msgstr "" -#: js/GraphicsBlocks.js:915 +#: js/blocks/GraphicsBlocks.js:915 #: plugins/rodi.rtp:79 #: plugins/rodi.rtp:339 #: plugins/rodi.rtp:362 msgid "left" msgstr "" -#: js/GraphicsBlocks.js:967 -#: js/temperament.js:734 -#: js/temperament.js:933 +#: js/blocks/GraphicsBlocks.js:967 +#: js/widgets/temperament.js:875 +#: js/widgets/temperament.js:1078 #: plugins/rodi.rtp:69 #: plugins/rodi.rtp:387 msgid "back" msgstr "" -#: js/GraphicsBlocks.js:976 +#: js/blocks/GraphicsBlocks.js:976 msgid "The Back block moves the mouse backward." msgstr "" -#: js/GraphicsBlocks.js:983 +#: js/blocks/GraphicsBlocks.js:983 msgid "The Back block moves the turtle backward." msgstr "" -#: js/GraphicsBlocks.js:1050 +#: js/blocks/GraphicsBlocks.js:1050 #: plugins/rodi.rtp:71 #: plugins/rodi.rtp:400 msgid "forward" msgstr "" -#: js/GraphicsBlocks.js:1059 +#: js/blocks/GraphicsBlocks.js:1059 msgid "The Forward block moves the mouse forward." msgstr "" -#: js/GraphicsBlocks.js:1066 +#: js/blocks/GraphicsBlocks.js:1066 msgid "The Forward block moves the turtle forward." msgstr "" -#: js/GraphicsBlocks.js:1154 -#: js/GraphicsBlocks.js:1172 +#: js/blocks/GraphicsBlocks.js:1154 +#: js/blocks/GraphicsBlocks.js:1172 msgid "wrap" msgstr "" -#: js/OrnamentBlocks.js:32 -msgid "staccato factor" -msgstr "" - -#: js/OrnamentBlocks.js:108 -msgid "slur factor" -msgstr "" - -#: js/OrnamentBlocks.js:217 -#: js/OrnamentBlocks.js:309 -#.TRANS: the neighbor refers to a neighboring note, e.g., D is a neighbor of C -msgid "neighbor" -msgstr "" - -#: js/OrnamentBlocks.js:293 -msgid "The Neighbor block rapidly switches between neighboring pitches." -msgstr "" - -#: js/OrnamentBlocks.js:364 -msgid "glide" -msgstr "" - -#: js/OrnamentBlocks.js:479 -#: js/OrnamentBlocks.js:643 -msgid "slur" -msgstr "" - -#: js/OrnamentBlocks.js:558 -#: js/OrnamentBlocks.js:710 -#.TRANS: play each note sharply detached from the others -msgid "staccato" -msgstr "" - -#: js/PenBlocks.js:24 +#: js/blocks/PenBlocks.js:30 msgid "purple" msgstr "" -#: js/PenBlocks.js:37 -#: js/SensorsBlocks.js:521 -#: plugins/rodi.rtp:219 -msgid "blue" -msgstr "" - -#: js/PenBlocks.js:50 -#: js/SensorsBlocks.js:577 -#: plugins/rodi.rtp:218 -msgid "green" -msgstr "" - -#: js/PenBlocks.js:63 +#: js/blocks/PenBlocks.js:80 msgid "yellow" msgstr "" -#: js/PenBlocks.js:76 +#: js/blocks/PenBlocks.js:96 #: plugins/nutrition.rtp:164 msgid "orange" msgstr "" -#: js/PenBlocks.js:89 -#: js/SensorsBlocks.js:633 -#: plugins/rodi.rtp:217 -msgid "red" -msgstr "" - -#: js/PenBlocks.js:102 +#: js/blocks/PenBlocks.js:128 msgid "white" msgstr "" -#: js/PenBlocks.js:115 +#: js/blocks/PenBlocks.js:144 msgid "black" msgstr "" -#: js/PenBlocks.js:128 +#: js/blocks/PenBlocks.js:163 msgid "begin fill" msgstr "" -#: js/PenBlocks.js:143 +#: js/blocks/PenBlocks.js:190 msgid "end fill" msgstr "" -#: js/PenBlocks.js:159 -#: js/PenBlocks.js:386 +#: js/blocks/PenBlocks.js:212 +#: js/blocks/PenBlocks.js:560 #.TRANS: set the background color msgid "background" msgstr "" -#: js/PenBlocks.js:206 -#: js/DictActions.js:71 -#: js/DictActions.js:149 -#: js/DictActions.js:186 +#: js/blocks/PenBlocks.js:274 +#: js/turtleactions/DictActions.js:71 +#: js/turtleactions/DictActions.js:138 +#: js/turtleactions/DictActions.js:170 msgid "grey" msgstr "" -#: js/PenBlocks.js:210 +#: js/blocks/PenBlocks.js:282 msgid "The Grey block returns the current pen grey value." msgstr "" -#: js/PenBlocks.js:243 -#: js/DictActions.js:69 -#: js/DictActions.js:147 -#: js/DictActions.js:185 +#: js/blocks/PenBlocks.js:340 +#: js/turtleactions/DictActions.js:69 +#: js/turtleactions/DictActions.js:136 +#: js/turtleactions/DictActions.js:169 msgid "shade" msgstr "" -#: js/PenBlocks.js:247 +#: js/blocks/PenBlocks.js:347 msgid "The Shade block returns the current pen shade value." msgstr "" -#: js/PenBlocks.js:280 -#: js/DictActions.js:67 -#: js/DictActions.js:145 -#: js/DictActions.js:184 +#: js/blocks/PenBlocks.js:405 +#: js/turtleactions/DictActions.js:67 +#: js/turtleactions/DictActions.js:134 +#: js/turtleactions/DictActions.js:168 msgid "color" msgstr "" -#: js/PenBlocks.js:285 +#: js/blocks/PenBlocks.js:415 msgid "The Color block returns the current pen color." msgstr "" -#: js/PenBlocks.js:318 -#: js/DictActions.js:73 -#: js/DictActions.js:151 -#: js/DictActions.js:187 +#: js/blocks/PenBlocks.js:470 +#: js/turtleactions/DictActions.js:73 +#: js/turtleactions/DictActions.js:140 +#: js/turtleactions/DictActions.js:171 msgid "pen size" msgstr "" -#: js/PenBlocks.js:322 +#: js/blocks/PenBlocks.js:474 msgid "The Pen size block returns the current pen size value." msgstr "" -#: js/PenBlocks.js:355 +#: js/blocks/PenBlocks.js:513 msgid "set font" msgstr "" -#: js/PenBlocks.js:358 +#: js/blocks/PenBlocks.js:518 msgid "The Set font block sets the font used by the Show block." msgstr "" -#: js/PenBlocks.js:391 +#: js/blocks/PenBlocks.js:567 msgid "The Background block sets the window background color." msgstr "" -#: js/PenBlocks.js:408 +#: js/blocks/PenBlocks.js:598 msgid "The Hollow line block creates a line with a hollow center." msgstr "" -#: js/PenBlocks.js:415 +#: js/blocks/PenBlocks.js:606 #.TRANS: draw a line logo has a hollow space down its center msgid "hollow line" msgstr "" -#: js/PenBlocks.js:462 +#: js/blocks/PenBlocks.js:675 msgid "The Fill block fills in a shape with a color." msgstr "" -#: js/PenBlocks.js:470 +#: js/blocks/PenBlocks.js:684 #.TRANS: fill in as a solid color msgid "fill" msgstr "" -#: js/PenBlocks.js:527 +#: js/blocks/PenBlocks.js:761 #.TRANS: raise up the pen so logo it does not draw when it is moved msgid "pen up" msgstr "" -#: js/PenBlocks.js:532 +#: js/blocks/PenBlocks.js:768 msgid "The Pen-up block raises the pen so that it does not draw." msgstr "" -#: js/PenBlocks.js:552 +#: js/blocks/PenBlocks.js:802 #.TRANS: put down the pen so logo it draws when it is moved msgid "pen down" msgstr "" -#: js/PenBlocks.js:557 +#: js/blocks/PenBlocks.js:810 msgid "The Pen-down block lowers the pen so that it draws." msgstr "" -#: js/PenBlocks.js:577 +#: js/blocks/PenBlocks.js:844 #.TRANS: set the width of the line drawn by the pen msgid "set pen size" msgstr "" -#: js/PenBlocks.js:583 +#: js/blocks/PenBlocks.js:854 msgid "The Set-pen-size block changes the size of the pen." msgstr "" -#: js/PenBlocks.js:623 +#: js/blocks/PenBlocks.js:913 #.TRANS: set degree of translucence of the pen color msgid "set translucency" msgstr "" -#: js/PenBlocks.js:627 +#: js/blocks/PenBlocks.js:921 msgid "The Set translucency block changes the opacity of the pen." msgstr "" -#: js/PenBlocks.js:668 +#: js/blocks/PenBlocks.js:981 msgid "set hue" msgstr "" -#: js/PenBlocks.js:672 +#: js/blocks/PenBlocks.js:989 msgid "The Set hue block changes the color of the pen." msgstr "" -#: js/PenBlocks.js:711 +#: js/blocks/PenBlocks.js:1047 msgid "set shade" msgstr "" -#: js/PenBlocks.js:717 +#: js/blocks/PenBlocks.js:1057 msgid "The Set-shade block changes the pen color from dark to light." msgstr "" -#: js/PenBlocks.js:757 +#: js/blocks/PenBlocks.js:1111 #.TRANS: set the level of vividness of the pen color msgid "set grey" msgstr "" -#: js/PenBlocks.js:761 +#: js/blocks/PenBlocks.js:1119 msgid "The Set grey block changes the vividness of the pen color." msgstr "" -#: js/PenBlocks.js:800 +#: js/blocks/PenBlocks.js:1172 msgid "set color" msgstr "" -#: js/PenBlocks.js:806 +#: js/blocks/PenBlocks.js:1182 msgid "The Set-color block changes the pen color." msgstr "" -#: js/VolumeBlocks.js:35 -msgid "synth volume" -msgstr "" - -#: js/VolumeBlocks.js:39 -msgid "The Synth volume block returns the current volume of the current synthesizer." -msgstr "" - -#: js/VolumeBlocks.js:47 -#: js/musicutils.js:730 -#: js/synthutils.js:56 -#.TRANS: musical instrument -msgid "piano" -msgstr "" - -#: js/VolumeBlocks.js:105 -msgid "master volume" -msgstr "" - -#: js/VolumeBlocks.js:109 -msgid "The Master volume block returns the master volume." -msgstr "" - -#: js/VolumeBlocks.js:355 -#: js/VolumeBlocks.js:524 -msgid "set synth volume" -msgstr "" - -#: js/VolumeBlocks.js:362 -#: js/VolumeBlocks.js:545 -msgid "synth" -msgstr "" - -#: js/VolumeBlocks.js:403 -#: js/VolumeBlocks.js:577 -#: js/VolumeBlocks.js:740 -#: js/VolumeActions.js:173 -msgid "Setting volume to 0." -msgstr "" - -#: js/VolumeBlocks.js:440 -msgid "Synth not found" -msgstr "" - -#: js/VolumeBlocks.js:494 -msgid "set drum volume" -msgstr "" - -#: js/VolumeBlocks.js:530 -msgid "The Set synth volume block will change the volume of a particular synth," -msgstr "" - -#: js/VolumeBlocks.js:532 -msgid "eg guitar violin snare drum etc." -msgstr "" - -#: js/VolumeBlocks.js:534 -msgid "The default volume is 50." -msgstr "" - -#: js/VolumeBlocks.js:536 -msgid "The range is 0 for silence to 100 for full volume." -msgstr "" - -#: js/VolumeBlocks.js:597 -msgid "set panning" -msgstr "" - -#: js/VolumeBlocks.js:603 -msgid "The Set Panning block sets the panning for all synthesizers." -msgstr "" - -#: js/VolumeBlocks.js:625 -msgid "Warning: Sound is coming out from only the left or right side." -msgstr "" - -#: js/VolumeBlocks.js:647 -#: js/VolumeBlocks.js:695 -msgid "set master volume" -msgstr "" - -#: js/VolumeBlocks.js:653 -msgid "The Set master volume block sets the volume for all synthesizers." -msgstr "" - -#: js/VolumeBlocks.js:784 -msgid "The Set relative volume block changes the volume of the contained notes." -msgstr "" - -#: js/VolumeBlocks.js:791 -msgid "set relative volume" -msgstr "" - -#: js/VolumeBlocks.js:857 -msgid "decrescendo" -msgstr "" - -#: js/VolumeBlocks.js:921 -msgid "crescendo" -msgstr "" - -#: js/ToneBlocks.js:34 -msgid "oscillator" -msgstr "" - -#: js/ToneBlocks.js:44 -#: js/timbre.js:1562 -#.TRANS: Partials refers to the number of sine waves combined into the sound. -msgid "partials" -msgstr "" - -#: js/ToneBlocks.js:76 -msgid "You are adding multiple oscillator blocks." -msgstr "" - -#: js/ToneBlocks.js:144 -#: js/timbre.js:1225 -#.TRANS: a duo synthesizer combines a synth with a sequencer -msgid "duo synth" -msgstr "" - -#: js/ToneBlocks.js:149 -msgid "The Duo synth block is a duo-frequency modulator used to define a timbre." -msgstr "" - -#: js/ToneBlocks.js:157 -#: js/timbre.js:1476 -msgid "vibrato rate" -msgstr "" - -#: js/ToneBlocks.js:157 -msgid "vibrato intensity" -msgstr "" - -#: js/ToneBlocks.js:185 -#: js/timbre.js:1221 -#.TRANS: AM (amplitude modulation) synthesizer -msgid "AM synth" -msgstr "" - -#: js/ToneBlocks.js:189 -msgid "The AM synth block is an amplitude modulator used to define a timbre." -msgstr "" - -#: js/ToneBlocks.js:224 -#: js/timbre.js:1223 -#.TRANS: FM (frequency modulation) synthesizer -msgid "FM synth" -msgstr "" - -#: js/ToneBlocks.js:228 -msgid "The FM synth block is a frequency modulator used to define a timbre." +#: js/blocks/PitchBlocks.js:141 +#.TRANS: musical transposition (adjustment of pitch up or down) +msgid "transposition" msgstr "" -#: js/ToneBlocks.js:262 -msgid "partial" +#: js/blocks/PitchBlocks.js:168 +#.TRANS: step down one note in current musical scale +msgid "scalar step down" msgstr "" -#: js/ToneBlocks.js:265 -msgid "The Partial block is used to specify a weight for a specific partial harmonic." +#: js/blocks/PitchBlocks.js:172 +msgid "The Scalar step down block returns the number of semi-tones down to the previous note in the current key and mode." msgstr "" -#: js/ToneBlocks.js:284 -#.TRANS: partials are weighted components in a harmonic series -msgid "Partial weight must be between 0 and 1." +#: js/blocks/PitchBlocks.js:190 +#.TRANS: step up one note in current musical scale +msgid "scalar step up" msgstr "" -#: js/ToneBlocks.js:297 -#.TRANS: partials are weighted components in a harmonic series -msgid "Partial block should be used inside of a Weighted-partials block." +#: js/blocks/PitchBlocks.js:194 +msgid "The Scalar step up block returns the number of semi-tones up to the next note in the current key and mode." msgstr "" -#: js/ToneBlocks.js:325 -#.TRANS: partials are weighted components in a harmonic series -msgid "weighted partials" +#: js/blocks/PitchBlocks.js:212 +#.TRANS: the change measured in half-steps between the current pitch and the previous pitch +msgid "change in pitch" msgstr "" -#: js/ToneBlocks.js:383 -msgid "The Harmonic block will add harmonics to the contained notes." +#: js/blocks/PitchBlocks.js:216 +msgid "The Change in pitch block is the difference (in half steps) between the current pitch being played and the previous pitch played." msgstr "" -#: js/ToneBlocks.js:390 -#.TRANS: A harmonic is an overtone. -msgid "harmonic" +#: js/blocks/PitchBlocks.js:243 +#.TRANS: the change measured in scale-steps between the current pitch and the previous pitch +msgid "scalar change in pitch" msgstr "" -#: js/ToneBlocks.js:431 -msgid "The Distortion block adds distortion to the pitch." +#: js/blocks/PitchBlocks.js:250 +#: js/blocks/PitchBlocks.js:432 +#: js/blocks/PitchBlocks.js:1667 +#: js/turtleactions/DictActions.js:89 +#: js/widgets/temperament.js:610 +#: js/widgets/temperament.js:614 +#: js/widgets/temperament.js:855 +#.TRANS: convert current note to piano key (1-88) +#.TRANS: a mapping of pitch to the 88 piano keys +msgid "pitch number" msgstr "" -#: js/ToneBlocks.js:438 -#: js/timbre.js:2100 -#.TRANS: distortion is an alteration in the sound -msgid "distortion" +#: js/blocks/PitchBlocks.js:256 +msgid "The Pitch number block is the value of the pitch of the note currently being played." msgstr "" -#: js/ToneBlocks.js:487 -msgid "The Tremolo block adds a wavering effect." +#: js/blocks/PitchBlocks.js:329 +#: js/blocks/PitchBlocks.js:433 +#.TRANS: the current pitch expressed in Hertz +msgid "pitch in hertz" msgstr "" -#: js/ToneBlocks.js:495 -#: js/timbre.js:2092 -#.TRANS: a wavering effect in a musical tone -msgid "tremolo" +#: js/blocks/PitchBlocks.js:334 +msgid "The Pitch in Hertz block is the value in Hertz of the pitch of the note currently being played." msgstr "" -#: js/ToneBlocks.js:500 -#: js/ToneBlocks.js:569 -#: js/ToneBlocks.js:630 -#: js/ToneBlocks.js:689 -#: js/timbre.js:2134 -#: js/timbre.js:2222 -#: js/timbre.js:2317 -#: js/timbre.js:2419 -#.TRANS: rate at which tremolo wavers -msgid "rate" +#: js/blocks/PitchBlocks.js:367 +#: js/turtleactions/DictActions.js:87 +msgid "current pitch" msgstr "" -#: js/ToneBlocks.js:502 -#: js/ToneBlocks.js:630 -#: js/timbre.js:2137 -#: js/timbre.js:2328 -#.TRANS: amplitude of tremolo waver -msgid "depth" +#: js/blocks/PitchBlocks.js:373 +msgid "The Current Pitch block is used with the Pitch Converter block. In the example above, current pitch, sol 4, is displayed as 392 hertz." msgstr "" -#: js/ToneBlocks.js:559 -msgid "The Phaser block adds a sweeping sound." +#: js/blocks/PitchBlocks.js:410 +msgid "This block converts the pitch value of the last note played into different formats such as hertz, letter name, pitch number, et al." msgstr "" -#: js/ToneBlocks.js:566 -#: js/timbre.js:2098 -#.TRANS: alter the phase of the sound -msgid "phaser" +#: js/blocks/PitchBlocks.js:434 +msgid "alphabet" msgstr "" -#: js/ToneBlocks.js:569 -#: js/timbre.js:2422 -msgid "octaves" +#: js/blocks/PitchBlocks.js:436 +#.TRANS: Translate as "alphabet class" +msgid "letter class" msgstr "" -#: js/ToneBlocks.js:569 -#: js/timbre.js:2425 -msgid "base frequency" +#: js/blocks/PitchBlocks.js:437 +msgid "solfege class" msgstr "" -#: js/ToneBlocks.js:619 -msgid "The Chorus block adds a chorus effect." +#: js/blocks/PitchBlocks.js:438 +msgid "staff y" msgstr "" -#: js/ToneBlocks.js:627 -#: js/timbre.js:2096 -#.TRANS: musical effect to simulate a choral sound -msgid "chorus" +#: js/blocks/PitchBlocks.js:439 +msgid "solfege syllable" msgstr "" -#: js/ToneBlocks.js:630 -msgid "delay" +#: js/blocks/PitchBlocks.js:440 +msgid "pitch class" msgstr "" -#: js/ToneBlocks.js:678 -msgid "The Vibrato block adds a rapid, slight variation in pitch." +#: js/blocks/PitchBlocks.js:441 +msgid "scalar class" msgstr "" -#: js/ToneBlocks.js:686 -#: js/timbre.js:2094 -#.TRANS: a rapid, slight variation in pitch -msgid "vibrato" +#: js/blocks/PitchBlocks.js:443 +msgid "nth degree" msgstr "" -#: js/ToneBlocks.js:689 -#: js/timbre.js:2221 -msgid "intensity" +#: js/blocks/PitchBlocks.js:444 +msgid "pitch to shade" msgstr "" -#: js/ToneBlocks.js:733 -#.TRANS: select synthesizer -msgid "set synth" +#: js/blocks/PitchBlocks.js:445 +msgid "pitch to color" msgstr "" -#: js/ToneBlocks.js:804 -msgid "synth name" +#: js/blocks/PitchBlocks.js:629 +#: js/widgets/musickeyboard.js:735 +#.TRANS: MIDI is a technical standard for electronic music +msgid "MIDI" msgstr "" -#: js/ToneBlocks.js:842 -msgid "set default instrument" +#: js/blocks/PitchBlocks.js:642 +#.TRANS: set an offset associated with the numeric piano keyboard mapping +msgid "set pitch number offset" msgstr "" -#: js/ToneBlocks.js:895 -#: js/ToneBlocks.js:943 -#.TRANS: set the characteristics of a custom instrument -msgid "set instrument" +#: js/blocks/PitchBlocks.js:645 +msgid "The Set pitch number offset block is used to set the offset for mapping pitch numbers to pitch and octave." msgstr "" -#: js/ToneBlocks.js:898 -#: js/ToneBlocks.js:926 -#: js/ToneBlocks.js:932 -msgid "The Set instrument block selects a voice for the synthesizer," +#: js/blocks/PitchBlocks.js:679 +#.TRANS: convert piano key number (1-88) to pitch +msgid "number to pitch" msgstr "" -#: js/ToneBlocks.js:900 -#: js/ToneBlocks.js:934 -msgid "eg guitar piano violin or cello." +#: js/blocks/PitchBlocks.js:682 +msgid "The Number to pitch block will convert a pitch number to a pich name." msgstr "" -#: js/ToneBlocks.js:1015 -msgid "Import a sound file to use as an instrument and set its pitch center." +#: js/blocks/PitchBlocks.js:715 +#.TRANS: convert piano key number (1-88) to octave +msgid "number to octave" msgstr "" -#: js/ToneBlocks.js:1110 -msgid "Upload a sound file to connect with the sample block." +#: js/blocks/PitchBlocks.js:717 +msgid "The Number to octave block will convert a pitch number to an octave." msgstr "" -#: js/MeterBlocks.js:34 -#.TRANS: musical meter (time signature), e.g., 4:4 -msgid "current meter" +#: js/blocks/PitchBlocks.js:726 +msgid "y to pitch" msgstr "" -#: js/MeterBlocks.js:85 -#.TRANS: number of beats per minute -msgid "beat factor" +#: js/blocks/PitchBlocks.js:729 +msgid "Y to pitch block will convert a staff y position to corresponding pitch notation." msgstr "" -#: js/MeterBlocks.js:161 -msgid "The Beats per minute block returns the current beats per minute." +#: js/blocks/PitchBlocks.js:841 +msgid "accidental selector" msgstr "" -#: js/MeterBlocks.js:169 -#: js/status.js:152 -#.TRANS: number of beats played per minute -msgid "beats per minute2" +#: js/blocks/PitchBlocks.js:844 +msgid "The Accidental selector block is used to choose between double-sharp, sharp, natural, flat, and double-flat." msgstr "" -#: js/MeterBlocks.js:169 -#: js/MeterBlocks.js:1056 -#: js/MeterBlocks.js:1133 -#: js/MeterBlocks.js:1211 -#.TRANS: sets tempo by defining a beat and beats per minute -msgid "beats per minute" +#: js/blocks/PitchBlocks.js:858 +msgid "Pitch can be specified in terms of ni dha pa ma ga re sa." msgstr "" -#: js/MeterBlocks.js:233 -#.TRANS: count of current musical measure in meter -msgid "measure count" +#: js/blocks/PitchBlocks.js:872 +msgid "Pitch can be specified in terms of C D E F G A B." msgstr "" -#: js/MeterBlocks.js:241 -msgid "The Measure count block returns the current measure." +#: js/blocks/PitchBlocks.js:884 +msgid "solfege" msgstr "" -#: js/MeterBlocks.js:290 -#.TRANS: count of current beat in the meter -msgid "beat count" +#: js/blocks/PitchBlocks.js:887 +msgid "Pitch can be specified in terms of do re mi fa sol la ti." msgstr "" -#: js/MeterBlocks.js:300 -#: js/MeterBlocks.js:311 -#: js/MeterBlocks.js:565 -#: js/MeterBlocks.js:576 -msgid "The Beat count block is the number of the current beat," +#: js/blocks/PitchBlocks.js:922 +msgid "The Invert block rotates any contained notes around a target note." msgstr "" -#: js/MeterBlocks.js:313 -#: js/MeterBlocks.js:578 -msgid "eg 1, 2, 3, or 4." +#: js/blocks/PitchBlocks.js:929 +#.TRANS: pitch inversion rotates a pitch around another pitch +msgid "invert" msgstr "" -#: js/MeterBlocks.js:368 -#.TRANS: count the number of notes -msgid "sum note values" +#: js/blocks/PitchBlocks.js:968 +#.TRANS: pitch inversion rotates a pitch around another pitch (odd number) +msgid "invert (odd)" msgstr "" -#: js/MeterBlocks.js:376 -#: js/MeterBlocks.js:440 -msgid "The Note counter block can be used to count the number of contained notes." +#: js/blocks/PitchBlocks.js:1001 +#.TRANS: pitch inversion rotates a pitch around another pitch (even number) +msgid "invert (even)" msgstr "" -#: js/MeterBlocks.js:432 -#.TRANS: count the number of notes -msgid "note counter" +#: js/blocks/PitchBlocks.js:1022 +#.TRANS: register is the octave of the current pitch +msgid "register" msgstr "" -#: js/MeterBlocks.js:496 -#.TRANS: number of whole notes that have been played -msgid "whole notes played" +#: js/blocks/PitchBlocks.js:1026 +msgid "The Register block provides an easy way to modify the register (octave) of the notes that follow it." msgstr "" -#: js/MeterBlocks.js:505 -msgid "The Whole notes played block returns the total number of whole notes played." +#: js/blocks/PitchBlocks.js:1047 +#.TRANS: cents are units used to specify the ratio between pitches. There are 100 cents between successive notes. +msgid "50 cents" msgstr "" -#: js/MeterBlocks.js:555 -#: js/DictActions.js:83 -#.TRANS: number of notes that have been played -msgid "notes played" +#: js/blocks/PitchBlocks.js:1102 +msgid "The Semi-tone transposition block will shift the pitches contained inside Note blocks up (or down) by half steps." msgstr "" -#: js/MeterBlocks.js:653 -msgid "The No clock block decouples the notes from the master clock." +#: js/blocks/PitchBlocks.js:1104 +msgid "In the example shown above, sol is shifted up to sol#." msgstr "" -#: js/MeterBlocks.js:661 -#.TRANS: don't lock notes to master clock -msgid "no clock" +#: js/blocks/PitchBlocks.js:1110 +#.TRANS: adjust the amount of shift (up or down) of a pitch +msgid "semi-tone transpose" msgstr "" -#: js/MeterBlocks.js:700 -msgid "on weak beat do" +#: js/blocks/PitchBlocks.js:1143 +msgid "The Transpose by Ratio block will shift the pitches contained inside Note blocks up (or down) by a ratio" msgstr "" -#: js/MeterBlocks.js:705 -msgid "The On-weak-beat block lets you specify actions to take on weak (off) beats." +#: js/blocks/PitchBlocks.js:1149 +#.TRANS: adjust the amount of shift (up or down) of a pitch +msgid "transpose by ratio" msgstr "" -#: js/MeterBlocks.js:750 -msgid "on strong beat" +#: js/blocks/PitchBlocks.js:1232 +#.TRANS: down sixth means the note is five scale degrees below current note +msgid "down sixth" msgstr "" -#: js/MeterBlocks.js:758 -msgid "The On-strong-beat block lets you specify actions to take on specified beats." +#: js/blocks/PitchBlocks.js:1251 +#.TRANS: down third means the note is two scale degrees below current note +msgid "down third" msgstr "" -#: js/MeterBlocks.js:769 -msgid "beat" +#: js/blocks/PitchBlocks.js:1270 +#.TRANS: seventh means the note is the six scale degrees above current note +msgid "seventh" msgstr "" -#: js/MeterBlocks.js:813 -msgid "on every beat do" +#: js/blocks/PitchBlocks.js:1289 +#.TRANS: sixth means the note is the five scale degrees above current note +msgid "sixth" msgstr "" -#: js/MeterBlocks.js:821 -msgid "The On-every-beat block lets you specify actions to take on every beat." +#: js/blocks/PitchBlocks.js:1308 +#.TRANS: fifth means the note is the four scale degrees above current note +msgid "fifth" msgstr "" -#: js/MeterBlocks.js:874 -msgid "on every note do" +#: js/blocks/PitchBlocks.js:1328 +#.TRANS: fourth means the note is three scale degrees above current note +msgid "fourth" msgstr "" -#: js/MeterBlocks.js:882 -msgid "The On-every-note block lets you specify actions to take on every note." +#: js/blocks/PitchBlocks.js:1347 +#.TRANS: third means the note is two scale degrees above current note +msgid "third" msgstr "" -#: js/MeterBlocks.js:928 -#: js/MeterBlocks.js:999 -#.TRANS: sets tempo by defining a beat and beats per minute -msgid "master beats per minute" +#: js/blocks/PitchBlocks.js:1366 +#.TRANS: second means the note is one scale degree above current note +msgid "second" msgstr "" -#: js/MeterBlocks.js:952 -#: js/MeterBlocks.js:1078 -#: js/MeterBlocks.js:1135 -msgid "bpm" +#: js/blocks/PitchBlocks.js:1407 +msgid "The Scalar transposition block will shift the pitches contained inside Note blocks up (or down) the scale." msgstr "" -#: js/MeterBlocks.js:952 -#: js/MeterBlocks.js:1078 -#: js/MeterBlocks.js:1135 -msgid "beat value" +#: js/blocks/PitchBlocks.js:1409 +msgid "In the example shown above, sol is shifted up to la." msgstr "" -#: js/MeterBlocks.js:1024 -#: js/MeterBlocks.js:1167 -#: js/MeterBlocks.js:1241 -msgid "Beats per minute must be > 30." +#: js/blocks/PitchBlocks.js:1416 +#.TRANS: adjust the amount of shift (up or down) of a pitch by musical scale (scalar) steps +msgid "scalar transpose" msgstr "" -#: js/MeterBlocks.js:1027 -#: js/MeterBlocks.js:1170 -#: js/MeterBlocks.js:1244 -msgid "Maximum beats per minute is 1000." +#: js/blocks/PitchBlocks.js:1451 +msgid "The Accidental block is used to create sharps and flats" msgstr "" -#: js/MeterBlocks.js:1068 -msgid "The Beats per minute block sets the number of 1/4 notes per minute." +#: js/blocks/PitchBlocks.js:1458 +#.TRANS: An accidental is a modification to a pitch, e.g., sharp or flat. +msgid "accidental override" msgstr "" -#: js/MeterBlocks.js:1279 -#.TRANS: anacrusis -msgid "pickup" +#: js/blocks/PitchBlocks.js:1581 +msgid "The Hertz block (in combination with a Number block) will play a sound at the specified frequency." msgstr "" -#: js/MeterBlocks.js:1367 -msgid "number of beats" +#: js/blocks/PitchBlocks.js:1671 +msgid "The Pitch Number block will play a pitch associated by its number, e.g. 0 for C and 7 for G." msgstr "" -#: js/DictBlocks.js:77 -msgid "show dictionary" +#: js/blocks/PitchBlocks.js:1703 +#: js/blocks/PitchBlocks.js:1745 +#.TRANS: a numeric mapping of the notes in an octave based on the musical mode +#.TRANS: a numeric mapping of the notes in an octave based on the musical mode +msgid "nth modal pitch" msgstr "" -#: js/DictBlocks.js:129 -msgid "The Dictionary block returns a dictionary." +#: js/blocks/PitchBlocks.js:1706 +msgid "n^th Modal Pitch takes the pattern of pitches in semitones for a mode and makes each point a degree of the mode," msgstr "" -#: js/DictBlocks.js:197 -#: js/DictBlocks.js:339 -msgid "The Get-dict block returns a value in the dictionary for a specified key." +#: js/blocks/PitchBlocks.js:1708 +msgid "starting from 1 and regardless of tonal framework (i.e. not always 8 notes in the octave)" msgstr "" -#: js/DictBlocks.js:212 -#: js/DictBlocks.js:354 -#.TRANS: retrieve a value from the dictionary with a given key -msgid "get value" +#: js/blocks/PitchBlocks.js:1749 +msgid "N^th Modal Pitch takes a number as an input as the n^th degree for the given mode. 0 is the first position, 1 is the second, -1 is the note before the first etc." msgstr "" -#: js/DictBlocks.js:215 -#: js/DictBlocks.js:216 -#: js/DictBlocks.js:289 -#: js/DictBlocks.js:290 -#: js/DictBlocks.js:357 -#: js/DictBlocks.js:430 -#: js/DictBlocks.js:431 -msgid "key2" +#: js/blocks/PitchBlocks.js:1751 +msgid "The pitches change according to the mode specified without any need for respellings." msgstr "" -#: js/DictBlocks.js:271 -#: js/DictBlocks.js:411 -msgid "The Set-dict block sets a value in the dictionary for a specified key." +#: js/blocks/PitchBlocks.js:1790 +msgid "Scale Degree is a common convention in music. Scale Degree offers seven possible positions in the scale (1-7) and can be modified via accidentals." msgstr "" -#: js/DictBlocks.js:286 -#: js/DictBlocks.js:427 -#.TRANS: set a value in the dictionary for a given key -msgid "set value" +#: js/blocks/PitchBlocks.js:1792 +msgid "Scale Degree 1 is always the first pitch in a given scale, regardless of octave." msgstr "" -#: js/ExtrasBlocks.js:33 -msgid "fraction" +#: js/blocks/PitchBlocks.js:1814 +#.TRANS: step some number of notes in current musical scale +msgid "scalar step" msgstr "" -#: js/ExtrasBlocks.js:36 -msgid "Convert a float to a fraction" +#: js/blocks/PitchBlocks.js:1819 +msgid "The Scalar Step block (in combination with a Number block) will play the next pitch in a scale," msgstr "" -#: js/ExtrasBlocks.js:93 -msgid "save as ABC" +#: js/blocks/PitchBlocks.js:1821 +msgid "eg if the last note played was sol, Scalar Step 1 will play la." msgstr "" -#: js/ExtrasBlocks.js:96 -#: js/ExtrasBlocks.js:132 -#: js/ExtrasBlocks.js:168 -msgid "title" +#: js/blocks/PitchBlocks.js:1857 +msgid "The Pitch block specifies the pitch name and octave of a note that together determine the frequency of the note." msgstr "" -#: js/ExtrasBlocks.js:129 -msgid "save as Lilypond" +#: js/blocks/ProgramBlocks.js:33 +msgid "The Load-heap-from-app block loads the heap from a web page." msgstr "" -#: js/ExtrasBlocks.js:165 -msgid "save as SVG" +#: js/blocks/ProgramBlocks.js:44 +#.TRANS: load the heap contents from a URL +msgid "load heap from App" msgstr "" -#: js/ExtrasBlocks.js:216 -msgid "no background" +#: js/blocks/ProgramBlocks.js:95 +msgid "Error parsing JSON data:" msgstr "" -#: js/ExtrasBlocks.js:219 -msgid "The No background block eliminates the background from the saved SVG output." +#: js/blocks/ProgramBlocks.js:100 +msgid "404: Page not found" msgstr "" -#: js/ExtrasBlocks.js:247 -msgid "show blocks" +#: js/blocks/ProgramBlocks.js:133 +msgid "The Save-heap-to-app block saves the heap to a web page." msgstr "" -#: js/ExtrasBlocks.js:249 -msgid "The Show blocks block shows the blocks." +#: js/blocks/ProgramBlocks.js:144 +#.TRANS: save the heap contents to a URL +msgid "save heap to App" msgstr "" -#: js/ExtrasBlocks.js:274 -msgid "hide blocks" +#: js/blocks/ProgramBlocks.js:189 +msgid "Cannot find a valid heap for" msgstr "" -#: js/ExtrasBlocks.js:276 -msgid "The Hide blocks block hides the blocks." +#: js/blocks/ProgramBlocks.js:206 +msgid "The Load-heap block loads the heap from a file." msgstr "" -#: js/ExtrasBlocks.js:305 -#: js/ExtrasBlocks.js:335 -msgid "The Space block is used to add space between blocks." +#: js/blocks/ProgramBlocks.js:217 +#.TRANS: load the heap from a file +msgid "load heap" msgstr "" -#: js/ExtrasBlocks.js:373 -msgid "wait" +#: js/blocks/ProgramBlocks.js:270 +msgid "The file you selected does not contain a valid heap." msgstr "" -#: js/ExtrasBlocks.js:376 -msgid "The Wait block pauses the program for a specified number of seconds." +#: js/blocks/ProgramBlocks.js:275 +msgid "The loadHeap block needs a loadFile block." msgstr "" -#: js/ExtrasBlocks.js:430 -#: plugins/facebook.rtp:30 -msgid "comment" +#: js/blocks/ProgramBlocks.js:291 +msgid "The Set-heap block loads the heap." msgstr "" -#: js/ExtrasBlocks.js:466 -msgid "print" +#: js/blocks/ProgramBlocks.js:340 +msgid "The block you selected does not contain a valid heap." msgstr "" -#: js/ExtrasBlocks.js:473 -msgid "The Print block displays text at the top of the screen." +#: js/blocks/ProgramBlocks.js:343 +msgid "The Set heap block needs a heap." msgstr "" -#: js/ExtrasBlocks.js:579 -msgid "display grid" +#: js/blocks/ProgramBlocks.js:360 +msgid "The Load-dictionary block loads a dictionary from a file." msgstr "" -#: js/ExtrasBlocks.js:584 -msgid "The Display Grid Block changes the grid type" +#: js/blocks/ProgramBlocks.js:372 +#.TRANS: load a dictionary from a file +msgid "load dictionary" msgstr "" -#: js/ExtrasBlocks.js:686 -#: js/ExtrasBlocks.js:705 -#: js/ExtrasBlocks.js:728 -#: js/ExtrasBlocks.js:751 -#: js/ExtrasBlocks.js:769 -#: js/ExtrasBlocks.js:788 -#: js/ExtrasBlocks.js:807 -#: js/ExtrasBlocks.js:826 -msgid "unknown" +#: js/blocks/ProgramBlocks.js:390 +#: js/blocks/ProgramBlocks.js:658 +#: js/blocks/ToneBlocks.js:1025 +msgid "file" msgstr "" -#: js/SensorsBlocks.js:36 -msgid "The Input block prompts for keyboard input." +#: js/blocks/ProgramBlocks.js:444 +msgid "The file you selected does not contain a valid dictionary." msgstr "" -#: js/SensorsBlocks.js:46 -msgid "input" +#: js/blocks/ProgramBlocks.js:449 +msgid "The load dictionary block needs a load file block." msgstr "" -#: js/SensorsBlocks.js:64 -msgid "Input a value" +#: js/blocks/ProgramBlocks.js:466 +msgid "The Set-dictionary block loads a dictionary." msgstr "" -#: js/SensorsBlocks.js:126 -msgid "input value" +#: js/blocks/ProgramBlocks.js:477 +#.TRANS: load a dictionary from a JSON +msgid "set dictionary" msgstr "" -#: js/SensorsBlocks.js:131 -msgid "The Input-value block stores the input." +#: js/blocks/ProgramBlocks.js:546 +msgid "The block you selected does not contain a valid dictionary." msgstr "" -#: js/SensorsBlocks.js:238 -msgid "loudness" +#: js/blocks/ProgramBlocks.js:550 +msgid "The set dictionary block needs a dictionary." msgstr "" -#: js/SensorsBlocks.js:245 -msgid "The Loudness block returns the volume detected by the microphone." +#: js/blocks/ProgramBlocks.js:567 +msgid "The Save-heap block saves the heap to a file." msgstr "" -#: js/SensorsBlocks.js:300 -msgid "click" +#: js/blocks/ProgramBlocks.js:578 +#.TRANS: save the heap to a file +msgid "save heap" msgstr "" -#: js/SensorsBlocks.js:306 -msgid "The Click block triggers an event if a mouse has been clicked." +#: js/blocks/ProgramBlocks.js:629 +msgid "The Save-dictionary block saves a dictionary to a file." msgstr "" -#: js/SensorsBlocks.js:313 -msgid "The Click block triggers an event if a turtle has been clicked." +#: js/blocks/ProgramBlocks.js:640 +#.TRANS: save a dictionary to a file +msgid "save dictionary" msgstr "" -#: js/SensorsBlocks.js:342 -msgid "cursor over" +#: js/blocks/ProgramBlocks.js:720 +msgid "The Open palette block opens a palette." msgstr "" -#: js/SensorsBlocks.js:387 -msgid "cursor out" +#: js/blocks/ProgramBlocks.js:727 +msgid "open palette" msgstr "" -#: js/SensorsBlocks.js:433 -msgid "cursor button down" +#: js/blocks/ProgramBlocks.js:785 +msgid "The Delete block block removes a block." msgstr "" -#: js/SensorsBlocks.js:477 -msgid "cursor button up" +#: js/blocks/ProgramBlocks.js:797 +#.TRANS: Move this block to the trash. +msgid "delete block" msgstr "" -#: js/SensorsBlocks.js:638 -msgid "The Get red block returns the red component of the pixel under the mouse." +#: js/blocks/ProgramBlocks.js:861 +msgid "The Move block block moves a block." msgstr "" -#: js/SensorsBlocks.js:644 -msgid "The Get red block returns the red component of the pixel under the turtle." +#: js/blocks/ProgramBlocks.js:869 +#.TRANS: Move the position of a block on the screen. +msgid "move block" msgstr "" -#: js/SensorsBlocks.js:685 -#: plugins/rodi.rtp:216 -msgid "pixel color" +#: js/blocks/ProgramBlocks.js:881 +#: js/blocks/ProgramBlocks.js:1048 +msgid "block number" msgstr "" -#: js/SensorsBlocks.js:690 -msgid "The Get pixel block returns the color of the pixel under the mouse." +#: js/blocks/ProgramBlocks.js:935 +#.TRANS: Run program beginning at this block. +msgid "run block" msgstr "" -#: js/SensorsBlocks.js:696 -msgid "The Get pixel block returns the color of the pixel under the turtle." +#: js/blocks/ProgramBlocks.js:1025 +msgid "The Dock block block connections two blocks." msgstr "" -#: js/SensorsBlocks.js:758 -msgid "time" +#: js/blocks/ProgramBlocks.js:1036 +#.TRANS: We can connect a block to another block. +msgid "connect blocks" msgstr "" -#: js/SensorsBlocks.js:804 -msgid "cursor y" +#: js/blocks/ProgramBlocks.js:1048 +msgid "target block" msgstr "" -#: js/SensorsBlocks.js:809 -msgid "The Cursor Y block returns the vertical position of the mouse." +#: js/blocks/ProgramBlocks.js:1048 +msgid "connection number" msgstr "" -#: js/SensorsBlocks.js:845 -msgid "cursor x" +#: js/blocks/ProgramBlocks.js:1140 +msgid "The Make block block creates a new block." msgstr "" -#: js/SensorsBlocks.js:850 -msgid "The Cursor X block returns the horizontal position of the mouse." +#: js/blocks/ProgramBlocks.js:1152 +#.TRANS: Create a new block +msgid "make block" msgstr "" -#: js/SensorsBlocks.js:886 -msgid "mouse button" +#: js/blocks/ProgramBlocks.js:1285 +msgid "Cannot find block" msgstr "" -#: js/SensorsBlocks.js:888 -msgid "The Mouse-button block returns True if the mouse button is pressed." +#: js/blocks/ProgramBlocks.js:1304 +#: js/blocks/ProgramBlocks.js:1313 +msgid "Warning: block argument type mismatch" msgstr "" -#: js/SensorsBlocks.js:934 -msgid "to ASCII" +#: js/blocks/ProgramBlocks.js:1347 +msgid "The Open project block is used to open a project from a web page." msgstr "" -#: js/SensorsBlocks.js:938 -msgid "The To ASCII block converts numbers to letters." +#: js/blocks/ProgramBlocks.js:1357 +msgid "open project" msgstr "" -#: js/SensorsBlocks.js:1005 -msgid "The Keyboard block returns computer keyboard input." +#: js/blocks/ProgramBlocks.js:1410 +msgid "Please enter a valid URL." msgstr "" -#: js/IntervalsActions.js:216 -msgid "Adding missing pitch number 0." +#: js/blocks/ToneBlocks.js:34 +msgid "oscillator" msgstr "" -#: js/IntervalsActions.js:224 -msgid "Ignoring pitch numbers less than zero or greater than eleven." +#: js/blocks/ToneBlocks.js:42 +#: js/blocks/WidgetBlocks.js:179 +#: js/widgets/timbre.js:1558 +#: js/widgets/timbre.js:1808 +#.TRANS: there are different types (sine, triangle, square...) of oscillators. +#.TRANS: type of filter, e.g., lowpass, highpass, etc. +msgid "type" msgstr "" -#: js/IntervalsActions.js:230 -msgid "Ignoring duplicate pitch numbers." +#: js/blocks/ToneBlocks.js:44 +#: js/widgets/timbre.js:1562 +#.TRANS: Partials refers to the number of sine waves combined into the sound. +msgid "partials" msgstr "" -#: js/PitchActions.js:88 -msgid "The Scalar Step Block must be used inside of a Note Block." +#: js/blocks/ToneBlocks.js:76 +msgid "You are adding multiple oscillator blocks." msgstr "" -#: js/PitchActions.js:107 -msgid "The Scalar Step Block must be preceded by a Pitch Block." +#: js/blocks/ToneBlocks.js:144 +#: js/widgets/timbre.js:1225 +#.TRANS: a duo synthesizer combines a synth with a sequencer +msgid "duo synth" msgstr "" -#: js/DrumActions.js:231 -msgid "Noise Block: Did you mean to use a Note block?" +#: js/blocks/ToneBlocks.js:149 +msgid "The Duo synth block is a duo-frequency modulator used to define a timbre." msgstr "" -#: js/MeterActions.js:101 -#: js/MeterActions.js:139 -msgid "beats per minute must be greater than" +#: js/blocks/ToneBlocks.js:157 +#: js/widgets/timbre.js:1476 +msgid "vibrato rate" msgstr "" -#: js/MeterActions.js:111 -#: js/MeterActions.js:149 -msgid "maximum" +#: js/blocks/ToneBlocks.js:157 +msgid "vibrato intensity" msgstr "" -#: js/MeterActions.js:117 -#: js/MeterActions.js:155 -msgid "beats per minute is" +#: js/blocks/ToneBlocks.js:185 +#: js/widgets/timbre.js:1221 +#.TRANS: AM (amplitude modulation) synthesizer +msgid "AM synth" msgstr "" -#: js/ToneActions.js:134 -msgid "Vibrato intensity must be between 1 and 100." +#: js/blocks/ToneBlocks.js:189 +msgid "The AM synth block is an amplitude modulator used to define a timbre." msgstr "" -#: js/ToneActions.js:139 -msgid "Vibrato rate must be greater than 0." +#: js/blocks/ToneBlocks.js:224 +#: js/widgets/timbre.js:1223 +#.TRANS: FM (frequency modulation) synthesizer +msgid "FM synth" msgstr "" -#: js/ToneActions.js:192 -#: js/ToneActions.js:265 -#.TRANS: Depth is the intesity of the tremolo or chorus effect. -msgid "Depth is out of range." +#: js/blocks/ToneBlocks.js:228 +msgid "The FM synth block is a frequency modulator used to define a timbre." msgstr "" -#: js/ToneActions.js:301 -msgid "Distortion must be from 0 to 100." +#: js/blocks/ToneBlocks.js:262 +msgid "partial" msgstr "" -#: js/ToneActions.js:332 -#.TRANS: partials components in a harmonic series -msgid "Partial must be greater than or equal to 0." +#: js/blocks/ToneBlocks.js:265 +msgid "The Partial block is used to specify a weight for a specific partial harmonic." msgstr "" -#: js/ToneActions.js:378 -#: js/ToneActions.js:417 -#: js/ToneActions.js:456 -#: js/timbre.js:782 -msgid "Unable to use synth due to existing oscillator" +#: js/blocks/ToneBlocks.js:284 +#.TRANS: partials are weighted components in a harmonic series +msgid "Partial weight must be between 0 and 1." msgstr "" -#: js/ToneActions.js:388 -#: js/ToneActions.js:427 -msgid "The input cannot be negative." +#: js/blocks/ToneBlocks.js:297 +#.TRANS: partials are weighted components in a harmonic series +msgid "Partial block should be used inside of a Weighted-partials block." msgstr "" -#: js/DictActions.js:75 -#: js/DictActions.js:153 -#: js/DictActions.js:188 -msgid "font" +#: js/blocks/ToneBlocks.js:325 +#.TRANS: partials are weighted components in a harmonic series +msgid "weighted partials" msgstr "" -#: js/musicutils.js:363 -#: js/musicutils.js:471 -#: js/pitchdrummatrix.js:151 -#: js/musickeyboard.js:2563 -msgid "rest" +#: js/blocks/ToneBlocks.js:383 +msgid "The Harmonic block will add harmonics to the contained notes." msgstr "" -#: js/musicutils.js:565 -#.TRANS: ordinal number. Please keep exactly one space between each number. -msgid "1st 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th" +#: js/blocks/ToneBlocks.js:390 +#.TRANS: A harmonic is an overtone. +msgid "harmonic" msgstr "" -#: js/musicutils.js:629 -#: js/musicutils.js:812 -#: js/musicutils.js:911 -#.TRANS: augmented is a music term related to intervals -msgid "augmented" +#: js/blocks/ToneBlocks.js:431 +msgid "The Distortion block adds distortion to the pitch." msgstr "" -#: js/musicutils.js:631 -#: js/musicutils.js:813 -#: js/musicutils.js:910 -#.TRANS: diminished is a music term related to intervals and mode -msgid "diminished" +#: js/blocks/ToneBlocks.js:438 +#: js/widgets/timbre.js:2100 +#.TRANS: distortion is an alteration in the sound +msgid "distortion" msgstr "" -#: js/musicutils.js:639 -#.TRANS: twelve semi-tone scale for music -msgid "chromatic" +#: js/blocks/ToneBlocks.js:487 +msgid "The Tremolo block adds a wavering effect." msgstr "" -#: js/musicutils.js:640 -msgid "algerian" +#: js/blocks/ToneBlocks.js:495 +#: js/widgets/timbre.js:2092 +#.TRANS: a wavering effect in a musical tone +msgid "tremolo" msgstr "" -#: js/musicutils.js:641 -msgid "spanish" +#: js/blocks/ToneBlocks.js:500 +#: js/blocks/ToneBlocks.js:569 +#: js/blocks/ToneBlocks.js:630 +#: js/blocks/ToneBlocks.js:689 +#: js/widgets/timbre.js:2134 +#: js/widgets/timbre.js:2222 +#: js/widgets/timbre.js:2317 +#: js/widgets/timbre.js:2419 +#.TRANS: rate at which tremolo wavers +msgid "rate" msgstr "" -#: js/musicutils.js:643 -#.TRANS: modal scale in music -msgid "octatonic" +#: js/blocks/ToneBlocks.js:502 +#: js/blocks/ToneBlocks.js:630 +#: js/widgets/timbre.js:2137 +#: js/widgets/timbre.js:2328 +#.TRANS: amplitude of tremolo waver +msgid "depth" msgstr "" -#: js/musicutils.js:645 -#.TRANS: harmonic major scale in music -msgid "harmonic major" +#: js/blocks/ToneBlocks.js:559 +msgid "The Phaser block adds a sweeping sound." msgstr "" -#: js/musicutils.js:647 -#.TRANS: natural minor scales in music -msgid "natural minor" +#: js/blocks/ToneBlocks.js:566 +#: js/widgets/timbre.js:2098 +#.TRANS: alter the phase of the sound +msgid "phaser" msgstr "" -#: js/musicutils.js:649 -#.TRANS: harmonic minor scale in music -msgid "harmonic minor" +#: js/blocks/ToneBlocks.js:569 +#: js/turtleactions/IntervalsActions.js:114 +#: js/widgets/timbre.js:2422 +msgid "octaves" msgstr "" -#: js/musicutils.js:651 -#.TRANS: melodic minor scale in music -msgid "melodic minor" +#: js/blocks/ToneBlocks.js:569 +#: js/widgets/timbre.js:2425 +msgid "base frequency" msgstr "" -#: js/musicutils.js:655 -#.TRANS: modal scale for music -msgid "dorian" +#: js/blocks/ToneBlocks.js:619 +msgid "The Chorus block adds a chorus effect." msgstr "" -#: js/musicutils.js:657 -#.TRANS: modal scale for music -msgid "phrygian" +#: js/blocks/ToneBlocks.js:627 +#: js/widgets/timbre.js:2096 +#.TRANS: musical effect to simulate a choral sound +msgid "chorus" msgstr "" -#: js/musicutils.js:659 -#.TRANS: modal scale for music -msgid "lydian" +#: js/blocks/ToneBlocks.js:630 +msgid "delay" msgstr "" -#: js/musicutils.js:661 -#.TRANS: modal scale for music -msgid "mixolydian" +#: js/blocks/ToneBlocks.js:678 +msgid "The Vibrato block adds a rapid, slight variation in pitch." msgstr "" -#: js/musicutils.js:665 -#.TRANS: modal scale for music -msgid "locrian" +#: js/blocks/ToneBlocks.js:686 +#: js/widgets/timbre.js:2094 +#.TRANS: a rapid, slight variation in pitch +msgid "vibrato" msgstr "" -#: js/musicutils.js:667 -#.TRANS: minor jazz scale for music -msgid "jazz minor" +#: js/blocks/ToneBlocks.js:689 +#: js/widgets/timbre.js:2221 +msgid "intensity" msgstr "" -#: js/musicutils.js:669 -#.TRANS: bebop scale for music -msgid "bebop" +#: js/blocks/ToneBlocks.js:733 +#.TRANS: select synthesizer +msgid "set synth" msgstr "" -#: js/musicutils.js:670 -msgid "arabic" +#: js/blocks/ToneBlocks.js:804 +msgid "synth name" msgstr "" -#: js/musicutils.js:671 -msgid "byzantine" +#: js/blocks/ToneBlocks.js:842 +msgid "set default instrument" msgstr "" -#: js/musicutils.js:673 -#.TRANS: musical scale for music by Verdi -msgid "enigmatic" +#: js/blocks/ToneBlocks.js:895 +#: js/blocks/ToneBlocks.js:943 +#.TRANS: set the characteristics of a custom instrument +msgid "set instrument" msgstr "" -#: js/musicutils.js:674 -msgid "ethiopian" +#: js/blocks/ToneBlocks.js:898 +#: js/blocks/ToneBlocks.js:926 +#: js/blocks/ToneBlocks.js:932 +msgid "The Set instrument block selects a voice for the synthesizer," msgstr "" -#: js/musicutils.js:676 -#.TRANS: Ethiopic scale for music -msgid "geez" +#: js/blocks/ToneBlocks.js:900 +#: js/blocks/ToneBlocks.js:934 +msgid "eg guitar piano violin or cello." msgstr "" -#: js/musicutils.js:677 -msgid "hindu" +#: js/blocks/ToneBlocks.js:1015 +msgid "Import a sound file to use as an instrument and set its pitch center." msgstr "" -#: js/musicutils.js:678 -msgid "hungarian" +#: js/blocks/ToneBlocks.js:1110 +msgid "Upload a sound file to connect with the sample block." msgstr "" -#: js/musicutils.js:680 -#.TRANS: minor Romanian scale for music -msgid "romanian minor" +#: js/blocks/VolumeBlocks.js:35 +msgid "synth volume" msgstr "" -#: js/musicutils.js:681 -msgid "spanish gypsy" +#: js/blocks/VolumeBlocks.js:39 +msgid "The Synth volume block returns the current volume of the current synthesizer." msgstr "" -#: js/musicutils.js:683 -#.TRANS: musical scale for Mid-Eastern music -msgid "maqam" +#: js/blocks/VolumeBlocks.js:105 +msgid "master volume" msgstr "" -#: js/musicutils.js:685 -#.TRANS: minor blues scale for music -msgid "minor blues" +#: js/blocks/VolumeBlocks.js:109 +msgid "The Master volume block returns the master volume." msgstr "" -#: js/musicutils.js:687 -#.TRANS: major blues scale for music -msgid "major blues" +#: js/blocks/VolumeBlocks.js:355 +#: js/blocks/VolumeBlocks.js:524 +msgid "set synth volume" msgstr "" -#: js/musicutils.js:688 -msgid "whole tone" +#: js/blocks/VolumeBlocks.js:362 +#: js/blocks/VolumeBlocks.js:545 +msgid "synth" msgstr "" -#: js/musicutils.js:690 -#.TRANS: pentatonic is a general term that means "five note scale". This scale is typically known as "minor pentatonic" -msgid "minor pentatonic" +#: js/blocks/VolumeBlocks.js:403 +#: js/blocks/VolumeBlocks.js:577 +#: js/blocks/VolumeBlocks.js:740 +#: js/turtleactions/VolumeActions.js:173 +msgid "Setting volume to 0." msgstr "" -#: js/musicutils.js:692 -#.TRANS: pentatonic is a general term that means "five note scale". This scale is typically known as "major pentatonic" -msgid "major pentatonic" +#: js/blocks/VolumeBlocks.js:440 +msgid "Synth not found" msgstr "" -#: js/musicutils.js:693 -msgid "chinese" +#: js/blocks/VolumeBlocks.js:494 +msgid "set drum volume" msgstr "" -#: js/musicutils.js:694 -msgid "egyptian" +#: js/blocks/VolumeBlocks.js:530 +msgid "The Set synth volume block will change the volume of a particular synth," msgstr "" -#: js/musicutils.js:696 -#.TRANS: https://en.wikipedia.org/wiki/Hirajoshi_scale NOTE: There are three different versions of this scale -msgid "hirajoshi" +#: js/blocks/VolumeBlocks.js:532 +msgid "eg guitar violin snare drum etc." msgstr "" -#: js/musicutils.js:697 -msgid "Japan" +#: js/blocks/VolumeBlocks.js:534 +msgid "The default volume is 50." msgstr "" -#: js/musicutils.js:699 -#.TRANS: https://en.wikipedia.org/wiki/In_scale and https://en.wikipedia.org/wiki/Sakura_Sakura -msgid "in" +#: js/blocks/VolumeBlocks.js:536 +msgid "The range is 0 for silence to 100 for full volume." msgstr "" -#: js/musicutils.js:701 -#.TRANS: https://en.wikipedia.org/wiki/Miny%C5%8D_scale -msgid "minyo" +#: js/blocks/VolumeBlocks.js:597 +msgid "set panning" msgstr "" -#: js/musicutils.js:703 -#.TRANS: Italian mathematician -msgid "fibonacci" +#: js/blocks/VolumeBlocks.js:603 +msgid "The Set Panning block sets the panning for all synthesizers." msgstr "" -#: js/musicutils.js:708 -#: js/musicutils.js:1106 -#.TRANS: lowpass filter -msgid "lowpass" +#: js/blocks/VolumeBlocks.js:625 +msgid "Warning: Sound is coming out from only the left or right side." msgstr "" -#: js/musicutils.js:710 -#: js/musicutils.js:1107 -#.TRANS: bandpass filter -msgid "bandpass" +#: js/blocks/VolumeBlocks.js:647 +#: js/blocks/VolumeBlocks.js:695 +msgid "set master volume" msgstr "" -#: js/musicutils.js:712 -#: js/musicutils.js:1108 -#.TRANS: high-shelf filter -msgid "highshelf" +#: js/blocks/VolumeBlocks.js:653 +msgid "The Set master volume block sets the volume for all synthesizers." msgstr "" -#: js/musicutils.js:714 -#: js/musicutils.js:1109 -#.TRANS: low-shelf filter -msgid "lowshelf" +#: js/blocks/VolumeBlocks.js:784 +msgid "The Set relative volume block changes the volume of the contained notes." msgstr "" -#: js/musicutils.js:716 -#: js/musicutils.js:1110 -#.TRANS: notch-shelf filter -msgid "notch" +#: js/blocks/VolumeBlocks.js:791 +msgid "set relative volume" msgstr "" -#: js/musicutils.js:718 -#: js/musicutils.js:1111 -#.TRANS: all-pass filter -msgid "allpass" +#: js/blocks/VolumeBlocks.js:857 +msgid "decrescendo" msgstr "" -#: js/musicutils.js:720 -#: js/musicutils.js:1112 -#.TRANS: peaking filter -msgid "peaking" +#: js/blocks/VolumeBlocks.js:921 +msgid "crescendo" msgstr "" -#: js/musicutils.js:731 -#: js/synthutils.js:58 -#.TRANS: musical instrument -msgid "violin" +#: js/blocks/WidgetBlocks.js:81 +#.TRANS: sound envelope (ADSR) +msgid "envelope" msgstr "" -#: js/musicutils.js:732 -#: js/synthutils.js:60 -#.TRANS: viola musical instrument -msgid "viola" +#: js/blocks/WidgetBlocks.js:89 +#.TRANS: Attack time is the time taken for initial run-up of level from nil to peak, beginning when the key is first pressed. +msgid "attack" msgstr "" -#: js/musicutils.js:733 -#: js/synthutils.js:98 -#.TRANS: xylophone musical instrument -msgid "xylophone" +#: js/blocks/WidgetBlocks.js:91 +#.TRANS: Decay time is the time taken for the subsequent run down from the attack level to the designated sustain level. +msgid "decay" msgstr "" -#: js/musicutils.js:734 -#: js/synthutils.js:120 -#.TRANS: vibraphone musical instrument -msgid "vibraphone" +#: js/blocks/WidgetBlocks.js:93 +#.TRANS: Sustain level is the level during the main sequence of the sound's duration, until the key is released. +msgid "sustain" msgstr "" -#: js/musicutils.js:735 -#: js/synthutils.js:62 -#.TRANS: musical instrument -msgid "cello" +#: js/blocks/WidgetBlocks.js:95 +#.TRANS: Release time is the time taken for the level to decay from the sustain level to zero after the key is released. +msgid "release" msgstr "" -#: js/musicutils.js:737 -#: js/synthutils.js:66 -#.TRANS: viola musical instrument -msgid "double bass" +#: js/blocks/WidgetBlocks.js:113 +msgid "Attack value should be from 0 to 100." msgstr "" -#: js/musicutils.js:738 -#: js/synthutils.js:68 -#: js/rhythmruler.js:2119 -#.TRANS: musical instrument -msgid "guitar" +#: js/blocks/WidgetBlocks.js:116 +msgid "Decay value should be from 0 to 100." msgstr "" -#: js/musicutils.js:739 -#: js/synthutils.js:70 -#.TRANS: musical instrument -msgid "acoustic guitar" +#: js/blocks/WidgetBlocks.js:119 +msgid "Sustain value should be from 0 to 100." msgstr "" -#: js/musicutils.js:740 -#: js/synthutils.js:72 -#.TRANS: musical instrument -msgid "flute" +#: js/blocks/WidgetBlocks.js:122 +msgid "Release value should be from 0-100." msgstr "" -#: js/musicutils.js:741 -#: js/synthutils.js:74 -#.TRANS: musical instrument -msgid "clarinet" +#: js/blocks/WidgetBlocks.js:140 +msgid "You are adding multiple envelope blocks." msgstr "" -#: js/musicutils.js:742 -#: js/synthutils.js:76 -#.TRANS: musical instrument -msgid "saxophone" +#: js/blocks/WidgetBlocks.js:171 +#.TRANS: a filter removes some unwanted components from a signal +msgid "filter" msgstr "" -#: js/musicutils.js:743 -#: js/synthutils.js:78 -#.TRANS: musical instrument -msgid "tuba" +#: js/blocks/WidgetBlocks.js:181 +#: js/widgets/timbre.js:1818 +#.TRANS: rolloff is the steepness of a change in frequency. +msgid "rolloff" msgstr "" -#: js/musicutils.js:744 -#: js/synthutils.js:80 -#.TRANS: musical instrument -msgid "trumpet" +#: js/blocks/WidgetBlocks.js:213 +#.TRANS: rolloff is the steepness of a change in frequency. +msgid "Rolloff value should be either -12, -24, -48, or -96 decibels/octave." msgstr "" -#: js/musicutils.js:745 -#: js/synthutils.js:82 -#.TRANS: musical instrument -msgid "oboe" +#: js/blocks/WidgetBlocks.js:252 +msgid "The Temperament tool is used to define custom tuning." msgstr "" -#: js/musicutils.js:746 -#: js/synthutils.js:84 -#.TRANS: musical instrument -msgid "trombone" +#: js/blocks/WidgetBlocks.js:332 +#: js/blocks/WidgetBlocks.js:1573 +#: js/widgets/sampler.js:547 +msgid "Upload a sample and adjust its pitch center." msgstr "" -#: js/musicutils.js:747 -#: js/synthutils.js:100 -#.TRANS: polytone synthesizer -msgid "electronic synth" +#: js/blocks/WidgetBlocks.js:339 +#.TRANS: the speed at music is should be played. +msgid "sampler" msgstr "" -#: js/musicutils.js:748 -#: js/synthutils.js:102 -#.TRANS: simple monotone synthesizer -msgid "simple 1" +#: js/blocks/WidgetBlocks.js:517 +msgid "The Meter block opens a tool to select strong beats for the meter." msgstr "" -#: js/musicutils.js:749 -msgid "simple 2" +#: js/blocks/WidgetBlocks.js:573 +msgid "The oscilloscope block opens a tool to visualize waveforms." msgstr "" -#: js/musicutils.js:750 -msgid "simple 3" +#: js/blocks/WidgetBlocks.js:578 +msgid "oscilloscope" msgstr "" -#: js/musicutils.js:751 -msgid "simple 4" +#: js/blocks/WidgetBlocks.js:645 +msgid "The Custom mode block opens a tool to explore musical mode (the spacing of the notes in a scale)." msgstr "" -#: js/musicutils.js:753 -#: js/synthutils.js:49 -#.TRANS: brown noise synthesizer -msgid "brown noise" +#: js/blocks/WidgetBlocks.js:651 +#.TRANS: musical mode is the pattern of half-steps in an octave, e.g., Major or Minor modes +msgid "custom mode" msgstr "" -#: js/musicutils.js:754 -#: js/synthutils.js:51 -#.TRANS: pink noise synthesizer -msgid "pink noise" +#: js/blocks/WidgetBlocks.js:700 +msgid "The Tempo block opens a metronome to visualize the beat." msgstr "" -#: js/musicutils.js:756 -#: js/synthutils.js:127 -#: js/rhythmruler.js:1670 -#: js/rhythmruler.js:1928 -#.TRANS: musical instrument -msgid "snare drum" +#: js/blocks/WidgetBlocks.js:762 +msgid "The Arpeggio Widget is used to compose chord sequences." msgstr "" -#: js/musicutils.js:757 -#: js/synthutils.js:129 -#.TRANS: musical instrument -msgid "kick drum" +#: js/blocks/WidgetBlocks.js:837 +msgid "The Pitch drum matrix is used to map pitches to drum sounds." msgstr "" -#: js/musicutils.js:758 -#: js/synthutils.js:131 -#.TRANS: musical instrument -msgid "tom tom" +#: js/blocks/WidgetBlocks.js:842 +#.TRANS: makes a mapping between pitches and drum sounds +msgid "pitch-drum mapper" msgstr "" -#: js/musicutils.js:759 -#: js/synthutils.js:133 -#.TRANS: musical instrument -msgid "floor tom" +#: js/blocks/WidgetBlocks.js:891 +msgid "You must have at least one pitch block and one drum block in the matrix." msgstr "" -#: js/musicutils.js:760 -#: js/synthutils.js:135 -#.TRANS: musical instrument -msgid "bass drum" +#: js/blocks/WidgetBlocks.js:920 +msgid "The Pitch slider tool to is used to generate pitches at selected frequencies." msgstr "" -#: js/musicutils.js:761 -#: js/synthutils.js:137 -#.TRANS: a drum made from an inverted cup -msgid "cup drum" +#: js/blocks/WidgetBlocks.js:925 +#.TRANS: widget to generate pitches using a slider +msgid "pitch slider" msgstr "" -#: js/musicutils.js:762 -#: js/synthutils.js:139 -#.TRANS: musical instrument -msgid "darbuka drum" +#: js/blocks/WidgetBlocks.js:977 +msgid "chromatic keyboard" msgstr "" -#: js/musicutils.js:763 -#: js/synthutils.js:143 -#.TRANS: musical instrument -msgid "hi hat" +#: js/blocks/WidgetBlocks.js:1011 +#: js/blocks/WidgetBlocks.js:1077 +#.TRANS: widget to generate pitches using a slider +msgid "music keyboard" msgstr "" -#: js/musicutils.js:764 -#: js/synthutils.js:145 -#.TRANS: a small metal bell -msgid "ride bell" +#: js/blocks/WidgetBlocks.js:1062 +#: js/blocks/WidgetBlocks.js:1069 +msgid "The Music keyboard block opens a piano keyboard that can be used to create notes." msgstr "" -#: js/musicutils.js:765 -#: js/synthutils.js:147 -#.TRANS: musical instrument -msgid "cow bell" +#: js/blocks/WidgetBlocks.js:1128 +msgid "The Pitch staircase tool to is used to generate pitches from a given ratio." msgstr "" -#: js/musicutils.js:766 -msgid "japanese drum" +#: js/blocks/WidgetBlocks.js:1135 +#.TRANS: generate a progressive sequence of pitches +msgid "pitch staircase" msgstr "" -#: js/musicutils.js:767 -#: js/synthutils.js:153 -#.TRANS: musical instrument -msgid "japanese bell" +#: js/blocks/WidgetBlocks.js:1222 +msgid "The Rhythm Maker block opens a tool to create drum machines." msgstr "" -#: js/musicutils.js:768 -#: js/synthutils.js:149 -#.TRANS: musical instrument -msgid "triangle bell" +#: js/blocks/WidgetBlocks.js:1291 +msgid "G major scale" msgstr "" -#: js/musicutils.js:769 -#: js/synthutils.js:151 -#.TRANS: musical instrument -msgid "finger cymbals" +#: js/blocks/WidgetBlocks.js:1326 +msgid "C major scale" msgstr "" -#: js/musicutils.js:770 -#: js/synthutils.js:155 -#.TRANS: a musically tuned set of bells -msgid "chime" +#: js/blocks/WidgetBlocks.js:1366 +msgid "The Phrase Maker block opens a tool to create musical phrases." msgstr "" -#: js/musicutils.js:771 -#: js/synthutils.js:157 -#.TRANS: a musical instrument -msgid "gong" +#: js/blocks/WidgetBlocks.js:1373 +#.TRANS: assigns pitch to a sequence of beats to generate a melody +msgid "phrase maker" msgstr "" -#: js/musicutils.js:772 -#: js/synthutils.js:159 -#.TRANS: sound effect -msgid "clang" +#: js/blocks/WidgetBlocks.js:1444 +msgid "You must have at least one pitch block and one rhythm block in the matrix." msgstr "" -#: js/musicutils.js:773 -#: js/synthutils.js:161 -#.TRANS: sound effect -msgid "crash" +#: js/blocks/WidgetBlocks.js:1503 +msgid "The Status block opens a tool for inspecting the status of Music Blocks as it is running." msgstr "" -#: js/musicutils.js:774 -#: js/synthutils.js:163 -#.TRANS: sound effect -msgid "bottle" +#: js/blocks/WidgetBlocks.js:1580 +#.TRANS: AI-generated music +msgid "aimusic" msgstr "" -#: js/musicutils.js:775 -#: js/synthutils.js:165 -#.TRANS: sound effect -msgid "clap" +#: js/turtleactions/MeterActions.js:101 +#: js/turtleactions/MeterActions.js:139 +msgid "beats per minute must be greater than" msgstr "" -#: js/musicutils.js:776 -#: js/synthutils.js:167 -#.TRANS: sound effect -msgid "slap" +#: js/turtleactions/MeterActions.js:111 +#: js/turtleactions/MeterActions.js:149 +msgid "maximum" msgstr "" -#: js/musicutils.js:777 -#: js/synthutils.js:169 -#.TRANS: sound effect -msgid "splash" +#: js/turtleactions/MeterActions.js:117 +#: js/turtleactions/MeterActions.js:155 +msgid "beats per minute is" msgstr "" -#: js/musicutils.js:778 -#: js/synthutils.js:171 -#.TRANS: sound effect -msgid "bubbles" +#: js/turtleactions/DictActions.js:75 +#: js/turtleactions/DictActions.js:142 +#: js/turtleactions/DictActions.js:172 +msgid "font" msgstr "" -#: js/musicutils.js:779 -#: js/synthutils.js:173 -#.TRANS: sound effect -msgid "raindrop" +#: js/turtleactions/DictActions.js:255 +msgid "Dictionary with this name does not exist" msgstr "" -#: js/musicutils.js:780 -#: js/synthutils.js:175 -#.TRANS: animal sound effect -msgid "cat" +#: js/turtleactions/DictActions.js:259 +msgid "Key with this name does not exist in " msgstr "" -#: js/musicutils.js:781 -#: js/synthutils.js:177 -#.TRANS: animal sound effect -msgid "cricket" +#: js/turtleactions/DrumActions.js:227 +msgid "Noise Block: Did you mean to use a Note block?" msgstr "" -#: js/musicutils.js:782 -#: js/synthutils.js:179 -#.TRANS: animal sound effect -msgid "dog" +#: js/turtleactions/IntervalsActions.js:113 +msgid "one" msgstr "" -#: js/musicutils.js:784 -#: js/synthutils.js:86 -#.TRANS: musical instrument -msgid "banjo" +#: js/turtleactions/IntervalsActions.js:113 +msgid "two" msgstr "" -#: js/musicutils.js:785 -#: js/synthutils.js:88 -#.TRANS: musical instrument -msgid "koto" +#: js/turtleactions/IntervalsActions.js:113 +msgid "three" msgstr "" -#: js/musicutils.js:786 -#: js/synthutils.js:90 -#.TRANS: musical instrument -msgid "dulcimer" +#: js/turtleactions/IntervalsActions.js:113 +msgid "four" msgstr "" -#: js/musicutils.js:787 -#: js/synthutils.js:92 -#.TRANS: musical instrument -msgid "electric guitar" +#: js/turtleactions/IntervalsActions.js:113 +msgid "five" msgstr "" -#: js/musicutils.js:788 -#: js/synthutils.js:94 -#.TRANS: musical instrument -msgid "bassoon" +#: js/turtleactions/IntervalsActions.js:113 +msgid "six" msgstr "" -#: js/musicutils.js:789 -#: js/synthutils.js:96 -#.TRANS: musical instrument -msgid "celeste" +#: js/turtleactions/IntervalsActions.js:113 +msgid "seven" msgstr "" -#: js/musicutils.js:791 -#: js/musicutils.js:1123 -#: js/musicutils.js:1131 -#: js/temperament.js:650 -#.TRANS: musical temperament -msgid "equal" +#: js/turtleactions/IntervalsActions.js:113 +msgid "eight" msgstr "" -#: js/musicutils.js:793 -#: js/musicutils.js:1125 -#: js/musicutils.js:1133 -#.TRANS: musical temperament -msgid "Pythagorean" +#: js/turtleactions/IntervalsActions.js:113 +msgid "nine" msgstr "" -#: js/musicutils.js:795 -#: js/musicutils.js:1124 -#: js/musicutils.js:1132 -#.TRANS: musical temperament -msgid "just intonation" +#: js/turtleactions/IntervalsActions.js:119 +msgid "a" msgstr "" -#: js/musicutils.js:797 -#: js/musicutils.js:1126 -#: js/musicutils.js:1127 -#: js/musicutils.js:1134 -#: js/musicutils.js:1135 -#.TRANS: musical temperament -msgid "meantone" +#: js/turtleactions/IntervalsActions.js:120 +msgid "below" msgstr "" -#: js/musicutils.js:814 -msgid "major 7th" +#: js/turtleactions/IntervalsActions.js:124 +msgid "above" msgstr "" -#: js/musicutils.js:815 -msgid "minor 7th" +#: js/turtleactions/IntervalsActions.js:131 +msgid "plus" msgstr "" -#: js/musicutils.js:816 -msgid "dominant 7th" +#: js/turtleactions/IntervalsActions.js:139 +msgid " below" msgstr "" -#: js/musicutils.js:817 -msgid "minor-major 7th" +#: js/turtleactions/IntervalsActions.js:257 +msgid "Adding missing pitch number 0." msgstr "" -#: js/musicutils.js:818 -msgid "fully-diminished 7th" +#: js/turtleactions/IntervalsActions.js:265 +msgid "Ignoring pitch numbers less than zero or greater than eleven." msgstr "" -#: js/musicutils.js:819 -msgid "half-diminished 7th" +#: js/turtleactions/IntervalsActions.js:271 +msgid "Ignoring duplicate pitch numbers." msgstr "" -#: js/musicutils.js:4379 -#: js/musicutils.js:4416 -msgid "current" +#: js/turtleactions/ToneActions.js:134 +msgid "Vibrato intensity must be between 1 and 100." msgstr "" -#: js/musicutils.js:4382 -#: js/musicutils.js:4407 -msgid "next" +#: js/turtleactions/ToneActions.js:139 +msgid "Vibrato rate must be greater than 0." msgstr "" -#: js/musicutils.js:4385 -#: js/musicutils.js:4412 -msgid "previous" +#: js/turtleactions/ToneActions.js:192 +#: js/turtleactions/ToneActions.js:265 +#.TRANS: Depth is the intesity of the tremolo or chorus effect. +msgid "Depth is out of range." msgstr "" -#: js/synthutils.js:104 -#.TRANS: simple monotone synthesizer -msgid "simple-2" +#: js/turtleactions/ToneActions.js:301 +msgid "Distortion must be from 0 to 100." msgstr "" -#: js/synthutils.js:106 -#.TRANS: simple monotone synthesizer -msgid "simple-3" +#: js/turtleactions/ToneActions.js:332 +#.TRANS: partials components in a harmonic series +msgid "Partial must be greater than or equal to 0." msgstr "" -#: js/synthutils.js:108 -#.TRANS: simple monotone synthesizer -msgid "simple-4" +#: js/turtleactions/ToneActions.js:378 +#: js/turtleactions/ToneActions.js:417 +#: js/turtleactions/ToneActions.js:456 +#: js/widgets/timbre.js:782 +msgid "Unable to use synth due to existing oscillator" msgstr "" -#: js/synthutils.js:141 -#.TRANS: musical instrument -msgid "taiko" +#: js/turtleactions/ToneActions.js:388 +#: js/turtleactions/ToneActions.js:427 +msgid "The input cannot be negative." msgstr "" -#: js/modewidget.js:86 -#: js/modewidget.js:88 -#: js/modewidget.js:642 -#: js/modewidget.js:644 -#: js/modewidget.js:712 -#: js/modewidget.js:714 -#: js/temperament.js:2078 -#: js/rhythmruler.js:189 -#: js/rhythmruler.js:1410 -#: js/rhythmruler.js:1412 -#: js/rhythmruler.js:1435 -#: js/rhythmruler.js:1437 -#: js/meterwidget.js:89 -#: js/meterwidget.js:91 +#: js/widgets/modewidget.js:86 +#: js/widgets/modewidget.js:88 +#: js/widgets/modewidget.js:642 +#: js/widgets/modewidget.js:644 +#: js/widgets/modewidget.js:712 +#: js/widgets/modewidget.js:714 +#: js/widgets/meterwidget.js:194 +#: js/widgets/meterwidget.js:196 +#: js/widgets/temperament.js:2236 +#: js/widgets/rhythmruler.js:457 +#: js/widgets/rhythmruler.js:1790 +#: js/widgets/rhythmruler.js:1792 +#: js/widgets/rhythmruler.js:1816 +#: js/widgets/rhythmruler.js:1818 msgid "Play all" msgstr "" -#: js/modewidget.js:115 -#: js/pitchstaircase.js:641 -#: js/phrasemaker.js:339 -#: js/pitchdrummatrix.js:94 -#: js/pitchslider.js:125 -#: js/temperament.js:2083 -#: js/musickeyboard.js:530 -#: js/timbre.js:756 -#: js/meterwidget.js:124 -#: js/arpeggio.js:103 +#: js/widgets/modewidget.js:115 +#: js/widgets/meterwidget.js:229 +#: js/widgets/pitchdrummatrix.js:166 +#: js/widgets/pitchslider.js:125 +#: js/widgets/pitchstaircase.js:641 +#: js/widgets/temperament.js:2244 +#: js/widgets/timbre.js:756 +#: js/widgets/arpeggio.js:103 +#: js/widgets/musickeyboard.js:688 +#: js/widgets/phrasemaker.js:550 msgid "Save" msgstr "" -#: js/modewidget.js:121 -#: js/pitchstaircase.js:686 -#: js/phrasemaker.js:356 -#: js/pitchdrummatrix.js:109 -#: js/musickeyboard.js:534 -#: js/rhythmruler.js:269 -#: js/arpeggio.js:118 +#: js/widgets/modewidget.js:121 +#: js/widgets/pitchdrummatrix.js:181 +#: js/widgets/pitchstaircase.js:686 +#: js/widgets/arpeggio.js:118 +#: js/widgets/musickeyboard.js:696 +#: js/widgets/phrasemaker.js:567 +#: js/widgets/rhythmruler.js:601 #.TRANS: clear all subdivisions from the ruler. msgid "Clear" msgstr "" -#: js/modewidget.js:127 +#: js/widgets/modewidget.js:127 msgid "Rotate counter clockwise" msgstr "" -#: js/modewidget.js:133 +#: js/widgets/modewidget.js:133 msgid "Rotate clockwise" msgstr "" -#: js/modewidget.js:139 +#: js/widgets/modewidget.js:139 msgid "Invert" msgstr "" -#: js/modewidget.js:145 -#: js/pitchstaircase.js:678 -#: js/rhythmruler.js:258 -#: js/timbre.js:963 +#: js/widgets/modewidget.js:145 +#: js/widgets/pitchstaircase.js:678 +#: js/widgets/timbre.js:963 +#: js/widgets/rhythmruler.js:578 msgid "Undo" msgstr "" -#: js/modewidget.js:163 +#: js/widgets/modewidget.js:163 #.TRANS: A circle of notes represents the musical mode. msgid "Click in the circle to select notes for the mode." msgstr "" -#: js/modewidget.js:1017 -#: js/pitchstaircase.js:580 -#: js/phrasemaker.js:4855 -#: js/temperament.js:1754 -#: js/rhythmruler.js:1865 -#: js/rhythmruler.js:2081 -#: js/tempo.js:414 +#: js/widgets/modewidget.js:1017 +#: js/widgets/pitchstaircase.js:580 +#: js/widgets/temperament.js:1929 +#: js/widgets/tempo.js:414 +#: js/widgets/phrasemaker.js:5356 +#: js/widgets/rhythmruler.js:2254 +#: js/widgets/rhythmruler.js:2472 msgid "New action block generated!" msgstr "" -#: js/oscilloscope.js:79 -msgid "Zoom In" -msgstr "" - -#: js/oscilloscope.js:88 -msgid "Zoom Out" -msgstr "" - -#: js/pitchstaircase.js:624 -msgid "Play chord" -msgstr "" - -#: js/pitchstaircase.js:632 -msgid "Play scale" +#: js/widgets/meterwidget.js:275 +msgid "Reset" msgstr "" -#: js/pitchstaircase.js:696 -msgid "Click on a note to create a new step." +#: js/widgets/meterwidget.js:301 +msgid "Click in the circle to select strong beats for the meter." msgstr "" -#: js/phrasemaker.js:363 -msgid "Export" +#: js/widgets/oscilloscope.js:79 +msgid "Zoom In" msgstr "" -#: js/phrasemaker.js:370 -msgid "Sort" +#: js/widgets/oscilloscope.js:88 +msgid "Zoom Out" msgstr "" -#: js/phrasemaker.js:373 -#: js/musickeyboard.js:559 -msgid "Add note" +#: js/widgets/pitchdrummatrix.js:356 +#: js/widgets/pitchdrummatrix.js:752 +msgid "Click in the grid to map notes to drums." msgstr "" -#: js/phrasemaker.js:764 -msgid "Click on the table to add notes." +#: js/widgets/pitchslider.js:103 +msgid "Move up" msgstr "" -#: js/phrasemaker.js:2414 -#: js/phrasemaker.js:2543 -msgid "tuplet value" +#: js/widgets/pitchslider.js:114 +msgid "Move down" msgstr "" -#: js/pitchdrummatrix.js:270 -#: js/pitchdrummatrix.js:639 -msgid "Click in the grid to map notes to drums." +#: js/widgets/pitchslider.js:136 +msgid "Click on the slider to create a note block." msgstr "" -#: js/pitchslider.js:103 -msgid "Move up" +#: js/widgets/pitchstaircase.js:624 +msgid "Play chord" msgstr "" -#: js/pitchslider.js:114 -msgid "Move down" +#: js/widgets/pitchstaircase.js:632 +msgid "Play scale" msgstr "" -#: js/pitchslider.js:136 -msgid "Click on the slider to create a note block." +#: js/widgets/pitchstaircase.js:696 +msgid "Click on a note to create a new step." msgstr "" -#: js/temperament.js:215 +#: js/widgets/temperament.js:321 msgid "back to 2:1 octave space" msgstr "" -#: js/temperament.js:323 +#: js/widgets/temperament.js:447 msgid "edit" msgstr "" -#: js/temperament.js:330 -#: js/temperament.js:332 -#: js/temperament.js:1336 -#: js/temperament.js:1338 +#: js/widgets/temperament.js:454 +#: js/widgets/temperament.js:456 +#: js/widgets/temperament.js:1493 +#: js/widgets/temperament.js:1495 msgid "close" msgstr "" -#: js/temperament.js:423 -#: js/temperament.js:736 -#: js/temperament.js:743 -#: js/temperament.js:845 -#: js/temperament.js:935 -#: js/temperament.js:942 -#: js/temperament.js:1015 -#: js/temperament.js:1284 -#: js/temperament.js:1354 -#: js/temperament.js:1430 +#: js/widgets/temperament.js:552 +#: js/widgets/temperament.js:877 +#: js/widgets/temperament.js:884 +#: js/widgets/temperament.js:986 +#: js/widgets/temperament.js:1080 +#: js/widgets/temperament.js:1087 +#: js/widgets/temperament.js:1160 +#: js/widgets/temperament.js:1433 +#: js/widgets/temperament.js:1511 +#: js/widgets/temperament.js:1596 msgid "done" msgstr "" -#: js/temperament.js:477 -#: js/temperament.js:482 -#: js/temperament.js:918 +#: js/widgets/temperament.js:610 +#: js/widgets/temperament.js:615 +#: js/widgets/temperament.js:1063 msgid "ratio" msgstr "" -#: js/temperament.js:483 +#: js/widgets/temperament.js:616 msgid "interval" msgstr "" -#: js/temperament.js:611 +#: js/widgets/temperament.js:744 msgid "non scalar" msgstr "" -#: js/temperament.js:650 +#: js/widgets/temperament.js:787 msgid "ratios" msgstr "" -#: js/temperament.js:650 +#: js/widgets/temperament.js:787 msgid "arbitrary" msgstr "" -#: js/temperament.js:719 +#: js/widgets/temperament.js:860 msgid "number of divisions" msgstr "" -#: js/temperament.js:741 -#: js/temperament.js:858 -#: js/temperament.js:940 -#: js/temperament.js:1033 +#: js/widgets/temperament.js:882 +#: js/widgets/temperament.js:999 +#: js/widgets/temperament.js:1085 +#: js/widgets/temperament.js:1178 msgid "preview" msgstr "" -#: js/temperament.js:788 +#: js/widgets/temperament.js:929 msgid "The Number of divisions is too large." msgstr "" -#: js/temperament.js:921 +#: js/widgets/temperament.js:1066 msgid "recursion" msgstr "" -#: js/temperament.js:1450 +#: js/widgets/temperament.js:1616 msgid "The octave ratio has changed. This changes temperament significantly." msgstr "" -#: js/temperament.js:2087 +#: js/widgets/temperament.js:2248 msgid "Table" msgstr "" -#: js/temperament.js:2185 +#: js/widgets/temperament.js:2356 msgid "Add pitches" msgstr "" -#: js/musickeyboard.js:570 -msgid "Metronome" +#: js/widgets/tempo.js:78 +#: js/widgets/tempo.js:97 +#: js/widgets/tempo.js:99 +#: js/widgets/aiwidget.js:134 +#: js/widgets/aiwidget.js:136 +#: js/widgets/rhythmruler.js:681 +#: js/widgets/rhythmruler.js:683 +#: js/widgets/rhythmruler.js:1864 +#: js/widgets/rhythmruler.js:1866 +#: js/widgets/sampler.js:180 +#: js/widgets/sampler.js:182 +msgid "Pause" msgstr "" -#: js/musickeyboard.js:1296 -#: plugins/rodi.rtp:193 -msgid "duration" +#: js/widgets/tempo.js:113 +msgid "Save tempo" msgstr "" -#: js/musickeyboard.js:2840 -msgid "New action blocks generated!" +#: js/widgets/tempo.js:144 +msgid "speed up" msgstr "" -#: js/musickeyboard.js:2841 -msgid "New action block generated" +#: js/widgets/tempo.js:150 +msgid "slow down" msgstr "" -#: js/musickeyboard.js:2984 -#: js/musickeyboard.js:2992 -msgid "MIDI device present." +#: js/widgets/tempo.js:194 +msgid "Adjust the tempo with the buttons." msgstr "" -#: js/musickeyboard.js:2995 -msgid "No MIDI device found." +#: js/widgets/tempo.js:261 +msgid "Please enter a number between 30 and 1000" msgstr "" -#: js/musickeyboard.js:3000 -msgid "Failed to get MIDI access in browser." +#: js/widgets/tempo.js:268 +#: js/widgets/tempo.js:271 +msgid "The beats per minute must be between 30 and 1000." msgstr "" -#: js/rhythmruler.js:202 -msgid "Save rhythms" +#: js/widgets/tempo.js:287 +msgid "The beats per minute must be below 1000." msgstr "" -#: js/rhythmruler.js:222 -msgid "Save drum machine" +#: js/widgets/tempo.js:303 +msgid "The beats per minute must be above 30" msgstr "" -#: js/rhythmruler.js:263 -#.TRANS: user can tap out a rhythm by clicking on a ruler. -msgid "Tap a rhythm" +#: js/widgets/timbre.js:766 +msgid "Synthesizer" msgstr "" -#: js/rhythmruler.js:342 -#: js/rhythmruler.js:344 -#: js/rhythmruler.js:1481 -#: js/rhythmruler.js:1483 -#: js/sampler.js:110 -#: js/sampler.js:112 -#: js/tempo.js:78 -#: js/tempo.js:97 -#: js/tempo.js:99 -msgid "Pause" +#: js/widgets/timbre.js:789 +msgid "Oscillator" msgstr "" -#: js/rhythmruler.js:478 -msgid "Click on the ruler to divide it." +#: js/widgets/timbre.js:840 +msgid "Envelope" msgstr "" -#: js/rhythmruler.js:603 -#: js/rhythmruler.js:605 -#: js/rhythmruler.js:804 -#: js/rhythmruler.js:806 -#: js/rhythmruler.js:1386 -#: js/rhythmruler.js:1388 -msgid "tap a rhythm" +#: js/widgets/timbre.js:886 +#: planet/js/GlobalTag.js:50 +#.TRANS: On the Planet, we use labels to tag projects. +msgid "Effects" msgstr "" -#: js/rhythmruler.js:1084 -msgid "Maximum value of 256 has been exceeded." +#: js/widgets/timbre.js:904 +msgid "Filter" msgstr "" -#: js/sampler.js:137 -msgid "Warning: Sample is bigger than 1MB." +#: js/widgets/timbre.js:946 +msgid "Add filter" msgstr "" -#: js/sampler.js:142 -msgid "Upload failed: Sample is not a .wav file." +#: js/widgets/timbre.js:987 +msgid "Click on buttons to open the timbre design tools." msgstr "" -#: js/sampler.js:164 -msgid "A new sample block was generated." +#: js/widgets/timbre.js:1273 +msgid "harmonicity" msgstr "" -#: js/sampler.js:255 -msgid "Upload sample" +#: js/widgets/timbre.js:1340 +#: js/widgets/timbre.js:1406 +msgid "modulation index" msgstr "" -#: js/sampler.js:306 -msgid "Save sample" +#: js/widgets/timbre.js:1484 +msgid "vibrato amount" msgstr "" -#: js/sampler.js:697 -#.TRANS: The reference tone is a sound used for comparison. -msgid "reference tone" +#: js/widgets/timbre.js:1919 +msgid "Filter already present." msgstr "" -#: js/tempo.js:113 -msgid "Save tempo" +#: js/widgets/timbre.js:2322 +msgid "delay (MS)" msgstr "" -#: js/tempo.js:144 -msgid "speed up" +#: js/widgets/timbre.js:2507 +msgid "distortion amount" msgstr "" -#: js/tempo.js:150 -msgid "slow down" +#: js/widgets/aiwidget.js:180 +#: js/widgets/sampler.js:227 +msgid "Warning: Sample is bigger than 1MB." msgstr "" -#: js/tempo.js:194 -msgid "Adjust the tempo with the buttons." +#: js/widgets/aiwidget.js:539 +msgid "New start block generated" msgstr "" -#: js/tempo.js:261 -msgid "Please enter a number between 30 and 1000" +#: js/widgets/aiwidget.js:541 +msgid "MIDI loading. This may take some time depending upon the number of notes in the track" msgstr "" -#: js/tempo.js:268 -#: js/tempo.js:271 -msgid "The beats per minute must be between 30 and 1000." +#: js/widgets/aiwidget.js:551 +#: js/widgets/sampler.js:254 +msgid "Upload failed: Sample is not a .wav file." msgstr "" -#: js/tempo.js:287 -msgid "The beats per minute must be below 1000." +#: js/widgets/aiwidget.js:679 +#: js/widgets/sampler.js:432 +msgid "Save sample" msgstr "" -#: js/tempo.js:303 -msgid "The beats per minute must be above 30" +#: js/widgets/aiwidget.js:701 +msgid "AI Music" msgstr "" -#: js/timbre.js:766 -msgid "Synthesizer" +#: js/widgets/arpeggio.js:239 +msgid "Click in the grid to add steps to the arpeggio." msgstr "" -#: js/timbre.js:789 -msgid "Oscillator" +#: js/widgets/help.js:95 +#: js/widgets/help.js:125 +#: js/widgets/help.js:146 +#: js/widgets/help.js:158 +#: js/widgets/help.js:376 +#: js/widgets/help.js:391 +msgid "Take a tour" msgstr "" -#: js/timbre.js:840 -msgid "Envelope" +#: js/widgets/musickeyboard.js:725 +#: js/widgets/phrasemaker.js:584 +msgid "Add note" msgstr "" -#: js/timbre.js:886 -#: js/GlobalTag.js:50 -#.TRANS: On the Planet, we use labels to tag projects. -msgid "Effects" +#: js/widgets/musickeyboard.js:744 +msgid "Metronome" +msgstr "" + +#: js/widgets/musickeyboard.js:1549 +#: plugins/rodi.rtp:193 +msgid "duration" +msgstr "" + +#: js/widgets/musickeyboard.js:3179 +msgid "New action blocks generated" +msgstr "" + +#: js/widgets/musickeyboard.js:3180 +msgid "New action block generated" msgstr "" -#: js/timbre.js:904 -msgid "Filter" +#: js/widgets/musickeyboard.js:3365 +#: js/widgets/musickeyboard.js:3373 +msgid "MIDI device present." msgstr "" -#: js/timbre.js:946 -msgid "Add filter" +#: js/widgets/musickeyboard.js:3376 +msgid "No MIDI device found." msgstr "" -#: js/timbre.js:987 -msgid "Click on buttons to open the timbre design tools." +#: js/widgets/musickeyboard.js:3386 +msgid "Failed to get MIDI access in browser." msgstr "" -#: js/timbre.js:1273 -msgid "harmonicity" +#: js/widgets/phrasemaker.js:574 +msgid "Export" msgstr "" -#: js/timbre.js:1340 -#: js/timbre.js:1406 -msgid "modulation index" +#: js/widgets/phrasemaker.js:581 +msgid "Sort" msgstr "" -#: js/timbre.js:1484 -msgid "vibrato amount" +#: js/widgets/phrasemaker.js:975 +msgid "Click on the table to add notes." msgstr "" -#: js/timbre.js:1919 -msgid "Filter already present." +#: js/widgets/phrasemaker.js:2677 +#: js/widgets/phrasemaker.js:2819 +msgid "tuplet value" msgstr "" -#: js/timbre.js:2322 -msgid "delay (MS)" +#: js/widgets/rhythmruler.js:486 +msgid "Save rhythms" msgstr "" -#: js/timbre.js:2507 -msgid "distortion amount" +#: js/widgets/rhythmruler.js:512 +msgid "Save drum machine" msgstr "" -#: js/meterwidget.js:170 -msgid "Reset" +#: js/widgets/rhythmruler.js:589 +#.TRANS: user can tap out a rhythm by clicking on a ruler. +msgid "Tap a rhythm" msgstr "" -#: js/meterwidget.js:196 -msgid "Click in the circle to select strong beats for the meter." +#: js/widgets/rhythmruler.js:817 +msgid "Click on the ruler to divide it." msgstr "" -#: js/arpeggio.js:239 -msgid "Click in the grid to add steps to the arpeggio." +#: js/widgets/rhythmruler.js:950 +#: js/widgets/rhythmruler.js:952 +#: js/widgets/rhythmruler.js:1152 +#: js/widgets/rhythmruler.js:1154 +#: js/widgets/rhythmruler.js:1765 +#: js/widgets/rhythmruler.js:1767 +msgid "tap a rhythm" msgstr "" -#: js/ProjectStorage.js:243 -msgid "anonymous" +#: js/widgets/rhythmruler.js:1459 +msgid "Maximum value of 256 has been exceeded." msgstr "" -#: js/GlobalCard.js:68 -msgid "Share" +#: js/widgets/sampler.js:237 +msgid "Recording started..." msgstr "" -#: js/GlobalCard.js:74 -msgid "Flags" +#: js/widgets/sampler.js:245 +msgid "Recording complete..." msgstr "" -#: js/LocalCard.js:36 -msgid "View published project" +#: js/widgets/sampler.js:283 +msgid "A new sample block was generated." msgstr "" -#: js/LocalCard.js:42 -msgid "Publish project" +#: js/widgets/sampler.js:378 +msgid "Upload sample" msgstr "" -#: js/LocalCard.js:51 -msgid "Edit project" +#: js/widgets/sampler.js:399 +msgid "Warning: Your sample cannot be loaded because it is >1MB." msgstr "" -#: js/LocalCard.js:52 -msgid "Delete project" +#: js/widgets/sampler.js:448 +msgid "Toggle Mic" msgstr "" -#: js/LocalCard.js:53 -msgid "Download project" +#: js/widgets/sampler.js:458 +msgid "Playback" msgstr "" -#: js/LocalCard.js:55 -msgid "Duplicate project" +#: js/widgets/sampler.js:979 +#.TRANS: The reference tone is a sound used for comparison. +msgid "reference tone" msgstr "" -#: js/GlobalTag.js:28 +#: planet/js/GlobalTag.js:28 #.TRANS: On the Planet, we use labels to tag projects. msgid "All Projects" msgstr "" -#: js/GlobalTag.js:30 -#: js/StringHelper.js:37 +#: planet/js/GlobalTag.js:30 +#: planet/js/StringHelper.js:37 #.TRANS: On the Planet, we use labels to tag projects. msgid "My Projects" msgstr "" -#: js/GlobalTag.js:32 +#: planet/js/GlobalTag.js:32 #.TRANS: On the Planet, we use labels to tag projects. msgid "Examples" msgstr "" -#: js/GlobalTag.js:34 +#: planet/js/GlobalTag.js:34 #.TRANS: On the Planet, we use labels to tag projects. msgid "Music" msgstr "" -#: js/GlobalTag.js:36 +#: planet/js/GlobalTag.js:36 #.TRANS: On the Planet, we use labels to tag projects. msgid "Art" msgstr "" -#: js/GlobalTag.js:38 +#: planet/js/GlobalTag.js:38 #.TRANS: On the Planet, we use labels to tag projects. msgid "Math" msgstr "" -#: js/GlobalTag.js:40 +#: planet/js/GlobalTag.js:40 #.TRANS: On the Planet, we use labels to tag projects. msgid "Interactive" msgstr "" -#: js/GlobalTag.js:42 +#: planet/js/GlobalTag.js:42 #.TRANS: On the Planet, we use labels to tag projects. msgid "Design" msgstr "" -#: js/GlobalTag.js:44 +#: planet/js/GlobalTag.js:44 #.TRANS: On the Planet, we use labels to tag projects. msgid "Game" msgstr "" -#: js/GlobalTag.js:46 +#: planet/js/GlobalTag.js:46 #.TRANS: On the Planet, we use labels to tag projects. msgid "Media" msgstr "" -#: js/GlobalTag.js:48 +#: planet/js/GlobalTag.js:48 #.TRANS: On the Planet, we use labels to tag projects. msgid "Sensors" msgstr "" -#: js/GlobalTag.js:52 +#: planet/js/GlobalTag.js:52 #.TRANS: On the Planet, we use labels to tag projects. msgid "Code Snippet" msgstr "" -#: js/helper.js:149 -#: js/StringHelper.js:49 -msgid "Show more tags" +#: planet/js/LocalCard.js:36 +msgid "View published project" msgstr "" -#: js/helper.js:150 -msgid "Show fewer tags" +#: planet/js/LocalCard.js:42 +msgid "Publish project" +msgstr "" + +#: planet/js/LocalCard.js:51 +msgid "Edit project" +msgstr "" + +#: planet/js/LocalCard.js:52 +msgid "Delete project" +msgstr "" + +#: planet/js/LocalCard.js:53 +msgid "Download project" +msgstr "" + +#: planet/js/LocalCard.js:55 +msgid "Duplicate project" +msgstr "" + +#: planet/js/ProjectStorage.js:243 +msgid "anonymous" +msgstr "" + +#: planet/js/SaveInterface.js:34 +msgid "Open in Music Blocks" +msgstr "" + +#: planet/js/SaveInterface.js:35 +msgid "Open in Turtle Blocks" +msgstr "" + +#: planet/js/GlobalCard.js:68 +msgid "Share" +msgstr "" + +#: planet/js/GlobalCard.js:74 +msgid "Flags" +msgstr "" + +#: planet/js/GlobalPlanet.js:35 +msgid "No results found." +msgstr "" + +#: planet/js/GlobalPlanet.js:51 +msgid "Remix of" +msgstr "" + +#: planet/js/GlobalPlanet.js:509 +msgid "Cannot connect to server" msgstr "" -#: js/ProjectViewer.js:30 +#: planet/js/ProjectViewer.js:30 msgid "Error: Report could not be submitted. Try again later." msgstr "" -#: js/ProjectViewer.js:31 +#: planet/js/ProjectViewer.js:31 msgid "Thank you for reporting this project. A moderator will review the project shortly, to verify violation of the Sugar Labs Code of Conduct." msgstr "" -#: js/ProjectViewer.js:32 -#: js/StringHelper.js:62 -#: js/StringHelper.js:64 -#: js/StringHelper.js:68 +#: planet/js/ProjectViewer.js:32 +#: planet/js/StringHelper.js:62 +#: planet/js/StringHelper.js:64 +#: planet/js/StringHelper.js:68 msgid "Report Project" msgstr "" -#: js/ProjectViewer.js:33 -#: js/StringHelper.js:63 +#: planet/js/ProjectViewer.js:33 +#: planet/js/StringHelper.js:63 msgid "Project Reported" msgstr "" -#: js/ProjectViewer.js:34 +#: planet/js/ProjectViewer.js:34 msgid "Report description required" msgstr "" -#: js/ProjectViewer.js:35 +#: planet/js/ProjectViewer.js:35 msgid "Report description too long" msgstr "" -#: js/StringHelper.js:30 +#: planet/js/Publisher.js:30 +msgid "Feature unavailable - cannot connect to server. Reload Music Blocks to try again." +msgstr "" + +#: planet/js/Publisher.js:220 +#: planet/js/Publisher.js:237 +msgid "This field is required" +msgstr "" + +#: planet/js/Publisher.js:227 +msgid "Title too long" +msgstr "" + +#: planet/js/Publisher.js:244 +msgid "Description too long" +msgstr "" + +#: planet/js/Publisher.js:341 +msgid "Server Error" +msgstr "" + +#: planet/js/Publisher.js:341 +msgid "Try Again" +msgstr "" + +#: planet/js/StringHelper.js:30 msgid "Planet" msgstr "" -#: js/StringHelper.js:31 +#: planet/js/StringHelper.js:31 msgid "Close Planet" msgstr "" -#: js/StringHelper.js:32 +#: planet/js/StringHelper.js:32 msgid "Open project from file" msgstr "" -#: js/StringHelper.js:34 +#: planet/js/StringHelper.js:34 msgid "Local" msgstr "" -#: js/StringHelper.js:35 +#: planet/js/StringHelper.js:35 msgid "Global" msgstr "" -#: js/StringHelper.js:36 +#: planet/js/StringHelper.js:36 msgid "Search for a project" msgstr "" -#: js/StringHelper.js:38 +#: planet/js/StringHelper.js:38 msgid "Publish Project" msgstr "" -#: js/StringHelper.js:40 +#: planet/js/StringHelper.js:40 msgid "Tags (max 5)" msgstr "" -#: js/StringHelper.js:41 -#: js/StringHelper.js:61 +#: planet/js/StringHelper.js:41 +#: planet/js/StringHelper.js:61 msgid "Description" msgstr "" -#: js/StringHelper.js:42 -#: js/StringHelper.js:67 +#: planet/js/StringHelper.js:42 +#: planet/js/StringHelper.js:67 msgid "Submit" msgstr "" -#: js/StringHelper.js:43 -#: js/StringHelper.js:47 +#: planet/js/StringHelper.js:43 +#: planet/js/StringHelper.js:47 msgid "Cancel" msgstr "" -#: js/StringHelper.js:44 +#: planet/js/StringHelper.js:44 msgid "Delete \\"\\"?" msgstr "" -#: js/StringHelper.js:45 +#: planet/js/StringHelper.js:45 msgid "Permanently delete project \\"\\"?" msgstr "" -#: js/StringHelper.js:48 +#: planet/js/StringHelper.js:48 msgid "Explore Projects" msgstr "" -#: js/StringHelper.js:50 +#: planet/js/StringHelper.js:49 +#: planet/js/helper.js:149 +msgid "Show more tags" +msgstr "" + +#: planet/js/StringHelper.js:50 msgid "Most recent" msgstr "" -#: js/StringHelper.js:51 +#: planet/js/StringHelper.js:51 msgid "Most liked" msgstr "" -#: js/StringHelper.js:52 +#: planet/js/StringHelper.js:52 msgid "Most downloaded" msgstr "" -#: js/StringHelper.js:53 +#: planet/js/StringHelper.js:53 msgid "A-Z" msgstr "" -#: js/StringHelper.js:54 +#: planet/js/StringHelper.js:54 msgid "Sort by" msgstr "" -#: js/StringHelper.js:55 +#: planet/js/StringHelper.js:55 msgid "Load More Projects" msgstr "" -#: js/StringHelper.js:56 +#: planet/js/StringHelper.js:56 msgid "Last Updated" msgstr "" -#: js/StringHelper.js:57 +#: planet/js/StringHelper.js:57 msgid "Creation Date" msgstr "" -#: js/StringHelper.js:58 +#: planet/js/StringHelper.js:58 msgid "Number of Downloads:" msgstr "" -#: js/StringHelper.js:59 +#: planet/js/StringHelper.js:59 msgid "Number of Likes:" msgstr "" -#: js/StringHelper.js:60 +#: planet/js/StringHelper.js:60 msgid "Tags:" msgstr "" -#: js/StringHelper.js:65 +#: planet/js/StringHelper.js:65 msgid "Report projects which violate the Sugar Labs Code of Conduct." msgstr "" -#: js/StringHelper.js:66 +#: planet/js/StringHelper.js:66 msgid "Reason for reporting project" msgstr "" -#: js/StringHelper.js:70 +#: planet/js/StringHelper.js:70 msgid "Download as File" msgstr "" -#: js/GlobalPlanet.js:35 -msgid "No results found." -msgstr "" - -#: js/GlobalPlanet.js:51 -msgid "Remix of" -msgstr "" - -#: js/GlobalPlanet.js:509 -msgid "Cannot connect to server" -msgstr "" - -#: js/Publisher.js:30 -msgid "Feature unavailable - cannot connect to server. Reload Music Blocks to try again." -msgstr "" - -#: js/Publisher.js:218 -#: js/Publisher.js:235 -msgid "This field is required" -msgstr "" - -#: js/Publisher.js:225 -msgid "Title too long" +#: planet/js/helper.js:150 +msgid "Show fewer tags" msgstr "" -#: js/Publisher.js:242 -msgid "Description too long" +#: plugins/accelerometer.rtp:48 +msgid "motion x" msgstr "" -#: js/Publisher.js:339 -msgid "Server Error" +#: plugins/accelerometer.rtp:56 +msgid "motion y" msgstr "" -#: js/Publisher.js:339 -msgid "Try Again" +#: plugins/accelerometer.rtp:64 +msgid "motion z" msgstr "" -#: js/SaveInterface.js:34 -msgid "Open in Music Blocks" +#: plugins/facebook.rtp:27 +msgid "publish" msgstr "" -#: js/SaveInterface.js:35 -msgid "Open in Turtle Blocks" +#: plugins/maths.rtp:62 +msgid "power" msgstr "" -#: plugins/weather.rtp:68 -#: plugins/weather.rtp:97 -msgid "Days ahead must be in the range of -1 to 5." +#: plugins/maths.rtp:62 +msgid "base" msgstr "" -#: plugins/weather.rtp:122 -msgid "forecast" +#: plugins/maths.rtp:62 +msgid "exp" msgstr "" -#: plugins/weather.rtp:123 -#: plugins/weather.rtp:137 -#: plugins/weather.rtp:150 -msgid "city" +#: plugins/maths.rtp:99 +msgid "floor" msgstr "" -#: plugins/weather.rtp:124 -#: plugins/weather.rtp:138 -#: plugins/weather.rtp:151 -msgid "day" +#: plugins/maths.rtp:104 +msgid "ceiling" msgstr "" -#: plugins/weather.rtp:136 -msgid "high" +#: plugins/maths.rtp:109 +msgid "to degrees" msgstr "" -#: plugins/weather.rtp:149 -msgid "low" +#: plugins/maths.rtp:114 +msgid "to radians" msgstr "" #: plugins/nutrition.rtp:104 @@ -9458,45 +9867,6 @@ msgstr "" msgid "water" msgstr "" -#: plugins/maths.rtp:62 -#: plugins/examples.rtp:93 -msgid "power" -msgstr "" - -#: plugins/maths.rtp:62 -#: plugins/examples.rtp:93 -msgid "base" -msgstr "" - -#: plugins/maths.rtp:62 -#: plugins/examples.rtp:93 -msgid "exp" -msgstr "" - -#: plugins/maths.rtp:99 -#: plugins/examples.rtp:130 -msgid "floor" -msgstr "" - -#: plugins/maths.rtp:104 -#: plugins/examples.rtp:135 -msgid "ceiling" -msgstr "" - -#: plugins/maths.rtp:109 -#: plugins/examples.rtp:140 -msgid "to degrees" -msgstr "" - -#: plugins/maths.rtp:114 -#: plugins/examples.rtp:145 -msgid "to radians" -msgstr "" - -#: plugins/facebook.rtp:27 -msgid "publish" -msgstr "" - #: plugins/rodi.rtp:172 msgid "blink" msgstr "" @@ -9525,18 +9895,66 @@ msgstr "" msgid "move" msgstr "" -#: plugins/accelerometer.rtp:48 -msgid "motion x" +#: plugins/weather.rtp:68 +#: plugins/weather.rtp:97 +msgid "Days ahead must be in the range of -1 to 5." msgstr "" -#: plugins/accelerometer.rtp:56 -msgid "motion y" +#: plugins/weather.rtp:122 +msgid "forecast" msgstr "" -#: plugins/accelerometer.rtp:64 -msgid "motion z" +#: plugins/weather.rtp:123 +#: plugins/weather.rtp:137 +#: plugins/weather.rtp:150 +msgid "city" +msgstr "" + +#: plugins/weather.rtp:124 +#: plugins/weather.rtp:138 +#: plugins/weather.rtp:151 +msgid "day" +msgstr "" + +#: plugins/weather.rtp:136 +msgid "high" +msgstr "" + +#: plugins/weather.rtp:149 +msgid "low" msgstr "" +#: js/toolbar.js:70 + +#: js/toolbar.js:130 + +#: js/toolbar.js:194 + +#: js/toolbar.js:249 + +#~msgid "Toggle JavaScript Editor" +#~msgstr "" + +#: js/EnsembleBlocks.js:643 + +#~msgid "The Turrle pitch block returns the current pitch number being played by the specified turtle." +#~msgstr "" + +#: js/PitchActions.js:88 + +#~msgid "The Scalar Step Block must be used inside of a Note Block." +#~msgstr "" + +#: js/PitchActions.js:107 + +#~msgid "The Scalar Step Block must be preceded by a Pitch Block." +#~msgstr "" + +#: js/musickeyboard.js:2840 + +#~msgid "New action blocks generated!" +#~msgstr "" + #: js/toolbar.js:110 #: js/toolbar.js:204 @@ -9877,11 +10295,6 @@ msgstr "" #~msgid "The Time block returns the number of seconds that the program has been running." #~msgstr "" -#: js/help.js:95 - -#~msgid "Take a tour" -#~msgstr "" - #: js/GlobalCard.js:48 #~msgid "More Details" @@ -12780,11 +13193,6 @@ msgstr "" #~msgid "The save-stack button saves a stack onto a custom palette. It appears after a \"long press\" on a stack." #~msgstr "" -#: js/musicutils.js:254 - -#~msgid "Custom" -#~msgstr "" - #: js/basicblocks.js:4785 #~msgid "Rhythm" diff --git a/po/ml.po b/po/ml.po index 3772713fd2..825edf5f83 100644 --- a/po/ml.po +++ b/po/ml.po @@ -2129,276 +2129,131 @@ #: js/planetInterface.js:104 #: js/planetInterface.js:104 #: js/planetInterface.js:104 -msgid "project undefined" -msgstr "" - -#: js/logo.js:61 -msgid "Not a valid pitch name" -msgstr "" - -#: js/logo.js:507 -#: js/ProgramBlocks.js:258 -#: js/ProgramBlocks.js:427 -msgid "You must select a file." -msgstr "" - -#: js/logo.js:1184 -#: js/turtles.js:118 -#: js/turtle-painter.js:1192 -#: js/turtle-painter.js:1193 -#: js/block.js:1463 -#: js/lilypond.js:757 -#: js/lilypond.js:921 -#: js/lilypond.js:959 -#: js/ActionBlocks.js:1223 -#: js/ProgramBlocks.js:1267 -msgid "start" -msgstr "" - -#: js/logo.js:1696 -msgid "Playback is ready." -msgstr "" - -#: js/blocks.js:1011 -#: js/blocks.js:3427 -#: js/blocks.js:3428 -#: js/blocks.js:3653 -#: js/blocks.js:4012 -#: js/blocks.js:4205 -#: js/blocks.js:5343 -#: js/blocks.js:6474 -#: js/palette.js:527 -#: js/palette.js:536 -#: js/palette.js:545 -#: js/palette.js:554 -#: js/palette.js:1131 -#: js/palette.js:1142 -#: js/palette.js:1153 -#: js/palette.js:1164 -#: js/palette.js:1183 -#: js/rubrics.js:529 -#: js/macros.js:170 -#: js/macros.js:266 -#: js/macros.js:267 -#: js/macros.js:276 -#: js/macros.js:828 -#: js/block.js:1449 -#: js/block.js:4164 -#: js/block.js:4182 -#: js/block.js:4193 -#: js/turtledefs.js:128 -#: js/turtledefs.js:230 -#: js/ActionBlocks.js:254 -#: js/ActionBlocks.js:307 -#: js/ActionBlocks.js:617 -#: js/ActionBlocks.js:716 -#: js/ActionBlocks.js:961 -#: js/ActionBlocks.js:1049 -#: js/ActionBlocks.js:1322 -#: js/ActionBlocks.js:1325 -#: js/ActionBlocks.js:1337 -#: js/ActionBlocks.js:1404 -#: js/MeterBlocks.js:715 -#: js/MeterBlocks.js:768 -#: js/MeterBlocks.js:831 -#: js/MeterBlocks.js:892 -#: js/phrasemaker.js:4412 -#: js/musickeyboard.js:2647 -#: js/rhythmruler.js:1928 -#: js/rhythmruler.js:1935 -#: js/rhythmruler.js:2119 -#: js/rhythmruler.js:2126 -msgid "action" -msgstr "" - -#: js/blocks.js:1205 -#: js/blocks.js:3380 -#: js/blocks.js:3770 -#: js/blocks.js:3801 -#: js/blocks.js:3850 -#: js/blocks.js:3885 -#: js/blocks.js:6497 -#: js/palette.js:509 -#: js/palette.js:638 -#: js/palette.js:1107 -#: js/BoxesBlocks.js:282 -#: js/BoxesBlocks.js:285 -#: js/BoxesBlocks.js:405 -#: js/BoxesBlocks.js:594 -msgid "box" -msgstr "" - -#: js/blocks.js:1680 -msgid "Consider breaking this stack into parts." +#: js/SaveInterface.js:59 +#: js/SaveInterface.js:61 +#: js/SaveInterface.js:93 +msgid "Music Blocks Project" msgstr "" -#: js/blocks.js:2408 -#: js/palette.js:653 -#: js/MediaBlocks.js:602 -msgid "open file" +#: js/SaveInterface.js:63 +msgid "This project was created in Music Blocks" msgstr "" -#: js/blocks.js:2415 -#: js/blocks.js:2423 -#: js/activity.js:1875 -msgid "audio file" +#: js/SaveInterface.js:67 +msgid "Music Blocks is a Free/Libre Software application." msgstr "" -#: js/blocks.js:2536 -#: js/blocks.js:3147 -#: js/block.js:3543 -msgid "on2" +#: js/SaveInterface.js:69 +msgid "The source code can be accessed at" msgstr "" -#: js/blocks.js:2538 -#: js/blocks.js:3149 -#: js/block.js:3545 -msgid "off" +#: js/SaveInterface.js:72 +msgid "For more information, please consult the" msgstr "" -#: js/blocks.js:2543 -#: js/blocks.js:3154 -#: js/palette.js:618 -#: js/block.js:3466 -#: js/BooleanBlocks.js:77 -#: js/BooleanBlocks.js:167 -#: js/BooleanBlocks.js:251 -#: js/BooleanBlocks.js:335 -#: js/BooleanBlocks.js:433 -#: js/BooleanBlocks.js:539 -#: js/BooleanBlocks.js:640 -#: js/BooleanBlocks.js:741 -#: js/BooleanBlocks.js:847 -#: js/BooleanBlocks.js:948 -#: js/BooleanBlocks.js:1033 -#: js/SensorsBlocks.js:910 -msgid "true" +#: js/SaveInterface.js:76 +#: js/turtledefs.js:795 +msgid "Music Blocks Guide" msgstr "" -#: js/blocks.js:2545 -#: js/blocks.js:3156 -#: js/block.js:3466 -#: js/BooleanBlocks.js:79 -#: js/BooleanBlocks.js:169 -#: js/BooleanBlocks.js:253 -#: js/BooleanBlocks.js:337 -#: js/BooleanBlocks.js:435 -#: js/BooleanBlocks.js:541 -#: js/BooleanBlocks.js:642 -#: js/BooleanBlocks.js:743 -#: js/BooleanBlocks.js:849 -#: js/BooleanBlocks.js:950 -#: js/SensorsBlocks.js:912 -msgid "false" +#: js/SaveInterface.js:83 +msgid "Alternatively, open the file in Music Blocks using the Load project button." msgstr "" -#: js/blocks.js:3183 -#: js/palette.js:574 -#: js/MediaBlocks.js:892 -#: js/MediaBlocks.js:963 -msgid "text" +#: js/SaveInterface.js:85 +msgid "Project Code" msgstr "" -#: js/blocks.js:3379 -#: js/palette.js:641 -#: js/palette.js:642 -#: js/BoxesBlocks.js:514 -msgid "store in box" +#: js/SaveInterface.js:87 +msgid "This code stores data about the blocks in a project." msgstr "" -#: js/blocks.js:3384 -#: js/blocks.js:3824 -#: js/blocks.js:3859 -#: js/blocks.js:3894 -#: js/blocks.js:5773 -#: js/blocks.js:5794 -#: js/BoxesBlocks.js:772 -msgid "box1" +#: js/SaveInterface.js:89 +msgid "Show" msgstr "" -#: js/blocks.js:3386 -#: js/blocks.js:3826 -#: js/blocks.js:3861 -#: js/blocks.js:3896 -#: js/blocks.js:5775 -#: js/blocks.js:5796 -#: js/BoxesBlocks.js:663 -msgid "box2" +#: js/SaveInterface.js:91 +msgid "Hide" msgstr "" -#: js/blocks.js:4058 -#: js/palette.js:639 -#: js/palette.js:644 -#: js/palette.js:1043 -#: js/BoxesBlocks.js:591 -msgid "store in" +#: js/SaveInterface.js:131 +#: js/SaveInterface.js:204 +#: js/SaveInterface.js:262 +#: js/SaveInterface.js:389 +#: js/SaveInterface.js:417 +#: js/activity.js:4884 +#: planet/js/ProjectStorage.js:27 +#: planet/js/GlobalPlanet.js:467 +#: planet/js/GlobalPlanet.js:469 +#: planet/js/GlobalPlanet.js:495 +#.TRANS: default project title when saving as Lilypond +msgid "My Project" msgstr "" -#: js/blocks.js:4058 -#: js/EnsembleBlocks.js:391 -#: js/EnsembleBlocks.js:402 -#: js/MediaBlocks.js:746 -#: js/ProgramBlocks.js:390 -#: js/ProgramBlocks.js:495 -#: js/ProgramBlocks.js:658 -#: js/BoxesBlocks.js:595 -#: js/PitchBlocks.js:656 -#: js/PitchBlocks.js:932 -#: js/PitchBlocks.js:1827 -#: js/ToneBlocks.js:1025 -#: js/DictBlocks.js:215 -#: js/DictBlocks.js:289 -msgid "name" +#: js/SaveInterface.js:197 +#: planet/js/SaveInterface.js:58 +msgid "No description provided" msgstr "" -#: js/blocks.js:4058 -#: js/RhythmBlocks.js:1130 -#: js/BoxesBlocks.js:75 -#: js/BoxesBlocks.js:595 -#: js/HeapBlocks.js:544 -#: js/DictBlocks.js:289 -#: js/DictBlocks.js:430 -msgid "value" +#: js/SaveInterface.js:332 +msgid "Your recording is in progress." msgstr "" -#: js/blocks.js:4907 -msgid "There is no block selected." +#: js/SaveInterface.js:401 +#.TRANS: File name prompt for save as Lilypond +msgid "File name" msgstr "" -#: js/blocks.js:5002 -#: js/MediaBlocks.js:888 -msgid "show" +#: js/SaveInterface.js:403 +#: planet/js/StringHelper.js:39 +#.TRANS: Project title prompt for save as Lilypond +msgid "Project title" msgstr "" -#: js/blocks.js:5005 -#: js/MediaBlocks.js:803 -#.TRANS: Avatar is the image used to determine the appearance of the mouse. -msgid "avatar" +#: js/SaveInterface.js:405 +#.TRANS: Project title prompt for save as Lilypond +msgid "Project author" msgstr "" -#: js/blocks.js:5008 -#: js/ToneBlocks.js:1010 -#: js/sampler.js:693 -#.TRANS: The sound sample that the user uploads. -msgid "sample" +#: js/SaveInterface.js:407 +#.TRANS: MIDI prompt for save as Lilypond +msgid "Include MIDI output?" msgstr "" -#: js/turtles.js:874 -msgid "Grid" +#: js/SaveInterface.js:409 +#.TRANS: Guitar prompt for save as Lilypond +msgid "Include guitar tablature output?" msgstr "" -#: js/turtles.js:891 -#: js/turtledefs.js:626 -msgid "Clean" +#: js/SaveInterface.js:411 +#.TRANS: Lilypond is a scripting language for generating sheet music +msgid "Save as Lilypond" msgstr "" -#: js/turtles.js:912 -#: js/turtledefs.js:632 -msgid "Collapse" +#: js/SaveInterface.js:426 +#: js/blocks/EnsembleBlocks.js:75 +#: js/blocks/EnsembleBlocks.js:154 +#: js/blocks/EnsembleBlocks.js:216 +#: js/blocks/EnsembleBlocks.js:302 +#: js/blocks/EnsembleBlocks.js:348 +#: js/blocks/EnsembleBlocks.js:389 +#: js/blocks/EnsembleBlocks.js:441 +#: js/blocks/EnsembleBlocks.js:490 +#: js/blocks/EnsembleBlocks.js:536 +#: js/blocks/EnsembleBlocks.js:583 +#: js/blocks/EnsembleBlocks.js:637 +#: js/blocks/EnsembleBlocks.js:753 +#: js/blocks/EnsembleBlocks.js:840 +#: js/blocks/EnsembleBlocks.js:899 +#: js/blocks/EnsembleBlocks.js:942 +#: js/blocks/EnsembleBlocks.js:1212 +#: js/blocks/EnsembleBlocks.js:1280 +#.TRANS: default project author when saving as Lilypond +msgid "Mr. Mouse" msgstr "" -#: js/turtles.js:940 -msgid "Expand" +#: js/SaveInterface.js:573 +msgid "The Lilypond code is copied to clipboard. You can paste it here: " msgstr "" #: js/languagebox.js:198 @@ -2409,6933 +2264,7487 @@ msgstr "" msgid "Music Blocks is already set to this language." msgstr "" -#: js/piemenus.js:200 -#: js/musicutils.js:808 -#: js/musicutils.js:824 -#: js/phrasemaker.js:1672 -#: js/musickeyboard.js:2041 -#: js/sampler.js:544 -#.TRANS: double sharp is a music term related to pitch -msgid "double sharp" +#: js/planetInterface.js:131 +msgid "project undefined" msgstr "" -#: js/piemenus.js:201 -#: js/PitchBlocks.js:1510 -#: js/PitchActions.js:580 -#: js/musicutils.js:806 -#: js/musicutils.js:825 -#: js/phrasemaker.js:1673 -#: js/musickeyboard.js:2042 -#: js/sampler.js:545 -#.TRANS: sharp is a half-step up in pitch -#.TRANS: sharp is a music term related to pitch -msgid "sharp" +#: js/rubrics.js:523 +#: js/turtledefs.js:119 +#: js/turtledefs.js:221 +#: js/blocks/RhythmBlockPaletteBlocks.js:52 +#: js/blocks/RhythmBlockPaletteBlocks.js:234 +#: js/blocks/ProgramBlocks.js:745 +#: js/widgets/rhythmruler.js:2057 +#: js/widgets/rhythmruler.js:2064 +#: js/widgets/rhythmruler.js:2133 +#: js/widgets/rhythmruler.js:2140 +#: js/widgets/rhythmruler.js:2219 +#.TRANS: an arrangement of notes based on duration +msgid "rhythm" msgstr "" -#: js/piemenus.js:202 -#: js/musicutils.js:804 -#: js/musicutils.js:826 -#: js/phrasemaker.js:1674 -#: js/musickeyboard.js:2043 -#: js/sampler.js:546 -#.TRANS: natural is a music term related to pitch -msgid "natural" +#: js/rubrics.js:524 +#: js/turtledefs.js:121 +#: js/turtledefs.js:223 +#: js/block-verbose.js:2622 +#: js/block.js:2550 +#: js/blocks/IntervalsBlocks.js:63 +#: js/blocks/SensorsBlocks.js:178 +#: js/blocks/PitchBlocks.js:1839 +#: js/blocks/PitchBlocks.js:1853 +#: js/widgets/musickeyboard.js:1935 +#: js/widgets/phrasemaker.js:1036 +#.TRANS: pitch number +#.TRANS: pitch number +#.TRANS: we specify pitch in terms of a name and an octave. The name can be CDEFGAB or Do Re Mi Fa Sol La Ti. Octave is a number between 1 and 8. +msgid "pitch" msgstr "" -#: js/piemenus.js:203 -#: js/PitchBlocks.js:1469 -#: js/PitchActions.js:583 -#: js/musicutils.js:802 -#: js/musicutils.js:827 -#: js/phrasemaker.js:1675 -#: js/musickeyboard.js:2044 -#: js/sampler.js:547 -#.TRANS: flat is a half-step down in pitch -#.TRANS: flat is a music term related to pitch -msgid "flat" +#: js/rubrics.js:525 +#: js/turtledefs.js:123 +#: js/turtledefs.js:225 +msgid "tone" msgstr "" -#: js/piemenus.js:204 -#: js/musicutils.js:800 -#: js/musicutils.js:828 -#: js/phrasemaker.js:1676 -#: js/musickeyboard.js:2045 -#: js/sampler.js:548 -#.TRANS: double flat is a music term related to pitch -msgid "double flat" +#: js/rubrics.js:526 +#: js/lilypond.js:605 +#: js/lilypond.js:904 +#: js/lilypond.js:910 +#: js/lilypond.js:948 +msgid "mouse" msgstr "" -#: js/piemenus.js:2861 -#: js/PitchBlocks.js:1357 -#: js/musicutils.js:627 -#.TRANS: unison means the note is the same as the current note -#.TRANS: unison is a music term related to intervals -msgid "unison" +#: js/rubrics.js:527 +#: js/turtledefs.js:132 +#: js/turtledefs.js:234 +#: js/widgets/phrasemaker.js:1040 +msgid "pen" msgstr "" -#: js/piemenus.js:3015 -#: js/piemenus.js:3088 -#: js/musicutils.js:635 -#: js/musicutils.js:810 -#: js/musicutils.js:912 -#.TRANS: major is a music term related to intervals and mode -msgid "major" +#: js/rubrics.js:528 +#: js/turtledefs.js:133 +#: js/turtledefs.js:235 +#: js/blocks/NumberBlocks.js:981 +#: js/blocks/PitchBlocks.js:1717 +#: js/blocks/PitchBlocks.js:1758 +msgid "number" msgstr "" -#: js/piemenus.js:3015 -#: js/piemenus.js:3088 -#: js/musicutils.js:653 -#.TRANS: modal scale for music -msgid "ionian" +#: js/rubrics.js:529 +#: js/turtledefs.js:127 +#: js/turtledefs.js:229 +msgid "flow" msgstr "" -#: js/piemenus.js:3017 -#: js/piemenus.js:3092 -#: js/musicutils.js:633 -#: js/musicutils.js:811 -#: js/musicutils.js:909 -#.TRANS: minor is a music term related to intervals and mode -msgid "minor" +#: js/rubrics.js:530 +#: js/turtledefs.js:128 +#: js/turtledefs.js:230 +#: js/block-verbose.js:1609 +#: js/block-verbose.js:4559 +#: js/block-verbose.js:4577 +#: js/block-verbose.js:4588 +#: js/block.js:1573 +#: js/block.js:4483 +#: js/block.js:4501 +#: js/block.js:4512 +#: js/blocks.js:1018 +#: js/blocks.js:3491 +#: js/blocks.js:3492 +#: js/blocks.js:3717 +#: js/blocks.js:4076 +#: js/blocks.js:4269 +#: js/blocks.js:5432 +#: js/blocks.js:6563 +#: js/macros.js:170 +#: js/macros.js:266 +#: js/macros.js:267 +#: js/macros.js:276 +#: js/macros.js:828 +#: js/palette.js:527 +#: js/palette.js:536 +#: js/palette.js:545 +#: js/palette.js:554 +#: js/palette.js:1129 +#: js/palette.js:1140 +#: js/palette.js:1151 +#: js/palette.js:1162 +#: js/palette.js:1181 +#: js/blocks/ActionBlocks.js:254 +#: js/blocks/ActionBlocks.js:307 +#: js/blocks/ActionBlocks.js:617 +#: js/blocks/ActionBlocks.js:716 +#: js/blocks/ActionBlocks.js:961 +#: js/blocks/ActionBlocks.js:1049 +#: js/blocks/ActionBlocks.js:1322 +#: js/blocks/ActionBlocks.js:1325 +#: js/blocks/ActionBlocks.js:1337 +#: js/blocks/ActionBlocks.js:1404 +#: js/blocks/MeterBlocks.js:715 +#: js/blocks/MeterBlocks.js:768 +#: js/blocks/MeterBlocks.js:831 +#: js/blocks/MeterBlocks.js:892 +#: js/widgets/musickeyboard.js:2986 +#: js/widgets/phrasemaker.js:4913 +#: js/widgets/rhythmruler.js:2319 +#: js/widgets/rhythmruler.js:2326 +#: js/widgets/rhythmruler.js:2511 +#: js/widgets/rhythmruler.js:2518 +msgid "action" msgstr "" -#: js/piemenus.js:3017 -#: js/piemenus.js:3092 -#: js/musicutils.js:663 -#.TRANS: modal scale for music -msgid "aeolian" +#: js/rubrics.js:531 +#: js/turtledefs.js:136 +#: js/turtledefs.js:238 +msgid "sensors" msgstr "" -#: js/piemenus.js:3407 -msgid "Duplicate" +#: js/rubrics.js:532 +#: js/turtledefs.js:135 +#: js/turtledefs.js:237 +#: js/blocks/MediaBlocks.js:930 +msgid "media" msgstr "" -#: js/piemenus.js:3408 -#: js/turtledefs.js:534 -msgid "Extract" +#: js/rubrics.js:533 +msgid "mice" msgstr "" -#: js/piemenus.js:3409 -msgid "Move to trash" +#: js/toolbar.js:48 +#: js/toolbar.js:109 +msgid "About Music Blocks" msgstr "" -#: js/piemenus.js:3410 -#: js/timbre.js:968 -#: js/StringHelper.js:69 -msgid "Close" +#: js/toolbar.js:49 +#: js/toolbar.js:110 +#: js/toolbar.js:175 +#: js/toolbar.js:231 +#: js/turtledefs.js:445 +#: js/turtledefs.js:482 +#: js/activity.js:2660 +#: js/activity.js:2671 +#: js/activity.js:2902 +#: js/widgets/modewidget.js:77 +#: js/widgets/meterwidget.js:185 +#: js/widgets/pitchdrummatrix.js:147 +#: js/widgets/pitchdrummatrix.js:687 +#: js/widgets/pitchdrummatrix.js:689 +#: js/widgets/pitchdrummatrix.js:741 +#: js/widgets/pitchdrummatrix.js:743 +#: js/widgets/pitchdrummatrix.js:758 +#: js/widgets/pitchdrummatrix.js:760 +#: js/widgets/pitchdrummatrix.js:789 +#: js/widgets/pitchdrummatrix.js:791 +#: js/widgets/pitchstaircase.js:121 +#: js/widgets/temperament.js:610 +#: js/widgets/temperament.js:613 +#: js/widgets/temperament.js:673 +#: js/widgets/temperament.js:675 +#: js/widgets/temperament.js:2017 +#: js/widgets/temperament.js:2019 +#: js/widgets/tempo.js:84 +#: js/widgets/tempo.js:86 +#: js/widgets/timbre.js:432 +#: js/widgets/timbre.js:434 +#: js/widgets/timbre.js:465 +#: js/widgets/timbre.js:467 +#: js/widgets/timbre.js:746 +#: js/widgets/aiwidget.js:647 +#: js/widgets/aiwidget.js:654 +#: js/widgets/aiwidget.js:656 +#: js/widgets/arpeggio.js:90 +#: js/widgets/arpeggio.js:547 +#: js/widgets/arpeggio.js:549 +#: js/widgets/arpeggio.js:644 +#: js/widgets/arpeggio.js:646 +#: js/widgets/musickeyboard.js:676 +#: js/widgets/musickeyboard.js:872 +#: js/widgets/musickeyboard.js:874 +#: js/widgets/musickeyboard.js:953 +#: js/widgets/musickeyboard.js:955 +#: js/widgets/phrasemaker.js:513 +#: js/widgets/phrasemaker.js:523 +#: js/widgets/phrasemaker.js:525 +#: js/widgets/phrasemaker.js:4304 +#: js/widgets/phrasemaker.js:4528 +#: js/widgets/phrasemaker.js:4533 +#: js/widgets/phrasemaker.js:4535 +#: js/widgets/phrasemaker.js:4650 +#: js/widgets/rhythmruler.js:637 +#: js/widgets/rhythmruler.js:639 +#: js/widgets/rhythmruler.js:653 +#: js/widgets/rhythmruler.js:655 +#: js/widgets/sampler.js:162 +#: js/widgets/sampler.js:164 +#: js/widgets/sampler.js:363 +msgid "Play" msgstr "" -#: js/piemenus.js:3416 -msgid "Save stack" +#: js/toolbar.js:50 +#: js/toolbar.js:111 +#: js/toolbar.js:176 +#: js/toolbar.js:232 +#: js/turtledefs.js:451 +#: js/turtledefs.js:488 +#: js/activity.js:2679 +#: js/widgets/modewidget.js:99 +#: js/widgets/modewidget.js:101 +#: js/widgets/meterwidget.js:206 +#: js/widgets/meterwidget.js:208 +#: js/widgets/pitchdrummatrix.js:674 +#: js/widgets/pitchdrummatrix.js:676 +#: js/widgets/temperament.js:2002 +#: js/widgets/temperament.js:2004 +#: js/widgets/arpeggio.js:534 +#: js/widgets/arpeggio.js:536 +#: js/widgets/phrasemaker.js:534 +#: js/widgets/phrasemaker.js:536 +msgid "Stop" msgstr "" -#: js/piemenus.js:3420 -#: js/toolbar.js:60 -#: js/toolbar.js:120 -#: js/toolbar.js:185 -#: js/toolbar.js:240 -#: js/turtledefs.js:752 -msgid "Help" +#: js/toolbar.js:51 +#: js/toolbar.js:112 +#: js/toolbar.js:177 +#: js/toolbar.js:233 +#: js/turtledefs.js:498 +msgid "Record" msgstr "" -#: js/piemenus.js:3762 -msgid "You have chosen key " +#: js/toolbar.js:52 +#: js/toolbar.js:53 +msgid "Full screen" msgstr "" -#: js/piemenus.js:3766 -msgid " for your pitch preview." +#: js/toolbar.js:54 +#: js/toolbar.js:115 +#: js/toolbar.js:180 +#: js/toolbar.js:236 +#: js/turtledefs.js:504 +msgid "Toggle Fullscreen" +msgstr "" + +#: js/toolbar.js:55 +#: js/toolbar.js:116 +#: js/toolbar.js:181 +#: js/toolbar.js:237 +#: js/turtledefs.js:510 +#: planet/js/StringHelper.js:33 +msgid "New project" +msgstr "" + +#: js/toolbar.js:56 +#: js/toolbar.js:117 +#: js/toolbar.js:182 +#: js/toolbar.js:238 +#: js/turtledefs.js:516 +msgid "Load project from file" +msgstr "" + +#: js/toolbar.js:57 +#: js/toolbar.js:118 +#: js/toolbar.js:119 +#: js/toolbar.js:183 +#: js/toolbar.js:239 +#: js/turtledefs.js:541 +#: js/turtledefs.js:550 +#: js/turtledefs.js:571 +msgid "Save project" +msgstr "" + +#: js/toolbar.js:58 +#: js/toolbar.js:77 +#: js/toolbar.js:79 +#: js/toolbar.js:138 +#: js/toolbar.js:147 +#: js/toolbar.js:149 +#: js/toolbar.js:184 +#: js/toolbar.js:202 +#: js/toolbar.js:204 +#: js/toolbar.js:240 +#: js/toolbar.js:258 +#: js/toolbar.js:260 +msgid "Save project as HTML" +msgstr "" + +#: js/toolbar.js:59 +#: js/toolbar.js:120 +#: js/toolbar.js:185 +#: js/toolbar.js:241 +msgid "Find and share projects" +msgstr "" + +#: js/toolbar.js:60 +#: js/toolbar.js:121 +#: js/toolbar.js:186 +#: js/toolbar.js:242 +msgid "Offline. Sharing is unavailable" +msgstr "" + +#: js/toolbar.js:61 +#: js/toolbar.js:122 +#: js/toolbar.js:187 +#: js/toolbar.js:243 +msgid "Auxiliary menu" +msgstr "" + +#: js/toolbar.js:62 +#: js/toolbar.js:123 +#: js/toolbar.js:188 +#: js/toolbar.js:244 +#: js/turtledefs.js:752 +#: js/piemenus.js:3423 +msgid "Help" +msgstr "" + +#: js/toolbar.js:63 +#: js/toolbar.js:124 +#: js/toolbar.js:189 +#: js/toolbar.js:245 +msgid "Run slowly" +msgstr "" + +#: js/toolbar.js:64 +#: js/toolbar.js:125 +#: js/toolbar.js:190 +#: js/toolbar.js:246 +#: js/turtledefs.js:682 +msgid "Run step by step" +msgstr "" + +#: js/toolbar.js:65 +#: js/toolbar.js:126 +#: js/toolbar.js:191 +#: js/toolbar.js:247 +#: js/turtledefs.js:689 +msgid "Display statistics" +msgstr "" + +#: js/toolbar.js:66 +#: js/toolbar.js:127 +#: js/toolbar.js:192 +#: js/toolbar.js:248 +msgid "Load plugin" +msgstr "" + +#: js/toolbar.js:67 +#: js/toolbar.js:128 +#: js/toolbar.js:193 +#: js/toolbar.js:249 +#: js/turtledefs.js:696 +msgid "Delete plugin" +msgstr "" + +#: js/toolbar.js:68 +#: js/toolbar.js:129 +#: js/toolbar.js:194 +#: js/toolbar.js:250 +msgid "Enable horizontal scrolling" +msgstr "" + +#: js/toolbar.js:69 +#: js/toolbar.js:130 +#: js/toolbar.js:195 +#: js/toolbar.js:251 +msgid "Disable horizontal scrolling" +msgstr "" + +#: js/toolbar.js:70 +#: js/toolbar.js:131 +#: js/toolbar.js:196 +#: js/toolbar.js:252 +#: planet/js/LocalCard.js:54 +#: planet/js/StringHelper.js:71 +msgid "Merge with current project" +msgstr "" + +#: js/toolbar.js:71 +#: js/toolbar.js:132 +msgid "Set Pitch Preview" +msgstr "" + +#: js/toolbar.js:72 +#: js/toolbar.js:133 +#: js/toolbar.js:197 +#: js/toolbar.js:253 +msgid "JavaScript Editor" +msgstr "" + +#: js/toolbar.js:73 +#: js/toolbar.js:134 +#: js/toolbar.js:198 +#: js/toolbar.js:254 +#: js/turtledefs.js:724 +msgid "Restore" +msgstr "" + +#: js/toolbar.js:74 +#: js/toolbar.js:135 +#: js/toolbar.js:199 +#: js/toolbar.js:255 +msgid "Switch to beginner mode" +msgstr "" + +#: js/toolbar.js:75 +#: js/toolbar.js:136 +#: js/toolbar.js:200 +#: js/toolbar.js:256 +msgid "Switch to advanced mode" +msgstr "" + +#: js/toolbar.js:76 +#: js/toolbar.js:137 +#: js/toolbar.js:146 +#: js/toolbar.js:201 +#: js/toolbar.js:257 +#: js/turtledefs.js:738 +msgid "Select language" +msgstr "" + +#: js/toolbar.js:78 +#: js/toolbar.js:81 +#: js/toolbar.js:140 +#: js/turtledefs.js:579 +msgid "Save mouse artwork as PNG" +msgstr "" + +#: js/toolbar.js:80 +#: js/toolbar.js:139 +#: js/turtledefs.js:575 +msgid "Save mouse artwork as SVG" +msgstr "" + +#: js/toolbar.js:82 +#: js/toolbar.js:141 +#: js/turtledefs.js:583 +msgid "Save music as WAV" +msgstr "" + +#: js/toolbar.js:83 +#: js/toolbar.js:142 +#: js/turtledefs.js:587 +msgid "Save sheet music as ABC" +msgstr "" + +#: js/toolbar.js:84 +#: js/toolbar.js:143 +#: js/turtledefs.js:591 +msgid "Save sheet music as Lilypond" +msgstr "" + +#: js/toolbar.js:85 +msgid "Save sheet music as MusicXML" +msgstr "" + +#: js/toolbar.js:86 +#: js/toolbar.js:144 +#: js/toolbar.js:152 +#: js/toolbar.js:207 +#: js/toolbar.js:263 +#: js/turtledefs.js:562 +#: js/turtledefs.js:595 +msgid "Save block artwork as SVG" +msgstr "" + +#: js/toolbar.js:87 +#: js/toolbar.js:145 +#: js/toolbar.js:153 +#: js/toolbar.js:208 +#: js/toolbar.js:264 +#: js/turtles.js:911 +msgid "Confirm" +msgstr "" + +#: js/toolbar.js:88 +#: js/toolbar.js:154 +#: js/toolbar.js:209 +#: js/toolbar.js:265 +msgid "English (United States)" +msgstr "" + +#: js/toolbar.js:89 +#: js/toolbar.js:155 +#: js/toolbar.js:210 +#: js/toolbar.js:266 +msgid "English (United Kingdom)" +msgstr "" + +#: js/toolbar.js:90 +#: js/toolbar.js:156 +#: js/toolbar.js:211 +#: js/toolbar.js:267 +msgid "日本語" +msgstr "" + +#: js/toolbar.js:91 +msgid "한국어" +msgstr "" + +#: js/toolbar.js:92 +#: js/toolbar.js:158 +#: js/toolbar.js:213 +#: js/toolbar.js:269 +msgid "español" +msgstr "" + +#: js/toolbar.js:93 +#: js/toolbar.js:159 +#: js/toolbar.js:214 +#: js/toolbar.js:270 +msgid "português" +msgstr "" + +#: js/toolbar.js:94 +#: js/toolbar.js:160 +#: js/toolbar.js:215 +#: js/toolbar.js:271 +msgid "にほんご" +msgstr "" + +#: js/toolbar.js:95 +#: js/toolbar.js:161 +#: js/toolbar.js:216 +#: js/toolbar.js:272 +msgid "中文" +msgstr "" + +#: js/toolbar.js:96 +#: js/toolbar.js:162 +#: js/toolbar.js:217 +#: js/toolbar.js:273 +msgid "ภาษาไทย" +msgstr "" + +#: js/toolbar.js:97 +#: js/toolbar.js:163 +#: js/toolbar.js:218 +#: js/toolbar.js:274 +msgid "aymara" +msgstr "" + +#: js/toolbar.js:98 +#: js/toolbar.js:164 +#: js/toolbar.js:219 +#: js/toolbar.js:275 +msgid "quechua" +msgstr "" + +#: js/toolbar.js:99 +#: js/toolbar.js:165 +#: js/toolbar.js:220 +#: js/toolbar.js:276 +msgid "guarani" +msgstr "" + +#: js/toolbar.js:100 +#: js/toolbar.js:166 +#: js/toolbar.js:221 +#: js/toolbar.js:277 +msgid "हिंदी" +msgstr "" + +#: js/toolbar.js:101 +#: js/toolbar.js:168 +#: js/toolbar.js:222 +#: js/toolbar.js:279 +msgid "igbo" +msgstr "" + +#: js/toolbar.js:102 +#: js/toolbar.js:169 +#: js/toolbar.js:223 +#: js/toolbar.js:280 +msgid "عربى" +msgstr "" + +#: js/toolbar.js:103 +#: js/toolbar.js:167 +#: js/toolbar.js:224 +#: js/toolbar.js:278 +msgid "తెలుగు" +msgstr "" + +#: js/toolbar.js:104 +#: js/toolbar.js:170 +#: js/toolbar.js:225 +#: js/toolbar.js:281 +msgid "עִברִית" +msgstr "" + +#: js/toolbar.js:113 +#: js/toolbar.js:114 +#: js/toolbar.js:178 +#: js/toolbar.js:179 +#: js/toolbar.js:234 +#: js/toolbar.js:235 +msgid "Full Screen" +msgstr "" + +#: js/toolbar.js:148 +#: js/toolbar.js:151 +#: js/toolbar.js:203 +#: js/toolbar.js:206 +#: js/toolbar.js:259 +#: js/toolbar.js:262 +#: js/turtledefs.js:558 +msgid "Save turtle artwork as PNG" +msgstr "" + +#: js/toolbar.js:150 +#: js/toolbar.js:205 +#: js/toolbar.js:261 +#: js/turtledefs.js:554 +msgid "Save turtle artwork as SVG" +msgstr "" + +#: js/toolbar.js:157 +#: js/toolbar.js:212 +#: js/toolbar.js:268 +msgid "한국인" +msgstr "" + +#: js/toolbar.js:174 +#: js/toolbar.js:230 +msgid "About Turtle Blocks" +msgstr "" + +#: js/toolbar.js:446 +#: js/toolbar.js:457 +#: js/toolbar.js:497 +msgid "Turtle Wrap Off" +msgstr "" + +#: js/toolbar.js:466 +#: js/toolbar.js:506 +msgid "Turtle Wrap On" +msgstr "" + +#: js/turtle-painter.js:1192 +#: js/turtle-painter.js:1193 +#: js/turtles.js:118 +#: js/block-verbose.js:1623 +#: js/block.js:1587 +#: js/lilypond.js:749 +#: js/lilypond.js:913 +#: js/lilypond.js:951 +#: js/logo.js:1184 +#: js/blocks/ActionBlocks.js:1223 +#: js/blocks/ProgramBlocks.js:1267 +msgid "start" +msgstr "" + +#: js/turtledefs.js:40 +#.TRANS: put the URL to the guide here, e.g., https://github.com/sugarlabs/turtleblocksjs/tree/master/guide/README.md +msgid "guide url" +msgstr "" + +#: js/turtledefs.js:85 +#: js/turtledefs.js:437 +msgid "Turtle Blocks is a Logo-inspired turtle that draws colorful pictures with snap-together visual-programming blocks." +msgstr "" + +#: js/turtledefs.js:118 +#: js/turtledefs.js:220 +msgid "search" +msgstr "" + +#: js/turtledefs.js:120 +#: js/turtledefs.js:222 +#: js/blocks/MeterBlocks.js:1343 +#: js/blocks/WidgetBlocks.js:522 +#.TRANS: musical meter (time signature), e.g., 4:4 +msgid "meter" +msgstr "" + +#: js/turtledefs.js:122 +#: js/turtledefs.js:224 +msgid "intervals" +msgstr "" + +#: js/turtledefs.js:124 +#: js/turtledefs.js:226 +msgid "ornament" +msgstr "" + +#: js/turtledefs.js:125 +#: js/turtledefs.js:227 +#: js/blocks/VolumeBlocks.js:362 +#: js/blocks/VolumeBlocks.js:502 +#: js/blocks/VolumeBlocks.js:545 +msgid "volume" +msgstr "" + +#: js/turtledefs.js:126 +#: js/turtledefs.js:228 +#: js/block-verbose.js:1700 +#: js/block-verbose.js:2626 +#: js/block.js:1664 +#: js/block.js:2554 +#: js/lilypond.js:732 +#: js/lilypond.js:897 +#: js/lilypond.js:941 +#: js/palette.js:577 +#: js/blocks/RhythmBlocks.js:766 +#: js/blocks/DrumBlocks.js:477 +#: js/blocks/VolumeBlocks.js:502 +#: js/widgets/phrasemaker.js:1038 +msgid "drum" +msgstr "" + +#: js/turtledefs.js:129 +#: js/turtledefs.js:231 +msgid "boxes" +msgstr "" + +#: js/turtledefs.js:130 +#: js/turtledefs.js:232 +msgid "widgets" +msgstr "" + +#: js/turtledefs.js:131 +#: js/turtledefs.js:233 +#: js/widgets/phrasemaker.js:1039 +msgid "graphics" +msgstr "" + +#: js/turtledefs.js:134 +#: js/turtledefs.js:236 +msgid "boolean" +msgstr "" + +#: js/turtledefs.js:137 +#: js/turtledefs.js:239 +#: js/blocks/HeapBlocks.js:59 +#: js/widgets/status.js:147 +msgid "heap" +msgstr "" + +#: js/turtledefs.js:138 +#: js/turtledefs.js:240 +#: js/blocks/DictBlocks.js:142 +#: js/blocks/ProgramBlocks.js:495 +msgid "dictionary" +msgstr "" + +#: js/turtledefs.js:139 +#: js/turtledefs.js:241 +msgid "ensemble" +msgstr "" + +#: js/turtledefs.js:140 +#: js/turtledefs.js:242 +msgid "extras" +msgstr "" + +#: js/turtledefs.js:142 +#: js/turtledefs.js:244 +#.TRANS: program as in computer program +#.TRANS: program as in computer program +msgid "program" +msgstr "" + +#: js/turtledefs.js:143 +#: js/turtledefs.js:245 +msgid "my blocks" +msgstr "" + +#: js/turtledefs.js:185 +#: js/turtledefs.js:281 +msgid "artwork" +msgstr "" + +#: js/turtledefs.js:185 +#: js/turtledefs.js:281 +msgid "logic" +msgstr "" + +#: js/turtledefs.js:185 +#: js/turtledefs.js:281 +msgid "music" +msgstr "" + +#: js/turtledefs.js:187 +#: js/turtledefs.js:463 +msgid "Music Blocks is a collection of tools for exploring fundamental musical concepts in a fun way." +msgstr "" + +#: js/turtledefs.js:436 +msgid "Welcome to Turtle Blocks" +msgstr "" + +#: js/turtledefs.js:438 +#: js/turtledefs.js:465 +#: js/turtledefs.js:774 +#: js/turtledefs.js:805 +msgid "The current version is" +msgstr "" + +#: js/turtledefs.js:446 +#: js/turtledefs.js:483 +msgid "Click the run button to run the project in fast mode." +msgstr "" + +#: js/turtledefs.js:452 +msgid "Stop the turtle." +msgstr "" + +#: js/turtledefs.js:454 +#: js/turtledefs.js:491 +msgid "You can also type Alt-S to stop." +msgstr "" + +#: js/turtledefs.js:462 +#: js/widgets/help.js:333 +msgid "Welcome to Music Blocks" +msgstr "" + +#: js/turtledefs.js:472 +#: js/widgets/help.js:334 +msgid "Meet Mr. Mouse!" +msgstr "" + +#: js/turtledefs.js:473 +msgid "Mr Mouse is our Music Blocks conductor." +msgstr "" + +#: js/turtledefs.js:475 +msgid "Mr Mouse encourages you to explore Music Blocks." +msgstr "" + +#: js/turtledefs.js:477 +msgid "Let us start our tour!" +msgstr "" + +#: js/turtledefs.js:489 +msgid "Stop the music (and the mice)." +msgstr "" + +#: js/turtledefs.js:499 +msgid "Record your project as video." +msgstr "" + +#: js/turtledefs.js:505 +msgid "Toggle Fullscreen mode." +msgstr "" + +#: js/turtledefs.js:511 +msgid "Initialize a new project." +msgstr "" + +#: js/turtledefs.js:517 +msgid "You can also load projects from the file system." +msgstr "" + +#: js/turtledefs.js:522 +#: planet/js/StringHelper.js:46 +msgid "Delete" +msgstr "" + +#: js/turtledefs.js:523 +msgid "To delete a block, just right-click on it, then you will be able to see the delete option" +msgstr "" + +#: js/turtledefs.js:528 +#: js/activity.js:2649 +#: planet/js/LocalCard.js:31 +msgid "Copy" +msgstr "" + +#: js/turtledefs.js:529 +msgid "To copy a block, just right-click on it, then you will be able to see the copy option" +msgstr "" + +#: js/turtledefs.js:534 +#: js/piemenus.js:3411 +msgid "Extract" +msgstr "" + +#: js/turtledefs.js:535 +msgid "To extract a block, just right-click on it, then you will be able to see the extract option" +msgstr "" + +#: js/turtledefs.js:542 +#: js/turtledefs.js:552 +#: js/turtledefs.js:573 +msgid "Save your project to a file." +msgstr "" + +#: js/turtledefs.js:549 +#: js/turtledefs.js:570 +msgid "save" +msgstr "" + +#: js/turtledefs.js:556 +#: js/turtledefs.js:577 +msgid "Save graphics from your project to as SVG." +msgstr "" + +#: js/turtledefs.js:560 +#: js/turtledefs.js:581 +msgid "Save graphics from your project as PNG." +msgstr "" + +#: js/turtledefs.js:564 +#: js/turtledefs.js:597 +msgid "Save block artwork as an SVG file." +msgstr "" + +#: js/turtledefs.js:585 +msgid "Save audio from your project as WAV." +msgstr "" + +#: js/turtledefs.js:589 +msgid "Save your project to as an ABC file." +msgstr "" + +#: js/turtledefs.js:593 +msgid "Save your project to as a Lilypond file." +msgstr "" + +#: js/turtledefs.js:604 +msgid "Load samples from server" +msgstr "" + +#: js/turtledefs.js:605 +msgid "This button opens a viewer for loading example projects." +msgstr "" + +#: js/turtledefs.js:611 +msgid "Palette buttons" +msgstr "" + +#: js/turtledefs.js:612 +msgid "This toolbar contains the palette buttons including Rhythm Pitch Tone Action and more." +msgstr "" + +#: js/turtledefs.js:614 +msgid "Click to show the palettes of blocks and drag blocks from the palettes onto the canvas to use them." +msgstr "" + +#: js/turtledefs.js:620 +msgid "Cartesian/Polar" +msgstr "" + +#: js/turtledefs.js:621 +msgid "Show or hide a coordinate grid." +msgstr "" + +#: js/turtledefs.js:626 +#: js/turtles.js:902 +msgid "Clean" +msgstr "" + +#: js/turtledefs.js:627 +msgid "Clear the screen and return the mice to their initial positions." +msgstr "" + +#: js/turtledefs.js:632 +#: js/turtles.js:955 +msgid "Collapse" +msgstr "" + +#: js/turtledefs.js:633 +msgid "Collapse the graphics window." msgstr "" -#: js/palette.js:571 -msgid "grid" +#: js/turtledefs.js:638 +#: js/activity.js:5684 +msgid "Home" msgstr "" -#: js/palette.js:577 -#: js/block.js:1540 -#: js/block.js:2343 -#: js/turtledefs.js:126 -#: js/turtledefs.js:228 -#: js/lilypond.js:740 -#: js/lilypond.js:905 -#: js/lilypond.js:949 -#: js/DrumBlocks.js:486 -#: js/RhythmBlocks.js:766 -#: js/VolumeBlocks.js:502 -#: js/phrasemaker.js:823 -msgid "drum" +#: js/turtledefs.js:639 +msgid "Return all blocks to the center of the screen." msgstr "" -#: js/palette.js:580 -msgid "effect" +#: js/turtledefs.js:644 +msgid "Show/hide blocks" msgstr "" -#: js/palette.js:586 -msgid "sargam" +#: js/turtledefs.js:645 +msgid "Hide or show the blocks and the palettes." msgstr "" -#: js/palette.js:589 -#: js/activity.js:1833 -#: js/RhythmBlocks.js:923 -#: js/PitchBlocks.js:442 -#: js/PitchBlocks.js:1748 -#.TRANS: a numeric mapping of the notes in an octave based on the musical mode -msgid "scale degree" +#: js/turtledefs.js:650 +msgid "Expand/collapse collapsable blocks" msgstr "" -#: js/palette.js:592 -#: js/activity.js:1860 -msgid "mode name" +#: js/turtledefs.js:651 +msgid "Expand or collapse start and action stacks." msgstr "" -#: js/palette.js:595 -#: js/activity.js:1839 -msgid "invert mode" +#: js/turtledefs.js:658 +#: js/activity.js:5704 +msgid "Decrease block size" msgstr "" -#: js/palette.js:598 -#: js/activity.js:1836 -msgid "voice name" +#: js/turtledefs.js:659 +msgid "Decrease the size of the blocks." msgstr "" -#: js/palette.js:601 -#: js/PitchBlocks.js:1181 -msgid "custom pitch" +#: js/turtledefs.js:664 +#: js/activity.js:5710 +msgid "Increase block size" msgstr "" -#: js/palette.js:605 -#: js/block.js:1456 -#: js/block.js:1575 -#: js/WidgetBlocks.js:218 -#: js/IntervalsBlocks.js:63 -msgid "temperament" +#: js/turtledefs.js:665 +msgid "Increase the size of the blocks." msgstr "" -#: js/palette.js:609 -msgid "accidental" +#: js/turtledefs.js:670 +msgid "Expand/collapse option toolbar" msgstr "" -#: js/palette.js:615 -#: js/activity.js:1866 -msgid "interval name" +#: js/turtledefs.js:671 +msgid "Click this button to expand or collapse the auxillary toolbar." msgstr "" -#: js/palette.js:633 -#: js/PitchBlocks.js:405 -msgid "pitch converter" +#: js/turtledefs.js:676 +msgid "Run slow" msgstr "" -#: js/rubrics.js:522 -#: js/turtledefs.js:119 -#: js/turtledefs.js:221 -#: js/RhythmBlockPaletteBlocks.js:52 -#: js/RhythmBlockPaletteBlocks.js:233 -#: js/ProgramBlocks.js:745 -#: js/rhythmruler.js:1670 -#: js/rhythmruler.js:1677 -#: js/rhythmruler.js:1745 -#: js/rhythmruler.js:1752 -#: js/rhythmruler.js:1830 -#.TRANS: an arrangement of notes based on duration -msgid "rhythm" +#: js/turtledefs.js:677 +msgid "Click to run the project in slow mode." msgstr "" -#: js/rubrics.js:523 -#: js/block.js:2339 -#: js/turtledefs.js:121 -#: js/turtledefs.js:223 -#: js/IntervalsBlocks.js:63 -#: js/PitchBlocks.js:1801 -#: js/PitchBlocks.js:1814 -#: js/SensorsBlocks.js:178 -#: js/phrasemaker.js:821 -#: js/musickeyboard.js:1653 -#.TRANS: pitch number -#.TRANS: we specify pitch in terms of a name and an octave. The name can be CDEFGAB or Do Re Mi Fa Sol La Ti. Octave is a number between 1 and 8. -msgid "pitch" +#: js/turtledefs.js:683 +msgid "Click to run the project step by step." msgstr "" -#: js/rubrics.js:524 -#: js/turtledefs.js:123 -#: js/turtledefs.js:225 -msgid "tone" +#: js/turtledefs.js:690 +msgid "Display statistics about your Music project." msgstr "" -#: js/rubrics.js:525 -#: js/lilypond.js:613 -#: js/lilypond.js:912 -#: js/lilypond.js:918 -#: js/lilypond.js:956 -msgid "mouse" +#: js/turtledefs.js:697 +msgid "Delete a selected plugin." msgstr "" -#: js/rubrics.js:526 -#: js/turtledefs.js:132 -#: js/turtledefs.js:234 -#: js/phrasemaker.js:825 -msgid "pen" +#: js/turtledefs.js:704 +msgid "Enable scrolling" msgstr "" -#: js/rubrics.js:527 -#: js/turtledefs.js:133 -#: js/turtledefs.js:235 -#: js/NumberBlocks.js:905 -#: js/PitchBlocks.js:1679 -#: js/PitchBlocks.js:1720 -msgid "number" +#: js/turtledefs.js:705 +msgid "You can scroll the blocks on the canvas." msgstr "" -#: js/rubrics.js:528 -#: js/turtledefs.js:127 -#: js/turtledefs.js:229 -msgid "flow" +#: js/turtledefs.js:714 +msgid "Wrap Turtle" msgstr "" -#: js/rubrics.js:530 -#: js/turtledefs.js:136 -#: js/turtledefs.js:238 -msgid "sensors" +#: js/turtledefs.js:715 +msgid "Turn Turtle wrapping On or Off." msgstr "" -#: js/rubrics.js:531 -#: js/turtledefs.js:135 -#: js/turtledefs.js:237 -#: js/MediaBlocks.js:930 -msgid "media" +#: js/turtledefs.js:725 +msgid "Restore blocks from the trash." msgstr "" -#: js/rubrics.js:532 -msgid "mice" +#: js/turtledefs.js:732 +msgid "Switch mode" msgstr "" -#: js/macros.js:711 -#: js/musicutils.js:783 -#: js/synthutils.js:181 -#.TRANS: animal sound effect -msgid "duck" +#: js/turtledefs.js:733 +msgid "Switch between beginner and advance modes." msgstr "" -#: js/toolbar.js:46 -#: js/toolbar.js:107 -msgid "About Music Blocks" +#: js/turtledefs.js:739 +msgid "Select your language preference." msgstr "" -#: js/toolbar.js:47 -#: js/toolbar.js:108 -#: js/toolbar.js:172 -#: js/toolbar.js:228 -#: js/turtledefs.js:445 -#: js/turtledefs.js:482 -#: js/activity.js:2281 -#: js/activity.js:2289 -#: js/activity.js:2520 -#: js/modewidget.js:77 -#: js/pitchstaircase.js:121 -#: js/phrasemaker.js:302 -#: js/phrasemaker.js:312 -#: js/phrasemaker.js:314 -#: js/phrasemaker.js:3901 -#: js/phrasemaker.js:4061 -#: js/phrasemaker.js:4066 -#: js/phrasemaker.js:4068 -#: js/phrasemaker.js:4183 -#: js/pitchdrummatrix.js:81 -#: js/pitchdrummatrix.js:574 -#: js/pitchdrummatrix.js:576 -#: js/pitchdrummatrix.js:628 -#: js/pitchdrummatrix.js:630 -#: js/pitchdrummatrix.js:645 -#: js/pitchdrummatrix.js:647 -#: js/pitchdrummatrix.js:674 -#: js/pitchdrummatrix.js:676 -#: js/temperament.js:477 -#: js/temperament.js:480 -#: js/temperament.js:540 -#: js/temperament.js:542 -#: js/temperament.js:1835 -#: js/temperament.js:1837 -#: js/temperament.js:1986 -#: js/temperament.js:1988 -#: js/musickeyboard.js:522 -#: js/musickeyboard.js:682 -#: js/musickeyboard.js:684 -#: js/musickeyboard.js:756 -#: js/musickeyboard.js:758 -#: js/rhythmruler.js:298 -#: js/rhythmruler.js:300 -#: js/rhythmruler.js:314 -#: js/rhythmruler.js:316 -#: js/sampler.js:96 -#: js/sampler.js:98 -#: js/sampler.js:229 -#: js/sampler.js:235 -#: js/sampler.js:237 -#: js/tempo.js:84 -#: js/tempo.js:86 -#: js/timbre.js:432 -#: js/timbre.js:434 -#: js/timbre.js:465 -#: js/timbre.js:467 -#: js/timbre.js:746 -#: js/meterwidget.js:80 -#: js/arpeggio.js:90 -#: js/arpeggio.js:547 -#: js/arpeggio.js:549 -#: js/arpeggio.js:644 -#: js/arpeggio.js:646 -msgid "Play" +#: js/turtledefs.js:745 +msgid "Keyboard shortcuts" msgstr "" -#: js/toolbar.js:48 -#: js/toolbar.js:109 -#: js/toolbar.js:173 -#: js/toolbar.js:229 -#: js/turtledefs.js:451 -#: js/turtledefs.js:488 -#: js/activity.js:2297 -#: js/modewidget.js:99 -#: js/modewidget.js:101 -#: js/phrasemaker.js:323 -#: js/phrasemaker.js:325 -#: js/pitchdrummatrix.js:561 -#: js/pitchdrummatrix.js:563 -#: js/temperament.js:1820 -#: js/temperament.js:1822 -#: js/meterwidget.js:101 -#: js/meterwidget.js:103 -#: js/arpeggio.js:534 -#: js/arpeggio.js:536 -msgid "Stop" +#: js/turtledefs.js:746 +msgid "You can type d to create a do block and r to create a re block etc." msgstr "" -#: js/toolbar.js:49 -#: js/toolbar.js:110 -#: js/toolbar.js:174 -#: js/toolbar.js:230 -#: js/turtledefs.js:498 -msgid "Record" +#: js/turtledefs.js:753 +msgid "Show these messages." msgstr "" -#: js/toolbar.js:50 -#: js/toolbar.js:51 -msgid "Full screen" +#: js/turtledefs.js:759 +#: js/turtledefs.js:790 +#: js/widgets/help.js:335 +msgid "Guide" msgstr "" -#: js/toolbar.js:52 -#: js/toolbar.js:112 -#: js/toolbar.js:177 -#: js/toolbar.js:232 -#: js/turtledefs.js:504 -msgid "Toggle Fullscreen" +#: js/turtledefs.js:760 +msgid "A detailed guide to Turtle Blocks is available." msgstr "" -#: js/toolbar.js:53 -#: js/toolbar.js:113 -#: js/toolbar.js:178 -#: js/toolbar.js:233 -#: js/turtledefs.js:510 -#: js/StringHelper.js:33 -msgid "New project" +#: js/turtledefs.js:764 +msgid "Turtle Blocks Guide" msgstr "" -#: js/toolbar.js:54 -#: js/toolbar.js:114 -#: js/toolbar.js:179 -#: js/toolbar.js:234 -#: js/turtledefs.js:516 -msgid "Load project from file" +#: js/turtledefs.js:767 +#: js/turtledefs.js:798 +#: js/widgets/help.js:336 +msgid "About" msgstr "" -#: js/toolbar.js:55 -#: js/toolbar.js:115 -#: js/toolbar.js:116 -#: js/toolbar.js:180 -#: js/toolbar.js:235 -#: js/turtledefs.js:541 -#: js/turtledefs.js:550 -#: js/turtledefs.js:571 -msgid "Save project" +#: js/turtledefs.js:768 +msgid "Turtle Blocks is an open source collection of tools for exploring musical concepts." msgstr "" -#: js/toolbar.js:56 -#: js/toolbar.js:75 -#: js/toolbar.js:77 -#: js/toolbar.js:135 -#: js/toolbar.js:144 -#: js/toolbar.js:146 -#: js/toolbar.js:181 -#: js/toolbar.js:199 -#: js/toolbar.js:201 -#: js/toolbar.js:236 -#: js/toolbar.js:254 -#: js/toolbar.js:256 -msgid "Save project as HTML" +#: js/turtledefs.js:770 +msgid "A full list of contributors can be found in the Turtle Blocks GitHub repository." +msgstr "" + +#: js/turtledefs.js:772 +msgid "Turtle Blocks is licensed under the AGPL." +msgstr "" + +#: js/turtledefs.js:780 +msgid "Turtle Blocks GitHub repository" +msgstr "" + +#: js/turtledefs.js:783 +#: js/turtledefs.js:814 +#: js/widgets/help.js:337 +#: js/widgets/help.js:359 +msgid "Congratulations." +msgstr "" + +#: js/turtledefs.js:784 +msgid "You have finished the tour. Please enjoy Turtle Blocks!" +msgstr "" + +#: js/turtledefs.js:791 +msgid "A detailed guide to Music Blocks is available." +msgstr "" + +#: js/turtledefs.js:799 +msgid "Music Blocks is an open source collection of tools for exploring musical concepts." +msgstr "" + +#: js/turtledefs.js:801 +msgid "A full list of contributors can be found in the Music Blocks GitHub repository." +msgstr "" + +#: js/turtledefs.js:803 +msgid "Music Blocks is licensed under the AGPL." +msgstr "" + +#: js/turtledefs.js:811 +msgid "Music Blocks GitHub repository" +msgstr "" + +#: js/turtledefs.js:815 +msgid "You have finished the tour. Please enjoy Music Blocks!" +msgstr "" + +#: js/turtles.js:882 +msgid "Grid" +msgstr "" + +#: js/turtles.js:1024 +msgid "Expand" +msgstr "" + +#: js/block-verbose.js:1616 +#: js/block-verbose.js:1735 +#: js/block.js:1580 +#: js/block.js:1699 +#: js/palette.js:605 +#: js/blocks/IntervalsBlocks.js:63 +#: js/blocks/WidgetBlocks.js:259 +msgid "temperament" +msgstr "" + +#: js/block-verbose.js:1630 +#: js/block.js:1594 +msgid "matrix" msgstr "" -#: js/toolbar.js:57 -#: js/toolbar.js:117 -#: js/toolbar.js:182 -#: js/toolbar.js:237 -msgid "Find and share projects" +#: js/block-verbose.js:1637 +#: js/block.js:1601 +#: js/blocks/WidgetBlocks.js:1509 +#: plugins/rodi.rtp:324 +msgid "status" msgstr "" -#: js/toolbar.js:58 -#: js/toolbar.js:118 -#: js/toolbar.js:183 -#: js/toolbar.js:238 -msgid "Offline. Sharing is unavailable" +#: js/block-verbose.js:1644 +#: js/block.js:1608 +msgid "drum mapper" msgstr "" -#: js/toolbar.js:59 -#: js/toolbar.js:119 -#: js/toolbar.js:184 -#: js/toolbar.js:239 -msgid "Auxiliary menu" +#: js/block-verbose.js:1651 +#: js/block.js:1615 +msgid "ruler" msgstr "" -#: js/toolbar.js:61 -#: js/toolbar.js:121 -#: js/toolbar.js:186 -#: js/toolbar.js:241 -msgid "Run slowly" +#: js/block-verbose.js:1658 +#: js/block.js:1622 +#: js/blocks/WidgetBlocks.js:397 +#.TRANS: timbre is the character or quality of a musical sound +msgid "timbre" msgstr "" -#: js/toolbar.js:62 -#: js/toolbar.js:122 -#: js/toolbar.js:187 -#: js/toolbar.js:242 -#: js/turtledefs.js:682 -msgid "Run step by step" +#: js/block-verbose.js:1665 +#: js/block.js:1629 +msgid "stair" msgstr "" -#: js/toolbar.js:63 -#: js/toolbar.js:123 -#: js/toolbar.js:188 -#: js/toolbar.js:243 -#: js/turtledefs.js:689 -msgid "Display statistics" +#: js/block-verbose.js:1672 +#: js/block.js:1636 +#: js/blocks/WidgetBlocks.js:707 +#.TRANS: the speed at music is should be played. +msgid "tempo" msgstr "" -#: js/toolbar.js:64 -#: js/toolbar.js:124 -#: js/toolbar.js:189 -#: js/toolbar.js:244 -msgid "Load plugin" +#: js/block-verbose.js:1679 +#: js/block-verbose.js:1742 +#: js/block.js:1643 +#: js/block.js:1706 +#: js/blocks/IntervalsBlocks.js:1464 +#.TRANS: mode, e.g., Major in C Major +msgid "mode" msgstr "" -#: js/toolbar.js:65 -#: js/toolbar.js:125 -#: js/toolbar.js:190 -#: js/toolbar.js:245 -#: js/turtledefs.js:696 -msgid "Delete plugin" +#: js/block-verbose.js:1686 +#: js/block.js:1650 +msgid "slider" msgstr "" -#: js/toolbar.js:66 -#: js/toolbar.js:126 -#: js/toolbar.js:191 -#: js/toolbar.js:246 -msgid "Enable horizontal scrolling" +#: js/block-verbose.js:1693 +#: js/block.js:1657 +#: js/blocks/SensorsBlocks.js:1001 +msgid "keyboard" msgstr "" -#: js/toolbar.js:67 -#: js/toolbar.js:127 -#: js/toolbar.js:192 -#: js/toolbar.js:247 -msgid "Disable horizontal scrolling" +#: js/block-verbose.js:1707 +#: js/block.js:1671 +#: js/blocks/WidgetBlocks.js:1190 +#: js/blocks/WidgetBlocks.js:1228 +#.TRANS: widget for subdividing a measure into distinct rhythmic elements +msgid "rhythm maker" msgstr "" -#: js/toolbar.js:68 -#: js/toolbar.js:128 -#: js/toolbar.js:193 -#: js/toolbar.js:248 -#: js/LocalCard.js:54 -#: js/StringHelper.js:71 -msgid "Merge with current project" +#: js/block-verbose.js:1714 +#: js/block-verbose.js:2457 +#: js/block-verbose.js:2514 +#: js/block.js:1678 +#: js/block.js:2385 +#: js/block.js:2442 +#: js/blocks/MeterBlocks.js:1367 +#: js/blocks/OrnamentBlocks.js:220 +#: js/blocks/OrnamentBlocks.js:312 +#: js/blocks/RhythmBlocks.js:33 +#: js/blocks/RhythmBlocks.js:356 +#: js/blocks/RhythmBlocks.js:766 +#: js/blocks/RhythmBlocks.js:806 +#: js/blocks/RhythmBlockPaletteBlocks.js:70 +#: js/blocks/RhythmBlockPaletteBlocks.js:252 +#: js/blocks/RhythmBlockPaletteBlocks.js:485 +#: js/blocks/RhythmBlockPaletteBlocks.js:554 +#: js/blocks/RhythmBlockPaletteBlocks.js:605 +#: js/blocks/RhythmBlockPaletteBlocks.js:875 +#: js/turtleactions/DictActions.js:85 +#: js/widgets/phrasemaker.js:942 +#: js/widgets/phrasemaker.js:2656 +#: js/widgets/phrasemaker.js:2699 +#: js/widgets/phrasemaker.js:2810 +#.TRANS: the value (e.g., 1/4 note) of the note being played. +msgid "note value" msgstr "" -#: js/toolbar.js:69 -#: js/toolbar.js:129 -msgid "Set Pitch Preview" +#: js/block-verbose.js:1721 +#: js/block-verbose.js:2382 +#: js/block-verbose.js:2405 +#: js/block.js:1685 +#: js/block.js:2310 +#: js/block.js:2333 +#: js/blocks/IntervalsBlocks.js:1071 +#: js/blocks/OrnamentBlocks.js:312 +#.TRANS: calculate a relative step between notes based on semi-tones +msgid "scalar interval" msgstr "" -#: js/toolbar.js:70 -#: js/toolbar.js:130 -#: js/toolbar.js:194 -#: js/toolbar.js:249 -msgid "Toggle JavaScript Editor" +#: js/block-verbose.js:1728 +#: js/block.js:1692 +#: js/blocks/RhythmBlocks.js:148 +msgid "milliseconds" msgstr "" -#: js/toolbar.js:71 -#: js/toolbar.js:131 -#: js/toolbar.js:195 -#: js/toolbar.js:250 -#: js/turtledefs.js:724 -msgid "Restore" +#: js/block-verbose.js:2455 +#: js/block-verbose.js:2459 +#: js/block-verbose.js:2512 +#: js/block-verbose.js:2628 +#: js/block.js:2383 +#: js/block.js:2387 +#: js/block.js:2440 +#: js/block.js:2556 +#: js/blocks/RhythmBlocks.js:712 +#: js/blocks/ProgramBlocks.js:1273 +#: js/widgets/rhythmruler.js:1183 +#: js/widgets/rhythmruler.js:1329 +msgid "silence" msgstr "" -#: js/toolbar.js:72 -#: js/toolbar.js:132 -#: js/toolbar.js:196 -#: js/toolbar.js:251 -msgid "Switch to beginner mode" +#: js/block-verbose.js:2548 +#: js/block-verbose.js:3492 +#: js/block-verbose.js:3509 +#: js/activity.js:2718 +#: js/activity.js:2769 +#: js/block.js:2476 +#: js/block.js:3416 +#: js/block.js:3433 +#: js/utils/musicutils.js:3780 +#: js/utils/musicutils.js:5273 +#.TRANS: the note names must be separated by single spaces +#.TRANS: the note names must be separated by single spaces +#.TRANS: the note names must be separated by single spaces +msgid "ti la sol fa mi re do" msgstr "" -#: js/toolbar.js:73 -#: js/toolbar.js:133 -#: js/toolbar.js:197 -#: js/toolbar.js:252 -msgid "Switch to advanced mode" +#: js/block-verbose.js:2616 +#: js/block.js:2544 +#.TRANS: scalar step +#.TRANS: scalar step +msgid "down" msgstr "" -#: js/toolbar.js:74 -#: js/toolbar.js:134 -#: js/toolbar.js:143 -#: js/toolbar.js:198 -#: js/toolbar.js:253 -#: js/turtledefs.js:738 -msgid "Select language" +#: js/block-verbose.js:2617 +#: js/block.js:2545 +msgid "up" msgstr "" -#: js/toolbar.js:76 -#: js/toolbar.js:79 -#: js/toolbar.js:137 -#: js/turtledefs.js:579 -msgid "Save mouse artwork as PNG" +#: js/block-verbose.js:3026 +#: js/block.js:2950 +msgid "Silence block cannot be removed." msgstr "" -#: js/toolbar.js:78 -#: js/toolbar.js:136 -#: js/turtledefs.js:575 -msgid "Save mouse artwork as SVG" +#: js/block-verbose.js:3824 +#: js/block.js:3748 +#: js/blocks.js:2607 +#: js/blocks.js:3218 +#: js/palette.js:618 +#: js/blocks/BooleanBlocks.js:77 +#: js/blocks/BooleanBlocks.js:167 +#: js/blocks/BooleanBlocks.js:251 +#: js/blocks/BooleanBlocks.js:335 +#: js/blocks/BooleanBlocks.js:433 +#: js/blocks/BooleanBlocks.js:539 +#: js/blocks/BooleanBlocks.js:640 +#: js/blocks/BooleanBlocks.js:741 +#: js/blocks/BooleanBlocks.js:847 +#: js/blocks/BooleanBlocks.js:948 +#: js/blocks/BooleanBlocks.js:1033 +#: js/blocks/SensorsBlocks.js:910 +msgid "true" msgstr "" -#: js/toolbar.js:80 -#: js/toolbar.js:138 -#: js/turtledefs.js:583 -msgid "Save music as WAV" +#: js/block-verbose.js:3824 +#: js/block.js:3748 +#: js/blocks.js:2609 +#: js/blocks.js:3220 +#: js/blocks/BooleanBlocks.js:79 +#: js/blocks/BooleanBlocks.js:169 +#: js/blocks/BooleanBlocks.js:253 +#: js/blocks/BooleanBlocks.js:337 +#: js/blocks/BooleanBlocks.js:435 +#: js/blocks/BooleanBlocks.js:541 +#: js/blocks/BooleanBlocks.js:642 +#: js/blocks/BooleanBlocks.js:743 +#: js/blocks/BooleanBlocks.js:849 +#: js/blocks/BooleanBlocks.js:950 +#: js/blocks/SensorsBlocks.js:912 +msgid "false" msgstr "" -#: js/toolbar.js:81 -#: js/toolbar.js:139 -#: js/turtledefs.js:587 -msgid "Save sheet music as ABC" +#: js/block-verbose.js:3835 +#: js/block-verbose.js:3848 +#: js/block.js:3759 +#: js/block.js:3772 +#: js/blocks/ExtrasBlocks.js:615 +msgid "Cartesian" msgstr "" -#: js/toolbar.js:82 -#: js/toolbar.js:140 -#: js/turtledefs.js:591 -msgid "Save sheet music as Lilypond" +#: js/block-verbose.js:3836 +#: js/block-verbose.js:3849 +#: js/block.js:3760 +#: js/block.js:3773 +#: js/blocks/ExtrasBlocks.js:619 +msgid "polar" msgstr "" -#: js/toolbar.js:83 -msgid "Save sheet music as MusicXML" +#: js/block-verbose.js:3837 +#: js/block-verbose.js:3850 +#: js/block.js:3761 +#: js/block.js:3774 +#: js/blocks/ExtrasBlocks.js:623 +msgid "Cartesian+polar" msgstr "" -#: js/toolbar.js:84 -#: js/toolbar.js:141 -#: js/toolbar.js:149 -#: js/toolbar.js:204 -#: js/toolbar.js:259 -#: js/turtledefs.js:562 -#: js/turtledefs.js:595 -msgid "Save block artwork as SVG" +#: js/block-verbose.js:3838 +#: js/block-verbose.js:3857 +#: js/block.js:3762 +#: js/block.js:3781 +#: js/blocks/ExtrasBlocks.js:652 +msgid "none" msgstr "" -#: js/toolbar.js:85 -#: js/toolbar.js:142 -#: js/toolbar.js:150 -#: js/toolbar.js:205 -#: js/toolbar.js:260 -msgid "Confirm" +#: js/block-verbose.js:3851 +#: js/block.js:3775 +#: js/blocks/ExtrasBlocks.js:628 +msgid "treble" msgstr "" -#: js/toolbar.js:86 -#: js/toolbar.js:151 -#: js/toolbar.js:206 -#: js/toolbar.js:261 -msgid "English (United States)" +#: js/block-verbose.js:3852 +#: js/block.js:3776 +#: js/blocks/ExtrasBlocks.js:632 +msgid "grand staff" msgstr "" -#: js/toolbar.js:87 -#: js/toolbar.js:152 -#: js/toolbar.js:207 -#: js/toolbar.js:262 -msgid "English (United Kingdom)" +#: js/block-verbose.js:3853 +#: js/block.js:3777 +#: js/blocks/ExtrasBlocks.js:636 +msgid "mezzo-soprano" msgstr "" -#: js/toolbar.js:88 -#: js/toolbar.js:153 -#: js/toolbar.js:208 -#: js/toolbar.js:263 -msgid "日本語" +#: js/block-verbose.js:3854 +#: js/block.js:3778 +#: js/blocks/ExtrasBlocks.js:640 +msgid "alto" msgstr "" -#: js/toolbar.js:89 -msgid "한국어" +#: js/block-verbose.js:3855 +#: js/block.js:3779 +#: js/blocks/ExtrasBlocks.js:644 +msgid "tenor" msgstr "" -#: js/toolbar.js:90 -#: js/toolbar.js:155 -#: js/toolbar.js:210 -#: js/toolbar.js:265 -msgid "español" +#: js/block-verbose.js:3856 +#: js/block.js:3780 +#: js/utils/musicutils.js:1115 +#: js/utils/synthutils.js:80 +#: js/blocks/ExtrasBlocks.js:648 +#.TRANS: musical instrument +msgid "bass" msgstr "" -#: js/toolbar.js:91 -#: js/toolbar.js:156 -#: js/toolbar.js:211 -#: js/toolbar.js:266 -msgid "português" +#: js/block-verbose.js:3901 +#: js/block.js:3825 +#: js/blocks.js:2600 +#: js/blocks.js:3211 +msgid "on2" msgstr "" -#: js/toolbar.js:92 -#: js/toolbar.js:157 -#: js/toolbar.js:212 -#: js/toolbar.js:267 -msgid "にほんご" +#: js/block-verbose.js:3903 +#: js/block.js:3827 +#: js/blocks.js:2602 +#: js/blocks.js:3213 +msgid "off" msgstr "" -#: js/toolbar.js:93 -#: js/toolbar.js:158 -#: js/toolbar.js:213 -#: js/toolbar.js:268 -msgid "中文" +#: js/block-verbose.js:4470 +#: js/block.js:4394 +msgid "Not a number" msgstr "" -#: js/toolbar.js:94 -#: js/toolbar.js:159 -#: js/toolbar.js:214 -#: js/toolbar.js:269 -msgid "ภาษาไทย" +#: js/block-verbose.js:4477 +#: js/block.js:4401 +msgid "Octave value must be between 1 and 10." msgstr "" -#: js/toolbar.js:95 -#: js/toolbar.js:160 -#: js/toolbar.js:215 -#: js/toolbar.js:270 -msgid "aymara" +#: js/block-verbose.js:4485 +#: js/block.js:4409 +msgid "Numbers can have at most 10 digits." msgstr "" -#: js/toolbar.js:96 -#: js/toolbar.js:161 -#: js/toolbar.js:216 -#: js/toolbar.js:271 -msgid "quechua" +#: js/activity.js:390 +#: js/activity.js:395 +msgid "Search for blocks" msgstr "" -#: js/toolbar.js:97 -#: js/toolbar.js:162 -#: js/toolbar.js:217 -#: js/toolbar.js:272 -msgid "guarani" +#: js/activity.js:1413 +msgid "Refresh your browser to change to advanced mode." msgstr "" -#: js/toolbar.js:98 -#: js/toolbar.js:163 -#: js/toolbar.js:218 -#: js/toolbar.js:273 -msgid "हिंदी" +#: js/activity.js:1418 +msgid "Refresh your browser to change to beginner mode." msgstr "" -#: js/toolbar.js:99 -#: js/toolbar.js:165 -#: js/toolbar.js:219 -#: js/toolbar.js:275 -msgid "igbo" +#: js/activity.js:1477 +msgid "Catching mice" +msgstr "" + +#: js/activity.js:1478 +msgid "Cleaning the instruments" +msgstr "" + +#: js/activity.js:1479 +msgid "Testing key pieces" +msgstr "" + +#: js/activity.js:1480 +msgid "Sight-reading" +msgstr "" + +#: js/activity.js:1481 +msgid "Combining math and music" msgstr "" -#: js/toolbar.js:100 -#: js/toolbar.js:166 -#: js/toolbar.js:220 -#: js/toolbar.js:276 -msgid "عربى" +#: js/activity.js:1482 +msgid "Generating more blocks" msgstr "" -#: js/toolbar.js:101 -#: js/toolbar.js:164 -#: js/toolbar.js:221 -#: js/toolbar.js:274 -msgid "తెలుగు" +#: js/activity.js:1483 +msgid "Do Re Mi Fa Sol La Ti Do" msgstr "" -#: js/toolbar.js:102 -#: js/toolbar.js:167 -#: js/toolbar.js:222 -#: js/toolbar.js:277 -msgid "עִברִית" +#: js/activity.js:1484 +msgid "Tuning string instruments" msgstr "" -#: js/toolbar.js:111 -#: js/toolbar.js:175 -#: js/toolbar.js:176 -#: js/toolbar.js:231 -msgid "Full Screen" +#: js/activity.js:1485 +msgid "Pressing random keys" msgstr "" -#: js/toolbar.js:145 -#: js/toolbar.js:148 -#: js/toolbar.js:200 -#: js/toolbar.js:203 -#: js/toolbar.js:255 -#: js/toolbar.js:258 -#: js/turtledefs.js:558 -msgid "Save turtle artwork as PNG" +#: js/activity.js:1663 +msgid "plugins will be removed upon restart." msgstr "" -#: js/toolbar.js:147 -#: js/toolbar.js:202 -#: js/toolbar.js:257 -#: js/turtledefs.js:554 -msgid "Save turtle artwork as SVG" +#: js/activity.js:1672 +msgid "show Cartesian" msgstr "" -#: js/toolbar.js:154 -#: js/toolbar.js:209 -#: js/toolbar.js:264 -msgid "한국인" +#: js/activity.js:2211 +#: js/palette.js:589 +#: js/blocks/RhythmBlocks.js:923 +#: js/blocks/PitchBlocks.js:442 +#: js/blocks/PitchBlocks.js:1786 +#.TRANS: a numeric mapping of the notes in an octave based on the musical mode +msgid "scale degree" msgstr "" -#: js/toolbar.js:171 -#: js/toolbar.js:227 -msgid "About Turtle Blocks" +#: js/activity.js:2214 +#: js/palette.js:598 +msgid "voice name" msgstr "" -#: js/toolbar.js:429 -#: js/toolbar.js:440 -msgid "Turtle Wrap Off" +#: js/activity.js:2217 +#: js/palette.js:595 +msgid "invert mode" msgstr "" -#: js/toolbar.js:442 -msgid "Turtle Wrap On" +#: js/activity.js:2220 +msgid "output tools" msgstr "" -#: js/block.js:1470 -msgid "matrix" +#: js/activity.js:2223 +msgid "custom note" msgstr "" -#: js/block.js:1477 -#: js/WidgetBlocks.js:1226 -#: plugins/rodi.rtp:324 -msgid "status" +#: js/activity.js:2226 +msgid "accidental name" msgstr "" -#: js/block.js:1484 -msgid "drum mapper" +#: js/activity.js:2229 +#: js/blocks/PitchBlocks.js:855 +msgid "east indian solfege" msgstr "" -#: js/block.js:1491 -msgid "ruler" +#: js/activity.js:2232 +#: js/blocks/PitchBlocks.js:869 +msgid "note name" msgstr "" -#: js/block.js:1498 -#: js/WidgetBlocks.js:327 -#.TRANS: timbre is the character or quality of a musical sound -msgid "timbre" +#: js/activity.js:2235 +#: js/blocks/IntervalsBlocks.js:94 +msgid "temperament name" msgstr "" -#: js/block.js:1505 -msgid "stair" +#: js/activity.js:2238 +#: js/palette.js:592 +msgid "mode name" msgstr "" -#: js/block.js:1512 -#: js/WidgetBlocks.js:577 -#.TRANS: the speed at music is should be played. -msgid "tempo" +#: js/activity.js:2241 +msgid "chord name" msgstr "" -#: js/block.js:1519 -#: js/block.js:1582 -#: js/IntervalsBlocks.js:1268 -#.TRANS: mode, e.g., Major in C Major -msgid "mode" +#: js/activity.js:2244 +#: js/palette.js:615 +msgid "interval name" msgstr "" -#: js/block.js:1526 -msgid "slider" +#: js/activity.js:2247 +msgid "filter type" msgstr "" -#: js/block.js:1533 -#: js/SensorsBlocks.js:1001 -msgid "keyboard" +#: js/activity.js:2250 +msgid "oscillator type" msgstr "" -#: js/block.js:1547 -#: js/WidgetBlocks.js:957 -#: js/WidgetBlocks.js:988 -#.TRANS: widget for subdividing a measure into distinct rhythmic elements -msgid "rhythm maker" +#: js/activity.js:2253 +#: js/blocks.js:2479 +#: js/blocks.js:2487 +msgid "audio file" msgstr "" -#: js/block.js:1554 -#: js/block.js:2182 -#: js/block.js:2236 -#: js/RhythmBlockPaletteBlocks.js:70 -#: js/RhythmBlockPaletteBlocks.js:251 -#: js/RhythmBlockPaletteBlocks.js:484 -#: js/RhythmBlockPaletteBlocks.js:553 -#: js/RhythmBlockPaletteBlocks.js:604 -#: js/RhythmBlockPaletteBlocks.js:874 -#: js/RhythmBlocks.js:33 -#: js/RhythmBlocks.js:356 -#: js/RhythmBlocks.js:766 -#: js/RhythmBlocks.js:806 -#: js/OrnamentBlocks.js:220 -#: js/OrnamentBlocks.js:312 -#: js/MeterBlocks.js:1367 -#: js/DictActions.js:85 -#: js/phrasemaker.js:731 -#: js/phrasemaker.js:2393 -#: js/phrasemaker.js:2436 -#: js/phrasemaker.js:2534 -#.TRANS: the value (e.g., 1/4 note) of the note being played. -msgid "note value" +#: js/activity.js:2256 +#: js/blocks/DrumBlocks.js:32 +msgid "noise name" msgstr "" -#: js/block.js:1561 -#: js/block.js:2110 -#: js/block.js:2133 -#: js/IntervalsBlocks.js:875 -#: js/OrnamentBlocks.js:312 -#.TRANS: calculate a relative step between notes based on semi-tones -msgid "scalar interval" +#: js/activity.js:2259 +#: js/blocks/DrumBlocks.js:75 +msgid "drum name" msgstr "" -#: js/block.js:1568 -#: js/RhythmBlocks.js:148 -msgid "milliseconds" +#: js/activity.js:2262 +#: js/blocks/DrumBlocks.js:119 +msgid "effects name" msgstr "" -#: js/block.js:2180 -#: js/block.js:2184 -#: js/block.js:2234 -#: js/block.js:2345 -#: js/ProgramBlocks.js:1273 -#: js/RhythmBlocks.js:712 -#: js/rhythmruler.js:834 -#: js/rhythmruler.js:961 -msgid "silence" +#: js/activity.js:2265 +msgid "wrap mode" msgstr "" -#: js/block.js:2265 -#: js/block.js:3134 -#: js/block.js:3151 -#: js/activity.js:2336 -#: js/activity.js:2387 -#: js/musicutils.js:2932 -#: js/musicutils.js:4287 -#.TRANS: the note names must be separated by single spaces -#.TRANS: the note names must be separated by single spaces -msgid "ti la sol fa mi re do" +#: js/activity.js:2268 +msgid "load file" msgstr "" -#: js/block.js:2333 -#.TRANS: scalar step -msgid "down" +#: js/activity.js:2435 +#: js/activity.js:5851 +msgid "This block is deprecated." msgstr "" -#: js/block.js:2334 -msgid "up" +#: js/activity.js:2437 +#: js/activity.js:5853 +msgid "Block cannot be found." msgstr "" -#: js/block.js:3477 -#: js/block.js:3490 -#: js/ExtrasBlocks.js:612 -msgid "Cartesian" +#: js/activity.js:2645 +msgid "Saving block artwork" msgstr "" -#: js/block.js:3478 -#: js/block.js:3491 -#: js/ExtrasBlocks.js:616 -msgid "polar" +#: js/activity.js:2656 +msgid "Erase" msgstr "" -#: js/block.js:3479 -#: js/block.js:3492 -#: js/ExtrasBlocks.js:620 -msgid "Cartesian+polar" +#: js/activity.js:2683 +#: js/activity.js:2705 +msgid "Paste" msgstr "" -#: js/block.js:3480 -#: js/block.js:3499 -#: js/ExtrasBlocks.js:649 -msgid "none" +#: js/activity.js:2687 +msgid "Save block help" msgstr "" -#: js/block.js:3493 -#: js/ExtrasBlocks.js:625 -msgid "treble" +#: js/activity.js:2772 +msgid "Jumping to the bottom of the page." msgstr "" -#: js/block.js:3494 -#: js/ExtrasBlocks.js:629 -msgid "grand staff" +#: js/activity.js:2778 +msgid "Scrolling up." msgstr "" -#: js/block.js:3495 -#: js/ExtrasBlocks.js:633 -msgid "mezzo-soprano" +#: js/activity.js:2783 +msgid "Scrolling down." msgstr "" -#: js/block.js:3496 -#: js/ExtrasBlocks.js:637 -msgid "alto" +#: js/activity.js:2788 +msgid "Extracting block" msgstr "" -#: js/block.js:3497 -#: js/ExtrasBlocks.js:641 -msgid "tenor" +#: js/activity.js:2796 +msgid "Moving block up." msgstr "" -#: js/block.js:3498 -#: js/ExtrasBlocks.js:645 -#: js/musicutils.js:736 -#: js/synthutils.js:64 -#.TRANS: musical instrument -msgid "bass" +#: js/activity.js:2817 +msgid "Moving block down." msgstr "" -#: js/block.js:4075 -msgid "Not a number" +#: js/activity.js:2838 +msgid "Moving block left." msgstr "" -#: js/block.js:4082 -msgid "Octave value must be between 1 and 10." +#: js/activity.js:2855 +msgid "Moving block right." msgstr "" -#: js/block.js:4090 -msgid "Numbers can have at most 10 digits." +#: js/activity.js:2870 +msgid "Jump to home position." msgstr "" -#: js/notation.js:353 -msgid "Lilypond cannot process pickup of " +#: js/activity.js:2897 +msgid "Hide blocks" msgstr "" -#: js/turtledefs.js:40 -#.TRANS: put the URL to the guide here, e.g., https://github.com/sugarlabs/turtleblocksjs/tree/master/guide/README.md -msgid "guide url" +#: js/activity.js:4500 +msgid "Click the run button to run the project." msgstr "" -#: js/turtledefs.js:85 -#: js/turtledefs.js:437 -msgid "Turtle Blocks is a Logo-inspired turtle that draws colorful pictures with snap-together visual-programming blocks." +#: js/activity.js:5692 +msgid "Show/hide block" msgstr "" -#: js/turtledefs.js:118 -#: js/turtledefs.js:220 -msgid "search" +#: js/activity.js:5698 +msgid "Expand/collapse blocks" msgstr "" -#: js/turtledefs.js:120 -#: js/turtledefs.js:222 -#: js/WidgetBlocks.js:437 -#: js/MeterBlocks.js:1343 -#.TRANS: musical meter (time signature), e.g., 4:4 -msgid "meter" +#: js/activity.js:5976 +msgid "Could not parse JSON input." msgstr "" -#: js/turtledefs.js:122 -#: js/turtledefs.js:224 -msgid "intervals" +#: js/activity.js:6475 +#: js/activity.js:6580 +#: js/activity.js:6631 +msgid "Cannot load project from the file. Please check the file type." msgstr "" -#: js/turtledefs.js:124 -#: js/turtledefs.js:226 -msgid "ornament" +#: js/activity.js:6917 +msgid "Invalid parameters" msgstr "" -#: js/turtledefs.js:125 -#: js/turtledefs.js:227 -#: js/VolumeBlocks.js:362 -#: js/VolumeBlocks.js:502 -#: js/VolumeBlocks.js:545 -msgid "volume" +#: js/blocks.js:1212 +#: js/blocks.js:3444 +#: js/blocks.js:3834 +#: js/blocks.js:3865 +#: js/blocks.js:3914 +#: js/blocks.js:3949 +#: js/blocks.js:6586 +#: js/palette.js:509 +#: js/palette.js:638 +#: js/palette.js:1105 +#: js/blocks/BoxesBlocks.js:282 +#: js/blocks/BoxesBlocks.js:285 +#: js/blocks/BoxesBlocks.js:405 +#: js/blocks/BoxesBlocks.js:594 +msgid "box" msgstr "" -#: js/turtledefs.js:129 -#: js/turtledefs.js:231 -msgid "boxes" +#: js/blocks.js:1713 +msgid "Consider breaking this stack into parts." msgstr "" -#: js/turtledefs.js:130 -#: js/turtledefs.js:232 -msgid "widgets" +#: js/blocks.js:2472 +#: js/palette.js:653 +#: js/blocks/MediaBlocks.js:602 +msgid "open file" msgstr "" -#: js/turtledefs.js:131 -#: js/turtledefs.js:233 -#: js/phrasemaker.js:824 -msgid "graphics" +#: js/blocks.js:3247 +#: js/palette.js:574 +#: js/blocks/MediaBlocks.js:892 +#: js/blocks/MediaBlocks.js:963 +msgid "text" msgstr "" -#: js/turtledefs.js:134 -#: js/turtledefs.js:236 -msgid "boolean" +#: js/blocks.js:3443 +#: js/palette.js:641 +#: js/palette.js:642 +#: js/blocks/BoxesBlocks.js:514 +msgid "store in box" msgstr "" -#: js/turtledefs.js:137 -#: js/turtledefs.js:239 -#: js/HeapBlocks.js:59 -#: js/status.js:147 -msgid "heap" +#: js/blocks.js:3448 +#: js/blocks.js:3888 +#: js/blocks.js:3923 +#: js/blocks.js:3958 +#: js/blocks.js:5862 +#: js/blocks.js:5883 +#: js/blocks/BoxesBlocks.js:772 +msgid "box1" msgstr "" -#: js/turtledefs.js:138 -#: js/turtledefs.js:240 -#: js/ProgramBlocks.js:495 -#: js/DictBlocks.js:142 -msgid "dictionary" +#: js/blocks.js:3450 +#: js/blocks.js:3890 +#: js/blocks.js:3925 +#: js/blocks.js:3960 +#: js/blocks.js:5864 +#: js/blocks.js:5885 +#: js/blocks/BoxesBlocks.js:663 +msgid "box2" msgstr "" -#: js/turtledefs.js:139 -#: js/turtledefs.js:241 -msgid "ensemble" +#: js/blocks.js:4122 +#: js/palette.js:639 +#: js/palette.js:644 +#: js/palette.js:1041 +#: js/blocks/BoxesBlocks.js:591 +msgid "store in" msgstr "" -#: js/turtledefs.js:140 -#: js/turtledefs.js:242 -msgid "extras" +#: js/blocks.js:4122 +#: js/blocks/BoxesBlocks.js:595 +#: js/blocks/DictBlocks.js:215 +#: js/blocks/DictBlocks.js:289 +#: js/blocks/EnsembleBlocks.js:391 +#: js/blocks/EnsembleBlocks.js:402 +#: js/blocks/MediaBlocks.js:746 +#: js/blocks/PitchBlocks.js:656 +#: js/blocks/PitchBlocks.js:934 +#: js/blocks/PitchBlocks.js:1866 +#: js/blocks/ProgramBlocks.js:390 +#: js/blocks/ProgramBlocks.js:495 +#: js/blocks/ProgramBlocks.js:658 +#: js/blocks/ToneBlocks.js:1025 +msgid "name" msgstr "" -#: js/turtledefs.js:142 -#: js/turtledefs.js:244 -#.TRANS: program as in computer program -#.TRANS: program as in computer program -msgid "program" +#: js/blocks.js:4122 +#: js/blocks/BoxesBlocks.js:75 +#: js/blocks/BoxesBlocks.js:595 +#: js/blocks/DictBlocks.js:289 +#: js/blocks/DictBlocks.js:430 +#: js/blocks/HeapBlocks.js:544 +#: js/blocks/RhythmBlocks.js:1130 +msgid "value" msgstr "" -#: js/turtledefs.js:143 -#: js/turtledefs.js:245 -msgid "my blocks" +#: js/blocks.js:4465 +msgid "Forever loop detected inside a note value block. Unexpected things may happen." msgstr "" -#: js/turtledefs.js:185 -#: js/turtledefs.js:281 -msgid "artwork" +#: js/blocks.js:4988 +msgid "There is no block selected." msgstr "" -#: js/turtledefs.js:185 -#: js/turtledefs.js:281 -msgid "logic" +#: js/blocks.js:5091 +#: js/blocks/MediaBlocks.js:888 +msgid "show" msgstr "" -#: js/turtledefs.js:185 -#: js/turtledefs.js:281 -msgid "music" +#: js/blocks.js:5094 +#: js/blocks/MediaBlocks.js:803 +#.TRANS: Avatar is the image used to determine the appearance of the mouse. +msgid "avatar" msgstr "" -#: js/turtledefs.js:187 -#: js/turtledefs.js:463 -msgid "Music Blocks is a collection of tools for exploring fundamental musical concepts in a fun way." +#: js/blocks.js:5097 +#: js/blocks/ToneBlocks.js:1010 +#: js/widgets/sampler.js:975 +#.TRANS: The sound sample that the user uploads. +msgid "sample" msgstr "" -#: js/turtledefs.js:436 -msgid "Welcome to Turtle Blocks" +#: js/lilypond.js:606 +msgid "brown rat" msgstr "" -#: js/turtledefs.js:438 -#: js/turtledefs.js:465 -#: js/turtledefs.js:774 -#: js/turtledefs.js:805 -msgid "The current version is" +#: js/lilypond.js:607 +msgid "mole" msgstr "" -#: js/turtledefs.js:446 -#: js/turtledefs.js:483 -msgid "Click the run button to run the project in fast mode." +#: js/lilypond.js:608 +msgid "chipmunk" msgstr "" -#: js/turtledefs.js:452 -msgid "Stop the turtle." +#: js/lilypond.js:609 +msgid "red squirrel" msgstr "" -#: js/turtledefs.js:454 -#: js/turtledefs.js:491 -msgid "You can also type Alt-S to stop." +#: js/lilypond.js:610 +msgid "guinea pig" +msgstr "" + +#: js/lilypond.js:611 +msgid "capybara" msgstr "" -#: js/turtledefs.js:462 -#: js/help.js:333 -msgid "Welcome to Music Blocks" +#: js/lilypond.js:612 +msgid "coypu" msgstr "" -#: js/turtledefs.js:472 -#: js/help.js:334 -msgid "Meet Mr. Mouse!" +#: js/lilypond.js:613 +msgid "black rat" msgstr "" -#: js/turtledefs.js:473 -msgid "Mr Mouse is our Music Blocks conductor." +#: js/lilypond.js:614 +msgid "grey squirrel" msgstr "" -#: js/turtledefs.js:475 -msgid "Mr Mouse encourages you to explore Music Blocks." +#: js/lilypond.js:615 +msgid "flying squirrel" msgstr "" -#: js/turtledefs.js:477 -msgid "Let us start our tour!" +#: js/lilypond.js:616 +msgid "bat" msgstr "" -#: js/turtledefs.js:489 -msgid "Stop the music (and the mice)." +#: js/lilypond.js:749 +#: js/lilypond.js:913 +#: js/lilypond.js:951 +#: js/blocks/ActionBlocks.js:1256 +#: js/blocks/ExtrasBlocks.js:556 +msgid "start drum" msgstr "" -#: js/turtledefs.js:499 -msgid "Record your project as video." +#: js/logo.js:61 +msgid "Not a valid pitch name" msgstr "" -#: js/turtledefs.js:505 -msgid "Toggle Fullscreen mode." +#: js/logo.js:507 +#: js/blocks/ProgramBlocks.js:258 +#: js/blocks/ProgramBlocks.js:427 +msgid "You must select a file." msgstr "" -#: js/turtledefs.js:511 -msgid "Initialize a new project." +#: js/logo.js:1696 +msgid "Playback is ready." msgstr "" -#: js/turtledefs.js:517 -msgid "You can also load projects from the file system." +#: js/macros.js:711 +#: js/utils/musicutils.js:1162 +#: js/utils/synthutils.js:202 +#.TRANS: animal sound effect +msgid "duck" msgstr "" -#: js/turtledefs.js:522 -#: js/StringHelper.js:46 -msgid "Delete" +#: js/notation.js:353 +msgid "Lilypond cannot process pickup of " msgstr "" -#: js/turtledefs.js:523 -msgid "To delete a block, just right-click on it, then you will be able to see the delete option" +#: js/palette.js:571 +msgid "grid" msgstr "" -#: js/turtledefs.js:528 -#: js/activity.js:2270 -#: js/LocalCard.js:31 -msgid "Copy" +#: js/palette.js:580 +msgid "effect" msgstr "" -#: js/turtledefs.js:529 -msgid "To copy a block, just right-click on it, then you will be able to see the copy option" +#: js/palette.js:586 +msgid "sargam" msgstr "" -#: js/turtledefs.js:535 -msgid "To extract a block, just right-click on it, then you will be able to see the extract option" +#: js/palette.js:601 +#: js/blocks/PitchBlocks.js:1209 +msgid "custom pitch" msgstr "" -#: js/turtledefs.js:542 -#: js/turtledefs.js:552 -#: js/turtledefs.js:573 -msgid "Save your project to a file." +#: js/palette.js:609 +msgid "accidental" msgstr "" -#: js/turtledefs.js:549 -#: js/turtledefs.js:570 -msgid "save" +#: js/palette.js:633 +#: js/blocks/PitchBlocks.js:405 +msgid "pitch converter" msgstr "" -#: js/turtledefs.js:556 -#: js/turtledefs.js:577 -msgid "Save graphics from your project to as SVG." +#: js/piemenus.js:200 +#: js/utils/musicutils.js:1187 +#: js/utils/musicutils.js:1207 +#: js/widgets/musickeyboard.js:2341 +#: js/widgets/phrasemaker.js:1908 +#: js/widgets/sampler.js:810 +#.TRANS: double sharp is a music term related to pitch +msgid "double sharp" msgstr "" -#: js/turtledefs.js:560 -#: js/turtledefs.js:581 -msgid "Save graphics from your project as PNG." +#: js/piemenus.js:201 +#: js/utils/musicutils.js:1185 +#: js/utils/musicutils.js:1208 +#: js/blocks/PitchBlocks.js:1539 +#: js/turtleactions/PitchActions.js:323 +#: js/widgets/musickeyboard.js:2342 +#: js/widgets/phrasemaker.js:1909 +#: js/widgets/sampler.js:811 +#.TRANS: sharp is a music term related to pitch +#.TRANS: sharp is a half-step up in pitch +msgid "sharp" msgstr "" -#: js/turtledefs.js:564 -#: js/turtledefs.js:597 -msgid "Save block artwork as an SVG file." +#: js/piemenus.js:202 +#: js/utils/musicutils.js:1183 +#: js/utils/musicutils.js:1209 +#: js/widgets/musickeyboard.js:2343 +#: js/widgets/phrasemaker.js:1910 +#: js/widgets/sampler.js:812 +#.TRANS: natural is a music term related to pitch +msgid "natural" msgstr "" -#: js/turtledefs.js:585 -msgid "Save audio from your project as WAV." +#: js/piemenus.js:203 +#: js/utils/musicutils.js:1181 +#: js/utils/musicutils.js:1210 +#: js/blocks/PitchBlocks.js:1498 +#: js/turtleactions/PitchActions.js:326 +#: js/widgets/musickeyboard.js:2344 +#: js/widgets/phrasemaker.js:1911 +#: js/widgets/sampler.js:813 +#.TRANS: flat is a music term related to pitch +#.TRANS: flat is a half-step down in pitch +msgid "flat" msgstr "" -#: js/turtledefs.js:589 -msgid "Save your project to as an ABC file." +#: js/piemenus.js:204 +#: js/utils/musicutils.js:1179 +#: js/utils/musicutils.js:1211 +#: js/widgets/musickeyboard.js:2345 +#: js/widgets/phrasemaker.js:1912 +#: js/widgets/sampler.js:814 +#.TRANS: double flat is a music term related to pitch +msgid "double flat" msgstr "" -#: js/turtledefs.js:593 -msgid "Save your project to as a Lilypond file." +#: js/piemenus.js:2864 +#: js/utils/musicutils.js:1006 +#: js/blocks/PitchBlocks.js:1385 +#.TRANS: unison is a music term related to intervals +#.TRANS: unison means the note is the same as the current note +msgid "unison" msgstr "" -#: js/turtledefs.js:604 -msgid "Load samples from server" +#: js/piemenus.js:3018 +#: js/piemenus.js:3091 +#: js/utils/musicutils.js:1014 +#: js/utils/musicutils.js:1189 +#: js/utils/musicutils.js:1326 +#.TRANS: major is a music term related to intervals and mode +msgid "major" msgstr "" -#: js/turtledefs.js:605 -msgid "This button opens a viewer for loading example projects." +#: js/piemenus.js:3018 +#: js/piemenus.js:3091 +#: js/utils/musicutils.js:1032 +#.TRANS: modal scale for music +msgid "ionian" msgstr "" -#: js/turtledefs.js:611 -msgid "Palette buttons" +#: js/piemenus.js:3020 +#: js/piemenus.js:3095 +#: js/utils/musicutils.js:1012 +#: js/utils/musicutils.js:1190 +#: js/utils/musicutils.js:1323 +#.TRANS: minor is a music term related to intervals and mode +msgid "minor" msgstr "" -#: js/turtledefs.js:612 -msgid "This toolbar contains the palette buttons including Rhythm Pitch Tone Action and more." +#: js/piemenus.js:3020 +#: js/piemenus.js:3095 +#: js/utils/musicutils.js:1042 +#.TRANS: modal scale for music +msgid "aeolian" msgstr "" -#: js/turtledefs.js:614 -msgid "Click to show the palettes of blocks and drag blocks from the palettes onto the canvas to use them." +#: js/piemenus.js:3410 +msgid "Duplicate" msgstr "" -#: js/turtledefs.js:620 -msgid "Cartesian/Polar" +#: js/piemenus.js:3412 +msgid "Move to trash" msgstr "" -#: js/turtledefs.js:621 -msgid "Show or hide a coordinate grid." +#: js/piemenus.js:3413 +#: js/widgets/timbre.js:968 +#: planet/js/StringHelper.js:69 +msgid "Close" msgstr "" -#: js/turtledefs.js:627 -msgid "Clear the screen and return the mice to their initial positions." +#: js/piemenus.js:3419 +msgid "Save stack" msgstr "" -#: js/turtledefs.js:633 -msgid "Collapse the graphics window." +#: js/piemenus.js:3449 +msgid "In order to copy a sample, you must reload the widget, import the sample again, and export it." msgstr "" -#: js/turtledefs.js:638 -#: js/activity.js:4256 -#: js/activity.js:4256 -msgid "Home" +#: js/piemenus.js:3812 +msgid "You have chosen key " msgstr "" -#: js/turtledefs.js:639 -msgid "Return all blocks to the center of the screen." +#: js/piemenus.js:3816 +msgid " for your pitch preview." msgstr "" -#: js/turtledefs.js:644 -msgid "Show/hide blocks" +#: js/turtle-singer.js:1363 +#.TRANS: partials are weighted components in a harmonic series +msgid "You must have at least one Partial block inside of a Weighted-partial block" msgstr "" -#: js/turtledefs.js:645 -msgid "Hide or show the blocks and the palettes." +#: js/turtle-singer.js:2077 +msgid "synth cannot play chords." msgstr "" -#: js/turtledefs.js:650 -msgid "Expand/collapse collapsable blocks" +#: js/utils/musicutils.js:505 +#: js/utils/musicutils.js:645 +#: js/widgets/pitchdrummatrix.js:228 +#: js/widgets/musickeyboard.js:2885 +msgid "rest" msgstr "" -#: js/turtledefs.js:651 -msgid "Expand or collapse start and action stacks." +#: js/utils/musicutils.js:689 +msgid "Perfect unison" msgstr "" -#: js/turtledefs.js:658 -#: js/activity.js:4265 -msgid "Decrease block size" +#: js/utils/musicutils.js:689 +msgid "Diminished second" msgstr "" -#: js/turtledefs.js:659 -msgid "Decrease the size of the blocks." +#: js/utils/musicutils.js:690 +msgid "Minor second" msgstr "" -#: js/turtledefs.js:664 -#: js/activity.js:4267 -msgid "Increase block size" +#: js/utils/musicutils.js:690 +msgid "Augmented unison" msgstr "" -#: js/turtledefs.js:665 -msgid "Increase the size of the blocks." +#: js/utils/musicutils.js:691 +msgid "Major second" msgstr "" -#: js/turtledefs.js:670 -msgid "Expand/collapse option toolbar" +#: js/utils/musicutils.js:691 +msgid "Diminished third" msgstr "" -#: js/turtledefs.js:671 -msgid "Click this button to expand or collapse the auxillary toolbar." +#: js/utils/musicutils.js:692 +msgid "Minor third" msgstr "" -#: js/turtledefs.js:676 -msgid "Run slow" +#: js/utils/musicutils.js:692 +msgid "Augmented second" msgstr "" -#: js/turtledefs.js:677 -msgid "Click to run the project in slow mode." +#: js/utils/musicutils.js:693 +msgid "Major third" msgstr "" -#: js/turtledefs.js:683 -msgid "Click to run the project step by step." +#: js/utils/musicutils.js:693 +msgid "Diminished fourth" msgstr "" -#: js/turtledefs.js:690 -msgid "Display statistics about your Music project." +#: js/utils/musicutils.js:694 +msgid "Perfect fourth" msgstr "" -#: js/turtledefs.js:697 -msgid "Delete a selected plugin." +#: js/utils/musicutils.js:694 +msgid "Augmented third" msgstr "" -#: js/turtledefs.js:704 -msgid "Enable scrolling" +#: js/utils/musicutils.js:695 +msgid "Diminished fifth" msgstr "" -#: js/turtledefs.js:705 -msgid "You can scroll the blocks on the canvas." +#: js/utils/musicutils.js:695 +msgid "Augmented fourth" msgstr "" -#: js/turtledefs.js:714 -msgid "Wrap Turtle" +#: js/utils/musicutils.js:696 +msgid "Perfect fifth" msgstr "" -#: js/turtledefs.js:715 -msgid "Turn Turtle wrapping On or Off." +#: js/utils/musicutils.js:696 +msgid "Diminished sixth" msgstr "" -#: js/turtledefs.js:725 -msgid "Restore blocks from the trash." +#: js/utils/musicutils.js:697 +msgid "Minor sixth" msgstr "" -#: js/turtledefs.js:732 -msgid "Switch mode" +#: js/utils/musicutils.js:697 +msgid "Augmented fifth" msgstr "" -#: js/turtledefs.js:733 -msgid "Switch between beginner and advance modes." +#: js/utils/musicutils.js:698 +msgid "Major sixth" msgstr "" -#: js/turtledefs.js:739 -msgid "Select your language preference." +#: js/utils/musicutils.js:698 +msgid "Diminished seventh" msgstr "" -#: js/turtledefs.js:745 -msgid "Keyboard shortcuts" +#: js/utils/musicutils.js:699 +msgid "Minor seventh" msgstr "" -#: js/turtledefs.js:746 -msgid "You can type d to create a do block and r to create a re block etc." +#: js/utils/musicutils.js:699 +msgid "Augmented sixth" msgstr "" -#: js/turtledefs.js:753 -msgid "Show these messages." +#: js/utils/musicutils.js:700 +msgid "Major seventh" msgstr "" -#: js/turtledefs.js:759 -#: js/turtledefs.js:790 -#: js/help.js:335 -msgid "Guide" +#: js/utils/musicutils.js:700 +msgid "Diminished octave" msgstr "" -#: js/turtledefs.js:760 -msgid "A detailed guide to Turtle Blocks is available." +#: js/utils/musicutils.js:701 +msgid "Perfect octave" msgstr "" -#: js/turtledefs.js:764 -msgid "Turtle Blocks Guide" +#: js/utils/musicutils.js:701 +msgid "Augmented seventh" msgstr "" -#: js/turtledefs.js:767 -#: js/turtledefs.js:798 -#: js/help.js:336 -msgid "About" +#: js/utils/musicutils.js:702 +msgid "Minor ninth" msgstr "" -#: js/turtledefs.js:768 -msgid "Turtle Blocks is an open source collection of tools for exploring musical concepts." +#: js/utils/musicutils.js:702 +msgid "Augmented octave" msgstr "" -#: js/turtledefs.js:770 -msgid "A full list of contributors can be found in the Turtle Blocks GitHub repository." +#: js/utils/musicutils.js:703 +msgid "Major ninth" msgstr "" -#: js/turtledefs.js:772 -msgid "Turtle Blocks is licensed under the AGPL." +#: js/utils/musicutils.js:703 +msgid "Diminished tenth" msgstr "" -#: js/turtledefs.js:780 -msgid "Turtle Blocks GitHub repository" +#: js/utils/musicutils.js:704 +msgid "Minor tenth" msgstr "" -#: js/turtledefs.js:783 -#: js/turtledefs.js:814 -#: js/help.js:337 -#: js/help.js:359 -msgid "Congratulations." +#: js/utils/musicutils.js:704 +msgid "Augmented ninth" msgstr "" -#: js/turtledefs.js:784 -msgid "You have finished the tour. Please enjoy Turtle Blocks!" +#: js/utils/musicutils.js:705 +msgid "Major tenth" msgstr "" -#: js/turtledefs.js:791 -msgid "A detailed guide to Music Blocks is available." +#: js/utils/musicutils.js:705 +msgid "Diminished eleventh" msgstr "" -#: js/turtledefs.js:795 -#: js/SaveInterface.js:76 -msgid "Music Blocks Guide" +#: js/utils/musicutils.js:706 +msgid "Perfect eleventh" msgstr "" -#: js/turtledefs.js:799 -msgid "Music Blocks is an open source collection of tools for exploring musical concepts." +#: js/utils/musicutils.js:706 +msgid "Augmented tenth" msgstr "" -#: js/turtledefs.js:801 -msgid "A full list of contributors can be found in the Music Blocks GitHub repository." +#: js/utils/musicutils.js:707 +msgid "Diminished twelfth" msgstr "" -#: js/turtledefs.js:803 -msgid "Music Blocks is licensed under the AGPL." +#: js/utils/musicutils.js:707 +msgid "Augmented eleventh" msgstr "" -#: js/turtledefs.js:811 -msgid "Music Blocks GitHub repository" +#: js/utils/musicutils.js:708 +msgid "Perfect twelfth" msgstr "" -#: js/turtledefs.js:815 -msgid "You have finished the tour. Please enjoy Music Blocks!" +#: js/utils/musicutils.js:708 +msgid "Diminished thirteenth" msgstr "" -#: js/activity.js:369 -msgid "Search for blocks" +#: js/utils/musicutils.js:709 +msgid "Minor thirteenth" msgstr "" -#: js/activity.js:1145 -msgid "Refresh your browser to change to advanced mode." +#: js/utils/musicutils.js:709 +msgid "Augmented fifth, plus an octave" msgstr "" -#: js/activity.js:1150 -msgid "Refresh your browser to change to beginner mode." +#: js/utils/musicutils.js:710 +msgid "Major thirteenth" msgstr "" -#: js/activity.js:1184 -msgid "Catching mice" +#: js/utils/musicutils.js:710 +msgid "Diminished seventh, plus an octave" msgstr "" -#: js/activity.js:1185 -msgid "Cleaning the instruments" +#: js/utils/musicutils.js:838 +#.TRANS: ordinal number. Please keep exactly one space between each number. +msgid "1st 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th" msgstr "" -#: js/activity.js:1186 -msgid "Testing key pieces" +#: js/utils/musicutils.js:1008 +#: js/utils/musicutils.js:1191 +#: js/utils/musicutils.js:1325 +#.TRANS: augmented is a music term related to intervals +msgid "augmented" msgstr "" -#: js/activity.js:1187 -msgid "Sight-reading" +#: js/utils/musicutils.js:1010 +#: js/utils/musicutils.js:1192 +#: js/utils/musicutils.js:1324 +#.TRANS: diminished is a music term related to intervals and mode +msgid "diminished" msgstr "" -#: js/activity.js:1188 -msgid "Combining math and music" +#: js/utils/musicutils.js:1016 +#: js/utils/musicutils.js:1322 +#: js/blocks/IntervalsBlocks.js:649 +#: js/turtleactions/IntervalsActions.js:120 +#: js/turtleactions/IntervalsActions.js:124 +#.TRANS: perfect is a music term related to intervals +msgid "perfect" +msgstr "" + +#: js/utils/musicutils.js:1018 +#.TRANS: twelve semi-tone scale for music +msgid "chromatic" msgstr "" -#: js/activity.js:1189 -msgid "Generating more blocks" +#: js/utils/musicutils.js:1019 +msgid "algerian" msgstr "" -#: js/activity.js:1190 -msgid "Do Re Mi Fa Sol La Ti Do" +#: js/utils/musicutils.js:1020 +msgid "spanish" msgstr "" -#: js/activity.js:1191 -msgid "Tuning string instruments" +#: js/utils/musicutils.js:1022 +#.TRANS: modal scale in music +msgid "octatonic" msgstr "" -#: js/activity.js:1192 -msgid "Pressing random keys" +#: js/utils/musicutils.js:1024 +#.TRANS: harmonic major scale in music +msgid "harmonic major" msgstr "" -#: js/activity.js:1351 -msgid "plugins will be removed upon restart." +#: js/utils/musicutils.js:1026 +#.TRANS: natural minor scales in music +msgid "natural minor" msgstr "" -#: js/activity.js:1360 -msgid "show Cartesian" +#: js/utils/musicutils.js:1028 +#.TRANS: harmonic minor scale in music +msgid "harmonic minor" msgstr "" -#: js/activity.js:1842 -msgid "output tools" +#: js/utils/musicutils.js:1030 +#.TRANS: melodic minor scale in music +msgid "melodic minor" msgstr "" -#: js/activity.js:1845 -msgid "custom note" +#: js/utils/musicutils.js:1034 +#.TRANS: modal scale for music +msgid "dorian" msgstr "" -#: js/activity.js:1848 -msgid "accidental name" +#: js/utils/musicutils.js:1036 +#.TRANS: modal scale for music +msgid "phrygian" msgstr "" -#: js/activity.js:1851 -#: js/PitchBlocks.js:855 -msgid "east indian solfege" +#: js/utils/musicutils.js:1038 +#.TRANS: modal scale for music +msgid "lydian" msgstr "" -#: js/activity.js:1854 -#: js/PitchBlocks.js:869 -msgid "note name" +#: js/utils/musicutils.js:1040 +#.TRANS: modal scale for music +msgid "mixolydian" msgstr "" -#: js/activity.js:1857 -#: js/IntervalsBlocks.js:94 -msgid "temperament name" +#: js/utils/musicutils.js:1044 +#.TRANS: modal scale for music +msgid "locrian" msgstr "" -#: js/activity.js:1863 -msgid "chord name" +#: js/utils/musicutils.js:1046 +#.TRANS: minor jazz scale for music +msgid "jazz minor" msgstr "" -#: js/activity.js:1869 -msgid "filter type" +#: js/utils/musicutils.js:1048 +#.TRANS: bebop scale for music +msgid "bebop" msgstr "" -#: js/activity.js:1872 -msgid "oscillator type" +#: js/utils/musicutils.js:1049 +msgid "arabic" msgstr "" -#: js/activity.js:1878 -#: js/DrumBlocks.js:32 -msgid "noise name" +#: js/utils/musicutils.js:1050 +msgid "byzantine" msgstr "" -#: js/activity.js:1881 -#: js/DrumBlocks.js:75 -msgid "drum name" +#: js/utils/musicutils.js:1052 +#.TRANS: musical scale for music by Verdi +msgid "enigmatic" msgstr "" -#: js/activity.js:1884 -#: js/DrumBlocks.js:119 -msgid "effects name" +#: js/utils/musicutils.js:1053 +msgid "ethiopian" msgstr "" -#: js/activity.js:1887 -msgid "wrap mode" +#: js/utils/musicutils.js:1055 +#.TRANS: Ethiopic scale for music +msgid "geez" msgstr "" -#: js/activity.js:1890 -msgid "load file" +#: js/utils/musicutils.js:1056 +msgid "hindu" msgstr "" -#: js/activity.js:2056 -msgid "This block is deprecated." +#: js/utils/musicutils.js:1057 +msgid "hungarian" msgstr "" -#: js/activity.js:2058 -msgid "Block cannot be found." +#: js/utils/musicutils.js:1059 +#.TRANS: minor Romanian scale for music +msgid "romanian minor" msgstr "" -#: js/activity.js:2266 -msgid "Saving block artwork" +#: js/utils/musicutils.js:1060 +msgid "spanish gypsy" msgstr "" -#: js/activity.js:2277 -msgid "Erase" +#: js/utils/musicutils.js:1062 +#.TRANS: musical scale for Mid-Eastern music +msgid "maqam" msgstr "" -#: js/activity.js:2301 -#: js/activity.js:2323 -msgid "Paste" +#: js/utils/musicutils.js:1064 +#.TRANS: minor blues scale for music +msgid "minor blues" msgstr "" -#: js/activity.js:2305 -msgid "Save block help" +#: js/utils/musicutils.js:1066 +#.TRANS: major blues scale for music +msgid "major blues" msgstr "" -#: js/activity.js:2390 -msgid "Jumping to the bottom of the page." +#: js/utils/musicutils.js:1067 +msgid "whole tone" msgstr "" -#: js/activity.js:2396 -msgid "Scrolling up." +#: js/utils/musicutils.js:1069 +#.TRANS: pentatonic is a general term that means "five note scale". This scale is typically known as "minor pentatonic" +msgid "minor pentatonic" msgstr "" -#: js/activity.js:2401 -msgid "Scrolling down." +#: js/utils/musicutils.js:1071 +#.TRANS: pentatonic is a general term that means "five note scale". This scale is typically known as "major pentatonic" +msgid "major pentatonic" msgstr "" -#: js/activity.js:2406 -msgid "Extracting block" +#: js/utils/musicutils.js:1072 +msgid "chinese" msgstr "" -#: js/activity.js:2414 -msgid "Moving block up." +#: js/utils/musicutils.js:1073 +msgid "egyptian" msgstr "" -#: js/activity.js:2435 -msgid "Moving block down." +#: js/utils/musicutils.js:1075 +#.TRANS: https://en.wikipedia.org/wiki/Hirajoshi_scale NOTE: There are three different versions of this scale +msgid "hirajoshi" msgstr "" -#: js/activity.js:2456 -msgid "Moving block left." +#: js/utils/musicutils.js:1076 +msgid "Japan" msgstr "" -#: js/activity.js:2473 -msgid "Moving block right." +#: js/utils/musicutils.js:1078 +#.TRANS: https://en.wikipedia.org/wiki/In_scale and https://en.wikipedia.org/wiki/Sakura_Sakura +msgid "in" msgstr "" -#: js/activity.js:2488 -msgid "Jump to home position." +#: js/utils/musicutils.js:1080 +#.TRANS: https://en.wikipedia.org/wiki/Miny%C5%8D_scale +msgid "minyo" msgstr "" -#: js/activity.js:2515 -msgid "Hide blocks" +#: js/utils/musicutils.js:1082 +#.TRANS: Italian mathematician +msgid "fibonacci" msgstr "" -#: js/activity.js:3389 -msgid "Click the run button to run the project." +#: js/utils/musicutils.js:1083 +#: js/utils/musicutils.js:1134 +#: js/utils/musicutils.js:1177 +#: js/utils/musicutils.js:1199 +#: js/utils/synthutils.js:134 +#: js/blocks/IntervalsBlocks.js:1124 +#: js/blocks/ToneBlocks.js:946 +#: js/blocks/VolumeBlocks.js:411 +#: js/blocks/WidgetBlocks.js:399 +#: js/blocks/WidgetBlocks.js:404 +#: js/turtleactions/VolumeActions.js:218 +#: js/widgets/modewidget.js:919 +#.TRANS: customize voice +msgid "custom" msgstr "" -#: js/activity.js:3456 -#: js/SaveInterface.js:131 -#: js/SaveInterface.js:204 -#: js/SaveInterface.js:262 -#: js/SaveInterface.js:389 -#: js/SaveInterface.js:417 -#: js/ProjectStorage.js:27 -#: js/GlobalPlanet.js:467 -#: js/GlobalPlanet.js:469 -#: js/GlobalPlanet.js:495 -#.TRANS: default project title when saving as Lilypond -msgid "My Project" +#: js/utils/musicutils.js:1085 +#: js/utils/musicutils.js:1531 +#: js/blocks/WidgetBlocks.js:176 +#.TRANS: highpass filter +msgid "highpass" msgstr "" -#: js/activity.js:4261 -msgid "Show/hide block" +#: js/utils/musicutils.js:1087 +#: js/utils/musicutils.js:1532 +#.TRANS: lowpass filter +msgid "lowpass" msgstr "" -#: js/activity.js:4263 -msgid "Expand/collapse blocks" +#: js/utils/musicutils.js:1089 +#: js/utils/musicutils.js:1533 +#.TRANS: bandpass filter +msgid "bandpass" msgstr "" -#: js/activity.js:4381 -msgid "Could not parse JSON input." +#: js/utils/musicutils.js:1091 +#: js/utils/musicutils.js:1534 +#.TRANS: high-shelf filter +msgid "highshelf" msgstr "" -#: js/activity.js:4684 -#: js/activity.js:4771 -#: js/activity.js:4821 -msgid "Cannot load project from the file. Please check the file type." +#: js/utils/musicutils.js:1093 +#: js/utils/musicutils.js:1535 +#.TRANS: low-shelf filter +msgid "lowshelf" msgstr "" -#: js/activity.js:5051 -msgid "Invalid parameters" +#: js/utils/musicutils.js:1095 +#: js/utils/musicutils.js:1536 +#.TRANS: notch-shelf filter +msgid "notch" msgstr "" -#: js/turtle-singer.js:1334 -#.TRANS: partials are weighted components in a harmonic series -msgid "You must have at least one Partial block inside of a Weighted-partial block" +#: js/utils/musicutils.js:1097 +#: js/utils/musicutils.js:1537 +#.TRANS: all-pass filter +msgid "allpass" msgstr "" -#: js/turtle-singer.js:2048 -msgid "synth cannot play chords." +#: js/utils/musicutils.js:1099 +#: js/utils/musicutils.js:1538 +#.TRANS: peaking filter +msgid "peaking" msgstr "" -#: js/lilypond.js:614 -msgid "brown rat" +#: js/utils/musicutils.js:1100 +#: js/utils/musicutils.js:1546 +#: js/utils/synthutils.js:126 +#: js/blocks/PitchBlocks.js:85 +#.TRANS: sine wave +msgid "sine" msgstr "" -#: js/lilypond.js:615 -msgid "mole" +#: js/utils/musicutils.js:1101 +#: js/utils/musicutils.js:1547 +#: js/utils/synthutils.js:128 +#: js/blocks/PitchBlocks.js:39 +#.TRANS: square wave +msgid "square" msgstr "" -#: js/lilypond.js:616 -msgid "chipmunk" +#: js/utils/musicutils.js:1102 +#: js/utils/musicutils.js:1548 +#: js/utils/synthutils.js:132 +#: js/blocks/PitchBlocks.js:62 +#: js/blocks/ToneBlocks.js:39 +#.TRANS: triangle wave +msgid "triangle" msgstr "" -#: js/lilypond.js:617 -msgid "red squirrel" +#: js/utils/musicutils.js:1103 +#: js/utils/musicutils.js:1549 +#: js/utils/synthutils.js:130 +#: js/blocks/PitchBlocks.js:108 +#.TRANS: sawtooth wave +msgid "sawtooth" msgstr "" -#: js/lilypond.js:618 -msgid "guinea pig" +#: js/utils/musicutils.js:1105 +#: js/utils/musicutils.js:1312 +#: js/blocks/PitchBlocks.js:931 +#: js/blocks/PitchBlocks.js:937 +#: js/turtleactions/PitchActions.js:469 +#.TRANS: even numbers +#.TRANS: invert based on even or odd number or musical scale +msgid "even" msgstr "" -#: js/lilypond.js:619 -msgid "capybara" +#: js/utils/musicutils.js:1107 +#: js/utils/musicutils.js:1313 +#: js/blocks/PitchBlocks.js:937 +#: js/turtleactions/PitchActions.js:471 +#.TRANS: odd numbers +msgid "odd" msgstr "" -#: js/lilypond.js:620 -msgid "coypu" +#: js/utils/musicutils.js:1108 +#: js/utils/musicutils.js:1314 +#: js/blocks/PitchBlocks.js:937 +#: js/turtleactions/PitchActions.js:473 +msgid "scalar" msgstr "" -#: js/lilypond.js:621 -msgid "black rat" +#: js/utils/musicutils.js:1109 +#: js/utils/synthutils.js:72 +#: js/blocks/VolumeBlocks.js:47 +#.TRANS: musical instrument +msgid "piano" msgstr "" -#: js/lilypond.js:622 -msgid "grey squirrel" +#: js/utils/musicutils.js:1110 +#: js/utils/synthutils.js:74 +#.TRANS: musical instrument +msgid "violin" msgstr "" -#: js/lilypond.js:623 -msgid "flying squirrel" +#: js/utils/musicutils.js:1111 +#: js/utils/synthutils.js:76 +#.TRANS: viola musical instrument +msgid "viola" msgstr "" -#: js/lilypond.js:624 -msgid "bat" +#: js/utils/musicutils.js:1112 +#: js/utils/synthutils.js:114 +#.TRANS: xylophone musical instrument +msgid "xylophone" msgstr "" -#: js/lilypond.js:757 -#: js/lilypond.js:921 -#: js/lilypond.js:959 -#: js/ActionBlocks.js:1256 -#: js/ExtrasBlocks.js:553 -msgid "start drum" +#: js/utils/musicutils.js:1113 +#: js/utils/synthutils.js:136 +#.TRANS: vibraphone musical instrument +msgid "vibraphone" msgstr "" -#: js/SaveInterface.js:59 -#: js/SaveInterface.js:61 -#: js/SaveInterface.js:93 -msgid "Music Blocks Project" +#: js/utils/musicutils.js:1114 +#: js/utils/synthutils.js:78 +#.TRANS: musical instrument +msgid "cello" msgstr "" -#: js/SaveInterface.js:63 -msgid "This project was created in Music Blocks" +#: js/utils/musicutils.js:1116 +#: js/utils/synthutils.js:82 +#.TRANS: viola musical instrument +msgid "double bass" msgstr "" -#: js/SaveInterface.js:67 -msgid "Music Blocks is a Free/Libre Software application." +#: js/utils/musicutils.js:1117 +#: js/utils/synthutils.js:84 +#: js/widgets/rhythmruler.js:2511 +#.TRANS: musical instrument +msgid "guitar" msgstr "" -#: js/SaveInterface.js:69 -msgid "The source code can be accessed at" +#: js/utils/musicutils.js:1118 +#: js/utils/synthutils.js:86 +#.TRANS: musical instrument +msgid "acoustic guitar" msgstr "" -#: js/SaveInterface.js:72 -msgid "For more information, please consult the" +#: js/utils/musicutils.js:1119 +#: js/utils/synthutils.js:88 +#.TRANS: musical instrument +msgid "flute" msgstr "" -#: js/SaveInterface.js:83 -msgid "Alternatively, open the file in Music Blocks using the Load project button." +#: js/utils/musicutils.js:1120 +#: js/utils/synthutils.js:90 +#.TRANS: musical instrument +msgid "clarinet" msgstr "" -#: js/SaveInterface.js:85 -msgid "Project Code" +#: js/utils/musicutils.js:1121 +#: js/utils/synthutils.js:92 +#.TRANS: musical instrument +msgid "saxophone" msgstr "" -#: js/SaveInterface.js:87 -msgid "This code stores data about the blocks in a project." +#: js/utils/musicutils.js:1122 +#: js/utils/synthutils.js:94 +#.TRANS: musical instrument +msgid "tuba" msgstr "" -#: js/SaveInterface.js:89 -msgid "Show" +#: js/utils/musicutils.js:1123 +#: js/utils/synthutils.js:96 +#.TRANS: musical instrument +msgid "trumpet" msgstr "" -#: js/SaveInterface.js:91 -msgid "Hide" +#: js/utils/musicutils.js:1124 +#: js/utils/synthutils.js:98 +#.TRANS: musical instrument +msgid "oboe" msgstr "" -#: js/SaveInterface.js:197 -#: js/SaveInterface.js:58 -msgid "No description provided" +#: js/utils/musicutils.js:1125 +#: js/utils/synthutils.js:100 +#.TRANS: musical instrument +msgid "trombone" msgstr "" -#: js/SaveInterface.js:332 -msgid "Your recording is in progress." +#: js/utils/musicutils.js:1126 +#: js/utils/synthutils.js:116 +#.TRANS: polytone synthesizer +msgid "electronic synth" msgstr "" -#: js/SaveInterface.js:401 -#.TRANS: File name prompt for save as Lilypond -msgid "File name" +#: js/utils/musicutils.js:1127 +#: js/utils/synthutils.js:118 +#.TRANS: simple monotone synthesizer +msgid "simple 1" msgstr "" -#: js/SaveInterface.js:403 -#: js/StringHelper.js:39 -#.TRANS: Project title prompt for save as Lilypond -msgid "Project title" +#: js/utils/musicutils.js:1128 +msgid "simple 2" msgstr "" -#: js/SaveInterface.js:405 -#.TRANS: Project title prompt for save as Lilypond -msgid "Project author" +#: js/utils/musicutils.js:1129 +msgid "simple 3" msgstr "" -#: js/SaveInterface.js:407 -#.TRANS: MIDI prompt for save as Lilypond -msgid "Include MIDI output?" +#: js/utils/musicutils.js:1130 +msgid "simple 4" msgstr "" -#: js/SaveInterface.js:409 -#.TRANS: Guitar prompt for save as Lilypond -msgid "Include guitar tablature output?" +#: js/utils/musicutils.js:1131 +#: js/utils/synthutils.js:58 +#: js/blocks/DrumBlocks.js:191 +#.TRANS: white noise synthesizer +msgid "white noise" msgstr "" -#: js/SaveInterface.js:411 -#.TRANS: Lilypond is a scripting language for generating sheet music -msgid "Save as Lilypond" +#: js/utils/musicutils.js:1132 +#: js/utils/synthutils.js:60 +#.TRANS: brown noise synthesizer +msgid "brown noise" msgstr "" -#: js/SaveInterface.js:426 -#: js/EnsembleBlocks.js:75 -#: js/EnsembleBlocks.js:154 -#: js/EnsembleBlocks.js:216 -#: js/EnsembleBlocks.js:302 -#: js/EnsembleBlocks.js:348 -#: js/EnsembleBlocks.js:389 -#: js/EnsembleBlocks.js:441 -#: js/EnsembleBlocks.js:490 -#: js/EnsembleBlocks.js:536 -#: js/EnsembleBlocks.js:583 -#: js/EnsembleBlocks.js:637 -#: js/EnsembleBlocks.js:753 -#: js/EnsembleBlocks.js:840 -#: js/EnsembleBlocks.js:899 -#: js/EnsembleBlocks.js:942 -#: js/EnsembleBlocks.js:1212 -#: js/EnsembleBlocks.js:1280 -#.TRANS: default project author when saving as Lilypond -msgid "Mr. Mouse" +#: js/utils/musicutils.js:1133 +#: js/utils/synthutils.js:62 +#.TRANS: pink noise synthesizer +msgid "pink noise" msgstr "" -#: js/SaveInterface.js:573 -msgid "The Lilypond code is copied to clipboard. You can paste it here: " +#: js/utils/musicutils.js:1135 +#: js/utils/synthutils.js:148 +#: js/widgets/rhythmruler.js:2057 +#: js/widgets/rhythmruler.js:2319 +#.TRANS: musical instrument +msgid "snare drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:50 -#: js/RhythmBlockPaletteBlocks.js:232 -#.TRANS: rhythm block -#.TRANS: translate "rhythm1" as rhythm -msgid "rhythm1" +#: js/utils/musicutils.js:1136 +#: js/utils/synthutils.js:150 +#.TRANS: musical instrument +msgid "kick drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:70 -#: js/RhythmBlockPaletteBlocks.js:251 -#: js/RhythmBlockPaletteBlocks.js:484 -#: js/RhythmBlockPaletteBlocks.js:553 -#: js/RhythmBlockPaletteBlocks.js:874 -msgid "number of notes" +#: js/utils/musicutils.js:1137 +#: js/utils/synthutils.js:152 +#.TRANS: musical instrument +msgid "tom tom" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:126 -msgid "polyphonic rhythm" +#: js/utils/musicutils.js:1138 +#: js/utils/synthutils.js:154 +#.TRANS: musical instrument +msgid "floor tom" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:218 -msgid "The Rhythm block is used to generate rhythm patterns." +#: js/utils/musicutils.js:1139 +#: js/utils/synthutils.js:156 +#.TRANS: musical instrument +msgid "bass drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:279 -msgid "1/64 note" +#: js/utils/musicutils.js:1140 +#: js/utils/synthutils.js:158 +#.TRANS: a drum made from an inverted cup +msgid "cup drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:303 -msgid "1/32 note" +#: js/utils/musicutils.js:1141 +#: js/utils/synthutils.js:160 +#.TRANS: musical instrument +msgid "darbuka drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:331 -msgid "1/16 note" +#: js/utils/musicutils.js:1142 +#: js/utils/synthutils.js:164 +#.TRANS: musical instrument +msgid "hi hat" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:359 -msgid "eighth note" +#: js/utils/musicutils.js:1143 +#: js/utils/synthutils.js:166 +#.TRANS: a small metal bell +msgid "ride bell" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:387 -msgid "quarter note" +#: js/utils/musicutils.js:1144 +#: js/utils/synthutils.js:168 +#.TRANS: musical instrument +msgid "cow bell" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:415 -msgid "half note" +#: js/utils/musicutils.js:1145 +msgid "japanese drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:443 -msgid "whole note" +#: js/utils/musicutils.js:1146 +#: js/utils/synthutils.js:174 +#.TRANS: musical instrument +msgid "japanese bell" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:481 -#: js/RhythmBlockPaletteBlocks.js:550 -#: js/RhythmBlockPaletteBlocks.js:601 -#.TRANS: A tuplet is a note value divided into irregular time values. -msgid "tuplet" +#: js/utils/musicutils.js:1147 +#: js/utils/synthutils.js:170 +#.TRANS: musical instrument +msgid "triangle bell" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:767 -msgid "septuplet" +#: js/utils/musicutils.js:1148 +#: js/utils/synthutils.js:172 +#.TRANS: musical instrument +msgid "finger cymbals" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:795 -msgid "quintuplet" +#: js/utils/musicutils.js:1149 +#: js/utils/synthutils.js:176 +#.TRANS: a musically tuned set of bells +msgid "chime" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:823 -msgid "triplet" +#: js/utils/musicutils.js:1150 +#: js/utils/synthutils.js:178 +#.TRANS: a musical instrument +msgid "gong" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:850 -msgid "simple tuplet" +#: js/utils/musicutils.js:1151 +#: js/utils/synthutils.js:180 +#.TRANS: sound effect +msgid "clang" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:860 -msgid "Tuplets are a collection of notes that get scaled to a specific duration." +#: js/utils/musicutils.js:1152 +#: js/utils/synthutils.js:182 +#.TRANS: sound effect +msgid "crash" msgstr "" -#: js/WidgetBlocks.js:71 -#.TRANS: sound envelope (ADSR) -msgid "envelope" +#: js/utils/musicutils.js:1153 +#: js/utils/synthutils.js:184 +#.TRANS: sound effect +msgid "bottle" msgstr "" -#: js/WidgetBlocks.js:79 -#.TRANS: Attack time is the time taken for initial run-up of level from nil to peak, beginning when the key is first pressed. -msgid "attack" +#: js/utils/musicutils.js:1154 +#: js/utils/synthutils.js:186 +#.TRANS: sound effect +msgid "clap" msgstr "" -#: js/WidgetBlocks.js:81 -#.TRANS: Decay time is the time taken for the subsequent run down from the attack level to the designated sustain level. -msgid "decay" +#: js/utils/musicutils.js:1155 +#: js/utils/synthutils.js:188 +#.TRANS: sound effect +msgid "slap" msgstr "" -#: js/WidgetBlocks.js:83 -#.TRANS: Sustain level is the level during the main sequence of the sound's duration, until the key is released. -msgid "sustain" +#: js/utils/musicutils.js:1156 +#: js/utils/synthutils.js:190 +#.TRANS: sound effect +msgid "splash" msgstr "" -#: js/WidgetBlocks.js:85 -#.TRANS: Release time is the time taken for the level to decay from the sustain level to zero after the key is released. -msgid "release" +#: js/utils/musicutils.js:1157 +#: js/utils/synthutils.js:192 +#.TRANS: sound effect +msgid "bubbles" msgstr "" -#: js/WidgetBlocks.js:96 -msgid "Attack value should be from 0 to 100." +#: js/utils/musicutils.js:1158 +#: js/utils/synthutils.js:194 +#.TRANS: sound effect +msgid "raindrop" msgstr "" -#: js/WidgetBlocks.js:99 -msgid "Decay value should be from 0 to 100." +#: js/utils/musicutils.js:1159 +#: js/utils/synthutils.js:196 +#.TRANS: animal sound effect +msgid "cat" msgstr "" -#: js/WidgetBlocks.js:102 -msgid "Sustain value should be from 0 to 100." +#: js/utils/musicutils.js:1160 +#: js/utils/synthutils.js:198 +#.TRANS: animal sound effect +msgid "cricket" msgstr "" -#: js/WidgetBlocks.js:105 -msgid "Release value should be from 0-100." +#: js/utils/musicutils.js:1161 +#: js/utils/synthutils.js:200 +#.TRANS: animal sound effect +msgid "dog" msgstr "" -#: js/WidgetBlocks.js:121 -msgid "You are adding multiple envelope blocks." +#: js/utils/musicutils.js:1163 +#: js/utils/synthutils.js:102 +#.TRANS: musical instrument +msgid "banjo" msgstr "" -#: js/WidgetBlocks.js:144 -#.TRANS: a filter removes some unwanted components from a signal -msgid "filter" +#: js/utils/musicutils.js:1164 +#: js/utils/synthutils.js:104 +#.TRANS: musical instrument +msgid "koto" msgstr "" -#: js/WidgetBlocks.js:149 -#: js/musicutils.js:706 -#: js/musicutils.js:1105 -#.TRANS: highpass filter -msgid "highpass" +#: js/utils/musicutils.js:1165 +#: js/utils/synthutils.js:106 +#.TRANS: musical instrument +msgid "dulcimer" msgstr "" -#: js/WidgetBlocks.js:152 -#: js/ToneBlocks.js:42 -#: js/timbre.js:1558 -#: js/timbre.js:1808 -#.TRANS: type of filter, e.g., lowpass, highpass, etc. -#.TRANS: there are different types (sine, triangle, square...) of oscillators. -msgid "type" +#: js/utils/musicutils.js:1166 +#: js/utils/synthutils.js:108 +#.TRANS: musical instrument +msgid "electric guitar" msgstr "" -#: js/WidgetBlocks.js:154 -#: js/timbre.js:1818 -#.TRANS: rolloff is the steepness of a change in frequency. -msgid "rolloff" +#: js/utils/musicutils.js:1167 +#: js/utils/synthutils.js:110 +#.TRANS: musical instrument +msgid "bassoon" msgstr "" -#: js/WidgetBlocks.js:155 -#: js/MediaBlocks.js:692 -#: js/temperament.js:382 -#: js/temperament.js:417 -#: js/temperament.js:477 -#: js/temperament.js:485 -#: js/temperament.js:1348 -#: js/timbre.js:1842 -msgid "frequency" +#: js/utils/musicutils.js:1168 +#: js/utils/synthutils.js:112 +#.TRANS: musical instrument +msgid "celeste" msgstr "" -#: js/WidgetBlocks.js:179 -#.TRANS: rolloff is the steepness of a change in frequency. -msgid "Rolloff value should be either -12, -24, -48, or -96 decibels/octave." +#: js/utils/musicutils.js:1170 +#: js/widgets/temperament.js:787 +#.TRANS: musical temperament +msgid "equal" msgstr "" -#: js/WidgetBlocks.js:211 -msgid "The Temperament tool is used to define custom tuning." +#: js/utils/musicutils.js:1172 +#.TRANS: musical temperament +msgid "Pythagorean" msgstr "" -#: js/WidgetBlocks.js:277 -#: js/sampler.js:329 -msgid "Upload a sample and adjust its pitch center." +#: js/utils/musicutils.js:1174 +#.TRANS: musical temperament +msgid "just intonation" msgstr "" -#: js/WidgetBlocks.js:284 -#.TRANS: the speed at music is should be played. -msgid "sampler" +#: js/utils/musicutils.js:1176 +#.TRANS: musical temperament +msgid "meantone" msgstr "" -#: js/WidgetBlocks.js:329 -#: js/WidgetBlocks.js:334 -#: js/IntervalsBlocks.js:928 -#: js/VolumeBlocks.js:411 -#: js/ToneBlocks.js:946 -#: js/VolumeActions.js:218 -#: js/musicutils.js:704 -#: js/musicutils.js:755 -#: js/musicutils.js:798 -#: js/musicutils.js:820 -#: js/musicutils.js:1136 -#: js/synthutils.js:118 -#: js/modewidget.js:919 -#.TRANS: customize voice -msgid "custom" +#: js/utils/musicutils.js:1193 +msgid "major 7th" msgstr "" -#: js/WidgetBlocks.js:432 -msgid "The Meter block opens a tool to select strong beats for the meter." +#: js/utils/musicutils.js:1194 +msgid "minor 7th" msgstr "" -#: js/WidgetBlocks.js:473 -msgid "The oscilloscope block opens a tool to visualize waveforms." +#: js/utils/musicutils.js:1195 +msgid "dominant 7th" msgstr "" -#: js/WidgetBlocks.js:478 -msgid "oscilloscope" +#: js/utils/musicutils.js:1196 +msgid "minor-major 7th" msgstr "" -#: js/WidgetBlocks.js:530 -msgid "The Custom mode block opens a tool to explore musical mode (the spacing of the notes in a scale)." +#: js/utils/musicutils.js:1197 +msgid "fully-diminished 7th" msgstr "" -#: js/WidgetBlocks.js:536 -#.TRANS: musical mode is the pattern of half-steps in an octave, e.g., Major or Minor modes -msgid "custom mode" +#: js/utils/musicutils.js:1198 +msgid "half-diminished 7th" msgstr "" -#: js/WidgetBlocks.js:570 -msgid "The Tempo block opens a metronome to visualize the beat." +#: js/utils/musicutils.js:1557 +#: js/utils/musicutils.js:1569 +msgid "Equal (12EDO)" msgstr "" -#: js/WidgetBlocks.js:617 -msgid "The Arpeggio Widget is used to compose chord sequences." +#: js/utils/musicutils.js:1558 +#: js/utils/musicutils.js:1570 +msgid "5-limit Just Intonation" msgstr "" -#: js/WidgetBlocks.js:623 -#: js/IntervalsBlocks.js:683 -msgid "arpeggio" +#: js/utils/musicutils.js:1559 +#: js/utils/musicutils.js:1571 +msgid "Pythagorean (3-limit JI)" msgstr "" -#: js/WidgetBlocks.js:677 -msgid "The Pitch drum matrix is used to map pitches to drum sounds." +#: js/utils/musicutils.js:1560 +#: js/utils/musicutils.js:1561 +#: js/utils/musicutils.js:1572 +#: js/utils/musicutils.js:1573 +msgid "Meantone" msgstr "" -#: js/WidgetBlocks.js:682 -#.TRANS: makes a mapping between pitches and drum sounds -msgid "pitch-drum mapper" +#: js/utils/musicutils.js:1574 +msgid "Custom" msgstr "" -#: js/WidgetBlocks.js:724 -msgid "You must have at least one pitch block and one drum block in the matrix." +#: js/utils/musicutils.js:5387 +#: js/utils/musicutils.js:5430 +msgid "current" msgstr "" -#: js/WidgetBlocks.js:746 -msgid "The Pitch slider tool to is used to generate pitches at selected frequencies." +#: js/utils/musicutils.js:5390 +#: js/utils/musicutils.js:5421 +msgid "next" msgstr "" -#: js/WidgetBlocks.js:751 -#.TRANS: widget to generate pitches using a slider -msgid "pitch slider" +#: js/utils/musicutils.js:5393 +#: js/utils/musicutils.js:5426 +msgid "previous" msgstr "" -#: js/WidgetBlocks.js:788 -msgid "chromatic keyboard" +#: js/utils/synthutils.js:120 +#.TRANS: simple monotone synthesizer +msgid "simple-2" msgstr "" -#: js/WidgetBlocks.js:815 -#: js/WidgetBlocks.js:874 -#.TRANS: widget to generate pitches using a slider -msgid "music keyboard" +#: js/utils/synthutils.js:122 +#.TRANS: simple monotone synthesizer +msgid "simple-3" msgstr "" -#: js/WidgetBlocks.js:859 -#: js/WidgetBlocks.js:866 -msgid "The Music keyboard block opens a piano keyboard that can be used to create notes." +#: js/utils/synthutils.js:124 +#.TRANS: simple monotone synthesizer +msgid "simple-4" msgstr "" -#: js/WidgetBlocks.js:910 -msgid "The Pitch staircase tool to is used to generate pitches from a given ratio." +#: js/utils/synthutils.js:162 +#.TRANS: musical instrument +msgid "taiko" msgstr "" -#: js/WidgetBlocks.js:917 -#.TRANS: generate a progressive sequence of pitches -msgid "pitch staircase" +#: js/blocks/ActionBlocks.js:58 +msgid "The Return block will return a value from an action." msgstr "" -#: js/WidgetBlocks.js:982 -msgid "The Rhythm Maker block opens a tool to create drum machines." +#: js/blocks/ActionBlocks.js:75 +msgid "return" msgstr "" -#: js/WidgetBlocks.js:1036 -msgid "G major scale" +#: js/blocks/ActionBlocks.js:128 +msgid "The Return to URL block will return a value to a webpage." msgstr "" -#: js/WidgetBlocks.js:1064 -msgid "C major scale" +#: js/blocks/ActionBlocks.js:145 +msgid "return to URL" msgstr "" -#: js/WidgetBlocks.js:1097 -msgid "The Phrase Maker block opens a tool to create musical phrases." +#: js/blocks/ActionBlocks.js:233 +#: js/blocks/ActionBlocks.js:290 +#: js/blocks/ActionBlocks.js:501 +#: js/blocks/ActionBlocks.js:688 +msgid "The Calculate block returns a value calculated by an action." msgstr "" -#: js/WidgetBlocks.js:1104 -#.TRANS: assigns pitch to a sequence of beats to generate a melody -msgid "phrase maker" +#: js/blocks/ActionBlocks.js:251 +#: js/blocks/ActionBlocks.js:517 +#: js/blocks/ActionBlocks.js:707 +msgid "calculate" msgstr "" -#: js/WidgetBlocks.js:1168 -msgid "You must have at least one pitch block and one rhythm block in the matrix." +#: js/blocks/ActionBlocks.js:376 +#: js/blocks/ActionBlocks.js:593 +#: js/blocks/ActionBlocks.js:942 +#: js/blocks/ActionBlocks.js:1389 +#.TRANS: do is the do something or take an action. +msgid "The Do block is used to initiate an action." msgstr "" -#: js/WidgetBlocks.js:1220 -msgid "The Status block opens a tool for inspecting the status of Music Blocks as it is running." +#: js/blocks/ActionBlocks.js:390 +#: js/blocks/ActionBlocks.js:610 +#: js/blocks/ActionBlocks.js:959 +#: js/blocks/ActionBlocks.js:1048 +#: js/blocks/MeterBlocks.js:769 +msgid "do1" msgstr "" -#: js/IntervalsBlocks.js:45 -msgid "set temperament" +#: js/blocks/ActionBlocks.js:390 +#: js/blocks/ActionBlocks.js:610 +#: js/blocks/ActionBlocks.js:959 +#: js/blocks/ActionBlocks.js:1048 +#: js/blocks/FlowBlocks.js:742 +#: js/blocks/FlowBlocks.js:822 +#: js/blocks/MeterBlocks.js:769 +msgid "do" msgstr "" -#: js/IntervalsBlocks.js:63 -#: js/MediaBlocks.js:746 -#: js/PitchBlocks.js:657 -#: js/PitchBlocks.js:933 -#: js/PitchBlocks.js:972 -#: js/PitchBlocks.js:1005 -#: js/PitchBlocks.js:1166 -#: js/PitchBlocks.js:1679 -#: js/PitchBlocks.js:1720 -#: js/PitchBlocks.js:1827 -#: js/ToneBlocks.js:1025 -#.TRANS: adjusts the shift up or down by one octave (twelve half-steps in the interval between two notes, one having twice or half the frequency in Hz of the other.) -msgid "octave" +#: js/blocks/ActionBlocks.js:791 +#: js/blocks/ActionBlocks.js:865 +msgid "The Arg block contains the value of an argument passed to an action." msgstr "" -#: js/IntervalsBlocks.js:99 -msgid "The Temperament name block is used to select a tuning method." +#: js/blocks/ActionBlocks.js:806 +#: js/blocks/ActionBlocks.js:878 +msgid "arg" msgstr "" -#: js/IntervalsBlocks.js:161 -msgid "doubly" +#: js/blocks/ActionBlocks.js:836 +#: js/blocks/ActionBlocks.js:900 +#: js/blocks/ActionBlocks.js:908 +msgid "Invalid argument" msgstr "" -#: js/IntervalsBlocks.js:166 -msgid "The Doubly block will double the size of an interval." +#: js/blocks/ActionBlocks.js:944 +msgid "In the example, it is used with the One of block to choose a random phase." msgstr "" -#: js/IntervalsBlocks.js:262 -msgid "interval number" +#: js/blocks/ActionBlocks.js:1019 +#: js/blocks/ActionBlocks.js:1026 +msgid "The Listen block is used to listen for an event such as a mouse click." msgstr "" -#: js/IntervalsBlocks.js:330 -#.TRANS: measure the distance between two pitches in semi-tones -msgid "semi-tone interval measure" +#: js/blocks/ActionBlocks.js:1028 +msgid "When the event happens, an action is taken." msgstr "" -#: js/IntervalsBlocks.js:397 -#: js/IntervalsBlocks.js:513 -msgid "You must use two pitch blocks when measuring an interval." +#: js/blocks/ActionBlocks.js:1045 +msgid "on" msgstr "" -#: js/IntervalsBlocks.js:439 -msgid "The Scalar interval block measures the distance between two notes in the current key and mode." +#: js/blocks/ActionBlocks.js:1048 +#: js/blocks/ActionBlocks.js:1049 +#: js/blocks/ActionBlocks.js:1153 +msgid "event" msgstr "" -#: js/IntervalsBlocks.js:445 -#.TRANS: measure the distance between two pitches in steps of musical scale -msgid "scalar interval measure" +#: js/blocks/ActionBlocks.js:1133 +msgid "The Broadcast block is used to trigger an event." msgstr "" -#: js/IntervalsBlocks.js:592 -#: js/musicutils.js:637 -#: js/musicutils.js:908 -#.TRANS: perfect is a music term related to intervals -msgid "perfect" +#: js/blocks/ActionBlocks.js:1151 +msgid "broadcast" msgstr "" -#: js/IntervalsBlocks.js:621 -msgid "In the figure, we add sol# to sol." +#: js/blocks/ActionBlocks.js:1208 +msgid "Each Start block is a separate voice." msgstr "" -#: js/IntervalsBlocks.js:627 -#: js/OrnamentBlocks.js:220 -#.TRANS: calculate a relative step between notes based on semi-tones -msgid "semi-tone interval" +#: js/blocks/ActionBlocks.js:1304 +msgid "It is often used for storing a phrase of music that is repeated." msgstr "" -#: js/IntervalsBlocks.js:676 -msgid "The output of the example is: do, mi, sol, sol, ti, mi" +#: js/blocks/ActionBlocks.js:1495 +msgid "define temperament" msgstr "" -#: js/IntervalsBlocks.js:735 -msgid "The Chord block calculates common chords." +#: js/blocks/BooleanBlocks.js:44 +msgid "The Not block is the logical not operator." msgstr "" -#: js/IntervalsBlocks.js:737 -msgid "In the figure, we generate a C-major chord." +#: js/blocks/BooleanBlocks.js:62 +msgid "not" msgstr "" -#: js/IntervalsBlocks.js:742 -msgid "chord" +#: js/blocks/BooleanBlocks.js:134 +msgid "The And block is the logical and operator." msgstr "" -#: js/IntervalsBlocks.js:794 -msgid "The Ratio Interval block calculates an interval based on a ratio." +#: js/blocks/BooleanBlocks.js:152 +msgid "and" msgstr "" -#: js/IntervalsBlocks.js:799 -msgid "ratio interval" +#: js/blocks/BooleanBlocks.js:218 +msgid "The Or block is the logical or operator." msgstr "" -#: js/IntervalsBlocks.js:868 -msgid "In the figure, we add la to sol." +#: js/blocks/BooleanBlocks.js:236 +msgid "or" msgstr "" -#: js/IntervalsBlocks.js:924 -#.TRANS: define a custom mode -msgid "define mode" +#: js/blocks/BooleanBlocks.js:302 +msgid "The XOR block is the logical XOR operator." msgstr "" -#: js/IntervalsBlocks.js:977 -msgid "movable Do" +#: js/blocks/BooleanBlocks.js:320 +msgid "xor" msgstr "" -#: js/IntervalsBlocks.js:1028 -#.TRANS: mode length is the number of notes in the mode, e.g., 7 for major and minor scales; 12 for chromatic scales -msgid "mode length" +#: js/blocks/BooleanBlocks.js:808 +msgid "The Equal block returns True if the two numbers are equal." msgstr "" -#: js/IntervalsBlocks.js:1037 -msgid "The Mode length block is the number of notes in the current scale." +#: js/blocks/BooleanBlocks.js:909 +msgid "The Not-equal-to block returns True if the two numbers are not equal to each other." msgstr "" -#: js/IntervalsBlocks.js:1039 -msgid "Most Western scales have 7 notes." +#: js/blocks/BooleanBlocks.js:1008 +msgid "The Boolean block is used to specify true or false." msgstr "" -#: js/IntervalsBlocks.js:1088 -#.TRANS: the mode in music is 'major', 'minor', etc. -msgid "current mode" +#: js/blocks/BoxesBlocks.js:53 +#: js/blocks/BoxesBlocks.js:59 +msgid "The Add-to block is used to add to the value stored in a box." msgstr "" -#: js/IntervalsBlocks.js:1141 -#.TRANS: the key is a group of pitches with which a music composition is created -msgid "current key" +#: js/blocks/BoxesBlocks.js:61 +msgid "It can also be used with other blocks such as Color and Pen size." msgstr "" -#: js/IntervalsBlocks.js:1193 -#: js/IntervalsBlocks.js:1238 -#.TRANS: set the key and mode, e.g. C Major -msgid "set key" +#: js/blocks/BoxesBlocks.js:73 +msgid "add" msgstr "" -#: js/IntervalsBlocks.js:1247 -#: js/IntervalsBlocks.js:1253 -msgid "The Set key block is used to set the key and mode," +#: js/blocks/BoxesBlocks.js:75 +#: js/widgets/temperament.js:857 +msgid "to" msgstr "" -#: js/IntervalsBlocks.js:1253 -msgid "eg C Major" +#: js/blocks/BoxesBlocks.js:75 +#: js/blocks/BoxesBlocks.js:595 +#: js/blocks/HeapBlocks.js:544 +msgid "value1" msgstr "" -#: js/IntervalsBlocks.js:1266 -#: js/DictBlocks.js:215 -#: js/DictBlocks.js:216 -#: js/DictBlocks.js:289 -#: js/DictBlocks.js:290 -#: js/DictBlocks.js:357 -#: js/DictBlocks.js:430 -#: js/DictBlocks.js:431 -#.TRANS: key, e.g., C in C Major -msgid "key" +#: js/blocks/BoxesBlocks.js:118 +msgid "Block does not support incrementing." msgstr "" -#: js/ActionBlocks.js:58 -msgid "The Return block will return a value from an action." +#: js/blocks/BoxesBlocks.js:152 +msgid "The Add-1-to block adds one to the value stored in a box." msgstr "" -#: js/ActionBlocks.js:75 -msgid "return" +#: js/blocks/BoxesBlocks.js:163 +msgid "add 1 to" msgstr "" -#: js/ActionBlocks.js:128 -msgid "The Return to URL block will return a value to a webpage." +#: js/blocks/BoxesBlocks.js:211 +msgid "The Subtract-1-from block subtracts one from the value stored in a box." msgstr "" -#: js/ActionBlocks.js:145 -msgid "return to URL" +#: js/blocks/BoxesBlocks.js:222 +msgid "subtract 1 from" msgstr "" -#: js/ActionBlocks.js:233 -#: js/ActionBlocks.js:290 -#: js/ActionBlocks.js:501 -#: js/ActionBlocks.js:688 -msgid "The Calculate block returns a value calculated by an action." +#: js/blocks/BoxesBlocks.js:270 +#: js/blocks/BoxesBlocks.js:387 +msgid "The Box block returns the value stored in a box." msgstr "" -#: js/ActionBlocks.js:251 -#: js/ActionBlocks.js:517 -#: js/ActionBlocks.js:707 -msgid "calculate" +#: js/blocks/BoxesBlocks.js:500 +#: js/blocks/BoxesBlocks.js:576 +msgid "The Store in block will store a value in a box." msgstr "" -#: js/ActionBlocks.js:376 -#: js/ActionBlocks.js:593 -#: js/ActionBlocks.js:942 -#: js/ActionBlocks.js:1389 -#.TRANS: do is the do something or take an action. -msgid "The Do block is used to initiate an action." +#: js/blocks/BoxesBlocks.js:595 +#: js/blocks/EnsembleBlocks.js:391 +#: js/blocks/EnsembleBlocks.js:402 +msgid "name1" msgstr "" -#: js/ActionBlocks.js:390 -#: js/ActionBlocks.js:610 -#: js/ActionBlocks.js:959 -#: js/ActionBlocks.js:1048 -#: js/MeterBlocks.js:769 -msgid "do1" +#: js/blocks/BoxesBlocks.js:652 +msgid "The Box2 block returns the value stored in Box2." msgstr "" -#: js/ActionBlocks.js:390 -#: js/ActionBlocks.js:610 -#: js/ActionBlocks.js:959 -#: js/ActionBlocks.js:1048 -#: js/FlowBlocks.js:742 -#: js/FlowBlocks.js:822 -#: js/MeterBlocks.js:769 -msgid "do" +#: js/blocks/BoxesBlocks.js:703 +msgid "The Store in Box2 block is used to store a value in Box2." msgstr "" -#: js/ActionBlocks.js:791 -#: js/ActionBlocks.js:865 -msgid "The Arg block contains the value of an argument passed to an action." +#: js/blocks/BoxesBlocks.js:715 +msgid "store in box2" msgstr "" -#: js/ActionBlocks.js:806 -#: js/ActionBlocks.js:878 -msgid "arg" +#: js/blocks/BoxesBlocks.js:761 +msgid "The Box1 block returns the value stored in Box1." msgstr "" -#: js/ActionBlocks.js:836 -#: js/ActionBlocks.js:900 -#: js/ActionBlocks.js:908 -msgid "Invalid argument" +#: js/blocks/BoxesBlocks.js:812 +msgid "The Store in Box1 block is used to store a value in Box1." msgstr "" -#: js/ActionBlocks.js:944 -msgid "In the example, it is used with the One of block to choose a random phase." +#: js/blocks/BoxesBlocks.js:826 +msgid "store in box1" msgstr "" -#: js/ActionBlocks.js:1019 -#: js/ActionBlocks.js:1026 -msgid "The Listen block is used to listen for an event such as a mouse click." +#: js/blocks/DictBlocks.js:77 +msgid "show dictionary" msgstr "" -#: js/ActionBlocks.js:1028 -msgid "When the event happens, an action is taken." +#: js/blocks/DictBlocks.js:80 +#: js/blocks/DictBlocks.js:145 +#: js/blocks/DictBlocks.js:216 +#: js/blocks/DictBlocks.js:290 +#: js/blocks/ProgramBlocks.js:396 +#: js/blocks/ProgramBlocks.js:501 +#: js/blocks/ProgramBlocks.js:664 +msgid "My Dictionary" msgstr "" -#: js/ActionBlocks.js:1045 -msgid "on" +#: js/blocks/DictBlocks.js:129 +msgid "The Dictionary block returns a dictionary." msgstr "" -#: js/ActionBlocks.js:1048 -#: js/ActionBlocks.js:1049 -#: js/ActionBlocks.js:1153 -msgid "event" +#: js/blocks/DictBlocks.js:197 +#: js/blocks/DictBlocks.js:339 +msgid "The Get-dict block returns a value in the dictionary for a specified key." msgstr "" -#: js/ActionBlocks.js:1133 -msgid "The Broadcast block is used to trigger an event." +#: js/blocks/DictBlocks.js:212 +#: js/blocks/DictBlocks.js:354 +#.TRANS: retrieve a value from the dictionary with a given key +msgid "get value" msgstr "" -#: js/ActionBlocks.js:1151 -msgid "broadcast" +#: js/blocks/DictBlocks.js:215 +#: js/blocks/DictBlocks.js:216 +#: js/blocks/DictBlocks.js:289 +#: js/blocks/DictBlocks.js:290 +#: js/blocks/DictBlocks.js:357 +#: js/blocks/DictBlocks.js:430 +#: js/blocks/DictBlocks.js:431 +msgid "key2" msgstr "" -#: js/ActionBlocks.js:1208 -msgid "Each Start block is a separate voice." +#: js/blocks/DictBlocks.js:215 +#: js/blocks/DictBlocks.js:216 +#: js/blocks/DictBlocks.js:289 +#: js/blocks/DictBlocks.js:290 +#: js/blocks/DictBlocks.js:357 +#: js/blocks/DictBlocks.js:430 +#: js/blocks/DictBlocks.js:431 +#: js/blocks/IntervalsBlocks.js:1462 +#.TRANS: key, e.g., C in C Major +msgid "key" msgstr "" -#: js/ActionBlocks.js:1304 -msgid "It is often used for storing a phrase of music that is repeated." +#: js/blocks/DictBlocks.js:271 +#: js/blocks/DictBlocks.js:411 +msgid "The Set-dict block sets a value in the dictionary for a specified key." msgstr "" -#: js/ActionBlocks.js:1495 -msgid "define temperament" +#: js/blocks/DictBlocks.js:286 +#: js/blocks/DictBlocks.js:427 +#.TRANS: set a value in the dictionary for a given key +msgid "set value" msgstr "" -#: js/EnsembleBlocks.js:66 +#: js/blocks/EnsembleBlocks.js:66 msgid "mouse index heap" msgstr "" -#: js/EnsembleBlocks.js:68 +#: js/blocks/EnsembleBlocks.js:68 msgid "The Mouse index heap block returns a value in the heap at a specified location for a specified mouse." msgstr "" -#: js/EnsembleBlocks.js:77 -#: js/EnsembleBlocks.js:1080 +#: js/blocks/EnsembleBlocks.js:77 +#: js/blocks/EnsembleBlocks.js:1080 msgid "mouse name" msgstr "" -#: js/EnsembleBlocks.js:77 -#: js/EnsembleBlocks.js:92 -#: js/HeapBlocks.js:544 +#: js/blocks/EnsembleBlocks.js:77 +#: js/blocks/EnsembleBlocks.js:92 +#: js/blocks/HeapBlocks.js:544 #.TRANS: value1 is a numeric value (JAPANESE ONLY) msgid "index" msgstr "" -#: js/EnsembleBlocks.js:80 +#: js/blocks/EnsembleBlocks.js:80 msgid "turtle index heap" msgstr "" -#: js/EnsembleBlocks.js:82 +#: js/blocks/EnsembleBlocks.js:82 msgid "The Turtle index heap block returns a value in the heap at a specified location for a specified turtle." msgstr "" -#: js/EnsembleBlocks.js:90 -#: js/EnsembleBlocks.js:167 -#: js/EnsembleBlocks.js:230 -#: js/EnsembleBlocks.js:316 -#: js/EnsembleBlocks.js:362 -#: js/EnsembleBlocks.js:400 -#: js/EnsembleBlocks.js:454 -#: js/EnsembleBlocks.js:504 -#: js/EnsembleBlocks.js:550 -#: js/EnsembleBlocks.js:597 -#: js/EnsembleBlocks.js:651 -#: js/EnsembleBlocks.js:763 -#: js/EnsembleBlocks.js:854 -#: js/EnsembleBlocks.js:915 -#: js/EnsembleBlocks.js:955 -#: js/EnsembleBlocks.js:1219 -#: js/EnsembleBlocks.js:1293 +#: js/blocks/EnsembleBlocks.js:90 +#: js/blocks/EnsembleBlocks.js:167 +#: js/blocks/EnsembleBlocks.js:230 +#: js/blocks/EnsembleBlocks.js:316 +#: js/blocks/EnsembleBlocks.js:362 +#: js/blocks/EnsembleBlocks.js:400 +#: js/blocks/EnsembleBlocks.js:454 +#: js/blocks/EnsembleBlocks.js:504 +#: js/blocks/EnsembleBlocks.js:550 +#: js/blocks/EnsembleBlocks.js:597 +#: js/blocks/EnsembleBlocks.js:651 +#: js/blocks/EnsembleBlocks.js:763 +#: js/blocks/EnsembleBlocks.js:854 +#: js/blocks/EnsembleBlocks.js:915 +#: js/blocks/EnsembleBlocks.js:955 +#: js/blocks/EnsembleBlocks.js:1219 +#: js/blocks/EnsembleBlocks.js:1293 #.TRANS: Yertle is the name of a turtle. msgid "Yertle" msgstr "" -#: js/EnsembleBlocks.js:92 -#: js/EnsembleBlocks.js:1089 +#: js/blocks/EnsembleBlocks.js:92 +#: js/blocks/EnsembleBlocks.js:1089 msgid "turtle name" msgstr "" -#: js/EnsembleBlocks.js:122 -#: js/EnsembleBlocks.js:1197 -#: js/HeapBlocks.js:474 -#: js/HeapBlocks.js:572 +#: js/blocks/EnsembleBlocks.js:122 +#: js/blocks/EnsembleBlocks.js:1197 +#: js/blocks/HeapBlocks.js:474 +#: js/blocks/HeapBlocks.js:572 msgid "Index must be > 0." msgstr "" -#: js/EnsembleBlocks.js:127 -#: js/HeapBlocks.js:479 -#: js/HeapBlocks.js:577 +#: js/blocks/EnsembleBlocks.js:127 +#: js/blocks/HeapBlocks.js:479 +#: js/blocks/HeapBlocks.js:577 msgid "Maximum heap size is 1000." msgstr "" -#: js/EnsembleBlocks.js:145 +#: js/blocks/EnsembleBlocks.js:145 msgid "stop mouse" msgstr "" -#: js/EnsembleBlocks.js:147 +#: js/blocks/EnsembleBlocks.js:147 msgid "The Stop mouse block stops the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:158 +#: js/blocks/EnsembleBlocks.js:158 msgid "stop turtle" msgstr "" -#: js/EnsembleBlocks.js:160 +#: js/blocks/EnsembleBlocks.js:160 msgid "The Stop turtle block stops the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:184 -#: js/EnsembleBlocks.js:247 -#: js/EnsembleBlocks.js:413 -#: js/EnsembleBlocks.js:468 -#: js/EnsembleBlocks.js:706 -#: js/EnsembleBlocks.js:808 -#: js/EnsembleBlocks.js:870 -#: js/EnsembleBlocks.js:1190 -#: js/EnsembleBlocks.js:1253 +#: js/blocks/EnsembleBlocks.js:184 +#: js/blocks/EnsembleBlocks.js:247 +#: js/blocks/EnsembleBlocks.js:413 +#: js/blocks/EnsembleBlocks.js:468 +#: js/blocks/EnsembleBlocks.js:706 +#: js/blocks/EnsembleBlocks.js:808 +#: js/blocks/EnsembleBlocks.js:870 +#: js/blocks/EnsembleBlocks.js:1190 +#: js/blocks/EnsembleBlocks.js:1253 msgid "Cannot find mouse" msgstr "" -#: js/EnsembleBlocks.js:186 -#: js/EnsembleBlocks.js:249 -#: js/EnsembleBlocks.js:415 -#: js/EnsembleBlocks.js:470 -#: js/EnsembleBlocks.js:708 -#: js/EnsembleBlocks.js:810 -#: js/EnsembleBlocks.js:872 -#: js/EnsembleBlocks.js:1192 -#: js/EnsembleBlocks.js:1255 +#: js/blocks/EnsembleBlocks.js:186 +#: js/blocks/EnsembleBlocks.js:249 +#: js/blocks/EnsembleBlocks.js:415 +#: js/blocks/EnsembleBlocks.js:470 +#: js/blocks/EnsembleBlocks.js:708 +#: js/blocks/EnsembleBlocks.js:810 +#: js/blocks/EnsembleBlocks.js:872 +#: js/blocks/EnsembleBlocks.js:1192 +#: js/blocks/EnsembleBlocks.js:1255 msgid "Cannot find turtle" msgstr "" -#: js/EnsembleBlocks.js:206 +#: js/blocks/EnsembleBlocks.js:206 msgid "start mouse" msgstr "" -#: js/EnsembleBlocks.js:209 +#: js/blocks/EnsembleBlocks.js:209 msgid "The Start mouse block starts the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:220 +#: js/blocks/EnsembleBlocks.js:220 msgid "start turtle" msgstr "" -#: js/EnsembleBlocks.js:223 +#: js/blocks/EnsembleBlocks.js:223 msgid "The Start turtle block starts the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:256 +#: js/blocks/EnsembleBlocks.js:256 msgid "Mouse is already running." msgstr "" -#: js/EnsembleBlocks.js:258 +#: js/blocks/EnsembleBlocks.js:258 msgid "Turtle is already running." msgstr "" -#: js/EnsembleBlocks.js:282 +#: js/blocks/EnsembleBlocks.js:282 msgid "Cannot find start block" msgstr "" -#: js/EnsembleBlocks.js:292 +#: js/blocks/EnsembleBlocks.js:292 #.TRANS: pen color for this mouse msgid "mouse color" msgstr "" -#: js/EnsembleBlocks.js:294 +#: js/blocks/EnsembleBlocks.js:294 msgid "The Mouse color block returns the pen color of the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:306 +#: js/blocks/EnsembleBlocks.js:306 #.TRANS: pen color for this turtle msgid "turtle color" msgstr "" -#: js/EnsembleBlocks.js:308 +#: js/blocks/EnsembleBlocks.js:308 msgid "The Turtle color block returns the pen color of the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:338 +#: js/blocks/EnsembleBlocks.js:338 #.TRANS: heading (compass direction) for this mouse msgid "mouse heading" msgstr "" -#: js/EnsembleBlocks.js:340 +#: js/blocks/EnsembleBlocks.js:340 msgid "The Mouse heading block returns the heading of the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:352 +#: js/blocks/EnsembleBlocks.js:352 #.TRANS: heading (compass direction) for this turtle msgid "turtle heading" msgstr "" -#: js/EnsembleBlocks.js:354 +#: js/blocks/EnsembleBlocks.js:354 msgid "The Turtle heading block returns the heading of the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:384 -#: js/EnsembleBlocks.js:439 +#: js/blocks/EnsembleBlocks.js:384 +#: js/blocks/EnsembleBlocks.js:439 #.TRANS: set xy position for this mouse msgid "set mouse" msgstr "" -#: js/EnsembleBlocks.js:391 -#: js/EnsembleBlocks.js:402 -#: js/BoxesBlocks.js:595 -msgid "name1" -msgstr "" - -#: js/EnsembleBlocks.js:391 -#: js/EnsembleBlocks.js:402 -#: js/ProgramBlocks.js:881 -#: js/GraphicsBlocks.js:235 -#: js/GraphicsBlocks.js:313 -#: js/GraphicsBlocks.js:436 -#: js/GraphicsBlocks.js:487 -#: js/GraphicsBlocks.js:534 -#: js/GraphicsBlocks.js:750 +#: js/blocks/EnsembleBlocks.js:391 +#: js/blocks/EnsembleBlocks.js:402 +#: js/blocks/GraphicsBlocks.js:235 +#: js/blocks/GraphicsBlocks.js:313 +#: js/blocks/GraphicsBlocks.js:436 +#: js/blocks/GraphicsBlocks.js:487 +#: js/blocks/GraphicsBlocks.js:534 +#: js/blocks/GraphicsBlocks.js:750 +#: js/blocks/ProgramBlocks.js:881 msgid "x" msgstr "" -#: js/EnsembleBlocks.js:391 -#: js/EnsembleBlocks.js:402 -#: js/ProgramBlocks.js:881 -#: js/GraphicsBlocks.js:149 -#: js/GraphicsBlocks.js:313 -#: js/GraphicsBlocks.js:436 -#: js/GraphicsBlocks.js:487 -#: js/GraphicsBlocks.js:534 -#: js/GraphicsBlocks.js:750 +#: js/blocks/EnsembleBlocks.js:391 +#: js/blocks/EnsembleBlocks.js:402 +#: js/blocks/GraphicsBlocks.js:149 +#: js/blocks/GraphicsBlocks.js:313 +#: js/blocks/GraphicsBlocks.js:436 +#: js/blocks/GraphicsBlocks.js:487 +#: js/blocks/GraphicsBlocks.js:534 +#: js/blocks/GraphicsBlocks.js:750 +#: js/blocks/ProgramBlocks.js:881 msgid "y" msgstr "" -#: js/EnsembleBlocks.js:395 -#: js/EnsembleBlocks.js:452 +#: js/blocks/EnsembleBlocks.js:395 +#: js/blocks/EnsembleBlocks.js:452 #.TRANS: set xy position for this turtle msgid "set turtle" msgstr "" -#: js/EnsembleBlocks.js:433 +#: js/blocks/EnsembleBlocks.js:433 msgid "The Set mouse block sends a stack of blocks to be run by the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:446 +#: js/blocks/EnsembleBlocks.js:446 msgid "The Set turtle block sends a stack of blocks to be run by the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:480 +#: js/blocks/EnsembleBlocks.js:480 #.TRANS: y position for this mouse msgid "mouse y" msgstr "" -#: js/EnsembleBlocks.js:482 +#: js/blocks/EnsembleBlocks.js:482 msgid "The Y mouse block returns the Y position of the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:494 +#: js/blocks/EnsembleBlocks.js:494 #.TRANS: y position for this turtle msgid "turtle y" msgstr "" -#: js/EnsembleBlocks.js:496 +#: js/blocks/EnsembleBlocks.js:496 msgid "The Y turtle block returns the Y position of the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:526 +#: js/blocks/EnsembleBlocks.js:526 #.TRANS: x position for this mouse msgid "mouse x" msgstr "" -#: js/EnsembleBlocks.js:528 +#: js/blocks/EnsembleBlocks.js:528 msgid "The X mouse block returns the X position of the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:540 +#: js/blocks/EnsembleBlocks.js:540 #.TRANS: x position for this turtle msgid "turtle x" msgstr "" -#: js/EnsembleBlocks.js:542 +#: js/blocks/EnsembleBlocks.js:542 msgid "The X turtle block returns the X position of the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:573 +#: js/blocks/EnsembleBlocks.js:573 #.TRANS: notes played by this mouse msgid "mouse notes played" msgstr "" -#: js/EnsembleBlocks.js:575 +#: js/blocks/EnsembleBlocks.js:575 msgid "The Mouse elapse notes block returns the number of notes played by the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:587 +#: js/blocks/EnsembleBlocks.js:587 #.TRANS: notes played by this turtle msgid "turtle notes played" msgstr "" -#: js/EnsembleBlocks.js:589 +#: js/blocks/EnsembleBlocks.js:589 msgid "The Turtle elapse notes block returns the number of notes played by the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:627 +#: js/blocks/EnsembleBlocks.js:627 #.TRANS: convert current note for this turtle to piano key (1-88) msgid "mouse pitch number" msgstr "" -#: js/EnsembleBlocks.js:629 +#: js/blocks/EnsembleBlocks.js:629 msgid "The Mouse pitch block returns the current pitch number being played by the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:641 +#: js/blocks/EnsembleBlocks.js:641 #.TRANS: convert current note for this turtle to piano key (1-88) msgid "turtle pitch number" msgstr "" -#: js/EnsembleBlocks.js:643 -msgid "The Turrle pitch block returns the current pitch number being played by the specified turtle." +#: js/blocks/EnsembleBlocks.js:643 +msgid "The Turtle pitch block returns the current pitch number being played by the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:747 -#: js/EnsembleBlocks.js:819 +#: js/blocks/EnsembleBlocks.js:747 +#: js/blocks/EnsembleBlocks.js:819 #.TRANS: note value is the duration of the note played by this mouse msgid "mouse note value" msgstr "" -#: js/EnsembleBlocks.js:757 +#: js/blocks/EnsembleBlocks.js:757 #.TRANS: note value is the duration of the note played by this turtle msgid "turtle note value" msgstr "" -#: js/EnsembleBlocks.js:830 +#: js/blocks/EnsembleBlocks.js:830 #.TRANS: sync is short for synchronization msgid "mouse sync" msgstr "" -#: js/EnsembleBlocks.js:832 +#: js/blocks/EnsembleBlocks.js:832 msgid "The Mouse sync block aligns the beat count between mice." msgstr "" -#: js/EnsembleBlocks.js:844 +#: js/blocks/EnsembleBlocks.js:844 #.TRANS: sync is short for synchronization msgid "turtle sync" msgstr "" -#: js/EnsembleBlocks.js:846 +#: js/blocks/EnsembleBlocks.js:846 msgid "The Turtle sync block aligns the beat count between turtles." msgstr "" -#: js/EnsembleBlocks.js:887 +#: js/blocks/EnsembleBlocks.js:887 msgid "The Found mouse block will return true if the specified mouse can be found." msgstr "" -#: js/EnsembleBlocks.js:893 +#: js/blocks/EnsembleBlocks.js:893 msgid "found mouse" msgstr "" -#: js/EnsembleBlocks.js:903 +#: js/blocks/EnsembleBlocks.js:903 msgid "The Found turtle block will return true if the specified turtle can be found." msgstr "" -#: js/EnsembleBlocks.js:909 +#: js/blocks/EnsembleBlocks.js:909 msgid "found turtle" msgstr "" -#: js/EnsembleBlocks.js:932 +#: js/blocks/EnsembleBlocks.js:932 msgid "new mouse" msgstr "" -#: js/EnsembleBlocks.js:934 +#: js/blocks/EnsembleBlocks.js:934 msgid "The New mouse block will create a new mouse." msgstr "" -#: js/EnsembleBlocks.js:945 +#: js/blocks/EnsembleBlocks.js:945 msgid "new turtle" msgstr "" -#: js/EnsembleBlocks.js:947 +#: js/blocks/EnsembleBlocks.js:947 msgid "The New turtle block will create a new turtle." msgstr "" -#: js/EnsembleBlocks.js:1011 +#: js/blocks/EnsembleBlocks.js:1011 msgid "set mouse color" msgstr "" -#: js/EnsembleBlocks.js:1014 +#: js/blocks/EnsembleBlocks.js:1014 msgid "The Set-mouse-color block is used to set the color of a mouse." msgstr "" -#: js/EnsembleBlocks.js:1020 +#: js/blocks/EnsembleBlocks.js:1020 msgid "set turtle color" msgstr "" -#: js/EnsembleBlocks.js:1023 +#: js/blocks/EnsembleBlocks.js:1023 msgid "The Set-turtle-color block is used to set the color of a turtle." msgstr "" -#: js/EnsembleBlocks.js:1083 +#: js/blocks/EnsembleBlocks.js:1083 msgid "The Mouse-name block returns the name of a mouse." msgstr "" -#: js/EnsembleBlocks.js:1092 +#: js/blocks/EnsembleBlocks.js:1092 msgid "The Turtle-name block returns the name of a turtle." msgstr "" -#: js/EnsembleBlocks.js:1115 +#: js/blocks/EnsembleBlocks.js:1115 msgid "mouse count" msgstr "" -#: js/EnsembleBlocks.js:1118 +#: js/blocks/EnsembleBlocks.js:1118 msgid "The Mouse-count block returns the number of mice." msgstr "" -#: js/EnsembleBlocks.js:1124 +#: js/blocks/EnsembleBlocks.js:1124 msgid "turtle count" msgstr "" -#: js/EnsembleBlocks.js:1127 +#: js/blocks/EnsembleBlocks.js:1127 msgid "The Turtle-count block returns the number of turtles." msgstr "" -#: js/EnsembleBlocks.js:1149 +#: js/blocks/EnsembleBlocks.js:1149 msgid "nth mouse name" msgstr "" -#: js/EnsembleBlocks.js:1152 +#: js/blocks/EnsembleBlocks.js:1152 msgid "The Nth-Mouse name block returns the name of the nth mouse." msgstr "" -#: js/EnsembleBlocks.js:1158 +#: js/blocks/EnsembleBlocks.js:1158 msgid "nth turtle name" msgstr "" -#: js/EnsembleBlocks.js:1161 +#: js/blocks/EnsembleBlocks.js:1161 msgid "The Nth-Turtle name block returns the name of the nth turtle." msgstr "" -#: js/EnsembleBlocks.js:1205 -#: js/EnsembleBlocks.js:1265 +#: js/blocks/EnsembleBlocks.js:1205 +#: js/blocks/EnsembleBlocks.js:1265 msgid "set name" msgstr "" -#: js/EnsembleBlocks.js:1214 -#: js/EnsembleBlocks.js:1221 +#: js/blocks/EnsembleBlocks.js:1214 +#: js/blocks/EnsembleBlocks.js:1221 msgid "source" msgstr "" -#: js/EnsembleBlocks.js:1214 -#: js/EnsembleBlocks.js:1221 +#: js/blocks/EnsembleBlocks.js:1214 +#: js/blocks/EnsembleBlocks.js:1221 msgid "target" msgstr "" -#: js/EnsembleBlocks.js:1271 +#: js/blocks/EnsembleBlocks.js:1271 msgid "The Set-name block is used to name a mouse." msgstr "" -#: js/EnsembleBlocks.js:1284 +#: js/blocks/EnsembleBlocks.js:1284 msgid "The Set-name block is used to name a turtle." msgstr "" -#: js/BooleanBlocks.js:44 -msgid "The Not block is the logical not operator." -msgstr "" - -#: js/BooleanBlocks.js:62 -msgid "not" -msgstr "" - -#: js/BooleanBlocks.js:134 -msgid "The And block is the logical and operator." -msgstr "" - -#: js/BooleanBlocks.js:152 -msgid "and" -msgstr "" - -#: js/BooleanBlocks.js:218 -msgid "The Or block is the logical or operator." -msgstr "" - -#: js/BooleanBlocks.js:236 -msgid "or" -msgstr "" - -#: js/BooleanBlocks.js:302 -msgid "The XOR block is the logical XOR operator." -msgstr "" - -#: js/BooleanBlocks.js:320 -msgid "xor" -msgstr "" - -#: js/BooleanBlocks.js:808 -msgid "The Equal block returns True if the two numbers are equal." -msgstr "" - -#: js/BooleanBlocks.js:909 -msgid "The Not-equal-to block returns True if the two numbers are not equal to each other." -msgstr "" - -#: js/BooleanBlocks.js:1008 -msgid "The Boolean block is used to specify true or false." -msgstr "" - -#: js/MediaBlocks.js:35 -#.TRANS: right side of the screen -msgid "right (screen)" -msgstr "" - -#: js/MediaBlocks.js:45 -#: js/MediaBlocks.js:56 -msgid "The Right block returns the position of the right of the canvas." -msgstr "" - -#: js/MediaBlocks.js:97 -#.TRANS: left side of the screen -msgid "left (screen)" -msgstr "" - -#: js/MediaBlocks.js:107 -#: js/MediaBlocks.js:118 -msgid "The Left block returns the position of the left of the canvas." -msgstr "" - -#: js/MediaBlocks.js:158 -msgid "top (screen)" -msgstr "" - -#: js/MediaBlocks.js:168 -#: js/MediaBlocks.js:179 -msgid "The Top block returns the position of the top of the canvas." -msgstr "" - -#: js/MediaBlocks.js:219 -msgid "bottom (screen)" +#: js/blocks/ExtrasBlocks.js:33 +msgid "fraction" msgstr "" -#: js/MediaBlocks.js:229 -#: js/MediaBlocks.js:240 -msgid "The Bottom block returns the position of the bottom of the canvas." +#: js/blocks/ExtrasBlocks.js:36 +msgid "Convert a float to a fraction" msgstr "" -#: js/MediaBlocks.js:282 -msgid "width" +#: js/blocks/ExtrasBlocks.js:93 +msgid "save as ABC" msgstr "" -#: js/MediaBlocks.js:291 -msgid "The Width block returns the width of the canvas." +#: js/blocks/ExtrasBlocks.js:96 +#: js/blocks/ExtrasBlocks.js:132 +#: js/blocks/ExtrasBlocks.js:168 +msgid "title" msgstr "" -#: js/MediaBlocks.js:325 -msgid "height" +#: js/blocks/ExtrasBlocks.js:129 +msgid "save as Lilypond" msgstr "" -#: js/MediaBlocks.js:334 -msgid "The Height block returns the height of the canvas." +#: js/blocks/ExtrasBlocks.js:165 +msgid "save as SVG" msgstr "" -#: js/MediaBlocks.js:369 -#.TRANS: stops playback of an audio recording -msgid "stop play" +#: js/blocks/ExtrasBlocks.js:216 +msgid "no background" msgstr "" -#: js/MediaBlocks.js:404 -#.TRANS: Erases the images and text -msgid "erase media" +#: js/blocks/ExtrasBlocks.js:219 +msgid "The No background block eliminates the background from the saved SVG output." msgstr "" -#: js/MediaBlocks.js:409 -msgid "The Erase Media block erases text and images." +#: js/blocks/ExtrasBlocks.js:247 +msgid "show blocks" msgstr "" -#: js/MediaBlocks.js:439 -#.TRANS: play an audio recording -msgid "play back" +#: js/blocks/ExtrasBlocks.js:249 +msgid "The Show blocks block shows the blocks." msgstr "" -#: js/MediaBlocks.js:487 -msgid "speak" +#: js/blocks/ExtrasBlocks.js:274 +msgid "hide blocks" msgstr "" -#: js/MediaBlocks.js:495 -msgid "The Speak block outputs to the text-to-speech synthesizer" +#: js/blocks/ExtrasBlocks.js:276 +msgid "The Hide blocks block hides the blocks." msgstr "" -#: js/MediaBlocks.js:546 -msgid "camera" +#: js/blocks/ExtrasBlocks.js:305 +#: js/blocks/ExtrasBlocks.js:338 +msgid "The Space block is used to add space between blocks." msgstr "" -#: js/MediaBlocks.js:551 -msgid "The Camera block connects a webcam to the Show block." +#: js/blocks/ExtrasBlocks.js:376 +msgid "wait" msgstr "" -#: js/MediaBlocks.js:574 -msgid "video" +#: js/blocks/ExtrasBlocks.js:379 +msgid "The Wait block pauses the program for a specified number of seconds." msgstr "" -#: js/MediaBlocks.js:579 -msgid "The Video block selects video for use with the Show block." +#: js/blocks/ExtrasBlocks.js:433 +#: plugins/facebook.rtp:30 +msgid "comment" msgstr "" -#: js/MediaBlocks.js:607 -msgid "The Open file block opens a file for use with the Show block." +#: js/blocks/ExtrasBlocks.js:469 +msgid "print" msgstr "" -#: js/MediaBlocks.js:645 -msgid "stop media" +#: js/blocks/ExtrasBlocks.js:476 +msgid "The Print block displays text at the top of the screen." msgstr "" -#: js/MediaBlocks.js:650 -msgid "The Stop media block stops audio or video playback." +#: js/blocks/ExtrasBlocks.js:582 +msgid "display grid" msgstr "" -#: js/MediaBlocks.js:679 -#: js/PitchBlocks.js:1539 -#: js/phrasemaker.js:822 -#: js/musickeyboard.js:1654 -#.TRANS: a measure of frequency: one cycle per second -msgid "hertz" +#: js/blocks/ExtrasBlocks.js:587 +msgid "The Display Grid Block changes the grid type" msgstr "" -#: js/MediaBlocks.js:692 -msgid "duration (ms)" +#: js/blocks/ExtrasBlocks.js:689 +#: js/blocks/ExtrasBlocks.js:708 +#: js/blocks/ExtrasBlocks.js:731 +#: js/blocks/ExtrasBlocks.js:754 +#: js/blocks/ExtrasBlocks.js:772 +#: js/blocks/ExtrasBlocks.js:791 +#: js/blocks/ExtrasBlocks.js:810 +#: js/blocks/ExtrasBlocks.js:829 +msgid "unknown" msgstr "" -#: js/MediaBlocks.js:728 -#.TRANS: translate a note into hertz, e.g., A4 -> 440HZ -msgid "note to frequency" +#: js/blocks/FlowBlocks.js:41 +msgid "The Backward block runs code in reverse order (Musical retrograde)." msgstr "" -#: js/MediaBlocks.js:736 -msgid "The To frequency block converts a pitch name and octave to Hertz." +#: js/blocks/FlowBlocks.js:48 +msgid "backward" msgstr "" -#: js/MediaBlocks.js:746 -#: js/PitchBlocks.js:656 -#: js/PitchBlocks.js:932 -#: js/PitchBlocks.js:1827 -#.TRANS: name2 is name as in name of pitch (JAPANESE ONLY) -msgid "name2" +#: js/blocks/FlowBlocks.js:124 +msgid "The Duplicate block will run each block multiple times." msgstr "" -#: js/MediaBlocks.js:812 -msgid "The Avatar block is used to change the appearance of the mouse." +#: js/blocks/FlowBlocks.js:136 +msgid "duplicate" msgstr "" -#: js/MediaBlocks.js:819 -msgid "The Avatar block is used to change the appearance of the turtle." +#: js/blocks/FlowBlocks.js:334 +msgid "The Default block is used inside of a Switch to define the default action." msgstr "" -#: js/MediaBlocks.js:831 -#: js/MediaBlocks.js:891 -#.TRANS: a media object -msgid "size" +#: js/blocks/FlowBlocks.js:342 +msgid "default" msgstr "" -#: js/MediaBlocks.js:831 -msgid "image" +#: js/blocks/FlowBlocks.js:361 +#: js/blocks/FlowBlocks.js:418 +msgid "The Case Block must be used inside of a Switch Block." msgstr "" -#: js/MediaBlocks.js:880 -msgid "The Show block is used to display text or images on the canvas." +#: js/blocks/FlowBlocks.js:389 +msgid "The Case block is used inside of a Switch to define matches." msgstr "" -#: js/MediaBlocks.js:888 -#.TRANS: show1 is show as in display an image or text on the screen. -msgid "show1" +#: js/blocks/FlowBlocks.js:397 +msgid "case" msgstr "" -#: js/MediaBlocks.js:891 -msgid "obj" +#: js/blocks/FlowBlocks.js:446 +msgid "The Switch block will run the code in the matching Case." msgstr "" -#: js/MediaBlocks.js:938 -msgid "The Media block is used to import an image." +#: js/blocks/FlowBlocks.js:454 +msgid "switch" msgstr "" -#: js/MediaBlocks.js:973 -msgid "The Text block holds a text string." +#: js/blocks/FlowBlocks.js:595 +msgid "The Stop block will stop a loop" msgstr "" -#: js/ProgramBlocks.js:33 -msgid "The Load-heap-from-app block loads the heap from a web page." +#: js/blocks/FlowBlocks.js:597 +msgid "Forever, Repeat, While, or Until." msgstr "" -#: js/ProgramBlocks.js:44 -#.TRANS: load the heap contents from a URL -msgid "load heap from App" +#: js/blocks/FlowBlocks.js:604 +#: js/widgets/timbre.js:417 +#: js/widgets/timbre.js:419 +#: js/widgets/musickeyboard.js:819 +#: js/widgets/musickeyboard.js:821 +#: js/widgets/phrasemaker.js:4202 +#: plugins/rodi.rtp:29 +#: plugins/rodi.rtp:73 +#: plugins/rodi.rtp:413 +msgid "stop" msgstr "" -#: js/ProgramBlocks.js:95 -msgid "Error parsing JSON data:" +#: js/blocks/FlowBlocks.js:653 +msgid "The Waitfor block will wait until the condition is true." msgstr "" -#: js/ProgramBlocks.js:100 -msgid "404: Page not found" +#: js/blocks/FlowBlocks.js:661 +msgid "wait for" msgstr "" -#: js/ProgramBlocks.js:133 -msgid "The Save-heap-to-app block saves the heap to a web page." +#: js/blocks/FlowBlocks.js:732 +msgid "The Until block will repeat until the condition is true." msgstr "" -#: js/ProgramBlocks.js:144 -#.TRANS: save the heap contents to a URL -msgid "save heap to App" +#: js/blocks/FlowBlocks.js:740 +msgid "until" msgstr "" -#: js/ProgramBlocks.js:189 -msgid "Cannot find a valid heap for" +#: js/blocks/FlowBlocks.js:742 +#: js/blocks/FlowBlocks.js:822 +msgid "do2" msgstr "" -#: js/ProgramBlocks.js:206 -msgid "The Load-heap block loads the heap from a file." +#: js/blocks/FlowBlocks.js:812 +msgid "The While block will repeat while the condition is true." msgstr "" -#: js/ProgramBlocks.js:217 -#.TRANS: load the heap from a file -msgid "load heap" +#: js/blocks/FlowBlocks.js:820 +msgid "while" msgstr "" -#: js/ProgramBlocks.js:270 -msgid "The file you selected does not contain a valid heap." +#: js/blocks/FlowBlocks.js:903 +#: js/blocks/FlowBlocks.js:968 +#: js/blocks/FlowBlocks.js:979 +msgid "In this example if the mouse button is pressed a snare drum will play." msgstr "" -#: js/ProgramBlocks.js:275 -msgid "The loadHeap block needs a loadFile block." +#: js/blocks/FlowBlocks.js:925 +#: js/blocks/FlowBlocks.js:988 +msgid "if" msgstr "" -#: js/ProgramBlocks.js:291 -msgid "The Set-heap block loads the heap." +#: js/blocks/FlowBlocks.js:927 +#: js/blocks/FlowBlocks.js:990 +msgid "then" msgstr "" -#: js/ProgramBlocks.js:299 -#: js/HeapBlocks.js:539 -#.TRANS: load the heap from a JSON encoding -msgid "set heap" +#: js/blocks/FlowBlocks.js:927 +msgid "else" msgstr "" -#: js/ProgramBlocks.js:340 -msgid "The block you selected does not contain a valid heap." +#: js/blocks/FlowBlocks.js:1025 +msgid "The Forever block will repeat the contained blocks forever." msgstr "" -#: js/ProgramBlocks.js:343 -msgid "The Set heap block needs a heap." +#: js/blocks/FlowBlocks.js:1037 +msgid "forever" msgstr "" -#: js/ProgramBlocks.js:360 -msgid "The Load-dictionary block loads a dictionary from a file." +#: js/blocks/FlowBlocks.js:1073 +msgid "The Repeat block will repeat the contained blocks." msgstr "" -#: js/ProgramBlocks.js:372 -#.TRANS: load a dictionary from a file -msgid "load dictionary" +#: js/blocks/FlowBlocks.js:1075 +msgid "In this example the note will be played 4 times." msgstr "" -#: js/ProgramBlocks.js:390 -#: js/ProgramBlocks.js:658 -#: js/ToneBlocks.js:1025 -msgid "file" +#: js/blocks/FlowBlocks.js:1083 +msgid "repeat" msgstr "" -#: js/ProgramBlocks.js:396 -#: js/ProgramBlocks.js:501 -#: js/ProgramBlocks.js:664 -#: js/DictBlocks.js:80 -#: js/DictBlocks.js:145 -#: js/DictBlocks.js:216 -#: js/DictBlocks.js:290 -msgid "My Dictionary" +#: js/blocks/FlowBlocks.js:1123 +msgid "duplicate factor" msgstr "" -#: js/ProgramBlocks.js:444 -msgid "The file you selected does not contain a valid dictionary." +#: js/blocks/HeapBlocks.js:49 +msgid "The Heap block returns the heap." msgstr "" -#: js/ProgramBlocks.js:449 -msgid "The load dictionary block needs a load file block." +#: js/blocks/HeapBlocks.js:133 +msgid "show heap" msgstr "" -#: js/ProgramBlocks.js:466 -msgid "The Set-dictionary block loads a dictionary." +#: js/blocks/HeapBlocks.js:181 +msgid "The Heap-length block returns the length of the heap." msgstr "" -#: js/ProgramBlocks.js:477 -#.TRANS: load a dictionary from a JSON -msgid "set dictionary" +#: js/blocks/HeapBlocks.js:195 +msgid "heap length" msgstr "" -#: js/ProgramBlocks.js:546 -msgid "The block you selected does not contain a valid dictionary." +#: js/blocks/HeapBlocks.js:254 +msgid "The Heap-empty? block returns true if the heap is empty." msgstr "" -#: js/ProgramBlocks.js:550 -msgid "The set dictionary block needs a dictionary." +#: js/blocks/HeapBlocks.js:268 +#.TRANS: Is the heap empty? +msgid "heap empty?" msgstr "" -#: js/ProgramBlocks.js:567 -msgid "The Save-heap block saves the heap to a file." +#: js/blocks/HeapBlocks.js:317 +msgid "The Empty-heap block empties the heap." msgstr "" -#: js/ProgramBlocks.js:578 -#.TRANS: save the heap to a file -msgid "save heap" +#: js/blocks/HeapBlocks.js:327 +#: js/blocks/HeapBlocks.js:647 +#.TRANS: empty the heap +msgid "empty heap" msgstr "" -#: js/ProgramBlocks.js:629 -msgid "The Save-dictionary block saves a dictionary to a file." +#: js/blocks/HeapBlocks.js:371 +msgid "The Reverse-heap block reverses the order of the heap." msgstr "" -#: js/ProgramBlocks.js:640 -#.TRANS: save a dictionary to a file -msgid "save dictionary" +#: js/blocks/HeapBlocks.js:384 +#.TRANS: reverse the order of the heap +msgid "reverse heap" msgstr "" -#: js/ProgramBlocks.js:720 -msgid "The Open palette block opens a palette." +#: js/blocks/HeapBlocks.js:428 +msgid "The Index-heap block returns a value in the heap at a specified location." msgstr "" -#: js/ProgramBlocks.js:727 -msgid "open palette" +#: js/blocks/HeapBlocks.js:443 +#.TRANS: retrieve a value from the heap at index position in the heap +msgid "index heap" msgstr "" -#: js/ProgramBlocks.js:785 -msgid "The Delete block block removes a block." +#: js/blocks/HeapBlocks.js:523 +msgid "The Set-heap entry block sets a value in he heap at the specified location." msgstr "" -#: js/ProgramBlocks.js:797 -#.TRANS: Move this block to the trash. -msgid "delete block" +#: js/blocks/HeapBlocks.js:539 +#: js/blocks/ProgramBlocks.js:299 +#.TRANS: load the heap from a JSON encoding +msgid "set heap" msgstr "" -#: js/ProgramBlocks.js:861 -msgid "The Move block block moves a block." +#: js/blocks/HeapBlocks.js:619 +msgid "The Pop block removes the value at the top of the heap." msgstr "" -#: js/ProgramBlocks.js:869 -#.TRANS: Move the position of a block on the screen. -msgid "move block" +#: js/blocks/HeapBlocks.js:633 +#.TRANS: pop a value off the top of the heap +msgid "pop" msgstr "" -#: js/ProgramBlocks.js:881 -#: js/ProgramBlocks.js:1048 -msgid "block number" +#: js/blocks/HeapBlocks.js:680 +msgid "The Push block adds a value to the top of the heap." msgstr "" -#: js/ProgramBlocks.js:935 -#.TRANS: Run program beginning at this block. -msgid "run block" +#: js/blocks/HeapBlocks.js:696 +#.TRANS: push a value onto the top of the heap +msgid "push" msgstr "" -#: js/ProgramBlocks.js:1025 -msgid "The Dock block block connections two blocks." +#: js/blocks/IntervalsBlocks.js:45 +msgid "set temperament" msgstr "" -#: js/ProgramBlocks.js:1036 -#.TRANS: We can connect a block to another block. -msgid "connect blocks" +#: js/blocks/IntervalsBlocks.js:63 +#: js/blocks/MediaBlocks.js:746 +#: js/blocks/PitchBlocks.js:657 +#: js/blocks/PitchBlocks.js:935 +#: js/blocks/PitchBlocks.js:974 +#: js/blocks/PitchBlocks.js:1007 +#: js/blocks/PitchBlocks.js:1194 +#: js/blocks/PitchBlocks.js:1717 +#: js/blocks/PitchBlocks.js:1758 +#: js/blocks/PitchBlocks.js:1866 +#: js/blocks/ToneBlocks.js:1025 +#: js/turtleactions/IntervalsActions.js:114 +#.TRANS: adjusts the shift up or down by one octave (twelve half-steps in the interval between two notes, one having twice or half the frequency in Hz of the other.) +msgid "octave" msgstr "" -#: js/ProgramBlocks.js:1048 -msgid "target block" +#: js/blocks/IntervalsBlocks.js:99 +msgid "The Temperament name block is used to select a tuning method." msgstr "" -#: js/ProgramBlocks.js:1048 -msgid "connection number" +#: js/blocks/IntervalsBlocks.js:161 +msgid "doubly" msgstr "" -#: js/ProgramBlocks.js:1140 -msgid "The Make block block creates a new block." +#: js/blocks/IntervalsBlocks.js:166 +msgid "The Doubly block will double the size of an interval." msgstr "" -#: js/ProgramBlocks.js:1152 -#.TRANS: Create a new block -msgid "make block" +#: js/blocks/IntervalsBlocks.js:262 +msgid "interval number" msgstr "" -#: js/ProgramBlocks.js:1186 -#: js/ProgramBlocks.js:1227 -#: js/RhythmBlocks.js:1128 -#: js/PitchBlocks.js:972 -#: js/PitchBlocks.js:1005 -#: js/temperament.js:340 -#: js/temperament.js:362 -#: js/temperament.js:372 -#: js/temperament.js:484 -#: js/status.js:190 -#: plugins/rodi.rtp:192 -#.TRANS: a musical note consisting of pitch and duration -msgid "note" +#: js/blocks/IntervalsBlocks.js:317 +msgid "current interval" msgstr "" -#: js/ProgramBlocks.js:1285 -msgid "Cannot find block" +#: js/blocks/IntervalsBlocks.js:387 +#.TRANS: measure the distance between two pitches in semi-tones +msgid "semi-tone interval measure" msgstr "" -#: js/ProgramBlocks.js:1304 -#: js/ProgramBlocks.js:1313 -msgid "Warning: block argument type mismatch" +#: js/blocks/IntervalsBlocks.js:454 +#: js/blocks/IntervalsBlocks.js:570 +msgid "You must use two pitch blocks when measuring an interval." msgstr "" -#: js/ProgramBlocks.js:1347 -msgid "The Open project block is used to open a project from a web page." +#: js/blocks/IntervalsBlocks.js:496 +msgid "The Scalar interval block measures the distance between two notes in the current key and mode." msgstr "" -#: js/ProgramBlocks.js:1357 -msgid "open project" +#: js/blocks/IntervalsBlocks.js:502 +#.TRANS: measure the distance between two pitches in steps of musical scale +msgid "scalar interval measure" msgstr "" -#: js/ProgramBlocks.js:1410 -msgid "Please enter a valid URL." +#: js/blocks/IntervalsBlocks.js:678 +msgid "In the figure, we add sol# to sol." msgstr "" -#: js/DrumBlocks.js:59 -msgid "The Noise name block is used to select a noise synthesizer." +#: js/blocks/IntervalsBlocks.js:684 +#: js/blocks/OrnamentBlocks.js:220 +#.TRANS: calculate a relative step between notes based on semi-tones +msgid "semi-tone interval" msgstr "" -#: js/DrumBlocks.js:102 -msgid "The Drum name block is used to select a drum." +#: js/blocks/IntervalsBlocks.js:733 +msgid "The output of the example is: do, mi, sol, sol, ti, mi" msgstr "" -#: js/DrumBlocks.js:146 -msgid "The Effects name block is used to select a sound effect." +#: js/blocks/IntervalsBlocks.js:740 +#: js/blocks/WidgetBlocks.js:768 +msgid "arpeggio" msgstr "" -#: js/DrumBlocks.js:163 -msgid "noise" +#: js/blocks/IntervalsBlocks.js:931 +msgid "The Chord block calculates common chords." msgstr "" -#: js/DrumBlocks.js:177 -msgid "The Play noise block will generate white, pink, or brown noise." +#: js/blocks/IntervalsBlocks.js:933 +msgid "In the figure, we generate a C-major chord." msgstr "" -#: js/DrumBlocks.js:191 -#: js/musicutils.js:752 -#: js/synthutils.js:47 -#.TRANS: white noise synthesizer -msgid "white noise" +#: js/blocks/IntervalsBlocks.js:938 +msgid "chord" msgstr "" -#: js/DrumBlocks.js:326 -msgid "Replace every instance of a pitch with a drum sound." +#: js/blocks/IntervalsBlocks.js:990 +msgid "The Ratio Interval block calculates an interval based on a ratio." msgstr "" -#: js/DrumBlocks.js:337 -#.TRANS: map a pitch to a drum sound -msgid "map pitch to drum" +#: js/blocks/IntervalsBlocks.js:995 +msgid "ratio interval" msgstr "" -#: js/DrumBlocks.js:404 -msgid "In the example above, a kick drum sound will be played instead of sol." +#: js/blocks/IntervalsBlocks.js:1064 +msgid "In the figure, we add la to sol." msgstr "" -#: js/DrumBlocks.js:416 -#.TRANS: set the current drum sound for playback -msgid "set drum" +#: js/blocks/IntervalsBlocks.js:1120 +#.TRANS: define a custom mode +msgid "define mode" msgstr "" -#: js/DrumBlocks.js:460 -msgid "sound effect" +#: js/blocks/IntervalsBlocks.js:1173 +msgid "movable Do" msgstr "" -#: js/DrumBlocks.js:498 -msgid "You can use multiple Drum blocks within a Note block." +#: js/blocks/IntervalsBlocks.js:1224 +#.TRANS: mode length is the number of notes in the mode, e.g., 7 for major and minor scales; 12 for chromatic scales +msgid "mode length" msgstr "" -#: js/RhythmBlocks.js:182 -#: js/RhythmBlocks.js:1086 -#: js/RhythmBlocks.js:1162 -msgid "Note value must be greater than 0." +#: js/blocks/IntervalsBlocks.js:1233 +msgid "The Mode length block is the number of notes in the current scale." msgstr "" -#: js/RhythmBlocks.js:215 -#: js/RhythmBlocks.js:278 -#: js/RhythmBlocks.js:350 -#.TRANS: swing is a rhythmic variation that emphasises the offbeat -msgid "swing" +#: js/blocks/IntervalsBlocks.js:1235 +msgid "Most Western scales have 7 notes." msgstr "" -#: js/RhythmBlocks.js:355 -#.TRANS: the amount to shift to the offbeat note -msgid "swing value" +#: js/blocks/IntervalsBlocks.js:1284 +#.TRANS: the mode in music is 'major', 'minor', etc. +msgid "current mode" msgstr "" -#: js/RhythmBlocks.js:419 -msgid "The Skip notes block will cause notes to be skipped." +#: js/blocks/IntervalsBlocks.js:1337 +#.TRANS: the key is a group of pitches with which a music composition is created +msgid "current key" msgstr "" -#: js/RhythmBlocks.js:427 -#.TRANS: substitute rests on notes being skipped -msgid "skip notes" +#: js/blocks/IntervalsBlocks.js:1389 +#: js/blocks/IntervalsBlocks.js:1434 +#.TRANS: set the key and mode, e.g. C Major +msgid "set key" msgstr "" -#: js/RhythmBlocks.js:489 -#.TRANS: speed up note duration by some factor, e.g. convert 1/4 to 1/8 notes by using a factor of 2 -msgid "multiply note value" +#: js/blocks/IntervalsBlocks.js:1443 +#: js/blocks/IntervalsBlocks.js:1449 +msgid "The Set key block is used to set the key and mode," msgstr "" -#: js/RhythmBlocks.js:542 -msgid "The Tie block works on pairs of notes, combining them into one note." +#: js/blocks/IntervalsBlocks.js:1449 +msgid "eg C Major" msgstr "" -#: js/RhythmBlocks.js:550 -#.TRANS: tie notes together into one longer note -msgid "tie" +#: js/blocks/MediaBlocks.js:35 +#.TRANS: right side of the screen +msgid "right (screen)" msgstr "" -#: js/RhythmBlocks.js:591 -#: js/RhythmBlocks.js:671 -#.TRANS: a dotted note is played for 1.5x its value, e.g., 1/8. --> 3/16 -msgid "dot" +#: js/blocks/MediaBlocks.js:45 +#: js/blocks/MediaBlocks.js:56 +msgid "The Right block returns the position of the right of the canvas." msgstr "" -#: js/RhythmBlocks.js:619 -#: js/RhythmActions.js:221 -msgid "An argument of -1 results in a note value of 0." +#: js/blocks/MediaBlocks.js:97 +#.TRANS: left side of the screen +msgid "left (screen)" msgstr "" -#: js/RhythmBlocks.js:661 -msgid "The Dot block extends the duration of a note by 50%." +#: js/blocks/MediaBlocks.js:107 +#: js/blocks/MediaBlocks.js:118 +msgid "The Left block returns the position of the left of the canvas." msgstr "" -#: js/RhythmBlocks.js:663 -msgid "Eg a dotted quarter note will play for 3/8 (1/4 + 1/8) of a beat." +#: js/blocks/MediaBlocks.js:158 +msgid "top (screen)" msgstr "" -#: js/RhythmBlocks.js:765 -#.TRANS: Japanese only: note value block for drum -msgid "note value drum" +#: js/blocks/MediaBlocks.js:168 +#: js/blocks/MediaBlocks.js:179 +msgid "The Top block returns the position of the top of the canvas." msgstr "" -#: js/RhythmBlocks.js:829 -msgid "392 hertz" +#: js/blocks/MediaBlocks.js:219 +msgid "bottom (screen)" msgstr "" -#: js/RhythmBlocks.js:1119 -msgid "The Note block is a container for one or more Pitch blocks." +#: js/blocks/MediaBlocks.js:229 +#: js/blocks/MediaBlocks.js:240 +msgid "The Bottom block returns the position of the bottom of the canvas." msgstr "" -#: js/RhythmBlocks.js:1121 -msgid "The Note block specifies the duration (note value) of its contents." +#: js/blocks/MediaBlocks.js:282 +msgid "width" msgstr "" -#: js/RhythmBlocks.js:1130 -msgid "value2" +#: js/blocks/MediaBlocks.js:291 +msgid "The Width block returns the width of the canvas." msgstr "" -#: js/RhythmBlocks.js:1200 -msgid "define frequency" +#: js/blocks/MediaBlocks.js:325 +msgid "height" msgstr "" -#: js/RhythmBlocks.js:1218 -#: js/temperament.js:650 -#: js/temperament.js:1421 -msgid "octave space" +#: js/blocks/MediaBlocks.js:334 +msgid "The Height block returns the height of the canvas." msgstr "" -#: js/NumberBlocks.js:28 -msgid "The Int block returns an integer." +#: js/blocks/MediaBlocks.js:369 +#.TRANS: stops playback of an audio recording +msgid "stop play" msgstr "" -#: js/NumberBlocks.js:34 -msgid "int" +#: js/blocks/MediaBlocks.js:404 +#.TRANS: Erases the images and text +msgid "erase media" msgstr "" -#: js/NumberBlocks.js:73 -msgid "The Mod block returns the remainder from a division." +#: js/blocks/MediaBlocks.js:409 +msgid "The Erase Media block erases text and images." msgstr "" -#: js/NumberBlocks.js:79 -msgid "mod" +#: js/blocks/MediaBlocks.js:439 +#.TRANS: play an audio recording +msgid "play back" msgstr "" -#: js/NumberBlocks.js:123 -msgid "The Power block calculates a power function." +#: js/blocks/MediaBlocks.js:487 +msgid "speak" msgstr "" -#: js/NumberBlocks.js:178 -msgid "The Sqrt block returns the square root." +#: js/blocks/MediaBlocks.js:495 +msgid "The Speak block outputs to the text-to-speech synthesizer" msgstr "" -#: js/NumberBlocks.js:184 -msgid "sqrt" +#: js/blocks/MediaBlocks.js:546 +msgid "camera" msgstr "" -#: js/NumberBlocks.js:230 -msgid "The Abs block returns the absolute value." +#: js/blocks/MediaBlocks.js:551 +msgid "The Camera block connects a webcam to the Show block." msgstr "" -#: js/NumberBlocks.js:236 -msgid "abs" +#: js/blocks/MediaBlocks.js:574 +msgid "video" msgstr "" -#: js/NumberBlocks.js:277 -msgid "The Distance block returns the distance between two points. For example, between the mouse and the center of the screen." +#: js/blocks/MediaBlocks.js:579 +msgid "The Video block selects video for use with the Show block." msgstr "" -#: js/NumberBlocks.js:283 -#: plugins/rodi.rtp:310 -msgid "distance" +#: js/blocks/MediaBlocks.js:607 +msgid "The Open file block opens a file for use with the Show block." msgstr "" -#: js/NumberBlocks.js:343 -msgid "The Divide block is used to divide." +#: js/blocks/MediaBlocks.js:645 +msgid "stop media" msgstr "" -#: js/NumberBlocks.js:411 -msgid "The Multiply block is used to multiply." +#: js/blocks/MediaBlocks.js:650 +msgid "The Stop media block stops audio or video playback." msgstr "" -#: js/NumberBlocks.js:554 -msgid "The Minus block is used to subtract." +#: js/blocks/MediaBlocks.js:679 +#: js/blocks/PitchBlocks.js:1577 +#: js/widgets/musickeyboard.js:1936 +#: js/widgets/phrasemaker.js:1037 +#.TRANS: a measure of frequency: one cycle per second +msgid "hertz" msgstr "" -#: js/NumberBlocks.js:647 -msgid "The Plus block is used to add." +#: js/blocks/MediaBlocks.js:692 +#: js/blocks/WidgetBlocks.js:182 +#: js/widgets/temperament.js:506 +#: js/widgets/temperament.js:546 +#: js/widgets/temperament.js:610 +#: js/widgets/temperament.js:618 +#: js/widgets/temperament.js:1505 +#: js/widgets/timbre.js:1842 +msgid "frequency" msgstr "" -#: js/NumberBlocks.js:773 -msgid "The One-of block returns one of two choices." +#: js/blocks/MediaBlocks.js:692 +msgid "duration (ms)" msgstr "" -#: js/NumberBlocks.js:780 -#: js/PitchBlocks.js:616 -msgid "one of" +#: js/blocks/MediaBlocks.js:728 +#.TRANS: translate a note into hertz, e.g., A4 -> 440HZ +msgid "note to frequency" msgstr "" -#: js/NumberBlocks.js:782 -msgid "this" +#: js/blocks/MediaBlocks.js:736 +msgid "The To frequency block converts a pitch name and octave to Hertz." msgstr "" -#: js/NumberBlocks.js:782 -msgid "that" +#: js/blocks/MediaBlocks.js:746 +#: js/blocks/PitchBlocks.js:656 +#: js/blocks/PitchBlocks.js:934 +#: js/blocks/PitchBlocks.js:1866 +#.TRANS: name2 is name as in name of pitch (JAPANESE ONLY) +msgid "name2" msgstr "" -#: js/NumberBlocks.js:837 -msgid "The Random block returns a random number." +#: js/blocks/MediaBlocks.js:812 +msgid "The Avatar block is used to change the appearance of the mouse." msgstr "" -#: js/NumberBlocks.js:844 -msgid "random" +#: js/blocks/MediaBlocks.js:819 +msgid "The Avatar block is used to change the appearance of the turtle." msgstr "" -#: js/NumberBlocks.js:846 -msgid "min" +#: js/blocks/MediaBlocks.js:831 +#: js/blocks/MediaBlocks.js:891 +#.TRANS: a media object +msgid "size" msgstr "" -#: js/NumberBlocks.js:846 -msgid "max" +#: js/blocks/MediaBlocks.js:831 +msgid "image" msgstr "" -#: js/NumberBlocks.js:910 -msgid "The Number block holds a number." +#: js/blocks/MediaBlocks.js:880 +msgid "The Show block is used to display text or images on the canvas." msgstr "" -#: js/BoxesBlocks.js:53 -#: js/BoxesBlocks.js:59 -msgid "The Add-to block is used to add to the value stored in a box." +#: js/blocks/MediaBlocks.js:888 +#.TRANS: show1 is show as in display an image or text on the screen. +msgid "show1" msgstr "" -#: js/BoxesBlocks.js:61 -msgid "It can also be used with other blocks such as Color and Pen size." +#: js/blocks/MediaBlocks.js:891 +msgid "obj" msgstr "" -#: js/BoxesBlocks.js:73 -msgid "add" +#: js/blocks/MediaBlocks.js:938 +msgid "The Media block is used to import an image." msgstr "" -#: js/BoxesBlocks.js:75 -#: js/temperament.js:716 -msgid "to" +#: js/blocks/MediaBlocks.js:973 +msgid "The Text block holds a text string." msgstr "" -#: js/BoxesBlocks.js:75 -#: js/BoxesBlocks.js:595 -#: js/HeapBlocks.js:544 -msgid "value1" +#: js/blocks/MeterBlocks.js:34 +#.TRANS: musical meter (time signature), e.g., 4:4 +msgid "current meter" msgstr "" -#: js/BoxesBlocks.js:118 -msgid "Block does not support incrementing." +#: js/blocks/MeterBlocks.js:85 +#.TRANS: number of beats per minute +msgid "beat factor" msgstr "" -#: js/BoxesBlocks.js:152 -msgid "The Add-1-to block adds one to the value stored in a box." +#: js/blocks/MeterBlocks.js:161 +msgid "The Beats per minute block returns the current beats per minute." msgstr "" -#: js/BoxesBlocks.js:163 -msgid "add 1 to" +#: js/blocks/MeterBlocks.js:169 +#: js/widgets/status.js:152 +#.TRANS: number of beats played per minute +msgid "beats per minute2" msgstr "" -#: js/BoxesBlocks.js:211 -msgid "The Subtract-1-from block subtracts one from the value stored in a box." +#: js/blocks/MeterBlocks.js:169 +#: js/blocks/MeterBlocks.js:1056 +#: js/blocks/MeterBlocks.js:1133 +#: js/blocks/MeterBlocks.js:1211 +#.TRANS: sets tempo by defining a beat and beats per minute +msgid "beats per minute" msgstr "" -#: js/BoxesBlocks.js:222 -msgid "subtract 1 from" +#: js/blocks/MeterBlocks.js:233 +#.TRANS: count of current musical measure in meter +msgid "measure count" msgstr "" -#: js/BoxesBlocks.js:270 -#: js/BoxesBlocks.js:387 -msgid "The Box block returns the value stored in a box." +#: js/blocks/MeterBlocks.js:241 +msgid "The Measure count block returns the current measure." msgstr "" -#: js/BoxesBlocks.js:500 -#: js/BoxesBlocks.js:576 -msgid "The Store in block will store a value in a box." +#: js/blocks/MeterBlocks.js:290 +#.TRANS: count of current beat in the meter +msgid "beat count" msgstr "" -#: js/BoxesBlocks.js:652 -msgid "The Box2 block returns the value stored in Box2." +#: js/blocks/MeterBlocks.js:300 +#: js/blocks/MeterBlocks.js:311 +#: js/blocks/MeterBlocks.js:565 +#: js/blocks/MeterBlocks.js:576 +msgid "The Beat count block is the number of the current beat," msgstr "" -#: js/BoxesBlocks.js:703 -msgid "The Store in Box2 block is used to store a value in Box2." +#: js/blocks/MeterBlocks.js:313 +#: js/blocks/MeterBlocks.js:578 +msgid "eg 1, 2, 3, or 4." msgstr "" -#: js/BoxesBlocks.js:715 -msgid "store in box2" +#: js/blocks/MeterBlocks.js:368 +#.TRANS: count the number of notes +msgid "sum note values" msgstr "" -#: js/BoxesBlocks.js:761 -msgid "The Box1 block returns the value stored in Box1." +#: js/blocks/MeterBlocks.js:376 +#: js/blocks/MeterBlocks.js:440 +msgid "The Note counter block can be used to count the number of contained notes." msgstr "" -#: js/BoxesBlocks.js:812 -msgid "The Store in Box1 block is used to store a value in Box1." +#: js/blocks/MeterBlocks.js:432 +#.TRANS: count the number of notes +msgid "note counter" msgstr "" -#: js/BoxesBlocks.js:826 -msgid "store in box1" +#: js/blocks/MeterBlocks.js:496 +#.TRANS: number of whole notes that have been played +msgid "whole notes played" msgstr "" -#: js/HeapBlocks.js:49 -msgid "The Heap block returns the heap." +#: js/blocks/MeterBlocks.js:505 +msgid "The Whole notes played block returns the total number of whole notes played." msgstr "" -#: js/HeapBlocks.js:133 -msgid "show heap" +#: js/blocks/MeterBlocks.js:555 +#: js/turtleactions/DictActions.js:83 +#.TRANS: number of notes that have been played +msgid "notes played" msgstr "" -#: js/HeapBlocks.js:181 -msgid "The Heap-length block returns the length of the heap." +#: js/blocks/MeterBlocks.js:653 +msgid "The No clock block decouples the notes from the master clock." msgstr "" -#: js/HeapBlocks.js:195 -msgid "heap length" +#: js/blocks/MeterBlocks.js:661 +#.TRANS: don't lock notes to master clock +msgid "no clock" msgstr "" -#: js/HeapBlocks.js:254 -msgid "The Heap-empty? block returns true if the heap is empty." +#: js/blocks/MeterBlocks.js:700 +msgid "on weak beat do" msgstr "" -#: js/HeapBlocks.js:268 -#.TRANS: Is the heap empty? -msgid "heap empty?" +#: js/blocks/MeterBlocks.js:705 +msgid "The On-weak-beat block lets you specify actions to take on weak (off) beats." msgstr "" -#: js/HeapBlocks.js:317 -msgid "The Empty-heap block empties the heap." +#: js/blocks/MeterBlocks.js:750 +msgid "on strong beat" msgstr "" -#: js/HeapBlocks.js:327 -#: js/HeapBlocks.js:647 -#.TRANS: empty the heap -msgid "empty heap" +#: js/blocks/MeterBlocks.js:758 +msgid "The On-strong-beat block lets you specify actions to take on specified beats." msgstr "" -#: js/HeapBlocks.js:371 -msgid "The Reverse-heap block reverses the order of the heap." +#: js/blocks/MeterBlocks.js:769 +msgid "beat" msgstr "" -#: js/HeapBlocks.js:384 -#.TRANS: reverse the order of the heap -msgid "reverse heap" +#: js/blocks/MeterBlocks.js:813 +msgid "on every beat do" msgstr "" -#: js/HeapBlocks.js:428 -msgid "The Index-heap block returns a value in the heap at a specified location." +#: js/blocks/MeterBlocks.js:821 +msgid "The On-every-beat block lets you specify actions to take on every beat." msgstr "" -#: js/HeapBlocks.js:443 -#.TRANS: retrieve a value from the heap at index position in the heap -msgid "index heap" +#: js/blocks/MeterBlocks.js:874 +msgid "on every note do" msgstr "" -#: js/HeapBlocks.js:523 -msgid "The Set-heap entry block sets a value in he heap at the specified location." +#: js/blocks/MeterBlocks.js:882 +msgid "The On-every-note block lets you specify actions to take on every note." msgstr "" -#: js/HeapBlocks.js:619 -msgid "The Pop block removes the value at the top of the heap." +#: js/blocks/MeterBlocks.js:928 +#: js/blocks/MeterBlocks.js:999 +#.TRANS: sets tempo by defining a beat and beats per minute +msgid "master beats per minute" msgstr "" -#: js/HeapBlocks.js:633 -#.TRANS: pop a value off the top of the heap -msgid "pop" +#: js/blocks/MeterBlocks.js:952 +#: js/blocks/MeterBlocks.js:1078 +#: js/blocks/MeterBlocks.js:1135 +msgid "bpm" msgstr "" -#: js/HeapBlocks.js:680 -msgid "The Push block adds a value to the top of the heap." +#: js/blocks/MeterBlocks.js:952 +#: js/blocks/MeterBlocks.js:1078 +#: js/blocks/MeterBlocks.js:1135 +msgid "beat value" msgstr "" -#: js/HeapBlocks.js:696 -#.TRANS: push a value onto the top of the heap -msgid "push" +#: js/blocks/MeterBlocks.js:1024 +#: js/blocks/MeterBlocks.js:1167 +#: js/blocks/MeterBlocks.js:1241 +msgid "Beats per minute must be > 30." msgstr "" -#: js/FlowBlocks.js:41 -msgid "The Backward block runs code in reverse order (Musical retrograde)." +#: js/blocks/MeterBlocks.js:1027 +#: js/blocks/MeterBlocks.js:1170 +#: js/blocks/MeterBlocks.js:1244 +msgid "Maximum beats per minute is 1000." msgstr "" -#: js/FlowBlocks.js:48 -msgid "backward" +#: js/blocks/MeterBlocks.js:1068 +msgid "The Beats per minute block sets the number of 1/4 notes per minute." msgstr "" -#: js/FlowBlocks.js:124 -msgid "The Duplicate block will run each block multiple times." +#: js/blocks/MeterBlocks.js:1279 +#.TRANS: anacrusis +msgid "pickup" msgstr "" -#: js/FlowBlocks.js:136 -msgid "duplicate" +#: js/blocks/MeterBlocks.js:1367 +msgid "number of beats" msgstr "" -#: js/FlowBlocks.js:334 -msgid "The Default block is used inside of a Switch to define the default action." +#: js/blocks/NumberBlocks.js:28 +msgid "The Int block returns an integer." msgstr "" -#: js/FlowBlocks.js:342 -msgid "default" +#: js/blocks/NumberBlocks.js:34 +msgid "int" msgstr "" -#: js/FlowBlocks.js:361 -#: js/FlowBlocks.js:418 -msgid "The Case Block must be used inside of a Switch Block." +#: js/blocks/NumberBlocks.js:73 +msgid "The Mod block returns the remainder from a division." msgstr "" -#: js/FlowBlocks.js:389 -msgid "The Case block is used inside of a Switch to define matches." +#: js/blocks/NumberBlocks.js:79 +msgid "mod" msgstr "" -#: js/FlowBlocks.js:397 -msgid "case" +#: js/blocks/NumberBlocks.js:141 +msgid "The Power block calculates a power function." msgstr "" -#: js/FlowBlocks.js:446 -msgid "The Switch block will run the code in the matching Case." +#: js/blocks/NumberBlocks.js:196 +msgid "The Sqrt block returns the square root." msgstr "" -#: js/FlowBlocks.js:454 -msgid "switch" +#: js/blocks/NumberBlocks.js:202 +msgid "sqrt" msgstr "" -#: js/FlowBlocks.js:595 -msgid "The Stop block will stop a loop" +#: js/blocks/NumberBlocks.js:248 +msgid "The Abs block returns the absolute value." msgstr "" -#: js/FlowBlocks.js:597 -msgid "Forever, Repeat, While, or Until." +#: js/blocks/NumberBlocks.js:254 +msgid "abs" msgstr "" -#: js/FlowBlocks.js:604 -#: js/phrasemaker.js:3799 -#: js/musickeyboard.js:629 -#: js/musickeyboard.js:631 -#: js/timbre.js:417 -#: js/timbre.js:419 -#: plugins/rodi.rtp:29 -#: plugins/rodi.rtp:73 -#: plugins/rodi.rtp:413 -msgid "stop" +#: js/blocks/NumberBlocks.js:295 +msgid "The Distance block returns the distance between two points. For example, between the mouse and the center of the screen." msgstr "" -#: js/FlowBlocks.js:653 -msgid "The Waitfor block will wait until the condition is true." +#: js/blocks/NumberBlocks.js:301 +#: plugins/rodi.rtp:310 +msgid "distance" msgstr "" -#: js/FlowBlocks.js:661 -msgid "wait for" +#: js/blocks/NumberBlocks.js:361 +msgid "The Divide block is used to divide." msgstr "" -#: js/FlowBlocks.js:732 -msgid "The Until block will repeat until the condition is true." +#: js/blocks/NumberBlocks.js:441 +msgid "The Multiply block is used to multiply." msgstr "" -#: js/FlowBlocks.js:740 -msgid "until" +#: js/blocks/NumberBlocks.js:612 +msgid "The Minus block is used to subtract." msgstr "" -#: js/FlowBlocks.js:742 -#: js/FlowBlocks.js:822 -msgid "do2" +#: js/blocks/NumberBlocks.js:723 +msgid "The Plus block is used to add." msgstr "" -#: js/FlowBlocks.js:812 -msgid "The While block will repeat while the condition is true." +#: js/blocks/NumberBlocks.js:849 +msgid "The One-of block returns one of two choices." msgstr "" -#: js/FlowBlocks.js:820 -msgid "while" +#: js/blocks/NumberBlocks.js:856 +#: js/blocks/PitchBlocks.js:616 +msgid "one of" msgstr "" -#: js/FlowBlocks.js:903 -#: js/FlowBlocks.js:968 -#: js/FlowBlocks.js:979 -msgid "In this example if the mouse button is pressed a snare drum will play." +#: js/blocks/NumberBlocks.js:858 +msgid "this" msgstr "" -#: js/FlowBlocks.js:925 -#: js/FlowBlocks.js:988 -msgid "if" +#: js/blocks/NumberBlocks.js:858 +msgid "that" msgstr "" -#: js/FlowBlocks.js:927 -#: js/FlowBlocks.js:990 -msgid "then" +#: js/blocks/NumberBlocks.js:913 +msgid "The Random block returns a random number." msgstr "" -#: js/FlowBlocks.js:927 -msgid "else" +#: js/blocks/NumberBlocks.js:920 +msgid "random" msgstr "" -#: js/FlowBlocks.js:1025 -msgid "The Forever block will repeat the contained blocks forever." +#: js/blocks/NumberBlocks.js:922 +msgid "min" msgstr "" -#: js/FlowBlocks.js:1037 -msgid "forever" +#: js/blocks/NumberBlocks.js:922 +msgid "max" msgstr "" -#: js/FlowBlocks.js:1073 -msgid "The Repeat block will repeat the contained blocks." +#: js/blocks/NumberBlocks.js:986 +msgid "The Number block holds a number." msgstr "" -#: js/FlowBlocks.js:1075 -msgid "In this example the note will be played 4 times." +#: js/blocks/OrnamentBlocks.js:32 +msgid "staccato factor" msgstr "" -#: js/FlowBlocks.js:1083 -msgid "repeat" +#: js/blocks/OrnamentBlocks.js:108 +msgid "slur factor" msgstr "" -#: js/FlowBlocks.js:1123 -msgid "duplicate factor" +#: js/blocks/OrnamentBlocks.js:217 +#: js/blocks/OrnamentBlocks.js:309 +#.TRANS: the neighbor refers to a neighboring note, e.g., D is a neighbor of C +msgid "neighbor" msgstr "" -#: js/PitchBlocks.js:39 -#: js/musicutils.js:722 -#: js/musicutils.js:1117 -#: js/synthutils.js:112 -#.TRANS: square wave -msgid "square" +#: js/blocks/OrnamentBlocks.js:293 +msgid "The Neighbor block rapidly switches between neighboring pitches." msgstr "" -#: js/PitchBlocks.js:62 -#: js/ToneBlocks.js:39 -#: js/musicutils.js:723 -#: js/musicutils.js:1118 -#: js/synthutils.js:116 -#.TRANS: triangle wave -msgid "triangle" +#: js/blocks/OrnamentBlocks.js:364 +msgid "glide" msgstr "" -#: js/PitchBlocks.js:85 -#: js/musicutils.js:721 -#: js/musicutils.js:1116 -#: js/synthutils.js:110 -#.TRANS: sine wave -msgid "sine" +#: js/blocks/OrnamentBlocks.js:479 +#: js/blocks/OrnamentBlocks.js:643 +msgid "slur" msgstr "" -#: js/PitchBlocks.js:108 -#: js/musicutils.js:724 -#: js/musicutils.js:1119 -#: js/synthutils.js:114 -#.TRANS: sawtooth wave -msgid "sawtooth" +#: js/blocks/OrnamentBlocks.js:558 +#: js/blocks/OrnamentBlocks.js:710 +#.TRANS: play each note sharply detached from the others +msgid "staccato" msgstr "" -#: js/PitchBlocks.js:141 -#.TRANS: musical transposition (adjustment of pitch up or down) -msgid "transposition" +#: js/blocks/RhythmBlocks.js:182 +#: js/blocks/RhythmBlocks.js:1086 +#: js/blocks/RhythmBlocks.js:1162 +msgid "Note value must be greater than 0." msgstr "" -#: js/PitchBlocks.js:168 -#.TRANS: step down one note in current musical scale -msgid "scalar step down" +#: js/blocks/RhythmBlocks.js:215 +#: js/blocks/RhythmBlocks.js:278 +#: js/blocks/RhythmBlocks.js:350 +#.TRANS: swing is a rhythmic variation that emphasises the offbeat +msgid "swing" msgstr "" -#: js/PitchBlocks.js:172 -msgid "The Scalar step down block returns the number of semi-tones down to the previous note in the current key and mode." +#: js/blocks/RhythmBlocks.js:355 +#.TRANS: the amount to shift to the offbeat note +msgid "swing value" msgstr "" -#: js/PitchBlocks.js:190 -#.TRANS: step up one note in current musical scale -msgid "scalar step up" +#: js/blocks/RhythmBlocks.js:419 +msgid "The Skip notes block will cause notes to be skipped." msgstr "" -#: js/PitchBlocks.js:194 -msgid "The Scalar step up block returns the number of semi-tones up to the next note in the current key and mode." +#: js/blocks/RhythmBlocks.js:427 +#.TRANS: substitute rests on notes being skipped +msgid "skip notes" msgstr "" -#: js/PitchBlocks.js:212 -#.TRANS: the change measured in half-steps between the current pitch and the previous pitch -msgid "change in pitch" +#: js/blocks/RhythmBlocks.js:489 +#.TRANS: speed up note duration by some factor, e.g. convert 1/4 to 1/8 notes by using a factor of 2 +msgid "multiply note value" msgstr "" -#: js/PitchBlocks.js:216 -msgid "The Change in pitch block is the difference (in half steps) between the current pitch being played and the previous pitch played." +#: js/blocks/RhythmBlocks.js:542 +msgid "The Tie block works on pairs of notes, combining them into one note." msgstr "" -#: js/PitchBlocks.js:243 -#.TRANS: the change measured in scale-steps between the current pitch and the previous pitch -msgid "scalar change in pitch" +#: js/blocks/RhythmBlocks.js:550 +#.TRANS: tie notes together into one longer note +msgid "tie" msgstr "" -#: js/PitchBlocks.js:250 -#: js/PitchBlocks.js:432 -#: js/PitchBlocks.js:1629 -#: js/DictActions.js:89 -#: js/temperament.js:477 -#: js/temperament.js:481 -#: js/temperament.js:714 -#.TRANS: convert current note to piano key (1-88) -#.TRANS: a mapping of pitch to the 88 piano keys -msgid "pitch number" +#: js/blocks/RhythmBlocks.js:591 +#: js/blocks/RhythmBlocks.js:671 +#.TRANS: a dotted note is played for 1.5x its value, e.g., 1/8. --> 3/16 +msgid "dot" msgstr "" -#: js/PitchBlocks.js:256 -msgid "The Pitch number block is the value of the pitch of the note currently being played." +#: js/blocks/RhythmBlocks.js:619 +#: js/turtleactions/RhythmActions.js:221 +msgid "An argument of -1 results in a note value of 0." msgstr "" -#: js/PitchBlocks.js:329 -#: js/PitchBlocks.js:433 -#.TRANS: the current pitch expressed in Hertz -msgid "pitch in hertz" +#: js/blocks/RhythmBlocks.js:661 +msgid "The Dot block extends the duration of a note by 50%." msgstr "" -#: js/PitchBlocks.js:334 -msgid "The Pitch in Hertz block is the value in Hertz of the pitch of the note currently being played." +#: js/blocks/RhythmBlocks.js:663 +msgid "Eg a dotted quarter note will play for 3/8 (1/4 + 1/8) of a beat." msgstr "" -#: js/PitchBlocks.js:367 -#: js/DictActions.js:87 -msgid "current pitch" +#: js/blocks/RhythmBlocks.js:765 +#.TRANS: Japanese only: note value block for drum +msgid "note value drum" msgstr "" -#: js/PitchBlocks.js:373 -msgid "The Current Pitch block is used with the Pitch Converter block. In the example above, current pitch, sol 4, is displayed as 392 hertz." +#: js/blocks/RhythmBlocks.js:829 +msgid "392 hertz" msgstr "" -#: js/PitchBlocks.js:410 -msgid "This block converts the pitch value of the last note played into different formats such as hertz, letter name, pitch number, et al." +#: js/blocks/RhythmBlocks.js:1119 +msgid "The Note block is a container for one or more Pitch blocks." msgstr "" -#: js/PitchBlocks.js:434 -msgid "alphabet" +#: js/blocks/RhythmBlocks.js:1121 +msgid "The Note block specifies the duration (note value) of its contents." msgstr "" -#: js/PitchBlocks.js:436 -#.TRANS: Translate as "alphabet class" -msgid "letter class" +#: js/blocks/RhythmBlocks.js:1128 +#: js/blocks/PitchBlocks.js:974 +#: js/blocks/PitchBlocks.js:1007 +#: js/blocks/ProgramBlocks.js:1186 +#: js/blocks/ProgramBlocks.js:1227 +#: js/widgets/status.js:190 +#: js/widgets/temperament.js:464 +#: js/widgets/temperament.js:486 +#: js/widgets/temperament.js:496 +#: js/widgets/temperament.js:617 +#: plugins/rodi.rtp:192 +#.TRANS: a musical note consisting of pitch and duration +msgid "note" msgstr "" -#: js/PitchBlocks.js:437 -msgid "solfege class" +#: js/blocks/RhythmBlocks.js:1130 +msgid "value2" msgstr "" -#: js/PitchBlocks.js:438 -msgid "staff y" +#: js/blocks/RhythmBlocks.js:1200 +msgid "define frequency" msgstr "" -#: js/PitchBlocks.js:439 -msgid "solfege syllable" +#: js/blocks/RhythmBlocks.js:1218 +#: js/widgets/temperament.js:787 +#: js/widgets/temperament.js:1587 +msgid "octave space" msgstr "" -#: js/PitchBlocks.js:440 -msgid "pitch class" +#: js/blocks/SensorsBlocks.js:36 +msgid "The Input block prompts for keyboard input." msgstr "" -#: js/PitchBlocks.js:441 -msgid "scalar class" +#: js/blocks/SensorsBlocks.js:46 +msgid "input" msgstr "" -#: js/PitchBlocks.js:443 -msgid "nth degree" +#: js/blocks/SensorsBlocks.js:64 +msgid "Input a value" msgstr "" -#: js/PitchBlocks.js:444 -msgid "pitch to shade" +#: js/blocks/SensorsBlocks.js:126 +msgid "input value" msgstr "" -#: js/PitchBlocks.js:445 -msgid "pitch to color" +#: js/blocks/SensorsBlocks.js:131 +msgid "The Input-value block stores the input." msgstr "" -#: js/PitchBlocks.js:629 -#: js/musickeyboard.js:565 -#.TRANS: MIDI is a technical standard for electronic music -msgid "MIDI" +#: js/blocks/SensorsBlocks.js:238 +msgid "loudness" msgstr "" -#: js/PitchBlocks.js:642 -#.TRANS: set an offset associated with the numeric piano keyboard mapping -msgid "set pitch number offset" +#: js/blocks/SensorsBlocks.js:245 +msgid "The Loudness block returns the volume detected by the microphone." msgstr "" -#: js/PitchBlocks.js:645 -msgid "The Set pitch number offset block is used to set the offset for mapping pitch numbers to pitch and octave." +#: js/blocks/SensorsBlocks.js:300 +msgid "click" msgstr "" -#: js/PitchBlocks.js:679 -#.TRANS: convert piano key number (1-88) to pitch -msgid "number to pitch" +#: js/blocks/SensorsBlocks.js:306 +msgid "The Click block triggers an event if a mouse has been clicked." msgstr "" -#: js/PitchBlocks.js:682 -msgid "The Number to pitch block will convert a pitch number to a pich name." +#: js/blocks/SensorsBlocks.js:313 +msgid "The Click block triggers an event if a turtle has been clicked." msgstr "" -#: js/PitchBlocks.js:715 -#.TRANS: convert piano key number (1-88) to octave -msgid "number to octave" +#: js/blocks/SensorsBlocks.js:342 +msgid "cursor over" msgstr "" -#: js/PitchBlocks.js:717 -msgid "The Number to octave block will convert a pitch number to an octave." +#: js/blocks/SensorsBlocks.js:387 +msgid "cursor out" msgstr "" -#: js/PitchBlocks.js:726 -msgid "y to pitch" +#: js/blocks/SensorsBlocks.js:433 +msgid "cursor button down" msgstr "" -#: js/PitchBlocks.js:729 -msgid "Y to pitch block will convert a staff y position to corresponding pitch notation." +#: js/blocks/SensorsBlocks.js:477 +msgid "cursor button up" msgstr "" -#: js/PitchBlocks.js:841 -msgid "accidental selector" +#: js/blocks/SensorsBlocks.js:521 +#: js/blocks/PenBlocks.js:48 +#: plugins/rodi.rtp:219 +msgid "blue" msgstr "" -#: js/PitchBlocks.js:844 -msgid "The Accidental selector block is used to choose between double-sharp, sharp, natural, flat, and double-flat." +#: js/blocks/SensorsBlocks.js:577 +#: js/blocks/PenBlocks.js:64 +#: plugins/rodi.rtp:218 +msgid "green" msgstr "" -#: js/PitchBlocks.js:858 -msgid "Pitch can be specified in terms of ni dha pa ma ga re sa." +#: js/blocks/SensorsBlocks.js:633 +#: js/blocks/PenBlocks.js:112 +#: plugins/rodi.rtp:217 +msgid "red" msgstr "" -#: js/PitchBlocks.js:872 -msgid "Pitch can be specified in terms of C D E F G A B." +#: js/blocks/SensorsBlocks.js:638 +msgid "The Get red block returns the red component of the pixel under the mouse." msgstr "" -#: js/PitchBlocks.js:883 -msgid "solfege" +#: js/blocks/SensorsBlocks.js:644 +msgid "The Get red block returns the red component of the pixel under the turtle." msgstr "" -#: js/PitchBlocks.js:886 -msgid "Pitch can be specified in terms of do re mi fa sol la ti." +#: js/blocks/SensorsBlocks.js:685 +#: plugins/rodi.rtp:216 +msgid "pixel color" msgstr "" -#: js/PitchBlocks.js:920 -msgid "The Invert block rotates any contained notes around a target note." +#: js/blocks/SensorsBlocks.js:690 +msgid "The Get pixel block returns the color of the pixel under the mouse." msgstr "" -#: js/PitchBlocks.js:927 -#.TRANS: pitch inversion rotates a pitch around another pitch -msgid "invert" +#: js/blocks/SensorsBlocks.js:696 +msgid "The Get pixel block returns the color of the pixel under the turtle." msgstr "" -#: js/PitchBlocks.js:929 -#: js/PitchBlocks.js:935 -#: js/PitchActions.js:727 -#: js/musicutils.js:726 -#: js/musicutils.js:902 -#.TRANS: invert based on even or odd number or musical scale -#.TRANS: even numbers -msgid "even" +#: js/blocks/SensorsBlocks.js:758 +msgid "time" msgstr "" -#: js/PitchBlocks.js:935 -#: js/PitchActions.js:729 -#: js/musicutils.js:728 -#: js/musicutils.js:903 -#.TRANS: odd numbers -msgid "odd" +#: js/blocks/SensorsBlocks.js:804 +msgid "cursor y" msgstr "" -#: js/PitchBlocks.js:935 -#: js/PitchActions.js:731 -#: js/musicutils.js:729 -#: js/musicutils.js:904 -msgid "scalar" +#: js/blocks/SensorsBlocks.js:809 +msgid "The Cursor Y block returns the vertical position of the mouse." msgstr "" -#: js/PitchBlocks.js:966 -#.TRANS: pitch inversion rotates a pitch around another pitch (odd number) -msgid "invert (odd)" +#: js/blocks/SensorsBlocks.js:845 +msgid "cursor x" msgstr "" -#: js/PitchBlocks.js:999 -#.TRANS: pitch inversion rotates a pitch around another pitch (even number) -msgid "invert (even)" +#: js/blocks/SensorsBlocks.js:850 +msgid "The Cursor X block returns the horizontal position of the mouse." msgstr "" -#: js/PitchBlocks.js:1020 -#.TRANS: register is the octave of the current pitch -msgid "register" +#: js/blocks/SensorsBlocks.js:886 +msgid "mouse button" msgstr "" -#: js/PitchBlocks.js:1024 -msgid "The Register block provides an easy way to modify the register (octave) of the notes that follow it." +#: js/blocks/SensorsBlocks.js:888 +msgid "The Mouse-button block returns True if the mouse button is pressed." msgstr "" -#: js/PitchBlocks.js:1074 -msgid "The Semi-tone transposition block will shift the pitches contained inside Note blocks up (or down) by half steps." +#: js/blocks/SensorsBlocks.js:934 +msgid "to ASCII" msgstr "" -#: js/PitchBlocks.js:1076 -msgid "In the example shown above, sol is shifted up to sol#." +#: js/blocks/SensorsBlocks.js:938 +msgid "The To ASCII block converts numbers to letters." msgstr "" -#: js/PitchBlocks.js:1082 -#.TRANS: adjust the amount of shift (up or down) of a pitch -msgid "semi-tone transpose" +#: js/blocks/SensorsBlocks.js:1005 +msgid "The Keyboard block returns computer keyboard input." msgstr "" -#: js/PitchBlocks.js:1115 -msgid "The Transpose by Ratio block will shift the pitches contained inside Note blocks up (or down) by a ratio" +#: js/blocks/RhythmBlockPaletteBlocks.js:50 +#: js/blocks/RhythmBlockPaletteBlocks.js:233 +#.TRANS: rhythm block +#.TRANS: translate "rhythm1" as rhythm +msgid "rhythm1" msgstr "" -#: js/PitchBlocks.js:1121 -#.TRANS: adjust the amount of shift (up or down) of a pitch -msgid "transpose by ratio" +#: js/blocks/RhythmBlockPaletteBlocks.js:70 +#: js/blocks/RhythmBlockPaletteBlocks.js:252 +#: js/blocks/RhythmBlockPaletteBlocks.js:485 +#: js/blocks/RhythmBlockPaletteBlocks.js:554 +#: js/blocks/RhythmBlockPaletteBlocks.js:875 +msgid "number of notes" msgstr "" -#: js/PitchBlocks.js:1204 -#.TRANS: down sixth means the note is five scale degrees below current note -msgid "down sixth" +#: js/blocks/RhythmBlockPaletteBlocks.js:126 +msgid "polyphonic rhythm" msgstr "" -#: js/PitchBlocks.js:1223 -#.TRANS: down third means the note is two scale degrees below current note -msgid "down third" +#: js/blocks/RhythmBlockPaletteBlocks.js:219 +msgid "The Rhythm block is used to generate rhythm patterns." msgstr "" -#: js/PitchBlocks.js:1242 -#.TRANS: seventh means the note is the six scale degrees above current note -msgid "seventh" +#: js/blocks/RhythmBlockPaletteBlocks.js:280 +msgid "1/64 note" msgstr "" -#: js/PitchBlocks.js:1261 -#.TRANS: sixth means the note is the five scale degrees above current note -msgid "sixth" +#: js/blocks/RhythmBlockPaletteBlocks.js:304 +msgid "1/32 note" msgstr "" -#: js/PitchBlocks.js:1280 -#.TRANS: fifth means the note is the four scale degrees above current note -msgid "fifth" +#: js/blocks/RhythmBlockPaletteBlocks.js:332 +msgid "1/16 note" msgstr "" -#: js/PitchBlocks.js:1300 -#.TRANS: fourth means the note is three scale degrees above current note -msgid "fourth" +#: js/blocks/RhythmBlockPaletteBlocks.js:360 +msgid "eighth note" msgstr "" -#: js/PitchBlocks.js:1319 -#.TRANS: third means the note is two scale degrees above current note -msgid "third" +#: js/blocks/RhythmBlockPaletteBlocks.js:388 +msgid "quarter note" msgstr "" -#: js/PitchBlocks.js:1338 -#.TRANS: second means the note is one scale degree above current note -msgid "second" +#: js/blocks/RhythmBlockPaletteBlocks.js:416 +msgid "half note" msgstr "" -#: js/PitchBlocks.js:1379 -msgid "The Scalar transposition block will shift the pitches contained inside Note blocks up (or down) the scale." +#: js/blocks/RhythmBlockPaletteBlocks.js:444 +msgid "whole note" msgstr "" -#: js/PitchBlocks.js:1381 -msgid "In the example shown above, sol is shifted up to la." +#: js/blocks/RhythmBlockPaletteBlocks.js:482 +#: js/blocks/RhythmBlockPaletteBlocks.js:551 +#: js/blocks/RhythmBlockPaletteBlocks.js:602 +#.TRANS: A tuplet is a note value divided into irregular time values. +msgid "tuplet" msgstr "" -#: js/PitchBlocks.js:1388 -#.TRANS: adjust the amount of shift (up or down) of a pitch by musical scale (scalar) steps -msgid "scalar transpose" +#: js/blocks/RhythmBlockPaletteBlocks.js:768 +msgid "septuplet" msgstr "" -#: js/PitchBlocks.js:1423 -msgid "The Accidental block is used to create sharps and flats" +#: js/blocks/RhythmBlockPaletteBlocks.js:796 +msgid "quintuplet" msgstr "" -#: js/PitchBlocks.js:1430 -#.TRANS: An accidental is a modification to a pitch, e.g., sharp or flat. -msgid "accidental override" +#: js/blocks/RhythmBlockPaletteBlocks.js:824 +msgid "triplet" msgstr "" -#: js/PitchBlocks.js:1543 -msgid "The Hertz block (in combination with a Number block) will play a sound at the specified frequency." +#: js/blocks/RhythmBlockPaletteBlocks.js:851 +msgid "simple tuplet" msgstr "" -#: js/PitchBlocks.js:1633 -msgid "The Pitch Number block will play a pitch associated by its number, e.g. 0 for C and 7 for G." +#: js/blocks/RhythmBlockPaletteBlocks.js:861 +msgid "Tuplets are a collection of notes that get scaled to a specific duration." msgstr "" -#: js/PitchBlocks.js:1665 -#: js/PitchBlocks.js:1707 -#.TRANS: a numeric mapping of the notes in an octave based on the musical mode -#.TRANS: a numeric mapping of the notes in an octave based on the musical mode -msgid "nth modal pitch" +#: js/blocks/DrumBlocks.js:59 +msgid "The Noise name block is used to select a noise synthesizer." msgstr "" -#: js/PitchBlocks.js:1668 -msgid "n^th Modal Pitch takes the pattern of pitches in semitones for a mode and makes each point a degree of the mode," +#: js/blocks/DrumBlocks.js:102 +msgid "The Drum name block is used to select a drum." msgstr "" -#: js/PitchBlocks.js:1670 -msgid "starting from 1 and regardless of tonal framework (i.e. not always 8 notes in the octave)" +#: js/blocks/DrumBlocks.js:146 +msgid "The Effects name block is used to select a sound effect." msgstr "" -#: js/PitchBlocks.js:1711 -msgid "N^th Modal Pitch takes a number as an input as the n^th degree for the given mode. 0 is the first position, 1 is the second, -1 is the note before the first etc." +#: js/blocks/DrumBlocks.js:163 +msgid "noise" msgstr "" -#: js/PitchBlocks.js:1713 -msgid "The pitches change according to the mode specified without any need for respellings." +#: js/blocks/DrumBlocks.js:177 +msgid "The Play noise block will generate white, pink, or brown noise." msgstr "" -#: js/PitchBlocks.js:1752 -msgid "Scale Degree is a common convention in music. Scale Degree offers seven possible positions in the scale (1-7) and can be modified via accidentals." +#: js/blocks/DrumBlocks.js:317 +msgid "Replace every instance of a pitch with a drum sound." msgstr "" -#: js/PitchBlocks.js:1754 -msgid "Scale Degree 1 is always the first pitch in a given scale, regardless of octave." +#: js/blocks/DrumBlocks.js:328 +#.TRANS: map a pitch to a drum sound +msgid "map pitch to drum" msgstr "" -#: js/PitchBlocks.js:1776 -#.TRANS: step some number of notes in current musical scale -msgid "scalar step" +#: js/blocks/DrumBlocks.js:395 +msgid "In the example above, a kick drum sound will be played instead of sol." msgstr "" -#: js/PitchBlocks.js:1781 -msgid "The Scalar Step block (in combination with a Number block) will play the next pitch in a scale," +#: js/blocks/DrumBlocks.js:407 +#.TRANS: set the current drum sound for playback +msgid "set drum" msgstr "" -#: js/PitchBlocks.js:1783 -msgid "eg if the last note played was sol, Scalar Step 1 will play la." +#: js/blocks/DrumBlocks.js:451 +msgid "sound effect" msgstr "" -#: js/PitchBlocks.js:1818 -msgid "The Pitch block specifies the pitch name and octave of a note that together determine the frequency of the note." +#: js/blocks/DrumBlocks.js:489 +msgid "You can use multiple Drum blocks within a Note block." msgstr "" -#: js/GraphicsBlocks.js:46 -#: js/DictActions.js:77 -#: js/DictActions.js:155 -#: js/DictActions.js:189 +#: js/blocks/GraphicsBlocks.js:46 +#: js/turtleactions/DictActions.js:77 +#: js/turtleactions/DictActions.js:144 +#: js/turtleactions/DictActions.js:173 msgid "heading" msgstr "" -#: js/GraphicsBlocks.js:56 +#: js/blocks/GraphicsBlocks.js:56 msgid "The Heading block returns the orientation of the mouse." msgstr "" -#: js/GraphicsBlocks.js:62 +#: js/blocks/GraphicsBlocks.js:62 msgid "The Heading block returns the orientation of the turtle." msgstr "" -#: js/GraphicsBlocks.js:133 +#: js/blocks/GraphicsBlocks.js:133 msgid "The Y block returns the vertical position of the mouse." msgstr "" -#: js/GraphicsBlocks.js:140 +#: js/blocks/GraphicsBlocks.js:140 msgid "The Y block returns the vertical position of the turtle." msgstr "" -#: js/GraphicsBlocks.js:149 +#: js/blocks/GraphicsBlocks.js:149 msgid "y3" msgstr "" -#: js/GraphicsBlocks.js:219 +#: js/blocks/GraphicsBlocks.js:219 msgid "The X block returns the horizontal position of the mouse." msgstr "" -#: js/GraphicsBlocks.js:226 +#: js/blocks/GraphicsBlocks.js:226 msgid "The X block returns the horizontal position of the turtle." msgstr "" -#: js/GraphicsBlocks.js:235 +#: js/blocks/GraphicsBlocks.js:235 msgid "x3" msgstr "" -#: js/GraphicsBlocks.js:295 +#: js/blocks/GraphicsBlocks.js:295 msgid "scroll xy" msgstr "" -#: js/GraphicsBlocks.js:303 +#: js/blocks/GraphicsBlocks.js:303 msgid "The Scroll XY block moves the canvas." msgstr "" -#: js/GraphicsBlocks.js:313 +#: js/blocks/GraphicsBlocks.js:313 msgid "x2" msgstr "" -#: js/GraphicsBlocks.js:313 +#: js/blocks/GraphicsBlocks.js:313 msgid "y2" msgstr "" -#: js/GraphicsBlocks.js:373 -#: js/temperament.js:213 -#: js/temperament.js:241 +#: js/blocks/GraphicsBlocks.js:373 +#: js/widgets/temperament.js:319 +#: js/widgets/temperament.js:347 msgid "clear" msgstr "" -#: js/GraphicsBlocks.js:426 +#: js/blocks/GraphicsBlocks.js:426 msgid "The Control-point 2 block sets the second control point for the Bezier curve." msgstr "" -#: js/GraphicsBlocks.js:433 +#: js/blocks/GraphicsBlocks.js:433 msgid "control point 2" msgstr "" -#: js/GraphicsBlocks.js:436 -#: js/GraphicsBlocks.js:487 -#: js/GraphicsBlocks.js:534 -#: js/GraphicsBlocks.js:750 +#: js/blocks/GraphicsBlocks.js:436 +#: js/blocks/GraphicsBlocks.js:487 +#: js/blocks/GraphicsBlocks.js:534 +#: js/blocks/GraphicsBlocks.js:750 msgid "x1" msgstr "" -#: js/GraphicsBlocks.js:436 -#: js/GraphicsBlocks.js:487 -#: js/GraphicsBlocks.js:534 -#: js/GraphicsBlocks.js:750 +#: js/blocks/GraphicsBlocks.js:436 +#: js/blocks/GraphicsBlocks.js:487 +#: js/blocks/GraphicsBlocks.js:534 +#: js/blocks/GraphicsBlocks.js:750 msgid "y1" msgstr "" -#: js/GraphicsBlocks.js:477 +#: js/blocks/GraphicsBlocks.js:477 msgid "The Control-point 1 block sets the first control point for the Bezier curve." msgstr "" -#: js/GraphicsBlocks.js:484 +#: js/blocks/GraphicsBlocks.js:484 msgid "control point 1" msgstr "" -#: js/GraphicsBlocks.js:527 +#: js/blocks/GraphicsBlocks.js:527 msgid "The Bezier block draws a Bezier curve." msgstr "" -#: js/GraphicsBlocks.js:531 +#: js/blocks/GraphicsBlocks.js:531 msgid "bezier" msgstr "" -#: js/GraphicsBlocks.js:592 +#: js/blocks/GraphicsBlocks.js:592 msgid "The Arc block moves the turtle in an arc." msgstr "" -#: js/GraphicsBlocks.js:600 +#: js/blocks/GraphicsBlocks.js:600 msgid "arc" msgstr "" -#: js/GraphicsBlocks.js:603 +#: js/blocks/GraphicsBlocks.js:603 msgid "angle" msgstr "" -#: js/GraphicsBlocks.js:603 +#: js/blocks/GraphicsBlocks.js:603 msgid "radius" msgstr "" -#: js/GraphicsBlocks.js:620 -#: js/GraphicsBlocks.js:767 -#: js/GraphicsBlocks.js:1010 -#: js/GraphicsBlocks.js:1093 +#: js/blocks/GraphicsBlocks.js:620 +#: js/blocks/GraphicsBlocks.js:767 +#: js/blocks/GraphicsBlocks.js:1010 +#: js/blocks/GraphicsBlocks.js:1093 msgid "Value must be within -5000 to 5000 when Wrap Mode is off." msgstr "" -#: js/GraphicsBlocks.js:622 -#: js/GraphicsBlocks.js:769 -#: js/GraphicsBlocks.js:1012 -#: js/GraphicsBlocks.js:1095 +#: js/blocks/GraphicsBlocks.js:622 +#: js/blocks/GraphicsBlocks.js:769 +#: js/blocks/GraphicsBlocks.js:1012 +#: js/blocks/GraphicsBlocks.js:1095 msgid "Value must be within -20000 to 20000 when Wrap Mode is on." msgstr "" -#: js/GraphicsBlocks.js:660 +#: js/blocks/GraphicsBlocks.js:660 msgid "set heading" msgstr "seth" -#: js/GraphicsBlocks.js:673 +#: js/blocks/GraphicsBlocks.js:673 msgid "The Set heading block sets the heading of the turtle." msgstr "" -#: js/GraphicsBlocks.js:733 +#: js/blocks/GraphicsBlocks.js:733 msgid "The Set XY block moves the mouse to a specific position on the screen." msgstr "" -#: js/GraphicsBlocks.js:739 +#: js/blocks/GraphicsBlocks.js:739 msgid "The Set XY block moves the turtle to a specific position on the screen." msgstr "" -#: js/GraphicsBlocks.js:747 +#: js/blocks/GraphicsBlocks.js:747 msgid "set xy" msgstr "" -#: js/GraphicsBlocks.js:819 +#: js/blocks/GraphicsBlocks.js:819 msgid "The Right block turns the mouse to the right." msgstr "" -#: js/GraphicsBlocks.js:826 +#: js/blocks/GraphicsBlocks.js:826 msgid "The Right block turns the turtle to the right." msgstr "" -#: js/GraphicsBlocks.js:835 +#: js/blocks/GraphicsBlocks.js:835 msgid "right1" msgstr "" -#: js/GraphicsBlocks.js:835 +#: js/blocks/GraphicsBlocks.js:835 #: plugins/rodi.rtp:77 #: plugins/rodi.rtp:340 #: plugins/rodi.rtp:375 msgid "right" msgstr "" -#: js/GraphicsBlocks.js:899 +#: js/blocks/GraphicsBlocks.js:899 msgid "The Left block turns the mouse to the left." msgstr "" -#: js/GraphicsBlocks.js:906 +#: js/blocks/GraphicsBlocks.js:906 msgid "The Left block turns the turtle to the left." msgstr "" -#: js/GraphicsBlocks.js:915 +#: js/blocks/GraphicsBlocks.js:915 msgid "left1" msgstr "" -#: js/GraphicsBlocks.js:915 +#: js/blocks/GraphicsBlocks.js:915 #: plugins/rodi.rtp:79 #: plugins/rodi.rtp:339 #: plugins/rodi.rtp:362 msgid "left" msgstr "" -#: js/GraphicsBlocks.js:967 -#: js/temperament.js:734 -#: js/temperament.js:933 +#: js/blocks/GraphicsBlocks.js:967 +#: js/widgets/temperament.js:875 +#: js/widgets/temperament.js:1078 #: plugins/rodi.rtp:69 #: plugins/rodi.rtp:387 msgid "back" msgstr "" -#: js/GraphicsBlocks.js:976 +#: js/blocks/GraphicsBlocks.js:976 msgid "The Back block moves the mouse backward." msgstr "" -#: js/GraphicsBlocks.js:983 +#: js/blocks/GraphicsBlocks.js:983 msgid "The Back block moves the turtle backward." msgstr "" -#: js/GraphicsBlocks.js:1050 +#: js/blocks/GraphicsBlocks.js:1050 #: plugins/rodi.rtp:71 #: plugins/rodi.rtp:400 msgid "forward" msgstr "" -#: js/GraphicsBlocks.js:1059 +#: js/blocks/GraphicsBlocks.js:1059 msgid "The Forward block moves the mouse forward." msgstr "" -#: js/GraphicsBlocks.js:1066 +#: js/blocks/GraphicsBlocks.js:1066 msgid "The Forward block moves the turtle forward." msgstr "" -#: js/GraphicsBlocks.js:1154 -#: js/GraphicsBlocks.js:1172 +#: js/blocks/GraphicsBlocks.js:1154 +#: js/blocks/GraphicsBlocks.js:1172 msgid "wrap" msgstr "" -#: js/OrnamentBlocks.js:32 -msgid "staccato factor" -msgstr "" - -#: js/OrnamentBlocks.js:108 -msgid "slur factor" -msgstr "" - -#: js/OrnamentBlocks.js:217 -#: js/OrnamentBlocks.js:309 -#.TRANS: the neighbor refers to a neighboring note, e.g., D is a neighbor of C -msgid "neighbor" -msgstr "" - -#: js/OrnamentBlocks.js:293 -msgid "The Neighbor block rapidly switches between neighboring pitches." -msgstr "" - -#: js/OrnamentBlocks.js:364 -msgid "glide" -msgstr "" - -#: js/OrnamentBlocks.js:479 -#: js/OrnamentBlocks.js:643 -msgid "slur" -msgstr "" - -#: js/OrnamentBlocks.js:558 -#: js/OrnamentBlocks.js:710 -#.TRANS: play each note sharply detached from the others -msgid "staccato" -msgstr "" - -#: js/PenBlocks.js:24 +#: js/blocks/PenBlocks.js:30 msgid "purple" msgstr "" -#: js/PenBlocks.js:37 -#: js/SensorsBlocks.js:521 -#: plugins/rodi.rtp:219 -msgid "blue" -msgstr "" - -#: js/PenBlocks.js:50 -#: js/SensorsBlocks.js:577 -#: plugins/rodi.rtp:218 -msgid "green" -msgstr "" - -#: js/PenBlocks.js:63 +#: js/blocks/PenBlocks.js:80 msgid "yellow" msgstr "" -#: js/PenBlocks.js:76 +#: js/blocks/PenBlocks.js:96 #: plugins/nutrition.rtp:164 msgid "orange" msgstr "" -#: js/PenBlocks.js:89 -#: js/SensorsBlocks.js:633 -#: plugins/rodi.rtp:217 -msgid "red" -msgstr "" - -#: js/PenBlocks.js:102 +#: js/blocks/PenBlocks.js:128 msgid "white" msgstr "" -#: js/PenBlocks.js:115 +#: js/blocks/PenBlocks.js:144 msgid "black" msgstr "" -#: js/PenBlocks.js:128 +#: js/blocks/PenBlocks.js:163 msgid "begin fill" msgstr "" -#: js/PenBlocks.js:143 +#: js/blocks/PenBlocks.js:190 msgid "end fill" msgstr "" -#: js/PenBlocks.js:159 -#: js/PenBlocks.js:386 +#: js/blocks/PenBlocks.js:212 +#: js/blocks/PenBlocks.js:560 #.TRANS: set the background color msgid "background" msgstr "" -#: js/PenBlocks.js:206 -#: js/DictActions.js:71 -#: js/DictActions.js:149 -#: js/DictActions.js:186 +#: js/blocks/PenBlocks.js:274 +#: js/turtleactions/DictActions.js:71 +#: js/turtleactions/DictActions.js:138 +#: js/turtleactions/DictActions.js:170 msgid "grey" msgstr "" -#: js/PenBlocks.js:210 +#: js/blocks/PenBlocks.js:282 msgid "The Grey block returns the current pen grey value." msgstr "" -#: js/PenBlocks.js:243 -#: js/DictActions.js:69 -#: js/DictActions.js:147 -#: js/DictActions.js:185 +#: js/blocks/PenBlocks.js:340 +#: js/turtleactions/DictActions.js:69 +#: js/turtleactions/DictActions.js:136 +#: js/turtleactions/DictActions.js:169 msgid "shade" msgstr "" -#: js/PenBlocks.js:247 +#: js/blocks/PenBlocks.js:347 msgid "The Shade block returns the current pen shade value." msgstr "" -#: js/PenBlocks.js:280 -#: js/DictActions.js:67 -#: js/DictActions.js:145 -#: js/DictActions.js:184 +#: js/blocks/PenBlocks.js:405 +#: js/turtleactions/DictActions.js:67 +#: js/turtleactions/DictActions.js:134 +#: js/turtleactions/DictActions.js:168 msgid "color" msgstr "" -#: js/PenBlocks.js:285 +#: js/blocks/PenBlocks.js:415 msgid "The Color block returns the current pen color." msgstr "" -#: js/PenBlocks.js:318 -#: js/DictActions.js:73 -#: js/DictActions.js:151 -#: js/DictActions.js:187 +#: js/blocks/PenBlocks.js:470 +#: js/turtleactions/DictActions.js:73 +#: js/turtleactions/DictActions.js:140 +#: js/turtleactions/DictActions.js:171 msgid "pen size" msgstr "" -#: js/PenBlocks.js:322 +#: js/blocks/PenBlocks.js:474 msgid "The Pen size block returns the current pen size value." msgstr "" -#: js/PenBlocks.js:355 +#: js/blocks/PenBlocks.js:513 msgid "set font" msgstr "" -#: js/PenBlocks.js:358 +#: js/blocks/PenBlocks.js:518 msgid "The Set font block sets the font used by the Show block." msgstr "" -#: js/PenBlocks.js:391 +#: js/blocks/PenBlocks.js:567 msgid "The Background block sets the window background color." msgstr "" -#: js/PenBlocks.js:408 +#: js/blocks/PenBlocks.js:598 msgid "The Hollow line block creates a line with a hollow center." msgstr "" -#: js/PenBlocks.js:415 +#: js/blocks/PenBlocks.js:606 #.TRANS: draw a line logo has a hollow space down its center msgid "hollow line" msgstr "" -#: js/PenBlocks.js:462 +#: js/blocks/PenBlocks.js:675 msgid "The Fill block fills in a shape with a color." msgstr "" -#: js/PenBlocks.js:470 +#: js/blocks/PenBlocks.js:684 #.TRANS: fill in as a solid color msgid "fill" msgstr "" -#: js/PenBlocks.js:527 +#: js/blocks/PenBlocks.js:761 #.TRANS: raise up the pen so logo it does not draw when it is moved msgid "pen up" msgstr "" -#: js/PenBlocks.js:532 +#: js/blocks/PenBlocks.js:768 msgid "The Pen-up block raises the pen so that it does not draw." msgstr "" -#: js/PenBlocks.js:552 +#: js/blocks/PenBlocks.js:802 #.TRANS: put down the pen so logo it draws when it is moved msgid "pen down" msgstr "" -#: js/PenBlocks.js:557 +#: js/blocks/PenBlocks.js:810 msgid "The Pen-down block lowers the pen so that it draws." msgstr "" -#: js/PenBlocks.js:577 +#: js/blocks/PenBlocks.js:844 #.TRANS: set the width of the line drawn by the pen msgid "set pen size" msgstr "" -#: js/PenBlocks.js:583 +#: js/blocks/PenBlocks.js:854 msgid "The Set-pen-size block changes the size of the pen." msgstr "" -#: js/PenBlocks.js:623 +#: js/blocks/PenBlocks.js:913 #.TRANS: set degree of translucence of the pen color msgid "set translucency" msgstr "" -#: js/PenBlocks.js:627 +#: js/blocks/PenBlocks.js:921 msgid "The Set translucency block changes the opacity of the pen." msgstr "" -#: js/PenBlocks.js:668 +#: js/blocks/PenBlocks.js:981 msgid "set hue" msgstr "" -#: js/PenBlocks.js:672 +#: js/blocks/PenBlocks.js:989 msgid "The Set hue block changes the color of the pen." msgstr "" -#: js/PenBlocks.js:711 +#: js/blocks/PenBlocks.js:1047 msgid "set shade" msgstr "" -#: js/PenBlocks.js:717 +#: js/blocks/PenBlocks.js:1057 msgid "The Set-shade block changes the pen color from dark to light." msgstr "" -#: js/PenBlocks.js:757 +#: js/blocks/PenBlocks.js:1111 #.TRANS: set the level of vividness of the pen color msgid "set grey" msgstr "" -#: js/PenBlocks.js:761 +#: js/blocks/PenBlocks.js:1119 msgid "The Set grey block changes the vividness of the pen color." msgstr "" -#: js/PenBlocks.js:800 +#: js/blocks/PenBlocks.js:1172 msgid "set color" msgstr "" -#: js/PenBlocks.js:806 +#: js/blocks/PenBlocks.js:1182 msgid "The Set-color block changes the pen color." msgstr "" -#: js/VolumeBlocks.js:35 -msgid "synth volume" -msgstr "" - -#: js/VolumeBlocks.js:39 -msgid "The Synth volume block returns the current volume of the current synthesizer." -msgstr "" - -#: js/VolumeBlocks.js:47 -#: js/musicutils.js:730 -#: js/synthutils.js:56 -#.TRANS: musical instrument -msgid "piano" -msgstr "" - -#: js/VolumeBlocks.js:105 -msgid "master volume" -msgstr "" - -#: js/VolumeBlocks.js:109 -msgid "The Master volume block returns the master volume." -msgstr "" - -#: js/VolumeBlocks.js:355 -#: js/VolumeBlocks.js:524 -msgid "set synth volume" -msgstr "" - -#: js/VolumeBlocks.js:362 -#: js/VolumeBlocks.js:545 -msgid "synth" -msgstr "" - -#: js/VolumeBlocks.js:403 -#: js/VolumeBlocks.js:577 -#: js/VolumeBlocks.js:740 -#: js/VolumeActions.js:173 -msgid "Setting volume to 0." -msgstr "" - -#: js/VolumeBlocks.js:440 -msgid "Synth not found" -msgstr "" - -#: js/VolumeBlocks.js:494 -msgid "set drum volume" -msgstr "" - -#: js/VolumeBlocks.js:530 -msgid "The Set synth volume block will change the volume of a particular synth," -msgstr "" - -#: js/VolumeBlocks.js:532 -msgid "eg guitar violin snare drum etc." -msgstr "" - -#: js/VolumeBlocks.js:534 -msgid "The default volume is 50." -msgstr "" - -#: js/VolumeBlocks.js:536 -msgid "The range is 0 for silence to 100 for full volume." -msgstr "" - -#: js/VolumeBlocks.js:597 -msgid "set panning" -msgstr "" - -#: js/VolumeBlocks.js:603 -msgid "The Set Panning block sets the panning for all synthesizers." -msgstr "" - -#: js/VolumeBlocks.js:625 -msgid "Warning: Sound is coming out from only the left or right side." -msgstr "" - -#: js/VolumeBlocks.js:647 -#: js/VolumeBlocks.js:695 -msgid "set master volume" -msgstr "" - -#: js/VolumeBlocks.js:653 -msgid "The Set master volume block sets the volume for all synthesizers." -msgstr "" - -#: js/VolumeBlocks.js:784 -msgid "The Set relative volume block changes the volume of the contained notes." -msgstr "" - -#: js/VolumeBlocks.js:791 -msgid "set relative volume" -msgstr "" - -#: js/VolumeBlocks.js:857 -msgid "decrescendo" -msgstr "" - -#: js/VolumeBlocks.js:921 -msgid "crescendo" -msgstr "" - -#: js/ToneBlocks.js:34 -msgid "oscillator" -msgstr "" - -#: js/ToneBlocks.js:44 -#: js/timbre.js:1562 -#.TRANS: Partials refers to the number of sine waves combined into the sound. -msgid "partials" -msgstr "" - -#: js/ToneBlocks.js:76 -msgid "You are adding multiple oscillator blocks." -msgstr "" - -#: js/ToneBlocks.js:144 -#: js/timbre.js:1225 -#.TRANS: a duo synthesizer combines a synth with a sequencer -msgid "duo synth" -msgstr "" - -#: js/ToneBlocks.js:149 -msgid "The Duo synth block is a duo-frequency modulator used to define a timbre." -msgstr "" - -#: js/ToneBlocks.js:157 -#: js/timbre.js:1476 -msgid "vibrato rate" -msgstr "" - -#: js/ToneBlocks.js:157 -msgid "vibrato intensity" -msgstr "" - -#: js/ToneBlocks.js:185 -#: js/timbre.js:1221 -#.TRANS: AM (amplitude modulation) synthesizer -msgid "AM synth" -msgstr "" - -#: js/ToneBlocks.js:189 -msgid "The AM synth block is an amplitude modulator used to define a timbre." -msgstr "" - -#: js/ToneBlocks.js:224 -#: js/timbre.js:1223 -#.TRANS: FM (frequency modulation) synthesizer -msgid "FM synth" -msgstr "" - -#: js/ToneBlocks.js:228 -msgid "The FM synth block is a frequency modulator used to define a timbre." +#: js/blocks/PitchBlocks.js:141 +#.TRANS: musical transposition (adjustment of pitch up or down) +msgid "transposition" msgstr "" -#: js/ToneBlocks.js:262 -msgid "partial" +#: js/blocks/PitchBlocks.js:168 +#.TRANS: step down one note in current musical scale +msgid "scalar step down" msgstr "" -#: js/ToneBlocks.js:265 -msgid "The Partial block is used to specify a weight for a specific partial harmonic." +#: js/blocks/PitchBlocks.js:172 +msgid "The Scalar step down block returns the number of semi-tones down to the previous note in the current key and mode." msgstr "" -#: js/ToneBlocks.js:284 -#.TRANS: partials are weighted components in a harmonic series -msgid "Partial weight must be between 0 and 1." +#: js/blocks/PitchBlocks.js:190 +#.TRANS: step up one note in current musical scale +msgid "scalar step up" msgstr "" -#: js/ToneBlocks.js:297 -#.TRANS: partials are weighted components in a harmonic series -msgid "Partial block should be used inside of a Weighted-partials block." +#: js/blocks/PitchBlocks.js:194 +msgid "The Scalar step up block returns the number of semi-tones up to the next note in the current key and mode." msgstr "" -#: js/ToneBlocks.js:325 -#.TRANS: partials are weighted components in a harmonic series -msgid "weighted partials" +#: js/blocks/PitchBlocks.js:212 +#.TRANS: the change measured in half-steps between the current pitch and the previous pitch +msgid "change in pitch" msgstr "" -#: js/ToneBlocks.js:383 -msgid "The Harmonic block will add harmonics to the contained notes." +#: js/blocks/PitchBlocks.js:216 +msgid "The Change in pitch block is the difference (in half steps) between the current pitch being played and the previous pitch played." msgstr "" -#: js/ToneBlocks.js:390 -#.TRANS: A harmonic is an overtone. -msgid "harmonic" +#: js/blocks/PitchBlocks.js:243 +#.TRANS: the change measured in scale-steps between the current pitch and the previous pitch +msgid "scalar change in pitch" msgstr "" -#: js/ToneBlocks.js:431 -msgid "The Distortion block adds distortion to the pitch." +#: js/blocks/PitchBlocks.js:250 +#: js/blocks/PitchBlocks.js:432 +#: js/blocks/PitchBlocks.js:1667 +#: js/turtleactions/DictActions.js:89 +#: js/widgets/temperament.js:610 +#: js/widgets/temperament.js:614 +#: js/widgets/temperament.js:855 +#.TRANS: convert current note to piano key (1-88) +#.TRANS: a mapping of pitch to the 88 piano keys +msgid "pitch number" msgstr "" -#: js/ToneBlocks.js:438 -#: js/timbre.js:2100 -#.TRANS: distortion is an alteration in the sound -msgid "distortion" +#: js/blocks/PitchBlocks.js:256 +msgid "The Pitch number block is the value of the pitch of the note currently being played." msgstr "" -#: js/ToneBlocks.js:487 -msgid "The Tremolo block adds a wavering effect." +#: js/blocks/PitchBlocks.js:329 +#: js/blocks/PitchBlocks.js:433 +#.TRANS: the current pitch expressed in Hertz +msgid "pitch in hertz" msgstr "" -#: js/ToneBlocks.js:495 -#: js/timbre.js:2092 -#.TRANS: a wavering effect in a musical tone -msgid "tremolo" +#: js/blocks/PitchBlocks.js:334 +msgid "The Pitch in Hertz block is the value in Hertz of the pitch of the note currently being played." msgstr "" -#: js/ToneBlocks.js:500 -#: js/ToneBlocks.js:569 -#: js/ToneBlocks.js:630 -#: js/ToneBlocks.js:689 -#: js/timbre.js:2134 -#: js/timbre.js:2222 -#: js/timbre.js:2317 -#: js/timbre.js:2419 -#.TRANS: rate at which tremolo wavers -msgid "rate" +#: js/blocks/PitchBlocks.js:367 +#: js/turtleactions/DictActions.js:87 +msgid "current pitch" msgstr "" -#: js/ToneBlocks.js:502 -#: js/ToneBlocks.js:630 -#: js/timbre.js:2137 -#: js/timbre.js:2328 -#.TRANS: amplitude of tremolo waver -msgid "depth" +#: js/blocks/PitchBlocks.js:373 +msgid "The Current Pitch block is used with the Pitch Converter block. In the example above, current pitch, sol 4, is displayed as 392 hertz." msgstr "" -#: js/ToneBlocks.js:559 -msgid "The Phaser block adds a sweeping sound." +#: js/blocks/PitchBlocks.js:410 +msgid "This block converts the pitch value of the last note played into different formats such as hertz, letter name, pitch number, et al." msgstr "" -#: js/ToneBlocks.js:566 -#: js/timbre.js:2098 -#.TRANS: alter the phase of the sound -msgid "phaser" +#: js/blocks/PitchBlocks.js:434 +msgid "alphabet" msgstr "" -#: js/ToneBlocks.js:569 -#: js/timbre.js:2422 -msgid "octaves" +#: js/blocks/PitchBlocks.js:436 +#.TRANS: Translate as "alphabet class" +msgid "letter class" msgstr "" -#: js/ToneBlocks.js:569 -#: js/timbre.js:2425 -msgid "base frequency" +#: js/blocks/PitchBlocks.js:437 +msgid "solfege class" msgstr "" -#: js/ToneBlocks.js:619 -msgid "The Chorus block adds a chorus effect." +#: js/blocks/PitchBlocks.js:438 +msgid "staff y" msgstr "" -#: js/ToneBlocks.js:627 -#: js/timbre.js:2096 -#.TRANS: musical effect to simulate a choral sound -msgid "chorus" +#: js/blocks/PitchBlocks.js:439 +msgid "solfege syllable" msgstr "" -#: js/ToneBlocks.js:630 -msgid "delay" +#: js/blocks/PitchBlocks.js:440 +msgid "pitch class" msgstr "" -#: js/ToneBlocks.js:678 -msgid "The Vibrato block adds a rapid, slight variation in pitch." +#: js/blocks/PitchBlocks.js:441 +msgid "scalar class" msgstr "" -#: js/ToneBlocks.js:686 -#: js/timbre.js:2094 -#.TRANS: a rapid, slight variation in pitch -msgid "vibrato" +#: js/blocks/PitchBlocks.js:443 +msgid "nth degree" msgstr "" -#: js/ToneBlocks.js:689 -#: js/timbre.js:2221 -msgid "intensity" +#: js/blocks/PitchBlocks.js:444 +msgid "pitch to shade" msgstr "" -#: js/ToneBlocks.js:733 -#.TRANS: select synthesizer -msgid "set synth" +#: js/blocks/PitchBlocks.js:445 +msgid "pitch to color" msgstr "" -#: js/ToneBlocks.js:804 -msgid "synth name" +#: js/blocks/PitchBlocks.js:629 +#: js/widgets/musickeyboard.js:735 +#.TRANS: MIDI is a technical standard for electronic music +msgid "MIDI" msgstr "" -#: js/ToneBlocks.js:842 -msgid "set default instrument" +#: js/blocks/PitchBlocks.js:642 +#.TRANS: set an offset associated with the numeric piano keyboard mapping +msgid "set pitch number offset" msgstr "" -#: js/ToneBlocks.js:895 -#: js/ToneBlocks.js:943 -#.TRANS: set the characteristics of a custom instrument -msgid "set instrument" +#: js/blocks/PitchBlocks.js:645 +msgid "The Set pitch number offset block is used to set the offset for mapping pitch numbers to pitch and octave." msgstr "" -#: js/ToneBlocks.js:898 -#: js/ToneBlocks.js:926 -#: js/ToneBlocks.js:932 -msgid "The Set instrument block selects a voice for the synthesizer," +#: js/blocks/PitchBlocks.js:679 +#.TRANS: convert piano key number (1-88) to pitch +msgid "number to pitch" msgstr "" -#: js/ToneBlocks.js:900 -#: js/ToneBlocks.js:934 -msgid "eg guitar piano violin or cello." +#: js/blocks/PitchBlocks.js:682 +msgid "The Number to pitch block will convert a pitch number to a pich name." msgstr "" -#: js/ToneBlocks.js:1015 -msgid "Import a sound file to use as an instrument and set its pitch center." +#: js/blocks/PitchBlocks.js:715 +#.TRANS: convert piano key number (1-88) to octave +msgid "number to octave" msgstr "" -#: js/ToneBlocks.js:1110 -msgid "Upload a sound file to connect with the sample block." +#: js/blocks/PitchBlocks.js:717 +msgid "The Number to octave block will convert a pitch number to an octave." msgstr "" -#: js/MeterBlocks.js:34 -#.TRANS: musical meter (time signature), e.g., 4:4 -msgid "current meter" +#: js/blocks/PitchBlocks.js:726 +msgid "y to pitch" msgstr "" -#: js/MeterBlocks.js:85 -#.TRANS: number of beats per minute -msgid "beat factor" +#: js/blocks/PitchBlocks.js:729 +msgid "Y to pitch block will convert a staff y position to corresponding pitch notation." msgstr "" -#: js/MeterBlocks.js:161 -msgid "The Beats per minute block returns the current beats per minute." +#: js/blocks/PitchBlocks.js:841 +msgid "accidental selector" msgstr "" -#: js/MeterBlocks.js:169 -#: js/status.js:152 -#.TRANS: number of beats played per minute -msgid "beats per minute2" +#: js/blocks/PitchBlocks.js:844 +msgid "The Accidental selector block is used to choose between double-sharp, sharp, natural, flat, and double-flat." msgstr "" -#: js/MeterBlocks.js:169 -#: js/MeterBlocks.js:1056 -#: js/MeterBlocks.js:1133 -#: js/MeterBlocks.js:1211 -#.TRANS: sets tempo by defining a beat and beats per minute -msgid "beats per minute" +#: js/blocks/PitchBlocks.js:858 +msgid "Pitch can be specified in terms of ni dha pa ma ga re sa." msgstr "" -#: js/MeterBlocks.js:233 -#.TRANS: count of current musical measure in meter -msgid "measure count" +#: js/blocks/PitchBlocks.js:872 +msgid "Pitch can be specified in terms of C D E F G A B." msgstr "" -#: js/MeterBlocks.js:241 -msgid "The Measure count block returns the current measure." +#: js/blocks/PitchBlocks.js:884 +msgid "solfege" msgstr "" -#: js/MeterBlocks.js:290 -#.TRANS: count of current beat in the meter -msgid "beat count" +#: js/blocks/PitchBlocks.js:887 +msgid "Pitch can be specified in terms of do re mi fa sol la ti." msgstr "" -#: js/MeterBlocks.js:300 -#: js/MeterBlocks.js:311 -#: js/MeterBlocks.js:565 -#: js/MeterBlocks.js:576 -msgid "The Beat count block is the number of the current beat," +#: js/blocks/PitchBlocks.js:922 +msgid "The Invert block rotates any contained notes around a target note." msgstr "" -#: js/MeterBlocks.js:313 -#: js/MeterBlocks.js:578 -msgid "eg 1, 2, 3, or 4." +#: js/blocks/PitchBlocks.js:929 +#.TRANS: pitch inversion rotates a pitch around another pitch +msgid "invert" msgstr "" -#: js/MeterBlocks.js:368 -#.TRANS: count the number of notes -msgid "sum note values" +#: js/blocks/PitchBlocks.js:968 +#.TRANS: pitch inversion rotates a pitch around another pitch (odd number) +msgid "invert (odd)" msgstr "" -#: js/MeterBlocks.js:376 -#: js/MeterBlocks.js:440 -msgid "The Note counter block can be used to count the number of contained notes." +#: js/blocks/PitchBlocks.js:1001 +#.TRANS: pitch inversion rotates a pitch around another pitch (even number) +msgid "invert (even)" msgstr "" -#: js/MeterBlocks.js:432 -#.TRANS: count the number of notes -msgid "note counter" +#: js/blocks/PitchBlocks.js:1022 +#.TRANS: register is the octave of the current pitch +msgid "register" msgstr "" -#: js/MeterBlocks.js:496 -#.TRANS: number of whole notes that have been played -msgid "whole notes played" +#: js/blocks/PitchBlocks.js:1026 +msgid "The Register block provides an easy way to modify the register (octave) of the notes that follow it." msgstr "" -#: js/MeterBlocks.js:505 -msgid "The Whole notes played block returns the total number of whole notes played." +#: js/blocks/PitchBlocks.js:1047 +#.TRANS: cents are units used to specify the ratio between pitches. There are 100 cents between successive notes. +msgid "50 cents" msgstr "" -#: js/MeterBlocks.js:555 -#: js/DictActions.js:83 -#.TRANS: number of notes that have been played -msgid "notes played" +#: js/blocks/PitchBlocks.js:1102 +msgid "The Semi-tone transposition block will shift the pitches contained inside Note blocks up (or down) by half steps." msgstr "" -#: js/MeterBlocks.js:653 -msgid "The No clock block decouples the notes from the master clock." +#: js/blocks/PitchBlocks.js:1104 +msgid "In the example shown above, sol is shifted up to sol#." msgstr "" -#: js/MeterBlocks.js:661 -#.TRANS: don't lock notes to master clock -msgid "no clock" +#: js/blocks/PitchBlocks.js:1110 +#.TRANS: adjust the amount of shift (up or down) of a pitch +msgid "semi-tone transpose" msgstr "" -#: js/MeterBlocks.js:700 -msgid "on weak beat do" +#: js/blocks/PitchBlocks.js:1143 +msgid "The Transpose by Ratio block will shift the pitches contained inside Note blocks up (or down) by a ratio" msgstr "" -#: js/MeterBlocks.js:705 -msgid "The On-weak-beat block lets you specify actions to take on weak (off) beats." +#: js/blocks/PitchBlocks.js:1149 +#.TRANS: adjust the amount of shift (up or down) of a pitch +msgid "transpose by ratio" msgstr "" -#: js/MeterBlocks.js:750 -msgid "on strong beat" +#: js/blocks/PitchBlocks.js:1232 +#.TRANS: down sixth means the note is five scale degrees below current note +msgid "down sixth" msgstr "" -#: js/MeterBlocks.js:758 -msgid "The On-strong-beat block lets you specify actions to take on specified beats." +#: js/blocks/PitchBlocks.js:1251 +#.TRANS: down third means the note is two scale degrees below current note +msgid "down third" msgstr "" -#: js/MeterBlocks.js:769 -msgid "beat" +#: js/blocks/PitchBlocks.js:1270 +#.TRANS: seventh means the note is the six scale degrees above current note +msgid "seventh" msgstr "" -#: js/MeterBlocks.js:813 -msgid "on every beat do" +#: js/blocks/PitchBlocks.js:1289 +#.TRANS: sixth means the note is the five scale degrees above current note +msgid "sixth" msgstr "" -#: js/MeterBlocks.js:821 -msgid "The On-every-beat block lets you specify actions to take on every beat." +#: js/blocks/PitchBlocks.js:1308 +#.TRANS: fifth means the note is the four scale degrees above current note +msgid "fifth" msgstr "" -#: js/MeterBlocks.js:874 -msgid "on every note do" +#: js/blocks/PitchBlocks.js:1328 +#.TRANS: fourth means the note is three scale degrees above current note +msgid "fourth" msgstr "" -#: js/MeterBlocks.js:882 -msgid "The On-every-note block lets you specify actions to take on every note." +#: js/blocks/PitchBlocks.js:1347 +#.TRANS: third means the note is two scale degrees above current note +msgid "third" msgstr "" -#: js/MeterBlocks.js:928 -#: js/MeterBlocks.js:999 -#.TRANS: sets tempo by defining a beat and beats per minute -msgid "master beats per minute" +#: js/blocks/PitchBlocks.js:1366 +#.TRANS: second means the note is one scale degree above current note +msgid "second" msgstr "" -#: js/MeterBlocks.js:952 -#: js/MeterBlocks.js:1078 -#: js/MeterBlocks.js:1135 -msgid "bpm" +#: js/blocks/PitchBlocks.js:1407 +msgid "The Scalar transposition block will shift the pitches contained inside Note blocks up (or down) the scale." msgstr "" -#: js/MeterBlocks.js:952 -#: js/MeterBlocks.js:1078 -#: js/MeterBlocks.js:1135 -msgid "beat value" +#: js/blocks/PitchBlocks.js:1409 +msgid "In the example shown above, sol is shifted up to la." msgstr "" -#: js/MeterBlocks.js:1024 -#: js/MeterBlocks.js:1167 -#: js/MeterBlocks.js:1241 -msgid "Beats per minute must be > 30." +#: js/blocks/PitchBlocks.js:1416 +#.TRANS: adjust the amount of shift (up or down) of a pitch by musical scale (scalar) steps +msgid "scalar transpose" msgstr "" -#: js/MeterBlocks.js:1027 -#: js/MeterBlocks.js:1170 -#: js/MeterBlocks.js:1244 -msgid "Maximum beats per minute is 1000." +#: js/blocks/PitchBlocks.js:1451 +msgid "The Accidental block is used to create sharps and flats" msgstr "" -#: js/MeterBlocks.js:1068 -msgid "The Beats per minute block sets the number of 1/4 notes per minute." +#: js/blocks/PitchBlocks.js:1458 +#.TRANS: An accidental is a modification to a pitch, e.g., sharp or flat. +msgid "accidental override" msgstr "" -#: js/MeterBlocks.js:1279 -#.TRANS: anacrusis -msgid "pickup" +#: js/blocks/PitchBlocks.js:1581 +msgid "The Hertz block (in combination with a Number block) will play a sound at the specified frequency." msgstr "" -#: js/MeterBlocks.js:1367 -msgid "number of beats" +#: js/blocks/PitchBlocks.js:1671 +msgid "The Pitch Number block will play a pitch associated by its number, e.g. 0 for C and 7 for G." msgstr "" -#: js/DictBlocks.js:77 -msgid "show dictionary" +#: js/blocks/PitchBlocks.js:1703 +#: js/blocks/PitchBlocks.js:1745 +#.TRANS: a numeric mapping of the notes in an octave based on the musical mode +#.TRANS: a numeric mapping of the notes in an octave based on the musical mode +msgid "nth modal pitch" msgstr "" -#: js/DictBlocks.js:129 -msgid "The Dictionary block returns a dictionary." +#: js/blocks/PitchBlocks.js:1706 +msgid "n^th Modal Pitch takes the pattern of pitches in semitones for a mode and makes each point a degree of the mode," msgstr "" -#: js/DictBlocks.js:197 -#: js/DictBlocks.js:339 -msgid "The Get-dict block returns a value in the dictionary for a specified key." +#: js/blocks/PitchBlocks.js:1708 +msgid "starting from 1 and regardless of tonal framework (i.e. not always 8 notes in the octave)" msgstr "" -#: js/DictBlocks.js:212 -#: js/DictBlocks.js:354 -#.TRANS: retrieve a value from the dictionary with a given key -msgid "get value" +#: js/blocks/PitchBlocks.js:1749 +msgid "N^th Modal Pitch takes a number as an input as the n^th degree for the given mode. 0 is the first position, 1 is the second, -1 is the note before the first etc." msgstr "" -#: js/DictBlocks.js:215 -#: js/DictBlocks.js:216 -#: js/DictBlocks.js:289 -#: js/DictBlocks.js:290 -#: js/DictBlocks.js:357 -#: js/DictBlocks.js:430 -#: js/DictBlocks.js:431 -msgid "key2" +#: js/blocks/PitchBlocks.js:1751 +msgid "The pitches change according to the mode specified without any need for respellings." msgstr "" -#: js/DictBlocks.js:271 -#: js/DictBlocks.js:411 -msgid "The Set-dict block sets a value in the dictionary for a specified key." +#: js/blocks/PitchBlocks.js:1790 +msgid "Scale Degree is a common convention in music. Scale Degree offers seven possible positions in the scale (1-7) and can be modified via accidentals." msgstr "" -#: js/DictBlocks.js:286 -#: js/DictBlocks.js:427 -#.TRANS: set a value in the dictionary for a given key -msgid "set value" +#: js/blocks/PitchBlocks.js:1792 +msgid "Scale Degree 1 is always the first pitch in a given scale, regardless of octave." msgstr "" -#: js/ExtrasBlocks.js:33 -msgid "fraction" +#: js/blocks/PitchBlocks.js:1814 +#.TRANS: step some number of notes in current musical scale +msgid "scalar step" msgstr "" -#: js/ExtrasBlocks.js:36 -msgid "Convert a float to a fraction" +#: js/blocks/PitchBlocks.js:1819 +msgid "The Scalar Step block (in combination with a Number block) will play the next pitch in a scale," msgstr "" -#: js/ExtrasBlocks.js:93 -msgid "save as ABC" +#: js/blocks/PitchBlocks.js:1821 +msgid "eg if the last note played was sol, Scalar Step 1 will play la." msgstr "" -#: js/ExtrasBlocks.js:96 -#: js/ExtrasBlocks.js:132 -#: js/ExtrasBlocks.js:168 -msgid "title" +#: js/blocks/PitchBlocks.js:1857 +msgid "The Pitch block specifies the pitch name and octave of a note that together determine the frequency of the note." msgstr "" -#: js/ExtrasBlocks.js:129 -msgid "save as Lilypond" +#: js/blocks/ProgramBlocks.js:33 +msgid "The Load-heap-from-app block loads the heap from a web page." msgstr "" -#: js/ExtrasBlocks.js:165 -msgid "save as SVG" +#: js/blocks/ProgramBlocks.js:44 +#.TRANS: load the heap contents from a URL +msgid "load heap from App" msgstr "" -#: js/ExtrasBlocks.js:216 -msgid "no background" +#: js/blocks/ProgramBlocks.js:95 +msgid "Error parsing JSON data:" msgstr "" -#: js/ExtrasBlocks.js:219 -msgid "The No background block eliminates the background from the saved SVG output." +#: js/blocks/ProgramBlocks.js:100 +msgid "404: Page not found" msgstr "" -#: js/ExtrasBlocks.js:247 -msgid "show blocks" +#: js/blocks/ProgramBlocks.js:133 +msgid "The Save-heap-to-app block saves the heap to a web page." msgstr "" -#: js/ExtrasBlocks.js:249 -msgid "The Show blocks block shows the blocks." +#: js/blocks/ProgramBlocks.js:144 +#.TRANS: save the heap contents to a URL +msgid "save heap to App" msgstr "" -#: js/ExtrasBlocks.js:274 -msgid "hide blocks" +#: js/blocks/ProgramBlocks.js:189 +msgid "Cannot find a valid heap for" msgstr "" -#: js/ExtrasBlocks.js:276 -msgid "The Hide blocks block hides the blocks." +#: js/blocks/ProgramBlocks.js:206 +msgid "The Load-heap block loads the heap from a file." msgstr "" -#: js/ExtrasBlocks.js:305 -#: js/ExtrasBlocks.js:335 -msgid "The Space block is used to add space between blocks." +#: js/blocks/ProgramBlocks.js:217 +#.TRANS: load the heap from a file +msgid "load heap" msgstr "" -#: js/ExtrasBlocks.js:373 -msgid "wait" +#: js/blocks/ProgramBlocks.js:270 +msgid "The file you selected does not contain a valid heap." msgstr "" -#: js/ExtrasBlocks.js:376 -msgid "The Wait block pauses the program for a specified number of seconds." +#: js/blocks/ProgramBlocks.js:275 +msgid "The loadHeap block needs a loadFile block." msgstr "" -#: js/ExtrasBlocks.js:430 -#: plugins/facebook.rtp:30 -msgid "comment" +#: js/blocks/ProgramBlocks.js:291 +msgid "The Set-heap block loads the heap." msgstr "" -#: js/ExtrasBlocks.js:466 -msgid "print" +#: js/blocks/ProgramBlocks.js:340 +msgid "The block you selected does not contain a valid heap." msgstr "" -#: js/ExtrasBlocks.js:473 -msgid "The Print block displays text at the top of the screen." +#: js/blocks/ProgramBlocks.js:343 +msgid "The Set heap block needs a heap." msgstr "" -#: js/ExtrasBlocks.js:579 -msgid "display grid" +#: js/blocks/ProgramBlocks.js:360 +msgid "The Load-dictionary block loads a dictionary from a file." msgstr "" -#: js/ExtrasBlocks.js:584 -msgid "The Display Grid Block changes the grid type" +#: js/blocks/ProgramBlocks.js:372 +#.TRANS: load a dictionary from a file +msgid "load dictionary" msgstr "" -#: js/ExtrasBlocks.js:686 -#: js/ExtrasBlocks.js:705 -#: js/ExtrasBlocks.js:728 -#: js/ExtrasBlocks.js:751 -#: js/ExtrasBlocks.js:769 -#: js/ExtrasBlocks.js:788 -#: js/ExtrasBlocks.js:807 -#: js/ExtrasBlocks.js:826 -msgid "unknown" +#: js/blocks/ProgramBlocks.js:390 +#: js/blocks/ProgramBlocks.js:658 +#: js/blocks/ToneBlocks.js:1025 +msgid "file" msgstr "" -#: js/SensorsBlocks.js:36 -msgid "The Input block prompts for keyboard input." +#: js/blocks/ProgramBlocks.js:444 +msgid "The file you selected does not contain a valid dictionary." msgstr "" -#: js/SensorsBlocks.js:46 -msgid "input" +#: js/blocks/ProgramBlocks.js:449 +msgid "The load dictionary block needs a load file block." msgstr "" -#: js/SensorsBlocks.js:64 -msgid "Input a value" +#: js/blocks/ProgramBlocks.js:466 +msgid "The Set-dictionary block loads a dictionary." msgstr "" -#: js/SensorsBlocks.js:126 -msgid "input value" +#: js/blocks/ProgramBlocks.js:477 +#.TRANS: load a dictionary from a JSON +msgid "set dictionary" msgstr "" -#: js/SensorsBlocks.js:131 -msgid "The Input-value block stores the input." +#: js/blocks/ProgramBlocks.js:546 +msgid "The block you selected does not contain a valid dictionary." msgstr "" -#: js/SensorsBlocks.js:238 -msgid "loudness" +#: js/blocks/ProgramBlocks.js:550 +msgid "The set dictionary block needs a dictionary." msgstr "" -#: js/SensorsBlocks.js:245 -msgid "The Loudness block returns the volume detected by the microphone." +#: js/blocks/ProgramBlocks.js:567 +msgid "The Save-heap block saves the heap to a file." msgstr "" -#: js/SensorsBlocks.js:300 -msgid "click" +#: js/blocks/ProgramBlocks.js:578 +#.TRANS: save the heap to a file +msgid "save heap" msgstr "" -#: js/SensorsBlocks.js:306 -msgid "The Click block triggers an event if a mouse has been clicked." +#: js/blocks/ProgramBlocks.js:629 +msgid "The Save-dictionary block saves a dictionary to a file." msgstr "" -#: js/SensorsBlocks.js:313 -msgid "The Click block triggers an event if a turtle has been clicked." +#: js/blocks/ProgramBlocks.js:640 +#.TRANS: save a dictionary to a file +msgid "save dictionary" msgstr "" -#: js/SensorsBlocks.js:342 -msgid "cursor over" +#: js/blocks/ProgramBlocks.js:720 +msgid "The Open palette block opens a palette." msgstr "" -#: js/SensorsBlocks.js:387 -msgid "cursor out" +#: js/blocks/ProgramBlocks.js:727 +msgid "open palette" msgstr "" -#: js/SensorsBlocks.js:433 -msgid "cursor button down" +#: js/blocks/ProgramBlocks.js:785 +msgid "The Delete block block removes a block." msgstr "" -#: js/SensorsBlocks.js:477 -msgid "cursor button up" +#: js/blocks/ProgramBlocks.js:797 +#.TRANS: Move this block to the trash. +msgid "delete block" msgstr "" -#: js/SensorsBlocks.js:638 -msgid "The Get red block returns the red component of the pixel under the mouse." +#: js/blocks/ProgramBlocks.js:861 +msgid "The Move block block moves a block." msgstr "" -#: js/SensorsBlocks.js:644 -msgid "The Get red block returns the red component of the pixel under the turtle." +#: js/blocks/ProgramBlocks.js:869 +#.TRANS: Move the position of a block on the screen. +msgid "move block" msgstr "" -#: js/SensorsBlocks.js:685 -#: plugins/rodi.rtp:216 -msgid "pixel color" +#: js/blocks/ProgramBlocks.js:881 +#: js/blocks/ProgramBlocks.js:1048 +msgid "block number" msgstr "" -#: js/SensorsBlocks.js:690 -msgid "The Get pixel block returns the color of the pixel under the mouse." +#: js/blocks/ProgramBlocks.js:935 +#.TRANS: Run program beginning at this block. +msgid "run block" msgstr "" -#: js/SensorsBlocks.js:696 -msgid "The Get pixel block returns the color of the pixel under the turtle." +#: js/blocks/ProgramBlocks.js:1025 +msgid "The Dock block block connections two blocks." msgstr "" -#: js/SensorsBlocks.js:758 -msgid "time" +#: js/blocks/ProgramBlocks.js:1036 +#.TRANS: We can connect a block to another block. +msgid "connect blocks" msgstr "" -#: js/SensorsBlocks.js:804 -msgid "cursor y" +#: js/blocks/ProgramBlocks.js:1048 +msgid "target block" msgstr "" -#: js/SensorsBlocks.js:809 -msgid "The Cursor Y block returns the vertical position of the mouse." +#: js/blocks/ProgramBlocks.js:1048 +msgid "connection number" msgstr "" -#: js/SensorsBlocks.js:845 -msgid "cursor x" +#: js/blocks/ProgramBlocks.js:1140 +msgid "The Make block block creates a new block." msgstr "" -#: js/SensorsBlocks.js:850 -msgid "The Cursor X block returns the horizontal position of the mouse." +#: js/blocks/ProgramBlocks.js:1152 +#.TRANS: Create a new block +msgid "make block" msgstr "" -#: js/SensorsBlocks.js:886 -msgid "mouse button" +#: js/blocks/ProgramBlocks.js:1285 +msgid "Cannot find block" msgstr "" -#: js/SensorsBlocks.js:888 -msgid "The Mouse-button block returns True if the mouse button is pressed." +#: js/blocks/ProgramBlocks.js:1304 +#: js/blocks/ProgramBlocks.js:1313 +msgid "Warning: block argument type mismatch" msgstr "" -#: js/SensorsBlocks.js:934 -msgid "to ASCII" +#: js/blocks/ProgramBlocks.js:1347 +msgid "The Open project block is used to open a project from a web page." msgstr "" -#: js/SensorsBlocks.js:938 -msgid "The To ASCII block converts numbers to letters." +#: js/blocks/ProgramBlocks.js:1357 +msgid "open project" msgstr "" -#: js/SensorsBlocks.js:1005 -msgid "The Keyboard block returns computer keyboard input." +#: js/blocks/ProgramBlocks.js:1410 +msgid "Please enter a valid URL." msgstr "" -#: js/IntervalsActions.js:216 -msgid "Adding missing pitch number 0." +#: js/blocks/ToneBlocks.js:34 +msgid "oscillator" msgstr "" -#: js/IntervalsActions.js:224 -msgid "Ignoring pitch numbers less than zero or greater than eleven." +#: js/blocks/ToneBlocks.js:42 +#: js/blocks/WidgetBlocks.js:179 +#: js/widgets/timbre.js:1558 +#: js/widgets/timbre.js:1808 +#.TRANS: there are different types (sine, triangle, square...) of oscillators. +#.TRANS: type of filter, e.g., lowpass, highpass, etc. +msgid "type" msgstr "" -#: js/IntervalsActions.js:230 -msgid "Ignoring duplicate pitch numbers." +#: js/blocks/ToneBlocks.js:44 +#: js/widgets/timbre.js:1562 +#.TRANS: Partials refers to the number of sine waves combined into the sound. +msgid "partials" msgstr "" -#: js/PitchActions.js:88 -msgid "The Scalar Step Block must be used inside of a Note Block." +#: js/blocks/ToneBlocks.js:76 +msgid "You are adding multiple oscillator blocks." msgstr "" -#: js/PitchActions.js:107 -msgid "The Scalar Step Block must be preceded by a Pitch Block." +#: js/blocks/ToneBlocks.js:144 +#: js/widgets/timbre.js:1225 +#.TRANS: a duo synthesizer combines a synth with a sequencer +msgid "duo synth" msgstr "" -#: js/DrumActions.js:231 -msgid "Noise Block: Did you mean to use a Note block?" +#: js/blocks/ToneBlocks.js:149 +msgid "The Duo synth block is a duo-frequency modulator used to define a timbre." msgstr "" -#: js/MeterActions.js:101 -#: js/MeterActions.js:139 -msgid "beats per minute must be greater than" +#: js/blocks/ToneBlocks.js:157 +#: js/widgets/timbre.js:1476 +msgid "vibrato rate" msgstr "" -#: js/MeterActions.js:111 -#: js/MeterActions.js:149 -msgid "maximum" +#: js/blocks/ToneBlocks.js:157 +msgid "vibrato intensity" msgstr "" -#: js/MeterActions.js:117 -#: js/MeterActions.js:155 -msgid "beats per minute is" +#: js/blocks/ToneBlocks.js:185 +#: js/widgets/timbre.js:1221 +#.TRANS: AM (amplitude modulation) synthesizer +msgid "AM synth" msgstr "" -#: js/ToneActions.js:134 -msgid "Vibrato intensity must be between 1 and 100." +#: js/blocks/ToneBlocks.js:189 +msgid "The AM synth block is an amplitude modulator used to define a timbre." msgstr "" -#: js/ToneActions.js:139 -msgid "Vibrato rate must be greater than 0." +#: js/blocks/ToneBlocks.js:224 +#: js/widgets/timbre.js:1223 +#.TRANS: FM (frequency modulation) synthesizer +msgid "FM synth" msgstr "" -#: js/ToneActions.js:192 -#: js/ToneActions.js:265 -#.TRANS: Depth is the intesity of the tremolo or chorus effect. -msgid "Depth is out of range." +#: js/blocks/ToneBlocks.js:228 +msgid "The FM synth block is a frequency modulator used to define a timbre." msgstr "" -#: js/ToneActions.js:301 -msgid "Distortion must be from 0 to 100." +#: js/blocks/ToneBlocks.js:262 +msgid "partial" msgstr "" -#: js/ToneActions.js:332 -#.TRANS: partials components in a harmonic series -msgid "Partial must be greater than or equal to 0." +#: js/blocks/ToneBlocks.js:265 +msgid "The Partial block is used to specify a weight for a specific partial harmonic." msgstr "" -#: js/ToneActions.js:378 -#: js/ToneActions.js:417 -#: js/ToneActions.js:456 -#: js/timbre.js:782 -msgid "Unable to use synth due to existing oscillator" +#: js/blocks/ToneBlocks.js:284 +#.TRANS: partials are weighted components in a harmonic series +msgid "Partial weight must be between 0 and 1." msgstr "" -#: js/ToneActions.js:388 -#: js/ToneActions.js:427 -msgid "The input cannot be negative." +#: js/blocks/ToneBlocks.js:297 +#.TRANS: partials are weighted components in a harmonic series +msgid "Partial block should be used inside of a Weighted-partials block." msgstr "" -#: js/DictActions.js:75 -#: js/DictActions.js:153 -#: js/DictActions.js:188 -msgid "font" +#: js/blocks/ToneBlocks.js:325 +#.TRANS: partials are weighted components in a harmonic series +msgid "weighted partials" msgstr "" -#: js/musicutils.js:363 -#: js/musicutils.js:471 -#: js/pitchdrummatrix.js:151 -#: js/musickeyboard.js:2563 -msgid "rest" +#: js/blocks/ToneBlocks.js:383 +msgid "The Harmonic block will add harmonics to the contained notes." msgstr "" -#: js/musicutils.js:565 -#.TRANS: ordinal number. Please keep exactly one space between each number. -msgid "1st 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th" +#: js/blocks/ToneBlocks.js:390 +#.TRANS: A harmonic is an overtone. +msgid "harmonic" msgstr "" -#: js/musicutils.js:629 -#: js/musicutils.js:812 -#: js/musicutils.js:911 -#.TRANS: augmented is a music term related to intervals -msgid "augmented" +#: js/blocks/ToneBlocks.js:431 +msgid "The Distortion block adds distortion to the pitch." msgstr "" -#: js/musicutils.js:631 -#: js/musicutils.js:813 -#: js/musicutils.js:910 -#.TRANS: diminished is a music term related to intervals and mode -msgid "diminished" +#: js/blocks/ToneBlocks.js:438 +#: js/widgets/timbre.js:2100 +#.TRANS: distortion is an alteration in the sound +msgid "distortion" msgstr "" -#: js/musicutils.js:639 -#.TRANS: twelve semi-tone scale for music -msgid "chromatic" +#: js/blocks/ToneBlocks.js:487 +msgid "The Tremolo block adds a wavering effect." msgstr "" -#: js/musicutils.js:640 -msgid "algerian" +#: js/blocks/ToneBlocks.js:495 +#: js/widgets/timbre.js:2092 +#.TRANS: a wavering effect in a musical tone +msgid "tremolo" msgstr "" -#: js/musicutils.js:641 -msgid "spanish" +#: js/blocks/ToneBlocks.js:500 +#: js/blocks/ToneBlocks.js:569 +#: js/blocks/ToneBlocks.js:630 +#: js/blocks/ToneBlocks.js:689 +#: js/widgets/timbre.js:2134 +#: js/widgets/timbre.js:2222 +#: js/widgets/timbre.js:2317 +#: js/widgets/timbre.js:2419 +#.TRANS: rate at which tremolo wavers +msgid "rate" msgstr "" -#: js/musicutils.js:643 -#.TRANS: modal scale in music -msgid "octatonic" +#: js/blocks/ToneBlocks.js:502 +#: js/blocks/ToneBlocks.js:630 +#: js/widgets/timbre.js:2137 +#: js/widgets/timbre.js:2328 +#.TRANS: amplitude of tremolo waver +msgid "depth" msgstr "" -#: js/musicutils.js:645 -#.TRANS: harmonic major scale in music -msgid "harmonic major" +#: js/blocks/ToneBlocks.js:559 +msgid "The Phaser block adds a sweeping sound." msgstr "" -#: js/musicutils.js:647 -#.TRANS: natural minor scales in music -msgid "natural minor" +#: js/blocks/ToneBlocks.js:566 +#: js/widgets/timbre.js:2098 +#.TRANS: alter the phase of the sound +msgid "phaser" msgstr "" -#: js/musicutils.js:649 -#.TRANS: harmonic minor scale in music -msgid "harmonic minor" +#: js/blocks/ToneBlocks.js:569 +#: js/turtleactions/IntervalsActions.js:114 +#: js/widgets/timbre.js:2422 +msgid "octaves" msgstr "" -#: js/musicutils.js:651 -#.TRANS: melodic minor scale in music -msgid "melodic minor" +#: js/blocks/ToneBlocks.js:569 +#: js/widgets/timbre.js:2425 +msgid "base frequency" msgstr "" -#: js/musicutils.js:655 -#.TRANS: modal scale for music -msgid "dorian" +#: js/blocks/ToneBlocks.js:619 +msgid "The Chorus block adds a chorus effect." msgstr "" -#: js/musicutils.js:657 -#.TRANS: modal scale for music -msgid "phrygian" +#: js/blocks/ToneBlocks.js:627 +#: js/widgets/timbre.js:2096 +#.TRANS: musical effect to simulate a choral sound +msgid "chorus" msgstr "" -#: js/musicutils.js:659 -#.TRANS: modal scale for music -msgid "lydian" +#: js/blocks/ToneBlocks.js:630 +msgid "delay" msgstr "" -#: js/musicutils.js:661 -#.TRANS: modal scale for music -msgid "mixolydian" +#: js/blocks/ToneBlocks.js:678 +msgid "The Vibrato block adds a rapid, slight variation in pitch." msgstr "" -#: js/musicutils.js:665 -#.TRANS: modal scale for music -msgid "locrian" +#: js/blocks/ToneBlocks.js:686 +#: js/widgets/timbre.js:2094 +#.TRANS: a rapid, slight variation in pitch +msgid "vibrato" msgstr "" -#: js/musicutils.js:667 -#.TRANS: minor jazz scale for music -msgid "jazz minor" +#: js/blocks/ToneBlocks.js:689 +#: js/widgets/timbre.js:2221 +msgid "intensity" msgstr "" -#: js/musicutils.js:669 -#.TRANS: bebop scale for music -msgid "bebop" +#: js/blocks/ToneBlocks.js:733 +#.TRANS: select synthesizer +msgid "set synth" msgstr "" -#: js/musicutils.js:670 -msgid "arabic" +#: js/blocks/ToneBlocks.js:804 +msgid "synth name" msgstr "" -#: js/musicutils.js:671 -msgid "byzantine" +#: js/blocks/ToneBlocks.js:842 +msgid "set default instrument" msgstr "" -#: js/musicutils.js:673 -#.TRANS: musical scale for music by Verdi -msgid "enigmatic" +#: js/blocks/ToneBlocks.js:895 +#: js/blocks/ToneBlocks.js:943 +#.TRANS: set the characteristics of a custom instrument +msgid "set instrument" msgstr "" -#: js/musicutils.js:674 -msgid "ethiopian" +#: js/blocks/ToneBlocks.js:898 +#: js/blocks/ToneBlocks.js:926 +#: js/blocks/ToneBlocks.js:932 +msgid "The Set instrument block selects a voice for the synthesizer," msgstr "" -#: js/musicutils.js:676 -#.TRANS: Ethiopic scale for music -msgid "geez" +#: js/blocks/ToneBlocks.js:900 +#: js/blocks/ToneBlocks.js:934 +msgid "eg guitar piano violin or cello." msgstr "" -#: js/musicutils.js:677 -msgid "hindu" +#: js/blocks/ToneBlocks.js:1015 +msgid "Import a sound file to use as an instrument and set its pitch center." msgstr "" -#: js/musicutils.js:678 -msgid "hungarian" +#: js/blocks/ToneBlocks.js:1110 +msgid "Upload a sound file to connect with the sample block." msgstr "" -#: js/musicutils.js:680 -#.TRANS: minor Romanian scale for music -msgid "romanian minor" +#: js/blocks/VolumeBlocks.js:35 +msgid "synth volume" msgstr "" -#: js/musicutils.js:681 -msgid "spanish gypsy" +#: js/blocks/VolumeBlocks.js:39 +msgid "The Synth volume block returns the current volume of the current synthesizer." msgstr "" -#: js/musicutils.js:683 -#.TRANS: musical scale for Mid-Eastern music -msgid "maqam" +#: js/blocks/VolumeBlocks.js:105 +msgid "master volume" msgstr "" -#: js/musicutils.js:685 -#.TRANS: minor blues scale for music -msgid "minor blues" +#: js/blocks/VolumeBlocks.js:109 +msgid "The Master volume block returns the master volume." msgstr "" -#: js/musicutils.js:687 -#.TRANS: major blues scale for music -msgid "major blues" +#: js/blocks/VolumeBlocks.js:355 +#: js/blocks/VolumeBlocks.js:524 +msgid "set synth volume" msgstr "" -#: js/musicutils.js:688 -msgid "whole tone" +#: js/blocks/VolumeBlocks.js:362 +#: js/blocks/VolumeBlocks.js:545 +msgid "synth" msgstr "" -#: js/musicutils.js:690 -#.TRANS: pentatonic is a general term that means "five note scale". This scale is typically known as "minor pentatonic" -msgid "minor pentatonic" +#: js/blocks/VolumeBlocks.js:403 +#: js/blocks/VolumeBlocks.js:577 +#: js/blocks/VolumeBlocks.js:740 +#: js/turtleactions/VolumeActions.js:173 +msgid "Setting volume to 0." msgstr "" -#: js/musicutils.js:692 -#.TRANS: pentatonic is a general term that means "five note scale". This scale is typically known as "major pentatonic" -msgid "major pentatonic" +#: js/blocks/VolumeBlocks.js:440 +msgid "Synth not found" msgstr "" -#: js/musicutils.js:693 -msgid "chinese" +#: js/blocks/VolumeBlocks.js:494 +msgid "set drum volume" msgstr "" -#: js/musicutils.js:694 -msgid "egyptian" +#: js/blocks/VolumeBlocks.js:530 +msgid "The Set synth volume block will change the volume of a particular synth," msgstr "" -#: js/musicutils.js:696 -#.TRANS: https://en.wikipedia.org/wiki/Hirajoshi_scale NOTE: There are three different versions of this scale -msgid "hirajoshi" +#: js/blocks/VolumeBlocks.js:532 +msgid "eg guitar violin snare drum etc." msgstr "" -#: js/musicutils.js:697 -msgid "Japan" +#: js/blocks/VolumeBlocks.js:534 +msgid "The default volume is 50." msgstr "" -#: js/musicutils.js:699 -#.TRANS: https://en.wikipedia.org/wiki/In_scale and https://en.wikipedia.org/wiki/Sakura_Sakura -msgid "in" +#: js/blocks/VolumeBlocks.js:536 +msgid "The range is 0 for silence to 100 for full volume." msgstr "" -#: js/musicutils.js:701 -#.TRANS: https://en.wikipedia.org/wiki/Miny%C5%8D_scale -msgid "minyo" +#: js/blocks/VolumeBlocks.js:597 +msgid "set panning" msgstr "" -#: js/musicutils.js:703 -#.TRANS: Italian mathematician -msgid "fibonacci" +#: js/blocks/VolumeBlocks.js:603 +msgid "The Set Panning block sets the panning for all synthesizers." msgstr "" -#: js/musicutils.js:708 -#: js/musicutils.js:1106 -#.TRANS: lowpass filter -msgid "lowpass" +#: js/blocks/VolumeBlocks.js:625 +msgid "Warning: Sound is coming out from only the left or right side." msgstr "" -#: js/musicutils.js:710 -#: js/musicutils.js:1107 -#.TRANS: bandpass filter -msgid "bandpass" +#: js/blocks/VolumeBlocks.js:647 +#: js/blocks/VolumeBlocks.js:695 +msgid "set master volume" msgstr "" -#: js/musicutils.js:712 -#: js/musicutils.js:1108 -#.TRANS: high-shelf filter -msgid "highshelf" +#: js/blocks/VolumeBlocks.js:653 +msgid "The Set master volume block sets the volume for all synthesizers." msgstr "" -#: js/musicutils.js:714 -#: js/musicutils.js:1109 -#.TRANS: low-shelf filter -msgid "lowshelf" +#: js/blocks/VolumeBlocks.js:784 +msgid "The Set relative volume block changes the volume of the contained notes." msgstr "" -#: js/musicutils.js:716 -#: js/musicutils.js:1110 -#.TRANS: notch-shelf filter -msgid "notch" +#: js/blocks/VolumeBlocks.js:791 +msgid "set relative volume" msgstr "" -#: js/musicutils.js:718 -#: js/musicutils.js:1111 -#.TRANS: all-pass filter -msgid "allpass" +#: js/blocks/VolumeBlocks.js:857 +msgid "decrescendo" msgstr "" -#: js/musicutils.js:720 -#: js/musicutils.js:1112 -#.TRANS: peaking filter -msgid "peaking" +#: js/blocks/VolumeBlocks.js:921 +msgid "crescendo" msgstr "" -#: js/musicutils.js:731 -#: js/synthutils.js:58 -#.TRANS: musical instrument -msgid "violin" +#: js/blocks/WidgetBlocks.js:81 +#.TRANS: sound envelope (ADSR) +msgid "envelope" msgstr "" -#: js/musicutils.js:732 -#: js/synthutils.js:60 -#.TRANS: viola musical instrument -msgid "viola" +#: js/blocks/WidgetBlocks.js:89 +#.TRANS: Attack time is the time taken for initial run-up of level from nil to peak, beginning when the key is first pressed. +msgid "attack" msgstr "" -#: js/musicutils.js:733 -#: js/synthutils.js:98 -#.TRANS: xylophone musical instrument -msgid "xylophone" +#: js/blocks/WidgetBlocks.js:91 +#.TRANS: Decay time is the time taken for the subsequent run down from the attack level to the designated sustain level. +msgid "decay" msgstr "" -#: js/musicutils.js:734 -#: js/synthutils.js:120 -#.TRANS: vibraphone musical instrument -msgid "vibraphone" +#: js/blocks/WidgetBlocks.js:93 +#.TRANS: Sustain level is the level during the main sequence of the sound's duration, until the key is released. +msgid "sustain" msgstr "" -#: js/musicutils.js:735 -#: js/synthutils.js:62 -#.TRANS: musical instrument -msgid "cello" +#: js/blocks/WidgetBlocks.js:95 +#.TRANS: Release time is the time taken for the level to decay from the sustain level to zero after the key is released. +msgid "release" msgstr "" -#: js/musicutils.js:737 -#: js/synthutils.js:66 -#.TRANS: viola musical instrument -msgid "double bass" +#: js/blocks/WidgetBlocks.js:113 +msgid "Attack value should be from 0 to 100." msgstr "" -#: js/musicutils.js:738 -#: js/synthutils.js:68 -#: js/rhythmruler.js:2119 -#.TRANS: musical instrument -msgid "guitar" +#: js/blocks/WidgetBlocks.js:116 +msgid "Decay value should be from 0 to 100." msgstr "" -#: js/musicutils.js:739 -#: js/synthutils.js:70 -#.TRANS: musical instrument -msgid "acoustic guitar" +#: js/blocks/WidgetBlocks.js:119 +msgid "Sustain value should be from 0 to 100." msgstr "" -#: js/musicutils.js:740 -#: js/synthutils.js:72 -#.TRANS: musical instrument -msgid "flute" +#: js/blocks/WidgetBlocks.js:122 +msgid "Release value should be from 0-100." msgstr "" -#: js/musicutils.js:741 -#: js/synthutils.js:74 -#.TRANS: musical instrument -msgid "clarinet" +#: js/blocks/WidgetBlocks.js:140 +msgid "You are adding multiple envelope blocks." msgstr "" -#: js/musicutils.js:742 -#: js/synthutils.js:76 -#.TRANS: musical instrument -msgid "saxophone" +#: js/blocks/WidgetBlocks.js:171 +#.TRANS: a filter removes some unwanted components from a signal +msgid "filter" msgstr "" -#: js/musicutils.js:743 -#: js/synthutils.js:78 -#.TRANS: musical instrument -msgid "tuba" +#: js/blocks/WidgetBlocks.js:181 +#: js/widgets/timbre.js:1818 +#.TRANS: rolloff is the steepness of a change in frequency. +msgid "rolloff" msgstr "" -#: js/musicutils.js:744 -#: js/synthutils.js:80 -#.TRANS: musical instrument -msgid "trumpet" +#: js/blocks/WidgetBlocks.js:213 +#.TRANS: rolloff is the steepness of a change in frequency. +msgid "Rolloff value should be either -12, -24, -48, or -96 decibels/octave." msgstr "" -#: js/musicutils.js:745 -#: js/synthutils.js:82 -#.TRANS: musical instrument -msgid "oboe" +#: js/blocks/WidgetBlocks.js:252 +msgid "The Temperament tool is used to define custom tuning." msgstr "" -#: js/musicutils.js:746 -#: js/synthutils.js:84 -#.TRANS: musical instrument -msgid "trombone" +#: js/blocks/WidgetBlocks.js:332 +#: js/blocks/WidgetBlocks.js:1573 +#: js/widgets/sampler.js:547 +msgid "Upload a sample and adjust its pitch center." msgstr "" -#: js/musicutils.js:747 -#: js/synthutils.js:100 -#.TRANS: polytone synthesizer -msgid "electronic synth" +#: js/blocks/WidgetBlocks.js:339 +#.TRANS: the speed at music is should be played. +msgid "sampler" msgstr "" -#: js/musicutils.js:748 -#: js/synthutils.js:102 -#.TRANS: simple monotone synthesizer -msgid "simple 1" +#: js/blocks/WidgetBlocks.js:517 +msgid "The Meter block opens a tool to select strong beats for the meter." msgstr "" -#: js/musicutils.js:749 -msgid "simple 2" +#: js/blocks/WidgetBlocks.js:573 +msgid "The oscilloscope block opens a tool to visualize waveforms." msgstr "" -#: js/musicutils.js:750 -msgid "simple 3" +#: js/blocks/WidgetBlocks.js:578 +msgid "oscilloscope" msgstr "" -#: js/musicutils.js:751 -msgid "simple 4" +#: js/blocks/WidgetBlocks.js:645 +msgid "The Custom mode block opens a tool to explore musical mode (the spacing of the notes in a scale)." msgstr "" -#: js/musicutils.js:753 -#: js/synthutils.js:49 -#.TRANS: brown noise synthesizer -msgid "brown noise" +#: js/blocks/WidgetBlocks.js:651 +#.TRANS: musical mode is the pattern of half-steps in an octave, e.g., Major or Minor modes +msgid "custom mode" msgstr "" -#: js/musicutils.js:754 -#: js/synthutils.js:51 -#.TRANS: pink noise synthesizer -msgid "pink noise" +#: js/blocks/WidgetBlocks.js:700 +msgid "The Tempo block opens a metronome to visualize the beat." msgstr "" -#: js/musicutils.js:756 -#: js/synthutils.js:127 -#: js/rhythmruler.js:1670 -#: js/rhythmruler.js:1928 -#.TRANS: musical instrument -msgid "snare drum" +#: js/blocks/WidgetBlocks.js:762 +msgid "The Arpeggio Widget is used to compose chord sequences." msgstr "" -#: js/musicutils.js:757 -#: js/synthutils.js:129 -#.TRANS: musical instrument -msgid "kick drum" +#: js/blocks/WidgetBlocks.js:837 +msgid "The Pitch drum matrix is used to map pitches to drum sounds." msgstr "" -#: js/musicutils.js:758 -#: js/synthutils.js:131 -#.TRANS: musical instrument -msgid "tom tom" +#: js/blocks/WidgetBlocks.js:842 +#.TRANS: makes a mapping between pitches and drum sounds +msgid "pitch-drum mapper" msgstr "" -#: js/musicutils.js:759 -#: js/synthutils.js:133 -#.TRANS: musical instrument -msgid "floor tom" +#: js/blocks/WidgetBlocks.js:891 +msgid "You must have at least one pitch block and one drum block in the matrix." msgstr "" -#: js/musicutils.js:760 -#: js/synthutils.js:135 -#.TRANS: musical instrument -msgid "bass drum" +#: js/blocks/WidgetBlocks.js:920 +msgid "The Pitch slider tool to is used to generate pitches at selected frequencies." msgstr "" -#: js/musicutils.js:761 -#: js/synthutils.js:137 -#.TRANS: a drum made from an inverted cup -msgid "cup drum" +#: js/blocks/WidgetBlocks.js:925 +#.TRANS: widget to generate pitches using a slider +msgid "pitch slider" msgstr "" -#: js/musicutils.js:762 -#: js/synthutils.js:139 -#.TRANS: musical instrument -msgid "darbuka drum" +#: js/blocks/WidgetBlocks.js:977 +msgid "chromatic keyboard" msgstr "" -#: js/musicutils.js:763 -#: js/synthutils.js:143 -#.TRANS: musical instrument -msgid "hi hat" +#: js/blocks/WidgetBlocks.js:1011 +#: js/blocks/WidgetBlocks.js:1077 +#.TRANS: widget to generate pitches using a slider +msgid "music keyboard" msgstr "" -#: js/musicutils.js:764 -#: js/synthutils.js:145 -#.TRANS: a small metal bell -msgid "ride bell" +#: js/blocks/WidgetBlocks.js:1062 +#: js/blocks/WidgetBlocks.js:1069 +msgid "The Music keyboard block opens a piano keyboard that can be used to create notes." msgstr "" -#: js/musicutils.js:765 -#: js/synthutils.js:147 -#.TRANS: musical instrument -msgid "cow bell" +#: js/blocks/WidgetBlocks.js:1128 +msgid "The Pitch staircase tool to is used to generate pitches from a given ratio." msgstr "" -#: js/musicutils.js:766 -msgid "japanese drum" +#: js/blocks/WidgetBlocks.js:1135 +#.TRANS: generate a progressive sequence of pitches +msgid "pitch staircase" msgstr "" -#: js/musicutils.js:767 -#: js/synthutils.js:153 -#.TRANS: musical instrument -msgid "japanese bell" +#: js/blocks/WidgetBlocks.js:1222 +msgid "The Rhythm Maker block opens a tool to create drum machines." msgstr "" -#: js/musicutils.js:768 -#: js/synthutils.js:149 -#.TRANS: musical instrument -msgid "triangle bell" +#: js/blocks/WidgetBlocks.js:1291 +msgid "G major scale" msgstr "" -#: js/musicutils.js:769 -#: js/synthutils.js:151 -#.TRANS: musical instrument -msgid "finger cymbals" +#: js/blocks/WidgetBlocks.js:1326 +msgid "C major scale" msgstr "" -#: js/musicutils.js:770 -#: js/synthutils.js:155 -#.TRANS: a musically tuned set of bells -msgid "chime" +#: js/blocks/WidgetBlocks.js:1366 +msgid "The Phrase Maker block opens a tool to create musical phrases." msgstr "" -#: js/musicutils.js:771 -#: js/synthutils.js:157 -#.TRANS: a musical instrument -msgid "gong" +#: js/blocks/WidgetBlocks.js:1373 +#.TRANS: assigns pitch to a sequence of beats to generate a melody +msgid "phrase maker" msgstr "" -#: js/musicutils.js:772 -#: js/synthutils.js:159 -#.TRANS: sound effect -msgid "clang" +#: js/blocks/WidgetBlocks.js:1444 +msgid "You must have at least one pitch block and one rhythm block in the matrix." msgstr "" -#: js/musicutils.js:773 -#: js/synthutils.js:161 -#.TRANS: sound effect -msgid "crash" +#: js/blocks/WidgetBlocks.js:1503 +msgid "The Status block opens a tool for inspecting the status of Music Blocks as it is running." msgstr "" -#: js/musicutils.js:774 -#: js/synthutils.js:163 -#.TRANS: sound effect -msgid "bottle" +#: js/blocks/WidgetBlocks.js:1580 +#.TRANS: AI-generated music +msgid "aimusic" msgstr "" -#: js/musicutils.js:775 -#: js/synthutils.js:165 -#.TRANS: sound effect -msgid "clap" +#: js/turtleactions/MeterActions.js:101 +#: js/turtleactions/MeterActions.js:139 +msgid "beats per minute must be greater than" msgstr "" -#: js/musicutils.js:776 -#: js/synthutils.js:167 -#.TRANS: sound effect -msgid "slap" +#: js/turtleactions/MeterActions.js:111 +#: js/turtleactions/MeterActions.js:149 +msgid "maximum" msgstr "" -#: js/musicutils.js:777 -#: js/synthutils.js:169 -#.TRANS: sound effect -msgid "splash" +#: js/turtleactions/MeterActions.js:117 +#: js/turtleactions/MeterActions.js:155 +msgid "beats per minute is" msgstr "" -#: js/musicutils.js:778 -#: js/synthutils.js:171 -#.TRANS: sound effect -msgid "bubbles" +#: js/turtleactions/DictActions.js:75 +#: js/turtleactions/DictActions.js:142 +#: js/turtleactions/DictActions.js:172 +msgid "font" msgstr "" -#: js/musicutils.js:779 -#: js/synthutils.js:173 -#.TRANS: sound effect -msgid "raindrop" +#: js/turtleactions/DictActions.js:255 +msgid "Dictionary with this name does not exist" msgstr "" -#: js/musicutils.js:780 -#: js/synthutils.js:175 -#.TRANS: animal sound effect -msgid "cat" +#: js/turtleactions/DictActions.js:259 +msgid "Key with this name does not exist in " msgstr "" -#: js/musicutils.js:781 -#: js/synthutils.js:177 -#.TRANS: animal sound effect -msgid "cricket" +#: js/turtleactions/DrumActions.js:227 +msgid "Noise Block: Did you mean to use a Note block?" msgstr "" -#: js/musicutils.js:782 -#: js/synthutils.js:179 -#.TRANS: animal sound effect -msgid "dog" +#: js/turtleactions/IntervalsActions.js:113 +msgid "one" msgstr "" -#: js/musicutils.js:784 -#: js/synthutils.js:86 -#.TRANS: musical instrument -msgid "banjo" +#: js/turtleactions/IntervalsActions.js:113 +msgid "two" msgstr "" -#: js/musicutils.js:785 -#: js/synthutils.js:88 -#.TRANS: musical instrument -msgid "koto" +#: js/turtleactions/IntervalsActions.js:113 +msgid "three" msgstr "" -#: js/musicutils.js:786 -#: js/synthutils.js:90 -#.TRANS: musical instrument -msgid "dulcimer" +#: js/turtleactions/IntervalsActions.js:113 +msgid "four" msgstr "" -#: js/musicutils.js:787 -#: js/synthutils.js:92 -#.TRANS: musical instrument -msgid "electric guitar" +#: js/turtleactions/IntervalsActions.js:113 +msgid "five" msgstr "" -#: js/musicutils.js:788 -#: js/synthutils.js:94 -#.TRANS: musical instrument -msgid "bassoon" +#: js/turtleactions/IntervalsActions.js:113 +msgid "six" msgstr "" -#: js/musicutils.js:789 -#: js/synthutils.js:96 -#.TRANS: musical instrument -msgid "celeste" +#: js/turtleactions/IntervalsActions.js:113 +msgid "seven" msgstr "" -#: js/musicutils.js:791 -#: js/musicutils.js:1123 -#: js/musicutils.js:1131 -#: js/temperament.js:650 -#.TRANS: musical temperament -msgid "equal" +#: js/turtleactions/IntervalsActions.js:113 +msgid "eight" msgstr "" -#: js/musicutils.js:793 -#: js/musicutils.js:1125 -#: js/musicutils.js:1133 -#.TRANS: musical temperament -msgid "Pythagorean" +#: js/turtleactions/IntervalsActions.js:113 +msgid "nine" msgstr "" -#: js/musicutils.js:795 -#: js/musicutils.js:1124 -#: js/musicutils.js:1132 -#.TRANS: musical temperament -msgid "just intonation" +#: js/turtleactions/IntervalsActions.js:119 +msgid "a" msgstr "" -#: js/musicutils.js:797 -#: js/musicutils.js:1126 -#: js/musicutils.js:1127 -#: js/musicutils.js:1134 -#: js/musicutils.js:1135 -#.TRANS: musical temperament -msgid "meantone" +#: js/turtleactions/IntervalsActions.js:120 +msgid "below" msgstr "" -#: js/musicutils.js:814 -msgid "major 7th" +#: js/turtleactions/IntervalsActions.js:124 +msgid "above" msgstr "" -#: js/musicutils.js:815 -msgid "minor 7th" +#: js/turtleactions/IntervalsActions.js:131 +msgid "plus" msgstr "" -#: js/musicutils.js:816 -msgid "dominant 7th" +#: js/turtleactions/IntervalsActions.js:139 +msgid " below" msgstr "" -#: js/musicutils.js:817 -msgid "minor-major 7th" +#: js/turtleactions/IntervalsActions.js:257 +msgid "Adding missing pitch number 0." msgstr "" -#: js/musicutils.js:818 -msgid "fully-diminished 7th" +#: js/turtleactions/IntervalsActions.js:265 +msgid "Ignoring pitch numbers less than zero or greater than eleven." msgstr "" -#: js/musicutils.js:819 -msgid "half-diminished 7th" +#: js/turtleactions/IntervalsActions.js:271 +msgid "Ignoring duplicate pitch numbers." msgstr "" -#: js/musicutils.js:4379 -#: js/musicutils.js:4416 -msgid "current" +#: js/turtleactions/ToneActions.js:134 +msgid "Vibrato intensity must be between 1 and 100." msgstr "" -#: js/musicutils.js:4382 -#: js/musicutils.js:4407 -msgid "next" +#: js/turtleactions/ToneActions.js:139 +msgid "Vibrato rate must be greater than 0." msgstr "" -#: js/musicutils.js:4385 -#: js/musicutils.js:4412 -msgid "previous" +#: js/turtleactions/ToneActions.js:192 +#: js/turtleactions/ToneActions.js:265 +#.TRANS: Depth is the intesity of the tremolo or chorus effect. +msgid "Depth is out of range." msgstr "" -#: js/synthutils.js:104 -#.TRANS: simple monotone synthesizer -msgid "simple-2" +#: js/turtleactions/ToneActions.js:301 +msgid "Distortion must be from 0 to 100." msgstr "" -#: js/synthutils.js:106 -#.TRANS: simple monotone synthesizer -msgid "simple-3" +#: js/turtleactions/ToneActions.js:332 +#.TRANS: partials components in a harmonic series +msgid "Partial must be greater than or equal to 0." msgstr "" -#: js/synthutils.js:108 -#.TRANS: simple monotone synthesizer -msgid "simple-4" +#: js/turtleactions/ToneActions.js:378 +#: js/turtleactions/ToneActions.js:417 +#: js/turtleactions/ToneActions.js:456 +#: js/widgets/timbre.js:782 +msgid "Unable to use synth due to existing oscillator" msgstr "" -#: js/synthutils.js:141 -#.TRANS: musical instrument -msgid "taiko" +#: js/turtleactions/ToneActions.js:388 +#: js/turtleactions/ToneActions.js:427 +msgid "The input cannot be negative." msgstr "" -#: js/modewidget.js:86 -#: js/modewidget.js:88 -#: js/modewidget.js:642 -#: js/modewidget.js:644 -#: js/modewidget.js:712 -#: js/modewidget.js:714 -#: js/temperament.js:2078 -#: js/rhythmruler.js:189 -#: js/rhythmruler.js:1410 -#: js/rhythmruler.js:1412 -#: js/rhythmruler.js:1435 -#: js/rhythmruler.js:1437 -#: js/meterwidget.js:89 -#: js/meterwidget.js:91 +#: js/widgets/modewidget.js:86 +#: js/widgets/modewidget.js:88 +#: js/widgets/modewidget.js:642 +#: js/widgets/modewidget.js:644 +#: js/widgets/modewidget.js:712 +#: js/widgets/modewidget.js:714 +#: js/widgets/meterwidget.js:194 +#: js/widgets/meterwidget.js:196 +#: js/widgets/temperament.js:2236 +#: js/widgets/rhythmruler.js:457 +#: js/widgets/rhythmruler.js:1790 +#: js/widgets/rhythmruler.js:1792 +#: js/widgets/rhythmruler.js:1816 +#: js/widgets/rhythmruler.js:1818 msgid "Play all" msgstr "" -#: js/modewidget.js:115 -#: js/pitchstaircase.js:641 -#: js/phrasemaker.js:339 -#: js/pitchdrummatrix.js:94 -#: js/pitchslider.js:125 -#: js/temperament.js:2083 -#: js/musickeyboard.js:530 -#: js/timbre.js:756 -#: js/meterwidget.js:124 -#: js/arpeggio.js:103 +#: js/widgets/modewidget.js:115 +#: js/widgets/meterwidget.js:229 +#: js/widgets/pitchdrummatrix.js:166 +#: js/widgets/pitchslider.js:125 +#: js/widgets/pitchstaircase.js:641 +#: js/widgets/temperament.js:2244 +#: js/widgets/timbre.js:756 +#: js/widgets/arpeggio.js:103 +#: js/widgets/musickeyboard.js:688 +#: js/widgets/phrasemaker.js:550 msgid "Save" msgstr "" -#: js/modewidget.js:121 -#: js/pitchstaircase.js:686 -#: js/phrasemaker.js:356 -#: js/pitchdrummatrix.js:109 -#: js/musickeyboard.js:534 -#: js/rhythmruler.js:269 -#: js/arpeggio.js:118 +#: js/widgets/modewidget.js:121 +#: js/widgets/pitchdrummatrix.js:181 +#: js/widgets/pitchstaircase.js:686 +#: js/widgets/arpeggio.js:118 +#: js/widgets/musickeyboard.js:696 +#: js/widgets/phrasemaker.js:567 +#: js/widgets/rhythmruler.js:601 #.TRANS: clear all subdivisions from the ruler. msgid "Clear" msgstr "" -#: js/modewidget.js:127 +#: js/widgets/modewidget.js:127 msgid "Rotate counter clockwise" msgstr "" -#: js/modewidget.js:133 +#: js/widgets/modewidget.js:133 msgid "Rotate clockwise" msgstr "" -#: js/modewidget.js:139 +#: js/widgets/modewidget.js:139 msgid "Invert" msgstr "" -#: js/modewidget.js:145 -#: js/pitchstaircase.js:678 -#: js/rhythmruler.js:258 -#: js/timbre.js:963 +#: js/widgets/modewidget.js:145 +#: js/widgets/pitchstaircase.js:678 +#: js/widgets/timbre.js:963 +#: js/widgets/rhythmruler.js:578 msgid "Undo" msgstr "" -#: js/modewidget.js:163 +#: js/widgets/modewidget.js:163 #.TRANS: A circle of notes represents the musical mode. msgid "Click in the circle to select notes for the mode." msgstr "" -#: js/modewidget.js:1017 -#: js/pitchstaircase.js:580 -#: js/phrasemaker.js:4855 -#: js/temperament.js:1754 -#: js/rhythmruler.js:1865 -#: js/rhythmruler.js:2081 -#: js/tempo.js:414 +#: js/widgets/modewidget.js:1017 +#: js/widgets/pitchstaircase.js:580 +#: js/widgets/temperament.js:1929 +#: js/widgets/tempo.js:414 +#: js/widgets/phrasemaker.js:5356 +#: js/widgets/rhythmruler.js:2254 +#: js/widgets/rhythmruler.js:2472 msgid "New action block generated!" msgstr "" -#: js/oscilloscope.js:79 -msgid "Zoom In" -msgstr "" - -#: js/oscilloscope.js:88 -msgid "Zoom Out" -msgstr "" - -#: js/pitchstaircase.js:624 -msgid "Play chord" -msgstr "" - -#: js/pitchstaircase.js:632 -msgid "Play scale" +#: js/widgets/meterwidget.js:275 +msgid "Reset" msgstr "" -#: js/pitchstaircase.js:696 -msgid "Click on a note to create a new step." +#: js/widgets/meterwidget.js:301 +msgid "Click in the circle to select strong beats for the meter." msgstr "" -#: js/phrasemaker.js:363 -msgid "Export" +#: js/widgets/oscilloscope.js:79 +msgid "Zoom In" msgstr "" -#: js/phrasemaker.js:370 -msgid "Sort" +#: js/widgets/oscilloscope.js:88 +msgid "Zoom Out" msgstr "" -#: js/phrasemaker.js:373 -#: js/musickeyboard.js:559 -msgid "Add note" +#: js/widgets/pitchdrummatrix.js:356 +#: js/widgets/pitchdrummatrix.js:752 +msgid "Click in the grid to map notes to drums." msgstr "" -#: js/phrasemaker.js:764 -msgid "Click on the table to add notes." +#: js/widgets/pitchslider.js:103 +msgid "Move up" msgstr "" -#: js/phrasemaker.js:2414 -#: js/phrasemaker.js:2543 -msgid "tuplet value" +#: js/widgets/pitchslider.js:114 +msgid "Move down" msgstr "" -#: js/pitchdrummatrix.js:270 -#: js/pitchdrummatrix.js:639 -msgid "Click in the grid to map notes to drums." +#: js/widgets/pitchslider.js:136 +msgid "Click on the slider to create a note block." msgstr "" -#: js/pitchslider.js:103 -msgid "Move up" +#: js/widgets/pitchstaircase.js:624 +msgid "Play chord" msgstr "" -#: js/pitchslider.js:114 -msgid "Move down" +#: js/widgets/pitchstaircase.js:632 +msgid "Play scale" msgstr "" -#: js/pitchslider.js:136 -msgid "Click on the slider to create a note block." +#: js/widgets/pitchstaircase.js:696 +msgid "Click on a note to create a new step." msgstr "" -#: js/temperament.js:215 +#: js/widgets/temperament.js:321 msgid "back to 2:1 octave space" msgstr "" -#: js/temperament.js:323 +#: js/widgets/temperament.js:447 msgid "edit" msgstr "" -#: js/temperament.js:330 -#: js/temperament.js:332 -#: js/temperament.js:1336 -#: js/temperament.js:1338 +#: js/widgets/temperament.js:454 +#: js/widgets/temperament.js:456 +#: js/widgets/temperament.js:1493 +#: js/widgets/temperament.js:1495 msgid "close" msgstr "" -#: js/temperament.js:423 -#: js/temperament.js:736 -#: js/temperament.js:743 -#: js/temperament.js:845 -#: js/temperament.js:935 -#: js/temperament.js:942 -#: js/temperament.js:1015 -#: js/temperament.js:1284 -#: js/temperament.js:1354 -#: js/temperament.js:1430 +#: js/widgets/temperament.js:552 +#: js/widgets/temperament.js:877 +#: js/widgets/temperament.js:884 +#: js/widgets/temperament.js:986 +#: js/widgets/temperament.js:1080 +#: js/widgets/temperament.js:1087 +#: js/widgets/temperament.js:1160 +#: js/widgets/temperament.js:1433 +#: js/widgets/temperament.js:1511 +#: js/widgets/temperament.js:1596 msgid "done" msgstr "" -#: js/temperament.js:477 -#: js/temperament.js:482 -#: js/temperament.js:918 +#: js/widgets/temperament.js:610 +#: js/widgets/temperament.js:615 +#: js/widgets/temperament.js:1063 msgid "ratio" msgstr "" -#: js/temperament.js:483 +#: js/widgets/temperament.js:616 msgid "interval" msgstr "" -#: js/temperament.js:611 +#: js/widgets/temperament.js:744 msgid "non scalar" msgstr "" -#: js/temperament.js:650 +#: js/widgets/temperament.js:787 msgid "ratios" msgstr "" -#: js/temperament.js:650 +#: js/widgets/temperament.js:787 msgid "arbitrary" msgstr "" -#: js/temperament.js:719 +#: js/widgets/temperament.js:860 msgid "number of divisions" msgstr "" -#: js/temperament.js:741 -#: js/temperament.js:858 -#: js/temperament.js:940 -#: js/temperament.js:1033 +#: js/widgets/temperament.js:882 +#: js/widgets/temperament.js:999 +#: js/widgets/temperament.js:1085 +#: js/widgets/temperament.js:1178 msgid "preview" msgstr "" -#: js/temperament.js:788 +#: js/widgets/temperament.js:929 msgid "The Number of divisions is too large." msgstr "" -#: js/temperament.js:921 +#: js/widgets/temperament.js:1066 msgid "recursion" msgstr "" -#: js/temperament.js:1450 +#: js/widgets/temperament.js:1616 msgid "The octave ratio has changed. This changes temperament significantly." msgstr "" -#: js/temperament.js:2087 +#: js/widgets/temperament.js:2248 msgid "Table" msgstr "" -#: js/temperament.js:2185 +#: js/widgets/temperament.js:2356 msgid "Add pitches" msgstr "" -#: js/musickeyboard.js:570 -msgid "Metronome" +#: js/widgets/tempo.js:78 +#: js/widgets/tempo.js:97 +#: js/widgets/tempo.js:99 +#: js/widgets/aiwidget.js:134 +#: js/widgets/aiwidget.js:136 +#: js/widgets/rhythmruler.js:681 +#: js/widgets/rhythmruler.js:683 +#: js/widgets/rhythmruler.js:1864 +#: js/widgets/rhythmruler.js:1866 +#: js/widgets/sampler.js:180 +#: js/widgets/sampler.js:182 +msgid "Pause" msgstr "" -#: js/musickeyboard.js:1296 -#: plugins/rodi.rtp:193 -msgid "duration" +#: js/widgets/tempo.js:113 +msgid "Save tempo" msgstr "" -#: js/musickeyboard.js:2840 -msgid "New action blocks generated!" +#: js/widgets/tempo.js:144 +msgid "speed up" msgstr "" -#: js/musickeyboard.js:2841 -msgid "New action block generated" +#: js/widgets/tempo.js:150 +msgid "slow down" msgstr "" -#: js/musickeyboard.js:2984 -#: js/musickeyboard.js:2992 -msgid "MIDI device present." +#: js/widgets/tempo.js:194 +msgid "Adjust the tempo with the buttons." msgstr "" -#: js/musickeyboard.js:2995 -msgid "No MIDI device found." +#: js/widgets/tempo.js:261 +msgid "Please enter a number between 30 and 1000" msgstr "" -#: js/musickeyboard.js:3000 -msgid "Failed to get MIDI access in browser." +#: js/widgets/tempo.js:268 +#: js/widgets/tempo.js:271 +msgid "The beats per minute must be between 30 and 1000." msgstr "" -#: js/rhythmruler.js:202 -msgid "Save rhythms" +#: js/widgets/tempo.js:287 +msgid "The beats per minute must be below 1000." msgstr "" -#: js/rhythmruler.js:222 -msgid "Save drum machine" +#: js/widgets/tempo.js:303 +msgid "The beats per minute must be above 30" msgstr "" -#: js/rhythmruler.js:263 -#.TRANS: user can tap out a rhythm by clicking on a ruler. -msgid "Tap a rhythm" +#: js/widgets/timbre.js:766 +msgid "Synthesizer" msgstr "" -#: js/rhythmruler.js:342 -#: js/rhythmruler.js:344 -#: js/rhythmruler.js:1481 -#: js/rhythmruler.js:1483 -#: js/sampler.js:110 -#: js/sampler.js:112 -#: js/tempo.js:78 -#: js/tempo.js:97 -#: js/tempo.js:99 -msgid "Pause" +#: js/widgets/timbre.js:789 +msgid "Oscillator" msgstr "" -#: js/rhythmruler.js:478 -msgid "Click on the ruler to divide it." +#: js/widgets/timbre.js:840 +msgid "Envelope" msgstr "" -#: js/rhythmruler.js:603 -#: js/rhythmruler.js:605 -#: js/rhythmruler.js:804 -#: js/rhythmruler.js:806 -#: js/rhythmruler.js:1386 -#: js/rhythmruler.js:1388 -msgid "tap a rhythm" +#: js/widgets/timbre.js:886 +#: planet/js/GlobalTag.js:50 +#.TRANS: On the Planet, we use labels to tag projects. +msgid "Effects" msgstr "" -#: js/rhythmruler.js:1084 -msgid "Maximum value of 256 has been exceeded." +#: js/widgets/timbre.js:904 +msgid "Filter" msgstr "" -#: js/sampler.js:137 -msgid "Warning: Sample is bigger than 1MB." +#: js/widgets/timbre.js:946 +msgid "Add filter" msgstr "" -#: js/sampler.js:142 -msgid "Upload failed: Sample is not a .wav file." +#: js/widgets/timbre.js:987 +msgid "Click on buttons to open the timbre design tools." msgstr "" -#: js/sampler.js:164 -msgid "A new sample block was generated." +#: js/widgets/timbre.js:1273 +msgid "harmonicity" msgstr "" -#: js/sampler.js:255 -msgid "Upload sample" +#: js/widgets/timbre.js:1340 +#: js/widgets/timbre.js:1406 +msgid "modulation index" msgstr "" -#: js/sampler.js:306 -msgid "Save sample" +#: js/widgets/timbre.js:1484 +msgid "vibrato amount" msgstr "" -#: js/sampler.js:697 -#.TRANS: The reference tone is a sound used for comparison. -msgid "reference tone" +#: js/widgets/timbre.js:1919 +msgid "Filter already present." msgstr "" -#: js/tempo.js:113 -msgid "Save tempo" +#: js/widgets/timbre.js:2322 +msgid "delay (MS)" msgstr "" -#: js/tempo.js:144 -msgid "speed up" +#: js/widgets/timbre.js:2507 +msgid "distortion amount" msgstr "" -#: js/tempo.js:150 -msgid "slow down" +#: js/widgets/aiwidget.js:180 +#: js/widgets/sampler.js:227 +msgid "Warning: Sample is bigger than 1MB." msgstr "" -#: js/tempo.js:194 -msgid "Adjust the tempo with the buttons." +#: js/widgets/aiwidget.js:539 +msgid "New start block generated" msgstr "" -#: js/tempo.js:261 -msgid "Please enter a number between 30 and 1000" +#: js/widgets/aiwidget.js:541 +msgid "MIDI loading. This may take some time depending upon the number of notes in the track" msgstr "" -#: js/tempo.js:268 -#: js/tempo.js:271 -msgid "The beats per minute must be between 30 and 1000." +#: js/widgets/aiwidget.js:551 +#: js/widgets/sampler.js:254 +msgid "Upload failed: Sample is not a .wav file." msgstr "" -#: js/tempo.js:287 -msgid "The beats per minute must be below 1000." +#: js/widgets/aiwidget.js:679 +#: js/widgets/sampler.js:432 +msgid "Save sample" msgstr "" -#: js/tempo.js:303 -msgid "The beats per minute must be above 30" +#: js/widgets/aiwidget.js:701 +msgid "AI Music" msgstr "" -#: js/timbre.js:766 -msgid "Synthesizer" +#: js/widgets/arpeggio.js:239 +msgid "Click in the grid to add steps to the arpeggio." msgstr "" -#: js/timbre.js:789 -msgid "Oscillator" +#: js/widgets/help.js:95 +#: js/widgets/help.js:125 +#: js/widgets/help.js:146 +#: js/widgets/help.js:158 +#: js/widgets/help.js:376 +#: js/widgets/help.js:391 +msgid "Take a tour" msgstr "" -#: js/timbre.js:840 -msgid "Envelope" +#: js/widgets/musickeyboard.js:725 +#: js/widgets/phrasemaker.js:584 +msgid "Add note" msgstr "" -#: js/timbre.js:886 -#: js/GlobalTag.js:50 -#.TRANS: On the Planet, we use labels to tag projects. -msgid "Effects" +#: js/widgets/musickeyboard.js:744 +msgid "Metronome" +msgstr "" + +#: js/widgets/musickeyboard.js:1549 +#: plugins/rodi.rtp:193 +msgid "duration" +msgstr "" + +#: js/widgets/musickeyboard.js:3179 +msgid "New action blocks generated" +msgstr "" + +#: js/widgets/musickeyboard.js:3180 +msgid "New action block generated" msgstr "" -#: js/timbre.js:904 -msgid "Filter" +#: js/widgets/musickeyboard.js:3365 +#: js/widgets/musickeyboard.js:3373 +msgid "MIDI device present." msgstr "" -#: js/timbre.js:946 -msgid "Add filter" +#: js/widgets/musickeyboard.js:3376 +msgid "No MIDI device found." msgstr "" -#: js/timbre.js:987 -msgid "Click on buttons to open the timbre design tools." +#: js/widgets/musickeyboard.js:3386 +msgid "Failed to get MIDI access in browser." msgstr "" -#: js/timbre.js:1273 -msgid "harmonicity" +#: js/widgets/phrasemaker.js:574 +msgid "Export" msgstr "" -#: js/timbre.js:1340 -#: js/timbre.js:1406 -msgid "modulation index" +#: js/widgets/phrasemaker.js:581 +msgid "Sort" msgstr "" -#: js/timbre.js:1484 -msgid "vibrato amount" +#: js/widgets/phrasemaker.js:975 +msgid "Click on the table to add notes." msgstr "" -#: js/timbre.js:1919 -msgid "Filter already present." +#: js/widgets/phrasemaker.js:2677 +#: js/widgets/phrasemaker.js:2819 +msgid "tuplet value" msgstr "" -#: js/timbre.js:2322 -msgid "delay (MS)" +#: js/widgets/rhythmruler.js:486 +msgid "Save rhythms" msgstr "" -#: js/timbre.js:2507 -msgid "distortion amount" +#: js/widgets/rhythmruler.js:512 +msgid "Save drum machine" msgstr "" -#: js/meterwidget.js:170 -msgid "Reset" +#: js/widgets/rhythmruler.js:589 +#.TRANS: user can tap out a rhythm by clicking on a ruler. +msgid "Tap a rhythm" msgstr "" -#: js/meterwidget.js:196 -msgid "Click in the circle to select strong beats for the meter." +#: js/widgets/rhythmruler.js:817 +msgid "Click on the ruler to divide it." msgstr "" -#: js/arpeggio.js:239 -msgid "Click in the grid to add steps to the arpeggio." +#: js/widgets/rhythmruler.js:950 +#: js/widgets/rhythmruler.js:952 +#: js/widgets/rhythmruler.js:1152 +#: js/widgets/rhythmruler.js:1154 +#: js/widgets/rhythmruler.js:1765 +#: js/widgets/rhythmruler.js:1767 +msgid "tap a rhythm" msgstr "" -#: js/ProjectStorage.js:243 -msgid "anonymous" +#: js/widgets/rhythmruler.js:1459 +msgid "Maximum value of 256 has been exceeded." msgstr "" -#: js/GlobalCard.js:68 -msgid "Share" +#: js/widgets/sampler.js:237 +msgid "Recording started..." msgstr "" -#: js/GlobalCard.js:74 -msgid "Flags" +#: js/widgets/sampler.js:245 +msgid "Recording complete..." msgstr "" -#: js/LocalCard.js:36 -msgid "View published project" +#: js/widgets/sampler.js:283 +msgid "A new sample block was generated." msgstr "" -#: js/LocalCard.js:42 -msgid "Publish project" +#: js/widgets/sampler.js:378 +msgid "Upload sample" msgstr "" -#: js/LocalCard.js:51 -msgid "Edit project" +#: js/widgets/sampler.js:399 +msgid "Warning: Your sample cannot be loaded because it is >1MB." msgstr "" -#: js/LocalCard.js:52 -msgid "Delete project" +#: js/widgets/sampler.js:448 +msgid "Toggle Mic" msgstr "" -#: js/LocalCard.js:53 -msgid "Download project" +#: js/widgets/sampler.js:458 +msgid "Playback" msgstr "" -#: js/LocalCard.js:55 -msgid "Duplicate project" +#: js/widgets/sampler.js:979 +#.TRANS: The reference tone is a sound used for comparison. +msgid "reference tone" msgstr "" -#: js/GlobalTag.js:28 +#: planet/js/GlobalTag.js:28 #.TRANS: On the Planet, we use labels to tag projects. msgid "All Projects" msgstr "" -#: js/GlobalTag.js:30 -#: js/StringHelper.js:37 +#: planet/js/GlobalTag.js:30 +#: planet/js/StringHelper.js:37 #.TRANS: On the Planet, we use labels to tag projects. msgid "My Projects" msgstr "" -#: js/GlobalTag.js:32 +#: planet/js/GlobalTag.js:32 #.TRANS: On the Planet, we use labels to tag projects. msgid "Examples" msgstr "" -#: js/GlobalTag.js:34 +#: planet/js/GlobalTag.js:34 #.TRANS: On the Planet, we use labels to tag projects. msgid "Music" msgstr "" -#: js/GlobalTag.js:36 +#: planet/js/GlobalTag.js:36 #.TRANS: On the Planet, we use labels to tag projects. msgid "Art" msgstr "" -#: js/GlobalTag.js:38 +#: planet/js/GlobalTag.js:38 #.TRANS: On the Planet, we use labels to tag projects. msgid "Math" msgstr "" -#: js/GlobalTag.js:40 +#: planet/js/GlobalTag.js:40 #.TRANS: On the Planet, we use labels to tag projects. msgid "Interactive" msgstr "" -#: js/GlobalTag.js:42 +#: planet/js/GlobalTag.js:42 #.TRANS: On the Planet, we use labels to tag projects. msgid "Design" msgstr "" -#: js/GlobalTag.js:44 +#: planet/js/GlobalTag.js:44 #.TRANS: On the Planet, we use labels to tag projects. msgid "Game" msgstr "" -#: js/GlobalTag.js:46 +#: planet/js/GlobalTag.js:46 #.TRANS: On the Planet, we use labels to tag projects. msgid "Media" msgstr "" -#: js/GlobalTag.js:48 +#: planet/js/GlobalTag.js:48 #.TRANS: On the Planet, we use labels to tag projects. msgid "Sensors" msgstr "" -#: js/GlobalTag.js:52 +#: planet/js/GlobalTag.js:52 #.TRANS: On the Planet, we use labels to tag projects. msgid "Code Snippet" msgstr "" -#: js/helper.js:149 -#: js/StringHelper.js:49 -msgid "Show more tags" +#: planet/js/LocalCard.js:36 +msgid "View published project" msgstr "" -#: js/helper.js:150 -msgid "Show fewer tags" +#: planet/js/LocalCard.js:42 +msgid "Publish project" +msgstr "" + +#: planet/js/LocalCard.js:51 +msgid "Edit project" +msgstr "" + +#: planet/js/LocalCard.js:52 +msgid "Delete project" +msgstr "" + +#: planet/js/LocalCard.js:53 +msgid "Download project" +msgstr "" + +#: planet/js/LocalCard.js:55 +msgid "Duplicate project" +msgstr "" + +#: planet/js/ProjectStorage.js:243 +msgid "anonymous" +msgstr "" + +#: planet/js/SaveInterface.js:34 +msgid "Open in Music Blocks" +msgstr "" + +#: planet/js/SaveInterface.js:35 +msgid "Open in Turtle Blocks" +msgstr "" + +#: planet/js/GlobalCard.js:68 +msgid "Share" +msgstr "" + +#: planet/js/GlobalCard.js:74 +msgid "Flags" +msgstr "" + +#: planet/js/GlobalPlanet.js:35 +msgid "No results found." +msgstr "" + +#: planet/js/GlobalPlanet.js:51 +msgid "Remix of" +msgstr "" + +#: planet/js/GlobalPlanet.js:509 +msgid "Cannot connect to server" msgstr "" -#: js/ProjectViewer.js:30 +#: planet/js/ProjectViewer.js:30 msgid "Error: Report could not be submitted. Try again later." msgstr "" -#: js/ProjectViewer.js:31 +#: planet/js/ProjectViewer.js:31 msgid "Thank you for reporting this project. A moderator will review the project shortly, to verify violation of the Sugar Labs Code of Conduct." msgstr "" -#: js/ProjectViewer.js:32 -#: js/StringHelper.js:62 -#: js/StringHelper.js:64 -#: js/StringHelper.js:68 +#: planet/js/ProjectViewer.js:32 +#: planet/js/StringHelper.js:62 +#: planet/js/StringHelper.js:64 +#: planet/js/StringHelper.js:68 msgid "Report Project" msgstr "" -#: js/ProjectViewer.js:33 -#: js/StringHelper.js:63 +#: planet/js/ProjectViewer.js:33 +#: planet/js/StringHelper.js:63 msgid "Project Reported" msgstr "" -#: js/ProjectViewer.js:34 +#: planet/js/ProjectViewer.js:34 msgid "Report description required" msgstr "" -#: js/ProjectViewer.js:35 +#: planet/js/ProjectViewer.js:35 msgid "Report description too long" msgstr "" -#: js/StringHelper.js:30 +#: planet/js/Publisher.js:30 +msgid "Feature unavailable - cannot connect to server. Reload Music Blocks to try again." +msgstr "" + +#: planet/js/Publisher.js:220 +#: planet/js/Publisher.js:237 +msgid "This field is required" +msgstr "" + +#: planet/js/Publisher.js:227 +msgid "Title too long" +msgstr "" + +#: planet/js/Publisher.js:244 +msgid "Description too long" +msgstr "" + +#: planet/js/Publisher.js:341 +msgid "Server Error" +msgstr "" + +#: planet/js/Publisher.js:341 +msgid "Try Again" +msgstr "" + +#: planet/js/StringHelper.js:30 msgid "Planet" msgstr "" -#: js/StringHelper.js:31 +#: planet/js/StringHelper.js:31 msgid "Close Planet" msgstr "" -#: js/StringHelper.js:32 +#: planet/js/StringHelper.js:32 msgid "Open project from file" msgstr "" -#: js/StringHelper.js:34 +#: planet/js/StringHelper.js:34 msgid "Local" msgstr "" -#: js/StringHelper.js:35 +#: planet/js/StringHelper.js:35 msgid "Global" msgstr "" -#: js/StringHelper.js:36 +#: planet/js/StringHelper.js:36 msgid "Search for a project" msgstr "" -#: js/StringHelper.js:38 +#: planet/js/StringHelper.js:38 msgid "Publish Project" msgstr "" -#: js/StringHelper.js:40 +#: planet/js/StringHelper.js:40 msgid "Tags (max 5)" msgstr "" -#: js/StringHelper.js:41 -#: js/StringHelper.js:61 +#: planet/js/StringHelper.js:41 +#: planet/js/StringHelper.js:61 msgid "Description" msgstr "" -#: js/StringHelper.js:42 -#: js/StringHelper.js:67 +#: planet/js/StringHelper.js:42 +#: planet/js/StringHelper.js:67 msgid "Submit" msgstr "" -#: js/StringHelper.js:43 -#: js/StringHelper.js:47 +#: planet/js/StringHelper.js:43 +#: planet/js/StringHelper.js:47 msgid "Cancel" msgstr "" -#: js/StringHelper.js:44 +#: planet/js/StringHelper.js:44 msgid "Delete \\"\\"?" msgstr "" -#: js/StringHelper.js:45 +#: planet/js/StringHelper.js:45 msgid "Permanently delete project \\"\\"?" msgstr "" -#: js/StringHelper.js:48 +#: planet/js/StringHelper.js:48 msgid "Explore Projects" msgstr "" -#: js/StringHelper.js:50 +#: planet/js/StringHelper.js:49 +#: planet/js/helper.js:149 +msgid "Show more tags" +msgstr "" + +#: planet/js/StringHelper.js:50 msgid "Most recent" msgstr "" -#: js/StringHelper.js:51 +#: planet/js/StringHelper.js:51 msgid "Most liked" msgstr "" -#: js/StringHelper.js:52 +#: planet/js/StringHelper.js:52 msgid "Most downloaded" msgstr "" -#: js/StringHelper.js:53 +#: planet/js/StringHelper.js:53 msgid "A-Z" msgstr "" -#: js/StringHelper.js:54 +#: planet/js/StringHelper.js:54 msgid "Sort by" msgstr "" -#: js/StringHelper.js:55 +#: planet/js/StringHelper.js:55 msgid "Load More Projects" msgstr "" -#: js/StringHelper.js:56 +#: planet/js/StringHelper.js:56 msgid "Last Updated" msgstr "" -#: js/StringHelper.js:57 +#: planet/js/StringHelper.js:57 msgid "Creation Date" msgstr "" -#: js/StringHelper.js:58 +#: planet/js/StringHelper.js:58 msgid "Number of Downloads:" msgstr "" -#: js/StringHelper.js:59 +#: planet/js/StringHelper.js:59 msgid "Number of Likes:" msgstr "" -#: js/StringHelper.js:60 +#: planet/js/StringHelper.js:60 msgid "Tags:" msgstr "" -#: js/StringHelper.js:65 +#: planet/js/StringHelper.js:65 msgid "Report projects which violate the Sugar Labs Code of Conduct." msgstr "" -#: js/StringHelper.js:66 +#: planet/js/StringHelper.js:66 msgid "Reason for reporting project" msgstr "" -#: js/StringHelper.js:70 +#: planet/js/StringHelper.js:70 msgid "Download as File" msgstr "" -#: js/GlobalPlanet.js:35 -msgid "No results found." -msgstr "" - -#: js/GlobalPlanet.js:51 -msgid "Remix of" -msgstr "" - -#: js/GlobalPlanet.js:509 -msgid "Cannot connect to server" -msgstr "" - -#: js/Publisher.js:30 -msgid "Feature unavailable - cannot connect to server. Reload Music Blocks to try again." -msgstr "" - -#: js/Publisher.js:218 -#: js/Publisher.js:235 -msgid "This field is required" -msgstr "" - -#: js/Publisher.js:225 -msgid "Title too long" +#: planet/js/helper.js:150 +msgid "Show fewer tags" msgstr "" -#: js/Publisher.js:242 -msgid "Description too long" +#: plugins/accelerometer.rtp:48 +msgid "motion x" msgstr "" -#: js/Publisher.js:339 -msgid "Server Error" +#: plugins/accelerometer.rtp:56 +msgid "motion y" msgstr "" -#: js/Publisher.js:339 -msgid "Try Again" +#: plugins/accelerometer.rtp:64 +msgid "motion z" msgstr "" -#: js/SaveInterface.js:34 -msgid "Open in Music Blocks" +#: plugins/facebook.rtp:27 +msgid "publish" msgstr "" -#: js/SaveInterface.js:35 -msgid "Open in Turtle Blocks" +#: plugins/maths.rtp:62 +msgid "power" msgstr "" -#: plugins/weather.rtp:68 -#: plugins/weather.rtp:97 -msgid "Days ahead must be in the range of -1 to 5." +#: plugins/maths.rtp:62 +msgid "base" msgstr "" -#: plugins/weather.rtp:122 -msgid "forecast" +#: plugins/maths.rtp:62 +msgid "exp" msgstr "" -#: plugins/weather.rtp:123 -#: plugins/weather.rtp:137 -#: plugins/weather.rtp:150 -msgid "city" +#: plugins/maths.rtp:99 +msgid "floor" msgstr "" -#: plugins/weather.rtp:124 -#: plugins/weather.rtp:138 -#: plugins/weather.rtp:151 -msgid "day" +#: plugins/maths.rtp:104 +msgid "ceiling" msgstr "" -#: plugins/weather.rtp:136 -msgid "high" +#: plugins/maths.rtp:109 +msgid "to degrees" msgstr "" -#: plugins/weather.rtp:149 -msgid "low" +#: plugins/maths.rtp:114 +msgid "to radians" msgstr "" #: plugins/nutrition.rtp:104 @@ -9458,45 +9867,6 @@ msgstr "" msgid "water" msgstr "" -#: plugins/maths.rtp:62 -#: plugins/examples.rtp:93 -msgid "power" -msgstr "" - -#: plugins/maths.rtp:62 -#: plugins/examples.rtp:93 -msgid "base" -msgstr "" - -#: plugins/maths.rtp:62 -#: plugins/examples.rtp:93 -msgid "exp" -msgstr "" - -#: plugins/maths.rtp:99 -#: plugins/examples.rtp:130 -msgid "floor" -msgstr "" - -#: plugins/maths.rtp:104 -#: plugins/examples.rtp:135 -msgid "ceiling" -msgstr "" - -#: plugins/maths.rtp:109 -#: plugins/examples.rtp:140 -msgid "to degrees" -msgstr "" - -#: plugins/maths.rtp:114 -#: plugins/examples.rtp:145 -msgid "to radians" -msgstr "" - -#: plugins/facebook.rtp:27 -msgid "publish" -msgstr "" - #: plugins/rodi.rtp:172 msgid "blink" msgstr "" @@ -9525,18 +9895,66 @@ msgstr "" msgid "move" msgstr "" -#: plugins/accelerometer.rtp:48 -msgid "motion x" +#: plugins/weather.rtp:68 +#: plugins/weather.rtp:97 +msgid "Days ahead must be in the range of -1 to 5." msgstr "" -#: plugins/accelerometer.rtp:56 -msgid "motion y" +#: plugins/weather.rtp:122 +msgid "forecast" msgstr "" -#: plugins/accelerometer.rtp:64 -msgid "motion z" +#: plugins/weather.rtp:123 +#: plugins/weather.rtp:137 +#: plugins/weather.rtp:150 +msgid "city" +msgstr "" + +#: plugins/weather.rtp:124 +#: plugins/weather.rtp:138 +#: plugins/weather.rtp:151 +msgid "day" +msgstr "" + +#: plugins/weather.rtp:136 +msgid "high" +msgstr "" + +#: plugins/weather.rtp:149 +msgid "low" msgstr "" +#: js/toolbar.js:70 + +#: js/toolbar.js:130 + +#: js/toolbar.js:194 + +#: js/toolbar.js:249 + +#~msgid "Toggle JavaScript Editor" +#~msgstr "" + +#: js/EnsembleBlocks.js:643 + +#~msgid "The Turrle pitch block returns the current pitch number being played by the specified turtle." +#~msgstr "" + +#: js/PitchActions.js:88 + +#~msgid "The Scalar Step Block must be used inside of a Note Block." +#~msgstr "" + +#: js/PitchActions.js:107 + +#~msgid "The Scalar Step Block must be preceded by a Pitch Block." +#~msgstr "" + +#: js/musickeyboard.js:2840 + +#~msgid "New action blocks generated!" +#~msgstr "" + #: js/toolbar.js:110 #: js/toolbar.js:204 @@ -9877,11 +10295,6 @@ msgstr "" #~msgid "The Time block returns the number of seconds that the program has been running." #~msgstr "" -#: js/help.js:95 - -#~msgid "Take a tour" -#~msgstr "" - #: js/GlobalCard.js:48 #~msgid "More Details" @@ -12780,11 +13193,6 @@ msgstr "" #~msgid "The save-stack button saves a stack onto a custom palette. It appears after a \"long press\" on a stack." #~msgstr "" -#: js/musicutils.js:254 - -#~msgid "Custom" -#~msgstr "" - #: js/basicblocks.js:4785 #~msgid "Rhythm" diff --git a/po/mn.po b/po/mn.po index e5d49b293d..97a16ff0ae 100644 --- a/po/mn.po +++ b/po/mn.po @@ -2129,276 +2129,131 @@ #: js/planetInterface.js:104 #: js/planetInterface.js:104 #: js/planetInterface.js:104 -msgid "project undefined" +#: js/SaveInterface.js:59 +#: js/SaveInterface.js:61 +#: js/SaveInterface.js:93 +msgid "Music Blocks Project" msgstr "" -#: js/logo.js:61 -msgid "Not a valid pitch name" +#: js/SaveInterface.js:63 +msgid "This project was created in Music Blocks" msgstr "" -#: js/logo.js:507 -#: js/ProgramBlocks.js:258 -#: js/ProgramBlocks.js:427 -msgid "You must select a file." +#: js/SaveInterface.js:67 +msgid "Music Blocks is a Free/Libre Software application." msgstr "" -#: js/logo.js:1184 -#: js/turtles.js:118 -#: js/turtle-painter.js:1192 -#: js/turtle-painter.js:1193 -#: js/block.js:1463 -#: js/lilypond.js:757 -#: js/lilypond.js:921 -#: js/lilypond.js:959 -#: js/ActionBlocks.js:1223 -#: js/ProgramBlocks.js:1267 -msgid "start" -msgstr "эхэл" - -#: js/logo.js:1696 -msgid "Playback is ready." +#: js/SaveInterface.js:69 +msgid "The source code can be accessed at" msgstr "" -#: js/blocks.js:1011 -#: js/blocks.js:3427 -#: js/blocks.js:3428 -#: js/blocks.js:3653 -#: js/blocks.js:4012 -#: js/blocks.js:4205 -#: js/blocks.js:5343 -#: js/blocks.js:6474 -#: js/palette.js:527 -#: js/palette.js:536 -#: js/palette.js:545 -#: js/palette.js:554 -#: js/palette.js:1131 -#: js/palette.js:1142 -#: js/palette.js:1153 -#: js/palette.js:1164 -#: js/palette.js:1183 -#: js/rubrics.js:529 -#: js/macros.js:170 -#: js/macros.js:266 -#: js/macros.js:267 -#: js/macros.js:276 -#: js/macros.js:828 -#: js/block.js:1449 -#: js/block.js:4164 -#: js/block.js:4182 -#: js/block.js:4193 -#: js/turtledefs.js:128 -#: js/turtledefs.js:230 -#: js/ActionBlocks.js:254 -#: js/ActionBlocks.js:307 -#: js/ActionBlocks.js:617 -#: js/ActionBlocks.js:716 -#: js/ActionBlocks.js:961 -#: js/ActionBlocks.js:1049 -#: js/ActionBlocks.js:1322 -#: js/ActionBlocks.js:1325 -#: js/ActionBlocks.js:1337 -#: js/ActionBlocks.js:1404 -#: js/MeterBlocks.js:715 -#: js/MeterBlocks.js:768 -#: js/MeterBlocks.js:831 -#: js/MeterBlocks.js:892 -#: js/phrasemaker.js:4412 -#: js/musickeyboard.js:2647 -#: js/rhythmruler.js:1928 -#: js/rhythmruler.js:1935 -#: js/rhythmruler.js:2119 -#: js/rhythmruler.js:2126 -msgid "action" -msgstr "үйлдэл" - -#: js/blocks.js:1205 -#: js/blocks.js:3380 -#: js/blocks.js:3770 -#: js/blocks.js:3801 -#: js/blocks.js:3850 -#: js/blocks.js:3885 -#: js/blocks.js:6497 -#: js/palette.js:509 -#: js/palette.js:638 -#: js/palette.js:1107 -#: js/BoxesBlocks.js:282 -#: js/BoxesBlocks.js:285 -#: js/BoxesBlocks.js:405 -#: js/BoxesBlocks.js:594 -msgid "box" -msgstr "богц" - -#: js/blocks.js:1680 -msgid "Consider breaking this stack into parts." +#: js/SaveInterface.js:72 +msgid "For more information, please consult the" msgstr "" -#: js/blocks.js:2408 -#: js/palette.js:653 -#: js/MediaBlocks.js:602 -msgid "open file" +#: js/SaveInterface.js:76 +#: js/turtledefs.js:795 +msgid "Music Blocks Guide" msgstr "" -#: js/blocks.js:2415 -#: js/blocks.js:2423 -#: js/activity.js:1875 -msgid "audio file" +#: js/SaveInterface.js:83 +msgid "Alternatively, open the file in Music Blocks using the Load project button." msgstr "" -#: js/blocks.js:2536 -#: js/blocks.js:3147 -#: js/block.js:3543 -msgid "on2" +#: js/SaveInterface.js:85 +msgid "Project Code" msgstr "" -#: js/blocks.js:2538 -#: js/blocks.js:3149 -#: js/block.js:3545 -msgid "off" +#: js/SaveInterface.js:87 +msgid "This code stores data about the blocks in a project." msgstr "" -#: js/blocks.js:2543 -#: js/blocks.js:3154 -#: js/palette.js:618 -#: js/block.js:3466 -#: js/BooleanBlocks.js:77 -#: js/BooleanBlocks.js:167 -#: js/BooleanBlocks.js:251 -#: js/BooleanBlocks.js:335 -#: js/BooleanBlocks.js:433 -#: js/BooleanBlocks.js:539 -#: js/BooleanBlocks.js:640 -#: js/BooleanBlocks.js:741 -#: js/BooleanBlocks.js:847 -#: js/BooleanBlocks.js:948 -#: js/BooleanBlocks.js:1033 -#: js/SensorsBlocks.js:910 -msgid "true" +#: js/SaveInterface.js:89 +msgid "Show" msgstr "" -#: js/blocks.js:2545 -#: js/blocks.js:3156 -#: js/block.js:3466 -#: js/BooleanBlocks.js:79 -#: js/BooleanBlocks.js:169 -#: js/BooleanBlocks.js:253 -#: js/BooleanBlocks.js:337 -#: js/BooleanBlocks.js:435 -#: js/BooleanBlocks.js:541 -#: js/BooleanBlocks.js:642 -#: js/BooleanBlocks.js:743 -#: js/BooleanBlocks.js:849 -#: js/BooleanBlocks.js:950 -#: js/SensorsBlocks.js:912 -msgid "false" +#: js/SaveInterface.js:91 +msgid "Hide" msgstr "" -#: js/blocks.js:3183 -#: js/palette.js:574 -#: js/MediaBlocks.js:892 -#: js/MediaBlocks.js:963 -msgid "text" -msgstr "бичвэр" - -#: js/blocks.js:3379 -#: js/palette.js:641 -#: js/palette.js:642 -#: js/BoxesBlocks.js:514 -msgid "store in box" +#: js/SaveInterface.js:131 +#: js/SaveInterface.js:204 +#: js/SaveInterface.js:262 +#: js/SaveInterface.js:389 +#: js/SaveInterface.js:417 +#: js/activity.js:4884 +#: planet/js/ProjectStorage.js:27 +#: planet/js/GlobalPlanet.js:467 +#: planet/js/GlobalPlanet.js:469 +#: planet/js/GlobalPlanet.js:495 +#.TRANS: default project title when saving as Lilypond +msgid "My Project" msgstr "" -#: js/blocks.js:3384 -#: js/blocks.js:3824 -#: js/blocks.js:3859 -#: js/blocks.js:3894 -#: js/blocks.js:5773 -#: js/blocks.js:5794 -#: js/BoxesBlocks.js:772 -msgid "box1" +#: js/SaveInterface.js:197 +#: planet/js/SaveInterface.js:58 +msgid "No description provided" msgstr "" -#: js/blocks.js:3386 -#: js/blocks.js:3826 -#: js/blocks.js:3861 -#: js/blocks.js:3896 -#: js/blocks.js:5775 -#: js/blocks.js:5796 -#: js/BoxesBlocks.js:663 -msgid "box2" +#: js/SaveInterface.js:332 +msgid "Your recording is in progress." msgstr "" -#: js/blocks.js:4058 -#: js/palette.js:639 -#: js/palette.js:644 -#: js/palette.js:1043 -#: js/BoxesBlocks.js:591 -msgid "store in" +#: js/SaveInterface.js:401 +#.TRANS: File name prompt for save as Lilypond +msgid "File name" msgstr "" -#: js/blocks.js:4058 -#: js/EnsembleBlocks.js:391 -#: js/EnsembleBlocks.js:402 -#: js/MediaBlocks.js:746 -#: js/ProgramBlocks.js:390 -#: js/ProgramBlocks.js:495 -#: js/ProgramBlocks.js:658 -#: js/BoxesBlocks.js:595 -#: js/PitchBlocks.js:656 -#: js/PitchBlocks.js:932 -#: js/PitchBlocks.js:1827 -#: js/ToneBlocks.js:1025 -#: js/DictBlocks.js:215 -#: js/DictBlocks.js:289 -msgid "name" +#: js/SaveInterface.js:403 +#: planet/js/StringHelper.js:39 +#.TRANS: Project title prompt for save as Lilypond +msgid "Project title" msgstr "" -#: js/blocks.js:4058 -#: js/RhythmBlocks.js:1130 -#: js/BoxesBlocks.js:75 -#: js/BoxesBlocks.js:595 -#: js/HeapBlocks.js:544 -#: js/DictBlocks.js:289 -#: js/DictBlocks.js:430 -msgid "value" -msgstr "утга" - -#: js/blocks.js:4907 -msgid "There is no block selected." +#: js/SaveInterface.js:405 +#.TRANS: Project title prompt for save as Lilypond +msgid "Project author" msgstr "" -#: js/blocks.js:5002 -#: js/MediaBlocks.js:888 -msgid "show" -msgstr "үзүүлэх" - -#: js/blocks.js:5005 -#: js/MediaBlocks.js:803 -#.TRANS: Avatar is the image used to determine the appearance of the mouse. -msgid "avatar" +#: js/SaveInterface.js:407 +#.TRANS: MIDI prompt for save as Lilypond +msgid "Include MIDI output?" msgstr "" -#: js/blocks.js:5008 -#: js/ToneBlocks.js:1010 -#: js/sampler.js:693 -#.TRANS: The sound sample that the user uploads. -msgid "sample" +#: js/SaveInterface.js:409 +#.TRANS: Guitar prompt for save as Lilypond +msgid "Include guitar tablature output?" msgstr "" -#: js/turtles.js:874 -msgid "Grid" +#: js/SaveInterface.js:411 +#.TRANS: Lilypond is a scripting language for generating sheet music +msgid "Save as Lilypond" msgstr "" -#: js/turtles.js:891 -#: js/turtledefs.js:626 -msgid "Clean" -msgstr "Арилга" - -#: js/turtles.js:912 -#: js/turtledefs.js:632 -msgid "Collapse" +#: js/SaveInterface.js:426 +#: js/blocks/EnsembleBlocks.js:75 +#: js/blocks/EnsembleBlocks.js:154 +#: js/blocks/EnsembleBlocks.js:216 +#: js/blocks/EnsembleBlocks.js:302 +#: js/blocks/EnsembleBlocks.js:348 +#: js/blocks/EnsembleBlocks.js:389 +#: js/blocks/EnsembleBlocks.js:441 +#: js/blocks/EnsembleBlocks.js:490 +#: js/blocks/EnsembleBlocks.js:536 +#: js/blocks/EnsembleBlocks.js:583 +#: js/blocks/EnsembleBlocks.js:637 +#: js/blocks/EnsembleBlocks.js:753 +#: js/blocks/EnsembleBlocks.js:840 +#: js/blocks/EnsembleBlocks.js:899 +#: js/blocks/EnsembleBlocks.js:942 +#: js/blocks/EnsembleBlocks.js:1212 +#: js/blocks/EnsembleBlocks.js:1280 +#.TRANS: default project author when saving as Lilypond +msgid "Mr. Mouse" msgstr "" -#: js/turtles.js:940 -msgid "Expand" +#: js/SaveInterface.js:573 +msgid "The Lilypond code is copied to clipboard. You can paste it here: " msgstr "" #: js/languagebox.js:198 @@ -2409,6933 +2264,7487 @@ msgstr "" msgid "Music Blocks is already set to this language." msgstr "" -#: js/piemenus.js:200 -#: js/musicutils.js:808 -#: js/musicutils.js:824 -#: js/phrasemaker.js:1672 -#: js/musickeyboard.js:2041 -#: js/sampler.js:544 -#.TRANS: double sharp is a music term related to pitch -msgid "double sharp" +#: js/planetInterface.js:131 +msgid "project undefined" msgstr "" -#: js/piemenus.js:201 -#: js/PitchBlocks.js:1510 -#: js/PitchActions.js:580 -#: js/musicutils.js:806 -#: js/musicutils.js:825 -#: js/phrasemaker.js:1673 -#: js/musickeyboard.js:2042 -#: js/sampler.js:545 -#.TRANS: sharp is a half-step up in pitch -#.TRANS: sharp is a music term related to pitch -msgid "sharp" +#: js/rubrics.js:523 +#: js/turtledefs.js:119 +#: js/turtledefs.js:221 +#: js/blocks/RhythmBlockPaletteBlocks.js:52 +#: js/blocks/RhythmBlockPaletteBlocks.js:234 +#: js/blocks/ProgramBlocks.js:745 +#: js/widgets/rhythmruler.js:2057 +#: js/widgets/rhythmruler.js:2064 +#: js/widgets/rhythmruler.js:2133 +#: js/widgets/rhythmruler.js:2140 +#: js/widgets/rhythmruler.js:2219 +#.TRANS: an arrangement of notes based on duration +msgid "rhythm" msgstr "" -#: js/piemenus.js:202 -#: js/musicutils.js:804 -#: js/musicutils.js:826 -#: js/phrasemaker.js:1674 -#: js/musickeyboard.js:2043 -#: js/sampler.js:546 -#.TRANS: natural is a music term related to pitch -msgid "natural" +#: js/rubrics.js:524 +#: js/turtledefs.js:121 +#: js/turtledefs.js:223 +#: js/block-verbose.js:2622 +#: js/block.js:2550 +#: js/blocks/IntervalsBlocks.js:63 +#: js/blocks/SensorsBlocks.js:178 +#: js/blocks/PitchBlocks.js:1839 +#: js/blocks/PitchBlocks.js:1853 +#: js/widgets/musickeyboard.js:1935 +#: js/widgets/phrasemaker.js:1036 +#.TRANS: pitch number +#.TRANS: pitch number +#.TRANS: we specify pitch in terms of a name and an octave. The name can be CDEFGAB or Do Re Mi Fa Sol La Ti. Octave is a number between 1 and 8. +msgid "pitch" msgstr "" -#: js/piemenus.js:203 -#: js/PitchBlocks.js:1469 -#: js/PitchActions.js:583 -#: js/musicutils.js:802 -#: js/musicutils.js:827 -#: js/phrasemaker.js:1675 -#: js/musickeyboard.js:2044 -#: js/sampler.js:547 -#.TRANS: flat is a half-step down in pitch -#.TRANS: flat is a music term related to pitch -msgid "flat" +#: js/rubrics.js:525 +#: js/turtledefs.js:123 +#: js/turtledefs.js:225 +msgid "tone" msgstr "" -#: js/piemenus.js:204 -#: js/musicutils.js:800 -#: js/musicutils.js:828 -#: js/phrasemaker.js:1676 -#: js/musickeyboard.js:2045 -#: js/sampler.js:548 -#.TRANS: double flat is a music term related to pitch -msgid "double flat" +#: js/rubrics.js:526 +#: js/lilypond.js:605 +#: js/lilypond.js:904 +#: js/lilypond.js:910 +#: js/lilypond.js:948 +msgid "mouse" msgstr "" -#: js/piemenus.js:2861 -#: js/PitchBlocks.js:1357 -#: js/musicutils.js:627 -#.TRANS: unison means the note is the same as the current note -#.TRANS: unison is a music term related to intervals -msgid "unison" +#: js/rubrics.js:527 +#: js/turtledefs.js:132 +#: js/turtledefs.js:234 +#: js/widgets/phrasemaker.js:1040 +msgid "pen" msgstr "" -#: js/piemenus.js:3015 -#: js/piemenus.js:3088 -#: js/musicutils.js:635 -#: js/musicutils.js:810 -#: js/musicutils.js:912 -#.TRANS: major is a music term related to intervals and mode -msgid "major" -msgstr "" +#: js/rubrics.js:528 +#: js/turtledefs.js:133 +#: js/turtledefs.js:235 +#: js/blocks/NumberBlocks.js:981 +#: js/blocks/PitchBlocks.js:1717 +#: js/blocks/PitchBlocks.js:1758 +msgid "number" +msgstr "тоо" -#: js/piemenus.js:3015 -#: js/piemenus.js:3088 -#: js/musicutils.js:653 -#.TRANS: modal scale for music -msgid "ionian" +#: js/rubrics.js:529 +#: js/turtledefs.js:127 +#: js/turtledefs.js:229 +msgid "flow" msgstr "" -#: js/piemenus.js:3017 -#: js/piemenus.js:3092 -#: js/musicutils.js:633 -#: js/musicutils.js:811 -#: js/musicutils.js:909 -#.TRANS: minor is a music term related to intervals and mode -msgid "minor" +#: js/rubrics.js:530 +#: js/turtledefs.js:128 +#: js/turtledefs.js:230 +#: js/block-verbose.js:1609 +#: js/block-verbose.js:4559 +#: js/block-verbose.js:4577 +#: js/block-verbose.js:4588 +#: js/block.js:1573 +#: js/block.js:4483 +#: js/block.js:4501 +#: js/block.js:4512 +#: js/blocks.js:1018 +#: js/blocks.js:3491 +#: js/blocks.js:3492 +#: js/blocks.js:3717 +#: js/blocks.js:4076 +#: js/blocks.js:4269 +#: js/blocks.js:5432 +#: js/blocks.js:6563 +#: js/macros.js:170 +#: js/macros.js:266 +#: js/macros.js:267 +#: js/macros.js:276 +#: js/macros.js:828 +#: js/palette.js:527 +#: js/palette.js:536 +#: js/palette.js:545 +#: js/palette.js:554 +#: js/palette.js:1129 +#: js/palette.js:1140 +#: js/palette.js:1151 +#: js/palette.js:1162 +#: js/palette.js:1181 +#: js/blocks/ActionBlocks.js:254 +#: js/blocks/ActionBlocks.js:307 +#: js/blocks/ActionBlocks.js:617 +#: js/blocks/ActionBlocks.js:716 +#: js/blocks/ActionBlocks.js:961 +#: js/blocks/ActionBlocks.js:1049 +#: js/blocks/ActionBlocks.js:1322 +#: js/blocks/ActionBlocks.js:1325 +#: js/blocks/ActionBlocks.js:1337 +#: js/blocks/ActionBlocks.js:1404 +#: js/blocks/MeterBlocks.js:715 +#: js/blocks/MeterBlocks.js:768 +#: js/blocks/MeterBlocks.js:831 +#: js/blocks/MeterBlocks.js:892 +#: js/widgets/musickeyboard.js:2986 +#: js/widgets/phrasemaker.js:4913 +#: js/widgets/rhythmruler.js:2319 +#: js/widgets/rhythmruler.js:2326 +#: js/widgets/rhythmruler.js:2511 +#: js/widgets/rhythmruler.js:2518 +msgid "action" +msgstr "үйлдэл" + +#: js/rubrics.js:531 +#: js/turtledefs.js:136 +#: js/turtledefs.js:238 +msgid "sensors" msgstr "" -#: js/piemenus.js:3017 -#: js/piemenus.js:3092 -#: js/musicutils.js:663 -#.TRANS: modal scale for music -msgid "aeolian" +#: js/rubrics.js:532 +#: js/turtledefs.js:135 +#: js/turtledefs.js:237 +#: js/blocks/MediaBlocks.js:930 +msgid "media" msgstr "" -#: js/piemenus.js:3407 -msgid "Duplicate" +#: js/rubrics.js:533 +msgid "mice" msgstr "" -#: js/piemenus.js:3408 -#: js/turtledefs.js:534 -msgid "Extract" +#: js/toolbar.js:48 +#: js/toolbar.js:109 +msgid "About Music Blocks" msgstr "" -#: js/piemenus.js:3409 -msgid "Move to trash" +#: js/toolbar.js:49 +#: js/toolbar.js:110 +#: js/toolbar.js:175 +#: js/toolbar.js:231 +#: js/turtledefs.js:445 +#: js/turtledefs.js:482 +#: js/activity.js:2660 +#: js/activity.js:2671 +#: js/activity.js:2902 +#: js/widgets/modewidget.js:77 +#: js/widgets/meterwidget.js:185 +#: js/widgets/pitchdrummatrix.js:147 +#: js/widgets/pitchdrummatrix.js:687 +#: js/widgets/pitchdrummatrix.js:689 +#: js/widgets/pitchdrummatrix.js:741 +#: js/widgets/pitchdrummatrix.js:743 +#: js/widgets/pitchdrummatrix.js:758 +#: js/widgets/pitchdrummatrix.js:760 +#: js/widgets/pitchdrummatrix.js:789 +#: js/widgets/pitchdrummatrix.js:791 +#: js/widgets/pitchstaircase.js:121 +#: js/widgets/temperament.js:610 +#: js/widgets/temperament.js:613 +#: js/widgets/temperament.js:673 +#: js/widgets/temperament.js:675 +#: js/widgets/temperament.js:2017 +#: js/widgets/temperament.js:2019 +#: js/widgets/tempo.js:84 +#: js/widgets/tempo.js:86 +#: js/widgets/timbre.js:432 +#: js/widgets/timbre.js:434 +#: js/widgets/timbre.js:465 +#: js/widgets/timbre.js:467 +#: js/widgets/timbre.js:746 +#: js/widgets/aiwidget.js:647 +#: js/widgets/aiwidget.js:654 +#: js/widgets/aiwidget.js:656 +#: js/widgets/arpeggio.js:90 +#: js/widgets/arpeggio.js:547 +#: js/widgets/arpeggio.js:549 +#: js/widgets/arpeggio.js:644 +#: js/widgets/arpeggio.js:646 +#: js/widgets/musickeyboard.js:676 +#: js/widgets/musickeyboard.js:872 +#: js/widgets/musickeyboard.js:874 +#: js/widgets/musickeyboard.js:953 +#: js/widgets/musickeyboard.js:955 +#: js/widgets/phrasemaker.js:513 +#: js/widgets/phrasemaker.js:523 +#: js/widgets/phrasemaker.js:525 +#: js/widgets/phrasemaker.js:4304 +#: js/widgets/phrasemaker.js:4528 +#: js/widgets/phrasemaker.js:4533 +#: js/widgets/phrasemaker.js:4535 +#: js/widgets/phrasemaker.js:4650 +#: js/widgets/rhythmruler.js:637 +#: js/widgets/rhythmruler.js:639 +#: js/widgets/rhythmruler.js:653 +#: js/widgets/rhythmruler.js:655 +#: js/widgets/sampler.js:162 +#: js/widgets/sampler.js:164 +#: js/widgets/sampler.js:363 +msgid "Play" msgstr "" -#: js/piemenus.js:3410 -#: js/timbre.js:968 -#: js/StringHelper.js:69 -msgid "Close" +#: js/toolbar.js:50 +#: js/toolbar.js:111 +#: js/toolbar.js:176 +#: js/toolbar.js:232 +#: js/turtledefs.js:451 +#: js/turtledefs.js:488 +#: js/activity.js:2679 +#: js/widgets/modewidget.js:99 +#: js/widgets/modewidget.js:101 +#: js/widgets/meterwidget.js:206 +#: js/widgets/meterwidget.js:208 +#: js/widgets/pitchdrummatrix.js:674 +#: js/widgets/pitchdrummatrix.js:676 +#: js/widgets/temperament.js:2002 +#: js/widgets/temperament.js:2004 +#: js/widgets/arpeggio.js:534 +#: js/widgets/arpeggio.js:536 +#: js/widgets/phrasemaker.js:534 +#: js/widgets/phrasemaker.js:536 +msgid "Stop" +msgstr "Зогсоох" + +#: js/toolbar.js:51 +#: js/toolbar.js:112 +#: js/toolbar.js:177 +#: js/toolbar.js:233 +#: js/turtledefs.js:498 +msgid "Record" msgstr "" -#: js/piemenus.js:3416 -msgid "Save stack" +#: js/toolbar.js:52 +#: js/toolbar.js:53 +msgid "Full screen" msgstr "" -#: js/piemenus.js:3420 -#: js/toolbar.js:60 +#: js/toolbar.js:54 +#: js/toolbar.js:115 +#: js/toolbar.js:180 +#: js/toolbar.js:236 +#: js/turtledefs.js:504 +msgid "Toggle Fullscreen" +msgstr "" + +#: js/toolbar.js:55 +#: js/toolbar.js:116 +#: js/toolbar.js:181 +#: js/toolbar.js:237 +#: js/turtledefs.js:510 +#: planet/js/StringHelper.js:33 +msgid "New project" +msgstr "" + +#: js/toolbar.js:56 +#: js/toolbar.js:117 +#: js/toolbar.js:182 +#: js/toolbar.js:238 +#: js/turtledefs.js:516 +msgid "Load project from file" +msgstr "" + +#: js/toolbar.js:57 +#: js/toolbar.js:118 +#: js/toolbar.js:119 +#: js/toolbar.js:183 +#: js/toolbar.js:239 +#: js/turtledefs.js:541 +#: js/turtledefs.js:550 +#: js/turtledefs.js:571 +msgid "Save project" +msgstr "" + +#: js/toolbar.js:58 +#: js/toolbar.js:77 +#: js/toolbar.js:79 +#: js/toolbar.js:138 +#: js/toolbar.js:147 +#: js/toolbar.js:149 +#: js/toolbar.js:184 +#: js/toolbar.js:202 +#: js/toolbar.js:204 +#: js/toolbar.js:240 +#: js/toolbar.js:258 +#: js/toolbar.js:260 +msgid "Save project as HTML" +msgstr "" + +#: js/toolbar.js:59 #: js/toolbar.js:120 #: js/toolbar.js:185 -#: js/toolbar.js:240 +#: js/toolbar.js:241 +msgid "Find and share projects" +msgstr "" + +#: js/toolbar.js:60 +#: js/toolbar.js:121 +#: js/toolbar.js:186 +#: js/toolbar.js:242 +msgid "Offline. Sharing is unavailable" +msgstr "" + +#: js/toolbar.js:61 +#: js/toolbar.js:122 +#: js/toolbar.js:187 +#: js/toolbar.js:243 +msgid "Auxiliary menu" +msgstr "" + +#: js/toolbar.js:62 +#: js/toolbar.js:123 +#: js/toolbar.js:188 +#: js/toolbar.js:244 #: js/turtledefs.js:752 +#: js/piemenus.js:3423 msgid "Help" msgstr "Тусламж" -#: js/piemenus.js:3762 -msgid "You have chosen key " +#: js/toolbar.js:63 +#: js/toolbar.js:124 +#: js/toolbar.js:189 +#: js/toolbar.js:245 +msgid "Run slowly" +msgstr "" + +#: js/toolbar.js:64 +#: js/toolbar.js:125 +#: js/toolbar.js:190 +#: js/toolbar.js:246 +#: js/turtledefs.js:682 +msgid "Run step by step" +msgstr "" + +#: js/toolbar.js:65 +#: js/toolbar.js:126 +#: js/toolbar.js:191 +#: js/toolbar.js:247 +#: js/turtledefs.js:689 +msgid "Display statistics" +msgstr "" + +#: js/toolbar.js:66 +#: js/toolbar.js:127 +#: js/toolbar.js:192 +#: js/toolbar.js:248 +msgid "Load plugin" +msgstr "" + +#: js/toolbar.js:67 +#: js/toolbar.js:128 +#: js/toolbar.js:193 +#: js/toolbar.js:249 +#: js/turtledefs.js:696 +msgid "Delete plugin" +msgstr "" + +#: js/toolbar.js:68 +#: js/toolbar.js:129 +#: js/toolbar.js:194 +#: js/toolbar.js:250 +msgid "Enable horizontal scrolling" +msgstr "" + +#: js/toolbar.js:69 +#: js/toolbar.js:130 +#: js/toolbar.js:195 +#: js/toolbar.js:251 +msgid "Disable horizontal scrolling" +msgstr "" + +#: js/toolbar.js:70 +#: js/toolbar.js:131 +#: js/toolbar.js:196 +#: js/toolbar.js:252 +#: planet/js/LocalCard.js:54 +#: planet/js/StringHelper.js:71 +msgid "Merge with current project" +msgstr "" + +#: js/toolbar.js:71 +#: js/toolbar.js:132 +msgid "Set Pitch Preview" +msgstr "" + +#: js/toolbar.js:72 +#: js/toolbar.js:133 +#: js/toolbar.js:197 +#: js/toolbar.js:253 +msgid "JavaScript Editor" +msgstr "" + +#: js/toolbar.js:73 +#: js/toolbar.js:134 +#: js/toolbar.js:198 +#: js/toolbar.js:254 +#: js/turtledefs.js:724 +msgid "Restore" +msgstr "" + +#: js/toolbar.js:74 +#: js/toolbar.js:135 +#: js/toolbar.js:199 +#: js/toolbar.js:255 +msgid "Switch to beginner mode" +msgstr "" + +#: js/toolbar.js:75 +#: js/toolbar.js:136 +#: js/toolbar.js:200 +#: js/toolbar.js:256 +msgid "Switch to advanced mode" +msgstr "" + +#: js/toolbar.js:76 +#: js/toolbar.js:137 +#: js/toolbar.js:146 +#: js/toolbar.js:201 +#: js/toolbar.js:257 +#: js/turtledefs.js:738 +msgid "Select language" +msgstr "" + +#: js/toolbar.js:78 +#: js/toolbar.js:81 +#: js/toolbar.js:140 +#: js/turtledefs.js:579 +msgid "Save mouse artwork as PNG" +msgstr "" + +#: js/toolbar.js:80 +#: js/toolbar.js:139 +#: js/turtledefs.js:575 +msgid "Save mouse artwork as SVG" +msgstr "" + +#: js/toolbar.js:82 +#: js/toolbar.js:141 +#: js/turtledefs.js:583 +msgid "Save music as WAV" +msgstr "" + +#: js/toolbar.js:83 +#: js/toolbar.js:142 +#: js/turtledefs.js:587 +msgid "Save sheet music as ABC" +msgstr "" + +#: js/toolbar.js:84 +#: js/toolbar.js:143 +#: js/turtledefs.js:591 +msgid "Save sheet music as Lilypond" +msgstr "" + +#: js/toolbar.js:85 +msgid "Save sheet music as MusicXML" +msgstr "" + +#: js/toolbar.js:86 +#: js/toolbar.js:144 +#: js/toolbar.js:152 +#: js/toolbar.js:207 +#: js/toolbar.js:263 +#: js/turtledefs.js:562 +#: js/turtledefs.js:595 +msgid "Save block artwork as SVG" +msgstr "" + +#: js/toolbar.js:87 +#: js/toolbar.js:145 +#: js/toolbar.js:153 +#: js/toolbar.js:208 +#: js/toolbar.js:264 +#: js/turtles.js:911 +msgid "Confirm" +msgstr "" + +#: js/toolbar.js:88 +#: js/toolbar.js:154 +#: js/toolbar.js:209 +#: js/toolbar.js:265 +msgid "English (United States)" +msgstr "" + +#: js/toolbar.js:89 +#: js/toolbar.js:155 +#: js/toolbar.js:210 +#: js/toolbar.js:266 +msgid "English (United Kingdom)" +msgstr "" + +#: js/toolbar.js:90 +#: js/toolbar.js:156 +#: js/toolbar.js:211 +#: js/toolbar.js:267 +msgid "日本語" +msgstr "" + +#: js/toolbar.js:91 +msgid "한국어" +msgstr "" + +#: js/toolbar.js:92 +#: js/toolbar.js:158 +#: js/toolbar.js:213 +#: js/toolbar.js:269 +msgid "español" +msgstr "" + +#: js/toolbar.js:93 +#: js/toolbar.js:159 +#: js/toolbar.js:214 +#: js/toolbar.js:270 +msgid "português" +msgstr "" + +#: js/toolbar.js:94 +#: js/toolbar.js:160 +#: js/toolbar.js:215 +#: js/toolbar.js:271 +msgid "にほんご" +msgstr "" + +#: js/toolbar.js:95 +#: js/toolbar.js:161 +#: js/toolbar.js:216 +#: js/toolbar.js:272 +msgid "中文" +msgstr "" + +#: js/toolbar.js:96 +#: js/toolbar.js:162 +#: js/toolbar.js:217 +#: js/toolbar.js:273 +msgid "ภาษาไทย" +msgstr "" + +#: js/toolbar.js:97 +#: js/toolbar.js:163 +#: js/toolbar.js:218 +#: js/toolbar.js:274 +msgid "aymara" +msgstr "" + +#: js/toolbar.js:98 +#: js/toolbar.js:164 +#: js/toolbar.js:219 +#: js/toolbar.js:275 +msgid "quechua" +msgstr "" + +#: js/toolbar.js:99 +#: js/toolbar.js:165 +#: js/toolbar.js:220 +#: js/toolbar.js:276 +msgid "guarani" +msgstr "" + +#: js/toolbar.js:100 +#: js/toolbar.js:166 +#: js/toolbar.js:221 +#: js/toolbar.js:277 +msgid "हिंदी" +msgstr "" + +#: js/toolbar.js:101 +#: js/toolbar.js:168 +#: js/toolbar.js:222 +#: js/toolbar.js:279 +msgid "igbo" +msgstr "" + +#: js/toolbar.js:102 +#: js/toolbar.js:169 +#: js/toolbar.js:223 +#: js/toolbar.js:280 +msgid "عربى" +msgstr "" + +#: js/toolbar.js:103 +#: js/toolbar.js:167 +#: js/toolbar.js:224 +#: js/toolbar.js:278 +msgid "తెలుగు" +msgstr "" + +#: js/toolbar.js:104 +#: js/toolbar.js:170 +#: js/toolbar.js:225 +#: js/toolbar.js:281 +msgid "עִברִית" +msgstr "" + +#: js/toolbar.js:113 +#: js/toolbar.js:114 +#: js/toolbar.js:178 +#: js/toolbar.js:179 +#: js/toolbar.js:234 +#: js/toolbar.js:235 +msgid "Full Screen" +msgstr "" + +#: js/toolbar.js:148 +#: js/toolbar.js:151 +#: js/toolbar.js:203 +#: js/toolbar.js:206 +#: js/toolbar.js:259 +#: js/toolbar.js:262 +#: js/turtledefs.js:558 +msgid "Save turtle artwork as PNG" +msgstr "" + +#: js/toolbar.js:150 +#: js/toolbar.js:205 +#: js/toolbar.js:261 +#: js/turtledefs.js:554 +msgid "Save turtle artwork as SVG" +msgstr "" + +#: js/toolbar.js:157 +#: js/toolbar.js:212 +#: js/toolbar.js:268 +msgid "한국인" +msgstr "" + +#: js/toolbar.js:174 +#: js/toolbar.js:230 +msgid "About Turtle Blocks" +msgstr "" + +#: js/toolbar.js:446 +#: js/toolbar.js:457 +#: js/toolbar.js:497 +msgid "Turtle Wrap Off" +msgstr "" + +#: js/toolbar.js:466 +#: js/toolbar.js:506 +msgid "Turtle Wrap On" +msgstr "" + +#: js/turtle-painter.js:1192 +#: js/turtle-painter.js:1193 +#: js/turtles.js:118 +#: js/block-verbose.js:1623 +#: js/block.js:1587 +#: js/lilypond.js:749 +#: js/lilypond.js:913 +#: js/lilypond.js:951 +#: js/logo.js:1184 +#: js/blocks/ActionBlocks.js:1223 +#: js/blocks/ProgramBlocks.js:1267 +msgid "start" +msgstr "эхэл" + +#: js/turtledefs.js:40 +#.TRANS: put the URL to the guide here, e.g., https://github.com/sugarlabs/turtleblocksjs/tree/master/guide/README.md +msgid "guide url" +msgstr "" + +#: js/turtledefs.js:85 +#: js/turtledefs.js:437 +msgid "Turtle Blocks is a Logo-inspired turtle that draws colorful pictures with snap-together visual-programming blocks." +msgstr "" + +#: js/turtledefs.js:118 +#: js/turtledefs.js:220 +msgid "search" +msgstr "" + +#: js/turtledefs.js:120 +#: js/turtledefs.js:222 +#: js/blocks/MeterBlocks.js:1343 +#: js/blocks/WidgetBlocks.js:522 +#.TRANS: musical meter (time signature), e.g., 4:4 +msgid "meter" +msgstr "" + +#: js/turtledefs.js:122 +#: js/turtledefs.js:224 +msgid "intervals" +msgstr "" + +#: js/turtledefs.js:124 +#: js/turtledefs.js:226 +msgid "ornament" +msgstr "" + +#: js/turtledefs.js:125 +#: js/turtledefs.js:227 +#: js/blocks/VolumeBlocks.js:362 +#: js/blocks/VolumeBlocks.js:502 +#: js/blocks/VolumeBlocks.js:545 +msgid "volume" +msgstr "" + +#: js/turtledefs.js:126 +#: js/turtledefs.js:228 +#: js/block-verbose.js:1700 +#: js/block-verbose.js:2626 +#: js/block.js:1664 +#: js/block.js:2554 +#: js/lilypond.js:732 +#: js/lilypond.js:897 +#: js/lilypond.js:941 +#: js/palette.js:577 +#: js/blocks/RhythmBlocks.js:766 +#: js/blocks/DrumBlocks.js:477 +#: js/blocks/VolumeBlocks.js:502 +#: js/widgets/phrasemaker.js:1038 +msgid "drum" +msgstr "" + +#: js/turtledefs.js:129 +#: js/turtledefs.js:231 +msgid "boxes" +msgstr "" + +#: js/turtledefs.js:130 +#: js/turtledefs.js:232 +msgid "widgets" +msgstr "" + +#: js/turtledefs.js:131 +#: js/turtledefs.js:233 +#: js/widgets/phrasemaker.js:1039 +msgid "graphics" +msgstr "" + +#: js/turtledefs.js:134 +#: js/turtledefs.js:236 +msgid "boolean" +msgstr "" + +#: js/turtledefs.js:137 +#: js/turtledefs.js:239 +#: js/blocks/HeapBlocks.js:59 +#: js/widgets/status.js:147 +msgid "heap" +msgstr "" + +#: js/turtledefs.js:138 +#: js/turtledefs.js:240 +#: js/blocks/DictBlocks.js:142 +#: js/blocks/ProgramBlocks.js:495 +msgid "dictionary" +msgstr "" + +#: js/turtledefs.js:139 +#: js/turtledefs.js:241 +msgid "ensemble" +msgstr "" + +#: js/turtledefs.js:140 +#: js/turtledefs.js:242 +msgid "extras" +msgstr "" + +#: js/turtledefs.js:142 +#: js/turtledefs.js:244 +#.TRANS: program as in computer program +#.TRANS: program as in computer program +msgid "program" +msgstr "" + +#: js/turtledefs.js:143 +#: js/turtledefs.js:245 +msgid "my blocks" +msgstr "" + +#: js/turtledefs.js:185 +#: js/turtledefs.js:281 +msgid "artwork" msgstr "" -#: js/piemenus.js:3766 -msgid " for your pitch preview." +#: js/turtledefs.js:185 +#: js/turtledefs.js:281 +msgid "logic" msgstr "" -#: js/palette.js:571 -msgid "grid" +#: js/turtledefs.js:185 +#: js/turtledefs.js:281 +msgid "music" msgstr "" -#: js/palette.js:577 -#: js/block.js:1540 -#: js/block.js:2343 -#: js/turtledefs.js:126 -#: js/turtledefs.js:228 -#: js/lilypond.js:740 -#: js/lilypond.js:905 -#: js/lilypond.js:949 -#: js/DrumBlocks.js:486 -#: js/RhythmBlocks.js:766 -#: js/VolumeBlocks.js:502 -#: js/phrasemaker.js:823 -msgid "drum" +#: js/turtledefs.js:187 +#: js/turtledefs.js:463 +msgid "Music Blocks is a collection of tools for exploring fundamental musical concepts in a fun way." msgstr "" -#: js/palette.js:580 -msgid "effect" +#: js/turtledefs.js:436 +msgid "Welcome to Turtle Blocks" msgstr "" -#: js/palette.js:586 -msgid "sargam" +#: js/turtledefs.js:438 +#: js/turtledefs.js:465 +#: js/turtledefs.js:774 +#: js/turtledefs.js:805 +msgid "The current version is" msgstr "" -#: js/palette.js:589 -#: js/activity.js:1833 -#: js/RhythmBlocks.js:923 -#: js/PitchBlocks.js:442 -#: js/PitchBlocks.js:1748 -#.TRANS: a numeric mapping of the notes in an octave based on the musical mode -msgid "scale degree" +#: js/turtledefs.js:446 +#: js/turtledefs.js:483 +msgid "Click the run button to run the project in fast mode." msgstr "" -#: js/palette.js:592 -#: js/activity.js:1860 -msgid "mode name" +#: js/turtledefs.js:452 +msgid "Stop the turtle." msgstr "" -#: js/palette.js:595 -#: js/activity.js:1839 -msgid "invert mode" +#: js/turtledefs.js:454 +#: js/turtledefs.js:491 +msgid "You can also type Alt-S to stop." msgstr "" -#: js/palette.js:598 -#: js/activity.js:1836 -msgid "voice name" +#: js/turtledefs.js:462 +#: js/widgets/help.js:333 +msgid "Welcome to Music Blocks" msgstr "" -#: js/palette.js:601 -#: js/PitchBlocks.js:1181 -msgid "custom pitch" +#: js/turtledefs.js:472 +#: js/widgets/help.js:334 +msgid "Meet Mr. Mouse!" msgstr "" -#: js/palette.js:605 -#: js/block.js:1456 -#: js/block.js:1575 -#: js/WidgetBlocks.js:218 -#: js/IntervalsBlocks.js:63 -msgid "temperament" +#: js/turtledefs.js:473 +msgid "Mr Mouse is our Music Blocks conductor." msgstr "" -#: js/palette.js:609 -msgid "accidental" +#: js/turtledefs.js:475 +msgid "Mr Mouse encourages you to explore Music Blocks." msgstr "" -#: js/palette.js:615 -#: js/activity.js:1866 -msgid "interval name" +#: js/turtledefs.js:477 +msgid "Let us start our tour!" msgstr "" -#: js/palette.js:633 -#: js/PitchBlocks.js:405 -msgid "pitch converter" +#: js/turtledefs.js:489 +msgid "Stop the music (and the mice)." msgstr "" -#: js/rubrics.js:522 -#: js/turtledefs.js:119 -#: js/turtledefs.js:221 -#: js/RhythmBlockPaletteBlocks.js:52 -#: js/RhythmBlockPaletteBlocks.js:233 -#: js/ProgramBlocks.js:745 -#: js/rhythmruler.js:1670 -#: js/rhythmruler.js:1677 -#: js/rhythmruler.js:1745 -#: js/rhythmruler.js:1752 -#: js/rhythmruler.js:1830 -#.TRANS: an arrangement of notes based on duration -msgid "rhythm" +#: js/turtledefs.js:499 +msgid "Record your project as video." msgstr "" -#: js/rubrics.js:523 -#: js/block.js:2339 -#: js/turtledefs.js:121 -#: js/turtledefs.js:223 -#: js/IntervalsBlocks.js:63 -#: js/PitchBlocks.js:1801 -#: js/PitchBlocks.js:1814 -#: js/SensorsBlocks.js:178 -#: js/phrasemaker.js:821 -#: js/musickeyboard.js:1653 -#.TRANS: pitch number -#.TRANS: we specify pitch in terms of a name and an octave. The name can be CDEFGAB or Do Re Mi Fa Sol La Ti. Octave is a number between 1 and 8. -msgid "pitch" +#: js/turtledefs.js:505 +msgid "Toggle Fullscreen mode." msgstr "" -#: js/rubrics.js:524 -#: js/turtledefs.js:123 -#: js/turtledefs.js:225 -msgid "tone" +#: js/turtledefs.js:511 +msgid "Initialize a new project." msgstr "" -#: js/rubrics.js:525 -#: js/lilypond.js:613 -#: js/lilypond.js:912 -#: js/lilypond.js:918 -#: js/lilypond.js:956 -msgid "mouse" +#: js/turtledefs.js:517 +msgid "You can also load projects from the file system." msgstr "" -#: js/rubrics.js:526 -#: js/turtledefs.js:132 -#: js/turtledefs.js:234 -#: js/phrasemaker.js:825 -msgid "pen" +#: js/turtledefs.js:522 +#: planet/js/StringHelper.js:46 +msgid "Delete" msgstr "" -#: js/rubrics.js:527 -#: js/turtledefs.js:133 -#: js/turtledefs.js:235 -#: js/NumberBlocks.js:905 -#: js/PitchBlocks.js:1679 -#: js/PitchBlocks.js:1720 -msgid "number" -msgstr "тоо" +#: js/turtledefs.js:523 +msgid "To delete a block, just right-click on it, then you will be able to see the delete option" +msgstr "" -#: js/rubrics.js:528 -#: js/turtledefs.js:127 -#: js/turtledefs.js:229 -msgid "flow" +#: js/turtledefs.js:528 +#: js/activity.js:2649 +#: planet/js/LocalCard.js:31 +msgid "Copy" +msgstr "Хуулах" + +#: js/turtledefs.js:529 +msgid "To copy a block, just right-click on it, then you will be able to see the copy option" msgstr "" -#: js/rubrics.js:530 -#: js/turtledefs.js:136 -#: js/turtledefs.js:238 -msgid "sensors" +#: js/turtledefs.js:534 +#: js/piemenus.js:3411 +msgid "Extract" msgstr "" -#: js/rubrics.js:531 -#: js/turtledefs.js:135 -#: js/turtledefs.js:237 -#: js/MediaBlocks.js:930 -msgid "media" +#: js/turtledefs.js:535 +msgid "To extract a block, just right-click on it, then you will be able to see the extract option" msgstr "" -#: js/rubrics.js:532 -msgid "mice" +#: js/turtledefs.js:542 +#: js/turtledefs.js:552 +#: js/turtledefs.js:573 +msgid "Save your project to a file." msgstr "" -#: js/macros.js:711 -#: js/musicutils.js:783 -#: js/synthutils.js:181 -#.TRANS: animal sound effect -msgid "duck" +#: js/turtledefs.js:549 +#: js/turtledefs.js:570 +msgid "save" msgstr "" -#: js/toolbar.js:46 -#: js/toolbar.js:107 -msgid "About Music Blocks" +#: js/turtledefs.js:556 +#: js/turtledefs.js:577 +msgid "Save graphics from your project to as SVG." msgstr "" -#: js/toolbar.js:47 -#: js/toolbar.js:108 -#: js/toolbar.js:172 -#: js/toolbar.js:228 -#: js/turtledefs.js:445 -#: js/turtledefs.js:482 -#: js/activity.js:2281 -#: js/activity.js:2289 -#: js/activity.js:2520 -#: js/modewidget.js:77 -#: js/pitchstaircase.js:121 -#: js/phrasemaker.js:302 -#: js/phrasemaker.js:312 -#: js/phrasemaker.js:314 -#: js/phrasemaker.js:3901 -#: js/phrasemaker.js:4061 -#: js/phrasemaker.js:4066 -#: js/phrasemaker.js:4068 -#: js/phrasemaker.js:4183 -#: js/pitchdrummatrix.js:81 -#: js/pitchdrummatrix.js:574 -#: js/pitchdrummatrix.js:576 -#: js/pitchdrummatrix.js:628 -#: js/pitchdrummatrix.js:630 -#: js/pitchdrummatrix.js:645 -#: js/pitchdrummatrix.js:647 -#: js/pitchdrummatrix.js:674 -#: js/pitchdrummatrix.js:676 -#: js/temperament.js:477 -#: js/temperament.js:480 -#: js/temperament.js:540 -#: js/temperament.js:542 -#: js/temperament.js:1835 -#: js/temperament.js:1837 -#: js/temperament.js:1986 -#: js/temperament.js:1988 -#: js/musickeyboard.js:522 -#: js/musickeyboard.js:682 -#: js/musickeyboard.js:684 -#: js/musickeyboard.js:756 -#: js/musickeyboard.js:758 -#: js/rhythmruler.js:298 -#: js/rhythmruler.js:300 -#: js/rhythmruler.js:314 -#: js/rhythmruler.js:316 -#: js/sampler.js:96 -#: js/sampler.js:98 -#: js/sampler.js:229 -#: js/sampler.js:235 -#: js/sampler.js:237 -#: js/tempo.js:84 -#: js/tempo.js:86 -#: js/timbre.js:432 -#: js/timbre.js:434 -#: js/timbre.js:465 -#: js/timbre.js:467 -#: js/timbre.js:746 -#: js/meterwidget.js:80 -#: js/arpeggio.js:90 -#: js/arpeggio.js:547 -#: js/arpeggio.js:549 -#: js/arpeggio.js:644 -#: js/arpeggio.js:646 -msgid "Play" +#: js/turtledefs.js:560 +#: js/turtledefs.js:581 +msgid "Save graphics from your project as PNG." msgstr "" -#: js/toolbar.js:48 -#: js/toolbar.js:109 -#: js/toolbar.js:173 -#: js/toolbar.js:229 -#: js/turtledefs.js:451 -#: js/turtledefs.js:488 -#: js/activity.js:2297 -#: js/modewidget.js:99 -#: js/modewidget.js:101 -#: js/phrasemaker.js:323 -#: js/phrasemaker.js:325 -#: js/pitchdrummatrix.js:561 -#: js/pitchdrummatrix.js:563 -#: js/temperament.js:1820 -#: js/temperament.js:1822 -#: js/meterwidget.js:101 -#: js/meterwidget.js:103 -#: js/arpeggio.js:534 -#: js/arpeggio.js:536 -msgid "Stop" -msgstr "Зогсоох" +#: js/turtledefs.js:564 +#: js/turtledefs.js:597 +msgid "Save block artwork as an SVG file." +msgstr "" -#: js/toolbar.js:49 -#: js/toolbar.js:110 -#: js/toolbar.js:174 -#: js/toolbar.js:230 -#: js/turtledefs.js:498 -msgid "Record" +#: js/turtledefs.js:585 +msgid "Save audio from your project as WAV." msgstr "" -#: js/toolbar.js:50 -#: js/toolbar.js:51 -msgid "Full screen" +#: js/turtledefs.js:589 +msgid "Save your project to as an ABC file." msgstr "" -#: js/toolbar.js:52 -#: js/toolbar.js:112 -#: js/toolbar.js:177 -#: js/toolbar.js:232 -#: js/turtledefs.js:504 -msgid "Toggle Fullscreen" +#: js/turtledefs.js:593 +msgid "Save your project to as a Lilypond file." msgstr "" -#: js/toolbar.js:53 -#: js/toolbar.js:113 -#: js/toolbar.js:178 -#: js/toolbar.js:233 -#: js/turtledefs.js:510 -#: js/StringHelper.js:33 -msgid "New project" +#: js/turtledefs.js:604 +msgid "Load samples from server" msgstr "" -#: js/toolbar.js:54 -#: js/toolbar.js:114 -#: js/toolbar.js:179 -#: js/toolbar.js:234 -#: js/turtledefs.js:516 -msgid "Load project from file" +#: js/turtledefs.js:605 +msgid "This button opens a viewer for loading example projects." msgstr "" -#: js/toolbar.js:55 -#: js/toolbar.js:115 -#: js/toolbar.js:116 -#: js/toolbar.js:180 -#: js/toolbar.js:235 -#: js/turtledefs.js:541 -#: js/turtledefs.js:550 -#: js/turtledefs.js:571 -msgid "Save project" +#: js/turtledefs.js:611 +msgid "Palette buttons" msgstr "" -#: js/toolbar.js:56 -#: js/toolbar.js:75 -#: js/toolbar.js:77 -#: js/toolbar.js:135 -#: js/toolbar.js:144 -#: js/toolbar.js:146 -#: js/toolbar.js:181 -#: js/toolbar.js:199 -#: js/toolbar.js:201 -#: js/toolbar.js:236 -#: js/toolbar.js:254 -#: js/toolbar.js:256 -msgid "Save project as HTML" +#: js/turtledefs.js:612 +msgid "This toolbar contains the palette buttons including Rhythm Pitch Tone Action and more." msgstr "" -#: js/toolbar.js:57 -#: js/toolbar.js:117 -#: js/toolbar.js:182 -#: js/toolbar.js:237 -msgid "Find and share projects" +#: js/turtledefs.js:614 +msgid "Click to show the palettes of blocks and drag blocks from the palettes onto the canvas to use them." msgstr "" -#: js/toolbar.js:58 -#: js/toolbar.js:118 -#: js/toolbar.js:183 -#: js/toolbar.js:238 -msgid "Offline. Sharing is unavailable" +#: js/turtledefs.js:620 +msgid "Cartesian/Polar" +msgstr "" + +#: js/turtledefs.js:621 +msgid "Show or hide a coordinate grid." +msgstr "" + +#: js/turtledefs.js:626 +#: js/turtles.js:902 +msgid "Clean" +msgstr "Арилга" + +#: js/turtledefs.js:627 +msgid "Clear the screen and return the mice to their initial positions." msgstr "" -#: js/toolbar.js:59 -#: js/toolbar.js:119 -#: js/toolbar.js:184 -#: js/toolbar.js:239 -msgid "Auxiliary menu" +#: js/turtledefs.js:632 +#: js/turtles.js:955 +msgid "Collapse" msgstr "" -#: js/toolbar.js:61 -#: js/toolbar.js:121 -#: js/toolbar.js:186 -#: js/toolbar.js:241 -msgid "Run slowly" +#: js/turtledefs.js:633 +msgid "Collapse the graphics window." msgstr "" -#: js/toolbar.js:62 -#: js/toolbar.js:122 -#: js/toolbar.js:187 -#: js/toolbar.js:242 -#: js/turtledefs.js:682 -msgid "Run step by step" +#: js/turtledefs.js:638 +#: js/activity.js:5684 +msgid "Home" msgstr "" -#: js/toolbar.js:63 -#: js/toolbar.js:123 -#: js/toolbar.js:188 -#: js/toolbar.js:243 -#: js/turtledefs.js:689 -msgid "Display statistics" +#: js/turtledefs.js:639 +msgid "Return all blocks to the center of the screen." msgstr "" -#: js/toolbar.js:64 -#: js/toolbar.js:124 -#: js/toolbar.js:189 -#: js/toolbar.js:244 -msgid "Load plugin" +#: js/turtledefs.js:644 +msgid "Show/hide blocks" msgstr "" -#: js/toolbar.js:65 -#: js/toolbar.js:125 -#: js/toolbar.js:190 -#: js/toolbar.js:245 -#: js/turtledefs.js:696 -msgid "Delete plugin" +#: js/turtledefs.js:645 +msgid "Hide or show the blocks and the palettes." msgstr "" -#: js/toolbar.js:66 -#: js/toolbar.js:126 -#: js/toolbar.js:191 -#: js/toolbar.js:246 -msgid "Enable horizontal scrolling" +#: js/turtledefs.js:650 +msgid "Expand/collapse collapsable blocks" msgstr "" -#: js/toolbar.js:67 -#: js/toolbar.js:127 -#: js/toolbar.js:192 -#: js/toolbar.js:247 -msgid "Disable horizontal scrolling" +#: js/turtledefs.js:651 +msgid "Expand or collapse start and action stacks." msgstr "" -#: js/toolbar.js:68 -#: js/toolbar.js:128 -#: js/toolbar.js:193 -#: js/toolbar.js:248 -#: js/LocalCard.js:54 -#: js/StringHelper.js:71 -msgid "Merge with current project" +#: js/turtledefs.js:658 +#: js/activity.js:5704 +msgid "Decrease block size" msgstr "" -#: js/toolbar.js:69 -#: js/toolbar.js:129 -msgid "Set Pitch Preview" +#: js/turtledefs.js:659 +msgid "Decrease the size of the blocks." msgstr "" -#: js/toolbar.js:70 -#: js/toolbar.js:130 -#: js/toolbar.js:194 -#: js/toolbar.js:249 -msgid "Toggle JavaScript Editor" +#: js/turtledefs.js:664 +#: js/activity.js:5710 +msgid "Increase block size" msgstr "" -#: js/toolbar.js:71 -#: js/toolbar.js:131 -#: js/toolbar.js:195 -#: js/toolbar.js:250 -#: js/turtledefs.js:724 -msgid "Restore" +#: js/turtledefs.js:665 +msgid "Increase the size of the blocks." msgstr "" -#: js/toolbar.js:72 -#: js/toolbar.js:132 -#: js/toolbar.js:196 -#: js/toolbar.js:251 -msgid "Switch to beginner mode" +#: js/turtledefs.js:670 +msgid "Expand/collapse option toolbar" msgstr "" -#: js/toolbar.js:73 -#: js/toolbar.js:133 -#: js/toolbar.js:197 -#: js/toolbar.js:252 -msgid "Switch to advanced mode" +#: js/turtledefs.js:671 +msgid "Click this button to expand or collapse the auxillary toolbar." msgstr "" -#: js/toolbar.js:74 -#: js/toolbar.js:134 -#: js/toolbar.js:143 -#: js/toolbar.js:198 -#: js/toolbar.js:253 -#: js/turtledefs.js:738 -msgid "Select language" +#: js/turtledefs.js:676 +msgid "Run slow" msgstr "" -#: js/toolbar.js:76 -#: js/toolbar.js:79 -#: js/toolbar.js:137 -#: js/turtledefs.js:579 -msgid "Save mouse artwork as PNG" +#: js/turtledefs.js:677 +msgid "Click to run the project in slow mode." msgstr "" -#: js/toolbar.js:78 -#: js/toolbar.js:136 -#: js/turtledefs.js:575 -msgid "Save mouse artwork as SVG" +#: js/turtledefs.js:683 +msgid "Click to run the project step by step." msgstr "" -#: js/toolbar.js:80 -#: js/toolbar.js:138 -#: js/turtledefs.js:583 -msgid "Save music as WAV" +#: js/turtledefs.js:690 +msgid "Display statistics about your Music project." msgstr "" -#: js/toolbar.js:81 -#: js/toolbar.js:139 -#: js/turtledefs.js:587 -msgid "Save sheet music as ABC" +#: js/turtledefs.js:697 +msgid "Delete a selected plugin." msgstr "" -#: js/toolbar.js:82 -#: js/toolbar.js:140 -#: js/turtledefs.js:591 -msgid "Save sheet music as Lilypond" +#: js/turtledefs.js:704 +msgid "Enable scrolling" msgstr "" -#: js/toolbar.js:83 -msgid "Save sheet music as MusicXML" +#: js/turtledefs.js:705 +msgid "You can scroll the blocks on the canvas." msgstr "" -#: js/toolbar.js:84 -#: js/toolbar.js:141 -#: js/toolbar.js:149 -#: js/toolbar.js:204 -#: js/toolbar.js:259 -#: js/turtledefs.js:562 -#: js/turtledefs.js:595 -msgid "Save block artwork as SVG" +#: js/turtledefs.js:714 +msgid "Wrap Turtle" msgstr "" -#: js/toolbar.js:85 -#: js/toolbar.js:142 -#: js/toolbar.js:150 -#: js/toolbar.js:205 -#: js/toolbar.js:260 -msgid "Confirm" +#: js/turtledefs.js:715 +msgid "Turn Turtle wrapping On or Off." msgstr "" -#: js/toolbar.js:86 -#: js/toolbar.js:151 -#: js/toolbar.js:206 -#: js/toolbar.js:261 -msgid "English (United States)" +#: js/turtledefs.js:725 +msgid "Restore blocks from the trash." msgstr "" -#: js/toolbar.js:87 -#: js/toolbar.js:152 -#: js/toolbar.js:207 -#: js/toolbar.js:262 -msgid "English (United Kingdom)" +#: js/turtledefs.js:732 +msgid "Switch mode" msgstr "" -#: js/toolbar.js:88 -#: js/toolbar.js:153 -#: js/toolbar.js:208 -#: js/toolbar.js:263 -msgid "日本語" +#: js/turtledefs.js:733 +msgid "Switch between beginner and advance modes." msgstr "" -#: js/toolbar.js:89 -msgid "한국어" +#: js/turtledefs.js:739 +msgid "Select your language preference." msgstr "" -#: js/toolbar.js:90 -#: js/toolbar.js:155 -#: js/toolbar.js:210 -#: js/toolbar.js:265 -msgid "español" +#: js/turtledefs.js:745 +msgid "Keyboard shortcuts" msgstr "" -#: js/toolbar.js:91 -#: js/toolbar.js:156 -#: js/toolbar.js:211 -#: js/toolbar.js:266 -msgid "português" +#: js/turtledefs.js:746 +msgid "You can type d to create a do block and r to create a re block etc." msgstr "" -#: js/toolbar.js:92 -#: js/toolbar.js:157 -#: js/toolbar.js:212 -#: js/toolbar.js:267 -msgid "にほんご" +#: js/turtledefs.js:753 +msgid "Show these messages." msgstr "" -#: js/toolbar.js:93 -#: js/toolbar.js:158 -#: js/toolbar.js:213 -#: js/toolbar.js:268 -msgid "中文" +#: js/turtledefs.js:759 +#: js/turtledefs.js:790 +#: js/widgets/help.js:335 +msgid "Guide" msgstr "" -#: js/toolbar.js:94 -#: js/toolbar.js:159 -#: js/toolbar.js:214 -#: js/toolbar.js:269 -msgid "ภาษาไทย" +#: js/turtledefs.js:760 +msgid "A detailed guide to Turtle Blocks is available." msgstr "" -#: js/toolbar.js:95 -#: js/toolbar.js:160 -#: js/toolbar.js:215 -#: js/toolbar.js:270 -msgid "aymara" +#: js/turtledefs.js:764 +msgid "Turtle Blocks Guide" msgstr "" -#: js/toolbar.js:96 -#: js/toolbar.js:161 -#: js/toolbar.js:216 -#: js/toolbar.js:271 -msgid "quechua" +#: js/turtledefs.js:767 +#: js/turtledefs.js:798 +#: js/widgets/help.js:336 +msgid "About" msgstr "" -#: js/toolbar.js:97 -#: js/toolbar.js:162 -#: js/toolbar.js:217 -#: js/toolbar.js:272 -msgid "guarani" +#: js/turtledefs.js:768 +msgid "Turtle Blocks is an open source collection of tools for exploring musical concepts." msgstr "" -#: js/toolbar.js:98 -#: js/toolbar.js:163 -#: js/toolbar.js:218 -#: js/toolbar.js:273 -msgid "हिंदी" +#: js/turtledefs.js:770 +msgid "A full list of contributors can be found in the Turtle Blocks GitHub repository." +msgstr "" + +#: js/turtledefs.js:772 +msgid "Turtle Blocks is licensed under the AGPL." +msgstr "" + +#: js/turtledefs.js:780 +msgid "Turtle Blocks GitHub repository" msgstr "" -#: js/toolbar.js:99 -#: js/toolbar.js:165 -#: js/toolbar.js:219 -#: js/toolbar.js:275 -msgid "igbo" +#: js/turtledefs.js:783 +#: js/turtledefs.js:814 +#: js/widgets/help.js:337 +#: js/widgets/help.js:359 +msgid "Congratulations." msgstr "" -#: js/toolbar.js:100 -#: js/toolbar.js:166 -#: js/toolbar.js:220 -#: js/toolbar.js:276 -msgid "عربى" +#: js/turtledefs.js:784 +msgid "You have finished the tour. Please enjoy Turtle Blocks!" msgstr "" -#: js/toolbar.js:101 -#: js/toolbar.js:164 -#: js/toolbar.js:221 -#: js/toolbar.js:274 -msgid "తెలుగు" +#: js/turtledefs.js:791 +msgid "A detailed guide to Music Blocks is available." msgstr "" -#: js/toolbar.js:102 -#: js/toolbar.js:167 -#: js/toolbar.js:222 -#: js/toolbar.js:277 -msgid "עִברִית" +#: js/turtledefs.js:799 +msgid "Music Blocks is an open source collection of tools for exploring musical concepts." msgstr "" -#: js/toolbar.js:111 -#: js/toolbar.js:175 -#: js/toolbar.js:176 -#: js/toolbar.js:231 -msgid "Full Screen" +#: js/turtledefs.js:801 +msgid "A full list of contributors can be found in the Music Blocks GitHub repository." msgstr "" -#: js/toolbar.js:145 -#: js/toolbar.js:148 -#: js/toolbar.js:200 -#: js/toolbar.js:203 -#: js/toolbar.js:255 -#: js/toolbar.js:258 -#: js/turtledefs.js:558 -msgid "Save turtle artwork as PNG" +#: js/turtledefs.js:803 +msgid "Music Blocks is licensed under the AGPL." msgstr "" -#: js/toolbar.js:147 -#: js/toolbar.js:202 -#: js/toolbar.js:257 -#: js/turtledefs.js:554 -msgid "Save turtle artwork as SVG" +#: js/turtledefs.js:811 +msgid "Music Blocks GitHub repository" msgstr "" -#: js/toolbar.js:154 -#: js/toolbar.js:209 -#: js/toolbar.js:264 -msgid "한국인" +#: js/turtledefs.js:815 +msgid "You have finished the tour. Please enjoy Music Blocks!" msgstr "" -#: js/toolbar.js:171 -#: js/toolbar.js:227 -msgid "About Turtle Blocks" +#: js/turtles.js:882 +msgid "Grid" msgstr "" -#: js/toolbar.js:429 -#: js/toolbar.js:440 -msgid "Turtle Wrap Off" +#: js/turtles.js:1024 +msgid "Expand" msgstr "" -#: js/toolbar.js:442 -msgid "Turtle Wrap On" +#: js/block-verbose.js:1616 +#: js/block-verbose.js:1735 +#: js/block.js:1580 +#: js/block.js:1699 +#: js/palette.js:605 +#: js/blocks/IntervalsBlocks.js:63 +#: js/blocks/WidgetBlocks.js:259 +msgid "temperament" msgstr "" -#: js/block.js:1470 +#: js/block-verbose.js:1630 +#: js/block.js:1594 msgid "matrix" msgstr "" -#: js/block.js:1477 -#: js/WidgetBlocks.js:1226 +#: js/block-verbose.js:1637 +#: js/block.js:1601 +#: js/blocks/WidgetBlocks.js:1509 #: plugins/rodi.rtp:324 msgid "status" msgstr "" -#: js/block.js:1484 +#: js/block-verbose.js:1644 +#: js/block.js:1608 msgid "drum mapper" msgstr "" -#: js/block.js:1491 +#: js/block-verbose.js:1651 +#: js/block.js:1615 msgid "ruler" msgstr "" -#: js/block.js:1498 -#: js/WidgetBlocks.js:327 +#: js/block-verbose.js:1658 +#: js/block.js:1622 +#: js/blocks/WidgetBlocks.js:397 #.TRANS: timbre is the character or quality of a musical sound msgid "timbre" msgstr "" -#: js/block.js:1505 +#: js/block-verbose.js:1665 +#: js/block.js:1629 msgid "stair" msgstr "" -#: js/block.js:1512 -#: js/WidgetBlocks.js:577 +#: js/block-verbose.js:1672 +#: js/block.js:1636 +#: js/blocks/WidgetBlocks.js:707 #.TRANS: the speed at music is should be played. msgid "tempo" msgstr "" -#: js/block.js:1519 -#: js/block.js:1582 -#: js/IntervalsBlocks.js:1268 +#: js/block-verbose.js:1679 +#: js/block-verbose.js:1742 +#: js/block.js:1643 +#: js/block.js:1706 +#: js/blocks/IntervalsBlocks.js:1464 #.TRANS: mode, e.g., Major in C Major msgid "mode" msgstr "" -#: js/block.js:1526 +#: js/block-verbose.js:1686 +#: js/block.js:1650 msgid "slider" msgstr "" -#: js/block.js:1533 -#: js/SensorsBlocks.js:1001 +#: js/block-verbose.js:1693 +#: js/block.js:1657 +#: js/blocks/SensorsBlocks.js:1001 msgid "keyboard" msgstr "гар" -#: js/block.js:1547 -#: js/WidgetBlocks.js:957 -#: js/WidgetBlocks.js:988 +#: js/block-verbose.js:1707 +#: js/block.js:1671 +#: js/blocks/WidgetBlocks.js:1190 +#: js/blocks/WidgetBlocks.js:1228 #.TRANS: widget for subdividing a measure into distinct rhythmic elements msgid "rhythm maker" msgstr "" -#: js/block.js:1554 -#: js/block.js:2182 -#: js/block.js:2236 -#: js/RhythmBlockPaletteBlocks.js:70 -#: js/RhythmBlockPaletteBlocks.js:251 -#: js/RhythmBlockPaletteBlocks.js:484 -#: js/RhythmBlockPaletteBlocks.js:553 -#: js/RhythmBlockPaletteBlocks.js:604 -#: js/RhythmBlockPaletteBlocks.js:874 -#: js/RhythmBlocks.js:33 -#: js/RhythmBlocks.js:356 -#: js/RhythmBlocks.js:766 -#: js/RhythmBlocks.js:806 -#: js/OrnamentBlocks.js:220 -#: js/OrnamentBlocks.js:312 -#: js/MeterBlocks.js:1367 -#: js/DictActions.js:85 -#: js/phrasemaker.js:731 -#: js/phrasemaker.js:2393 -#: js/phrasemaker.js:2436 -#: js/phrasemaker.js:2534 +#: js/block-verbose.js:1714 +#: js/block-verbose.js:2457 +#: js/block-verbose.js:2514 +#: js/block.js:1678 +#: js/block.js:2385 +#: js/block.js:2442 +#: js/blocks/MeterBlocks.js:1367 +#: js/blocks/OrnamentBlocks.js:220 +#: js/blocks/OrnamentBlocks.js:312 +#: js/blocks/RhythmBlocks.js:33 +#: js/blocks/RhythmBlocks.js:356 +#: js/blocks/RhythmBlocks.js:766 +#: js/blocks/RhythmBlocks.js:806 +#: js/blocks/RhythmBlockPaletteBlocks.js:70 +#: js/blocks/RhythmBlockPaletteBlocks.js:252 +#: js/blocks/RhythmBlockPaletteBlocks.js:485 +#: js/blocks/RhythmBlockPaletteBlocks.js:554 +#: js/blocks/RhythmBlockPaletteBlocks.js:605 +#: js/blocks/RhythmBlockPaletteBlocks.js:875 +#: js/turtleactions/DictActions.js:85 +#: js/widgets/phrasemaker.js:942 +#: js/widgets/phrasemaker.js:2656 +#: js/widgets/phrasemaker.js:2699 +#: js/widgets/phrasemaker.js:2810 #.TRANS: the value (e.g., 1/4 note) of the note being played. msgid "note value" msgstr "" -#: js/block.js:1561 -#: js/block.js:2110 -#: js/block.js:2133 -#: js/IntervalsBlocks.js:875 -#: js/OrnamentBlocks.js:312 +#: js/block-verbose.js:1721 +#: js/block-verbose.js:2382 +#: js/block-verbose.js:2405 +#: js/block.js:1685 +#: js/block.js:2310 +#: js/block.js:2333 +#: js/blocks/IntervalsBlocks.js:1071 +#: js/blocks/OrnamentBlocks.js:312 #.TRANS: calculate a relative step between notes based on semi-tones msgid "scalar interval" msgstr "" -#: js/block.js:1568 -#: js/RhythmBlocks.js:148 +#: js/block-verbose.js:1728 +#: js/block.js:1692 +#: js/blocks/RhythmBlocks.js:148 msgid "milliseconds" msgstr "" -#: js/block.js:2180 -#: js/block.js:2184 -#: js/block.js:2234 -#: js/block.js:2345 -#: js/ProgramBlocks.js:1273 -#: js/RhythmBlocks.js:712 -#: js/rhythmruler.js:834 -#: js/rhythmruler.js:961 +#: js/block-verbose.js:2455 +#: js/block-verbose.js:2459 +#: js/block-verbose.js:2512 +#: js/block-verbose.js:2628 +#: js/block.js:2383 +#: js/block.js:2387 +#: js/block.js:2440 +#: js/block.js:2556 +#: js/blocks/RhythmBlocks.js:712 +#: js/blocks/ProgramBlocks.js:1273 +#: js/widgets/rhythmruler.js:1183 +#: js/widgets/rhythmruler.js:1329 msgid "silence" msgstr "" -#: js/block.js:2265 -#: js/block.js:3134 -#: js/block.js:3151 -#: js/activity.js:2336 -#: js/activity.js:2387 -#: js/musicutils.js:2932 -#: js/musicutils.js:4287 +#: js/block-verbose.js:2548 +#: js/block-verbose.js:3492 +#: js/block-verbose.js:3509 +#: js/activity.js:2718 +#: js/activity.js:2769 +#: js/block.js:2476 +#: js/block.js:3416 +#: js/block.js:3433 +#: js/utils/musicutils.js:3780 +#: js/utils/musicutils.js:5273 +#.TRANS: the note names must be separated by single spaces #.TRANS: the note names must be separated by single spaces #.TRANS: the note names must be separated by single spaces msgid "ti la sol fa mi re do" msgstr "" -#: js/block.js:2333 +#: js/block-verbose.js:2616 +#: js/block.js:2544 +#.TRANS: scalar step #.TRANS: scalar step msgid "down" msgstr "" -#: js/block.js:2334 +#: js/block-verbose.js:2617 +#: js/block.js:2545 msgid "up" msgstr "" -#: js/block.js:3477 -#: js/block.js:3490 -#: js/ExtrasBlocks.js:612 +#: js/block-verbose.js:3026 +#: js/block.js:2950 +msgid "Silence block cannot be removed." +msgstr "" + +#: js/block-verbose.js:3824 +#: js/block.js:3748 +#: js/blocks.js:2607 +#: js/blocks.js:3218 +#: js/palette.js:618 +#: js/blocks/BooleanBlocks.js:77 +#: js/blocks/BooleanBlocks.js:167 +#: js/blocks/BooleanBlocks.js:251 +#: js/blocks/BooleanBlocks.js:335 +#: js/blocks/BooleanBlocks.js:433 +#: js/blocks/BooleanBlocks.js:539 +#: js/blocks/BooleanBlocks.js:640 +#: js/blocks/BooleanBlocks.js:741 +#: js/blocks/BooleanBlocks.js:847 +#: js/blocks/BooleanBlocks.js:948 +#: js/blocks/BooleanBlocks.js:1033 +#: js/blocks/SensorsBlocks.js:910 +msgid "true" +msgstr "" + +#: js/block-verbose.js:3824 +#: js/block.js:3748 +#: js/blocks.js:2609 +#: js/blocks.js:3220 +#: js/blocks/BooleanBlocks.js:79 +#: js/blocks/BooleanBlocks.js:169 +#: js/blocks/BooleanBlocks.js:253 +#: js/blocks/BooleanBlocks.js:337 +#: js/blocks/BooleanBlocks.js:435 +#: js/blocks/BooleanBlocks.js:541 +#: js/blocks/BooleanBlocks.js:642 +#: js/blocks/BooleanBlocks.js:743 +#: js/blocks/BooleanBlocks.js:849 +#: js/blocks/BooleanBlocks.js:950 +#: js/blocks/SensorsBlocks.js:912 +msgid "false" +msgstr "" + +#: js/block-verbose.js:3835 +#: js/block-verbose.js:3848 +#: js/block.js:3759 +#: js/block.js:3772 +#: js/blocks/ExtrasBlocks.js:615 msgid "Cartesian" msgstr "" -#: js/block.js:3478 -#: js/block.js:3491 -#: js/ExtrasBlocks.js:616 +#: js/block-verbose.js:3836 +#: js/block-verbose.js:3849 +#: js/block.js:3760 +#: js/block.js:3773 +#: js/blocks/ExtrasBlocks.js:619 msgid "polar" msgstr "" -#: js/block.js:3479 -#: js/block.js:3492 -#: js/ExtrasBlocks.js:620 +#: js/block-verbose.js:3837 +#: js/block-verbose.js:3850 +#: js/block.js:3761 +#: js/block.js:3774 +#: js/blocks/ExtrasBlocks.js:623 msgid "Cartesian+polar" msgstr "" -#: js/block.js:3480 -#: js/block.js:3499 -#: js/ExtrasBlocks.js:649 +#: js/block-verbose.js:3838 +#: js/block-verbose.js:3857 +#: js/block.js:3762 +#: js/block.js:3781 +#: js/blocks/ExtrasBlocks.js:652 msgid "none" msgstr "" -#: js/block.js:3493 -#: js/ExtrasBlocks.js:625 +#: js/block-verbose.js:3851 +#: js/block.js:3775 +#: js/blocks/ExtrasBlocks.js:628 msgid "treble" msgstr "" -#: js/block.js:3494 -#: js/ExtrasBlocks.js:629 +#: js/block-verbose.js:3852 +#: js/block.js:3776 +#: js/blocks/ExtrasBlocks.js:632 msgid "grand staff" msgstr "" -#: js/block.js:3495 -#: js/ExtrasBlocks.js:633 +#: js/block-verbose.js:3853 +#: js/block.js:3777 +#: js/blocks/ExtrasBlocks.js:636 msgid "mezzo-soprano" msgstr "" -#: js/block.js:3496 -#: js/ExtrasBlocks.js:637 +#: js/block-verbose.js:3854 +#: js/block.js:3778 +#: js/blocks/ExtrasBlocks.js:640 msgid "alto" msgstr "" -#: js/block.js:3497 -#: js/ExtrasBlocks.js:641 +#: js/block-verbose.js:3855 +#: js/block.js:3779 +#: js/blocks/ExtrasBlocks.js:644 msgid "tenor" msgstr "" -#: js/block.js:3498 -#: js/ExtrasBlocks.js:645 -#: js/musicutils.js:736 -#: js/synthutils.js:64 +#: js/block-verbose.js:3856 +#: js/block.js:3780 +#: js/utils/musicutils.js:1115 +#: js/utils/synthutils.js:80 +#: js/blocks/ExtrasBlocks.js:648 #.TRANS: musical instrument msgid "bass" msgstr "" -#: js/block.js:4075 +#: js/block-verbose.js:3901 +#: js/block.js:3825 +#: js/blocks.js:2600 +#: js/blocks.js:3211 +msgid "on2" +msgstr "" + +#: js/block-verbose.js:3903 +#: js/block.js:3827 +#: js/blocks.js:2602 +#: js/blocks.js:3213 +msgid "off" +msgstr "" + +#: js/block-verbose.js:4470 +#: js/block.js:4394 msgid "Not a number" msgstr "" -#: js/block.js:4082 +#: js/block-verbose.js:4477 +#: js/block.js:4401 msgid "Octave value must be between 1 and 10." msgstr "" -#: js/block.js:4090 +#: js/block-verbose.js:4485 +#: js/block.js:4409 msgid "Numbers can have at most 10 digits." msgstr "" -#: js/notation.js:353 -msgid "Lilypond cannot process pickup of " +#: js/activity.js:390 +#: js/activity.js:395 +msgid "Search for blocks" msgstr "" -#: js/turtledefs.js:40 -#.TRANS: put the URL to the guide here, e.g., https://github.com/sugarlabs/turtleblocksjs/tree/master/guide/README.md -msgid "guide url" +#: js/activity.js:1413 +msgid "Refresh your browser to change to advanced mode." msgstr "" -#: js/turtledefs.js:85 -#: js/turtledefs.js:437 -msgid "Turtle Blocks is a Logo-inspired turtle that draws colorful pictures with snap-together visual-programming blocks." +#: js/activity.js:1418 +msgid "Refresh your browser to change to beginner mode." msgstr "" -#: js/turtledefs.js:118 -#: js/turtledefs.js:220 -msgid "search" +#: js/activity.js:1477 +msgid "Catching mice" msgstr "" -#: js/turtledefs.js:120 -#: js/turtledefs.js:222 -#: js/WidgetBlocks.js:437 -#: js/MeterBlocks.js:1343 -#.TRANS: musical meter (time signature), e.g., 4:4 -msgid "meter" +#: js/activity.js:1478 +msgid "Cleaning the instruments" msgstr "" -#: js/turtledefs.js:122 -#: js/turtledefs.js:224 -msgid "intervals" +#: js/activity.js:1479 +msgid "Testing key pieces" +msgstr "" + +#: js/activity.js:1480 +msgid "Sight-reading" +msgstr "" + +#: js/activity.js:1481 +msgid "Combining math and music" +msgstr "" + +#: js/activity.js:1482 +msgid "Generating more blocks" +msgstr "" + +#: js/activity.js:1483 +msgid "Do Re Mi Fa Sol La Ti Do" +msgstr "" + +#: js/activity.js:1484 +msgid "Tuning string instruments" +msgstr "" + +#: js/activity.js:1485 +msgid "Pressing random keys" +msgstr "" + +#: js/activity.js:1663 +msgid "plugins will be removed upon restart." +msgstr "" + +#: js/activity.js:1672 +msgid "show Cartesian" +msgstr "" + +#: js/activity.js:2211 +#: js/palette.js:589 +#: js/blocks/RhythmBlocks.js:923 +#: js/blocks/PitchBlocks.js:442 +#: js/blocks/PitchBlocks.js:1786 +#.TRANS: a numeric mapping of the notes in an octave based on the musical mode +msgid "scale degree" +msgstr "" + +#: js/activity.js:2214 +#: js/palette.js:598 +msgid "voice name" +msgstr "" + +#: js/activity.js:2217 +#: js/palette.js:595 +msgid "invert mode" +msgstr "" + +#: js/activity.js:2220 +msgid "output tools" +msgstr "" + +#: js/activity.js:2223 +msgid "custom note" +msgstr "" + +#: js/activity.js:2226 +msgid "accidental name" +msgstr "" + +#: js/activity.js:2229 +#: js/blocks/PitchBlocks.js:855 +msgid "east indian solfege" +msgstr "" + +#: js/activity.js:2232 +#: js/blocks/PitchBlocks.js:869 +msgid "note name" +msgstr "" + +#: js/activity.js:2235 +#: js/blocks/IntervalsBlocks.js:94 +msgid "temperament name" +msgstr "" + +#: js/activity.js:2238 +#: js/palette.js:592 +msgid "mode name" +msgstr "" + +#: js/activity.js:2241 +msgid "chord name" +msgstr "" + +#: js/activity.js:2244 +#: js/palette.js:615 +msgid "interval name" +msgstr "" + +#: js/activity.js:2247 +msgid "filter type" +msgstr "" + +#: js/activity.js:2250 +msgid "oscillator type" +msgstr "" + +#: js/activity.js:2253 +#: js/blocks.js:2479 +#: js/blocks.js:2487 +msgid "audio file" +msgstr "" + +#: js/activity.js:2256 +#: js/blocks/DrumBlocks.js:32 +msgid "noise name" +msgstr "" + +#: js/activity.js:2259 +#: js/blocks/DrumBlocks.js:75 +msgid "drum name" +msgstr "" + +#: js/activity.js:2262 +#: js/blocks/DrumBlocks.js:119 +msgid "effects name" +msgstr "" + +#: js/activity.js:2265 +msgid "wrap mode" +msgstr "" + +#: js/activity.js:2268 +msgid "load file" +msgstr "" + +#: js/activity.js:2435 +#: js/activity.js:5851 +msgid "This block is deprecated." +msgstr "" + +#: js/activity.js:2437 +#: js/activity.js:5853 +msgid "Block cannot be found." +msgstr "" + +#: js/activity.js:2645 +msgid "Saving block artwork" +msgstr "" + +#: js/activity.js:2656 +msgid "Erase" +msgstr "" + +#: js/activity.js:2683 +#: js/activity.js:2705 +msgid "Paste" +msgstr "Тавих" + +#: js/activity.js:2687 +msgid "Save block help" +msgstr "" + +#: js/activity.js:2772 +msgid "Jumping to the bottom of the page." +msgstr "" + +#: js/activity.js:2778 +msgid "Scrolling up." +msgstr "" + +#: js/activity.js:2783 +msgid "Scrolling down." +msgstr "" + +#: js/activity.js:2788 +msgid "Extracting block" +msgstr "" + +#: js/activity.js:2796 +msgid "Moving block up." +msgstr "" + +#: js/activity.js:2817 +msgid "Moving block down." +msgstr "" + +#: js/activity.js:2838 +msgid "Moving block left." +msgstr "" + +#: js/activity.js:2855 +msgid "Moving block right." +msgstr "" + +#: js/activity.js:2870 +msgid "Jump to home position." +msgstr "" + +#: js/activity.js:2897 +msgid "Hide blocks" +msgstr "" + +#: js/activity.js:4500 +msgid "Click the run button to run the project." msgstr "" -#: js/turtledefs.js:124 -#: js/turtledefs.js:226 -msgid "ornament" +#: js/activity.js:5692 +msgid "Show/hide block" msgstr "" -#: js/turtledefs.js:125 -#: js/turtledefs.js:227 -#: js/VolumeBlocks.js:362 -#: js/VolumeBlocks.js:502 -#: js/VolumeBlocks.js:545 -msgid "volume" +#: js/activity.js:5698 +msgid "Expand/collapse blocks" msgstr "" -#: js/turtledefs.js:129 -#: js/turtledefs.js:231 -msgid "boxes" +#: js/activity.js:5976 +msgid "Could not parse JSON input." msgstr "" -#: js/turtledefs.js:130 -#: js/turtledefs.js:232 -msgid "widgets" +#: js/activity.js:6475 +#: js/activity.js:6580 +#: js/activity.js:6631 +msgid "Cannot load project from the file. Please check the file type." msgstr "" -#: js/turtledefs.js:131 -#: js/turtledefs.js:233 -#: js/phrasemaker.js:824 -msgid "graphics" +#: js/activity.js:6917 +msgid "Invalid parameters" msgstr "" -#: js/turtledefs.js:134 -#: js/turtledefs.js:236 -msgid "boolean" -msgstr "" +#: js/blocks.js:1212 +#: js/blocks.js:3444 +#: js/blocks.js:3834 +#: js/blocks.js:3865 +#: js/blocks.js:3914 +#: js/blocks.js:3949 +#: js/blocks.js:6586 +#: js/palette.js:509 +#: js/palette.js:638 +#: js/palette.js:1105 +#: js/blocks/BoxesBlocks.js:282 +#: js/blocks/BoxesBlocks.js:285 +#: js/blocks/BoxesBlocks.js:405 +#: js/blocks/BoxesBlocks.js:594 +msgid "box" +msgstr "богц" -#: js/turtledefs.js:137 -#: js/turtledefs.js:239 -#: js/HeapBlocks.js:59 -#: js/status.js:147 -msgid "heap" +#: js/blocks.js:1713 +msgid "Consider breaking this stack into parts." msgstr "" -#: js/turtledefs.js:138 -#: js/turtledefs.js:240 -#: js/ProgramBlocks.js:495 -#: js/DictBlocks.js:142 -msgid "dictionary" +#: js/blocks.js:2472 +#: js/palette.js:653 +#: js/blocks/MediaBlocks.js:602 +msgid "open file" msgstr "" -#: js/turtledefs.js:139 -#: js/turtledefs.js:241 -msgid "ensemble" +#: js/blocks.js:3247 +#: js/palette.js:574 +#: js/blocks/MediaBlocks.js:892 +#: js/blocks/MediaBlocks.js:963 +msgid "text" +msgstr "бичвэр" + +#: js/blocks.js:3443 +#: js/palette.js:641 +#: js/palette.js:642 +#: js/blocks/BoxesBlocks.js:514 +msgid "store in box" msgstr "" -#: js/turtledefs.js:140 -#: js/turtledefs.js:242 -msgid "extras" +#: js/blocks.js:3448 +#: js/blocks.js:3888 +#: js/blocks.js:3923 +#: js/blocks.js:3958 +#: js/blocks.js:5862 +#: js/blocks.js:5883 +#: js/blocks/BoxesBlocks.js:772 +msgid "box1" msgstr "" -#: js/turtledefs.js:142 -#: js/turtledefs.js:244 -#.TRANS: program as in computer program -#.TRANS: program as in computer program -msgid "program" +#: js/blocks.js:3450 +#: js/blocks.js:3890 +#: js/blocks.js:3925 +#: js/blocks.js:3960 +#: js/blocks.js:5864 +#: js/blocks.js:5885 +#: js/blocks/BoxesBlocks.js:663 +msgid "box2" msgstr "" -#: js/turtledefs.js:143 -#: js/turtledefs.js:245 -msgid "my blocks" +#: js/blocks.js:4122 +#: js/palette.js:639 +#: js/palette.js:644 +#: js/palette.js:1041 +#: js/blocks/BoxesBlocks.js:591 +msgid "store in" msgstr "" -#: js/turtledefs.js:185 -#: js/turtledefs.js:281 -msgid "artwork" +#: js/blocks.js:4122 +#: js/blocks/BoxesBlocks.js:595 +#: js/blocks/DictBlocks.js:215 +#: js/blocks/DictBlocks.js:289 +#: js/blocks/EnsembleBlocks.js:391 +#: js/blocks/EnsembleBlocks.js:402 +#: js/blocks/MediaBlocks.js:746 +#: js/blocks/PitchBlocks.js:656 +#: js/blocks/PitchBlocks.js:934 +#: js/blocks/PitchBlocks.js:1866 +#: js/blocks/ProgramBlocks.js:390 +#: js/blocks/ProgramBlocks.js:495 +#: js/blocks/ProgramBlocks.js:658 +#: js/blocks/ToneBlocks.js:1025 +msgid "name" msgstr "" -#: js/turtledefs.js:185 -#: js/turtledefs.js:281 -msgid "logic" +#: js/blocks.js:4122 +#: js/blocks/BoxesBlocks.js:75 +#: js/blocks/BoxesBlocks.js:595 +#: js/blocks/DictBlocks.js:289 +#: js/blocks/DictBlocks.js:430 +#: js/blocks/HeapBlocks.js:544 +#: js/blocks/RhythmBlocks.js:1130 +msgid "value" +msgstr "утга" + +#: js/blocks.js:4465 +msgid "Forever loop detected inside a note value block. Unexpected things may happen." msgstr "" -#: js/turtledefs.js:185 -#: js/turtledefs.js:281 -msgid "music" +#: js/blocks.js:4988 +msgid "There is no block selected." msgstr "" -#: js/turtledefs.js:187 -#: js/turtledefs.js:463 -msgid "Music Blocks is a collection of tools for exploring fundamental musical concepts in a fun way." +#: js/blocks.js:5091 +#: js/blocks/MediaBlocks.js:888 +msgid "show" +msgstr "үзүүлэх" + +#: js/blocks.js:5094 +#: js/blocks/MediaBlocks.js:803 +#.TRANS: Avatar is the image used to determine the appearance of the mouse. +msgid "avatar" msgstr "" -#: js/turtledefs.js:436 -msgid "Welcome to Turtle Blocks" +#: js/blocks.js:5097 +#: js/blocks/ToneBlocks.js:1010 +#: js/widgets/sampler.js:975 +#.TRANS: The sound sample that the user uploads. +msgid "sample" msgstr "" -#: js/turtledefs.js:438 -#: js/turtledefs.js:465 -#: js/turtledefs.js:774 -#: js/turtledefs.js:805 -msgid "The current version is" +#: js/lilypond.js:606 +msgid "brown rat" msgstr "" -#: js/turtledefs.js:446 -#: js/turtledefs.js:483 -msgid "Click the run button to run the project in fast mode." +#: js/lilypond.js:607 +msgid "mole" msgstr "" -#: js/turtledefs.js:452 -msgid "Stop the turtle." +#: js/lilypond.js:608 +msgid "chipmunk" msgstr "" -#: js/turtledefs.js:454 -#: js/turtledefs.js:491 -msgid "You can also type Alt-S to stop." +#: js/lilypond.js:609 +msgid "red squirrel" msgstr "" -#: js/turtledefs.js:462 -#: js/help.js:333 -msgid "Welcome to Music Blocks" +#: js/lilypond.js:610 +msgid "guinea pig" msgstr "" -#: js/turtledefs.js:472 -#: js/help.js:334 -msgid "Meet Mr. Mouse!" +#: js/lilypond.js:611 +msgid "capybara" msgstr "" -#: js/turtledefs.js:473 -msgid "Mr Mouse is our Music Blocks conductor." +#: js/lilypond.js:612 +msgid "coypu" msgstr "" -#: js/turtledefs.js:475 -msgid "Mr Mouse encourages you to explore Music Blocks." +#: js/lilypond.js:613 +msgid "black rat" msgstr "" -#: js/turtledefs.js:477 -msgid "Let us start our tour!" +#: js/lilypond.js:614 +msgid "grey squirrel" msgstr "" -#: js/turtledefs.js:489 -msgid "Stop the music (and the mice)." +#: js/lilypond.js:615 +msgid "flying squirrel" msgstr "" -#: js/turtledefs.js:499 -msgid "Record your project as video." +#: js/lilypond.js:616 +msgid "bat" msgstr "" -#: js/turtledefs.js:505 -msgid "Toggle Fullscreen mode." +#: js/lilypond.js:749 +#: js/lilypond.js:913 +#: js/lilypond.js:951 +#: js/blocks/ActionBlocks.js:1256 +#: js/blocks/ExtrasBlocks.js:556 +msgid "start drum" msgstr "" -#: js/turtledefs.js:511 -msgid "Initialize a new project." +#: js/logo.js:61 +msgid "Not a valid pitch name" msgstr "" -#: js/turtledefs.js:517 -msgid "You can also load projects from the file system." +#: js/logo.js:507 +#: js/blocks/ProgramBlocks.js:258 +#: js/blocks/ProgramBlocks.js:427 +msgid "You must select a file." msgstr "" -#: js/turtledefs.js:522 -#: js/StringHelper.js:46 -msgid "Delete" +#: js/logo.js:1696 +msgid "Playback is ready." msgstr "" -#: js/turtledefs.js:523 -msgid "To delete a block, just right-click on it, then you will be able to see the delete option" +#: js/macros.js:711 +#: js/utils/musicutils.js:1162 +#: js/utils/synthutils.js:202 +#.TRANS: animal sound effect +msgid "duck" msgstr "" -#: js/turtledefs.js:528 -#: js/activity.js:2270 -#: js/LocalCard.js:31 -msgid "Copy" -msgstr "Хуулах" +#: js/notation.js:353 +msgid "Lilypond cannot process pickup of " +msgstr "" -#: js/turtledefs.js:529 -msgid "To copy a block, just right-click on it, then you will be able to see the copy option" +#: js/palette.js:571 +msgid "grid" msgstr "" -#: js/turtledefs.js:535 -msgid "To extract a block, just right-click on it, then you will be able to see the extract option" +#: js/palette.js:580 +msgid "effect" msgstr "" -#: js/turtledefs.js:542 -#: js/turtledefs.js:552 -#: js/turtledefs.js:573 -msgid "Save your project to a file." +#: js/palette.js:586 +msgid "sargam" msgstr "" -#: js/turtledefs.js:549 -#: js/turtledefs.js:570 -msgid "save" +#: js/palette.js:601 +#: js/blocks/PitchBlocks.js:1209 +msgid "custom pitch" msgstr "" -#: js/turtledefs.js:556 -#: js/turtledefs.js:577 -msgid "Save graphics from your project to as SVG." +#: js/palette.js:609 +msgid "accidental" msgstr "" -#: js/turtledefs.js:560 -#: js/turtledefs.js:581 -msgid "Save graphics from your project as PNG." +#: js/palette.js:633 +#: js/blocks/PitchBlocks.js:405 +msgid "pitch converter" msgstr "" -#: js/turtledefs.js:564 -#: js/turtledefs.js:597 -msgid "Save block artwork as an SVG file." +#: js/piemenus.js:200 +#: js/utils/musicutils.js:1187 +#: js/utils/musicutils.js:1207 +#: js/widgets/musickeyboard.js:2341 +#: js/widgets/phrasemaker.js:1908 +#: js/widgets/sampler.js:810 +#.TRANS: double sharp is a music term related to pitch +msgid "double sharp" msgstr "" -#: js/turtledefs.js:585 -msgid "Save audio from your project as WAV." +#: js/piemenus.js:201 +#: js/utils/musicutils.js:1185 +#: js/utils/musicutils.js:1208 +#: js/blocks/PitchBlocks.js:1539 +#: js/turtleactions/PitchActions.js:323 +#: js/widgets/musickeyboard.js:2342 +#: js/widgets/phrasemaker.js:1909 +#: js/widgets/sampler.js:811 +#.TRANS: sharp is a music term related to pitch +#.TRANS: sharp is a half-step up in pitch +msgid "sharp" msgstr "" -#: js/turtledefs.js:589 -msgid "Save your project to as an ABC file." +#: js/piemenus.js:202 +#: js/utils/musicutils.js:1183 +#: js/utils/musicutils.js:1209 +#: js/widgets/musickeyboard.js:2343 +#: js/widgets/phrasemaker.js:1910 +#: js/widgets/sampler.js:812 +#.TRANS: natural is a music term related to pitch +msgid "natural" msgstr "" -#: js/turtledefs.js:593 -msgid "Save your project to as a Lilypond file." +#: js/piemenus.js:203 +#: js/utils/musicutils.js:1181 +#: js/utils/musicutils.js:1210 +#: js/blocks/PitchBlocks.js:1498 +#: js/turtleactions/PitchActions.js:326 +#: js/widgets/musickeyboard.js:2344 +#: js/widgets/phrasemaker.js:1911 +#: js/widgets/sampler.js:813 +#.TRANS: flat is a music term related to pitch +#.TRANS: flat is a half-step down in pitch +msgid "flat" msgstr "" -#: js/turtledefs.js:604 -msgid "Load samples from server" +#: js/piemenus.js:204 +#: js/utils/musicutils.js:1179 +#: js/utils/musicutils.js:1211 +#: js/widgets/musickeyboard.js:2345 +#: js/widgets/phrasemaker.js:1912 +#: js/widgets/sampler.js:814 +#.TRANS: double flat is a music term related to pitch +msgid "double flat" msgstr "" -#: js/turtledefs.js:605 -msgid "This button opens a viewer for loading example projects." +#: js/piemenus.js:2864 +#: js/utils/musicutils.js:1006 +#: js/blocks/PitchBlocks.js:1385 +#.TRANS: unison is a music term related to intervals +#.TRANS: unison means the note is the same as the current note +msgid "unison" msgstr "" -#: js/turtledefs.js:611 -msgid "Palette buttons" +#: js/piemenus.js:3018 +#: js/piemenus.js:3091 +#: js/utils/musicutils.js:1014 +#: js/utils/musicutils.js:1189 +#: js/utils/musicutils.js:1326 +#.TRANS: major is a music term related to intervals and mode +msgid "major" msgstr "" -#: js/turtledefs.js:612 -msgid "This toolbar contains the palette buttons including Rhythm Pitch Tone Action and more." +#: js/piemenus.js:3018 +#: js/piemenus.js:3091 +#: js/utils/musicutils.js:1032 +#.TRANS: modal scale for music +msgid "ionian" msgstr "" -#: js/turtledefs.js:614 -msgid "Click to show the palettes of blocks and drag blocks from the palettes onto the canvas to use them." +#: js/piemenus.js:3020 +#: js/piemenus.js:3095 +#: js/utils/musicutils.js:1012 +#: js/utils/musicutils.js:1190 +#: js/utils/musicutils.js:1323 +#.TRANS: minor is a music term related to intervals and mode +msgid "minor" msgstr "" -#: js/turtledefs.js:620 -msgid "Cartesian/Polar" +#: js/piemenus.js:3020 +#: js/piemenus.js:3095 +#: js/utils/musicutils.js:1042 +#.TRANS: modal scale for music +msgid "aeolian" msgstr "" -#: js/turtledefs.js:621 -msgid "Show or hide a coordinate grid." +#: js/piemenus.js:3410 +msgid "Duplicate" msgstr "" -#: js/turtledefs.js:627 -msgid "Clear the screen and return the mice to their initial positions." +#: js/piemenus.js:3412 +msgid "Move to trash" msgstr "" -#: js/turtledefs.js:633 -msgid "Collapse the graphics window." +#: js/piemenus.js:3413 +#: js/widgets/timbre.js:968 +#: planet/js/StringHelper.js:69 +msgid "Close" msgstr "" -#: js/turtledefs.js:638 -#: js/activity.js:4256 -#: js/activity.js:4256 -msgid "Home" +#: js/piemenus.js:3419 +msgid "Save stack" msgstr "" -#: js/turtledefs.js:639 -msgid "Return all blocks to the center of the screen." +#: js/piemenus.js:3449 +msgid "In order to copy a sample, you must reload the widget, import the sample again, and export it." msgstr "" -#: js/turtledefs.js:644 -msgid "Show/hide blocks" +#: js/piemenus.js:3812 +msgid "You have chosen key " msgstr "" -#: js/turtledefs.js:645 -msgid "Hide or show the blocks and the palettes." +#: js/piemenus.js:3816 +msgid " for your pitch preview." msgstr "" -#: js/turtledefs.js:650 -msgid "Expand/collapse collapsable blocks" +#: js/turtle-singer.js:1363 +#.TRANS: partials are weighted components in a harmonic series +msgid "You must have at least one Partial block inside of a Weighted-partial block" msgstr "" -#: js/turtledefs.js:651 -msgid "Expand or collapse start and action stacks." +#: js/turtle-singer.js:2077 +msgid "synth cannot play chords." msgstr "" -#: js/turtledefs.js:658 -#: js/activity.js:4265 -msgid "Decrease block size" +#: js/utils/musicutils.js:505 +#: js/utils/musicutils.js:645 +#: js/widgets/pitchdrummatrix.js:228 +#: js/widgets/musickeyboard.js:2885 +msgid "rest" msgstr "" -#: js/turtledefs.js:659 -msgid "Decrease the size of the blocks." +#: js/utils/musicutils.js:689 +msgid "Perfect unison" msgstr "" -#: js/turtledefs.js:664 -#: js/activity.js:4267 -msgid "Increase block size" +#: js/utils/musicutils.js:689 +msgid "Diminished second" msgstr "" -#: js/turtledefs.js:665 -msgid "Increase the size of the blocks." +#: js/utils/musicutils.js:690 +msgid "Minor second" msgstr "" -#: js/turtledefs.js:670 -msgid "Expand/collapse option toolbar" +#: js/utils/musicutils.js:690 +msgid "Augmented unison" msgstr "" -#: js/turtledefs.js:671 -msgid "Click this button to expand or collapse the auxillary toolbar." +#: js/utils/musicutils.js:691 +msgid "Major second" msgstr "" -#: js/turtledefs.js:676 -msgid "Run slow" +#: js/utils/musicutils.js:691 +msgid "Diminished third" msgstr "" -#: js/turtledefs.js:677 -msgid "Click to run the project in slow mode." +#: js/utils/musicutils.js:692 +msgid "Minor third" msgstr "" -#: js/turtledefs.js:683 -msgid "Click to run the project step by step." +#: js/utils/musicutils.js:692 +msgid "Augmented second" msgstr "" -#: js/turtledefs.js:690 -msgid "Display statistics about your Music project." +#: js/utils/musicutils.js:693 +msgid "Major third" msgstr "" -#: js/turtledefs.js:697 -msgid "Delete a selected plugin." +#: js/utils/musicutils.js:693 +msgid "Diminished fourth" msgstr "" -#: js/turtledefs.js:704 -msgid "Enable scrolling" +#: js/utils/musicutils.js:694 +msgid "Perfect fourth" msgstr "" -#: js/turtledefs.js:705 -msgid "You can scroll the blocks on the canvas." +#: js/utils/musicutils.js:694 +msgid "Augmented third" msgstr "" -#: js/turtledefs.js:714 -msgid "Wrap Turtle" +#: js/utils/musicutils.js:695 +msgid "Diminished fifth" msgstr "" -#: js/turtledefs.js:715 -msgid "Turn Turtle wrapping On or Off." +#: js/utils/musicutils.js:695 +msgid "Augmented fourth" msgstr "" -#: js/turtledefs.js:725 -msgid "Restore blocks from the trash." +#: js/utils/musicutils.js:696 +msgid "Perfect fifth" msgstr "" -#: js/turtledefs.js:732 -msgid "Switch mode" +#: js/utils/musicutils.js:696 +msgid "Diminished sixth" msgstr "" -#: js/turtledefs.js:733 -msgid "Switch between beginner and advance modes." +#: js/utils/musicutils.js:697 +msgid "Minor sixth" msgstr "" -#: js/turtledefs.js:739 -msgid "Select your language preference." +#: js/utils/musicutils.js:697 +msgid "Augmented fifth" msgstr "" -#: js/turtledefs.js:745 -msgid "Keyboard shortcuts" +#: js/utils/musicutils.js:698 +msgid "Major sixth" msgstr "" -#: js/turtledefs.js:746 -msgid "You can type d to create a do block and r to create a re block etc." +#: js/utils/musicutils.js:698 +msgid "Diminished seventh" msgstr "" -#: js/turtledefs.js:753 -msgid "Show these messages." +#: js/utils/musicutils.js:699 +msgid "Minor seventh" msgstr "" -#: js/turtledefs.js:759 -#: js/turtledefs.js:790 -#: js/help.js:335 -msgid "Guide" +#: js/utils/musicutils.js:699 +msgid "Augmented sixth" msgstr "" -#: js/turtledefs.js:760 -msgid "A detailed guide to Turtle Blocks is available." +#: js/utils/musicutils.js:700 +msgid "Major seventh" msgstr "" -#: js/turtledefs.js:764 -msgid "Turtle Blocks Guide" +#: js/utils/musicutils.js:700 +msgid "Diminished octave" msgstr "" -#: js/turtledefs.js:767 -#: js/turtledefs.js:798 -#: js/help.js:336 -msgid "About" +#: js/utils/musicutils.js:701 +msgid "Perfect octave" msgstr "" -#: js/turtledefs.js:768 -msgid "Turtle Blocks is an open source collection of tools for exploring musical concepts." +#: js/utils/musicutils.js:701 +msgid "Augmented seventh" msgstr "" -#: js/turtledefs.js:770 -msgid "A full list of contributors can be found in the Turtle Blocks GitHub repository." +#: js/utils/musicutils.js:702 +msgid "Minor ninth" msgstr "" -#: js/turtledefs.js:772 -msgid "Turtle Blocks is licensed under the AGPL." +#: js/utils/musicutils.js:702 +msgid "Augmented octave" msgstr "" -#: js/turtledefs.js:780 -msgid "Turtle Blocks GitHub repository" +#: js/utils/musicutils.js:703 +msgid "Major ninth" msgstr "" -#: js/turtledefs.js:783 -#: js/turtledefs.js:814 -#: js/help.js:337 -#: js/help.js:359 -msgid "Congratulations." +#: js/utils/musicutils.js:703 +msgid "Diminished tenth" msgstr "" -#: js/turtledefs.js:784 -msgid "You have finished the tour. Please enjoy Turtle Blocks!" +#: js/utils/musicutils.js:704 +msgid "Minor tenth" msgstr "" -#: js/turtledefs.js:791 -msgid "A detailed guide to Music Blocks is available." +#: js/utils/musicutils.js:704 +msgid "Augmented ninth" msgstr "" -#: js/turtledefs.js:795 -#: js/SaveInterface.js:76 -msgid "Music Blocks Guide" +#: js/utils/musicutils.js:705 +msgid "Major tenth" msgstr "" -#: js/turtledefs.js:799 -msgid "Music Blocks is an open source collection of tools for exploring musical concepts." +#: js/utils/musicutils.js:705 +msgid "Diminished eleventh" msgstr "" -#: js/turtledefs.js:801 -msgid "A full list of contributors can be found in the Music Blocks GitHub repository." +#: js/utils/musicutils.js:706 +msgid "Perfect eleventh" msgstr "" -#: js/turtledefs.js:803 -msgid "Music Blocks is licensed under the AGPL." +#: js/utils/musicutils.js:706 +msgid "Augmented tenth" msgstr "" -#: js/turtledefs.js:811 -msgid "Music Blocks GitHub repository" +#: js/utils/musicutils.js:707 +msgid "Diminished twelfth" msgstr "" -#: js/turtledefs.js:815 -msgid "You have finished the tour. Please enjoy Music Blocks!" +#: js/utils/musicutils.js:707 +msgid "Augmented eleventh" msgstr "" -#: js/activity.js:369 -msgid "Search for blocks" +#: js/utils/musicutils.js:708 +msgid "Perfect twelfth" msgstr "" -#: js/activity.js:1145 -msgid "Refresh your browser to change to advanced mode." +#: js/utils/musicutils.js:708 +msgid "Diminished thirteenth" msgstr "" -#: js/activity.js:1150 -msgid "Refresh your browser to change to beginner mode." +#: js/utils/musicutils.js:709 +msgid "Minor thirteenth" msgstr "" -#: js/activity.js:1184 -msgid "Catching mice" +#: js/utils/musicutils.js:709 +msgid "Augmented fifth, plus an octave" msgstr "" -#: js/activity.js:1185 -msgid "Cleaning the instruments" +#: js/utils/musicutils.js:710 +msgid "Major thirteenth" msgstr "" -#: js/activity.js:1186 -msgid "Testing key pieces" +#: js/utils/musicutils.js:710 +msgid "Diminished seventh, plus an octave" msgstr "" -#: js/activity.js:1187 -msgid "Sight-reading" +#: js/utils/musicutils.js:838 +#.TRANS: ordinal number. Please keep exactly one space between each number. +msgid "1st 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th" msgstr "" -#: js/activity.js:1188 -msgid "Combining math and music" +#: js/utils/musicutils.js:1008 +#: js/utils/musicutils.js:1191 +#: js/utils/musicutils.js:1325 +#.TRANS: augmented is a music term related to intervals +msgid "augmented" msgstr "" -#: js/activity.js:1189 -msgid "Generating more blocks" +#: js/utils/musicutils.js:1010 +#: js/utils/musicutils.js:1192 +#: js/utils/musicutils.js:1324 +#.TRANS: diminished is a music term related to intervals and mode +msgid "diminished" msgstr "" -#: js/activity.js:1190 -msgid "Do Re Mi Fa Sol La Ti Do" +#: js/utils/musicutils.js:1016 +#: js/utils/musicutils.js:1322 +#: js/blocks/IntervalsBlocks.js:649 +#: js/turtleactions/IntervalsActions.js:120 +#: js/turtleactions/IntervalsActions.js:124 +#.TRANS: perfect is a music term related to intervals +msgid "perfect" msgstr "" -#: js/activity.js:1191 -msgid "Tuning string instruments" +#: js/utils/musicutils.js:1018 +#.TRANS: twelve semi-tone scale for music +msgid "chromatic" msgstr "" -#: js/activity.js:1192 -msgid "Pressing random keys" +#: js/utils/musicutils.js:1019 +msgid "algerian" msgstr "" -#: js/activity.js:1351 -msgid "plugins will be removed upon restart." +#: js/utils/musicutils.js:1020 +msgid "spanish" msgstr "" -#: js/activity.js:1360 -msgid "show Cartesian" +#: js/utils/musicutils.js:1022 +#.TRANS: modal scale in music +msgid "octatonic" msgstr "" -#: js/activity.js:1842 -msgid "output tools" +#: js/utils/musicutils.js:1024 +#.TRANS: harmonic major scale in music +msgid "harmonic major" msgstr "" -#: js/activity.js:1845 -msgid "custom note" +#: js/utils/musicutils.js:1026 +#.TRANS: natural minor scales in music +msgid "natural minor" msgstr "" -#: js/activity.js:1848 -msgid "accidental name" +#: js/utils/musicutils.js:1028 +#.TRANS: harmonic minor scale in music +msgid "harmonic minor" msgstr "" -#: js/activity.js:1851 -#: js/PitchBlocks.js:855 -msgid "east indian solfege" +#: js/utils/musicutils.js:1030 +#.TRANS: melodic minor scale in music +msgid "melodic minor" msgstr "" -#: js/activity.js:1854 -#: js/PitchBlocks.js:869 -msgid "note name" +#: js/utils/musicutils.js:1034 +#.TRANS: modal scale for music +msgid "dorian" msgstr "" -#: js/activity.js:1857 -#: js/IntervalsBlocks.js:94 -msgid "temperament name" +#: js/utils/musicutils.js:1036 +#.TRANS: modal scale for music +msgid "phrygian" msgstr "" -#: js/activity.js:1863 -msgid "chord name" +#: js/utils/musicutils.js:1038 +#.TRANS: modal scale for music +msgid "lydian" msgstr "" -#: js/activity.js:1869 -msgid "filter type" +#: js/utils/musicutils.js:1040 +#.TRANS: modal scale for music +msgid "mixolydian" msgstr "" -#: js/activity.js:1872 -msgid "oscillator type" +#: js/utils/musicutils.js:1044 +#.TRANS: modal scale for music +msgid "locrian" msgstr "" -#: js/activity.js:1878 -#: js/DrumBlocks.js:32 -msgid "noise name" +#: js/utils/musicutils.js:1046 +#.TRANS: minor jazz scale for music +msgid "jazz minor" msgstr "" -#: js/activity.js:1881 -#: js/DrumBlocks.js:75 -msgid "drum name" +#: js/utils/musicutils.js:1048 +#.TRANS: bebop scale for music +msgid "bebop" msgstr "" -#: js/activity.js:1884 -#: js/DrumBlocks.js:119 -msgid "effects name" +#: js/utils/musicutils.js:1049 +msgid "arabic" msgstr "" -#: js/activity.js:1887 -msgid "wrap mode" +#: js/utils/musicutils.js:1050 +msgid "byzantine" msgstr "" -#: js/activity.js:1890 -msgid "load file" +#: js/utils/musicutils.js:1052 +#.TRANS: musical scale for music by Verdi +msgid "enigmatic" msgstr "" -#: js/activity.js:2056 -msgid "This block is deprecated." +#: js/utils/musicutils.js:1053 +msgid "ethiopian" msgstr "" -#: js/activity.js:2058 -msgid "Block cannot be found." +#: js/utils/musicutils.js:1055 +#.TRANS: Ethiopic scale for music +msgid "geez" msgstr "" -#: js/activity.js:2266 -msgid "Saving block artwork" +#: js/utils/musicutils.js:1056 +msgid "hindu" msgstr "" -#: js/activity.js:2277 -msgid "Erase" +#: js/utils/musicutils.js:1057 +msgid "hungarian" msgstr "" -#: js/activity.js:2301 -#: js/activity.js:2323 -msgid "Paste" -msgstr "Тавих" +#: js/utils/musicutils.js:1059 +#.TRANS: minor Romanian scale for music +msgid "romanian minor" +msgstr "" -#: js/activity.js:2305 -msgid "Save block help" +#: js/utils/musicutils.js:1060 +msgid "spanish gypsy" msgstr "" -#: js/activity.js:2390 -msgid "Jumping to the bottom of the page." +#: js/utils/musicutils.js:1062 +#.TRANS: musical scale for Mid-Eastern music +msgid "maqam" msgstr "" -#: js/activity.js:2396 -msgid "Scrolling up." +#: js/utils/musicutils.js:1064 +#.TRANS: minor blues scale for music +msgid "minor blues" msgstr "" -#: js/activity.js:2401 -msgid "Scrolling down." +#: js/utils/musicutils.js:1066 +#.TRANS: major blues scale for music +msgid "major blues" msgstr "" -#: js/activity.js:2406 -msgid "Extracting block" +#: js/utils/musicutils.js:1067 +msgid "whole tone" msgstr "" -#: js/activity.js:2414 -msgid "Moving block up." +#: js/utils/musicutils.js:1069 +#.TRANS: pentatonic is a general term that means "five note scale". This scale is typically known as "minor pentatonic" +msgid "minor pentatonic" msgstr "" -#: js/activity.js:2435 -msgid "Moving block down." +#: js/utils/musicutils.js:1071 +#.TRANS: pentatonic is a general term that means "five note scale". This scale is typically known as "major pentatonic" +msgid "major pentatonic" msgstr "" -#: js/activity.js:2456 -msgid "Moving block left." +#: js/utils/musicutils.js:1072 +msgid "chinese" msgstr "" -#: js/activity.js:2473 -msgid "Moving block right." +#: js/utils/musicutils.js:1073 +msgid "egyptian" msgstr "" -#: js/activity.js:2488 -msgid "Jump to home position." +#: js/utils/musicutils.js:1075 +#.TRANS: https://en.wikipedia.org/wiki/Hirajoshi_scale NOTE: There are three different versions of this scale +msgid "hirajoshi" msgstr "" -#: js/activity.js:2515 -msgid "Hide blocks" +#: js/utils/musicutils.js:1076 +msgid "Japan" msgstr "" -#: js/activity.js:3389 -msgid "Click the run button to run the project." +#: js/utils/musicutils.js:1078 +#.TRANS: https://en.wikipedia.org/wiki/In_scale and https://en.wikipedia.org/wiki/Sakura_Sakura +msgid "in" msgstr "" -#: js/activity.js:3456 -#: js/SaveInterface.js:131 -#: js/SaveInterface.js:204 -#: js/SaveInterface.js:262 -#: js/SaveInterface.js:389 -#: js/SaveInterface.js:417 -#: js/ProjectStorage.js:27 -#: js/GlobalPlanet.js:467 -#: js/GlobalPlanet.js:469 -#: js/GlobalPlanet.js:495 -#.TRANS: default project title when saving as Lilypond -msgid "My Project" +#: js/utils/musicutils.js:1080 +#.TRANS: https://en.wikipedia.org/wiki/Miny%C5%8D_scale +msgid "minyo" msgstr "" -#: js/activity.js:4261 -msgid "Show/hide block" +#: js/utils/musicutils.js:1082 +#.TRANS: Italian mathematician +msgid "fibonacci" msgstr "" -#: js/activity.js:4263 -msgid "Expand/collapse blocks" +#: js/utils/musicutils.js:1083 +#: js/utils/musicutils.js:1134 +#: js/utils/musicutils.js:1177 +#: js/utils/musicutils.js:1199 +#: js/utils/synthutils.js:134 +#: js/blocks/IntervalsBlocks.js:1124 +#: js/blocks/ToneBlocks.js:946 +#: js/blocks/VolumeBlocks.js:411 +#: js/blocks/WidgetBlocks.js:399 +#: js/blocks/WidgetBlocks.js:404 +#: js/turtleactions/VolumeActions.js:218 +#: js/widgets/modewidget.js:919 +#.TRANS: customize voice +msgid "custom" msgstr "" -#: js/activity.js:4381 -msgid "Could not parse JSON input." +#: js/utils/musicutils.js:1085 +#: js/utils/musicutils.js:1531 +#: js/blocks/WidgetBlocks.js:176 +#.TRANS: highpass filter +msgid "highpass" msgstr "" -#: js/activity.js:4684 -#: js/activity.js:4771 -#: js/activity.js:4821 -msgid "Cannot load project from the file. Please check the file type." +#: js/utils/musicutils.js:1087 +#: js/utils/musicutils.js:1532 +#.TRANS: lowpass filter +msgid "lowpass" msgstr "" -#: js/activity.js:5051 -msgid "Invalid parameters" +#: js/utils/musicutils.js:1089 +#: js/utils/musicutils.js:1533 +#.TRANS: bandpass filter +msgid "bandpass" msgstr "" -#: js/turtle-singer.js:1334 -#.TRANS: partials are weighted components in a harmonic series -msgid "You must have at least one Partial block inside of a Weighted-partial block" +#: js/utils/musicutils.js:1091 +#: js/utils/musicutils.js:1534 +#.TRANS: high-shelf filter +msgid "highshelf" msgstr "" -#: js/turtle-singer.js:2048 -msgid "synth cannot play chords." +#: js/utils/musicutils.js:1093 +#: js/utils/musicutils.js:1535 +#.TRANS: low-shelf filter +msgid "lowshelf" msgstr "" -#: js/lilypond.js:614 -msgid "brown rat" +#: js/utils/musicutils.js:1095 +#: js/utils/musicutils.js:1536 +#.TRANS: notch-shelf filter +msgid "notch" msgstr "" -#: js/lilypond.js:615 -msgid "mole" +#: js/utils/musicutils.js:1097 +#: js/utils/musicutils.js:1537 +#.TRANS: all-pass filter +msgid "allpass" msgstr "" -#: js/lilypond.js:616 -msgid "chipmunk" +#: js/utils/musicutils.js:1099 +#: js/utils/musicutils.js:1538 +#.TRANS: peaking filter +msgid "peaking" msgstr "" -#: js/lilypond.js:617 -msgid "red squirrel" +#: js/utils/musicutils.js:1100 +#: js/utils/musicutils.js:1546 +#: js/utils/synthutils.js:126 +#: js/blocks/PitchBlocks.js:85 +#.TRANS: sine wave +msgid "sine" msgstr "" -#: js/lilypond.js:618 -msgid "guinea pig" +#: js/utils/musicutils.js:1101 +#: js/utils/musicutils.js:1547 +#: js/utils/synthutils.js:128 +#: js/blocks/PitchBlocks.js:39 +#.TRANS: square wave +msgid "square" msgstr "" -#: js/lilypond.js:619 -msgid "capybara" +#: js/utils/musicutils.js:1102 +#: js/utils/musicutils.js:1548 +#: js/utils/synthutils.js:132 +#: js/blocks/PitchBlocks.js:62 +#: js/blocks/ToneBlocks.js:39 +#.TRANS: triangle wave +msgid "triangle" msgstr "" -#: js/lilypond.js:620 -msgid "coypu" +#: js/utils/musicutils.js:1103 +#: js/utils/musicutils.js:1549 +#: js/utils/synthutils.js:130 +#: js/blocks/PitchBlocks.js:108 +#.TRANS: sawtooth wave +msgid "sawtooth" msgstr "" -#: js/lilypond.js:621 -msgid "black rat" +#: js/utils/musicutils.js:1105 +#: js/utils/musicutils.js:1312 +#: js/blocks/PitchBlocks.js:931 +#: js/blocks/PitchBlocks.js:937 +#: js/turtleactions/PitchActions.js:469 +#.TRANS: even numbers +#.TRANS: invert based on even or odd number or musical scale +msgid "even" msgstr "" -#: js/lilypond.js:622 -msgid "grey squirrel" +#: js/utils/musicutils.js:1107 +#: js/utils/musicutils.js:1313 +#: js/blocks/PitchBlocks.js:937 +#: js/turtleactions/PitchActions.js:471 +#.TRANS: odd numbers +msgid "odd" msgstr "" -#: js/lilypond.js:623 -msgid "flying squirrel" +#: js/utils/musicutils.js:1108 +#: js/utils/musicutils.js:1314 +#: js/blocks/PitchBlocks.js:937 +#: js/turtleactions/PitchActions.js:473 +msgid "scalar" msgstr "" -#: js/lilypond.js:624 -msgid "bat" +#: js/utils/musicutils.js:1109 +#: js/utils/synthutils.js:72 +#: js/blocks/VolumeBlocks.js:47 +#.TRANS: musical instrument +msgid "piano" msgstr "" -#: js/lilypond.js:757 -#: js/lilypond.js:921 -#: js/lilypond.js:959 -#: js/ActionBlocks.js:1256 -#: js/ExtrasBlocks.js:553 -msgid "start drum" +#: js/utils/musicutils.js:1110 +#: js/utils/synthutils.js:74 +#.TRANS: musical instrument +msgid "violin" msgstr "" -#: js/SaveInterface.js:59 -#: js/SaveInterface.js:61 -#: js/SaveInterface.js:93 -msgid "Music Blocks Project" +#: js/utils/musicutils.js:1111 +#: js/utils/synthutils.js:76 +#.TRANS: viola musical instrument +msgid "viola" msgstr "" -#: js/SaveInterface.js:63 -msgid "This project was created in Music Blocks" +#: js/utils/musicutils.js:1112 +#: js/utils/synthutils.js:114 +#.TRANS: xylophone musical instrument +msgid "xylophone" msgstr "" -#: js/SaveInterface.js:67 -msgid "Music Blocks is a Free/Libre Software application." +#: js/utils/musicutils.js:1113 +#: js/utils/synthutils.js:136 +#.TRANS: vibraphone musical instrument +msgid "vibraphone" msgstr "" -#: js/SaveInterface.js:69 -msgid "The source code can be accessed at" +#: js/utils/musicutils.js:1114 +#: js/utils/synthutils.js:78 +#.TRANS: musical instrument +msgid "cello" msgstr "" -#: js/SaveInterface.js:72 -msgid "For more information, please consult the" +#: js/utils/musicutils.js:1116 +#: js/utils/synthutils.js:82 +#.TRANS: viola musical instrument +msgid "double bass" msgstr "" -#: js/SaveInterface.js:83 -msgid "Alternatively, open the file in Music Blocks using the Load project button." +#: js/utils/musicutils.js:1117 +#: js/utils/synthutils.js:84 +#: js/widgets/rhythmruler.js:2511 +#.TRANS: musical instrument +msgid "guitar" msgstr "" -#: js/SaveInterface.js:85 -msgid "Project Code" +#: js/utils/musicutils.js:1118 +#: js/utils/synthutils.js:86 +#.TRANS: musical instrument +msgid "acoustic guitar" msgstr "" -#: js/SaveInterface.js:87 -msgid "This code stores data about the blocks in a project." +#: js/utils/musicutils.js:1119 +#: js/utils/synthutils.js:88 +#.TRANS: musical instrument +msgid "flute" msgstr "" -#: js/SaveInterface.js:89 -msgid "Show" +#: js/utils/musicutils.js:1120 +#: js/utils/synthutils.js:90 +#.TRANS: musical instrument +msgid "clarinet" msgstr "" -#: js/SaveInterface.js:91 -msgid "Hide" +#: js/utils/musicutils.js:1121 +#: js/utils/synthutils.js:92 +#.TRANS: musical instrument +msgid "saxophone" msgstr "" -#: js/SaveInterface.js:197 -#: js/SaveInterface.js:58 -msgid "No description provided" +#: js/utils/musicutils.js:1122 +#: js/utils/synthutils.js:94 +#.TRANS: musical instrument +msgid "tuba" msgstr "" -#: js/SaveInterface.js:332 -msgid "Your recording is in progress." +#: js/utils/musicutils.js:1123 +#: js/utils/synthutils.js:96 +#.TRANS: musical instrument +msgid "trumpet" msgstr "" -#: js/SaveInterface.js:401 -#.TRANS: File name prompt for save as Lilypond -msgid "File name" +#: js/utils/musicutils.js:1124 +#: js/utils/synthutils.js:98 +#.TRANS: musical instrument +msgid "oboe" msgstr "" -#: js/SaveInterface.js:403 -#: js/StringHelper.js:39 -#.TRANS: Project title prompt for save as Lilypond -msgid "Project title" +#: js/utils/musicutils.js:1125 +#: js/utils/synthutils.js:100 +#.TRANS: musical instrument +msgid "trombone" msgstr "" -#: js/SaveInterface.js:405 -#.TRANS: Project title prompt for save as Lilypond -msgid "Project author" +#: js/utils/musicutils.js:1126 +#: js/utils/synthutils.js:116 +#.TRANS: polytone synthesizer +msgid "electronic synth" msgstr "" -#: js/SaveInterface.js:407 -#.TRANS: MIDI prompt for save as Lilypond -msgid "Include MIDI output?" +#: js/utils/musicutils.js:1127 +#: js/utils/synthutils.js:118 +#.TRANS: simple monotone synthesizer +msgid "simple 1" msgstr "" -#: js/SaveInterface.js:409 -#.TRANS: Guitar prompt for save as Lilypond -msgid "Include guitar tablature output?" +#: js/utils/musicutils.js:1128 +msgid "simple 2" msgstr "" -#: js/SaveInterface.js:411 -#.TRANS: Lilypond is a scripting language for generating sheet music -msgid "Save as Lilypond" +#: js/utils/musicutils.js:1129 +msgid "simple 3" msgstr "" -#: js/SaveInterface.js:426 -#: js/EnsembleBlocks.js:75 -#: js/EnsembleBlocks.js:154 -#: js/EnsembleBlocks.js:216 -#: js/EnsembleBlocks.js:302 -#: js/EnsembleBlocks.js:348 -#: js/EnsembleBlocks.js:389 -#: js/EnsembleBlocks.js:441 -#: js/EnsembleBlocks.js:490 -#: js/EnsembleBlocks.js:536 -#: js/EnsembleBlocks.js:583 -#: js/EnsembleBlocks.js:637 -#: js/EnsembleBlocks.js:753 -#: js/EnsembleBlocks.js:840 -#: js/EnsembleBlocks.js:899 -#: js/EnsembleBlocks.js:942 -#: js/EnsembleBlocks.js:1212 -#: js/EnsembleBlocks.js:1280 -#.TRANS: default project author when saving as Lilypond -msgid "Mr. Mouse" +#: js/utils/musicutils.js:1130 +msgid "simple 4" msgstr "" -#: js/SaveInterface.js:573 -msgid "The Lilypond code is copied to clipboard. You can paste it here: " +#: js/utils/musicutils.js:1131 +#: js/utils/synthutils.js:58 +#: js/blocks/DrumBlocks.js:191 +#.TRANS: white noise synthesizer +msgid "white noise" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:50 -#: js/RhythmBlockPaletteBlocks.js:232 -#.TRANS: rhythm block -#.TRANS: translate "rhythm1" as rhythm -msgid "rhythm1" +#: js/utils/musicutils.js:1132 +#: js/utils/synthutils.js:60 +#.TRANS: brown noise synthesizer +msgid "brown noise" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:70 -#: js/RhythmBlockPaletteBlocks.js:251 -#: js/RhythmBlockPaletteBlocks.js:484 -#: js/RhythmBlockPaletteBlocks.js:553 -#: js/RhythmBlockPaletteBlocks.js:874 -msgid "number of notes" +#: js/utils/musicutils.js:1133 +#: js/utils/synthutils.js:62 +#.TRANS: pink noise synthesizer +msgid "pink noise" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:126 -msgid "polyphonic rhythm" +#: js/utils/musicutils.js:1135 +#: js/utils/synthutils.js:148 +#: js/widgets/rhythmruler.js:2057 +#: js/widgets/rhythmruler.js:2319 +#.TRANS: musical instrument +msgid "snare drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:218 -msgid "The Rhythm block is used to generate rhythm patterns." +#: js/utils/musicutils.js:1136 +#: js/utils/synthutils.js:150 +#.TRANS: musical instrument +msgid "kick drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:279 -msgid "1/64 note" +#: js/utils/musicutils.js:1137 +#: js/utils/synthutils.js:152 +#.TRANS: musical instrument +msgid "tom tom" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:303 -msgid "1/32 note" +#: js/utils/musicutils.js:1138 +#: js/utils/synthutils.js:154 +#.TRANS: musical instrument +msgid "floor tom" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:331 -msgid "1/16 note" +#: js/utils/musicutils.js:1139 +#: js/utils/synthutils.js:156 +#.TRANS: musical instrument +msgid "bass drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:359 -msgid "eighth note" +#: js/utils/musicutils.js:1140 +#: js/utils/synthutils.js:158 +#.TRANS: a drum made from an inverted cup +msgid "cup drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:387 -msgid "quarter note" +#: js/utils/musicutils.js:1141 +#: js/utils/synthutils.js:160 +#.TRANS: musical instrument +msgid "darbuka drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:415 -msgid "half note" +#: js/utils/musicutils.js:1142 +#: js/utils/synthutils.js:164 +#.TRANS: musical instrument +msgid "hi hat" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:443 -msgid "whole note" +#: js/utils/musicutils.js:1143 +#: js/utils/synthutils.js:166 +#.TRANS: a small metal bell +msgid "ride bell" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:481 -#: js/RhythmBlockPaletteBlocks.js:550 -#: js/RhythmBlockPaletteBlocks.js:601 -#.TRANS: A tuplet is a note value divided into irregular time values. -msgid "tuplet" +#: js/utils/musicutils.js:1144 +#: js/utils/synthutils.js:168 +#.TRANS: musical instrument +msgid "cow bell" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:767 -msgid "septuplet" +#: js/utils/musicutils.js:1145 +msgid "japanese drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:795 -msgid "quintuplet" +#: js/utils/musicutils.js:1146 +#: js/utils/synthutils.js:174 +#.TRANS: musical instrument +msgid "japanese bell" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:823 -msgid "triplet" +#: js/utils/musicutils.js:1147 +#: js/utils/synthutils.js:170 +#.TRANS: musical instrument +msgid "triangle bell" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:850 -msgid "simple tuplet" +#: js/utils/musicutils.js:1148 +#: js/utils/synthutils.js:172 +#.TRANS: musical instrument +msgid "finger cymbals" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:860 -msgid "Tuplets are a collection of notes that get scaled to a specific duration." +#: js/utils/musicutils.js:1149 +#: js/utils/synthutils.js:176 +#.TRANS: a musically tuned set of bells +msgid "chime" msgstr "" -#: js/WidgetBlocks.js:71 -#.TRANS: sound envelope (ADSR) -msgid "envelope" +#: js/utils/musicutils.js:1150 +#: js/utils/synthutils.js:178 +#.TRANS: a musical instrument +msgid "gong" msgstr "" -#: js/WidgetBlocks.js:79 -#.TRANS: Attack time is the time taken for initial run-up of level from nil to peak, beginning when the key is first pressed. -msgid "attack" +#: js/utils/musicutils.js:1151 +#: js/utils/synthutils.js:180 +#.TRANS: sound effect +msgid "clang" msgstr "" -#: js/WidgetBlocks.js:81 -#.TRANS: Decay time is the time taken for the subsequent run down from the attack level to the designated sustain level. -msgid "decay" +#: js/utils/musicutils.js:1152 +#: js/utils/synthutils.js:182 +#.TRANS: sound effect +msgid "crash" msgstr "" -#: js/WidgetBlocks.js:83 -#.TRANS: Sustain level is the level during the main sequence of the sound's duration, until the key is released. -msgid "sustain" +#: js/utils/musicutils.js:1153 +#: js/utils/synthutils.js:184 +#.TRANS: sound effect +msgid "bottle" msgstr "" -#: js/WidgetBlocks.js:85 -#.TRANS: Release time is the time taken for the level to decay from the sustain level to zero after the key is released. -msgid "release" +#: js/utils/musicutils.js:1154 +#: js/utils/synthutils.js:186 +#.TRANS: sound effect +msgid "clap" msgstr "" -#: js/WidgetBlocks.js:96 -msgid "Attack value should be from 0 to 100." +#: js/utils/musicutils.js:1155 +#: js/utils/synthutils.js:188 +#.TRANS: sound effect +msgid "slap" msgstr "" -#: js/WidgetBlocks.js:99 -msgid "Decay value should be from 0 to 100." +#: js/utils/musicutils.js:1156 +#: js/utils/synthutils.js:190 +#.TRANS: sound effect +msgid "splash" msgstr "" -#: js/WidgetBlocks.js:102 -msgid "Sustain value should be from 0 to 100." +#: js/utils/musicutils.js:1157 +#: js/utils/synthutils.js:192 +#.TRANS: sound effect +msgid "bubbles" msgstr "" -#: js/WidgetBlocks.js:105 -msgid "Release value should be from 0-100." +#: js/utils/musicutils.js:1158 +#: js/utils/synthutils.js:194 +#.TRANS: sound effect +msgid "raindrop" msgstr "" -#: js/WidgetBlocks.js:121 -msgid "You are adding multiple envelope blocks." +#: js/utils/musicutils.js:1159 +#: js/utils/synthutils.js:196 +#.TRANS: animal sound effect +msgid "cat" msgstr "" -#: js/WidgetBlocks.js:144 -#.TRANS: a filter removes some unwanted components from a signal -msgid "filter" +#: js/utils/musicutils.js:1160 +#: js/utils/synthutils.js:198 +#.TRANS: animal sound effect +msgid "cricket" msgstr "" -#: js/WidgetBlocks.js:149 -#: js/musicutils.js:706 -#: js/musicutils.js:1105 -#.TRANS: highpass filter -msgid "highpass" +#: js/utils/musicutils.js:1161 +#: js/utils/synthutils.js:200 +#.TRANS: animal sound effect +msgid "dog" msgstr "" -#: js/WidgetBlocks.js:152 -#: js/ToneBlocks.js:42 -#: js/timbre.js:1558 -#: js/timbre.js:1808 -#.TRANS: type of filter, e.g., lowpass, highpass, etc. -#.TRANS: there are different types (sine, triangle, square...) of oscillators. -msgid "type" +#: js/utils/musicutils.js:1163 +#: js/utils/synthutils.js:102 +#.TRANS: musical instrument +msgid "banjo" msgstr "" -#: js/WidgetBlocks.js:154 -#: js/timbre.js:1818 -#.TRANS: rolloff is the steepness of a change in frequency. -msgid "rolloff" +#: js/utils/musicutils.js:1164 +#: js/utils/synthutils.js:104 +#.TRANS: musical instrument +msgid "koto" msgstr "" -#: js/WidgetBlocks.js:155 -#: js/MediaBlocks.js:692 -#: js/temperament.js:382 -#: js/temperament.js:417 -#: js/temperament.js:477 -#: js/temperament.js:485 -#: js/temperament.js:1348 -#: js/timbre.js:1842 -msgid "frequency" +#: js/utils/musicutils.js:1165 +#: js/utils/synthutils.js:106 +#.TRANS: musical instrument +msgid "dulcimer" msgstr "" -#: js/WidgetBlocks.js:179 -#.TRANS: rolloff is the steepness of a change in frequency. -msgid "Rolloff value should be either -12, -24, -48, or -96 decibels/octave." +#: js/utils/musicutils.js:1166 +#: js/utils/synthutils.js:108 +#.TRANS: musical instrument +msgid "electric guitar" msgstr "" -#: js/WidgetBlocks.js:211 -msgid "The Temperament tool is used to define custom tuning." +#: js/utils/musicutils.js:1167 +#: js/utils/synthutils.js:110 +#.TRANS: musical instrument +msgid "bassoon" msgstr "" -#: js/WidgetBlocks.js:277 -#: js/sampler.js:329 -msgid "Upload a sample and adjust its pitch center." +#: js/utils/musicutils.js:1168 +#: js/utils/synthutils.js:112 +#.TRANS: musical instrument +msgid "celeste" msgstr "" -#: js/WidgetBlocks.js:284 -#.TRANS: the speed at music is should be played. -msgid "sampler" +#: js/utils/musicutils.js:1170 +#: js/widgets/temperament.js:787 +#.TRANS: musical temperament +msgid "equal" msgstr "" -#: js/WidgetBlocks.js:329 -#: js/WidgetBlocks.js:334 -#: js/IntervalsBlocks.js:928 -#: js/VolumeBlocks.js:411 -#: js/ToneBlocks.js:946 -#: js/VolumeActions.js:218 -#: js/musicutils.js:704 -#: js/musicutils.js:755 -#: js/musicutils.js:798 -#: js/musicutils.js:820 -#: js/musicutils.js:1136 -#: js/synthutils.js:118 -#: js/modewidget.js:919 -#.TRANS: customize voice -msgid "custom" +#: js/utils/musicutils.js:1172 +#.TRANS: musical temperament +msgid "Pythagorean" msgstr "" -#: js/WidgetBlocks.js:432 -msgid "The Meter block opens a tool to select strong beats for the meter." +#: js/utils/musicutils.js:1174 +#.TRANS: musical temperament +msgid "just intonation" msgstr "" -#: js/WidgetBlocks.js:473 -msgid "The oscilloscope block opens a tool to visualize waveforms." +#: js/utils/musicutils.js:1176 +#.TRANS: musical temperament +msgid "meantone" msgstr "" -#: js/WidgetBlocks.js:478 -msgid "oscilloscope" +#: js/utils/musicutils.js:1193 +msgid "major 7th" msgstr "" -#: js/WidgetBlocks.js:530 -msgid "The Custom mode block opens a tool to explore musical mode (the spacing of the notes in a scale)." +#: js/utils/musicutils.js:1194 +msgid "minor 7th" msgstr "" -#: js/WidgetBlocks.js:536 -#.TRANS: musical mode is the pattern of half-steps in an octave, e.g., Major or Minor modes -msgid "custom mode" +#: js/utils/musicutils.js:1195 +msgid "dominant 7th" msgstr "" -#: js/WidgetBlocks.js:570 -msgid "The Tempo block opens a metronome to visualize the beat." +#: js/utils/musicutils.js:1196 +msgid "minor-major 7th" msgstr "" -#: js/WidgetBlocks.js:617 -msgid "The Arpeggio Widget is used to compose chord sequences." +#: js/utils/musicutils.js:1197 +msgid "fully-diminished 7th" msgstr "" -#: js/WidgetBlocks.js:623 -#: js/IntervalsBlocks.js:683 -msgid "arpeggio" +#: js/utils/musicutils.js:1198 +msgid "half-diminished 7th" msgstr "" -#: js/WidgetBlocks.js:677 -msgid "The Pitch drum matrix is used to map pitches to drum sounds." +#: js/utils/musicutils.js:1557 +#: js/utils/musicutils.js:1569 +msgid "Equal (12EDO)" msgstr "" -#: js/WidgetBlocks.js:682 -#.TRANS: makes a mapping between pitches and drum sounds -msgid "pitch-drum mapper" +#: js/utils/musicutils.js:1558 +#: js/utils/musicutils.js:1570 +msgid "5-limit Just Intonation" msgstr "" -#: js/WidgetBlocks.js:724 -msgid "You must have at least one pitch block and one drum block in the matrix." +#: js/utils/musicutils.js:1559 +#: js/utils/musicutils.js:1571 +msgid "Pythagorean (3-limit JI)" msgstr "" -#: js/WidgetBlocks.js:746 -msgid "The Pitch slider tool to is used to generate pitches at selected frequencies." +#: js/utils/musicutils.js:1560 +#: js/utils/musicutils.js:1561 +#: js/utils/musicutils.js:1572 +#: js/utils/musicutils.js:1573 +msgid "Meantone" msgstr "" -#: js/WidgetBlocks.js:751 -#.TRANS: widget to generate pitches using a slider -msgid "pitch slider" +#: js/utils/musicutils.js:1574 +msgid "Custom" msgstr "" -#: js/WidgetBlocks.js:788 -msgid "chromatic keyboard" +#: js/utils/musicutils.js:5387 +#: js/utils/musicutils.js:5430 +msgid "current" msgstr "" -#: js/WidgetBlocks.js:815 -#: js/WidgetBlocks.js:874 -#.TRANS: widget to generate pitches using a slider -msgid "music keyboard" +#: js/utils/musicutils.js:5390 +#: js/utils/musicutils.js:5421 +msgid "next" msgstr "" -#: js/WidgetBlocks.js:859 -#: js/WidgetBlocks.js:866 -msgid "The Music keyboard block opens a piano keyboard that can be used to create notes." +#: js/utils/musicutils.js:5393 +#: js/utils/musicutils.js:5426 +msgid "previous" msgstr "" -#: js/WidgetBlocks.js:910 -msgid "The Pitch staircase tool to is used to generate pitches from a given ratio." +#: js/utils/synthutils.js:120 +#.TRANS: simple monotone synthesizer +msgid "simple-2" msgstr "" -#: js/WidgetBlocks.js:917 -#.TRANS: generate a progressive sequence of pitches -msgid "pitch staircase" +#: js/utils/synthutils.js:122 +#.TRANS: simple monotone synthesizer +msgid "simple-3" msgstr "" -#: js/WidgetBlocks.js:982 -msgid "The Rhythm Maker block opens a tool to create drum machines." +#: js/utils/synthutils.js:124 +#.TRANS: simple monotone synthesizer +msgid "simple-4" msgstr "" -#: js/WidgetBlocks.js:1036 -msgid "G major scale" +#: js/utils/synthutils.js:162 +#.TRANS: musical instrument +msgid "taiko" msgstr "" -#: js/WidgetBlocks.js:1064 -msgid "C major scale" +#: js/blocks/ActionBlocks.js:58 +msgid "The Return block will return a value from an action." msgstr "" -#: js/WidgetBlocks.js:1097 -msgid "The Phrase Maker block opens a tool to create musical phrases." +#: js/blocks/ActionBlocks.js:75 +msgid "return" msgstr "" -#: js/WidgetBlocks.js:1104 -#.TRANS: assigns pitch to a sequence of beats to generate a melody -msgid "phrase maker" +#: js/blocks/ActionBlocks.js:128 +msgid "The Return to URL block will return a value to a webpage." msgstr "" -#: js/WidgetBlocks.js:1168 -msgid "You must have at least one pitch block and one rhythm block in the matrix." +#: js/blocks/ActionBlocks.js:145 +msgid "return to URL" msgstr "" -#: js/WidgetBlocks.js:1220 -msgid "The Status block opens a tool for inspecting the status of Music Blocks as it is running." +#: js/blocks/ActionBlocks.js:233 +#: js/blocks/ActionBlocks.js:290 +#: js/blocks/ActionBlocks.js:501 +#: js/blocks/ActionBlocks.js:688 +msgid "The Calculate block returns a value calculated by an action." msgstr "" -#: js/IntervalsBlocks.js:45 -msgid "set temperament" +#: js/blocks/ActionBlocks.js:251 +#: js/blocks/ActionBlocks.js:517 +#: js/blocks/ActionBlocks.js:707 +msgid "calculate" msgstr "" -#: js/IntervalsBlocks.js:63 -#: js/MediaBlocks.js:746 -#: js/PitchBlocks.js:657 -#: js/PitchBlocks.js:933 -#: js/PitchBlocks.js:972 -#: js/PitchBlocks.js:1005 -#: js/PitchBlocks.js:1166 -#: js/PitchBlocks.js:1679 -#: js/PitchBlocks.js:1720 -#: js/PitchBlocks.js:1827 -#: js/ToneBlocks.js:1025 -#.TRANS: adjusts the shift up or down by one octave (twelve half-steps in the interval between two notes, one having twice or half the frequency in Hz of the other.) -msgid "octave" +#: js/blocks/ActionBlocks.js:376 +#: js/blocks/ActionBlocks.js:593 +#: js/blocks/ActionBlocks.js:942 +#: js/blocks/ActionBlocks.js:1389 +#.TRANS: do is the do something or take an action. +msgid "The Do block is used to initiate an action." msgstr "" -#: js/IntervalsBlocks.js:99 -msgid "The Temperament name block is used to select a tuning method." +#: js/blocks/ActionBlocks.js:390 +#: js/blocks/ActionBlocks.js:610 +#: js/blocks/ActionBlocks.js:959 +#: js/blocks/ActionBlocks.js:1048 +#: js/blocks/MeterBlocks.js:769 +msgid "do1" msgstr "" -#: js/IntervalsBlocks.js:161 -msgid "doubly" +#: js/blocks/ActionBlocks.js:390 +#: js/blocks/ActionBlocks.js:610 +#: js/blocks/ActionBlocks.js:959 +#: js/blocks/ActionBlocks.js:1048 +#: js/blocks/FlowBlocks.js:742 +#: js/blocks/FlowBlocks.js:822 +#: js/blocks/MeterBlocks.js:769 +msgid "do" msgstr "" -#: js/IntervalsBlocks.js:166 -msgid "The Doubly block will double the size of an interval." +#: js/blocks/ActionBlocks.js:791 +#: js/blocks/ActionBlocks.js:865 +msgid "The Arg block contains the value of an argument passed to an action." msgstr "" -#: js/IntervalsBlocks.js:262 -msgid "interval number" +#: js/blocks/ActionBlocks.js:806 +#: js/blocks/ActionBlocks.js:878 +msgid "arg" msgstr "" -#: js/IntervalsBlocks.js:330 -#.TRANS: measure the distance between two pitches in semi-tones -msgid "semi-tone interval measure" +#: js/blocks/ActionBlocks.js:836 +#: js/blocks/ActionBlocks.js:900 +#: js/blocks/ActionBlocks.js:908 +msgid "Invalid argument" msgstr "" -#: js/IntervalsBlocks.js:397 -#: js/IntervalsBlocks.js:513 -msgid "You must use two pitch blocks when measuring an interval." +#: js/blocks/ActionBlocks.js:944 +msgid "In the example, it is used with the One of block to choose a random phase." msgstr "" -#: js/IntervalsBlocks.js:439 -msgid "The Scalar interval block measures the distance between two notes in the current key and mode." +#: js/blocks/ActionBlocks.js:1019 +#: js/blocks/ActionBlocks.js:1026 +msgid "The Listen block is used to listen for an event such as a mouse click." msgstr "" -#: js/IntervalsBlocks.js:445 -#.TRANS: measure the distance between two pitches in steps of musical scale -msgid "scalar interval measure" +#: js/blocks/ActionBlocks.js:1028 +msgid "When the event happens, an action is taken." msgstr "" -#: js/IntervalsBlocks.js:592 -#: js/musicutils.js:637 -#: js/musicutils.js:908 -#.TRANS: perfect is a music term related to intervals -msgid "perfect" +#: js/blocks/ActionBlocks.js:1045 +msgid "on" msgstr "" -#: js/IntervalsBlocks.js:621 -msgid "In the figure, we add sol# to sol." +#: js/blocks/ActionBlocks.js:1048 +#: js/blocks/ActionBlocks.js:1049 +#: js/blocks/ActionBlocks.js:1153 +msgid "event" msgstr "" -#: js/IntervalsBlocks.js:627 -#: js/OrnamentBlocks.js:220 -#.TRANS: calculate a relative step between notes based on semi-tones -msgid "semi-tone interval" +#: js/blocks/ActionBlocks.js:1133 +msgid "The Broadcast block is used to trigger an event." msgstr "" -#: js/IntervalsBlocks.js:676 -msgid "The output of the example is: do, mi, sol, sol, ti, mi" +#: js/blocks/ActionBlocks.js:1151 +msgid "broadcast" msgstr "" -#: js/IntervalsBlocks.js:735 -msgid "The Chord block calculates common chords." +#: js/blocks/ActionBlocks.js:1208 +msgid "Each Start block is a separate voice." msgstr "" -#: js/IntervalsBlocks.js:737 -msgid "In the figure, we generate a C-major chord." +#: js/blocks/ActionBlocks.js:1304 +msgid "It is often used for storing a phrase of music that is repeated." msgstr "" -#: js/IntervalsBlocks.js:742 -msgid "chord" +#: js/blocks/ActionBlocks.js:1495 +msgid "define temperament" msgstr "" -#: js/IntervalsBlocks.js:794 -msgid "The Ratio Interval block calculates an interval based on a ratio." +#: js/blocks/BooleanBlocks.js:44 +msgid "The Not block is the logical not operator." msgstr "" -#: js/IntervalsBlocks.js:799 -msgid "ratio interval" +#: js/blocks/BooleanBlocks.js:62 +msgid "not" +msgstr "үгүйсгэ" + +#: js/blocks/BooleanBlocks.js:134 +msgid "The And block is the logical and operator." msgstr "" -#: js/IntervalsBlocks.js:868 -msgid "In the figure, we add la to sol." +#: js/blocks/BooleanBlocks.js:152 +msgid "and" +msgstr "ба" + +#: js/blocks/BooleanBlocks.js:218 +msgid "The Or block is the logical or operator." msgstr "" -#: js/IntervalsBlocks.js:924 -#.TRANS: define a custom mode -msgid "define mode" +#: js/blocks/BooleanBlocks.js:236 +msgid "or" +msgstr "эсвэл" + +#: js/blocks/BooleanBlocks.js:302 +msgid "The XOR block is the logical XOR operator." msgstr "" -#: js/IntervalsBlocks.js:977 -msgid "movable Do" +#: js/blocks/BooleanBlocks.js:320 +msgid "xor" msgstr "" -#: js/IntervalsBlocks.js:1028 -#.TRANS: mode length is the number of notes in the mode, e.g., 7 for major and minor scales; 12 for chromatic scales -msgid "mode length" +#: js/blocks/BooleanBlocks.js:808 +msgid "The Equal block returns True if the two numbers are equal." msgstr "" -#: js/IntervalsBlocks.js:1037 -msgid "The Mode length block is the number of notes in the current scale." +#: js/blocks/BooleanBlocks.js:909 +msgid "The Not-equal-to block returns True if the two numbers are not equal to each other." msgstr "" -#: js/IntervalsBlocks.js:1039 -msgid "Most Western scales have 7 notes." +#: js/blocks/BooleanBlocks.js:1008 +msgid "The Boolean block is used to specify true or false." msgstr "" -#: js/IntervalsBlocks.js:1088 -#.TRANS: the mode in music is 'major', 'minor', etc. -msgid "current mode" +#: js/blocks/BoxesBlocks.js:53 +#: js/blocks/BoxesBlocks.js:59 +msgid "The Add-to block is used to add to the value stored in a box." msgstr "" -#: js/IntervalsBlocks.js:1141 -#.TRANS: the key is a group of pitches with which a music composition is created -msgid "current key" +#: js/blocks/BoxesBlocks.js:61 +msgid "It can also be used with other blocks such as Color and Pen size." msgstr "" -#: js/IntervalsBlocks.js:1193 -#: js/IntervalsBlocks.js:1238 -#.TRANS: set the key and mode, e.g. C Major -msgid "set key" +#: js/blocks/BoxesBlocks.js:73 +msgid "add" msgstr "" -#: js/IntervalsBlocks.js:1247 -#: js/IntervalsBlocks.js:1253 -msgid "The Set key block is used to set the key and mode," +#: js/blocks/BoxesBlocks.js:75 +#: js/widgets/temperament.js:857 +msgid "to" msgstr "" -#: js/IntervalsBlocks.js:1253 -msgid "eg C Major" +#: js/blocks/BoxesBlocks.js:75 +#: js/blocks/BoxesBlocks.js:595 +#: js/blocks/HeapBlocks.js:544 +msgid "value1" msgstr "" -#: js/IntervalsBlocks.js:1266 -#: js/DictBlocks.js:215 -#: js/DictBlocks.js:216 -#: js/DictBlocks.js:289 -#: js/DictBlocks.js:290 -#: js/DictBlocks.js:357 -#: js/DictBlocks.js:430 -#: js/DictBlocks.js:431 -#.TRANS: key, e.g., C in C Major -msgid "key" +#: js/blocks/BoxesBlocks.js:118 +msgid "Block does not support incrementing." msgstr "" -#: js/ActionBlocks.js:58 -msgid "The Return block will return a value from an action." +#: js/blocks/BoxesBlocks.js:152 +msgid "The Add-1-to block adds one to the value stored in a box." msgstr "" -#: js/ActionBlocks.js:75 -msgid "return" +#: js/blocks/BoxesBlocks.js:163 +msgid "add 1 to" msgstr "" -#: js/ActionBlocks.js:128 -msgid "The Return to URL block will return a value to a webpage." +#: js/blocks/BoxesBlocks.js:211 +msgid "The Subtract-1-from block subtracts one from the value stored in a box." msgstr "" -#: js/ActionBlocks.js:145 -msgid "return to URL" +#: js/blocks/BoxesBlocks.js:222 +msgid "subtract 1 from" msgstr "" -#: js/ActionBlocks.js:233 -#: js/ActionBlocks.js:290 -#: js/ActionBlocks.js:501 -#: js/ActionBlocks.js:688 -msgid "The Calculate block returns a value calculated by an action." +#: js/blocks/BoxesBlocks.js:270 +#: js/blocks/BoxesBlocks.js:387 +msgid "The Box block returns the value stored in a box." msgstr "" -#: js/ActionBlocks.js:251 -#: js/ActionBlocks.js:517 -#: js/ActionBlocks.js:707 -msgid "calculate" +#: js/blocks/BoxesBlocks.js:500 +#: js/blocks/BoxesBlocks.js:576 +msgid "The Store in block will store a value in a box." msgstr "" -#: js/ActionBlocks.js:376 -#: js/ActionBlocks.js:593 -#: js/ActionBlocks.js:942 -#: js/ActionBlocks.js:1389 -#.TRANS: do is the do something or take an action. -msgid "The Do block is used to initiate an action." +#: js/blocks/BoxesBlocks.js:595 +#: js/blocks/EnsembleBlocks.js:391 +#: js/blocks/EnsembleBlocks.js:402 +msgid "name1" msgstr "" -#: js/ActionBlocks.js:390 -#: js/ActionBlocks.js:610 -#: js/ActionBlocks.js:959 -#: js/ActionBlocks.js:1048 -#: js/MeterBlocks.js:769 -msgid "do1" +#: js/blocks/BoxesBlocks.js:652 +msgid "The Box2 block returns the value stored in Box2." msgstr "" -#: js/ActionBlocks.js:390 -#: js/ActionBlocks.js:610 -#: js/ActionBlocks.js:959 -#: js/ActionBlocks.js:1048 -#: js/FlowBlocks.js:742 -#: js/FlowBlocks.js:822 -#: js/MeterBlocks.js:769 -msgid "do" +#: js/blocks/BoxesBlocks.js:703 +msgid "The Store in Box2 block is used to store a value in Box2." msgstr "" -#: js/ActionBlocks.js:791 -#: js/ActionBlocks.js:865 -msgid "The Arg block contains the value of an argument passed to an action." +#: js/blocks/BoxesBlocks.js:715 +msgid "store in box2" msgstr "" -#: js/ActionBlocks.js:806 -#: js/ActionBlocks.js:878 -msgid "arg" +#: js/blocks/BoxesBlocks.js:761 +msgid "The Box1 block returns the value stored in Box1." msgstr "" -#: js/ActionBlocks.js:836 -#: js/ActionBlocks.js:900 -#: js/ActionBlocks.js:908 -msgid "Invalid argument" +#: js/blocks/BoxesBlocks.js:812 +msgid "The Store in Box1 block is used to store a value in Box1." msgstr "" -#: js/ActionBlocks.js:944 -msgid "In the example, it is used with the One of block to choose a random phase." +#: js/blocks/BoxesBlocks.js:826 +msgid "store in box1" msgstr "" -#: js/ActionBlocks.js:1019 -#: js/ActionBlocks.js:1026 -msgid "The Listen block is used to listen for an event such as a mouse click." +#: js/blocks/DictBlocks.js:77 +msgid "show dictionary" msgstr "" -#: js/ActionBlocks.js:1028 -msgid "When the event happens, an action is taken." +#: js/blocks/DictBlocks.js:80 +#: js/blocks/DictBlocks.js:145 +#: js/blocks/DictBlocks.js:216 +#: js/blocks/DictBlocks.js:290 +#: js/blocks/ProgramBlocks.js:396 +#: js/blocks/ProgramBlocks.js:501 +#: js/blocks/ProgramBlocks.js:664 +msgid "My Dictionary" msgstr "" -#: js/ActionBlocks.js:1045 -msgid "on" +#: js/blocks/DictBlocks.js:129 +msgid "The Dictionary block returns a dictionary." msgstr "" -#: js/ActionBlocks.js:1048 -#: js/ActionBlocks.js:1049 -#: js/ActionBlocks.js:1153 -msgid "event" +#: js/blocks/DictBlocks.js:197 +#: js/blocks/DictBlocks.js:339 +msgid "The Get-dict block returns a value in the dictionary for a specified key." msgstr "" -#: js/ActionBlocks.js:1133 -msgid "The Broadcast block is used to trigger an event." +#: js/blocks/DictBlocks.js:212 +#: js/blocks/DictBlocks.js:354 +#.TRANS: retrieve a value from the dictionary with a given key +msgid "get value" msgstr "" -#: js/ActionBlocks.js:1151 -msgid "broadcast" +#: js/blocks/DictBlocks.js:215 +#: js/blocks/DictBlocks.js:216 +#: js/blocks/DictBlocks.js:289 +#: js/blocks/DictBlocks.js:290 +#: js/blocks/DictBlocks.js:357 +#: js/blocks/DictBlocks.js:430 +#: js/blocks/DictBlocks.js:431 +msgid "key2" msgstr "" -#: js/ActionBlocks.js:1208 -msgid "Each Start block is a separate voice." +#: js/blocks/DictBlocks.js:215 +#: js/blocks/DictBlocks.js:216 +#: js/blocks/DictBlocks.js:289 +#: js/blocks/DictBlocks.js:290 +#: js/blocks/DictBlocks.js:357 +#: js/blocks/DictBlocks.js:430 +#: js/blocks/DictBlocks.js:431 +#: js/blocks/IntervalsBlocks.js:1462 +#.TRANS: key, e.g., C in C Major +msgid "key" msgstr "" -#: js/ActionBlocks.js:1304 -msgid "It is often used for storing a phrase of music that is repeated." +#: js/blocks/DictBlocks.js:271 +#: js/blocks/DictBlocks.js:411 +msgid "The Set-dict block sets a value in the dictionary for a specified key." msgstr "" -#: js/ActionBlocks.js:1495 -msgid "define temperament" +#: js/blocks/DictBlocks.js:286 +#: js/blocks/DictBlocks.js:427 +#.TRANS: set a value in the dictionary for a given key +msgid "set value" msgstr "" -#: js/EnsembleBlocks.js:66 +#: js/blocks/EnsembleBlocks.js:66 msgid "mouse index heap" msgstr "" -#: js/EnsembleBlocks.js:68 +#: js/blocks/EnsembleBlocks.js:68 msgid "The Mouse index heap block returns a value in the heap at a specified location for a specified mouse." msgstr "" -#: js/EnsembleBlocks.js:77 -#: js/EnsembleBlocks.js:1080 +#: js/blocks/EnsembleBlocks.js:77 +#: js/blocks/EnsembleBlocks.js:1080 msgid "mouse name" msgstr "" -#: js/EnsembleBlocks.js:77 -#: js/EnsembleBlocks.js:92 -#: js/HeapBlocks.js:544 +#: js/blocks/EnsembleBlocks.js:77 +#: js/blocks/EnsembleBlocks.js:92 +#: js/blocks/HeapBlocks.js:544 #.TRANS: value1 is a numeric value (JAPANESE ONLY) msgid "index" msgstr "" -#: js/EnsembleBlocks.js:80 +#: js/blocks/EnsembleBlocks.js:80 msgid "turtle index heap" msgstr "" -#: js/EnsembleBlocks.js:82 +#: js/blocks/EnsembleBlocks.js:82 msgid "The Turtle index heap block returns a value in the heap at a specified location for a specified turtle." msgstr "" -#: js/EnsembleBlocks.js:90 -#: js/EnsembleBlocks.js:167 -#: js/EnsembleBlocks.js:230 -#: js/EnsembleBlocks.js:316 -#: js/EnsembleBlocks.js:362 -#: js/EnsembleBlocks.js:400 -#: js/EnsembleBlocks.js:454 -#: js/EnsembleBlocks.js:504 -#: js/EnsembleBlocks.js:550 -#: js/EnsembleBlocks.js:597 -#: js/EnsembleBlocks.js:651 -#: js/EnsembleBlocks.js:763 -#: js/EnsembleBlocks.js:854 -#: js/EnsembleBlocks.js:915 -#: js/EnsembleBlocks.js:955 -#: js/EnsembleBlocks.js:1219 -#: js/EnsembleBlocks.js:1293 +#: js/blocks/EnsembleBlocks.js:90 +#: js/blocks/EnsembleBlocks.js:167 +#: js/blocks/EnsembleBlocks.js:230 +#: js/blocks/EnsembleBlocks.js:316 +#: js/blocks/EnsembleBlocks.js:362 +#: js/blocks/EnsembleBlocks.js:400 +#: js/blocks/EnsembleBlocks.js:454 +#: js/blocks/EnsembleBlocks.js:504 +#: js/blocks/EnsembleBlocks.js:550 +#: js/blocks/EnsembleBlocks.js:597 +#: js/blocks/EnsembleBlocks.js:651 +#: js/blocks/EnsembleBlocks.js:763 +#: js/blocks/EnsembleBlocks.js:854 +#: js/blocks/EnsembleBlocks.js:915 +#: js/blocks/EnsembleBlocks.js:955 +#: js/blocks/EnsembleBlocks.js:1219 +#: js/blocks/EnsembleBlocks.js:1293 #.TRANS: Yertle is the name of a turtle. msgid "Yertle" msgstr "" -#: js/EnsembleBlocks.js:92 -#: js/EnsembleBlocks.js:1089 +#: js/blocks/EnsembleBlocks.js:92 +#: js/blocks/EnsembleBlocks.js:1089 msgid "turtle name" msgstr "" -#: js/EnsembleBlocks.js:122 -#: js/EnsembleBlocks.js:1197 -#: js/HeapBlocks.js:474 -#: js/HeapBlocks.js:572 +#: js/blocks/EnsembleBlocks.js:122 +#: js/blocks/EnsembleBlocks.js:1197 +#: js/blocks/HeapBlocks.js:474 +#: js/blocks/HeapBlocks.js:572 msgid "Index must be > 0." msgstr "" -#: js/EnsembleBlocks.js:127 -#: js/HeapBlocks.js:479 -#: js/HeapBlocks.js:577 +#: js/blocks/EnsembleBlocks.js:127 +#: js/blocks/HeapBlocks.js:479 +#: js/blocks/HeapBlocks.js:577 msgid "Maximum heap size is 1000." msgstr "" -#: js/EnsembleBlocks.js:145 +#: js/blocks/EnsembleBlocks.js:145 msgid "stop mouse" msgstr "" -#: js/EnsembleBlocks.js:147 +#: js/blocks/EnsembleBlocks.js:147 msgid "The Stop mouse block stops the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:158 +#: js/blocks/EnsembleBlocks.js:158 msgid "stop turtle" msgstr "" -#: js/EnsembleBlocks.js:160 +#: js/blocks/EnsembleBlocks.js:160 msgid "The Stop turtle block stops the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:184 -#: js/EnsembleBlocks.js:247 -#: js/EnsembleBlocks.js:413 -#: js/EnsembleBlocks.js:468 -#: js/EnsembleBlocks.js:706 -#: js/EnsembleBlocks.js:808 -#: js/EnsembleBlocks.js:870 -#: js/EnsembleBlocks.js:1190 -#: js/EnsembleBlocks.js:1253 +#: js/blocks/EnsembleBlocks.js:184 +#: js/blocks/EnsembleBlocks.js:247 +#: js/blocks/EnsembleBlocks.js:413 +#: js/blocks/EnsembleBlocks.js:468 +#: js/blocks/EnsembleBlocks.js:706 +#: js/blocks/EnsembleBlocks.js:808 +#: js/blocks/EnsembleBlocks.js:870 +#: js/blocks/EnsembleBlocks.js:1190 +#: js/blocks/EnsembleBlocks.js:1253 msgid "Cannot find mouse" msgstr "" -#: js/EnsembleBlocks.js:186 -#: js/EnsembleBlocks.js:249 -#: js/EnsembleBlocks.js:415 -#: js/EnsembleBlocks.js:470 -#: js/EnsembleBlocks.js:708 -#: js/EnsembleBlocks.js:810 -#: js/EnsembleBlocks.js:872 -#: js/EnsembleBlocks.js:1192 -#: js/EnsembleBlocks.js:1255 +#: js/blocks/EnsembleBlocks.js:186 +#: js/blocks/EnsembleBlocks.js:249 +#: js/blocks/EnsembleBlocks.js:415 +#: js/blocks/EnsembleBlocks.js:470 +#: js/blocks/EnsembleBlocks.js:708 +#: js/blocks/EnsembleBlocks.js:810 +#: js/blocks/EnsembleBlocks.js:872 +#: js/blocks/EnsembleBlocks.js:1192 +#: js/blocks/EnsembleBlocks.js:1255 msgid "Cannot find turtle" msgstr "" -#: js/EnsembleBlocks.js:206 +#: js/blocks/EnsembleBlocks.js:206 msgid "start mouse" msgstr "" -#: js/EnsembleBlocks.js:209 +#: js/blocks/EnsembleBlocks.js:209 msgid "The Start mouse block starts the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:220 +#: js/blocks/EnsembleBlocks.js:220 msgid "start turtle" msgstr "" -#: js/EnsembleBlocks.js:223 +#: js/blocks/EnsembleBlocks.js:223 msgid "The Start turtle block starts the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:256 +#: js/blocks/EnsembleBlocks.js:256 msgid "Mouse is already running." msgstr "" -#: js/EnsembleBlocks.js:258 +#: js/blocks/EnsembleBlocks.js:258 msgid "Turtle is already running." msgstr "" -#: js/EnsembleBlocks.js:282 +#: js/blocks/EnsembleBlocks.js:282 msgid "Cannot find start block" msgstr "" -#: js/EnsembleBlocks.js:292 +#: js/blocks/EnsembleBlocks.js:292 #.TRANS: pen color for this mouse msgid "mouse color" msgstr "" -#: js/EnsembleBlocks.js:294 +#: js/blocks/EnsembleBlocks.js:294 msgid "The Mouse color block returns the pen color of the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:306 +#: js/blocks/EnsembleBlocks.js:306 #.TRANS: pen color for this turtle msgid "turtle color" msgstr "" -#: js/EnsembleBlocks.js:308 +#: js/blocks/EnsembleBlocks.js:308 msgid "The Turtle color block returns the pen color of the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:338 +#: js/blocks/EnsembleBlocks.js:338 #.TRANS: heading (compass direction) for this mouse msgid "mouse heading" msgstr "" -#: js/EnsembleBlocks.js:340 +#: js/blocks/EnsembleBlocks.js:340 msgid "The Mouse heading block returns the heading of the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:352 +#: js/blocks/EnsembleBlocks.js:352 #.TRANS: heading (compass direction) for this turtle msgid "turtle heading" msgstr "" -#: js/EnsembleBlocks.js:354 +#: js/blocks/EnsembleBlocks.js:354 msgid "The Turtle heading block returns the heading of the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:384 -#: js/EnsembleBlocks.js:439 +#: js/blocks/EnsembleBlocks.js:384 +#: js/blocks/EnsembleBlocks.js:439 #.TRANS: set xy position for this mouse msgid "set mouse" msgstr "" -#: js/EnsembleBlocks.js:391 -#: js/EnsembleBlocks.js:402 -#: js/BoxesBlocks.js:595 -msgid "name1" -msgstr "" - -#: js/EnsembleBlocks.js:391 -#: js/EnsembleBlocks.js:402 -#: js/ProgramBlocks.js:881 -#: js/GraphicsBlocks.js:235 -#: js/GraphicsBlocks.js:313 -#: js/GraphicsBlocks.js:436 -#: js/GraphicsBlocks.js:487 -#: js/GraphicsBlocks.js:534 -#: js/GraphicsBlocks.js:750 +#: js/blocks/EnsembleBlocks.js:391 +#: js/blocks/EnsembleBlocks.js:402 +#: js/blocks/GraphicsBlocks.js:235 +#: js/blocks/GraphicsBlocks.js:313 +#: js/blocks/GraphicsBlocks.js:436 +#: js/blocks/GraphicsBlocks.js:487 +#: js/blocks/GraphicsBlocks.js:534 +#: js/blocks/GraphicsBlocks.js:750 +#: js/blocks/ProgramBlocks.js:881 msgid "x" msgstr "x" -#: js/EnsembleBlocks.js:391 -#: js/EnsembleBlocks.js:402 -#: js/ProgramBlocks.js:881 -#: js/GraphicsBlocks.js:149 -#: js/GraphicsBlocks.js:313 -#: js/GraphicsBlocks.js:436 -#: js/GraphicsBlocks.js:487 -#: js/GraphicsBlocks.js:534 -#: js/GraphicsBlocks.js:750 +#: js/blocks/EnsembleBlocks.js:391 +#: js/blocks/EnsembleBlocks.js:402 +#: js/blocks/GraphicsBlocks.js:149 +#: js/blocks/GraphicsBlocks.js:313 +#: js/blocks/GraphicsBlocks.js:436 +#: js/blocks/GraphicsBlocks.js:487 +#: js/blocks/GraphicsBlocks.js:534 +#: js/blocks/GraphicsBlocks.js:750 +#: js/blocks/ProgramBlocks.js:881 msgid "y" msgstr "y" -#: js/EnsembleBlocks.js:395 -#: js/EnsembleBlocks.js:452 +#: js/blocks/EnsembleBlocks.js:395 +#: js/blocks/EnsembleBlocks.js:452 #.TRANS: set xy position for this turtle msgid "set turtle" msgstr "" -#: js/EnsembleBlocks.js:433 +#: js/blocks/EnsembleBlocks.js:433 msgid "The Set mouse block sends a stack of blocks to be run by the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:446 +#: js/blocks/EnsembleBlocks.js:446 msgid "The Set turtle block sends a stack of blocks to be run by the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:480 +#: js/blocks/EnsembleBlocks.js:480 #.TRANS: y position for this mouse msgid "mouse y" msgstr "" -#: js/EnsembleBlocks.js:482 +#: js/blocks/EnsembleBlocks.js:482 msgid "The Y mouse block returns the Y position of the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:494 +#: js/blocks/EnsembleBlocks.js:494 #.TRANS: y position for this turtle msgid "turtle y" msgstr "" -#: js/EnsembleBlocks.js:496 +#: js/blocks/EnsembleBlocks.js:496 msgid "The Y turtle block returns the Y position of the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:526 +#: js/blocks/EnsembleBlocks.js:526 #.TRANS: x position for this mouse msgid "mouse x" msgstr "" -#: js/EnsembleBlocks.js:528 +#: js/blocks/EnsembleBlocks.js:528 msgid "The X mouse block returns the X position of the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:540 +#: js/blocks/EnsembleBlocks.js:540 #.TRANS: x position for this turtle msgid "turtle x" msgstr "" -#: js/EnsembleBlocks.js:542 +#: js/blocks/EnsembleBlocks.js:542 msgid "The X turtle block returns the X position of the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:573 +#: js/blocks/EnsembleBlocks.js:573 #.TRANS: notes played by this mouse msgid "mouse notes played" msgstr "" -#: js/EnsembleBlocks.js:575 +#: js/blocks/EnsembleBlocks.js:575 msgid "The Mouse elapse notes block returns the number of notes played by the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:587 +#: js/blocks/EnsembleBlocks.js:587 #.TRANS: notes played by this turtle msgid "turtle notes played" msgstr "" -#: js/EnsembleBlocks.js:589 +#: js/blocks/EnsembleBlocks.js:589 msgid "The Turtle elapse notes block returns the number of notes played by the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:627 +#: js/blocks/EnsembleBlocks.js:627 #.TRANS: convert current note for this turtle to piano key (1-88) msgid "mouse pitch number" msgstr "" -#: js/EnsembleBlocks.js:629 +#: js/blocks/EnsembleBlocks.js:629 msgid "The Mouse pitch block returns the current pitch number being played by the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:641 +#: js/blocks/EnsembleBlocks.js:641 #.TRANS: convert current note for this turtle to piano key (1-88) msgid "turtle pitch number" msgstr "" -#: js/EnsembleBlocks.js:643 -msgid "The Turrle pitch block returns the current pitch number being played by the specified turtle." +#: js/blocks/EnsembleBlocks.js:643 +msgid "The Turtle pitch block returns the current pitch number being played by the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:747 -#: js/EnsembleBlocks.js:819 +#: js/blocks/EnsembleBlocks.js:747 +#: js/blocks/EnsembleBlocks.js:819 #.TRANS: note value is the duration of the note played by this mouse msgid "mouse note value" msgstr "" -#: js/EnsembleBlocks.js:757 +#: js/blocks/EnsembleBlocks.js:757 #.TRANS: note value is the duration of the note played by this turtle msgid "turtle note value" msgstr "" -#: js/EnsembleBlocks.js:830 +#: js/blocks/EnsembleBlocks.js:830 #.TRANS: sync is short for synchronization msgid "mouse sync" msgstr "" -#: js/EnsembleBlocks.js:832 +#: js/blocks/EnsembleBlocks.js:832 msgid "The Mouse sync block aligns the beat count between mice." msgstr "" -#: js/EnsembleBlocks.js:844 +#: js/blocks/EnsembleBlocks.js:844 #.TRANS: sync is short for synchronization msgid "turtle sync" msgstr "" -#: js/EnsembleBlocks.js:846 +#: js/blocks/EnsembleBlocks.js:846 msgid "The Turtle sync block aligns the beat count between turtles." msgstr "" -#: js/EnsembleBlocks.js:887 +#: js/blocks/EnsembleBlocks.js:887 msgid "The Found mouse block will return true if the specified mouse can be found." msgstr "" -#: js/EnsembleBlocks.js:893 +#: js/blocks/EnsembleBlocks.js:893 msgid "found mouse" msgstr "" -#: js/EnsembleBlocks.js:903 +#: js/blocks/EnsembleBlocks.js:903 msgid "The Found turtle block will return true if the specified turtle can be found." msgstr "" -#: js/EnsembleBlocks.js:909 -msgid "found turtle" -msgstr "" - -#: js/EnsembleBlocks.js:932 -msgid "new mouse" -msgstr "" - -#: js/EnsembleBlocks.js:934 -msgid "The New mouse block will create a new mouse." -msgstr "" - -#: js/EnsembleBlocks.js:945 -msgid "new turtle" -msgstr "" - -#: js/EnsembleBlocks.js:947 -msgid "The New turtle block will create a new turtle." -msgstr "" - -#: js/EnsembleBlocks.js:1011 -msgid "set mouse color" -msgstr "" - -#: js/EnsembleBlocks.js:1014 -msgid "The Set-mouse-color block is used to set the color of a mouse." -msgstr "" - -#: js/EnsembleBlocks.js:1020 -msgid "set turtle color" -msgstr "" - -#: js/EnsembleBlocks.js:1023 -msgid "The Set-turtle-color block is used to set the color of a turtle." -msgstr "" - -#: js/EnsembleBlocks.js:1083 -msgid "The Mouse-name block returns the name of a mouse." -msgstr "" - -#: js/EnsembleBlocks.js:1092 -msgid "The Turtle-name block returns the name of a turtle." -msgstr "" - -#: js/EnsembleBlocks.js:1115 -msgid "mouse count" -msgstr "" - -#: js/EnsembleBlocks.js:1118 -msgid "The Mouse-count block returns the number of mice." -msgstr "" - -#: js/EnsembleBlocks.js:1124 -msgid "turtle count" -msgstr "" - -#: js/EnsembleBlocks.js:1127 -msgid "The Turtle-count block returns the number of turtles." -msgstr "" - -#: js/EnsembleBlocks.js:1149 -msgid "nth mouse name" -msgstr "" - -#: js/EnsembleBlocks.js:1152 -msgid "The Nth-Mouse name block returns the name of the nth mouse." -msgstr "" - -#: js/EnsembleBlocks.js:1158 -msgid "nth turtle name" -msgstr "" - -#: js/EnsembleBlocks.js:1161 -msgid "The Nth-Turtle name block returns the name of the nth turtle." -msgstr "" - -#: js/EnsembleBlocks.js:1205 -#: js/EnsembleBlocks.js:1265 -msgid "set name" -msgstr "" - -#: js/EnsembleBlocks.js:1214 -#: js/EnsembleBlocks.js:1221 -msgid "source" -msgstr "" - -#: js/EnsembleBlocks.js:1214 -#: js/EnsembleBlocks.js:1221 -msgid "target" -msgstr "" - -#: js/EnsembleBlocks.js:1271 -msgid "The Set-name block is used to name a mouse." -msgstr "" - -#: js/EnsembleBlocks.js:1284 -msgid "The Set-name block is used to name a turtle." -msgstr "" - -#: js/BooleanBlocks.js:44 -msgid "The Not block is the logical not operator." -msgstr "" - -#: js/BooleanBlocks.js:62 -msgid "not" -msgstr "үгүйсгэ" - -#: js/BooleanBlocks.js:134 -msgid "The And block is the logical and operator." -msgstr "" - -#: js/BooleanBlocks.js:152 -msgid "and" -msgstr "ба" - -#: js/BooleanBlocks.js:218 -msgid "The Or block is the logical or operator." -msgstr "" - -#: js/BooleanBlocks.js:236 -msgid "or" -msgstr "эсвэл" - -#: js/BooleanBlocks.js:302 -msgid "The XOR block is the logical XOR operator." +#: js/blocks/EnsembleBlocks.js:909 +msgid "found turtle" msgstr "" -#: js/BooleanBlocks.js:320 -msgid "xor" +#: js/blocks/EnsembleBlocks.js:932 +msgid "new mouse" msgstr "" -#: js/BooleanBlocks.js:808 -msgid "The Equal block returns True if the two numbers are equal." +#: js/blocks/EnsembleBlocks.js:934 +msgid "The New mouse block will create a new mouse." msgstr "" -#: js/BooleanBlocks.js:909 -msgid "The Not-equal-to block returns True if the two numbers are not equal to each other." +#: js/blocks/EnsembleBlocks.js:945 +msgid "new turtle" msgstr "" -#: js/BooleanBlocks.js:1008 -msgid "The Boolean block is used to specify true or false." +#: js/blocks/EnsembleBlocks.js:947 +msgid "The New turtle block will create a new turtle." msgstr "" -#: js/MediaBlocks.js:35 -#.TRANS: right side of the screen -msgid "right (screen)" +#: js/blocks/EnsembleBlocks.js:1011 +msgid "set mouse color" msgstr "" -#: js/MediaBlocks.js:45 -#: js/MediaBlocks.js:56 -msgid "The Right block returns the position of the right of the canvas." +#: js/blocks/EnsembleBlocks.js:1014 +msgid "The Set-mouse-color block is used to set the color of a mouse." msgstr "" -#: js/MediaBlocks.js:97 -#.TRANS: left side of the screen -msgid "left (screen)" +#: js/blocks/EnsembleBlocks.js:1020 +msgid "set turtle color" msgstr "" -#: js/MediaBlocks.js:107 -#: js/MediaBlocks.js:118 -msgid "The Left block returns the position of the left of the canvas." +#: js/blocks/EnsembleBlocks.js:1023 +msgid "The Set-turtle-color block is used to set the color of a turtle." msgstr "" -#: js/MediaBlocks.js:158 -msgid "top (screen)" +#: js/blocks/EnsembleBlocks.js:1083 +msgid "The Mouse-name block returns the name of a mouse." msgstr "" -#: js/MediaBlocks.js:168 -#: js/MediaBlocks.js:179 -msgid "The Top block returns the position of the top of the canvas." +#: js/blocks/EnsembleBlocks.js:1092 +msgid "The Turtle-name block returns the name of a turtle." msgstr "" -#: js/MediaBlocks.js:219 -msgid "bottom (screen)" +#: js/blocks/EnsembleBlocks.js:1115 +msgid "mouse count" msgstr "" -#: js/MediaBlocks.js:229 -#: js/MediaBlocks.js:240 -msgid "The Bottom block returns the position of the bottom of the canvas." +#: js/blocks/EnsembleBlocks.js:1118 +msgid "The Mouse-count block returns the number of mice." msgstr "" -#: js/MediaBlocks.js:282 -msgid "width" +#: js/blocks/EnsembleBlocks.js:1124 +msgid "turtle count" msgstr "" -#: js/MediaBlocks.js:291 -msgid "The Width block returns the width of the canvas." +#: js/blocks/EnsembleBlocks.js:1127 +msgid "The Turtle-count block returns the number of turtles." msgstr "" -#: js/MediaBlocks.js:325 -msgid "height" +#: js/blocks/EnsembleBlocks.js:1149 +msgid "nth mouse name" msgstr "" -#: js/MediaBlocks.js:334 -msgid "The Height block returns the height of the canvas." +#: js/blocks/EnsembleBlocks.js:1152 +msgid "The Nth-Mouse name block returns the name of the nth mouse." msgstr "" -#: js/MediaBlocks.js:369 -#.TRANS: stops playback of an audio recording -msgid "stop play" +#: js/blocks/EnsembleBlocks.js:1158 +msgid "nth turtle name" msgstr "" -#: js/MediaBlocks.js:404 -#.TRANS: Erases the images and text -msgid "erase media" +#: js/blocks/EnsembleBlocks.js:1161 +msgid "The Nth-Turtle name block returns the name of the nth turtle." msgstr "" -#: js/MediaBlocks.js:409 -msgid "The Erase Media block erases text and images." +#: js/blocks/EnsembleBlocks.js:1205 +#: js/blocks/EnsembleBlocks.js:1265 +msgid "set name" msgstr "" -#: js/MediaBlocks.js:439 -#.TRANS: play an audio recording -msgid "play back" +#: js/blocks/EnsembleBlocks.js:1214 +#: js/blocks/EnsembleBlocks.js:1221 +msgid "source" msgstr "" -#: js/MediaBlocks.js:487 -msgid "speak" +#: js/blocks/EnsembleBlocks.js:1214 +#: js/blocks/EnsembleBlocks.js:1221 +msgid "target" msgstr "" -#: js/MediaBlocks.js:495 -msgid "The Speak block outputs to the text-to-speech synthesizer" +#: js/blocks/EnsembleBlocks.js:1271 +msgid "The Set-name block is used to name a mouse." msgstr "" -#: js/MediaBlocks.js:546 -msgid "camera" +#: js/blocks/EnsembleBlocks.js:1284 +msgid "The Set-name block is used to name a turtle." msgstr "" -#: js/MediaBlocks.js:551 -msgid "The Camera block connects a webcam to the Show block." +#: js/blocks/ExtrasBlocks.js:33 +msgid "fraction" msgstr "" -#: js/MediaBlocks.js:574 -msgid "video" +#: js/blocks/ExtrasBlocks.js:36 +msgid "Convert a float to a fraction" msgstr "" -#: js/MediaBlocks.js:579 -msgid "The Video block selects video for use with the Show block." +#: js/blocks/ExtrasBlocks.js:93 +msgid "save as ABC" msgstr "" -#: js/MediaBlocks.js:607 -msgid "The Open file block opens a file for use with the Show block." +#: js/blocks/ExtrasBlocks.js:96 +#: js/blocks/ExtrasBlocks.js:132 +#: js/blocks/ExtrasBlocks.js:168 +msgid "title" msgstr "" -#: js/MediaBlocks.js:645 -msgid "stop media" +#: js/blocks/ExtrasBlocks.js:129 +msgid "save as Lilypond" msgstr "" -#: js/MediaBlocks.js:650 -msgid "The Stop media block stops audio or video playback." +#: js/blocks/ExtrasBlocks.js:165 +msgid "save as SVG" msgstr "" -#: js/MediaBlocks.js:679 -#: js/PitchBlocks.js:1539 -#: js/phrasemaker.js:822 -#: js/musickeyboard.js:1654 -#.TRANS: a measure of frequency: one cycle per second -msgid "hertz" +#: js/blocks/ExtrasBlocks.js:216 +msgid "no background" msgstr "" -#: js/MediaBlocks.js:692 -msgid "duration (ms)" +#: js/blocks/ExtrasBlocks.js:219 +msgid "The No background block eliminates the background from the saved SVG output." msgstr "" -#: js/MediaBlocks.js:728 -#.TRANS: translate a note into hertz, e.g., A4 -> 440HZ -msgid "note to frequency" +#: js/blocks/ExtrasBlocks.js:247 +msgid "show blocks" +msgstr "Блокыг харуул" + +#: js/blocks/ExtrasBlocks.js:249 +msgid "The Show blocks block shows the blocks." msgstr "" -#: js/MediaBlocks.js:736 -msgid "The To frequency block converts a pitch name and octave to Hertz." +#: js/blocks/ExtrasBlocks.js:274 +msgid "hide blocks" +msgstr "Блок нуу" + +#: js/blocks/ExtrasBlocks.js:276 +msgid "The Hide blocks block hides the blocks." msgstr "" -#: js/MediaBlocks.js:746 -#: js/PitchBlocks.js:656 -#: js/PitchBlocks.js:932 -#: js/PitchBlocks.js:1827 -#.TRANS: name2 is name as in name of pitch (JAPANESE ONLY) -msgid "name2" +#: js/blocks/ExtrasBlocks.js:305 +#: js/blocks/ExtrasBlocks.js:338 +msgid "The Space block is used to add space between blocks." msgstr "" -#: js/MediaBlocks.js:812 -msgid "The Avatar block is used to change the appearance of the mouse." +#: js/blocks/ExtrasBlocks.js:376 +msgid "wait" +msgstr "хүлээ" + +#: js/blocks/ExtrasBlocks.js:379 +msgid "The Wait block pauses the program for a specified number of seconds." msgstr "" -#: js/MediaBlocks.js:819 -msgid "The Avatar block is used to change the appearance of the turtle." +#: js/blocks/ExtrasBlocks.js:433 +#: plugins/facebook.rtp:30 +msgid "comment" +msgstr "тайлбар" + +#: js/blocks/ExtrasBlocks.js:469 +msgid "print" +msgstr "үзүүл" + +#: js/blocks/ExtrasBlocks.js:476 +msgid "The Print block displays text at the top of the screen." msgstr "" -#: js/MediaBlocks.js:831 -#: js/MediaBlocks.js:891 -#.TRANS: a media object -msgid "size" +#: js/blocks/ExtrasBlocks.js:582 +msgid "display grid" msgstr "" -#: js/MediaBlocks.js:831 -msgid "image" -msgstr "дүрслэл" +#: js/blocks/ExtrasBlocks.js:587 +msgid "The Display Grid Block changes the grid type" +msgstr "" -#: js/MediaBlocks.js:880 -msgid "The Show block is used to display text or images on the canvas." +#: js/blocks/ExtrasBlocks.js:689 +#: js/blocks/ExtrasBlocks.js:708 +#: js/blocks/ExtrasBlocks.js:731 +#: js/blocks/ExtrasBlocks.js:754 +#: js/blocks/ExtrasBlocks.js:772 +#: js/blocks/ExtrasBlocks.js:791 +#: js/blocks/ExtrasBlocks.js:810 +#: js/blocks/ExtrasBlocks.js:829 +msgid "unknown" msgstr "" -#: js/MediaBlocks.js:888 -#.TRANS: show1 is show as in display an image or text on the screen. -msgid "show1" +#: js/blocks/FlowBlocks.js:41 +msgid "The Backward block runs code in reverse order (Musical retrograde)." msgstr "" -#: js/MediaBlocks.js:891 -msgid "obj" +#: js/blocks/FlowBlocks.js:48 +msgid "backward" msgstr "" -#: js/MediaBlocks.js:938 -msgid "The Media block is used to import an image." +#: js/blocks/FlowBlocks.js:124 +msgid "The Duplicate block will run each block multiple times." msgstr "" -#: js/MediaBlocks.js:973 -msgid "The Text block holds a text string." +#: js/blocks/FlowBlocks.js:136 +msgid "duplicate" msgstr "" -#: js/ProgramBlocks.js:33 -msgid "The Load-heap-from-app block loads the heap from a web page." +#: js/blocks/FlowBlocks.js:334 +msgid "The Default block is used inside of a Switch to define the default action." msgstr "" -#: js/ProgramBlocks.js:44 -#.TRANS: load the heap contents from a URL -msgid "load heap from App" +#: js/blocks/FlowBlocks.js:342 +msgid "default" msgstr "" -#: js/ProgramBlocks.js:95 -msgid "Error parsing JSON data:" +#: js/blocks/FlowBlocks.js:361 +#: js/blocks/FlowBlocks.js:418 +msgid "The Case Block must be used inside of a Switch Block." msgstr "" -#: js/ProgramBlocks.js:100 -msgid "404: Page not found" +#: js/blocks/FlowBlocks.js:389 +msgid "The Case block is used inside of a Switch to define matches." msgstr "" -#: js/ProgramBlocks.js:133 -msgid "The Save-heap-to-app block saves the heap to a web page." +#: js/blocks/FlowBlocks.js:397 +msgid "case" msgstr "" -#: js/ProgramBlocks.js:144 -#.TRANS: save the heap contents to a URL -msgid "save heap to App" +#: js/blocks/FlowBlocks.js:446 +msgid "The Switch block will run the code in the matching Case." msgstr "" -#: js/ProgramBlocks.js:189 -msgid "Cannot find a valid heap for" +#: js/blocks/FlowBlocks.js:454 +msgid "switch" msgstr "" -#: js/ProgramBlocks.js:206 -msgid "The Load-heap block loads the heap from a file." +#: js/blocks/FlowBlocks.js:595 +msgid "The Stop block will stop a loop" msgstr "" -#: js/ProgramBlocks.js:217 -#.TRANS: load the heap from a file -msgid "load heap" +#: js/blocks/FlowBlocks.js:597 +msgid "Forever, Repeat, While, or Until." msgstr "" -#: js/ProgramBlocks.js:270 -msgid "The file you selected does not contain a valid heap." +#: js/blocks/FlowBlocks.js:604 +#: js/widgets/timbre.js:417 +#: js/widgets/timbre.js:419 +#: js/widgets/musickeyboard.js:819 +#: js/widgets/musickeyboard.js:821 +#: js/widgets/phrasemaker.js:4202 +#: plugins/rodi.rtp:29 +#: plugins/rodi.rtp:73 +#: plugins/rodi.rtp:413 +msgid "stop" +msgstr "зогсоох" + +#: js/blocks/FlowBlocks.js:653 +msgid "The Waitfor block will wait until the condition is true." msgstr "" -#: js/ProgramBlocks.js:275 -msgid "The loadHeap block needs a loadFile block." +#: js/blocks/FlowBlocks.js:661 +msgid "wait for" msgstr "" -#: js/ProgramBlocks.js:291 -msgid "The Set-heap block loads the heap." +#: js/blocks/FlowBlocks.js:732 +msgid "The Until block will repeat until the condition is true." msgstr "" -#: js/ProgramBlocks.js:299 -#: js/HeapBlocks.js:539 -#.TRANS: load the heap from a JSON encoding -msgid "set heap" +#: js/blocks/FlowBlocks.js:740 +msgid "until" msgstr "" -#: js/ProgramBlocks.js:340 -msgid "The block you selected does not contain a valid heap." +#: js/blocks/FlowBlocks.js:742 +#: js/blocks/FlowBlocks.js:822 +msgid "do2" msgstr "" -#: js/ProgramBlocks.js:343 -msgid "The Set heap block needs a heap." +#: js/blocks/FlowBlocks.js:812 +msgid "The While block will repeat while the condition is true." msgstr "" -#: js/ProgramBlocks.js:360 -msgid "The Load-dictionary block loads a dictionary from a file." +#: js/blocks/FlowBlocks.js:820 +msgid "while" +msgstr "цагаан" + +#: js/blocks/FlowBlocks.js:903 +#: js/blocks/FlowBlocks.js:968 +#: js/blocks/FlowBlocks.js:979 +msgid "In this example if the mouse button is pressed a snare drum will play." msgstr "" -#: js/ProgramBlocks.js:372 -#.TRANS: load a dictionary from a file -msgid "load dictionary" +#: js/blocks/FlowBlocks.js:925 +#: js/blocks/FlowBlocks.js:988 +msgid "if" +msgstr "xэpэв" + +#: js/blocks/FlowBlocks.js:927 +#: js/blocks/FlowBlocks.js:990 +msgid "then" +msgstr "бол" + +#: js/blocks/FlowBlocks.js:927 +msgid "else" +msgstr "эсвэл" + +#: js/blocks/FlowBlocks.js:1025 +msgid "The Forever block will repeat the contained blocks forever." msgstr "" -#: js/ProgramBlocks.js:390 -#: js/ProgramBlocks.js:658 -#: js/ToneBlocks.js:1025 -msgid "file" +#: js/blocks/FlowBlocks.js:1037 +msgid "forever" +msgstr "үүрд" + +#: js/blocks/FlowBlocks.js:1073 +msgid "The Repeat block will repeat the contained blocks." msgstr "" -#: js/ProgramBlocks.js:396 -#: js/ProgramBlocks.js:501 -#: js/ProgramBlocks.js:664 -#: js/DictBlocks.js:80 -#: js/DictBlocks.js:145 -#: js/DictBlocks.js:216 -#: js/DictBlocks.js:290 -msgid "My Dictionary" +#: js/blocks/FlowBlocks.js:1075 +msgid "In this example the note will be played 4 times." msgstr "" -#: js/ProgramBlocks.js:444 -msgid "The file you selected does not contain a valid dictionary." +#: js/blocks/FlowBlocks.js:1083 +msgid "repeat" +msgstr "дaвтax" + +#: js/blocks/FlowBlocks.js:1123 +msgid "duplicate factor" msgstr "" -#: js/ProgramBlocks.js:449 -msgid "The load dictionary block needs a load file block." +#: js/blocks/HeapBlocks.js:49 +msgid "The Heap block returns the heap." msgstr "" -#: js/ProgramBlocks.js:466 -msgid "The Set-dictionary block loads a dictionary." +#: js/blocks/HeapBlocks.js:133 +msgid "show heap" msgstr "" -#: js/ProgramBlocks.js:477 -#.TRANS: load a dictionary from a JSON -msgid "set dictionary" +#: js/blocks/HeapBlocks.js:181 +msgid "The Heap-length block returns the length of the heap." msgstr "" -#: js/ProgramBlocks.js:546 -msgid "The block you selected does not contain a valid dictionary." +#: js/blocks/HeapBlocks.js:195 +msgid "heap length" msgstr "" -#: js/ProgramBlocks.js:550 -msgid "The set dictionary block needs a dictionary." +#: js/blocks/HeapBlocks.js:254 +msgid "The Heap-empty? block returns true if the heap is empty." msgstr "" -#: js/ProgramBlocks.js:567 -msgid "The Save-heap block saves the heap to a file." +#: js/blocks/HeapBlocks.js:268 +#.TRANS: Is the heap empty? +msgid "heap empty?" msgstr "" -#: js/ProgramBlocks.js:578 -#.TRANS: save the heap to a file -msgid "save heap" +#: js/blocks/HeapBlocks.js:317 +msgid "The Empty-heap block empties the heap." msgstr "" -#: js/ProgramBlocks.js:629 -msgid "The Save-dictionary block saves a dictionary to a file." +#: js/blocks/HeapBlocks.js:327 +#: js/blocks/HeapBlocks.js:647 +#.TRANS: empty the heap +msgid "empty heap" msgstr "" -#: js/ProgramBlocks.js:640 -#.TRANS: save a dictionary to a file -msgid "save dictionary" +#: js/blocks/HeapBlocks.js:371 +msgid "The Reverse-heap block reverses the order of the heap." msgstr "" -#: js/ProgramBlocks.js:720 -msgid "The Open palette block opens a palette." +#: js/blocks/HeapBlocks.js:384 +#.TRANS: reverse the order of the heap +msgid "reverse heap" msgstr "" -#: js/ProgramBlocks.js:727 -msgid "open palette" +#: js/blocks/HeapBlocks.js:428 +msgid "The Index-heap block returns a value in the heap at a specified location." msgstr "" -#: js/ProgramBlocks.js:785 -msgid "The Delete block block removes a block." +#: js/blocks/HeapBlocks.js:443 +#.TRANS: retrieve a value from the heap at index position in the heap +msgid "index heap" msgstr "" -#: js/ProgramBlocks.js:797 -#.TRANS: Move this block to the trash. -msgid "delete block" +#: js/blocks/HeapBlocks.js:523 +msgid "The Set-heap entry block sets a value in he heap at the specified location." msgstr "" -#: js/ProgramBlocks.js:861 -msgid "The Move block block moves a block." +#: js/blocks/HeapBlocks.js:539 +#: js/blocks/ProgramBlocks.js:299 +#.TRANS: load the heap from a JSON encoding +msgid "set heap" msgstr "" -#: js/ProgramBlocks.js:869 -#.TRANS: Move the position of a block on the screen. -msgid "move block" +#: js/blocks/HeapBlocks.js:619 +msgid "The Pop block removes the value at the top of the heap." msgstr "" -#: js/ProgramBlocks.js:881 -#: js/ProgramBlocks.js:1048 -msgid "block number" +#: js/blocks/HeapBlocks.js:633 +#.TRANS: pop a value off the top of the heap +msgid "pop" +msgstr "ав" + +#: js/blocks/HeapBlocks.js:680 +msgid "The Push block adds a value to the top of the heap." msgstr "" -#: js/ProgramBlocks.js:935 -#.TRANS: Run program beginning at this block. -msgid "run block" +#: js/blocks/HeapBlocks.js:696 +#.TRANS: push a value onto the top of the heap +msgid "push" +msgstr "өг" + +#: js/blocks/IntervalsBlocks.js:45 +msgid "set temperament" msgstr "" -#: js/ProgramBlocks.js:1025 -msgid "The Dock block block connections two blocks." +#: js/blocks/IntervalsBlocks.js:63 +#: js/blocks/MediaBlocks.js:746 +#: js/blocks/PitchBlocks.js:657 +#: js/blocks/PitchBlocks.js:935 +#: js/blocks/PitchBlocks.js:974 +#: js/blocks/PitchBlocks.js:1007 +#: js/blocks/PitchBlocks.js:1194 +#: js/blocks/PitchBlocks.js:1717 +#: js/blocks/PitchBlocks.js:1758 +#: js/blocks/PitchBlocks.js:1866 +#: js/blocks/ToneBlocks.js:1025 +#: js/turtleactions/IntervalsActions.js:114 +#.TRANS: adjusts the shift up or down by one octave (twelve half-steps in the interval between two notes, one having twice or half the frequency in Hz of the other.) +msgid "octave" msgstr "" -#: js/ProgramBlocks.js:1036 -#.TRANS: We can connect a block to another block. -msgid "connect blocks" +#: js/blocks/IntervalsBlocks.js:99 +msgid "The Temperament name block is used to select a tuning method." msgstr "" -#: js/ProgramBlocks.js:1048 -msgid "target block" +#: js/blocks/IntervalsBlocks.js:161 +msgid "doubly" msgstr "" -#: js/ProgramBlocks.js:1048 -msgid "connection number" +#: js/blocks/IntervalsBlocks.js:166 +msgid "The Doubly block will double the size of an interval." msgstr "" -#: js/ProgramBlocks.js:1140 -msgid "The Make block block creates a new block." +#: js/blocks/IntervalsBlocks.js:262 +msgid "interval number" msgstr "" -#: js/ProgramBlocks.js:1152 -#.TRANS: Create a new block -msgid "make block" +#: js/blocks/IntervalsBlocks.js:317 +msgid "current interval" msgstr "" -#: js/ProgramBlocks.js:1186 -#: js/ProgramBlocks.js:1227 -#: js/RhythmBlocks.js:1128 -#: js/PitchBlocks.js:972 -#: js/PitchBlocks.js:1005 -#: js/temperament.js:340 -#: js/temperament.js:362 -#: js/temperament.js:372 -#: js/temperament.js:484 -#: js/status.js:190 -#: plugins/rodi.rtp:192 -#.TRANS: a musical note consisting of pitch and duration -msgid "note" +#: js/blocks/IntervalsBlocks.js:387 +#.TRANS: measure the distance between two pitches in semi-tones +msgid "semi-tone interval measure" msgstr "" -#: js/ProgramBlocks.js:1285 -msgid "Cannot find block" +#: js/blocks/IntervalsBlocks.js:454 +#: js/blocks/IntervalsBlocks.js:570 +msgid "You must use two pitch blocks when measuring an interval." msgstr "" -#: js/ProgramBlocks.js:1304 -#: js/ProgramBlocks.js:1313 -msgid "Warning: block argument type mismatch" +#: js/blocks/IntervalsBlocks.js:496 +msgid "The Scalar interval block measures the distance between two notes in the current key and mode." msgstr "" -#: js/ProgramBlocks.js:1347 -msgid "The Open project block is used to open a project from a web page." +#: js/blocks/IntervalsBlocks.js:502 +#.TRANS: measure the distance between two pitches in steps of musical scale +msgid "scalar interval measure" msgstr "" -#: js/ProgramBlocks.js:1357 -msgid "open project" +#: js/blocks/IntervalsBlocks.js:678 +msgid "In the figure, we add sol# to sol." msgstr "" -#: js/ProgramBlocks.js:1410 -msgid "Please enter a valid URL." +#: js/blocks/IntervalsBlocks.js:684 +#: js/blocks/OrnamentBlocks.js:220 +#.TRANS: calculate a relative step between notes based on semi-tones +msgid "semi-tone interval" msgstr "" -#: js/DrumBlocks.js:59 -msgid "The Noise name block is used to select a noise synthesizer." +#: js/blocks/IntervalsBlocks.js:733 +msgid "The output of the example is: do, mi, sol, sol, ti, mi" msgstr "" -#: js/DrumBlocks.js:102 -msgid "The Drum name block is used to select a drum." +#: js/blocks/IntervalsBlocks.js:740 +#: js/blocks/WidgetBlocks.js:768 +msgid "arpeggio" msgstr "" -#: js/DrumBlocks.js:146 -msgid "The Effects name block is used to select a sound effect." +#: js/blocks/IntervalsBlocks.js:931 +msgid "The Chord block calculates common chords." msgstr "" -#: js/DrumBlocks.js:163 -msgid "noise" +#: js/blocks/IntervalsBlocks.js:933 +msgid "In the figure, we generate a C-major chord." msgstr "" -#: js/DrumBlocks.js:177 -msgid "The Play noise block will generate white, pink, or brown noise." +#: js/blocks/IntervalsBlocks.js:938 +msgid "chord" msgstr "" -#: js/DrumBlocks.js:191 -#: js/musicutils.js:752 -#: js/synthutils.js:47 -#.TRANS: white noise synthesizer -msgid "white noise" +#: js/blocks/IntervalsBlocks.js:990 +msgid "The Ratio Interval block calculates an interval based on a ratio." msgstr "" -#: js/DrumBlocks.js:326 -msgid "Replace every instance of a pitch with a drum sound." +#: js/blocks/IntervalsBlocks.js:995 +msgid "ratio interval" msgstr "" -#: js/DrumBlocks.js:337 -#.TRANS: map a pitch to a drum sound -msgid "map pitch to drum" +#: js/blocks/IntervalsBlocks.js:1064 +msgid "In the figure, we add la to sol." msgstr "" -#: js/DrumBlocks.js:404 -msgid "In the example above, a kick drum sound will be played instead of sol." +#: js/blocks/IntervalsBlocks.js:1120 +#.TRANS: define a custom mode +msgid "define mode" msgstr "" -#: js/DrumBlocks.js:416 -#.TRANS: set the current drum sound for playback -msgid "set drum" +#: js/blocks/IntervalsBlocks.js:1173 +msgid "movable Do" msgstr "" -#: js/DrumBlocks.js:460 -msgid "sound effect" +#: js/blocks/IntervalsBlocks.js:1224 +#.TRANS: mode length is the number of notes in the mode, e.g., 7 for major and minor scales; 12 for chromatic scales +msgid "mode length" msgstr "" -#: js/DrumBlocks.js:498 -msgid "You can use multiple Drum blocks within a Note block." +#: js/blocks/IntervalsBlocks.js:1233 +msgid "The Mode length block is the number of notes in the current scale." msgstr "" -#: js/RhythmBlocks.js:182 -#: js/RhythmBlocks.js:1086 -#: js/RhythmBlocks.js:1162 -msgid "Note value must be greater than 0." +#: js/blocks/IntervalsBlocks.js:1235 +msgid "Most Western scales have 7 notes." msgstr "" -#: js/RhythmBlocks.js:215 -#: js/RhythmBlocks.js:278 -#: js/RhythmBlocks.js:350 -#.TRANS: swing is a rhythmic variation that emphasises the offbeat -msgid "swing" +#: js/blocks/IntervalsBlocks.js:1284 +#.TRANS: the mode in music is 'major', 'minor', etc. +msgid "current mode" msgstr "" -#: js/RhythmBlocks.js:355 -#.TRANS: the amount to shift to the offbeat note -msgid "swing value" +#: js/blocks/IntervalsBlocks.js:1337 +#.TRANS: the key is a group of pitches with which a music composition is created +msgid "current key" msgstr "" -#: js/RhythmBlocks.js:419 -msgid "The Skip notes block will cause notes to be skipped." +#: js/blocks/IntervalsBlocks.js:1389 +#: js/blocks/IntervalsBlocks.js:1434 +#.TRANS: set the key and mode, e.g. C Major +msgid "set key" msgstr "" -#: js/RhythmBlocks.js:427 -#.TRANS: substitute rests on notes being skipped -msgid "skip notes" +#: js/blocks/IntervalsBlocks.js:1443 +#: js/blocks/IntervalsBlocks.js:1449 +msgid "The Set key block is used to set the key and mode," msgstr "" -#: js/RhythmBlocks.js:489 -#.TRANS: speed up note duration by some factor, e.g. convert 1/4 to 1/8 notes by using a factor of 2 -msgid "multiply note value" +#: js/blocks/IntervalsBlocks.js:1449 +msgid "eg C Major" msgstr "" -#: js/RhythmBlocks.js:542 -msgid "The Tie block works on pairs of notes, combining them into one note." +#: js/blocks/MediaBlocks.js:35 +#.TRANS: right side of the screen +msgid "right (screen)" msgstr "" -#: js/RhythmBlocks.js:550 -#.TRANS: tie notes together into one longer note -msgid "tie" +#: js/blocks/MediaBlocks.js:45 +#: js/blocks/MediaBlocks.js:56 +msgid "The Right block returns the position of the right of the canvas." msgstr "" -#: js/RhythmBlocks.js:591 -#: js/RhythmBlocks.js:671 -#.TRANS: a dotted note is played for 1.5x its value, e.g., 1/8. --> 3/16 -msgid "dot" +#: js/blocks/MediaBlocks.js:97 +#.TRANS: left side of the screen +msgid "left (screen)" msgstr "" -#: js/RhythmBlocks.js:619 -#: js/RhythmActions.js:221 -msgid "An argument of -1 results in a note value of 0." +#: js/blocks/MediaBlocks.js:107 +#: js/blocks/MediaBlocks.js:118 +msgid "The Left block returns the position of the left of the canvas." msgstr "" -#: js/RhythmBlocks.js:661 -msgid "The Dot block extends the duration of a note by 50%." +#: js/blocks/MediaBlocks.js:158 +msgid "top (screen)" msgstr "" -#: js/RhythmBlocks.js:663 -msgid "Eg a dotted quarter note will play for 3/8 (1/4 + 1/8) of a beat." +#: js/blocks/MediaBlocks.js:168 +#: js/blocks/MediaBlocks.js:179 +msgid "The Top block returns the position of the top of the canvas." msgstr "" -#: js/RhythmBlocks.js:765 -#.TRANS: Japanese only: note value block for drum -msgid "note value drum" +#: js/blocks/MediaBlocks.js:219 +msgid "bottom (screen)" msgstr "" -#: js/RhythmBlocks.js:829 -msgid "392 hertz" +#: js/blocks/MediaBlocks.js:229 +#: js/blocks/MediaBlocks.js:240 +msgid "The Bottom block returns the position of the bottom of the canvas." msgstr "" -#: js/RhythmBlocks.js:1119 -msgid "The Note block is a container for one or more Pitch blocks." +#: js/blocks/MediaBlocks.js:282 +msgid "width" msgstr "" -#: js/RhythmBlocks.js:1121 -msgid "The Note block specifies the duration (note value) of its contents." +#: js/blocks/MediaBlocks.js:291 +msgid "The Width block returns the width of the canvas." msgstr "" -#: js/RhythmBlocks.js:1130 -msgid "value2" +#: js/blocks/MediaBlocks.js:325 +msgid "height" msgstr "" -#: js/RhythmBlocks.js:1200 -msgid "define frequency" +#: js/blocks/MediaBlocks.js:334 +msgid "The Height block returns the height of the canvas." msgstr "" -#: js/RhythmBlocks.js:1218 -#: js/temperament.js:650 -#: js/temperament.js:1421 -msgid "octave space" +#: js/blocks/MediaBlocks.js:369 +#.TRANS: stops playback of an audio recording +msgid "stop play" msgstr "" -#: js/NumberBlocks.js:28 -msgid "The Int block returns an integer." +#: js/blocks/MediaBlocks.js:404 +#.TRANS: Erases the images and text +msgid "erase media" msgstr "" -#: js/NumberBlocks.js:34 -msgid "int" +#: js/blocks/MediaBlocks.js:409 +msgid "The Erase Media block erases text and images." msgstr "" -#: js/NumberBlocks.js:73 -msgid "The Mod block returns the remainder from a division." +#: js/blocks/MediaBlocks.js:439 +#.TRANS: play an audio recording +msgid "play back" msgstr "" -#: js/NumberBlocks.js:79 -msgid "mod" -msgstr "үлдэгдэл" +#: js/blocks/MediaBlocks.js:487 +msgid "speak" +msgstr "" -#: js/NumberBlocks.js:123 -msgid "The Power block calculates a power function." +#: js/blocks/MediaBlocks.js:495 +msgid "The Speak block outputs to the text-to-speech synthesizer" msgstr "" -#: js/NumberBlocks.js:178 -msgid "The Sqrt block returns the square root." +#: js/blocks/MediaBlocks.js:546 +msgid "camera" msgstr "" -#: js/NumberBlocks.js:184 -msgid "sqrt" +#: js/blocks/MediaBlocks.js:551 +msgid "The Camera block connects a webcam to the Show block." msgstr "" -#: js/NumberBlocks.js:230 -msgid "The Abs block returns the absolute value." +#: js/blocks/MediaBlocks.js:574 +msgid "video" msgstr "" -#: js/NumberBlocks.js:236 -msgid "abs" +#: js/blocks/MediaBlocks.js:579 +msgid "The Video block selects video for use with the Show block." msgstr "" -#: js/NumberBlocks.js:277 -msgid "The Distance block returns the distance between two points. For example, between the mouse and the center of the screen." +#: js/blocks/MediaBlocks.js:607 +msgid "The Open file block opens a file for use with the Show block." msgstr "" -#: js/NumberBlocks.js:283 -#: plugins/rodi.rtp:310 -msgid "distance" +#: js/blocks/MediaBlocks.js:645 +msgid "stop media" msgstr "" -#: js/NumberBlocks.js:343 -msgid "The Divide block is used to divide." +#: js/blocks/MediaBlocks.js:650 +msgid "The Stop media block stops audio or video playback." msgstr "" -#: js/NumberBlocks.js:411 -msgid "The Multiply block is used to multiply." +#: js/blocks/MediaBlocks.js:679 +#: js/blocks/PitchBlocks.js:1577 +#: js/widgets/musickeyboard.js:1936 +#: js/widgets/phrasemaker.js:1037 +#.TRANS: a measure of frequency: one cycle per second +msgid "hertz" msgstr "" -#: js/NumberBlocks.js:554 -msgid "The Minus block is used to subtract." +#: js/blocks/MediaBlocks.js:692 +#: js/blocks/WidgetBlocks.js:182 +#: js/widgets/temperament.js:506 +#: js/widgets/temperament.js:546 +#: js/widgets/temperament.js:610 +#: js/widgets/temperament.js:618 +#: js/widgets/temperament.js:1505 +#: js/widgets/timbre.js:1842 +msgid "frequency" msgstr "" -#: js/NumberBlocks.js:647 -msgid "The Plus block is used to add." +#: js/blocks/MediaBlocks.js:692 +msgid "duration (ms)" msgstr "" -#: js/NumberBlocks.js:773 -msgid "The One-of block returns one of two choices." +#: js/blocks/MediaBlocks.js:728 +#.TRANS: translate a note into hertz, e.g., A4 -> 440HZ +msgid "note to frequency" msgstr "" -#: js/NumberBlocks.js:780 -#: js/PitchBlocks.js:616 -msgid "one of" +#: js/blocks/MediaBlocks.js:736 +msgid "The To frequency block converts a pitch name and octave to Hertz." msgstr "" -#: js/NumberBlocks.js:782 -msgid "this" +#: js/blocks/MediaBlocks.js:746 +#: js/blocks/PitchBlocks.js:656 +#: js/blocks/PitchBlocks.js:934 +#: js/blocks/PitchBlocks.js:1866 +#.TRANS: name2 is name as in name of pitch (JAPANESE ONLY) +msgid "name2" msgstr "" -#: js/NumberBlocks.js:782 -msgid "that" +#: js/blocks/MediaBlocks.js:812 +msgid "The Avatar block is used to change the appearance of the mouse." msgstr "" -#: js/NumberBlocks.js:837 -msgid "The Random block returns a random number." +#: js/blocks/MediaBlocks.js:819 +msgid "The Avatar block is used to change the appearance of the turtle." msgstr "" -#: js/NumberBlocks.js:844 -msgid "random" -msgstr "санаандгүй" +#: js/blocks/MediaBlocks.js:831 +#: js/blocks/MediaBlocks.js:891 +#.TRANS: a media object +msgid "size" +msgstr "" -#: js/NumberBlocks.js:846 -msgid "min" -msgstr "МИН" +#: js/blocks/MediaBlocks.js:831 +msgid "image" +msgstr "дүрслэл" -#: js/NumberBlocks.js:846 -msgid "max" -msgstr "МАКС" +#: js/blocks/MediaBlocks.js:880 +msgid "The Show block is used to display text or images on the canvas." +msgstr "" -#: js/NumberBlocks.js:910 -msgid "The Number block holds a number." +#: js/blocks/MediaBlocks.js:888 +#.TRANS: show1 is show as in display an image or text on the screen. +msgid "show1" msgstr "" -#: js/BoxesBlocks.js:53 -#: js/BoxesBlocks.js:59 -msgid "The Add-to block is used to add to the value stored in a box." +#: js/blocks/MediaBlocks.js:891 +msgid "obj" msgstr "" -#: js/BoxesBlocks.js:61 -msgid "It can also be used with other blocks such as Color and Pen size." +#: js/blocks/MediaBlocks.js:938 +msgid "The Media block is used to import an image." msgstr "" -#: js/BoxesBlocks.js:73 -msgid "add" +#: js/blocks/MediaBlocks.js:973 +msgid "The Text block holds a text string." msgstr "" -#: js/BoxesBlocks.js:75 -#: js/temperament.js:716 -msgid "to" +#: js/blocks/MeterBlocks.js:34 +#.TRANS: musical meter (time signature), e.g., 4:4 +msgid "current meter" msgstr "" -#: js/BoxesBlocks.js:75 -#: js/BoxesBlocks.js:595 -#: js/HeapBlocks.js:544 -msgid "value1" +#: js/blocks/MeterBlocks.js:85 +#.TRANS: number of beats per minute +msgid "beat factor" msgstr "" -#: js/BoxesBlocks.js:118 -msgid "Block does not support incrementing." +#: js/blocks/MeterBlocks.js:161 +msgid "The Beats per minute block returns the current beats per minute." msgstr "" -#: js/BoxesBlocks.js:152 -msgid "The Add-1-to block adds one to the value stored in a box." +#: js/blocks/MeterBlocks.js:169 +#: js/widgets/status.js:152 +#.TRANS: number of beats played per minute +msgid "beats per minute2" msgstr "" -#: js/BoxesBlocks.js:163 -msgid "add 1 to" +#: js/blocks/MeterBlocks.js:169 +#: js/blocks/MeterBlocks.js:1056 +#: js/blocks/MeterBlocks.js:1133 +#: js/blocks/MeterBlocks.js:1211 +#.TRANS: sets tempo by defining a beat and beats per minute +msgid "beats per minute" msgstr "" -#: js/BoxesBlocks.js:211 -msgid "The Subtract-1-from block subtracts one from the value stored in a box." +#: js/blocks/MeterBlocks.js:233 +#.TRANS: count of current musical measure in meter +msgid "measure count" msgstr "" -#: js/BoxesBlocks.js:222 -msgid "subtract 1 from" +#: js/blocks/MeterBlocks.js:241 +msgid "The Measure count block returns the current measure." msgstr "" -#: js/BoxesBlocks.js:270 -#: js/BoxesBlocks.js:387 -msgid "The Box block returns the value stored in a box." +#: js/blocks/MeterBlocks.js:290 +#.TRANS: count of current beat in the meter +msgid "beat count" msgstr "" -#: js/BoxesBlocks.js:500 -#: js/BoxesBlocks.js:576 -msgid "The Store in block will store a value in a box." +#: js/blocks/MeterBlocks.js:300 +#: js/blocks/MeterBlocks.js:311 +#: js/blocks/MeterBlocks.js:565 +#: js/blocks/MeterBlocks.js:576 +msgid "The Beat count block is the number of the current beat," msgstr "" -#: js/BoxesBlocks.js:652 -msgid "The Box2 block returns the value stored in Box2." +#: js/blocks/MeterBlocks.js:313 +#: js/blocks/MeterBlocks.js:578 +msgid "eg 1, 2, 3, or 4." msgstr "" -#: js/BoxesBlocks.js:703 -msgid "The Store in Box2 block is used to store a value in Box2." +#: js/blocks/MeterBlocks.js:368 +#.TRANS: count the number of notes +msgid "sum note values" msgstr "" -#: js/BoxesBlocks.js:715 -msgid "store in box2" +#: js/blocks/MeterBlocks.js:376 +#: js/blocks/MeterBlocks.js:440 +msgid "The Note counter block can be used to count the number of contained notes." msgstr "" -#: js/BoxesBlocks.js:761 -msgid "The Box1 block returns the value stored in Box1." +#: js/blocks/MeterBlocks.js:432 +#.TRANS: count the number of notes +msgid "note counter" msgstr "" -#: js/BoxesBlocks.js:812 -msgid "The Store in Box1 block is used to store a value in Box1." +#: js/blocks/MeterBlocks.js:496 +#.TRANS: number of whole notes that have been played +msgid "whole notes played" msgstr "" -#: js/BoxesBlocks.js:826 -msgid "store in box1" +#: js/blocks/MeterBlocks.js:505 +msgid "The Whole notes played block returns the total number of whole notes played." msgstr "" -#: js/HeapBlocks.js:49 -msgid "The Heap block returns the heap." +#: js/blocks/MeterBlocks.js:555 +#: js/turtleactions/DictActions.js:83 +#.TRANS: number of notes that have been played +msgid "notes played" msgstr "" -#: js/HeapBlocks.js:133 -msgid "show heap" +#: js/blocks/MeterBlocks.js:653 +msgid "The No clock block decouples the notes from the master clock." msgstr "" -#: js/HeapBlocks.js:181 -msgid "The Heap-length block returns the length of the heap." +#: js/blocks/MeterBlocks.js:661 +#.TRANS: don't lock notes to master clock +msgid "no clock" msgstr "" -#: js/HeapBlocks.js:195 -msgid "heap length" +#: js/blocks/MeterBlocks.js:700 +msgid "on weak beat do" msgstr "" -#: js/HeapBlocks.js:254 -msgid "The Heap-empty? block returns true if the heap is empty." +#: js/blocks/MeterBlocks.js:705 +msgid "The On-weak-beat block lets you specify actions to take on weak (off) beats." msgstr "" -#: js/HeapBlocks.js:268 -#.TRANS: Is the heap empty? -msgid "heap empty?" +#: js/blocks/MeterBlocks.js:750 +msgid "on strong beat" msgstr "" -#: js/HeapBlocks.js:317 -msgid "The Empty-heap block empties the heap." +#: js/blocks/MeterBlocks.js:758 +msgid "The On-strong-beat block lets you specify actions to take on specified beats." msgstr "" -#: js/HeapBlocks.js:327 -#: js/HeapBlocks.js:647 -#.TRANS: empty the heap -msgid "empty heap" +#: js/blocks/MeterBlocks.js:769 +msgid "beat" msgstr "" -#: js/HeapBlocks.js:371 -msgid "The Reverse-heap block reverses the order of the heap." +#: js/blocks/MeterBlocks.js:813 +msgid "on every beat do" msgstr "" -#: js/HeapBlocks.js:384 -#.TRANS: reverse the order of the heap -msgid "reverse heap" +#: js/blocks/MeterBlocks.js:821 +msgid "The On-every-beat block lets you specify actions to take on every beat." msgstr "" -#: js/HeapBlocks.js:428 -msgid "The Index-heap block returns a value in the heap at a specified location." +#: js/blocks/MeterBlocks.js:874 +msgid "on every note do" msgstr "" -#: js/HeapBlocks.js:443 -#.TRANS: retrieve a value from the heap at index position in the heap -msgid "index heap" +#: js/blocks/MeterBlocks.js:882 +msgid "The On-every-note block lets you specify actions to take on every note." msgstr "" -#: js/HeapBlocks.js:523 -msgid "The Set-heap entry block sets a value in he heap at the specified location." +#: js/blocks/MeterBlocks.js:928 +#: js/blocks/MeterBlocks.js:999 +#.TRANS: sets tempo by defining a beat and beats per minute +msgid "master beats per minute" msgstr "" -#: js/HeapBlocks.js:619 -msgid "The Pop block removes the value at the top of the heap." +#: js/blocks/MeterBlocks.js:952 +#: js/blocks/MeterBlocks.js:1078 +#: js/blocks/MeterBlocks.js:1135 +msgid "bpm" msgstr "" -#: js/HeapBlocks.js:633 -#.TRANS: pop a value off the top of the heap -msgid "pop" -msgstr "ав" +#: js/blocks/MeterBlocks.js:952 +#: js/blocks/MeterBlocks.js:1078 +#: js/blocks/MeterBlocks.js:1135 +msgid "beat value" +msgstr "" -#: js/HeapBlocks.js:680 -msgid "The Push block adds a value to the top of the heap." +#: js/blocks/MeterBlocks.js:1024 +#: js/blocks/MeterBlocks.js:1167 +#: js/blocks/MeterBlocks.js:1241 +msgid "Beats per minute must be > 30." msgstr "" -#: js/HeapBlocks.js:696 -#.TRANS: push a value onto the top of the heap -msgid "push" -msgstr "өг" +#: js/blocks/MeterBlocks.js:1027 +#: js/blocks/MeterBlocks.js:1170 +#: js/blocks/MeterBlocks.js:1244 +msgid "Maximum beats per minute is 1000." +msgstr "" -#: js/FlowBlocks.js:41 -msgid "The Backward block runs code in reverse order (Musical retrograde)." +#: js/blocks/MeterBlocks.js:1068 +msgid "The Beats per minute block sets the number of 1/4 notes per minute." msgstr "" -#: js/FlowBlocks.js:48 -msgid "backward" +#: js/blocks/MeterBlocks.js:1279 +#.TRANS: anacrusis +msgid "pickup" msgstr "" -#: js/FlowBlocks.js:124 -msgid "The Duplicate block will run each block multiple times." +#: js/blocks/MeterBlocks.js:1367 +msgid "number of beats" msgstr "" -#: js/FlowBlocks.js:136 -msgid "duplicate" +#: js/blocks/NumberBlocks.js:28 +msgid "The Int block returns an integer." msgstr "" -#: js/FlowBlocks.js:334 -msgid "The Default block is used inside of a Switch to define the default action." +#: js/blocks/NumberBlocks.js:34 +msgid "int" msgstr "" -#: js/FlowBlocks.js:342 -msgid "default" +#: js/blocks/NumberBlocks.js:73 +msgid "The Mod block returns the remainder from a division." msgstr "" -#: js/FlowBlocks.js:361 -#: js/FlowBlocks.js:418 -msgid "The Case Block must be used inside of a Switch Block." +#: js/blocks/NumberBlocks.js:79 +msgid "mod" +msgstr "үлдэгдэл" + +#: js/blocks/NumberBlocks.js:141 +msgid "The Power block calculates a power function." msgstr "" -#: js/FlowBlocks.js:389 -msgid "The Case block is used inside of a Switch to define matches." +#: js/blocks/NumberBlocks.js:196 +msgid "The Sqrt block returns the square root." msgstr "" -#: js/FlowBlocks.js:397 -msgid "case" +#: js/blocks/NumberBlocks.js:202 +msgid "sqrt" msgstr "" -#: js/FlowBlocks.js:446 -msgid "The Switch block will run the code in the matching Case." +#: js/blocks/NumberBlocks.js:248 +msgid "The Abs block returns the absolute value." msgstr "" -#: js/FlowBlocks.js:454 -msgid "switch" +#: js/blocks/NumberBlocks.js:254 +msgid "abs" msgstr "" -#: js/FlowBlocks.js:595 -msgid "The Stop block will stop a loop" +#: js/blocks/NumberBlocks.js:295 +msgid "The Distance block returns the distance between two points. For example, between the mouse and the center of the screen." msgstr "" -#: js/FlowBlocks.js:597 -msgid "Forever, Repeat, While, or Until." +#: js/blocks/NumberBlocks.js:301 +#: plugins/rodi.rtp:310 +msgid "distance" msgstr "" -#: js/FlowBlocks.js:604 -#: js/phrasemaker.js:3799 -#: js/musickeyboard.js:629 -#: js/musickeyboard.js:631 -#: js/timbre.js:417 -#: js/timbre.js:419 -#: plugins/rodi.rtp:29 -#: plugins/rodi.rtp:73 -#: plugins/rodi.rtp:413 -msgid "stop" -msgstr "зогсоох" +#: js/blocks/NumberBlocks.js:361 +msgid "The Divide block is used to divide." +msgstr "" -#: js/FlowBlocks.js:653 -msgid "The Waitfor block will wait until the condition is true." +#: js/blocks/NumberBlocks.js:441 +msgid "The Multiply block is used to multiply." msgstr "" -#: js/FlowBlocks.js:661 -msgid "wait for" +#: js/blocks/NumberBlocks.js:612 +msgid "The Minus block is used to subtract." msgstr "" -#: js/FlowBlocks.js:732 -msgid "The Until block will repeat until the condition is true." +#: js/blocks/NumberBlocks.js:723 +msgid "The Plus block is used to add." msgstr "" -#: js/FlowBlocks.js:740 -msgid "until" +#: js/blocks/NumberBlocks.js:849 +msgid "The One-of block returns one of two choices." msgstr "" -#: js/FlowBlocks.js:742 -#: js/FlowBlocks.js:822 -msgid "do2" +#: js/blocks/NumberBlocks.js:856 +#: js/blocks/PitchBlocks.js:616 +msgid "one of" msgstr "" -#: js/FlowBlocks.js:812 -msgid "The While block will repeat while the condition is true." +#: js/blocks/NumberBlocks.js:858 +msgid "this" msgstr "" -#: js/FlowBlocks.js:820 -msgid "while" -msgstr "цагаан" +#: js/blocks/NumberBlocks.js:858 +msgid "that" +msgstr "" -#: js/FlowBlocks.js:903 -#: js/FlowBlocks.js:968 -#: js/FlowBlocks.js:979 -msgid "In this example if the mouse button is pressed a snare drum will play." +#: js/blocks/NumberBlocks.js:913 +msgid "The Random block returns a random number." msgstr "" -#: js/FlowBlocks.js:925 -#: js/FlowBlocks.js:988 -msgid "if" -msgstr "xэpэв" +#: js/blocks/NumberBlocks.js:920 +msgid "random" +msgstr "санаандгүй" -#: js/FlowBlocks.js:927 -#: js/FlowBlocks.js:990 -msgid "then" -msgstr "бол" +#: js/blocks/NumberBlocks.js:922 +msgid "min" +msgstr "МИН" -#: js/FlowBlocks.js:927 -msgid "else" -msgstr "эсвэл" +#: js/blocks/NumberBlocks.js:922 +msgid "max" +msgstr "МАКС" -#: js/FlowBlocks.js:1025 -msgid "The Forever block will repeat the contained blocks forever." +#: js/blocks/NumberBlocks.js:986 +msgid "The Number block holds a number." msgstr "" -#: js/FlowBlocks.js:1037 -msgid "forever" -msgstr "үүрд" - -#: js/FlowBlocks.js:1073 -msgid "The Repeat block will repeat the contained blocks." +#: js/blocks/OrnamentBlocks.js:32 +msgid "staccato factor" msgstr "" -#: js/FlowBlocks.js:1075 -msgid "In this example the note will be played 4 times." +#: js/blocks/OrnamentBlocks.js:108 +msgid "slur factor" msgstr "" -#: js/FlowBlocks.js:1083 -msgid "repeat" -msgstr "дaвтax" - -#: js/FlowBlocks.js:1123 -msgid "duplicate factor" +#: js/blocks/OrnamentBlocks.js:217 +#: js/blocks/OrnamentBlocks.js:309 +#.TRANS: the neighbor refers to a neighboring note, e.g., D is a neighbor of C +msgid "neighbor" msgstr "" -#: js/PitchBlocks.js:39 -#: js/musicutils.js:722 -#: js/musicutils.js:1117 -#: js/synthutils.js:112 -#.TRANS: square wave -msgid "square" +#: js/blocks/OrnamentBlocks.js:293 +msgid "The Neighbor block rapidly switches between neighboring pitches." msgstr "" -#: js/PitchBlocks.js:62 -#: js/ToneBlocks.js:39 -#: js/musicutils.js:723 -#: js/musicutils.js:1118 -#: js/synthutils.js:116 -#.TRANS: triangle wave -msgid "triangle" +#: js/blocks/OrnamentBlocks.js:364 +msgid "glide" msgstr "" -#: js/PitchBlocks.js:85 -#: js/musicutils.js:721 -#: js/musicutils.js:1116 -#: js/synthutils.js:110 -#.TRANS: sine wave -msgid "sine" +#: js/blocks/OrnamentBlocks.js:479 +#: js/blocks/OrnamentBlocks.js:643 +msgid "slur" msgstr "" -#: js/PitchBlocks.js:108 -#: js/musicutils.js:724 -#: js/musicutils.js:1119 -#: js/synthutils.js:114 -#.TRANS: sawtooth wave -msgid "sawtooth" +#: js/blocks/OrnamentBlocks.js:558 +#: js/blocks/OrnamentBlocks.js:710 +#.TRANS: play each note sharply detached from the others +msgid "staccato" msgstr "" -#: js/PitchBlocks.js:141 -#.TRANS: musical transposition (adjustment of pitch up or down) -msgid "transposition" +#: js/blocks/RhythmBlocks.js:182 +#: js/blocks/RhythmBlocks.js:1086 +#: js/blocks/RhythmBlocks.js:1162 +msgid "Note value must be greater than 0." msgstr "" -#: js/PitchBlocks.js:168 -#.TRANS: step down one note in current musical scale -msgid "scalar step down" +#: js/blocks/RhythmBlocks.js:215 +#: js/blocks/RhythmBlocks.js:278 +#: js/blocks/RhythmBlocks.js:350 +#.TRANS: swing is a rhythmic variation that emphasises the offbeat +msgid "swing" msgstr "" -#: js/PitchBlocks.js:172 -msgid "The Scalar step down block returns the number of semi-tones down to the previous note in the current key and mode." +#: js/blocks/RhythmBlocks.js:355 +#.TRANS: the amount to shift to the offbeat note +msgid "swing value" msgstr "" -#: js/PitchBlocks.js:190 -#.TRANS: step up one note in current musical scale -msgid "scalar step up" +#: js/blocks/RhythmBlocks.js:419 +msgid "The Skip notes block will cause notes to be skipped." msgstr "" -#: js/PitchBlocks.js:194 -msgid "The Scalar step up block returns the number of semi-tones up to the next note in the current key and mode." +#: js/blocks/RhythmBlocks.js:427 +#.TRANS: substitute rests on notes being skipped +msgid "skip notes" msgstr "" -#: js/PitchBlocks.js:212 -#.TRANS: the change measured in half-steps between the current pitch and the previous pitch -msgid "change in pitch" +#: js/blocks/RhythmBlocks.js:489 +#.TRANS: speed up note duration by some factor, e.g. convert 1/4 to 1/8 notes by using a factor of 2 +msgid "multiply note value" msgstr "" -#: js/PitchBlocks.js:216 -msgid "The Change in pitch block is the difference (in half steps) between the current pitch being played and the previous pitch played." +#: js/blocks/RhythmBlocks.js:542 +msgid "The Tie block works on pairs of notes, combining them into one note." msgstr "" -#: js/PitchBlocks.js:243 -#.TRANS: the change measured in scale-steps between the current pitch and the previous pitch -msgid "scalar change in pitch" +#: js/blocks/RhythmBlocks.js:550 +#.TRANS: tie notes together into one longer note +msgid "tie" msgstr "" -#: js/PitchBlocks.js:250 -#: js/PitchBlocks.js:432 -#: js/PitchBlocks.js:1629 -#: js/DictActions.js:89 -#: js/temperament.js:477 -#: js/temperament.js:481 -#: js/temperament.js:714 -#.TRANS: convert current note to piano key (1-88) -#.TRANS: a mapping of pitch to the 88 piano keys -msgid "pitch number" +#: js/blocks/RhythmBlocks.js:591 +#: js/blocks/RhythmBlocks.js:671 +#.TRANS: a dotted note is played for 1.5x its value, e.g., 1/8. --> 3/16 +msgid "dot" msgstr "" -#: js/PitchBlocks.js:256 -msgid "The Pitch number block is the value of the pitch of the note currently being played." +#: js/blocks/RhythmBlocks.js:619 +#: js/turtleactions/RhythmActions.js:221 +msgid "An argument of -1 results in a note value of 0." msgstr "" -#: js/PitchBlocks.js:329 -#: js/PitchBlocks.js:433 -#.TRANS: the current pitch expressed in Hertz -msgid "pitch in hertz" +#: js/blocks/RhythmBlocks.js:661 +msgid "The Dot block extends the duration of a note by 50%." msgstr "" -#: js/PitchBlocks.js:334 -msgid "The Pitch in Hertz block is the value in Hertz of the pitch of the note currently being played." +#: js/blocks/RhythmBlocks.js:663 +msgid "Eg a dotted quarter note will play for 3/8 (1/4 + 1/8) of a beat." msgstr "" -#: js/PitchBlocks.js:367 -#: js/DictActions.js:87 -msgid "current pitch" +#: js/blocks/RhythmBlocks.js:765 +#.TRANS: Japanese only: note value block for drum +msgid "note value drum" msgstr "" -#: js/PitchBlocks.js:373 -msgid "The Current Pitch block is used with the Pitch Converter block. In the example above, current pitch, sol 4, is displayed as 392 hertz." +#: js/blocks/RhythmBlocks.js:829 +msgid "392 hertz" msgstr "" -#: js/PitchBlocks.js:410 -msgid "This block converts the pitch value of the last note played into different formats such as hertz, letter name, pitch number, et al." +#: js/blocks/RhythmBlocks.js:1119 +msgid "The Note block is a container for one or more Pitch blocks." msgstr "" -#: js/PitchBlocks.js:434 -msgid "alphabet" +#: js/blocks/RhythmBlocks.js:1121 +msgid "The Note block specifies the duration (note value) of its contents." msgstr "" -#: js/PitchBlocks.js:436 -#.TRANS: Translate as "alphabet class" -msgid "letter class" +#: js/blocks/RhythmBlocks.js:1128 +#: js/blocks/PitchBlocks.js:974 +#: js/blocks/PitchBlocks.js:1007 +#: js/blocks/ProgramBlocks.js:1186 +#: js/blocks/ProgramBlocks.js:1227 +#: js/widgets/status.js:190 +#: js/widgets/temperament.js:464 +#: js/widgets/temperament.js:486 +#: js/widgets/temperament.js:496 +#: js/widgets/temperament.js:617 +#: plugins/rodi.rtp:192 +#.TRANS: a musical note consisting of pitch and duration +msgid "note" msgstr "" -#: js/PitchBlocks.js:437 -msgid "solfege class" +#: js/blocks/RhythmBlocks.js:1130 +msgid "value2" msgstr "" -#: js/PitchBlocks.js:438 -msgid "staff y" +#: js/blocks/RhythmBlocks.js:1200 +msgid "define frequency" msgstr "" -#: js/PitchBlocks.js:439 -msgid "solfege syllable" +#: js/blocks/RhythmBlocks.js:1218 +#: js/widgets/temperament.js:787 +#: js/widgets/temperament.js:1587 +msgid "octave space" msgstr "" -#: js/PitchBlocks.js:440 -msgid "pitch class" +#: js/blocks/SensorsBlocks.js:36 +msgid "The Input block prompts for keyboard input." msgstr "" -#: js/PitchBlocks.js:441 -msgid "scalar class" +#: js/blocks/SensorsBlocks.js:46 +msgid "input" msgstr "" -#: js/PitchBlocks.js:443 -msgid "nth degree" +#: js/blocks/SensorsBlocks.js:64 +msgid "Input a value" msgstr "" -#: js/PitchBlocks.js:444 -msgid "pitch to shade" +#: js/blocks/SensorsBlocks.js:126 +msgid "input value" msgstr "" -#: js/PitchBlocks.js:445 -msgid "pitch to color" +#: js/blocks/SensorsBlocks.js:131 +msgid "The Input-value block stores the input." msgstr "" -#: js/PitchBlocks.js:629 -#: js/musickeyboard.js:565 -#.TRANS: MIDI is a technical standard for electronic music -msgid "MIDI" +#: js/blocks/SensorsBlocks.js:238 +msgid "loudness" msgstr "" -#: js/PitchBlocks.js:642 -#.TRANS: set an offset associated with the numeric piano keyboard mapping -msgid "set pitch number offset" +#: js/blocks/SensorsBlocks.js:245 +msgid "The Loudness block returns the volume detected by the microphone." msgstr "" -#: js/PitchBlocks.js:645 -msgid "The Set pitch number offset block is used to set the offset for mapping pitch numbers to pitch and octave." +#: js/blocks/SensorsBlocks.js:300 +msgid "click" msgstr "" -#: js/PitchBlocks.js:679 -#.TRANS: convert piano key number (1-88) to pitch -msgid "number to pitch" +#: js/blocks/SensorsBlocks.js:306 +msgid "The Click block triggers an event if a mouse has been clicked." msgstr "" -#: js/PitchBlocks.js:682 -msgid "The Number to pitch block will convert a pitch number to a pich name." +#: js/blocks/SensorsBlocks.js:313 +msgid "The Click block triggers an event if a turtle has been clicked." msgstr "" -#: js/PitchBlocks.js:715 -#.TRANS: convert piano key number (1-88) to octave -msgid "number to octave" +#: js/blocks/SensorsBlocks.js:342 +msgid "cursor over" msgstr "" -#: js/PitchBlocks.js:717 -msgid "The Number to octave block will convert a pitch number to an octave." +#: js/blocks/SensorsBlocks.js:387 +msgid "cursor out" msgstr "" -#: js/PitchBlocks.js:726 -msgid "y to pitch" +#: js/blocks/SensorsBlocks.js:433 +msgid "cursor button down" msgstr "" -#: js/PitchBlocks.js:729 -msgid "Y to pitch block will convert a staff y position to corresponding pitch notation." +#: js/blocks/SensorsBlocks.js:477 +msgid "cursor button up" msgstr "" -#: js/PitchBlocks.js:841 -msgid "accidental selector" +#: js/blocks/SensorsBlocks.js:521 +#: js/blocks/PenBlocks.js:48 +#: plugins/rodi.rtp:219 +msgid "blue" msgstr "" -#: js/PitchBlocks.js:844 -msgid "The Accidental selector block is used to choose between double-sharp, sharp, natural, flat, and double-flat." +#: js/blocks/SensorsBlocks.js:577 +#: js/blocks/PenBlocks.js:64 +#: plugins/rodi.rtp:218 +msgid "green" msgstr "" -#: js/PitchBlocks.js:858 -msgid "Pitch can be specified in terms of ni dha pa ma ga re sa." +#: js/blocks/SensorsBlocks.js:633 +#: js/blocks/PenBlocks.js:112 +#: plugins/rodi.rtp:217 +msgid "red" msgstr "" -#: js/PitchBlocks.js:872 -msgid "Pitch can be specified in terms of C D E F G A B." +#: js/blocks/SensorsBlocks.js:638 +msgid "The Get red block returns the red component of the pixel under the mouse." msgstr "" -#: js/PitchBlocks.js:883 -msgid "solfege" +#: js/blocks/SensorsBlocks.js:644 +msgid "The Get red block returns the red component of the pixel under the turtle." msgstr "" -#: js/PitchBlocks.js:886 -msgid "Pitch can be specified in terms of do re mi fa sol la ti." +#: js/blocks/SensorsBlocks.js:685 +#: plugins/rodi.rtp:216 +msgid "pixel color" msgstr "" -#: js/PitchBlocks.js:920 -msgid "The Invert block rotates any contained notes around a target note." +#: js/blocks/SensorsBlocks.js:690 +msgid "The Get pixel block returns the color of the pixel under the mouse." msgstr "" -#: js/PitchBlocks.js:927 -#.TRANS: pitch inversion rotates a pitch around another pitch -msgid "invert" +#: js/blocks/SensorsBlocks.js:696 +msgid "The Get pixel block returns the color of the pixel under the turtle." msgstr "" -#: js/PitchBlocks.js:929 -#: js/PitchBlocks.js:935 -#: js/PitchActions.js:727 -#: js/musicutils.js:726 -#: js/musicutils.js:902 -#.TRANS: invert based on even or odd number or musical scale -#.TRANS: even numbers -msgid "even" -msgstr "" +#: js/blocks/SensorsBlocks.js:758 +msgid "time" +msgstr "цаг" -#: js/PitchBlocks.js:935 -#: js/PitchActions.js:729 -#: js/musicutils.js:728 -#: js/musicutils.js:903 -#.TRANS: odd numbers -msgid "odd" +#: js/blocks/SensorsBlocks.js:804 +msgid "cursor y" msgstr "" -#: js/PitchBlocks.js:935 -#: js/PitchActions.js:731 -#: js/musicutils.js:729 -#: js/musicutils.js:904 -msgid "scalar" +#: js/blocks/SensorsBlocks.js:809 +msgid "The Cursor Y block returns the vertical position of the mouse." msgstr "" -#: js/PitchBlocks.js:966 -#.TRANS: pitch inversion rotates a pitch around another pitch (odd number) -msgid "invert (odd)" +#: js/blocks/SensorsBlocks.js:845 +msgid "cursor x" msgstr "" -#: js/PitchBlocks.js:999 -#.TRANS: pitch inversion rotates a pitch around another pitch (even number) -msgid "invert (even)" +#: js/blocks/SensorsBlocks.js:850 +msgid "The Cursor X block returns the horizontal position of the mouse." msgstr "" -#: js/PitchBlocks.js:1020 -#.TRANS: register is the octave of the current pitch -msgid "register" +#: js/blocks/SensorsBlocks.js:886 +msgid "mouse button" msgstr "" -#: js/PitchBlocks.js:1024 -msgid "The Register block provides an easy way to modify the register (octave) of the notes that follow it." +#: js/blocks/SensorsBlocks.js:888 +msgid "The Mouse-button block returns True if the mouse button is pressed." msgstr "" -#: js/PitchBlocks.js:1074 -msgid "The Semi-tone transposition block will shift the pitches contained inside Note blocks up (or down) by half steps." +#: js/blocks/SensorsBlocks.js:934 +msgid "to ASCII" msgstr "" -#: js/PitchBlocks.js:1076 -msgid "In the example shown above, sol is shifted up to sol#." +#: js/blocks/SensorsBlocks.js:938 +msgid "The To ASCII block converts numbers to letters." msgstr "" -#: js/PitchBlocks.js:1082 -#.TRANS: adjust the amount of shift (up or down) of a pitch -msgid "semi-tone transpose" +#: js/blocks/SensorsBlocks.js:1005 +msgid "The Keyboard block returns computer keyboard input." msgstr "" -#: js/PitchBlocks.js:1115 -msgid "The Transpose by Ratio block will shift the pitches contained inside Note blocks up (or down) by a ratio" +#: js/blocks/RhythmBlockPaletteBlocks.js:50 +#: js/blocks/RhythmBlockPaletteBlocks.js:233 +#.TRANS: rhythm block +#.TRANS: translate "rhythm1" as rhythm +msgid "rhythm1" msgstr "" -#: js/PitchBlocks.js:1121 -#.TRANS: adjust the amount of shift (up or down) of a pitch -msgid "transpose by ratio" +#: js/blocks/RhythmBlockPaletteBlocks.js:70 +#: js/blocks/RhythmBlockPaletteBlocks.js:252 +#: js/blocks/RhythmBlockPaletteBlocks.js:485 +#: js/blocks/RhythmBlockPaletteBlocks.js:554 +#: js/blocks/RhythmBlockPaletteBlocks.js:875 +msgid "number of notes" msgstr "" -#: js/PitchBlocks.js:1204 -#.TRANS: down sixth means the note is five scale degrees below current note -msgid "down sixth" +#: js/blocks/RhythmBlockPaletteBlocks.js:126 +msgid "polyphonic rhythm" msgstr "" -#: js/PitchBlocks.js:1223 -#.TRANS: down third means the note is two scale degrees below current note -msgid "down third" +#: js/blocks/RhythmBlockPaletteBlocks.js:219 +msgid "The Rhythm block is used to generate rhythm patterns." msgstr "" -#: js/PitchBlocks.js:1242 -#.TRANS: seventh means the note is the six scale degrees above current note -msgid "seventh" +#: js/blocks/RhythmBlockPaletteBlocks.js:280 +msgid "1/64 note" msgstr "" -#: js/PitchBlocks.js:1261 -#.TRANS: sixth means the note is the five scale degrees above current note -msgid "sixth" +#: js/blocks/RhythmBlockPaletteBlocks.js:304 +msgid "1/32 note" msgstr "" -#: js/PitchBlocks.js:1280 -#.TRANS: fifth means the note is the four scale degrees above current note -msgid "fifth" +#: js/blocks/RhythmBlockPaletteBlocks.js:332 +msgid "1/16 note" msgstr "" -#: js/PitchBlocks.js:1300 -#.TRANS: fourth means the note is three scale degrees above current note -msgid "fourth" +#: js/blocks/RhythmBlockPaletteBlocks.js:360 +msgid "eighth note" msgstr "" -#: js/PitchBlocks.js:1319 -#.TRANS: third means the note is two scale degrees above current note -msgid "third" +#: js/blocks/RhythmBlockPaletteBlocks.js:388 +msgid "quarter note" msgstr "" -#: js/PitchBlocks.js:1338 -#.TRANS: second means the note is one scale degree above current note -msgid "second" +#: js/blocks/RhythmBlockPaletteBlocks.js:416 +msgid "half note" msgstr "" -#: js/PitchBlocks.js:1379 -msgid "The Scalar transposition block will shift the pitches contained inside Note blocks up (or down) the scale." +#: js/blocks/RhythmBlockPaletteBlocks.js:444 +msgid "whole note" msgstr "" -#: js/PitchBlocks.js:1381 -msgid "In the example shown above, sol is shifted up to la." +#: js/blocks/RhythmBlockPaletteBlocks.js:482 +#: js/blocks/RhythmBlockPaletteBlocks.js:551 +#: js/blocks/RhythmBlockPaletteBlocks.js:602 +#.TRANS: A tuplet is a note value divided into irregular time values. +msgid "tuplet" msgstr "" -#: js/PitchBlocks.js:1388 -#.TRANS: adjust the amount of shift (up or down) of a pitch by musical scale (scalar) steps -msgid "scalar transpose" +#: js/blocks/RhythmBlockPaletteBlocks.js:768 +msgid "septuplet" msgstr "" -#: js/PitchBlocks.js:1423 -msgid "The Accidental block is used to create sharps and flats" +#: js/blocks/RhythmBlockPaletteBlocks.js:796 +msgid "quintuplet" msgstr "" -#: js/PitchBlocks.js:1430 -#.TRANS: An accidental is a modification to a pitch, e.g., sharp or flat. -msgid "accidental override" +#: js/blocks/RhythmBlockPaletteBlocks.js:824 +msgid "triplet" msgstr "" -#: js/PitchBlocks.js:1543 -msgid "The Hertz block (in combination with a Number block) will play a sound at the specified frequency." +#: js/blocks/RhythmBlockPaletteBlocks.js:851 +msgid "simple tuplet" msgstr "" -#: js/PitchBlocks.js:1633 -msgid "The Pitch Number block will play a pitch associated by its number, e.g. 0 for C and 7 for G." +#: js/blocks/RhythmBlockPaletteBlocks.js:861 +msgid "Tuplets are a collection of notes that get scaled to a specific duration." msgstr "" -#: js/PitchBlocks.js:1665 -#: js/PitchBlocks.js:1707 -#.TRANS: a numeric mapping of the notes in an octave based on the musical mode -#.TRANS: a numeric mapping of the notes in an octave based on the musical mode -msgid "nth modal pitch" +#: js/blocks/DrumBlocks.js:59 +msgid "The Noise name block is used to select a noise synthesizer." msgstr "" -#: js/PitchBlocks.js:1668 -msgid "n^th Modal Pitch takes the pattern of pitches in semitones for a mode and makes each point a degree of the mode," +#: js/blocks/DrumBlocks.js:102 +msgid "The Drum name block is used to select a drum." msgstr "" -#: js/PitchBlocks.js:1670 -msgid "starting from 1 and regardless of tonal framework (i.e. not always 8 notes in the octave)" +#: js/blocks/DrumBlocks.js:146 +msgid "The Effects name block is used to select a sound effect." msgstr "" -#: js/PitchBlocks.js:1711 -msgid "N^th Modal Pitch takes a number as an input as the n^th degree for the given mode. 0 is the first position, 1 is the second, -1 is the note before the first etc." +#: js/blocks/DrumBlocks.js:163 +msgid "noise" msgstr "" -#: js/PitchBlocks.js:1713 -msgid "The pitches change according to the mode specified without any need for respellings." +#: js/blocks/DrumBlocks.js:177 +msgid "The Play noise block will generate white, pink, or brown noise." msgstr "" -#: js/PitchBlocks.js:1752 -msgid "Scale Degree is a common convention in music. Scale Degree offers seven possible positions in the scale (1-7) and can be modified via accidentals." +#: js/blocks/DrumBlocks.js:317 +msgid "Replace every instance of a pitch with a drum sound." msgstr "" -#: js/PitchBlocks.js:1754 -msgid "Scale Degree 1 is always the first pitch in a given scale, regardless of octave." +#: js/blocks/DrumBlocks.js:328 +#.TRANS: map a pitch to a drum sound +msgid "map pitch to drum" msgstr "" -#: js/PitchBlocks.js:1776 -#.TRANS: step some number of notes in current musical scale -msgid "scalar step" +#: js/blocks/DrumBlocks.js:395 +msgid "In the example above, a kick drum sound will be played instead of sol." msgstr "" -#: js/PitchBlocks.js:1781 -msgid "The Scalar Step block (in combination with a Number block) will play the next pitch in a scale," +#: js/blocks/DrumBlocks.js:407 +#.TRANS: set the current drum sound for playback +msgid "set drum" msgstr "" -#: js/PitchBlocks.js:1783 -msgid "eg if the last note played was sol, Scalar Step 1 will play la." +#: js/blocks/DrumBlocks.js:451 +msgid "sound effect" msgstr "" -#: js/PitchBlocks.js:1818 -msgid "The Pitch block specifies the pitch name and octave of a note that together determine the frequency of the note." +#: js/blocks/DrumBlocks.js:489 +msgid "You can use multiple Drum blocks within a Note block." msgstr "" -#: js/GraphicsBlocks.js:46 -#: js/DictActions.js:77 -#: js/DictActions.js:155 -#: js/DictActions.js:189 +#: js/blocks/GraphicsBlocks.js:46 +#: js/turtleactions/DictActions.js:77 +#: js/turtleactions/DictActions.js:144 +#: js/turtleactions/DictActions.js:173 msgid "heading" msgstr "чиг" -#: js/GraphicsBlocks.js:56 +#: js/blocks/GraphicsBlocks.js:56 msgid "The Heading block returns the orientation of the mouse." msgstr "" -#: js/GraphicsBlocks.js:62 +#: js/blocks/GraphicsBlocks.js:62 msgid "The Heading block returns the orientation of the turtle." msgstr "" -#: js/GraphicsBlocks.js:133 +#: js/blocks/GraphicsBlocks.js:133 msgid "The Y block returns the vertical position of the mouse." msgstr "" -#: js/GraphicsBlocks.js:140 +#: js/blocks/GraphicsBlocks.js:140 msgid "The Y block returns the vertical position of the turtle." msgstr "" -#: js/GraphicsBlocks.js:149 +#: js/blocks/GraphicsBlocks.js:149 msgid "y3" msgstr "" -#: js/GraphicsBlocks.js:219 +#: js/blocks/GraphicsBlocks.js:219 msgid "The X block returns the horizontal position of the mouse." msgstr "" -#: js/GraphicsBlocks.js:226 +#: js/blocks/GraphicsBlocks.js:226 msgid "The X block returns the horizontal position of the turtle." msgstr "" -#: js/GraphicsBlocks.js:235 +#: js/blocks/GraphicsBlocks.js:235 msgid "x3" msgstr "" -#: js/GraphicsBlocks.js:295 +#: js/blocks/GraphicsBlocks.js:295 msgid "scroll xy" msgstr "" -#: js/GraphicsBlocks.js:303 +#: js/blocks/GraphicsBlocks.js:303 msgid "The Scroll XY block moves the canvas." msgstr "" -#: js/GraphicsBlocks.js:313 +#: js/blocks/GraphicsBlocks.js:313 msgid "x2" msgstr "" -#: js/GraphicsBlocks.js:313 +#: js/blocks/GraphicsBlocks.js:313 msgid "y2" msgstr "" -#: js/GraphicsBlocks.js:373 -#: js/temperament.js:213 -#: js/temperament.js:241 +#: js/blocks/GraphicsBlocks.js:373 +#: js/widgets/temperament.js:319 +#: js/widgets/temperament.js:347 msgid "clear" msgstr "" -#: js/GraphicsBlocks.js:426 +#: js/blocks/GraphicsBlocks.js:426 msgid "The Control-point 2 block sets the second control point for the Bezier curve." msgstr "" -#: js/GraphicsBlocks.js:433 +#: js/blocks/GraphicsBlocks.js:433 msgid "control point 2" msgstr "" -#: js/GraphicsBlocks.js:436 -#: js/GraphicsBlocks.js:487 -#: js/GraphicsBlocks.js:534 -#: js/GraphicsBlocks.js:750 +#: js/blocks/GraphicsBlocks.js:436 +#: js/blocks/GraphicsBlocks.js:487 +#: js/blocks/GraphicsBlocks.js:534 +#: js/blocks/GraphicsBlocks.js:750 msgid "x1" msgstr "" -#: js/GraphicsBlocks.js:436 -#: js/GraphicsBlocks.js:487 -#: js/GraphicsBlocks.js:534 -#: js/GraphicsBlocks.js:750 +#: js/blocks/GraphicsBlocks.js:436 +#: js/blocks/GraphicsBlocks.js:487 +#: js/blocks/GraphicsBlocks.js:534 +#: js/blocks/GraphicsBlocks.js:750 msgid "y1" msgstr "" -#: js/GraphicsBlocks.js:477 +#: js/blocks/GraphicsBlocks.js:477 msgid "The Control-point 1 block sets the first control point for the Bezier curve." msgstr "" -#: js/GraphicsBlocks.js:484 +#: js/blocks/GraphicsBlocks.js:484 msgid "control point 1" msgstr "" -#: js/GraphicsBlocks.js:527 +#: js/blocks/GraphicsBlocks.js:527 msgid "The Bezier block draws a Bezier curve." msgstr "" -#: js/GraphicsBlocks.js:531 +#: js/blocks/GraphicsBlocks.js:531 msgid "bezier" msgstr "" -#: js/GraphicsBlocks.js:592 +#: js/blocks/GraphicsBlocks.js:592 msgid "The Arc block moves the turtle in an arc." msgstr "" -#: js/GraphicsBlocks.js:600 +#: js/blocks/GraphicsBlocks.js:600 msgid "arc" msgstr "нум" -#: js/GraphicsBlocks.js:603 +#: js/blocks/GraphicsBlocks.js:603 msgid "angle" msgstr "ѳнцѳг" -#: js/GraphicsBlocks.js:603 +#: js/blocks/GraphicsBlocks.js:603 msgid "radius" msgstr "радиус" -#: js/GraphicsBlocks.js:620 -#: js/GraphicsBlocks.js:767 -#: js/GraphicsBlocks.js:1010 -#: js/GraphicsBlocks.js:1093 +#: js/blocks/GraphicsBlocks.js:620 +#: js/blocks/GraphicsBlocks.js:767 +#: js/blocks/GraphicsBlocks.js:1010 +#: js/blocks/GraphicsBlocks.js:1093 msgid "Value must be within -5000 to 5000 when Wrap Mode is off." msgstr "" -#: js/GraphicsBlocks.js:622 -#: js/GraphicsBlocks.js:769 -#: js/GraphicsBlocks.js:1012 -#: js/GraphicsBlocks.js:1095 +#: js/blocks/GraphicsBlocks.js:622 +#: js/blocks/GraphicsBlocks.js:769 +#: js/blocks/GraphicsBlocks.js:1012 +#: js/blocks/GraphicsBlocks.js:1095 msgid "Value must be within -20000 to 20000 when Wrap Mode is on." msgstr "" -#: js/GraphicsBlocks.js:660 +#: js/blocks/GraphicsBlocks.js:660 msgid "set heading" msgstr "чиглэл" -#: js/GraphicsBlocks.js:673 +#: js/blocks/GraphicsBlocks.js:673 msgid "The Set heading block sets the heading of the turtle." msgstr "" -#: js/GraphicsBlocks.js:733 +#: js/blocks/GraphicsBlocks.js:733 msgid "The Set XY block moves the mouse to a specific position on the screen." msgstr "" -#: js/GraphicsBlocks.js:739 +#: js/blocks/GraphicsBlocks.js:739 msgid "The Set XY block moves the turtle to a specific position on the screen." msgstr "" -#: js/GraphicsBlocks.js:747 +#: js/blocks/GraphicsBlocks.js:747 msgid "set xy" msgstr "тэнхлэг ХУ" -#: js/GraphicsBlocks.js:819 +#: js/blocks/GraphicsBlocks.js:819 msgid "The Right block turns the mouse to the right." msgstr "" -#: js/GraphicsBlocks.js:826 +#: js/blocks/GraphicsBlocks.js:826 msgid "The Right block turns the turtle to the right." msgstr "" -#: js/GraphicsBlocks.js:835 +#: js/blocks/GraphicsBlocks.js:835 msgid "right1" msgstr "" -#: js/GraphicsBlocks.js:835 +#: js/blocks/GraphicsBlocks.js:835 #: plugins/rodi.rtp:77 #: plugins/rodi.rtp:340 #: plugins/rodi.rtp:375 msgid "right" msgstr "баруун" -#: js/GraphicsBlocks.js:899 +#: js/blocks/GraphicsBlocks.js:899 msgid "The Left block turns the mouse to the left." msgstr "" -#: js/GraphicsBlocks.js:906 +#: js/blocks/GraphicsBlocks.js:906 msgid "The Left block turns the turtle to the left." msgstr "" -#: js/GraphicsBlocks.js:915 +#: js/blocks/GraphicsBlocks.js:915 msgid "left1" msgstr "" -#: js/GraphicsBlocks.js:915 +#: js/blocks/GraphicsBlocks.js:915 #: plugins/rodi.rtp:79 #: plugins/rodi.rtp:339 #: plugins/rodi.rtp:362 msgid "left" msgstr "зүүн" -#: js/GraphicsBlocks.js:967 -#: js/temperament.js:734 -#: js/temperament.js:933 +#: js/blocks/GraphicsBlocks.js:967 +#: js/widgets/temperament.js:875 +#: js/widgets/temperament.js:1078 #: plugins/rodi.rtp:69 #: plugins/rodi.rtp:387 msgid "back" msgstr "ухар" -#: js/GraphicsBlocks.js:976 +#: js/blocks/GraphicsBlocks.js:976 msgid "The Back block moves the mouse backward." msgstr "" -#: js/GraphicsBlocks.js:983 +#: js/blocks/GraphicsBlocks.js:983 msgid "The Back block moves the turtle backward." msgstr "" -#: js/GraphicsBlocks.js:1050 +#: js/blocks/GraphicsBlocks.js:1050 #: plugins/rodi.rtp:71 #: plugins/rodi.rtp:400 msgid "forward" msgstr "урагшаа" -#: js/GraphicsBlocks.js:1059 +#: js/blocks/GraphicsBlocks.js:1059 msgid "The Forward block moves the mouse forward." msgstr "" -#: js/GraphicsBlocks.js:1066 +#: js/blocks/GraphicsBlocks.js:1066 msgid "The Forward block moves the turtle forward." msgstr "" -#: js/GraphicsBlocks.js:1154 -#: js/GraphicsBlocks.js:1172 +#: js/blocks/GraphicsBlocks.js:1154 +#: js/blocks/GraphicsBlocks.js:1172 msgid "wrap" msgstr "" -#: js/OrnamentBlocks.js:32 -msgid "staccato factor" -msgstr "" - -#: js/OrnamentBlocks.js:108 -msgid "slur factor" -msgstr "" - -#: js/OrnamentBlocks.js:217 -#: js/OrnamentBlocks.js:309 -#.TRANS: the neighbor refers to a neighboring note, e.g., D is a neighbor of C -msgid "neighbor" -msgstr "" - -#: js/OrnamentBlocks.js:293 -msgid "The Neighbor block rapidly switches between neighboring pitches." -msgstr "" - -#: js/OrnamentBlocks.js:364 -msgid "glide" -msgstr "" - -#: js/OrnamentBlocks.js:479 -#: js/OrnamentBlocks.js:643 -msgid "slur" -msgstr "" - -#: js/OrnamentBlocks.js:558 -#: js/OrnamentBlocks.js:710 -#.TRANS: play each note sharply detached from the others -msgid "staccato" -msgstr "" - -#: js/PenBlocks.js:24 +#: js/blocks/PenBlocks.js:30 msgid "purple" msgstr "" -#: js/PenBlocks.js:37 -#: js/SensorsBlocks.js:521 -#: plugins/rodi.rtp:219 -msgid "blue" -msgstr "" - -#: js/PenBlocks.js:50 -#: js/SensorsBlocks.js:577 -#: plugins/rodi.rtp:218 -msgid "green" -msgstr "" - -#: js/PenBlocks.js:63 +#: js/blocks/PenBlocks.js:80 msgid "yellow" msgstr "" -#: js/PenBlocks.js:76 +#: js/blocks/PenBlocks.js:96 #: plugins/nutrition.rtp:164 msgid "orange" msgstr "улбар шар" -#: js/PenBlocks.js:89 -#: js/SensorsBlocks.js:633 -#: plugins/rodi.rtp:217 -msgid "red" -msgstr "" - -#: js/PenBlocks.js:102 +#: js/blocks/PenBlocks.js:128 msgid "white" msgstr "" -#: js/PenBlocks.js:115 +#: js/blocks/PenBlocks.js:144 msgid "black" msgstr "" -#: js/PenBlocks.js:128 +#: js/blocks/PenBlocks.js:163 msgid "begin fill" msgstr "" -#: js/PenBlocks.js:143 +#: js/blocks/PenBlocks.js:190 msgid "end fill" msgstr "" -#: js/PenBlocks.js:159 -#: js/PenBlocks.js:386 +#: js/blocks/PenBlocks.js:212 +#: js/blocks/PenBlocks.js:560 #.TRANS: set the background color msgid "background" msgstr "" -#: js/PenBlocks.js:206 -#: js/DictActions.js:71 -#: js/DictActions.js:149 -#: js/DictActions.js:186 +#: js/blocks/PenBlocks.js:274 +#: js/turtleactions/DictActions.js:71 +#: js/turtleactions/DictActions.js:138 +#: js/turtleactions/DictActions.js:170 msgid "grey" msgstr "" -#: js/PenBlocks.js:210 +#: js/blocks/PenBlocks.js:282 msgid "The Grey block returns the current pen grey value." msgstr "" -#: js/PenBlocks.js:243 -#: js/DictActions.js:69 -#: js/DictActions.js:147 -#: js/DictActions.js:185 +#: js/blocks/PenBlocks.js:340 +#: js/turtleactions/DictActions.js:69 +#: js/turtleactions/DictActions.js:136 +#: js/turtleactions/DictActions.js:169 msgid "shade" msgstr "сүүдэр" -#: js/PenBlocks.js:247 +#: js/blocks/PenBlocks.js:347 msgid "The Shade block returns the current pen shade value." msgstr "" -#: js/PenBlocks.js:280 -#: js/DictActions.js:67 -#: js/DictActions.js:145 -#: js/DictActions.js:184 +#: js/blocks/PenBlocks.js:405 +#: js/turtleactions/DictActions.js:67 +#: js/turtleactions/DictActions.js:134 +#: js/turtleactions/DictActions.js:168 msgid "color" msgstr "ѳнгѳ" -#: js/PenBlocks.js:285 +#: js/blocks/PenBlocks.js:415 msgid "The Color block returns the current pen color." msgstr "" -#: js/PenBlocks.js:318 -#: js/DictActions.js:73 -#: js/DictActions.js:151 -#: js/DictActions.js:187 +#: js/blocks/PenBlocks.js:470 +#: js/turtleactions/DictActions.js:73 +#: js/turtleactions/DictActions.js:140 +#: js/turtleactions/DictActions.js:171 msgid "pen size" msgstr "үзэг хэмжээ" -#: js/PenBlocks.js:322 +#: js/blocks/PenBlocks.js:474 msgid "The Pen size block returns the current pen size value." msgstr "" -#: js/PenBlocks.js:355 +#: js/blocks/PenBlocks.js:513 msgid "set font" msgstr "" -#: js/PenBlocks.js:358 +#: js/blocks/PenBlocks.js:518 msgid "The Set font block sets the font used by the Show block." msgstr "" -#: js/PenBlocks.js:391 +#: js/blocks/PenBlocks.js:567 msgid "The Background block sets the window background color." msgstr "" -#: js/PenBlocks.js:408 +#: js/blocks/PenBlocks.js:598 msgid "The Hollow line block creates a line with a hollow center." msgstr "" -#: js/PenBlocks.js:415 +#: js/blocks/PenBlocks.js:606 #.TRANS: draw a line logo has a hollow space down its center msgid "hollow line" msgstr "" -#: js/PenBlocks.js:462 +#: js/blocks/PenBlocks.js:675 msgid "The Fill block fills in a shape with a color." msgstr "" -#: js/PenBlocks.js:470 +#: js/blocks/PenBlocks.js:684 #.TRANS: fill in as a solid color msgid "fill" msgstr "" -#: js/PenBlocks.js:527 +#: js/blocks/PenBlocks.js:761 #.TRANS: raise up the pen so logo it does not draw when it is moved msgid "pen up" msgstr "бүү зур" -#: js/PenBlocks.js:532 +#: js/blocks/PenBlocks.js:768 msgid "The Pen-up block raises the pen so that it does not draw." msgstr "" -#: js/PenBlocks.js:552 +#: js/blocks/PenBlocks.js:802 #.TRANS: put down the pen so logo it draws when it is moved msgid "pen down" msgstr "зур" -#: js/PenBlocks.js:557 +#: js/blocks/PenBlocks.js:810 msgid "The Pen-down block lowers the pen so that it draws." msgstr "" -#: js/PenBlocks.js:577 +#: js/blocks/PenBlocks.js:844 #.TRANS: set the width of the line drawn by the pen msgid "set pen size" msgstr "үзэгний хэмжээ өг" -#: js/PenBlocks.js:583 +#: js/blocks/PenBlocks.js:854 msgid "The Set-pen-size block changes the size of the pen." msgstr "" -#: js/PenBlocks.js:623 +#: js/blocks/PenBlocks.js:913 #.TRANS: set degree of translucence of the pen color msgid "set translucency" msgstr "" -#: js/PenBlocks.js:627 +#: js/blocks/PenBlocks.js:921 msgid "The Set translucency block changes the opacity of the pen." msgstr "" -#: js/PenBlocks.js:668 +#: js/blocks/PenBlocks.js:981 msgid "set hue" msgstr "" -#: js/PenBlocks.js:672 +#: js/blocks/PenBlocks.js:989 msgid "The Set hue block changes the color of the pen." msgstr "" -#: js/PenBlocks.js:711 +#: js/blocks/PenBlocks.js:1047 msgid "set shade" msgstr "сүүдэр" -#: js/PenBlocks.js:717 +#: js/blocks/PenBlocks.js:1057 msgid "The Set-shade block changes the pen color from dark to light." msgstr "" -#: js/PenBlocks.js:757 +#: js/blocks/PenBlocks.js:1111 #.TRANS: set the level of vividness of the pen color msgid "set grey" msgstr "" -#: js/PenBlocks.js:761 +#: js/blocks/PenBlocks.js:1119 msgid "The Set grey block changes the vividness of the pen color." msgstr "" -#: js/PenBlocks.js:800 +#: js/blocks/PenBlocks.js:1172 msgid "set color" msgstr "өнгө" -#: js/PenBlocks.js:806 +#: js/blocks/PenBlocks.js:1182 msgid "The Set-color block changes the pen color." msgstr "" -#: js/VolumeBlocks.js:35 -msgid "synth volume" -msgstr "" - -#: js/VolumeBlocks.js:39 -msgid "The Synth volume block returns the current volume of the current synthesizer." -msgstr "" - -#: js/VolumeBlocks.js:47 -#: js/musicutils.js:730 -#: js/synthutils.js:56 -#.TRANS: musical instrument -msgid "piano" -msgstr "" - -#: js/VolumeBlocks.js:105 -msgid "master volume" -msgstr "" - -#: js/VolumeBlocks.js:109 -msgid "The Master volume block returns the master volume." -msgstr "" - -#: js/VolumeBlocks.js:355 -#: js/VolumeBlocks.js:524 -msgid "set synth volume" -msgstr "" - -#: js/VolumeBlocks.js:362 -#: js/VolumeBlocks.js:545 -msgid "synth" -msgstr "" - -#: js/VolumeBlocks.js:403 -#: js/VolumeBlocks.js:577 -#: js/VolumeBlocks.js:740 -#: js/VolumeActions.js:173 -msgid "Setting volume to 0." -msgstr "" - -#: js/VolumeBlocks.js:440 -msgid "Synth not found" -msgstr "" - -#: js/VolumeBlocks.js:494 -msgid "set drum volume" -msgstr "" - -#: js/VolumeBlocks.js:530 -msgid "The Set synth volume block will change the volume of a particular synth," -msgstr "" - -#: js/VolumeBlocks.js:532 -msgid "eg guitar violin snare drum etc." -msgstr "" - -#: js/VolumeBlocks.js:534 -msgid "The default volume is 50." -msgstr "" - -#: js/VolumeBlocks.js:536 -msgid "The range is 0 for silence to 100 for full volume." -msgstr "" - -#: js/VolumeBlocks.js:597 -msgid "set panning" -msgstr "" - -#: js/VolumeBlocks.js:603 -msgid "The Set Panning block sets the panning for all synthesizers." -msgstr "" - -#: js/VolumeBlocks.js:625 -msgid "Warning: Sound is coming out from only the left or right side." -msgstr "" - -#: js/VolumeBlocks.js:647 -#: js/VolumeBlocks.js:695 -msgid "set master volume" -msgstr "" - -#: js/VolumeBlocks.js:653 -msgid "The Set master volume block sets the volume for all synthesizers." -msgstr "" - -#: js/VolumeBlocks.js:784 -msgid "The Set relative volume block changes the volume of the contained notes." -msgstr "" - -#: js/VolumeBlocks.js:791 -msgid "set relative volume" -msgstr "" - -#: js/VolumeBlocks.js:857 -msgid "decrescendo" -msgstr "" - -#: js/VolumeBlocks.js:921 -msgid "crescendo" -msgstr "" - -#: js/ToneBlocks.js:34 -msgid "oscillator" -msgstr "" - -#: js/ToneBlocks.js:44 -#: js/timbre.js:1562 -#.TRANS: Partials refers to the number of sine waves combined into the sound. -msgid "partials" -msgstr "" - -#: js/ToneBlocks.js:76 -msgid "You are adding multiple oscillator blocks." -msgstr "" - -#: js/ToneBlocks.js:144 -#: js/timbre.js:1225 -#.TRANS: a duo synthesizer combines a synth with a sequencer -msgid "duo synth" -msgstr "" - -#: js/ToneBlocks.js:149 -msgid "The Duo synth block is a duo-frequency modulator used to define a timbre." -msgstr "" - -#: js/ToneBlocks.js:157 -#: js/timbre.js:1476 -msgid "vibrato rate" -msgstr "" - -#: js/ToneBlocks.js:157 -msgid "vibrato intensity" -msgstr "" - -#: js/ToneBlocks.js:185 -#: js/timbre.js:1221 -#.TRANS: AM (amplitude modulation) synthesizer -msgid "AM synth" +#: js/blocks/PitchBlocks.js:141 +#.TRANS: musical transposition (adjustment of pitch up or down) +msgid "transposition" msgstr "" -#: js/ToneBlocks.js:189 -msgid "The AM synth block is an amplitude modulator used to define a timbre." +#: js/blocks/PitchBlocks.js:168 +#.TRANS: step down one note in current musical scale +msgid "scalar step down" msgstr "" -#: js/ToneBlocks.js:224 -#: js/timbre.js:1223 -#.TRANS: FM (frequency modulation) synthesizer -msgid "FM synth" +#: js/blocks/PitchBlocks.js:172 +msgid "The Scalar step down block returns the number of semi-tones down to the previous note in the current key and mode." msgstr "" -#: js/ToneBlocks.js:228 -msgid "The FM synth block is a frequency modulator used to define a timbre." +#: js/blocks/PitchBlocks.js:190 +#.TRANS: step up one note in current musical scale +msgid "scalar step up" msgstr "" -#: js/ToneBlocks.js:262 -msgid "partial" +#: js/blocks/PitchBlocks.js:194 +msgid "The Scalar step up block returns the number of semi-tones up to the next note in the current key and mode." msgstr "" -#: js/ToneBlocks.js:265 -msgid "The Partial block is used to specify a weight for a specific partial harmonic." +#: js/blocks/PitchBlocks.js:212 +#.TRANS: the change measured in half-steps between the current pitch and the previous pitch +msgid "change in pitch" msgstr "" -#: js/ToneBlocks.js:284 -#.TRANS: partials are weighted components in a harmonic series -msgid "Partial weight must be between 0 and 1." +#: js/blocks/PitchBlocks.js:216 +msgid "The Change in pitch block is the difference (in half steps) between the current pitch being played and the previous pitch played." msgstr "" -#: js/ToneBlocks.js:297 -#.TRANS: partials are weighted components in a harmonic series -msgid "Partial block should be used inside of a Weighted-partials block." +#: js/blocks/PitchBlocks.js:243 +#.TRANS: the change measured in scale-steps between the current pitch and the previous pitch +msgid "scalar change in pitch" msgstr "" -#: js/ToneBlocks.js:325 -#.TRANS: partials are weighted components in a harmonic series -msgid "weighted partials" +#: js/blocks/PitchBlocks.js:250 +#: js/blocks/PitchBlocks.js:432 +#: js/blocks/PitchBlocks.js:1667 +#: js/turtleactions/DictActions.js:89 +#: js/widgets/temperament.js:610 +#: js/widgets/temperament.js:614 +#: js/widgets/temperament.js:855 +#.TRANS: convert current note to piano key (1-88) +#.TRANS: a mapping of pitch to the 88 piano keys +msgid "pitch number" msgstr "" -#: js/ToneBlocks.js:383 -msgid "The Harmonic block will add harmonics to the contained notes." +#: js/blocks/PitchBlocks.js:256 +msgid "The Pitch number block is the value of the pitch of the note currently being played." msgstr "" -#: js/ToneBlocks.js:390 -#.TRANS: A harmonic is an overtone. -msgid "harmonic" +#: js/blocks/PitchBlocks.js:329 +#: js/blocks/PitchBlocks.js:433 +#.TRANS: the current pitch expressed in Hertz +msgid "pitch in hertz" msgstr "" -#: js/ToneBlocks.js:431 -msgid "The Distortion block adds distortion to the pitch." +#: js/blocks/PitchBlocks.js:334 +msgid "The Pitch in Hertz block is the value in Hertz of the pitch of the note currently being played." msgstr "" -#: js/ToneBlocks.js:438 -#: js/timbre.js:2100 -#.TRANS: distortion is an alteration in the sound -msgid "distortion" +#: js/blocks/PitchBlocks.js:367 +#: js/turtleactions/DictActions.js:87 +msgid "current pitch" msgstr "" -#: js/ToneBlocks.js:487 -msgid "The Tremolo block adds a wavering effect." +#: js/blocks/PitchBlocks.js:373 +msgid "The Current Pitch block is used with the Pitch Converter block. In the example above, current pitch, sol 4, is displayed as 392 hertz." msgstr "" -#: js/ToneBlocks.js:495 -#: js/timbre.js:2092 -#.TRANS: a wavering effect in a musical tone -msgid "tremolo" +#: js/blocks/PitchBlocks.js:410 +msgid "This block converts the pitch value of the last note played into different formats such as hertz, letter name, pitch number, et al." msgstr "" -#: js/ToneBlocks.js:500 -#: js/ToneBlocks.js:569 -#: js/ToneBlocks.js:630 -#: js/ToneBlocks.js:689 -#: js/timbre.js:2134 -#: js/timbre.js:2222 -#: js/timbre.js:2317 -#: js/timbre.js:2419 -#.TRANS: rate at which tremolo wavers -msgid "rate" +#: js/blocks/PitchBlocks.js:434 +msgid "alphabet" msgstr "" -#: js/ToneBlocks.js:502 -#: js/ToneBlocks.js:630 -#: js/timbre.js:2137 -#: js/timbre.js:2328 -#.TRANS: amplitude of tremolo waver -msgid "depth" +#: js/blocks/PitchBlocks.js:436 +#.TRANS: Translate as "alphabet class" +msgid "letter class" msgstr "" -#: js/ToneBlocks.js:559 -msgid "The Phaser block adds a sweeping sound." +#: js/blocks/PitchBlocks.js:437 +msgid "solfege class" msgstr "" -#: js/ToneBlocks.js:566 -#: js/timbre.js:2098 -#.TRANS: alter the phase of the sound -msgid "phaser" +#: js/blocks/PitchBlocks.js:438 +msgid "staff y" msgstr "" -#: js/ToneBlocks.js:569 -#: js/timbre.js:2422 -msgid "octaves" +#: js/blocks/PitchBlocks.js:439 +msgid "solfege syllable" msgstr "" -#: js/ToneBlocks.js:569 -#: js/timbre.js:2425 -msgid "base frequency" +#: js/blocks/PitchBlocks.js:440 +msgid "pitch class" msgstr "" -#: js/ToneBlocks.js:619 -msgid "The Chorus block adds a chorus effect." +#: js/blocks/PitchBlocks.js:441 +msgid "scalar class" msgstr "" -#: js/ToneBlocks.js:627 -#: js/timbre.js:2096 -#.TRANS: musical effect to simulate a choral sound -msgid "chorus" +#: js/blocks/PitchBlocks.js:443 +msgid "nth degree" msgstr "" -#: js/ToneBlocks.js:630 -msgid "delay" +#: js/blocks/PitchBlocks.js:444 +msgid "pitch to shade" msgstr "" -#: js/ToneBlocks.js:678 -msgid "The Vibrato block adds a rapid, slight variation in pitch." +#: js/blocks/PitchBlocks.js:445 +msgid "pitch to color" msgstr "" -#: js/ToneBlocks.js:686 -#: js/timbre.js:2094 -#.TRANS: a rapid, slight variation in pitch -msgid "vibrato" +#: js/blocks/PitchBlocks.js:629 +#: js/widgets/musickeyboard.js:735 +#.TRANS: MIDI is a technical standard for electronic music +msgid "MIDI" msgstr "" -#: js/ToneBlocks.js:689 -#: js/timbre.js:2221 -msgid "intensity" +#: js/blocks/PitchBlocks.js:642 +#.TRANS: set an offset associated with the numeric piano keyboard mapping +msgid "set pitch number offset" msgstr "" -#: js/ToneBlocks.js:733 -#.TRANS: select synthesizer -msgid "set synth" +#: js/blocks/PitchBlocks.js:645 +msgid "The Set pitch number offset block is used to set the offset for mapping pitch numbers to pitch and octave." msgstr "" -#: js/ToneBlocks.js:804 -msgid "synth name" +#: js/blocks/PitchBlocks.js:679 +#.TRANS: convert piano key number (1-88) to pitch +msgid "number to pitch" msgstr "" -#: js/ToneBlocks.js:842 -msgid "set default instrument" +#: js/blocks/PitchBlocks.js:682 +msgid "The Number to pitch block will convert a pitch number to a pich name." msgstr "" -#: js/ToneBlocks.js:895 -#: js/ToneBlocks.js:943 -#.TRANS: set the characteristics of a custom instrument -msgid "set instrument" +#: js/blocks/PitchBlocks.js:715 +#.TRANS: convert piano key number (1-88) to octave +msgid "number to octave" msgstr "" -#: js/ToneBlocks.js:898 -#: js/ToneBlocks.js:926 -#: js/ToneBlocks.js:932 -msgid "The Set instrument block selects a voice for the synthesizer," +#: js/blocks/PitchBlocks.js:717 +msgid "The Number to octave block will convert a pitch number to an octave." msgstr "" -#: js/ToneBlocks.js:900 -#: js/ToneBlocks.js:934 -msgid "eg guitar piano violin or cello." +#: js/blocks/PitchBlocks.js:726 +msgid "y to pitch" msgstr "" -#: js/ToneBlocks.js:1015 -msgid "Import a sound file to use as an instrument and set its pitch center." +#: js/blocks/PitchBlocks.js:729 +msgid "Y to pitch block will convert a staff y position to corresponding pitch notation." msgstr "" -#: js/ToneBlocks.js:1110 -msgid "Upload a sound file to connect with the sample block." +#: js/blocks/PitchBlocks.js:841 +msgid "accidental selector" msgstr "" -#: js/MeterBlocks.js:34 -#.TRANS: musical meter (time signature), e.g., 4:4 -msgid "current meter" +#: js/blocks/PitchBlocks.js:844 +msgid "The Accidental selector block is used to choose between double-sharp, sharp, natural, flat, and double-flat." msgstr "" -#: js/MeterBlocks.js:85 -#.TRANS: number of beats per minute -msgid "beat factor" +#: js/blocks/PitchBlocks.js:858 +msgid "Pitch can be specified in terms of ni dha pa ma ga re sa." msgstr "" -#: js/MeterBlocks.js:161 -msgid "The Beats per minute block returns the current beats per minute." +#: js/blocks/PitchBlocks.js:872 +msgid "Pitch can be specified in terms of C D E F G A B." msgstr "" -#: js/MeterBlocks.js:169 -#: js/status.js:152 -#.TRANS: number of beats played per minute -msgid "beats per minute2" +#: js/blocks/PitchBlocks.js:884 +msgid "solfege" msgstr "" -#: js/MeterBlocks.js:169 -#: js/MeterBlocks.js:1056 -#: js/MeterBlocks.js:1133 -#: js/MeterBlocks.js:1211 -#.TRANS: sets tempo by defining a beat and beats per minute -msgid "beats per minute" +#: js/blocks/PitchBlocks.js:887 +msgid "Pitch can be specified in terms of do re mi fa sol la ti." msgstr "" -#: js/MeterBlocks.js:233 -#.TRANS: count of current musical measure in meter -msgid "measure count" +#: js/blocks/PitchBlocks.js:922 +msgid "The Invert block rotates any contained notes around a target note." msgstr "" -#: js/MeterBlocks.js:241 -msgid "The Measure count block returns the current measure." +#: js/blocks/PitchBlocks.js:929 +#.TRANS: pitch inversion rotates a pitch around another pitch +msgid "invert" msgstr "" -#: js/MeterBlocks.js:290 -#.TRANS: count of current beat in the meter -msgid "beat count" +#: js/blocks/PitchBlocks.js:968 +#.TRANS: pitch inversion rotates a pitch around another pitch (odd number) +msgid "invert (odd)" msgstr "" -#: js/MeterBlocks.js:300 -#: js/MeterBlocks.js:311 -#: js/MeterBlocks.js:565 -#: js/MeterBlocks.js:576 -msgid "The Beat count block is the number of the current beat," +#: js/blocks/PitchBlocks.js:1001 +#.TRANS: pitch inversion rotates a pitch around another pitch (even number) +msgid "invert (even)" msgstr "" -#: js/MeterBlocks.js:313 -#: js/MeterBlocks.js:578 -msgid "eg 1, 2, 3, or 4." +#: js/blocks/PitchBlocks.js:1022 +#.TRANS: register is the octave of the current pitch +msgid "register" msgstr "" -#: js/MeterBlocks.js:368 -#.TRANS: count the number of notes -msgid "sum note values" +#: js/blocks/PitchBlocks.js:1026 +msgid "The Register block provides an easy way to modify the register (octave) of the notes that follow it." msgstr "" -#: js/MeterBlocks.js:376 -#: js/MeterBlocks.js:440 -msgid "The Note counter block can be used to count the number of contained notes." +#: js/blocks/PitchBlocks.js:1047 +#.TRANS: cents are units used to specify the ratio between pitches. There are 100 cents between successive notes. +msgid "50 cents" msgstr "" -#: js/MeterBlocks.js:432 -#.TRANS: count the number of notes -msgid "note counter" +#: js/blocks/PitchBlocks.js:1102 +msgid "The Semi-tone transposition block will shift the pitches contained inside Note blocks up (or down) by half steps." msgstr "" -#: js/MeterBlocks.js:496 -#.TRANS: number of whole notes that have been played -msgid "whole notes played" +#: js/blocks/PitchBlocks.js:1104 +msgid "In the example shown above, sol is shifted up to sol#." msgstr "" -#: js/MeterBlocks.js:505 -msgid "The Whole notes played block returns the total number of whole notes played." +#: js/blocks/PitchBlocks.js:1110 +#.TRANS: adjust the amount of shift (up or down) of a pitch +msgid "semi-tone transpose" msgstr "" -#: js/MeterBlocks.js:555 -#: js/DictActions.js:83 -#.TRANS: number of notes that have been played -msgid "notes played" +#: js/blocks/PitchBlocks.js:1143 +msgid "The Transpose by Ratio block will shift the pitches contained inside Note blocks up (or down) by a ratio" msgstr "" -#: js/MeterBlocks.js:653 -msgid "The No clock block decouples the notes from the master clock." +#: js/blocks/PitchBlocks.js:1149 +#.TRANS: adjust the amount of shift (up or down) of a pitch +msgid "transpose by ratio" msgstr "" -#: js/MeterBlocks.js:661 -#.TRANS: don't lock notes to master clock -msgid "no clock" +#: js/blocks/PitchBlocks.js:1232 +#.TRANS: down sixth means the note is five scale degrees below current note +msgid "down sixth" msgstr "" -#: js/MeterBlocks.js:700 -msgid "on weak beat do" +#: js/blocks/PitchBlocks.js:1251 +#.TRANS: down third means the note is two scale degrees below current note +msgid "down third" msgstr "" -#: js/MeterBlocks.js:705 -msgid "The On-weak-beat block lets you specify actions to take on weak (off) beats." +#: js/blocks/PitchBlocks.js:1270 +#.TRANS: seventh means the note is the six scale degrees above current note +msgid "seventh" msgstr "" -#: js/MeterBlocks.js:750 -msgid "on strong beat" +#: js/blocks/PitchBlocks.js:1289 +#.TRANS: sixth means the note is the five scale degrees above current note +msgid "sixth" msgstr "" -#: js/MeterBlocks.js:758 -msgid "The On-strong-beat block lets you specify actions to take on specified beats." +#: js/blocks/PitchBlocks.js:1308 +#.TRANS: fifth means the note is the four scale degrees above current note +msgid "fifth" msgstr "" -#: js/MeterBlocks.js:769 -msgid "beat" +#: js/blocks/PitchBlocks.js:1328 +#.TRANS: fourth means the note is three scale degrees above current note +msgid "fourth" msgstr "" -#: js/MeterBlocks.js:813 -msgid "on every beat do" +#: js/blocks/PitchBlocks.js:1347 +#.TRANS: third means the note is two scale degrees above current note +msgid "third" msgstr "" -#: js/MeterBlocks.js:821 -msgid "The On-every-beat block lets you specify actions to take on every beat." +#: js/blocks/PitchBlocks.js:1366 +#.TRANS: second means the note is one scale degree above current note +msgid "second" msgstr "" -#: js/MeterBlocks.js:874 -msgid "on every note do" +#: js/blocks/PitchBlocks.js:1407 +msgid "The Scalar transposition block will shift the pitches contained inside Note blocks up (or down) the scale." msgstr "" -#: js/MeterBlocks.js:882 -msgid "The On-every-note block lets you specify actions to take on every note." +#: js/blocks/PitchBlocks.js:1409 +msgid "In the example shown above, sol is shifted up to la." msgstr "" -#: js/MeterBlocks.js:928 -#: js/MeterBlocks.js:999 -#.TRANS: sets tempo by defining a beat and beats per minute -msgid "master beats per minute" +#: js/blocks/PitchBlocks.js:1416 +#.TRANS: adjust the amount of shift (up or down) of a pitch by musical scale (scalar) steps +msgid "scalar transpose" msgstr "" -#: js/MeterBlocks.js:952 -#: js/MeterBlocks.js:1078 -#: js/MeterBlocks.js:1135 -msgid "bpm" +#: js/blocks/PitchBlocks.js:1451 +msgid "The Accidental block is used to create sharps and flats" msgstr "" -#: js/MeterBlocks.js:952 -#: js/MeterBlocks.js:1078 -#: js/MeterBlocks.js:1135 -msgid "beat value" +#: js/blocks/PitchBlocks.js:1458 +#.TRANS: An accidental is a modification to a pitch, e.g., sharp or flat. +msgid "accidental override" msgstr "" -#: js/MeterBlocks.js:1024 -#: js/MeterBlocks.js:1167 -#: js/MeterBlocks.js:1241 -msgid "Beats per minute must be > 30." +#: js/blocks/PitchBlocks.js:1581 +msgid "The Hertz block (in combination with a Number block) will play a sound at the specified frequency." msgstr "" -#: js/MeterBlocks.js:1027 -#: js/MeterBlocks.js:1170 -#: js/MeterBlocks.js:1244 -msgid "Maximum beats per minute is 1000." +#: js/blocks/PitchBlocks.js:1671 +msgid "The Pitch Number block will play a pitch associated by its number, e.g. 0 for C and 7 for G." msgstr "" -#: js/MeterBlocks.js:1068 -msgid "The Beats per minute block sets the number of 1/4 notes per minute." +#: js/blocks/PitchBlocks.js:1703 +#: js/blocks/PitchBlocks.js:1745 +#.TRANS: a numeric mapping of the notes in an octave based on the musical mode +#.TRANS: a numeric mapping of the notes in an octave based on the musical mode +msgid "nth modal pitch" msgstr "" -#: js/MeterBlocks.js:1279 -#.TRANS: anacrusis -msgid "pickup" +#: js/blocks/PitchBlocks.js:1706 +msgid "n^th Modal Pitch takes the pattern of pitches in semitones for a mode and makes each point a degree of the mode," msgstr "" -#: js/MeterBlocks.js:1367 -msgid "number of beats" +#: js/blocks/PitchBlocks.js:1708 +msgid "starting from 1 and regardless of tonal framework (i.e. not always 8 notes in the octave)" msgstr "" -#: js/DictBlocks.js:77 -msgid "show dictionary" +#: js/blocks/PitchBlocks.js:1749 +msgid "N^th Modal Pitch takes a number as an input as the n^th degree for the given mode. 0 is the first position, 1 is the second, -1 is the note before the first etc." msgstr "" -#: js/DictBlocks.js:129 -msgid "The Dictionary block returns a dictionary." +#: js/blocks/PitchBlocks.js:1751 +msgid "The pitches change according to the mode specified without any need for respellings." msgstr "" -#: js/DictBlocks.js:197 -#: js/DictBlocks.js:339 -msgid "The Get-dict block returns a value in the dictionary for a specified key." +#: js/blocks/PitchBlocks.js:1790 +msgid "Scale Degree is a common convention in music. Scale Degree offers seven possible positions in the scale (1-7) and can be modified via accidentals." msgstr "" -#: js/DictBlocks.js:212 -#: js/DictBlocks.js:354 -#.TRANS: retrieve a value from the dictionary with a given key -msgid "get value" +#: js/blocks/PitchBlocks.js:1792 +msgid "Scale Degree 1 is always the first pitch in a given scale, regardless of octave." msgstr "" -#: js/DictBlocks.js:215 -#: js/DictBlocks.js:216 -#: js/DictBlocks.js:289 -#: js/DictBlocks.js:290 -#: js/DictBlocks.js:357 -#: js/DictBlocks.js:430 -#: js/DictBlocks.js:431 -msgid "key2" +#: js/blocks/PitchBlocks.js:1814 +#.TRANS: step some number of notes in current musical scale +msgid "scalar step" msgstr "" -#: js/DictBlocks.js:271 -#: js/DictBlocks.js:411 -msgid "The Set-dict block sets a value in the dictionary for a specified key." +#: js/blocks/PitchBlocks.js:1819 +msgid "The Scalar Step block (in combination with a Number block) will play the next pitch in a scale," msgstr "" -#: js/DictBlocks.js:286 -#: js/DictBlocks.js:427 -#.TRANS: set a value in the dictionary for a given key -msgid "set value" +#: js/blocks/PitchBlocks.js:1821 +msgid "eg if the last note played was sol, Scalar Step 1 will play la." msgstr "" -#: js/ExtrasBlocks.js:33 -msgid "fraction" +#: js/blocks/PitchBlocks.js:1857 +msgid "The Pitch block specifies the pitch name and octave of a note that together determine the frequency of the note." msgstr "" -#: js/ExtrasBlocks.js:36 -msgid "Convert a float to a fraction" +#: js/blocks/ProgramBlocks.js:33 +msgid "The Load-heap-from-app block loads the heap from a web page." msgstr "" -#: js/ExtrasBlocks.js:93 -msgid "save as ABC" +#: js/blocks/ProgramBlocks.js:44 +#.TRANS: load the heap contents from a URL +msgid "load heap from App" msgstr "" -#: js/ExtrasBlocks.js:96 -#: js/ExtrasBlocks.js:132 -#: js/ExtrasBlocks.js:168 -msgid "title" +#: js/blocks/ProgramBlocks.js:95 +msgid "Error parsing JSON data:" msgstr "" -#: js/ExtrasBlocks.js:129 -msgid "save as Lilypond" +#: js/blocks/ProgramBlocks.js:100 +msgid "404: Page not found" msgstr "" -#: js/ExtrasBlocks.js:165 -msgid "save as SVG" +#: js/blocks/ProgramBlocks.js:133 +msgid "The Save-heap-to-app block saves the heap to a web page." msgstr "" -#: js/ExtrasBlocks.js:216 -msgid "no background" +#: js/blocks/ProgramBlocks.js:144 +#.TRANS: save the heap contents to a URL +msgid "save heap to App" msgstr "" -#: js/ExtrasBlocks.js:219 -msgid "The No background block eliminates the background from the saved SVG output." +#: js/blocks/ProgramBlocks.js:189 +msgid "Cannot find a valid heap for" msgstr "" -#: js/ExtrasBlocks.js:247 -msgid "show blocks" -msgstr "Блокыг харуул" - -#: js/ExtrasBlocks.js:249 -msgid "The Show blocks block shows the blocks." +#: js/blocks/ProgramBlocks.js:206 +msgid "The Load-heap block loads the heap from a file." msgstr "" -#: js/ExtrasBlocks.js:274 -msgid "hide blocks" -msgstr "Блок нуу" - -#: js/ExtrasBlocks.js:276 -msgid "The Hide blocks block hides the blocks." +#: js/blocks/ProgramBlocks.js:217 +#.TRANS: load the heap from a file +msgid "load heap" msgstr "" -#: js/ExtrasBlocks.js:305 -#: js/ExtrasBlocks.js:335 -msgid "The Space block is used to add space between blocks." +#: js/blocks/ProgramBlocks.js:270 +msgid "The file you selected does not contain a valid heap." msgstr "" -#: js/ExtrasBlocks.js:373 -msgid "wait" -msgstr "хүлээ" - -#: js/ExtrasBlocks.js:376 -msgid "The Wait block pauses the program for a specified number of seconds." +#: js/blocks/ProgramBlocks.js:275 +msgid "The loadHeap block needs a loadFile block." msgstr "" -#: js/ExtrasBlocks.js:430 -#: plugins/facebook.rtp:30 -msgid "comment" -msgstr "тайлбар" +#: js/blocks/ProgramBlocks.js:291 +msgid "The Set-heap block loads the heap." +msgstr "" -#: js/ExtrasBlocks.js:466 -msgid "print" -msgstr "үзүүл" +#: js/blocks/ProgramBlocks.js:340 +msgid "The block you selected does not contain a valid heap." +msgstr "" -#: js/ExtrasBlocks.js:473 -msgid "The Print block displays text at the top of the screen." +#: js/blocks/ProgramBlocks.js:343 +msgid "The Set heap block needs a heap." msgstr "" -#: js/ExtrasBlocks.js:579 -msgid "display grid" +#: js/blocks/ProgramBlocks.js:360 +msgid "The Load-dictionary block loads a dictionary from a file." msgstr "" -#: js/ExtrasBlocks.js:584 -msgid "The Display Grid Block changes the grid type" +#: js/blocks/ProgramBlocks.js:372 +#.TRANS: load a dictionary from a file +msgid "load dictionary" msgstr "" -#: js/ExtrasBlocks.js:686 -#: js/ExtrasBlocks.js:705 -#: js/ExtrasBlocks.js:728 -#: js/ExtrasBlocks.js:751 -#: js/ExtrasBlocks.js:769 -#: js/ExtrasBlocks.js:788 -#: js/ExtrasBlocks.js:807 -#: js/ExtrasBlocks.js:826 -msgid "unknown" +#: js/blocks/ProgramBlocks.js:390 +#: js/blocks/ProgramBlocks.js:658 +#: js/blocks/ToneBlocks.js:1025 +msgid "file" msgstr "" -#: js/SensorsBlocks.js:36 -msgid "The Input block prompts for keyboard input." +#: js/blocks/ProgramBlocks.js:444 +msgid "The file you selected does not contain a valid dictionary." msgstr "" -#: js/SensorsBlocks.js:46 -msgid "input" +#: js/blocks/ProgramBlocks.js:449 +msgid "The load dictionary block needs a load file block." msgstr "" -#: js/SensorsBlocks.js:64 -msgid "Input a value" +#: js/blocks/ProgramBlocks.js:466 +msgid "The Set-dictionary block loads a dictionary." msgstr "" -#: js/SensorsBlocks.js:126 -msgid "input value" +#: js/blocks/ProgramBlocks.js:477 +#.TRANS: load a dictionary from a JSON +msgid "set dictionary" msgstr "" -#: js/SensorsBlocks.js:131 -msgid "The Input-value block stores the input." +#: js/blocks/ProgramBlocks.js:546 +msgid "The block you selected does not contain a valid dictionary." msgstr "" -#: js/SensorsBlocks.js:238 -msgid "loudness" +#: js/blocks/ProgramBlocks.js:550 +msgid "The set dictionary block needs a dictionary." msgstr "" -#: js/SensorsBlocks.js:245 -msgid "The Loudness block returns the volume detected by the microphone." +#: js/blocks/ProgramBlocks.js:567 +msgid "The Save-heap block saves the heap to a file." msgstr "" -#: js/SensorsBlocks.js:300 -msgid "click" +#: js/blocks/ProgramBlocks.js:578 +#.TRANS: save the heap to a file +msgid "save heap" msgstr "" -#: js/SensorsBlocks.js:306 -msgid "The Click block triggers an event if a mouse has been clicked." +#: js/blocks/ProgramBlocks.js:629 +msgid "The Save-dictionary block saves a dictionary to a file." msgstr "" -#: js/SensorsBlocks.js:313 -msgid "The Click block triggers an event if a turtle has been clicked." +#: js/blocks/ProgramBlocks.js:640 +#.TRANS: save a dictionary to a file +msgid "save dictionary" msgstr "" -#: js/SensorsBlocks.js:342 -msgid "cursor over" +#: js/blocks/ProgramBlocks.js:720 +msgid "The Open palette block opens a palette." msgstr "" -#: js/SensorsBlocks.js:387 -msgid "cursor out" +#: js/blocks/ProgramBlocks.js:727 +msgid "open palette" msgstr "" -#: js/SensorsBlocks.js:433 -msgid "cursor button down" +#: js/blocks/ProgramBlocks.js:785 +msgid "The Delete block block removes a block." msgstr "" -#: js/SensorsBlocks.js:477 -msgid "cursor button up" +#: js/blocks/ProgramBlocks.js:797 +#.TRANS: Move this block to the trash. +msgid "delete block" msgstr "" -#: js/SensorsBlocks.js:638 -msgid "The Get red block returns the red component of the pixel under the mouse." +#: js/blocks/ProgramBlocks.js:861 +msgid "The Move block block moves a block." msgstr "" -#: js/SensorsBlocks.js:644 -msgid "The Get red block returns the red component of the pixel under the turtle." +#: js/blocks/ProgramBlocks.js:869 +#.TRANS: Move the position of a block on the screen. +msgid "move block" msgstr "" -#: js/SensorsBlocks.js:685 -#: plugins/rodi.rtp:216 -msgid "pixel color" +#: js/blocks/ProgramBlocks.js:881 +#: js/blocks/ProgramBlocks.js:1048 +msgid "block number" msgstr "" -#: js/SensorsBlocks.js:690 -msgid "The Get pixel block returns the color of the pixel under the mouse." +#: js/blocks/ProgramBlocks.js:935 +#.TRANS: Run program beginning at this block. +msgid "run block" msgstr "" -#: js/SensorsBlocks.js:696 -msgid "The Get pixel block returns the color of the pixel under the turtle." +#: js/blocks/ProgramBlocks.js:1025 +msgid "The Dock block block connections two blocks." msgstr "" -#: js/SensorsBlocks.js:758 -msgid "time" -msgstr "цаг" +#: js/blocks/ProgramBlocks.js:1036 +#.TRANS: We can connect a block to another block. +msgid "connect blocks" +msgstr "" -#: js/SensorsBlocks.js:804 -msgid "cursor y" +#: js/blocks/ProgramBlocks.js:1048 +msgid "target block" msgstr "" -#: js/SensorsBlocks.js:809 -msgid "The Cursor Y block returns the vertical position of the mouse." +#: js/blocks/ProgramBlocks.js:1048 +msgid "connection number" msgstr "" -#: js/SensorsBlocks.js:845 -msgid "cursor x" +#: js/blocks/ProgramBlocks.js:1140 +msgid "The Make block block creates a new block." msgstr "" -#: js/SensorsBlocks.js:850 -msgid "The Cursor X block returns the horizontal position of the mouse." +#: js/blocks/ProgramBlocks.js:1152 +#.TRANS: Create a new block +msgid "make block" msgstr "" -#: js/SensorsBlocks.js:886 -msgid "mouse button" +#: js/blocks/ProgramBlocks.js:1285 +msgid "Cannot find block" msgstr "" -#: js/SensorsBlocks.js:888 -msgid "The Mouse-button block returns True if the mouse button is pressed." +#: js/blocks/ProgramBlocks.js:1304 +#: js/blocks/ProgramBlocks.js:1313 +msgid "Warning: block argument type mismatch" msgstr "" -#: js/SensorsBlocks.js:934 -msgid "to ASCII" +#: js/blocks/ProgramBlocks.js:1347 +msgid "The Open project block is used to open a project from a web page." msgstr "" -#: js/SensorsBlocks.js:938 -msgid "The To ASCII block converts numbers to letters." +#: js/blocks/ProgramBlocks.js:1357 +msgid "open project" msgstr "" -#: js/SensorsBlocks.js:1005 -msgid "The Keyboard block returns computer keyboard input." +#: js/blocks/ProgramBlocks.js:1410 +msgid "Please enter a valid URL." msgstr "" -#: js/IntervalsActions.js:216 -msgid "Adding missing pitch number 0." +#: js/blocks/ToneBlocks.js:34 +msgid "oscillator" msgstr "" -#: js/IntervalsActions.js:224 -msgid "Ignoring pitch numbers less than zero or greater than eleven." +#: js/blocks/ToneBlocks.js:42 +#: js/blocks/WidgetBlocks.js:179 +#: js/widgets/timbre.js:1558 +#: js/widgets/timbre.js:1808 +#.TRANS: there are different types (sine, triangle, square...) of oscillators. +#.TRANS: type of filter, e.g., lowpass, highpass, etc. +msgid "type" msgstr "" -#: js/IntervalsActions.js:230 -msgid "Ignoring duplicate pitch numbers." +#: js/blocks/ToneBlocks.js:44 +#: js/widgets/timbre.js:1562 +#.TRANS: Partials refers to the number of sine waves combined into the sound. +msgid "partials" msgstr "" -#: js/PitchActions.js:88 -msgid "The Scalar Step Block must be used inside of a Note Block." +#: js/blocks/ToneBlocks.js:76 +msgid "You are adding multiple oscillator blocks." msgstr "" -#: js/PitchActions.js:107 -msgid "The Scalar Step Block must be preceded by a Pitch Block." +#: js/blocks/ToneBlocks.js:144 +#: js/widgets/timbre.js:1225 +#.TRANS: a duo synthesizer combines a synth with a sequencer +msgid "duo synth" msgstr "" -#: js/DrumActions.js:231 -msgid "Noise Block: Did you mean to use a Note block?" +#: js/blocks/ToneBlocks.js:149 +msgid "The Duo synth block is a duo-frequency modulator used to define a timbre." msgstr "" -#: js/MeterActions.js:101 -#: js/MeterActions.js:139 -msgid "beats per minute must be greater than" +#: js/blocks/ToneBlocks.js:157 +#: js/widgets/timbre.js:1476 +msgid "vibrato rate" msgstr "" -#: js/MeterActions.js:111 -#: js/MeterActions.js:149 -msgid "maximum" +#: js/blocks/ToneBlocks.js:157 +msgid "vibrato intensity" msgstr "" -#: js/MeterActions.js:117 -#: js/MeterActions.js:155 -msgid "beats per minute is" +#: js/blocks/ToneBlocks.js:185 +#: js/widgets/timbre.js:1221 +#.TRANS: AM (amplitude modulation) synthesizer +msgid "AM synth" msgstr "" -#: js/ToneActions.js:134 -msgid "Vibrato intensity must be between 1 and 100." +#: js/blocks/ToneBlocks.js:189 +msgid "The AM synth block is an amplitude modulator used to define a timbre." msgstr "" -#: js/ToneActions.js:139 -msgid "Vibrato rate must be greater than 0." +#: js/blocks/ToneBlocks.js:224 +#: js/widgets/timbre.js:1223 +#.TRANS: FM (frequency modulation) synthesizer +msgid "FM synth" msgstr "" -#: js/ToneActions.js:192 -#: js/ToneActions.js:265 -#.TRANS: Depth is the intesity of the tremolo or chorus effect. -msgid "Depth is out of range." +#: js/blocks/ToneBlocks.js:228 +msgid "The FM synth block is a frequency modulator used to define a timbre." msgstr "" -#: js/ToneActions.js:301 -msgid "Distortion must be from 0 to 100." +#: js/blocks/ToneBlocks.js:262 +msgid "partial" msgstr "" -#: js/ToneActions.js:332 -#.TRANS: partials components in a harmonic series -msgid "Partial must be greater than or equal to 0." +#: js/blocks/ToneBlocks.js:265 +msgid "The Partial block is used to specify a weight for a specific partial harmonic." msgstr "" -#: js/ToneActions.js:378 -#: js/ToneActions.js:417 -#: js/ToneActions.js:456 -#: js/timbre.js:782 -msgid "Unable to use synth due to existing oscillator" +#: js/blocks/ToneBlocks.js:284 +#.TRANS: partials are weighted components in a harmonic series +msgid "Partial weight must be between 0 and 1." msgstr "" -#: js/ToneActions.js:388 -#: js/ToneActions.js:427 -msgid "The input cannot be negative." +#: js/blocks/ToneBlocks.js:297 +#.TRANS: partials are weighted components in a harmonic series +msgid "Partial block should be used inside of a Weighted-partials block." msgstr "" -#: js/DictActions.js:75 -#: js/DictActions.js:153 -#: js/DictActions.js:188 -msgid "font" +#: js/blocks/ToneBlocks.js:325 +#.TRANS: partials are weighted components in a harmonic series +msgid "weighted partials" msgstr "" -#: js/musicutils.js:363 -#: js/musicutils.js:471 -#: js/pitchdrummatrix.js:151 -#: js/musickeyboard.js:2563 -msgid "rest" +#: js/blocks/ToneBlocks.js:383 +msgid "The Harmonic block will add harmonics to the contained notes." msgstr "" -#: js/musicutils.js:565 -#.TRANS: ordinal number. Please keep exactly one space between each number. -msgid "1st 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th" +#: js/blocks/ToneBlocks.js:390 +#.TRANS: A harmonic is an overtone. +msgid "harmonic" msgstr "" -#: js/musicutils.js:629 -#: js/musicutils.js:812 -#: js/musicutils.js:911 -#.TRANS: augmented is a music term related to intervals -msgid "augmented" +#: js/blocks/ToneBlocks.js:431 +msgid "The Distortion block adds distortion to the pitch." msgstr "" -#: js/musicutils.js:631 -#: js/musicutils.js:813 -#: js/musicutils.js:910 -#.TRANS: diminished is a music term related to intervals and mode -msgid "diminished" +#: js/blocks/ToneBlocks.js:438 +#: js/widgets/timbre.js:2100 +#.TRANS: distortion is an alteration in the sound +msgid "distortion" msgstr "" -#: js/musicutils.js:639 -#.TRANS: twelve semi-tone scale for music -msgid "chromatic" +#: js/blocks/ToneBlocks.js:487 +msgid "The Tremolo block adds a wavering effect." msgstr "" -#: js/musicutils.js:640 -msgid "algerian" +#: js/blocks/ToneBlocks.js:495 +#: js/widgets/timbre.js:2092 +#.TRANS: a wavering effect in a musical tone +msgid "tremolo" msgstr "" -#: js/musicutils.js:641 -msgid "spanish" +#: js/blocks/ToneBlocks.js:500 +#: js/blocks/ToneBlocks.js:569 +#: js/blocks/ToneBlocks.js:630 +#: js/blocks/ToneBlocks.js:689 +#: js/widgets/timbre.js:2134 +#: js/widgets/timbre.js:2222 +#: js/widgets/timbre.js:2317 +#: js/widgets/timbre.js:2419 +#.TRANS: rate at which tremolo wavers +msgid "rate" msgstr "" -#: js/musicutils.js:643 -#.TRANS: modal scale in music -msgid "octatonic" +#: js/blocks/ToneBlocks.js:502 +#: js/blocks/ToneBlocks.js:630 +#: js/widgets/timbre.js:2137 +#: js/widgets/timbre.js:2328 +#.TRANS: amplitude of tremolo waver +msgid "depth" msgstr "" -#: js/musicutils.js:645 -#.TRANS: harmonic major scale in music -msgid "harmonic major" +#: js/blocks/ToneBlocks.js:559 +msgid "The Phaser block adds a sweeping sound." msgstr "" -#: js/musicutils.js:647 -#.TRANS: natural minor scales in music -msgid "natural minor" +#: js/blocks/ToneBlocks.js:566 +#: js/widgets/timbre.js:2098 +#.TRANS: alter the phase of the sound +msgid "phaser" msgstr "" -#: js/musicutils.js:649 -#.TRANS: harmonic minor scale in music -msgid "harmonic minor" +#: js/blocks/ToneBlocks.js:569 +#: js/turtleactions/IntervalsActions.js:114 +#: js/widgets/timbre.js:2422 +msgid "octaves" msgstr "" -#: js/musicutils.js:651 -#.TRANS: melodic minor scale in music -msgid "melodic minor" +#: js/blocks/ToneBlocks.js:569 +#: js/widgets/timbre.js:2425 +msgid "base frequency" msgstr "" -#: js/musicutils.js:655 -#.TRANS: modal scale for music -msgid "dorian" +#: js/blocks/ToneBlocks.js:619 +msgid "The Chorus block adds a chorus effect." msgstr "" -#: js/musicutils.js:657 -#.TRANS: modal scale for music -msgid "phrygian" +#: js/blocks/ToneBlocks.js:627 +#: js/widgets/timbre.js:2096 +#.TRANS: musical effect to simulate a choral sound +msgid "chorus" msgstr "" -#: js/musicutils.js:659 -#.TRANS: modal scale for music -msgid "lydian" +#: js/blocks/ToneBlocks.js:630 +msgid "delay" msgstr "" -#: js/musicutils.js:661 -#.TRANS: modal scale for music -msgid "mixolydian" +#: js/blocks/ToneBlocks.js:678 +msgid "The Vibrato block adds a rapid, slight variation in pitch." msgstr "" -#: js/musicutils.js:665 -#.TRANS: modal scale for music -msgid "locrian" +#: js/blocks/ToneBlocks.js:686 +#: js/widgets/timbre.js:2094 +#.TRANS: a rapid, slight variation in pitch +msgid "vibrato" msgstr "" -#: js/musicutils.js:667 -#.TRANS: minor jazz scale for music -msgid "jazz minor" +#: js/blocks/ToneBlocks.js:689 +#: js/widgets/timbre.js:2221 +msgid "intensity" msgstr "" -#: js/musicutils.js:669 -#.TRANS: bebop scale for music -msgid "bebop" +#: js/blocks/ToneBlocks.js:733 +#.TRANS: select synthesizer +msgid "set synth" msgstr "" -#: js/musicutils.js:670 -msgid "arabic" +#: js/blocks/ToneBlocks.js:804 +msgid "synth name" msgstr "" -#: js/musicutils.js:671 -msgid "byzantine" +#: js/blocks/ToneBlocks.js:842 +msgid "set default instrument" msgstr "" -#: js/musicutils.js:673 -#.TRANS: musical scale for music by Verdi -msgid "enigmatic" +#: js/blocks/ToneBlocks.js:895 +#: js/blocks/ToneBlocks.js:943 +#.TRANS: set the characteristics of a custom instrument +msgid "set instrument" msgstr "" -#: js/musicutils.js:674 -msgid "ethiopian" +#: js/blocks/ToneBlocks.js:898 +#: js/blocks/ToneBlocks.js:926 +#: js/blocks/ToneBlocks.js:932 +msgid "The Set instrument block selects a voice for the synthesizer," msgstr "" -#: js/musicutils.js:676 -#.TRANS: Ethiopic scale for music -msgid "geez" +#: js/blocks/ToneBlocks.js:900 +#: js/blocks/ToneBlocks.js:934 +msgid "eg guitar piano violin or cello." msgstr "" -#: js/musicutils.js:677 -msgid "hindu" +#: js/blocks/ToneBlocks.js:1015 +msgid "Import a sound file to use as an instrument and set its pitch center." msgstr "" -#: js/musicutils.js:678 -msgid "hungarian" +#: js/blocks/ToneBlocks.js:1110 +msgid "Upload a sound file to connect with the sample block." msgstr "" -#: js/musicutils.js:680 -#.TRANS: minor Romanian scale for music -msgid "romanian minor" +#: js/blocks/VolumeBlocks.js:35 +msgid "synth volume" msgstr "" -#: js/musicutils.js:681 -msgid "spanish gypsy" +#: js/blocks/VolumeBlocks.js:39 +msgid "The Synth volume block returns the current volume of the current synthesizer." msgstr "" -#: js/musicutils.js:683 -#.TRANS: musical scale for Mid-Eastern music -msgid "maqam" +#: js/blocks/VolumeBlocks.js:105 +msgid "master volume" msgstr "" -#: js/musicutils.js:685 -#.TRANS: minor blues scale for music -msgid "minor blues" +#: js/blocks/VolumeBlocks.js:109 +msgid "The Master volume block returns the master volume." msgstr "" -#: js/musicutils.js:687 -#.TRANS: major blues scale for music -msgid "major blues" +#: js/blocks/VolumeBlocks.js:355 +#: js/blocks/VolumeBlocks.js:524 +msgid "set synth volume" msgstr "" -#: js/musicutils.js:688 -msgid "whole tone" +#: js/blocks/VolumeBlocks.js:362 +#: js/blocks/VolumeBlocks.js:545 +msgid "synth" msgstr "" -#: js/musicutils.js:690 -#.TRANS: pentatonic is a general term that means "five note scale". This scale is typically known as "minor pentatonic" -msgid "minor pentatonic" +#: js/blocks/VolumeBlocks.js:403 +#: js/blocks/VolumeBlocks.js:577 +#: js/blocks/VolumeBlocks.js:740 +#: js/turtleactions/VolumeActions.js:173 +msgid "Setting volume to 0." msgstr "" -#: js/musicutils.js:692 -#.TRANS: pentatonic is a general term that means "five note scale". This scale is typically known as "major pentatonic" -msgid "major pentatonic" +#: js/blocks/VolumeBlocks.js:440 +msgid "Synth not found" msgstr "" -#: js/musicutils.js:693 -msgid "chinese" +#: js/blocks/VolumeBlocks.js:494 +msgid "set drum volume" msgstr "" -#: js/musicutils.js:694 -msgid "egyptian" +#: js/blocks/VolumeBlocks.js:530 +msgid "The Set synth volume block will change the volume of a particular synth," msgstr "" -#: js/musicutils.js:696 -#.TRANS: https://en.wikipedia.org/wiki/Hirajoshi_scale NOTE: There are three different versions of this scale -msgid "hirajoshi" +#: js/blocks/VolumeBlocks.js:532 +msgid "eg guitar violin snare drum etc." msgstr "" -#: js/musicutils.js:697 -msgid "Japan" +#: js/blocks/VolumeBlocks.js:534 +msgid "The default volume is 50." msgstr "" -#: js/musicutils.js:699 -#.TRANS: https://en.wikipedia.org/wiki/In_scale and https://en.wikipedia.org/wiki/Sakura_Sakura -msgid "in" +#: js/blocks/VolumeBlocks.js:536 +msgid "The range is 0 for silence to 100 for full volume." msgstr "" -#: js/musicutils.js:701 -#.TRANS: https://en.wikipedia.org/wiki/Miny%C5%8D_scale -msgid "minyo" +#: js/blocks/VolumeBlocks.js:597 +msgid "set panning" msgstr "" -#: js/musicutils.js:703 -#.TRANS: Italian mathematician -msgid "fibonacci" +#: js/blocks/VolumeBlocks.js:603 +msgid "The Set Panning block sets the panning for all synthesizers." msgstr "" -#: js/musicutils.js:708 -#: js/musicutils.js:1106 -#.TRANS: lowpass filter -msgid "lowpass" +#: js/blocks/VolumeBlocks.js:625 +msgid "Warning: Sound is coming out from only the left or right side." msgstr "" -#: js/musicutils.js:710 -#: js/musicutils.js:1107 -#.TRANS: bandpass filter -msgid "bandpass" +#: js/blocks/VolumeBlocks.js:647 +#: js/blocks/VolumeBlocks.js:695 +msgid "set master volume" msgstr "" -#: js/musicutils.js:712 -#: js/musicutils.js:1108 -#.TRANS: high-shelf filter -msgid "highshelf" +#: js/blocks/VolumeBlocks.js:653 +msgid "The Set master volume block sets the volume for all synthesizers." msgstr "" -#: js/musicutils.js:714 -#: js/musicutils.js:1109 -#.TRANS: low-shelf filter -msgid "lowshelf" +#: js/blocks/VolumeBlocks.js:784 +msgid "The Set relative volume block changes the volume of the contained notes." msgstr "" -#: js/musicutils.js:716 -#: js/musicutils.js:1110 -#.TRANS: notch-shelf filter -msgid "notch" +#: js/blocks/VolumeBlocks.js:791 +msgid "set relative volume" msgstr "" -#: js/musicutils.js:718 -#: js/musicutils.js:1111 -#.TRANS: all-pass filter -msgid "allpass" +#: js/blocks/VolumeBlocks.js:857 +msgid "decrescendo" msgstr "" -#: js/musicutils.js:720 -#: js/musicutils.js:1112 -#.TRANS: peaking filter -msgid "peaking" +#: js/blocks/VolumeBlocks.js:921 +msgid "crescendo" msgstr "" -#: js/musicutils.js:731 -#: js/synthutils.js:58 -#.TRANS: musical instrument -msgid "violin" +#: js/blocks/WidgetBlocks.js:81 +#.TRANS: sound envelope (ADSR) +msgid "envelope" msgstr "" -#: js/musicutils.js:732 -#: js/synthutils.js:60 -#.TRANS: viola musical instrument -msgid "viola" +#: js/blocks/WidgetBlocks.js:89 +#.TRANS: Attack time is the time taken for initial run-up of level from nil to peak, beginning when the key is first pressed. +msgid "attack" msgstr "" -#: js/musicutils.js:733 -#: js/synthutils.js:98 -#.TRANS: xylophone musical instrument -msgid "xylophone" +#: js/blocks/WidgetBlocks.js:91 +#.TRANS: Decay time is the time taken for the subsequent run down from the attack level to the designated sustain level. +msgid "decay" msgstr "" -#: js/musicutils.js:734 -#: js/synthutils.js:120 -#.TRANS: vibraphone musical instrument -msgid "vibraphone" +#: js/blocks/WidgetBlocks.js:93 +#.TRANS: Sustain level is the level during the main sequence of the sound's duration, until the key is released. +msgid "sustain" msgstr "" -#: js/musicutils.js:735 -#: js/synthutils.js:62 -#.TRANS: musical instrument -msgid "cello" +#: js/blocks/WidgetBlocks.js:95 +#.TRANS: Release time is the time taken for the level to decay from the sustain level to zero after the key is released. +msgid "release" msgstr "" -#: js/musicutils.js:737 -#: js/synthutils.js:66 -#.TRANS: viola musical instrument -msgid "double bass" +#: js/blocks/WidgetBlocks.js:113 +msgid "Attack value should be from 0 to 100." msgstr "" -#: js/musicutils.js:738 -#: js/synthutils.js:68 -#: js/rhythmruler.js:2119 -#.TRANS: musical instrument -msgid "guitar" +#: js/blocks/WidgetBlocks.js:116 +msgid "Decay value should be from 0 to 100." msgstr "" -#: js/musicutils.js:739 -#: js/synthutils.js:70 -#.TRANS: musical instrument -msgid "acoustic guitar" +#: js/blocks/WidgetBlocks.js:119 +msgid "Sustain value should be from 0 to 100." msgstr "" -#: js/musicutils.js:740 -#: js/synthutils.js:72 -#.TRANS: musical instrument -msgid "flute" +#: js/blocks/WidgetBlocks.js:122 +msgid "Release value should be from 0-100." msgstr "" -#: js/musicutils.js:741 -#: js/synthutils.js:74 -#.TRANS: musical instrument -msgid "clarinet" +#: js/blocks/WidgetBlocks.js:140 +msgid "You are adding multiple envelope blocks." msgstr "" -#: js/musicutils.js:742 -#: js/synthutils.js:76 -#.TRANS: musical instrument -msgid "saxophone" +#: js/blocks/WidgetBlocks.js:171 +#.TRANS: a filter removes some unwanted components from a signal +msgid "filter" msgstr "" -#: js/musicutils.js:743 -#: js/synthutils.js:78 -#.TRANS: musical instrument -msgid "tuba" +#: js/blocks/WidgetBlocks.js:181 +#: js/widgets/timbre.js:1818 +#.TRANS: rolloff is the steepness of a change in frequency. +msgid "rolloff" msgstr "" -#: js/musicutils.js:744 -#: js/synthutils.js:80 -#.TRANS: musical instrument -msgid "trumpet" +#: js/blocks/WidgetBlocks.js:213 +#.TRANS: rolloff is the steepness of a change in frequency. +msgid "Rolloff value should be either -12, -24, -48, or -96 decibels/octave." msgstr "" -#: js/musicutils.js:745 -#: js/synthutils.js:82 -#.TRANS: musical instrument -msgid "oboe" +#: js/blocks/WidgetBlocks.js:252 +msgid "The Temperament tool is used to define custom tuning." msgstr "" -#: js/musicutils.js:746 -#: js/synthutils.js:84 -#.TRANS: musical instrument -msgid "trombone" +#: js/blocks/WidgetBlocks.js:332 +#: js/blocks/WidgetBlocks.js:1573 +#: js/widgets/sampler.js:547 +msgid "Upload a sample and adjust its pitch center." msgstr "" -#: js/musicutils.js:747 -#: js/synthutils.js:100 -#.TRANS: polytone synthesizer -msgid "electronic synth" +#: js/blocks/WidgetBlocks.js:339 +#.TRANS: the speed at music is should be played. +msgid "sampler" msgstr "" -#: js/musicutils.js:748 -#: js/synthutils.js:102 -#.TRANS: simple monotone synthesizer -msgid "simple 1" +#: js/blocks/WidgetBlocks.js:517 +msgid "The Meter block opens a tool to select strong beats for the meter." msgstr "" -#: js/musicutils.js:749 -msgid "simple 2" +#: js/blocks/WidgetBlocks.js:573 +msgid "The oscilloscope block opens a tool to visualize waveforms." msgstr "" -#: js/musicutils.js:750 -msgid "simple 3" +#: js/blocks/WidgetBlocks.js:578 +msgid "oscilloscope" msgstr "" -#: js/musicutils.js:751 -msgid "simple 4" +#: js/blocks/WidgetBlocks.js:645 +msgid "The Custom mode block opens a tool to explore musical mode (the spacing of the notes in a scale)." msgstr "" -#: js/musicutils.js:753 -#: js/synthutils.js:49 -#.TRANS: brown noise synthesizer -msgid "brown noise" +#: js/blocks/WidgetBlocks.js:651 +#.TRANS: musical mode is the pattern of half-steps in an octave, e.g., Major or Minor modes +msgid "custom mode" msgstr "" -#: js/musicutils.js:754 -#: js/synthutils.js:51 -#.TRANS: pink noise synthesizer -msgid "pink noise" +#: js/blocks/WidgetBlocks.js:700 +msgid "The Tempo block opens a metronome to visualize the beat." msgstr "" -#: js/musicutils.js:756 -#: js/synthutils.js:127 -#: js/rhythmruler.js:1670 -#: js/rhythmruler.js:1928 -#.TRANS: musical instrument -msgid "snare drum" +#: js/blocks/WidgetBlocks.js:762 +msgid "The Arpeggio Widget is used to compose chord sequences." msgstr "" -#: js/musicutils.js:757 -#: js/synthutils.js:129 -#.TRANS: musical instrument -msgid "kick drum" +#: js/blocks/WidgetBlocks.js:837 +msgid "The Pitch drum matrix is used to map pitches to drum sounds." msgstr "" -#: js/musicutils.js:758 -#: js/synthutils.js:131 -#.TRANS: musical instrument -msgid "tom tom" +#: js/blocks/WidgetBlocks.js:842 +#.TRANS: makes a mapping between pitches and drum sounds +msgid "pitch-drum mapper" msgstr "" -#: js/musicutils.js:759 -#: js/synthutils.js:133 -#.TRANS: musical instrument -msgid "floor tom" +#: js/blocks/WidgetBlocks.js:891 +msgid "You must have at least one pitch block and one drum block in the matrix." msgstr "" -#: js/musicutils.js:760 -#: js/synthutils.js:135 -#.TRANS: musical instrument -msgid "bass drum" +#: js/blocks/WidgetBlocks.js:920 +msgid "The Pitch slider tool to is used to generate pitches at selected frequencies." msgstr "" -#: js/musicutils.js:761 -#: js/synthutils.js:137 -#.TRANS: a drum made from an inverted cup -msgid "cup drum" +#: js/blocks/WidgetBlocks.js:925 +#.TRANS: widget to generate pitches using a slider +msgid "pitch slider" msgstr "" -#: js/musicutils.js:762 -#: js/synthutils.js:139 -#.TRANS: musical instrument -msgid "darbuka drum" +#: js/blocks/WidgetBlocks.js:977 +msgid "chromatic keyboard" msgstr "" -#: js/musicutils.js:763 -#: js/synthutils.js:143 -#.TRANS: musical instrument -msgid "hi hat" +#: js/blocks/WidgetBlocks.js:1011 +#: js/blocks/WidgetBlocks.js:1077 +#.TRANS: widget to generate pitches using a slider +msgid "music keyboard" msgstr "" -#: js/musicutils.js:764 -#: js/synthutils.js:145 -#.TRANS: a small metal bell -msgid "ride bell" +#: js/blocks/WidgetBlocks.js:1062 +#: js/blocks/WidgetBlocks.js:1069 +msgid "The Music keyboard block opens a piano keyboard that can be used to create notes." msgstr "" -#: js/musicutils.js:765 -#: js/synthutils.js:147 -#.TRANS: musical instrument -msgid "cow bell" +#: js/blocks/WidgetBlocks.js:1128 +msgid "The Pitch staircase tool to is used to generate pitches from a given ratio." msgstr "" -#: js/musicutils.js:766 -msgid "japanese drum" +#: js/blocks/WidgetBlocks.js:1135 +#.TRANS: generate a progressive sequence of pitches +msgid "pitch staircase" msgstr "" -#: js/musicutils.js:767 -#: js/synthutils.js:153 -#.TRANS: musical instrument -msgid "japanese bell" +#: js/blocks/WidgetBlocks.js:1222 +msgid "The Rhythm Maker block opens a tool to create drum machines." msgstr "" -#: js/musicutils.js:768 -#: js/synthutils.js:149 -#.TRANS: musical instrument -msgid "triangle bell" +#: js/blocks/WidgetBlocks.js:1291 +msgid "G major scale" msgstr "" -#: js/musicutils.js:769 -#: js/synthutils.js:151 -#.TRANS: musical instrument -msgid "finger cymbals" +#: js/blocks/WidgetBlocks.js:1326 +msgid "C major scale" msgstr "" -#: js/musicutils.js:770 -#: js/synthutils.js:155 -#.TRANS: a musically tuned set of bells -msgid "chime" +#: js/blocks/WidgetBlocks.js:1366 +msgid "The Phrase Maker block opens a tool to create musical phrases." msgstr "" -#: js/musicutils.js:771 -#: js/synthutils.js:157 -#.TRANS: a musical instrument -msgid "gong" +#: js/blocks/WidgetBlocks.js:1373 +#.TRANS: assigns pitch to a sequence of beats to generate a melody +msgid "phrase maker" msgstr "" -#: js/musicutils.js:772 -#: js/synthutils.js:159 -#.TRANS: sound effect -msgid "clang" +#: js/blocks/WidgetBlocks.js:1444 +msgid "You must have at least one pitch block and one rhythm block in the matrix." msgstr "" -#: js/musicutils.js:773 -#: js/synthutils.js:161 -#.TRANS: sound effect -msgid "crash" +#: js/blocks/WidgetBlocks.js:1503 +msgid "The Status block opens a tool for inspecting the status of Music Blocks as it is running." msgstr "" -#: js/musicutils.js:774 -#: js/synthutils.js:163 -#.TRANS: sound effect -msgid "bottle" +#: js/blocks/WidgetBlocks.js:1580 +#.TRANS: AI-generated music +msgid "aimusic" msgstr "" -#: js/musicutils.js:775 -#: js/synthutils.js:165 -#.TRANS: sound effect -msgid "clap" +#: js/turtleactions/MeterActions.js:101 +#: js/turtleactions/MeterActions.js:139 +msgid "beats per minute must be greater than" msgstr "" -#: js/musicutils.js:776 -#: js/synthutils.js:167 -#.TRANS: sound effect -msgid "slap" +#: js/turtleactions/MeterActions.js:111 +#: js/turtleactions/MeterActions.js:149 +msgid "maximum" msgstr "" -#: js/musicutils.js:777 -#: js/synthutils.js:169 -#.TRANS: sound effect -msgid "splash" +#: js/turtleactions/MeterActions.js:117 +#: js/turtleactions/MeterActions.js:155 +msgid "beats per minute is" msgstr "" -#: js/musicutils.js:778 -#: js/synthutils.js:171 -#.TRANS: sound effect -msgid "bubbles" +#: js/turtleactions/DictActions.js:75 +#: js/turtleactions/DictActions.js:142 +#: js/turtleactions/DictActions.js:172 +msgid "font" msgstr "" -#: js/musicutils.js:779 -#: js/synthutils.js:173 -#.TRANS: sound effect -msgid "raindrop" +#: js/turtleactions/DictActions.js:255 +msgid "Dictionary with this name does not exist" msgstr "" -#: js/musicutils.js:780 -#: js/synthutils.js:175 -#.TRANS: animal sound effect -msgid "cat" +#: js/turtleactions/DictActions.js:259 +msgid "Key with this name does not exist in " msgstr "" -#: js/musicutils.js:781 -#: js/synthutils.js:177 -#.TRANS: animal sound effect -msgid "cricket" +#: js/turtleactions/DrumActions.js:227 +msgid "Noise Block: Did you mean to use a Note block?" msgstr "" -#: js/musicutils.js:782 -#: js/synthutils.js:179 -#.TRANS: animal sound effect -msgid "dog" +#: js/turtleactions/IntervalsActions.js:113 +msgid "one" msgstr "" -#: js/musicutils.js:784 -#: js/synthutils.js:86 -#.TRANS: musical instrument -msgid "banjo" +#: js/turtleactions/IntervalsActions.js:113 +msgid "two" msgstr "" -#: js/musicutils.js:785 -#: js/synthutils.js:88 -#.TRANS: musical instrument -msgid "koto" +#: js/turtleactions/IntervalsActions.js:113 +msgid "three" msgstr "" -#: js/musicutils.js:786 -#: js/synthutils.js:90 -#.TRANS: musical instrument -msgid "dulcimer" +#: js/turtleactions/IntervalsActions.js:113 +msgid "four" msgstr "" -#: js/musicutils.js:787 -#: js/synthutils.js:92 -#.TRANS: musical instrument -msgid "electric guitar" +#: js/turtleactions/IntervalsActions.js:113 +msgid "five" msgstr "" -#: js/musicutils.js:788 -#: js/synthutils.js:94 -#.TRANS: musical instrument -msgid "bassoon" +#: js/turtleactions/IntervalsActions.js:113 +msgid "six" msgstr "" -#: js/musicutils.js:789 -#: js/synthutils.js:96 -#.TRANS: musical instrument -msgid "celeste" +#: js/turtleactions/IntervalsActions.js:113 +msgid "seven" msgstr "" -#: js/musicutils.js:791 -#: js/musicutils.js:1123 -#: js/musicutils.js:1131 -#: js/temperament.js:650 -#.TRANS: musical temperament -msgid "equal" +#: js/turtleactions/IntervalsActions.js:113 +msgid "eight" msgstr "" -#: js/musicutils.js:793 -#: js/musicutils.js:1125 -#: js/musicutils.js:1133 -#.TRANS: musical temperament -msgid "Pythagorean" +#: js/turtleactions/IntervalsActions.js:113 +msgid "nine" msgstr "" -#: js/musicutils.js:795 -#: js/musicutils.js:1124 -#: js/musicutils.js:1132 -#.TRANS: musical temperament -msgid "just intonation" +#: js/turtleactions/IntervalsActions.js:119 +msgid "a" msgstr "" -#: js/musicutils.js:797 -#: js/musicutils.js:1126 -#: js/musicutils.js:1127 -#: js/musicutils.js:1134 -#: js/musicutils.js:1135 -#.TRANS: musical temperament -msgid "meantone" +#: js/turtleactions/IntervalsActions.js:120 +msgid "below" msgstr "" -#: js/musicutils.js:814 -msgid "major 7th" +#: js/turtleactions/IntervalsActions.js:124 +msgid "above" msgstr "" -#: js/musicutils.js:815 -msgid "minor 7th" +#: js/turtleactions/IntervalsActions.js:131 +msgid "plus" msgstr "" -#: js/musicutils.js:816 -msgid "dominant 7th" +#: js/turtleactions/IntervalsActions.js:139 +msgid " below" msgstr "" -#: js/musicutils.js:817 -msgid "minor-major 7th" +#: js/turtleactions/IntervalsActions.js:257 +msgid "Adding missing pitch number 0." msgstr "" -#: js/musicutils.js:818 -msgid "fully-diminished 7th" +#: js/turtleactions/IntervalsActions.js:265 +msgid "Ignoring pitch numbers less than zero or greater than eleven." msgstr "" -#: js/musicutils.js:819 -msgid "half-diminished 7th" +#: js/turtleactions/IntervalsActions.js:271 +msgid "Ignoring duplicate pitch numbers." msgstr "" -#: js/musicutils.js:4379 -#: js/musicutils.js:4416 -msgid "current" +#: js/turtleactions/ToneActions.js:134 +msgid "Vibrato intensity must be between 1 and 100." msgstr "" -#: js/musicutils.js:4382 -#: js/musicutils.js:4407 -msgid "next" +#: js/turtleactions/ToneActions.js:139 +msgid "Vibrato rate must be greater than 0." msgstr "" -#: js/musicutils.js:4385 -#: js/musicutils.js:4412 -msgid "previous" +#: js/turtleactions/ToneActions.js:192 +#: js/turtleactions/ToneActions.js:265 +#.TRANS: Depth is the intesity of the tremolo or chorus effect. +msgid "Depth is out of range." msgstr "" -#: js/synthutils.js:104 -#.TRANS: simple monotone synthesizer -msgid "simple-2" +#: js/turtleactions/ToneActions.js:301 +msgid "Distortion must be from 0 to 100." msgstr "" -#: js/synthutils.js:106 -#.TRANS: simple monotone synthesizer -msgid "simple-3" +#: js/turtleactions/ToneActions.js:332 +#.TRANS: partials components in a harmonic series +msgid "Partial must be greater than or equal to 0." msgstr "" -#: js/synthutils.js:108 -#.TRANS: simple monotone synthesizer -msgid "simple-4" +#: js/turtleactions/ToneActions.js:378 +#: js/turtleactions/ToneActions.js:417 +#: js/turtleactions/ToneActions.js:456 +#: js/widgets/timbre.js:782 +msgid "Unable to use synth due to existing oscillator" msgstr "" -#: js/synthutils.js:141 -#.TRANS: musical instrument -msgid "taiko" +#: js/turtleactions/ToneActions.js:388 +#: js/turtleactions/ToneActions.js:427 +msgid "The input cannot be negative." msgstr "" -#: js/modewidget.js:86 -#: js/modewidget.js:88 -#: js/modewidget.js:642 -#: js/modewidget.js:644 -#: js/modewidget.js:712 -#: js/modewidget.js:714 -#: js/temperament.js:2078 -#: js/rhythmruler.js:189 -#: js/rhythmruler.js:1410 -#: js/rhythmruler.js:1412 -#: js/rhythmruler.js:1435 -#: js/rhythmruler.js:1437 -#: js/meterwidget.js:89 -#: js/meterwidget.js:91 +#: js/widgets/modewidget.js:86 +#: js/widgets/modewidget.js:88 +#: js/widgets/modewidget.js:642 +#: js/widgets/modewidget.js:644 +#: js/widgets/modewidget.js:712 +#: js/widgets/modewidget.js:714 +#: js/widgets/meterwidget.js:194 +#: js/widgets/meterwidget.js:196 +#: js/widgets/temperament.js:2236 +#: js/widgets/rhythmruler.js:457 +#: js/widgets/rhythmruler.js:1790 +#: js/widgets/rhythmruler.js:1792 +#: js/widgets/rhythmruler.js:1816 +#: js/widgets/rhythmruler.js:1818 msgid "Play all" msgstr "" -#: js/modewidget.js:115 -#: js/pitchstaircase.js:641 -#: js/phrasemaker.js:339 -#: js/pitchdrummatrix.js:94 -#: js/pitchslider.js:125 -#: js/temperament.js:2083 -#: js/musickeyboard.js:530 -#: js/timbre.js:756 -#: js/meterwidget.js:124 -#: js/arpeggio.js:103 +#: js/widgets/modewidget.js:115 +#: js/widgets/meterwidget.js:229 +#: js/widgets/pitchdrummatrix.js:166 +#: js/widgets/pitchslider.js:125 +#: js/widgets/pitchstaircase.js:641 +#: js/widgets/temperament.js:2244 +#: js/widgets/timbre.js:756 +#: js/widgets/arpeggio.js:103 +#: js/widgets/musickeyboard.js:688 +#: js/widgets/phrasemaker.js:550 msgid "Save" msgstr "" -#: js/modewidget.js:121 -#: js/pitchstaircase.js:686 -#: js/phrasemaker.js:356 -#: js/pitchdrummatrix.js:109 -#: js/musickeyboard.js:534 -#: js/rhythmruler.js:269 -#: js/arpeggio.js:118 +#: js/widgets/modewidget.js:121 +#: js/widgets/pitchdrummatrix.js:181 +#: js/widgets/pitchstaircase.js:686 +#: js/widgets/arpeggio.js:118 +#: js/widgets/musickeyboard.js:696 +#: js/widgets/phrasemaker.js:567 +#: js/widgets/rhythmruler.js:601 #.TRANS: clear all subdivisions from the ruler. msgid "Clear" msgstr "" -#: js/modewidget.js:127 +#: js/widgets/modewidget.js:127 msgid "Rotate counter clockwise" msgstr "" -#: js/modewidget.js:133 +#: js/widgets/modewidget.js:133 msgid "Rotate clockwise" msgstr "" -#: js/modewidget.js:139 +#: js/widgets/modewidget.js:139 msgid "Invert" msgstr "" -#: js/modewidget.js:145 -#: js/pitchstaircase.js:678 -#: js/rhythmruler.js:258 -#: js/timbre.js:963 +#: js/widgets/modewidget.js:145 +#: js/widgets/pitchstaircase.js:678 +#: js/widgets/timbre.js:963 +#: js/widgets/rhythmruler.js:578 msgid "Undo" msgstr "" -#: js/modewidget.js:163 +#: js/widgets/modewidget.js:163 #.TRANS: A circle of notes represents the musical mode. msgid "Click in the circle to select notes for the mode." msgstr "" -#: js/modewidget.js:1017 -#: js/pitchstaircase.js:580 -#: js/phrasemaker.js:4855 -#: js/temperament.js:1754 -#: js/rhythmruler.js:1865 -#: js/rhythmruler.js:2081 -#: js/tempo.js:414 +#: js/widgets/modewidget.js:1017 +#: js/widgets/pitchstaircase.js:580 +#: js/widgets/temperament.js:1929 +#: js/widgets/tempo.js:414 +#: js/widgets/phrasemaker.js:5356 +#: js/widgets/rhythmruler.js:2254 +#: js/widgets/rhythmruler.js:2472 msgid "New action block generated!" msgstr "" -#: js/oscilloscope.js:79 -msgid "Zoom In" -msgstr "" - -#: js/oscilloscope.js:88 -msgid "Zoom Out" -msgstr "" - -#: js/pitchstaircase.js:624 -msgid "Play chord" -msgstr "" - -#: js/pitchstaircase.js:632 -msgid "Play scale" +#: js/widgets/meterwidget.js:275 +msgid "Reset" msgstr "" -#: js/pitchstaircase.js:696 -msgid "Click on a note to create a new step." +#: js/widgets/meterwidget.js:301 +msgid "Click in the circle to select strong beats for the meter." msgstr "" -#: js/phrasemaker.js:363 -msgid "Export" +#: js/widgets/oscilloscope.js:79 +msgid "Zoom In" msgstr "" -#: js/phrasemaker.js:370 -msgid "Sort" +#: js/widgets/oscilloscope.js:88 +msgid "Zoom Out" msgstr "" -#: js/phrasemaker.js:373 -#: js/musickeyboard.js:559 -msgid "Add note" +#: js/widgets/pitchdrummatrix.js:356 +#: js/widgets/pitchdrummatrix.js:752 +msgid "Click in the grid to map notes to drums." msgstr "" -#: js/phrasemaker.js:764 -msgid "Click on the table to add notes." +#: js/widgets/pitchslider.js:103 +msgid "Move up" msgstr "" -#: js/phrasemaker.js:2414 -#: js/phrasemaker.js:2543 -msgid "tuplet value" +#: js/widgets/pitchslider.js:114 +msgid "Move down" msgstr "" -#: js/pitchdrummatrix.js:270 -#: js/pitchdrummatrix.js:639 -msgid "Click in the grid to map notes to drums." +#: js/widgets/pitchslider.js:136 +msgid "Click on the slider to create a note block." msgstr "" -#: js/pitchslider.js:103 -msgid "Move up" +#: js/widgets/pitchstaircase.js:624 +msgid "Play chord" msgstr "" -#: js/pitchslider.js:114 -msgid "Move down" +#: js/widgets/pitchstaircase.js:632 +msgid "Play scale" msgstr "" -#: js/pitchslider.js:136 -msgid "Click on the slider to create a note block." +#: js/widgets/pitchstaircase.js:696 +msgid "Click on a note to create a new step." msgstr "" -#: js/temperament.js:215 +#: js/widgets/temperament.js:321 msgid "back to 2:1 octave space" msgstr "" -#: js/temperament.js:323 +#: js/widgets/temperament.js:447 msgid "edit" msgstr "" -#: js/temperament.js:330 -#: js/temperament.js:332 -#: js/temperament.js:1336 -#: js/temperament.js:1338 +#: js/widgets/temperament.js:454 +#: js/widgets/temperament.js:456 +#: js/widgets/temperament.js:1493 +#: js/widgets/temperament.js:1495 msgid "close" msgstr "" -#: js/temperament.js:423 -#: js/temperament.js:736 -#: js/temperament.js:743 -#: js/temperament.js:845 -#: js/temperament.js:935 -#: js/temperament.js:942 -#: js/temperament.js:1015 -#: js/temperament.js:1284 -#: js/temperament.js:1354 -#: js/temperament.js:1430 +#: js/widgets/temperament.js:552 +#: js/widgets/temperament.js:877 +#: js/widgets/temperament.js:884 +#: js/widgets/temperament.js:986 +#: js/widgets/temperament.js:1080 +#: js/widgets/temperament.js:1087 +#: js/widgets/temperament.js:1160 +#: js/widgets/temperament.js:1433 +#: js/widgets/temperament.js:1511 +#: js/widgets/temperament.js:1596 msgid "done" msgstr "" -#: js/temperament.js:477 -#: js/temperament.js:482 -#: js/temperament.js:918 +#: js/widgets/temperament.js:610 +#: js/widgets/temperament.js:615 +#: js/widgets/temperament.js:1063 msgid "ratio" msgstr "" -#: js/temperament.js:483 +#: js/widgets/temperament.js:616 msgid "interval" msgstr "" -#: js/temperament.js:611 +#: js/widgets/temperament.js:744 msgid "non scalar" msgstr "" -#: js/temperament.js:650 +#: js/widgets/temperament.js:787 msgid "ratios" msgstr "" -#: js/temperament.js:650 +#: js/widgets/temperament.js:787 msgid "arbitrary" msgstr "" -#: js/temperament.js:719 +#: js/widgets/temperament.js:860 msgid "number of divisions" msgstr "" -#: js/temperament.js:741 -#: js/temperament.js:858 -#: js/temperament.js:940 -#: js/temperament.js:1033 +#: js/widgets/temperament.js:882 +#: js/widgets/temperament.js:999 +#: js/widgets/temperament.js:1085 +#: js/widgets/temperament.js:1178 msgid "preview" msgstr "" -#: js/temperament.js:788 +#: js/widgets/temperament.js:929 msgid "The Number of divisions is too large." msgstr "" -#: js/temperament.js:921 +#: js/widgets/temperament.js:1066 msgid "recursion" msgstr "" -#: js/temperament.js:1450 +#: js/widgets/temperament.js:1616 msgid "The octave ratio has changed. This changes temperament significantly." msgstr "" -#: js/temperament.js:2087 +#: js/widgets/temperament.js:2248 msgid "Table" msgstr "" -#: js/temperament.js:2185 +#: js/widgets/temperament.js:2356 msgid "Add pitches" msgstr "" -#: js/musickeyboard.js:570 -msgid "Metronome" +#: js/widgets/tempo.js:78 +#: js/widgets/tempo.js:97 +#: js/widgets/tempo.js:99 +#: js/widgets/aiwidget.js:134 +#: js/widgets/aiwidget.js:136 +#: js/widgets/rhythmruler.js:681 +#: js/widgets/rhythmruler.js:683 +#: js/widgets/rhythmruler.js:1864 +#: js/widgets/rhythmruler.js:1866 +#: js/widgets/sampler.js:180 +#: js/widgets/sampler.js:182 +msgid "Pause" msgstr "" -#: js/musickeyboard.js:1296 -#: plugins/rodi.rtp:193 -msgid "duration" +#: js/widgets/tempo.js:113 +msgid "Save tempo" msgstr "" -#: js/musickeyboard.js:2840 -msgid "New action blocks generated!" +#: js/widgets/tempo.js:144 +msgid "speed up" msgstr "" -#: js/musickeyboard.js:2841 -msgid "New action block generated" +#: js/widgets/tempo.js:150 +msgid "slow down" msgstr "" -#: js/musickeyboard.js:2984 -#: js/musickeyboard.js:2992 -msgid "MIDI device present." +#: js/widgets/tempo.js:194 +msgid "Adjust the tempo with the buttons." msgstr "" -#: js/musickeyboard.js:2995 -msgid "No MIDI device found." +#: js/widgets/tempo.js:261 +msgid "Please enter a number between 30 and 1000" msgstr "" -#: js/musickeyboard.js:3000 -msgid "Failed to get MIDI access in browser." +#: js/widgets/tempo.js:268 +#: js/widgets/tempo.js:271 +msgid "The beats per minute must be between 30 and 1000." msgstr "" -#: js/rhythmruler.js:202 -msgid "Save rhythms" +#: js/widgets/tempo.js:287 +msgid "The beats per minute must be below 1000." msgstr "" -#: js/rhythmruler.js:222 -msgid "Save drum machine" +#: js/widgets/tempo.js:303 +msgid "The beats per minute must be above 30" msgstr "" -#: js/rhythmruler.js:263 -#.TRANS: user can tap out a rhythm by clicking on a ruler. -msgid "Tap a rhythm" +#: js/widgets/timbre.js:766 +msgid "Synthesizer" msgstr "" -#: js/rhythmruler.js:342 -#: js/rhythmruler.js:344 -#: js/rhythmruler.js:1481 -#: js/rhythmruler.js:1483 -#: js/sampler.js:110 -#: js/sampler.js:112 -#: js/tempo.js:78 -#: js/tempo.js:97 -#: js/tempo.js:99 -msgid "Pause" +#: js/widgets/timbre.js:789 +msgid "Oscillator" msgstr "" -#: js/rhythmruler.js:478 -msgid "Click on the ruler to divide it." +#: js/widgets/timbre.js:840 +msgid "Envelope" msgstr "" -#: js/rhythmruler.js:603 -#: js/rhythmruler.js:605 -#: js/rhythmruler.js:804 -#: js/rhythmruler.js:806 -#: js/rhythmruler.js:1386 -#: js/rhythmruler.js:1388 -msgid "tap a rhythm" +#: js/widgets/timbre.js:886 +#: planet/js/GlobalTag.js:50 +#.TRANS: On the Planet, we use labels to tag projects. +msgid "Effects" msgstr "" -#: js/rhythmruler.js:1084 -msgid "Maximum value of 256 has been exceeded." +#: js/widgets/timbre.js:904 +msgid "Filter" msgstr "" -#: js/sampler.js:137 -msgid "Warning: Sample is bigger than 1MB." +#: js/widgets/timbre.js:946 +msgid "Add filter" msgstr "" -#: js/sampler.js:142 -msgid "Upload failed: Sample is not a .wav file." +#: js/widgets/timbre.js:987 +msgid "Click on buttons to open the timbre design tools." msgstr "" -#: js/sampler.js:164 -msgid "A new sample block was generated." +#: js/widgets/timbre.js:1273 +msgid "harmonicity" msgstr "" -#: js/sampler.js:255 -msgid "Upload sample" +#: js/widgets/timbre.js:1340 +#: js/widgets/timbre.js:1406 +msgid "modulation index" msgstr "" -#: js/sampler.js:306 -msgid "Save sample" +#: js/widgets/timbre.js:1484 +msgid "vibrato amount" msgstr "" -#: js/sampler.js:697 -#.TRANS: The reference tone is a sound used for comparison. -msgid "reference tone" +#: js/widgets/timbre.js:1919 +msgid "Filter already present." msgstr "" -#: js/tempo.js:113 -msgid "Save tempo" +#: js/widgets/timbre.js:2322 +msgid "delay (MS)" msgstr "" -#: js/tempo.js:144 -msgid "speed up" +#: js/widgets/timbre.js:2507 +msgid "distortion amount" msgstr "" -#: js/tempo.js:150 -msgid "slow down" +#: js/widgets/aiwidget.js:180 +#: js/widgets/sampler.js:227 +msgid "Warning: Sample is bigger than 1MB." msgstr "" -#: js/tempo.js:194 -msgid "Adjust the tempo with the buttons." +#: js/widgets/aiwidget.js:539 +msgid "New start block generated" msgstr "" -#: js/tempo.js:261 -msgid "Please enter a number between 30 and 1000" +#: js/widgets/aiwidget.js:541 +msgid "MIDI loading. This may take some time depending upon the number of notes in the track" msgstr "" -#: js/tempo.js:268 -#: js/tempo.js:271 -msgid "The beats per minute must be between 30 and 1000." +#: js/widgets/aiwidget.js:551 +#: js/widgets/sampler.js:254 +msgid "Upload failed: Sample is not a .wav file." msgstr "" -#: js/tempo.js:287 -msgid "The beats per minute must be below 1000." +#: js/widgets/aiwidget.js:679 +#: js/widgets/sampler.js:432 +msgid "Save sample" msgstr "" -#: js/tempo.js:303 -msgid "The beats per minute must be above 30" +#: js/widgets/aiwidget.js:701 +msgid "AI Music" msgstr "" -#: js/timbre.js:766 -msgid "Synthesizer" +#: js/widgets/arpeggio.js:239 +msgid "Click in the grid to add steps to the arpeggio." msgstr "" -#: js/timbre.js:789 -msgid "Oscillator" +#: js/widgets/help.js:95 +#: js/widgets/help.js:125 +#: js/widgets/help.js:146 +#: js/widgets/help.js:158 +#: js/widgets/help.js:376 +#: js/widgets/help.js:391 +msgid "Take a tour" msgstr "" -#: js/timbre.js:840 -msgid "Envelope" +#: js/widgets/musickeyboard.js:725 +#: js/widgets/phrasemaker.js:584 +msgid "Add note" msgstr "" -#: js/timbre.js:886 -#: js/GlobalTag.js:50 -#.TRANS: On the Planet, we use labels to tag projects. -msgid "Effects" +#: js/widgets/musickeyboard.js:744 +msgid "Metronome" +msgstr "" + +#: js/widgets/musickeyboard.js:1549 +#: plugins/rodi.rtp:193 +msgid "duration" +msgstr "" + +#: js/widgets/musickeyboard.js:3179 +msgid "New action blocks generated" +msgstr "" + +#: js/widgets/musickeyboard.js:3180 +msgid "New action block generated" msgstr "" -#: js/timbre.js:904 -msgid "Filter" +#: js/widgets/musickeyboard.js:3365 +#: js/widgets/musickeyboard.js:3373 +msgid "MIDI device present." msgstr "" -#: js/timbre.js:946 -msgid "Add filter" +#: js/widgets/musickeyboard.js:3376 +msgid "No MIDI device found." msgstr "" -#: js/timbre.js:987 -msgid "Click on buttons to open the timbre design tools." +#: js/widgets/musickeyboard.js:3386 +msgid "Failed to get MIDI access in browser." msgstr "" -#: js/timbre.js:1273 -msgid "harmonicity" +#: js/widgets/phrasemaker.js:574 +msgid "Export" msgstr "" -#: js/timbre.js:1340 -#: js/timbre.js:1406 -msgid "modulation index" +#: js/widgets/phrasemaker.js:581 +msgid "Sort" msgstr "" -#: js/timbre.js:1484 -msgid "vibrato amount" +#: js/widgets/phrasemaker.js:975 +msgid "Click on the table to add notes." msgstr "" -#: js/timbre.js:1919 -msgid "Filter already present." +#: js/widgets/phrasemaker.js:2677 +#: js/widgets/phrasemaker.js:2819 +msgid "tuplet value" msgstr "" -#: js/timbre.js:2322 -msgid "delay (MS)" +#: js/widgets/rhythmruler.js:486 +msgid "Save rhythms" msgstr "" -#: js/timbre.js:2507 -msgid "distortion amount" +#: js/widgets/rhythmruler.js:512 +msgid "Save drum machine" msgstr "" -#: js/meterwidget.js:170 -msgid "Reset" +#: js/widgets/rhythmruler.js:589 +#.TRANS: user can tap out a rhythm by clicking on a ruler. +msgid "Tap a rhythm" msgstr "" -#: js/meterwidget.js:196 -msgid "Click in the circle to select strong beats for the meter." +#: js/widgets/rhythmruler.js:817 +msgid "Click on the ruler to divide it." msgstr "" -#: js/arpeggio.js:239 -msgid "Click in the grid to add steps to the arpeggio." +#: js/widgets/rhythmruler.js:950 +#: js/widgets/rhythmruler.js:952 +#: js/widgets/rhythmruler.js:1152 +#: js/widgets/rhythmruler.js:1154 +#: js/widgets/rhythmruler.js:1765 +#: js/widgets/rhythmruler.js:1767 +msgid "tap a rhythm" msgstr "" -#: js/ProjectStorage.js:243 -msgid "anonymous" +#: js/widgets/rhythmruler.js:1459 +msgid "Maximum value of 256 has been exceeded." msgstr "" -#: js/GlobalCard.js:68 -msgid "Share" +#: js/widgets/sampler.js:237 +msgid "Recording started..." msgstr "" -#: js/GlobalCard.js:74 -msgid "Flags" +#: js/widgets/sampler.js:245 +msgid "Recording complete..." msgstr "" -#: js/LocalCard.js:36 -msgid "View published project" +#: js/widgets/sampler.js:283 +msgid "A new sample block was generated." msgstr "" -#: js/LocalCard.js:42 -msgid "Publish project" +#: js/widgets/sampler.js:378 +msgid "Upload sample" msgstr "" -#: js/LocalCard.js:51 -msgid "Edit project" +#: js/widgets/sampler.js:399 +msgid "Warning: Your sample cannot be loaded because it is >1MB." msgstr "" -#: js/LocalCard.js:52 -msgid "Delete project" +#: js/widgets/sampler.js:448 +msgid "Toggle Mic" msgstr "" -#: js/LocalCard.js:53 -msgid "Download project" +#: js/widgets/sampler.js:458 +msgid "Playback" msgstr "" -#: js/LocalCard.js:55 -msgid "Duplicate project" +#: js/widgets/sampler.js:979 +#.TRANS: The reference tone is a sound used for comparison. +msgid "reference tone" msgstr "" -#: js/GlobalTag.js:28 +#: planet/js/GlobalTag.js:28 #.TRANS: On the Planet, we use labels to tag projects. msgid "All Projects" msgstr "" -#: js/GlobalTag.js:30 -#: js/StringHelper.js:37 +#: planet/js/GlobalTag.js:30 +#: planet/js/StringHelper.js:37 #.TRANS: On the Planet, we use labels to tag projects. msgid "My Projects" msgstr "" -#: js/GlobalTag.js:32 +#: planet/js/GlobalTag.js:32 #.TRANS: On the Planet, we use labels to tag projects. msgid "Examples" msgstr "" -#: js/GlobalTag.js:34 +#: planet/js/GlobalTag.js:34 #.TRANS: On the Planet, we use labels to tag projects. msgid "Music" msgstr "" -#: js/GlobalTag.js:36 +#: planet/js/GlobalTag.js:36 #.TRANS: On the Planet, we use labels to tag projects. msgid "Art" msgstr "" -#: js/GlobalTag.js:38 +#: planet/js/GlobalTag.js:38 #.TRANS: On the Planet, we use labels to tag projects. msgid "Math" msgstr "" -#: js/GlobalTag.js:40 +#: planet/js/GlobalTag.js:40 #.TRANS: On the Planet, we use labels to tag projects. msgid "Interactive" msgstr "" -#: js/GlobalTag.js:42 +#: planet/js/GlobalTag.js:42 #.TRANS: On the Planet, we use labels to tag projects. msgid "Design" msgstr "" -#: js/GlobalTag.js:44 +#: planet/js/GlobalTag.js:44 #.TRANS: On the Planet, we use labels to tag projects. msgid "Game" msgstr "" -#: js/GlobalTag.js:46 +#: planet/js/GlobalTag.js:46 #.TRANS: On the Planet, we use labels to tag projects. msgid "Media" msgstr "" -#: js/GlobalTag.js:48 +#: planet/js/GlobalTag.js:48 #.TRANS: On the Planet, we use labels to tag projects. msgid "Sensors" msgstr "" -#: js/GlobalTag.js:52 +#: planet/js/GlobalTag.js:52 #.TRANS: On the Planet, we use labels to tag projects. msgid "Code Snippet" msgstr "" -#: js/helper.js:149 -#: js/StringHelper.js:49 -msgid "Show more tags" +#: planet/js/LocalCard.js:36 +msgid "View published project" msgstr "" -#: js/helper.js:150 -msgid "Show fewer tags" +#: planet/js/LocalCard.js:42 +msgid "Publish project" +msgstr "" + +#: planet/js/LocalCard.js:51 +msgid "Edit project" +msgstr "" + +#: planet/js/LocalCard.js:52 +msgid "Delete project" +msgstr "" + +#: planet/js/LocalCard.js:53 +msgid "Download project" +msgstr "" + +#: planet/js/LocalCard.js:55 +msgid "Duplicate project" +msgstr "" + +#: planet/js/ProjectStorage.js:243 +msgid "anonymous" +msgstr "" + +#: planet/js/SaveInterface.js:34 +msgid "Open in Music Blocks" +msgstr "" + +#: planet/js/SaveInterface.js:35 +msgid "Open in Turtle Blocks" +msgstr "" + +#: planet/js/GlobalCard.js:68 +msgid "Share" +msgstr "" + +#: planet/js/GlobalCard.js:74 +msgid "Flags" +msgstr "" + +#: planet/js/GlobalPlanet.js:35 +msgid "No results found." +msgstr "" + +#: planet/js/GlobalPlanet.js:51 +msgid "Remix of" +msgstr "" + +#: planet/js/GlobalPlanet.js:509 +msgid "Cannot connect to server" msgstr "" -#: js/ProjectViewer.js:30 +#: planet/js/ProjectViewer.js:30 msgid "Error: Report could not be submitted. Try again later." msgstr "" -#: js/ProjectViewer.js:31 +#: planet/js/ProjectViewer.js:31 msgid "Thank you for reporting this project. A moderator will review the project shortly, to verify violation of the Sugar Labs Code of Conduct." msgstr "" -#: js/ProjectViewer.js:32 -#: js/StringHelper.js:62 -#: js/StringHelper.js:64 -#: js/StringHelper.js:68 +#: planet/js/ProjectViewer.js:32 +#: planet/js/StringHelper.js:62 +#: planet/js/StringHelper.js:64 +#: planet/js/StringHelper.js:68 msgid "Report Project" msgstr "" -#: js/ProjectViewer.js:33 -#: js/StringHelper.js:63 +#: planet/js/ProjectViewer.js:33 +#: planet/js/StringHelper.js:63 msgid "Project Reported" msgstr "" -#: js/ProjectViewer.js:34 +#: planet/js/ProjectViewer.js:34 msgid "Report description required" msgstr "" -#: js/ProjectViewer.js:35 +#: planet/js/ProjectViewer.js:35 msgid "Report description too long" msgstr "" -#: js/StringHelper.js:30 +#: planet/js/Publisher.js:30 +msgid "Feature unavailable - cannot connect to server. Reload Music Blocks to try again." +msgstr "" + +#: planet/js/Publisher.js:220 +#: planet/js/Publisher.js:237 +msgid "This field is required" +msgstr "" + +#: planet/js/Publisher.js:227 +msgid "Title too long" +msgstr "" + +#: planet/js/Publisher.js:244 +msgid "Description too long" +msgstr "" + +#: planet/js/Publisher.js:341 +msgid "Server Error" +msgstr "" + +#: planet/js/Publisher.js:341 +msgid "Try Again" +msgstr "" + +#: planet/js/StringHelper.js:30 msgid "Planet" msgstr "" -#: js/StringHelper.js:31 +#: planet/js/StringHelper.js:31 msgid "Close Planet" msgstr "" -#: js/StringHelper.js:32 +#: planet/js/StringHelper.js:32 msgid "Open project from file" msgstr "" -#: js/StringHelper.js:34 +#: planet/js/StringHelper.js:34 msgid "Local" msgstr "" -#: js/StringHelper.js:35 +#: planet/js/StringHelper.js:35 msgid "Global" msgstr "" -#: js/StringHelper.js:36 +#: planet/js/StringHelper.js:36 msgid "Search for a project" msgstr "" -#: js/StringHelper.js:38 +#: planet/js/StringHelper.js:38 msgid "Publish Project" msgstr "" -#: js/StringHelper.js:40 +#: planet/js/StringHelper.js:40 msgid "Tags (max 5)" msgstr "" -#: js/StringHelper.js:41 -#: js/StringHelper.js:61 +#: planet/js/StringHelper.js:41 +#: planet/js/StringHelper.js:61 msgid "Description" msgstr "" -#: js/StringHelper.js:42 -#: js/StringHelper.js:67 +#: planet/js/StringHelper.js:42 +#: planet/js/StringHelper.js:67 msgid "Submit" msgstr "" -#: js/StringHelper.js:43 -#: js/StringHelper.js:47 +#: planet/js/StringHelper.js:43 +#: planet/js/StringHelper.js:47 msgid "Cancel" msgstr "" -#: js/StringHelper.js:44 +#: planet/js/StringHelper.js:44 msgid "Delete \\"\\"?" msgstr "" -#: js/StringHelper.js:45 +#: planet/js/StringHelper.js:45 msgid "Permanently delete project \\"\\"?" msgstr "" -#: js/StringHelper.js:48 +#: planet/js/StringHelper.js:48 msgid "Explore Projects" msgstr "" -#: js/StringHelper.js:50 +#: planet/js/StringHelper.js:49 +#: planet/js/helper.js:149 +msgid "Show more tags" +msgstr "" + +#: planet/js/StringHelper.js:50 msgid "Most recent" msgstr "" -#: js/StringHelper.js:51 +#: planet/js/StringHelper.js:51 msgid "Most liked" msgstr "" -#: js/StringHelper.js:52 +#: planet/js/StringHelper.js:52 msgid "Most downloaded" msgstr "" -#: js/StringHelper.js:53 +#: planet/js/StringHelper.js:53 msgid "A-Z" msgstr "" -#: js/StringHelper.js:54 +#: planet/js/StringHelper.js:54 msgid "Sort by" msgstr "" -#: js/StringHelper.js:55 +#: planet/js/StringHelper.js:55 msgid "Load More Projects" msgstr "" -#: js/StringHelper.js:56 +#: planet/js/StringHelper.js:56 msgid "Last Updated" msgstr "" -#: js/StringHelper.js:57 +#: planet/js/StringHelper.js:57 msgid "Creation Date" msgstr "" -#: js/StringHelper.js:58 +#: planet/js/StringHelper.js:58 msgid "Number of Downloads:" msgstr "" -#: js/StringHelper.js:59 +#: planet/js/StringHelper.js:59 msgid "Number of Likes:" msgstr "" -#: js/StringHelper.js:60 +#: planet/js/StringHelper.js:60 msgid "Tags:" msgstr "" -#: js/StringHelper.js:65 +#: planet/js/StringHelper.js:65 msgid "Report projects which violate the Sugar Labs Code of Conduct." msgstr "" -#: js/StringHelper.js:66 +#: planet/js/StringHelper.js:66 msgid "Reason for reporting project" msgstr "" -#: js/StringHelper.js:70 +#: planet/js/StringHelper.js:70 msgid "Download as File" msgstr "" -#: js/GlobalPlanet.js:35 -msgid "No results found." -msgstr "" - -#: js/GlobalPlanet.js:51 -msgid "Remix of" -msgstr "" - -#: js/GlobalPlanet.js:509 -msgid "Cannot connect to server" -msgstr "" - -#: js/Publisher.js:30 -msgid "Feature unavailable - cannot connect to server. Reload Music Blocks to try again." -msgstr "" - -#: js/Publisher.js:218 -#: js/Publisher.js:235 -msgid "This field is required" -msgstr "" - -#: js/Publisher.js:225 -msgid "Title too long" +#: planet/js/helper.js:150 +msgid "Show fewer tags" msgstr "" -#: js/Publisher.js:242 -msgid "Description too long" +#: plugins/accelerometer.rtp:48 +msgid "motion x" msgstr "" -#: js/Publisher.js:339 -msgid "Server Error" +#: plugins/accelerometer.rtp:56 +msgid "motion y" msgstr "" -#: js/Publisher.js:339 -msgid "Try Again" +#: plugins/accelerometer.rtp:64 +msgid "motion z" msgstr "" -#: js/SaveInterface.js:34 -msgid "Open in Music Blocks" +#: plugins/facebook.rtp:27 +msgid "publish" msgstr "" -#: js/SaveInterface.js:35 -msgid "Open in Turtle Blocks" +#: plugins/maths.rtp:62 +msgid "power" msgstr "" -#: plugins/weather.rtp:68 -#: plugins/weather.rtp:97 -msgid "Days ahead must be in the range of -1 to 5." +#: plugins/maths.rtp:62 +msgid "base" msgstr "" -#: plugins/weather.rtp:122 -msgid "forecast" +#: plugins/maths.rtp:62 +msgid "exp" msgstr "" -#: plugins/weather.rtp:123 -#: plugins/weather.rtp:137 -#: plugins/weather.rtp:150 -msgid "city" +#: plugins/maths.rtp:99 +msgid "floor" msgstr "" -#: plugins/weather.rtp:124 -#: plugins/weather.rtp:138 -#: plugins/weather.rtp:151 -msgid "day" +#: plugins/maths.rtp:104 +msgid "ceiling" msgstr "" -#: plugins/weather.rtp:136 -msgid "high" +#: plugins/maths.rtp:109 +msgid "to degrees" msgstr "" -#: plugins/weather.rtp:149 -msgid "low" +#: plugins/maths.rtp:114 +msgid "to radians" msgstr "" #: plugins/nutrition.rtp:104 @@ -9458,45 +9867,6 @@ msgstr "" msgid "water" msgstr "" -#: plugins/maths.rtp:62 -#: plugins/examples.rtp:93 -msgid "power" -msgstr "" - -#: plugins/maths.rtp:62 -#: plugins/examples.rtp:93 -msgid "base" -msgstr "" - -#: plugins/maths.rtp:62 -#: plugins/examples.rtp:93 -msgid "exp" -msgstr "" - -#: plugins/maths.rtp:99 -#: plugins/examples.rtp:130 -msgid "floor" -msgstr "" - -#: plugins/maths.rtp:104 -#: plugins/examples.rtp:135 -msgid "ceiling" -msgstr "" - -#: plugins/maths.rtp:109 -#: plugins/examples.rtp:140 -msgid "to degrees" -msgstr "" - -#: plugins/maths.rtp:114 -#: plugins/examples.rtp:145 -msgid "to radians" -msgstr "" - -#: plugins/facebook.rtp:27 -msgid "publish" -msgstr "" - #: plugins/rodi.rtp:172 msgid "blink" msgstr "" @@ -9525,18 +9895,66 @@ msgstr "" msgid "move" msgstr "" -#: plugins/accelerometer.rtp:48 -msgid "motion x" +#: plugins/weather.rtp:68 +#: plugins/weather.rtp:97 +msgid "Days ahead must be in the range of -1 to 5." msgstr "" -#: plugins/accelerometer.rtp:56 -msgid "motion y" +#: plugins/weather.rtp:122 +msgid "forecast" msgstr "" -#: plugins/accelerometer.rtp:64 -msgid "motion z" +#: plugins/weather.rtp:123 +#: plugins/weather.rtp:137 +#: plugins/weather.rtp:150 +msgid "city" +msgstr "" + +#: plugins/weather.rtp:124 +#: plugins/weather.rtp:138 +#: plugins/weather.rtp:151 +msgid "day" +msgstr "" + +#: plugins/weather.rtp:136 +msgid "high" +msgstr "" + +#: plugins/weather.rtp:149 +msgid "low" msgstr "" +#: js/toolbar.js:70 + +#: js/toolbar.js:130 + +#: js/toolbar.js:194 + +#: js/toolbar.js:249 + +#~msgid "Toggle JavaScript Editor" +#~msgstr "" + +#: js/EnsembleBlocks.js:643 + +#~msgid "The Turrle pitch block returns the current pitch number being played by the specified turtle." +#~msgstr "" + +#: js/PitchActions.js:88 + +#~msgid "The Scalar Step Block must be used inside of a Note Block." +#~msgstr "" + +#: js/PitchActions.js:107 + +#~msgid "The Scalar Step Block must be preceded by a Pitch Block." +#~msgstr "" + +#: js/musickeyboard.js:2840 + +#~msgid "New action blocks generated!" +#~msgstr "" + #: js/toolbar.js:110 #: js/toolbar.js:204 @@ -9877,11 +10295,6 @@ msgstr "" #~msgid "The Time block returns the number of seconds that the program has been running." #~msgstr "" -#: js/help.js:95 - -#~msgid "Take a tour" -#~msgstr "" - #: js/GlobalCard.js:48 #~msgid "More Details" @@ -12780,11 +13193,6 @@ msgstr "" #~msgid "The save-stack button saves a stack onto a custom palette. It appears after a \"long press\" on a stack." #~msgstr "" -#: js/musicutils.js:254 - -#~msgid "Custom" -#~msgstr "" - #: js/basicblocks.js:4785 #~msgid "Rhythm" diff --git a/po/mr.po b/po/mr.po index 147b476aaf..b14a231473 100644 --- a/po/mr.po +++ b/po/mr.po @@ -15,2398 +15,132 @@ #js/toolbar.js:230 #js/turtledefs.js:504 #js/turtledefs.js:505 -msgid: "Toggle Fullscreen" -msgstr: "पूर्ण स्क्रीन परिवर्तन करें" - -#: js/activity.js:443 -#: js/activity.js:443 -#: js/activity.js:445 -#: js/activity.js:453 -#: js/activity.js:472 -#: js/activity.js:472 -#: js/activity.js:475 -#: js/block.js:632 -#: js/pitchdrummatrix.js:178 -#: js/musicutils.js:37 -#: js/block.js:531 -#: js/pitchdrummatrix.js:235 -#: js/musicutils.js:40 -#: js/block.js:532 -#: js/pitchdrummatrix.js:235 -#: js/musicutils.js:40 -#: js/block.js:534 -#: js/pitchdrummatrix.js:235 -#: js/musicutils.js:40 -#: js/block.js:534 -#: js/pitchdrummatrix.js:235 -#: js/musicutils.js:40 -#: js/block.js:534 -#: js/pitchdrummatrix.js:235 -#: js/musicutils.js:40 -#: js/block.js:535 -#: js/pitchdrummatrix.js:235 -#: js/musicutils.js:43 -#: js/block.js:535 -#: js/pitchdrummatrix.js:235 -#: js/musicutils.js:43 -#: js/block.js:535 -#: js/pitchdrummatrix.js:235 -#: js/musicutils.js:43 -#: js/block.js:535 -#: js/pitchdrummatrix.js:235 -#: js/musicutils.js:43 -#: js/block.js:535 -#: js/pitchdrummatrix.js:235 -#: js/musicutils.js:43 -#: js/block.js:535 -#: js/pitchdrummatrix.js:235 -#: js/musicutils.js:43 -#: js/block.js:535 -#: js/pitchdrummatrix.js:235 -#: js/musicutils.js:43 -#: js/block.js:535 -#: js/pitchdrummatrix.js:235 -#: js/musicutils.js:43 -#: js/block.js:535 -#: js/pitchdrummatrix.js:235 -#: js/musicutils.js:43 -#: js/block.js:535 -#: js/pitchdrummatrix.js:235 -#: js/musicutils.js:43 -#: js/block.js:535 -#: js/pitchdrummatrix.js:235 -#: js/musicutils.js:43 -#: js/block.js:535 -#: js/pitchdrummatrix.js:235 -#: js/musicutils.js:43 -#: js/block.js:535 -#: js/pitchdrummatrix.js:235 -#: js/musicutils.js:43 -#: js/synthutils.js:14 -#: js/block.js:535 -#: js/pitchdrummatrix.js:235 -#: js/musicutils.js:43 -#: js/block.js:535 -#: js/pitchdrummatrix.js:235 -#: js/musicutils.js:43 -#: js/block.js:535 -#: js/pitchdrummatrix.js:235 -#: js/musicutils.js:43 -#: js/block.js:535 -#: js/pitchdrummatrix.js:235 -#: js/musicutils.js:43 -#: js/block.js:535 -#: js/pitchdrummatrix.js:235 -#: js/musicutils.js:43 -#: js/block.js:535 -#: js/pitchdrummatrix.js:235 -#: js/musicutils.js:43 -#: js/block.js:535 -#: js/pitchdrummatrix.js:235 -#: js/musicutils.js:43 -#: js/block.js:535 -#: js/pitchdrummatrix.js:235 -#: js/musicutils.js:43 -#: js/block.js:535 -#: js/pitchdrummatrix.js:235 -#: js/musicutils.js:43 -#: js/block.js:535 -#: js/pitchdrummatrix.js:235 -#: js/musicutils.js:43 -#: js/block.js:535 -#: js/pitchdrummatrix.js:235 -#: js/musicutils.js:43 -#: js/block.js:536 -#: js/pitchdrummatrix.js:235 -#: js/musicutils.js:45 -#: js/block.js:536 -#: js/pitchdrummatrix.js:235 -#: js/musicutils.js:45 -#: js/block.js:551 -#: js/pitchdrummatrix.js:235 -#: js/musicutils.js:46 -#: js/block.js:551 -#: js/pitchdrummatrix.js:235 -#: js/musicutils.js:46 -#: js/block.js:565 -#: js/pitchdrummatrix.js:235 -#: js/musicutils.js:48 -#: js/musicutils.js:57 -#: js/block.js:565 -#: js/pitchdrummatrix.js:235 -#: js/musicutils.js:48 -#: js/musicutils.js:57 -#: js/block.js:565 -#: js/pitchdrummatrix.js:235 -#: js/musicutils.js:48 -#: js/musicutils.js:57 -#: js/block.js:567 -#: js/pitchdrummatrix.js:235 -#: js/musicutils.js:48 -#: js/musicutils.js:57 -#: js/block.js:720 -#: js/block.js:3892 -#: js/block.js:3901 -#: js/block.js:3912 -#: js/activity.js:2732 -#: js/analytics.js:475 -#: js/palette.js:676 -#: js/palette.js:685 -#: js/palette.js:694 -#: js/palette.js:703 -#: js/palette.js:1978 -#: js/palette.js:1989 -#: js/palette.js:2000 -#: js/palette.js:2011 -#: js/turtledefs.js:23 -#: js/basicblocks.js:1148 -#: js/basicblocks.js:1159 -#: js/basicblocks.js:2806 -#: js/basicblocks.js:2837 -#: js/basicblocks.js:2844 -#: js/basicblocks.js:2873 -#: js/basicblocks.js:2883 -#: js/basicblocks.js:2915 -#: js/basicblocks.js:2960 -#: js/basicblocks.js:2964 -#: js/basicblocks.js:2970 -#: js/macros.js:44 -#: js/blocks.js:784 -#: js/blocks.js:2385 -#: js/blocks.js:2386 -#: js/blocks.js:2578 -#: js/blocks.js:2784 -#: js/blocks.js:2940 -#: js/blocks.js:3503 -#: js/blocks.js:4308 -#: js/block.js:720 -#: js/block.js:3892 -#: js/block.js:3901 -#: js/block.js:3912 -#: js/activity.js:2732 -#: js/analytics.js:475 -#: js/palette.js:681 -#: js/palette.js:690 -#: js/palette.js:699 -#: js/palette.js:708 -#: js/palette.js:1983 -#: js/palette.js:1994 -#: js/palette.js:2005 -#: js/palette.js:2016 -#: js/turtledefs.js:23 -#: js/basicblocks.js:1148 -#: js/basicblocks.js:1159 -#: js/basicblocks.js:1170 -#: js/basicblocks.js:2817 -#: js/basicblocks.js:2848 -#: js/basicblocks.js:2855 -#: js/basicblocks.js:2884 -#: js/basicblocks.js:2894 -#: js/basicblocks.js:2926 -#: js/basicblocks.js:2971 -#: js/basicblocks.js:2975 -#: js/basicblocks.js:2981 -#: js/macros.js:44 -#: js/blocks.js:784 -#: js/blocks.js:2385 -#: js/blocks.js:2386 -#: js/blocks.js:2578 -#: js/blocks.js:2784 -#: js/blocks.js:2940 -#: js/blocks.js:3514 -#: js/blocks.js:4319 -#: js/block.js:720 -#: js/block.js:3892 -#: js/block.js:3901 -#: js/block.js:3912 -#: js/activity.js:2732 -#: js/analytics.js:475 -#: js/palette.js:681 -#: js/palette.js:690 -#: js/palette.js:699 -#: js/palette.js:708 -#: js/palette.js:1983 -#: js/palette.js:1994 -#: js/palette.js:2005 -#: js/palette.js:2016 -#: js/turtledefs.js:23 -#: js/basicblocks.js:1148 -#: js/basicblocks.js:1159 -#: js/basicblocks.js:1170 -#: js/basicblocks.js:2817 -#: js/basicblocks.js:2848 -#: js/basicblocks.js:2855 -#: js/basicblocks.js:2884 -#: js/basicblocks.js:2894 -#: js/basicblocks.js:2926 -#: js/basicblocks.js:2971 -#: js/basicblocks.js:2975 -#: js/basicblocks.js:2981 -#: js/macros.js:44 -#: js/blocks.js:784 -#: js/blocks.js:2385 -#: js/blocks.js:2386 -#: js/blocks.js:2578 -#: js/blocks.js:2784 -#: js/blocks.js:2940 -#: js/blocks.js:3514 -#: js/blocks.js:4319 -#: js/block.js:863 -#: js/block.js:4105 -#: js/block.js:4114 -#: js/block.js:4125 -#: js/activity.js:2934 -#: js/palette.js:734 -#: js/palette.js:745 -#: js/palette.js:754 -#: js/palette.js:763 -#: js/palette.js:2076 -#: js/palette.js:2088 -#: js/palette.js:2099 -#: js/palette.js:2110 -#: js/turtledefs.js:23 -#: js/basicblocks.js:1406 -#: js/basicblocks.js:1420 -#: js/basicblocks.js:1434 -#: js/basicblocks.js:3700 -#: js/basicblocks.js:3740 -#: js/basicblocks.js:3750 -#: js/basicblocks.js:3788 -#: js/basicblocks.js:3801 -#: js/basicblocks.js:3852 -#: js/basicblocks.js:3897 -#: js/basicblocks.js:3902 -#: js/basicblocks.js:3907 -#: js/rubrics.js:475 -#: js/macros.js:44 -#: js/blocks.js:863 -#: js/blocks.js:2466 -#: js/blocks.js:2467 -#: js/blocks.js:2659 -#: js/blocks.js:2865 -#: js/blocks.js:3021 -#: js/blocks.js:3661 -#: js/blocks.js:4458 -#: js/rhythmruler.js:1138 -#: js/rhythmruler.js:1140 -#: js/rhythmruler.js:1240 -#: js/rhythmruler.js:1242 -#: js/block.js:876 -#: js/block.js:4289 -#: js/block.js:4298 -#: js/block.js:4309 -#: js/activity.js:3042 -#: js/palette.js:750 -#: js/palette.js:759 -#: js/palette.js:768 -#: js/palette.js:777 -#: js/palette.js:2057 -#: js/palette.js:2068 -#: js/palette.js:2079 -#: js/palette.js:2090 -#: js/palette.js:2100 -#: js/turtledefs.js:23 -#: js/basicblocks.js:1407 -#: js/basicblocks.js:1421 -#: js/basicblocks.js:1435 -#: js/basicblocks.js:3720 -#: js/basicblocks.js:3760 -#: js/basicblocks.js:3770 -#: js/basicblocks.js:3808 -#: js/basicblocks.js:3821 -#: js/basicblocks.js:3862 -#: js/basicblocks.js:3917 -#: js/basicblocks.js:3922 -#: js/basicblocks.js:3927 -#: js/rubrics.js:476 -#: js/macros.js:44 -#: js/blocks.js:863 -#: js/blocks.js:2475 -#: js/blocks.js:2476 -#: js/blocks.js:2668 -#: js/blocks.js:2874 -#: js/blocks.js:3030 -#: js/blocks.js:3851 -#: js/blocks.js:4668 -#: js/rhythmruler.js:1149 -#: js/rhythmruler.js:1151 -#: js/rhythmruler.js:1251 -#: js/rhythmruler.js:1253 -#: js/block.js:923 -#: js/block.js:4637 -#: js/block.js:4646 -#: js/block.js:4657 -#: js/activity.js:3061 -#: js/palette.js:737 -#: js/palette.js:746 -#: js/palette.js:755 -#: js/palette.js:764 -#: js/palette.js:2043 -#: js/palette.js:2054 -#: js/palette.js:2065 -#: js/palette.js:2076 -#: js/palette.js:2086 -#: js/turtledefs.js:23 -#: js/basicblocks.js:1445 -#: js/basicblocks.js:1459 -#: js/basicblocks.js:1473 -#: js/basicblocks.js:3776 -#: js/basicblocks.js:3816 -#: js/basicblocks.js:3826 -#: js/basicblocks.js:3864 -#: js/basicblocks.js:3877 -#: js/basicblocks.js:3918 -#: js/basicblocks.js:3973 -#: js/basicblocks.js:3978 -#: js/basicblocks.js:3983 -#: js/rubrics.js:477 -#: js/macros.js:45 -#: js/blocks.js:816 -#: js/blocks.js:2432 -#: js/blocks.js:2433 -#: js/blocks.js:2625 -#: js/blocks.js:2869 -#: js/blocks.js:3025 -#: js/blocks.js:3866 -#: js/blocks.js:4705 -#: js/rhythmruler.js:1149 -#: js/rhythmruler.js:1151 -#: js/rhythmruler.js:1251 -#: js/rhythmruler.js:1253 -#: js/block.js:923 -#: js/block.js:4823 -#: js/block.js:4832 -#: js/block.js:4843 -#: js/activity.js:3079 -#: js/palette.js:737 -#: js/palette.js:746 -#: js/palette.js:755 -#: js/palette.js:764 -#: js/palette.js:2043 -#: js/palette.js:2054 -#: js/palette.js:2065 -#: js/palette.js:2076 -#: js/palette.js:2086 -#: js/turtledefs.js:23 -#: js/basicblocks.js:1441 -#: js/basicblocks.js:1455 -#: js/basicblocks.js:1469 -#: js/basicblocks.js:3762 -#: js/basicblocks.js:3802 -#: js/basicblocks.js:3812 -#: js/basicblocks.js:3850 -#: js/basicblocks.js:3863 -#: js/basicblocks.js:3904 -#: js/basicblocks.js:3959 -#: js/basicblocks.js:3964 -#: js/basicblocks.js:3969 -#: js/rubrics.js:477 -#: js/macros.js:45 -#: js/blocks.js:816 -#: js/blocks.js:2430 -#: js/blocks.js:2431 -#: js/blocks.js:2623 -#: js/blocks.js:2867 -#: js/blocks.js:3023 -#: js/blocks.js:3864 -#: js/blocks.js:4702 -#: js/rhythmruler.js:1149 -#: js/rhythmruler.js:1151 -#: js/rhythmruler.js:1251 -#: js/rhythmruler.js:1253 -#: js/block.js:923 -#: js/block.js:4836 -#: js/block.js:4845 -#: js/block.js:4856 -#: js/activity.js:3089 -#: js/palette.js:737 -#: js/palette.js:746 -#: js/palette.js:755 -#: js/palette.js:764 -#: js/palette.js:2043 -#: js/palette.js:2054 -#: js/palette.js:2065 -#: js/palette.js:2076 -#: js/palette.js:2086 -#: js/turtledefs.js:23 -#: js/basicblocks.js:1441 -#: js/basicblocks.js:1455 -#: js/basicblocks.js:1469 -#: js/basicblocks.js:3762 -#: js/basicblocks.js:3802 -#: js/basicblocks.js:3812 -#: js/basicblocks.js:3850 -#: js/basicblocks.js:3863 -#: js/basicblocks.js:3904 -#: js/basicblocks.js:3959 -#: js/basicblocks.js:3964 -#: js/basicblocks.js:3969 -#: js/rubrics.js:477 -#: js/macros.js:45 -#: js/blocks.js:816 -#: js/blocks.js:2432 -#: js/blocks.js:2433 -#: js/blocks.js:2625 -#: js/blocks.js:2869 -#: js/blocks.js:3025 -#: js/blocks.js:3866 -#: js/blocks.js:4704 -#: js/rhythmruler.js:1149 -#: js/rhythmruler.js:1151 -#: js/rhythmruler.js:1251 -#: js/rhythmruler.js:1253 -#: js/block.js:923 -#: js/block.js:4841 -#: js/block.js:4850 -#: js/block.js:4861 -#: js/activity.js:3079 -#: js/palette.js:737 -#: js/palette.js:746 -#: js/palette.js:755 -#: js/palette.js:764 -#: js/palette.js:2043 -#: js/palette.js:2054 -#: js/palette.js:2065 -#: js/palette.js:2076 -#: js/palette.js:2086 -#: js/turtledefs.js:23 -#: js/basicblocks.js:1474 -#: js/basicblocks.js:1488 -#: js/basicblocks.js:1502 -#: js/basicblocks.js:3808 -#: js/basicblocks.js:3848 -#: js/basicblocks.js:3858 -#: js/basicblocks.js:3896 -#: js/basicblocks.js:3909 -#: js/basicblocks.js:3950 -#: js/basicblocks.js:4005 -#: js/basicblocks.js:4010 -#: js/basicblocks.js:4015 -#: js/rubrics.js:477 -#: js/macros.js:45 -#: js/blocks.js:816 -#: js/blocks.js:2433 -#: js/blocks.js:2434 -#: js/blocks.js:2626 -#: js/blocks.js:2870 -#: js/blocks.js:3026 -#: js/blocks.js:3867 -#: js/blocks.js:4705 -#: js/rhythmruler.js:1157 -#: js/rhythmruler.js:1159 -#: js/rhythmruler.js:1259 -#: js/rhythmruler.js:1261 -#: js/block.js:923 -#: js/block.js:4845 -#: js/block.js:4854 -#: js/block.js:4865 -#: js/activity.js:3083 -#: js/palette.js:765 -#: js/palette.js:774 -#: js/palette.js:783 -#: js/palette.js:792 -#: js/palette.js:2072 -#: js/palette.js:2083 -#: js/palette.js:2094 -#: js/palette.js:2105 -#: js/palette.js:2115 -#: js/turtledefs.js:25 -#: js/basicblocks.js:1474 -#: js/basicblocks.js:1488 -#: js/basicblocks.js:1502 -#: js/basicblocks.js:3808 -#: js/basicblocks.js:3848 -#: js/basicblocks.js:3858 -#: js/basicblocks.js:3896 -#: js/basicblocks.js:3909 -#: js/basicblocks.js:3950 -#: js/basicblocks.js:4005 -#: js/basicblocks.js:4010 -#: js/basicblocks.js:4015 -#: js/rubrics.js:477 -#: js/macros.js:45 -#: js/blocks.js:816 -#: js/blocks.js:2433 -#: js/blocks.js:2434 -#: js/blocks.js:2626 -#: js/blocks.js:2870 -#: js/blocks.js:3026 -#: js/blocks.js:3867 -#: js/blocks.js:4705 -#: js/rhythmruler.js:1157 -#: js/rhythmruler.js:1159 -#: js/rhythmruler.js:1259 -#: js/rhythmruler.js:1261 -#: js/block.js:923 -#: js/block.js:4845 -#: js/block.js:4854 -#: js/block.js:4865 -#: js/activity.js:3083 -#: js/palette.js:765 -#: js/palette.js:774 -#: js/palette.js:783 -#: js/palette.js:792 -#: js/palette.js:2072 -#: js/palette.js:2083 -#: js/palette.js:2094 -#: js/palette.js:2105 -#: js/palette.js:2115 -#: js/turtledefs.js:25 -#: js/basicblocks.js:1474 -#: js/basicblocks.js:1488 -#: js/basicblocks.js:1502 -#: js/basicblocks.js:3808 -#: js/basicblocks.js:3848 -#: js/basicblocks.js:3858 -#: js/basicblocks.js:3896 -#: js/basicblocks.js:3909 -#: js/basicblocks.js:3950 -#: js/basicblocks.js:4005 -#: js/basicblocks.js:4010 -#: js/basicblocks.js:4015 -#: js/rubrics.js:477 -#: js/macros.js:45 -#: js/blocks.js:816 -#: js/blocks.js:2433 -#: js/blocks.js:2434 -#: js/blocks.js:2626 -#: js/blocks.js:2870 -#: js/blocks.js:3026 -#: js/blocks.js:3867 -#: js/blocks.js:4705 -#: js/rhythmruler.js:1157 -#: js/rhythmruler.js:1159 -#: js/rhythmruler.js:1259 -#: js/rhythmruler.js:1261 -#: js/block.js:923 -#: js/block.js:4845 -#: js/block.js:4854 -#: js/block.js:4865 -#: js/activity.js:3083 -#: js/palette.js:765 -#: js/palette.js:774 -#: js/palette.js:783 -#: js/palette.js:792 -#: js/palette.js:2072 -#: js/palette.js:2083 -#: js/palette.js:2094 -#: js/palette.js:2105 -#: js/palette.js:2115 -#: js/turtledefs.js:25 -#: js/basicblocks.js:1474 -#: js/basicblocks.js:1488 -#: js/basicblocks.js:1502 -#: js/basicblocks.js:3808 -#: js/basicblocks.js:3848 -#: js/basicblocks.js:3858 -#: js/basicblocks.js:3896 -#: js/basicblocks.js:3909 -#: js/basicblocks.js:3950 -#: js/basicblocks.js:4005 -#: js/basicblocks.js:4010 -#: js/basicblocks.js:4015 -#: js/rubrics.js:477 -#: js/macros.js:45 -#: js/blocks.js:816 -#: js/blocks.js:2433 -#: js/blocks.js:2434 -#: js/blocks.js:2626 -#: js/blocks.js:2870 -#: js/blocks.js:3026 -#: js/blocks.js:3867 -#: js/blocks.js:4705 -#: js/rhythmruler.js:1157 -#: js/rhythmruler.js:1159 -#: js/rhythmruler.js:1259 -#: js/rhythmruler.js:1261 -#: js/block.js:926 -#: js/block.js:4883 -#: js/block.js:4892 -#: js/block.js:4903 -#: js/activity.js:3083 -#: js/palette.js:765 -#: js/palette.js:774 -#: js/palette.js:783 -#: js/palette.js:792 -#: js/palette.js:2075 -#: js/palette.js:2086 -#: js/palette.js:2097 -#: js/palette.js:2108 -#: js/palette.js:2118 -#: js/turtledefs.js:25 -#: js/basicblocks.js:1474 -#: js/basicblocks.js:1488 -#: js/basicblocks.js:1502 -#: js/basicblocks.js:3830 -#: js/basicblocks.js:3870 -#: js/basicblocks.js:3880 -#: js/basicblocks.js:3918 -#: js/basicblocks.js:3931 -#: js/basicblocks.js:3972 -#: js/basicblocks.js:4027 -#: js/basicblocks.js:4032 -#: js/basicblocks.js:4037 -#: js/rubrics.js:478 -#: js/macros.js:45 -#: js/blocks.js:816 -#: js/blocks.js:2437 -#: js/blocks.js:2438 -#: js/blocks.js:2630 -#: js/blocks.js:2874 -#: js/blocks.js:3030 -#: js/blocks.js:3871 -#: js/blocks.js:4724 -#: js/rhythmruler.js:1157 -#: js/rhythmruler.js:1159 -#: js/rhythmruler.js:1259 -#: js/rhythmruler.js:1261 -#: js/block.js:926 -#: js/block.js:4883 -#: js/block.js:4892 -#: js/block.js:4903 -#: js/activity.js:3078 -#: js/palette.js:765 -#: js/palette.js:774 -#: js/palette.js:783 -#: js/palette.js:792 -#: js/palette.js:2075 -#: js/palette.js:2086 -#: js/palette.js:2097 -#: js/palette.js:2108 -#: js/palette.js:2118 -#: js/turtledefs.js:25 -#: js/basicblocks.js:1475 -#: js/basicblocks.js:1489 -#: js/basicblocks.js:1503 -#: js/basicblocks.js:3832 -#: js/basicblocks.js:3872 -#: js/basicblocks.js:3882 -#: js/basicblocks.js:3920 -#: js/basicblocks.js:3933 -#: js/basicblocks.js:3974 -#: js/basicblocks.js:4029 -#: js/basicblocks.js:4034 -#: js/basicblocks.js:4039 -#: js/rubrics.js:478 -#: js/macros.js:45 -#: js/blocks.js:816 -#: js/blocks.js:2437 -#: js/blocks.js:2438 -#: js/blocks.js:2630 -#: js/blocks.js:2874 -#: js/blocks.js:3030 -#: js/blocks.js:3871 -#: js/blocks.js:4724 -#: js/rhythmruler.js:1162 -#: js/rhythmruler.js:1164 -#: js/rhythmruler.js:1272 -#: js/rhythmruler.js:1274 -#: js/block.js:1046 -#: js/block.js:5109 -#: js/block.js:5118 -#: js/block.js:5129 -#: js/activity.js:3147 -#: js/palette.js:766 -#: js/palette.js:775 -#: js/palette.js:784 -#: js/palette.js:793 -#: js/palette.js:2076 -#: js/palette.js:2087 -#: js/palette.js:2098 -#: js/palette.js:2109 -#: js/palette.js:2119 -#: js/turtledefs.js:25 -#: js/basicblocks.js:1504 -#: js/basicblocks.js:1524 -#: js/basicblocks.js:1538 -#: js/basicblocks.js:3894 -#: js/basicblocks.js:3934 -#: js/basicblocks.js:3944 -#: js/basicblocks.js:3992 -#: js/basicblocks.js:4005 -#: js/basicblocks.js:4052 -#: js/basicblocks.js:4107 -#: js/basicblocks.js:4112 -#: js/basicblocks.js:4117 -#: js/rubrics.js:478 -#: js/macros.js:45 -#: js/blocks.js:816 -#: js/blocks.js:2437 -#: js/blocks.js:2438 -#: js/blocks.js:2630 -#: js/blocks.js:2874 -#: js/blocks.js:3030 -#: js/blocks.js:3940 -#: js/blocks.js:4793 -#: js/rhythmruler.js:1162 -#: js/rhythmruler.js:1164 -#: js/rhythmruler.js:1272 -#: js/rhythmruler.js:1274 -#: js/block.js:1050 -#: js/block.js:5120 -#: js/block.js:5129 -#: js/block.js:5140 -#: js/activity.js:2267 -#: js/palette.js:766 -#: js/palette.js:775 -#: js/palette.js:784 -#: js/palette.js:793 -#: js/palette.js:2094 -#: js/palette.js:2105 -#: js/palette.js:2116 -#: js/palette.js:2127 -#: js/palette.js:2137 -#: js/turtledefs.js:25 -#: js/basicblocks.js:1514 -#: js/basicblocks.js:1534 -#: js/basicblocks.js:1548 -#: js/basicblocks.js:3942 -#: js/basicblocks.js:3982 -#: js/basicblocks.js:3992 -#: js/basicblocks.js:4040 -#: js/basicblocks.js:4053 -#: js/basicblocks.js:4100 -#: js/basicblocks.js:4155 -#: js/basicblocks.js:4160 -#: js/basicblocks.js:4165 -#: js/rubrics.js:478 -#: js/macros.js:45 -#: js/blocks.js:809 -#: js/blocks.js:2430 -#: js/blocks.js:2431 -#: js/blocks.js:2623 -#: js/blocks.js:2867 -#: js/blocks.js:3023 -#: js/blocks.js:3931 -#: js/blocks.js:4784 -#: js/rhythmruler.js:1162 -#: js/rhythmruler.js:1164 -#: js/rhythmruler.js:1272 -#: js/rhythmruler.js:1274 -#: js/block.js:1050 -#: js/block.js:5120 -#: js/block.js:5129 -#: js/block.js:5140 -#: js/activity.js:2267 -#: js/palette.js:766 -#: js/palette.js:775 -#: js/palette.js:784 -#: js/palette.js:793 -#: js/palette.js:2094 -#: js/palette.js:2105 -#: js/palette.js:2116 -#: js/palette.js:2127 -#: js/palette.js:2137 -#: js/turtledefs.js:25 -#: js/basicblocks.js:1519 -#: js/basicblocks.js:1539 -#: js/basicblocks.js:1553 -#: js/basicblocks.js:3959 -#: js/basicblocks.js:3999 -#: js/basicblocks.js:4009 -#: js/basicblocks.js:4057 -#: js/basicblocks.js:4070 -#: js/basicblocks.js:4117 -#: js/basicblocks.js:4172 -#: js/basicblocks.js:4177 -#: js/basicblocks.js:4182 -#: js/rubrics.js:478 -#: js/macros.js:45 -#: js/blocks.js:809 -#: js/blocks.js:2430 -#: js/blocks.js:2431 -#: js/blocks.js:2623 -#: js/blocks.js:2867 -#: js/blocks.js:3023 -#: js/blocks.js:3931 -#: js/blocks.js:4784 -#: js/rhythmruler.js:1162 -#: js/rhythmruler.js:1164 -#: js/rhythmruler.js:1272 -#: js/rhythmruler.js:1274 -#: js/block.js:1050 -#: js/block.js:5120 -#: js/block.js:5129 -#: js/block.js:5140 -#: js/activity.js:2267 -#: js/palette.js:766 -#: js/palette.js:775 -#: js/palette.js:784 -#: js/palette.js:793 -#: js/palette.js:2094 -#: js/palette.js:2105 -#: js/palette.js:2116 -#: js/palette.js:2127 -#: js/palette.js:2137 -#: js/turtledefs.js:25 -#: js/basicblocks.js:1519 -#: js/basicblocks.js:1539 -#: js/basicblocks.js:1553 -#: js/basicblocks.js:3959 -#: js/basicblocks.js:3999 -#: js/basicblocks.js:4009 -#: js/basicblocks.js:4057 -#: js/basicblocks.js:4070 -#: js/basicblocks.js:4117 -#: js/basicblocks.js:4172 -#: js/basicblocks.js:4177 -#: js/basicblocks.js:4182 -#: js/rubrics.js:478 -#: js/macros.js:45 -#: js/blocks.js:808 -#: js/blocks.js:2429 -#: js/blocks.js:2430 -#: js/blocks.js:2622 -#: js/blocks.js:2866 -#: js/blocks.js:3022 -#: js/blocks.js:3930 -#: js/blocks.js:4783 -#: js/rhythmruler.js:1162 -#: js/rhythmruler.js:1164 -#: js/rhythmruler.js:1272 -#: js/rhythmruler.js:1274 -#: js/block.js:1050 -#: js/block.js:5120 -#: js/block.js:5129 -#: js/block.js:5140 -#: js/activity.js:2267 -#: js/palette.js:766 -#: js/palette.js:775 -#: js/palette.js:784 -#: js/palette.js:793 -#: js/palette.js:2094 -#: js/palette.js:2105 -#: js/palette.js:2116 -#: js/palette.js:2127 -#: js/palette.js:2137 -#: js/turtledefs.js:25 -#: js/basicblocks.js:1519 -#: js/basicblocks.js:1539 -#: js/basicblocks.js:1553 -#: js/basicblocks.js:3959 -#: js/basicblocks.js:3999 -#: js/basicblocks.js:4009 -#: js/basicblocks.js:4057 -#: js/basicblocks.js:4070 -#: js/basicblocks.js:4117 -#: js/basicblocks.js:4172 -#: js/basicblocks.js:4177 -#: js/basicblocks.js:4182 -#: js/rubrics.js:478 -#: js/macros.js:45 -#: js/blocks.js:808 -#: js/blocks.js:2429 -#: js/blocks.js:2430 -#: js/blocks.js:2622 -#: js/blocks.js:2866 -#: js/blocks.js:3022 -#: js/blocks.js:3930 -#: js/blocks.js:4783 -#: js/rhythmruler.js:1162 -#: js/rhythmruler.js:1164 -#: js/rhythmruler.js:1272 -#: js/rhythmruler.js:1274 -#: js/block.js:1050 -#: js/block.js:5120 -#: js/block.js:5129 -#: js/block.js:5140 -#: js/activity.js:2267 -#: js/palette.js:766 -#: js/palette.js:775 -#: js/palette.js:784 -#: js/palette.js:793 -#: js/palette.js:2094 -#: js/palette.js:2105 -#: js/palette.js:2116 -#: js/palette.js:2127 -#: js/palette.js:2137 -#: js/turtledefs.js:25 -#: js/basicblocks.js:1526 -#: js/basicblocks.js:1546 -#: js/basicblocks.js:1560 -#: js/basicblocks.js:3966 -#: js/basicblocks.js:4006 -#: js/basicblocks.js:4016 -#: js/basicblocks.js:4064 -#: js/basicblocks.js:4077 -#: js/basicblocks.js:4124 -#: js/basicblocks.js:4179 -#: js/basicblocks.js:4184 -#: js/basicblocks.js:4189 -#: js/rubrics.js:478 -#: js/macros.js:45 -#: js/blocks.js:808 -#: js/blocks.js:2429 -#: js/blocks.js:2430 -#: js/blocks.js:2622 -#: js/blocks.js:2866 -#: js/blocks.js:3022 -#: js/blocks.js:3930 -#: js/blocks.js:4783 -#: js/rhythmruler.js:1162 -#: js/rhythmruler.js:1164 -#: js/rhythmruler.js:1272 -#: js/rhythmruler.js:1274 -#: js/block.js:1162 -#: js/block.js:5410 -#: js/block.js:5419 -#: js/block.js:5430 -#: js/activity.js:2268 -#: js/palette.js:770 -#: js/palette.js:779 -#: js/palette.js:788 -#: js/palette.js:797 -#: js/palette.js:2098 -#: js/palette.js:2109 -#: js/palette.js:2120 -#: js/palette.js:2131 -#: js/palette.js:2141 -#: js/turtledefs.js:31 -#: js/basicblocks.js:1528 -#: js/basicblocks.js:1548 -#: js/basicblocks.js:1562 -#: js/basicblocks.js:3968 -#: js/basicblocks.js:4008 -#: js/basicblocks.js:4018 -#: js/basicblocks.js:4066 -#: js/basicblocks.js:4079 -#: js/basicblocks.js:4126 -#: js/basicblocks.js:4181 -#: js/basicblocks.js:4186 -#: js/basicblocks.js:4191 -#: js/rubrics.js:478 -#: js/macros.js:45 -#: js/blocks.js:1023 -#: js/blocks.js:2839 -#: js/blocks.js:2840 -#: js/blocks.js:3054 -#: js/blocks.js:3356 -#: js/blocks.js:3549 -#: js/blocks.js:4588 -#: js/blocks.js:5446 -#: js/musickeyboard.js:369 -#: js/pitchtimematrix.js:1612 -#: js/rhythmruler.js:1171 -#: js/rhythmruler.js:1173 -#: js/rhythmruler.js:1281 -#: js/rhythmruler.js:1283 -#: js/block.js:1162 -#: js/block.js:5410 -#: js/block.js:5419 -#: js/block.js:5430 -#: js/activity.js:2268 -#: js/palette.js:770 -#: js/palette.js:779 -#: js/palette.js:788 -#: js/palette.js:797 -#: js/palette.js:2098 -#: js/palette.js:2109 -#: js/palette.js:2120 -#: js/palette.js:2131 -#: js/palette.js:2141 -#: js/turtledefs.js:35 -#: js/basicblocks.js:1528 -#: js/basicblocks.js:1548 -#: js/basicblocks.js:1562 -#: js/basicblocks.js:3968 -#: js/basicblocks.js:4008 -#: js/basicblocks.js:4018 -#: js/basicblocks.js:4066 -#: js/basicblocks.js:4079 -#: js/basicblocks.js:4126 -#: js/basicblocks.js:4181 -#: js/basicblocks.js:4186 -#: js/basicblocks.js:4191 -#: js/rubrics.js:478 -#: js/macros.js:45 -#: js/blocks.js:1023 -#: js/blocks.js:2839 -#: js/blocks.js:2840 -#: js/blocks.js:3054 -#: js/blocks.js:3356 -#: js/blocks.js:3549 -#: js/blocks.js:4588 -#: js/blocks.js:5446 -#: js/musickeyboard.js:369 -#: js/pitchtimematrix.js:1612 -#: js/rhythmruler.js:1171 -#: js/rhythmruler.js:1173 -#: js/rhythmruler.js:1281 -#: js/rhythmruler.js:1283 -#: js/block.js:1162 -#: js/block.js:5410 -#: js/block.js:5419 -#: js/block.js:5430 -#: js/activity.js:2133 -#: js/palette.js:770 -#: js/palette.js:779 -#: js/palette.js:788 -#: js/palette.js:797 -#: js/palette.js:2098 -#: js/palette.js:2109 -#: js/palette.js:2120 -#: js/palette.js:2131 -#: js/palette.js:2141 -#: js/turtledefs.js:35 -#: js/basicblocks.js:1528 -#: js/basicblocks.js:1548 -#: js/basicblocks.js:1562 -#: js/basicblocks.js:3968 -#: js/basicblocks.js:4008 -#: js/basicblocks.js:4018 -#: js/basicblocks.js:4066 -#: js/basicblocks.js:4079 -#: js/basicblocks.js:4126 -#: js/basicblocks.js:4181 -#: js/basicblocks.js:4186 -#: js/basicblocks.js:4191 -#: js/rubrics.js:478 -#: js/macros.js:45 -#: js/blocks.js:1023 -#: js/blocks.js:2839 -#: js/blocks.js:2840 -#: js/blocks.js:3054 -#: js/blocks.js:3356 -#: js/blocks.js:3549 -#: js/blocks.js:4588 -#: js/blocks.js:5446 -#: js/musickeyboard.js:369 -#: js/pitchtimematrix.js:1612 -#: js/rhythmruler.js:1171 -#: js/rhythmruler.js:1173 -#: js/rhythmruler.js:1281 -#: js/rhythmruler.js:1283 -#: js/block.js:1162 -#: js/block.js:5410 -#: js/block.js:5419 -#: js/block.js:5430 -#: js/activity.js:2133 -#: js/palette.js:770 -#: js/palette.js:779 -#: js/palette.js:788 -#: js/palette.js:797 -#: js/palette.js:2098 -#: js/palette.js:2109 -#: js/palette.js:2120 -#: js/palette.js:2131 -#: js/palette.js:2141 -#: js/turtledefs.js:35 -#: js/basicblocks.js:1528 -#: js/basicblocks.js:1548 -#: js/basicblocks.js:1562 -#: js/basicblocks.js:3968 -#: js/basicblocks.js:4008 -#: js/basicblocks.js:4018 -#: js/basicblocks.js:4066 -#: js/basicblocks.js:4079 -#: js/basicblocks.js:4126 -#: js/basicblocks.js:4181 -#: js/basicblocks.js:4186 -#: js/basicblocks.js:4191 -#: js/rubrics.js:478 -#: js/macros.js:45 -#: js/blocks.js:1023 -#: js/blocks.js:2839 -#: js/blocks.js:2840 -#: js/blocks.js:3054 -#: js/blocks.js:3356 -#: js/blocks.js:3549 -#: js/blocks.js:4588 -#: js/blocks.js:5446 -#: js/musickeyboard.js:369 -#: js/pitchtimematrix.js:1612 -#: js/rhythmruler.js:1171 -#: js/rhythmruler.js:1173 -#: js/rhythmruler.js:1281 -#: js/rhythmruler.js:1283 -#: js/block.js:1162 -#: js/block.js:5410 -#: js/block.js:5419 -#: js/block.js:5430 -#: js/activity.js:2127 -#: js/palette.js:770 -#: js/palette.js:779 -#: js/palette.js:788 -#: js/palette.js:797 -#: js/palette.js:2098 -#: js/palette.js:2109 -#: js/palette.js:2120 -#: js/palette.js:2131 -#: js/palette.js:2141 -#: js/turtledefs.js:35 -#: js/basicblocks.js:1528 -#: js/basicblocks.js:1548 -#: js/basicblocks.js:1562 -#: js/basicblocks.js:3968 -#: js/basicblocks.js:4008 -#: js/basicblocks.js:4018 -#: js/basicblocks.js:4066 -#: js/basicblocks.js:4079 -#: js/basicblocks.js:4127 -#: js/basicblocks.js:4182 -#: js/basicblocks.js:4187 -#: js/basicblocks.js:4192 -#: js/rubrics.js:478 -#: js/macros.js:45 -#: js/blocks.js:1023 -#: js/blocks.js:2849 -#: js/blocks.js:2850 -#: js/blocks.js:3064 -#: js/blocks.js:3366 -#: js/blocks.js:3559 -#: js/blocks.js:4598 -#: js/blocks.js:5455 -#: js/musickeyboard.js:369 -#: js/pitchtimematrix.js:1612 -#: js/rhythmruler.js:1171 -#: js/rhythmruler.js:1173 -#: js/rhythmruler.js:1281 -#: js/rhythmruler.js:1283 -#: js/block.js:1162 -#: js/block.js:5410 -#: js/block.js:5419 -#: js/block.js:5430 -#: js/activity.js:2127 -#: js/palette.js:770 -#: js/palette.js:779 -#: js/palette.js:788 -#: js/palette.js:797 -#: js/palette.js:2098 -#: js/palette.js:2109 -#: js/palette.js:2120 -#: js/palette.js:2131 -#: js/palette.js:2141 -#: js/turtledefs.js:35 -#: js/basicblocks.js:1527 -#: js/basicblocks.js:1547 -#: js/basicblocks.js:1561 -#: js/basicblocks.js:3967 -#: js/basicblocks.js:4007 -#: js/basicblocks.js:4017 -#: js/basicblocks.js:4065 -#: js/basicblocks.js:4078 -#: js/basicblocks.js:4126 -#: js/basicblocks.js:4181 -#: js/basicblocks.js:4186 -#: js/basicblocks.js:4191 -#: js/rubrics.js:478 -#: js/macros.js:45 -#: js/blocks.js:1023 -#: js/blocks.js:2849 -#: js/blocks.js:2850 -#: js/blocks.js:3064 -#: js/blocks.js:3366 -#: js/blocks.js:3559 -#: js/blocks.js:4598 -#: js/blocks.js:5455 -#: js/musickeyboard.js:369 -#: js/pitchtimematrix.js:1612 -#: js/rhythmruler.js:1171 -#: js/rhythmruler.js:1173 -#: js/rhythmruler.js:1281 -#: js/rhythmruler.js:1283 -#: js/block.js:1162 -#: js/block.js:5410 -#: js/block.js:5419 -#: js/block.js:5430 -#: js/activity.js:2127 -#: js/palette.js:770 -#: js/palette.js:779 -#: js/palette.js:788 -#: js/palette.js:797 -#: js/palette.js:2098 -#: js/palette.js:2109 -#: js/palette.js:2120 -#: js/palette.js:2131 -#: js/palette.js:2141 -#: js/turtledefs.js:35 -#: js/basicblocks.js:1527 -#: js/basicblocks.js:1547 -#: js/basicblocks.js:1561 -#: js/basicblocks.js:3967 -#: js/basicblocks.js:4007 -#: js/basicblocks.js:4017 -#: js/basicblocks.js:4065 -#: js/basicblocks.js:4078 -#: js/basicblocks.js:4126 -#: js/basicblocks.js:4181 -#: js/basicblocks.js:4186 -#: js/basicblocks.js:4191 -#: js/rubrics.js:478 -#: js/macros.js:45 -#: js/blocks.js:1023 -#: js/blocks.js:2849 -#: js/blocks.js:2850 -#: js/blocks.js:3064 -#: js/blocks.js:3366 -#: js/blocks.js:3559 -#: js/blocks.js:4598 -#: js/blocks.js:5455 -#: js/musickeyboard.js:369 -#: js/pitchtimematrix.js:1612 -#: js/rhythmruler.js:1171 -#: js/rhythmruler.js:1173 -#: js/rhythmruler.js:1281 -#: js/rhythmruler.js:1283 -#: js/block.js:1162 -#: js/block.js:5410 -#: js/block.js:5419 -#: js/block.js:5430 -#: js/activity.js:2127 -#: js/palette.js:770 -#: js/palette.js:779 -#: js/palette.js:788 -#: js/palette.js:797 -#: js/palette.js:2098 -#: js/palette.js:2109 -#: js/palette.js:2120 -#: js/palette.js:2131 -#: js/palette.js:2141 -#: js/turtledefs.js:35 -#: js/basicblocks.js:1527 -#: js/basicblocks.js:1547 -#: js/basicblocks.js:1561 -#: js/basicblocks.js:3967 -#: js/basicblocks.js:4007 -#: js/basicblocks.js:4017 -#: js/basicblocks.js:4065 -#: js/basicblocks.js:4078 -#: js/basicblocks.js:4126 -#: js/basicblocks.js:4181 -#: js/basicblocks.js:4186 -#: js/basicblocks.js:4191 -#: js/rubrics.js:478 -#: js/macros.js:45 -#: js/blocks.js:1023 -#: js/blocks.js:2849 -#: js/blocks.js:2850 -#: js/blocks.js:3064 -#: js/blocks.js:3366 -#: js/blocks.js:3559 -#: js/blocks.js:4598 -#: js/blocks.js:5455 -#: js/musickeyboard.js:369 -#: js/pitchtimematrix.js:1612 -#: js/rhythmruler.js:1171 -#: js/rhythmruler.js:1173 -#: js/rhythmruler.js:1281 -#: js/rhythmruler.js:1283 -#: js/block.js:1162 -#: js/block.js:5410 -#: js/block.js:5419 -#: js/block.js:5430 -#: js/activity.js:2127 -#: js/palette.js:770 -#: js/palette.js:779 -#: js/palette.js:788 -#: js/palette.js:797 -#: js/palette.js:2098 -#: js/palette.js:2109 -#: js/palette.js:2120 -#: js/palette.js:2131 -#: js/palette.js:2141 -#: js/turtledefs.js:35 -#: js/basicblocks.js:1531 -#: js/basicblocks.js:1551 -#: js/basicblocks.js:1565 -#: js/basicblocks.js:3971 -#: js/basicblocks.js:4011 -#: js/basicblocks.js:4021 -#: js/basicblocks.js:4069 -#: js/basicblocks.js:4082 -#: js/basicblocks.js:4130 -#: js/basicblocks.js:4185 -#: js/basicblocks.js:4190 -#: js/basicblocks.js:4195 -#: js/rubrics.js:478 -#: js/macros.js:45 -#: js/blocks.js:1023 -#: js/blocks.js:2849 -#: js/blocks.js:2850 -#: js/blocks.js:3064 -#: js/blocks.js:3366 -#: js/blocks.js:3559 -#: js/blocks.js:4598 -#: js/blocks.js:5455 -#: js/musickeyboard.js:369 -#: js/pitchtimematrix.js:1612 -#: js/rhythmruler.js:1171 -#: js/rhythmruler.js:1173 -#: js/rhythmruler.js:1281 -#: js/rhythmruler.js:1283 -#: js/block.js:1162 -#: js/block.js:5410 -#: js/block.js:5419 -#: js/block.js:5430 -#: js/activity.js:2127 -#: js/palette.js:770 -#: js/palette.js:779 -#: js/palette.js:788 -#: js/palette.js:797 -#: js/palette.js:2098 -#: js/palette.js:2109 -#: js/palette.js:2120 -#: js/palette.js:2131 -#: js/palette.js:2141 -#: js/turtledefs.js:35 -#: js/basicblocks.js:1531 -#: js/basicblocks.js:1551 -#: js/basicblocks.js:1565 -#: js/basicblocks.js:3971 -#: js/basicblocks.js:4011 -#: js/basicblocks.js:4021 -#: js/basicblocks.js:4069 -#: js/basicblocks.js:4082 -#: js/basicblocks.js:4130 -#: js/basicblocks.js:4185 -#: js/basicblocks.js:4190 -#: js/basicblocks.js:4195 -#: js/rubrics.js:478 -#: js/macros.js:45 -#: js/blocks.js:1023 -#: js/blocks.js:2849 -#: js/blocks.js:2850 -#: js/blocks.js:3064 -#: js/blocks.js:3366 -#: js/blocks.js:3559 -#: js/blocks.js:4598 -#: js/blocks.js:5455 -#: js/musickeyboard.js:369 -#: js/pitchtimematrix.js:1612 -#: js/rhythmruler.js:1171 -#: js/rhythmruler.js:1173 -#: js/rhythmruler.js:1281 -#: js/rhythmruler.js:1283 -#: js/block.js:1162 -#: js/block.js:5410 -#: js/block.js:5419 -#: js/block.js:5430 -#: js/activity.js:2127 -#: js/palette.js:770 -#: js/palette.js:779 -#: js/palette.js:788 -#: js/palette.js:797 -#: js/palette.js:2098 -#: js/palette.js:2109 -#: js/palette.js:2120 -#: js/palette.js:2131 -#: js/palette.js:2141 -#: js/turtledefs.js:35 -#: js/basicblocks.js:1531 -#: js/basicblocks.js:1551 -#: js/basicblocks.js:1565 -#: js/basicblocks.js:3971 -#: js/basicblocks.js:4011 -#: js/basicblocks.js:4021 -#: js/basicblocks.js:4069 -#: js/basicblocks.js:4082 -#: js/basicblocks.js:4130 -#: js/basicblocks.js:4185 -#: js/basicblocks.js:4190 -#: js/basicblocks.js:4195 -#: js/rubrics.js:478 -#: js/macros.js:45 -#: js/blocks.js:1023 -#: js/blocks.js:2849 -#: js/blocks.js:2850 -#: js/blocks.js:3064 -#: js/blocks.js:3366 -#: js/blocks.js:3559 -#: js/blocks.js:4598 -#: js/blocks.js:5455 -#: js/musickeyboard.js:369 -#: js/pitchtimematrix.js:1612 -#: js/rhythmruler.js:1171 -#: js/rhythmruler.js:1173 -#: js/rhythmruler.js:1281 -#: js/rhythmruler.js:1283 -#: js/block.js:1162 -#: js/block.js:5413 -#: js/block.js:5422 -#: js/block.js:5433 -#: js/activity.js:2127 -#: js/palette.js:770 -#: js/palette.js:779 -#: js/palette.js:788 -#: js/palette.js:797 -#: js/palette.js:2098 -#: js/palette.js:2109 -#: js/palette.js:2120 -#: js/palette.js:2131 -#: js/palette.js:2141 -#: js/turtledefs.js:35 -#: js/basicblocks.js:1537 -#: js/basicblocks.js:1557 -#: js/basicblocks.js:1571 -#: js/basicblocks.js:3977 -#: js/basicblocks.js:4017 -#: js/basicblocks.js:4027 -#: js/basicblocks.js:4075 -#: js/basicblocks.js:4088 -#: js/basicblocks.js:4136 -#: js/basicblocks.js:4191 -#: js/basicblocks.js:4196 -#: js/basicblocks.js:4201 -#: js/rubrics.js:478 -#: js/macros.js:45 -#: js/blocks.js:1023 -#: js/blocks.js:2849 -#: js/blocks.js:2850 -#: js/blocks.js:3064 -#: js/blocks.js:3366 -#: js/blocks.js:3559 -#: js/blocks.js:4598 -#: js/blocks.js:5455 -#: js/musickeyboard.js:369 -#: js/pitchtimematrix.js:1612 -#: js/rhythmruler.js:1171 -#: js/rhythmruler.js:1173 -#: js/rhythmruler.js:1281 -#: js/rhythmruler.js:1283 -#: js/block.js:1162 -#: js/block.js:5430 -#: js/block.js:5439 -#: js/block.js:5450 -#: js/activity.js:2134 -#: js/palette.js:810 -#: js/palette.js:819 -#: js/palette.js:828 -#: js/palette.js:837 -#: js/palette.js:2142 -#: js/palette.js:2153 -#: js/palette.js:2164 -#: js/palette.js:2175 -#: js/palette.js:2185 -#: js/turtledefs.js:35 -#: js/basicblocks.js:1542 -#: js/basicblocks.js:1562 -#: js/basicblocks.js:1576 -#: js/basicblocks.js:3982 -#: js/basicblocks.js:4022 -#: js/basicblocks.js:4032 -#: js/basicblocks.js:4080 -#: js/basicblocks.js:4093 -#: js/basicblocks.js:4141 -#: js/basicblocks.js:4196 -#: js/basicblocks.js:4201 -#: js/basicblocks.js:4206 -#: js/rubrics.js:478 -#: js/macros.js:45 -#: js/blocks.js:1023 -#: js/blocks.js:2849 -#: js/blocks.js:2850 -#: js/blocks.js:3064 -#: js/blocks.js:3366 -#: js/blocks.js:3559 -#: js/blocks.js:4600 -#: js/blocks.js:5457 -#: js/musickeyboard.js:369 -#: js/pitchtimematrix.js:1612 -#: js/rhythmruler.js:1176 -#: js/rhythmruler.js:1178 -#: js/rhythmruler.js:1286 -#: js/rhythmruler.js:1288 -#: js/block.js:1162 -#: js/block.js:5430 -#: js/block.js:5439 -#: js/block.js:5450 -#: js/activity.js:2134 -#: js/palette.js:810 -#: js/palette.js:819 -#: js/palette.js:828 -#: js/palette.js:837 -#: js/palette.js:2142 -#: js/palette.js:2153 -#: js/palette.js:2164 -#: js/palette.js:2175 -#: js/palette.js:2185 -#: js/turtledefs.js:35 -#: js/basicblocks.js:1542 -#: js/basicblocks.js:1562 -#: js/basicblocks.js:1576 -#: js/basicblocks.js:3982 -#: js/basicblocks.js:4022 -#: js/basicblocks.js:4032 -#: js/basicblocks.js:4080 -#: js/basicblocks.js:4093 -#: js/basicblocks.js:4141 -#: js/basicblocks.js:4196 -#: js/basicblocks.js:4201 -#: js/basicblocks.js:4206 -#: js/rubrics.js:478 -#: js/macros.js:45 -#: js/blocks.js:1023 -#: js/blocks.js:2849 -#: js/blocks.js:2850 -#: js/blocks.js:3064 -#: js/blocks.js:3366 -#: js/blocks.js:3559 -#: js/blocks.js:4600 -#: js/blocks.js:5457 -#: js/musickeyboard.js:369 -#: js/pitchtimematrix.js:1612 -#: js/rhythmruler.js:1176 -#: js/rhythmruler.js:1178 -#: js/rhythmruler.js:1286 -#: js/rhythmruler.js:1288 -#: js/block.js:1162 -#: js/block.js:5430 -#: js/block.js:5439 -#: js/block.js:5450 -#: js/activity.js:2134 -#: js/palette.js:810 -#: js/palette.js:819 -#: js/palette.js:828 -#: js/palette.js:837 -#: js/palette.js:2142 -#: js/palette.js:2153 -#: js/palette.js:2164 -#: js/palette.js:2175 -#: js/palette.js:2185 -#: js/turtledefs.js:35 -#: js/basicblocks.js:1542 -#: js/basicblocks.js:1562 -#: js/basicblocks.js:1576 -#: js/basicblocks.js:3982 -#: js/basicblocks.js:4022 -#: js/basicblocks.js:4032 -#: js/basicblocks.js:4080 -#: js/basicblocks.js:4093 -#: js/basicblocks.js:4141 -#: js/basicblocks.js:4196 -#: js/basicblocks.js:4201 -#: js/basicblocks.js:4206 -#: js/rubrics.js:478 -#: js/macros.js:45 -#: js/blocks.js:1023 -#: js/blocks.js:2849 -#: js/blocks.js:2850 -#: js/blocks.js:3064 -#: js/blocks.js:3366 -#: js/blocks.js:3559 -#: js/blocks.js:4600 -#: js/blocks.js:5457 -#: js/musickeyboard.js:369 -#: js/pitchtimematrix.js:1612 -#: js/rhythmruler.js:1176 -#: js/rhythmruler.js:1178 -#: js/rhythmruler.js:1286 -#: js/rhythmruler.js:1288 -#: js/block.js:1162 -#: js/block.js:5445 -#: js/block.js:5454 -#: js/block.js:5465 -#: js/activity.js:2137 -#: js/palette.js:810 -#: js/palette.js:819 -#: js/palette.js:828 -#: js/palette.js:837 -#: js/palette.js:2142 -#: js/palette.js:2153 -#: js/palette.js:2164 -#: js/palette.js:2175 -#: js/palette.js:2185 -#: js/turtledefs.js:35 -#: js/basicblocks.js:1553 -#: js/basicblocks.js:1573 -#: js/basicblocks.js:1587 -#: js/basicblocks.js:3993 -#: js/basicblocks.js:4033 -#: js/basicblocks.js:4043 -#: js/basicblocks.js:4091 -#: js/basicblocks.js:4104 -#: js/basicblocks.js:4152 -#: js/basicblocks.js:4207 -#: js/basicblocks.js:4212 -#: js/basicblocks.js:4217 -#: js/rubrics.js:478 -#: js/macros.js:45 -#: js/blocks.js:1023 -#: js/blocks.js:2849 -#: js/blocks.js:2850 -#: js/blocks.js:3064 -#: js/blocks.js:3366 -#: js/blocks.js:3559 -#: js/blocks.js:4600 -#: js/blocks.js:5457 -#: js/musickeyboard.js:370 -#: js/pitchtimematrix.js:1642 -#: js/rhythmruler.js:1176 -#: js/rhythmruler.js:1178 -#: js/rhythmruler.js:1286 -#: js/rhythmruler.js:1288 -#: js/block.js:1165 -#: js/block.js:5575 -#: js/block.js:5584 -#: js/block.js:5595 -#: js/activity.js:2240 -#: js/palette.js:812 -#: js/palette.js:821 -#: js/palette.js:830 -#: js/palette.js:839 -#: js/palette.js:2144 -#: js/palette.js:2155 -#: js/palette.js:2166 -#: js/palette.js:2177 -#: js/palette.js:2187 -#: js/turtledefs.js:35 -#: js/basicblocks.js:1559 -#: js/basicblocks.js:1579 -#: js/basicblocks.js:1593 -#: js/basicblocks.js:4003 -#: js/basicblocks.js:4043 -#: js/basicblocks.js:4053 -#: js/basicblocks.js:4101 -#: js/basicblocks.js:4114 -#: js/basicblocks.js:4162 -#: js/basicblocks.js:4217 -#: js/basicblocks.js:4222 -#: js/basicblocks.js:4227 -#: js/rubrics.js:478 -#: js/macros.js:45 -#: js/macros.js:46 -#: js/blocks.js:1025 -#: js/blocks.js:2860 -#: js/blocks.js:2861 -#: js/blocks.js:3075 -#: js/blocks.js:3377 -#: js/blocks.js:3570 -#: js/blocks.js:4612 -#: js/blocks.js:5477 -#: js/musickeyboard.js:375 -#: js/pitchtimematrix.js:1716 -#: js/rhythmruler.js:1176 -#: js/rhythmruler.js:1178 -#: js/rhythmruler.js:1286 -#: js/rhythmruler.js:1288 -#: js/block.js:1186 -#: js/block.js:5751 -#: js/block.js:5760 -#: js/block.js:5771 -#: js/activity.js:2363 -#: js/palette.js:816 -#: js/palette.js:825 -#: js/palette.js:834 -#: js/palette.js:843 -#: js/palette.js:2148 -#: js/palette.js:2159 -#: js/palette.js:2170 -#: js/palette.js:2181 -#: js/palette.js:2190 -#: js/turtledefs.js:35 -#: js/basicblocks.js:1572 -#: js/basicblocks.js:1592 -#: js/basicblocks.js:1606 -#: js/basicblocks.js:4069 -#: js/basicblocks.js:4079 -#: js/basicblocks.js:4127 -#: js/basicblocks.js:4140 -#: js/basicblocks.js:4184 -#: js/basicblocks.js:4207 -#: js/basicblocks.js:4262 -#: js/basicblocks.js:4267 -#: js/basicblocks.js:4272 -#: js/rubrics.js:478 -#: js/macros.js:47 -#: js/macros.js:48 -#: js/macros.js:66 -#: js/macros.js:66 -#: js/macros.js:68 -#: js/macros.js:141 -#: js/blocks.js:1034 -#: js/blocks.js:2922 -#: js/blocks.js:2923 -#: js/blocks.js:3137 -#: js/blocks.js:3442 -#: js/blocks.js:3636 -#: js/blocks.js:4680 -#: js/blocks.js:5545 -#: js/musickeyboard.js:1823 -#: js/pitchtimematrix.js:3385 -#: js/rhythmruler.js:1229 -#: js/rhythmruler.js:1231 -#: js/rhythmruler.js:1340 -#: js/rhythmruler.js:1342 -#: js/RhythmBlockPaletteBlocks.js:14 -#: js/RhythmBlockPaletteBlocks.js:177 -#: js/RhythmBlockPaletteBlocks.js:14 -#: js/RhythmBlockPaletteBlocks.js:177 -#: js/RhythmBlockPaletteBlocks.js:14 -#: js/RhythmBlockPaletteBlocks.js:177 -#: js/RhythmBlockPaletteBlocks.js:14 -#: js/RhythmBlockPaletteBlocks.js:177 -#: js/RhythmBlockPaletteBlocks.js:14 -#: js/RhythmBlockPaletteBlocks.js:170 -#: js/block.js:1436 -#: js/block.js:7910 -#: js/block.js:7931 -#: js/block.js:7948 -#: js/activity.js:2693 -#: js/palette.js:932 -#: js/palette.js:941 -#: js/palette.js:950 -#: js/palette.js:959 -#: js/palette.js:2511 -#: js/palette.js:2522 -#: js/palette.js:2533 -#: js/palette.js:2544 -#: js/palette.js:2563 -#: js/turtledefs.js:76 -#: js/rubrics.js:497 -#: js/macros.js:153 -#: js/macros.js:249 -#: js/macros.js:250 -#: js/macros.js:259 -#: js/macros.js:801 -#: js/blocks.js:1120 -#: js/blocks.js:3549 -#: js/blocks.js:3550 -#: js/blocks.js:3786 -#: js/blocks.js:4168 -#: js/blocks.js:4363 -#: js/blocks.js:5526 -#: js/blocks.js:6776 -#: js/ActionBlocks.js:99 -#: js/ActionBlocks.js:147 -#: js/ActionBlocks.js:350 -#: js/ActionBlocks.js:415 -#: js/ActionBlocks.js:569 -#: js/ActionBlocks.js:629 -#: js/ActionBlocks.js:765 -#: js/ActionBlocks.js:768 -#: js/ActionBlocks.js:773 -#: js/ActionBlocks.js:805 -#: js/MeterBlocks.js:412 -#: js/MeterBlocks.js:479 -#: js/MeterBlocks.js:568 -#: js/MeterBlocks.js:669 -#: js/musickeyboard.js:2360 -#: js/pitchtimematrix.js:4708 -#: js/rhythmruler.js:1602 -#: js/rhythmruler.js:1610 -#: js/rhythmruler.js:1911 -#: js/rhythmruler.js:1919 -#: js/block.js:1436 -#: js/block.js:8089 -#: js/block.js:8110 -#: js/block.js:8127 -#: js/activity.js:2968 -#: js/palette.js:503 -#: js/palette.js:512 -#: js/palette.js:521 -#: js/palette.js:530 -#: js/palette.js:1122 -#: js/palette.js:1133 -#: js/palette.js:1144 -#: js/palette.js:1155 -#: js/palette.js:1174 -#: js/turtledefs.js:76 -#: js/rubrics.js:497 -#: js/macros.js:153 -#: js/macros.js:249 -#: js/macros.js:250 -#: js/macros.js:259 -#: js/macros.js:801 -#: js/blocks.js:1120 -#: js/blocks.js:3572 -#: js/blocks.js:3573 -#: js/blocks.js:3809 -#: js/blocks.js:4191 -#: js/blocks.js:4382 -#: js/blocks.js:5545 -#: js/blocks.js:6795 -#: js/ActionBlocks.js:99 -#: js/ActionBlocks.js:147 -#: js/ActionBlocks.js:343 -#: js/ActionBlocks.js:408 -#: js/ActionBlocks.js:562 -#: js/ActionBlocks.js:622 -#: js/ActionBlocks.js:749 -#: js/ActionBlocks.js:752 -#: js/ActionBlocks.js:757 -#: js/ActionBlocks.js:789 -#: js/MeterBlocks.js:390 -#: js/MeterBlocks.js:419 -#: js/MeterBlocks.js:455 -#: js/MeterBlocks.js:494 -#: js/musickeyboard.js:2421 -#: js/pitchtimematrix.js:4706 -#: js/rhythmruler.js:1602 -#: js/rhythmruler.js:1610 -#: js/rhythmruler.js:1911 -#: js/rhythmruler.js:1919 -#: js/block.js:1436 -#: js/block.js:8073 -#: js/block.js:8094 -#: js/block.js:8111 -#: js/activity.js:2984 -#: js/palette.js:503 -#: js/palette.js:512 -#: js/palette.js:521 -#: js/palette.js:530 -#: js/palette.js:1122 -#: js/palette.js:1133 -#: js/palette.js:1144 -#: js/palette.js:1155 -#: js/palette.js:1174 -#: js/turtledefs.js:78 -#: js/rubrics.js:501 -#: js/macros.js:153 -#: js/macros.js:249 -#: js/macros.js:250 -#: js/macros.js:259 -#: js/macros.js:801 -#: js/blocks.js:1112 -#: js/blocks.js:3545 -#: js/blocks.js:3546 -#: js/blocks.js:3779 -#: js/blocks.js:4160 -#: js/blocks.js:4346 -#: js/blocks.js:5496 -#: js/blocks.js:6721 -#: js/ActionBlocks.js:99 -#: js/ActionBlocks.js:147 -#: js/ActionBlocks.js:343 -#: js/ActionBlocks.js:408 -#: js/ActionBlocks.js:562 -#: js/ActionBlocks.js:622 -#: js/ActionBlocks.js:750 -#: js/ActionBlocks.js:753 -#: js/ActionBlocks.js:758 -#: js/ActionBlocks.js:790 -#: js/MeterBlocks.js:396 -#: js/MeterBlocks.js:425 -#: js/MeterBlocks.js:461 -#: js/MeterBlocks.js:500 -#: js/musickeyboard.js:2495 -#: js/pitchtimematrix.js:4718 -#: js/rhythmruler.js:1602 -#: js/rhythmruler.js:1610 -#: js/rhythmruler.js:1911 -#: js/rhythmruler.js:1919 -#: js/block.js:1436 -#: js/block.js:8073 -#: js/block.js:8094 -#: js/block.js:8111 -#: js/activity.js:2984 -#: js/palette.js:503 -#: js/palette.js:512 -#: js/palette.js:521 -#: js/palette.js:530 -#: js/palette.js:1122 -#: js/palette.js:1133 -#: js/palette.js:1144 -#: js/palette.js:1155 -#: js/palette.js:1174 -#: js/turtledefs.js:78 -#: js/rubrics.js:501 -#: js/macros.js:153 -#: js/macros.js:249 -#: js/macros.js:250 -#: js/macros.js:259 -#: js/macros.js:801 -#: js/blocks.js:1112 -#: js/blocks.js:3545 -#: js/blocks.js:3546 -#: js/blocks.js:3779 -#: js/blocks.js:4160 -#: js/blocks.js:4346 -#: js/blocks.js:5496 -#: js/blocks.js:6721 -#: js/ActionBlocks.js:99 -#: js/ActionBlocks.js:147 -#: js/ActionBlocks.js:343 -#: js/ActionBlocks.js:408 -#: js/ActionBlocks.js:562 -#: js/ActionBlocks.js:622 -#: js/ActionBlocks.js:750 -#: js/ActionBlocks.js:753 -#: js/ActionBlocks.js:758 -#: js/ActionBlocks.js:790 -#: js/MeterBlocks.js:396 -#: js/MeterBlocks.js:425 -#: js/MeterBlocks.js:461 -#: js/MeterBlocks.js:500 -#: js/musickeyboard.js:2495 -#: js/pitchtimematrix.js:4718 -#: js/rhythmruler.js:1602 -#: js/rhythmruler.js:1610 -#: js/rhythmruler.js:1911 -#: js/rhythmruler.js:1919 -#: js/block.js:1436 -#: js/block.js:8073 -#: js/block.js:8094 -#: js/block.js:8111 -#: js/activity.js:2984 -#: js/palette.js:506 -#: js/palette.js:515 -#: js/palette.js:524 -#: js/palette.js:533 -#: js/palette.js:1128 -#: js/palette.js:1139 -#: js/palette.js:1150 -#: js/palette.js:1161 -#: js/palette.js:1180 -#: js/turtledefs.js:78 -#: js/rubrics.js:501 -#: js/macros.js:153 -#: js/macros.js:249 -#: js/macros.js:250 -#: js/macros.js:259 -#: js/macros.js:801 -#: js/blocks.js:1112 -#: js/blocks.js:3545 -#: js/blocks.js:3546 -#: js/blocks.js:3779 -#: js/blocks.js:4160 -#: js/blocks.js:4346 -#: js/blocks.js:5496 -#: js/blocks.js:6721 -#: js/ActionBlocks.js:99 -#: js/ActionBlocks.js:147 -#: js/ActionBlocks.js:343 -#: js/ActionBlocks.js:408 -#: js/ActionBlocks.js:562 -#: js/ActionBlocks.js:622 -#: js/ActionBlocks.js:750 -#: js/ActionBlocks.js:753 -#: js/ActionBlocks.js:758 -#: js/ActionBlocks.js:790 -#: js/MeterBlocks.js:396 -#: js/MeterBlocks.js:425 -#: js/MeterBlocks.js:461 -#: js/MeterBlocks.js:500 -#: js/musickeyboard.js:2495 -#: js/pitchtimematrix.js:4718 -#: js/rhythmruler.js:1602 -#: js/rhythmruler.js:1610 -#: js/rhythmruler.js:1911 -#: js/rhythmruler.js:1919 -#: js/block.js:1414 -#: js/block.js:4018 -#: js/block.js:4036 -#: js/block.js:4047 -#: js/activity.js:2899 -#: js/palette.js:486 -#: js/palette.js:495 -#: js/palette.js:504 -#: js/palette.js:513 -#: js/palette.js:1089 -#: js/palette.js:1100 -#: js/palette.js:1111 -#: js/palette.js:1122 -#: js/palette.js:1141 -#: js/turtledefs.js:78 -#: js/rubrics.js:501 -#: js/macros.js:170 -#: js/macros.js:266 -#: js/macros.js:267 -#: js/macros.js:276 -#: js/macros.js:828 -#: js/blocks.js:1071 -#: js/blocks.js:3210 -#: js/blocks.js:3211 -#: js/blocks.js:3428 -#: js/blocks.js:3752 -#: js/blocks.js:3932 -#: js/blocks.js:4976 -#: js/blocks.js:5845 -#: js/ActionBlocks.js:99 -#: js/ActionBlocks.js:147 -#: js/ActionBlocks.js:343 -#: js/ActionBlocks.js:408 -#: js/ActionBlocks.js:562 -#: js/ActionBlocks.js:622 -#: js/ActionBlocks.js:750 -#: js/ActionBlocks.js:753 -#: js/ActionBlocks.js:758 -#: js/ActionBlocks.js:790 -#: js/MeterBlocks.js:396 -#: js/MeterBlocks.js:426 -#: js/MeterBlocks.js:462 -#: js/MeterBlocks.js:501 -#: js/musickeyboard.js:2495 -#: js/rhythmruler.js:1874 -#: js/rhythmruler.js:1881 -#: js/rhythmruler.js:2065 -#: js/rhythmruler.js:2072 -#: js/phrasemaker.js:4226 -#: js/block.js:1414 -#: js/block.js:4020 -#: js/block.js:4038 -#: js/block.js:4049 -#: js/activity.js:2899 -#: js/palette.js:486 -#: js/palette.js:495 -#: js/palette.js:504 -#: js/palette.js:513 -#: js/palette.js:1089 -#: js/palette.js:1100 -#: js/palette.js:1111 -#: js/palette.js:1122 -#: js/palette.js:1141 -#: js/turtledefs.js:78 -#: js/rubrics.js:501 -#: js/macros.js:170 -#: js/macros.js:266 -#: js/macros.js:267 -#: js/macros.js:276 -#: js/macros.js:828 -#: js/blocks.js:1071 -#: js/blocks.js:3210 -#: js/blocks.js:3211 -#: js/blocks.js:3428 -#: js/blocks.js:3752 -#: js/blocks.js:3932 -#: js/blocks.js:4976 -#: js/blocks.js:5845 -#: js/ActionBlocks.js:99 -#: js/ActionBlocks.js:147 -#: js/ActionBlocks.js:343 -#: js/ActionBlocks.js:408 -#: js/ActionBlocks.js:562 -#: js/ActionBlocks.js:622 -#: js/ActionBlocks.js:750 -#: js/ActionBlocks.js:753 -#: js/ActionBlocks.js:758 -#: js/ActionBlocks.js:790 -#: js/MeterBlocks.js:396 -#: js/MeterBlocks.js:426 -#: js/MeterBlocks.js:462 -#: js/MeterBlocks.js:501 -#: js/musickeyboard.js:2495 -#: js/rhythmruler.js:1874 -#: js/rhythmruler.js:1881 -#: js/rhythmruler.js:2065 -#: js/rhythmruler.js:2072 -#: js/phrasemaker.js:4226 -#: js/block.js:1439 -#: js/block.js:4063 -#: js/block.js:4081 -#: js/block.js:4092 -#: js/palette.js:505 -#: js/palette.js:514 -#: js/palette.js:523 -#: js/palette.js:532 -#: js/palette.js:1125 -#: js/palette.js:1136 -#: js/palette.js:1147 -#: js/palette.js:1158 -#: js/palette.js:1177 -#: js/turtledefs.js:101 -#: js/rubrics.js:522 -#: js/macros.js:168 -#: js/macros.js:264 -#: js/macros.js:265 -#: js/macros.js:274 -#: js/macros.js:826 -#: js/blocks.js:1001 -#: js/blocks.js:3394 -#: js/blocks.js:3395 -#: js/blocks.js:3620 -#: js/blocks.js:3981 -#: js/blocks.js:4172 -#: js/blocks.js:5305 -#: js/blocks.js:6432 -#: js/ActionBlocks.js:119 -#: js/ActionBlocks.js:167 -#: js/ActionBlocks.js:364 -#: js/ActionBlocks.js:429 -#: js/ActionBlocks.js:582 -#: js/ActionBlocks.js:643 -#: js/ActionBlocks.js:772 -#: js/ActionBlocks.js:775 -#: js/ActionBlocks.js:780 -#: js/ActionBlocks.js:813 -#: js/MeterBlocks.js:416 -#: js/MeterBlocks.js:446 -#: js/MeterBlocks.js:482 -#: js/MeterBlocks.js:521 -#: js/musickeyboard.js:2564 -#: js/rhythmruler.js:1925 -#: js/rhythmruler.js:1932 -#: js/rhythmruler.js:2116 -#: js/rhythmruler.js:2123 -#: js/phrasemaker.js:4402 -#: js/planetInterface.js:101 -#: js/planetInterface.js:101 -#: js/planetInterface.js:101 -#: js/planetInterface.js:101 -#: js/planetInterface.js:102 -#: js/planetInterface.js:104 -#: js/planetInterface.js:104 -#: js/planetInterface.js:104 -msgid "project undefined" +#: js/SaveInterface.js:59 +#: js/SaveInterface.js:61 +#: js/SaveInterface.js:93 +msgid "Music Blocks Project" msgstr "" -#: js/logo.js:61 -msgid "Not a valid pitch name" +#: js/SaveInterface.js:63 +msgid "This project was created in Music Blocks" msgstr "" -#: js/logo.js:507 -#: js/ProgramBlocks.js:258 -#: js/ProgramBlocks.js:427 -msgid "You must select a file." +#: js/SaveInterface.js:67 +msgid "Music Blocks is a Free/Libre Software application." msgstr "" -#: js/logo.js:1184 -#: js/turtles.js:118 -#: js/turtle-painter.js:1192 -#: js/turtle-painter.js:1193 -#: js/block.js:1463 -#: js/lilypond.js:757 -#: js/lilypond.js:921 -#: js/lilypond.js:959 -#: js/ActionBlocks.js:1223 -#: js/ProgramBlocks.js:1267 -msgid "start" -msgstr "सुरूवात" - -#: js/logo.js:1696 -msgid "Playback is ready." +#: js/SaveInterface.js:69 +msgid "The source code can be accessed at" msgstr "" -#: js/blocks.js:1011 -#: js/blocks.js:3427 -#: js/blocks.js:3428 -#: js/blocks.js:3653 -#: js/blocks.js:4012 -#: js/blocks.js:4205 -#: js/blocks.js:5343 -#: js/blocks.js:6474 -#: js/palette.js:527 -#: js/palette.js:536 -#: js/palette.js:545 -#: js/palette.js:554 -#: js/palette.js:1131 -#: js/palette.js:1142 -#: js/palette.js:1153 -#: js/palette.js:1164 -#: js/palette.js:1183 -#: js/rubrics.js:529 -#: js/macros.js:170 -#: js/macros.js:266 -#: js/macros.js:267 -#: js/macros.js:276 -#: js/macros.js:828 -#: js/block.js:1449 -#: js/block.js:4164 -#: js/block.js:4182 -#: js/block.js:4193 -#: js/turtledefs.js:128 -#: js/turtledefs.js:230 -#: js/ActionBlocks.js:254 -#: js/ActionBlocks.js:307 -#: js/ActionBlocks.js:617 -#: js/ActionBlocks.js:716 -#: js/ActionBlocks.js:961 -#: js/ActionBlocks.js:1049 -#: js/ActionBlocks.js:1322 -#: js/ActionBlocks.js:1325 -#: js/ActionBlocks.js:1337 -#: js/ActionBlocks.js:1404 -#: js/MeterBlocks.js:715 -#: js/MeterBlocks.js:768 -#: js/MeterBlocks.js:831 -#: js/MeterBlocks.js:892 -#: js/phrasemaker.js:4412 -#: js/musickeyboard.js:2647 -#: js/rhythmruler.js:1928 -#: js/rhythmruler.js:1935 -#: js/rhythmruler.js:2119 -#: js/rhythmruler.js:2126 -msgid "action" -msgstr "क्रिया" - -#: js/blocks.js:1205 -#: js/blocks.js:3380 -#: js/blocks.js:3770 -#: js/blocks.js:3801 -#: js/blocks.js:3850 -#: js/blocks.js:3885 -#: js/blocks.js:6497 -#: js/palette.js:509 -#: js/palette.js:638 -#: js/palette.js:1107 -#: js/BoxesBlocks.js:282 -#: js/BoxesBlocks.js:285 -#: js/BoxesBlocks.js:405 -#: js/BoxesBlocks.js:594 -msgid "box" -msgstr "पेटी" - -#: js/blocks.js:1680 -msgid "Consider breaking this stack into parts." -msgstr "इस ढेर को भागों में तोड़ने पर विचार करें" - -#: js/blocks.js:2408 -#: js/palette.js:653 -#: js/MediaBlocks.js:602 -msgid "open file" -msgstr "फाइल उघडा" - -#: js/blocks.js:2415 -#: js/blocks.js:2423 -#: js/activity.js:1875 -msgid "audio file" -msgstr "ऑडियो फाइल" - -#: js/blocks.js:2536 -#: js/blocks.js:3147 -#: js/block.js:3543 -msgid "on2" +#: js/SaveInterface.js:72 +msgid "For more information, please consult the" msgstr "" -#: js/blocks.js:2538 -#: js/blocks.js:3149 -#: js/block.js:3545 -msgid "off" -msgstr "बंद" - -#: js/blocks.js:2543 -#: js/blocks.js:3154 -#: js/palette.js:618 -#: js/block.js:3466 -#: js/BooleanBlocks.js:77 -#: js/BooleanBlocks.js:167 -#: js/BooleanBlocks.js:251 -#: js/BooleanBlocks.js:335 -#: js/BooleanBlocks.js:433 -#: js/BooleanBlocks.js:539 -#: js/BooleanBlocks.js:640 -#: js/BooleanBlocks.js:741 -#: js/BooleanBlocks.js:847 -#: js/BooleanBlocks.js:948 -#: js/BooleanBlocks.js:1033 -#: js/SensorsBlocks.js:910 -msgid "true" -msgstr "सत्य" +#: js/SaveInterface.js:76 +#: js/turtledefs.js:795 +msgid "Music Blocks Guide" +msgstr "" -#: js/blocks.js:2545 -#: js/blocks.js:3156 -#: js/block.js:3466 -#: js/BooleanBlocks.js:79 -#: js/BooleanBlocks.js:169 -#: js/BooleanBlocks.js:253 -#: js/BooleanBlocks.js:337 -#: js/BooleanBlocks.js:435 -#: js/BooleanBlocks.js:541 -#: js/BooleanBlocks.js:642 -#: js/BooleanBlocks.js:743 -#: js/BooleanBlocks.js:849 -#: js/BooleanBlocks.js:950 -#: js/SensorsBlocks.js:912 -msgid "false" -msgstr "असत्य" +#: js/SaveInterface.js:83 +msgid "Alternatively, open the file in Music Blocks using the Load project button." +msgstr "" -#: js/blocks.js:3183 -#: js/palette.js:574 -#: js/MediaBlocks.js:892 -#: js/MediaBlocks.js:963 -msgid "text" -msgstr "मजकूर" +#: js/SaveInterface.js:85 +msgid "Project Code" +msgstr "" -#: js/blocks.js:3379 -#: js/palette.js:641 -#: js/palette.js:642 -#: js/BoxesBlocks.js:514 -msgid "store in box" -msgstr "बॉक्स में स्टोर करें" +#: js/SaveInterface.js:87 +msgid "This code stores data about the blocks in a project." +msgstr "" -#: js/blocks.js:3384 -#: js/blocks.js:3824 -#: js/blocks.js:3859 -#: js/blocks.js:3894 -#: js/blocks.js:5773 -#: js/blocks.js:5794 -#: js/BoxesBlocks.js:772 -msgid "box1" -msgstr "बॉक्स 1" +#: js/SaveInterface.js:89 +msgid "Show" +msgstr "" -#: js/blocks.js:3386 -#: js/blocks.js:3826 -#: js/blocks.js:3861 -#: js/blocks.js:3896 -#: js/blocks.js:5775 -#: js/blocks.js:5796 -#: js/BoxesBlocks.js:663 -msgid "box2" -msgstr "बॉक्स 2" +#: js/SaveInterface.js:91 +msgid "Hide" +msgstr "" -#: js/blocks.js:4058 -#: js/palette.js:639 -#: js/palette.js:644 -#: js/palette.js:1043 -#: js/BoxesBlocks.js:591 -msgid "store in" -msgstr "मध्ये संग्रह करणे" +#: js/SaveInterface.js:131 +#: js/SaveInterface.js:204 +#: js/SaveInterface.js:262 +#: js/SaveInterface.js:389 +#: js/SaveInterface.js:417 +#: js/activity.js:4884 +#: planet/js/ProjectStorage.js:27 +#: planet/js/GlobalPlanet.js:467 +#: planet/js/GlobalPlanet.js:469 +#: planet/js/GlobalPlanet.js:495 +#.TRANS: default project title when saving as Lilypond +msgid "My Project" +msgstr "" -#: js/blocks.js:4058 -#: js/EnsembleBlocks.js:391 -#: js/EnsembleBlocks.js:402 -#: js/MediaBlocks.js:746 -#: js/ProgramBlocks.js:390 -#: js/ProgramBlocks.js:495 -#: js/ProgramBlocks.js:658 -#: js/BoxesBlocks.js:595 -#: js/PitchBlocks.js:656 -#: js/PitchBlocks.js:932 -#: js/PitchBlocks.js:1827 -#: js/ToneBlocks.js:1025 -#: js/DictBlocks.js:215 -#: js/DictBlocks.js:289 -msgid "name" -msgstr "नाव" +#: js/SaveInterface.js:197 +#: planet/js/SaveInterface.js:58 +msgid "No description provided" +msgstr "" -#: js/blocks.js:4058 -#: js/RhythmBlocks.js:1130 -#: js/BoxesBlocks.js:75 -#: js/BoxesBlocks.js:595 -#: js/HeapBlocks.js:544 -#: js/DictBlocks.js:289 -#: js/DictBlocks.js:430 -msgid "value" -msgstr "मूल्य" +#: js/SaveInterface.js:332 +msgid "Your recording is in progress." +msgstr "" -#: js/blocks.js:4907 -msgid "There is no block selected." -msgstr "कोई ब्लॉक चयनित नहीं है" +#: js/SaveInterface.js:401 +#.TRANS: File name prompt for save as Lilypond +msgid "File name" +msgstr "" -#: js/blocks.js:5002 -#: js/MediaBlocks.js:888 -msgid "show" -msgstr "दाखवा" +#: js/SaveInterface.js:403 +#: planet/js/StringHelper.js:39 +#.TRANS: Project title prompt for save as Lilypond +msgid "Project title" +msgstr "" -#: js/blocks.js:5005 -#: js/MediaBlocks.js:803 -#.TRANS: Avatar is the image used to determine the appearance of the mouse. -msgid "avatar" -msgstr "अवतार" +#: js/SaveInterface.js:405 +#.TRANS: Project title prompt for save as Lilypond +msgid "Project author" +msgstr "" -#: js/blocks.js:5008 -#: js/ToneBlocks.js:1010 -#: js/sampler.js:693 -#.TRANS: The sound sample that the user uploads. -msgid "sample" -msgstr "नमूना" +#: js/SaveInterface.js:407 +#.TRANS: MIDI prompt for save as Lilypond +msgid "Include MIDI output?" +msgstr "" -#: js/turtles.js:874 -msgid "Grid" -msgstr "जाल" +#: js/SaveInterface.js:409 +#.TRANS: Guitar prompt for save as Lilypond +msgid "Include guitar tablature output?" +msgstr "" -#: js/turtles.js:891 -#: js/turtledefs.js:626 -msgid "Clean" -msgstr "स्वच्छ" +#: js/SaveInterface.js:411 +#.TRANS: Lilypond is a scripting language for generating sheet music +msgid "Save as Lilypond" +msgstr "" -#: js/turtles.js:912 -#: js/turtledefs.js:632 -msgid "Collapse" -msgstr "गिर जाना" +#: js/SaveInterface.js:426 +#: js/blocks/EnsembleBlocks.js:75 +#: js/blocks/EnsembleBlocks.js:154 +#: js/blocks/EnsembleBlocks.js:216 +#: js/blocks/EnsembleBlocks.js:302 +#: js/blocks/EnsembleBlocks.js:348 +#: js/blocks/EnsembleBlocks.js:389 +#: js/blocks/EnsembleBlocks.js:441 +#: js/blocks/EnsembleBlocks.js:490 +#: js/blocks/EnsembleBlocks.js:536 +#: js/blocks/EnsembleBlocks.js:583 +#: js/blocks/EnsembleBlocks.js:637 +#: js/blocks/EnsembleBlocks.js:753 +#: js/blocks/EnsembleBlocks.js:840 +#: js/blocks/EnsembleBlocks.js:899 +#: js/blocks/EnsembleBlocks.js:942 +#: js/blocks/EnsembleBlocks.js:1212 +#: js/blocks/EnsembleBlocks.js:1280 +#.TRANS: default project author when saving as Lilypond +msgid "Mr. Mouse" +msgstr "" -#: js/turtles.js:940 -msgid "Expand" -msgstr "बढ़ाना" +#: js/SaveInterface.js:573 +msgid "The Lilypond code is copied to clipboard. You can paste it here: " +msgstr "" #: js/languagebox.js:198 msgid "Refresh your browser to change your language preference." @@ -2416,6934 +150,7488 @@ msgstr "अपनी भाषा बदलने के लिए अपने msgid "Music Blocks is already set to this language." msgstr "" -#: js/piemenus.js:200 -#: js/musicutils.js:808 -#: js/musicutils.js:824 -#: js/phrasemaker.js:1672 -#: js/musickeyboard.js:2041 -#: js/sampler.js:544 -#.TRANS: double sharp is a music term related to pitch -msgid "double sharp" -msgstr "दोगुना तेज़" - -#: js/piemenus.js:201 -#: js/PitchBlocks.js:1510 -#: js/PitchActions.js:580 -#: js/musicutils.js:806 -#: js/musicutils.js:825 -#: js/phrasemaker.js:1673 -#: js/musickeyboard.js:2042 -#: js/sampler.js:545 -#.TRANS: sharp is a half-step up in pitch -#.TRANS: sharp is a music term related to pitch -msgid "sharp" -msgstr "" - -#: js/piemenus.js:202 -#: js/musicutils.js:804 -#: js/musicutils.js:826 -#: js/phrasemaker.js:1674 -#: js/musickeyboard.js:2043 -#: js/sampler.js:546 -#.TRANS: natural is a music term related to pitch -msgid "natural" +#: js/planetInterface.js:131 +msgid "project undefined" msgstr "" -#: js/piemenus.js:203 -#: js/PitchBlocks.js:1469 -#: js/PitchActions.js:583 -#: js/musicutils.js:802 -#: js/musicutils.js:827 -#: js/phrasemaker.js:1675 -#: js/musickeyboard.js:2044 -#: js/sampler.js:547 -#.TRANS: flat is a half-step down in pitch -#.TRANS: flat is a music term related to pitch -msgid "flat" -msgstr "" +#: js/rubrics.js:523 +#: js/turtledefs.js:119 +#: js/turtledefs.js:221 +#: js/blocks/RhythmBlockPaletteBlocks.js:52 +#: js/blocks/RhythmBlockPaletteBlocks.js:234 +#: js/blocks/ProgramBlocks.js:745 +#: js/widgets/rhythmruler.js:2057 +#: js/widgets/rhythmruler.js:2064 +#: js/widgets/rhythmruler.js:2133 +#: js/widgets/rhythmruler.js:2140 +#: js/widgets/rhythmruler.js:2219 +#.TRANS: an arrangement of notes based on duration +msgid "rhythm" +msgstr "लय" -#: js/piemenus.js:204 -#: js/musicutils.js:800 -#: js/musicutils.js:828 -#: js/phrasemaker.js:1676 -#: js/musickeyboard.js:2045 -#: js/sampler.js:548 -#.TRANS: double flat is a music term related to pitch -msgid "double flat" -msgstr "" +#: js/rubrics.js:524 +#: js/turtledefs.js:121 +#: js/turtledefs.js:223 +#: js/block-verbose.js:2622 +#: js/block.js:2550 +#: js/blocks/IntervalsBlocks.js:63 +#: js/blocks/SensorsBlocks.js:178 +#: js/blocks/PitchBlocks.js:1839 +#: js/blocks/PitchBlocks.js:1853 +#: js/widgets/musickeyboard.js:1935 +#: js/widgets/phrasemaker.js:1036 +#.TRANS: pitch number +#.TRANS: pitch number +#.TRANS: we specify pitch in terms of a name and an octave. The name can be CDEFGAB or Do Re Mi Fa Sol La Ti. Octave is a number between 1 and 8. +msgid "pitch" +msgstr "आवाज़ का उतार-चढ़ाव" -#: js/piemenus.js:2861 -#: js/PitchBlocks.js:1357 -#: js/musicutils.js:627 -#.TRANS: unison means the note is the same as the current note -#.TRANS: unison is a music term related to intervals -msgid "unison" -msgstr "" +#: js/rubrics.js:525 +#: js/turtledefs.js:123 +#: js/turtledefs.js:225 +msgid "tone" +msgstr "सुर" -#: js/piemenus.js:3015 -#: js/piemenus.js:3088 -#: js/musicutils.js:635 -#: js/musicutils.js:810 -#: js/musicutils.js:912 -#.TRANS: major is a music term related to intervals and mode -msgid "major" -msgstr "" +#: js/rubrics.js:526 +#: js/lilypond.js:605 +#: js/lilypond.js:904 +#: js/lilypond.js:910 +#: js/lilypond.js:948 +msgid "mouse" +msgstr "चूहा" -#: js/piemenus.js:3015 -#: js/piemenus.js:3088 -#: js/musicutils.js:653 -#.TRANS: modal scale for music -msgid "ionian" -msgstr "" - -#: js/piemenus.js:3017 -#: js/piemenus.js:3092 -#: js/musicutils.js:633 -#: js/musicutils.js:811 -#: js/musicutils.js:909 -#.TRANS: minor is a music term related to intervals and mode -msgid "minor" -msgstr "" - -#: js/piemenus.js:3017 -#: js/piemenus.js:3092 -#: js/musicutils.js:663 -#.TRANS: modal scale for music -msgid "aeolian" -msgstr "वातज" - -#: js/piemenus.js:3407 -msgid "Duplicate" -msgstr "डुप्लिकेट" - -#: js/piemenus.js:3408 -#: js/turtledefs.js:534 -msgid "Extract" -msgstr "निकालना" - -#: js/piemenus.js:3409 -msgid "Move to trash" -msgstr "कचरे में ले जाएं" - -#: js/piemenus.js:3410 -#: js/timbre.js:968 -#: js/StringHelper.js:69 -msgid "Close" -msgstr "बंद करना" - -#: js/piemenus.js:3416 -msgid "Save stack" -msgstr "स्टॅक जतन करा" - -#: js/piemenus.js:3420 -#: js/toolbar.js:60 -#: js/toolbar.js:120 -#: js/toolbar.js:185 -#: js/toolbar.js:240 -#: js/turtledefs.js:752 -msgid "Help" -msgstr "मदत" - -#: js/piemenus.js:3762 -msgid "You have chosen key " -msgstr "आपने कुंजी चुन ली है" - -#: js/piemenus.js:3766 -msgid " for your pitch preview." -msgstr "आपके पिच पूर्वावलोकन के लिए" - -#: js/palette.js:571 -msgid "grid" -msgstr "जाल" - -#: js/palette.js:577 -#: js/block.js:1540 -#: js/block.js:2343 -#: js/turtledefs.js:126 -#: js/turtledefs.js:228 -#: js/lilypond.js:740 -#: js/lilypond.js:905 -#: js/lilypond.js:949 -#: js/DrumBlocks.js:486 -#: js/RhythmBlocks.js:766 -#: js/VolumeBlocks.js:502 -#: js/phrasemaker.js:823 -msgid "drum" -msgstr "ड्रम" - -#: js/palette.js:580 -msgid "effect" -msgstr "प्रभाव" - -#: js/palette.js:586 -msgid "sargam" -msgstr "सरगम" - -#: js/palette.js:589 -#: js/activity.js:1833 -#: js/RhythmBlocks.js:923 -#: js/PitchBlocks.js:442 -#: js/PitchBlocks.js:1748 -#.TRANS: a numeric mapping of the notes in an octave based on the musical mode -msgid "scale degree" -msgstr "पैमाने की डिग्री" - -#: js/palette.js:592 -#: js/activity.js:1860 -msgid "mode name" -msgstr "मोड का नाम" - -#: js/palette.js:595 -#: js/activity.js:1839 -msgid "invert mode" -msgstr "उलटा मोड" - -#: js/palette.js:598 -#: js/activity.js:1836 -msgid "voice name" -msgstr "आवाज का नाम" - -#: js/palette.js:601 -#: js/PitchBlocks.js:1181 -msgid "custom pitch" -msgstr "कस्टम पिच" - -#: js/palette.js:605 -#: js/block.js:1456 -#: js/block.js:1575 -#: js/WidgetBlocks.js:218 -#: js/IntervalsBlocks.js:63 -msgid "temperament" -msgstr "स्वभाव" - -#: js/palette.js:609 -msgid "accidental" -msgstr "accidental" - -#: js/palette.js:615 -#: js/activity.js:1866 -msgid "interval name" -msgstr "अंतराल नाम" - -#: js/palette.js:633 -#: js/PitchBlocks.js:405 -msgid "pitch converter" -msgstr "पिच कनवर्टर" - -#: js/rubrics.js:522 -#: js/turtledefs.js:119 -#: js/turtledefs.js:221 -#: js/RhythmBlockPaletteBlocks.js:52 -#: js/RhythmBlockPaletteBlocks.js:233 -#: js/ProgramBlocks.js:745 -#: js/rhythmruler.js:1670 -#: js/rhythmruler.js:1677 -#: js/rhythmruler.js:1745 -#: js/rhythmruler.js:1752 -#: js/rhythmruler.js:1830 -#.TRANS: an arrangement of notes based on duration -msgid "rhythm" -msgstr "लय" - -#: js/rubrics.js:523 -#: js/block.js:2339 -#: js/turtledefs.js:121 -#: js/turtledefs.js:223 -#: js/IntervalsBlocks.js:63 -#: js/PitchBlocks.js:1801 -#: js/PitchBlocks.js:1814 -#: js/SensorsBlocks.js:178 -#: js/phrasemaker.js:821 -#: js/musickeyboard.js:1653 -#.TRANS: pitch number -#.TRANS: we specify pitch in terms of a name and an octave. The name can be CDEFGAB or Do Re Mi Fa Sol La Ti. Octave is a number between 1 and 8. -msgid "pitch" -msgstr "आवाज़ का उतार-चढ़ाव" - -#: js/rubrics.js:524 -#: js/turtledefs.js:123 -#: js/turtledefs.js:225 -msgid "tone" -msgstr "सुर" - -#: js/rubrics.js:525 -#: js/lilypond.js:613 -#: js/lilypond.js:912 -#: js/lilypond.js:918 -#: js/lilypond.js:956 -msgid "mouse" -msgstr "चूहा" - -#: js/rubrics.js:526 +#: js/rubrics.js:527 #: js/turtledefs.js:132 #: js/turtledefs.js:234 -#: js/phrasemaker.js:825 +#: js/widgets/phrasemaker.js:1040 msgid "pen" msgstr "पेन" -#: js/rubrics.js:527 +#: js/rubrics.js:528 #: js/turtledefs.js:133 #: js/turtledefs.js:235 -#: js/NumberBlocks.js:905 -#: js/PitchBlocks.js:1679 -#: js/PitchBlocks.js:1720 +#: js/blocks/NumberBlocks.js:981 +#: js/blocks/PitchBlocks.js:1717 +#: js/blocks/PitchBlocks.js:1758 msgid "number" msgstr "अंक" -#: js/rubrics.js:528 +#: js/rubrics.js:529 #: js/turtledefs.js:127 #: js/turtledefs.js:229 msgid "flow" msgstr "प्रवाह" #: js/rubrics.js:530 +#: js/turtledefs.js:128 +#: js/turtledefs.js:230 +#: js/block-verbose.js:1609 +#: js/block-verbose.js:4559 +#: js/block-verbose.js:4577 +#: js/block-verbose.js:4588 +#: js/block.js:1573 +#: js/block.js:4483 +#: js/block.js:4501 +#: js/block.js:4512 +#: js/blocks.js:1018 +#: js/blocks.js:3491 +#: js/blocks.js:3492 +#: js/blocks.js:3717 +#: js/blocks.js:4076 +#: js/blocks.js:4269 +#: js/blocks.js:5432 +#: js/blocks.js:6563 +#: js/macros.js:170 +#: js/macros.js:266 +#: js/macros.js:267 +#: js/macros.js:276 +#: js/macros.js:828 +#: js/palette.js:527 +#: js/palette.js:536 +#: js/palette.js:545 +#: js/palette.js:554 +#: js/palette.js:1129 +#: js/palette.js:1140 +#: js/palette.js:1151 +#: js/palette.js:1162 +#: js/palette.js:1181 +#: js/blocks/ActionBlocks.js:254 +#: js/blocks/ActionBlocks.js:307 +#: js/blocks/ActionBlocks.js:617 +#: js/blocks/ActionBlocks.js:716 +#: js/blocks/ActionBlocks.js:961 +#: js/blocks/ActionBlocks.js:1049 +#: js/blocks/ActionBlocks.js:1322 +#: js/blocks/ActionBlocks.js:1325 +#: js/blocks/ActionBlocks.js:1337 +#: js/blocks/ActionBlocks.js:1404 +#: js/blocks/MeterBlocks.js:715 +#: js/blocks/MeterBlocks.js:768 +#: js/blocks/MeterBlocks.js:831 +#: js/blocks/MeterBlocks.js:892 +#: js/widgets/musickeyboard.js:2986 +#: js/widgets/phrasemaker.js:4913 +#: js/widgets/rhythmruler.js:2319 +#: js/widgets/rhythmruler.js:2326 +#: js/widgets/rhythmruler.js:2511 +#: js/widgets/rhythmruler.js:2518 +msgid "action" +msgstr "क्रिया" + +#: js/rubrics.js:531 #: js/turtledefs.js:136 #: js/turtledefs.js:238 msgid "sensors" msgstr "सेन्सर्स" -#: js/rubrics.js:531 +#: js/rubrics.js:532 #: js/turtledefs.js:135 #: js/turtledefs.js:237 -#: js/MediaBlocks.js:930 +#: js/blocks/MediaBlocks.js:930 msgid "media" msgstr "मीडिया" -#: js/rubrics.js:532 +#: js/rubrics.js:533 msgid "mice" msgstr "चूहे" -#: js/macros.js:711 -#: js/musicutils.js:783 -#: js/synthutils.js:181 -#.TRANS: animal sound effect -msgid "duck" -msgstr "बत्तख" - -#: js/toolbar.js:46 -#: js/toolbar.js:107 +#: js/toolbar.js:48 +#: js/toolbar.js:109 msgid "About Music Blocks" msgstr "संगीत ब्लॉक के बारे में" -#: js/toolbar.js:47 -#: js/toolbar.js:108 -#: js/toolbar.js:172 -#: js/toolbar.js:228 +#: js/toolbar.js:49 +#: js/toolbar.js:110 +#: js/toolbar.js:175 +#: js/toolbar.js:231 #: js/turtledefs.js:445 #: js/turtledefs.js:482 -#: js/activity.js:2281 -#: js/activity.js:2289 -#: js/activity.js:2520 -#: js/modewidget.js:77 -#: js/pitchstaircase.js:121 -#: js/phrasemaker.js:302 -#: js/phrasemaker.js:312 -#: js/phrasemaker.js:314 -#: js/phrasemaker.js:3901 -#: js/phrasemaker.js:4061 -#: js/phrasemaker.js:4066 -#: js/phrasemaker.js:4068 -#: js/phrasemaker.js:4183 -#: js/pitchdrummatrix.js:81 -#: js/pitchdrummatrix.js:574 -#: js/pitchdrummatrix.js:576 -#: js/pitchdrummatrix.js:628 -#: js/pitchdrummatrix.js:630 -#: js/pitchdrummatrix.js:645 -#: js/pitchdrummatrix.js:647 -#: js/pitchdrummatrix.js:674 -#: js/pitchdrummatrix.js:676 -#: js/temperament.js:477 -#: js/temperament.js:480 -#: js/temperament.js:540 -#: js/temperament.js:542 -#: js/temperament.js:1835 -#: js/temperament.js:1837 -#: js/temperament.js:1986 -#: js/temperament.js:1988 -#: js/musickeyboard.js:522 -#: js/musickeyboard.js:682 -#: js/musickeyboard.js:684 -#: js/musickeyboard.js:756 -#: js/musickeyboard.js:758 -#: js/rhythmruler.js:298 -#: js/rhythmruler.js:300 -#: js/rhythmruler.js:314 -#: js/rhythmruler.js:316 -#: js/sampler.js:96 -#: js/sampler.js:98 -#: js/sampler.js:229 -#: js/sampler.js:235 -#: js/sampler.js:237 -#: js/tempo.js:84 -#: js/tempo.js:86 -#: js/timbre.js:432 -#: js/timbre.js:434 -#: js/timbre.js:465 -#: js/timbre.js:467 -#: js/timbre.js:746 -#: js/meterwidget.js:80 -#: js/arpeggio.js:90 -#: js/arpeggio.js:547 -#: js/arpeggio.js:549 -#: js/arpeggio.js:644 -#: js/arpeggio.js:646 +#: js/activity.js:2660 +#: js/activity.js:2671 +#: js/activity.js:2902 +#: js/widgets/modewidget.js:77 +#: js/widgets/meterwidget.js:185 +#: js/widgets/pitchdrummatrix.js:147 +#: js/widgets/pitchdrummatrix.js:687 +#: js/widgets/pitchdrummatrix.js:689 +#: js/widgets/pitchdrummatrix.js:741 +#: js/widgets/pitchdrummatrix.js:743 +#: js/widgets/pitchdrummatrix.js:758 +#: js/widgets/pitchdrummatrix.js:760 +#: js/widgets/pitchdrummatrix.js:789 +#: js/widgets/pitchdrummatrix.js:791 +#: js/widgets/pitchstaircase.js:121 +#: js/widgets/temperament.js:610 +#: js/widgets/temperament.js:613 +#: js/widgets/temperament.js:673 +#: js/widgets/temperament.js:675 +#: js/widgets/temperament.js:2017 +#: js/widgets/temperament.js:2019 +#: js/widgets/tempo.js:84 +#: js/widgets/tempo.js:86 +#: js/widgets/timbre.js:432 +#: js/widgets/timbre.js:434 +#: js/widgets/timbre.js:465 +#: js/widgets/timbre.js:467 +#: js/widgets/timbre.js:746 +#: js/widgets/aiwidget.js:647 +#: js/widgets/aiwidget.js:654 +#: js/widgets/aiwidget.js:656 +#: js/widgets/arpeggio.js:90 +#: js/widgets/arpeggio.js:547 +#: js/widgets/arpeggio.js:549 +#: js/widgets/arpeggio.js:644 +#: js/widgets/arpeggio.js:646 +#: js/widgets/musickeyboard.js:676 +#: js/widgets/musickeyboard.js:872 +#: js/widgets/musickeyboard.js:874 +#: js/widgets/musickeyboard.js:953 +#: js/widgets/musickeyboard.js:955 +#: js/widgets/phrasemaker.js:513 +#: js/widgets/phrasemaker.js:523 +#: js/widgets/phrasemaker.js:525 +#: js/widgets/phrasemaker.js:4304 +#: js/widgets/phrasemaker.js:4528 +#: js/widgets/phrasemaker.js:4533 +#: js/widgets/phrasemaker.js:4535 +#: js/widgets/phrasemaker.js:4650 +#: js/widgets/rhythmruler.js:637 +#: js/widgets/rhythmruler.js:639 +#: js/widgets/rhythmruler.js:653 +#: js/widgets/rhythmruler.js:655 +#: js/widgets/sampler.js:162 +#: js/widgets/sampler.js:164 +#: js/widgets/sampler.js:363 msgid "Play" msgstr "चलायें" -#: js/toolbar.js:48 -#: js/toolbar.js:109 -#: js/toolbar.js:173 -#: js/toolbar.js:229 +#: js/toolbar.js:50 +#: js/toolbar.js:111 +#: js/toolbar.js:176 +#: js/toolbar.js:232 #: js/turtledefs.js:451 #: js/turtledefs.js:488 -#: js/activity.js:2297 -#: js/modewidget.js:99 -#: js/modewidget.js:101 -#: js/phrasemaker.js:323 -#: js/phrasemaker.js:325 -#: js/pitchdrummatrix.js:561 -#: js/pitchdrummatrix.js:563 -#: js/temperament.js:1820 -#: js/temperament.js:1822 -#: js/meterwidget.js:101 -#: js/meterwidget.js:103 -#: js/arpeggio.js:534 -#: js/arpeggio.js:536 +#: js/activity.js:2679 +#: js/widgets/modewidget.js:99 +#: js/widgets/modewidget.js:101 +#: js/widgets/meterwidget.js:206 +#: js/widgets/meterwidget.js:208 +#: js/widgets/pitchdrummatrix.js:674 +#: js/widgets/pitchdrummatrix.js:676 +#: js/widgets/temperament.js:2002 +#: js/widgets/temperament.js:2004 +#: js/widgets/arpeggio.js:534 +#: js/widgets/arpeggio.js:536 +#: js/widgets/phrasemaker.js:534 +#: js/widgets/phrasemaker.js:536 msgid "Stop" msgstr "थांबवा" -#: js/toolbar.js:49 -#: js/toolbar.js:110 -#: js/toolbar.js:174 -#: js/toolbar.js:230 +#: js/toolbar.js:51 +#: js/toolbar.js:112 +#: js/toolbar.js:177 +#: js/toolbar.js:233 #: js/turtledefs.js:498 msgid "Record" msgstr "" -#: js/toolbar.js:50 -#: js/toolbar.js:51 +#: js/toolbar.js:52 +#: js/toolbar.js:53 msgid "Full screen" msgstr "" -#: js/toolbar.js:52 -#: js/toolbar.js:112 -#: js/toolbar.js:177 -#: js/toolbar.js:232 +#: js/toolbar.js:54 +#: js/toolbar.js:115 +#: js/toolbar.js:180 +#: js/toolbar.js:236 #: js/turtledefs.js:504 msgid "Toggle Fullscreen" msgstr "" -#: js/toolbar.js:53 -#: js/toolbar.js:113 -#: js/toolbar.js:178 -#: js/toolbar.js:233 +#: js/toolbar.js:55 +#: js/toolbar.js:116 +#: js/toolbar.js:181 +#: js/toolbar.js:237 #: js/turtledefs.js:510 -#: js/StringHelper.js:33 +#: planet/js/StringHelper.js:33 msgid "New project" msgstr "नया काम" -#: js/toolbar.js:54 -#: js/toolbar.js:114 -#: js/toolbar.js:179 -#: js/toolbar.js:234 +#: js/toolbar.js:56 +#: js/toolbar.js:117 +#: js/toolbar.js:182 +#: js/toolbar.js:238 #: js/turtledefs.js:516 msgid "Load project from file" msgstr "फाइल मधुन प्रकल्प लोड करा" -#: js/toolbar.js:55 -#: js/toolbar.js:115 -#: js/toolbar.js:116 -#: js/toolbar.js:180 -#: js/toolbar.js:235 +#: js/toolbar.js:57 +#: js/toolbar.js:118 +#: js/toolbar.js:119 +#: js/toolbar.js:183 +#: js/toolbar.js:239 #: js/turtledefs.js:541 #: js/turtledefs.js:550 #: js/turtledefs.js:571 msgid "Save project" msgstr "प्रकल्प जतन करा" -#: js/toolbar.js:56 -#: js/toolbar.js:75 +#: js/toolbar.js:58 #: js/toolbar.js:77 -#: js/toolbar.js:135 -#: js/toolbar.js:144 -#: js/toolbar.js:146 -#: js/toolbar.js:181 -#: js/toolbar.js:199 -#: js/toolbar.js:201 -#: js/toolbar.js:236 -#: js/toolbar.js:254 -#: js/toolbar.js:256 +#: js/toolbar.js:79 +#: js/toolbar.js:138 +#: js/toolbar.js:147 +#: js/toolbar.js:149 +#: js/toolbar.js:184 +#: js/toolbar.js:202 +#: js/toolbar.js:204 +#: js/toolbar.js:240 +#: js/toolbar.js:258 +#: js/toolbar.js:260 msgid "Save project as HTML" msgstr "प्रोजेक्ट को HTML के रूप में सहेजें" -#: js/toolbar.js:57 -#: js/toolbar.js:117 -#: js/toolbar.js:182 -#: js/toolbar.js:237 +#: js/toolbar.js:59 +#: js/toolbar.js:120 +#: js/toolbar.js:185 +#: js/toolbar.js:241 msgid "Find and share projects" msgstr "प्रोजेक्ट ढूंढें और साझा करें" -#: js/toolbar.js:58 -#: js/toolbar.js:118 -#: js/toolbar.js:183 -#: js/toolbar.js:238 +#: js/toolbar.js:60 +#: js/toolbar.js:121 +#: js/toolbar.js:186 +#: js/toolbar.js:242 msgid "Offline. Sharing is unavailable" msgstr "ऑफ़लाइन. साझा करना अनुपलब्ध है" -#: js/toolbar.js:59 -#: js/toolbar.js:119 -#: js/toolbar.js:184 -#: js/toolbar.js:239 +#: js/toolbar.js:61 +#: js/toolbar.js:122 +#: js/toolbar.js:187 +#: js/toolbar.js:243 msgid "Auxiliary menu" msgstr "सहायक मेनू" -#: js/toolbar.js:61 -#: js/toolbar.js:121 -#: js/toolbar.js:186 -#: js/toolbar.js:241 +#: js/toolbar.js:62 +#: js/toolbar.js:123 +#: js/toolbar.js:188 +#: js/toolbar.js:244 +#: js/turtledefs.js:752 +#: js/piemenus.js:3423 +msgid "Help" +msgstr "मदत" + +#: js/toolbar.js:63 +#: js/toolbar.js:124 +#: js/toolbar.js:189 +#: js/toolbar.js:245 msgid "Run slowly" msgstr "धीरे-धीरे दौड़ें" -#: js/toolbar.js:62 -#: js/toolbar.js:122 -#: js/toolbar.js:187 -#: js/toolbar.js:242 +#: js/toolbar.js:64 +#: js/toolbar.js:125 +#: js/toolbar.js:190 +#: js/toolbar.js:246 #: js/turtledefs.js:682 msgid "Run step by step" msgstr "चरण दर चरण चलाएँ" -#: js/toolbar.js:63 -#: js/toolbar.js:123 -#: js/toolbar.js:188 -#: js/toolbar.js:243 +#: js/toolbar.js:65 +#: js/toolbar.js:126 +#: js/toolbar.js:191 +#: js/toolbar.js:247 #: js/turtledefs.js:689 msgid "Display statistics" msgstr "आकडेवारी दाखवणे" -#: js/toolbar.js:64 -#: js/toolbar.js:124 -#: js/toolbar.js:189 -#: js/toolbar.js:244 +#: js/toolbar.js:66 +#: js/toolbar.js:127 +#: js/toolbar.js:192 +#: js/toolbar.js:248 msgid "Load plugin" msgstr "प्लगइन लोड करें" -#: js/toolbar.js:65 -#: js/toolbar.js:125 -#: js/toolbar.js:190 -#: js/toolbar.js:245 +#: js/toolbar.js:67 +#: js/toolbar.js:128 +#: js/toolbar.js:193 +#: js/toolbar.js:249 #: js/turtledefs.js:696 msgid "Delete plugin" msgstr "प्लगइन हटाएँ" -#: js/toolbar.js:66 -#: js/toolbar.js:126 -#: js/toolbar.js:191 -#: js/toolbar.js:246 +#: js/toolbar.js:68 +#: js/toolbar.js:129 +#: js/toolbar.js:194 +#: js/toolbar.js:250 msgid "Enable horizontal scrolling" msgstr "क्षैतिज स्क्रॉलिंग सक्षम करें" -#: js/toolbar.js:67 -#: js/toolbar.js:127 -#: js/toolbar.js:192 -#: js/toolbar.js:247 +#: js/toolbar.js:69 +#: js/toolbar.js:130 +#: js/toolbar.js:195 +#: js/toolbar.js:251 msgid "Disable horizontal scrolling" msgstr "क्षैतिज स्क्रॉलिंग अक्षम करें" -#: js/toolbar.js:68 -#: js/toolbar.js:128 -#: js/toolbar.js:193 -#: js/toolbar.js:248 -#: js/LocalCard.js:54 -#: js/StringHelper.js:71 -msgid "Merge with current project" -msgstr "वर्तमान प्रोजेक्ट के साथ विलय करें" +#: js/toolbar.js:70 +#: js/toolbar.js:131 +#: js/toolbar.js:196 +#: js/toolbar.js:252 +#: planet/js/LocalCard.js:54 +#: planet/js/StringHelper.js:71 +msgid "Merge with current project" +msgstr "वर्तमान प्रोजेक्ट के साथ विलय करें" + +#: js/toolbar.js:71 +#: js/toolbar.js:132 +msgid "Set Pitch Preview" +msgstr "" + +#: js/toolbar.js:72 +#: js/toolbar.js:133 +#: js/toolbar.js:197 +#: js/toolbar.js:253 +msgid "JavaScript Editor" +msgstr "" + +#: js/toolbar.js:73 +#: js/toolbar.js:134 +#: js/toolbar.js:198 +#: js/toolbar.js:254 +#: js/turtledefs.js:724 +msgid "Restore" +msgstr "" + +#: js/toolbar.js:74 +#: js/toolbar.js:135 +#: js/toolbar.js:199 +#: js/toolbar.js:255 +msgid "Switch to beginner mode" +msgstr "" + +#: js/toolbar.js:75 +#: js/toolbar.js:136 +#: js/toolbar.js:200 +#: js/toolbar.js:256 +msgid "Switch to advanced mode" +msgstr "" + +#: js/toolbar.js:76 +#: js/toolbar.js:137 +#: js/toolbar.js:146 +#: js/toolbar.js:201 +#: js/toolbar.js:257 +#: js/turtledefs.js:738 +msgid "Select language" +msgstr "" + +#: js/toolbar.js:78 +#: js/toolbar.js:81 +#: js/toolbar.js:140 +#: js/turtledefs.js:579 +msgid "Save mouse artwork as PNG" +msgstr "" + +#: js/toolbar.js:80 +#: js/toolbar.js:139 +#: js/turtledefs.js:575 +msgid "Save mouse artwork as SVG" +msgstr "" + +#: js/toolbar.js:82 +#: js/toolbar.js:141 +#: js/turtledefs.js:583 +msgid "Save music as WAV" +msgstr "" + +#: js/toolbar.js:83 +#: js/toolbar.js:142 +#: js/turtledefs.js:587 +msgid "Save sheet music as ABC" +msgstr "" + +#: js/toolbar.js:84 +#: js/toolbar.js:143 +#: js/turtledefs.js:591 +msgid "Save sheet music as Lilypond" +msgstr "" + +#: js/toolbar.js:85 +msgid "Save sheet music as MusicXML" +msgstr "" + +#: js/toolbar.js:86 +#: js/toolbar.js:144 +#: js/toolbar.js:152 +#: js/toolbar.js:207 +#: js/toolbar.js:263 +#: js/turtledefs.js:562 +#: js/turtledefs.js:595 +msgid "Save block artwork as SVG" +msgstr "" + +#: js/toolbar.js:87 +#: js/toolbar.js:145 +#: js/toolbar.js:153 +#: js/toolbar.js:208 +#: js/toolbar.js:264 +#: js/turtles.js:911 +msgid "Confirm" +msgstr "" + +#: js/toolbar.js:88 +#: js/toolbar.js:154 +#: js/toolbar.js:209 +#: js/toolbar.js:265 +msgid "English (United States)" +msgstr "" + +#: js/toolbar.js:89 +#: js/toolbar.js:155 +#: js/toolbar.js:210 +#: js/toolbar.js:266 +msgid "English (United Kingdom)" +msgstr "" + +#: js/toolbar.js:90 +#: js/toolbar.js:156 +#: js/toolbar.js:211 +#: js/toolbar.js:267 +msgid "日本語" +msgstr "" + +#: js/toolbar.js:91 +msgid "한국어" +msgstr "" + +#: js/toolbar.js:92 +#: js/toolbar.js:158 +#: js/toolbar.js:213 +#: js/toolbar.js:269 +msgid "español" +msgstr "" + +#: js/toolbar.js:93 +#: js/toolbar.js:159 +#: js/toolbar.js:214 +#: js/toolbar.js:270 +msgid "português" +msgstr "" + +#: js/toolbar.js:94 +#: js/toolbar.js:160 +#: js/toolbar.js:215 +#: js/toolbar.js:271 +msgid "にほんご" +msgstr "" + +#: js/toolbar.js:95 +#: js/toolbar.js:161 +#: js/toolbar.js:216 +#: js/toolbar.js:272 +msgid "中文" +msgstr "" + +#: js/toolbar.js:96 +#: js/toolbar.js:162 +#: js/toolbar.js:217 +#: js/toolbar.js:273 +msgid "ภาษาไทย" +msgstr "" + +#: js/toolbar.js:97 +#: js/toolbar.js:163 +#: js/toolbar.js:218 +#: js/toolbar.js:274 +msgid "aymara" +msgstr "" + +#: js/toolbar.js:98 +#: js/toolbar.js:164 +#: js/toolbar.js:219 +#: js/toolbar.js:275 +msgid "quechua" +msgstr "" + +#: js/toolbar.js:99 +#: js/toolbar.js:165 +#: js/toolbar.js:220 +#: js/toolbar.js:276 +msgid "guarani" +msgstr "" + +#: js/toolbar.js:100 +#: js/toolbar.js:166 +#: js/toolbar.js:221 +#: js/toolbar.js:277 +msgid "हिंदी" +msgstr "" + +#: js/toolbar.js:101 +#: js/toolbar.js:168 +#: js/toolbar.js:222 +#: js/toolbar.js:279 +msgid "igbo" +msgstr "" + +#: js/toolbar.js:102 +#: js/toolbar.js:169 +#: js/toolbar.js:223 +#: js/toolbar.js:280 +msgid "عربى" +msgstr "" + +#: js/toolbar.js:103 +#: js/toolbar.js:167 +#: js/toolbar.js:224 +#: js/toolbar.js:278 +msgid "తెలుగు" +msgstr "" + +#: js/toolbar.js:104 +#: js/toolbar.js:170 +#: js/toolbar.js:225 +#: js/toolbar.js:281 +msgid "עִברִית" +msgstr "" + +#: js/toolbar.js:113 +#: js/toolbar.js:114 +#: js/toolbar.js:178 +#: js/toolbar.js:179 +#: js/toolbar.js:234 +#: js/toolbar.js:235 +msgid "Full Screen" +msgstr "पूर्ण स्क्रीन" + +#: js/toolbar.js:148 +#: js/toolbar.js:151 +#: js/toolbar.js:203 +#: js/toolbar.js:206 +#: js/toolbar.js:259 +#: js/toolbar.js:262 +#: js/turtledefs.js:558 +msgid "Save turtle artwork as PNG" +msgstr "" + +#: js/toolbar.js:150 +#: js/toolbar.js:205 +#: js/toolbar.js:261 +#: js/turtledefs.js:554 +msgid "Save turtle artwork as SVG" +msgstr "" + +#: js/toolbar.js:157 +#: js/toolbar.js:212 +#: js/toolbar.js:268 +msgid "한국인" +msgstr "" + +#: js/toolbar.js:174 +#: js/toolbar.js:230 +msgid "About Turtle Blocks" +msgstr "" + +#: js/toolbar.js:446 +#: js/toolbar.js:457 +#: js/toolbar.js:497 +msgid "Turtle Wrap Off" +msgstr "" + +#: js/toolbar.js:466 +#: js/toolbar.js:506 +msgid "Turtle Wrap On" +msgstr "" + +#: js/turtle-painter.js:1192 +#: js/turtle-painter.js:1193 +#: js/turtles.js:118 +#: js/block-verbose.js:1623 +#: js/block.js:1587 +#: js/lilypond.js:749 +#: js/lilypond.js:913 +#: js/lilypond.js:951 +#: js/logo.js:1184 +#: js/blocks/ActionBlocks.js:1223 +#: js/blocks/ProgramBlocks.js:1267 +msgid "start" +msgstr "सुरूवात" + +#: js/turtledefs.js:40 +#.TRANS: put the URL to the guide here, e.g., https://github.com/sugarlabs/turtleblocksjs/tree/master/guide/README.md +msgid "guide url" +msgstr "" + +#: js/turtledefs.js:85 +#: js/turtledefs.js:437 +msgid "Turtle Blocks is a Logo-inspired turtle that draws colorful pictures with snap-together visual-programming blocks." +msgstr "" + +#: js/turtledefs.js:118 +#: js/turtledefs.js:220 +msgid "search" +msgstr "" + +#: js/turtledefs.js:120 +#: js/turtledefs.js:222 +#: js/blocks/MeterBlocks.js:1343 +#: js/blocks/WidgetBlocks.js:522 +#.TRANS: musical meter (time signature), e.g., 4:4 +msgid "meter" +msgstr "" + +#: js/turtledefs.js:122 +#: js/turtledefs.js:224 +msgid "intervals" +msgstr "" + +#: js/turtledefs.js:124 +#: js/turtledefs.js:226 +msgid "ornament" +msgstr "" + +#: js/turtledefs.js:125 +#: js/turtledefs.js:227 +#: js/blocks/VolumeBlocks.js:362 +#: js/blocks/VolumeBlocks.js:502 +#: js/blocks/VolumeBlocks.js:545 +msgid "volume" +msgstr "" + +#: js/turtledefs.js:126 +#: js/turtledefs.js:228 +#: js/block-verbose.js:1700 +#: js/block-verbose.js:2626 +#: js/block.js:1664 +#: js/block.js:2554 +#: js/lilypond.js:732 +#: js/lilypond.js:897 +#: js/lilypond.js:941 +#: js/palette.js:577 +#: js/blocks/RhythmBlocks.js:766 +#: js/blocks/DrumBlocks.js:477 +#: js/blocks/VolumeBlocks.js:502 +#: js/widgets/phrasemaker.js:1038 +msgid "drum" +msgstr "ड्रम" + +#: js/turtledefs.js:129 +#: js/turtledefs.js:231 +msgid "boxes" +msgstr "" + +#: js/turtledefs.js:130 +#: js/turtledefs.js:232 +msgid "widgets" +msgstr "" + +#: js/turtledefs.js:131 +#: js/turtledefs.js:233 +#: js/widgets/phrasemaker.js:1039 +msgid "graphics" +msgstr "" + +#: js/turtledefs.js:134 +#: js/turtledefs.js:236 +msgid "boolean" +msgstr "बुलियन" + +#: js/turtledefs.js:137 +#: js/turtledefs.js:239 +#: js/blocks/HeapBlocks.js:59 +#: js/widgets/status.js:147 +msgid "heap" +msgstr "" + +#: js/turtledefs.js:138 +#: js/turtledefs.js:240 +#: js/blocks/DictBlocks.js:142 +#: js/blocks/ProgramBlocks.js:495 +msgid "dictionary" +msgstr "" + +#: js/turtledefs.js:139 +#: js/turtledefs.js:241 +msgid "ensemble" +msgstr "" + +#: js/turtledefs.js:140 +#: js/turtledefs.js:242 +msgid "extras" +msgstr "अतिरिक्त" + +#: js/turtledefs.js:142 +#: js/turtledefs.js:244 +#.TRANS: program as in computer program +#.TRANS: program as in computer program +msgid "program" +msgstr "" + +#: js/turtledefs.js:143 +#: js/turtledefs.js:245 +msgid "my blocks" +msgstr "" + +#: js/turtledefs.js:185 +#: js/turtledefs.js:281 +msgid "artwork" +msgstr "" + +#: js/turtledefs.js:185 +#: js/turtledefs.js:281 +msgid "logic" +msgstr "तर्कशास्त्र" + +#: js/turtledefs.js:185 +#: js/turtledefs.js:281 +msgid "music" +msgstr "" + +#: js/turtledefs.js:187 +#: js/turtledefs.js:463 +msgid "Music Blocks is a collection of tools for exploring fundamental musical concepts in a fun way." +msgstr "" + +#: js/turtledefs.js:436 +msgid "Welcome to Turtle Blocks" +msgstr "" + +#: js/turtledefs.js:438 +#: js/turtledefs.js:465 +#: js/turtledefs.js:774 +#: js/turtledefs.js:805 +msgid "The current version is" +msgstr "" + +#: js/turtledefs.js:446 +#: js/turtledefs.js:483 +msgid "Click the run button to run the project in fast mode." +msgstr "" + +#: js/turtledefs.js:452 +msgid "Stop the turtle." +msgstr "" + +#: js/turtledefs.js:454 +#: js/turtledefs.js:491 +msgid "You can also type Alt-S to stop." +msgstr "" + +#: js/turtledefs.js:462 +#: js/widgets/help.js:333 +msgid "Welcome to Music Blocks" +msgstr "" + +#: js/turtledefs.js:472 +#: js/widgets/help.js:334 +msgid "Meet Mr. Mouse!" +msgstr "" + +#: js/turtledefs.js:473 +msgid "Mr Mouse is our Music Blocks conductor." +msgstr "" + +#: js/turtledefs.js:475 +msgid "Mr Mouse encourages you to explore Music Blocks." +msgstr "" + +#: js/turtledefs.js:477 +msgid "Let us start our tour!" +msgstr "" + +#: js/turtledefs.js:489 +msgid "Stop the music (and the mice)." +msgstr "" + +#: js/turtledefs.js:499 +msgid "Record your project as video." +msgstr "" + +#: js/turtledefs.js:505 +msgid "Toggle Fullscreen mode." +msgstr "" + +#: js/turtledefs.js:511 +msgid "Initialize a new project." +msgstr "" + +#: js/turtledefs.js:517 +msgid "You can also load projects from the file system." +msgstr "आपण फाइल प्रणाली मधुन पण प्रकल्प लोड करू शकतो." + +#: js/turtledefs.js:522 +#: planet/js/StringHelper.js:46 +msgid "Delete" +msgstr "हटवा" + +#: js/turtledefs.js:523 +msgid "To delete a block, just right-click on it, then you will be able to see the delete option" +msgstr "" + +#: js/turtledefs.js:528 +#: js/activity.js:2649 +#: planet/js/LocalCard.js:31 +msgid "Copy" +msgstr "कॉपी" + +#: js/turtledefs.js:529 +msgid "To copy a block, just right-click on it, then you will be able to see the copy option" +msgstr "" + +#: js/turtledefs.js:534 +#: js/piemenus.js:3411 +msgid "Extract" +msgstr "निकालना" + +#: js/turtledefs.js:535 +msgid "To extract a block, just right-click on it, then you will be able to see the extract option" +msgstr "" + +#: js/turtledefs.js:542 +#: js/turtledefs.js:552 +#: js/turtledefs.js:573 +msgid "Save your project to a file." +msgstr "" + +#: js/turtledefs.js:549 +#: js/turtledefs.js:570 +msgid "save" +msgstr "" + +#: js/turtledefs.js:556 +#: js/turtledefs.js:577 +msgid "Save graphics from your project to as SVG." +msgstr "" + +#: js/turtledefs.js:560 +#: js/turtledefs.js:581 +msgid "Save graphics from your project as PNG." +msgstr "" + +#: js/turtledefs.js:564 +#: js/turtledefs.js:597 +msgid "Save block artwork as an SVG file." +msgstr "" + +#: js/turtledefs.js:585 +msgid "Save audio from your project as WAV." +msgstr "" + +#: js/turtledefs.js:589 +msgid "Save your project to as an ABC file." +msgstr "" + +#: js/turtledefs.js:593 +msgid "Save your project to as a Lilypond file." +msgstr "" + +#: js/turtledefs.js:604 +msgid "Load samples from server" +msgstr "सर्व्हर नमुने लोड करा" + +#: js/turtledefs.js:605 +msgid "This button opens a viewer for loading example projects." +msgstr "हे बटण उदाहरणार्थ प्रकल्प लोड करण्यासाठी एक दर्शक उघडते." + +#: js/turtledefs.js:611 +msgid "Palette buttons" +msgstr "पैलेट बटण" + +#: js/turtledefs.js:612 +msgid "This toolbar contains the palette buttons including Rhythm Pitch Tone Action and more." +msgstr "" + +#: js/turtledefs.js:614 +msgid "Click to show the palettes of blocks and drag blocks from the palettes onto the canvas to use them." +msgstr "" + +#: js/turtledefs.js:620 +msgid "Cartesian/Polar" +msgstr "" + +#: js/turtledefs.js:621 +msgid "Show or hide a coordinate grid." +msgstr "" + +#: js/turtledefs.js:626 +#: js/turtles.js:902 +msgid "Clean" +msgstr "स्वच्छ" + +#: js/turtledefs.js:627 +msgid "Clear the screen and return the mice to their initial positions." +msgstr "" + +#: js/turtledefs.js:632 +#: js/turtles.js:955 +msgid "Collapse" +msgstr "गिर जाना" + +#: js/turtledefs.js:633 +msgid "Collapse the graphics window." +msgstr "" + +#: js/turtledefs.js:638 +#: js/activity.js:5684 +msgid "Home" +msgstr "" + +#: js/turtledefs.js:639 +msgid "Return all blocks to the center of the screen." +msgstr "" + +#: js/turtledefs.js:644 +msgid "Show/hide blocks" +msgstr "ब्लॉक दाखवा/लपवा" + +#: js/turtledefs.js:645 +msgid "Hide or show the blocks and the palettes." +msgstr "ब्लॉक आणि पॅलेट दाखवा/लपवा" + +#: js/turtledefs.js:650 +msgid "Expand/collapse collapsable blocks" +msgstr "" + +#: js/turtledefs.js:651 +msgid "Expand or collapse start and action stacks." +msgstr "" + +#: js/turtledefs.js:658 +#: js/activity.js:5704 +msgid "Decrease block size" +msgstr "ब्लॉकचे आकार कमी करा" + +#: js/turtledefs.js:659 +msgid "Decrease the size of the blocks." +msgstr "ब्लॉकचा आकार घटवा" + +#: js/turtledefs.js:664 +#: js/activity.js:5710 +msgid "Increase block size" +msgstr "ब्लॉकचा आकार वाढवा" + +#: js/turtledefs.js:665 +msgid "Increase the size of the blocks." +msgstr "ब्लॉकचा आकार वाढवा" + +#: js/turtledefs.js:670 +msgid "Expand/collapse option toolbar" +msgstr "साधनपट्टी दाखवायसाठी / लपवायसाठी पर्याय" + +#: js/turtledefs.js:671 +msgid "Click this button to expand or collapse the auxillary toolbar." +msgstr "" + +#: js/turtledefs.js:676 +msgid "Run slow" +msgstr "मंद पाणे चालवा" + +#: js/turtledefs.js:677 +msgid "Click to run the project in slow mode." +msgstr "प्रकल्प मंद पणे चालण्या साठी इकडे दाबा" + +#: js/turtledefs.js:683 +msgid "Click to run the project step by step." +msgstr "" + +#: js/turtledefs.js:690 +msgid "Display statistics about your Music project." +msgstr "आकडेवारी दाखवणे आपल्या टर्टल प्रकल्पाचे" + +#: js/turtledefs.js:697 +msgid "Delete a selected plugin." +msgstr "" + +#: js/turtledefs.js:704 +msgid "Enable scrolling" +msgstr "" + +#: js/turtledefs.js:705 +msgid "You can scroll the blocks on the canvas." +msgstr "" + +#: js/turtledefs.js:714 +msgid "Wrap Turtle" +msgstr "" + +#: js/turtledefs.js:715 +msgid "Turn Turtle wrapping On or Off." +msgstr "" + +#: js/turtledefs.js:725 +msgid "Restore blocks from the trash." +msgstr "कचरा मधुन ब्लॉक पुनर्संचयित करा." + +#: js/turtledefs.js:732 +msgid "Switch mode" +msgstr "" + +#: js/turtledefs.js:733 +msgid "Switch between beginner and advance modes." +msgstr "" + +#: js/turtledefs.js:739 +msgid "Select your language preference." +msgstr "" + +#: js/turtledefs.js:745 +msgid "Keyboard shortcuts" +msgstr "" + +#: js/turtledefs.js:746 +msgid "You can type d to create a do block and r to create a re block etc." +msgstr "" + +#: js/turtledefs.js:753 +msgid "Show these messages." +msgstr "हे संदेश दर्शवा." + +#: js/turtledefs.js:759 +#: js/turtledefs.js:790 +#: js/widgets/help.js:335 +msgid "Guide" +msgstr "" + +#: js/turtledefs.js:760 +msgid "A detailed guide to Turtle Blocks is available." +msgstr "" + +#: js/turtledefs.js:764 +msgid "Turtle Blocks Guide" +msgstr "" + +#: js/turtledefs.js:767 +#: js/turtledefs.js:798 +#: js/widgets/help.js:336 +msgid "About" +msgstr "" + +#: js/turtledefs.js:768 +msgid "Turtle Blocks is an open source collection of tools for exploring musical concepts." +msgstr "" + +#: js/turtledefs.js:770 +msgid "A full list of contributors can be found in the Turtle Blocks GitHub repository." +msgstr "" + +#: js/turtledefs.js:772 +msgid "Turtle Blocks is licensed under the AGPL." +msgstr "" + +#: js/turtledefs.js:780 +msgid "Turtle Blocks GitHub repository" +msgstr "" + +#: js/turtledefs.js:783 +#: js/turtledefs.js:814 +#: js/widgets/help.js:337 +#: js/widgets/help.js:359 +msgid "Congratulations." +msgstr "अभिनंदन" + +#: js/turtledefs.js:784 +msgid "You have finished the tour. Please enjoy Turtle Blocks!" +msgstr "" -#: js/toolbar.js:69 -#: js/toolbar.js:129 -msgid "Set Pitch Preview" +#: js/turtledefs.js:791 +msgid "A detailed guide to Music Blocks is available." msgstr "" -#: js/toolbar.js:70 -#: js/toolbar.js:130 -#: js/toolbar.js:194 -#: js/toolbar.js:249 -msgid "Toggle JavaScript Editor" +#: js/turtledefs.js:799 +msgid "Music Blocks is an open source collection of tools for exploring musical concepts." msgstr "" -#: js/toolbar.js:71 -#: js/toolbar.js:131 -#: js/toolbar.js:195 -#: js/toolbar.js:250 -#: js/turtledefs.js:724 -msgid "Restore" +#: js/turtledefs.js:801 +msgid "A full list of contributors can be found in the Music Blocks GitHub repository." msgstr "" -#: js/toolbar.js:72 -#: js/toolbar.js:132 -#: js/toolbar.js:196 -#: js/toolbar.js:251 -msgid "Switch to beginner mode" +#: js/turtledefs.js:803 +msgid "Music Blocks is licensed under the AGPL." msgstr "" -#: js/toolbar.js:73 -#: js/toolbar.js:133 -#: js/toolbar.js:197 -#: js/toolbar.js:252 -msgid "Switch to advanced mode" +#: js/turtledefs.js:811 +msgid "Music Blocks GitHub repository" msgstr "" -#: js/toolbar.js:74 -#: js/toolbar.js:134 -#: js/toolbar.js:143 -#: js/toolbar.js:198 -#: js/toolbar.js:253 -#: js/turtledefs.js:738 -msgid "Select language" +#: js/turtledefs.js:815 +msgid "You have finished the tour. Please enjoy Music Blocks!" msgstr "" -#: js/toolbar.js:76 -#: js/toolbar.js:79 -#: js/toolbar.js:137 -#: js/turtledefs.js:579 -msgid "Save mouse artwork as PNG" +#: js/turtles.js:882 +msgid "Grid" +msgstr "जाल" + +#: js/turtles.js:1024 +msgid "Expand" +msgstr "बढ़ाना" + +#: js/block-verbose.js:1616 +#: js/block-verbose.js:1735 +#: js/block.js:1580 +#: js/block.js:1699 +#: js/palette.js:605 +#: js/blocks/IntervalsBlocks.js:63 +#: js/blocks/WidgetBlocks.js:259 +msgid "temperament" +msgstr "स्वभाव" + +#: js/block-verbose.js:1630 +#: js/block.js:1594 +msgid "matrix" msgstr "" -#: js/toolbar.js:78 -#: js/toolbar.js:136 -#: js/turtledefs.js:575 -msgid "Save mouse artwork as SVG" +#: js/block-verbose.js:1637 +#: js/block.js:1601 +#: js/blocks/WidgetBlocks.js:1509 +#: plugins/rodi.rtp:324 +msgid "status" msgstr "" -#: js/toolbar.js:80 -#: js/toolbar.js:138 -#: js/turtledefs.js:583 -msgid "Save music as WAV" +#: js/block-verbose.js:1644 +#: js/block.js:1608 +msgid "drum mapper" msgstr "" -#: js/toolbar.js:81 -#: js/toolbar.js:139 -#: js/turtledefs.js:587 -msgid "Save sheet music as ABC" +#: js/block-verbose.js:1651 +#: js/block.js:1615 +msgid "ruler" msgstr "" -#: js/toolbar.js:82 -#: js/toolbar.js:140 -#: js/turtledefs.js:591 -msgid "Save sheet music as Lilypond" +#: js/block-verbose.js:1658 +#: js/block.js:1622 +#: js/blocks/WidgetBlocks.js:397 +#.TRANS: timbre is the character or quality of a musical sound +msgid "timbre" msgstr "" -#: js/toolbar.js:83 -msgid "Save sheet music as MusicXML" +#: js/block-verbose.js:1665 +#: js/block.js:1629 +msgid "stair" msgstr "" -#: js/toolbar.js:84 -#: js/toolbar.js:141 -#: js/toolbar.js:149 -#: js/toolbar.js:204 -#: js/toolbar.js:259 -#: js/turtledefs.js:562 -#: js/turtledefs.js:595 -msgid "Save block artwork as SVG" +#: js/block-verbose.js:1672 +#: js/block.js:1636 +#: js/blocks/WidgetBlocks.js:707 +#.TRANS: the speed at music is should be played. +msgid "tempo" msgstr "" -#: js/toolbar.js:85 -#: js/toolbar.js:142 -#: js/toolbar.js:150 -#: js/toolbar.js:205 -#: js/toolbar.js:260 -msgid "Confirm" +#: js/block-verbose.js:1679 +#: js/block-verbose.js:1742 +#: js/block.js:1643 +#: js/block.js:1706 +#: js/blocks/IntervalsBlocks.js:1464 +#.TRANS: mode, e.g., Major in C Major +msgid "mode" msgstr "" -#: js/toolbar.js:86 -#: js/toolbar.js:151 -#: js/toolbar.js:206 -#: js/toolbar.js:261 -msgid "English (United States)" +#: js/block-verbose.js:1686 +#: js/block.js:1650 +msgid "slider" msgstr "" -#: js/toolbar.js:87 -#: js/toolbar.js:152 -#: js/toolbar.js:207 -#: js/toolbar.js:262 -msgid "English (United Kingdom)" +#: js/block-verbose.js:1693 +#: js/block.js:1657 +#: js/blocks/SensorsBlocks.js:1001 +msgid "keyboard" +msgstr "किबोर्ड" + +#: js/block-verbose.js:1707 +#: js/block.js:1671 +#: js/blocks/WidgetBlocks.js:1190 +#: js/blocks/WidgetBlocks.js:1228 +#.TRANS: widget for subdividing a measure into distinct rhythmic elements +msgid "rhythm maker" msgstr "" -#: js/toolbar.js:88 -#: js/toolbar.js:153 -#: js/toolbar.js:208 -#: js/toolbar.js:263 -msgid "日本語" +#: js/block-verbose.js:1714 +#: js/block-verbose.js:2457 +#: js/block-verbose.js:2514 +#: js/block.js:1678 +#: js/block.js:2385 +#: js/block.js:2442 +#: js/blocks/MeterBlocks.js:1367 +#: js/blocks/OrnamentBlocks.js:220 +#: js/blocks/OrnamentBlocks.js:312 +#: js/blocks/RhythmBlocks.js:33 +#: js/blocks/RhythmBlocks.js:356 +#: js/blocks/RhythmBlocks.js:766 +#: js/blocks/RhythmBlocks.js:806 +#: js/blocks/RhythmBlockPaletteBlocks.js:70 +#: js/blocks/RhythmBlockPaletteBlocks.js:252 +#: js/blocks/RhythmBlockPaletteBlocks.js:485 +#: js/blocks/RhythmBlockPaletteBlocks.js:554 +#: js/blocks/RhythmBlockPaletteBlocks.js:605 +#: js/blocks/RhythmBlockPaletteBlocks.js:875 +#: js/turtleactions/DictActions.js:85 +#: js/widgets/phrasemaker.js:942 +#: js/widgets/phrasemaker.js:2656 +#: js/widgets/phrasemaker.js:2699 +#: js/widgets/phrasemaker.js:2810 +#.TRANS: the value (e.g., 1/4 note) of the note being played. +msgid "note value" msgstr "" -#: js/toolbar.js:89 -msgid "한국어" +#: js/block-verbose.js:1721 +#: js/block-verbose.js:2382 +#: js/block-verbose.js:2405 +#: js/block.js:1685 +#: js/block.js:2310 +#: js/block.js:2333 +#: js/blocks/IntervalsBlocks.js:1071 +#: js/blocks/OrnamentBlocks.js:312 +#.TRANS: calculate a relative step between notes based on semi-tones +msgid "scalar interval" msgstr "" -#: js/toolbar.js:90 -#: js/toolbar.js:155 -#: js/toolbar.js:210 -#: js/toolbar.js:265 -msgid "español" +#: js/block-verbose.js:1728 +#: js/block.js:1692 +#: js/blocks/RhythmBlocks.js:148 +msgid "milliseconds" msgstr "" -#: js/toolbar.js:91 -#: js/toolbar.js:156 -#: js/toolbar.js:211 -#: js/toolbar.js:266 -msgid "português" +#: js/block-verbose.js:2455 +#: js/block-verbose.js:2459 +#: js/block-verbose.js:2512 +#: js/block-verbose.js:2628 +#: js/block.js:2383 +#: js/block.js:2387 +#: js/block.js:2440 +#: js/block.js:2556 +#: js/blocks/RhythmBlocks.js:712 +#: js/blocks/ProgramBlocks.js:1273 +#: js/widgets/rhythmruler.js:1183 +#: js/widgets/rhythmruler.js:1329 +msgid "silence" msgstr "" -#: js/toolbar.js:92 -#: js/toolbar.js:157 -#: js/toolbar.js:212 -#: js/toolbar.js:267 -msgid "にほんご" +#: js/block-verbose.js:2548 +#: js/block-verbose.js:3492 +#: js/block-verbose.js:3509 +#: js/activity.js:2718 +#: js/activity.js:2769 +#: js/block.js:2476 +#: js/block.js:3416 +#: js/block.js:3433 +#: js/utils/musicutils.js:3780 +#: js/utils/musicutils.js:5273 +#.TRANS: the note names must be separated by single spaces +#.TRANS: the note names must be separated by single spaces +#.TRANS: the note names must be separated by single spaces +msgid "ti la sol fa mi re do" msgstr "" -#: js/toolbar.js:93 -#: js/toolbar.js:158 -#: js/toolbar.js:213 -#: js/toolbar.js:268 -msgid "中文" +#: js/block-verbose.js:2616 +#: js/block.js:2544 +#.TRANS: scalar step +#.TRANS: scalar step +msgid "down" msgstr "" -#: js/toolbar.js:94 -#: js/toolbar.js:159 -#: js/toolbar.js:214 -#: js/toolbar.js:269 -msgid "ภาษาไทย" +#: js/block-verbose.js:2617 +#: js/block.js:2545 +msgid "up" msgstr "" -#: js/toolbar.js:95 -#: js/toolbar.js:160 -#: js/toolbar.js:215 -#: js/toolbar.js:270 -msgid "aymara" +#: js/block-verbose.js:3026 +#: js/block.js:2950 +msgid "Silence block cannot be removed." msgstr "" -#: js/toolbar.js:96 -#: js/toolbar.js:161 -#: js/toolbar.js:216 -#: js/toolbar.js:271 -msgid "quechua" +#: js/block-verbose.js:3824 +#: js/block.js:3748 +#: js/blocks.js:2607 +#: js/blocks.js:3218 +#: js/palette.js:618 +#: js/blocks/BooleanBlocks.js:77 +#: js/blocks/BooleanBlocks.js:167 +#: js/blocks/BooleanBlocks.js:251 +#: js/blocks/BooleanBlocks.js:335 +#: js/blocks/BooleanBlocks.js:433 +#: js/blocks/BooleanBlocks.js:539 +#: js/blocks/BooleanBlocks.js:640 +#: js/blocks/BooleanBlocks.js:741 +#: js/blocks/BooleanBlocks.js:847 +#: js/blocks/BooleanBlocks.js:948 +#: js/blocks/BooleanBlocks.js:1033 +#: js/blocks/SensorsBlocks.js:910 +msgid "true" +msgstr "सत्य" + +#: js/block-verbose.js:3824 +#: js/block.js:3748 +#: js/blocks.js:2609 +#: js/blocks.js:3220 +#: js/blocks/BooleanBlocks.js:79 +#: js/blocks/BooleanBlocks.js:169 +#: js/blocks/BooleanBlocks.js:253 +#: js/blocks/BooleanBlocks.js:337 +#: js/blocks/BooleanBlocks.js:435 +#: js/blocks/BooleanBlocks.js:541 +#: js/blocks/BooleanBlocks.js:642 +#: js/blocks/BooleanBlocks.js:743 +#: js/blocks/BooleanBlocks.js:849 +#: js/blocks/BooleanBlocks.js:950 +#: js/blocks/SensorsBlocks.js:912 +msgid "false" +msgstr "असत्य" + +#: js/block-verbose.js:3835 +#: js/block-verbose.js:3848 +#: js/block.js:3759 +#: js/block.js:3772 +#: js/blocks/ExtrasBlocks.js:615 +msgid "Cartesian" +msgstr "कार्टेशियन" + +#: js/block-verbose.js:3836 +#: js/block-verbose.js:3849 +#: js/block.js:3760 +#: js/block.js:3773 +#: js/blocks/ExtrasBlocks.js:619 +msgid "polar" msgstr "" -#: js/toolbar.js:97 -#: js/toolbar.js:162 -#: js/toolbar.js:217 -#: js/toolbar.js:272 -msgid "guarani" +#: js/block-verbose.js:3837 +#: js/block-verbose.js:3850 +#: js/block.js:3761 +#: js/block.js:3774 +#: js/blocks/ExtrasBlocks.js:623 +msgid "Cartesian+polar" msgstr "" -#: js/toolbar.js:98 -#: js/toolbar.js:163 -#: js/toolbar.js:218 -#: js/toolbar.js:273 -msgid "हिंदी" +#: js/block-verbose.js:3838 +#: js/block-verbose.js:3857 +#: js/block.js:3762 +#: js/block.js:3781 +#: js/blocks/ExtrasBlocks.js:652 +msgid "none" msgstr "" -#: js/toolbar.js:99 -#: js/toolbar.js:165 -#: js/toolbar.js:219 -#: js/toolbar.js:275 -msgid "igbo" +#: js/block-verbose.js:3851 +#: js/block.js:3775 +#: js/blocks/ExtrasBlocks.js:628 +msgid "treble" msgstr "" -#: js/toolbar.js:100 -#: js/toolbar.js:166 -#: js/toolbar.js:220 -#: js/toolbar.js:276 -msgid "عربى" +#: js/block-verbose.js:3852 +#: js/block.js:3776 +#: js/blocks/ExtrasBlocks.js:632 +msgid "grand staff" msgstr "" -#: js/toolbar.js:101 -#: js/toolbar.js:164 -#: js/toolbar.js:221 -#: js/toolbar.js:274 -msgid "తెలుగు" +#: js/block-verbose.js:3853 +#: js/block.js:3777 +#: js/blocks/ExtrasBlocks.js:636 +msgid "mezzo-soprano" msgstr "" -#: js/toolbar.js:102 -#: js/toolbar.js:167 -#: js/toolbar.js:222 -#: js/toolbar.js:277 -msgid "עִברִית" +#: js/block-verbose.js:3854 +#: js/block.js:3778 +#: js/blocks/ExtrasBlocks.js:640 +msgid "alto" msgstr "" -#: js/toolbar.js:111 -#: js/toolbar.js:175 -#: js/toolbar.js:176 -#: js/toolbar.js:231 -msgid "Full Screen" -msgstr "पूर्ण स्क्रीन" +#: js/block-verbose.js:3855 +#: js/block.js:3779 +#: js/blocks/ExtrasBlocks.js:644 +msgid "tenor" +msgstr "" -#: js/toolbar.js:145 -#: js/toolbar.js:148 -#: js/toolbar.js:200 -#: js/toolbar.js:203 -#: js/toolbar.js:255 -#: js/toolbar.js:258 -#: js/turtledefs.js:558 -msgid "Save turtle artwork as PNG" +#: js/block-verbose.js:3856 +#: js/block.js:3780 +#: js/utils/musicutils.js:1115 +#: js/utils/synthutils.js:80 +#: js/blocks/ExtrasBlocks.js:648 +#.TRANS: musical instrument +msgid "bass" +msgstr "" + +#: js/block-verbose.js:3901 +#: js/block.js:3825 +#: js/blocks.js:2600 +#: js/blocks.js:3211 +msgid "on2" msgstr "" -#: js/toolbar.js:147 -#: js/toolbar.js:202 -#: js/toolbar.js:257 -#: js/turtledefs.js:554 -msgid "Save turtle artwork as SVG" +#: js/block-verbose.js:3903 +#: js/block.js:3827 +#: js/blocks.js:2602 +#: js/blocks.js:3213 +msgid "off" +msgstr "बंद" + +#: js/block-verbose.js:4470 +#: js/block.js:4394 +msgid "Not a number" msgstr "" -#: js/toolbar.js:154 -#: js/toolbar.js:209 -#: js/toolbar.js:264 -msgid "한국인" +#: js/block-verbose.js:4477 +#: js/block.js:4401 +msgid "Octave value must be between 1 and 10." msgstr "" -#: js/toolbar.js:171 -#: js/toolbar.js:227 -msgid "About Turtle Blocks" +#: js/block-verbose.js:4485 +#: js/block.js:4409 +msgid "Numbers can have at most 10 digits." msgstr "" -#: js/toolbar.js:429 -#: js/toolbar.js:440 -msgid "Turtle Wrap Off" +#: js/activity.js:390 +#: js/activity.js:395 +msgid "Search for blocks" msgstr "" -#: js/toolbar.js:442 -msgid "Turtle Wrap On" +#: js/activity.js:1413 +msgid "Refresh your browser to change to advanced mode." msgstr "" -#: js/block.js:1470 -msgid "matrix" +#: js/activity.js:1418 +msgid "Refresh your browser to change to beginner mode." msgstr "" -#: js/block.js:1477 -#: js/WidgetBlocks.js:1226 -#: plugins/rodi.rtp:324 -msgid "status" +#: js/activity.js:1477 +msgid "Catching mice" msgstr "" -#: js/block.js:1484 -msgid "drum mapper" +#: js/activity.js:1478 +msgid "Cleaning the instruments" msgstr "" -#: js/block.js:1491 -msgid "ruler" +#: js/activity.js:1479 +msgid "Testing key pieces" msgstr "" -#: js/block.js:1498 -#: js/WidgetBlocks.js:327 -#.TRANS: timbre is the character or quality of a musical sound -msgid "timbre" +#: js/activity.js:1480 +msgid "Sight-reading" msgstr "" -#: js/block.js:1505 -msgid "stair" +#: js/activity.js:1481 +msgid "Combining math and music" msgstr "" -#: js/block.js:1512 -#: js/WidgetBlocks.js:577 -#.TRANS: the speed at music is should be played. -msgid "tempo" +#: js/activity.js:1482 +msgid "Generating more blocks" msgstr "" -#: js/block.js:1519 -#: js/block.js:1582 -#: js/IntervalsBlocks.js:1268 -#.TRANS: mode, e.g., Major in C Major -msgid "mode" +#: js/activity.js:1483 +msgid "Do Re Mi Fa Sol La Ti Do" msgstr "" -#: js/block.js:1526 -msgid "slider" +#: js/activity.js:1484 +msgid "Tuning string instruments" msgstr "" -#: js/block.js:1533 -#: js/SensorsBlocks.js:1001 -msgid "keyboard" -msgstr "किबोर्ड" +#: js/activity.js:1485 +msgid "Pressing random keys" +msgstr "" -#: js/block.js:1547 -#: js/WidgetBlocks.js:957 -#: js/WidgetBlocks.js:988 -#.TRANS: widget for subdividing a measure into distinct rhythmic elements -msgid "rhythm maker" +#: js/activity.js:1663 +msgid "plugins will be removed upon restart." msgstr "" -#: js/block.js:1554 -#: js/block.js:2182 -#: js/block.js:2236 -#: js/RhythmBlockPaletteBlocks.js:70 -#: js/RhythmBlockPaletteBlocks.js:251 -#: js/RhythmBlockPaletteBlocks.js:484 -#: js/RhythmBlockPaletteBlocks.js:553 -#: js/RhythmBlockPaletteBlocks.js:604 -#: js/RhythmBlockPaletteBlocks.js:874 -#: js/RhythmBlocks.js:33 -#: js/RhythmBlocks.js:356 -#: js/RhythmBlocks.js:766 -#: js/RhythmBlocks.js:806 -#: js/OrnamentBlocks.js:220 -#: js/OrnamentBlocks.js:312 -#: js/MeterBlocks.js:1367 -#: js/DictActions.js:85 -#: js/phrasemaker.js:731 -#: js/phrasemaker.js:2393 -#: js/phrasemaker.js:2436 -#: js/phrasemaker.js:2534 -#.TRANS: the value (e.g., 1/4 note) of the note being played. -msgid "note value" +#: js/activity.js:1672 +msgid "show Cartesian" msgstr "" -#: js/block.js:1561 -#: js/block.js:2110 -#: js/block.js:2133 -#: js/IntervalsBlocks.js:875 -#: js/OrnamentBlocks.js:312 -#.TRANS: calculate a relative step between notes based on semi-tones -msgid "scalar interval" +#: js/activity.js:2211 +#: js/palette.js:589 +#: js/blocks/RhythmBlocks.js:923 +#: js/blocks/PitchBlocks.js:442 +#: js/blocks/PitchBlocks.js:1786 +#.TRANS: a numeric mapping of the notes in an octave based on the musical mode +msgid "scale degree" +msgstr "पैमाने की डिग्री" + +#: js/activity.js:2214 +#: js/palette.js:598 +msgid "voice name" +msgstr "आवाज का नाम" + +#: js/activity.js:2217 +#: js/palette.js:595 +msgid "invert mode" +msgstr "उलटा मोड" + +#: js/activity.js:2220 +msgid "output tools" msgstr "" -#: js/block.js:1568 -#: js/RhythmBlocks.js:148 -msgid "milliseconds" +#: js/activity.js:2223 +msgid "custom note" msgstr "" -#: js/block.js:2180 -#: js/block.js:2184 -#: js/block.js:2234 -#: js/block.js:2345 -#: js/ProgramBlocks.js:1273 -#: js/RhythmBlocks.js:712 -#: js/rhythmruler.js:834 -#: js/rhythmruler.js:961 -msgid "silence" +#: js/activity.js:2226 +msgid "accidental name" msgstr "" -#: js/block.js:2265 -#: js/block.js:3134 -#: js/block.js:3151 -#: js/activity.js:2336 -#: js/activity.js:2387 -#: js/musicutils.js:2932 -#: js/musicutils.js:4287 -#.TRANS: the note names must be separated by single spaces -#.TRANS: the note names must be separated by single spaces -msgid "ti la sol fa mi re do" +#: js/activity.js:2229 +#: js/blocks/PitchBlocks.js:855 +msgid "east indian solfege" msgstr "" -#: js/block.js:2333 -#.TRANS: scalar step -msgid "down" +#: js/activity.js:2232 +#: js/blocks/PitchBlocks.js:869 +msgid "note name" msgstr "" -#: js/block.js:2334 -msgid "up" +#: js/activity.js:2235 +#: js/blocks/IntervalsBlocks.js:94 +msgid "temperament name" msgstr "" -#: js/block.js:3477 -#: js/block.js:3490 -#: js/ExtrasBlocks.js:612 -msgid "Cartesian" -msgstr "कार्टेशियन" +#: js/activity.js:2238 +#: js/palette.js:592 +msgid "mode name" +msgstr "मोड का नाम" -#: js/block.js:3478 -#: js/block.js:3491 -#: js/ExtrasBlocks.js:616 -msgid "polar" +#: js/activity.js:2241 +msgid "chord name" msgstr "" -#: js/block.js:3479 -#: js/block.js:3492 -#: js/ExtrasBlocks.js:620 -msgid "Cartesian+polar" -msgstr "" +#: js/activity.js:2244 +#: js/palette.js:615 +msgid "interval name" +msgstr "अंतराल नाम" -#: js/block.js:3480 -#: js/block.js:3499 -#: js/ExtrasBlocks.js:649 -msgid "none" +#: js/activity.js:2247 +msgid "filter type" msgstr "" -#: js/block.js:3493 -#: js/ExtrasBlocks.js:625 -msgid "treble" +#: js/activity.js:2250 +msgid "oscillator type" msgstr "" -#: js/block.js:3494 -#: js/ExtrasBlocks.js:629 -msgid "grand staff" +#: js/activity.js:2253 +#: js/blocks.js:2479 +#: js/blocks.js:2487 +msgid "audio file" +msgstr "ऑडियो फाइल" + +#: js/activity.js:2256 +#: js/blocks/DrumBlocks.js:32 +msgid "noise name" msgstr "" -#: js/block.js:3495 -#: js/ExtrasBlocks.js:633 -msgid "mezzo-soprano" +#: js/activity.js:2259 +#: js/blocks/DrumBlocks.js:75 +msgid "drum name" msgstr "" -#: js/block.js:3496 -#: js/ExtrasBlocks.js:637 -msgid "alto" +#: js/activity.js:2262 +#: js/blocks/DrumBlocks.js:119 +msgid "effects name" msgstr "" -#: js/block.js:3497 -#: js/ExtrasBlocks.js:641 -msgid "tenor" +#: js/activity.js:2265 +msgid "wrap mode" msgstr "" -#: js/block.js:3498 -#: js/ExtrasBlocks.js:645 -#: js/musicutils.js:736 -#: js/synthutils.js:64 -#.TRANS: musical instrument -msgid "bass" +#: js/activity.js:2268 +msgid "load file" msgstr "" -#: js/block.js:4075 -msgid "Not a number" +#: js/activity.js:2435 +#: js/activity.js:5851 +msgid "This block is deprecated." msgstr "" -#: js/block.js:4082 -msgid "Octave value must be between 1 and 10." +#: js/activity.js:2437 +#: js/activity.js:5853 +msgid "Block cannot be found." msgstr "" -#: js/block.js:4090 -msgid "Numbers can have at most 10 digits." +#: js/activity.js:2645 +msgid "Saving block artwork" msgstr "" -#: js/notation.js:353 -msgid "Lilypond cannot process pickup of " +#: js/activity.js:2656 +msgid "Erase" msgstr "" -#: js/turtledefs.js:40 -#.TRANS: put the URL to the guide here, e.g., https://github.com/sugarlabs/turtleblocksjs/tree/master/guide/README.md -msgid "guide url" +#: js/activity.js:2683 +#: js/activity.js:2705 +msgid "Paste" +msgstr "पेस्ट" + +#: js/activity.js:2687 +msgid "Save block help" msgstr "" -#: js/turtledefs.js:85 -#: js/turtledefs.js:437 -msgid "Turtle Blocks is a Logo-inspired turtle that draws colorful pictures with snap-together visual-programming blocks." +#: js/activity.js:2772 +msgid "Jumping to the bottom of the page." msgstr "" -#: js/turtledefs.js:118 -#: js/turtledefs.js:220 -msgid "search" +#: js/activity.js:2778 +msgid "Scrolling up." msgstr "" -#: js/turtledefs.js:120 -#: js/turtledefs.js:222 -#: js/WidgetBlocks.js:437 -#: js/MeterBlocks.js:1343 -#.TRANS: musical meter (time signature), e.g., 4:4 -msgid "meter" +#: js/activity.js:2783 +msgid "Scrolling down." msgstr "" -#: js/turtledefs.js:122 -#: js/turtledefs.js:224 -msgid "intervals" +#: js/activity.js:2788 +msgid "Extracting block" msgstr "" -#: js/turtledefs.js:124 -#: js/turtledefs.js:226 -msgid "ornament" +#: js/activity.js:2796 +msgid "Moving block up." msgstr "" -#: js/turtledefs.js:125 -#: js/turtledefs.js:227 -#: js/VolumeBlocks.js:362 -#: js/VolumeBlocks.js:502 -#: js/VolumeBlocks.js:545 -msgid "volume" +#: js/activity.js:2817 +msgid "Moving block down." msgstr "" -#: js/turtledefs.js:129 -#: js/turtledefs.js:231 -msgid "boxes" +#: js/activity.js:2838 +msgid "Moving block left." msgstr "" -#: js/turtledefs.js:130 -#: js/turtledefs.js:232 -msgid "widgets" +#: js/activity.js:2855 +msgid "Moving block right." msgstr "" -#: js/turtledefs.js:131 -#: js/turtledefs.js:233 -#: js/phrasemaker.js:824 -msgid "graphics" +#: js/activity.js:2870 +msgid "Jump to home position." msgstr "" -#: js/turtledefs.js:134 -#: js/turtledefs.js:236 -msgid "boolean" -msgstr "बुलियन" +#: js/activity.js:2897 +msgid "Hide blocks" +msgstr "" -#: js/turtledefs.js:137 -#: js/turtledefs.js:239 -#: js/HeapBlocks.js:59 -#: js/status.js:147 -msgid "heap" +#: js/activity.js:4500 +msgid "Click the run button to run the project." msgstr "" -#: js/turtledefs.js:138 -#: js/turtledefs.js:240 -#: js/ProgramBlocks.js:495 -#: js/DictBlocks.js:142 -msgid "dictionary" +#: js/activity.js:5692 +msgid "Show/hide block" msgstr "" -#: js/turtledefs.js:139 -#: js/turtledefs.js:241 -msgid "ensemble" +#: js/activity.js:5698 +msgid "Expand/collapse blocks" msgstr "" -#: js/turtledefs.js:140 -#: js/turtledefs.js:242 -msgid "extras" -msgstr "अतिरिक्त" +#: js/activity.js:5976 +msgid "Could not parse JSON input." +msgstr "" -#: js/turtledefs.js:142 -#: js/turtledefs.js:244 -#.TRANS: program as in computer program -#.TRANS: program as in computer program -msgid "program" +#: js/activity.js:6475 +#: js/activity.js:6580 +#: js/activity.js:6631 +msgid "Cannot load project from the file. Please check the file type." msgstr "" -#: js/turtledefs.js:143 -#: js/turtledefs.js:245 -msgid "my blocks" +#: js/activity.js:6917 +msgid "Invalid parameters" msgstr "" -#: js/turtledefs.js:185 -#: js/turtledefs.js:281 -msgid "artwork" +#: js/blocks.js:1212 +#: js/blocks.js:3444 +#: js/blocks.js:3834 +#: js/blocks.js:3865 +#: js/blocks.js:3914 +#: js/blocks.js:3949 +#: js/blocks.js:6586 +#: js/palette.js:509 +#: js/palette.js:638 +#: js/palette.js:1105 +#: js/blocks/BoxesBlocks.js:282 +#: js/blocks/BoxesBlocks.js:285 +#: js/blocks/BoxesBlocks.js:405 +#: js/blocks/BoxesBlocks.js:594 +msgid "box" +msgstr "पेटी" + +#: js/blocks.js:1713 +msgid "Consider breaking this stack into parts." +msgstr "इस ढेर को भागों में तोड़ने पर विचार करें" + +#: js/blocks.js:2472 +#: js/palette.js:653 +#: js/blocks/MediaBlocks.js:602 +msgid "open file" +msgstr "फाइल उघडा" + +#: js/blocks.js:3247 +#: js/palette.js:574 +#: js/blocks/MediaBlocks.js:892 +#: js/blocks/MediaBlocks.js:963 +msgid "text" +msgstr "मजकूर" + +#: js/blocks.js:3443 +#: js/palette.js:641 +#: js/palette.js:642 +#: js/blocks/BoxesBlocks.js:514 +msgid "store in box" +msgstr "बॉक्स में स्टोर करें" + +#: js/blocks.js:3448 +#: js/blocks.js:3888 +#: js/blocks.js:3923 +#: js/blocks.js:3958 +#: js/blocks.js:5862 +#: js/blocks.js:5883 +#: js/blocks/BoxesBlocks.js:772 +msgid "box1" +msgstr "बॉक्स 1" + +#: js/blocks.js:3450 +#: js/blocks.js:3890 +#: js/blocks.js:3925 +#: js/blocks.js:3960 +#: js/blocks.js:5864 +#: js/blocks.js:5885 +#: js/blocks/BoxesBlocks.js:663 +msgid "box2" +msgstr "बॉक्स 2" + +#: js/blocks.js:4122 +#: js/palette.js:639 +#: js/palette.js:644 +#: js/palette.js:1041 +#: js/blocks/BoxesBlocks.js:591 +msgid "store in" +msgstr "मध्ये संग्रह करणे" + +#: js/blocks.js:4122 +#: js/blocks/BoxesBlocks.js:595 +#: js/blocks/DictBlocks.js:215 +#: js/blocks/DictBlocks.js:289 +#: js/blocks/EnsembleBlocks.js:391 +#: js/blocks/EnsembleBlocks.js:402 +#: js/blocks/MediaBlocks.js:746 +#: js/blocks/PitchBlocks.js:656 +#: js/blocks/PitchBlocks.js:934 +#: js/blocks/PitchBlocks.js:1866 +#: js/blocks/ProgramBlocks.js:390 +#: js/blocks/ProgramBlocks.js:495 +#: js/blocks/ProgramBlocks.js:658 +#: js/blocks/ToneBlocks.js:1025 +msgid "name" +msgstr "नाव" + +#: js/blocks.js:4122 +#: js/blocks/BoxesBlocks.js:75 +#: js/blocks/BoxesBlocks.js:595 +#: js/blocks/DictBlocks.js:289 +#: js/blocks/DictBlocks.js:430 +#: js/blocks/HeapBlocks.js:544 +#: js/blocks/RhythmBlocks.js:1130 +msgid "value" +msgstr "मूल्य" + +#: js/blocks.js:4465 +msgid "Forever loop detected inside a note value block. Unexpected things may happen." msgstr "" -#: js/turtledefs.js:185 -#: js/turtledefs.js:281 -msgid "logic" -msgstr "तर्कशास्त्र" +#: js/blocks.js:4988 +msgid "There is no block selected." +msgstr "कोई ब्लॉक चयनित नहीं है" + +#: js/blocks.js:5091 +#: js/blocks/MediaBlocks.js:888 +msgid "show" +msgstr "दाखवा" + +#: js/blocks.js:5094 +#: js/blocks/MediaBlocks.js:803 +#.TRANS: Avatar is the image used to determine the appearance of the mouse. +msgid "avatar" +msgstr "अवतार" + +#: js/blocks.js:5097 +#: js/blocks/ToneBlocks.js:1010 +#: js/widgets/sampler.js:975 +#.TRANS: The sound sample that the user uploads. +msgid "sample" +msgstr "नमूना" -#: js/turtledefs.js:185 -#: js/turtledefs.js:281 -msgid "music" +#: js/lilypond.js:606 +msgid "brown rat" msgstr "" -#: js/turtledefs.js:187 -#: js/turtledefs.js:463 -msgid "Music Blocks is a collection of tools for exploring fundamental musical concepts in a fun way." +#: js/lilypond.js:607 +msgid "mole" msgstr "" -#: js/turtledefs.js:436 -msgid "Welcome to Turtle Blocks" +#: js/lilypond.js:608 +msgid "chipmunk" msgstr "" -#: js/turtledefs.js:438 -#: js/turtledefs.js:465 -#: js/turtledefs.js:774 -#: js/turtledefs.js:805 -msgid "The current version is" +#: js/lilypond.js:609 +msgid "red squirrel" msgstr "" -#: js/turtledefs.js:446 -#: js/turtledefs.js:483 -msgid "Click the run button to run the project in fast mode." +#: js/lilypond.js:610 +msgid "guinea pig" msgstr "" -#: js/turtledefs.js:452 -msgid "Stop the turtle." +#: js/lilypond.js:611 +msgid "capybara" msgstr "" -#: js/turtledefs.js:454 -#: js/turtledefs.js:491 -msgid "You can also type Alt-S to stop." +#: js/lilypond.js:612 +msgid "coypu" msgstr "" -#: js/turtledefs.js:462 -#: js/help.js:333 -msgid "Welcome to Music Blocks" +#: js/lilypond.js:613 +msgid "black rat" msgstr "" -#: js/turtledefs.js:472 -#: js/help.js:334 -msgid "Meet Mr. Mouse!" +#: js/lilypond.js:614 +msgid "grey squirrel" msgstr "" -#: js/turtledefs.js:473 -msgid "Mr Mouse is our Music Blocks conductor." +#: js/lilypond.js:615 +msgid "flying squirrel" msgstr "" -#: js/turtledefs.js:475 -msgid "Mr Mouse encourages you to explore Music Blocks." +#: js/lilypond.js:616 +msgid "bat" msgstr "" -#: js/turtledefs.js:477 -msgid "Let us start our tour!" +#: js/lilypond.js:749 +#: js/lilypond.js:913 +#: js/lilypond.js:951 +#: js/blocks/ActionBlocks.js:1256 +#: js/blocks/ExtrasBlocks.js:556 +msgid "start drum" msgstr "" -#: js/turtledefs.js:489 -msgid "Stop the music (and the mice)." +#: js/logo.js:61 +msgid "Not a valid pitch name" msgstr "" -#: js/turtledefs.js:499 -msgid "Record your project as video." +#: js/logo.js:507 +#: js/blocks/ProgramBlocks.js:258 +#: js/blocks/ProgramBlocks.js:427 +msgid "You must select a file." msgstr "" -#: js/turtledefs.js:505 -msgid "Toggle Fullscreen mode." +#: js/logo.js:1696 +msgid "Playback is ready." msgstr "" -#: js/turtledefs.js:511 -msgid "Initialize a new project." +#: js/macros.js:711 +#: js/utils/musicutils.js:1162 +#: js/utils/synthutils.js:202 +#.TRANS: animal sound effect +msgid "duck" +msgstr "बत्तख" + +#: js/notation.js:353 +msgid "Lilypond cannot process pickup of " msgstr "" -#: js/turtledefs.js:517 -msgid "You can also load projects from the file system." -msgstr "आपण फाइल प्रणाली मधुन पण प्रकल्प लोड करू शकतो." +#: js/palette.js:571 +msgid "grid" +msgstr "जाल" -#: js/turtledefs.js:522 -#: js/StringHelper.js:46 -msgid "Delete" -msgstr "हटवा" +#: js/palette.js:580 +msgid "effect" +msgstr "प्रभाव" -#: js/turtledefs.js:523 -msgid "To delete a block, just right-click on it, then you will be able to see the delete option" -msgstr "" +#: js/palette.js:586 +msgid "sargam" +msgstr "सरगम" -#: js/turtledefs.js:528 -#: js/activity.js:2270 -#: js/LocalCard.js:31 -msgid "Copy" -msgstr "कॉपी" +#: js/palette.js:601 +#: js/blocks/PitchBlocks.js:1209 +msgid "custom pitch" +msgstr "कस्टम पिच" -#: js/turtledefs.js:529 -msgid "To copy a block, just right-click on it, then you will be able to see the copy option" -msgstr "" +#: js/palette.js:609 +msgid "accidental" +msgstr "accidental" -#: js/turtledefs.js:535 -msgid "To extract a block, just right-click on it, then you will be able to see the extract option" -msgstr "" +#: js/palette.js:633 +#: js/blocks/PitchBlocks.js:405 +msgid "pitch converter" +msgstr "पिच कनवर्टर" -#: js/turtledefs.js:542 -#: js/turtledefs.js:552 -#: js/turtledefs.js:573 -msgid "Save your project to a file." +#: js/piemenus.js:200 +#: js/utils/musicutils.js:1187 +#: js/utils/musicutils.js:1207 +#: js/widgets/musickeyboard.js:2341 +#: js/widgets/phrasemaker.js:1908 +#: js/widgets/sampler.js:810 +#.TRANS: double sharp is a music term related to pitch +msgid "double sharp" +msgstr "दोगुना तेज़" + +#: js/piemenus.js:201 +#: js/utils/musicutils.js:1185 +#: js/utils/musicutils.js:1208 +#: js/blocks/PitchBlocks.js:1539 +#: js/turtleactions/PitchActions.js:323 +#: js/widgets/musickeyboard.js:2342 +#: js/widgets/phrasemaker.js:1909 +#: js/widgets/sampler.js:811 +#.TRANS: sharp is a music term related to pitch +#.TRANS: sharp is a half-step up in pitch +msgid "sharp" msgstr "" -#: js/turtledefs.js:549 -#: js/turtledefs.js:570 -msgid "save" +#: js/piemenus.js:202 +#: js/utils/musicutils.js:1183 +#: js/utils/musicutils.js:1209 +#: js/widgets/musickeyboard.js:2343 +#: js/widgets/phrasemaker.js:1910 +#: js/widgets/sampler.js:812 +#.TRANS: natural is a music term related to pitch +msgid "natural" msgstr "" -#: js/turtledefs.js:556 -#: js/turtledefs.js:577 -msgid "Save graphics from your project to as SVG." +#: js/piemenus.js:203 +#: js/utils/musicutils.js:1181 +#: js/utils/musicutils.js:1210 +#: js/blocks/PitchBlocks.js:1498 +#: js/turtleactions/PitchActions.js:326 +#: js/widgets/musickeyboard.js:2344 +#: js/widgets/phrasemaker.js:1911 +#: js/widgets/sampler.js:813 +#.TRANS: flat is a music term related to pitch +#.TRANS: flat is a half-step down in pitch +msgid "flat" msgstr "" -#: js/turtledefs.js:560 -#: js/turtledefs.js:581 -msgid "Save graphics from your project as PNG." +#: js/piemenus.js:204 +#: js/utils/musicutils.js:1179 +#: js/utils/musicutils.js:1211 +#: js/widgets/musickeyboard.js:2345 +#: js/widgets/phrasemaker.js:1912 +#: js/widgets/sampler.js:814 +#.TRANS: double flat is a music term related to pitch +msgid "double flat" msgstr "" -#: js/turtledefs.js:564 -#: js/turtledefs.js:597 -msgid "Save block artwork as an SVG file." +#: js/piemenus.js:2864 +#: js/utils/musicutils.js:1006 +#: js/blocks/PitchBlocks.js:1385 +#.TRANS: unison is a music term related to intervals +#.TRANS: unison means the note is the same as the current note +msgid "unison" msgstr "" -#: js/turtledefs.js:585 -msgid "Save audio from your project as WAV." +#: js/piemenus.js:3018 +#: js/piemenus.js:3091 +#: js/utils/musicutils.js:1014 +#: js/utils/musicutils.js:1189 +#: js/utils/musicutils.js:1326 +#.TRANS: major is a music term related to intervals and mode +msgid "major" msgstr "" -#: js/turtledefs.js:589 -msgid "Save your project to as an ABC file." +#: js/piemenus.js:3018 +#: js/piemenus.js:3091 +#: js/utils/musicutils.js:1032 +#.TRANS: modal scale for music +msgid "ionian" msgstr "" -#: js/turtledefs.js:593 -msgid "Save your project to as a Lilypond file." +#: js/piemenus.js:3020 +#: js/piemenus.js:3095 +#: js/utils/musicutils.js:1012 +#: js/utils/musicutils.js:1190 +#: js/utils/musicutils.js:1323 +#.TRANS: minor is a music term related to intervals and mode +msgid "minor" msgstr "" -#: js/turtledefs.js:604 -msgid "Load samples from server" -msgstr "सर्व्हर नमुने लोड करा" +#: js/piemenus.js:3020 +#: js/piemenus.js:3095 +#: js/utils/musicutils.js:1042 +#.TRANS: modal scale for music +msgid "aeolian" +msgstr "वातज" -#: js/turtledefs.js:605 -msgid "This button opens a viewer for loading example projects." -msgstr "हे बटण उदाहरणार्थ प्रकल्प लोड करण्यासाठी एक दर्शक उघडते." +#: js/piemenus.js:3410 +msgid "Duplicate" +msgstr "डुप्लिकेट" -#: js/turtledefs.js:611 -msgid "Palette buttons" -msgstr "पैलेट बटण" +#: js/piemenus.js:3412 +msgid "Move to trash" +msgstr "कचरे में ले जाएं" -#: js/turtledefs.js:612 -msgid "This toolbar contains the palette buttons including Rhythm Pitch Tone Action and more." -msgstr "" +#: js/piemenus.js:3413 +#: js/widgets/timbre.js:968 +#: planet/js/StringHelper.js:69 +msgid "Close" +msgstr "बंद करना" -#: js/turtledefs.js:614 -msgid "Click to show the palettes of blocks and drag blocks from the palettes onto the canvas to use them." -msgstr "" +#: js/piemenus.js:3419 +msgid "Save stack" +msgstr "स्टॅक जतन करा" -#: js/turtledefs.js:620 -msgid "Cartesian/Polar" +#: js/piemenus.js:3449 +msgid "In order to copy a sample, you must reload the widget, import the sample again, and export it." msgstr "" -#: js/turtledefs.js:621 -msgid "Show or hide a coordinate grid." -msgstr "" +#: js/piemenus.js:3812 +msgid "You have chosen key " +msgstr "आपने कुंजी चुन ली है" -#: js/turtledefs.js:627 -msgid "Clear the screen and return the mice to their initial positions." -msgstr "" +#: js/piemenus.js:3816 +msgid " for your pitch preview." +msgstr "आपके पिच पूर्वावलोकन के लिए" -#: js/turtledefs.js:633 -msgid "Collapse the graphics window." +#: js/turtle-singer.js:1363 +#.TRANS: partials are weighted components in a harmonic series +msgid "You must have at least one Partial block inside of a Weighted-partial block" msgstr "" -#: js/turtledefs.js:638 -#: js/activity.js:4256 -#: js/activity.js:4256 -msgid "Home" +#: js/turtle-singer.js:2077 +msgid "synth cannot play chords." msgstr "" -#: js/turtledefs.js:639 -msgid "Return all blocks to the center of the screen." +#: js/utils/musicutils.js:505 +#: js/utils/musicutils.js:645 +#: js/widgets/pitchdrummatrix.js:228 +#: js/widgets/musickeyboard.js:2885 +msgid "rest" msgstr "" -#: js/turtledefs.js:644 -msgid "Show/hide blocks" -msgstr "ब्लॉक दाखवा/लपवा" - -#: js/turtledefs.js:645 -msgid "Hide or show the blocks and the palettes." -msgstr "ब्लॉक आणि पॅलेट दाखवा/लपवा" - -#: js/turtledefs.js:650 -msgid "Expand/collapse collapsable blocks" +#: js/utils/musicutils.js:689 +msgid "Perfect unison" msgstr "" -#: js/turtledefs.js:651 -msgid "Expand or collapse start and action stacks." +#: js/utils/musicutils.js:689 +msgid "Diminished second" msgstr "" -#: js/turtledefs.js:658 -#: js/activity.js:4265 -msgid "Decrease block size" -msgstr "ब्लॉकचे आकार कमी करा" - -#: js/turtledefs.js:659 -msgid "Decrease the size of the blocks." -msgstr "ब्लॉकचा आकार घटवा" - -#: js/turtledefs.js:664 -#: js/activity.js:4267 -msgid "Increase block size" -msgstr "ब्लॉकचा आकार वाढवा" - -#: js/turtledefs.js:665 -msgid "Increase the size of the blocks." -msgstr "ब्लॉकचा आकार वाढवा" - -#: js/turtledefs.js:670 -msgid "Expand/collapse option toolbar" -msgstr "साधनपट्टी दाखवायसाठी / लपवायसाठी पर्याय" - -#: js/turtledefs.js:671 -msgid "Click this button to expand or collapse the auxillary toolbar." +#: js/utils/musicutils.js:690 +msgid "Minor second" msgstr "" -#: js/turtledefs.js:676 -msgid "Run slow" -msgstr "मंद पाणे चालवा" - -#: js/turtledefs.js:677 -msgid "Click to run the project in slow mode." -msgstr "प्रकल्प मंद पणे चालण्या साठी इकडे दाबा" - -#: js/turtledefs.js:683 -msgid "Click to run the project step by step." +#: js/utils/musicutils.js:690 +msgid "Augmented unison" msgstr "" -#: js/turtledefs.js:690 -msgid "Display statistics about your Music project." -msgstr "आकडेवारी दाखवणे आपल्या टर्टल प्रकल्पाचे" +#: js/utils/musicutils.js:691 +msgid "Major second" +msgstr "" -#: js/turtledefs.js:697 -msgid "Delete a selected plugin." +#: js/utils/musicutils.js:691 +msgid "Diminished third" msgstr "" -#: js/turtledefs.js:704 -msgid "Enable scrolling" +#: js/utils/musicutils.js:692 +msgid "Minor third" +msgstr "" + +#: js/utils/musicutils.js:692 +msgid "Augmented second" msgstr "" -#: js/turtledefs.js:705 -msgid "You can scroll the blocks on the canvas." +#: js/utils/musicutils.js:693 +msgid "Major third" msgstr "" -#: js/turtledefs.js:714 -msgid "Wrap Turtle" +#: js/utils/musicutils.js:693 +msgid "Diminished fourth" msgstr "" -#: js/turtledefs.js:715 -msgid "Turn Turtle wrapping On or Off." +#: js/utils/musicutils.js:694 +msgid "Perfect fourth" msgstr "" -#: js/turtledefs.js:725 -msgid "Restore blocks from the trash." -msgstr "कचरा मधुन ब्लॉक पुनर्संचयित करा." +#: js/utils/musicutils.js:694 +msgid "Augmented third" +msgstr "" -#: js/turtledefs.js:732 -msgid "Switch mode" +#: js/utils/musicutils.js:695 +msgid "Diminished fifth" msgstr "" -#: js/turtledefs.js:733 -msgid "Switch between beginner and advance modes." +#: js/utils/musicutils.js:695 +msgid "Augmented fourth" msgstr "" -#: js/turtledefs.js:739 -msgid "Select your language preference." +#: js/utils/musicutils.js:696 +msgid "Perfect fifth" msgstr "" -#: js/turtledefs.js:745 -msgid "Keyboard shortcuts" +#: js/utils/musicutils.js:696 +msgid "Diminished sixth" msgstr "" -#: js/turtledefs.js:746 -msgid "You can type d to create a do block and r to create a re block etc." +#: js/utils/musicutils.js:697 +msgid "Minor sixth" msgstr "" -#: js/turtledefs.js:753 -msgid "Show these messages." -msgstr "हे संदेश दर्शवा." +#: js/utils/musicutils.js:697 +msgid "Augmented fifth" +msgstr "" -#: js/turtledefs.js:759 -#: js/turtledefs.js:790 -#: js/help.js:335 -msgid "Guide" +#: js/utils/musicutils.js:698 +msgid "Major sixth" msgstr "" -#: js/turtledefs.js:760 -msgid "A detailed guide to Turtle Blocks is available." +#: js/utils/musicutils.js:698 +msgid "Diminished seventh" msgstr "" -#: js/turtledefs.js:764 -msgid "Turtle Blocks Guide" +#: js/utils/musicutils.js:699 +msgid "Minor seventh" msgstr "" -#: js/turtledefs.js:767 -#: js/turtledefs.js:798 -#: js/help.js:336 -msgid "About" +#: js/utils/musicutils.js:699 +msgid "Augmented sixth" msgstr "" -#: js/turtledefs.js:768 -msgid "Turtle Blocks is an open source collection of tools for exploring musical concepts." +#: js/utils/musicutils.js:700 +msgid "Major seventh" msgstr "" -#: js/turtledefs.js:770 -msgid "A full list of contributors can be found in the Turtle Blocks GitHub repository." +#: js/utils/musicutils.js:700 +msgid "Diminished octave" msgstr "" -#: js/turtledefs.js:772 -msgid "Turtle Blocks is licensed under the AGPL." +#: js/utils/musicutils.js:701 +msgid "Perfect octave" msgstr "" -#: js/turtledefs.js:780 -msgid "Turtle Blocks GitHub repository" +#: js/utils/musicutils.js:701 +msgid "Augmented seventh" msgstr "" -#: js/turtledefs.js:783 -#: js/turtledefs.js:814 -#: js/help.js:337 -#: js/help.js:359 -msgid "Congratulations." -msgstr "अभिनंदन" +#: js/utils/musicutils.js:702 +msgid "Minor ninth" +msgstr "" -#: js/turtledefs.js:784 -msgid "You have finished the tour. Please enjoy Turtle Blocks!" +#: js/utils/musicutils.js:702 +msgid "Augmented octave" msgstr "" -#: js/turtledefs.js:791 -msgid "A detailed guide to Music Blocks is available." +#: js/utils/musicutils.js:703 +msgid "Major ninth" msgstr "" -#: js/turtledefs.js:795 -#: js/SaveInterface.js:76 -msgid "Music Blocks Guide" +#: js/utils/musicutils.js:703 +msgid "Diminished tenth" msgstr "" -#: js/turtledefs.js:799 -msgid "Music Blocks is an open source collection of tools for exploring musical concepts." +#: js/utils/musicutils.js:704 +msgid "Minor tenth" msgstr "" -#: js/turtledefs.js:801 -msgid "A full list of contributors can be found in the Music Blocks GitHub repository." +#: js/utils/musicutils.js:704 +msgid "Augmented ninth" msgstr "" -#: js/turtledefs.js:803 -msgid "Music Blocks is licensed under the AGPL." +#: js/utils/musicutils.js:705 +msgid "Major tenth" msgstr "" -#: js/turtledefs.js:811 -msgid "Music Blocks GitHub repository" +#: js/utils/musicutils.js:705 +msgid "Diminished eleventh" msgstr "" -#: js/turtledefs.js:815 -msgid "You have finished the tour. Please enjoy Music Blocks!" +#: js/utils/musicutils.js:706 +msgid "Perfect eleventh" msgstr "" -#: js/activity.js:369 -msgid "Search for blocks" +#: js/utils/musicutils.js:706 +msgid "Augmented tenth" msgstr "" -#: js/activity.js:1145 -msgid "Refresh your browser to change to advanced mode." +#: js/utils/musicutils.js:707 +msgid "Diminished twelfth" msgstr "" -#: js/activity.js:1150 -msgid "Refresh your browser to change to beginner mode." +#: js/utils/musicutils.js:707 +msgid "Augmented eleventh" msgstr "" -#: js/activity.js:1184 -msgid "Catching mice" +#: js/utils/musicutils.js:708 +msgid "Perfect twelfth" msgstr "" -#: js/activity.js:1185 -msgid "Cleaning the instruments" +#: js/utils/musicutils.js:708 +msgid "Diminished thirteenth" msgstr "" -#: js/activity.js:1186 -msgid "Testing key pieces" +#: js/utils/musicutils.js:709 +msgid "Minor thirteenth" msgstr "" -#: js/activity.js:1187 -msgid "Sight-reading" +#: js/utils/musicutils.js:709 +msgid "Augmented fifth, plus an octave" msgstr "" -#: js/activity.js:1188 -msgid "Combining math and music" +#: js/utils/musicutils.js:710 +msgid "Major thirteenth" msgstr "" -#: js/activity.js:1189 -msgid "Generating more blocks" +#: js/utils/musicutils.js:710 +msgid "Diminished seventh, plus an octave" msgstr "" -#: js/activity.js:1190 -msgid "Do Re Mi Fa Sol La Ti Do" +#: js/utils/musicutils.js:838 +#.TRANS: ordinal number. Please keep exactly one space between each number. +msgid "1st 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th" msgstr "" -#: js/activity.js:1191 -msgid "Tuning string instruments" +#: js/utils/musicutils.js:1008 +#: js/utils/musicutils.js:1191 +#: js/utils/musicutils.js:1325 +#.TRANS: augmented is a music term related to intervals +msgid "augmented" msgstr "" -#: js/activity.js:1192 -msgid "Pressing random keys" +#: js/utils/musicutils.js:1010 +#: js/utils/musicutils.js:1192 +#: js/utils/musicutils.js:1324 +#.TRANS: diminished is a music term related to intervals and mode +msgid "diminished" msgstr "" -#: js/activity.js:1351 -msgid "plugins will be removed upon restart." +#: js/utils/musicutils.js:1016 +#: js/utils/musicutils.js:1322 +#: js/blocks/IntervalsBlocks.js:649 +#: js/turtleactions/IntervalsActions.js:120 +#: js/turtleactions/IntervalsActions.js:124 +#.TRANS: perfect is a music term related to intervals +msgid "perfect" msgstr "" -#: js/activity.js:1360 -msgid "show Cartesian" +#: js/utils/musicutils.js:1018 +#.TRANS: twelve semi-tone scale for music +msgid "chromatic" msgstr "" -#: js/activity.js:1842 -msgid "output tools" +#: js/utils/musicutils.js:1019 +msgid "algerian" msgstr "" -#: js/activity.js:1845 -msgid "custom note" +#: js/utils/musicutils.js:1020 +msgid "spanish" msgstr "" -#: js/activity.js:1848 -msgid "accidental name" +#: js/utils/musicutils.js:1022 +#.TRANS: modal scale in music +msgid "octatonic" msgstr "" -#: js/activity.js:1851 -#: js/PitchBlocks.js:855 -msgid "east indian solfege" +#: js/utils/musicutils.js:1024 +#.TRANS: harmonic major scale in music +msgid "harmonic major" msgstr "" -#: js/activity.js:1854 -#: js/PitchBlocks.js:869 -msgid "note name" +#: js/utils/musicutils.js:1026 +#.TRANS: natural minor scales in music +msgid "natural minor" msgstr "" -#: js/activity.js:1857 -#: js/IntervalsBlocks.js:94 -msgid "temperament name" +#: js/utils/musicutils.js:1028 +#.TRANS: harmonic minor scale in music +msgid "harmonic minor" msgstr "" -#: js/activity.js:1863 -msgid "chord name" +#: js/utils/musicutils.js:1030 +#.TRANS: melodic minor scale in music +msgid "melodic minor" msgstr "" -#: js/activity.js:1869 -msgid "filter type" +#: js/utils/musicutils.js:1034 +#.TRANS: modal scale for music +msgid "dorian" msgstr "" -#: js/activity.js:1872 -msgid "oscillator type" +#: js/utils/musicutils.js:1036 +#.TRANS: modal scale for music +msgid "phrygian" msgstr "" -#: js/activity.js:1878 -#: js/DrumBlocks.js:32 -msgid "noise name" +#: js/utils/musicutils.js:1038 +#.TRANS: modal scale for music +msgid "lydian" msgstr "" -#: js/activity.js:1881 -#: js/DrumBlocks.js:75 -msgid "drum name" +#: js/utils/musicutils.js:1040 +#.TRANS: modal scale for music +msgid "mixolydian" msgstr "" -#: js/activity.js:1884 -#: js/DrumBlocks.js:119 -msgid "effects name" +#: js/utils/musicutils.js:1044 +#.TRANS: modal scale for music +msgid "locrian" msgstr "" -#: js/activity.js:1887 -msgid "wrap mode" +#: js/utils/musicutils.js:1046 +#.TRANS: minor jazz scale for music +msgid "jazz minor" msgstr "" -#: js/activity.js:1890 -msgid "load file" +#: js/utils/musicutils.js:1048 +#.TRANS: bebop scale for music +msgid "bebop" msgstr "" -#: js/activity.js:2056 -msgid "This block is deprecated." +#: js/utils/musicutils.js:1049 +msgid "arabic" msgstr "" -#: js/activity.js:2058 -msgid "Block cannot be found." +#: js/utils/musicutils.js:1050 +msgid "byzantine" msgstr "" -#: js/activity.js:2266 -msgid "Saving block artwork" +#: js/utils/musicutils.js:1052 +#.TRANS: musical scale for music by Verdi +msgid "enigmatic" msgstr "" -#: js/activity.js:2277 -msgid "Erase" +#: js/utils/musicutils.js:1053 +msgid "ethiopian" msgstr "" -#: js/activity.js:2301 -#: js/activity.js:2323 -msgid "Paste" -msgstr "पेस्ट" +#: js/utils/musicutils.js:1055 +#.TRANS: Ethiopic scale for music +msgid "geez" +msgstr "" -#: js/activity.js:2305 -msgid "Save block help" +#: js/utils/musicutils.js:1056 +msgid "hindu" msgstr "" -#: js/activity.js:2390 -msgid "Jumping to the bottom of the page." +#: js/utils/musicutils.js:1057 +msgid "hungarian" msgstr "" -#: js/activity.js:2396 -msgid "Scrolling up." +#: js/utils/musicutils.js:1059 +#.TRANS: minor Romanian scale for music +msgid "romanian minor" msgstr "" -#: js/activity.js:2401 -msgid "Scrolling down." +#: js/utils/musicutils.js:1060 +msgid "spanish gypsy" msgstr "" -#: js/activity.js:2406 -msgid "Extracting block" +#: js/utils/musicutils.js:1062 +#.TRANS: musical scale for Mid-Eastern music +msgid "maqam" msgstr "" -#: js/activity.js:2414 -msgid "Moving block up." +#: js/utils/musicutils.js:1064 +#.TRANS: minor blues scale for music +msgid "minor blues" msgstr "" -#: js/activity.js:2435 -msgid "Moving block down." +#: js/utils/musicutils.js:1066 +#.TRANS: major blues scale for music +msgid "major blues" msgstr "" -#: js/activity.js:2456 -msgid "Moving block left." +#: js/utils/musicutils.js:1067 +msgid "whole tone" msgstr "" -#: js/activity.js:2473 -msgid "Moving block right." +#: js/utils/musicutils.js:1069 +#.TRANS: pentatonic is a general term that means "five note scale". This scale is typically known as "minor pentatonic" +msgid "minor pentatonic" msgstr "" -#: js/activity.js:2488 -msgid "Jump to home position." +#: js/utils/musicutils.js:1071 +#.TRANS: pentatonic is a general term that means "five note scale". This scale is typically known as "major pentatonic" +msgid "major pentatonic" msgstr "" -#: js/activity.js:2515 -msgid "Hide blocks" +#: js/utils/musicutils.js:1072 +msgid "chinese" msgstr "" -#: js/activity.js:3389 -msgid "Click the run button to run the project." +#: js/utils/musicutils.js:1073 +msgid "egyptian" msgstr "" -#: js/activity.js:3456 -#: js/SaveInterface.js:131 -#: js/SaveInterface.js:204 -#: js/SaveInterface.js:262 -#: js/SaveInterface.js:389 -#: js/SaveInterface.js:417 -#: js/ProjectStorage.js:27 -#: js/GlobalPlanet.js:467 -#: js/GlobalPlanet.js:469 -#: js/GlobalPlanet.js:495 -#.TRANS: default project title when saving as Lilypond -msgid "My Project" +#: js/utils/musicutils.js:1075 +#.TRANS: https://en.wikipedia.org/wiki/Hirajoshi_scale NOTE: There are three different versions of this scale +msgid "hirajoshi" msgstr "" -#: js/activity.js:4261 -msgid "Show/hide block" +#: js/utils/musicutils.js:1076 +msgid "Japan" msgstr "" -#: js/activity.js:4263 -msgid "Expand/collapse blocks" +#: js/utils/musicutils.js:1078 +#.TRANS: https://en.wikipedia.org/wiki/In_scale and https://en.wikipedia.org/wiki/Sakura_Sakura +msgid "in" msgstr "" -#: js/activity.js:4381 -msgid "Could not parse JSON input." +#: js/utils/musicutils.js:1080 +#.TRANS: https://en.wikipedia.org/wiki/Miny%C5%8D_scale +msgid "minyo" msgstr "" -#: js/activity.js:4684 -#: js/activity.js:4771 -#: js/activity.js:4821 -msgid "Cannot load project from the file. Please check the file type." +#: js/utils/musicutils.js:1082 +#.TRANS: Italian mathematician +msgid "fibonacci" msgstr "" -#: js/activity.js:5051 -msgid "Invalid parameters" +#: js/utils/musicutils.js:1083 +#: js/utils/musicutils.js:1134 +#: js/utils/musicutils.js:1177 +#: js/utils/musicutils.js:1199 +#: js/utils/synthutils.js:134 +#: js/blocks/IntervalsBlocks.js:1124 +#: js/blocks/ToneBlocks.js:946 +#: js/blocks/VolumeBlocks.js:411 +#: js/blocks/WidgetBlocks.js:399 +#: js/blocks/WidgetBlocks.js:404 +#: js/turtleactions/VolumeActions.js:218 +#: js/widgets/modewidget.js:919 +#.TRANS: customize voice +msgid "custom" msgstr "" -#: js/turtle-singer.js:1334 -#.TRANS: partials are weighted components in a harmonic series -msgid "You must have at least one Partial block inside of a Weighted-partial block" +#: js/utils/musicutils.js:1085 +#: js/utils/musicutils.js:1531 +#: js/blocks/WidgetBlocks.js:176 +#.TRANS: highpass filter +msgid "highpass" msgstr "" -#: js/turtle-singer.js:2048 -msgid "synth cannot play chords." +#: js/utils/musicutils.js:1087 +#: js/utils/musicutils.js:1532 +#.TRANS: lowpass filter +msgid "lowpass" msgstr "" -#: js/lilypond.js:614 -msgid "brown rat" +#: js/utils/musicutils.js:1089 +#: js/utils/musicutils.js:1533 +#.TRANS: bandpass filter +msgid "bandpass" msgstr "" -#: js/lilypond.js:615 -msgid "mole" +#: js/utils/musicutils.js:1091 +#: js/utils/musicutils.js:1534 +#.TRANS: high-shelf filter +msgid "highshelf" msgstr "" -#: js/lilypond.js:616 -msgid "chipmunk" +#: js/utils/musicutils.js:1093 +#: js/utils/musicutils.js:1535 +#.TRANS: low-shelf filter +msgid "lowshelf" msgstr "" -#: js/lilypond.js:617 -msgid "red squirrel" +#: js/utils/musicutils.js:1095 +#: js/utils/musicutils.js:1536 +#.TRANS: notch-shelf filter +msgid "notch" msgstr "" -#: js/lilypond.js:618 -msgid "guinea pig" +#: js/utils/musicutils.js:1097 +#: js/utils/musicutils.js:1537 +#.TRANS: all-pass filter +msgid "allpass" msgstr "" -#: js/lilypond.js:619 -msgid "capybara" +#: js/utils/musicutils.js:1099 +#: js/utils/musicutils.js:1538 +#.TRANS: peaking filter +msgid "peaking" msgstr "" -#: js/lilypond.js:620 -msgid "coypu" +#: js/utils/musicutils.js:1100 +#: js/utils/musicutils.js:1546 +#: js/utils/synthutils.js:126 +#: js/blocks/PitchBlocks.js:85 +#.TRANS: sine wave +msgid "sine" msgstr "" -#: js/lilypond.js:621 -msgid "black rat" +#: js/utils/musicutils.js:1101 +#: js/utils/musicutils.js:1547 +#: js/utils/synthutils.js:128 +#: js/blocks/PitchBlocks.js:39 +#.TRANS: square wave +msgid "square" msgstr "" -#: js/lilypond.js:622 -msgid "grey squirrel" +#: js/utils/musicutils.js:1102 +#: js/utils/musicutils.js:1548 +#: js/utils/synthutils.js:132 +#: js/blocks/PitchBlocks.js:62 +#: js/blocks/ToneBlocks.js:39 +#.TRANS: triangle wave +msgid "triangle" msgstr "" -#: js/lilypond.js:623 -msgid "flying squirrel" +#: js/utils/musicutils.js:1103 +#: js/utils/musicutils.js:1549 +#: js/utils/synthutils.js:130 +#: js/blocks/PitchBlocks.js:108 +#.TRANS: sawtooth wave +msgid "sawtooth" msgstr "" -#: js/lilypond.js:624 -msgid "bat" +#: js/utils/musicutils.js:1105 +#: js/utils/musicutils.js:1312 +#: js/blocks/PitchBlocks.js:931 +#: js/blocks/PitchBlocks.js:937 +#: js/turtleactions/PitchActions.js:469 +#.TRANS: even numbers +#.TRANS: invert based on even or odd number or musical scale +msgid "even" msgstr "" -#: js/lilypond.js:757 -#: js/lilypond.js:921 -#: js/lilypond.js:959 -#: js/ActionBlocks.js:1256 -#: js/ExtrasBlocks.js:553 -msgid "start drum" +#: js/utils/musicutils.js:1107 +#: js/utils/musicutils.js:1313 +#: js/blocks/PitchBlocks.js:937 +#: js/turtleactions/PitchActions.js:471 +#.TRANS: odd numbers +msgid "odd" msgstr "" -#: js/SaveInterface.js:59 -#: js/SaveInterface.js:61 -#: js/SaveInterface.js:93 -msgid "Music Blocks Project" +#: js/utils/musicutils.js:1108 +#: js/utils/musicutils.js:1314 +#: js/blocks/PitchBlocks.js:937 +#: js/turtleactions/PitchActions.js:473 +msgid "scalar" msgstr "" -#: js/SaveInterface.js:63 -msgid "This project was created in Music Blocks" +#: js/utils/musicutils.js:1109 +#: js/utils/synthutils.js:72 +#: js/blocks/VolumeBlocks.js:47 +#.TRANS: musical instrument +msgid "piano" msgstr "" -#: js/SaveInterface.js:67 -msgid "Music Blocks is a Free/Libre Software application." +#: js/utils/musicutils.js:1110 +#: js/utils/synthutils.js:74 +#.TRANS: musical instrument +msgid "violin" msgstr "" -#: js/SaveInterface.js:69 -msgid "The source code can be accessed at" +#: js/utils/musicutils.js:1111 +#: js/utils/synthutils.js:76 +#.TRANS: viola musical instrument +msgid "viola" msgstr "" -#: js/SaveInterface.js:72 -msgid "For more information, please consult the" +#: js/utils/musicutils.js:1112 +#: js/utils/synthutils.js:114 +#.TRANS: xylophone musical instrument +msgid "xylophone" msgstr "" -#: js/SaveInterface.js:83 -msgid "Alternatively, open the file in Music Blocks using the Load project button." +#: js/utils/musicutils.js:1113 +#: js/utils/synthutils.js:136 +#.TRANS: vibraphone musical instrument +msgid "vibraphone" msgstr "" -#: js/SaveInterface.js:85 -msgid "Project Code" +#: js/utils/musicutils.js:1114 +#: js/utils/synthutils.js:78 +#.TRANS: musical instrument +msgid "cello" msgstr "" -#: js/SaveInterface.js:87 -msgid "This code stores data about the blocks in a project." +#: js/utils/musicutils.js:1116 +#: js/utils/synthutils.js:82 +#.TRANS: viola musical instrument +msgid "double bass" msgstr "" -#: js/SaveInterface.js:89 -msgid "Show" +#: js/utils/musicutils.js:1117 +#: js/utils/synthutils.js:84 +#: js/widgets/rhythmruler.js:2511 +#.TRANS: musical instrument +msgid "guitar" msgstr "" -#: js/SaveInterface.js:91 -msgid "Hide" +#: js/utils/musicutils.js:1118 +#: js/utils/synthutils.js:86 +#.TRANS: musical instrument +msgid "acoustic guitar" msgstr "" -#: js/SaveInterface.js:197 -#: js/SaveInterface.js:58 -msgid "No description provided" +#: js/utils/musicutils.js:1119 +#: js/utils/synthutils.js:88 +#.TRANS: musical instrument +msgid "flute" msgstr "" -#: js/SaveInterface.js:332 -msgid "Your recording is in progress." +#: js/utils/musicutils.js:1120 +#: js/utils/synthutils.js:90 +#.TRANS: musical instrument +msgid "clarinet" msgstr "" -#: js/SaveInterface.js:401 -#.TRANS: File name prompt for save as Lilypond -msgid "File name" +#: js/utils/musicutils.js:1121 +#: js/utils/synthutils.js:92 +#.TRANS: musical instrument +msgid "saxophone" msgstr "" -#: js/SaveInterface.js:403 -#: js/StringHelper.js:39 -#.TRANS: Project title prompt for save as Lilypond -msgid "Project title" +#: js/utils/musicutils.js:1122 +#: js/utils/synthutils.js:94 +#.TRANS: musical instrument +msgid "tuba" msgstr "" -#: js/SaveInterface.js:405 -#.TRANS: Project title prompt for save as Lilypond -msgid "Project author" +#: js/utils/musicutils.js:1123 +#: js/utils/synthutils.js:96 +#.TRANS: musical instrument +msgid "trumpet" msgstr "" -#: js/SaveInterface.js:407 -#.TRANS: MIDI prompt for save as Lilypond -msgid "Include MIDI output?" +#: js/utils/musicutils.js:1124 +#: js/utils/synthutils.js:98 +#.TRANS: musical instrument +msgid "oboe" msgstr "" -#: js/SaveInterface.js:409 -#.TRANS: Guitar prompt for save as Lilypond -msgid "Include guitar tablature output?" +#: js/utils/musicutils.js:1125 +#: js/utils/synthutils.js:100 +#.TRANS: musical instrument +msgid "trombone" msgstr "" -#: js/SaveInterface.js:411 -#.TRANS: Lilypond is a scripting language for generating sheet music -msgid "Save as Lilypond" +#: js/utils/musicutils.js:1126 +#: js/utils/synthutils.js:116 +#.TRANS: polytone synthesizer +msgid "electronic synth" msgstr "" -#: js/SaveInterface.js:426 -#: js/EnsembleBlocks.js:75 -#: js/EnsembleBlocks.js:154 -#: js/EnsembleBlocks.js:216 -#: js/EnsembleBlocks.js:302 -#: js/EnsembleBlocks.js:348 -#: js/EnsembleBlocks.js:389 -#: js/EnsembleBlocks.js:441 -#: js/EnsembleBlocks.js:490 -#: js/EnsembleBlocks.js:536 -#: js/EnsembleBlocks.js:583 -#: js/EnsembleBlocks.js:637 -#: js/EnsembleBlocks.js:753 -#: js/EnsembleBlocks.js:840 -#: js/EnsembleBlocks.js:899 -#: js/EnsembleBlocks.js:942 -#: js/EnsembleBlocks.js:1212 -#: js/EnsembleBlocks.js:1280 -#.TRANS: default project author when saving as Lilypond -msgid "Mr. Mouse" +#: js/utils/musicutils.js:1127 +#: js/utils/synthutils.js:118 +#.TRANS: simple monotone synthesizer +msgid "simple 1" msgstr "" -#: js/SaveInterface.js:573 -msgid "The Lilypond code is copied to clipboard. You can paste it here: " +#: js/utils/musicutils.js:1128 +msgid "simple 2" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:50 -#: js/RhythmBlockPaletteBlocks.js:232 -#.TRANS: rhythm block -#.TRANS: translate "rhythm1" as rhythm -msgid "rhythm1" +#: js/utils/musicutils.js:1129 +msgid "simple 3" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:70 -#: js/RhythmBlockPaletteBlocks.js:251 -#: js/RhythmBlockPaletteBlocks.js:484 -#: js/RhythmBlockPaletteBlocks.js:553 -#: js/RhythmBlockPaletteBlocks.js:874 -msgid "number of notes" +#: js/utils/musicutils.js:1130 +msgid "simple 4" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:126 -msgid "polyphonic rhythm" +#: js/utils/musicutils.js:1131 +#: js/utils/synthutils.js:58 +#: js/blocks/DrumBlocks.js:191 +#.TRANS: white noise synthesizer +msgid "white noise" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:218 -msgid "The Rhythm block is used to generate rhythm patterns." +#: js/utils/musicutils.js:1132 +#: js/utils/synthutils.js:60 +#.TRANS: brown noise synthesizer +msgid "brown noise" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:279 -msgid "1/64 note" +#: js/utils/musicutils.js:1133 +#: js/utils/synthutils.js:62 +#.TRANS: pink noise synthesizer +msgid "pink noise" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:303 -msgid "1/32 note" +#: js/utils/musicutils.js:1135 +#: js/utils/synthutils.js:148 +#: js/widgets/rhythmruler.js:2057 +#: js/widgets/rhythmruler.js:2319 +#.TRANS: musical instrument +msgid "snare drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:331 -msgid "1/16 note" +#: js/utils/musicutils.js:1136 +#: js/utils/synthutils.js:150 +#.TRANS: musical instrument +msgid "kick drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:359 -msgid "eighth note" +#: js/utils/musicutils.js:1137 +#: js/utils/synthutils.js:152 +#.TRANS: musical instrument +msgid "tom tom" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:387 -msgid "quarter note" +#: js/utils/musicutils.js:1138 +#: js/utils/synthutils.js:154 +#.TRANS: musical instrument +msgid "floor tom" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:415 -msgid "half note" +#: js/utils/musicutils.js:1139 +#: js/utils/synthutils.js:156 +#.TRANS: musical instrument +msgid "bass drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:443 -msgid "whole note" +#: js/utils/musicutils.js:1140 +#: js/utils/synthutils.js:158 +#.TRANS: a drum made from an inverted cup +msgid "cup drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:481 -#: js/RhythmBlockPaletteBlocks.js:550 -#: js/RhythmBlockPaletteBlocks.js:601 -#.TRANS: A tuplet is a note value divided into irregular time values. -msgid "tuplet" +#: js/utils/musicutils.js:1141 +#: js/utils/synthutils.js:160 +#.TRANS: musical instrument +msgid "darbuka drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:767 -msgid "septuplet" +#: js/utils/musicutils.js:1142 +#: js/utils/synthutils.js:164 +#.TRANS: musical instrument +msgid "hi hat" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:795 -msgid "quintuplet" +#: js/utils/musicutils.js:1143 +#: js/utils/synthutils.js:166 +#.TRANS: a small metal bell +msgid "ride bell" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:823 -msgid "triplet" +#: js/utils/musicutils.js:1144 +#: js/utils/synthutils.js:168 +#.TRANS: musical instrument +msgid "cow bell" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:850 -msgid "simple tuplet" +#: js/utils/musicutils.js:1145 +msgid "japanese drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:860 -msgid "Tuplets are a collection of notes that get scaled to a specific duration." +#: js/utils/musicutils.js:1146 +#: js/utils/synthutils.js:174 +#.TRANS: musical instrument +msgid "japanese bell" msgstr "" -#: js/WidgetBlocks.js:71 -#.TRANS: sound envelope (ADSR) -msgid "envelope" +#: js/utils/musicutils.js:1147 +#: js/utils/synthutils.js:170 +#.TRANS: musical instrument +msgid "triangle bell" msgstr "" -#: js/WidgetBlocks.js:79 -#.TRANS: Attack time is the time taken for initial run-up of level from nil to peak, beginning when the key is first pressed. -msgid "attack" +#: js/utils/musicutils.js:1148 +#: js/utils/synthutils.js:172 +#.TRANS: musical instrument +msgid "finger cymbals" msgstr "" -#: js/WidgetBlocks.js:81 -#.TRANS: Decay time is the time taken for the subsequent run down from the attack level to the designated sustain level. -msgid "decay" +#: js/utils/musicutils.js:1149 +#: js/utils/synthutils.js:176 +#.TRANS: a musically tuned set of bells +msgid "chime" msgstr "" -#: js/WidgetBlocks.js:83 -#.TRANS: Sustain level is the level during the main sequence of the sound's duration, until the key is released. -msgid "sustain" +#: js/utils/musicutils.js:1150 +#: js/utils/synthutils.js:178 +#.TRANS: a musical instrument +msgid "gong" msgstr "" -#: js/WidgetBlocks.js:85 -#.TRANS: Release time is the time taken for the level to decay from the sustain level to zero after the key is released. -msgid "release" +#: js/utils/musicutils.js:1151 +#: js/utils/synthutils.js:180 +#.TRANS: sound effect +msgid "clang" msgstr "" -#: js/WidgetBlocks.js:96 -msgid "Attack value should be from 0 to 100." +#: js/utils/musicutils.js:1152 +#: js/utils/synthutils.js:182 +#.TRANS: sound effect +msgid "crash" msgstr "" -#: js/WidgetBlocks.js:99 -msgid "Decay value should be from 0 to 100." +#: js/utils/musicutils.js:1153 +#: js/utils/synthutils.js:184 +#.TRANS: sound effect +msgid "bottle" msgstr "" -#: js/WidgetBlocks.js:102 -msgid "Sustain value should be from 0 to 100." +#: js/utils/musicutils.js:1154 +#: js/utils/synthutils.js:186 +#.TRANS: sound effect +msgid "clap" msgstr "" -#: js/WidgetBlocks.js:105 -msgid "Release value should be from 0-100." +#: js/utils/musicutils.js:1155 +#: js/utils/synthutils.js:188 +#.TRANS: sound effect +msgid "slap" msgstr "" -#: js/WidgetBlocks.js:121 -msgid "You are adding multiple envelope blocks." +#: js/utils/musicutils.js:1156 +#: js/utils/synthutils.js:190 +#.TRANS: sound effect +msgid "splash" msgstr "" -#: js/WidgetBlocks.js:144 -#.TRANS: a filter removes some unwanted components from a signal -msgid "filter" +#: js/utils/musicutils.js:1157 +#: js/utils/synthutils.js:192 +#.TRANS: sound effect +msgid "bubbles" msgstr "" -#: js/WidgetBlocks.js:149 -#: js/musicutils.js:706 -#: js/musicutils.js:1105 -#.TRANS: highpass filter -msgid "highpass" +#: js/utils/musicutils.js:1158 +#: js/utils/synthutils.js:194 +#.TRANS: sound effect +msgid "raindrop" msgstr "" -#: js/WidgetBlocks.js:152 -#: js/ToneBlocks.js:42 -#: js/timbre.js:1558 -#: js/timbre.js:1808 -#.TRANS: type of filter, e.g., lowpass, highpass, etc. -#.TRANS: there are different types (sine, triangle, square...) of oscillators. -msgid "type" +#: js/utils/musicutils.js:1159 +#: js/utils/synthutils.js:196 +#.TRANS: animal sound effect +msgid "cat" msgstr "" -#: js/WidgetBlocks.js:154 -#: js/timbre.js:1818 -#.TRANS: rolloff is the steepness of a change in frequency. -msgid "rolloff" +#: js/utils/musicutils.js:1160 +#: js/utils/synthutils.js:198 +#.TRANS: animal sound effect +msgid "cricket" msgstr "" -#: js/WidgetBlocks.js:155 -#: js/MediaBlocks.js:692 -#: js/temperament.js:382 -#: js/temperament.js:417 -#: js/temperament.js:477 -#: js/temperament.js:485 -#: js/temperament.js:1348 -#: js/timbre.js:1842 -msgid "frequency" +#: js/utils/musicutils.js:1161 +#: js/utils/synthutils.js:200 +#.TRANS: animal sound effect +msgid "dog" msgstr "" -#: js/WidgetBlocks.js:179 -#.TRANS: rolloff is the steepness of a change in frequency. -msgid "Rolloff value should be either -12, -24, -48, or -96 decibels/octave." +#: js/utils/musicutils.js:1163 +#: js/utils/synthutils.js:102 +#.TRANS: musical instrument +msgid "banjo" msgstr "" -#: js/WidgetBlocks.js:211 -msgid "The Temperament tool is used to define custom tuning." +#: js/utils/musicutils.js:1164 +#: js/utils/synthutils.js:104 +#.TRANS: musical instrument +msgid "koto" msgstr "" -#: js/WidgetBlocks.js:277 -#: js/sampler.js:329 -msgid "Upload a sample and adjust its pitch center." +#: js/utils/musicutils.js:1165 +#: js/utils/synthutils.js:106 +#.TRANS: musical instrument +msgid "dulcimer" msgstr "" -#: js/WidgetBlocks.js:284 -#.TRANS: the speed at music is should be played. -msgid "sampler" +#: js/utils/musicutils.js:1166 +#: js/utils/synthutils.js:108 +#.TRANS: musical instrument +msgid "electric guitar" msgstr "" -#: js/WidgetBlocks.js:329 -#: js/WidgetBlocks.js:334 -#: js/IntervalsBlocks.js:928 -#: js/VolumeBlocks.js:411 -#: js/ToneBlocks.js:946 -#: js/VolumeActions.js:218 -#: js/musicutils.js:704 -#: js/musicutils.js:755 -#: js/musicutils.js:798 -#: js/musicutils.js:820 -#: js/musicutils.js:1136 -#: js/synthutils.js:118 -#: js/modewidget.js:919 -#.TRANS: customize voice -msgid "custom" +#: js/utils/musicutils.js:1167 +#: js/utils/synthutils.js:110 +#.TRANS: musical instrument +msgid "bassoon" msgstr "" -#: js/WidgetBlocks.js:432 -msgid "The Meter block opens a tool to select strong beats for the meter." +#: js/utils/musicutils.js:1168 +#: js/utils/synthutils.js:112 +#.TRANS: musical instrument +msgid "celeste" msgstr "" -#: js/WidgetBlocks.js:473 -msgid "The oscilloscope block opens a tool to visualize waveforms." +#: js/utils/musicutils.js:1170 +#: js/widgets/temperament.js:787 +#.TRANS: musical temperament +msgid "equal" msgstr "" -#: js/WidgetBlocks.js:478 -msgid "oscilloscope" +#: js/utils/musicutils.js:1172 +#.TRANS: musical temperament +msgid "Pythagorean" msgstr "" -#: js/WidgetBlocks.js:530 -msgid "The Custom mode block opens a tool to explore musical mode (the spacing of the notes in a scale)." +#: js/utils/musicutils.js:1174 +#.TRANS: musical temperament +msgid "just intonation" msgstr "" -#: js/WidgetBlocks.js:536 -#.TRANS: musical mode is the pattern of half-steps in an octave, e.g., Major or Minor modes -msgid "custom mode" +#: js/utils/musicutils.js:1176 +#.TRANS: musical temperament +msgid "meantone" msgstr "" -#: js/WidgetBlocks.js:570 -msgid "The Tempo block opens a metronome to visualize the beat." +#: js/utils/musicutils.js:1193 +msgid "major 7th" msgstr "" -#: js/WidgetBlocks.js:617 -msgid "The Arpeggio Widget is used to compose chord sequences." +#: js/utils/musicutils.js:1194 +msgid "minor 7th" msgstr "" -#: js/WidgetBlocks.js:623 -#: js/IntervalsBlocks.js:683 -msgid "arpeggio" +#: js/utils/musicutils.js:1195 +msgid "dominant 7th" msgstr "" -#: js/WidgetBlocks.js:677 -msgid "The Pitch drum matrix is used to map pitches to drum sounds." +#: js/utils/musicutils.js:1196 +msgid "minor-major 7th" msgstr "" -#: js/WidgetBlocks.js:682 -#.TRANS: makes a mapping between pitches and drum sounds -msgid "pitch-drum mapper" +#: js/utils/musicutils.js:1197 +msgid "fully-diminished 7th" msgstr "" -#: js/WidgetBlocks.js:724 -msgid "You must have at least one pitch block and one drum block in the matrix." +#: js/utils/musicutils.js:1198 +msgid "half-diminished 7th" msgstr "" -#: js/WidgetBlocks.js:746 -msgid "The Pitch slider tool to is used to generate pitches at selected frequencies." +#: js/utils/musicutils.js:1557 +#: js/utils/musicutils.js:1569 +msgid "Equal (12EDO)" msgstr "" -#: js/WidgetBlocks.js:751 -#.TRANS: widget to generate pitches using a slider -msgid "pitch slider" +#: js/utils/musicutils.js:1558 +#: js/utils/musicutils.js:1570 +msgid "5-limit Just Intonation" msgstr "" -#: js/WidgetBlocks.js:788 -msgid "chromatic keyboard" +#: js/utils/musicutils.js:1559 +#: js/utils/musicutils.js:1571 +msgid "Pythagorean (3-limit JI)" msgstr "" -#: js/WidgetBlocks.js:815 -#: js/WidgetBlocks.js:874 -#.TRANS: widget to generate pitches using a slider -msgid "music keyboard" +#: js/utils/musicutils.js:1560 +#: js/utils/musicutils.js:1561 +#: js/utils/musicutils.js:1572 +#: js/utils/musicutils.js:1573 +msgid "Meantone" msgstr "" -#: js/WidgetBlocks.js:859 -#: js/WidgetBlocks.js:866 -msgid "The Music keyboard block opens a piano keyboard that can be used to create notes." +#: js/utils/musicutils.js:1574 +msgid "Custom" msgstr "" -#: js/WidgetBlocks.js:910 -msgid "The Pitch staircase tool to is used to generate pitches from a given ratio." +#: js/utils/musicutils.js:5387 +#: js/utils/musicutils.js:5430 +msgid "current" msgstr "" -#: js/WidgetBlocks.js:917 -#.TRANS: generate a progressive sequence of pitches -msgid "pitch staircase" +#: js/utils/musicutils.js:5390 +#: js/utils/musicutils.js:5421 +msgid "next" msgstr "" -#: js/WidgetBlocks.js:982 -msgid "The Rhythm Maker block opens a tool to create drum machines." +#: js/utils/musicutils.js:5393 +#: js/utils/musicutils.js:5426 +msgid "previous" msgstr "" -#: js/WidgetBlocks.js:1036 -msgid "G major scale" +#: js/utils/synthutils.js:120 +#.TRANS: simple monotone synthesizer +msgid "simple-2" msgstr "" -#: js/WidgetBlocks.js:1064 -msgid "C major scale" +#: js/utils/synthutils.js:122 +#.TRANS: simple monotone synthesizer +msgid "simple-3" msgstr "" -#: js/WidgetBlocks.js:1097 -msgid "The Phrase Maker block opens a tool to create musical phrases." +#: js/utils/synthutils.js:124 +#.TRANS: simple monotone synthesizer +msgid "simple-4" msgstr "" -#: js/WidgetBlocks.js:1104 -#.TRANS: assigns pitch to a sequence of beats to generate a melody -msgid "phrase maker" +#: js/utils/synthutils.js:162 +#.TRANS: musical instrument +msgid "taiko" msgstr "" -#: js/WidgetBlocks.js:1168 -msgid "You must have at least one pitch block and one rhythm block in the matrix." +#: js/blocks/ActionBlocks.js:58 +msgid "The Return block will return a value from an action." msgstr "" -#: js/WidgetBlocks.js:1220 -msgid "The Status block opens a tool for inspecting the status of Music Blocks as it is running." +#: js/blocks/ActionBlocks.js:75 +msgid "return" msgstr "" -#: js/IntervalsBlocks.js:45 -msgid "set temperament" +#: js/blocks/ActionBlocks.js:128 +msgid "The Return to URL block will return a value to a webpage." msgstr "" -#: js/IntervalsBlocks.js:63 -#: js/MediaBlocks.js:746 -#: js/PitchBlocks.js:657 -#: js/PitchBlocks.js:933 -#: js/PitchBlocks.js:972 -#: js/PitchBlocks.js:1005 -#: js/PitchBlocks.js:1166 -#: js/PitchBlocks.js:1679 -#: js/PitchBlocks.js:1720 -#: js/PitchBlocks.js:1827 -#: js/ToneBlocks.js:1025 -#.TRANS: adjusts the shift up or down by one octave (twelve half-steps in the interval between two notes, one having twice or half the frequency in Hz of the other.) -msgid "octave" +#: js/blocks/ActionBlocks.js:145 +msgid "return to URL" msgstr "" -#: js/IntervalsBlocks.js:99 -msgid "The Temperament name block is used to select a tuning method." +#: js/blocks/ActionBlocks.js:233 +#: js/blocks/ActionBlocks.js:290 +#: js/blocks/ActionBlocks.js:501 +#: js/blocks/ActionBlocks.js:688 +msgid "The Calculate block returns a value calculated by an action." msgstr "" -#: js/IntervalsBlocks.js:161 -msgid "doubly" +#: js/blocks/ActionBlocks.js:251 +#: js/blocks/ActionBlocks.js:517 +#: js/blocks/ActionBlocks.js:707 +msgid "calculate" msgstr "" -#: js/IntervalsBlocks.js:166 -msgid "The Doubly block will double the size of an interval." +#: js/blocks/ActionBlocks.js:376 +#: js/blocks/ActionBlocks.js:593 +#: js/blocks/ActionBlocks.js:942 +#: js/blocks/ActionBlocks.js:1389 +#.TRANS: do is the do something or take an action. +msgid "The Do block is used to initiate an action." msgstr "" -#: js/IntervalsBlocks.js:262 -msgid "interval number" +#: js/blocks/ActionBlocks.js:390 +#: js/blocks/ActionBlocks.js:610 +#: js/blocks/ActionBlocks.js:959 +#: js/blocks/ActionBlocks.js:1048 +#: js/blocks/MeterBlocks.js:769 +msgid "do1" msgstr "" -#: js/IntervalsBlocks.js:330 -#.TRANS: measure the distance between two pitches in semi-tones -msgid "semi-tone interval measure" -msgstr "" +#: js/blocks/ActionBlocks.js:390 +#: js/blocks/ActionBlocks.js:610 +#: js/blocks/ActionBlocks.js:959 +#: js/blocks/ActionBlocks.js:1048 +#: js/blocks/FlowBlocks.js:742 +#: js/blocks/FlowBlocks.js:822 +#: js/blocks/MeterBlocks.js:769 +msgid "do" +msgstr "करा" -#: js/IntervalsBlocks.js:397 -#: js/IntervalsBlocks.js:513 -msgid "You must use two pitch blocks when measuring an interval." +#: js/blocks/ActionBlocks.js:791 +#: js/blocks/ActionBlocks.js:865 +msgid "The Arg block contains the value of an argument passed to an action." msgstr "" -#: js/IntervalsBlocks.js:439 -msgid "The Scalar interval block measures the distance between two notes in the current key and mode." +#: js/blocks/ActionBlocks.js:806 +#: js/blocks/ActionBlocks.js:878 +msgid "arg" msgstr "" -#: js/IntervalsBlocks.js:445 -#.TRANS: measure the distance between two pitches in steps of musical scale -msgid "scalar interval measure" +#: js/blocks/ActionBlocks.js:836 +#: js/blocks/ActionBlocks.js:900 +#: js/blocks/ActionBlocks.js:908 +msgid "Invalid argument" msgstr "" -#: js/IntervalsBlocks.js:592 -#: js/musicutils.js:637 -#: js/musicutils.js:908 -#.TRANS: perfect is a music term related to intervals -msgid "perfect" +#: js/blocks/ActionBlocks.js:944 +msgid "In the example, it is used with the One of block to choose a random phase." msgstr "" -#: js/IntervalsBlocks.js:621 -msgid "In the figure, we add sol# to sol." +#: js/blocks/ActionBlocks.js:1019 +#: js/blocks/ActionBlocks.js:1026 +msgid "The Listen block is used to listen for an event such as a mouse click." msgstr "" -#: js/IntervalsBlocks.js:627 -#: js/OrnamentBlocks.js:220 -#.TRANS: calculate a relative step between notes based on semi-tones -msgid "semi-tone interval" +#: js/blocks/ActionBlocks.js:1028 +msgid "When the event happens, an action is taken." msgstr "" -#: js/IntervalsBlocks.js:676 -msgid "The output of the example is: do, mi, sol, sol, ti, mi" +#: js/blocks/ActionBlocks.js:1045 +msgid "on" msgstr "" -#: js/IntervalsBlocks.js:735 -msgid "The Chord block calculates common chords." +#: js/blocks/ActionBlocks.js:1048 +#: js/blocks/ActionBlocks.js:1049 +#: js/blocks/ActionBlocks.js:1153 +msgid "event" msgstr "" -#: js/IntervalsBlocks.js:737 -msgid "In the figure, we generate a C-major chord." +#: js/blocks/ActionBlocks.js:1133 +msgid "The Broadcast block is used to trigger an event." msgstr "" -#: js/IntervalsBlocks.js:742 -msgid "chord" +#: js/blocks/ActionBlocks.js:1151 +msgid "broadcast" msgstr "" -#: js/IntervalsBlocks.js:794 -msgid "The Ratio Interval block calculates an interval based on a ratio." +#: js/blocks/ActionBlocks.js:1208 +msgid "Each Start block is a separate voice." msgstr "" -#: js/IntervalsBlocks.js:799 -msgid "ratio interval" +#: js/blocks/ActionBlocks.js:1304 +msgid "It is often used for storing a phrase of music that is repeated." msgstr "" -#: js/IntervalsBlocks.js:868 -msgid "In the figure, we add la to sol." +#: js/blocks/ActionBlocks.js:1495 +msgid "define temperament" msgstr "" -#: js/IntervalsBlocks.js:924 -#.TRANS: define a custom mode -msgid "define mode" +#: js/blocks/BooleanBlocks.js:44 +msgid "The Not block is the logical not operator." msgstr "" -#: js/IntervalsBlocks.js:977 -msgid "movable Do" +#: js/blocks/BooleanBlocks.js:62 +msgid "not" +msgstr "नाही" + +#: js/blocks/BooleanBlocks.js:134 +msgid "The And block is the logical and operator." msgstr "" -#: js/IntervalsBlocks.js:1028 -#.TRANS: mode length is the number of notes in the mode, e.g., 7 for major and minor scales; 12 for chromatic scales -msgid "mode length" +#: js/blocks/BooleanBlocks.js:152 +msgid "and" +msgstr "आणि" + +#: js/blocks/BooleanBlocks.js:218 +msgid "The Or block is the logical or operator." msgstr "" -#: js/IntervalsBlocks.js:1037 -msgid "The Mode length block is the number of notes in the current scale." +#: js/blocks/BooleanBlocks.js:236 +msgid "or" +msgstr "किंवा" + +#: js/blocks/BooleanBlocks.js:302 +msgid "The XOR block is the logical XOR operator." msgstr "" -#: js/IntervalsBlocks.js:1039 -msgid "Most Western scales have 7 notes." +#: js/blocks/BooleanBlocks.js:320 +msgid "xor" msgstr "" -#: js/IntervalsBlocks.js:1088 -#.TRANS: the mode in music is 'major', 'minor', etc. -msgid "current mode" +#: js/blocks/BooleanBlocks.js:808 +msgid "The Equal block returns True if the two numbers are equal." msgstr "" -#: js/IntervalsBlocks.js:1141 -#.TRANS: the key is a group of pitches with which a music composition is created -msgid "current key" +#: js/blocks/BooleanBlocks.js:909 +msgid "The Not-equal-to block returns True if the two numbers are not equal to each other." msgstr "" -#: js/IntervalsBlocks.js:1193 -#: js/IntervalsBlocks.js:1238 -#.TRANS: set the key and mode, e.g. C Major -msgid "set key" +#: js/blocks/BooleanBlocks.js:1008 +msgid "The Boolean block is used to specify true or false." msgstr "" -#: js/IntervalsBlocks.js:1247 -#: js/IntervalsBlocks.js:1253 -msgid "The Set key block is used to set the key and mode," +#: js/blocks/BoxesBlocks.js:53 +#: js/blocks/BoxesBlocks.js:59 +msgid "The Add-to block is used to add to the value stored in a box." msgstr "" -#: js/IntervalsBlocks.js:1253 -msgid "eg C Major" +#: js/blocks/BoxesBlocks.js:61 +msgid "It can also be used with other blocks such as Color and Pen size." msgstr "" -#: js/IntervalsBlocks.js:1266 -#: js/DictBlocks.js:215 -#: js/DictBlocks.js:216 -#: js/DictBlocks.js:289 -#: js/DictBlocks.js:290 -#: js/DictBlocks.js:357 -#: js/DictBlocks.js:430 -#: js/DictBlocks.js:431 -#.TRANS: key, e.g., C in C Major -msgid "key" +#: js/blocks/BoxesBlocks.js:73 +msgid "add" +msgstr "जोडा" + +#: js/blocks/BoxesBlocks.js:75 +#: js/widgets/temperament.js:857 +msgid "to" +msgstr "करण्यासाठी / च्यापर्यत" + +#: js/blocks/BoxesBlocks.js:75 +#: js/blocks/BoxesBlocks.js:595 +#: js/blocks/HeapBlocks.js:544 +msgid "value1" msgstr "" -#: js/ActionBlocks.js:58 -msgid "The Return block will return a value from an action." +#: js/blocks/BoxesBlocks.js:118 +msgid "Block does not support incrementing." msgstr "" -#: js/ActionBlocks.js:75 -msgid "return" +#: js/blocks/BoxesBlocks.js:152 +msgid "The Add-1-to block adds one to the value stored in a box." msgstr "" -#: js/ActionBlocks.js:128 -msgid "The Return to URL block will return a value to a webpage." +#: js/blocks/BoxesBlocks.js:163 +msgid "add 1 to" +msgstr "१ जोड" + +#: js/blocks/BoxesBlocks.js:211 +msgid "The Subtract-1-from block subtracts one from the value stored in a box." msgstr "" -#: js/ActionBlocks.js:145 -msgid "return to URL" +#: js/blocks/BoxesBlocks.js:222 +msgid "subtract 1 from" msgstr "" -#: js/ActionBlocks.js:233 -#: js/ActionBlocks.js:290 -#: js/ActionBlocks.js:501 -#: js/ActionBlocks.js:688 -msgid "The Calculate block returns a value calculated by an action." +#: js/blocks/BoxesBlocks.js:270 +#: js/blocks/BoxesBlocks.js:387 +msgid "The Box block returns the value stored in a box." msgstr "" -#: js/ActionBlocks.js:251 -#: js/ActionBlocks.js:517 -#: js/ActionBlocks.js:707 -msgid "calculate" +#: js/blocks/BoxesBlocks.js:500 +#: js/blocks/BoxesBlocks.js:576 +msgid "The Store in block will store a value in a box." msgstr "" -#: js/ActionBlocks.js:376 -#: js/ActionBlocks.js:593 -#: js/ActionBlocks.js:942 -#: js/ActionBlocks.js:1389 -#.TRANS: do is the do something or take an action. -msgid "The Do block is used to initiate an action." +#: js/blocks/BoxesBlocks.js:595 +#: js/blocks/EnsembleBlocks.js:391 +#: js/blocks/EnsembleBlocks.js:402 +msgid "name1" msgstr "" -#: js/ActionBlocks.js:390 -#: js/ActionBlocks.js:610 -#: js/ActionBlocks.js:959 -#: js/ActionBlocks.js:1048 -#: js/MeterBlocks.js:769 -msgid "do1" +#: js/blocks/BoxesBlocks.js:652 +msgid "The Box2 block returns the value stored in Box2." msgstr "" -#: js/ActionBlocks.js:390 -#: js/ActionBlocks.js:610 -#: js/ActionBlocks.js:959 -#: js/ActionBlocks.js:1048 -#: js/FlowBlocks.js:742 -#: js/FlowBlocks.js:822 -#: js/MeterBlocks.js:769 -msgid "do" -msgstr "करा" +#: js/blocks/BoxesBlocks.js:703 +msgid "The Store in Box2 block is used to store a value in Box2." +msgstr "" -#: js/ActionBlocks.js:791 -#: js/ActionBlocks.js:865 -msgid "The Arg block contains the value of an argument passed to an action." +#: js/blocks/BoxesBlocks.js:715 +msgid "store in box2" msgstr "" -#: js/ActionBlocks.js:806 -#: js/ActionBlocks.js:878 -msgid "arg" +#: js/blocks/BoxesBlocks.js:761 +msgid "The Box1 block returns the value stored in Box1." msgstr "" -#: js/ActionBlocks.js:836 -#: js/ActionBlocks.js:900 -#: js/ActionBlocks.js:908 -msgid "Invalid argument" +#: js/blocks/BoxesBlocks.js:812 +msgid "The Store in Box1 block is used to store a value in Box1." msgstr "" -#: js/ActionBlocks.js:944 -msgid "In the example, it is used with the One of block to choose a random phase." +#: js/blocks/BoxesBlocks.js:826 +msgid "store in box1" msgstr "" -#: js/ActionBlocks.js:1019 -#: js/ActionBlocks.js:1026 -msgid "The Listen block is used to listen for an event such as a mouse click." +#: js/blocks/DictBlocks.js:77 +msgid "show dictionary" msgstr "" -#: js/ActionBlocks.js:1028 -msgid "When the event happens, an action is taken." +#: js/blocks/DictBlocks.js:80 +#: js/blocks/DictBlocks.js:145 +#: js/blocks/DictBlocks.js:216 +#: js/blocks/DictBlocks.js:290 +#: js/blocks/ProgramBlocks.js:396 +#: js/blocks/ProgramBlocks.js:501 +#: js/blocks/ProgramBlocks.js:664 +msgid "My Dictionary" msgstr "" -#: js/ActionBlocks.js:1045 -msgid "on" +#: js/blocks/DictBlocks.js:129 +msgid "The Dictionary block returns a dictionary." msgstr "" -#: js/ActionBlocks.js:1048 -#: js/ActionBlocks.js:1049 -#: js/ActionBlocks.js:1153 -msgid "event" +#: js/blocks/DictBlocks.js:197 +#: js/blocks/DictBlocks.js:339 +msgid "The Get-dict block returns a value in the dictionary for a specified key." msgstr "" -#: js/ActionBlocks.js:1133 -msgid "The Broadcast block is used to trigger an event." +#: js/blocks/DictBlocks.js:212 +#: js/blocks/DictBlocks.js:354 +#.TRANS: retrieve a value from the dictionary with a given key +msgid "get value" msgstr "" -#: js/ActionBlocks.js:1151 -msgid "broadcast" +#: js/blocks/DictBlocks.js:215 +#: js/blocks/DictBlocks.js:216 +#: js/blocks/DictBlocks.js:289 +#: js/blocks/DictBlocks.js:290 +#: js/blocks/DictBlocks.js:357 +#: js/blocks/DictBlocks.js:430 +#: js/blocks/DictBlocks.js:431 +msgid "key2" msgstr "" -#: js/ActionBlocks.js:1208 -msgid "Each Start block is a separate voice." +#: js/blocks/DictBlocks.js:215 +#: js/blocks/DictBlocks.js:216 +#: js/blocks/DictBlocks.js:289 +#: js/blocks/DictBlocks.js:290 +#: js/blocks/DictBlocks.js:357 +#: js/blocks/DictBlocks.js:430 +#: js/blocks/DictBlocks.js:431 +#: js/blocks/IntervalsBlocks.js:1462 +#.TRANS: key, e.g., C in C Major +msgid "key" msgstr "" -#: js/ActionBlocks.js:1304 -msgid "It is often used for storing a phrase of music that is repeated." +#: js/blocks/DictBlocks.js:271 +#: js/blocks/DictBlocks.js:411 +msgid "The Set-dict block sets a value in the dictionary for a specified key." msgstr "" -#: js/ActionBlocks.js:1495 -msgid "define temperament" +#: js/blocks/DictBlocks.js:286 +#: js/blocks/DictBlocks.js:427 +#.TRANS: set a value in the dictionary for a given key +msgid "set value" msgstr "" -#: js/EnsembleBlocks.js:66 +#: js/blocks/EnsembleBlocks.js:66 msgid "mouse index heap" msgstr "" -#: js/EnsembleBlocks.js:68 +#: js/blocks/EnsembleBlocks.js:68 msgid "The Mouse index heap block returns a value in the heap at a specified location for a specified mouse." msgstr "" -#: js/EnsembleBlocks.js:77 -#: js/EnsembleBlocks.js:1080 +#: js/blocks/EnsembleBlocks.js:77 +#: js/blocks/EnsembleBlocks.js:1080 msgid "mouse name" msgstr "" -#: js/EnsembleBlocks.js:77 -#: js/EnsembleBlocks.js:92 -#: js/HeapBlocks.js:544 +#: js/blocks/EnsembleBlocks.js:77 +#: js/blocks/EnsembleBlocks.js:92 +#: js/blocks/HeapBlocks.js:544 #.TRANS: value1 is a numeric value (JAPANESE ONLY) msgid "index" msgstr "" -#: js/EnsembleBlocks.js:80 +#: js/blocks/EnsembleBlocks.js:80 msgid "turtle index heap" msgstr "" -#: js/EnsembleBlocks.js:82 +#: js/blocks/EnsembleBlocks.js:82 msgid "The Turtle index heap block returns a value in the heap at a specified location for a specified turtle." msgstr "" -#: js/EnsembleBlocks.js:90 -#: js/EnsembleBlocks.js:167 -#: js/EnsembleBlocks.js:230 -#: js/EnsembleBlocks.js:316 -#: js/EnsembleBlocks.js:362 -#: js/EnsembleBlocks.js:400 -#: js/EnsembleBlocks.js:454 -#: js/EnsembleBlocks.js:504 -#: js/EnsembleBlocks.js:550 -#: js/EnsembleBlocks.js:597 -#: js/EnsembleBlocks.js:651 -#: js/EnsembleBlocks.js:763 -#: js/EnsembleBlocks.js:854 -#: js/EnsembleBlocks.js:915 -#: js/EnsembleBlocks.js:955 -#: js/EnsembleBlocks.js:1219 -#: js/EnsembleBlocks.js:1293 +#: js/blocks/EnsembleBlocks.js:90 +#: js/blocks/EnsembleBlocks.js:167 +#: js/blocks/EnsembleBlocks.js:230 +#: js/blocks/EnsembleBlocks.js:316 +#: js/blocks/EnsembleBlocks.js:362 +#: js/blocks/EnsembleBlocks.js:400 +#: js/blocks/EnsembleBlocks.js:454 +#: js/blocks/EnsembleBlocks.js:504 +#: js/blocks/EnsembleBlocks.js:550 +#: js/blocks/EnsembleBlocks.js:597 +#: js/blocks/EnsembleBlocks.js:651 +#: js/blocks/EnsembleBlocks.js:763 +#: js/blocks/EnsembleBlocks.js:854 +#: js/blocks/EnsembleBlocks.js:915 +#: js/blocks/EnsembleBlocks.js:955 +#: js/blocks/EnsembleBlocks.js:1219 +#: js/blocks/EnsembleBlocks.js:1293 #.TRANS: Yertle is the name of a turtle. msgid "Yertle" msgstr "" -#: js/EnsembleBlocks.js:92 -#: js/EnsembleBlocks.js:1089 +#: js/blocks/EnsembleBlocks.js:92 +#: js/blocks/EnsembleBlocks.js:1089 msgid "turtle name" msgstr "टर्टलचे नाव" -#: js/EnsembleBlocks.js:122 -#: js/EnsembleBlocks.js:1197 -#: js/HeapBlocks.js:474 -#: js/HeapBlocks.js:572 +#: js/blocks/EnsembleBlocks.js:122 +#: js/blocks/EnsembleBlocks.js:1197 +#: js/blocks/HeapBlocks.js:474 +#: js/blocks/HeapBlocks.js:572 msgid "Index must be > 0." msgstr "" -#: js/EnsembleBlocks.js:127 -#: js/HeapBlocks.js:479 -#: js/HeapBlocks.js:577 +#: js/blocks/EnsembleBlocks.js:127 +#: js/blocks/HeapBlocks.js:479 +#: js/blocks/HeapBlocks.js:577 msgid "Maximum heap size is 1000." msgstr "" -#: js/EnsembleBlocks.js:145 +#: js/blocks/EnsembleBlocks.js:145 msgid "stop mouse" msgstr "" -#: js/EnsembleBlocks.js:147 +#: js/blocks/EnsembleBlocks.js:147 msgid "The Stop mouse block stops the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:158 +#: js/blocks/EnsembleBlocks.js:158 msgid "stop turtle" msgstr "टर्टल थांबवा" -#: js/EnsembleBlocks.js:160 +#: js/blocks/EnsembleBlocks.js:160 msgid "The Stop turtle block stops the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:184 -#: js/EnsembleBlocks.js:247 -#: js/EnsembleBlocks.js:413 -#: js/EnsembleBlocks.js:468 -#: js/EnsembleBlocks.js:706 -#: js/EnsembleBlocks.js:808 -#: js/EnsembleBlocks.js:870 -#: js/EnsembleBlocks.js:1190 -#: js/EnsembleBlocks.js:1253 +#: js/blocks/EnsembleBlocks.js:184 +#: js/blocks/EnsembleBlocks.js:247 +#: js/blocks/EnsembleBlocks.js:413 +#: js/blocks/EnsembleBlocks.js:468 +#: js/blocks/EnsembleBlocks.js:706 +#: js/blocks/EnsembleBlocks.js:808 +#: js/blocks/EnsembleBlocks.js:870 +#: js/blocks/EnsembleBlocks.js:1190 +#: js/blocks/EnsembleBlocks.js:1253 msgid "Cannot find mouse" msgstr "" -#: js/EnsembleBlocks.js:186 -#: js/EnsembleBlocks.js:249 -#: js/EnsembleBlocks.js:415 -#: js/EnsembleBlocks.js:470 -#: js/EnsembleBlocks.js:708 -#: js/EnsembleBlocks.js:810 -#: js/EnsembleBlocks.js:872 -#: js/EnsembleBlocks.js:1192 -#: js/EnsembleBlocks.js:1255 +#: js/blocks/EnsembleBlocks.js:186 +#: js/blocks/EnsembleBlocks.js:249 +#: js/blocks/EnsembleBlocks.js:415 +#: js/blocks/EnsembleBlocks.js:470 +#: js/blocks/EnsembleBlocks.js:708 +#: js/blocks/EnsembleBlocks.js:810 +#: js/blocks/EnsembleBlocks.js:872 +#: js/blocks/EnsembleBlocks.js:1192 +#: js/blocks/EnsembleBlocks.js:1255 msgid "Cannot find turtle" msgstr "" -#: js/EnsembleBlocks.js:206 +#: js/blocks/EnsembleBlocks.js:206 msgid "start mouse" msgstr "" -#: js/EnsembleBlocks.js:209 +#: js/blocks/EnsembleBlocks.js:209 msgid "The Start mouse block starts the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:220 +#: js/blocks/EnsembleBlocks.js:220 msgid "start turtle" msgstr "टर्टल सुरु करा" -#: js/EnsembleBlocks.js:223 +#: js/blocks/EnsembleBlocks.js:223 msgid "The Start turtle block starts the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:256 +#: js/blocks/EnsembleBlocks.js:256 msgid "Mouse is already running." msgstr "" -#: js/EnsembleBlocks.js:258 +#: js/blocks/EnsembleBlocks.js:258 msgid "Turtle is already running." msgstr "" -#: js/EnsembleBlocks.js:282 +#: js/blocks/EnsembleBlocks.js:282 msgid "Cannot find start block" msgstr "" -#: js/EnsembleBlocks.js:292 +#: js/blocks/EnsembleBlocks.js:292 #.TRANS: pen color for this mouse msgid "mouse color" msgstr "" -#: js/EnsembleBlocks.js:294 +#: js/blocks/EnsembleBlocks.js:294 msgid "The Mouse color block returns the pen color of the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:306 +#: js/blocks/EnsembleBlocks.js:306 #.TRANS: pen color for this turtle msgid "turtle color" msgstr "" -#: js/EnsembleBlocks.js:308 +#: js/blocks/EnsembleBlocks.js:308 msgid "The Turtle color block returns the pen color of the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:338 +#: js/blocks/EnsembleBlocks.js:338 #.TRANS: heading (compass direction) for this mouse msgid "mouse heading" msgstr "" -#: js/EnsembleBlocks.js:340 +#: js/blocks/EnsembleBlocks.js:340 msgid "The Mouse heading block returns the heading of the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:352 +#: js/blocks/EnsembleBlocks.js:352 #.TRANS: heading (compass direction) for this turtle msgid "turtle heading" msgstr "" -#: js/EnsembleBlocks.js:354 +#: js/blocks/EnsembleBlocks.js:354 msgid "The Turtle heading block returns the heading of the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:384 -#: js/EnsembleBlocks.js:439 +#: js/blocks/EnsembleBlocks.js:384 +#: js/blocks/EnsembleBlocks.js:439 #.TRANS: set xy position for this mouse msgid "set mouse" msgstr "" -#: js/EnsembleBlocks.js:391 -#: js/EnsembleBlocks.js:402 -#: js/BoxesBlocks.js:595 -msgid "name1" -msgstr "" - -#: js/EnsembleBlocks.js:391 -#: js/EnsembleBlocks.js:402 -#: js/ProgramBlocks.js:881 -#: js/GraphicsBlocks.js:235 -#: js/GraphicsBlocks.js:313 -#: js/GraphicsBlocks.js:436 -#: js/GraphicsBlocks.js:487 -#: js/GraphicsBlocks.js:534 -#: js/GraphicsBlocks.js:750 +#: js/blocks/EnsembleBlocks.js:391 +#: js/blocks/EnsembleBlocks.js:402 +#: js/blocks/GraphicsBlocks.js:235 +#: js/blocks/GraphicsBlocks.js:313 +#: js/blocks/GraphicsBlocks.js:436 +#: js/blocks/GraphicsBlocks.js:487 +#: js/blocks/GraphicsBlocks.js:534 +#: js/blocks/GraphicsBlocks.js:750 +#: js/blocks/ProgramBlocks.js:881 msgid "x" msgstr "x" -#: js/EnsembleBlocks.js:391 -#: js/EnsembleBlocks.js:402 -#: js/ProgramBlocks.js:881 -#: js/GraphicsBlocks.js:149 -#: js/GraphicsBlocks.js:313 -#: js/GraphicsBlocks.js:436 -#: js/GraphicsBlocks.js:487 -#: js/GraphicsBlocks.js:534 -#: js/GraphicsBlocks.js:750 +#: js/blocks/EnsembleBlocks.js:391 +#: js/blocks/EnsembleBlocks.js:402 +#: js/blocks/GraphicsBlocks.js:149 +#: js/blocks/GraphicsBlocks.js:313 +#: js/blocks/GraphicsBlocks.js:436 +#: js/blocks/GraphicsBlocks.js:487 +#: js/blocks/GraphicsBlocks.js:534 +#: js/blocks/GraphicsBlocks.js:750 +#: js/blocks/ProgramBlocks.js:881 msgid "y" msgstr "y" -#: js/EnsembleBlocks.js:395 -#: js/EnsembleBlocks.js:452 +#: js/blocks/EnsembleBlocks.js:395 +#: js/blocks/EnsembleBlocks.js:452 #.TRANS: set xy position for this turtle msgid "set turtle" msgstr "" -#: js/EnsembleBlocks.js:433 +#: js/blocks/EnsembleBlocks.js:433 msgid "The Set mouse block sends a stack of blocks to be run by the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:446 +#: js/blocks/EnsembleBlocks.js:446 msgid "The Set turtle block sends a stack of blocks to be run by the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:480 +#: js/blocks/EnsembleBlocks.js:480 #.TRANS: y position for this mouse msgid "mouse y" msgstr "माऊस y" -#: js/EnsembleBlocks.js:482 +#: js/blocks/EnsembleBlocks.js:482 msgid "The Y mouse block returns the Y position of the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:494 +#: js/blocks/EnsembleBlocks.js:494 #.TRANS: y position for this turtle msgid "turtle y" msgstr "टर्टल y" -#: js/EnsembleBlocks.js:496 +#: js/blocks/EnsembleBlocks.js:496 msgid "The Y turtle block returns the Y position of the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:526 +#: js/blocks/EnsembleBlocks.js:526 #.TRANS: x position for this mouse msgid "mouse x" msgstr "माऊस x" -#: js/EnsembleBlocks.js:528 +#: js/blocks/EnsembleBlocks.js:528 msgid "The X mouse block returns the X position of the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:540 +#: js/blocks/EnsembleBlocks.js:540 #.TRANS: x position for this turtle msgid "turtle x" msgstr "टर्टल x" -#: js/EnsembleBlocks.js:542 +#: js/blocks/EnsembleBlocks.js:542 msgid "The X turtle block returns the X position of the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:573 +#: js/blocks/EnsembleBlocks.js:573 #.TRANS: notes played by this mouse msgid "mouse notes played" msgstr "" -#: js/EnsembleBlocks.js:575 +#: js/blocks/EnsembleBlocks.js:575 msgid "The Mouse elapse notes block returns the number of notes played by the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:587 +#: js/blocks/EnsembleBlocks.js:587 #.TRANS: notes played by this turtle msgid "turtle notes played" msgstr "" -#: js/EnsembleBlocks.js:589 +#: js/blocks/EnsembleBlocks.js:589 msgid "The Turtle elapse notes block returns the number of notes played by the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:627 +#: js/blocks/EnsembleBlocks.js:627 #.TRANS: convert current note for this turtle to piano key (1-88) msgid "mouse pitch number" msgstr "" -#: js/EnsembleBlocks.js:629 +#: js/blocks/EnsembleBlocks.js:629 msgid "The Mouse pitch block returns the current pitch number being played by the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:641 +#: js/blocks/EnsembleBlocks.js:641 #.TRANS: convert current note for this turtle to piano key (1-88) msgid "turtle pitch number" msgstr "" -#: js/EnsembleBlocks.js:643 -msgid "The Turrle pitch block returns the current pitch number being played by the specified turtle." +#: js/blocks/EnsembleBlocks.js:643 +msgid "The Turtle pitch block returns the current pitch number being played by the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:747 -#: js/EnsembleBlocks.js:819 +#: js/blocks/EnsembleBlocks.js:747 +#: js/blocks/EnsembleBlocks.js:819 #.TRANS: note value is the duration of the note played by this mouse msgid "mouse note value" msgstr "" -#: js/EnsembleBlocks.js:757 +#: js/blocks/EnsembleBlocks.js:757 #.TRANS: note value is the duration of the note played by this turtle msgid "turtle note value" msgstr "" -#: js/EnsembleBlocks.js:830 +#: js/blocks/EnsembleBlocks.js:830 #.TRANS: sync is short for synchronization msgid "mouse sync" msgstr "" -#: js/EnsembleBlocks.js:832 +#: js/blocks/EnsembleBlocks.js:832 msgid "The Mouse sync block aligns the beat count between mice." msgstr "" -#: js/EnsembleBlocks.js:844 +#: js/blocks/EnsembleBlocks.js:844 #.TRANS: sync is short for synchronization msgid "turtle sync" msgstr "" -#: js/EnsembleBlocks.js:846 +#: js/blocks/EnsembleBlocks.js:846 msgid "The Turtle sync block aligns the beat count between turtles." msgstr "" -#: js/EnsembleBlocks.js:887 +#: js/blocks/EnsembleBlocks.js:887 msgid "The Found mouse block will return true if the specified mouse can be found." msgstr "" -#: js/EnsembleBlocks.js:893 +#: js/blocks/EnsembleBlocks.js:893 msgid "found mouse" msgstr "" -#: js/EnsembleBlocks.js:903 +#: js/blocks/EnsembleBlocks.js:903 msgid "The Found turtle block will return true if the specified turtle can be found." msgstr "" -#: js/EnsembleBlocks.js:909 +#: js/blocks/EnsembleBlocks.js:909 msgid "found turtle" msgstr "" -#: js/EnsembleBlocks.js:932 +#: js/blocks/EnsembleBlocks.js:932 msgid "new mouse" msgstr "" -#: js/EnsembleBlocks.js:934 +#: js/blocks/EnsembleBlocks.js:934 msgid "The New mouse block will create a new mouse." msgstr "" -#: js/EnsembleBlocks.js:945 +#: js/blocks/EnsembleBlocks.js:945 msgid "new turtle" msgstr "" -#: js/EnsembleBlocks.js:947 +#: js/blocks/EnsembleBlocks.js:947 msgid "The New turtle block will create a new turtle." msgstr "" -#: js/EnsembleBlocks.js:1011 +#: js/blocks/EnsembleBlocks.js:1011 msgid "set mouse color" msgstr "" -#: js/EnsembleBlocks.js:1014 +#: js/blocks/EnsembleBlocks.js:1014 msgid "The Set-mouse-color block is used to set the color of a mouse." msgstr "" -#: js/EnsembleBlocks.js:1020 +#: js/blocks/EnsembleBlocks.js:1020 msgid "set turtle color" msgstr "" -#: js/EnsembleBlocks.js:1023 +#: js/blocks/EnsembleBlocks.js:1023 msgid "The Set-turtle-color block is used to set the color of a turtle." msgstr "" -#: js/EnsembleBlocks.js:1083 +#: js/blocks/EnsembleBlocks.js:1083 msgid "The Mouse-name block returns the name of a mouse." msgstr "" -#: js/EnsembleBlocks.js:1092 +#: js/blocks/EnsembleBlocks.js:1092 msgid "The Turtle-name block returns the name of a turtle." msgstr "" -#: js/EnsembleBlocks.js:1115 +#: js/blocks/EnsembleBlocks.js:1115 msgid "mouse count" msgstr "" -#: js/EnsembleBlocks.js:1118 +#: js/blocks/EnsembleBlocks.js:1118 msgid "The Mouse-count block returns the number of mice." msgstr "" -#: js/EnsembleBlocks.js:1124 +#: js/blocks/EnsembleBlocks.js:1124 msgid "turtle count" msgstr "" -#: js/EnsembleBlocks.js:1127 +#: js/blocks/EnsembleBlocks.js:1127 msgid "The Turtle-count block returns the number of turtles." msgstr "" -#: js/EnsembleBlocks.js:1149 +#: js/blocks/EnsembleBlocks.js:1149 msgid "nth mouse name" msgstr "" -#: js/EnsembleBlocks.js:1152 +#: js/blocks/EnsembleBlocks.js:1152 msgid "The Nth-Mouse name block returns the name of the nth mouse." msgstr "" -#: js/EnsembleBlocks.js:1158 +#: js/blocks/EnsembleBlocks.js:1158 msgid "nth turtle name" msgstr "" -#: js/EnsembleBlocks.js:1161 +#: js/blocks/EnsembleBlocks.js:1161 msgid "The Nth-Turtle name block returns the name of the nth turtle." msgstr "" -#: js/EnsembleBlocks.js:1205 -#: js/EnsembleBlocks.js:1265 +#: js/blocks/EnsembleBlocks.js:1205 +#: js/blocks/EnsembleBlocks.js:1265 msgid "set name" msgstr "" -#: js/EnsembleBlocks.js:1214 -#: js/EnsembleBlocks.js:1221 +#: js/blocks/EnsembleBlocks.js:1214 +#: js/blocks/EnsembleBlocks.js:1221 msgid "source" msgstr "स्रोत" -#: js/EnsembleBlocks.js:1214 -#: js/EnsembleBlocks.js:1221 +#: js/blocks/EnsembleBlocks.js:1214 +#: js/blocks/EnsembleBlocks.js:1221 msgid "target" msgstr "लक्ष्य" -#: js/EnsembleBlocks.js:1271 +#: js/blocks/EnsembleBlocks.js:1271 msgid "The Set-name block is used to name a mouse." msgstr "" -#: js/EnsembleBlocks.js:1284 +#: js/blocks/EnsembleBlocks.js:1284 msgid "The Set-name block is used to name a turtle." msgstr "" -#: js/BooleanBlocks.js:44 -msgid "The Not block is the logical not operator." -msgstr "" - -#: js/BooleanBlocks.js:62 -msgid "not" -msgstr "नाही" - -#: js/BooleanBlocks.js:134 -msgid "The And block is the logical and operator." -msgstr "" - -#: js/BooleanBlocks.js:152 -msgid "and" -msgstr "आणि" - -#: js/BooleanBlocks.js:218 -msgid "The Or block is the logical or operator." -msgstr "" - -#: js/BooleanBlocks.js:236 -msgid "or" -msgstr "किंवा" - -#: js/BooleanBlocks.js:302 -msgid "The XOR block is the logical XOR operator." -msgstr "" - -#: js/BooleanBlocks.js:320 -msgid "xor" -msgstr "" - -#: js/BooleanBlocks.js:808 -msgid "The Equal block returns True if the two numbers are equal." -msgstr "" - -#: js/BooleanBlocks.js:909 -msgid "The Not-equal-to block returns True if the two numbers are not equal to each other." -msgstr "" - -#: js/BooleanBlocks.js:1008 -msgid "The Boolean block is used to specify true or false." -msgstr "" - -#: js/MediaBlocks.js:35 -#.TRANS: right side of the screen -msgid "right (screen)" -msgstr "" - -#: js/MediaBlocks.js:45 -#: js/MediaBlocks.js:56 -msgid "The Right block returns the position of the right of the canvas." -msgstr "" - -#: js/MediaBlocks.js:97 -#.TRANS: left side of the screen -msgid "left (screen)" -msgstr "" - -#: js/MediaBlocks.js:107 -#: js/MediaBlocks.js:118 -msgid "The Left block returns the position of the left of the canvas." -msgstr "" - -#: js/MediaBlocks.js:158 -msgid "top (screen)" -msgstr "" - -#: js/MediaBlocks.js:168 -#: js/MediaBlocks.js:179 -msgid "The Top block returns the position of the top of the canvas." -msgstr "" - -#: js/MediaBlocks.js:219 -msgid "bottom (screen)" -msgstr "" - -#: js/MediaBlocks.js:229 -#: js/MediaBlocks.js:240 -msgid "The Bottom block returns the position of the bottom of the canvas." -msgstr "" - -#: js/MediaBlocks.js:282 -msgid "width" -msgstr "" - -#: js/MediaBlocks.js:291 -msgid "The Width block returns the width of the canvas." -msgstr "" - -#: js/MediaBlocks.js:325 -msgid "height" -msgstr "" - -#: js/MediaBlocks.js:334 -msgid "The Height block returns the height of the canvas." -msgstr "" - -#: js/MediaBlocks.js:369 -#.TRANS: stops playback of an audio recording -msgid "stop play" -msgstr "खेळणे / चालणे थांबवा" - -#: js/MediaBlocks.js:404 -#.TRANS: Erases the images and text -msgid "erase media" +#: js/blocks/ExtrasBlocks.js:33 +msgid "fraction" msgstr "" -#: js/MediaBlocks.js:409 -msgid "The Erase Media block erases text and images." +#: js/blocks/ExtrasBlocks.js:36 +msgid "Convert a float to a fraction" msgstr "" -#: js/MediaBlocks.js:439 -#.TRANS: play an audio recording -msgid "play back" +#: js/blocks/ExtrasBlocks.js:93 +msgid "save as ABC" msgstr "" -#: js/MediaBlocks.js:487 -msgid "speak" -msgstr "बोलणे" +#: js/blocks/ExtrasBlocks.js:96 +#: js/blocks/ExtrasBlocks.js:132 +#: js/blocks/ExtrasBlocks.js:168 +msgid "title" +msgstr "शीर्षक" -#: js/MediaBlocks.js:495 -msgid "The Speak block outputs to the text-to-speech synthesizer" +#: js/blocks/ExtrasBlocks.js:129 +msgid "save as Lilypond" msgstr "" -#: js/MediaBlocks.js:546 -msgid "camera" +#: js/blocks/ExtrasBlocks.js:165 +msgid "save as SVG" msgstr "" -#: js/MediaBlocks.js:551 -msgid "The Camera block connects a webcam to the Show block." +#: js/blocks/ExtrasBlocks.js:216 +msgid "no background" msgstr "" -#: js/MediaBlocks.js:574 -msgid "video" +#: js/blocks/ExtrasBlocks.js:219 +msgid "The No background block eliminates the background from the saved SVG output." msgstr "" -#: js/MediaBlocks.js:579 -msgid "The Video block selects video for use with the Show block." -msgstr "" +#: js/blocks/ExtrasBlocks.js:247 +msgid "show blocks" +msgstr "ब्लॉक्स दाखवा" -#: js/MediaBlocks.js:607 -msgid "The Open file block opens a file for use with the Show block." +#: js/blocks/ExtrasBlocks.js:249 +msgid "The Show blocks block shows the blocks." msgstr "" -#: js/MediaBlocks.js:645 -msgid "stop media" -msgstr "मीडिया थांबवा" +#: js/blocks/ExtrasBlocks.js:274 +msgid "hide blocks" +msgstr "ब्लॉक्स लपवा" -#: js/MediaBlocks.js:650 -msgid "The Stop media block stops audio or video playback." +#: js/blocks/ExtrasBlocks.js:276 +msgid "The Hide blocks block hides the blocks." msgstr "" -#: js/MediaBlocks.js:679 -#: js/PitchBlocks.js:1539 -#: js/phrasemaker.js:822 -#: js/musickeyboard.js:1654 -#.TRANS: a measure of frequency: one cycle per second -msgid "hertz" +#: js/blocks/ExtrasBlocks.js:305 +#: js/blocks/ExtrasBlocks.js:338 +msgid "The Space block is used to add space between blocks." msgstr "" -#: js/MediaBlocks.js:692 -msgid "duration (ms)" -msgstr "" +#: js/blocks/ExtrasBlocks.js:376 +msgid "wait" +msgstr "थांबा" -#: js/MediaBlocks.js:728 -#.TRANS: translate a note into hertz, e.g., A4 -> 440HZ -msgid "note to frequency" +#: js/blocks/ExtrasBlocks.js:379 +msgid "The Wait block pauses the program for a specified number of seconds." msgstr "" -#: js/MediaBlocks.js:736 -msgid "The To frequency block converts a pitch name and octave to Hertz." -msgstr "" +#: js/blocks/ExtrasBlocks.js:433 +#: plugins/facebook.rtp:30 +msgid "comment" +msgstr "टिप्पणी" -#: js/MediaBlocks.js:746 -#: js/PitchBlocks.js:656 -#: js/PitchBlocks.js:932 -#: js/PitchBlocks.js:1827 -#.TRANS: name2 is name as in name of pitch (JAPANESE ONLY) -msgid "name2" -msgstr "" +#: js/blocks/ExtrasBlocks.js:469 +msgid "print" +msgstr "छापणे" -#: js/MediaBlocks.js:812 -msgid "The Avatar block is used to change the appearance of the mouse." +#: js/blocks/ExtrasBlocks.js:476 +msgid "The Print block displays text at the top of the screen." msgstr "" -#: js/MediaBlocks.js:819 -msgid "The Avatar block is used to change the appearance of the turtle." +#: js/blocks/ExtrasBlocks.js:582 +msgid "display grid" msgstr "" -#: js/MediaBlocks.js:831 -#: js/MediaBlocks.js:891 -#.TRANS: a media object -msgid "size" -msgstr "आकार" +#: js/blocks/ExtrasBlocks.js:587 +msgid "The Display Grid Block changes the grid type" +msgstr "" -#: js/MediaBlocks.js:831 -msgid "image" -msgstr "प्रतिमा" +#: js/blocks/ExtrasBlocks.js:689 +#: js/blocks/ExtrasBlocks.js:708 +#: js/blocks/ExtrasBlocks.js:731 +#: js/blocks/ExtrasBlocks.js:754 +#: js/blocks/ExtrasBlocks.js:772 +#: js/blocks/ExtrasBlocks.js:791 +#: js/blocks/ExtrasBlocks.js:810 +#: js/blocks/ExtrasBlocks.js:829 +msgid "unknown" +msgstr "अज्ञात" -#: js/MediaBlocks.js:880 -msgid "The Show block is used to display text or images on the canvas." +#: js/blocks/FlowBlocks.js:41 +msgid "The Backward block runs code in reverse order (Musical retrograde)." msgstr "" -#: js/MediaBlocks.js:888 -#.TRANS: show1 is show as in display an image or text on the screen. -msgid "show1" +#: js/blocks/FlowBlocks.js:48 +msgid "backward" msgstr "" -#: js/MediaBlocks.js:891 -msgid "obj" +#: js/blocks/FlowBlocks.js:124 +msgid "The Duplicate block will run each block multiple times." msgstr "" -#: js/MediaBlocks.js:938 -msgid "The Media block is used to import an image." +#: js/blocks/FlowBlocks.js:136 +msgid "duplicate" msgstr "" -#: js/MediaBlocks.js:973 -msgid "The Text block holds a text string." +#: js/blocks/FlowBlocks.js:334 +msgid "The Default block is used inside of a Switch to define the default action." msgstr "" -#: js/ProgramBlocks.js:33 -msgid "The Load-heap-from-app block loads the heap from a web page." +#: js/blocks/FlowBlocks.js:342 +msgid "default" msgstr "" -#: js/ProgramBlocks.js:44 -#.TRANS: load the heap contents from a URL -msgid "load heap from App" +#: js/blocks/FlowBlocks.js:361 +#: js/blocks/FlowBlocks.js:418 +msgid "The Case Block must be used inside of a Switch Block." msgstr "" -#: js/ProgramBlocks.js:95 -msgid "Error parsing JSON data:" +#: js/blocks/FlowBlocks.js:389 +msgid "The Case block is used inside of a Switch to define matches." msgstr "" -#: js/ProgramBlocks.js:100 -msgid "404: Page not found" +#: js/blocks/FlowBlocks.js:397 +msgid "case" msgstr "" -#: js/ProgramBlocks.js:133 -msgid "The Save-heap-to-app block saves the heap to a web page." +#: js/blocks/FlowBlocks.js:446 +msgid "The Switch block will run the code in the matching Case." msgstr "" -#: js/ProgramBlocks.js:144 -#.TRANS: save the heap contents to a URL -msgid "save heap to App" +#: js/blocks/FlowBlocks.js:454 +msgid "switch" msgstr "" -#: js/ProgramBlocks.js:189 -msgid "Cannot find a valid heap for" +#: js/blocks/FlowBlocks.js:595 +msgid "The Stop block will stop a loop" msgstr "" -#: js/ProgramBlocks.js:206 -msgid "The Load-heap block loads the heap from a file." +#: js/blocks/FlowBlocks.js:597 +msgid "Forever, Repeat, While, or Until." msgstr "" -#: js/ProgramBlocks.js:217 -#.TRANS: load the heap from a file -msgid "load heap" -msgstr "लोड ढीग" +#: js/blocks/FlowBlocks.js:604 +#: js/widgets/timbre.js:417 +#: js/widgets/timbre.js:419 +#: js/widgets/musickeyboard.js:819 +#: js/widgets/musickeyboard.js:821 +#: js/widgets/phrasemaker.js:4202 +#: plugins/rodi.rtp:29 +#: plugins/rodi.rtp:73 +#: plugins/rodi.rtp:413 +msgid "stop" +msgstr "थांबा" -#: js/ProgramBlocks.js:270 -msgid "The file you selected does not contain a valid heap." +#: js/blocks/FlowBlocks.js:653 +msgid "The Waitfor block will wait until the condition is true." msgstr "" -#: js/ProgramBlocks.js:275 -msgid "The loadHeap block needs a loadFile block." -msgstr "" +#: js/blocks/FlowBlocks.js:661 +msgid "wait for" +msgstr "प्रतीक्षा करा" -#: js/ProgramBlocks.js:291 -msgid "The Set-heap block loads the heap." +#: js/blocks/FlowBlocks.js:732 +msgid "The Until block will repeat until the condition is true." msgstr "" -#: js/ProgramBlocks.js:299 -#: js/HeapBlocks.js:539 -#.TRANS: load the heap from a JSON encoding -msgid "set heap" -msgstr "" +#: js/blocks/FlowBlocks.js:740 +msgid "until" +msgstr "जोपर्यंत" -#: js/ProgramBlocks.js:340 -msgid "The block you selected does not contain a valid heap." +#: js/blocks/FlowBlocks.js:742 +#: js/blocks/FlowBlocks.js:822 +msgid "do2" msgstr "" -#: js/ProgramBlocks.js:343 -msgid "The Set heap block needs a heap." +#: js/blocks/FlowBlocks.js:812 +msgid "The While block will repeat while the condition is true." msgstr "" -#: js/ProgramBlocks.js:360 -msgid "The Load-dictionary block loads a dictionary from a file." +#: js/blocks/FlowBlocks.js:820 +msgid "while" +msgstr "ज्यावेळी" + +#: js/blocks/FlowBlocks.js:903 +#: js/blocks/FlowBlocks.js:968 +#: js/blocks/FlowBlocks.js:979 +msgid "In this example if the mouse button is pressed a snare drum will play." msgstr "" -#: js/ProgramBlocks.js:372 -#.TRANS: load a dictionary from a file -msgid "load dictionary" +#: js/blocks/FlowBlocks.js:925 +#: js/blocks/FlowBlocks.js:988 +msgid "if" +msgstr "जर" + +#: js/blocks/FlowBlocks.js:927 +#: js/blocks/FlowBlocks.js:990 +msgid "then" +msgstr "नंतर" + +#: js/blocks/FlowBlocks.js:927 +msgid "else" +msgstr "इतर" + +#: js/blocks/FlowBlocks.js:1025 +msgid "The Forever block will repeat the contained blocks forever." msgstr "" -#: js/ProgramBlocks.js:390 -#: js/ProgramBlocks.js:658 -#: js/ToneBlocks.js:1025 -msgid "file" +#: js/blocks/FlowBlocks.js:1037 +msgid "forever" +msgstr "कायमचे" + +#: js/blocks/FlowBlocks.js:1073 +msgid "The Repeat block will repeat the contained blocks." msgstr "" -#: js/ProgramBlocks.js:396 -#: js/ProgramBlocks.js:501 -#: js/ProgramBlocks.js:664 -#: js/DictBlocks.js:80 -#: js/DictBlocks.js:145 -#: js/DictBlocks.js:216 -#: js/DictBlocks.js:290 -msgid "My Dictionary" +#: js/blocks/FlowBlocks.js:1075 +msgid "In this example the note will be played 4 times." msgstr "" -#: js/ProgramBlocks.js:444 -msgid "The file you selected does not contain a valid dictionary." +#: js/blocks/FlowBlocks.js:1083 +msgid "repeat" +msgstr "पुन्हा" + +#: js/blocks/FlowBlocks.js:1123 +msgid "duplicate factor" msgstr "" -#: js/ProgramBlocks.js:449 -msgid "The load dictionary block needs a load file block." +#: js/blocks/HeapBlocks.js:49 +msgid "The Heap block returns the heap." msgstr "" -#: js/ProgramBlocks.js:466 -msgid "The Set-dictionary block loads a dictionary." +#: js/blocks/HeapBlocks.js:133 +msgid "show heap" +msgstr "ढीग दाखवा" + +#: js/blocks/HeapBlocks.js:181 +msgid "The Heap-length block returns the length of the heap." msgstr "" -#: js/ProgramBlocks.js:477 -#.TRANS: load a dictionary from a JSON -msgid "set dictionary" +#: js/blocks/HeapBlocks.js:195 +msgid "heap length" msgstr "" -#: js/ProgramBlocks.js:546 -msgid "The block you selected does not contain a valid dictionary." +#: js/blocks/HeapBlocks.js:254 +msgid "The Heap-empty? block returns true if the heap is empty." msgstr "" -#: js/ProgramBlocks.js:550 -msgid "The set dictionary block needs a dictionary." +#: js/blocks/HeapBlocks.js:268 +#.TRANS: Is the heap empty? +msgid "heap empty?" msgstr "" -#: js/ProgramBlocks.js:567 -msgid "The Save-heap block saves the heap to a file." +#: js/blocks/HeapBlocks.js:317 +msgid "The Empty-heap block empties the heap." msgstr "" -#: js/ProgramBlocks.js:578 -#.TRANS: save the heap to a file -msgid "save heap" -msgstr "ढीग जतन करा" +#: js/blocks/HeapBlocks.js:327 +#: js/blocks/HeapBlocks.js:647 +#.TRANS: empty the heap +msgid "empty heap" +msgstr "रिक्त ढीग" -#: js/ProgramBlocks.js:629 -msgid "The Save-dictionary block saves a dictionary to a file." +#: js/blocks/HeapBlocks.js:371 +msgid "The Reverse-heap block reverses the order of the heap." msgstr "" -#: js/ProgramBlocks.js:640 -#.TRANS: save a dictionary to a file -msgid "save dictionary" +#: js/blocks/HeapBlocks.js:384 +#.TRANS: reverse the order of the heap +msgid "reverse heap" msgstr "" -#: js/ProgramBlocks.js:720 -msgid "The Open palette block opens a palette." +#: js/blocks/HeapBlocks.js:428 +msgid "The Index-heap block returns a value in the heap at a specified location." msgstr "" -#: js/ProgramBlocks.js:727 -msgid "open palette" +#: js/blocks/HeapBlocks.js:443 +#.TRANS: retrieve a value from the heap at index position in the heap +msgid "index heap" msgstr "" -#: js/ProgramBlocks.js:785 -msgid "The Delete block block removes a block." +#: js/blocks/HeapBlocks.js:523 +msgid "The Set-heap entry block sets a value in he heap at the specified location." msgstr "" -#: js/ProgramBlocks.js:797 -#.TRANS: Move this block to the trash. -msgid "delete block" +#: js/blocks/HeapBlocks.js:539 +#: js/blocks/ProgramBlocks.js:299 +#.TRANS: load the heap from a JSON encoding +msgid "set heap" msgstr "" -#: js/ProgramBlocks.js:861 -msgid "The Move block block moves a block." +#: js/blocks/HeapBlocks.js:619 +msgid "The Pop block removes the value at the top of the heap." msgstr "" -#: js/ProgramBlocks.js:869 -#.TRANS: Move the position of a block on the screen. -msgid "move block" +#: js/blocks/HeapBlocks.js:633 +#.TRANS: pop a value off the top of the heap +msgid "pop" msgstr "" -#: js/ProgramBlocks.js:881 -#: js/ProgramBlocks.js:1048 -msgid "block number" +#: js/blocks/HeapBlocks.js:680 +msgid "The Push block adds a value to the top of the heap." msgstr "" -#: js/ProgramBlocks.js:935 -#.TRANS: Run program beginning at this block. -msgid "run block" -msgstr "" +#: js/blocks/HeapBlocks.js:696 +#.TRANS: push a value onto the top of the heap +msgid "push" +msgstr "ढकलणे" -#: js/ProgramBlocks.js:1025 -msgid "The Dock block block connections two blocks." +#: js/blocks/IntervalsBlocks.js:45 +msgid "set temperament" msgstr "" -#: js/ProgramBlocks.js:1036 -#.TRANS: We can connect a block to another block. -msgid "connect blocks" +#: js/blocks/IntervalsBlocks.js:63 +#: js/blocks/MediaBlocks.js:746 +#: js/blocks/PitchBlocks.js:657 +#: js/blocks/PitchBlocks.js:935 +#: js/blocks/PitchBlocks.js:974 +#: js/blocks/PitchBlocks.js:1007 +#: js/blocks/PitchBlocks.js:1194 +#: js/blocks/PitchBlocks.js:1717 +#: js/blocks/PitchBlocks.js:1758 +#: js/blocks/PitchBlocks.js:1866 +#: js/blocks/ToneBlocks.js:1025 +#: js/turtleactions/IntervalsActions.js:114 +#.TRANS: adjusts the shift up or down by one octave (twelve half-steps in the interval between two notes, one having twice or half the frequency in Hz of the other.) +msgid "octave" msgstr "" -#: js/ProgramBlocks.js:1048 -msgid "target block" +#: js/blocks/IntervalsBlocks.js:99 +msgid "The Temperament name block is used to select a tuning method." msgstr "" -#: js/ProgramBlocks.js:1048 -msgid "connection number" +#: js/blocks/IntervalsBlocks.js:161 +msgid "doubly" msgstr "" -#: js/ProgramBlocks.js:1140 -msgid "The Make block block creates a new block." +#: js/blocks/IntervalsBlocks.js:166 +msgid "The Doubly block will double the size of an interval." msgstr "" -#: js/ProgramBlocks.js:1152 -#.TRANS: Create a new block -msgid "make block" +#: js/blocks/IntervalsBlocks.js:262 +msgid "interval number" msgstr "" -#: js/ProgramBlocks.js:1186 -#: js/ProgramBlocks.js:1227 -#: js/RhythmBlocks.js:1128 -#: js/PitchBlocks.js:972 -#: js/PitchBlocks.js:1005 -#: js/temperament.js:340 -#: js/temperament.js:362 -#: js/temperament.js:372 -#: js/temperament.js:484 -#: js/status.js:190 -#: plugins/rodi.rtp:192 -#.TRANS: a musical note consisting of pitch and duration -msgid "note" -msgstr "नोंद" - -#: js/ProgramBlocks.js:1285 -msgid "Cannot find block" +#: js/blocks/IntervalsBlocks.js:317 +msgid "current interval" msgstr "" -#: js/ProgramBlocks.js:1304 -#: js/ProgramBlocks.js:1313 -msgid "Warning: block argument type mismatch" +#: js/blocks/IntervalsBlocks.js:387 +#.TRANS: measure the distance between two pitches in semi-tones +msgid "semi-tone interval measure" msgstr "" -#: js/ProgramBlocks.js:1347 -msgid "The Open project block is used to open a project from a web page." +#: js/blocks/IntervalsBlocks.js:454 +#: js/blocks/IntervalsBlocks.js:570 +msgid "You must use two pitch blocks when measuring an interval." msgstr "" -#: js/ProgramBlocks.js:1357 -msgid "open project" +#: js/blocks/IntervalsBlocks.js:496 +msgid "The Scalar interval block measures the distance between two notes in the current key and mode." msgstr "" -#: js/ProgramBlocks.js:1410 -msgid "Please enter a valid URL." +#: js/blocks/IntervalsBlocks.js:502 +#.TRANS: measure the distance between two pitches in steps of musical scale +msgid "scalar interval measure" msgstr "" -#: js/DrumBlocks.js:59 -msgid "The Noise name block is used to select a noise synthesizer." +#: js/blocks/IntervalsBlocks.js:678 +msgid "In the figure, we add sol# to sol." msgstr "" -#: js/DrumBlocks.js:102 -msgid "The Drum name block is used to select a drum." +#: js/blocks/IntervalsBlocks.js:684 +#: js/blocks/OrnamentBlocks.js:220 +#.TRANS: calculate a relative step between notes based on semi-tones +msgid "semi-tone interval" msgstr "" -#: js/DrumBlocks.js:146 -msgid "The Effects name block is used to select a sound effect." +#: js/blocks/IntervalsBlocks.js:733 +msgid "The output of the example is: do, mi, sol, sol, ti, mi" msgstr "" -#: js/DrumBlocks.js:163 -msgid "noise" +#: js/blocks/IntervalsBlocks.js:740 +#: js/blocks/WidgetBlocks.js:768 +msgid "arpeggio" msgstr "" -#: js/DrumBlocks.js:177 -msgid "The Play noise block will generate white, pink, or brown noise." +#: js/blocks/IntervalsBlocks.js:931 +msgid "The Chord block calculates common chords." msgstr "" -#: js/DrumBlocks.js:191 -#: js/musicutils.js:752 -#: js/synthutils.js:47 -#.TRANS: white noise synthesizer -msgid "white noise" +#: js/blocks/IntervalsBlocks.js:933 +msgid "In the figure, we generate a C-major chord." msgstr "" -#: js/DrumBlocks.js:326 -msgid "Replace every instance of a pitch with a drum sound." +#: js/blocks/IntervalsBlocks.js:938 +msgid "chord" msgstr "" -#: js/DrumBlocks.js:337 -#.TRANS: map a pitch to a drum sound -msgid "map pitch to drum" +#: js/blocks/IntervalsBlocks.js:990 +msgid "The Ratio Interval block calculates an interval based on a ratio." msgstr "" -#: js/DrumBlocks.js:404 -msgid "In the example above, a kick drum sound will be played instead of sol." +#: js/blocks/IntervalsBlocks.js:995 +msgid "ratio interval" msgstr "" -#: js/DrumBlocks.js:416 -#.TRANS: set the current drum sound for playback -msgid "set drum" +#: js/blocks/IntervalsBlocks.js:1064 +msgid "In the figure, we add la to sol." msgstr "" -#: js/DrumBlocks.js:460 -msgid "sound effect" +#: js/blocks/IntervalsBlocks.js:1120 +#.TRANS: define a custom mode +msgid "define mode" msgstr "" -#: js/DrumBlocks.js:498 -msgid "You can use multiple Drum blocks within a Note block." +#: js/blocks/IntervalsBlocks.js:1173 +msgid "movable Do" msgstr "" -#: js/RhythmBlocks.js:182 -#: js/RhythmBlocks.js:1086 -#: js/RhythmBlocks.js:1162 -msgid "Note value must be greater than 0." +#: js/blocks/IntervalsBlocks.js:1224 +#.TRANS: mode length is the number of notes in the mode, e.g., 7 for major and minor scales; 12 for chromatic scales +msgid "mode length" msgstr "" -#: js/RhythmBlocks.js:215 -#: js/RhythmBlocks.js:278 -#: js/RhythmBlocks.js:350 -#.TRANS: swing is a rhythmic variation that emphasises the offbeat -msgid "swing" +#: js/blocks/IntervalsBlocks.js:1233 +msgid "The Mode length block is the number of notes in the current scale." msgstr "" -#: js/RhythmBlocks.js:355 -#.TRANS: the amount to shift to the offbeat note -msgid "swing value" +#: js/blocks/IntervalsBlocks.js:1235 +msgid "Most Western scales have 7 notes." msgstr "" -#: js/RhythmBlocks.js:419 -msgid "The Skip notes block will cause notes to be skipped." +#: js/blocks/IntervalsBlocks.js:1284 +#.TRANS: the mode in music is 'major', 'minor', etc. +msgid "current mode" msgstr "" -#: js/RhythmBlocks.js:427 -#.TRANS: substitute rests on notes being skipped -msgid "skip notes" +#: js/blocks/IntervalsBlocks.js:1337 +#.TRANS: the key is a group of pitches with which a music composition is created +msgid "current key" msgstr "" -#: js/RhythmBlocks.js:489 -#.TRANS: speed up note duration by some factor, e.g. convert 1/4 to 1/8 notes by using a factor of 2 -msgid "multiply note value" +#: js/blocks/IntervalsBlocks.js:1389 +#: js/blocks/IntervalsBlocks.js:1434 +#.TRANS: set the key and mode, e.g. C Major +msgid "set key" msgstr "" -#: js/RhythmBlocks.js:542 -msgid "The Tie block works on pairs of notes, combining them into one note." +#: js/blocks/IntervalsBlocks.js:1443 +#: js/blocks/IntervalsBlocks.js:1449 +msgid "The Set key block is used to set the key and mode," msgstr "" -#: js/RhythmBlocks.js:550 -#.TRANS: tie notes together into one longer note -msgid "tie" +#: js/blocks/IntervalsBlocks.js:1449 +msgid "eg C Major" msgstr "" -#: js/RhythmBlocks.js:591 -#: js/RhythmBlocks.js:671 -#.TRANS: a dotted note is played for 1.5x its value, e.g., 1/8. --> 3/16 -msgid "dot" +#: js/blocks/MediaBlocks.js:35 +#.TRANS: right side of the screen +msgid "right (screen)" msgstr "" -#: js/RhythmBlocks.js:619 -#: js/RhythmActions.js:221 -msgid "An argument of -1 results in a note value of 0." +#: js/blocks/MediaBlocks.js:45 +#: js/blocks/MediaBlocks.js:56 +msgid "The Right block returns the position of the right of the canvas." msgstr "" -#: js/RhythmBlocks.js:661 -msgid "The Dot block extends the duration of a note by 50%." +#: js/blocks/MediaBlocks.js:97 +#.TRANS: left side of the screen +msgid "left (screen)" msgstr "" -#: js/RhythmBlocks.js:663 -msgid "Eg a dotted quarter note will play for 3/8 (1/4 + 1/8) of a beat." +#: js/blocks/MediaBlocks.js:107 +#: js/blocks/MediaBlocks.js:118 +msgid "The Left block returns the position of the left of the canvas." msgstr "" -#: js/RhythmBlocks.js:765 -#.TRANS: Japanese only: note value block for drum -msgid "note value drum" +#: js/blocks/MediaBlocks.js:158 +msgid "top (screen)" msgstr "" -#: js/RhythmBlocks.js:829 -msgid "392 hertz" +#: js/blocks/MediaBlocks.js:168 +#: js/blocks/MediaBlocks.js:179 +msgid "The Top block returns the position of the top of the canvas." msgstr "" -#: js/RhythmBlocks.js:1119 -msgid "The Note block is a container for one or more Pitch blocks." +#: js/blocks/MediaBlocks.js:219 +msgid "bottom (screen)" msgstr "" -#: js/RhythmBlocks.js:1121 -msgid "The Note block specifies the duration (note value) of its contents." +#: js/blocks/MediaBlocks.js:229 +#: js/blocks/MediaBlocks.js:240 +msgid "The Bottom block returns the position of the bottom of the canvas." msgstr "" -#: js/RhythmBlocks.js:1130 -msgid "value2" +#: js/blocks/MediaBlocks.js:282 +msgid "width" msgstr "" -#: js/RhythmBlocks.js:1200 -msgid "define frequency" +#: js/blocks/MediaBlocks.js:291 +msgid "The Width block returns the width of the canvas." msgstr "" -#: js/RhythmBlocks.js:1218 -#: js/temperament.js:650 -#: js/temperament.js:1421 -msgid "octave space" +#: js/blocks/MediaBlocks.js:325 +msgid "height" msgstr "" -#: js/NumberBlocks.js:28 -msgid "The Int block returns an integer." +#: js/blocks/MediaBlocks.js:334 +msgid "The Height block returns the height of the canvas." msgstr "" -#: js/NumberBlocks.js:34 -msgid "int" -msgstr "" +#: js/blocks/MediaBlocks.js:369 +#.TRANS: stops playback of an audio recording +msgid "stop play" +msgstr "खेळणे / चालणे थांबवा" -#: js/NumberBlocks.js:73 -msgid "The Mod block returns the remainder from a division." +#: js/blocks/MediaBlocks.js:404 +#.TRANS: Erases the images and text +msgid "erase media" msgstr "" -#: js/NumberBlocks.js:79 -msgid "mod" +#: js/blocks/MediaBlocks.js:409 +msgid "The Erase Media block erases text and images." msgstr "" -#: js/NumberBlocks.js:123 -msgid "The Power block calculates a power function." +#: js/blocks/MediaBlocks.js:439 +#.TRANS: play an audio recording +msgid "play back" msgstr "" -#: js/NumberBlocks.js:178 -msgid "The Sqrt block returns the square root." +#: js/blocks/MediaBlocks.js:487 +msgid "speak" +msgstr "बोलणे" + +#: js/blocks/MediaBlocks.js:495 +msgid "The Speak block outputs to the text-to-speech synthesizer" msgstr "" -#: js/NumberBlocks.js:184 -msgid "sqrt" -msgstr "वर्गमुळ" +#: js/blocks/MediaBlocks.js:546 +msgid "camera" +msgstr "" -#: js/NumberBlocks.js:230 -msgid "The Abs block returns the absolute value." +#: js/blocks/MediaBlocks.js:551 +msgid "The Camera block connects a webcam to the Show block." msgstr "" -#: js/NumberBlocks.js:236 -msgid "abs" +#: js/blocks/MediaBlocks.js:574 +msgid "video" msgstr "" -#: js/NumberBlocks.js:277 -msgid "The Distance block returns the distance between two points. For example, between the mouse and the center of the screen." +#: js/blocks/MediaBlocks.js:579 +msgid "The Video block selects video for use with the Show block." msgstr "" -#: js/NumberBlocks.js:283 -#: plugins/rodi.rtp:310 -msgid "distance" +#: js/blocks/MediaBlocks.js:607 +msgid "The Open file block opens a file for use with the Show block." msgstr "" -#: js/NumberBlocks.js:343 -msgid "The Divide block is used to divide." +#: js/blocks/MediaBlocks.js:645 +msgid "stop media" +msgstr "मीडिया थांबवा" + +#: js/blocks/MediaBlocks.js:650 +msgid "The Stop media block stops audio or video playback." msgstr "" -#: js/NumberBlocks.js:411 -msgid "The Multiply block is used to multiply." +#: js/blocks/MediaBlocks.js:679 +#: js/blocks/PitchBlocks.js:1577 +#: js/widgets/musickeyboard.js:1936 +#: js/widgets/phrasemaker.js:1037 +#.TRANS: a measure of frequency: one cycle per second +msgid "hertz" msgstr "" -#: js/NumberBlocks.js:554 -msgid "The Minus block is used to subtract." +#: js/blocks/MediaBlocks.js:692 +#: js/blocks/WidgetBlocks.js:182 +#: js/widgets/temperament.js:506 +#: js/widgets/temperament.js:546 +#: js/widgets/temperament.js:610 +#: js/widgets/temperament.js:618 +#: js/widgets/temperament.js:1505 +#: js/widgets/timbre.js:1842 +msgid "frequency" msgstr "" -#: js/NumberBlocks.js:647 -msgid "The Plus block is used to add." +#: js/blocks/MediaBlocks.js:692 +msgid "duration (ms)" msgstr "" -#: js/NumberBlocks.js:773 -msgid "The One-of block returns one of two choices." +#: js/blocks/MediaBlocks.js:728 +#.TRANS: translate a note into hertz, e.g., A4 -> 440HZ +msgid "note to frequency" msgstr "" -#: js/NumberBlocks.js:780 -#: js/PitchBlocks.js:616 -msgid "one of" +#: js/blocks/MediaBlocks.js:736 +msgid "The To frequency block converts a pitch name and octave to Hertz." msgstr "" -#: js/NumberBlocks.js:782 -msgid "this" +#: js/blocks/MediaBlocks.js:746 +#: js/blocks/PitchBlocks.js:656 +#: js/blocks/PitchBlocks.js:934 +#: js/blocks/PitchBlocks.js:1866 +#.TRANS: name2 is name as in name of pitch (JAPANESE ONLY) +msgid "name2" msgstr "" -#: js/NumberBlocks.js:782 -msgid "that" +#: js/blocks/MediaBlocks.js:812 +msgid "The Avatar block is used to change the appearance of the mouse." msgstr "" -#: js/NumberBlocks.js:837 -msgid "The Random block returns a random number." +#: js/blocks/MediaBlocks.js:819 +msgid "The Avatar block is used to change the appearance of the turtle." msgstr "" -#: js/NumberBlocks.js:844 -msgid "random" -msgstr "कुटला पण" +#: js/blocks/MediaBlocks.js:831 +#: js/blocks/MediaBlocks.js:891 +#.TRANS: a media object +msgid "size" +msgstr "आकार" -#: js/NumberBlocks.js:846 -msgid "min" -msgstr "किमान / कमीत कमी" +#: js/blocks/MediaBlocks.js:831 +msgid "image" +msgstr "प्रतिमा" -#: js/NumberBlocks.js:846 -msgid "max" -msgstr "कमाल / जस्तिस जास्त" +#: js/blocks/MediaBlocks.js:880 +msgid "The Show block is used to display text or images on the canvas." +msgstr "" -#: js/NumberBlocks.js:910 -msgid "The Number block holds a number." +#: js/blocks/MediaBlocks.js:888 +#.TRANS: show1 is show as in display an image or text on the screen. +msgid "show1" msgstr "" -#: js/BoxesBlocks.js:53 -#: js/BoxesBlocks.js:59 -msgid "The Add-to block is used to add to the value stored in a box." +#: js/blocks/MediaBlocks.js:891 +msgid "obj" msgstr "" -#: js/BoxesBlocks.js:61 -msgid "It can also be used with other blocks such as Color and Pen size." +#: js/blocks/MediaBlocks.js:938 +msgid "The Media block is used to import an image." msgstr "" -#: js/BoxesBlocks.js:73 -msgid "add" -msgstr "जोडा" +#: js/blocks/MediaBlocks.js:973 +msgid "The Text block holds a text string." +msgstr "" -#: js/BoxesBlocks.js:75 -#: js/temperament.js:716 -msgid "to" -msgstr "करण्यासाठी / च्यापर्यत" +#: js/blocks/MeterBlocks.js:34 +#.TRANS: musical meter (time signature), e.g., 4:4 +msgid "current meter" +msgstr "" -#: js/BoxesBlocks.js:75 -#: js/BoxesBlocks.js:595 -#: js/HeapBlocks.js:544 -msgid "value1" +#: js/blocks/MeterBlocks.js:85 +#.TRANS: number of beats per minute +msgid "beat factor" msgstr "" -#: js/BoxesBlocks.js:118 -msgid "Block does not support incrementing." +#: js/blocks/MeterBlocks.js:161 +msgid "The Beats per minute block returns the current beats per minute." msgstr "" -#: js/BoxesBlocks.js:152 -msgid "The Add-1-to block adds one to the value stored in a box." +#: js/blocks/MeterBlocks.js:169 +#: js/widgets/status.js:152 +#.TRANS: number of beats played per minute +msgid "beats per minute2" msgstr "" -#: js/BoxesBlocks.js:163 -msgid "add 1 to" -msgstr "१ जोड" +#: js/blocks/MeterBlocks.js:169 +#: js/blocks/MeterBlocks.js:1056 +#: js/blocks/MeterBlocks.js:1133 +#: js/blocks/MeterBlocks.js:1211 +#.TRANS: sets tempo by defining a beat and beats per minute +msgid "beats per minute" +msgstr "" -#: js/BoxesBlocks.js:211 -msgid "The Subtract-1-from block subtracts one from the value stored in a box." +#: js/blocks/MeterBlocks.js:233 +#.TRANS: count of current musical measure in meter +msgid "measure count" msgstr "" -#: js/BoxesBlocks.js:222 -msgid "subtract 1 from" +#: js/blocks/MeterBlocks.js:241 +msgid "The Measure count block returns the current measure." msgstr "" -#: js/BoxesBlocks.js:270 -#: js/BoxesBlocks.js:387 -msgid "The Box block returns the value stored in a box." +#: js/blocks/MeterBlocks.js:290 +#.TRANS: count of current beat in the meter +msgid "beat count" msgstr "" -#: js/BoxesBlocks.js:500 -#: js/BoxesBlocks.js:576 -msgid "The Store in block will store a value in a box." +#: js/blocks/MeterBlocks.js:300 +#: js/blocks/MeterBlocks.js:311 +#: js/blocks/MeterBlocks.js:565 +#: js/blocks/MeterBlocks.js:576 +msgid "The Beat count block is the number of the current beat," msgstr "" -#: js/BoxesBlocks.js:652 -msgid "The Box2 block returns the value stored in Box2." +#: js/blocks/MeterBlocks.js:313 +#: js/blocks/MeterBlocks.js:578 +msgid "eg 1, 2, 3, or 4." msgstr "" -#: js/BoxesBlocks.js:703 -msgid "The Store in Box2 block is used to store a value in Box2." +#: js/blocks/MeterBlocks.js:368 +#.TRANS: count the number of notes +msgid "sum note values" msgstr "" -#: js/BoxesBlocks.js:715 -msgid "store in box2" +#: js/blocks/MeterBlocks.js:376 +#: js/blocks/MeterBlocks.js:440 +msgid "The Note counter block can be used to count the number of contained notes." msgstr "" -#: js/BoxesBlocks.js:761 -msgid "The Box1 block returns the value stored in Box1." +#: js/blocks/MeterBlocks.js:432 +#.TRANS: count the number of notes +msgid "note counter" msgstr "" -#: js/BoxesBlocks.js:812 -msgid "The Store in Box1 block is used to store a value in Box1." +#: js/blocks/MeterBlocks.js:496 +#.TRANS: number of whole notes that have been played +msgid "whole notes played" msgstr "" -#: js/BoxesBlocks.js:826 -msgid "store in box1" +#: js/blocks/MeterBlocks.js:505 +msgid "The Whole notes played block returns the total number of whole notes played." msgstr "" -#: js/HeapBlocks.js:49 -msgid "The Heap block returns the heap." +#: js/blocks/MeterBlocks.js:555 +#: js/turtleactions/DictActions.js:83 +#.TRANS: number of notes that have been played +msgid "notes played" msgstr "" -#: js/HeapBlocks.js:133 -msgid "show heap" -msgstr "ढीग दाखवा" +#: js/blocks/MeterBlocks.js:653 +msgid "The No clock block decouples the notes from the master clock." +msgstr "" -#: js/HeapBlocks.js:181 -msgid "The Heap-length block returns the length of the heap." +#: js/blocks/MeterBlocks.js:661 +#.TRANS: don't lock notes to master clock +msgid "no clock" msgstr "" -#: js/HeapBlocks.js:195 -msgid "heap length" +#: js/blocks/MeterBlocks.js:700 +msgid "on weak beat do" msgstr "" -#: js/HeapBlocks.js:254 -msgid "The Heap-empty? block returns true if the heap is empty." +#: js/blocks/MeterBlocks.js:705 +msgid "The On-weak-beat block lets you specify actions to take on weak (off) beats." msgstr "" -#: js/HeapBlocks.js:268 -#.TRANS: Is the heap empty? -msgid "heap empty?" +#: js/blocks/MeterBlocks.js:750 +msgid "on strong beat" msgstr "" -#: js/HeapBlocks.js:317 -msgid "The Empty-heap block empties the heap." +#: js/blocks/MeterBlocks.js:758 +msgid "The On-strong-beat block lets you specify actions to take on specified beats." msgstr "" -#: js/HeapBlocks.js:327 -#: js/HeapBlocks.js:647 -#.TRANS: empty the heap -msgid "empty heap" -msgstr "रिक्त ढीग" +#: js/blocks/MeterBlocks.js:769 +msgid "beat" +msgstr "" -#: js/HeapBlocks.js:371 -msgid "The Reverse-heap block reverses the order of the heap." +#: js/blocks/MeterBlocks.js:813 +msgid "on every beat do" msgstr "" -#: js/HeapBlocks.js:384 -#.TRANS: reverse the order of the heap -msgid "reverse heap" +#: js/blocks/MeterBlocks.js:821 +msgid "The On-every-beat block lets you specify actions to take on every beat." msgstr "" -#: js/HeapBlocks.js:428 -msgid "The Index-heap block returns a value in the heap at a specified location." +#: js/blocks/MeterBlocks.js:874 +msgid "on every note do" msgstr "" -#: js/HeapBlocks.js:443 -#.TRANS: retrieve a value from the heap at index position in the heap -msgid "index heap" +#: js/blocks/MeterBlocks.js:882 +msgid "The On-every-note block lets you specify actions to take on every note." msgstr "" -#: js/HeapBlocks.js:523 -msgid "The Set-heap entry block sets a value in he heap at the specified location." +#: js/blocks/MeterBlocks.js:928 +#: js/blocks/MeterBlocks.js:999 +#.TRANS: sets tempo by defining a beat and beats per minute +msgid "master beats per minute" msgstr "" -#: js/HeapBlocks.js:619 -msgid "The Pop block removes the value at the top of the heap." +#: js/blocks/MeterBlocks.js:952 +#: js/blocks/MeterBlocks.js:1078 +#: js/blocks/MeterBlocks.js:1135 +msgid "bpm" msgstr "" -#: js/HeapBlocks.js:633 -#.TRANS: pop a value off the top of the heap -msgid "pop" +#: js/blocks/MeterBlocks.js:952 +#: js/blocks/MeterBlocks.js:1078 +#: js/blocks/MeterBlocks.js:1135 +msgid "beat value" msgstr "" -#: js/HeapBlocks.js:680 -msgid "The Push block adds a value to the top of the heap." +#: js/blocks/MeterBlocks.js:1024 +#: js/blocks/MeterBlocks.js:1167 +#: js/blocks/MeterBlocks.js:1241 +msgid "Beats per minute must be > 30." msgstr "" -#: js/HeapBlocks.js:696 -#.TRANS: push a value onto the top of the heap -msgid "push" -msgstr "ढकलणे" +#: js/blocks/MeterBlocks.js:1027 +#: js/blocks/MeterBlocks.js:1170 +#: js/blocks/MeterBlocks.js:1244 +msgid "Maximum beats per minute is 1000." +msgstr "" -#: js/FlowBlocks.js:41 -msgid "The Backward block runs code in reverse order (Musical retrograde)." +#: js/blocks/MeterBlocks.js:1068 +msgid "The Beats per minute block sets the number of 1/4 notes per minute." msgstr "" -#: js/FlowBlocks.js:48 -msgid "backward" +#: js/blocks/MeterBlocks.js:1279 +#.TRANS: anacrusis +msgid "pickup" msgstr "" -#: js/FlowBlocks.js:124 -msgid "The Duplicate block will run each block multiple times." +#: js/blocks/MeterBlocks.js:1367 +msgid "number of beats" msgstr "" -#: js/FlowBlocks.js:136 -msgid "duplicate" +#: js/blocks/NumberBlocks.js:28 +msgid "The Int block returns an integer." msgstr "" -#: js/FlowBlocks.js:334 -msgid "The Default block is used inside of a Switch to define the default action." +#: js/blocks/NumberBlocks.js:34 +msgid "int" msgstr "" -#: js/FlowBlocks.js:342 -msgid "default" +#: js/blocks/NumberBlocks.js:73 +msgid "The Mod block returns the remainder from a division." msgstr "" -#: js/FlowBlocks.js:361 -#: js/FlowBlocks.js:418 -msgid "The Case Block must be used inside of a Switch Block." +#: js/blocks/NumberBlocks.js:79 +msgid "mod" msgstr "" -#: js/FlowBlocks.js:389 -msgid "The Case block is used inside of a Switch to define matches." +#: js/blocks/NumberBlocks.js:141 +msgid "The Power block calculates a power function." msgstr "" -#: js/FlowBlocks.js:397 -msgid "case" +#: js/blocks/NumberBlocks.js:196 +msgid "The Sqrt block returns the square root." msgstr "" -#: js/FlowBlocks.js:446 -msgid "The Switch block will run the code in the matching Case." +#: js/blocks/NumberBlocks.js:202 +msgid "sqrt" +msgstr "वर्गमुळ" + +#: js/blocks/NumberBlocks.js:248 +msgid "The Abs block returns the absolute value." msgstr "" -#: js/FlowBlocks.js:454 -msgid "switch" +#: js/blocks/NumberBlocks.js:254 +msgid "abs" msgstr "" -#: js/FlowBlocks.js:595 -msgid "The Stop block will stop a loop" +#: js/blocks/NumberBlocks.js:295 +msgid "The Distance block returns the distance between two points. For example, between the mouse and the center of the screen." msgstr "" -#: js/FlowBlocks.js:597 -msgid "Forever, Repeat, While, or Until." +#: js/blocks/NumberBlocks.js:301 +#: plugins/rodi.rtp:310 +msgid "distance" msgstr "" -#: js/FlowBlocks.js:604 -#: js/phrasemaker.js:3799 -#: js/musickeyboard.js:629 -#: js/musickeyboard.js:631 -#: js/timbre.js:417 -#: js/timbre.js:419 -#: plugins/rodi.rtp:29 -#: plugins/rodi.rtp:73 -#: plugins/rodi.rtp:413 -msgid "stop" -msgstr "थांबा" +#: js/blocks/NumberBlocks.js:361 +msgid "The Divide block is used to divide." +msgstr "" -#: js/FlowBlocks.js:653 -msgid "The Waitfor block will wait until the condition is true." +#: js/blocks/NumberBlocks.js:441 +msgid "The Multiply block is used to multiply." msgstr "" -#: js/FlowBlocks.js:661 -msgid "wait for" -msgstr "प्रतीक्षा करा" +#: js/blocks/NumberBlocks.js:612 +msgid "The Minus block is used to subtract." +msgstr "" -#: js/FlowBlocks.js:732 -msgid "The Until block will repeat until the condition is true." +#: js/blocks/NumberBlocks.js:723 +msgid "The Plus block is used to add." msgstr "" -#: js/FlowBlocks.js:740 -msgid "until" -msgstr "जोपर्यंत" +#: js/blocks/NumberBlocks.js:849 +msgid "The One-of block returns one of two choices." +msgstr "" -#: js/FlowBlocks.js:742 -#: js/FlowBlocks.js:822 -msgid "do2" +#: js/blocks/NumberBlocks.js:856 +#: js/blocks/PitchBlocks.js:616 +msgid "one of" msgstr "" -#: js/FlowBlocks.js:812 -msgid "The While block will repeat while the condition is true." +#: js/blocks/NumberBlocks.js:858 +msgid "this" msgstr "" -#: js/FlowBlocks.js:820 -msgid "while" -msgstr "ज्यावेळी" +#: js/blocks/NumberBlocks.js:858 +msgid "that" +msgstr "" -#: js/FlowBlocks.js:903 -#: js/FlowBlocks.js:968 -#: js/FlowBlocks.js:979 -msgid "In this example if the mouse button is pressed a snare drum will play." +#: js/blocks/NumberBlocks.js:913 +msgid "The Random block returns a random number." msgstr "" -#: js/FlowBlocks.js:925 -#: js/FlowBlocks.js:988 -msgid "if" -msgstr "जर" +#: js/blocks/NumberBlocks.js:920 +msgid "random" +msgstr "कुटला पण" -#: js/FlowBlocks.js:927 -#: js/FlowBlocks.js:990 -msgid "then" -msgstr "नंतर" +#: js/blocks/NumberBlocks.js:922 +msgid "min" +msgstr "किमान / कमीत कमी" -#: js/FlowBlocks.js:927 -msgid "else" -msgstr "इतर" +#: js/blocks/NumberBlocks.js:922 +msgid "max" +msgstr "कमाल / जस्तिस जास्त" -#: js/FlowBlocks.js:1025 -msgid "The Forever block will repeat the contained blocks forever." +#: js/blocks/NumberBlocks.js:986 +msgid "The Number block holds a number." msgstr "" -#: js/FlowBlocks.js:1037 -msgid "forever" -msgstr "कायमचे" - -#: js/FlowBlocks.js:1073 -msgid "The Repeat block will repeat the contained blocks." +#: js/blocks/OrnamentBlocks.js:32 +msgid "staccato factor" msgstr "" -#: js/FlowBlocks.js:1075 -msgid "In this example the note will be played 4 times." +#: js/blocks/OrnamentBlocks.js:108 +msgid "slur factor" msgstr "" -#: js/FlowBlocks.js:1083 -msgid "repeat" -msgstr "पुन्हा" - -#: js/FlowBlocks.js:1123 -msgid "duplicate factor" +#: js/blocks/OrnamentBlocks.js:217 +#: js/blocks/OrnamentBlocks.js:309 +#.TRANS: the neighbor refers to a neighboring note, e.g., D is a neighbor of C +msgid "neighbor" msgstr "" -#: js/PitchBlocks.js:39 -#: js/musicutils.js:722 -#: js/musicutils.js:1117 -#: js/synthutils.js:112 -#.TRANS: square wave -msgid "square" +#: js/blocks/OrnamentBlocks.js:293 +msgid "The Neighbor block rapidly switches between neighboring pitches." msgstr "" -#: js/PitchBlocks.js:62 -#: js/ToneBlocks.js:39 -#: js/musicutils.js:723 -#: js/musicutils.js:1118 -#: js/synthutils.js:116 -#.TRANS: triangle wave -msgid "triangle" +#: js/blocks/OrnamentBlocks.js:364 +msgid "glide" msgstr "" -#: js/PitchBlocks.js:85 -#: js/musicutils.js:721 -#: js/musicutils.js:1116 -#: js/synthutils.js:110 -#.TRANS: sine wave -msgid "sine" +#: js/blocks/OrnamentBlocks.js:479 +#: js/blocks/OrnamentBlocks.js:643 +msgid "slur" msgstr "" -#: js/PitchBlocks.js:108 -#: js/musicutils.js:724 -#: js/musicutils.js:1119 -#: js/synthutils.js:114 -#.TRANS: sawtooth wave -msgid "sawtooth" +#: js/blocks/OrnamentBlocks.js:558 +#: js/blocks/OrnamentBlocks.js:710 +#.TRANS: play each note sharply detached from the others +msgid "staccato" msgstr "" -#: js/PitchBlocks.js:141 -#.TRANS: musical transposition (adjustment of pitch up or down) -msgid "transposition" +#: js/blocks/RhythmBlocks.js:182 +#: js/blocks/RhythmBlocks.js:1086 +#: js/blocks/RhythmBlocks.js:1162 +msgid "Note value must be greater than 0." msgstr "" -#: js/PitchBlocks.js:168 -#.TRANS: step down one note in current musical scale -msgid "scalar step down" +#: js/blocks/RhythmBlocks.js:215 +#: js/blocks/RhythmBlocks.js:278 +#: js/blocks/RhythmBlocks.js:350 +#.TRANS: swing is a rhythmic variation that emphasises the offbeat +msgid "swing" msgstr "" -#: js/PitchBlocks.js:172 -msgid "The Scalar step down block returns the number of semi-tones down to the previous note in the current key and mode." +#: js/blocks/RhythmBlocks.js:355 +#.TRANS: the amount to shift to the offbeat note +msgid "swing value" msgstr "" -#: js/PitchBlocks.js:190 -#.TRANS: step up one note in current musical scale -msgid "scalar step up" +#: js/blocks/RhythmBlocks.js:419 +msgid "The Skip notes block will cause notes to be skipped." msgstr "" -#: js/PitchBlocks.js:194 -msgid "The Scalar step up block returns the number of semi-tones up to the next note in the current key and mode." +#: js/blocks/RhythmBlocks.js:427 +#.TRANS: substitute rests on notes being skipped +msgid "skip notes" msgstr "" -#: js/PitchBlocks.js:212 -#.TRANS: the change measured in half-steps between the current pitch and the previous pitch -msgid "change in pitch" +#: js/blocks/RhythmBlocks.js:489 +#.TRANS: speed up note duration by some factor, e.g. convert 1/4 to 1/8 notes by using a factor of 2 +msgid "multiply note value" msgstr "" -#: js/PitchBlocks.js:216 -msgid "The Change in pitch block is the difference (in half steps) between the current pitch being played and the previous pitch played." +#: js/blocks/RhythmBlocks.js:542 +msgid "The Tie block works on pairs of notes, combining them into one note." msgstr "" -#: js/PitchBlocks.js:243 -#.TRANS: the change measured in scale-steps between the current pitch and the previous pitch -msgid "scalar change in pitch" +#: js/blocks/RhythmBlocks.js:550 +#.TRANS: tie notes together into one longer note +msgid "tie" msgstr "" -#: js/PitchBlocks.js:250 -#: js/PitchBlocks.js:432 -#: js/PitchBlocks.js:1629 -#: js/DictActions.js:89 -#: js/temperament.js:477 -#: js/temperament.js:481 -#: js/temperament.js:714 -#.TRANS: convert current note to piano key (1-88) -#.TRANS: a mapping of pitch to the 88 piano keys -msgid "pitch number" +#: js/blocks/RhythmBlocks.js:591 +#: js/blocks/RhythmBlocks.js:671 +#.TRANS: a dotted note is played for 1.5x its value, e.g., 1/8. --> 3/16 +msgid "dot" msgstr "" -#: js/PitchBlocks.js:256 -msgid "The Pitch number block is the value of the pitch of the note currently being played." +#: js/blocks/RhythmBlocks.js:619 +#: js/turtleactions/RhythmActions.js:221 +msgid "An argument of -1 results in a note value of 0." msgstr "" -#: js/PitchBlocks.js:329 -#: js/PitchBlocks.js:433 -#.TRANS: the current pitch expressed in Hertz -msgid "pitch in hertz" +#: js/blocks/RhythmBlocks.js:661 +msgid "The Dot block extends the duration of a note by 50%." msgstr "" -#: js/PitchBlocks.js:334 -msgid "The Pitch in Hertz block is the value in Hertz of the pitch of the note currently being played." +#: js/blocks/RhythmBlocks.js:663 +msgid "Eg a dotted quarter note will play for 3/8 (1/4 + 1/8) of a beat." msgstr "" -#: js/PitchBlocks.js:367 -#: js/DictActions.js:87 -msgid "current pitch" +#: js/blocks/RhythmBlocks.js:765 +#.TRANS: Japanese only: note value block for drum +msgid "note value drum" msgstr "" -#: js/PitchBlocks.js:373 -msgid "The Current Pitch block is used with the Pitch Converter block. In the example above, current pitch, sol 4, is displayed as 392 hertz." +#: js/blocks/RhythmBlocks.js:829 +msgid "392 hertz" msgstr "" -#: js/PitchBlocks.js:410 -msgid "This block converts the pitch value of the last note played into different formats such as hertz, letter name, pitch number, et al." +#: js/blocks/RhythmBlocks.js:1119 +msgid "The Note block is a container for one or more Pitch blocks." msgstr "" -#: js/PitchBlocks.js:434 -msgid "alphabet" +#: js/blocks/RhythmBlocks.js:1121 +msgid "The Note block specifies the duration (note value) of its contents." msgstr "" -#: js/PitchBlocks.js:436 -#.TRANS: Translate as "alphabet class" -msgid "letter class" -msgstr "" +#: js/blocks/RhythmBlocks.js:1128 +#: js/blocks/PitchBlocks.js:974 +#: js/blocks/PitchBlocks.js:1007 +#: js/blocks/ProgramBlocks.js:1186 +#: js/blocks/ProgramBlocks.js:1227 +#: js/widgets/status.js:190 +#: js/widgets/temperament.js:464 +#: js/widgets/temperament.js:486 +#: js/widgets/temperament.js:496 +#: js/widgets/temperament.js:617 +#: plugins/rodi.rtp:192 +#.TRANS: a musical note consisting of pitch and duration +msgid "note" +msgstr "नोंद" -#: js/PitchBlocks.js:437 -msgid "solfege class" +#: js/blocks/RhythmBlocks.js:1130 +msgid "value2" msgstr "" -#: js/PitchBlocks.js:438 -msgid "staff y" +#: js/blocks/RhythmBlocks.js:1200 +msgid "define frequency" msgstr "" -#: js/PitchBlocks.js:439 -msgid "solfege syllable" +#: js/blocks/RhythmBlocks.js:1218 +#: js/widgets/temperament.js:787 +#: js/widgets/temperament.js:1587 +msgid "octave space" msgstr "" -#: js/PitchBlocks.js:440 -msgid "pitch class" +#: js/blocks/SensorsBlocks.js:36 +msgid "The Input block prompts for keyboard input." msgstr "" -#: js/PitchBlocks.js:441 -msgid "scalar class" +#: js/blocks/SensorsBlocks.js:46 +msgid "input" msgstr "" -#: js/PitchBlocks.js:443 -msgid "nth degree" +#: js/blocks/SensorsBlocks.js:64 +msgid "Input a value" msgstr "" -#: js/PitchBlocks.js:444 -msgid "pitch to shade" +#: js/blocks/SensorsBlocks.js:126 +msgid "input value" msgstr "" -#: js/PitchBlocks.js:445 -msgid "pitch to color" +#: js/blocks/SensorsBlocks.js:131 +msgid "The Input-value block stores the input." msgstr "" -#: js/PitchBlocks.js:629 -#: js/musickeyboard.js:565 -#.TRANS: MIDI is a technical standard for electronic music -msgid "MIDI" -msgstr "" +#: js/blocks/SensorsBlocks.js:238 +msgid "loudness" +msgstr "जॊरत" -#: js/PitchBlocks.js:642 -#.TRANS: set an offset associated with the numeric piano keyboard mapping -msgid "set pitch number offset" +#: js/blocks/SensorsBlocks.js:245 +msgid "The Loudness block returns the volume detected by the microphone." msgstr "" -#: js/PitchBlocks.js:645 -msgid "The Set pitch number offset block is used to set the offset for mapping pitch numbers to pitch and octave." +#: js/blocks/SensorsBlocks.js:300 +msgid "click" msgstr "" -#: js/PitchBlocks.js:679 -#.TRANS: convert piano key number (1-88) to pitch -msgid "number to pitch" +#: js/blocks/SensorsBlocks.js:306 +msgid "The Click block triggers an event if a mouse has been clicked." msgstr "" -#: js/PitchBlocks.js:682 -msgid "The Number to pitch block will convert a pitch number to a pich name." +#: js/blocks/SensorsBlocks.js:313 +msgid "The Click block triggers an event if a turtle has been clicked." msgstr "" -#: js/PitchBlocks.js:715 -#.TRANS: convert piano key number (1-88) to octave -msgid "number to octave" +#: js/blocks/SensorsBlocks.js:342 +msgid "cursor over" msgstr "" -#: js/PitchBlocks.js:717 -msgid "The Number to octave block will convert a pitch number to an octave." +#: js/blocks/SensorsBlocks.js:387 +msgid "cursor out" msgstr "" -#: js/PitchBlocks.js:726 -msgid "y to pitch" +#: js/blocks/SensorsBlocks.js:433 +msgid "cursor button down" msgstr "" -#: js/PitchBlocks.js:729 -msgid "Y to pitch block will convert a staff y position to corresponding pitch notation." +#: js/blocks/SensorsBlocks.js:477 +msgid "cursor button up" msgstr "" -#: js/PitchBlocks.js:841 -msgid "accidental selector" +#: js/blocks/SensorsBlocks.js:521 +#: js/blocks/PenBlocks.js:48 +#: plugins/rodi.rtp:219 +msgid "blue" msgstr "" -#: js/PitchBlocks.js:844 -msgid "The Accidental selector block is used to choose between double-sharp, sharp, natural, flat, and double-flat." +#: js/blocks/SensorsBlocks.js:577 +#: js/blocks/PenBlocks.js:64 +#: plugins/rodi.rtp:218 +msgid "green" msgstr "" -#: js/PitchBlocks.js:858 -msgid "Pitch can be specified in terms of ni dha pa ma ga re sa." +#: js/blocks/SensorsBlocks.js:633 +#: js/blocks/PenBlocks.js:112 +#: plugins/rodi.rtp:217 +msgid "red" msgstr "" -#: js/PitchBlocks.js:872 -msgid "Pitch can be specified in terms of C D E F G A B." +#: js/blocks/SensorsBlocks.js:638 +msgid "The Get red block returns the red component of the pixel under the mouse." msgstr "" -#: js/PitchBlocks.js:883 -msgid "solfege" +#: js/blocks/SensorsBlocks.js:644 +msgid "The Get red block returns the red component of the pixel under the turtle." msgstr "" -#: js/PitchBlocks.js:886 -msgid "Pitch can be specified in terms of do re mi fa sol la ti." -msgstr "" +#: js/blocks/SensorsBlocks.js:685 +#: plugins/rodi.rtp:216 +msgid "pixel color" +msgstr "पिक्सेल रंग" -#: js/PitchBlocks.js:920 -msgid "The Invert block rotates any contained notes around a target note." +#: js/blocks/SensorsBlocks.js:690 +msgid "The Get pixel block returns the color of the pixel under the mouse." msgstr "" -#: js/PitchBlocks.js:927 -#.TRANS: pitch inversion rotates a pitch around another pitch -msgid "invert" +#: js/blocks/SensorsBlocks.js:696 +msgid "The Get pixel block returns the color of the pixel under the turtle." msgstr "" -#: js/PitchBlocks.js:929 -#: js/PitchBlocks.js:935 -#: js/PitchActions.js:727 -#: js/musicutils.js:726 -#: js/musicutils.js:902 -#.TRANS: invert based on even or odd number or musical scale -#.TRANS: even numbers -msgid "even" -msgstr "" +#: js/blocks/SensorsBlocks.js:758 +msgid "time" +msgstr "वेळ" -#: js/PitchBlocks.js:935 -#: js/PitchActions.js:729 -#: js/musicutils.js:728 -#: js/musicutils.js:903 -#.TRANS: odd numbers -msgid "odd" +#: js/blocks/SensorsBlocks.js:804 +msgid "cursor y" msgstr "" -#: js/PitchBlocks.js:935 -#: js/PitchActions.js:731 -#: js/musicutils.js:729 -#: js/musicutils.js:904 -msgid "scalar" +#: js/blocks/SensorsBlocks.js:809 +msgid "The Cursor Y block returns the vertical position of the mouse." msgstr "" -#: js/PitchBlocks.js:966 -#.TRANS: pitch inversion rotates a pitch around another pitch (odd number) -msgid "invert (odd)" +#: js/blocks/SensorsBlocks.js:845 +msgid "cursor x" msgstr "" -#: js/PitchBlocks.js:999 -#.TRANS: pitch inversion rotates a pitch around another pitch (even number) -msgid "invert (even)" +#: js/blocks/SensorsBlocks.js:850 +msgid "The Cursor X block returns the horizontal position of the mouse." msgstr "" -#: js/PitchBlocks.js:1020 -#.TRANS: register is the octave of the current pitch -msgid "register" -msgstr "" +#: js/blocks/SensorsBlocks.js:886 +msgid "mouse button" +msgstr "माऊस बटण" -#: js/PitchBlocks.js:1024 -msgid "The Register block provides an easy way to modify the register (octave) of the notes that follow it." +#: js/blocks/SensorsBlocks.js:888 +msgid "The Mouse-button block returns True if the mouse button is pressed." msgstr "" -#: js/PitchBlocks.js:1074 -msgid "The Semi-tone transposition block will shift the pitches contained inside Note blocks up (or down) by half steps." +#: js/blocks/SensorsBlocks.js:934 +msgid "to ASCII" msgstr "" -#: js/PitchBlocks.js:1076 -msgid "In the example shown above, sol is shifted up to sol#." +#: js/blocks/SensorsBlocks.js:938 +msgid "The To ASCII block converts numbers to letters." msgstr "" -#: js/PitchBlocks.js:1082 -#.TRANS: adjust the amount of shift (up or down) of a pitch -msgid "semi-tone transpose" +#: js/blocks/SensorsBlocks.js:1005 +msgid "The Keyboard block returns computer keyboard input." msgstr "" -#: js/PitchBlocks.js:1115 -msgid "The Transpose by Ratio block will shift the pitches contained inside Note blocks up (or down) by a ratio" +#: js/blocks/RhythmBlockPaletteBlocks.js:50 +#: js/blocks/RhythmBlockPaletteBlocks.js:233 +#.TRANS: rhythm block +#.TRANS: translate "rhythm1" as rhythm +msgid "rhythm1" msgstr "" -#: js/PitchBlocks.js:1121 -#.TRANS: adjust the amount of shift (up or down) of a pitch -msgid "transpose by ratio" +#: js/blocks/RhythmBlockPaletteBlocks.js:70 +#: js/blocks/RhythmBlockPaletteBlocks.js:252 +#: js/blocks/RhythmBlockPaletteBlocks.js:485 +#: js/blocks/RhythmBlockPaletteBlocks.js:554 +#: js/blocks/RhythmBlockPaletteBlocks.js:875 +msgid "number of notes" msgstr "" -#: js/PitchBlocks.js:1204 -#.TRANS: down sixth means the note is five scale degrees below current note -msgid "down sixth" +#: js/blocks/RhythmBlockPaletteBlocks.js:126 +msgid "polyphonic rhythm" msgstr "" -#: js/PitchBlocks.js:1223 -#.TRANS: down third means the note is two scale degrees below current note -msgid "down third" +#: js/blocks/RhythmBlockPaletteBlocks.js:219 +msgid "The Rhythm block is used to generate rhythm patterns." msgstr "" -#: js/PitchBlocks.js:1242 -#.TRANS: seventh means the note is the six scale degrees above current note -msgid "seventh" +#: js/blocks/RhythmBlockPaletteBlocks.js:280 +msgid "1/64 note" msgstr "" -#: js/PitchBlocks.js:1261 -#.TRANS: sixth means the note is the five scale degrees above current note -msgid "sixth" +#: js/blocks/RhythmBlockPaletteBlocks.js:304 +msgid "1/32 note" msgstr "" -#: js/PitchBlocks.js:1280 -#.TRANS: fifth means the note is the four scale degrees above current note -msgid "fifth" +#: js/blocks/RhythmBlockPaletteBlocks.js:332 +msgid "1/16 note" msgstr "" -#: js/PitchBlocks.js:1300 -#.TRANS: fourth means the note is three scale degrees above current note -msgid "fourth" +#: js/blocks/RhythmBlockPaletteBlocks.js:360 +msgid "eighth note" msgstr "" -#: js/PitchBlocks.js:1319 -#.TRANS: third means the note is two scale degrees above current note -msgid "third" +#: js/blocks/RhythmBlockPaletteBlocks.js:388 +msgid "quarter note" msgstr "" -#: js/PitchBlocks.js:1338 -#.TRANS: second means the note is one scale degree above current note -msgid "second" +#: js/blocks/RhythmBlockPaletteBlocks.js:416 +msgid "half note" msgstr "" -#: js/PitchBlocks.js:1379 -msgid "The Scalar transposition block will shift the pitches contained inside Note blocks up (or down) the scale." +#: js/blocks/RhythmBlockPaletteBlocks.js:444 +msgid "whole note" msgstr "" -#: js/PitchBlocks.js:1381 -msgid "In the example shown above, sol is shifted up to la." +#: js/blocks/RhythmBlockPaletteBlocks.js:482 +#: js/blocks/RhythmBlockPaletteBlocks.js:551 +#: js/blocks/RhythmBlockPaletteBlocks.js:602 +#.TRANS: A tuplet is a note value divided into irregular time values. +msgid "tuplet" msgstr "" -#: js/PitchBlocks.js:1388 -#.TRANS: adjust the amount of shift (up or down) of a pitch by musical scale (scalar) steps -msgid "scalar transpose" +#: js/blocks/RhythmBlockPaletteBlocks.js:768 +msgid "septuplet" msgstr "" -#: js/PitchBlocks.js:1423 -msgid "The Accidental block is used to create sharps and flats" +#: js/blocks/RhythmBlockPaletteBlocks.js:796 +msgid "quintuplet" msgstr "" -#: js/PitchBlocks.js:1430 -#.TRANS: An accidental is a modification to a pitch, e.g., sharp or flat. -msgid "accidental override" +#: js/blocks/RhythmBlockPaletteBlocks.js:824 +msgid "triplet" msgstr "" -#: js/PitchBlocks.js:1543 -msgid "The Hertz block (in combination with a Number block) will play a sound at the specified frequency." +#: js/blocks/RhythmBlockPaletteBlocks.js:851 +msgid "simple tuplet" msgstr "" -#: js/PitchBlocks.js:1633 -msgid "The Pitch Number block will play a pitch associated by its number, e.g. 0 for C and 7 for G." +#: js/blocks/RhythmBlockPaletteBlocks.js:861 +msgid "Tuplets are a collection of notes that get scaled to a specific duration." msgstr "" -#: js/PitchBlocks.js:1665 -#: js/PitchBlocks.js:1707 -#.TRANS: a numeric mapping of the notes in an octave based on the musical mode -#.TRANS: a numeric mapping of the notes in an octave based on the musical mode -msgid "nth modal pitch" +#: js/blocks/DrumBlocks.js:59 +msgid "The Noise name block is used to select a noise synthesizer." msgstr "" -#: js/PitchBlocks.js:1668 -msgid "n^th Modal Pitch takes the pattern of pitches in semitones for a mode and makes each point a degree of the mode," +#: js/blocks/DrumBlocks.js:102 +msgid "The Drum name block is used to select a drum." msgstr "" -#: js/PitchBlocks.js:1670 -msgid "starting from 1 and regardless of tonal framework (i.e. not always 8 notes in the octave)" +#: js/blocks/DrumBlocks.js:146 +msgid "The Effects name block is used to select a sound effect." msgstr "" -#: js/PitchBlocks.js:1711 -msgid "N^th Modal Pitch takes a number as an input as the n^th degree for the given mode. 0 is the first position, 1 is the second, -1 is the note before the first etc." +#: js/blocks/DrumBlocks.js:163 +msgid "noise" msgstr "" -#: js/PitchBlocks.js:1713 -msgid "The pitches change according to the mode specified without any need for respellings." +#: js/blocks/DrumBlocks.js:177 +msgid "The Play noise block will generate white, pink, or brown noise." msgstr "" -#: js/PitchBlocks.js:1752 -msgid "Scale Degree is a common convention in music. Scale Degree offers seven possible positions in the scale (1-7) and can be modified via accidentals." +#: js/blocks/DrumBlocks.js:317 +msgid "Replace every instance of a pitch with a drum sound." msgstr "" -#: js/PitchBlocks.js:1754 -msgid "Scale Degree 1 is always the first pitch in a given scale, regardless of octave." +#: js/blocks/DrumBlocks.js:328 +#.TRANS: map a pitch to a drum sound +msgid "map pitch to drum" msgstr "" -#: js/PitchBlocks.js:1776 -#.TRANS: step some number of notes in current musical scale -msgid "scalar step" +#: js/blocks/DrumBlocks.js:395 +msgid "In the example above, a kick drum sound will be played instead of sol." msgstr "" -#: js/PitchBlocks.js:1781 -msgid "The Scalar Step block (in combination with a Number block) will play the next pitch in a scale," +#: js/blocks/DrumBlocks.js:407 +#.TRANS: set the current drum sound for playback +msgid "set drum" msgstr "" -#: js/PitchBlocks.js:1783 -msgid "eg if the last note played was sol, Scalar Step 1 will play la." +#: js/blocks/DrumBlocks.js:451 +msgid "sound effect" msgstr "" -#: js/PitchBlocks.js:1818 -msgid "The Pitch block specifies the pitch name and octave of a note that together determine the frequency of the note." +#: js/blocks/DrumBlocks.js:489 +msgid "You can use multiple Drum blocks within a Note block." msgstr "" -#: js/GraphicsBlocks.js:46 -#: js/DictActions.js:77 -#: js/DictActions.js:155 -#: js/DictActions.js:189 +#: js/blocks/GraphicsBlocks.js:46 +#: js/turtleactions/DictActions.js:77 +#: js/turtleactions/DictActions.js:144 +#: js/turtleactions/DictActions.js:173 msgid "heading" msgstr "शिर्षक" -#: js/GraphicsBlocks.js:56 +#: js/blocks/GraphicsBlocks.js:56 msgid "The Heading block returns the orientation of the mouse." msgstr "" -#: js/GraphicsBlocks.js:62 +#: js/blocks/GraphicsBlocks.js:62 msgid "The Heading block returns the orientation of the turtle." msgstr "" -#: js/GraphicsBlocks.js:133 +#: js/blocks/GraphicsBlocks.js:133 msgid "The Y block returns the vertical position of the mouse." msgstr "" -#: js/GraphicsBlocks.js:140 +#: js/blocks/GraphicsBlocks.js:140 msgid "The Y block returns the vertical position of the turtle." msgstr "" -#: js/GraphicsBlocks.js:149 +#: js/blocks/GraphicsBlocks.js:149 msgid "y3" msgstr "" -#: js/GraphicsBlocks.js:219 +#: js/blocks/GraphicsBlocks.js:219 msgid "The X block returns the horizontal position of the mouse." msgstr "" -#: js/GraphicsBlocks.js:226 +#: js/blocks/GraphicsBlocks.js:226 msgid "The X block returns the horizontal position of the turtle." msgstr "" -#: js/GraphicsBlocks.js:235 +#: js/blocks/GraphicsBlocks.js:235 msgid "x3" msgstr "" -#: js/GraphicsBlocks.js:295 +#: js/blocks/GraphicsBlocks.js:295 msgid "scroll xy" msgstr "" -#: js/GraphicsBlocks.js:303 +#: js/blocks/GraphicsBlocks.js:303 msgid "The Scroll XY block moves the canvas." msgstr "" -#: js/GraphicsBlocks.js:313 +#: js/blocks/GraphicsBlocks.js:313 msgid "x2" msgstr "" -#: js/GraphicsBlocks.js:313 +#: js/blocks/GraphicsBlocks.js:313 msgid "y2" msgstr "" -#: js/GraphicsBlocks.js:373 -#: js/temperament.js:213 -#: js/temperament.js:241 +#: js/blocks/GraphicsBlocks.js:373 +#: js/widgets/temperament.js:319 +#: js/widgets/temperament.js:347 msgid "clear" msgstr "स्वच्छ" -#: js/GraphicsBlocks.js:426 +#: js/blocks/GraphicsBlocks.js:426 msgid "The Control-point 2 block sets the second control point for the Bezier curve." msgstr "" -#: js/GraphicsBlocks.js:433 +#: js/blocks/GraphicsBlocks.js:433 msgid "control point 2" msgstr "" -#: js/GraphicsBlocks.js:436 -#: js/GraphicsBlocks.js:487 -#: js/GraphicsBlocks.js:534 -#: js/GraphicsBlocks.js:750 +#: js/blocks/GraphicsBlocks.js:436 +#: js/blocks/GraphicsBlocks.js:487 +#: js/blocks/GraphicsBlocks.js:534 +#: js/blocks/GraphicsBlocks.js:750 msgid "x1" msgstr "" -#: js/GraphicsBlocks.js:436 -#: js/GraphicsBlocks.js:487 -#: js/GraphicsBlocks.js:534 -#: js/GraphicsBlocks.js:750 +#: js/blocks/GraphicsBlocks.js:436 +#: js/blocks/GraphicsBlocks.js:487 +#: js/blocks/GraphicsBlocks.js:534 +#: js/blocks/GraphicsBlocks.js:750 msgid "y1" msgstr "" -#: js/GraphicsBlocks.js:477 +#: js/blocks/GraphicsBlocks.js:477 msgid "The Control-point 1 block sets the first control point for the Bezier curve." msgstr "" -#: js/GraphicsBlocks.js:484 +#: js/blocks/GraphicsBlocks.js:484 msgid "control point 1" msgstr "" -#: js/GraphicsBlocks.js:527 +#: js/blocks/GraphicsBlocks.js:527 msgid "The Bezier block draws a Bezier curve." msgstr "" -#: js/GraphicsBlocks.js:531 +#: js/blocks/GraphicsBlocks.js:531 msgid "bezier" msgstr "" -#: js/GraphicsBlocks.js:592 +#: js/blocks/GraphicsBlocks.js:592 msgid "The Arc block moves the turtle in an arc." msgstr "" -#: js/GraphicsBlocks.js:600 +#: js/blocks/GraphicsBlocks.js:600 msgid "arc" msgstr "कंस" -#: js/GraphicsBlocks.js:603 +#: js/blocks/GraphicsBlocks.js:603 msgid "angle" msgstr "कोन" -#: js/GraphicsBlocks.js:603 +#: js/blocks/GraphicsBlocks.js:603 msgid "radius" msgstr "त्रिज्या" -#: js/GraphicsBlocks.js:620 -#: js/GraphicsBlocks.js:767 -#: js/GraphicsBlocks.js:1010 -#: js/GraphicsBlocks.js:1093 +#: js/blocks/GraphicsBlocks.js:620 +#: js/blocks/GraphicsBlocks.js:767 +#: js/blocks/GraphicsBlocks.js:1010 +#: js/blocks/GraphicsBlocks.js:1093 msgid "Value must be within -5000 to 5000 when Wrap Mode is off." msgstr "" -#: js/GraphicsBlocks.js:622 -#: js/GraphicsBlocks.js:769 -#: js/GraphicsBlocks.js:1012 -#: js/GraphicsBlocks.js:1095 +#: js/blocks/GraphicsBlocks.js:622 +#: js/blocks/GraphicsBlocks.js:769 +#: js/blocks/GraphicsBlocks.js:1012 +#: js/blocks/GraphicsBlocks.js:1095 msgid "Value must be within -20000 to 20000 when Wrap Mode is on." msgstr "" -#: js/GraphicsBlocks.js:660 +#: js/blocks/GraphicsBlocks.js:660 msgid "set heading" msgstr "शीर्षक संच करा" -#: js/GraphicsBlocks.js:673 +#: js/blocks/GraphicsBlocks.js:673 msgid "The Set heading block sets the heading of the turtle." msgstr "" -#: js/GraphicsBlocks.js:733 +#: js/blocks/GraphicsBlocks.js:733 msgid "The Set XY block moves the mouse to a specific position on the screen." msgstr "" -#: js/GraphicsBlocks.js:739 +#: js/blocks/GraphicsBlocks.js:739 msgid "The Set XY block moves the turtle to a specific position on the screen." msgstr "" -#: js/GraphicsBlocks.js:747 +#: js/blocks/GraphicsBlocks.js:747 msgid "set xy" msgstr "संच xy" -#: js/GraphicsBlocks.js:819 +#: js/blocks/GraphicsBlocks.js:819 msgid "The Right block turns the mouse to the right." msgstr "" -#: js/GraphicsBlocks.js:826 +#: js/blocks/GraphicsBlocks.js:826 msgid "The Right block turns the turtle to the right." msgstr "" -#: js/GraphicsBlocks.js:835 +#: js/blocks/GraphicsBlocks.js:835 msgid "right1" msgstr "" -#: js/GraphicsBlocks.js:835 +#: js/blocks/GraphicsBlocks.js:835 #: plugins/rodi.rtp:77 #: plugins/rodi.rtp:340 #: plugins/rodi.rtp:375 msgid "right" msgstr "उजव्या" -#: js/GraphicsBlocks.js:899 +#: js/blocks/GraphicsBlocks.js:899 msgid "The Left block turns the mouse to the left." msgstr "" -#: js/GraphicsBlocks.js:906 +#: js/blocks/GraphicsBlocks.js:906 msgid "The Left block turns the turtle to the left." msgstr "" -#: js/GraphicsBlocks.js:915 +#: js/blocks/GraphicsBlocks.js:915 msgid "left1" msgstr "" -#: js/GraphicsBlocks.js:915 +#: js/blocks/GraphicsBlocks.js:915 #: plugins/rodi.rtp:79 #: plugins/rodi.rtp:339 #: plugins/rodi.rtp:362 msgid "left" msgstr "डाव्या" -#: js/GraphicsBlocks.js:967 -#: js/temperament.js:734 -#: js/temperament.js:933 +#: js/blocks/GraphicsBlocks.js:967 +#: js/widgets/temperament.js:875 +#: js/widgets/temperament.js:1078 #: plugins/rodi.rtp:69 #: plugins/rodi.rtp:387 msgid "back" msgstr "परत" -#: js/GraphicsBlocks.js:976 +#: js/blocks/GraphicsBlocks.js:976 msgid "The Back block moves the mouse backward." msgstr "" -#: js/GraphicsBlocks.js:983 +#: js/blocks/GraphicsBlocks.js:983 msgid "The Back block moves the turtle backward." msgstr "" -#: js/GraphicsBlocks.js:1050 +#: js/blocks/GraphicsBlocks.js:1050 #: plugins/rodi.rtp:71 #: plugins/rodi.rtp:400 msgid "forward" msgstr "पुढे" -#: js/GraphicsBlocks.js:1059 +#: js/blocks/GraphicsBlocks.js:1059 msgid "The Forward block moves the mouse forward." msgstr "" -#: js/GraphicsBlocks.js:1066 +#: js/blocks/GraphicsBlocks.js:1066 msgid "The Forward block moves the turtle forward." msgstr "" -#: js/GraphicsBlocks.js:1154 -#: js/GraphicsBlocks.js:1172 +#: js/blocks/GraphicsBlocks.js:1154 +#: js/blocks/GraphicsBlocks.js:1172 msgid "wrap" msgstr "" -#: js/OrnamentBlocks.js:32 -msgid "staccato factor" -msgstr "" - -#: js/OrnamentBlocks.js:108 -msgid "slur factor" -msgstr "" - -#: js/OrnamentBlocks.js:217 -#: js/OrnamentBlocks.js:309 -#.TRANS: the neighbor refers to a neighboring note, e.g., D is a neighbor of C -msgid "neighbor" -msgstr "" - -#: js/OrnamentBlocks.js:293 -msgid "The Neighbor block rapidly switches between neighboring pitches." -msgstr "" - -#: js/OrnamentBlocks.js:364 -msgid "glide" -msgstr "" - -#: js/OrnamentBlocks.js:479 -#: js/OrnamentBlocks.js:643 -msgid "slur" -msgstr "" - -#: js/OrnamentBlocks.js:558 -#: js/OrnamentBlocks.js:710 -#.TRANS: play each note sharply detached from the others -msgid "staccato" -msgstr "" - -#: js/PenBlocks.js:24 +#: js/blocks/PenBlocks.js:30 msgid "purple" msgstr "" -#: js/PenBlocks.js:37 -#: js/SensorsBlocks.js:521 -#: plugins/rodi.rtp:219 -msgid "blue" -msgstr "" - -#: js/PenBlocks.js:50 -#: js/SensorsBlocks.js:577 -#: plugins/rodi.rtp:218 -msgid "green" -msgstr "" - -#: js/PenBlocks.js:63 +#: js/blocks/PenBlocks.js:80 msgid "yellow" msgstr "" -#: js/PenBlocks.js:76 +#: js/blocks/PenBlocks.js:96 #: plugins/nutrition.rtp:164 msgid "orange" msgstr "संत्रा" -#: js/PenBlocks.js:89 -#: js/SensorsBlocks.js:633 -#: plugins/rodi.rtp:217 -msgid "red" -msgstr "" - -#: js/PenBlocks.js:102 +#: js/blocks/PenBlocks.js:128 msgid "white" msgstr "" -#: js/PenBlocks.js:115 +#: js/blocks/PenBlocks.js:144 msgid "black" msgstr "" -#: js/PenBlocks.js:128 +#: js/blocks/PenBlocks.js:163 msgid "begin fill" msgstr "भरायची सुरुवात" -#: js/PenBlocks.js:143 +#: js/blocks/PenBlocks.js:190 msgid "end fill" msgstr "भरायची अंत" -#: js/PenBlocks.js:159 -#: js/PenBlocks.js:386 +#: js/blocks/PenBlocks.js:212 +#: js/blocks/PenBlocks.js:560 #.TRANS: set the background color msgid "background" msgstr "बैक्ग्राउन्ड / मागे / पार्श्वभूमी" -#: js/PenBlocks.js:206 -#: js/DictActions.js:71 -#: js/DictActions.js:149 -#: js/DictActions.js:186 +#: js/blocks/PenBlocks.js:274 +#: js/turtleactions/DictActions.js:71 +#: js/turtleactions/DictActions.js:138 +#: js/turtleactions/DictActions.js:170 msgid "grey" msgstr "राखाडी" -#: js/PenBlocks.js:210 +#: js/blocks/PenBlocks.js:282 msgid "The Grey block returns the current pen grey value." msgstr "" -#: js/PenBlocks.js:243 -#: js/DictActions.js:69 -#: js/DictActions.js:147 -#: js/DictActions.js:185 +#: js/blocks/PenBlocks.js:340 +#: js/turtleactions/DictActions.js:69 +#: js/turtleactions/DictActions.js:136 +#: js/turtleactions/DictActions.js:169 msgid "shade" msgstr "सावली" -#: js/PenBlocks.js:247 +#: js/blocks/PenBlocks.js:347 msgid "The Shade block returns the current pen shade value." msgstr "" -#: js/PenBlocks.js:280 -#: js/DictActions.js:67 -#: js/DictActions.js:145 -#: js/DictActions.js:184 +#: js/blocks/PenBlocks.js:405 +#: js/turtleactions/DictActions.js:67 +#: js/turtleactions/DictActions.js:134 +#: js/turtleactions/DictActions.js:168 msgid "color" msgstr "रंग" -#: js/PenBlocks.js:285 +#: js/blocks/PenBlocks.js:415 msgid "The Color block returns the current pen color." msgstr "" -#: js/PenBlocks.js:318 -#: js/DictActions.js:73 -#: js/DictActions.js:151 -#: js/DictActions.js:187 +#: js/blocks/PenBlocks.js:470 +#: js/turtleactions/DictActions.js:73 +#: js/turtleactions/DictActions.js:140 +#: js/turtleactions/DictActions.js:171 msgid "pen size" msgstr "पेन आकार" -#: js/PenBlocks.js:322 +#: js/blocks/PenBlocks.js:474 msgid "The Pen size block returns the current pen size value." msgstr "" -#: js/PenBlocks.js:355 +#: js/blocks/PenBlocks.js:513 msgid "set font" msgstr "" -#: js/PenBlocks.js:358 +#: js/blocks/PenBlocks.js:518 msgid "The Set font block sets the font used by the Show block." msgstr "" -#: js/PenBlocks.js:391 +#: js/blocks/PenBlocks.js:567 msgid "The Background block sets the window background color." msgstr "" -#: js/PenBlocks.js:408 +#: js/blocks/PenBlocks.js:598 msgid "The Hollow line block creates a line with a hollow center." msgstr "" -#: js/PenBlocks.js:415 +#: js/blocks/PenBlocks.js:606 #.TRANS: draw a line logo has a hollow space down its center msgid "hollow line" msgstr "" -#: js/PenBlocks.js:462 +#: js/blocks/PenBlocks.js:675 msgid "The Fill block fills in a shape with a color." msgstr "" -#: js/PenBlocks.js:470 +#: js/blocks/PenBlocks.js:684 #.TRANS: fill in as a solid color msgid "fill" msgstr "" -#: js/PenBlocks.js:527 +#: js/blocks/PenBlocks.js:761 #.TRANS: raise up the pen so logo it does not draw when it is moved msgid "pen up" msgstr "लोखणी वर करा" -#: js/PenBlocks.js:532 +#: js/blocks/PenBlocks.js:768 msgid "The Pen-up block raises the pen so that it does not draw." msgstr "" -#: js/PenBlocks.js:552 +#: js/blocks/PenBlocks.js:802 #.TRANS: put down the pen so logo it draws when it is moved msgid "pen down" msgstr "लोखणी खाली ठेवा" -#: js/PenBlocks.js:557 +#: js/blocks/PenBlocks.js:810 msgid "The Pen-down block lowers the pen so that it draws." msgstr "" -#: js/PenBlocks.js:577 +#: js/blocks/PenBlocks.js:844 #.TRANS: set the width of the line drawn by the pen msgid "set pen size" msgstr "लोखणीचे आकार संच करा" -#: js/PenBlocks.js:583 +#: js/blocks/PenBlocks.js:854 msgid "The Set-pen-size block changes the size of the pen." msgstr "" -#: js/PenBlocks.js:623 +#: js/blocks/PenBlocks.js:913 #.TRANS: set degree of translucence of the pen color msgid "set translucency" msgstr "" -#: js/PenBlocks.js:627 +#: js/blocks/PenBlocks.js:921 msgid "The Set translucency block changes the opacity of the pen." msgstr "" -#: js/PenBlocks.js:668 +#: js/blocks/PenBlocks.js:981 msgid "set hue" msgstr "" -#: js/PenBlocks.js:672 +#: js/blocks/PenBlocks.js:989 msgid "The Set hue block changes the color of the pen." msgstr "" -#: js/PenBlocks.js:711 +#: js/blocks/PenBlocks.js:1047 msgid "set shade" msgstr "रंगाचा दर्जा निश्चीत करा" -#: js/PenBlocks.js:717 +#: js/blocks/PenBlocks.js:1057 msgid "The Set-shade block changes the pen color from dark to light." msgstr "" -#: js/PenBlocks.js:757 +#: js/blocks/PenBlocks.js:1111 #.TRANS: set the level of vividness of the pen color msgid "set grey" msgstr "राखाडी संच करा" -#: js/PenBlocks.js:761 +#: js/blocks/PenBlocks.js:1119 msgid "The Set grey block changes the vividness of the pen color." msgstr "" -#: js/PenBlocks.js:800 +#: js/blocks/PenBlocks.js:1172 msgid "set color" msgstr "रंग संच करणे" -#: js/PenBlocks.js:806 +#: js/blocks/PenBlocks.js:1182 msgid "The Set-color block changes the pen color." msgstr "" -#: js/VolumeBlocks.js:35 -msgid "synth volume" -msgstr "" - -#: js/VolumeBlocks.js:39 -msgid "The Synth volume block returns the current volume of the current synthesizer." -msgstr "" - -#: js/VolumeBlocks.js:47 -#: js/musicutils.js:730 -#: js/synthutils.js:56 -#.TRANS: musical instrument -msgid "piano" -msgstr "" - -#: js/VolumeBlocks.js:105 -msgid "master volume" -msgstr "" - -#: js/VolumeBlocks.js:109 -msgid "The Master volume block returns the master volume." -msgstr "" - -#: js/VolumeBlocks.js:355 -#: js/VolumeBlocks.js:524 -msgid "set synth volume" -msgstr "" - -#: js/VolumeBlocks.js:362 -#: js/VolumeBlocks.js:545 -msgid "synth" -msgstr "" - -#: js/VolumeBlocks.js:403 -#: js/VolumeBlocks.js:577 -#: js/VolumeBlocks.js:740 -#: js/VolumeActions.js:173 -msgid "Setting volume to 0." -msgstr "" - -#: js/VolumeBlocks.js:440 -msgid "Synth not found" -msgstr "" - -#: js/VolumeBlocks.js:494 -msgid "set drum volume" -msgstr "" - -#: js/VolumeBlocks.js:530 -msgid "The Set synth volume block will change the volume of a particular synth," -msgstr "" - -#: js/VolumeBlocks.js:532 -msgid "eg guitar violin snare drum etc." -msgstr "" - -#: js/VolumeBlocks.js:534 -msgid "The default volume is 50." -msgstr "" - -#: js/VolumeBlocks.js:536 -msgid "The range is 0 for silence to 100 for full volume." -msgstr "" - -#: js/VolumeBlocks.js:597 -msgid "set panning" -msgstr "" - -#: js/VolumeBlocks.js:603 -msgid "The Set Panning block sets the panning for all synthesizers." -msgstr "" - -#: js/VolumeBlocks.js:625 -msgid "Warning: Sound is coming out from only the left or right side." -msgstr "" - -#: js/VolumeBlocks.js:647 -#: js/VolumeBlocks.js:695 -msgid "set master volume" -msgstr "" - -#: js/VolumeBlocks.js:653 -msgid "The Set master volume block sets the volume for all synthesizers." -msgstr "" - -#: js/VolumeBlocks.js:784 -msgid "The Set relative volume block changes the volume of the contained notes." -msgstr "" - -#: js/VolumeBlocks.js:791 -msgid "set relative volume" -msgstr "" - -#: js/VolumeBlocks.js:857 -msgid "decrescendo" -msgstr "" - -#: js/VolumeBlocks.js:921 -msgid "crescendo" -msgstr "" - -#: js/ToneBlocks.js:34 -msgid "oscillator" -msgstr "" - -#: js/ToneBlocks.js:44 -#: js/timbre.js:1562 -#.TRANS: Partials refers to the number of sine waves combined into the sound. -msgid "partials" -msgstr "" - -#: js/ToneBlocks.js:76 -msgid "You are adding multiple oscillator blocks." -msgstr "" - -#: js/ToneBlocks.js:144 -#: js/timbre.js:1225 -#.TRANS: a duo synthesizer combines a synth with a sequencer -msgid "duo synth" -msgstr "" - -#: js/ToneBlocks.js:149 -msgid "The Duo synth block is a duo-frequency modulator used to define a timbre." -msgstr "" - -#: js/ToneBlocks.js:157 -#: js/timbre.js:1476 -msgid "vibrato rate" -msgstr "" - -#: js/ToneBlocks.js:157 -msgid "vibrato intensity" -msgstr "" - -#: js/ToneBlocks.js:185 -#: js/timbre.js:1221 -#.TRANS: AM (amplitude modulation) synthesizer -msgid "AM synth" +#: js/blocks/PitchBlocks.js:141 +#.TRANS: musical transposition (adjustment of pitch up or down) +msgid "transposition" msgstr "" -#: js/ToneBlocks.js:189 -msgid "The AM synth block is an amplitude modulator used to define a timbre." +#: js/blocks/PitchBlocks.js:168 +#.TRANS: step down one note in current musical scale +msgid "scalar step down" msgstr "" -#: js/ToneBlocks.js:224 -#: js/timbre.js:1223 -#.TRANS: FM (frequency modulation) synthesizer -msgid "FM synth" +#: js/blocks/PitchBlocks.js:172 +msgid "The Scalar step down block returns the number of semi-tones down to the previous note in the current key and mode." msgstr "" -#: js/ToneBlocks.js:228 -msgid "The FM synth block is a frequency modulator used to define a timbre." +#: js/blocks/PitchBlocks.js:190 +#.TRANS: step up one note in current musical scale +msgid "scalar step up" msgstr "" -#: js/ToneBlocks.js:262 -msgid "partial" +#: js/blocks/PitchBlocks.js:194 +msgid "The Scalar step up block returns the number of semi-tones up to the next note in the current key and mode." msgstr "" -#: js/ToneBlocks.js:265 -msgid "The Partial block is used to specify a weight for a specific partial harmonic." +#: js/blocks/PitchBlocks.js:212 +#.TRANS: the change measured in half-steps between the current pitch and the previous pitch +msgid "change in pitch" msgstr "" -#: js/ToneBlocks.js:284 -#.TRANS: partials are weighted components in a harmonic series -msgid "Partial weight must be between 0 and 1." +#: js/blocks/PitchBlocks.js:216 +msgid "The Change in pitch block is the difference (in half steps) between the current pitch being played and the previous pitch played." msgstr "" -#: js/ToneBlocks.js:297 -#.TRANS: partials are weighted components in a harmonic series -msgid "Partial block should be used inside of a Weighted-partials block." +#: js/blocks/PitchBlocks.js:243 +#.TRANS: the change measured in scale-steps between the current pitch and the previous pitch +msgid "scalar change in pitch" msgstr "" -#: js/ToneBlocks.js:325 -#.TRANS: partials are weighted components in a harmonic series -msgid "weighted partials" +#: js/blocks/PitchBlocks.js:250 +#: js/blocks/PitchBlocks.js:432 +#: js/blocks/PitchBlocks.js:1667 +#: js/turtleactions/DictActions.js:89 +#: js/widgets/temperament.js:610 +#: js/widgets/temperament.js:614 +#: js/widgets/temperament.js:855 +#.TRANS: convert current note to piano key (1-88) +#.TRANS: a mapping of pitch to the 88 piano keys +msgid "pitch number" msgstr "" -#: js/ToneBlocks.js:383 -msgid "The Harmonic block will add harmonics to the contained notes." +#: js/blocks/PitchBlocks.js:256 +msgid "The Pitch number block is the value of the pitch of the note currently being played." msgstr "" -#: js/ToneBlocks.js:390 -#.TRANS: A harmonic is an overtone. -msgid "harmonic" +#: js/blocks/PitchBlocks.js:329 +#: js/blocks/PitchBlocks.js:433 +#.TRANS: the current pitch expressed in Hertz +msgid "pitch in hertz" msgstr "" -#: js/ToneBlocks.js:431 -msgid "The Distortion block adds distortion to the pitch." +#: js/blocks/PitchBlocks.js:334 +msgid "The Pitch in Hertz block is the value in Hertz of the pitch of the note currently being played." msgstr "" -#: js/ToneBlocks.js:438 -#: js/timbre.js:2100 -#.TRANS: distortion is an alteration in the sound -msgid "distortion" +#: js/blocks/PitchBlocks.js:367 +#: js/turtleactions/DictActions.js:87 +msgid "current pitch" msgstr "" -#: js/ToneBlocks.js:487 -msgid "The Tremolo block adds a wavering effect." +#: js/blocks/PitchBlocks.js:373 +msgid "The Current Pitch block is used with the Pitch Converter block. In the example above, current pitch, sol 4, is displayed as 392 hertz." msgstr "" -#: js/ToneBlocks.js:495 -#: js/timbre.js:2092 -#.TRANS: a wavering effect in a musical tone -msgid "tremolo" +#: js/blocks/PitchBlocks.js:410 +msgid "This block converts the pitch value of the last note played into different formats such as hertz, letter name, pitch number, et al." msgstr "" -#: js/ToneBlocks.js:500 -#: js/ToneBlocks.js:569 -#: js/ToneBlocks.js:630 -#: js/ToneBlocks.js:689 -#: js/timbre.js:2134 -#: js/timbre.js:2222 -#: js/timbre.js:2317 -#: js/timbre.js:2419 -#.TRANS: rate at which tremolo wavers -msgid "rate" +#: js/blocks/PitchBlocks.js:434 +msgid "alphabet" msgstr "" -#: js/ToneBlocks.js:502 -#: js/ToneBlocks.js:630 -#: js/timbre.js:2137 -#: js/timbre.js:2328 -#.TRANS: amplitude of tremolo waver -msgid "depth" +#: js/blocks/PitchBlocks.js:436 +#.TRANS: Translate as "alphabet class" +msgid "letter class" msgstr "" -#: js/ToneBlocks.js:559 -msgid "The Phaser block adds a sweeping sound." +#: js/blocks/PitchBlocks.js:437 +msgid "solfege class" msgstr "" -#: js/ToneBlocks.js:566 -#: js/timbre.js:2098 -#.TRANS: alter the phase of the sound -msgid "phaser" +#: js/blocks/PitchBlocks.js:438 +msgid "staff y" msgstr "" -#: js/ToneBlocks.js:569 -#: js/timbre.js:2422 -msgid "octaves" +#: js/blocks/PitchBlocks.js:439 +msgid "solfege syllable" msgstr "" -#: js/ToneBlocks.js:569 -#: js/timbre.js:2425 -msgid "base frequency" +#: js/blocks/PitchBlocks.js:440 +msgid "pitch class" msgstr "" -#: js/ToneBlocks.js:619 -msgid "The Chorus block adds a chorus effect." +#: js/blocks/PitchBlocks.js:441 +msgid "scalar class" msgstr "" -#: js/ToneBlocks.js:627 -#: js/timbre.js:2096 -#.TRANS: musical effect to simulate a choral sound -msgid "chorus" +#: js/blocks/PitchBlocks.js:443 +msgid "nth degree" msgstr "" -#: js/ToneBlocks.js:630 -msgid "delay" +#: js/blocks/PitchBlocks.js:444 +msgid "pitch to shade" msgstr "" -#: js/ToneBlocks.js:678 -msgid "The Vibrato block adds a rapid, slight variation in pitch." +#: js/blocks/PitchBlocks.js:445 +msgid "pitch to color" msgstr "" -#: js/ToneBlocks.js:686 -#: js/timbre.js:2094 -#.TRANS: a rapid, slight variation in pitch -msgid "vibrato" +#: js/blocks/PitchBlocks.js:629 +#: js/widgets/musickeyboard.js:735 +#.TRANS: MIDI is a technical standard for electronic music +msgid "MIDI" msgstr "" -#: js/ToneBlocks.js:689 -#: js/timbre.js:2221 -msgid "intensity" +#: js/blocks/PitchBlocks.js:642 +#.TRANS: set an offset associated with the numeric piano keyboard mapping +msgid "set pitch number offset" msgstr "" -#: js/ToneBlocks.js:733 -#.TRANS: select synthesizer -msgid "set synth" +#: js/blocks/PitchBlocks.js:645 +msgid "The Set pitch number offset block is used to set the offset for mapping pitch numbers to pitch and octave." msgstr "" -#: js/ToneBlocks.js:804 -msgid "synth name" +#: js/blocks/PitchBlocks.js:679 +#.TRANS: convert piano key number (1-88) to pitch +msgid "number to pitch" msgstr "" -#: js/ToneBlocks.js:842 -msgid "set default instrument" +#: js/blocks/PitchBlocks.js:682 +msgid "The Number to pitch block will convert a pitch number to a pich name." msgstr "" -#: js/ToneBlocks.js:895 -#: js/ToneBlocks.js:943 -#.TRANS: set the characteristics of a custom instrument -msgid "set instrument" +#: js/blocks/PitchBlocks.js:715 +#.TRANS: convert piano key number (1-88) to octave +msgid "number to octave" msgstr "" -#: js/ToneBlocks.js:898 -#: js/ToneBlocks.js:926 -#: js/ToneBlocks.js:932 -msgid "The Set instrument block selects a voice for the synthesizer," +#: js/blocks/PitchBlocks.js:717 +msgid "The Number to octave block will convert a pitch number to an octave." msgstr "" -#: js/ToneBlocks.js:900 -#: js/ToneBlocks.js:934 -msgid "eg guitar piano violin or cello." +#: js/blocks/PitchBlocks.js:726 +msgid "y to pitch" msgstr "" -#: js/ToneBlocks.js:1015 -msgid "Import a sound file to use as an instrument and set its pitch center." +#: js/blocks/PitchBlocks.js:729 +msgid "Y to pitch block will convert a staff y position to corresponding pitch notation." msgstr "" -#: js/ToneBlocks.js:1110 -msgid "Upload a sound file to connect with the sample block." +#: js/blocks/PitchBlocks.js:841 +msgid "accidental selector" msgstr "" -#: js/MeterBlocks.js:34 -#.TRANS: musical meter (time signature), e.g., 4:4 -msgid "current meter" +#: js/blocks/PitchBlocks.js:844 +msgid "The Accidental selector block is used to choose between double-sharp, sharp, natural, flat, and double-flat." msgstr "" -#: js/MeterBlocks.js:85 -#.TRANS: number of beats per minute -msgid "beat factor" +#: js/blocks/PitchBlocks.js:858 +msgid "Pitch can be specified in terms of ni dha pa ma ga re sa." msgstr "" -#: js/MeterBlocks.js:161 -msgid "The Beats per minute block returns the current beats per minute." +#: js/blocks/PitchBlocks.js:872 +msgid "Pitch can be specified in terms of C D E F G A B." msgstr "" -#: js/MeterBlocks.js:169 -#: js/status.js:152 -#.TRANS: number of beats played per minute -msgid "beats per minute2" +#: js/blocks/PitchBlocks.js:884 +msgid "solfege" msgstr "" -#: js/MeterBlocks.js:169 -#: js/MeterBlocks.js:1056 -#: js/MeterBlocks.js:1133 -#: js/MeterBlocks.js:1211 -#.TRANS: sets tempo by defining a beat and beats per minute -msgid "beats per minute" +#: js/blocks/PitchBlocks.js:887 +msgid "Pitch can be specified in terms of do re mi fa sol la ti." msgstr "" -#: js/MeterBlocks.js:233 -#.TRANS: count of current musical measure in meter -msgid "measure count" +#: js/blocks/PitchBlocks.js:922 +msgid "The Invert block rotates any contained notes around a target note." msgstr "" -#: js/MeterBlocks.js:241 -msgid "The Measure count block returns the current measure." +#: js/blocks/PitchBlocks.js:929 +#.TRANS: pitch inversion rotates a pitch around another pitch +msgid "invert" msgstr "" -#: js/MeterBlocks.js:290 -#.TRANS: count of current beat in the meter -msgid "beat count" +#: js/blocks/PitchBlocks.js:968 +#.TRANS: pitch inversion rotates a pitch around another pitch (odd number) +msgid "invert (odd)" msgstr "" -#: js/MeterBlocks.js:300 -#: js/MeterBlocks.js:311 -#: js/MeterBlocks.js:565 -#: js/MeterBlocks.js:576 -msgid "The Beat count block is the number of the current beat," +#: js/blocks/PitchBlocks.js:1001 +#.TRANS: pitch inversion rotates a pitch around another pitch (even number) +msgid "invert (even)" msgstr "" -#: js/MeterBlocks.js:313 -#: js/MeterBlocks.js:578 -msgid "eg 1, 2, 3, or 4." +#: js/blocks/PitchBlocks.js:1022 +#.TRANS: register is the octave of the current pitch +msgid "register" msgstr "" -#: js/MeterBlocks.js:368 -#.TRANS: count the number of notes -msgid "sum note values" +#: js/blocks/PitchBlocks.js:1026 +msgid "The Register block provides an easy way to modify the register (octave) of the notes that follow it." msgstr "" -#: js/MeterBlocks.js:376 -#: js/MeterBlocks.js:440 -msgid "The Note counter block can be used to count the number of contained notes." +#: js/blocks/PitchBlocks.js:1047 +#.TRANS: cents are units used to specify the ratio between pitches. There are 100 cents between successive notes. +msgid "50 cents" msgstr "" -#: js/MeterBlocks.js:432 -#.TRANS: count the number of notes -msgid "note counter" +#: js/blocks/PitchBlocks.js:1102 +msgid "The Semi-tone transposition block will shift the pitches contained inside Note blocks up (or down) by half steps." msgstr "" -#: js/MeterBlocks.js:496 -#.TRANS: number of whole notes that have been played -msgid "whole notes played" +#: js/blocks/PitchBlocks.js:1104 +msgid "In the example shown above, sol is shifted up to sol#." msgstr "" -#: js/MeterBlocks.js:505 -msgid "The Whole notes played block returns the total number of whole notes played." +#: js/blocks/PitchBlocks.js:1110 +#.TRANS: adjust the amount of shift (up or down) of a pitch +msgid "semi-tone transpose" msgstr "" -#: js/MeterBlocks.js:555 -#: js/DictActions.js:83 -#.TRANS: number of notes that have been played -msgid "notes played" +#: js/blocks/PitchBlocks.js:1143 +msgid "The Transpose by Ratio block will shift the pitches contained inside Note blocks up (or down) by a ratio" msgstr "" -#: js/MeterBlocks.js:653 -msgid "The No clock block decouples the notes from the master clock." +#: js/blocks/PitchBlocks.js:1149 +#.TRANS: adjust the amount of shift (up or down) of a pitch +msgid "transpose by ratio" msgstr "" -#: js/MeterBlocks.js:661 -#.TRANS: don't lock notes to master clock -msgid "no clock" +#: js/blocks/PitchBlocks.js:1232 +#.TRANS: down sixth means the note is five scale degrees below current note +msgid "down sixth" msgstr "" -#: js/MeterBlocks.js:700 -msgid "on weak beat do" +#: js/blocks/PitchBlocks.js:1251 +#.TRANS: down third means the note is two scale degrees below current note +msgid "down third" msgstr "" -#: js/MeterBlocks.js:705 -msgid "The On-weak-beat block lets you specify actions to take on weak (off) beats." +#: js/blocks/PitchBlocks.js:1270 +#.TRANS: seventh means the note is the six scale degrees above current note +msgid "seventh" msgstr "" -#: js/MeterBlocks.js:750 -msgid "on strong beat" +#: js/blocks/PitchBlocks.js:1289 +#.TRANS: sixth means the note is the five scale degrees above current note +msgid "sixth" msgstr "" -#: js/MeterBlocks.js:758 -msgid "The On-strong-beat block lets you specify actions to take on specified beats." +#: js/blocks/PitchBlocks.js:1308 +#.TRANS: fifth means the note is the four scale degrees above current note +msgid "fifth" msgstr "" -#: js/MeterBlocks.js:769 -msgid "beat" +#: js/blocks/PitchBlocks.js:1328 +#.TRANS: fourth means the note is three scale degrees above current note +msgid "fourth" msgstr "" -#: js/MeterBlocks.js:813 -msgid "on every beat do" +#: js/blocks/PitchBlocks.js:1347 +#.TRANS: third means the note is two scale degrees above current note +msgid "third" msgstr "" -#: js/MeterBlocks.js:821 -msgid "The On-every-beat block lets you specify actions to take on every beat." +#: js/blocks/PitchBlocks.js:1366 +#.TRANS: second means the note is one scale degree above current note +msgid "second" msgstr "" -#: js/MeterBlocks.js:874 -msgid "on every note do" +#: js/blocks/PitchBlocks.js:1407 +msgid "The Scalar transposition block will shift the pitches contained inside Note blocks up (or down) the scale." msgstr "" -#: js/MeterBlocks.js:882 -msgid "The On-every-note block lets you specify actions to take on every note." +#: js/blocks/PitchBlocks.js:1409 +msgid "In the example shown above, sol is shifted up to la." msgstr "" -#: js/MeterBlocks.js:928 -#: js/MeterBlocks.js:999 -#.TRANS: sets tempo by defining a beat and beats per minute -msgid "master beats per minute" +#: js/blocks/PitchBlocks.js:1416 +#.TRANS: adjust the amount of shift (up or down) of a pitch by musical scale (scalar) steps +msgid "scalar transpose" msgstr "" -#: js/MeterBlocks.js:952 -#: js/MeterBlocks.js:1078 -#: js/MeterBlocks.js:1135 -msgid "bpm" +#: js/blocks/PitchBlocks.js:1451 +msgid "The Accidental block is used to create sharps and flats" msgstr "" -#: js/MeterBlocks.js:952 -#: js/MeterBlocks.js:1078 -#: js/MeterBlocks.js:1135 -msgid "beat value" +#: js/blocks/PitchBlocks.js:1458 +#.TRANS: An accidental is a modification to a pitch, e.g., sharp or flat. +msgid "accidental override" msgstr "" -#: js/MeterBlocks.js:1024 -#: js/MeterBlocks.js:1167 -#: js/MeterBlocks.js:1241 -msgid "Beats per minute must be > 30." +#: js/blocks/PitchBlocks.js:1581 +msgid "The Hertz block (in combination with a Number block) will play a sound at the specified frequency." msgstr "" -#: js/MeterBlocks.js:1027 -#: js/MeterBlocks.js:1170 -#: js/MeterBlocks.js:1244 -msgid "Maximum beats per minute is 1000." +#: js/blocks/PitchBlocks.js:1671 +msgid "The Pitch Number block will play a pitch associated by its number, e.g. 0 for C and 7 for G." msgstr "" -#: js/MeterBlocks.js:1068 -msgid "The Beats per minute block sets the number of 1/4 notes per minute." +#: js/blocks/PitchBlocks.js:1703 +#: js/blocks/PitchBlocks.js:1745 +#.TRANS: a numeric mapping of the notes in an octave based on the musical mode +#.TRANS: a numeric mapping of the notes in an octave based on the musical mode +msgid "nth modal pitch" msgstr "" -#: js/MeterBlocks.js:1279 -#.TRANS: anacrusis -msgid "pickup" +#: js/blocks/PitchBlocks.js:1706 +msgid "n^th Modal Pitch takes the pattern of pitches in semitones for a mode and makes each point a degree of the mode," msgstr "" -#: js/MeterBlocks.js:1367 -msgid "number of beats" +#: js/blocks/PitchBlocks.js:1708 +msgid "starting from 1 and regardless of tonal framework (i.e. not always 8 notes in the octave)" msgstr "" -#: js/DictBlocks.js:77 -msgid "show dictionary" +#: js/blocks/PitchBlocks.js:1749 +msgid "N^th Modal Pitch takes a number as an input as the n^th degree for the given mode. 0 is the first position, 1 is the second, -1 is the note before the first etc." msgstr "" -#: js/DictBlocks.js:129 -msgid "The Dictionary block returns a dictionary." +#: js/blocks/PitchBlocks.js:1751 +msgid "The pitches change according to the mode specified without any need for respellings." msgstr "" -#: js/DictBlocks.js:197 -#: js/DictBlocks.js:339 -msgid "The Get-dict block returns a value in the dictionary for a specified key." +#: js/blocks/PitchBlocks.js:1790 +msgid "Scale Degree is a common convention in music. Scale Degree offers seven possible positions in the scale (1-7) and can be modified via accidentals." msgstr "" -#: js/DictBlocks.js:212 -#: js/DictBlocks.js:354 -#.TRANS: retrieve a value from the dictionary with a given key -msgid "get value" +#: js/blocks/PitchBlocks.js:1792 +msgid "Scale Degree 1 is always the first pitch in a given scale, regardless of octave." msgstr "" -#: js/DictBlocks.js:215 -#: js/DictBlocks.js:216 -#: js/DictBlocks.js:289 -#: js/DictBlocks.js:290 -#: js/DictBlocks.js:357 -#: js/DictBlocks.js:430 -#: js/DictBlocks.js:431 -msgid "key2" +#: js/blocks/PitchBlocks.js:1814 +#.TRANS: step some number of notes in current musical scale +msgid "scalar step" msgstr "" -#: js/DictBlocks.js:271 -#: js/DictBlocks.js:411 -msgid "The Set-dict block sets a value in the dictionary for a specified key." +#: js/blocks/PitchBlocks.js:1819 +msgid "The Scalar Step block (in combination with a Number block) will play the next pitch in a scale," msgstr "" -#: js/DictBlocks.js:286 -#: js/DictBlocks.js:427 -#.TRANS: set a value in the dictionary for a given key -msgid "set value" +#: js/blocks/PitchBlocks.js:1821 +msgid "eg if the last note played was sol, Scalar Step 1 will play la." msgstr "" -#: js/ExtrasBlocks.js:33 -msgid "fraction" +#: js/blocks/PitchBlocks.js:1857 +msgid "The Pitch block specifies the pitch name and octave of a note that together determine the frequency of the note." msgstr "" -#: js/ExtrasBlocks.js:36 -msgid "Convert a float to a fraction" +#: js/blocks/ProgramBlocks.js:33 +msgid "The Load-heap-from-app block loads the heap from a web page." msgstr "" -#: js/ExtrasBlocks.js:93 -msgid "save as ABC" +#: js/blocks/ProgramBlocks.js:44 +#.TRANS: load the heap contents from a URL +msgid "load heap from App" msgstr "" -#: js/ExtrasBlocks.js:96 -#: js/ExtrasBlocks.js:132 -#: js/ExtrasBlocks.js:168 -msgid "title" -msgstr "शीर्षक" - -#: js/ExtrasBlocks.js:129 -msgid "save as Lilypond" +#: js/blocks/ProgramBlocks.js:95 +msgid "Error parsing JSON data:" msgstr "" -#: js/ExtrasBlocks.js:165 -msgid "save as SVG" +#: js/blocks/ProgramBlocks.js:100 +msgid "404: Page not found" msgstr "" -#: js/ExtrasBlocks.js:216 -msgid "no background" +#: js/blocks/ProgramBlocks.js:133 +msgid "The Save-heap-to-app block saves the heap to a web page." msgstr "" -#: js/ExtrasBlocks.js:219 -msgid "The No background block eliminates the background from the saved SVG output." +#: js/blocks/ProgramBlocks.js:144 +#.TRANS: save the heap contents to a URL +msgid "save heap to App" msgstr "" -#: js/ExtrasBlocks.js:247 -msgid "show blocks" -msgstr "ब्लॉक्स दाखवा" +#: js/blocks/ProgramBlocks.js:189 +msgid "Cannot find a valid heap for" +msgstr "" -#: js/ExtrasBlocks.js:249 -msgid "The Show blocks block shows the blocks." +#: js/blocks/ProgramBlocks.js:206 +msgid "The Load-heap block loads the heap from a file." msgstr "" -#: js/ExtrasBlocks.js:274 -msgid "hide blocks" -msgstr "ब्लॉक्स लपवा" +#: js/blocks/ProgramBlocks.js:217 +#.TRANS: load the heap from a file +msgid "load heap" +msgstr "लोड ढीग" -#: js/ExtrasBlocks.js:276 -msgid "The Hide blocks block hides the blocks." +#: js/blocks/ProgramBlocks.js:270 +msgid "The file you selected does not contain a valid heap." msgstr "" -#: js/ExtrasBlocks.js:305 -#: js/ExtrasBlocks.js:335 -msgid "The Space block is used to add space between blocks." +#: js/blocks/ProgramBlocks.js:275 +msgid "The loadHeap block needs a loadFile block." msgstr "" -#: js/ExtrasBlocks.js:373 -msgid "wait" -msgstr "थांबा" +#: js/blocks/ProgramBlocks.js:291 +msgid "The Set-heap block loads the heap." +msgstr "" -#: js/ExtrasBlocks.js:376 -msgid "The Wait block pauses the program for a specified number of seconds." +#: js/blocks/ProgramBlocks.js:340 +msgid "The block you selected does not contain a valid heap." msgstr "" -#: js/ExtrasBlocks.js:430 -#: plugins/facebook.rtp:30 -msgid "comment" -msgstr "टिप्पणी" +#: js/blocks/ProgramBlocks.js:343 +msgid "The Set heap block needs a heap." +msgstr "" -#: js/ExtrasBlocks.js:466 -msgid "print" -msgstr "छापणे" +#: js/blocks/ProgramBlocks.js:360 +msgid "The Load-dictionary block loads a dictionary from a file." +msgstr "" -#: js/ExtrasBlocks.js:473 -msgid "The Print block displays text at the top of the screen." +#: js/blocks/ProgramBlocks.js:372 +#.TRANS: load a dictionary from a file +msgid "load dictionary" msgstr "" -#: js/ExtrasBlocks.js:579 -msgid "display grid" +#: js/blocks/ProgramBlocks.js:390 +#: js/blocks/ProgramBlocks.js:658 +#: js/blocks/ToneBlocks.js:1025 +msgid "file" msgstr "" -#: js/ExtrasBlocks.js:584 -msgid "The Display Grid Block changes the grid type" +#: js/blocks/ProgramBlocks.js:444 +msgid "The file you selected does not contain a valid dictionary." msgstr "" -#: js/ExtrasBlocks.js:686 -#: js/ExtrasBlocks.js:705 -#: js/ExtrasBlocks.js:728 -#: js/ExtrasBlocks.js:751 -#: js/ExtrasBlocks.js:769 -#: js/ExtrasBlocks.js:788 -#: js/ExtrasBlocks.js:807 -#: js/ExtrasBlocks.js:826 -msgid "unknown" -msgstr "अज्ञात" +#: js/blocks/ProgramBlocks.js:449 +msgid "The load dictionary block needs a load file block." +msgstr "" -#: js/SensorsBlocks.js:36 -msgid "The Input block prompts for keyboard input." +#: js/blocks/ProgramBlocks.js:466 +msgid "The Set-dictionary block loads a dictionary." msgstr "" -#: js/SensorsBlocks.js:46 -msgid "input" +#: js/blocks/ProgramBlocks.js:477 +#.TRANS: load a dictionary from a JSON +msgid "set dictionary" msgstr "" -#: js/SensorsBlocks.js:64 -msgid "Input a value" +#: js/blocks/ProgramBlocks.js:546 +msgid "The block you selected does not contain a valid dictionary." msgstr "" -#: js/SensorsBlocks.js:126 -msgid "input value" +#: js/blocks/ProgramBlocks.js:550 +msgid "The set dictionary block needs a dictionary." msgstr "" -#: js/SensorsBlocks.js:131 -msgid "The Input-value block stores the input." +#: js/blocks/ProgramBlocks.js:567 +msgid "The Save-heap block saves the heap to a file." msgstr "" -#: js/SensorsBlocks.js:238 -msgid "loudness" -msgstr "जॊरत" +#: js/blocks/ProgramBlocks.js:578 +#.TRANS: save the heap to a file +msgid "save heap" +msgstr "ढीग जतन करा" -#: js/SensorsBlocks.js:245 -msgid "The Loudness block returns the volume detected by the microphone." +#: js/blocks/ProgramBlocks.js:629 +msgid "The Save-dictionary block saves a dictionary to a file." msgstr "" -#: js/SensorsBlocks.js:300 -msgid "click" +#: js/blocks/ProgramBlocks.js:640 +#.TRANS: save a dictionary to a file +msgid "save dictionary" msgstr "" -#: js/SensorsBlocks.js:306 -msgid "The Click block triggers an event if a mouse has been clicked." +#: js/blocks/ProgramBlocks.js:720 +msgid "The Open palette block opens a palette." msgstr "" -#: js/SensorsBlocks.js:313 -msgid "The Click block triggers an event if a turtle has been clicked." +#: js/blocks/ProgramBlocks.js:727 +msgid "open palette" msgstr "" -#: js/SensorsBlocks.js:342 -msgid "cursor over" +#: js/blocks/ProgramBlocks.js:785 +msgid "The Delete block block removes a block." msgstr "" -#: js/SensorsBlocks.js:387 -msgid "cursor out" +#: js/blocks/ProgramBlocks.js:797 +#.TRANS: Move this block to the trash. +msgid "delete block" msgstr "" -#: js/SensorsBlocks.js:433 -msgid "cursor button down" +#: js/blocks/ProgramBlocks.js:861 +msgid "The Move block block moves a block." msgstr "" -#: js/SensorsBlocks.js:477 -msgid "cursor button up" +#: js/blocks/ProgramBlocks.js:869 +#.TRANS: Move the position of a block on the screen. +msgid "move block" msgstr "" -#: js/SensorsBlocks.js:638 -msgid "The Get red block returns the red component of the pixel under the mouse." +#: js/blocks/ProgramBlocks.js:881 +#: js/blocks/ProgramBlocks.js:1048 +msgid "block number" msgstr "" -#: js/SensorsBlocks.js:644 -msgid "The Get red block returns the red component of the pixel under the turtle." +#: js/blocks/ProgramBlocks.js:935 +#.TRANS: Run program beginning at this block. +msgid "run block" msgstr "" -#: js/SensorsBlocks.js:685 -#: plugins/rodi.rtp:216 -msgid "pixel color" -msgstr "पिक्सेल रंग" - -#: js/SensorsBlocks.js:690 -msgid "The Get pixel block returns the color of the pixel under the mouse." +#: js/blocks/ProgramBlocks.js:1025 +msgid "The Dock block block connections two blocks." msgstr "" -#: js/SensorsBlocks.js:696 -msgid "The Get pixel block returns the color of the pixel under the turtle." +#: js/blocks/ProgramBlocks.js:1036 +#.TRANS: We can connect a block to another block. +msgid "connect blocks" msgstr "" -#: js/SensorsBlocks.js:758 -msgid "time" -msgstr "वेळ" - -#: js/SensorsBlocks.js:804 -msgid "cursor y" +#: js/blocks/ProgramBlocks.js:1048 +msgid "target block" msgstr "" -#: js/SensorsBlocks.js:809 -msgid "The Cursor Y block returns the vertical position of the mouse." +#: js/blocks/ProgramBlocks.js:1048 +msgid "connection number" msgstr "" -#: js/SensorsBlocks.js:845 -msgid "cursor x" +#: js/blocks/ProgramBlocks.js:1140 +msgid "The Make block block creates a new block." msgstr "" -#: js/SensorsBlocks.js:850 -msgid "The Cursor X block returns the horizontal position of the mouse." +#: js/blocks/ProgramBlocks.js:1152 +#.TRANS: Create a new block +msgid "make block" msgstr "" -#: js/SensorsBlocks.js:886 -msgid "mouse button" -msgstr "माऊस बटण" +#: js/blocks/ProgramBlocks.js:1285 +msgid "Cannot find block" +msgstr "" -#: js/SensorsBlocks.js:888 -msgid "The Mouse-button block returns True if the mouse button is pressed." +#: js/blocks/ProgramBlocks.js:1304 +#: js/blocks/ProgramBlocks.js:1313 +msgid "Warning: block argument type mismatch" msgstr "" -#: js/SensorsBlocks.js:934 -msgid "to ASCII" +#: js/blocks/ProgramBlocks.js:1347 +msgid "The Open project block is used to open a project from a web page." msgstr "" -#: js/SensorsBlocks.js:938 -msgid "The To ASCII block converts numbers to letters." +#: js/blocks/ProgramBlocks.js:1357 +msgid "open project" msgstr "" -#: js/SensorsBlocks.js:1005 -msgid "The Keyboard block returns computer keyboard input." +#: js/blocks/ProgramBlocks.js:1410 +msgid "Please enter a valid URL." msgstr "" -#: js/IntervalsActions.js:216 -msgid "Adding missing pitch number 0." +#: js/blocks/ToneBlocks.js:34 +msgid "oscillator" msgstr "" -#: js/IntervalsActions.js:224 -msgid "Ignoring pitch numbers less than zero or greater than eleven." +#: js/blocks/ToneBlocks.js:42 +#: js/blocks/WidgetBlocks.js:179 +#: js/widgets/timbre.js:1558 +#: js/widgets/timbre.js:1808 +#.TRANS: there are different types (sine, triangle, square...) of oscillators. +#.TRANS: type of filter, e.g., lowpass, highpass, etc. +msgid "type" msgstr "" -#: js/IntervalsActions.js:230 -msgid "Ignoring duplicate pitch numbers." +#: js/blocks/ToneBlocks.js:44 +#: js/widgets/timbre.js:1562 +#.TRANS: Partials refers to the number of sine waves combined into the sound. +msgid "partials" msgstr "" -#: js/PitchActions.js:88 -msgid "The Scalar Step Block must be used inside of a Note Block." +#: js/blocks/ToneBlocks.js:76 +msgid "You are adding multiple oscillator blocks." msgstr "" -#: js/PitchActions.js:107 -msgid "The Scalar Step Block must be preceded by a Pitch Block." +#: js/blocks/ToneBlocks.js:144 +#: js/widgets/timbre.js:1225 +#.TRANS: a duo synthesizer combines a synth with a sequencer +msgid "duo synth" msgstr "" -#: js/DrumActions.js:231 -msgid "Noise Block: Did you mean to use a Note block?" +#: js/blocks/ToneBlocks.js:149 +msgid "The Duo synth block is a duo-frequency modulator used to define a timbre." msgstr "" -#: js/MeterActions.js:101 -#: js/MeterActions.js:139 -msgid "beats per minute must be greater than" +#: js/blocks/ToneBlocks.js:157 +#: js/widgets/timbre.js:1476 +msgid "vibrato rate" msgstr "" -#: js/MeterActions.js:111 -#: js/MeterActions.js:149 -msgid "maximum" +#: js/blocks/ToneBlocks.js:157 +msgid "vibrato intensity" msgstr "" -#: js/MeterActions.js:117 -#: js/MeterActions.js:155 -msgid "beats per minute is" +#: js/blocks/ToneBlocks.js:185 +#: js/widgets/timbre.js:1221 +#.TRANS: AM (amplitude modulation) synthesizer +msgid "AM synth" msgstr "" -#: js/ToneActions.js:134 -msgid "Vibrato intensity must be between 1 and 100." +#: js/blocks/ToneBlocks.js:189 +msgid "The AM synth block is an amplitude modulator used to define a timbre." msgstr "" -#: js/ToneActions.js:139 -msgid "Vibrato rate must be greater than 0." +#: js/blocks/ToneBlocks.js:224 +#: js/widgets/timbre.js:1223 +#.TRANS: FM (frequency modulation) synthesizer +msgid "FM synth" msgstr "" -#: js/ToneActions.js:192 -#: js/ToneActions.js:265 -#.TRANS: Depth is the intesity of the tremolo or chorus effect. -msgid "Depth is out of range." +#: js/blocks/ToneBlocks.js:228 +msgid "The FM synth block is a frequency modulator used to define a timbre." msgstr "" -#: js/ToneActions.js:301 -msgid "Distortion must be from 0 to 100." +#: js/blocks/ToneBlocks.js:262 +msgid "partial" msgstr "" -#: js/ToneActions.js:332 -#.TRANS: partials components in a harmonic series -msgid "Partial must be greater than or equal to 0." +#: js/blocks/ToneBlocks.js:265 +msgid "The Partial block is used to specify a weight for a specific partial harmonic." msgstr "" -#: js/ToneActions.js:378 -#: js/ToneActions.js:417 -#: js/ToneActions.js:456 -#: js/timbre.js:782 -msgid "Unable to use synth due to existing oscillator" +#: js/blocks/ToneBlocks.js:284 +#.TRANS: partials are weighted components in a harmonic series +msgid "Partial weight must be between 0 and 1." msgstr "" -#: js/ToneActions.js:388 -#: js/ToneActions.js:427 -msgid "The input cannot be negative." +#: js/blocks/ToneBlocks.js:297 +#.TRANS: partials are weighted components in a harmonic series +msgid "Partial block should be used inside of a Weighted-partials block." msgstr "" -#: js/DictActions.js:75 -#: js/DictActions.js:153 -#: js/DictActions.js:188 -msgid "font" +#: js/blocks/ToneBlocks.js:325 +#.TRANS: partials are weighted components in a harmonic series +msgid "weighted partials" msgstr "" -#: js/musicutils.js:363 -#: js/musicutils.js:471 -#: js/pitchdrummatrix.js:151 -#: js/musickeyboard.js:2563 -msgid "rest" +#: js/blocks/ToneBlocks.js:383 +msgid "The Harmonic block will add harmonics to the contained notes." msgstr "" -#: js/musicutils.js:565 -#.TRANS: ordinal number. Please keep exactly one space between each number. -msgid "1st 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th" +#: js/blocks/ToneBlocks.js:390 +#.TRANS: A harmonic is an overtone. +msgid "harmonic" msgstr "" -#: js/musicutils.js:629 -#: js/musicutils.js:812 -#: js/musicutils.js:911 -#.TRANS: augmented is a music term related to intervals -msgid "augmented" +#: js/blocks/ToneBlocks.js:431 +msgid "The Distortion block adds distortion to the pitch." msgstr "" -#: js/musicutils.js:631 -#: js/musicutils.js:813 -#: js/musicutils.js:910 -#.TRANS: diminished is a music term related to intervals and mode -msgid "diminished" +#: js/blocks/ToneBlocks.js:438 +#: js/widgets/timbre.js:2100 +#.TRANS: distortion is an alteration in the sound +msgid "distortion" msgstr "" -#: js/musicutils.js:639 -#.TRANS: twelve semi-tone scale for music -msgid "chromatic" +#: js/blocks/ToneBlocks.js:487 +msgid "The Tremolo block adds a wavering effect." msgstr "" -#: js/musicutils.js:640 -msgid "algerian" +#: js/blocks/ToneBlocks.js:495 +#: js/widgets/timbre.js:2092 +#.TRANS: a wavering effect in a musical tone +msgid "tremolo" msgstr "" -#: js/musicutils.js:641 -msgid "spanish" +#: js/blocks/ToneBlocks.js:500 +#: js/blocks/ToneBlocks.js:569 +#: js/blocks/ToneBlocks.js:630 +#: js/blocks/ToneBlocks.js:689 +#: js/widgets/timbre.js:2134 +#: js/widgets/timbre.js:2222 +#: js/widgets/timbre.js:2317 +#: js/widgets/timbre.js:2419 +#.TRANS: rate at which tremolo wavers +msgid "rate" msgstr "" -#: js/musicutils.js:643 -#.TRANS: modal scale in music -msgid "octatonic" +#: js/blocks/ToneBlocks.js:502 +#: js/blocks/ToneBlocks.js:630 +#: js/widgets/timbre.js:2137 +#: js/widgets/timbre.js:2328 +#.TRANS: amplitude of tremolo waver +msgid "depth" msgstr "" -#: js/musicutils.js:645 -#.TRANS: harmonic major scale in music -msgid "harmonic major" +#: js/blocks/ToneBlocks.js:559 +msgid "The Phaser block adds a sweeping sound." msgstr "" -#: js/musicutils.js:647 -#.TRANS: natural minor scales in music -msgid "natural minor" +#: js/blocks/ToneBlocks.js:566 +#: js/widgets/timbre.js:2098 +#.TRANS: alter the phase of the sound +msgid "phaser" msgstr "" -#: js/musicutils.js:649 -#.TRANS: harmonic minor scale in music -msgid "harmonic minor" +#: js/blocks/ToneBlocks.js:569 +#: js/turtleactions/IntervalsActions.js:114 +#: js/widgets/timbre.js:2422 +msgid "octaves" msgstr "" -#: js/musicutils.js:651 -#.TRANS: melodic minor scale in music -msgid "melodic minor" +#: js/blocks/ToneBlocks.js:569 +#: js/widgets/timbre.js:2425 +msgid "base frequency" msgstr "" -#: js/musicutils.js:655 -#.TRANS: modal scale for music -msgid "dorian" +#: js/blocks/ToneBlocks.js:619 +msgid "The Chorus block adds a chorus effect." msgstr "" -#: js/musicutils.js:657 -#.TRANS: modal scale for music -msgid "phrygian" +#: js/blocks/ToneBlocks.js:627 +#: js/widgets/timbre.js:2096 +#.TRANS: musical effect to simulate a choral sound +msgid "chorus" msgstr "" -#: js/musicutils.js:659 -#.TRANS: modal scale for music -msgid "lydian" +#: js/blocks/ToneBlocks.js:630 +msgid "delay" msgstr "" -#: js/musicutils.js:661 -#.TRANS: modal scale for music -msgid "mixolydian" +#: js/blocks/ToneBlocks.js:678 +msgid "The Vibrato block adds a rapid, slight variation in pitch." msgstr "" -#: js/musicutils.js:665 -#.TRANS: modal scale for music -msgid "locrian" +#: js/blocks/ToneBlocks.js:686 +#: js/widgets/timbre.js:2094 +#.TRANS: a rapid, slight variation in pitch +msgid "vibrato" msgstr "" -#: js/musicutils.js:667 -#.TRANS: minor jazz scale for music -msgid "jazz minor" +#: js/blocks/ToneBlocks.js:689 +#: js/widgets/timbre.js:2221 +msgid "intensity" msgstr "" -#: js/musicutils.js:669 -#.TRANS: bebop scale for music -msgid "bebop" +#: js/blocks/ToneBlocks.js:733 +#.TRANS: select synthesizer +msgid "set synth" msgstr "" -#: js/musicutils.js:670 -msgid "arabic" +#: js/blocks/ToneBlocks.js:804 +msgid "synth name" msgstr "" -#: js/musicutils.js:671 -msgid "byzantine" +#: js/blocks/ToneBlocks.js:842 +msgid "set default instrument" msgstr "" -#: js/musicutils.js:673 -#.TRANS: musical scale for music by Verdi -msgid "enigmatic" +#: js/blocks/ToneBlocks.js:895 +#: js/blocks/ToneBlocks.js:943 +#.TRANS: set the characteristics of a custom instrument +msgid "set instrument" msgstr "" -#: js/musicutils.js:674 -msgid "ethiopian" +#: js/blocks/ToneBlocks.js:898 +#: js/blocks/ToneBlocks.js:926 +#: js/blocks/ToneBlocks.js:932 +msgid "The Set instrument block selects a voice for the synthesizer," msgstr "" -#: js/musicutils.js:676 -#.TRANS: Ethiopic scale for music -msgid "geez" +#: js/blocks/ToneBlocks.js:900 +#: js/blocks/ToneBlocks.js:934 +msgid "eg guitar piano violin or cello." msgstr "" -#: js/musicutils.js:677 -msgid "hindu" +#: js/blocks/ToneBlocks.js:1015 +msgid "Import a sound file to use as an instrument and set its pitch center." msgstr "" -#: js/musicutils.js:678 -msgid "hungarian" +#: js/blocks/ToneBlocks.js:1110 +msgid "Upload a sound file to connect with the sample block." msgstr "" -#: js/musicutils.js:680 -#.TRANS: minor Romanian scale for music -msgid "romanian minor" +#: js/blocks/VolumeBlocks.js:35 +msgid "synth volume" msgstr "" -#: js/musicutils.js:681 -msgid "spanish gypsy" +#: js/blocks/VolumeBlocks.js:39 +msgid "The Synth volume block returns the current volume of the current synthesizer." msgstr "" -#: js/musicutils.js:683 -#.TRANS: musical scale for Mid-Eastern music -msgid "maqam" +#: js/blocks/VolumeBlocks.js:105 +msgid "master volume" msgstr "" -#: js/musicutils.js:685 -#.TRANS: minor blues scale for music -msgid "minor blues" +#: js/blocks/VolumeBlocks.js:109 +msgid "The Master volume block returns the master volume." msgstr "" -#: js/musicutils.js:687 -#.TRANS: major blues scale for music -msgid "major blues" +#: js/blocks/VolumeBlocks.js:355 +#: js/blocks/VolumeBlocks.js:524 +msgid "set synth volume" msgstr "" -#: js/musicutils.js:688 -msgid "whole tone" +#: js/blocks/VolumeBlocks.js:362 +#: js/blocks/VolumeBlocks.js:545 +msgid "synth" msgstr "" -#: js/musicutils.js:690 -#.TRANS: pentatonic is a general term that means "five note scale". This scale is typically known as "minor pentatonic" -msgid "minor pentatonic" +#: js/blocks/VolumeBlocks.js:403 +#: js/blocks/VolumeBlocks.js:577 +#: js/blocks/VolumeBlocks.js:740 +#: js/turtleactions/VolumeActions.js:173 +msgid "Setting volume to 0." msgstr "" -#: js/musicutils.js:692 -#.TRANS: pentatonic is a general term that means "five note scale". This scale is typically known as "major pentatonic" -msgid "major pentatonic" +#: js/blocks/VolumeBlocks.js:440 +msgid "Synth not found" msgstr "" -#: js/musicutils.js:693 -msgid "chinese" +#: js/blocks/VolumeBlocks.js:494 +msgid "set drum volume" msgstr "" -#: js/musicutils.js:694 -msgid "egyptian" +#: js/blocks/VolumeBlocks.js:530 +msgid "The Set synth volume block will change the volume of a particular synth," msgstr "" -#: js/musicutils.js:696 -#.TRANS: https://en.wikipedia.org/wiki/Hirajoshi_scale NOTE: There are three different versions of this scale -msgid "hirajoshi" +#: js/blocks/VolumeBlocks.js:532 +msgid "eg guitar violin snare drum etc." msgstr "" -#: js/musicutils.js:697 -msgid "Japan" +#: js/blocks/VolumeBlocks.js:534 +msgid "The default volume is 50." msgstr "" -#: js/musicutils.js:699 -#.TRANS: https://en.wikipedia.org/wiki/In_scale and https://en.wikipedia.org/wiki/Sakura_Sakura -msgid "in" +#: js/blocks/VolumeBlocks.js:536 +msgid "The range is 0 for silence to 100 for full volume." msgstr "" -#: js/musicutils.js:701 -#.TRANS: https://en.wikipedia.org/wiki/Miny%C5%8D_scale -msgid "minyo" +#: js/blocks/VolumeBlocks.js:597 +msgid "set panning" msgstr "" -#: js/musicutils.js:703 -#.TRANS: Italian mathematician -msgid "fibonacci" +#: js/blocks/VolumeBlocks.js:603 +msgid "The Set Panning block sets the panning for all synthesizers." msgstr "" -#: js/musicutils.js:708 -#: js/musicutils.js:1106 -#.TRANS: lowpass filter -msgid "lowpass" +#: js/blocks/VolumeBlocks.js:625 +msgid "Warning: Sound is coming out from only the left or right side." msgstr "" -#: js/musicutils.js:710 -#: js/musicutils.js:1107 -#.TRANS: bandpass filter -msgid "bandpass" +#: js/blocks/VolumeBlocks.js:647 +#: js/blocks/VolumeBlocks.js:695 +msgid "set master volume" msgstr "" -#: js/musicutils.js:712 -#: js/musicutils.js:1108 -#.TRANS: high-shelf filter -msgid "highshelf" +#: js/blocks/VolumeBlocks.js:653 +msgid "The Set master volume block sets the volume for all synthesizers." msgstr "" -#: js/musicutils.js:714 -#: js/musicutils.js:1109 -#.TRANS: low-shelf filter -msgid "lowshelf" +#: js/blocks/VolumeBlocks.js:784 +msgid "The Set relative volume block changes the volume of the contained notes." msgstr "" -#: js/musicutils.js:716 -#: js/musicutils.js:1110 -#.TRANS: notch-shelf filter -msgid "notch" +#: js/blocks/VolumeBlocks.js:791 +msgid "set relative volume" msgstr "" -#: js/musicutils.js:718 -#: js/musicutils.js:1111 -#.TRANS: all-pass filter -msgid "allpass" +#: js/blocks/VolumeBlocks.js:857 +msgid "decrescendo" msgstr "" -#: js/musicutils.js:720 -#: js/musicutils.js:1112 -#.TRANS: peaking filter -msgid "peaking" +#: js/blocks/VolumeBlocks.js:921 +msgid "crescendo" msgstr "" -#: js/musicutils.js:731 -#: js/synthutils.js:58 -#.TRANS: musical instrument -msgid "violin" +#: js/blocks/WidgetBlocks.js:81 +#.TRANS: sound envelope (ADSR) +msgid "envelope" msgstr "" -#: js/musicutils.js:732 -#: js/synthutils.js:60 -#.TRANS: viola musical instrument -msgid "viola" +#: js/blocks/WidgetBlocks.js:89 +#.TRANS: Attack time is the time taken for initial run-up of level from nil to peak, beginning when the key is first pressed. +msgid "attack" msgstr "" -#: js/musicutils.js:733 -#: js/synthutils.js:98 -#.TRANS: xylophone musical instrument -msgid "xylophone" +#: js/blocks/WidgetBlocks.js:91 +#.TRANS: Decay time is the time taken for the subsequent run down from the attack level to the designated sustain level. +msgid "decay" msgstr "" -#: js/musicutils.js:734 -#: js/synthutils.js:120 -#.TRANS: vibraphone musical instrument -msgid "vibraphone" +#: js/blocks/WidgetBlocks.js:93 +#.TRANS: Sustain level is the level during the main sequence of the sound's duration, until the key is released. +msgid "sustain" msgstr "" -#: js/musicutils.js:735 -#: js/synthutils.js:62 -#.TRANS: musical instrument -msgid "cello" +#: js/blocks/WidgetBlocks.js:95 +#.TRANS: Release time is the time taken for the level to decay from the sustain level to zero after the key is released. +msgid "release" msgstr "" -#: js/musicutils.js:737 -#: js/synthutils.js:66 -#.TRANS: viola musical instrument -msgid "double bass" +#: js/blocks/WidgetBlocks.js:113 +msgid "Attack value should be from 0 to 100." msgstr "" -#: js/musicutils.js:738 -#: js/synthutils.js:68 -#: js/rhythmruler.js:2119 -#.TRANS: musical instrument -msgid "guitar" +#: js/blocks/WidgetBlocks.js:116 +msgid "Decay value should be from 0 to 100." msgstr "" -#: js/musicutils.js:739 -#: js/synthutils.js:70 -#.TRANS: musical instrument -msgid "acoustic guitar" +#: js/blocks/WidgetBlocks.js:119 +msgid "Sustain value should be from 0 to 100." msgstr "" -#: js/musicutils.js:740 -#: js/synthutils.js:72 -#.TRANS: musical instrument -msgid "flute" +#: js/blocks/WidgetBlocks.js:122 +msgid "Release value should be from 0-100." msgstr "" -#: js/musicutils.js:741 -#: js/synthutils.js:74 -#.TRANS: musical instrument -msgid "clarinet" +#: js/blocks/WidgetBlocks.js:140 +msgid "You are adding multiple envelope blocks." msgstr "" -#: js/musicutils.js:742 -#: js/synthutils.js:76 -#.TRANS: musical instrument -msgid "saxophone" +#: js/blocks/WidgetBlocks.js:171 +#.TRANS: a filter removes some unwanted components from a signal +msgid "filter" msgstr "" -#: js/musicutils.js:743 -#: js/synthutils.js:78 -#.TRANS: musical instrument -msgid "tuba" +#: js/blocks/WidgetBlocks.js:181 +#: js/widgets/timbre.js:1818 +#.TRANS: rolloff is the steepness of a change in frequency. +msgid "rolloff" msgstr "" -#: js/musicutils.js:744 -#: js/synthutils.js:80 -#.TRANS: musical instrument -msgid "trumpet" +#: js/blocks/WidgetBlocks.js:213 +#.TRANS: rolloff is the steepness of a change in frequency. +msgid "Rolloff value should be either -12, -24, -48, or -96 decibels/octave." msgstr "" -#: js/musicutils.js:745 -#: js/synthutils.js:82 -#.TRANS: musical instrument -msgid "oboe" +#: js/blocks/WidgetBlocks.js:252 +msgid "The Temperament tool is used to define custom tuning." msgstr "" -#: js/musicutils.js:746 -#: js/synthutils.js:84 -#.TRANS: musical instrument -msgid "trombone" +#: js/blocks/WidgetBlocks.js:332 +#: js/blocks/WidgetBlocks.js:1573 +#: js/widgets/sampler.js:547 +msgid "Upload a sample and adjust its pitch center." msgstr "" -#: js/musicutils.js:747 -#: js/synthutils.js:100 -#.TRANS: polytone synthesizer -msgid "electronic synth" +#: js/blocks/WidgetBlocks.js:339 +#.TRANS: the speed at music is should be played. +msgid "sampler" msgstr "" -#: js/musicutils.js:748 -#: js/synthutils.js:102 -#.TRANS: simple monotone synthesizer -msgid "simple 1" +#: js/blocks/WidgetBlocks.js:517 +msgid "The Meter block opens a tool to select strong beats for the meter." msgstr "" -#: js/musicutils.js:749 -msgid "simple 2" +#: js/blocks/WidgetBlocks.js:573 +msgid "The oscilloscope block opens a tool to visualize waveforms." msgstr "" -#: js/musicutils.js:750 -msgid "simple 3" +#: js/blocks/WidgetBlocks.js:578 +msgid "oscilloscope" msgstr "" -#: js/musicutils.js:751 -msgid "simple 4" +#: js/blocks/WidgetBlocks.js:645 +msgid "The Custom mode block opens a tool to explore musical mode (the spacing of the notes in a scale)." msgstr "" -#: js/musicutils.js:753 -#: js/synthutils.js:49 -#.TRANS: brown noise synthesizer -msgid "brown noise" +#: js/blocks/WidgetBlocks.js:651 +#.TRANS: musical mode is the pattern of half-steps in an octave, e.g., Major or Minor modes +msgid "custom mode" msgstr "" -#: js/musicutils.js:754 -#: js/synthutils.js:51 -#.TRANS: pink noise synthesizer -msgid "pink noise" +#: js/blocks/WidgetBlocks.js:700 +msgid "The Tempo block opens a metronome to visualize the beat." msgstr "" -#: js/musicutils.js:756 -#: js/synthutils.js:127 -#: js/rhythmruler.js:1670 -#: js/rhythmruler.js:1928 -#.TRANS: musical instrument -msgid "snare drum" +#: js/blocks/WidgetBlocks.js:762 +msgid "The Arpeggio Widget is used to compose chord sequences." msgstr "" -#: js/musicutils.js:757 -#: js/synthutils.js:129 -#.TRANS: musical instrument -msgid "kick drum" +#: js/blocks/WidgetBlocks.js:837 +msgid "The Pitch drum matrix is used to map pitches to drum sounds." msgstr "" -#: js/musicutils.js:758 -#: js/synthutils.js:131 -#.TRANS: musical instrument -msgid "tom tom" +#: js/blocks/WidgetBlocks.js:842 +#.TRANS: makes a mapping between pitches and drum sounds +msgid "pitch-drum mapper" msgstr "" -#: js/musicutils.js:759 -#: js/synthutils.js:133 -#.TRANS: musical instrument -msgid "floor tom" +#: js/blocks/WidgetBlocks.js:891 +msgid "You must have at least one pitch block and one drum block in the matrix." msgstr "" -#: js/musicutils.js:760 -#: js/synthutils.js:135 -#.TRANS: musical instrument -msgid "bass drum" +#: js/blocks/WidgetBlocks.js:920 +msgid "The Pitch slider tool to is used to generate pitches at selected frequencies." msgstr "" -#: js/musicutils.js:761 -#: js/synthutils.js:137 -#.TRANS: a drum made from an inverted cup -msgid "cup drum" +#: js/blocks/WidgetBlocks.js:925 +#.TRANS: widget to generate pitches using a slider +msgid "pitch slider" msgstr "" -#: js/musicutils.js:762 -#: js/synthutils.js:139 -#.TRANS: musical instrument -msgid "darbuka drum" +#: js/blocks/WidgetBlocks.js:977 +msgid "chromatic keyboard" msgstr "" -#: js/musicutils.js:763 -#: js/synthutils.js:143 -#.TRANS: musical instrument -msgid "hi hat" +#: js/blocks/WidgetBlocks.js:1011 +#: js/blocks/WidgetBlocks.js:1077 +#.TRANS: widget to generate pitches using a slider +msgid "music keyboard" msgstr "" -#: js/musicutils.js:764 -#: js/synthutils.js:145 -#.TRANS: a small metal bell -msgid "ride bell" +#: js/blocks/WidgetBlocks.js:1062 +#: js/blocks/WidgetBlocks.js:1069 +msgid "The Music keyboard block opens a piano keyboard that can be used to create notes." msgstr "" -#: js/musicutils.js:765 -#: js/synthutils.js:147 -#.TRANS: musical instrument -msgid "cow bell" +#: js/blocks/WidgetBlocks.js:1128 +msgid "The Pitch staircase tool to is used to generate pitches from a given ratio." msgstr "" -#: js/musicutils.js:766 -msgid "japanese drum" +#: js/blocks/WidgetBlocks.js:1135 +#.TRANS: generate a progressive sequence of pitches +msgid "pitch staircase" msgstr "" -#: js/musicutils.js:767 -#: js/synthutils.js:153 -#.TRANS: musical instrument -msgid "japanese bell" +#: js/blocks/WidgetBlocks.js:1222 +msgid "The Rhythm Maker block opens a tool to create drum machines." msgstr "" -#: js/musicutils.js:768 -#: js/synthutils.js:149 -#.TRANS: musical instrument -msgid "triangle bell" +#: js/blocks/WidgetBlocks.js:1291 +msgid "G major scale" msgstr "" -#: js/musicutils.js:769 -#: js/synthutils.js:151 -#.TRANS: musical instrument -msgid "finger cymbals" +#: js/blocks/WidgetBlocks.js:1326 +msgid "C major scale" msgstr "" -#: js/musicutils.js:770 -#: js/synthutils.js:155 -#.TRANS: a musically tuned set of bells -msgid "chime" +#: js/blocks/WidgetBlocks.js:1366 +msgid "The Phrase Maker block opens a tool to create musical phrases." msgstr "" -#: js/musicutils.js:771 -#: js/synthutils.js:157 -#.TRANS: a musical instrument -msgid "gong" +#: js/blocks/WidgetBlocks.js:1373 +#.TRANS: assigns pitch to a sequence of beats to generate a melody +msgid "phrase maker" msgstr "" -#: js/musicutils.js:772 -#: js/synthutils.js:159 -#.TRANS: sound effect -msgid "clang" +#: js/blocks/WidgetBlocks.js:1444 +msgid "You must have at least one pitch block and one rhythm block in the matrix." msgstr "" -#: js/musicutils.js:773 -#: js/synthutils.js:161 -#.TRANS: sound effect -msgid "crash" +#: js/blocks/WidgetBlocks.js:1503 +msgid "The Status block opens a tool for inspecting the status of Music Blocks as it is running." msgstr "" -#: js/musicutils.js:774 -#: js/synthutils.js:163 -#.TRANS: sound effect -msgid "bottle" +#: js/blocks/WidgetBlocks.js:1580 +#.TRANS: AI-generated music +msgid "aimusic" msgstr "" -#: js/musicutils.js:775 -#: js/synthutils.js:165 -#.TRANS: sound effect -msgid "clap" +#: js/turtleactions/MeterActions.js:101 +#: js/turtleactions/MeterActions.js:139 +msgid "beats per minute must be greater than" msgstr "" -#: js/musicutils.js:776 -#: js/synthutils.js:167 -#.TRANS: sound effect -msgid "slap" +#: js/turtleactions/MeterActions.js:111 +#: js/turtleactions/MeterActions.js:149 +msgid "maximum" msgstr "" -#: js/musicutils.js:777 -#: js/synthutils.js:169 -#.TRANS: sound effect -msgid "splash" +#: js/turtleactions/MeterActions.js:117 +#: js/turtleactions/MeterActions.js:155 +msgid "beats per minute is" msgstr "" -#: js/musicutils.js:778 -#: js/synthutils.js:171 -#.TRANS: sound effect -msgid "bubbles" +#: js/turtleactions/DictActions.js:75 +#: js/turtleactions/DictActions.js:142 +#: js/turtleactions/DictActions.js:172 +msgid "font" msgstr "" -#: js/musicutils.js:779 -#: js/synthutils.js:173 -#.TRANS: sound effect -msgid "raindrop" +#: js/turtleactions/DictActions.js:255 +msgid "Dictionary with this name does not exist" msgstr "" -#: js/musicutils.js:780 -#: js/synthutils.js:175 -#.TRANS: animal sound effect -msgid "cat" +#: js/turtleactions/DictActions.js:259 +msgid "Key with this name does not exist in " msgstr "" -#: js/musicutils.js:781 -#: js/synthutils.js:177 -#.TRANS: animal sound effect -msgid "cricket" +#: js/turtleactions/DrumActions.js:227 +msgid "Noise Block: Did you mean to use a Note block?" msgstr "" -#: js/musicutils.js:782 -#: js/synthutils.js:179 -#.TRANS: animal sound effect -msgid "dog" +#: js/turtleactions/IntervalsActions.js:113 +msgid "one" msgstr "" -#: js/musicutils.js:784 -#: js/synthutils.js:86 -#.TRANS: musical instrument -msgid "banjo" +#: js/turtleactions/IntervalsActions.js:113 +msgid "two" msgstr "" -#: js/musicutils.js:785 -#: js/synthutils.js:88 -#.TRANS: musical instrument -msgid "koto" +#: js/turtleactions/IntervalsActions.js:113 +msgid "three" msgstr "" -#: js/musicutils.js:786 -#: js/synthutils.js:90 -#.TRANS: musical instrument -msgid "dulcimer" +#: js/turtleactions/IntervalsActions.js:113 +msgid "four" msgstr "" -#: js/musicutils.js:787 -#: js/synthutils.js:92 -#.TRANS: musical instrument -msgid "electric guitar" +#: js/turtleactions/IntervalsActions.js:113 +msgid "five" msgstr "" -#: js/musicutils.js:788 -#: js/synthutils.js:94 -#.TRANS: musical instrument -msgid "bassoon" +#: js/turtleactions/IntervalsActions.js:113 +msgid "six" msgstr "" -#: js/musicutils.js:789 -#: js/synthutils.js:96 -#.TRANS: musical instrument -msgid "celeste" +#: js/turtleactions/IntervalsActions.js:113 +msgid "seven" msgstr "" -#: js/musicutils.js:791 -#: js/musicutils.js:1123 -#: js/musicutils.js:1131 -#: js/temperament.js:650 -#.TRANS: musical temperament -msgid "equal" +#: js/turtleactions/IntervalsActions.js:113 +msgid "eight" msgstr "" -#: js/musicutils.js:793 -#: js/musicutils.js:1125 -#: js/musicutils.js:1133 -#.TRANS: musical temperament -msgid "Pythagorean" +#: js/turtleactions/IntervalsActions.js:113 +msgid "nine" msgstr "" -#: js/musicutils.js:795 -#: js/musicutils.js:1124 -#: js/musicutils.js:1132 -#.TRANS: musical temperament -msgid "just intonation" +#: js/turtleactions/IntervalsActions.js:119 +msgid "a" msgstr "" -#: js/musicutils.js:797 -#: js/musicutils.js:1126 -#: js/musicutils.js:1127 -#: js/musicutils.js:1134 -#: js/musicutils.js:1135 -#.TRANS: musical temperament -msgid "meantone" +#: js/turtleactions/IntervalsActions.js:120 +msgid "below" msgstr "" -#: js/musicutils.js:814 -msgid "major 7th" +#: js/turtleactions/IntervalsActions.js:124 +msgid "above" msgstr "" -#: js/musicutils.js:815 -msgid "minor 7th" +#: js/turtleactions/IntervalsActions.js:131 +msgid "plus" msgstr "" -#: js/musicutils.js:816 -msgid "dominant 7th" +#: js/turtleactions/IntervalsActions.js:139 +msgid " below" msgstr "" -#: js/musicutils.js:817 -msgid "minor-major 7th" +#: js/turtleactions/IntervalsActions.js:257 +msgid "Adding missing pitch number 0." msgstr "" -#: js/musicutils.js:818 -msgid "fully-diminished 7th" +#: js/turtleactions/IntervalsActions.js:265 +msgid "Ignoring pitch numbers less than zero or greater than eleven." msgstr "" -#: js/musicutils.js:819 -msgid "half-diminished 7th" +#: js/turtleactions/IntervalsActions.js:271 +msgid "Ignoring duplicate pitch numbers." msgstr "" -#: js/musicutils.js:4379 -#: js/musicutils.js:4416 -msgid "current" +#: js/turtleactions/ToneActions.js:134 +msgid "Vibrato intensity must be between 1 and 100." msgstr "" -#: js/musicutils.js:4382 -#: js/musicutils.js:4407 -msgid "next" +#: js/turtleactions/ToneActions.js:139 +msgid "Vibrato rate must be greater than 0." msgstr "" -#: js/musicutils.js:4385 -#: js/musicutils.js:4412 -msgid "previous" +#: js/turtleactions/ToneActions.js:192 +#: js/turtleactions/ToneActions.js:265 +#.TRANS: Depth is the intesity of the tremolo or chorus effect. +msgid "Depth is out of range." msgstr "" -#: js/synthutils.js:104 -#.TRANS: simple monotone synthesizer -msgid "simple-2" +#: js/turtleactions/ToneActions.js:301 +msgid "Distortion must be from 0 to 100." msgstr "" -#: js/synthutils.js:106 -#.TRANS: simple monotone synthesizer -msgid "simple-3" +#: js/turtleactions/ToneActions.js:332 +#.TRANS: partials components in a harmonic series +msgid "Partial must be greater than or equal to 0." msgstr "" -#: js/synthutils.js:108 -#.TRANS: simple monotone synthesizer -msgid "simple-4" +#: js/turtleactions/ToneActions.js:378 +#: js/turtleactions/ToneActions.js:417 +#: js/turtleactions/ToneActions.js:456 +#: js/widgets/timbre.js:782 +msgid "Unable to use synth due to existing oscillator" msgstr "" -#: js/synthutils.js:141 -#.TRANS: musical instrument -msgid "taiko" +#: js/turtleactions/ToneActions.js:388 +#: js/turtleactions/ToneActions.js:427 +msgid "The input cannot be negative." msgstr "" -#: js/modewidget.js:86 -#: js/modewidget.js:88 -#: js/modewidget.js:642 -#: js/modewidget.js:644 -#: js/modewidget.js:712 -#: js/modewidget.js:714 -#: js/temperament.js:2078 -#: js/rhythmruler.js:189 -#: js/rhythmruler.js:1410 -#: js/rhythmruler.js:1412 -#: js/rhythmruler.js:1435 -#: js/rhythmruler.js:1437 -#: js/meterwidget.js:89 -#: js/meterwidget.js:91 +#: js/widgets/modewidget.js:86 +#: js/widgets/modewidget.js:88 +#: js/widgets/modewidget.js:642 +#: js/widgets/modewidget.js:644 +#: js/widgets/modewidget.js:712 +#: js/widgets/modewidget.js:714 +#: js/widgets/meterwidget.js:194 +#: js/widgets/meterwidget.js:196 +#: js/widgets/temperament.js:2236 +#: js/widgets/rhythmruler.js:457 +#: js/widgets/rhythmruler.js:1790 +#: js/widgets/rhythmruler.js:1792 +#: js/widgets/rhythmruler.js:1816 +#: js/widgets/rhythmruler.js:1818 msgid "Play all" msgstr "" -#: js/modewidget.js:115 -#: js/pitchstaircase.js:641 -#: js/phrasemaker.js:339 -#: js/pitchdrummatrix.js:94 -#: js/pitchslider.js:125 -#: js/temperament.js:2083 -#: js/musickeyboard.js:530 -#: js/timbre.js:756 -#: js/meterwidget.js:124 -#: js/arpeggio.js:103 +#: js/widgets/modewidget.js:115 +#: js/widgets/meterwidget.js:229 +#: js/widgets/pitchdrummatrix.js:166 +#: js/widgets/pitchslider.js:125 +#: js/widgets/pitchstaircase.js:641 +#: js/widgets/temperament.js:2244 +#: js/widgets/timbre.js:756 +#: js/widgets/arpeggio.js:103 +#: js/widgets/musickeyboard.js:688 +#: js/widgets/phrasemaker.js:550 msgid "Save" msgstr "" -#: js/modewidget.js:121 -#: js/pitchstaircase.js:686 -#: js/phrasemaker.js:356 -#: js/pitchdrummatrix.js:109 -#: js/musickeyboard.js:534 -#: js/rhythmruler.js:269 -#: js/arpeggio.js:118 +#: js/widgets/modewidget.js:121 +#: js/widgets/pitchdrummatrix.js:181 +#: js/widgets/pitchstaircase.js:686 +#: js/widgets/arpeggio.js:118 +#: js/widgets/musickeyboard.js:696 +#: js/widgets/phrasemaker.js:567 +#: js/widgets/rhythmruler.js:601 #.TRANS: clear all subdivisions from the ruler. msgid "Clear" msgstr "" -#: js/modewidget.js:127 +#: js/widgets/modewidget.js:127 msgid "Rotate counter clockwise" msgstr "" -#: js/modewidget.js:133 +#: js/widgets/modewidget.js:133 msgid "Rotate clockwise" msgstr "" -#: js/modewidget.js:139 +#: js/widgets/modewidget.js:139 msgid "Invert" msgstr "" -#: js/modewidget.js:145 -#: js/pitchstaircase.js:678 -#: js/rhythmruler.js:258 -#: js/timbre.js:963 +#: js/widgets/modewidget.js:145 +#: js/widgets/pitchstaircase.js:678 +#: js/widgets/timbre.js:963 +#: js/widgets/rhythmruler.js:578 msgid "Undo" msgstr "पूर्ववत" -#: js/modewidget.js:163 +#: js/widgets/modewidget.js:163 #.TRANS: A circle of notes represents the musical mode. msgid "Click in the circle to select notes for the mode." msgstr "" -#: js/modewidget.js:1017 -#: js/pitchstaircase.js:580 -#: js/phrasemaker.js:4855 -#: js/temperament.js:1754 -#: js/rhythmruler.js:1865 -#: js/rhythmruler.js:2081 -#: js/tempo.js:414 +#: js/widgets/modewidget.js:1017 +#: js/widgets/pitchstaircase.js:580 +#: js/widgets/temperament.js:1929 +#: js/widgets/tempo.js:414 +#: js/widgets/phrasemaker.js:5356 +#: js/widgets/rhythmruler.js:2254 +#: js/widgets/rhythmruler.js:2472 msgid "New action block generated!" msgstr "" -#: js/oscilloscope.js:79 -msgid "Zoom In" -msgstr "" - -#: js/oscilloscope.js:88 -msgid "Zoom Out" -msgstr "" - -#: js/pitchstaircase.js:624 -msgid "Play chord" -msgstr "" - -#: js/pitchstaircase.js:632 -msgid "Play scale" +#: js/widgets/meterwidget.js:275 +msgid "Reset" msgstr "" -#: js/pitchstaircase.js:696 -msgid "Click on a note to create a new step." +#: js/widgets/meterwidget.js:301 +msgid "Click in the circle to select strong beats for the meter." msgstr "" -#: js/phrasemaker.js:363 -msgid "Export" +#: js/widgets/oscilloscope.js:79 +msgid "Zoom In" msgstr "" -#: js/phrasemaker.js:370 -msgid "Sort" +#: js/widgets/oscilloscope.js:88 +msgid "Zoom Out" msgstr "" -#: js/phrasemaker.js:373 -#: js/musickeyboard.js:559 -msgid "Add note" +#: js/widgets/pitchdrummatrix.js:356 +#: js/widgets/pitchdrummatrix.js:752 +msgid "Click in the grid to map notes to drums." msgstr "" -#: js/phrasemaker.js:764 -msgid "Click on the table to add notes." +#: js/widgets/pitchslider.js:103 +msgid "Move up" msgstr "" -#: js/phrasemaker.js:2414 -#: js/phrasemaker.js:2543 -msgid "tuplet value" +#: js/widgets/pitchslider.js:114 +msgid "Move down" msgstr "" -#: js/pitchdrummatrix.js:270 -#: js/pitchdrummatrix.js:639 -msgid "Click in the grid to map notes to drums." +#: js/widgets/pitchslider.js:136 +msgid "Click on the slider to create a note block." msgstr "" -#: js/pitchslider.js:103 -msgid "Move up" +#: js/widgets/pitchstaircase.js:624 +msgid "Play chord" msgstr "" -#: js/pitchslider.js:114 -msgid "Move down" +#: js/widgets/pitchstaircase.js:632 +msgid "Play scale" msgstr "" -#: js/pitchslider.js:136 -msgid "Click on the slider to create a note block." +#: js/widgets/pitchstaircase.js:696 +msgid "Click on a note to create a new step." msgstr "" -#: js/temperament.js:215 +#: js/widgets/temperament.js:321 msgid "back to 2:1 octave space" msgstr "" -#: js/temperament.js:323 +#: js/widgets/temperament.js:447 msgid "edit" msgstr "" -#: js/temperament.js:330 -#: js/temperament.js:332 -#: js/temperament.js:1336 -#: js/temperament.js:1338 +#: js/widgets/temperament.js:454 +#: js/widgets/temperament.js:456 +#: js/widgets/temperament.js:1493 +#: js/widgets/temperament.js:1495 msgid "close" msgstr "" -#: js/temperament.js:423 -#: js/temperament.js:736 -#: js/temperament.js:743 -#: js/temperament.js:845 -#: js/temperament.js:935 -#: js/temperament.js:942 -#: js/temperament.js:1015 -#: js/temperament.js:1284 -#: js/temperament.js:1354 -#: js/temperament.js:1430 +#: js/widgets/temperament.js:552 +#: js/widgets/temperament.js:877 +#: js/widgets/temperament.js:884 +#: js/widgets/temperament.js:986 +#: js/widgets/temperament.js:1080 +#: js/widgets/temperament.js:1087 +#: js/widgets/temperament.js:1160 +#: js/widgets/temperament.js:1433 +#: js/widgets/temperament.js:1511 +#: js/widgets/temperament.js:1596 msgid "done" msgstr "" -#: js/temperament.js:477 -#: js/temperament.js:482 -#: js/temperament.js:918 +#: js/widgets/temperament.js:610 +#: js/widgets/temperament.js:615 +#: js/widgets/temperament.js:1063 msgid "ratio" msgstr "" -#: js/temperament.js:483 +#: js/widgets/temperament.js:616 msgid "interval" msgstr "" -#: js/temperament.js:611 +#: js/widgets/temperament.js:744 msgid "non scalar" msgstr "" -#: js/temperament.js:650 +#: js/widgets/temperament.js:787 msgid "ratios" msgstr "" -#: js/temperament.js:650 +#: js/widgets/temperament.js:787 msgid "arbitrary" msgstr "" -#: js/temperament.js:719 +#: js/widgets/temperament.js:860 msgid "number of divisions" msgstr "" -#: js/temperament.js:741 -#: js/temperament.js:858 -#: js/temperament.js:940 -#: js/temperament.js:1033 +#: js/widgets/temperament.js:882 +#: js/widgets/temperament.js:999 +#: js/widgets/temperament.js:1085 +#: js/widgets/temperament.js:1178 msgid "preview" msgstr "" -#: js/temperament.js:788 +#: js/widgets/temperament.js:929 msgid "The Number of divisions is too large." msgstr "" -#: js/temperament.js:921 +#: js/widgets/temperament.js:1066 msgid "recursion" msgstr "" -#: js/temperament.js:1450 +#: js/widgets/temperament.js:1616 msgid "The octave ratio has changed. This changes temperament significantly." msgstr "" -#: js/temperament.js:2087 +#: js/widgets/temperament.js:2248 msgid "Table" msgstr "" -#: js/temperament.js:2185 +#: js/widgets/temperament.js:2356 msgid "Add pitches" msgstr "" -#: js/musickeyboard.js:570 -msgid "Metronome" +#: js/widgets/tempo.js:78 +#: js/widgets/tempo.js:97 +#: js/widgets/tempo.js:99 +#: js/widgets/aiwidget.js:134 +#: js/widgets/aiwidget.js:136 +#: js/widgets/rhythmruler.js:681 +#: js/widgets/rhythmruler.js:683 +#: js/widgets/rhythmruler.js:1864 +#: js/widgets/rhythmruler.js:1866 +#: js/widgets/sampler.js:180 +#: js/widgets/sampler.js:182 +msgid "Pause" msgstr "" -#: js/musickeyboard.js:1296 -#: plugins/rodi.rtp:193 -msgid "duration" -msgstr "कालावधी" +#: js/widgets/tempo.js:113 +msgid "Save tempo" +msgstr "" -#: js/musickeyboard.js:2840 -msgid "New action blocks generated!" +#: js/widgets/tempo.js:144 +msgid "speed up" msgstr "" -#: js/musickeyboard.js:2841 -msgid "New action block generated" +#: js/widgets/tempo.js:150 +msgid "slow down" msgstr "" -#: js/musickeyboard.js:2984 -#: js/musickeyboard.js:2992 -msgid "MIDI device present." +#: js/widgets/tempo.js:194 +msgid "Adjust the tempo with the buttons." msgstr "" -#: js/musickeyboard.js:2995 -msgid "No MIDI device found." +#: js/widgets/tempo.js:261 +msgid "Please enter a number between 30 and 1000" msgstr "" -#: js/musickeyboard.js:3000 -msgid "Failed to get MIDI access in browser." +#: js/widgets/tempo.js:268 +#: js/widgets/tempo.js:271 +msgid "The beats per minute must be between 30 and 1000." msgstr "" -#: js/rhythmruler.js:202 -msgid "Save rhythms" +#: js/widgets/tempo.js:287 +msgid "The beats per minute must be below 1000." msgstr "" -#: js/rhythmruler.js:222 -msgid "Save drum machine" +#: js/widgets/tempo.js:303 +msgid "The beats per minute must be above 30" msgstr "" -#: js/rhythmruler.js:263 -#.TRANS: user can tap out a rhythm by clicking on a ruler. -msgid "Tap a rhythm" +#: js/widgets/timbre.js:766 +msgid "Synthesizer" msgstr "" -#: js/rhythmruler.js:342 -#: js/rhythmruler.js:344 -#: js/rhythmruler.js:1481 -#: js/rhythmruler.js:1483 -#: js/sampler.js:110 -#: js/sampler.js:112 -#: js/tempo.js:78 -#: js/tempo.js:97 -#: js/tempo.js:99 -msgid "Pause" +#: js/widgets/timbre.js:789 +msgid "Oscillator" msgstr "" -#: js/rhythmruler.js:478 -msgid "Click on the ruler to divide it." +#: js/widgets/timbre.js:840 +msgid "Envelope" msgstr "" -#: js/rhythmruler.js:603 -#: js/rhythmruler.js:605 -#: js/rhythmruler.js:804 -#: js/rhythmruler.js:806 -#: js/rhythmruler.js:1386 -#: js/rhythmruler.js:1388 -msgid "tap a rhythm" +#: js/widgets/timbre.js:886 +#: planet/js/GlobalTag.js:50 +#.TRANS: On the Planet, we use labels to tag projects. +msgid "Effects" msgstr "" -#: js/rhythmruler.js:1084 -msgid "Maximum value of 256 has been exceeded." +#: js/widgets/timbre.js:904 +msgid "Filter" msgstr "" -#: js/sampler.js:137 -msgid "Warning: Sample is bigger than 1MB." +#: js/widgets/timbre.js:946 +msgid "Add filter" msgstr "" -#: js/sampler.js:142 -msgid "Upload failed: Sample is not a .wav file." +#: js/widgets/timbre.js:987 +msgid "Click on buttons to open the timbre design tools." msgstr "" -#: js/sampler.js:164 -msgid "A new sample block was generated." +#: js/widgets/timbre.js:1273 +msgid "harmonicity" msgstr "" -#: js/sampler.js:255 -msgid "Upload sample" +#: js/widgets/timbre.js:1340 +#: js/widgets/timbre.js:1406 +msgid "modulation index" msgstr "" -#: js/sampler.js:306 -msgid "Save sample" +#: js/widgets/timbre.js:1484 +msgid "vibrato amount" msgstr "" -#: js/sampler.js:697 -#.TRANS: The reference tone is a sound used for comparison. -msgid "reference tone" +#: js/widgets/timbre.js:1919 +msgid "Filter already present." msgstr "" -#: js/tempo.js:113 -msgid "Save tempo" +#: js/widgets/timbre.js:2322 +msgid "delay (MS)" msgstr "" -#: js/tempo.js:144 -msgid "speed up" +#: js/widgets/timbre.js:2507 +msgid "distortion amount" msgstr "" -#: js/tempo.js:150 -msgid "slow down" +#: js/widgets/aiwidget.js:180 +#: js/widgets/sampler.js:227 +msgid "Warning: Sample is bigger than 1MB." msgstr "" -#: js/tempo.js:194 -msgid "Adjust the tempo with the buttons." +#: js/widgets/aiwidget.js:539 +msgid "New start block generated" msgstr "" -#: js/tempo.js:261 -msgid "Please enter a number between 30 and 1000" +#: js/widgets/aiwidget.js:541 +msgid "MIDI loading. This may take some time depending upon the number of notes in the track" msgstr "" -#: js/tempo.js:268 -#: js/tempo.js:271 -msgid "The beats per minute must be between 30 and 1000." +#: js/widgets/aiwidget.js:551 +#: js/widgets/sampler.js:254 +msgid "Upload failed: Sample is not a .wav file." msgstr "" -#: js/tempo.js:287 -msgid "The beats per minute must be below 1000." +#: js/widgets/aiwidget.js:679 +#: js/widgets/sampler.js:432 +msgid "Save sample" msgstr "" -#: js/tempo.js:303 -msgid "The beats per minute must be above 30" +#: js/widgets/aiwidget.js:701 +msgid "AI Music" msgstr "" -#: js/timbre.js:766 -msgid "Synthesizer" +#: js/widgets/arpeggio.js:239 +msgid "Click in the grid to add steps to the arpeggio." msgstr "" -#: js/timbre.js:789 -msgid "Oscillator" +#: js/widgets/help.js:95 +#: js/widgets/help.js:125 +#: js/widgets/help.js:146 +#: js/widgets/help.js:158 +#: js/widgets/help.js:376 +#: js/widgets/help.js:391 +msgid "Take a tour" msgstr "" -#: js/timbre.js:840 -msgid "Envelope" +#: js/widgets/musickeyboard.js:725 +#: js/widgets/phrasemaker.js:584 +msgid "Add note" msgstr "" -#: js/timbre.js:886 -#: js/GlobalTag.js:50 -#.TRANS: On the Planet, we use labels to tag projects. -msgid "Effects" +#: js/widgets/musickeyboard.js:744 +msgid "Metronome" msgstr "" -#: js/timbre.js:904 -msgid "Filter" +#: js/widgets/musickeyboard.js:1549 +#: plugins/rodi.rtp:193 +msgid "duration" +msgstr "कालावधी" + +#: js/widgets/musickeyboard.js:3179 +msgid "New action blocks generated" msgstr "" -#: js/timbre.js:946 -msgid "Add filter" +#: js/widgets/musickeyboard.js:3180 +msgid "New action block generated" msgstr "" -#: js/timbre.js:987 -msgid "Click on buttons to open the timbre design tools." +#: js/widgets/musickeyboard.js:3365 +#: js/widgets/musickeyboard.js:3373 +msgid "MIDI device present." msgstr "" -#: js/timbre.js:1273 -msgid "harmonicity" +#: js/widgets/musickeyboard.js:3376 +msgid "No MIDI device found." msgstr "" -#: js/timbre.js:1340 -#: js/timbre.js:1406 -msgid "modulation index" +#: js/widgets/musickeyboard.js:3386 +msgid "Failed to get MIDI access in browser." msgstr "" -#: js/timbre.js:1484 -msgid "vibrato amount" +#: js/widgets/phrasemaker.js:574 +msgid "Export" msgstr "" -#: js/timbre.js:1919 -msgid "Filter already present." +#: js/widgets/phrasemaker.js:581 +msgid "Sort" msgstr "" -#: js/timbre.js:2322 -msgid "delay (MS)" +#: js/widgets/phrasemaker.js:975 +msgid "Click on the table to add notes." msgstr "" -#: js/timbre.js:2507 -msgid "distortion amount" +#: js/widgets/phrasemaker.js:2677 +#: js/widgets/phrasemaker.js:2819 +msgid "tuplet value" msgstr "" -#: js/meterwidget.js:170 -msgid "Reset" +#: js/widgets/rhythmruler.js:486 +msgid "Save rhythms" msgstr "" -#: js/meterwidget.js:196 -msgid "Click in the circle to select strong beats for the meter." +#: js/widgets/rhythmruler.js:512 +msgid "Save drum machine" msgstr "" -#: js/arpeggio.js:239 -msgid "Click in the grid to add steps to the arpeggio." +#: js/widgets/rhythmruler.js:589 +#.TRANS: user can tap out a rhythm by clicking on a ruler. +msgid "Tap a rhythm" +msgstr "" + +#: js/widgets/rhythmruler.js:817 +msgid "Click on the ruler to divide it." +msgstr "" + +#: js/widgets/rhythmruler.js:950 +#: js/widgets/rhythmruler.js:952 +#: js/widgets/rhythmruler.js:1152 +#: js/widgets/rhythmruler.js:1154 +#: js/widgets/rhythmruler.js:1765 +#: js/widgets/rhythmruler.js:1767 +msgid "tap a rhythm" msgstr "" -#: js/ProjectStorage.js:243 -msgid "anonymous" +#: js/widgets/rhythmruler.js:1459 +msgid "Maximum value of 256 has been exceeded." msgstr "" -#: js/GlobalCard.js:68 -msgid "Share" +#: js/widgets/sampler.js:237 +msgid "Recording started..." msgstr "" -#: js/GlobalCard.js:74 -msgid "Flags" +#: js/widgets/sampler.js:245 +msgid "Recording complete..." msgstr "" -#: js/LocalCard.js:36 -msgid "View published project" +#: js/widgets/sampler.js:283 +msgid "A new sample block was generated." msgstr "" -#: js/LocalCard.js:42 -msgid "Publish project" +#: js/widgets/sampler.js:378 +msgid "Upload sample" msgstr "" -#: js/LocalCard.js:51 -msgid "Edit project" +#: js/widgets/sampler.js:399 +msgid "Warning: Your sample cannot be loaded because it is >1MB." msgstr "" -#: js/LocalCard.js:52 -msgid "Delete project" +#: js/widgets/sampler.js:448 +msgid "Toggle Mic" msgstr "" -#: js/LocalCard.js:53 -msgid "Download project" +#: js/widgets/sampler.js:458 +msgid "Playback" msgstr "" -#: js/LocalCard.js:55 -msgid "Duplicate project" +#: js/widgets/sampler.js:979 +#.TRANS: The reference tone is a sound used for comparison. +msgid "reference tone" msgstr "" -#: js/GlobalTag.js:28 +#: planet/js/GlobalTag.js:28 #.TRANS: On the Planet, we use labels to tag projects. msgid "All Projects" msgstr "" -#: js/GlobalTag.js:30 -#: js/StringHelper.js:37 +#: planet/js/GlobalTag.js:30 +#: planet/js/StringHelper.js:37 #.TRANS: On the Planet, we use labels to tag projects. msgid "My Projects" msgstr "" -#: js/GlobalTag.js:32 +#: planet/js/GlobalTag.js:32 #.TRANS: On the Planet, we use labels to tag projects. msgid "Examples" msgstr "" -#: js/GlobalTag.js:34 +#: planet/js/GlobalTag.js:34 #.TRANS: On the Planet, we use labels to tag projects. msgid "Music" msgstr "" -#: js/GlobalTag.js:36 +#: planet/js/GlobalTag.js:36 #.TRANS: On the Planet, we use labels to tag projects. msgid "Art" msgstr "" -#: js/GlobalTag.js:38 +#: planet/js/GlobalTag.js:38 #.TRANS: On the Planet, we use labels to tag projects. msgid "Math" msgstr "" -#: js/GlobalTag.js:40 +#: planet/js/GlobalTag.js:40 #.TRANS: On the Planet, we use labels to tag projects. msgid "Interactive" msgstr "" -#: js/GlobalTag.js:42 +#: planet/js/GlobalTag.js:42 #.TRANS: On the Planet, we use labels to tag projects. msgid "Design" msgstr "" -#: js/GlobalTag.js:44 +#: planet/js/GlobalTag.js:44 #.TRANS: On the Planet, we use labels to tag projects. msgid "Game" msgstr "" -#: js/GlobalTag.js:46 +#: planet/js/GlobalTag.js:46 #.TRANS: On the Planet, we use labels to tag projects. msgid "Media" msgstr "" -#: js/GlobalTag.js:48 +#: planet/js/GlobalTag.js:48 #.TRANS: On the Planet, we use labels to tag projects. msgid "Sensors" msgstr "" -#: js/GlobalTag.js:52 +#: planet/js/GlobalTag.js:52 #.TRANS: On the Planet, we use labels to tag projects. msgid "Code Snippet" msgstr "" -#: js/helper.js:149 -#: js/StringHelper.js:49 -msgid "Show more tags" +#: planet/js/LocalCard.js:36 +msgid "View published project" msgstr "" -#: js/helper.js:150 -msgid "Show fewer tags" +#: planet/js/LocalCard.js:42 +msgid "Publish project" +msgstr "" + +#: planet/js/LocalCard.js:51 +msgid "Edit project" +msgstr "" + +#: planet/js/LocalCard.js:52 +msgid "Delete project" +msgstr "" + +#: planet/js/LocalCard.js:53 +msgid "Download project" +msgstr "" + +#: planet/js/LocalCard.js:55 +msgid "Duplicate project" +msgstr "" + +#: planet/js/ProjectStorage.js:243 +msgid "anonymous" +msgstr "" + +#: planet/js/SaveInterface.js:34 +msgid "Open in Music Blocks" +msgstr "" + +#: planet/js/SaveInterface.js:35 +msgid "Open in Turtle Blocks" +msgstr "" + +#: planet/js/GlobalCard.js:68 +msgid "Share" +msgstr "" + +#: planet/js/GlobalCard.js:74 +msgid "Flags" +msgstr "" + +#: planet/js/GlobalPlanet.js:35 +msgid "No results found." +msgstr "" + +#: planet/js/GlobalPlanet.js:51 +msgid "Remix of" msgstr "" -#: js/ProjectViewer.js:30 +#: planet/js/GlobalPlanet.js:509 +msgid "Cannot connect to server" +msgstr "" + +#: planet/js/ProjectViewer.js:30 msgid "Error: Report could not be submitted. Try again later." msgstr "" -#: js/ProjectViewer.js:31 +#: planet/js/ProjectViewer.js:31 msgid "Thank you for reporting this project. A moderator will review the project shortly, to verify violation of the Sugar Labs Code of Conduct." msgstr "" -#: js/ProjectViewer.js:32 -#: js/StringHelper.js:62 -#: js/StringHelper.js:64 -#: js/StringHelper.js:68 +#: planet/js/ProjectViewer.js:32 +#: planet/js/StringHelper.js:62 +#: planet/js/StringHelper.js:64 +#: planet/js/StringHelper.js:68 msgid "Report Project" msgstr "" -#: js/ProjectViewer.js:33 -#: js/StringHelper.js:63 +#: planet/js/ProjectViewer.js:33 +#: planet/js/StringHelper.js:63 msgid "Project Reported" msgstr "" -#: js/ProjectViewer.js:34 +#: planet/js/ProjectViewer.js:34 msgid "Report description required" msgstr "" -#: js/ProjectViewer.js:35 +#: planet/js/ProjectViewer.js:35 msgid "Report description too long" msgstr "" -#: js/StringHelper.js:30 +#: planet/js/Publisher.js:30 +msgid "Feature unavailable - cannot connect to server. Reload Music Blocks to try again." +msgstr "" + +#: planet/js/Publisher.js:220 +#: planet/js/Publisher.js:237 +msgid "This field is required" +msgstr "" + +#: planet/js/Publisher.js:227 +msgid "Title too long" +msgstr "" + +#: planet/js/Publisher.js:244 +msgid "Description too long" +msgstr "" + +#: planet/js/Publisher.js:341 +msgid "Server Error" +msgstr "" + +#: planet/js/Publisher.js:341 +msgid "Try Again" +msgstr "" + +#: planet/js/StringHelper.js:30 msgid "Planet" msgstr "ग्रह" -#: js/StringHelper.js:31 +#: planet/js/StringHelper.js:31 msgid "Close Planet" msgstr "" -#: js/StringHelper.js:32 +#: planet/js/StringHelper.js:32 msgid "Open project from file" msgstr "" -#: js/StringHelper.js:34 +#: planet/js/StringHelper.js:34 msgid "Local" msgstr "" -#: js/StringHelper.js:35 +#: planet/js/StringHelper.js:35 msgid "Global" msgstr "" -#: js/StringHelper.js:36 +#: planet/js/StringHelper.js:36 msgid "Search for a project" msgstr "" -#: js/StringHelper.js:38 +#: planet/js/StringHelper.js:38 msgid "Publish Project" msgstr "" -#: js/StringHelper.js:40 +#: planet/js/StringHelper.js:40 msgid "Tags (max 5)" msgstr "" -#: js/StringHelper.js:41 -#: js/StringHelper.js:61 +#: planet/js/StringHelper.js:41 +#: planet/js/StringHelper.js:61 msgid "Description" msgstr "" -#: js/StringHelper.js:42 -#: js/StringHelper.js:67 +#: planet/js/StringHelper.js:42 +#: planet/js/StringHelper.js:67 msgid "Submit" msgstr "" -#: js/StringHelper.js:43 -#: js/StringHelper.js:47 +#: planet/js/StringHelper.js:43 +#: planet/js/StringHelper.js:47 msgid "Cancel" msgstr "" -#: js/StringHelper.js:44 +#: planet/js/StringHelper.js:44 msgid "Delete \\"\\"?" msgstr "" -#: js/StringHelper.js:45 +#: planet/js/StringHelper.js:45 msgid "Permanently delete project \\"\\"?" msgstr "" -#: js/StringHelper.js:48 +#: planet/js/StringHelper.js:48 msgid "Explore Projects" msgstr "" -#: js/StringHelper.js:50 +#: planet/js/StringHelper.js:49 +#: planet/js/helper.js:149 +msgid "Show more tags" +msgstr "" + +#: planet/js/StringHelper.js:50 msgid "Most recent" msgstr "" -#: js/StringHelper.js:51 +#: planet/js/StringHelper.js:51 msgid "Most liked" msgstr "" -#: js/StringHelper.js:52 +#: planet/js/StringHelper.js:52 msgid "Most downloaded" msgstr "" -#: js/StringHelper.js:53 +#: planet/js/StringHelper.js:53 msgid "A-Z" msgstr "" -#: js/StringHelper.js:54 +#: planet/js/StringHelper.js:54 msgid "Sort by" msgstr "" -#: js/StringHelper.js:55 +#: planet/js/StringHelper.js:55 msgid "Load More Projects" msgstr "" -#: js/StringHelper.js:56 +#: planet/js/StringHelper.js:56 msgid "Last Updated" msgstr "" -#: js/StringHelper.js:57 +#: planet/js/StringHelper.js:57 msgid "Creation Date" msgstr "" -#: js/StringHelper.js:58 +#: planet/js/StringHelper.js:58 msgid "Number of Downloads:" msgstr "" -#: js/StringHelper.js:59 +#: planet/js/StringHelper.js:59 msgid "Number of Likes:" msgstr "" -#: js/StringHelper.js:60 +#: planet/js/StringHelper.js:60 msgid "Tags:" msgstr "" -#: js/StringHelper.js:65 +#: planet/js/StringHelper.js:65 msgid "Report projects which violate the Sugar Labs Code of Conduct." msgstr "" -#: js/StringHelper.js:66 +#: planet/js/StringHelper.js:66 msgid "Reason for reporting project" msgstr "" -#: js/StringHelper.js:70 +#: planet/js/StringHelper.js:70 msgid "Download as File" msgstr "" -#: js/GlobalPlanet.js:35 -msgid "No results found." -msgstr "" - -#: js/GlobalPlanet.js:51 -msgid "Remix of" -msgstr "" - -#: js/GlobalPlanet.js:509 -msgid "Cannot connect to server" +#: planet/js/helper.js:150 +msgid "Show fewer tags" msgstr "" -#: js/Publisher.js:30 -msgid "Feature unavailable - cannot connect to server. Reload Music Blocks to try again." -msgstr "" +#: plugins/accelerometer.rtp:48 +msgid "motion x" +msgstr "x चलऩ" -#: js/Publisher.js:218 -#: js/Publisher.js:235 -msgid "This field is required" -msgstr "" +#: plugins/accelerometer.rtp:56 +msgid "motion y" +msgstr "y चलऩ" -#: js/Publisher.js:225 -msgid "Title too long" -msgstr "" +#: plugins/accelerometer.rtp:64 +msgid "motion z" +msgstr "z चलऩ" -#: js/Publisher.js:242 -msgid "Description too long" -msgstr "" +#: plugins/facebook.rtp:27 +msgid "publish" +msgstr "प्रकाशित" -#: js/Publisher.js:339 -msgid "Server Error" -msgstr "" +#: plugins/maths.rtp:62 +msgid "power" +msgstr "शक्ती" -#: js/Publisher.js:339 -msgid "Try Again" -msgstr "" +#: plugins/maths.rtp:62 +msgid "base" +msgstr "तळ" -#: js/SaveInterface.js:34 -msgid "Open in Music Blocks" +#: plugins/maths.rtp:62 +msgid "exp" msgstr "" -#: js/SaveInterface.js:35 -msgid "Open in Turtle Blocks" -msgstr "" +#: plugins/maths.rtp:99 +msgid "floor" +msgstr "मजला" -#: plugins/weather.rtp:68 -#: plugins/weather.rtp:97 -msgid "Days ahead must be in the range of -1 to 5." +#: plugins/maths.rtp:104 +msgid "ceiling" msgstr "" -#: plugins/weather.rtp:122 -msgid "forecast" -msgstr "अंदाज" - -#: plugins/weather.rtp:123 -#: plugins/weather.rtp:137 -#: plugins/weather.rtp:150 -msgid "city" -msgstr "शहर" - -#: plugins/weather.rtp:124 -#: plugins/weather.rtp:138 -#: plugins/weather.rtp:151 -msgid "day" -msgstr "दिवस" - -#: plugins/weather.rtp:136 -msgid "high" -msgstr "उच्च" +#: plugins/maths.rtp:109 +msgid "to degrees" +msgstr "अंश" -#: plugins/weather.rtp:149 -msgid "low" -msgstr "कमी" +#: plugins/maths.rtp:114 +msgid "to radians" +msgstr "त्रिज्यी कडे" #: plugins/nutrition.rtp:104 msgid "get calories" @@ -9465,45 +7753,6 @@ msgstr "कुकी" msgid "water" msgstr "पाणी" -#: plugins/maths.rtp:62 -#: plugins/examples.rtp:93 -msgid "power" -msgstr "शक्ती" - -#: plugins/maths.rtp:62 -#: plugins/examples.rtp:93 -msgid "base" -msgstr "तळ" - -#: plugins/maths.rtp:62 -#: plugins/examples.rtp:93 -msgid "exp" -msgstr "" - -#: plugins/maths.rtp:99 -#: plugins/examples.rtp:130 -msgid "floor" -msgstr "मजला" - -#: plugins/maths.rtp:104 -#: plugins/examples.rtp:135 -msgid "ceiling" -msgstr "" - -#: plugins/maths.rtp:109 -#: plugins/examples.rtp:140 -msgid "to degrees" -msgstr "अंश" - -#: plugins/maths.rtp:114 -#: plugins/examples.rtp:145 -msgid "to radians" -msgstr "त्रिज्यी कडे" - -#: plugins/facebook.rtp:27 -msgid "publish" -msgstr "प्रकाशित" - #: plugins/rodi.rtp:172 msgid "blink" msgstr "" @@ -9532,17 +7781,68 @@ msgstr "" msgid "move" msgstr "हलवा" -#: plugins/accelerometer.rtp:48 -msgid "motion x" -msgstr "x चलऩ" +#: plugins/weather.rtp:68 +#: plugins/weather.rtp:97 +msgid "Days ahead must be in the range of -1 to 5." +msgstr "" -#: plugins/accelerometer.rtp:56 -msgid "motion y" -msgstr "y चलऩ" +#: plugins/weather.rtp:122 +msgid "forecast" +msgstr "अंदाज" -#: plugins/accelerometer.rtp:64 -msgid "motion z" -msgstr "z चलऩ" +#: plugins/weather.rtp:123 +#: plugins/weather.rtp:137 +#: plugins/weather.rtp:150 +msgid "city" +msgstr "शहर" + +#: plugins/weather.rtp:124 +#: plugins/weather.rtp:138 +#: plugins/weather.rtp:151 +msgid "day" +msgstr "दिवस" + +#: plugins/weather.rtp:136 +msgid "high" +msgstr "उच्च" + +#: plugins/weather.rtp:149 +msgid "low" +msgstr "कमी" + +#~msgid ""Toggle Fullscreen" +#~msgstr ""पूर्ण स्क्रीन परिवर्तन करें" + +#: js/toolbar.js:70 + +#: js/toolbar.js:130 + +#: js/toolbar.js:194 + +#: js/toolbar.js:249 + +#~msgid "Toggle JavaScript Editor" +#~msgstr "" + +#: js/EnsembleBlocks.js:643 + +#~msgid "The Turrle pitch block returns the current pitch number being played by the specified turtle." +#~msgstr "" + +#: js/PitchActions.js:88 + +#~msgid "The Scalar Step Block must be used inside of a Note Block." +#~msgstr "" + +#: js/PitchActions.js:107 + +#~msgid "The Scalar Step Block must be preceded by a Pitch Block." +#~msgstr "" + +#: js/musickeyboard.js:2840 + +#~msgid "New action blocks generated!" +#~msgstr "" #: js/toolbar.js:110 @@ -9884,11 +8184,6 @@ msgstr "z चलऩ" #~msgid "The Time block returns the number of seconds that the program has been running." #~msgstr "" -#: js/help.js:95 - -#~msgid "Take a tour" -#~msgstr "" - #: js/GlobalCard.js:48 #~msgid "More Details" @@ -12787,11 +11082,6 @@ msgstr "z चलऩ" #~msgid "The save-stack button saves a stack onto a custom palette. It appears after a \"long press\" on a stack." #~msgstr "" -#: js/musicutils.js:254 - -#~msgid "Custom" -#~msgstr "" - #: js/basicblocks.js:4785 #~msgid "Rhythm" diff --git a/po/ms.po b/po/ms.po index 38811cbff2..a2dd5e7f20 100644 --- a/po/ms.po +++ b/po/ms.po @@ -2128,276 +2128,131 @@ #: js/planetInterface.js:104 #: js/planetInterface.js:104 #: js/planetInterface.js:104 -msgid "project undefined" -msgstr "" - -#: js/logo.js:61 -msgid "Not a valid pitch name" -msgstr "" - -#: js/logo.js:507 -#: js/ProgramBlocks.js:258 -#: js/ProgramBlocks.js:427 -msgid "You must select a file." -msgstr "" - -#: js/logo.js:1184 -#: js/turtles.js:118 -#: js/turtle-painter.js:1192 -#: js/turtle-painter.js:1193 -#: js/block.js:1463 -#: js/lilypond.js:757 -#: js/lilypond.js:921 -#: js/lilypond.js:959 -#: js/ActionBlocks.js:1223 -#: js/ProgramBlocks.js:1267 -msgid "start" -msgstr "" - -#: js/logo.js:1696 -msgid "Playback is ready." -msgstr "" - -#: js/blocks.js:1011 -#: js/blocks.js:3427 -#: js/blocks.js:3428 -#: js/blocks.js:3653 -#: js/blocks.js:4012 -#: js/blocks.js:4205 -#: js/blocks.js:5343 -#: js/blocks.js:6474 -#: js/palette.js:527 -#: js/palette.js:536 -#: js/palette.js:545 -#: js/palette.js:554 -#: js/palette.js:1131 -#: js/palette.js:1142 -#: js/palette.js:1153 -#: js/palette.js:1164 -#: js/palette.js:1183 -#: js/rubrics.js:529 -#: js/macros.js:170 -#: js/macros.js:266 -#: js/macros.js:267 -#: js/macros.js:276 -#: js/macros.js:828 -#: js/block.js:1449 -#: js/block.js:4164 -#: js/block.js:4182 -#: js/block.js:4193 -#: js/turtledefs.js:128 -#: js/turtledefs.js:230 -#: js/ActionBlocks.js:254 -#: js/ActionBlocks.js:307 -#: js/ActionBlocks.js:617 -#: js/ActionBlocks.js:716 -#: js/ActionBlocks.js:961 -#: js/ActionBlocks.js:1049 -#: js/ActionBlocks.js:1322 -#: js/ActionBlocks.js:1325 -#: js/ActionBlocks.js:1337 -#: js/ActionBlocks.js:1404 -#: js/MeterBlocks.js:715 -#: js/MeterBlocks.js:768 -#: js/MeterBlocks.js:831 -#: js/MeterBlocks.js:892 -#: js/phrasemaker.js:4412 -#: js/musickeyboard.js:2647 -#: js/rhythmruler.js:1928 -#: js/rhythmruler.js:1935 -#: js/rhythmruler.js:2119 -#: js/rhythmruler.js:2126 -msgid "action" -msgstr "" - -#: js/blocks.js:1205 -#: js/blocks.js:3380 -#: js/blocks.js:3770 -#: js/blocks.js:3801 -#: js/blocks.js:3850 -#: js/blocks.js:3885 -#: js/blocks.js:6497 -#: js/palette.js:509 -#: js/palette.js:638 -#: js/palette.js:1107 -#: js/BoxesBlocks.js:282 -#: js/BoxesBlocks.js:285 -#: js/BoxesBlocks.js:405 -#: js/BoxesBlocks.js:594 -msgid "box" -msgstr "" - -#: js/blocks.js:1680 -msgid "Consider breaking this stack into parts." +#: js/SaveInterface.js:59 +#: js/SaveInterface.js:61 +#: js/SaveInterface.js:93 +msgid "Music Blocks Project" msgstr "" -#: js/blocks.js:2408 -#: js/palette.js:653 -#: js/MediaBlocks.js:602 -msgid "open file" +#: js/SaveInterface.js:63 +msgid "This project was created in Music Blocks" msgstr "" -#: js/blocks.js:2415 -#: js/blocks.js:2423 -#: js/activity.js:1875 -msgid "audio file" +#: js/SaveInterface.js:67 +msgid "Music Blocks is a Free/Libre Software application." msgstr "" -#: js/blocks.js:2536 -#: js/blocks.js:3147 -#: js/block.js:3543 -msgid "on2" +#: js/SaveInterface.js:69 +msgid "The source code can be accessed at" msgstr "" -#: js/blocks.js:2538 -#: js/blocks.js:3149 -#: js/block.js:3545 -msgid "off" +#: js/SaveInterface.js:72 +msgid "For more information, please consult the" msgstr "" -#: js/blocks.js:2543 -#: js/blocks.js:3154 -#: js/palette.js:618 -#: js/block.js:3466 -#: js/BooleanBlocks.js:77 -#: js/BooleanBlocks.js:167 -#: js/BooleanBlocks.js:251 -#: js/BooleanBlocks.js:335 -#: js/BooleanBlocks.js:433 -#: js/BooleanBlocks.js:539 -#: js/BooleanBlocks.js:640 -#: js/BooleanBlocks.js:741 -#: js/BooleanBlocks.js:847 -#: js/BooleanBlocks.js:948 -#: js/BooleanBlocks.js:1033 -#: js/SensorsBlocks.js:910 -msgid "true" +#: js/SaveInterface.js:76 +#: js/turtledefs.js:795 +msgid "Music Blocks Guide" msgstr "" -#: js/blocks.js:2545 -#: js/blocks.js:3156 -#: js/block.js:3466 -#: js/BooleanBlocks.js:79 -#: js/BooleanBlocks.js:169 -#: js/BooleanBlocks.js:253 -#: js/BooleanBlocks.js:337 -#: js/BooleanBlocks.js:435 -#: js/BooleanBlocks.js:541 -#: js/BooleanBlocks.js:642 -#: js/BooleanBlocks.js:743 -#: js/BooleanBlocks.js:849 -#: js/BooleanBlocks.js:950 -#: js/SensorsBlocks.js:912 -msgid "false" +#: js/SaveInterface.js:83 +msgid "Alternatively, open the file in Music Blocks using the Load project button." msgstr "" -#: js/blocks.js:3183 -#: js/palette.js:574 -#: js/MediaBlocks.js:892 -#: js/MediaBlocks.js:963 -msgid "text" +#: js/SaveInterface.js:85 +msgid "Project Code" msgstr "" -#: js/blocks.js:3379 -#: js/palette.js:641 -#: js/palette.js:642 -#: js/BoxesBlocks.js:514 -msgid "store in box" +#: js/SaveInterface.js:87 +msgid "This code stores data about the blocks in a project." msgstr "" -#: js/blocks.js:3384 -#: js/blocks.js:3824 -#: js/blocks.js:3859 -#: js/blocks.js:3894 -#: js/blocks.js:5773 -#: js/blocks.js:5794 -#: js/BoxesBlocks.js:772 -msgid "box1" +#: js/SaveInterface.js:89 +msgid "Show" msgstr "" -#: js/blocks.js:3386 -#: js/blocks.js:3826 -#: js/blocks.js:3861 -#: js/blocks.js:3896 -#: js/blocks.js:5775 -#: js/blocks.js:5796 -#: js/BoxesBlocks.js:663 -msgid "box2" +#: js/SaveInterface.js:91 +msgid "Hide" msgstr "" -#: js/blocks.js:4058 -#: js/palette.js:639 -#: js/palette.js:644 -#: js/palette.js:1043 -#: js/BoxesBlocks.js:591 -msgid "store in" +#: js/SaveInterface.js:131 +#: js/SaveInterface.js:204 +#: js/SaveInterface.js:262 +#: js/SaveInterface.js:389 +#: js/SaveInterface.js:417 +#: js/activity.js:4884 +#: planet/js/ProjectStorage.js:27 +#: planet/js/GlobalPlanet.js:467 +#: planet/js/GlobalPlanet.js:469 +#: planet/js/GlobalPlanet.js:495 +#.TRANS: default project title when saving as Lilypond +msgid "My Project" msgstr "" -#: js/blocks.js:4058 -#: js/EnsembleBlocks.js:391 -#: js/EnsembleBlocks.js:402 -#: js/MediaBlocks.js:746 -#: js/ProgramBlocks.js:390 -#: js/ProgramBlocks.js:495 -#: js/ProgramBlocks.js:658 -#: js/BoxesBlocks.js:595 -#: js/PitchBlocks.js:656 -#: js/PitchBlocks.js:932 -#: js/PitchBlocks.js:1827 -#: js/ToneBlocks.js:1025 -#: js/DictBlocks.js:215 -#: js/DictBlocks.js:289 -msgid "name" +#: js/SaveInterface.js:197 +#: planet/js/SaveInterface.js:58 +msgid "No description provided" msgstr "" -#: js/blocks.js:4058 -#: js/RhythmBlocks.js:1130 -#: js/BoxesBlocks.js:75 -#: js/BoxesBlocks.js:595 -#: js/HeapBlocks.js:544 -#: js/DictBlocks.js:289 -#: js/DictBlocks.js:430 -msgid "value" +#: js/SaveInterface.js:332 +msgid "Your recording is in progress." msgstr "" -#: js/blocks.js:4907 -msgid "There is no block selected." +#: js/SaveInterface.js:401 +#.TRANS: File name prompt for save as Lilypond +msgid "File name" msgstr "" -#: js/blocks.js:5002 -#: js/MediaBlocks.js:888 -msgid "show" +#: js/SaveInterface.js:403 +#: planet/js/StringHelper.js:39 +#.TRANS: Project title prompt for save as Lilypond +msgid "Project title" msgstr "" -#: js/blocks.js:5005 -#: js/MediaBlocks.js:803 -#.TRANS: Avatar is the image used to determine the appearance of the mouse. -msgid "avatar" +#: js/SaveInterface.js:405 +#.TRANS: Project title prompt for save as Lilypond +msgid "Project author" msgstr "" -#: js/blocks.js:5008 -#: js/ToneBlocks.js:1010 -#: js/sampler.js:693 -#.TRANS: The sound sample that the user uploads. -msgid "sample" +#: js/SaveInterface.js:407 +#.TRANS: MIDI prompt for save as Lilypond +msgid "Include MIDI output?" msgstr "" -#: js/turtles.js:874 -msgid "Grid" +#: js/SaveInterface.js:409 +#.TRANS: Guitar prompt for save as Lilypond +msgid "Include guitar tablature output?" msgstr "" -#: js/turtles.js:891 -#: js/turtledefs.js:626 -msgid "Clean" +#: js/SaveInterface.js:411 +#.TRANS: Lilypond is a scripting language for generating sheet music +msgid "Save as Lilypond" msgstr "" -#: js/turtles.js:912 -#: js/turtledefs.js:632 -msgid "Collapse" +#: js/SaveInterface.js:426 +#: js/blocks/EnsembleBlocks.js:75 +#: js/blocks/EnsembleBlocks.js:154 +#: js/blocks/EnsembleBlocks.js:216 +#: js/blocks/EnsembleBlocks.js:302 +#: js/blocks/EnsembleBlocks.js:348 +#: js/blocks/EnsembleBlocks.js:389 +#: js/blocks/EnsembleBlocks.js:441 +#: js/blocks/EnsembleBlocks.js:490 +#: js/blocks/EnsembleBlocks.js:536 +#: js/blocks/EnsembleBlocks.js:583 +#: js/blocks/EnsembleBlocks.js:637 +#: js/blocks/EnsembleBlocks.js:753 +#: js/blocks/EnsembleBlocks.js:840 +#: js/blocks/EnsembleBlocks.js:899 +#: js/blocks/EnsembleBlocks.js:942 +#: js/blocks/EnsembleBlocks.js:1212 +#: js/blocks/EnsembleBlocks.js:1280 +#.TRANS: default project author when saving as Lilypond +msgid "Mr. Mouse" msgstr "" -#: js/turtles.js:940 -msgid "Expand" +#: js/SaveInterface.js:573 +msgid "The Lilypond code is copied to clipboard. You can paste it here: " msgstr "" #: js/languagebox.js:198 @@ -2408,6933 +2263,7487 @@ msgstr "" msgid "Music Blocks is already set to this language." msgstr "" -#: js/piemenus.js:200 -#: js/musicutils.js:808 -#: js/musicutils.js:824 -#: js/phrasemaker.js:1672 -#: js/musickeyboard.js:2041 -#: js/sampler.js:544 -#.TRANS: double sharp is a music term related to pitch -msgid "double sharp" +#: js/planetInterface.js:131 +msgid "project undefined" msgstr "" -#: js/piemenus.js:201 -#: js/PitchBlocks.js:1510 -#: js/PitchActions.js:580 -#: js/musicutils.js:806 -#: js/musicutils.js:825 -#: js/phrasemaker.js:1673 -#: js/musickeyboard.js:2042 -#: js/sampler.js:545 -#.TRANS: sharp is a half-step up in pitch -#.TRANS: sharp is a music term related to pitch -msgid "sharp" +#: js/rubrics.js:523 +#: js/turtledefs.js:119 +#: js/turtledefs.js:221 +#: js/blocks/RhythmBlockPaletteBlocks.js:52 +#: js/blocks/RhythmBlockPaletteBlocks.js:234 +#: js/blocks/ProgramBlocks.js:745 +#: js/widgets/rhythmruler.js:2057 +#: js/widgets/rhythmruler.js:2064 +#: js/widgets/rhythmruler.js:2133 +#: js/widgets/rhythmruler.js:2140 +#: js/widgets/rhythmruler.js:2219 +#.TRANS: an arrangement of notes based on duration +msgid "rhythm" msgstr "" -#: js/piemenus.js:202 -#: js/musicutils.js:804 -#: js/musicutils.js:826 -#: js/phrasemaker.js:1674 -#: js/musickeyboard.js:2043 -#: js/sampler.js:546 -#.TRANS: natural is a music term related to pitch -msgid "natural" +#: js/rubrics.js:524 +#: js/turtledefs.js:121 +#: js/turtledefs.js:223 +#: js/block-verbose.js:2622 +#: js/block.js:2550 +#: js/blocks/IntervalsBlocks.js:63 +#: js/blocks/SensorsBlocks.js:178 +#: js/blocks/PitchBlocks.js:1839 +#: js/blocks/PitchBlocks.js:1853 +#: js/widgets/musickeyboard.js:1935 +#: js/widgets/phrasemaker.js:1036 +#.TRANS: pitch number +#.TRANS: pitch number +#.TRANS: we specify pitch in terms of a name and an octave. The name can be CDEFGAB or Do Re Mi Fa Sol La Ti. Octave is a number between 1 and 8. +msgid "pitch" msgstr "" -#: js/piemenus.js:203 -#: js/PitchBlocks.js:1469 -#: js/PitchActions.js:583 -#: js/musicutils.js:802 -#: js/musicutils.js:827 -#: js/phrasemaker.js:1675 -#: js/musickeyboard.js:2044 -#: js/sampler.js:547 -#.TRANS: flat is a half-step down in pitch -#.TRANS: flat is a music term related to pitch -msgid "flat" +#: js/rubrics.js:525 +#: js/turtledefs.js:123 +#: js/turtledefs.js:225 +msgid "tone" msgstr "" -#: js/piemenus.js:204 -#: js/musicutils.js:800 -#: js/musicutils.js:828 -#: js/phrasemaker.js:1676 -#: js/musickeyboard.js:2045 -#: js/sampler.js:548 -#.TRANS: double flat is a music term related to pitch -msgid "double flat" +#: js/rubrics.js:526 +#: js/lilypond.js:605 +#: js/lilypond.js:904 +#: js/lilypond.js:910 +#: js/lilypond.js:948 +msgid "mouse" msgstr "" -#: js/piemenus.js:2861 -#: js/PitchBlocks.js:1357 -#: js/musicutils.js:627 -#.TRANS: unison means the note is the same as the current note -#.TRANS: unison is a music term related to intervals -msgid "unison" +#: js/rubrics.js:527 +#: js/turtledefs.js:132 +#: js/turtledefs.js:234 +#: js/widgets/phrasemaker.js:1040 +msgid "pen" msgstr "" -#: js/piemenus.js:3015 -#: js/piemenus.js:3088 -#: js/musicutils.js:635 -#: js/musicutils.js:810 -#: js/musicutils.js:912 -#.TRANS: major is a music term related to intervals and mode -msgid "major" +#: js/rubrics.js:528 +#: js/turtledefs.js:133 +#: js/turtledefs.js:235 +#: js/blocks/NumberBlocks.js:981 +#: js/blocks/PitchBlocks.js:1717 +#: js/blocks/PitchBlocks.js:1758 +msgid "number" msgstr "" -#: js/piemenus.js:3015 -#: js/piemenus.js:3088 -#: js/musicutils.js:653 -#.TRANS: modal scale for music -msgid "ionian" +#: js/rubrics.js:529 +#: js/turtledefs.js:127 +#: js/turtledefs.js:229 +msgid "flow" msgstr "" -#: js/piemenus.js:3017 -#: js/piemenus.js:3092 -#: js/musicutils.js:633 -#: js/musicutils.js:811 -#: js/musicutils.js:909 -#.TRANS: minor is a music term related to intervals and mode -msgid "minor" +#: js/rubrics.js:530 +#: js/turtledefs.js:128 +#: js/turtledefs.js:230 +#: js/block-verbose.js:1609 +#: js/block-verbose.js:4559 +#: js/block-verbose.js:4577 +#: js/block-verbose.js:4588 +#: js/block.js:1573 +#: js/block.js:4483 +#: js/block.js:4501 +#: js/block.js:4512 +#: js/blocks.js:1018 +#: js/blocks.js:3491 +#: js/blocks.js:3492 +#: js/blocks.js:3717 +#: js/blocks.js:4076 +#: js/blocks.js:4269 +#: js/blocks.js:5432 +#: js/blocks.js:6563 +#: js/macros.js:170 +#: js/macros.js:266 +#: js/macros.js:267 +#: js/macros.js:276 +#: js/macros.js:828 +#: js/palette.js:527 +#: js/palette.js:536 +#: js/palette.js:545 +#: js/palette.js:554 +#: js/palette.js:1129 +#: js/palette.js:1140 +#: js/palette.js:1151 +#: js/palette.js:1162 +#: js/palette.js:1181 +#: js/blocks/ActionBlocks.js:254 +#: js/blocks/ActionBlocks.js:307 +#: js/blocks/ActionBlocks.js:617 +#: js/blocks/ActionBlocks.js:716 +#: js/blocks/ActionBlocks.js:961 +#: js/blocks/ActionBlocks.js:1049 +#: js/blocks/ActionBlocks.js:1322 +#: js/blocks/ActionBlocks.js:1325 +#: js/blocks/ActionBlocks.js:1337 +#: js/blocks/ActionBlocks.js:1404 +#: js/blocks/MeterBlocks.js:715 +#: js/blocks/MeterBlocks.js:768 +#: js/blocks/MeterBlocks.js:831 +#: js/blocks/MeterBlocks.js:892 +#: js/widgets/musickeyboard.js:2986 +#: js/widgets/phrasemaker.js:4913 +#: js/widgets/rhythmruler.js:2319 +#: js/widgets/rhythmruler.js:2326 +#: js/widgets/rhythmruler.js:2511 +#: js/widgets/rhythmruler.js:2518 +msgid "action" msgstr "" -#: js/piemenus.js:3017 -#: js/piemenus.js:3092 -#: js/musicutils.js:663 -#.TRANS: modal scale for music -msgid "aeolian" +#: js/rubrics.js:531 +#: js/turtledefs.js:136 +#: js/turtledefs.js:238 +msgid "sensors" msgstr "" -#: js/piemenus.js:3407 -msgid "Duplicate" +#: js/rubrics.js:532 +#: js/turtledefs.js:135 +#: js/turtledefs.js:237 +#: js/blocks/MediaBlocks.js:930 +msgid "media" msgstr "" -#: js/piemenus.js:3408 -#: js/turtledefs.js:534 -msgid "Extract" +#: js/rubrics.js:533 +msgid "mice" msgstr "" -#: js/piemenus.js:3409 -msgid "Move to trash" +#: js/toolbar.js:48 +#: js/toolbar.js:109 +msgid "About Music Blocks" msgstr "" -#: js/piemenus.js:3410 -#: js/timbre.js:968 -#: js/StringHelper.js:69 -msgid "Close" +#: js/toolbar.js:49 +#: js/toolbar.js:110 +#: js/toolbar.js:175 +#: js/toolbar.js:231 +#: js/turtledefs.js:445 +#: js/turtledefs.js:482 +#: js/activity.js:2660 +#: js/activity.js:2671 +#: js/activity.js:2902 +#: js/widgets/modewidget.js:77 +#: js/widgets/meterwidget.js:185 +#: js/widgets/pitchdrummatrix.js:147 +#: js/widgets/pitchdrummatrix.js:687 +#: js/widgets/pitchdrummatrix.js:689 +#: js/widgets/pitchdrummatrix.js:741 +#: js/widgets/pitchdrummatrix.js:743 +#: js/widgets/pitchdrummatrix.js:758 +#: js/widgets/pitchdrummatrix.js:760 +#: js/widgets/pitchdrummatrix.js:789 +#: js/widgets/pitchdrummatrix.js:791 +#: js/widgets/pitchstaircase.js:121 +#: js/widgets/temperament.js:610 +#: js/widgets/temperament.js:613 +#: js/widgets/temperament.js:673 +#: js/widgets/temperament.js:675 +#: js/widgets/temperament.js:2017 +#: js/widgets/temperament.js:2019 +#: js/widgets/tempo.js:84 +#: js/widgets/tempo.js:86 +#: js/widgets/timbre.js:432 +#: js/widgets/timbre.js:434 +#: js/widgets/timbre.js:465 +#: js/widgets/timbre.js:467 +#: js/widgets/timbre.js:746 +#: js/widgets/aiwidget.js:647 +#: js/widgets/aiwidget.js:654 +#: js/widgets/aiwidget.js:656 +#: js/widgets/arpeggio.js:90 +#: js/widgets/arpeggio.js:547 +#: js/widgets/arpeggio.js:549 +#: js/widgets/arpeggio.js:644 +#: js/widgets/arpeggio.js:646 +#: js/widgets/musickeyboard.js:676 +#: js/widgets/musickeyboard.js:872 +#: js/widgets/musickeyboard.js:874 +#: js/widgets/musickeyboard.js:953 +#: js/widgets/musickeyboard.js:955 +#: js/widgets/phrasemaker.js:513 +#: js/widgets/phrasemaker.js:523 +#: js/widgets/phrasemaker.js:525 +#: js/widgets/phrasemaker.js:4304 +#: js/widgets/phrasemaker.js:4528 +#: js/widgets/phrasemaker.js:4533 +#: js/widgets/phrasemaker.js:4535 +#: js/widgets/phrasemaker.js:4650 +#: js/widgets/rhythmruler.js:637 +#: js/widgets/rhythmruler.js:639 +#: js/widgets/rhythmruler.js:653 +#: js/widgets/rhythmruler.js:655 +#: js/widgets/sampler.js:162 +#: js/widgets/sampler.js:164 +#: js/widgets/sampler.js:363 +msgid "Play" msgstr "" -#: js/piemenus.js:3416 -msgid "Save stack" +#: js/toolbar.js:50 +#: js/toolbar.js:111 +#: js/toolbar.js:176 +#: js/toolbar.js:232 +#: js/turtledefs.js:451 +#: js/turtledefs.js:488 +#: js/activity.js:2679 +#: js/widgets/modewidget.js:99 +#: js/widgets/modewidget.js:101 +#: js/widgets/meterwidget.js:206 +#: js/widgets/meterwidget.js:208 +#: js/widgets/pitchdrummatrix.js:674 +#: js/widgets/pitchdrummatrix.js:676 +#: js/widgets/temperament.js:2002 +#: js/widgets/temperament.js:2004 +#: js/widgets/arpeggio.js:534 +#: js/widgets/arpeggio.js:536 +#: js/widgets/phrasemaker.js:534 +#: js/widgets/phrasemaker.js:536 +msgid "Stop" msgstr "" -#: js/piemenus.js:3420 -#: js/toolbar.js:60 -#: js/toolbar.js:120 -#: js/toolbar.js:185 -#: js/toolbar.js:240 -#: js/turtledefs.js:752 -msgid "Help" +#: js/toolbar.js:51 +#: js/toolbar.js:112 +#: js/toolbar.js:177 +#: js/toolbar.js:233 +#: js/turtledefs.js:498 +msgid "Record" msgstr "" -#: js/piemenus.js:3762 -msgid "You have chosen key " +#: js/toolbar.js:52 +#: js/toolbar.js:53 +msgid "Full screen" msgstr "" -#: js/piemenus.js:3766 -msgid " for your pitch preview." +#: js/toolbar.js:54 +#: js/toolbar.js:115 +#: js/toolbar.js:180 +#: js/toolbar.js:236 +#: js/turtledefs.js:504 +msgid "Toggle Fullscreen" +msgstr "" + +#: js/toolbar.js:55 +#: js/toolbar.js:116 +#: js/toolbar.js:181 +#: js/toolbar.js:237 +#: js/turtledefs.js:510 +#: planet/js/StringHelper.js:33 +msgid "New project" +msgstr "" + +#: js/toolbar.js:56 +#: js/toolbar.js:117 +#: js/toolbar.js:182 +#: js/toolbar.js:238 +#: js/turtledefs.js:516 +msgid "Load project from file" +msgstr "" + +#: js/toolbar.js:57 +#: js/toolbar.js:118 +#: js/toolbar.js:119 +#: js/toolbar.js:183 +#: js/toolbar.js:239 +#: js/turtledefs.js:541 +#: js/turtledefs.js:550 +#: js/turtledefs.js:571 +msgid "Save project" +msgstr "" + +#: js/toolbar.js:58 +#: js/toolbar.js:77 +#: js/toolbar.js:79 +#: js/toolbar.js:138 +#: js/toolbar.js:147 +#: js/toolbar.js:149 +#: js/toolbar.js:184 +#: js/toolbar.js:202 +#: js/toolbar.js:204 +#: js/toolbar.js:240 +#: js/toolbar.js:258 +#: js/toolbar.js:260 +msgid "Save project as HTML" +msgstr "" + +#: js/toolbar.js:59 +#: js/toolbar.js:120 +#: js/toolbar.js:185 +#: js/toolbar.js:241 +msgid "Find and share projects" +msgstr "" + +#: js/toolbar.js:60 +#: js/toolbar.js:121 +#: js/toolbar.js:186 +#: js/toolbar.js:242 +msgid "Offline. Sharing is unavailable" +msgstr "" + +#: js/toolbar.js:61 +#: js/toolbar.js:122 +#: js/toolbar.js:187 +#: js/toolbar.js:243 +msgid "Auxiliary menu" +msgstr "" + +#: js/toolbar.js:62 +#: js/toolbar.js:123 +#: js/toolbar.js:188 +#: js/toolbar.js:244 +#: js/turtledefs.js:752 +#: js/piemenus.js:3423 +msgid "Help" +msgstr "" + +#: js/toolbar.js:63 +#: js/toolbar.js:124 +#: js/toolbar.js:189 +#: js/toolbar.js:245 +msgid "Run slowly" +msgstr "" + +#: js/toolbar.js:64 +#: js/toolbar.js:125 +#: js/toolbar.js:190 +#: js/toolbar.js:246 +#: js/turtledefs.js:682 +msgid "Run step by step" +msgstr "" + +#: js/toolbar.js:65 +#: js/toolbar.js:126 +#: js/toolbar.js:191 +#: js/toolbar.js:247 +#: js/turtledefs.js:689 +msgid "Display statistics" +msgstr "" + +#: js/toolbar.js:66 +#: js/toolbar.js:127 +#: js/toolbar.js:192 +#: js/toolbar.js:248 +msgid "Load plugin" +msgstr "" + +#: js/toolbar.js:67 +#: js/toolbar.js:128 +#: js/toolbar.js:193 +#: js/toolbar.js:249 +#: js/turtledefs.js:696 +msgid "Delete plugin" +msgstr "" + +#: js/toolbar.js:68 +#: js/toolbar.js:129 +#: js/toolbar.js:194 +#: js/toolbar.js:250 +msgid "Enable horizontal scrolling" +msgstr "" + +#: js/toolbar.js:69 +#: js/toolbar.js:130 +#: js/toolbar.js:195 +#: js/toolbar.js:251 +msgid "Disable horizontal scrolling" +msgstr "" + +#: js/toolbar.js:70 +#: js/toolbar.js:131 +#: js/toolbar.js:196 +#: js/toolbar.js:252 +#: planet/js/LocalCard.js:54 +#: planet/js/StringHelper.js:71 +msgid "Merge with current project" +msgstr "" + +#: js/toolbar.js:71 +#: js/toolbar.js:132 +msgid "Set Pitch Preview" +msgstr "" + +#: js/toolbar.js:72 +#: js/toolbar.js:133 +#: js/toolbar.js:197 +#: js/toolbar.js:253 +msgid "JavaScript Editor" +msgstr "" + +#: js/toolbar.js:73 +#: js/toolbar.js:134 +#: js/toolbar.js:198 +#: js/toolbar.js:254 +#: js/turtledefs.js:724 +msgid "Restore" +msgstr "" + +#: js/toolbar.js:74 +#: js/toolbar.js:135 +#: js/toolbar.js:199 +#: js/toolbar.js:255 +msgid "Switch to beginner mode" +msgstr "" + +#: js/toolbar.js:75 +#: js/toolbar.js:136 +#: js/toolbar.js:200 +#: js/toolbar.js:256 +msgid "Switch to advanced mode" +msgstr "" + +#: js/toolbar.js:76 +#: js/toolbar.js:137 +#: js/toolbar.js:146 +#: js/toolbar.js:201 +#: js/toolbar.js:257 +#: js/turtledefs.js:738 +msgid "Select language" +msgstr "" + +#: js/toolbar.js:78 +#: js/toolbar.js:81 +#: js/toolbar.js:140 +#: js/turtledefs.js:579 +msgid "Save mouse artwork as PNG" +msgstr "" + +#: js/toolbar.js:80 +#: js/toolbar.js:139 +#: js/turtledefs.js:575 +msgid "Save mouse artwork as SVG" +msgstr "" + +#: js/toolbar.js:82 +#: js/toolbar.js:141 +#: js/turtledefs.js:583 +msgid "Save music as WAV" +msgstr "" + +#: js/toolbar.js:83 +#: js/toolbar.js:142 +#: js/turtledefs.js:587 +msgid "Save sheet music as ABC" +msgstr "" + +#: js/toolbar.js:84 +#: js/toolbar.js:143 +#: js/turtledefs.js:591 +msgid "Save sheet music as Lilypond" +msgstr "" + +#: js/toolbar.js:85 +msgid "Save sheet music as MusicXML" +msgstr "" + +#: js/toolbar.js:86 +#: js/toolbar.js:144 +#: js/toolbar.js:152 +#: js/toolbar.js:207 +#: js/toolbar.js:263 +#: js/turtledefs.js:562 +#: js/turtledefs.js:595 +msgid "Save block artwork as SVG" +msgstr "" + +#: js/toolbar.js:87 +#: js/toolbar.js:145 +#: js/toolbar.js:153 +#: js/toolbar.js:208 +#: js/toolbar.js:264 +#: js/turtles.js:911 +msgid "Confirm" +msgstr "" + +#: js/toolbar.js:88 +#: js/toolbar.js:154 +#: js/toolbar.js:209 +#: js/toolbar.js:265 +msgid "English (United States)" +msgstr "" + +#: js/toolbar.js:89 +#: js/toolbar.js:155 +#: js/toolbar.js:210 +#: js/toolbar.js:266 +msgid "English (United Kingdom)" +msgstr "" + +#: js/toolbar.js:90 +#: js/toolbar.js:156 +#: js/toolbar.js:211 +#: js/toolbar.js:267 +msgid "日本語" +msgstr "" + +#: js/toolbar.js:91 +msgid "한국어" +msgstr "" + +#: js/toolbar.js:92 +#: js/toolbar.js:158 +#: js/toolbar.js:213 +#: js/toolbar.js:269 +msgid "español" +msgstr "" + +#: js/toolbar.js:93 +#: js/toolbar.js:159 +#: js/toolbar.js:214 +#: js/toolbar.js:270 +msgid "português" +msgstr "" + +#: js/toolbar.js:94 +#: js/toolbar.js:160 +#: js/toolbar.js:215 +#: js/toolbar.js:271 +msgid "にほんご" +msgstr "" + +#: js/toolbar.js:95 +#: js/toolbar.js:161 +#: js/toolbar.js:216 +#: js/toolbar.js:272 +msgid "中文" +msgstr "" + +#: js/toolbar.js:96 +#: js/toolbar.js:162 +#: js/toolbar.js:217 +#: js/toolbar.js:273 +msgid "ภาษาไทย" +msgstr "" + +#: js/toolbar.js:97 +#: js/toolbar.js:163 +#: js/toolbar.js:218 +#: js/toolbar.js:274 +msgid "aymara" +msgstr "" + +#: js/toolbar.js:98 +#: js/toolbar.js:164 +#: js/toolbar.js:219 +#: js/toolbar.js:275 +msgid "quechua" +msgstr "" + +#: js/toolbar.js:99 +#: js/toolbar.js:165 +#: js/toolbar.js:220 +#: js/toolbar.js:276 +msgid "guarani" +msgstr "" + +#: js/toolbar.js:100 +#: js/toolbar.js:166 +#: js/toolbar.js:221 +#: js/toolbar.js:277 +msgid "हिंदी" +msgstr "" + +#: js/toolbar.js:101 +#: js/toolbar.js:168 +#: js/toolbar.js:222 +#: js/toolbar.js:279 +msgid "igbo" +msgstr "" + +#: js/toolbar.js:102 +#: js/toolbar.js:169 +#: js/toolbar.js:223 +#: js/toolbar.js:280 +msgid "عربى" +msgstr "" + +#: js/toolbar.js:103 +#: js/toolbar.js:167 +#: js/toolbar.js:224 +#: js/toolbar.js:278 +msgid "తెలుగు" +msgstr "" + +#: js/toolbar.js:104 +#: js/toolbar.js:170 +#: js/toolbar.js:225 +#: js/toolbar.js:281 +msgid "עִברִית" +msgstr "" + +#: js/toolbar.js:113 +#: js/toolbar.js:114 +#: js/toolbar.js:178 +#: js/toolbar.js:179 +#: js/toolbar.js:234 +#: js/toolbar.js:235 +msgid "Full Screen" +msgstr "" + +#: js/toolbar.js:148 +#: js/toolbar.js:151 +#: js/toolbar.js:203 +#: js/toolbar.js:206 +#: js/toolbar.js:259 +#: js/toolbar.js:262 +#: js/turtledefs.js:558 +msgid "Save turtle artwork as PNG" +msgstr "" + +#: js/toolbar.js:150 +#: js/toolbar.js:205 +#: js/toolbar.js:261 +#: js/turtledefs.js:554 +msgid "Save turtle artwork as SVG" +msgstr "" + +#: js/toolbar.js:157 +#: js/toolbar.js:212 +#: js/toolbar.js:268 +msgid "한국인" +msgstr "" + +#: js/toolbar.js:174 +#: js/toolbar.js:230 +msgid "About Turtle Blocks" +msgstr "" + +#: js/toolbar.js:446 +#: js/toolbar.js:457 +#: js/toolbar.js:497 +msgid "Turtle Wrap Off" +msgstr "" + +#: js/toolbar.js:466 +#: js/toolbar.js:506 +msgid "Turtle Wrap On" +msgstr "" + +#: js/turtle-painter.js:1192 +#: js/turtle-painter.js:1193 +#: js/turtles.js:118 +#: js/block-verbose.js:1623 +#: js/block.js:1587 +#: js/lilypond.js:749 +#: js/lilypond.js:913 +#: js/lilypond.js:951 +#: js/logo.js:1184 +#: js/blocks/ActionBlocks.js:1223 +#: js/blocks/ProgramBlocks.js:1267 +msgid "start" +msgstr "" + +#: js/turtledefs.js:40 +#.TRANS: put the URL to the guide here, e.g., https://github.com/sugarlabs/turtleblocksjs/tree/master/guide/README.md +msgid "guide url" +msgstr "" + +#: js/turtledefs.js:85 +#: js/turtledefs.js:437 +msgid "Turtle Blocks is a Logo-inspired turtle that draws colorful pictures with snap-together visual-programming blocks." +msgstr "" + +#: js/turtledefs.js:118 +#: js/turtledefs.js:220 +msgid "search" +msgstr "" + +#: js/turtledefs.js:120 +#: js/turtledefs.js:222 +#: js/blocks/MeterBlocks.js:1343 +#: js/blocks/WidgetBlocks.js:522 +#.TRANS: musical meter (time signature), e.g., 4:4 +msgid "meter" +msgstr "" + +#: js/turtledefs.js:122 +#: js/turtledefs.js:224 +msgid "intervals" +msgstr "" + +#: js/turtledefs.js:124 +#: js/turtledefs.js:226 +msgid "ornament" +msgstr "" + +#: js/turtledefs.js:125 +#: js/turtledefs.js:227 +#: js/blocks/VolumeBlocks.js:362 +#: js/blocks/VolumeBlocks.js:502 +#: js/blocks/VolumeBlocks.js:545 +msgid "volume" +msgstr "" + +#: js/turtledefs.js:126 +#: js/turtledefs.js:228 +#: js/block-verbose.js:1700 +#: js/block-verbose.js:2626 +#: js/block.js:1664 +#: js/block.js:2554 +#: js/lilypond.js:732 +#: js/lilypond.js:897 +#: js/lilypond.js:941 +#: js/palette.js:577 +#: js/blocks/RhythmBlocks.js:766 +#: js/blocks/DrumBlocks.js:477 +#: js/blocks/VolumeBlocks.js:502 +#: js/widgets/phrasemaker.js:1038 +msgid "drum" +msgstr "" + +#: js/turtledefs.js:129 +#: js/turtledefs.js:231 +msgid "boxes" +msgstr "" + +#: js/turtledefs.js:130 +#: js/turtledefs.js:232 +msgid "widgets" +msgstr "" + +#: js/turtledefs.js:131 +#: js/turtledefs.js:233 +#: js/widgets/phrasemaker.js:1039 +msgid "graphics" +msgstr "" + +#: js/turtledefs.js:134 +#: js/turtledefs.js:236 +msgid "boolean" +msgstr "" + +#: js/turtledefs.js:137 +#: js/turtledefs.js:239 +#: js/blocks/HeapBlocks.js:59 +#: js/widgets/status.js:147 +msgid "heap" +msgstr "" + +#: js/turtledefs.js:138 +#: js/turtledefs.js:240 +#: js/blocks/DictBlocks.js:142 +#: js/blocks/ProgramBlocks.js:495 +msgid "dictionary" +msgstr "" + +#: js/turtledefs.js:139 +#: js/turtledefs.js:241 +msgid "ensemble" +msgstr "" + +#: js/turtledefs.js:140 +#: js/turtledefs.js:242 +msgid "extras" +msgstr "" + +#: js/turtledefs.js:142 +#: js/turtledefs.js:244 +#.TRANS: program as in computer program +#.TRANS: program as in computer program +msgid "program" +msgstr "" + +#: js/turtledefs.js:143 +#: js/turtledefs.js:245 +msgid "my blocks" +msgstr "" + +#: js/turtledefs.js:185 +#: js/turtledefs.js:281 +msgid "artwork" +msgstr "" + +#: js/turtledefs.js:185 +#: js/turtledefs.js:281 +msgid "logic" +msgstr "" + +#: js/turtledefs.js:185 +#: js/turtledefs.js:281 +msgid "music" +msgstr "" + +#: js/turtledefs.js:187 +#: js/turtledefs.js:463 +msgid "Music Blocks is a collection of tools for exploring fundamental musical concepts in a fun way." +msgstr "" + +#: js/turtledefs.js:436 +msgid "Welcome to Turtle Blocks" +msgstr "" + +#: js/turtledefs.js:438 +#: js/turtledefs.js:465 +#: js/turtledefs.js:774 +#: js/turtledefs.js:805 +msgid "The current version is" +msgstr "" + +#: js/turtledefs.js:446 +#: js/turtledefs.js:483 +msgid "Click the run button to run the project in fast mode." +msgstr "" + +#: js/turtledefs.js:452 +msgid "Stop the turtle." +msgstr "" + +#: js/turtledefs.js:454 +#: js/turtledefs.js:491 +msgid "You can also type Alt-S to stop." +msgstr "" + +#: js/turtledefs.js:462 +#: js/widgets/help.js:333 +msgid "Welcome to Music Blocks" +msgstr "" + +#: js/turtledefs.js:472 +#: js/widgets/help.js:334 +msgid "Meet Mr. Mouse!" +msgstr "" + +#: js/turtledefs.js:473 +msgid "Mr Mouse is our Music Blocks conductor." +msgstr "" + +#: js/turtledefs.js:475 +msgid "Mr Mouse encourages you to explore Music Blocks." +msgstr "" + +#: js/turtledefs.js:477 +msgid "Let us start our tour!" +msgstr "" + +#: js/turtledefs.js:489 +msgid "Stop the music (and the mice)." +msgstr "" + +#: js/turtledefs.js:499 +msgid "Record your project as video." +msgstr "" + +#: js/turtledefs.js:505 +msgid "Toggle Fullscreen mode." +msgstr "" + +#: js/turtledefs.js:511 +msgid "Initialize a new project." +msgstr "" + +#: js/turtledefs.js:517 +msgid "You can also load projects from the file system." +msgstr "" + +#: js/turtledefs.js:522 +#: planet/js/StringHelper.js:46 +msgid "Delete" +msgstr "" + +#: js/turtledefs.js:523 +msgid "To delete a block, just right-click on it, then you will be able to see the delete option" +msgstr "" + +#: js/turtledefs.js:528 +#: js/activity.js:2649 +#: planet/js/LocalCard.js:31 +msgid "Copy" +msgstr "" + +#: js/turtledefs.js:529 +msgid "To copy a block, just right-click on it, then you will be able to see the copy option" +msgstr "" + +#: js/turtledefs.js:534 +#: js/piemenus.js:3411 +msgid "Extract" +msgstr "" + +#: js/turtledefs.js:535 +msgid "To extract a block, just right-click on it, then you will be able to see the extract option" +msgstr "" + +#: js/turtledefs.js:542 +#: js/turtledefs.js:552 +#: js/turtledefs.js:573 +msgid "Save your project to a file." +msgstr "" + +#: js/turtledefs.js:549 +#: js/turtledefs.js:570 +msgid "save" +msgstr "" + +#: js/turtledefs.js:556 +#: js/turtledefs.js:577 +msgid "Save graphics from your project to as SVG." +msgstr "" + +#: js/turtledefs.js:560 +#: js/turtledefs.js:581 +msgid "Save graphics from your project as PNG." +msgstr "" + +#: js/turtledefs.js:564 +#: js/turtledefs.js:597 +msgid "Save block artwork as an SVG file." +msgstr "" + +#: js/turtledefs.js:585 +msgid "Save audio from your project as WAV." +msgstr "" + +#: js/turtledefs.js:589 +msgid "Save your project to as an ABC file." +msgstr "" + +#: js/turtledefs.js:593 +msgid "Save your project to as a Lilypond file." +msgstr "" + +#: js/turtledefs.js:604 +msgid "Load samples from server" +msgstr "" + +#: js/turtledefs.js:605 +msgid "This button opens a viewer for loading example projects." +msgstr "" + +#: js/turtledefs.js:611 +msgid "Palette buttons" +msgstr "" + +#: js/turtledefs.js:612 +msgid "This toolbar contains the palette buttons including Rhythm Pitch Tone Action and more." +msgstr "" + +#: js/turtledefs.js:614 +msgid "Click to show the palettes of blocks and drag blocks from the palettes onto the canvas to use them." +msgstr "" + +#: js/turtledefs.js:620 +msgid "Cartesian/Polar" +msgstr "" + +#: js/turtledefs.js:621 +msgid "Show or hide a coordinate grid." +msgstr "" + +#: js/turtledefs.js:626 +#: js/turtles.js:902 +msgid "Clean" +msgstr "" + +#: js/turtledefs.js:627 +msgid "Clear the screen and return the mice to their initial positions." +msgstr "" + +#: js/turtledefs.js:632 +#: js/turtles.js:955 +msgid "Collapse" +msgstr "" + +#: js/turtledefs.js:633 +msgid "Collapse the graphics window." msgstr "" -#: js/palette.js:571 -msgid "grid" +#: js/turtledefs.js:638 +#: js/activity.js:5684 +msgid "Home" msgstr "" -#: js/palette.js:577 -#: js/block.js:1540 -#: js/block.js:2343 -#: js/turtledefs.js:126 -#: js/turtledefs.js:228 -#: js/lilypond.js:740 -#: js/lilypond.js:905 -#: js/lilypond.js:949 -#: js/DrumBlocks.js:486 -#: js/RhythmBlocks.js:766 -#: js/VolumeBlocks.js:502 -#: js/phrasemaker.js:823 -msgid "drum" +#: js/turtledefs.js:639 +msgid "Return all blocks to the center of the screen." msgstr "" -#: js/palette.js:580 -msgid "effect" +#: js/turtledefs.js:644 +msgid "Show/hide blocks" msgstr "" -#: js/palette.js:586 -msgid "sargam" +#: js/turtledefs.js:645 +msgid "Hide or show the blocks and the palettes." msgstr "" -#: js/palette.js:589 -#: js/activity.js:1833 -#: js/RhythmBlocks.js:923 -#: js/PitchBlocks.js:442 -#: js/PitchBlocks.js:1748 -#.TRANS: a numeric mapping of the notes in an octave based on the musical mode -msgid "scale degree" +#: js/turtledefs.js:650 +msgid "Expand/collapse collapsable blocks" msgstr "" -#: js/palette.js:592 -#: js/activity.js:1860 -msgid "mode name" +#: js/turtledefs.js:651 +msgid "Expand or collapse start and action stacks." msgstr "" -#: js/palette.js:595 -#: js/activity.js:1839 -msgid "invert mode" +#: js/turtledefs.js:658 +#: js/activity.js:5704 +msgid "Decrease block size" msgstr "" -#: js/palette.js:598 -#: js/activity.js:1836 -msgid "voice name" +#: js/turtledefs.js:659 +msgid "Decrease the size of the blocks." msgstr "" -#: js/palette.js:601 -#: js/PitchBlocks.js:1181 -msgid "custom pitch" +#: js/turtledefs.js:664 +#: js/activity.js:5710 +msgid "Increase block size" msgstr "" -#: js/palette.js:605 -#: js/block.js:1456 -#: js/block.js:1575 -#: js/WidgetBlocks.js:218 -#: js/IntervalsBlocks.js:63 -msgid "temperament" +#: js/turtledefs.js:665 +msgid "Increase the size of the blocks." msgstr "" -#: js/palette.js:609 -msgid "accidental" +#: js/turtledefs.js:670 +msgid "Expand/collapse option toolbar" msgstr "" -#: js/palette.js:615 -#: js/activity.js:1866 -msgid "interval name" +#: js/turtledefs.js:671 +msgid "Click this button to expand or collapse the auxillary toolbar." msgstr "" -#: js/palette.js:633 -#: js/PitchBlocks.js:405 -msgid "pitch converter" +#: js/turtledefs.js:676 +msgid "Run slow" msgstr "" -#: js/rubrics.js:522 -#: js/turtledefs.js:119 -#: js/turtledefs.js:221 -#: js/RhythmBlockPaletteBlocks.js:52 -#: js/RhythmBlockPaletteBlocks.js:233 -#: js/ProgramBlocks.js:745 -#: js/rhythmruler.js:1670 -#: js/rhythmruler.js:1677 -#: js/rhythmruler.js:1745 -#: js/rhythmruler.js:1752 -#: js/rhythmruler.js:1830 -#.TRANS: an arrangement of notes based on duration -msgid "rhythm" +#: js/turtledefs.js:677 +msgid "Click to run the project in slow mode." msgstr "" -#: js/rubrics.js:523 -#: js/block.js:2339 -#: js/turtledefs.js:121 -#: js/turtledefs.js:223 -#: js/IntervalsBlocks.js:63 -#: js/PitchBlocks.js:1801 -#: js/PitchBlocks.js:1814 -#: js/SensorsBlocks.js:178 -#: js/phrasemaker.js:821 -#: js/musickeyboard.js:1653 -#.TRANS: pitch number -#.TRANS: we specify pitch in terms of a name and an octave. The name can be CDEFGAB or Do Re Mi Fa Sol La Ti. Octave is a number between 1 and 8. -msgid "pitch" +#: js/turtledefs.js:683 +msgid "Click to run the project step by step." msgstr "" -#: js/rubrics.js:524 -#: js/turtledefs.js:123 -#: js/turtledefs.js:225 -msgid "tone" +#: js/turtledefs.js:690 +msgid "Display statistics about your Music project." msgstr "" -#: js/rubrics.js:525 -#: js/lilypond.js:613 -#: js/lilypond.js:912 -#: js/lilypond.js:918 -#: js/lilypond.js:956 -msgid "mouse" +#: js/turtledefs.js:697 +msgid "Delete a selected plugin." msgstr "" -#: js/rubrics.js:526 -#: js/turtledefs.js:132 -#: js/turtledefs.js:234 -#: js/phrasemaker.js:825 -msgid "pen" +#: js/turtledefs.js:704 +msgid "Enable scrolling" msgstr "" -#: js/rubrics.js:527 -#: js/turtledefs.js:133 -#: js/turtledefs.js:235 -#: js/NumberBlocks.js:905 -#: js/PitchBlocks.js:1679 -#: js/PitchBlocks.js:1720 -msgid "number" +#: js/turtledefs.js:705 +msgid "You can scroll the blocks on the canvas." msgstr "" -#: js/rubrics.js:528 -#: js/turtledefs.js:127 -#: js/turtledefs.js:229 -msgid "flow" +#: js/turtledefs.js:714 +msgid "Wrap Turtle" msgstr "" -#: js/rubrics.js:530 -#: js/turtledefs.js:136 -#: js/turtledefs.js:238 -msgid "sensors" +#: js/turtledefs.js:715 +msgid "Turn Turtle wrapping On or Off." msgstr "" -#: js/rubrics.js:531 -#: js/turtledefs.js:135 -#: js/turtledefs.js:237 -#: js/MediaBlocks.js:930 -msgid "media" +#: js/turtledefs.js:725 +msgid "Restore blocks from the trash." msgstr "" -#: js/rubrics.js:532 -msgid "mice" +#: js/turtledefs.js:732 +msgid "Switch mode" msgstr "" -#: js/macros.js:711 -#: js/musicutils.js:783 -#: js/synthutils.js:181 -#.TRANS: animal sound effect -msgid "duck" +#: js/turtledefs.js:733 +msgid "Switch between beginner and advance modes." msgstr "" -#: js/toolbar.js:46 -#: js/toolbar.js:107 -msgid "About Music Blocks" +#: js/turtledefs.js:739 +msgid "Select your language preference." msgstr "" -#: js/toolbar.js:47 -#: js/toolbar.js:108 -#: js/toolbar.js:172 -#: js/toolbar.js:228 -#: js/turtledefs.js:445 -#: js/turtledefs.js:482 -#: js/activity.js:2281 -#: js/activity.js:2289 -#: js/activity.js:2520 -#: js/modewidget.js:77 -#: js/pitchstaircase.js:121 -#: js/phrasemaker.js:302 -#: js/phrasemaker.js:312 -#: js/phrasemaker.js:314 -#: js/phrasemaker.js:3901 -#: js/phrasemaker.js:4061 -#: js/phrasemaker.js:4066 -#: js/phrasemaker.js:4068 -#: js/phrasemaker.js:4183 -#: js/pitchdrummatrix.js:81 -#: js/pitchdrummatrix.js:574 -#: js/pitchdrummatrix.js:576 -#: js/pitchdrummatrix.js:628 -#: js/pitchdrummatrix.js:630 -#: js/pitchdrummatrix.js:645 -#: js/pitchdrummatrix.js:647 -#: js/pitchdrummatrix.js:674 -#: js/pitchdrummatrix.js:676 -#: js/temperament.js:477 -#: js/temperament.js:480 -#: js/temperament.js:540 -#: js/temperament.js:542 -#: js/temperament.js:1835 -#: js/temperament.js:1837 -#: js/temperament.js:1986 -#: js/temperament.js:1988 -#: js/musickeyboard.js:522 -#: js/musickeyboard.js:682 -#: js/musickeyboard.js:684 -#: js/musickeyboard.js:756 -#: js/musickeyboard.js:758 -#: js/rhythmruler.js:298 -#: js/rhythmruler.js:300 -#: js/rhythmruler.js:314 -#: js/rhythmruler.js:316 -#: js/sampler.js:96 -#: js/sampler.js:98 -#: js/sampler.js:229 -#: js/sampler.js:235 -#: js/sampler.js:237 -#: js/tempo.js:84 -#: js/tempo.js:86 -#: js/timbre.js:432 -#: js/timbre.js:434 -#: js/timbre.js:465 -#: js/timbre.js:467 -#: js/timbre.js:746 -#: js/meterwidget.js:80 -#: js/arpeggio.js:90 -#: js/arpeggio.js:547 -#: js/arpeggio.js:549 -#: js/arpeggio.js:644 -#: js/arpeggio.js:646 -msgid "Play" +#: js/turtledefs.js:745 +msgid "Keyboard shortcuts" msgstr "" -#: js/toolbar.js:48 -#: js/toolbar.js:109 -#: js/toolbar.js:173 -#: js/toolbar.js:229 -#: js/turtledefs.js:451 -#: js/turtledefs.js:488 -#: js/activity.js:2297 -#: js/modewidget.js:99 -#: js/modewidget.js:101 -#: js/phrasemaker.js:323 -#: js/phrasemaker.js:325 -#: js/pitchdrummatrix.js:561 -#: js/pitchdrummatrix.js:563 -#: js/temperament.js:1820 -#: js/temperament.js:1822 -#: js/meterwidget.js:101 -#: js/meterwidget.js:103 -#: js/arpeggio.js:534 -#: js/arpeggio.js:536 -msgid "Stop" +#: js/turtledefs.js:746 +msgid "You can type d to create a do block and r to create a re block etc." msgstr "" -#: js/toolbar.js:49 -#: js/toolbar.js:110 -#: js/toolbar.js:174 -#: js/toolbar.js:230 -#: js/turtledefs.js:498 -msgid "Record" +#: js/turtledefs.js:753 +msgid "Show these messages." msgstr "" -#: js/toolbar.js:50 -#: js/toolbar.js:51 -msgid "Full screen" +#: js/turtledefs.js:759 +#: js/turtledefs.js:790 +#: js/widgets/help.js:335 +msgid "Guide" msgstr "" -#: js/toolbar.js:52 -#: js/toolbar.js:112 -#: js/toolbar.js:177 -#: js/toolbar.js:232 -#: js/turtledefs.js:504 -msgid "Toggle Fullscreen" +#: js/turtledefs.js:760 +msgid "A detailed guide to Turtle Blocks is available." msgstr "" -#: js/toolbar.js:53 -#: js/toolbar.js:113 -#: js/toolbar.js:178 -#: js/toolbar.js:233 -#: js/turtledefs.js:510 -#: js/StringHelper.js:33 -msgid "New project" +#: js/turtledefs.js:764 +msgid "Turtle Blocks Guide" msgstr "" -#: js/toolbar.js:54 -#: js/toolbar.js:114 -#: js/toolbar.js:179 -#: js/toolbar.js:234 -#: js/turtledefs.js:516 -msgid "Load project from file" +#: js/turtledefs.js:767 +#: js/turtledefs.js:798 +#: js/widgets/help.js:336 +msgid "About" msgstr "" -#: js/toolbar.js:55 -#: js/toolbar.js:115 -#: js/toolbar.js:116 -#: js/toolbar.js:180 -#: js/toolbar.js:235 -#: js/turtledefs.js:541 -#: js/turtledefs.js:550 -#: js/turtledefs.js:571 -msgid "Save project" +#: js/turtledefs.js:768 +msgid "Turtle Blocks is an open source collection of tools for exploring musical concepts." msgstr "" -#: js/toolbar.js:56 -#: js/toolbar.js:75 -#: js/toolbar.js:77 -#: js/toolbar.js:135 -#: js/toolbar.js:144 -#: js/toolbar.js:146 -#: js/toolbar.js:181 -#: js/toolbar.js:199 -#: js/toolbar.js:201 -#: js/toolbar.js:236 -#: js/toolbar.js:254 -#: js/toolbar.js:256 -msgid "Save project as HTML" +#: js/turtledefs.js:770 +msgid "A full list of contributors can be found in the Turtle Blocks GitHub repository." +msgstr "" + +#: js/turtledefs.js:772 +msgid "Turtle Blocks is licensed under the AGPL." +msgstr "" + +#: js/turtledefs.js:780 +msgid "Turtle Blocks GitHub repository" +msgstr "" + +#: js/turtledefs.js:783 +#: js/turtledefs.js:814 +#: js/widgets/help.js:337 +#: js/widgets/help.js:359 +msgid "Congratulations." +msgstr "" + +#: js/turtledefs.js:784 +msgid "You have finished the tour. Please enjoy Turtle Blocks!" +msgstr "" + +#: js/turtledefs.js:791 +msgid "A detailed guide to Music Blocks is available." +msgstr "" + +#: js/turtledefs.js:799 +msgid "Music Blocks is an open source collection of tools for exploring musical concepts." +msgstr "" + +#: js/turtledefs.js:801 +msgid "A full list of contributors can be found in the Music Blocks GitHub repository." +msgstr "" + +#: js/turtledefs.js:803 +msgid "Music Blocks is licensed under the AGPL." +msgstr "" + +#: js/turtledefs.js:811 +msgid "Music Blocks GitHub repository" +msgstr "" + +#: js/turtledefs.js:815 +msgid "You have finished the tour. Please enjoy Music Blocks!" +msgstr "" + +#: js/turtles.js:882 +msgid "Grid" +msgstr "" + +#: js/turtles.js:1024 +msgid "Expand" +msgstr "" + +#: js/block-verbose.js:1616 +#: js/block-verbose.js:1735 +#: js/block.js:1580 +#: js/block.js:1699 +#: js/palette.js:605 +#: js/blocks/IntervalsBlocks.js:63 +#: js/blocks/WidgetBlocks.js:259 +msgid "temperament" +msgstr "" + +#: js/block-verbose.js:1630 +#: js/block.js:1594 +msgid "matrix" msgstr "" -#: js/toolbar.js:57 -#: js/toolbar.js:117 -#: js/toolbar.js:182 -#: js/toolbar.js:237 -msgid "Find and share projects" +#: js/block-verbose.js:1637 +#: js/block.js:1601 +#: js/blocks/WidgetBlocks.js:1509 +#: plugins/rodi.rtp:324 +msgid "status" msgstr "" -#: js/toolbar.js:58 -#: js/toolbar.js:118 -#: js/toolbar.js:183 -#: js/toolbar.js:238 -msgid "Offline. Sharing is unavailable" +#: js/block-verbose.js:1644 +#: js/block.js:1608 +msgid "drum mapper" msgstr "" -#: js/toolbar.js:59 -#: js/toolbar.js:119 -#: js/toolbar.js:184 -#: js/toolbar.js:239 -msgid "Auxiliary menu" +#: js/block-verbose.js:1651 +#: js/block.js:1615 +msgid "ruler" msgstr "" -#: js/toolbar.js:61 -#: js/toolbar.js:121 -#: js/toolbar.js:186 -#: js/toolbar.js:241 -msgid "Run slowly" +#: js/block-verbose.js:1658 +#: js/block.js:1622 +#: js/blocks/WidgetBlocks.js:397 +#.TRANS: timbre is the character or quality of a musical sound +msgid "timbre" msgstr "" -#: js/toolbar.js:62 -#: js/toolbar.js:122 -#: js/toolbar.js:187 -#: js/toolbar.js:242 -#: js/turtledefs.js:682 -msgid "Run step by step" +#: js/block-verbose.js:1665 +#: js/block.js:1629 +msgid "stair" msgstr "" -#: js/toolbar.js:63 -#: js/toolbar.js:123 -#: js/toolbar.js:188 -#: js/toolbar.js:243 -#: js/turtledefs.js:689 -msgid "Display statistics" +#: js/block-verbose.js:1672 +#: js/block.js:1636 +#: js/blocks/WidgetBlocks.js:707 +#.TRANS: the speed at music is should be played. +msgid "tempo" msgstr "" -#: js/toolbar.js:64 -#: js/toolbar.js:124 -#: js/toolbar.js:189 -#: js/toolbar.js:244 -msgid "Load plugin" +#: js/block-verbose.js:1679 +#: js/block-verbose.js:1742 +#: js/block.js:1643 +#: js/block.js:1706 +#: js/blocks/IntervalsBlocks.js:1464 +#.TRANS: mode, e.g., Major in C Major +msgid "mode" msgstr "" -#: js/toolbar.js:65 -#: js/toolbar.js:125 -#: js/toolbar.js:190 -#: js/toolbar.js:245 -#: js/turtledefs.js:696 -msgid "Delete plugin" +#: js/block-verbose.js:1686 +#: js/block.js:1650 +msgid "slider" msgstr "" -#: js/toolbar.js:66 -#: js/toolbar.js:126 -#: js/toolbar.js:191 -#: js/toolbar.js:246 -msgid "Enable horizontal scrolling" +#: js/block-verbose.js:1693 +#: js/block.js:1657 +#: js/blocks/SensorsBlocks.js:1001 +msgid "keyboard" msgstr "" -#: js/toolbar.js:67 -#: js/toolbar.js:127 -#: js/toolbar.js:192 -#: js/toolbar.js:247 -msgid "Disable horizontal scrolling" +#: js/block-verbose.js:1707 +#: js/block.js:1671 +#: js/blocks/WidgetBlocks.js:1190 +#: js/blocks/WidgetBlocks.js:1228 +#.TRANS: widget for subdividing a measure into distinct rhythmic elements +msgid "rhythm maker" msgstr "" -#: js/toolbar.js:68 -#: js/toolbar.js:128 -#: js/toolbar.js:193 -#: js/toolbar.js:248 -#: js/LocalCard.js:54 -#: js/StringHelper.js:71 -msgid "Merge with current project" +#: js/block-verbose.js:1714 +#: js/block-verbose.js:2457 +#: js/block-verbose.js:2514 +#: js/block.js:1678 +#: js/block.js:2385 +#: js/block.js:2442 +#: js/blocks/MeterBlocks.js:1367 +#: js/blocks/OrnamentBlocks.js:220 +#: js/blocks/OrnamentBlocks.js:312 +#: js/blocks/RhythmBlocks.js:33 +#: js/blocks/RhythmBlocks.js:356 +#: js/blocks/RhythmBlocks.js:766 +#: js/blocks/RhythmBlocks.js:806 +#: js/blocks/RhythmBlockPaletteBlocks.js:70 +#: js/blocks/RhythmBlockPaletteBlocks.js:252 +#: js/blocks/RhythmBlockPaletteBlocks.js:485 +#: js/blocks/RhythmBlockPaletteBlocks.js:554 +#: js/blocks/RhythmBlockPaletteBlocks.js:605 +#: js/blocks/RhythmBlockPaletteBlocks.js:875 +#: js/turtleactions/DictActions.js:85 +#: js/widgets/phrasemaker.js:942 +#: js/widgets/phrasemaker.js:2656 +#: js/widgets/phrasemaker.js:2699 +#: js/widgets/phrasemaker.js:2810 +#.TRANS: the value (e.g., 1/4 note) of the note being played. +msgid "note value" msgstr "" -#: js/toolbar.js:69 -#: js/toolbar.js:129 -msgid "Set Pitch Preview" +#: js/block-verbose.js:1721 +#: js/block-verbose.js:2382 +#: js/block-verbose.js:2405 +#: js/block.js:1685 +#: js/block.js:2310 +#: js/block.js:2333 +#: js/blocks/IntervalsBlocks.js:1071 +#: js/blocks/OrnamentBlocks.js:312 +#.TRANS: calculate a relative step between notes based on semi-tones +msgid "scalar interval" msgstr "" -#: js/toolbar.js:70 -#: js/toolbar.js:130 -#: js/toolbar.js:194 -#: js/toolbar.js:249 -msgid "Toggle JavaScript Editor" +#: js/block-verbose.js:1728 +#: js/block.js:1692 +#: js/blocks/RhythmBlocks.js:148 +msgid "milliseconds" msgstr "" -#: js/toolbar.js:71 -#: js/toolbar.js:131 -#: js/toolbar.js:195 -#: js/toolbar.js:250 -#: js/turtledefs.js:724 -msgid "Restore" +#: js/block-verbose.js:2455 +#: js/block-verbose.js:2459 +#: js/block-verbose.js:2512 +#: js/block-verbose.js:2628 +#: js/block.js:2383 +#: js/block.js:2387 +#: js/block.js:2440 +#: js/block.js:2556 +#: js/blocks/RhythmBlocks.js:712 +#: js/blocks/ProgramBlocks.js:1273 +#: js/widgets/rhythmruler.js:1183 +#: js/widgets/rhythmruler.js:1329 +msgid "silence" msgstr "" -#: js/toolbar.js:72 -#: js/toolbar.js:132 -#: js/toolbar.js:196 -#: js/toolbar.js:251 -msgid "Switch to beginner mode" +#: js/block-verbose.js:2548 +#: js/block-verbose.js:3492 +#: js/block-verbose.js:3509 +#: js/activity.js:2718 +#: js/activity.js:2769 +#: js/block.js:2476 +#: js/block.js:3416 +#: js/block.js:3433 +#: js/utils/musicutils.js:3780 +#: js/utils/musicutils.js:5273 +#.TRANS: the note names must be separated by single spaces +#.TRANS: the note names must be separated by single spaces +#.TRANS: the note names must be separated by single spaces +msgid "ti la sol fa mi re do" msgstr "" -#: js/toolbar.js:73 -#: js/toolbar.js:133 -#: js/toolbar.js:197 -#: js/toolbar.js:252 -msgid "Switch to advanced mode" +#: js/block-verbose.js:2616 +#: js/block.js:2544 +#.TRANS: scalar step +#.TRANS: scalar step +msgid "down" msgstr "" -#: js/toolbar.js:74 -#: js/toolbar.js:134 -#: js/toolbar.js:143 -#: js/toolbar.js:198 -#: js/toolbar.js:253 -#: js/turtledefs.js:738 -msgid "Select language" +#: js/block-verbose.js:2617 +#: js/block.js:2545 +msgid "up" msgstr "" -#: js/toolbar.js:76 -#: js/toolbar.js:79 -#: js/toolbar.js:137 -#: js/turtledefs.js:579 -msgid "Save mouse artwork as PNG" +#: js/block-verbose.js:3026 +#: js/block.js:2950 +msgid "Silence block cannot be removed." msgstr "" -#: js/toolbar.js:78 -#: js/toolbar.js:136 -#: js/turtledefs.js:575 -msgid "Save mouse artwork as SVG" +#: js/block-verbose.js:3824 +#: js/block.js:3748 +#: js/blocks.js:2607 +#: js/blocks.js:3218 +#: js/palette.js:618 +#: js/blocks/BooleanBlocks.js:77 +#: js/blocks/BooleanBlocks.js:167 +#: js/blocks/BooleanBlocks.js:251 +#: js/blocks/BooleanBlocks.js:335 +#: js/blocks/BooleanBlocks.js:433 +#: js/blocks/BooleanBlocks.js:539 +#: js/blocks/BooleanBlocks.js:640 +#: js/blocks/BooleanBlocks.js:741 +#: js/blocks/BooleanBlocks.js:847 +#: js/blocks/BooleanBlocks.js:948 +#: js/blocks/BooleanBlocks.js:1033 +#: js/blocks/SensorsBlocks.js:910 +msgid "true" msgstr "" -#: js/toolbar.js:80 -#: js/toolbar.js:138 -#: js/turtledefs.js:583 -msgid "Save music as WAV" +#: js/block-verbose.js:3824 +#: js/block.js:3748 +#: js/blocks.js:2609 +#: js/blocks.js:3220 +#: js/blocks/BooleanBlocks.js:79 +#: js/blocks/BooleanBlocks.js:169 +#: js/blocks/BooleanBlocks.js:253 +#: js/blocks/BooleanBlocks.js:337 +#: js/blocks/BooleanBlocks.js:435 +#: js/blocks/BooleanBlocks.js:541 +#: js/blocks/BooleanBlocks.js:642 +#: js/blocks/BooleanBlocks.js:743 +#: js/blocks/BooleanBlocks.js:849 +#: js/blocks/BooleanBlocks.js:950 +#: js/blocks/SensorsBlocks.js:912 +msgid "false" msgstr "" -#: js/toolbar.js:81 -#: js/toolbar.js:139 -#: js/turtledefs.js:587 -msgid "Save sheet music as ABC" +#: js/block-verbose.js:3835 +#: js/block-verbose.js:3848 +#: js/block.js:3759 +#: js/block.js:3772 +#: js/blocks/ExtrasBlocks.js:615 +msgid "Cartesian" msgstr "" -#: js/toolbar.js:82 -#: js/toolbar.js:140 -#: js/turtledefs.js:591 -msgid "Save sheet music as Lilypond" +#: js/block-verbose.js:3836 +#: js/block-verbose.js:3849 +#: js/block.js:3760 +#: js/block.js:3773 +#: js/blocks/ExtrasBlocks.js:619 +msgid "polar" msgstr "" -#: js/toolbar.js:83 -msgid "Save sheet music as MusicXML" +#: js/block-verbose.js:3837 +#: js/block-verbose.js:3850 +#: js/block.js:3761 +#: js/block.js:3774 +#: js/blocks/ExtrasBlocks.js:623 +msgid "Cartesian+polar" msgstr "" -#: js/toolbar.js:84 -#: js/toolbar.js:141 -#: js/toolbar.js:149 -#: js/toolbar.js:204 -#: js/toolbar.js:259 -#: js/turtledefs.js:562 -#: js/turtledefs.js:595 -msgid "Save block artwork as SVG" +#: js/block-verbose.js:3838 +#: js/block-verbose.js:3857 +#: js/block.js:3762 +#: js/block.js:3781 +#: js/blocks/ExtrasBlocks.js:652 +msgid "none" msgstr "" -#: js/toolbar.js:85 -#: js/toolbar.js:142 -#: js/toolbar.js:150 -#: js/toolbar.js:205 -#: js/toolbar.js:260 -msgid "Confirm" +#: js/block-verbose.js:3851 +#: js/block.js:3775 +#: js/blocks/ExtrasBlocks.js:628 +msgid "treble" msgstr "" -#: js/toolbar.js:86 -#: js/toolbar.js:151 -#: js/toolbar.js:206 -#: js/toolbar.js:261 -msgid "English (United States)" +#: js/block-verbose.js:3852 +#: js/block.js:3776 +#: js/blocks/ExtrasBlocks.js:632 +msgid "grand staff" msgstr "" -#: js/toolbar.js:87 -#: js/toolbar.js:152 -#: js/toolbar.js:207 -#: js/toolbar.js:262 -msgid "English (United Kingdom)" +#: js/block-verbose.js:3853 +#: js/block.js:3777 +#: js/blocks/ExtrasBlocks.js:636 +msgid "mezzo-soprano" msgstr "" -#: js/toolbar.js:88 -#: js/toolbar.js:153 -#: js/toolbar.js:208 -#: js/toolbar.js:263 -msgid "日本語" +#: js/block-verbose.js:3854 +#: js/block.js:3778 +#: js/blocks/ExtrasBlocks.js:640 +msgid "alto" msgstr "" -#: js/toolbar.js:89 -msgid "한국어" +#: js/block-verbose.js:3855 +#: js/block.js:3779 +#: js/blocks/ExtrasBlocks.js:644 +msgid "tenor" msgstr "" -#: js/toolbar.js:90 -#: js/toolbar.js:155 -#: js/toolbar.js:210 -#: js/toolbar.js:265 -msgid "español" +#: js/block-verbose.js:3856 +#: js/block.js:3780 +#: js/utils/musicutils.js:1115 +#: js/utils/synthutils.js:80 +#: js/blocks/ExtrasBlocks.js:648 +#.TRANS: musical instrument +msgid "bass" msgstr "" -#: js/toolbar.js:91 -#: js/toolbar.js:156 -#: js/toolbar.js:211 -#: js/toolbar.js:266 -msgid "português" +#: js/block-verbose.js:3901 +#: js/block.js:3825 +#: js/blocks.js:2600 +#: js/blocks.js:3211 +msgid "on2" msgstr "" -#: js/toolbar.js:92 -#: js/toolbar.js:157 -#: js/toolbar.js:212 -#: js/toolbar.js:267 -msgid "にほんご" +#: js/block-verbose.js:3903 +#: js/block.js:3827 +#: js/blocks.js:2602 +#: js/blocks.js:3213 +msgid "off" msgstr "" -#: js/toolbar.js:93 -#: js/toolbar.js:158 -#: js/toolbar.js:213 -#: js/toolbar.js:268 -msgid "中文" +#: js/block-verbose.js:4470 +#: js/block.js:4394 +msgid "Not a number" msgstr "" -#: js/toolbar.js:94 -#: js/toolbar.js:159 -#: js/toolbar.js:214 -#: js/toolbar.js:269 -msgid "ภาษาไทย" +#: js/block-verbose.js:4477 +#: js/block.js:4401 +msgid "Octave value must be between 1 and 10." msgstr "" -#: js/toolbar.js:95 -#: js/toolbar.js:160 -#: js/toolbar.js:215 -#: js/toolbar.js:270 -msgid "aymara" +#: js/block-verbose.js:4485 +#: js/block.js:4409 +msgid "Numbers can have at most 10 digits." msgstr "" -#: js/toolbar.js:96 -#: js/toolbar.js:161 -#: js/toolbar.js:216 -#: js/toolbar.js:271 -msgid "quechua" +#: js/activity.js:390 +#: js/activity.js:395 +msgid "Search for blocks" msgstr "" -#: js/toolbar.js:97 -#: js/toolbar.js:162 -#: js/toolbar.js:217 -#: js/toolbar.js:272 -msgid "guarani" +#: js/activity.js:1413 +msgid "Refresh your browser to change to advanced mode." msgstr "" -#: js/toolbar.js:98 -#: js/toolbar.js:163 -#: js/toolbar.js:218 -#: js/toolbar.js:273 -msgid "हिंदी" +#: js/activity.js:1418 +msgid "Refresh your browser to change to beginner mode." msgstr "" -#: js/toolbar.js:99 -#: js/toolbar.js:165 -#: js/toolbar.js:219 -#: js/toolbar.js:275 -msgid "igbo" +#: js/activity.js:1477 +msgid "Catching mice" +msgstr "" + +#: js/activity.js:1478 +msgid "Cleaning the instruments" +msgstr "" + +#: js/activity.js:1479 +msgid "Testing key pieces" +msgstr "" + +#: js/activity.js:1480 +msgid "Sight-reading" +msgstr "" + +#: js/activity.js:1481 +msgid "Combining math and music" msgstr "" -#: js/toolbar.js:100 -#: js/toolbar.js:166 -#: js/toolbar.js:220 -#: js/toolbar.js:276 -msgid "عربى" +#: js/activity.js:1482 +msgid "Generating more blocks" msgstr "" -#: js/toolbar.js:101 -#: js/toolbar.js:164 -#: js/toolbar.js:221 -#: js/toolbar.js:274 -msgid "తెలుగు" +#: js/activity.js:1483 +msgid "Do Re Mi Fa Sol La Ti Do" msgstr "" -#: js/toolbar.js:102 -#: js/toolbar.js:167 -#: js/toolbar.js:222 -#: js/toolbar.js:277 -msgid "עִברִית" +#: js/activity.js:1484 +msgid "Tuning string instruments" msgstr "" -#: js/toolbar.js:111 -#: js/toolbar.js:175 -#: js/toolbar.js:176 -#: js/toolbar.js:231 -msgid "Full Screen" +#: js/activity.js:1485 +msgid "Pressing random keys" msgstr "" -#: js/toolbar.js:145 -#: js/toolbar.js:148 -#: js/toolbar.js:200 -#: js/toolbar.js:203 -#: js/toolbar.js:255 -#: js/toolbar.js:258 -#: js/turtledefs.js:558 -msgid "Save turtle artwork as PNG" +#: js/activity.js:1663 +msgid "plugins will be removed upon restart." msgstr "" -#: js/toolbar.js:147 -#: js/toolbar.js:202 -#: js/toolbar.js:257 -#: js/turtledefs.js:554 -msgid "Save turtle artwork as SVG" +#: js/activity.js:1672 +msgid "show Cartesian" msgstr "" -#: js/toolbar.js:154 -#: js/toolbar.js:209 -#: js/toolbar.js:264 -msgid "한국인" +#: js/activity.js:2211 +#: js/palette.js:589 +#: js/blocks/RhythmBlocks.js:923 +#: js/blocks/PitchBlocks.js:442 +#: js/blocks/PitchBlocks.js:1786 +#.TRANS: a numeric mapping of the notes in an octave based on the musical mode +msgid "scale degree" msgstr "" -#: js/toolbar.js:171 -#: js/toolbar.js:227 -msgid "About Turtle Blocks" +#: js/activity.js:2214 +#: js/palette.js:598 +msgid "voice name" msgstr "" -#: js/toolbar.js:429 -#: js/toolbar.js:440 -msgid "Turtle Wrap Off" +#: js/activity.js:2217 +#: js/palette.js:595 +msgid "invert mode" msgstr "" -#: js/toolbar.js:442 -msgid "Turtle Wrap On" +#: js/activity.js:2220 +msgid "output tools" msgstr "" -#: js/block.js:1470 -msgid "matrix" +#: js/activity.js:2223 +msgid "custom note" msgstr "" -#: js/block.js:1477 -#: js/WidgetBlocks.js:1226 -#: plugins/rodi.rtp:324 -msgid "status" +#: js/activity.js:2226 +msgid "accidental name" msgstr "" -#: js/block.js:1484 -msgid "drum mapper" +#: js/activity.js:2229 +#: js/blocks/PitchBlocks.js:855 +msgid "east indian solfege" msgstr "" -#: js/block.js:1491 -msgid "ruler" +#: js/activity.js:2232 +#: js/blocks/PitchBlocks.js:869 +msgid "note name" msgstr "" -#: js/block.js:1498 -#: js/WidgetBlocks.js:327 -#.TRANS: timbre is the character or quality of a musical sound -msgid "timbre" +#: js/activity.js:2235 +#: js/blocks/IntervalsBlocks.js:94 +msgid "temperament name" msgstr "" -#: js/block.js:1505 -msgid "stair" +#: js/activity.js:2238 +#: js/palette.js:592 +msgid "mode name" msgstr "" -#: js/block.js:1512 -#: js/WidgetBlocks.js:577 -#.TRANS: the speed at music is should be played. -msgid "tempo" +#: js/activity.js:2241 +msgid "chord name" msgstr "" -#: js/block.js:1519 -#: js/block.js:1582 -#: js/IntervalsBlocks.js:1268 -#.TRANS: mode, e.g., Major in C Major -msgid "mode" +#: js/activity.js:2244 +#: js/palette.js:615 +msgid "interval name" msgstr "" -#: js/block.js:1526 -msgid "slider" +#: js/activity.js:2247 +msgid "filter type" msgstr "" -#: js/block.js:1533 -#: js/SensorsBlocks.js:1001 -msgid "keyboard" +#: js/activity.js:2250 +msgid "oscillator type" msgstr "" -#: js/block.js:1547 -#: js/WidgetBlocks.js:957 -#: js/WidgetBlocks.js:988 -#.TRANS: widget for subdividing a measure into distinct rhythmic elements -msgid "rhythm maker" +#: js/activity.js:2253 +#: js/blocks.js:2479 +#: js/blocks.js:2487 +msgid "audio file" msgstr "" -#: js/block.js:1554 -#: js/block.js:2182 -#: js/block.js:2236 -#: js/RhythmBlockPaletteBlocks.js:70 -#: js/RhythmBlockPaletteBlocks.js:251 -#: js/RhythmBlockPaletteBlocks.js:484 -#: js/RhythmBlockPaletteBlocks.js:553 -#: js/RhythmBlockPaletteBlocks.js:604 -#: js/RhythmBlockPaletteBlocks.js:874 -#: js/RhythmBlocks.js:33 -#: js/RhythmBlocks.js:356 -#: js/RhythmBlocks.js:766 -#: js/RhythmBlocks.js:806 -#: js/OrnamentBlocks.js:220 -#: js/OrnamentBlocks.js:312 -#: js/MeterBlocks.js:1367 -#: js/DictActions.js:85 -#: js/phrasemaker.js:731 -#: js/phrasemaker.js:2393 -#: js/phrasemaker.js:2436 -#: js/phrasemaker.js:2534 -#.TRANS: the value (e.g., 1/4 note) of the note being played. -msgid "note value" +#: js/activity.js:2256 +#: js/blocks/DrumBlocks.js:32 +msgid "noise name" msgstr "" -#: js/block.js:1561 -#: js/block.js:2110 -#: js/block.js:2133 -#: js/IntervalsBlocks.js:875 -#: js/OrnamentBlocks.js:312 -#.TRANS: calculate a relative step between notes based on semi-tones -msgid "scalar interval" +#: js/activity.js:2259 +#: js/blocks/DrumBlocks.js:75 +msgid "drum name" msgstr "" -#: js/block.js:1568 -#: js/RhythmBlocks.js:148 -msgid "milliseconds" +#: js/activity.js:2262 +#: js/blocks/DrumBlocks.js:119 +msgid "effects name" msgstr "" -#: js/block.js:2180 -#: js/block.js:2184 -#: js/block.js:2234 -#: js/block.js:2345 -#: js/ProgramBlocks.js:1273 -#: js/RhythmBlocks.js:712 -#: js/rhythmruler.js:834 -#: js/rhythmruler.js:961 -msgid "silence" +#: js/activity.js:2265 +msgid "wrap mode" msgstr "" -#: js/block.js:2265 -#: js/block.js:3134 -#: js/block.js:3151 -#: js/activity.js:2336 -#: js/activity.js:2387 -#: js/musicutils.js:2932 -#: js/musicutils.js:4287 -#.TRANS: the note names must be separated by single spaces -#.TRANS: the note names must be separated by single spaces -msgid "ti la sol fa mi re do" +#: js/activity.js:2268 +msgid "load file" msgstr "" -#: js/block.js:2333 -#.TRANS: scalar step -msgid "down" +#: js/activity.js:2435 +#: js/activity.js:5851 +msgid "This block is deprecated." msgstr "" -#: js/block.js:2334 -msgid "up" +#: js/activity.js:2437 +#: js/activity.js:5853 +msgid "Block cannot be found." msgstr "" -#: js/block.js:3477 -#: js/block.js:3490 -#: js/ExtrasBlocks.js:612 -msgid "Cartesian" +#: js/activity.js:2645 +msgid "Saving block artwork" msgstr "" -#: js/block.js:3478 -#: js/block.js:3491 -#: js/ExtrasBlocks.js:616 -msgid "polar" +#: js/activity.js:2656 +msgid "Erase" msgstr "" -#: js/block.js:3479 -#: js/block.js:3492 -#: js/ExtrasBlocks.js:620 -msgid "Cartesian+polar" +#: js/activity.js:2683 +#: js/activity.js:2705 +msgid "Paste" msgstr "" -#: js/block.js:3480 -#: js/block.js:3499 -#: js/ExtrasBlocks.js:649 -msgid "none" +#: js/activity.js:2687 +msgid "Save block help" msgstr "" -#: js/block.js:3493 -#: js/ExtrasBlocks.js:625 -msgid "treble" +#: js/activity.js:2772 +msgid "Jumping to the bottom of the page." msgstr "" -#: js/block.js:3494 -#: js/ExtrasBlocks.js:629 -msgid "grand staff" +#: js/activity.js:2778 +msgid "Scrolling up." msgstr "" -#: js/block.js:3495 -#: js/ExtrasBlocks.js:633 -msgid "mezzo-soprano" +#: js/activity.js:2783 +msgid "Scrolling down." msgstr "" -#: js/block.js:3496 -#: js/ExtrasBlocks.js:637 -msgid "alto" +#: js/activity.js:2788 +msgid "Extracting block" msgstr "" -#: js/block.js:3497 -#: js/ExtrasBlocks.js:641 -msgid "tenor" +#: js/activity.js:2796 +msgid "Moving block up." msgstr "" -#: js/block.js:3498 -#: js/ExtrasBlocks.js:645 -#: js/musicutils.js:736 -#: js/synthutils.js:64 -#.TRANS: musical instrument -msgid "bass" +#: js/activity.js:2817 +msgid "Moving block down." msgstr "" -#: js/block.js:4075 -msgid "Not a number" +#: js/activity.js:2838 +msgid "Moving block left." msgstr "" -#: js/block.js:4082 -msgid "Octave value must be between 1 and 10." +#: js/activity.js:2855 +msgid "Moving block right." msgstr "" -#: js/block.js:4090 -msgid "Numbers can have at most 10 digits." +#: js/activity.js:2870 +msgid "Jump to home position." msgstr "" -#: js/notation.js:353 -msgid "Lilypond cannot process pickup of " +#: js/activity.js:2897 +msgid "Hide blocks" msgstr "" -#: js/turtledefs.js:40 -#.TRANS: put the URL to the guide here, e.g., https://github.com/sugarlabs/turtleblocksjs/tree/master/guide/README.md -msgid "guide url" +#: js/activity.js:4500 +msgid "Click the run button to run the project." msgstr "" -#: js/turtledefs.js:85 -#: js/turtledefs.js:437 -msgid "Turtle Blocks is a Logo-inspired turtle that draws colorful pictures with snap-together visual-programming blocks." +#: js/activity.js:5692 +msgid "Show/hide block" msgstr "" -#: js/turtledefs.js:118 -#: js/turtledefs.js:220 -msgid "search" +#: js/activity.js:5698 +msgid "Expand/collapse blocks" msgstr "" -#: js/turtledefs.js:120 -#: js/turtledefs.js:222 -#: js/WidgetBlocks.js:437 -#: js/MeterBlocks.js:1343 -#.TRANS: musical meter (time signature), e.g., 4:4 -msgid "meter" +#: js/activity.js:5976 +msgid "Could not parse JSON input." msgstr "" -#: js/turtledefs.js:122 -#: js/turtledefs.js:224 -msgid "intervals" +#: js/activity.js:6475 +#: js/activity.js:6580 +#: js/activity.js:6631 +msgid "Cannot load project from the file. Please check the file type." msgstr "" -#: js/turtledefs.js:124 -#: js/turtledefs.js:226 -msgid "ornament" +#: js/activity.js:6917 +msgid "Invalid parameters" msgstr "" -#: js/turtledefs.js:125 -#: js/turtledefs.js:227 -#: js/VolumeBlocks.js:362 -#: js/VolumeBlocks.js:502 -#: js/VolumeBlocks.js:545 -msgid "volume" +#: js/blocks.js:1212 +#: js/blocks.js:3444 +#: js/blocks.js:3834 +#: js/blocks.js:3865 +#: js/blocks.js:3914 +#: js/blocks.js:3949 +#: js/blocks.js:6586 +#: js/palette.js:509 +#: js/palette.js:638 +#: js/palette.js:1105 +#: js/blocks/BoxesBlocks.js:282 +#: js/blocks/BoxesBlocks.js:285 +#: js/blocks/BoxesBlocks.js:405 +#: js/blocks/BoxesBlocks.js:594 +msgid "box" msgstr "" -#: js/turtledefs.js:129 -#: js/turtledefs.js:231 -msgid "boxes" +#: js/blocks.js:1713 +msgid "Consider breaking this stack into parts." msgstr "" -#: js/turtledefs.js:130 -#: js/turtledefs.js:232 -msgid "widgets" +#: js/blocks.js:2472 +#: js/palette.js:653 +#: js/blocks/MediaBlocks.js:602 +msgid "open file" msgstr "" -#: js/turtledefs.js:131 -#: js/turtledefs.js:233 -#: js/phrasemaker.js:824 -msgid "graphics" +#: js/blocks.js:3247 +#: js/palette.js:574 +#: js/blocks/MediaBlocks.js:892 +#: js/blocks/MediaBlocks.js:963 +msgid "text" msgstr "" -#: js/turtledefs.js:134 -#: js/turtledefs.js:236 -msgid "boolean" +#: js/blocks.js:3443 +#: js/palette.js:641 +#: js/palette.js:642 +#: js/blocks/BoxesBlocks.js:514 +msgid "store in box" msgstr "" -#: js/turtledefs.js:137 -#: js/turtledefs.js:239 -#: js/HeapBlocks.js:59 -#: js/status.js:147 -msgid "heap" +#: js/blocks.js:3448 +#: js/blocks.js:3888 +#: js/blocks.js:3923 +#: js/blocks.js:3958 +#: js/blocks.js:5862 +#: js/blocks.js:5883 +#: js/blocks/BoxesBlocks.js:772 +msgid "box1" msgstr "" -#: js/turtledefs.js:138 -#: js/turtledefs.js:240 -#: js/ProgramBlocks.js:495 -#: js/DictBlocks.js:142 -msgid "dictionary" +#: js/blocks.js:3450 +#: js/blocks.js:3890 +#: js/blocks.js:3925 +#: js/blocks.js:3960 +#: js/blocks.js:5864 +#: js/blocks.js:5885 +#: js/blocks/BoxesBlocks.js:663 +msgid "box2" msgstr "" -#: js/turtledefs.js:139 -#: js/turtledefs.js:241 -msgid "ensemble" +#: js/blocks.js:4122 +#: js/palette.js:639 +#: js/palette.js:644 +#: js/palette.js:1041 +#: js/blocks/BoxesBlocks.js:591 +msgid "store in" msgstr "" -#: js/turtledefs.js:140 -#: js/turtledefs.js:242 -msgid "extras" +#: js/blocks.js:4122 +#: js/blocks/BoxesBlocks.js:595 +#: js/blocks/DictBlocks.js:215 +#: js/blocks/DictBlocks.js:289 +#: js/blocks/EnsembleBlocks.js:391 +#: js/blocks/EnsembleBlocks.js:402 +#: js/blocks/MediaBlocks.js:746 +#: js/blocks/PitchBlocks.js:656 +#: js/blocks/PitchBlocks.js:934 +#: js/blocks/PitchBlocks.js:1866 +#: js/blocks/ProgramBlocks.js:390 +#: js/blocks/ProgramBlocks.js:495 +#: js/blocks/ProgramBlocks.js:658 +#: js/blocks/ToneBlocks.js:1025 +msgid "name" msgstr "" -#: js/turtledefs.js:142 -#: js/turtledefs.js:244 -#.TRANS: program as in computer program -#.TRANS: program as in computer program -msgid "program" +#: js/blocks.js:4122 +#: js/blocks/BoxesBlocks.js:75 +#: js/blocks/BoxesBlocks.js:595 +#: js/blocks/DictBlocks.js:289 +#: js/blocks/DictBlocks.js:430 +#: js/blocks/HeapBlocks.js:544 +#: js/blocks/RhythmBlocks.js:1130 +msgid "value" msgstr "" -#: js/turtledefs.js:143 -#: js/turtledefs.js:245 -msgid "my blocks" +#: js/blocks.js:4465 +msgid "Forever loop detected inside a note value block. Unexpected things may happen." msgstr "" -#: js/turtledefs.js:185 -#: js/turtledefs.js:281 -msgid "artwork" +#: js/blocks.js:4988 +msgid "There is no block selected." msgstr "" -#: js/turtledefs.js:185 -#: js/turtledefs.js:281 -msgid "logic" +#: js/blocks.js:5091 +#: js/blocks/MediaBlocks.js:888 +msgid "show" msgstr "" -#: js/turtledefs.js:185 -#: js/turtledefs.js:281 -msgid "music" +#: js/blocks.js:5094 +#: js/blocks/MediaBlocks.js:803 +#.TRANS: Avatar is the image used to determine the appearance of the mouse. +msgid "avatar" msgstr "" -#: js/turtledefs.js:187 -#: js/turtledefs.js:463 -msgid "Music Blocks is a collection of tools for exploring fundamental musical concepts in a fun way." +#: js/blocks.js:5097 +#: js/blocks/ToneBlocks.js:1010 +#: js/widgets/sampler.js:975 +#.TRANS: The sound sample that the user uploads. +msgid "sample" msgstr "" -#: js/turtledefs.js:436 -msgid "Welcome to Turtle Blocks" +#: js/lilypond.js:606 +msgid "brown rat" msgstr "" -#: js/turtledefs.js:438 -#: js/turtledefs.js:465 -#: js/turtledefs.js:774 -#: js/turtledefs.js:805 -msgid "The current version is" +#: js/lilypond.js:607 +msgid "mole" msgstr "" -#: js/turtledefs.js:446 -#: js/turtledefs.js:483 -msgid "Click the run button to run the project in fast mode." +#: js/lilypond.js:608 +msgid "chipmunk" msgstr "" -#: js/turtledefs.js:452 -msgid "Stop the turtle." +#: js/lilypond.js:609 +msgid "red squirrel" msgstr "" -#: js/turtledefs.js:454 -#: js/turtledefs.js:491 -msgid "You can also type Alt-S to stop." +#: js/lilypond.js:610 +msgid "guinea pig" +msgstr "" + +#: js/lilypond.js:611 +msgid "capybara" msgstr "" -#: js/turtledefs.js:462 -#: js/help.js:333 -msgid "Welcome to Music Blocks" +#: js/lilypond.js:612 +msgid "coypu" msgstr "" -#: js/turtledefs.js:472 -#: js/help.js:334 -msgid "Meet Mr. Mouse!" +#: js/lilypond.js:613 +msgid "black rat" msgstr "" -#: js/turtledefs.js:473 -msgid "Mr Mouse is our Music Blocks conductor." +#: js/lilypond.js:614 +msgid "grey squirrel" msgstr "" -#: js/turtledefs.js:475 -msgid "Mr Mouse encourages you to explore Music Blocks." +#: js/lilypond.js:615 +msgid "flying squirrel" msgstr "" -#: js/turtledefs.js:477 -msgid "Let us start our tour!" +#: js/lilypond.js:616 +msgid "bat" msgstr "" -#: js/turtledefs.js:489 -msgid "Stop the music (and the mice)." +#: js/lilypond.js:749 +#: js/lilypond.js:913 +#: js/lilypond.js:951 +#: js/blocks/ActionBlocks.js:1256 +#: js/blocks/ExtrasBlocks.js:556 +msgid "start drum" msgstr "" -#: js/turtledefs.js:499 -msgid "Record your project as video." +#: js/logo.js:61 +msgid "Not a valid pitch name" msgstr "" -#: js/turtledefs.js:505 -msgid "Toggle Fullscreen mode." +#: js/logo.js:507 +#: js/blocks/ProgramBlocks.js:258 +#: js/blocks/ProgramBlocks.js:427 +msgid "You must select a file." msgstr "" -#: js/turtledefs.js:511 -msgid "Initialize a new project." +#: js/logo.js:1696 +msgid "Playback is ready." msgstr "" -#: js/turtledefs.js:517 -msgid "You can also load projects from the file system." +#: js/macros.js:711 +#: js/utils/musicutils.js:1162 +#: js/utils/synthutils.js:202 +#.TRANS: animal sound effect +msgid "duck" msgstr "" -#: js/turtledefs.js:522 -#: js/StringHelper.js:46 -msgid "Delete" +#: js/notation.js:353 +msgid "Lilypond cannot process pickup of " msgstr "" -#: js/turtledefs.js:523 -msgid "To delete a block, just right-click on it, then you will be able to see the delete option" +#: js/palette.js:571 +msgid "grid" msgstr "" -#: js/turtledefs.js:528 -#: js/activity.js:2270 -#: js/LocalCard.js:31 -msgid "Copy" +#: js/palette.js:580 +msgid "effect" msgstr "" -#: js/turtledefs.js:529 -msgid "To copy a block, just right-click on it, then you will be able to see the copy option" +#: js/palette.js:586 +msgid "sargam" msgstr "" -#: js/turtledefs.js:535 -msgid "To extract a block, just right-click on it, then you will be able to see the extract option" +#: js/palette.js:601 +#: js/blocks/PitchBlocks.js:1209 +msgid "custom pitch" msgstr "" -#: js/turtledefs.js:542 -#: js/turtledefs.js:552 -#: js/turtledefs.js:573 -msgid "Save your project to a file." +#: js/palette.js:609 +msgid "accidental" msgstr "" -#: js/turtledefs.js:549 -#: js/turtledefs.js:570 -msgid "save" +#: js/palette.js:633 +#: js/blocks/PitchBlocks.js:405 +msgid "pitch converter" msgstr "" -#: js/turtledefs.js:556 -#: js/turtledefs.js:577 -msgid "Save graphics from your project to as SVG." +#: js/piemenus.js:200 +#: js/utils/musicutils.js:1187 +#: js/utils/musicutils.js:1207 +#: js/widgets/musickeyboard.js:2341 +#: js/widgets/phrasemaker.js:1908 +#: js/widgets/sampler.js:810 +#.TRANS: double sharp is a music term related to pitch +msgid "double sharp" msgstr "" -#: js/turtledefs.js:560 -#: js/turtledefs.js:581 -msgid "Save graphics from your project as PNG." +#: js/piemenus.js:201 +#: js/utils/musicutils.js:1185 +#: js/utils/musicutils.js:1208 +#: js/blocks/PitchBlocks.js:1539 +#: js/turtleactions/PitchActions.js:323 +#: js/widgets/musickeyboard.js:2342 +#: js/widgets/phrasemaker.js:1909 +#: js/widgets/sampler.js:811 +#.TRANS: sharp is a music term related to pitch +#.TRANS: sharp is a half-step up in pitch +msgid "sharp" msgstr "" -#: js/turtledefs.js:564 -#: js/turtledefs.js:597 -msgid "Save block artwork as an SVG file." +#: js/piemenus.js:202 +#: js/utils/musicutils.js:1183 +#: js/utils/musicutils.js:1209 +#: js/widgets/musickeyboard.js:2343 +#: js/widgets/phrasemaker.js:1910 +#: js/widgets/sampler.js:812 +#.TRANS: natural is a music term related to pitch +msgid "natural" msgstr "" -#: js/turtledefs.js:585 -msgid "Save audio from your project as WAV." +#: js/piemenus.js:203 +#: js/utils/musicutils.js:1181 +#: js/utils/musicutils.js:1210 +#: js/blocks/PitchBlocks.js:1498 +#: js/turtleactions/PitchActions.js:326 +#: js/widgets/musickeyboard.js:2344 +#: js/widgets/phrasemaker.js:1911 +#: js/widgets/sampler.js:813 +#.TRANS: flat is a music term related to pitch +#.TRANS: flat is a half-step down in pitch +msgid "flat" msgstr "" -#: js/turtledefs.js:589 -msgid "Save your project to as an ABC file." +#: js/piemenus.js:204 +#: js/utils/musicutils.js:1179 +#: js/utils/musicutils.js:1211 +#: js/widgets/musickeyboard.js:2345 +#: js/widgets/phrasemaker.js:1912 +#: js/widgets/sampler.js:814 +#.TRANS: double flat is a music term related to pitch +msgid "double flat" msgstr "" -#: js/turtledefs.js:593 -msgid "Save your project to as a Lilypond file." +#: js/piemenus.js:2864 +#: js/utils/musicutils.js:1006 +#: js/blocks/PitchBlocks.js:1385 +#.TRANS: unison is a music term related to intervals +#.TRANS: unison means the note is the same as the current note +msgid "unison" msgstr "" -#: js/turtledefs.js:604 -msgid "Load samples from server" +#: js/piemenus.js:3018 +#: js/piemenus.js:3091 +#: js/utils/musicutils.js:1014 +#: js/utils/musicutils.js:1189 +#: js/utils/musicutils.js:1326 +#.TRANS: major is a music term related to intervals and mode +msgid "major" msgstr "" -#: js/turtledefs.js:605 -msgid "This button opens a viewer for loading example projects." +#: js/piemenus.js:3018 +#: js/piemenus.js:3091 +#: js/utils/musicutils.js:1032 +#.TRANS: modal scale for music +msgid "ionian" msgstr "" -#: js/turtledefs.js:611 -msgid "Palette buttons" +#: js/piemenus.js:3020 +#: js/piemenus.js:3095 +#: js/utils/musicutils.js:1012 +#: js/utils/musicutils.js:1190 +#: js/utils/musicutils.js:1323 +#.TRANS: minor is a music term related to intervals and mode +msgid "minor" msgstr "" -#: js/turtledefs.js:612 -msgid "This toolbar contains the palette buttons including Rhythm Pitch Tone Action and more." +#: js/piemenus.js:3020 +#: js/piemenus.js:3095 +#: js/utils/musicutils.js:1042 +#.TRANS: modal scale for music +msgid "aeolian" msgstr "" -#: js/turtledefs.js:614 -msgid "Click to show the palettes of blocks and drag blocks from the palettes onto the canvas to use them." +#: js/piemenus.js:3410 +msgid "Duplicate" msgstr "" -#: js/turtledefs.js:620 -msgid "Cartesian/Polar" +#: js/piemenus.js:3412 +msgid "Move to trash" msgstr "" -#: js/turtledefs.js:621 -msgid "Show or hide a coordinate grid." +#: js/piemenus.js:3413 +#: js/widgets/timbre.js:968 +#: planet/js/StringHelper.js:69 +msgid "Close" msgstr "" -#: js/turtledefs.js:627 -msgid "Clear the screen and return the mice to their initial positions." +#: js/piemenus.js:3419 +msgid "Save stack" msgstr "" -#: js/turtledefs.js:633 -msgid "Collapse the graphics window." +#: js/piemenus.js:3449 +msgid "In order to copy a sample, you must reload the widget, import the sample again, and export it." msgstr "" -#: js/turtledefs.js:638 -#: js/activity.js:4256 -#: js/activity.js:4256 -msgid "Home" +#: js/piemenus.js:3812 +msgid "You have chosen key " msgstr "" -#: js/turtledefs.js:639 -msgid "Return all blocks to the center of the screen." +#: js/piemenus.js:3816 +msgid " for your pitch preview." msgstr "" -#: js/turtledefs.js:644 -msgid "Show/hide blocks" +#: js/turtle-singer.js:1363 +#.TRANS: partials are weighted components in a harmonic series +msgid "You must have at least one Partial block inside of a Weighted-partial block" msgstr "" -#: js/turtledefs.js:645 -msgid "Hide or show the blocks and the palettes." +#: js/turtle-singer.js:2077 +msgid "synth cannot play chords." msgstr "" -#: js/turtledefs.js:650 -msgid "Expand/collapse collapsable blocks" +#: js/utils/musicutils.js:505 +#: js/utils/musicutils.js:645 +#: js/widgets/pitchdrummatrix.js:228 +#: js/widgets/musickeyboard.js:2885 +msgid "rest" msgstr "" -#: js/turtledefs.js:651 -msgid "Expand or collapse start and action stacks." +#: js/utils/musicutils.js:689 +msgid "Perfect unison" msgstr "" -#: js/turtledefs.js:658 -#: js/activity.js:4265 -msgid "Decrease block size" +#: js/utils/musicutils.js:689 +msgid "Diminished second" msgstr "" -#: js/turtledefs.js:659 -msgid "Decrease the size of the blocks." +#: js/utils/musicutils.js:690 +msgid "Minor second" msgstr "" -#: js/turtledefs.js:664 -#: js/activity.js:4267 -msgid "Increase block size" +#: js/utils/musicutils.js:690 +msgid "Augmented unison" msgstr "" -#: js/turtledefs.js:665 -msgid "Increase the size of the blocks." +#: js/utils/musicutils.js:691 +msgid "Major second" msgstr "" -#: js/turtledefs.js:670 -msgid "Expand/collapse option toolbar" +#: js/utils/musicutils.js:691 +msgid "Diminished third" msgstr "" -#: js/turtledefs.js:671 -msgid "Click this button to expand or collapse the auxillary toolbar." +#: js/utils/musicutils.js:692 +msgid "Minor third" msgstr "" -#: js/turtledefs.js:676 -msgid "Run slow" +#: js/utils/musicutils.js:692 +msgid "Augmented second" msgstr "" -#: js/turtledefs.js:677 -msgid "Click to run the project in slow mode." +#: js/utils/musicutils.js:693 +msgid "Major third" msgstr "" -#: js/turtledefs.js:683 -msgid "Click to run the project step by step." +#: js/utils/musicutils.js:693 +msgid "Diminished fourth" msgstr "" -#: js/turtledefs.js:690 -msgid "Display statistics about your Music project." +#: js/utils/musicutils.js:694 +msgid "Perfect fourth" msgstr "" -#: js/turtledefs.js:697 -msgid "Delete a selected plugin." +#: js/utils/musicutils.js:694 +msgid "Augmented third" msgstr "" -#: js/turtledefs.js:704 -msgid "Enable scrolling" +#: js/utils/musicutils.js:695 +msgid "Diminished fifth" msgstr "" -#: js/turtledefs.js:705 -msgid "You can scroll the blocks on the canvas." +#: js/utils/musicutils.js:695 +msgid "Augmented fourth" msgstr "" -#: js/turtledefs.js:714 -msgid "Wrap Turtle" +#: js/utils/musicutils.js:696 +msgid "Perfect fifth" msgstr "" -#: js/turtledefs.js:715 -msgid "Turn Turtle wrapping On or Off." +#: js/utils/musicutils.js:696 +msgid "Diminished sixth" msgstr "" -#: js/turtledefs.js:725 -msgid "Restore blocks from the trash." +#: js/utils/musicutils.js:697 +msgid "Minor sixth" msgstr "" -#: js/turtledefs.js:732 -msgid "Switch mode" +#: js/utils/musicutils.js:697 +msgid "Augmented fifth" msgstr "" -#: js/turtledefs.js:733 -msgid "Switch between beginner and advance modes." +#: js/utils/musicutils.js:698 +msgid "Major sixth" msgstr "" -#: js/turtledefs.js:739 -msgid "Select your language preference." +#: js/utils/musicutils.js:698 +msgid "Diminished seventh" msgstr "" -#: js/turtledefs.js:745 -msgid "Keyboard shortcuts" +#: js/utils/musicutils.js:699 +msgid "Minor seventh" msgstr "" -#: js/turtledefs.js:746 -msgid "You can type d to create a do block and r to create a re block etc." +#: js/utils/musicutils.js:699 +msgid "Augmented sixth" msgstr "" -#: js/turtledefs.js:753 -msgid "Show these messages." +#: js/utils/musicutils.js:700 +msgid "Major seventh" msgstr "" -#: js/turtledefs.js:759 -#: js/turtledefs.js:790 -#: js/help.js:335 -msgid "Guide" +#: js/utils/musicutils.js:700 +msgid "Diminished octave" msgstr "" -#: js/turtledefs.js:760 -msgid "A detailed guide to Turtle Blocks is available." +#: js/utils/musicutils.js:701 +msgid "Perfect octave" msgstr "" -#: js/turtledefs.js:764 -msgid "Turtle Blocks Guide" +#: js/utils/musicutils.js:701 +msgid "Augmented seventh" msgstr "" -#: js/turtledefs.js:767 -#: js/turtledefs.js:798 -#: js/help.js:336 -msgid "About" +#: js/utils/musicutils.js:702 +msgid "Minor ninth" msgstr "" -#: js/turtledefs.js:768 -msgid "Turtle Blocks is an open source collection of tools for exploring musical concepts." +#: js/utils/musicutils.js:702 +msgid "Augmented octave" msgstr "" -#: js/turtledefs.js:770 -msgid "A full list of contributors can be found in the Turtle Blocks GitHub repository." +#: js/utils/musicutils.js:703 +msgid "Major ninth" msgstr "" -#: js/turtledefs.js:772 -msgid "Turtle Blocks is licensed under the AGPL." +#: js/utils/musicutils.js:703 +msgid "Diminished tenth" msgstr "" -#: js/turtledefs.js:780 -msgid "Turtle Blocks GitHub repository" +#: js/utils/musicutils.js:704 +msgid "Minor tenth" msgstr "" -#: js/turtledefs.js:783 -#: js/turtledefs.js:814 -#: js/help.js:337 -#: js/help.js:359 -msgid "Congratulations." +#: js/utils/musicutils.js:704 +msgid "Augmented ninth" msgstr "" -#: js/turtledefs.js:784 -msgid "You have finished the tour. Please enjoy Turtle Blocks!" +#: js/utils/musicutils.js:705 +msgid "Major tenth" msgstr "" -#: js/turtledefs.js:791 -msgid "A detailed guide to Music Blocks is available." +#: js/utils/musicutils.js:705 +msgid "Diminished eleventh" msgstr "" -#: js/turtledefs.js:795 -#: js/SaveInterface.js:76 -msgid "Music Blocks Guide" +#: js/utils/musicutils.js:706 +msgid "Perfect eleventh" msgstr "" -#: js/turtledefs.js:799 -msgid "Music Blocks is an open source collection of tools for exploring musical concepts." +#: js/utils/musicutils.js:706 +msgid "Augmented tenth" msgstr "" -#: js/turtledefs.js:801 -msgid "A full list of contributors can be found in the Music Blocks GitHub repository." +#: js/utils/musicutils.js:707 +msgid "Diminished twelfth" msgstr "" -#: js/turtledefs.js:803 -msgid "Music Blocks is licensed under the AGPL." +#: js/utils/musicutils.js:707 +msgid "Augmented eleventh" msgstr "" -#: js/turtledefs.js:811 -msgid "Music Blocks GitHub repository" +#: js/utils/musicutils.js:708 +msgid "Perfect twelfth" msgstr "" -#: js/turtledefs.js:815 -msgid "You have finished the tour. Please enjoy Music Blocks!" +#: js/utils/musicutils.js:708 +msgid "Diminished thirteenth" msgstr "" -#: js/activity.js:369 -msgid "Search for blocks" +#: js/utils/musicutils.js:709 +msgid "Minor thirteenth" msgstr "" -#: js/activity.js:1145 -msgid "Refresh your browser to change to advanced mode." +#: js/utils/musicutils.js:709 +msgid "Augmented fifth, plus an octave" msgstr "" -#: js/activity.js:1150 -msgid "Refresh your browser to change to beginner mode." +#: js/utils/musicutils.js:710 +msgid "Major thirteenth" msgstr "" -#: js/activity.js:1184 -msgid "Catching mice" +#: js/utils/musicutils.js:710 +msgid "Diminished seventh, plus an octave" msgstr "" -#: js/activity.js:1185 -msgid "Cleaning the instruments" +#: js/utils/musicutils.js:838 +#.TRANS: ordinal number. Please keep exactly one space between each number. +msgid "1st 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th" msgstr "" -#: js/activity.js:1186 -msgid "Testing key pieces" +#: js/utils/musicutils.js:1008 +#: js/utils/musicutils.js:1191 +#: js/utils/musicutils.js:1325 +#.TRANS: augmented is a music term related to intervals +msgid "augmented" msgstr "" -#: js/activity.js:1187 -msgid "Sight-reading" +#: js/utils/musicutils.js:1010 +#: js/utils/musicutils.js:1192 +#: js/utils/musicutils.js:1324 +#.TRANS: diminished is a music term related to intervals and mode +msgid "diminished" msgstr "" -#: js/activity.js:1188 -msgid "Combining math and music" +#: js/utils/musicutils.js:1016 +#: js/utils/musicutils.js:1322 +#: js/blocks/IntervalsBlocks.js:649 +#: js/turtleactions/IntervalsActions.js:120 +#: js/turtleactions/IntervalsActions.js:124 +#.TRANS: perfect is a music term related to intervals +msgid "perfect" +msgstr "" + +#: js/utils/musicutils.js:1018 +#.TRANS: twelve semi-tone scale for music +msgid "chromatic" msgstr "" -#: js/activity.js:1189 -msgid "Generating more blocks" +#: js/utils/musicutils.js:1019 +msgid "algerian" msgstr "" -#: js/activity.js:1190 -msgid "Do Re Mi Fa Sol La Ti Do" +#: js/utils/musicutils.js:1020 +msgid "spanish" msgstr "" -#: js/activity.js:1191 -msgid "Tuning string instruments" +#: js/utils/musicutils.js:1022 +#.TRANS: modal scale in music +msgid "octatonic" msgstr "" -#: js/activity.js:1192 -msgid "Pressing random keys" +#: js/utils/musicutils.js:1024 +#.TRANS: harmonic major scale in music +msgid "harmonic major" msgstr "" -#: js/activity.js:1351 -msgid "plugins will be removed upon restart." +#: js/utils/musicutils.js:1026 +#.TRANS: natural minor scales in music +msgid "natural minor" msgstr "" -#: js/activity.js:1360 -msgid "show Cartesian" +#: js/utils/musicutils.js:1028 +#.TRANS: harmonic minor scale in music +msgid "harmonic minor" msgstr "" -#: js/activity.js:1842 -msgid "output tools" +#: js/utils/musicutils.js:1030 +#.TRANS: melodic minor scale in music +msgid "melodic minor" msgstr "" -#: js/activity.js:1845 -msgid "custom note" +#: js/utils/musicutils.js:1034 +#.TRANS: modal scale for music +msgid "dorian" msgstr "" -#: js/activity.js:1848 -msgid "accidental name" +#: js/utils/musicutils.js:1036 +#.TRANS: modal scale for music +msgid "phrygian" msgstr "" -#: js/activity.js:1851 -#: js/PitchBlocks.js:855 -msgid "east indian solfege" +#: js/utils/musicutils.js:1038 +#.TRANS: modal scale for music +msgid "lydian" msgstr "" -#: js/activity.js:1854 -#: js/PitchBlocks.js:869 -msgid "note name" +#: js/utils/musicutils.js:1040 +#.TRANS: modal scale for music +msgid "mixolydian" msgstr "" -#: js/activity.js:1857 -#: js/IntervalsBlocks.js:94 -msgid "temperament name" +#: js/utils/musicutils.js:1044 +#.TRANS: modal scale for music +msgid "locrian" msgstr "" -#: js/activity.js:1863 -msgid "chord name" +#: js/utils/musicutils.js:1046 +#.TRANS: minor jazz scale for music +msgid "jazz minor" msgstr "" -#: js/activity.js:1869 -msgid "filter type" +#: js/utils/musicutils.js:1048 +#.TRANS: bebop scale for music +msgid "bebop" msgstr "" -#: js/activity.js:1872 -msgid "oscillator type" +#: js/utils/musicutils.js:1049 +msgid "arabic" msgstr "" -#: js/activity.js:1878 -#: js/DrumBlocks.js:32 -msgid "noise name" +#: js/utils/musicutils.js:1050 +msgid "byzantine" msgstr "" -#: js/activity.js:1881 -#: js/DrumBlocks.js:75 -msgid "drum name" +#: js/utils/musicutils.js:1052 +#.TRANS: musical scale for music by Verdi +msgid "enigmatic" msgstr "" -#: js/activity.js:1884 -#: js/DrumBlocks.js:119 -msgid "effects name" +#: js/utils/musicutils.js:1053 +msgid "ethiopian" msgstr "" -#: js/activity.js:1887 -msgid "wrap mode" +#: js/utils/musicutils.js:1055 +#.TRANS: Ethiopic scale for music +msgid "geez" msgstr "" -#: js/activity.js:1890 -msgid "load file" +#: js/utils/musicutils.js:1056 +msgid "hindu" msgstr "" -#: js/activity.js:2056 -msgid "This block is deprecated." +#: js/utils/musicutils.js:1057 +msgid "hungarian" msgstr "" -#: js/activity.js:2058 -msgid "Block cannot be found." +#: js/utils/musicutils.js:1059 +#.TRANS: minor Romanian scale for music +msgid "romanian minor" msgstr "" -#: js/activity.js:2266 -msgid "Saving block artwork" +#: js/utils/musicutils.js:1060 +msgid "spanish gypsy" msgstr "" -#: js/activity.js:2277 -msgid "Erase" +#: js/utils/musicutils.js:1062 +#.TRANS: musical scale for Mid-Eastern music +msgid "maqam" msgstr "" -#: js/activity.js:2301 -#: js/activity.js:2323 -msgid "Paste" +#: js/utils/musicutils.js:1064 +#.TRANS: minor blues scale for music +msgid "minor blues" msgstr "" -#: js/activity.js:2305 -msgid "Save block help" +#: js/utils/musicutils.js:1066 +#.TRANS: major blues scale for music +msgid "major blues" msgstr "" -#: js/activity.js:2390 -msgid "Jumping to the bottom of the page." +#: js/utils/musicutils.js:1067 +msgid "whole tone" msgstr "" -#: js/activity.js:2396 -msgid "Scrolling up." +#: js/utils/musicutils.js:1069 +#.TRANS: pentatonic is a general term that means "five note scale". This scale is typically known as "minor pentatonic" +msgid "minor pentatonic" msgstr "" -#: js/activity.js:2401 -msgid "Scrolling down." +#: js/utils/musicutils.js:1071 +#.TRANS: pentatonic is a general term that means "five note scale". This scale is typically known as "major pentatonic" +msgid "major pentatonic" msgstr "" -#: js/activity.js:2406 -msgid "Extracting block" +#: js/utils/musicutils.js:1072 +msgid "chinese" msgstr "" -#: js/activity.js:2414 -msgid "Moving block up." +#: js/utils/musicutils.js:1073 +msgid "egyptian" msgstr "" -#: js/activity.js:2435 -msgid "Moving block down." +#: js/utils/musicutils.js:1075 +#.TRANS: https://en.wikipedia.org/wiki/Hirajoshi_scale NOTE: There are three different versions of this scale +msgid "hirajoshi" msgstr "" -#: js/activity.js:2456 -msgid "Moving block left." +#: js/utils/musicutils.js:1076 +msgid "Japan" msgstr "" -#: js/activity.js:2473 -msgid "Moving block right." +#: js/utils/musicutils.js:1078 +#.TRANS: https://en.wikipedia.org/wiki/In_scale and https://en.wikipedia.org/wiki/Sakura_Sakura +msgid "in" msgstr "" -#: js/activity.js:2488 -msgid "Jump to home position." +#: js/utils/musicutils.js:1080 +#.TRANS: https://en.wikipedia.org/wiki/Miny%C5%8D_scale +msgid "minyo" msgstr "" -#: js/activity.js:2515 -msgid "Hide blocks" +#: js/utils/musicutils.js:1082 +#.TRANS: Italian mathematician +msgid "fibonacci" msgstr "" -#: js/activity.js:3389 -msgid "Click the run button to run the project." +#: js/utils/musicutils.js:1083 +#: js/utils/musicutils.js:1134 +#: js/utils/musicutils.js:1177 +#: js/utils/musicutils.js:1199 +#: js/utils/synthutils.js:134 +#: js/blocks/IntervalsBlocks.js:1124 +#: js/blocks/ToneBlocks.js:946 +#: js/blocks/VolumeBlocks.js:411 +#: js/blocks/WidgetBlocks.js:399 +#: js/blocks/WidgetBlocks.js:404 +#: js/turtleactions/VolumeActions.js:218 +#: js/widgets/modewidget.js:919 +#.TRANS: customize voice +msgid "custom" msgstr "" -#: js/activity.js:3456 -#: js/SaveInterface.js:131 -#: js/SaveInterface.js:204 -#: js/SaveInterface.js:262 -#: js/SaveInterface.js:389 -#: js/SaveInterface.js:417 -#: js/ProjectStorage.js:27 -#: js/GlobalPlanet.js:467 -#: js/GlobalPlanet.js:469 -#: js/GlobalPlanet.js:495 -#.TRANS: default project title when saving as Lilypond -msgid "My Project" +#: js/utils/musicutils.js:1085 +#: js/utils/musicutils.js:1531 +#: js/blocks/WidgetBlocks.js:176 +#.TRANS: highpass filter +msgid "highpass" msgstr "" -#: js/activity.js:4261 -msgid "Show/hide block" +#: js/utils/musicutils.js:1087 +#: js/utils/musicutils.js:1532 +#.TRANS: lowpass filter +msgid "lowpass" msgstr "" -#: js/activity.js:4263 -msgid "Expand/collapse blocks" +#: js/utils/musicutils.js:1089 +#: js/utils/musicutils.js:1533 +#.TRANS: bandpass filter +msgid "bandpass" msgstr "" -#: js/activity.js:4381 -msgid "Could not parse JSON input." +#: js/utils/musicutils.js:1091 +#: js/utils/musicutils.js:1534 +#.TRANS: high-shelf filter +msgid "highshelf" msgstr "" -#: js/activity.js:4684 -#: js/activity.js:4771 -#: js/activity.js:4821 -msgid "Cannot load project from the file. Please check the file type." +#: js/utils/musicutils.js:1093 +#: js/utils/musicutils.js:1535 +#.TRANS: low-shelf filter +msgid "lowshelf" msgstr "" -#: js/activity.js:5051 -msgid "Invalid parameters" +#: js/utils/musicutils.js:1095 +#: js/utils/musicutils.js:1536 +#.TRANS: notch-shelf filter +msgid "notch" msgstr "" -#: js/turtle-singer.js:1334 -#.TRANS: partials are weighted components in a harmonic series -msgid "You must have at least one Partial block inside of a Weighted-partial block" +#: js/utils/musicutils.js:1097 +#: js/utils/musicutils.js:1537 +#.TRANS: all-pass filter +msgid "allpass" msgstr "" -#: js/turtle-singer.js:2048 -msgid "synth cannot play chords." +#: js/utils/musicutils.js:1099 +#: js/utils/musicutils.js:1538 +#.TRANS: peaking filter +msgid "peaking" msgstr "" -#: js/lilypond.js:614 -msgid "brown rat" +#: js/utils/musicutils.js:1100 +#: js/utils/musicutils.js:1546 +#: js/utils/synthutils.js:126 +#: js/blocks/PitchBlocks.js:85 +#.TRANS: sine wave +msgid "sine" msgstr "" -#: js/lilypond.js:615 -msgid "mole" +#: js/utils/musicutils.js:1101 +#: js/utils/musicutils.js:1547 +#: js/utils/synthutils.js:128 +#: js/blocks/PitchBlocks.js:39 +#.TRANS: square wave +msgid "square" msgstr "" -#: js/lilypond.js:616 -msgid "chipmunk" +#: js/utils/musicutils.js:1102 +#: js/utils/musicutils.js:1548 +#: js/utils/synthutils.js:132 +#: js/blocks/PitchBlocks.js:62 +#: js/blocks/ToneBlocks.js:39 +#.TRANS: triangle wave +msgid "triangle" msgstr "" -#: js/lilypond.js:617 -msgid "red squirrel" +#: js/utils/musicutils.js:1103 +#: js/utils/musicutils.js:1549 +#: js/utils/synthutils.js:130 +#: js/blocks/PitchBlocks.js:108 +#.TRANS: sawtooth wave +msgid "sawtooth" msgstr "" -#: js/lilypond.js:618 -msgid "guinea pig" +#: js/utils/musicutils.js:1105 +#: js/utils/musicutils.js:1312 +#: js/blocks/PitchBlocks.js:931 +#: js/blocks/PitchBlocks.js:937 +#: js/turtleactions/PitchActions.js:469 +#.TRANS: even numbers +#.TRANS: invert based on even or odd number or musical scale +msgid "even" msgstr "" -#: js/lilypond.js:619 -msgid "capybara" +#: js/utils/musicutils.js:1107 +#: js/utils/musicutils.js:1313 +#: js/blocks/PitchBlocks.js:937 +#: js/turtleactions/PitchActions.js:471 +#.TRANS: odd numbers +msgid "odd" msgstr "" -#: js/lilypond.js:620 -msgid "coypu" +#: js/utils/musicutils.js:1108 +#: js/utils/musicutils.js:1314 +#: js/blocks/PitchBlocks.js:937 +#: js/turtleactions/PitchActions.js:473 +msgid "scalar" msgstr "" -#: js/lilypond.js:621 -msgid "black rat" +#: js/utils/musicutils.js:1109 +#: js/utils/synthutils.js:72 +#: js/blocks/VolumeBlocks.js:47 +#.TRANS: musical instrument +msgid "piano" msgstr "" -#: js/lilypond.js:622 -msgid "grey squirrel" +#: js/utils/musicutils.js:1110 +#: js/utils/synthutils.js:74 +#.TRANS: musical instrument +msgid "violin" msgstr "" -#: js/lilypond.js:623 -msgid "flying squirrel" +#: js/utils/musicutils.js:1111 +#: js/utils/synthutils.js:76 +#.TRANS: viola musical instrument +msgid "viola" msgstr "" -#: js/lilypond.js:624 -msgid "bat" +#: js/utils/musicutils.js:1112 +#: js/utils/synthutils.js:114 +#.TRANS: xylophone musical instrument +msgid "xylophone" msgstr "" -#: js/lilypond.js:757 -#: js/lilypond.js:921 -#: js/lilypond.js:959 -#: js/ActionBlocks.js:1256 -#: js/ExtrasBlocks.js:553 -msgid "start drum" +#: js/utils/musicutils.js:1113 +#: js/utils/synthutils.js:136 +#.TRANS: vibraphone musical instrument +msgid "vibraphone" msgstr "" -#: js/SaveInterface.js:59 -#: js/SaveInterface.js:61 -#: js/SaveInterface.js:93 -msgid "Music Blocks Project" +#: js/utils/musicutils.js:1114 +#: js/utils/synthutils.js:78 +#.TRANS: musical instrument +msgid "cello" msgstr "" -#: js/SaveInterface.js:63 -msgid "This project was created in Music Blocks" +#: js/utils/musicutils.js:1116 +#: js/utils/synthutils.js:82 +#.TRANS: viola musical instrument +msgid "double bass" msgstr "" -#: js/SaveInterface.js:67 -msgid "Music Blocks is a Free/Libre Software application." +#: js/utils/musicutils.js:1117 +#: js/utils/synthutils.js:84 +#: js/widgets/rhythmruler.js:2511 +#.TRANS: musical instrument +msgid "guitar" msgstr "" -#: js/SaveInterface.js:69 -msgid "The source code can be accessed at" +#: js/utils/musicutils.js:1118 +#: js/utils/synthutils.js:86 +#.TRANS: musical instrument +msgid "acoustic guitar" msgstr "" -#: js/SaveInterface.js:72 -msgid "For more information, please consult the" +#: js/utils/musicutils.js:1119 +#: js/utils/synthutils.js:88 +#.TRANS: musical instrument +msgid "flute" msgstr "" -#: js/SaveInterface.js:83 -msgid "Alternatively, open the file in Music Blocks using the Load project button." +#: js/utils/musicutils.js:1120 +#: js/utils/synthutils.js:90 +#.TRANS: musical instrument +msgid "clarinet" msgstr "" -#: js/SaveInterface.js:85 -msgid "Project Code" +#: js/utils/musicutils.js:1121 +#: js/utils/synthutils.js:92 +#.TRANS: musical instrument +msgid "saxophone" msgstr "" -#: js/SaveInterface.js:87 -msgid "This code stores data about the blocks in a project." +#: js/utils/musicutils.js:1122 +#: js/utils/synthutils.js:94 +#.TRANS: musical instrument +msgid "tuba" msgstr "" -#: js/SaveInterface.js:89 -msgid "Show" +#: js/utils/musicutils.js:1123 +#: js/utils/synthutils.js:96 +#.TRANS: musical instrument +msgid "trumpet" msgstr "" -#: js/SaveInterface.js:91 -msgid "Hide" +#: js/utils/musicutils.js:1124 +#: js/utils/synthutils.js:98 +#.TRANS: musical instrument +msgid "oboe" msgstr "" -#: js/SaveInterface.js:197 -#: js/SaveInterface.js:58 -msgid "No description provided" +#: js/utils/musicutils.js:1125 +#: js/utils/synthutils.js:100 +#.TRANS: musical instrument +msgid "trombone" msgstr "" -#: js/SaveInterface.js:332 -msgid "Your recording is in progress." +#: js/utils/musicutils.js:1126 +#: js/utils/synthutils.js:116 +#.TRANS: polytone synthesizer +msgid "electronic synth" msgstr "" -#: js/SaveInterface.js:401 -#.TRANS: File name prompt for save as Lilypond -msgid "File name" +#: js/utils/musicutils.js:1127 +#: js/utils/synthutils.js:118 +#.TRANS: simple monotone synthesizer +msgid "simple 1" msgstr "" -#: js/SaveInterface.js:403 -#: js/StringHelper.js:39 -#.TRANS: Project title prompt for save as Lilypond -msgid "Project title" +#: js/utils/musicutils.js:1128 +msgid "simple 2" msgstr "" -#: js/SaveInterface.js:405 -#.TRANS: Project title prompt for save as Lilypond -msgid "Project author" +#: js/utils/musicutils.js:1129 +msgid "simple 3" msgstr "" -#: js/SaveInterface.js:407 -#.TRANS: MIDI prompt for save as Lilypond -msgid "Include MIDI output?" +#: js/utils/musicutils.js:1130 +msgid "simple 4" msgstr "" -#: js/SaveInterface.js:409 -#.TRANS: Guitar prompt for save as Lilypond -msgid "Include guitar tablature output?" +#: js/utils/musicutils.js:1131 +#: js/utils/synthutils.js:58 +#: js/blocks/DrumBlocks.js:191 +#.TRANS: white noise synthesizer +msgid "white noise" msgstr "" -#: js/SaveInterface.js:411 -#.TRANS: Lilypond is a scripting language for generating sheet music -msgid "Save as Lilypond" +#: js/utils/musicutils.js:1132 +#: js/utils/synthutils.js:60 +#.TRANS: brown noise synthesizer +msgid "brown noise" msgstr "" -#: js/SaveInterface.js:426 -#: js/EnsembleBlocks.js:75 -#: js/EnsembleBlocks.js:154 -#: js/EnsembleBlocks.js:216 -#: js/EnsembleBlocks.js:302 -#: js/EnsembleBlocks.js:348 -#: js/EnsembleBlocks.js:389 -#: js/EnsembleBlocks.js:441 -#: js/EnsembleBlocks.js:490 -#: js/EnsembleBlocks.js:536 -#: js/EnsembleBlocks.js:583 -#: js/EnsembleBlocks.js:637 -#: js/EnsembleBlocks.js:753 -#: js/EnsembleBlocks.js:840 -#: js/EnsembleBlocks.js:899 -#: js/EnsembleBlocks.js:942 -#: js/EnsembleBlocks.js:1212 -#: js/EnsembleBlocks.js:1280 -#.TRANS: default project author when saving as Lilypond -msgid "Mr. Mouse" +#: js/utils/musicutils.js:1133 +#: js/utils/synthutils.js:62 +#.TRANS: pink noise synthesizer +msgid "pink noise" msgstr "" -#: js/SaveInterface.js:573 -msgid "The Lilypond code is copied to clipboard. You can paste it here: " +#: js/utils/musicutils.js:1135 +#: js/utils/synthutils.js:148 +#: js/widgets/rhythmruler.js:2057 +#: js/widgets/rhythmruler.js:2319 +#.TRANS: musical instrument +msgid "snare drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:50 -#: js/RhythmBlockPaletteBlocks.js:232 -#.TRANS: rhythm block -#.TRANS: translate "rhythm1" as rhythm -msgid "rhythm1" +#: js/utils/musicutils.js:1136 +#: js/utils/synthutils.js:150 +#.TRANS: musical instrument +msgid "kick drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:70 -#: js/RhythmBlockPaletteBlocks.js:251 -#: js/RhythmBlockPaletteBlocks.js:484 -#: js/RhythmBlockPaletteBlocks.js:553 -#: js/RhythmBlockPaletteBlocks.js:874 -msgid "number of notes" +#: js/utils/musicutils.js:1137 +#: js/utils/synthutils.js:152 +#.TRANS: musical instrument +msgid "tom tom" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:126 -msgid "polyphonic rhythm" +#: js/utils/musicutils.js:1138 +#: js/utils/synthutils.js:154 +#.TRANS: musical instrument +msgid "floor tom" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:218 -msgid "The Rhythm block is used to generate rhythm patterns." +#: js/utils/musicutils.js:1139 +#: js/utils/synthutils.js:156 +#.TRANS: musical instrument +msgid "bass drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:279 -msgid "1/64 note" +#: js/utils/musicutils.js:1140 +#: js/utils/synthutils.js:158 +#.TRANS: a drum made from an inverted cup +msgid "cup drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:303 -msgid "1/32 note" +#: js/utils/musicutils.js:1141 +#: js/utils/synthutils.js:160 +#.TRANS: musical instrument +msgid "darbuka drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:331 -msgid "1/16 note" +#: js/utils/musicutils.js:1142 +#: js/utils/synthutils.js:164 +#.TRANS: musical instrument +msgid "hi hat" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:359 -msgid "eighth note" +#: js/utils/musicutils.js:1143 +#: js/utils/synthutils.js:166 +#.TRANS: a small metal bell +msgid "ride bell" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:387 -msgid "quarter note" +#: js/utils/musicutils.js:1144 +#: js/utils/synthutils.js:168 +#.TRANS: musical instrument +msgid "cow bell" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:415 -msgid "half note" +#: js/utils/musicutils.js:1145 +msgid "japanese drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:443 -msgid "whole note" +#: js/utils/musicutils.js:1146 +#: js/utils/synthutils.js:174 +#.TRANS: musical instrument +msgid "japanese bell" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:481 -#: js/RhythmBlockPaletteBlocks.js:550 -#: js/RhythmBlockPaletteBlocks.js:601 -#.TRANS: A tuplet is a note value divided into irregular time values. -msgid "tuplet" +#: js/utils/musicutils.js:1147 +#: js/utils/synthutils.js:170 +#.TRANS: musical instrument +msgid "triangle bell" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:767 -msgid "septuplet" +#: js/utils/musicutils.js:1148 +#: js/utils/synthutils.js:172 +#.TRANS: musical instrument +msgid "finger cymbals" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:795 -msgid "quintuplet" +#: js/utils/musicutils.js:1149 +#: js/utils/synthutils.js:176 +#.TRANS: a musically tuned set of bells +msgid "chime" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:823 -msgid "triplet" +#: js/utils/musicutils.js:1150 +#: js/utils/synthutils.js:178 +#.TRANS: a musical instrument +msgid "gong" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:850 -msgid "simple tuplet" +#: js/utils/musicutils.js:1151 +#: js/utils/synthutils.js:180 +#.TRANS: sound effect +msgid "clang" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:860 -msgid "Tuplets are a collection of notes that get scaled to a specific duration." +#: js/utils/musicutils.js:1152 +#: js/utils/synthutils.js:182 +#.TRANS: sound effect +msgid "crash" msgstr "" -#: js/WidgetBlocks.js:71 -#.TRANS: sound envelope (ADSR) -msgid "envelope" +#: js/utils/musicutils.js:1153 +#: js/utils/synthutils.js:184 +#.TRANS: sound effect +msgid "bottle" msgstr "" -#: js/WidgetBlocks.js:79 -#.TRANS: Attack time is the time taken for initial run-up of level from nil to peak, beginning when the key is first pressed. -msgid "attack" +#: js/utils/musicutils.js:1154 +#: js/utils/synthutils.js:186 +#.TRANS: sound effect +msgid "clap" msgstr "" -#: js/WidgetBlocks.js:81 -#.TRANS: Decay time is the time taken for the subsequent run down from the attack level to the designated sustain level. -msgid "decay" +#: js/utils/musicutils.js:1155 +#: js/utils/synthutils.js:188 +#.TRANS: sound effect +msgid "slap" msgstr "" -#: js/WidgetBlocks.js:83 -#.TRANS: Sustain level is the level during the main sequence of the sound's duration, until the key is released. -msgid "sustain" +#: js/utils/musicutils.js:1156 +#: js/utils/synthutils.js:190 +#.TRANS: sound effect +msgid "splash" msgstr "" -#: js/WidgetBlocks.js:85 -#.TRANS: Release time is the time taken for the level to decay from the sustain level to zero after the key is released. -msgid "release" +#: js/utils/musicutils.js:1157 +#: js/utils/synthutils.js:192 +#.TRANS: sound effect +msgid "bubbles" msgstr "" -#: js/WidgetBlocks.js:96 -msgid "Attack value should be from 0 to 100." +#: js/utils/musicutils.js:1158 +#: js/utils/synthutils.js:194 +#.TRANS: sound effect +msgid "raindrop" msgstr "" -#: js/WidgetBlocks.js:99 -msgid "Decay value should be from 0 to 100." +#: js/utils/musicutils.js:1159 +#: js/utils/synthutils.js:196 +#.TRANS: animal sound effect +msgid "cat" msgstr "" -#: js/WidgetBlocks.js:102 -msgid "Sustain value should be from 0 to 100." +#: js/utils/musicutils.js:1160 +#: js/utils/synthutils.js:198 +#.TRANS: animal sound effect +msgid "cricket" msgstr "" -#: js/WidgetBlocks.js:105 -msgid "Release value should be from 0-100." +#: js/utils/musicutils.js:1161 +#: js/utils/synthutils.js:200 +#.TRANS: animal sound effect +msgid "dog" msgstr "" -#: js/WidgetBlocks.js:121 -msgid "You are adding multiple envelope blocks." +#: js/utils/musicutils.js:1163 +#: js/utils/synthutils.js:102 +#.TRANS: musical instrument +msgid "banjo" msgstr "" -#: js/WidgetBlocks.js:144 -#.TRANS: a filter removes some unwanted components from a signal -msgid "filter" +#: js/utils/musicutils.js:1164 +#: js/utils/synthutils.js:104 +#.TRANS: musical instrument +msgid "koto" msgstr "" -#: js/WidgetBlocks.js:149 -#: js/musicutils.js:706 -#: js/musicutils.js:1105 -#.TRANS: highpass filter -msgid "highpass" +#: js/utils/musicutils.js:1165 +#: js/utils/synthutils.js:106 +#.TRANS: musical instrument +msgid "dulcimer" msgstr "" -#: js/WidgetBlocks.js:152 -#: js/ToneBlocks.js:42 -#: js/timbre.js:1558 -#: js/timbre.js:1808 -#.TRANS: type of filter, e.g., lowpass, highpass, etc. -#.TRANS: there are different types (sine, triangle, square...) of oscillators. -msgid "type" +#: js/utils/musicutils.js:1166 +#: js/utils/synthutils.js:108 +#.TRANS: musical instrument +msgid "electric guitar" msgstr "" -#: js/WidgetBlocks.js:154 -#: js/timbre.js:1818 -#.TRANS: rolloff is the steepness of a change in frequency. -msgid "rolloff" +#: js/utils/musicutils.js:1167 +#: js/utils/synthutils.js:110 +#.TRANS: musical instrument +msgid "bassoon" msgstr "" -#: js/WidgetBlocks.js:155 -#: js/MediaBlocks.js:692 -#: js/temperament.js:382 -#: js/temperament.js:417 -#: js/temperament.js:477 -#: js/temperament.js:485 -#: js/temperament.js:1348 -#: js/timbre.js:1842 -msgid "frequency" +#: js/utils/musicutils.js:1168 +#: js/utils/synthutils.js:112 +#.TRANS: musical instrument +msgid "celeste" msgstr "" -#: js/WidgetBlocks.js:179 -#.TRANS: rolloff is the steepness of a change in frequency. -msgid "Rolloff value should be either -12, -24, -48, or -96 decibels/octave." +#: js/utils/musicutils.js:1170 +#: js/widgets/temperament.js:787 +#.TRANS: musical temperament +msgid "equal" msgstr "" -#: js/WidgetBlocks.js:211 -msgid "The Temperament tool is used to define custom tuning." +#: js/utils/musicutils.js:1172 +#.TRANS: musical temperament +msgid "Pythagorean" msgstr "" -#: js/WidgetBlocks.js:277 -#: js/sampler.js:329 -msgid "Upload a sample and adjust its pitch center." +#: js/utils/musicutils.js:1174 +#.TRANS: musical temperament +msgid "just intonation" msgstr "" -#: js/WidgetBlocks.js:284 -#.TRANS: the speed at music is should be played. -msgid "sampler" +#: js/utils/musicutils.js:1176 +#.TRANS: musical temperament +msgid "meantone" msgstr "" -#: js/WidgetBlocks.js:329 -#: js/WidgetBlocks.js:334 -#: js/IntervalsBlocks.js:928 -#: js/VolumeBlocks.js:411 -#: js/ToneBlocks.js:946 -#: js/VolumeActions.js:218 -#: js/musicutils.js:704 -#: js/musicutils.js:755 -#: js/musicutils.js:798 -#: js/musicutils.js:820 -#: js/musicutils.js:1136 -#: js/synthutils.js:118 -#: js/modewidget.js:919 -#.TRANS: customize voice -msgid "custom" +#: js/utils/musicutils.js:1193 +msgid "major 7th" msgstr "" -#: js/WidgetBlocks.js:432 -msgid "The Meter block opens a tool to select strong beats for the meter." +#: js/utils/musicutils.js:1194 +msgid "minor 7th" msgstr "" -#: js/WidgetBlocks.js:473 -msgid "The oscilloscope block opens a tool to visualize waveforms." +#: js/utils/musicutils.js:1195 +msgid "dominant 7th" msgstr "" -#: js/WidgetBlocks.js:478 -msgid "oscilloscope" +#: js/utils/musicutils.js:1196 +msgid "minor-major 7th" msgstr "" -#: js/WidgetBlocks.js:530 -msgid "The Custom mode block opens a tool to explore musical mode (the spacing of the notes in a scale)." +#: js/utils/musicutils.js:1197 +msgid "fully-diminished 7th" msgstr "" -#: js/WidgetBlocks.js:536 -#.TRANS: musical mode is the pattern of half-steps in an octave, e.g., Major or Minor modes -msgid "custom mode" +#: js/utils/musicutils.js:1198 +msgid "half-diminished 7th" msgstr "" -#: js/WidgetBlocks.js:570 -msgid "The Tempo block opens a metronome to visualize the beat." +#: js/utils/musicutils.js:1557 +#: js/utils/musicutils.js:1569 +msgid "Equal (12EDO)" msgstr "" -#: js/WidgetBlocks.js:617 -msgid "The Arpeggio Widget is used to compose chord sequences." +#: js/utils/musicutils.js:1558 +#: js/utils/musicutils.js:1570 +msgid "5-limit Just Intonation" msgstr "" -#: js/WidgetBlocks.js:623 -#: js/IntervalsBlocks.js:683 -msgid "arpeggio" +#: js/utils/musicutils.js:1559 +#: js/utils/musicutils.js:1571 +msgid "Pythagorean (3-limit JI)" msgstr "" -#: js/WidgetBlocks.js:677 -msgid "The Pitch drum matrix is used to map pitches to drum sounds." +#: js/utils/musicutils.js:1560 +#: js/utils/musicutils.js:1561 +#: js/utils/musicutils.js:1572 +#: js/utils/musicutils.js:1573 +msgid "Meantone" msgstr "" -#: js/WidgetBlocks.js:682 -#.TRANS: makes a mapping between pitches and drum sounds -msgid "pitch-drum mapper" +#: js/utils/musicutils.js:1574 +msgid "Custom" msgstr "" -#: js/WidgetBlocks.js:724 -msgid "You must have at least one pitch block and one drum block in the matrix." +#: js/utils/musicutils.js:5387 +#: js/utils/musicutils.js:5430 +msgid "current" msgstr "" -#: js/WidgetBlocks.js:746 -msgid "The Pitch slider tool to is used to generate pitches at selected frequencies." +#: js/utils/musicutils.js:5390 +#: js/utils/musicutils.js:5421 +msgid "next" msgstr "" -#: js/WidgetBlocks.js:751 -#.TRANS: widget to generate pitches using a slider -msgid "pitch slider" +#: js/utils/musicutils.js:5393 +#: js/utils/musicutils.js:5426 +msgid "previous" msgstr "" -#: js/WidgetBlocks.js:788 -msgid "chromatic keyboard" +#: js/utils/synthutils.js:120 +#.TRANS: simple monotone synthesizer +msgid "simple-2" msgstr "" -#: js/WidgetBlocks.js:815 -#: js/WidgetBlocks.js:874 -#.TRANS: widget to generate pitches using a slider -msgid "music keyboard" +#: js/utils/synthutils.js:122 +#.TRANS: simple monotone synthesizer +msgid "simple-3" msgstr "" -#: js/WidgetBlocks.js:859 -#: js/WidgetBlocks.js:866 -msgid "The Music keyboard block opens a piano keyboard that can be used to create notes." +#: js/utils/synthutils.js:124 +#.TRANS: simple monotone synthesizer +msgid "simple-4" msgstr "" -#: js/WidgetBlocks.js:910 -msgid "The Pitch staircase tool to is used to generate pitches from a given ratio." +#: js/utils/synthutils.js:162 +#.TRANS: musical instrument +msgid "taiko" msgstr "" -#: js/WidgetBlocks.js:917 -#.TRANS: generate a progressive sequence of pitches -msgid "pitch staircase" +#: js/blocks/ActionBlocks.js:58 +msgid "The Return block will return a value from an action." msgstr "" -#: js/WidgetBlocks.js:982 -msgid "The Rhythm Maker block opens a tool to create drum machines." +#: js/blocks/ActionBlocks.js:75 +msgid "return" msgstr "" -#: js/WidgetBlocks.js:1036 -msgid "G major scale" +#: js/blocks/ActionBlocks.js:128 +msgid "The Return to URL block will return a value to a webpage." msgstr "" -#: js/WidgetBlocks.js:1064 -msgid "C major scale" +#: js/blocks/ActionBlocks.js:145 +msgid "return to URL" msgstr "" -#: js/WidgetBlocks.js:1097 -msgid "The Phrase Maker block opens a tool to create musical phrases." +#: js/blocks/ActionBlocks.js:233 +#: js/blocks/ActionBlocks.js:290 +#: js/blocks/ActionBlocks.js:501 +#: js/blocks/ActionBlocks.js:688 +msgid "The Calculate block returns a value calculated by an action." msgstr "" -#: js/WidgetBlocks.js:1104 -#.TRANS: assigns pitch to a sequence of beats to generate a melody -msgid "phrase maker" +#: js/blocks/ActionBlocks.js:251 +#: js/blocks/ActionBlocks.js:517 +#: js/blocks/ActionBlocks.js:707 +msgid "calculate" msgstr "" -#: js/WidgetBlocks.js:1168 -msgid "You must have at least one pitch block and one rhythm block in the matrix." +#: js/blocks/ActionBlocks.js:376 +#: js/blocks/ActionBlocks.js:593 +#: js/blocks/ActionBlocks.js:942 +#: js/blocks/ActionBlocks.js:1389 +#.TRANS: do is the do something or take an action. +msgid "The Do block is used to initiate an action." msgstr "" -#: js/WidgetBlocks.js:1220 -msgid "The Status block opens a tool for inspecting the status of Music Blocks as it is running." +#: js/blocks/ActionBlocks.js:390 +#: js/blocks/ActionBlocks.js:610 +#: js/blocks/ActionBlocks.js:959 +#: js/blocks/ActionBlocks.js:1048 +#: js/blocks/MeterBlocks.js:769 +msgid "do1" msgstr "" -#: js/IntervalsBlocks.js:45 -msgid "set temperament" +#: js/blocks/ActionBlocks.js:390 +#: js/blocks/ActionBlocks.js:610 +#: js/blocks/ActionBlocks.js:959 +#: js/blocks/ActionBlocks.js:1048 +#: js/blocks/FlowBlocks.js:742 +#: js/blocks/FlowBlocks.js:822 +#: js/blocks/MeterBlocks.js:769 +msgid "do" msgstr "" -#: js/IntervalsBlocks.js:63 -#: js/MediaBlocks.js:746 -#: js/PitchBlocks.js:657 -#: js/PitchBlocks.js:933 -#: js/PitchBlocks.js:972 -#: js/PitchBlocks.js:1005 -#: js/PitchBlocks.js:1166 -#: js/PitchBlocks.js:1679 -#: js/PitchBlocks.js:1720 -#: js/PitchBlocks.js:1827 -#: js/ToneBlocks.js:1025 -#.TRANS: adjusts the shift up or down by one octave (twelve half-steps in the interval between two notes, one having twice or half the frequency in Hz of the other.) -msgid "octave" +#: js/blocks/ActionBlocks.js:791 +#: js/blocks/ActionBlocks.js:865 +msgid "The Arg block contains the value of an argument passed to an action." msgstr "" -#: js/IntervalsBlocks.js:99 -msgid "The Temperament name block is used to select a tuning method." +#: js/blocks/ActionBlocks.js:806 +#: js/blocks/ActionBlocks.js:878 +msgid "arg" msgstr "" -#: js/IntervalsBlocks.js:161 -msgid "doubly" +#: js/blocks/ActionBlocks.js:836 +#: js/blocks/ActionBlocks.js:900 +#: js/blocks/ActionBlocks.js:908 +msgid "Invalid argument" msgstr "" -#: js/IntervalsBlocks.js:166 -msgid "The Doubly block will double the size of an interval." +#: js/blocks/ActionBlocks.js:944 +msgid "In the example, it is used with the One of block to choose a random phase." msgstr "" -#: js/IntervalsBlocks.js:262 -msgid "interval number" +#: js/blocks/ActionBlocks.js:1019 +#: js/blocks/ActionBlocks.js:1026 +msgid "The Listen block is used to listen for an event such as a mouse click." msgstr "" -#: js/IntervalsBlocks.js:330 -#.TRANS: measure the distance between two pitches in semi-tones -msgid "semi-tone interval measure" +#: js/blocks/ActionBlocks.js:1028 +msgid "When the event happens, an action is taken." msgstr "" -#: js/IntervalsBlocks.js:397 -#: js/IntervalsBlocks.js:513 -msgid "You must use two pitch blocks when measuring an interval." +#: js/blocks/ActionBlocks.js:1045 +msgid "on" msgstr "" -#: js/IntervalsBlocks.js:439 -msgid "The Scalar interval block measures the distance between two notes in the current key and mode." +#: js/blocks/ActionBlocks.js:1048 +#: js/blocks/ActionBlocks.js:1049 +#: js/blocks/ActionBlocks.js:1153 +msgid "event" msgstr "" -#: js/IntervalsBlocks.js:445 -#.TRANS: measure the distance between two pitches in steps of musical scale -msgid "scalar interval measure" +#: js/blocks/ActionBlocks.js:1133 +msgid "The Broadcast block is used to trigger an event." msgstr "" -#: js/IntervalsBlocks.js:592 -#: js/musicutils.js:637 -#: js/musicutils.js:908 -#.TRANS: perfect is a music term related to intervals -msgid "perfect" +#: js/blocks/ActionBlocks.js:1151 +msgid "broadcast" msgstr "" -#: js/IntervalsBlocks.js:621 -msgid "In the figure, we add sol# to sol." +#: js/blocks/ActionBlocks.js:1208 +msgid "Each Start block is a separate voice." msgstr "" -#: js/IntervalsBlocks.js:627 -#: js/OrnamentBlocks.js:220 -#.TRANS: calculate a relative step between notes based on semi-tones -msgid "semi-tone interval" +#: js/blocks/ActionBlocks.js:1304 +msgid "It is often used for storing a phrase of music that is repeated." msgstr "" -#: js/IntervalsBlocks.js:676 -msgid "The output of the example is: do, mi, sol, sol, ti, mi" +#: js/blocks/ActionBlocks.js:1495 +msgid "define temperament" msgstr "" -#: js/IntervalsBlocks.js:735 -msgid "The Chord block calculates common chords." +#: js/blocks/BooleanBlocks.js:44 +msgid "The Not block is the logical not operator." msgstr "" -#: js/IntervalsBlocks.js:737 -msgid "In the figure, we generate a C-major chord." +#: js/blocks/BooleanBlocks.js:62 +msgid "not" msgstr "" -#: js/IntervalsBlocks.js:742 -msgid "chord" +#: js/blocks/BooleanBlocks.js:134 +msgid "The And block is the logical and operator." msgstr "" -#: js/IntervalsBlocks.js:794 -msgid "The Ratio Interval block calculates an interval based on a ratio." +#: js/blocks/BooleanBlocks.js:152 +msgid "and" msgstr "" -#: js/IntervalsBlocks.js:799 -msgid "ratio interval" +#: js/blocks/BooleanBlocks.js:218 +msgid "The Or block is the logical or operator." msgstr "" -#: js/IntervalsBlocks.js:868 -msgid "In the figure, we add la to sol." +#: js/blocks/BooleanBlocks.js:236 +msgid "or" msgstr "" -#: js/IntervalsBlocks.js:924 -#.TRANS: define a custom mode -msgid "define mode" +#: js/blocks/BooleanBlocks.js:302 +msgid "The XOR block is the logical XOR operator." msgstr "" -#: js/IntervalsBlocks.js:977 -msgid "movable Do" +#: js/blocks/BooleanBlocks.js:320 +msgid "xor" msgstr "" -#: js/IntervalsBlocks.js:1028 -#.TRANS: mode length is the number of notes in the mode, e.g., 7 for major and minor scales; 12 for chromatic scales -msgid "mode length" +#: js/blocks/BooleanBlocks.js:808 +msgid "The Equal block returns True if the two numbers are equal." msgstr "" -#: js/IntervalsBlocks.js:1037 -msgid "The Mode length block is the number of notes in the current scale." +#: js/blocks/BooleanBlocks.js:909 +msgid "The Not-equal-to block returns True if the two numbers are not equal to each other." msgstr "" -#: js/IntervalsBlocks.js:1039 -msgid "Most Western scales have 7 notes." +#: js/blocks/BooleanBlocks.js:1008 +msgid "The Boolean block is used to specify true or false." msgstr "" -#: js/IntervalsBlocks.js:1088 -#.TRANS: the mode in music is 'major', 'minor', etc. -msgid "current mode" +#: js/blocks/BoxesBlocks.js:53 +#: js/blocks/BoxesBlocks.js:59 +msgid "The Add-to block is used to add to the value stored in a box." msgstr "" -#: js/IntervalsBlocks.js:1141 -#.TRANS: the key is a group of pitches with which a music composition is created -msgid "current key" +#: js/blocks/BoxesBlocks.js:61 +msgid "It can also be used with other blocks such as Color and Pen size." msgstr "" -#: js/IntervalsBlocks.js:1193 -#: js/IntervalsBlocks.js:1238 -#.TRANS: set the key and mode, e.g. C Major -msgid "set key" +#: js/blocks/BoxesBlocks.js:73 +msgid "add" msgstr "" -#: js/IntervalsBlocks.js:1247 -#: js/IntervalsBlocks.js:1253 -msgid "The Set key block is used to set the key and mode," +#: js/blocks/BoxesBlocks.js:75 +#: js/widgets/temperament.js:857 +msgid "to" msgstr "" -#: js/IntervalsBlocks.js:1253 -msgid "eg C Major" +#: js/blocks/BoxesBlocks.js:75 +#: js/blocks/BoxesBlocks.js:595 +#: js/blocks/HeapBlocks.js:544 +msgid "value1" msgstr "" -#: js/IntervalsBlocks.js:1266 -#: js/DictBlocks.js:215 -#: js/DictBlocks.js:216 -#: js/DictBlocks.js:289 -#: js/DictBlocks.js:290 -#: js/DictBlocks.js:357 -#: js/DictBlocks.js:430 -#: js/DictBlocks.js:431 -#.TRANS: key, e.g., C in C Major -msgid "key" +#: js/blocks/BoxesBlocks.js:118 +msgid "Block does not support incrementing." msgstr "" -#: js/ActionBlocks.js:58 -msgid "The Return block will return a value from an action." +#: js/blocks/BoxesBlocks.js:152 +msgid "The Add-1-to block adds one to the value stored in a box." msgstr "" -#: js/ActionBlocks.js:75 -msgid "return" +#: js/blocks/BoxesBlocks.js:163 +msgid "add 1 to" msgstr "" -#: js/ActionBlocks.js:128 -msgid "The Return to URL block will return a value to a webpage." +#: js/blocks/BoxesBlocks.js:211 +msgid "The Subtract-1-from block subtracts one from the value stored in a box." msgstr "" -#: js/ActionBlocks.js:145 -msgid "return to URL" +#: js/blocks/BoxesBlocks.js:222 +msgid "subtract 1 from" msgstr "" -#: js/ActionBlocks.js:233 -#: js/ActionBlocks.js:290 -#: js/ActionBlocks.js:501 -#: js/ActionBlocks.js:688 -msgid "The Calculate block returns a value calculated by an action." +#: js/blocks/BoxesBlocks.js:270 +#: js/blocks/BoxesBlocks.js:387 +msgid "The Box block returns the value stored in a box." msgstr "" -#: js/ActionBlocks.js:251 -#: js/ActionBlocks.js:517 -#: js/ActionBlocks.js:707 -msgid "calculate" +#: js/blocks/BoxesBlocks.js:500 +#: js/blocks/BoxesBlocks.js:576 +msgid "The Store in block will store a value in a box." msgstr "" -#: js/ActionBlocks.js:376 -#: js/ActionBlocks.js:593 -#: js/ActionBlocks.js:942 -#: js/ActionBlocks.js:1389 -#.TRANS: do is the do something or take an action. -msgid "The Do block is used to initiate an action." +#: js/blocks/BoxesBlocks.js:595 +#: js/blocks/EnsembleBlocks.js:391 +#: js/blocks/EnsembleBlocks.js:402 +msgid "name1" msgstr "" -#: js/ActionBlocks.js:390 -#: js/ActionBlocks.js:610 -#: js/ActionBlocks.js:959 -#: js/ActionBlocks.js:1048 -#: js/MeterBlocks.js:769 -msgid "do1" +#: js/blocks/BoxesBlocks.js:652 +msgid "The Box2 block returns the value stored in Box2." msgstr "" -#: js/ActionBlocks.js:390 -#: js/ActionBlocks.js:610 -#: js/ActionBlocks.js:959 -#: js/ActionBlocks.js:1048 -#: js/FlowBlocks.js:742 -#: js/FlowBlocks.js:822 -#: js/MeterBlocks.js:769 -msgid "do" +#: js/blocks/BoxesBlocks.js:703 +msgid "The Store in Box2 block is used to store a value in Box2." msgstr "" -#: js/ActionBlocks.js:791 -#: js/ActionBlocks.js:865 -msgid "The Arg block contains the value of an argument passed to an action." +#: js/blocks/BoxesBlocks.js:715 +msgid "store in box2" msgstr "" -#: js/ActionBlocks.js:806 -#: js/ActionBlocks.js:878 -msgid "arg" +#: js/blocks/BoxesBlocks.js:761 +msgid "The Box1 block returns the value stored in Box1." msgstr "" -#: js/ActionBlocks.js:836 -#: js/ActionBlocks.js:900 -#: js/ActionBlocks.js:908 -msgid "Invalid argument" +#: js/blocks/BoxesBlocks.js:812 +msgid "The Store in Box1 block is used to store a value in Box1." msgstr "" -#: js/ActionBlocks.js:944 -msgid "In the example, it is used with the One of block to choose a random phase." +#: js/blocks/BoxesBlocks.js:826 +msgid "store in box1" msgstr "" -#: js/ActionBlocks.js:1019 -#: js/ActionBlocks.js:1026 -msgid "The Listen block is used to listen for an event such as a mouse click." +#: js/blocks/DictBlocks.js:77 +msgid "show dictionary" msgstr "" -#: js/ActionBlocks.js:1028 -msgid "When the event happens, an action is taken." +#: js/blocks/DictBlocks.js:80 +#: js/blocks/DictBlocks.js:145 +#: js/blocks/DictBlocks.js:216 +#: js/blocks/DictBlocks.js:290 +#: js/blocks/ProgramBlocks.js:396 +#: js/blocks/ProgramBlocks.js:501 +#: js/blocks/ProgramBlocks.js:664 +msgid "My Dictionary" msgstr "" -#: js/ActionBlocks.js:1045 -msgid "on" +#: js/blocks/DictBlocks.js:129 +msgid "The Dictionary block returns a dictionary." msgstr "" -#: js/ActionBlocks.js:1048 -#: js/ActionBlocks.js:1049 -#: js/ActionBlocks.js:1153 -msgid "event" +#: js/blocks/DictBlocks.js:197 +#: js/blocks/DictBlocks.js:339 +msgid "The Get-dict block returns a value in the dictionary for a specified key." msgstr "" -#: js/ActionBlocks.js:1133 -msgid "The Broadcast block is used to trigger an event." +#: js/blocks/DictBlocks.js:212 +#: js/blocks/DictBlocks.js:354 +#.TRANS: retrieve a value from the dictionary with a given key +msgid "get value" msgstr "" -#: js/ActionBlocks.js:1151 -msgid "broadcast" +#: js/blocks/DictBlocks.js:215 +#: js/blocks/DictBlocks.js:216 +#: js/blocks/DictBlocks.js:289 +#: js/blocks/DictBlocks.js:290 +#: js/blocks/DictBlocks.js:357 +#: js/blocks/DictBlocks.js:430 +#: js/blocks/DictBlocks.js:431 +msgid "key2" msgstr "" -#: js/ActionBlocks.js:1208 -msgid "Each Start block is a separate voice." +#: js/blocks/DictBlocks.js:215 +#: js/blocks/DictBlocks.js:216 +#: js/blocks/DictBlocks.js:289 +#: js/blocks/DictBlocks.js:290 +#: js/blocks/DictBlocks.js:357 +#: js/blocks/DictBlocks.js:430 +#: js/blocks/DictBlocks.js:431 +#: js/blocks/IntervalsBlocks.js:1462 +#.TRANS: key, e.g., C in C Major +msgid "key" msgstr "" -#: js/ActionBlocks.js:1304 -msgid "It is often used for storing a phrase of music that is repeated." +#: js/blocks/DictBlocks.js:271 +#: js/blocks/DictBlocks.js:411 +msgid "The Set-dict block sets a value in the dictionary for a specified key." msgstr "" -#: js/ActionBlocks.js:1495 -msgid "define temperament" +#: js/blocks/DictBlocks.js:286 +#: js/blocks/DictBlocks.js:427 +#.TRANS: set a value in the dictionary for a given key +msgid "set value" msgstr "" -#: js/EnsembleBlocks.js:66 +#: js/blocks/EnsembleBlocks.js:66 msgid "mouse index heap" msgstr "" -#: js/EnsembleBlocks.js:68 +#: js/blocks/EnsembleBlocks.js:68 msgid "The Mouse index heap block returns a value in the heap at a specified location for a specified mouse." msgstr "" -#: js/EnsembleBlocks.js:77 -#: js/EnsembleBlocks.js:1080 +#: js/blocks/EnsembleBlocks.js:77 +#: js/blocks/EnsembleBlocks.js:1080 msgid "mouse name" msgstr "" -#: js/EnsembleBlocks.js:77 -#: js/EnsembleBlocks.js:92 -#: js/HeapBlocks.js:544 +#: js/blocks/EnsembleBlocks.js:77 +#: js/blocks/EnsembleBlocks.js:92 +#: js/blocks/HeapBlocks.js:544 #.TRANS: value1 is a numeric value (JAPANESE ONLY) msgid "index" msgstr "" -#: js/EnsembleBlocks.js:80 +#: js/blocks/EnsembleBlocks.js:80 msgid "turtle index heap" msgstr "" -#: js/EnsembleBlocks.js:82 +#: js/blocks/EnsembleBlocks.js:82 msgid "The Turtle index heap block returns a value in the heap at a specified location for a specified turtle." msgstr "" -#: js/EnsembleBlocks.js:90 -#: js/EnsembleBlocks.js:167 -#: js/EnsembleBlocks.js:230 -#: js/EnsembleBlocks.js:316 -#: js/EnsembleBlocks.js:362 -#: js/EnsembleBlocks.js:400 -#: js/EnsembleBlocks.js:454 -#: js/EnsembleBlocks.js:504 -#: js/EnsembleBlocks.js:550 -#: js/EnsembleBlocks.js:597 -#: js/EnsembleBlocks.js:651 -#: js/EnsembleBlocks.js:763 -#: js/EnsembleBlocks.js:854 -#: js/EnsembleBlocks.js:915 -#: js/EnsembleBlocks.js:955 -#: js/EnsembleBlocks.js:1219 -#: js/EnsembleBlocks.js:1293 +#: js/blocks/EnsembleBlocks.js:90 +#: js/blocks/EnsembleBlocks.js:167 +#: js/blocks/EnsembleBlocks.js:230 +#: js/blocks/EnsembleBlocks.js:316 +#: js/blocks/EnsembleBlocks.js:362 +#: js/blocks/EnsembleBlocks.js:400 +#: js/blocks/EnsembleBlocks.js:454 +#: js/blocks/EnsembleBlocks.js:504 +#: js/blocks/EnsembleBlocks.js:550 +#: js/blocks/EnsembleBlocks.js:597 +#: js/blocks/EnsembleBlocks.js:651 +#: js/blocks/EnsembleBlocks.js:763 +#: js/blocks/EnsembleBlocks.js:854 +#: js/blocks/EnsembleBlocks.js:915 +#: js/blocks/EnsembleBlocks.js:955 +#: js/blocks/EnsembleBlocks.js:1219 +#: js/blocks/EnsembleBlocks.js:1293 #.TRANS: Yertle is the name of a turtle. msgid "Yertle" msgstr "" -#: js/EnsembleBlocks.js:92 -#: js/EnsembleBlocks.js:1089 +#: js/blocks/EnsembleBlocks.js:92 +#: js/blocks/EnsembleBlocks.js:1089 msgid "turtle name" msgstr "" -#: js/EnsembleBlocks.js:122 -#: js/EnsembleBlocks.js:1197 -#: js/HeapBlocks.js:474 -#: js/HeapBlocks.js:572 +#: js/blocks/EnsembleBlocks.js:122 +#: js/blocks/EnsembleBlocks.js:1197 +#: js/blocks/HeapBlocks.js:474 +#: js/blocks/HeapBlocks.js:572 msgid "Index must be > 0." msgstr "" -#: js/EnsembleBlocks.js:127 -#: js/HeapBlocks.js:479 -#: js/HeapBlocks.js:577 +#: js/blocks/EnsembleBlocks.js:127 +#: js/blocks/HeapBlocks.js:479 +#: js/blocks/HeapBlocks.js:577 msgid "Maximum heap size is 1000." msgstr "" -#: js/EnsembleBlocks.js:145 +#: js/blocks/EnsembleBlocks.js:145 msgid "stop mouse" msgstr "" -#: js/EnsembleBlocks.js:147 +#: js/blocks/EnsembleBlocks.js:147 msgid "The Stop mouse block stops the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:158 +#: js/blocks/EnsembleBlocks.js:158 msgid "stop turtle" msgstr "" -#: js/EnsembleBlocks.js:160 +#: js/blocks/EnsembleBlocks.js:160 msgid "The Stop turtle block stops the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:184 -#: js/EnsembleBlocks.js:247 -#: js/EnsembleBlocks.js:413 -#: js/EnsembleBlocks.js:468 -#: js/EnsembleBlocks.js:706 -#: js/EnsembleBlocks.js:808 -#: js/EnsembleBlocks.js:870 -#: js/EnsembleBlocks.js:1190 -#: js/EnsembleBlocks.js:1253 +#: js/blocks/EnsembleBlocks.js:184 +#: js/blocks/EnsembleBlocks.js:247 +#: js/blocks/EnsembleBlocks.js:413 +#: js/blocks/EnsembleBlocks.js:468 +#: js/blocks/EnsembleBlocks.js:706 +#: js/blocks/EnsembleBlocks.js:808 +#: js/blocks/EnsembleBlocks.js:870 +#: js/blocks/EnsembleBlocks.js:1190 +#: js/blocks/EnsembleBlocks.js:1253 msgid "Cannot find mouse" msgstr "" -#: js/EnsembleBlocks.js:186 -#: js/EnsembleBlocks.js:249 -#: js/EnsembleBlocks.js:415 -#: js/EnsembleBlocks.js:470 -#: js/EnsembleBlocks.js:708 -#: js/EnsembleBlocks.js:810 -#: js/EnsembleBlocks.js:872 -#: js/EnsembleBlocks.js:1192 -#: js/EnsembleBlocks.js:1255 +#: js/blocks/EnsembleBlocks.js:186 +#: js/blocks/EnsembleBlocks.js:249 +#: js/blocks/EnsembleBlocks.js:415 +#: js/blocks/EnsembleBlocks.js:470 +#: js/blocks/EnsembleBlocks.js:708 +#: js/blocks/EnsembleBlocks.js:810 +#: js/blocks/EnsembleBlocks.js:872 +#: js/blocks/EnsembleBlocks.js:1192 +#: js/blocks/EnsembleBlocks.js:1255 msgid "Cannot find turtle" msgstr "" -#: js/EnsembleBlocks.js:206 +#: js/blocks/EnsembleBlocks.js:206 msgid "start mouse" msgstr "" -#: js/EnsembleBlocks.js:209 +#: js/blocks/EnsembleBlocks.js:209 msgid "The Start mouse block starts the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:220 +#: js/blocks/EnsembleBlocks.js:220 msgid "start turtle" msgstr "" -#: js/EnsembleBlocks.js:223 +#: js/blocks/EnsembleBlocks.js:223 msgid "The Start turtle block starts the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:256 +#: js/blocks/EnsembleBlocks.js:256 msgid "Mouse is already running." msgstr "" -#: js/EnsembleBlocks.js:258 +#: js/blocks/EnsembleBlocks.js:258 msgid "Turtle is already running." msgstr "" -#: js/EnsembleBlocks.js:282 +#: js/blocks/EnsembleBlocks.js:282 msgid "Cannot find start block" msgstr "" -#: js/EnsembleBlocks.js:292 +#: js/blocks/EnsembleBlocks.js:292 #.TRANS: pen color for this mouse msgid "mouse color" msgstr "" -#: js/EnsembleBlocks.js:294 +#: js/blocks/EnsembleBlocks.js:294 msgid "The Mouse color block returns the pen color of the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:306 +#: js/blocks/EnsembleBlocks.js:306 #.TRANS: pen color for this turtle msgid "turtle color" msgstr "" -#: js/EnsembleBlocks.js:308 +#: js/blocks/EnsembleBlocks.js:308 msgid "The Turtle color block returns the pen color of the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:338 +#: js/blocks/EnsembleBlocks.js:338 #.TRANS: heading (compass direction) for this mouse msgid "mouse heading" msgstr "" -#: js/EnsembleBlocks.js:340 +#: js/blocks/EnsembleBlocks.js:340 msgid "The Mouse heading block returns the heading of the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:352 +#: js/blocks/EnsembleBlocks.js:352 #.TRANS: heading (compass direction) for this turtle msgid "turtle heading" msgstr "" -#: js/EnsembleBlocks.js:354 +#: js/blocks/EnsembleBlocks.js:354 msgid "The Turtle heading block returns the heading of the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:384 -#: js/EnsembleBlocks.js:439 +#: js/blocks/EnsembleBlocks.js:384 +#: js/blocks/EnsembleBlocks.js:439 #.TRANS: set xy position for this mouse msgid "set mouse" msgstr "" -#: js/EnsembleBlocks.js:391 -#: js/EnsembleBlocks.js:402 -#: js/BoxesBlocks.js:595 -msgid "name1" -msgstr "" - -#: js/EnsembleBlocks.js:391 -#: js/EnsembleBlocks.js:402 -#: js/ProgramBlocks.js:881 -#: js/GraphicsBlocks.js:235 -#: js/GraphicsBlocks.js:313 -#: js/GraphicsBlocks.js:436 -#: js/GraphicsBlocks.js:487 -#: js/GraphicsBlocks.js:534 -#: js/GraphicsBlocks.js:750 +#: js/blocks/EnsembleBlocks.js:391 +#: js/blocks/EnsembleBlocks.js:402 +#: js/blocks/GraphicsBlocks.js:235 +#: js/blocks/GraphicsBlocks.js:313 +#: js/blocks/GraphicsBlocks.js:436 +#: js/blocks/GraphicsBlocks.js:487 +#: js/blocks/GraphicsBlocks.js:534 +#: js/blocks/GraphicsBlocks.js:750 +#: js/blocks/ProgramBlocks.js:881 msgid "x" msgstr "" -#: js/EnsembleBlocks.js:391 -#: js/EnsembleBlocks.js:402 -#: js/ProgramBlocks.js:881 -#: js/GraphicsBlocks.js:149 -#: js/GraphicsBlocks.js:313 -#: js/GraphicsBlocks.js:436 -#: js/GraphicsBlocks.js:487 -#: js/GraphicsBlocks.js:534 -#: js/GraphicsBlocks.js:750 +#: js/blocks/EnsembleBlocks.js:391 +#: js/blocks/EnsembleBlocks.js:402 +#: js/blocks/GraphicsBlocks.js:149 +#: js/blocks/GraphicsBlocks.js:313 +#: js/blocks/GraphicsBlocks.js:436 +#: js/blocks/GraphicsBlocks.js:487 +#: js/blocks/GraphicsBlocks.js:534 +#: js/blocks/GraphicsBlocks.js:750 +#: js/blocks/ProgramBlocks.js:881 msgid "y" msgstr "" -#: js/EnsembleBlocks.js:395 -#: js/EnsembleBlocks.js:452 +#: js/blocks/EnsembleBlocks.js:395 +#: js/blocks/EnsembleBlocks.js:452 #.TRANS: set xy position for this turtle msgid "set turtle" msgstr "" -#: js/EnsembleBlocks.js:433 +#: js/blocks/EnsembleBlocks.js:433 msgid "The Set mouse block sends a stack of blocks to be run by the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:446 +#: js/blocks/EnsembleBlocks.js:446 msgid "The Set turtle block sends a stack of blocks to be run by the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:480 +#: js/blocks/EnsembleBlocks.js:480 #.TRANS: y position for this mouse msgid "mouse y" msgstr "" -#: js/EnsembleBlocks.js:482 +#: js/blocks/EnsembleBlocks.js:482 msgid "The Y mouse block returns the Y position of the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:494 +#: js/blocks/EnsembleBlocks.js:494 #.TRANS: y position for this turtle msgid "turtle y" msgstr "" -#: js/EnsembleBlocks.js:496 +#: js/blocks/EnsembleBlocks.js:496 msgid "The Y turtle block returns the Y position of the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:526 +#: js/blocks/EnsembleBlocks.js:526 #.TRANS: x position for this mouse msgid "mouse x" msgstr "" -#: js/EnsembleBlocks.js:528 +#: js/blocks/EnsembleBlocks.js:528 msgid "The X mouse block returns the X position of the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:540 +#: js/blocks/EnsembleBlocks.js:540 #.TRANS: x position for this turtle msgid "turtle x" msgstr "" -#: js/EnsembleBlocks.js:542 +#: js/blocks/EnsembleBlocks.js:542 msgid "The X turtle block returns the X position of the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:573 +#: js/blocks/EnsembleBlocks.js:573 #.TRANS: notes played by this mouse msgid "mouse notes played" msgstr "" -#: js/EnsembleBlocks.js:575 +#: js/blocks/EnsembleBlocks.js:575 msgid "The Mouse elapse notes block returns the number of notes played by the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:587 +#: js/blocks/EnsembleBlocks.js:587 #.TRANS: notes played by this turtle msgid "turtle notes played" msgstr "" -#: js/EnsembleBlocks.js:589 +#: js/blocks/EnsembleBlocks.js:589 msgid "The Turtle elapse notes block returns the number of notes played by the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:627 +#: js/blocks/EnsembleBlocks.js:627 #.TRANS: convert current note for this turtle to piano key (1-88) msgid "mouse pitch number" msgstr "" -#: js/EnsembleBlocks.js:629 +#: js/blocks/EnsembleBlocks.js:629 msgid "The Mouse pitch block returns the current pitch number being played by the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:641 +#: js/blocks/EnsembleBlocks.js:641 #.TRANS: convert current note for this turtle to piano key (1-88) msgid "turtle pitch number" msgstr "" -#: js/EnsembleBlocks.js:643 -msgid "The Turrle pitch block returns the current pitch number being played by the specified turtle." +#: js/blocks/EnsembleBlocks.js:643 +msgid "The Turtle pitch block returns the current pitch number being played by the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:747 -#: js/EnsembleBlocks.js:819 +#: js/blocks/EnsembleBlocks.js:747 +#: js/blocks/EnsembleBlocks.js:819 #.TRANS: note value is the duration of the note played by this mouse msgid "mouse note value" msgstr "" -#: js/EnsembleBlocks.js:757 +#: js/blocks/EnsembleBlocks.js:757 #.TRANS: note value is the duration of the note played by this turtle msgid "turtle note value" msgstr "" -#: js/EnsembleBlocks.js:830 +#: js/blocks/EnsembleBlocks.js:830 #.TRANS: sync is short for synchronization msgid "mouse sync" msgstr "" -#: js/EnsembleBlocks.js:832 +#: js/blocks/EnsembleBlocks.js:832 msgid "The Mouse sync block aligns the beat count between mice." msgstr "" -#: js/EnsembleBlocks.js:844 +#: js/blocks/EnsembleBlocks.js:844 #.TRANS: sync is short for synchronization msgid "turtle sync" msgstr "" -#: js/EnsembleBlocks.js:846 +#: js/blocks/EnsembleBlocks.js:846 msgid "The Turtle sync block aligns the beat count between turtles." msgstr "" -#: js/EnsembleBlocks.js:887 +#: js/blocks/EnsembleBlocks.js:887 msgid "The Found mouse block will return true if the specified mouse can be found." msgstr "" -#: js/EnsembleBlocks.js:893 +#: js/blocks/EnsembleBlocks.js:893 msgid "found mouse" msgstr "" -#: js/EnsembleBlocks.js:903 +#: js/blocks/EnsembleBlocks.js:903 msgid "The Found turtle block will return true if the specified turtle can be found." msgstr "" -#: js/EnsembleBlocks.js:909 +#: js/blocks/EnsembleBlocks.js:909 msgid "found turtle" msgstr "" -#: js/EnsembleBlocks.js:932 +#: js/blocks/EnsembleBlocks.js:932 msgid "new mouse" msgstr "" -#: js/EnsembleBlocks.js:934 +#: js/blocks/EnsembleBlocks.js:934 msgid "The New mouse block will create a new mouse." msgstr "" -#: js/EnsembleBlocks.js:945 +#: js/blocks/EnsembleBlocks.js:945 msgid "new turtle" msgstr "" -#: js/EnsembleBlocks.js:947 +#: js/blocks/EnsembleBlocks.js:947 msgid "The New turtle block will create a new turtle." msgstr "" -#: js/EnsembleBlocks.js:1011 +#: js/blocks/EnsembleBlocks.js:1011 msgid "set mouse color" msgstr "" -#: js/EnsembleBlocks.js:1014 +#: js/blocks/EnsembleBlocks.js:1014 msgid "The Set-mouse-color block is used to set the color of a mouse." msgstr "" -#: js/EnsembleBlocks.js:1020 +#: js/blocks/EnsembleBlocks.js:1020 msgid "set turtle color" msgstr "" -#: js/EnsembleBlocks.js:1023 +#: js/blocks/EnsembleBlocks.js:1023 msgid "The Set-turtle-color block is used to set the color of a turtle." msgstr "" -#: js/EnsembleBlocks.js:1083 +#: js/blocks/EnsembleBlocks.js:1083 msgid "The Mouse-name block returns the name of a mouse." msgstr "" -#: js/EnsembleBlocks.js:1092 +#: js/blocks/EnsembleBlocks.js:1092 msgid "The Turtle-name block returns the name of a turtle." msgstr "" -#: js/EnsembleBlocks.js:1115 +#: js/blocks/EnsembleBlocks.js:1115 msgid "mouse count" msgstr "" -#: js/EnsembleBlocks.js:1118 +#: js/blocks/EnsembleBlocks.js:1118 msgid "The Mouse-count block returns the number of mice." msgstr "" -#: js/EnsembleBlocks.js:1124 +#: js/blocks/EnsembleBlocks.js:1124 msgid "turtle count" msgstr "" -#: js/EnsembleBlocks.js:1127 +#: js/blocks/EnsembleBlocks.js:1127 msgid "The Turtle-count block returns the number of turtles." msgstr "" -#: js/EnsembleBlocks.js:1149 +#: js/blocks/EnsembleBlocks.js:1149 msgid "nth mouse name" msgstr "" -#: js/EnsembleBlocks.js:1152 +#: js/blocks/EnsembleBlocks.js:1152 msgid "The Nth-Mouse name block returns the name of the nth mouse." msgstr "" -#: js/EnsembleBlocks.js:1158 +#: js/blocks/EnsembleBlocks.js:1158 msgid "nth turtle name" msgstr "" -#: js/EnsembleBlocks.js:1161 +#: js/blocks/EnsembleBlocks.js:1161 msgid "The Nth-Turtle name block returns the name of the nth turtle." msgstr "" -#: js/EnsembleBlocks.js:1205 -#: js/EnsembleBlocks.js:1265 +#: js/blocks/EnsembleBlocks.js:1205 +#: js/blocks/EnsembleBlocks.js:1265 msgid "set name" msgstr "" -#: js/EnsembleBlocks.js:1214 -#: js/EnsembleBlocks.js:1221 +#: js/blocks/EnsembleBlocks.js:1214 +#: js/blocks/EnsembleBlocks.js:1221 msgid "source" msgstr "" -#: js/EnsembleBlocks.js:1214 -#: js/EnsembleBlocks.js:1221 +#: js/blocks/EnsembleBlocks.js:1214 +#: js/blocks/EnsembleBlocks.js:1221 msgid "target" msgstr "" -#: js/EnsembleBlocks.js:1271 +#: js/blocks/EnsembleBlocks.js:1271 msgid "The Set-name block is used to name a mouse." msgstr "" -#: js/EnsembleBlocks.js:1284 +#: js/blocks/EnsembleBlocks.js:1284 msgid "The Set-name block is used to name a turtle." msgstr "" -#: js/BooleanBlocks.js:44 -msgid "The Not block is the logical not operator." -msgstr "" - -#: js/BooleanBlocks.js:62 -msgid "not" -msgstr "" - -#: js/BooleanBlocks.js:134 -msgid "The And block is the logical and operator." -msgstr "" - -#: js/BooleanBlocks.js:152 -msgid "and" -msgstr "" - -#: js/BooleanBlocks.js:218 -msgid "The Or block is the logical or operator." -msgstr "" - -#: js/BooleanBlocks.js:236 -msgid "or" -msgstr "" - -#: js/BooleanBlocks.js:302 -msgid "The XOR block is the logical XOR operator." -msgstr "" - -#: js/BooleanBlocks.js:320 -msgid "xor" -msgstr "" - -#: js/BooleanBlocks.js:808 -msgid "The Equal block returns True if the two numbers are equal." -msgstr "" - -#: js/BooleanBlocks.js:909 -msgid "The Not-equal-to block returns True if the two numbers are not equal to each other." -msgstr "" - -#: js/BooleanBlocks.js:1008 -msgid "The Boolean block is used to specify true or false." -msgstr "" - -#: js/MediaBlocks.js:35 -#.TRANS: right side of the screen -msgid "right (screen)" -msgstr "" - -#: js/MediaBlocks.js:45 -#: js/MediaBlocks.js:56 -msgid "The Right block returns the position of the right of the canvas." -msgstr "" - -#: js/MediaBlocks.js:97 -#.TRANS: left side of the screen -msgid "left (screen)" -msgstr "" - -#: js/MediaBlocks.js:107 -#: js/MediaBlocks.js:118 -msgid "The Left block returns the position of the left of the canvas." -msgstr "" - -#: js/MediaBlocks.js:158 -msgid "top (screen)" -msgstr "" - -#: js/MediaBlocks.js:168 -#: js/MediaBlocks.js:179 -msgid "The Top block returns the position of the top of the canvas." -msgstr "" - -#: js/MediaBlocks.js:219 -msgid "bottom (screen)" +#: js/blocks/ExtrasBlocks.js:33 +msgid "fraction" msgstr "" -#: js/MediaBlocks.js:229 -#: js/MediaBlocks.js:240 -msgid "The Bottom block returns the position of the bottom of the canvas." +#: js/blocks/ExtrasBlocks.js:36 +msgid "Convert a float to a fraction" msgstr "" -#: js/MediaBlocks.js:282 -msgid "width" +#: js/blocks/ExtrasBlocks.js:93 +msgid "save as ABC" msgstr "" -#: js/MediaBlocks.js:291 -msgid "The Width block returns the width of the canvas." +#: js/blocks/ExtrasBlocks.js:96 +#: js/blocks/ExtrasBlocks.js:132 +#: js/blocks/ExtrasBlocks.js:168 +msgid "title" msgstr "" -#: js/MediaBlocks.js:325 -msgid "height" +#: js/blocks/ExtrasBlocks.js:129 +msgid "save as Lilypond" msgstr "" -#: js/MediaBlocks.js:334 -msgid "The Height block returns the height of the canvas." +#: js/blocks/ExtrasBlocks.js:165 +msgid "save as SVG" msgstr "" -#: js/MediaBlocks.js:369 -#.TRANS: stops playback of an audio recording -msgid "stop play" +#: js/blocks/ExtrasBlocks.js:216 +msgid "no background" msgstr "" -#: js/MediaBlocks.js:404 -#.TRANS: Erases the images and text -msgid "erase media" +#: js/blocks/ExtrasBlocks.js:219 +msgid "The No background block eliminates the background from the saved SVG output." msgstr "" -#: js/MediaBlocks.js:409 -msgid "The Erase Media block erases text and images." +#: js/blocks/ExtrasBlocks.js:247 +msgid "show blocks" msgstr "" -#: js/MediaBlocks.js:439 -#.TRANS: play an audio recording -msgid "play back" +#: js/blocks/ExtrasBlocks.js:249 +msgid "The Show blocks block shows the blocks." msgstr "" -#: js/MediaBlocks.js:487 -msgid "speak" +#: js/blocks/ExtrasBlocks.js:274 +msgid "hide blocks" msgstr "" -#: js/MediaBlocks.js:495 -msgid "The Speak block outputs to the text-to-speech synthesizer" +#: js/blocks/ExtrasBlocks.js:276 +msgid "The Hide blocks block hides the blocks." msgstr "" -#: js/MediaBlocks.js:546 -msgid "camera" +#: js/blocks/ExtrasBlocks.js:305 +#: js/blocks/ExtrasBlocks.js:338 +msgid "The Space block is used to add space between blocks." msgstr "" -#: js/MediaBlocks.js:551 -msgid "The Camera block connects a webcam to the Show block." +#: js/blocks/ExtrasBlocks.js:376 +msgid "wait" msgstr "" -#: js/MediaBlocks.js:574 -msgid "video" +#: js/blocks/ExtrasBlocks.js:379 +msgid "The Wait block pauses the program for a specified number of seconds." msgstr "" -#: js/MediaBlocks.js:579 -msgid "The Video block selects video for use with the Show block." +#: js/blocks/ExtrasBlocks.js:433 +#: plugins/facebook.rtp:30 +msgid "comment" msgstr "" -#: js/MediaBlocks.js:607 -msgid "The Open file block opens a file for use with the Show block." +#: js/blocks/ExtrasBlocks.js:469 +msgid "print" msgstr "" -#: js/MediaBlocks.js:645 -msgid "stop media" +#: js/blocks/ExtrasBlocks.js:476 +msgid "The Print block displays text at the top of the screen." msgstr "" -#: js/MediaBlocks.js:650 -msgid "The Stop media block stops audio or video playback." +#: js/blocks/ExtrasBlocks.js:582 +msgid "display grid" msgstr "" -#: js/MediaBlocks.js:679 -#: js/PitchBlocks.js:1539 -#: js/phrasemaker.js:822 -#: js/musickeyboard.js:1654 -#.TRANS: a measure of frequency: one cycle per second -msgid "hertz" +#: js/blocks/ExtrasBlocks.js:587 +msgid "The Display Grid Block changes the grid type" msgstr "" -#: js/MediaBlocks.js:692 -msgid "duration (ms)" +#: js/blocks/ExtrasBlocks.js:689 +#: js/blocks/ExtrasBlocks.js:708 +#: js/blocks/ExtrasBlocks.js:731 +#: js/blocks/ExtrasBlocks.js:754 +#: js/blocks/ExtrasBlocks.js:772 +#: js/blocks/ExtrasBlocks.js:791 +#: js/blocks/ExtrasBlocks.js:810 +#: js/blocks/ExtrasBlocks.js:829 +msgid "unknown" msgstr "" -#: js/MediaBlocks.js:728 -#.TRANS: translate a note into hertz, e.g., A4 -> 440HZ -msgid "note to frequency" +#: js/blocks/FlowBlocks.js:41 +msgid "The Backward block runs code in reverse order (Musical retrograde)." msgstr "" -#: js/MediaBlocks.js:736 -msgid "The To frequency block converts a pitch name and octave to Hertz." +#: js/blocks/FlowBlocks.js:48 +msgid "backward" msgstr "" -#: js/MediaBlocks.js:746 -#: js/PitchBlocks.js:656 -#: js/PitchBlocks.js:932 -#: js/PitchBlocks.js:1827 -#.TRANS: name2 is name as in name of pitch (JAPANESE ONLY) -msgid "name2" +#: js/blocks/FlowBlocks.js:124 +msgid "The Duplicate block will run each block multiple times." msgstr "" -#: js/MediaBlocks.js:812 -msgid "The Avatar block is used to change the appearance of the mouse." +#: js/blocks/FlowBlocks.js:136 +msgid "duplicate" msgstr "" -#: js/MediaBlocks.js:819 -msgid "The Avatar block is used to change the appearance of the turtle." +#: js/blocks/FlowBlocks.js:334 +msgid "The Default block is used inside of a Switch to define the default action." msgstr "" -#: js/MediaBlocks.js:831 -#: js/MediaBlocks.js:891 -#.TRANS: a media object -msgid "size" +#: js/blocks/FlowBlocks.js:342 +msgid "default" msgstr "" -#: js/MediaBlocks.js:831 -msgid "image" +#: js/blocks/FlowBlocks.js:361 +#: js/blocks/FlowBlocks.js:418 +msgid "The Case Block must be used inside of a Switch Block." msgstr "" -#: js/MediaBlocks.js:880 -msgid "The Show block is used to display text or images on the canvas." +#: js/blocks/FlowBlocks.js:389 +msgid "The Case block is used inside of a Switch to define matches." msgstr "" -#: js/MediaBlocks.js:888 -#.TRANS: show1 is show as in display an image or text on the screen. -msgid "show1" +#: js/blocks/FlowBlocks.js:397 +msgid "case" msgstr "" -#: js/MediaBlocks.js:891 -msgid "obj" +#: js/blocks/FlowBlocks.js:446 +msgid "The Switch block will run the code in the matching Case." msgstr "" -#: js/MediaBlocks.js:938 -msgid "The Media block is used to import an image." +#: js/blocks/FlowBlocks.js:454 +msgid "switch" msgstr "" -#: js/MediaBlocks.js:973 -msgid "The Text block holds a text string." +#: js/blocks/FlowBlocks.js:595 +msgid "The Stop block will stop a loop" msgstr "" -#: js/ProgramBlocks.js:33 -msgid "The Load-heap-from-app block loads the heap from a web page." +#: js/blocks/FlowBlocks.js:597 +msgid "Forever, Repeat, While, or Until." msgstr "" -#: js/ProgramBlocks.js:44 -#.TRANS: load the heap contents from a URL -msgid "load heap from App" +#: js/blocks/FlowBlocks.js:604 +#: js/widgets/timbre.js:417 +#: js/widgets/timbre.js:419 +#: js/widgets/musickeyboard.js:819 +#: js/widgets/musickeyboard.js:821 +#: js/widgets/phrasemaker.js:4202 +#: plugins/rodi.rtp:29 +#: plugins/rodi.rtp:73 +#: plugins/rodi.rtp:413 +msgid "stop" msgstr "" -#: js/ProgramBlocks.js:95 -msgid "Error parsing JSON data:" +#: js/blocks/FlowBlocks.js:653 +msgid "The Waitfor block will wait until the condition is true." msgstr "" -#: js/ProgramBlocks.js:100 -msgid "404: Page not found" +#: js/blocks/FlowBlocks.js:661 +msgid "wait for" msgstr "" -#: js/ProgramBlocks.js:133 -msgid "The Save-heap-to-app block saves the heap to a web page." +#: js/blocks/FlowBlocks.js:732 +msgid "The Until block will repeat until the condition is true." msgstr "" -#: js/ProgramBlocks.js:144 -#.TRANS: save the heap contents to a URL -msgid "save heap to App" +#: js/blocks/FlowBlocks.js:740 +msgid "until" msgstr "" -#: js/ProgramBlocks.js:189 -msgid "Cannot find a valid heap for" +#: js/blocks/FlowBlocks.js:742 +#: js/blocks/FlowBlocks.js:822 +msgid "do2" msgstr "" -#: js/ProgramBlocks.js:206 -msgid "The Load-heap block loads the heap from a file." +#: js/blocks/FlowBlocks.js:812 +msgid "The While block will repeat while the condition is true." msgstr "" -#: js/ProgramBlocks.js:217 -#.TRANS: load the heap from a file -msgid "load heap" +#: js/blocks/FlowBlocks.js:820 +msgid "while" msgstr "" -#: js/ProgramBlocks.js:270 -msgid "The file you selected does not contain a valid heap." +#: js/blocks/FlowBlocks.js:903 +#: js/blocks/FlowBlocks.js:968 +#: js/blocks/FlowBlocks.js:979 +msgid "In this example if the mouse button is pressed a snare drum will play." msgstr "" -#: js/ProgramBlocks.js:275 -msgid "The loadHeap block needs a loadFile block." +#: js/blocks/FlowBlocks.js:925 +#: js/blocks/FlowBlocks.js:988 +msgid "if" msgstr "" -#: js/ProgramBlocks.js:291 -msgid "The Set-heap block loads the heap." +#: js/blocks/FlowBlocks.js:927 +#: js/blocks/FlowBlocks.js:990 +msgid "then" msgstr "" -#: js/ProgramBlocks.js:299 -#: js/HeapBlocks.js:539 -#.TRANS: load the heap from a JSON encoding -msgid "set heap" +#: js/blocks/FlowBlocks.js:927 +msgid "else" msgstr "" -#: js/ProgramBlocks.js:340 -msgid "The block you selected does not contain a valid heap." +#: js/blocks/FlowBlocks.js:1025 +msgid "The Forever block will repeat the contained blocks forever." msgstr "" -#: js/ProgramBlocks.js:343 -msgid "The Set heap block needs a heap." +#: js/blocks/FlowBlocks.js:1037 +msgid "forever" msgstr "" -#: js/ProgramBlocks.js:360 -msgid "The Load-dictionary block loads a dictionary from a file." +#: js/blocks/FlowBlocks.js:1073 +msgid "The Repeat block will repeat the contained blocks." msgstr "" -#: js/ProgramBlocks.js:372 -#.TRANS: load a dictionary from a file -msgid "load dictionary" +#: js/blocks/FlowBlocks.js:1075 +msgid "In this example the note will be played 4 times." msgstr "" -#: js/ProgramBlocks.js:390 -#: js/ProgramBlocks.js:658 -#: js/ToneBlocks.js:1025 -msgid "file" +#: js/blocks/FlowBlocks.js:1083 +msgid "repeat" msgstr "" -#: js/ProgramBlocks.js:396 -#: js/ProgramBlocks.js:501 -#: js/ProgramBlocks.js:664 -#: js/DictBlocks.js:80 -#: js/DictBlocks.js:145 -#: js/DictBlocks.js:216 -#: js/DictBlocks.js:290 -msgid "My Dictionary" +#: js/blocks/FlowBlocks.js:1123 +msgid "duplicate factor" msgstr "" -#: js/ProgramBlocks.js:444 -msgid "The file you selected does not contain a valid dictionary." +#: js/blocks/HeapBlocks.js:49 +msgid "The Heap block returns the heap." msgstr "" -#: js/ProgramBlocks.js:449 -msgid "The load dictionary block needs a load file block." +#: js/blocks/HeapBlocks.js:133 +msgid "show heap" msgstr "" -#: js/ProgramBlocks.js:466 -msgid "The Set-dictionary block loads a dictionary." +#: js/blocks/HeapBlocks.js:181 +msgid "The Heap-length block returns the length of the heap." msgstr "" -#: js/ProgramBlocks.js:477 -#.TRANS: load a dictionary from a JSON -msgid "set dictionary" +#: js/blocks/HeapBlocks.js:195 +msgid "heap length" msgstr "" -#: js/ProgramBlocks.js:546 -msgid "The block you selected does not contain a valid dictionary." +#: js/blocks/HeapBlocks.js:254 +msgid "The Heap-empty? block returns true if the heap is empty." msgstr "" -#: js/ProgramBlocks.js:550 -msgid "The set dictionary block needs a dictionary." +#: js/blocks/HeapBlocks.js:268 +#.TRANS: Is the heap empty? +msgid "heap empty?" msgstr "" -#: js/ProgramBlocks.js:567 -msgid "The Save-heap block saves the heap to a file." +#: js/blocks/HeapBlocks.js:317 +msgid "The Empty-heap block empties the heap." msgstr "" -#: js/ProgramBlocks.js:578 -#.TRANS: save the heap to a file -msgid "save heap" +#: js/blocks/HeapBlocks.js:327 +#: js/blocks/HeapBlocks.js:647 +#.TRANS: empty the heap +msgid "empty heap" msgstr "" -#: js/ProgramBlocks.js:629 -msgid "The Save-dictionary block saves a dictionary to a file." +#: js/blocks/HeapBlocks.js:371 +msgid "The Reverse-heap block reverses the order of the heap." msgstr "" -#: js/ProgramBlocks.js:640 -#.TRANS: save a dictionary to a file -msgid "save dictionary" +#: js/blocks/HeapBlocks.js:384 +#.TRANS: reverse the order of the heap +msgid "reverse heap" msgstr "" -#: js/ProgramBlocks.js:720 -msgid "The Open palette block opens a palette." +#: js/blocks/HeapBlocks.js:428 +msgid "The Index-heap block returns a value in the heap at a specified location." msgstr "" -#: js/ProgramBlocks.js:727 -msgid "open palette" +#: js/blocks/HeapBlocks.js:443 +#.TRANS: retrieve a value from the heap at index position in the heap +msgid "index heap" msgstr "" -#: js/ProgramBlocks.js:785 -msgid "The Delete block block removes a block." +#: js/blocks/HeapBlocks.js:523 +msgid "The Set-heap entry block sets a value in he heap at the specified location." msgstr "" -#: js/ProgramBlocks.js:797 -#.TRANS: Move this block to the trash. -msgid "delete block" +#: js/blocks/HeapBlocks.js:539 +#: js/blocks/ProgramBlocks.js:299 +#.TRANS: load the heap from a JSON encoding +msgid "set heap" msgstr "" -#: js/ProgramBlocks.js:861 -msgid "The Move block block moves a block." +#: js/blocks/HeapBlocks.js:619 +msgid "The Pop block removes the value at the top of the heap." msgstr "" -#: js/ProgramBlocks.js:869 -#.TRANS: Move the position of a block on the screen. -msgid "move block" +#: js/blocks/HeapBlocks.js:633 +#.TRANS: pop a value off the top of the heap +msgid "pop" msgstr "" -#: js/ProgramBlocks.js:881 -#: js/ProgramBlocks.js:1048 -msgid "block number" +#: js/blocks/HeapBlocks.js:680 +msgid "The Push block adds a value to the top of the heap." msgstr "" -#: js/ProgramBlocks.js:935 -#.TRANS: Run program beginning at this block. -msgid "run block" +#: js/blocks/HeapBlocks.js:696 +#.TRANS: push a value onto the top of the heap +msgid "push" msgstr "" -#: js/ProgramBlocks.js:1025 -msgid "The Dock block block connections two blocks." +#: js/blocks/IntervalsBlocks.js:45 +msgid "set temperament" msgstr "" -#: js/ProgramBlocks.js:1036 -#.TRANS: We can connect a block to another block. -msgid "connect blocks" +#: js/blocks/IntervalsBlocks.js:63 +#: js/blocks/MediaBlocks.js:746 +#: js/blocks/PitchBlocks.js:657 +#: js/blocks/PitchBlocks.js:935 +#: js/blocks/PitchBlocks.js:974 +#: js/blocks/PitchBlocks.js:1007 +#: js/blocks/PitchBlocks.js:1194 +#: js/blocks/PitchBlocks.js:1717 +#: js/blocks/PitchBlocks.js:1758 +#: js/blocks/PitchBlocks.js:1866 +#: js/blocks/ToneBlocks.js:1025 +#: js/turtleactions/IntervalsActions.js:114 +#.TRANS: adjusts the shift up or down by one octave (twelve half-steps in the interval between two notes, one having twice or half the frequency in Hz of the other.) +msgid "octave" msgstr "" -#: js/ProgramBlocks.js:1048 -msgid "target block" +#: js/blocks/IntervalsBlocks.js:99 +msgid "The Temperament name block is used to select a tuning method." msgstr "" -#: js/ProgramBlocks.js:1048 -msgid "connection number" +#: js/blocks/IntervalsBlocks.js:161 +msgid "doubly" msgstr "" -#: js/ProgramBlocks.js:1140 -msgid "The Make block block creates a new block." +#: js/blocks/IntervalsBlocks.js:166 +msgid "The Doubly block will double the size of an interval." msgstr "" -#: js/ProgramBlocks.js:1152 -#.TRANS: Create a new block -msgid "make block" +#: js/blocks/IntervalsBlocks.js:262 +msgid "interval number" msgstr "" -#: js/ProgramBlocks.js:1186 -#: js/ProgramBlocks.js:1227 -#: js/RhythmBlocks.js:1128 -#: js/PitchBlocks.js:972 -#: js/PitchBlocks.js:1005 -#: js/temperament.js:340 -#: js/temperament.js:362 -#: js/temperament.js:372 -#: js/temperament.js:484 -#: js/status.js:190 -#: plugins/rodi.rtp:192 -#.TRANS: a musical note consisting of pitch and duration -msgid "note" +#: js/blocks/IntervalsBlocks.js:317 +msgid "current interval" msgstr "" -#: js/ProgramBlocks.js:1285 -msgid "Cannot find block" +#: js/blocks/IntervalsBlocks.js:387 +#.TRANS: measure the distance between two pitches in semi-tones +msgid "semi-tone interval measure" msgstr "" -#: js/ProgramBlocks.js:1304 -#: js/ProgramBlocks.js:1313 -msgid "Warning: block argument type mismatch" +#: js/blocks/IntervalsBlocks.js:454 +#: js/blocks/IntervalsBlocks.js:570 +msgid "You must use two pitch blocks when measuring an interval." msgstr "" -#: js/ProgramBlocks.js:1347 -msgid "The Open project block is used to open a project from a web page." +#: js/blocks/IntervalsBlocks.js:496 +msgid "The Scalar interval block measures the distance between two notes in the current key and mode." msgstr "" -#: js/ProgramBlocks.js:1357 -msgid "open project" +#: js/blocks/IntervalsBlocks.js:502 +#.TRANS: measure the distance between two pitches in steps of musical scale +msgid "scalar interval measure" msgstr "" -#: js/ProgramBlocks.js:1410 -msgid "Please enter a valid URL." +#: js/blocks/IntervalsBlocks.js:678 +msgid "In the figure, we add sol# to sol." msgstr "" -#: js/DrumBlocks.js:59 -msgid "The Noise name block is used to select a noise synthesizer." +#: js/blocks/IntervalsBlocks.js:684 +#: js/blocks/OrnamentBlocks.js:220 +#.TRANS: calculate a relative step between notes based on semi-tones +msgid "semi-tone interval" msgstr "" -#: js/DrumBlocks.js:102 -msgid "The Drum name block is used to select a drum." +#: js/blocks/IntervalsBlocks.js:733 +msgid "The output of the example is: do, mi, sol, sol, ti, mi" msgstr "" -#: js/DrumBlocks.js:146 -msgid "The Effects name block is used to select a sound effect." +#: js/blocks/IntervalsBlocks.js:740 +#: js/blocks/WidgetBlocks.js:768 +msgid "arpeggio" msgstr "" -#: js/DrumBlocks.js:163 -msgid "noise" +#: js/blocks/IntervalsBlocks.js:931 +msgid "The Chord block calculates common chords." msgstr "" -#: js/DrumBlocks.js:177 -msgid "The Play noise block will generate white, pink, or brown noise." +#: js/blocks/IntervalsBlocks.js:933 +msgid "In the figure, we generate a C-major chord." msgstr "" -#: js/DrumBlocks.js:191 -#: js/musicutils.js:752 -#: js/synthutils.js:47 -#.TRANS: white noise synthesizer -msgid "white noise" +#: js/blocks/IntervalsBlocks.js:938 +msgid "chord" msgstr "" -#: js/DrumBlocks.js:326 -msgid "Replace every instance of a pitch with a drum sound." +#: js/blocks/IntervalsBlocks.js:990 +msgid "The Ratio Interval block calculates an interval based on a ratio." msgstr "" -#: js/DrumBlocks.js:337 -#.TRANS: map a pitch to a drum sound -msgid "map pitch to drum" +#: js/blocks/IntervalsBlocks.js:995 +msgid "ratio interval" msgstr "" -#: js/DrumBlocks.js:404 -msgid "In the example above, a kick drum sound will be played instead of sol." +#: js/blocks/IntervalsBlocks.js:1064 +msgid "In the figure, we add la to sol." msgstr "" -#: js/DrumBlocks.js:416 -#.TRANS: set the current drum sound for playback -msgid "set drum" +#: js/blocks/IntervalsBlocks.js:1120 +#.TRANS: define a custom mode +msgid "define mode" msgstr "" -#: js/DrumBlocks.js:460 -msgid "sound effect" +#: js/blocks/IntervalsBlocks.js:1173 +msgid "movable Do" msgstr "" -#: js/DrumBlocks.js:498 -msgid "You can use multiple Drum blocks within a Note block." +#: js/blocks/IntervalsBlocks.js:1224 +#.TRANS: mode length is the number of notes in the mode, e.g., 7 for major and minor scales; 12 for chromatic scales +msgid "mode length" msgstr "" -#: js/RhythmBlocks.js:182 -#: js/RhythmBlocks.js:1086 -#: js/RhythmBlocks.js:1162 -msgid "Note value must be greater than 0." +#: js/blocks/IntervalsBlocks.js:1233 +msgid "The Mode length block is the number of notes in the current scale." msgstr "" -#: js/RhythmBlocks.js:215 -#: js/RhythmBlocks.js:278 -#: js/RhythmBlocks.js:350 -#.TRANS: swing is a rhythmic variation that emphasises the offbeat -msgid "swing" +#: js/blocks/IntervalsBlocks.js:1235 +msgid "Most Western scales have 7 notes." msgstr "" -#: js/RhythmBlocks.js:355 -#.TRANS: the amount to shift to the offbeat note -msgid "swing value" +#: js/blocks/IntervalsBlocks.js:1284 +#.TRANS: the mode in music is 'major', 'minor', etc. +msgid "current mode" msgstr "" -#: js/RhythmBlocks.js:419 -msgid "The Skip notes block will cause notes to be skipped." +#: js/blocks/IntervalsBlocks.js:1337 +#.TRANS: the key is a group of pitches with which a music composition is created +msgid "current key" msgstr "" -#: js/RhythmBlocks.js:427 -#.TRANS: substitute rests on notes being skipped -msgid "skip notes" +#: js/blocks/IntervalsBlocks.js:1389 +#: js/blocks/IntervalsBlocks.js:1434 +#.TRANS: set the key and mode, e.g. C Major +msgid "set key" msgstr "" -#: js/RhythmBlocks.js:489 -#.TRANS: speed up note duration by some factor, e.g. convert 1/4 to 1/8 notes by using a factor of 2 -msgid "multiply note value" +#: js/blocks/IntervalsBlocks.js:1443 +#: js/blocks/IntervalsBlocks.js:1449 +msgid "The Set key block is used to set the key and mode," msgstr "" -#: js/RhythmBlocks.js:542 -msgid "The Tie block works on pairs of notes, combining them into one note." +#: js/blocks/IntervalsBlocks.js:1449 +msgid "eg C Major" msgstr "" -#: js/RhythmBlocks.js:550 -#.TRANS: tie notes together into one longer note -msgid "tie" +#: js/blocks/MediaBlocks.js:35 +#.TRANS: right side of the screen +msgid "right (screen)" msgstr "" -#: js/RhythmBlocks.js:591 -#: js/RhythmBlocks.js:671 -#.TRANS: a dotted note is played for 1.5x its value, e.g., 1/8. --> 3/16 -msgid "dot" +#: js/blocks/MediaBlocks.js:45 +#: js/blocks/MediaBlocks.js:56 +msgid "The Right block returns the position of the right of the canvas." msgstr "" -#: js/RhythmBlocks.js:619 -#: js/RhythmActions.js:221 -msgid "An argument of -1 results in a note value of 0." +#: js/blocks/MediaBlocks.js:97 +#.TRANS: left side of the screen +msgid "left (screen)" msgstr "" -#: js/RhythmBlocks.js:661 -msgid "The Dot block extends the duration of a note by 50%." +#: js/blocks/MediaBlocks.js:107 +#: js/blocks/MediaBlocks.js:118 +msgid "The Left block returns the position of the left of the canvas." msgstr "" -#: js/RhythmBlocks.js:663 -msgid "Eg a dotted quarter note will play for 3/8 (1/4 + 1/8) of a beat." +#: js/blocks/MediaBlocks.js:158 +msgid "top (screen)" msgstr "" -#: js/RhythmBlocks.js:765 -#.TRANS: Japanese only: note value block for drum -msgid "note value drum" +#: js/blocks/MediaBlocks.js:168 +#: js/blocks/MediaBlocks.js:179 +msgid "The Top block returns the position of the top of the canvas." msgstr "" -#: js/RhythmBlocks.js:829 -msgid "392 hertz" +#: js/blocks/MediaBlocks.js:219 +msgid "bottom (screen)" msgstr "" -#: js/RhythmBlocks.js:1119 -msgid "The Note block is a container for one or more Pitch blocks." +#: js/blocks/MediaBlocks.js:229 +#: js/blocks/MediaBlocks.js:240 +msgid "The Bottom block returns the position of the bottom of the canvas." msgstr "" -#: js/RhythmBlocks.js:1121 -msgid "The Note block specifies the duration (note value) of its contents." +#: js/blocks/MediaBlocks.js:282 +msgid "width" msgstr "" -#: js/RhythmBlocks.js:1130 -msgid "value2" +#: js/blocks/MediaBlocks.js:291 +msgid "The Width block returns the width of the canvas." msgstr "" -#: js/RhythmBlocks.js:1200 -msgid "define frequency" +#: js/blocks/MediaBlocks.js:325 +msgid "height" msgstr "" -#: js/RhythmBlocks.js:1218 -#: js/temperament.js:650 -#: js/temperament.js:1421 -msgid "octave space" +#: js/blocks/MediaBlocks.js:334 +msgid "The Height block returns the height of the canvas." msgstr "" -#: js/NumberBlocks.js:28 -msgid "The Int block returns an integer." +#: js/blocks/MediaBlocks.js:369 +#.TRANS: stops playback of an audio recording +msgid "stop play" msgstr "" -#: js/NumberBlocks.js:34 -msgid "int" +#: js/blocks/MediaBlocks.js:404 +#.TRANS: Erases the images and text +msgid "erase media" msgstr "" -#: js/NumberBlocks.js:73 -msgid "The Mod block returns the remainder from a division." +#: js/blocks/MediaBlocks.js:409 +msgid "The Erase Media block erases text and images." msgstr "" -#: js/NumberBlocks.js:79 -msgid "mod" +#: js/blocks/MediaBlocks.js:439 +#.TRANS: play an audio recording +msgid "play back" msgstr "" -#: js/NumberBlocks.js:123 -msgid "The Power block calculates a power function." +#: js/blocks/MediaBlocks.js:487 +msgid "speak" msgstr "" -#: js/NumberBlocks.js:178 -msgid "The Sqrt block returns the square root." +#: js/blocks/MediaBlocks.js:495 +msgid "The Speak block outputs to the text-to-speech synthesizer" msgstr "" -#: js/NumberBlocks.js:184 -msgid "sqrt" +#: js/blocks/MediaBlocks.js:546 +msgid "camera" msgstr "" -#: js/NumberBlocks.js:230 -msgid "The Abs block returns the absolute value." +#: js/blocks/MediaBlocks.js:551 +msgid "The Camera block connects a webcam to the Show block." msgstr "" -#: js/NumberBlocks.js:236 -msgid "abs" +#: js/blocks/MediaBlocks.js:574 +msgid "video" msgstr "" -#: js/NumberBlocks.js:277 -msgid "The Distance block returns the distance between two points. For example, between the mouse and the center of the screen." +#: js/blocks/MediaBlocks.js:579 +msgid "The Video block selects video for use with the Show block." msgstr "" -#: js/NumberBlocks.js:283 -#: plugins/rodi.rtp:310 -msgid "distance" +#: js/blocks/MediaBlocks.js:607 +msgid "The Open file block opens a file for use with the Show block." msgstr "" -#: js/NumberBlocks.js:343 -msgid "The Divide block is used to divide." +#: js/blocks/MediaBlocks.js:645 +msgid "stop media" msgstr "" -#: js/NumberBlocks.js:411 -msgid "The Multiply block is used to multiply." +#: js/blocks/MediaBlocks.js:650 +msgid "The Stop media block stops audio or video playback." msgstr "" -#: js/NumberBlocks.js:554 -msgid "The Minus block is used to subtract." +#: js/blocks/MediaBlocks.js:679 +#: js/blocks/PitchBlocks.js:1577 +#: js/widgets/musickeyboard.js:1936 +#: js/widgets/phrasemaker.js:1037 +#.TRANS: a measure of frequency: one cycle per second +msgid "hertz" msgstr "" -#: js/NumberBlocks.js:647 -msgid "The Plus block is used to add." +#: js/blocks/MediaBlocks.js:692 +#: js/blocks/WidgetBlocks.js:182 +#: js/widgets/temperament.js:506 +#: js/widgets/temperament.js:546 +#: js/widgets/temperament.js:610 +#: js/widgets/temperament.js:618 +#: js/widgets/temperament.js:1505 +#: js/widgets/timbre.js:1842 +msgid "frequency" msgstr "" -#: js/NumberBlocks.js:773 -msgid "The One-of block returns one of two choices." +#: js/blocks/MediaBlocks.js:692 +msgid "duration (ms)" msgstr "" -#: js/NumberBlocks.js:780 -#: js/PitchBlocks.js:616 -msgid "one of" +#: js/blocks/MediaBlocks.js:728 +#.TRANS: translate a note into hertz, e.g., A4 -> 440HZ +msgid "note to frequency" msgstr "" -#: js/NumberBlocks.js:782 -msgid "this" +#: js/blocks/MediaBlocks.js:736 +msgid "The To frequency block converts a pitch name and octave to Hertz." msgstr "" -#: js/NumberBlocks.js:782 -msgid "that" +#: js/blocks/MediaBlocks.js:746 +#: js/blocks/PitchBlocks.js:656 +#: js/blocks/PitchBlocks.js:934 +#: js/blocks/PitchBlocks.js:1866 +#.TRANS: name2 is name as in name of pitch (JAPANESE ONLY) +msgid "name2" msgstr "" -#: js/NumberBlocks.js:837 -msgid "The Random block returns a random number." +#: js/blocks/MediaBlocks.js:812 +msgid "The Avatar block is used to change the appearance of the mouse." msgstr "" -#: js/NumberBlocks.js:844 -msgid "random" +#: js/blocks/MediaBlocks.js:819 +msgid "The Avatar block is used to change the appearance of the turtle." msgstr "" -#: js/NumberBlocks.js:846 -msgid "min" +#: js/blocks/MediaBlocks.js:831 +#: js/blocks/MediaBlocks.js:891 +#.TRANS: a media object +msgid "size" msgstr "" -#: js/NumberBlocks.js:846 -msgid "max" +#: js/blocks/MediaBlocks.js:831 +msgid "image" msgstr "" -#: js/NumberBlocks.js:910 -msgid "The Number block holds a number." +#: js/blocks/MediaBlocks.js:880 +msgid "The Show block is used to display text or images on the canvas." msgstr "" -#: js/BoxesBlocks.js:53 -#: js/BoxesBlocks.js:59 -msgid "The Add-to block is used to add to the value stored in a box." +#: js/blocks/MediaBlocks.js:888 +#.TRANS: show1 is show as in display an image or text on the screen. +msgid "show1" msgstr "" -#: js/BoxesBlocks.js:61 -msgid "It can also be used with other blocks such as Color and Pen size." +#: js/blocks/MediaBlocks.js:891 +msgid "obj" msgstr "" -#: js/BoxesBlocks.js:73 -msgid "add" +#: js/blocks/MediaBlocks.js:938 +msgid "The Media block is used to import an image." msgstr "" -#: js/BoxesBlocks.js:75 -#: js/temperament.js:716 -msgid "to" +#: js/blocks/MediaBlocks.js:973 +msgid "The Text block holds a text string." msgstr "" -#: js/BoxesBlocks.js:75 -#: js/BoxesBlocks.js:595 -#: js/HeapBlocks.js:544 -msgid "value1" +#: js/blocks/MeterBlocks.js:34 +#.TRANS: musical meter (time signature), e.g., 4:4 +msgid "current meter" msgstr "" -#: js/BoxesBlocks.js:118 -msgid "Block does not support incrementing." +#: js/blocks/MeterBlocks.js:85 +#.TRANS: number of beats per minute +msgid "beat factor" msgstr "" -#: js/BoxesBlocks.js:152 -msgid "The Add-1-to block adds one to the value stored in a box." +#: js/blocks/MeterBlocks.js:161 +msgid "The Beats per minute block returns the current beats per minute." msgstr "" -#: js/BoxesBlocks.js:163 -msgid "add 1 to" +#: js/blocks/MeterBlocks.js:169 +#: js/widgets/status.js:152 +#.TRANS: number of beats played per minute +msgid "beats per minute2" msgstr "" -#: js/BoxesBlocks.js:211 -msgid "The Subtract-1-from block subtracts one from the value stored in a box." +#: js/blocks/MeterBlocks.js:169 +#: js/blocks/MeterBlocks.js:1056 +#: js/blocks/MeterBlocks.js:1133 +#: js/blocks/MeterBlocks.js:1211 +#.TRANS: sets tempo by defining a beat and beats per minute +msgid "beats per minute" msgstr "" -#: js/BoxesBlocks.js:222 -msgid "subtract 1 from" +#: js/blocks/MeterBlocks.js:233 +#.TRANS: count of current musical measure in meter +msgid "measure count" msgstr "" -#: js/BoxesBlocks.js:270 -#: js/BoxesBlocks.js:387 -msgid "The Box block returns the value stored in a box." +#: js/blocks/MeterBlocks.js:241 +msgid "The Measure count block returns the current measure." msgstr "" -#: js/BoxesBlocks.js:500 -#: js/BoxesBlocks.js:576 -msgid "The Store in block will store a value in a box." +#: js/blocks/MeterBlocks.js:290 +#.TRANS: count of current beat in the meter +msgid "beat count" msgstr "" -#: js/BoxesBlocks.js:652 -msgid "The Box2 block returns the value stored in Box2." +#: js/blocks/MeterBlocks.js:300 +#: js/blocks/MeterBlocks.js:311 +#: js/blocks/MeterBlocks.js:565 +#: js/blocks/MeterBlocks.js:576 +msgid "The Beat count block is the number of the current beat," msgstr "" -#: js/BoxesBlocks.js:703 -msgid "The Store in Box2 block is used to store a value in Box2." +#: js/blocks/MeterBlocks.js:313 +#: js/blocks/MeterBlocks.js:578 +msgid "eg 1, 2, 3, or 4." msgstr "" -#: js/BoxesBlocks.js:715 -msgid "store in box2" +#: js/blocks/MeterBlocks.js:368 +#.TRANS: count the number of notes +msgid "sum note values" msgstr "" -#: js/BoxesBlocks.js:761 -msgid "The Box1 block returns the value stored in Box1." +#: js/blocks/MeterBlocks.js:376 +#: js/blocks/MeterBlocks.js:440 +msgid "The Note counter block can be used to count the number of contained notes." msgstr "" -#: js/BoxesBlocks.js:812 -msgid "The Store in Box1 block is used to store a value in Box1." +#: js/blocks/MeterBlocks.js:432 +#.TRANS: count the number of notes +msgid "note counter" msgstr "" -#: js/BoxesBlocks.js:826 -msgid "store in box1" +#: js/blocks/MeterBlocks.js:496 +#.TRANS: number of whole notes that have been played +msgid "whole notes played" msgstr "" -#: js/HeapBlocks.js:49 -msgid "The Heap block returns the heap." +#: js/blocks/MeterBlocks.js:505 +msgid "The Whole notes played block returns the total number of whole notes played." msgstr "" -#: js/HeapBlocks.js:133 -msgid "show heap" +#: js/blocks/MeterBlocks.js:555 +#: js/turtleactions/DictActions.js:83 +#.TRANS: number of notes that have been played +msgid "notes played" msgstr "" -#: js/HeapBlocks.js:181 -msgid "The Heap-length block returns the length of the heap." +#: js/blocks/MeterBlocks.js:653 +msgid "The No clock block decouples the notes from the master clock." msgstr "" -#: js/HeapBlocks.js:195 -msgid "heap length" +#: js/blocks/MeterBlocks.js:661 +#.TRANS: don't lock notes to master clock +msgid "no clock" msgstr "" -#: js/HeapBlocks.js:254 -msgid "The Heap-empty? block returns true if the heap is empty." +#: js/blocks/MeterBlocks.js:700 +msgid "on weak beat do" msgstr "" -#: js/HeapBlocks.js:268 -#.TRANS: Is the heap empty? -msgid "heap empty?" +#: js/blocks/MeterBlocks.js:705 +msgid "The On-weak-beat block lets you specify actions to take on weak (off) beats." msgstr "" -#: js/HeapBlocks.js:317 -msgid "The Empty-heap block empties the heap." +#: js/blocks/MeterBlocks.js:750 +msgid "on strong beat" msgstr "" -#: js/HeapBlocks.js:327 -#: js/HeapBlocks.js:647 -#.TRANS: empty the heap -msgid "empty heap" +#: js/blocks/MeterBlocks.js:758 +msgid "The On-strong-beat block lets you specify actions to take on specified beats." msgstr "" -#: js/HeapBlocks.js:371 -msgid "The Reverse-heap block reverses the order of the heap." +#: js/blocks/MeterBlocks.js:769 +msgid "beat" msgstr "" -#: js/HeapBlocks.js:384 -#.TRANS: reverse the order of the heap -msgid "reverse heap" +#: js/blocks/MeterBlocks.js:813 +msgid "on every beat do" msgstr "" -#: js/HeapBlocks.js:428 -msgid "The Index-heap block returns a value in the heap at a specified location." +#: js/blocks/MeterBlocks.js:821 +msgid "The On-every-beat block lets you specify actions to take on every beat." msgstr "" -#: js/HeapBlocks.js:443 -#.TRANS: retrieve a value from the heap at index position in the heap -msgid "index heap" +#: js/blocks/MeterBlocks.js:874 +msgid "on every note do" msgstr "" -#: js/HeapBlocks.js:523 -msgid "The Set-heap entry block sets a value in he heap at the specified location." +#: js/blocks/MeterBlocks.js:882 +msgid "The On-every-note block lets you specify actions to take on every note." msgstr "" -#: js/HeapBlocks.js:619 -msgid "The Pop block removes the value at the top of the heap." +#: js/blocks/MeterBlocks.js:928 +#: js/blocks/MeterBlocks.js:999 +#.TRANS: sets tempo by defining a beat and beats per minute +msgid "master beats per minute" msgstr "" -#: js/HeapBlocks.js:633 -#.TRANS: pop a value off the top of the heap -msgid "pop" +#: js/blocks/MeterBlocks.js:952 +#: js/blocks/MeterBlocks.js:1078 +#: js/blocks/MeterBlocks.js:1135 +msgid "bpm" msgstr "" -#: js/HeapBlocks.js:680 -msgid "The Push block adds a value to the top of the heap." +#: js/blocks/MeterBlocks.js:952 +#: js/blocks/MeterBlocks.js:1078 +#: js/blocks/MeterBlocks.js:1135 +msgid "beat value" msgstr "" -#: js/HeapBlocks.js:696 -#.TRANS: push a value onto the top of the heap -msgid "push" +#: js/blocks/MeterBlocks.js:1024 +#: js/blocks/MeterBlocks.js:1167 +#: js/blocks/MeterBlocks.js:1241 +msgid "Beats per minute must be > 30." msgstr "" -#: js/FlowBlocks.js:41 -msgid "The Backward block runs code in reverse order (Musical retrograde)." +#: js/blocks/MeterBlocks.js:1027 +#: js/blocks/MeterBlocks.js:1170 +#: js/blocks/MeterBlocks.js:1244 +msgid "Maximum beats per minute is 1000." msgstr "" -#: js/FlowBlocks.js:48 -msgid "backward" +#: js/blocks/MeterBlocks.js:1068 +msgid "The Beats per minute block sets the number of 1/4 notes per minute." msgstr "" -#: js/FlowBlocks.js:124 -msgid "The Duplicate block will run each block multiple times." +#: js/blocks/MeterBlocks.js:1279 +#.TRANS: anacrusis +msgid "pickup" msgstr "" -#: js/FlowBlocks.js:136 -msgid "duplicate" +#: js/blocks/MeterBlocks.js:1367 +msgid "number of beats" msgstr "" -#: js/FlowBlocks.js:334 -msgid "The Default block is used inside of a Switch to define the default action." +#: js/blocks/NumberBlocks.js:28 +msgid "The Int block returns an integer." msgstr "" -#: js/FlowBlocks.js:342 -msgid "default" +#: js/blocks/NumberBlocks.js:34 +msgid "int" msgstr "" -#: js/FlowBlocks.js:361 -#: js/FlowBlocks.js:418 -msgid "The Case Block must be used inside of a Switch Block." +#: js/blocks/NumberBlocks.js:73 +msgid "The Mod block returns the remainder from a division." msgstr "" -#: js/FlowBlocks.js:389 -msgid "The Case block is used inside of a Switch to define matches." +#: js/blocks/NumberBlocks.js:79 +msgid "mod" msgstr "" -#: js/FlowBlocks.js:397 -msgid "case" +#: js/blocks/NumberBlocks.js:141 +msgid "The Power block calculates a power function." msgstr "" -#: js/FlowBlocks.js:446 -msgid "The Switch block will run the code in the matching Case." +#: js/blocks/NumberBlocks.js:196 +msgid "The Sqrt block returns the square root." msgstr "" -#: js/FlowBlocks.js:454 -msgid "switch" +#: js/blocks/NumberBlocks.js:202 +msgid "sqrt" msgstr "" -#: js/FlowBlocks.js:595 -msgid "The Stop block will stop a loop" +#: js/blocks/NumberBlocks.js:248 +msgid "The Abs block returns the absolute value." msgstr "" -#: js/FlowBlocks.js:597 -msgid "Forever, Repeat, While, or Until." +#: js/blocks/NumberBlocks.js:254 +msgid "abs" msgstr "" -#: js/FlowBlocks.js:604 -#: js/phrasemaker.js:3799 -#: js/musickeyboard.js:629 -#: js/musickeyboard.js:631 -#: js/timbre.js:417 -#: js/timbre.js:419 -#: plugins/rodi.rtp:29 -#: plugins/rodi.rtp:73 -#: plugins/rodi.rtp:413 -msgid "stop" +#: js/blocks/NumberBlocks.js:295 +msgid "The Distance block returns the distance between two points. For example, between the mouse and the center of the screen." msgstr "" -#: js/FlowBlocks.js:653 -msgid "The Waitfor block will wait until the condition is true." +#: js/blocks/NumberBlocks.js:301 +#: plugins/rodi.rtp:310 +msgid "distance" msgstr "" -#: js/FlowBlocks.js:661 -msgid "wait for" +#: js/blocks/NumberBlocks.js:361 +msgid "The Divide block is used to divide." msgstr "" -#: js/FlowBlocks.js:732 -msgid "The Until block will repeat until the condition is true." +#: js/blocks/NumberBlocks.js:441 +msgid "The Multiply block is used to multiply." msgstr "" -#: js/FlowBlocks.js:740 -msgid "until" +#: js/blocks/NumberBlocks.js:612 +msgid "The Minus block is used to subtract." msgstr "" -#: js/FlowBlocks.js:742 -#: js/FlowBlocks.js:822 -msgid "do2" +#: js/blocks/NumberBlocks.js:723 +msgid "The Plus block is used to add." msgstr "" -#: js/FlowBlocks.js:812 -msgid "The While block will repeat while the condition is true." +#: js/blocks/NumberBlocks.js:849 +msgid "The One-of block returns one of two choices." msgstr "" -#: js/FlowBlocks.js:820 -msgid "while" +#: js/blocks/NumberBlocks.js:856 +#: js/blocks/PitchBlocks.js:616 +msgid "one of" msgstr "" -#: js/FlowBlocks.js:903 -#: js/FlowBlocks.js:968 -#: js/FlowBlocks.js:979 -msgid "In this example if the mouse button is pressed a snare drum will play." +#: js/blocks/NumberBlocks.js:858 +msgid "this" msgstr "" -#: js/FlowBlocks.js:925 -#: js/FlowBlocks.js:988 -msgid "if" +#: js/blocks/NumberBlocks.js:858 +msgid "that" msgstr "" -#: js/FlowBlocks.js:927 -#: js/FlowBlocks.js:990 -msgid "then" +#: js/blocks/NumberBlocks.js:913 +msgid "The Random block returns a random number." msgstr "" -#: js/FlowBlocks.js:927 -msgid "else" +#: js/blocks/NumberBlocks.js:920 +msgid "random" msgstr "" -#: js/FlowBlocks.js:1025 -msgid "The Forever block will repeat the contained blocks forever." +#: js/blocks/NumberBlocks.js:922 +msgid "min" msgstr "" -#: js/FlowBlocks.js:1037 -msgid "forever" +#: js/blocks/NumberBlocks.js:922 +msgid "max" msgstr "" -#: js/FlowBlocks.js:1073 -msgid "The Repeat block will repeat the contained blocks." +#: js/blocks/NumberBlocks.js:986 +msgid "The Number block holds a number." msgstr "" -#: js/FlowBlocks.js:1075 -msgid "In this example the note will be played 4 times." +#: js/blocks/OrnamentBlocks.js:32 +msgid "staccato factor" msgstr "" -#: js/FlowBlocks.js:1083 -msgid "repeat" +#: js/blocks/OrnamentBlocks.js:108 +msgid "slur factor" msgstr "" -#: js/FlowBlocks.js:1123 -msgid "duplicate factor" +#: js/blocks/OrnamentBlocks.js:217 +#: js/blocks/OrnamentBlocks.js:309 +#.TRANS: the neighbor refers to a neighboring note, e.g., D is a neighbor of C +msgid "neighbor" msgstr "" -#: js/PitchBlocks.js:39 -#: js/musicutils.js:722 -#: js/musicutils.js:1117 -#: js/synthutils.js:112 -#.TRANS: square wave -msgid "square" +#: js/blocks/OrnamentBlocks.js:293 +msgid "The Neighbor block rapidly switches between neighboring pitches." msgstr "" -#: js/PitchBlocks.js:62 -#: js/ToneBlocks.js:39 -#: js/musicutils.js:723 -#: js/musicutils.js:1118 -#: js/synthutils.js:116 -#.TRANS: triangle wave -msgid "triangle" +#: js/blocks/OrnamentBlocks.js:364 +msgid "glide" msgstr "" -#: js/PitchBlocks.js:85 -#: js/musicutils.js:721 -#: js/musicutils.js:1116 -#: js/synthutils.js:110 -#.TRANS: sine wave -msgid "sine" +#: js/blocks/OrnamentBlocks.js:479 +#: js/blocks/OrnamentBlocks.js:643 +msgid "slur" msgstr "" -#: js/PitchBlocks.js:108 -#: js/musicutils.js:724 -#: js/musicutils.js:1119 -#: js/synthutils.js:114 -#.TRANS: sawtooth wave -msgid "sawtooth" +#: js/blocks/OrnamentBlocks.js:558 +#: js/blocks/OrnamentBlocks.js:710 +#.TRANS: play each note sharply detached from the others +msgid "staccato" msgstr "" -#: js/PitchBlocks.js:141 -#.TRANS: musical transposition (adjustment of pitch up or down) -msgid "transposition" +#: js/blocks/RhythmBlocks.js:182 +#: js/blocks/RhythmBlocks.js:1086 +#: js/blocks/RhythmBlocks.js:1162 +msgid "Note value must be greater than 0." msgstr "" -#: js/PitchBlocks.js:168 -#.TRANS: step down one note in current musical scale -msgid "scalar step down" +#: js/blocks/RhythmBlocks.js:215 +#: js/blocks/RhythmBlocks.js:278 +#: js/blocks/RhythmBlocks.js:350 +#.TRANS: swing is a rhythmic variation that emphasises the offbeat +msgid "swing" msgstr "" -#: js/PitchBlocks.js:172 -msgid "The Scalar step down block returns the number of semi-tones down to the previous note in the current key and mode." +#: js/blocks/RhythmBlocks.js:355 +#.TRANS: the amount to shift to the offbeat note +msgid "swing value" msgstr "" -#: js/PitchBlocks.js:190 -#.TRANS: step up one note in current musical scale -msgid "scalar step up" +#: js/blocks/RhythmBlocks.js:419 +msgid "The Skip notes block will cause notes to be skipped." msgstr "" -#: js/PitchBlocks.js:194 -msgid "The Scalar step up block returns the number of semi-tones up to the next note in the current key and mode." +#: js/blocks/RhythmBlocks.js:427 +#.TRANS: substitute rests on notes being skipped +msgid "skip notes" msgstr "" -#: js/PitchBlocks.js:212 -#.TRANS: the change measured in half-steps between the current pitch and the previous pitch -msgid "change in pitch" +#: js/blocks/RhythmBlocks.js:489 +#.TRANS: speed up note duration by some factor, e.g. convert 1/4 to 1/8 notes by using a factor of 2 +msgid "multiply note value" msgstr "" -#: js/PitchBlocks.js:216 -msgid "The Change in pitch block is the difference (in half steps) between the current pitch being played and the previous pitch played." +#: js/blocks/RhythmBlocks.js:542 +msgid "The Tie block works on pairs of notes, combining them into one note." msgstr "" -#: js/PitchBlocks.js:243 -#.TRANS: the change measured in scale-steps between the current pitch and the previous pitch -msgid "scalar change in pitch" +#: js/blocks/RhythmBlocks.js:550 +#.TRANS: tie notes together into one longer note +msgid "tie" msgstr "" -#: js/PitchBlocks.js:250 -#: js/PitchBlocks.js:432 -#: js/PitchBlocks.js:1629 -#: js/DictActions.js:89 -#: js/temperament.js:477 -#: js/temperament.js:481 -#: js/temperament.js:714 -#.TRANS: convert current note to piano key (1-88) -#.TRANS: a mapping of pitch to the 88 piano keys -msgid "pitch number" +#: js/blocks/RhythmBlocks.js:591 +#: js/blocks/RhythmBlocks.js:671 +#.TRANS: a dotted note is played for 1.5x its value, e.g., 1/8. --> 3/16 +msgid "dot" msgstr "" -#: js/PitchBlocks.js:256 -msgid "The Pitch number block is the value of the pitch of the note currently being played." +#: js/blocks/RhythmBlocks.js:619 +#: js/turtleactions/RhythmActions.js:221 +msgid "An argument of -1 results in a note value of 0." msgstr "" -#: js/PitchBlocks.js:329 -#: js/PitchBlocks.js:433 -#.TRANS: the current pitch expressed in Hertz -msgid "pitch in hertz" +#: js/blocks/RhythmBlocks.js:661 +msgid "The Dot block extends the duration of a note by 50%." msgstr "" -#: js/PitchBlocks.js:334 -msgid "The Pitch in Hertz block is the value in Hertz of the pitch of the note currently being played." +#: js/blocks/RhythmBlocks.js:663 +msgid "Eg a dotted quarter note will play for 3/8 (1/4 + 1/8) of a beat." msgstr "" -#: js/PitchBlocks.js:367 -#: js/DictActions.js:87 -msgid "current pitch" +#: js/blocks/RhythmBlocks.js:765 +#.TRANS: Japanese only: note value block for drum +msgid "note value drum" msgstr "" -#: js/PitchBlocks.js:373 -msgid "The Current Pitch block is used with the Pitch Converter block. In the example above, current pitch, sol 4, is displayed as 392 hertz." +#: js/blocks/RhythmBlocks.js:829 +msgid "392 hertz" msgstr "" -#: js/PitchBlocks.js:410 -msgid "This block converts the pitch value of the last note played into different formats such as hertz, letter name, pitch number, et al." +#: js/blocks/RhythmBlocks.js:1119 +msgid "The Note block is a container for one or more Pitch blocks." msgstr "" -#: js/PitchBlocks.js:434 -msgid "alphabet" +#: js/blocks/RhythmBlocks.js:1121 +msgid "The Note block specifies the duration (note value) of its contents." msgstr "" -#: js/PitchBlocks.js:436 -#.TRANS: Translate as "alphabet class" -msgid "letter class" +#: js/blocks/RhythmBlocks.js:1128 +#: js/blocks/PitchBlocks.js:974 +#: js/blocks/PitchBlocks.js:1007 +#: js/blocks/ProgramBlocks.js:1186 +#: js/blocks/ProgramBlocks.js:1227 +#: js/widgets/status.js:190 +#: js/widgets/temperament.js:464 +#: js/widgets/temperament.js:486 +#: js/widgets/temperament.js:496 +#: js/widgets/temperament.js:617 +#: plugins/rodi.rtp:192 +#.TRANS: a musical note consisting of pitch and duration +msgid "note" msgstr "" -#: js/PitchBlocks.js:437 -msgid "solfege class" +#: js/blocks/RhythmBlocks.js:1130 +msgid "value2" msgstr "" -#: js/PitchBlocks.js:438 -msgid "staff y" +#: js/blocks/RhythmBlocks.js:1200 +msgid "define frequency" msgstr "" -#: js/PitchBlocks.js:439 -msgid "solfege syllable" +#: js/blocks/RhythmBlocks.js:1218 +#: js/widgets/temperament.js:787 +#: js/widgets/temperament.js:1587 +msgid "octave space" msgstr "" -#: js/PitchBlocks.js:440 -msgid "pitch class" +#: js/blocks/SensorsBlocks.js:36 +msgid "The Input block prompts for keyboard input." msgstr "" -#: js/PitchBlocks.js:441 -msgid "scalar class" +#: js/blocks/SensorsBlocks.js:46 +msgid "input" msgstr "" -#: js/PitchBlocks.js:443 -msgid "nth degree" +#: js/blocks/SensorsBlocks.js:64 +msgid "Input a value" msgstr "" -#: js/PitchBlocks.js:444 -msgid "pitch to shade" +#: js/blocks/SensorsBlocks.js:126 +msgid "input value" msgstr "" -#: js/PitchBlocks.js:445 -msgid "pitch to color" +#: js/blocks/SensorsBlocks.js:131 +msgid "The Input-value block stores the input." msgstr "" -#: js/PitchBlocks.js:629 -#: js/musickeyboard.js:565 -#.TRANS: MIDI is a technical standard for electronic music -msgid "MIDI" +#: js/blocks/SensorsBlocks.js:238 +msgid "loudness" msgstr "" -#: js/PitchBlocks.js:642 -#.TRANS: set an offset associated with the numeric piano keyboard mapping -msgid "set pitch number offset" +#: js/blocks/SensorsBlocks.js:245 +msgid "The Loudness block returns the volume detected by the microphone." msgstr "" -#: js/PitchBlocks.js:645 -msgid "The Set pitch number offset block is used to set the offset for mapping pitch numbers to pitch and octave." +#: js/blocks/SensorsBlocks.js:300 +msgid "click" msgstr "" -#: js/PitchBlocks.js:679 -#.TRANS: convert piano key number (1-88) to pitch -msgid "number to pitch" +#: js/blocks/SensorsBlocks.js:306 +msgid "The Click block triggers an event if a mouse has been clicked." msgstr "" -#: js/PitchBlocks.js:682 -msgid "The Number to pitch block will convert a pitch number to a pich name." +#: js/blocks/SensorsBlocks.js:313 +msgid "The Click block triggers an event if a turtle has been clicked." msgstr "" -#: js/PitchBlocks.js:715 -#.TRANS: convert piano key number (1-88) to octave -msgid "number to octave" +#: js/blocks/SensorsBlocks.js:342 +msgid "cursor over" msgstr "" -#: js/PitchBlocks.js:717 -msgid "The Number to octave block will convert a pitch number to an octave." +#: js/blocks/SensorsBlocks.js:387 +msgid "cursor out" msgstr "" -#: js/PitchBlocks.js:726 -msgid "y to pitch" +#: js/blocks/SensorsBlocks.js:433 +msgid "cursor button down" msgstr "" -#: js/PitchBlocks.js:729 -msgid "Y to pitch block will convert a staff y position to corresponding pitch notation." +#: js/blocks/SensorsBlocks.js:477 +msgid "cursor button up" msgstr "" -#: js/PitchBlocks.js:841 -msgid "accidental selector" +#: js/blocks/SensorsBlocks.js:521 +#: js/blocks/PenBlocks.js:48 +#: plugins/rodi.rtp:219 +msgid "blue" msgstr "" -#: js/PitchBlocks.js:844 -msgid "The Accidental selector block is used to choose between double-sharp, sharp, natural, flat, and double-flat." +#: js/blocks/SensorsBlocks.js:577 +#: js/blocks/PenBlocks.js:64 +#: plugins/rodi.rtp:218 +msgid "green" msgstr "" -#: js/PitchBlocks.js:858 -msgid "Pitch can be specified in terms of ni dha pa ma ga re sa." +#: js/blocks/SensorsBlocks.js:633 +#: js/blocks/PenBlocks.js:112 +#: plugins/rodi.rtp:217 +msgid "red" msgstr "" -#: js/PitchBlocks.js:872 -msgid "Pitch can be specified in terms of C D E F G A B." +#: js/blocks/SensorsBlocks.js:638 +msgid "The Get red block returns the red component of the pixel under the mouse." msgstr "" -#: js/PitchBlocks.js:883 -msgid "solfege" +#: js/blocks/SensorsBlocks.js:644 +msgid "The Get red block returns the red component of the pixel under the turtle." msgstr "" -#: js/PitchBlocks.js:886 -msgid "Pitch can be specified in terms of do re mi fa sol la ti." +#: js/blocks/SensorsBlocks.js:685 +#: plugins/rodi.rtp:216 +msgid "pixel color" msgstr "" -#: js/PitchBlocks.js:920 -msgid "The Invert block rotates any contained notes around a target note." +#: js/blocks/SensorsBlocks.js:690 +msgid "The Get pixel block returns the color of the pixel under the mouse." msgstr "" -#: js/PitchBlocks.js:927 -#.TRANS: pitch inversion rotates a pitch around another pitch -msgid "invert" +#: js/blocks/SensorsBlocks.js:696 +msgid "The Get pixel block returns the color of the pixel under the turtle." msgstr "" -#: js/PitchBlocks.js:929 -#: js/PitchBlocks.js:935 -#: js/PitchActions.js:727 -#: js/musicutils.js:726 -#: js/musicutils.js:902 -#.TRANS: invert based on even or odd number or musical scale -#.TRANS: even numbers -msgid "even" +#: js/blocks/SensorsBlocks.js:758 +msgid "time" msgstr "" -#: js/PitchBlocks.js:935 -#: js/PitchActions.js:729 -#: js/musicutils.js:728 -#: js/musicutils.js:903 -#.TRANS: odd numbers -msgid "odd" +#: js/blocks/SensorsBlocks.js:804 +msgid "cursor y" msgstr "" -#: js/PitchBlocks.js:935 -#: js/PitchActions.js:731 -#: js/musicutils.js:729 -#: js/musicutils.js:904 -msgid "scalar" +#: js/blocks/SensorsBlocks.js:809 +msgid "The Cursor Y block returns the vertical position of the mouse." msgstr "" -#: js/PitchBlocks.js:966 -#.TRANS: pitch inversion rotates a pitch around another pitch (odd number) -msgid "invert (odd)" +#: js/blocks/SensorsBlocks.js:845 +msgid "cursor x" msgstr "" -#: js/PitchBlocks.js:999 -#.TRANS: pitch inversion rotates a pitch around another pitch (even number) -msgid "invert (even)" +#: js/blocks/SensorsBlocks.js:850 +msgid "The Cursor X block returns the horizontal position of the mouse." msgstr "" -#: js/PitchBlocks.js:1020 -#.TRANS: register is the octave of the current pitch -msgid "register" +#: js/blocks/SensorsBlocks.js:886 +msgid "mouse button" msgstr "" -#: js/PitchBlocks.js:1024 -msgid "The Register block provides an easy way to modify the register (octave) of the notes that follow it." +#: js/blocks/SensorsBlocks.js:888 +msgid "The Mouse-button block returns True if the mouse button is pressed." msgstr "" -#: js/PitchBlocks.js:1074 -msgid "The Semi-tone transposition block will shift the pitches contained inside Note blocks up (or down) by half steps." +#: js/blocks/SensorsBlocks.js:934 +msgid "to ASCII" msgstr "" -#: js/PitchBlocks.js:1076 -msgid "In the example shown above, sol is shifted up to sol#." +#: js/blocks/SensorsBlocks.js:938 +msgid "The To ASCII block converts numbers to letters." msgstr "" -#: js/PitchBlocks.js:1082 -#.TRANS: adjust the amount of shift (up or down) of a pitch -msgid "semi-tone transpose" +#: js/blocks/SensorsBlocks.js:1005 +msgid "The Keyboard block returns computer keyboard input." msgstr "" -#: js/PitchBlocks.js:1115 -msgid "The Transpose by Ratio block will shift the pitches contained inside Note blocks up (or down) by a ratio" +#: js/blocks/RhythmBlockPaletteBlocks.js:50 +#: js/blocks/RhythmBlockPaletteBlocks.js:233 +#.TRANS: rhythm block +#.TRANS: translate "rhythm1" as rhythm +msgid "rhythm1" msgstr "" -#: js/PitchBlocks.js:1121 -#.TRANS: adjust the amount of shift (up or down) of a pitch -msgid "transpose by ratio" +#: js/blocks/RhythmBlockPaletteBlocks.js:70 +#: js/blocks/RhythmBlockPaletteBlocks.js:252 +#: js/blocks/RhythmBlockPaletteBlocks.js:485 +#: js/blocks/RhythmBlockPaletteBlocks.js:554 +#: js/blocks/RhythmBlockPaletteBlocks.js:875 +msgid "number of notes" msgstr "" -#: js/PitchBlocks.js:1204 -#.TRANS: down sixth means the note is five scale degrees below current note -msgid "down sixth" +#: js/blocks/RhythmBlockPaletteBlocks.js:126 +msgid "polyphonic rhythm" msgstr "" -#: js/PitchBlocks.js:1223 -#.TRANS: down third means the note is two scale degrees below current note -msgid "down third" +#: js/blocks/RhythmBlockPaletteBlocks.js:219 +msgid "The Rhythm block is used to generate rhythm patterns." msgstr "" -#: js/PitchBlocks.js:1242 -#.TRANS: seventh means the note is the six scale degrees above current note -msgid "seventh" +#: js/blocks/RhythmBlockPaletteBlocks.js:280 +msgid "1/64 note" msgstr "" -#: js/PitchBlocks.js:1261 -#.TRANS: sixth means the note is the five scale degrees above current note -msgid "sixth" +#: js/blocks/RhythmBlockPaletteBlocks.js:304 +msgid "1/32 note" msgstr "" -#: js/PitchBlocks.js:1280 -#.TRANS: fifth means the note is the four scale degrees above current note -msgid "fifth" +#: js/blocks/RhythmBlockPaletteBlocks.js:332 +msgid "1/16 note" msgstr "" -#: js/PitchBlocks.js:1300 -#.TRANS: fourth means the note is three scale degrees above current note -msgid "fourth" +#: js/blocks/RhythmBlockPaletteBlocks.js:360 +msgid "eighth note" msgstr "" -#: js/PitchBlocks.js:1319 -#.TRANS: third means the note is two scale degrees above current note -msgid "third" +#: js/blocks/RhythmBlockPaletteBlocks.js:388 +msgid "quarter note" msgstr "" -#: js/PitchBlocks.js:1338 -#.TRANS: second means the note is one scale degree above current note -msgid "second" +#: js/blocks/RhythmBlockPaletteBlocks.js:416 +msgid "half note" msgstr "" -#: js/PitchBlocks.js:1379 -msgid "The Scalar transposition block will shift the pitches contained inside Note blocks up (or down) the scale." +#: js/blocks/RhythmBlockPaletteBlocks.js:444 +msgid "whole note" msgstr "" -#: js/PitchBlocks.js:1381 -msgid "In the example shown above, sol is shifted up to la." +#: js/blocks/RhythmBlockPaletteBlocks.js:482 +#: js/blocks/RhythmBlockPaletteBlocks.js:551 +#: js/blocks/RhythmBlockPaletteBlocks.js:602 +#.TRANS: A tuplet is a note value divided into irregular time values. +msgid "tuplet" msgstr "" -#: js/PitchBlocks.js:1388 -#.TRANS: adjust the amount of shift (up or down) of a pitch by musical scale (scalar) steps -msgid "scalar transpose" +#: js/blocks/RhythmBlockPaletteBlocks.js:768 +msgid "septuplet" msgstr "" -#: js/PitchBlocks.js:1423 -msgid "The Accidental block is used to create sharps and flats" +#: js/blocks/RhythmBlockPaletteBlocks.js:796 +msgid "quintuplet" msgstr "" -#: js/PitchBlocks.js:1430 -#.TRANS: An accidental is a modification to a pitch, e.g., sharp or flat. -msgid "accidental override" +#: js/blocks/RhythmBlockPaletteBlocks.js:824 +msgid "triplet" msgstr "" -#: js/PitchBlocks.js:1543 -msgid "The Hertz block (in combination with a Number block) will play a sound at the specified frequency." +#: js/blocks/RhythmBlockPaletteBlocks.js:851 +msgid "simple tuplet" msgstr "" -#: js/PitchBlocks.js:1633 -msgid "The Pitch Number block will play a pitch associated by its number, e.g. 0 for C and 7 for G." +#: js/blocks/RhythmBlockPaletteBlocks.js:861 +msgid "Tuplets are a collection of notes that get scaled to a specific duration." msgstr "" -#: js/PitchBlocks.js:1665 -#: js/PitchBlocks.js:1707 -#.TRANS: a numeric mapping of the notes in an octave based on the musical mode -#.TRANS: a numeric mapping of the notes in an octave based on the musical mode -msgid "nth modal pitch" +#: js/blocks/DrumBlocks.js:59 +msgid "The Noise name block is used to select a noise synthesizer." msgstr "" -#: js/PitchBlocks.js:1668 -msgid "n^th Modal Pitch takes the pattern of pitches in semitones for a mode and makes each point a degree of the mode," +#: js/blocks/DrumBlocks.js:102 +msgid "The Drum name block is used to select a drum." msgstr "" -#: js/PitchBlocks.js:1670 -msgid "starting from 1 and regardless of tonal framework (i.e. not always 8 notes in the octave)" +#: js/blocks/DrumBlocks.js:146 +msgid "The Effects name block is used to select a sound effect." msgstr "" -#: js/PitchBlocks.js:1711 -msgid "N^th Modal Pitch takes a number as an input as the n^th degree for the given mode. 0 is the first position, 1 is the second, -1 is the note before the first etc." +#: js/blocks/DrumBlocks.js:163 +msgid "noise" msgstr "" -#: js/PitchBlocks.js:1713 -msgid "The pitches change according to the mode specified without any need for respellings." +#: js/blocks/DrumBlocks.js:177 +msgid "The Play noise block will generate white, pink, or brown noise." msgstr "" -#: js/PitchBlocks.js:1752 -msgid "Scale Degree is a common convention in music. Scale Degree offers seven possible positions in the scale (1-7) and can be modified via accidentals." +#: js/blocks/DrumBlocks.js:317 +msgid "Replace every instance of a pitch with a drum sound." msgstr "" -#: js/PitchBlocks.js:1754 -msgid "Scale Degree 1 is always the first pitch in a given scale, regardless of octave." +#: js/blocks/DrumBlocks.js:328 +#.TRANS: map a pitch to a drum sound +msgid "map pitch to drum" msgstr "" -#: js/PitchBlocks.js:1776 -#.TRANS: step some number of notes in current musical scale -msgid "scalar step" +#: js/blocks/DrumBlocks.js:395 +msgid "In the example above, a kick drum sound will be played instead of sol." msgstr "" -#: js/PitchBlocks.js:1781 -msgid "The Scalar Step block (in combination with a Number block) will play the next pitch in a scale," +#: js/blocks/DrumBlocks.js:407 +#.TRANS: set the current drum sound for playback +msgid "set drum" msgstr "" -#: js/PitchBlocks.js:1783 -msgid "eg if the last note played was sol, Scalar Step 1 will play la." +#: js/blocks/DrumBlocks.js:451 +msgid "sound effect" msgstr "" -#: js/PitchBlocks.js:1818 -msgid "The Pitch block specifies the pitch name and octave of a note that together determine the frequency of the note." +#: js/blocks/DrumBlocks.js:489 +msgid "You can use multiple Drum blocks within a Note block." msgstr "" -#: js/GraphicsBlocks.js:46 -#: js/DictActions.js:77 -#: js/DictActions.js:155 -#: js/DictActions.js:189 +#: js/blocks/GraphicsBlocks.js:46 +#: js/turtleactions/DictActions.js:77 +#: js/turtleactions/DictActions.js:144 +#: js/turtleactions/DictActions.js:173 msgid "heading" msgstr "" -#: js/GraphicsBlocks.js:56 +#: js/blocks/GraphicsBlocks.js:56 msgid "The Heading block returns the orientation of the mouse." msgstr "" -#: js/GraphicsBlocks.js:62 +#: js/blocks/GraphicsBlocks.js:62 msgid "The Heading block returns the orientation of the turtle." msgstr "" -#: js/GraphicsBlocks.js:133 +#: js/blocks/GraphicsBlocks.js:133 msgid "The Y block returns the vertical position of the mouse." msgstr "" -#: js/GraphicsBlocks.js:140 +#: js/blocks/GraphicsBlocks.js:140 msgid "The Y block returns the vertical position of the turtle." msgstr "" -#: js/GraphicsBlocks.js:149 +#: js/blocks/GraphicsBlocks.js:149 msgid "y3" msgstr "" -#: js/GraphicsBlocks.js:219 +#: js/blocks/GraphicsBlocks.js:219 msgid "The X block returns the horizontal position of the mouse." msgstr "" -#: js/GraphicsBlocks.js:226 +#: js/blocks/GraphicsBlocks.js:226 msgid "The X block returns the horizontal position of the turtle." msgstr "" -#: js/GraphicsBlocks.js:235 +#: js/blocks/GraphicsBlocks.js:235 msgid "x3" msgstr "" -#: js/GraphicsBlocks.js:295 +#: js/blocks/GraphicsBlocks.js:295 msgid "scroll xy" msgstr "" -#: js/GraphicsBlocks.js:303 +#: js/blocks/GraphicsBlocks.js:303 msgid "The Scroll XY block moves the canvas." msgstr "" -#: js/GraphicsBlocks.js:313 +#: js/blocks/GraphicsBlocks.js:313 msgid "x2" msgstr "" -#: js/GraphicsBlocks.js:313 +#: js/blocks/GraphicsBlocks.js:313 msgid "y2" msgstr "" -#: js/GraphicsBlocks.js:373 -#: js/temperament.js:213 -#: js/temperament.js:241 +#: js/blocks/GraphicsBlocks.js:373 +#: js/widgets/temperament.js:319 +#: js/widgets/temperament.js:347 msgid "clear" msgstr "" -#: js/GraphicsBlocks.js:426 +#: js/blocks/GraphicsBlocks.js:426 msgid "The Control-point 2 block sets the second control point for the Bezier curve." msgstr "" -#: js/GraphicsBlocks.js:433 +#: js/blocks/GraphicsBlocks.js:433 msgid "control point 2" msgstr "" -#: js/GraphicsBlocks.js:436 -#: js/GraphicsBlocks.js:487 -#: js/GraphicsBlocks.js:534 -#: js/GraphicsBlocks.js:750 +#: js/blocks/GraphicsBlocks.js:436 +#: js/blocks/GraphicsBlocks.js:487 +#: js/blocks/GraphicsBlocks.js:534 +#: js/blocks/GraphicsBlocks.js:750 msgid "x1" msgstr "" -#: js/GraphicsBlocks.js:436 -#: js/GraphicsBlocks.js:487 -#: js/GraphicsBlocks.js:534 -#: js/GraphicsBlocks.js:750 +#: js/blocks/GraphicsBlocks.js:436 +#: js/blocks/GraphicsBlocks.js:487 +#: js/blocks/GraphicsBlocks.js:534 +#: js/blocks/GraphicsBlocks.js:750 msgid "y1" msgstr "" -#: js/GraphicsBlocks.js:477 +#: js/blocks/GraphicsBlocks.js:477 msgid "The Control-point 1 block sets the first control point for the Bezier curve." msgstr "" -#: js/GraphicsBlocks.js:484 +#: js/blocks/GraphicsBlocks.js:484 msgid "control point 1" msgstr "" -#: js/GraphicsBlocks.js:527 +#: js/blocks/GraphicsBlocks.js:527 msgid "The Bezier block draws a Bezier curve." msgstr "" -#: js/GraphicsBlocks.js:531 +#: js/blocks/GraphicsBlocks.js:531 msgid "bezier" msgstr "" -#: js/GraphicsBlocks.js:592 +#: js/blocks/GraphicsBlocks.js:592 msgid "The Arc block moves the turtle in an arc." msgstr "" -#: js/GraphicsBlocks.js:600 +#: js/blocks/GraphicsBlocks.js:600 msgid "arc" msgstr "" -#: js/GraphicsBlocks.js:603 +#: js/blocks/GraphicsBlocks.js:603 msgid "angle" msgstr "" -#: js/GraphicsBlocks.js:603 +#: js/blocks/GraphicsBlocks.js:603 msgid "radius" msgstr "" -#: js/GraphicsBlocks.js:620 -#: js/GraphicsBlocks.js:767 -#: js/GraphicsBlocks.js:1010 -#: js/GraphicsBlocks.js:1093 +#: js/blocks/GraphicsBlocks.js:620 +#: js/blocks/GraphicsBlocks.js:767 +#: js/blocks/GraphicsBlocks.js:1010 +#: js/blocks/GraphicsBlocks.js:1093 msgid "Value must be within -5000 to 5000 when Wrap Mode is off." msgstr "" -#: js/GraphicsBlocks.js:622 -#: js/GraphicsBlocks.js:769 -#: js/GraphicsBlocks.js:1012 -#: js/GraphicsBlocks.js:1095 +#: js/blocks/GraphicsBlocks.js:622 +#: js/blocks/GraphicsBlocks.js:769 +#: js/blocks/GraphicsBlocks.js:1012 +#: js/blocks/GraphicsBlocks.js:1095 msgid "Value must be within -20000 to 20000 when Wrap Mode is on." msgstr "" -#: js/GraphicsBlocks.js:660 +#: js/blocks/GraphicsBlocks.js:660 msgid "set heading" msgstr "seth" -#: js/GraphicsBlocks.js:673 +#: js/blocks/GraphicsBlocks.js:673 msgid "The Set heading block sets the heading of the turtle." msgstr "" -#: js/GraphicsBlocks.js:733 +#: js/blocks/GraphicsBlocks.js:733 msgid "The Set XY block moves the mouse to a specific position on the screen." msgstr "" -#: js/GraphicsBlocks.js:739 +#: js/blocks/GraphicsBlocks.js:739 msgid "The Set XY block moves the turtle to a specific position on the screen." msgstr "" -#: js/GraphicsBlocks.js:747 +#: js/blocks/GraphicsBlocks.js:747 msgid "set xy" msgstr "" -#: js/GraphicsBlocks.js:819 +#: js/blocks/GraphicsBlocks.js:819 msgid "The Right block turns the mouse to the right." msgstr "" -#: js/GraphicsBlocks.js:826 +#: js/blocks/GraphicsBlocks.js:826 msgid "The Right block turns the turtle to the right." msgstr "" -#: js/GraphicsBlocks.js:835 +#: js/blocks/GraphicsBlocks.js:835 msgid "right1" msgstr "" -#: js/GraphicsBlocks.js:835 +#: js/blocks/GraphicsBlocks.js:835 #: plugins/rodi.rtp:77 #: plugins/rodi.rtp:340 #: plugins/rodi.rtp:375 msgid "right" msgstr "" -#: js/GraphicsBlocks.js:899 +#: js/blocks/GraphicsBlocks.js:899 msgid "The Left block turns the mouse to the left." msgstr "" -#: js/GraphicsBlocks.js:906 +#: js/blocks/GraphicsBlocks.js:906 msgid "The Left block turns the turtle to the left." msgstr "" -#: js/GraphicsBlocks.js:915 +#: js/blocks/GraphicsBlocks.js:915 msgid "left1" msgstr "" -#: js/GraphicsBlocks.js:915 +#: js/blocks/GraphicsBlocks.js:915 #: plugins/rodi.rtp:79 #: plugins/rodi.rtp:339 #: plugins/rodi.rtp:362 msgid "left" msgstr "" -#: js/GraphicsBlocks.js:967 -#: js/temperament.js:734 -#: js/temperament.js:933 +#: js/blocks/GraphicsBlocks.js:967 +#: js/widgets/temperament.js:875 +#: js/widgets/temperament.js:1078 #: plugins/rodi.rtp:69 #: plugins/rodi.rtp:387 msgid "back" msgstr "" -#: js/GraphicsBlocks.js:976 +#: js/blocks/GraphicsBlocks.js:976 msgid "The Back block moves the mouse backward." msgstr "" -#: js/GraphicsBlocks.js:983 +#: js/blocks/GraphicsBlocks.js:983 msgid "The Back block moves the turtle backward." msgstr "" -#: js/GraphicsBlocks.js:1050 +#: js/blocks/GraphicsBlocks.js:1050 #: plugins/rodi.rtp:71 #: plugins/rodi.rtp:400 msgid "forward" msgstr "" -#: js/GraphicsBlocks.js:1059 +#: js/blocks/GraphicsBlocks.js:1059 msgid "The Forward block moves the mouse forward." msgstr "" -#: js/GraphicsBlocks.js:1066 +#: js/blocks/GraphicsBlocks.js:1066 msgid "The Forward block moves the turtle forward." msgstr "" -#: js/GraphicsBlocks.js:1154 -#: js/GraphicsBlocks.js:1172 +#: js/blocks/GraphicsBlocks.js:1154 +#: js/blocks/GraphicsBlocks.js:1172 msgid "wrap" msgstr "" -#: js/OrnamentBlocks.js:32 -msgid "staccato factor" -msgstr "" - -#: js/OrnamentBlocks.js:108 -msgid "slur factor" -msgstr "" - -#: js/OrnamentBlocks.js:217 -#: js/OrnamentBlocks.js:309 -#.TRANS: the neighbor refers to a neighboring note, e.g., D is a neighbor of C -msgid "neighbor" -msgstr "" - -#: js/OrnamentBlocks.js:293 -msgid "The Neighbor block rapidly switches between neighboring pitches." -msgstr "" - -#: js/OrnamentBlocks.js:364 -msgid "glide" -msgstr "" - -#: js/OrnamentBlocks.js:479 -#: js/OrnamentBlocks.js:643 -msgid "slur" -msgstr "" - -#: js/OrnamentBlocks.js:558 -#: js/OrnamentBlocks.js:710 -#.TRANS: play each note sharply detached from the others -msgid "staccato" -msgstr "" - -#: js/PenBlocks.js:24 +#: js/blocks/PenBlocks.js:30 msgid "purple" msgstr "" -#: js/PenBlocks.js:37 -#: js/SensorsBlocks.js:521 -#: plugins/rodi.rtp:219 -msgid "blue" -msgstr "" - -#: js/PenBlocks.js:50 -#: js/SensorsBlocks.js:577 -#: plugins/rodi.rtp:218 -msgid "green" -msgstr "" - -#: js/PenBlocks.js:63 +#: js/blocks/PenBlocks.js:80 msgid "yellow" msgstr "" -#: js/PenBlocks.js:76 +#: js/blocks/PenBlocks.js:96 #: plugins/nutrition.rtp:164 msgid "orange" msgstr "" -#: js/PenBlocks.js:89 -#: js/SensorsBlocks.js:633 -#: plugins/rodi.rtp:217 -msgid "red" -msgstr "" - -#: js/PenBlocks.js:102 +#: js/blocks/PenBlocks.js:128 msgid "white" msgstr "" -#: js/PenBlocks.js:115 +#: js/blocks/PenBlocks.js:144 msgid "black" msgstr "" -#: js/PenBlocks.js:128 +#: js/blocks/PenBlocks.js:163 msgid "begin fill" msgstr "" -#: js/PenBlocks.js:143 +#: js/blocks/PenBlocks.js:190 msgid "end fill" msgstr "" -#: js/PenBlocks.js:159 -#: js/PenBlocks.js:386 +#: js/blocks/PenBlocks.js:212 +#: js/blocks/PenBlocks.js:560 #.TRANS: set the background color msgid "background" msgstr "" -#: js/PenBlocks.js:206 -#: js/DictActions.js:71 -#: js/DictActions.js:149 -#: js/DictActions.js:186 +#: js/blocks/PenBlocks.js:274 +#: js/turtleactions/DictActions.js:71 +#: js/turtleactions/DictActions.js:138 +#: js/turtleactions/DictActions.js:170 msgid "grey" msgstr "" -#: js/PenBlocks.js:210 +#: js/blocks/PenBlocks.js:282 msgid "The Grey block returns the current pen grey value." msgstr "" -#: js/PenBlocks.js:243 -#: js/DictActions.js:69 -#: js/DictActions.js:147 -#: js/DictActions.js:185 +#: js/blocks/PenBlocks.js:340 +#: js/turtleactions/DictActions.js:69 +#: js/turtleactions/DictActions.js:136 +#: js/turtleactions/DictActions.js:169 msgid "shade" msgstr "" -#: js/PenBlocks.js:247 +#: js/blocks/PenBlocks.js:347 msgid "The Shade block returns the current pen shade value." msgstr "" -#: js/PenBlocks.js:280 -#: js/DictActions.js:67 -#: js/DictActions.js:145 -#: js/DictActions.js:184 +#: js/blocks/PenBlocks.js:405 +#: js/turtleactions/DictActions.js:67 +#: js/turtleactions/DictActions.js:134 +#: js/turtleactions/DictActions.js:168 msgid "color" msgstr "" -#: js/PenBlocks.js:285 +#: js/blocks/PenBlocks.js:415 msgid "The Color block returns the current pen color." msgstr "" -#: js/PenBlocks.js:318 -#: js/DictActions.js:73 -#: js/DictActions.js:151 -#: js/DictActions.js:187 +#: js/blocks/PenBlocks.js:470 +#: js/turtleactions/DictActions.js:73 +#: js/turtleactions/DictActions.js:140 +#: js/turtleactions/DictActions.js:171 msgid "pen size" msgstr "" -#: js/PenBlocks.js:322 +#: js/blocks/PenBlocks.js:474 msgid "The Pen size block returns the current pen size value." msgstr "" -#: js/PenBlocks.js:355 +#: js/blocks/PenBlocks.js:513 msgid "set font" msgstr "" -#: js/PenBlocks.js:358 +#: js/blocks/PenBlocks.js:518 msgid "The Set font block sets the font used by the Show block." msgstr "" -#: js/PenBlocks.js:391 +#: js/blocks/PenBlocks.js:567 msgid "The Background block sets the window background color." msgstr "" -#: js/PenBlocks.js:408 +#: js/blocks/PenBlocks.js:598 msgid "The Hollow line block creates a line with a hollow center." msgstr "" -#: js/PenBlocks.js:415 +#: js/blocks/PenBlocks.js:606 #.TRANS: draw a line logo has a hollow space down its center msgid "hollow line" msgstr "" -#: js/PenBlocks.js:462 +#: js/blocks/PenBlocks.js:675 msgid "The Fill block fills in a shape with a color." msgstr "" -#: js/PenBlocks.js:470 +#: js/blocks/PenBlocks.js:684 #.TRANS: fill in as a solid color msgid "fill" msgstr "" -#: js/PenBlocks.js:527 +#: js/blocks/PenBlocks.js:761 #.TRANS: raise up the pen so logo it does not draw when it is moved msgid "pen up" msgstr "" -#: js/PenBlocks.js:532 +#: js/blocks/PenBlocks.js:768 msgid "The Pen-up block raises the pen so that it does not draw." msgstr "" -#: js/PenBlocks.js:552 +#: js/blocks/PenBlocks.js:802 #.TRANS: put down the pen so logo it draws when it is moved msgid "pen down" msgstr "" -#: js/PenBlocks.js:557 +#: js/blocks/PenBlocks.js:810 msgid "The Pen-down block lowers the pen so that it draws." msgstr "" -#: js/PenBlocks.js:577 +#: js/blocks/PenBlocks.js:844 #.TRANS: set the width of the line drawn by the pen msgid "set pen size" msgstr "" -#: js/PenBlocks.js:583 +#: js/blocks/PenBlocks.js:854 msgid "The Set-pen-size block changes the size of the pen." msgstr "" -#: js/PenBlocks.js:623 +#: js/blocks/PenBlocks.js:913 #.TRANS: set degree of translucence of the pen color msgid "set translucency" msgstr "" -#: js/PenBlocks.js:627 +#: js/blocks/PenBlocks.js:921 msgid "The Set translucency block changes the opacity of the pen." msgstr "" -#: js/PenBlocks.js:668 +#: js/blocks/PenBlocks.js:981 msgid "set hue" msgstr "" -#: js/PenBlocks.js:672 +#: js/blocks/PenBlocks.js:989 msgid "The Set hue block changes the color of the pen." msgstr "" -#: js/PenBlocks.js:711 +#: js/blocks/PenBlocks.js:1047 msgid "set shade" msgstr "" -#: js/PenBlocks.js:717 +#: js/blocks/PenBlocks.js:1057 msgid "The Set-shade block changes the pen color from dark to light." msgstr "" -#: js/PenBlocks.js:757 +#: js/blocks/PenBlocks.js:1111 #.TRANS: set the level of vividness of the pen color msgid "set grey" msgstr "" -#: js/PenBlocks.js:761 +#: js/blocks/PenBlocks.js:1119 msgid "The Set grey block changes the vividness of the pen color." msgstr "" -#: js/PenBlocks.js:800 +#: js/blocks/PenBlocks.js:1172 msgid "set color" msgstr "" -#: js/PenBlocks.js:806 +#: js/blocks/PenBlocks.js:1182 msgid "The Set-color block changes the pen color." msgstr "" -#: js/VolumeBlocks.js:35 -msgid "synth volume" -msgstr "" - -#: js/VolumeBlocks.js:39 -msgid "The Synth volume block returns the current volume of the current synthesizer." -msgstr "" - -#: js/VolumeBlocks.js:47 -#: js/musicutils.js:730 -#: js/synthutils.js:56 -#.TRANS: musical instrument -msgid "piano" -msgstr "" - -#: js/VolumeBlocks.js:105 -msgid "master volume" -msgstr "" - -#: js/VolumeBlocks.js:109 -msgid "The Master volume block returns the master volume." -msgstr "" - -#: js/VolumeBlocks.js:355 -#: js/VolumeBlocks.js:524 -msgid "set synth volume" -msgstr "" - -#: js/VolumeBlocks.js:362 -#: js/VolumeBlocks.js:545 -msgid "synth" -msgstr "" - -#: js/VolumeBlocks.js:403 -#: js/VolumeBlocks.js:577 -#: js/VolumeBlocks.js:740 -#: js/VolumeActions.js:173 -msgid "Setting volume to 0." -msgstr "" - -#: js/VolumeBlocks.js:440 -msgid "Synth not found" -msgstr "" - -#: js/VolumeBlocks.js:494 -msgid "set drum volume" -msgstr "" - -#: js/VolumeBlocks.js:530 -msgid "The Set synth volume block will change the volume of a particular synth," -msgstr "" - -#: js/VolumeBlocks.js:532 -msgid "eg guitar violin snare drum etc." -msgstr "" - -#: js/VolumeBlocks.js:534 -msgid "The default volume is 50." -msgstr "" - -#: js/VolumeBlocks.js:536 -msgid "The range is 0 for silence to 100 for full volume." -msgstr "" - -#: js/VolumeBlocks.js:597 -msgid "set panning" -msgstr "" - -#: js/VolumeBlocks.js:603 -msgid "The Set Panning block sets the panning for all synthesizers." -msgstr "" - -#: js/VolumeBlocks.js:625 -msgid "Warning: Sound is coming out from only the left or right side." -msgstr "" - -#: js/VolumeBlocks.js:647 -#: js/VolumeBlocks.js:695 -msgid "set master volume" -msgstr "" - -#: js/VolumeBlocks.js:653 -msgid "The Set master volume block sets the volume for all synthesizers." -msgstr "" - -#: js/VolumeBlocks.js:784 -msgid "The Set relative volume block changes the volume of the contained notes." -msgstr "" - -#: js/VolumeBlocks.js:791 -msgid "set relative volume" -msgstr "" - -#: js/VolumeBlocks.js:857 -msgid "decrescendo" -msgstr "" - -#: js/VolumeBlocks.js:921 -msgid "crescendo" -msgstr "" - -#: js/ToneBlocks.js:34 -msgid "oscillator" -msgstr "" - -#: js/ToneBlocks.js:44 -#: js/timbre.js:1562 -#.TRANS: Partials refers to the number of sine waves combined into the sound. -msgid "partials" -msgstr "" - -#: js/ToneBlocks.js:76 -msgid "You are adding multiple oscillator blocks." -msgstr "" - -#: js/ToneBlocks.js:144 -#: js/timbre.js:1225 -#.TRANS: a duo synthesizer combines a synth with a sequencer -msgid "duo synth" -msgstr "" - -#: js/ToneBlocks.js:149 -msgid "The Duo synth block is a duo-frequency modulator used to define a timbre." -msgstr "" - -#: js/ToneBlocks.js:157 -#: js/timbre.js:1476 -msgid "vibrato rate" -msgstr "" - -#: js/ToneBlocks.js:157 -msgid "vibrato intensity" -msgstr "" - -#: js/ToneBlocks.js:185 -#: js/timbre.js:1221 -#.TRANS: AM (amplitude modulation) synthesizer -msgid "AM synth" -msgstr "" - -#: js/ToneBlocks.js:189 -msgid "The AM synth block is an amplitude modulator used to define a timbre." -msgstr "" - -#: js/ToneBlocks.js:224 -#: js/timbre.js:1223 -#.TRANS: FM (frequency modulation) synthesizer -msgid "FM synth" -msgstr "" - -#: js/ToneBlocks.js:228 -msgid "The FM synth block is a frequency modulator used to define a timbre." +#: js/blocks/PitchBlocks.js:141 +#.TRANS: musical transposition (adjustment of pitch up or down) +msgid "transposition" msgstr "" -#: js/ToneBlocks.js:262 -msgid "partial" +#: js/blocks/PitchBlocks.js:168 +#.TRANS: step down one note in current musical scale +msgid "scalar step down" msgstr "" -#: js/ToneBlocks.js:265 -msgid "The Partial block is used to specify a weight for a specific partial harmonic." +#: js/blocks/PitchBlocks.js:172 +msgid "The Scalar step down block returns the number of semi-tones down to the previous note in the current key and mode." msgstr "" -#: js/ToneBlocks.js:284 -#.TRANS: partials are weighted components in a harmonic series -msgid "Partial weight must be between 0 and 1." +#: js/blocks/PitchBlocks.js:190 +#.TRANS: step up one note in current musical scale +msgid "scalar step up" msgstr "" -#: js/ToneBlocks.js:297 -#.TRANS: partials are weighted components in a harmonic series -msgid "Partial block should be used inside of a Weighted-partials block." +#: js/blocks/PitchBlocks.js:194 +msgid "The Scalar step up block returns the number of semi-tones up to the next note in the current key and mode." msgstr "" -#: js/ToneBlocks.js:325 -#.TRANS: partials are weighted components in a harmonic series -msgid "weighted partials" +#: js/blocks/PitchBlocks.js:212 +#.TRANS: the change measured in half-steps between the current pitch and the previous pitch +msgid "change in pitch" msgstr "" -#: js/ToneBlocks.js:383 -msgid "The Harmonic block will add harmonics to the contained notes." +#: js/blocks/PitchBlocks.js:216 +msgid "The Change in pitch block is the difference (in half steps) between the current pitch being played and the previous pitch played." msgstr "" -#: js/ToneBlocks.js:390 -#.TRANS: A harmonic is an overtone. -msgid "harmonic" +#: js/blocks/PitchBlocks.js:243 +#.TRANS: the change measured in scale-steps between the current pitch and the previous pitch +msgid "scalar change in pitch" msgstr "" -#: js/ToneBlocks.js:431 -msgid "The Distortion block adds distortion to the pitch." +#: js/blocks/PitchBlocks.js:250 +#: js/blocks/PitchBlocks.js:432 +#: js/blocks/PitchBlocks.js:1667 +#: js/turtleactions/DictActions.js:89 +#: js/widgets/temperament.js:610 +#: js/widgets/temperament.js:614 +#: js/widgets/temperament.js:855 +#.TRANS: convert current note to piano key (1-88) +#.TRANS: a mapping of pitch to the 88 piano keys +msgid "pitch number" msgstr "" -#: js/ToneBlocks.js:438 -#: js/timbre.js:2100 -#.TRANS: distortion is an alteration in the sound -msgid "distortion" +#: js/blocks/PitchBlocks.js:256 +msgid "The Pitch number block is the value of the pitch of the note currently being played." msgstr "" -#: js/ToneBlocks.js:487 -msgid "The Tremolo block adds a wavering effect." +#: js/blocks/PitchBlocks.js:329 +#: js/blocks/PitchBlocks.js:433 +#.TRANS: the current pitch expressed in Hertz +msgid "pitch in hertz" msgstr "" -#: js/ToneBlocks.js:495 -#: js/timbre.js:2092 -#.TRANS: a wavering effect in a musical tone -msgid "tremolo" +#: js/blocks/PitchBlocks.js:334 +msgid "The Pitch in Hertz block is the value in Hertz of the pitch of the note currently being played." msgstr "" -#: js/ToneBlocks.js:500 -#: js/ToneBlocks.js:569 -#: js/ToneBlocks.js:630 -#: js/ToneBlocks.js:689 -#: js/timbre.js:2134 -#: js/timbre.js:2222 -#: js/timbre.js:2317 -#: js/timbre.js:2419 -#.TRANS: rate at which tremolo wavers -msgid "rate" +#: js/blocks/PitchBlocks.js:367 +#: js/turtleactions/DictActions.js:87 +msgid "current pitch" msgstr "" -#: js/ToneBlocks.js:502 -#: js/ToneBlocks.js:630 -#: js/timbre.js:2137 -#: js/timbre.js:2328 -#.TRANS: amplitude of tremolo waver -msgid "depth" +#: js/blocks/PitchBlocks.js:373 +msgid "The Current Pitch block is used with the Pitch Converter block. In the example above, current pitch, sol 4, is displayed as 392 hertz." msgstr "" -#: js/ToneBlocks.js:559 -msgid "The Phaser block adds a sweeping sound." +#: js/blocks/PitchBlocks.js:410 +msgid "This block converts the pitch value of the last note played into different formats such as hertz, letter name, pitch number, et al." msgstr "" -#: js/ToneBlocks.js:566 -#: js/timbre.js:2098 -#.TRANS: alter the phase of the sound -msgid "phaser" +#: js/blocks/PitchBlocks.js:434 +msgid "alphabet" msgstr "" -#: js/ToneBlocks.js:569 -#: js/timbre.js:2422 -msgid "octaves" +#: js/blocks/PitchBlocks.js:436 +#.TRANS: Translate as "alphabet class" +msgid "letter class" msgstr "" -#: js/ToneBlocks.js:569 -#: js/timbre.js:2425 -msgid "base frequency" +#: js/blocks/PitchBlocks.js:437 +msgid "solfege class" msgstr "" -#: js/ToneBlocks.js:619 -msgid "The Chorus block adds a chorus effect." +#: js/blocks/PitchBlocks.js:438 +msgid "staff y" msgstr "" -#: js/ToneBlocks.js:627 -#: js/timbre.js:2096 -#.TRANS: musical effect to simulate a choral sound -msgid "chorus" +#: js/blocks/PitchBlocks.js:439 +msgid "solfege syllable" msgstr "" -#: js/ToneBlocks.js:630 -msgid "delay" +#: js/blocks/PitchBlocks.js:440 +msgid "pitch class" msgstr "" -#: js/ToneBlocks.js:678 -msgid "The Vibrato block adds a rapid, slight variation in pitch." +#: js/blocks/PitchBlocks.js:441 +msgid "scalar class" msgstr "" -#: js/ToneBlocks.js:686 -#: js/timbre.js:2094 -#.TRANS: a rapid, slight variation in pitch -msgid "vibrato" +#: js/blocks/PitchBlocks.js:443 +msgid "nth degree" msgstr "" -#: js/ToneBlocks.js:689 -#: js/timbre.js:2221 -msgid "intensity" +#: js/blocks/PitchBlocks.js:444 +msgid "pitch to shade" msgstr "" -#: js/ToneBlocks.js:733 -#.TRANS: select synthesizer -msgid "set synth" +#: js/blocks/PitchBlocks.js:445 +msgid "pitch to color" msgstr "" -#: js/ToneBlocks.js:804 -msgid "synth name" +#: js/blocks/PitchBlocks.js:629 +#: js/widgets/musickeyboard.js:735 +#.TRANS: MIDI is a technical standard for electronic music +msgid "MIDI" msgstr "" -#: js/ToneBlocks.js:842 -msgid "set default instrument" +#: js/blocks/PitchBlocks.js:642 +#.TRANS: set an offset associated with the numeric piano keyboard mapping +msgid "set pitch number offset" msgstr "" -#: js/ToneBlocks.js:895 -#: js/ToneBlocks.js:943 -#.TRANS: set the characteristics of a custom instrument -msgid "set instrument" +#: js/blocks/PitchBlocks.js:645 +msgid "The Set pitch number offset block is used to set the offset for mapping pitch numbers to pitch and octave." msgstr "" -#: js/ToneBlocks.js:898 -#: js/ToneBlocks.js:926 -#: js/ToneBlocks.js:932 -msgid "The Set instrument block selects a voice for the synthesizer," +#: js/blocks/PitchBlocks.js:679 +#.TRANS: convert piano key number (1-88) to pitch +msgid "number to pitch" msgstr "" -#: js/ToneBlocks.js:900 -#: js/ToneBlocks.js:934 -msgid "eg guitar piano violin or cello." +#: js/blocks/PitchBlocks.js:682 +msgid "The Number to pitch block will convert a pitch number to a pich name." msgstr "" -#: js/ToneBlocks.js:1015 -msgid "Import a sound file to use as an instrument and set its pitch center." +#: js/blocks/PitchBlocks.js:715 +#.TRANS: convert piano key number (1-88) to octave +msgid "number to octave" msgstr "" -#: js/ToneBlocks.js:1110 -msgid "Upload a sound file to connect with the sample block." +#: js/blocks/PitchBlocks.js:717 +msgid "The Number to octave block will convert a pitch number to an octave." msgstr "" -#: js/MeterBlocks.js:34 -#.TRANS: musical meter (time signature), e.g., 4:4 -msgid "current meter" +#: js/blocks/PitchBlocks.js:726 +msgid "y to pitch" msgstr "" -#: js/MeterBlocks.js:85 -#.TRANS: number of beats per minute -msgid "beat factor" +#: js/blocks/PitchBlocks.js:729 +msgid "Y to pitch block will convert a staff y position to corresponding pitch notation." msgstr "" -#: js/MeterBlocks.js:161 -msgid "The Beats per minute block returns the current beats per minute." +#: js/blocks/PitchBlocks.js:841 +msgid "accidental selector" msgstr "" -#: js/MeterBlocks.js:169 -#: js/status.js:152 -#.TRANS: number of beats played per minute -msgid "beats per minute2" +#: js/blocks/PitchBlocks.js:844 +msgid "The Accidental selector block is used to choose between double-sharp, sharp, natural, flat, and double-flat." msgstr "" -#: js/MeterBlocks.js:169 -#: js/MeterBlocks.js:1056 -#: js/MeterBlocks.js:1133 -#: js/MeterBlocks.js:1211 -#.TRANS: sets tempo by defining a beat and beats per minute -msgid "beats per minute" +#: js/blocks/PitchBlocks.js:858 +msgid "Pitch can be specified in terms of ni dha pa ma ga re sa." msgstr "" -#: js/MeterBlocks.js:233 -#.TRANS: count of current musical measure in meter -msgid "measure count" +#: js/blocks/PitchBlocks.js:872 +msgid "Pitch can be specified in terms of C D E F G A B." msgstr "" -#: js/MeterBlocks.js:241 -msgid "The Measure count block returns the current measure." +#: js/blocks/PitchBlocks.js:884 +msgid "solfege" msgstr "" -#: js/MeterBlocks.js:290 -#.TRANS: count of current beat in the meter -msgid "beat count" +#: js/blocks/PitchBlocks.js:887 +msgid "Pitch can be specified in terms of do re mi fa sol la ti." msgstr "" -#: js/MeterBlocks.js:300 -#: js/MeterBlocks.js:311 -#: js/MeterBlocks.js:565 -#: js/MeterBlocks.js:576 -msgid "The Beat count block is the number of the current beat," +#: js/blocks/PitchBlocks.js:922 +msgid "The Invert block rotates any contained notes around a target note." msgstr "" -#: js/MeterBlocks.js:313 -#: js/MeterBlocks.js:578 -msgid "eg 1, 2, 3, or 4." +#: js/blocks/PitchBlocks.js:929 +#.TRANS: pitch inversion rotates a pitch around another pitch +msgid "invert" msgstr "" -#: js/MeterBlocks.js:368 -#.TRANS: count the number of notes -msgid "sum note values" +#: js/blocks/PitchBlocks.js:968 +#.TRANS: pitch inversion rotates a pitch around another pitch (odd number) +msgid "invert (odd)" msgstr "" -#: js/MeterBlocks.js:376 -#: js/MeterBlocks.js:440 -msgid "The Note counter block can be used to count the number of contained notes." +#: js/blocks/PitchBlocks.js:1001 +#.TRANS: pitch inversion rotates a pitch around another pitch (even number) +msgid "invert (even)" msgstr "" -#: js/MeterBlocks.js:432 -#.TRANS: count the number of notes -msgid "note counter" +#: js/blocks/PitchBlocks.js:1022 +#.TRANS: register is the octave of the current pitch +msgid "register" msgstr "" -#: js/MeterBlocks.js:496 -#.TRANS: number of whole notes that have been played -msgid "whole notes played" +#: js/blocks/PitchBlocks.js:1026 +msgid "The Register block provides an easy way to modify the register (octave) of the notes that follow it." msgstr "" -#: js/MeterBlocks.js:505 -msgid "The Whole notes played block returns the total number of whole notes played." +#: js/blocks/PitchBlocks.js:1047 +#.TRANS: cents are units used to specify the ratio between pitches. There are 100 cents between successive notes. +msgid "50 cents" msgstr "" -#: js/MeterBlocks.js:555 -#: js/DictActions.js:83 -#.TRANS: number of notes that have been played -msgid "notes played" +#: js/blocks/PitchBlocks.js:1102 +msgid "The Semi-tone transposition block will shift the pitches contained inside Note blocks up (or down) by half steps." msgstr "" -#: js/MeterBlocks.js:653 -msgid "The No clock block decouples the notes from the master clock." +#: js/blocks/PitchBlocks.js:1104 +msgid "In the example shown above, sol is shifted up to sol#." msgstr "" -#: js/MeterBlocks.js:661 -#.TRANS: don't lock notes to master clock -msgid "no clock" +#: js/blocks/PitchBlocks.js:1110 +#.TRANS: adjust the amount of shift (up or down) of a pitch +msgid "semi-tone transpose" msgstr "" -#: js/MeterBlocks.js:700 -msgid "on weak beat do" +#: js/blocks/PitchBlocks.js:1143 +msgid "The Transpose by Ratio block will shift the pitches contained inside Note blocks up (or down) by a ratio" msgstr "" -#: js/MeterBlocks.js:705 -msgid "The On-weak-beat block lets you specify actions to take on weak (off) beats." +#: js/blocks/PitchBlocks.js:1149 +#.TRANS: adjust the amount of shift (up or down) of a pitch +msgid "transpose by ratio" msgstr "" -#: js/MeterBlocks.js:750 -msgid "on strong beat" +#: js/blocks/PitchBlocks.js:1232 +#.TRANS: down sixth means the note is five scale degrees below current note +msgid "down sixth" msgstr "" -#: js/MeterBlocks.js:758 -msgid "The On-strong-beat block lets you specify actions to take on specified beats." +#: js/blocks/PitchBlocks.js:1251 +#.TRANS: down third means the note is two scale degrees below current note +msgid "down third" msgstr "" -#: js/MeterBlocks.js:769 -msgid "beat" +#: js/blocks/PitchBlocks.js:1270 +#.TRANS: seventh means the note is the six scale degrees above current note +msgid "seventh" msgstr "" -#: js/MeterBlocks.js:813 -msgid "on every beat do" +#: js/blocks/PitchBlocks.js:1289 +#.TRANS: sixth means the note is the five scale degrees above current note +msgid "sixth" msgstr "" -#: js/MeterBlocks.js:821 -msgid "The On-every-beat block lets you specify actions to take on every beat." +#: js/blocks/PitchBlocks.js:1308 +#.TRANS: fifth means the note is the four scale degrees above current note +msgid "fifth" msgstr "" -#: js/MeterBlocks.js:874 -msgid "on every note do" +#: js/blocks/PitchBlocks.js:1328 +#.TRANS: fourth means the note is three scale degrees above current note +msgid "fourth" msgstr "" -#: js/MeterBlocks.js:882 -msgid "The On-every-note block lets you specify actions to take on every note." +#: js/blocks/PitchBlocks.js:1347 +#.TRANS: third means the note is two scale degrees above current note +msgid "third" msgstr "" -#: js/MeterBlocks.js:928 -#: js/MeterBlocks.js:999 -#.TRANS: sets tempo by defining a beat and beats per minute -msgid "master beats per minute" +#: js/blocks/PitchBlocks.js:1366 +#.TRANS: second means the note is one scale degree above current note +msgid "second" msgstr "" -#: js/MeterBlocks.js:952 -#: js/MeterBlocks.js:1078 -#: js/MeterBlocks.js:1135 -msgid "bpm" +#: js/blocks/PitchBlocks.js:1407 +msgid "The Scalar transposition block will shift the pitches contained inside Note blocks up (or down) the scale." msgstr "" -#: js/MeterBlocks.js:952 -#: js/MeterBlocks.js:1078 -#: js/MeterBlocks.js:1135 -msgid "beat value" +#: js/blocks/PitchBlocks.js:1409 +msgid "In the example shown above, sol is shifted up to la." msgstr "" -#: js/MeterBlocks.js:1024 -#: js/MeterBlocks.js:1167 -#: js/MeterBlocks.js:1241 -msgid "Beats per minute must be > 30." +#: js/blocks/PitchBlocks.js:1416 +#.TRANS: adjust the amount of shift (up or down) of a pitch by musical scale (scalar) steps +msgid "scalar transpose" msgstr "" -#: js/MeterBlocks.js:1027 -#: js/MeterBlocks.js:1170 -#: js/MeterBlocks.js:1244 -msgid "Maximum beats per minute is 1000." +#: js/blocks/PitchBlocks.js:1451 +msgid "The Accidental block is used to create sharps and flats" msgstr "" -#: js/MeterBlocks.js:1068 -msgid "The Beats per minute block sets the number of 1/4 notes per minute." +#: js/blocks/PitchBlocks.js:1458 +#.TRANS: An accidental is a modification to a pitch, e.g., sharp or flat. +msgid "accidental override" msgstr "" -#: js/MeterBlocks.js:1279 -#.TRANS: anacrusis -msgid "pickup" +#: js/blocks/PitchBlocks.js:1581 +msgid "The Hertz block (in combination with a Number block) will play a sound at the specified frequency." msgstr "" -#: js/MeterBlocks.js:1367 -msgid "number of beats" +#: js/blocks/PitchBlocks.js:1671 +msgid "The Pitch Number block will play a pitch associated by its number, e.g. 0 for C and 7 for G." msgstr "" -#: js/DictBlocks.js:77 -msgid "show dictionary" +#: js/blocks/PitchBlocks.js:1703 +#: js/blocks/PitchBlocks.js:1745 +#.TRANS: a numeric mapping of the notes in an octave based on the musical mode +#.TRANS: a numeric mapping of the notes in an octave based on the musical mode +msgid "nth modal pitch" msgstr "" -#: js/DictBlocks.js:129 -msgid "The Dictionary block returns a dictionary." +#: js/blocks/PitchBlocks.js:1706 +msgid "n^th Modal Pitch takes the pattern of pitches in semitones for a mode and makes each point a degree of the mode," msgstr "" -#: js/DictBlocks.js:197 -#: js/DictBlocks.js:339 -msgid "The Get-dict block returns a value in the dictionary for a specified key." +#: js/blocks/PitchBlocks.js:1708 +msgid "starting from 1 and regardless of tonal framework (i.e. not always 8 notes in the octave)" msgstr "" -#: js/DictBlocks.js:212 -#: js/DictBlocks.js:354 -#.TRANS: retrieve a value from the dictionary with a given key -msgid "get value" +#: js/blocks/PitchBlocks.js:1749 +msgid "N^th Modal Pitch takes a number as an input as the n^th degree for the given mode. 0 is the first position, 1 is the second, -1 is the note before the first etc." msgstr "" -#: js/DictBlocks.js:215 -#: js/DictBlocks.js:216 -#: js/DictBlocks.js:289 -#: js/DictBlocks.js:290 -#: js/DictBlocks.js:357 -#: js/DictBlocks.js:430 -#: js/DictBlocks.js:431 -msgid "key2" +#: js/blocks/PitchBlocks.js:1751 +msgid "The pitches change according to the mode specified without any need for respellings." msgstr "" -#: js/DictBlocks.js:271 -#: js/DictBlocks.js:411 -msgid "The Set-dict block sets a value in the dictionary for a specified key." +#: js/blocks/PitchBlocks.js:1790 +msgid "Scale Degree is a common convention in music. Scale Degree offers seven possible positions in the scale (1-7) and can be modified via accidentals." msgstr "" -#: js/DictBlocks.js:286 -#: js/DictBlocks.js:427 -#.TRANS: set a value in the dictionary for a given key -msgid "set value" +#: js/blocks/PitchBlocks.js:1792 +msgid "Scale Degree 1 is always the first pitch in a given scale, regardless of octave." msgstr "" -#: js/ExtrasBlocks.js:33 -msgid "fraction" +#: js/blocks/PitchBlocks.js:1814 +#.TRANS: step some number of notes in current musical scale +msgid "scalar step" msgstr "" -#: js/ExtrasBlocks.js:36 -msgid "Convert a float to a fraction" +#: js/blocks/PitchBlocks.js:1819 +msgid "The Scalar Step block (in combination with a Number block) will play the next pitch in a scale," msgstr "" -#: js/ExtrasBlocks.js:93 -msgid "save as ABC" +#: js/blocks/PitchBlocks.js:1821 +msgid "eg if the last note played was sol, Scalar Step 1 will play la." msgstr "" -#: js/ExtrasBlocks.js:96 -#: js/ExtrasBlocks.js:132 -#: js/ExtrasBlocks.js:168 -msgid "title" +#: js/blocks/PitchBlocks.js:1857 +msgid "The Pitch block specifies the pitch name and octave of a note that together determine the frequency of the note." msgstr "" -#: js/ExtrasBlocks.js:129 -msgid "save as Lilypond" +#: js/blocks/ProgramBlocks.js:33 +msgid "The Load-heap-from-app block loads the heap from a web page." msgstr "" -#: js/ExtrasBlocks.js:165 -msgid "save as SVG" +#: js/blocks/ProgramBlocks.js:44 +#.TRANS: load the heap contents from a URL +msgid "load heap from App" msgstr "" -#: js/ExtrasBlocks.js:216 -msgid "no background" +#: js/blocks/ProgramBlocks.js:95 +msgid "Error parsing JSON data:" msgstr "" -#: js/ExtrasBlocks.js:219 -msgid "The No background block eliminates the background from the saved SVG output." +#: js/blocks/ProgramBlocks.js:100 +msgid "404: Page not found" msgstr "" -#: js/ExtrasBlocks.js:247 -msgid "show blocks" +#: js/blocks/ProgramBlocks.js:133 +msgid "The Save-heap-to-app block saves the heap to a web page." msgstr "" -#: js/ExtrasBlocks.js:249 -msgid "The Show blocks block shows the blocks." +#: js/blocks/ProgramBlocks.js:144 +#.TRANS: save the heap contents to a URL +msgid "save heap to App" msgstr "" -#: js/ExtrasBlocks.js:274 -msgid "hide blocks" +#: js/blocks/ProgramBlocks.js:189 +msgid "Cannot find a valid heap for" msgstr "" -#: js/ExtrasBlocks.js:276 -msgid "The Hide blocks block hides the blocks." +#: js/blocks/ProgramBlocks.js:206 +msgid "The Load-heap block loads the heap from a file." msgstr "" -#: js/ExtrasBlocks.js:305 -#: js/ExtrasBlocks.js:335 -msgid "The Space block is used to add space between blocks." +#: js/blocks/ProgramBlocks.js:217 +#.TRANS: load the heap from a file +msgid "load heap" msgstr "" -#: js/ExtrasBlocks.js:373 -msgid "wait" +#: js/blocks/ProgramBlocks.js:270 +msgid "The file you selected does not contain a valid heap." msgstr "" -#: js/ExtrasBlocks.js:376 -msgid "The Wait block pauses the program for a specified number of seconds." +#: js/blocks/ProgramBlocks.js:275 +msgid "The loadHeap block needs a loadFile block." msgstr "" -#: js/ExtrasBlocks.js:430 -#: plugins/facebook.rtp:30 -msgid "comment" +#: js/blocks/ProgramBlocks.js:291 +msgid "The Set-heap block loads the heap." msgstr "" -#: js/ExtrasBlocks.js:466 -msgid "print" +#: js/blocks/ProgramBlocks.js:340 +msgid "The block you selected does not contain a valid heap." msgstr "" -#: js/ExtrasBlocks.js:473 -msgid "The Print block displays text at the top of the screen." +#: js/blocks/ProgramBlocks.js:343 +msgid "The Set heap block needs a heap." msgstr "" -#: js/ExtrasBlocks.js:579 -msgid "display grid" +#: js/blocks/ProgramBlocks.js:360 +msgid "The Load-dictionary block loads a dictionary from a file." msgstr "" -#: js/ExtrasBlocks.js:584 -msgid "The Display Grid Block changes the grid type" +#: js/blocks/ProgramBlocks.js:372 +#.TRANS: load a dictionary from a file +msgid "load dictionary" msgstr "" -#: js/ExtrasBlocks.js:686 -#: js/ExtrasBlocks.js:705 -#: js/ExtrasBlocks.js:728 -#: js/ExtrasBlocks.js:751 -#: js/ExtrasBlocks.js:769 -#: js/ExtrasBlocks.js:788 -#: js/ExtrasBlocks.js:807 -#: js/ExtrasBlocks.js:826 -msgid "unknown" +#: js/blocks/ProgramBlocks.js:390 +#: js/blocks/ProgramBlocks.js:658 +#: js/blocks/ToneBlocks.js:1025 +msgid "file" msgstr "" -#: js/SensorsBlocks.js:36 -msgid "The Input block prompts for keyboard input." +#: js/blocks/ProgramBlocks.js:444 +msgid "The file you selected does not contain a valid dictionary." msgstr "" -#: js/SensorsBlocks.js:46 -msgid "input" +#: js/blocks/ProgramBlocks.js:449 +msgid "The load dictionary block needs a load file block." msgstr "" -#: js/SensorsBlocks.js:64 -msgid "Input a value" +#: js/blocks/ProgramBlocks.js:466 +msgid "The Set-dictionary block loads a dictionary." msgstr "" -#: js/SensorsBlocks.js:126 -msgid "input value" +#: js/blocks/ProgramBlocks.js:477 +#.TRANS: load a dictionary from a JSON +msgid "set dictionary" msgstr "" -#: js/SensorsBlocks.js:131 -msgid "The Input-value block stores the input." +#: js/blocks/ProgramBlocks.js:546 +msgid "The block you selected does not contain a valid dictionary." msgstr "" -#: js/SensorsBlocks.js:238 -msgid "loudness" +#: js/blocks/ProgramBlocks.js:550 +msgid "The set dictionary block needs a dictionary." msgstr "" -#: js/SensorsBlocks.js:245 -msgid "The Loudness block returns the volume detected by the microphone." +#: js/blocks/ProgramBlocks.js:567 +msgid "The Save-heap block saves the heap to a file." msgstr "" -#: js/SensorsBlocks.js:300 -msgid "click" +#: js/blocks/ProgramBlocks.js:578 +#.TRANS: save the heap to a file +msgid "save heap" msgstr "" -#: js/SensorsBlocks.js:306 -msgid "The Click block triggers an event if a mouse has been clicked." +#: js/blocks/ProgramBlocks.js:629 +msgid "The Save-dictionary block saves a dictionary to a file." msgstr "" -#: js/SensorsBlocks.js:313 -msgid "The Click block triggers an event if a turtle has been clicked." +#: js/blocks/ProgramBlocks.js:640 +#.TRANS: save a dictionary to a file +msgid "save dictionary" msgstr "" -#: js/SensorsBlocks.js:342 -msgid "cursor over" +#: js/blocks/ProgramBlocks.js:720 +msgid "The Open palette block opens a palette." msgstr "" -#: js/SensorsBlocks.js:387 -msgid "cursor out" +#: js/blocks/ProgramBlocks.js:727 +msgid "open palette" msgstr "" -#: js/SensorsBlocks.js:433 -msgid "cursor button down" +#: js/blocks/ProgramBlocks.js:785 +msgid "The Delete block block removes a block." msgstr "" -#: js/SensorsBlocks.js:477 -msgid "cursor button up" +#: js/blocks/ProgramBlocks.js:797 +#.TRANS: Move this block to the trash. +msgid "delete block" msgstr "" -#: js/SensorsBlocks.js:638 -msgid "The Get red block returns the red component of the pixel under the mouse." +#: js/blocks/ProgramBlocks.js:861 +msgid "The Move block block moves a block." msgstr "" -#: js/SensorsBlocks.js:644 -msgid "The Get red block returns the red component of the pixel under the turtle." +#: js/blocks/ProgramBlocks.js:869 +#.TRANS: Move the position of a block on the screen. +msgid "move block" msgstr "" -#: js/SensorsBlocks.js:685 -#: plugins/rodi.rtp:216 -msgid "pixel color" +#: js/blocks/ProgramBlocks.js:881 +#: js/blocks/ProgramBlocks.js:1048 +msgid "block number" msgstr "" -#: js/SensorsBlocks.js:690 -msgid "The Get pixel block returns the color of the pixel under the mouse." +#: js/blocks/ProgramBlocks.js:935 +#.TRANS: Run program beginning at this block. +msgid "run block" msgstr "" -#: js/SensorsBlocks.js:696 -msgid "The Get pixel block returns the color of the pixel under the turtle." +#: js/blocks/ProgramBlocks.js:1025 +msgid "The Dock block block connections two blocks." msgstr "" -#: js/SensorsBlocks.js:758 -msgid "time" +#: js/blocks/ProgramBlocks.js:1036 +#.TRANS: We can connect a block to another block. +msgid "connect blocks" msgstr "" -#: js/SensorsBlocks.js:804 -msgid "cursor y" +#: js/blocks/ProgramBlocks.js:1048 +msgid "target block" msgstr "" -#: js/SensorsBlocks.js:809 -msgid "The Cursor Y block returns the vertical position of the mouse." +#: js/blocks/ProgramBlocks.js:1048 +msgid "connection number" msgstr "" -#: js/SensorsBlocks.js:845 -msgid "cursor x" +#: js/blocks/ProgramBlocks.js:1140 +msgid "The Make block block creates a new block." msgstr "" -#: js/SensorsBlocks.js:850 -msgid "The Cursor X block returns the horizontal position of the mouse." +#: js/blocks/ProgramBlocks.js:1152 +#.TRANS: Create a new block +msgid "make block" msgstr "" -#: js/SensorsBlocks.js:886 -msgid "mouse button" +#: js/blocks/ProgramBlocks.js:1285 +msgid "Cannot find block" msgstr "" -#: js/SensorsBlocks.js:888 -msgid "The Mouse-button block returns True if the mouse button is pressed." +#: js/blocks/ProgramBlocks.js:1304 +#: js/blocks/ProgramBlocks.js:1313 +msgid "Warning: block argument type mismatch" msgstr "" -#: js/SensorsBlocks.js:934 -msgid "to ASCII" +#: js/blocks/ProgramBlocks.js:1347 +msgid "The Open project block is used to open a project from a web page." msgstr "" -#: js/SensorsBlocks.js:938 -msgid "The To ASCII block converts numbers to letters." +#: js/blocks/ProgramBlocks.js:1357 +msgid "open project" msgstr "" -#: js/SensorsBlocks.js:1005 -msgid "The Keyboard block returns computer keyboard input." +#: js/blocks/ProgramBlocks.js:1410 +msgid "Please enter a valid URL." msgstr "" -#: js/IntervalsActions.js:216 -msgid "Adding missing pitch number 0." +#: js/blocks/ToneBlocks.js:34 +msgid "oscillator" msgstr "" -#: js/IntervalsActions.js:224 -msgid "Ignoring pitch numbers less than zero or greater than eleven." +#: js/blocks/ToneBlocks.js:42 +#: js/blocks/WidgetBlocks.js:179 +#: js/widgets/timbre.js:1558 +#: js/widgets/timbre.js:1808 +#.TRANS: there are different types (sine, triangle, square...) of oscillators. +#.TRANS: type of filter, e.g., lowpass, highpass, etc. +msgid "type" msgstr "" -#: js/IntervalsActions.js:230 -msgid "Ignoring duplicate pitch numbers." +#: js/blocks/ToneBlocks.js:44 +#: js/widgets/timbre.js:1562 +#.TRANS: Partials refers to the number of sine waves combined into the sound. +msgid "partials" msgstr "" -#: js/PitchActions.js:88 -msgid "The Scalar Step Block must be used inside of a Note Block." +#: js/blocks/ToneBlocks.js:76 +msgid "You are adding multiple oscillator blocks." msgstr "" -#: js/PitchActions.js:107 -msgid "The Scalar Step Block must be preceded by a Pitch Block." +#: js/blocks/ToneBlocks.js:144 +#: js/widgets/timbre.js:1225 +#.TRANS: a duo synthesizer combines a synth with a sequencer +msgid "duo synth" msgstr "" -#: js/DrumActions.js:231 -msgid "Noise Block: Did you mean to use a Note block?" +#: js/blocks/ToneBlocks.js:149 +msgid "The Duo synth block is a duo-frequency modulator used to define a timbre." msgstr "" -#: js/MeterActions.js:101 -#: js/MeterActions.js:139 -msgid "beats per minute must be greater than" +#: js/blocks/ToneBlocks.js:157 +#: js/widgets/timbre.js:1476 +msgid "vibrato rate" msgstr "" -#: js/MeterActions.js:111 -#: js/MeterActions.js:149 -msgid "maximum" +#: js/blocks/ToneBlocks.js:157 +msgid "vibrato intensity" msgstr "" -#: js/MeterActions.js:117 -#: js/MeterActions.js:155 -msgid "beats per minute is" +#: js/blocks/ToneBlocks.js:185 +#: js/widgets/timbre.js:1221 +#.TRANS: AM (amplitude modulation) synthesizer +msgid "AM synth" msgstr "" -#: js/ToneActions.js:134 -msgid "Vibrato intensity must be between 1 and 100." +#: js/blocks/ToneBlocks.js:189 +msgid "The AM synth block is an amplitude modulator used to define a timbre." msgstr "" -#: js/ToneActions.js:139 -msgid "Vibrato rate must be greater than 0." +#: js/blocks/ToneBlocks.js:224 +#: js/widgets/timbre.js:1223 +#.TRANS: FM (frequency modulation) synthesizer +msgid "FM synth" msgstr "" -#: js/ToneActions.js:192 -#: js/ToneActions.js:265 -#.TRANS: Depth is the intesity of the tremolo or chorus effect. -msgid "Depth is out of range." +#: js/blocks/ToneBlocks.js:228 +msgid "The FM synth block is a frequency modulator used to define a timbre." msgstr "" -#: js/ToneActions.js:301 -msgid "Distortion must be from 0 to 100." +#: js/blocks/ToneBlocks.js:262 +msgid "partial" msgstr "" -#: js/ToneActions.js:332 -#.TRANS: partials components in a harmonic series -msgid "Partial must be greater than or equal to 0." +#: js/blocks/ToneBlocks.js:265 +msgid "The Partial block is used to specify a weight for a specific partial harmonic." msgstr "" -#: js/ToneActions.js:378 -#: js/ToneActions.js:417 -#: js/ToneActions.js:456 -#: js/timbre.js:782 -msgid "Unable to use synth due to existing oscillator" +#: js/blocks/ToneBlocks.js:284 +#.TRANS: partials are weighted components in a harmonic series +msgid "Partial weight must be between 0 and 1." msgstr "" -#: js/ToneActions.js:388 -#: js/ToneActions.js:427 -msgid "The input cannot be negative." +#: js/blocks/ToneBlocks.js:297 +#.TRANS: partials are weighted components in a harmonic series +msgid "Partial block should be used inside of a Weighted-partials block." msgstr "" -#: js/DictActions.js:75 -#: js/DictActions.js:153 -#: js/DictActions.js:188 -msgid "font" +#: js/blocks/ToneBlocks.js:325 +#.TRANS: partials are weighted components in a harmonic series +msgid "weighted partials" msgstr "" -#: js/musicutils.js:363 -#: js/musicutils.js:471 -#: js/pitchdrummatrix.js:151 -#: js/musickeyboard.js:2563 -msgid "rest" +#: js/blocks/ToneBlocks.js:383 +msgid "The Harmonic block will add harmonics to the contained notes." msgstr "" -#: js/musicutils.js:565 -#.TRANS: ordinal number. Please keep exactly one space between each number. -msgid "1st 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th" +#: js/blocks/ToneBlocks.js:390 +#.TRANS: A harmonic is an overtone. +msgid "harmonic" msgstr "" -#: js/musicutils.js:629 -#: js/musicutils.js:812 -#: js/musicutils.js:911 -#.TRANS: augmented is a music term related to intervals -msgid "augmented" +#: js/blocks/ToneBlocks.js:431 +msgid "The Distortion block adds distortion to the pitch." msgstr "" -#: js/musicutils.js:631 -#: js/musicutils.js:813 -#: js/musicutils.js:910 -#.TRANS: diminished is a music term related to intervals and mode -msgid "diminished" +#: js/blocks/ToneBlocks.js:438 +#: js/widgets/timbre.js:2100 +#.TRANS: distortion is an alteration in the sound +msgid "distortion" msgstr "" -#: js/musicutils.js:639 -#.TRANS: twelve semi-tone scale for music -msgid "chromatic" +#: js/blocks/ToneBlocks.js:487 +msgid "The Tremolo block adds a wavering effect." msgstr "" -#: js/musicutils.js:640 -msgid "algerian" +#: js/blocks/ToneBlocks.js:495 +#: js/widgets/timbre.js:2092 +#.TRANS: a wavering effect in a musical tone +msgid "tremolo" msgstr "" -#: js/musicutils.js:641 -msgid "spanish" +#: js/blocks/ToneBlocks.js:500 +#: js/blocks/ToneBlocks.js:569 +#: js/blocks/ToneBlocks.js:630 +#: js/blocks/ToneBlocks.js:689 +#: js/widgets/timbre.js:2134 +#: js/widgets/timbre.js:2222 +#: js/widgets/timbre.js:2317 +#: js/widgets/timbre.js:2419 +#.TRANS: rate at which tremolo wavers +msgid "rate" msgstr "" -#: js/musicutils.js:643 -#.TRANS: modal scale in music -msgid "octatonic" +#: js/blocks/ToneBlocks.js:502 +#: js/blocks/ToneBlocks.js:630 +#: js/widgets/timbre.js:2137 +#: js/widgets/timbre.js:2328 +#.TRANS: amplitude of tremolo waver +msgid "depth" msgstr "" -#: js/musicutils.js:645 -#.TRANS: harmonic major scale in music -msgid "harmonic major" +#: js/blocks/ToneBlocks.js:559 +msgid "The Phaser block adds a sweeping sound." msgstr "" -#: js/musicutils.js:647 -#.TRANS: natural minor scales in music -msgid "natural minor" +#: js/blocks/ToneBlocks.js:566 +#: js/widgets/timbre.js:2098 +#.TRANS: alter the phase of the sound +msgid "phaser" msgstr "" -#: js/musicutils.js:649 -#.TRANS: harmonic minor scale in music -msgid "harmonic minor" +#: js/blocks/ToneBlocks.js:569 +#: js/turtleactions/IntervalsActions.js:114 +#: js/widgets/timbre.js:2422 +msgid "octaves" msgstr "" -#: js/musicutils.js:651 -#.TRANS: melodic minor scale in music -msgid "melodic minor" +#: js/blocks/ToneBlocks.js:569 +#: js/widgets/timbre.js:2425 +msgid "base frequency" msgstr "" -#: js/musicutils.js:655 -#.TRANS: modal scale for music -msgid "dorian" +#: js/blocks/ToneBlocks.js:619 +msgid "The Chorus block adds a chorus effect." msgstr "" -#: js/musicutils.js:657 -#.TRANS: modal scale for music -msgid "phrygian" +#: js/blocks/ToneBlocks.js:627 +#: js/widgets/timbre.js:2096 +#.TRANS: musical effect to simulate a choral sound +msgid "chorus" msgstr "" -#: js/musicutils.js:659 -#.TRANS: modal scale for music -msgid "lydian" +#: js/blocks/ToneBlocks.js:630 +msgid "delay" msgstr "" -#: js/musicutils.js:661 -#.TRANS: modal scale for music -msgid "mixolydian" +#: js/blocks/ToneBlocks.js:678 +msgid "The Vibrato block adds a rapid, slight variation in pitch." msgstr "" -#: js/musicutils.js:665 -#.TRANS: modal scale for music -msgid "locrian" +#: js/blocks/ToneBlocks.js:686 +#: js/widgets/timbre.js:2094 +#.TRANS: a rapid, slight variation in pitch +msgid "vibrato" msgstr "" -#: js/musicutils.js:667 -#.TRANS: minor jazz scale for music -msgid "jazz minor" +#: js/blocks/ToneBlocks.js:689 +#: js/widgets/timbre.js:2221 +msgid "intensity" msgstr "" -#: js/musicutils.js:669 -#.TRANS: bebop scale for music -msgid "bebop" +#: js/blocks/ToneBlocks.js:733 +#.TRANS: select synthesizer +msgid "set synth" msgstr "" -#: js/musicutils.js:670 -msgid "arabic" +#: js/blocks/ToneBlocks.js:804 +msgid "synth name" msgstr "" -#: js/musicutils.js:671 -msgid "byzantine" +#: js/blocks/ToneBlocks.js:842 +msgid "set default instrument" msgstr "" -#: js/musicutils.js:673 -#.TRANS: musical scale for music by Verdi -msgid "enigmatic" +#: js/blocks/ToneBlocks.js:895 +#: js/blocks/ToneBlocks.js:943 +#.TRANS: set the characteristics of a custom instrument +msgid "set instrument" msgstr "" -#: js/musicutils.js:674 -msgid "ethiopian" +#: js/blocks/ToneBlocks.js:898 +#: js/blocks/ToneBlocks.js:926 +#: js/blocks/ToneBlocks.js:932 +msgid "The Set instrument block selects a voice for the synthesizer," msgstr "" -#: js/musicutils.js:676 -#.TRANS: Ethiopic scale for music -msgid "geez" +#: js/blocks/ToneBlocks.js:900 +#: js/blocks/ToneBlocks.js:934 +msgid "eg guitar piano violin or cello." msgstr "" -#: js/musicutils.js:677 -msgid "hindu" +#: js/blocks/ToneBlocks.js:1015 +msgid "Import a sound file to use as an instrument and set its pitch center." msgstr "" -#: js/musicutils.js:678 -msgid "hungarian" +#: js/blocks/ToneBlocks.js:1110 +msgid "Upload a sound file to connect with the sample block." msgstr "" -#: js/musicutils.js:680 -#.TRANS: minor Romanian scale for music -msgid "romanian minor" +#: js/blocks/VolumeBlocks.js:35 +msgid "synth volume" msgstr "" -#: js/musicutils.js:681 -msgid "spanish gypsy" +#: js/blocks/VolumeBlocks.js:39 +msgid "The Synth volume block returns the current volume of the current synthesizer." msgstr "" -#: js/musicutils.js:683 -#.TRANS: musical scale for Mid-Eastern music -msgid "maqam" +#: js/blocks/VolumeBlocks.js:105 +msgid "master volume" msgstr "" -#: js/musicutils.js:685 -#.TRANS: minor blues scale for music -msgid "minor blues" +#: js/blocks/VolumeBlocks.js:109 +msgid "The Master volume block returns the master volume." msgstr "" -#: js/musicutils.js:687 -#.TRANS: major blues scale for music -msgid "major blues" +#: js/blocks/VolumeBlocks.js:355 +#: js/blocks/VolumeBlocks.js:524 +msgid "set synth volume" msgstr "" -#: js/musicutils.js:688 -msgid "whole tone" +#: js/blocks/VolumeBlocks.js:362 +#: js/blocks/VolumeBlocks.js:545 +msgid "synth" msgstr "" -#: js/musicutils.js:690 -#.TRANS: pentatonic is a general term that means "five note scale". This scale is typically known as "minor pentatonic" -msgid "minor pentatonic" +#: js/blocks/VolumeBlocks.js:403 +#: js/blocks/VolumeBlocks.js:577 +#: js/blocks/VolumeBlocks.js:740 +#: js/turtleactions/VolumeActions.js:173 +msgid "Setting volume to 0." msgstr "" -#: js/musicutils.js:692 -#.TRANS: pentatonic is a general term that means "five note scale". This scale is typically known as "major pentatonic" -msgid "major pentatonic" +#: js/blocks/VolumeBlocks.js:440 +msgid "Synth not found" msgstr "" -#: js/musicutils.js:693 -msgid "chinese" +#: js/blocks/VolumeBlocks.js:494 +msgid "set drum volume" msgstr "" -#: js/musicutils.js:694 -msgid "egyptian" +#: js/blocks/VolumeBlocks.js:530 +msgid "The Set synth volume block will change the volume of a particular synth," msgstr "" -#: js/musicutils.js:696 -#.TRANS: https://en.wikipedia.org/wiki/Hirajoshi_scale NOTE: There are three different versions of this scale -msgid "hirajoshi" +#: js/blocks/VolumeBlocks.js:532 +msgid "eg guitar violin snare drum etc." msgstr "" -#: js/musicutils.js:697 -msgid "Japan" +#: js/blocks/VolumeBlocks.js:534 +msgid "The default volume is 50." msgstr "" -#: js/musicutils.js:699 -#.TRANS: https://en.wikipedia.org/wiki/In_scale and https://en.wikipedia.org/wiki/Sakura_Sakura -msgid "in" +#: js/blocks/VolumeBlocks.js:536 +msgid "The range is 0 for silence to 100 for full volume." msgstr "" -#: js/musicutils.js:701 -#.TRANS: https://en.wikipedia.org/wiki/Miny%C5%8D_scale -msgid "minyo" +#: js/blocks/VolumeBlocks.js:597 +msgid "set panning" msgstr "" -#: js/musicutils.js:703 -#.TRANS: Italian mathematician -msgid "fibonacci" +#: js/blocks/VolumeBlocks.js:603 +msgid "The Set Panning block sets the panning for all synthesizers." msgstr "" -#: js/musicutils.js:708 -#: js/musicutils.js:1106 -#.TRANS: lowpass filter -msgid "lowpass" +#: js/blocks/VolumeBlocks.js:625 +msgid "Warning: Sound is coming out from only the left or right side." msgstr "" -#: js/musicutils.js:710 -#: js/musicutils.js:1107 -#.TRANS: bandpass filter -msgid "bandpass" +#: js/blocks/VolumeBlocks.js:647 +#: js/blocks/VolumeBlocks.js:695 +msgid "set master volume" msgstr "" -#: js/musicutils.js:712 -#: js/musicutils.js:1108 -#.TRANS: high-shelf filter -msgid "highshelf" +#: js/blocks/VolumeBlocks.js:653 +msgid "The Set master volume block sets the volume for all synthesizers." msgstr "" -#: js/musicutils.js:714 -#: js/musicutils.js:1109 -#.TRANS: low-shelf filter -msgid "lowshelf" +#: js/blocks/VolumeBlocks.js:784 +msgid "The Set relative volume block changes the volume of the contained notes." msgstr "" -#: js/musicutils.js:716 -#: js/musicutils.js:1110 -#.TRANS: notch-shelf filter -msgid "notch" +#: js/blocks/VolumeBlocks.js:791 +msgid "set relative volume" msgstr "" -#: js/musicutils.js:718 -#: js/musicutils.js:1111 -#.TRANS: all-pass filter -msgid "allpass" +#: js/blocks/VolumeBlocks.js:857 +msgid "decrescendo" msgstr "" -#: js/musicutils.js:720 -#: js/musicutils.js:1112 -#.TRANS: peaking filter -msgid "peaking" +#: js/blocks/VolumeBlocks.js:921 +msgid "crescendo" msgstr "" -#: js/musicutils.js:731 -#: js/synthutils.js:58 -#.TRANS: musical instrument -msgid "violin" +#: js/blocks/WidgetBlocks.js:81 +#.TRANS: sound envelope (ADSR) +msgid "envelope" msgstr "" -#: js/musicutils.js:732 -#: js/synthutils.js:60 -#.TRANS: viola musical instrument -msgid "viola" +#: js/blocks/WidgetBlocks.js:89 +#.TRANS: Attack time is the time taken for initial run-up of level from nil to peak, beginning when the key is first pressed. +msgid "attack" msgstr "" -#: js/musicutils.js:733 -#: js/synthutils.js:98 -#.TRANS: xylophone musical instrument -msgid "xylophone" +#: js/blocks/WidgetBlocks.js:91 +#.TRANS: Decay time is the time taken for the subsequent run down from the attack level to the designated sustain level. +msgid "decay" msgstr "" -#: js/musicutils.js:734 -#: js/synthutils.js:120 -#.TRANS: vibraphone musical instrument -msgid "vibraphone" +#: js/blocks/WidgetBlocks.js:93 +#.TRANS: Sustain level is the level during the main sequence of the sound's duration, until the key is released. +msgid "sustain" msgstr "" -#: js/musicutils.js:735 -#: js/synthutils.js:62 -#.TRANS: musical instrument -msgid "cello" +#: js/blocks/WidgetBlocks.js:95 +#.TRANS: Release time is the time taken for the level to decay from the sustain level to zero after the key is released. +msgid "release" msgstr "" -#: js/musicutils.js:737 -#: js/synthutils.js:66 -#.TRANS: viola musical instrument -msgid "double bass" +#: js/blocks/WidgetBlocks.js:113 +msgid "Attack value should be from 0 to 100." msgstr "" -#: js/musicutils.js:738 -#: js/synthutils.js:68 -#: js/rhythmruler.js:2119 -#.TRANS: musical instrument -msgid "guitar" +#: js/blocks/WidgetBlocks.js:116 +msgid "Decay value should be from 0 to 100." msgstr "" -#: js/musicutils.js:739 -#: js/synthutils.js:70 -#.TRANS: musical instrument -msgid "acoustic guitar" +#: js/blocks/WidgetBlocks.js:119 +msgid "Sustain value should be from 0 to 100." msgstr "" -#: js/musicutils.js:740 -#: js/synthutils.js:72 -#.TRANS: musical instrument -msgid "flute" +#: js/blocks/WidgetBlocks.js:122 +msgid "Release value should be from 0-100." msgstr "" -#: js/musicutils.js:741 -#: js/synthutils.js:74 -#.TRANS: musical instrument -msgid "clarinet" +#: js/blocks/WidgetBlocks.js:140 +msgid "You are adding multiple envelope blocks." msgstr "" -#: js/musicutils.js:742 -#: js/synthutils.js:76 -#.TRANS: musical instrument -msgid "saxophone" +#: js/blocks/WidgetBlocks.js:171 +#.TRANS: a filter removes some unwanted components from a signal +msgid "filter" msgstr "" -#: js/musicutils.js:743 -#: js/synthutils.js:78 -#.TRANS: musical instrument -msgid "tuba" +#: js/blocks/WidgetBlocks.js:181 +#: js/widgets/timbre.js:1818 +#.TRANS: rolloff is the steepness of a change in frequency. +msgid "rolloff" msgstr "" -#: js/musicutils.js:744 -#: js/synthutils.js:80 -#.TRANS: musical instrument -msgid "trumpet" +#: js/blocks/WidgetBlocks.js:213 +#.TRANS: rolloff is the steepness of a change in frequency. +msgid "Rolloff value should be either -12, -24, -48, or -96 decibels/octave." msgstr "" -#: js/musicutils.js:745 -#: js/synthutils.js:82 -#.TRANS: musical instrument -msgid "oboe" +#: js/blocks/WidgetBlocks.js:252 +msgid "The Temperament tool is used to define custom tuning." msgstr "" -#: js/musicutils.js:746 -#: js/synthutils.js:84 -#.TRANS: musical instrument -msgid "trombone" +#: js/blocks/WidgetBlocks.js:332 +#: js/blocks/WidgetBlocks.js:1573 +#: js/widgets/sampler.js:547 +msgid "Upload a sample and adjust its pitch center." msgstr "" -#: js/musicutils.js:747 -#: js/synthutils.js:100 -#.TRANS: polytone synthesizer -msgid "electronic synth" +#: js/blocks/WidgetBlocks.js:339 +#.TRANS: the speed at music is should be played. +msgid "sampler" msgstr "" -#: js/musicutils.js:748 -#: js/synthutils.js:102 -#.TRANS: simple monotone synthesizer -msgid "simple 1" +#: js/blocks/WidgetBlocks.js:517 +msgid "The Meter block opens a tool to select strong beats for the meter." msgstr "" -#: js/musicutils.js:749 -msgid "simple 2" +#: js/blocks/WidgetBlocks.js:573 +msgid "The oscilloscope block opens a tool to visualize waveforms." msgstr "" -#: js/musicutils.js:750 -msgid "simple 3" +#: js/blocks/WidgetBlocks.js:578 +msgid "oscilloscope" msgstr "" -#: js/musicutils.js:751 -msgid "simple 4" +#: js/blocks/WidgetBlocks.js:645 +msgid "The Custom mode block opens a tool to explore musical mode (the spacing of the notes in a scale)." msgstr "" -#: js/musicutils.js:753 -#: js/synthutils.js:49 -#.TRANS: brown noise synthesizer -msgid "brown noise" +#: js/blocks/WidgetBlocks.js:651 +#.TRANS: musical mode is the pattern of half-steps in an octave, e.g., Major or Minor modes +msgid "custom mode" msgstr "" -#: js/musicutils.js:754 -#: js/synthutils.js:51 -#.TRANS: pink noise synthesizer -msgid "pink noise" +#: js/blocks/WidgetBlocks.js:700 +msgid "The Tempo block opens a metronome to visualize the beat." msgstr "" -#: js/musicutils.js:756 -#: js/synthutils.js:127 -#: js/rhythmruler.js:1670 -#: js/rhythmruler.js:1928 -#.TRANS: musical instrument -msgid "snare drum" +#: js/blocks/WidgetBlocks.js:762 +msgid "The Arpeggio Widget is used to compose chord sequences." msgstr "" -#: js/musicutils.js:757 -#: js/synthutils.js:129 -#.TRANS: musical instrument -msgid "kick drum" +#: js/blocks/WidgetBlocks.js:837 +msgid "The Pitch drum matrix is used to map pitches to drum sounds." msgstr "" -#: js/musicutils.js:758 -#: js/synthutils.js:131 -#.TRANS: musical instrument -msgid "tom tom" +#: js/blocks/WidgetBlocks.js:842 +#.TRANS: makes a mapping between pitches and drum sounds +msgid "pitch-drum mapper" msgstr "" -#: js/musicutils.js:759 -#: js/synthutils.js:133 -#.TRANS: musical instrument -msgid "floor tom" +#: js/blocks/WidgetBlocks.js:891 +msgid "You must have at least one pitch block and one drum block in the matrix." msgstr "" -#: js/musicutils.js:760 -#: js/synthutils.js:135 -#.TRANS: musical instrument -msgid "bass drum" +#: js/blocks/WidgetBlocks.js:920 +msgid "The Pitch slider tool to is used to generate pitches at selected frequencies." msgstr "" -#: js/musicutils.js:761 -#: js/synthutils.js:137 -#.TRANS: a drum made from an inverted cup -msgid "cup drum" +#: js/blocks/WidgetBlocks.js:925 +#.TRANS: widget to generate pitches using a slider +msgid "pitch slider" msgstr "" -#: js/musicutils.js:762 -#: js/synthutils.js:139 -#.TRANS: musical instrument -msgid "darbuka drum" +#: js/blocks/WidgetBlocks.js:977 +msgid "chromatic keyboard" msgstr "" -#: js/musicutils.js:763 -#: js/synthutils.js:143 -#.TRANS: musical instrument -msgid "hi hat" +#: js/blocks/WidgetBlocks.js:1011 +#: js/blocks/WidgetBlocks.js:1077 +#.TRANS: widget to generate pitches using a slider +msgid "music keyboard" msgstr "" -#: js/musicutils.js:764 -#: js/synthutils.js:145 -#.TRANS: a small metal bell -msgid "ride bell" +#: js/blocks/WidgetBlocks.js:1062 +#: js/blocks/WidgetBlocks.js:1069 +msgid "The Music keyboard block opens a piano keyboard that can be used to create notes." msgstr "" -#: js/musicutils.js:765 -#: js/synthutils.js:147 -#.TRANS: musical instrument -msgid "cow bell" +#: js/blocks/WidgetBlocks.js:1128 +msgid "The Pitch staircase tool to is used to generate pitches from a given ratio." msgstr "" -#: js/musicutils.js:766 -msgid "japanese drum" +#: js/blocks/WidgetBlocks.js:1135 +#.TRANS: generate a progressive sequence of pitches +msgid "pitch staircase" msgstr "" -#: js/musicutils.js:767 -#: js/synthutils.js:153 -#.TRANS: musical instrument -msgid "japanese bell" +#: js/blocks/WidgetBlocks.js:1222 +msgid "The Rhythm Maker block opens a tool to create drum machines." msgstr "" -#: js/musicutils.js:768 -#: js/synthutils.js:149 -#.TRANS: musical instrument -msgid "triangle bell" +#: js/blocks/WidgetBlocks.js:1291 +msgid "G major scale" msgstr "" -#: js/musicutils.js:769 -#: js/synthutils.js:151 -#.TRANS: musical instrument -msgid "finger cymbals" +#: js/blocks/WidgetBlocks.js:1326 +msgid "C major scale" msgstr "" -#: js/musicutils.js:770 -#: js/synthutils.js:155 -#.TRANS: a musically tuned set of bells -msgid "chime" +#: js/blocks/WidgetBlocks.js:1366 +msgid "The Phrase Maker block opens a tool to create musical phrases." msgstr "" -#: js/musicutils.js:771 -#: js/synthutils.js:157 -#.TRANS: a musical instrument -msgid "gong" +#: js/blocks/WidgetBlocks.js:1373 +#.TRANS: assigns pitch to a sequence of beats to generate a melody +msgid "phrase maker" msgstr "" -#: js/musicutils.js:772 -#: js/synthutils.js:159 -#.TRANS: sound effect -msgid "clang" +#: js/blocks/WidgetBlocks.js:1444 +msgid "You must have at least one pitch block and one rhythm block in the matrix." msgstr "" -#: js/musicutils.js:773 -#: js/synthutils.js:161 -#.TRANS: sound effect -msgid "crash" +#: js/blocks/WidgetBlocks.js:1503 +msgid "The Status block opens a tool for inspecting the status of Music Blocks as it is running." msgstr "" -#: js/musicutils.js:774 -#: js/synthutils.js:163 -#.TRANS: sound effect -msgid "bottle" +#: js/blocks/WidgetBlocks.js:1580 +#.TRANS: AI-generated music +msgid "aimusic" msgstr "" -#: js/musicutils.js:775 -#: js/synthutils.js:165 -#.TRANS: sound effect -msgid "clap" +#: js/turtleactions/MeterActions.js:101 +#: js/turtleactions/MeterActions.js:139 +msgid "beats per minute must be greater than" msgstr "" -#: js/musicutils.js:776 -#: js/synthutils.js:167 -#.TRANS: sound effect -msgid "slap" +#: js/turtleactions/MeterActions.js:111 +#: js/turtleactions/MeterActions.js:149 +msgid "maximum" msgstr "" -#: js/musicutils.js:777 -#: js/synthutils.js:169 -#.TRANS: sound effect -msgid "splash" +#: js/turtleactions/MeterActions.js:117 +#: js/turtleactions/MeterActions.js:155 +msgid "beats per minute is" msgstr "" -#: js/musicutils.js:778 -#: js/synthutils.js:171 -#.TRANS: sound effect -msgid "bubbles" +#: js/turtleactions/DictActions.js:75 +#: js/turtleactions/DictActions.js:142 +#: js/turtleactions/DictActions.js:172 +msgid "font" msgstr "" -#: js/musicutils.js:779 -#: js/synthutils.js:173 -#.TRANS: sound effect -msgid "raindrop" +#: js/turtleactions/DictActions.js:255 +msgid "Dictionary with this name does not exist" msgstr "" -#: js/musicutils.js:780 -#: js/synthutils.js:175 -#.TRANS: animal sound effect -msgid "cat" +#: js/turtleactions/DictActions.js:259 +msgid "Key with this name does not exist in " msgstr "" -#: js/musicutils.js:781 -#: js/synthutils.js:177 -#.TRANS: animal sound effect -msgid "cricket" +#: js/turtleactions/DrumActions.js:227 +msgid "Noise Block: Did you mean to use a Note block?" msgstr "" -#: js/musicutils.js:782 -#: js/synthutils.js:179 -#.TRANS: animal sound effect -msgid "dog" +#: js/turtleactions/IntervalsActions.js:113 +msgid "one" msgstr "" -#: js/musicutils.js:784 -#: js/synthutils.js:86 -#.TRANS: musical instrument -msgid "banjo" +#: js/turtleactions/IntervalsActions.js:113 +msgid "two" msgstr "" -#: js/musicutils.js:785 -#: js/synthutils.js:88 -#.TRANS: musical instrument -msgid "koto" +#: js/turtleactions/IntervalsActions.js:113 +msgid "three" msgstr "" -#: js/musicutils.js:786 -#: js/synthutils.js:90 -#.TRANS: musical instrument -msgid "dulcimer" +#: js/turtleactions/IntervalsActions.js:113 +msgid "four" msgstr "" -#: js/musicutils.js:787 -#: js/synthutils.js:92 -#.TRANS: musical instrument -msgid "electric guitar" +#: js/turtleactions/IntervalsActions.js:113 +msgid "five" msgstr "" -#: js/musicutils.js:788 -#: js/synthutils.js:94 -#.TRANS: musical instrument -msgid "bassoon" +#: js/turtleactions/IntervalsActions.js:113 +msgid "six" msgstr "" -#: js/musicutils.js:789 -#: js/synthutils.js:96 -#.TRANS: musical instrument -msgid "celeste" +#: js/turtleactions/IntervalsActions.js:113 +msgid "seven" msgstr "" -#: js/musicutils.js:791 -#: js/musicutils.js:1123 -#: js/musicutils.js:1131 -#: js/temperament.js:650 -#.TRANS: musical temperament -msgid "equal" +#: js/turtleactions/IntervalsActions.js:113 +msgid "eight" msgstr "" -#: js/musicutils.js:793 -#: js/musicutils.js:1125 -#: js/musicutils.js:1133 -#.TRANS: musical temperament -msgid "Pythagorean" +#: js/turtleactions/IntervalsActions.js:113 +msgid "nine" msgstr "" -#: js/musicutils.js:795 -#: js/musicutils.js:1124 -#: js/musicutils.js:1132 -#.TRANS: musical temperament -msgid "just intonation" +#: js/turtleactions/IntervalsActions.js:119 +msgid "a" msgstr "" -#: js/musicutils.js:797 -#: js/musicutils.js:1126 -#: js/musicutils.js:1127 -#: js/musicutils.js:1134 -#: js/musicutils.js:1135 -#.TRANS: musical temperament -msgid "meantone" +#: js/turtleactions/IntervalsActions.js:120 +msgid "below" msgstr "" -#: js/musicutils.js:814 -msgid "major 7th" +#: js/turtleactions/IntervalsActions.js:124 +msgid "above" msgstr "" -#: js/musicutils.js:815 -msgid "minor 7th" +#: js/turtleactions/IntervalsActions.js:131 +msgid "plus" msgstr "" -#: js/musicutils.js:816 -msgid "dominant 7th" +#: js/turtleactions/IntervalsActions.js:139 +msgid " below" msgstr "" -#: js/musicutils.js:817 -msgid "minor-major 7th" +#: js/turtleactions/IntervalsActions.js:257 +msgid "Adding missing pitch number 0." msgstr "" -#: js/musicutils.js:818 -msgid "fully-diminished 7th" +#: js/turtleactions/IntervalsActions.js:265 +msgid "Ignoring pitch numbers less than zero or greater than eleven." msgstr "" -#: js/musicutils.js:819 -msgid "half-diminished 7th" +#: js/turtleactions/IntervalsActions.js:271 +msgid "Ignoring duplicate pitch numbers." msgstr "" -#: js/musicutils.js:4379 -#: js/musicutils.js:4416 -msgid "current" +#: js/turtleactions/ToneActions.js:134 +msgid "Vibrato intensity must be between 1 and 100." msgstr "" -#: js/musicutils.js:4382 -#: js/musicutils.js:4407 -msgid "next" +#: js/turtleactions/ToneActions.js:139 +msgid "Vibrato rate must be greater than 0." msgstr "" -#: js/musicutils.js:4385 -#: js/musicutils.js:4412 -msgid "previous" +#: js/turtleactions/ToneActions.js:192 +#: js/turtleactions/ToneActions.js:265 +#.TRANS: Depth is the intesity of the tremolo or chorus effect. +msgid "Depth is out of range." msgstr "" -#: js/synthutils.js:104 -#.TRANS: simple monotone synthesizer -msgid "simple-2" +#: js/turtleactions/ToneActions.js:301 +msgid "Distortion must be from 0 to 100." msgstr "" -#: js/synthutils.js:106 -#.TRANS: simple monotone synthesizer -msgid "simple-3" +#: js/turtleactions/ToneActions.js:332 +#.TRANS: partials components in a harmonic series +msgid "Partial must be greater than or equal to 0." msgstr "" -#: js/synthutils.js:108 -#.TRANS: simple monotone synthesizer -msgid "simple-4" +#: js/turtleactions/ToneActions.js:378 +#: js/turtleactions/ToneActions.js:417 +#: js/turtleactions/ToneActions.js:456 +#: js/widgets/timbre.js:782 +msgid "Unable to use synth due to existing oscillator" msgstr "" -#: js/synthutils.js:141 -#.TRANS: musical instrument -msgid "taiko" +#: js/turtleactions/ToneActions.js:388 +#: js/turtleactions/ToneActions.js:427 +msgid "The input cannot be negative." msgstr "" -#: js/modewidget.js:86 -#: js/modewidget.js:88 -#: js/modewidget.js:642 -#: js/modewidget.js:644 -#: js/modewidget.js:712 -#: js/modewidget.js:714 -#: js/temperament.js:2078 -#: js/rhythmruler.js:189 -#: js/rhythmruler.js:1410 -#: js/rhythmruler.js:1412 -#: js/rhythmruler.js:1435 -#: js/rhythmruler.js:1437 -#: js/meterwidget.js:89 -#: js/meterwidget.js:91 +#: js/widgets/modewidget.js:86 +#: js/widgets/modewidget.js:88 +#: js/widgets/modewidget.js:642 +#: js/widgets/modewidget.js:644 +#: js/widgets/modewidget.js:712 +#: js/widgets/modewidget.js:714 +#: js/widgets/meterwidget.js:194 +#: js/widgets/meterwidget.js:196 +#: js/widgets/temperament.js:2236 +#: js/widgets/rhythmruler.js:457 +#: js/widgets/rhythmruler.js:1790 +#: js/widgets/rhythmruler.js:1792 +#: js/widgets/rhythmruler.js:1816 +#: js/widgets/rhythmruler.js:1818 msgid "Play all" msgstr "" -#: js/modewidget.js:115 -#: js/pitchstaircase.js:641 -#: js/phrasemaker.js:339 -#: js/pitchdrummatrix.js:94 -#: js/pitchslider.js:125 -#: js/temperament.js:2083 -#: js/musickeyboard.js:530 -#: js/timbre.js:756 -#: js/meterwidget.js:124 -#: js/arpeggio.js:103 +#: js/widgets/modewidget.js:115 +#: js/widgets/meterwidget.js:229 +#: js/widgets/pitchdrummatrix.js:166 +#: js/widgets/pitchslider.js:125 +#: js/widgets/pitchstaircase.js:641 +#: js/widgets/temperament.js:2244 +#: js/widgets/timbre.js:756 +#: js/widgets/arpeggio.js:103 +#: js/widgets/musickeyboard.js:688 +#: js/widgets/phrasemaker.js:550 msgid "Save" msgstr "" -#: js/modewidget.js:121 -#: js/pitchstaircase.js:686 -#: js/phrasemaker.js:356 -#: js/pitchdrummatrix.js:109 -#: js/musickeyboard.js:534 -#: js/rhythmruler.js:269 -#: js/arpeggio.js:118 +#: js/widgets/modewidget.js:121 +#: js/widgets/pitchdrummatrix.js:181 +#: js/widgets/pitchstaircase.js:686 +#: js/widgets/arpeggio.js:118 +#: js/widgets/musickeyboard.js:696 +#: js/widgets/phrasemaker.js:567 +#: js/widgets/rhythmruler.js:601 #.TRANS: clear all subdivisions from the ruler. msgid "Clear" msgstr "" -#: js/modewidget.js:127 +#: js/widgets/modewidget.js:127 msgid "Rotate counter clockwise" msgstr "" -#: js/modewidget.js:133 +#: js/widgets/modewidget.js:133 msgid "Rotate clockwise" msgstr "" -#: js/modewidget.js:139 +#: js/widgets/modewidget.js:139 msgid "Invert" msgstr "" -#: js/modewidget.js:145 -#: js/pitchstaircase.js:678 -#: js/rhythmruler.js:258 -#: js/timbre.js:963 +#: js/widgets/modewidget.js:145 +#: js/widgets/pitchstaircase.js:678 +#: js/widgets/timbre.js:963 +#: js/widgets/rhythmruler.js:578 msgid "Undo" msgstr "" -#: js/modewidget.js:163 +#: js/widgets/modewidget.js:163 #.TRANS: A circle of notes represents the musical mode. msgid "Click in the circle to select notes for the mode." msgstr "" -#: js/modewidget.js:1017 -#: js/pitchstaircase.js:580 -#: js/phrasemaker.js:4855 -#: js/temperament.js:1754 -#: js/rhythmruler.js:1865 -#: js/rhythmruler.js:2081 -#: js/tempo.js:414 +#: js/widgets/modewidget.js:1017 +#: js/widgets/pitchstaircase.js:580 +#: js/widgets/temperament.js:1929 +#: js/widgets/tempo.js:414 +#: js/widgets/phrasemaker.js:5356 +#: js/widgets/rhythmruler.js:2254 +#: js/widgets/rhythmruler.js:2472 msgid "New action block generated!" msgstr "" -#: js/oscilloscope.js:79 -msgid "Zoom In" -msgstr "" - -#: js/oscilloscope.js:88 -msgid "Zoom Out" -msgstr "" - -#: js/pitchstaircase.js:624 -msgid "Play chord" -msgstr "" - -#: js/pitchstaircase.js:632 -msgid "Play scale" +#: js/widgets/meterwidget.js:275 +msgid "Reset" msgstr "" -#: js/pitchstaircase.js:696 -msgid "Click on a note to create a new step." +#: js/widgets/meterwidget.js:301 +msgid "Click in the circle to select strong beats for the meter." msgstr "" -#: js/phrasemaker.js:363 -msgid "Export" +#: js/widgets/oscilloscope.js:79 +msgid "Zoom In" msgstr "" -#: js/phrasemaker.js:370 -msgid "Sort" +#: js/widgets/oscilloscope.js:88 +msgid "Zoom Out" msgstr "" -#: js/phrasemaker.js:373 -#: js/musickeyboard.js:559 -msgid "Add note" +#: js/widgets/pitchdrummatrix.js:356 +#: js/widgets/pitchdrummatrix.js:752 +msgid "Click in the grid to map notes to drums." msgstr "" -#: js/phrasemaker.js:764 -msgid "Click on the table to add notes." +#: js/widgets/pitchslider.js:103 +msgid "Move up" msgstr "" -#: js/phrasemaker.js:2414 -#: js/phrasemaker.js:2543 -msgid "tuplet value" +#: js/widgets/pitchslider.js:114 +msgid "Move down" msgstr "" -#: js/pitchdrummatrix.js:270 -#: js/pitchdrummatrix.js:639 -msgid "Click in the grid to map notes to drums." +#: js/widgets/pitchslider.js:136 +msgid "Click on the slider to create a note block." msgstr "" -#: js/pitchslider.js:103 -msgid "Move up" +#: js/widgets/pitchstaircase.js:624 +msgid "Play chord" msgstr "" -#: js/pitchslider.js:114 -msgid "Move down" +#: js/widgets/pitchstaircase.js:632 +msgid "Play scale" msgstr "" -#: js/pitchslider.js:136 -msgid "Click on the slider to create a note block." +#: js/widgets/pitchstaircase.js:696 +msgid "Click on a note to create a new step." msgstr "" -#: js/temperament.js:215 +#: js/widgets/temperament.js:321 msgid "back to 2:1 octave space" msgstr "" -#: js/temperament.js:323 +#: js/widgets/temperament.js:447 msgid "edit" msgstr "" -#: js/temperament.js:330 -#: js/temperament.js:332 -#: js/temperament.js:1336 -#: js/temperament.js:1338 +#: js/widgets/temperament.js:454 +#: js/widgets/temperament.js:456 +#: js/widgets/temperament.js:1493 +#: js/widgets/temperament.js:1495 msgid "close" msgstr "" -#: js/temperament.js:423 -#: js/temperament.js:736 -#: js/temperament.js:743 -#: js/temperament.js:845 -#: js/temperament.js:935 -#: js/temperament.js:942 -#: js/temperament.js:1015 -#: js/temperament.js:1284 -#: js/temperament.js:1354 -#: js/temperament.js:1430 +#: js/widgets/temperament.js:552 +#: js/widgets/temperament.js:877 +#: js/widgets/temperament.js:884 +#: js/widgets/temperament.js:986 +#: js/widgets/temperament.js:1080 +#: js/widgets/temperament.js:1087 +#: js/widgets/temperament.js:1160 +#: js/widgets/temperament.js:1433 +#: js/widgets/temperament.js:1511 +#: js/widgets/temperament.js:1596 msgid "done" msgstr "" -#: js/temperament.js:477 -#: js/temperament.js:482 -#: js/temperament.js:918 +#: js/widgets/temperament.js:610 +#: js/widgets/temperament.js:615 +#: js/widgets/temperament.js:1063 msgid "ratio" msgstr "" -#: js/temperament.js:483 +#: js/widgets/temperament.js:616 msgid "interval" msgstr "" -#: js/temperament.js:611 +#: js/widgets/temperament.js:744 msgid "non scalar" msgstr "" -#: js/temperament.js:650 +#: js/widgets/temperament.js:787 msgid "ratios" msgstr "" -#: js/temperament.js:650 +#: js/widgets/temperament.js:787 msgid "arbitrary" msgstr "" -#: js/temperament.js:719 +#: js/widgets/temperament.js:860 msgid "number of divisions" msgstr "" -#: js/temperament.js:741 -#: js/temperament.js:858 -#: js/temperament.js:940 -#: js/temperament.js:1033 +#: js/widgets/temperament.js:882 +#: js/widgets/temperament.js:999 +#: js/widgets/temperament.js:1085 +#: js/widgets/temperament.js:1178 msgid "preview" msgstr "" -#: js/temperament.js:788 +#: js/widgets/temperament.js:929 msgid "The Number of divisions is too large." msgstr "" -#: js/temperament.js:921 +#: js/widgets/temperament.js:1066 msgid "recursion" msgstr "" -#: js/temperament.js:1450 +#: js/widgets/temperament.js:1616 msgid "The octave ratio has changed. This changes temperament significantly." msgstr "" -#: js/temperament.js:2087 +#: js/widgets/temperament.js:2248 msgid "Table" msgstr "" -#: js/temperament.js:2185 +#: js/widgets/temperament.js:2356 msgid "Add pitches" msgstr "" -#: js/musickeyboard.js:570 -msgid "Metronome" +#: js/widgets/tempo.js:78 +#: js/widgets/tempo.js:97 +#: js/widgets/tempo.js:99 +#: js/widgets/aiwidget.js:134 +#: js/widgets/aiwidget.js:136 +#: js/widgets/rhythmruler.js:681 +#: js/widgets/rhythmruler.js:683 +#: js/widgets/rhythmruler.js:1864 +#: js/widgets/rhythmruler.js:1866 +#: js/widgets/sampler.js:180 +#: js/widgets/sampler.js:182 +msgid "Pause" msgstr "" -#: js/musickeyboard.js:1296 -#: plugins/rodi.rtp:193 -msgid "duration" +#: js/widgets/tempo.js:113 +msgid "Save tempo" msgstr "" -#: js/musickeyboard.js:2840 -msgid "New action blocks generated!" +#: js/widgets/tempo.js:144 +msgid "speed up" msgstr "" -#: js/musickeyboard.js:2841 -msgid "New action block generated" +#: js/widgets/tempo.js:150 +msgid "slow down" msgstr "" -#: js/musickeyboard.js:2984 -#: js/musickeyboard.js:2992 -msgid "MIDI device present." +#: js/widgets/tempo.js:194 +msgid "Adjust the tempo with the buttons." msgstr "" -#: js/musickeyboard.js:2995 -msgid "No MIDI device found." +#: js/widgets/tempo.js:261 +msgid "Please enter a number between 30 and 1000" msgstr "" -#: js/musickeyboard.js:3000 -msgid "Failed to get MIDI access in browser." +#: js/widgets/tempo.js:268 +#: js/widgets/tempo.js:271 +msgid "The beats per minute must be between 30 and 1000." msgstr "" -#: js/rhythmruler.js:202 -msgid "Save rhythms" +#: js/widgets/tempo.js:287 +msgid "The beats per minute must be below 1000." msgstr "" -#: js/rhythmruler.js:222 -msgid "Save drum machine" +#: js/widgets/tempo.js:303 +msgid "The beats per minute must be above 30" msgstr "" -#: js/rhythmruler.js:263 -#.TRANS: user can tap out a rhythm by clicking on a ruler. -msgid "Tap a rhythm" +#: js/widgets/timbre.js:766 +msgid "Synthesizer" msgstr "" -#: js/rhythmruler.js:342 -#: js/rhythmruler.js:344 -#: js/rhythmruler.js:1481 -#: js/rhythmruler.js:1483 -#: js/sampler.js:110 -#: js/sampler.js:112 -#: js/tempo.js:78 -#: js/tempo.js:97 -#: js/tempo.js:99 -msgid "Pause" +#: js/widgets/timbre.js:789 +msgid "Oscillator" msgstr "" -#: js/rhythmruler.js:478 -msgid "Click on the ruler to divide it." +#: js/widgets/timbre.js:840 +msgid "Envelope" msgstr "" -#: js/rhythmruler.js:603 -#: js/rhythmruler.js:605 -#: js/rhythmruler.js:804 -#: js/rhythmruler.js:806 -#: js/rhythmruler.js:1386 -#: js/rhythmruler.js:1388 -msgid "tap a rhythm" +#: js/widgets/timbre.js:886 +#: planet/js/GlobalTag.js:50 +#.TRANS: On the Planet, we use labels to tag projects. +msgid "Effects" msgstr "" -#: js/rhythmruler.js:1084 -msgid "Maximum value of 256 has been exceeded." +#: js/widgets/timbre.js:904 +msgid "Filter" msgstr "" -#: js/sampler.js:137 -msgid "Warning: Sample is bigger than 1MB." +#: js/widgets/timbre.js:946 +msgid "Add filter" msgstr "" -#: js/sampler.js:142 -msgid "Upload failed: Sample is not a .wav file." +#: js/widgets/timbre.js:987 +msgid "Click on buttons to open the timbre design tools." msgstr "" -#: js/sampler.js:164 -msgid "A new sample block was generated." +#: js/widgets/timbre.js:1273 +msgid "harmonicity" msgstr "" -#: js/sampler.js:255 -msgid "Upload sample" +#: js/widgets/timbre.js:1340 +#: js/widgets/timbre.js:1406 +msgid "modulation index" msgstr "" -#: js/sampler.js:306 -msgid "Save sample" +#: js/widgets/timbre.js:1484 +msgid "vibrato amount" msgstr "" -#: js/sampler.js:697 -#.TRANS: The reference tone is a sound used for comparison. -msgid "reference tone" +#: js/widgets/timbre.js:1919 +msgid "Filter already present." msgstr "" -#: js/tempo.js:113 -msgid "Save tempo" +#: js/widgets/timbre.js:2322 +msgid "delay (MS)" msgstr "" -#: js/tempo.js:144 -msgid "speed up" +#: js/widgets/timbre.js:2507 +msgid "distortion amount" msgstr "" -#: js/tempo.js:150 -msgid "slow down" +#: js/widgets/aiwidget.js:180 +#: js/widgets/sampler.js:227 +msgid "Warning: Sample is bigger than 1MB." msgstr "" -#: js/tempo.js:194 -msgid "Adjust the tempo with the buttons." +#: js/widgets/aiwidget.js:539 +msgid "New start block generated" msgstr "" -#: js/tempo.js:261 -msgid "Please enter a number between 30 and 1000" +#: js/widgets/aiwidget.js:541 +msgid "MIDI loading. This may take some time depending upon the number of notes in the track" msgstr "" -#: js/tempo.js:268 -#: js/tempo.js:271 -msgid "The beats per minute must be between 30 and 1000." +#: js/widgets/aiwidget.js:551 +#: js/widgets/sampler.js:254 +msgid "Upload failed: Sample is not a .wav file." msgstr "" -#: js/tempo.js:287 -msgid "The beats per minute must be below 1000." +#: js/widgets/aiwidget.js:679 +#: js/widgets/sampler.js:432 +msgid "Save sample" msgstr "" -#: js/tempo.js:303 -msgid "The beats per minute must be above 30" +#: js/widgets/aiwidget.js:701 +msgid "AI Music" msgstr "" -#: js/timbre.js:766 -msgid "Synthesizer" +#: js/widgets/arpeggio.js:239 +msgid "Click in the grid to add steps to the arpeggio." msgstr "" -#: js/timbre.js:789 -msgid "Oscillator" +#: js/widgets/help.js:95 +#: js/widgets/help.js:125 +#: js/widgets/help.js:146 +#: js/widgets/help.js:158 +#: js/widgets/help.js:376 +#: js/widgets/help.js:391 +msgid "Take a tour" msgstr "" -#: js/timbre.js:840 -msgid "Envelope" +#: js/widgets/musickeyboard.js:725 +#: js/widgets/phrasemaker.js:584 +msgid "Add note" msgstr "" -#: js/timbre.js:886 -#: js/GlobalTag.js:50 -#.TRANS: On the Planet, we use labels to tag projects. -msgid "Effects" +#: js/widgets/musickeyboard.js:744 +msgid "Metronome" +msgstr "" + +#: js/widgets/musickeyboard.js:1549 +#: plugins/rodi.rtp:193 +msgid "duration" +msgstr "" + +#: js/widgets/musickeyboard.js:3179 +msgid "New action blocks generated" +msgstr "" + +#: js/widgets/musickeyboard.js:3180 +msgid "New action block generated" msgstr "" -#: js/timbre.js:904 -msgid "Filter" +#: js/widgets/musickeyboard.js:3365 +#: js/widgets/musickeyboard.js:3373 +msgid "MIDI device present." msgstr "" -#: js/timbre.js:946 -msgid "Add filter" +#: js/widgets/musickeyboard.js:3376 +msgid "No MIDI device found." msgstr "" -#: js/timbre.js:987 -msgid "Click on buttons to open the timbre design tools." +#: js/widgets/musickeyboard.js:3386 +msgid "Failed to get MIDI access in browser." msgstr "" -#: js/timbre.js:1273 -msgid "harmonicity" +#: js/widgets/phrasemaker.js:574 +msgid "Export" msgstr "" -#: js/timbre.js:1340 -#: js/timbre.js:1406 -msgid "modulation index" +#: js/widgets/phrasemaker.js:581 +msgid "Sort" msgstr "" -#: js/timbre.js:1484 -msgid "vibrato amount" +#: js/widgets/phrasemaker.js:975 +msgid "Click on the table to add notes." msgstr "" -#: js/timbre.js:1919 -msgid "Filter already present." +#: js/widgets/phrasemaker.js:2677 +#: js/widgets/phrasemaker.js:2819 +msgid "tuplet value" msgstr "" -#: js/timbre.js:2322 -msgid "delay (MS)" +#: js/widgets/rhythmruler.js:486 +msgid "Save rhythms" msgstr "" -#: js/timbre.js:2507 -msgid "distortion amount" +#: js/widgets/rhythmruler.js:512 +msgid "Save drum machine" msgstr "" -#: js/meterwidget.js:170 -msgid "Reset" +#: js/widgets/rhythmruler.js:589 +#.TRANS: user can tap out a rhythm by clicking on a ruler. +msgid "Tap a rhythm" msgstr "" -#: js/meterwidget.js:196 -msgid "Click in the circle to select strong beats for the meter." +#: js/widgets/rhythmruler.js:817 +msgid "Click on the ruler to divide it." msgstr "" -#: js/arpeggio.js:239 -msgid "Click in the grid to add steps to the arpeggio." +#: js/widgets/rhythmruler.js:950 +#: js/widgets/rhythmruler.js:952 +#: js/widgets/rhythmruler.js:1152 +#: js/widgets/rhythmruler.js:1154 +#: js/widgets/rhythmruler.js:1765 +#: js/widgets/rhythmruler.js:1767 +msgid "tap a rhythm" msgstr "" -#: js/ProjectStorage.js:243 -msgid "anonymous" +#: js/widgets/rhythmruler.js:1459 +msgid "Maximum value of 256 has been exceeded." msgstr "" -#: js/GlobalCard.js:68 -msgid "Share" +#: js/widgets/sampler.js:237 +msgid "Recording started..." msgstr "" -#: js/GlobalCard.js:74 -msgid "Flags" +#: js/widgets/sampler.js:245 +msgid "Recording complete..." msgstr "" -#: js/LocalCard.js:36 -msgid "View published project" +#: js/widgets/sampler.js:283 +msgid "A new sample block was generated." msgstr "" -#: js/LocalCard.js:42 -msgid "Publish project" +#: js/widgets/sampler.js:378 +msgid "Upload sample" msgstr "" -#: js/LocalCard.js:51 -msgid "Edit project" +#: js/widgets/sampler.js:399 +msgid "Warning: Your sample cannot be loaded because it is >1MB." msgstr "" -#: js/LocalCard.js:52 -msgid "Delete project" +#: js/widgets/sampler.js:448 +msgid "Toggle Mic" msgstr "" -#: js/LocalCard.js:53 -msgid "Download project" +#: js/widgets/sampler.js:458 +msgid "Playback" msgstr "" -#: js/LocalCard.js:55 -msgid "Duplicate project" +#: js/widgets/sampler.js:979 +#.TRANS: The reference tone is a sound used for comparison. +msgid "reference tone" msgstr "" -#: js/GlobalTag.js:28 +#: planet/js/GlobalTag.js:28 #.TRANS: On the Planet, we use labels to tag projects. msgid "All Projects" msgstr "" -#: js/GlobalTag.js:30 -#: js/StringHelper.js:37 +#: planet/js/GlobalTag.js:30 +#: planet/js/StringHelper.js:37 #.TRANS: On the Planet, we use labels to tag projects. msgid "My Projects" msgstr "" -#: js/GlobalTag.js:32 +#: planet/js/GlobalTag.js:32 #.TRANS: On the Planet, we use labels to tag projects. msgid "Examples" msgstr "" -#: js/GlobalTag.js:34 +#: planet/js/GlobalTag.js:34 #.TRANS: On the Planet, we use labels to tag projects. msgid "Music" msgstr "" -#: js/GlobalTag.js:36 +#: planet/js/GlobalTag.js:36 #.TRANS: On the Planet, we use labels to tag projects. msgid "Art" msgstr "" -#: js/GlobalTag.js:38 +#: planet/js/GlobalTag.js:38 #.TRANS: On the Planet, we use labels to tag projects. msgid "Math" msgstr "" -#: js/GlobalTag.js:40 +#: planet/js/GlobalTag.js:40 #.TRANS: On the Planet, we use labels to tag projects. msgid "Interactive" msgstr "" -#: js/GlobalTag.js:42 +#: planet/js/GlobalTag.js:42 #.TRANS: On the Planet, we use labels to tag projects. msgid "Design" msgstr "" -#: js/GlobalTag.js:44 +#: planet/js/GlobalTag.js:44 #.TRANS: On the Planet, we use labels to tag projects. msgid "Game" msgstr "" -#: js/GlobalTag.js:46 +#: planet/js/GlobalTag.js:46 #.TRANS: On the Planet, we use labels to tag projects. msgid "Media" msgstr "" -#: js/GlobalTag.js:48 +#: planet/js/GlobalTag.js:48 #.TRANS: On the Planet, we use labels to tag projects. msgid "Sensors" msgstr "" -#: js/GlobalTag.js:52 +#: planet/js/GlobalTag.js:52 #.TRANS: On the Planet, we use labels to tag projects. msgid "Code Snippet" msgstr "" -#: js/helper.js:149 -#: js/StringHelper.js:49 -msgid "Show more tags" +#: planet/js/LocalCard.js:36 +msgid "View published project" msgstr "" -#: js/helper.js:150 -msgid "Show fewer tags" +#: planet/js/LocalCard.js:42 +msgid "Publish project" +msgstr "" + +#: planet/js/LocalCard.js:51 +msgid "Edit project" +msgstr "" + +#: planet/js/LocalCard.js:52 +msgid "Delete project" +msgstr "" + +#: planet/js/LocalCard.js:53 +msgid "Download project" +msgstr "" + +#: planet/js/LocalCard.js:55 +msgid "Duplicate project" +msgstr "" + +#: planet/js/ProjectStorage.js:243 +msgid "anonymous" +msgstr "" + +#: planet/js/SaveInterface.js:34 +msgid "Open in Music Blocks" +msgstr "" + +#: planet/js/SaveInterface.js:35 +msgid "Open in Turtle Blocks" +msgstr "" + +#: planet/js/GlobalCard.js:68 +msgid "Share" +msgstr "" + +#: planet/js/GlobalCard.js:74 +msgid "Flags" +msgstr "" + +#: planet/js/GlobalPlanet.js:35 +msgid "No results found." +msgstr "" + +#: planet/js/GlobalPlanet.js:51 +msgid "Remix of" +msgstr "" + +#: planet/js/GlobalPlanet.js:509 +msgid "Cannot connect to server" msgstr "" -#: js/ProjectViewer.js:30 +#: planet/js/ProjectViewer.js:30 msgid "Error: Report could not be submitted. Try again later." msgstr "" -#: js/ProjectViewer.js:31 +#: planet/js/ProjectViewer.js:31 msgid "Thank you for reporting this project. A moderator will review the project shortly, to verify violation of the Sugar Labs Code of Conduct." msgstr "" -#: js/ProjectViewer.js:32 -#: js/StringHelper.js:62 -#: js/StringHelper.js:64 -#: js/StringHelper.js:68 +#: planet/js/ProjectViewer.js:32 +#: planet/js/StringHelper.js:62 +#: planet/js/StringHelper.js:64 +#: planet/js/StringHelper.js:68 msgid "Report Project" msgstr "" -#: js/ProjectViewer.js:33 -#: js/StringHelper.js:63 +#: planet/js/ProjectViewer.js:33 +#: planet/js/StringHelper.js:63 msgid "Project Reported" msgstr "" -#: js/ProjectViewer.js:34 +#: planet/js/ProjectViewer.js:34 msgid "Report description required" msgstr "" -#: js/ProjectViewer.js:35 +#: planet/js/ProjectViewer.js:35 msgid "Report description too long" msgstr "" -#: js/StringHelper.js:30 +#: planet/js/Publisher.js:30 +msgid "Feature unavailable - cannot connect to server. Reload Music Blocks to try again." +msgstr "" + +#: planet/js/Publisher.js:220 +#: planet/js/Publisher.js:237 +msgid "This field is required" +msgstr "" + +#: planet/js/Publisher.js:227 +msgid "Title too long" +msgstr "" + +#: planet/js/Publisher.js:244 +msgid "Description too long" +msgstr "" + +#: planet/js/Publisher.js:341 +msgid "Server Error" +msgstr "" + +#: planet/js/Publisher.js:341 +msgid "Try Again" +msgstr "" + +#: planet/js/StringHelper.js:30 msgid "Planet" msgstr "" -#: js/StringHelper.js:31 +#: planet/js/StringHelper.js:31 msgid "Close Planet" msgstr "" -#: js/StringHelper.js:32 +#: planet/js/StringHelper.js:32 msgid "Open project from file" msgstr "" -#: js/StringHelper.js:34 +#: planet/js/StringHelper.js:34 msgid "Local" msgstr "" -#: js/StringHelper.js:35 +#: planet/js/StringHelper.js:35 msgid "Global" msgstr "" -#: js/StringHelper.js:36 +#: planet/js/StringHelper.js:36 msgid "Search for a project" msgstr "" -#: js/StringHelper.js:38 +#: planet/js/StringHelper.js:38 msgid "Publish Project" msgstr "" -#: js/StringHelper.js:40 +#: planet/js/StringHelper.js:40 msgid "Tags (max 5)" msgstr "" -#: js/StringHelper.js:41 -#: js/StringHelper.js:61 +#: planet/js/StringHelper.js:41 +#: planet/js/StringHelper.js:61 msgid "Description" msgstr "" -#: js/StringHelper.js:42 -#: js/StringHelper.js:67 +#: planet/js/StringHelper.js:42 +#: planet/js/StringHelper.js:67 msgid "Submit" msgstr "" -#: js/StringHelper.js:43 -#: js/StringHelper.js:47 +#: planet/js/StringHelper.js:43 +#: planet/js/StringHelper.js:47 msgid "Cancel" msgstr "" -#: js/StringHelper.js:44 +#: planet/js/StringHelper.js:44 msgid "Delete \\"\\"?" msgstr "" -#: js/StringHelper.js:45 +#: planet/js/StringHelper.js:45 msgid "Permanently delete project \\"\\"?" msgstr "" -#: js/StringHelper.js:48 +#: planet/js/StringHelper.js:48 msgid "Explore Projects" msgstr "" -#: js/StringHelper.js:50 +#: planet/js/StringHelper.js:49 +#: planet/js/helper.js:149 +msgid "Show more tags" +msgstr "" + +#: planet/js/StringHelper.js:50 msgid "Most recent" msgstr "" -#: js/StringHelper.js:51 +#: planet/js/StringHelper.js:51 msgid "Most liked" msgstr "" -#: js/StringHelper.js:52 +#: planet/js/StringHelper.js:52 msgid "Most downloaded" msgstr "" -#: js/StringHelper.js:53 +#: planet/js/StringHelper.js:53 msgid "A-Z" msgstr "" -#: js/StringHelper.js:54 +#: planet/js/StringHelper.js:54 msgid "Sort by" msgstr "" -#: js/StringHelper.js:55 +#: planet/js/StringHelper.js:55 msgid "Load More Projects" msgstr "" -#: js/StringHelper.js:56 +#: planet/js/StringHelper.js:56 msgid "Last Updated" msgstr "" -#: js/StringHelper.js:57 +#: planet/js/StringHelper.js:57 msgid "Creation Date" msgstr "" -#: js/StringHelper.js:58 +#: planet/js/StringHelper.js:58 msgid "Number of Downloads:" msgstr "" -#: js/StringHelper.js:59 +#: planet/js/StringHelper.js:59 msgid "Number of Likes:" msgstr "" -#: js/StringHelper.js:60 +#: planet/js/StringHelper.js:60 msgid "Tags:" msgstr "" -#: js/StringHelper.js:65 +#: planet/js/StringHelper.js:65 msgid "Report projects which violate the Sugar Labs Code of Conduct." msgstr "" -#: js/StringHelper.js:66 +#: planet/js/StringHelper.js:66 msgid "Reason for reporting project" msgstr "" -#: js/StringHelper.js:70 +#: planet/js/StringHelper.js:70 msgid "Download as File" msgstr "" -#: js/GlobalPlanet.js:35 -msgid "No results found." -msgstr "" - -#: js/GlobalPlanet.js:51 -msgid "Remix of" -msgstr "" - -#: js/GlobalPlanet.js:509 -msgid "Cannot connect to server" -msgstr "" - -#: js/Publisher.js:30 -msgid "Feature unavailable - cannot connect to server. Reload Music Blocks to try again." -msgstr "" - -#: js/Publisher.js:218 -#: js/Publisher.js:235 -msgid "This field is required" -msgstr "" - -#: js/Publisher.js:225 -msgid "Title too long" +#: planet/js/helper.js:150 +msgid "Show fewer tags" msgstr "" -#: js/Publisher.js:242 -msgid "Description too long" +#: plugins/accelerometer.rtp:48 +msgid "motion x" msgstr "" -#: js/Publisher.js:339 -msgid "Server Error" +#: plugins/accelerometer.rtp:56 +msgid "motion y" msgstr "" -#: js/Publisher.js:339 -msgid "Try Again" +#: plugins/accelerometer.rtp:64 +msgid "motion z" msgstr "" -#: js/SaveInterface.js:34 -msgid "Open in Music Blocks" +#: plugins/facebook.rtp:27 +msgid "publish" msgstr "" -#: js/SaveInterface.js:35 -msgid "Open in Turtle Blocks" +#: plugins/maths.rtp:62 +msgid "power" msgstr "" -#: plugins/weather.rtp:68 -#: plugins/weather.rtp:97 -msgid "Days ahead must be in the range of -1 to 5." +#: plugins/maths.rtp:62 +msgid "base" msgstr "" -#: plugins/weather.rtp:122 -msgid "forecast" +#: plugins/maths.rtp:62 +msgid "exp" msgstr "" -#: plugins/weather.rtp:123 -#: plugins/weather.rtp:137 -#: plugins/weather.rtp:150 -msgid "city" +#: plugins/maths.rtp:99 +msgid "floor" msgstr "" -#: plugins/weather.rtp:124 -#: plugins/weather.rtp:138 -#: plugins/weather.rtp:151 -msgid "day" +#: plugins/maths.rtp:104 +msgid "ceiling" msgstr "" -#: plugins/weather.rtp:136 -msgid "high" +#: plugins/maths.rtp:109 +msgid "to degrees" msgstr "" -#: plugins/weather.rtp:149 -msgid "low" +#: plugins/maths.rtp:114 +msgid "to radians" msgstr "" #: plugins/nutrition.rtp:104 @@ -9457,45 +9866,6 @@ msgstr "" msgid "water" msgstr "" -#: plugins/maths.rtp:62 -#: plugins/examples.rtp:93 -msgid "power" -msgstr "" - -#: plugins/maths.rtp:62 -#: plugins/examples.rtp:93 -msgid "base" -msgstr "" - -#: plugins/maths.rtp:62 -#: plugins/examples.rtp:93 -msgid "exp" -msgstr "" - -#: plugins/maths.rtp:99 -#: plugins/examples.rtp:130 -msgid "floor" -msgstr "" - -#: plugins/maths.rtp:104 -#: plugins/examples.rtp:135 -msgid "ceiling" -msgstr "" - -#: plugins/maths.rtp:109 -#: plugins/examples.rtp:140 -msgid "to degrees" -msgstr "" - -#: plugins/maths.rtp:114 -#: plugins/examples.rtp:145 -msgid "to radians" -msgstr "" - -#: plugins/facebook.rtp:27 -msgid "publish" -msgstr "" - #: plugins/rodi.rtp:172 msgid "blink" msgstr "" @@ -9524,18 +9894,66 @@ msgstr "" msgid "move" msgstr "" -#: plugins/accelerometer.rtp:48 -msgid "motion x" +#: plugins/weather.rtp:68 +#: plugins/weather.rtp:97 +msgid "Days ahead must be in the range of -1 to 5." msgstr "" -#: plugins/accelerometer.rtp:56 -msgid "motion y" +#: plugins/weather.rtp:122 +msgid "forecast" msgstr "" -#: plugins/accelerometer.rtp:64 -msgid "motion z" +#: plugins/weather.rtp:123 +#: plugins/weather.rtp:137 +#: plugins/weather.rtp:150 +msgid "city" +msgstr "" + +#: plugins/weather.rtp:124 +#: plugins/weather.rtp:138 +#: plugins/weather.rtp:151 +msgid "day" +msgstr "" + +#: plugins/weather.rtp:136 +msgid "high" +msgstr "" + +#: plugins/weather.rtp:149 +msgid "low" msgstr "" +#: js/toolbar.js:70 + +#: js/toolbar.js:130 + +#: js/toolbar.js:194 + +#: js/toolbar.js:249 + +#~msgid "Toggle JavaScript Editor" +#~msgstr "" + +#: js/EnsembleBlocks.js:643 + +#~msgid "The Turrle pitch block returns the current pitch number being played by the specified turtle." +#~msgstr "" + +#: js/PitchActions.js:88 + +#~msgid "The Scalar Step Block must be used inside of a Note Block." +#~msgstr "" + +#: js/PitchActions.js:107 + +#~msgid "The Scalar Step Block must be preceded by a Pitch Block." +#~msgstr "" + +#: js/musickeyboard.js:2840 + +#~msgid "New action blocks generated!" +#~msgstr "" + #: js/toolbar.js:110 #: js/toolbar.js:204 @@ -9876,11 +10294,6 @@ msgstr "" #~msgid "The Time block returns the number of seconds that the program has been running." #~msgstr "" -#: js/help.js:95 - -#~msgid "Take a tour" -#~msgstr "" - #: js/GlobalCard.js:48 #~msgid "More Details" @@ -12779,11 +13192,6 @@ msgstr "" #~msgid "The save-stack button saves a stack onto a custom palette. It appears after a \"long press\" on a stack." #~msgstr "" -#: js/musicutils.js:254 - -#~msgid "Custom" -#~msgstr "" - #: js/basicblocks.js:4785 #~msgid "Rhythm" diff --git a/po/mvo.po b/po/mvo.po index e7fbf33925..d1f2613c8a 100644 --- a/po/mvo.po +++ b/po/mvo.po @@ -2129,276 +2129,131 @@ #: js/planetInterface.js:104 #: js/planetInterface.js:104 #: js/planetInterface.js:104 -msgid "project undefined" -msgstr "" - -#: js/logo.js:61 -msgid "Not a valid pitch name" -msgstr "" - -#: js/logo.js:507 -#: js/ProgramBlocks.js:258 -#: js/ProgramBlocks.js:427 -msgid "You must select a file." -msgstr "" - -#: js/logo.js:1184 -#: js/turtles.js:118 -#: js/turtle-painter.js:1192 -#: js/turtle-painter.js:1193 -#: js/block.js:1463 -#: js/lilypond.js:757 -#: js/lilypond.js:921 -#: js/lilypond.js:959 -#: js/ActionBlocks.js:1223 -#: js/ProgramBlocks.js:1267 -msgid "start" -msgstr "" - -#: js/logo.js:1696 -msgid "Playback is ready." -msgstr "" - -#: js/blocks.js:1011 -#: js/blocks.js:3427 -#: js/blocks.js:3428 -#: js/blocks.js:3653 -#: js/blocks.js:4012 -#: js/blocks.js:4205 -#: js/blocks.js:5343 -#: js/blocks.js:6474 -#: js/palette.js:527 -#: js/palette.js:536 -#: js/palette.js:545 -#: js/palette.js:554 -#: js/palette.js:1131 -#: js/palette.js:1142 -#: js/palette.js:1153 -#: js/palette.js:1164 -#: js/palette.js:1183 -#: js/rubrics.js:529 -#: js/macros.js:170 -#: js/macros.js:266 -#: js/macros.js:267 -#: js/macros.js:276 -#: js/macros.js:828 -#: js/block.js:1449 -#: js/block.js:4164 -#: js/block.js:4182 -#: js/block.js:4193 -#: js/turtledefs.js:128 -#: js/turtledefs.js:230 -#: js/ActionBlocks.js:254 -#: js/ActionBlocks.js:307 -#: js/ActionBlocks.js:617 -#: js/ActionBlocks.js:716 -#: js/ActionBlocks.js:961 -#: js/ActionBlocks.js:1049 -#: js/ActionBlocks.js:1322 -#: js/ActionBlocks.js:1325 -#: js/ActionBlocks.js:1337 -#: js/ActionBlocks.js:1404 -#: js/MeterBlocks.js:715 -#: js/MeterBlocks.js:768 -#: js/MeterBlocks.js:831 -#: js/MeterBlocks.js:892 -#: js/phrasemaker.js:4412 -#: js/musickeyboard.js:2647 -#: js/rhythmruler.js:1928 -#: js/rhythmruler.js:1935 -#: js/rhythmruler.js:2119 -#: js/rhythmruler.js:2126 -msgid "action" -msgstr "" - -#: js/blocks.js:1205 -#: js/blocks.js:3380 -#: js/blocks.js:3770 -#: js/blocks.js:3801 -#: js/blocks.js:3850 -#: js/blocks.js:3885 -#: js/blocks.js:6497 -#: js/palette.js:509 -#: js/palette.js:638 -#: js/palette.js:1107 -#: js/BoxesBlocks.js:282 -#: js/BoxesBlocks.js:285 -#: js/BoxesBlocks.js:405 -#: js/BoxesBlocks.js:594 -msgid "box" -msgstr "" - -#: js/blocks.js:1680 -msgid "Consider breaking this stack into parts." +#: js/SaveInterface.js:59 +#: js/SaveInterface.js:61 +#: js/SaveInterface.js:93 +msgid "Music Blocks Project" msgstr "" -#: js/blocks.js:2408 -#: js/palette.js:653 -#: js/MediaBlocks.js:602 -msgid "open file" +#: js/SaveInterface.js:63 +msgid "This project was created in Music Blocks" msgstr "" -#: js/blocks.js:2415 -#: js/blocks.js:2423 -#: js/activity.js:1875 -msgid "audio file" +#: js/SaveInterface.js:67 +msgid "Music Blocks is a Free/Libre Software application." msgstr "" -#: js/blocks.js:2536 -#: js/blocks.js:3147 -#: js/block.js:3543 -msgid "on2" +#: js/SaveInterface.js:69 +msgid "The source code can be accessed at" msgstr "" -#: js/blocks.js:2538 -#: js/blocks.js:3149 -#: js/block.js:3545 -msgid "off" +#: js/SaveInterface.js:72 +msgid "For more information, please consult the" msgstr "" -#: js/blocks.js:2543 -#: js/blocks.js:3154 -#: js/palette.js:618 -#: js/block.js:3466 -#: js/BooleanBlocks.js:77 -#: js/BooleanBlocks.js:167 -#: js/BooleanBlocks.js:251 -#: js/BooleanBlocks.js:335 -#: js/BooleanBlocks.js:433 -#: js/BooleanBlocks.js:539 -#: js/BooleanBlocks.js:640 -#: js/BooleanBlocks.js:741 -#: js/BooleanBlocks.js:847 -#: js/BooleanBlocks.js:948 -#: js/BooleanBlocks.js:1033 -#: js/SensorsBlocks.js:910 -msgid "true" +#: js/SaveInterface.js:76 +#: js/turtledefs.js:795 +msgid "Music Blocks Guide" msgstr "" -#: js/blocks.js:2545 -#: js/blocks.js:3156 -#: js/block.js:3466 -#: js/BooleanBlocks.js:79 -#: js/BooleanBlocks.js:169 -#: js/BooleanBlocks.js:253 -#: js/BooleanBlocks.js:337 -#: js/BooleanBlocks.js:435 -#: js/BooleanBlocks.js:541 -#: js/BooleanBlocks.js:642 -#: js/BooleanBlocks.js:743 -#: js/BooleanBlocks.js:849 -#: js/BooleanBlocks.js:950 -#: js/SensorsBlocks.js:912 -msgid "false" +#: js/SaveInterface.js:83 +msgid "Alternatively, open the file in Music Blocks using the Load project button." msgstr "" -#: js/blocks.js:3183 -#: js/palette.js:574 -#: js/MediaBlocks.js:892 -#: js/MediaBlocks.js:963 -msgid "text" +#: js/SaveInterface.js:85 +msgid "Project Code" msgstr "" -#: js/blocks.js:3379 -#: js/palette.js:641 -#: js/palette.js:642 -#: js/BoxesBlocks.js:514 -msgid "store in box" +#: js/SaveInterface.js:87 +msgid "This code stores data about the blocks in a project." msgstr "" -#: js/blocks.js:3384 -#: js/blocks.js:3824 -#: js/blocks.js:3859 -#: js/blocks.js:3894 -#: js/blocks.js:5773 -#: js/blocks.js:5794 -#: js/BoxesBlocks.js:772 -msgid "box1" +#: js/SaveInterface.js:89 +msgid "Show" msgstr "" -#: js/blocks.js:3386 -#: js/blocks.js:3826 -#: js/blocks.js:3861 -#: js/blocks.js:3896 -#: js/blocks.js:5775 -#: js/blocks.js:5796 -#: js/BoxesBlocks.js:663 -msgid "box2" +#: js/SaveInterface.js:91 +msgid "Hide" msgstr "" -#: js/blocks.js:4058 -#: js/palette.js:639 -#: js/palette.js:644 -#: js/palette.js:1043 -#: js/BoxesBlocks.js:591 -msgid "store in" +#: js/SaveInterface.js:131 +#: js/SaveInterface.js:204 +#: js/SaveInterface.js:262 +#: js/SaveInterface.js:389 +#: js/SaveInterface.js:417 +#: js/activity.js:4884 +#: planet/js/ProjectStorage.js:27 +#: planet/js/GlobalPlanet.js:467 +#: planet/js/GlobalPlanet.js:469 +#: planet/js/GlobalPlanet.js:495 +#.TRANS: default project title when saving as Lilypond +msgid "My Project" msgstr "" -#: js/blocks.js:4058 -#: js/EnsembleBlocks.js:391 -#: js/EnsembleBlocks.js:402 -#: js/MediaBlocks.js:746 -#: js/ProgramBlocks.js:390 -#: js/ProgramBlocks.js:495 -#: js/ProgramBlocks.js:658 -#: js/BoxesBlocks.js:595 -#: js/PitchBlocks.js:656 -#: js/PitchBlocks.js:932 -#: js/PitchBlocks.js:1827 -#: js/ToneBlocks.js:1025 -#: js/DictBlocks.js:215 -#: js/DictBlocks.js:289 -msgid "name" +#: js/SaveInterface.js:197 +#: planet/js/SaveInterface.js:58 +msgid "No description provided" msgstr "" -#: js/blocks.js:4058 -#: js/RhythmBlocks.js:1130 -#: js/BoxesBlocks.js:75 -#: js/BoxesBlocks.js:595 -#: js/HeapBlocks.js:544 -#: js/DictBlocks.js:289 -#: js/DictBlocks.js:430 -msgid "value" +#: js/SaveInterface.js:332 +msgid "Your recording is in progress." msgstr "" -#: js/blocks.js:4907 -msgid "There is no block selected." +#: js/SaveInterface.js:401 +#.TRANS: File name prompt for save as Lilypond +msgid "File name" msgstr "" -#: js/blocks.js:5002 -#: js/MediaBlocks.js:888 -msgid "show" +#: js/SaveInterface.js:403 +#: planet/js/StringHelper.js:39 +#.TRANS: Project title prompt for save as Lilypond +msgid "Project title" msgstr "" -#: js/blocks.js:5005 -#: js/MediaBlocks.js:803 -#.TRANS: Avatar is the image used to determine the appearance of the mouse. -msgid "avatar" +#: js/SaveInterface.js:405 +#.TRANS: Project title prompt for save as Lilypond +msgid "Project author" msgstr "" -#: js/blocks.js:5008 -#: js/ToneBlocks.js:1010 -#: js/sampler.js:693 -#.TRANS: The sound sample that the user uploads. -msgid "sample" +#: js/SaveInterface.js:407 +#.TRANS: MIDI prompt for save as Lilypond +msgid "Include MIDI output?" msgstr "" -#: js/turtles.js:874 -msgid "Grid" +#: js/SaveInterface.js:409 +#.TRANS: Guitar prompt for save as Lilypond +msgid "Include guitar tablature output?" msgstr "" -#: js/turtles.js:891 -#: js/turtledefs.js:626 -msgid "Clean" +#: js/SaveInterface.js:411 +#.TRANS: Lilypond is a scripting language for generating sheet music +msgid "Save as Lilypond" msgstr "" -#: js/turtles.js:912 -#: js/turtledefs.js:632 -msgid "Collapse" +#: js/SaveInterface.js:426 +#: js/blocks/EnsembleBlocks.js:75 +#: js/blocks/EnsembleBlocks.js:154 +#: js/blocks/EnsembleBlocks.js:216 +#: js/blocks/EnsembleBlocks.js:302 +#: js/blocks/EnsembleBlocks.js:348 +#: js/blocks/EnsembleBlocks.js:389 +#: js/blocks/EnsembleBlocks.js:441 +#: js/blocks/EnsembleBlocks.js:490 +#: js/blocks/EnsembleBlocks.js:536 +#: js/blocks/EnsembleBlocks.js:583 +#: js/blocks/EnsembleBlocks.js:637 +#: js/blocks/EnsembleBlocks.js:753 +#: js/blocks/EnsembleBlocks.js:840 +#: js/blocks/EnsembleBlocks.js:899 +#: js/blocks/EnsembleBlocks.js:942 +#: js/blocks/EnsembleBlocks.js:1212 +#: js/blocks/EnsembleBlocks.js:1280 +#.TRANS: default project author when saving as Lilypond +msgid "Mr. Mouse" msgstr "" -#: js/turtles.js:940 -msgid "Expand" +#: js/SaveInterface.js:573 +msgid "The Lilypond code is copied to clipboard. You can paste it here: " msgstr "" #: js/languagebox.js:198 @@ -2409,6933 +2264,7487 @@ msgstr "" msgid "Music Blocks is already set to this language." msgstr "" -#: js/piemenus.js:200 -#: js/musicutils.js:808 -#: js/musicutils.js:824 -#: js/phrasemaker.js:1672 -#: js/musickeyboard.js:2041 -#: js/sampler.js:544 -#.TRANS: double sharp is a music term related to pitch -msgid "double sharp" +#: js/planetInterface.js:131 +msgid "project undefined" msgstr "" -#: js/piemenus.js:201 -#: js/PitchBlocks.js:1510 -#: js/PitchActions.js:580 -#: js/musicutils.js:806 -#: js/musicutils.js:825 -#: js/phrasemaker.js:1673 -#: js/musickeyboard.js:2042 -#: js/sampler.js:545 -#.TRANS: sharp is a half-step up in pitch -#.TRANS: sharp is a music term related to pitch -msgid "sharp" +#: js/rubrics.js:523 +#: js/turtledefs.js:119 +#: js/turtledefs.js:221 +#: js/blocks/RhythmBlockPaletteBlocks.js:52 +#: js/blocks/RhythmBlockPaletteBlocks.js:234 +#: js/blocks/ProgramBlocks.js:745 +#: js/widgets/rhythmruler.js:2057 +#: js/widgets/rhythmruler.js:2064 +#: js/widgets/rhythmruler.js:2133 +#: js/widgets/rhythmruler.js:2140 +#: js/widgets/rhythmruler.js:2219 +#.TRANS: an arrangement of notes based on duration +msgid "rhythm" msgstr "" -#: js/piemenus.js:202 -#: js/musicutils.js:804 -#: js/musicutils.js:826 -#: js/phrasemaker.js:1674 -#: js/musickeyboard.js:2043 -#: js/sampler.js:546 -#.TRANS: natural is a music term related to pitch -msgid "natural" +#: js/rubrics.js:524 +#: js/turtledefs.js:121 +#: js/turtledefs.js:223 +#: js/block-verbose.js:2622 +#: js/block.js:2550 +#: js/blocks/IntervalsBlocks.js:63 +#: js/blocks/SensorsBlocks.js:178 +#: js/blocks/PitchBlocks.js:1839 +#: js/blocks/PitchBlocks.js:1853 +#: js/widgets/musickeyboard.js:1935 +#: js/widgets/phrasemaker.js:1036 +#.TRANS: pitch number +#.TRANS: pitch number +#.TRANS: we specify pitch in terms of a name and an octave. The name can be CDEFGAB or Do Re Mi Fa Sol La Ti. Octave is a number between 1 and 8. +msgid "pitch" msgstr "" -#: js/piemenus.js:203 -#: js/PitchBlocks.js:1469 -#: js/PitchActions.js:583 -#: js/musicutils.js:802 -#: js/musicutils.js:827 -#: js/phrasemaker.js:1675 -#: js/musickeyboard.js:2044 -#: js/sampler.js:547 -#.TRANS: flat is a half-step down in pitch -#.TRANS: flat is a music term related to pitch -msgid "flat" +#: js/rubrics.js:525 +#: js/turtledefs.js:123 +#: js/turtledefs.js:225 +msgid "tone" msgstr "" -#: js/piemenus.js:204 -#: js/musicutils.js:800 -#: js/musicutils.js:828 -#: js/phrasemaker.js:1676 -#: js/musickeyboard.js:2045 -#: js/sampler.js:548 -#.TRANS: double flat is a music term related to pitch -msgid "double flat" +#: js/rubrics.js:526 +#: js/lilypond.js:605 +#: js/lilypond.js:904 +#: js/lilypond.js:910 +#: js/lilypond.js:948 +msgid "mouse" msgstr "" -#: js/piemenus.js:2861 -#: js/PitchBlocks.js:1357 -#: js/musicutils.js:627 -#.TRANS: unison means the note is the same as the current note -#.TRANS: unison is a music term related to intervals -msgid "unison" +#: js/rubrics.js:527 +#: js/turtledefs.js:132 +#: js/turtledefs.js:234 +#: js/widgets/phrasemaker.js:1040 +msgid "pen" msgstr "" -#: js/piemenus.js:3015 -#: js/piemenus.js:3088 -#: js/musicutils.js:635 -#: js/musicutils.js:810 -#: js/musicutils.js:912 -#.TRANS: major is a music term related to intervals and mode -msgid "major" +#: js/rubrics.js:528 +#: js/turtledefs.js:133 +#: js/turtledefs.js:235 +#: js/blocks/NumberBlocks.js:981 +#: js/blocks/PitchBlocks.js:1717 +#: js/blocks/PitchBlocks.js:1758 +msgid "number" msgstr "" -#: js/piemenus.js:3015 -#: js/piemenus.js:3088 -#: js/musicutils.js:653 -#.TRANS: modal scale for music -msgid "ionian" +#: js/rubrics.js:529 +#: js/turtledefs.js:127 +#: js/turtledefs.js:229 +msgid "flow" msgstr "" -#: js/piemenus.js:3017 -#: js/piemenus.js:3092 -#: js/musicutils.js:633 -#: js/musicutils.js:811 -#: js/musicutils.js:909 -#.TRANS: minor is a music term related to intervals and mode -msgid "minor" +#: js/rubrics.js:530 +#: js/turtledefs.js:128 +#: js/turtledefs.js:230 +#: js/block-verbose.js:1609 +#: js/block-verbose.js:4559 +#: js/block-verbose.js:4577 +#: js/block-verbose.js:4588 +#: js/block.js:1573 +#: js/block.js:4483 +#: js/block.js:4501 +#: js/block.js:4512 +#: js/blocks.js:1018 +#: js/blocks.js:3491 +#: js/blocks.js:3492 +#: js/blocks.js:3717 +#: js/blocks.js:4076 +#: js/blocks.js:4269 +#: js/blocks.js:5432 +#: js/blocks.js:6563 +#: js/macros.js:170 +#: js/macros.js:266 +#: js/macros.js:267 +#: js/macros.js:276 +#: js/macros.js:828 +#: js/palette.js:527 +#: js/palette.js:536 +#: js/palette.js:545 +#: js/palette.js:554 +#: js/palette.js:1129 +#: js/palette.js:1140 +#: js/palette.js:1151 +#: js/palette.js:1162 +#: js/palette.js:1181 +#: js/blocks/ActionBlocks.js:254 +#: js/blocks/ActionBlocks.js:307 +#: js/blocks/ActionBlocks.js:617 +#: js/blocks/ActionBlocks.js:716 +#: js/blocks/ActionBlocks.js:961 +#: js/blocks/ActionBlocks.js:1049 +#: js/blocks/ActionBlocks.js:1322 +#: js/blocks/ActionBlocks.js:1325 +#: js/blocks/ActionBlocks.js:1337 +#: js/blocks/ActionBlocks.js:1404 +#: js/blocks/MeterBlocks.js:715 +#: js/blocks/MeterBlocks.js:768 +#: js/blocks/MeterBlocks.js:831 +#: js/blocks/MeterBlocks.js:892 +#: js/widgets/musickeyboard.js:2986 +#: js/widgets/phrasemaker.js:4913 +#: js/widgets/rhythmruler.js:2319 +#: js/widgets/rhythmruler.js:2326 +#: js/widgets/rhythmruler.js:2511 +#: js/widgets/rhythmruler.js:2518 +msgid "action" msgstr "" -#: js/piemenus.js:3017 -#: js/piemenus.js:3092 -#: js/musicutils.js:663 -#.TRANS: modal scale for music -msgid "aeolian" +#: js/rubrics.js:531 +#: js/turtledefs.js:136 +#: js/turtledefs.js:238 +msgid "sensors" msgstr "" -#: js/piemenus.js:3407 -msgid "Duplicate" +#: js/rubrics.js:532 +#: js/turtledefs.js:135 +#: js/turtledefs.js:237 +#: js/blocks/MediaBlocks.js:930 +msgid "media" msgstr "" -#: js/piemenus.js:3408 -#: js/turtledefs.js:534 -msgid "Extract" +#: js/rubrics.js:533 +msgid "mice" msgstr "" -#: js/piemenus.js:3409 -msgid "Move to trash" +#: js/toolbar.js:48 +#: js/toolbar.js:109 +msgid "About Music Blocks" msgstr "" -#: js/piemenus.js:3410 -#: js/timbre.js:968 -#: js/StringHelper.js:69 -msgid "Close" +#: js/toolbar.js:49 +#: js/toolbar.js:110 +#: js/toolbar.js:175 +#: js/toolbar.js:231 +#: js/turtledefs.js:445 +#: js/turtledefs.js:482 +#: js/activity.js:2660 +#: js/activity.js:2671 +#: js/activity.js:2902 +#: js/widgets/modewidget.js:77 +#: js/widgets/meterwidget.js:185 +#: js/widgets/pitchdrummatrix.js:147 +#: js/widgets/pitchdrummatrix.js:687 +#: js/widgets/pitchdrummatrix.js:689 +#: js/widgets/pitchdrummatrix.js:741 +#: js/widgets/pitchdrummatrix.js:743 +#: js/widgets/pitchdrummatrix.js:758 +#: js/widgets/pitchdrummatrix.js:760 +#: js/widgets/pitchdrummatrix.js:789 +#: js/widgets/pitchdrummatrix.js:791 +#: js/widgets/pitchstaircase.js:121 +#: js/widgets/temperament.js:610 +#: js/widgets/temperament.js:613 +#: js/widgets/temperament.js:673 +#: js/widgets/temperament.js:675 +#: js/widgets/temperament.js:2017 +#: js/widgets/temperament.js:2019 +#: js/widgets/tempo.js:84 +#: js/widgets/tempo.js:86 +#: js/widgets/timbre.js:432 +#: js/widgets/timbre.js:434 +#: js/widgets/timbre.js:465 +#: js/widgets/timbre.js:467 +#: js/widgets/timbre.js:746 +#: js/widgets/aiwidget.js:647 +#: js/widgets/aiwidget.js:654 +#: js/widgets/aiwidget.js:656 +#: js/widgets/arpeggio.js:90 +#: js/widgets/arpeggio.js:547 +#: js/widgets/arpeggio.js:549 +#: js/widgets/arpeggio.js:644 +#: js/widgets/arpeggio.js:646 +#: js/widgets/musickeyboard.js:676 +#: js/widgets/musickeyboard.js:872 +#: js/widgets/musickeyboard.js:874 +#: js/widgets/musickeyboard.js:953 +#: js/widgets/musickeyboard.js:955 +#: js/widgets/phrasemaker.js:513 +#: js/widgets/phrasemaker.js:523 +#: js/widgets/phrasemaker.js:525 +#: js/widgets/phrasemaker.js:4304 +#: js/widgets/phrasemaker.js:4528 +#: js/widgets/phrasemaker.js:4533 +#: js/widgets/phrasemaker.js:4535 +#: js/widgets/phrasemaker.js:4650 +#: js/widgets/rhythmruler.js:637 +#: js/widgets/rhythmruler.js:639 +#: js/widgets/rhythmruler.js:653 +#: js/widgets/rhythmruler.js:655 +#: js/widgets/sampler.js:162 +#: js/widgets/sampler.js:164 +#: js/widgets/sampler.js:363 +msgid "Play" msgstr "" -#: js/piemenus.js:3416 -msgid "Save stack" +#: js/toolbar.js:50 +#: js/toolbar.js:111 +#: js/toolbar.js:176 +#: js/toolbar.js:232 +#: js/turtledefs.js:451 +#: js/turtledefs.js:488 +#: js/activity.js:2679 +#: js/widgets/modewidget.js:99 +#: js/widgets/modewidget.js:101 +#: js/widgets/meterwidget.js:206 +#: js/widgets/meterwidget.js:208 +#: js/widgets/pitchdrummatrix.js:674 +#: js/widgets/pitchdrummatrix.js:676 +#: js/widgets/temperament.js:2002 +#: js/widgets/temperament.js:2004 +#: js/widgets/arpeggio.js:534 +#: js/widgets/arpeggio.js:536 +#: js/widgets/phrasemaker.js:534 +#: js/widgets/phrasemaker.js:536 +msgid "Stop" msgstr "" -#: js/piemenus.js:3420 -#: js/toolbar.js:60 -#: js/toolbar.js:120 -#: js/toolbar.js:185 -#: js/toolbar.js:240 -#: js/turtledefs.js:752 -msgid "Help" +#: js/toolbar.js:51 +#: js/toolbar.js:112 +#: js/toolbar.js:177 +#: js/toolbar.js:233 +#: js/turtledefs.js:498 +msgid "Record" msgstr "" -#: js/piemenus.js:3762 -msgid "You have chosen key " +#: js/toolbar.js:52 +#: js/toolbar.js:53 +msgid "Full screen" msgstr "" -#: js/piemenus.js:3766 -msgid " for your pitch preview." +#: js/toolbar.js:54 +#: js/toolbar.js:115 +#: js/toolbar.js:180 +#: js/toolbar.js:236 +#: js/turtledefs.js:504 +msgid "Toggle Fullscreen" +msgstr "" + +#: js/toolbar.js:55 +#: js/toolbar.js:116 +#: js/toolbar.js:181 +#: js/toolbar.js:237 +#: js/turtledefs.js:510 +#: planet/js/StringHelper.js:33 +msgid "New project" +msgstr "" + +#: js/toolbar.js:56 +#: js/toolbar.js:117 +#: js/toolbar.js:182 +#: js/toolbar.js:238 +#: js/turtledefs.js:516 +msgid "Load project from file" +msgstr "" + +#: js/toolbar.js:57 +#: js/toolbar.js:118 +#: js/toolbar.js:119 +#: js/toolbar.js:183 +#: js/toolbar.js:239 +#: js/turtledefs.js:541 +#: js/turtledefs.js:550 +#: js/turtledefs.js:571 +msgid "Save project" +msgstr "" + +#: js/toolbar.js:58 +#: js/toolbar.js:77 +#: js/toolbar.js:79 +#: js/toolbar.js:138 +#: js/toolbar.js:147 +#: js/toolbar.js:149 +#: js/toolbar.js:184 +#: js/toolbar.js:202 +#: js/toolbar.js:204 +#: js/toolbar.js:240 +#: js/toolbar.js:258 +#: js/toolbar.js:260 +msgid "Save project as HTML" +msgstr "" + +#: js/toolbar.js:59 +#: js/toolbar.js:120 +#: js/toolbar.js:185 +#: js/toolbar.js:241 +msgid "Find and share projects" +msgstr "" + +#: js/toolbar.js:60 +#: js/toolbar.js:121 +#: js/toolbar.js:186 +#: js/toolbar.js:242 +msgid "Offline. Sharing is unavailable" +msgstr "" + +#: js/toolbar.js:61 +#: js/toolbar.js:122 +#: js/toolbar.js:187 +#: js/toolbar.js:243 +msgid "Auxiliary menu" +msgstr "" + +#: js/toolbar.js:62 +#: js/toolbar.js:123 +#: js/toolbar.js:188 +#: js/toolbar.js:244 +#: js/turtledefs.js:752 +#: js/piemenus.js:3423 +msgid "Help" +msgstr "" + +#: js/toolbar.js:63 +#: js/toolbar.js:124 +#: js/toolbar.js:189 +#: js/toolbar.js:245 +msgid "Run slowly" +msgstr "" + +#: js/toolbar.js:64 +#: js/toolbar.js:125 +#: js/toolbar.js:190 +#: js/toolbar.js:246 +#: js/turtledefs.js:682 +msgid "Run step by step" +msgstr "" + +#: js/toolbar.js:65 +#: js/toolbar.js:126 +#: js/toolbar.js:191 +#: js/toolbar.js:247 +#: js/turtledefs.js:689 +msgid "Display statistics" +msgstr "" + +#: js/toolbar.js:66 +#: js/toolbar.js:127 +#: js/toolbar.js:192 +#: js/toolbar.js:248 +msgid "Load plugin" +msgstr "" + +#: js/toolbar.js:67 +#: js/toolbar.js:128 +#: js/toolbar.js:193 +#: js/toolbar.js:249 +#: js/turtledefs.js:696 +msgid "Delete plugin" +msgstr "" + +#: js/toolbar.js:68 +#: js/toolbar.js:129 +#: js/toolbar.js:194 +#: js/toolbar.js:250 +msgid "Enable horizontal scrolling" +msgstr "" + +#: js/toolbar.js:69 +#: js/toolbar.js:130 +#: js/toolbar.js:195 +#: js/toolbar.js:251 +msgid "Disable horizontal scrolling" +msgstr "" + +#: js/toolbar.js:70 +#: js/toolbar.js:131 +#: js/toolbar.js:196 +#: js/toolbar.js:252 +#: planet/js/LocalCard.js:54 +#: planet/js/StringHelper.js:71 +msgid "Merge with current project" +msgstr "" + +#: js/toolbar.js:71 +#: js/toolbar.js:132 +msgid "Set Pitch Preview" +msgstr "" + +#: js/toolbar.js:72 +#: js/toolbar.js:133 +#: js/toolbar.js:197 +#: js/toolbar.js:253 +msgid "JavaScript Editor" +msgstr "" + +#: js/toolbar.js:73 +#: js/toolbar.js:134 +#: js/toolbar.js:198 +#: js/toolbar.js:254 +#: js/turtledefs.js:724 +msgid "Restore" +msgstr "" + +#: js/toolbar.js:74 +#: js/toolbar.js:135 +#: js/toolbar.js:199 +#: js/toolbar.js:255 +msgid "Switch to beginner mode" +msgstr "" + +#: js/toolbar.js:75 +#: js/toolbar.js:136 +#: js/toolbar.js:200 +#: js/toolbar.js:256 +msgid "Switch to advanced mode" +msgstr "" + +#: js/toolbar.js:76 +#: js/toolbar.js:137 +#: js/toolbar.js:146 +#: js/toolbar.js:201 +#: js/toolbar.js:257 +#: js/turtledefs.js:738 +msgid "Select language" +msgstr "" + +#: js/toolbar.js:78 +#: js/toolbar.js:81 +#: js/toolbar.js:140 +#: js/turtledefs.js:579 +msgid "Save mouse artwork as PNG" +msgstr "" + +#: js/toolbar.js:80 +#: js/toolbar.js:139 +#: js/turtledefs.js:575 +msgid "Save mouse artwork as SVG" +msgstr "" + +#: js/toolbar.js:82 +#: js/toolbar.js:141 +#: js/turtledefs.js:583 +msgid "Save music as WAV" +msgstr "" + +#: js/toolbar.js:83 +#: js/toolbar.js:142 +#: js/turtledefs.js:587 +msgid "Save sheet music as ABC" +msgstr "" + +#: js/toolbar.js:84 +#: js/toolbar.js:143 +#: js/turtledefs.js:591 +msgid "Save sheet music as Lilypond" +msgstr "" + +#: js/toolbar.js:85 +msgid "Save sheet music as MusicXML" +msgstr "" + +#: js/toolbar.js:86 +#: js/toolbar.js:144 +#: js/toolbar.js:152 +#: js/toolbar.js:207 +#: js/toolbar.js:263 +#: js/turtledefs.js:562 +#: js/turtledefs.js:595 +msgid "Save block artwork as SVG" +msgstr "" + +#: js/toolbar.js:87 +#: js/toolbar.js:145 +#: js/toolbar.js:153 +#: js/toolbar.js:208 +#: js/toolbar.js:264 +#: js/turtles.js:911 +msgid "Confirm" +msgstr "" + +#: js/toolbar.js:88 +#: js/toolbar.js:154 +#: js/toolbar.js:209 +#: js/toolbar.js:265 +msgid "English (United States)" +msgstr "" + +#: js/toolbar.js:89 +#: js/toolbar.js:155 +#: js/toolbar.js:210 +#: js/toolbar.js:266 +msgid "English (United Kingdom)" +msgstr "" + +#: js/toolbar.js:90 +#: js/toolbar.js:156 +#: js/toolbar.js:211 +#: js/toolbar.js:267 +msgid "日本語" +msgstr "" + +#: js/toolbar.js:91 +msgid "한국어" +msgstr "" + +#: js/toolbar.js:92 +#: js/toolbar.js:158 +#: js/toolbar.js:213 +#: js/toolbar.js:269 +msgid "español" +msgstr "" + +#: js/toolbar.js:93 +#: js/toolbar.js:159 +#: js/toolbar.js:214 +#: js/toolbar.js:270 +msgid "português" +msgstr "" + +#: js/toolbar.js:94 +#: js/toolbar.js:160 +#: js/toolbar.js:215 +#: js/toolbar.js:271 +msgid "にほんご" +msgstr "" + +#: js/toolbar.js:95 +#: js/toolbar.js:161 +#: js/toolbar.js:216 +#: js/toolbar.js:272 +msgid "中文" +msgstr "" + +#: js/toolbar.js:96 +#: js/toolbar.js:162 +#: js/toolbar.js:217 +#: js/toolbar.js:273 +msgid "ภาษาไทย" +msgstr "" + +#: js/toolbar.js:97 +#: js/toolbar.js:163 +#: js/toolbar.js:218 +#: js/toolbar.js:274 +msgid "aymara" +msgstr "" + +#: js/toolbar.js:98 +#: js/toolbar.js:164 +#: js/toolbar.js:219 +#: js/toolbar.js:275 +msgid "quechua" +msgstr "" + +#: js/toolbar.js:99 +#: js/toolbar.js:165 +#: js/toolbar.js:220 +#: js/toolbar.js:276 +msgid "guarani" +msgstr "" + +#: js/toolbar.js:100 +#: js/toolbar.js:166 +#: js/toolbar.js:221 +#: js/toolbar.js:277 +msgid "हिंदी" +msgstr "" + +#: js/toolbar.js:101 +#: js/toolbar.js:168 +#: js/toolbar.js:222 +#: js/toolbar.js:279 +msgid "igbo" +msgstr "" + +#: js/toolbar.js:102 +#: js/toolbar.js:169 +#: js/toolbar.js:223 +#: js/toolbar.js:280 +msgid "عربى" +msgstr "" + +#: js/toolbar.js:103 +#: js/toolbar.js:167 +#: js/toolbar.js:224 +#: js/toolbar.js:278 +msgid "తెలుగు" +msgstr "" + +#: js/toolbar.js:104 +#: js/toolbar.js:170 +#: js/toolbar.js:225 +#: js/toolbar.js:281 +msgid "עִברִית" +msgstr "" + +#: js/toolbar.js:113 +#: js/toolbar.js:114 +#: js/toolbar.js:178 +#: js/toolbar.js:179 +#: js/toolbar.js:234 +#: js/toolbar.js:235 +msgid "Full Screen" +msgstr "" + +#: js/toolbar.js:148 +#: js/toolbar.js:151 +#: js/toolbar.js:203 +#: js/toolbar.js:206 +#: js/toolbar.js:259 +#: js/toolbar.js:262 +#: js/turtledefs.js:558 +msgid "Save turtle artwork as PNG" +msgstr "" + +#: js/toolbar.js:150 +#: js/toolbar.js:205 +#: js/toolbar.js:261 +#: js/turtledefs.js:554 +msgid "Save turtle artwork as SVG" +msgstr "" + +#: js/toolbar.js:157 +#: js/toolbar.js:212 +#: js/toolbar.js:268 +msgid "한국인" +msgstr "" + +#: js/toolbar.js:174 +#: js/toolbar.js:230 +msgid "About Turtle Blocks" +msgstr "" + +#: js/toolbar.js:446 +#: js/toolbar.js:457 +#: js/toolbar.js:497 +msgid "Turtle Wrap Off" +msgstr "" + +#: js/toolbar.js:466 +#: js/toolbar.js:506 +msgid "Turtle Wrap On" +msgstr "" + +#: js/turtle-painter.js:1192 +#: js/turtle-painter.js:1193 +#: js/turtles.js:118 +#: js/block-verbose.js:1623 +#: js/block.js:1587 +#: js/lilypond.js:749 +#: js/lilypond.js:913 +#: js/lilypond.js:951 +#: js/logo.js:1184 +#: js/blocks/ActionBlocks.js:1223 +#: js/blocks/ProgramBlocks.js:1267 +msgid "start" +msgstr "" + +#: js/turtledefs.js:40 +#.TRANS: put the URL to the guide here, e.g., https://github.com/sugarlabs/turtleblocksjs/tree/master/guide/README.md +msgid "guide url" +msgstr "" + +#: js/turtledefs.js:85 +#: js/turtledefs.js:437 +msgid "Turtle Blocks is a Logo-inspired turtle that draws colorful pictures with snap-together visual-programming blocks." +msgstr "" + +#: js/turtledefs.js:118 +#: js/turtledefs.js:220 +msgid "search" +msgstr "" + +#: js/turtledefs.js:120 +#: js/turtledefs.js:222 +#: js/blocks/MeterBlocks.js:1343 +#: js/blocks/WidgetBlocks.js:522 +#.TRANS: musical meter (time signature), e.g., 4:4 +msgid "meter" +msgstr "" + +#: js/turtledefs.js:122 +#: js/turtledefs.js:224 +msgid "intervals" +msgstr "" + +#: js/turtledefs.js:124 +#: js/turtledefs.js:226 +msgid "ornament" +msgstr "" + +#: js/turtledefs.js:125 +#: js/turtledefs.js:227 +#: js/blocks/VolumeBlocks.js:362 +#: js/blocks/VolumeBlocks.js:502 +#: js/blocks/VolumeBlocks.js:545 +msgid "volume" +msgstr "" + +#: js/turtledefs.js:126 +#: js/turtledefs.js:228 +#: js/block-verbose.js:1700 +#: js/block-verbose.js:2626 +#: js/block.js:1664 +#: js/block.js:2554 +#: js/lilypond.js:732 +#: js/lilypond.js:897 +#: js/lilypond.js:941 +#: js/palette.js:577 +#: js/blocks/RhythmBlocks.js:766 +#: js/blocks/DrumBlocks.js:477 +#: js/blocks/VolumeBlocks.js:502 +#: js/widgets/phrasemaker.js:1038 +msgid "drum" +msgstr "" + +#: js/turtledefs.js:129 +#: js/turtledefs.js:231 +msgid "boxes" +msgstr "" + +#: js/turtledefs.js:130 +#: js/turtledefs.js:232 +msgid "widgets" +msgstr "" + +#: js/turtledefs.js:131 +#: js/turtledefs.js:233 +#: js/widgets/phrasemaker.js:1039 +msgid "graphics" +msgstr "" + +#: js/turtledefs.js:134 +#: js/turtledefs.js:236 +msgid "boolean" +msgstr "" + +#: js/turtledefs.js:137 +#: js/turtledefs.js:239 +#: js/blocks/HeapBlocks.js:59 +#: js/widgets/status.js:147 +msgid "heap" +msgstr "" + +#: js/turtledefs.js:138 +#: js/turtledefs.js:240 +#: js/blocks/DictBlocks.js:142 +#: js/blocks/ProgramBlocks.js:495 +msgid "dictionary" +msgstr "" + +#: js/turtledefs.js:139 +#: js/turtledefs.js:241 +msgid "ensemble" +msgstr "" + +#: js/turtledefs.js:140 +#: js/turtledefs.js:242 +msgid "extras" +msgstr "" + +#: js/turtledefs.js:142 +#: js/turtledefs.js:244 +#.TRANS: program as in computer program +#.TRANS: program as in computer program +msgid "program" +msgstr "" + +#: js/turtledefs.js:143 +#: js/turtledefs.js:245 +msgid "my blocks" +msgstr "" + +#: js/turtledefs.js:185 +#: js/turtledefs.js:281 +msgid "artwork" +msgstr "" + +#: js/turtledefs.js:185 +#: js/turtledefs.js:281 +msgid "logic" +msgstr "" + +#: js/turtledefs.js:185 +#: js/turtledefs.js:281 +msgid "music" +msgstr "" + +#: js/turtledefs.js:187 +#: js/turtledefs.js:463 +msgid "Music Blocks is a collection of tools for exploring fundamental musical concepts in a fun way." +msgstr "" + +#: js/turtledefs.js:436 +msgid "Welcome to Turtle Blocks" +msgstr "" + +#: js/turtledefs.js:438 +#: js/turtledefs.js:465 +#: js/turtledefs.js:774 +#: js/turtledefs.js:805 +msgid "The current version is" +msgstr "" + +#: js/turtledefs.js:446 +#: js/turtledefs.js:483 +msgid "Click the run button to run the project in fast mode." +msgstr "" + +#: js/turtledefs.js:452 +msgid "Stop the turtle." +msgstr "" + +#: js/turtledefs.js:454 +#: js/turtledefs.js:491 +msgid "You can also type Alt-S to stop." +msgstr "" + +#: js/turtledefs.js:462 +#: js/widgets/help.js:333 +msgid "Welcome to Music Blocks" +msgstr "" + +#: js/turtledefs.js:472 +#: js/widgets/help.js:334 +msgid "Meet Mr. Mouse!" +msgstr "" + +#: js/turtledefs.js:473 +msgid "Mr Mouse is our Music Blocks conductor." +msgstr "" + +#: js/turtledefs.js:475 +msgid "Mr Mouse encourages you to explore Music Blocks." +msgstr "" + +#: js/turtledefs.js:477 +msgid "Let us start our tour!" +msgstr "" + +#: js/turtledefs.js:489 +msgid "Stop the music (and the mice)." +msgstr "" + +#: js/turtledefs.js:499 +msgid "Record your project as video." +msgstr "" + +#: js/turtledefs.js:505 +msgid "Toggle Fullscreen mode." +msgstr "" + +#: js/turtledefs.js:511 +msgid "Initialize a new project." +msgstr "" + +#: js/turtledefs.js:517 +msgid "You can also load projects from the file system." +msgstr "" + +#: js/turtledefs.js:522 +#: planet/js/StringHelper.js:46 +msgid "Delete" +msgstr "" + +#: js/turtledefs.js:523 +msgid "To delete a block, just right-click on it, then you will be able to see the delete option" +msgstr "" + +#: js/turtledefs.js:528 +#: js/activity.js:2649 +#: planet/js/LocalCard.js:31 +msgid "Copy" +msgstr "" + +#: js/turtledefs.js:529 +msgid "To copy a block, just right-click on it, then you will be able to see the copy option" +msgstr "" + +#: js/turtledefs.js:534 +#: js/piemenus.js:3411 +msgid "Extract" +msgstr "" + +#: js/turtledefs.js:535 +msgid "To extract a block, just right-click on it, then you will be able to see the extract option" +msgstr "" + +#: js/turtledefs.js:542 +#: js/turtledefs.js:552 +#: js/turtledefs.js:573 +msgid "Save your project to a file." +msgstr "" + +#: js/turtledefs.js:549 +#: js/turtledefs.js:570 +msgid "save" +msgstr "" + +#: js/turtledefs.js:556 +#: js/turtledefs.js:577 +msgid "Save graphics from your project to as SVG." +msgstr "" + +#: js/turtledefs.js:560 +#: js/turtledefs.js:581 +msgid "Save graphics from your project as PNG." +msgstr "" + +#: js/turtledefs.js:564 +#: js/turtledefs.js:597 +msgid "Save block artwork as an SVG file." +msgstr "" + +#: js/turtledefs.js:585 +msgid "Save audio from your project as WAV." +msgstr "" + +#: js/turtledefs.js:589 +msgid "Save your project to as an ABC file." +msgstr "" + +#: js/turtledefs.js:593 +msgid "Save your project to as a Lilypond file." +msgstr "" + +#: js/turtledefs.js:604 +msgid "Load samples from server" +msgstr "" + +#: js/turtledefs.js:605 +msgid "This button opens a viewer for loading example projects." +msgstr "" + +#: js/turtledefs.js:611 +msgid "Palette buttons" +msgstr "" + +#: js/turtledefs.js:612 +msgid "This toolbar contains the palette buttons including Rhythm Pitch Tone Action and more." +msgstr "" + +#: js/turtledefs.js:614 +msgid "Click to show the palettes of blocks and drag blocks from the palettes onto the canvas to use them." +msgstr "" + +#: js/turtledefs.js:620 +msgid "Cartesian/Polar" +msgstr "" + +#: js/turtledefs.js:621 +msgid "Show or hide a coordinate grid." +msgstr "" + +#: js/turtledefs.js:626 +#: js/turtles.js:902 +msgid "Clean" +msgstr "" + +#: js/turtledefs.js:627 +msgid "Clear the screen and return the mice to their initial positions." +msgstr "" + +#: js/turtledefs.js:632 +#: js/turtles.js:955 +msgid "Collapse" +msgstr "" + +#: js/turtledefs.js:633 +msgid "Collapse the graphics window." msgstr "" -#: js/palette.js:571 -msgid "grid" +#: js/turtledefs.js:638 +#: js/activity.js:5684 +msgid "Home" msgstr "" -#: js/palette.js:577 -#: js/block.js:1540 -#: js/block.js:2343 -#: js/turtledefs.js:126 -#: js/turtledefs.js:228 -#: js/lilypond.js:740 -#: js/lilypond.js:905 -#: js/lilypond.js:949 -#: js/DrumBlocks.js:486 -#: js/RhythmBlocks.js:766 -#: js/VolumeBlocks.js:502 -#: js/phrasemaker.js:823 -msgid "drum" +#: js/turtledefs.js:639 +msgid "Return all blocks to the center of the screen." msgstr "" -#: js/palette.js:580 -msgid "effect" +#: js/turtledefs.js:644 +msgid "Show/hide blocks" msgstr "" -#: js/palette.js:586 -msgid "sargam" +#: js/turtledefs.js:645 +msgid "Hide or show the blocks and the palettes." msgstr "" -#: js/palette.js:589 -#: js/activity.js:1833 -#: js/RhythmBlocks.js:923 -#: js/PitchBlocks.js:442 -#: js/PitchBlocks.js:1748 -#.TRANS: a numeric mapping of the notes in an octave based on the musical mode -msgid "scale degree" +#: js/turtledefs.js:650 +msgid "Expand/collapse collapsable blocks" msgstr "" -#: js/palette.js:592 -#: js/activity.js:1860 -msgid "mode name" +#: js/turtledefs.js:651 +msgid "Expand or collapse start and action stacks." msgstr "" -#: js/palette.js:595 -#: js/activity.js:1839 -msgid "invert mode" +#: js/turtledefs.js:658 +#: js/activity.js:5704 +msgid "Decrease block size" msgstr "" -#: js/palette.js:598 -#: js/activity.js:1836 -msgid "voice name" +#: js/turtledefs.js:659 +msgid "Decrease the size of the blocks." msgstr "" -#: js/palette.js:601 -#: js/PitchBlocks.js:1181 -msgid "custom pitch" +#: js/turtledefs.js:664 +#: js/activity.js:5710 +msgid "Increase block size" msgstr "" -#: js/palette.js:605 -#: js/block.js:1456 -#: js/block.js:1575 -#: js/WidgetBlocks.js:218 -#: js/IntervalsBlocks.js:63 -msgid "temperament" +#: js/turtledefs.js:665 +msgid "Increase the size of the blocks." msgstr "" -#: js/palette.js:609 -msgid "accidental" +#: js/turtledefs.js:670 +msgid "Expand/collapse option toolbar" msgstr "" -#: js/palette.js:615 -#: js/activity.js:1866 -msgid "interval name" +#: js/turtledefs.js:671 +msgid "Click this button to expand or collapse the auxillary toolbar." msgstr "" -#: js/palette.js:633 -#: js/PitchBlocks.js:405 -msgid "pitch converter" +#: js/turtledefs.js:676 +msgid "Run slow" msgstr "" -#: js/rubrics.js:522 -#: js/turtledefs.js:119 -#: js/turtledefs.js:221 -#: js/RhythmBlockPaletteBlocks.js:52 -#: js/RhythmBlockPaletteBlocks.js:233 -#: js/ProgramBlocks.js:745 -#: js/rhythmruler.js:1670 -#: js/rhythmruler.js:1677 -#: js/rhythmruler.js:1745 -#: js/rhythmruler.js:1752 -#: js/rhythmruler.js:1830 -#.TRANS: an arrangement of notes based on duration -msgid "rhythm" +#: js/turtledefs.js:677 +msgid "Click to run the project in slow mode." msgstr "" -#: js/rubrics.js:523 -#: js/block.js:2339 -#: js/turtledefs.js:121 -#: js/turtledefs.js:223 -#: js/IntervalsBlocks.js:63 -#: js/PitchBlocks.js:1801 -#: js/PitchBlocks.js:1814 -#: js/SensorsBlocks.js:178 -#: js/phrasemaker.js:821 -#: js/musickeyboard.js:1653 -#.TRANS: pitch number -#.TRANS: we specify pitch in terms of a name and an octave. The name can be CDEFGAB or Do Re Mi Fa Sol La Ti. Octave is a number between 1 and 8. -msgid "pitch" +#: js/turtledefs.js:683 +msgid "Click to run the project step by step." msgstr "" -#: js/rubrics.js:524 -#: js/turtledefs.js:123 -#: js/turtledefs.js:225 -msgid "tone" +#: js/turtledefs.js:690 +msgid "Display statistics about your Music project." msgstr "" -#: js/rubrics.js:525 -#: js/lilypond.js:613 -#: js/lilypond.js:912 -#: js/lilypond.js:918 -#: js/lilypond.js:956 -msgid "mouse" +#: js/turtledefs.js:697 +msgid "Delete a selected plugin." msgstr "" -#: js/rubrics.js:526 -#: js/turtledefs.js:132 -#: js/turtledefs.js:234 -#: js/phrasemaker.js:825 -msgid "pen" +#: js/turtledefs.js:704 +msgid "Enable scrolling" msgstr "" -#: js/rubrics.js:527 -#: js/turtledefs.js:133 -#: js/turtledefs.js:235 -#: js/NumberBlocks.js:905 -#: js/PitchBlocks.js:1679 -#: js/PitchBlocks.js:1720 -msgid "number" +#: js/turtledefs.js:705 +msgid "You can scroll the blocks on the canvas." msgstr "" -#: js/rubrics.js:528 -#: js/turtledefs.js:127 -#: js/turtledefs.js:229 -msgid "flow" +#: js/turtledefs.js:714 +msgid "Wrap Turtle" msgstr "" -#: js/rubrics.js:530 -#: js/turtledefs.js:136 -#: js/turtledefs.js:238 -msgid "sensors" +#: js/turtledefs.js:715 +msgid "Turn Turtle wrapping On or Off." msgstr "" -#: js/rubrics.js:531 -#: js/turtledefs.js:135 -#: js/turtledefs.js:237 -#: js/MediaBlocks.js:930 -msgid "media" +#: js/turtledefs.js:725 +msgid "Restore blocks from the trash." msgstr "" -#: js/rubrics.js:532 -msgid "mice" +#: js/turtledefs.js:732 +msgid "Switch mode" msgstr "" -#: js/macros.js:711 -#: js/musicutils.js:783 -#: js/synthutils.js:181 -#.TRANS: animal sound effect -msgid "duck" +#: js/turtledefs.js:733 +msgid "Switch between beginner and advance modes." msgstr "" -#: js/toolbar.js:46 -#: js/toolbar.js:107 -msgid "About Music Blocks" +#: js/turtledefs.js:739 +msgid "Select your language preference." msgstr "" -#: js/toolbar.js:47 -#: js/toolbar.js:108 -#: js/toolbar.js:172 -#: js/toolbar.js:228 -#: js/turtledefs.js:445 -#: js/turtledefs.js:482 -#: js/activity.js:2281 -#: js/activity.js:2289 -#: js/activity.js:2520 -#: js/modewidget.js:77 -#: js/pitchstaircase.js:121 -#: js/phrasemaker.js:302 -#: js/phrasemaker.js:312 -#: js/phrasemaker.js:314 -#: js/phrasemaker.js:3901 -#: js/phrasemaker.js:4061 -#: js/phrasemaker.js:4066 -#: js/phrasemaker.js:4068 -#: js/phrasemaker.js:4183 -#: js/pitchdrummatrix.js:81 -#: js/pitchdrummatrix.js:574 -#: js/pitchdrummatrix.js:576 -#: js/pitchdrummatrix.js:628 -#: js/pitchdrummatrix.js:630 -#: js/pitchdrummatrix.js:645 -#: js/pitchdrummatrix.js:647 -#: js/pitchdrummatrix.js:674 -#: js/pitchdrummatrix.js:676 -#: js/temperament.js:477 -#: js/temperament.js:480 -#: js/temperament.js:540 -#: js/temperament.js:542 -#: js/temperament.js:1835 -#: js/temperament.js:1837 -#: js/temperament.js:1986 -#: js/temperament.js:1988 -#: js/musickeyboard.js:522 -#: js/musickeyboard.js:682 -#: js/musickeyboard.js:684 -#: js/musickeyboard.js:756 -#: js/musickeyboard.js:758 -#: js/rhythmruler.js:298 -#: js/rhythmruler.js:300 -#: js/rhythmruler.js:314 -#: js/rhythmruler.js:316 -#: js/sampler.js:96 -#: js/sampler.js:98 -#: js/sampler.js:229 -#: js/sampler.js:235 -#: js/sampler.js:237 -#: js/tempo.js:84 -#: js/tempo.js:86 -#: js/timbre.js:432 -#: js/timbre.js:434 -#: js/timbre.js:465 -#: js/timbre.js:467 -#: js/timbre.js:746 -#: js/meterwidget.js:80 -#: js/arpeggio.js:90 -#: js/arpeggio.js:547 -#: js/arpeggio.js:549 -#: js/arpeggio.js:644 -#: js/arpeggio.js:646 -msgid "Play" +#: js/turtledefs.js:745 +msgid "Keyboard shortcuts" msgstr "" -#: js/toolbar.js:48 -#: js/toolbar.js:109 -#: js/toolbar.js:173 -#: js/toolbar.js:229 -#: js/turtledefs.js:451 -#: js/turtledefs.js:488 -#: js/activity.js:2297 -#: js/modewidget.js:99 -#: js/modewidget.js:101 -#: js/phrasemaker.js:323 -#: js/phrasemaker.js:325 -#: js/pitchdrummatrix.js:561 -#: js/pitchdrummatrix.js:563 -#: js/temperament.js:1820 -#: js/temperament.js:1822 -#: js/meterwidget.js:101 -#: js/meterwidget.js:103 -#: js/arpeggio.js:534 -#: js/arpeggio.js:536 -msgid "Stop" +#: js/turtledefs.js:746 +msgid "You can type d to create a do block and r to create a re block etc." msgstr "" -#: js/toolbar.js:49 -#: js/toolbar.js:110 -#: js/toolbar.js:174 -#: js/toolbar.js:230 -#: js/turtledefs.js:498 -msgid "Record" +#: js/turtledefs.js:753 +msgid "Show these messages." msgstr "" -#: js/toolbar.js:50 -#: js/toolbar.js:51 -msgid "Full screen" +#: js/turtledefs.js:759 +#: js/turtledefs.js:790 +#: js/widgets/help.js:335 +msgid "Guide" msgstr "" -#: js/toolbar.js:52 -#: js/toolbar.js:112 -#: js/toolbar.js:177 -#: js/toolbar.js:232 -#: js/turtledefs.js:504 -msgid "Toggle Fullscreen" +#: js/turtledefs.js:760 +msgid "A detailed guide to Turtle Blocks is available." msgstr "" -#: js/toolbar.js:53 -#: js/toolbar.js:113 -#: js/toolbar.js:178 -#: js/toolbar.js:233 -#: js/turtledefs.js:510 -#: js/StringHelper.js:33 -msgid "New project" +#: js/turtledefs.js:764 +msgid "Turtle Blocks Guide" msgstr "" -#: js/toolbar.js:54 -#: js/toolbar.js:114 -#: js/toolbar.js:179 -#: js/toolbar.js:234 -#: js/turtledefs.js:516 -msgid "Load project from file" +#: js/turtledefs.js:767 +#: js/turtledefs.js:798 +#: js/widgets/help.js:336 +msgid "About" msgstr "" -#: js/toolbar.js:55 -#: js/toolbar.js:115 -#: js/toolbar.js:116 -#: js/toolbar.js:180 -#: js/toolbar.js:235 -#: js/turtledefs.js:541 -#: js/turtledefs.js:550 -#: js/turtledefs.js:571 -msgid "Save project" +#: js/turtledefs.js:768 +msgid "Turtle Blocks is an open source collection of tools for exploring musical concepts." msgstr "" -#: js/toolbar.js:56 -#: js/toolbar.js:75 -#: js/toolbar.js:77 -#: js/toolbar.js:135 -#: js/toolbar.js:144 -#: js/toolbar.js:146 -#: js/toolbar.js:181 -#: js/toolbar.js:199 -#: js/toolbar.js:201 -#: js/toolbar.js:236 -#: js/toolbar.js:254 -#: js/toolbar.js:256 -msgid "Save project as HTML" +#: js/turtledefs.js:770 +msgid "A full list of contributors can be found in the Turtle Blocks GitHub repository." +msgstr "" + +#: js/turtledefs.js:772 +msgid "Turtle Blocks is licensed under the AGPL." +msgstr "" + +#: js/turtledefs.js:780 +msgid "Turtle Blocks GitHub repository" +msgstr "" + +#: js/turtledefs.js:783 +#: js/turtledefs.js:814 +#: js/widgets/help.js:337 +#: js/widgets/help.js:359 +msgid "Congratulations." +msgstr "" + +#: js/turtledefs.js:784 +msgid "You have finished the tour. Please enjoy Turtle Blocks!" +msgstr "" + +#: js/turtledefs.js:791 +msgid "A detailed guide to Music Blocks is available." +msgstr "" + +#: js/turtledefs.js:799 +msgid "Music Blocks is an open source collection of tools for exploring musical concepts." +msgstr "" + +#: js/turtledefs.js:801 +msgid "A full list of contributors can be found in the Music Blocks GitHub repository." +msgstr "" + +#: js/turtledefs.js:803 +msgid "Music Blocks is licensed under the AGPL." +msgstr "" + +#: js/turtledefs.js:811 +msgid "Music Blocks GitHub repository" +msgstr "" + +#: js/turtledefs.js:815 +msgid "You have finished the tour. Please enjoy Music Blocks!" +msgstr "" + +#: js/turtles.js:882 +msgid "Grid" +msgstr "" + +#: js/turtles.js:1024 +msgid "Expand" +msgstr "" + +#: js/block-verbose.js:1616 +#: js/block-verbose.js:1735 +#: js/block.js:1580 +#: js/block.js:1699 +#: js/palette.js:605 +#: js/blocks/IntervalsBlocks.js:63 +#: js/blocks/WidgetBlocks.js:259 +msgid "temperament" +msgstr "" + +#: js/block-verbose.js:1630 +#: js/block.js:1594 +msgid "matrix" msgstr "" -#: js/toolbar.js:57 -#: js/toolbar.js:117 -#: js/toolbar.js:182 -#: js/toolbar.js:237 -msgid "Find and share projects" +#: js/block-verbose.js:1637 +#: js/block.js:1601 +#: js/blocks/WidgetBlocks.js:1509 +#: plugins/rodi.rtp:324 +msgid "status" msgstr "" -#: js/toolbar.js:58 -#: js/toolbar.js:118 -#: js/toolbar.js:183 -#: js/toolbar.js:238 -msgid "Offline. Sharing is unavailable" +#: js/block-verbose.js:1644 +#: js/block.js:1608 +msgid "drum mapper" msgstr "" -#: js/toolbar.js:59 -#: js/toolbar.js:119 -#: js/toolbar.js:184 -#: js/toolbar.js:239 -msgid "Auxiliary menu" +#: js/block-verbose.js:1651 +#: js/block.js:1615 +msgid "ruler" msgstr "" -#: js/toolbar.js:61 -#: js/toolbar.js:121 -#: js/toolbar.js:186 -#: js/toolbar.js:241 -msgid "Run slowly" +#: js/block-verbose.js:1658 +#: js/block.js:1622 +#: js/blocks/WidgetBlocks.js:397 +#.TRANS: timbre is the character or quality of a musical sound +msgid "timbre" msgstr "" -#: js/toolbar.js:62 -#: js/toolbar.js:122 -#: js/toolbar.js:187 -#: js/toolbar.js:242 -#: js/turtledefs.js:682 -msgid "Run step by step" +#: js/block-verbose.js:1665 +#: js/block.js:1629 +msgid "stair" msgstr "" -#: js/toolbar.js:63 -#: js/toolbar.js:123 -#: js/toolbar.js:188 -#: js/toolbar.js:243 -#: js/turtledefs.js:689 -msgid "Display statistics" +#: js/block-verbose.js:1672 +#: js/block.js:1636 +#: js/blocks/WidgetBlocks.js:707 +#.TRANS: the speed at music is should be played. +msgid "tempo" msgstr "" -#: js/toolbar.js:64 -#: js/toolbar.js:124 -#: js/toolbar.js:189 -#: js/toolbar.js:244 -msgid "Load plugin" +#: js/block-verbose.js:1679 +#: js/block-verbose.js:1742 +#: js/block.js:1643 +#: js/block.js:1706 +#: js/blocks/IntervalsBlocks.js:1464 +#.TRANS: mode, e.g., Major in C Major +msgid "mode" msgstr "" -#: js/toolbar.js:65 -#: js/toolbar.js:125 -#: js/toolbar.js:190 -#: js/toolbar.js:245 -#: js/turtledefs.js:696 -msgid "Delete plugin" +#: js/block-verbose.js:1686 +#: js/block.js:1650 +msgid "slider" msgstr "" -#: js/toolbar.js:66 -#: js/toolbar.js:126 -#: js/toolbar.js:191 -#: js/toolbar.js:246 -msgid "Enable horizontal scrolling" +#: js/block-verbose.js:1693 +#: js/block.js:1657 +#: js/blocks/SensorsBlocks.js:1001 +msgid "keyboard" msgstr "" -#: js/toolbar.js:67 -#: js/toolbar.js:127 -#: js/toolbar.js:192 -#: js/toolbar.js:247 -msgid "Disable horizontal scrolling" +#: js/block-verbose.js:1707 +#: js/block.js:1671 +#: js/blocks/WidgetBlocks.js:1190 +#: js/blocks/WidgetBlocks.js:1228 +#.TRANS: widget for subdividing a measure into distinct rhythmic elements +msgid "rhythm maker" msgstr "" -#: js/toolbar.js:68 -#: js/toolbar.js:128 -#: js/toolbar.js:193 -#: js/toolbar.js:248 -#: js/LocalCard.js:54 -#: js/StringHelper.js:71 -msgid "Merge with current project" +#: js/block-verbose.js:1714 +#: js/block-verbose.js:2457 +#: js/block-verbose.js:2514 +#: js/block.js:1678 +#: js/block.js:2385 +#: js/block.js:2442 +#: js/blocks/MeterBlocks.js:1367 +#: js/blocks/OrnamentBlocks.js:220 +#: js/blocks/OrnamentBlocks.js:312 +#: js/blocks/RhythmBlocks.js:33 +#: js/blocks/RhythmBlocks.js:356 +#: js/blocks/RhythmBlocks.js:766 +#: js/blocks/RhythmBlocks.js:806 +#: js/blocks/RhythmBlockPaletteBlocks.js:70 +#: js/blocks/RhythmBlockPaletteBlocks.js:252 +#: js/blocks/RhythmBlockPaletteBlocks.js:485 +#: js/blocks/RhythmBlockPaletteBlocks.js:554 +#: js/blocks/RhythmBlockPaletteBlocks.js:605 +#: js/blocks/RhythmBlockPaletteBlocks.js:875 +#: js/turtleactions/DictActions.js:85 +#: js/widgets/phrasemaker.js:942 +#: js/widgets/phrasemaker.js:2656 +#: js/widgets/phrasemaker.js:2699 +#: js/widgets/phrasemaker.js:2810 +#.TRANS: the value (e.g., 1/4 note) of the note being played. +msgid "note value" msgstr "" -#: js/toolbar.js:69 -#: js/toolbar.js:129 -msgid "Set Pitch Preview" +#: js/block-verbose.js:1721 +#: js/block-verbose.js:2382 +#: js/block-verbose.js:2405 +#: js/block.js:1685 +#: js/block.js:2310 +#: js/block.js:2333 +#: js/blocks/IntervalsBlocks.js:1071 +#: js/blocks/OrnamentBlocks.js:312 +#.TRANS: calculate a relative step between notes based on semi-tones +msgid "scalar interval" msgstr "" -#: js/toolbar.js:70 -#: js/toolbar.js:130 -#: js/toolbar.js:194 -#: js/toolbar.js:249 -msgid "Toggle JavaScript Editor" +#: js/block-verbose.js:1728 +#: js/block.js:1692 +#: js/blocks/RhythmBlocks.js:148 +msgid "milliseconds" msgstr "" -#: js/toolbar.js:71 -#: js/toolbar.js:131 -#: js/toolbar.js:195 -#: js/toolbar.js:250 -#: js/turtledefs.js:724 -msgid "Restore" +#: js/block-verbose.js:2455 +#: js/block-verbose.js:2459 +#: js/block-verbose.js:2512 +#: js/block-verbose.js:2628 +#: js/block.js:2383 +#: js/block.js:2387 +#: js/block.js:2440 +#: js/block.js:2556 +#: js/blocks/RhythmBlocks.js:712 +#: js/blocks/ProgramBlocks.js:1273 +#: js/widgets/rhythmruler.js:1183 +#: js/widgets/rhythmruler.js:1329 +msgid "silence" msgstr "" -#: js/toolbar.js:72 -#: js/toolbar.js:132 -#: js/toolbar.js:196 -#: js/toolbar.js:251 -msgid "Switch to beginner mode" +#: js/block-verbose.js:2548 +#: js/block-verbose.js:3492 +#: js/block-verbose.js:3509 +#: js/activity.js:2718 +#: js/activity.js:2769 +#: js/block.js:2476 +#: js/block.js:3416 +#: js/block.js:3433 +#: js/utils/musicutils.js:3780 +#: js/utils/musicutils.js:5273 +#.TRANS: the note names must be separated by single spaces +#.TRANS: the note names must be separated by single spaces +#.TRANS: the note names must be separated by single spaces +msgid "ti la sol fa mi re do" msgstr "" -#: js/toolbar.js:73 -#: js/toolbar.js:133 -#: js/toolbar.js:197 -#: js/toolbar.js:252 -msgid "Switch to advanced mode" +#: js/block-verbose.js:2616 +#: js/block.js:2544 +#.TRANS: scalar step +#.TRANS: scalar step +msgid "down" msgstr "" -#: js/toolbar.js:74 -#: js/toolbar.js:134 -#: js/toolbar.js:143 -#: js/toolbar.js:198 -#: js/toolbar.js:253 -#: js/turtledefs.js:738 -msgid "Select language" +#: js/block-verbose.js:2617 +#: js/block.js:2545 +msgid "up" msgstr "" -#: js/toolbar.js:76 -#: js/toolbar.js:79 -#: js/toolbar.js:137 -#: js/turtledefs.js:579 -msgid "Save mouse artwork as PNG" +#: js/block-verbose.js:3026 +#: js/block.js:2950 +msgid "Silence block cannot be removed." msgstr "" -#: js/toolbar.js:78 -#: js/toolbar.js:136 -#: js/turtledefs.js:575 -msgid "Save mouse artwork as SVG" +#: js/block-verbose.js:3824 +#: js/block.js:3748 +#: js/blocks.js:2607 +#: js/blocks.js:3218 +#: js/palette.js:618 +#: js/blocks/BooleanBlocks.js:77 +#: js/blocks/BooleanBlocks.js:167 +#: js/blocks/BooleanBlocks.js:251 +#: js/blocks/BooleanBlocks.js:335 +#: js/blocks/BooleanBlocks.js:433 +#: js/blocks/BooleanBlocks.js:539 +#: js/blocks/BooleanBlocks.js:640 +#: js/blocks/BooleanBlocks.js:741 +#: js/blocks/BooleanBlocks.js:847 +#: js/blocks/BooleanBlocks.js:948 +#: js/blocks/BooleanBlocks.js:1033 +#: js/blocks/SensorsBlocks.js:910 +msgid "true" msgstr "" -#: js/toolbar.js:80 -#: js/toolbar.js:138 -#: js/turtledefs.js:583 -msgid "Save music as WAV" +#: js/block-verbose.js:3824 +#: js/block.js:3748 +#: js/blocks.js:2609 +#: js/blocks.js:3220 +#: js/blocks/BooleanBlocks.js:79 +#: js/blocks/BooleanBlocks.js:169 +#: js/blocks/BooleanBlocks.js:253 +#: js/blocks/BooleanBlocks.js:337 +#: js/blocks/BooleanBlocks.js:435 +#: js/blocks/BooleanBlocks.js:541 +#: js/blocks/BooleanBlocks.js:642 +#: js/blocks/BooleanBlocks.js:743 +#: js/blocks/BooleanBlocks.js:849 +#: js/blocks/BooleanBlocks.js:950 +#: js/blocks/SensorsBlocks.js:912 +msgid "false" msgstr "" -#: js/toolbar.js:81 -#: js/toolbar.js:139 -#: js/turtledefs.js:587 -msgid "Save sheet music as ABC" +#: js/block-verbose.js:3835 +#: js/block-verbose.js:3848 +#: js/block.js:3759 +#: js/block.js:3772 +#: js/blocks/ExtrasBlocks.js:615 +msgid "Cartesian" msgstr "" -#: js/toolbar.js:82 -#: js/toolbar.js:140 -#: js/turtledefs.js:591 -msgid "Save sheet music as Lilypond" +#: js/block-verbose.js:3836 +#: js/block-verbose.js:3849 +#: js/block.js:3760 +#: js/block.js:3773 +#: js/blocks/ExtrasBlocks.js:619 +msgid "polar" msgstr "" -#: js/toolbar.js:83 -msgid "Save sheet music as MusicXML" +#: js/block-verbose.js:3837 +#: js/block-verbose.js:3850 +#: js/block.js:3761 +#: js/block.js:3774 +#: js/blocks/ExtrasBlocks.js:623 +msgid "Cartesian+polar" msgstr "" -#: js/toolbar.js:84 -#: js/toolbar.js:141 -#: js/toolbar.js:149 -#: js/toolbar.js:204 -#: js/toolbar.js:259 -#: js/turtledefs.js:562 -#: js/turtledefs.js:595 -msgid "Save block artwork as SVG" +#: js/block-verbose.js:3838 +#: js/block-verbose.js:3857 +#: js/block.js:3762 +#: js/block.js:3781 +#: js/blocks/ExtrasBlocks.js:652 +msgid "none" msgstr "" -#: js/toolbar.js:85 -#: js/toolbar.js:142 -#: js/toolbar.js:150 -#: js/toolbar.js:205 -#: js/toolbar.js:260 -msgid "Confirm" +#: js/block-verbose.js:3851 +#: js/block.js:3775 +#: js/blocks/ExtrasBlocks.js:628 +msgid "treble" msgstr "" -#: js/toolbar.js:86 -#: js/toolbar.js:151 -#: js/toolbar.js:206 -#: js/toolbar.js:261 -msgid "English (United States)" +#: js/block-verbose.js:3852 +#: js/block.js:3776 +#: js/blocks/ExtrasBlocks.js:632 +msgid "grand staff" msgstr "" -#: js/toolbar.js:87 -#: js/toolbar.js:152 -#: js/toolbar.js:207 -#: js/toolbar.js:262 -msgid "English (United Kingdom)" +#: js/block-verbose.js:3853 +#: js/block.js:3777 +#: js/blocks/ExtrasBlocks.js:636 +msgid "mezzo-soprano" msgstr "" -#: js/toolbar.js:88 -#: js/toolbar.js:153 -#: js/toolbar.js:208 -#: js/toolbar.js:263 -msgid "日本語" +#: js/block-verbose.js:3854 +#: js/block.js:3778 +#: js/blocks/ExtrasBlocks.js:640 +msgid "alto" msgstr "" -#: js/toolbar.js:89 -msgid "한국어" +#: js/block-verbose.js:3855 +#: js/block.js:3779 +#: js/blocks/ExtrasBlocks.js:644 +msgid "tenor" msgstr "" -#: js/toolbar.js:90 -#: js/toolbar.js:155 -#: js/toolbar.js:210 -#: js/toolbar.js:265 -msgid "español" +#: js/block-verbose.js:3856 +#: js/block.js:3780 +#: js/utils/musicutils.js:1115 +#: js/utils/synthutils.js:80 +#: js/blocks/ExtrasBlocks.js:648 +#.TRANS: musical instrument +msgid "bass" msgstr "" -#: js/toolbar.js:91 -#: js/toolbar.js:156 -#: js/toolbar.js:211 -#: js/toolbar.js:266 -msgid "português" +#: js/block-verbose.js:3901 +#: js/block.js:3825 +#: js/blocks.js:2600 +#: js/blocks.js:3211 +msgid "on2" msgstr "" -#: js/toolbar.js:92 -#: js/toolbar.js:157 -#: js/toolbar.js:212 -#: js/toolbar.js:267 -msgid "にほんご" +#: js/block-verbose.js:3903 +#: js/block.js:3827 +#: js/blocks.js:2602 +#: js/blocks.js:3213 +msgid "off" msgstr "" -#: js/toolbar.js:93 -#: js/toolbar.js:158 -#: js/toolbar.js:213 -#: js/toolbar.js:268 -msgid "中文" +#: js/block-verbose.js:4470 +#: js/block.js:4394 +msgid "Not a number" msgstr "" -#: js/toolbar.js:94 -#: js/toolbar.js:159 -#: js/toolbar.js:214 -#: js/toolbar.js:269 -msgid "ภาษาไทย" +#: js/block-verbose.js:4477 +#: js/block.js:4401 +msgid "Octave value must be between 1 and 10." msgstr "" -#: js/toolbar.js:95 -#: js/toolbar.js:160 -#: js/toolbar.js:215 -#: js/toolbar.js:270 -msgid "aymara" +#: js/block-verbose.js:4485 +#: js/block.js:4409 +msgid "Numbers can have at most 10 digits." msgstr "" -#: js/toolbar.js:96 -#: js/toolbar.js:161 -#: js/toolbar.js:216 -#: js/toolbar.js:271 -msgid "quechua" +#: js/activity.js:390 +#: js/activity.js:395 +msgid "Search for blocks" msgstr "" -#: js/toolbar.js:97 -#: js/toolbar.js:162 -#: js/toolbar.js:217 -#: js/toolbar.js:272 -msgid "guarani" +#: js/activity.js:1413 +msgid "Refresh your browser to change to advanced mode." msgstr "" -#: js/toolbar.js:98 -#: js/toolbar.js:163 -#: js/toolbar.js:218 -#: js/toolbar.js:273 -msgid "हिंदी" +#: js/activity.js:1418 +msgid "Refresh your browser to change to beginner mode." msgstr "" -#: js/toolbar.js:99 -#: js/toolbar.js:165 -#: js/toolbar.js:219 -#: js/toolbar.js:275 -msgid "igbo" +#: js/activity.js:1477 +msgid "Catching mice" +msgstr "" + +#: js/activity.js:1478 +msgid "Cleaning the instruments" +msgstr "" + +#: js/activity.js:1479 +msgid "Testing key pieces" +msgstr "" + +#: js/activity.js:1480 +msgid "Sight-reading" +msgstr "" + +#: js/activity.js:1481 +msgid "Combining math and music" msgstr "" -#: js/toolbar.js:100 -#: js/toolbar.js:166 -#: js/toolbar.js:220 -#: js/toolbar.js:276 -msgid "عربى" +#: js/activity.js:1482 +msgid "Generating more blocks" msgstr "" -#: js/toolbar.js:101 -#: js/toolbar.js:164 -#: js/toolbar.js:221 -#: js/toolbar.js:274 -msgid "తెలుగు" +#: js/activity.js:1483 +msgid "Do Re Mi Fa Sol La Ti Do" msgstr "" -#: js/toolbar.js:102 -#: js/toolbar.js:167 -#: js/toolbar.js:222 -#: js/toolbar.js:277 -msgid "עִברִית" +#: js/activity.js:1484 +msgid "Tuning string instruments" msgstr "" -#: js/toolbar.js:111 -#: js/toolbar.js:175 -#: js/toolbar.js:176 -#: js/toolbar.js:231 -msgid "Full Screen" +#: js/activity.js:1485 +msgid "Pressing random keys" msgstr "" -#: js/toolbar.js:145 -#: js/toolbar.js:148 -#: js/toolbar.js:200 -#: js/toolbar.js:203 -#: js/toolbar.js:255 -#: js/toolbar.js:258 -#: js/turtledefs.js:558 -msgid "Save turtle artwork as PNG" +#: js/activity.js:1663 +msgid "plugins will be removed upon restart." msgstr "" -#: js/toolbar.js:147 -#: js/toolbar.js:202 -#: js/toolbar.js:257 -#: js/turtledefs.js:554 -msgid "Save turtle artwork as SVG" +#: js/activity.js:1672 +msgid "show Cartesian" msgstr "" -#: js/toolbar.js:154 -#: js/toolbar.js:209 -#: js/toolbar.js:264 -msgid "한국인" +#: js/activity.js:2211 +#: js/palette.js:589 +#: js/blocks/RhythmBlocks.js:923 +#: js/blocks/PitchBlocks.js:442 +#: js/blocks/PitchBlocks.js:1786 +#.TRANS: a numeric mapping of the notes in an octave based on the musical mode +msgid "scale degree" msgstr "" -#: js/toolbar.js:171 -#: js/toolbar.js:227 -msgid "About Turtle Blocks" +#: js/activity.js:2214 +#: js/palette.js:598 +msgid "voice name" msgstr "" -#: js/toolbar.js:429 -#: js/toolbar.js:440 -msgid "Turtle Wrap Off" +#: js/activity.js:2217 +#: js/palette.js:595 +msgid "invert mode" msgstr "" -#: js/toolbar.js:442 -msgid "Turtle Wrap On" +#: js/activity.js:2220 +msgid "output tools" msgstr "" -#: js/block.js:1470 -msgid "matrix" +#: js/activity.js:2223 +msgid "custom note" msgstr "" -#: js/block.js:1477 -#: js/WidgetBlocks.js:1226 -#: plugins/rodi.rtp:324 -msgid "status" +#: js/activity.js:2226 +msgid "accidental name" msgstr "" -#: js/block.js:1484 -msgid "drum mapper" +#: js/activity.js:2229 +#: js/blocks/PitchBlocks.js:855 +msgid "east indian solfege" msgstr "" -#: js/block.js:1491 -msgid "ruler" +#: js/activity.js:2232 +#: js/blocks/PitchBlocks.js:869 +msgid "note name" msgstr "" -#: js/block.js:1498 -#: js/WidgetBlocks.js:327 -#.TRANS: timbre is the character or quality of a musical sound -msgid "timbre" +#: js/activity.js:2235 +#: js/blocks/IntervalsBlocks.js:94 +msgid "temperament name" msgstr "" -#: js/block.js:1505 -msgid "stair" +#: js/activity.js:2238 +#: js/palette.js:592 +msgid "mode name" msgstr "" -#: js/block.js:1512 -#: js/WidgetBlocks.js:577 -#.TRANS: the speed at music is should be played. -msgid "tempo" +#: js/activity.js:2241 +msgid "chord name" msgstr "" -#: js/block.js:1519 -#: js/block.js:1582 -#: js/IntervalsBlocks.js:1268 -#.TRANS: mode, e.g., Major in C Major -msgid "mode" +#: js/activity.js:2244 +#: js/palette.js:615 +msgid "interval name" msgstr "" -#: js/block.js:1526 -msgid "slider" +#: js/activity.js:2247 +msgid "filter type" msgstr "" -#: js/block.js:1533 -#: js/SensorsBlocks.js:1001 -msgid "keyboard" +#: js/activity.js:2250 +msgid "oscillator type" msgstr "" -#: js/block.js:1547 -#: js/WidgetBlocks.js:957 -#: js/WidgetBlocks.js:988 -#.TRANS: widget for subdividing a measure into distinct rhythmic elements -msgid "rhythm maker" +#: js/activity.js:2253 +#: js/blocks.js:2479 +#: js/blocks.js:2487 +msgid "audio file" msgstr "" -#: js/block.js:1554 -#: js/block.js:2182 -#: js/block.js:2236 -#: js/RhythmBlockPaletteBlocks.js:70 -#: js/RhythmBlockPaletteBlocks.js:251 -#: js/RhythmBlockPaletteBlocks.js:484 -#: js/RhythmBlockPaletteBlocks.js:553 -#: js/RhythmBlockPaletteBlocks.js:604 -#: js/RhythmBlockPaletteBlocks.js:874 -#: js/RhythmBlocks.js:33 -#: js/RhythmBlocks.js:356 -#: js/RhythmBlocks.js:766 -#: js/RhythmBlocks.js:806 -#: js/OrnamentBlocks.js:220 -#: js/OrnamentBlocks.js:312 -#: js/MeterBlocks.js:1367 -#: js/DictActions.js:85 -#: js/phrasemaker.js:731 -#: js/phrasemaker.js:2393 -#: js/phrasemaker.js:2436 -#: js/phrasemaker.js:2534 -#.TRANS: the value (e.g., 1/4 note) of the note being played. -msgid "note value" +#: js/activity.js:2256 +#: js/blocks/DrumBlocks.js:32 +msgid "noise name" msgstr "" -#: js/block.js:1561 -#: js/block.js:2110 -#: js/block.js:2133 -#: js/IntervalsBlocks.js:875 -#: js/OrnamentBlocks.js:312 -#.TRANS: calculate a relative step between notes based on semi-tones -msgid "scalar interval" +#: js/activity.js:2259 +#: js/blocks/DrumBlocks.js:75 +msgid "drum name" msgstr "" -#: js/block.js:1568 -#: js/RhythmBlocks.js:148 -msgid "milliseconds" +#: js/activity.js:2262 +#: js/blocks/DrumBlocks.js:119 +msgid "effects name" msgstr "" -#: js/block.js:2180 -#: js/block.js:2184 -#: js/block.js:2234 -#: js/block.js:2345 -#: js/ProgramBlocks.js:1273 -#: js/RhythmBlocks.js:712 -#: js/rhythmruler.js:834 -#: js/rhythmruler.js:961 -msgid "silence" +#: js/activity.js:2265 +msgid "wrap mode" msgstr "" -#: js/block.js:2265 -#: js/block.js:3134 -#: js/block.js:3151 -#: js/activity.js:2336 -#: js/activity.js:2387 -#: js/musicutils.js:2932 -#: js/musicutils.js:4287 -#.TRANS: the note names must be separated by single spaces -#.TRANS: the note names must be separated by single spaces -msgid "ti la sol fa mi re do" +#: js/activity.js:2268 +msgid "load file" msgstr "" -#: js/block.js:2333 -#.TRANS: scalar step -msgid "down" +#: js/activity.js:2435 +#: js/activity.js:5851 +msgid "This block is deprecated." msgstr "" -#: js/block.js:2334 -msgid "up" +#: js/activity.js:2437 +#: js/activity.js:5853 +msgid "Block cannot be found." msgstr "" -#: js/block.js:3477 -#: js/block.js:3490 -#: js/ExtrasBlocks.js:612 -msgid "Cartesian" +#: js/activity.js:2645 +msgid "Saving block artwork" msgstr "" -#: js/block.js:3478 -#: js/block.js:3491 -#: js/ExtrasBlocks.js:616 -msgid "polar" +#: js/activity.js:2656 +msgid "Erase" msgstr "" -#: js/block.js:3479 -#: js/block.js:3492 -#: js/ExtrasBlocks.js:620 -msgid "Cartesian+polar" +#: js/activity.js:2683 +#: js/activity.js:2705 +msgid "Paste" msgstr "" -#: js/block.js:3480 -#: js/block.js:3499 -#: js/ExtrasBlocks.js:649 -msgid "none" +#: js/activity.js:2687 +msgid "Save block help" msgstr "" -#: js/block.js:3493 -#: js/ExtrasBlocks.js:625 -msgid "treble" +#: js/activity.js:2772 +msgid "Jumping to the bottom of the page." msgstr "" -#: js/block.js:3494 -#: js/ExtrasBlocks.js:629 -msgid "grand staff" +#: js/activity.js:2778 +msgid "Scrolling up." msgstr "" -#: js/block.js:3495 -#: js/ExtrasBlocks.js:633 -msgid "mezzo-soprano" +#: js/activity.js:2783 +msgid "Scrolling down." msgstr "" -#: js/block.js:3496 -#: js/ExtrasBlocks.js:637 -msgid "alto" +#: js/activity.js:2788 +msgid "Extracting block" msgstr "" -#: js/block.js:3497 -#: js/ExtrasBlocks.js:641 -msgid "tenor" +#: js/activity.js:2796 +msgid "Moving block up." msgstr "" -#: js/block.js:3498 -#: js/ExtrasBlocks.js:645 -#: js/musicutils.js:736 -#: js/synthutils.js:64 -#.TRANS: musical instrument -msgid "bass" +#: js/activity.js:2817 +msgid "Moving block down." msgstr "" -#: js/block.js:4075 -msgid "Not a number" +#: js/activity.js:2838 +msgid "Moving block left." msgstr "" -#: js/block.js:4082 -msgid "Octave value must be between 1 and 10." +#: js/activity.js:2855 +msgid "Moving block right." msgstr "" -#: js/block.js:4090 -msgid "Numbers can have at most 10 digits." +#: js/activity.js:2870 +msgid "Jump to home position." msgstr "" -#: js/notation.js:353 -msgid "Lilypond cannot process pickup of " +#: js/activity.js:2897 +msgid "Hide blocks" msgstr "" -#: js/turtledefs.js:40 -#.TRANS: put the URL to the guide here, e.g., https://github.com/sugarlabs/turtleblocksjs/tree/master/guide/README.md -msgid "guide url" +#: js/activity.js:4500 +msgid "Click the run button to run the project." msgstr "" -#: js/turtledefs.js:85 -#: js/turtledefs.js:437 -msgid "Turtle Blocks is a Logo-inspired turtle that draws colorful pictures with snap-together visual-programming blocks." +#: js/activity.js:5692 +msgid "Show/hide block" msgstr "" -#: js/turtledefs.js:118 -#: js/turtledefs.js:220 -msgid "search" +#: js/activity.js:5698 +msgid "Expand/collapse blocks" msgstr "" -#: js/turtledefs.js:120 -#: js/turtledefs.js:222 -#: js/WidgetBlocks.js:437 -#: js/MeterBlocks.js:1343 -#.TRANS: musical meter (time signature), e.g., 4:4 -msgid "meter" +#: js/activity.js:5976 +msgid "Could not parse JSON input." msgstr "" -#: js/turtledefs.js:122 -#: js/turtledefs.js:224 -msgid "intervals" +#: js/activity.js:6475 +#: js/activity.js:6580 +#: js/activity.js:6631 +msgid "Cannot load project from the file. Please check the file type." msgstr "" -#: js/turtledefs.js:124 -#: js/turtledefs.js:226 -msgid "ornament" +#: js/activity.js:6917 +msgid "Invalid parameters" msgstr "" -#: js/turtledefs.js:125 -#: js/turtledefs.js:227 -#: js/VolumeBlocks.js:362 -#: js/VolumeBlocks.js:502 -#: js/VolumeBlocks.js:545 -msgid "volume" +#: js/blocks.js:1212 +#: js/blocks.js:3444 +#: js/blocks.js:3834 +#: js/blocks.js:3865 +#: js/blocks.js:3914 +#: js/blocks.js:3949 +#: js/blocks.js:6586 +#: js/palette.js:509 +#: js/palette.js:638 +#: js/palette.js:1105 +#: js/blocks/BoxesBlocks.js:282 +#: js/blocks/BoxesBlocks.js:285 +#: js/blocks/BoxesBlocks.js:405 +#: js/blocks/BoxesBlocks.js:594 +msgid "box" msgstr "" -#: js/turtledefs.js:129 -#: js/turtledefs.js:231 -msgid "boxes" +#: js/blocks.js:1713 +msgid "Consider breaking this stack into parts." msgstr "" -#: js/turtledefs.js:130 -#: js/turtledefs.js:232 -msgid "widgets" +#: js/blocks.js:2472 +#: js/palette.js:653 +#: js/blocks/MediaBlocks.js:602 +msgid "open file" msgstr "" -#: js/turtledefs.js:131 -#: js/turtledefs.js:233 -#: js/phrasemaker.js:824 -msgid "graphics" +#: js/blocks.js:3247 +#: js/palette.js:574 +#: js/blocks/MediaBlocks.js:892 +#: js/blocks/MediaBlocks.js:963 +msgid "text" msgstr "" -#: js/turtledefs.js:134 -#: js/turtledefs.js:236 -msgid "boolean" +#: js/blocks.js:3443 +#: js/palette.js:641 +#: js/palette.js:642 +#: js/blocks/BoxesBlocks.js:514 +msgid "store in box" msgstr "" -#: js/turtledefs.js:137 -#: js/turtledefs.js:239 -#: js/HeapBlocks.js:59 -#: js/status.js:147 -msgid "heap" +#: js/blocks.js:3448 +#: js/blocks.js:3888 +#: js/blocks.js:3923 +#: js/blocks.js:3958 +#: js/blocks.js:5862 +#: js/blocks.js:5883 +#: js/blocks/BoxesBlocks.js:772 +msgid "box1" msgstr "" -#: js/turtledefs.js:138 -#: js/turtledefs.js:240 -#: js/ProgramBlocks.js:495 -#: js/DictBlocks.js:142 -msgid "dictionary" +#: js/blocks.js:3450 +#: js/blocks.js:3890 +#: js/blocks.js:3925 +#: js/blocks.js:3960 +#: js/blocks.js:5864 +#: js/blocks.js:5885 +#: js/blocks/BoxesBlocks.js:663 +msgid "box2" msgstr "" -#: js/turtledefs.js:139 -#: js/turtledefs.js:241 -msgid "ensemble" +#: js/blocks.js:4122 +#: js/palette.js:639 +#: js/palette.js:644 +#: js/palette.js:1041 +#: js/blocks/BoxesBlocks.js:591 +msgid "store in" msgstr "" -#: js/turtledefs.js:140 -#: js/turtledefs.js:242 -msgid "extras" +#: js/blocks.js:4122 +#: js/blocks/BoxesBlocks.js:595 +#: js/blocks/DictBlocks.js:215 +#: js/blocks/DictBlocks.js:289 +#: js/blocks/EnsembleBlocks.js:391 +#: js/blocks/EnsembleBlocks.js:402 +#: js/blocks/MediaBlocks.js:746 +#: js/blocks/PitchBlocks.js:656 +#: js/blocks/PitchBlocks.js:934 +#: js/blocks/PitchBlocks.js:1866 +#: js/blocks/ProgramBlocks.js:390 +#: js/blocks/ProgramBlocks.js:495 +#: js/blocks/ProgramBlocks.js:658 +#: js/blocks/ToneBlocks.js:1025 +msgid "name" msgstr "" -#: js/turtledefs.js:142 -#: js/turtledefs.js:244 -#.TRANS: program as in computer program -#.TRANS: program as in computer program -msgid "program" +#: js/blocks.js:4122 +#: js/blocks/BoxesBlocks.js:75 +#: js/blocks/BoxesBlocks.js:595 +#: js/blocks/DictBlocks.js:289 +#: js/blocks/DictBlocks.js:430 +#: js/blocks/HeapBlocks.js:544 +#: js/blocks/RhythmBlocks.js:1130 +msgid "value" msgstr "" -#: js/turtledefs.js:143 -#: js/turtledefs.js:245 -msgid "my blocks" +#: js/blocks.js:4465 +msgid "Forever loop detected inside a note value block. Unexpected things may happen." msgstr "" -#: js/turtledefs.js:185 -#: js/turtledefs.js:281 -msgid "artwork" +#: js/blocks.js:4988 +msgid "There is no block selected." msgstr "" -#: js/turtledefs.js:185 -#: js/turtledefs.js:281 -msgid "logic" +#: js/blocks.js:5091 +#: js/blocks/MediaBlocks.js:888 +msgid "show" msgstr "" -#: js/turtledefs.js:185 -#: js/turtledefs.js:281 -msgid "music" +#: js/blocks.js:5094 +#: js/blocks/MediaBlocks.js:803 +#.TRANS: Avatar is the image used to determine the appearance of the mouse. +msgid "avatar" msgstr "" -#: js/turtledefs.js:187 -#: js/turtledefs.js:463 -msgid "Music Blocks is a collection of tools for exploring fundamental musical concepts in a fun way." +#: js/blocks.js:5097 +#: js/blocks/ToneBlocks.js:1010 +#: js/widgets/sampler.js:975 +#.TRANS: The sound sample that the user uploads. +msgid "sample" msgstr "" -#: js/turtledefs.js:436 -msgid "Welcome to Turtle Blocks" +#: js/lilypond.js:606 +msgid "brown rat" msgstr "" -#: js/turtledefs.js:438 -#: js/turtledefs.js:465 -#: js/turtledefs.js:774 -#: js/turtledefs.js:805 -msgid "The current version is" +#: js/lilypond.js:607 +msgid "mole" msgstr "" -#: js/turtledefs.js:446 -#: js/turtledefs.js:483 -msgid "Click the run button to run the project in fast mode." +#: js/lilypond.js:608 +msgid "chipmunk" msgstr "" -#: js/turtledefs.js:452 -msgid "Stop the turtle." +#: js/lilypond.js:609 +msgid "red squirrel" msgstr "" -#: js/turtledefs.js:454 -#: js/turtledefs.js:491 -msgid "You can also type Alt-S to stop." +#: js/lilypond.js:610 +msgid "guinea pig" +msgstr "" + +#: js/lilypond.js:611 +msgid "capybara" msgstr "" -#: js/turtledefs.js:462 -#: js/help.js:333 -msgid "Welcome to Music Blocks" +#: js/lilypond.js:612 +msgid "coypu" msgstr "" -#: js/turtledefs.js:472 -#: js/help.js:334 -msgid "Meet Mr. Mouse!" +#: js/lilypond.js:613 +msgid "black rat" msgstr "" -#: js/turtledefs.js:473 -msgid "Mr Mouse is our Music Blocks conductor." +#: js/lilypond.js:614 +msgid "grey squirrel" msgstr "" -#: js/turtledefs.js:475 -msgid "Mr Mouse encourages you to explore Music Blocks." +#: js/lilypond.js:615 +msgid "flying squirrel" msgstr "" -#: js/turtledefs.js:477 -msgid "Let us start our tour!" +#: js/lilypond.js:616 +msgid "bat" msgstr "" -#: js/turtledefs.js:489 -msgid "Stop the music (and the mice)." +#: js/lilypond.js:749 +#: js/lilypond.js:913 +#: js/lilypond.js:951 +#: js/blocks/ActionBlocks.js:1256 +#: js/blocks/ExtrasBlocks.js:556 +msgid "start drum" msgstr "" -#: js/turtledefs.js:499 -msgid "Record your project as video." +#: js/logo.js:61 +msgid "Not a valid pitch name" msgstr "" -#: js/turtledefs.js:505 -msgid "Toggle Fullscreen mode." +#: js/logo.js:507 +#: js/blocks/ProgramBlocks.js:258 +#: js/blocks/ProgramBlocks.js:427 +msgid "You must select a file." msgstr "" -#: js/turtledefs.js:511 -msgid "Initialize a new project." +#: js/logo.js:1696 +msgid "Playback is ready." msgstr "" -#: js/turtledefs.js:517 -msgid "You can also load projects from the file system." +#: js/macros.js:711 +#: js/utils/musicutils.js:1162 +#: js/utils/synthutils.js:202 +#.TRANS: animal sound effect +msgid "duck" msgstr "" -#: js/turtledefs.js:522 -#: js/StringHelper.js:46 -msgid "Delete" +#: js/notation.js:353 +msgid "Lilypond cannot process pickup of " msgstr "" -#: js/turtledefs.js:523 -msgid "To delete a block, just right-click on it, then you will be able to see the delete option" +#: js/palette.js:571 +msgid "grid" msgstr "" -#: js/turtledefs.js:528 -#: js/activity.js:2270 -#: js/LocalCard.js:31 -msgid "Copy" +#: js/palette.js:580 +msgid "effect" msgstr "" -#: js/turtledefs.js:529 -msgid "To copy a block, just right-click on it, then you will be able to see the copy option" +#: js/palette.js:586 +msgid "sargam" msgstr "" -#: js/turtledefs.js:535 -msgid "To extract a block, just right-click on it, then you will be able to see the extract option" +#: js/palette.js:601 +#: js/blocks/PitchBlocks.js:1209 +msgid "custom pitch" msgstr "" -#: js/turtledefs.js:542 -#: js/turtledefs.js:552 -#: js/turtledefs.js:573 -msgid "Save your project to a file." +#: js/palette.js:609 +msgid "accidental" msgstr "" -#: js/turtledefs.js:549 -#: js/turtledefs.js:570 -msgid "save" +#: js/palette.js:633 +#: js/blocks/PitchBlocks.js:405 +msgid "pitch converter" msgstr "" -#: js/turtledefs.js:556 -#: js/turtledefs.js:577 -msgid "Save graphics from your project to as SVG." +#: js/piemenus.js:200 +#: js/utils/musicutils.js:1187 +#: js/utils/musicutils.js:1207 +#: js/widgets/musickeyboard.js:2341 +#: js/widgets/phrasemaker.js:1908 +#: js/widgets/sampler.js:810 +#.TRANS: double sharp is a music term related to pitch +msgid "double sharp" msgstr "" -#: js/turtledefs.js:560 -#: js/turtledefs.js:581 -msgid "Save graphics from your project as PNG." +#: js/piemenus.js:201 +#: js/utils/musicutils.js:1185 +#: js/utils/musicutils.js:1208 +#: js/blocks/PitchBlocks.js:1539 +#: js/turtleactions/PitchActions.js:323 +#: js/widgets/musickeyboard.js:2342 +#: js/widgets/phrasemaker.js:1909 +#: js/widgets/sampler.js:811 +#.TRANS: sharp is a music term related to pitch +#.TRANS: sharp is a half-step up in pitch +msgid "sharp" msgstr "" -#: js/turtledefs.js:564 -#: js/turtledefs.js:597 -msgid "Save block artwork as an SVG file." +#: js/piemenus.js:202 +#: js/utils/musicutils.js:1183 +#: js/utils/musicutils.js:1209 +#: js/widgets/musickeyboard.js:2343 +#: js/widgets/phrasemaker.js:1910 +#: js/widgets/sampler.js:812 +#.TRANS: natural is a music term related to pitch +msgid "natural" msgstr "" -#: js/turtledefs.js:585 -msgid "Save audio from your project as WAV." +#: js/piemenus.js:203 +#: js/utils/musicutils.js:1181 +#: js/utils/musicutils.js:1210 +#: js/blocks/PitchBlocks.js:1498 +#: js/turtleactions/PitchActions.js:326 +#: js/widgets/musickeyboard.js:2344 +#: js/widgets/phrasemaker.js:1911 +#: js/widgets/sampler.js:813 +#.TRANS: flat is a music term related to pitch +#.TRANS: flat is a half-step down in pitch +msgid "flat" msgstr "" -#: js/turtledefs.js:589 -msgid "Save your project to as an ABC file." +#: js/piemenus.js:204 +#: js/utils/musicutils.js:1179 +#: js/utils/musicutils.js:1211 +#: js/widgets/musickeyboard.js:2345 +#: js/widgets/phrasemaker.js:1912 +#: js/widgets/sampler.js:814 +#.TRANS: double flat is a music term related to pitch +msgid "double flat" msgstr "" -#: js/turtledefs.js:593 -msgid "Save your project to as a Lilypond file." +#: js/piemenus.js:2864 +#: js/utils/musicutils.js:1006 +#: js/blocks/PitchBlocks.js:1385 +#.TRANS: unison is a music term related to intervals +#.TRANS: unison means the note is the same as the current note +msgid "unison" msgstr "" -#: js/turtledefs.js:604 -msgid "Load samples from server" +#: js/piemenus.js:3018 +#: js/piemenus.js:3091 +#: js/utils/musicutils.js:1014 +#: js/utils/musicutils.js:1189 +#: js/utils/musicutils.js:1326 +#.TRANS: major is a music term related to intervals and mode +msgid "major" msgstr "" -#: js/turtledefs.js:605 -msgid "This button opens a viewer for loading example projects." +#: js/piemenus.js:3018 +#: js/piemenus.js:3091 +#: js/utils/musicutils.js:1032 +#.TRANS: modal scale for music +msgid "ionian" msgstr "" -#: js/turtledefs.js:611 -msgid "Palette buttons" +#: js/piemenus.js:3020 +#: js/piemenus.js:3095 +#: js/utils/musicutils.js:1012 +#: js/utils/musicutils.js:1190 +#: js/utils/musicutils.js:1323 +#.TRANS: minor is a music term related to intervals and mode +msgid "minor" msgstr "" -#: js/turtledefs.js:612 -msgid "This toolbar contains the palette buttons including Rhythm Pitch Tone Action and more." +#: js/piemenus.js:3020 +#: js/piemenus.js:3095 +#: js/utils/musicutils.js:1042 +#.TRANS: modal scale for music +msgid "aeolian" msgstr "" -#: js/turtledefs.js:614 -msgid "Click to show the palettes of blocks and drag blocks from the palettes onto the canvas to use them." +#: js/piemenus.js:3410 +msgid "Duplicate" msgstr "" -#: js/turtledefs.js:620 -msgid "Cartesian/Polar" +#: js/piemenus.js:3412 +msgid "Move to trash" msgstr "" -#: js/turtledefs.js:621 -msgid "Show or hide a coordinate grid." +#: js/piemenus.js:3413 +#: js/widgets/timbre.js:968 +#: planet/js/StringHelper.js:69 +msgid "Close" msgstr "" -#: js/turtledefs.js:627 -msgid "Clear the screen and return the mice to their initial positions." +#: js/piemenus.js:3419 +msgid "Save stack" msgstr "" -#: js/turtledefs.js:633 -msgid "Collapse the graphics window." +#: js/piemenus.js:3449 +msgid "In order to copy a sample, you must reload the widget, import the sample again, and export it." msgstr "" -#: js/turtledefs.js:638 -#: js/activity.js:4256 -#: js/activity.js:4256 -msgid "Home" +#: js/piemenus.js:3812 +msgid "You have chosen key " msgstr "" -#: js/turtledefs.js:639 -msgid "Return all blocks to the center of the screen." +#: js/piemenus.js:3816 +msgid " for your pitch preview." msgstr "" -#: js/turtledefs.js:644 -msgid "Show/hide blocks" +#: js/turtle-singer.js:1363 +#.TRANS: partials are weighted components in a harmonic series +msgid "You must have at least one Partial block inside of a Weighted-partial block" msgstr "" -#: js/turtledefs.js:645 -msgid "Hide or show the blocks and the palettes." +#: js/turtle-singer.js:2077 +msgid "synth cannot play chords." msgstr "" -#: js/turtledefs.js:650 -msgid "Expand/collapse collapsable blocks" +#: js/utils/musicutils.js:505 +#: js/utils/musicutils.js:645 +#: js/widgets/pitchdrummatrix.js:228 +#: js/widgets/musickeyboard.js:2885 +msgid "rest" msgstr "" -#: js/turtledefs.js:651 -msgid "Expand or collapse start and action stacks." +#: js/utils/musicutils.js:689 +msgid "Perfect unison" msgstr "" -#: js/turtledefs.js:658 -#: js/activity.js:4265 -msgid "Decrease block size" +#: js/utils/musicutils.js:689 +msgid "Diminished second" msgstr "" -#: js/turtledefs.js:659 -msgid "Decrease the size of the blocks." +#: js/utils/musicutils.js:690 +msgid "Minor second" msgstr "" -#: js/turtledefs.js:664 -#: js/activity.js:4267 -msgid "Increase block size" +#: js/utils/musicutils.js:690 +msgid "Augmented unison" msgstr "" -#: js/turtledefs.js:665 -msgid "Increase the size of the blocks." +#: js/utils/musicutils.js:691 +msgid "Major second" msgstr "" -#: js/turtledefs.js:670 -msgid "Expand/collapse option toolbar" +#: js/utils/musicutils.js:691 +msgid "Diminished third" msgstr "" -#: js/turtledefs.js:671 -msgid "Click this button to expand or collapse the auxillary toolbar." +#: js/utils/musicutils.js:692 +msgid "Minor third" msgstr "" -#: js/turtledefs.js:676 -msgid "Run slow" +#: js/utils/musicutils.js:692 +msgid "Augmented second" msgstr "" -#: js/turtledefs.js:677 -msgid "Click to run the project in slow mode." +#: js/utils/musicutils.js:693 +msgid "Major third" msgstr "" -#: js/turtledefs.js:683 -msgid "Click to run the project step by step." +#: js/utils/musicutils.js:693 +msgid "Diminished fourth" msgstr "" -#: js/turtledefs.js:690 -msgid "Display statistics about your Music project." +#: js/utils/musicutils.js:694 +msgid "Perfect fourth" msgstr "" -#: js/turtledefs.js:697 -msgid "Delete a selected plugin." +#: js/utils/musicutils.js:694 +msgid "Augmented third" msgstr "" -#: js/turtledefs.js:704 -msgid "Enable scrolling" +#: js/utils/musicutils.js:695 +msgid "Diminished fifth" msgstr "" -#: js/turtledefs.js:705 -msgid "You can scroll the blocks on the canvas." +#: js/utils/musicutils.js:695 +msgid "Augmented fourth" msgstr "" -#: js/turtledefs.js:714 -msgid "Wrap Turtle" +#: js/utils/musicutils.js:696 +msgid "Perfect fifth" msgstr "" -#: js/turtledefs.js:715 -msgid "Turn Turtle wrapping On or Off." +#: js/utils/musicutils.js:696 +msgid "Diminished sixth" msgstr "" -#: js/turtledefs.js:725 -msgid "Restore blocks from the trash." +#: js/utils/musicutils.js:697 +msgid "Minor sixth" msgstr "" -#: js/turtledefs.js:732 -msgid "Switch mode" +#: js/utils/musicutils.js:697 +msgid "Augmented fifth" msgstr "" -#: js/turtledefs.js:733 -msgid "Switch between beginner and advance modes." +#: js/utils/musicutils.js:698 +msgid "Major sixth" msgstr "" -#: js/turtledefs.js:739 -msgid "Select your language preference." +#: js/utils/musicutils.js:698 +msgid "Diminished seventh" msgstr "" -#: js/turtledefs.js:745 -msgid "Keyboard shortcuts" +#: js/utils/musicutils.js:699 +msgid "Minor seventh" msgstr "" -#: js/turtledefs.js:746 -msgid "You can type d to create a do block and r to create a re block etc." +#: js/utils/musicutils.js:699 +msgid "Augmented sixth" msgstr "" -#: js/turtledefs.js:753 -msgid "Show these messages." +#: js/utils/musicutils.js:700 +msgid "Major seventh" msgstr "" -#: js/turtledefs.js:759 -#: js/turtledefs.js:790 -#: js/help.js:335 -msgid "Guide" +#: js/utils/musicutils.js:700 +msgid "Diminished octave" msgstr "" -#: js/turtledefs.js:760 -msgid "A detailed guide to Turtle Blocks is available." +#: js/utils/musicutils.js:701 +msgid "Perfect octave" msgstr "" -#: js/turtledefs.js:764 -msgid "Turtle Blocks Guide" +#: js/utils/musicutils.js:701 +msgid "Augmented seventh" msgstr "" -#: js/turtledefs.js:767 -#: js/turtledefs.js:798 -#: js/help.js:336 -msgid "About" +#: js/utils/musicutils.js:702 +msgid "Minor ninth" msgstr "" -#: js/turtledefs.js:768 -msgid "Turtle Blocks is an open source collection of tools for exploring musical concepts." +#: js/utils/musicutils.js:702 +msgid "Augmented octave" msgstr "" -#: js/turtledefs.js:770 -msgid "A full list of contributors can be found in the Turtle Blocks GitHub repository." +#: js/utils/musicutils.js:703 +msgid "Major ninth" msgstr "" -#: js/turtledefs.js:772 -msgid "Turtle Blocks is licensed under the AGPL." +#: js/utils/musicutils.js:703 +msgid "Diminished tenth" msgstr "" -#: js/turtledefs.js:780 -msgid "Turtle Blocks GitHub repository" +#: js/utils/musicutils.js:704 +msgid "Minor tenth" msgstr "" -#: js/turtledefs.js:783 -#: js/turtledefs.js:814 -#: js/help.js:337 -#: js/help.js:359 -msgid "Congratulations." +#: js/utils/musicutils.js:704 +msgid "Augmented ninth" msgstr "" -#: js/turtledefs.js:784 -msgid "You have finished the tour. Please enjoy Turtle Blocks!" +#: js/utils/musicutils.js:705 +msgid "Major tenth" msgstr "" -#: js/turtledefs.js:791 -msgid "A detailed guide to Music Blocks is available." +#: js/utils/musicutils.js:705 +msgid "Diminished eleventh" msgstr "" -#: js/turtledefs.js:795 -#: js/SaveInterface.js:76 -msgid "Music Blocks Guide" +#: js/utils/musicutils.js:706 +msgid "Perfect eleventh" msgstr "" -#: js/turtledefs.js:799 -msgid "Music Blocks is an open source collection of tools for exploring musical concepts." +#: js/utils/musicutils.js:706 +msgid "Augmented tenth" msgstr "" -#: js/turtledefs.js:801 -msgid "A full list of contributors can be found in the Music Blocks GitHub repository." +#: js/utils/musicutils.js:707 +msgid "Diminished twelfth" msgstr "" -#: js/turtledefs.js:803 -msgid "Music Blocks is licensed under the AGPL." +#: js/utils/musicutils.js:707 +msgid "Augmented eleventh" msgstr "" -#: js/turtledefs.js:811 -msgid "Music Blocks GitHub repository" +#: js/utils/musicutils.js:708 +msgid "Perfect twelfth" msgstr "" -#: js/turtledefs.js:815 -msgid "You have finished the tour. Please enjoy Music Blocks!" +#: js/utils/musicutils.js:708 +msgid "Diminished thirteenth" msgstr "" -#: js/activity.js:369 -msgid "Search for blocks" +#: js/utils/musicutils.js:709 +msgid "Minor thirteenth" msgstr "" -#: js/activity.js:1145 -msgid "Refresh your browser to change to advanced mode." +#: js/utils/musicutils.js:709 +msgid "Augmented fifth, plus an octave" msgstr "" -#: js/activity.js:1150 -msgid "Refresh your browser to change to beginner mode." +#: js/utils/musicutils.js:710 +msgid "Major thirteenth" msgstr "" -#: js/activity.js:1184 -msgid "Catching mice" +#: js/utils/musicutils.js:710 +msgid "Diminished seventh, plus an octave" msgstr "" -#: js/activity.js:1185 -msgid "Cleaning the instruments" +#: js/utils/musicutils.js:838 +#.TRANS: ordinal number. Please keep exactly one space between each number. +msgid "1st 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th" msgstr "" -#: js/activity.js:1186 -msgid "Testing key pieces" +#: js/utils/musicutils.js:1008 +#: js/utils/musicutils.js:1191 +#: js/utils/musicutils.js:1325 +#.TRANS: augmented is a music term related to intervals +msgid "augmented" msgstr "" -#: js/activity.js:1187 -msgid "Sight-reading" +#: js/utils/musicutils.js:1010 +#: js/utils/musicutils.js:1192 +#: js/utils/musicutils.js:1324 +#.TRANS: diminished is a music term related to intervals and mode +msgid "diminished" msgstr "" -#: js/activity.js:1188 -msgid "Combining math and music" +#: js/utils/musicutils.js:1016 +#: js/utils/musicutils.js:1322 +#: js/blocks/IntervalsBlocks.js:649 +#: js/turtleactions/IntervalsActions.js:120 +#: js/turtleactions/IntervalsActions.js:124 +#.TRANS: perfect is a music term related to intervals +msgid "perfect" +msgstr "" + +#: js/utils/musicutils.js:1018 +#.TRANS: twelve semi-tone scale for music +msgid "chromatic" msgstr "" -#: js/activity.js:1189 -msgid "Generating more blocks" +#: js/utils/musicutils.js:1019 +msgid "algerian" msgstr "" -#: js/activity.js:1190 -msgid "Do Re Mi Fa Sol La Ti Do" +#: js/utils/musicutils.js:1020 +msgid "spanish" msgstr "" -#: js/activity.js:1191 -msgid "Tuning string instruments" +#: js/utils/musicutils.js:1022 +#.TRANS: modal scale in music +msgid "octatonic" msgstr "" -#: js/activity.js:1192 -msgid "Pressing random keys" +#: js/utils/musicutils.js:1024 +#.TRANS: harmonic major scale in music +msgid "harmonic major" msgstr "" -#: js/activity.js:1351 -msgid "plugins will be removed upon restart." +#: js/utils/musicutils.js:1026 +#.TRANS: natural minor scales in music +msgid "natural minor" msgstr "" -#: js/activity.js:1360 -msgid "show Cartesian" +#: js/utils/musicutils.js:1028 +#.TRANS: harmonic minor scale in music +msgid "harmonic minor" msgstr "" -#: js/activity.js:1842 -msgid "output tools" +#: js/utils/musicutils.js:1030 +#.TRANS: melodic minor scale in music +msgid "melodic minor" msgstr "" -#: js/activity.js:1845 -msgid "custom note" +#: js/utils/musicutils.js:1034 +#.TRANS: modal scale for music +msgid "dorian" msgstr "" -#: js/activity.js:1848 -msgid "accidental name" +#: js/utils/musicutils.js:1036 +#.TRANS: modal scale for music +msgid "phrygian" msgstr "" -#: js/activity.js:1851 -#: js/PitchBlocks.js:855 -msgid "east indian solfege" +#: js/utils/musicutils.js:1038 +#.TRANS: modal scale for music +msgid "lydian" msgstr "" -#: js/activity.js:1854 -#: js/PitchBlocks.js:869 -msgid "note name" +#: js/utils/musicutils.js:1040 +#.TRANS: modal scale for music +msgid "mixolydian" msgstr "" -#: js/activity.js:1857 -#: js/IntervalsBlocks.js:94 -msgid "temperament name" +#: js/utils/musicutils.js:1044 +#.TRANS: modal scale for music +msgid "locrian" msgstr "" -#: js/activity.js:1863 -msgid "chord name" +#: js/utils/musicutils.js:1046 +#.TRANS: minor jazz scale for music +msgid "jazz minor" msgstr "" -#: js/activity.js:1869 -msgid "filter type" +#: js/utils/musicutils.js:1048 +#.TRANS: bebop scale for music +msgid "bebop" msgstr "" -#: js/activity.js:1872 -msgid "oscillator type" +#: js/utils/musicutils.js:1049 +msgid "arabic" msgstr "" -#: js/activity.js:1878 -#: js/DrumBlocks.js:32 -msgid "noise name" +#: js/utils/musicutils.js:1050 +msgid "byzantine" msgstr "" -#: js/activity.js:1881 -#: js/DrumBlocks.js:75 -msgid "drum name" +#: js/utils/musicutils.js:1052 +#.TRANS: musical scale for music by Verdi +msgid "enigmatic" msgstr "" -#: js/activity.js:1884 -#: js/DrumBlocks.js:119 -msgid "effects name" +#: js/utils/musicutils.js:1053 +msgid "ethiopian" msgstr "" -#: js/activity.js:1887 -msgid "wrap mode" +#: js/utils/musicutils.js:1055 +#.TRANS: Ethiopic scale for music +msgid "geez" msgstr "" -#: js/activity.js:1890 -msgid "load file" +#: js/utils/musicutils.js:1056 +msgid "hindu" msgstr "" -#: js/activity.js:2056 -msgid "This block is deprecated." +#: js/utils/musicutils.js:1057 +msgid "hungarian" msgstr "" -#: js/activity.js:2058 -msgid "Block cannot be found." +#: js/utils/musicutils.js:1059 +#.TRANS: minor Romanian scale for music +msgid "romanian minor" msgstr "" -#: js/activity.js:2266 -msgid "Saving block artwork" +#: js/utils/musicutils.js:1060 +msgid "spanish gypsy" msgstr "" -#: js/activity.js:2277 -msgid "Erase" +#: js/utils/musicutils.js:1062 +#.TRANS: musical scale for Mid-Eastern music +msgid "maqam" msgstr "" -#: js/activity.js:2301 -#: js/activity.js:2323 -msgid "Paste" +#: js/utils/musicutils.js:1064 +#.TRANS: minor blues scale for music +msgid "minor blues" msgstr "" -#: js/activity.js:2305 -msgid "Save block help" +#: js/utils/musicutils.js:1066 +#.TRANS: major blues scale for music +msgid "major blues" msgstr "" -#: js/activity.js:2390 -msgid "Jumping to the bottom of the page." +#: js/utils/musicutils.js:1067 +msgid "whole tone" msgstr "" -#: js/activity.js:2396 -msgid "Scrolling up." +#: js/utils/musicutils.js:1069 +#.TRANS: pentatonic is a general term that means "five note scale". This scale is typically known as "minor pentatonic" +msgid "minor pentatonic" msgstr "" -#: js/activity.js:2401 -msgid "Scrolling down." +#: js/utils/musicutils.js:1071 +#.TRANS: pentatonic is a general term that means "five note scale". This scale is typically known as "major pentatonic" +msgid "major pentatonic" msgstr "" -#: js/activity.js:2406 -msgid "Extracting block" +#: js/utils/musicutils.js:1072 +msgid "chinese" msgstr "" -#: js/activity.js:2414 -msgid "Moving block up." +#: js/utils/musicutils.js:1073 +msgid "egyptian" msgstr "" -#: js/activity.js:2435 -msgid "Moving block down." +#: js/utils/musicutils.js:1075 +#.TRANS: https://en.wikipedia.org/wiki/Hirajoshi_scale NOTE: There are three different versions of this scale +msgid "hirajoshi" msgstr "" -#: js/activity.js:2456 -msgid "Moving block left." +#: js/utils/musicutils.js:1076 +msgid "Japan" msgstr "" -#: js/activity.js:2473 -msgid "Moving block right." +#: js/utils/musicutils.js:1078 +#.TRANS: https://en.wikipedia.org/wiki/In_scale and https://en.wikipedia.org/wiki/Sakura_Sakura +msgid "in" msgstr "" -#: js/activity.js:2488 -msgid "Jump to home position." +#: js/utils/musicutils.js:1080 +#.TRANS: https://en.wikipedia.org/wiki/Miny%C5%8D_scale +msgid "minyo" msgstr "" -#: js/activity.js:2515 -msgid "Hide blocks" +#: js/utils/musicutils.js:1082 +#.TRANS: Italian mathematician +msgid "fibonacci" msgstr "" -#: js/activity.js:3389 -msgid "Click the run button to run the project." +#: js/utils/musicutils.js:1083 +#: js/utils/musicutils.js:1134 +#: js/utils/musicutils.js:1177 +#: js/utils/musicutils.js:1199 +#: js/utils/synthutils.js:134 +#: js/blocks/IntervalsBlocks.js:1124 +#: js/blocks/ToneBlocks.js:946 +#: js/blocks/VolumeBlocks.js:411 +#: js/blocks/WidgetBlocks.js:399 +#: js/blocks/WidgetBlocks.js:404 +#: js/turtleactions/VolumeActions.js:218 +#: js/widgets/modewidget.js:919 +#.TRANS: customize voice +msgid "custom" msgstr "" -#: js/activity.js:3456 -#: js/SaveInterface.js:131 -#: js/SaveInterface.js:204 -#: js/SaveInterface.js:262 -#: js/SaveInterface.js:389 -#: js/SaveInterface.js:417 -#: js/ProjectStorage.js:27 -#: js/GlobalPlanet.js:467 -#: js/GlobalPlanet.js:469 -#: js/GlobalPlanet.js:495 -#.TRANS: default project title when saving as Lilypond -msgid "My Project" +#: js/utils/musicutils.js:1085 +#: js/utils/musicutils.js:1531 +#: js/blocks/WidgetBlocks.js:176 +#.TRANS: highpass filter +msgid "highpass" msgstr "" -#: js/activity.js:4261 -msgid "Show/hide block" +#: js/utils/musicutils.js:1087 +#: js/utils/musicutils.js:1532 +#.TRANS: lowpass filter +msgid "lowpass" msgstr "" -#: js/activity.js:4263 -msgid "Expand/collapse blocks" +#: js/utils/musicutils.js:1089 +#: js/utils/musicutils.js:1533 +#.TRANS: bandpass filter +msgid "bandpass" msgstr "" -#: js/activity.js:4381 -msgid "Could not parse JSON input." +#: js/utils/musicutils.js:1091 +#: js/utils/musicutils.js:1534 +#.TRANS: high-shelf filter +msgid "highshelf" msgstr "" -#: js/activity.js:4684 -#: js/activity.js:4771 -#: js/activity.js:4821 -msgid "Cannot load project from the file. Please check the file type." +#: js/utils/musicutils.js:1093 +#: js/utils/musicutils.js:1535 +#.TRANS: low-shelf filter +msgid "lowshelf" msgstr "" -#: js/activity.js:5051 -msgid "Invalid parameters" +#: js/utils/musicutils.js:1095 +#: js/utils/musicutils.js:1536 +#.TRANS: notch-shelf filter +msgid "notch" msgstr "" -#: js/turtle-singer.js:1334 -#.TRANS: partials are weighted components in a harmonic series -msgid "You must have at least one Partial block inside of a Weighted-partial block" +#: js/utils/musicutils.js:1097 +#: js/utils/musicutils.js:1537 +#.TRANS: all-pass filter +msgid "allpass" msgstr "" -#: js/turtle-singer.js:2048 -msgid "synth cannot play chords." +#: js/utils/musicutils.js:1099 +#: js/utils/musicutils.js:1538 +#.TRANS: peaking filter +msgid "peaking" msgstr "" -#: js/lilypond.js:614 -msgid "brown rat" +#: js/utils/musicutils.js:1100 +#: js/utils/musicutils.js:1546 +#: js/utils/synthutils.js:126 +#: js/blocks/PitchBlocks.js:85 +#.TRANS: sine wave +msgid "sine" msgstr "" -#: js/lilypond.js:615 -msgid "mole" +#: js/utils/musicutils.js:1101 +#: js/utils/musicutils.js:1547 +#: js/utils/synthutils.js:128 +#: js/blocks/PitchBlocks.js:39 +#.TRANS: square wave +msgid "square" msgstr "" -#: js/lilypond.js:616 -msgid "chipmunk" +#: js/utils/musicutils.js:1102 +#: js/utils/musicutils.js:1548 +#: js/utils/synthutils.js:132 +#: js/blocks/PitchBlocks.js:62 +#: js/blocks/ToneBlocks.js:39 +#.TRANS: triangle wave +msgid "triangle" msgstr "" -#: js/lilypond.js:617 -msgid "red squirrel" +#: js/utils/musicutils.js:1103 +#: js/utils/musicutils.js:1549 +#: js/utils/synthutils.js:130 +#: js/blocks/PitchBlocks.js:108 +#.TRANS: sawtooth wave +msgid "sawtooth" msgstr "" -#: js/lilypond.js:618 -msgid "guinea pig" +#: js/utils/musicutils.js:1105 +#: js/utils/musicutils.js:1312 +#: js/blocks/PitchBlocks.js:931 +#: js/blocks/PitchBlocks.js:937 +#: js/turtleactions/PitchActions.js:469 +#.TRANS: even numbers +#.TRANS: invert based on even or odd number or musical scale +msgid "even" msgstr "" -#: js/lilypond.js:619 -msgid "capybara" +#: js/utils/musicutils.js:1107 +#: js/utils/musicutils.js:1313 +#: js/blocks/PitchBlocks.js:937 +#: js/turtleactions/PitchActions.js:471 +#.TRANS: odd numbers +msgid "odd" msgstr "" -#: js/lilypond.js:620 -msgid "coypu" +#: js/utils/musicutils.js:1108 +#: js/utils/musicutils.js:1314 +#: js/blocks/PitchBlocks.js:937 +#: js/turtleactions/PitchActions.js:473 +msgid "scalar" msgstr "" -#: js/lilypond.js:621 -msgid "black rat" +#: js/utils/musicutils.js:1109 +#: js/utils/synthutils.js:72 +#: js/blocks/VolumeBlocks.js:47 +#.TRANS: musical instrument +msgid "piano" msgstr "" -#: js/lilypond.js:622 -msgid "grey squirrel" +#: js/utils/musicutils.js:1110 +#: js/utils/synthutils.js:74 +#.TRANS: musical instrument +msgid "violin" msgstr "" -#: js/lilypond.js:623 -msgid "flying squirrel" +#: js/utils/musicutils.js:1111 +#: js/utils/synthutils.js:76 +#.TRANS: viola musical instrument +msgid "viola" msgstr "" -#: js/lilypond.js:624 -msgid "bat" +#: js/utils/musicutils.js:1112 +#: js/utils/synthutils.js:114 +#.TRANS: xylophone musical instrument +msgid "xylophone" msgstr "" -#: js/lilypond.js:757 -#: js/lilypond.js:921 -#: js/lilypond.js:959 -#: js/ActionBlocks.js:1256 -#: js/ExtrasBlocks.js:553 -msgid "start drum" +#: js/utils/musicutils.js:1113 +#: js/utils/synthutils.js:136 +#.TRANS: vibraphone musical instrument +msgid "vibraphone" msgstr "" -#: js/SaveInterface.js:59 -#: js/SaveInterface.js:61 -#: js/SaveInterface.js:93 -msgid "Music Blocks Project" +#: js/utils/musicutils.js:1114 +#: js/utils/synthutils.js:78 +#.TRANS: musical instrument +msgid "cello" msgstr "" -#: js/SaveInterface.js:63 -msgid "This project was created in Music Blocks" +#: js/utils/musicutils.js:1116 +#: js/utils/synthutils.js:82 +#.TRANS: viola musical instrument +msgid "double bass" msgstr "" -#: js/SaveInterface.js:67 -msgid "Music Blocks is a Free/Libre Software application." +#: js/utils/musicutils.js:1117 +#: js/utils/synthutils.js:84 +#: js/widgets/rhythmruler.js:2511 +#.TRANS: musical instrument +msgid "guitar" msgstr "" -#: js/SaveInterface.js:69 -msgid "The source code can be accessed at" +#: js/utils/musicutils.js:1118 +#: js/utils/synthutils.js:86 +#.TRANS: musical instrument +msgid "acoustic guitar" msgstr "" -#: js/SaveInterface.js:72 -msgid "For more information, please consult the" +#: js/utils/musicutils.js:1119 +#: js/utils/synthutils.js:88 +#.TRANS: musical instrument +msgid "flute" msgstr "" -#: js/SaveInterface.js:83 -msgid "Alternatively, open the file in Music Blocks using the Load project button." +#: js/utils/musicutils.js:1120 +#: js/utils/synthutils.js:90 +#.TRANS: musical instrument +msgid "clarinet" msgstr "" -#: js/SaveInterface.js:85 -msgid "Project Code" +#: js/utils/musicutils.js:1121 +#: js/utils/synthutils.js:92 +#.TRANS: musical instrument +msgid "saxophone" msgstr "" -#: js/SaveInterface.js:87 -msgid "This code stores data about the blocks in a project." +#: js/utils/musicutils.js:1122 +#: js/utils/synthutils.js:94 +#.TRANS: musical instrument +msgid "tuba" msgstr "" -#: js/SaveInterface.js:89 -msgid "Show" +#: js/utils/musicutils.js:1123 +#: js/utils/synthutils.js:96 +#.TRANS: musical instrument +msgid "trumpet" msgstr "" -#: js/SaveInterface.js:91 -msgid "Hide" +#: js/utils/musicutils.js:1124 +#: js/utils/synthutils.js:98 +#.TRANS: musical instrument +msgid "oboe" msgstr "" -#: js/SaveInterface.js:197 -#: js/SaveInterface.js:58 -msgid "No description provided" +#: js/utils/musicutils.js:1125 +#: js/utils/synthutils.js:100 +#.TRANS: musical instrument +msgid "trombone" msgstr "" -#: js/SaveInterface.js:332 -msgid "Your recording is in progress." +#: js/utils/musicutils.js:1126 +#: js/utils/synthutils.js:116 +#.TRANS: polytone synthesizer +msgid "electronic synth" msgstr "" -#: js/SaveInterface.js:401 -#.TRANS: File name prompt for save as Lilypond -msgid "File name" +#: js/utils/musicutils.js:1127 +#: js/utils/synthutils.js:118 +#.TRANS: simple monotone synthesizer +msgid "simple 1" msgstr "" -#: js/SaveInterface.js:403 -#: js/StringHelper.js:39 -#.TRANS: Project title prompt for save as Lilypond -msgid "Project title" +#: js/utils/musicutils.js:1128 +msgid "simple 2" msgstr "" -#: js/SaveInterface.js:405 -#.TRANS: Project title prompt for save as Lilypond -msgid "Project author" +#: js/utils/musicutils.js:1129 +msgid "simple 3" msgstr "" -#: js/SaveInterface.js:407 -#.TRANS: MIDI prompt for save as Lilypond -msgid "Include MIDI output?" +#: js/utils/musicutils.js:1130 +msgid "simple 4" msgstr "" -#: js/SaveInterface.js:409 -#.TRANS: Guitar prompt for save as Lilypond -msgid "Include guitar tablature output?" +#: js/utils/musicutils.js:1131 +#: js/utils/synthutils.js:58 +#: js/blocks/DrumBlocks.js:191 +#.TRANS: white noise synthesizer +msgid "white noise" msgstr "" -#: js/SaveInterface.js:411 -#.TRANS: Lilypond is a scripting language for generating sheet music -msgid "Save as Lilypond" +#: js/utils/musicutils.js:1132 +#: js/utils/synthutils.js:60 +#.TRANS: brown noise synthesizer +msgid "brown noise" msgstr "" -#: js/SaveInterface.js:426 -#: js/EnsembleBlocks.js:75 -#: js/EnsembleBlocks.js:154 -#: js/EnsembleBlocks.js:216 -#: js/EnsembleBlocks.js:302 -#: js/EnsembleBlocks.js:348 -#: js/EnsembleBlocks.js:389 -#: js/EnsembleBlocks.js:441 -#: js/EnsembleBlocks.js:490 -#: js/EnsembleBlocks.js:536 -#: js/EnsembleBlocks.js:583 -#: js/EnsembleBlocks.js:637 -#: js/EnsembleBlocks.js:753 -#: js/EnsembleBlocks.js:840 -#: js/EnsembleBlocks.js:899 -#: js/EnsembleBlocks.js:942 -#: js/EnsembleBlocks.js:1212 -#: js/EnsembleBlocks.js:1280 -#.TRANS: default project author when saving as Lilypond -msgid "Mr. Mouse" +#: js/utils/musicutils.js:1133 +#: js/utils/synthutils.js:62 +#.TRANS: pink noise synthesizer +msgid "pink noise" msgstr "" -#: js/SaveInterface.js:573 -msgid "The Lilypond code is copied to clipboard. You can paste it here: " +#: js/utils/musicutils.js:1135 +#: js/utils/synthutils.js:148 +#: js/widgets/rhythmruler.js:2057 +#: js/widgets/rhythmruler.js:2319 +#.TRANS: musical instrument +msgid "snare drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:50 -#: js/RhythmBlockPaletteBlocks.js:232 -#.TRANS: rhythm block -#.TRANS: translate "rhythm1" as rhythm -msgid "rhythm1" +#: js/utils/musicutils.js:1136 +#: js/utils/synthutils.js:150 +#.TRANS: musical instrument +msgid "kick drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:70 -#: js/RhythmBlockPaletteBlocks.js:251 -#: js/RhythmBlockPaletteBlocks.js:484 -#: js/RhythmBlockPaletteBlocks.js:553 -#: js/RhythmBlockPaletteBlocks.js:874 -msgid "number of notes" +#: js/utils/musicutils.js:1137 +#: js/utils/synthutils.js:152 +#.TRANS: musical instrument +msgid "tom tom" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:126 -msgid "polyphonic rhythm" +#: js/utils/musicutils.js:1138 +#: js/utils/synthutils.js:154 +#.TRANS: musical instrument +msgid "floor tom" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:218 -msgid "The Rhythm block is used to generate rhythm patterns." +#: js/utils/musicutils.js:1139 +#: js/utils/synthutils.js:156 +#.TRANS: musical instrument +msgid "bass drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:279 -msgid "1/64 note" +#: js/utils/musicutils.js:1140 +#: js/utils/synthutils.js:158 +#.TRANS: a drum made from an inverted cup +msgid "cup drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:303 -msgid "1/32 note" +#: js/utils/musicutils.js:1141 +#: js/utils/synthutils.js:160 +#.TRANS: musical instrument +msgid "darbuka drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:331 -msgid "1/16 note" +#: js/utils/musicutils.js:1142 +#: js/utils/synthutils.js:164 +#.TRANS: musical instrument +msgid "hi hat" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:359 -msgid "eighth note" +#: js/utils/musicutils.js:1143 +#: js/utils/synthutils.js:166 +#.TRANS: a small metal bell +msgid "ride bell" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:387 -msgid "quarter note" +#: js/utils/musicutils.js:1144 +#: js/utils/synthutils.js:168 +#.TRANS: musical instrument +msgid "cow bell" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:415 -msgid "half note" +#: js/utils/musicutils.js:1145 +msgid "japanese drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:443 -msgid "whole note" +#: js/utils/musicutils.js:1146 +#: js/utils/synthutils.js:174 +#.TRANS: musical instrument +msgid "japanese bell" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:481 -#: js/RhythmBlockPaletteBlocks.js:550 -#: js/RhythmBlockPaletteBlocks.js:601 -#.TRANS: A tuplet is a note value divided into irregular time values. -msgid "tuplet" +#: js/utils/musicutils.js:1147 +#: js/utils/synthutils.js:170 +#.TRANS: musical instrument +msgid "triangle bell" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:767 -msgid "septuplet" +#: js/utils/musicutils.js:1148 +#: js/utils/synthutils.js:172 +#.TRANS: musical instrument +msgid "finger cymbals" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:795 -msgid "quintuplet" +#: js/utils/musicutils.js:1149 +#: js/utils/synthutils.js:176 +#.TRANS: a musically tuned set of bells +msgid "chime" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:823 -msgid "triplet" +#: js/utils/musicutils.js:1150 +#: js/utils/synthutils.js:178 +#.TRANS: a musical instrument +msgid "gong" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:850 -msgid "simple tuplet" +#: js/utils/musicutils.js:1151 +#: js/utils/synthutils.js:180 +#.TRANS: sound effect +msgid "clang" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:860 -msgid "Tuplets are a collection of notes that get scaled to a specific duration." +#: js/utils/musicutils.js:1152 +#: js/utils/synthutils.js:182 +#.TRANS: sound effect +msgid "crash" msgstr "" -#: js/WidgetBlocks.js:71 -#.TRANS: sound envelope (ADSR) -msgid "envelope" +#: js/utils/musicutils.js:1153 +#: js/utils/synthutils.js:184 +#.TRANS: sound effect +msgid "bottle" msgstr "" -#: js/WidgetBlocks.js:79 -#.TRANS: Attack time is the time taken for initial run-up of level from nil to peak, beginning when the key is first pressed. -msgid "attack" +#: js/utils/musicutils.js:1154 +#: js/utils/synthutils.js:186 +#.TRANS: sound effect +msgid "clap" msgstr "" -#: js/WidgetBlocks.js:81 -#.TRANS: Decay time is the time taken for the subsequent run down from the attack level to the designated sustain level. -msgid "decay" +#: js/utils/musicutils.js:1155 +#: js/utils/synthutils.js:188 +#.TRANS: sound effect +msgid "slap" msgstr "" -#: js/WidgetBlocks.js:83 -#.TRANS: Sustain level is the level during the main sequence of the sound's duration, until the key is released. -msgid "sustain" +#: js/utils/musicutils.js:1156 +#: js/utils/synthutils.js:190 +#.TRANS: sound effect +msgid "splash" msgstr "" -#: js/WidgetBlocks.js:85 -#.TRANS: Release time is the time taken for the level to decay from the sustain level to zero after the key is released. -msgid "release" +#: js/utils/musicutils.js:1157 +#: js/utils/synthutils.js:192 +#.TRANS: sound effect +msgid "bubbles" msgstr "" -#: js/WidgetBlocks.js:96 -msgid "Attack value should be from 0 to 100." +#: js/utils/musicutils.js:1158 +#: js/utils/synthutils.js:194 +#.TRANS: sound effect +msgid "raindrop" msgstr "" -#: js/WidgetBlocks.js:99 -msgid "Decay value should be from 0 to 100." +#: js/utils/musicutils.js:1159 +#: js/utils/synthutils.js:196 +#.TRANS: animal sound effect +msgid "cat" msgstr "" -#: js/WidgetBlocks.js:102 -msgid "Sustain value should be from 0 to 100." +#: js/utils/musicutils.js:1160 +#: js/utils/synthutils.js:198 +#.TRANS: animal sound effect +msgid "cricket" msgstr "" -#: js/WidgetBlocks.js:105 -msgid "Release value should be from 0-100." +#: js/utils/musicutils.js:1161 +#: js/utils/synthutils.js:200 +#.TRANS: animal sound effect +msgid "dog" msgstr "" -#: js/WidgetBlocks.js:121 -msgid "You are adding multiple envelope blocks." +#: js/utils/musicutils.js:1163 +#: js/utils/synthutils.js:102 +#.TRANS: musical instrument +msgid "banjo" msgstr "" -#: js/WidgetBlocks.js:144 -#.TRANS: a filter removes some unwanted components from a signal -msgid "filter" +#: js/utils/musicutils.js:1164 +#: js/utils/synthutils.js:104 +#.TRANS: musical instrument +msgid "koto" msgstr "" -#: js/WidgetBlocks.js:149 -#: js/musicutils.js:706 -#: js/musicutils.js:1105 -#.TRANS: highpass filter -msgid "highpass" +#: js/utils/musicutils.js:1165 +#: js/utils/synthutils.js:106 +#.TRANS: musical instrument +msgid "dulcimer" msgstr "" -#: js/WidgetBlocks.js:152 -#: js/ToneBlocks.js:42 -#: js/timbre.js:1558 -#: js/timbre.js:1808 -#.TRANS: type of filter, e.g., lowpass, highpass, etc. -#.TRANS: there are different types (sine, triangle, square...) of oscillators. -msgid "type" +#: js/utils/musicutils.js:1166 +#: js/utils/synthutils.js:108 +#.TRANS: musical instrument +msgid "electric guitar" msgstr "" -#: js/WidgetBlocks.js:154 -#: js/timbre.js:1818 -#.TRANS: rolloff is the steepness of a change in frequency. -msgid "rolloff" +#: js/utils/musicutils.js:1167 +#: js/utils/synthutils.js:110 +#.TRANS: musical instrument +msgid "bassoon" msgstr "" -#: js/WidgetBlocks.js:155 -#: js/MediaBlocks.js:692 -#: js/temperament.js:382 -#: js/temperament.js:417 -#: js/temperament.js:477 -#: js/temperament.js:485 -#: js/temperament.js:1348 -#: js/timbre.js:1842 -msgid "frequency" +#: js/utils/musicutils.js:1168 +#: js/utils/synthutils.js:112 +#.TRANS: musical instrument +msgid "celeste" msgstr "" -#: js/WidgetBlocks.js:179 -#.TRANS: rolloff is the steepness of a change in frequency. -msgid "Rolloff value should be either -12, -24, -48, or -96 decibels/octave." +#: js/utils/musicutils.js:1170 +#: js/widgets/temperament.js:787 +#.TRANS: musical temperament +msgid "equal" msgstr "" -#: js/WidgetBlocks.js:211 -msgid "The Temperament tool is used to define custom tuning." +#: js/utils/musicutils.js:1172 +#.TRANS: musical temperament +msgid "Pythagorean" msgstr "" -#: js/WidgetBlocks.js:277 -#: js/sampler.js:329 -msgid "Upload a sample and adjust its pitch center." +#: js/utils/musicutils.js:1174 +#.TRANS: musical temperament +msgid "just intonation" msgstr "" -#: js/WidgetBlocks.js:284 -#.TRANS: the speed at music is should be played. -msgid "sampler" +#: js/utils/musicutils.js:1176 +#.TRANS: musical temperament +msgid "meantone" msgstr "" -#: js/WidgetBlocks.js:329 -#: js/WidgetBlocks.js:334 -#: js/IntervalsBlocks.js:928 -#: js/VolumeBlocks.js:411 -#: js/ToneBlocks.js:946 -#: js/VolumeActions.js:218 -#: js/musicutils.js:704 -#: js/musicutils.js:755 -#: js/musicutils.js:798 -#: js/musicutils.js:820 -#: js/musicutils.js:1136 -#: js/synthutils.js:118 -#: js/modewidget.js:919 -#.TRANS: customize voice -msgid "custom" +#: js/utils/musicutils.js:1193 +msgid "major 7th" msgstr "" -#: js/WidgetBlocks.js:432 -msgid "The Meter block opens a tool to select strong beats for the meter." +#: js/utils/musicutils.js:1194 +msgid "minor 7th" msgstr "" -#: js/WidgetBlocks.js:473 -msgid "The oscilloscope block opens a tool to visualize waveforms." +#: js/utils/musicutils.js:1195 +msgid "dominant 7th" msgstr "" -#: js/WidgetBlocks.js:478 -msgid "oscilloscope" +#: js/utils/musicutils.js:1196 +msgid "minor-major 7th" msgstr "" -#: js/WidgetBlocks.js:530 -msgid "The Custom mode block opens a tool to explore musical mode (the spacing of the notes in a scale)." +#: js/utils/musicutils.js:1197 +msgid "fully-diminished 7th" msgstr "" -#: js/WidgetBlocks.js:536 -#.TRANS: musical mode is the pattern of half-steps in an octave, e.g., Major or Minor modes -msgid "custom mode" +#: js/utils/musicutils.js:1198 +msgid "half-diminished 7th" msgstr "" -#: js/WidgetBlocks.js:570 -msgid "The Tempo block opens a metronome to visualize the beat." +#: js/utils/musicutils.js:1557 +#: js/utils/musicutils.js:1569 +msgid "Equal (12EDO)" msgstr "" -#: js/WidgetBlocks.js:617 -msgid "The Arpeggio Widget is used to compose chord sequences." +#: js/utils/musicutils.js:1558 +#: js/utils/musicutils.js:1570 +msgid "5-limit Just Intonation" msgstr "" -#: js/WidgetBlocks.js:623 -#: js/IntervalsBlocks.js:683 -msgid "arpeggio" +#: js/utils/musicutils.js:1559 +#: js/utils/musicutils.js:1571 +msgid "Pythagorean (3-limit JI)" msgstr "" -#: js/WidgetBlocks.js:677 -msgid "The Pitch drum matrix is used to map pitches to drum sounds." +#: js/utils/musicutils.js:1560 +#: js/utils/musicutils.js:1561 +#: js/utils/musicutils.js:1572 +#: js/utils/musicutils.js:1573 +msgid "Meantone" msgstr "" -#: js/WidgetBlocks.js:682 -#.TRANS: makes a mapping between pitches and drum sounds -msgid "pitch-drum mapper" +#: js/utils/musicutils.js:1574 +msgid "Custom" msgstr "" -#: js/WidgetBlocks.js:724 -msgid "You must have at least one pitch block and one drum block in the matrix." +#: js/utils/musicutils.js:5387 +#: js/utils/musicutils.js:5430 +msgid "current" msgstr "" -#: js/WidgetBlocks.js:746 -msgid "The Pitch slider tool to is used to generate pitches at selected frequencies." +#: js/utils/musicutils.js:5390 +#: js/utils/musicutils.js:5421 +msgid "next" msgstr "" -#: js/WidgetBlocks.js:751 -#.TRANS: widget to generate pitches using a slider -msgid "pitch slider" +#: js/utils/musicutils.js:5393 +#: js/utils/musicutils.js:5426 +msgid "previous" msgstr "" -#: js/WidgetBlocks.js:788 -msgid "chromatic keyboard" +#: js/utils/synthutils.js:120 +#.TRANS: simple monotone synthesizer +msgid "simple-2" msgstr "" -#: js/WidgetBlocks.js:815 -#: js/WidgetBlocks.js:874 -#.TRANS: widget to generate pitches using a slider -msgid "music keyboard" +#: js/utils/synthutils.js:122 +#.TRANS: simple monotone synthesizer +msgid "simple-3" msgstr "" -#: js/WidgetBlocks.js:859 -#: js/WidgetBlocks.js:866 -msgid "The Music keyboard block opens a piano keyboard that can be used to create notes." +#: js/utils/synthutils.js:124 +#.TRANS: simple monotone synthesizer +msgid "simple-4" msgstr "" -#: js/WidgetBlocks.js:910 -msgid "The Pitch staircase tool to is used to generate pitches from a given ratio." +#: js/utils/synthutils.js:162 +#.TRANS: musical instrument +msgid "taiko" msgstr "" -#: js/WidgetBlocks.js:917 -#.TRANS: generate a progressive sequence of pitches -msgid "pitch staircase" +#: js/blocks/ActionBlocks.js:58 +msgid "The Return block will return a value from an action." msgstr "" -#: js/WidgetBlocks.js:982 -msgid "The Rhythm Maker block opens a tool to create drum machines." +#: js/blocks/ActionBlocks.js:75 +msgid "return" msgstr "" -#: js/WidgetBlocks.js:1036 -msgid "G major scale" +#: js/blocks/ActionBlocks.js:128 +msgid "The Return to URL block will return a value to a webpage." msgstr "" -#: js/WidgetBlocks.js:1064 -msgid "C major scale" +#: js/blocks/ActionBlocks.js:145 +msgid "return to URL" msgstr "" -#: js/WidgetBlocks.js:1097 -msgid "The Phrase Maker block opens a tool to create musical phrases." +#: js/blocks/ActionBlocks.js:233 +#: js/blocks/ActionBlocks.js:290 +#: js/blocks/ActionBlocks.js:501 +#: js/blocks/ActionBlocks.js:688 +msgid "The Calculate block returns a value calculated by an action." msgstr "" -#: js/WidgetBlocks.js:1104 -#.TRANS: assigns pitch to a sequence of beats to generate a melody -msgid "phrase maker" +#: js/blocks/ActionBlocks.js:251 +#: js/blocks/ActionBlocks.js:517 +#: js/blocks/ActionBlocks.js:707 +msgid "calculate" msgstr "" -#: js/WidgetBlocks.js:1168 -msgid "You must have at least one pitch block and one rhythm block in the matrix." +#: js/blocks/ActionBlocks.js:376 +#: js/blocks/ActionBlocks.js:593 +#: js/blocks/ActionBlocks.js:942 +#: js/blocks/ActionBlocks.js:1389 +#.TRANS: do is the do something or take an action. +msgid "The Do block is used to initiate an action." msgstr "" -#: js/WidgetBlocks.js:1220 -msgid "The Status block opens a tool for inspecting the status of Music Blocks as it is running." +#: js/blocks/ActionBlocks.js:390 +#: js/blocks/ActionBlocks.js:610 +#: js/blocks/ActionBlocks.js:959 +#: js/blocks/ActionBlocks.js:1048 +#: js/blocks/MeterBlocks.js:769 +msgid "do1" msgstr "" -#: js/IntervalsBlocks.js:45 -msgid "set temperament" +#: js/blocks/ActionBlocks.js:390 +#: js/blocks/ActionBlocks.js:610 +#: js/blocks/ActionBlocks.js:959 +#: js/blocks/ActionBlocks.js:1048 +#: js/blocks/FlowBlocks.js:742 +#: js/blocks/FlowBlocks.js:822 +#: js/blocks/MeterBlocks.js:769 +msgid "do" msgstr "" -#: js/IntervalsBlocks.js:63 -#: js/MediaBlocks.js:746 -#: js/PitchBlocks.js:657 -#: js/PitchBlocks.js:933 -#: js/PitchBlocks.js:972 -#: js/PitchBlocks.js:1005 -#: js/PitchBlocks.js:1166 -#: js/PitchBlocks.js:1679 -#: js/PitchBlocks.js:1720 -#: js/PitchBlocks.js:1827 -#: js/ToneBlocks.js:1025 -#.TRANS: adjusts the shift up or down by one octave (twelve half-steps in the interval between two notes, one having twice or half the frequency in Hz of the other.) -msgid "octave" +#: js/blocks/ActionBlocks.js:791 +#: js/blocks/ActionBlocks.js:865 +msgid "The Arg block contains the value of an argument passed to an action." msgstr "" -#: js/IntervalsBlocks.js:99 -msgid "The Temperament name block is used to select a tuning method." +#: js/blocks/ActionBlocks.js:806 +#: js/blocks/ActionBlocks.js:878 +msgid "arg" msgstr "" -#: js/IntervalsBlocks.js:161 -msgid "doubly" +#: js/blocks/ActionBlocks.js:836 +#: js/blocks/ActionBlocks.js:900 +#: js/blocks/ActionBlocks.js:908 +msgid "Invalid argument" msgstr "" -#: js/IntervalsBlocks.js:166 -msgid "The Doubly block will double the size of an interval." +#: js/blocks/ActionBlocks.js:944 +msgid "In the example, it is used with the One of block to choose a random phase." msgstr "" -#: js/IntervalsBlocks.js:262 -msgid "interval number" +#: js/blocks/ActionBlocks.js:1019 +#: js/blocks/ActionBlocks.js:1026 +msgid "The Listen block is used to listen for an event such as a mouse click." msgstr "" -#: js/IntervalsBlocks.js:330 -#.TRANS: measure the distance between two pitches in semi-tones -msgid "semi-tone interval measure" +#: js/blocks/ActionBlocks.js:1028 +msgid "When the event happens, an action is taken." msgstr "" -#: js/IntervalsBlocks.js:397 -#: js/IntervalsBlocks.js:513 -msgid "You must use two pitch blocks when measuring an interval." +#: js/blocks/ActionBlocks.js:1045 +msgid "on" msgstr "" -#: js/IntervalsBlocks.js:439 -msgid "The Scalar interval block measures the distance between two notes in the current key and mode." +#: js/blocks/ActionBlocks.js:1048 +#: js/blocks/ActionBlocks.js:1049 +#: js/blocks/ActionBlocks.js:1153 +msgid "event" msgstr "" -#: js/IntervalsBlocks.js:445 -#.TRANS: measure the distance between two pitches in steps of musical scale -msgid "scalar interval measure" +#: js/blocks/ActionBlocks.js:1133 +msgid "The Broadcast block is used to trigger an event." msgstr "" -#: js/IntervalsBlocks.js:592 -#: js/musicutils.js:637 -#: js/musicutils.js:908 -#.TRANS: perfect is a music term related to intervals -msgid "perfect" +#: js/blocks/ActionBlocks.js:1151 +msgid "broadcast" msgstr "" -#: js/IntervalsBlocks.js:621 -msgid "In the figure, we add sol# to sol." +#: js/blocks/ActionBlocks.js:1208 +msgid "Each Start block is a separate voice." msgstr "" -#: js/IntervalsBlocks.js:627 -#: js/OrnamentBlocks.js:220 -#.TRANS: calculate a relative step between notes based on semi-tones -msgid "semi-tone interval" +#: js/blocks/ActionBlocks.js:1304 +msgid "It is often used for storing a phrase of music that is repeated." msgstr "" -#: js/IntervalsBlocks.js:676 -msgid "The output of the example is: do, mi, sol, sol, ti, mi" +#: js/blocks/ActionBlocks.js:1495 +msgid "define temperament" msgstr "" -#: js/IntervalsBlocks.js:735 -msgid "The Chord block calculates common chords." +#: js/blocks/BooleanBlocks.js:44 +msgid "The Not block is the logical not operator." msgstr "" -#: js/IntervalsBlocks.js:737 -msgid "In the figure, we generate a C-major chord." +#: js/blocks/BooleanBlocks.js:62 +msgid "not" msgstr "" -#: js/IntervalsBlocks.js:742 -msgid "chord" +#: js/blocks/BooleanBlocks.js:134 +msgid "The And block is the logical and operator." msgstr "" -#: js/IntervalsBlocks.js:794 -msgid "The Ratio Interval block calculates an interval based on a ratio." +#: js/blocks/BooleanBlocks.js:152 +msgid "and" msgstr "" -#: js/IntervalsBlocks.js:799 -msgid "ratio interval" +#: js/blocks/BooleanBlocks.js:218 +msgid "The Or block is the logical or operator." msgstr "" -#: js/IntervalsBlocks.js:868 -msgid "In the figure, we add la to sol." +#: js/blocks/BooleanBlocks.js:236 +msgid "or" msgstr "" -#: js/IntervalsBlocks.js:924 -#.TRANS: define a custom mode -msgid "define mode" +#: js/blocks/BooleanBlocks.js:302 +msgid "The XOR block is the logical XOR operator." msgstr "" -#: js/IntervalsBlocks.js:977 -msgid "movable Do" +#: js/blocks/BooleanBlocks.js:320 +msgid "xor" msgstr "" -#: js/IntervalsBlocks.js:1028 -#.TRANS: mode length is the number of notes in the mode, e.g., 7 for major and minor scales; 12 for chromatic scales -msgid "mode length" +#: js/blocks/BooleanBlocks.js:808 +msgid "The Equal block returns True if the two numbers are equal." msgstr "" -#: js/IntervalsBlocks.js:1037 -msgid "The Mode length block is the number of notes in the current scale." +#: js/blocks/BooleanBlocks.js:909 +msgid "The Not-equal-to block returns True if the two numbers are not equal to each other." msgstr "" -#: js/IntervalsBlocks.js:1039 -msgid "Most Western scales have 7 notes." +#: js/blocks/BooleanBlocks.js:1008 +msgid "The Boolean block is used to specify true or false." msgstr "" -#: js/IntervalsBlocks.js:1088 -#.TRANS: the mode in music is 'major', 'minor', etc. -msgid "current mode" +#: js/blocks/BoxesBlocks.js:53 +#: js/blocks/BoxesBlocks.js:59 +msgid "The Add-to block is used to add to the value stored in a box." msgstr "" -#: js/IntervalsBlocks.js:1141 -#.TRANS: the key is a group of pitches with which a music composition is created -msgid "current key" +#: js/blocks/BoxesBlocks.js:61 +msgid "It can also be used with other blocks such as Color and Pen size." msgstr "" -#: js/IntervalsBlocks.js:1193 -#: js/IntervalsBlocks.js:1238 -#.TRANS: set the key and mode, e.g. C Major -msgid "set key" +#: js/blocks/BoxesBlocks.js:73 +msgid "add" msgstr "" -#: js/IntervalsBlocks.js:1247 -#: js/IntervalsBlocks.js:1253 -msgid "The Set key block is used to set the key and mode," +#: js/blocks/BoxesBlocks.js:75 +#: js/widgets/temperament.js:857 +msgid "to" msgstr "" -#: js/IntervalsBlocks.js:1253 -msgid "eg C Major" +#: js/blocks/BoxesBlocks.js:75 +#: js/blocks/BoxesBlocks.js:595 +#: js/blocks/HeapBlocks.js:544 +msgid "value1" msgstr "" -#: js/IntervalsBlocks.js:1266 -#: js/DictBlocks.js:215 -#: js/DictBlocks.js:216 -#: js/DictBlocks.js:289 -#: js/DictBlocks.js:290 -#: js/DictBlocks.js:357 -#: js/DictBlocks.js:430 -#: js/DictBlocks.js:431 -#.TRANS: key, e.g., C in C Major -msgid "key" +#: js/blocks/BoxesBlocks.js:118 +msgid "Block does not support incrementing." msgstr "" -#: js/ActionBlocks.js:58 -msgid "The Return block will return a value from an action." +#: js/blocks/BoxesBlocks.js:152 +msgid "The Add-1-to block adds one to the value stored in a box." msgstr "" -#: js/ActionBlocks.js:75 -msgid "return" +#: js/blocks/BoxesBlocks.js:163 +msgid "add 1 to" msgstr "" -#: js/ActionBlocks.js:128 -msgid "The Return to URL block will return a value to a webpage." +#: js/blocks/BoxesBlocks.js:211 +msgid "The Subtract-1-from block subtracts one from the value stored in a box." msgstr "" -#: js/ActionBlocks.js:145 -msgid "return to URL" +#: js/blocks/BoxesBlocks.js:222 +msgid "subtract 1 from" msgstr "" -#: js/ActionBlocks.js:233 -#: js/ActionBlocks.js:290 -#: js/ActionBlocks.js:501 -#: js/ActionBlocks.js:688 -msgid "The Calculate block returns a value calculated by an action." +#: js/blocks/BoxesBlocks.js:270 +#: js/blocks/BoxesBlocks.js:387 +msgid "The Box block returns the value stored in a box." msgstr "" -#: js/ActionBlocks.js:251 -#: js/ActionBlocks.js:517 -#: js/ActionBlocks.js:707 -msgid "calculate" +#: js/blocks/BoxesBlocks.js:500 +#: js/blocks/BoxesBlocks.js:576 +msgid "The Store in block will store a value in a box." msgstr "" -#: js/ActionBlocks.js:376 -#: js/ActionBlocks.js:593 -#: js/ActionBlocks.js:942 -#: js/ActionBlocks.js:1389 -#.TRANS: do is the do something or take an action. -msgid "The Do block is used to initiate an action." +#: js/blocks/BoxesBlocks.js:595 +#: js/blocks/EnsembleBlocks.js:391 +#: js/blocks/EnsembleBlocks.js:402 +msgid "name1" msgstr "" -#: js/ActionBlocks.js:390 -#: js/ActionBlocks.js:610 -#: js/ActionBlocks.js:959 -#: js/ActionBlocks.js:1048 -#: js/MeterBlocks.js:769 -msgid "do1" +#: js/blocks/BoxesBlocks.js:652 +msgid "The Box2 block returns the value stored in Box2." msgstr "" -#: js/ActionBlocks.js:390 -#: js/ActionBlocks.js:610 -#: js/ActionBlocks.js:959 -#: js/ActionBlocks.js:1048 -#: js/FlowBlocks.js:742 -#: js/FlowBlocks.js:822 -#: js/MeterBlocks.js:769 -msgid "do" +#: js/blocks/BoxesBlocks.js:703 +msgid "The Store in Box2 block is used to store a value in Box2." msgstr "" -#: js/ActionBlocks.js:791 -#: js/ActionBlocks.js:865 -msgid "The Arg block contains the value of an argument passed to an action." +#: js/blocks/BoxesBlocks.js:715 +msgid "store in box2" msgstr "" -#: js/ActionBlocks.js:806 -#: js/ActionBlocks.js:878 -msgid "arg" +#: js/blocks/BoxesBlocks.js:761 +msgid "The Box1 block returns the value stored in Box1." msgstr "" -#: js/ActionBlocks.js:836 -#: js/ActionBlocks.js:900 -#: js/ActionBlocks.js:908 -msgid "Invalid argument" +#: js/blocks/BoxesBlocks.js:812 +msgid "The Store in Box1 block is used to store a value in Box1." msgstr "" -#: js/ActionBlocks.js:944 -msgid "In the example, it is used with the One of block to choose a random phase." +#: js/blocks/BoxesBlocks.js:826 +msgid "store in box1" msgstr "" -#: js/ActionBlocks.js:1019 -#: js/ActionBlocks.js:1026 -msgid "The Listen block is used to listen for an event such as a mouse click." +#: js/blocks/DictBlocks.js:77 +msgid "show dictionary" msgstr "" -#: js/ActionBlocks.js:1028 -msgid "When the event happens, an action is taken." +#: js/blocks/DictBlocks.js:80 +#: js/blocks/DictBlocks.js:145 +#: js/blocks/DictBlocks.js:216 +#: js/blocks/DictBlocks.js:290 +#: js/blocks/ProgramBlocks.js:396 +#: js/blocks/ProgramBlocks.js:501 +#: js/blocks/ProgramBlocks.js:664 +msgid "My Dictionary" msgstr "" -#: js/ActionBlocks.js:1045 -msgid "on" +#: js/blocks/DictBlocks.js:129 +msgid "The Dictionary block returns a dictionary." msgstr "" -#: js/ActionBlocks.js:1048 -#: js/ActionBlocks.js:1049 -#: js/ActionBlocks.js:1153 -msgid "event" +#: js/blocks/DictBlocks.js:197 +#: js/blocks/DictBlocks.js:339 +msgid "The Get-dict block returns a value in the dictionary for a specified key." msgstr "" -#: js/ActionBlocks.js:1133 -msgid "The Broadcast block is used to trigger an event." +#: js/blocks/DictBlocks.js:212 +#: js/blocks/DictBlocks.js:354 +#.TRANS: retrieve a value from the dictionary with a given key +msgid "get value" msgstr "" -#: js/ActionBlocks.js:1151 -msgid "broadcast" +#: js/blocks/DictBlocks.js:215 +#: js/blocks/DictBlocks.js:216 +#: js/blocks/DictBlocks.js:289 +#: js/blocks/DictBlocks.js:290 +#: js/blocks/DictBlocks.js:357 +#: js/blocks/DictBlocks.js:430 +#: js/blocks/DictBlocks.js:431 +msgid "key2" msgstr "" -#: js/ActionBlocks.js:1208 -msgid "Each Start block is a separate voice." +#: js/blocks/DictBlocks.js:215 +#: js/blocks/DictBlocks.js:216 +#: js/blocks/DictBlocks.js:289 +#: js/blocks/DictBlocks.js:290 +#: js/blocks/DictBlocks.js:357 +#: js/blocks/DictBlocks.js:430 +#: js/blocks/DictBlocks.js:431 +#: js/blocks/IntervalsBlocks.js:1462 +#.TRANS: key, e.g., C in C Major +msgid "key" msgstr "" -#: js/ActionBlocks.js:1304 -msgid "It is often used for storing a phrase of music that is repeated." +#: js/blocks/DictBlocks.js:271 +#: js/blocks/DictBlocks.js:411 +msgid "The Set-dict block sets a value in the dictionary for a specified key." msgstr "" -#: js/ActionBlocks.js:1495 -msgid "define temperament" +#: js/blocks/DictBlocks.js:286 +#: js/blocks/DictBlocks.js:427 +#.TRANS: set a value in the dictionary for a given key +msgid "set value" msgstr "" -#: js/EnsembleBlocks.js:66 +#: js/blocks/EnsembleBlocks.js:66 msgid "mouse index heap" msgstr "" -#: js/EnsembleBlocks.js:68 +#: js/blocks/EnsembleBlocks.js:68 msgid "The Mouse index heap block returns a value in the heap at a specified location for a specified mouse." msgstr "" -#: js/EnsembleBlocks.js:77 -#: js/EnsembleBlocks.js:1080 +#: js/blocks/EnsembleBlocks.js:77 +#: js/blocks/EnsembleBlocks.js:1080 msgid "mouse name" msgstr "" -#: js/EnsembleBlocks.js:77 -#: js/EnsembleBlocks.js:92 -#: js/HeapBlocks.js:544 +#: js/blocks/EnsembleBlocks.js:77 +#: js/blocks/EnsembleBlocks.js:92 +#: js/blocks/HeapBlocks.js:544 #.TRANS: value1 is a numeric value (JAPANESE ONLY) msgid "index" msgstr "" -#: js/EnsembleBlocks.js:80 +#: js/blocks/EnsembleBlocks.js:80 msgid "turtle index heap" msgstr "" -#: js/EnsembleBlocks.js:82 +#: js/blocks/EnsembleBlocks.js:82 msgid "The Turtle index heap block returns a value in the heap at a specified location for a specified turtle." msgstr "" -#: js/EnsembleBlocks.js:90 -#: js/EnsembleBlocks.js:167 -#: js/EnsembleBlocks.js:230 -#: js/EnsembleBlocks.js:316 -#: js/EnsembleBlocks.js:362 -#: js/EnsembleBlocks.js:400 -#: js/EnsembleBlocks.js:454 -#: js/EnsembleBlocks.js:504 -#: js/EnsembleBlocks.js:550 -#: js/EnsembleBlocks.js:597 -#: js/EnsembleBlocks.js:651 -#: js/EnsembleBlocks.js:763 -#: js/EnsembleBlocks.js:854 -#: js/EnsembleBlocks.js:915 -#: js/EnsembleBlocks.js:955 -#: js/EnsembleBlocks.js:1219 -#: js/EnsembleBlocks.js:1293 +#: js/blocks/EnsembleBlocks.js:90 +#: js/blocks/EnsembleBlocks.js:167 +#: js/blocks/EnsembleBlocks.js:230 +#: js/blocks/EnsembleBlocks.js:316 +#: js/blocks/EnsembleBlocks.js:362 +#: js/blocks/EnsembleBlocks.js:400 +#: js/blocks/EnsembleBlocks.js:454 +#: js/blocks/EnsembleBlocks.js:504 +#: js/blocks/EnsembleBlocks.js:550 +#: js/blocks/EnsembleBlocks.js:597 +#: js/blocks/EnsembleBlocks.js:651 +#: js/blocks/EnsembleBlocks.js:763 +#: js/blocks/EnsembleBlocks.js:854 +#: js/blocks/EnsembleBlocks.js:915 +#: js/blocks/EnsembleBlocks.js:955 +#: js/blocks/EnsembleBlocks.js:1219 +#: js/blocks/EnsembleBlocks.js:1293 #.TRANS: Yertle is the name of a turtle. msgid "Yertle" msgstr "" -#: js/EnsembleBlocks.js:92 -#: js/EnsembleBlocks.js:1089 +#: js/blocks/EnsembleBlocks.js:92 +#: js/blocks/EnsembleBlocks.js:1089 msgid "turtle name" msgstr "" -#: js/EnsembleBlocks.js:122 -#: js/EnsembleBlocks.js:1197 -#: js/HeapBlocks.js:474 -#: js/HeapBlocks.js:572 +#: js/blocks/EnsembleBlocks.js:122 +#: js/blocks/EnsembleBlocks.js:1197 +#: js/blocks/HeapBlocks.js:474 +#: js/blocks/HeapBlocks.js:572 msgid "Index must be > 0." msgstr "" -#: js/EnsembleBlocks.js:127 -#: js/HeapBlocks.js:479 -#: js/HeapBlocks.js:577 +#: js/blocks/EnsembleBlocks.js:127 +#: js/blocks/HeapBlocks.js:479 +#: js/blocks/HeapBlocks.js:577 msgid "Maximum heap size is 1000." msgstr "" -#: js/EnsembleBlocks.js:145 +#: js/blocks/EnsembleBlocks.js:145 msgid "stop mouse" msgstr "" -#: js/EnsembleBlocks.js:147 +#: js/blocks/EnsembleBlocks.js:147 msgid "The Stop mouse block stops the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:158 +#: js/blocks/EnsembleBlocks.js:158 msgid "stop turtle" msgstr "" -#: js/EnsembleBlocks.js:160 +#: js/blocks/EnsembleBlocks.js:160 msgid "The Stop turtle block stops the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:184 -#: js/EnsembleBlocks.js:247 -#: js/EnsembleBlocks.js:413 -#: js/EnsembleBlocks.js:468 -#: js/EnsembleBlocks.js:706 -#: js/EnsembleBlocks.js:808 -#: js/EnsembleBlocks.js:870 -#: js/EnsembleBlocks.js:1190 -#: js/EnsembleBlocks.js:1253 +#: js/blocks/EnsembleBlocks.js:184 +#: js/blocks/EnsembleBlocks.js:247 +#: js/blocks/EnsembleBlocks.js:413 +#: js/blocks/EnsembleBlocks.js:468 +#: js/blocks/EnsembleBlocks.js:706 +#: js/blocks/EnsembleBlocks.js:808 +#: js/blocks/EnsembleBlocks.js:870 +#: js/blocks/EnsembleBlocks.js:1190 +#: js/blocks/EnsembleBlocks.js:1253 msgid "Cannot find mouse" msgstr "" -#: js/EnsembleBlocks.js:186 -#: js/EnsembleBlocks.js:249 -#: js/EnsembleBlocks.js:415 -#: js/EnsembleBlocks.js:470 -#: js/EnsembleBlocks.js:708 -#: js/EnsembleBlocks.js:810 -#: js/EnsembleBlocks.js:872 -#: js/EnsembleBlocks.js:1192 -#: js/EnsembleBlocks.js:1255 +#: js/blocks/EnsembleBlocks.js:186 +#: js/blocks/EnsembleBlocks.js:249 +#: js/blocks/EnsembleBlocks.js:415 +#: js/blocks/EnsembleBlocks.js:470 +#: js/blocks/EnsembleBlocks.js:708 +#: js/blocks/EnsembleBlocks.js:810 +#: js/blocks/EnsembleBlocks.js:872 +#: js/blocks/EnsembleBlocks.js:1192 +#: js/blocks/EnsembleBlocks.js:1255 msgid "Cannot find turtle" msgstr "" -#: js/EnsembleBlocks.js:206 +#: js/blocks/EnsembleBlocks.js:206 msgid "start mouse" msgstr "" -#: js/EnsembleBlocks.js:209 +#: js/blocks/EnsembleBlocks.js:209 msgid "The Start mouse block starts the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:220 +#: js/blocks/EnsembleBlocks.js:220 msgid "start turtle" msgstr "" -#: js/EnsembleBlocks.js:223 +#: js/blocks/EnsembleBlocks.js:223 msgid "The Start turtle block starts the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:256 +#: js/blocks/EnsembleBlocks.js:256 msgid "Mouse is already running." msgstr "" -#: js/EnsembleBlocks.js:258 +#: js/blocks/EnsembleBlocks.js:258 msgid "Turtle is already running." msgstr "" -#: js/EnsembleBlocks.js:282 +#: js/blocks/EnsembleBlocks.js:282 msgid "Cannot find start block" msgstr "" -#: js/EnsembleBlocks.js:292 +#: js/blocks/EnsembleBlocks.js:292 #.TRANS: pen color for this mouse msgid "mouse color" msgstr "" -#: js/EnsembleBlocks.js:294 +#: js/blocks/EnsembleBlocks.js:294 msgid "The Mouse color block returns the pen color of the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:306 +#: js/blocks/EnsembleBlocks.js:306 #.TRANS: pen color for this turtle msgid "turtle color" msgstr "" -#: js/EnsembleBlocks.js:308 +#: js/blocks/EnsembleBlocks.js:308 msgid "The Turtle color block returns the pen color of the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:338 +#: js/blocks/EnsembleBlocks.js:338 #.TRANS: heading (compass direction) for this mouse msgid "mouse heading" msgstr "" -#: js/EnsembleBlocks.js:340 +#: js/blocks/EnsembleBlocks.js:340 msgid "The Mouse heading block returns the heading of the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:352 +#: js/blocks/EnsembleBlocks.js:352 #.TRANS: heading (compass direction) for this turtle msgid "turtle heading" msgstr "" -#: js/EnsembleBlocks.js:354 +#: js/blocks/EnsembleBlocks.js:354 msgid "The Turtle heading block returns the heading of the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:384 -#: js/EnsembleBlocks.js:439 +#: js/blocks/EnsembleBlocks.js:384 +#: js/blocks/EnsembleBlocks.js:439 #.TRANS: set xy position for this mouse msgid "set mouse" msgstr "" -#: js/EnsembleBlocks.js:391 -#: js/EnsembleBlocks.js:402 -#: js/BoxesBlocks.js:595 -msgid "name1" -msgstr "" - -#: js/EnsembleBlocks.js:391 -#: js/EnsembleBlocks.js:402 -#: js/ProgramBlocks.js:881 -#: js/GraphicsBlocks.js:235 -#: js/GraphicsBlocks.js:313 -#: js/GraphicsBlocks.js:436 -#: js/GraphicsBlocks.js:487 -#: js/GraphicsBlocks.js:534 -#: js/GraphicsBlocks.js:750 +#: js/blocks/EnsembleBlocks.js:391 +#: js/blocks/EnsembleBlocks.js:402 +#: js/blocks/GraphicsBlocks.js:235 +#: js/blocks/GraphicsBlocks.js:313 +#: js/blocks/GraphicsBlocks.js:436 +#: js/blocks/GraphicsBlocks.js:487 +#: js/blocks/GraphicsBlocks.js:534 +#: js/blocks/GraphicsBlocks.js:750 +#: js/blocks/ProgramBlocks.js:881 msgid "x" msgstr "" -#: js/EnsembleBlocks.js:391 -#: js/EnsembleBlocks.js:402 -#: js/ProgramBlocks.js:881 -#: js/GraphicsBlocks.js:149 -#: js/GraphicsBlocks.js:313 -#: js/GraphicsBlocks.js:436 -#: js/GraphicsBlocks.js:487 -#: js/GraphicsBlocks.js:534 -#: js/GraphicsBlocks.js:750 +#: js/blocks/EnsembleBlocks.js:391 +#: js/blocks/EnsembleBlocks.js:402 +#: js/blocks/GraphicsBlocks.js:149 +#: js/blocks/GraphicsBlocks.js:313 +#: js/blocks/GraphicsBlocks.js:436 +#: js/blocks/GraphicsBlocks.js:487 +#: js/blocks/GraphicsBlocks.js:534 +#: js/blocks/GraphicsBlocks.js:750 +#: js/blocks/ProgramBlocks.js:881 msgid "y" msgstr "" -#: js/EnsembleBlocks.js:395 -#: js/EnsembleBlocks.js:452 +#: js/blocks/EnsembleBlocks.js:395 +#: js/blocks/EnsembleBlocks.js:452 #.TRANS: set xy position for this turtle msgid "set turtle" msgstr "" -#: js/EnsembleBlocks.js:433 +#: js/blocks/EnsembleBlocks.js:433 msgid "The Set mouse block sends a stack of blocks to be run by the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:446 +#: js/blocks/EnsembleBlocks.js:446 msgid "The Set turtle block sends a stack of blocks to be run by the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:480 +#: js/blocks/EnsembleBlocks.js:480 #.TRANS: y position for this mouse msgid "mouse y" msgstr "" -#: js/EnsembleBlocks.js:482 +#: js/blocks/EnsembleBlocks.js:482 msgid "The Y mouse block returns the Y position of the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:494 +#: js/blocks/EnsembleBlocks.js:494 #.TRANS: y position for this turtle msgid "turtle y" msgstr "" -#: js/EnsembleBlocks.js:496 +#: js/blocks/EnsembleBlocks.js:496 msgid "The Y turtle block returns the Y position of the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:526 +#: js/blocks/EnsembleBlocks.js:526 #.TRANS: x position for this mouse msgid "mouse x" msgstr "" -#: js/EnsembleBlocks.js:528 +#: js/blocks/EnsembleBlocks.js:528 msgid "The X mouse block returns the X position of the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:540 +#: js/blocks/EnsembleBlocks.js:540 #.TRANS: x position for this turtle msgid "turtle x" msgstr "" -#: js/EnsembleBlocks.js:542 +#: js/blocks/EnsembleBlocks.js:542 msgid "The X turtle block returns the X position of the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:573 +#: js/blocks/EnsembleBlocks.js:573 #.TRANS: notes played by this mouse msgid "mouse notes played" msgstr "" -#: js/EnsembleBlocks.js:575 +#: js/blocks/EnsembleBlocks.js:575 msgid "The Mouse elapse notes block returns the number of notes played by the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:587 +#: js/blocks/EnsembleBlocks.js:587 #.TRANS: notes played by this turtle msgid "turtle notes played" msgstr "" -#: js/EnsembleBlocks.js:589 +#: js/blocks/EnsembleBlocks.js:589 msgid "The Turtle elapse notes block returns the number of notes played by the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:627 +#: js/blocks/EnsembleBlocks.js:627 #.TRANS: convert current note for this turtle to piano key (1-88) msgid "mouse pitch number" msgstr "" -#: js/EnsembleBlocks.js:629 +#: js/blocks/EnsembleBlocks.js:629 msgid "The Mouse pitch block returns the current pitch number being played by the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:641 +#: js/blocks/EnsembleBlocks.js:641 #.TRANS: convert current note for this turtle to piano key (1-88) msgid "turtle pitch number" msgstr "" -#: js/EnsembleBlocks.js:643 -msgid "The Turrle pitch block returns the current pitch number being played by the specified turtle." +#: js/blocks/EnsembleBlocks.js:643 +msgid "The Turtle pitch block returns the current pitch number being played by the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:747 -#: js/EnsembleBlocks.js:819 +#: js/blocks/EnsembleBlocks.js:747 +#: js/blocks/EnsembleBlocks.js:819 #.TRANS: note value is the duration of the note played by this mouse msgid "mouse note value" msgstr "" -#: js/EnsembleBlocks.js:757 +#: js/blocks/EnsembleBlocks.js:757 #.TRANS: note value is the duration of the note played by this turtle msgid "turtle note value" msgstr "" -#: js/EnsembleBlocks.js:830 +#: js/blocks/EnsembleBlocks.js:830 #.TRANS: sync is short for synchronization msgid "mouse sync" msgstr "" -#: js/EnsembleBlocks.js:832 +#: js/blocks/EnsembleBlocks.js:832 msgid "The Mouse sync block aligns the beat count between mice." msgstr "" -#: js/EnsembleBlocks.js:844 +#: js/blocks/EnsembleBlocks.js:844 #.TRANS: sync is short for synchronization msgid "turtle sync" msgstr "" -#: js/EnsembleBlocks.js:846 +#: js/blocks/EnsembleBlocks.js:846 msgid "The Turtle sync block aligns the beat count between turtles." msgstr "" -#: js/EnsembleBlocks.js:887 +#: js/blocks/EnsembleBlocks.js:887 msgid "The Found mouse block will return true if the specified mouse can be found." msgstr "" -#: js/EnsembleBlocks.js:893 +#: js/blocks/EnsembleBlocks.js:893 msgid "found mouse" msgstr "" -#: js/EnsembleBlocks.js:903 +#: js/blocks/EnsembleBlocks.js:903 msgid "The Found turtle block will return true if the specified turtle can be found." msgstr "" -#: js/EnsembleBlocks.js:909 +#: js/blocks/EnsembleBlocks.js:909 msgid "found turtle" msgstr "" -#: js/EnsembleBlocks.js:932 +#: js/blocks/EnsembleBlocks.js:932 msgid "new mouse" msgstr "" -#: js/EnsembleBlocks.js:934 +#: js/blocks/EnsembleBlocks.js:934 msgid "The New mouse block will create a new mouse." msgstr "" -#: js/EnsembleBlocks.js:945 +#: js/blocks/EnsembleBlocks.js:945 msgid "new turtle" msgstr "" -#: js/EnsembleBlocks.js:947 +#: js/blocks/EnsembleBlocks.js:947 msgid "The New turtle block will create a new turtle." msgstr "" -#: js/EnsembleBlocks.js:1011 +#: js/blocks/EnsembleBlocks.js:1011 msgid "set mouse color" msgstr "" -#: js/EnsembleBlocks.js:1014 +#: js/blocks/EnsembleBlocks.js:1014 msgid "The Set-mouse-color block is used to set the color of a mouse." msgstr "" -#: js/EnsembleBlocks.js:1020 +#: js/blocks/EnsembleBlocks.js:1020 msgid "set turtle color" msgstr "" -#: js/EnsembleBlocks.js:1023 +#: js/blocks/EnsembleBlocks.js:1023 msgid "The Set-turtle-color block is used to set the color of a turtle." msgstr "" -#: js/EnsembleBlocks.js:1083 +#: js/blocks/EnsembleBlocks.js:1083 msgid "The Mouse-name block returns the name of a mouse." msgstr "" -#: js/EnsembleBlocks.js:1092 +#: js/blocks/EnsembleBlocks.js:1092 msgid "The Turtle-name block returns the name of a turtle." msgstr "" -#: js/EnsembleBlocks.js:1115 +#: js/blocks/EnsembleBlocks.js:1115 msgid "mouse count" msgstr "" -#: js/EnsembleBlocks.js:1118 +#: js/blocks/EnsembleBlocks.js:1118 msgid "The Mouse-count block returns the number of mice." msgstr "" -#: js/EnsembleBlocks.js:1124 +#: js/blocks/EnsembleBlocks.js:1124 msgid "turtle count" msgstr "" -#: js/EnsembleBlocks.js:1127 +#: js/blocks/EnsembleBlocks.js:1127 msgid "The Turtle-count block returns the number of turtles." msgstr "" -#: js/EnsembleBlocks.js:1149 +#: js/blocks/EnsembleBlocks.js:1149 msgid "nth mouse name" msgstr "" -#: js/EnsembleBlocks.js:1152 +#: js/blocks/EnsembleBlocks.js:1152 msgid "The Nth-Mouse name block returns the name of the nth mouse." msgstr "" -#: js/EnsembleBlocks.js:1158 +#: js/blocks/EnsembleBlocks.js:1158 msgid "nth turtle name" msgstr "" -#: js/EnsembleBlocks.js:1161 +#: js/blocks/EnsembleBlocks.js:1161 msgid "The Nth-Turtle name block returns the name of the nth turtle." msgstr "" -#: js/EnsembleBlocks.js:1205 -#: js/EnsembleBlocks.js:1265 +#: js/blocks/EnsembleBlocks.js:1205 +#: js/blocks/EnsembleBlocks.js:1265 msgid "set name" msgstr "" -#: js/EnsembleBlocks.js:1214 -#: js/EnsembleBlocks.js:1221 +#: js/blocks/EnsembleBlocks.js:1214 +#: js/blocks/EnsembleBlocks.js:1221 msgid "source" msgstr "" -#: js/EnsembleBlocks.js:1214 -#: js/EnsembleBlocks.js:1221 +#: js/blocks/EnsembleBlocks.js:1214 +#: js/blocks/EnsembleBlocks.js:1221 msgid "target" msgstr "" -#: js/EnsembleBlocks.js:1271 +#: js/blocks/EnsembleBlocks.js:1271 msgid "The Set-name block is used to name a mouse." msgstr "" -#: js/EnsembleBlocks.js:1284 +#: js/blocks/EnsembleBlocks.js:1284 msgid "The Set-name block is used to name a turtle." msgstr "" -#: js/BooleanBlocks.js:44 -msgid "The Not block is the logical not operator." -msgstr "" - -#: js/BooleanBlocks.js:62 -msgid "not" -msgstr "" - -#: js/BooleanBlocks.js:134 -msgid "The And block is the logical and operator." -msgstr "" - -#: js/BooleanBlocks.js:152 -msgid "and" -msgstr "" - -#: js/BooleanBlocks.js:218 -msgid "The Or block is the logical or operator." -msgstr "" - -#: js/BooleanBlocks.js:236 -msgid "or" -msgstr "" - -#: js/BooleanBlocks.js:302 -msgid "The XOR block is the logical XOR operator." -msgstr "" - -#: js/BooleanBlocks.js:320 -msgid "xor" -msgstr "" - -#: js/BooleanBlocks.js:808 -msgid "The Equal block returns True if the two numbers are equal." -msgstr "" - -#: js/BooleanBlocks.js:909 -msgid "The Not-equal-to block returns True if the two numbers are not equal to each other." -msgstr "" - -#: js/BooleanBlocks.js:1008 -msgid "The Boolean block is used to specify true or false." -msgstr "" - -#: js/MediaBlocks.js:35 -#.TRANS: right side of the screen -msgid "right (screen)" -msgstr "" - -#: js/MediaBlocks.js:45 -#: js/MediaBlocks.js:56 -msgid "The Right block returns the position of the right of the canvas." -msgstr "" - -#: js/MediaBlocks.js:97 -#.TRANS: left side of the screen -msgid "left (screen)" -msgstr "" - -#: js/MediaBlocks.js:107 -#: js/MediaBlocks.js:118 -msgid "The Left block returns the position of the left of the canvas." -msgstr "" - -#: js/MediaBlocks.js:158 -msgid "top (screen)" -msgstr "" - -#: js/MediaBlocks.js:168 -#: js/MediaBlocks.js:179 -msgid "The Top block returns the position of the top of the canvas." -msgstr "" - -#: js/MediaBlocks.js:219 -msgid "bottom (screen)" +#: js/blocks/ExtrasBlocks.js:33 +msgid "fraction" msgstr "" -#: js/MediaBlocks.js:229 -#: js/MediaBlocks.js:240 -msgid "The Bottom block returns the position of the bottom of the canvas." +#: js/blocks/ExtrasBlocks.js:36 +msgid "Convert a float to a fraction" msgstr "" -#: js/MediaBlocks.js:282 -msgid "width" +#: js/blocks/ExtrasBlocks.js:93 +msgid "save as ABC" msgstr "" -#: js/MediaBlocks.js:291 -msgid "The Width block returns the width of the canvas." +#: js/blocks/ExtrasBlocks.js:96 +#: js/blocks/ExtrasBlocks.js:132 +#: js/blocks/ExtrasBlocks.js:168 +msgid "title" msgstr "" -#: js/MediaBlocks.js:325 -msgid "height" +#: js/blocks/ExtrasBlocks.js:129 +msgid "save as Lilypond" msgstr "" -#: js/MediaBlocks.js:334 -msgid "The Height block returns the height of the canvas." +#: js/blocks/ExtrasBlocks.js:165 +msgid "save as SVG" msgstr "" -#: js/MediaBlocks.js:369 -#.TRANS: stops playback of an audio recording -msgid "stop play" +#: js/blocks/ExtrasBlocks.js:216 +msgid "no background" msgstr "" -#: js/MediaBlocks.js:404 -#.TRANS: Erases the images and text -msgid "erase media" +#: js/blocks/ExtrasBlocks.js:219 +msgid "The No background block eliminates the background from the saved SVG output." msgstr "" -#: js/MediaBlocks.js:409 -msgid "The Erase Media block erases text and images." +#: js/blocks/ExtrasBlocks.js:247 +msgid "show blocks" msgstr "" -#: js/MediaBlocks.js:439 -#.TRANS: play an audio recording -msgid "play back" +#: js/blocks/ExtrasBlocks.js:249 +msgid "The Show blocks block shows the blocks." msgstr "" -#: js/MediaBlocks.js:487 -msgid "speak" +#: js/blocks/ExtrasBlocks.js:274 +msgid "hide blocks" msgstr "" -#: js/MediaBlocks.js:495 -msgid "The Speak block outputs to the text-to-speech synthesizer" +#: js/blocks/ExtrasBlocks.js:276 +msgid "The Hide blocks block hides the blocks." msgstr "" -#: js/MediaBlocks.js:546 -msgid "camera" +#: js/blocks/ExtrasBlocks.js:305 +#: js/blocks/ExtrasBlocks.js:338 +msgid "The Space block is used to add space between blocks." msgstr "" -#: js/MediaBlocks.js:551 -msgid "The Camera block connects a webcam to the Show block." +#: js/blocks/ExtrasBlocks.js:376 +msgid "wait" msgstr "" -#: js/MediaBlocks.js:574 -msgid "video" +#: js/blocks/ExtrasBlocks.js:379 +msgid "The Wait block pauses the program for a specified number of seconds." msgstr "" -#: js/MediaBlocks.js:579 -msgid "The Video block selects video for use with the Show block." +#: js/blocks/ExtrasBlocks.js:433 +#: plugins/facebook.rtp:30 +msgid "comment" msgstr "" -#: js/MediaBlocks.js:607 -msgid "The Open file block opens a file for use with the Show block." +#: js/blocks/ExtrasBlocks.js:469 +msgid "print" msgstr "" -#: js/MediaBlocks.js:645 -msgid "stop media" +#: js/blocks/ExtrasBlocks.js:476 +msgid "The Print block displays text at the top of the screen." msgstr "" -#: js/MediaBlocks.js:650 -msgid "The Stop media block stops audio or video playback." +#: js/blocks/ExtrasBlocks.js:582 +msgid "display grid" msgstr "" -#: js/MediaBlocks.js:679 -#: js/PitchBlocks.js:1539 -#: js/phrasemaker.js:822 -#: js/musickeyboard.js:1654 -#.TRANS: a measure of frequency: one cycle per second -msgid "hertz" +#: js/blocks/ExtrasBlocks.js:587 +msgid "The Display Grid Block changes the grid type" msgstr "" -#: js/MediaBlocks.js:692 -msgid "duration (ms)" +#: js/blocks/ExtrasBlocks.js:689 +#: js/blocks/ExtrasBlocks.js:708 +#: js/blocks/ExtrasBlocks.js:731 +#: js/blocks/ExtrasBlocks.js:754 +#: js/blocks/ExtrasBlocks.js:772 +#: js/blocks/ExtrasBlocks.js:791 +#: js/blocks/ExtrasBlocks.js:810 +#: js/blocks/ExtrasBlocks.js:829 +msgid "unknown" msgstr "" -#: js/MediaBlocks.js:728 -#.TRANS: translate a note into hertz, e.g., A4 -> 440HZ -msgid "note to frequency" +#: js/blocks/FlowBlocks.js:41 +msgid "The Backward block runs code in reverse order (Musical retrograde)." msgstr "" -#: js/MediaBlocks.js:736 -msgid "The To frequency block converts a pitch name and octave to Hertz." +#: js/blocks/FlowBlocks.js:48 +msgid "backward" msgstr "" -#: js/MediaBlocks.js:746 -#: js/PitchBlocks.js:656 -#: js/PitchBlocks.js:932 -#: js/PitchBlocks.js:1827 -#.TRANS: name2 is name as in name of pitch (JAPANESE ONLY) -msgid "name2" +#: js/blocks/FlowBlocks.js:124 +msgid "The Duplicate block will run each block multiple times." msgstr "" -#: js/MediaBlocks.js:812 -msgid "The Avatar block is used to change the appearance of the mouse." +#: js/blocks/FlowBlocks.js:136 +msgid "duplicate" msgstr "" -#: js/MediaBlocks.js:819 -msgid "The Avatar block is used to change the appearance of the turtle." +#: js/blocks/FlowBlocks.js:334 +msgid "The Default block is used inside of a Switch to define the default action." msgstr "" -#: js/MediaBlocks.js:831 -#: js/MediaBlocks.js:891 -#.TRANS: a media object -msgid "size" +#: js/blocks/FlowBlocks.js:342 +msgid "default" msgstr "" -#: js/MediaBlocks.js:831 -msgid "image" +#: js/blocks/FlowBlocks.js:361 +#: js/blocks/FlowBlocks.js:418 +msgid "The Case Block must be used inside of a Switch Block." msgstr "" -#: js/MediaBlocks.js:880 -msgid "The Show block is used to display text or images on the canvas." +#: js/blocks/FlowBlocks.js:389 +msgid "The Case block is used inside of a Switch to define matches." msgstr "" -#: js/MediaBlocks.js:888 -#.TRANS: show1 is show as in display an image or text on the screen. -msgid "show1" +#: js/blocks/FlowBlocks.js:397 +msgid "case" msgstr "" -#: js/MediaBlocks.js:891 -msgid "obj" +#: js/blocks/FlowBlocks.js:446 +msgid "The Switch block will run the code in the matching Case." msgstr "" -#: js/MediaBlocks.js:938 -msgid "The Media block is used to import an image." +#: js/blocks/FlowBlocks.js:454 +msgid "switch" msgstr "" -#: js/MediaBlocks.js:973 -msgid "The Text block holds a text string." +#: js/blocks/FlowBlocks.js:595 +msgid "The Stop block will stop a loop" msgstr "" -#: js/ProgramBlocks.js:33 -msgid "The Load-heap-from-app block loads the heap from a web page." +#: js/blocks/FlowBlocks.js:597 +msgid "Forever, Repeat, While, or Until." msgstr "" -#: js/ProgramBlocks.js:44 -#.TRANS: load the heap contents from a URL -msgid "load heap from App" +#: js/blocks/FlowBlocks.js:604 +#: js/widgets/timbre.js:417 +#: js/widgets/timbre.js:419 +#: js/widgets/musickeyboard.js:819 +#: js/widgets/musickeyboard.js:821 +#: js/widgets/phrasemaker.js:4202 +#: plugins/rodi.rtp:29 +#: plugins/rodi.rtp:73 +#: plugins/rodi.rtp:413 +msgid "stop" msgstr "" -#: js/ProgramBlocks.js:95 -msgid "Error parsing JSON data:" +#: js/blocks/FlowBlocks.js:653 +msgid "The Waitfor block will wait until the condition is true." msgstr "" -#: js/ProgramBlocks.js:100 -msgid "404: Page not found" +#: js/blocks/FlowBlocks.js:661 +msgid "wait for" msgstr "" -#: js/ProgramBlocks.js:133 -msgid "The Save-heap-to-app block saves the heap to a web page." +#: js/blocks/FlowBlocks.js:732 +msgid "The Until block will repeat until the condition is true." msgstr "" -#: js/ProgramBlocks.js:144 -#.TRANS: save the heap contents to a URL -msgid "save heap to App" +#: js/blocks/FlowBlocks.js:740 +msgid "until" msgstr "" -#: js/ProgramBlocks.js:189 -msgid "Cannot find a valid heap for" +#: js/blocks/FlowBlocks.js:742 +#: js/blocks/FlowBlocks.js:822 +msgid "do2" msgstr "" -#: js/ProgramBlocks.js:206 -msgid "The Load-heap block loads the heap from a file." +#: js/blocks/FlowBlocks.js:812 +msgid "The While block will repeat while the condition is true." msgstr "" -#: js/ProgramBlocks.js:217 -#.TRANS: load the heap from a file -msgid "load heap" +#: js/blocks/FlowBlocks.js:820 +msgid "while" msgstr "" -#: js/ProgramBlocks.js:270 -msgid "The file you selected does not contain a valid heap." +#: js/blocks/FlowBlocks.js:903 +#: js/blocks/FlowBlocks.js:968 +#: js/blocks/FlowBlocks.js:979 +msgid "In this example if the mouse button is pressed a snare drum will play." msgstr "" -#: js/ProgramBlocks.js:275 -msgid "The loadHeap block needs a loadFile block." +#: js/blocks/FlowBlocks.js:925 +#: js/blocks/FlowBlocks.js:988 +msgid "if" msgstr "" -#: js/ProgramBlocks.js:291 -msgid "The Set-heap block loads the heap." +#: js/blocks/FlowBlocks.js:927 +#: js/blocks/FlowBlocks.js:990 +msgid "then" msgstr "" -#: js/ProgramBlocks.js:299 -#: js/HeapBlocks.js:539 -#.TRANS: load the heap from a JSON encoding -msgid "set heap" +#: js/blocks/FlowBlocks.js:927 +msgid "else" msgstr "" -#: js/ProgramBlocks.js:340 -msgid "The block you selected does not contain a valid heap." +#: js/blocks/FlowBlocks.js:1025 +msgid "The Forever block will repeat the contained blocks forever." msgstr "" -#: js/ProgramBlocks.js:343 -msgid "The Set heap block needs a heap." +#: js/blocks/FlowBlocks.js:1037 +msgid "forever" msgstr "" -#: js/ProgramBlocks.js:360 -msgid "The Load-dictionary block loads a dictionary from a file." +#: js/blocks/FlowBlocks.js:1073 +msgid "The Repeat block will repeat the contained blocks." msgstr "" -#: js/ProgramBlocks.js:372 -#.TRANS: load a dictionary from a file -msgid "load dictionary" +#: js/blocks/FlowBlocks.js:1075 +msgid "In this example the note will be played 4 times." msgstr "" -#: js/ProgramBlocks.js:390 -#: js/ProgramBlocks.js:658 -#: js/ToneBlocks.js:1025 -msgid "file" +#: js/blocks/FlowBlocks.js:1083 +msgid "repeat" msgstr "" -#: js/ProgramBlocks.js:396 -#: js/ProgramBlocks.js:501 -#: js/ProgramBlocks.js:664 -#: js/DictBlocks.js:80 -#: js/DictBlocks.js:145 -#: js/DictBlocks.js:216 -#: js/DictBlocks.js:290 -msgid "My Dictionary" +#: js/blocks/FlowBlocks.js:1123 +msgid "duplicate factor" msgstr "" -#: js/ProgramBlocks.js:444 -msgid "The file you selected does not contain a valid dictionary." +#: js/blocks/HeapBlocks.js:49 +msgid "The Heap block returns the heap." msgstr "" -#: js/ProgramBlocks.js:449 -msgid "The load dictionary block needs a load file block." +#: js/blocks/HeapBlocks.js:133 +msgid "show heap" msgstr "" -#: js/ProgramBlocks.js:466 -msgid "The Set-dictionary block loads a dictionary." +#: js/blocks/HeapBlocks.js:181 +msgid "The Heap-length block returns the length of the heap." msgstr "" -#: js/ProgramBlocks.js:477 -#.TRANS: load a dictionary from a JSON -msgid "set dictionary" +#: js/blocks/HeapBlocks.js:195 +msgid "heap length" msgstr "" -#: js/ProgramBlocks.js:546 -msgid "The block you selected does not contain a valid dictionary." +#: js/blocks/HeapBlocks.js:254 +msgid "The Heap-empty? block returns true if the heap is empty." msgstr "" -#: js/ProgramBlocks.js:550 -msgid "The set dictionary block needs a dictionary." +#: js/blocks/HeapBlocks.js:268 +#.TRANS: Is the heap empty? +msgid "heap empty?" msgstr "" -#: js/ProgramBlocks.js:567 -msgid "The Save-heap block saves the heap to a file." +#: js/blocks/HeapBlocks.js:317 +msgid "The Empty-heap block empties the heap." msgstr "" -#: js/ProgramBlocks.js:578 -#.TRANS: save the heap to a file -msgid "save heap" +#: js/blocks/HeapBlocks.js:327 +#: js/blocks/HeapBlocks.js:647 +#.TRANS: empty the heap +msgid "empty heap" msgstr "" -#: js/ProgramBlocks.js:629 -msgid "The Save-dictionary block saves a dictionary to a file." +#: js/blocks/HeapBlocks.js:371 +msgid "The Reverse-heap block reverses the order of the heap." msgstr "" -#: js/ProgramBlocks.js:640 -#.TRANS: save a dictionary to a file -msgid "save dictionary" +#: js/blocks/HeapBlocks.js:384 +#.TRANS: reverse the order of the heap +msgid "reverse heap" msgstr "" -#: js/ProgramBlocks.js:720 -msgid "The Open palette block opens a palette." +#: js/blocks/HeapBlocks.js:428 +msgid "The Index-heap block returns a value in the heap at a specified location." msgstr "" -#: js/ProgramBlocks.js:727 -msgid "open palette" +#: js/blocks/HeapBlocks.js:443 +#.TRANS: retrieve a value from the heap at index position in the heap +msgid "index heap" msgstr "" -#: js/ProgramBlocks.js:785 -msgid "The Delete block block removes a block." +#: js/blocks/HeapBlocks.js:523 +msgid "The Set-heap entry block sets a value in he heap at the specified location." msgstr "" -#: js/ProgramBlocks.js:797 -#.TRANS: Move this block to the trash. -msgid "delete block" +#: js/blocks/HeapBlocks.js:539 +#: js/blocks/ProgramBlocks.js:299 +#.TRANS: load the heap from a JSON encoding +msgid "set heap" msgstr "" -#: js/ProgramBlocks.js:861 -msgid "The Move block block moves a block." +#: js/blocks/HeapBlocks.js:619 +msgid "The Pop block removes the value at the top of the heap." msgstr "" -#: js/ProgramBlocks.js:869 -#.TRANS: Move the position of a block on the screen. -msgid "move block" +#: js/blocks/HeapBlocks.js:633 +#.TRANS: pop a value off the top of the heap +msgid "pop" msgstr "" -#: js/ProgramBlocks.js:881 -#: js/ProgramBlocks.js:1048 -msgid "block number" +#: js/blocks/HeapBlocks.js:680 +msgid "The Push block adds a value to the top of the heap." msgstr "" -#: js/ProgramBlocks.js:935 -#.TRANS: Run program beginning at this block. -msgid "run block" +#: js/blocks/HeapBlocks.js:696 +#.TRANS: push a value onto the top of the heap +msgid "push" msgstr "" -#: js/ProgramBlocks.js:1025 -msgid "The Dock block block connections two blocks." +#: js/blocks/IntervalsBlocks.js:45 +msgid "set temperament" msgstr "" -#: js/ProgramBlocks.js:1036 -#.TRANS: We can connect a block to another block. -msgid "connect blocks" +#: js/blocks/IntervalsBlocks.js:63 +#: js/blocks/MediaBlocks.js:746 +#: js/blocks/PitchBlocks.js:657 +#: js/blocks/PitchBlocks.js:935 +#: js/blocks/PitchBlocks.js:974 +#: js/blocks/PitchBlocks.js:1007 +#: js/blocks/PitchBlocks.js:1194 +#: js/blocks/PitchBlocks.js:1717 +#: js/blocks/PitchBlocks.js:1758 +#: js/blocks/PitchBlocks.js:1866 +#: js/blocks/ToneBlocks.js:1025 +#: js/turtleactions/IntervalsActions.js:114 +#.TRANS: adjusts the shift up or down by one octave (twelve half-steps in the interval between two notes, one having twice or half the frequency in Hz of the other.) +msgid "octave" msgstr "" -#: js/ProgramBlocks.js:1048 -msgid "target block" +#: js/blocks/IntervalsBlocks.js:99 +msgid "The Temperament name block is used to select a tuning method." msgstr "" -#: js/ProgramBlocks.js:1048 -msgid "connection number" +#: js/blocks/IntervalsBlocks.js:161 +msgid "doubly" msgstr "" -#: js/ProgramBlocks.js:1140 -msgid "The Make block block creates a new block." +#: js/blocks/IntervalsBlocks.js:166 +msgid "The Doubly block will double the size of an interval." msgstr "" -#: js/ProgramBlocks.js:1152 -#.TRANS: Create a new block -msgid "make block" +#: js/blocks/IntervalsBlocks.js:262 +msgid "interval number" msgstr "" -#: js/ProgramBlocks.js:1186 -#: js/ProgramBlocks.js:1227 -#: js/RhythmBlocks.js:1128 -#: js/PitchBlocks.js:972 -#: js/PitchBlocks.js:1005 -#: js/temperament.js:340 -#: js/temperament.js:362 -#: js/temperament.js:372 -#: js/temperament.js:484 -#: js/status.js:190 -#: plugins/rodi.rtp:192 -#.TRANS: a musical note consisting of pitch and duration -msgid "note" +#: js/blocks/IntervalsBlocks.js:317 +msgid "current interval" msgstr "" -#: js/ProgramBlocks.js:1285 -msgid "Cannot find block" +#: js/blocks/IntervalsBlocks.js:387 +#.TRANS: measure the distance between two pitches in semi-tones +msgid "semi-tone interval measure" msgstr "" -#: js/ProgramBlocks.js:1304 -#: js/ProgramBlocks.js:1313 -msgid "Warning: block argument type mismatch" +#: js/blocks/IntervalsBlocks.js:454 +#: js/blocks/IntervalsBlocks.js:570 +msgid "You must use two pitch blocks when measuring an interval." msgstr "" -#: js/ProgramBlocks.js:1347 -msgid "The Open project block is used to open a project from a web page." +#: js/blocks/IntervalsBlocks.js:496 +msgid "The Scalar interval block measures the distance between two notes in the current key and mode." msgstr "" -#: js/ProgramBlocks.js:1357 -msgid "open project" +#: js/blocks/IntervalsBlocks.js:502 +#.TRANS: measure the distance between two pitches in steps of musical scale +msgid "scalar interval measure" msgstr "" -#: js/ProgramBlocks.js:1410 -msgid "Please enter a valid URL." +#: js/blocks/IntervalsBlocks.js:678 +msgid "In the figure, we add sol# to sol." msgstr "" -#: js/DrumBlocks.js:59 -msgid "The Noise name block is used to select a noise synthesizer." +#: js/blocks/IntervalsBlocks.js:684 +#: js/blocks/OrnamentBlocks.js:220 +#.TRANS: calculate a relative step between notes based on semi-tones +msgid "semi-tone interval" msgstr "" -#: js/DrumBlocks.js:102 -msgid "The Drum name block is used to select a drum." +#: js/blocks/IntervalsBlocks.js:733 +msgid "The output of the example is: do, mi, sol, sol, ti, mi" msgstr "" -#: js/DrumBlocks.js:146 -msgid "The Effects name block is used to select a sound effect." +#: js/blocks/IntervalsBlocks.js:740 +#: js/blocks/WidgetBlocks.js:768 +msgid "arpeggio" msgstr "" -#: js/DrumBlocks.js:163 -msgid "noise" +#: js/blocks/IntervalsBlocks.js:931 +msgid "The Chord block calculates common chords." msgstr "" -#: js/DrumBlocks.js:177 -msgid "The Play noise block will generate white, pink, or brown noise." +#: js/blocks/IntervalsBlocks.js:933 +msgid "In the figure, we generate a C-major chord." msgstr "" -#: js/DrumBlocks.js:191 -#: js/musicutils.js:752 -#: js/synthutils.js:47 -#.TRANS: white noise synthesizer -msgid "white noise" +#: js/blocks/IntervalsBlocks.js:938 +msgid "chord" msgstr "" -#: js/DrumBlocks.js:326 -msgid "Replace every instance of a pitch with a drum sound." +#: js/blocks/IntervalsBlocks.js:990 +msgid "The Ratio Interval block calculates an interval based on a ratio." msgstr "" -#: js/DrumBlocks.js:337 -#.TRANS: map a pitch to a drum sound -msgid "map pitch to drum" +#: js/blocks/IntervalsBlocks.js:995 +msgid "ratio interval" msgstr "" -#: js/DrumBlocks.js:404 -msgid "In the example above, a kick drum sound will be played instead of sol." +#: js/blocks/IntervalsBlocks.js:1064 +msgid "In the figure, we add la to sol." msgstr "" -#: js/DrumBlocks.js:416 -#.TRANS: set the current drum sound for playback -msgid "set drum" +#: js/blocks/IntervalsBlocks.js:1120 +#.TRANS: define a custom mode +msgid "define mode" msgstr "" -#: js/DrumBlocks.js:460 -msgid "sound effect" +#: js/blocks/IntervalsBlocks.js:1173 +msgid "movable Do" msgstr "" -#: js/DrumBlocks.js:498 -msgid "You can use multiple Drum blocks within a Note block." +#: js/blocks/IntervalsBlocks.js:1224 +#.TRANS: mode length is the number of notes in the mode, e.g., 7 for major and minor scales; 12 for chromatic scales +msgid "mode length" msgstr "" -#: js/RhythmBlocks.js:182 -#: js/RhythmBlocks.js:1086 -#: js/RhythmBlocks.js:1162 -msgid "Note value must be greater than 0." +#: js/blocks/IntervalsBlocks.js:1233 +msgid "The Mode length block is the number of notes in the current scale." msgstr "" -#: js/RhythmBlocks.js:215 -#: js/RhythmBlocks.js:278 -#: js/RhythmBlocks.js:350 -#.TRANS: swing is a rhythmic variation that emphasises the offbeat -msgid "swing" +#: js/blocks/IntervalsBlocks.js:1235 +msgid "Most Western scales have 7 notes." msgstr "" -#: js/RhythmBlocks.js:355 -#.TRANS: the amount to shift to the offbeat note -msgid "swing value" +#: js/blocks/IntervalsBlocks.js:1284 +#.TRANS: the mode in music is 'major', 'minor', etc. +msgid "current mode" msgstr "" -#: js/RhythmBlocks.js:419 -msgid "The Skip notes block will cause notes to be skipped." +#: js/blocks/IntervalsBlocks.js:1337 +#.TRANS: the key is a group of pitches with which a music composition is created +msgid "current key" msgstr "" -#: js/RhythmBlocks.js:427 -#.TRANS: substitute rests on notes being skipped -msgid "skip notes" +#: js/blocks/IntervalsBlocks.js:1389 +#: js/blocks/IntervalsBlocks.js:1434 +#.TRANS: set the key and mode, e.g. C Major +msgid "set key" msgstr "" -#: js/RhythmBlocks.js:489 -#.TRANS: speed up note duration by some factor, e.g. convert 1/4 to 1/8 notes by using a factor of 2 -msgid "multiply note value" +#: js/blocks/IntervalsBlocks.js:1443 +#: js/blocks/IntervalsBlocks.js:1449 +msgid "The Set key block is used to set the key and mode," msgstr "" -#: js/RhythmBlocks.js:542 -msgid "The Tie block works on pairs of notes, combining them into one note." +#: js/blocks/IntervalsBlocks.js:1449 +msgid "eg C Major" msgstr "" -#: js/RhythmBlocks.js:550 -#.TRANS: tie notes together into one longer note -msgid "tie" +#: js/blocks/MediaBlocks.js:35 +#.TRANS: right side of the screen +msgid "right (screen)" msgstr "" -#: js/RhythmBlocks.js:591 -#: js/RhythmBlocks.js:671 -#.TRANS: a dotted note is played for 1.5x its value, e.g., 1/8. --> 3/16 -msgid "dot" +#: js/blocks/MediaBlocks.js:45 +#: js/blocks/MediaBlocks.js:56 +msgid "The Right block returns the position of the right of the canvas." msgstr "" -#: js/RhythmBlocks.js:619 -#: js/RhythmActions.js:221 -msgid "An argument of -1 results in a note value of 0." +#: js/blocks/MediaBlocks.js:97 +#.TRANS: left side of the screen +msgid "left (screen)" msgstr "" -#: js/RhythmBlocks.js:661 -msgid "The Dot block extends the duration of a note by 50%." +#: js/blocks/MediaBlocks.js:107 +#: js/blocks/MediaBlocks.js:118 +msgid "The Left block returns the position of the left of the canvas." msgstr "" -#: js/RhythmBlocks.js:663 -msgid "Eg a dotted quarter note will play for 3/8 (1/4 + 1/8) of a beat." +#: js/blocks/MediaBlocks.js:158 +msgid "top (screen)" msgstr "" -#: js/RhythmBlocks.js:765 -#.TRANS: Japanese only: note value block for drum -msgid "note value drum" +#: js/blocks/MediaBlocks.js:168 +#: js/blocks/MediaBlocks.js:179 +msgid "The Top block returns the position of the top of the canvas." msgstr "" -#: js/RhythmBlocks.js:829 -msgid "392 hertz" +#: js/blocks/MediaBlocks.js:219 +msgid "bottom (screen)" msgstr "" -#: js/RhythmBlocks.js:1119 -msgid "The Note block is a container for one or more Pitch blocks." +#: js/blocks/MediaBlocks.js:229 +#: js/blocks/MediaBlocks.js:240 +msgid "The Bottom block returns the position of the bottom of the canvas." msgstr "" -#: js/RhythmBlocks.js:1121 -msgid "The Note block specifies the duration (note value) of its contents." +#: js/blocks/MediaBlocks.js:282 +msgid "width" msgstr "" -#: js/RhythmBlocks.js:1130 -msgid "value2" +#: js/blocks/MediaBlocks.js:291 +msgid "The Width block returns the width of the canvas." msgstr "" -#: js/RhythmBlocks.js:1200 -msgid "define frequency" +#: js/blocks/MediaBlocks.js:325 +msgid "height" msgstr "" -#: js/RhythmBlocks.js:1218 -#: js/temperament.js:650 -#: js/temperament.js:1421 -msgid "octave space" +#: js/blocks/MediaBlocks.js:334 +msgid "The Height block returns the height of the canvas." msgstr "" -#: js/NumberBlocks.js:28 -msgid "The Int block returns an integer." +#: js/blocks/MediaBlocks.js:369 +#.TRANS: stops playback of an audio recording +msgid "stop play" msgstr "" -#: js/NumberBlocks.js:34 -msgid "int" +#: js/blocks/MediaBlocks.js:404 +#.TRANS: Erases the images and text +msgid "erase media" msgstr "" -#: js/NumberBlocks.js:73 -msgid "The Mod block returns the remainder from a division." +#: js/blocks/MediaBlocks.js:409 +msgid "The Erase Media block erases text and images." msgstr "" -#: js/NumberBlocks.js:79 -msgid "mod" +#: js/blocks/MediaBlocks.js:439 +#.TRANS: play an audio recording +msgid "play back" msgstr "" -#: js/NumberBlocks.js:123 -msgid "The Power block calculates a power function." +#: js/blocks/MediaBlocks.js:487 +msgid "speak" msgstr "" -#: js/NumberBlocks.js:178 -msgid "The Sqrt block returns the square root." +#: js/blocks/MediaBlocks.js:495 +msgid "The Speak block outputs to the text-to-speech synthesizer" msgstr "" -#: js/NumberBlocks.js:184 -msgid "sqrt" +#: js/blocks/MediaBlocks.js:546 +msgid "camera" msgstr "" -#: js/NumberBlocks.js:230 -msgid "The Abs block returns the absolute value." +#: js/blocks/MediaBlocks.js:551 +msgid "The Camera block connects a webcam to the Show block." msgstr "" -#: js/NumberBlocks.js:236 -msgid "abs" +#: js/blocks/MediaBlocks.js:574 +msgid "video" msgstr "" -#: js/NumberBlocks.js:277 -msgid "The Distance block returns the distance between two points. For example, between the mouse and the center of the screen." +#: js/blocks/MediaBlocks.js:579 +msgid "The Video block selects video for use with the Show block." msgstr "" -#: js/NumberBlocks.js:283 -#: plugins/rodi.rtp:310 -msgid "distance" +#: js/blocks/MediaBlocks.js:607 +msgid "The Open file block opens a file for use with the Show block." msgstr "" -#: js/NumberBlocks.js:343 -msgid "The Divide block is used to divide." +#: js/blocks/MediaBlocks.js:645 +msgid "stop media" msgstr "" -#: js/NumberBlocks.js:411 -msgid "The Multiply block is used to multiply." +#: js/blocks/MediaBlocks.js:650 +msgid "The Stop media block stops audio or video playback." msgstr "" -#: js/NumberBlocks.js:554 -msgid "The Minus block is used to subtract." +#: js/blocks/MediaBlocks.js:679 +#: js/blocks/PitchBlocks.js:1577 +#: js/widgets/musickeyboard.js:1936 +#: js/widgets/phrasemaker.js:1037 +#.TRANS: a measure of frequency: one cycle per second +msgid "hertz" msgstr "" -#: js/NumberBlocks.js:647 -msgid "The Plus block is used to add." +#: js/blocks/MediaBlocks.js:692 +#: js/blocks/WidgetBlocks.js:182 +#: js/widgets/temperament.js:506 +#: js/widgets/temperament.js:546 +#: js/widgets/temperament.js:610 +#: js/widgets/temperament.js:618 +#: js/widgets/temperament.js:1505 +#: js/widgets/timbre.js:1842 +msgid "frequency" msgstr "" -#: js/NumberBlocks.js:773 -msgid "The One-of block returns one of two choices." +#: js/blocks/MediaBlocks.js:692 +msgid "duration (ms)" msgstr "" -#: js/NumberBlocks.js:780 -#: js/PitchBlocks.js:616 -msgid "one of" +#: js/blocks/MediaBlocks.js:728 +#.TRANS: translate a note into hertz, e.g., A4 -> 440HZ +msgid "note to frequency" msgstr "" -#: js/NumberBlocks.js:782 -msgid "this" +#: js/blocks/MediaBlocks.js:736 +msgid "The To frequency block converts a pitch name and octave to Hertz." msgstr "" -#: js/NumberBlocks.js:782 -msgid "that" +#: js/blocks/MediaBlocks.js:746 +#: js/blocks/PitchBlocks.js:656 +#: js/blocks/PitchBlocks.js:934 +#: js/blocks/PitchBlocks.js:1866 +#.TRANS: name2 is name as in name of pitch (JAPANESE ONLY) +msgid "name2" msgstr "" -#: js/NumberBlocks.js:837 -msgid "The Random block returns a random number." +#: js/blocks/MediaBlocks.js:812 +msgid "The Avatar block is used to change the appearance of the mouse." msgstr "" -#: js/NumberBlocks.js:844 -msgid "random" +#: js/blocks/MediaBlocks.js:819 +msgid "The Avatar block is used to change the appearance of the turtle." msgstr "" -#: js/NumberBlocks.js:846 -msgid "min" +#: js/blocks/MediaBlocks.js:831 +#: js/blocks/MediaBlocks.js:891 +#.TRANS: a media object +msgid "size" msgstr "" -#: js/NumberBlocks.js:846 -msgid "max" +#: js/blocks/MediaBlocks.js:831 +msgid "image" msgstr "" -#: js/NumberBlocks.js:910 -msgid "The Number block holds a number." +#: js/blocks/MediaBlocks.js:880 +msgid "The Show block is used to display text or images on the canvas." msgstr "" -#: js/BoxesBlocks.js:53 -#: js/BoxesBlocks.js:59 -msgid "The Add-to block is used to add to the value stored in a box." +#: js/blocks/MediaBlocks.js:888 +#.TRANS: show1 is show as in display an image or text on the screen. +msgid "show1" msgstr "" -#: js/BoxesBlocks.js:61 -msgid "It can also be used with other blocks such as Color and Pen size." +#: js/blocks/MediaBlocks.js:891 +msgid "obj" msgstr "" -#: js/BoxesBlocks.js:73 -msgid "add" +#: js/blocks/MediaBlocks.js:938 +msgid "The Media block is used to import an image." msgstr "" -#: js/BoxesBlocks.js:75 -#: js/temperament.js:716 -msgid "to" +#: js/blocks/MediaBlocks.js:973 +msgid "The Text block holds a text string." msgstr "" -#: js/BoxesBlocks.js:75 -#: js/BoxesBlocks.js:595 -#: js/HeapBlocks.js:544 -msgid "value1" +#: js/blocks/MeterBlocks.js:34 +#.TRANS: musical meter (time signature), e.g., 4:4 +msgid "current meter" msgstr "" -#: js/BoxesBlocks.js:118 -msgid "Block does not support incrementing." +#: js/blocks/MeterBlocks.js:85 +#.TRANS: number of beats per minute +msgid "beat factor" msgstr "" -#: js/BoxesBlocks.js:152 -msgid "The Add-1-to block adds one to the value stored in a box." +#: js/blocks/MeterBlocks.js:161 +msgid "The Beats per minute block returns the current beats per minute." msgstr "" -#: js/BoxesBlocks.js:163 -msgid "add 1 to" +#: js/blocks/MeterBlocks.js:169 +#: js/widgets/status.js:152 +#.TRANS: number of beats played per minute +msgid "beats per minute2" msgstr "" -#: js/BoxesBlocks.js:211 -msgid "The Subtract-1-from block subtracts one from the value stored in a box." +#: js/blocks/MeterBlocks.js:169 +#: js/blocks/MeterBlocks.js:1056 +#: js/blocks/MeterBlocks.js:1133 +#: js/blocks/MeterBlocks.js:1211 +#.TRANS: sets tempo by defining a beat and beats per minute +msgid "beats per minute" msgstr "" -#: js/BoxesBlocks.js:222 -msgid "subtract 1 from" +#: js/blocks/MeterBlocks.js:233 +#.TRANS: count of current musical measure in meter +msgid "measure count" msgstr "" -#: js/BoxesBlocks.js:270 -#: js/BoxesBlocks.js:387 -msgid "The Box block returns the value stored in a box." +#: js/blocks/MeterBlocks.js:241 +msgid "The Measure count block returns the current measure." msgstr "" -#: js/BoxesBlocks.js:500 -#: js/BoxesBlocks.js:576 -msgid "The Store in block will store a value in a box." +#: js/blocks/MeterBlocks.js:290 +#.TRANS: count of current beat in the meter +msgid "beat count" msgstr "" -#: js/BoxesBlocks.js:652 -msgid "The Box2 block returns the value stored in Box2." +#: js/blocks/MeterBlocks.js:300 +#: js/blocks/MeterBlocks.js:311 +#: js/blocks/MeterBlocks.js:565 +#: js/blocks/MeterBlocks.js:576 +msgid "The Beat count block is the number of the current beat," msgstr "" -#: js/BoxesBlocks.js:703 -msgid "The Store in Box2 block is used to store a value in Box2." +#: js/blocks/MeterBlocks.js:313 +#: js/blocks/MeterBlocks.js:578 +msgid "eg 1, 2, 3, or 4." msgstr "" -#: js/BoxesBlocks.js:715 -msgid "store in box2" +#: js/blocks/MeterBlocks.js:368 +#.TRANS: count the number of notes +msgid "sum note values" msgstr "" -#: js/BoxesBlocks.js:761 -msgid "The Box1 block returns the value stored in Box1." +#: js/blocks/MeterBlocks.js:376 +#: js/blocks/MeterBlocks.js:440 +msgid "The Note counter block can be used to count the number of contained notes." msgstr "" -#: js/BoxesBlocks.js:812 -msgid "The Store in Box1 block is used to store a value in Box1." +#: js/blocks/MeterBlocks.js:432 +#.TRANS: count the number of notes +msgid "note counter" msgstr "" -#: js/BoxesBlocks.js:826 -msgid "store in box1" +#: js/blocks/MeterBlocks.js:496 +#.TRANS: number of whole notes that have been played +msgid "whole notes played" msgstr "" -#: js/HeapBlocks.js:49 -msgid "The Heap block returns the heap." +#: js/blocks/MeterBlocks.js:505 +msgid "The Whole notes played block returns the total number of whole notes played." msgstr "" -#: js/HeapBlocks.js:133 -msgid "show heap" +#: js/blocks/MeterBlocks.js:555 +#: js/turtleactions/DictActions.js:83 +#.TRANS: number of notes that have been played +msgid "notes played" msgstr "" -#: js/HeapBlocks.js:181 -msgid "The Heap-length block returns the length of the heap." +#: js/blocks/MeterBlocks.js:653 +msgid "The No clock block decouples the notes from the master clock." msgstr "" -#: js/HeapBlocks.js:195 -msgid "heap length" +#: js/blocks/MeterBlocks.js:661 +#.TRANS: don't lock notes to master clock +msgid "no clock" msgstr "" -#: js/HeapBlocks.js:254 -msgid "The Heap-empty? block returns true if the heap is empty." +#: js/blocks/MeterBlocks.js:700 +msgid "on weak beat do" msgstr "" -#: js/HeapBlocks.js:268 -#.TRANS: Is the heap empty? -msgid "heap empty?" +#: js/blocks/MeterBlocks.js:705 +msgid "The On-weak-beat block lets you specify actions to take on weak (off) beats." msgstr "" -#: js/HeapBlocks.js:317 -msgid "The Empty-heap block empties the heap." +#: js/blocks/MeterBlocks.js:750 +msgid "on strong beat" msgstr "" -#: js/HeapBlocks.js:327 -#: js/HeapBlocks.js:647 -#.TRANS: empty the heap -msgid "empty heap" +#: js/blocks/MeterBlocks.js:758 +msgid "The On-strong-beat block lets you specify actions to take on specified beats." msgstr "" -#: js/HeapBlocks.js:371 -msgid "The Reverse-heap block reverses the order of the heap." +#: js/blocks/MeterBlocks.js:769 +msgid "beat" msgstr "" -#: js/HeapBlocks.js:384 -#.TRANS: reverse the order of the heap -msgid "reverse heap" +#: js/blocks/MeterBlocks.js:813 +msgid "on every beat do" msgstr "" -#: js/HeapBlocks.js:428 -msgid "The Index-heap block returns a value in the heap at a specified location." +#: js/blocks/MeterBlocks.js:821 +msgid "The On-every-beat block lets you specify actions to take on every beat." msgstr "" -#: js/HeapBlocks.js:443 -#.TRANS: retrieve a value from the heap at index position in the heap -msgid "index heap" +#: js/blocks/MeterBlocks.js:874 +msgid "on every note do" msgstr "" -#: js/HeapBlocks.js:523 -msgid "The Set-heap entry block sets a value in he heap at the specified location." +#: js/blocks/MeterBlocks.js:882 +msgid "The On-every-note block lets you specify actions to take on every note." msgstr "" -#: js/HeapBlocks.js:619 -msgid "The Pop block removes the value at the top of the heap." +#: js/blocks/MeterBlocks.js:928 +#: js/blocks/MeterBlocks.js:999 +#.TRANS: sets tempo by defining a beat and beats per minute +msgid "master beats per minute" msgstr "" -#: js/HeapBlocks.js:633 -#.TRANS: pop a value off the top of the heap -msgid "pop" +#: js/blocks/MeterBlocks.js:952 +#: js/blocks/MeterBlocks.js:1078 +#: js/blocks/MeterBlocks.js:1135 +msgid "bpm" msgstr "" -#: js/HeapBlocks.js:680 -msgid "The Push block adds a value to the top of the heap." +#: js/blocks/MeterBlocks.js:952 +#: js/blocks/MeterBlocks.js:1078 +#: js/blocks/MeterBlocks.js:1135 +msgid "beat value" msgstr "" -#: js/HeapBlocks.js:696 -#.TRANS: push a value onto the top of the heap -msgid "push" +#: js/blocks/MeterBlocks.js:1024 +#: js/blocks/MeterBlocks.js:1167 +#: js/blocks/MeterBlocks.js:1241 +msgid "Beats per minute must be > 30." msgstr "" -#: js/FlowBlocks.js:41 -msgid "The Backward block runs code in reverse order (Musical retrograde)." +#: js/blocks/MeterBlocks.js:1027 +#: js/blocks/MeterBlocks.js:1170 +#: js/blocks/MeterBlocks.js:1244 +msgid "Maximum beats per minute is 1000." msgstr "" -#: js/FlowBlocks.js:48 -msgid "backward" +#: js/blocks/MeterBlocks.js:1068 +msgid "The Beats per minute block sets the number of 1/4 notes per minute." msgstr "" -#: js/FlowBlocks.js:124 -msgid "The Duplicate block will run each block multiple times." +#: js/blocks/MeterBlocks.js:1279 +#.TRANS: anacrusis +msgid "pickup" msgstr "" -#: js/FlowBlocks.js:136 -msgid "duplicate" +#: js/blocks/MeterBlocks.js:1367 +msgid "number of beats" msgstr "" -#: js/FlowBlocks.js:334 -msgid "The Default block is used inside of a Switch to define the default action." +#: js/blocks/NumberBlocks.js:28 +msgid "The Int block returns an integer." msgstr "" -#: js/FlowBlocks.js:342 -msgid "default" +#: js/blocks/NumberBlocks.js:34 +msgid "int" msgstr "" -#: js/FlowBlocks.js:361 -#: js/FlowBlocks.js:418 -msgid "The Case Block must be used inside of a Switch Block." +#: js/blocks/NumberBlocks.js:73 +msgid "The Mod block returns the remainder from a division." msgstr "" -#: js/FlowBlocks.js:389 -msgid "The Case block is used inside of a Switch to define matches." +#: js/blocks/NumberBlocks.js:79 +msgid "mod" msgstr "" -#: js/FlowBlocks.js:397 -msgid "case" +#: js/blocks/NumberBlocks.js:141 +msgid "The Power block calculates a power function." msgstr "" -#: js/FlowBlocks.js:446 -msgid "The Switch block will run the code in the matching Case." +#: js/blocks/NumberBlocks.js:196 +msgid "The Sqrt block returns the square root." msgstr "" -#: js/FlowBlocks.js:454 -msgid "switch" +#: js/blocks/NumberBlocks.js:202 +msgid "sqrt" msgstr "" -#: js/FlowBlocks.js:595 -msgid "The Stop block will stop a loop" +#: js/blocks/NumberBlocks.js:248 +msgid "The Abs block returns the absolute value." msgstr "" -#: js/FlowBlocks.js:597 -msgid "Forever, Repeat, While, or Until." +#: js/blocks/NumberBlocks.js:254 +msgid "abs" msgstr "" -#: js/FlowBlocks.js:604 -#: js/phrasemaker.js:3799 -#: js/musickeyboard.js:629 -#: js/musickeyboard.js:631 -#: js/timbre.js:417 -#: js/timbre.js:419 -#: plugins/rodi.rtp:29 -#: plugins/rodi.rtp:73 -#: plugins/rodi.rtp:413 -msgid "stop" +#: js/blocks/NumberBlocks.js:295 +msgid "The Distance block returns the distance between two points. For example, between the mouse and the center of the screen." msgstr "" -#: js/FlowBlocks.js:653 -msgid "The Waitfor block will wait until the condition is true." +#: js/blocks/NumberBlocks.js:301 +#: plugins/rodi.rtp:310 +msgid "distance" msgstr "" -#: js/FlowBlocks.js:661 -msgid "wait for" +#: js/blocks/NumberBlocks.js:361 +msgid "The Divide block is used to divide." msgstr "" -#: js/FlowBlocks.js:732 -msgid "The Until block will repeat until the condition is true." +#: js/blocks/NumberBlocks.js:441 +msgid "The Multiply block is used to multiply." msgstr "" -#: js/FlowBlocks.js:740 -msgid "until" +#: js/blocks/NumberBlocks.js:612 +msgid "The Minus block is used to subtract." msgstr "" -#: js/FlowBlocks.js:742 -#: js/FlowBlocks.js:822 -msgid "do2" +#: js/blocks/NumberBlocks.js:723 +msgid "The Plus block is used to add." msgstr "" -#: js/FlowBlocks.js:812 -msgid "The While block will repeat while the condition is true." +#: js/blocks/NumberBlocks.js:849 +msgid "The One-of block returns one of two choices." msgstr "" -#: js/FlowBlocks.js:820 -msgid "while" +#: js/blocks/NumberBlocks.js:856 +#: js/blocks/PitchBlocks.js:616 +msgid "one of" msgstr "" -#: js/FlowBlocks.js:903 -#: js/FlowBlocks.js:968 -#: js/FlowBlocks.js:979 -msgid "In this example if the mouse button is pressed a snare drum will play." +#: js/blocks/NumberBlocks.js:858 +msgid "this" msgstr "" -#: js/FlowBlocks.js:925 -#: js/FlowBlocks.js:988 -msgid "if" +#: js/blocks/NumberBlocks.js:858 +msgid "that" msgstr "" -#: js/FlowBlocks.js:927 -#: js/FlowBlocks.js:990 -msgid "then" +#: js/blocks/NumberBlocks.js:913 +msgid "The Random block returns a random number." msgstr "" -#: js/FlowBlocks.js:927 -msgid "else" +#: js/blocks/NumberBlocks.js:920 +msgid "random" msgstr "" -#: js/FlowBlocks.js:1025 -msgid "The Forever block will repeat the contained blocks forever." +#: js/blocks/NumberBlocks.js:922 +msgid "min" msgstr "" -#: js/FlowBlocks.js:1037 -msgid "forever" +#: js/blocks/NumberBlocks.js:922 +msgid "max" msgstr "" -#: js/FlowBlocks.js:1073 -msgid "The Repeat block will repeat the contained blocks." +#: js/blocks/NumberBlocks.js:986 +msgid "The Number block holds a number." msgstr "" -#: js/FlowBlocks.js:1075 -msgid "In this example the note will be played 4 times." +#: js/blocks/OrnamentBlocks.js:32 +msgid "staccato factor" msgstr "" -#: js/FlowBlocks.js:1083 -msgid "repeat" +#: js/blocks/OrnamentBlocks.js:108 +msgid "slur factor" msgstr "" -#: js/FlowBlocks.js:1123 -msgid "duplicate factor" +#: js/blocks/OrnamentBlocks.js:217 +#: js/blocks/OrnamentBlocks.js:309 +#.TRANS: the neighbor refers to a neighboring note, e.g., D is a neighbor of C +msgid "neighbor" msgstr "" -#: js/PitchBlocks.js:39 -#: js/musicutils.js:722 -#: js/musicutils.js:1117 -#: js/synthutils.js:112 -#.TRANS: square wave -msgid "square" +#: js/blocks/OrnamentBlocks.js:293 +msgid "The Neighbor block rapidly switches between neighboring pitches." msgstr "" -#: js/PitchBlocks.js:62 -#: js/ToneBlocks.js:39 -#: js/musicutils.js:723 -#: js/musicutils.js:1118 -#: js/synthutils.js:116 -#.TRANS: triangle wave -msgid "triangle" +#: js/blocks/OrnamentBlocks.js:364 +msgid "glide" msgstr "" -#: js/PitchBlocks.js:85 -#: js/musicutils.js:721 -#: js/musicutils.js:1116 -#: js/synthutils.js:110 -#.TRANS: sine wave -msgid "sine" +#: js/blocks/OrnamentBlocks.js:479 +#: js/blocks/OrnamentBlocks.js:643 +msgid "slur" msgstr "" -#: js/PitchBlocks.js:108 -#: js/musicutils.js:724 -#: js/musicutils.js:1119 -#: js/synthutils.js:114 -#.TRANS: sawtooth wave -msgid "sawtooth" +#: js/blocks/OrnamentBlocks.js:558 +#: js/blocks/OrnamentBlocks.js:710 +#.TRANS: play each note sharply detached from the others +msgid "staccato" msgstr "" -#: js/PitchBlocks.js:141 -#.TRANS: musical transposition (adjustment of pitch up or down) -msgid "transposition" +#: js/blocks/RhythmBlocks.js:182 +#: js/blocks/RhythmBlocks.js:1086 +#: js/blocks/RhythmBlocks.js:1162 +msgid "Note value must be greater than 0." msgstr "" -#: js/PitchBlocks.js:168 -#.TRANS: step down one note in current musical scale -msgid "scalar step down" +#: js/blocks/RhythmBlocks.js:215 +#: js/blocks/RhythmBlocks.js:278 +#: js/blocks/RhythmBlocks.js:350 +#.TRANS: swing is a rhythmic variation that emphasises the offbeat +msgid "swing" msgstr "" -#: js/PitchBlocks.js:172 -msgid "The Scalar step down block returns the number of semi-tones down to the previous note in the current key and mode." +#: js/blocks/RhythmBlocks.js:355 +#.TRANS: the amount to shift to the offbeat note +msgid "swing value" msgstr "" -#: js/PitchBlocks.js:190 -#.TRANS: step up one note in current musical scale -msgid "scalar step up" +#: js/blocks/RhythmBlocks.js:419 +msgid "The Skip notes block will cause notes to be skipped." msgstr "" -#: js/PitchBlocks.js:194 -msgid "The Scalar step up block returns the number of semi-tones up to the next note in the current key and mode." +#: js/blocks/RhythmBlocks.js:427 +#.TRANS: substitute rests on notes being skipped +msgid "skip notes" msgstr "" -#: js/PitchBlocks.js:212 -#.TRANS: the change measured in half-steps between the current pitch and the previous pitch -msgid "change in pitch" +#: js/blocks/RhythmBlocks.js:489 +#.TRANS: speed up note duration by some factor, e.g. convert 1/4 to 1/8 notes by using a factor of 2 +msgid "multiply note value" msgstr "" -#: js/PitchBlocks.js:216 -msgid "The Change in pitch block is the difference (in half steps) between the current pitch being played and the previous pitch played." +#: js/blocks/RhythmBlocks.js:542 +msgid "The Tie block works on pairs of notes, combining them into one note." msgstr "" -#: js/PitchBlocks.js:243 -#.TRANS: the change measured in scale-steps between the current pitch and the previous pitch -msgid "scalar change in pitch" +#: js/blocks/RhythmBlocks.js:550 +#.TRANS: tie notes together into one longer note +msgid "tie" msgstr "" -#: js/PitchBlocks.js:250 -#: js/PitchBlocks.js:432 -#: js/PitchBlocks.js:1629 -#: js/DictActions.js:89 -#: js/temperament.js:477 -#: js/temperament.js:481 -#: js/temperament.js:714 -#.TRANS: convert current note to piano key (1-88) -#.TRANS: a mapping of pitch to the 88 piano keys -msgid "pitch number" +#: js/blocks/RhythmBlocks.js:591 +#: js/blocks/RhythmBlocks.js:671 +#.TRANS: a dotted note is played for 1.5x its value, e.g., 1/8. --> 3/16 +msgid "dot" msgstr "" -#: js/PitchBlocks.js:256 -msgid "The Pitch number block is the value of the pitch of the note currently being played." +#: js/blocks/RhythmBlocks.js:619 +#: js/turtleactions/RhythmActions.js:221 +msgid "An argument of -1 results in a note value of 0." msgstr "" -#: js/PitchBlocks.js:329 -#: js/PitchBlocks.js:433 -#.TRANS: the current pitch expressed in Hertz -msgid "pitch in hertz" +#: js/blocks/RhythmBlocks.js:661 +msgid "The Dot block extends the duration of a note by 50%." msgstr "" -#: js/PitchBlocks.js:334 -msgid "The Pitch in Hertz block is the value in Hertz of the pitch of the note currently being played." +#: js/blocks/RhythmBlocks.js:663 +msgid "Eg a dotted quarter note will play for 3/8 (1/4 + 1/8) of a beat." msgstr "" -#: js/PitchBlocks.js:367 -#: js/DictActions.js:87 -msgid "current pitch" +#: js/blocks/RhythmBlocks.js:765 +#.TRANS: Japanese only: note value block for drum +msgid "note value drum" msgstr "" -#: js/PitchBlocks.js:373 -msgid "The Current Pitch block is used with the Pitch Converter block. In the example above, current pitch, sol 4, is displayed as 392 hertz." +#: js/blocks/RhythmBlocks.js:829 +msgid "392 hertz" msgstr "" -#: js/PitchBlocks.js:410 -msgid "This block converts the pitch value of the last note played into different formats such as hertz, letter name, pitch number, et al." +#: js/blocks/RhythmBlocks.js:1119 +msgid "The Note block is a container for one or more Pitch blocks." msgstr "" -#: js/PitchBlocks.js:434 -msgid "alphabet" +#: js/blocks/RhythmBlocks.js:1121 +msgid "The Note block specifies the duration (note value) of its contents." msgstr "" -#: js/PitchBlocks.js:436 -#.TRANS: Translate as "alphabet class" -msgid "letter class" +#: js/blocks/RhythmBlocks.js:1128 +#: js/blocks/PitchBlocks.js:974 +#: js/blocks/PitchBlocks.js:1007 +#: js/blocks/ProgramBlocks.js:1186 +#: js/blocks/ProgramBlocks.js:1227 +#: js/widgets/status.js:190 +#: js/widgets/temperament.js:464 +#: js/widgets/temperament.js:486 +#: js/widgets/temperament.js:496 +#: js/widgets/temperament.js:617 +#: plugins/rodi.rtp:192 +#.TRANS: a musical note consisting of pitch and duration +msgid "note" msgstr "" -#: js/PitchBlocks.js:437 -msgid "solfege class" +#: js/blocks/RhythmBlocks.js:1130 +msgid "value2" msgstr "" -#: js/PitchBlocks.js:438 -msgid "staff y" +#: js/blocks/RhythmBlocks.js:1200 +msgid "define frequency" msgstr "" -#: js/PitchBlocks.js:439 -msgid "solfege syllable" +#: js/blocks/RhythmBlocks.js:1218 +#: js/widgets/temperament.js:787 +#: js/widgets/temperament.js:1587 +msgid "octave space" msgstr "" -#: js/PitchBlocks.js:440 -msgid "pitch class" +#: js/blocks/SensorsBlocks.js:36 +msgid "The Input block prompts for keyboard input." msgstr "" -#: js/PitchBlocks.js:441 -msgid "scalar class" +#: js/blocks/SensorsBlocks.js:46 +msgid "input" msgstr "" -#: js/PitchBlocks.js:443 -msgid "nth degree" +#: js/blocks/SensorsBlocks.js:64 +msgid "Input a value" msgstr "" -#: js/PitchBlocks.js:444 -msgid "pitch to shade" +#: js/blocks/SensorsBlocks.js:126 +msgid "input value" msgstr "" -#: js/PitchBlocks.js:445 -msgid "pitch to color" +#: js/blocks/SensorsBlocks.js:131 +msgid "The Input-value block stores the input." msgstr "" -#: js/PitchBlocks.js:629 -#: js/musickeyboard.js:565 -#.TRANS: MIDI is a technical standard for electronic music -msgid "MIDI" +#: js/blocks/SensorsBlocks.js:238 +msgid "loudness" msgstr "" -#: js/PitchBlocks.js:642 -#.TRANS: set an offset associated with the numeric piano keyboard mapping -msgid "set pitch number offset" +#: js/blocks/SensorsBlocks.js:245 +msgid "The Loudness block returns the volume detected by the microphone." msgstr "" -#: js/PitchBlocks.js:645 -msgid "The Set pitch number offset block is used to set the offset for mapping pitch numbers to pitch and octave." +#: js/blocks/SensorsBlocks.js:300 +msgid "click" msgstr "" -#: js/PitchBlocks.js:679 -#.TRANS: convert piano key number (1-88) to pitch -msgid "number to pitch" +#: js/blocks/SensorsBlocks.js:306 +msgid "The Click block triggers an event if a mouse has been clicked." msgstr "" -#: js/PitchBlocks.js:682 -msgid "The Number to pitch block will convert a pitch number to a pich name." +#: js/blocks/SensorsBlocks.js:313 +msgid "The Click block triggers an event if a turtle has been clicked." msgstr "" -#: js/PitchBlocks.js:715 -#.TRANS: convert piano key number (1-88) to octave -msgid "number to octave" +#: js/blocks/SensorsBlocks.js:342 +msgid "cursor over" msgstr "" -#: js/PitchBlocks.js:717 -msgid "The Number to octave block will convert a pitch number to an octave." +#: js/blocks/SensorsBlocks.js:387 +msgid "cursor out" msgstr "" -#: js/PitchBlocks.js:726 -msgid "y to pitch" +#: js/blocks/SensorsBlocks.js:433 +msgid "cursor button down" msgstr "" -#: js/PitchBlocks.js:729 -msgid "Y to pitch block will convert a staff y position to corresponding pitch notation." +#: js/blocks/SensorsBlocks.js:477 +msgid "cursor button up" msgstr "" -#: js/PitchBlocks.js:841 -msgid "accidental selector" +#: js/blocks/SensorsBlocks.js:521 +#: js/blocks/PenBlocks.js:48 +#: plugins/rodi.rtp:219 +msgid "blue" msgstr "" -#: js/PitchBlocks.js:844 -msgid "The Accidental selector block is used to choose between double-sharp, sharp, natural, flat, and double-flat." +#: js/blocks/SensorsBlocks.js:577 +#: js/blocks/PenBlocks.js:64 +#: plugins/rodi.rtp:218 +msgid "green" msgstr "" -#: js/PitchBlocks.js:858 -msgid "Pitch can be specified in terms of ni dha pa ma ga re sa." +#: js/blocks/SensorsBlocks.js:633 +#: js/blocks/PenBlocks.js:112 +#: plugins/rodi.rtp:217 +msgid "red" msgstr "" -#: js/PitchBlocks.js:872 -msgid "Pitch can be specified in terms of C D E F G A B." +#: js/blocks/SensorsBlocks.js:638 +msgid "The Get red block returns the red component of the pixel under the mouse." msgstr "" -#: js/PitchBlocks.js:883 -msgid "solfege" +#: js/blocks/SensorsBlocks.js:644 +msgid "The Get red block returns the red component of the pixel under the turtle." msgstr "" -#: js/PitchBlocks.js:886 -msgid "Pitch can be specified in terms of do re mi fa sol la ti." +#: js/blocks/SensorsBlocks.js:685 +#: plugins/rodi.rtp:216 +msgid "pixel color" msgstr "" -#: js/PitchBlocks.js:920 -msgid "The Invert block rotates any contained notes around a target note." +#: js/blocks/SensorsBlocks.js:690 +msgid "The Get pixel block returns the color of the pixel under the mouse." msgstr "" -#: js/PitchBlocks.js:927 -#.TRANS: pitch inversion rotates a pitch around another pitch -msgid "invert" +#: js/blocks/SensorsBlocks.js:696 +msgid "The Get pixel block returns the color of the pixel under the turtle." msgstr "" -#: js/PitchBlocks.js:929 -#: js/PitchBlocks.js:935 -#: js/PitchActions.js:727 -#: js/musicutils.js:726 -#: js/musicutils.js:902 -#.TRANS: invert based on even or odd number or musical scale -#.TRANS: even numbers -msgid "even" +#: js/blocks/SensorsBlocks.js:758 +msgid "time" msgstr "" -#: js/PitchBlocks.js:935 -#: js/PitchActions.js:729 -#: js/musicutils.js:728 -#: js/musicutils.js:903 -#.TRANS: odd numbers -msgid "odd" +#: js/blocks/SensorsBlocks.js:804 +msgid "cursor y" msgstr "" -#: js/PitchBlocks.js:935 -#: js/PitchActions.js:731 -#: js/musicutils.js:729 -#: js/musicutils.js:904 -msgid "scalar" +#: js/blocks/SensorsBlocks.js:809 +msgid "The Cursor Y block returns the vertical position of the mouse." msgstr "" -#: js/PitchBlocks.js:966 -#.TRANS: pitch inversion rotates a pitch around another pitch (odd number) -msgid "invert (odd)" +#: js/blocks/SensorsBlocks.js:845 +msgid "cursor x" msgstr "" -#: js/PitchBlocks.js:999 -#.TRANS: pitch inversion rotates a pitch around another pitch (even number) -msgid "invert (even)" +#: js/blocks/SensorsBlocks.js:850 +msgid "The Cursor X block returns the horizontal position of the mouse." msgstr "" -#: js/PitchBlocks.js:1020 -#.TRANS: register is the octave of the current pitch -msgid "register" +#: js/blocks/SensorsBlocks.js:886 +msgid "mouse button" msgstr "" -#: js/PitchBlocks.js:1024 -msgid "The Register block provides an easy way to modify the register (octave) of the notes that follow it." +#: js/blocks/SensorsBlocks.js:888 +msgid "The Mouse-button block returns True if the mouse button is pressed." msgstr "" -#: js/PitchBlocks.js:1074 -msgid "The Semi-tone transposition block will shift the pitches contained inside Note blocks up (or down) by half steps." +#: js/blocks/SensorsBlocks.js:934 +msgid "to ASCII" msgstr "" -#: js/PitchBlocks.js:1076 -msgid "In the example shown above, sol is shifted up to sol#." +#: js/blocks/SensorsBlocks.js:938 +msgid "The To ASCII block converts numbers to letters." msgstr "" -#: js/PitchBlocks.js:1082 -#.TRANS: adjust the amount of shift (up or down) of a pitch -msgid "semi-tone transpose" +#: js/blocks/SensorsBlocks.js:1005 +msgid "The Keyboard block returns computer keyboard input." msgstr "" -#: js/PitchBlocks.js:1115 -msgid "The Transpose by Ratio block will shift the pitches contained inside Note blocks up (or down) by a ratio" +#: js/blocks/RhythmBlockPaletteBlocks.js:50 +#: js/blocks/RhythmBlockPaletteBlocks.js:233 +#.TRANS: rhythm block +#.TRANS: translate "rhythm1" as rhythm +msgid "rhythm1" msgstr "" -#: js/PitchBlocks.js:1121 -#.TRANS: adjust the amount of shift (up or down) of a pitch -msgid "transpose by ratio" +#: js/blocks/RhythmBlockPaletteBlocks.js:70 +#: js/blocks/RhythmBlockPaletteBlocks.js:252 +#: js/blocks/RhythmBlockPaletteBlocks.js:485 +#: js/blocks/RhythmBlockPaletteBlocks.js:554 +#: js/blocks/RhythmBlockPaletteBlocks.js:875 +msgid "number of notes" msgstr "" -#: js/PitchBlocks.js:1204 -#.TRANS: down sixth means the note is five scale degrees below current note -msgid "down sixth" +#: js/blocks/RhythmBlockPaletteBlocks.js:126 +msgid "polyphonic rhythm" msgstr "" -#: js/PitchBlocks.js:1223 -#.TRANS: down third means the note is two scale degrees below current note -msgid "down third" +#: js/blocks/RhythmBlockPaletteBlocks.js:219 +msgid "The Rhythm block is used to generate rhythm patterns." msgstr "" -#: js/PitchBlocks.js:1242 -#.TRANS: seventh means the note is the six scale degrees above current note -msgid "seventh" +#: js/blocks/RhythmBlockPaletteBlocks.js:280 +msgid "1/64 note" msgstr "" -#: js/PitchBlocks.js:1261 -#.TRANS: sixth means the note is the five scale degrees above current note -msgid "sixth" +#: js/blocks/RhythmBlockPaletteBlocks.js:304 +msgid "1/32 note" msgstr "" -#: js/PitchBlocks.js:1280 -#.TRANS: fifth means the note is the four scale degrees above current note -msgid "fifth" +#: js/blocks/RhythmBlockPaletteBlocks.js:332 +msgid "1/16 note" msgstr "" -#: js/PitchBlocks.js:1300 -#.TRANS: fourth means the note is three scale degrees above current note -msgid "fourth" +#: js/blocks/RhythmBlockPaletteBlocks.js:360 +msgid "eighth note" msgstr "" -#: js/PitchBlocks.js:1319 -#.TRANS: third means the note is two scale degrees above current note -msgid "third" +#: js/blocks/RhythmBlockPaletteBlocks.js:388 +msgid "quarter note" msgstr "" -#: js/PitchBlocks.js:1338 -#.TRANS: second means the note is one scale degree above current note -msgid "second" +#: js/blocks/RhythmBlockPaletteBlocks.js:416 +msgid "half note" msgstr "" -#: js/PitchBlocks.js:1379 -msgid "The Scalar transposition block will shift the pitches contained inside Note blocks up (or down) the scale." +#: js/blocks/RhythmBlockPaletteBlocks.js:444 +msgid "whole note" msgstr "" -#: js/PitchBlocks.js:1381 -msgid "In the example shown above, sol is shifted up to la." +#: js/blocks/RhythmBlockPaletteBlocks.js:482 +#: js/blocks/RhythmBlockPaletteBlocks.js:551 +#: js/blocks/RhythmBlockPaletteBlocks.js:602 +#.TRANS: A tuplet is a note value divided into irregular time values. +msgid "tuplet" msgstr "" -#: js/PitchBlocks.js:1388 -#.TRANS: adjust the amount of shift (up or down) of a pitch by musical scale (scalar) steps -msgid "scalar transpose" +#: js/blocks/RhythmBlockPaletteBlocks.js:768 +msgid "septuplet" msgstr "" -#: js/PitchBlocks.js:1423 -msgid "The Accidental block is used to create sharps and flats" +#: js/blocks/RhythmBlockPaletteBlocks.js:796 +msgid "quintuplet" msgstr "" -#: js/PitchBlocks.js:1430 -#.TRANS: An accidental is a modification to a pitch, e.g., sharp or flat. -msgid "accidental override" +#: js/blocks/RhythmBlockPaletteBlocks.js:824 +msgid "triplet" msgstr "" -#: js/PitchBlocks.js:1543 -msgid "The Hertz block (in combination with a Number block) will play a sound at the specified frequency." +#: js/blocks/RhythmBlockPaletteBlocks.js:851 +msgid "simple tuplet" msgstr "" -#: js/PitchBlocks.js:1633 -msgid "The Pitch Number block will play a pitch associated by its number, e.g. 0 for C and 7 for G." +#: js/blocks/RhythmBlockPaletteBlocks.js:861 +msgid "Tuplets are a collection of notes that get scaled to a specific duration." msgstr "" -#: js/PitchBlocks.js:1665 -#: js/PitchBlocks.js:1707 -#.TRANS: a numeric mapping of the notes in an octave based on the musical mode -#.TRANS: a numeric mapping of the notes in an octave based on the musical mode -msgid "nth modal pitch" +#: js/blocks/DrumBlocks.js:59 +msgid "The Noise name block is used to select a noise synthesizer." msgstr "" -#: js/PitchBlocks.js:1668 -msgid "n^th Modal Pitch takes the pattern of pitches in semitones for a mode and makes each point a degree of the mode," +#: js/blocks/DrumBlocks.js:102 +msgid "The Drum name block is used to select a drum." msgstr "" -#: js/PitchBlocks.js:1670 -msgid "starting from 1 and regardless of tonal framework (i.e. not always 8 notes in the octave)" +#: js/blocks/DrumBlocks.js:146 +msgid "The Effects name block is used to select a sound effect." msgstr "" -#: js/PitchBlocks.js:1711 -msgid "N^th Modal Pitch takes a number as an input as the n^th degree for the given mode. 0 is the first position, 1 is the second, -1 is the note before the first etc." +#: js/blocks/DrumBlocks.js:163 +msgid "noise" msgstr "" -#: js/PitchBlocks.js:1713 -msgid "The pitches change according to the mode specified without any need for respellings." +#: js/blocks/DrumBlocks.js:177 +msgid "The Play noise block will generate white, pink, or brown noise." msgstr "" -#: js/PitchBlocks.js:1752 -msgid "Scale Degree is a common convention in music. Scale Degree offers seven possible positions in the scale (1-7) and can be modified via accidentals." +#: js/blocks/DrumBlocks.js:317 +msgid "Replace every instance of a pitch with a drum sound." msgstr "" -#: js/PitchBlocks.js:1754 -msgid "Scale Degree 1 is always the first pitch in a given scale, regardless of octave." +#: js/blocks/DrumBlocks.js:328 +#.TRANS: map a pitch to a drum sound +msgid "map pitch to drum" msgstr "" -#: js/PitchBlocks.js:1776 -#.TRANS: step some number of notes in current musical scale -msgid "scalar step" +#: js/blocks/DrumBlocks.js:395 +msgid "In the example above, a kick drum sound will be played instead of sol." msgstr "" -#: js/PitchBlocks.js:1781 -msgid "The Scalar Step block (in combination with a Number block) will play the next pitch in a scale," +#: js/blocks/DrumBlocks.js:407 +#.TRANS: set the current drum sound for playback +msgid "set drum" msgstr "" -#: js/PitchBlocks.js:1783 -msgid "eg if the last note played was sol, Scalar Step 1 will play la." +#: js/blocks/DrumBlocks.js:451 +msgid "sound effect" msgstr "" -#: js/PitchBlocks.js:1818 -msgid "The Pitch block specifies the pitch name and octave of a note that together determine the frequency of the note." +#: js/blocks/DrumBlocks.js:489 +msgid "You can use multiple Drum blocks within a Note block." msgstr "" -#: js/GraphicsBlocks.js:46 -#: js/DictActions.js:77 -#: js/DictActions.js:155 -#: js/DictActions.js:189 +#: js/blocks/GraphicsBlocks.js:46 +#: js/turtleactions/DictActions.js:77 +#: js/turtleactions/DictActions.js:144 +#: js/turtleactions/DictActions.js:173 msgid "heading" msgstr "" -#: js/GraphicsBlocks.js:56 +#: js/blocks/GraphicsBlocks.js:56 msgid "The Heading block returns the orientation of the mouse." msgstr "" -#: js/GraphicsBlocks.js:62 +#: js/blocks/GraphicsBlocks.js:62 msgid "The Heading block returns the orientation of the turtle." msgstr "" -#: js/GraphicsBlocks.js:133 +#: js/blocks/GraphicsBlocks.js:133 msgid "The Y block returns the vertical position of the mouse." msgstr "" -#: js/GraphicsBlocks.js:140 +#: js/blocks/GraphicsBlocks.js:140 msgid "The Y block returns the vertical position of the turtle." msgstr "" -#: js/GraphicsBlocks.js:149 +#: js/blocks/GraphicsBlocks.js:149 msgid "y3" msgstr "" -#: js/GraphicsBlocks.js:219 +#: js/blocks/GraphicsBlocks.js:219 msgid "The X block returns the horizontal position of the mouse." msgstr "" -#: js/GraphicsBlocks.js:226 +#: js/blocks/GraphicsBlocks.js:226 msgid "The X block returns the horizontal position of the turtle." msgstr "" -#: js/GraphicsBlocks.js:235 +#: js/blocks/GraphicsBlocks.js:235 msgid "x3" msgstr "" -#: js/GraphicsBlocks.js:295 +#: js/blocks/GraphicsBlocks.js:295 msgid "scroll xy" msgstr "" -#: js/GraphicsBlocks.js:303 +#: js/blocks/GraphicsBlocks.js:303 msgid "The Scroll XY block moves the canvas." msgstr "" -#: js/GraphicsBlocks.js:313 +#: js/blocks/GraphicsBlocks.js:313 msgid "x2" msgstr "" -#: js/GraphicsBlocks.js:313 +#: js/blocks/GraphicsBlocks.js:313 msgid "y2" msgstr "" -#: js/GraphicsBlocks.js:373 -#: js/temperament.js:213 -#: js/temperament.js:241 +#: js/blocks/GraphicsBlocks.js:373 +#: js/widgets/temperament.js:319 +#: js/widgets/temperament.js:347 msgid "clear" msgstr "" -#: js/GraphicsBlocks.js:426 +#: js/blocks/GraphicsBlocks.js:426 msgid "The Control-point 2 block sets the second control point for the Bezier curve." msgstr "" -#: js/GraphicsBlocks.js:433 +#: js/blocks/GraphicsBlocks.js:433 msgid "control point 2" msgstr "" -#: js/GraphicsBlocks.js:436 -#: js/GraphicsBlocks.js:487 -#: js/GraphicsBlocks.js:534 -#: js/GraphicsBlocks.js:750 +#: js/blocks/GraphicsBlocks.js:436 +#: js/blocks/GraphicsBlocks.js:487 +#: js/blocks/GraphicsBlocks.js:534 +#: js/blocks/GraphicsBlocks.js:750 msgid "x1" msgstr "" -#: js/GraphicsBlocks.js:436 -#: js/GraphicsBlocks.js:487 -#: js/GraphicsBlocks.js:534 -#: js/GraphicsBlocks.js:750 +#: js/blocks/GraphicsBlocks.js:436 +#: js/blocks/GraphicsBlocks.js:487 +#: js/blocks/GraphicsBlocks.js:534 +#: js/blocks/GraphicsBlocks.js:750 msgid "y1" msgstr "" -#: js/GraphicsBlocks.js:477 +#: js/blocks/GraphicsBlocks.js:477 msgid "The Control-point 1 block sets the first control point for the Bezier curve." msgstr "" -#: js/GraphicsBlocks.js:484 +#: js/blocks/GraphicsBlocks.js:484 msgid "control point 1" msgstr "" -#: js/GraphicsBlocks.js:527 +#: js/blocks/GraphicsBlocks.js:527 msgid "The Bezier block draws a Bezier curve." msgstr "" -#: js/GraphicsBlocks.js:531 +#: js/blocks/GraphicsBlocks.js:531 msgid "bezier" msgstr "" -#: js/GraphicsBlocks.js:592 +#: js/blocks/GraphicsBlocks.js:592 msgid "The Arc block moves the turtle in an arc." msgstr "" -#: js/GraphicsBlocks.js:600 +#: js/blocks/GraphicsBlocks.js:600 msgid "arc" msgstr "" -#: js/GraphicsBlocks.js:603 +#: js/blocks/GraphicsBlocks.js:603 msgid "angle" msgstr "" -#: js/GraphicsBlocks.js:603 +#: js/blocks/GraphicsBlocks.js:603 msgid "radius" msgstr "" -#: js/GraphicsBlocks.js:620 -#: js/GraphicsBlocks.js:767 -#: js/GraphicsBlocks.js:1010 -#: js/GraphicsBlocks.js:1093 +#: js/blocks/GraphicsBlocks.js:620 +#: js/blocks/GraphicsBlocks.js:767 +#: js/blocks/GraphicsBlocks.js:1010 +#: js/blocks/GraphicsBlocks.js:1093 msgid "Value must be within -5000 to 5000 when Wrap Mode is off." msgstr "" -#: js/GraphicsBlocks.js:622 -#: js/GraphicsBlocks.js:769 -#: js/GraphicsBlocks.js:1012 -#: js/GraphicsBlocks.js:1095 +#: js/blocks/GraphicsBlocks.js:622 +#: js/blocks/GraphicsBlocks.js:769 +#: js/blocks/GraphicsBlocks.js:1012 +#: js/blocks/GraphicsBlocks.js:1095 msgid "Value must be within -20000 to 20000 when Wrap Mode is on." msgstr "" -#: js/GraphicsBlocks.js:660 +#: js/blocks/GraphicsBlocks.js:660 msgid "set heading" msgstr "seth" -#: js/GraphicsBlocks.js:673 +#: js/blocks/GraphicsBlocks.js:673 msgid "The Set heading block sets the heading of the turtle." msgstr "" -#: js/GraphicsBlocks.js:733 +#: js/blocks/GraphicsBlocks.js:733 msgid "The Set XY block moves the mouse to a specific position on the screen." msgstr "" -#: js/GraphicsBlocks.js:739 +#: js/blocks/GraphicsBlocks.js:739 msgid "The Set XY block moves the turtle to a specific position on the screen." msgstr "" -#: js/GraphicsBlocks.js:747 +#: js/blocks/GraphicsBlocks.js:747 msgid "set xy" msgstr "" -#: js/GraphicsBlocks.js:819 +#: js/blocks/GraphicsBlocks.js:819 msgid "The Right block turns the mouse to the right." msgstr "" -#: js/GraphicsBlocks.js:826 +#: js/blocks/GraphicsBlocks.js:826 msgid "The Right block turns the turtle to the right." msgstr "" -#: js/GraphicsBlocks.js:835 +#: js/blocks/GraphicsBlocks.js:835 msgid "right1" msgstr "" -#: js/GraphicsBlocks.js:835 +#: js/blocks/GraphicsBlocks.js:835 #: plugins/rodi.rtp:77 #: plugins/rodi.rtp:340 #: plugins/rodi.rtp:375 msgid "right" msgstr "" -#: js/GraphicsBlocks.js:899 +#: js/blocks/GraphicsBlocks.js:899 msgid "The Left block turns the mouse to the left." msgstr "" -#: js/GraphicsBlocks.js:906 +#: js/blocks/GraphicsBlocks.js:906 msgid "The Left block turns the turtle to the left." msgstr "" -#: js/GraphicsBlocks.js:915 +#: js/blocks/GraphicsBlocks.js:915 msgid "left1" msgstr "" -#: js/GraphicsBlocks.js:915 +#: js/blocks/GraphicsBlocks.js:915 #: plugins/rodi.rtp:79 #: plugins/rodi.rtp:339 #: plugins/rodi.rtp:362 msgid "left" msgstr "" -#: js/GraphicsBlocks.js:967 -#: js/temperament.js:734 -#: js/temperament.js:933 +#: js/blocks/GraphicsBlocks.js:967 +#: js/widgets/temperament.js:875 +#: js/widgets/temperament.js:1078 #: plugins/rodi.rtp:69 #: plugins/rodi.rtp:387 msgid "back" msgstr "" -#: js/GraphicsBlocks.js:976 +#: js/blocks/GraphicsBlocks.js:976 msgid "The Back block moves the mouse backward." msgstr "" -#: js/GraphicsBlocks.js:983 +#: js/blocks/GraphicsBlocks.js:983 msgid "The Back block moves the turtle backward." msgstr "" -#: js/GraphicsBlocks.js:1050 +#: js/blocks/GraphicsBlocks.js:1050 #: plugins/rodi.rtp:71 #: plugins/rodi.rtp:400 msgid "forward" msgstr "" -#: js/GraphicsBlocks.js:1059 +#: js/blocks/GraphicsBlocks.js:1059 msgid "The Forward block moves the mouse forward." msgstr "" -#: js/GraphicsBlocks.js:1066 +#: js/blocks/GraphicsBlocks.js:1066 msgid "The Forward block moves the turtle forward." msgstr "" -#: js/GraphicsBlocks.js:1154 -#: js/GraphicsBlocks.js:1172 +#: js/blocks/GraphicsBlocks.js:1154 +#: js/blocks/GraphicsBlocks.js:1172 msgid "wrap" msgstr "" -#: js/OrnamentBlocks.js:32 -msgid "staccato factor" -msgstr "" - -#: js/OrnamentBlocks.js:108 -msgid "slur factor" -msgstr "" - -#: js/OrnamentBlocks.js:217 -#: js/OrnamentBlocks.js:309 -#.TRANS: the neighbor refers to a neighboring note, e.g., D is a neighbor of C -msgid "neighbor" -msgstr "" - -#: js/OrnamentBlocks.js:293 -msgid "The Neighbor block rapidly switches between neighboring pitches." -msgstr "" - -#: js/OrnamentBlocks.js:364 -msgid "glide" -msgstr "" - -#: js/OrnamentBlocks.js:479 -#: js/OrnamentBlocks.js:643 -msgid "slur" -msgstr "" - -#: js/OrnamentBlocks.js:558 -#: js/OrnamentBlocks.js:710 -#.TRANS: play each note sharply detached from the others -msgid "staccato" -msgstr "" - -#: js/PenBlocks.js:24 +#: js/blocks/PenBlocks.js:30 msgid "purple" msgstr "" -#: js/PenBlocks.js:37 -#: js/SensorsBlocks.js:521 -#: plugins/rodi.rtp:219 -msgid "blue" -msgstr "" - -#: js/PenBlocks.js:50 -#: js/SensorsBlocks.js:577 -#: plugins/rodi.rtp:218 -msgid "green" -msgstr "" - -#: js/PenBlocks.js:63 +#: js/blocks/PenBlocks.js:80 msgid "yellow" msgstr "" -#: js/PenBlocks.js:76 +#: js/blocks/PenBlocks.js:96 #: plugins/nutrition.rtp:164 msgid "orange" msgstr "" -#: js/PenBlocks.js:89 -#: js/SensorsBlocks.js:633 -#: plugins/rodi.rtp:217 -msgid "red" -msgstr "" - -#: js/PenBlocks.js:102 +#: js/blocks/PenBlocks.js:128 msgid "white" msgstr "" -#: js/PenBlocks.js:115 +#: js/blocks/PenBlocks.js:144 msgid "black" msgstr "" -#: js/PenBlocks.js:128 +#: js/blocks/PenBlocks.js:163 msgid "begin fill" msgstr "" -#: js/PenBlocks.js:143 +#: js/blocks/PenBlocks.js:190 msgid "end fill" msgstr "" -#: js/PenBlocks.js:159 -#: js/PenBlocks.js:386 +#: js/blocks/PenBlocks.js:212 +#: js/blocks/PenBlocks.js:560 #.TRANS: set the background color msgid "background" msgstr "" -#: js/PenBlocks.js:206 -#: js/DictActions.js:71 -#: js/DictActions.js:149 -#: js/DictActions.js:186 +#: js/blocks/PenBlocks.js:274 +#: js/turtleactions/DictActions.js:71 +#: js/turtleactions/DictActions.js:138 +#: js/turtleactions/DictActions.js:170 msgid "grey" msgstr "" -#: js/PenBlocks.js:210 +#: js/blocks/PenBlocks.js:282 msgid "The Grey block returns the current pen grey value." msgstr "" -#: js/PenBlocks.js:243 -#: js/DictActions.js:69 -#: js/DictActions.js:147 -#: js/DictActions.js:185 +#: js/blocks/PenBlocks.js:340 +#: js/turtleactions/DictActions.js:69 +#: js/turtleactions/DictActions.js:136 +#: js/turtleactions/DictActions.js:169 msgid "shade" msgstr "" -#: js/PenBlocks.js:247 +#: js/blocks/PenBlocks.js:347 msgid "The Shade block returns the current pen shade value." msgstr "" -#: js/PenBlocks.js:280 -#: js/DictActions.js:67 -#: js/DictActions.js:145 -#: js/DictActions.js:184 +#: js/blocks/PenBlocks.js:405 +#: js/turtleactions/DictActions.js:67 +#: js/turtleactions/DictActions.js:134 +#: js/turtleactions/DictActions.js:168 msgid "color" msgstr "" -#: js/PenBlocks.js:285 +#: js/blocks/PenBlocks.js:415 msgid "The Color block returns the current pen color." msgstr "" -#: js/PenBlocks.js:318 -#: js/DictActions.js:73 -#: js/DictActions.js:151 -#: js/DictActions.js:187 +#: js/blocks/PenBlocks.js:470 +#: js/turtleactions/DictActions.js:73 +#: js/turtleactions/DictActions.js:140 +#: js/turtleactions/DictActions.js:171 msgid "pen size" msgstr "" -#: js/PenBlocks.js:322 +#: js/blocks/PenBlocks.js:474 msgid "The Pen size block returns the current pen size value." msgstr "" -#: js/PenBlocks.js:355 +#: js/blocks/PenBlocks.js:513 msgid "set font" msgstr "" -#: js/PenBlocks.js:358 +#: js/blocks/PenBlocks.js:518 msgid "The Set font block sets the font used by the Show block." msgstr "" -#: js/PenBlocks.js:391 +#: js/blocks/PenBlocks.js:567 msgid "The Background block sets the window background color." msgstr "" -#: js/PenBlocks.js:408 +#: js/blocks/PenBlocks.js:598 msgid "The Hollow line block creates a line with a hollow center." msgstr "" -#: js/PenBlocks.js:415 +#: js/blocks/PenBlocks.js:606 #.TRANS: draw a line logo has a hollow space down its center msgid "hollow line" msgstr "" -#: js/PenBlocks.js:462 +#: js/blocks/PenBlocks.js:675 msgid "The Fill block fills in a shape with a color." msgstr "" -#: js/PenBlocks.js:470 +#: js/blocks/PenBlocks.js:684 #.TRANS: fill in as a solid color msgid "fill" msgstr "" -#: js/PenBlocks.js:527 +#: js/blocks/PenBlocks.js:761 #.TRANS: raise up the pen so logo it does not draw when it is moved msgid "pen up" msgstr "" -#: js/PenBlocks.js:532 +#: js/blocks/PenBlocks.js:768 msgid "The Pen-up block raises the pen so that it does not draw." msgstr "" -#: js/PenBlocks.js:552 +#: js/blocks/PenBlocks.js:802 #.TRANS: put down the pen so logo it draws when it is moved msgid "pen down" msgstr "" -#: js/PenBlocks.js:557 +#: js/blocks/PenBlocks.js:810 msgid "The Pen-down block lowers the pen so that it draws." msgstr "" -#: js/PenBlocks.js:577 +#: js/blocks/PenBlocks.js:844 #.TRANS: set the width of the line drawn by the pen msgid "set pen size" msgstr "" -#: js/PenBlocks.js:583 +#: js/blocks/PenBlocks.js:854 msgid "The Set-pen-size block changes the size of the pen." msgstr "" -#: js/PenBlocks.js:623 +#: js/blocks/PenBlocks.js:913 #.TRANS: set degree of translucence of the pen color msgid "set translucency" msgstr "" -#: js/PenBlocks.js:627 +#: js/blocks/PenBlocks.js:921 msgid "The Set translucency block changes the opacity of the pen." msgstr "" -#: js/PenBlocks.js:668 +#: js/blocks/PenBlocks.js:981 msgid "set hue" msgstr "" -#: js/PenBlocks.js:672 +#: js/blocks/PenBlocks.js:989 msgid "The Set hue block changes the color of the pen." msgstr "" -#: js/PenBlocks.js:711 +#: js/blocks/PenBlocks.js:1047 msgid "set shade" msgstr "" -#: js/PenBlocks.js:717 +#: js/blocks/PenBlocks.js:1057 msgid "The Set-shade block changes the pen color from dark to light." msgstr "" -#: js/PenBlocks.js:757 +#: js/blocks/PenBlocks.js:1111 #.TRANS: set the level of vividness of the pen color msgid "set grey" msgstr "" -#: js/PenBlocks.js:761 +#: js/blocks/PenBlocks.js:1119 msgid "The Set grey block changes the vividness of the pen color." msgstr "" -#: js/PenBlocks.js:800 +#: js/blocks/PenBlocks.js:1172 msgid "set color" msgstr "" -#: js/PenBlocks.js:806 +#: js/blocks/PenBlocks.js:1182 msgid "The Set-color block changes the pen color." msgstr "" -#: js/VolumeBlocks.js:35 -msgid "synth volume" -msgstr "" - -#: js/VolumeBlocks.js:39 -msgid "The Synth volume block returns the current volume of the current synthesizer." -msgstr "" - -#: js/VolumeBlocks.js:47 -#: js/musicutils.js:730 -#: js/synthutils.js:56 -#.TRANS: musical instrument -msgid "piano" -msgstr "" - -#: js/VolumeBlocks.js:105 -msgid "master volume" -msgstr "" - -#: js/VolumeBlocks.js:109 -msgid "The Master volume block returns the master volume." -msgstr "" - -#: js/VolumeBlocks.js:355 -#: js/VolumeBlocks.js:524 -msgid "set synth volume" -msgstr "" - -#: js/VolumeBlocks.js:362 -#: js/VolumeBlocks.js:545 -msgid "synth" -msgstr "" - -#: js/VolumeBlocks.js:403 -#: js/VolumeBlocks.js:577 -#: js/VolumeBlocks.js:740 -#: js/VolumeActions.js:173 -msgid "Setting volume to 0." -msgstr "" - -#: js/VolumeBlocks.js:440 -msgid "Synth not found" -msgstr "" - -#: js/VolumeBlocks.js:494 -msgid "set drum volume" -msgstr "" - -#: js/VolumeBlocks.js:530 -msgid "The Set synth volume block will change the volume of a particular synth," -msgstr "" - -#: js/VolumeBlocks.js:532 -msgid "eg guitar violin snare drum etc." -msgstr "" - -#: js/VolumeBlocks.js:534 -msgid "The default volume is 50." -msgstr "" - -#: js/VolumeBlocks.js:536 -msgid "The range is 0 for silence to 100 for full volume." -msgstr "" - -#: js/VolumeBlocks.js:597 -msgid "set panning" -msgstr "" - -#: js/VolumeBlocks.js:603 -msgid "The Set Panning block sets the panning for all synthesizers." -msgstr "" - -#: js/VolumeBlocks.js:625 -msgid "Warning: Sound is coming out from only the left or right side." -msgstr "" - -#: js/VolumeBlocks.js:647 -#: js/VolumeBlocks.js:695 -msgid "set master volume" -msgstr "" - -#: js/VolumeBlocks.js:653 -msgid "The Set master volume block sets the volume for all synthesizers." -msgstr "" - -#: js/VolumeBlocks.js:784 -msgid "The Set relative volume block changes the volume of the contained notes." -msgstr "" - -#: js/VolumeBlocks.js:791 -msgid "set relative volume" -msgstr "" - -#: js/VolumeBlocks.js:857 -msgid "decrescendo" -msgstr "" - -#: js/VolumeBlocks.js:921 -msgid "crescendo" -msgstr "" - -#: js/ToneBlocks.js:34 -msgid "oscillator" -msgstr "" - -#: js/ToneBlocks.js:44 -#: js/timbre.js:1562 -#.TRANS: Partials refers to the number of sine waves combined into the sound. -msgid "partials" -msgstr "" - -#: js/ToneBlocks.js:76 -msgid "You are adding multiple oscillator blocks." -msgstr "" - -#: js/ToneBlocks.js:144 -#: js/timbre.js:1225 -#.TRANS: a duo synthesizer combines a synth with a sequencer -msgid "duo synth" -msgstr "" - -#: js/ToneBlocks.js:149 -msgid "The Duo synth block is a duo-frequency modulator used to define a timbre." -msgstr "" - -#: js/ToneBlocks.js:157 -#: js/timbre.js:1476 -msgid "vibrato rate" -msgstr "" - -#: js/ToneBlocks.js:157 -msgid "vibrato intensity" -msgstr "" - -#: js/ToneBlocks.js:185 -#: js/timbre.js:1221 -#.TRANS: AM (amplitude modulation) synthesizer -msgid "AM synth" -msgstr "" - -#: js/ToneBlocks.js:189 -msgid "The AM synth block is an amplitude modulator used to define a timbre." -msgstr "" - -#: js/ToneBlocks.js:224 -#: js/timbre.js:1223 -#.TRANS: FM (frequency modulation) synthesizer -msgid "FM synth" -msgstr "" - -#: js/ToneBlocks.js:228 -msgid "The FM synth block is a frequency modulator used to define a timbre." +#: js/blocks/PitchBlocks.js:141 +#.TRANS: musical transposition (adjustment of pitch up or down) +msgid "transposition" msgstr "" -#: js/ToneBlocks.js:262 -msgid "partial" +#: js/blocks/PitchBlocks.js:168 +#.TRANS: step down one note in current musical scale +msgid "scalar step down" msgstr "" -#: js/ToneBlocks.js:265 -msgid "The Partial block is used to specify a weight for a specific partial harmonic." +#: js/blocks/PitchBlocks.js:172 +msgid "The Scalar step down block returns the number of semi-tones down to the previous note in the current key and mode." msgstr "" -#: js/ToneBlocks.js:284 -#.TRANS: partials are weighted components in a harmonic series -msgid "Partial weight must be between 0 and 1." +#: js/blocks/PitchBlocks.js:190 +#.TRANS: step up one note in current musical scale +msgid "scalar step up" msgstr "" -#: js/ToneBlocks.js:297 -#.TRANS: partials are weighted components in a harmonic series -msgid "Partial block should be used inside of a Weighted-partials block." +#: js/blocks/PitchBlocks.js:194 +msgid "The Scalar step up block returns the number of semi-tones up to the next note in the current key and mode." msgstr "" -#: js/ToneBlocks.js:325 -#.TRANS: partials are weighted components in a harmonic series -msgid "weighted partials" +#: js/blocks/PitchBlocks.js:212 +#.TRANS: the change measured in half-steps between the current pitch and the previous pitch +msgid "change in pitch" msgstr "" -#: js/ToneBlocks.js:383 -msgid "The Harmonic block will add harmonics to the contained notes." +#: js/blocks/PitchBlocks.js:216 +msgid "The Change in pitch block is the difference (in half steps) between the current pitch being played and the previous pitch played." msgstr "" -#: js/ToneBlocks.js:390 -#.TRANS: A harmonic is an overtone. -msgid "harmonic" +#: js/blocks/PitchBlocks.js:243 +#.TRANS: the change measured in scale-steps between the current pitch and the previous pitch +msgid "scalar change in pitch" msgstr "" -#: js/ToneBlocks.js:431 -msgid "The Distortion block adds distortion to the pitch." +#: js/blocks/PitchBlocks.js:250 +#: js/blocks/PitchBlocks.js:432 +#: js/blocks/PitchBlocks.js:1667 +#: js/turtleactions/DictActions.js:89 +#: js/widgets/temperament.js:610 +#: js/widgets/temperament.js:614 +#: js/widgets/temperament.js:855 +#.TRANS: convert current note to piano key (1-88) +#.TRANS: a mapping of pitch to the 88 piano keys +msgid "pitch number" msgstr "" -#: js/ToneBlocks.js:438 -#: js/timbre.js:2100 -#.TRANS: distortion is an alteration in the sound -msgid "distortion" +#: js/blocks/PitchBlocks.js:256 +msgid "The Pitch number block is the value of the pitch of the note currently being played." msgstr "" -#: js/ToneBlocks.js:487 -msgid "The Tremolo block adds a wavering effect." +#: js/blocks/PitchBlocks.js:329 +#: js/blocks/PitchBlocks.js:433 +#.TRANS: the current pitch expressed in Hertz +msgid "pitch in hertz" msgstr "" -#: js/ToneBlocks.js:495 -#: js/timbre.js:2092 -#.TRANS: a wavering effect in a musical tone -msgid "tremolo" +#: js/blocks/PitchBlocks.js:334 +msgid "The Pitch in Hertz block is the value in Hertz of the pitch of the note currently being played." msgstr "" -#: js/ToneBlocks.js:500 -#: js/ToneBlocks.js:569 -#: js/ToneBlocks.js:630 -#: js/ToneBlocks.js:689 -#: js/timbre.js:2134 -#: js/timbre.js:2222 -#: js/timbre.js:2317 -#: js/timbre.js:2419 -#.TRANS: rate at which tremolo wavers -msgid "rate" +#: js/blocks/PitchBlocks.js:367 +#: js/turtleactions/DictActions.js:87 +msgid "current pitch" msgstr "" -#: js/ToneBlocks.js:502 -#: js/ToneBlocks.js:630 -#: js/timbre.js:2137 -#: js/timbre.js:2328 -#.TRANS: amplitude of tremolo waver -msgid "depth" +#: js/blocks/PitchBlocks.js:373 +msgid "The Current Pitch block is used with the Pitch Converter block. In the example above, current pitch, sol 4, is displayed as 392 hertz." msgstr "" -#: js/ToneBlocks.js:559 -msgid "The Phaser block adds a sweeping sound." +#: js/blocks/PitchBlocks.js:410 +msgid "This block converts the pitch value of the last note played into different formats such as hertz, letter name, pitch number, et al." msgstr "" -#: js/ToneBlocks.js:566 -#: js/timbre.js:2098 -#.TRANS: alter the phase of the sound -msgid "phaser" +#: js/blocks/PitchBlocks.js:434 +msgid "alphabet" msgstr "" -#: js/ToneBlocks.js:569 -#: js/timbre.js:2422 -msgid "octaves" +#: js/blocks/PitchBlocks.js:436 +#.TRANS: Translate as "alphabet class" +msgid "letter class" msgstr "" -#: js/ToneBlocks.js:569 -#: js/timbre.js:2425 -msgid "base frequency" +#: js/blocks/PitchBlocks.js:437 +msgid "solfege class" msgstr "" -#: js/ToneBlocks.js:619 -msgid "The Chorus block adds a chorus effect." +#: js/blocks/PitchBlocks.js:438 +msgid "staff y" msgstr "" -#: js/ToneBlocks.js:627 -#: js/timbre.js:2096 -#.TRANS: musical effect to simulate a choral sound -msgid "chorus" +#: js/blocks/PitchBlocks.js:439 +msgid "solfege syllable" msgstr "" -#: js/ToneBlocks.js:630 -msgid "delay" +#: js/blocks/PitchBlocks.js:440 +msgid "pitch class" msgstr "" -#: js/ToneBlocks.js:678 -msgid "The Vibrato block adds a rapid, slight variation in pitch." +#: js/blocks/PitchBlocks.js:441 +msgid "scalar class" msgstr "" -#: js/ToneBlocks.js:686 -#: js/timbre.js:2094 -#.TRANS: a rapid, slight variation in pitch -msgid "vibrato" +#: js/blocks/PitchBlocks.js:443 +msgid "nth degree" msgstr "" -#: js/ToneBlocks.js:689 -#: js/timbre.js:2221 -msgid "intensity" +#: js/blocks/PitchBlocks.js:444 +msgid "pitch to shade" msgstr "" -#: js/ToneBlocks.js:733 -#.TRANS: select synthesizer -msgid "set synth" +#: js/blocks/PitchBlocks.js:445 +msgid "pitch to color" msgstr "" -#: js/ToneBlocks.js:804 -msgid "synth name" +#: js/blocks/PitchBlocks.js:629 +#: js/widgets/musickeyboard.js:735 +#.TRANS: MIDI is a technical standard for electronic music +msgid "MIDI" msgstr "" -#: js/ToneBlocks.js:842 -msgid "set default instrument" +#: js/blocks/PitchBlocks.js:642 +#.TRANS: set an offset associated with the numeric piano keyboard mapping +msgid "set pitch number offset" msgstr "" -#: js/ToneBlocks.js:895 -#: js/ToneBlocks.js:943 -#.TRANS: set the characteristics of a custom instrument -msgid "set instrument" +#: js/blocks/PitchBlocks.js:645 +msgid "The Set pitch number offset block is used to set the offset for mapping pitch numbers to pitch and octave." msgstr "" -#: js/ToneBlocks.js:898 -#: js/ToneBlocks.js:926 -#: js/ToneBlocks.js:932 -msgid "The Set instrument block selects a voice for the synthesizer," +#: js/blocks/PitchBlocks.js:679 +#.TRANS: convert piano key number (1-88) to pitch +msgid "number to pitch" msgstr "" -#: js/ToneBlocks.js:900 -#: js/ToneBlocks.js:934 -msgid "eg guitar piano violin or cello." +#: js/blocks/PitchBlocks.js:682 +msgid "The Number to pitch block will convert a pitch number to a pich name." msgstr "" -#: js/ToneBlocks.js:1015 -msgid "Import a sound file to use as an instrument and set its pitch center." +#: js/blocks/PitchBlocks.js:715 +#.TRANS: convert piano key number (1-88) to octave +msgid "number to octave" msgstr "" -#: js/ToneBlocks.js:1110 -msgid "Upload a sound file to connect with the sample block." +#: js/blocks/PitchBlocks.js:717 +msgid "The Number to octave block will convert a pitch number to an octave." msgstr "" -#: js/MeterBlocks.js:34 -#.TRANS: musical meter (time signature), e.g., 4:4 -msgid "current meter" +#: js/blocks/PitchBlocks.js:726 +msgid "y to pitch" msgstr "" -#: js/MeterBlocks.js:85 -#.TRANS: number of beats per minute -msgid "beat factor" +#: js/blocks/PitchBlocks.js:729 +msgid "Y to pitch block will convert a staff y position to corresponding pitch notation." msgstr "" -#: js/MeterBlocks.js:161 -msgid "The Beats per minute block returns the current beats per minute." +#: js/blocks/PitchBlocks.js:841 +msgid "accidental selector" msgstr "" -#: js/MeterBlocks.js:169 -#: js/status.js:152 -#.TRANS: number of beats played per minute -msgid "beats per minute2" +#: js/blocks/PitchBlocks.js:844 +msgid "The Accidental selector block is used to choose between double-sharp, sharp, natural, flat, and double-flat." msgstr "" -#: js/MeterBlocks.js:169 -#: js/MeterBlocks.js:1056 -#: js/MeterBlocks.js:1133 -#: js/MeterBlocks.js:1211 -#.TRANS: sets tempo by defining a beat and beats per minute -msgid "beats per minute" +#: js/blocks/PitchBlocks.js:858 +msgid "Pitch can be specified in terms of ni dha pa ma ga re sa." msgstr "" -#: js/MeterBlocks.js:233 -#.TRANS: count of current musical measure in meter -msgid "measure count" +#: js/blocks/PitchBlocks.js:872 +msgid "Pitch can be specified in terms of C D E F G A B." msgstr "" -#: js/MeterBlocks.js:241 -msgid "The Measure count block returns the current measure." +#: js/blocks/PitchBlocks.js:884 +msgid "solfege" msgstr "" -#: js/MeterBlocks.js:290 -#.TRANS: count of current beat in the meter -msgid "beat count" +#: js/blocks/PitchBlocks.js:887 +msgid "Pitch can be specified in terms of do re mi fa sol la ti." msgstr "" -#: js/MeterBlocks.js:300 -#: js/MeterBlocks.js:311 -#: js/MeterBlocks.js:565 -#: js/MeterBlocks.js:576 -msgid "The Beat count block is the number of the current beat," +#: js/blocks/PitchBlocks.js:922 +msgid "The Invert block rotates any contained notes around a target note." msgstr "" -#: js/MeterBlocks.js:313 -#: js/MeterBlocks.js:578 -msgid "eg 1, 2, 3, or 4." +#: js/blocks/PitchBlocks.js:929 +#.TRANS: pitch inversion rotates a pitch around another pitch +msgid "invert" msgstr "" -#: js/MeterBlocks.js:368 -#.TRANS: count the number of notes -msgid "sum note values" +#: js/blocks/PitchBlocks.js:968 +#.TRANS: pitch inversion rotates a pitch around another pitch (odd number) +msgid "invert (odd)" msgstr "" -#: js/MeterBlocks.js:376 -#: js/MeterBlocks.js:440 -msgid "The Note counter block can be used to count the number of contained notes." +#: js/blocks/PitchBlocks.js:1001 +#.TRANS: pitch inversion rotates a pitch around another pitch (even number) +msgid "invert (even)" msgstr "" -#: js/MeterBlocks.js:432 -#.TRANS: count the number of notes -msgid "note counter" +#: js/blocks/PitchBlocks.js:1022 +#.TRANS: register is the octave of the current pitch +msgid "register" msgstr "" -#: js/MeterBlocks.js:496 -#.TRANS: number of whole notes that have been played -msgid "whole notes played" +#: js/blocks/PitchBlocks.js:1026 +msgid "The Register block provides an easy way to modify the register (octave) of the notes that follow it." msgstr "" -#: js/MeterBlocks.js:505 -msgid "The Whole notes played block returns the total number of whole notes played." +#: js/blocks/PitchBlocks.js:1047 +#.TRANS: cents are units used to specify the ratio between pitches. There are 100 cents between successive notes. +msgid "50 cents" msgstr "" -#: js/MeterBlocks.js:555 -#: js/DictActions.js:83 -#.TRANS: number of notes that have been played -msgid "notes played" +#: js/blocks/PitchBlocks.js:1102 +msgid "The Semi-tone transposition block will shift the pitches contained inside Note blocks up (or down) by half steps." msgstr "" -#: js/MeterBlocks.js:653 -msgid "The No clock block decouples the notes from the master clock." +#: js/blocks/PitchBlocks.js:1104 +msgid "In the example shown above, sol is shifted up to sol#." msgstr "" -#: js/MeterBlocks.js:661 -#.TRANS: don't lock notes to master clock -msgid "no clock" +#: js/blocks/PitchBlocks.js:1110 +#.TRANS: adjust the amount of shift (up or down) of a pitch +msgid "semi-tone transpose" msgstr "" -#: js/MeterBlocks.js:700 -msgid "on weak beat do" +#: js/blocks/PitchBlocks.js:1143 +msgid "The Transpose by Ratio block will shift the pitches contained inside Note blocks up (or down) by a ratio" msgstr "" -#: js/MeterBlocks.js:705 -msgid "The On-weak-beat block lets you specify actions to take on weak (off) beats." +#: js/blocks/PitchBlocks.js:1149 +#.TRANS: adjust the amount of shift (up or down) of a pitch +msgid "transpose by ratio" msgstr "" -#: js/MeterBlocks.js:750 -msgid "on strong beat" +#: js/blocks/PitchBlocks.js:1232 +#.TRANS: down sixth means the note is five scale degrees below current note +msgid "down sixth" msgstr "" -#: js/MeterBlocks.js:758 -msgid "The On-strong-beat block lets you specify actions to take on specified beats." +#: js/blocks/PitchBlocks.js:1251 +#.TRANS: down third means the note is two scale degrees below current note +msgid "down third" msgstr "" -#: js/MeterBlocks.js:769 -msgid "beat" +#: js/blocks/PitchBlocks.js:1270 +#.TRANS: seventh means the note is the six scale degrees above current note +msgid "seventh" msgstr "" -#: js/MeterBlocks.js:813 -msgid "on every beat do" +#: js/blocks/PitchBlocks.js:1289 +#.TRANS: sixth means the note is the five scale degrees above current note +msgid "sixth" msgstr "" -#: js/MeterBlocks.js:821 -msgid "The On-every-beat block lets you specify actions to take on every beat." +#: js/blocks/PitchBlocks.js:1308 +#.TRANS: fifth means the note is the four scale degrees above current note +msgid "fifth" msgstr "" -#: js/MeterBlocks.js:874 -msgid "on every note do" +#: js/blocks/PitchBlocks.js:1328 +#.TRANS: fourth means the note is three scale degrees above current note +msgid "fourth" msgstr "" -#: js/MeterBlocks.js:882 -msgid "The On-every-note block lets you specify actions to take on every note." +#: js/blocks/PitchBlocks.js:1347 +#.TRANS: third means the note is two scale degrees above current note +msgid "third" msgstr "" -#: js/MeterBlocks.js:928 -#: js/MeterBlocks.js:999 -#.TRANS: sets tempo by defining a beat and beats per minute -msgid "master beats per minute" +#: js/blocks/PitchBlocks.js:1366 +#.TRANS: second means the note is one scale degree above current note +msgid "second" msgstr "" -#: js/MeterBlocks.js:952 -#: js/MeterBlocks.js:1078 -#: js/MeterBlocks.js:1135 -msgid "bpm" +#: js/blocks/PitchBlocks.js:1407 +msgid "The Scalar transposition block will shift the pitches contained inside Note blocks up (or down) the scale." msgstr "" -#: js/MeterBlocks.js:952 -#: js/MeterBlocks.js:1078 -#: js/MeterBlocks.js:1135 -msgid "beat value" +#: js/blocks/PitchBlocks.js:1409 +msgid "In the example shown above, sol is shifted up to la." msgstr "" -#: js/MeterBlocks.js:1024 -#: js/MeterBlocks.js:1167 -#: js/MeterBlocks.js:1241 -msgid "Beats per minute must be > 30." +#: js/blocks/PitchBlocks.js:1416 +#.TRANS: adjust the amount of shift (up or down) of a pitch by musical scale (scalar) steps +msgid "scalar transpose" msgstr "" -#: js/MeterBlocks.js:1027 -#: js/MeterBlocks.js:1170 -#: js/MeterBlocks.js:1244 -msgid "Maximum beats per minute is 1000." +#: js/blocks/PitchBlocks.js:1451 +msgid "The Accidental block is used to create sharps and flats" msgstr "" -#: js/MeterBlocks.js:1068 -msgid "The Beats per minute block sets the number of 1/4 notes per minute." +#: js/blocks/PitchBlocks.js:1458 +#.TRANS: An accidental is a modification to a pitch, e.g., sharp or flat. +msgid "accidental override" msgstr "" -#: js/MeterBlocks.js:1279 -#.TRANS: anacrusis -msgid "pickup" +#: js/blocks/PitchBlocks.js:1581 +msgid "The Hertz block (in combination with a Number block) will play a sound at the specified frequency." msgstr "" -#: js/MeterBlocks.js:1367 -msgid "number of beats" +#: js/blocks/PitchBlocks.js:1671 +msgid "The Pitch Number block will play a pitch associated by its number, e.g. 0 for C and 7 for G." msgstr "" -#: js/DictBlocks.js:77 -msgid "show dictionary" +#: js/blocks/PitchBlocks.js:1703 +#: js/blocks/PitchBlocks.js:1745 +#.TRANS: a numeric mapping of the notes in an octave based on the musical mode +#.TRANS: a numeric mapping of the notes in an octave based on the musical mode +msgid "nth modal pitch" msgstr "" -#: js/DictBlocks.js:129 -msgid "The Dictionary block returns a dictionary." +#: js/blocks/PitchBlocks.js:1706 +msgid "n^th Modal Pitch takes the pattern of pitches in semitones for a mode and makes each point a degree of the mode," msgstr "" -#: js/DictBlocks.js:197 -#: js/DictBlocks.js:339 -msgid "The Get-dict block returns a value in the dictionary for a specified key." +#: js/blocks/PitchBlocks.js:1708 +msgid "starting from 1 and regardless of tonal framework (i.e. not always 8 notes in the octave)" msgstr "" -#: js/DictBlocks.js:212 -#: js/DictBlocks.js:354 -#.TRANS: retrieve a value from the dictionary with a given key -msgid "get value" +#: js/blocks/PitchBlocks.js:1749 +msgid "N^th Modal Pitch takes a number as an input as the n^th degree for the given mode. 0 is the first position, 1 is the second, -1 is the note before the first etc." msgstr "" -#: js/DictBlocks.js:215 -#: js/DictBlocks.js:216 -#: js/DictBlocks.js:289 -#: js/DictBlocks.js:290 -#: js/DictBlocks.js:357 -#: js/DictBlocks.js:430 -#: js/DictBlocks.js:431 -msgid "key2" +#: js/blocks/PitchBlocks.js:1751 +msgid "The pitches change according to the mode specified without any need for respellings." msgstr "" -#: js/DictBlocks.js:271 -#: js/DictBlocks.js:411 -msgid "The Set-dict block sets a value in the dictionary for a specified key." +#: js/blocks/PitchBlocks.js:1790 +msgid "Scale Degree is a common convention in music. Scale Degree offers seven possible positions in the scale (1-7) and can be modified via accidentals." msgstr "" -#: js/DictBlocks.js:286 -#: js/DictBlocks.js:427 -#.TRANS: set a value in the dictionary for a given key -msgid "set value" +#: js/blocks/PitchBlocks.js:1792 +msgid "Scale Degree 1 is always the first pitch in a given scale, regardless of octave." msgstr "" -#: js/ExtrasBlocks.js:33 -msgid "fraction" +#: js/blocks/PitchBlocks.js:1814 +#.TRANS: step some number of notes in current musical scale +msgid "scalar step" msgstr "" -#: js/ExtrasBlocks.js:36 -msgid "Convert a float to a fraction" +#: js/blocks/PitchBlocks.js:1819 +msgid "The Scalar Step block (in combination with a Number block) will play the next pitch in a scale," msgstr "" -#: js/ExtrasBlocks.js:93 -msgid "save as ABC" +#: js/blocks/PitchBlocks.js:1821 +msgid "eg if the last note played was sol, Scalar Step 1 will play la." msgstr "" -#: js/ExtrasBlocks.js:96 -#: js/ExtrasBlocks.js:132 -#: js/ExtrasBlocks.js:168 -msgid "title" +#: js/blocks/PitchBlocks.js:1857 +msgid "The Pitch block specifies the pitch name and octave of a note that together determine the frequency of the note." msgstr "" -#: js/ExtrasBlocks.js:129 -msgid "save as Lilypond" +#: js/blocks/ProgramBlocks.js:33 +msgid "The Load-heap-from-app block loads the heap from a web page." msgstr "" -#: js/ExtrasBlocks.js:165 -msgid "save as SVG" +#: js/blocks/ProgramBlocks.js:44 +#.TRANS: load the heap contents from a URL +msgid "load heap from App" msgstr "" -#: js/ExtrasBlocks.js:216 -msgid "no background" +#: js/blocks/ProgramBlocks.js:95 +msgid "Error parsing JSON data:" msgstr "" -#: js/ExtrasBlocks.js:219 -msgid "The No background block eliminates the background from the saved SVG output." +#: js/blocks/ProgramBlocks.js:100 +msgid "404: Page not found" msgstr "" -#: js/ExtrasBlocks.js:247 -msgid "show blocks" +#: js/blocks/ProgramBlocks.js:133 +msgid "The Save-heap-to-app block saves the heap to a web page." msgstr "" -#: js/ExtrasBlocks.js:249 -msgid "The Show blocks block shows the blocks." +#: js/blocks/ProgramBlocks.js:144 +#.TRANS: save the heap contents to a URL +msgid "save heap to App" msgstr "" -#: js/ExtrasBlocks.js:274 -msgid "hide blocks" +#: js/blocks/ProgramBlocks.js:189 +msgid "Cannot find a valid heap for" msgstr "" -#: js/ExtrasBlocks.js:276 -msgid "The Hide blocks block hides the blocks." +#: js/blocks/ProgramBlocks.js:206 +msgid "The Load-heap block loads the heap from a file." msgstr "" -#: js/ExtrasBlocks.js:305 -#: js/ExtrasBlocks.js:335 -msgid "The Space block is used to add space between blocks." +#: js/blocks/ProgramBlocks.js:217 +#.TRANS: load the heap from a file +msgid "load heap" msgstr "" -#: js/ExtrasBlocks.js:373 -msgid "wait" +#: js/blocks/ProgramBlocks.js:270 +msgid "The file you selected does not contain a valid heap." msgstr "" -#: js/ExtrasBlocks.js:376 -msgid "The Wait block pauses the program for a specified number of seconds." +#: js/blocks/ProgramBlocks.js:275 +msgid "The loadHeap block needs a loadFile block." msgstr "" -#: js/ExtrasBlocks.js:430 -#: plugins/facebook.rtp:30 -msgid "comment" +#: js/blocks/ProgramBlocks.js:291 +msgid "The Set-heap block loads the heap." msgstr "" -#: js/ExtrasBlocks.js:466 -msgid "print" +#: js/blocks/ProgramBlocks.js:340 +msgid "The block you selected does not contain a valid heap." msgstr "" -#: js/ExtrasBlocks.js:473 -msgid "The Print block displays text at the top of the screen." +#: js/blocks/ProgramBlocks.js:343 +msgid "The Set heap block needs a heap." msgstr "" -#: js/ExtrasBlocks.js:579 -msgid "display grid" +#: js/blocks/ProgramBlocks.js:360 +msgid "The Load-dictionary block loads a dictionary from a file." msgstr "" -#: js/ExtrasBlocks.js:584 -msgid "The Display Grid Block changes the grid type" +#: js/blocks/ProgramBlocks.js:372 +#.TRANS: load a dictionary from a file +msgid "load dictionary" msgstr "" -#: js/ExtrasBlocks.js:686 -#: js/ExtrasBlocks.js:705 -#: js/ExtrasBlocks.js:728 -#: js/ExtrasBlocks.js:751 -#: js/ExtrasBlocks.js:769 -#: js/ExtrasBlocks.js:788 -#: js/ExtrasBlocks.js:807 -#: js/ExtrasBlocks.js:826 -msgid "unknown" +#: js/blocks/ProgramBlocks.js:390 +#: js/blocks/ProgramBlocks.js:658 +#: js/blocks/ToneBlocks.js:1025 +msgid "file" msgstr "" -#: js/SensorsBlocks.js:36 -msgid "The Input block prompts for keyboard input." +#: js/blocks/ProgramBlocks.js:444 +msgid "The file you selected does not contain a valid dictionary." msgstr "" -#: js/SensorsBlocks.js:46 -msgid "input" +#: js/blocks/ProgramBlocks.js:449 +msgid "The load dictionary block needs a load file block." msgstr "" -#: js/SensorsBlocks.js:64 -msgid "Input a value" +#: js/blocks/ProgramBlocks.js:466 +msgid "The Set-dictionary block loads a dictionary." msgstr "" -#: js/SensorsBlocks.js:126 -msgid "input value" +#: js/blocks/ProgramBlocks.js:477 +#.TRANS: load a dictionary from a JSON +msgid "set dictionary" msgstr "" -#: js/SensorsBlocks.js:131 -msgid "The Input-value block stores the input." +#: js/blocks/ProgramBlocks.js:546 +msgid "The block you selected does not contain a valid dictionary." msgstr "" -#: js/SensorsBlocks.js:238 -msgid "loudness" +#: js/blocks/ProgramBlocks.js:550 +msgid "The set dictionary block needs a dictionary." msgstr "" -#: js/SensorsBlocks.js:245 -msgid "The Loudness block returns the volume detected by the microphone." +#: js/blocks/ProgramBlocks.js:567 +msgid "The Save-heap block saves the heap to a file." msgstr "" -#: js/SensorsBlocks.js:300 -msgid "click" +#: js/blocks/ProgramBlocks.js:578 +#.TRANS: save the heap to a file +msgid "save heap" msgstr "" -#: js/SensorsBlocks.js:306 -msgid "The Click block triggers an event if a mouse has been clicked." +#: js/blocks/ProgramBlocks.js:629 +msgid "The Save-dictionary block saves a dictionary to a file." msgstr "" -#: js/SensorsBlocks.js:313 -msgid "The Click block triggers an event if a turtle has been clicked." +#: js/blocks/ProgramBlocks.js:640 +#.TRANS: save a dictionary to a file +msgid "save dictionary" msgstr "" -#: js/SensorsBlocks.js:342 -msgid "cursor over" +#: js/blocks/ProgramBlocks.js:720 +msgid "The Open palette block opens a palette." msgstr "" -#: js/SensorsBlocks.js:387 -msgid "cursor out" +#: js/blocks/ProgramBlocks.js:727 +msgid "open palette" msgstr "" -#: js/SensorsBlocks.js:433 -msgid "cursor button down" +#: js/blocks/ProgramBlocks.js:785 +msgid "The Delete block block removes a block." msgstr "" -#: js/SensorsBlocks.js:477 -msgid "cursor button up" +#: js/blocks/ProgramBlocks.js:797 +#.TRANS: Move this block to the trash. +msgid "delete block" msgstr "" -#: js/SensorsBlocks.js:638 -msgid "The Get red block returns the red component of the pixel under the mouse." +#: js/blocks/ProgramBlocks.js:861 +msgid "The Move block block moves a block." msgstr "" -#: js/SensorsBlocks.js:644 -msgid "The Get red block returns the red component of the pixel under the turtle." +#: js/blocks/ProgramBlocks.js:869 +#.TRANS: Move the position of a block on the screen. +msgid "move block" msgstr "" -#: js/SensorsBlocks.js:685 -#: plugins/rodi.rtp:216 -msgid "pixel color" +#: js/blocks/ProgramBlocks.js:881 +#: js/blocks/ProgramBlocks.js:1048 +msgid "block number" msgstr "" -#: js/SensorsBlocks.js:690 -msgid "The Get pixel block returns the color of the pixel under the mouse." +#: js/blocks/ProgramBlocks.js:935 +#.TRANS: Run program beginning at this block. +msgid "run block" msgstr "" -#: js/SensorsBlocks.js:696 -msgid "The Get pixel block returns the color of the pixel under the turtle." +#: js/blocks/ProgramBlocks.js:1025 +msgid "The Dock block block connections two blocks." msgstr "" -#: js/SensorsBlocks.js:758 -msgid "time" +#: js/blocks/ProgramBlocks.js:1036 +#.TRANS: We can connect a block to another block. +msgid "connect blocks" msgstr "" -#: js/SensorsBlocks.js:804 -msgid "cursor y" +#: js/blocks/ProgramBlocks.js:1048 +msgid "target block" msgstr "" -#: js/SensorsBlocks.js:809 -msgid "The Cursor Y block returns the vertical position of the mouse." +#: js/blocks/ProgramBlocks.js:1048 +msgid "connection number" msgstr "" -#: js/SensorsBlocks.js:845 -msgid "cursor x" +#: js/blocks/ProgramBlocks.js:1140 +msgid "The Make block block creates a new block." msgstr "" -#: js/SensorsBlocks.js:850 -msgid "The Cursor X block returns the horizontal position of the mouse." +#: js/blocks/ProgramBlocks.js:1152 +#.TRANS: Create a new block +msgid "make block" msgstr "" -#: js/SensorsBlocks.js:886 -msgid "mouse button" +#: js/blocks/ProgramBlocks.js:1285 +msgid "Cannot find block" msgstr "" -#: js/SensorsBlocks.js:888 -msgid "The Mouse-button block returns True if the mouse button is pressed." +#: js/blocks/ProgramBlocks.js:1304 +#: js/blocks/ProgramBlocks.js:1313 +msgid "Warning: block argument type mismatch" msgstr "" -#: js/SensorsBlocks.js:934 -msgid "to ASCII" +#: js/blocks/ProgramBlocks.js:1347 +msgid "The Open project block is used to open a project from a web page." msgstr "" -#: js/SensorsBlocks.js:938 -msgid "The To ASCII block converts numbers to letters." +#: js/blocks/ProgramBlocks.js:1357 +msgid "open project" msgstr "" -#: js/SensorsBlocks.js:1005 -msgid "The Keyboard block returns computer keyboard input." +#: js/blocks/ProgramBlocks.js:1410 +msgid "Please enter a valid URL." msgstr "" -#: js/IntervalsActions.js:216 -msgid "Adding missing pitch number 0." +#: js/blocks/ToneBlocks.js:34 +msgid "oscillator" msgstr "" -#: js/IntervalsActions.js:224 -msgid "Ignoring pitch numbers less than zero or greater than eleven." +#: js/blocks/ToneBlocks.js:42 +#: js/blocks/WidgetBlocks.js:179 +#: js/widgets/timbre.js:1558 +#: js/widgets/timbre.js:1808 +#.TRANS: there are different types (sine, triangle, square...) of oscillators. +#.TRANS: type of filter, e.g., lowpass, highpass, etc. +msgid "type" msgstr "" -#: js/IntervalsActions.js:230 -msgid "Ignoring duplicate pitch numbers." +#: js/blocks/ToneBlocks.js:44 +#: js/widgets/timbre.js:1562 +#.TRANS: Partials refers to the number of sine waves combined into the sound. +msgid "partials" msgstr "" -#: js/PitchActions.js:88 -msgid "The Scalar Step Block must be used inside of a Note Block." +#: js/blocks/ToneBlocks.js:76 +msgid "You are adding multiple oscillator blocks." msgstr "" -#: js/PitchActions.js:107 -msgid "The Scalar Step Block must be preceded by a Pitch Block." +#: js/blocks/ToneBlocks.js:144 +#: js/widgets/timbre.js:1225 +#.TRANS: a duo synthesizer combines a synth with a sequencer +msgid "duo synth" msgstr "" -#: js/DrumActions.js:231 -msgid "Noise Block: Did you mean to use a Note block?" +#: js/blocks/ToneBlocks.js:149 +msgid "The Duo synth block is a duo-frequency modulator used to define a timbre." msgstr "" -#: js/MeterActions.js:101 -#: js/MeterActions.js:139 -msgid "beats per minute must be greater than" +#: js/blocks/ToneBlocks.js:157 +#: js/widgets/timbre.js:1476 +msgid "vibrato rate" msgstr "" -#: js/MeterActions.js:111 -#: js/MeterActions.js:149 -msgid "maximum" +#: js/blocks/ToneBlocks.js:157 +msgid "vibrato intensity" msgstr "" -#: js/MeterActions.js:117 -#: js/MeterActions.js:155 -msgid "beats per minute is" +#: js/blocks/ToneBlocks.js:185 +#: js/widgets/timbre.js:1221 +#.TRANS: AM (amplitude modulation) synthesizer +msgid "AM synth" msgstr "" -#: js/ToneActions.js:134 -msgid "Vibrato intensity must be between 1 and 100." +#: js/blocks/ToneBlocks.js:189 +msgid "The AM synth block is an amplitude modulator used to define a timbre." msgstr "" -#: js/ToneActions.js:139 -msgid "Vibrato rate must be greater than 0." +#: js/blocks/ToneBlocks.js:224 +#: js/widgets/timbre.js:1223 +#.TRANS: FM (frequency modulation) synthesizer +msgid "FM synth" msgstr "" -#: js/ToneActions.js:192 -#: js/ToneActions.js:265 -#.TRANS: Depth is the intesity of the tremolo or chorus effect. -msgid "Depth is out of range." +#: js/blocks/ToneBlocks.js:228 +msgid "The FM synth block is a frequency modulator used to define a timbre." msgstr "" -#: js/ToneActions.js:301 -msgid "Distortion must be from 0 to 100." +#: js/blocks/ToneBlocks.js:262 +msgid "partial" msgstr "" -#: js/ToneActions.js:332 -#.TRANS: partials components in a harmonic series -msgid "Partial must be greater than or equal to 0." +#: js/blocks/ToneBlocks.js:265 +msgid "The Partial block is used to specify a weight for a specific partial harmonic." msgstr "" -#: js/ToneActions.js:378 -#: js/ToneActions.js:417 -#: js/ToneActions.js:456 -#: js/timbre.js:782 -msgid "Unable to use synth due to existing oscillator" +#: js/blocks/ToneBlocks.js:284 +#.TRANS: partials are weighted components in a harmonic series +msgid "Partial weight must be between 0 and 1." msgstr "" -#: js/ToneActions.js:388 -#: js/ToneActions.js:427 -msgid "The input cannot be negative." +#: js/blocks/ToneBlocks.js:297 +#.TRANS: partials are weighted components in a harmonic series +msgid "Partial block should be used inside of a Weighted-partials block." msgstr "" -#: js/DictActions.js:75 -#: js/DictActions.js:153 -#: js/DictActions.js:188 -msgid "font" +#: js/blocks/ToneBlocks.js:325 +#.TRANS: partials are weighted components in a harmonic series +msgid "weighted partials" msgstr "" -#: js/musicutils.js:363 -#: js/musicutils.js:471 -#: js/pitchdrummatrix.js:151 -#: js/musickeyboard.js:2563 -msgid "rest" +#: js/blocks/ToneBlocks.js:383 +msgid "The Harmonic block will add harmonics to the contained notes." msgstr "" -#: js/musicutils.js:565 -#.TRANS: ordinal number. Please keep exactly one space between each number. -msgid "1st 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th" +#: js/blocks/ToneBlocks.js:390 +#.TRANS: A harmonic is an overtone. +msgid "harmonic" msgstr "" -#: js/musicutils.js:629 -#: js/musicutils.js:812 -#: js/musicutils.js:911 -#.TRANS: augmented is a music term related to intervals -msgid "augmented" +#: js/blocks/ToneBlocks.js:431 +msgid "The Distortion block adds distortion to the pitch." msgstr "" -#: js/musicutils.js:631 -#: js/musicutils.js:813 -#: js/musicutils.js:910 -#.TRANS: diminished is a music term related to intervals and mode -msgid "diminished" +#: js/blocks/ToneBlocks.js:438 +#: js/widgets/timbre.js:2100 +#.TRANS: distortion is an alteration in the sound +msgid "distortion" msgstr "" -#: js/musicutils.js:639 -#.TRANS: twelve semi-tone scale for music -msgid "chromatic" +#: js/blocks/ToneBlocks.js:487 +msgid "The Tremolo block adds a wavering effect." msgstr "" -#: js/musicutils.js:640 -msgid "algerian" +#: js/blocks/ToneBlocks.js:495 +#: js/widgets/timbre.js:2092 +#.TRANS: a wavering effect in a musical tone +msgid "tremolo" msgstr "" -#: js/musicutils.js:641 -msgid "spanish" +#: js/blocks/ToneBlocks.js:500 +#: js/blocks/ToneBlocks.js:569 +#: js/blocks/ToneBlocks.js:630 +#: js/blocks/ToneBlocks.js:689 +#: js/widgets/timbre.js:2134 +#: js/widgets/timbre.js:2222 +#: js/widgets/timbre.js:2317 +#: js/widgets/timbre.js:2419 +#.TRANS: rate at which tremolo wavers +msgid "rate" msgstr "" -#: js/musicutils.js:643 -#.TRANS: modal scale in music -msgid "octatonic" +#: js/blocks/ToneBlocks.js:502 +#: js/blocks/ToneBlocks.js:630 +#: js/widgets/timbre.js:2137 +#: js/widgets/timbre.js:2328 +#.TRANS: amplitude of tremolo waver +msgid "depth" msgstr "" -#: js/musicutils.js:645 -#.TRANS: harmonic major scale in music -msgid "harmonic major" +#: js/blocks/ToneBlocks.js:559 +msgid "The Phaser block adds a sweeping sound." msgstr "" -#: js/musicutils.js:647 -#.TRANS: natural minor scales in music -msgid "natural minor" +#: js/blocks/ToneBlocks.js:566 +#: js/widgets/timbre.js:2098 +#.TRANS: alter the phase of the sound +msgid "phaser" msgstr "" -#: js/musicutils.js:649 -#.TRANS: harmonic minor scale in music -msgid "harmonic minor" +#: js/blocks/ToneBlocks.js:569 +#: js/turtleactions/IntervalsActions.js:114 +#: js/widgets/timbre.js:2422 +msgid "octaves" msgstr "" -#: js/musicutils.js:651 -#.TRANS: melodic minor scale in music -msgid "melodic minor" +#: js/blocks/ToneBlocks.js:569 +#: js/widgets/timbre.js:2425 +msgid "base frequency" msgstr "" -#: js/musicutils.js:655 -#.TRANS: modal scale for music -msgid "dorian" +#: js/blocks/ToneBlocks.js:619 +msgid "The Chorus block adds a chorus effect." msgstr "" -#: js/musicutils.js:657 -#.TRANS: modal scale for music -msgid "phrygian" +#: js/blocks/ToneBlocks.js:627 +#: js/widgets/timbre.js:2096 +#.TRANS: musical effect to simulate a choral sound +msgid "chorus" msgstr "" -#: js/musicutils.js:659 -#.TRANS: modal scale for music -msgid "lydian" +#: js/blocks/ToneBlocks.js:630 +msgid "delay" msgstr "" -#: js/musicutils.js:661 -#.TRANS: modal scale for music -msgid "mixolydian" +#: js/blocks/ToneBlocks.js:678 +msgid "The Vibrato block adds a rapid, slight variation in pitch." msgstr "" -#: js/musicutils.js:665 -#.TRANS: modal scale for music -msgid "locrian" +#: js/blocks/ToneBlocks.js:686 +#: js/widgets/timbre.js:2094 +#.TRANS: a rapid, slight variation in pitch +msgid "vibrato" msgstr "" -#: js/musicutils.js:667 -#.TRANS: minor jazz scale for music -msgid "jazz minor" +#: js/blocks/ToneBlocks.js:689 +#: js/widgets/timbre.js:2221 +msgid "intensity" msgstr "" -#: js/musicutils.js:669 -#.TRANS: bebop scale for music -msgid "bebop" +#: js/blocks/ToneBlocks.js:733 +#.TRANS: select synthesizer +msgid "set synth" msgstr "" -#: js/musicutils.js:670 -msgid "arabic" +#: js/blocks/ToneBlocks.js:804 +msgid "synth name" msgstr "" -#: js/musicutils.js:671 -msgid "byzantine" +#: js/blocks/ToneBlocks.js:842 +msgid "set default instrument" msgstr "" -#: js/musicutils.js:673 -#.TRANS: musical scale for music by Verdi -msgid "enigmatic" +#: js/blocks/ToneBlocks.js:895 +#: js/blocks/ToneBlocks.js:943 +#.TRANS: set the characteristics of a custom instrument +msgid "set instrument" msgstr "" -#: js/musicutils.js:674 -msgid "ethiopian" +#: js/blocks/ToneBlocks.js:898 +#: js/blocks/ToneBlocks.js:926 +#: js/blocks/ToneBlocks.js:932 +msgid "The Set instrument block selects a voice for the synthesizer," msgstr "" -#: js/musicutils.js:676 -#.TRANS: Ethiopic scale for music -msgid "geez" +#: js/blocks/ToneBlocks.js:900 +#: js/blocks/ToneBlocks.js:934 +msgid "eg guitar piano violin or cello." msgstr "" -#: js/musicutils.js:677 -msgid "hindu" +#: js/blocks/ToneBlocks.js:1015 +msgid "Import a sound file to use as an instrument and set its pitch center." msgstr "" -#: js/musicutils.js:678 -msgid "hungarian" +#: js/blocks/ToneBlocks.js:1110 +msgid "Upload a sound file to connect with the sample block." msgstr "" -#: js/musicutils.js:680 -#.TRANS: minor Romanian scale for music -msgid "romanian minor" +#: js/blocks/VolumeBlocks.js:35 +msgid "synth volume" msgstr "" -#: js/musicutils.js:681 -msgid "spanish gypsy" +#: js/blocks/VolumeBlocks.js:39 +msgid "The Synth volume block returns the current volume of the current synthesizer." msgstr "" -#: js/musicutils.js:683 -#.TRANS: musical scale for Mid-Eastern music -msgid "maqam" +#: js/blocks/VolumeBlocks.js:105 +msgid "master volume" msgstr "" -#: js/musicutils.js:685 -#.TRANS: minor blues scale for music -msgid "minor blues" +#: js/blocks/VolumeBlocks.js:109 +msgid "The Master volume block returns the master volume." msgstr "" -#: js/musicutils.js:687 -#.TRANS: major blues scale for music -msgid "major blues" +#: js/blocks/VolumeBlocks.js:355 +#: js/blocks/VolumeBlocks.js:524 +msgid "set synth volume" msgstr "" -#: js/musicutils.js:688 -msgid "whole tone" +#: js/blocks/VolumeBlocks.js:362 +#: js/blocks/VolumeBlocks.js:545 +msgid "synth" msgstr "" -#: js/musicutils.js:690 -#.TRANS: pentatonic is a general term that means "five note scale". This scale is typically known as "minor pentatonic" -msgid "minor pentatonic" +#: js/blocks/VolumeBlocks.js:403 +#: js/blocks/VolumeBlocks.js:577 +#: js/blocks/VolumeBlocks.js:740 +#: js/turtleactions/VolumeActions.js:173 +msgid "Setting volume to 0." msgstr "" -#: js/musicutils.js:692 -#.TRANS: pentatonic is a general term that means "five note scale". This scale is typically known as "major pentatonic" -msgid "major pentatonic" +#: js/blocks/VolumeBlocks.js:440 +msgid "Synth not found" msgstr "" -#: js/musicutils.js:693 -msgid "chinese" +#: js/blocks/VolumeBlocks.js:494 +msgid "set drum volume" msgstr "" -#: js/musicutils.js:694 -msgid "egyptian" +#: js/blocks/VolumeBlocks.js:530 +msgid "The Set synth volume block will change the volume of a particular synth," msgstr "" -#: js/musicutils.js:696 -#.TRANS: https://en.wikipedia.org/wiki/Hirajoshi_scale NOTE: There are three different versions of this scale -msgid "hirajoshi" +#: js/blocks/VolumeBlocks.js:532 +msgid "eg guitar violin snare drum etc." msgstr "" -#: js/musicutils.js:697 -msgid "Japan" +#: js/blocks/VolumeBlocks.js:534 +msgid "The default volume is 50." msgstr "" -#: js/musicutils.js:699 -#.TRANS: https://en.wikipedia.org/wiki/In_scale and https://en.wikipedia.org/wiki/Sakura_Sakura -msgid "in" +#: js/blocks/VolumeBlocks.js:536 +msgid "The range is 0 for silence to 100 for full volume." msgstr "" -#: js/musicutils.js:701 -#.TRANS: https://en.wikipedia.org/wiki/Miny%C5%8D_scale -msgid "minyo" +#: js/blocks/VolumeBlocks.js:597 +msgid "set panning" msgstr "" -#: js/musicutils.js:703 -#.TRANS: Italian mathematician -msgid "fibonacci" +#: js/blocks/VolumeBlocks.js:603 +msgid "The Set Panning block sets the panning for all synthesizers." msgstr "" -#: js/musicutils.js:708 -#: js/musicutils.js:1106 -#.TRANS: lowpass filter -msgid "lowpass" +#: js/blocks/VolumeBlocks.js:625 +msgid "Warning: Sound is coming out from only the left or right side." msgstr "" -#: js/musicutils.js:710 -#: js/musicutils.js:1107 -#.TRANS: bandpass filter -msgid "bandpass" +#: js/blocks/VolumeBlocks.js:647 +#: js/blocks/VolumeBlocks.js:695 +msgid "set master volume" msgstr "" -#: js/musicutils.js:712 -#: js/musicutils.js:1108 -#.TRANS: high-shelf filter -msgid "highshelf" +#: js/blocks/VolumeBlocks.js:653 +msgid "The Set master volume block sets the volume for all synthesizers." msgstr "" -#: js/musicutils.js:714 -#: js/musicutils.js:1109 -#.TRANS: low-shelf filter -msgid "lowshelf" +#: js/blocks/VolumeBlocks.js:784 +msgid "The Set relative volume block changes the volume of the contained notes." msgstr "" -#: js/musicutils.js:716 -#: js/musicutils.js:1110 -#.TRANS: notch-shelf filter -msgid "notch" +#: js/blocks/VolumeBlocks.js:791 +msgid "set relative volume" msgstr "" -#: js/musicutils.js:718 -#: js/musicutils.js:1111 -#.TRANS: all-pass filter -msgid "allpass" +#: js/blocks/VolumeBlocks.js:857 +msgid "decrescendo" msgstr "" -#: js/musicutils.js:720 -#: js/musicutils.js:1112 -#.TRANS: peaking filter -msgid "peaking" +#: js/blocks/VolumeBlocks.js:921 +msgid "crescendo" msgstr "" -#: js/musicutils.js:731 -#: js/synthutils.js:58 -#.TRANS: musical instrument -msgid "violin" +#: js/blocks/WidgetBlocks.js:81 +#.TRANS: sound envelope (ADSR) +msgid "envelope" msgstr "" -#: js/musicutils.js:732 -#: js/synthutils.js:60 -#.TRANS: viola musical instrument -msgid "viola" +#: js/blocks/WidgetBlocks.js:89 +#.TRANS: Attack time is the time taken for initial run-up of level from nil to peak, beginning when the key is first pressed. +msgid "attack" msgstr "" -#: js/musicutils.js:733 -#: js/synthutils.js:98 -#.TRANS: xylophone musical instrument -msgid "xylophone" +#: js/blocks/WidgetBlocks.js:91 +#.TRANS: Decay time is the time taken for the subsequent run down from the attack level to the designated sustain level. +msgid "decay" msgstr "" -#: js/musicutils.js:734 -#: js/synthutils.js:120 -#.TRANS: vibraphone musical instrument -msgid "vibraphone" +#: js/blocks/WidgetBlocks.js:93 +#.TRANS: Sustain level is the level during the main sequence of the sound's duration, until the key is released. +msgid "sustain" msgstr "" -#: js/musicutils.js:735 -#: js/synthutils.js:62 -#.TRANS: musical instrument -msgid "cello" +#: js/blocks/WidgetBlocks.js:95 +#.TRANS: Release time is the time taken for the level to decay from the sustain level to zero after the key is released. +msgid "release" msgstr "" -#: js/musicutils.js:737 -#: js/synthutils.js:66 -#.TRANS: viola musical instrument -msgid "double bass" +#: js/blocks/WidgetBlocks.js:113 +msgid "Attack value should be from 0 to 100." msgstr "" -#: js/musicutils.js:738 -#: js/synthutils.js:68 -#: js/rhythmruler.js:2119 -#.TRANS: musical instrument -msgid "guitar" +#: js/blocks/WidgetBlocks.js:116 +msgid "Decay value should be from 0 to 100." msgstr "" -#: js/musicutils.js:739 -#: js/synthutils.js:70 -#.TRANS: musical instrument -msgid "acoustic guitar" +#: js/blocks/WidgetBlocks.js:119 +msgid "Sustain value should be from 0 to 100." msgstr "" -#: js/musicutils.js:740 -#: js/synthutils.js:72 -#.TRANS: musical instrument -msgid "flute" +#: js/blocks/WidgetBlocks.js:122 +msgid "Release value should be from 0-100." msgstr "" -#: js/musicutils.js:741 -#: js/synthutils.js:74 -#.TRANS: musical instrument -msgid "clarinet" +#: js/blocks/WidgetBlocks.js:140 +msgid "You are adding multiple envelope blocks." msgstr "" -#: js/musicutils.js:742 -#: js/synthutils.js:76 -#.TRANS: musical instrument -msgid "saxophone" +#: js/blocks/WidgetBlocks.js:171 +#.TRANS: a filter removes some unwanted components from a signal +msgid "filter" msgstr "" -#: js/musicutils.js:743 -#: js/synthutils.js:78 -#.TRANS: musical instrument -msgid "tuba" +#: js/blocks/WidgetBlocks.js:181 +#: js/widgets/timbre.js:1818 +#.TRANS: rolloff is the steepness of a change in frequency. +msgid "rolloff" msgstr "" -#: js/musicutils.js:744 -#: js/synthutils.js:80 -#.TRANS: musical instrument -msgid "trumpet" +#: js/blocks/WidgetBlocks.js:213 +#.TRANS: rolloff is the steepness of a change in frequency. +msgid "Rolloff value should be either -12, -24, -48, or -96 decibels/octave." msgstr "" -#: js/musicutils.js:745 -#: js/synthutils.js:82 -#.TRANS: musical instrument -msgid "oboe" +#: js/blocks/WidgetBlocks.js:252 +msgid "The Temperament tool is used to define custom tuning." msgstr "" -#: js/musicutils.js:746 -#: js/synthutils.js:84 -#.TRANS: musical instrument -msgid "trombone" +#: js/blocks/WidgetBlocks.js:332 +#: js/blocks/WidgetBlocks.js:1573 +#: js/widgets/sampler.js:547 +msgid "Upload a sample and adjust its pitch center." msgstr "" -#: js/musicutils.js:747 -#: js/synthutils.js:100 -#.TRANS: polytone synthesizer -msgid "electronic synth" +#: js/blocks/WidgetBlocks.js:339 +#.TRANS: the speed at music is should be played. +msgid "sampler" msgstr "" -#: js/musicutils.js:748 -#: js/synthutils.js:102 -#.TRANS: simple monotone synthesizer -msgid "simple 1" +#: js/blocks/WidgetBlocks.js:517 +msgid "The Meter block opens a tool to select strong beats for the meter." msgstr "" -#: js/musicutils.js:749 -msgid "simple 2" +#: js/blocks/WidgetBlocks.js:573 +msgid "The oscilloscope block opens a tool to visualize waveforms." msgstr "" -#: js/musicutils.js:750 -msgid "simple 3" +#: js/blocks/WidgetBlocks.js:578 +msgid "oscilloscope" msgstr "" -#: js/musicutils.js:751 -msgid "simple 4" +#: js/blocks/WidgetBlocks.js:645 +msgid "The Custom mode block opens a tool to explore musical mode (the spacing of the notes in a scale)." msgstr "" -#: js/musicutils.js:753 -#: js/synthutils.js:49 -#.TRANS: brown noise synthesizer -msgid "brown noise" +#: js/blocks/WidgetBlocks.js:651 +#.TRANS: musical mode is the pattern of half-steps in an octave, e.g., Major or Minor modes +msgid "custom mode" msgstr "" -#: js/musicutils.js:754 -#: js/synthutils.js:51 -#.TRANS: pink noise synthesizer -msgid "pink noise" +#: js/blocks/WidgetBlocks.js:700 +msgid "The Tempo block opens a metronome to visualize the beat." msgstr "" -#: js/musicutils.js:756 -#: js/synthutils.js:127 -#: js/rhythmruler.js:1670 -#: js/rhythmruler.js:1928 -#.TRANS: musical instrument -msgid "snare drum" +#: js/blocks/WidgetBlocks.js:762 +msgid "The Arpeggio Widget is used to compose chord sequences." msgstr "" -#: js/musicutils.js:757 -#: js/synthutils.js:129 -#.TRANS: musical instrument -msgid "kick drum" +#: js/blocks/WidgetBlocks.js:837 +msgid "The Pitch drum matrix is used to map pitches to drum sounds." msgstr "" -#: js/musicutils.js:758 -#: js/synthutils.js:131 -#.TRANS: musical instrument -msgid "tom tom" +#: js/blocks/WidgetBlocks.js:842 +#.TRANS: makes a mapping between pitches and drum sounds +msgid "pitch-drum mapper" msgstr "" -#: js/musicutils.js:759 -#: js/synthutils.js:133 -#.TRANS: musical instrument -msgid "floor tom" +#: js/blocks/WidgetBlocks.js:891 +msgid "You must have at least one pitch block and one drum block in the matrix." msgstr "" -#: js/musicutils.js:760 -#: js/synthutils.js:135 -#.TRANS: musical instrument -msgid "bass drum" +#: js/blocks/WidgetBlocks.js:920 +msgid "The Pitch slider tool to is used to generate pitches at selected frequencies." msgstr "" -#: js/musicutils.js:761 -#: js/synthutils.js:137 -#.TRANS: a drum made from an inverted cup -msgid "cup drum" +#: js/blocks/WidgetBlocks.js:925 +#.TRANS: widget to generate pitches using a slider +msgid "pitch slider" msgstr "" -#: js/musicutils.js:762 -#: js/synthutils.js:139 -#.TRANS: musical instrument -msgid "darbuka drum" +#: js/blocks/WidgetBlocks.js:977 +msgid "chromatic keyboard" msgstr "" -#: js/musicutils.js:763 -#: js/synthutils.js:143 -#.TRANS: musical instrument -msgid "hi hat" +#: js/blocks/WidgetBlocks.js:1011 +#: js/blocks/WidgetBlocks.js:1077 +#.TRANS: widget to generate pitches using a slider +msgid "music keyboard" msgstr "" -#: js/musicutils.js:764 -#: js/synthutils.js:145 -#.TRANS: a small metal bell -msgid "ride bell" +#: js/blocks/WidgetBlocks.js:1062 +#: js/blocks/WidgetBlocks.js:1069 +msgid "The Music keyboard block opens a piano keyboard that can be used to create notes." msgstr "" -#: js/musicutils.js:765 -#: js/synthutils.js:147 -#.TRANS: musical instrument -msgid "cow bell" +#: js/blocks/WidgetBlocks.js:1128 +msgid "The Pitch staircase tool to is used to generate pitches from a given ratio." msgstr "" -#: js/musicutils.js:766 -msgid "japanese drum" +#: js/blocks/WidgetBlocks.js:1135 +#.TRANS: generate a progressive sequence of pitches +msgid "pitch staircase" msgstr "" -#: js/musicutils.js:767 -#: js/synthutils.js:153 -#.TRANS: musical instrument -msgid "japanese bell" +#: js/blocks/WidgetBlocks.js:1222 +msgid "The Rhythm Maker block opens a tool to create drum machines." msgstr "" -#: js/musicutils.js:768 -#: js/synthutils.js:149 -#.TRANS: musical instrument -msgid "triangle bell" +#: js/blocks/WidgetBlocks.js:1291 +msgid "G major scale" msgstr "" -#: js/musicutils.js:769 -#: js/synthutils.js:151 -#.TRANS: musical instrument -msgid "finger cymbals" +#: js/blocks/WidgetBlocks.js:1326 +msgid "C major scale" msgstr "" -#: js/musicutils.js:770 -#: js/synthutils.js:155 -#.TRANS: a musically tuned set of bells -msgid "chime" +#: js/blocks/WidgetBlocks.js:1366 +msgid "The Phrase Maker block opens a tool to create musical phrases." msgstr "" -#: js/musicutils.js:771 -#: js/synthutils.js:157 -#.TRANS: a musical instrument -msgid "gong" +#: js/blocks/WidgetBlocks.js:1373 +#.TRANS: assigns pitch to a sequence of beats to generate a melody +msgid "phrase maker" msgstr "" -#: js/musicutils.js:772 -#: js/synthutils.js:159 -#.TRANS: sound effect -msgid "clang" +#: js/blocks/WidgetBlocks.js:1444 +msgid "You must have at least one pitch block and one rhythm block in the matrix." msgstr "" -#: js/musicutils.js:773 -#: js/synthutils.js:161 -#.TRANS: sound effect -msgid "crash" +#: js/blocks/WidgetBlocks.js:1503 +msgid "The Status block opens a tool for inspecting the status of Music Blocks as it is running." msgstr "" -#: js/musicutils.js:774 -#: js/synthutils.js:163 -#.TRANS: sound effect -msgid "bottle" +#: js/blocks/WidgetBlocks.js:1580 +#.TRANS: AI-generated music +msgid "aimusic" msgstr "" -#: js/musicutils.js:775 -#: js/synthutils.js:165 -#.TRANS: sound effect -msgid "clap" +#: js/turtleactions/MeterActions.js:101 +#: js/turtleactions/MeterActions.js:139 +msgid "beats per minute must be greater than" msgstr "" -#: js/musicutils.js:776 -#: js/synthutils.js:167 -#.TRANS: sound effect -msgid "slap" +#: js/turtleactions/MeterActions.js:111 +#: js/turtleactions/MeterActions.js:149 +msgid "maximum" msgstr "" -#: js/musicutils.js:777 -#: js/synthutils.js:169 -#.TRANS: sound effect -msgid "splash" +#: js/turtleactions/MeterActions.js:117 +#: js/turtleactions/MeterActions.js:155 +msgid "beats per minute is" msgstr "" -#: js/musicutils.js:778 -#: js/synthutils.js:171 -#.TRANS: sound effect -msgid "bubbles" +#: js/turtleactions/DictActions.js:75 +#: js/turtleactions/DictActions.js:142 +#: js/turtleactions/DictActions.js:172 +msgid "font" msgstr "" -#: js/musicutils.js:779 -#: js/synthutils.js:173 -#.TRANS: sound effect -msgid "raindrop" +#: js/turtleactions/DictActions.js:255 +msgid "Dictionary with this name does not exist" msgstr "" -#: js/musicutils.js:780 -#: js/synthutils.js:175 -#.TRANS: animal sound effect -msgid "cat" +#: js/turtleactions/DictActions.js:259 +msgid "Key with this name does not exist in " msgstr "" -#: js/musicutils.js:781 -#: js/synthutils.js:177 -#.TRANS: animal sound effect -msgid "cricket" +#: js/turtleactions/DrumActions.js:227 +msgid "Noise Block: Did you mean to use a Note block?" msgstr "" -#: js/musicutils.js:782 -#: js/synthutils.js:179 -#.TRANS: animal sound effect -msgid "dog" +#: js/turtleactions/IntervalsActions.js:113 +msgid "one" msgstr "" -#: js/musicutils.js:784 -#: js/synthutils.js:86 -#.TRANS: musical instrument -msgid "banjo" +#: js/turtleactions/IntervalsActions.js:113 +msgid "two" msgstr "" -#: js/musicutils.js:785 -#: js/synthutils.js:88 -#.TRANS: musical instrument -msgid "koto" +#: js/turtleactions/IntervalsActions.js:113 +msgid "three" msgstr "" -#: js/musicutils.js:786 -#: js/synthutils.js:90 -#.TRANS: musical instrument -msgid "dulcimer" +#: js/turtleactions/IntervalsActions.js:113 +msgid "four" msgstr "" -#: js/musicutils.js:787 -#: js/synthutils.js:92 -#.TRANS: musical instrument -msgid "electric guitar" +#: js/turtleactions/IntervalsActions.js:113 +msgid "five" msgstr "" -#: js/musicutils.js:788 -#: js/synthutils.js:94 -#.TRANS: musical instrument -msgid "bassoon" +#: js/turtleactions/IntervalsActions.js:113 +msgid "six" msgstr "" -#: js/musicutils.js:789 -#: js/synthutils.js:96 -#.TRANS: musical instrument -msgid "celeste" +#: js/turtleactions/IntervalsActions.js:113 +msgid "seven" msgstr "" -#: js/musicutils.js:791 -#: js/musicutils.js:1123 -#: js/musicutils.js:1131 -#: js/temperament.js:650 -#.TRANS: musical temperament -msgid "equal" +#: js/turtleactions/IntervalsActions.js:113 +msgid "eight" msgstr "" -#: js/musicutils.js:793 -#: js/musicutils.js:1125 -#: js/musicutils.js:1133 -#.TRANS: musical temperament -msgid "Pythagorean" +#: js/turtleactions/IntervalsActions.js:113 +msgid "nine" msgstr "" -#: js/musicutils.js:795 -#: js/musicutils.js:1124 -#: js/musicutils.js:1132 -#.TRANS: musical temperament -msgid "just intonation" +#: js/turtleactions/IntervalsActions.js:119 +msgid "a" msgstr "" -#: js/musicutils.js:797 -#: js/musicutils.js:1126 -#: js/musicutils.js:1127 -#: js/musicutils.js:1134 -#: js/musicutils.js:1135 -#.TRANS: musical temperament -msgid "meantone" +#: js/turtleactions/IntervalsActions.js:120 +msgid "below" msgstr "" -#: js/musicutils.js:814 -msgid "major 7th" +#: js/turtleactions/IntervalsActions.js:124 +msgid "above" msgstr "" -#: js/musicutils.js:815 -msgid "minor 7th" +#: js/turtleactions/IntervalsActions.js:131 +msgid "plus" msgstr "" -#: js/musicutils.js:816 -msgid "dominant 7th" +#: js/turtleactions/IntervalsActions.js:139 +msgid " below" msgstr "" -#: js/musicutils.js:817 -msgid "minor-major 7th" +#: js/turtleactions/IntervalsActions.js:257 +msgid "Adding missing pitch number 0." msgstr "" -#: js/musicutils.js:818 -msgid "fully-diminished 7th" +#: js/turtleactions/IntervalsActions.js:265 +msgid "Ignoring pitch numbers less than zero or greater than eleven." msgstr "" -#: js/musicutils.js:819 -msgid "half-diminished 7th" +#: js/turtleactions/IntervalsActions.js:271 +msgid "Ignoring duplicate pitch numbers." msgstr "" -#: js/musicutils.js:4379 -#: js/musicutils.js:4416 -msgid "current" +#: js/turtleactions/ToneActions.js:134 +msgid "Vibrato intensity must be between 1 and 100." msgstr "" -#: js/musicutils.js:4382 -#: js/musicutils.js:4407 -msgid "next" +#: js/turtleactions/ToneActions.js:139 +msgid "Vibrato rate must be greater than 0." msgstr "" -#: js/musicutils.js:4385 -#: js/musicutils.js:4412 -msgid "previous" +#: js/turtleactions/ToneActions.js:192 +#: js/turtleactions/ToneActions.js:265 +#.TRANS: Depth is the intesity of the tremolo or chorus effect. +msgid "Depth is out of range." msgstr "" -#: js/synthutils.js:104 -#.TRANS: simple monotone synthesizer -msgid "simple-2" +#: js/turtleactions/ToneActions.js:301 +msgid "Distortion must be from 0 to 100." msgstr "" -#: js/synthutils.js:106 -#.TRANS: simple monotone synthesizer -msgid "simple-3" +#: js/turtleactions/ToneActions.js:332 +#.TRANS: partials components in a harmonic series +msgid "Partial must be greater than or equal to 0." msgstr "" -#: js/synthutils.js:108 -#.TRANS: simple monotone synthesizer -msgid "simple-4" +#: js/turtleactions/ToneActions.js:378 +#: js/turtleactions/ToneActions.js:417 +#: js/turtleactions/ToneActions.js:456 +#: js/widgets/timbre.js:782 +msgid "Unable to use synth due to existing oscillator" msgstr "" -#: js/synthutils.js:141 -#.TRANS: musical instrument -msgid "taiko" +#: js/turtleactions/ToneActions.js:388 +#: js/turtleactions/ToneActions.js:427 +msgid "The input cannot be negative." msgstr "" -#: js/modewidget.js:86 -#: js/modewidget.js:88 -#: js/modewidget.js:642 -#: js/modewidget.js:644 -#: js/modewidget.js:712 -#: js/modewidget.js:714 -#: js/temperament.js:2078 -#: js/rhythmruler.js:189 -#: js/rhythmruler.js:1410 -#: js/rhythmruler.js:1412 -#: js/rhythmruler.js:1435 -#: js/rhythmruler.js:1437 -#: js/meterwidget.js:89 -#: js/meterwidget.js:91 +#: js/widgets/modewidget.js:86 +#: js/widgets/modewidget.js:88 +#: js/widgets/modewidget.js:642 +#: js/widgets/modewidget.js:644 +#: js/widgets/modewidget.js:712 +#: js/widgets/modewidget.js:714 +#: js/widgets/meterwidget.js:194 +#: js/widgets/meterwidget.js:196 +#: js/widgets/temperament.js:2236 +#: js/widgets/rhythmruler.js:457 +#: js/widgets/rhythmruler.js:1790 +#: js/widgets/rhythmruler.js:1792 +#: js/widgets/rhythmruler.js:1816 +#: js/widgets/rhythmruler.js:1818 msgid "Play all" msgstr "" -#: js/modewidget.js:115 -#: js/pitchstaircase.js:641 -#: js/phrasemaker.js:339 -#: js/pitchdrummatrix.js:94 -#: js/pitchslider.js:125 -#: js/temperament.js:2083 -#: js/musickeyboard.js:530 -#: js/timbre.js:756 -#: js/meterwidget.js:124 -#: js/arpeggio.js:103 +#: js/widgets/modewidget.js:115 +#: js/widgets/meterwidget.js:229 +#: js/widgets/pitchdrummatrix.js:166 +#: js/widgets/pitchslider.js:125 +#: js/widgets/pitchstaircase.js:641 +#: js/widgets/temperament.js:2244 +#: js/widgets/timbre.js:756 +#: js/widgets/arpeggio.js:103 +#: js/widgets/musickeyboard.js:688 +#: js/widgets/phrasemaker.js:550 msgid "Save" msgstr "" -#: js/modewidget.js:121 -#: js/pitchstaircase.js:686 -#: js/phrasemaker.js:356 -#: js/pitchdrummatrix.js:109 -#: js/musickeyboard.js:534 -#: js/rhythmruler.js:269 -#: js/arpeggio.js:118 +#: js/widgets/modewidget.js:121 +#: js/widgets/pitchdrummatrix.js:181 +#: js/widgets/pitchstaircase.js:686 +#: js/widgets/arpeggio.js:118 +#: js/widgets/musickeyboard.js:696 +#: js/widgets/phrasemaker.js:567 +#: js/widgets/rhythmruler.js:601 #.TRANS: clear all subdivisions from the ruler. msgid "Clear" msgstr "" -#: js/modewidget.js:127 +#: js/widgets/modewidget.js:127 msgid "Rotate counter clockwise" msgstr "" -#: js/modewidget.js:133 +#: js/widgets/modewidget.js:133 msgid "Rotate clockwise" msgstr "" -#: js/modewidget.js:139 +#: js/widgets/modewidget.js:139 msgid "Invert" msgstr "" -#: js/modewidget.js:145 -#: js/pitchstaircase.js:678 -#: js/rhythmruler.js:258 -#: js/timbre.js:963 +#: js/widgets/modewidget.js:145 +#: js/widgets/pitchstaircase.js:678 +#: js/widgets/timbre.js:963 +#: js/widgets/rhythmruler.js:578 msgid "Undo" msgstr "" -#: js/modewidget.js:163 +#: js/widgets/modewidget.js:163 #.TRANS: A circle of notes represents the musical mode. msgid "Click in the circle to select notes for the mode." msgstr "" -#: js/modewidget.js:1017 -#: js/pitchstaircase.js:580 -#: js/phrasemaker.js:4855 -#: js/temperament.js:1754 -#: js/rhythmruler.js:1865 -#: js/rhythmruler.js:2081 -#: js/tempo.js:414 +#: js/widgets/modewidget.js:1017 +#: js/widgets/pitchstaircase.js:580 +#: js/widgets/temperament.js:1929 +#: js/widgets/tempo.js:414 +#: js/widgets/phrasemaker.js:5356 +#: js/widgets/rhythmruler.js:2254 +#: js/widgets/rhythmruler.js:2472 msgid "New action block generated!" msgstr "" -#: js/oscilloscope.js:79 -msgid "Zoom In" -msgstr "" - -#: js/oscilloscope.js:88 -msgid "Zoom Out" -msgstr "" - -#: js/pitchstaircase.js:624 -msgid "Play chord" -msgstr "" - -#: js/pitchstaircase.js:632 -msgid "Play scale" +#: js/widgets/meterwidget.js:275 +msgid "Reset" msgstr "" -#: js/pitchstaircase.js:696 -msgid "Click on a note to create a new step." +#: js/widgets/meterwidget.js:301 +msgid "Click in the circle to select strong beats for the meter." msgstr "" -#: js/phrasemaker.js:363 -msgid "Export" +#: js/widgets/oscilloscope.js:79 +msgid "Zoom In" msgstr "" -#: js/phrasemaker.js:370 -msgid "Sort" +#: js/widgets/oscilloscope.js:88 +msgid "Zoom Out" msgstr "" -#: js/phrasemaker.js:373 -#: js/musickeyboard.js:559 -msgid "Add note" +#: js/widgets/pitchdrummatrix.js:356 +#: js/widgets/pitchdrummatrix.js:752 +msgid "Click in the grid to map notes to drums." msgstr "" -#: js/phrasemaker.js:764 -msgid "Click on the table to add notes." +#: js/widgets/pitchslider.js:103 +msgid "Move up" msgstr "" -#: js/phrasemaker.js:2414 -#: js/phrasemaker.js:2543 -msgid "tuplet value" +#: js/widgets/pitchslider.js:114 +msgid "Move down" msgstr "" -#: js/pitchdrummatrix.js:270 -#: js/pitchdrummatrix.js:639 -msgid "Click in the grid to map notes to drums." +#: js/widgets/pitchslider.js:136 +msgid "Click on the slider to create a note block." msgstr "" -#: js/pitchslider.js:103 -msgid "Move up" +#: js/widgets/pitchstaircase.js:624 +msgid "Play chord" msgstr "" -#: js/pitchslider.js:114 -msgid "Move down" +#: js/widgets/pitchstaircase.js:632 +msgid "Play scale" msgstr "" -#: js/pitchslider.js:136 -msgid "Click on the slider to create a note block." +#: js/widgets/pitchstaircase.js:696 +msgid "Click on a note to create a new step." msgstr "" -#: js/temperament.js:215 +#: js/widgets/temperament.js:321 msgid "back to 2:1 octave space" msgstr "" -#: js/temperament.js:323 +#: js/widgets/temperament.js:447 msgid "edit" msgstr "" -#: js/temperament.js:330 -#: js/temperament.js:332 -#: js/temperament.js:1336 -#: js/temperament.js:1338 +#: js/widgets/temperament.js:454 +#: js/widgets/temperament.js:456 +#: js/widgets/temperament.js:1493 +#: js/widgets/temperament.js:1495 msgid "close" msgstr "" -#: js/temperament.js:423 -#: js/temperament.js:736 -#: js/temperament.js:743 -#: js/temperament.js:845 -#: js/temperament.js:935 -#: js/temperament.js:942 -#: js/temperament.js:1015 -#: js/temperament.js:1284 -#: js/temperament.js:1354 -#: js/temperament.js:1430 +#: js/widgets/temperament.js:552 +#: js/widgets/temperament.js:877 +#: js/widgets/temperament.js:884 +#: js/widgets/temperament.js:986 +#: js/widgets/temperament.js:1080 +#: js/widgets/temperament.js:1087 +#: js/widgets/temperament.js:1160 +#: js/widgets/temperament.js:1433 +#: js/widgets/temperament.js:1511 +#: js/widgets/temperament.js:1596 msgid "done" msgstr "" -#: js/temperament.js:477 -#: js/temperament.js:482 -#: js/temperament.js:918 +#: js/widgets/temperament.js:610 +#: js/widgets/temperament.js:615 +#: js/widgets/temperament.js:1063 msgid "ratio" msgstr "" -#: js/temperament.js:483 +#: js/widgets/temperament.js:616 msgid "interval" msgstr "" -#: js/temperament.js:611 +#: js/widgets/temperament.js:744 msgid "non scalar" msgstr "" -#: js/temperament.js:650 +#: js/widgets/temperament.js:787 msgid "ratios" msgstr "" -#: js/temperament.js:650 +#: js/widgets/temperament.js:787 msgid "arbitrary" msgstr "" -#: js/temperament.js:719 +#: js/widgets/temperament.js:860 msgid "number of divisions" msgstr "" -#: js/temperament.js:741 -#: js/temperament.js:858 -#: js/temperament.js:940 -#: js/temperament.js:1033 +#: js/widgets/temperament.js:882 +#: js/widgets/temperament.js:999 +#: js/widgets/temperament.js:1085 +#: js/widgets/temperament.js:1178 msgid "preview" msgstr "" -#: js/temperament.js:788 +#: js/widgets/temperament.js:929 msgid "The Number of divisions is too large." msgstr "" -#: js/temperament.js:921 +#: js/widgets/temperament.js:1066 msgid "recursion" msgstr "" -#: js/temperament.js:1450 +#: js/widgets/temperament.js:1616 msgid "The octave ratio has changed. This changes temperament significantly." msgstr "" -#: js/temperament.js:2087 +#: js/widgets/temperament.js:2248 msgid "Table" msgstr "" -#: js/temperament.js:2185 +#: js/widgets/temperament.js:2356 msgid "Add pitches" msgstr "" -#: js/musickeyboard.js:570 -msgid "Metronome" +#: js/widgets/tempo.js:78 +#: js/widgets/tempo.js:97 +#: js/widgets/tempo.js:99 +#: js/widgets/aiwidget.js:134 +#: js/widgets/aiwidget.js:136 +#: js/widgets/rhythmruler.js:681 +#: js/widgets/rhythmruler.js:683 +#: js/widgets/rhythmruler.js:1864 +#: js/widgets/rhythmruler.js:1866 +#: js/widgets/sampler.js:180 +#: js/widgets/sampler.js:182 +msgid "Pause" msgstr "" -#: js/musickeyboard.js:1296 -#: plugins/rodi.rtp:193 -msgid "duration" +#: js/widgets/tempo.js:113 +msgid "Save tempo" msgstr "" -#: js/musickeyboard.js:2840 -msgid "New action blocks generated!" +#: js/widgets/tempo.js:144 +msgid "speed up" msgstr "" -#: js/musickeyboard.js:2841 -msgid "New action block generated" +#: js/widgets/tempo.js:150 +msgid "slow down" msgstr "" -#: js/musickeyboard.js:2984 -#: js/musickeyboard.js:2992 -msgid "MIDI device present." +#: js/widgets/tempo.js:194 +msgid "Adjust the tempo with the buttons." msgstr "" -#: js/musickeyboard.js:2995 -msgid "No MIDI device found." +#: js/widgets/tempo.js:261 +msgid "Please enter a number between 30 and 1000" msgstr "" -#: js/musickeyboard.js:3000 -msgid "Failed to get MIDI access in browser." +#: js/widgets/tempo.js:268 +#: js/widgets/tempo.js:271 +msgid "The beats per minute must be between 30 and 1000." msgstr "" -#: js/rhythmruler.js:202 -msgid "Save rhythms" +#: js/widgets/tempo.js:287 +msgid "The beats per minute must be below 1000." msgstr "" -#: js/rhythmruler.js:222 -msgid "Save drum machine" +#: js/widgets/tempo.js:303 +msgid "The beats per minute must be above 30" msgstr "" -#: js/rhythmruler.js:263 -#.TRANS: user can tap out a rhythm by clicking on a ruler. -msgid "Tap a rhythm" +#: js/widgets/timbre.js:766 +msgid "Synthesizer" msgstr "" -#: js/rhythmruler.js:342 -#: js/rhythmruler.js:344 -#: js/rhythmruler.js:1481 -#: js/rhythmruler.js:1483 -#: js/sampler.js:110 -#: js/sampler.js:112 -#: js/tempo.js:78 -#: js/tempo.js:97 -#: js/tempo.js:99 -msgid "Pause" +#: js/widgets/timbre.js:789 +msgid "Oscillator" msgstr "" -#: js/rhythmruler.js:478 -msgid "Click on the ruler to divide it." +#: js/widgets/timbre.js:840 +msgid "Envelope" msgstr "" -#: js/rhythmruler.js:603 -#: js/rhythmruler.js:605 -#: js/rhythmruler.js:804 -#: js/rhythmruler.js:806 -#: js/rhythmruler.js:1386 -#: js/rhythmruler.js:1388 -msgid "tap a rhythm" +#: js/widgets/timbre.js:886 +#: planet/js/GlobalTag.js:50 +#.TRANS: On the Planet, we use labels to tag projects. +msgid "Effects" msgstr "" -#: js/rhythmruler.js:1084 -msgid "Maximum value of 256 has been exceeded." +#: js/widgets/timbre.js:904 +msgid "Filter" msgstr "" -#: js/sampler.js:137 -msgid "Warning: Sample is bigger than 1MB." +#: js/widgets/timbre.js:946 +msgid "Add filter" msgstr "" -#: js/sampler.js:142 -msgid "Upload failed: Sample is not a .wav file." +#: js/widgets/timbre.js:987 +msgid "Click on buttons to open the timbre design tools." msgstr "" -#: js/sampler.js:164 -msgid "A new sample block was generated." +#: js/widgets/timbre.js:1273 +msgid "harmonicity" msgstr "" -#: js/sampler.js:255 -msgid "Upload sample" +#: js/widgets/timbre.js:1340 +#: js/widgets/timbre.js:1406 +msgid "modulation index" msgstr "" -#: js/sampler.js:306 -msgid "Save sample" +#: js/widgets/timbre.js:1484 +msgid "vibrato amount" msgstr "" -#: js/sampler.js:697 -#.TRANS: The reference tone is a sound used for comparison. -msgid "reference tone" +#: js/widgets/timbre.js:1919 +msgid "Filter already present." msgstr "" -#: js/tempo.js:113 -msgid "Save tempo" +#: js/widgets/timbre.js:2322 +msgid "delay (MS)" msgstr "" -#: js/tempo.js:144 -msgid "speed up" +#: js/widgets/timbre.js:2507 +msgid "distortion amount" msgstr "" -#: js/tempo.js:150 -msgid "slow down" +#: js/widgets/aiwidget.js:180 +#: js/widgets/sampler.js:227 +msgid "Warning: Sample is bigger than 1MB." msgstr "" -#: js/tempo.js:194 -msgid "Adjust the tempo with the buttons." +#: js/widgets/aiwidget.js:539 +msgid "New start block generated" msgstr "" -#: js/tempo.js:261 -msgid "Please enter a number between 30 and 1000" +#: js/widgets/aiwidget.js:541 +msgid "MIDI loading. This may take some time depending upon the number of notes in the track" msgstr "" -#: js/tempo.js:268 -#: js/tempo.js:271 -msgid "The beats per minute must be between 30 and 1000." +#: js/widgets/aiwidget.js:551 +#: js/widgets/sampler.js:254 +msgid "Upload failed: Sample is not a .wav file." msgstr "" -#: js/tempo.js:287 -msgid "The beats per minute must be below 1000." +#: js/widgets/aiwidget.js:679 +#: js/widgets/sampler.js:432 +msgid "Save sample" msgstr "" -#: js/tempo.js:303 -msgid "The beats per minute must be above 30" +#: js/widgets/aiwidget.js:701 +msgid "AI Music" msgstr "" -#: js/timbre.js:766 -msgid "Synthesizer" +#: js/widgets/arpeggio.js:239 +msgid "Click in the grid to add steps to the arpeggio." msgstr "" -#: js/timbre.js:789 -msgid "Oscillator" +#: js/widgets/help.js:95 +#: js/widgets/help.js:125 +#: js/widgets/help.js:146 +#: js/widgets/help.js:158 +#: js/widgets/help.js:376 +#: js/widgets/help.js:391 +msgid "Take a tour" msgstr "" -#: js/timbre.js:840 -msgid "Envelope" +#: js/widgets/musickeyboard.js:725 +#: js/widgets/phrasemaker.js:584 +msgid "Add note" msgstr "" -#: js/timbre.js:886 -#: js/GlobalTag.js:50 -#.TRANS: On the Planet, we use labels to tag projects. -msgid "Effects" +#: js/widgets/musickeyboard.js:744 +msgid "Metronome" +msgstr "" + +#: js/widgets/musickeyboard.js:1549 +#: plugins/rodi.rtp:193 +msgid "duration" +msgstr "" + +#: js/widgets/musickeyboard.js:3179 +msgid "New action blocks generated" +msgstr "" + +#: js/widgets/musickeyboard.js:3180 +msgid "New action block generated" msgstr "" -#: js/timbre.js:904 -msgid "Filter" +#: js/widgets/musickeyboard.js:3365 +#: js/widgets/musickeyboard.js:3373 +msgid "MIDI device present." msgstr "" -#: js/timbre.js:946 -msgid "Add filter" +#: js/widgets/musickeyboard.js:3376 +msgid "No MIDI device found." msgstr "" -#: js/timbre.js:987 -msgid "Click on buttons to open the timbre design tools." +#: js/widgets/musickeyboard.js:3386 +msgid "Failed to get MIDI access in browser." msgstr "" -#: js/timbre.js:1273 -msgid "harmonicity" +#: js/widgets/phrasemaker.js:574 +msgid "Export" msgstr "" -#: js/timbre.js:1340 -#: js/timbre.js:1406 -msgid "modulation index" +#: js/widgets/phrasemaker.js:581 +msgid "Sort" msgstr "" -#: js/timbre.js:1484 -msgid "vibrato amount" +#: js/widgets/phrasemaker.js:975 +msgid "Click on the table to add notes." msgstr "" -#: js/timbre.js:1919 -msgid "Filter already present." +#: js/widgets/phrasemaker.js:2677 +#: js/widgets/phrasemaker.js:2819 +msgid "tuplet value" msgstr "" -#: js/timbre.js:2322 -msgid "delay (MS)" +#: js/widgets/rhythmruler.js:486 +msgid "Save rhythms" msgstr "" -#: js/timbre.js:2507 -msgid "distortion amount" +#: js/widgets/rhythmruler.js:512 +msgid "Save drum machine" msgstr "" -#: js/meterwidget.js:170 -msgid "Reset" +#: js/widgets/rhythmruler.js:589 +#.TRANS: user can tap out a rhythm by clicking on a ruler. +msgid "Tap a rhythm" msgstr "" -#: js/meterwidget.js:196 -msgid "Click in the circle to select strong beats for the meter." +#: js/widgets/rhythmruler.js:817 +msgid "Click on the ruler to divide it." msgstr "" -#: js/arpeggio.js:239 -msgid "Click in the grid to add steps to the arpeggio." +#: js/widgets/rhythmruler.js:950 +#: js/widgets/rhythmruler.js:952 +#: js/widgets/rhythmruler.js:1152 +#: js/widgets/rhythmruler.js:1154 +#: js/widgets/rhythmruler.js:1765 +#: js/widgets/rhythmruler.js:1767 +msgid "tap a rhythm" msgstr "" -#: js/ProjectStorage.js:243 -msgid "anonymous" +#: js/widgets/rhythmruler.js:1459 +msgid "Maximum value of 256 has been exceeded." msgstr "" -#: js/GlobalCard.js:68 -msgid "Share" +#: js/widgets/sampler.js:237 +msgid "Recording started..." msgstr "" -#: js/GlobalCard.js:74 -msgid "Flags" +#: js/widgets/sampler.js:245 +msgid "Recording complete..." msgstr "" -#: js/LocalCard.js:36 -msgid "View published project" +#: js/widgets/sampler.js:283 +msgid "A new sample block was generated." msgstr "" -#: js/LocalCard.js:42 -msgid "Publish project" +#: js/widgets/sampler.js:378 +msgid "Upload sample" msgstr "" -#: js/LocalCard.js:51 -msgid "Edit project" +#: js/widgets/sampler.js:399 +msgid "Warning: Your sample cannot be loaded because it is >1MB." msgstr "" -#: js/LocalCard.js:52 -msgid "Delete project" +#: js/widgets/sampler.js:448 +msgid "Toggle Mic" msgstr "" -#: js/LocalCard.js:53 -msgid "Download project" +#: js/widgets/sampler.js:458 +msgid "Playback" msgstr "" -#: js/LocalCard.js:55 -msgid "Duplicate project" +#: js/widgets/sampler.js:979 +#.TRANS: The reference tone is a sound used for comparison. +msgid "reference tone" msgstr "" -#: js/GlobalTag.js:28 +#: planet/js/GlobalTag.js:28 #.TRANS: On the Planet, we use labels to tag projects. msgid "All Projects" msgstr "" -#: js/GlobalTag.js:30 -#: js/StringHelper.js:37 +#: planet/js/GlobalTag.js:30 +#: planet/js/StringHelper.js:37 #.TRANS: On the Planet, we use labels to tag projects. msgid "My Projects" msgstr "" -#: js/GlobalTag.js:32 +#: planet/js/GlobalTag.js:32 #.TRANS: On the Planet, we use labels to tag projects. msgid "Examples" msgstr "" -#: js/GlobalTag.js:34 +#: planet/js/GlobalTag.js:34 #.TRANS: On the Planet, we use labels to tag projects. msgid "Music" msgstr "" -#: js/GlobalTag.js:36 +#: planet/js/GlobalTag.js:36 #.TRANS: On the Planet, we use labels to tag projects. msgid "Art" msgstr "" -#: js/GlobalTag.js:38 +#: planet/js/GlobalTag.js:38 #.TRANS: On the Planet, we use labels to tag projects. msgid "Math" msgstr "" -#: js/GlobalTag.js:40 +#: planet/js/GlobalTag.js:40 #.TRANS: On the Planet, we use labels to tag projects. msgid "Interactive" msgstr "" -#: js/GlobalTag.js:42 +#: planet/js/GlobalTag.js:42 #.TRANS: On the Planet, we use labels to tag projects. msgid "Design" msgstr "" -#: js/GlobalTag.js:44 +#: planet/js/GlobalTag.js:44 #.TRANS: On the Planet, we use labels to tag projects. msgid "Game" msgstr "" -#: js/GlobalTag.js:46 +#: planet/js/GlobalTag.js:46 #.TRANS: On the Planet, we use labels to tag projects. msgid "Media" msgstr "" -#: js/GlobalTag.js:48 +#: planet/js/GlobalTag.js:48 #.TRANS: On the Planet, we use labels to tag projects. msgid "Sensors" msgstr "" -#: js/GlobalTag.js:52 +#: planet/js/GlobalTag.js:52 #.TRANS: On the Planet, we use labels to tag projects. msgid "Code Snippet" msgstr "" -#: js/helper.js:149 -#: js/StringHelper.js:49 -msgid "Show more tags" +#: planet/js/LocalCard.js:36 +msgid "View published project" msgstr "" -#: js/helper.js:150 -msgid "Show fewer tags" +#: planet/js/LocalCard.js:42 +msgid "Publish project" +msgstr "" + +#: planet/js/LocalCard.js:51 +msgid "Edit project" +msgstr "" + +#: planet/js/LocalCard.js:52 +msgid "Delete project" +msgstr "" + +#: planet/js/LocalCard.js:53 +msgid "Download project" +msgstr "" + +#: planet/js/LocalCard.js:55 +msgid "Duplicate project" +msgstr "" + +#: planet/js/ProjectStorage.js:243 +msgid "anonymous" +msgstr "" + +#: planet/js/SaveInterface.js:34 +msgid "Open in Music Blocks" +msgstr "" + +#: planet/js/SaveInterface.js:35 +msgid "Open in Turtle Blocks" +msgstr "" + +#: planet/js/GlobalCard.js:68 +msgid "Share" +msgstr "" + +#: planet/js/GlobalCard.js:74 +msgid "Flags" +msgstr "" + +#: planet/js/GlobalPlanet.js:35 +msgid "No results found." +msgstr "" + +#: planet/js/GlobalPlanet.js:51 +msgid "Remix of" +msgstr "" + +#: planet/js/GlobalPlanet.js:509 +msgid "Cannot connect to server" msgstr "" -#: js/ProjectViewer.js:30 +#: planet/js/ProjectViewer.js:30 msgid "Error: Report could not be submitted. Try again later." msgstr "" -#: js/ProjectViewer.js:31 +#: planet/js/ProjectViewer.js:31 msgid "Thank you for reporting this project. A moderator will review the project shortly, to verify violation of the Sugar Labs Code of Conduct." msgstr "" -#: js/ProjectViewer.js:32 -#: js/StringHelper.js:62 -#: js/StringHelper.js:64 -#: js/StringHelper.js:68 +#: planet/js/ProjectViewer.js:32 +#: planet/js/StringHelper.js:62 +#: planet/js/StringHelper.js:64 +#: planet/js/StringHelper.js:68 msgid "Report Project" msgstr "" -#: js/ProjectViewer.js:33 -#: js/StringHelper.js:63 +#: planet/js/ProjectViewer.js:33 +#: planet/js/StringHelper.js:63 msgid "Project Reported" msgstr "" -#: js/ProjectViewer.js:34 +#: planet/js/ProjectViewer.js:34 msgid "Report description required" msgstr "" -#: js/ProjectViewer.js:35 +#: planet/js/ProjectViewer.js:35 msgid "Report description too long" msgstr "" -#: js/StringHelper.js:30 +#: planet/js/Publisher.js:30 +msgid "Feature unavailable - cannot connect to server. Reload Music Blocks to try again." +msgstr "" + +#: planet/js/Publisher.js:220 +#: planet/js/Publisher.js:237 +msgid "This field is required" +msgstr "" + +#: planet/js/Publisher.js:227 +msgid "Title too long" +msgstr "" + +#: planet/js/Publisher.js:244 +msgid "Description too long" +msgstr "" + +#: planet/js/Publisher.js:341 +msgid "Server Error" +msgstr "" + +#: planet/js/Publisher.js:341 +msgid "Try Again" +msgstr "" + +#: planet/js/StringHelper.js:30 msgid "Planet" msgstr "" -#: js/StringHelper.js:31 +#: planet/js/StringHelper.js:31 msgid "Close Planet" msgstr "" -#: js/StringHelper.js:32 +#: planet/js/StringHelper.js:32 msgid "Open project from file" msgstr "" -#: js/StringHelper.js:34 +#: planet/js/StringHelper.js:34 msgid "Local" msgstr "" -#: js/StringHelper.js:35 +#: planet/js/StringHelper.js:35 msgid "Global" msgstr "" -#: js/StringHelper.js:36 +#: planet/js/StringHelper.js:36 msgid "Search for a project" msgstr "" -#: js/StringHelper.js:38 +#: planet/js/StringHelper.js:38 msgid "Publish Project" msgstr "" -#: js/StringHelper.js:40 +#: planet/js/StringHelper.js:40 msgid "Tags (max 5)" msgstr "" -#: js/StringHelper.js:41 -#: js/StringHelper.js:61 +#: planet/js/StringHelper.js:41 +#: planet/js/StringHelper.js:61 msgid "Description" msgstr "" -#: js/StringHelper.js:42 -#: js/StringHelper.js:67 +#: planet/js/StringHelper.js:42 +#: planet/js/StringHelper.js:67 msgid "Submit" msgstr "" -#: js/StringHelper.js:43 -#: js/StringHelper.js:47 +#: planet/js/StringHelper.js:43 +#: planet/js/StringHelper.js:47 msgid "Cancel" msgstr "" -#: js/StringHelper.js:44 +#: planet/js/StringHelper.js:44 msgid "Delete \\"\\"?" msgstr "" -#: js/StringHelper.js:45 +#: planet/js/StringHelper.js:45 msgid "Permanently delete project \\"\\"?" msgstr "" -#: js/StringHelper.js:48 +#: planet/js/StringHelper.js:48 msgid "Explore Projects" msgstr "" -#: js/StringHelper.js:50 +#: planet/js/StringHelper.js:49 +#: planet/js/helper.js:149 +msgid "Show more tags" +msgstr "" + +#: planet/js/StringHelper.js:50 msgid "Most recent" msgstr "" -#: js/StringHelper.js:51 +#: planet/js/StringHelper.js:51 msgid "Most liked" msgstr "" -#: js/StringHelper.js:52 +#: planet/js/StringHelper.js:52 msgid "Most downloaded" msgstr "" -#: js/StringHelper.js:53 +#: planet/js/StringHelper.js:53 msgid "A-Z" msgstr "" -#: js/StringHelper.js:54 +#: planet/js/StringHelper.js:54 msgid "Sort by" msgstr "" -#: js/StringHelper.js:55 +#: planet/js/StringHelper.js:55 msgid "Load More Projects" msgstr "" -#: js/StringHelper.js:56 +#: planet/js/StringHelper.js:56 msgid "Last Updated" msgstr "" -#: js/StringHelper.js:57 +#: planet/js/StringHelper.js:57 msgid "Creation Date" msgstr "" -#: js/StringHelper.js:58 +#: planet/js/StringHelper.js:58 msgid "Number of Downloads:" msgstr "" -#: js/StringHelper.js:59 +#: planet/js/StringHelper.js:59 msgid "Number of Likes:" msgstr "" -#: js/StringHelper.js:60 +#: planet/js/StringHelper.js:60 msgid "Tags:" msgstr "" -#: js/StringHelper.js:65 +#: planet/js/StringHelper.js:65 msgid "Report projects which violate the Sugar Labs Code of Conduct." msgstr "" -#: js/StringHelper.js:66 +#: planet/js/StringHelper.js:66 msgid "Reason for reporting project" msgstr "" -#: js/StringHelper.js:70 +#: planet/js/StringHelper.js:70 msgid "Download as File" msgstr "" -#: js/GlobalPlanet.js:35 -msgid "No results found." -msgstr "" - -#: js/GlobalPlanet.js:51 -msgid "Remix of" -msgstr "" - -#: js/GlobalPlanet.js:509 -msgid "Cannot connect to server" -msgstr "" - -#: js/Publisher.js:30 -msgid "Feature unavailable - cannot connect to server. Reload Music Blocks to try again." -msgstr "" - -#: js/Publisher.js:218 -#: js/Publisher.js:235 -msgid "This field is required" -msgstr "" - -#: js/Publisher.js:225 -msgid "Title too long" +#: planet/js/helper.js:150 +msgid "Show fewer tags" msgstr "" -#: js/Publisher.js:242 -msgid "Description too long" +#: plugins/accelerometer.rtp:48 +msgid "motion x" msgstr "" -#: js/Publisher.js:339 -msgid "Server Error" +#: plugins/accelerometer.rtp:56 +msgid "motion y" msgstr "" -#: js/Publisher.js:339 -msgid "Try Again" +#: plugins/accelerometer.rtp:64 +msgid "motion z" msgstr "" -#: js/SaveInterface.js:34 -msgid "Open in Music Blocks" +#: plugins/facebook.rtp:27 +msgid "publish" msgstr "" -#: js/SaveInterface.js:35 -msgid "Open in Turtle Blocks" +#: plugins/maths.rtp:62 +msgid "power" msgstr "" -#: plugins/weather.rtp:68 -#: plugins/weather.rtp:97 -msgid "Days ahead must be in the range of -1 to 5." +#: plugins/maths.rtp:62 +msgid "base" msgstr "" -#: plugins/weather.rtp:122 -msgid "forecast" +#: plugins/maths.rtp:62 +msgid "exp" msgstr "" -#: plugins/weather.rtp:123 -#: plugins/weather.rtp:137 -#: plugins/weather.rtp:150 -msgid "city" +#: plugins/maths.rtp:99 +msgid "floor" msgstr "" -#: plugins/weather.rtp:124 -#: plugins/weather.rtp:138 -#: plugins/weather.rtp:151 -msgid "day" +#: plugins/maths.rtp:104 +msgid "ceiling" msgstr "" -#: plugins/weather.rtp:136 -msgid "high" +#: plugins/maths.rtp:109 +msgid "to degrees" msgstr "" -#: plugins/weather.rtp:149 -msgid "low" +#: plugins/maths.rtp:114 +msgid "to radians" msgstr "" #: plugins/nutrition.rtp:104 @@ -9458,45 +9867,6 @@ msgstr "" msgid "water" msgstr "" -#: plugins/maths.rtp:62 -#: plugins/examples.rtp:93 -msgid "power" -msgstr "" - -#: plugins/maths.rtp:62 -#: plugins/examples.rtp:93 -msgid "base" -msgstr "" - -#: plugins/maths.rtp:62 -#: plugins/examples.rtp:93 -msgid "exp" -msgstr "" - -#: plugins/maths.rtp:99 -#: plugins/examples.rtp:130 -msgid "floor" -msgstr "" - -#: plugins/maths.rtp:104 -#: plugins/examples.rtp:135 -msgid "ceiling" -msgstr "" - -#: plugins/maths.rtp:109 -#: plugins/examples.rtp:140 -msgid "to degrees" -msgstr "" - -#: plugins/maths.rtp:114 -#: plugins/examples.rtp:145 -msgid "to radians" -msgstr "" - -#: plugins/facebook.rtp:27 -msgid "publish" -msgstr "" - #: plugins/rodi.rtp:172 msgid "blink" msgstr "" @@ -9525,18 +9895,66 @@ msgstr "" msgid "move" msgstr "" -#: plugins/accelerometer.rtp:48 -msgid "motion x" +#: plugins/weather.rtp:68 +#: plugins/weather.rtp:97 +msgid "Days ahead must be in the range of -1 to 5." msgstr "" -#: plugins/accelerometer.rtp:56 -msgid "motion y" +#: plugins/weather.rtp:122 +msgid "forecast" msgstr "" -#: plugins/accelerometer.rtp:64 -msgid "motion z" +#: plugins/weather.rtp:123 +#: plugins/weather.rtp:137 +#: plugins/weather.rtp:150 +msgid "city" +msgstr "" + +#: plugins/weather.rtp:124 +#: plugins/weather.rtp:138 +#: plugins/weather.rtp:151 +msgid "day" +msgstr "" + +#: plugins/weather.rtp:136 +msgid "high" +msgstr "" + +#: plugins/weather.rtp:149 +msgid "low" msgstr "" +#: js/toolbar.js:70 + +#: js/toolbar.js:130 + +#: js/toolbar.js:194 + +#: js/toolbar.js:249 + +#~msgid "Toggle JavaScript Editor" +#~msgstr "" + +#: js/EnsembleBlocks.js:643 + +#~msgid "The Turrle pitch block returns the current pitch number being played by the specified turtle." +#~msgstr "" + +#: js/PitchActions.js:88 + +#~msgid "The Scalar Step Block must be used inside of a Note Block." +#~msgstr "" + +#: js/PitchActions.js:107 + +#~msgid "The Scalar Step Block must be preceded by a Pitch Block." +#~msgstr "" + +#: js/musickeyboard.js:2840 + +#~msgid "New action blocks generated!" +#~msgstr "" + #: js/toolbar.js:110 #: js/toolbar.js:204 @@ -9877,11 +10295,6 @@ msgstr "" #~msgid "The Time block returns the number of seconds that the program has been running." #~msgstr "" -#: js/help.js:95 - -#~msgid "Take a tour" -#~msgstr "" - #: js/GlobalCard.js:48 #~msgid "More Details" @@ -12780,11 +13193,6 @@ msgstr "" #~msgid "The save-stack button saves a stack onto a custom palette. It appears after a \"long press\" on a stack." #~msgstr "" -#: js/musicutils.js:254 - -#~msgid "Custom" -#~msgstr "" - #: js/basicblocks.js:4785 #~msgid "Rhythm" diff --git a/po/nb.po b/po/nb.po index b8be16c6ce..ad36dfa35e 100644 --- a/po/nb.po +++ b/po/nb.po @@ -2128,276 +2128,131 @@ #: js/planetInterface.js:104 #: js/planetInterface.js:104 #: js/planetInterface.js:104 -msgid "project undefined" -msgstr "" - -#: js/logo.js:61 -msgid "Not a valid pitch name" -msgstr "" - -#: js/logo.js:507 -#: js/ProgramBlocks.js:258 -#: js/ProgramBlocks.js:427 -msgid "You must select a file." -msgstr "" - -#: js/logo.js:1184 -#: js/turtles.js:118 -#: js/turtle-painter.js:1192 -#: js/turtle-painter.js:1193 -#: js/block.js:1463 -#: js/lilypond.js:757 -#: js/lilypond.js:921 -#: js/lilypond.js:959 -#: js/ActionBlocks.js:1223 -#: js/ProgramBlocks.js:1267 -msgid "start" -msgstr "start" - -#: js/logo.js:1696 -msgid "Playback is ready." -msgstr "" - -#: js/blocks.js:1011 -#: js/blocks.js:3427 -#: js/blocks.js:3428 -#: js/blocks.js:3653 -#: js/blocks.js:4012 -#: js/blocks.js:4205 -#: js/blocks.js:5343 -#: js/blocks.js:6474 -#: js/palette.js:527 -#: js/palette.js:536 -#: js/palette.js:545 -#: js/palette.js:554 -#: js/palette.js:1131 -#: js/palette.js:1142 -#: js/palette.js:1153 -#: js/palette.js:1164 -#: js/palette.js:1183 -#: js/rubrics.js:529 -#: js/macros.js:170 -#: js/macros.js:266 -#: js/macros.js:267 -#: js/macros.js:276 -#: js/macros.js:828 -#: js/block.js:1449 -#: js/block.js:4164 -#: js/block.js:4182 -#: js/block.js:4193 -#: js/turtledefs.js:128 -#: js/turtledefs.js:230 -#: js/ActionBlocks.js:254 -#: js/ActionBlocks.js:307 -#: js/ActionBlocks.js:617 -#: js/ActionBlocks.js:716 -#: js/ActionBlocks.js:961 -#: js/ActionBlocks.js:1049 -#: js/ActionBlocks.js:1322 -#: js/ActionBlocks.js:1325 -#: js/ActionBlocks.js:1337 -#: js/ActionBlocks.js:1404 -#: js/MeterBlocks.js:715 -#: js/MeterBlocks.js:768 -#: js/MeterBlocks.js:831 -#: js/MeterBlocks.js:892 -#: js/phrasemaker.js:4412 -#: js/musickeyboard.js:2647 -#: js/rhythmruler.js:1928 -#: js/rhythmruler.js:1935 -#: js/rhythmruler.js:2119 -#: js/rhythmruler.js:2126 -msgid "action" +#: js/SaveInterface.js:59 +#: js/SaveInterface.js:61 +#: js/SaveInterface.js:93 +msgid "Music Blocks Project" msgstr "" -#: js/blocks.js:1205 -#: js/blocks.js:3380 -#: js/blocks.js:3770 -#: js/blocks.js:3801 -#: js/blocks.js:3850 -#: js/blocks.js:3885 -#: js/blocks.js:6497 -#: js/palette.js:509 -#: js/palette.js:638 -#: js/palette.js:1107 -#: js/BoxesBlocks.js:282 -#: js/BoxesBlocks.js:285 -#: js/BoxesBlocks.js:405 -#: js/BoxesBlocks.js:594 -msgid "box" -msgstr "boks" - -#: js/blocks.js:1680 -msgid "Consider breaking this stack into parts." +#: js/SaveInterface.js:63 +msgid "This project was created in Music Blocks" msgstr "" -#: js/blocks.js:2408 -#: js/palette.js:653 -#: js/MediaBlocks.js:602 -msgid "open file" +#: js/SaveInterface.js:67 +msgid "Music Blocks is a Free/Libre Software application." msgstr "" -#: js/blocks.js:2415 -#: js/blocks.js:2423 -#: js/activity.js:1875 -msgid "audio file" +#: js/SaveInterface.js:69 +msgid "The source code can be accessed at" msgstr "" -#: js/blocks.js:2536 -#: js/blocks.js:3147 -#: js/block.js:3543 -msgid "on2" +#: js/SaveInterface.js:72 +msgid "For more information, please consult the" msgstr "" -#: js/blocks.js:2538 -#: js/blocks.js:3149 -#: js/block.js:3545 -msgid "off" +#: js/SaveInterface.js:76 +#: js/turtledefs.js:795 +msgid "Music Blocks Guide" msgstr "" -#: js/blocks.js:2543 -#: js/blocks.js:3154 -#: js/palette.js:618 -#: js/block.js:3466 -#: js/BooleanBlocks.js:77 -#: js/BooleanBlocks.js:167 -#: js/BooleanBlocks.js:251 -#: js/BooleanBlocks.js:335 -#: js/BooleanBlocks.js:433 -#: js/BooleanBlocks.js:539 -#: js/BooleanBlocks.js:640 -#: js/BooleanBlocks.js:741 -#: js/BooleanBlocks.js:847 -#: js/BooleanBlocks.js:948 -#: js/BooleanBlocks.js:1033 -#: js/SensorsBlocks.js:910 -msgid "true" +#: js/SaveInterface.js:83 +msgid "Alternatively, open the file in Music Blocks using the Load project button." msgstr "" -#: js/blocks.js:2545 -#: js/blocks.js:3156 -#: js/block.js:3466 -#: js/BooleanBlocks.js:79 -#: js/BooleanBlocks.js:169 -#: js/BooleanBlocks.js:253 -#: js/BooleanBlocks.js:337 -#: js/BooleanBlocks.js:435 -#: js/BooleanBlocks.js:541 -#: js/BooleanBlocks.js:642 -#: js/BooleanBlocks.js:743 -#: js/BooleanBlocks.js:849 -#: js/BooleanBlocks.js:950 -#: js/SensorsBlocks.js:912 -msgid "false" +#: js/SaveInterface.js:85 +msgid "Project Code" msgstr "" -#: js/blocks.js:3183 -#: js/palette.js:574 -#: js/MediaBlocks.js:892 -#: js/MediaBlocks.js:963 -msgid "text" -msgstr "tekst" - -#: js/blocks.js:3379 -#: js/palette.js:641 -#: js/palette.js:642 -#: js/BoxesBlocks.js:514 -msgid "store in box" +#: js/SaveInterface.js:87 +msgid "This code stores data about the blocks in a project." msgstr "" -#: js/blocks.js:3384 -#: js/blocks.js:3824 -#: js/blocks.js:3859 -#: js/blocks.js:3894 -#: js/blocks.js:5773 -#: js/blocks.js:5794 -#: js/BoxesBlocks.js:772 -msgid "box1" +#: js/SaveInterface.js:89 +msgid "Show" msgstr "" -#: js/blocks.js:3386 -#: js/blocks.js:3826 -#: js/blocks.js:3861 -#: js/blocks.js:3896 -#: js/blocks.js:5775 -#: js/blocks.js:5796 -#: js/BoxesBlocks.js:663 -msgid "box2" +#: js/SaveInterface.js:91 +msgid "Hide" msgstr "" -#: js/blocks.js:4058 -#: js/palette.js:639 -#: js/palette.js:644 -#: js/palette.js:1043 -#: js/BoxesBlocks.js:591 -msgid "store in" +#: js/SaveInterface.js:131 +#: js/SaveInterface.js:204 +#: js/SaveInterface.js:262 +#: js/SaveInterface.js:389 +#: js/SaveInterface.js:417 +#: js/activity.js:4884 +#: planet/js/ProjectStorage.js:27 +#: planet/js/GlobalPlanet.js:467 +#: planet/js/GlobalPlanet.js:469 +#: planet/js/GlobalPlanet.js:495 +#.TRANS: default project title when saving as Lilypond +msgid "My Project" msgstr "" -#: js/blocks.js:4058 -#: js/EnsembleBlocks.js:391 -#: js/EnsembleBlocks.js:402 -#: js/MediaBlocks.js:746 -#: js/ProgramBlocks.js:390 -#: js/ProgramBlocks.js:495 -#: js/ProgramBlocks.js:658 -#: js/BoxesBlocks.js:595 -#: js/PitchBlocks.js:656 -#: js/PitchBlocks.js:932 -#: js/PitchBlocks.js:1827 -#: js/ToneBlocks.js:1025 -#: js/DictBlocks.js:215 -#: js/DictBlocks.js:289 -msgid "name" +#: js/SaveInterface.js:197 +#: planet/js/SaveInterface.js:58 +msgid "No description provided" msgstr "" -#: js/blocks.js:4058 -#: js/RhythmBlocks.js:1130 -#: js/BoxesBlocks.js:75 -#: js/BoxesBlocks.js:595 -#: js/HeapBlocks.js:544 -#: js/DictBlocks.js:289 -#: js/DictBlocks.js:430 -msgid "value" +#: js/SaveInterface.js:332 +msgid "Your recording is in progress." msgstr "" -#: js/blocks.js:4907 -msgid "There is no block selected." +#: js/SaveInterface.js:401 +#.TRANS: File name prompt for save as Lilypond +msgid "File name" msgstr "" -#: js/blocks.js:5002 -#: js/MediaBlocks.js:888 -msgid "show" +#: js/SaveInterface.js:403 +#: planet/js/StringHelper.js:39 +#.TRANS: Project title prompt for save as Lilypond +msgid "Project title" msgstr "" -#: js/blocks.js:5005 -#: js/MediaBlocks.js:803 -#.TRANS: Avatar is the image used to determine the appearance of the mouse. -msgid "avatar" +#: js/SaveInterface.js:405 +#.TRANS: Project title prompt for save as Lilypond +msgid "Project author" msgstr "" -#: js/blocks.js:5008 -#: js/ToneBlocks.js:1010 -#: js/sampler.js:693 -#.TRANS: The sound sample that the user uploads. -msgid "sample" +#: js/SaveInterface.js:407 +#.TRANS: MIDI prompt for save as Lilypond +msgid "Include MIDI output?" msgstr "" -#: js/turtles.js:874 -msgid "Grid" +#: js/SaveInterface.js:409 +#.TRANS: Guitar prompt for save as Lilypond +msgid "Include guitar tablature output?" msgstr "" -#: js/turtles.js:891 -#: js/turtledefs.js:626 -msgid "Clean" +#: js/SaveInterface.js:411 +#.TRANS: Lilypond is a scripting language for generating sheet music +msgid "Save as Lilypond" msgstr "" -#: js/turtles.js:912 -#: js/turtledefs.js:632 -msgid "Collapse" +#: js/SaveInterface.js:426 +#: js/blocks/EnsembleBlocks.js:75 +#: js/blocks/EnsembleBlocks.js:154 +#: js/blocks/EnsembleBlocks.js:216 +#: js/blocks/EnsembleBlocks.js:302 +#: js/blocks/EnsembleBlocks.js:348 +#: js/blocks/EnsembleBlocks.js:389 +#: js/blocks/EnsembleBlocks.js:441 +#: js/blocks/EnsembleBlocks.js:490 +#: js/blocks/EnsembleBlocks.js:536 +#: js/blocks/EnsembleBlocks.js:583 +#: js/blocks/EnsembleBlocks.js:637 +#: js/blocks/EnsembleBlocks.js:753 +#: js/blocks/EnsembleBlocks.js:840 +#: js/blocks/EnsembleBlocks.js:899 +#: js/blocks/EnsembleBlocks.js:942 +#: js/blocks/EnsembleBlocks.js:1212 +#: js/blocks/EnsembleBlocks.js:1280 +#.TRANS: default project author when saving as Lilypond +msgid "Mr. Mouse" msgstr "" -#: js/turtles.js:940 -msgid "Expand" +#: js/SaveInterface.js:573 +msgid "The Lilypond code is copied to clipboard. You can paste it here: " msgstr "" #: js/languagebox.js:198 @@ -2408,6933 +2263,7487 @@ msgstr "" msgid "Music Blocks is already set to this language." msgstr "" -#: js/piemenus.js:200 -#: js/musicutils.js:808 -#: js/musicutils.js:824 -#: js/phrasemaker.js:1672 -#: js/musickeyboard.js:2041 -#: js/sampler.js:544 -#.TRANS: double sharp is a music term related to pitch -msgid "double sharp" +#: js/planetInterface.js:131 +msgid "project undefined" msgstr "" -#: js/piemenus.js:201 -#: js/PitchBlocks.js:1510 -#: js/PitchActions.js:580 -#: js/musicutils.js:806 -#: js/musicutils.js:825 -#: js/phrasemaker.js:1673 -#: js/musickeyboard.js:2042 -#: js/sampler.js:545 -#.TRANS: sharp is a half-step up in pitch -#.TRANS: sharp is a music term related to pitch -msgid "sharp" +#: js/rubrics.js:523 +#: js/turtledefs.js:119 +#: js/turtledefs.js:221 +#: js/blocks/RhythmBlockPaletteBlocks.js:52 +#: js/blocks/RhythmBlockPaletteBlocks.js:234 +#: js/blocks/ProgramBlocks.js:745 +#: js/widgets/rhythmruler.js:2057 +#: js/widgets/rhythmruler.js:2064 +#: js/widgets/rhythmruler.js:2133 +#: js/widgets/rhythmruler.js:2140 +#: js/widgets/rhythmruler.js:2219 +#.TRANS: an arrangement of notes based on duration +msgid "rhythm" msgstr "" -#: js/piemenus.js:202 -#: js/musicutils.js:804 -#: js/musicutils.js:826 -#: js/phrasemaker.js:1674 -#: js/musickeyboard.js:2043 -#: js/sampler.js:546 -#.TRANS: natural is a music term related to pitch -msgid "natural" +#: js/rubrics.js:524 +#: js/turtledefs.js:121 +#: js/turtledefs.js:223 +#: js/block-verbose.js:2622 +#: js/block.js:2550 +#: js/blocks/IntervalsBlocks.js:63 +#: js/blocks/SensorsBlocks.js:178 +#: js/blocks/PitchBlocks.js:1839 +#: js/blocks/PitchBlocks.js:1853 +#: js/widgets/musickeyboard.js:1935 +#: js/widgets/phrasemaker.js:1036 +#.TRANS: pitch number +#.TRANS: pitch number +#.TRANS: we specify pitch in terms of a name and an octave. The name can be CDEFGAB or Do Re Mi Fa Sol La Ti. Octave is a number between 1 and 8. +msgid "pitch" msgstr "" -#: js/piemenus.js:203 -#: js/PitchBlocks.js:1469 -#: js/PitchActions.js:583 -#: js/musicutils.js:802 -#: js/musicutils.js:827 -#: js/phrasemaker.js:1675 -#: js/musickeyboard.js:2044 -#: js/sampler.js:547 -#.TRANS: flat is a half-step down in pitch -#.TRANS: flat is a music term related to pitch -msgid "flat" +#: js/rubrics.js:525 +#: js/turtledefs.js:123 +#: js/turtledefs.js:225 +msgid "tone" msgstr "" -#: js/piemenus.js:204 -#: js/musicutils.js:800 -#: js/musicutils.js:828 -#: js/phrasemaker.js:1676 -#: js/musickeyboard.js:2045 -#: js/sampler.js:548 -#.TRANS: double flat is a music term related to pitch -msgid "double flat" +#: js/rubrics.js:526 +#: js/lilypond.js:605 +#: js/lilypond.js:904 +#: js/lilypond.js:910 +#: js/lilypond.js:948 +msgid "mouse" msgstr "" -#: js/piemenus.js:2861 -#: js/PitchBlocks.js:1357 -#: js/musicutils.js:627 -#.TRANS: unison means the note is the same as the current note -#.TRANS: unison is a music term related to intervals -msgid "unison" +#: js/rubrics.js:527 +#: js/turtledefs.js:132 +#: js/turtledefs.js:234 +#: js/widgets/phrasemaker.js:1040 +msgid "pen" msgstr "" -#: js/piemenus.js:3015 -#: js/piemenus.js:3088 -#: js/musicutils.js:635 -#: js/musicutils.js:810 -#: js/musicutils.js:912 -#.TRANS: major is a music term related to intervals and mode -msgid "major" +#: js/rubrics.js:528 +#: js/turtledefs.js:133 +#: js/turtledefs.js:235 +#: js/blocks/NumberBlocks.js:981 +#: js/blocks/PitchBlocks.js:1717 +#: js/blocks/PitchBlocks.js:1758 +msgid "number" msgstr "" -#: js/piemenus.js:3015 -#: js/piemenus.js:3088 -#: js/musicutils.js:653 -#.TRANS: modal scale for music -msgid "ionian" +#: js/rubrics.js:529 +#: js/turtledefs.js:127 +#: js/turtledefs.js:229 +msgid "flow" msgstr "" -#: js/piemenus.js:3017 -#: js/piemenus.js:3092 -#: js/musicutils.js:633 -#: js/musicutils.js:811 -#: js/musicutils.js:909 -#.TRANS: minor is a music term related to intervals and mode -msgid "minor" +#: js/rubrics.js:530 +#: js/turtledefs.js:128 +#: js/turtledefs.js:230 +#: js/block-verbose.js:1609 +#: js/block-verbose.js:4559 +#: js/block-verbose.js:4577 +#: js/block-verbose.js:4588 +#: js/block.js:1573 +#: js/block.js:4483 +#: js/block.js:4501 +#: js/block.js:4512 +#: js/blocks.js:1018 +#: js/blocks.js:3491 +#: js/blocks.js:3492 +#: js/blocks.js:3717 +#: js/blocks.js:4076 +#: js/blocks.js:4269 +#: js/blocks.js:5432 +#: js/blocks.js:6563 +#: js/macros.js:170 +#: js/macros.js:266 +#: js/macros.js:267 +#: js/macros.js:276 +#: js/macros.js:828 +#: js/palette.js:527 +#: js/palette.js:536 +#: js/palette.js:545 +#: js/palette.js:554 +#: js/palette.js:1129 +#: js/palette.js:1140 +#: js/palette.js:1151 +#: js/palette.js:1162 +#: js/palette.js:1181 +#: js/blocks/ActionBlocks.js:254 +#: js/blocks/ActionBlocks.js:307 +#: js/blocks/ActionBlocks.js:617 +#: js/blocks/ActionBlocks.js:716 +#: js/blocks/ActionBlocks.js:961 +#: js/blocks/ActionBlocks.js:1049 +#: js/blocks/ActionBlocks.js:1322 +#: js/blocks/ActionBlocks.js:1325 +#: js/blocks/ActionBlocks.js:1337 +#: js/blocks/ActionBlocks.js:1404 +#: js/blocks/MeterBlocks.js:715 +#: js/blocks/MeterBlocks.js:768 +#: js/blocks/MeterBlocks.js:831 +#: js/blocks/MeterBlocks.js:892 +#: js/widgets/musickeyboard.js:2986 +#: js/widgets/phrasemaker.js:4913 +#: js/widgets/rhythmruler.js:2319 +#: js/widgets/rhythmruler.js:2326 +#: js/widgets/rhythmruler.js:2511 +#: js/widgets/rhythmruler.js:2518 +msgid "action" msgstr "" -#: js/piemenus.js:3017 -#: js/piemenus.js:3092 -#: js/musicutils.js:663 -#.TRANS: modal scale for music -msgid "aeolian" +#: js/rubrics.js:531 +#: js/turtledefs.js:136 +#: js/turtledefs.js:238 +msgid "sensors" msgstr "" -#: js/piemenus.js:3407 -msgid "Duplicate" +#: js/rubrics.js:532 +#: js/turtledefs.js:135 +#: js/turtledefs.js:237 +#: js/blocks/MediaBlocks.js:930 +msgid "media" msgstr "" -#: js/piemenus.js:3408 -#: js/turtledefs.js:534 -msgid "Extract" +#: js/rubrics.js:533 +msgid "mice" msgstr "" -#: js/piemenus.js:3409 -msgid "Move to trash" +#: js/toolbar.js:48 +#: js/toolbar.js:109 +msgid "About Music Blocks" msgstr "" -#: js/piemenus.js:3410 -#: js/timbre.js:968 -#: js/StringHelper.js:69 -msgid "Close" +#: js/toolbar.js:49 +#: js/toolbar.js:110 +#: js/toolbar.js:175 +#: js/toolbar.js:231 +#: js/turtledefs.js:445 +#: js/turtledefs.js:482 +#: js/activity.js:2660 +#: js/activity.js:2671 +#: js/activity.js:2902 +#: js/widgets/modewidget.js:77 +#: js/widgets/meterwidget.js:185 +#: js/widgets/pitchdrummatrix.js:147 +#: js/widgets/pitchdrummatrix.js:687 +#: js/widgets/pitchdrummatrix.js:689 +#: js/widgets/pitchdrummatrix.js:741 +#: js/widgets/pitchdrummatrix.js:743 +#: js/widgets/pitchdrummatrix.js:758 +#: js/widgets/pitchdrummatrix.js:760 +#: js/widgets/pitchdrummatrix.js:789 +#: js/widgets/pitchdrummatrix.js:791 +#: js/widgets/pitchstaircase.js:121 +#: js/widgets/temperament.js:610 +#: js/widgets/temperament.js:613 +#: js/widgets/temperament.js:673 +#: js/widgets/temperament.js:675 +#: js/widgets/temperament.js:2017 +#: js/widgets/temperament.js:2019 +#: js/widgets/tempo.js:84 +#: js/widgets/tempo.js:86 +#: js/widgets/timbre.js:432 +#: js/widgets/timbre.js:434 +#: js/widgets/timbre.js:465 +#: js/widgets/timbre.js:467 +#: js/widgets/timbre.js:746 +#: js/widgets/aiwidget.js:647 +#: js/widgets/aiwidget.js:654 +#: js/widgets/aiwidget.js:656 +#: js/widgets/arpeggio.js:90 +#: js/widgets/arpeggio.js:547 +#: js/widgets/arpeggio.js:549 +#: js/widgets/arpeggio.js:644 +#: js/widgets/arpeggio.js:646 +#: js/widgets/musickeyboard.js:676 +#: js/widgets/musickeyboard.js:872 +#: js/widgets/musickeyboard.js:874 +#: js/widgets/musickeyboard.js:953 +#: js/widgets/musickeyboard.js:955 +#: js/widgets/phrasemaker.js:513 +#: js/widgets/phrasemaker.js:523 +#: js/widgets/phrasemaker.js:525 +#: js/widgets/phrasemaker.js:4304 +#: js/widgets/phrasemaker.js:4528 +#: js/widgets/phrasemaker.js:4533 +#: js/widgets/phrasemaker.js:4535 +#: js/widgets/phrasemaker.js:4650 +#: js/widgets/rhythmruler.js:637 +#: js/widgets/rhythmruler.js:639 +#: js/widgets/rhythmruler.js:653 +#: js/widgets/rhythmruler.js:655 +#: js/widgets/sampler.js:162 +#: js/widgets/sampler.js:164 +#: js/widgets/sampler.js:363 +msgid "Play" msgstr "" -#: js/piemenus.js:3416 -msgid "Save stack" +#: js/toolbar.js:50 +#: js/toolbar.js:111 +#: js/toolbar.js:176 +#: js/toolbar.js:232 +#: js/turtledefs.js:451 +#: js/turtledefs.js:488 +#: js/activity.js:2679 +#: js/widgets/modewidget.js:99 +#: js/widgets/modewidget.js:101 +#: js/widgets/meterwidget.js:206 +#: js/widgets/meterwidget.js:208 +#: js/widgets/pitchdrummatrix.js:674 +#: js/widgets/pitchdrummatrix.js:676 +#: js/widgets/temperament.js:2002 +#: js/widgets/temperament.js:2004 +#: js/widgets/arpeggio.js:534 +#: js/widgets/arpeggio.js:536 +#: js/widgets/phrasemaker.js:534 +#: js/widgets/phrasemaker.js:536 +msgid "Stop" msgstr "" -#: js/piemenus.js:3420 -#: js/toolbar.js:60 -#: js/toolbar.js:120 -#: js/toolbar.js:185 -#: js/toolbar.js:240 -#: js/turtledefs.js:752 -msgid "Help" +#: js/toolbar.js:51 +#: js/toolbar.js:112 +#: js/toolbar.js:177 +#: js/toolbar.js:233 +#: js/turtledefs.js:498 +msgid "Record" msgstr "" -#: js/piemenus.js:3762 -msgid "You have chosen key " +#: js/toolbar.js:52 +#: js/toolbar.js:53 +msgid "Full screen" msgstr "" -#: js/piemenus.js:3766 -msgid " for your pitch preview." +#: js/toolbar.js:54 +#: js/toolbar.js:115 +#: js/toolbar.js:180 +#: js/toolbar.js:236 +#: js/turtledefs.js:504 +msgid "Toggle Fullscreen" +msgstr "" + +#: js/toolbar.js:55 +#: js/toolbar.js:116 +#: js/toolbar.js:181 +#: js/toolbar.js:237 +#: js/turtledefs.js:510 +#: planet/js/StringHelper.js:33 +msgid "New project" +msgstr "" + +#: js/toolbar.js:56 +#: js/toolbar.js:117 +#: js/toolbar.js:182 +#: js/toolbar.js:238 +#: js/turtledefs.js:516 +msgid "Load project from file" +msgstr "" + +#: js/toolbar.js:57 +#: js/toolbar.js:118 +#: js/toolbar.js:119 +#: js/toolbar.js:183 +#: js/toolbar.js:239 +#: js/turtledefs.js:541 +#: js/turtledefs.js:550 +#: js/turtledefs.js:571 +msgid "Save project" +msgstr "" + +#: js/toolbar.js:58 +#: js/toolbar.js:77 +#: js/toolbar.js:79 +#: js/toolbar.js:138 +#: js/toolbar.js:147 +#: js/toolbar.js:149 +#: js/toolbar.js:184 +#: js/toolbar.js:202 +#: js/toolbar.js:204 +#: js/toolbar.js:240 +#: js/toolbar.js:258 +#: js/toolbar.js:260 +msgid "Save project as HTML" +msgstr "" + +#: js/toolbar.js:59 +#: js/toolbar.js:120 +#: js/toolbar.js:185 +#: js/toolbar.js:241 +msgid "Find and share projects" +msgstr "" + +#: js/toolbar.js:60 +#: js/toolbar.js:121 +#: js/toolbar.js:186 +#: js/toolbar.js:242 +msgid "Offline. Sharing is unavailable" +msgstr "" + +#: js/toolbar.js:61 +#: js/toolbar.js:122 +#: js/toolbar.js:187 +#: js/toolbar.js:243 +msgid "Auxiliary menu" +msgstr "" + +#: js/toolbar.js:62 +#: js/toolbar.js:123 +#: js/toolbar.js:188 +#: js/toolbar.js:244 +#: js/turtledefs.js:752 +#: js/piemenus.js:3423 +msgid "Help" +msgstr "" + +#: js/toolbar.js:63 +#: js/toolbar.js:124 +#: js/toolbar.js:189 +#: js/toolbar.js:245 +msgid "Run slowly" +msgstr "" + +#: js/toolbar.js:64 +#: js/toolbar.js:125 +#: js/toolbar.js:190 +#: js/toolbar.js:246 +#: js/turtledefs.js:682 +msgid "Run step by step" +msgstr "" + +#: js/toolbar.js:65 +#: js/toolbar.js:126 +#: js/toolbar.js:191 +#: js/toolbar.js:247 +#: js/turtledefs.js:689 +msgid "Display statistics" +msgstr "" + +#: js/toolbar.js:66 +#: js/toolbar.js:127 +#: js/toolbar.js:192 +#: js/toolbar.js:248 +msgid "Load plugin" +msgstr "" + +#: js/toolbar.js:67 +#: js/toolbar.js:128 +#: js/toolbar.js:193 +#: js/toolbar.js:249 +#: js/turtledefs.js:696 +msgid "Delete plugin" +msgstr "" + +#: js/toolbar.js:68 +#: js/toolbar.js:129 +#: js/toolbar.js:194 +#: js/toolbar.js:250 +msgid "Enable horizontal scrolling" +msgstr "" + +#: js/toolbar.js:69 +#: js/toolbar.js:130 +#: js/toolbar.js:195 +#: js/toolbar.js:251 +msgid "Disable horizontal scrolling" +msgstr "" + +#: js/toolbar.js:70 +#: js/toolbar.js:131 +#: js/toolbar.js:196 +#: js/toolbar.js:252 +#: planet/js/LocalCard.js:54 +#: planet/js/StringHelper.js:71 +msgid "Merge with current project" +msgstr "" + +#: js/toolbar.js:71 +#: js/toolbar.js:132 +msgid "Set Pitch Preview" +msgstr "" + +#: js/toolbar.js:72 +#: js/toolbar.js:133 +#: js/toolbar.js:197 +#: js/toolbar.js:253 +msgid "JavaScript Editor" +msgstr "" + +#: js/toolbar.js:73 +#: js/toolbar.js:134 +#: js/toolbar.js:198 +#: js/toolbar.js:254 +#: js/turtledefs.js:724 +msgid "Restore" +msgstr "" + +#: js/toolbar.js:74 +#: js/toolbar.js:135 +#: js/toolbar.js:199 +#: js/toolbar.js:255 +msgid "Switch to beginner mode" +msgstr "" + +#: js/toolbar.js:75 +#: js/toolbar.js:136 +#: js/toolbar.js:200 +#: js/toolbar.js:256 +msgid "Switch to advanced mode" +msgstr "" + +#: js/toolbar.js:76 +#: js/toolbar.js:137 +#: js/toolbar.js:146 +#: js/toolbar.js:201 +#: js/toolbar.js:257 +#: js/turtledefs.js:738 +msgid "Select language" +msgstr "" + +#: js/toolbar.js:78 +#: js/toolbar.js:81 +#: js/toolbar.js:140 +#: js/turtledefs.js:579 +msgid "Save mouse artwork as PNG" +msgstr "" + +#: js/toolbar.js:80 +#: js/toolbar.js:139 +#: js/turtledefs.js:575 +msgid "Save mouse artwork as SVG" +msgstr "" + +#: js/toolbar.js:82 +#: js/toolbar.js:141 +#: js/turtledefs.js:583 +msgid "Save music as WAV" +msgstr "" + +#: js/toolbar.js:83 +#: js/toolbar.js:142 +#: js/turtledefs.js:587 +msgid "Save sheet music as ABC" +msgstr "" + +#: js/toolbar.js:84 +#: js/toolbar.js:143 +#: js/turtledefs.js:591 +msgid "Save sheet music as Lilypond" +msgstr "" + +#: js/toolbar.js:85 +msgid "Save sheet music as MusicXML" +msgstr "" + +#: js/toolbar.js:86 +#: js/toolbar.js:144 +#: js/toolbar.js:152 +#: js/toolbar.js:207 +#: js/toolbar.js:263 +#: js/turtledefs.js:562 +#: js/turtledefs.js:595 +msgid "Save block artwork as SVG" +msgstr "" + +#: js/toolbar.js:87 +#: js/toolbar.js:145 +#: js/toolbar.js:153 +#: js/toolbar.js:208 +#: js/toolbar.js:264 +#: js/turtles.js:911 +msgid "Confirm" +msgstr "" + +#: js/toolbar.js:88 +#: js/toolbar.js:154 +#: js/toolbar.js:209 +#: js/toolbar.js:265 +msgid "English (United States)" +msgstr "" + +#: js/toolbar.js:89 +#: js/toolbar.js:155 +#: js/toolbar.js:210 +#: js/toolbar.js:266 +msgid "English (United Kingdom)" +msgstr "" + +#: js/toolbar.js:90 +#: js/toolbar.js:156 +#: js/toolbar.js:211 +#: js/toolbar.js:267 +msgid "日本語" +msgstr "" + +#: js/toolbar.js:91 +msgid "한국어" +msgstr "" + +#: js/toolbar.js:92 +#: js/toolbar.js:158 +#: js/toolbar.js:213 +#: js/toolbar.js:269 +msgid "español" +msgstr "" + +#: js/toolbar.js:93 +#: js/toolbar.js:159 +#: js/toolbar.js:214 +#: js/toolbar.js:270 +msgid "português" +msgstr "" + +#: js/toolbar.js:94 +#: js/toolbar.js:160 +#: js/toolbar.js:215 +#: js/toolbar.js:271 +msgid "にほんご" +msgstr "" + +#: js/toolbar.js:95 +#: js/toolbar.js:161 +#: js/toolbar.js:216 +#: js/toolbar.js:272 +msgid "中文" +msgstr "" + +#: js/toolbar.js:96 +#: js/toolbar.js:162 +#: js/toolbar.js:217 +#: js/toolbar.js:273 +msgid "ภาษาไทย" +msgstr "" + +#: js/toolbar.js:97 +#: js/toolbar.js:163 +#: js/toolbar.js:218 +#: js/toolbar.js:274 +msgid "aymara" +msgstr "" + +#: js/toolbar.js:98 +#: js/toolbar.js:164 +#: js/toolbar.js:219 +#: js/toolbar.js:275 +msgid "quechua" +msgstr "" + +#: js/toolbar.js:99 +#: js/toolbar.js:165 +#: js/toolbar.js:220 +#: js/toolbar.js:276 +msgid "guarani" +msgstr "" + +#: js/toolbar.js:100 +#: js/toolbar.js:166 +#: js/toolbar.js:221 +#: js/toolbar.js:277 +msgid "हिंदी" +msgstr "" + +#: js/toolbar.js:101 +#: js/toolbar.js:168 +#: js/toolbar.js:222 +#: js/toolbar.js:279 +msgid "igbo" +msgstr "" + +#: js/toolbar.js:102 +#: js/toolbar.js:169 +#: js/toolbar.js:223 +#: js/toolbar.js:280 +msgid "عربى" +msgstr "" + +#: js/toolbar.js:103 +#: js/toolbar.js:167 +#: js/toolbar.js:224 +#: js/toolbar.js:278 +msgid "తెలుగు" +msgstr "" + +#: js/toolbar.js:104 +#: js/toolbar.js:170 +#: js/toolbar.js:225 +#: js/toolbar.js:281 +msgid "עִברִית" +msgstr "" + +#: js/toolbar.js:113 +#: js/toolbar.js:114 +#: js/toolbar.js:178 +#: js/toolbar.js:179 +#: js/toolbar.js:234 +#: js/toolbar.js:235 +msgid "Full Screen" +msgstr "" + +#: js/toolbar.js:148 +#: js/toolbar.js:151 +#: js/toolbar.js:203 +#: js/toolbar.js:206 +#: js/toolbar.js:259 +#: js/toolbar.js:262 +#: js/turtledefs.js:558 +msgid "Save turtle artwork as PNG" +msgstr "" + +#: js/toolbar.js:150 +#: js/toolbar.js:205 +#: js/toolbar.js:261 +#: js/turtledefs.js:554 +msgid "Save turtle artwork as SVG" +msgstr "" + +#: js/toolbar.js:157 +#: js/toolbar.js:212 +#: js/toolbar.js:268 +msgid "한국인" +msgstr "" + +#: js/toolbar.js:174 +#: js/toolbar.js:230 +msgid "About Turtle Blocks" +msgstr "" + +#: js/toolbar.js:446 +#: js/toolbar.js:457 +#: js/toolbar.js:497 +msgid "Turtle Wrap Off" +msgstr "" + +#: js/toolbar.js:466 +#: js/toolbar.js:506 +msgid "Turtle Wrap On" +msgstr "" + +#: js/turtle-painter.js:1192 +#: js/turtle-painter.js:1193 +#: js/turtles.js:118 +#: js/block-verbose.js:1623 +#: js/block.js:1587 +#: js/lilypond.js:749 +#: js/lilypond.js:913 +#: js/lilypond.js:951 +#: js/logo.js:1184 +#: js/blocks/ActionBlocks.js:1223 +#: js/blocks/ProgramBlocks.js:1267 +msgid "start" +msgstr "start" + +#: js/turtledefs.js:40 +#.TRANS: put the URL to the guide here, e.g., https://github.com/sugarlabs/turtleblocksjs/tree/master/guide/README.md +msgid "guide url" +msgstr "" + +#: js/turtledefs.js:85 +#: js/turtledefs.js:437 +msgid "Turtle Blocks is a Logo-inspired turtle that draws colorful pictures with snap-together visual-programming blocks." +msgstr "" + +#: js/turtledefs.js:118 +#: js/turtledefs.js:220 +msgid "search" +msgstr "" + +#: js/turtledefs.js:120 +#: js/turtledefs.js:222 +#: js/blocks/MeterBlocks.js:1343 +#: js/blocks/WidgetBlocks.js:522 +#.TRANS: musical meter (time signature), e.g., 4:4 +msgid "meter" +msgstr "" + +#: js/turtledefs.js:122 +#: js/turtledefs.js:224 +msgid "intervals" +msgstr "" + +#: js/turtledefs.js:124 +#: js/turtledefs.js:226 +msgid "ornament" +msgstr "" + +#: js/turtledefs.js:125 +#: js/turtledefs.js:227 +#: js/blocks/VolumeBlocks.js:362 +#: js/blocks/VolumeBlocks.js:502 +#: js/blocks/VolumeBlocks.js:545 +msgid "volume" +msgstr "" + +#: js/turtledefs.js:126 +#: js/turtledefs.js:228 +#: js/block-verbose.js:1700 +#: js/block-verbose.js:2626 +#: js/block.js:1664 +#: js/block.js:2554 +#: js/lilypond.js:732 +#: js/lilypond.js:897 +#: js/lilypond.js:941 +#: js/palette.js:577 +#: js/blocks/RhythmBlocks.js:766 +#: js/blocks/DrumBlocks.js:477 +#: js/blocks/VolumeBlocks.js:502 +#: js/widgets/phrasemaker.js:1038 +msgid "drum" +msgstr "" + +#: js/turtledefs.js:129 +#: js/turtledefs.js:231 +msgid "boxes" +msgstr "" + +#: js/turtledefs.js:130 +#: js/turtledefs.js:232 +msgid "widgets" +msgstr "" + +#: js/turtledefs.js:131 +#: js/turtledefs.js:233 +#: js/widgets/phrasemaker.js:1039 +msgid "graphics" +msgstr "" + +#: js/turtledefs.js:134 +#: js/turtledefs.js:236 +msgid "boolean" +msgstr "" + +#: js/turtledefs.js:137 +#: js/turtledefs.js:239 +#: js/blocks/HeapBlocks.js:59 +#: js/widgets/status.js:147 +msgid "heap" +msgstr "" + +#: js/turtledefs.js:138 +#: js/turtledefs.js:240 +#: js/blocks/DictBlocks.js:142 +#: js/blocks/ProgramBlocks.js:495 +msgid "dictionary" +msgstr "" + +#: js/turtledefs.js:139 +#: js/turtledefs.js:241 +msgid "ensemble" +msgstr "" + +#: js/turtledefs.js:140 +#: js/turtledefs.js:242 +msgid "extras" +msgstr "" + +#: js/turtledefs.js:142 +#: js/turtledefs.js:244 +#.TRANS: program as in computer program +#.TRANS: program as in computer program +msgid "program" +msgstr "" + +#: js/turtledefs.js:143 +#: js/turtledefs.js:245 +msgid "my blocks" +msgstr "" + +#: js/turtledefs.js:185 +#: js/turtledefs.js:281 +msgid "artwork" +msgstr "" + +#: js/turtledefs.js:185 +#: js/turtledefs.js:281 +msgid "logic" +msgstr "" + +#: js/turtledefs.js:185 +#: js/turtledefs.js:281 +msgid "music" +msgstr "" + +#: js/turtledefs.js:187 +#: js/turtledefs.js:463 +msgid "Music Blocks is a collection of tools for exploring fundamental musical concepts in a fun way." +msgstr "" + +#: js/turtledefs.js:436 +msgid "Welcome to Turtle Blocks" +msgstr "" + +#: js/turtledefs.js:438 +#: js/turtledefs.js:465 +#: js/turtledefs.js:774 +#: js/turtledefs.js:805 +msgid "The current version is" +msgstr "" + +#: js/turtledefs.js:446 +#: js/turtledefs.js:483 +msgid "Click the run button to run the project in fast mode." +msgstr "" + +#: js/turtledefs.js:452 +msgid "Stop the turtle." +msgstr "" + +#: js/turtledefs.js:454 +#: js/turtledefs.js:491 +msgid "You can also type Alt-S to stop." +msgstr "" + +#: js/turtledefs.js:462 +#: js/widgets/help.js:333 +msgid "Welcome to Music Blocks" +msgstr "" + +#: js/turtledefs.js:472 +#: js/widgets/help.js:334 +msgid "Meet Mr. Mouse!" +msgstr "" + +#: js/turtledefs.js:473 +msgid "Mr Mouse is our Music Blocks conductor." +msgstr "" + +#: js/turtledefs.js:475 +msgid "Mr Mouse encourages you to explore Music Blocks." +msgstr "" + +#: js/turtledefs.js:477 +msgid "Let us start our tour!" +msgstr "" + +#: js/turtledefs.js:489 +msgid "Stop the music (and the mice)." +msgstr "" + +#: js/turtledefs.js:499 +msgid "Record your project as video." +msgstr "" + +#: js/turtledefs.js:505 +msgid "Toggle Fullscreen mode." +msgstr "" + +#: js/turtledefs.js:511 +msgid "Initialize a new project." +msgstr "" + +#: js/turtledefs.js:517 +msgid "You can also load projects from the file system." +msgstr "" + +#: js/turtledefs.js:522 +#: planet/js/StringHelper.js:46 +msgid "Delete" +msgstr "" + +#: js/turtledefs.js:523 +msgid "To delete a block, just right-click on it, then you will be able to see the delete option" +msgstr "" + +#: js/turtledefs.js:528 +#: js/activity.js:2649 +#: planet/js/LocalCard.js:31 +msgid "Copy" +msgstr "" + +#: js/turtledefs.js:529 +msgid "To copy a block, just right-click on it, then you will be able to see the copy option" +msgstr "" + +#: js/turtledefs.js:534 +#: js/piemenus.js:3411 +msgid "Extract" +msgstr "" + +#: js/turtledefs.js:535 +msgid "To extract a block, just right-click on it, then you will be able to see the extract option" +msgstr "" + +#: js/turtledefs.js:542 +#: js/turtledefs.js:552 +#: js/turtledefs.js:573 +msgid "Save your project to a file." +msgstr "" + +#: js/turtledefs.js:549 +#: js/turtledefs.js:570 +msgid "save" +msgstr "" + +#: js/turtledefs.js:556 +#: js/turtledefs.js:577 +msgid "Save graphics from your project to as SVG." +msgstr "" + +#: js/turtledefs.js:560 +#: js/turtledefs.js:581 +msgid "Save graphics from your project as PNG." +msgstr "" + +#: js/turtledefs.js:564 +#: js/turtledefs.js:597 +msgid "Save block artwork as an SVG file." +msgstr "" + +#: js/turtledefs.js:585 +msgid "Save audio from your project as WAV." +msgstr "" + +#: js/turtledefs.js:589 +msgid "Save your project to as an ABC file." +msgstr "" + +#: js/turtledefs.js:593 +msgid "Save your project to as a Lilypond file." +msgstr "" + +#: js/turtledefs.js:604 +msgid "Load samples from server" +msgstr "" + +#: js/turtledefs.js:605 +msgid "This button opens a viewer for loading example projects." +msgstr "" + +#: js/turtledefs.js:611 +msgid "Palette buttons" +msgstr "" + +#: js/turtledefs.js:612 +msgid "This toolbar contains the palette buttons including Rhythm Pitch Tone Action and more." +msgstr "" + +#: js/turtledefs.js:614 +msgid "Click to show the palettes of blocks and drag blocks from the palettes onto the canvas to use them." +msgstr "" + +#: js/turtledefs.js:620 +msgid "Cartesian/Polar" +msgstr "" + +#: js/turtledefs.js:621 +msgid "Show or hide a coordinate grid." +msgstr "" + +#: js/turtledefs.js:626 +#: js/turtles.js:902 +msgid "Clean" +msgstr "" + +#: js/turtledefs.js:627 +msgid "Clear the screen and return the mice to their initial positions." +msgstr "" + +#: js/turtledefs.js:632 +#: js/turtles.js:955 +msgid "Collapse" +msgstr "" + +#: js/turtledefs.js:633 +msgid "Collapse the graphics window." +msgstr "" + +#: js/turtledefs.js:638 +#: js/activity.js:5684 +msgid "Home" +msgstr "" + +#: js/turtledefs.js:639 +msgid "Return all blocks to the center of the screen." +msgstr "" + +#: js/turtledefs.js:644 +msgid "Show/hide blocks" +msgstr "" + +#: js/turtledefs.js:645 +msgid "Hide or show the blocks and the palettes." +msgstr "" + +#: js/turtledefs.js:650 +msgid "Expand/collapse collapsable blocks" +msgstr "" + +#: js/turtledefs.js:651 +msgid "Expand or collapse start and action stacks." +msgstr "" + +#: js/turtledefs.js:658 +#: js/activity.js:5704 +msgid "Decrease block size" +msgstr "" + +#: js/turtledefs.js:659 +msgid "Decrease the size of the blocks." +msgstr "" + +#: js/turtledefs.js:664 +#: js/activity.js:5710 +msgid "Increase block size" +msgstr "" + +#: js/turtledefs.js:665 +msgid "Increase the size of the blocks." +msgstr "" + +#: js/turtledefs.js:670 +msgid "Expand/collapse option toolbar" +msgstr "" + +#: js/turtledefs.js:671 +msgid "Click this button to expand or collapse the auxillary toolbar." +msgstr "" + +#: js/turtledefs.js:676 +msgid "Run slow" +msgstr "" + +#: js/turtledefs.js:677 +msgid "Click to run the project in slow mode." msgstr "" -#: js/palette.js:571 -msgid "grid" +#: js/turtledefs.js:683 +msgid "Click to run the project step by step." msgstr "" -#: js/palette.js:577 -#: js/block.js:1540 -#: js/block.js:2343 -#: js/turtledefs.js:126 -#: js/turtledefs.js:228 -#: js/lilypond.js:740 -#: js/lilypond.js:905 -#: js/lilypond.js:949 -#: js/DrumBlocks.js:486 -#: js/RhythmBlocks.js:766 -#: js/VolumeBlocks.js:502 -#: js/phrasemaker.js:823 -msgid "drum" +#: js/turtledefs.js:690 +msgid "Display statistics about your Music project." msgstr "" -#: js/palette.js:580 -msgid "effect" +#: js/turtledefs.js:697 +msgid "Delete a selected plugin." msgstr "" -#: js/palette.js:586 -msgid "sargam" +#: js/turtledefs.js:704 +msgid "Enable scrolling" msgstr "" -#: js/palette.js:589 -#: js/activity.js:1833 -#: js/RhythmBlocks.js:923 -#: js/PitchBlocks.js:442 -#: js/PitchBlocks.js:1748 -#.TRANS: a numeric mapping of the notes in an octave based on the musical mode -msgid "scale degree" +#: js/turtledefs.js:705 +msgid "You can scroll the blocks on the canvas." msgstr "" -#: js/palette.js:592 -#: js/activity.js:1860 -msgid "mode name" +#: js/turtledefs.js:714 +msgid "Wrap Turtle" msgstr "" -#: js/palette.js:595 -#: js/activity.js:1839 -msgid "invert mode" +#: js/turtledefs.js:715 +msgid "Turn Turtle wrapping On or Off." msgstr "" -#: js/palette.js:598 -#: js/activity.js:1836 -msgid "voice name" +#: js/turtledefs.js:725 +msgid "Restore blocks from the trash." msgstr "" -#: js/palette.js:601 -#: js/PitchBlocks.js:1181 -msgid "custom pitch" +#: js/turtledefs.js:732 +msgid "Switch mode" msgstr "" -#: js/palette.js:605 -#: js/block.js:1456 -#: js/block.js:1575 -#: js/WidgetBlocks.js:218 -#: js/IntervalsBlocks.js:63 -msgid "temperament" +#: js/turtledefs.js:733 +msgid "Switch between beginner and advance modes." msgstr "" -#: js/palette.js:609 -msgid "accidental" +#: js/turtledefs.js:739 +msgid "Select your language preference." msgstr "" -#: js/palette.js:615 -#: js/activity.js:1866 -msgid "interval name" +#: js/turtledefs.js:745 +msgid "Keyboard shortcuts" msgstr "" -#: js/palette.js:633 -#: js/PitchBlocks.js:405 -msgid "pitch converter" +#: js/turtledefs.js:746 +msgid "You can type d to create a do block and r to create a re block etc." msgstr "" -#: js/rubrics.js:522 -#: js/turtledefs.js:119 -#: js/turtledefs.js:221 -#: js/RhythmBlockPaletteBlocks.js:52 -#: js/RhythmBlockPaletteBlocks.js:233 -#: js/ProgramBlocks.js:745 -#: js/rhythmruler.js:1670 -#: js/rhythmruler.js:1677 -#: js/rhythmruler.js:1745 -#: js/rhythmruler.js:1752 -#: js/rhythmruler.js:1830 -#.TRANS: an arrangement of notes based on duration -msgid "rhythm" +#: js/turtledefs.js:753 +msgid "Show these messages." msgstr "" -#: js/rubrics.js:523 -#: js/block.js:2339 -#: js/turtledefs.js:121 -#: js/turtledefs.js:223 -#: js/IntervalsBlocks.js:63 -#: js/PitchBlocks.js:1801 -#: js/PitchBlocks.js:1814 -#: js/SensorsBlocks.js:178 -#: js/phrasemaker.js:821 -#: js/musickeyboard.js:1653 -#.TRANS: pitch number -#.TRANS: we specify pitch in terms of a name and an octave. The name can be CDEFGAB or Do Re Mi Fa Sol La Ti. Octave is a number between 1 and 8. -msgid "pitch" +#: js/turtledefs.js:759 +#: js/turtledefs.js:790 +#: js/widgets/help.js:335 +msgid "Guide" msgstr "" -#: js/rubrics.js:524 -#: js/turtledefs.js:123 -#: js/turtledefs.js:225 -msgid "tone" +#: js/turtledefs.js:760 +msgid "A detailed guide to Turtle Blocks is available." msgstr "" -#: js/rubrics.js:525 -#: js/lilypond.js:613 -#: js/lilypond.js:912 -#: js/lilypond.js:918 -#: js/lilypond.js:956 -msgid "mouse" +#: js/turtledefs.js:764 +msgid "Turtle Blocks Guide" msgstr "" -#: js/rubrics.js:526 -#: js/turtledefs.js:132 -#: js/turtledefs.js:234 -#: js/phrasemaker.js:825 -msgid "pen" +#: js/turtledefs.js:767 +#: js/turtledefs.js:798 +#: js/widgets/help.js:336 +msgid "About" msgstr "" -#: js/rubrics.js:527 -#: js/turtledefs.js:133 -#: js/turtledefs.js:235 -#: js/NumberBlocks.js:905 -#: js/PitchBlocks.js:1679 -#: js/PitchBlocks.js:1720 -msgid "number" +#: js/turtledefs.js:768 +msgid "Turtle Blocks is an open source collection of tools for exploring musical concepts." msgstr "" -#: js/rubrics.js:528 -#: js/turtledefs.js:127 -#: js/turtledefs.js:229 -msgid "flow" +#: js/turtledefs.js:770 +msgid "A full list of contributors can be found in the Turtle Blocks GitHub repository." msgstr "" -#: js/rubrics.js:530 -#: js/turtledefs.js:136 -#: js/turtledefs.js:238 -msgid "sensors" +#: js/turtledefs.js:772 +msgid "Turtle Blocks is licensed under the AGPL." msgstr "" -#: js/rubrics.js:531 -#: js/turtledefs.js:135 -#: js/turtledefs.js:237 -#: js/MediaBlocks.js:930 -msgid "media" +#: js/turtledefs.js:780 +msgid "Turtle Blocks GitHub repository" msgstr "" -#: js/rubrics.js:532 -msgid "mice" +#: js/turtledefs.js:783 +#: js/turtledefs.js:814 +#: js/widgets/help.js:337 +#: js/widgets/help.js:359 +msgid "Congratulations." msgstr "" -#: js/macros.js:711 -#: js/musicutils.js:783 -#: js/synthutils.js:181 -#.TRANS: animal sound effect -msgid "duck" +#: js/turtledefs.js:784 +msgid "You have finished the tour. Please enjoy Turtle Blocks!" msgstr "" -#: js/toolbar.js:46 -#: js/toolbar.js:107 -msgid "About Music Blocks" +#: js/turtledefs.js:791 +msgid "A detailed guide to Music Blocks is available." msgstr "" -#: js/toolbar.js:47 -#: js/toolbar.js:108 -#: js/toolbar.js:172 -#: js/toolbar.js:228 -#: js/turtledefs.js:445 -#: js/turtledefs.js:482 -#: js/activity.js:2281 -#: js/activity.js:2289 -#: js/activity.js:2520 -#: js/modewidget.js:77 -#: js/pitchstaircase.js:121 -#: js/phrasemaker.js:302 -#: js/phrasemaker.js:312 -#: js/phrasemaker.js:314 -#: js/phrasemaker.js:3901 -#: js/phrasemaker.js:4061 -#: js/phrasemaker.js:4066 -#: js/phrasemaker.js:4068 -#: js/phrasemaker.js:4183 -#: js/pitchdrummatrix.js:81 -#: js/pitchdrummatrix.js:574 -#: js/pitchdrummatrix.js:576 -#: js/pitchdrummatrix.js:628 -#: js/pitchdrummatrix.js:630 -#: js/pitchdrummatrix.js:645 -#: js/pitchdrummatrix.js:647 -#: js/pitchdrummatrix.js:674 -#: js/pitchdrummatrix.js:676 -#: js/temperament.js:477 -#: js/temperament.js:480 -#: js/temperament.js:540 -#: js/temperament.js:542 -#: js/temperament.js:1835 -#: js/temperament.js:1837 -#: js/temperament.js:1986 -#: js/temperament.js:1988 -#: js/musickeyboard.js:522 -#: js/musickeyboard.js:682 -#: js/musickeyboard.js:684 -#: js/musickeyboard.js:756 -#: js/musickeyboard.js:758 -#: js/rhythmruler.js:298 -#: js/rhythmruler.js:300 -#: js/rhythmruler.js:314 -#: js/rhythmruler.js:316 -#: js/sampler.js:96 -#: js/sampler.js:98 -#: js/sampler.js:229 -#: js/sampler.js:235 -#: js/sampler.js:237 -#: js/tempo.js:84 -#: js/tempo.js:86 -#: js/timbre.js:432 -#: js/timbre.js:434 -#: js/timbre.js:465 -#: js/timbre.js:467 -#: js/timbre.js:746 -#: js/meterwidget.js:80 -#: js/arpeggio.js:90 -#: js/arpeggio.js:547 -#: js/arpeggio.js:549 -#: js/arpeggio.js:644 -#: js/arpeggio.js:646 -msgid "Play" +#: js/turtledefs.js:799 +msgid "Music Blocks is an open source collection of tools for exploring musical concepts." msgstr "" -#: js/toolbar.js:48 -#: js/toolbar.js:109 -#: js/toolbar.js:173 -#: js/toolbar.js:229 -#: js/turtledefs.js:451 -#: js/turtledefs.js:488 -#: js/activity.js:2297 -#: js/modewidget.js:99 -#: js/modewidget.js:101 -#: js/phrasemaker.js:323 -#: js/phrasemaker.js:325 -#: js/pitchdrummatrix.js:561 -#: js/pitchdrummatrix.js:563 -#: js/temperament.js:1820 -#: js/temperament.js:1822 -#: js/meterwidget.js:101 -#: js/meterwidget.js:103 -#: js/arpeggio.js:534 -#: js/arpeggio.js:536 -msgid "Stop" +#: js/turtledefs.js:801 +msgid "A full list of contributors can be found in the Music Blocks GitHub repository." msgstr "" -#: js/toolbar.js:49 -#: js/toolbar.js:110 -#: js/toolbar.js:174 -#: js/toolbar.js:230 -#: js/turtledefs.js:498 -msgid "Record" +#: js/turtledefs.js:803 +msgid "Music Blocks is licensed under the AGPL." msgstr "" -#: js/toolbar.js:50 -#: js/toolbar.js:51 -msgid "Full screen" +#: js/turtledefs.js:811 +msgid "Music Blocks GitHub repository" msgstr "" -#: js/toolbar.js:52 -#: js/toolbar.js:112 -#: js/toolbar.js:177 -#: js/toolbar.js:232 -#: js/turtledefs.js:504 -msgid "Toggle Fullscreen" +#: js/turtledefs.js:815 +msgid "You have finished the tour. Please enjoy Music Blocks!" msgstr "" -#: js/toolbar.js:53 -#: js/toolbar.js:113 -#: js/toolbar.js:178 -#: js/toolbar.js:233 -#: js/turtledefs.js:510 -#: js/StringHelper.js:33 -msgid "New project" +#: js/turtles.js:882 +msgid "Grid" msgstr "" -#: js/toolbar.js:54 -#: js/toolbar.js:114 -#: js/toolbar.js:179 -#: js/toolbar.js:234 -#: js/turtledefs.js:516 -msgid "Load project from file" +#: js/turtles.js:1024 +msgid "Expand" msgstr "" -#: js/toolbar.js:55 -#: js/toolbar.js:115 -#: js/toolbar.js:116 -#: js/toolbar.js:180 -#: js/toolbar.js:235 -#: js/turtledefs.js:541 -#: js/turtledefs.js:550 -#: js/turtledefs.js:571 -msgid "Save project" +#: js/block-verbose.js:1616 +#: js/block-verbose.js:1735 +#: js/block.js:1580 +#: js/block.js:1699 +#: js/palette.js:605 +#: js/blocks/IntervalsBlocks.js:63 +#: js/blocks/WidgetBlocks.js:259 +msgid "temperament" msgstr "" -#: js/toolbar.js:56 -#: js/toolbar.js:75 -#: js/toolbar.js:77 -#: js/toolbar.js:135 -#: js/toolbar.js:144 -#: js/toolbar.js:146 -#: js/toolbar.js:181 -#: js/toolbar.js:199 -#: js/toolbar.js:201 -#: js/toolbar.js:236 -#: js/toolbar.js:254 -#: js/toolbar.js:256 -msgid "Save project as HTML" +#: js/block-verbose.js:1630 +#: js/block.js:1594 +msgid "matrix" msgstr "" -#: js/toolbar.js:57 -#: js/toolbar.js:117 -#: js/toolbar.js:182 -#: js/toolbar.js:237 -msgid "Find and share projects" +#: js/block-verbose.js:1637 +#: js/block.js:1601 +#: js/blocks/WidgetBlocks.js:1509 +#: plugins/rodi.rtp:324 +msgid "status" msgstr "" -#: js/toolbar.js:58 -#: js/toolbar.js:118 -#: js/toolbar.js:183 -#: js/toolbar.js:238 -msgid "Offline. Sharing is unavailable" +#: js/block-verbose.js:1644 +#: js/block.js:1608 +msgid "drum mapper" msgstr "" -#: js/toolbar.js:59 -#: js/toolbar.js:119 -#: js/toolbar.js:184 -#: js/toolbar.js:239 -msgid "Auxiliary menu" +#: js/block-verbose.js:1651 +#: js/block.js:1615 +msgid "ruler" msgstr "" -#: js/toolbar.js:61 -#: js/toolbar.js:121 -#: js/toolbar.js:186 -#: js/toolbar.js:241 -msgid "Run slowly" +#: js/block-verbose.js:1658 +#: js/block.js:1622 +#: js/blocks/WidgetBlocks.js:397 +#.TRANS: timbre is the character or quality of a musical sound +msgid "timbre" msgstr "" -#: js/toolbar.js:62 -#: js/toolbar.js:122 -#: js/toolbar.js:187 -#: js/toolbar.js:242 -#: js/turtledefs.js:682 -msgid "Run step by step" +#: js/block-verbose.js:1665 +#: js/block.js:1629 +msgid "stair" msgstr "" -#: js/toolbar.js:63 -#: js/toolbar.js:123 -#: js/toolbar.js:188 -#: js/toolbar.js:243 -#: js/turtledefs.js:689 -msgid "Display statistics" +#: js/block-verbose.js:1672 +#: js/block.js:1636 +#: js/blocks/WidgetBlocks.js:707 +#.TRANS: the speed at music is should be played. +msgid "tempo" +msgstr "" + +#: js/block-verbose.js:1679 +#: js/block-verbose.js:1742 +#: js/block.js:1643 +#: js/block.js:1706 +#: js/blocks/IntervalsBlocks.js:1464 +#.TRANS: mode, e.g., Major in C Major +msgid "mode" +msgstr "" + +#: js/block-verbose.js:1686 +#: js/block.js:1650 +msgid "slider" +msgstr "" + +#: js/block-verbose.js:1693 +#: js/block.js:1657 +#: js/blocks/SensorsBlocks.js:1001 +msgid "keyboard" +msgstr "tastatur" + +#: js/block-verbose.js:1707 +#: js/block.js:1671 +#: js/blocks/WidgetBlocks.js:1190 +#: js/blocks/WidgetBlocks.js:1228 +#.TRANS: widget for subdividing a measure into distinct rhythmic elements +msgid "rhythm maker" msgstr "" -#: js/toolbar.js:64 -#: js/toolbar.js:124 -#: js/toolbar.js:189 -#: js/toolbar.js:244 -msgid "Load plugin" +#: js/block-verbose.js:1714 +#: js/block-verbose.js:2457 +#: js/block-verbose.js:2514 +#: js/block.js:1678 +#: js/block.js:2385 +#: js/block.js:2442 +#: js/blocks/MeterBlocks.js:1367 +#: js/blocks/OrnamentBlocks.js:220 +#: js/blocks/OrnamentBlocks.js:312 +#: js/blocks/RhythmBlocks.js:33 +#: js/blocks/RhythmBlocks.js:356 +#: js/blocks/RhythmBlocks.js:766 +#: js/blocks/RhythmBlocks.js:806 +#: js/blocks/RhythmBlockPaletteBlocks.js:70 +#: js/blocks/RhythmBlockPaletteBlocks.js:252 +#: js/blocks/RhythmBlockPaletteBlocks.js:485 +#: js/blocks/RhythmBlockPaletteBlocks.js:554 +#: js/blocks/RhythmBlockPaletteBlocks.js:605 +#: js/blocks/RhythmBlockPaletteBlocks.js:875 +#: js/turtleactions/DictActions.js:85 +#: js/widgets/phrasemaker.js:942 +#: js/widgets/phrasemaker.js:2656 +#: js/widgets/phrasemaker.js:2699 +#: js/widgets/phrasemaker.js:2810 +#.TRANS: the value (e.g., 1/4 note) of the note being played. +msgid "note value" msgstr "" -#: js/toolbar.js:65 -#: js/toolbar.js:125 -#: js/toolbar.js:190 -#: js/toolbar.js:245 -#: js/turtledefs.js:696 -msgid "Delete plugin" +#: js/block-verbose.js:1721 +#: js/block-verbose.js:2382 +#: js/block-verbose.js:2405 +#: js/block.js:1685 +#: js/block.js:2310 +#: js/block.js:2333 +#: js/blocks/IntervalsBlocks.js:1071 +#: js/blocks/OrnamentBlocks.js:312 +#.TRANS: calculate a relative step between notes based on semi-tones +msgid "scalar interval" msgstr "" -#: js/toolbar.js:66 -#: js/toolbar.js:126 -#: js/toolbar.js:191 -#: js/toolbar.js:246 -msgid "Enable horizontal scrolling" +#: js/block-verbose.js:1728 +#: js/block.js:1692 +#: js/blocks/RhythmBlocks.js:148 +msgid "milliseconds" msgstr "" -#: js/toolbar.js:67 -#: js/toolbar.js:127 -#: js/toolbar.js:192 -#: js/toolbar.js:247 -msgid "Disable horizontal scrolling" +#: js/block-verbose.js:2455 +#: js/block-verbose.js:2459 +#: js/block-verbose.js:2512 +#: js/block-verbose.js:2628 +#: js/block.js:2383 +#: js/block.js:2387 +#: js/block.js:2440 +#: js/block.js:2556 +#: js/blocks/RhythmBlocks.js:712 +#: js/blocks/ProgramBlocks.js:1273 +#: js/widgets/rhythmruler.js:1183 +#: js/widgets/rhythmruler.js:1329 +msgid "silence" msgstr "" -#: js/toolbar.js:68 -#: js/toolbar.js:128 -#: js/toolbar.js:193 -#: js/toolbar.js:248 -#: js/LocalCard.js:54 -#: js/StringHelper.js:71 -msgid "Merge with current project" +#: js/block-verbose.js:2548 +#: js/block-verbose.js:3492 +#: js/block-verbose.js:3509 +#: js/activity.js:2718 +#: js/activity.js:2769 +#: js/block.js:2476 +#: js/block.js:3416 +#: js/block.js:3433 +#: js/utils/musicutils.js:3780 +#: js/utils/musicutils.js:5273 +#.TRANS: the note names must be separated by single spaces +#.TRANS: the note names must be separated by single spaces +#.TRANS: the note names must be separated by single spaces +msgid "ti la sol fa mi re do" msgstr "" -#: js/toolbar.js:69 -#: js/toolbar.js:129 -msgid "Set Pitch Preview" +#: js/block-verbose.js:2616 +#: js/block.js:2544 +#.TRANS: scalar step +#.TRANS: scalar step +msgid "down" msgstr "" -#: js/toolbar.js:70 -#: js/toolbar.js:130 -#: js/toolbar.js:194 -#: js/toolbar.js:249 -msgid "Toggle JavaScript Editor" +#: js/block-verbose.js:2617 +#: js/block.js:2545 +msgid "up" msgstr "" -#: js/toolbar.js:71 -#: js/toolbar.js:131 -#: js/toolbar.js:195 -#: js/toolbar.js:250 -#: js/turtledefs.js:724 -msgid "Restore" +#: js/block-verbose.js:3026 +#: js/block.js:2950 +msgid "Silence block cannot be removed." msgstr "" -#: js/toolbar.js:72 -#: js/toolbar.js:132 -#: js/toolbar.js:196 -#: js/toolbar.js:251 -msgid "Switch to beginner mode" +#: js/block-verbose.js:3824 +#: js/block.js:3748 +#: js/blocks.js:2607 +#: js/blocks.js:3218 +#: js/palette.js:618 +#: js/blocks/BooleanBlocks.js:77 +#: js/blocks/BooleanBlocks.js:167 +#: js/blocks/BooleanBlocks.js:251 +#: js/blocks/BooleanBlocks.js:335 +#: js/blocks/BooleanBlocks.js:433 +#: js/blocks/BooleanBlocks.js:539 +#: js/blocks/BooleanBlocks.js:640 +#: js/blocks/BooleanBlocks.js:741 +#: js/blocks/BooleanBlocks.js:847 +#: js/blocks/BooleanBlocks.js:948 +#: js/blocks/BooleanBlocks.js:1033 +#: js/blocks/SensorsBlocks.js:910 +msgid "true" msgstr "" -#: js/toolbar.js:73 -#: js/toolbar.js:133 -#: js/toolbar.js:197 -#: js/toolbar.js:252 -msgid "Switch to advanced mode" +#: js/block-verbose.js:3824 +#: js/block.js:3748 +#: js/blocks.js:2609 +#: js/blocks.js:3220 +#: js/blocks/BooleanBlocks.js:79 +#: js/blocks/BooleanBlocks.js:169 +#: js/blocks/BooleanBlocks.js:253 +#: js/blocks/BooleanBlocks.js:337 +#: js/blocks/BooleanBlocks.js:435 +#: js/blocks/BooleanBlocks.js:541 +#: js/blocks/BooleanBlocks.js:642 +#: js/blocks/BooleanBlocks.js:743 +#: js/blocks/BooleanBlocks.js:849 +#: js/blocks/BooleanBlocks.js:950 +#: js/blocks/SensorsBlocks.js:912 +msgid "false" msgstr "" -#: js/toolbar.js:74 -#: js/toolbar.js:134 -#: js/toolbar.js:143 -#: js/toolbar.js:198 -#: js/toolbar.js:253 -#: js/turtledefs.js:738 -msgid "Select language" +#: js/block-verbose.js:3835 +#: js/block-verbose.js:3848 +#: js/block.js:3759 +#: js/block.js:3772 +#: js/blocks/ExtrasBlocks.js:615 +msgid "Cartesian" msgstr "" -#: js/toolbar.js:76 -#: js/toolbar.js:79 -#: js/toolbar.js:137 -#: js/turtledefs.js:579 -msgid "Save mouse artwork as PNG" +#: js/block-verbose.js:3836 +#: js/block-verbose.js:3849 +#: js/block.js:3760 +#: js/block.js:3773 +#: js/blocks/ExtrasBlocks.js:619 +msgid "polar" msgstr "" -#: js/toolbar.js:78 -#: js/toolbar.js:136 -#: js/turtledefs.js:575 -msgid "Save mouse artwork as SVG" +#: js/block-verbose.js:3837 +#: js/block-verbose.js:3850 +#: js/block.js:3761 +#: js/block.js:3774 +#: js/blocks/ExtrasBlocks.js:623 +msgid "Cartesian+polar" msgstr "" -#: js/toolbar.js:80 -#: js/toolbar.js:138 -#: js/turtledefs.js:583 -msgid "Save music as WAV" +#: js/block-verbose.js:3838 +#: js/block-verbose.js:3857 +#: js/block.js:3762 +#: js/block.js:3781 +#: js/blocks/ExtrasBlocks.js:652 +msgid "none" msgstr "" -#: js/toolbar.js:81 -#: js/toolbar.js:139 -#: js/turtledefs.js:587 -msgid "Save sheet music as ABC" +#: js/block-verbose.js:3851 +#: js/block.js:3775 +#: js/blocks/ExtrasBlocks.js:628 +msgid "treble" msgstr "" -#: js/toolbar.js:82 -#: js/toolbar.js:140 -#: js/turtledefs.js:591 -msgid "Save sheet music as Lilypond" +#: js/block-verbose.js:3852 +#: js/block.js:3776 +#: js/blocks/ExtrasBlocks.js:632 +msgid "grand staff" msgstr "" -#: js/toolbar.js:83 -msgid "Save sheet music as MusicXML" +#: js/block-verbose.js:3853 +#: js/block.js:3777 +#: js/blocks/ExtrasBlocks.js:636 +msgid "mezzo-soprano" msgstr "" -#: js/toolbar.js:84 -#: js/toolbar.js:141 -#: js/toolbar.js:149 -#: js/toolbar.js:204 -#: js/toolbar.js:259 -#: js/turtledefs.js:562 -#: js/turtledefs.js:595 -msgid "Save block artwork as SVG" +#: js/block-verbose.js:3854 +#: js/block.js:3778 +#: js/blocks/ExtrasBlocks.js:640 +msgid "alto" msgstr "" -#: js/toolbar.js:85 -#: js/toolbar.js:142 -#: js/toolbar.js:150 -#: js/toolbar.js:205 -#: js/toolbar.js:260 -msgid "Confirm" +#: js/block-verbose.js:3855 +#: js/block.js:3779 +#: js/blocks/ExtrasBlocks.js:644 +msgid "tenor" msgstr "" -#: js/toolbar.js:86 -#: js/toolbar.js:151 -#: js/toolbar.js:206 -#: js/toolbar.js:261 -msgid "English (United States)" +#: js/block-verbose.js:3856 +#: js/block.js:3780 +#: js/utils/musicutils.js:1115 +#: js/utils/synthutils.js:80 +#: js/blocks/ExtrasBlocks.js:648 +#.TRANS: musical instrument +msgid "bass" msgstr "" -#: js/toolbar.js:87 -#: js/toolbar.js:152 -#: js/toolbar.js:207 -#: js/toolbar.js:262 -msgid "English (United Kingdom)" +#: js/block-verbose.js:3901 +#: js/block.js:3825 +#: js/blocks.js:2600 +#: js/blocks.js:3211 +msgid "on2" msgstr "" -#: js/toolbar.js:88 -#: js/toolbar.js:153 -#: js/toolbar.js:208 -#: js/toolbar.js:263 -msgid "日本語" +#: js/block-verbose.js:3903 +#: js/block.js:3827 +#: js/blocks.js:2602 +#: js/blocks.js:3213 +msgid "off" msgstr "" -#: js/toolbar.js:89 -msgid "한국어" +#: js/block-verbose.js:4470 +#: js/block.js:4394 +msgid "Not a number" msgstr "" -#: js/toolbar.js:90 -#: js/toolbar.js:155 -#: js/toolbar.js:210 -#: js/toolbar.js:265 -msgid "español" +#: js/block-verbose.js:4477 +#: js/block.js:4401 +msgid "Octave value must be between 1 and 10." msgstr "" -#: js/toolbar.js:91 -#: js/toolbar.js:156 -#: js/toolbar.js:211 -#: js/toolbar.js:266 -msgid "português" +#: js/block-verbose.js:4485 +#: js/block.js:4409 +msgid "Numbers can have at most 10 digits." msgstr "" -#: js/toolbar.js:92 -#: js/toolbar.js:157 -#: js/toolbar.js:212 -#: js/toolbar.js:267 -msgid "にほんご" +#: js/activity.js:390 +#: js/activity.js:395 +msgid "Search for blocks" msgstr "" -#: js/toolbar.js:93 -#: js/toolbar.js:158 -#: js/toolbar.js:213 -#: js/toolbar.js:268 -msgid "中文" +#: js/activity.js:1413 +msgid "Refresh your browser to change to advanced mode." msgstr "" -#: js/toolbar.js:94 -#: js/toolbar.js:159 -#: js/toolbar.js:214 -#: js/toolbar.js:269 -msgid "ภาษาไทย" +#: js/activity.js:1418 +msgid "Refresh your browser to change to beginner mode." msgstr "" -#: js/toolbar.js:95 -#: js/toolbar.js:160 -#: js/toolbar.js:215 -#: js/toolbar.js:270 -msgid "aymara" +#: js/activity.js:1477 +msgid "Catching mice" msgstr "" -#: js/toolbar.js:96 -#: js/toolbar.js:161 -#: js/toolbar.js:216 -#: js/toolbar.js:271 -msgid "quechua" +#: js/activity.js:1478 +msgid "Cleaning the instruments" msgstr "" -#: js/toolbar.js:97 -#: js/toolbar.js:162 -#: js/toolbar.js:217 -#: js/toolbar.js:272 -msgid "guarani" +#: js/activity.js:1479 +msgid "Testing key pieces" msgstr "" -#: js/toolbar.js:98 -#: js/toolbar.js:163 -#: js/toolbar.js:218 -#: js/toolbar.js:273 -msgid "हिंदी" +#: js/activity.js:1480 +msgid "Sight-reading" msgstr "" -#: js/toolbar.js:99 -#: js/toolbar.js:165 -#: js/toolbar.js:219 -#: js/toolbar.js:275 -msgid "igbo" +#: js/activity.js:1481 +msgid "Combining math and music" msgstr "" -#: js/toolbar.js:100 -#: js/toolbar.js:166 -#: js/toolbar.js:220 -#: js/toolbar.js:276 -msgid "عربى" +#: js/activity.js:1482 +msgid "Generating more blocks" msgstr "" -#: js/toolbar.js:101 -#: js/toolbar.js:164 -#: js/toolbar.js:221 -#: js/toolbar.js:274 -msgid "తెలుగు" +#: js/activity.js:1483 +msgid "Do Re Mi Fa Sol La Ti Do" msgstr "" -#: js/toolbar.js:102 -#: js/toolbar.js:167 -#: js/toolbar.js:222 -#: js/toolbar.js:277 -msgid "עִברִית" +#: js/activity.js:1484 +msgid "Tuning string instruments" msgstr "" -#: js/toolbar.js:111 -#: js/toolbar.js:175 -#: js/toolbar.js:176 -#: js/toolbar.js:231 -msgid "Full Screen" +#: js/activity.js:1485 +msgid "Pressing random keys" msgstr "" -#: js/toolbar.js:145 -#: js/toolbar.js:148 -#: js/toolbar.js:200 -#: js/toolbar.js:203 -#: js/toolbar.js:255 -#: js/toolbar.js:258 -#: js/turtledefs.js:558 -msgid "Save turtle artwork as PNG" +#: js/activity.js:1663 +msgid "plugins will be removed upon restart." msgstr "" -#: js/toolbar.js:147 -#: js/toolbar.js:202 -#: js/toolbar.js:257 -#: js/turtledefs.js:554 -msgid "Save turtle artwork as SVG" +#: js/activity.js:1672 +msgid "show Cartesian" msgstr "" -#: js/toolbar.js:154 -#: js/toolbar.js:209 -#: js/toolbar.js:264 -msgid "한국인" +#: js/activity.js:2211 +#: js/palette.js:589 +#: js/blocks/RhythmBlocks.js:923 +#: js/blocks/PitchBlocks.js:442 +#: js/blocks/PitchBlocks.js:1786 +#.TRANS: a numeric mapping of the notes in an octave based on the musical mode +msgid "scale degree" msgstr "" -#: js/toolbar.js:171 -#: js/toolbar.js:227 -msgid "About Turtle Blocks" +#: js/activity.js:2214 +#: js/palette.js:598 +msgid "voice name" msgstr "" -#: js/toolbar.js:429 -#: js/toolbar.js:440 -msgid "Turtle Wrap Off" +#: js/activity.js:2217 +#: js/palette.js:595 +msgid "invert mode" msgstr "" -#: js/toolbar.js:442 -msgid "Turtle Wrap On" +#: js/activity.js:2220 +msgid "output tools" msgstr "" -#: js/block.js:1470 -msgid "matrix" +#: js/activity.js:2223 +msgid "custom note" msgstr "" -#: js/block.js:1477 -#: js/WidgetBlocks.js:1226 -#: plugins/rodi.rtp:324 -msgid "status" +#: js/activity.js:2226 +msgid "accidental name" msgstr "" -#: js/block.js:1484 -msgid "drum mapper" +#: js/activity.js:2229 +#: js/blocks/PitchBlocks.js:855 +msgid "east indian solfege" msgstr "" -#: js/block.js:1491 -msgid "ruler" +#: js/activity.js:2232 +#: js/blocks/PitchBlocks.js:869 +msgid "note name" msgstr "" -#: js/block.js:1498 -#: js/WidgetBlocks.js:327 -#.TRANS: timbre is the character or quality of a musical sound -msgid "timbre" +#: js/activity.js:2235 +#: js/blocks/IntervalsBlocks.js:94 +msgid "temperament name" msgstr "" -#: js/block.js:1505 -msgid "stair" +#: js/activity.js:2238 +#: js/palette.js:592 +msgid "mode name" msgstr "" -#: js/block.js:1512 -#: js/WidgetBlocks.js:577 -#.TRANS: the speed at music is should be played. -msgid "tempo" +#: js/activity.js:2241 +msgid "chord name" msgstr "" -#: js/block.js:1519 -#: js/block.js:1582 -#: js/IntervalsBlocks.js:1268 -#.TRANS: mode, e.g., Major in C Major -msgid "mode" +#: js/activity.js:2244 +#: js/palette.js:615 +msgid "interval name" msgstr "" -#: js/block.js:1526 -msgid "slider" +#: js/activity.js:2247 +msgid "filter type" msgstr "" -#: js/block.js:1533 -#: js/SensorsBlocks.js:1001 -msgid "keyboard" -msgstr "tastatur" - -#: js/block.js:1547 -#: js/WidgetBlocks.js:957 -#: js/WidgetBlocks.js:988 -#.TRANS: widget for subdividing a measure into distinct rhythmic elements -msgid "rhythm maker" +#: js/activity.js:2250 +msgid "oscillator type" msgstr "" -#: js/block.js:1554 -#: js/block.js:2182 -#: js/block.js:2236 -#: js/RhythmBlockPaletteBlocks.js:70 -#: js/RhythmBlockPaletteBlocks.js:251 -#: js/RhythmBlockPaletteBlocks.js:484 -#: js/RhythmBlockPaletteBlocks.js:553 -#: js/RhythmBlockPaletteBlocks.js:604 -#: js/RhythmBlockPaletteBlocks.js:874 -#: js/RhythmBlocks.js:33 -#: js/RhythmBlocks.js:356 -#: js/RhythmBlocks.js:766 -#: js/RhythmBlocks.js:806 -#: js/OrnamentBlocks.js:220 -#: js/OrnamentBlocks.js:312 -#: js/MeterBlocks.js:1367 -#: js/DictActions.js:85 -#: js/phrasemaker.js:731 -#: js/phrasemaker.js:2393 -#: js/phrasemaker.js:2436 -#: js/phrasemaker.js:2534 -#.TRANS: the value (e.g., 1/4 note) of the note being played. -msgid "note value" +#: js/activity.js:2253 +#: js/blocks.js:2479 +#: js/blocks.js:2487 +msgid "audio file" msgstr "" -#: js/block.js:1561 -#: js/block.js:2110 -#: js/block.js:2133 -#: js/IntervalsBlocks.js:875 -#: js/OrnamentBlocks.js:312 -#.TRANS: calculate a relative step between notes based on semi-tones -msgid "scalar interval" +#: js/activity.js:2256 +#: js/blocks/DrumBlocks.js:32 +msgid "noise name" msgstr "" -#: js/block.js:1568 -#: js/RhythmBlocks.js:148 -msgid "milliseconds" +#: js/activity.js:2259 +#: js/blocks/DrumBlocks.js:75 +msgid "drum name" msgstr "" -#: js/block.js:2180 -#: js/block.js:2184 -#: js/block.js:2234 -#: js/block.js:2345 -#: js/ProgramBlocks.js:1273 -#: js/RhythmBlocks.js:712 -#: js/rhythmruler.js:834 -#: js/rhythmruler.js:961 -msgid "silence" +#: js/activity.js:2262 +#: js/blocks/DrumBlocks.js:119 +msgid "effects name" msgstr "" -#: js/block.js:2265 -#: js/block.js:3134 -#: js/block.js:3151 -#: js/activity.js:2336 -#: js/activity.js:2387 -#: js/musicutils.js:2932 -#: js/musicutils.js:4287 -#.TRANS: the note names must be separated by single spaces -#.TRANS: the note names must be separated by single spaces -msgid "ti la sol fa mi re do" +#: js/activity.js:2265 +msgid "wrap mode" msgstr "" -#: js/block.js:2333 -#.TRANS: scalar step -msgid "down" +#: js/activity.js:2268 +msgid "load file" msgstr "" -#: js/block.js:2334 -msgid "up" +#: js/activity.js:2435 +#: js/activity.js:5851 +msgid "This block is deprecated." msgstr "" -#: js/block.js:3477 -#: js/block.js:3490 -#: js/ExtrasBlocks.js:612 -msgid "Cartesian" +#: js/activity.js:2437 +#: js/activity.js:5853 +msgid "Block cannot be found." msgstr "" -#: js/block.js:3478 -#: js/block.js:3491 -#: js/ExtrasBlocks.js:616 -msgid "polar" +#: js/activity.js:2645 +msgid "Saving block artwork" msgstr "" -#: js/block.js:3479 -#: js/block.js:3492 -#: js/ExtrasBlocks.js:620 -msgid "Cartesian+polar" +#: js/activity.js:2656 +msgid "Erase" msgstr "" -#: js/block.js:3480 -#: js/block.js:3499 -#: js/ExtrasBlocks.js:649 -msgid "none" +#: js/activity.js:2683 +#: js/activity.js:2705 +msgid "Paste" msgstr "" -#: js/block.js:3493 -#: js/ExtrasBlocks.js:625 -msgid "treble" +#: js/activity.js:2687 +msgid "Save block help" msgstr "" -#: js/block.js:3494 -#: js/ExtrasBlocks.js:629 -msgid "grand staff" +#: js/activity.js:2772 +msgid "Jumping to the bottom of the page." msgstr "" -#: js/block.js:3495 -#: js/ExtrasBlocks.js:633 -msgid "mezzo-soprano" +#: js/activity.js:2778 +msgid "Scrolling up." msgstr "" -#: js/block.js:3496 -#: js/ExtrasBlocks.js:637 -msgid "alto" +#: js/activity.js:2783 +msgid "Scrolling down." msgstr "" -#: js/block.js:3497 -#: js/ExtrasBlocks.js:641 -msgid "tenor" +#: js/activity.js:2788 +msgid "Extracting block" msgstr "" -#: js/block.js:3498 -#: js/ExtrasBlocks.js:645 -#: js/musicutils.js:736 -#: js/synthutils.js:64 -#.TRANS: musical instrument -msgid "bass" +#: js/activity.js:2796 +msgid "Moving block up." msgstr "" -#: js/block.js:4075 -msgid "Not a number" +#: js/activity.js:2817 +msgid "Moving block down." msgstr "" -#: js/block.js:4082 -msgid "Octave value must be between 1 and 10." +#: js/activity.js:2838 +msgid "Moving block left." msgstr "" -#: js/block.js:4090 -msgid "Numbers can have at most 10 digits." +#: js/activity.js:2855 +msgid "Moving block right." msgstr "" -#: js/notation.js:353 -msgid "Lilypond cannot process pickup of " +#: js/activity.js:2870 +msgid "Jump to home position." msgstr "" -#: js/turtledefs.js:40 -#.TRANS: put the URL to the guide here, e.g., https://github.com/sugarlabs/turtleblocksjs/tree/master/guide/README.md -msgid "guide url" +#: js/activity.js:2897 +msgid "Hide blocks" msgstr "" -#: js/turtledefs.js:85 -#: js/turtledefs.js:437 -msgid "Turtle Blocks is a Logo-inspired turtle that draws colorful pictures with snap-together visual-programming blocks." +#: js/activity.js:4500 +msgid "Click the run button to run the project." msgstr "" -#: js/turtledefs.js:118 -#: js/turtledefs.js:220 -msgid "search" +#: js/activity.js:5692 +msgid "Show/hide block" msgstr "" -#: js/turtledefs.js:120 -#: js/turtledefs.js:222 -#: js/WidgetBlocks.js:437 -#: js/MeterBlocks.js:1343 -#.TRANS: musical meter (time signature), e.g., 4:4 -msgid "meter" +#: js/activity.js:5698 +msgid "Expand/collapse blocks" msgstr "" -#: js/turtledefs.js:122 -#: js/turtledefs.js:224 -msgid "intervals" +#: js/activity.js:5976 +msgid "Could not parse JSON input." msgstr "" -#: js/turtledefs.js:124 -#: js/turtledefs.js:226 -msgid "ornament" +#: js/activity.js:6475 +#: js/activity.js:6580 +#: js/activity.js:6631 +msgid "Cannot load project from the file. Please check the file type." msgstr "" -#: js/turtledefs.js:125 -#: js/turtledefs.js:227 -#: js/VolumeBlocks.js:362 -#: js/VolumeBlocks.js:502 -#: js/VolumeBlocks.js:545 -msgid "volume" +#: js/activity.js:6917 +msgid "Invalid parameters" msgstr "" -#: js/turtledefs.js:129 -#: js/turtledefs.js:231 -msgid "boxes" -msgstr "" +#: js/blocks.js:1212 +#: js/blocks.js:3444 +#: js/blocks.js:3834 +#: js/blocks.js:3865 +#: js/blocks.js:3914 +#: js/blocks.js:3949 +#: js/blocks.js:6586 +#: js/palette.js:509 +#: js/palette.js:638 +#: js/palette.js:1105 +#: js/blocks/BoxesBlocks.js:282 +#: js/blocks/BoxesBlocks.js:285 +#: js/blocks/BoxesBlocks.js:405 +#: js/blocks/BoxesBlocks.js:594 +msgid "box" +msgstr "boks" -#: js/turtledefs.js:130 -#: js/turtledefs.js:232 -msgid "widgets" +#: js/blocks.js:1713 +msgid "Consider breaking this stack into parts." msgstr "" -#: js/turtledefs.js:131 -#: js/turtledefs.js:233 -#: js/phrasemaker.js:824 -msgid "graphics" +#: js/blocks.js:2472 +#: js/palette.js:653 +#: js/blocks/MediaBlocks.js:602 +msgid "open file" msgstr "" -#: js/turtledefs.js:134 -#: js/turtledefs.js:236 -msgid "boolean" +#: js/blocks.js:3247 +#: js/palette.js:574 +#: js/blocks/MediaBlocks.js:892 +#: js/blocks/MediaBlocks.js:963 +msgid "text" +msgstr "tekst" + +#: js/blocks.js:3443 +#: js/palette.js:641 +#: js/palette.js:642 +#: js/blocks/BoxesBlocks.js:514 +msgid "store in box" msgstr "" -#: js/turtledefs.js:137 -#: js/turtledefs.js:239 -#: js/HeapBlocks.js:59 -#: js/status.js:147 -msgid "heap" +#: js/blocks.js:3448 +#: js/blocks.js:3888 +#: js/blocks.js:3923 +#: js/blocks.js:3958 +#: js/blocks.js:5862 +#: js/blocks.js:5883 +#: js/blocks/BoxesBlocks.js:772 +msgid "box1" msgstr "" -#: js/turtledefs.js:138 -#: js/turtledefs.js:240 -#: js/ProgramBlocks.js:495 -#: js/DictBlocks.js:142 -msgid "dictionary" +#: js/blocks.js:3450 +#: js/blocks.js:3890 +#: js/blocks.js:3925 +#: js/blocks.js:3960 +#: js/blocks.js:5864 +#: js/blocks.js:5885 +#: js/blocks/BoxesBlocks.js:663 +msgid "box2" msgstr "" -#: js/turtledefs.js:139 -#: js/turtledefs.js:241 -msgid "ensemble" +#: js/blocks.js:4122 +#: js/palette.js:639 +#: js/palette.js:644 +#: js/palette.js:1041 +#: js/blocks/BoxesBlocks.js:591 +msgid "store in" msgstr "" -#: js/turtledefs.js:140 -#: js/turtledefs.js:242 -msgid "extras" +#: js/blocks.js:4122 +#: js/blocks/BoxesBlocks.js:595 +#: js/blocks/DictBlocks.js:215 +#: js/blocks/DictBlocks.js:289 +#: js/blocks/EnsembleBlocks.js:391 +#: js/blocks/EnsembleBlocks.js:402 +#: js/blocks/MediaBlocks.js:746 +#: js/blocks/PitchBlocks.js:656 +#: js/blocks/PitchBlocks.js:934 +#: js/blocks/PitchBlocks.js:1866 +#: js/blocks/ProgramBlocks.js:390 +#: js/blocks/ProgramBlocks.js:495 +#: js/blocks/ProgramBlocks.js:658 +#: js/blocks/ToneBlocks.js:1025 +msgid "name" msgstr "" -#: js/turtledefs.js:142 -#: js/turtledefs.js:244 -#.TRANS: program as in computer program -#.TRANS: program as in computer program -msgid "program" +#: js/blocks.js:4122 +#: js/blocks/BoxesBlocks.js:75 +#: js/blocks/BoxesBlocks.js:595 +#: js/blocks/DictBlocks.js:289 +#: js/blocks/DictBlocks.js:430 +#: js/blocks/HeapBlocks.js:544 +#: js/blocks/RhythmBlocks.js:1130 +msgid "value" msgstr "" -#: js/turtledefs.js:143 -#: js/turtledefs.js:245 -msgid "my blocks" +#: js/blocks.js:4465 +msgid "Forever loop detected inside a note value block. Unexpected things may happen." msgstr "" -#: js/turtledefs.js:185 -#: js/turtledefs.js:281 -msgid "artwork" +#: js/blocks.js:4988 +msgid "There is no block selected." msgstr "" -#: js/turtledefs.js:185 -#: js/turtledefs.js:281 -msgid "logic" +#: js/blocks.js:5091 +#: js/blocks/MediaBlocks.js:888 +msgid "show" msgstr "" -#: js/turtledefs.js:185 -#: js/turtledefs.js:281 -msgid "music" +#: js/blocks.js:5094 +#: js/blocks/MediaBlocks.js:803 +#.TRANS: Avatar is the image used to determine the appearance of the mouse. +msgid "avatar" msgstr "" -#: js/turtledefs.js:187 -#: js/turtledefs.js:463 -msgid "Music Blocks is a collection of tools for exploring fundamental musical concepts in a fun way." +#: js/blocks.js:5097 +#: js/blocks/ToneBlocks.js:1010 +#: js/widgets/sampler.js:975 +#.TRANS: The sound sample that the user uploads. +msgid "sample" msgstr "" -#: js/turtledefs.js:436 -msgid "Welcome to Turtle Blocks" +#: js/lilypond.js:606 +msgid "brown rat" msgstr "" -#: js/turtledefs.js:438 -#: js/turtledefs.js:465 -#: js/turtledefs.js:774 -#: js/turtledefs.js:805 -msgid "The current version is" +#: js/lilypond.js:607 +msgid "mole" msgstr "" -#: js/turtledefs.js:446 -#: js/turtledefs.js:483 -msgid "Click the run button to run the project in fast mode." +#: js/lilypond.js:608 +msgid "chipmunk" msgstr "" -#: js/turtledefs.js:452 -msgid "Stop the turtle." +#: js/lilypond.js:609 +msgid "red squirrel" msgstr "" -#: js/turtledefs.js:454 -#: js/turtledefs.js:491 -msgid "You can also type Alt-S to stop." +#: js/lilypond.js:610 +msgid "guinea pig" msgstr "" -#: js/turtledefs.js:462 -#: js/help.js:333 -msgid "Welcome to Music Blocks" +#: js/lilypond.js:611 +msgid "capybara" msgstr "" -#: js/turtledefs.js:472 -#: js/help.js:334 -msgid "Meet Mr. Mouse!" +#: js/lilypond.js:612 +msgid "coypu" msgstr "" -#: js/turtledefs.js:473 -msgid "Mr Mouse is our Music Blocks conductor." +#: js/lilypond.js:613 +msgid "black rat" msgstr "" -#: js/turtledefs.js:475 -msgid "Mr Mouse encourages you to explore Music Blocks." +#: js/lilypond.js:614 +msgid "grey squirrel" msgstr "" -#: js/turtledefs.js:477 -msgid "Let us start our tour!" +#: js/lilypond.js:615 +msgid "flying squirrel" msgstr "" -#: js/turtledefs.js:489 -msgid "Stop the music (and the mice)." +#: js/lilypond.js:616 +msgid "bat" msgstr "" -#: js/turtledefs.js:499 -msgid "Record your project as video." +#: js/lilypond.js:749 +#: js/lilypond.js:913 +#: js/lilypond.js:951 +#: js/blocks/ActionBlocks.js:1256 +#: js/blocks/ExtrasBlocks.js:556 +msgid "start drum" msgstr "" -#: js/turtledefs.js:505 -msgid "Toggle Fullscreen mode." +#: js/logo.js:61 +msgid "Not a valid pitch name" msgstr "" -#: js/turtledefs.js:511 -msgid "Initialize a new project." +#: js/logo.js:507 +#: js/blocks/ProgramBlocks.js:258 +#: js/blocks/ProgramBlocks.js:427 +msgid "You must select a file." msgstr "" -#: js/turtledefs.js:517 -msgid "You can also load projects from the file system." +#: js/logo.js:1696 +msgid "Playback is ready." msgstr "" -#: js/turtledefs.js:522 -#: js/StringHelper.js:46 -msgid "Delete" +#: js/macros.js:711 +#: js/utils/musicutils.js:1162 +#: js/utils/synthutils.js:202 +#.TRANS: animal sound effect +msgid "duck" msgstr "" -#: js/turtledefs.js:523 -msgid "To delete a block, just right-click on it, then you will be able to see the delete option" +#: js/notation.js:353 +msgid "Lilypond cannot process pickup of " msgstr "" -#: js/turtledefs.js:528 -#: js/activity.js:2270 -#: js/LocalCard.js:31 -msgid "Copy" +#: js/palette.js:571 +msgid "grid" +msgstr "" + +#: js/palette.js:580 +msgid "effect" msgstr "" -#: js/turtledefs.js:529 -msgid "To copy a block, just right-click on it, then you will be able to see the copy option" +#: js/palette.js:586 +msgid "sargam" msgstr "" -#: js/turtledefs.js:535 -msgid "To extract a block, just right-click on it, then you will be able to see the extract option" +#: js/palette.js:601 +#: js/blocks/PitchBlocks.js:1209 +msgid "custom pitch" msgstr "" -#: js/turtledefs.js:542 -#: js/turtledefs.js:552 -#: js/turtledefs.js:573 -msgid "Save your project to a file." +#: js/palette.js:609 +msgid "accidental" msgstr "" -#: js/turtledefs.js:549 -#: js/turtledefs.js:570 -msgid "save" +#: js/palette.js:633 +#: js/blocks/PitchBlocks.js:405 +msgid "pitch converter" msgstr "" -#: js/turtledefs.js:556 -#: js/turtledefs.js:577 -msgid "Save graphics from your project to as SVG." +#: js/piemenus.js:200 +#: js/utils/musicutils.js:1187 +#: js/utils/musicutils.js:1207 +#: js/widgets/musickeyboard.js:2341 +#: js/widgets/phrasemaker.js:1908 +#: js/widgets/sampler.js:810 +#.TRANS: double sharp is a music term related to pitch +msgid "double sharp" msgstr "" -#: js/turtledefs.js:560 -#: js/turtledefs.js:581 -msgid "Save graphics from your project as PNG." +#: js/piemenus.js:201 +#: js/utils/musicutils.js:1185 +#: js/utils/musicutils.js:1208 +#: js/blocks/PitchBlocks.js:1539 +#: js/turtleactions/PitchActions.js:323 +#: js/widgets/musickeyboard.js:2342 +#: js/widgets/phrasemaker.js:1909 +#: js/widgets/sampler.js:811 +#.TRANS: sharp is a music term related to pitch +#.TRANS: sharp is a half-step up in pitch +msgid "sharp" msgstr "" -#: js/turtledefs.js:564 -#: js/turtledefs.js:597 -msgid "Save block artwork as an SVG file." +#: js/piemenus.js:202 +#: js/utils/musicutils.js:1183 +#: js/utils/musicutils.js:1209 +#: js/widgets/musickeyboard.js:2343 +#: js/widgets/phrasemaker.js:1910 +#: js/widgets/sampler.js:812 +#.TRANS: natural is a music term related to pitch +msgid "natural" msgstr "" -#: js/turtledefs.js:585 -msgid "Save audio from your project as WAV." +#: js/piemenus.js:203 +#: js/utils/musicutils.js:1181 +#: js/utils/musicutils.js:1210 +#: js/blocks/PitchBlocks.js:1498 +#: js/turtleactions/PitchActions.js:326 +#: js/widgets/musickeyboard.js:2344 +#: js/widgets/phrasemaker.js:1911 +#: js/widgets/sampler.js:813 +#.TRANS: flat is a music term related to pitch +#.TRANS: flat is a half-step down in pitch +msgid "flat" msgstr "" -#: js/turtledefs.js:589 -msgid "Save your project to as an ABC file." +#: js/piemenus.js:204 +#: js/utils/musicutils.js:1179 +#: js/utils/musicutils.js:1211 +#: js/widgets/musickeyboard.js:2345 +#: js/widgets/phrasemaker.js:1912 +#: js/widgets/sampler.js:814 +#.TRANS: double flat is a music term related to pitch +msgid "double flat" msgstr "" -#: js/turtledefs.js:593 -msgid "Save your project to as a Lilypond file." +#: js/piemenus.js:2864 +#: js/utils/musicutils.js:1006 +#: js/blocks/PitchBlocks.js:1385 +#.TRANS: unison is a music term related to intervals +#.TRANS: unison means the note is the same as the current note +msgid "unison" msgstr "" -#: js/turtledefs.js:604 -msgid "Load samples from server" +#: js/piemenus.js:3018 +#: js/piemenus.js:3091 +#: js/utils/musicutils.js:1014 +#: js/utils/musicutils.js:1189 +#: js/utils/musicutils.js:1326 +#.TRANS: major is a music term related to intervals and mode +msgid "major" msgstr "" -#: js/turtledefs.js:605 -msgid "This button opens a viewer for loading example projects." +#: js/piemenus.js:3018 +#: js/piemenus.js:3091 +#: js/utils/musicutils.js:1032 +#.TRANS: modal scale for music +msgid "ionian" msgstr "" -#: js/turtledefs.js:611 -msgid "Palette buttons" +#: js/piemenus.js:3020 +#: js/piemenus.js:3095 +#: js/utils/musicutils.js:1012 +#: js/utils/musicutils.js:1190 +#: js/utils/musicutils.js:1323 +#.TRANS: minor is a music term related to intervals and mode +msgid "minor" msgstr "" -#: js/turtledefs.js:612 -msgid "This toolbar contains the palette buttons including Rhythm Pitch Tone Action and more." +#: js/piemenus.js:3020 +#: js/piemenus.js:3095 +#: js/utils/musicutils.js:1042 +#.TRANS: modal scale for music +msgid "aeolian" msgstr "" -#: js/turtledefs.js:614 -msgid "Click to show the palettes of blocks and drag blocks from the palettes onto the canvas to use them." +#: js/piemenus.js:3410 +msgid "Duplicate" msgstr "" -#: js/turtledefs.js:620 -msgid "Cartesian/Polar" +#: js/piemenus.js:3412 +msgid "Move to trash" msgstr "" -#: js/turtledefs.js:621 -msgid "Show or hide a coordinate grid." +#: js/piemenus.js:3413 +#: js/widgets/timbre.js:968 +#: planet/js/StringHelper.js:69 +msgid "Close" msgstr "" -#: js/turtledefs.js:627 -msgid "Clear the screen and return the mice to their initial positions." +#: js/piemenus.js:3419 +msgid "Save stack" msgstr "" -#: js/turtledefs.js:633 -msgid "Collapse the graphics window." +#: js/piemenus.js:3449 +msgid "In order to copy a sample, you must reload the widget, import the sample again, and export it." msgstr "" -#: js/turtledefs.js:638 -#: js/activity.js:4256 -#: js/activity.js:4256 -msgid "Home" +#: js/piemenus.js:3812 +msgid "You have chosen key " msgstr "" -#: js/turtledefs.js:639 -msgid "Return all blocks to the center of the screen." +#: js/piemenus.js:3816 +msgid " for your pitch preview." msgstr "" -#: js/turtledefs.js:644 -msgid "Show/hide blocks" +#: js/turtle-singer.js:1363 +#.TRANS: partials are weighted components in a harmonic series +msgid "You must have at least one Partial block inside of a Weighted-partial block" msgstr "" -#: js/turtledefs.js:645 -msgid "Hide or show the blocks and the palettes." +#: js/turtle-singer.js:2077 +msgid "synth cannot play chords." msgstr "" -#: js/turtledefs.js:650 -msgid "Expand/collapse collapsable blocks" +#: js/utils/musicutils.js:505 +#: js/utils/musicutils.js:645 +#: js/widgets/pitchdrummatrix.js:228 +#: js/widgets/musickeyboard.js:2885 +msgid "rest" msgstr "" -#: js/turtledefs.js:651 -msgid "Expand or collapse start and action stacks." +#: js/utils/musicutils.js:689 +msgid "Perfect unison" msgstr "" -#: js/turtledefs.js:658 -#: js/activity.js:4265 -msgid "Decrease block size" +#: js/utils/musicutils.js:689 +msgid "Diminished second" msgstr "" -#: js/turtledefs.js:659 -msgid "Decrease the size of the blocks." +#: js/utils/musicutils.js:690 +msgid "Minor second" msgstr "" -#: js/turtledefs.js:664 -#: js/activity.js:4267 -msgid "Increase block size" +#: js/utils/musicutils.js:690 +msgid "Augmented unison" msgstr "" -#: js/turtledefs.js:665 -msgid "Increase the size of the blocks." +#: js/utils/musicutils.js:691 +msgid "Major second" msgstr "" -#: js/turtledefs.js:670 -msgid "Expand/collapse option toolbar" +#: js/utils/musicutils.js:691 +msgid "Diminished third" msgstr "" -#: js/turtledefs.js:671 -msgid "Click this button to expand or collapse the auxillary toolbar." +#: js/utils/musicutils.js:692 +msgid "Minor third" msgstr "" -#: js/turtledefs.js:676 -msgid "Run slow" +#: js/utils/musicutils.js:692 +msgid "Augmented second" msgstr "" -#: js/turtledefs.js:677 -msgid "Click to run the project in slow mode." +#: js/utils/musicutils.js:693 +msgid "Major third" msgstr "" -#: js/turtledefs.js:683 -msgid "Click to run the project step by step." +#: js/utils/musicutils.js:693 +msgid "Diminished fourth" msgstr "" -#: js/turtledefs.js:690 -msgid "Display statistics about your Music project." +#: js/utils/musicutils.js:694 +msgid "Perfect fourth" msgstr "" -#: js/turtledefs.js:697 -msgid "Delete a selected plugin." +#: js/utils/musicutils.js:694 +msgid "Augmented third" msgstr "" -#: js/turtledefs.js:704 -msgid "Enable scrolling" +#: js/utils/musicutils.js:695 +msgid "Diminished fifth" msgstr "" -#: js/turtledefs.js:705 -msgid "You can scroll the blocks on the canvas." +#: js/utils/musicutils.js:695 +msgid "Augmented fourth" msgstr "" -#: js/turtledefs.js:714 -msgid "Wrap Turtle" +#: js/utils/musicutils.js:696 +msgid "Perfect fifth" msgstr "" -#: js/turtledefs.js:715 -msgid "Turn Turtle wrapping On or Off." +#: js/utils/musicutils.js:696 +msgid "Diminished sixth" msgstr "" -#: js/turtledefs.js:725 -msgid "Restore blocks from the trash." +#: js/utils/musicutils.js:697 +msgid "Minor sixth" msgstr "" -#: js/turtledefs.js:732 -msgid "Switch mode" +#: js/utils/musicutils.js:697 +msgid "Augmented fifth" msgstr "" -#: js/turtledefs.js:733 -msgid "Switch between beginner and advance modes." +#: js/utils/musicutils.js:698 +msgid "Major sixth" msgstr "" -#: js/turtledefs.js:739 -msgid "Select your language preference." +#: js/utils/musicutils.js:698 +msgid "Diminished seventh" msgstr "" -#: js/turtledefs.js:745 -msgid "Keyboard shortcuts" +#: js/utils/musicutils.js:699 +msgid "Minor seventh" msgstr "" -#: js/turtledefs.js:746 -msgid "You can type d to create a do block and r to create a re block etc." +#: js/utils/musicutils.js:699 +msgid "Augmented sixth" msgstr "" -#: js/turtledefs.js:753 -msgid "Show these messages." +#: js/utils/musicutils.js:700 +msgid "Major seventh" msgstr "" -#: js/turtledefs.js:759 -#: js/turtledefs.js:790 -#: js/help.js:335 -msgid "Guide" +#: js/utils/musicutils.js:700 +msgid "Diminished octave" msgstr "" -#: js/turtledefs.js:760 -msgid "A detailed guide to Turtle Blocks is available." +#: js/utils/musicutils.js:701 +msgid "Perfect octave" msgstr "" -#: js/turtledefs.js:764 -msgid "Turtle Blocks Guide" +#: js/utils/musicutils.js:701 +msgid "Augmented seventh" msgstr "" -#: js/turtledefs.js:767 -#: js/turtledefs.js:798 -#: js/help.js:336 -msgid "About" +#: js/utils/musicutils.js:702 +msgid "Minor ninth" msgstr "" -#: js/turtledefs.js:768 -msgid "Turtle Blocks is an open source collection of tools for exploring musical concepts." +#: js/utils/musicutils.js:702 +msgid "Augmented octave" msgstr "" -#: js/turtledefs.js:770 -msgid "A full list of contributors can be found in the Turtle Blocks GitHub repository." +#: js/utils/musicutils.js:703 +msgid "Major ninth" msgstr "" -#: js/turtledefs.js:772 -msgid "Turtle Blocks is licensed under the AGPL." +#: js/utils/musicutils.js:703 +msgid "Diminished tenth" msgstr "" -#: js/turtledefs.js:780 -msgid "Turtle Blocks GitHub repository" +#: js/utils/musicutils.js:704 +msgid "Minor tenth" msgstr "" -#: js/turtledefs.js:783 -#: js/turtledefs.js:814 -#: js/help.js:337 -#: js/help.js:359 -msgid "Congratulations." +#: js/utils/musicutils.js:704 +msgid "Augmented ninth" msgstr "" -#: js/turtledefs.js:784 -msgid "You have finished the tour. Please enjoy Turtle Blocks!" +#: js/utils/musicutils.js:705 +msgid "Major tenth" msgstr "" -#: js/turtledefs.js:791 -msgid "A detailed guide to Music Blocks is available." +#: js/utils/musicutils.js:705 +msgid "Diminished eleventh" msgstr "" -#: js/turtledefs.js:795 -#: js/SaveInterface.js:76 -msgid "Music Blocks Guide" +#: js/utils/musicutils.js:706 +msgid "Perfect eleventh" msgstr "" -#: js/turtledefs.js:799 -msgid "Music Blocks is an open source collection of tools for exploring musical concepts." +#: js/utils/musicutils.js:706 +msgid "Augmented tenth" msgstr "" -#: js/turtledefs.js:801 -msgid "A full list of contributors can be found in the Music Blocks GitHub repository." +#: js/utils/musicutils.js:707 +msgid "Diminished twelfth" msgstr "" -#: js/turtledefs.js:803 -msgid "Music Blocks is licensed under the AGPL." +#: js/utils/musicutils.js:707 +msgid "Augmented eleventh" msgstr "" -#: js/turtledefs.js:811 -msgid "Music Blocks GitHub repository" +#: js/utils/musicutils.js:708 +msgid "Perfect twelfth" msgstr "" -#: js/turtledefs.js:815 -msgid "You have finished the tour. Please enjoy Music Blocks!" +#: js/utils/musicutils.js:708 +msgid "Diminished thirteenth" msgstr "" -#: js/activity.js:369 -msgid "Search for blocks" +#: js/utils/musicutils.js:709 +msgid "Minor thirteenth" msgstr "" -#: js/activity.js:1145 -msgid "Refresh your browser to change to advanced mode." +#: js/utils/musicutils.js:709 +msgid "Augmented fifth, plus an octave" msgstr "" -#: js/activity.js:1150 -msgid "Refresh your browser to change to beginner mode." +#: js/utils/musicutils.js:710 +msgid "Major thirteenth" msgstr "" -#: js/activity.js:1184 -msgid "Catching mice" +#: js/utils/musicutils.js:710 +msgid "Diminished seventh, plus an octave" msgstr "" -#: js/activity.js:1185 -msgid "Cleaning the instruments" +#: js/utils/musicutils.js:838 +#.TRANS: ordinal number. Please keep exactly one space between each number. +msgid "1st 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th" msgstr "" -#: js/activity.js:1186 -msgid "Testing key pieces" +#: js/utils/musicutils.js:1008 +#: js/utils/musicutils.js:1191 +#: js/utils/musicutils.js:1325 +#.TRANS: augmented is a music term related to intervals +msgid "augmented" msgstr "" -#: js/activity.js:1187 -msgid "Sight-reading" +#: js/utils/musicutils.js:1010 +#: js/utils/musicutils.js:1192 +#: js/utils/musicutils.js:1324 +#.TRANS: diminished is a music term related to intervals and mode +msgid "diminished" msgstr "" -#: js/activity.js:1188 -msgid "Combining math and music" +#: js/utils/musicutils.js:1016 +#: js/utils/musicutils.js:1322 +#: js/blocks/IntervalsBlocks.js:649 +#: js/turtleactions/IntervalsActions.js:120 +#: js/turtleactions/IntervalsActions.js:124 +#.TRANS: perfect is a music term related to intervals +msgid "perfect" msgstr "" -#: js/activity.js:1189 -msgid "Generating more blocks" +#: js/utils/musicutils.js:1018 +#.TRANS: twelve semi-tone scale for music +msgid "chromatic" msgstr "" -#: js/activity.js:1190 -msgid "Do Re Mi Fa Sol La Ti Do" +#: js/utils/musicutils.js:1019 +msgid "algerian" msgstr "" -#: js/activity.js:1191 -msgid "Tuning string instruments" +#: js/utils/musicutils.js:1020 +msgid "spanish" msgstr "" -#: js/activity.js:1192 -msgid "Pressing random keys" +#: js/utils/musicutils.js:1022 +#.TRANS: modal scale in music +msgid "octatonic" msgstr "" -#: js/activity.js:1351 -msgid "plugins will be removed upon restart." +#: js/utils/musicutils.js:1024 +#.TRANS: harmonic major scale in music +msgid "harmonic major" msgstr "" -#: js/activity.js:1360 -msgid "show Cartesian" +#: js/utils/musicutils.js:1026 +#.TRANS: natural minor scales in music +msgid "natural minor" msgstr "" -#: js/activity.js:1842 -msgid "output tools" +#: js/utils/musicutils.js:1028 +#.TRANS: harmonic minor scale in music +msgid "harmonic minor" msgstr "" -#: js/activity.js:1845 -msgid "custom note" +#: js/utils/musicutils.js:1030 +#.TRANS: melodic minor scale in music +msgid "melodic minor" msgstr "" -#: js/activity.js:1848 -msgid "accidental name" +#: js/utils/musicutils.js:1034 +#.TRANS: modal scale for music +msgid "dorian" msgstr "" -#: js/activity.js:1851 -#: js/PitchBlocks.js:855 -msgid "east indian solfege" +#: js/utils/musicutils.js:1036 +#.TRANS: modal scale for music +msgid "phrygian" msgstr "" -#: js/activity.js:1854 -#: js/PitchBlocks.js:869 -msgid "note name" +#: js/utils/musicutils.js:1038 +#.TRANS: modal scale for music +msgid "lydian" msgstr "" -#: js/activity.js:1857 -#: js/IntervalsBlocks.js:94 -msgid "temperament name" +#: js/utils/musicutils.js:1040 +#.TRANS: modal scale for music +msgid "mixolydian" msgstr "" -#: js/activity.js:1863 -msgid "chord name" +#: js/utils/musicutils.js:1044 +#.TRANS: modal scale for music +msgid "locrian" msgstr "" -#: js/activity.js:1869 -msgid "filter type" +#: js/utils/musicutils.js:1046 +#.TRANS: minor jazz scale for music +msgid "jazz minor" msgstr "" -#: js/activity.js:1872 -msgid "oscillator type" +#: js/utils/musicutils.js:1048 +#.TRANS: bebop scale for music +msgid "bebop" msgstr "" -#: js/activity.js:1878 -#: js/DrumBlocks.js:32 -msgid "noise name" +#: js/utils/musicutils.js:1049 +msgid "arabic" msgstr "" -#: js/activity.js:1881 -#: js/DrumBlocks.js:75 -msgid "drum name" +#: js/utils/musicutils.js:1050 +msgid "byzantine" msgstr "" -#: js/activity.js:1884 -#: js/DrumBlocks.js:119 -msgid "effects name" +#: js/utils/musicutils.js:1052 +#.TRANS: musical scale for music by Verdi +msgid "enigmatic" msgstr "" -#: js/activity.js:1887 -msgid "wrap mode" +#: js/utils/musicutils.js:1053 +msgid "ethiopian" msgstr "" -#: js/activity.js:1890 -msgid "load file" +#: js/utils/musicutils.js:1055 +#.TRANS: Ethiopic scale for music +msgid "geez" msgstr "" -#: js/activity.js:2056 -msgid "This block is deprecated." +#: js/utils/musicutils.js:1056 +msgid "hindu" msgstr "" -#: js/activity.js:2058 -msgid "Block cannot be found." +#: js/utils/musicutils.js:1057 +msgid "hungarian" msgstr "" -#: js/activity.js:2266 -msgid "Saving block artwork" +#: js/utils/musicutils.js:1059 +#.TRANS: minor Romanian scale for music +msgid "romanian minor" msgstr "" -#: js/activity.js:2277 -msgid "Erase" +#: js/utils/musicutils.js:1060 +msgid "spanish gypsy" msgstr "" -#: js/activity.js:2301 -#: js/activity.js:2323 -msgid "Paste" +#: js/utils/musicutils.js:1062 +#.TRANS: musical scale for Mid-Eastern music +msgid "maqam" msgstr "" -#: js/activity.js:2305 -msgid "Save block help" +#: js/utils/musicutils.js:1064 +#.TRANS: minor blues scale for music +msgid "minor blues" msgstr "" -#: js/activity.js:2390 -msgid "Jumping to the bottom of the page." +#: js/utils/musicutils.js:1066 +#.TRANS: major blues scale for music +msgid "major blues" msgstr "" -#: js/activity.js:2396 -msgid "Scrolling up." +#: js/utils/musicutils.js:1067 +msgid "whole tone" msgstr "" -#: js/activity.js:2401 -msgid "Scrolling down." +#: js/utils/musicutils.js:1069 +#.TRANS: pentatonic is a general term that means "five note scale". This scale is typically known as "minor pentatonic" +msgid "minor pentatonic" msgstr "" -#: js/activity.js:2406 -msgid "Extracting block" +#: js/utils/musicutils.js:1071 +#.TRANS: pentatonic is a general term that means "five note scale". This scale is typically known as "major pentatonic" +msgid "major pentatonic" msgstr "" -#: js/activity.js:2414 -msgid "Moving block up." +#: js/utils/musicutils.js:1072 +msgid "chinese" msgstr "" -#: js/activity.js:2435 -msgid "Moving block down." +#: js/utils/musicutils.js:1073 +msgid "egyptian" msgstr "" -#: js/activity.js:2456 -msgid "Moving block left." +#: js/utils/musicutils.js:1075 +#.TRANS: https://en.wikipedia.org/wiki/Hirajoshi_scale NOTE: There are three different versions of this scale +msgid "hirajoshi" msgstr "" -#: js/activity.js:2473 -msgid "Moving block right." +#: js/utils/musicutils.js:1076 +msgid "Japan" msgstr "" -#: js/activity.js:2488 -msgid "Jump to home position." +#: js/utils/musicutils.js:1078 +#.TRANS: https://en.wikipedia.org/wiki/In_scale and https://en.wikipedia.org/wiki/Sakura_Sakura +msgid "in" msgstr "" -#: js/activity.js:2515 -msgid "Hide blocks" +#: js/utils/musicutils.js:1080 +#.TRANS: https://en.wikipedia.org/wiki/Miny%C5%8D_scale +msgid "minyo" msgstr "" -#: js/activity.js:3389 -msgid "Click the run button to run the project." +#: js/utils/musicutils.js:1082 +#.TRANS: Italian mathematician +msgid "fibonacci" msgstr "" -#: js/activity.js:3456 -#: js/SaveInterface.js:131 -#: js/SaveInterface.js:204 -#: js/SaveInterface.js:262 -#: js/SaveInterface.js:389 -#: js/SaveInterface.js:417 -#: js/ProjectStorage.js:27 -#: js/GlobalPlanet.js:467 -#: js/GlobalPlanet.js:469 -#: js/GlobalPlanet.js:495 -#.TRANS: default project title when saving as Lilypond -msgid "My Project" +#: js/utils/musicutils.js:1083 +#: js/utils/musicutils.js:1134 +#: js/utils/musicutils.js:1177 +#: js/utils/musicutils.js:1199 +#: js/utils/synthutils.js:134 +#: js/blocks/IntervalsBlocks.js:1124 +#: js/blocks/ToneBlocks.js:946 +#: js/blocks/VolumeBlocks.js:411 +#: js/blocks/WidgetBlocks.js:399 +#: js/blocks/WidgetBlocks.js:404 +#: js/turtleactions/VolumeActions.js:218 +#: js/widgets/modewidget.js:919 +#.TRANS: customize voice +msgid "custom" msgstr "" -#: js/activity.js:4261 -msgid "Show/hide block" +#: js/utils/musicutils.js:1085 +#: js/utils/musicutils.js:1531 +#: js/blocks/WidgetBlocks.js:176 +#.TRANS: highpass filter +msgid "highpass" msgstr "" -#: js/activity.js:4263 -msgid "Expand/collapse blocks" +#: js/utils/musicutils.js:1087 +#: js/utils/musicutils.js:1532 +#.TRANS: lowpass filter +msgid "lowpass" msgstr "" -#: js/activity.js:4381 -msgid "Could not parse JSON input." +#: js/utils/musicutils.js:1089 +#: js/utils/musicutils.js:1533 +#.TRANS: bandpass filter +msgid "bandpass" msgstr "" -#: js/activity.js:4684 -#: js/activity.js:4771 -#: js/activity.js:4821 -msgid "Cannot load project from the file. Please check the file type." +#: js/utils/musicutils.js:1091 +#: js/utils/musicutils.js:1534 +#.TRANS: high-shelf filter +msgid "highshelf" msgstr "" -#: js/activity.js:5051 -msgid "Invalid parameters" +#: js/utils/musicutils.js:1093 +#: js/utils/musicutils.js:1535 +#.TRANS: low-shelf filter +msgid "lowshelf" msgstr "" -#: js/turtle-singer.js:1334 -#.TRANS: partials are weighted components in a harmonic series -msgid "You must have at least one Partial block inside of a Weighted-partial block" +#: js/utils/musicutils.js:1095 +#: js/utils/musicutils.js:1536 +#.TRANS: notch-shelf filter +msgid "notch" msgstr "" -#: js/turtle-singer.js:2048 -msgid "synth cannot play chords." +#: js/utils/musicutils.js:1097 +#: js/utils/musicutils.js:1537 +#.TRANS: all-pass filter +msgid "allpass" msgstr "" -#: js/lilypond.js:614 -msgid "brown rat" +#: js/utils/musicutils.js:1099 +#: js/utils/musicutils.js:1538 +#.TRANS: peaking filter +msgid "peaking" msgstr "" -#: js/lilypond.js:615 -msgid "mole" +#: js/utils/musicutils.js:1100 +#: js/utils/musicutils.js:1546 +#: js/utils/synthutils.js:126 +#: js/blocks/PitchBlocks.js:85 +#.TRANS: sine wave +msgid "sine" msgstr "" -#: js/lilypond.js:616 -msgid "chipmunk" +#: js/utils/musicutils.js:1101 +#: js/utils/musicutils.js:1547 +#: js/utils/synthutils.js:128 +#: js/blocks/PitchBlocks.js:39 +#.TRANS: square wave +msgid "square" msgstr "" -#: js/lilypond.js:617 -msgid "red squirrel" +#: js/utils/musicutils.js:1102 +#: js/utils/musicutils.js:1548 +#: js/utils/synthutils.js:132 +#: js/blocks/PitchBlocks.js:62 +#: js/blocks/ToneBlocks.js:39 +#.TRANS: triangle wave +msgid "triangle" msgstr "" -#: js/lilypond.js:618 -msgid "guinea pig" +#: js/utils/musicutils.js:1103 +#: js/utils/musicutils.js:1549 +#: js/utils/synthutils.js:130 +#: js/blocks/PitchBlocks.js:108 +#.TRANS: sawtooth wave +msgid "sawtooth" msgstr "" -#: js/lilypond.js:619 -msgid "capybara" +#: js/utils/musicutils.js:1105 +#: js/utils/musicutils.js:1312 +#: js/blocks/PitchBlocks.js:931 +#: js/blocks/PitchBlocks.js:937 +#: js/turtleactions/PitchActions.js:469 +#.TRANS: even numbers +#.TRANS: invert based on even or odd number or musical scale +msgid "even" msgstr "" -#: js/lilypond.js:620 -msgid "coypu" +#: js/utils/musicutils.js:1107 +#: js/utils/musicutils.js:1313 +#: js/blocks/PitchBlocks.js:937 +#: js/turtleactions/PitchActions.js:471 +#.TRANS: odd numbers +msgid "odd" msgstr "" -#: js/lilypond.js:621 -msgid "black rat" +#: js/utils/musicutils.js:1108 +#: js/utils/musicutils.js:1314 +#: js/blocks/PitchBlocks.js:937 +#: js/turtleactions/PitchActions.js:473 +msgid "scalar" msgstr "" -#: js/lilypond.js:622 -msgid "grey squirrel" +#: js/utils/musicutils.js:1109 +#: js/utils/synthutils.js:72 +#: js/blocks/VolumeBlocks.js:47 +#.TRANS: musical instrument +msgid "piano" msgstr "" -#: js/lilypond.js:623 -msgid "flying squirrel" +#: js/utils/musicutils.js:1110 +#: js/utils/synthutils.js:74 +#.TRANS: musical instrument +msgid "violin" msgstr "" -#: js/lilypond.js:624 -msgid "bat" +#: js/utils/musicutils.js:1111 +#: js/utils/synthutils.js:76 +#.TRANS: viola musical instrument +msgid "viola" msgstr "" -#: js/lilypond.js:757 -#: js/lilypond.js:921 -#: js/lilypond.js:959 -#: js/ActionBlocks.js:1256 -#: js/ExtrasBlocks.js:553 -msgid "start drum" +#: js/utils/musicutils.js:1112 +#: js/utils/synthutils.js:114 +#.TRANS: xylophone musical instrument +msgid "xylophone" msgstr "" -#: js/SaveInterface.js:59 -#: js/SaveInterface.js:61 -#: js/SaveInterface.js:93 -msgid "Music Blocks Project" +#: js/utils/musicutils.js:1113 +#: js/utils/synthutils.js:136 +#.TRANS: vibraphone musical instrument +msgid "vibraphone" msgstr "" -#: js/SaveInterface.js:63 -msgid "This project was created in Music Blocks" +#: js/utils/musicutils.js:1114 +#: js/utils/synthutils.js:78 +#.TRANS: musical instrument +msgid "cello" msgstr "" -#: js/SaveInterface.js:67 -msgid "Music Blocks is a Free/Libre Software application." +#: js/utils/musicutils.js:1116 +#: js/utils/synthutils.js:82 +#.TRANS: viola musical instrument +msgid "double bass" msgstr "" -#: js/SaveInterface.js:69 -msgid "The source code can be accessed at" +#: js/utils/musicutils.js:1117 +#: js/utils/synthutils.js:84 +#: js/widgets/rhythmruler.js:2511 +#.TRANS: musical instrument +msgid "guitar" msgstr "" -#: js/SaveInterface.js:72 -msgid "For more information, please consult the" +#: js/utils/musicutils.js:1118 +#: js/utils/synthutils.js:86 +#.TRANS: musical instrument +msgid "acoustic guitar" msgstr "" -#: js/SaveInterface.js:83 -msgid "Alternatively, open the file in Music Blocks using the Load project button." +#: js/utils/musicutils.js:1119 +#: js/utils/synthutils.js:88 +#.TRANS: musical instrument +msgid "flute" msgstr "" -#: js/SaveInterface.js:85 -msgid "Project Code" +#: js/utils/musicutils.js:1120 +#: js/utils/synthutils.js:90 +#.TRANS: musical instrument +msgid "clarinet" msgstr "" -#: js/SaveInterface.js:87 -msgid "This code stores data about the blocks in a project." +#: js/utils/musicutils.js:1121 +#: js/utils/synthutils.js:92 +#.TRANS: musical instrument +msgid "saxophone" msgstr "" -#: js/SaveInterface.js:89 -msgid "Show" +#: js/utils/musicutils.js:1122 +#: js/utils/synthutils.js:94 +#.TRANS: musical instrument +msgid "tuba" msgstr "" -#: js/SaveInterface.js:91 -msgid "Hide" +#: js/utils/musicutils.js:1123 +#: js/utils/synthutils.js:96 +#.TRANS: musical instrument +msgid "trumpet" msgstr "" -#: js/SaveInterface.js:197 -#: js/SaveInterface.js:58 -msgid "No description provided" +#: js/utils/musicutils.js:1124 +#: js/utils/synthutils.js:98 +#.TRANS: musical instrument +msgid "oboe" msgstr "" -#: js/SaveInterface.js:332 -msgid "Your recording is in progress." +#: js/utils/musicutils.js:1125 +#: js/utils/synthutils.js:100 +#.TRANS: musical instrument +msgid "trombone" msgstr "" -#: js/SaveInterface.js:401 -#.TRANS: File name prompt for save as Lilypond -msgid "File name" +#: js/utils/musicutils.js:1126 +#: js/utils/synthutils.js:116 +#.TRANS: polytone synthesizer +msgid "electronic synth" msgstr "" -#: js/SaveInterface.js:403 -#: js/StringHelper.js:39 -#.TRANS: Project title prompt for save as Lilypond -msgid "Project title" +#: js/utils/musicutils.js:1127 +#: js/utils/synthutils.js:118 +#.TRANS: simple monotone synthesizer +msgid "simple 1" msgstr "" -#: js/SaveInterface.js:405 -#.TRANS: Project title prompt for save as Lilypond -msgid "Project author" +#: js/utils/musicutils.js:1128 +msgid "simple 2" msgstr "" -#: js/SaveInterface.js:407 -#.TRANS: MIDI prompt for save as Lilypond -msgid "Include MIDI output?" +#: js/utils/musicutils.js:1129 +msgid "simple 3" msgstr "" -#: js/SaveInterface.js:409 -#.TRANS: Guitar prompt for save as Lilypond -msgid "Include guitar tablature output?" +#: js/utils/musicutils.js:1130 +msgid "simple 4" msgstr "" -#: js/SaveInterface.js:411 -#.TRANS: Lilypond is a scripting language for generating sheet music -msgid "Save as Lilypond" +#: js/utils/musicutils.js:1131 +#: js/utils/synthutils.js:58 +#: js/blocks/DrumBlocks.js:191 +#.TRANS: white noise synthesizer +msgid "white noise" msgstr "" -#: js/SaveInterface.js:426 -#: js/EnsembleBlocks.js:75 -#: js/EnsembleBlocks.js:154 -#: js/EnsembleBlocks.js:216 -#: js/EnsembleBlocks.js:302 -#: js/EnsembleBlocks.js:348 -#: js/EnsembleBlocks.js:389 -#: js/EnsembleBlocks.js:441 -#: js/EnsembleBlocks.js:490 -#: js/EnsembleBlocks.js:536 -#: js/EnsembleBlocks.js:583 -#: js/EnsembleBlocks.js:637 -#: js/EnsembleBlocks.js:753 -#: js/EnsembleBlocks.js:840 -#: js/EnsembleBlocks.js:899 -#: js/EnsembleBlocks.js:942 -#: js/EnsembleBlocks.js:1212 -#: js/EnsembleBlocks.js:1280 -#.TRANS: default project author when saving as Lilypond -msgid "Mr. Mouse" +#: js/utils/musicutils.js:1132 +#: js/utils/synthutils.js:60 +#.TRANS: brown noise synthesizer +msgid "brown noise" msgstr "" -#: js/SaveInterface.js:573 -msgid "The Lilypond code is copied to clipboard. You can paste it here: " +#: js/utils/musicutils.js:1133 +#: js/utils/synthutils.js:62 +#.TRANS: pink noise synthesizer +msgid "pink noise" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:50 -#: js/RhythmBlockPaletteBlocks.js:232 -#.TRANS: rhythm block -#.TRANS: translate "rhythm1" as rhythm -msgid "rhythm1" +#: js/utils/musicutils.js:1135 +#: js/utils/synthutils.js:148 +#: js/widgets/rhythmruler.js:2057 +#: js/widgets/rhythmruler.js:2319 +#.TRANS: musical instrument +msgid "snare drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:70 -#: js/RhythmBlockPaletteBlocks.js:251 -#: js/RhythmBlockPaletteBlocks.js:484 -#: js/RhythmBlockPaletteBlocks.js:553 -#: js/RhythmBlockPaletteBlocks.js:874 -msgid "number of notes" +#: js/utils/musicutils.js:1136 +#: js/utils/synthutils.js:150 +#.TRANS: musical instrument +msgid "kick drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:126 -msgid "polyphonic rhythm" +#: js/utils/musicutils.js:1137 +#: js/utils/synthutils.js:152 +#.TRANS: musical instrument +msgid "tom tom" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:218 -msgid "The Rhythm block is used to generate rhythm patterns." +#: js/utils/musicutils.js:1138 +#: js/utils/synthutils.js:154 +#.TRANS: musical instrument +msgid "floor tom" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:279 -msgid "1/64 note" +#: js/utils/musicutils.js:1139 +#: js/utils/synthutils.js:156 +#.TRANS: musical instrument +msgid "bass drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:303 -msgid "1/32 note" +#: js/utils/musicutils.js:1140 +#: js/utils/synthutils.js:158 +#.TRANS: a drum made from an inverted cup +msgid "cup drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:331 -msgid "1/16 note" +#: js/utils/musicutils.js:1141 +#: js/utils/synthutils.js:160 +#.TRANS: musical instrument +msgid "darbuka drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:359 -msgid "eighth note" +#: js/utils/musicutils.js:1142 +#: js/utils/synthutils.js:164 +#.TRANS: musical instrument +msgid "hi hat" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:387 -msgid "quarter note" +#: js/utils/musicutils.js:1143 +#: js/utils/synthutils.js:166 +#.TRANS: a small metal bell +msgid "ride bell" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:415 -msgid "half note" +#: js/utils/musicutils.js:1144 +#: js/utils/synthutils.js:168 +#.TRANS: musical instrument +msgid "cow bell" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:443 -msgid "whole note" +#: js/utils/musicutils.js:1145 +msgid "japanese drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:481 -#: js/RhythmBlockPaletteBlocks.js:550 -#: js/RhythmBlockPaletteBlocks.js:601 -#.TRANS: A tuplet is a note value divided into irregular time values. -msgid "tuplet" +#: js/utils/musicutils.js:1146 +#: js/utils/synthutils.js:174 +#.TRANS: musical instrument +msgid "japanese bell" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:767 -msgid "septuplet" +#: js/utils/musicutils.js:1147 +#: js/utils/synthutils.js:170 +#.TRANS: musical instrument +msgid "triangle bell" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:795 -msgid "quintuplet" +#: js/utils/musicutils.js:1148 +#: js/utils/synthutils.js:172 +#.TRANS: musical instrument +msgid "finger cymbals" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:823 -msgid "triplet" +#: js/utils/musicutils.js:1149 +#: js/utils/synthutils.js:176 +#.TRANS: a musically tuned set of bells +msgid "chime" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:850 -msgid "simple tuplet" +#: js/utils/musicutils.js:1150 +#: js/utils/synthutils.js:178 +#.TRANS: a musical instrument +msgid "gong" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:860 -msgid "Tuplets are a collection of notes that get scaled to a specific duration." +#: js/utils/musicutils.js:1151 +#: js/utils/synthutils.js:180 +#.TRANS: sound effect +msgid "clang" msgstr "" -#: js/WidgetBlocks.js:71 -#.TRANS: sound envelope (ADSR) -msgid "envelope" +#: js/utils/musicutils.js:1152 +#: js/utils/synthutils.js:182 +#.TRANS: sound effect +msgid "crash" msgstr "" -#: js/WidgetBlocks.js:79 -#.TRANS: Attack time is the time taken for initial run-up of level from nil to peak, beginning when the key is first pressed. -msgid "attack" +#: js/utils/musicutils.js:1153 +#: js/utils/synthutils.js:184 +#.TRANS: sound effect +msgid "bottle" msgstr "" -#: js/WidgetBlocks.js:81 -#.TRANS: Decay time is the time taken for the subsequent run down from the attack level to the designated sustain level. -msgid "decay" +#: js/utils/musicutils.js:1154 +#: js/utils/synthutils.js:186 +#.TRANS: sound effect +msgid "clap" msgstr "" -#: js/WidgetBlocks.js:83 -#.TRANS: Sustain level is the level during the main sequence of the sound's duration, until the key is released. -msgid "sustain" +#: js/utils/musicutils.js:1155 +#: js/utils/synthutils.js:188 +#.TRANS: sound effect +msgid "slap" msgstr "" -#: js/WidgetBlocks.js:85 -#.TRANS: Release time is the time taken for the level to decay from the sustain level to zero after the key is released. -msgid "release" +#: js/utils/musicutils.js:1156 +#: js/utils/synthutils.js:190 +#.TRANS: sound effect +msgid "splash" msgstr "" -#: js/WidgetBlocks.js:96 -msgid "Attack value should be from 0 to 100." +#: js/utils/musicutils.js:1157 +#: js/utils/synthutils.js:192 +#.TRANS: sound effect +msgid "bubbles" msgstr "" -#: js/WidgetBlocks.js:99 -msgid "Decay value should be from 0 to 100." +#: js/utils/musicutils.js:1158 +#: js/utils/synthutils.js:194 +#.TRANS: sound effect +msgid "raindrop" msgstr "" -#: js/WidgetBlocks.js:102 -msgid "Sustain value should be from 0 to 100." +#: js/utils/musicutils.js:1159 +#: js/utils/synthutils.js:196 +#.TRANS: animal sound effect +msgid "cat" msgstr "" -#: js/WidgetBlocks.js:105 -msgid "Release value should be from 0-100." +#: js/utils/musicutils.js:1160 +#: js/utils/synthutils.js:198 +#.TRANS: animal sound effect +msgid "cricket" msgstr "" -#: js/WidgetBlocks.js:121 -msgid "You are adding multiple envelope blocks." +#: js/utils/musicutils.js:1161 +#: js/utils/synthutils.js:200 +#.TRANS: animal sound effect +msgid "dog" msgstr "" -#: js/WidgetBlocks.js:144 -#.TRANS: a filter removes some unwanted components from a signal -msgid "filter" +#: js/utils/musicutils.js:1163 +#: js/utils/synthutils.js:102 +#.TRANS: musical instrument +msgid "banjo" msgstr "" -#: js/WidgetBlocks.js:149 -#: js/musicutils.js:706 -#: js/musicutils.js:1105 -#.TRANS: highpass filter -msgid "highpass" +#: js/utils/musicutils.js:1164 +#: js/utils/synthutils.js:104 +#.TRANS: musical instrument +msgid "koto" msgstr "" -#: js/WidgetBlocks.js:152 -#: js/ToneBlocks.js:42 -#: js/timbre.js:1558 -#: js/timbre.js:1808 -#.TRANS: type of filter, e.g., lowpass, highpass, etc. -#.TRANS: there are different types (sine, triangle, square...) of oscillators. -msgid "type" +#: js/utils/musicutils.js:1165 +#: js/utils/synthutils.js:106 +#.TRANS: musical instrument +msgid "dulcimer" msgstr "" -#: js/WidgetBlocks.js:154 -#: js/timbre.js:1818 -#.TRANS: rolloff is the steepness of a change in frequency. -msgid "rolloff" +#: js/utils/musicutils.js:1166 +#: js/utils/synthutils.js:108 +#.TRANS: musical instrument +msgid "electric guitar" msgstr "" -#: js/WidgetBlocks.js:155 -#: js/MediaBlocks.js:692 -#: js/temperament.js:382 -#: js/temperament.js:417 -#: js/temperament.js:477 -#: js/temperament.js:485 -#: js/temperament.js:1348 -#: js/timbre.js:1842 -msgid "frequency" +#: js/utils/musicutils.js:1167 +#: js/utils/synthutils.js:110 +#.TRANS: musical instrument +msgid "bassoon" msgstr "" -#: js/WidgetBlocks.js:179 -#.TRANS: rolloff is the steepness of a change in frequency. -msgid "Rolloff value should be either -12, -24, -48, or -96 decibels/octave." +#: js/utils/musicutils.js:1168 +#: js/utils/synthutils.js:112 +#.TRANS: musical instrument +msgid "celeste" msgstr "" -#: js/WidgetBlocks.js:211 -msgid "The Temperament tool is used to define custom tuning." +#: js/utils/musicutils.js:1170 +#: js/widgets/temperament.js:787 +#.TRANS: musical temperament +msgid "equal" msgstr "" -#: js/WidgetBlocks.js:277 -#: js/sampler.js:329 -msgid "Upload a sample and adjust its pitch center." +#: js/utils/musicutils.js:1172 +#.TRANS: musical temperament +msgid "Pythagorean" msgstr "" -#: js/WidgetBlocks.js:284 -#.TRANS: the speed at music is should be played. -msgid "sampler" +#: js/utils/musicutils.js:1174 +#.TRANS: musical temperament +msgid "just intonation" msgstr "" -#: js/WidgetBlocks.js:329 -#: js/WidgetBlocks.js:334 -#: js/IntervalsBlocks.js:928 -#: js/VolumeBlocks.js:411 -#: js/ToneBlocks.js:946 -#: js/VolumeActions.js:218 -#: js/musicutils.js:704 -#: js/musicutils.js:755 -#: js/musicutils.js:798 -#: js/musicutils.js:820 -#: js/musicutils.js:1136 -#: js/synthutils.js:118 -#: js/modewidget.js:919 -#.TRANS: customize voice -msgid "custom" +#: js/utils/musicutils.js:1176 +#.TRANS: musical temperament +msgid "meantone" msgstr "" -#: js/WidgetBlocks.js:432 -msgid "The Meter block opens a tool to select strong beats for the meter." +#: js/utils/musicutils.js:1193 +msgid "major 7th" msgstr "" -#: js/WidgetBlocks.js:473 -msgid "The oscilloscope block opens a tool to visualize waveforms." +#: js/utils/musicutils.js:1194 +msgid "minor 7th" msgstr "" -#: js/WidgetBlocks.js:478 -msgid "oscilloscope" +#: js/utils/musicutils.js:1195 +msgid "dominant 7th" msgstr "" -#: js/WidgetBlocks.js:530 -msgid "The Custom mode block opens a tool to explore musical mode (the spacing of the notes in a scale)." +#: js/utils/musicutils.js:1196 +msgid "minor-major 7th" msgstr "" -#: js/WidgetBlocks.js:536 -#.TRANS: musical mode is the pattern of half-steps in an octave, e.g., Major or Minor modes -msgid "custom mode" +#: js/utils/musicutils.js:1197 +msgid "fully-diminished 7th" msgstr "" -#: js/WidgetBlocks.js:570 -msgid "The Tempo block opens a metronome to visualize the beat." +#: js/utils/musicutils.js:1198 +msgid "half-diminished 7th" msgstr "" -#: js/WidgetBlocks.js:617 -msgid "The Arpeggio Widget is used to compose chord sequences." +#: js/utils/musicutils.js:1557 +#: js/utils/musicutils.js:1569 +msgid "Equal (12EDO)" msgstr "" -#: js/WidgetBlocks.js:623 -#: js/IntervalsBlocks.js:683 -msgid "arpeggio" +#: js/utils/musicutils.js:1558 +#: js/utils/musicutils.js:1570 +msgid "5-limit Just Intonation" msgstr "" -#: js/WidgetBlocks.js:677 -msgid "The Pitch drum matrix is used to map pitches to drum sounds." +#: js/utils/musicutils.js:1559 +#: js/utils/musicutils.js:1571 +msgid "Pythagorean (3-limit JI)" msgstr "" -#: js/WidgetBlocks.js:682 -#.TRANS: makes a mapping between pitches and drum sounds -msgid "pitch-drum mapper" +#: js/utils/musicutils.js:1560 +#: js/utils/musicutils.js:1561 +#: js/utils/musicutils.js:1572 +#: js/utils/musicutils.js:1573 +msgid "Meantone" msgstr "" -#: js/WidgetBlocks.js:724 -msgid "You must have at least one pitch block and one drum block in the matrix." +#: js/utils/musicutils.js:1574 +msgid "Custom" msgstr "" -#: js/WidgetBlocks.js:746 -msgid "The Pitch slider tool to is used to generate pitches at selected frequencies." +#: js/utils/musicutils.js:5387 +#: js/utils/musicutils.js:5430 +msgid "current" msgstr "" -#: js/WidgetBlocks.js:751 -#.TRANS: widget to generate pitches using a slider -msgid "pitch slider" +#: js/utils/musicutils.js:5390 +#: js/utils/musicutils.js:5421 +msgid "next" msgstr "" -#: js/WidgetBlocks.js:788 -msgid "chromatic keyboard" +#: js/utils/musicutils.js:5393 +#: js/utils/musicutils.js:5426 +msgid "previous" msgstr "" -#: js/WidgetBlocks.js:815 -#: js/WidgetBlocks.js:874 -#.TRANS: widget to generate pitches using a slider -msgid "music keyboard" +#: js/utils/synthutils.js:120 +#.TRANS: simple monotone synthesizer +msgid "simple-2" msgstr "" -#: js/WidgetBlocks.js:859 -#: js/WidgetBlocks.js:866 -msgid "The Music keyboard block opens a piano keyboard that can be used to create notes." +#: js/utils/synthutils.js:122 +#.TRANS: simple monotone synthesizer +msgid "simple-3" msgstr "" -#: js/WidgetBlocks.js:910 -msgid "The Pitch staircase tool to is used to generate pitches from a given ratio." +#: js/utils/synthutils.js:124 +#.TRANS: simple monotone synthesizer +msgid "simple-4" msgstr "" -#: js/WidgetBlocks.js:917 -#.TRANS: generate a progressive sequence of pitches -msgid "pitch staircase" +#: js/utils/synthutils.js:162 +#.TRANS: musical instrument +msgid "taiko" msgstr "" -#: js/WidgetBlocks.js:982 -msgid "The Rhythm Maker block opens a tool to create drum machines." +#: js/blocks/ActionBlocks.js:58 +msgid "The Return block will return a value from an action." msgstr "" -#: js/WidgetBlocks.js:1036 -msgid "G major scale" +#: js/blocks/ActionBlocks.js:75 +msgid "return" msgstr "" -#: js/WidgetBlocks.js:1064 -msgid "C major scale" +#: js/blocks/ActionBlocks.js:128 +msgid "The Return to URL block will return a value to a webpage." msgstr "" -#: js/WidgetBlocks.js:1097 -msgid "The Phrase Maker block opens a tool to create musical phrases." +#: js/blocks/ActionBlocks.js:145 +msgid "return to URL" msgstr "" -#: js/WidgetBlocks.js:1104 -#.TRANS: assigns pitch to a sequence of beats to generate a melody -msgid "phrase maker" +#: js/blocks/ActionBlocks.js:233 +#: js/blocks/ActionBlocks.js:290 +#: js/blocks/ActionBlocks.js:501 +#: js/blocks/ActionBlocks.js:688 +msgid "The Calculate block returns a value calculated by an action." msgstr "" -#: js/WidgetBlocks.js:1168 -msgid "You must have at least one pitch block and one rhythm block in the matrix." +#: js/blocks/ActionBlocks.js:251 +#: js/blocks/ActionBlocks.js:517 +#: js/blocks/ActionBlocks.js:707 +msgid "calculate" msgstr "" -#: js/WidgetBlocks.js:1220 -msgid "The Status block opens a tool for inspecting the status of Music Blocks as it is running." +#: js/blocks/ActionBlocks.js:376 +#: js/blocks/ActionBlocks.js:593 +#: js/blocks/ActionBlocks.js:942 +#: js/blocks/ActionBlocks.js:1389 +#.TRANS: do is the do something or take an action. +msgid "The Do block is used to initiate an action." msgstr "" -#: js/IntervalsBlocks.js:45 -msgid "set temperament" +#: js/blocks/ActionBlocks.js:390 +#: js/blocks/ActionBlocks.js:610 +#: js/blocks/ActionBlocks.js:959 +#: js/blocks/ActionBlocks.js:1048 +#: js/blocks/MeterBlocks.js:769 +msgid "do1" msgstr "" -#: js/IntervalsBlocks.js:63 -#: js/MediaBlocks.js:746 -#: js/PitchBlocks.js:657 -#: js/PitchBlocks.js:933 -#: js/PitchBlocks.js:972 -#: js/PitchBlocks.js:1005 -#: js/PitchBlocks.js:1166 -#: js/PitchBlocks.js:1679 -#: js/PitchBlocks.js:1720 -#: js/PitchBlocks.js:1827 -#: js/ToneBlocks.js:1025 -#.TRANS: adjusts the shift up or down by one octave (twelve half-steps in the interval between two notes, one having twice or half the frequency in Hz of the other.) -msgid "octave" +#: js/blocks/ActionBlocks.js:390 +#: js/blocks/ActionBlocks.js:610 +#: js/blocks/ActionBlocks.js:959 +#: js/blocks/ActionBlocks.js:1048 +#: js/blocks/FlowBlocks.js:742 +#: js/blocks/FlowBlocks.js:822 +#: js/blocks/MeterBlocks.js:769 +msgid "do" msgstr "" -#: js/IntervalsBlocks.js:99 -msgid "The Temperament name block is used to select a tuning method." +#: js/blocks/ActionBlocks.js:791 +#: js/blocks/ActionBlocks.js:865 +msgid "The Arg block contains the value of an argument passed to an action." msgstr "" -#: js/IntervalsBlocks.js:161 -msgid "doubly" +#: js/blocks/ActionBlocks.js:806 +#: js/blocks/ActionBlocks.js:878 +msgid "arg" msgstr "" -#: js/IntervalsBlocks.js:166 -msgid "The Doubly block will double the size of an interval." +#: js/blocks/ActionBlocks.js:836 +#: js/blocks/ActionBlocks.js:900 +#: js/blocks/ActionBlocks.js:908 +msgid "Invalid argument" msgstr "" -#: js/IntervalsBlocks.js:262 -msgid "interval number" +#: js/blocks/ActionBlocks.js:944 +msgid "In the example, it is used with the One of block to choose a random phase." msgstr "" -#: js/IntervalsBlocks.js:330 -#.TRANS: measure the distance between two pitches in semi-tones -msgid "semi-tone interval measure" +#: js/blocks/ActionBlocks.js:1019 +#: js/blocks/ActionBlocks.js:1026 +msgid "The Listen block is used to listen for an event such as a mouse click." msgstr "" -#: js/IntervalsBlocks.js:397 -#: js/IntervalsBlocks.js:513 -msgid "You must use two pitch blocks when measuring an interval." +#: js/blocks/ActionBlocks.js:1028 +msgid "When the event happens, an action is taken." msgstr "" -#: js/IntervalsBlocks.js:439 -msgid "The Scalar interval block measures the distance between two notes in the current key and mode." +#: js/blocks/ActionBlocks.js:1045 +msgid "on" msgstr "" -#: js/IntervalsBlocks.js:445 -#.TRANS: measure the distance between two pitches in steps of musical scale -msgid "scalar interval measure" +#: js/blocks/ActionBlocks.js:1048 +#: js/blocks/ActionBlocks.js:1049 +#: js/blocks/ActionBlocks.js:1153 +msgid "event" msgstr "" -#: js/IntervalsBlocks.js:592 -#: js/musicutils.js:637 -#: js/musicutils.js:908 -#.TRANS: perfect is a music term related to intervals -msgid "perfect" +#: js/blocks/ActionBlocks.js:1133 +msgid "The Broadcast block is used to trigger an event." msgstr "" -#: js/IntervalsBlocks.js:621 -msgid "In the figure, we add sol# to sol." +#: js/blocks/ActionBlocks.js:1151 +msgid "broadcast" msgstr "" -#: js/IntervalsBlocks.js:627 -#: js/OrnamentBlocks.js:220 -#.TRANS: calculate a relative step between notes based on semi-tones -msgid "semi-tone interval" +#: js/blocks/ActionBlocks.js:1208 +msgid "Each Start block is a separate voice." msgstr "" -#: js/IntervalsBlocks.js:676 -msgid "The output of the example is: do, mi, sol, sol, ti, mi" +#: js/blocks/ActionBlocks.js:1304 +msgid "It is often used for storing a phrase of music that is repeated." msgstr "" -#: js/IntervalsBlocks.js:735 -msgid "The Chord block calculates common chords." +#: js/blocks/ActionBlocks.js:1495 +msgid "define temperament" msgstr "" -#: js/IntervalsBlocks.js:737 -msgid "In the figure, we generate a C-major chord." +#: js/blocks/BooleanBlocks.js:44 +msgid "The Not block is the logical not operator." msgstr "" -#: js/IntervalsBlocks.js:742 -msgid "chord" -msgstr "" +#: js/blocks/BooleanBlocks.js:62 +msgid "not" +msgstr "ikke" -#: js/IntervalsBlocks.js:794 -msgid "The Ratio Interval block calculates an interval based on a ratio." +#: js/blocks/BooleanBlocks.js:134 +msgid "The And block is the logical and operator." msgstr "" -#: js/IntervalsBlocks.js:799 -msgid "ratio interval" -msgstr "" +#: js/blocks/BooleanBlocks.js:152 +msgid "and" +msgstr "og" -#: js/IntervalsBlocks.js:868 -msgid "In the figure, we add la to sol." +#: js/blocks/BooleanBlocks.js:218 +msgid "The Or block is the logical or operator." msgstr "" -#: js/IntervalsBlocks.js:924 -#.TRANS: define a custom mode -msgid "define mode" +#: js/blocks/BooleanBlocks.js:236 +msgid "or" +msgstr "eller" + +#: js/blocks/BooleanBlocks.js:302 +msgid "The XOR block is the logical XOR operator." msgstr "" -#: js/IntervalsBlocks.js:977 -msgid "movable Do" +#: js/blocks/BooleanBlocks.js:320 +msgid "xor" msgstr "" -#: js/IntervalsBlocks.js:1028 -#.TRANS: mode length is the number of notes in the mode, e.g., 7 for major and minor scales; 12 for chromatic scales -msgid "mode length" +#: js/blocks/BooleanBlocks.js:808 +msgid "The Equal block returns True if the two numbers are equal." msgstr "" -#: js/IntervalsBlocks.js:1037 -msgid "The Mode length block is the number of notes in the current scale." +#: js/blocks/BooleanBlocks.js:909 +msgid "The Not-equal-to block returns True if the two numbers are not equal to each other." msgstr "" -#: js/IntervalsBlocks.js:1039 -msgid "Most Western scales have 7 notes." +#: js/blocks/BooleanBlocks.js:1008 +msgid "The Boolean block is used to specify true or false." msgstr "" -#: js/IntervalsBlocks.js:1088 -#.TRANS: the mode in music is 'major', 'minor', etc. -msgid "current mode" +#: js/blocks/BoxesBlocks.js:53 +#: js/blocks/BoxesBlocks.js:59 +msgid "The Add-to block is used to add to the value stored in a box." msgstr "" -#: js/IntervalsBlocks.js:1141 -#.TRANS: the key is a group of pitches with which a music composition is created -msgid "current key" +#: js/blocks/BoxesBlocks.js:61 +msgid "It can also be used with other blocks such as Color and Pen size." msgstr "" -#: js/IntervalsBlocks.js:1193 -#: js/IntervalsBlocks.js:1238 -#.TRANS: set the key and mode, e.g. C Major -msgid "set key" +#: js/blocks/BoxesBlocks.js:73 +msgid "add" msgstr "" -#: js/IntervalsBlocks.js:1247 -#: js/IntervalsBlocks.js:1253 -msgid "The Set key block is used to set the key and mode," +#: js/blocks/BoxesBlocks.js:75 +#: js/widgets/temperament.js:857 +msgid "to" msgstr "" -#: js/IntervalsBlocks.js:1253 -msgid "eg C Major" +#: js/blocks/BoxesBlocks.js:75 +#: js/blocks/BoxesBlocks.js:595 +#: js/blocks/HeapBlocks.js:544 +msgid "value1" msgstr "" -#: js/IntervalsBlocks.js:1266 -#: js/DictBlocks.js:215 -#: js/DictBlocks.js:216 -#: js/DictBlocks.js:289 -#: js/DictBlocks.js:290 -#: js/DictBlocks.js:357 -#: js/DictBlocks.js:430 -#: js/DictBlocks.js:431 -#.TRANS: key, e.g., C in C Major -msgid "key" +#: js/blocks/BoxesBlocks.js:118 +msgid "Block does not support incrementing." msgstr "" -#: js/ActionBlocks.js:58 -msgid "The Return block will return a value from an action." +#: js/blocks/BoxesBlocks.js:152 +msgid "The Add-1-to block adds one to the value stored in a box." msgstr "" -#: js/ActionBlocks.js:75 -msgid "return" +#: js/blocks/BoxesBlocks.js:163 +msgid "add 1 to" msgstr "" -#: js/ActionBlocks.js:128 -msgid "The Return to URL block will return a value to a webpage." +#: js/blocks/BoxesBlocks.js:211 +msgid "The Subtract-1-from block subtracts one from the value stored in a box." msgstr "" -#: js/ActionBlocks.js:145 -msgid "return to URL" +#: js/blocks/BoxesBlocks.js:222 +msgid "subtract 1 from" msgstr "" -#: js/ActionBlocks.js:233 -#: js/ActionBlocks.js:290 -#: js/ActionBlocks.js:501 -#: js/ActionBlocks.js:688 -msgid "The Calculate block returns a value calculated by an action." +#: js/blocks/BoxesBlocks.js:270 +#: js/blocks/BoxesBlocks.js:387 +msgid "The Box block returns the value stored in a box." msgstr "" -#: js/ActionBlocks.js:251 -#: js/ActionBlocks.js:517 -#: js/ActionBlocks.js:707 -msgid "calculate" +#: js/blocks/BoxesBlocks.js:500 +#: js/blocks/BoxesBlocks.js:576 +msgid "The Store in block will store a value in a box." msgstr "" -#: js/ActionBlocks.js:376 -#: js/ActionBlocks.js:593 -#: js/ActionBlocks.js:942 -#: js/ActionBlocks.js:1389 -#.TRANS: do is the do something or take an action. -msgid "The Do block is used to initiate an action." +#: js/blocks/BoxesBlocks.js:595 +#: js/blocks/EnsembleBlocks.js:391 +#: js/blocks/EnsembleBlocks.js:402 +msgid "name1" msgstr "" -#: js/ActionBlocks.js:390 -#: js/ActionBlocks.js:610 -#: js/ActionBlocks.js:959 -#: js/ActionBlocks.js:1048 -#: js/MeterBlocks.js:769 -msgid "do1" +#: js/blocks/BoxesBlocks.js:652 +msgid "The Box2 block returns the value stored in Box2." msgstr "" -#: js/ActionBlocks.js:390 -#: js/ActionBlocks.js:610 -#: js/ActionBlocks.js:959 -#: js/ActionBlocks.js:1048 -#: js/FlowBlocks.js:742 -#: js/FlowBlocks.js:822 -#: js/MeterBlocks.js:769 -msgid "do" +#: js/blocks/BoxesBlocks.js:703 +msgid "The Store in Box2 block is used to store a value in Box2." msgstr "" -#: js/ActionBlocks.js:791 -#: js/ActionBlocks.js:865 -msgid "The Arg block contains the value of an argument passed to an action." +#: js/blocks/BoxesBlocks.js:715 +msgid "store in box2" msgstr "" -#: js/ActionBlocks.js:806 -#: js/ActionBlocks.js:878 -msgid "arg" +#: js/blocks/BoxesBlocks.js:761 +msgid "The Box1 block returns the value stored in Box1." msgstr "" -#: js/ActionBlocks.js:836 -#: js/ActionBlocks.js:900 -#: js/ActionBlocks.js:908 -msgid "Invalid argument" +#: js/blocks/BoxesBlocks.js:812 +msgid "The Store in Box1 block is used to store a value in Box1." msgstr "" -#: js/ActionBlocks.js:944 -msgid "In the example, it is used with the One of block to choose a random phase." +#: js/blocks/BoxesBlocks.js:826 +msgid "store in box1" msgstr "" -#: js/ActionBlocks.js:1019 -#: js/ActionBlocks.js:1026 -msgid "The Listen block is used to listen for an event such as a mouse click." +#: js/blocks/DictBlocks.js:77 +msgid "show dictionary" msgstr "" -#: js/ActionBlocks.js:1028 -msgid "When the event happens, an action is taken." +#: js/blocks/DictBlocks.js:80 +#: js/blocks/DictBlocks.js:145 +#: js/blocks/DictBlocks.js:216 +#: js/blocks/DictBlocks.js:290 +#: js/blocks/ProgramBlocks.js:396 +#: js/blocks/ProgramBlocks.js:501 +#: js/blocks/ProgramBlocks.js:664 +msgid "My Dictionary" msgstr "" -#: js/ActionBlocks.js:1045 -msgid "on" +#: js/blocks/DictBlocks.js:129 +msgid "The Dictionary block returns a dictionary." msgstr "" -#: js/ActionBlocks.js:1048 -#: js/ActionBlocks.js:1049 -#: js/ActionBlocks.js:1153 -msgid "event" +#: js/blocks/DictBlocks.js:197 +#: js/blocks/DictBlocks.js:339 +msgid "The Get-dict block returns a value in the dictionary for a specified key." msgstr "" -#: js/ActionBlocks.js:1133 -msgid "The Broadcast block is used to trigger an event." +#: js/blocks/DictBlocks.js:212 +#: js/blocks/DictBlocks.js:354 +#.TRANS: retrieve a value from the dictionary with a given key +msgid "get value" msgstr "" -#: js/ActionBlocks.js:1151 -msgid "broadcast" +#: js/blocks/DictBlocks.js:215 +#: js/blocks/DictBlocks.js:216 +#: js/blocks/DictBlocks.js:289 +#: js/blocks/DictBlocks.js:290 +#: js/blocks/DictBlocks.js:357 +#: js/blocks/DictBlocks.js:430 +#: js/blocks/DictBlocks.js:431 +msgid "key2" msgstr "" -#: js/ActionBlocks.js:1208 -msgid "Each Start block is a separate voice." +#: js/blocks/DictBlocks.js:215 +#: js/blocks/DictBlocks.js:216 +#: js/blocks/DictBlocks.js:289 +#: js/blocks/DictBlocks.js:290 +#: js/blocks/DictBlocks.js:357 +#: js/blocks/DictBlocks.js:430 +#: js/blocks/DictBlocks.js:431 +#: js/blocks/IntervalsBlocks.js:1462 +#.TRANS: key, e.g., C in C Major +msgid "key" msgstr "" -#: js/ActionBlocks.js:1304 -msgid "It is often used for storing a phrase of music that is repeated." +#: js/blocks/DictBlocks.js:271 +#: js/blocks/DictBlocks.js:411 +msgid "The Set-dict block sets a value in the dictionary for a specified key." msgstr "" -#: js/ActionBlocks.js:1495 -msgid "define temperament" +#: js/blocks/DictBlocks.js:286 +#: js/blocks/DictBlocks.js:427 +#.TRANS: set a value in the dictionary for a given key +msgid "set value" msgstr "" -#: js/EnsembleBlocks.js:66 +#: js/blocks/EnsembleBlocks.js:66 msgid "mouse index heap" msgstr "" -#: js/EnsembleBlocks.js:68 +#: js/blocks/EnsembleBlocks.js:68 msgid "The Mouse index heap block returns a value in the heap at a specified location for a specified mouse." msgstr "" -#: js/EnsembleBlocks.js:77 -#: js/EnsembleBlocks.js:1080 +#: js/blocks/EnsembleBlocks.js:77 +#: js/blocks/EnsembleBlocks.js:1080 msgid "mouse name" msgstr "" -#: js/EnsembleBlocks.js:77 -#: js/EnsembleBlocks.js:92 -#: js/HeapBlocks.js:544 +#: js/blocks/EnsembleBlocks.js:77 +#: js/blocks/EnsembleBlocks.js:92 +#: js/blocks/HeapBlocks.js:544 #.TRANS: value1 is a numeric value (JAPANESE ONLY) msgid "index" msgstr "" -#: js/EnsembleBlocks.js:80 +#: js/blocks/EnsembleBlocks.js:80 msgid "turtle index heap" msgstr "" -#: js/EnsembleBlocks.js:82 +#: js/blocks/EnsembleBlocks.js:82 msgid "The Turtle index heap block returns a value in the heap at a specified location for a specified turtle." msgstr "" -#: js/EnsembleBlocks.js:90 -#: js/EnsembleBlocks.js:167 -#: js/EnsembleBlocks.js:230 -#: js/EnsembleBlocks.js:316 -#: js/EnsembleBlocks.js:362 -#: js/EnsembleBlocks.js:400 -#: js/EnsembleBlocks.js:454 -#: js/EnsembleBlocks.js:504 -#: js/EnsembleBlocks.js:550 -#: js/EnsembleBlocks.js:597 -#: js/EnsembleBlocks.js:651 -#: js/EnsembleBlocks.js:763 -#: js/EnsembleBlocks.js:854 -#: js/EnsembleBlocks.js:915 -#: js/EnsembleBlocks.js:955 -#: js/EnsembleBlocks.js:1219 -#: js/EnsembleBlocks.js:1293 +#: js/blocks/EnsembleBlocks.js:90 +#: js/blocks/EnsembleBlocks.js:167 +#: js/blocks/EnsembleBlocks.js:230 +#: js/blocks/EnsembleBlocks.js:316 +#: js/blocks/EnsembleBlocks.js:362 +#: js/blocks/EnsembleBlocks.js:400 +#: js/blocks/EnsembleBlocks.js:454 +#: js/blocks/EnsembleBlocks.js:504 +#: js/blocks/EnsembleBlocks.js:550 +#: js/blocks/EnsembleBlocks.js:597 +#: js/blocks/EnsembleBlocks.js:651 +#: js/blocks/EnsembleBlocks.js:763 +#: js/blocks/EnsembleBlocks.js:854 +#: js/blocks/EnsembleBlocks.js:915 +#: js/blocks/EnsembleBlocks.js:955 +#: js/blocks/EnsembleBlocks.js:1219 +#: js/blocks/EnsembleBlocks.js:1293 #.TRANS: Yertle is the name of a turtle. msgid "Yertle" msgstr "" -#: js/EnsembleBlocks.js:92 -#: js/EnsembleBlocks.js:1089 +#: js/blocks/EnsembleBlocks.js:92 +#: js/blocks/EnsembleBlocks.js:1089 msgid "turtle name" msgstr "" -#: js/EnsembleBlocks.js:122 -#: js/EnsembleBlocks.js:1197 -#: js/HeapBlocks.js:474 -#: js/HeapBlocks.js:572 +#: js/blocks/EnsembleBlocks.js:122 +#: js/blocks/EnsembleBlocks.js:1197 +#: js/blocks/HeapBlocks.js:474 +#: js/blocks/HeapBlocks.js:572 msgid "Index must be > 0." msgstr "" -#: js/EnsembleBlocks.js:127 -#: js/HeapBlocks.js:479 -#: js/HeapBlocks.js:577 +#: js/blocks/EnsembleBlocks.js:127 +#: js/blocks/HeapBlocks.js:479 +#: js/blocks/HeapBlocks.js:577 msgid "Maximum heap size is 1000." msgstr "" -#: js/EnsembleBlocks.js:145 +#: js/blocks/EnsembleBlocks.js:145 msgid "stop mouse" msgstr "" -#: js/EnsembleBlocks.js:147 +#: js/blocks/EnsembleBlocks.js:147 msgid "The Stop mouse block stops the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:158 +#: js/blocks/EnsembleBlocks.js:158 msgid "stop turtle" msgstr "" -#: js/EnsembleBlocks.js:160 +#: js/blocks/EnsembleBlocks.js:160 msgid "The Stop turtle block stops the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:184 -#: js/EnsembleBlocks.js:247 -#: js/EnsembleBlocks.js:413 -#: js/EnsembleBlocks.js:468 -#: js/EnsembleBlocks.js:706 -#: js/EnsembleBlocks.js:808 -#: js/EnsembleBlocks.js:870 -#: js/EnsembleBlocks.js:1190 -#: js/EnsembleBlocks.js:1253 +#: js/blocks/EnsembleBlocks.js:184 +#: js/blocks/EnsembleBlocks.js:247 +#: js/blocks/EnsembleBlocks.js:413 +#: js/blocks/EnsembleBlocks.js:468 +#: js/blocks/EnsembleBlocks.js:706 +#: js/blocks/EnsembleBlocks.js:808 +#: js/blocks/EnsembleBlocks.js:870 +#: js/blocks/EnsembleBlocks.js:1190 +#: js/blocks/EnsembleBlocks.js:1253 msgid "Cannot find mouse" msgstr "" -#: js/EnsembleBlocks.js:186 -#: js/EnsembleBlocks.js:249 -#: js/EnsembleBlocks.js:415 -#: js/EnsembleBlocks.js:470 -#: js/EnsembleBlocks.js:708 -#: js/EnsembleBlocks.js:810 -#: js/EnsembleBlocks.js:872 -#: js/EnsembleBlocks.js:1192 -#: js/EnsembleBlocks.js:1255 +#: js/blocks/EnsembleBlocks.js:186 +#: js/blocks/EnsembleBlocks.js:249 +#: js/blocks/EnsembleBlocks.js:415 +#: js/blocks/EnsembleBlocks.js:470 +#: js/blocks/EnsembleBlocks.js:708 +#: js/blocks/EnsembleBlocks.js:810 +#: js/blocks/EnsembleBlocks.js:872 +#: js/blocks/EnsembleBlocks.js:1192 +#: js/blocks/EnsembleBlocks.js:1255 msgid "Cannot find turtle" msgstr "" -#: js/EnsembleBlocks.js:206 +#: js/blocks/EnsembleBlocks.js:206 msgid "start mouse" msgstr "" -#: js/EnsembleBlocks.js:209 +#: js/blocks/EnsembleBlocks.js:209 msgid "The Start mouse block starts the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:220 +#: js/blocks/EnsembleBlocks.js:220 msgid "start turtle" msgstr "" -#: js/EnsembleBlocks.js:223 +#: js/blocks/EnsembleBlocks.js:223 msgid "The Start turtle block starts the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:256 +#: js/blocks/EnsembleBlocks.js:256 msgid "Mouse is already running." msgstr "" -#: js/EnsembleBlocks.js:258 +#: js/blocks/EnsembleBlocks.js:258 msgid "Turtle is already running." msgstr "" -#: js/EnsembleBlocks.js:282 +#: js/blocks/EnsembleBlocks.js:282 msgid "Cannot find start block" msgstr "" -#: js/EnsembleBlocks.js:292 +#: js/blocks/EnsembleBlocks.js:292 #.TRANS: pen color for this mouse msgid "mouse color" msgstr "" -#: js/EnsembleBlocks.js:294 +#: js/blocks/EnsembleBlocks.js:294 msgid "The Mouse color block returns the pen color of the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:306 +#: js/blocks/EnsembleBlocks.js:306 #.TRANS: pen color for this turtle msgid "turtle color" msgstr "" -#: js/EnsembleBlocks.js:308 +#: js/blocks/EnsembleBlocks.js:308 msgid "The Turtle color block returns the pen color of the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:338 +#: js/blocks/EnsembleBlocks.js:338 #.TRANS: heading (compass direction) for this mouse msgid "mouse heading" msgstr "" -#: js/EnsembleBlocks.js:340 +#: js/blocks/EnsembleBlocks.js:340 msgid "The Mouse heading block returns the heading of the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:352 +#: js/blocks/EnsembleBlocks.js:352 #.TRANS: heading (compass direction) for this turtle msgid "turtle heading" msgstr "" -#: js/EnsembleBlocks.js:354 +#: js/blocks/EnsembleBlocks.js:354 msgid "The Turtle heading block returns the heading of the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:384 -#: js/EnsembleBlocks.js:439 +#: js/blocks/EnsembleBlocks.js:384 +#: js/blocks/EnsembleBlocks.js:439 #.TRANS: set xy position for this mouse msgid "set mouse" msgstr "" -#: js/EnsembleBlocks.js:391 -#: js/EnsembleBlocks.js:402 -#: js/BoxesBlocks.js:595 -msgid "name1" -msgstr "" - -#: js/EnsembleBlocks.js:391 -#: js/EnsembleBlocks.js:402 -#: js/ProgramBlocks.js:881 -#: js/GraphicsBlocks.js:235 -#: js/GraphicsBlocks.js:313 -#: js/GraphicsBlocks.js:436 -#: js/GraphicsBlocks.js:487 -#: js/GraphicsBlocks.js:534 -#: js/GraphicsBlocks.js:750 +#: js/blocks/EnsembleBlocks.js:391 +#: js/blocks/EnsembleBlocks.js:402 +#: js/blocks/GraphicsBlocks.js:235 +#: js/blocks/GraphicsBlocks.js:313 +#: js/blocks/GraphicsBlocks.js:436 +#: js/blocks/GraphicsBlocks.js:487 +#: js/blocks/GraphicsBlocks.js:534 +#: js/blocks/GraphicsBlocks.js:750 +#: js/blocks/ProgramBlocks.js:881 msgid "x" msgstr "x" -#: js/EnsembleBlocks.js:391 -#: js/EnsembleBlocks.js:402 -#: js/ProgramBlocks.js:881 -#: js/GraphicsBlocks.js:149 -#: js/GraphicsBlocks.js:313 -#: js/GraphicsBlocks.js:436 -#: js/GraphicsBlocks.js:487 -#: js/GraphicsBlocks.js:534 -#: js/GraphicsBlocks.js:750 +#: js/blocks/EnsembleBlocks.js:391 +#: js/blocks/EnsembleBlocks.js:402 +#: js/blocks/GraphicsBlocks.js:149 +#: js/blocks/GraphicsBlocks.js:313 +#: js/blocks/GraphicsBlocks.js:436 +#: js/blocks/GraphicsBlocks.js:487 +#: js/blocks/GraphicsBlocks.js:534 +#: js/blocks/GraphicsBlocks.js:750 +#: js/blocks/ProgramBlocks.js:881 msgid "y" msgstr "y" -#: js/EnsembleBlocks.js:395 -#: js/EnsembleBlocks.js:452 +#: js/blocks/EnsembleBlocks.js:395 +#: js/blocks/EnsembleBlocks.js:452 #.TRANS: set xy position for this turtle msgid "set turtle" msgstr "" -#: js/EnsembleBlocks.js:433 +#: js/blocks/EnsembleBlocks.js:433 msgid "The Set mouse block sends a stack of blocks to be run by the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:446 +#: js/blocks/EnsembleBlocks.js:446 msgid "The Set turtle block sends a stack of blocks to be run by the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:480 +#: js/blocks/EnsembleBlocks.js:480 #.TRANS: y position for this mouse msgid "mouse y" msgstr "" -#: js/EnsembleBlocks.js:482 +#: js/blocks/EnsembleBlocks.js:482 msgid "The Y mouse block returns the Y position of the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:494 +#: js/blocks/EnsembleBlocks.js:494 #.TRANS: y position for this turtle msgid "turtle y" msgstr "" -#: js/EnsembleBlocks.js:496 +#: js/blocks/EnsembleBlocks.js:496 msgid "The Y turtle block returns the Y position of the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:526 +#: js/blocks/EnsembleBlocks.js:526 #.TRANS: x position for this mouse msgid "mouse x" msgstr "" -#: js/EnsembleBlocks.js:528 +#: js/blocks/EnsembleBlocks.js:528 msgid "The X mouse block returns the X position of the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:540 +#: js/blocks/EnsembleBlocks.js:540 #.TRANS: x position for this turtle msgid "turtle x" msgstr "" -#: js/EnsembleBlocks.js:542 +#: js/blocks/EnsembleBlocks.js:542 msgid "The X turtle block returns the X position of the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:573 +#: js/blocks/EnsembleBlocks.js:573 #.TRANS: notes played by this mouse msgid "mouse notes played" msgstr "" -#: js/EnsembleBlocks.js:575 +#: js/blocks/EnsembleBlocks.js:575 msgid "The Mouse elapse notes block returns the number of notes played by the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:587 +#: js/blocks/EnsembleBlocks.js:587 #.TRANS: notes played by this turtle msgid "turtle notes played" msgstr "" -#: js/EnsembleBlocks.js:589 +#: js/blocks/EnsembleBlocks.js:589 msgid "The Turtle elapse notes block returns the number of notes played by the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:627 +#: js/blocks/EnsembleBlocks.js:627 #.TRANS: convert current note for this turtle to piano key (1-88) msgid "mouse pitch number" msgstr "" -#: js/EnsembleBlocks.js:629 +#: js/blocks/EnsembleBlocks.js:629 msgid "The Mouse pitch block returns the current pitch number being played by the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:641 +#: js/blocks/EnsembleBlocks.js:641 #.TRANS: convert current note for this turtle to piano key (1-88) msgid "turtle pitch number" msgstr "" -#: js/EnsembleBlocks.js:643 -msgid "The Turrle pitch block returns the current pitch number being played by the specified turtle." +#: js/blocks/EnsembleBlocks.js:643 +msgid "The Turtle pitch block returns the current pitch number being played by the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:747 -#: js/EnsembleBlocks.js:819 +#: js/blocks/EnsembleBlocks.js:747 +#: js/blocks/EnsembleBlocks.js:819 #.TRANS: note value is the duration of the note played by this mouse msgid "mouse note value" msgstr "" -#: js/EnsembleBlocks.js:757 +#: js/blocks/EnsembleBlocks.js:757 #.TRANS: note value is the duration of the note played by this turtle msgid "turtle note value" msgstr "" -#: js/EnsembleBlocks.js:830 +#: js/blocks/EnsembleBlocks.js:830 #.TRANS: sync is short for synchronization msgid "mouse sync" msgstr "" -#: js/EnsembleBlocks.js:832 +#: js/blocks/EnsembleBlocks.js:832 msgid "The Mouse sync block aligns the beat count between mice." msgstr "" -#: js/EnsembleBlocks.js:844 +#: js/blocks/EnsembleBlocks.js:844 #.TRANS: sync is short for synchronization msgid "turtle sync" msgstr "" -#: js/EnsembleBlocks.js:846 +#: js/blocks/EnsembleBlocks.js:846 msgid "The Turtle sync block aligns the beat count between turtles." msgstr "" -#: js/EnsembleBlocks.js:887 +#: js/blocks/EnsembleBlocks.js:887 msgid "The Found mouse block will return true if the specified mouse can be found." msgstr "" -#: js/EnsembleBlocks.js:893 +#: js/blocks/EnsembleBlocks.js:893 msgid "found mouse" msgstr "" -#: js/EnsembleBlocks.js:903 +#: js/blocks/EnsembleBlocks.js:903 msgid "The Found turtle block will return true if the specified turtle can be found." msgstr "" -#: js/EnsembleBlocks.js:909 +#: js/blocks/EnsembleBlocks.js:909 msgid "found turtle" msgstr "" -#: js/EnsembleBlocks.js:932 +#: js/blocks/EnsembleBlocks.js:932 msgid "new mouse" msgstr "" -#: js/EnsembleBlocks.js:934 +#: js/blocks/EnsembleBlocks.js:934 msgid "The New mouse block will create a new mouse." msgstr "" -#: js/EnsembleBlocks.js:945 +#: js/blocks/EnsembleBlocks.js:945 msgid "new turtle" msgstr "" -#: js/EnsembleBlocks.js:947 +#: js/blocks/EnsembleBlocks.js:947 msgid "The New turtle block will create a new turtle." msgstr "" -#: js/EnsembleBlocks.js:1011 +#: js/blocks/EnsembleBlocks.js:1011 msgid "set mouse color" msgstr "" -#: js/EnsembleBlocks.js:1014 +#: js/blocks/EnsembleBlocks.js:1014 msgid "The Set-mouse-color block is used to set the color of a mouse." msgstr "" -#: js/EnsembleBlocks.js:1020 +#: js/blocks/EnsembleBlocks.js:1020 msgid "set turtle color" msgstr "" -#: js/EnsembleBlocks.js:1023 +#: js/blocks/EnsembleBlocks.js:1023 msgid "The Set-turtle-color block is used to set the color of a turtle." msgstr "" -#: js/EnsembleBlocks.js:1083 +#: js/blocks/EnsembleBlocks.js:1083 msgid "The Mouse-name block returns the name of a mouse." msgstr "" -#: js/EnsembleBlocks.js:1092 +#: js/blocks/EnsembleBlocks.js:1092 msgid "The Turtle-name block returns the name of a turtle." msgstr "" -#: js/EnsembleBlocks.js:1115 +#: js/blocks/EnsembleBlocks.js:1115 msgid "mouse count" msgstr "" -#: js/EnsembleBlocks.js:1118 +#: js/blocks/EnsembleBlocks.js:1118 msgid "The Mouse-count block returns the number of mice." msgstr "" -#: js/EnsembleBlocks.js:1124 +#: js/blocks/EnsembleBlocks.js:1124 msgid "turtle count" msgstr "" -#: js/EnsembleBlocks.js:1127 +#: js/blocks/EnsembleBlocks.js:1127 msgid "The Turtle-count block returns the number of turtles." msgstr "" -#: js/EnsembleBlocks.js:1149 +#: js/blocks/EnsembleBlocks.js:1149 msgid "nth mouse name" msgstr "" -#: js/EnsembleBlocks.js:1152 +#: js/blocks/EnsembleBlocks.js:1152 msgid "The Nth-Mouse name block returns the name of the nth mouse." msgstr "" -#: js/EnsembleBlocks.js:1158 +#: js/blocks/EnsembleBlocks.js:1158 msgid "nth turtle name" msgstr "" -#: js/EnsembleBlocks.js:1161 +#: js/blocks/EnsembleBlocks.js:1161 msgid "The Nth-Turtle name block returns the name of the nth turtle." msgstr "" -#: js/EnsembleBlocks.js:1205 -#: js/EnsembleBlocks.js:1265 +#: js/blocks/EnsembleBlocks.js:1205 +#: js/blocks/EnsembleBlocks.js:1265 msgid "set name" msgstr "" -#: js/EnsembleBlocks.js:1214 -#: js/EnsembleBlocks.js:1221 +#: js/blocks/EnsembleBlocks.js:1214 +#: js/blocks/EnsembleBlocks.js:1221 msgid "source" msgstr "" -#: js/EnsembleBlocks.js:1214 -#: js/EnsembleBlocks.js:1221 +#: js/blocks/EnsembleBlocks.js:1214 +#: js/blocks/EnsembleBlocks.js:1221 msgid "target" msgstr "" -#: js/EnsembleBlocks.js:1271 +#: js/blocks/EnsembleBlocks.js:1271 msgid "The Set-name block is used to name a mouse." msgstr "" -#: js/EnsembleBlocks.js:1284 +#: js/blocks/EnsembleBlocks.js:1284 msgid "The Set-name block is used to name a turtle." msgstr "" -#: js/BooleanBlocks.js:44 -msgid "The Not block is the logical not operator." -msgstr "" - -#: js/BooleanBlocks.js:62 -msgid "not" -msgstr "ikke" - -#: js/BooleanBlocks.js:134 -msgid "The And block is the logical and operator." -msgstr "" - -#: js/BooleanBlocks.js:152 -msgid "and" -msgstr "og" - -#: js/BooleanBlocks.js:218 -msgid "The Or block is the logical or operator." -msgstr "" - -#: js/BooleanBlocks.js:236 -msgid "or" -msgstr "eller" - -#: js/BooleanBlocks.js:302 -msgid "The XOR block is the logical XOR operator." -msgstr "" - -#: js/BooleanBlocks.js:320 -msgid "xor" -msgstr "" - -#: js/BooleanBlocks.js:808 -msgid "The Equal block returns True if the two numbers are equal." -msgstr "" - -#: js/BooleanBlocks.js:909 -msgid "The Not-equal-to block returns True if the two numbers are not equal to each other." -msgstr "" - -#: js/BooleanBlocks.js:1008 -msgid "The Boolean block is used to specify true or false." -msgstr "" - -#: js/MediaBlocks.js:35 -#.TRANS: right side of the screen -msgid "right (screen)" -msgstr "" - -#: js/MediaBlocks.js:45 -#: js/MediaBlocks.js:56 -msgid "The Right block returns the position of the right of the canvas." -msgstr "" - -#: js/MediaBlocks.js:97 -#.TRANS: left side of the screen -msgid "left (screen)" -msgstr "" - -#: js/MediaBlocks.js:107 -#: js/MediaBlocks.js:118 -msgid "The Left block returns the position of the left of the canvas." -msgstr "" - -#: js/MediaBlocks.js:158 -msgid "top (screen)" -msgstr "" - -#: js/MediaBlocks.js:168 -#: js/MediaBlocks.js:179 -msgid "The Top block returns the position of the top of the canvas." +#: js/blocks/ExtrasBlocks.js:33 +msgid "fraction" msgstr "" -#: js/MediaBlocks.js:219 -msgid "bottom (screen)" +#: js/blocks/ExtrasBlocks.js:36 +msgid "Convert a float to a fraction" msgstr "" -#: js/MediaBlocks.js:229 -#: js/MediaBlocks.js:240 -msgid "The Bottom block returns the position of the bottom of the canvas." +#: js/blocks/ExtrasBlocks.js:93 +msgid "save as ABC" msgstr "" -#: js/MediaBlocks.js:282 -msgid "width" +#: js/blocks/ExtrasBlocks.js:96 +#: js/blocks/ExtrasBlocks.js:132 +#: js/blocks/ExtrasBlocks.js:168 +msgid "title" msgstr "" -#: js/MediaBlocks.js:291 -msgid "The Width block returns the width of the canvas." +#: js/blocks/ExtrasBlocks.js:129 +msgid "save as Lilypond" msgstr "" -#: js/MediaBlocks.js:325 -msgid "height" +#: js/blocks/ExtrasBlocks.js:165 +msgid "save as SVG" msgstr "" -#: js/MediaBlocks.js:334 -msgid "The Height block returns the height of the canvas." +#: js/blocks/ExtrasBlocks.js:216 +msgid "no background" msgstr "" -#: js/MediaBlocks.js:369 -#.TRANS: stops playback of an audio recording -msgid "stop play" +#: js/blocks/ExtrasBlocks.js:219 +msgid "The No background block eliminates the background from the saved SVG output." msgstr "" -#: js/MediaBlocks.js:404 -#.TRANS: Erases the images and text -msgid "erase media" -msgstr "" +#: js/blocks/ExtrasBlocks.js:247 +msgid "show blocks" +msgstr "vis blokker" -#: js/MediaBlocks.js:409 -msgid "The Erase Media block erases text and images." +#: js/blocks/ExtrasBlocks.js:249 +msgid "The Show blocks block shows the blocks." msgstr "" -#: js/MediaBlocks.js:439 -#.TRANS: play an audio recording -msgid "play back" -msgstr "" +#: js/blocks/ExtrasBlocks.js:274 +msgid "hide blocks" +msgstr "skjul blokker" -#: js/MediaBlocks.js:487 -msgid "speak" +#: js/blocks/ExtrasBlocks.js:276 +msgid "The Hide blocks block hides the blocks." msgstr "" -#: js/MediaBlocks.js:495 -msgid "The Speak block outputs to the text-to-speech synthesizer" +#: js/blocks/ExtrasBlocks.js:305 +#: js/blocks/ExtrasBlocks.js:338 +msgid "The Space block is used to add space between blocks." msgstr "" -#: js/MediaBlocks.js:546 -msgid "camera" -msgstr "" +#: js/blocks/ExtrasBlocks.js:376 +msgid "wait" +msgstr "vent" -#: js/MediaBlocks.js:551 -msgid "The Camera block connects a webcam to the Show block." +#: js/blocks/ExtrasBlocks.js:379 +msgid "The Wait block pauses the program for a specified number of seconds." msgstr "" -#: js/MediaBlocks.js:574 -msgid "video" +#: js/blocks/ExtrasBlocks.js:433 +#: plugins/facebook.rtp:30 +msgid "comment" msgstr "" -#: js/MediaBlocks.js:579 -msgid "The Video block selects video for use with the Show block." +#: js/blocks/ExtrasBlocks.js:469 +msgid "print" msgstr "" -#: js/MediaBlocks.js:607 -msgid "The Open file block opens a file for use with the Show block." +#: js/blocks/ExtrasBlocks.js:476 +msgid "The Print block displays text at the top of the screen." msgstr "" -#: js/MediaBlocks.js:645 -msgid "stop media" +#: js/blocks/ExtrasBlocks.js:582 +msgid "display grid" msgstr "" -#: js/MediaBlocks.js:650 -msgid "The Stop media block stops audio or video playback." +#: js/blocks/ExtrasBlocks.js:587 +msgid "The Display Grid Block changes the grid type" msgstr "" -#: js/MediaBlocks.js:679 -#: js/PitchBlocks.js:1539 -#: js/phrasemaker.js:822 -#: js/musickeyboard.js:1654 -#.TRANS: a measure of frequency: one cycle per second -msgid "hertz" +#: js/blocks/ExtrasBlocks.js:689 +#: js/blocks/ExtrasBlocks.js:708 +#: js/blocks/ExtrasBlocks.js:731 +#: js/blocks/ExtrasBlocks.js:754 +#: js/blocks/ExtrasBlocks.js:772 +#: js/blocks/ExtrasBlocks.js:791 +#: js/blocks/ExtrasBlocks.js:810 +#: js/blocks/ExtrasBlocks.js:829 +msgid "unknown" msgstr "" -#: js/MediaBlocks.js:692 -msgid "duration (ms)" +#: js/blocks/FlowBlocks.js:41 +msgid "The Backward block runs code in reverse order (Musical retrograde)." msgstr "" -#: js/MediaBlocks.js:728 -#.TRANS: translate a note into hertz, e.g., A4 -> 440HZ -msgid "note to frequency" +#: js/blocks/FlowBlocks.js:48 +msgid "backward" msgstr "" -#: js/MediaBlocks.js:736 -msgid "The To frequency block converts a pitch name and octave to Hertz." +#: js/blocks/FlowBlocks.js:124 +msgid "The Duplicate block will run each block multiple times." msgstr "" -#: js/MediaBlocks.js:746 -#: js/PitchBlocks.js:656 -#: js/PitchBlocks.js:932 -#: js/PitchBlocks.js:1827 -#.TRANS: name2 is name as in name of pitch (JAPANESE ONLY) -msgid "name2" +#: js/blocks/FlowBlocks.js:136 +msgid "duplicate" msgstr "" -#: js/MediaBlocks.js:812 -msgid "The Avatar block is used to change the appearance of the mouse." +#: js/blocks/FlowBlocks.js:334 +msgid "The Default block is used inside of a Switch to define the default action." msgstr "" -#: js/MediaBlocks.js:819 -msgid "The Avatar block is used to change the appearance of the turtle." +#: js/blocks/FlowBlocks.js:342 +msgid "default" msgstr "" -#: js/MediaBlocks.js:831 -#: js/MediaBlocks.js:891 -#.TRANS: a media object -msgid "size" +#: js/blocks/FlowBlocks.js:361 +#: js/blocks/FlowBlocks.js:418 +msgid "The Case Block must be used inside of a Switch Block." msgstr "" -#: js/MediaBlocks.js:831 -msgid "image" +#: js/blocks/FlowBlocks.js:389 +msgid "The Case block is used inside of a Switch to define matches." msgstr "" -#: js/MediaBlocks.js:880 -msgid "The Show block is used to display text or images on the canvas." +#: js/blocks/FlowBlocks.js:397 +msgid "case" msgstr "" -#: js/MediaBlocks.js:888 -#.TRANS: show1 is show as in display an image or text on the screen. -msgid "show1" +#: js/blocks/FlowBlocks.js:446 +msgid "The Switch block will run the code in the matching Case." msgstr "" -#: js/MediaBlocks.js:891 -msgid "obj" +#: js/blocks/FlowBlocks.js:454 +msgid "switch" msgstr "" -#: js/MediaBlocks.js:938 -msgid "The Media block is used to import an image." +#: js/blocks/FlowBlocks.js:595 +msgid "The Stop block will stop a loop" msgstr "" -#: js/MediaBlocks.js:973 -msgid "The Text block holds a text string." +#: js/blocks/FlowBlocks.js:597 +msgid "Forever, Repeat, While, or Until." msgstr "" -#: js/ProgramBlocks.js:33 -msgid "The Load-heap-from-app block loads the heap from a web page." +#: js/blocks/FlowBlocks.js:604 +#: js/widgets/timbre.js:417 +#: js/widgets/timbre.js:419 +#: js/widgets/musickeyboard.js:819 +#: js/widgets/musickeyboard.js:821 +#: js/widgets/phrasemaker.js:4202 +#: plugins/rodi.rtp:29 +#: plugins/rodi.rtp:73 +#: plugins/rodi.rtp:413 +msgid "stop" msgstr "" -#: js/ProgramBlocks.js:44 -#.TRANS: load the heap contents from a URL -msgid "load heap from App" +#: js/blocks/FlowBlocks.js:653 +msgid "The Waitfor block will wait until the condition is true." msgstr "" -#: js/ProgramBlocks.js:95 -msgid "Error parsing JSON data:" +#: js/blocks/FlowBlocks.js:661 +msgid "wait for" msgstr "" -#: js/ProgramBlocks.js:100 -msgid "404: Page not found" +#: js/blocks/FlowBlocks.js:732 +msgid "The Until block will repeat until the condition is true." msgstr "" -#: js/ProgramBlocks.js:133 -msgid "The Save-heap-to-app block saves the heap to a web page." +#: js/blocks/FlowBlocks.js:740 +msgid "until" msgstr "" -#: js/ProgramBlocks.js:144 -#.TRANS: save the heap contents to a URL -msgid "save heap to App" +#: js/blocks/FlowBlocks.js:742 +#: js/blocks/FlowBlocks.js:822 +msgid "do2" msgstr "" -#: js/ProgramBlocks.js:189 -msgid "Cannot find a valid heap for" +#: js/blocks/FlowBlocks.js:812 +msgid "The While block will repeat while the condition is true." msgstr "" -#: js/ProgramBlocks.js:206 -msgid "The Load-heap block loads the heap from a file." +#: js/blocks/FlowBlocks.js:820 +msgid "while" msgstr "" -#: js/ProgramBlocks.js:217 -#.TRANS: load the heap from a file -msgid "load heap" +#: js/blocks/FlowBlocks.js:903 +#: js/blocks/FlowBlocks.js:968 +#: js/blocks/FlowBlocks.js:979 +msgid "In this example if the mouse button is pressed a snare drum will play." msgstr "" -#: js/ProgramBlocks.js:270 -msgid "The file you selected does not contain a valid heap." -msgstr "" +#: js/blocks/FlowBlocks.js:925 +#: js/blocks/FlowBlocks.js:988 +msgid "if" +msgstr "hvis" -#: js/ProgramBlocks.js:275 -msgid "The loadHeap block needs a loadFile block." -msgstr "" +#: js/blocks/FlowBlocks.js:927 +#: js/blocks/FlowBlocks.js:990 +msgid "then" +msgstr "så" -#: js/ProgramBlocks.js:291 -msgid "The Set-heap block loads the heap." -msgstr "" +#: js/blocks/FlowBlocks.js:927 +msgid "else" +msgstr "ellers" -#: js/ProgramBlocks.js:299 -#: js/HeapBlocks.js:539 -#.TRANS: load the heap from a JSON encoding -msgid "set heap" +#: js/blocks/FlowBlocks.js:1025 +msgid "The Forever block will repeat the contained blocks forever." msgstr "" -#: js/ProgramBlocks.js:340 -msgid "The block you selected does not contain a valid heap." -msgstr "" +#: js/blocks/FlowBlocks.js:1037 +msgid "forever" +msgstr "for evig" -#: js/ProgramBlocks.js:343 -msgid "The Set heap block needs a heap." +#: js/blocks/FlowBlocks.js:1073 +msgid "The Repeat block will repeat the contained blocks." msgstr "" -#: js/ProgramBlocks.js:360 -msgid "The Load-dictionary block loads a dictionary from a file." +#: js/blocks/FlowBlocks.js:1075 +msgid "In this example the note will be played 4 times." msgstr "" -#: js/ProgramBlocks.js:372 -#.TRANS: load a dictionary from a file -msgid "load dictionary" -msgstr "" +#: js/blocks/FlowBlocks.js:1083 +msgid "repeat" +msgstr "gjenta" -#: js/ProgramBlocks.js:390 -#: js/ProgramBlocks.js:658 -#: js/ToneBlocks.js:1025 -msgid "file" +#: js/blocks/FlowBlocks.js:1123 +msgid "duplicate factor" msgstr "" -#: js/ProgramBlocks.js:396 -#: js/ProgramBlocks.js:501 -#: js/ProgramBlocks.js:664 -#: js/DictBlocks.js:80 -#: js/DictBlocks.js:145 -#: js/DictBlocks.js:216 -#: js/DictBlocks.js:290 -msgid "My Dictionary" +#: js/blocks/HeapBlocks.js:49 +msgid "The Heap block returns the heap." msgstr "" -#: js/ProgramBlocks.js:444 -msgid "The file you selected does not contain a valid dictionary." +#: js/blocks/HeapBlocks.js:133 +msgid "show heap" msgstr "" -#: js/ProgramBlocks.js:449 -msgid "The load dictionary block needs a load file block." +#: js/blocks/HeapBlocks.js:181 +msgid "The Heap-length block returns the length of the heap." msgstr "" -#: js/ProgramBlocks.js:466 -msgid "The Set-dictionary block loads a dictionary." +#: js/blocks/HeapBlocks.js:195 +msgid "heap length" msgstr "" -#: js/ProgramBlocks.js:477 -#.TRANS: load a dictionary from a JSON -msgid "set dictionary" +#: js/blocks/HeapBlocks.js:254 +msgid "The Heap-empty? block returns true if the heap is empty." msgstr "" -#: js/ProgramBlocks.js:546 -msgid "The block you selected does not contain a valid dictionary." +#: js/blocks/HeapBlocks.js:268 +#.TRANS: Is the heap empty? +msgid "heap empty?" msgstr "" -#: js/ProgramBlocks.js:550 -msgid "The set dictionary block needs a dictionary." +#: js/blocks/HeapBlocks.js:317 +msgid "The Empty-heap block empties the heap." msgstr "" -#: js/ProgramBlocks.js:567 -msgid "The Save-heap block saves the heap to a file." +#: js/blocks/HeapBlocks.js:327 +#: js/blocks/HeapBlocks.js:647 +#.TRANS: empty the heap +msgid "empty heap" msgstr "" -#: js/ProgramBlocks.js:578 -#.TRANS: save the heap to a file -msgid "save heap" +#: js/blocks/HeapBlocks.js:371 +msgid "The Reverse-heap block reverses the order of the heap." msgstr "" -#: js/ProgramBlocks.js:629 -msgid "The Save-dictionary block saves a dictionary to a file." +#: js/blocks/HeapBlocks.js:384 +#.TRANS: reverse the order of the heap +msgid "reverse heap" msgstr "" -#: js/ProgramBlocks.js:640 -#.TRANS: save a dictionary to a file -msgid "save dictionary" +#: js/blocks/HeapBlocks.js:428 +msgid "The Index-heap block returns a value in the heap at a specified location." msgstr "" -#: js/ProgramBlocks.js:720 -msgid "The Open palette block opens a palette." +#: js/blocks/HeapBlocks.js:443 +#.TRANS: retrieve a value from the heap at index position in the heap +msgid "index heap" msgstr "" -#: js/ProgramBlocks.js:727 -msgid "open palette" +#: js/blocks/HeapBlocks.js:523 +msgid "The Set-heap entry block sets a value in he heap at the specified location." msgstr "" -#: js/ProgramBlocks.js:785 -msgid "The Delete block block removes a block." +#: js/blocks/HeapBlocks.js:539 +#: js/blocks/ProgramBlocks.js:299 +#.TRANS: load the heap from a JSON encoding +msgid "set heap" msgstr "" -#: js/ProgramBlocks.js:797 -#.TRANS: Move this block to the trash. -msgid "delete block" +#: js/blocks/HeapBlocks.js:619 +msgid "The Pop block removes the value at the top of the heap." msgstr "" -#: js/ProgramBlocks.js:861 -msgid "The Move block block moves a block." -msgstr "" +#: js/blocks/HeapBlocks.js:633 +#.TRANS: pop a value off the top of the heap +msgid "pop" +msgstr "ta av" -#: js/ProgramBlocks.js:869 -#.TRANS: Move the position of a block on the screen. -msgid "move block" +#: js/blocks/HeapBlocks.js:680 +msgid "The Push block adds a value to the top of the heap." msgstr "" -#: js/ProgramBlocks.js:881 -#: js/ProgramBlocks.js:1048 -msgid "block number" +#: js/blocks/HeapBlocks.js:696 +#.TRANS: push a value onto the top of the heap +msgid "push" msgstr "" -#: js/ProgramBlocks.js:935 -#.TRANS: Run program beginning at this block. -msgid "run block" +#: js/blocks/IntervalsBlocks.js:45 +msgid "set temperament" msgstr "" -#: js/ProgramBlocks.js:1025 -msgid "The Dock block block connections two blocks." +#: js/blocks/IntervalsBlocks.js:63 +#: js/blocks/MediaBlocks.js:746 +#: js/blocks/PitchBlocks.js:657 +#: js/blocks/PitchBlocks.js:935 +#: js/blocks/PitchBlocks.js:974 +#: js/blocks/PitchBlocks.js:1007 +#: js/blocks/PitchBlocks.js:1194 +#: js/blocks/PitchBlocks.js:1717 +#: js/blocks/PitchBlocks.js:1758 +#: js/blocks/PitchBlocks.js:1866 +#: js/blocks/ToneBlocks.js:1025 +#: js/turtleactions/IntervalsActions.js:114 +#.TRANS: adjusts the shift up or down by one octave (twelve half-steps in the interval between two notes, one having twice or half the frequency in Hz of the other.) +msgid "octave" msgstr "" -#: js/ProgramBlocks.js:1036 -#.TRANS: We can connect a block to another block. -msgid "connect blocks" +#: js/blocks/IntervalsBlocks.js:99 +msgid "The Temperament name block is used to select a tuning method." msgstr "" -#: js/ProgramBlocks.js:1048 -msgid "target block" +#: js/blocks/IntervalsBlocks.js:161 +msgid "doubly" msgstr "" -#: js/ProgramBlocks.js:1048 -msgid "connection number" +#: js/blocks/IntervalsBlocks.js:166 +msgid "The Doubly block will double the size of an interval." msgstr "" -#: js/ProgramBlocks.js:1140 -msgid "The Make block block creates a new block." +#: js/blocks/IntervalsBlocks.js:262 +msgid "interval number" msgstr "" -#: js/ProgramBlocks.js:1152 -#.TRANS: Create a new block -msgid "make block" +#: js/blocks/IntervalsBlocks.js:317 +msgid "current interval" msgstr "" -#: js/ProgramBlocks.js:1186 -#: js/ProgramBlocks.js:1227 -#: js/RhythmBlocks.js:1128 -#: js/PitchBlocks.js:972 -#: js/PitchBlocks.js:1005 -#: js/temperament.js:340 -#: js/temperament.js:362 -#: js/temperament.js:372 -#: js/temperament.js:484 -#: js/status.js:190 -#: plugins/rodi.rtp:192 -#.TRANS: a musical note consisting of pitch and duration -msgid "note" +#: js/blocks/IntervalsBlocks.js:387 +#.TRANS: measure the distance between two pitches in semi-tones +msgid "semi-tone interval measure" msgstr "" -#: js/ProgramBlocks.js:1285 -msgid "Cannot find block" +#: js/blocks/IntervalsBlocks.js:454 +#: js/blocks/IntervalsBlocks.js:570 +msgid "You must use two pitch blocks when measuring an interval." msgstr "" -#: js/ProgramBlocks.js:1304 -#: js/ProgramBlocks.js:1313 -msgid "Warning: block argument type mismatch" +#: js/blocks/IntervalsBlocks.js:496 +msgid "The Scalar interval block measures the distance between two notes in the current key and mode." msgstr "" -#: js/ProgramBlocks.js:1347 -msgid "The Open project block is used to open a project from a web page." +#: js/blocks/IntervalsBlocks.js:502 +#.TRANS: measure the distance between two pitches in steps of musical scale +msgid "scalar interval measure" msgstr "" -#: js/ProgramBlocks.js:1357 -msgid "open project" +#: js/blocks/IntervalsBlocks.js:678 +msgid "In the figure, we add sol# to sol." msgstr "" -#: js/ProgramBlocks.js:1410 -msgid "Please enter a valid URL." +#: js/blocks/IntervalsBlocks.js:684 +#: js/blocks/OrnamentBlocks.js:220 +#.TRANS: calculate a relative step between notes based on semi-tones +msgid "semi-tone interval" msgstr "" -#: js/DrumBlocks.js:59 -msgid "The Noise name block is used to select a noise synthesizer." +#: js/blocks/IntervalsBlocks.js:733 +msgid "The output of the example is: do, mi, sol, sol, ti, mi" msgstr "" -#: js/DrumBlocks.js:102 -msgid "The Drum name block is used to select a drum." +#: js/blocks/IntervalsBlocks.js:740 +#: js/blocks/WidgetBlocks.js:768 +msgid "arpeggio" msgstr "" -#: js/DrumBlocks.js:146 -msgid "The Effects name block is used to select a sound effect." +#: js/blocks/IntervalsBlocks.js:931 +msgid "The Chord block calculates common chords." msgstr "" -#: js/DrumBlocks.js:163 -msgid "noise" +#: js/blocks/IntervalsBlocks.js:933 +msgid "In the figure, we generate a C-major chord." msgstr "" -#: js/DrumBlocks.js:177 -msgid "The Play noise block will generate white, pink, or brown noise." +#: js/blocks/IntervalsBlocks.js:938 +msgid "chord" msgstr "" -#: js/DrumBlocks.js:191 -#: js/musicutils.js:752 -#: js/synthutils.js:47 -#.TRANS: white noise synthesizer -msgid "white noise" +#: js/blocks/IntervalsBlocks.js:990 +msgid "The Ratio Interval block calculates an interval based on a ratio." msgstr "" -#: js/DrumBlocks.js:326 -msgid "Replace every instance of a pitch with a drum sound." +#: js/blocks/IntervalsBlocks.js:995 +msgid "ratio interval" msgstr "" -#: js/DrumBlocks.js:337 -#.TRANS: map a pitch to a drum sound -msgid "map pitch to drum" +#: js/blocks/IntervalsBlocks.js:1064 +msgid "In the figure, we add la to sol." msgstr "" -#: js/DrumBlocks.js:404 -msgid "In the example above, a kick drum sound will be played instead of sol." +#: js/blocks/IntervalsBlocks.js:1120 +#.TRANS: define a custom mode +msgid "define mode" msgstr "" -#: js/DrumBlocks.js:416 -#.TRANS: set the current drum sound for playback -msgid "set drum" +#: js/blocks/IntervalsBlocks.js:1173 +msgid "movable Do" msgstr "" -#: js/DrumBlocks.js:460 -msgid "sound effect" +#: js/blocks/IntervalsBlocks.js:1224 +#.TRANS: mode length is the number of notes in the mode, e.g., 7 for major and minor scales; 12 for chromatic scales +msgid "mode length" msgstr "" -#: js/DrumBlocks.js:498 -msgid "You can use multiple Drum blocks within a Note block." +#: js/blocks/IntervalsBlocks.js:1233 +msgid "The Mode length block is the number of notes in the current scale." msgstr "" -#: js/RhythmBlocks.js:182 -#: js/RhythmBlocks.js:1086 -#: js/RhythmBlocks.js:1162 -msgid "Note value must be greater than 0." +#: js/blocks/IntervalsBlocks.js:1235 +msgid "Most Western scales have 7 notes." msgstr "" -#: js/RhythmBlocks.js:215 -#: js/RhythmBlocks.js:278 -#: js/RhythmBlocks.js:350 -#.TRANS: swing is a rhythmic variation that emphasises the offbeat -msgid "swing" +#: js/blocks/IntervalsBlocks.js:1284 +#.TRANS: the mode in music is 'major', 'minor', etc. +msgid "current mode" msgstr "" -#: js/RhythmBlocks.js:355 -#.TRANS: the amount to shift to the offbeat note -msgid "swing value" +#: js/blocks/IntervalsBlocks.js:1337 +#.TRANS: the key is a group of pitches with which a music composition is created +msgid "current key" msgstr "" -#: js/RhythmBlocks.js:419 -msgid "The Skip notes block will cause notes to be skipped." +#: js/blocks/IntervalsBlocks.js:1389 +#: js/blocks/IntervalsBlocks.js:1434 +#.TRANS: set the key and mode, e.g. C Major +msgid "set key" msgstr "" -#: js/RhythmBlocks.js:427 -#.TRANS: substitute rests on notes being skipped -msgid "skip notes" +#: js/blocks/IntervalsBlocks.js:1443 +#: js/blocks/IntervalsBlocks.js:1449 +msgid "The Set key block is used to set the key and mode," msgstr "" -#: js/RhythmBlocks.js:489 -#.TRANS: speed up note duration by some factor, e.g. convert 1/4 to 1/8 notes by using a factor of 2 -msgid "multiply note value" +#: js/blocks/IntervalsBlocks.js:1449 +msgid "eg C Major" msgstr "" -#: js/RhythmBlocks.js:542 -msgid "The Tie block works on pairs of notes, combining them into one note." +#: js/blocks/MediaBlocks.js:35 +#.TRANS: right side of the screen +msgid "right (screen)" msgstr "" -#: js/RhythmBlocks.js:550 -#.TRANS: tie notes together into one longer note -msgid "tie" +#: js/blocks/MediaBlocks.js:45 +#: js/blocks/MediaBlocks.js:56 +msgid "The Right block returns the position of the right of the canvas." msgstr "" -#: js/RhythmBlocks.js:591 -#: js/RhythmBlocks.js:671 -#.TRANS: a dotted note is played for 1.5x its value, e.g., 1/8. --> 3/16 -msgid "dot" +#: js/blocks/MediaBlocks.js:97 +#.TRANS: left side of the screen +msgid "left (screen)" msgstr "" -#: js/RhythmBlocks.js:619 -#: js/RhythmActions.js:221 -msgid "An argument of -1 results in a note value of 0." +#: js/blocks/MediaBlocks.js:107 +#: js/blocks/MediaBlocks.js:118 +msgid "The Left block returns the position of the left of the canvas." msgstr "" -#: js/RhythmBlocks.js:661 -msgid "The Dot block extends the duration of a note by 50%." +#: js/blocks/MediaBlocks.js:158 +msgid "top (screen)" msgstr "" -#: js/RhythmBlocks.js:663 -msgid "Eg a dotted quarter note will play for 3/8 (1/4 + 1/8) of a beat." +#: js/blocks/MediaBlocks.js:168 +#: js/blocks/MediaBlocks.js:179 +msgid "The Top block returns the position of the top of the canvas." msgstr "" -#: js/RhythmBlocks.js:765 -#.TRANS: Japanese only: note value block for drum -msgid "note value drum" +#: js/blocks/MediaBlocks.js:219 +msgid "bottom (screen)" msgstr "" -#: js/RhythmBlocks.js:829 -msgid "392 hertz" +#: js/blocks/MediaBlocks.js:229 +#: js/blocks/MediaBlocks.js:240 +msgid "The Bottom block returns the position of the bottom of the canvas." msgstr "" -#: js/RhythmBlocks.js:1119 -msgid "The Note block is a container for one or more Pitch blocks." +#: js/blocks/MediaBlocks.js:282 +msgid "width" msgstr "" -#: js/RhythmBlocks.js:1121 -msgid "The Note block specifies the duration (note value) of its contents." +#: js/blocks/MediaBlocks.js:291 +msgid "The Width block returns the width of the canvas." msgstr "" -#: js/RhythmBlocks.js:1130 -msgid "value2" +#: js/blocks/MediaBlocks.js:325 +msgid "height" msgstr "" -#: js/RhythmBlocks.js:1200 -msgid "define frequency" +#: js/blocks/MediaBlocks.js:334 +msgid "The Height block returns the height of the canvas." msgstr "" -#: js/RhythmBlocks.js:1218 -#: js/temperament.js:650 -#: js/temperament.js:1421 -msgid "octave space" +#: js/blocks/MediaBlocks.js:369 +#.TRANS: stops playback of an audio recording +msgid "stop play" msgstr "" -#: js/NumberBlocks.js:28 -msgid "The Int block returns an integer." +#: js/blocks/MediaBlocks.js:404 +#.TRANS: Erases the images and text +msgid "erase media" msgstr "" -#: js/NumberBlocks.js:34 -msgid "int" +#: js/blocks/MediaBlocks.js:409 +msgid "The Erase Media block erases text and images." msgstr "" -#: js/NumberBlocks.js:73 -msgid "The Mod block returns the remainder from a division." +#: js/blocks/MediaBlocks.js:439 +#.TRANS: play an audio recording +msgid "play back" msgstr "" -#: js/NumberBlocks.js:79 -msgid "mod" -msgstr "modulo" +#: js/blocks/MediaBlocks.js:487 +msgid "speak" +msgstr "" -#: js/NumberBlocks.js:123 -msgid "The Power block calculates a power function." +#: js/blocks/MediaBlocks.js:495 +msgid "The Speak block outputs to the text-to-speech synthesizer" msgstr "" -#: js/NumberBlocks.js:178 -msgid "The Sqrt block returns the square root." +#: js/blocks/MediaBlocks.js:546 +msgid "camera" msgstr "" -#: js/NumberBlocks.js:184 -msgid "sqrt" +#: js/blocks/MediaBlocks.js:551 +msgid "The Camera block connects a webcam to the Show block." msgstr "" -#: js/NumberBlocks.js:230 -msgid "The Abs block returns the absolute value." +#: js/blocks/MediaBlocks.js:574 +msgid "video" msgstr "" -#: js/NumberBlocks.js:236 -msgid "abs" +#: js/blocks/MediaBlocks.js:579 +msgid "The Video block selects video for use with the Show block." msgstr "" -#: js/NumberBlocks.js:277 -msgid "The Distance block returns the distance between two points. For example, between the mouse and the center of the screen." +#: js/blocks/MediaBlocks.js:607 +msgid "The Open file block opens a file for use with the Show block." msgstr "" -#: js/NumberBlocks.js:283 -#: plugins/rodi.rtp:310 -msgid "distance" +#: js/blocks/MediaBlocks.js:645 +msgid "stop media" msgstr "" -#: js/NumberBlocks.js:343 -msgid "The Divide block is used to divide." +#: js/blocks/MediaBlocks.js:650 +msgid "The Stop media block stops audio or video playback." msgstr "" -#: js/NumberBlocks.js:411 -msgid "The Multiply block is used to multiply." +#: js/blocks/MediaBlocks.js:679 +#: js/blocks/PitchBlocks.js:1577 +#: js/widgets/musickeyboard.js:1936 +#: js/widgets/phrasemaker.js:1037 +#.TRANS: a measure of frequency: one cycle per second +msgid "hertz" msgstr "" -#: js/NumberBlocks.js:554 -msgid "The Minus block is used to subtract." +#: js/blocks/MediaBlocks.js:692 +#: js/blocks/WidgetBlocks.js:182 +#: js/widgets/temperament.js:506 +#: js/widgets/temperament.js:546 +#: js/widgets/temperament.js:610 +#: js/widgets/temperament.js:618 +#: js/widgets/temperament.js:1505 +#: js/widgets/timbre.js:1842 +msgid "frequency" msgstr "" -#: js/NumberBlocks.js:647 -msgid "The Plus block is used to add." +#: js/blocks/MediaBlocks.js:692 +msgid "duration (ms)" msgstr "" -#: js/NumberBlocks.js:773 -msgid "The One-of block returns one of two choices." +#: js/blocks/MediaBlocks.js:728 +#.TRANS: translate a note into hertz, e.g., A4 -> 440HZ +msgid "note to frequency" msgstr "" -#: js/NumberBlocks.js:780 -#: js/PitchBlocks.js:616 -msgid "one of" +#: js/blocks/MediaBlocks.js:736 +msgid "The To frequency block converts a pitch name and octave to Hertz." msgstr "" -#: js/NumberBlocks.js:782 -msgid "this" +#: js/blocks/MediaBlocks.js:746 +#: js/blocks/PitchBlocks.js:656 +#: js/blocks/PitchBlocks.js:934 +#: js/blocks/PitchBlocks.js:1866 +#.TRANS: name2 is name as in name of pitch (JAPANESE ONLY) +msgid "name2" msgstr "" -#: js/NumberBlocks.js:782 -msgid "that" +#: js/blocks/MediaBlocks.js:812 +msgid "The Avatar block is used to change the appearance of the mouse." msgstr "" -#: js/NumberBlocks.js:837 -msgid "The Random block returns a random number." +#: js/blocks/MediaBlocks.js:819 +msgid "The Avatar block is used to change the appearance of the turtle." msgstr "" -#: js/NumberBlocks.js:844 -msgid "random" -msgstr "tilfeldig" +#: js/blocks/MediaBlocks.js:831 +#: js/blocks/MediaBlocks.js:891 +#.TRANS: a media object +msgid "size" +msgstr "" -#: js/NumberBlocks.js:846 -msgid "min" -msgstr "min" +#: js/blocks/MediaBlocks.js:831 +msgid "image" +msgstr "" -#: js/NumberBlocks.js:846 -msgid "max" -msgstr "maks" +#: js/blocks/MediaBlocks.js:880 +msgid "The Show block is used to display text or images on the canvas." +msgstr "" -#: js/NumberBlocks.js:910 -msgid "The Number block holds a number." +#: js/blocks/MediaBlocks.js:888 +#.TRANS: show1 is show as in display an image or text on the screen. +msgid "show1" msgstr "" -#: js/BoxesBlocks.js:53 -#: js/BoxesBlocks.js:59 -msgid "The Add-to block is used to add to the value stored in a box." +#: js/blocks/MediaBlocks.js:891 +msgid "obj" msgstr "" -#: js/BoxesBlocks.js:61 -msgid "It can also be used with other blocks such as Color and Pen size." +#: js/blocks/MediaBlocks.js:938 +msgid "The Media block is used to import an image." msgstr "" -#: js/BoxesBlocks.js:73 -msgid "add" +#: js/blocks/MediaBlocks.js:973 +msgid "The Text block holds a text string." msgstr "" -#: js/BoxesBlocks.js:75 -#: js/temperament.js:716 -msgid "to" +#: js/blocks/MeterBlocks.js:34 +#.TRANS: musical meter (time signature), e.g., 4:4 +msgid "current meter" msgstr "" -#: js/BoxesBlocks.js:75 -#: js/BoxesBlocks.js:595 -#: js/HeapBlocks.js:544 -msgid "value1" +#: js/blocks/MeterBlocks.js:85 +#.TRANS: number of beats per minute +msgid "beat factor" msgstr "" -#: js/BoxesBlocks.js:118 -msgid "Block does not support incrementing." +#: js/blocks/MeterBlocks.js:161 +msgid "The Beats per minute block returns the current beats per minute." msgstr "" -#: js/BoxesBlocks.js:152 -msgid "The Add-1-to block adds one to the value stored in a box." +#: js/blocks/MeterBlocks.js:169 +#: js/widgets/status.js:152 +#.TRANS: number of beats played per minute +msgid "beats per minute2" msgstr "" -#: js/BoxesBlocks.js:163 -msgid "add 1 to" +#: js/blocks/MeterBlocks.js:169 +#: js/blocks/MeterBlocks.js:1056 +#: js/blocks/MeterBlocks.js:1133 +#: js/blocks/MeterBlocks.js:1211 +#.TRANS: sets tempo by defining a beat and beats per minute +msgid "beats per minute" msgstr "" -#: js/BoxesBlocks.js:211 -msgid "The Subtract-1-from block subtracts one from the value stored in a box." +#: js/blocks/MeterBlocks.js:233 +#.TRANS: count of current musical measure in meter +msgid "measure count" msgstr "" -#: js/BoxesBlocks.js:222 -msgid "subtract 1 from" +#: js/blocks/MeterBlocks.js:241 +msgid "The Measure count block returns the current measure." msgstr "" -#: js/BoxesBlocks.js:270 -#: js/BoxesBlocks.js:387 -msgid "The Box block returns the value stored in a box." +#: js/blocks/MeterBlocks.js:290 +#.TRANS: count of current beat in the meter +msgid "beat count" msgstr "" -#: js/BoxesBlocks.js:500 -#: js/BoxesBlocks.js:576 -msgid "The Store in block will store a value in a box." +#: js/blocks/MeterBlocks.js:300 +#: js/blocks/MeterBlocks.js:311 +#: js/blocks/MeterBlocks.js:565 +#: js/blocks/MeterBlocks.js:576 +msgid "The Beat count block is the number of the current beat," msgstr "" -#: js/BoxesBlocks.js:652 -msgid "The Box2 block returns the value stored in Box2." +#: js/blocks/MeterBlocks.js:313 +#: js/blocks/MeterBlocks.js:578 +msgid "eg 1, 2, 3, or 4." msgstr "" -#: js/BoxesBlocks.js:703 -msgid "The Store in Box2 block is used to store a value in Box2." +#: js/blocks/MeterBlocks.js:368 +#.TRANS: count the number of notes +msgid "sum note values" msgstr "" -#: js/BoxesBlocks.js:715 -msgid "store in box2" +#: js/blocks/MeterBlocks.js:376 +#: js/blocks/MeterBlocks.js:440 +msgid "The Note counter block can be used to count the number of contained notes." msgstr "" -#: js/BoxesBlocks.js:761 -msgid "The Box1 block returns the value stored in Box1." +#: js/blocks/MeterBlocks.js:432 +#.TRANS: count the number of notes +msgid "note counter" msgstr "" -#: js/BoxesBlocks.js:812 -msgid "The Store in Box1 block is used to store a value in Box1." +#: js/blocks/MeterBlocks.js:496 +#.TRANS: number of whole notes that have been played +msgid "whole notes played" msgstr "" -#: js/BoxesBlocks.js:826 -msgid "store in box1" +#: js/blocks/MeterBlocks.js:505 +msgid "The Whole notes played block returns the total number of whole notes played." msgstr "" -#: js/HeapBlocks.js:49 -msgid "The Heap block returns the heap." +#: js/blocks/MeterBlocks.js:555 +#: js/turtleactions/DictActions.js:83 +#.TRANS: number of notes that have been played +msgid "notes played" msgstr "" -#: js/HeapBlocks.js:133 -msgid "show heap" +#: js/blocks/MeterBlocks.js:653 +msgid "The No clock block decouples the notes from the master clock." msgstr "" -#: js/HeapBlocks.js:181 -msgid "The Heap-length block returns the length of the heap." +#: js/blocks/MeterBlocks.js:661 +#.TRANS: don't lock notes to master clock +msgid "no clock" msgstr "" -#: js/HeapBlocks.js:195 -msgid "heap length" +#: js/blocks/MeterBlocks.js:700 +msgid "on weak beat do" msgstr "" -#: js/HeapBlocks.js:254 -msgid "The Heap-empty? block returns true if the heap is empty." +#: js/blocks/MeterBlocks.js:705 +msgid "The On-weak-beat block lets you specify actions to take on weak (off) beats." msgstr "" -#: js/HeapBlocks.js:268 -#.TRANS: Is the heap empty? -msgid "heap empty?" +#: js/blocks/MeterBlocks.js:750 +msgid "on strong beat" msgstr "" -#: js/HeapBlocks.js:317 -msgid "The Empty-heap block empties the heap." +#: js/blocks/MeterBlocks.js:758 +msgid "The On-strong-beat block lets you specify actions to take on specified beats." msgstr "" -#: js/HeapBlocks.js:327 -#: js/HeapBlocks.js:647 -#.TRANS: empty the heap -msgid "empty heap" +#: js/blocks/MeterBlocks.js:769 +msgid "beat" msgstr "" -#: js/HeapBlocks.js:371 -msgid "The Reverse-heap block reverses the order of the heap." +#: js/blocks/MeterBlocks.js:813 +msgid "on every beat do" msgstr "" -#: js/HeapBlocks.js:384 -#.TRANS: reverse the order of the heap -msgid "reverse heap" +#: js/blocks/MeterBlocks.js:821 +msgid "The On-every-beat block lets you specify actions to take on every beat." msgstr "" -#: js/HeapBlocks.js:428 -msgid "The Index-heap block returns a value in the heap at a specified location." +#: js/blocks/MeterBlocks.js:874 +msgid "on every note do" msgstr "" -#: js/HeapBlocks.js:443 -#.TRANS: retrieve a value from the heap at index position in the heap -msgid "index heap" +#: js/blocks/MeterBlocks.js:882 +msgid "The On-every-note block lets you specify actions to take on every note." msgstr "" -#: js/HeapBlocks.js:523 -msgid "The Set-heap entry block sets a value in he heap at the specified location." +#: js/blocks/MeterBlocks.js:928 +#: js/blocks/MeterBlocks.js:999 +#.TRANS: sets tempo by defining a beat and beats per minute +msgid "master beats per minute" msgstr "" -#: js/HeapBlocks.js:619 -msgid "The Pop block removes the value at the top of the heap." +#: js/blocks/MeterBlocks.js:952 +#: js/blocks/MeterBlocks.js:1078 +#: js/blocks/MeterBlocks.js:1135 +msgid "bpm" msgstr "" -#: js/HeapBlocks.js:633 -#.TRANS: pop a value off the top of the heap -msgid "pop" -msgstr "ta av" +#: js/blocks/MeterBlocks.js:952 +#: js/blocks/MeterBlocks.js:1078 +#: js/blocks/MeterBlocks.js:1135 +msgid "beat value" +msgstr "" -#: js/HeapBlocks.js:680 -msgid "The Push block adds a value to the top of the heap." +#: js/blocks/MeterBlocks.js:1024 +#: js/blocks/MeterBlocks.js:1167 +#: js/blocks/MeterBlocks.js:1241 +msgid "Beats per minute must be > 30." msgstr "" -#: js/HeapBlocks.js:696 -#.TRANS: push a value onto the top of the heap -msgid "push" +#: js/blocks/MeterBlocks.js:1027 +#: js/blocks/MeterBlocks.js:1170 +#: js/blocks/MeterBlocks.js:1244 +msgid "Maximum beats per minute is 1000." msgstr "" -#: js/FlowBlocks.js:41 -msgid "The Backward block runs code in reverse order (Musical retrograde)." +#: js/blocks/MeterBlocks.js:1068 +msgid "The Beats per minute block sets the number of 1/4 notes per minute." msgstr "" -#: js/FlowBlocks.js:48 -msgid "backward" +#: js/blocks/MeterBlocks.js:1279 +#.TRANS: anacrusis +msgid "pickup" msgstr "" -#: js/FlowBlocks.js:124 -msgid "The Duplicate block will run each block multiple times." +#: js/blocks/MeterBlocks.js:1367 +msgid "number of beats" msgstr "" -#: js/FlowBlocks.js:136 -msgid "duplicate" +#: js/blocks/NumberBlocks.js:28 +msgid "The Int block returns an integer." msgstr "" -#: js/FlowBlocks.js:334 -msgid "The Default block is used inside of a Switch to define the default action." +#: js/blocks/NumberBlocks.js:34 +msgid "int" msgstr "" -#: js/FlowBlocks.js:342 -msgid "default" +#: js/blocks/NumberBlocks.js:73 +msgid "The Mod block returns the remainder from a division." msgstr "" -#: js/FlowBlocks.js:361 -#: js/FlowBlocks.js:418 -msgid "The Case Block must be used inside of a Switch Block." +#: js/blocks/NumberBlocks.js:79 +msgid "mod" +msgstr "modulo" + +#: js/blocks/NumberBlocks.js:141 +msgid "The Power block calculates a power function." msgstr "" -#: js/FlowBlocks.js:389 -msgid "The Case block is used inside of a Switch to define matches." +#: js/blocks/NumberBlocks.js:196 +msgid "The Sqrt block returns the square root." msgstr "" -#: js/FlowBlocks.js:397 -msgid "case" +#: js/blocks/NumberBlocks.js:202 +msgid "sqrt" msgstr "" -#: js/FlowBlocks.js:446 -msgid "The Switch block will run the code in the matching Case." +#: js/blocks/NumberBlocks.js:248 +msgid "The Abs block returns the absolute value." msgstr "" -#: js/FlowBlocks.js:454 -msgid "switch" +#: js/blocks/NumberBlocks.js:254 +msgid "abs" msgstr "" -#: js/FlowBlocks.js:595 -msgid "The Stop block will stop a loop" +#: js/blocks/NumberBlocks.js:295 +msgid "The Distance block returns the distance between two points. For example, between the mouse and the center of the screen." msgstr "" -#: js/FlowBlocks.js:597 -msgid "Forever, Repeat, While, or Until." +#: js/blocks/NumberBlocks.js:301 +#: plugins/rodi.rtp:310 +msgid "distance" msgstr "" -#: js/FlowBlocks.js:604 -#: js/phrasemaker.js:3799 -#: js/musickeyboard.js:629 -#: js/musickeyboard.js:631 -#: js/timbre.js:417 -#: js/timbre.js:419 -#: plugins/rodi.rtp:29 -#: plugins/rodi.rtp:73 -#: plugins/rodi.rtp:413 -msgid "stop" +#: js/blocks/NumberBlocks.js:361 +msgid "The Divide block is used to divide." msgstr "" -#: js/FlowBlocks.js:653 -msgid "The Waitfor block will wait until the condition is true." +#: js/blocks/NumberBlocks.js:441 +msgid "The Multiply block is used to multiply." msgstr "" -#: js/FlowBlocks.js:661 -msgid "wait for" +#: js/blocks/NumberBlocks.js:612 +msgid "The Minus block is used to subtract." msgstr "" -#: js/FlowBlocks.js:732 -msgid "The Until block will repeat until the condition is true." +#: js/blocks/NumberBlocks.js:723 +msgid "The Plus block is used to add." msgstr "" -#: js/FlowBlocks.js:740 -msgid "until" +#: js/blocks/NumberBlocks.js:849 +msgid "The One-of block returns one of two choices." msgstr "" -#: js/FlowBlocks.js:742 -#: js/FlowBlocks.js:822 -msgid "do2" +#: js/blocks/NumberBlocks.js:856 +#: js/blocks/PitchBlocks.js:616 +msgid "one of" msgstr "" -#: js/FlowBlocks.js:812 -msgid "The While block will repeat while the condition is true." +#: js/blocks/NumberBlocks.js:858 +msgid "this" msgstr "" -#: js/FlowBlocks.js:820 -msgid "while" +#: js/blocks/NumberBlocks.js:858 +msgid "that" msgstr "" -#: js/FlowBlocks.js:903 -#: js/FlowBlocks.js:968 -#: js/FlowBlocks.js:979 -msgid "In this example if the mouse button is pressed a snare drum will play." +#: js/blocks/NumberBlocks.js:913 +msgid "The Random block returns a random number." msgstr "" -#: js/FlowBlocks.js:925 -#: js/FlowBlocks.js:988 -msgid "if" -msgstr "hvis" +#: js/blocks/NumberBlocks.js:920 +msgid "random" +msgstr "tilfeldig" -#: js/FlowBlocks.js:927 -#: js/FlowBlocks.js:990 -msgid "then" -msgstr "så" +#: js/blocks/NumberBlocks.js:922 +msgid "min" +msgstr "min" -#: js/FlowBlocks.js:927 -msgid "else" -msgstr "ellers" +#: js/blocks/NumberBlocks.js:922 +msgid "max" +msgstr "maks" -#: js/FlowBlocks.js:1025 -msgid "The Forever block will repeat the contained blocks forever." +#: js/blocks/NumberBlocks.js:986 +msgid "The Number block holds a number." msgstr "" -#: js/FlowBlocks.js:1037 -msgid "forever" -msgstr "for evig" - -#: js/FlowBlocks.js:1073 -msgid "The Repeat block will repeat the contained blocks." +#: js/blocks/OrnamentBlocks.js:32 +msgid "staccato factor" msgstr "" -#: js/FlowBlocks.js:1075 -msgid "In this example the note will be played 4 times." +#: js/blocks/OrnamentBlocks.js:108 +msgid "slur factor" msgstr "" -#: js/FlowBlocks.js:1083 -msgid "repeat" -msgstr "gjenta" - -#: js/FlowBlocks.js:1123 -msgid "duplicate factor" +#: js/blocks/OrnamentBlocks.js:217 +#: js/blocks/OrnamentBlocks.js:309 +#.TRANS: the neighbor refers to a neighboring note, e.g., D is a neighbor of C +msgid "neighbor" msgstr "" -#: js/PitchBlocks.js:39 -#: js/musicutils.js:722 -#: js/musicutils.js:1117 -#: js/synthutils.js:112 -#.TRANS: square wave -msgid "square" +#: js/blocks/OrnamentBlocks.js:293 +msgid "The Neighbor block rapidly switches between neighboring pitches." msgstr "" -#: js/PitchBlocks.js:62 -#: js/ToneBlocks.js:39 -#: js/musicutils.js:723 -#: js/musicutils.js:1118 -#: js/synthutils.js:116 -#.TRANS: triangle wave -msgid "triangle" +#: js/blocks/OrnamentBlocks.js:364 +msgid "glide" msgstr "" -#: js/PitchBlocks.js:85 -#: js/musicutils.js:721 -#: js/musicutils.js:1116 -#: js/synthutils.js:110 -#.TRANS: sine wave -msgid "sine" +#: js/blocks/OrnamentBlocks.js:479 +#: js/blocks/OrnamentBlocks.js:643 +msgid "slur" msgstr "" -#: js/PitchBlocks.js:108 -#: js/musicutils.js:724 -#: js/musicutils.js:1119 -#: js/synthutils.js:114 -#.TRANS: sawtooth wave -msgid "sawtooth" +#: js/blocks/OrnamentBlocks.js:558 +#: js/blocks/OrnamentBlocks.js:710 +#.TRANS: play each note sharply detached from the others +msgid "staccato" msgstr "" -#: js/PitchBlocks.js:141 -#.TRANS: musical transposition (adjustment of pitch up or down) -msgid "transposition" +#: js/blocks/RhythmBlocks.js:182 +#: js/blocks/RhythmBlocks.js:1086 +#: js/blocks/RhythmBlocks.js:1162 +msgid "Note value must be greater than 0." msgstr "" -#: js/PitchBlocks.js:168 -#.TRANS: step down one note in current musical scale -msgid "scalar step down" +#: js/blocks/RhythmBlocks.js:215 +#: js/blocks/RhythmBlocks.js:278 +#: js/blocks/RhythmBlocks.js:350 +#.TRANS: swing is a rhythmic variation that emphasises the offbeat +msgid "swing" msgstr "" -#: js/PitchBlocks.js:172 -msgid "The Scalar step down block returns the number of semi-tones down to the previous note in the current key and mode." +#: js/blocks/RhythmBlocks.js:355 +#.TRANS: the amount to shift to the offbeat note +msgid "swing value" msgstr "" -#: js/PitchBlocks.js:190 -#.TRANS: step up one note in current musical scale -msgid "scalar step up" +#: js/blocks/RhythmBlocks.js:419 +msgid "The Skip notes block will cause notes to be skipped." msgstr "" -#: js/PitchBlocks.js:194 -msgid "The Scalar step up block returns the number of semi-tones up to the next note in the current key and mode." +#: js/blocks/RhythmBlocks.js:427 +#.TRANS: substitute rests on notes being skipped +msgid "skip notes" msgstr "" -#: js/PitchBlocks.js:212 -#.TRANS: the change measured in half-steps between the current pitch and the previous pitch -msgid "change in pitch" +#: js/blocks/RhythmBlocks.js:489 +#.TRANS: speed up note duration by some factor, e.g. convert 1/4 to 1/8 notes by using a factor of 2 +msgid "multiply note value" msgstr "" -#: js/PitchBlocks.js:216 -msgid "The Change in pitch block is the difference (in half steps) between the current pitch being played and the previous pitch played." +#: js/blocks/RhythmBlocks.js:542 +msgid "The Tie block works on pairs of notes, combining them into one note." msgstr "" -#: js/PitchBlocks.js:243 -#.TRANS: the change measured in scale-steps between the current pitch and the previous pitch -msgid "scalar change in pitch" +#: js/blocks/RhythmBlocks.js:550 +#.TRANS: tie notes together into one longer note +msgid "tie" msgstr "" -#: js/PitchBlocks.js:250 -#: js/PitchBlocks.js:432 -#: js/PitchBlocks.js:1629 -#: js/DictActions.js:89 -#: js/temperament.js:477 -#: js/temperament.js:481 -#: js/temperament.js:714 -#.TRANS: convert current note to piano key (1-88) -#.TRANS: a mapping of pitch to the 88 piano keys -msgid "pitch number" +#: js/blocks/RhythmBlocks.js:591 +#: js/blocks/RhythmBlocks.js:671 +#.TRANS: a dotted note is played for 1.5x its value, e.g., 1/8. --> 3/16 +msgid "dot" msgstr "" -#: js/PitchBlocks.js:256 -msgid "The Pitch number block is the value of the pitch of the note currently being played." +#: js/blocks/RhythmBlocks.js:619 +#: js/turtleactions/RhythmActions.js:221 +msgid "An argument of -1 results in a note value of 0." msgstr "" -#: js/PitchBlocks.js:329 -#: js/PitchBlocks.js:433 -#.TRANS: the current pitch expressed in Hertz -msgid "pitch in hertz" +#: js/blocks/RhythmBlocks.js:661 +msgid "The Dot block extends the duration of a note by 50%." msgstr "" -#: js/PitchBlocks.js:334 -msgid "The Pitch in Hertz block is the value in Hertz of the pitch of the note currently being played." +#: js/blocks/RhythmBlocks.js:663 +msgid "Eg a dotted quarter note will play for 3/8 (1/4 + 1/8) of a beat." msgstr "" -#: js/PitchBlocks.js:367 -#: js/DictActions.js:87 -msgid "current pitch" +#: js/blocks/RhythmBlocks.js:765 +#.TRANS: Japanese only: note value block for drum +msgid "note value drum" msgstr "" -#: js/PitchBlocks.js:373 -msgid "The Current Pitch block is used with the Pitch Converter block. In the example above, current pitch, sol 4, is displayed as 392 hertz." +#: js/blocks/RhythmBlocks.js:829 +msgid "392 hertz" msgstr "" -#: js/PitchBlocks.js:410 -msgid "This block converts the pitch value of the last note played into different formats such as hertz, letter name, pitch number, et al." +#: js/blocks/RhythmBlocks.js:1119 +msgid "The Note block is a container for one or more Pitch blocks." msgstr "" -#: js/PitchBlocks.js:434 -msgid "alphabet" +#: js/blocks/RhythmBlocks.js:1121 +msgid "The Note block specifies the duration (note value) of its contents." msgstr "" -#: js/PitchBlocks.js:436 -#.TRANS: Translate as "alphabet class" -msgid "letter class" +#: js/blocks/RhythmBlocks.js:1128 +#: js/blocks/PitchBlocks.js:974 +#: js/blocks/PitchBlocks.js:1007 +#: js/blocks/ProgramBlocks.js:1186 +#: js/blocks/ProgramBlocks.js:1227 +#: js/widgets/status.js:190 +#: js/widgets/temperament.js:464 +#: js/widgets/temperament.js:486 +#: js/widgets/temperament.js:496 +#: js/widgets/temperament.js:617 +#: plugins/rodi.rtp:192 +#.TRANS: a musical note consisting of pitch and duration +msgid "note" msgstr "" -#: js/PitchBlocks.js:437 -msgid "solfege class" +#: js/blocks/RhythmBlocks.js:1130 +msgid "value2" msgstr "" -#: js/PitchBlocks.js:438 -msgid "staff y" +#: js/blocks/RhythmBlocks.js:1200 +msgid "define frequency" msgstr "" -#: js/PitchBlocks.js:439 -msgid "solfege syllable" +#: js/blocks/RhythmBlocks.js:1218 +#: js/widgets/temperament.js:787 +#: js/widgets/temperament.js:1587 +msgid "octave space" msgstr "" -#: js/PitchBlocks.js:440 -msgid "pitch class" +#: js/blocks/SensorsBlocks.js:36 +msgid "The Input block prompts for keyboard input." msgstr "" -#: js/PitchBlocks.js:441 -msgid "scalar class" +#: js/blocks/SensorsBlocks.js:46 +msgid "input" msgstr "" -#: js/PitchBlocks.js:443 -msgid "nth degree" +#: js/blocks/SensorsBlocks.js:64 +msgid "Input a value" msgstr "" -#: js/PitchBlocks.js:444 -msgid "pitch to shade" +#: js/blocks/SensorsBlocks.js:126 +msgid "input value" msgstr "" -#: js/PitchBlocks.js:445 -msgid "pitch to color" +#: js/blocks/SensorsBlocks.js:131 +msgid "The Input-value block stores the input." msgstr "" -#: js/PitchBlocks.js:629 -#: js/musickeyboard.js:565 -#.TRANS: MIDI is a technical standard for electronic music -msgid "MIDI" +#: js/blocks/SensorsBlocks.js:238 +msgid "loudness" msgstr "" -#: js/PitchBlocks.js:642 -#.TRANS: set an offset associated with the numeric piano keyboard mapping -msgid "set pitch number offset" +#: js/blocks/SensorsBlocks.js:245 +msgid "The Loudness block returns the volume detected by the microphone." msgstr "" -#: js/PitchBlocks.js:645 -msgid "The Set pitch number offset block is used to set the offset for mapping pitch numbers to pitch and octave." +#: js/blocks/SensorsBlocks.js:300 +msgid "click" msgstr "" -#: js/PitchBlocks.js:679 -#.TRANS: convert piano key number (1-88) to pitch -msgid "number to pitch" +#: js/blocks/SensorsBlocks.js:306 +msgid "The Click block triggers an event if a mouse has been clicked." msgstr "" -#: js/PitchBlocks.js:682 -msgid "The Number to pitch block will convert a pitch number to a pich name." +#: js/blocks/SensorsBlocks.js:313 +msgid "The Click block triggers an event if a turtle has been clicked." msgstr "" -#: js/PitchBlocks.js:715 -#.TRANS: convert piano key number (1-88) to octave -msgid "number to octave" +#: js/blocks/SensorsBlocks.js:342 +msgid "cursor over" msgstr "" -#: js/PitchBlocks.js:717 -msgid "The Number to octave block will convert a pitch number to an octave." +#: js/blocks/SensorsBlocks.js:387 +msgid "cursor out" msgstr "" -#: js/PitchBlocks.js:726 -msgid "y to pitch" +#: js/blocks/SensorsBlocks.js:433 +msgid "cursor button down" msgstr "" -#: js/PitchBlocks.js:729 -msgid "Y to pitch block will convert a staff y position to corresponding pitch notation." +#: js/blocks/SensorsBlocks.js:477 +msgid "cursor button up" msgstr "" -#: js/PitchBlocks.js:841 -msgid "accidental selector" +#: js/blocks/SensorsBlocks.js:521 +#: js/blocks/PenBlocks.js:48 +#: plugins/rodi.rtp:219 +msgid "blue" msgstr "" -#: js/PitchBlocks.js:844 -msgid "The Accidental selector block is used to choose between double-sharp, sharp, natural, flat, and double-flat." +#: js/blocks/SensorsBlocks.js:577 +#: js/blocks/PenBlocks.js:64 +#: plugins/rodi.rtp:218 +msgid "green" msgstr "" -#: js/PitchBlocks.js:858 -msgid "Pitch can be specified in terms of ni dha pa ma ga re sa." +#: js/blocks/SensorsBlocks.js:633 +#: js/blocks/PenBlocks.js:112 +#: plugins/rodi.rtp:217 +msgid "red" msgstr "" -#: js/PitchBlocks.js:872 -msgid "Pitch can be specified in terms of C D E F G A B." +#: js/blocks/SensorsBlocks.js:638 +msgid "The Get red block returns the red component of the pixel under the mouse." msgstr "" -#: js/PitchBlocks.js:883 -msgid "solfege" +#: js/blocks/SensorsBlocks.js:644 +msgid "The Get red block returns the red component of the pixel under the turtle." msgstr "" -#: js/PitchBlocks.js:886 -msgid "Pitch can be specified in terms of do re mi fa sol la ti." +#: js/blocks/SensorsBlocks.js:685 +#: plugins/rodi.rtp:216 +msgid "pixel color" msgstr "" -#: js/PitchBlocks.js:920 -msgid "The Invert block rotates any contained notes around a target note." +#: js/blocks/SensorsBlocks.js:690 +msgid "The Get pixel block returns the color of the pixel under the mouse." msgstr "" -#: js/PitchBlocks.js:927 -#.TRANS: pitch inversion rotates a pitch around another pitch -msgid "invert" +#: js/blocks/SensorsBlocks.js:696 +msgid "The Get pixel block returns the color of the pixel under the turtle." msgstr "" -#: js/PitchBlocks.js:929 -#: js/PitchBlocks.js:935 -#: js/PitchActions.js:727 -#: js/musicutils.js:726 -#: js/musicutils.js:902 -#.TRANS: invert based on even or odd number or musical scale -#.TRANS: even numbers -msgid "even" +#: js/blocks/SensorsBlocks.js:758 +msgid "time" msgstr "" -#: js/PitchBlocks.js:935 -#: js/PitchActions.js:729 -#: js/musicutils.js:728 -#: js/musicutils.js:903 -#.TRANS: odd numbers -msgid "odd" +#: js/blocks/SensorsBlocks.js:804 +msgid "cursor y" msgstr "" -#: js/PitchBlocks.js:935 -#: js/PitchActions.js:731 -#: js/musicutils.js:729 -#: js/musicutils.js:904 -msgid "scalar" +#: js/blocks/SensorsBlocks.js:809 +msgid "The Cursor Y block returns the vertical position of the mouse." msgstr "" -#: js/PitchBlocks.js:966 -#.TRANS: pitch inversion rotates a pitch around another pitch (odd number) -msgid "invert (odd)" +#: js/blocks/SensorsBlocks.js:845 +msgid "cursor x" msgstr "" -#: js/PitchBlocks.js:999 -#.TRANS: pitch inversion rotates a pitch around another pitch (even number) -msgid "invert (even)" +#: js/blocks/SensorsBlocks.js:850 +msgid "The Cursor X block returns the horizontal position of the mouse." msgstr "" -#: js/PitchBlocks.js:1020 -#.TRANS: register is the octave of the current pitch -msgid "register" +#: js/blocks/SensorsBlocks.js:886 +msgid "mouse button" msgstr "" -#: js/PitchBlocks.js:1024 -msgid "The Register block provides an easy way to modify the register (octave) of the notes that follow it." +#: js/blocks/SensorsBlocks.js:888 +msgid "The Mouse-button block returns True if the mouse button is pressed." msgstr "" -#: js/PitchBlocks.js:1074 -msgid "The Semi-tone transposition block will shift the pitches contained inside Note blocks up (or down) by half steps." +#: js/blocks/SensorsBlocks.js:934 +msgid "to ASCII" msgstr "" -#: js/PitchBlocks.js:1076 -msgid "In the example shown above, sol is shifted up to sol#." +#: js/blocks/SensorsBlocks.js:938 +msgid "The To ASCII block converts numbers to letters." msgstr "" -#: js/PitchBlocks.js:1082 -#.TRANS: adjust the amount of shift (up or down) of a pitch -msgid "semi-tone transpose" +#: js/blocks/SensorsBlocks.js:1005 +msgid "The Keyboard block returns computer keyboard input." msgstr "" -#: js/PitchBlocks.js:1115 -msgid "The Transpose by Ratio block will shift the pitches contained inside Note blocks up (or down) by a ratio" +#: js/blocks/RhythmBlockPaletteBlocks.js:50 +#: js/blocks/RhythmBlockPaletteBlocks.js:233 +#.TRANS: rhythm block +#.TRANS: translate "rhythm1" as rhythm +msgid "rhythm1" msgstr "" -#: js/PitchBlocks.js:1121 -#.TRANS: adjust the amount of shift (up or down) of a pitch -msgid "transpose by ratio" +#: js/blocks/RhythmBlockPaletteBlocks.js:70 +#: js/blocks/RhythmBlockPaletteBlocks.js:252 +#: js/blocks/RhythmBlockPaletteBlocks.js:485 +#: js/blocks/RhythmBlockPaletteBlocks.js:554 +#: js/blocks/RhythmBlockPaletteBlocks.js:875 +msgid "number of notes" msgstr "" -#: js/PitchBlocks.js:1204 -#.TRANS: down sixth means the note is five scale degrees below current note -msgid "down sixth" +#: js/blocks/RhythmBlockPaletteBlocks.js:126 +msgid "polyphonic rhythm" msgstr "" -#: js/PitchBlocks.js:1223 -#.TRANS: down third means the note is two scale degrees below current note -msgid "down third" +#: js/blocks/RhythmBlockPaletteBlocks.js:219 +msgid "The Rhythm block is used to generate rhythm patterns." msgstr "" -#: js/PitchBlocks.js:1242 -#.TRANS: seventh means the note is the six scale degrees above current note -msgid "seventh" +#: js/blocks/RhythmBlockPaletteBlocks.js:280 +msgid "1/64 note" msgstr "" -#: js/PitchBlocks.js:1261 -#.TRANS: sixth means the note is the five scale degrees above current note -msgid "sixth" +#: js/blocks/RhythmBlockPaletteBlocks.js:304 +msgid "1/32 note" msgstr "" - -#: js/PitchBlocks.js:1280 -#.TRANS: fifth means the note is the four scale degrees above current note -msgid "fifth" + +#: js/blocks/RhythmBlockPaletteBlocks.js:332 +msgid "1/16 note" msgstr "" -#: js/PitchBlocks.js:1300 -#.TRANS: fourth means the note is three scale degrees above current note -msgid "fourth" +#: js/blocks/RhythmBlockPaletteBlocks.js:360 +msgid "eighth note" msgstr "" -#: js/PitchBlocks.js:1319 -#.TRANS: third means the note is two scale degrees above current note -msgid "third" +#: js/blocks/RhythmBlockPaletteBlocks.js:388 +msgid "quarter note" msgstr "" -#: js/PitchBlocks.js:1338 -#.TRANS: second means the note is one scale degree above current note -msgid "second" +#: js/blocks/RhythmBlockPaletteBlocks.js:416 +msgid "half note" msgstr "" -#: js/PitchBlocks.js:1379 -msgid "The Scalar transposition block will shift the pitches contained inside Note blocks up (or down) the scale." +#: js/blocks/RhythmBlockPaletteBlocks.js:444 +msgid "whole note" msgstr "" -#: js/PitchBlocks.js:1381 -msgid "In the example shown above, sol is shifted up to la." +#: js/blocks/RhythmBlockPaletteBlocks.js:482 +#: js/blocks/RhythmBlockPaletteBlocks.js:551 +#: js/blocks/RhythmBlockPaletteBlocks.js:602 +#.TRANS: A tuplet is a note value divided into irregular time values. +msgid "tuplet" msgstr "" -#: js/PitchBlocks.js:1388 -#.TRANS: adjust the amount of shift (up or down) of a pitch by musical scale (scalar) steps -msgid "scalar transpose" +#: js/blocks/RhythmBlockPaletteBlocks.js:768 +msgid "septuplet" msgstr "" -#: js/PitchBlocks.js:1423 -msgid "The Accidental block is used to create sharps and flats" +#: js/blocks/RhythmBlockPaletteBlocks.js:796 +msgid "quintuplet" msgstr "" -#: js/PitchBlocks.js:1430 -#.TRANS: An accidental is a modification to a pitch, e.g., sharp or flat. -msgid "accidental override" +#: js/blocks/RhythmBlockPaletteBlocks.js:824 +msgid "triplet" msgstr "" -#: js/PitchBlocks.js:1543 -msgid "The Hertz block (in combination with a Number block) will play a sound at the specified frequency." +#: js/blocks/RhythmBlockPaletteBlocks.js:851 +msgid "simple tuplet" msgstr "" -#: js/PitchBlocks.js:1633 -msgid "The Pitch Number block will play a pitch associated by its number, e.g. 0 for C and 7 for G." +#: js/blocks/RhythmBlockPaletteBlocks.js:861 +msgid "Tuplets are a collection of notes that get scaled to a specific duration." msgstr "" -#: js/PitchBlocks.js:1665 -#: js/PitchBlocks.js:1707 -#.TRANS: a numeric mapping of the notes in an octave based on the musical mode -#.TRANS: a numeric mapping of the notes in an octave based on the musical mode -msgid "nth modal pitch" +#: js/blocks/DrumBlocks.js:59 +msgid "The Noise name block is used to select a noise synthesizer." msgstr "" -#: js/PitchBlocks.js:1668 -msgid "n^th Modal Pitch takes the pattern of pitches in semitones for a mode and makes each point a degree of the mode," +#: js/blocks/DrumBlocks.js:102 +msgid "The Drum name block is used to select a drum." msgstr "" -#: js/PitchBlocks.js:1670 -msgid "starting from 1 and regardless of tonal framework (i.e. not always 8 notes in the octave)" +#: js/blocks/DrumBlocks.js:146 +msgid "The Effects name block is used to select a sound effect." msgstr "" -#: js/PitchBlocks.js:1711 -msgid "N^th Modal Pitch takes a number as an input as the n^th degree for the given mode. 0 is the first position, 1 is the second, -1 is the note before the first etc." +#: js/blocks/DrumBlocks.js:163 +msgid "noise" msgstr "" -#: js/PitchBlocks.js:1713 -msgid "The pitches change according to the mode specified without any need for respellings." +#: js/blocks/DrumBlocks.js:177 +msgid "The Play noise block will generate white, pink, or brown noise." msgstr "" -#: js/PitchBlocks.js:1752 -msgid "Scale Degree is a common convention in music. Scale Degree offers seven possible positions in the scale (1-7) and can be modified via accidentals." +#: js/blocks/DrumBlocks.js:317 +msgid "Replace every instance of a pitch with a drum sound." msgstr "" -#: js/PitchBlocks.js:1754 -msgid "Scale Degree 1 is always the first pitch in a given scale, regardless of octave." +#: js/blocks/DrumBlocks.js:328 +#.TRANS: map a pitch to a drum sound +msgid "map pitch to drum" msgstr "" -#: js/PitchBlocks.js:1776 -#.TRANS: step some number of notes in current musical scale -msgid "scalar step" +#: js/blocks/DrumBlocks.js:395 +msgid "In the example above, a kick drum sound will be played instead of sol." msgstr "" -#: js/PitchBlocks.js:1781 -msgid "The Scalar Step block (in combination with a Number block) will play the next pitch in a scale," +#: js/blocks/DrumBlocks.js:407 +#.TRANS: set the current drum sound for playback +msgid "set drum" msgstr "" -#: js/PitchBlocks.js:1783 -msgid "eg if the last note played was sol, Scalar Step 1 will play la." +#: js/blocks/DrumBlocks.js:451 +msgid "sound effect" msgstr "" -#: js/PitchBlocks.js:1818 -msgid "The Pitch block specifies the pitch name and octave of a note that together determine the frequency of the note." +#: js/blocks/DrumBlocks.js:489 +msgid "You can use multiple Drum blocks within a Note block." msgstr "" -#: js/GraphicsBlocks.js:46 -#: js/DictActions.js:77 -#: js/DictActions.js:155 -#: js/DictActions.js:189 +#: js/blocks/GraphicsBlocks.js:46 +#: js/turtleactions/DictActions.js:77 +#: js/turtleactions/DictActions.js:144 +#: js/turtleactions/DictActions.js:173 msgid "heading" msgstr "retning" -#: js/GraphicsBlocks.js:56 +#: js/blocks/GraphicsBlocks.js:56 msgid "The Heading block returns the orientation of the mouse." msgstr "" -#: js/GraphicsBlocks.js:62 +#: js/blocks/GraphicsBlocks.js:62 msgid "The Heading block returns the orientation of the turtle." msgstr "" -#: js/GraphicsBlocks.js:133 +#: js/blocks/GraphicsBlocks.js:133 msgid "The Y block returns the vertical position of the mouse." msgstr "" -#: js/GraphicsBlocks.js:140 +#: js/blocks/GraphicsBlocks.js:140 msgid "The Y block returns the vertical position of the turtle." msgstr "" -#: js/GraphicsBlocks.js:149 +#: js/blocks/GraphicsBlocks.js:149 msgid "y3" msgstr "" -#: js/GraphicsBlocks.js:219 +#: js/blocks/GraphicsBlocks.js:219 msgid "The X block returns the horizontal position of the mouse." msgstr "" -#: js/GraphicsBlocks.js:226 +#: js/blocks/GraphicsBlocks.js:226 msgid "The X block returns the horizontal position of the turtle." msgstr "" -#: js/GraphicsBlocks.js:235 +#: js/blocks/GraphicsBlocks.js:235 msgid "x3" msgstr "" -#: js/GraphicsBlocks.js:295 +#: js/blocks/GraphicsBlocks.js:295 msgid "scroll xy" msgstr "" -#: js/GraphicsBlocks.js:303 +#: js/blocks/GraphicsBlocks.js:303 msgid "The Scroll XY block moves the canvas." msgstr "" -#: js/GraphicsBlocks.js:313 +#: js/blocks/GraphicsBlocks.js:313 msgid "x2" msgstr "" -#: js/GraphicsBlocks.js:313 +#: js/blocks/GraphicsBlocks.js:313 msgid "y2" msgstr "" -#: js/GraphicsBlocks.js:373 -#: js/temperament.js:213 -#: js/temperament.js:241 +#: js/blocks/GraphicsBlocks.js:373 +#: js/widgets/temperament.js:319 +#: js/widgets/temperament.js:347 msgid "clear" msgstr "" -#: js/GraphicsBlocks.js:426 +#: js/blocks/GraphicsBlocks.js:426 msgid "The Control-point 2 block sets the second control point for the Bezier curve." msgstr "" -#: js/GraphicsBlocks.js:433 +#: js/blocks/GraphicsBlocks.js:433 msgid "control point 2" msgstr "" -#: js/GraphicsBlocks.js:436 -#: js/GraphicsBlocks.js:487 -#: js/GraphicsBlocks.js:534 -#: js/GraphicsBlocks.js:750 +#: js/blocks/GraphicsBlocks.js:436 +#: js/blocks/GraphicsBlocks.js:487 +#: js/blocks/GraphicsBlocks.js:534 +#: js/blocks/GraphicsBlocks.js:750 msgid "x1" msgstr "" -#: js/GraphicsBlocks.js:436 -#: js/GraphicsBlocks.js:487 -#: js/GraphicsBlocks.js:534 -#: js/GraphicsBlocks.js:750 +#: js/blocks/GraphicsBlocks.js:436 +#: js/blocks/GraphicsBlocks.js:487 +#: js/blocks/GraphicsBlocks.js:534 +#: js/blocks/GraphicsBlocks.js:750 msgid "y1" msgstr "" -#: js/GraphicsBlocks.js:477 +#: js/blocks/GraphicsBlocks.js:477 msgid "The Control-point 1 block sets the first control point for the Bezier curve." msgstr "" -#: js/GraphicsBlocks.js:484 +#: js/blocks/GraphicsBlocks.js:484 msgid "control point 1" msgstr "" -#: js/GraphicsBlocks.js:527 +#: js/blocks/GraphicsBlocks.js:527 msgid "The Bezier block draws a Bezier curve." msgstr "" -#: js/GraphicsBlocks.js:531 +#: js/blocks/GraphicsBlocks.js:531 msgid "bezier" msgstr "" -#: js/GraphicsBlocks.js:592 +#: js/blocks/GraphicsBlocks.js:592 msgid "The Arc block moves the turtle in an arc." msgstr "" -#: js/GraphicsBlocks.js:600 +#: js/blocks/GraphicsBlocks.js:600 msgid "arc" msgstr "kurve" -#: js/GraphicsBlocks.js:603 +#: js/blocks/GraphicsBlocks.js:603 msgid "angle" msgstr "vinkel" -#: js/GraphicsBlocks.js:603 +#: js/blocks/GraphicsBlocks.js:603 msgid "radius" msgstr "radius" -#: js/GraphicsBlocks.js:620 -#: js/GraphicsBlocks.js:767 -#: js/GraphicsBlocks.js:1010 -#: js/GraphicsBlocks.js:1093 +#: js/blocks/GraphicsBlocks.js:620 +#: js/blocks/GraphicsBlocks.js:767 +#: js/blocks/GraphicsBlocks.js:1010 +#: js/blocks/GraphicsBlocks.js:1093 msgid "Value must be within -5000 to 5000 when Wrap Mode is off." msgstr "" -#: js/GraphicsBlocks.js:622 -#: js/GraphicsBlocks.js:769 -#: js/GraphicsBlocks.js:1012 -#: js/GraphicsBlocks.js:1095 +#: js/blocks/GraphicsBlocks.js:622 +#: js/blocks/GraphicsBlocks.js:769 +#: js/blocks/GraphicsBlocks.js:1012 +#: js/blocks/GraphicsBlocks.js:1095 msgid "Value must be within -20000 to 20000 when Wrap Mode is on." msgstr "" -#: js/GraphicsBlocks.js:660 +#: js/blocks/GraphicsBlocks.js:660 msgid "set heading" msgstr "" -#: js/GraphicsBlocks.js:673 +#: js/blocks/GraphicsBlocks.js:673 msgid "The Set heading block sets the heading of the turtle." msgstr "" -#: js/GraphicsBlocks.js:733 +#: js/blocks/GraphicsBlocks.js:733 msgid "The Set XY block moves the mouse to a specific position on the screen." msgstr "" -#: js/GraphicsBlocks.js:739 +#: js/blocks/GraphicsBlocks.js:739 msgid "The Set XY block moves the turtle to a specific position on the screen." msgstr "" -#: js/GraphicsBlocks.js:747 +#: js/blocks/GraphicsBlocks.js:747 msgid "set xy" msgstr "sett xy" -#: js/GraphicsBlocks.js:819 +#: js/blocks/GraphicsBlocks.js:819 msgid "The Right block turns the mouse to the right." msgstr "" -#: js/GraphicsBlocks.js:826 +#: js/blocks/GraphicsBlocks.js:826 msgid "The Right block turns the turtle to the right." msgstr "" -#: js/GraphicsBlocks.js:835 +#: js/blocks/GraphicsBlocks.js:835 msgid "right1" msgstr "" -#: js/GraphicsBlocks.js:835 +#: js/blocks/GraphicsBlocks.js:835 #: plugins/rodi.rtp:77 #: plugins/rodi.rtp:340 #: plugins/rodi.rtp:375 msgid "right" msgstr "høyre" -#: js/GraphicsBlocks.js:899 +#: js/blocks/GraphicsBlocks.js:899 msgid "The Left block turns the mouse to the left." msgstr "" -#: js/GraphicsBlocks.js:906 +#: js/blocks/GraphicsBlocks.js:906 msgid "The Left block turns the turtle to the left." msgstr "" -#: js/GraphicsBlocks.js:915 +#: js/blocks/GraphicsBlocks.js:915 msgid "left1" msgstr "" -#: js/GraphicsBlocks.js:915 +#: js/blocks/GraphicsBlocks.js:915 #: plugins/rodi.rtp:79 #: plugins/rodi.rtp:339 #: plugins/rodi.rtp:362 msgid "left" msgstr "venstre" -#: js/GraphicsBlocks.js:967 -#: js/temperament.js:734 -#: js/temperament.js:933 +#: js/blocks/GraphicsBlocks.js:967 +#: js/widgets/temperament.js:875 +#: js/widgets/temperament.js:1078 #: plugins/rodi.rtp:69 #: plugins/rodi.rtp:387 msgid "back" msgstr "" -#: js/GraphicsBlocks.js:976 +#: js/blocks/GraphicsBlocks.js:976 msgid "The Back block moves the mouse backward." msgstr "" -#: js/GraphicsBlocks.js:983 +#: js/blocks/GraphicsBlocks.js:983 msgid "The Back block moves the turtle backward." msgstr "" -#: js/GraphicsBlocks.js:1050 +#: js/blocks/GraphicsBlocks.js:1050 #: plugins/rodi.rtp:71 #: plugins/rodi.rtp:400 msgid "forward" msgstr "fremover" -#: js/GraphicsBlocks.js:1059 +#: js/blocks/GraphicsBlocks.js:1059 msgid "The Forward block moves the mouse forward." msgstr "" -#: js/GraphicsBlocks.js:1066 +#: js/blocks/GraphicsBlocks.js:1066 msgid "The Forward block moves the turtle forward." msgstr "" -#: js/GraphicsBlocks.js:1154 -#: js/GraphicsBlocks.js:1172 +#: js/blocks/GraphicsBlocks.js:1154 +#: js/blocks/GraphicsBlocks.js:1172 msgid "wrap" msgstr "" -#: js/OrnamentBlocks.js:32 -msgid "staccato factor" -msgstr "" - -#: js/OrnamentBlocks.js:108 -msgid "slur factor" -msgstr "" - -#: js/OrnamentBlocks.js:217 -#: js/OrnamentBlocks.js:309 -#.TRANS: the neighbor refers to a neighboring note, e.g., D is a neighbor of C -msgid "neighbor" -msgstr "" - -#: js/OrnamentBlocks.js:293 -msgid "The Neighbor block rapidly switches between neighboring pitches." -msgstr "" - -#: js/OrnamentBlocks.js:364 -msgid "glide" -msgstr "" - -#: js/OrnamentBlocks.js:479 -#: js/OrnamentBlocks.js:643 -msgid "slur" -msgstr "" - -#: js/OrnamentBlocks.js:558 -#: js/OrnamentBlocks.js:710 -#.TRANS: play each note sharply detached from the others -msgid "staccato" -msgstr "" - -#: js/PenBlocks.js:24 +#: js/blocks/PenBlocks.js:30 msgid "purple" msgstr "" -#: js/PenBlocks.js:37 -#: js/SensorsBlocks.js:521 -#: plugins/rodi.rtp:219 -msgid "blue" -msgstr "" - -#: js/PenBlocks.js:50 -#: js/SensorsBlocks.js:577 -#: plugins/rodi.rtp:218 -msgid "green" -msgstr "" - -#: js/PenBlocks.js:63 +#: js/blocks/PenBlocks.js:80 msgid "yellow" msgstr "" -#: js/PenBlocks.js:76 +#: js/blocks/PenBlocks.js:96 #: plugins/nutrition.rtp:164 msgid "orange" msgstr "" -#: js/PenBlocks.js:89 -#: js/SensorsBlocks.js:633 -#: plugins/rodi.rtp:217 -msgid "red" -msgstr "" - -#: js/PenBlocks.js:102 +#: js/blocks/PenBlocks.js:128 msgid "white" msgstr "" -#: js/PenBlocks.js:115 +#: js/blocks/PenBlocks.js:144 msgid "black" msgstr "" -#: js/PenBlocks.js:128 +#: js/blocks/PenBlocks.js:163 msgid "begin fill" msgstr "" -#: js/PenBlocks.js:143 +#: js/blocks/PenBlocks.js:190 msgid "end fill" msgstr "" -#: js/PenBlocks.js:159 -#: js/PenBlocks.js:386 +#: js/blocks/PenBlocks.js:212 +#: js/blocks/PenBlocks.js:560 #.TRANS: set the background color msgid "background" msgstr "" -#: js/PenBlocks.js:206 -#: js/DictActions.js:71 -#: js/DictActions.js:149 -#: js/DictActions.js:186 +#: js/blocks/PenBlocks.js:274 +#: js/turtleactions/DictActions.js:71 +#: js/turtleactions/DictActions.js:138 +#: js/turtleactions/DictActions.js:170 msgid "grey" msgstr "" -#: js/PenBlocks.js:210 +#: js/blocks/PenBlocks.js:282 msgid "The Grey block returns the current pen grey value." msgstr "" -#: js/PenBlocks.js:243 -#: js/DictActions.js:69 -#: js/DictActions.js:147 -#: js/DictActions.js:185 +#: js/blocks/PenBlocks.js:340 +#: js/turtleactions/DictActions.js:69 +#: js/turtleactions/DictActions.js:136 +#: js/turtleactions/DictActions.js:169 msgid "shade" msgstr "tone" -#: js/PenBlocks.js:247 +#: js/blocks/PenBlocks.js:347 msgid "The Shade block returns the current pen shade value." msgstr "" -#: js/PenBlocks.js:280 -#: js/DictActions.js:67 -#: js/DictActions.js:145 -#: js/DictActions.js:184 +#: js/blocks/PenBlocks.js:405 +#: js/turtleactions/DictActions.js:67 +#: js/turtleactions/DictActions.js:134 +#: js/turtleactions/DictActions.js:168 msgid "color" msgstr "farge" -#: js/PenBlocks.js:285 +#: js/blocks/PenBlocks.js:415 msgid "The Color block returns the current pen color." msgstr "" -#: js/PenBlocks.js:318 -#: js/DictActions.js:73 -#: js/DictActions.js:151 -#: js/DictActions.js:187 +#: js/blocks/PenBlocks.js:470 +#: js/turtleactions/DictActions.js:73 +#: js/turtleactions/DictActions.js:140 +#: js/turtleactions/DictActions.js:171 msgid "pen size" msgstr "størrelse" -#: js/PenBlocks.js:322 +#: js/blocks/PenBlocks.js:474 msgid "The Pen size block returns the current pen size value." msgstr "" -#: js/PenBlocks.js:355 +#: js/blocks/PenBlocks.js:513 msgid "set font" msgstr "" -#: js/PenBlocks.js:358 +#: js/blocks/PenBlocks.js:518 msgid "The Set font block sets the font used by the Show block." msgstr "" -#: js/PenBlocks.js:391 +#: js/blocks/PenBlocks.js:567 msgid "The Background block sets the window background color." msgstr "" -#: js/PenBlocks.js:408 +#: js/blocks/PenBlocks.js:598 msgid "The Hollow line block creates a line with a hollow center." msgstr "" -#: js/PenBlocks.js:415 +#: js/blocks/PenBlocks.js:606 #.TRANS: draw a line logo has a hollow space down its center msgid "hollow line" msgstr "" -#: js/PenBlocks.js:462 +#: js/blocks/PenBlocks.js:675 msgid "The Fill block fills in a shape with a color." msgstr "" -#: js/PenBlocks.js:470 +#: js/blocks/PenBlocks.js:684 #.TRANS: fill in as a solid color msgid "fill" msgstr "" -#: js/PenBlocks.js:527 +#: js/blocks/PenBlocks.js:761 #.TRANS: raise up the pen so logo it does not draw when it is moved msgid "pen up" msgstr "løft penn" -#: js/PenBlocks.js:532 +#: js/blocks/PenBlocks.js:768 msgid "The Pen-up block raises the pen so that it does not draw." msgstr "" -#: js/PenBlocks.js:552 +#: js/blocks/PenBlocks.js:802 #.TRANS: put down the pen so logo it draws when it is moved msgid "pen down" msgstr "trykk ned penn" -#: js/PenBlocks.js:557 +#: js/blocks/PenBlocks.js:810 msgid "The Pen-down block lowers the pen so that it draws." msgstr "" -#: js/PenBlocks.js:577 +#: js/blocks/PenBlocks.js:844 #.TRANS: set the width of the line drawn by the pen msgid "set pen size" msgstr "sett størrelse" -#: js/PenBlocks.js:583 +#: js/blocks/PenBlocks.js:854 msgid "The Set-pen-size block changes the size of the pen." msgstr "" -#: js/PenBlocks.js:623 +#: js/blocks/PenBlocks.js:913 #.TRANS: set degree of translucence of the pen color msgid "set translucency" msgstr "" -#: js/PenBlocks.js:627 +#: js/blocks/PenBlocks.js:921 msgid "The Set translucency block changes the opacity of the pen." msgstr "" -#: js/PenBlocks.js:668 +#: js/blocks/PenBlocks.js:981 msgid "set hue" msgstr "" -#: js/PenBlocks.js:672 +#: js/blocks/PenBlocks.js:989 msgid "The Set hue block changes the color of the pen." msgstr "" -#: js/PenBlocks.js:711 +#: js/blocks/PenBlocks.js:1047 msgid "set shade" msgstr "" -#: js/PenBlocks.js:717 +#: js/blocks/PenBlocks.js:1057 msgid "The Set-shade block changes the pen color from dark to light." msgstr "" -#: js/PenBlocks.js:757 +#: js/blocks/PenBlocks.js:1111 #.TRANS: set the level of vividness of the pen color msgid "set grey" msgstr "" -#: js/PenBlocks.js:761 +#: js/blocks/PenBlocks.js:1119 msgid "The Set grey block changes the vividness of the pen color." msgstr "" -#: js/PenBlocks.js:800 +#: js/blocks/PenBlocks.js:1172 msgid "set color" msgstr "sett farge" -#: js/PenBlocks.js:806 +#: js/blocks/PenBlocks.js:1182 msgid "The Set-color block changes the pen color." msgstr "" -#: js/VolumeBlocks.js:35 -msgid "synth volume" -msgstr "" - -#: js/VolumeBlocks.js:39 -msgid "The Synth volume block returns the current volume of the current synthesizer." -msgstr "" - -#: js/VolumeBlocks.js:47 -#: js/musicutils.js:730 -#: js/synthutils.js:56 -#.TRANS: musical instrument -msgid "piano" -msgstr "" - -#: js/VolumeBlocks.js:105 -msgid "master volume" -msgstr "" - -#: js/VolumeBlocks.js:109 -msgid "The Master volume block returns the master volume." -msgstr "" - -#: js/VolumeBlocks.js:355 -#: js/VolumeBlocks.js:524 -msgid "set synth volume" -msgstr "" - -#: js/VolumeBlocks.js:362 -#: js/VolumeBlocks.js:545 -msgid "synth" -msgstr "" - -#: js/VolumeBlocks.js:403 -#: js/VolumeBlocks.js:577 -#: js/VolumeBlocks.js:740 -#: js/VolumeActions.js:173 -msgid "Setting volume to 0." -msgstr "" - -#: js/VolumeBlocks.js:440 -msgid "Synth not found" -msgstr "" - -#: js/VolumeBlocks.js:494 -msgid "set drum volume" -msgstr "" - -#: js/VolumeBlocks.js:530 -msgid "The Set synth volume block will change the volume of a particular synth," -msgstr "" - -#: js/VolumeBlocks.js:532 -msgid "eg guitar violin snare drum etc." -msgstr "" - -#: js/VolumeBlocks.js:534 -msgid "The default volume is 50." -msgstr "" - -#: js/VolumeBlocks.js:536 -msgid "The range is 0 for silence to 100 for full volume." -msgstr "" - -#: js/VolumeBlocks.js:597 -msgid "set panning" -msgstr "" - -#: js/VolumeBlocks.js:603 -msgid "The Set Panning block sets the panning for all synthesizers." -msgstr "" - -#: js/VolumeBlocks.js:625 -msgid "Warning: Sound is coming out from only the left or right side." -msgstr "" - -#: js/VolumeBlocks.js:647 -#: js/VolumeBlocks.js:695 -msgid "set master volume" -msgstr "" - -#: js/VolumeBlocks.js:653 -msgid "The Set master volume block sets the volume for all synthesizers." -msgstr "" - -#: js/VolumeBlocks.js:784 -msgid "The Set relative volume block changes the volume of the contained notes." -msgstr "" - -#: js/VolumeBlocks.js:791 -msgid "set relative volume" -msgstr "" - -#: js/VolumeBlocks.js:857 -msgid "decrescendo" -msgstr "" - -#: js/VolumeBlocks.js:921 -msgid "crescendo" -msgstr "" - -#: js/ToneBlocks.js:34 -msgid "oscillator" -msgstr "" - -#: js/ToneBlocks.js:44 -#: js/timbre.js:1562 -#.TRANS: Partials refers to the number of sine waves combined into the sound. -msgid "partials" -msgstr "" - -#: js/ToneBlocks.js:76 -msgid "You are adding multiple oscillator blocks." -msgstr "" - -#: js/ToneBlocks.js:144 -#: js/timbre.js:1225 -#.TRANS: a duo synthesizer combines a synth with a sequencer -msgid "duo synth" -msgstr "" - -#: js/ToneBlocks.js:149 -msgid "The Duo synth block is a duo-frequency modulator used to define a timbre." -msgstr "" - -#: js/ToneBlocks.js:157 -#: js/timbre.js:1476 -msgid "vibrato rate" -msgstr "" - -#: js/ToneBlocks.js:157 -msgid "vibrato intensity" -msgstr "" - -#: js/ToneBlocks.js:185 -#: js/timbre.js:1221 -#.TRANS: AM (amplitude modulation) synthesizer -msgid "AM synth" -msgstr "" - -#: js/ToneBlocks.js:189 -msgid "The AM synth block is an amplitude modulator used to define a timbre." -msgstr "" - -#: js/ToneBlocks.js:224 -#: js/timbre.js:1223 -#.TRANS: FM (frequency modulation) synthesizer -msgid "FM synth" +#: js/blocks/PitchBlocks.js:141 +#.TRANS: musical transposition (adjustment of pitch up or down) +msgid "transposition" msgstr "" -#: js/ToneBlocks.js:228 -msgid "The FM synth block is a frequency modulator used to define a timbre." +#: js/blocks/PitchBlocks.js:168 +#.TRANS: step down one note in current musical scale +msgid "scalar step down" msgstr "" -#: js/ToneBlocks.js:262 -msgid "partial" +#: js/blocks/PitchBlocks.js:172 +msgid "The Scalar step down block returns the number of semi-tones down to the previous note in the current key and mode." msgstr "" -#: js/ToneBlocks.js:265 -msgid "The Partial block is used to specify a weight for a specific partial harmonic." +#: js/blocks/PitchBlocks.js:190 +#.TRANS: step up one note in current musical scale +msgid "scalar step up" msgstr "" -#: js/ToneBlocks.js:284 -#.TRANS: partials are weighted components in a harmonic series -msgid "Partial weight must be between 0 and 1." +#: js/blocks/PitchBlocks.js:194 +msgid "The Scalar step up block returns the number of semi-tones up to the next note in the current key and mode." msgstr "" -#: js/ToneBlocks.js:297 -#.TRANS: partials are weighted components in a harmonic series -msgid "Partial block should be used inside of a Weighted-partials block." +#: js/blocks/PitchBlocks.js:212 +#.TRANS: the change measured in half-steps between the current pitch and the previous pitch +msgid "change in pitch" msgstr "" -#: js/ToneBlocks.js:325 -#.TRANS: partials are weighted components in a harmonic series -msgid "weighted partials" +#: js/blocks/PitchBlocks.js:216 +msgid "The Change in pitch block is the difference (in half steps) between the current pitch being played and the previous pitch played." msgstr "" -#: js/ToneBlocks.js:383 -msgid "The Harmonic block will add harmonics to the contained notes." +#: js/blocks/PitchBlocks.js:243 +#.TRANS: the change measured in scale-steps between the current pitch and the previous pitch +msgid "scalar change in pitch" msgstr "" -#: js/ToneBlocks.js:390 -#.TRANS: A harmonic is an overtone. -msgid "harmonic" +#: js/blocks/PitchBlocks.js:250 +#: js/blocks/PitchBlocks.js:432 +#: js/blocks/PitchBlocks.js:1667 +#: js/turtleactions/DictActions.js:89 +#: js/widgets/temperament.js:610 +#: js/widgets/temperament.js:614 +#: js/widgets/temperament.js:855 +#.TRANS: convert current note to piano key (1-88) +#.TRANS: a mapping of pitch to the 88 piano keys +msgid "pitch number" msgstr "" -#: js/ToneBlocks.js:431 -msgid "The Distortion block adds distortion to the pitch." +#: js/blocks/PitchBlocks.js:256 +msgid "The Pitch number block is the value of the pitch of the note currently being played." msgstr "" -#: js/ToneBlocks.js:438 -#: js/timbre.js:2100 -#.TRANS: distortion is an alteration in the sound -msgid "distortion" +#: js/blocks/PitchBlocks.js:329 +#: js/blocks/PitchBlocks.js:433 +#.TRANS: the current pitch expressed in Hertz +msgid "pitch in hertz" msgstr "" -#: js/ToneBlocks.js:487 -msgid "The Tremolo block adds a wavering effect." +#: js/blocks/PitchBlocks.js:334 +msgid "The Pitch in Hertz block is the value in Hertz of the pitch of the note currently being played." msgstr "" -#: js/ToneBlocks.js:495 -#: js/timbre.js:2092 -#.TRANS: a wavering effect in a musical tone -msgid "tremolo" +#: js/blocks/PitchBlocks.js:367 +#: js/turtleactions/DictActions.js:87 +msgid "current pitch" msgstr "" -#: js/ToneBlocks.js:500 -#: js/ToneBlocks.js:569 -#: js/ToneBlocks.js:630 -#: js/ToneBlocks.js:689 -#: js/timbre.js:2134 -#: js/timbre.js:2222 -#: js/timbre.js:2317 -#: js/timbre.js:2419 -#.TRANS: rate at which tremolo wavers -msgid "rate" +#: js/blocks/PitchBlocks.js:373 +msgid "The Current Pitch block is used with the Pitch Converter block. In the example above, current pitch, sol 4, is displayed as 392 hertz." msgstr "" -#: js/ToneBlocks.js:502 -#: js/ToneBlocks.js:630 -#: js/timbre.js:2137 -#: js/timbre.js:2328 -#.TRANS: amplitude of tremolo waver -msgid "depth" +#: js/blocks/PitchBlocks.js:410 +msgid "This block converts the pitch value of the last note played into different formats such as hertz, letter name, pitch number, et al." msgstr "" -#: js/ToneBlocks.js:559 -msgid "The Phaser block adds a sweeping sound." +#: js/blocks/PitchBlocks.js:434 +msgid "alphabet" msgstr "" -#: js/ToneBlocks.js:566 -#: js/timbre.js:2098 -#.TRANS: alter the phase of the sound -msgid "phaser" +#: js/blocks/PitchBlocks.js:436 +#.TRANS: Translate as "alphabet class" +msgid "letter class" msgstr "" -#: js/ToneBlocks.js:569 -#: js/timbre.js:2422 -msgid "octaves" +#: js/blocks/PitchBlocks.js:437 +msgid "solfege class" msgstr "" -#: js/ToneBlocks.js:569 -#: js/timbre.js:2425 -msgid "base frequency" +#: js/blocks/PitchBlocks.js:438 +msgid "staff y" msgstr "" -#: js/ToneBlocks.js:619 -msgid "The Chorus block adds a chorus effect." +#: js/blocks/PitchBlocks.js:439 +msgid "solfege syllable" msgstr "" -#: js/ToneBlocks.js:627 -#: js/timbre.js:2096 -#.TRANS: musical effect to simulate a choral sound -msgid "chorus" +#: js/blocks/PitchBlocks.js:440 +msgid "pitch class" msgstr "" -#: js/ToneBlocks.js:630 -msgid "delay" +#: js/blocks/PitchBlocks.js:441 +msgid "scalar class" msgstr "" -#: js/ToneBlocks.js:678 -msgid "The Vibrato block adds a rapid, slight variation in pitch." +#: js/blocks/PitchBlocks.js:443 +msgid "nth degree" msgstr "" -#: js/ToneBlocks.js:686 -#: js/timbre.js:2094 -#.TRANS: a rapid, slight variation in pitch -msgid "vibrato" +#: js/blocks/PitchBlocks.js:444 +msgid "pitch to shade" msgstr "" -#: js/ToneBlocks.js:689 -#: js/timbre.js:2221 -msgid "intensity" +#: js/blocks/PitchBlocks.js:445 +msgid "pitch to color" msgstr "" -#: js/ToneBlocks.js:733 -#.TRANS: select synthesizer -msgid "set synth" +#: js/blocks/PitchBlocks.js:629 +#: js/widgets/musickeyboard.js:735 +#.TRANS: MIDI is a technical standard for electronic music +msgid "MIDI" msgstr "" -#: js/ToneBlocks.js:804 -msgid "synth name" +#: js/blocks/PitchBlocks.js:642 +#.TRANS: set an offset associated with the numeric piano keyboard mapping +msgid "set pitch number offset" msgstr "" -#: js/ToneBlocks.js:842 -msgid "set default instrument" +#: js/blocks/PitchBlocks.js:645 +msgid "The Set pitch number offset block is used to set the offset for mapping pitch numbers to pitch and octave." msgstr "" -#: js/ToneBlocks.js:895 -#: js/ToneBlocks.js:943 -#.TRANS: set the characteristics of a custom instrument -msgid "set instrument" +#: js/blocks/PitchBlocks.js:679 +#.TRANS: convert piano key number (1-88) to pitch +msgid "number to pitch" msgstr "" -#: js/ToneBlocks.js:898 -#: js/ToneBlocks.js:926 -#: js/ToneBlocks.js:932 -msgid "The Set instrument block selects a voice for the synthesizer," +#: js/blocks/PitchBlocks.js:682 +msgid "The Number to pitch block will convert a pitch number to a pich name." msgstr "" -#: js/ToneBlocks.js:900 -#: js/ToneBlocks.js:934 -msgid "eg guitar piano violin or cello." +#: js/blocks/PitchBlocks.js:715 +#.TRANS: convert piano key number (1-88) to octave +msgid "number to octave" msgstr "" -#: js/ToneBlocks.js:1015 -msgid "Import a sound file to use as an instrument and set its pitch center." +#: js/blocks/PitchBlocks.js:717 +msgid "The Number to octave block will convert a pitch number to an octave." msgstr "" -#: js/ToneBlocks.js:1110 -msgid "Upload a sound file to connect with the sample block." +#: js/blocks/PitchBlocks.js:726 +msgid "y to pitch" msgstr "" -#: js/MeterBlocks.js:34 -#.TRANS: musical meter (time signature), e.g., 4:4 -msgid "current meter" +#: js/blocks/PitchBlocks.js:729 +msgid "Y to pitch block will convert a staff y position to corresponding pitch notation." msgstr "" -#: js/MeterBlocks.js:85 -#.TRANS: number of beats per minute -msgid "beat factor" +#: js/blocks/PitchBlocks.js:841 +msgid "accidental selector" msgstr "" -#: js/MeterBlocks.js:161 -msgid "The Beats per minute block returns the current beats per minute." +#: js/blocks/PitchBlocks.js:844 +msgid "The Accidental selector block is used to choose between double-sharp, sharp, natural, flat, and double-flat." msgstr "" -#: js/MeterBlocks.js:169 -#: js/status.js:152 -#.TRANS: number of beats played per minute -msgid "beats per minute2" +#: js/blocks/PitchBlocks.js:858 +msgid "Pitch can be specified in terms of ni dha pa ma ga re sa." msgstr "" -#: js/MeterBlocks.js:169 -#: js/MeterBlocks.js:1056 -#: js/MeterBlocks.js:1133 -#: js/MeterBlocks.js:1211 -#.TRANS: sets tempo by defining a beat and beats per minute -msgid "beats per minute" +#: js/blocks/PitchBlocks.js:872 +msgid "Pitch can be specified in terms of C D E F G A B." msgstr "" -#: js/MeterBlocks.js:233 -#.TRANS: count of current musical measure in meter -msgid "measure count" +#: js/blocks/PitchBlocks.js:884 +msgid "solfege" msgstr "" -#: js/MeterBlocks.js:241 -msgid "The Measure count block returns the current measure." +#: js/blocks/PitchBlocks.js:887 +msgid "Pitch can be specified in terms of do re mi fa sol la ti." msgstr "" -#: js/MeterBlocks.js:290 -#.TRANS: count of current beat in the meter -msgid "beat count" +#: js/blocks/PitchBlocks.js:922 +msgid "The Invert block rotates any contained notes around a target note." msgstr "" -#: js/MeterBlocks.js:300 -#: js/MeterBlocks.js:311 -#: js/MeterBlocks.js:565 -#: js/MeterBlocks.js:576 -msgid "The Beat count block is the number of the current beat," +#: js/blocks/PitchBlocks.js:929 +#.TRANS: pitch inversion rotates a pitch around another pitch +msgid "invert" msgstr "" -#: js/MeterBlocks.js:313 -#: js/MeterBlocks.js:578 -msgid "eg 1, 2, 3, or 4." +#: js/blocks/PitchBlocks.js:968 +#.TRANS: pitch inversion rotates a pitch around another pitch (odd number) +msgid "invert (odd)" msgstr "" -#: js/MeterBlocks.js:368 -#.TRANS: count the number of notes -msgid "sum note values" +#: js/blocks/PitchBlocks.js:1001 +#.TRANS: pitch inversion rotates a pitch around another pitch (even number) +msgid "invert (even)" msgstr "" -#: js/MeterBlocks.js:376 -#: js/MeterBlocks.js:440 -msgid "The Note counter block can be used to count the number of contained notes." +#: js/blocks/PitchBlocks.js:1022 +#.TRANS: register is the octave of the current pitch +msgid "register" msgstr "" -#: js/MeterBlocks.js:432 -#.TRANS: count the number of notes -msgid "note counter" +#: js/blocks/PitchBlocks.js:1026 +msgid "The Register block provides an easy way to modify the register (octave) of the notes that follow it." msgstr "" -#: js/MeterBlocks.js:496 -#.TRANS: number of whole notes that have been played -msgid "whole notes played" +#: js/blocks/PitchBlocks.js:1047 +#.TRANS: cents are units used to specify the ratio between pitches. There are 100 cents between successive notes. +msgid "50 cents" msgstr "" -#: js/MeterBlocks.js:505 -msgid "The Whole notes played block returns the total number of whole notes played." +#: js/blocks/PitchBlocks.js:1102 +msgid "The Semi-tone transposition block will shift the pitches contained inside Note blocks up (or down) by half steps." msgstr "" -#: js/MeterBlocks.js:555 -#: js/DictActions.js:83 -#.TRANS: number of notes that have been played -msgid "notes played" +#: js/blocks/PitchBlocks.js:1104 +msgid "In the example shown above, sol is shifted up to sol#." msgstr "" -#: js/MeterBlocks.js:653 -msgid "The No clock block decouples the notes from the master clock." +#: js/blocks/PitchBlocks.js:1110 +#.TRANS: adjust the amount of shift (up or down) of a pitch +msgid "semi-tone transpose" msgstr "" -#: js/MeterBlocks.js:661 -#.TRANS: don't lock notes to master clock -msgid "no clock" +#: js/blocks/PitchBlocks.js:1143 +msgid "The Transpose by Ratio block will shift the pitches contained inside Note blocks up (or down) by a ratio" msgstr "" -#: js/MeterBlocks.js:700 -msgid "on weak beat do" +#: js/blocks/PitchBlocks.js:1149 +#.TRANS: adjust the amount of shift (up or down) of a pitch +msgid "transpose by ratio" msgstr "" -#: js/MeterBlocks.js:705 -msgid "The On-weak-beat block lets you specify actions to take on weak (off) beats." +#: js/blocks/PitchBlocks.js:1232 +#.TRANS: down sixth means the note is five scale degrees below current note +msgid "down sixth" msgstr "" -#: js/MeterBlocks.js:750 -msgid "on strong beat" +#: js/blocks/PitchBlocks.js:1251 +#.TRANS: down third means the note is two scale degrees below current note +msgid "down third" msgstr "" -#: js/MeterBlocks.js:758 -msgid "The On-strong-beat block lets you specify actions to take on specified beats." +#: js/blocks/PitchBlocks.js:1270 +#.TRANS: seventh means the note is the six scale degrees above current note +msgid "seventh" msgstr "" -#: js/MeterBlocks.js:769 -msgid "beat" +#: js/blocks/PitchBlocks.js:1289 +#.TRANS: sixth means the note is the five scale degrees above current note +msgid "sixth" msgstr "" -#: js/MeterBlocks.js:813 -msgid "on every beat do" +#: js/blocks/PitchBlocks.js:1308 +#.TRANS: fifth means the note is the four scale degrees above current note +msgid "fifth" msgstr "" -#: js/MeterBlocks.js:821 -msgid "The On-every-beat block lets you specify actions to take on every beat." +#: js/blocks/PitchBlocks.js:1328 +#.TRANS: fourth means the note is three scale degrees above current note +msgid "fourth" msgstr "" -#: js/MeterBlocks.js:874 -msgid "on every note do" +#: js/blocks/PitchBlocks.js:1347 +#.TRANS: third means the note is two scale degrees above current note +msgid "third" msgstr "" -#: js/MeterBlocks.js:882 -msgid "The On-every-note block lets you specify actions to take on every note." +#: js/blocks/PitchBlocks.js:1366 +#.TRANS: second means the note is one scale degree above current note +msgid "second" msgstr "" -#: js/MeterBlocks.js:928 -#: js/MeterBlocks.js:999 -#.TRANS: sets tempo by defining a beat and beats per minute -msgid "master beats per minute" +#: js/blocks/PitchBlocks.js:1407 +msgid "The Scalar transposition block will shift the pitches contained inside Note blocks up (or down) the scale." msgstr "" -#: js/MeterBlocks.js:952 -#: js/MeterBlocks.js:1078 -#: js/MeterBlocks.js:1135 -msgid "bpm" +#: js/blocks/PitchBlocks.js:1409 +msgid "In the example shown above, sol is shifted up to la." msgstr "" -#: js/MeterBlocks.js:952 -#: js/MeterBlocks.js:1078 -#: js/MeterBlocks.js:1135 -msgid "beat value" +#: js/blocks/PitchBlocks.js:1416 +#.TRANS: adjust the amount of shift (up or down) of a pitch by musical scale (scalar) steps +msgid "scalar transpose" msgstr "" -#: js/MeterBlocks.js:1024 -#: js/MeterBlocks.js:1167 -#: js/MeterBlocks.js:1241 -msgid "Beats per minute must be > 30." +#: js/blocks/PitchBlocks.js:1451 +msgid "The Accidental block is used to create sharps and flats" msgstr "" -#: js/MeterBlocks.js:1027 -#: js/MeterBlocks.js:1170 -#: js/MeterBlocks.js:1244 -msgid "Maximum beats per minute is 1000." +#: js/blocks/PitchBlocks.js:1458 +#.TRANS: An accidental is a modification to a pitch, e.g., sharp or flat. +msgid "accidental override" msgstr "" -#: js/MeterBlocks.js:1068 -msgid "The Beats per minute block sets the number of 1/4 notes per minute." +#: js/blocks/PitchBlocks.js:1581 +msgid "The Hertz block (in combination with a Number block) will play a sound at the specified frequency." msgstr "" -#: js/MeterBlocks.js:1279 -#.TRANS: anacrusis -msgid "pickup" +#: js/blocks/PitchBlocks.js:1671 +msgid "The Pitch Number block will play a pitch associated by its number, e.g. 0 for C and 7 for G." msgstr "" -#: js/MeterBlocks.js:1367 -msgid "number of beats" +#: js/blocks/PitchBlocks.js:1703 +#: js/blocks/PitchBlocks.js:1745 +#.TRANS: a numeric mapping of the notes in an octave based on the musical mode +#.TRANS: a numeric mapping of the notes in an octave based on the musical mode +msgid "nth modal pitch" msgstr "" -#: js/DictBlocks.js:77 -msgid "show dictionary" +#: js/blocks/PitchBlocks.js:1706 +msgid "n^th Modal Pitch takes the pattern of pitches in semitones for a mode and makes each point a degree of the mode," msgstr "" -#: js/DictBlocks.js:129 -msgid "The Dictionary block returns a dictionary." +#: js/blocks/PitchBlocks.js:1708 +msgid "starting from 1 and regardless of tonal framework (i.e. not always 8 notes in the octave)" msgstr "" -#: js/DictBlocks.js:197 -#: js/DictBlocks.js:339 -msgid "The Get-dict block returns a value in the dictionary for a specified key." +#: js/blocks/PitchBlocks.js:1749 +msgid "N^th Modal Pitch takes a number as an input as the n^th degree for the given mode. 0 is the first position, 1 is the second, -1 is the note before the first etc." msgstr "" -#: js/DictBlocks.js:212 -#: js/DictBlocks.js:354 -#.TRANS: retrieve a value from the dictionary with a given key -msgid "get value" +#: js/blocks/PitchBlocks.js:1751 +msgid "The pitches change according to the mode specified without any need for respellings." msgstr "" -#: js/DictBlocks.js:215 -#: js/DictBlocks.js:216 -#: js/DictBlocks.js:289 -#: js/DictBlocks.js:290 -#: js/DictBlocks.js:357 -#: js/DictBlocks.js:430 -#: js/DictBlocks.js:431 -msgid "key2" +#: js/blocks/PitchBlocks.js:1790 +msgid "Scale Degree is a common convention in music. Scale Degree offers seven possible positions in the scale (1-7) and can be modified via accidentals." msgstr "" -#: js/DictBlocks.js:271 -#: js/DictBlocks.js:411 -msgid "The Set-dict block sets a value in the dictionary for a specified key." +#: js/blocks/PitchBlocks.js:1792 +msgid "Scale Degree 1 is always the first pitch in a given scale, regardless of octave." msgstr "" -#: js/DictBlocks.js:286 -#: js/DictBlocks.js:427 -#.TRANS: set a value in the dictionary for a given key -msgid "set value" +#: js/blocks/PitchBlocks.js:1814 +#.TRANS: step some number of notes in current musical scale +msgid "scalar step" msgstr "" -#: js/ExtrasBlocks.js:33 -msgid "fraction" +#: js/blocks/PitchBlocks.js:1819 +msgid "The Scalar Step block (in combination with a Number block) will play the next pitch in a scale," msgstr "" -#: js/ExtrasBlocks.js:36 -msgid "Convert a float to a fraction" +#: js/blocks/PitchBlocks.js:1821 +msgid "eg if the last note played was sol, Scalar Step 1 will play la." msgstr "" -#: js/ExtrasBlocks.js:93 -msgid "save as ABC" +#: js/blocks/PitchBlocks.js:1857 +msgid "The Pitch block specifies the pitch name and octave of a note that together determine the frequency of the note." msgstr "" -#: js/ExtrasBlocks.js:96 -#: js/ExtrasBlocks.js:132 -#: js/ExtrasBlocks.js:168 -msgid "title" +#: js/blocks/ProgramBlocks.js:33 +msgid "The Load-heap-from-app block loads the heap from a web page." msgstr "" -#: js/ExtrasBlocks.js:129 -msgid "save as Lilypond" +#: js/blocks/ProgramBlocks.js:44 +#.TRANS: load the heap contents from a URL +msgid "load heap from App" msgstr "" -#: js/ExtrasBlocks.js:165 -msgid "save as SVG" +#: js/blocks/ProgramBlocks.js:95 +msgid "Error parsing JSON data:" msgstr "" -#: js/ExtrasBlocks.js:216 -msgid "no background" +#: js/blocks/ProgramBlocks.js:100 +msgid "404: Page not found" msgstr "" -#: js/ExtrasBlocks.js:219 -msgid "The No background block eliminates the background from the saved SVG output." +#: js/blocks/ProgramBlocks.js:133 +msgid "The Save-heap-to-app block saves the heap to a web page." msgstr "" -#: js/ExtrasBlocks.js:247 -msgid "show blocks" -msgstr "vis blokker" - -#: js/ExtrasBlocks.js:249 -msgid "The Show blocks block shows the blocks." +#: js/blocks/ProgramBlocks.js:144 +#.TRANS: save the heap contents to a URL +msgid "save heap to App" msgstr "" -#: js/ExtrasBlocks.js:274 -msgid "hide blocks" -msgstr "skjul blokker" +#: js/blocks/ProgramBlocks.js:189 +msgid "Cannot find a valid heap for" +msgstr "" -#: js/ExtrasBlocks.js:276 -msgid "The Hide blocks block hides the blocks." +#: js/blocks/ProgramBlocks.js:206 +msgid "The Load-heap block loads the heap from a file." msgstr "" -#: js/ExtrasBlocks.js:305 -#: js/ExtrasBlocks.js:335 -msgid "The Space block is used to add space between blocks." +#: js/blocks/ProgramBlocks.js:217 +#.TRANS: load the heap from a file +msgid "load heap" msgstr "" -#: js/ExtrasBlocks.js:373 -msgid "wait" -msgstr "vent" +#: js/blocks/ProgramBlocks.js:270 +msgid "The file you selected does not contain a valid heap." +msgstr "" -#: js/ExtrasBlocks.js:376 -msgid "The Wait block pauses the program for a specified number of seconds." +#: js/blocks/ProgramBlocks.js:275 +msgid "The loadHeap block needs a loadFile block." msgstr "" -#: js/ExtrasBlocks.js:430 -#: plugins/facebook.rtp:30 -msgid "comment" +#: js/blocks/ProgramBlocks.js:291 +msgid "The Set-heap block loads the heap." msgstr "" -#: js/ExtrasBlocks.js:466 -msgid "print" +#: js/blocks/ProgramBlocks.js:340 +msgid "The block you selected does not contain a valid heap." msgstr "" -#: js/ExtrasBlocks.js:473 -msgid "The Print block displays text at the top of the screen." +#: js/blocks/ProgramBlocks.js:343 +msgid "The Set heap block needs a heap." msgstr "" -#: js/ExtrasBlocks.js:579 -msgid "display grid" +#: js/blocks/ProgramBlocks.js:360 +msgid "The Load-dictionary block loads a dictionary from a file." msgstr "" -#: js/ExtrasBlocks.js:584 -msgid "The Display Grid Block changes the grid type" +#: js/blocks/ProgramBlocks.js:372 +#.TRANS: load a dictionary from a file +msgid "load dictionary" msgstr "" -#: js/ExtrasBlocks.js:686 -#: js/ExtrasBlocks.js:705 -#: js/ExtrasBlocks.js:728 -#: js/ExtrasBlocks.js:751 -#: js/ExtrasBlocks.js:769 -#: js/ExtrasBlocks.js:788 -#: js/ExtrasBlocks.js:807 -#: js/ExtrasBlocks.js:826 -msgid "unknown" +#: js/blocks/ProgramBlocks.js:390 +#: js/blocks/ProgramBlocks.js:658 +#: js/blocks/ToneBlocks.js:1025 +msgid "file" msgstr "" -#: js/SensorsBlocks.js:36 -msgid "The Input block prompts for keyboard input." +#: js/blocks/ProgramBlocks.js:444 +msgid "The file you selected does not contain a valid dictionary." msgstr "" -#: js/SensorsBlocks.js:46 -msgid "input" +#: js/blocks/ProgramBlocks.js:449 +msgid "The load dictionary block needs a load file block." msgstr "" -#: js/SensorsBlocks.js:64 -msgid "Input a value" +#: js/blocks/ProgramBlocks.js:466 +msgid "The Set-dictionary block loads a dictionary." msgstr "" -#: js/SensorsBlocks.js:126 -msgid "input value" +#: js/blocks/ProgramBlocks.js:477 +#.TRANS: load a dictionary from a JSON +msgid "set dictionary" msgstr "" -#: js/SensorsBlocks.js:131 -msgid "The Input-value block stores the input." +#: js/blocks/ProgramBlocks.js:546 +msgid "The block you selected does not contain a valid dictionary." msgstr "" -#: js/SensorsBlocks.js:238 -msgid "loudness" +#: js/blocks/ProgramBlocks.js:550 +msgid "The set dictionary block needs a dictionary." msgstr "" -#: js/SensorsBlocks.js:245 -msgid "The Loudness block returns the volume detected by the microphone." +#: js/blocks/ProgramBlocks.js:567 +msgid "The Save-heap block saves the heap to a file." msgstr "" -#: js/SensorsBlocks.js:300 -msgid "click" +#: js/blocks/ProgramBlocks.js:578 +#.TRANS: save the heap to a file +msgid "save heap" msgstr "" -#: js/SensorsBlocks.js:306 -msgid "The Click block triggers an event if a mouse has been clicked." +#: js/blocks/ProgramBlocks.js:629 +msgid "The Save-dictionary block saves a dictionary to a file." msgstr "" -#: js/SensorsBlocks.js:313 -msgid "The Click block triggers an event if a turtle has been clicked." +#: js/blocks/ProgramBlocks.js:640 +#.TRANS: save a dictionary to a file +msgid "save dictionary" msgstr "" -#: js/SensorsBlocks.js:342 -msgid "cursor over" +#: js/blocks/ProgramBlocks.js:720 +msgid "The Open palette block opens a palette." msgstr "" -#: js/SensorsBlocks.js:387 -msgid "cursor out" +#: js/blocks/ProgramBlocks.js:727 +msgid "open palette" msgstr "" -#: js/SensorsBlocks.js:433 -msgid "cursor button down" +#: js/blocks/ProgramBlocks.js:785 +msgid "The Delete block block removes a block." msgstr "" -#: js/SensorsBlocks.js:477 -msgid "cursor button up" +#: js/blocks/ProgramBlocks.js:797 +#.TRANS: Move this block to the trash. +msgid "delete block" msgstr "" -#: js/SensorsBlocks.js:638 -msgid "The Get red block returns the red component of the pixel under the mouse." +#: js/blocks/ProgramBlocks.js:861 +msgid "The Move block block moves a block." msgstr "" -#: js/SensorsBlocks.js:644 -msgid "The Get red block returns the red component of the pixel under the turtle." +#: js/blocks/ProgramBlocks.js:869 +#.TRANS: Move the position of a block on the screen. +msgid "move block" msgstr "" -#: js/SensorsBlocks.js:685 -#: plugins/rodi.rtp:216 -msgid "pixel color" +#: js/blocks/ProgramBlocks.js:881 +#: js/blocks/ProgramBlocks.js:1048 +msgid "block number" msgstr "" -#: js/SensorsBlocks.js:690 -msgid "The Get pixel block returns the color of the pixel under the mouse." +#: js/blocks/ProgramBlocks.js:935 +#.TRANS: Run program beginning at this block. +msgid "run block" msgstr "" -#: js/SensorsBlocks.js:696 -msgid "The Get pixel block returns the color of the pixel under the turtle." +#: js/blocks/ProgramBlocks.js:1025 +msgid "The Dock block block connections two blocks." msgstr "" -#: js/SensorsBlocks.js:758 -msgid "time" +#: js/blocks/ProgramBlocks.js:1036 +#.TRANS: We can connect a block to another block. +msgid "connect blocks" msgstr "" -#: js/SensorsBlocks.js:804 -msgid "cursor y" +#: js/blocks/ProgramBlocks.js:1048 +msgid "target block" msgstr "" -#: js/SensorsBlocks.js:809 -msgid "The Cursor Y block returns the vertical position of the mouse." +#: js/blocks/ProgramBlocks.js:1048 +msgid "connection number" msgstr "" -#: js/SensorsBlocks.js:845 -msgid "cursor x" +#: js/blocks/ProgramBlocks.js:1140 +msgid "The Make block block creates a new block." msgstr "" -#: js/SensorsBlocks.js:850 -msgid "The Cursor X block returns the horizontal position of the mouse." +#: js/blocks/ProgramBlocks.js:1152 +#.TRANS: Create a new block +msgid "make block" msgstr "" -#: js/SensorsBlocks.js:886 -msgid "mouse button" +#: js/blocks/ProgramBlocks.js:1285 +msgid "Cannot find block" msgstr "" -#: js/SensorsBlocks.js:888 -msgid "The Mouse-button block returns True if the mouse button is pressed." +#: js/blocks/ProgramBlocks.js:1304 +#: js/blocks/ProgramBlocks.js:1313 +msgid "Warning: block argument type mismatch" msgstr "" -#: js/SensorsBlocks.js:934 -msgid "to ASCII" +#: js/blocks/ProgramBlocks.js:1347 +msgid "The Open project block is used to open a project from a web page." msgstr "" -#: js/SensorsBlocks.js:938 -msgid "The To ASCII block converts numbers to letters." +#: js/blocks/ProgramBlocks.js:1357 +msgid "open project" msgstr "" -#: js/SensorsBlocks.js:1005 -msgid "The Keyboard block returns computer keyboard input." +#: js/blocks/ProgramBlocks.js:1410 +msgid "Please enter a valid URL." msgstr "" -#: js/IntervalsActions.js:216 -msgid "Adding missing pitch number 0." +#: js/blocks/ToneBlocks.js:34 +msgid "oscillator" msgstr "" -#: js/IntervalsActions.js:224 -msgid "Ignoring pitch numbers less than zero or greater than eleven." +#: js/blocks/ToneBlocks.js:42 +#: js/blocks/WidgetBlocks.js:179 +#: js/widgets/timbre.js:1558 +#: js/widgets/timbre.js:1808 +#.TRANS: there are different types (sine, triangle, square...) of oscillators. +#.TRANS: type of filter, e.g., lowpass, highpass, etc. +msgid "type" msgstr "" -#: js/IntervalsActions.js:230 -msgid "Ignoring duplicate pitch numbers." +#: js/blocks/ToneBlocks.js:44 +#: js/widgets/timbre.js:1562 +#.TRANS: Partials refers to the number of sine waves combined into the sound. +msgid "partials" msgstr "" -#: js/PitchActions.js:88 -msgid "The Scalar Step Block must be used inside of a Note Block." +#: js/blocks/ToneBlocks.js:76 +msgid "You are adding multiple oscillator blocks." msgstr "" -#: js/PitchActions.js:107 -msgid "The Scalar Step Block must be preceded by a Pitch Block." +#: js/blocks/ToneBlocks.js:144 +#: js/widgets/timbre.js:1225 +#.TRANS: a duo synthesizer combines a synth with a sequencer +msgid "duo synth" msgstr "" -#: js/DrumActions.js:231 -msgid "Noise Block: Did you mean to use a Note block?" +#: js/blocks/ToneBlocks.js:149 +msgid "The Duo synth block is a duo-frequency modulator used to define a timbre." msgstr "" -#: js/MeterActions.js:101 -#: js/MeterActions.js:139 -msgid "beats per minute must be greater than" +#: js/blocks/ToneBlocks.js:157 +#: js/widgets/timbre.js:1476 +msgid "vibrato rate" msgstr "" -#: js/MeterActions.js:111 -#: js/MeterActions.js:149 -msgid "maximum" +#: js/blocks/ToneBlocks.js:157 +msgid "vibrato intensity" msgstr "" -#: js/MeterActions.js:117 -#: js/MeterActions.js:155 -msgid "beats per minute is" +#: js/blocks/ToneBlocks.js:185 +#: js/widgets/timbre.js:1221 +#.TRANS: AM (amplitude modulation) synthesizer +msgid "AM synth" msgstr "" -#: js/ToneActions.js:134 -msgid "Vibrato intensity must be between 1 and 100." +#: js/blocks/ToneBlocks.js:189 +msgid "The AM synth block is an amplitude modulator used to define a timbre." msgstr "" -#: js/ToneActions.js:139 -msgid "Vibrato rate must be greater than 0." +#: js/blocks/ToneBlocks.js:224 +#: js/widgets/timbre.js:1223 +#.TRANS: FM (frequency modulation) synthesizer +msgid "FM synth" msgstr "" -#: js/ToneActions.js:192 -#: js/ToneActions.js:265 -#.TRANS: Depth is the intesity of the tremolo or chorus effect. -msgid "Depth is out of range." +#: js/blocks/ToneBlocks.js:228 +msgid "The FM synth block is a frequency modulator used to define a timbre." msgstr "" -#: js/ToneActions.js:301 -msgid "Distortion must be from 0 to 100." +#: js/blocks/ToneBlocks.js:262 +msgid "partial" msgstr "" -#: js/ToneActions.js:332 -#.TRANS: partials components in a harmonic series -msgid "Partial must be greater than or equal to 0." +#: js/blocks/ToneBlocks.js:265 +msgid "The Partial block is used to specify a weight for a specific partial harmonic." msgstr "" -#: js/ToneActions.js:378 -#: js/ToneActions.js:417 -#: js/ToneActions.js:456 -#: js/timbre.js:782 -msgid "Unable to use synth due to existing oscillator" +#: js/blocks/ToneBlocks.js:284 +#.TRANS: partials are weighted components in a harmonic series +msgid "Partial weight must be between 0 and 1." msgstr "" -#: js/ToneActions.js:388 -#: js/ToneActions.js:427 -msgid "The input cannot be negative." +#: js/blocks/ToneBlocks.js:297 +#.TRANS: partials are weighted components in a harmonic series +msgid "Partial block should be used inside of a Weighted-partials block." msgstr "" -#: js/DictActions.js:75 -#: js/DictActions.js:153 -#: js/DictActions.js:188 -msgid "font" +#: js/blocks/ToneBlocks.js:325 +#.TRANS: partials are weighted components in a harmonic series +msgid "weighted partials" msgstr "" -#: js/musicutils.js:363 -#: js/musicutils.js:471 -#: js/pitchdrummatrix.js:151 -#: js/musickeyboard.js:2563 -msgid "rest" +#: js/blocks/ToneBlocks.js:383 +msgid "The Harmonic block will add harmonics to the contained notes." msgstr "" -#: js/musicutils.js:565 -#.TRANS: ordinal number. Please keep exactly one space between each number. -msgid "1st 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th" +#: js/blocks/ToneBlocks.js:390 +#.TRANS: A harmonic is an overtone. +msgid "harmonic" msgstr "" -#: js/musicutils.js:629 -#: js/musicutils.js:812 -#: js/musicutils.js:911 -#.TRANS: augmented is a music term related to intervals -msgid "augmented" +#: js/blocks/ToneBlocks.js:431 +msgid "The Distortion block adds distortion to the pitch." msgstr "" -#: js/musicutils.js:631 -#: js/musicutils.js:813 -#: js/musicutils.js:910 -#.TRANS: diminished is a music term related to intervals and mode -msgid "diminished" +#: js/blocks/ToneBlocks.js:438 +#: js/widgets/timbre.js:2100 +#.TRANS: distortion is an alteration in the sound +msgid "distortion" msgstr "" -#: js/musicutils.js:639 -#.TRANS: twelve semi-tone scale for music -msgid "chromatic" +#: js/blocks/ToneBlocks.js:487 +msgid "The Tremolo block adds a wavering effect." msgstr "" -#: js/musicutils.js:640 -msgid "algerian" +#: js/blocks/ToneBlocks.js:495 +#: js/widgets/timbre.js:2092 +#.TRANS: a wavering effect in a musical tone +msgid "tremolo" msgstr "" -#: js/musicutils.js:641 -msgid "spanish" +#: js/blocks/ToneBlocks.js:500 +#: js/blocks/ToneBlocks.js:569 +#: js/blocks/ToneBlocks.js:630 +#: js/blocks/ToneBlocks.js:689 +#: js/widgets/timbre.js:2134 +#: js/widgets/timbre.js:2222 +#: js/widgets/timbre.js:2317 +#: js/widgets/timbre.js:2419 +#.TRANS: rate at which tremolo wavers +msgid "rate" msgstr "" -#: js/musicutils.js:643 -#.TRANS: modal scale in music -msgid "octatonic" +#: js/blocks/ToneBlocks.js:502 +#: js/blocks/ToneBlocks.js:630 +#: js/widgets/timbre.js:2137 +#: js/widgets/timbre.js:2328 +#.TRANS: amplitude of tremolo waver +msgid "depth" msgstr "" -#: js/musicutils.js:645 -#.TRANS: harmonic major scale in music -msgid "harmonic major" +#: js/blocks/ToneBlocks.js:559 +msgid "The Phaser block adds a sweeping sound." msgstr "" -#: js/musicutils.js:647 -#.TRANS: natural minor scales in music -msgid "natural minor" +#: js/blocks/ToneBlocks.js:566 +#: js/widgets/timbre.js:2098 +#.TRANS: alter the phase of the sound +msgid "phaser" msgstr "" -#: js/musicutils.js:649 -#.TRANS: harmonic minor scale in music -msgid "harmonic minor" +#: js/blocks/ToneBlocks.js:569 +#: js/turtleactions/IntervalsActions.js:114 +#: js/widgets/timbre.js:2422 +msgid "octaves" msgstr "" -#: js/musicutils.js:651 -#.TRANS: melodic minor scale in music -msgid "melodic minor" +#: js/blocks/ToneBlocks.js:569 +#: js/widgets/timbre.js:2425 +msgid "base frequency" msgstr "" -#: js/musicutils.js:655 -#.TRANS: modal scale for music -msgid "dorian" +#: js/blocks/ToneBlocks.js:619 +msgid "The Chorus block adds a chorus effect." msgstr "" -#: js/musicutils.js:657 -#.TRANS: modal scale for music -msgid "phrygian" +#: js/blocks/ToneBlocks.js:627 +#: js/widgets/timbre.js:2096 +#.TRANS: musical effect to simulate a choral sound +msgid "chorus" msgstr "" -#: js/musicutils.js:659 -#.TRANS: modal scale for music -msgid "lydian" +#: js/blocks/ToneBlocks.js:630 +msgid "delay" msgstr "" -#: js/musicutils.js:661 -#.TRANS: modal scale for music -msgid "mixolydian" +#: js/blocks/ToneBlocks.js:678 +msgid "The Vibrato block adds a rapid, slight variation in pitch." msgstr "" -#: js/musicutils.js:665 -#.TRANS: modal scale for music -msgid "locrian" +#: js/blocks/ToneBlocks.js:686 +#: js/widgets/timbre.js:2094 +#.TRANS: a rapid, slight variation in pitch +msgid "vibrato" msgstr "" -#: js/musicutils.js:667 -#.TRANS: minor jazz scale for music -msgid "jazz minor" +#: js/blocks/ToneBlocks.js:689 +#: js/widgets/timbre.js:2221 +msgid "intensity" msgstr "" -#: js/musicutils.js:669 -#.TRANS: bebop scale for music -msgid "bebop" +#: js/blocks/ToneBlocks.js:733 +#.TRANS: select synthesizer +msgid "set synth" msgstr "" -#: js/musicutils.js:670 -msgid "arabic" +#: js/blocks/ToneBlocks.js:804 +msgid "synth name" msgstr "" -#: js/musicutils.js:671 -msgid "byzantine" +#: js/blocks/ToneBlocks.js:842 +msgid "set default instrument" msgstr "" -#: js/musicutils.js:673 -#.TRANS: musical scale for music by Verdi -msgid "enigmatic" +#: js/blocks/ToneBlocks.js:895 +#: js/blocks/ToneBlocks.js:943 +#.TRANS: set the characteristics of a custom instrument +msgid "set instrument" msgstr "" -#: js/musicutils.js:674 -msgid "ethiopian" +#: js/blocks/ToneBlocks.js:898 +#: js/blocks/ToneBlocks.js:926 +#: js/blocks/ToneBlocks.js:932 +msgid "The Set instrument block selects a voice for the synthesizer," msgstr "" -#: js/musicutils.js:676 -#.TRANS: Ethiopic scale for music -msgid "geez" +#: js/blocks/ToneBlocks.js:900 +#: js/blocks/ToneBlocks.js:934 +msgid "eg guitar piano violin or cello." msgstr "" -#: js/musicutils.js:677 -msgid "hindu" +#: js/blocks/ToneBlocks.js:1015 +msgid "Import a sound file to use as an instrument and set its pitch center." msgstr "" -#: js/musicutils.js:678 -msgid "hungarian" +#: js/blocks/ToneBlocks.js:1110 +msgid "Upload a sound file to connect with the sample block." msgstr "" -#: js/musicutils.js:680 -#.TRANS: minor Romanian scale for music -msgid "romanian minor" +#: js/blocks/VolumeBlocks.js:35 +msgid "synth volume" msgstr "" -#: js/musicutils.js:681 -msgid "spanish gypsy" +#: js/blocks/VolumeBlocks.js:39 +msgid "The Synth volume block returns the current volume of the current synthesizer." msgstr "" -#: js/musicutils.js:683 -#.TRANS: musical scale for Mid-Eastern music -msgid "maqam" +#: js/blocks/VolumeBlocks.js:105 +msgid "master volume" msgstr "" -#: js/musicutils.js:685 -#.TRANS: minor blues scale for music -msgid "minor blues" +#: js/blocks/VolumeBlocks.js:109 +msgid "The Master volume block returns the master volume." msgstr "" -#: js/musicutils.js:687 -#.TRANS: major blues scale for music -msgid "major blues" +#: js/blocks/VolumeBlocks.js:355 +#: js/blocks/VolumeBlocks.js:524 +msgid "set synth volume" msgstr "" -#: js/musicutils.js:688 -msgid "whole tone" +#: js/blocks/VolumeBlocks.js:362 +#: js/blocks/VolumeBlocks.js:545 +msgid "synth" msgstr "" -#: js/musicutils.js:690 -#.TRANS: pentatonic is a general term that means "five note scale". This scale is typically known as "minor pentatonic" -msgid "minor pentatonic" +#: js/blocks/VolumeBlocks.js:403 +#: js/blocks/VolumeBlocks.js:577 +#: js/blocks/VolumeBlocks.js:740 +#: js/turtleactions/VolumeActions.js:173 +msgid "Setting volume to 0." msgstr "" -#: js/musicutils.js:692 -#.TRANS: pentatonic is a general term that means "five note scale". This scale is typically known as "major pentatonic" -msgid "major pentatonic" +#: js/blocks/VolumeBlocks.js:440 +msgid "Synth not found" msgstr "" -#: js/musicutils.js:693 -msgid "chinese" +#: js/blocks/VolumeBlocks.js:494 +msgid "set drum volume" msgstr "" -#: js/musicutils.js:694 -msgid "egyptian" +#: js/blocks/VolumeBlocks.js:530 +msgid "The Set synth volume block will change the volume of a particular synth," msgstr "" -#: js/musicutils.js:696 -#.TRANS: https://en.wikipedia.org/wiki/Hirajoshi_scale NOTE: There are three different versions of this scale -msgid "hirajoshi" +#: js/blocks/VolumeBlocks.js:532 +msgid "eg guitar violin snare drum etc." msgstr "" -#: js/musicutils.js:697 -msgid "Japan" +#: js/blocks/VolumeBlocks.js:534 +msgid "The default volume is 50." msgstr "" -#: js/musicutils.js:699 -#.TRANS: https://en.wikipedia.org/wiki/In_scale and https://en.wikipedia.org/wiki/Sakura_Sakura -msgid "in" +#: js/blocks/VolumeBlocks.js:536 +msgid "The range is 0 for silence to 100 for full volume." msgstr "" -#: js/musicutils.js:701 -#.TRANS: https://en.wikipedia.org/wiki/Miny%C5%8D_scale -msgid "minyo" +#: js/blocks/VolumeBlocks.js:597 +msgid "set panning" msgstr "" -#: js/musicutils.js:703 -#.TRANS: Italian mathematician -msgid "fibonacci" +#: js/blocks/VolumeBlocks.js:603 +msgid "The Set Panning block sets the panning for all synthesizers." msgstr "" -#: js/musicutils.js:708 -#: js/musicutils.js:1106 -#.TRANS: lowpass filter -msgid "lowpass" +#: js/blocks/VolumeBlocks.js:625 +msgid "Warning: Sound is coming out from only the left or right side." msgstr "" -#: js/musicutils.js:710 -#: js/musicutils.js:1107 -#.TRANS: bandpass filter -msgid "bandpass" +#: js/blocks/VolumeBlocks.js:647 +#: js/blocks/VolumeBlocks.js:695 +msgid "set master volume" msgstr "" -#: js/musicutils.js:712 -#: js/musicutils.js:1108 -#.TRANS: high-shelf filter -msgid "highshelf" +#: js/blocks/VolumeBlocks.js:653 +msgid "The Set master volume block sets the volume for all synthesizers." msgstr "" -#: js/musicutils.js:714 -#: js/musicutils.js:1109 -#.TRANS: low-shelf filter -msgid "lowshelf" +#: js/blocks/VolumeBlocks.js:784 +msgid "The Set relative volume block changes the volume of the contained notes." msgstr "" -#: js/musicutils.js:716 -#: js/musicutils.js:1110 -#.TRANS: notch-shelf filter -msgid "notch" +#: js/blocks/VolumeBlocks.js:791 +msgid "set relative volume" msgstr "" -#: js/musicutils.js:718 -#: js/musicutils.js:1111 -#.TRANS: all-pass filter -msgid "allpass" +#: js/blocks/VolumeBlocks.js:857 +msgid "decrescendo" msgstr "" -#: js/musicutils.js:720 -#: js/musicutils.js:1112 -#.TRANS: peaking filter -msgid "peaking" +#: js/blocks/VolumeBlocks.js:921 +msgid "crescendo" msgstr "" -#: js/musicutils.js:731 -#: js/synthutils.js:58 -#.TRANS: musical instrument -msgid "violin" +#: js/blocks/WidgetBlocks.js:81 +#.TRANS: sound envelope (ADSR) +msgid "envelope" msgstr "" -#: js/musicutils.js:732 -#: js/synthutils.js:60 -#.TRANS: viola musical instrument -msgid "viola" +#: js/blocks/WidgetBlocks.js:89 +#.TRANS: Attack time is the time taken for initial run-up of level from nil to peak, beginning when the key is first pressed. +msgid "attack" msgstr "" -#: js/musicutils.js:733 -#: js/synthutils.js:98 -#.TRANS: xylophone musical instrument -msgid "xylophone" +#: js/blocks/WidgetBlocks.js:91 +#.TRANS: Decay time is the time taken for the subsequent run down from the attack level to the designated sustain level. +msgid "decay" msgstr "" -#: js/musicutils.js:734 -#: js/synthutils.js:120 -#.TRANS: vibraphone musical instrument -msgid "vibraphone" +#: js/blocks/WidgetBlocks.js:93 +#.TRANS: Sustain level is the level during the main sequence of the sound's duration, until the key is released. +msgid "sustain" msgstr "" -#: js/musicutils.js:735 -#: js/synthutils.js:62 -#.TRANS: musical instrument -msgid "cello" +#: js/blocks/WidgetBlocks.js:95 +#.TRANS: Release time is the time taken for the level to decay from the sustain level to zero after the key is released. +msgid "release" msgstr "" -#: js/musicutils.js:737 -#: js/synthutils.js:66 -#.TRANS: viola musical instrument -msgid "double bass" +#: js/blocks/WidgetBlocks.js:113 +msgid "Attack value should be from 0 to 100." msgstr "" -#: js/musicutils.js:738 -#: js/synthutils.js:68 -#: js/rhythmruler.js:2119 -#.TRANS: musical instrument -msgid "guitar" +#: js/blocks/WidgetBlocks.js:116 +msgid "Decay value should be from 0 to 100." msgstr "" -#: js/musicutils.js:739 -#: js/synthutils.js:70 -#.TRANS: musical instrument -msgid "acoustic guitar" +#: js/blocks/WidgetBlocks.js:119 +msgid "Sustain value should be from 0 to 100." msgstr "" -#: js/musicutils.js:740 -#: js/synthutils.js:72 -#.TRANS: musical instrument -msgid "flute" +#: js/blocks/WidgetBlocks.js:122 +msgid "Release value should be from 0-100." msgstr "" -#: js/musicutils.js:741 -#: js/synthutils.js:74 -#.TRANS: musical instrument -msgid "clarinet" +#: js/blocks/WidgetBlocks.js:140 +msgid "You are adding multiple envelope blocks." msgstr "" -#: js/musicutils.js:742 -#: js/synthutils.js:76 -#.TRANS: musical instrument -msgid "saxophone" +#: js/blocks/WidgetBlocks.js:171 +#.TRANS: a filter removes some unwanted components from a signal +msgid "filter" msgstr "" -#: js/musicutils.js:743 -#: js/synthutils.js:78 -#.TRANS: musical instrument -msgid "tuba" +#: js/blocks/WidgetBlocks.js:181 +#: js/widgets/timbre.js:1818 +#.TRANS: rolloff is the steepness of a change in frequency. +msgid "rolloff" msgstr "" -#: js/musicutils.js:744 -#: js/synthutils.js:80 -#.TRANS: musical instrument -msgid "trumpet" +#: js/blocks/WidgetBlocks.js:213 +#.TRANS: rolloff is the steepness of a change in frequency. +msgid "Rolloff value should be either -12, -24, -48, or -96 decibels/octave." msgstr "" -#: js/musicutils.js:745 -#: js/synthutils.js:82 -#.TRANS: musical instrument -msgid "oboe" +#: js/blocks/WidgetBlocks.js:252 +msgid "The Temperament tool is used to define custom tuning." msgstr "" -#: js/musicutils.js:746 -#: js/synthutils.js:84 -#.TRANS: musical instrument -msgid "trombone" +#: js/blocks/WidgetBlocks.js:332 +#: js/blocks/WidgetBlocks.js:1573 +#: js/widgets/sampler.js:547 +msgid "Upload a sample and adjust its pitch center." msgstr "" -#: js/musicutils.js:747 -#: js/synthutils.js:100 -#.TRANS: polytone synthesizer -msgid "electronic synth" +#: js/blocks/WidgetBlocks.js:339 +#.TRANS: the speed at music is should be played. +msgid "sampler" msgstr "" -#: js/musicutils.js:748 -#: js/synthutils.js:102 -#.TRANS: simple monotone synthesizer -msgid "simple 1" +#: js/blocks/WidgetBlocks.js:517 +msgid "The Meter block opens a tool to select strong beats for the meter." msgstr "" -#: js/musicutils.js:749 -msgid "simple 2" +#: js/blocks/WidgetBlocks.js:573 +msgid "The oscilloscope block opens a tool to visualize waveforms." msgstr "" -#: js/musicutils.js:750 -msgid "simple 3" +#: js/blocks/WidgetBlocks.js:578 +msgid "oscilloscope" msgstr "" -#: js/musicutils.js:751 -msgid "simple 4" +#: js/blocks/WidgetBlocks.js:645 +msgid "The Custom mode block opens a tool to explore musical mode (the spacing of the notes in a scale)." msgstr "" -#: js/musicutils.js:753 -#: js/synthutils.js:49 -#.TRANS: brown noise synthesizer -msgid "brown noise" +#: js/blocks/WidgetBlocks.js:651 +#.TRANS: musical mode is the pattern of half-steps in an octave, e.g., Major or Minor modes +msgid "custom mode" msgstr "" -#: js/musicutils.js:754 -#: js/synthutils.js:51 -#.TRANS: pink noise synthesizer -msgid "pink noise" +#: js/blocks/WidgetBlocks.js:700 +msgid "The Tempo block opens a metronome to visualize the beat." msgstr "" -#: js/musicutils.js:756 -#: js/synthutils.js:127 -#: js/rhythmruler.js:1670 -#: js/rhythmruler.js:1928 -#.TRANS: musical instrument -msgid "snare drum" +#: js/blocks/WidgetBlocks.js:762 +msgid "The Arpeggio Widget is used to compose chord sequences." msgstr "" -#: js/musicutils.js:757 -#: js/synthutils.js:129 -#.TRANS: musical instrument -msgid "kick drum" +#: js/blocks/WidgetBlocks.js:837 +msgid "The Pitch drum matrix is used to map pitches to drum sounds." msgstr "" -#: js/musicutils.js:758 -#: js/synthutils.js:131 -#.TRANS: musical instrument -msgid "tom tom" +#: js/blocks/WidgetBlocks.js:842 +#.TRANS: makes a mapping between pitches and drum sounds +msgid "pitch-drum mapper" msgstr "" -#: js/musicutils.js:759 -#: js/synthutils.js:133 -#.TRANS: musical instrument -msgid "floor tom" +#: js/blocks/WidgetBlocks.js:891 +msgid "You must have at least one pitch block and one drum block in the matrix." msgstr "" -#: js/musicutils.js:760 -#: js/synthutils.js:135 -#.TRANS: musical instrument -msgid "bass drum" +#: js/blocks/WidgetBlocks.js:920 +msgid "The Pitch slider tool to is used to generate pitches at selected frequencies." msgstr "" -#: js/musicutils.js:761 -#: js/synthutils.js:137 -#.TRANS: a drum made from an inverted cup -msgid "cup drum" +#: js/blocks/WidgetBlocks.js:925 +#.TRANS: widget to generate pitches using a slider +msgid "pitch slider" msgstr "" -#: js/musicutils.js:762 -#: js/synthutils.js:139 -#.TRANS: musical instrument -msgid "darbuka drum" +#: js/blocks/WidgetBlocks.js:977 +msgid "chromatic keyboard" msgstr "" -#: js/musicutils.js:763 -#: js/synthutils.js:143 -#.TRANS: musical instrument -msgid "hi hat" +#: js/blocks/WidgetBlocks.js:1011 +#: js/blocks/WidgetBlocks.js:1077 +#.TRANS: widget to generate pitches using a slider +msgid "music keyboard" msgstr "" -#: js/musicutils.js:764 -#: js/synthutils.js:145 -#.TRANS: a small metal bell -msgid "ride bell" +#: js/blocks/WidgetBlocks.js:1062 +#: js/blocks/WidgetBlocks.js:1069 +msgid "The Music keyboard block opens a piano keyboard that can be used to create notes." msgstr "" -#: js/musicutils.js:765 -#: js/synthutils.js:147 -#.TRANS: musical instrument -msgid "cow bell" +#: js/blocks/WidgetBlocks.js:1128 +msgid "The Pitch staircase tool to is used to generate pitches from a given ratio." msgstr "" -#: js/musicutils.js:766 -msgid "japanese drum" +#: js/blocks/WidgetBlocks.js:1135 +#.TRANS: generate a progressive sequence of pitches +msgid "pitch staircase" msgstr "" -#: js/musicutils.js:767 -#: js/synthutils.js:153 -#.TRANS: musical instrument -msgid "japanese bell" +#: js/blocks/WidgetBlocks.js:1222 +msgid "The Rhythm Maker block opens a tool to create drum machines." msgstr "" -#: js/musicutils.js:768 -#: js/synthutils.js:149 -#.TRANS: musical instrument -msgid "triangle bell" +#: js/blocks/WidgetBlocks.js:1291 +msgid "G major scale" msgstr "" -#: js/musicutils.js:769 -#: js/synthutils.js:151 -#.TRANS: musical instrument -msgid "finger cymbals" +#: js/blocks/WidgetBlocks.js:1326 +msgid "C major scale" msgstr "" -#: js/musicutils.js:770 -#: js/synthutils.js:155 -#.TRANS: a musically tuned set of bells -msgid "chime" +#: js/blocks/WidgetBlocks.js:1366 +msgid "The Phrase Maker block opens a tool to create musical phrases." msgstr "" -#: js/musicutils.js:771 -#: js/synthutils.js:157 -#.TRANS: a musical instrument -msgid "gong" +#: js/blocks/WidgetBlocks.js:1373 +#.TRANS: assigns pitch to a sequence of beats to generate a melody +msgid "phrase maker" msgstr "" -#: js/musicutils.js:772 -#: js/synthutils.js:159 -#.TRANS: sound effect -msgid "clang" +#: js/blocks/WidgetBlocks.js:1444 +msgid "You must have at least one pitch block and one rhythm block in the matrix." msgstr "" -#: js/musicutils.js:773 -#: js/synthutils.js:161 -#.TRANS: sound effect -msgid "crash" +#: js/blocks/WidgetBlocks.js:1503 +msgid "The Status block opens a tool for inspecting the status of Music Blocks as it is running." msgstr "" -#: js/musicutils.js:774 -#: js/synthutils.js:163 -#.TRANS: sound effect -msgid "bottle" +#: js/blocks/WidgetBlocks.js:1580 +#.TRANS: AI-generated music +msgid "aimusic" msgstr "" -#: js/musicutils.js:775 -#: js/synthutils.js:165 -#.TRANS: sound effect -msgid "clap" +#: js/turtleactions/MeterActions.js:101 +#: js/turtleactions/MeterActions.js:139 +msgid "beats per minute must be greater than" msgstr "" -#: js/musicutils.js:776 -#: js/synthutils.js:167 -#.TRANS: sound effect -msgid "slap" +#: js/turtleactions/MeterActions.js:111 +#: js/turtleactions/MeterActions.js:149 +msgid "maximum" msgstr "" -#: js/musicutils.js:777 -#: js/synthutils.js:169 -#.TRANS: sound effect -msgid "splash" +#: js/turtleactions/MeterActions.js:117 +#: js/turtleactions/MeterActions.js:155 +msgid "beats per minute is" msgstr "" -#: js/musicutils.js:778 -#: js/synthutils.js:171 -#.TRANS: sound effect -msgid "bubbles" +#: js/turtleactions/DictActions.js:75 +#: js/turtleactions/DictActions.js:142 +#: js/turtleactions/DictActions.js:172 +msgid "font" msgstr "" -#: js/musicutils.js:779 -#: js/synthutils.js:173 -#.TRANS: sound effect -msgid "raindrop" +#: js/turtleactions/DictActions.js:255 +msgid "Dictionary with this name does not exist" msgstr "" -#: js/musicutils.js:780 -#: js/synthutils.js:175 -#.TRANS: animal sound effect -msgid "cat" +#: js/turtleactions/DictActions.js:259 +msgid "Key with this name does not exist in " msgstr "" -#: js/musicutils.js:781 -#: js/synthutils.js:177 -#.TRANS: animal sound effect -msgid "cricket" +#: js/turtleactions/DrumActions.js:227 +msgid "Noise Block: Did you mean to use a Note block?" msgstr "" -#: js/musicutils.js:782 -#: js/synthutils.js:179 -#.TRANS: animal sound effect -msgid "dog" +#: js/turtleactions/IntervalsActions.js:113 +msgid "one" msgstr "" -#: js/musicutils.js:784 -#: js/synthutils.js:86 -#.TRANS: musical instrument -msgid "banjo" +#: js/turtleactions/IntervalsActions.js:113 +msgid "two" msgstr "" -#: js/musicutils.js:785 -#: js/synthutils.js:88 -#.TRANS: musical instrument -msgid "koto" +#: js/turtleactions/IntervalsActions.js:113 +msgid "three" msgstr "" -#: js/musicutils.js:786 -#: js/synthutils.js:90 -#.TRANS: musical instrument -msgid "dulcimer" +#: js/turtleactions/IntervalsActions.js:113 +msgid "four" msgstr "" -#: js/musicutils.js:787 -#: js/synthutils.js:92 -#.TRANS: musical instrument -msgid "electric guitar" +#: js/turtleactions/IntervalsActions.js:113 +msgid "five" msgstr "" -#: js/musicutils.js:788 -#: js/synthutils.js:94 -#.TRANS: musical instrument -msgid "bassoon" +#: js/turtleactions/IntervalsActions.js:113 +msgid "six" msgstr "" -#: js/musicutils.js:789 -#: js/synthutils.js:96 -#.TRANS: musical instrument -msgid "celeste" +#: js/turtleactions/IntervalsActions.js:113 +msgid "seven" msgstr "" -#: js/musicutils.js:791 -#: js/musicutils.js:1123 -#: js/musicutils.js:1131 -#: js/temperament.js:650 -#.TRANS: musical temperament -msgid "equal" +#: js/turtleactions/IntervalsActions.js:113 +msgid "eight" msgstr "" -#: js/musicutils.js:793 -#: js/musicutils.js:1125 -#: js/musicutils.js:1133 -#.TRANS: musical temperament -msgid "Pythagorean" +#: js/turtleactions/IntervalsActions.js:113 +msgid "nine" msgstr "" -#: js/musicutils.js:795 -#: js/musicutils.js:1124 -#: js/musicutils.js:1132 -#.TRANS: musical temperament -msgid "just intonation" +#: js/turtleactions/IntervalsActions.js:119 +msgid "a" msgstr "" -#: js/musicutils.js:797 -#: js/musicutils.js:1126 -#: js/musicutils.js:1127 -#: js/musicutils.js:1134 -#: js/musicutils.js:1135 -#.TRANS: musical temperament -msgid "meantone" +#: js/turtleactions/IntervalsActions.js:120 +msgid "below" msgstr "" -#: js/musicutils.js:814 -msgid "major 7th" +#: js/turtleactions/IntervalsActions.js:124 +msgid "above" msgstr "" -#: js/musicutils.js:815 -msgid "minor 7th" +#: js/turtleactions/IntervalsActions.js:131 +msgid "plus" msgstr "" -#: js/musicutils.js:816 -msgid "dominant 7th" +#: js/turtleactions/IntervalsActions.js:139 +msgid " below" msgstr "" -#: js/musicutils.js:817 -msgid "minor-major 7th" +#: js/turtleactions/IntervalsActions.js:257 +msgid "Adding missing pitch number 0." msgstr "" -#: js/musicutils.js:818 -msgid "fully-diminished 7th" +#: js/turtleactions/IntervalsActions.js:265 +msgid "Ignoring pitch numbers less than zero or greater than eleven." msgstr "" -#: js/musicutils.js:819 -msgid "half-diminished 7th" +#: js/turtleactions/IntervalsActions.js:271 +msgid "Ignoring duplicate pitch numbers." msgstr "" -#: js/musicutils.js:4379 -#: js/musicutils.js:4416 -msgid "current" +#: js/turtleactions/ToneActions.js:134 +msgid "Vibrato intensity must be between 1 and 100." msgstr "" -#: js/musicutils.js:4382 -#: js/musicutils.js:4407 -msgid "next" +#: js/turtleactions/ToneActions.js:139 +msgid "Vibrato rate must be greater than 0." msgstr "" -#: js/musicutils.js:4385 -#: js/musicutils.js:4412 -msgid "previous" +#: js/turtleactions/ToneActions.js:192 +#: js/turtleactions/ToneActions.js:265 +#.TRANS: Depth is the intesity of the tremolo or chorus effect. +msgid "Depth is out of range." msgstr "" -#: js/synthutils.js:104 -#.TRANS: simple monotone synthesizer -msgid "simple-2" +#: js/turtleactions/ToneActions.js:301 +msgid "Distortion must be from 0 to 100." msgstr "" -#: js/synthutils.js:106 -#.TRANS: simple monotone synthesizer -msgid "simple-3" +#: js/turtleactions/ToneActions.js:332 +#.TRANS: partials components in a harmonic series +msgid "Partial must be greater than or equal to 0." msgstr "" -#: js/synthutils.js:108 -#.TRANS: simple monotone synthesizer -msgid "simple-4" +#: js/turtleactions/ToneActions.js:378 +#: js/turtleactions/ToneActions.js:417 +#: js/turtleactions/ToneActions.js:456 +#: js/widgets/timbre.js:782 +msgid "Unable to use synth due to existing oscillator" msgstr "" -#: js/synthutils.js:141 -#.TRANS: musical instrument -msgid "taiko" +#: js/turtleactions/ToneActions.js:388 +#: js/turtleactions/ToneActions.js:427 +msgid "The input cannot be negative." msgstr "" -#: js/modewidget.js:86 -#: js/modewidget.js:88 -#: js/modewidget.js:642 -#: js/modewidget.js:644 -#: js/modewidget.js:712 -#: js/modewidget.js:714 -#: js/temperament.js:2078 -#: js/rhythmruler.js:189 -#: js/rhythmruler.js:1410 -#: js/rhythmruler.js:1412 -#: js/rhythmruler.js:1435 -#: js/rhythmruler.js:1437 -#: js/meterwidget.js:89 -#: js/meterwidget.js:91 +#: js/widgets/modewidget.js:86 +#: js/widgets/modewidget.js:88 +#: js/widgets/modewidget.js:642 +#: js/widgets/modewidget.js:644 +#: js/widgets/modewidget.js:712 +#: js/widgets/modewidget.js:714 +#: js/widgets/meterwidget.js:194 +#: js/widgets/meterwidget.js:196 +#: js/widgets/temperament.js:2236 +#: js/widgets/rhythmruler.js:457 +#: js/widgets/rhythmruler.js:1790 +#: js/widgets/rhythmruler.js:1792 +#: js/widgets/rhythmruler.js:1816 +#: js/widgets/rhythmruler.js:1818 msgid "Play all" msgstr "" -#: js/modewidget.js:115 -#: js/pitchstaircase.js:641 -#: js/phrasemaker.js:339 -#: js/pitchdrummatrix.js:94 -#: js/pitchslider.js:125 -#: js/temperament.js:2083 -#: js/musickeyboard.js:530 -#: js/timbre.js:756 -#: js/meterwidget.js:124 -#: js/arpeggio.js:103 +#: js/widgets/modewidget.js:115 +#: js/widgets/meterwidget.js:229 +#: js/widgets/pitchdrummatrix.js:166 +#: js/widgets/pitchslider.js:125 +#: js/widgets/pitchstaircase.js:641 +#: js/widgets/temperament.js:2244 +#: js/widgets/timbre.js:756 +#: js/widgets/arpeggio.js:103 +#: js/widgets/musickeyboard.js:688 +#: js/widgets/phrasemaker.js:550 msgid "Save" msgstr "" -#: js/modewidget.js:121 -#: js/pitchstaircase.js:686 -#: js/phrasemaker.js:356 -#: js/pitchdrummatrix.js:109 -#: js/musickeyboard.js:534 -#: js/rhythmruler.js:269 -#: js/arpeggio.js:118 +#: js/widgets/modewidget.js:121 +#: js/widgets/pitchdrummatrix.js:181 +#: js/widgets/pitchstaircase.js:686 +#: js/widgets/arpeggio.js:118 +#: js/widgets/musickeyboard.js:696 +#: js/widgets/phrasemaker.js:567 +#: js/widgets/rhythmruler.js:601 #.TRANS: clear all subdivisions from the ruler. msgid "Clear" msgstr "" -#: js/modewidget.js:127 +#: js/widgets/modewidget.js:127 msgid "Rotate counter clockwise" msgstr "" -#: js/modewidget.js:133 +#: js/widgets/modewidget.js:133 msgid "Rotate clockwise" msgstr "" -#: js/modewidget.js:139 +#: js/widgets/modewidget.js:139 msgid "Invert" msgstr "" -#: js/modewidget.js:145 -#: js/pitchstaircase.js:678 -#: js/rhythmruler.js:258 -#: js/timbre.js:963 +#: js/widgets/modewidget.js:145 +#: js/widgets/pitchstaircase.js:678 +#: js/widgets/timbre.js:963 +#: js/widgets/rhythmruler.js:578 msgid "Undo" msgstr "" -#: js/modewidget.js:163 +#: js/widgets/modewidget.js:163 #.TRANS: A circle of notes represents the musical mode. msgid "Click in the circle to select notes for the mode." msgstr "" -#: js/modewidget.js:1017 -#: js/pitchstaircase.js:580 -#: js/phrasemaker.js:4855 -#: js/temperament.js:1754 -#: js/rhythmruler.js:1865 -#: js/rhythmruler.js:2081 -#: js/tempo.js:414 +#: js/widgets/modewidget.js:1017 +#: js/widgets/pitchstaircase.js:580 +#: js/widgets/temperament.js:1929 +#: js/widgets/tempo.js:414 +#: js/widgets/phrasemaker.js:5356 +#: js/widgets/rhythmruler.js:2254 +#: js/widgets/rhythmruler.js:2472 msgid "New action block generated!" msgstr "" -#: js/oscilloscope.js:79 -msgid "Zoom In" -msgstr "" - -#: js/oscilloscope.js:88 -msgid "Zoom Out" -msgstr "" - -#: js/pitchstaircase.js:624 -msgid "Play chord" -msgstr "" - -#: js/pitchstaircase.js:632 -msgid "Play scale" +#: js/widgets/meterwidget.js:275 +msgid "Reset" msgstr "" -#: js/pitchstaircase.js:696 -msgid "Click on a note to create a new step." +#: js/widgets/meterwidget.js:301 +msgid "Click in the circle to select strong beats for the meter." msgstr "" -#: js/phrasemaker.js:363 -msgid "Export" +#: js/widgets/oscilloscope.js:79 +msgid "Zoom In" msgstr "" -#: js/phrasemaker.js:370 -msgid "Sort" +#: js/widgets/oscilloscope.js:88 +msgid "Zoom Out" msgstr "" -#: js/phrasemaker.js:373 -#: js/musickeyboard.js:559 -msgid "Add note" +#: js/widgets/pitchdrummatrix.js:356 +#: js/widgets/pitchdrummatrix.js:752 +msgid "Click in the grid to map notes to drums." msgstr "" -#: js/phrasemaker.js:764 -msgid "Click on the table to add notes." +#: js/widgets/pitchslider.js:103 +msgid "Move up" msgstr "" -#: js/phrasemaker.js:2414 -#: js/phrasemaker.js:2543 -msgid "tuplet value" +#: js/widgets/pitchslider.js:114 +msgid "Move down" msgstr "" -#: js/pitchdrummatrix.js:270 -#: js/pitchdrummatrix.js:639 -msgid "Click in the grid to map notes to drums." +#: js/widgets/pitchslider.js:136 +msgid "Click on the slider to create a note block." msgstr "" -#: js/pitchslider.js:103 -msgid "Move up" +#: js/widgets/pitchstaircase.js:624 +msgid "Play chord" msgstr "" -#: js/pitchslider.js:114 -msgid "Move down" +#: js/widgets/pitchstaircase.js:632 +msgid "Play scale" msgstr "" -#: js/pitchslider.js:136 -msgid "Click on the slider to create a note block." +#: js/widgets/pitchstaircase.js:696 +msgid "Click on a note to create a new step." msgstr "" -#: js/temperament.js:215 +#: js/widgets/temperament.js:321 msgid "back to 2:1 octave space" msgstr "" -#: js/temperament.js:323 +#: js/widgets/temperament.js:447 msgid "edit" msgstr "" -#: js/temperament.js:330 -#: js/temperament.js:332 -#: js/temperament.js:1336 -#: js/temperament.js:1338 +#: js/widgets/temperament.js:454 +#: js/widgets/temperament.js:456 +#: js/widgets/temperament.js:1493 +#: js/widgets/temperament.js:1495 msgid "close" msgstr "" -#: js/temperament.js:423 -#: js/temperament.js:736 -#: js/temperament.js:743 -#: js/temperament.js:845 -#: js/temperament.js:935 -#: js/temperament.js:942 -#: js/temperament.js:1015 -#: js/temperament.js:1284 -#: js/temperament.js:1354 -#: js/temperament.js:1430 +#: js/widgets/temperament.js:552 +#: js/widgets/temperament.js:877 +#: js/widgets/temperament.js:884 +#: js/widgets/temperament.js:986 +#: js/widgets/temperament.js:1080 +#: js/widgets/temperament.js:1087 +#: js/widgets/temperament.js:1160 +#: js/widgets/temperament.js:1433 +#: js/widgets/temperament.js:1511 +#: js/widgets/temperament.js:1596 msgid "done" msgstr "" -#: js/temperament.js:477 -#: js/temperament.js:482 -#: js/temperament.js:918 +#: js/widgets/temperament.js:610 +#: js/widgets/temperament.js:615 +#: js/widgets/temperament.js:1063 msgid "ratio" msgstr "" -#: js/temperament.js:483 +#: js/widgets/temperament.js:616 msgid "interval" msgstr "" -#: js/temperament.js:611 +#: js/widgets/temperament.js:744 msgid "non scalar" msgstr "" -#: js/temperament.js:650 +#: js/widgets/temperament.js:787 msgid "ratios" msgstr "" -#: js/temperament.js:650 +#: js/widgets/temperament.js:787 msgid "arbitrary" msgstr "" -#: js/temperament.js:719 +#: js/widgets/temperament.js:860 msgid "number of divisions" msgstr "" -#: js/temperament.js:741 -#: js/temperament.js:858 -#: js/temperament.js:940 -#: js/temperament.js:1033 +#: js/widgets/temperament.js:882 +#: js/widgets/temperament.js:999 +#: js/widgets/temperament.js:1085 +#: js/widgets/temperament.js:1178 msgid "preview" msgstr "" -#: js/temperament.js:788 +#: js/widgets/temperament.js:929 msgid "The Number of divisions is too large." msgstr "" -#: js/temperament.js:921 +#: js/widgets/temperament.js:1066 msgid "recursion" msgstr "" -#: js/temperament.js:1450 +#: js/widgets/temperament.js:1616 msgid "The octave ratio has changed. This changes temperament significantly." msgstr "" -#: js/temperament.js:2087 +#: js/widgets/temperament.js:2248 msgid "Table" msgstr "" -#: js/temperament.js:2185 +#: js/widgets/temperament.js:2356 msgid "Add pitches" msgstr "" -#: js/musickeyboard.js:570 -msgid "Metronome" +#: js/widgets/tempo.js:78 +#: js/widgets/tempo.js:97 +#: js/widgets/tempo.js:99 +#: js/widgets/aiwidget.js:134 +#: js/widgets/aiwidget.js:136 +#: js/widgets/rhythmruler.js:681 +#: js/widgets/rhythmruler.js:683 +#: js/widgets/rhythmruler.js:1864 +#: js/widgets/rhythmruler.js:1866 +#: js/widgets/sampler.js:180 +#: js/widgets/sampler.js:182 +msgid "Pause" msgstr "" -#: js/musickeyboard.js:1296 -#: plugins/rodi.rtp:193 -msgid "duration" +#: js/widgets/tempo.js:113 +msgid "Save tempo" msgstr "" -#: js/musickeyboard.js:2840 -msgid "New action blocks generated!" +#: js/widgets/tempo.js:144 +msgid "speed up" msgstr "" -#: js/musickeyboard.js:2841 -msgid "New action block generated" +#: js/widgets/tempo.js:150 +msgid "slow down" msgstr "" -#: js/musickeyboard.js:2984 -#: js/musickeyboard.js:2992 -msgid "MIDI device present." +#: js/widgets/tempo.js:194 +msgid "Adjust the tempo with the buttons." msgstr "" -#: js/musickeyboard.js:2995 -msgid "No MIDI device found." +#: js/widgets/tempo.js:261 +msgid "Please enter a number between 30 and 1000" msgstr "" -#: js/musickeyboard.js:3000 -msgid "Failed to get MIDI access in browser." +#: js/widgets/tempo.js:268 +#: js/widgets/tempo.js:271 +msgid "The beats per minute must be between 30 and 1000." msgstr "" -#: js/rhythmruler.js:202 -msgid "Save rhythms" +#: js/widgets/tempo.js:287 +msgid "The beats per minute must be below 1000." msgstr "" -#: js/rhythmruler.js:222 -msgid "Save drum machine" +#: js/widgets/tempo.js:303 +msgid "The beats per minute must be above 30" msgstr "" -#: js/rhythmruler.js:263 -#.TRANS: user can tap out a rhythm by clicking on a ruler. -msgid "Tap a rhythm" +#: js/widgets/timbre.js:766 +msgid "Synthesizer" msgstr "" -#: js/rhythmruler.js:342 -#: js/rhythmruler.js:344 -#: js/rhythmruler.js:1481 -#: js/rhythmruler.js:1483 -#: js/sampler.js:110 -#: js/sampler.js:112 -#: js/tempo.js:78 -#: js/tempo.js:97 -#: js/tempo.js:99 -msgid "Pause" +#: js/widgets/timbre.js:789 +msgid "Oscillator" msgstr "" -#: js/rhythmruler.js:478 -msgid "Click on the ruler to divide it." +#: js/widgets/timbre.js:840 +msgid "Envelope" msgstr "" -#: js/rhythmruler.js:603 -#: js/rhythmruler.js:605 -#: js/rhythmruler.js:804 -#: js/rhythmruler.js:806 -#: js/rhythmruler.js:1386 -#: js/rhythmruler.js:1388 -msgid "tap a rhythm" +#: js/widgets/timbre.js:886 +#: planet/js/GlobalTag.js:50 +#.TRANS: On the Planet, we use labels to tag projects. +msgid "Effects" msgstr "" -#: js/rhythmruler.js:1084 -msgid "Maximum value of 256 has been exceeded." +#: js/widgets/timbre.js:904 +msgid "Filter" msgstr "" -#: js/sampler.js:137 -msgid "Warning: Sample is bigger than 1MB." +#: js/widgets/timbre.js:946 +msgid "Add filter" msgstr "" -#: js/sampler.js:142 -msgid "Upload failed: Sample is not a .wav file." +#: js/widgets/timbre.js:987 +msgid "Click on buttons to open the timbre design tools." msgstr "" -#: js/sampler.js:164 -msgid "A new sample block was generated." +#: js/widgets/timbre.js:1273 +msgid "harmonicity" msgstr "" -#: js/sampler.js:255 -msgid "Upload sample" +#: js/widgets/timbre.js:1340 +#: js/widgets/timbre.js:1406 +msgid "modulation index" msgstr "" -#: js/sampler.js:306 -msgid "Save sample" +#: js/widgets/timbre.js:1484 +msgid "vibrato amount" msgstr "" -#: js/sampler.js:697 -#.TRANS: The reference tone is a sound used for comparison. -msgid "reference tone" +#: js/widgets/timbre.js:1919 +msgid "Filter already present." msgstr "" -#: js/tempo.js:113 -msgid "Save tempo" +#: js/widgets/timbre.js:2322 +msgid "delay (MS)" msgstr "" -#: js/tempo.js:144 -msgid "speed up" +#: js/widgets/timbre.js:2507 +msgid "distortion amount" msgstr "" -#: js/tempo.js:150 -msgid "slow down" +#: js/widgets/aiwidget.js:180 +#: js/widgets/sampler.js:227 +msgid "Warning: Sample is bigger than 1MB." msgstr "" -#: js/tempo.js:194 -msgid "Adjust the tempo with the buttons." +#: js/widgets/aiwidget.js:539 +msgid "New start block generated" msgstr "" -#: js/tempo.js:261 -msgid "Please enter a number between 30 and 1000" +#: js/widgets/aiwidget.js:541 +msgid "MIDI loading. This may take some time depending upon the number of notes in the track" msgstr "" -#: js/tempo.js:268 -#: js/tempo.js:271 -msgid "The beats per minute must be between 30 and 1000." +#: js/widgets/aiwidget.js:551 +#: js/widgets/sampler.js:254 +msgid "Upload failed: Sample is not a .wav file." msgstr "" -#: js/tempo.js:287 -msgid "The beats per minute must be below 1000." +#: js/widgets/aiwidget.js:679 +#: js/widgets/sampler.js:432 +msgid "Save sample" msgstr "" -#: js/tempo.js:303 -msgid "The beats per minute must be above 30" +#: js/widgets/aiwidget.js:701 +msgid "AI Music" msgstr "" -#: js/timbre.js:766 -msgid "Synthesizer" +#: js/widgets/arpeggio.js:239 +msgid "Click in the grid to add steps to the arpeggio." msgstr "" -#: js/timbre.js:789 -msgid "Oscillator" +#: js/widgets/help.js:95 +#: js/widgets/help.js:125 +#: js/widgets/help.js:146 +#: js/widgets/help.js:158 +#: js/widgets/help.js:376 +#: js/widgets/help.js:391 +msgid "Take a tour" msgstr "" -#: js/timbre.js:840 -msgid "Envelope" +#: js/widgets/musickeyboard.js:725 +#: js/widgets/phrasemaker.js:584 +msgid "Add note" msgstr "" -#: js/timbre.js:886 -#: js/GlobalTag.js:50 -#.TRANS: On the Planet, we use labels to tag projects. -msgid "Effects" +#: js/widgets/musickeyboard.js:744 +msgid "Metronome" +msgstr "" + +#: js/widgets/musickeyboard.js:1549 +#: plugins/rodi.rtp:193 +msgid "duration" +msgstr "" + +#: js/widgets/musickeyboard.js:3179 +msgid "New action blocks generated" +msgstr "" + +#: js/widgets/musickeyboard.js:3180 +msgid "New action block generated" msgstr "" -#: js/timbre.js:904 -msgid "Filter" +#: js/widgets/musickeyboard.js:3365 +#: js/widgets/musickeyboard.js:3373 +msgid "MIDI device present." msgstr "" -#: js/timbre.js:946 -msgid "Add filter" +#: js/widgets/musickeyboard.js:3376 +msgid "No MIDI device found." msgstr "" -#: js/timbre.js:987 -msgid "Click on buttons to open the timbre design tools." +#: js/widgets/musickeyboard.js:3386 +msgid "Failed to get MIDI access in browser." msgstr "" -#: js/timbre.js:1273 -msgid "harmonicity" +#: js/widgets/phrasemaker.js:574 +msgid "Export" msgstr "" -#: js/timbre.js:1340 -#: js/timbre.js:1406 -msgid "modulation index" +#: js/widgets/phrasemaker.js:581 +msgid "Sort" msgstr "" -#: js/timbre.js:1484 -msgid "vibrato amount" +#: js/widgets/phrasemaker.js:975 +msgid "Click on the table to add notes." msgstr "" -#: js/timbre.js:1919 -msgid "Filter already present." +#: js/widgets/phrasemaker.js:2677 +#: js/widgets/phrasemaker.js:2819 +msgid "tuplet value" msgstr "" -#: js/timbre.js:2322 -msgid "delay (MS)" +#: js/widgets/rhythmruler.js:486 +msgid "Save rhythms" msgstr "" -#: js/timbre.js:2507 -msgid "distortion amount" +#: js/widgets/rhythmruler.js:512 +msgid "Save drum machine" msgstr "" -#: js/meterwidget.js:170 -msgid "Reset" +#: js/widgets/rhythmruler.js:589 +#.TRANS: user can tap out a rhythm by clicking on a ruler. +msgid "Tap a rhythm" msgstr "" -#: js/meterwidget.js:196 -msgid "Click in the circle to select strong beats for the meter." +#: js/widgets/rhythmruler.js:817 +msgid "Click on the ruler to divide it." msgstr "" -#: js/arpeggio.js:239 -msgid "Click in the grid to add steps to the arpeggio." +#: js/widgets/rhythmruler.js:950 +#: js/widgets/rhythmruler.js:952 +#: js/widgets/rhythmruler.js:1152 +#: js/widgets/rhythmruler.js:1154 +#: js/widgets/rhythmruler.js:1765 +#: js/widgets/rhythmruler.js:1767 +msgid "tap a rhythm" msgstr "" -#: js/ProjectStorage.js:243 -msgid "anonymous" +#: js/widgets/rhythmruler.js:1459 +msgid "Maximum value of 256 has been exceeded." msgstr "" -#: js/GlobalCard.js:68 -msgid "Share" +#: js/widgets/sampler.js:237 +msgid "Recording started..." msgstr "" -#: js/GlobalCard.js:74 -msgid "Flags" +#: js/widgets/sampler.js:245 +msgid "Recording complete..." msgstr "" -#: js/LocalCard.js:36 -msgid "View published project" +#: js/widgets/sampler.js:283 +msgid "A new sample block was generated." msgstr "" -#: js/LocalCard.js:42 -msgid "Publish project" +#: js/widgets/sampler.js:378 +msgid "Upload sample" msgstr "" -#: js/LocalCard.js:51 -msgid "Edit project" +#: js/widgets/sampler.js:399 +msgid "Warning: Your sample cannot be loaded because it is >1MB." msgstr "" -#: js/LocalCard.js:52 -msgid "Delete project" +#: js/widgets/sampler.js:448 +msgid "Toggle Mic" msgstr "" -#: js/LocalCard.js:53 -msgid "Download project" +#: js/widgets/sampler.js:458 +msgid "Playback" msgstr "" -#: js/LocalCard.js:55 -msgid "Duplicate project" +#: js/widgets/sampler.js:979 +#.TRANS: The reference tone is a sound used for comparison. +msgid "reference tone" msgstr "" -#: js/GlobalTag.js:28 +#: planet/js/GlobalTag.js:28 #.TRANS: On the Planet, we use labels to tag projects. msgid "All Projects" msgstr "" -#: js/GlobalTag.js:30 -#: js/StringHelper.js:37 +#: planet/js/GlobalTag.js:30 +#: planet/js/StringHelper.js:37 #.TRANS: On the Planet, we use labels to tag projects. msgid "My Projects" msgstr "" -#: js/GlobalTag.js:32 +#: planet/js/GlobalTag.js:32 #.TRANS: On the Planet, we use labels to tag projects. msgid "Examples" msgstr "" -#: js/GlobalTag.js:34 +#: planet/js/GlobalTag.js:34 #.TRANS: On the Planet, we use labels to tag projects. msgid "Music" msgstr "" -#: js/GlobalTag.js:36 +#: planet/js/GlobalTag.js:36 #.TRANS: On the Planet, we use labels to tag projects. msgid "Art" msgstr "" -#: js/GlobalTag.js:38 +#: planet/js/GlobalTag.js:38 #.TRANS: On the Planet, we use labels to tag projects. msgid "Math" msgstr "" -#: js/GlobalTag.js:40 +#: planet/js/GlobalTag.js:40 #.TRANS: On the Planet, we use labels to tag projects. msgid "Interactive" msgstr "" -#: js/GlobalTag.js:42 +#: planet/js/GlobalTag.js:42 #.TRANS: On the Planet, we use labels to tag projects. msgid "Design" msgstr "" -#: js/GlobalTag.js:44 +#: planet/js/GlobalTag.js:44 #.TRANS: On the Planet, we use labels to tag projects. msgid "Game" msgstr "" -#: js/GlobalTag.js:46 +#: planet/js/GlobalTag.js:46 #.TRANS: On the Planet, we use labels to tag projects. msgid "Media" msgstr "" -#: js/GlobalTag.js:48 +#: planet/js/GlobalTag.js:48 #.TRANS: On the Planet, we use labels to tag projects. msgid "Sensors" msgstr "" -#: js/GlobalTag.js:52 +#: planet/js/GlobalTag.js:52 #.TRANS: On the Planet, we use labels to tag projects. msgid "Code Snippet" msgstr "" -#: js/helper.js:149 -#: js/StringHelper.js:49 -msgid "Show more tags" +#: planet/js/LocalCard.js:36 +msgid "View published project" msgstr "" -#: js/helper.js:150 -msgid "Show fewer tags" +#: planet/js/LocalCard.js:42 +msgid "Publish project" +msgstr "" + +#: planet/js/LocalCard.js:51 +msgid "Edit project" +msgstr "" + +#: planet/js/LocalCard.js:52 +msgid "Delete project" +msgstr "" + +#: planet/js/LocalCard.js:53 +msgid "Download project" +msgstr "" + +#: planet/js/LocalCard.js:55 +msgid "Duplicate project" +msgstr "" + +#: planet/js/ProjectStorage.js:243 +msgid "anonymous" +msgstr "" + +#: planet/js/SaveInterface.js:34 +msgid "Open in Music Blocks" +msgstr "" + +#: planet/js/SaveInterface.js:35 +msgid "Open in Turtle Blocks" +msgstr "" + +#: planet/js/GlobalCard.js:68 +msgid "Share" +msgstr "" + +#: planet/js/GlobalCard.js:74 +msgid "Flags" +msgstr "" + +#: planet/js/GlobalPlanet.js:35 +msgid "No results found." +msgstr "" + +#: planet/js/GlobalPlanet.js:51 +msgid "Remix of" +msgstr "" + +#: planet/js/GlobalPlanet.js:509 +msgid "Cannot connect to server" msgstr "" -#: js/ProjectViewer.js:30 +#: planet/js/ProjectViewer.js:30 msgid "Error: Report could not be submitted. Try again later." msgstr "" -#: js/ProjectViewer.js:31 +#: planet/js/ProjectViewer.js:31 msgid "Thank you for reporting this project. A moderator will review the project shortly, to verify violation of the Sugar Labs Code of Conduct." msgstr "" -#: js/ProjectViewer.js:32 -#: js/StringHelper.js:62 -#: js/StringHelper.js:64 -#: js/StringHelper.js:68 +#: planet/js/ProjectViewer.js:32 +#: planet/js/StringHelper.js:62 +#: planet/js/StringHelper.js:64 +#: planet/js/StringHelper.js:68 msgid "Report Project" msgstr "" -#: js/ProjectViewer.js:33 -#: js/StringHelper.js:63 +#: planet/js/ProjectViewer.js:33 +#: planet/js/StringHelper.js:63 msgid "Project Reported" msgstr "" -#: js/ProjectViewer.js:34 +#: planet/js/ProjectViewer.js:34 msgid "Report description required" msgstr "" -#: js/ProjectViewer.js:35 +#: planet/js/ProjectViewer.js:35 msgid "Report description too long" msgstr "" -#: js/StringHelper.js:30 +#: planet/js/Publisher.js:30 +msgid "Feature unavailable - cannot connect to server. Reload Music Blocks to try again." +msgstr "" + +#: planet/js/Publisher.js:220 +#: planet/js/Publisher.js:237 +msgid "This field is required" +msgstr "" + +#: planet/js/Publisher.js:227 +msgid "Title too long" +msgstr "" + +#: planet/js/Publisher.js:244 +msgid "Description too long" +msgstr "" + +#: planet/js/Publisher.js:341 +msgid "Server Error" +msgstr "" + +#: planet/js/Publisher.js:341 +msgid "Try Again" +msgstr "" + +#: planet/js/StringHelper.js:30 msgid "Planet" msgstr "" -#: js/StringHelper.js:31 +#: planet/js/StringHelper.js:31 msgid "Close Planet" msgstr "" -#: js/StringHelper.js:32 +#: planet/js/StringHelper.js:32 msgid "Open project from file" msgstr "" -#: js/StringHelper.js:34 +#: planet/js/StringHelper.js:34 msgid "Local" msgstr "" -#: js/StringHelper.js:35 +#: planet/js/StringHelper.js:35 msgid "Global" msgstr "" -#: js/StringHelper.js:36 +#: planet/js/StringHelper.js:36 msgid "Search for a project" msgstr "" -#: js/StringHelper.js:38 +#: planet/js/StringHelper.js:38 msgid "Publish Project" msgstr "" -#: js/StringHelper.js:40 +#: planet/js/StringHelper.js:40 msgid "Tags (max 5)" msgstr "" -#: js/StringHelper.js:41 -#: js/StringHelper.js:61 +#: planet/js/StringHelper.js:41 +#: planet/js/StringHelper.js:61 msgid "Description" msgstr "" -#: js/StringHelper.js:42 -#: js/StringHelper.js:67 +#: planet/js/StringHelper.js:42 +#: planet/js/StringHelper.js:67 msgid "Submit" msgstr "" -#: js/StringHelper.js:43 -#: js/StringHelper.js:47 +#: planet/js/StringHelper.js:43 +#: planet/js/StringHelper.js:47 msgid "Cancel" msgstr "" -#: js/StringHelper.js:44 +#: planet/js/StringHelper.js:44 msgid "Delete \\"\\"?" msgstr "" -#: js/StringHelper.js:45 +#: planet/js/StringHelper.js:45 msgid "Permanently delete project \\"\\"?" msgstr "" -#: js/StringHelper.js:48 +#: planet/js/StringHelper.js:48 msgid "Explore Projects" msgstr "" -#: js/StringHelper.js:50 +#: planet/js/StringHelper.js:49 +#: planet/js/helper.js:149 +msgid "Show more tags" +msgstr "" + +#: planet/js/StringHelper.js:50 msgid "Most recent" msgstr "" -#: js/StringHelper.js:51 +#: planet/js/StringHelper.js:51 msgid "Most liked" msgstr "" -#: js/StringHelper.js:52 +#: planet/js/StringHelper.js:52 msgid "Most downloaded" msgstr "" -#: js/StringHelper.js:53 +#: planet/js/StringHelper.js:53 msgid "A-Z" msgstr "" -#: js/StringHelper.js:54 +#: planet/js/StringHelper.js:54 msgid "Sort by" msgstr "" -#: js/StringHelper.js:55 +#: planet/js/StringHelper.js:55 msgid "Load More Projects" msgstr "" -#: js/StringHelper.js:56 +#: planet/js/StringHelper.js:56 msgid "Last Updated" msgstr "" -#: js/StringHelper.js:57 +#: planet/js/StringHelper.js:57 msgid "Creation Date" msgstr "" -#: js/StringHelper.js:58 +#: planet/js/StringHelper.js:58 msgid "Number of Downloads:" msgstr "" -#: js/StringHelper.js:59 +#: planet/js/StringHelper.js:59 msgid "Number of Likes:" msgstr "" -#: js/StringHelper.js:60 +#: planet/js/StringHelper.js:60 msgid "Tags:" msgstr "" -#: js/StringHelper.js:65 +#: planet/js/StringHelper.js:65 msgid "Report projects which violate the Sugar Labs Code of Conduct." msgstr "" -#: js/StringHelper.js:66 +#: planet/js/StringHelper.js:66 msgid "Reason for reporting project" msgstr "" -#: js/StringHelper.js:70 +#: planet/js/StringHelper.js:70 msgid "Download as File" msgstr "" -#: js/GlobalPlanet.js:35 -msgid "No results found." -msgstr "" - -#: js/GlobalPlanet.js:51 -msgid "Remix of" -msgstr "" - -#: js/GlobalPlanet.js:509 -msgid "Cannot connect to server" -msgstr "" - -#: js/Publisher.js:30 -msgid "Feature unavailable - cannot connect to server. Reload Music Blocks to try again." -msgstr "" - -#: js/Publisher.js:218 -#: js/Publisher.js:235 -msgid "This field is required" -msgstr "" - -#: js/Publisher.js:225 -msgid "Title too long" +#: planet/js/helper.js:150 +msgid "Show fewer tags" msgstr "" -#: js/Publisher.js:242 -msgid "Description too long" +#: plugins/accelerometer.rtp:48 +msgid "motion x" msgstr "" -#: js/Publisher.js:339 -msgid "Server Error" +#: plugins/accelerometer.rtp:56 +msgid "motion y" msgstr "" -#: js/Publisher.js:339 -msgid "Try Again" +#: plugins/accelerometer.rtp:64 +msgid "motion z" msgstr "" -#: js/SaveInterface.js:34 -msgid "Open in Music Blocks" +#: plugins/facebook.rtp:27 +msgid "publish" msgstr "" -#: js/SaveInterface.js:35 -msgid "Open in Turtle Blocks" +#: plugins/maths.rtp:62 +msgid "power" msgstr "" -#: plugins/weather.rtp:68 -#: plugins/weather.rtp:97 -msgid "Days ahead must be in the range of -1 to 5." +#: plugins/maths.rtp:62 +msgid "base" msgstr "" -#: plugins/weather.rtp:122 -msgid "forecast" +#: plugins/maths.rtp:62 +msgid "exp" msgstr "" -#: plugins/weather.rtp:123 -#: plugins/weather.rtp:137 -#: plugins/weather.rtp:150 -msgid "city" +#: plugins/maths.rtp:99 +msgid "floor" msgstr "" -#: plugins/weather.rtp:124 -#: plugins/weather.rtp:138 -#: plugins/weather.rtp:151 -msgid "day" +#: plugins/maths.rtp:104 +msgid "ceiling" msgstr "" -#: plugins/weather.rtp:136 -msgid "high" +#: plugins/maths.rtp:109 +msgid "to degrees" msgstr "" -#: plugins/weather.rtp:149 -msgid "low" +#: plugins/maths.rtp:114 +msgid "to radians" msgstr "" #: plugins/nutrition.rtp:104 @@ -9457,45 +9866,6 @@ msgstr "" msgid "water" msgstr "" -#: plugins/maths.rtp:62 -#: plugins/examples.rtp:93 -msgid "power" -msgstr "" - -#: plugins/maths.rtp:62 -#: plugins/examples.rtp:93 -msgid "base" -msgstr "" - -#: plugins/maths.rtp:62 -#: plugins/examples.rtp:93 -msgid "exp" -msgstr "" - -#: plugins/maths.rtp:99 -#: plugins/examples.rtp:130 -msgid "floor" -msgstr "" - -#: plugins/maths.rtp:104 -#: plugins/examples.rtp:135 -msgid "ceiling" -msgstr "" - -#: plugins/maths.rtp:109 -#: plugins/examples.rtp:140 -msgid "to degrees" -msgstr "" - -#: plugins/maths.rtp:114 -#: plugins/examples.rtp:145 -msgid "to radians" -msgstr "" - -#: plugins/facebook.rtp:27 -msgid "publish" -msgstr "" - #: plugins/rodi.rtp:172 msgid "blink" msgstr "" @@ -9524,18 +9894,66 @@ msgstr "" msgid "move" msgstr "" -#: plugins/accelerometer.rtp:48 -msgid "motion x" +#: plugins/weather.rtp:68 +#: plugins/weather.rtp:97 +msgid "Days ahead must be in the range of -1 to 5." msgstr "" -#: plugins/accelerometer.rtp:56 -msgid "motion y" +#: plugins/weather.rtp:122 +msgid "forecast" msgstr "" -#: plugins/accelerometer.rtp:64 -msgid "motion z" +#: plugins/weather.rtp:123 +#: plugins/weather.rtp:137 +#: plugins/weather.rtp:150 +msgid "city" +msgstr "" + +#: plugins/weather.rtp:124 +#: plugins/weather.rtp:138 +#: plugins/weather.rtp:151 +msgid "day" +msgstr "" + +#: plugins/weather.rtp:136 +msgid "high" +msgstr "" + +#: plugins/weather.rtp:149 +msgid "low" msgstr "" +#: js/toolbar.js:70 + +#: js/toolbar.js:130 + +#: js/toolbar.js:194 + +#: js/toolbar.js:249 + +#~msgid "Toggle JavaScript Editor" +#~msgstr "" + +#: js/EnsembleBlocks.js:643 + +#~msgid "The Turrle pitch block returns the current pitch number being played by the specified turtle." +#~msgstr "" + +#: js/PitchActions.js:88 + +#~msgid "The Scalar Step Block must be used inside of a Note Block." +#~msgstr "" + +#: js/PitchActions.js:107 + +#~msgid "The Scalar Step Block must be preceded by a Pitch Block." +#~msgstr "" + +#: js/musickeyboard.js:2840 + +#~msgid "New action blocks generated!" +#~msgstr "" + #: js/toolbar.js:110 #: js/toolbar.js:204 @@ -9876,11 +10294,6 @@ msgstr "" #~msgid "The Time block returns the number of seconds that the program has been running." #~msgstr "" -#: js/help.js:95 - -#~msgid "Take a tour" -#~msgstr "" - #: js/GlobalCard.js:48 #~msgid "More Details" @@ -12779,11 +13192,6 @@ msgstr "" #~msgid "The save-stack button saves a stack onto a custom palette. It appears after a \"long press\" on a stack." #~msgstr "" -#: js/musicutils.js:254 - -#~msgid "Custom" -#~msgstr "" - #: js/basicblocks.js:4785 #~msgid "Rhythm" diff --git a/po/ne.po b/po/ne.po index 8d88013619..b28e058356 100644 --- a/po/ne.po +++ b/po/ne.po @@ -2129,276 +2129,131 @@ #: js/planetInterface.js:104 #: js/planetInterface.js:104 #: js/planetInterface.js:104 -msgid "project undefined" -msgstr "" - -#: js/logo.js:61 -msgid "Not a valid pitch name" +#: js/SaveInterface.js:59 +#: js/SaveInterface.js:61 +#: js/SaveInterface.js:93 +msgid "Music Blocks Project" msgstr "" -#: js/logo.js:507 -#: js/ProgramBlocks.js:258 -#: js/ProgramBlocks.js:427 -msgid "You must select a file." +#: js/SaveInterface.js:63 +msgid "This project was created in Music Blocks" msgstr "" -#: js/logo.js:1184 -#: js/turtles.js:118 -#: js/turtle-painter.js:1192 -#: js/turtle-painter.js:1193 -#: js/block.js:1463 -#: js/lilypond.js:757 -#: js/lilypond.js:921 -#: js/lilypond.js:959 -#: js/ActionBlocks.js:1223 -#: js/ProgramBlocks.js:1267 -msgid "start" -msgstr "सुरु गर" - -#: js/logo.js:1696 -msgid "Playback is ready." +#: js/SaveInterface.js:67 +msgid "Music Blocks is a Free/Libre Software application." msgstr "" -#: js/blocks.js:1011 -#: js/blocks.js:3427 -#: js/blocks.js:3428 -#: js/blocks.js:3653 -#: js/blocks.js:4012 -#: js/blocks.js:4205 -#: js/blocks.js:5343 -#: js/blocks.js:6474 -#: js/palette.js:527 -#: js/palette.js:536 -#: js/palette.js:545 -#: js/palette.js:554 -#: js/palette.js:1131 -#: js/palette.js:1142 -#: js/palette.js:1153 -#: js/palette.js:1164 -#: js/palette.js:1183 -#: js/rubrics.js:529 -#: js/macros.js:170 -#: js/macros.js:266 -#: js/macros.js:267 -#: js/macros.js:276 -#: js/macros.js:828 -#: js/block.js:1449 -#: js/block.js:4164 -#: js/block.js:4182 -#: js/block.js:4193 -#: js/turtledefs.js:128 -#: js/turtledefs.js:230 -#: js/ActionBlocks.js:254 -#: js/ActionBlocks.js:307 -#: js/ActionBlocks.js:617 -#: js/ActionBlocks.js:716 -#: js/ActionBlocks.js:961 -#: js/ActionBlocks.js:1049 -#: js/ActionBlocks.js:1322 -#: js/ActionBlocks.js:1325 -#: js/ActionBlocks.js:1337 -#: js/ActionBlocks.js:1404 -#: js/MeterBlocks.js:715 -#: js/MeterBlocks.js:768 -#: js/MeterBlocks.js:831 -#: js/MeterBlocks.js:892 -#: js/phrasemaker.js:4412 -#: js/musickeyboard.js:2647 -#: js/rhythmruler.js:1928 -#: js/rhythmruler.js:1935 -#: js/rhythmruler.js:2119 -#: js/rhythmruler.js:2126 -msgid "action" -msgstr "कार्य" - -#: js/blocks.js:1205 -#: js/blocks.js:3380 -#: js/blocks.js:3770 -#: js/blocks.js:3801 -#: js/blocks.js:3850 -#: js/blocks.js:3885 -#: js/blocks.js:6497 -#: js/palette.js:509 -#: js/palette.js:638 -#: js/palette.js:1107 -#: js/BoxesBlocks.js:282 -#: js/BoxesBlocks.js:285 -#: js/BoxesBlocks.js:405 -#: js/BoxesBlocks.js:594 -msgid "box" -msgstr "बाकस" - -#: js/blocks.js:1680 -msgid "Consider breaking this stack into parts." +#: js/SaveInterface.js:69 +msgid "The source code can be accessed at" msgstr "" -#: js/blocks.js:2408 -#: js/palette.js:653 -#: js/MediaBlocks.js:602 -msgid "open file" +#: js/SaveInterface.js:72 +msgid "For more information, please consult the" msgstr "" -#: js/blocks.js:2415 -#: js/blocks.js:2423 -#: js/activity.js:1875 -msgid "audio file" +#: js/SaveInterface.js:76 +#: js/turtledefs.js:795 +msgid "Music Blocks Guide" msgstr "" -#: js/blocks.js:2536 -#: js/blocks.js:3147 -#: js/block.js:3543 -msgid "on2" +#: js/SaveInterface.js:83 +msgid "Alternatively, open the file in Music Blocks using the Load project button." msgstr "" -#: js/blocks.js:2538 -#: js/blocks.js:3149 -#: js/block.js:3545 -msgid "off" +#: js/SaveInterface.js:85 +msgid "Project Code" msgstr "" -#: js/blocks.js:2543 -#: js/blocks.js:3154 -#: js/palette.js:618 -#: js/block.js:3466 -#: js/BooleanBlocks.js:77 -#: js/BooleanBlocks.js:167 -#: js/BooleanBlocks.js:251 -#: js/BooleanBlocks.js:335 -#: js/BooleanBlocks.js:433 -#: js/BooleanBlocks.js:539 -#: js/BooleanBlocks.js:640 -#: js/BooleanBlocks.js:741 -#: js/BooleanBlocks.js:847 -#: js/BooleanBlocks.js:948 -#: js/BooleanBlocks.js:1033 -#: js/SensorsBlocks.js:910 -msgid "true" -msgstr "सही" - -#: js/blocks.js:2545 -#: js/blocks.js:3156 -#: js/block.js:3466 -#: js/BooleanBlocks.js:79 -#: js/BooleanBlocks.js:169 -#: js/BooleanBlocks.js:253 -#: js/BooleanBlocks.js:337 -#: js/BooleanBlocks.js:435 -#: js/BooleanBlocks.js:541 -#: js/BooleanBlocks.js:642 -#: js/BooleanBlocks.js:743 -#: js/BooleanBlocks.js:849 -#: js/BooleanBlocks.js:950 -#: js/SensorsBlocks.js:912 -msgid "false" -msgstr "गलत" - -#: js/blocks.js:3183 -#: js/palette.js:574 -#: js/MediaBlocks.js:892 -#: js/MediaBlocks.js:963 -msgid "text" -msgstr "पाठ" - -#: js/blocks.js:3379 -#: js/palette.js:641 -#: js/palette.js:642 -#: js/BoxesBlocks.js:514 -msgid "store in box" +#: js/SaveInterface.js:87 +msgid "This code stores data about the blocks in a project." msgstr "" -#: js/blocks.js:3384 -#: js/blocks.js:3824 -#: js/blocks.js:3859 -#: js/blocks.js:3894 -#: js/blocks.js:5773 -#: js/blocks.js:5794 -#: js/BoxesBlocks.js:772 -msgid "box1" +#: js/SaveInterface.js:89 +msgid "Show" msgstr "" -#: js/blocks.js:3386 -#: js/blocks.js:3826 -#: js/blocks.js:3861 -#: js/blocks.js:3896 -#: js/blocks.js:5775 -#: js/blocks.js:5796 -#: js/BoxesBlocks.js:663 -msgid "box2" +#: js/SaveInterface.js:91 +msgid "Hide" msgstr "" -#: js/blocks.js:4058 -#: js/palette.js:639 -#: js/palette.js:644 -#: js/palette.js:1043 -#: js/BoxesBlocks.js:591 -msgid "store in" -msgstr "स्टोर गर्नुहोस्" +#: js/SaveInterface.js:131 +#: js/SaveInterface.js:204 +#: js/SaveInterface.js:262 +#: js/SaveInterface.js:389 +#: js/SaveInterface.js:417 +#: js/activity.js:4884 +#: planet/js/ProjectStorage.js:27 +#: planet/js/GlobalPlanet.js:467 +#: planet/js/GlobalPlanet.js:469 +#: planet/js/GlobalPlanet.js:495 +#.TRANS: default project title when saving as Lilypond +msgid "My Project" +msgstr "मेरो परियोजना" -#: js/blocks.js:4058 -#: js/EnsembleBlocks.js:391 -#: js/EnsembleBlocks.js:402 -#: js/MediaBlocks.js:746 -#: js/ProgramBlocks.js:390 -#: js/ProgramBlocks.js:495 -#: js/ProgramBlocks.js:658 -#: js/BoxesBlocks.js:595 -#: js/PitchBlocks.js:656 -#: js/PitchBlocks.js:932 -#: js/PitchBlocks.js:1827 -#: js/ToneBlocks.js:1025 -#: js/DictBlocks.js:215 -#: js/DictBlocks.js:289 -msgid "name" +#: js/SaveInterface.js:197 +#: planet/js/SaveInterface.js:58 +msgid "No description provided" msgstr "" -#: js/blocks.js:4058 -#: js/RhythmBlocks.js:1130 -#: js/BoxesBlocks.js:75 -#: js/BoxesBlocks.js:595 -#: js/HeapBlocks.js:544 -#: js/DictBlocks.js:289 -#: js/DictBlocks.js:430 -msgid "value" -msgstr "मान" - -#: js/blocks.js:4907 -msgid "There is no block selected." +#: js/SaveInterface.js:332 +msgid "Your recording is in progress." msgstr "" -#: js/blocks.js:5002 -#: js/MediaBlocks.js:888 -msgid "show" -msgstr "देखाउ" +#: js/SaveInterface.js:401 +#.TRANS: File name prompt for save as Lilypond +msgid "File name" +msgstr "फाइलको नाम" -#: js/blocks.js:5005 -#: js/MediaBlocks.js:803 -#.TRANS: Avatar is the image used to determine the appearance of the mouse. -msgid "avatar" -msgstr "" +#: js/SaveInterface.js:403 +#: planet/js/StringHelper.js:39 +#.TRANS: Project title prompt for save as Lilypond +msgid "Project title" +msgstr "परियोजनाको शीर्षक" -#: js/blocks.js:5008 -#: js/ToneBlocks.js:1010 -#: js/sampler.js:693 -#.TRANS: The sound sample that the user uploads. -msgid "sample" -msgstr "" +#: js/SaveInterface.js:405 +#.TRANS: Project title prompt for save as Lilypond +msgid "Project author" +msgstr "परियोजनाको लेखक" -#: js/turtles.js:874 -msgid "Grid" -msgstr "" +#: js/SaveInterface.js:407 +#.TRANS: MIDI prompt for save as Lilypond +msgid "Include MIDI output?" +msgstr "के उत्पादनमा MIDI समावेश गर्न चाहनुहुन्छ?" -#: js/turtles.js:891 -#: js/turtledefs.js:626 -msgid "Clean" -msgstr "सफा गर्नुहोस्" +#: js/SaveInterface.js:409 +#.TRANS: Guitar prompt for save as Lilypond +msgid "Include guitar tablature output?" +msgstr "के उत्पादनमा गिटार ट्याब्लेचर समावेश गर्न चाहनुहुन्छ?" -#: js/turtles.js:912 -#: js/turtledefs.js:632 -msgid "Collapse" -msgstr "" +#: js/SaveInterface.js:411 +#.TRANS: Lilypond is a scripting language for generating sheet music +msgid "Save as Lilypond" +msgstr "लिलिपोण्डको रुपमा बचत गर्नुहोस" -#: js/turtles.js:940 -msgid "Expand" +#: js/SaveInterface.js:426 +#: js/blocks/EnsembleBlocks.js:75 +#: js/blocks/EnsembleBlocks.js:154 +#: js/blocks/EnsembleBlocks.js:216 +#: js/blocks/EnsembleBlocks.js:302 +#: js/blocks/EnsembleBlocks.js:348 +#: js/blocks/EnsembleBlocks.js:389 +#: js/blocks/EnsembleBlocks.js:441 +#: js/blocks/EnsembleBlocks.js:490 +#: js/blocks/EnsembleBlocks.js:536 +#: js/blocks/EnsembleBlocks.js:583 +#: js/blocks/EnsembleBlocks.js:637 +#: js/blocks/EnsembleBlocks.js:753 +#: js/blocks/EnsembleBlocks.js:840 +#: js/blocks/EnsembleBlocks.js:899 +#: js/blocks/EnsembleBlocks.js:942 +#: js/blocks/EnsembleBlocks.js:1212 +#: js/blocks/EnsembleBlocks.js:1280 +#.TRANS: default project author when saving as Lilypond +msgid "Mr. Mouse" +msgstr "मिस्टर माउस" + +#: js/SaveInterface.js:573 +msgid "The Lilypond code is copied to clipboard. You can paste it here: " msgstr "" #: js/languagebox.js:198 @@ -2409,6933 +2264,7487 @@ msgstr "" msgid "Music Blocks is already set to this language." msgstr "" -#: js/piemenus.js:200 -#: js/musicutils.js:808 -#: js/musicutils.js:824 -#: js/phrasemaker.js:1672 -#: js/musickeyboard.js:2041 -#: js/sampler.js:544 -#.TRANS: double sharp is a music term related to pitch -msgid "double sharp" +#: js/planetInterface.js:131 +msgid "project undefined" msgstr "" -#: js/piemenus.js:201 -#: js/PitchBlocks.js:1510 -#: js/PitchActions.js:580 -#: js/musicutils.js:806 -#: js/musicutils.js:825 -#: js/phrasemaker.js:1673 -#: js/musickeyboard.js:2042 -#: js/sampler.js:545 -#.TRANS: sharp is a half-step up in pitch -#.TRANS: sharp is a music term related to pitch -msgid "sharp" +#: js/rubrics.js:523 +#: js/turtledefs.js:119 +#: js/turtledefs.js:221 +#: js/blocks/RhythmBlockPaletteBlocks.js:52 +#: js/blocks/RhythmBlockPaletteBlocks.js:234 +#: js/blocks/ProgramBlocks.js:745 +#: js/widgets/rhythmruler.js:2057 +#: js/widgets/rhythmruler.js:2064 +#: js/widgets/rhythmruler.js:2133 +#: js/widgets/rhythmruler.js:2140 +#: js/widgets/rhythmruler.js:2219 +#.TRANS: an arrangement of notes based on duration +msgid "rhythm" msgstr "" -#: js/piemenus.js:202 -#: js/musicutils.js:804 -#: js/musicutils.js:826 -#: js/phrasemaker.js:1674 -#: js/musickeyboard.js:2043 -#: js/sampler.js:546 -#.TRANS: natural is a music term related to pitch -msgid "natural" +#: js/rubrics.js:524 +#: js/turtledefs.js:121 +#: js/turtledefs.js:223 +#: js/block-verbose.js:2622 +#: js/block.js:2550 +#: js/blocks/IntervalsBlocks.js:63 +#: js/blocks/SensorsBlocks.js:178 +#: js/blocks/PitchBlocks.js:1839 +#: js/blocks/PitchBlocks.js:1853 +#: js/widgets/musickeyboard.js:1935 +#: js/widgets/phrasemaker.js:1036 +#.TRANS: pitch number +#.TRANS: pitch number +#.TRANS: we specify pitch in terms of a name and an octave. The name can be CDEFGAB or Do Re Mi Fa Sol La Ti. Octave is a number between 1 and 8. +msgid "pitch" msgstr "" -#: js/piemenus.js:203 -#: js/PitchBlocks.js:1469 -#: js/PitchActions.js:583 -#: js/musicutils.js:802 -#: js/musicutils.js:827 -#: js/phrasemaker.js:1675 -#: js/musickeyboard.js:2044 -#: js/sampler.js:547 -#.TRANS: flat is a half-step down in pitch -#.TRANS: flat is a music term related to pitch -msgid "flat" +#: js/rubrics.js:525 +#: js/turtledefs.js:123 +#: js/turtledefs.js:225 +msgid "tone" msgstr "" -#: js/piemenus.js:204 -#: js/musicutils.js:800 -#: js/musicutils.js:828 -#: js/phrasemaker.js:1676 -#: js/musickeyboard.js:2045 -#: js/sampler.js:548 -#.TRANS: double flat is a music term related to pitch -msgid "double flat" +#: js/rubrics.js:526 +#: js/lilypond.js:605 +#: js/lilypond.js:904 +#: js/lilypond.js:910 +#: js/lilypond.js:948 +msgid "mouse" msgstr "" -#: js/piemenus.js:2861 -#: js/PitchBlocks.js:1357 -#: js/musicutils.js:627 -#.TRANS: unison means the note is the same as the current note -#.TRANS: unison is a music term related to intervals -msgid "unison" -msgstr "" +#: js/rubrics.js:527 +#: js/turtledefs.js:132 +#: js/turtledefs.js:234 +#: js/widgets/phrasemaker.js:1040 +msgid "pen" +msgstr "कलम" -#: js/piemenus.js:3015 -#: js/piemenus.js:3088 -#: js/musicutils.js:635 -#: js/musicutils.js:810 -#: js/musicutils.js:912 -#.TRANS: major is a music term related to intervals and mode -msgid "major" -msgstr "" +#: js/rubrics.js:528 +#: js/turtledefs.js:133 +#: js/turtledefs.js:235 +#: js/blocks/NumberBlocks.js:981 +#: js/blocks/PitchBlocks.js:1717 +#: js/blocks/PitchBlocks.js:1758 +msgid "number" +msgstr "अंक" -#: js/piemenus.js:3015 -#: js/piemenus.js:3088 -#: js/musicutils.js:653 -#.TRANS: modal scale for music -msgid "ionian" -msgstr "" +#: js/rubrics.js:529 +#: js/turtledefs.js:127 +#: js/turtledefs.js:229 +msgid "flow" +msgstr "प्रवाह" -#: js/piemenus.js:3017 -#: js/piemenus.js:3092 -#: js/musicutils.js:633 -#: js/musicutils.js:811 -#: js/musicutils.js:909 -#.TRANS: minor is a music term related to intervals and mode -msgid "minor" -msgstr "" +#: js/rubrics.js:530 +#: js/turtledefs.js:128 +#: js/turtledefs.js:230 +#: js/block-verbose.js:1609 +#: js/block-verbose.js:4559 +#: js/block-verbose.js:4577 +#: js/block-verbose.js:4588 +#: js/block.js:1573 +#: js/block.js:4483 +#: js/block.js:4501 +#: js/block.js:4512 +#: js/blocks.js:1018 +#: js/blocks.js:3491 +#: js/blocks.js:3492 +#: js/blocks.js:3717 +#: js/blocks.js:4076 +#: js/blocks.js:4269 +#: js/blocks.js:5432 +#: js/blocks.js:6563 +#: js/macros.js:170 +#: js/macros.js:266 +#: js/macros.js:267 +#: js/macros.js:276 +#: js/macros.js:828 +#: js/palette.js:527 +#: js/palette.js:536 +#: js/palette.js:545 +#: js/palette.js:554 +#: js/palette.js:1129 +#: js/palette.js:1140 +#: js/palette.js:1151 +#: js/palette.js:1162 +#: js/palette.js:1181 +#: js/blocks/ActionBlocks.js:254 +#: js/blocks/ActionBlocks.js:307 +#: js/blocks/ActionBlocks.js:617 +#: js/blocks/ActionBlocks.js:716 +#: js/blocks/ActionBlocks.js:961 +#: js/blocks/ActionBlocks.js:1049 +#: js/blocks/ActionBlocks.js:1322 +#: js/blocks/ActionBlocks.js:1325 +#: js/blocks/ActionBlocks.js:1337 +#: js/blocks/ActionBlocks.js:1404 +#: js/blocks/MeterBlocks.js:715 +#: js/blocks/MeterBlocks.js:768 +#: js/blocks/MeterBlocks.js:831 +#: js/blocks/MeterBlocks.js:892 +#: js/widgets/musickeyboard.js:2986 +#: js/widgets/phrasemaker.js:4913 +#: js/widgets/rhythmruler.js:2319 +#: js/widgets/rhythmruler.js:2326 +#: js/widgets/rhythmruler.js:2511 +#: js/widgets/rhythmruler.js:2518 +msgid "action" +msgstr "कार्य" -#: js/piemenus.js:3017 -#: js/piemenus.js:3092 -#: js/musicutils.js:663 -#.TRANS: modal scale for music -msgid "aeolian" +#: js/rubrics.js:531 +#: js/turtledefs.js:136 +#: js/turtledefs.js:238 +msgid "sensors" msgstr "" -#: js/piemenus.js:3407 -msgid "Duplicate" -msgstr "" +#: js/rubrics.js:532 +#: js/turtledefs.js:135 +#: js/turtledefs.js:237 +#: js/blocks/MediaBlocks.js:930 +msgid "media" +msgstr "मिडिया" -#: js/piemenus.js:3408 -#: js/turtledefs.js:534 -msgid "Extract" +#: js/rubrics.js:533 +msgid "mice" msgstr "" -#: js/piemenus.js:3409 -msgid "Move to trash" +#: js/toolbar.js:48 +#: js/toolbar.js:109 +msgid "About Music Blocks" msgstr "" -#: js/piemenus.js:3410 -#: js/timbre.js:968 -#: js/StringHelper.js:69 -msgid "Close" -msgstr "बन्दगर्नुहोस" - -#: js/piemenus.js:3416 -msgid "Save stack" -msgstr "स्टक सेभ गर" +#: js/toolbar.js:49 +#: js/toolbar.js:110 +#: js/toolbar.js:175 +#: js/toolbar.js:231 +#: js/turtledefs.js:445 +#: js/turtledefs.js:482 +#: js/activity.js:2660 +#: js/activity.js:2671 +#: js/activity.js:2902 +#: js/widgets/modewidget.js:77 +#: js/widgets/meterwidget.js:185 +#: js/widgets/pitchdrummatrix.js:147 +#: js/widgets/pitchdrummatrix.js:687 +#: js/widgets/pitchdrummatrix.js:689 +#: js/widgets/pitchdrummatrix.js:741 +#: js/widgets/pitchdrummatrix.js:743 +#: js/widgets/pitchdrummatrix.js:758 +#: js/widgets/pitchdrummatrix.js:760 +#: js/widgets/pitchdrummatrix.js:789 +#: js/widgets/pitchdrummatrix.js:791 +#: js/widgets/pitchstaircase.js:121 +#: js/widgets/temperament.js:610 +#: js/widgets/temperament.js:613 +#: js/widgets/temperament.js:673 +#: js/widgets/temperament.js:675 +#: js/widgets/temperament.js:2017 +#: js/widgets/temperament.js:2019 +#: js/widgets/tempo.js:84 +#: js/widgets/tempo.js:86 +#: js/widgets/timbre.js:432 +#: js/widgets/timbre.js:434 +#: js/widgets/timbre.js:465 +#: js/widgets/timbre.js:467 +#: js/widgets/timbre.js:746 +#: js/widgets/aiwidget.js:647 +#: js/widgets/aiwidget.js:654 +#: js/widgets/aiwidget.js:656 +#: js/widgets/arpeggio.js:90 +#: js/widgets/arpeggio.js:547 +#: js/widgets/arpeggio.js:549 +#: js/widgets/arpeggio.js:644 +#: js/widgets/arpeggio.js:646 +#: js/widgets/musickeyboard.js:676 +#: js/widgets/musickeyboard.js:872 +#: js/widgets/musickeyboard.js:874 +#: js/widgets/musickeyboard.js:953 +#: js/widgets/musickeyboard.js:955 +#: js/widgets/phrasemaker.js:513 +#: js/widgets/phrasemaker.js:523 +#: js/widgets/phrasemaker.js:525 +#: js/widgets/phrasemaker.js:4304 +#: js/widgets/phrasemaker.js:4528 +#: js/widgets/phrasemaker.js:4533 +#: js/widgets/phrasemaker.js:4535 +#: js/widgets/phrasemaker.js:4650 +#: js/widgets/rhythmruler.js:637 +#: js/widgets/rhythmruler.js:639 +#: js/widgets/rhythmruler.js:653 +#: js/widgets/rhythmruler.js:655 +#: js/widgets/sampler.js:162 +#: js/widgets/sampler.js:164 +#: js/widgets/sampler.js:363 +msgid "Play" +msgstr "" -#: js/piemenus.js:3420 -#: js/toolbar.js:60 +#: js/toolbar.js:50 +#: js/toolbar.js:111 +#: js/toolbar.js:176 +#: js/toolbar.js:232 +#: js/turtledefs.js:451 +#: js/turtledefs.js:488 +#: js/activity.js:2679 +#: js/widgets/modewidget.js:99 +#: js/widgets/modewidget.js:101 +#: js/widgets/meterwidget.js:206 +#: js/widgets/meterwidget.js:208 +#: js/widgets/pitchdrummatrix.js:674 +#: js/widgets/pitchdrummatrix.js:676 +#: js/widgets/temperament.js:2002 +#: js/widgets/temperament.js:2004 +#: js/widgets/arpeggio.js:534 +#: js/widgets/arpeggio.js:536 +#: js/widgets/phrasemaker.js:534 +#: js/widgets/phrasemaker.js:536 +msgid "Stop" +msgstr "रोक" + +#: js/toolbar.js:51 +#: js/toolbar.js:112 +#: js/toolbar.js:177 +#: js/toolbar.js:233 +#: js/turtledefs.js:498 +msgid "Record" +msgstr "" + +#: js/toolbar.js:52 +#: js/toolbar.js:53 +msgid "Full screen" +msgstr "" + +#: js/toolbar.js:54 +#: js/toolbar.js:115 +#: js/toolbar.js:180 +#: js/toolbar.js:236 +#: js/turtledefs.js:504 +msgid "Toggle Fullscreen" +msgstr "" + +#: js/toolbar.js:55 +#: js/toolbar.js:116 +#: js/toolbar.js:181 +#: js/toolbar.js:237 +#: js/turtledefs.js:510 +#: planet/js/StringHelper.js:33 +msgid "New project" +msgstr "" + +#: js/toolbar.js:56 +#: js/toolbar.js:117 +#: js/toolbar.js:182 +#: js/toolbar.js:238 +#: js/turtledefs.js:516 +msgid "Load project from file" +msgstr "" + +#: js/toolbar.js:57 +#: js/toolbar.js:118 +#: js/toolbar.js:119 +#: js/toolbar.js:183 +#: js/toolbar.js:239 +#: js/turtledefs.js:541 +#: js/turtledefs.js:550 +#: js/turtledefs.js:571 +msgid "Save project" +msgstr "" + +#: js/toolbar.js:58 +#: js/toolbar.js:77 +#: js/toolbar.js:79 +#: js/toolbar.js:138 +#: js/toolbar.js:147 +#: js/toolbar.js:149 +#: js/toolbar.js:184 +#: js/toolbar.js:202 +#: js/toolbar.js:204 +#: js/toolbar.js:240 +#: js/toolbar.js:258 +#: js/toolbar.js:260 +msgid "Save project as HTML" +msgstr "" + +#: js/toolbar.js:59 #: js/toolbar.js:120 #: js/toolbar.js:185 -#: js/toolbar.js:240 +#: js/toolbar.js:241 +msgid "Find and share projects" +msgstr "" + +#: js/toolbar.js:60 +#: js/toolbar.js:121 +#: js/toolbar.js:186 +#: js/toolbar.js:242 +msgid "Offline. Sharing is unavailable" +msgstr "" + +#: js/toolbar.js:61 +#: js/toolbar.js:122 +#: js/toolbar.js:187 +#: js/toolbar.js:243 +msgid "Auxiliary menu" +msgstr "" + +#: js/toolbar.js:62 +#: js/toolbar.js:123 +#: js/toolbar.js:188 +#: js/toolbar.js:244 #: js/turtledefs.js:752 +#: js/piemenus.js:3423 msgid "Help" msgstr "मद्दत" -#: js/piemenus.js:3762 -msgid "You have chosen key " +#: js/toolbar.js:63 +#: js/toolbar.js:124 +#: js/toolbar.js:189 +#: js/toolbar.js:245 +msgid "Run slowly" msgstr "" -#: js/piemenus.js:3766 -msgid " for your pitch preview." +#: js/toolbar.js:64 +#: js/toolbar.js:125 +#: js/toolbar.js:190 +#: js/toolbar.js:246 +#: js/turtledefs.js:682 +msgid "Run step by step" +msgstr "चरणवद्धरुपमा चलाउनुहोस" + +#: js/toolbar.js:65 +#: js/toolbar.js:126 +#: js/toolbar.js:191 +#: js/toolbar.js:247 +#: js/turtledefs.js:689 +msgid "Display statistics" msgstr "" -#: js/palette.js:571 -msgid "grid" +#: js/toolbar.js:66 +#: js/toolbar.js:127 +#: js/toolbar.js:192 +#: js/toolbar.js:248 +msgid "Load plugin" msgstr "" -#: js/palette.js:577 -#: js/block.js:1540 -#: js/block.js:2343 -#: js/turtledefs.js:126 -#: js/turtledefs.js:228 -#: js/lilypond.js:740 -#: js/lilypond.js:905 -#: js/lilypond.js:949 -#: js/DrumBlocks.js:486 -#: js/RhythmBlocks.js:766 -#: js/VolumeBlocks.js:502 -#: js/phrasemaker.js:823 -msgid "drum" -msgstr "ड्रम" +#: js/toolbar.js:67 +#: js/toolbar.js:128 +#: js/toolbar.js:193 +#: js/toolbar.js:249 +#: js/turtledefs.js:696 +msgid "Delete plugin" +msgstr "" -#: js/palette.js:580 -msgid "effect" +#: js/toolbar.js:68 +#: js/toolbar.js:129 +#: js/toolbar.js:194 +#: js/toolbar.js:250 +msgid "Enable horizontal scrolling" msgstr "" -#: js/palette.js:586 -msgid "sargam" +#: js/toolbar.js:69 +#: js/toolbar.js:130 +#: js/toolbar.js:195 +#: js/toolbar.js:251 +msgid "Disable horizontal scrolling" msgstr "" -#: js/palette.js:589 -#: js/activity.js:1833 -#: js/RhythmBlocks.js:923 -#: js/PitchBlocks.js:442 -#: js/PitchBlocks.js:1748 -#.TRANS: a numeric mapping of the notes in an octave based on the musical mode -msgid "scale degree" +#: js/toolbar.js:70 +#: js/toolbar.js:131 +#: js/toolbar.js:196 +#: js/toolbar.js:252 +#: planet/js/LocalCard.js:54 +#: planet/js/StringHelper.js:71 +msgid "Merge with current project" +msgstr "चालु परियोगनामा मिलाउनुहोस" + +#: js/toolbar.js:71 +#: js/toolbar.js:132 +msgid "Set Pitch Preview" msgstr "" -#: js/palette.js:592 -#: js/activity.js:1860 -msgid "mode name" +#: js/toolbar.js:72 +#: js/toolbar.js:133 +#: js/toolbar.js:197 +#: js/toolbar.js:253 +msgid "JavaScript Editor" msgstr "" -#: js/palette.js:595 -#: js/activity.js:1839 -msgid "invert mode" +#: js/toolbar.js:73 +#: js/toolbar.js:134 +#: js/toolbar.js:198 +#: js/toolbar.js:254 +#: js/turtledefs.js:724 +msgid "Restore" msgstr "" -#: js/palette.js:598 -#: js/activity.js:1836 -msgid "voice name" +#: js/toolbar.js:74 +#: js/toolbar.js:135 +#: js/toolbar.js:199 +#: js/toolbar.js:255 +msgid "Switch to beginner mode" +msgstr "" + +#: js/toolbar.js:75 +#: js/toolbar.js:136 +#: js/toolbar.js:200 +#: js/toolbar.js:256 +msgid "Switch to advanced mode" +msgstr "" + +#: js/toolbar.js:76 +#: js/toolbar.js:137 +#: js/toolbar.js:146 +#: js/toolbar.js:201 +#: js/toolbar.js:257 +#: js/turtledefs.js:738 +msgid "Select language" +msgstr "" + +#: js/toolbar.js:78 +#: js/toolbar.js:81 +#: js/toolbar.js:140 +#: js/turtledefs.js:579 +msgid "Save mouse artwork as PNG" +msgstr "" + +#: js/toolbar.js:80 +#: js/toolbar.js:139 +#: js/turtledefs.js:575 +msgid "Save mouse artwork as SVG" +msgstr "" + +#: js/toolbar.js:82 +#: js/toolbar.js:141 +#: js/turtledefs.js:583 +msgid "Save music as WAV" +msgstr "" + +#: js/toolbar.js:83 +#: js/toolbar.js:142 +#: js/turtledefs.js:587 +msgid "Save sheet music as ABC" +msgstr "" + +#: js/toolbar.js:84 +#: js/toolbar.js:143 +#: js/turtledefs.js:591 +msgid "Save sheet music as Lilypond" +msgstr "" + +#: js/toolbar.js:85 +msgid "Save sheet music as MusicXML" +msgstr "" + +#: js/toolbar.js:86 +#: js/toolbar.js:144 +#: js/toolbar.js:152 +#: js/toolbar.js:207 +#: js/toolbar.js:263 +#: js/turtledefs.js:562 +#: js/turtledefs.js:595 +msgid "Save block artwork as SVG" +msgstr "" + +#: js/toolbar.js:87 +#: js/toolbar.js:145 +#: js/toolbar.js:153 +#: js/toolbar.js:208 +#: js/toolbar.js:264 +#: js/turtles.js:911 +msgid "Confirm" +msgstr "" + +#: js/toolbar.js:88 +#: js/toolbar.js:154 +#: js/toolbar.js:209 +#: js/toolbar.js:265 +msgid "English (United States)" +msgstr "" + +#: js/toolbar.js:89 +#: js/toolbar.js:155 +#: js/toolbar.js:210 +#: js/toolbar.js:266 +msgid "English (United Kingdom)" +msgstr "" + +#: js/toolbar.js:90 +#: js/toolbar.js:156 +#: js/toolbar.js:211 +#: js/toolbar.js:267 +msgid "日本語" +msgstr "" + +#: js/toolbar.js:91 +msgid "한국어" +msgstr "" + +#: js/toolbar.js:92 +#: js/toolbar.js:158 +#: js/toolbar.js:213 +#: js/toolbar.js:269 +msgid "español" +msgstr "" + +#: js/toolbar.js:93 +#: js/toolbar.js:159 +#: js/toolbar.js:214 +#: js/toolbar.js:270 +msgid "português" +msgstr "" + +#: js/toolbar.js:94 +#: js/toolbar.js:160 +#: js/toolbar.js:215 +#: js/toolbar.js:271 +msgid "にほんご" +msgstr "" + +#: js/toolbar.js:95 +#: js/toolbar.js:161 +#: js/toolbar.js:216 +#: js/toolbar.js:272 +msgid "中文" +msgstr "" + +#: js/toolbar.js:96 +#: js/toolbar.js:162 +#: js/toolbar.js:217 +#: js/toolbar.js:273 +msgid "ภาษาไทย" +msgstr "" + +#: js/toolbar.js:97 +#: js/toolbar.js:163 +#: js/toolbar.js:218 +#: js/toolbar.js:274 +msgid "aymara" +msgstr "" + +#: js/toolbar.js:98 +#: js/toolbar.js:164 +#: js/toolbar.js:219 +#: js/toolbar.js:275 +msgid "quechua" +msgstr "" + +#: js/toolbar.js:99 +#: js/toolbar.js:165 +#: js/toolbar.js:220 +#: js/toolbar.js:276 +msgid "guarani" +msgstr "" + +#: js/toolbar.js:100 +#: js/toolbar.js:166 +#: js/toolbar.js:221 +#: js/toolbar.js:277 +msgid "हिंदी" +msgstr "" + +#: js/toolbar.js:101 +#: js/toolbar.js:168 +#: js/toolbar.js:222 +#: js/toolbar.js:279 +msgid "igbo" +msgstr "" + +#: js/toolbar.js:102 +#: js/toolbar.js:169 +#: js/toolbar.js:223 +#: js/toolbar.js:280 +msgid "عربى" +msgstr "" + +#: js/toolbar.js:103 +#: js/toolbar.js:167 +#: js/toolbar.js:224 +#: js/toolbar.js:278 +msgid "తెలుగు" +msgstr "" + +#: js/toolbar.js:104 +#: js/toolbar.js:170 +#: js/toolbar.js:225 +#: js/toolbar.js:281 +msgid "עִברִית" +msgstr "" + +#: js/toolbar.js:113 +#: js/toolbar.js:114 +#: js/toolbar.js:178 +#: js/toolbar.js:179 +#: js/toolbar.js:234 +#: js/toolbar.js:235 +msgid "Full Screen" +msgstr "" + +#: js/toolbar.js:148 +#: js/toolbar.js:151 +#: js/toolbar.js:203 +#: js/toolbar.js:206 +#: js/toolbar.js:259 +#: js/toolbar.js:262 +#: js/turtledefs.js:558 +msgid "Save turtle artwork as PNG" +msgstr "" + +#: js/toolbar.js:150 +#: js/toolbar.js:205 +#: js/toolbar.js:261 +#: js/turtledefs.js:554 +msgid "Save turtle artwork as SVG" +msgstr "" + +#: js/toolbar.js:157 +#: js/toolbar.js:212 +#: js/toolbar.js:268 +msgid "한국인" +msgstr "" + +#: js/toolbar.js:174 +#: js/toolbar.js:230 +msgid "About Turtle Blocks" +msgstr "" + +#: js/toolbar.js:446 +#: js/toolbar.js:457 +#: js/toolbar.js:497 +msgid "Turtle Wrap Off" +msgstr "" + +#: js/toolbar.js:466 +#: js/toolbar.js:506 +msgid "Turtle Wrap On" +msgstr "" + +#: js/turtle-painter.js:1192 +#: js/turtle-painter.js:1193 +#: js/turtles.js:118 +#: js/block-verbose.js:1623 +#: js/block.js:1587 +#: js/lilypond.js:749 +#: js/lilypond.js:913 +#: js/lilypond.js:951 +#: js/logo.js:1184 +#: js/blocks/ActionBlocks.js:1223 +#: js/blocks/ProgramBlocks.js:1267 +msgid "start" +msgstr "सुरु गर" + +#: js/turtledefs.js:40 +#.TRANS: put the URL to the guide here, e.g., https://github.com/sugarlabs/turtleblocksjs/tree/master/guide/README.md +msgid "guide url" +msgstr "" + +#: js/turtledefs.js:85 +#: js/turtledefs.js:437 +msgid "Turtle Blocks is a Logo-inspired turtle that draws colorful pictures with snap-together visual-programming blocks." +msgstr "" + +#: js/turtledefs.js:118 +#: js/turtledefs.js:220 +msgid "search" +msgstr "" + +#: js/turtledefs.js:120 +#: js/turtledefs.js:222 +#: js/blocks/MeterBlocks.js:1343 +#: js/blocks/WidgetBlocks.js:522 +#.TRANS: musical meter (time signature), e.g., 4:4 +msgid "meter" +msgstr "" + +#: js/turtledefs.js:122 +#: js/turtledefs.js:224 +msgid "intervals" +msgstr "" + +#: js/turtledefs.js:124 +#: js/turtledefs.js:226 +msgid "ornament" +msgstr "" + +#: js/turtledefs.js:125 +#: js/turtledefs.js:227 +#: js/blocks/VolumeBlocks.js:362 +#: js/blocks/VolumeBlocks.js:502 +#: js/blocks/VolumeBlocks.js:545 +msgid "volume" +msgstr "" + +#: js/turtledefs.js:126 +#: js/turtledefs.js:228 +#: js/block-verbose.js:1700 +#: js/block-verbose.js:2626 +#: js/block.js:1664 +#: js/block.js:2554 +#: js/lilypond.js:732 +#: js/lilypond.js:897 +#: js/lilypond.js:941 +#: js/palette.js:577 +#: js/blocks/RhythmBlocks.js:766 +#: js/blocks/DrumBlocks.js:477 +#: js/blocks/VolumeBlocks.js:502 +#: js/widgets/phrasemaker.js:1038 +msgid "drum" +msgstr "ड्रम" + +#: js/turtledefs.js:129 +#: js/turtledefs.js:231 +msgid "boxes" +msgstr "" + +#: js/turtledefs.js:130 +#: js/turtledefs.js:232 +msgid "widgets" +msgstr "" + +#: js/turtledefs.js:131 +#: js/turtledefs.js:233 +#: js/widgets/phrasemaker.js:1039 +msgid "graphics" +msgstr "" + +#: js/turtledefs.js:134 +#: js/turtledefs.js:236 +msgid "boolean" +msgstr "" + +#: js/turtledefs.js:137 +#: js/turtledefs.js:239 +#: js/blocks/HeapBlocks.js:59 +#: js/widgets/status.js:147 +msgid "heap" +msgstr "" + +#: js/turtledefs.js:138 +#: js/turtledefs.js:240 +#: js/blocks/DictBlocks.js:142 +#: js/blocks/ProgramBlocks.js:495 +msgid "dictionary" +msgstr "" + +#: js/turtledefs.js:139 +#: js/turtledefs.js:241 +msgid "ensemble" +msgstr "" + +#: js/turtledefs.js:140 +#: js/turtledefs.js:242 +msgid "extras" +msgstr "अधिक" + +#: js/turtledefs.js:142 +#: js/turtledefs.js:244 +#.TRANS: program as in computer program +#.TRANS: program as in computer program +msgid "program" +msgstr "" + +#: js/turtledefs.js:143 +#: js/turtledefs.js:245 +msgid "my blocks" +msgstr "" + +#: js/turtledefs.js:185 +#: js/turtledefs.js:281 +msgid "artwork" +msgstr "" + +#: js/turtledefs.js:185 +#: js/turtledefs.js:281 +msgid "logic" +msgstr "" + +#: js/turtledefs.js:185 +#: js/turtledefs.js:281 +msgid "music" +msgstr "" + +#: js/turtledefs.js:187 +#: js/turtledefs.js:463 +msgid "Music Blocks is a collection of tools for exploring fundamental musical concepts in a fun way." +msgstr "" + +#: js/turtledefs.js:436 +msgid "Welcome to Turtle Blocks" +msgstr "" + +#: js/turtledefs.js:438 +#: js/turtledefs.js:465 +#: js/turtledefs.js:774 +#: js/turtledefs.js:805 +msgid "The current version is" +msgstr "" + +#: js/turtledefs.js:446 +#: js/turtledefs.js:483 +msgid "Click the run button to run the project in fast mode." +msgstr "" + +#: js/turtledefs.js:452 +msgid "Stop the turtle." +msgstr "" + +#: js/turtledefs.js:454 +#: js/turtledefs.js:491 +msgid "You can also type Alt-S to stop." +msgstr "" + +#: js/turtledefs.js:462 +#: js/widgets/help.js:333 +msgid "Welcome to Music Blocks" +msgstr "" + +#: js/turtledefs.js:472 +#: js/widgets/help.js:334 +msgid "Meet Mr. Mouse!" msgstr "" -#: js/palette.js:601 -#: js/PitchBlocks.js:1181 -msgid "custom pitch" +#: js/turtledefs.js:473 +msgid "Mr Mouse is our Music Blocks conductor." msgstr "" -#: js/palette.js:605 -#: js/block.js:1456 -#: js/block.js:1575 -#: js/WidgetBlocks.js:218 -#: js/IntervalsBlocks.js:63 -msgid "temperament" +#: js/turtledefs.js:475 +msgid "Mr Mouse encourages you to explore Music Blocks." msgstr "" -#: js/palette.js:609 -msgid "accidental" +#: js/turtledefs.js:477 +msgid "Let us start our tour!" msgstr "" -#: js/palette.js:615 -#: js/activity.js:1866 -msgid "interval name" +#: js/turtledefs.js:489 +msgid "Stop the music (and the mice)." msgstr "" -#: js/palette.js:633 -#: js/PitchBlocks.js:405 -msgid "pitch converter" +#: js/turtledefs.js:499 +msgid "Record your project as video." msgstr "" -#: js/rubrics.js:522 -#: js/turtledefs.js:119 -#: js/turtledefs.js:221 -#: js/RhythmBlockPaletteBlocks.js:52 -#: js/RhythmBlockPaletteBlocks.js:233 -#: js/ProgramBlocks.js:745 -#: js/rhythmruler.js:1670 -#: js/rhythmruler.js:1677 -#: js/rhythmruler.js:1745 -#: js/rhythmruler.js:1752 -#: js/rhythmruler.js:1830 -#.TRANS: an arrangement of notes based on duration -msgid "rhythm" +#: js/turtledefs.js:505 +msgid "Toggle Fullscreen mode." msgstr "" -#: js/rubrics.js:523 -#: js/block.js:2339 -#: js/turtledefs.js:121 -#: js/turtledefs.js:223 -#: js/IntervalsBlocks.js:63 -#: js/PitchBlocks.js:1801 -#: js/PitchBlocks.js:1814 -#: js/SensorsBlocks.js:178 -#: js/phrasemaker.js:821 -#: js/musickeyboard.js:1653 -#.TRANS: pitch number -#.TRANS: we specify pitch in terms of a name and an octave. The name can be CDEFGAB or Do Re Mi Fa Sol La Ti. Octave is a number between 1 and 8. -msgid "pitch" +#: js/turtledefs.js:511 +msgid "Initialize a new project." msgstr "" -#: js/rubrics.js:524 -#: js/turtledefs.js:123 -#: js/turtledefs.js:225 -msgid "tone" +#: js/turtledefs.js:517 +msgid "You can also load projects from the file system." msgstr "" -#: js/rubrics.js:525 -#: js/lilypond.js:613 -#: js/lilypond.js:912 -#: js/lilypond.js:918 -#: js/lilypond.js:956 -msgid "mouse" +#: js/turtledefs.js:522 +#: planet/js/StringHelper.js:46 +msgid "Delete" +msgstr "मेटाउनुस" + +#: js/turtledefs.js:523 +msgid "To delete a block, just right-click on it, then you will be able to see the delete option" msgstr "" -#: js/rubrics.js:526 -#: js/turtledefs.js:132 -#: js/turtledefs.js:234 -#: js/phrasemaker.js:825 -msgid "pen" -msgstr "कलम" +#: js/turtledefs.js:528 +#: js/activity.js:2649 +#: planet/js/LocalCard.js:31 +msgid "Copy" +msgstr "प्रतिलिपी बनाऊ" -#: js/rubrics.js:527 -#: js/turtledefs.js:133 -#: js/turtledefs.js:235 -#: js/NumberBlocks.js:905 -#: js/PitchBlocks.js:1679 -#: js/PitchBlocks.js:1720 -msgid "number" -msgstr "अंक" +#: js/turtledefs.js:529 +msgid "To copy a block, just right-click on it, then you will be able to see the copy option" +msgstr "" -#: js/rubrics.js:528 -#: js/turtledefs.js:127 -#: js/turtledefs.js:229 -msgid "flow" -msgstr "प्रवाह" +#: js/turtledefs.js:534 +#: js/piemenus.js:3411 +msgid "Extract" +msgstr "" -#: js/rubrics.js:530 -#: js/turtledefs.js:136 -#: js/turtledefs.js:238 -msgid "sensors" +#: js/turtledefs.js:535 +msgid "To extract a block, just right-click on it, then you will be able to see the extract option" msgstr "" -#: js/rubrics.js:531 -#: js/turtledefs.js:135 -#: js/turtledefs.js:237 -#: js/MediaBlocks.js:930 -msgid "media" -msgstr "मिडिया" +#: js/turtledefs.js:542 +#: js/turtledefs.js:552 +#: js/turtledefs.js:573 +msgid "Save your project to a file." +msgstr "" -#: js/rubrics.js:532 -msgid "mice" +#: js/turtledefs.js:549 +#: js/turtledefs.js:570 +msgid "save" msgstr "" -#: js/macros.js:711 -#: js/musicutils.js:783 -#: js/synthutils.js:181 -#.TRANS: animal sound effect -msgid "duck" +#: js/turtledefs.js:556 +#: js/turtledefs.js:577 +msgid "Save graphics from your project to as SVG." msgstr "" -#: js/toolbar.js:46 -#: js/toolbar.js:107 -msgid "About Music Blocks" +#: js/turtledefs.js:560 +#: js/turtledefs.js:581 +msgid "Save graphics from your project as PNG." msgstr "" -#: js/toolbar.js:47 -#: js/toolbar.js:108 -#: js/toolbar.js:172 -#: js/toolbar.js:228 -#: js/turtledefs.js:445 -#: js/turtledefs.js:482 -#: js/activity.js:2281 -#: js/activity.js:2289 -#: js/activity.js:2520 -#: js/modewidget.js:77 -#: js/pitchstaircase.js:121 -#: js/phrasemaker.js:302 -#: js/phrasemaker.js:312 -#: js/phrasemaker.js:314 -#: js/phrasemaker.js:3901 -#: js/phrasemaker.js:4061 -#: js/phrasemaker.js:4066 -#: js/phrasemaker.js:4068 -#: js/phrasemaker.js:4183 -#: js/pitchdrummatrix.js:81 -#: js/pitchdrummatrix.js:574 -#: js/pitchdrummatrix.js:576 -#: js/pitchdrummatrix.js:628 -#: js/pitchdrummatrix.js:630 -#: js/pitchdrummatrix.js:645 -#: js/pitchdrummatrix.js:647 -#: js/pitchdrummatrix.js:674 -#: js/pitchdrummatrix.js:676 -#: js/temperament.js:477 -#: js/temperament.js:480 -#: js/temperament.js:540 -#: js/temperament.js:542 -#: js/temperament.js:1835 -#: js/temperament.js:1837 -#: js/temperament.js:1986 -#: js/temperament.js:1988 -#: js/musickeyboard.js:522 -#: js/musickeyboard.js:682 -#: js/musickeyboard.js:684 -#: js/musickeyboard.js:756 -#: js/musickeyboard.js:758 -#: js/rhythmruler.js:298 -#: js/rhythmruler.js:300 -#: js/rhythmruler.js:314 -#: js/rhythmruler.js:316 -#: js/sampler.js:96 -#: js/sampler.js:98 -#: js/sampler.js:229 -#: js/sampler.js:235 -#: js/sampler.js:237 -#: js/tempo.js:84 -#: js/tempo.js:86 -#: js/timbre.js:432 -#: js/timbre.js:434 -#: js/timbre.js:465 -#: js/timbre.js:467 -#: js/timbre.js:746 -#: js/meterwidget.js:80 -#: js/arpeggio.js:90 -#: js/arpeggio.js:547 -#: js/arpeggio.js:549 -#: js/arpeggio.js:644 -#: js/arpeggio.js:646 -msgid "Play" +#: js/turtledefs.js:564 +#: js/turtledefs.js:597 +msgid "Save block artwork as an SVG file." msgstr "" -#: js/toolbar.js:48 -#: js/toolbar.js:109 -#: js/toolbar.js:173 -#: js/toolbar.js:229 -#: js/turtledefs.js:451 -#: js/turtledefs.js:488 -#: js/activity.js:2297 -#: js/modewidget.js:99 -#: js/modewidget.js:101 -#: js/phrasemaker.js:323 -#: js/phrasemaker.js:325 -#: js/pitchdrummatrix.js:561 -#: js/pitchdrummatrix.js:563 -#: js/temperament.js:1820 -#: js/temperament.js:1822 -#: js/meterwidget.js:101 -#: js/meterwidget.js:103 -#: js/arpeggio.js:534 -#: js/arpeggio.js:536 -msgid "Stop" -msgstr "रोक" +#: js/turtledefs.js:585 +msgid "Save audio from your project as WAV." +msgstr "" -#: js/toolbar.js:49 -#: js/toolbar.js:110 -#: js/toolbar.js:174 -#: js/toolbar.js:230 -#: js/turtledefs.js:498 -msgid "Record" +#: js/turtledefs.js:589 +msgid "Save your project to as an ABC file." msgstr "" -#: js/toolbar.js:50 -#: js/toolbar.js:51 -msgid "Full screen" +#: js/turtledefs.js:593 +msgid "Save your project to as a Lilypond file." msgstr "" -#: js/toolbar.js:52 -#: js/toolbar.js:112 -#: js/toolbar.js:177 -#: js/toolbar.js:232 -#: js/turtledefs.js:504 -msgid "Toggle Fullscreen" +#: js/turtledefs.js:604 +msgid "Load samples from server" msgstr "" -#: js/toolbar.js:53 -#: js/toolbar.js:113 -#: js/toolbar.js:178 -#: js/toolbar.js:233 -#: js/turtledefs.js:510 -#: js/StringHelper.js:33 -msgid "New project" +#: js/turtledefs.js:605 +msgid "This button opens a viewer for loading example projects." msgstr "" -#: js/toolbar.js:54 -#: js/toolbar.js:114 -#: js/toolbar.js:179 -#: js/toolbar.js:234 -#: js/turtledefs.js:516 -msgid "Load project from file" +#: js/turtledefs.js:611 +msgid "Palette buttons" msgstr "" -#: js/toolbar.js:55 -#: js/toolbar.js:115 -#: js/toolbar.js:116 -#: js/toolbar.js:180 -#: js/toolbar.js:235 -#: js/turtledefs.js:541 -#: js/turtledefs.js:550 -#: js/turtledefs.js:571 -msgid "Save project" +#: js/turtledefs.js:612 +msgid "This toolbar contains the palette buttons including Rhythm Pitch Tone Action and more." msgstr "" -#: js/toolbar.js:56 -#: js/toolbar.js:75 -#: js/toolbar.js:77 -#: js/toolbar.js:135 -#: js/toolbar.js:144 -#: js/toolbar.js:146 -#: js/toolbar.js:181 -#: js/toolbar.js:199 -#: js/toolbar.js:201 -#: js/toolbar.js:236 -#: js/toolbar.js:254 -#: js/toolbar.js:256 -msgid "Save project as HTML" +#: js/turtledefs.js:614 +msgid "Click to show the palettes of blocks and drag blocks from the palettes onto the canvas to use them." msgstr "" -#: js/toolbar.js:57 -#: js/toolbar.js:117 -#: js/toolbar.js:182 -#: js/toolbar.js:237 -msgid "Find and share projects" +#: js/turtledefs.js:620 +msgid "Cartesian/Polar" msgstr "" -#: js/toolbar.js:58 -#: js/toolbar.js:118 -#: js/toolbar.js:183 -#: js/toolbar.js:238 -msgid "Offline. Sharing is unavailable" +#: js/turtledefs.js:621 +msgid "Show or hide a coordinate grid." msgstr "" -#: js/toolbar.js:59 -#: js/toolbar.js:119 -#: js/toolbar.js:184 -#: js/toolbar.js:239 -msgid "Auxiliary menu" +#: js/turtledefs.js:626 +#: js/turtles.js:902 +msgid "Clean" +msgstr "सफा गर्नुहोस्" + +#: js/turtledefs.js:627 +msgid "Clear the screen and return the mice to their initial positions." msgstr "" -#: js/toolbar.js:61 -#: js/toolbar.js:121 -#: js/toolbar.js:186 -#: js/toolbar.js:241 -msgid "Run slowly" +#: js/turtledefs.js:632 +#: js/turtles.js:955 +msgid "Collapse" msgstr "" -#: js/toolbar.js:62 -#: js/toolbar.js:122 -#: js/toolbar.js:187 -#: js/toolbar.js:242 -#: js/turtledefs.js:682 -msgid "Run step by step" -msgstr "चरणवद्धरुपमा चलाउनुहोस" +#: js/turtledefs.js:633 +msgid "Collapse the graphics window." +msgstr "" -#: js/toolbar.js:63 -#: js/toolbar.js:123 -#: js/toolbar.js:188 -#: js/toolbar.js:243 -#: js/turtledefs.js:689 -msgid "Display statistics" +#: js/turtledefs.js:638 +#: js/activity.js:5684 +msgid "Home" msgstr "" -#: js/toolbar.js:64 -#: js/toolbar.js:124 -#: js/toolbar.js:189 -#: js/toolbar.js:244 -msgid "Load plugin" +#: js/turtledefs.js:639 +msgid "Return all blocks to the center of the screen." msgstr "" -#: js/toolbar.js:65 -#: js/toolbar.js:125 -#: js/toolbar.js:190 -#: js/toolbar.js:245 -#: js/turtledefs.js:696 -msgid "Delete plugin" +#: js/turtledefs.js:644 +msgid "Show/hide blocks" +msgstr "खण्ड लुकाऊ/देखाऊ" + +#: js/turtledefs.js:645 +msgid "Hide or show the blocks and the palettes." +msgstr "" + +#: js/turtledefs.js:650 +msgid "Expand/collapse collapsable blocks" msgstr "" -#: js/toolbar.js:66 -#: js/toolbar.js:126 -#: js/toolbar.js:191 -#: js/toolbar.js:246 -msgid "Enable horizontal scrolling" +#: js/turtledefs.js:651 +msgid "Expand or collapse start and action stacks." msgstr "" -#: js/toolbar.js:67 -#: js/toolbar.js:127 -#: js/toolbar.js:192 -#: js/toolbar.js:247 -msgid "Disable horizontal scrolling" +#: js/turtledefs.js:658 +#: js/activity.js:5704 +msgid "Decrease block size" msgstr "" -#: js/toolbar.js:68 -#: js/toolbar.js:128 -#: js/toolbar.js:193 -#: js/toolbar.js:248 -#: js/LocalCard.js:54 -#: js/StringHelper.js:71 -msgid "Merge with current project" -msgstr "चालु परियोगनामा मिलाउनुहोस" +#: js/turtledefs.js:659 +msgid "Decrease the size of the blocks." +msgstr "" -#: js/toolbar.js:69 -#: js/toolbar.js:129 -msgid "Set Pitch Preview" +#: js/turtledefs.js:664 +#: js/activity.js:5710 +msgid "Increase block size" msgstr "" -#: js/toolbar.js:70 -#: js/toolbar.js:130 -#: js/toolbar.js:194 -#: js/toolbar.js:249 -msgid "Toggle JavaScript Editor" +#: js/turtledefs.js:665 +msgid "Increase the size of the blocks." msgstr "" -#: js/toolbar.js:71 -#: js/toolbar.js:131 -#: js/toolbar.js:195 -#: js/toolbar.js:250 -#: js/turtledefs.js:724 -msgid "Restore" +#: js/turtledefs.js:670 +msgid "Expand/collapse option toolbar" msgstr "" -#: js/toolbar.js:72 -#: js/toolbar.js:132 -#: js/toolbar.js:196 -#: js/toolbar.js:251 -msgid "Switch to beginner mode" +#: js/turtledefs.js:671 +msgid "Click this button to expand or collapse the auxillary toolbar." msgstr "" -#: js/toolbar.js:73 -#: js/toolbar.js:133 -#: js/toolbar.js:197 -#: js/toolbar.js:252 -msgid "Switch to advanced mode" +#: js/turtledefs.js:676 +msgid "Run slow" msgstr "" -#: js/toolbar.js:74 -#: js/toolbar.js:134 -#: js/toolbar.js:143 -#: js/toolbar.js:198 -#: js/toolbar.js:253 -#: js/turtledefs.js:738 -msgid "Select language" +#: js/turtledefs.js:677 +msgid "Click to run the project in slow mode." msgstr "" -#: js/toolbar.js:76 -#: js/toolbar.js:79 -#: js/toolbar.js:137 -#: js/turtledefs.js:579 -msgid "Save mouse artwork as PNG" +#: js/turtledefs.js:683 +msgid "Click to run the project step by step." msgstr "" -#: js/toolbar.js:78 -#: js/toolbar.js:136 -#: js/turtledefs.js:575 -msgid "Save mouse artwork as SVG" +#: js/turtledefs.js:690 +msgid "Display statistics about your Music project." msgstr "" -#: js/toolbar.js:80 -#: js/toolbar.js:138 -#: js/turtledefs.js:583 -msgid "Save music as WAV" +#: js/turtledefs.js:697 +msgid "Delete a selected plugin." msgstr "" -#: js/toolbar.js:81 -#: js/toolbar.js:139 -#: js/turtledefs.js:587 -msgid "Save sheet music as ABC" +#: js/turtledefs.js:704 +msgid "Enable scrolling" msgstr "" -#: js/toolbar.js:82 -#: js/toolbar.js:140 -#: js/turtledefs.js:591 -msgid "Save sheet music as Lilypond" +#: js/turtledefs.js:705 +msgid "You can scroll the blocks on the canvas." msgstr "" -#: js/toolbar.js:83 -msgid "Save sheet music as MusicXML" +#: js/turtledefs.js:714 +msgid "Wrap Turtle" msgstr "" -#: js/toolbar.js:84 -#: js/toolbar.js:141 -#: js/toolbar.js:149 -#: js/toolbar.js:204 -#: js/toolbar.js:259 -#: js/turtledefs.js:562 -#: js/turtledefs.js:595 -msgid "Save block artwork as SVG" +#: js/turtledefs.js:715 +msgid "Turn Turtle wrapping On or Off." msgstr "" -#: js/toolbar.js:85 -#: js/toolbar.js:142 -#: js/toolbar.js:150 -#: js/toolbar.js:205 -#: js/toolbar.js:260 -msgid "Confirm" +#: js/turtledefs.js:725 +msgid "Restore blocks from the trash." msgstr "" -#: js/toolbar.js:86 -#: js/toolbar.js:151 -#: js/toolbar.js:206 -#: js/toolbar.js:261 -msgid "English (United States)" +#: js/turtledefs.js:732 +msgid "Switch mode" msgstr "" -#: js/toolbar.js:87 -#: js/toolbar.js:152 -#: js/toolbar.js:207 -#: js/toolbar.js:262 -msgid "English (United Kingdom)" +#: js/turtledefs.js:733 +msgid "Switch between beginner and advance modes." msgstr "" -#: js/toolbar.js:88 -#: js/toolbar.js:153 -#: js/toolbar.js:208 -#: js/toolbar.js:263 -msgid "日本語" +#: js/turtledefs.js:739 +msgid "Select your language preference." msgstr "" -#: js/toolbar.js:89 -msgid "한국어" +#: js/turtledefs.js:745 +msgid "Keyboard shortcuts" msgstr "" -#: js/toolbar.js:90 -#: js/toolbar.js:155 -#: js/toolbar.js:210 -#: js/toolbar.js:265 -msgid "español" +#: js/turtledefs.js:746 +msgid "You can type d to create a do block and r to create a re block etc." msgstr "" -#: js/toolbar.js:91 -#: js/toolbar.js:156 -#: js/toolbar.js:211 -#: js/toolbar.js:266 -msgid "português" +#: js/turtledefs.js:753 +msgid "Show these messages." msgstr "" -#: js/toolbar.js:92 -#: js/toolbar.js:157 -#: js/toolbar.js:212 -#: js/toolbar.js:267 -msgid "にほんご" +#: js/turtledefs.js:759 +#: js/turtledefs.js:790 +#: js/widgets/help.js:335 +msgid "Guide" msgstr "" -#: js/toolbar.js:93 -#: js/toolbar.js:158 -#: js/toolbar.js:213 -#: js/toolbar.js:268 -msgid "中文" +#: js/turtledefs.js:760 +msgid "A detailed guide to Turtle Blocks is available." msgstr "" -#: js/toolbar.js:94 -#: js/toolbar.js:159 -#: js/toolbar.js:214 -#: js/toolbar.js:269 -msgid "ภาษาไทย" +#: js/turtledefs.js:764 +msgid "Turtle Blocks Guide" msgstr "" -#: js/toolbar.js:95 -#: js/toolbar.js:160 -#: js/toolbar.js:215 -#: js/toolbar.js:270 -msgid "aymara" +#: js/turtledefs.js:767 +#: js/turtledefs.js:798 +#: js/widgets/help.js:336 +msgid "About" msgstr "" -#: js/toolbar.js:96 -#: js/toolbar.js:161 -#: js/toolbar.js:216 -#: js/toolbar.js:271 -msgid "quechua" +#: js/turtledefs.js:768 +msgid "Turtle Blocks is an open source collection of tools for exploring musical concepts." msgstr "" -#: js/toolbar.js:97 -#: js/toolbar.js:162 -#: js/toolbar.js:217 -#: js/toolbar.js:272 -msgid "guarani" +#: js/turtledefs.js:770 +msgid "A full list of contributors can be found in the Turtle Blocks GitHub repository." msgstr "" -#: js/toolbar.js:98 -#: js/toolbar.js:163 -#: js/toolbar.js:218 -#: js/toolbar.js:273 -msgid "हिंदी" +#: js/turtledefs.js:772 +msgid "Turtle Blocks is licensed under the AGPL." msgstr "" -#: js/toolbar.js:99 -#: js/toolbar.js:165 -#: js/toolbar.js:219 -#: js/toolbar.js:275 -msgid "igbo" +#: js/turtledefs.js:780 +msgid "Turtle Blocks GitHub repository" msgstr "" -#: js/toolbar.js:100 -#: js/toolbar.js:166 -#: js/toolbar.js:220 -#: js/toolbar.js:276 -msgid "عربى" +#: js/turtledefs.js:783 +#: js/turtledefs.js:814 +#: js/widgets/help.js:337 +#: js/widgets/help.js:359 +msgid "Congratulations." msgstr "" -#: js/toolbar.js:101 -#: js/toolbar.js:164 -#: js/toolbar.js:221 -#: js/toolbar.js:274 -msgid "తెలుగు" +#: js/turtledefs.js:784 +msgid "You have finished the tour. Please enjoy Turtle Blocks!" msgstr "" -#: js/toolbar.js:102 -#: js/toolbar.js:167 -#: js/toolbar.js:222 -#: js/toolbar.js:277 -msgid "עִברִית" +#: js/turtledefs.js:791 +msgid "A detailed guide to Music Blocks is available." msgstr "" -#: js/toolbar.js:111 -#: js/toolbar.js:175 -#: js/toolbar.js:176 -#: js/toolbar.js:231 -msgid "Full Screen" +#: js/turtledefs.js:799 +msgid "Music Blocks is an open source collection of tools for exploring musical concepts." msgstr "" -#: js/toolbar.js:145 -#: js/toolbar.js:148 -#: js/toolbar.js:200 -#: js/toolbar.js:203 -#: js/toolbar.js:255 -#: js/toolbar.js:258 -#: js/turtledefs.js:558 -msgid "Save turtle artwork as PNG" +#: js/turtledefs.js:801 +msgid "A full list of contributors can be found in the Music Blocks GitHub repository." +msgstr "" + +#: js/turtledefs.js:803 +msgid "Music Blocks is licensed under the AGPL." msgstr "" -#: js/toolbar.js:147 -#: js/toolbar.js:202 -#: js/toolbar.js:257 -#: js/turtledefs.js:554 -msgid "Save turtle artwork as SVG" +#: js/turtledefs.js:811 +msgid "Music Blocks GitHub repository" msgstr "" -#: js/toolbar.js:154 -#: js/toolbar.js:209 -#: js/toolbar.js:264 -msgid "한국인" +#: js/turtledefs.js:815 +msgid "You have finished the tour. Please enjoy Music Blocks!" msgstr "" -#: js/toolbar.js:171 -#: js/toolbar.js:227 -msgid "About Turtle Blocks" +#: js/turtles.js:882 +msgid "Grid" msgstr "" -#: js/toolbar.js:429 -#: js/toolbar.js:440 -msgid "Turtle Wrap Off" +#: js/turtles.js:1024 +msgid "Expand" msgstr "" -#: js/toolbar.js:442 -msgid "Turtle Wrap On" +#: js/block-verbose.js:1616 +#: js/block-verbose.js:1735 +#: js/block.js:1580 +#: js/block.js:1699 +#: js/palette.js:605 +#: js/blocks/IntervalsBlocks.js:63 +#: js/blocks/WidgetBlocks.js:259 +msgid "temperament" msgstr "" -#: js/block.js:1470 +#: js/block-verbose.js:1630 +#: js/block.js:1594 msgid "matrix" msgstr "मेट्रिक्स" -#: js/block.js:1477 -#: js/WidgetBlocks.js:1226 +#: js/block-verbose.js:1637 +#: js/block.js:1601 +#: js/blocks/WidgetBlocks.js:1509 #: plugins/rodi.rtp:324 msgid "status" msgstr "स्थिति" -#: js/block.js:1484 +#: js/block-verbose.js:1644 +#: js/block.js:1608 msgid "drum mapper" msgstr "" -#: js/block.js:1491 +#: js/block-verbose.js:1651 +#: js/block.js:1615 msgid "ruler" msgstr "रुलर्र" -#: js/block.js:1498 -#: js/WidgetBlocks.js:327 +#: js/block-verbose.js:1658 +#: js/block.js:1622 +#: js/blocks/WidgetBlocks.js:397 #.TRANS: timbre is the character or quality of a musical sound msgid "timbre" msgstr "टेम्बर" -#: js/block.js:1505 +#: js/block-verbose.js:1665 +#: js/block.js:1629 msgid "stair" msgstr "चरण" -#: js/block.js:1512 -#: js/WidgetBlocks.js:577 +#: js/block-verbose.js:1672 +#: js/block.js:1636 +#: js/blocks/WidgetBlocks.js:707 #.TRANS: the speed at music is should be played. msgid "tempo" msgstr "वेग" -#: js/block.js:1519 -#: js/block.js:1582 -#: js/IntervalsBlocks.js:1268 +#: js/block-verbose.js:1679 +#: js/block-verbose.js:1742 +#: js/block.js:1643 +#: js/block.js:1706 +#: js/blocks/IntervalsBlocks.js:1464 #.TRANS: mode, e.g., Major in C Major msgid "mode" msgstr "शैली" -#: js/block.js:1526 +#: js/block-verbose.js:1686 +#: js/block.js:1650 msgid "slider" msgstr "स्लाइडर" -#: js/block.js:1533 -#: js/SensorsBlocks.js:1001 +#: js/block-verbose.js:1693 +#: js/block.js:1657 +#: js/blocks/SensorsBlocks.js:1001 msgid "keyboard" msgstr "कुञ्जीपाटी" -#: js/block.js:1547 -#: js/WidgetBlocks.js:957 -#: js/WidgetBlocks.js:988 +#: js/block-verbose.js:1707 +#: js/block.js:1671 +#: js/blocks/WidgetBlocks.js:1190 +#: js/blocks/WidgetBlocks.js:1228 #.TRANS: widget for subdividing a measure into distinct rhythmic elements msgid "rhythm maker" msgstr "" -#: js/block.js:1554 -#: js/block.js:2182 -#: js/block.js:2236 -#: js/RhythmBlockPaletteBlocks.js:70 -#: js/RhythmBlockPaletteBlocks.js:251 -#: js/RhythmBlockPaletteBlocks.js:484 -#: js/RhythmBlockPaletteBlocks.js:553 -#: js/RhythmBlockPaletteBlocks.js:604 -#: js/RhythmBlockPaletteBlocks.js:874 -#: js/RhythmBlocks.js:33 -#: js/RhythmBlocks.js:356 -#: js/RhythmBlocks.js:766 -#: js/RhythmBlocks.js:806 -#: js/OrnamentBlocks.js:220 -#: js/OrnamentBlocks.js:312 -#: js/MeterBlocks.js:1367 -#: js/DictActions.js:85 -#: js/phrasemaker.js:731 -#: js/phrasemaker.js:2393 -#: js/phrasemaker.js:2436 -#: js/phrasemaker.js:2534 +#: js/block-verbose.js:1714 +#: js/block-verbose.js:2457 +#: js/block-verbose.js:2514 +#: js/block.js:1678 +#: js/block.js:2385 +#: js/block.js:2442 +#: js/blocks/MeterBlocks.js:1367 +#: js/blocks/OrnamentBlocks.js:220 +#: js/blocks/OrnamentBlocks.js:312 +#: js/blocks/RhythmBlocks.js:33 +#: js/blocks/RhythmBlocks.js:356 +#: js/blocks/RhythmBlocks.js:766 +#: js/blocks/RhythmBlocks.js:806 +#: js/blocks/RhythmBlockPaletteBlocks.js:70 +#: js/blocks/RhythmBlockPaletteBlocks.js:252 +#: js/blocks/RhythmBlockPaletteBlocks.js:485 +#: js/blocks/RhythmBlockPaletteBlocks.js:554 +#: js/blocks/RhythmBlockPaletteBlocks.js:605 +#: js/blocks/RhythmBlockPaletteBlocks.js:875 +#: js/turtleactions/DictActions.js:85 +#: js/widgets/phrasemaker.js:942 +#: js/widgets/phrasemaker.js:2656 +#: js/widgets/phrasemaker.js:2699 +#: js/widgets/phrasemaker.js:2810 #.TRANS: the value (e.g., 1/4 note) of the note being played. msgid "note value" msgstr "" -#: js/block.js:1561 -#: js/block.js:2110 -#: js/block.js:2133 -#: js/IntervalsBlocks.js:875 -#: js/OrnamentBlocks.js:312 +#: js/block-verbose.js:1721 +#: js/block-verbose.js:2382 +#: js/block-verbose.js:2405 +#: js/block.js:1685 +#: js/block.js:2310 +#: js/block.js:2333 +#: js/blocks/IntervalsBlocks.js:1071 +#: js/blocks/OrnamentBlocks.js:312 #.TRANS: calculate a relative step between notes based on semi-tones msgid "scalar interval" msgstr "" -#: js/block.js:1568 -#: js/RhythmBlocks.js:148 +#: js/block-verbose.js:1728 +#: js/block.js:1692 +#: js/blocks/RhythmBlocks.js:148 msgid "milliseconds" msgstr "" -#: js/block.js:2180 -#: js/block.js:2184 -#: js/block.js:2234 -#: js/block.js:2345 -#: js/ProgramBlocks.js:1273 -#: js/RhythmBlocks.js:712 -#: js/rhythmruler.js:834 -#: js/rhythmruler.js:961 +#: js/block-verbose.js:2455 +#: js/block-verbose.js:2459 +#: js/block-verbose.js:2512 +#: js/block-verbose.js:2628 +#: js/block.js:2383 +#: js/block.js:2387 +#: js/block.js:2440 +#: js/block.js:2556 +#: js/blocks/RhythmBlocks.js:712 +#: js/blocks/ProgramBlocks.js:1273 +#: js/widgets/rhythmruler.js:1183 +#: js/widgets/rhythmruler.js:1329 msgid "silence" msgstr "" -#: js/block.js:2265 -#: js/block.js:3134 -#: js/block.js:3151 -#: js/activity.js:2336 -#: js/activity.js:2387 -#: js/musicutils.js:2932 -#: js/musicutils.js:4287 +#: js/block-verbose.js:2548 +#: js/block-verbose.js:3492 +#: js/block-verbose.js:3509 +#: js/activity.js:2718 +#: js/activity.js:2769 +#: js/block.js:2476 +#: js/block.js:3416 +#: js/block.js:3433 +#: js/utils/musicutils.js:3780 +#: js/utils/musicutils.js:5273 +#.TRANS: the note names must be separated by single spaces #.TRANS: the note names must be separated by single spaces #.TRANS: the note names must be separated by single spaces msgid "ti la sol fa mi re do" msgstr "ति ला सोल फा मि रे दो" -#: js/block.js:2333 +#: js/block-verbose.js:2616 +#: js/block.js:2544 +#.TRANS: scalar step #.TRANS: scalar step msgid "down" msgstr "" -#: js/block.js:2334 +#: js/block-verbose.js:2617 +#: js/block.js:2545 msgid "up" msgstr "" -#: js/block.js:3477 -#: js/block.js:3490 -#: js/ExtrasBlocks.js:612 +#: js/block-verbose.js:3026 +#: js/block.js:2950 +msgid "Silence block cannot be removed." +msgstr "" + +#: js/block-verbose.js:3824 +#: js/block.js:3748 +#: js/blocks.js:2607 +#: js/blocks.js:3218 +#: js/palette.js:618 +#: js/blocks/BooleanBlocks.js:77 +#: js/blocks/BooleanBlocks.js:167 +#: js/blocks/BooleanBlocks.js:251 +#: js/blocks/BooleanBlocks.js:335 +#: js/blocks/BooleanBlocks.js:433 +#: js/blocks/BooleanBlocks.js:539 +#: js/blocks/BooleanBlocks.js:640 +#: js/blocks/BooleanBlocks.js:741 +#: js/blocks/BooleanBlocks.js:847 +#: js/blocks/BooleanBlocks.js:948 +#: js/blocks/BooleanBlocks.js:1033 +#: js/blocks/SensorsBlocks.js:910 +msgid "true" +msgstr "सही" + +#: js/block-verbose.js:3824 +#: js/block.js:3748 +#: js/blocks.js:2609 +#: js/blocks.js:3220 +#: js/blocks/BooleanBlocks.js:79 +#: js/blocks/BooleanBlocks.js:169 +#: js/blocks/BooleanBlocks.js:253 +#: js/blocks/BooleanBlocks.js:337 +#: js/blocks/BooleanBlocks.js:435 +#: js/blocks/BooleanBlocks.js:541 +#: js/blocks/BooleanBlocks.js:642 +#: js/blocks/BooleanBlocks.js:743 +#: js/blocks/BooleanBlocks.js:849 +#: js/blocks/BooleanBlocks.js:950 +#: js/blocks/SensorsBlocks.js:912 +msgid "false" +msgstr "गलत" + +#: js/block-verbose.js:3835 +#: js/block-verbose.js:3848 +#: js/block.js:3759 +#: js/block.js:3772 +#: js/blocks/ExtrasBlocks.js:615 msgid "Cartesian" msgstr "कार्टेसन" -#: js/block.js:3478 -#: js/block.js:3491 -#: js/ExtrasBlocks.js:616 +#: js/block-verbose.js:3836 +#: js/block-verbose.js:3849 +#: js/block.js:3760 +#: js/block.js:3773 +#: js/blocks/ExtrasBlocks.js:619 msgid "polar" msgstr "" -#: js/block.js:3479 -#: js/block.js:3492 -#: js/ExtrasBlocks.js:620 +#: js/block-verbose.js:3837 +#: js/block-verbose.js:3850 +#: js/block.js:3761 +#: js/block.js:3774 +#: js/blocks/ExtrasBlocks.js:623 msgid "Cartesian+polar" msgstr "" -#: js/block.js:3480 -#: js/block.js:3499 -#: js/ExtrasBlocks.js:649 +#: js/block-verbose.js:3838 +#: js/block-verbose.js:3857 +#: js/block.js:3762 +#: js/block.js:3781 +#: js/blocks/ExtrasBlocks.js:652 msgid "none" msgstr "" -#: js/block.js:3493 -#: js/ExtrasBlocks.js:625 +#: js/block-verbose.js:3851 +#: js/block.js:3775 +#: js/blocks/ExtrasBlocks.js:628 msgid "treble" msgstr "" -#: js/block.js:3494 -#: js/ExtrasBlocks.js:629 +#: js/block-verbose.js:3852 +#: js/block.js:3776 +#: js/blocks/ExtrasBlocks.js:632 msgid "grand staff" msgstr "" -#: js/block.js:3495 -#: js/ExtrasBlocks.js:633 +#: js/block-verbose.js:3853 +#: js/block.js:3777 +#: js/blocks/ExtrasBlocks.js:636 msgid "mezzo-soprano" msgstr "" -#: js/block.js:3496 -#: js/ExtrasBlocks.js:637 +#: js/block-verbose.js:3854 +#: js/block.js:3778 +#: js/blocks/ExtrasBlocks.js:640 msgid "alto" msgstr "" -#: js/block.js:3497 -#: js/ExtrasBlocks.js:641 +#: js/block-verbose.js:3855 +#: js/block.js:3779 +#: js/blocks/ExtrasBlocks.js:644 msgid "tenor" msgstr "" -#: js/block.js:3498 -#: js/ExtrasBlocks.js:645 -#: js/musicutils.js:736 -#: js/synthutils.js:64 +#: js/block-verbose.js:3856 +#: js/block.js:3780 +#: js/utils/musicutils.js:1115 +#: js/utils/synthutils.js:80 +#: js/blocks/ExtrasBlocks.js:648 #.TRANS: musical instrument msgid "bass" msgstr "" -#: js/block.js:4075 +#: js/block-verbose.js:3901 +#: js/block.js:3825 +#: js/blocks.js:2600 +#: js/blocks.js:3211 +msgid "on2" +msgstr "" + +#: js/block-verbose.js:3903 +#: js/block.js:3827 +#: js/blocks.js:2602 +#: js/blocks.js:3213 +msgid "off" +msgstr "" + +#: js/block-verbose.js:4470 +#: js/block.js:4394 msgid "Not a number" msgstr "" -#: js/block.js:4082 +#: js/block-verbose.js:4477 +#: js/block.js:4401 msgid "Octave value must be between 1 and 10." msgstr "" -#: js/block.js:4090 +#: js/block-verbose.js:4485 +#: js/block.js:4409 msgid "Numbers can have at most 10 digits." msgstr "" -#: js/notation.js:353 -msgid "Lilypond cannot process pickup of " +#: js/activity.js:390 +#: js/activity.js:395 +msgid "Search for blocks" msgstr "" -#: js/turtledefs.js:40 -#.TRANS: put the URL to the guide here, e.g., https://github.com/sugarlabs/turtleblocksjs/tree/master/guide/README.md -msgid "guide url" +#: js/activity.js:1413 +msgid "Refresh your browser to change to advanced mode." msgstr "" -#: js/turtledefs.js:85 -#: js/turtledefs.js:437 -msgid "Turtle Blocks is a Logo-inspired turtle that draws colorful pictures with snap-together visual-programming blocks." +#: js/activity.js:1418 +msgid "Refresh your browser to change to beginner mode." msgstr "" -#: js/turtledefs.js:118 -#: js/turtledefs.js:220 -msgid "search" +#: js/activity.js:1477 +msgid "Catching mice" msgstr "" -#: js/turtledefs.js:120 -#: js/turtledefs.js:222 -#: js/WidgetBlocks.js:437 -#: js/MeterBlocks.js:1343 -#.TRANS: musical meter (time signature), e.g., 4:4 -msgid "meter" +#: js/activity.js:1478 +msgid "Cleaning the instruments" msgstr "" -#: js/turtledefs.js:122 -#: js/turtledefs.js:224 -msgid "intervals" +#: js/activity.js:1479 +msgid "Testing key pieces" msgstr "" -#: js/turtledefs.js:124 -#: js/turtledefs.js:226 -msgid "ornament" +#: js/activity.js:1480 +msgid "Sight-reading" msgstr "" -#: js/turtledefs.js:125 -#: js/turtledefs.js:227 -#: js/VolumeBlocks.js:362 -#: js/VolumeBlocks.js:502 -#: js/VolumeBlocks.js:545 -msgid "volume" +#: js/activity.js:1481 +msgid "Combining math and music" msgstr "" -#: js/turtledefs.js:129 -#: js/turtledefs.js:231 -msgid "boxes" +#: js/activity.js:1482 +msgid "Generating more blocks" msgstr "" -#: js/turtledefs.js:130 -#: js/turtledefs.js:232 -msgid "widgets" +#: js/activity.js:1483 +msgid "Do Re Mi Fa Sol La Ti Do" msgstr "" -#: js/turtledefs.js:131 -#: js/turtledefs.js:233 -#: js/phrasemaker.js:824 -msgid "graphics" +#: js/activity.js:1484 +msgid "Tuning string instruments" msgstr "" -#: js/turtledefs.js:134 -#: js/turtledefs.js:236 -msgid "boolean" +#: js/activity.js:1485 +msgid "Pressing random keys" msgstr "" -#: js/turtledefs.js:137 -#: js/turtledefs.js:239 -#: js/HeapBlocks.js:59 -#: js/status.js:147 -msgid "heap" +#: js/activity.js:1663 +msgid "plugins will be removed upon restart." +msgstr "" + +#: js/activity.js:1672 +msgid "show Cartesian" +msgstr "" + +#: js/activity.js:2211 +#: js/palette.js:589 +#: js/blocks/RhythmBlocks.js:923 +#: js/blocks/PitchBlocks.js:442 +#: js/blocks/PitchBlocks.js:1786 +#.TRANS: a numeric mapping of the notes in an octave based on the musical mode +msgid "scale degree" +msgstr "" + +#: js/activity.js:2214 +#: js/palette.js:598 +msgid "voice name" +msgstr "" + +#: js/activity.js:2217 +#: js/palette.js:595 +msgid "invert mode" +msgstr "" + +#: js/activity.js:2220 +msgid "output tools" +msgstr "" + +#: js/activity.js:2223 +msgid "custom note" +msgstr "" + +#: js/activity.js:2226 +msgid "accidental name" +msgstr "" + +#: js/activity.js:2229 +#: js/blocks/PitchBlocks.js:855 +msgid "east indian solfege" +msgstr "" + +#: js/activity.js:2232 +#: js/blocks/PitchBlocks.js:869 +msgid "note name" +msgstr "" + +#: js/activity.js:2235 +#: js/blocks/IntervalsBlocks.js:94 +msgid "temperament name" +msgstr "" + +#: js/activity.js:2238 +#: js/palette.js:592 +msgid "mode name" +msgstr "" + +#: js/activity.js:2241 +msgid "chord name" +msgstr "" + +#: js/activity.js:2244 +#: js/palette.js:615 +msgid "interval name" +msgstr "" + +#: js/activity.js:2247 +msgid "filter type" +msgstr "" + +#: js/activity.js:2250 +msgid "oscillator type" +msgstr "" + +#: js/activity.js:2253 +#: js/blocks.js:2479 +#: js/blocks.js:2487 +msgid "audio file" +msgstr "" + +#: js/activity.js:2256 +#: js/blocks/DrumBlocks.js:32 +msgid "noise name" +msgstr "" + +#: js/activity.js:2259 +#: js/blocks/DrumBlocks.js:75 +msgid "drum name" +msgstr "" + +#: js/activity.js:2262 +#: js/blocks/DrumBlocks.js:119 +msgid "effects name" +msgstr "" + +#: js/activity.js:2265 +msgid "wrap mode" +msgstr "" + +#: js/activity.js:2268 +msgid "load file" +msgstr "" + +#: js/activity.js:2435 +#: js/activity.js:5851 +msgid "This block is deprecated." +msgstr "यो ब्लक हटाइएको छ।" + +#: js/activity.js:2437 +#: js/activity.js:5853 +msgid "Block cannot be found." +msgstr "ब्लक भेटाउन सकिएन।" + +#: js/activity.js:2645 +msgid "Saving block artwork" +msgstr "" + +#: js/activity.js:2656 +msgid "Erase" +msgstr "" + +#: js/activity.js:2683 +#: js/activity.js:2705 +msgid "Paste" +msgstr "प्रतिलिपी सार" + +#: js/activity.js:2687 +msgid "Save block help" +msgstr "" + +#: js/activity.js:2772 +msgid "Jumping to the bottom of the page." +msgstr "" + +#: js/activity.js:2778 +msgid "Scrolling up." +msgstr "" + +#: js/activity.js:2783 +msgid "Scrolling down." +msgstr "" + +#: js/activity.js:2788 +msgid "Extracting block" +msgstr "" + +#: js/activity.js:2796 +msgid "Moving block up." +msgstr "" + +#: js/activity.js:2817 +msgid "Moving block down." +msgstr "" + +#: js/activity.js:2838 +msgid "Moving block left." +msgstr "" + +#: js/activity.js:2855 +msgid "Moving block right." +msgstr "" + +#: js/activity.js:2870 +msgid "Jump to home position." +msgstr "" + +#: js/activity.js:2897 +msgid "Hide blocks" +msgstr "" + +#: js/activity.js:4500 +msgid "Click the run button to run the project." +msgstr "" + +#: js/activity.js:5692 +msgid "Show/hide block" +msgstr "" + +#: js/activity.js:5698 +msgid "Expand/collapse blocks" +msgstr "" + +#: js/activity.js:5976 +msgid "Could not parse JSON input." +msgstr "" + +#: js/activity.js:6475 +#: js/activity.js:6580 +#: js/activity.js:6631 +msgid "Cannot load project from the file. Please check the file type." +msgstr "फाइलबाट परियोजना भर्न/लोडगर्न सकिएन। कृपया फाइलको प्रकार जाँच गर्नुहोस।" + +#: js/activity.js:6917 +msgid "Invalid parameters" +msgstr "" + +#: js/blocks.js:1212 +#: js/blocks.js:3444 +#: js/blocks.js:3834 +#: js/blocks.js:3865 +#: js/blocks.js:3914 +#: js/blocks.js:3949 +#: js/blocks.js:6586 +#: js/palette.js:509 +#: js/palette.js:638 +#: js/palette.js:1105 +#: js/blocks/BoxesBlocks.js:282 +#: js/blocks/BoxesBlocks.js:285 +#: js/blocks/BoxesBlocks.js:405 +#: js/blocks/BoxesBlocks.js:594 +msgid "box" +msgstr "बाकस" + +#: js/blocks.js:1713 +msgid "Consider breaking this stack into parts." +msgstr "" + +#: js/blocks.js:2472 +#: js/palette.js:653 +#: js/blocks/MediaBlocks.js:602 +msgid "open file" +msgstr "" + +#: js/blocks.js:3247 +#: js/palette.js:574 +#: js/blocks/MediaBlocks.js:892 +#: js/blocks/MediaBlocks.js:963 +msgid "text" +msgstr "पाठ" + +#: js/blocks.js:3443 +#: js/palette.js:641 +#: js/palette.js:642 +#: js/blocks/BoxesBlocks.js:514 +msgid "store in box" +msgstr "" + +#: js/blocks.js:3448 +#: js/blocks.js:3888 +#: js/blocks.js:3923 +#: js/blocks.js:3958 +#: js/blocks.js:5862 +#: js/blocks.js:5883 +#: js/blocks/BoxesBlocks.js:772 +msgid "box1" msgstr "" -#: js/turtledefs.js:138 -#: js/turtledefs.js:240 -#: js/ProgramBlocks.js:495 -#: js/DictBlocks.js:142 -msgid "dictionary" +#: js/blocks.js:3450 +#: js/blocks.js:3890 +#: js/blocks.js:3925 +#: js/blocks.js:3960 +#: js/blocks.js:5864 +#: js/blocks.js:5885 +#: js/blocks/BoxesBlocks.js:663 +msgid "box2" msgstr "" -#: js/turtledefs.js:139 -#: js/turtledefs.js:241 -msgid "ensemble" +#: js/blocks.js:4122 +#: js/palette.js:639 +#: js/palette.js:644 +#: js/palette.js:1041 +#: js/blocks/BoxesBlocks.js:591 +msgid "store in" +msgstr "स्टोर गर्नुहोस्" + +#: js/blocks.js:4122 +#: js/blocks/BoxesBlocks.js:595 +#: js/blocks/DictBlocks.js:215 +#: js/blocks/DictBlocks.js:289 +#: js/blocks/EnsembleBlocks.js:391 +#: js/blocks/EnsembleBlocks.js:402 +#: js/blocks/MediaBlocks.js:746 +#: js/blocks/PitchBlocks.js:656 +#: js/blocks/PitchBlocks.js:934 +#: js/blocks/PitchBlocks.js:1866 +#: js/blocks/ProgramBlocks.js:390 +#: js/blocks/ProgramBlocks.js:495 +#: js/blocks/ProgramBlocks.js:658 +#: js/blocks/ToneBlocks.js:1025 +msgid "name" msgstr "" -#: js/turtledefs.js:140 -#: js/turtledefs.js:242 -msgid "extras" -msgstr "अधिक" +#: js/blocks.js:4122 +#: js/blocks/BoxesBlocks.js:75 +#: js/blocks/BoxesBlocks.js:595 +#: js/blocks/DictBlocks.js:289 +#: js/blocks/DictBlocks.js:430 +#: js/blocks/HeapBlocks.js:544 +#: js/blocks/RhythmBlocks.js:1130 +msgid "value" +msgstr "मान" -#: js/turtledefs.js:142 -#: js/turtledefs.js:244 -#.TRANS: program as in computer program -#.TRANS: program as in computer program -msgid "program" +#: js/blocks.js:4465 +msgid "Forever loop detected inside a note value block. Unexpected things may happen." msgstr "" -#: js/turtledefs.js:143 -#: js/turtledefs.js:245 -msgid "my blocks" +#: js/blocks.js:4988 +msgid "There is no block selected." msgstr "" -#: js/turtledefs.js:185 -#: js/turtledefs.js:281 -msgid "artwork" +#: js/blocks.js:5091 +#: js/blocks/MediaBlocks.js:888 +msgid "show" +msgstr "देखाउ" + +#: js/blocks.js:5094 +#: js/blocks/MediaBlocks.js:803 +#.TRANS: Avatar is the image used to determine the appearance of the mouse. +msgid "avatar" msgstr "" -#: js/turtledefs.js:185 -#: js/turtledefs.js:281 -msgid "logic" +#: js/blocks.js:5097 +#: js/blocks/ToneBlocks.js:1010 +#: js/widgets/sampler.js:975 +#.TRANS: The sound sample that the user uploads. +msgid "sample" msgstr "" -#: js/turtledefs.js:185 -#: js/turtledefs.js:281 -msgid "music" +#: js/lilypond.js:606 +msgid "brown rat" msgstr "" -#: js/turtledefs.js:187 -#: js/turtledefs.js:463 -msgid "Music Blocks is a collection of tools for exploring fundamental musical concepts in a fun way." +#: js/lilypond.js:607 +msgid "mole" msgstr "" -#: js/turtledefs.js:436 -msgid "Welcome to Turtle Blocks" +#: js/lilypond.js:608 +msgid "chipmunk" msgstr "" -#: js/turtledefs.js:438 -#: js/turtledefs.js:465 -#: js/turtledefs.js:774 -#: js/turtledefs.js:805 -msgid "The current version is" +#: js/lilypond.js:609 +msgid "red squirrel" msgstr "" -#: js/turtledefs.js:446 -#: js/turtledefs.js:483 -msgid "Click the run button to run the project in fast mode." +#: js/lilypond.js:610 +msgid "guinea pig" msgstr "" -#: js/turtledefs.js:452 -msgid "Stop the turtle." +#: js/lilypond.js:611 +msgid "capybara" msgstr "" -#: js/turtledefs.js:454 -#: js/turtledefs.js:491 -msgid "You can also type Alt-S to stop." +#: js/lilypond.js:612 +msgid "coypu" msgstr "" -#: js/turtledefs.js:462 -#: js/help.js:333 -msgid "Welcome to Music Blocks" +#: js/lilypond.js:613 +msgid "black rat" msgstr "" -#: js/turtledefs.js:472 -#: js/help.js:334 -msgid "Meet Mr. Mouse!" +#: js/lilypond.js:614 +msgid "grey squirrel" msgstr "" -#: js/turtledefs.js:473 -msgid "Mr Mouse is our Music Blocks conductor." +#: js/lilypond.js:615 +msgid "flying squirrel" msgstr "" -#: js/turtledefs.js:475 -msgid "Mr Mouse encourages you to explore Music Blocks." +#: js/lilypond.js:616 +msgid "bat" msgstr "" -#: js/turtledefs.js:477 -msgid "Let us start our tour!" +#: js/lilypond.js:749 +#: js/lilypond.js:913 +#: js/lilypond.js:951 +#: js/blocks/ActionBlocks.js:1256 +#: js/blocks/ExtrasBlocks.js:556 +msgid "start drum" msgstr "" -#: js/turtledefs.js:489 -msgid "Stop the music (and the mice)." +#: js/logo.js:61 +msgid "Not a valid pitch name" msgstr "" -#: js/turtledefs.js:499 -msgid "Record your project as video." +#: js/logo.js:507 +#: js/blocks/ProgramBlocks.js:258 +#: js/blocks/ProgramBlocks.js:427 +msgid "You must select a file." msgstr "" -#: js/turtledefs.js:505 -msgid "Toggle Fullscreen mode." +#: js/logo.js:1696 +msgid "Playback is ready." msgstr "" -#: js/turtledefs.js:511 -msgid "Initialize a new project." +#: js/macros.js:711 +#: js/utils/musicutils.js:1162 +#: js/utils/synthutils.js:202 +#.TRANS: animal sound effect +msgid "duck" msgstr "" -#: js/turtledefs.js:517 -msgid "You can also load projects from the file system." +#: js/notation.js:353 +msgid "Lilypond cannot process pickup of " msgstr "" -#: js/turtledefs.js:522 -#: js/StringHelper.js:46 -msgid "Delete" -msgstr "मेटाउनुस" +#: js/palette.js:571 +msgid "grid" +msgstr "" -#: js/turtledefs.js:523 -msgid "To delete a block, just right-click on it, then you will be able to see the delete option" +#: js/palette.js:580 +msgid "effect" msgstr "" -#: js/turtledefs.js:528 -#: js/activity.js:2270 -#: js/LocalCard.js:31 -msgid "Copy" -msgstr "प्रतिलिपी बनाऊ" +#: js/palette.js:586 +msgid "sargam" +msgstr "" -#: js/turtledefs.js:529 -msgid "To copy a block, just right-click on it, then you will be able to see the copy option" +#: js/palette.js:601 +#: js/blocks/PitchBlocks.js:1209 +msgid "custom pitch" msgstr "" -#: js/turtledefs.js:535 -msgid "To extract a block, just right-click on it, then you will be able to see the extract option" +#: js/palette.js:609 +msgid "accidental" msgstr "" -#: js/turtledefs.js:542 -#: js/turtledefs.js:552 -#: js/turtledefs.js:573 -msgid "Save your project to a file." +#: js/palette.js:633 +#: js/blocks/PitchBlocks.js:405 +msgid "pitch converter" msgstr "" -#: js/turtledefs.js:549 -#: js/turtledefs.js:570 -msgid "save" +#: js/piemenus.js:200 +#: js/utils/musicutils.js:1187 +#: js/utils/musicutils.js:1207 +#: js/widgets/musickeyboard.js:2341 +#: js/widgets/phrasemaker.js:1908 +#: js/widgets/sampler.js:810 +#.TRANS: double sharp is a music term related to pitch +msgid "double sharp" msgstr "" -#: js/turtledefs.js:556 -#: js/turtledefs.js:577 -msgid "Save graphics from your project to as SVG." +#: js/piemenus.js:201 +#: js/utils/musicutils.js:1185 +#: js/utils/musicutils.js:1208 +#: js/blocks/PitchBlocks.js:1539 +#: js/turtleactions/PitchActions.js:323 +#: js/widgets/musickeyboard.js:2342 +#: js/widgets/phrasemaker.js:1909 +#: js/widgets/sampler.js:811 +#.TRANS: sharp is a music term related to pitch +#.TRANS: sharp is a half-step up in pitch +msgid "sharp" msgstr "" -#: js/turtledefs.js:560 -#: js/turtledefs.js:581 -msgid "Save graphics from your project as PNG." +#: js/piemenus.js:202 +#: js/utils/musicutils.js:1183 +#: js/utils/musicutils.js:1209 +#: js/widgets/musickeyboard.js:2343 +#: js/widgets/phrasemaker.js:1910 +#: js/widgets/sampler.js:812 +#.TRANS: natural is a music term related to pitch +msgid "natural" msgstr "" -#: js/turtledefs.js:564 -#: js/turtledefs.js:597 -msgid "Save block artwork as an SVG file." +#: js/piemenus.js:203 +#: js/utils/musicutils.js:1181 +#: js/utils/musicutils.js:1210 +#: js/blocks/PitchBlocks.js:1498 +#: js/turtleactions/PitchActions.js:326 +#: js/widgets/musickeyboard.js:2344 +#: js/widgets/phrasemaker.js:1911 +#: js/widgets/sampler.js:813 +#.TRANS: flat is a music term related to pitch +#.TRANS: flat is a half-step down in pitch +msgid "flat" msgstr "" -#: js/turtledefs.js:585 -msgid "Save audio from your project as WAV." +#: js/piemenus.js:204 +#: js/utils/musicutils.js:1179 +#: js/utils/musicutils.js:1211 +#: js/widgets/musickeyboard.js:2345 +#: js/widgets/phrasemaker.js:1912 +#: js/widgets/sampler.js:814 +#.TRANS: double flat is a music term related to pitch +msgid "double flat" msgstr "" -#: js/turtledefs.js:589 -msgid "Save your project to as an ABC file." +#: js/piemenus.js:2864 +#: js/utils/musicutils.js:1006 +#: js/blocks/PitchBlocks.js:1385 +#.TRANS: unison is a music term related to intervals +#.TRANS: unison means the note is the same as the current note +msgid "unison" msgstr "" -#: js/turtledefs.js:593 -msgid "Save your project to as a Lilypond file." +#: js/piemenus.js:3018 +#: js/piemenus.js:3091 +#: js/utils/musicutils.js:1014 +#: js/utils/musicutils.js:1189 +#: js/utils/musicutils.js:1326 +#.TRANS: major is a music term related to intervals and mode +msgid "major" msgstr "" -#: js/turtledefs.js:604 -msgid "Load samples from server" +#: js/piemenus.js:3018 +#: js/piemenus.js:3091 +#: js/utils/musicutils.js:1032 +#.TRANS: modal scale for music +msgid "ionian" msgstr "" -#: js/turtledefs.js:605 -msgid "This button opens a viewer for loading example projects." +#: js/piemenus.js:3020 +#: js/piemenus.js:3095 +#: js/utils/musicutils.js:1012 +#: js/utils/musicutils.js:1190 +#: js/utils/musicutils.js:1323 +#.TRANS: minor is a music term related to intervals and mode +msgid "minor" msgstr "" -#: js/turtledefs.js:611 -msgid "Palette buttons" +#: js/piemenus.js:3020 +#: js/piemenus.js:3095 +#: js/utils/musicutils.js:1042 +#.TRANS: modal scale for music +msgid "aeolian" msgstr "" -#: js/turtledefs.js:612 -msgid "This toolbar contains the palette buttons including Rhythm Pitch Tone Action and more." +#: js/piemenus.js:3410 +msgid "Duplicate" msgstr "" -#: js/turtledefs.js:614 -msgid "Click to show the palettes of blocks and drag blocks from the palettes onto the canvas to use them." +#: js/piemenus.js:3412 +msgid "Move to trash" msgstr "" -#: js/turtledefs.js:620 -msgid "Cartesian/Polar" +#: js/piemenus.js:3413 +#: js/widgets/timbre.js:968 +#: planet/js/StringHelper.js:69 +msgid "Close" +msgstr "बन्दगर्नुहोस" + +#: js/piemenus.js:3419 +msgid "Save stack" +msgstr "स्टक सेभ गर" + +#: js/piemenus.js:3449 +msgid "In order to copy a sample, you must reload the widget, import the sample again, and export it." msgstr "" -#: js/turtledefs.js:621 -msgid "Show or hide a coordinate grid." +#: js/piemenus.js:3812 +msgid "You have chosen key " msgstr "" -#: js/turtledefs.js:627 -msgid "Clear the screen and return the mice to their initial positions." +#: js/piemenus.js:3816 +msgid " for your pitch preview." msgstr "" -#: js/turtledefs.js:633 -msgid "Collapse the graphics window." +#: js/turtle-singer.js:1363 +#.TRANS: partials are weighted components in a harmonic series +msgid "You must have at least one Partial block inside of a Weighted-partial block" msgstr "" -#: js/turtledefs.js:638 -#: js/activity.js:4256 -#: js/activity.js:4256 -msgid "Home" +#: js/turtle-singer.js:2077 +msgid "synth cannot play chords." msgstr "" -#: js/turtledefs.js:639 -msgid "Return all blocks to the center of the screen." +#: js/utils/musicutils.js:505 +#: js/utils/musicutils.js:645 +#: js/widgets/pitchdrummatrix.js:228 +#: js/widgets/musickeyboard.js:2885 +msgid "rest" +msgstr "बाँकी" + +#: js/utils/musicutils.js:689 +msgid "Perfect unison" msgstr "" -#: js/turtledefs.js:644 -msgid "Show/hide blocks" -msgstr "खण्ड लुकाऊ/देखाऊ" +#: js/utils/musicutils.js:689 +msgid "Diminished second" +msgstr "" -#: js/turtledefs.js:645 -msgid "Hide or show the blocks and the palettes." +#: js/utils/musicutils.js:690 +msgid "Minor second" msgstr "" -#: js/turtledefs.js:650 -msgid "Expand/collapse collapsable blocks" +#: js/utils/musicutils.js:690 +msgid "Augmented unison" msgstr "" -#: js/turtledefs.js:651 -msgid "Expand or collapse start and action stacks." +#: js/utils/musicutils.js:691 +msgid "Major second" msgstr "" -#: js/turtledefs.js:658 -#: js/activity.js:4265 -msgid "Decrease block size" +#: js/utils/musicutils.js:691 +msgid "Diminished third" msgstr "" -#: js/turtledefs.js:659 -msgid "Decrease the size of the blocks." +#: js/utils/musicutils.js:692 +msgid "Minor third" msgstr "" -#: js/turtledefs.js:664 -#: js/activity.js:4267 -msgid "Increase block size" +#: js/utils/musicutils.js:692 +msgid "Augmented second" msgstr "" -#: js/turtledefs.js:665 -msgid "Increase the size of the blocks." +#: js/utils/musicutils.js:693 +msgid "Major third" msgstr "" -#: js/turtledefs.js:670 -msgid "Expand/collapse option toolbar" +#: js/utils/musicutils.js:693 +msgid "Diminished fourth" msgstr "" -#: js/turtledefs.js:671 -msgid "Click this button to expand or collapse the auxillary toolbar." +#: js/utils/musicutils.js:694 +msgid "Perfect fourth" msgstr "" -#: js/turtledefs.js:676 -msgid "Run slow" +#: js/utils/musicutils.js:694 +msgid "Augmented third" msgstr "" -#: js/turtledefs.js:677 -msgid "Click to run the project in slow mode." +#: js/utils/musicutils.js:695 +msgid "Diminished fifth" msgstr "" -#: js/turtledefs.js:683 -msgid "Click to run the project step by step." +#: js/utils/musicutils.js:695 +msgid "Augmented fourth" msgstr "" -#: js/turtledefs.js:690 -msgid "Display statistics about your Music project." +#: js/utils/musicutils.js:696 +msgid "Perfect fifth" msgstr "" -#: js/turtledefs.js:697 -msgid "Delete a selected plugin." +#: js/utils/musicutils.js:696 +msgid "Diminished sixth" msgstr "" -#: js/turtledefs.js:704 -msgid "Enable scrolling" +#: js/utils/musicutils.js:697 +msgid "Minor sixth" msgstr "" -#: js/turtledefs.js:705 -msgid "You can scroll the blocks on the canvas." +#: js/utils/musicutils.js:697 +msgid "Augmented fifth" msgstr "" -#: js/turtledefs.js:714 -msgid "Wrap Turtle" +#: js/utils/musicutils.js:698 +msgid "Major sixth" msgstr "" -#: js/turtledefs.js:715 -msgid "Turn Turtle wrapping On or Off." +#: js/utils/musicutils.js:698 +msgid "Diminished seventh" msgstr "" -#: js/turtledefs.js:725 -msgid "Restore blocks from the trash." +#: js/utils/musicutils.js:699 +msgid "Minor seventh" msgstr "" -#: js/turtledefs.js:732 -msgid "Switch mode" +#: js/utils/musicutils.js:699 +msgid "Augmented sixth" msgstr "" -#: js/turtledefs.js:733 -msgid "Switch between beginner and advance modes." +#: js/utils/musicutils.js:700 +msgid "Major seventh" msgstr "" -#: js/turtledefs.js:739 -msgid "Select your language preference." +#: js/utils/musicutils.js:700 +msgid "Diminished octave" msgstr "" -#: js/turtledefs.js:745 -msgid "Keyboard shortcuts" +#: js/utils/musicutils.js:701 +msgid "Perfect octave" msgstr "" -#: js/turtledefs.js:746 -msgid "You can type d to create a do block and r to create a re block etc." +#: js/utils/musicutils.js:701 +msgid "Augmented seventh" msgstr "" -#: js/turtledefs.js:753 -msgid "Show these messages." +#: js/utils/musicutils.js:702 +msgid "Minor ninth" msgstr "" -#: js/turtledefs.js:759 -#: js/turtledefs.js:790 -#: js/help.js:335 -msgid "Guide" +#: js/utils/musicutils.js:702 +msgid "Augmented octave" msgstr "" -#: js/turtledefs.js:760 -msgid "A detailed guide to Turtle Blocks is available." +#: js/utils/musicutils.js:703 +msgid "Major ninth" msgstr "" -#: js/turtledefs.js:764 -msgid "Turtle Blocks Guide" +#: js/utils/musicutils.js:703 +msgid "Diminished tenth" msgstr "" -#: js/turtledefs.js:767 -#: js/turtledefs.js:798 -#: js/help.js:336 -msgid "About" +#: js/utils/musicutils.js:704 +msgid "Minor tenth" msgstr "" -#: js/turtledefs.js:768 -msgid "Turtle Blocks is an open source collection of tools for exploring musical concepts." +#: js/utils/musicutils.js:704 +msgid "Augmented ninth" msgstr "" -#: js/turtledefs.js:770 -msgid "A full list of contributors can be found in the Turtle Blocks GitHub repository." +#: js/utils/musicutils.js:705 +msgid "Major tenth" msgstr "" -#: js/turtledefs.js:772 -msgid "Turtle Blocks is licensed under the AGPL." +#: js/utils/musicutils.js:705 +msgid "Diminished eleventh" msgstr "" -#: js/turtledefs.js:780 -msgid "Turtle Blocks GitHub repository" +#: js/utils/musicutils.js:706 +msgid "Perfect eleventh" msgstr "" -#: js/turtledefs.js:783 -#: js/turtledefs.js:814 -#: js/help.js:337 -#: js/help.js:359 -msgid "Congratulations." +#: js/utils/musicutils.js:706 +msgid "Augmented tenth" msgstr "" -#: js/turtledefs.js:784 -msgid "You have finished the tour. Please enjoy Turtle Blocks!" +#: js/utils/musicutils.js:707 +msgid "Diminished twelfth" msgstr "" -#: js/turtledefs.js:791 -msgid "A detailed guide to Music Blocks is available." +#: js/utils/musicutils.js:707 +msgid "Augmented eleventh" msgstr "" -#: js/turtledefs.js:795 -#: js/SaveInterface.js:76 -msgid "Music Blocks Guide" +#: js/utils/musicutils.js:708 +msgid "Perfect twelfth" msgstr "" -#: js/turtledefs.js:799 -msgid "Music Blocks is an open source collection of tools for exploring musical concepts." +#: js/utils/musicutils.js:708 +msgid "Diminished thirteenth" msgstr "" -#: js/turtledefs.js:801 -msgid "A full list of contributors can be found in the Music Blocks GitHub repository." +#: js/utils/musicutils.js:709 +msgid "Minor thirteenth" msgstr "" -#: js/turtledefs.js:803 -msgid "Music Blocks is licensed under the AGPL." +#: js/utils/musicutils.js:709 +msgid "Augmented fifth, plus an octave" msgstr "" -#: js/turtledefs.js:811 -msgid "Music Blocks GitHub repository" +#: js/utils/musicutils.js:710 +msgid "Major thirteenth" msgstr "" -#: js/turtledefs.js:815 -msgid "You have finished the tour. Please enjoy Music Blocks!" +#: js/utils/musicutils.js:710 +msgid "Diminished seventh, plus an octave" msgstr "" -#: js/activity.js:369 -msgid "Search for blocks" +#: js/utils/musicutils.js:838 +#.TRANS: ordinal number. Please keep exactly one space between each number. +msgid "1st 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th" msgstr "" -#: js/activity.js:1145 -msgid "Refresh your browser to change to advanced mode." +#: js/utils/musicutils.js:1008 +#: js/utils/musicutils.js:1191 +#: js/utils/musicutils.js:1325 +#.TRANS: augmented is a music term related to intervals +msgid "augmented" msgstr "" -#: js/activity.js:1150 -msgid "Refresh your browser to change to beginner mode." +#: js/utils/musicutils.js:1010 +#: js/utils/musicutils.js:1192 +#: js/utils/musicutils.js:1324 +#.TRANS: diminished is a music term related to intervals and mode +msgid "diminished" msgstr "" -#: js/activity.js:1184 -msgid "Catching mice" +#: js/utils/musicutils.js:1016 +#: js/utils/musicutils.js:1322 +#: js/blocks/IntervalsBlocks.js:649 +#: js/turtleactions/IntervalsActions.js:120 +#: js/turtleactions/IntervalsActions.js:124 +#.TRANS: perfect is a music term related to intervals +msgid "perfect" msgstr "" -#: js/activity.js:1185 -msgid "Cleaning the instruments" +#: js/utils/musicutils.js:1018 +#.TRANS: twelve semi-tone scale for music +msgid "chromatic" msgstr "" -#: js/activity.js:1186 -msgid "Testing key pieces" +#: js/utils/musicutils.js:1019 +msgid "algerian" msgstr "" -#: js/activity.js:1187 -msgid "Sight-reading" +#: js/utils/musicutils.js:1020 +msgid "spanish" msgstr "" -#: js/activity.js:1188 -msgid "Combining math and music" +#: js/utils/musicutils.js:1022 +#.TRANS: modal scale in music +msgid "octatonic" msgstr "" -#: js/activity.js:1189 -msgid "Generating more blocks" +#: js/utils/musicutils.js:1024 +#.TRANS: harmonic major scale in music +msgid "harmonic major" msgstr "" -#: js/activity.js:1190 -msgid "Do Re Mi Fa Sol La Ti Do" +#: js/utils/musicutils.js:1026 +#.TRANS: natural minor scales in music +msgid "natural minor" msgstr "" -#: js/activity.js:1191 -msgid "Tuning string instruments" +#: js/utils/musicutils.js:1028 +#.TRANS: harmonic minor scale in music +msgid "harmonic minor" msgstr "" -#: js/activity.js:1192 -msgid "Pressing random keys" +#: js/utils/musicutils.js:1030 +#.TRANS: melodic minor scale in music +msgid "melodic minor" msgstr "" -#: js/activity.js:1351 -msgid "plugins will be removed upon restart." +#: js/utils/musicutils.js:1034 +#.TRANS: modal scale for music +msgid "dorian" msgstr "" -#: js/activity.js:1360 -msgid "show Cartesian" +#: js/utils/musicutils.js:1036 +#.TRANS: modal scale for music +msgid "phrygian" msgstr "" -#: js/activity.js:1842 -msgid "output tools" +#: js/utils/musicutils.js:1038 +#.TRANS: modal scale for music +msgid "lydian" msgstr "" -#: js/activity.js:1845 -msgid "custom note" +#: js/utils/musicutils.js:1040 +#.TRANS: modal scale for music +msgid "mixolydian" msgstr "" -#: js/activity.js:1848 -msgid "accidental name" +#: js/utils/musicutils.js:1044 +#.TRANS: modal scale for music +msgid "locrian" msgstr "" -#: js/activity.js:1851 -#: js/PitchBlocks.js:855 -msgid "east indian solfege" +#: js/utils/musicutils.js:1046 +#.TRANS: minor jazz scale for music +msgid "jazz minor" msgstr "" -#: js/activity.js:1854 -#: js/PitchBlocks.js:869 -msgid "note name" +#: js/utils/musicutils.js:1048 +#.TRANS: bebop scale for music +msgid "bebop" msgstr "" -#: js/activity.js:1857 -#: js/IntervalsBlocks.js:94 -msgid "temperament name" +#: js/utils/musicutils.js:1049 +msgid "arabic" msgstr "" -#: js/activity.js:1863 -msgid "chord name" +#: js/utils/musicutils.js:1050 +msgid "byzantine" msgstr "" -#: js/activity.js:1869 -msgid "filter type" +#: js/utils/musicutils.js:1052 +#.TRANS: musical scale for music by Verdi +msgid "enigmatic" msgstr "" -#: js/activity.js:1872 -msgid "oscillator type" +#: js/utils/musicutils.js:1053 +msgid "ethiopian" msgstr "" -#: js/activity.js:1878 -#: js/DrumBlocks.js:32 -msgid "noise name" +#: js/utils/musicutils.js:1055 +#.TRANS: Ethiopic scale for music +msgid "geez" msgstr "" -#: js/activity.js:1881 -#: js/DrumBlocks.js:75 -msgid "drum name" +#: js/utils/musicutils.js:1056 +msgid "hindu" msgstr "" -#: js/activity.js:1884 -#: js/DrumBlocks.js:119 -msgid "effects name" +#: js/utils/musicutils.js:1057 +msgid "hungarian" msgstr "" -#: js/activity.js:1887 -msgid "wrap mode" +#: js/utils/musicutils.js:1059 +#.TRANS: minor Romanian scale for music +msgid "romanian minor" msgstr "" -#: js/activity.js:1890 -msgid "load file" +#: js/utils/musicutils.js:1060 +msgid "spanish gypsy" msgstr "" -#: js/activity.js:2056 -msgid "This block is deprecated." -msgstr "यो ब्लक हटाइएको छ।" +#: js/utils/musicutils.js:1062 +#.TRANS: musical scale for Mid-Eastern music +msgid "maqam" +msgstr "" -#: js/activity.js:2058 -msgid "Block cannot be found." -msgstr "ब्लक भेटाउन सकिएन।" +#: js/utils/musicutils.js:1064 +#.TRANS: minor blues scale for music +msgid "minor blues" +msgstr "" -#: js/activity.js:2266 -msgid "Saving block artwork" +#: js/utils/musicutils.js:1066 +#.TRANS: major blues scale for music +msgid "major blues" msgstr "" -#: js/activity.js:2277 -msgid "Erase" +#: js/utils/musicutils.js:1067 +msgid "whole tone" msgstr "" -#: js/activity.js:2301 -#: js/activity.js:2323 -msgid "Paste" -msgstr "प्रतिलिपी सार" +#: js/utils/musicutils.js:1069 +#.TRANS: pentatonic is a general term that means "five note scale". This scale is typically known as "minor pentatonic" +msgid "minor pentatonic" +msgstr "" -#: js/activity.js:2305 -msgid "Save block help" +#: js/utils/musicutils.js:1071 +#.TRANS: pentatonic is a general term that means "five note scale". This scale is typically known as "major pentatonic" +msgid "major pentatonic" msgstr "" -#: js/activity.js:2390 -msgid "Jumping to the bottom of the page." +#: js/utils/musicutils.js:1072 +msgid "chinese" msgstr "" -#: js/activity.js:2396 -msgid "Scrolling up." +#: js/utils/musicutils.js:1073 +msgid "egyptian" msgstr "" -#: js/activity.js:2401 -msgid "Scrolling down." +#: js/utils/musicutils.js:1075 +#.TRANS: https://en.wikipedia.org/wiki/Hirajoshi_scale NOTE: There are three different versions of this scale +msgid "hirajoshi" msgstr "" -#: js/activity.js:2406 -msgid "Extracting block" +#: js/utils/musicutils.js:1076 +msgid "Japan" msgstr "" -#: js/activity.js:2414 -msgid "Moving block up." +#: js/utils/musicutils.js:1078 +#.TRANS: https://en.wikipedia.org/wiki/In_scale and https://en.wikipedia.org/wiki/Sakura_Sakura +msgid "in" msgstr "" -#: js/activity.js:2435 -msgid "Moving block down." +#: js/utils/musicutils.js:1080 +#.TRANS: https://en.wikipedia.org/wiki/Miny%C5%8D_scale +msgid "minyo" msgstr "" -#: js/activity.js:2456 -msgid "Moving block left." +#: js/utils/musicutils.js:1082 +#.TRANS: Italian mathematician +msgid "fibonacci" msgstr "" -#: js/activity.js:2473 -msgid "Moving block right." +#: js/utils/musicutils.js:1083 +#: js/utils/musicutils.js:1134 +#: js/utils/musicutils.js:1177 +#: js/utils/musicutils.js:1199 +#: js/utils/synthutils.js:134 +#: js/blocks/IntervalsBlocks.js:1124 +#: js/blocks/ToneBlocks.js:946 +#: js/blocks/VolumeBlocks.js:411 +#: js/blocks/WidgetBlocks.js:399 +#: js/blocks/WidgetBlocks.js:404 +#: js/turtleactions/VolumeActions.js:218 +#: js/widgets/modewidget.js:919 +#.TRANS: customize voice +msgid "custom" msgstr "" -#: js/activity.js:2488 -msgid "Jump to home position." +#: js/utils/musicutils.js:1085 +#: js/utils/musicutils.js:1531 +#: js/blocks/WidgetBlocks.js:176 +#.TRANS: highpass filter +msgid "highpass" msgstr "" -#: js/activity.js:2515 -msgid "Hide blocks" +#: js/utils/musicutils.js:1087 +#: js/utils/musicutils.js:1532 +#.TRANS: lowpass filter +msgid "lowpass" msgstr "" -#: js/activity.js:3389 -msgid "Click the run button to run the project." +#: js/utils/musicutils.js:1089 +#: js/utils/musicutils.js:1533 +#.TRANS: bandpass filter +msgid "bandpass" msgstr "" -#: js/activity.js:3456 -#: js/SaveInterface.js:131 -#: js/SaveInterface.js:204 -#: js/SaveInterface.js:262 -#: js/SaveInterface.js:389 -#: js/SaveInterface.js:417 -#: js/ProjectStorage.js:27 -#: js/GlobalPlanet.js:467 -#: js/GlobalPlanet.js:469 -#: js/GlobalPlanet.js:495 -#.TRANS: default project title when saving as Lilypond -msgid "My Project" -msgstr "मेरो परियोजना" +#: js/utils/musicutils.js:1091 +#: js/utils/musicutils.js:1534 +#.TRANS: high-shelf filter +msgid "highshelf" +msgstr "" -#: js/activity.js:4261 -msgid "Show/hide block" +#: js/utils/musicutils.js:1093 +#: js/utils/musicutils.js:1535 +#.TRANS: low-shelf filter +msgid "lowshelf" msgstr "" -#: js/activity.js:4263 -msgid "Expand/collapse blocks" +#: js/utils/musicutils.js:1095 +#: js/utils/musicutils.js:1536 +#.TRANS: notch-shelf filter +msgid "notch" msgstr "" -#: js/activity.js:4381 -msgid "Could not parse JSON input." +#: js/utils/musicutils.js:1097 +#: js/utils/musicutils.js:1537 +#.TRANS: all-pass filter +msgid "allpass" msgstr "" -#: js/activity.js:4684 -#: js/activity.js:4771 -#: js/activity.js:4821 -msgid "Cannot load project from the file. Please check the file type." -msgstr "फाइलबाट परियोजना भर्न/लोडगर्न सकिएन। कृपया फाइलको प्रकार जाँच गर्नुहोस।" +#: js/utils/musicutils.js:1099 +#: js/utils/musicutils.js:1538 +#.TRANS: peaking filter +msgid "peaking" +msgstr "" -#: js/activity.js:5051 -msgid "Invalid parameters" +#: js/utils/musicutils.js:1100 +#: js/utils/musicutils.js:1546 +#: js/utils/synthutils.js:126 +#: js/blocks/PitchBlocks.js:85 +#.TRANS: sine wave +msgid "sine" msgstr "" -#: js/turtle-singer.js:1334 -#.TRANS: partials are weighted components in a harmonic series -msgid "You must have at least one Partial block inside of a Weighted-partial block" +#: js/utils/musicutils.js:1101 +#: js/utils/musicutils.js:1547 +#: js/utils/synthutils.js:128 +#: js/blocks/PitchBlocks.js:39 +#.TRANS: square wave +msgid "square" msgstr "" -#: js/turtle-singer.js:2048 -msgid "synth cannot play chords." +#: js/utils/musicutils.js:1102 +#: js/utils/musicutils.js:1548 +#: js/utils/synthutils.js:132 +#: js/blocks/PitchBlocks.js:62 +#: js/blocks/ToneBlocks.js:39 +#.TRANS: triangle wave +msgid "triangle" msgstr "" -#: js/lilypond.js:614 -msgid "brown rat" +#: js/utils/musicutils.js:1103 +#: js/utils/musicutils.js:1549 +#: js/utils/synthutils.js:130 +#: js/blocks/PitchBlocks.js:108 +#.TRANS: sawtooth wave +msgid "sawtooth" msgstr "" -#: js/lilypond.js:615 -msgid "mole" +#: js/utils/musicutils.js:1105 +#: js/utils/musicutils.js:1312 +#: js/blocks/PitchBlocks.js:931 +#: js/blocks/PitchBlocks.js:937 +#: js/turtleactions/PitchActions.js:469 +#.TRANS: even numbers +#.TRANS: invert based on even or odd number or musical scale +msgid "even" msgstr "" -#: js/lilypond.js:616 -msgid "chipmunk" +#: js/utils/musicutils.js:1107 +#: js/utils/musicutils.js:1313 +#: js/blocks/PitchBlocks.js:937 +#: js/turtleactions/PitchActions.js:471 +#.TRANS: odd numbers +msgid "odd" msgstr "" -#: js/lilypond.js:617 -msgid "red squirrel" +#: js/utils/musicutils.js:1108 +#: js/utils/musicutils.js:1314 +#: js/blocks/PitchBlocks.js:937 +#: js/turtleactions/PitchActions.js:473 +msgid "scalar" msgstr "" -#: js/lilypond.js:618 -msgid "guinea pig" +#: js/utils/musicutils.js:1109 +#: js/utils/synthutils.js:72 +#: js/blocks/VolumeBlocks.js:47 +#.TRANS: musical instrument +msgid "piano" msgstr "" -#: js/lilypond.js:619 -msgid "capybara" +#: js/utils/musicutils.js:1110 +#: js/utils/synthutils.js:74 +#.TRANS: musical instrument +msgid "violin" msgstr "" -#: js/lilypond.js:620 -msgid "coypu" +#: js/utils/musicutils.js:1111 +#: js/utils/synthutils.js:76 +#.TRANS: viola musical instrument +msgid "viola" msgstr "" -#: js/lilypond.js:621 -msgid "black rat" +#: js/utils/musicutils.js:1112 +#: js/utils/synthutils.js:114 +#.TRANS: xylophone musical instrument +msgid "xylophone" msgstr "" -#: js/lilypond.js:622 -msgid "grey squirrel" +#: js/utils/musicutils.js:1113 +#: js/utils/synthutils.js:136 +#.TRANS: vibraphone musical instrument +msgid "vibraphone" msgstr "" -#: js/lilypond.js:623 -msgid "flying squirrel" +#: js/utils/musicutils.js:1114 +#: js/utils/synthutils.js:78 +#.TRANS: musical instrument +msgid "cello" msgstr "" -#: js/lilypond.js:624 -msgid "bat" +#: js/utils/musicutils.js:1116 +#: js/utils/synthutils.js:82 +#.TRANS: viola musical instrument +msgid "double bass" msgstr "" -#: js/lilypond.js:757 -#: js/lilypond.js:921 -#: js/lilypond.js:959 -#: js/ActionBlocks.js:1256 -#: js/ExtrasBlocks.js:553 -msgid "start drum" +#: js/utils/musicutils.js:1117 +#: js/utils/synthutils.js:84 +#: js/widgets/rhythmruler.js:2511 +#.TRANS: musical instrument +msgid "guitar" msgstr "" -#: js/SaveInterface.js:59 -#: js/SaveInterface.js:61 -#: js/SaveInterface.js:93 -msgid "Music Blocks Project" +#: js/utils/musicutils.js:1118 +#: js/utils/synthutils.js:86 +#.TRANS: musical instrument +msgid "acoustic guitar" msgstr "" -#: js/SaveInterface.js:63 -msgid "This project was created in Music Blocks" +#: js/utils/musicutils.js:1119 +#: js/utils/synthutils.js:88 +#.TRANS: musical instrument +msgid "flute" msgstr "" -#: js/SaveInterface.js:67 -msgid "Music Blocks is a Free/Libre Software application." +#: js/utils/musicutils.js:1120 +#: js/utils/synthutils.js:90 +#.TRANS: musical instrument +msgid "clarinet" msgstr "" -#: js/SaveInterface.js:69 -msgid "The source code can be accessed at" +#: js/utils/musicutils.js:1121 +#: js/utils/synthutils.js:92 +#.TRANS: musical instrument +msgid "saxophone" msgstr "" -#: js/SaveInterface.js:72 -msgid "For more information, please consult the" +#: js/utils/musicutils.js:1122 +#: js/utils/synthutils.js:94 +#.TRANS: musical instrument +msgid "tuba" msgstr "" -#: js/SaveInterface.js:83 -msgid "Alternatively, open the file in Music Blocks using the Load project button." +#: js/utils/musicutils.js:1123 +#: js/utils/synthutils.js:96 +#.TRANS: musical instrument +msgid "trumpet" msgstr "" -#: js/SaveInterface.js:85 -msgid "Project Code" +#: js/utils/musicutils.js:1124 +#: js/utils/synthutils.js:98 +#.TRANS: musical instrument +msgid "oboe" msgstr "" -#: js/SaveInterface.js:87 -msgid "This code stores data about the blocks in a project." +#: js/utils/musicutils.js:1125 +#: js/utils/synthutils.js:100 +#.TRANS: musical instrument +msgid "trombone" msgstr "" -#: js/SaveInterface.js:89 -msgid "Show" +#: js/utils/musicutils.js:1126 +#: js/utils/synthutils.js:116 +#.TRANS: polytone synthesizer +msgid "electronic synth" msgstr "" -#: js/SaveInterface.js:91 -msgid "Hide" +#: js/utils/musicutils.js:1127 +#: js/utils/synthutils.js:118 +#.TRANS: simple monotone synthesizer +msgid "simple 1" msgstr "" -#: js/SaveInterface.js:197 -#: js/SaveInterface.js:58 -msgid "No description provided" +#: js/utils/musicutils.js:1128 +msgid "simple 2" msgstr "" -#: js/SaveInterface.js:332 -msgid "Your recording is in progress." +#: js/utils/musicutils.js:1129 +msgid "simple 3" msgstr "" -#: js/SaveInterface.js:401 -#.TRANS: File name prompt for save as Lilypond -msgid "File name" -msgstr "फाइलको नाम" - -#: js/SaveInterface.js:403 -#: js/StringHelper.js:39 -#.TRANS: Project title prompt for save as Lilypond -msgid "Project title" -msgstr "परियोजनाको शीर्षक" - -#: js/SaveInterface.js:405 -#.TRANS: Project title prompt for save as Lilypond -msgid "Project author" -msgstr "परियोजनाको लेखक" - -#: js/SaveInterface.js:407 -#.TRANS: MIDI prompt for save as Lilypond -msgid "Include MIDI output?" -msgstr "के उत्पादनमा MIDI समावेश गर्न चाहनुहुन्छ?" - -#: js/SaveInterface.js:409 -#.TRANS: Guitar prompt for save as Lilypond -msgid "Include guitar tablature output?" -msgstr "के उत्पादनमा गिटार ट्याब्लेचर समावेश गर्न चाहनुहुन्छ?" - -#: js/SaveInterface.js:411 -#.TRANS: Lilypond is a scripting language for generating sheet music -msgid "Save as Lilypond" -msgstr "लिलिपोण्डको रुपमा बचत गर्नुहोस" +#: js/utils/musicutils.js:1130 +msgid "simple 4" +msgstr "" -#: js/SaveInterface.js:426 -#: js/EnsembleBlocks.js:75 -#: js/EnsembleBlocks.js:154 -#: js/EnsembleBlocks.js:216 -#: js/EnsembleBlocks.js:302 -#: js/EnsembleBlocks.js:348 -#: js/EnsembleBlocks.js:389 -#: js/EnsembleBlocks.js:441 -#: js/EnsembleBlocks.js:490 -#: js/EnsembleBlocks.js:536 -#: js/EnsembleBlocks.js:583 -#: js/EnsembleBlocks.js:637 -#: js/EnsembleBlocks.js:753 -#: js/EnsembleBlocks.js:840 -#: js/EnsembleBlocks.js:899 -#: js/EnsembleBlocks.js:942 -#: js/EnsembleBlocks.js:1212 -#: js/EnsembleBlocks.js:1280 -#.TRANS: default project author when saving as Lilypond -msgid "Mr. Mouse" -msgstr "मिस्टर माउस" +#: js/utils/musicutils.js:1131 +#: js/utils/synthutils.js:58 +#: js/blocks/DrumBlocks.js:191 +#.TRANS: white noise synthesizer +msgid "white noise" +msgstr "" -#: js/SaveInterface.js:573 -msgid "The Lilypond code is copied to clipboard. You can paste it here: " +#: js/utils/musicutils.js:1132 +#: js/utils/synthutils.js:60 +#.TRANS: brown noise synthesizer +msgid "brown noise" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:50 -#: js/RhythmBlockPaletteBlocks.js:232 -#.TRANS: rhythm block -#.TRANS: translate "rhythm1" as rhythm -msgid "rhythm1" +#: js/utils/musicutils.js:1133 +#: js/utils/synthutils.js:62 +#.TRANS: pink noise synthesizer +msgid "pink noise" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:70 -#: js/RhythmBlockPaletteBlocks.js:251 -#: js/RhythmBlockPaletteBlocks.js:484 -#: js/RhythmBlockPaletteBlocks.js:553 -#: js/RhythmBlockPaletteBlocks.js:874 -msgid "number of notes" +#: js/utils/musicutils.js:1135 +#: js/utils/synthutils.js:148 +#: js/widgets/rhythmruler.js:2057 +#: js/widgets/rhythmruler.js:2319 +#.TRANS: musical instrument +msgid "snare drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:126 -msgid "polyphonic rhythm" +#: js/utils/musicutils.js:1136 +#: js/utils/synthutils.js:150 +#.TRANS: musical instrument +msgid "kick drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:218 -msgid "The Rhythm block is used to generate rhythm patterns." +#: js/utils/musicutils.js:1137 +#: js/utils/synthutils.js:152 +#.TRANS: musical instrument +msgid "tom tom" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:279 -msgid "1/64 note" +#: js/utils/musicutils.js:1138 +#: js/utils/synthutils.js:154 +#.TRANS: musical instrument +msgid "floor tom" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:303 -msgid "1/32 note" +#: js/utils/musicutils.js:1139 +#: js/utils/synthutils.js:156 +#.TRANS: musical instrument +msgid "bass drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:331 -msgid "1/16 note" +#: js/utils/musicutils.js:1140 +#: js/utils/synthutils.js:158 +#.TRANS: a drum made from an inverted cup +msgid "cup drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:359 -msgid "eighth note" +#: js/utils/musicutils.js:1141 +#: js/utils/synthutils.js:160 +#.TRANS: musical instrument +msgid "darbuka drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:387 -msgid "quarter note" +#: js/utils/musicutils.js:1142 +#: js/utils/synthutils.js:164 +#.TRANS: musical instrument +msgid "hi hat" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:415 -msgid "half note" +#: js/utils/musicutils.js:1143 +#: js/utils/synthutils.js:166 +#.TRANS: a small metal bell +msgid "ride bell" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:443 -msgid "whole note" +#: js/utils/musicutils.js:1144 +#: js/utils/synthutils.js:168 +#.TRANS: musical instrument +msgid "cow bell" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:481 -#: js/RhythmBlockPaletteBlocks.js:550 -#: js/RhythmBlockPaletteBlocks.js:601 -#.TRANS: A tuplet is a note value divided into irregular time values. -msgid "tuplet" +#: js/utils/musicutils.js:1145 +msgid "japanese drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:767 -msgid "septuplet" +#: js/utils/musicutils.js:1146 +#: js/utils/synthutils.js:174 +#.TRANS: musical instrument +msgid "japanese bell" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:795 -msgid "quintuplet" +#: js/utils/musicutils.js:1147 +#: js/utils/synthutils.js:170 +#.TRANS: musical instrument +msgid "triangle bell" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:823 -msgid "triplet" +#: js/utils/musicutils.js:1148 +#: js/utils/synthutils.js:172 +#.TRANS: musical instrument +msgid "finger cymbals" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:850 -msgid "simple tuplet" +#: js/utils/musicutils.js:1149 +#: js/utils/synthutils.js:176 +#.TRANS: a musically tuned set of bells +msgid "chime" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:860 -msgid "Tuplets are a collection of notes that get scaled to a specific duration." +#: js/utils/musicutils.js:1150 +#: js/utils/synthutils.js:178 +#.TRANS: a musical instrument +msgid "gong" msgstr "" -#: js/WidgetBlocks.js:71 -#.TRANS: sound envelope (ADSR) -msgid "envelope" +#: js/utils/musicutils.js:1151 +#: js/utils/synthutils.js:180 +#.TRANS: sound effect +msgid "clang" msgstr "" -#: js/WidgetBlocks.js:79 -#.TRANS: Attack time is the time taken for initial run-up of level from nil to peak, beginning when the key is first pressed. -msgid "attack" +#: js/utils/musicutils.js:1152 +#: js/utils/synthutils.js:182 +#.TRANS: sound effect +msgid "crash" msgstr "" -#: js/WidgetBlocks.js:81 -#.TRANS: Decay time is the time taken for the subsequent run down from the attack level to the designated sustain level. -msgid "decay" +#: js/utils/musicutils.js:1153 +#: js/utils/synthutils.js:184 +#.TRANS: sound effect +msgid "bottle" msgstr "" -#: js/WidgetBlocks.js:83 -#.TRANS: Sustain level is the level during the main sequence of the sound's duration, until the key is released. -msgid "sustain" +#: js/utils/musicutils.js:1154 +#: js/utils/synthutils.js:186 +#.TRANS: sound effect +msgid "clap" msgstr "" -#: js/WidgetBlocks.js:85 -#.TRANS: Release time is the time taken for the level to decay from the sustain level to zero after the key is released. -msgid "release" +#: js/utils/musicutils.js:1155 +#: js/utils/synthutils.js:188 +#.TRANS: sound effect +msgid "slap" msgstr "" -#: js/WidgetBlocks.js:96 -msgid "Attack value should be from 0 to 100." +#: js/utils/musicutils.js:1156 +#: js/utils/synthutils.js:190 +#.TRANS: sound effect +msgid "splash" msgstr "" -#: js/WidgetBlocks.js:99 -msgid "Decay value should be from 0 to 100." +#: js/utils/musicutils.js:1157 +#: js/utils/synthutils.js:192 +#.TRANS: sound effect +msgid "bubbles" msgstr "" -#: js/WidgetBlocks.js:102 -msgid "Sustain value should be from 0 to 100." +#: js/utils/musicutils.js:1158 +#: js/utils/synthutils.js:194 +#.TRANS: sound effect +msgid "raindrop" msgstr "" -#: js/WidgetBlocks.js:105 -msgid "Release value should be from 0-100." +#: js/utils/musicutils.js:1159 +#: js/utils/synthutils.js:196 +#.TRANS: animal sound effect +msgid "cat" msgstr "" -#: js/WidgetBlocks.js:121 -msgid "You are adding multiple envelope blocks." +#: js/utils/musicutils.js:1160 +#: js/utils/synthutils.js:198 +#.TRANS: animal sound effect +msgid "cricket" msgstr "" -#: js/WidgetBlocks.js:144 -#.TRANS: a filter removes some unwanted components from a signal -msgid "filter" +#: js/utils/musicutils.js:1161 +#: js/utils/synthutils.js:200 +#.TRANS: animal sound effect +msgid "dog" msgstr "" -#: js/WidgetBlocks.js:149 -#: js/musicutils.js:706 -#: js/musicutils.js:1105 -#.TRANS: highpass filter -msgid "highpass" +#: js/utils/musicutils.js:1163 +#: js/utils/synthutils.js:102 +#.TRANS: musical instrument +msgid "banjo" msgstr "" -#: js/WidgetBlocks.js:152 -#: js/ToneBlocks.js:42 -#: js/timbre.js:1558 -#: js/timbre.js:1808 -#.TRANS: type of filter, e.g., lowpass, highpass, etc. -#.TRANS: there are different types (sine, triangle, square...) of oscillators. -msgid "type" +#: js/utils/musicutils.js:1164 +#: js/utils/synthutils.js:104 +#.TRANS: musical instrument +msgid "koto" msgstr "" -#: js/WidgetBlocks.js:154 -#: js/timbre.js:1818 -#.TRANS: rolloff is the steepness of a change in frequency. -msgid "rolloff" +#: js/utils/musicutils.js:1165 +#: js/utils/synthutils.js:106 +#.TRANS: musical instrument +msgid "dulcimer" msgstr "" -#: js/WidgetBlocks.js:155 -#: js/MediaBlocks.js:692 -#: js/temperament.js:382 -#: js/temperament.js:417 -#: js/temperament.js:477 -#: js/temperament.js:485 -#: js/temperament.js:1348 -#: js/timbre.js:1842 -msgid "frequency" +#: js/utils/musicutils.js:1166 +#: js/utils/synthutils.js:108 +#.TRANS: musical instrument +msgid "electric guitar" msgstr "" -#: js/WidgetBlocks.js:179 -#.TRANS: rolloff is the steepness of a change in frequency. -msgid "Rolloff value should be either -12, -24, -48, or -96 decibels/octave." +#: js/utils/musicutils.js:1167 +#: js/utils/synthutils.js:110 +#.TRANS: musical instrument +msgid "bassoon" msgstr "" -#: js/WidgetBlocks.js:211 -msgid "The Temperament tool is used to define custom tuning." +#: js/utils/musicutils.js:1168 +#: js/utils/synthutils.js:112 +#.TRANS: musical instrument +msgid "celeste" msgstr "" -#: js/WidgetBlocks.js:277 -#: js/sampler.js:329 -msgid "Upload a sample and adjust its pitch center." +#: js/utils/musicutils.js:1170 +#: js/widgets/temperament.js:787 +#.TRANS: musical temperament +msgid "equal" msgstr "" -#: js/WidgetBlocks.js:284 -#.TRANS: the speed at music is should be played. -msgid "sampler" +#: js/utils/musicutils.js:1172 +#.TRANS: musical temperament +msgid "Pythagorean" msgstr "" -#: js/WidgetBlocks.js:329 -#: js/WidgetBlocks.js:334 -#: js/IntervalsBlocks.js:928 -#: js/VolumeBlocks.js:411 -#: js/ToneBlocks.js:946 -#: js/VolumeActions.js:218 -#: js/musicutils.js:704 -#: js/musicutils.js:755 -#: js/musicutils.js:798 -#: js/musicutils.js:820 -#: js/musicutils.js:1136 -#: js/synthutils.js:118 -#: js/modewidget.js:919 -#.TRANS: customize voice -msgid "custom" +#: js/utils/musicutils.js:1174 +#.TRANS: musical temperament +msgid "just intonation" msgstr "" -#: js/WidgetBlocks.js:432 -msgid "The Meter block opens a tool to select strong beats for the meter." +#: js/utils/musicutils.js:1176 +#.TRANS: musical temperament +msgid "meantone" msgstr "" -#: js/WidgetBlocks.js:473 -msgid "The oscilloscope block opens a tool to visualize waveforms." +#: js/utils/musicutils.js:1193 +msgid "major 7th" msgstr "" -#: js/WidgetBlocks.js:478 -msgid "oscilloscope" +#: js/utils/musicutils.js:1194 +msgid "minor 7th" msgstr "" -#: js/WidgetBlocks.js:530 -msgid "The Custom mode block opens a tool to explore musical mode (the spacing of the notes in a scale)." +#: js/utils/musicutils.js:1195 +msgid "dominant 7th" msgstr "" -#: js/WidgetBlocks.js:536 -#.TRANS: musical mode is the pattern of half-steps in an octave, e.g., Major or Minor modes -msgid "custom mode" +#: js/utils/musicutils.js:1196 +msgid "minor-major 7th" msgstr "" -#: js/WidgetBlocks.js:570 -msgid "The Tempo block opens a metronome to visualize the beat." +#: js/utils/musicutils.js:1197 +msgid "fully-diminished 7th" msgstr "" -#: js/WidgetBlocks.js:617 -msgid "The Arpeggio Widget is used to compose chord sequences." +#: js/utils/musicutils.js:1198 +msgid "half-diminished 7th" msgstr "" -#: js/WidgetBlocks.js:623 -#: js/IntervalsBlocks.js:683 -msgid "arpeggio" +#: js/utils/musicutils.js:1557 +#: js/utils/musicutils.js:1569 +msgid "Equal (12EDO)" msgstr "" -#: js/WidgetBlocks.js:677 -msgid "The Pitch drum matrix is used to map pitches to drum sounds." +#: js/utils/musicutils.js:1558 +#: js/utils/musicutils.js:1570 +msgid "5-limit Just Intonation" msgstr "" -#: js/WidgetBlocks.js:682 -#.TRANS: makes a mapping between pitches and drum sounds -msgid "pitch-drum mapper" +#: js/utils/musicutils.js:1559 +#: js/utils/musicutils.js:1571 +msgid "Pythagorean (3-limit JI)" msgstr "" -#: js/WidgetBlocks.js:724 -msgid "You must have at least one pitch block and one drum block in the matrix." +#: js/utils/musicutils.js:1560 +#: js/utils/musicutils.js:1561 +#: js/utils/musicutils.js:1572 +#: js/utils/musicutils.js:1573 +msgid "Meantone" msgstr "" -#: js/WidgetBlocks.js:746 -msgid "The Pitch slider tool to is used to generate pitches at selected frequencies." +#: js/utils/musicutils.js:1574 +msgid "Custom" msgstr "" -#: js/WidgetBlocks.js:751 -#.TRANS: widget to generate pitches using a slider -msgid "pitch slider" +#: js/utils/musicutils.js:5387 +#: js/utils/musicutils.js:5430 +msgid "current" msgstr "" -#: js/WidgetBlocks.js:788 -msgid "chromatic keyboard" +#: js/utils/musicutils.js:5390 +#: js/utils/musicutils.js:5421 +msgid "next" msgstr "" -#: js/WidgetBlocks.js:815 -#: js/WidgetBlocks.js:874 -#.TRANS: widget to generate pitches using a slider -msgid "music keyboard" +#: js/utils/musicutils.js:5393 +#: js/utils/musicutils.js:5426 +msgid "previous" msgstr "" -#: js/WidgetBlocks.js:859 -#: js/WidgetBlocks.js:866 -msgid "The Music keyboard block opens a piano keyboard that can be used to create notes." +#: js/utils/synthutils.js:120 +#.TRANS: simple monotone synthesizer +msgid "simple-2" msgstr "" -#: js/WidgetBlocks.js:910 -msgid "The Pitch staircase tool to is used to generate pitches from a given ratio." +#: js/utils/synthutils.js:122 +#.TRANS: simple monotone synthesizer +msgid "simple-3" msgstr "" -#: js/WidgetBlocks.js:917 -#.TRANS: generate a progressive sequence of pitches -msgid "pitch staircase" +#: js/utils/synthutils.js:124 +#.TRANS: simple monotone synthesizer +msgid "simple-4" msgstr "" -#: js/WidgetBlocks.js:982 -msgid "The Rhythm Maker block opens a tool to create drum machines." +#: js/utils/synthutils.js:162 +#.TRANS: musical instrument +msgid "taiko" msgstr "" -#: js/WidgetBlocks.js:1036 -msgid "G major scale" +#: js/blocks/ActionBlocks.js:58 +msgid "The Return block will return a value from an action." msgstr "" -#: js/WidgetBlocks.js:1064 -msgid "C major scale" +#: js/blocks/ActionBlocks.js:75 +msgid "return" msgstr "" -#: js/WidgetBlocks.js:1097 -msgid "The Phrase Maker block opens a tool to create musical phrases." +#: js/blocks/ActionBlocks.js:128 +msgid "The Return to URL block will return a value to a webpage." msgstr "" -#: js/WidgetBlocks.js:1104 -#.TRANS: assigns pitch to a sequence of beats to generate a melody -msgid "phrase maker" +#: js/blocks/ActionBlocks.js:145 +msgid "return to URL" msgstr "" -#: js/WidgetBlocks.js:1168 -msgid "You must have at least one pitch block and one rhythm block in the matrix." +#: js/blocks/ActionBlocks.js:233 +#: js/blocks/ActionBlocks.js:290 +#: js/blocks/ActionBlocks.js:501 +#: js/blocks/ActionBlocks.js:688 +msgid "The Calculate block returns a value calculated by an action." msgstr "" -#: js/WidgetBlocks.js:1220 -msgid "The Status block opens a tool for inspecting the status of Music Blocks as it is running." +#: js/blocks/ActionBlocks.js:251 +#: js/blocks/ActionBlocks.js:517 +#: js/blocks/ActionBlocks.js:707 +msgid "calculate" msgstr "" -#: js/IntervalsBlocks.js:45 -msgid "set temperament" +#: js/blocks/ActionBlocks.js:376 +#: js/blocks/ActionBlocks.js:593 +#: js/blocks/ActionBlocks.js:942 +#: js/blocks/ActionBlocks.js:1389 +#.TRANS: do is the do something or take an action. +msgid "The Do block is used to initiate an action." msgstr "" -#: js/IntervalsBlocks.js:63 -#: js/MediaBlocks.js:746 -#: js/PitchBlocks.js:657 -#: js/PitchBlocks.js:933 -#: js/PitchBlocks.js:972 -#: js/PitchBlocks.js:1005 -#: js/PitchBlocks.js:1166 -#: js/PitchBlocks.js:1679 -#: js/PitchBlocks.js:1720 -#: js/PitchBlocks.js:1827 -#: js/ToneBlocks.js:1025 -#.TRANS: adjusts the shift up or down by one octave (twelve half-steps in the interval between two notes, one having twice or half the frequency in Hz of the other.) -msgid "octave" +#: js/blocks/ActionBlocks.js:390 +#: js/blocks/ActionBlocks.js:610 +#: js/blocks/ActionBlocks.js:959 +#: js/blocks/ActionBlocks.js:1048 +#: js/blocks/MeterBlocks.js:769 +msgid "do1" msgstr "" -#: js/IntervalsBlocks.js:99 -msgid "The Temperament name block is used to select a tuning method." +#: js/blocks/ActionBlocks.js:390 +#: js/blocks/ActionBlocks.js:610 +#: js/blocks/ActionBlocks.js:959 +#: js/blocks/ActionBlocks.js:1048 +#: js/blocks/FlowBlocks.js:742 +#: js/blocks/FlowBlocks.js:822 +#: js/blocks/MeterBlocks.js:769 +msgid "do" msgstr "" -#: js/IntervalsBlocks.js:161 -msgid "doubly" +#: js/blocks/ActionBlocks.js:791 +#: js/blocks/ActionBlocks.js:865 +msgid "The Arg block contains the value of an argument passed to an action." msgstr "" -#: js/IntervalsBlocks.js:166 -msgid "The Doubly block will double the size of an interval." +#: js/blocks/ActionBlocks.js:806 +#: js/blocks/ActionBlocks.js:878 +msgid "arg" msgstr "" -#: js/IntervalsBlocks.js:262 -msgid "interval number" +#: js/blocks/ActionBlocks.js:836 +#: js/blocks/ActionBlocks.js:900 +#: js/blocks/ActionBlocks.js:908 +msgid "Invalid argument" msgstr "" -#: js/IntervalsBlocks.js:330 -#.TRANS: measure the distance between two pitches in semi-tones -msgid "semi-tone interval measure" +#: js/blocks/ActionBlocks.js:944 +msgid "In the example, it is used with the One of block to choose a random phase." msgstr "" -#: js/IntervalsBlocks.js:397 -#: js/IntervalsBlocks.js:513 -msgid "You must use two pitch blocks when measuring an interval." +#: js/blocks/ActionBlocks.js:1019 +#: js/blocks/ActionBlocks.js:1026 +msgid "The Listen block is used to listen for an event such as a mouse click." msgstr "" -#: js/IntervalsBlocks.js:439 -msgid "The Scalar interval block measures the distance between two notes in the current key and mode." +#: js/blocks/ActionBlocks.js:1028 +msgid "When the event happens, an action is taken." msgstr "" -#: js/IntervalsBlocks.js:445 -#.TRANS: measure the distance between two pitches in steps of musical scale -msgid "scalar interval measure" +#: js/blocks/ActionBlocks.js:1045 +msgid "on" msgstr "" -#: js/IntervalsBlocks.js:592 -#: js/musicutils.js:637 -#: js/musicutils.js:908 -#.TRANS: perfect is a music term related to intervals -msgid "perfect" +#: js/blocks/ActionBlocks.js:1048 +#: js/blocks/ActionBlocks.js:1049 +#: js/blocks/ActionBlocks.js:1153 +msgid "event" msgstr "" -#: js/IntervalsBlocks.js:621 -msgid "In the figure, we add sol# to sol." +#: js/blocks/ActionBlocks.js:1133 +msgid "The Broadcast block is used to trigger an event." msgstr "" -#: js/IntervalsBlocks.js:627 -#: js/OrnamentBlocks.js:220 -#.TRANS: calculate a relative step between notes based on semi-tones -msgid "semi-tone interval" +#: js/blocks/ActionBlocks.js:1151 +msgid "broadcast" msgstr "" -#: js/IntervalsBlocks.js:676 -msgid "The output of the example is: do, mi, sol, sol, ti, mi" +#: js/blocks/ActionBlocks.js:1208 +msgid "Each Start block is a separate voice." msgstr "" -#: js/IntervalsBlocks.js:735 -msgid "The Chord block calculates common chords." +#: js/blocks/ActionBlocks.js:1304 +msgid "It is often used for storing a phrase of music that is repeated." msgstr "" -#: js/IntervalsBlocks.js:737 -msgid "In the figure, we generate a C-major chord." +#: js/blocks/ActionBlocks.js:1495 +msgid "define temperament" msgstr "" -#: js/IntervalsBlocks.js:742 -msgid "chord" +#: js/blocks/BooleanBlocks.js:44 +msgid "The Not block is the logical not operator." msgstr "" -#: js/IntervalsBlocks.js:794 -msgid "The Ratio Interval block calculates an interval based on a ratio." -msgstr "" +#: js/blocks/BooleanBlocks.js:62 +msgid "not" +msgstr "होइन" -#: js/IntervalsBlocks.js:799 -msgid "ratio interval" +#: js/blocks/BooleanBlocks.js:134 +msgid "The And block is the logical and operator." msgstr "" -#: js/IntervalsBlocks.js:868 -msgid "In the figure, we add la to sol." +#: js/blocks/BooleanBlocks.js:152 +msgid "and" +msgstr "र" + +#: js/blocks/BooleanBlocks.js:218 +msgid "The Or block is the logical or operator." msgstr "" -#: js/IntervalsBlocks.js:924 -#.TRANS: define a custom mode -msgid "define mode" +#: js/blocks/BooleanBlocks.js:236 +msgid "or" +msgstr "अथवा" + +#: js/blocks/BooleanBlocks.js:302 +msgid "The XOR block is the logical XOR operator." msgstr "" -#: js/IntervalsBlocks.js:977 -msgid "movable Do" +#: js/blocks/BooleanBlocks.js:320 +msgid "xor" msgstr "" -#: js/IntervalsBlocks.js:1028 -#.TRANS: mode length is the number of notes in the mode, e.g., 7 for major and minor scales; 12 for chromatic scales -msgid "mode length" +#: js/blocks/BooleanBlocks.js:808 +msgid "The Equal block returns True if the two numbers are equal." msgstr "" -#: js/IntervalsBlocks.js:1037 -msgid "The Mode length block is the number of notes in the current scale." +#: js/blocks/BooleanBlocks.js:909 +msgid "The Not-equal-to block returns True if the two numbers are not equal to each other." msgstr "" -#: js/IntervalsBlocks.js:1039 -msgid "Most Western scales have 7 notes." +#: js/blocks/BooleanBlocks.js:1008 +msgid "The Boolean block is used to specify true or false." msgstr "" -#: js/IntervalsBlocks.js:1088 -#.TRANS: the mode in music is 'major', 'minor', etc. -msgid "current mode" +#: js/blocks/BoxesBlocks.js:53 +#: js/blocks/BoxesBlocks.js:59 +msgid "The Add-to block is used to add to the value stored in a box." msgstr "" -#: js/IntervalsBlocks.js:1141 -#.TRANS: the key is a group of pitches with which a music composition is created -msgid "current key" +#: js/blocks/BoxesBlocks.js:61 +msgid "It can also be used with other blocks such as Color and Pen size." msgstr "" -#: js/IntervalsBlocks.js:1193 -#: js/IntervalsBlocks.js:1238 -#.TRANS: set the key and mode, e.g. C Major -msgid "set key" +#: js/blocks/BoxesBlocks.js:73 +msgid "add" msgstr "" -#: js/IntervalsBlocks.js:1247 -#: js/IntervalsBlocks.js:1253 -msgid "The Set key block is used to set the key and mode," +#: js/blocks/BoxesBlocks.js:75 +#: js/widgets/temperament.js:857 +msgid "to" msgstr "" -#: js/IntervalsBlocks.js:1253 -msgid "eg C Major" +#: js/blocks/BoxesBlocks.js:75 +#: js/blocks/BoxesBlocks.js:595 +#: js/blocks/HeapBlocks.js:544 +msgid "value1" msgstr "" -#: js/IntervalsBlocks.js:1266 -#: js/DictBlocks.js:215 -#: js/DictBlocks.js:216 -#: js/DictBlocks.js:289 -#: js/DictBlocks.js:290 -#: js/DictBlocks.js:357 -#: js/DictBlocks.js:430 -#: js/DictBlocks.js:431 -#.TRANS: key, e.g., C in C Major -msgid "key" +#: js/blocks/BoxesBlocks.js:118 +msgid "Block does not support incrementing." msgstr "" -#: js/ActionBlocks.js:58 -msgid "The Return block will return a value from an action." +#: js/blocks/BoxesBlocks.js:152 +msgid "The Add-1-to block adds one to the value stored in a box." msgstr "" -#: js/ActionBlocks.js:75 -msgid "return" +#: js/blocks/BoxesBlocks.js:163 +msgid "add 1 to" msgstr "" -#: js/ActionBlocks.js:128 -msgid "The Return to URL block will return a value to a webpage." +#: js/blocks/BoxesBlocks.js:211 +msgid "The Subtract-1-from block subtracts one from the value stored in a box." msgstr "" -#: js/ActionBlocks.js:145 -msgid "return to URL" +#: js/blocks/BoxesBlocks.js:222 +msgid "subtract 1 from" msgstr "" -#: js/ActionBlocks.js:233 -#: js/ActionBlocks.js:290 -#: js/ActionBlocks.js:501 -#: js/ActionBlocks.js:688 -msgid "The Calculate block returns a value calculated by an action." +#: js/blocks/BoxesBlocks.js:270 +#: js/blocks/BoxesBlocks.js:387 +msgid "The Box block returns the value stored in a box." msgstr "" -#: js/ActionBlocks.js:251 -#: js/ActionBlocks.js:517 -#: js/ActionBlocks.js:707 -msgid "calculate" +#: js/blocks/BoxesBlocks.js:500 +#: js/blocks/BoxesBlocks.js:576 +msgid "The Store in block will store a value in a box." msgstr "" -#: js/ActionBlocks.js:376 -#: js/ActionBlocks.js:593 -#: js/ActionBlocks.js:942 -#: js/ActionBlocks.js:1389 -#.TRANS: do is the do something or take an action. -msgid "The Do block is used to initiate an action." +#: js/blocks/BoxesBlocks.js:595 +#: js/blocks/EnsembleBlocks.js:391 +#: js/blocks/EnsembleBlocks.js:402 +msgid "name1" msgstr "" -#: js/ActionBlocks.js:390 -#: js/ActionBlocks.js:610 -#: js/ActionBlocks.js:959 -#: js/ActionBlocks.js:1048 -#: js/MeterBlocks.js:769 -msgid "do1" +#: js/blocks/BoxesBlocks.js:652 +msgid "The Box2 block returns the value stored in Box2." msgstr "" -#: js/ActionBlocks.js:390 -#: js/ActionBlocks.js:610 -#: js/ActionBlocks.js:959 -#: js/ActionBlocks.js:1048 -#: js/FlowBlocks.js:742 -#: js/FlowBlocks.js:822 -#: js/MeterBlocks.js:769 -msgid "do" +#: js/blocks/BoxesBlocks.js:703 +msgid "The Store in Box2 block is used to store a value in Box2." msgstr "" -#: js/ActionBlocks.js:791 -#: js/ActionBlocks.js:865 -msgid "The Arg block contains the value of an argument passed to an action." +#: js/blocks/BoxesBlocks.js:715 +msgid "store in box2" msgstr "" -#: js/ActionBlocks.js:806 -#: js/ActionBlocks.js:878 -msgid "arg" +#: js/blocks/BoxesBlocks.js:761 +msgid "The Box1 block returns the value stored in Box1." msgstr "" -#: js/ActionBlocks.js:836 -#: js/ActionBlocks.js:900 -#: js/ActionBlocks.js:908 -msgid "Invalid argument" +#: js/blocks/BoxesBlocks.js:812 +msgid "The Store in Box1 block is used to store a value in Box1." msgstr "" -#: js/ActionBlocks.js:944 -msgid "In the example, it is used with the One of block to choose a random phase." +#: js/blocks/BoxesBlocks.js:826 +msgid "store in box1" msgstr "" -#: js/ActionBlocks.js:1019 -#: js/ActionBlocks.js:1026 -msgid "The Listen block is used to listen for an event such as a mouse click." +#: js/blocks/DictBlocks.js:77 +msgid "show dictionary" msgstr "" -#: js/ActionBlocks.js:1028 -msgid "When the event happens, an action is taken." +#: js/blocks/DictBlocks.js:80 +#: js/blocks/DictBlocks.js:145 +#: js/blocks/DictBlocks.js:216 +#: js/blocks/DictBlocks.js:290 +#: js/blocks/ProgramBlocks.js:396 +#: js/blocks/ProgramBlocks.js:501 +#: js/blocks/ProgramBlocks.js:664 +msgid "My Dictionary" msgstr "" -#: js/ActionBlocks.js:1045 -msgid "on" +#: js/blocks/DictBlocks.js:129 +msgid "The Dictionary block returns a dictionary." msgstr "" -#: js/ActionBlocks.js:1048 -#: js/ActionBlocks.js:1049 -#: js/ActionBlocks.js:1153 -msgid "event" +#: js/blocks/DictBlocks.js:197 +#: js/blocks/DictBlocks.js:339 +msgid "The Get-dict block returns a value in the dictionary for a specified key." msgstr "" -#: js/ActionBlocks.js:1133 -msgid "The Broadcast block is used to trigger an event." +#: js/blocks/DictBlocks.js:212 +#: js/blocks/DictBlocks.js:354 +#.TRANS: retrieve a value from the dictionary with a given key +msgid "get value" msgstr "" -#: js/ActionBlocks.js:1151 -msgid "broadcast" +#: js/blocks/DictBlocks.js:215 +#: js/blocks/DictBlocks.js:216 +#: js/blocks/DictBlocks.js:289 +#: js/blocks/DictBlocks.js:290 +#: js/blocks/DictBlocks.js:357 +#: js/blocks/DictBlocks.js:430 +#: js/blocks/DictBlocks.js:431 +msgid "key2" msgstr "" -#: js/ActionBlocks.js:1208 -msgid "Each Start block is a separate voice." +#: js/blocks/DictBlocks.js:215 +#: js/blocks/DictBlocks.js:216 +#: js/blocks/DictBlocks.js:289 +#: js/blocks/DictBlocks.js:290 +#: js/blocks/DictBlocks.js:357 +#: js/blocks/DictBlocks.js:430 +#: js/blocks/DictBlocks.js:431 +#: js/blocks/IntervalsBlocks.js:1462 +#.TRANS: key, e.g., C in C Major +msgid "key" msgstr "" -#: js/ActionBlocks.js:1304 -msgid "It is often used for storing a phrase of music that is repeated." +#: js/blocks/DictBlocks.js:271 +#: js/blocks/DictBlocks.js:411 +msgid "The Set-dict block sets a value in the dictionary for a specified key." msgstr "" -#: js/ActionBlocks.js:1495 -msgid "define temperament" +#: js/blocks/DictBlocks.js:286 +#: js/blocks/DictBlocks.js:427 +#.TRANS: set a value in the dictionary for a given key +msgid "set value" msgstr "" -#: js/EnsembleBlocks.js:66 +#: js/blocks/EnsembleBlocks.js:66 msgid "mouse index heap" msgstr "" -#: js/EnsembleBlocks.js:68 +#: js/blocks/EnsembleBlocks.js:68 msgid "The Mouse index heap block returns a value in the heap at a specified location for a specified mouse." msgstr "" -#: js/EnsembleBlocks.js:77 -#: js/EnsembleBlocks.js:1080 +#: js/blocks/EnsembleBlocks.js:77 +#: js/blocks/EnsembleBlocks.js:1080 msgid "mouse name" msgstr "" -#: js/EnsembleBlocks.js:77 -#: js/EnsembleBlocks.js:92 -#: js/HeapBlocks.js:544 +#: js/blocks/EnsembleBlocks.js:77 +#: js/blocks/EnsembleBlocks.js:92 +#: js/blocks/HeapBlocks.js:544 #.TRANS: value1 is a numeric value (JAPANESE ONLY) msgid "index" msgstr "" -#: js/EnsembleBlocks.js:80 +#: js/blocks/EnsembleBlocks.js:80 msgid "turtle index heap" msgstr "" -#: js/EnsembleBlocks.js:82 +#: js/blocks/EnsembleBlocks.js:82 msgid "The Turtle index heap block returns a value in the heap at a specified location for a specified turtle." msgstr "" -#: js/EnsembleBlocks.js:90 -#: js/EnsembleBlocks.js:167 -#: js/EnsembleBlocks.js:230 -#: js/EnsembleBlocks.js:316 -#: js/EnsembleBlocks.js:362 -#: js/EnsembleBlocks.js:400 -#: js/EnsembleBlocks.js:454 -#: js/EnsembleBlocks.js:504 -#: js/EnsembleBlocks.js:550 -#: js/EnsembleBlocks.js:597 -#: js/EnsembleBlocks.js:651 -#: js/EnsembleBlocks.js:763 -#: js/EnsembleBlocks.js:854 -#: js/EnsembleBlocks.js:915 -#: js/EnsembleBlocks.js:955 -#: js/EnsembleBlocks.js:1219 -#: js/EnsembleBlocks.js:1293 +#: js/blocks/EnsembleBlocks.js:90 +#: js/blocks/EnsembleBlocks.js:167 +#: js/blocks/EnsembleBlocks.js:230 +#: js/blocks/EnsembleBlocks.js:316 +#: js/blocks/EnsembleBlocks.js:362 +#: js/blocks/EnsembleBlocks.js:400 +#: js/blocks/EnsembleBlocks.js:454 +#: js/blocks/EnsembleBlocks.js:504 +#: js/blocks/EnsembleBlocks.js:550 +#: js/blocks/EnsembleBlocks.js:597 +#: js/blocks/EnsembleBlocks.js:651 +#: js/blocks/EnsembleBlocks.js:763 +#: js/blocks/EnsembleBlocks.js:854 +#: js/blocks/EnsembleBlocks.js:915 +#: js/blocks/EnsembleBlocks.js:955 +#: js/blocks/EnsembleBlocks.js:1219 +#: js/blocks/EnsembleBlocks.js:1293 #.TRANS: Yertle is the name of a turtle. msgid "Yertle" msgstr "" -#: js/EnsembleBlocks.js:92 -#: js/EnsembleBlocks.js:1089 +#: js/blocks/EnsembleBlocks.js:92 +#: js/blocks/EnsembleBlocks.js:1089 msgid "turtle name" msgstr "" -#: js/EnsembleBlocks.js:122 -#: js/EnsembleBlocks.js:1197 -#: js/HeapBlocks.js:474 -#: js/HeapBlocks.js:572 +#: js/blocks/EnsembleBlocks.js:122 +#: js/blocks/EnsembleBlocks.js:1197 +#: js/blocks/HeapBlocks.js:474 +#: js/blocks/HeapBlocks.js:572 msgid "Index must be > 0." msgstr "" -#: js/EnsembleBlocks.js:127 -#: js/HeapBlocks.js:479 -#: js/HeapBlocks.js:577 +#: js/blocks/EnsembleBlocks.js:127 +#: js/blocks/HeapBlocks.js:479 +#: js/blocks/HeapBlocks.js:577 msgid "Maximum heap size is 1000." msgstr "" -#: js/EnsembleBlocks.js:145 +#: js/blocks/EnsembleBlocks.js:145 msgid "stop mouse" msgstr "" -#: js/EnsembleBlocks.js:147 +#: js/blocks/EnsembleBlocks.js:147 msgid "The Stop mouse block stops the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:158 +#: js/blocks/EnsembleBlocks.js:158 msgid "stop turtle" msgstr "" -#: js/EnsembleBlocks.js:160 +#: js/blocks/EnsembleBlocks.js:160 msgid "The Stop turtle block stops the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:184 -#: js/EnsembleBlocks.js:247 -#: js/EnsembleBlocks.js:413 -#: js/EnsembleBlocks.js:468 -#: js/EnsembleBlocks.js:706 -#: js/EnsembleBlocks.js:808 -#: js/EnsembleBlocks.js:870 -#: js/EnsembleBlocks.js:1190 -#: js/EnsembleBlocks.js:1253 +#: js/blocks/EnsembleBlocks.js:184 +#: js/blocks/EnsembleBlocks.js:247 +#: js/blocks/EnsembleBlocks.js:413 +#: js/blocks/EnsembleBlocks.js:468 +#: js/blocks/EnsembleBlocks.js:706 +#: js/blocks/EnsembleBlocks.js:808 +#: js/blocks/EnsembleBlocks.js:870 +#: js/blocks/EnsembleBlocks.js:1190 +#: js/blocks/EnsembleBlocks.js:1253 msgid "Cannot find mouse" msgstr "" -#: js/EnsembleBlocks.js:186 -#: js/EnsembleBlocks.js:249 -#: js/EnsembleBlocks.js:415 -#: js/EnsembleBlocks.js:470 -#: js/EnsembleBlocks.js:708 -#: js/EnsembleBlocks.js:810 -#: js/EnsembleBlocks.js:872 -#: js/EnsembleBlocks.js:1192 -#: js/EnsembleBlocks.js:1255 +#: js/blocks/EnsembleBlocks.js:186 +#: js/blocks/EnsembleBlocks.js:249 +#: js/blocks/EnsembleBlocks.js:415 +#: js/blocks/EnsembleBlocks.js:470 +#: js/blocks/EnsembleBlocks.js:708 +#: js/blocks/EnsembleBlocks.js:810 +#: js/blocks/EnsembleBlocks.js:872 +#: js/blocks/EnsembleBlocks.js:1192 +#: js/blocks/EnsembleBlocks.js:1255 msgid "Cannot find turtle" msgstr "" -#: js/EnsembleBlocks.js:206 +#: js/blocks/EnsembleBlocks.js:206 msgid "start mouse" msgstr "" -#: js/EnsembleBlocks.js:209 +#: js/blocks/EnsembleBlocks.js:209 msgid "The Start mouse block starts the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:220 +#: js/blocks/EnsembleBlocks.js:220 msgid "start turtle" msgstr "" -#: js/EnsembleBlocks.js:223 +#: js/blocks/EnsembleBlocks.js:223 msgid "The Start turtle block starts the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:256 +#: js/blocks/EnsembleBlocks.js:256 msgid "Mouse is already running." msgstr "" -#: js/EnsembleBlocks.js:258 +#: js/blocks/EnsembleBlocks.js:258 msgid "Turtle is already running." msgstr "" -#: js/EnsembleBlocks.js:282 +#: js/blocks/EnsembleBlocks.js:282 msgid "Cannot find start block" msgstr "" -#: js/EnsembleBlocks.js:292 +#: js/blocks/EnsembleBlocks.js:292 #.TRANS: pen color for this mouse msgid "mouse color" msgstr "" -#: js/EnsembleBlocks.js:294 +#: js/blocks/EnsembleBlocks.js:294 msgid "The Mouse color block returns the pen color of the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:306 +#: js/blocks/EnsembleBlocks.js:306 #.TRANS: pen color for this turtle msgid "turtle color" msgstr "" -#: js/EnsembleBlocks.js:308 +#: js/blocks/EnsembleBlocks.js:308 msgid "The Turtle color block returns the pen color of the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:338 +#: js/blocks/EnsembleBlocks.js:338 #.TRANS: heading (compass direction) for this mouse msgid "mouse heading" msgstr "" -#: js/EnsembleBlocks.js:340 +#: js/blocks/EnsembleBlocks.js:340 msgid "The Mouse heading block returns the heading of the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:352 +#: js/blocks/EnsembleBlocks.js:352 #.TRANS: heading (compass direction) for this turtle msgid "turtle heading" msgstr "" -#: js/EnsembleBlocks.js:354 +#: js/blocks/EnsembleBlocks.js:354 msgid "The Turtle heading block returns the heading of the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:384 -#: js/EnsembleBlocks.js:439 +#: js/blocks/EnsembleBlocks.js:384 +#: js/blocks/EnsembleBlocks.js:439 #.TRANS: set xy position for this mouse msgid "set mouse" msgstr "" -#: js/EnsembleBlocks.js:391 -#: js/EnsembleBlocks.js:402 -#: js/BoxesBlocks.js:595 -msgid "name1" -msgstr "" - -#: js/EnsembleBlocks.js:391 -#: js/EnsembleBlocks.js:402 -#: js/ProgramBlocks.js:881 -#: js/GraphicsBlocks.js:235 -#: js/GraphicsBlocks.js:313 -#: js/GraphicsBlocks.js:436 -#: js/GraphicsBlocks.js:487 -#: js/GraphicsBlocks.js:534 -#: js/GraphicsBlocks.js:750 +#: js/blocks/EnsembleBlocks.js:391 +#: js/blocks/EnsembleBlocks.js:402 +#: js/blocks/GraphicsBlocks.js:235 +#: js/blocks/GraphicsBlocks.js:313 +#: js/blocks/GraphicsBlocks.js:436 +#: js/blocks/GraphicsBlocks.js:487 +#: js/blocks/GraphicsBlocks.js:534 +#: js/blocks/GraphicsBlocks.js:750 +#: js/blocks/ProgramBlocks.js:881 msgid "x" msgstr "x" -#: js/EnsembleBlocks.js:391 -#: js/EnsembleBlocks.js:402 -#: js/ProgramBlocks.js:881 -#: js/GraphicsBlocks.js:149 -#: js/GraphicsBlocks.js:313 -#: js/GraphicsBlocks.js:436 -#: js/GraphicsBlocks.js:487 -#: js/GraphicsBlocks.js:534 -#: js/GraphicsBlocks.js:750 +#: js/blocks/EnsembleBlocks.js:391 +#: js/blocks/EnsembleBlocks.js:402 +#: js/blocks/GraphicsBlocks.js:149 +#: js/blocks/GraphicsBlocks.js:313 +#: js/blocks/GraphicsBlocks.js:436 +#: js/blocks/GraphicsBlocks.js:487 +#: js/blocks/GraphicsBlocks.js:534 +#: js/blocks/GraphicsBlocks.js:750 +#: js/blocks/ProgramBlocks.js:881 msgid "y" msgstr "y" -#: js/EnsembleBlocks.js:395 -#: js/EnsembleBlocks.js:452 +#: js/blocks/EnsembleBlocks.js:395 +#: js/blocks/EnsembleBlocks.js:452 #.TRANS: set xy position for this turtle msgid "set turtle" msgstr "" -#: js/EnsembleBlocks.js:433 +#: js/blocks/EnsembleBlocks.js:433 msgid "The Set mouse block sends a stack of blocks to be run by the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:446 +#: js/blocks/EnsembleBlocks.js:446 msgid "The Set turtle block sends a stack of blocks to be run by the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:480 +#: js/blocks/EnsembleBlocks.js:480 #.TRANS: y position for this mouse msgid "mouse y" msgstr "माउस y" -#: js/EnsembleBlocks.js:482 +#: js/blocks/EnsembleBlocks.js:482 msgid "The Y mouse block returns the Y position of the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:494 +#: js/blocks/EnsembleBlocks.js:494 #.TRANS: y position for this turtle msgid "turtle y" msgstr "turtle y" -#: js/EnsembleBlocks.js:496 +#: js/blocks/EnsembleBlocks.js:496 msgid "The Y turtle block returns the Y position of the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:526 +#: js/blocks/EnsembleBlocks.js:526 #.TRANS: x position for this mouse msgid "mouse x" msgstr "माउस x" -#: js/EnsembleBlocks.js:528 +#: js/blocks/EnsembleBlocks.js:528 msgid "The X mouse block returns the X position of the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:540 +#: js/blocks/EnsembleBlocks.js:540 #.TRANS: x position for this turtle msgid "turtle x" msgstr "turtle x" -#: js/EnsembleBlocks.js:542 +#: js/blocks/EnsembleBlocks.js:542 msgid "The X turtle block returns the X position of the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:573 +#: js/blocks/EnsembleBlocks.js:573 #.TRANS: notes played by this mouse msgid "mouse notes played" msgstr "" -#: js/EnsembleBlocks.js:575 +#: js/blocks/EnsembleBlocks.js:575 msgid "The Mouse elapse notes block returns the number of notes played by the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:587 +#: js/blocks/EnsembleBlocks.js:587 #.TRANS: notes played by this turtle msgid "turtle notes played" msgstr "" -#: js/EnsembleBlocks.js:589 +#: js/blocks/EnsembleBlocks.js:589 msgid "The Turtle elapse notes block returns the number of notes played by the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:627 +#: js/blocks/EnsembleBlocks.js:627 #.TRANS: convert current note for this turtle to piano key (1-88) msgid "mouse pitch number" msgstr "" -#: js/EnsembleBlocks.js:629 +#: js/blocks/EnsembleBlocks.js:629 msgid "The Mouse pitch block returns the current pitch number being played by the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:641 +#: js/blocks/EnsembleBlocks.js:641 #.TRANS: convert current note for this turtle to piano key (1-88) msgid "turtle pitch number" msgstr "" -#: js/EnsembleBlocks.js:643 -msgid "The Turrle pitch block returns the current pitch number being played by the specified turtle." +#: js/blocks/EnsembleBlocks.js:643 +msgid "The Turtle pitch block returns the current pitch number being played by the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:747 -#: js/EnsembleBlocks.js:819 +#: js/blocks/EnsembleBlocks.js:747 +#: js/blocks/EnsembleBlocks.js:819 #.TRANS: note value is the duration of the note played by this mouse msgid "mouse note value" msgstr "" -#: js/EnsembleBlocks.js:757 +#: js/blocks/EnsembleBlocks.js:757 #.TRANS: note value is the duration of the note played by this turtle msgid "turtle note value" msgstr "" -#: js/EnsembleBlocks.js:830 +#: js/blocks/EnsembleBlocks.js:830 #.TRANS: sync is short for synchronization msgid "mouse sync" msgstr "" -#: js/EnsembleBlocks.js:832 +#: js/blocks/EnsembleBlocks.js:832 msgid "The Mouse sync block aligns the beat count between mice." msgstr "" -#: js/EnsembleBlocks.js:844 +#: js/blocks/EnsembleBlocks.js:844 #.TRANS: sync is short for synchronization msgid "turtle sync" msgstr "" -#: js/EnsembleBlocks.js:846 +#: js/blocks/EnsembleBlocks.js:846 msgid "The Turtle sync block aligns the beat count between turtles." msgstr "" -#: js/EnsembleBlocks.js:887 +#: js/blocks/EnsembleBlocks.js:887 msgid "The Found mouse block will return true if the specified mouse can be found." msgstr "" -#: js/EnsembleBlocks.js:893 +#: js/blocks/EnsembleBlocks.js:893 msgid "found mouse" msgstr "" -#: js/EnsembleBlocks.js:903 +#: js/blocks/EnsembleBlocks.js:903 msgid "The Found turtle block will return true if the specified turtle can be found." msgstr "" -#: js/EnsembleBlocks.js:909 +#: js/blocks/EnsembleBlocks.js:909 msgid "found turtle" msgstr "" -#: js/EnsembleBlocks.js:932 +#: js/blocks/EnsembleBlocks.js:932 msgid "new mouse" msgstr "" -#: js/EnsembleBlocks.js:934 +#: js/blocks/EnsembleBlocks.js:934 msgid "The New mouse block will create a new mouse." msgstr "" -#: js/EnsembleBlocks.js:945 +#: js/blocks/EnsembleBlocks.js:945 msgid "new turtle" msgstr "" -#: js/EnsembleBlocks.js:947 +#: js/blocks/EnsembleBlocks.js:947 msgid "The New turtle block will create a new turtle." msgstr "" -#: js/EnsembleBlocks.js:1011 +#: js/blocks/EnsembleBlocks.js:1011 msgid "set mouse color" msgstr "" -#: js/EnsembleBlocks.js:1014 +#: js/blocks/EnsembleBlocks.js:1014 msgid "The Set-mouse-color block is used to set the color of a mouse." msgstr "" -#: js/EnsembleBlocks.js:1020 +#: js/blocks/EnsembleBlocks.js:1020 msgid "set turtle color" msgstr "" -#: js/EnsembleBlocks.js:1023 +#: js/blocks/EnsembleBlocks.js:1023 msgid "The Set-turtle-color block is used to set the color of a turtle." msgstr "" -#: js/EnsembleBlocks.js:1083 +#: js/blocks/EnsembleBlocks.js:1083 msgid "The Mouse-name block returns the name of a mouse." msgstr "" -#: js/EnsembleBlocks.js:1092 -msgid "The Turtle-name block returns the name of a turtle." -msgstr "" - -#: js/EnsembleBlocks.js:1115 -msgid "mouse count" -msgstr "" - -#: js/EnsembleBlocks.js:1118 -msgid "The Mouse-count block returns the number of mice." -msgstr "" - -#: js/EnsembleBlocks.js:1124 -msgid "turtle count" -msgstr "" - -#: js/EnsembleBlocks.js:1127 -msgid "The Turtle-count block returns the number of turtles." -msgstr "" - -#: js/EnsembleBlocks.js:1149 -msgid "nth mouse name" -msgstr "" - -#: js/EnsembleBlocks.js:1152 -msgid "The Nth-Mouse name block returns the name of the nth mouse." -msgstr "" - -#: js/EnsembleBlocks.js:1158 -msgid "nth turtle name" -msgstr "" - -#: js/EnsembleBlocks.js:1161 -msgid "The Nth-Turtle name block returns the name of the nth turtle." -msgstr "" - -#: js/EnsembleBlocks.js:1205 -#: js/EnsembleBlocks.js:1265 -msgid "set name" -msgstr "" - -#: js/EnsembleBlocks.js:1214 -#: js/EnsembleBlocks.js:1221 -msgid "source" -msgstr "" - -#: js/EnsembleBlocks.js:1214 -#: js/EnsembleBlocks.js:1221 -msgid "target" -msgstr "" - -#: js/EnsembleBlocks.js:1271 -msgid "The Set-name block is used to name a mouse." -msgstr "" - -#: js/EnsembleBlocks.js:1284 -msgid "The Set-name block is used to name a turtle." -msgstr "" - -#: js/BooleanBlocks.js:44 -msgid "The Not block is the logical not operator." -msgstr "" - -#: js/BooleanBlocks.js:62 -msgid "not" -msgstr "होइन" - -#: js/BooleanBlocks.js:134 -msgid "The And block is the logical and operator." -msgstr "" - -#: js/BooleanBlocks.js:152 -msgid "and" -msgstr "र" - -#: js/BooleanBlocks.js:218 -msgid "The Or block is the logical or operator." -msgstr "" - -#: js/BooleanBlocks.js:236 -msgid "or" -msgstr "अथवा" - -#: js/BooleanBlocks.js:302 -msgid "The XOR block is the logical XOR operator." -msgstr "" - -#: js/BooleanBlocks.js:320 -msgid "xor" -msgstr "" - -#: js/BooleanBlocks.js:808 -msgid "The Equal block returns True if the two numbers are equal." -msgstr "" - -#: js/BooleanBlocks.js:909 -msgid "The Not-equal-to block returns True if the two numbers are not equal to each other." -msgstr "" - -#: js/BooleanBlocks.js:1008 -msgid "The Boolean block is used to specify true or false." -msgstr "" - -#: js/MediaBlocks.js:35 -#.TRANS: right side of the screen -msgid "right (screen)" -msgstr "" - -#: js/MediaBlocks.js:45 -#: js/MediaBlocks.js:56 -msgid "The Right block returns the position of the right of the canvas." -msgstr "" - -#: js/MediaBlocks.js:97 -#.TRANS: left side of the screen -msgid "left (screen)" -msgstr "" - -#: js/MediaBlocks.js:107 -#: js/MediaBlocks.js:118 -msgid "The Left block returns the position of the left of the canvas." -msgstr "" - -#: js/MediaBlocks.js:158 -msgid "top (screen)" -msgstr "" - -#: js/MediaBlocks.js:168 -#: js/MediaBlocks.js:179 -msgid "The Top block returns the position of the top of the canvas." -msgstr "" - -#: js/MediaBlocks.js:219 -msgid "bottom (screen)" +#: js/blocks/EnsembleBlocks.js:1092 +msgid "The Turtle-name block returns the name of a turtle." msgstr "" -#: js/MediaBlocks.js:229 -#: js/MediaBlocks.js:240 -msgid "The Bottom block returns the position of the bottom of the canvas." +#: js/blocks/EnsembleBlocks.js:1115 +msgid "mouse count" msgstr "" -#: js/MediaBlocks.js:282 -msgid "width" +#: js/blocks/EnsembleBlocks.js:1118 +msgid "The Mouse-count block returns the number of mice." msgstr "" -#: js/MediaBlocks.js:291 -msgid "The Width block returns the width of the canvas." +#: js/blocks/EnsembleBlocks.js:1124 +msgid "turtle count" msgstr "" -#: js/MediaBlocks.js:325 -msgid "height" +#: js/blocks/EnsembleBlocks.js:1127 +msgid "The Turtle-count block returns the number of turtles." msgstr "" -#: js/MediaBlocks.js:334 -msgid "The Height block returns the height of the canvas." +#: js/blocks/EnsembleBlocks.js:1149 +msgid "nth mouse name" msgstr "" -#: js/MediaBlocks.js:369 -#.TRANS: stops playback of an audio recording -msgid "stop play" +#: js/blocks/EnsembleBlocks.js:1152 +msgid "The Nth-Mouse name block returns the name of the nth mouse." msgstr "" -#: js/MediaBlocks.js:404 -#.TRANS: Erases the images and text -msgid "erase media" +#: js/blocks/EnsembleBlocks.js:1158 +msgid "nth turtle name" msgstr "" -#: js/MediaBlocks.js:409 -msgid "The Erase Media block erases text and images." +#: js/blocks/EnsembleBlocks.js:1161 +msgid "The Nth-Turtle name block returns the name of the nth turtle." msgstr "" -#: js/MediaBlocks.js:439 -#.TRANS: play an audio recording -msgid "play back" +#: js/blocks/EnsembleBlocks.js:1205 +#: js/blocks/EnsembleBlocks.js:1265 +msgid "set name" msgstr "" -#: js/MediaBlocks.js:487 -msgid "speak" -msgstr "बोल" - -#: js/MediaBlocks.js:495 -msgid "The Speak block outputs to the text-to-speech synthesizer" +#: js/blocks/EnsembleBlocks.js:1214 +#: js/blocks/EnsembleBlocks.js:1221 +msgid "source" msgstr "" -#: js/MediaBlocks.js:546 -msgid "camera" +#: js/blocks/EnsembleBlocks.js:1214 +#: js/blocks/EnsembleBlocks.js:1221 +msgid "target" msgstr "" -#: js/MediaBlocks.js:551 -msgid "The Camera block connects a webcam to the Show block." +#: js/blocks/EnsembleBlocks.js:1271 +msgid "The Set-name block is used to name a mouse." msgstr "" -#: js/MediaBlocks.js:574 -msgid "video" +#: js/blocks/EnsembleBlocks.js:1284 +msgid "The Set-name block is used to name a turtle." msgstr "" -#: js/MediaBlocks.js:579 -msgid "The Video block selects video for use with the Show block." +#: js/blocks/ExtrasBlocks.js:33 +msgid "fraction" msgstr "" -#: js/MediaBlocks.js:607 -msgid "The Open file block opens a file for use with the Show block." +#: js/blocks/ExtrasBlocks.js:36 +msgid "Convert a float to a fraction" msgstr "" -#: js/MediaBlocks.js:645 -msgid "stop media" +#: js/blocks/ExtrasBlocks.js:93 +msgid "save as ABC" msgstr "" -#: js/MediaBlocks.js:650 -msgid "The Stop media block stops audio or video playback." +#: js/blocks/ExtrasBlocks.js:96 +#: js/blocks/ExtrasBlocks.js:132 +#: js/blocks/ExtrasBlocks.js:168 +msgid "title" msgstr "" -#: js/MediaBlocks.js:679 -#: js/PitchBlocks.js:1539 -#: js/phrasemaker.js:822 -#: js/musickeyboard.js:1654 -#.TRANS: a measure of frequency: one cycle per second -msgid "hertz" +#: js/blocks/ExtrasBlocks.js:129 +msgid "save as Lilypond" msgstr "" -#: js/MediaBlocks.js:692 -msgid "duration (ms)" +#: js/blocks/ExtrasBlocks.js:165 +msgid "save as SVG" msgstr "" -#: js/MediaBlocks.js:728 -#.TRANS: translate a note into hertz, e.g., A4 -> 440HZ -msgid "note to frequency" +#: js/blocks/ExtrasBlocks.js:216 +msgid "no background" msgstr "" -#: js/MediaBlocks.js:736 -msgid "The To frequency block converts a pitch name and octave to Hertz." +#: js/blocks/ExtrasBlocks.js:219 +msgid "The No background block eliminates the background from the saved SVG output." msgstr "" -#: js/MediaBlocks.js:746 -#: js/PitchBlocks.js:656 -#: js/PitchBlocks.js:932 -#: js/PitchBlocks.js:1827 -#.TRANS: name2 is name as in name of pitch (JAPANESE ONLY) -msgid "name2" +#: js/blocks/ExtrasBlocks.js:247 +msgid "show blocks" +msgstr "खण्डहरु देखाऊ" + +#: js/blocks/ExtrasBlocks.js:249 +msgid "The Show blocks block shows the blocks." msgstr "" -#: js/MediaBlocks.js:812 -msgid "The Avatar block is used to change the appearance of the mouse." +#: js/blocks/ExtrasBlocks.js:274 +msgid "hide blocks" +msgstr "खण्डहरु लुकाऊ" + +#: js/blocks/ExtrasBlocks.js:276 +msgid "The Hide blocks block hides the blocks." msgstr "" -#: js/MediaBlocks.js:819 -msgid "The Avatar block is used to change the appearance of the turtle." +#: js/blocks/ExtrasBlocks.js:305 +#: js/blocks/ExtrasBlocks.js:338 +msgid "The Space block is used to add space between blocks." msgstr "" -#: js/MediaBlocks.js:831 -#: js/MediaBlocks.js:891 -#.TRANS: a media object -msgid "size" +#: js/blocks/ExtrasBlocks.js:376 +msgid "wait" +msgstr "पर्ख" + +#: js/blocks/ExtrasBlocks.js:379 +msgid "The Wait block pauses the program for a specified number of seconds." msgstr "" -#: js/MediaBlocks.js:831 -msgid "image" -msgstr "चित्र" +#: js/blocks/ExtrasBlocks.js:433 +#: plugins/facebook.rtp:30 +msgid "comment" +msgstr "टिप्पणी" -#: js/MediaBlocks.js:880 -msgid "The Show block is used to display text or images on the canvas." +#: js/blocks/ExtrasBlocks.js:469 +msgid "print" +msgstr "प्रिन्ट" + +#: js/blocks/ExtrasBlocks.js:476 +msgid "The Print block displays text at the top of the screen." msgstr "" -#: js/MediaBlocks.js:888 -#.TRANS: show1 is show as in display an image or text on the screen. -msgid "show1" +#: js/blocks/ExtrasBlocks.js:582 +msgid "display grid" msgstr "" -#: js/MediaBlocks.js:891 -msgid "obj" +#: js/blocks/ExtrasBlocks.js:587 +msgid "The Display Grid Block changes the grid type" msgstr "" -#: js/MediaBlocks.js:938 -msgid "The Media block is used to import an image." +#: js/blocks/ExtrasBlocks.js:689 +#: js/blocks/ExtrasBlocks.js:708 +#: js/blocks/ExtrasBlocks.js:731 +#: js/blocks/ExtrasBlocks.js:754 +#: js/blocks/ExtrasBlocks.js:772 +#: js/blocks/ExtrasBlocks.js:791 +#: js/blocks/ExtrasBlocks.js:810 +#: js/blocks/ExtrasBlocks.js:829 +msgid "unknown" msgstr "" -#: js/MediaBlocks.js:973 -msgid "The Text block holds a text string." +#: js/blocks/FlowBlocks.js:41 +msgid "The Backward block runs code in reverse order (Musical retrograde)." msgstr "" -#: js/ProgramBlocks.js:33 -msgid "The Load-heap-from-app block loads the heap from a web page." +#: js/blocks/FlowBlocks.js:48 +msgid "backward" msgstr "" -#: js/ProgramBlocks.js:44 -#.TRANS: load the heap contents from a URL -msgid "load heap from App" +#: js/blocks/FlowBlocks.js:124 +msgid "The Duplicate block will run each block multiple times." msgstr "" -#: js/ProgramBlocks.js:95 -msgid "Error parsing JSON data:" +#: js/blocks/FlowBlocks.js:136 +msgid "duplicate" msgstr "" -#: js/ProgramBlocks.js:100 -msgid "404: Page not found" +#: js/blocks/FlowBlocks.js:334 +msgid "The Default block is used inside of a Switch to define the default action." msgstr "" -#: js/ProgramBlocks.js:133 -msgid "The Save-heap-to-app block saves the heap to a web page." +#: js/blocks/FlowBlocks.js:342 +msgid "default" msgstr "" -#: js/ProgramBlocks.js:144 -#.TRANS: save the heap contents to a URL -msgid "save heap to App" +#: js/blocks/FlowBlocks.js:361 +#: js/blocks/FlowBlocks.js:418 +msgid "The Case Block must be used inside of a Switch Block." msgstr "" -#: js/ProgramBlocks.js:189 -msgid "Cannot find a valid heap for" +#: js/blocks/FlowBlocks.js:389 +msgid "The Case block is used inside of a Switch to define matches." msgstr "" -#: js/ProgramBlocks.js:206 -msgid "The Load-heap block loads the heap from a file." +#: js/blocks/FlowBlocks.js:397 +msgid "case" msgstr "" -#: js/ProgramBlocks.js:217 -#.TRANS: load the heap from a file -msgid "load heap" +#: js/blocks/FlowBlocks.js:446 +msgid "The Switch block will run the code in the matching Case." msgstr "" -#: js/ProgramBlocks.js:270 -msgid "The file you selected does not contain a valid heap." +#: js/blocks/FlowBlocks.js:454 +msgid "switch" msgstr "" -#: js/ProgramBlocks.js:275 -msgid "The loadHeap block needs a loadFile block." +#: js/blocks/FlowBlocks.js:595 +msgid "The Stop block will stop a loop" msgstr "" -#: js/ProgramBlocks.js:291 -msgid "The Set-heap block loads the heap." +#: js/blocks/FlowBlocks.js:597 +msgid "Forever, Repeat, While, or Until." msgstr "" -#: js/ProgramBlocks.js:299 -#: js/HeapBlocks.js:539 -#.TRANS: load the heap from a JSON encoding -msgid "set heap" +#: js/blocks/FlowBlocks.js:604 +#: js/widgets/timbre.js:417 +#: js/widgets/timbre.js:419 +#: js/widgets/musickeyboard.js:819 +#: js/widgets/musickeyboard.js:821 +#: js/widgets/phrasemaker.js:4202 +#: plugins/rodi.rtp:29 +#: plugins/rodi.rtp:73 +#: plugins/rodi.rtp:413 +msgid "stop" +msgstr "रोक" + +#: js/blocks/FlowBlocks.js:653 +msgid "The Waitfor block will wait until the condition is true." msgstr "" -#: js/ProgramBlocks.js:340 -msgid "The block you selected does not contain a valid heap." +#: js/blocks/FlowBlocks.js:661 +msgid "wait for" msgstr "" -#: js/ProgramBlocks.js:343 -msgid "The Set heap block needs a heap." +#: js/blocks/FlowBlocks.js:732 +msgid "The Until block will repeat until the condition is true." msgstr "" -#: js/ProgramBlocks.js:360 -msgid "The Load-dictionary block loads a dictionary from a file." +#: js/blocks/FlowBlocks.js:740 +msgid "until" +msgstr "नभएसम्म" + +#: js/blocks/FlowBlocks.js:742 +#: js/blocks/FlowBlocks.js:822 +msgid "do2" msgstr "" -#: js/ProgramBlocks.js:372 -#.TRANS: load a dictionary from a file -msgid "load dictionary" +#: js/blocks/FlowBlocks.js:812 +msgid "The While block will repeat while the condition is true." msgstr "" -#: js/ProgramBlocks.js:390 -#: js/ProgramBlocks.js:658 -#: js/ToneBlocks.js:1025 -msgid "file" +#: js/blocks/FlowBlocks.js:820 +msgid "while" +msgstr "एकैछिन पछि" + +#: js/blocks/FlowBlocks.js:903 +#: js/blocks/FlowBlocks.js:968 +#: js/blocks/FlowBlocks.js:979 +msgid "In this example if the mouse button is pressed a snare drum will play." msgstr "" -#: js/ProgramBlocks.js:396 -#: js/ProgramBlocks.js:501 -#: js/ProgramBlocks.js:664 -#: js/DictBlocks.js:80 -#: js/DictBlocks.js:145 -#: js/DictBlocks.js:216 -#: js/DictBlocks.js:290 -msgid "My Dictionary" +#: js/blocks/FlowBlocks.js:925 +#: js/blocks/FlowBlocks.js:988 +msgid "if" +msgstr "यदि" + +#: js/blocks/FlowBlocks.js:927 +#: js/blocks/FlowBlocks.js:990 +msgid "then" +msgstr "अनि" + +#: js/blocks/FlowBlocks.js:927 +msgid "else" +msgstr "नत्र" + +#: js/blocks/FlowBlocks.js:1025 +msgid "The Forever block will repeat the contained blocks forever." msgstr "" -#: js/ProgramBlocks.js:444 -msgid "The file you selected does not contain a valid dictionary." +#: js/blocks/FlowBlocks.js:1037 +msgid "forever" +msgstr "सधैकोलागि" + +#: js/blocks/FlowBlocks.js:1073 +msgid "The Repeat block will repeat the contained blocks." msgstr "" -#: js/ProgramBlocks.js:449 -msgid "The load dictionary block needs a load file block." +#: js/blocks/FlowBlocks.js:1075 +msgid "In this example the note will be played 4 times." msgstr "" -#: js/ProgramBlocks.js:466 -msgid "The Set-dictionary block loads a dictionary." +#: js/blocks/FlowBlocks.js:1083 +msgid "repeat" +msgstr "दोहोर्‍याउ" + +#: js/blocks/FlowBlocks.js:1123 +msgid "duplicate factor" msgstr "" -#: js/ProgramBlocks.js:477 -#.TRANS: load a dictionary from a JSON -msgid "set dictionary" +#: js/blocks/HeapBlocks.js:49 +msgid "The Heap block returns the heap." msgstr "" -#: js/ProgramBlocks.js:546 -msgid "The block you selected does not contain a valid dictionary." +#: js/blocks/HeapBlocks.js:133 +msgid "show heap" +msgstr "हिप देखाउ" + +#: js/blocks/HeapBlocks.js:181 +msgid "The Heap-length block returns the length of the heap." msgstr "" -#: js/ProgramBlocks.js:550 -msgid "The set dictionary block needs a dictionary." +#: js/blocks/HeapBlocks.js:195 +msgid "heap length" msgstr "" -#: js/ProgramBlocks.js:567 -msgid "The Save-heap block saves the heap to a file." +#: js/blocks/HeapBlocks.js:254 +msgid "The Heap-empty? block returns true if the heap is empty." msgstr "" -#: js/ProgramBlocks.js:578 -#.TRANS: save the heap to a file -msgid "save heap" +#: js/blocks/HeapBlocks.js:268 +#.TRANS: Is the heap empty? +msgid "heap empty?" msgstr "" -#: js/ProgramBlocks.js:629 -msgid "The Save-dictionary block saves a dictionary to a file." +#: js/blocks/HeapBlocks.js:317 +msgid "The Empty-heap block empties the heap." msgstr "" -#: js/ProgramBlocks.js:640 -#.TRANS: save a dictionary to a file -msgid "save dictionary" +#: js/blocks/HeapBlocks.js:327 +#: js/blocks/HeapBlocks.js:647 +#.TRANS: empty the heap +msgid "empty heap" +msgstr "खाली थाक" + +#: js/blocks/HeapBlocks.js:371 +msgid "The Reverse-heap block reverses the order of the heap." msgstr "" -#: js/ProgramBlocks.js:720 -msgid "The Open palette block opens a palette." +#: js/blocks/HeapBlocks.js:384 +#.TRANS: reverse the order of the heap +msgid "reverse heap" msgstr "" -#: js/ProgramBlocks.js:727 -msgid "open palette" +#: js/blocks/HeapBlocks.js:428 +msgid "The Index-heap block returns a value in the heap at a specified location." msgstr "" -#: js/ProgramBlocks.js:785 -msgid "The Delete block block removes a block." +#: js/blocks/HeapBlocks.js:443 +#.TRANS: retrieve a value from the heap at index position in the heap +msgid "index heap" msgstr "" -#: js/ProgramBlocks.js:797 -#.TRANS: Move this block to the trash. -msgid "delete block" +#: js/blocks/HeapBlocks.js:523 +msgid "The Set-heap entry block sets a value in he heap at the specified location." msgstr "" -#: js/ProgramBlocks.js:861 -msgid "The Move block block moves a block." +#: js/blocks/HeapBlocks.js:539 +#: js/blocks/ProgramBlocks.js:299 +#.TRANS: load the heap from a JSON encoding +msgid "set heap" msgstr "" -#: js/ProgramBlocks.js:869 -#.TRANS: Move the position of a block on the screen. -msgid "move block" +#: js/blocks/HeapBlocks.js:619 +msgid "The Pop block removes the value at the top of the heap." msgstr "" -#: js/ProgramBlocks.js:881 -#: js/ProgramBlocks.js:1048 -msgid "block number" +#: js/blocks/HeapBlocks.js:633 +#.TRANS: pop a value off the top of the heap +msgid "pop" +msgstr "पप्" + +#: js/blocks/HeapBlocks.js:680 +msgid "The Push block adds a value to the top of the heap." msgstr "" -#: js/ProgramBlocks.js:935 -#.TRANS: Run program beginning at this block. -msgid "run block" +#: js/blocks/HeapBlocks.js:696 +#.TRANS: push a value onto the top of the heap +msgid "push" +msgstr "धकाल" + +#: js/blocks/IntervalsBlocks.js:45 +msgid "set temperament" msgstr "" -#: js/ProgramBlocks.js:1025 -msgid "The Dock block block connections two blocks." +#: js/blocks/IntervalsBlocks.js:63 +#: js/blocks/MediaBlocks.js:746 +#: js/blocks/PitchBlocks.js:657 +#: js/blocks/PitchBlocks.js:935 +#: js/blocks/PitchBlocks.js:974 +#: js/blocks/PitchBlocks.js:1007 +#: js/blocks/PitchBlocks.js:1194 +#: js/blocks/PitchBlocks.js:1717 +#: js/blocks/PitchBlocks.js:1758 +#: js/blocks/PitchBlocks.js:1866 +#: js/blocks/ToneBlocks.js:1025 +#: js/turtleactions/IntervalsActions.js:114 +#.TRANS: adjusts the shift up or down by one octave (twelve half-steps in the interval between two notes, one having twice or half the frequency in Hz of the other.) +msgid "octave" msgstr "" -#: js/ProgramBlocks.js:1036 -#.TRANS: We can connect a block to another block. -msgid "connect blocks" +#: js/blocks/IntervalsBlocks.js:99 +msgid "The Temperament name block is used to select a tuning method." msgstr "" -#: js/ProgramBlocks.js:1048 -msgid "target block" +#: js/blocks/IntervalsBlocks.js:161 +msgid "doubly" msgstr "" -#: js/ProgramBlocks.js:1048 -msgid "connection number" +#: js/blocks/IntervalsBlocks.js:166 +msgid "The Doubly block will double the size of an interval." msgstr "" -#: js/ProgramBlocks.js:1140 -msgid "The Make block block creates a new block." +#: js/blocks/IntervalsBlocks.js:262 +msgid "interval number" msgstr "" -#: js/ProgramBlocks.js:1152 -#.TRANS: Create a new block -msgid "make block" +#: js/blocks/IntervalsBlocks.js:317 +msgid "current interval" msgstr "" -#: js/ProgramBlocks.js:1186 -#: js/ProgramBlocks.js:1227 -#: js/RhythmBlocks.js:1128 -#: js/PitchBlocks.js:972 -#: js/PitchBlocks.js:1005 -#: js/temperament.js:340 -#: js/temperament.js:362 -#: js/temperament.js:372 -#: js/temperament.js:484 -#: js/status.js:190 -#: plugins/rodi.rtp:192 -#.TRANS: a musical note consisting of pitch and duration -msgid "note" +#: js/blocks/IntervalsBlocks.js:387 +#.TRANS: measure the distance between two pitches in semi-tones +msgid "semi-tone interval measure" msgstr "" -#: js/ProgramBlocks.js:1285 -msgid "Cannot find block" +#: js/blocks/IntervalsBlocks.js:454 +#: js/blocks/IntervalsBlocks.js:570 +msgid "You must use two pitch blocks when measuring an interval." msgstr "" -#: js/ProgramBlocks.js:1304 -#: js/ProgramBlocks.js:1313 -msgid "Warning: block argument type mismatch" +#: js/blocks/IntervalsBlocks.js:496 +msgid "The Scalar interval block measures the distance between two notes in the current key and mode." msgstr "" -#: js/ProgramBlocks.js:1347 -msgid "The Open project block is used to open a project from a web page." +#: js/blocks/IntervalsBlocks.js:502 +#.TRANS: measure the distance between two pitches in steps of musical scale +msgid "scalar interval measure" msgstr "" -#: js/ProgramBlocks.js:1357 -msgid "open project" +#: js/blocks/IntervalsBlocks.js:678 +msgid "In the figure, we add sol# to sol." msgstr "" -#: js/ProgramBlocks.js:1410 -msgid "Please enter a valid URL." +#: js/blocks/IntervalsBlocks.js:684 +#: js/blocks/OrnamentBlocks.js:220 +#.TRANS: calculate a relative step between notes based on semi-tones +msgid "semi-tone interval" msgstr "" -#: js/DrumBlocks.js:59 -msgid "The Noise name block is used to select a noise synthesizer." +#: js/blocks/IntervalsBlocks.js:733 +msgid "The output of the example is: do, mi, sol, sol, ti, mi" msgstr "" -#: js/DrumBlocks.js:102 -msgid "The Drum name block is used to select a drum." +#: js/blocks/IntervalsBlocks.js:740 +#: js/blocks/WidgetBlocks.js:768 +msgid "arpeggio" msgstr "" -#: js/DrumBlocks.js:146 -msgid "The Effects name block is used to select a sound effect." +#: js/blocks/IntervalsBlocks.js:931 +msgid "The Chord block calculates common chords." msgstr "" -#: js/DrumBlocks.js:163 -msgid "noise" +#: js/blocks/IntervalsBlocks.js:933 +msgid "In the figure, we generate a C-major chord." msgstr "" -#: js/DrumBlocks.js:177 -msgid "The Play noise block will generate white, pink, or brown noise." +#: js/blocks/IntervalsBlocks.js:938 +msgid "chord" msgstr "" -#: js/DrumBlocks.js:191 -#: js/musicutils.js:752 -#: js/synthutils.js:47 -#.TRANS: white noise synthesizer -msgid "white noise" +#: js/blocks/IntervalsBlocks.js:990 +msgid "The Ratio Interval block calculates an interval based on a ratio." msgstr "" -#: js/DrumBlocks.js:326 -msgid "Replace every instance of a pitch with a drum sound." +#: js/blocks/IntervalsBlocks.js:995 +msgid "ratio interval" msgstr "" -#: js/DrumBlocks.js:337 -#.TRANS: map a pitch to a drum sound -msgid "map pitch to drum" +#: js/blocks/IntervalsBlocks.js:1064 +msgid "In the figure, we add la to sol." msgstr "" -#: js/DrumBlocks.js:404 -msgid "In the example above, a kick drum sound will be played instead of sol." +#: js/blocks/IntervalsBlocks.js:1120 +#.TRANS: define a custom mode +msgid "define mode" msgstr "" -#: js/DrumBlocks.js:416 -#.TRANS: set the current drum sound for playback -msgid "set drum" +#: js/blocks/IntervalsBlocks.js:1173 +msgid "movable Do" msgstr "" -#: js/DrumBlocks.js:460 -msgid "sound effect" +#: js/blocks/IntervalsBlocks.js:1224 +#.TRANS: mode length is the number of notes in the mode, e.g., 7 for major and minor scales; 12 for chromatic scales +msgid "mode length" msgstr "" -#: js/DrumBlocks.js:498 -msgid "You can use multiple Drum blocks within a Note block." +#: js/blocks/IntervalsBlocks.js:1233 +msgid "The Mode length block is the number of notes in the current scale." msgstr "" -#: js/RhythmBlocks.js:182 -#: js/RhythmBlocks.js:1086 -#: js/RhythmBlocks.js:1162 -msgid "Note value must be greater than 0." +#: js/blocks/IntervalsBlocks.js:1235 +msgid "Most Western scales have 7 notes." msgstr "" -#: js/RhythmBlocks.js:215 -#: js/RhythmBlocks.js:278 -#: js/RhythmBlocks.js:350 -#.TRANS: swing is a rhythmic variation that emphasises the offbeat -msgid "swing" +#: js/blocks/IntervalsBlocks.js:1284 +#.TRANS: the mode in music is 'major', 'minor', etc. +msgid "current mode" msgstr "" -#: js/RhythmBlocks.js:355 -#.TRANS: the amount to shift to the offbeat note -msgid "swing value" +#: js/blocks/IntervalsBlocks.js:1337 +#.TRANS: the key is a group of pitches with which a music composition is created +msgid "current key" msgstr "" -#: js/RhythmBlocks.js:419 -msgid "The Skip notes block will cause notes to be skipped." +#: js/blocks/IntervalsBlocks.js:1389 +#: js/blocks/IntervalsBlocks.js:1434 +#.TRANS: set the key and mode, e.g. C Major +msgid "set key" msgstr "" -#: js/RhythmBlocks.js:427 -#.TRANS: substitute rests on notes being skipped -msgid "skip notes" +#: js/blocks/IntervalsBlocks.js:1443 +#: js/blocks/IntervalsBlocks.js:1449 +msgid "The Set key block is used to set the key and mode," msgstr "" -#: js/RhythmBlocks.js:489 -#.TRANS: speed up note duration by some factor, e.g. convert 1/4 to 1/8 notes by using a factor of 2 -msgid "multiply note value" +#: js/blocks/IntervalsBlocks.js:1449 +msgid "eg C Major" msgstr "" -#: js/RhythmBlocks.js:542 -msgid "The Tie block works on pairs of notes, combining them into one note." +#: js/blocks/MediaBlocks.js:35 +#.TRANS: right side of the screen +msgid "right (screen)" msgstr "" -#: js/RhythmBlocks.js:550 -#.TRANS: tie notes together into one longer note -msgid "tie" +#: js/blocks/MediaBlocks.js:45 +#: js/blocks/MediaBlocks.js:56 +msgid "The Right block returns the position of the right of the canvas." msgstr "" -#: js/RhythmBlocks.js:591 -#: js/RhythmBlocks.js:671 -#.TRANS: a dotted note is played for 1.5x its value, e.g., 1/8. --> 3/16 -msgid "dot" +#: js/blocks/MediaBlocks.js:97 +#.TRANS: left side of the screen +msgid "left (screen)" msgstr "" -#: js/RhythmBlocks.js:619 -#: js/RhythmActions.js:221 -msgid "An argument of -1 results in a note value of 0." +#: js/blocks/MediaBlocks.js:107 +#: js/blocks/MediaBlocks.js:118 +msgid "The Left block returns the position of the left of the canvas." msgstr "" -#: js/RhythmBlocks.js:661 -msgid "The Dot block extends the duration of a note by 50%." +#: js/blocks/MediaBlocks.js:158 +msgid "top (screen)" msgstr "" -#: js/RhythmBlocks.js:663 -msgid "Eg a dotted quarter note will play for 3/8 (1/4 + 1/8) of a beat." +#: js/blocks/MediaBlocks.js:168 +#: js/blocks/MediaBlocks.js:179 +msgid "The Top block returns the position of the top of the canvas." msgstr "" -#: js/RhythmBlocks.js:765 -#.TRANS: Japanese only: note value block for drum -msgid "note value drum" +#: js/blocks/MediaBlocks.js:219 +msgid "bottom (screen)" msgstr "" -#: js/RhythmBlocks.js:829 -msgid "392 hertz" +#: js/blocks/MediaBlocks.js:229 +#: js/blocks/MediaBlocks.js:240 +msgid "The Bottom block returns the position of the bottom of the canvas." msgstr "" -#: js/RhythmBlocks.js:1119 -msgid "The Note block is a container for one or more Pitch blocks." +#: js/blocks/MediaBlocks.js:282 +msgid "width" msgstr "" -#: js/RhythmBlocks.js:1121 -msgid "The Note block specifies the duration (note value) of its contents." +#: js/blocks/MediaBlocks.js:291 +msgid "The Width block returns the width of the canvas." msgstr "" -#: js/RhythmBlocks.js:1130 -msgid "value2" +#: js/blocks/MediaBlocks.js:325 +msgid "height" msgstr "" -#: js/RhythmBlocks.js:1200 -msgid "define frequency" +#: js/blocks/MediaBlocks.js:334 +msgid "The Height block returns the height of the canvas." msgstr "" -#: js/RhythmBlocks.js:1218 -#: js/temperament.js:650 -#: js/temperament.js:1421 -msgid "octave space" +#: js/blocks/MediaBlocks.js:369 +#.TRANS: stops playback of an audio recording +msgid "stop play" msgstr "" -#: js/NumberBlocks.js:28 -msgid "The Int block returns an integer." +#: js/blocks/MediaBlocks.js:404 +#.TRANS: Erases the images and text +msgid "erase media" msgstr "" -#: js/NumberBlocks.js:34 -msgid "int" +#: js/blocks/MediaBlocks.js:409 +msgid "The Erase Media block erases text and images." msgstr "" -#: js/NumberBlocks.js:73 -msgid "The Mod block returns the remainder from a division." +#: js/blocks/MediaBlocks.js:439 +#.TRANS: play an audio recording +msgid "play back" msgstr "" -#: js/NumberBlocks.js:79 -msgid "mod" -msgstr "mod" +#: js/blocks/MediaBlocks.js:487 +msgid "speak" +msgstr "बोल" -#: js/NumberBlocks.js:123 -msgid "The Power block calculates a power function." +#: js/blocks/MediaBlocks.js:495 +msgid "The Speak block outputs to the text-to-speech synthesizer" msgstr "" -#: js/NumberBlocks.js:178 -msgid "The Sqrt block returns the square root." +#: js/blocks/MediaBlocks.js:546 +msgid "camera" msgstr "" -#: js/NumberBlocks.js:184 -msgid "sqrt" +#: js/blocks/MediaBlocks.js:551 +msgid "The Camera block connects a webcam to the Show block." msgstr "" -#: js/NumberBlocks.js:230 -msgid "The Abs block returns the absolute value." +#: js/blocks/MediaBlocks.js:574 +msgid "video" msgstr "" -#: js/NumberBlocks.js:236 -msgid "abs" +#: js/blocks/MediaBlocks.js:579 +msgid "The Video block selects video for use with the Show block." msgstr "" -#: js/NumberBlocks.js:277 -msgid "The Distance block returns the distance between two points. For example, between the mouse and the center of the screen." +#: js/blocks/MediaBlocks.js:607 +msgid "The Open file block opens a file for use with the Show block." msgstr "" -#: js/NumberBlocks.js:283 -#: plugins/rodi.rtp:310 -msgid "distance" +#: js/blocks/MediaBlocks.js:645 +msgid "stop media" msgstr "" -#: js/NumberBlocks.js:343 -msgid "The Divide block is used to divide." +#: js/blocks/MediaBlocks.js:650 +msgid "The Stop media block stops audio or video playback." msgstr "" -#: js/NumberBlocks.js:411 -msgid "The Multiply block is used to multiply." +#: js/blocks/MediaBlocks.js:679 +#: js/blocks/PitchBlocks.js:1577 +#: js/widgets/musickeyboard.js:1936 +#: js/widgets/phrasemaker.js:1037 +#.TRANS: a measure of frequency: one cycle per second +msgid "hertz" msgstr "" -#: js/NumberBlocks.js:554 -msgid "The Minus block is used to subtract." +#: js/blocks/MediaBlocks.js:692 +#: js/blocks/WidgetBlocks.js:182 +#: js/widgets/temperament.js:506 +#: js/widgets/temperament.js:546 +#: js/widgets/temperament.js:610 +#: js/widgets/temperament.js:618 +#: js/widgets/temperament.js:1505 +#: js/widgets/timbre.js:1842 +msgid "frequency" msgstr "" -#: js/NumberBlocks.js:647 -msgid "The Plus block is used to add." +#: js/blocks/MediaBlocks.js:692 +msgid "duration (ms)" msgstr "" -#: js/NumberBlocks.js:773 -msgid "The One-of block returns one of two choices." +#: js/blocks/MediaBlocks.js:728 +#.TRANS: translate a note into hertz, e.g., A4 -> 440HZ +msgid "note to frequency" msgstr "" -#: js/NumberBlocks.js:780 -#: js/PitchBlocks.js:616 -msgid "one of" +#: js/blocks/MediaBlocks.js:736 +msgid "The To frequency block converts a pitch name and octave to Hertz." msgstr "" -#: js/NumberBlocks.js:782 -msgid "this" +#: js/blocks/MediaBlocks.js:746 +#: js/blocks/PitchBlocks.js:656 +#: js/blocks/PitchBlocks.js:934 +#: js/blocks/PitchBlocks.js:1866 +#.TRANS: name2 is name as in name of pitch (JAPANESE ONLY) +msgid "name2" msgstr "" -#: js/NumberBlocks.js:782 -msgid "that" +#: js/blocks/MediaBlocks.js:812 +msgid "The Avatar block is used to change the appearance of the mouse." msgstr "" -#: js/NumberBlocks.js:837 -msgid "The Random block returns a random number." +#: js/blocks/MediaBlocks.js:819 +msgid "The Avatar block is used to change the appearance of the turtle." msgstr "" -#: js/NumberBlocks.js:844 -msgid "random" -msgstr "जुनसुकै" +#: js/blocks/MediaBlocks.js:831 +#: js/blocks/MediaBlocks.js:891 +#.TRANS: a media object +msgid "size" +msgstr "" -#: js/NumberBlocks.js:846 -msgid "min" -msgstr "कम्ति" +#: js/blocks/MediaBlocks.js:831 +msgid "image" +msgstr "चित्र" -#: js/NumberBlocks.js:846 -msgid "max" -msgstr "अधिक्तम" +#: js/blocks/MediaBlocks.js:880 +msgid "The Show block is used to display text or images on the canvas." +msgstr "" -#: js/NumberBlocks.js:910 -msgid "The Number block holds a number." +#: js/blocks/MediaBlocks.js:888 +#.TRANS: show1 is show as in display an image or text on the screen. +msgid "show1" msgstr "" -#: js/BoxesBlocks.js:53 -#: js/BoxesBlocks.js:59 -msgid "The Add-to block is used to add to the value stored in a box." +#: js/blocks/MediaBlocks.js:891 +msgid "obj" msgstr "" -#: js/BoxesBlocks.js:61 -msgid "It can also be used with other blocks such as Color and Pen size." +#: js/blocks/MediaBlocks.js:938 +msgid "The Media block is used to import an image." msgstr "" -#: js/BoxesBlocks.js:73 -msgid "add" +#: js/blocks/MediaBlocks.js:973 +msgid "The Text block holds a text string." msgstr "" -#: js/BoxesBlocks.js:75 -#: js/temperament.js:716 -msgid "to" +#: js/blocks/MeterBlocks.js:34 +#.TRANS: musical meter (time signature), e.g., 4:4 +msgid "current meter" msgstr "" -#: js/BoxesBlocks.js:75 -#: js/BoxesBlocks.js:595 -#: js/HeapBlocks.js:544 -msgid "value1" +#: js/blocks/MeterBlocks.js:85 +#.TRANS: number of beats per minute +msgid "beat factor" msgstr "" -#: js/BoxesBlocks.js:118 -msgid "Block does not support incrementing." +#: js/blocks/MeterBlocks.js:161 +msgid "The Beats per minute block returns the current beats per minute." msgstr "" -#: js/BoxesBlocks.js:152 -msgid "The Add-1-to block adds one to the value stored in a box." +#: js/blocks/MeterBlocks.js:169 +#: js/widgets/status.js:152 +#.TRANS: number of beats played per minute +msgid "beats per minute2" msgstr "" -#: js/BoxesBlocks.js:163 -msgid "add 1 to" +#: js/blocks/MeterBlocks.js:169 +#: js/blocks/MeterBlocks.js:1056 +#: js/blocks/MeterBlocks.js:1133 +#: js/blocks/MeterBlocks.js:1211 +#.TRANS: sets tempo by defining a beat and beats per minute +msgid "beats per minute" msgstr "" -#: js/BoxesBlocks.js:211 -msgid "The Subtract-1-from block subtracts one from the value stored in a box." +#: js/blocks/MeterBlocks.js:233 +#.TRANS: count of current musical measure in meter +msgid "measure count" msgstr "" -#: js/BoxesBlocks.js:222 -msgid "subtract 1 from" +#: js/blocks/MeterBlocks.js:241 +msgid "The Measure count block returns the current measure." msgstr "" -#: js/BoxesBlocks.js:270 -#: js/BoxesBlocks.js:387 -msgid "The Box block returns the value stored in a box." +#: js/blocks/MeterBlocks.js:290 +#.TRANS: count of current beat in the meter +msgid "beat count" msgstr "" -#: js/BoxesBlocks.js:500 -#: js/BoxesBlocks.js:576 -msgid "The Store in block will store a value in a box." +#: js/blocks/MeterBlocks.js:300 +#: js/blocks/MeterBlocks.js:311 +#: js/blocks/MeterBlocks.js:565 +#: js/blocks/MeterBlocks.js:576 +msgid "The Beat count block is the number of the current beat," msgstr "" -#: js/BoxesBlocks.js:652 -msgid "The Box2 block returns the value stored in Box2." +#: js/blocks/MeterBlocks.js:313 +#: js/blocks/MeterBlocks.js:578 +msgid "eg 1, 2, 3, or 4." msgstr "" -#: js/BoxesBlocks.js:703 -msgid "The Store in Box2 block is used to store a value in Box2." +#: js/blocks/MeterBlocks.js:368 +#.TRANS: count the number of notes +msgid "sum note values" msgstr "" -#: js/BoxesBlocks.js:715 -msgid "store in box2" +#: js/blocks/MeterBlocks.js:376 +#: js/blocks/MeterBlocks.js:440 +msgid "The Note counter block can be used to count the number of contained notes." msgstr "" -#: js/BoxesBlocks.js:761 -msgid "The Box1 block returns the value stored in Box1." +#: js/blocks/MeterBlocks.js:432 +#.TRANS: count the number of notes +msgid "note counter" msgstr "" -#: js/BoxesBlocks.js:812 -msgid "The Store in Box1 block is used to store a value in Box1." +#: js/blocks/MeterBlocks.js:496 +#.TRANS: number of whole notes that have been played +msgid "whole notes played" msgstr "" -#: js/BoxesBlocks.js:826 -msgid "store in box1" +#: js/blocks/MeterBlocks.js:505 +msgid "The Whole notes played block returns the total number of whole notes played." msgstr "" -#: js/HeapBlocks.js:49 -msgid "The Heap block returns the heap." +#: js/blocks/MeterBlocks.js:555 +#: js/turtleactions/DictActions.js:83 +#.TRANS: number of notes that have been played +msgid "notes played" msgstr "" -#: js/HeapBlocks.js:133 -msgid "show heap" -msgstr "हिप देखाउ" +#: js/blocks/MeterBlocks.js:653 +msgid "The No clock block decouples the notes from the master clock." +msgstr "" -#: js/HeapBlocks.js:181 -msgid "The Heap-length block returns the length of the heap." +#: js/blocks/MeterBlocks.js:661 +#.TRANS: don't lock notes to master clock +msgid "no clock" msgstr "" -#: js/HeapBlocks.js:195 -msgid "heap length" +#: js/blocks/MeterBlocks.js:700 +msgid "on weak beat do" msgstr "" -#: js/HeapBlocks.js:254 -msgid "The Heap-empty? block returns true if the heap is empty." +#: js/blocks/MeterBlocks.js:705 +msgid "The On-weak-beat block lets you specify actions to take on weak (off) beats." msgstr "" -#: js/HeapBlocks.js:268 -#.TRANS: Is the heap empty? -msgid "heap empty?" +#: js/blocks/MeterBlocks.js:750 +msgid "on strong beat" msgstr "" -#: js/HeapBlocks.js:317 -msgid "The Empty-heap block empties the heap." +#: js/blocks/MeterBlocks.js:758 +msgid "The On-strong-beat block lets you specify actions to take on specified beats." msgstr "" -#: js/HeapBlocks.js:327 -#: js/HeapBlocks.js:647 -#.TRANS: empty the heap -msgid "empty heap" -msgstr "खाली थाक" +#: js/blocks/MeterBlocks.js:769 +msgid "beat" +msgstr "" -#: js/HeapBlocks.js:371 -msgid "The Reverse-heap block reverses the order of the heap." +#: js/blocks/MeterBlocks.js:813 +msgid "on every beat do" msgstr "" -#: js/HeapBlocks.js:384 -#.TRANS: reverse the order of the heap -msgid "reverse heap" +#: js/blocks/MeterBlocks.js:821 +msgid "The On-every-beat block lets you specify actions to take on every beat." msgstr "" -#: js/HeapBlocks.js:428 -msgid "The Index-heap block returns a value in the heap at a specified location." +#: js/blocks/MeterBlocks.js:874 +msgid "on every note do" msgstr "" -#: js/HeapBlocks.js:443 -#.TRANS: retrieve a value from the heap at index position in the heap -msgid "index heap" +#: js/blocks/MeterBlocks.js:882 +msgid "The On-every-note block lets you specify actions to take on every note." msgstr "" -#: js/HeapBlocks.js:523 -msgid "The Set-heap entry block sets a value in he heap at the specified location." +#: js/blocks/MeterBlocks.js:928 +#: js/blocks/MeterBlocks.js:999 +#.TRANS: sets tempo by defining a beat and beats per minute +msgid "master beats per minute" msgstr "" -#: js/HeapBlocks.js:619 -msgid "The Pop block removes the value at the top of the heap." +#: js/blocks/MeterBlocks.js:952 +#: js/blocks/MeterBlocks.js:1078 +#: js/blocks/MeterBlocks.js:1135 +msgid "bpm" msgstr "" -#: js/HeapBlocks.js:633 -#.TRANS: pop a value off the top of the heap -msgid "pop" -msgstr "पप्" +#: js/blocks/MeterBlocks.js:952 +#: js/blocks/MeterBlocks.js:1078 +#: js/blocks/MeterBlocks.js:1135 +msgid "beat value" +msgstr "" -#: js/HeapBlocks.js:680 -msgid "The Push block adds a value to the top of the heap." +#: js/blocks/MeterBlocks.js:1024 +#: js/blocks/MeterBlocks.js:1167 +#: js/blocks/MeterBlocks.js:1241 +msgid "Beats per minute must be > 30." msgstr "" -#: js/HeapBlocks.js:696 -#.TRANS: push a value onto the top of the heap -msgid "push" -msgstr "धकाल" +#: js/blocks/MeterBlocks.js:1027 +#: js/blocks/MeterBlocks.js:1170 +#: js/blocks/MeterBlocks.js:1244 +msgid "Maximum beats per minute is 1000." +msgstr "" -#: js/FlowBlocks.js:41 -msgid "The Backward block runs code in reverse order (Musical retrograde)." +#: js/blocks/MeterBlocks.js:1068 +msgid "The Beats per minute block sets the number of 1/4 notes per minute." msgstr "" -#: js/FlowBlocks.js:48 -msgid "backward" +#: js/blocks/MeterBlocks.js:1279 +#.TRANS: anacrusis +msgid "pickup" msgstr "" -#: js/FlowBlocks.js:124 -msgid "The Duplicate block will run each block multiple times." +#: js/blocks/MeterBlocks.js:1367 +msgid "number of beats" msgstr "" -#: js/FlowBlocks.js:136 -msgid "duplicate" +#: js/blocks/NumberBlocks.js:28 +msgid "The Int block returns an integer." msgstr "" -#: js/FlowBlocks.js:334 -msgid "The Default block is used inside of a Switch to define the default action." +#: js/blocks/NumberBlocks.js:34 +msgid "int" msgstr "" -#: js/FlowBlocks.js:342 -msgid "default" +#: js/blocks/NumberBlocks.js:73 +msgid "The Mod block returns the remainder from a division." msgstr "" -#: js/FlowBlocks.js:361 -#: js/FlowBlocks.js:418 -msgid "The Case Block must be used inside of a Switch Block." +#: js/blocks/NumberBlocks.js:79 +msgid "mod" +msgstr "mod" + +#: js/blocks/NumberBlocks.js:141 +msgid "The Power block calculates a power function." msgstr "" -#: js/FlowBlocks.js:389 -msgid "The Case block is used inside of a Switch to define matches." +#: js/blocks/NumberBlocks.js:196 +msgid "The Sqrt block returns the square root." msgstr "" -#: js/FlowBlocks.js:397 -msgid "case" +#: js/blocks/NumberBlocks.js:202 +msgid "sqrt" msgstr "" -#: js/FlowBlocks.js:446 -msgid "The Switch block will run the code in the matching Case." +#: js/blocks/NumberBlocks.js:248 +msgid "The Abs block returns the absolute value." msgstr "" -#: js/FlowBlocks.js:454 -msgid "switch" +#: js/blocks/NumberBlocks.js:254 +msgid "abs" msgstr "" -#: js/FlowBlocks.js:595 -msgid "The Stop block will stop a loop" +#: js/blocks/NumberBlocks.js:295 +msgid "The Distance block returns the distance between two points. For example, between the mouse and the center of the screen." msgstr "" -#: js/FlowBlocks.js:597 -msgid "Forever, Repeat, While, or Until." +#: js/blocks/NumberBlocks.js:301 +#: plugins/rodi.rtp:310 +msgid "distance" msgstr "" -#: js/FlowBlocks.js:604 -#: js/phrasemaker.js:3799 -#: js/musickeyboard.js:629 -#: js/musickeyboard.js:631 -#: js/timbre.js:417 -#: js/timbre.js:419 -#: plugins/rodi.rtp:29 -#: plugins/rodi.rtp:73 -#: plugins/rodi.rtp:413 -msgid "stop" -msgstr "रोक" +#: js/blocks/NumberBlocks.js:361 +msgid "The Divide block is used to divide." +msgstr "" -#: js/FlowBlocks.js:653 -msgid "The Waitfor block will wait until the condition is true." +#: js/blocks/NumberBlocks.js:441 +msgid "The Multiply block is used to multiply." msgstr "" -#: js/FlowBlocks.js:661 -msgid "wait for" +#: js/blocks/NumberBlocks.js:612 +msgid "The Minus block is used to subtract." msgstr "" -#: js/FlowBlocks.js:732 -msgid "The Until block will repeat until the condition is true." +#: js/blocks/NumberBlocks.js:723 +msgid "The Plus block is used to add." msgstr "" -#: js/FlowBlocks.js:740 -msgid "until" -msgstr "नभएसम्म" +#: js/blocks/NumberBlocks.js:849 +msgid "The One-of block returns one of two choices." +msgstr "" -#: js/FlowBlocks.js:742 -#: js/FlowBlocks.js:822 -msgid "do2" +#: js/blocks/NumberBlocks.js:856 +#: js/blocks/PitchBlocks.js:616 +msgid "one of" msgstr "" -#: js/FlowBlocks.js:812 -msgid "The While block will repeat while the condition is true." +#: js/blocks/NumberBlocks.js:858 +msgid "this" msgstr "" -#: js/FlowBlocks.js:820 -msgid "while" -msgstr "एकैछिन पछि" +#: js/blocks/NumberBlocks.js:858 +msgid "that" +msgstr "" -#: js/FlowBlocks.js:903 -#: js/FlowBlocks.js:968 -#: js/FlowBlocks.js:979 -msgid "In this example if the mouse button is pressed a snare drum will play." +#: js/blocks/NumberBlocks.js:913 +msgid "The Random block returns a random number." msgstr "" -#: js/FlowBlocks.js:925 -#: js/FlowBlocks.js:988 -msgid "if" -msgstr "यदि" +#: js/blocks/NumberBlocks.js:920 +msgid "random" +msgstr "जुनसुकै" -#: js/FlowBlocks.js:927 -#: js/FlowBlocks.js:990 -msgid "then" -msgstr "अनि" +#: js/blocks/NumberBlocks.js:922 +msgid "min" +msgstr "कम्ति" -#: js/FlowBlocks.js:927 -msgid "else" -msgstr "नत्र" +#: js/blocks/NumberBlocks.js:922 +msgid "max" +msgstr "अधिक्तम" -#: js/FlowBlocks.js:1025 -msgid "The Forever block will repeat the contained blocks forever." +#: js/blocks/NumberBlocks.js:986 +msgid "The Number block holds a number." msgstr "" -#: js/FlowBlocks.js:1037 -msgid "forever" -msgstr "सधैकोलागि" - -#: js/FlowBlocks.js:1073 -msgid "The Repeat block will repeat the contained blocks." +#: js/blocks/OrnamentBlocks.js:32 +msgid "staccato factor" msgstr "" -#: js/FlowBlocks.js:1075 -msgid "In this example the note will be played 4 times." +#: js/blocks/OrnamentBlocks.js:108 +msgid "slur factor" msgstr "" -#: js/FlowBlocks.js:1083 -msgid "repeat" -msgstr "दोहोर्‍याउ" - -#: js/FlowBlocks.js:1123 -msgid "duplicate factor" +#: js/blocks/OrnamentBlocks.js:217 +#: js/blocks/OrnamentBlocks.js:309 +#.TRANS: the neighbor refers to a neighboring note, e.g., D is a neighbor of C +msgid "neighbor" msgstr "" -#: js/PitchBlocks.js:39 -#: js/musicutils.js:722 -#: js/musicutils.js:1117 -#: js/synthutils.js:112 -#.TRANS: square wave -msgid "square" +#: js/blocks/OrnamentBlocks.js:293 +msgid "The Neighbor block rapidly switches between neighboring pitches." msgstr "" -#: js/PitchBlocks.js:62 -#: js/ToneBlocks.js:39 -#: js/musicutils.js:723 -#: js/musicutils.js:1118 -#: js/synthutils.js:116 -#.TRANS: triangle wave -msgid "triangle" +#: js/blocks/OrnamentBlocks.js:364 +msgid "glide" msgstr "" -#: js/PitchBlocks.js:85 -#: js/musicutils.js:721 -#: js/musicutils.js:1116 -#: js/synthutils.js:110 -#.TRANS: sine wave -msgid "sine" +#: js/blocks/OrnamentBlocks.js:479 +#: js/blocks/OrnamentBlocks.js:643 +msgid "slur" msgstr "" -#: js/PitchBlocks.js:108 -#: js/musicutils.js:724 -#: js/musicutils.js:1119 -#: js/synthutils.js:114 -#.TRANS: sawtooth wave -msgid "sawtooth" +#: js/blocks/OrnamentBlocks.js:558 +#: js/blocks/OrnamentBlocks.js:710 +#.TRANS: play each note sharply detached from the others +msgid "staccato" msgstr "" -#: js/PitchBlocks.js:141 -#.TRANS: musical transposition (adjustment of pitch up or down) -msgid "transposition" +#: js/blocks/RhythmBlocks.js:182 +#: js/blocks/RhythmBlocks.js:1086 +#: js/blocks/RhythmBlocks.js:1162 +msgid "Note value must be greater than 0." msgstr "" -#: js/PitchBlocks.js:168 -#.TRANS: step down one note in current musical scale -msgid "scalar step down" +#: js/blocks/RhythmBlocks.js:215 +#: js/blocks/RhythmBlocks.js:278 +#: js/blocks/RhythmBlocks.js:350 +#.TRANS: swing is a rhythmic variation that emphasises the offbeat +msgid "swing" msgstr "" -#: js/PitchBlocks.js:172 -msgid "The Scalar step down block returns the number of semi-tones down to the previous note in the current key and mode." +#: js/blocks/RhythmBlocks.js:355 +#.TRANS: the amount to shift to the offbeat note +msgid "swing value" msgstr "" -#: js/PitchBlocks.js:190 -#.TRANS: step up one note in current musical scale -msgid "scalar step up" +#: js/blocks/RhythmBlocks.js:419 +msgid "The Skip notes block will cause notes to be skipped." msgstr "" -#: js/PitchBlocks.js:194 -msgid "The Scalar step up block returns the number of semi-tones up to the next note in the current key and mode." +#: js/blocks/RhythmBlocks.js:427 +#.TRANS: substitute rests on notes being skipped +msgid "skip notes" msgstr "" -#: js/PitchBlocks.js:212 -#.TRANS: the change measured in half-steps between the current pitch and the previous pitch -msgid "change in pitch" +#: js/blocks/RhythmBlocks.js:489 +#.TRANS: speed up note duration by some factor, e.g. convert 1/4 to 1/8 notes by using a factor of 2 +msgid "multiply note value" msgstr "" -#: js/PitchBlocks.js:216 -msgid "The Change in pitch block is the difference (in half steps) between the current pitch being played and the previous pitch played." +#: js/blocks/RhythmBlocks.js:542 +msgid "The Tie block works on pairs of notes, combining them into one note." msgstr "" -#: js/PitchBlocks.js:243 -#.TRANS: the change measured in scale-steps between the current pitch and the previous pitch -msgid "scalar change in pitch" +#: js/blocks/RhythmBlocks.js:550 +#.TRANS: tie notes together into one longer note +msgid "tie" msgstr "" -#: js/PitchBlocks.js:250 -#: js/PitchBlocks.js:432 -#: js/PitchBlocks.js:1629 -#: js/DictActions.js:89 -#: js/temperament.js:477 -#: js/temperament.js:481 -#: js/temperament.js:714 -#.TRANS: convert current note to piano key (1-88) -#.TRANS: a mapping of pitch to the 88 piano keys -msgid "pitch number" +#: js/blocks/RhythmBlocks.js:591 +#: js/blocks/RhythmBlocks.js:671 +#.TRANS: a dotted note is played for 1.5x its value, e.g., 1/8. --> 3/16 +msgid "dot" msgstr "" -#: js/PitchBlocks.js:256 -msgid "The Pitch number block is the value of the pitch of the note currently being played." +#: js/blocks/RhythmBlocks.js:619 +#: js/turtleactions/RhythmActions.js:221 +msgid "An argument of -1 results in a note value of 0." msgstr "" -#: js/PitchBlocks.js:329 -#: js/PitchBlocks.js:433 -#.TRANS: the current pitch expressed in Hertz -msgid "pitch in hertz" +#: js/blocks/RhythmBlocks.js:661 +msgid "The Dot block extends the duration of a note by 50%." msgstr "" -#: js/PitchBlocks.js:334 -msgid "The Pitch in Hertz block is the value in Hertz of the pitch of the note currently being played." +#: js/blocks/RhythmBlocks.js:663 +msgid "Eg a dotted quarter note will play for 3/8 (1/4 + 1/8) of a beat." msgstr "" -#: js/PitchBlocks.js:367 -#: js/DictActions.js:87 -msgid "current pitch" +#: js/blocks/RhythmBlocks.js:765 +#.TRANS: Japanese only: note value block for drum +msgid "note value drum" msgstr "" -#: js/PitchBlocks.js:373 -msgid "The Current Pitch block is used with the Pitch Converter block. In the example above, current pitch, sol 4, is displayed as 392 hertz." +#: js/blocks/RhythmBlocks.js:829 +msgid "392 hertz" msgstr "" -#: js/PitchBlocks.js:410 -msgid "This block converts the pitch value of the last note played into different formats such as hertz, letter name, pitch number, et al." +#: js/blocks/RhythmBlocks.js:1119 +msgid "The Note block is a container for one or more Pitch blocks." msgstr "" -#: js/PitchBlocks.js:434 -msgid "alphabet" +#: js/blocks/RhythmBlocks.js:1121 +msgid "The Note block specifies the duration (note value) of its contents." msgstr "" -#: js/PitchBlocks.js:436 -#.TRANS: Translate as "alphabet class" -msgid "letter class" +#: js/blocks/RhythmBlocks.js:1128 +#: js/blocks/PitchBlocks.js:974 +#: js/blocks/PitchBlocks.js:1007 +#: js/blocks/ProgramBlocks.js:1186 +#: js/blocks/ProgramBlocks.js:1227 +#: js/widgets/status.js:190 +#: js/widgets/temperament.js:464 +#: js/widgets/temperament.js:486 +#: js/widgets/temperament.js:496 +#: js/widgets/temperament.js:617 +#: plugins/rodi.rtp:192 +#.TRANS: a musical note consisting of pitch and duration +msgid "note" msgstr "" -#: js/PitchBlocks.js:437 -msgid "solfege class" +#: js/blocks/RhythmBlocks.js:1130 +msgid "value2" msgstr "" -#: js/PitchBlocks.js:438 -msgid "staff y" +#: js/blocks/RhythmBlocks.js:1200 +msgid "define frequency" msgstr "" -#: js/PitchBlocks.js:439 -msgid "solfege syllable" +#: js/blocks/RhythmBlocks.js:1218 +#: js/widgets/temperament.js:787 +#: js/widgets/temperament.js:1587 +msgid "octave space" msgstr "" -#: js/PitchBlocks.js:440 -msgid "pitch class" +#: js/blocks/SensorsBlocks.js:36 +msgid "The Input block prompts for keyboard input." msgstr "" -#: js/PitchBlocks.js:441 -msgid "scalar class" +#: js/blocks/SensorsBlocks.js:46 +msgid "input" msgstr "" -#: js/PitchBlocks.js:443 -msgid "nth degree" +#: js/blocks/SensorsBlocks.js:64 +msgid "Input a value" msgstr "" -#: js/PitchBlocks.js:444 -msgid "pitch to shade" +#: js/blocks/SensorsBlocks.js:126 +msgid "input value" msgstr "" -#: js/PitchBlocks.js:445 -msgid "pitch to color" +#: js/blocks/SensorsBlocks.js:131 +msgid "The Input-value block stores the input." msgstr "" -#: js/PitchBlocks.js:629 -#: js/musickeyboard.js:565 -#.TRANS: MIDI is a technical standard for electronic music -msgid "MIDI" -msgstr "" +#: js/blocks/SensorsBlocks.js:238 +msgid "loudness" +msgstr "चर्कोपन" -#: js/PitchBlocks.js:642 -#.TRANS: set an offset associated with the numeric piano keyboard mapping -msgid "set pitch number offset" +#: js/blocks/SensorsBlocks.js:245 +msgid "The Loudness block returns the volume detected by the microphone." msgstr "" -#: js/PitchBlocks.js:645 -msgid "The Set pitch number offset block is used to set the offset for mapping pitch numbers to pitch and octave." +#: js/blocks/SensorsBlocks.js:300 +msgid "click" msgstr "" -#: js/PitchBlocks.js:679 -#.TRANS: convert piano key number (1-88) to pitch -msgid "number to pitch" +#: js/blocks/SensorsBlocks.js:306 +msgid "The Click block triggers an event if a mouse has been clicked." msgstr "" -#: js/PitchBlocks.js:682 -msgid "The Number to pitch block will convert a pitch number to a pich name." +#: js/blocks/SensorsBlocks.js:313 +msgid "The Click block triggers an event if a turtle has been clicked." msgstr "" -#: js/PitchBlocks.js:715 -#.TRANS: convert piano key number (1-88) to octave -msgid "number to octave" +#: js/blocks/SensorsBlocks.js:342 +msgid "cursor over" msgstr "" -#: js/PitchBlocks.js:717 -msgid "The Number to octave block will convert a pitch number to an octave." +#: js/blocks/SensorsBlocks.js:387 +msgid "cursor out" msgstr "" -#: js/PitchBlocks.js:726 -msgid "y to pitch" +#: js/blocks/SensorsBlocks.js:433 +msgid "cursor button down" msgstr "" -#: js/PitchBlocks.js:729 -msgid "Y to pitch block will convert a staff y position to corresponding pitch notation." +#: js/blocks/SensorsBlocks.js:477 +msgid "cursor button up" msgstr "" -#: js/PitchBlocks.js:841 -msgid "accidental selector" +#: js/blocks/SensorsBlocks.js:521 +#: js/blocks/PenBlocks.js:48 +#: plugins/rodi.rtp:219 +msgid "blue" msgstr "" -#: js/PitchBlocks.js:844 -msgid "The Accidental selector block is used to choose between double-sharp, sharp, natural, flat, and double-flat." +#: js/blocks/SensorsBlocks.js:577 +#: js/blocks/PenBlocks.js:64 +#: plugins/rodi.rtp:218 +msgid "green" msgstr "" -#: js/PitchBlocks.js:858 -msgid "Pitch can be specified in terms of ni dha pa ma ga re sa." +#: js/blocks/SensorsBlocks.js:633 +#: js/blocks/PenBlocks.js:112 +#: plugins/rodi.rtp:217 +msgid "red" msgstr "" -#: js/PitchBlocks.js:872 -msgid "Pitch can be specified in terms of C D E F G A B." +#: js/blocks/SensorsBlocks.js:638 +msgid "The Get red block returns the red component of the pixel under the mouse." msgstr "" -#: js/PitchBlocks.js:883 -msgid "solfege" +#: js/blocks/SensorsBlocks.js:644 +msgid "The Get red block returns the red component of the pixel under the turtle." msgstr "" -#: js/PitchBlocks.js:886 -msgid "Pitch can be specified in terms of do re mi fa sol la ti." +#: js/blocks/SensorsBlocks.js:685 +#: plugins/rodi.rtp:216 +msgid "pixel color" msgstr "" -#: js/PitchBlocks.js:920 -msgid "The Invert block rotates any contained notes around a target note." +#: js/blocks/SensorsBlocks.js:690 +msgid "The Get pixel block returns the color of the pixel under the mouse." msgstr "" -#: js/PitchBlocks.js:927 -#.TRANS: pitch inversion rotates a pitch around another pitch -msgid "invert" +#: js/blocks/SensorsBlocks.js:696 +msgid "The Get pixel block returns the color of the pixel under the turtle." msgstr "" -#: js/PitchBlocks.js:929 -#: js/PitchBlocks.js:935 -#: js/PitchActions.js:727 -#: js/musicutils.js:726 -#: js/musicutils.js:902 -#.TRANS: invert based on even or odd number or musical scale -#.TRANS: even numbers -msgid "even" -msgstr "" +#: js/blocks/SensorsBlocks.js:758 +msgid "time" +msgstr "समय" -#: js/PitchBlocks.js:935 -#: js/PitchActions.js:729 -#: js/musicutils.js:728 -#: js/musicutils.js:903 -#.TRANS: odd numbers -msgid "odd" +#: js/blocks/SensorsBlocks.js:804 +msgid "cursor y" msgstr "" -#: js/PitchBlocks.js:935 -#: js/PitchActions.js:731 -#: js/musicutils.js:729 -#: js/musicutils.js:904 -msgid "scalar" +#: js/blocks/SensorsBlocks.js:809 +msgid "The Cursor Y block returns the vertical position of the mouse." msgstr "" -#: js/PitchBlocks.js:966 -#.TRANS: pitch inversion rotates a pitch around another pitch (odd number) -msgid "invert (odd)" +#: js/blocks/SensorsBlocks.js:845 +msgid "cursor x" msgstr "" -#: js/PitchBlocks.js:999 -#.TRANS: pitch inversion rotates a pitch around another pitch (even number) -msgid "invert (even)" +#: js/blocks/SensorsBlocks.js:850 +msgid "The Cursor X block returns the horizontal position of the mouse." msgstr "" -#: js/PitchBlocks.js:1020 -#.TRANS: register is the octave of the current pitch -msgid "register" +#: js/blocks/SensorsBlocks.js:886 +msgid "mouse button" msgstr "" -#: js/PitchBlocks.js:1024 -msgid "The Register block provides an easy way to modify the register (octave) of the notes that follow it." +#: js/blocks/SensorsBlocks.js:888 +msgid "The Mouse-button block returns True if the mouse button is pressed." msgstr "" -#: js/PitchBlocks.js:1074 -msgid "The Semi-tone transposition block will shift the pitches contained inside Note blocks up (or down) by half steps." +#: js/blocks/SensorsBlocks.js:934 +msgid "to ASCII" msgstr "" -#: js/PitchBlocks.js:1076 -msgid "In the example shown above, sol is shifted up to sol#." +#: js/blocks/SensorsBlocks.js:938 +msgid "The To ASCII block converts numbers to letters." msgstr "" -#: js/PitchBlocks.js:1082 -#.TRANS: adjust the amount of shift (up or down) of a pitch -msgid "semi-tone transpose" +#: js/blocks/SensorsBlocks.js:1005 +msgid "The Keyboard block returns computer keyboard input." msgstr "" -#: js/PitchBlocks.js:1115 -msgid "The Transpose by Ratio block will shift the pitches contained inside Note blocks up (or down) by a ratio" +#: js/blocks/RhythmBlockPaletteBlocks.js:50 +#: js/blocks/RhythmBlockPaletteBlocks.js:233 +#.TRANS: rhythm block +#.TRANS: translate "rhythm1" as rhythm +msgid "rhythm1" msgstr "" -#: js/PitchBlocks.js:1121 -#.TRANS: adjust the amount of shift (up or down) of a pitch -msgid "transpose by ratio" +#: js/blocks/RhythmBlockPaletteBlocks.js:70 +#: js/blocks/RhythmBlockPaletteBlocks.js:252 +#: js/blocks/RhythmBlockPaletteBlocks.js:485 +#: js/blocks/RhythmBlockPaletteBlocks.js:554 +#: js/blocks/RhythmBlockPaletteBlocks.js:875 +msgid "number of notes" msgstr "" -#: js/PitchBlocks.js:1204 -#.TRANS: down sixth means the note is five scale degrees below current note -msgid "down sixth" +#: js/blocks/RhythmBlockPaletteBlocks.js:126 +msgid "polyphonic rhythm" msgstr "" -#: js/PitchBlocks.js:1223 -#.TRANS: down third means the note is two scale degrees below current note -msgid "down third" +#: js/blocks/RhythmBlockPaletteBlocks.js:219 +msgid "The Rhythm block is used to generate rhythm patterns." msgstr "" -#: js/PitchBlocks.js:1242 -#.TRANS: seventh means the note is the six scale degrees above current note -msgid "seventh" +#: js/blocks/RhythmBlockPaletteBlocks.js:280 +msgid "1/64 note" msgstr "" -#: js/PitchBlocks.js:1261 -#.TRANS: sixth means the note is the five scale degrees above current note -msgid "sixth" +#: js/blocks/RhythmBlockPaletteBlocks.js:304 +msgid "1/32 note" msgstr "" -#: js/PitchBlocks.js:1280 -#.TRANS: fifth means the note is the four scale degrees above current note -msgid "fifth" +#: js/blocks/RhythmBlockPaletteBlocks.js:332 +msgid "1/16 note" msgstr "" -#: js/PitchBlocks.js:1300 -#.TRANS: fourth means the note is three scale degrees above current note -msgid "fourth" +#: js/blocks/RhythmBlockPaletteBlocks.js:360 +msgid "eighth note" msgstr "" -#: js/PitchBlocks.js:1319 -#.TRANS: third means the note is two scale degrees above current note -msgid "third" +#: js/blocks/RhythmBlockPaletteBlocks.js:388 +msgid "quarter note" msgstr "" -#: js/PitchBlocks.js:1338 -#.TRANS: second means the note is one scale degree above current note -msgid "second" +#: js/blocks/RhythmBlockPaletteBlocks.js:416 +msgid "half note" msgstr "" -#: js/PitchBlocks.js:1379 -msgid "The Scalar transposition block will shift the pitches contained inside Note blocks up (or down) the scale." +#: js/blocks/RhythmBlockPaletteBlocks.js:444 +msgid "whole note" msgstr "" -#: js/PitchBlocks.js:1381 -msgid "In the example shown above, sol is shifted up to la." +#: js/blocks/RhythmBlockPaletteBlocks.js:482 +#: js/blocks/RhythmBlockPaletteBlocks.js:551 +#: js/blocks/RhythmBlockPaletteBlocks.js:602 +#.TRANS: A tuplet is a note value divided into irregular time values. +msgid "tuplet" msgstr "" -#: js/PitchBlocks.js:1388 -#.TRANS: adjust the amount of shift (up or down) of a pitch by musical scale (scalar) steps -msgid "scalar transpose" +#: js/blocks/RhythmBlockPaletteBlocks.js:768 +msgid "septuplet" msgstr "" -#: js/PitchBlocks.js:1423 -msgid "The Accidental block is used to create sharps and flats" +#: js/blocks/RhythmBlockPaletteBlocks.js:796 +msgid "quintuplet" msgstr "" -#: js/PitchBlocks.js:1430 -#.TRANS: An accidental is a modification to a pitch, e.g., sharp or flat. -msgid "accidental override" +#: js/blocks/RhythmBlockPaletteBlocks.js:824 +msgid "triplet" msgstr "" -#: js/PitchBlocks.js:1543 -msgid "The Hertz block (in combination with a Number block) will play a sound at the specified frequency." +#: js/blocks/RhythmBlockPaletteBlocks.js:851 +msgid "simple tuplet" msgstr "" -#: js/PitchBlocks.js:1633 -msgid "The Pitch Number block will play a pitch associated by its number, e.g. 0 for C and 7 for G." +#: js/blocks/RhythmBlockPaletteBlocks.js:861 +msgid "Tuplets are a collection of notes that get scaled to a specific duration." msgstr "" -#: js/PitchBlocks.js:1665 -#: js/PitchBlocks.js:1707 -#.TRANS: a numeric mapping of the notes in an octave based on the musical mode -#.TRANS: a numeric mapping of the notes in an octave based on the musical mode -msgid "nth modal pitch" +#: js/blocks/DrumBlocks.js:59 +msgid "The Noise name block is used to select a noise synthesizer." msgstr "" -#: js/PitchBlocks.js:1668 -msgid "n^th Modal Pitch takes the pattern of pitches in semitones for a mode and makes each point a degree of the mode," +#: js/blocks/DrumBlocks.js:102 +msgid "The Drum name block is used to select a drum." msgstr "" -#: js/PitchBlocks.js:1670 -msgid "starting from 1 and regardless of tonal framework (i.e. not always 8 notes in the octave)" +#: js/blocks/DrumBlocks.js:146 +msgid "The Effects name block is used to select a sound effect." msgstr "" -#: js/PitchBlocks.js:1711 -msgid "N^th Modal Pitch takes a number as an input as the n^th degree for the given mode. 0 is the first position, 1 is the second, -1 is the note before the first etc." +#: js/blocks/DrumBlocks.js:163 +msgid "noise" msgstr "" -#: js/PitchBlocks.js:1713 -msgid "The pitches change according to the mode specified without any need for respellings." +#: js/blocks/DrumBlocks.js:177 +msgid "The Play noise block will generate white, pink, or brown noise." msgstr "" -#: js/PitchBlocks.js:1752 -msgid "Scale Degree is a common convention in music. Scale Degree offers seven possible positions in the scale (1-7) and can be modified via accidentals." +#: js/blocks/DrumBlocks.js:317 +msgid "Replace every instance of a pitch with a drum sound." msgstr "" -#: js/PitchBlocks.js:1754 -msgid "Scale Degree 1 is always the first pitch in a given scale, regardless of octave." +#: js/blocks/DrumBlocks.js:328 +#.TRANS: map a pitch to a drum sound +msgid "map pitch to drum" msgstr "" -#: js/PitchBlocks.js:1776 -#.TRANS: step some number of notes in current musical scale -msgid "scalar step" +#: js/blocks/DrumBlocks.js:395 +msgid "In the example above, a kick drum sound will be played instead of sol." msgstr "" -#: js/PitchBlocks.js:1781 -msgid "The Scalar Step block (in combination with a Number block) will play the next pitch in a scale," +#: js/blocks/DrumBlocks.js:407 +#.TRANS: set the current drum sound for playback +msgid "set drum" msgstr "" -#: js/PitchBlocks.js:1783 -msgid "eg if the last note played was sol, Scalar Step 1 will play la." +#: js/blocks/DrumBlocks.js:451 +msgid "sound effect" msgstr "" -#: js/PitchBlocks.js:1818 -msgid "The Pitch block specifies the pitch name and octave of a note that together determine the frequency of the note." +#: js/blocks/DrumBlocks.js:489 +msgid "You can use multiple Drum blocks within a Note block." msgstr "" -#: js/GraphicsBlocks.js:46 -#: js/DictActions.js:77 -#: js/DictActions.js:155 -#: js/DictActions.js:189 +#: js/blocks/GraphicsBlocks.js:46 +#: js/turtleactions/DictActions.js:77 +#: js/turtleactions/DictActions.js:144 +#: js/turtleactions/DictActions.js:173 msgid "heading" msgstr "शीर्षक" -#: js/GraphicsBlocks.js:56 +#: js/blocks/GraphicsBlocks.js:56 msgid "The Heading block returns the orientation of the mouse." msgstr "" -#: js/GraphicsBlocks.js:62 +#: js/blocks/GraphicsBlocks.js:62 msgid "The Heading block returns the orientation of the turtle." msgstr "" -#: js/GraphicsBlocks.js:133 +#: js/blocks/GraphicsBlocks.js:133 msgid "The Y block returns the vertical position of the mouse." msgstr "" -#: js/GraphicsBlocks.js:140 +#: js/blocks/GraphicsBlocks.js:140 msgid "The Y block returns the vertical position of the turtle." msgstr "" -#: js/GraphicsBlocks.js:149 +#: js/blocks/GraphicsBlocks.js:149 msgid "y3" msgstr "" -#: js/GraphicsBlocks.js:219 +#: js/blocks/GraphicsBlocks.js:219 msgid "The X block returns the horizontal position of the mouse." msgstr "" -#: js/GraphicsBlocks.js:226 +#: js/blocks/GraphicsBlocks.js:226 msgid "The X block returns the horizontal position of the turtle." msgstr "" -#: js/GraphicsBlocks.js:235 +#: js/blocks/GraphicsBlocks.js:235 msgid "x3" msgstr "" -#: js/GraphicsBlocks.js:295 +#: js/blocks/GraphicsBlocks.js:295 msgid "scroll xy" msgstr "" -#: js/GraphicsBlocks.js:303 +#: js/blocks/GraphicsBlocks.js:303 msgid "The Scroll XY block moves the canvas." msgstr "" -#: js/GraphicsBlocks.js:313 +#: js/blocks/GraphicsBlocks.js:313 msgid "x2" msgstr "" -#: js/GraphicsBlocks.js:313 +#: js/blocks/GraphicsBlocks.js:313 msgid "y2" msgstr "" -#: js/GraphicsBlocks.js:373 -#: js/temperament.js:213 -#: js/temperament.js:241 +#: js/blocks/GraphicsBlocks.js:373 +#: js/widgets/temperament.js:319 +#: js/widgets/temperament.js:347 msgid "clear" msgstr "" -#: js/GraphicsBlocks.js:426 +#: js/blocks/GraphicsBlocks.js:426 msgid "The Control-point 2 block sets the second control point for the Bezier curve." msgstr "" -#: js/GraphicsBlocks.js:433 +#: js/blocks/GraphicsBlocks.js:433 msgid "control point 2" msgstr "" -#: js/GraphicsBlocks.js:436 -#: js/GraphicsBlocks.js:487 -#: js/GraphicsBlocks.js:534 -#: js/GraphicsBlocks.js:750 +#: js/blocks/GraphicsBlocks.js:436 +#: js/blocks/GraphicsBlocks.js:487 +#: js/blocks/GraphicsBlocks.js:534 +#: js/blocks/GraphicsBlocks.js:750 msgid "x1" msgstr "" -#: js/GraphicsBlocks.js:436 -#: js/GraphicsBlocks.js:487 -#: js/GraphicsBlocks.js:534 -#: js/GraphicsBlocks.js:750 +#: js/blocks/GraphicsBlocks.js:436 +#: js/blocks/GraphicsBlocks.js:487 +#: js/blocks/GraphicsBlocks.js:534 +#: js/blocks/GraphicsBlocks.js:750 msgid "y1" msgstr "" -#: js/GraphicsBlocks.js:477 +#: js/blocks/GraphicsBlocks.js:477 msgid "The Control-point 1 block sets the first control point for the Bezier curve." msgstr "" -#: js/GraphicsBlocks.js:484 +#: js/blocks/GraphicsBlocks.js:484 msgid "control point 1" msgstr "" -#: js/GraphicsBlocks.js:527 +#: js/blocks/GraphicsBlocks.js:527 msgid "The Bezier block draws a Bezier curve." msgstr "" -#: js/GraphicsBlocks.js:531 +#: js/blocks/GraphicsBlocks.js:531 msgid "bezier" msgstr "" -#: js/GraphicsBlocks.js:592 +#: js/blocks/GraphicsBlocks.js:592 msgid "The Arc block moves the turtle in an arc." msgstr "" -#: js/GraphicsBlocks.js:600 +#: js/blocks/GraphicsBlocks.js:600 msgid "arc" msgstr "वृत्तखण्ड" -#: js/GraphicsBlocks.js:603 +#: js/blocks/GraphicsBlocks.js:603 msgid "angle" msgstr "कोण" -#: js/GraphicsBlocks.js:603 +#: js/blocks/GraphicsBlocks.js:603 msgid "radius" msgstr "त्रिज्या" -#: js/GraphicsBlocks.js:620 -#: js/GraphicsBlocks.js:767 -#: js/GraphicsBlocks.js:1010 -#: js/GraphicsBlocks.js:1093 +#: js/blocks/GraphicsBlocks.js:620 +#: js/blocks/GraphicsBlocks.js:767 +#: js/blocks/GraphicsBlocks.js:1010 +#: js/blocks/GraphicsBlocks.js:1093 msgid "Value must be within -5000 to 5000 when Wrap Mode is off." msgstr "" -#: js/GraphicsBlocks.js:622 -#: js/GraphicsBlocks.js:769 -#: js/GraphicsBlocks.js:1012 -#: js/GraphicsBlocks.js:1095 +#: js/blocks/GraphicsBlocks.js:622 +#: js/blocks/GraphicsBlocks.js:769 +#: js/blocks/GraphicsBlocks.js:1012 +#: js/blocks/GraphicsBlocks.js:1095 msgid "Value must be within -20000 to 20000 when Wrap Mode is on." msgstr "" -#: js/GraphicsBlocks.js:660 +#: js/blocks/GraphicsBlocks.js:660 msgid "set heading" msgstr "शीर्षक राख" -#: js/GraphicsBlocks.js:673 +#: js/blocks/GraphicsBlocks.js:673 msgid "The Set heading block sets the heading of the turtle." msgstr "" -#: js/GraphicsBlocks.js:733 +#: js/blocks/GraphicsBlocks.js:733 msgid "The Set XY block moves the mouse to a specific position on the screen." msgstr "" -#: js/GraphicsBlocks.js:739 +#: js/blocks/GraphicsBlocks.js:739 msgid "The Set XY block moves the turtle to a specific position on the screen." msgstr "" -#: js/GraphicsBlocks.js:747 +#: js/blocks/GraphicsBlocks.js:747 msgid "set xy" msgstr "xy राख" -#: js/GraphicsBlocks.js:819 +#: js/blocks/GraphicsBlocks.js:819 msgid "The Right block turns the mouse to the right." msgstr "" -#: js/GraphicsBlocks.js:826 +#: js/blocks/GraphicsBlocks.js:826 msgid "The Right block turns the turtle to the right." msgstr "" -#: js/GraphicsBlocks.js:835 +#: js/blocks/GraphicsBlocks.js:835 msgid "right1" msgstr "" -#: js/GraphicsBlocks.js:835 +#: js/blocks/GraphicsBlocks.js:835 #: plugins/rodi.rtp:77 #: plugins/rodi.rtp:340 #: plugins/rodi.rtp:375 msgid "right" msgstr "दायाँ" -#: js/GraphicsBlocks.js:899 +#: js/blocks/GraphicsBlocks.js:899 msgid "The Left block turns the mouse to the left." msgstr "" -#: js/GraphicsBlocks.js:906 +#: js/blocks/GraphicsBlocks.js:906 msgid "The Left block turns the turtle to the left." msgstr "" -#: js/GraphicsBlocks.js:915 +#: js/blocks/GraphicsBlocks.js:915 msgid "left1" msgstr "" -#: js/GraphicsBlocks.js:915 +#: js/blocks/GraphicsBlocks.js:915 #: plugins/rodi.rtp:79 #: plugins/rodi.rtp:339 #: plugins/rodi.rtp:362 msgid "left" msgstr "बायाँ" -#: js/GraphicsBlocks.js:967 -#: js/temperament.js:734 -#: js/temperament.js:933 +#: js/blocks/GraphicsBlocks.js:967 +#: js/widgets/temperament.js:875 +#: js/widgets/temperament.js:1078 #: plugins/rodi.rtp:69 #: plugins/rodi.rtp:387 msgid "back" msgstr "पछाडि" -#: js/GraphicsBlocks.js:976 +#: js/blocks/GraphicsBlocks.js:976 msgid "The Back block moves the mouse backward." msgstr "" -#: js/GraphicsBlocks.js:983 +#: js/blocks/GraphicsBlocks.js:983 msgid "The Back block moves the turtle backward." msgstr "" -#: js/GraphicsBlocks.js:1050 +#: js/blocks/GraphicsBlocks.js:1050 #: plugins/rodi.rtp:71 #: plugins/rodi.rtp:400 msgid "forward" msgstr "अगाडि" -#: js/GraphicsBlocks.js:1059 +#: js/blocks/GraphicsBlocks.js:1059 msgid "The Forward block moves the mouse forward." msgstr "" -#: js/GraphicsBlocks.js:1066 +#: js/blocks/GraphicsBlocks.js:1066 msgid "The Forward block moves the turtle forward." msgstr "" -#: js/GraphicsBlocks.js:1154 -#: js/GraphicsBlocks.js:1172 +#: js/blocks/GraphicsBlocks.js:1154 +#: js/blocks/GraphicsBlocks.js:1172 msgid "wrap" msgstr "" -#: js/OrnamentBlocks.js:32 -msgid "staccato factor" -msgstr "" - -#: js/OrnamentBlocks.js:108 -msgid "slur factor" -msgstr "" - -#: js/OrnamentBlocks.js:217 -#: js/OrnamentBlocks.js:309 -#.TRANS: the neighbor refers to a neighboring note, e.g., D is a neighbor of C -msgid "neighbor" -msgstr "" - -#: js/OrnamentBlocks.js:293 -msgid "The Neighbor block rapidly switches between neighboring pitches." -msgstr "" - -#: js/OrnamentBlocks.js:364 -msgid "glide" -msgstr "" - -#: js/OrnamentBlocks.js:479 -#: js/OrnamentBlocks.js:643 -msgid "slur" -msgstr "" - -#: js/OrnamentBlocks.js:558 -#: js/OrnamentBlocks.js:710 -#.TRANS: play each note sharply detached from the others -msgid "staccato" -msgstr "" - -#: js/PenBlocks.js:24 +#: js/blocks/PenBlocks.js:30 msgid "purple" msgstr "" -#: js/PenBlocks.js:37 -#: js/SensorsBlocks.js:521 -#: plugins/rodi.rtp:219 -msgid "blue" -msgstr "" - -#: js/PenBlocks.js:50 -#: js/SensorsBlocks.js:577 -#: plugins/rodi.rtp:218 -msgid "green" -msgstr "" - -#: js/PenBlocks.js:63 +#: js/blocks/PenBlocks.js:80 msgid "yellow" msgstr "" -#: js/PenBlocks.js:76 +#: js/blocks/PenBlocks.js:96 #: plugins/nutrition.rtp:164 msgid "orange" msgstr "सुन्तला" -#: js/PenBlocks.js:89 -#: js/SensorsBlocks.js:633 -#: plugins/rodi.rtp:217 -msgid "red" -msgstr "" - -#: js/PenBlocks.js:102 +#: js/blocks/PenBlocks.js:128 msgid "white" msgstr "" -#: js/PenBlocks.js:115 +#: js/blocks/PenBlocks.js:144 msgid "black" msgstr "" -#: js/PenBlocks.js:128 +#: js/blocks/PenBlocks.js:163 msgid "begin fill" msgstr "" -#: js/PenBlocks.js:143 +#: js/blocks/PenBlocks.js:190 msgid "end fill" msgstr "अन्त्यमा भर" -#: js/PenBlocks.js:159 -#: js/PenBlocks.js:386 +#: js/blocks/PenBlocks.js:212 +#: js/blocks/PenBlocks.js:560 #.TRANS: set the background color msgid "background" msgstr "" -#: js/PenBlocks.js:206 -#: js/DictActions.js:71 -#: js/DictActions.js:149 -#: js/DictActions.js:186 +#: js/blocks/PenBlocks.js:274 +#: js/turtleactions/DictActions.js:71 +#: js/turtleactions/DictActions.js:138 +#: js/turtleactions/DictActions.js:170 msgid "grey" msgstr "" -#: js/PenBlocks.js:210 +#: js/blocks/PenBlocks.js:282 msgid "The Grey block returns the current pen grey value." msgstr "" -#: js/PenBlocks.js:243 -#: js/DictActions.js:69 -#: js/DictActions.js:147 -#: js/DictActions.js:185 +#: js/blocks/PenBlocks.js:340 +#: js/turtleactions/DictActions.js:69 +#: js/turtleactions/DictActions.js:136 +#: js/turtleactions/DictActions.js:169 msgid "shade" msgstr "छाया" -#: js/PenBlocks.js:247 +#: js/blocks/PenBlocks.js:347 msgid "The Shade block returns the current pen shade value." msgstr "" -#: js/PenBlocks.js:280 -#: js/DictActions.js:67 -#: js/DictActions.js:145 -#: js/DictActions.js:184 +#: js/blocks/PenBlocks.js:405 +#: js/turtleactions/DictActions.js:67 +#: js/turtleactions/DictActions.js:134 +#: js/turtleactions/DictActions.js:168 msgid "color" msgstr "रंग" -#: js/PenBlocks.js:285 +#: js/blocks/PenBlocks.js:415 msgid "The Color block returns the current pen color." msgstr "" -#: js/PenBlocks.js:318 -#: js/DictActions.js:73 -#: js/DictActions.js:151 -#: js/DictActions.js:187 +#: js/blocks/PenBlocks.js:470 +#: js/turtleactions/DictActions.js:73 +#: js/turtleactions/DictActions.js:140 +#: js/turtleactions/DictActions.js:171 msgid "pen size" msgstr "कलमको आकार" -#: js/PenBlocks.js:322 +#: js/blocks/PenBlocks.js:474 msgid "The Pen size block returns the current pen size value." msgstr "" -#: js/PenBlocks.js:355 +#: js/blocks/PenBlocks.js:513 msgid "set font" msgstr "" -#: js/PenBlocks.js:358 +#: js/blocks/PenBlocks.js:518 msgid "The Set font block sets the font used by the Show block." msgstr "" -#: js/PenBlocks.js:391 +#: js/blocks/PenBlocks.js:567 msgid "The Background block sets the window background color." msgstr "" -#: js/PenBlocks.js:408 +#: js/blocks/PenBlocks.js:598 msgid "The Hollow line block creates a line with a hollow center." msgstr "" -#: js/PenBlocks.js:415 +#: js/blocks/PenBlocks.js:606 #.TRANS: draw a line logo has a hollow space down its center msgid "hollow line" msgstr "" -#: js/PenBlocks.js:462 +#: js/blocks/PenBlocks.js:675 msgid "The Fill block fills in a shape with a color." msgstr "" -#: js/PenBlocks.js:470 +#: js/blocks/PenBlocks.js:684 #.TRANS: fill in as a solid color msgid "fill" msgstr "" -#: js/PenBlocks.js:527 +#: js/blocks/PenBlocks.js:761 #.TRANS: raise up the pen so logo it does not draw when it is moved msgid "pen up" msgstr "कलमले नलेख" -#: js/PenBlocks.js:532 +#: js/blocks/PenBlocks.js:768 msgid "The Pen-up block raises the pen so that it does not draw." msgstr "" -#: js/PenBlocks.js:552 +#: js/blocks/PenBlocks.js:802 #.TRANS: put down the pen so logo it draws when it is moved msgid "pen down" msgstr "कलमले लेख" -#: js/PenBlocks.js:557 +#: js/blocks/PenBlocks.js:810 msgid "The Pen-down block lowers the pen so that it draws." msgstr "" -#: js/PenBlocks.js:577 +#: js/blocks/PenBlocks.js:844 #.TRANS: set the width of the line drawn by the pen msgid "set pen size" msgstr "कलमको परिमाण मिलाऊ" -#: js/PenBlocks.js:583 +#: js/blocks/PenBlocks.js:854 msgid "The Set-pen-size block changes the size of the pen." msgstr "" -#: js/PenBlocks.js:623 +#: js/blocks/PenBlocks.js:913 #.TRANS: set degree of translucence of the pen color msgid "set translucency" msgstr "" -#: js/PenBlocks.js:627 +#: js/blocks/PenBlocks.js:921 msgid "The Set translucency block changes the opacity of the pen." msgstr "" -#: js/PenBlocks.js:668 +#: js/blocks/PenBlocks.js:981 msgid "set hue" msgstr "" -#: js/PenBlocks.js:672 +#: js/blocks/PenBlocks.js:989 msgid "The Set hue block changes the color of the pen." msgstr "" -#: js/PenBlocks.js:711 +#: js/blocks/PenBlocks.js:1047 msgid "set shade" msgstr "छाया राख" -#: js/PenBlocks.js:717 +#: js/blocks/PenBlocks.js:1057 msgid "The Set-shade block changes the pen color from dark to light." msgstr "" -#: js/PenBlocks.js:757 +#: js/blocks/PenBlocks.js:1111 #.TRANS: set the level of vividness of the pen color msgid "set grey" msgstr "" -#: js/PenBlocks.js:761 +#: js/blocks/PenBlocks.js:1119 msgid "The Set grey block changes the vividness of the pen color." msgstr "" -#: js/PenBlocks.js:800 +#: js/blocks/PenBlocks.js:1172 msgid "set color" msgstr "रंङ राख" -#: js/PenBlocks.js:806 +#: js/blocks/PenBlocks.js:1182 msgid "The Set-color block changes the pen color." msgstr "" -#: js/VolumeBlocks.js:35 -msgid "synth volume" -msgstr "" - -#: js/VolumeBlocks.js:39 -msgid "The Synth volume block returns the current volume of the current synthesizer." -msgstr "" - -#: js/VolumeBlocks.js:47 -#: js/musicutils.js:730 -#: js/synthutils.js:56 -#.TRANS: musical instrument -msgid "piano" -msgstr "" - -#: js/VolumeBlocks.js:105 -msgid "master volume" -msgstr "" - -#: js/VolumeBlocks.js:109 -msgid "The Master volume block returns the master volume." -msgstr "" - -#: js/VolumeBlocks.js:355 -#: js/VolumeBlocks.js:524 -msgid "set synth volume" -msgstr "" - -#: js/VolumeBlocks.js:362 -#: js/VolumeBlocks.js:545 -msgid "synth" -msgstr "" - -#: js/VolumeBlocks.js:403 -#: js/VolumeBlocks.js:577 -#: js/VolumeBlocks.js:740 -#: js/VolumeActions.js:173 -msgid "Setting volume to 0." -msgstr "" - -#: js/VolumeBlocks.js:440 -msgid "Synth not found" -msgstr "" - -#: js/VolumeBlocks.js:494 -msgid "set drum volume" -msgstr "" - -#: js/VolumeBlocks.js:530 -msgid "The Set synth volume block will change the volume of a particular synth," -msgstr "" - -#: js/VolumeBlocks.js:532 -msgid "eg guitar violin snare drum etc." -msgstr "" - -#: js/VolumeBlocks.js:534 -msgid "The default volume is 50." -msgstr "" - -#: js/VolumeBlocks.js:536 -msgid "The range is 0 for silence to 100 for full volume." -msgstr "" - -#: js/VolumeBlocks.js:597 -msgid "set panning" -msgstr "" - -#: js/VolumeBlocks.js:603 -msgid "The Set Panning block sets the panning for all synthesizers." -msgstr "" - -#: js/VolumeBlocks.js:625 -msgid "Warning: Sound is coming out from only the left or right side." -msgstr "" - -#: js/VolumeBlocks.js:647 -#: js/VolumeBlocks.js:695 -msgid "set master volume" -msgstr "" - -#: js/VolumeBlocks.js:653 -msgid "The Set master volume block sets the volume for all synthesizers." -msgstr "" - -#: js/VolumeBlocks.js:784 -msgid "The Set relative volume block changes the volume of the contained notes." -msgstr "" - -#: js/VolumeBlocks.js:791 -msgid "set relative volume" -msgstr "" - -#: js/VolumeBlocks.js:857 -msgid "decrescendo" -msgstr "" - -#: js/VolumeBlocks.js:921 -msgid "crescendo" -msgstr "" - -#: js/ToneBlocks.js:34 -msgid "oscillator" -msgstr "" - -#: js/ToneBlocks.js:44 -#: js/timbre.js:1562 -#.TRANS: Partials refers to the number of sine waves combined into the sound. -msgid "partials" -msgstr "" - -#: js/ToneBlocks.js:76 -msgid "You are adding multiple oscillator blocks." -msgstr "" - -#: js/ToneBlocks.js:144 -#: js/timbre.js:1225 -#.TRANS: a duo synthesizer combines a synth with a sequencer -msgid "duo synth" -msgstr "" - -#: js/ToneBlocks.js:149 -msgid "The Duo synth block is a duo-frequency modulator used to define a timbre." -msgstr "" - -#: js/ToneBlocks.js:157 -#: js/timbre.js:1476 -msgid "vibrato rate" -msgstr "" - -#: js/ToneBlocks.js:157 -msgid "vibrato intensity" -msgstr "" - -#: js/ToneBlocks.js:185 -#: js/timbre.js:1221 -#.TRANS: AM (amplitude modulation) synthesizer -msgid "AM synth" -msgstr "" - -#: js/ToneBlocks.js:189 -msgid "The AM synth block is an amplitude modulator used to define a timbre." +#: js/blocks/PitchBlocks.js:141 +#.TRANS: musical transposition (adjustment of pitch up or down) +msgid "transposition" msgstr "" -#: js/ToneBlocks.js:224 -#: js/timbre.js:1223 -#.TRANS: FM (frequency modulation) synthesizer -msgid "FM synth" +#: js/blocks/PitchBlocks.js:168 +#.TRANS: step down one note in current musical scale +msgid "scalar step down" msgstr "" -#: js/ToneBlocks.js:228 -msgid "The FM synth block is a frequency modulator used to define a timbre." +#: js/blocks/PitchBlocks.js:172 +msgid "The Scalar step down block returns the number of semi-tones down to the previous note in the current key and mode." msgstr "" -#: js/ToneBlocks.js:262 -msgid "partial" +#: js/blocks/PitchBlocks.js:190 +#.TRANS: step up one note in current musical scale +msgid "scalar step up" msgstr "" -#: js/ToneBlocks.js:265 -msgid "The Partial block is used to specify a weight for a specific partial harmonic." +#: js/blocks/PitchBlocks.js:194 +msgid "The Scalar step up block returns the number of semi-tones up to the next note in the current key and mode." msgstr "" -#: js/ToneBlocks.js:284 -#.TRANS: partials are weighted components in a harmonic series -msgid "Partial weight must be between 0 and 1." +#: js/blocks/PitchBlocks.js:212 +#.TRANS: the change measured in half-steps between the current pitch and the previous pitch +msgid "change in pitch" msgstr "" -#: js/ToneBlocks.js:297 -#.TRANS: partials are weighted components in a harmonic series -msgid "Partial block should be used inside of a Weighted-partials block." +#: js/blocks/PitchBlocks.js:216 +msgid "The Change in pitch block is the difference (in half steps) between the current pitch being played and the previous pitch played." msgstr "" -#: js/ToneBlocks.js:325 -#.TRANS: partials are weighted components in a harmonic series -msgid "weighted partials" +#: js/blocks/PitchBlocks.js:243 +#.TRANS: the change measured in scale-steps between the current pitch and the previous pitch +msgid "scalar change in pitch" msgstr "" -#: js/ToneBlocks.js:383 -msgid "The Harmonic block will add harmonics to the contained notes." +#: js/blocks/PitchBlocks.js:250 +#: js/blocks/PitchBlocks.js:432 +#: js/blocks/PitchBlocks.js:1667 +#: js/turtleactions/DictActions.js:89 +#: js/widgets/temperament.js:610 +#: js/widgets/temperament.js:614 +#: js/widgets/temperament.js:855 +#.TRANS: convert current note to piano key (1-88) +#.TRANS: a mapping of pitch to the 88 piano keys +msgid "pitch number" msgstr "" -#: js/ToneBlocks.js:390 -#.TRANS: A harmonic is an overtone. -msgid "harmonic" +#: js/blocks/PitchBlocks.js:256 +msgid "The Pitch number block is the value of the pitch of the note currently being played." msgstr "" -#: js/ToneBlocks.js:431 -msgid "The Distortion block adds distortion to the pitch." +#: js/blocks/PitchBlocks.js:329 +#: js/blocks/PitchBlocks.js:433 +#.TRANS: the current pitch expressed in Hertz +msgid "pitch in hertz" msgstr "" -#: js/ToneBlocks.js:438 -#: js/timbre.js:2100 -#.TRANS: distortion is an alteration in the sound -msgid "distortion" +#: js/blocks/PitchBlocks.js:334 +msgid "The Pitch in Hertz block is the value in Hertz of the pitch of the note currently being played." msgstr "" -#: js/ToneBlocks.js:487 -msgid "The Tremolo block adds a wavering effect." +#: js/blocks/PitchBlocks.js:367 +#: js/turtleactions/DictActions.js:87 +msgid "current pitch" msgstr "" -#: js/ToneBlocks.js:495 -#: js/timbre.js:2092 -#.TRANS: a wavering effect in a musical tone -msgid "tremolo" +#: js/blocks/PitchBlocks.js:373 +msgid "The Current Pitch block is used with the Pitch Converter block. In the example above, current pitch, sol 4, is displayed as 392 hertz." msgstr "" -#: js/ToneBlocks.js:500 -#: js/ToneBlocks.js:569 -#: js/ToneBlocks.js:630 -#: js/ToneBlocks.js:689 -#: js/timbre.js:2134 -#: js/timbre.js:2222 -#: js/timbre.js:2317 -#: js/timbre.js:2419 -#.TRANS: rate at which tremolo wavers -msgid "rate" +#: js/blocks/PitchBlocks.js:410 +msgid "This block converts the pitch value of the last note played into different formats such as hertz, letter name, pitch number, et al." msgstr "" -#: js/ToneBlocks.js:502 -#: js/ToneBlocks.js:630 -#: js/timbre.js:2137 -#: js/timbre.js:2328 -#.TRANS: amplitude of tremolo waver -msgid "depth" +#: js/blocks/PitchBlocks.js:434 +msgid "alphabet" msgstr "" -#: js/ToneBlocks.js:559 -msgid "The Phaser block adds a sweeping sound." +#: js/blocks/PitchBlocks.js:436 +#.TRANS: Translate as "alphabet class" +msgid "letter class" msgstr "" -#: js/ToneBlocks.js:566 -#: js/timbre.js:2098 -#.TRANS: alter the phase of the sound -msgid "phaser" +#: js/blocks/PitchBlocks.js:437 +msgid "solfege class" msgstr "" -#: js/ToneBlocks.js:569 -#: js/timbre.js:2422 -msgid "octaves" +#: js/blocks/PitchBlocks.js:438 +msgid "staff y" msgstr "" -#: js/ToneBlocks.js:569 -#: js/timbre.js:2425 -msgid "base frequency" +#: js/blocks/PitchBlocks.js:439 +msgid "solfege syllable" msgstr "" -#: js/ToneBlocks.js:619 -msgid "The Chorus block adds a chorus effect." +#: js/blocks/PitchBlocks.js:440 +msgid "pitch class" msgstr "" -#: js/ToneBlocks.js:627 -#: js/timbre.js:2096 -#.TRANS: musical effect to simulate a choral sound -msgid "chorus" +#: js/blocks/PitchBlocks.js:441 +msgid "scalar class" msgstr "" -#: js/ToneBlocks.js:630 -msgid "delay" +#: js/blocks/PitchBlocks.js:443 +msgid "nth degree" msgstr "" -#: js/ToneBlocks.js:678 -msgid "The Vibrato block adds a rapid, slight variation in pitch." +#: js/blocks/PitchBlocks.js:444 +msgid "pitch to shade" msgstr "" -#: js/ToneBlocks.js:686 -#: js/timbre.js:2094 -#.TRANS: a rapid, slight variation in pitch -msgid "vibrato" +#: js/blocks/PitchBlocks.js:445 +msgid "pitch to color" msgstr "" -#: js/ToneBlocks.js:689 -#: js/timbre.js:2221 -msgid "intensity" +#: js/blocks/PitchBlocks.js:629 +#: js/widgets/musickeyboard.js:735 +#.TRANS: MIDI is a technical standard for electronic music +msgid "MIDI" msgstr "" -#: js/ToneBlocks.js:733 -#.TRANS: select synthesizer -msgid "set synth" +#: js/blocks/PitchBlocks.js:642 +#.TRANS: set an offset associated with the numeric piano keyboard mapping +msgid "set pitch number offset" msgstr "" -#: js/ToneBlocks.js:804 -msgid "synth name" +#: js/blocks/PitchBlocks.js:645 +msgid "The Set pitch number offset block is used to set the offset for mapping pitch numbers to pitch and octave." msgstr "" -#: js/ToneBlocks.js:842 -msgid "set default instrument" +#: js/blocks/PitchBlocks.js:679 +#.TRANS: convert piano key number (1-88) to pitch +msgid "number to pitch" msgstr "" -#: js/ToneBlocks.js:895 -#: js/ToneBlocks.js:943 -#.TRANS: set the characteristics of a custom instrument -msgid "set instrument" +#: js/blocks/PitchBlocks.js:682 +msgid "The Number to pitch block will convert a pitch number to a pich name." msgstr "" -#: js/ToneBlocks.js:898 -#: js/ToneBlocks.js:926 -#: js/ToneBlocks.js:932 -msgid "The Set instrument block selects a voice for the synthesizer," +#: js/blocks/PitchBlocks.js:715 +#.TRANS: convert piano key number (1-88) to octave +msgid "number to octave" msgstr "" -#: js/ToneBlocks.js:900 -#: js/ToneBlocks.js:934 -msgid "eg guitar piano violin or cello." +#: js/blocks/PitchBlocks.js:717 +msgid "The Number to octave block will convert a pitch number to an octave." msgstr "" -#: js/ToneBlocks.js:1015 -msgid "Import a sound file to use as an instrument and set its pitch center." +#: js/blocks/PitchBlocks.js:726 +msgid "y to pitch" msgstr "" -#: js/ToneBlocks.js:1110 -msgid "Upload a sound file to connect with the sample block." +#: js/blocks/PitchBlocks.js:729 +msgid "Y to pitch block will convert a staff y position to corresponding pitch notation." msgstr "" -#: js/MeterBlocks.js:34 -#.TRANS: musical meter (time signature), e.g., 4:4 -msgid "current meter" +#: js/blocks/PitchBlocks.js:841 +msgid "accidental selector" msgstr "" -#: js/MeterBlocks.js:85 -#.TRANS: number of beats per minute -msgid "beat factor" +#: js/blocks/PitchBlocks.js:844 +msgid "The Accidental selector block is used to choose between double-sharp, sharp, natural, flat, and double-flat." msgstr "" -#: js/MeterBlocks.js:161 -msgid "The Beats per minute block returns the current beats per minute." +#: js/blocks/PitchBlocks.js:858 +msgid "Pitch can be specified in terms of ni dha pa ma ga re sa." msgstr "" -#: js/MeterBlocks.js:169 -#: js/status.js:152 -#.TRANS: number of beats played per minute -msgid "beats per minute2" +#: js/blocks/PitchBlocks.js:872 +msgid "Pitch can be specified in terms of C D E F G A B." msgstr "" -#: js/MeterBlocks.js:169 -#: js/MeterBlocks.js:1056 -#: js/MeterBlocks.js:1133 -#: js/MeterBlocks.js:1211 -#.TRANS: sets tempo by defining a beat and beats per minute -msgid "beats per minute" +#: js/blocks/PitchBlocks.js:884 +msgid "solfege" msgstr "" -#: js/MeterBlocks.js:233 -#.TRANS: count of current musical measure in meter -msgid "measure count" +#: js/blocks/PitchBlocks.js:887 +msgid "Pitch can be specified in terms of do re mi fa sol la ti." msgstr "" -#: js/MeterBlocks.js:241 -msgid "The Measure count block returns the current measure." +#: js/blocks/PitchBlocks.js:922 +msgid "The Invert block rotates any contained notes around a target note." msgstr "" -#: js/MeterBlocks.js:290 -#.TRANS: count of current beat in the meter -msgid "beat count" +#: js/blocks/PitchBlocks.js:929 +#.TRANS: pitch inversion rotates a pitch around another pitch +msgid "invert" msgstr "" -#: js/MeterBlocks.js:300 -#: js/MeterBlocks.js:311 -#: js/MeterBlocks.js:565 -#: js/MeterBlocks.js:576 -msgid "The Beat count block is the number of the current beat," +#: js/blocks/PitchBlocks.js:968 +#.TRANS: pitch inversion rotates a pitch around another pitch (odd number) +msgid "invert (odd)" msgstr "" -#: js/MeterBlocks.js:313 -#: js/MeterBlocks.js:578 -msgid "eg 1, 2, 3, or 4." +#: js/blocks/PitchBlocks.js:1001 +#.TRANS: pitch inversion rotates a pitch around another pitch (even number) +msgid "invert (even)" msgstr "" -#: js/MeterBlocks.js:368 -#.TRANS: count the number of notes -msgid "sum note values" +#: js/blocks/PitchBlocks.js:1022 +#.TRANS: register is the octave of the current pitch +msgid "register" msgstr "" -#: js/MeterBlocks.js:376 -#: js/MeterBlocks.js:440 -msgid "The Note counter block can be used to count the number of contained notes." +#: js/blocks/PitchBlocks.js:1026 +msgid "The Register block provides an easy way to modify the register (octave) of the notes that follow it." msgstr "" -#: js/MeterBlocks.js:432 -#.TRANS: count the number of notes -msgid "note counter" +#: js/blocks/PitchBlocks.js:1047 +#.TRANS: cents are units used to specify the ratio between pitches. There are 100 cents between successive notes. +msgid "50 cents" msgstr "" -#: js/MeterBlocks.js:496 -#.TRANS: number of whole notes that have been played -msgid "whole notes played" +#: js/blocks/PitchBlocks.js:1102 +msgid "The Semi-tone transposition block will shift the pitches contained inside Note blocks up (or down) by half steps." msgstr "" -#: js/MeterBlocks.js:505 -msgid "The Whole notes played block returns the total number of whole notes played." +#: js/blocks/PitchBlocks.js:1104 +msgid "In the example shown above, sol is shifted up to sol#." msgstr "" -#: js/MeterBlocks.js:555 -#: js/DictActions.js:83 -#.TRANS: number of notes that have been played -msgid "notes played" +#: js/blocks/PitchBlocks.js:1110 +#.TRANS: adjust the amount of shift (up or down) of a pitch +msgid "semi-tone transpose" msgstr "" -#: js/MeterBlocks.js:653 -msgid "The No clock block decouples the notes from the master clock." +#: js/blocks/PitchBlocks.js:1143 +msgid "The Transpose by Ratio block will shift the pitches contained inside Note blocks up (or down) by a ratio" msgstr "" -#: js/MeterBlocks.js:661 -#.TRANS: don't lock notes to master clock -msgid "no clock" +#: js/blocks/PitchBlocks.js:1149 +#.TRANS: adjust the amount of shift (up or down) of a pitch +msgid "transpose by ratio" msgstr "" -#: js/MeterBlocks.js:700 -msgid "on weak beat do" +#: js/blocks/PitchBlocks.js:1232 +#.TRANS: down sixth means the note is five scale degrees below current note +msgid "down sixth" msgstr "" -#: js/MeterBlocks.js:705 -msgid "The On-weak-beat block lets you specify actions to take on weak (off) beats." +#: js/blocks/PitchBlocks.js:1251 +#.TRANS: down third means the note is two scale degrees below current note +msgid "down third" msgstr "" -#: js/MeterBlocks.js:750 -msgid "on strong beat" +#: js/blocks/PitchBlocks.js:1270 +#.TRANS: seventh means the note is the six scale degrees above current note +msgid "seventh" msgstr "" -#: js/MeterBlocks.js:758 -msgid "The On-strong-beat block lets you specify actions to take on specified beats." +#: js/blocks/PitchBlocks.js:1289 +#.TRANS: sixth means the note is the five scale degrees above current note +msgid "sixth" msgstr "" -#: js/MeterBlocks.js:769 -msgid "beat" +#: js/blocks/PitchBlocks.js:1308 +#.TRANS: fifth means the note is the four scale degrees above current note +msgid "fifth" msgstr "" -#: js/MeterBlocks.js:813 -msgid "on every beat do" +#: js/blocks/PitchBlocks.js:1328 +#.TRANS: fourth means the note is three scale degrees above current note +msgid "fourth" msgstr "" -#: js/MeterBlocks.js:821 -msgid "The On-every-beat block lets you specify actions to take on every beat." +#: js/blocks/PitchBlocks.js:1347 +#.TRANS: third means the note is two scale degrees above current note +msgid "third" msgstr "" -#: js/MeterBlocks.js:874 -msgid "on every note do" +#: js/blocks/PitchBlocks.js:1366 +#.TRANS: second means the note is one scale degree above current note +msgid "second" msgstr "" -#: js/MeterBlocks.js:882 -msgid "The On-every-note block lets you specify actions to take on every note." +#: js/blocks/PitchBlocks.js:1407 +msgid "The Scalar transposition block will shift the pitches contained inside Note blocks up (or down) the scale." msgstr "" -#: js/MeterBlocks.js:928 -#: js/MeterBlocks.js:999 -#.TRANS: sets tempo by defining a beat and beats per minute -msgid "master beats per minute" +#: js/blocks/PitchBlocks.js:1409 +msgid "In the example shown above, sol is shifted up to la." msgstr "" -#: js/MeterBlocks.js:952 -#: js/MeterBlocks.js:1078 -#: js/MeterBlocks.js:1135 -msgid "bpm" +#: js/blocks/PitchBlocks.js:1416 +#.TRANS: adjust the amount of shift (up or down) of a pitch by musical scale (scalar) steps +msgid "scalar transpose" msgstr "" -#: js/MeterBlocks.js:952 -#: js/MeterBlocks.js:1078 -#: js/MeterBlocks.js:1135 -msgid "beat value" +#: js/blocks/PitchBlocks.js:1451 +msgid "The Accidental block is used to create sharps and flats" msgstr "" -#: js/MeterBlocks.js:1024 -#: js/MeterBlocks.js:1167 -#: js/MeterBlocks.js:1241 -msgid "Beats per minute must be > 30." +#: js/blocks/PitchBlocks.js:1458 +#.TRANS: An accidental is a modification to a pitch, e.g., sharp or flat. +msgid "accidental override" msgstr "" -#: js/MeterBlocks.js:1027 -#: js/MeterBlocks.js:1170 -#: js/MeterBlocks.js:1244 -msgid "Maximum beats per minute is 1000." +#: js/blocks/PitchBlocks.js:1581 +msgid "The Hertz block (in combination with a Number block) will play a sound at the specified frequency." msgstr "" -#: js/MeterBlocks.js:1068 -msgid "The Beats per minute block sets the number of 1/4 notes per minute." +#: js/blocks/PitchBlocks.js:1671 +msgid "The Pitch Number block will play a pitch associated by its number, e.g. 0 for C and 7 for G." msgstr "" -#: js/MeterBlocks.js:1279 -#.TRANS: anacrusis -msgid "pickup" +#: js/blocks/PitchBlocks.js:1703 +#: js/blocks/PitchBlocks.js:1745 +#.TRANS: a numeric mapping of the notes in an octave based on the musical mode +#.TRANS: a numeric mapping of the notes in an octave based on the musical mode +msgid "nth modal pitch" msgstr "" -#: js/MeterBlocks.js:1367 -msgid "number of beats" +#: js/blocks/PitchBlocks.js:1706 +msgid "n^th Modal Pitch takes the pattern of pitches in semitones for a mode and makes each point a degree of the mode," msgstr "" -#: js/DictBlocks.js:77 -msgid "show dictionary" +#: js/blocks/PitchBlocks.js:1708 +msgid "starting from 1 and regardless of tonal framework (i.e. not always 8 notes in the octave)" msgstr "" -#: js/DictBlocks.js:129 -msgid "The Dictionary block returns a dictionary." +#: js/blocks/PitchBlocks.js:1749 +msgid "N^th Modal Pitch takes a number as an input as the n^th degree for the given mode. 0 is the first position, 1 is the second, -1 is the note before the first etc." msgstr "" -#: js/DictBlocks.js:197 -#: js/DictBlocks.js:339 -msgid "The Get-dict block returns a value in the dictionary for a specified key." +#: js/blocks/PitchBlocks.js:1751 +msgid "The pitches change according to the mode specified without any need for respellings." msgstr "" -#: js/DictBlocks.js:212 -#: js/DictBlocks.js:354 -#.TRANS: retrieve a value from the dictionary with a given key -msgid "get value" +#: js/blocks/PitchBlocks.js:1790 +msgid "Scale Degree is a common convention in music. Scale Degree offers seven possible positions in the scale (1-7) and can be modified via accidentals." msgstr "" -#: js/DictBlocks.js:215 -#: js/DictBlocks.js:216 -#: js/DictBlocks.js:289 -#: js/DictBlocks.js:290 -#: js/DictBlocks.js:357 -#: js/DictBlocks.js:430 -#: js/DictBlocks.js:431 -msgid "key2" +#: js/blocks/PitchBlocks.js:1792 +msgid "Scale Degree 1 is always the first pitch in a given scale, regardless of octave." msgstr "" -#: js/DictBlocks.js:271 -#: js/DictBlocks.js:411 -msgid "The Set-dict block sets a value in the dictionary for a specified key." +#: js/blocks/PitchBlocks.js:1814 +#.TRANS: step some number of notes in current musical scale +msgid "scalar step" msgstr "" -#: js/DictBlocks.js:286 -#: js/DictBlocks.js:427 -#.TRANS: set a value in the dictionary for a given key -msgid "set value" +#: js/blocks/PitchBlocks.js:1819 +msgid "The Scalar Step block (in combination with a Number block) will play the next pitch in a scale," msgstr "" -#: js/ExtrasBlocks.js:33 -msgid "fraction" +#: js/blocks/PitchBlocks.js:1821 +msgid "eg if the last note played was sol, Scalar Step 1 will play la." msgstr "" -#: js/ExtrasBlocks.js:36 -msgid "Convert a float to a fraction" +#: js/blocks/PitchBlocks.js:1857 +msgid "The Pitch block specifies the pitch name and octave of a note that together determine the frequency of the note." msgstr "" -#: js/ExtrasBlocks.js:93 -msgid "save as ABC" +#: js/blocks/ProgramBlocks.js:33 +msgid "The Load-heap-from-app block loads the heap from a web page." msgstr "" -#: js/ExtrasBlocks.js:96 -#: js/ExtrasBlocks.js:132 -#: js/ExtrasBlocks.js:168 -msgid "title" +#: js/blocks/ProgramBlocks.js:44 +#.TRANS: load the heap contents from a URL +msgid "load heap from App" msgstr "" -#: js/ExtrasBlocks.js:129 -msgid "save as Lilypond" +#: js/blocks/ProgramBlocks.js:95 +msgid "Error parsing JSON data:" msgstr "" -#: js/ExtrasBlocks.js:165 -msgid "save as SVG" +#: js/blocks/ProgramBlocks.js:100 +msgid "404: Page not found" msgstr "" -#: js/ExtrasBlocks.js:216 -msgid "no background" +#: js/blocks/ProgramBlocks.js:133 +msgid "The Save-heap-to-app block saves the heap to a web page." msgstr "" -#: js/ExtrasBlocks.js:219 -msgid "The No background block eliminates the background from the saved SVG output." +#: js/blocks/ProgramBlocks.js:144 +#.TRANS: save the heap contents to a URL +msgid "save heap to App" msgstr "" -#: js/ExtrasBlocks.js:247 -msgid "show blocks" -msgstr "खण्डहरु देखाऊ" - -#: js/ExtrasBlocks.js:249 -msgid "The Show blocks block shows the blocks." +#: js/blocks/ProgramBlocks.js:189 +msgid "Cannot find a valid heap for" msgstr "" -#: js/ExtrasBlocks.js:274 -msgid "hide blocks" -msgstr "खण्डहरु लुकाऊ" +#: js/blocks/ProgramBlocks.js:206 +msgid "The Load-heap block loads the heap from a file." +msgstr "" -#: js/ExtrasBlocks.js:276 -msgid "The Hide blocks block hides the blocks." +#: js/blocks/ProgramBlocks.js:217 +#.TRANS: load the heap from a file +msgid "load heap" msgstr "" -#: js/ExtrasBlocks.js:305 -#: js/ExtrasBlocks.js:335 -msgid "The Space block is used to add space between blocks." +#: js/blocks/ProgramBlocks.js:270 +msgid "The file you selected does not contain a valid heap." msgstr "" -#: js/ExtrasBlocks.js:373 -msgid "wait" -msgstr "पर्ख" +#: js/blocks/ProgramBlocks.js:275 +msgid "The loadHeap block needs a loadFile block." +msgstr "" -#: js/ExtrasBlocks.js:376 -msgid "The Wait block pauses the program for a specified number of seconds." +#: js/blocks/ProgramBlocks.js:291 +msgid "The Set-heap block loads the heap." msgstr "" -#: js/ExtrasBlocks.js:430 -#: plugins/facebook.rtp:30 -msgid "comment" -msgstr "टिप्पणी" +#: js/blocks/ProgramBlocks.js:340 +msgid "The block you selected does not contain a valid heap." +msgstr "" -#: js/ExtrasBlocks.js:466 -msgid "print" -msgstr "प्रिन्ट" +#: js/blocks/ProgramBlocks.js:343 +msgid "The Set heap block needs a heap." +msgstr "" -#: js/ExtrasBlocks.js:473 -msgid "The Print block displays text at the top of the screen." +#: js/blocks/ProgramBlocks.js:360 +msgid "The Load-dictionary block loads a dictionary from a file." msgstr "" -#: js/ExtrasBlocks.js:579 -msgid "display grid" +#: js/blocks/ProgramBlocks.js:372 +#.TRANS: load a dictionary from a file +msgid "load dictionary" msgstr "" -#: js/ExtrasBlocks.js:584 -msgid "The Display Grid Block changes the grid type" +#: js/blocks/ProgramBlocks.js:390 +#: js/blocks/ProgramBlocks.js:658 +#: js/blocks/ToneBlocks.js:1025 +msgid "file" msgstr "" -#: js/ExtrasBlocks.js:686 -#: js/ExtrasBlocks.js:705 -#: js/ExtrasBlocks.js:728 -#: js/ExtrasBlocks.js:751 -#: js/ExtrasBlocks.js:769 -#: js/ExtrasBlocks.js:788 -#: js/ExtrasBlocks.js:807 -#: js/ExtrasBlocks.js:826 -msgid "unknown" +#: js/blocks/ProgramBlocks.js:444 +msgid "The file you selected does not contain a valid dictionary." msgstr "" -#: js/SensorsBlocks.js:36 -msgid "The Input block prompts for keyboard input." +#: js/blocks/ProgramBlocks.js:449 +msgid "The load dictionary block needs a load file block." msgstr "" -#: js/SensorsBlocks.js:46 -msgid "input" +#: js/blocks/ProgramBlocks.js:466 +msgid "The Set-dictionary block loads a dictionary." msgstr "" -#: js/SensorsBlocks.js:64 -msgid "Input a value" +#: js/blocks/ProgramBlocks.js:477 +#.TRANS: load a dictionary from a JSON +msgid "set dictionary" msgstr "" -#: js/SensorsBlocks.js:126 -msgid "input value" +#: js/blocks/ProgramBlocks.js:546 +msgid "The block you selected does not contain a valid dictionary." msgstr "" -#: js/SensorsBlocks.js:131 -msgid "The Input-value block stores the input." +#: js/blocks/ProgramBlocks.js:550 +msgid "The set dictionary block needs a dictionary." msgstr "" -#: js/SensorsBlocks.js:238 -msgid "loudness" -msgstr "चर्कोपन" +#: js/blocks/ProgramBlocks.js:567 +msgid "The Save-heap block saves the heap to a file." +msgstr "" -#: js/SensorsBlocks.js:245 -msgid "The Loudness block returns the volume detected by the microphone." +#: js/blocks/ProgramBlocks.js:578 +#.TRANS: save the heap to a file +msgid "save heap" msgstr "" -#: js/SensorsBlocks.js:300 -msgid "click" +#: js/blocks/ProgramBlocks.js:629 +msgid "The Save-dictionary block saves a dictionary to a file." msgstr "" -#: js/SensorsBlocks.js:306 -msgid "The Click block triggers an event if a mouse has been clicked." +#: js/blocks/ProgramBlocks.js:640 +#.TRANS: save a dictionary to a file +msgid "save dictionary" msgstr "" -#: js/SensorsBlocks.js:313 -msgid "The Click block triggers an event if a turtle has been clicked." +#: js/blocks/ProgramBlocks.js:720 +msgid "The Open palette block opens a palette." msgstr "" -#: js/SensorsBlocks.js:342 -msgid "cursor over" +#: js/blocks/ProgramBlocks.js:727 +msgid "open palette" msgstr "" -#: js/SensorsBlocks.js:387 -msgid "cursor out" +#: js/blocks/ProgramBlocks.js:785 +msgid "The Delete block block removes a block." msgstr "" -#: js/SensorsBlocks.js:433 -msgid "cursor button down" +#: js/blocks/ProgramBlocks.js:797 +#.TRANS: Move this block to the trash. +msgid "delete block" msgstr "" -#: js/SensorsBlocks.js:477 -msgid "cursor button up" +#: js/blocks/ProgramBlocks.js:861 +msgid "The Move block block moves a block." msgstr "" -#: js/SensorsBlocks.js:638 -msgid "The Get red block returns the red component of the pixel under the mouse." +#: js/blocks/ProgramBlocks.js:869 +#.TRANS: Move the position of a block on the screen. +msgid "move block" msgstr "" -#: js/SensorsBlocks.js:644 -msgid "The Get red block returns the red component of the pixel under the turtle." +#: js/blocks/ProgramBlocks.js:881 +#: js/blocks/ProgramBlocks.js:1048 +msgid "block number" msgstr "" -#: js/SensorsBlocks.js:685 -#: plugins/rodi.rtp:216 -msgid "pixel color" +#: js/blocks/ProgramBlocks.js:935 +#.TRANS: Run program beginning at this block. +msgid "run block" msgstr "" -#: js/SensorsBlocks.js:690 -msgid "The Get pixel block returns the color of the pixel under the mouse." +#: js/blocks/ProgramBlocks.js:1025 +msgid "The Dock block block connections two blocks." msgstr "" -#: js/SensorsBlocks.js:696 -msgid "The Get pixel block returns the color of the pixel under the turtle." +#: js/blocks/ProgramBlocks.js:1036 +#.TRANS: We can connect a block to another block. +msgid "connect blocks" msgstr "" -#: js/SensorsBlocks.js:758 -msgid "time" -msgstr "समय" +#: js/blocks/ProgramBlocks.js:1048 +msgid "target block" +msgstr "" -#: js/SensorsBlocks.js:804 -msgid "cursor y" +#: js/blocks/ProgramBlocks.js:1048 +msgid "connection number" msgstr "" -#: js/SensorsBlocks.js:809 -msgid "The Cursor Y block returns the vertical position of the mouse." +#: js/blocks/ProgramBlocks.js:1140 +msgid "The Make block block creates a new block." msgstr "" -#: js/SensorsBlocks.js:845 -msgid "cursor x" +#: js/blocks/ProgramBlocks.js:1152 +#.TRANS: Create a new block +msgid "make block" msgstr "" -#: js/SensorsBlocks.js:850 -msgid "The Cursor X block returns the horizontal position of the mouse." +#: js/blocks/ProgramBlocks.js:1285 +msgid "Cannot find block" msgstr "" -#: js/SensorsBlocks.js:886 -msgid "mouse button" +#: js/blocks/ProgramBlocks.js:1304 +#: js/blocks/ProgramBlocks.js:1313 +msgid "Warning: block argument type mismatch" msgstr "" -#: js/SensorsBlocks.js:888 -msgid "The Mouse-button block returns True if the mouse button is pressed." +#: js/blocks/ProgramBlocks.js:1347 +msgid "The Open project block is used to open a project from a web page." msgstr "" -#: js/SensorsBlocks.js:934 -msgid "to ASCII" +#: js/blocks/ProgramBlocks.js:1357 +msgid "open project" msgstr "" -#: js/SensorsBlocks.js:938 -msgid "The To ASCII block converts numbers to letters." +#: js/blocks/ProgramBlocks.js:1410 +msgid "Please enter a valid URL." msgstr "" -#: js/SensorsBlocks.js:1005 -msgid "The Keyboard block returns computer keyboard input." +#: js/blocks/ToneBlocks.js:34 +msgid "oscillator" msgstr "" -#: js/IntervalsActions.js:216 -msgid "Adding missing pitch number 0." +#: js/blocks/ToneBlocks.js:42 +#: js/blocks/WidgetBlocks.js:179 +#: js/widgets/timbre.js:1558 +#: js/widgets/timbre.js:1808 +#.TRANS: there are different types (sine, triangle, square...) of oscillators. +#.TRANS: type of filter, e.g., lowpass, highpass, etc. +msgid "type" msgstr "" -#: js/IntervalsActions.js:224 -msgid "Ignoring pitch numbers less than zero or greater than eleven." +#: js/blocks/ToneBlocks.js:44 +#: js/widgets/timbre.js:1562 +#.TRANS: Partials refers to the number of sine waves combined into the sound. +msgid "partials" msgstr "" -#: js/IntervalsActions.js:230 -msgid "Ignoring duplicate pitch numbers." +#: js/blocks/ToneBlocks.js:76 +msgid "You are adding multiple oscillator blocks." msgstr "" -#: js/PitchActions.js:88 -msgid "The Scalar Step Block must be used inside of a Note Block." +#: js/blocks/ToneBlocks.js:144 +#: js/widgets/timbre.js:1225 +#.TRANS: a duo synthesizer combines a synth with a sequencer +msgid "duo synth" msgstr "" -#: js/PitchActions.js:107 -msgid "The Scalar Step Block must be preceded by a Pitch Block." +#: js/blocks/ToneBlocks.js:149 +msgid "The Duo synth block is a duo-frequency modulator used to define a timbre." msgstr "" -#: js/DrumActions.js:231 -msgid "Noise Block: Did you mean to use a Note block?" +#: js/blocks/ToneBlocks.js:157 +#: js/widgets/timbre.js:1476 +msgid "vibrato rate" msgstr "" -#: js/MeterActions.js:101 -#: js/MeterActions.js:139 -msgid "beats per minute must be greater than" +#: js/blocks/ToneBlocks.js:157 +msgid "vibrato intensity" msgstr "" -#: js/MeterActions.js:111 -#: js/MeterActions.js:149 -msgid "maximum" +#: js/blocks/ToneBlocks.js:185 +#: js/widgets/timbre.js:1221 +#.TRANS: AM (amplitude modulation) synthesizer +msgid "AM synth" msgstr "" -#: js/MeterActions.js:117 -#: js/MeterActions.js:155 -msgid "beats per minute is" +#: js/blocks/ToneBlocks.js:189 +msgid "The AM synth block is an amplitude modulator used to define a timbre." msgstr "" -#: js/ToneActions.js:134 -msgid "Vibrato intensity must be between 1 and 100." +#: js/blocks/ToneBlocks.js:224 +#: js/widgets/timbre.js:1223 +#.TRANS: FM (frequency modulation) synthesizer +msgid "FM synth" msgstr "" -#: js/ToneActions.js:139 -msgid "Vibrato rate must be greater than 0." +#: js/blocks/ToneBlocks.js:228 +msgid "The FM synth block is a frequency modulator used to define a timbre." msgstr "" -#: js/ToneActions.js:192 -#: js/ToneActions.js:265 -#.TRANS: Depth is the intesity of the tremolo or chorus effect. -msgid "Depth is out of range." +#: js/blocks/ToneBlocks.js:262 +msgid "partial" msgstr "" -#: js/ToneActions.js:301 -msgid "Distortion must be from 0 to 100." +#: js/blocks/ToneBlocks.js:265 +msgid "The Partial block is used to specify a weight for a specific partial harmonic." msgstr "" -#: js/ToneActions.js:332 -#.TRANS: partials components in a harmonic series -msgid "Partial must be greater than or equal to 0." +#: js/blocks/ToneBlocks.js:284 +#.TRANS: partials are weighted components in a harmonic series +msgid "Partial weight must be between 0 and 1." msgstr "" -#: js/ToneActions.js:378 -#: js/ToneActions.js:417 -#: js/ToneActions.js:456 -#: js/timbre.js:782 -msgid "Unable to use synth due to existing oscillator" +#: js/blocks/ToneBlocks.js:297 +#.TRANS: partials are weighted components in a harmonic series +msgid "Partial block should be used inside of a Weighted-partials block." msgstr "" -#: js/ToneActions.js:388 -#: js/ToneActions.js:427 -msgid "The input cannot be negative." +#: js/blocks/ToneBlocks.js:325 +#.TRANS: partials are weighted components in a harmonic series +msgid "weighted partials" msgstr "" -#: js/DictActions.js:75 -#: js/DictActions.js:153 -#: js/DictActions.js:188 -msgid "font" +#: js/blocks/ToneBlocks.js:383 +msgid "The Harmonic block will add harmonics to the contained notes." msgstr "" -#: js/musicutils.js:363 -#: js/musicutils.js:471 -#: js/pitchdrummatrix.js:151 -#: js/musickeyboard.js:2563 -msgid "rest" -msgstr "बाँकी" - -#: js/musicutils.js:565 -#.TRANS: ordinal number. Please keep exactly one space between each number. -msgid "1st 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th" +#: js/blocks/ToneBlocks.js:390 +#.TRANS: A harmonic is an overtone. +msgid "harmonic" msgstr "" -#: js/musicutils.js:629 -#: js/musicutils.js:812 -#: js/musicutils.js:911 -#.TRANS: augmented is a music term related to intervals -msgid "augmented" +#: js/blocks/ToneBlocks.js:431 +msgid "The Distortion block adds distortion to the pitch." msgstr "" -#: js/musicutils.js:631 -#: js/musicutils.js:813 -#: js/musicutils.js:910 -#.TRANS: diminished is a music term related to intervals and mode -msgid "diminished" +#: js/blocks/ToneBlocks.js:438 +#: js/widgets/timbre.js:2100 +#.TRANS: distortion is an alteration in the sound +msgid "distortion" msgstr "" -#: js/musicutils.js:639 -#.TRANS: twelve semi-tone scale for music -msgid "chromatic" +#: js/blocks/ToneBlocks.js:487 +msgid "The Tremolo block adds a wavering effect." msgstr "" -#: js/musicutils.js:640 -msgid "algerian" +#: js/blocks/ToneBlocks.js:495 +#: js/widgets/timbre.js:2092 +#.TRANS: a wavering effect in a musical tone +msgid "tremolo" msgstr "" -#: js/musicutils.js:641 -msgid "spanish" +#: js/blocks/ToneBlocks.js:500 +#: js/blocks/ToneBlocks.js:569 +#: js/blocks/ToneBlocks.js:630 +#: js/blocks/ToneBlocks.js:689 +#: js/widgets/timbre.js:2134 +#: js/widgets/timbre.js:2222 +#: js/widgets/timbre.js:2317 +#: js/widgets/timbre.js:2419 +#.TRANS: rate at which tremolo wavers +msgid "rate" msgstr "" -#: js/musicutils.js:643 -#.TRANS: modal scale in music -msgid "octatonic" +#: js/blocks/ToneBlocks.js:502 +#: js/blocks/ToneBlocks.js:630 +#: js/widgets/timbre.js:2137 +#: js/widgets/timbre.js:2328 +#.TRANS: amplitude of tremolo waver +msgid "depth" msgstr "" -#: js/musicutils.js:645 -#.TRANS: harmonic major scale in music -msgid "harmonic major" +#: js/blocks/ToneBlocks.js:559 +msgid "The Phaser block adds a sweeping sound." msgstr "" -#: js/musicutils.js:647 -#.TRANS: natural minor scales in music -msgid "natural minor" +#: js/blocks/ToneBlocks.js:566 +#: js/widgets/timbre.js:2098 +#.TRANS: alter the phase of the sound +msgid "phaser" msgstr "" -#: js/musicutils.js:649 -#.TRANS: harmonic minor scale in music -msgid "harmonic minor" +#: js/blocks/ToneBlocks.js:569 +#: js/turtleactions/IntervalsActions.js:114 +#: js/widgets/timbre.js:2422 +msgid "octaves" msgstr "" -#: js/musicutils.js:651 -#.TRANS: melodic minor scale in music -msgid "melodic minor" +#: js/blocks/ToneBlocks.js:569 +#: js/widgets/timbre.js:2425 +msgid "base frequency" msgstr "" -#: js/musicutils.js:655 -#.TRANS: modal scale for music -msgid "dorian" +#: js/blocks/ToneBlocks.js:619 +msgid "The Chorus block adds a chorus effect." msgstr "" -#: js/musicutils.js:657 -#.TRANS: modal scale for music -msgid "phrygian" +#: js/blocks/ToneBlocks.js:627 +#: js/widgets/timbre.js:2096 +#.TRANS: musical effect to simulate a choral sound +msgid "chorus" msgstr "" -#: js/musicutils.js:659 -#.TRANS: modal scale for music -msgid "lydian" +#: js/blocks/ToneBlocks.js:630 +msgid "delay" msgstr "" -#: js/musicutils.js:661 -#.TRANS: modal scale for music -msgid "mixolydian" +#: js/blocks/ToneBlocks.js:678 +msgid "The Vibrato block adds a rapid, slight variation in pitch." msgstr "" -#: js/musicutils.js:665 -#.TRANS: modal scale for music -msgid "locrian" +#: js/blocks/ToneBlocks.js:686 +#: js/widgets/timbre.js:2094 +#.TRANS: a rapid, slight variation in pitch +msgid "vibrato" msgstr "" -#: js/musicutils.js:667 -#.TRANS: minor jazz scale for music -msgid "jazz minor" +#: js/blocks/ToneBlocks.js:689 +#: js/widgets/timbre.js:2221 +msgid "intensity" msgstr "" -#: js/musicutils.js:669 -#.TRANS: bebop scale for music -msgid "bebop" +#: js/blocks/ToneBlocks.js:733 +#.TRANS: select synthesizer +msgid "set synth" msgstr "" -#: js/musicutils.js:670 -msgid "arabic" +#: js/blocks/ToneBlocks.js:804 +msgid "synth name" msgstr "" -#: js/musicutils.js:671 -msgid "byzantine" +#: js/blocks/ToneBlocks.js:842 +msgid "set default instrument" msgstr "" -#: js/musicutils.js:673 -#.TRANS: musical scale for music by Verdi -msgid "enigmatic" +#: js/blocks/ToneBlocks.js:895 +#: js/blocks/ToneBlocks.js:943 +#.TRANS: set the characteristics of a custom instrument +msgid "set instrument" msgstr "" -#: js/musicutils.js:674 -msgid "ethiopian" +#: js/blocks/ToneBlocks.js:898 +#: js/blocks/ToneBlocks.js:926 +#: js/blocks/ToneBlocks.js:932 +msgid "The Set instrument block selects a voice for the synthesizer," msgstr "" -#: js/musicutils.js:676 -#.TRANS: Ethiopic scale for music -msgid "geez" +#: js/blocks/ToneBlocks.js:900 +#: js/blocks/ToneBlocks.js:934 +msgid "eg guitar piano violin or cello." msgstr "" -#: js/musicutils.js:677 -msgid "hindu" +#: js/blocks/ToneBlocks.js:1015 +msgid "Import a sound file to use as an instrument and set its pitch center." msgstr "" -#: js/musicutils.js:678 -msgid "hungarian" +#: js/blocks/ToneBlocks.js:1110 +msgid "Upload a sound file to connect with the sample block." msgstr "" -#: js/musicutils.js:680 -#.TRANS: minor Romanian scale for music -msgid "romanian minor" +#: js/blocks/VolumeBlocks.js:35 +msgid "synth volume" msgstr "" -#: js/musicutils.js:681 -msgid "spanish gypsy" +#: js/blocks/VolumeBlocks.js:39 +msgid "The Synth volume block returns the current volume of the current synthesizer." msgstr "" -#: js/musicutils.js:683 -#.TRANS: musical scale for Mid-Eastern music -msgid "maqam" +#: js/blocks/VolumeBlocks.js:105 +msgid "master volume" msgstr "" -#: js/musicutils.js:685 -#.TRANS: minor blues scale for music -msgid "minor blues" +#: js/blocks/VolumeBlocks.js:109 +msgid "The Master volume block returns the master volume." msgstr "" -#: js/musicutils.js:687 -#.TRANS: major blues scale for music -msgid "major blues" +#: js/blocks/VolumeBlocks.js:355 +#: js/blocks/VolumeBlocks.js:524 +msgid "set synth volume" msgstr "" -#: js/musicutils.js:688 -msgid "whole tone" +#: js/blocks/VolumeBlocks.js:362 +#: js/blocks/VolumeBlocks.js:545 +msgid "synth" msgstr "" -#: js/musicutils.js:690 -#.TRANS: pentatonic is a general term that means "five note scale". This scale is typically known as "minor pentatonic" -msgid "minor pentatonic" +#: js/blocks/VolumeBlocks.js:403 +#: js/blocks/VolumeBlocks.js:577 +#: js/blocks/VolumeBlocks.js:740 +#: js/turtleactions/VolumeActions.js:173 +msgid "Setting volume to 0." msgstr "" -#: js/musicutils.js:692 -#.TRANS: pentatonic is a general term that means "five note scale". This scale is typically known as "major pentatonic" -msgid "major pentatonic" +#: js/blocks/VolumeBlocks.js:440 +msgid "Synth not found" msgstr "" -#: js/musicutils.js:693 -msgid "chinese" +#: js/blocks/VolumeBlocks.js:494 +msgid "set drum volume" msgstr "" -#: js/musicutils.js:694 -msgid "egyptian" +#: js/blocks/VolumeBlocks.js:530 +msgid "The Set synth volume block will change the volume of a particular synth," msgstr "" -#: js/musicutils.js:696 -#.TRANS: https://en.wikipedia.org/wiki/Hirajoshi_scale NOTE: There are three different versions of this scale -msgid "hirajoshi" +#: js/blocks/VolumeBlocks.js:532 +msgid "eg guitar violin snare drum etc." msgstr "" -#: js/musicutils.js:697 -msgid "Japan" +#: js/blocks/VolumeBlocks.js:534 +msgid "The default volume is 50." msgstr "" -#: js/musicutils.js:699 -#.TRANS: https://en.wikipedia.org/wiki/In_scale and https://en.wikipedia.org/wiki/Sakura_Sakura -msgid "in" +#: js/blocks/VolumeBlocks.js:536 +msgid "The range is 0 for silence to 100 for full volume." msgstr "" -#: js/musicutils.js:701 -#.TRANS: https://en.wikipedia.org/wiki/Miny%C5%8D_scale -msgid "minyo" +#: js/blocks/VolumeBlocks.js:597 +msgid "set panning" msgstr "" -#: js/musicutils.js:703 -#.TRANS: Italian mathematician -msgid "fibonacci" +#: js/blocks/VolumeBlocks.js:603 +msgid "The Set Panning block sets the panning for all synthesizers." msgstr "" -#: js/musicutils.js:708 -#: js/musicutils.js:1106 -#.TRANS: lowpass filter -msgid "lowpass" +#: js/blocks/VolumeBlocks.js:625 +msgid "Warning: Sound is coming out from only the left or right side." msgstr "" -#: js/musicutils.js:710 -#: js/musicutils.js:1107 -#.TRANS: bandpass filter -msgid "bandpass" +#: js/blocks/VolumeBlocks.js:647 +#: js/blocks/VolumeBlocks.js:695 +msgid "set master volume" msgstr "" -#: js/musicutils.js:712 -#: js/musicutils.js:1108 -#.TRANS: high-shelf filter -msgid "highshelf" +#: js/blocks/VolumeBlocks.js:653 +msgid "The Set master volume block sets the volume for all synthesizers." msgstr "" -#: js/musicutils.js:714 -#: js/musicutils.js:1109 -#.TRANS: low-shelf filter -msgid "lowshelf" +#: js/blocks/VolumeBlocks.js:784 +msgid "The Set relative volume block changes the volume of the contained notes." msgstr "" -#: js/musicutils.js:716 -#: js/musicutils.js:1110 -#.TRANS: notch-shelf filter -msgid "notch" +#: js/blocks/VolumeBlocks.js:791 +msgid "set relative volume" msgstr "" -#: js/musicutils.js:718 -#: js/musicutils.js:1111 -#.TRANS: all-pass filter -msgid "allpass" +#: js/blocks/VolumeBlocks.js:857 +msgid "decrescendo" msgstr "" -#: js/musicutils.js:720 -#: js/musicutils.js:1112 -#.TRANS: peaking filter -msgid "peaking" +#: js/blocks/VolumeBlocks.js:921 +msgid "crescendo" msgstr "" -#: js/musicutils.js:731 -#: js/synthutils.js:58 -#.TRANS: musical instrument -msgid "violin" +#: js/blocks/WidgetBlocks.js:81 +#.TRANS: sound envelope (ADSR) +msgid "envelope" msgstr "" -#: js/musicutils.js:732 -#: js/synthutils.js:60 -#.TRANS: viola musical instrument -msgid "viola" +#: js/blocks/WidgetBlocks.js:89 +#.TRANS: Attack time is the time taken for initial run-up of level from nil to peak, beginning when the key is first pressed. +msgid "attack" msgstr "" -#: js/musicutils.js:733 -#: js/synthutils.js:98 -#.TRANS: xylophone musical instrument -msgid "xylophone" +#: js/blocks/WidgetBlocks.js:91 +#.TRANS: Decay time is the time taken for the subsequent run down from the attack level to the designated sustain level. +msgid "decay" msgstr "" -#: js/musicutils.js:734 -#: js/synthutils.js:120 -#.TRANS: vibraphone musical instrument -msgid "vibraphone" +#: js/blocks/WidgetBlocks.js:93 +#.TRANS: Sustain level is the level during the main sequence of the sound's duration, until the key is released. +msgid "sustain" msgstr "" -#: js/musicutils.js:735 -#: js/synthutils.js:62 -#.TRANS: musical instrument -msgid "cello" +#: js/blocks/WidgetBlocks.js:95 +#.TRANS: Release time is the time taken for the level to decay from the sustain level to zero after the key is released. +msgid "release" msgstr "" -#: js/musicutils.js:737 -#: js/synthutils.js:66 -#.TRANS: viola musical instrument -msgid "double bass" +#: js/blocks/WidgetBlocks.js:113 +msgid "Attack value should be from 0 to 100." msgstr "" -#: js/musicutils.js:738 -#: js/synthutils.js:68 -#: js/rhythmruler.js:2119 -#.TRANS: musical instrument -msgid "guitar" +#: js/blocks/WidgetBlocks.js:116 +msgid "Decay value should be from 0 to 100." msgstr "" -#: js/musicutils.js:739 -#: js/synthutils.js:70 -#.TRANS: musical instrument -msgid "acoustic guitar" +#: js/blocks/WidgetBlocks.js:119 +msgid "Sustain value should be from 0 to 100." msgstr "" -#: js/musicutils.js:740 -#: js/synthutils.js:72 -#.TRANS: musical instrument -msgid "flute" +#: js/blocks/WidgetBlocks.js:122 +msgid "Release value should be from 0-100." msgstr "" -#: js/musicutils.js:741 -#: js/synthutils.js:74 -#.TRANS: musical instrument -msgid "clarinet" +#: js/blocks/WidgetBlocks.js:140 +msgid "You are adding multiple envelope blocks." msgstr "" -#: js/musicutils.js:742 -#: js/synthutils.js:76 -#.TRANS: musical instrument -msgid "saxophone" +#: js/blocks/WidgetBlocks.js:171 +#.TRANS: a filter removes some unwanted components from a signal +msgid "filter" msgstr "" -#: js/musicutils.js:743 -#: js/synthutils.js:78 -#.TRANS: musical instrument -msgid "tuba" +#: js/blocks/WidgetBlocks.js:181 +#: js/widgets/timbre.js:1818 +#.TRANS: rolloff is the steepness of a change in frequency. +msgid "rolloff" msgstr "" -#: js/musicutils.js:744 -#: js/synthutils.js:80 -#.TRANS: musical instrument -msgid "trumpet" +#: js/blocks/WidgetBlocks.js:213 +#.TRANS: rolloff is the steepness of a change in frequency. +msgid "Rolloff value should be either -12, -24, -48, or -96 decibels/octave." msgstr "" -#: js/musicutils.js:745 -#: js/synthutils.js:82 -#.TRANS: musical instrument -msgid "oboe" +#: js/blocks/WidgetBlocks.js:252 +msgid "The Temperament tool is used to define custom tuning." msgstr "" -#: js/musicutils.js:746 -#: js/synthutils.js:84 -#.TRANS: musical instrument -msgid "trombone" +#: js/blocks/WidgetBlocks.js:332 +#: js/blocks/WidgetBlocks.js:1573 +#: js/widgets/sampler.js:547 +msgid "Upload a sample and adjust its pitch center." msgstr "" -#: js/musicutils.js:747 -#: js/synthutils.js:100 -#.TRANS: polytone synthesizer -msgid "electronic synth" +#: js/blocks/WidgetBlocks.js:339 +#.TRANS: the speed at music is should be played. +msgid "sampler" msgstr "" -#: js/musicutils.js:748 -#: js/synthutils.js:102 -#.TRANS: simple monotone synthesizer -msgid "simple 1" +#: js/blocks/WidgetBlocks.js:517 +msgid "The Meter block opens a tool to select strong beats for the meter." msgstr "" -#: js/musicutils.js:749 -msgid "simple 2" +#: js/blocks/WidgetBlocks.js:573 +msgid "The oscilloscope block opens a tool to visualize waveforms." msgstr "" -#: js/musicutils.js:750 -msgid "simple 3" +#: js/blocks/WidgetBlocks.js:578 +msgid "oscilloscope" msgstr "" -#: js/musicutils.js:751 -msgid "simple 4" +#: js/blocks/WidgetBlocks.js:645 +msgid "The Custom mode block opens a tool to explore musical mode (the spacing of the notes in a scale)." msgstr "" -#: js/musicutils.js:753 -#: js/synthutils.js:49 -#.TRANS: brown noise synthesizer -msgid "brown noise" +#: js/blocks/WidgetBlocks.js:651 +#.TRANS: musical mode is the pattern of half-steps in an octave, e.g., Major or Minor modes +msgid "custom mode" msgstr "" -#: js/musicutils.js:754 -#: js/synthutils.js:51 -#.TRANS: pink noise synthesizer -msgid "pink noise" +#: js/blocks/WidgetBlocks.js:700 +msgid "The Tempo block opens a metronome to visualize the beat." msgstr "" -#: js/musicutils.js:756 -#: js/synthutils.js:127 -#: js/rhythmruler.js:1670 -#: js/rhythmruler.js:1928 -#.TRANS: musical instrument -msgid "snare drum" +#: js/blocks/WidgetBlocks.js:762 +msgid "The Arpeggio Widget is used to compose chord sequences." msgstr "" -#: js/musicutils.js:757 -#: js/synthutils.js:129 -#.TRANS: musical instrument -msgid "kick drum" +#: js/blocks/WidgetBlocks.js:837 +msgid "The Pitch drum matrix is used to map pitches to drum sounds." msgstr "" -#: js/musicutils.js:758 -#: js/synthutils.js:131 -#.TRANS: musical instrument -msgid "tom tom" +#: js/blocks/WidgetBlocks.js:842 +#.TRANS: makes a mapping between pitches and drum sounds +msgid "pitch-drum mapper" msgstr "" -#: js/musicutils.js:759 -#: js/synthutils.js:133 -#.TRANS: musical instrument -msgid "floor tom" +#: js/blocks/WidgetBlocks.js:891 +msgid "You must have at least one pitch block and one drum block in the matrix." msgstr "" -#: js/musicutils.js:760 -#: js/synthutils.js:135 -#.TRANS: musical instrument -msgid "bass drum" +#: js/blocks/WidgetBlocks.js:920 +msgid "The Pitch slider tool to is used to generate pitches at selected frequencies." msgstr "" -#: js/musicutils.js:761 -#: js/synthutils.js:137 -#.TRANS: a drum made from an inverted cup -msgid "cup drum" +#: js/blocks/WidgetBlocks.js:925 +#.TRANS: widget to generate pitches using a slider +msgid "pitch slider" msgstr "" -#: js/musicutils.js:762 -#: js/synthutils.js:139 -#.TRANS: musical instrument -msgid "darbuka drum" +#: js/blocks/WidgetBlocks.js:977 +msgid "chromatic keyboard" msgstr "" -#: js/musicutils.js:763 -#: js/synthutils.js:143 -#.TRANS: musical instrument -msgid "hi hat" +#: js/blocks/WidgetBlocks.js:1011 +#: js/blocks/WidgetBlocks.js:1077 +#.TRANS: widget to generate pitches using a slider +msgid "music keyboard" msgstr "" -#: js/musicutils.js:764 -#: js/synthutils.js:145 -#.TRANS: a small metal bell -msgid "ride bell" +#: js/blocks/WidgetBlocks.js:1062 +#: js/blocks/WidgetBlocks.js:1069 +msgid "The Music keyboard block opens a piano keyboard that can be used to create notes." msgstr "" -#: js/musicutils.js:765 -#: js/synthutils.js:147 -#.TRANS: musical instrument -msgid "cow bell" +#: js/blocks/WidgetBlocks.js:1128 +msgid "The Pitch staircase tool to is used to generate pitches from a given ratio." msgstr "" -#: js/musicutils.js:766 -msgid "japanese drum" +#: js/blocks/WidgetBlocks.js:1135 +#.TRANS: generate a progressive sequence of pitches +msgid "pitch staircase" msgstr "" -#: js/musicutils.js:767 -#: js/synthutils.js:153 -#.TRANS: musical instrument -msgid "japanese bell" +#: js/blocks/WidgetBlocks.js:1222 +msgid "The Rhythm Maker block opens a tool to create drum machines." msgstr "" -#: js/musicutils.js:768 -#: js/synthutils.js:149 -#.TRANS: musical instrument -msgid "triangle bell" +#: js/blocks/WidgetBlocks.js:1291 +msgid "G major scale" msgstr "" -#: js/musicutils.js:769 -#: js/synthutils.js:151 -#.TRANS: musical instrument -msgid "finger cymbals" +#: js/blocks/WidgetBlocks.js:1326 +msgid "C major scale" msgstr "" -#: js/musicutils.js:770 -#: js/synthutils.js:155 -#.TRANS: a musically tuned set of bells -msgid "chime" +#: js/blocks/WidgetBlocks.js:1366 +msgid "The Phrase Maker block opens a tool to create musical phrases." msgstr "" -#: js/musicutils.js:771 -#: js/synthutils.js:157 -#.TRANS: a musical instrument -msgid "gong" +#: js/blocks/WidgetBlocks.js:1373 +#.TRANS: assigns pitch to a sequence of beats to generate a melody +msgid "phrase maker" msgstr "" -#: js/musicutils.js:772 -#: js/synthutils.js:159 -#.TRANS: sound effect -msgid "clang" +#: js/blocks/WidgetBlocks.js:1444 +msgid "You must have at least one pitch block and one rhythm block in the matrix." msgstr "" -#: js/musicutils.js:773 -#: js/synthutils.js:161 -#.TRANS: sound effect -msgid "crash" +#: js/blocks/WidgetBlocks.js:1503 +msgid "The Status block opens a tool for inspecting the status of Music Blocks as it is running." msgstr "" -#: js/musicutils.js:774 -#: js/synthutils.js:163 -#.TRANS: sound effect -msgid "bottle" +#: js/blocks/WidgetBlocks.js:1580 +#.TRANS: AI-generated music +msgid "aimusic" msgstr "" -#: js/musicutils.js:775 -#: js/synthutils.js:165 -#.TRANS: sound effect -msgid "clap" +#: js/turtleactions/MeterActions.js:101 +#: js/turtleactions/MeterActions.js:139 +msgid "beats per minute must be greater than" msgstr "" -#: js/musicutils.js:776 -#: js/synthutils.js:167 -#.TRANS: sound effect -msgid "slap" +#: js/turtleactions/MeterActions.js:111 +#: js/turtleactions/MeterActions.js:149 +msgid "maximum" msgstr "" -#: js/musicutils.js:777 -#: js/synthutils.js:169 -#.TRANS: sound effect -msgid "splash" +#: js/turtleactions/MeterActions.js:117 +#: js/turtleactions/MeterActions.js:155 +msgid "beats per minute is" msgstr "" -#: js/musicutils.js:778 -#: js/synthutils.js:171 -#.TRANS: sound effect -msgid "bubbles" +#: js/turtleactions/DictActions.js:75 +#: js/turtleactions/DictActions.js:142 +#: js/turtleactions/DictActions.js:172 +msgid "font" msgstr "" -#: js/musicutils.js:779 -#: js/synthutils.js:173 -#.TRANS: sound effect -msgid "raindrop" +#: js/turtleactions/DictActions.js:255 +msgid "Dictionary with this name does not exist" msgstr "" -#: js/musicutils.js:780 -#: js/synthutils.js:175 -#.TRANS: animal sound effect -msgid "cat" +#: js/turtleactions/DictActions.js:259 +msgid "Key with this name does not exist in " msgstr "" -#: js/musicutils.js:781 -#: js/synthutils.js:177 -#.TRANS: animal sound effect -msgid "cricket" +#: js/turtleactions/DrumActions.js:227 +msgid "Noise Block: Did you mean to use a Note block?" msgstr "" -#: js/musicutils.js:782 -#: js/synthutils.js:179 -#.TRANS: animal sound effect -msgid "dog" +#: js/turtleactions/IntervalsActions.js:113 +msgid "one" msgstr "" -#: js/musicutils.js:784 -#: js/synthutils.js:86 -#.TRANS: musical instrument -msgid "banjo" +#: js/turtleactions/IntervalsActions.js:113 +msgid "two" msgstr "" -#: js/musicutils.js:785 -#: js/synthutils.js:88 -#.TRANS: musical instrument -msgid "koto" +#: js/turtleactions/IntervalsActions.js:113 +msgid "three" msgstr "" -#: js/musicutils.js:786 -#: js/synthutils.js:90 -#.TRANS: musical instrument -msgid "dulcimer" +#: js/turtleactions/IntervalsActions.js:113 +msgid "four" msgstr "" -#: js/musicutils.js:787 -#: js/synthutils.js:92 -#.TRANS: musical instrument -msgid "electric guitar" +#: js/turtleactions/IntervalsActions.js:113 +msgid "five" msgstr "" -#: js/musicutils.js:788 -#: js/synthutils.js:94 -#.TRANS: musical instrument -msgid "bassoon" +#: js/turtleactions/IntervalsActions.js:113 +msgid "six" msgstr "" -#: js/musicutils.js:789 -#: js/synthutils.js:96 -#.TRANS: musical instrument -msgid "celeste" +#: js/turtleactions/IntervalsActions.js:113 +msgid "seven" msgstr "" -#: js/musicutils.js:791 -#: js/musicutils.js:1123 -#: js/musicutils.js:1131 -#: js/temperament.js:650 -#.TRANS: musical temperament -msgid "equal" +#: js/turtleactions/IntervalsActions.js:113 +msgid "eight" msgstr "" -#: js/musicutils.js:793 -#: js/musicutils.js:1125 -#: js/musicutils.js:1133 -#.TRANS: musical temperament -msgid "Pythagorean" +#: js/turtleactions/IntervalsActions.js:113 +msgid "nine" msgstr "" -#: js/musicutils.js:795 -#: js/musicutils.js:1124 -#: js/musicutils.js:1132 -#.TRANS: musical temperament -msgid "just intonation" +#: js/turtleactions/IntervalsActions.js:119 +msgid "a" msgstr "" -#: js/musicutils.js:797 -#: js/musicutils.js:1126 -#: js/musicutils.js:1127 -#: js/musicutils.js:1134 -#: js/musicutils.js:1135 -#.TRANS: musical temperament -msgid "meantone" +#: js/turtleactions/IntervalsActions.js:120 +msgid "below" msgstr "" -#: js/musicutils.js:814 -msgid "major 7th" +#: js/turtleactions/IntervalsActions.js:124 +msgid "above" msgstr "" -#: js/musicutils.js:815 -msgid "minor 7th" +#: js/turtleactions/IntervalsActions.js:131 +msgid "plus" msgstr "" -#: js/musicutils.js:816 -msgid "dominant 7th" +#: js/turtleactions/IntervalsActions.js:139 +msgid " below" msgstr "" -#: js/musicutils.js:817 -msgid "minor-major 7th" +#: js/turtleactions/IntervalsActions.js:257 +msgid "Adding missing pitch number 0." msgstr "" -#: js/musicutils.js:818 -msgid "fully-diminished 7th" +#: js/turtleactions/IntervalsActions.js:265 +msgid "Ignoring pitch numbers less than zero or greater than eleven." msgstr "" -#: js/musicutils.js:819 -msgid "half-diminished 7th" +#: js/turtleactions/IntervalsActions.js:271 +msgid "Ignoring duplicate pitch numbers." msgstr "" -#: js/musicutils.js:4379 -#: js/musicutils.js:4416 -msgid "current" +#: js/turtleactions/ToneActions.js:134 +msgid "Vibrato intensity must be between 1 and 100." msgstr "" -#: js/musicutils.js:4382 -#: js/musicutils.js:4407 -msgid "next" +#: js/turtleactions/ToneActions.js:139 +msgid "Vibrato rate must be greater than 0." msgstr "" -#: js/musicutils.js:4385 -#: js/musicutils.js:4412 -msgid "previous" +#: js/turtleactions/ToneActions.js:192 +#: js/turtleactions/ToneActions.js:265 +#.TRANS: Depth is the intesity of the tremolo or chorus effect. +msgid "Depth is out of range." msgstr "" -#: js/synthutils.js:104 -#.TRANS: simple monotone synthesizer -msgid "simple-2" +#: js/turtleactions/ToneActions.js:301 +msgid "Distortion must be from 0 to 100." msgstr "" -#: js/synthutils.js:106 -#.TRANS: simple monotone synthesizer -msgid "simple-3" +#: js/turtleactions/ToneActions.js:332 +#.TRANS: partials components in a harmonic series +msgid "Partial must be greater than or equal to 0." msgstr "" -#: js/synthutils.js:108 -#.TRANS: simple monotone synthesizer -msgid "simple-4" +#: js/turtleactions/ToneActions.js:378 +#: js/turtleactions/ToneActions.js:417 +#: js/turtleactions/ToneActions.js:456 +#: js/widgets/timbre.js:782 +msgid "Unable to use synth due to existing oscillator" msgstr "" -#: js/synthutils.js:141 -#.TRANS: musical instrument -msgid "taiko" +#: js/turtleactions/ToneActions.js:388 +#: js/turtleactions/ToneActions.js:427 +msgid "The input cannot be negative." msgstr "" -#: js/modewidget.js:86 -#: js/modewidget.js:88 -#: js/modewidget.js:642 -#: js/modewidget.js:644 -#: js/modewidget.js:712 -#: js/modewidget.js:714 -#: js/temperament.js:2078 -#: js/rhythmruler.js:189 -#: js/rhythmruler.js:1410 -#: js/rhythmruler.js:1412 -#: js/rhythmruler.js:1435 -#: js/rhythmruler.js:1437 -#: js/meterwidget.js:89 -#: js/meterwidget.js:91 +#: js/widgets/modewidget.js:86 +#: js/widgets/modewidget.js:88 +#: js/widgets/modewidget.js:642 +#: js/widgets/modewidget.js:644 +#: js/widgets/modewidget.js:712 +#: js/widgets/modewidget.js:714 +#: js/widgets/meterwidget.js:194 +#: js/widgets/meterwidget.js:196 +#: js/widgets/temperament.js:2236 +#: js/widgets/rhythmruler.js:457 +#: js/widgets/rhythmruler.js:1790 +#: js/widgets/rhythmruler.js:1792 +#: js/widgets/rhythmruler.js:1816 +#: js/widgets/rhythmruler.js:1818 msgid "Play all" msgstr "" -#: js/modewidget.js:115 -#: js/pitchstaircase.js:641 -#: js/phrasemaker.js:339 -#: js/pitchdrummatrix.js:94 -#: js/pitchslider.js:125 -#: js/temperament.js:2083 -#: js/musickeyboard.js:530 -#: js/timbre.js:756 -#: js/meterwidget.js:124 -#: js/arpeggio.js:103 +#: js/widgets/modewidget.js:115 +#: js/widgets/meterwidget.js:229 +#: js/widgets/pitchdrummatrix.js:166 +#: js/widgets/pitchslider.js:125 +#: js/widgets/pitchstaircase.js:641 +#: js/widgets/temperament.js:2244 +#: js/widgets/timbre.js:756 +#: js/widgets/arpeggio.js:103 +#: js/widgets/musickeyboard.js:688 +#: js/widgets/phrasemaker.js:550 msgid "Save" msgstr "" -#: js/modewidget.js:121 -#: js/pitchstaircase.js:686 -#: js/phrasemaker.js:356 -#: js/pitchdrummatrix.js:109 -#: js/musickeyboard.js:534 -#: js/rhythmruler.js:269 -#: js/arpeggio.js:118 +#: js/widgets/modewidget.js:121 +#: js/widgets/pitchdrummatrix.js:181 +#: js/widgets/pitchstaircase.js:686 +#: js/widgets/arpeggio.js:118 +#: js/widgets/musickeyboard.js:696 +#: js/widgets/phrasemaker.js:567 +#: js/widgets/rhythmruler.js:601 #.TRANS: clear all subdivisions from the ruler. msgid "Clear" msgstr "" -#: js/modewidget.js:127 +#: js/widgets/modewidget.js:127 msgid "Rotate counter clockwise" msgstr "" -#: js/modewidget.js:133 +#: js/widgets/modewidget.js:133 msgid "Rotate clockwise" msgstr "" -#: js/modewidget.js:139 +#: js/widgets/modewidget.js:139 msgid "Invert" msgstr "" -#: js/modewidget.js:145 -#: js/pitchstaircase.js:678 -#: js/rhythmruler.js:258 -#: js/timbre.js:963 +#: js/widgets/modewidget.js:145 +#: js/widgets/pitchstaircase.js:678 +#: js/widgets/timbre.js:963 +#: js/widgets/rhythmruler.js:578 msgid "Undo" msgstr "" -#: js/modewidget.js:163 +#: js/widgets/modewidget.js:163 #.TRANS: A circle of notes represents the musical mode. msgid "Click in the circle to select notes for the mode." msgstr "" -#: js/modewidget.js:1017 -#: js/pitchstaircase.js:580 -#: js/phrasemaker.js:4855 -#: js/temperament.js:1754 -#: js/rhythmruler.js:1865 -#: js/rhythmruler.js:2081 -#: js/tempo.js:414 +#: js/widgets/modewidget.js:1017 +#: js/widgets/pitchstaircase.js:580 +#: js/widgets/temperament.js:1929 +#: js/widgets/tempo.js:414 +#: js/widgets/phrasemaker.js:5356 +#: js/widgets/rhythmruler.js:2254 +#: js/widgets/rhythmruler.js:2472 msgid "New action block generated!" msgstr "" -#: js/oscilloscope.js:79 -msgid "Zoom In" -msgstr "" - -#: js/oscilloscope.js:88 -msgid "Zoom Out" -msgstr "" - -#: js/pitchstaircase.js:624 -msgid "Play chord" -msgstr "" - -#: js/pitchstaircase.js:632 -msgid "Play scale" +#: js/widgets/meterwidget.js:275 +msgid "Reset" msgstr "" -#: js/pitchstaircase.js:696 -msgid "Click on a note to create a new step." +#: js/widgets/meterwidget.js:301 +msgid "Click in the circle to select strong beats for the meter." msgstr "" -#: js/phrasemaker.js:363 -msgid "Export" +#: js/widgets/oscilloscope.js:79 +msgid "Zoom In" msgstr "" -#: js/phrasemaker.js:370 -msgid "Sort" +#: js/widgets/oscilloscope.js:88 +msgid "Zoom Out" msgstr "" -#: js/phrasemaker.js:373 -#: js/musickeyboard.js:559 -msgid "Add note" +#: js/widgets/pitchdrummatrix.js:356 +#: js/widgets/pitchdrummatrix.js:752 +msgid "Click in the grid to map notes to drums." msgstr "" -#: js/phrasemaker.js:764 -msgid "Click on the table to add notes." +#: js/widgets/pitchslider.js:103 +msgid "Move up" msgstr "" -#: js/phrasemaker.js:2414 -#: js/phrasemaker.js:2543 -msgid "tuplet value" +#: js/widgets/pitchslider.js:114 +msgid "Move down" msgstr "" -#: js/pitchdrummatrix.js:270 -#: js/pitchdrummatrix.js:639 -msgid "Click in the grid to map notes to drums." +#: js/widgets/pitchslider.js:136 +msgid "Click on the slider to create a note block." msgstr "" -#: js/pitchslider.js:103 -msgid "Move up" +#: js/widgets/pitchstaircase.js:624 +msgid "Play chord" msgstr "" -#: js/pitchslider.js:114 -msgid "Move down" +#: js/widgets/pitchstaircase.js:632 +msgid "Play scale" msgstr "" -#: js/pitchslider.js:136 -msgid "Click on the slider to create a note block." +#: js/widgets/pitchstaircase.js:696 +msgid "Click on a note to create a new step." msgstr "" -#: js/temperament.js:215 +#: js/widgets/temperament.js:321 msgid "back to 2:1 octave space" msgstr "" -#: js/temperament.js:323 +#: js/widgets/temperament.js:447 msgid "edit" msgstr "" -#: js/temperament.js:330 -#: js/temperament.js:332 -#: js/temperament.js:1336 -#: js/temperament.js:1338 +#: js/widgets/temperament.js:454 +#: js/widgets/temperament.js:456 +#: js/widgets/temperament.js:1493 +#: js/widgets/temperament.js:1495 msgid "close" msgstr "" -#: js/temperament.js:423 -#: js/temperament.js:736 -#: js/temperament.js:743 -#: js/temperament.js:845 -#: js/temperament.js:935 -#: js/temperament.js:942 -#: js/temperament.js:1015 -#: js/temperament.js:1284 -#: js/temperament.js:1354 -#: js/temperament.js:1430 +#: js/widgets/temperament.js:552 +#: js/widgets/temperament.js:877 +#: js/widgets/temperament.js:884 +#: js/widgets/temperament.js:986 +#: js/widgets/temperament.js:1080 +#: js/widgets/temperament.js:1087 +#: js/widgets/temperament.js:1160 +#: js/widgets/temperament.js:1433 +#: js/widgets/temperament.js:1511 +#: js/widgets/temperament.js:1596 msgid "done" msgstr "" -#: js/temperament.js:477 -#: js/temperament.js:482 -#: js/temperament.js:918 +#: js/widgets/temperament.js:610 +#: js/widgets/temperament.js:615 +#: js/widgets/temperament.js:1063 msgid "ratio" msgstr "" -#: js/temperament.js:483 +#: js/widgets/temperament.js:616 msgid "interval" msgstr "" -#: js/temperament.js:611 +#: js/widgets/temperament.js:744 msgid "non scalar" msgstr "" -#: js/temperament.js:650 +#: js/widgets/temperament.js:787 msgid "ratios" msgstr "" -#: js/temperament.js:650 +#: js/widgets/temperament.js:787 msgid "arbitrary" msgstr "" -#: js/temperament.js:719 +#: js/widgets/temperament.js:860 msgid "number of divisions" msgstr "" -#: js/temperament.js:741 -#: js/temperament.js:858 -#: js/temperament.js:940 -#: js/temperament.js:1033 +#: js/widgets/temperament.js:882 +#: js/widgets/temperament.js:999 +#: js/widgets/temperament.js:1085 +#: js/widgets/temperament.js:1178 msgid "preview" msgstr "" -#: js/temperament.js:788 +#: js/widgets/temperament.js:929 msgid "The Number of divisions is too large." msgstr "" -#: js/temperament.js:921 +#: js/widgets/temperament.js:1066 msgid "recursion" msgstr "" -#: js/temperament.js:1450 +#: js/widgets/temperament.js:1616 msgid "The octave ratio has changed. This changes temperament significantly." msgstr "" -#: js/temperament.js:2087 +#: js/widgets/temperament.js:2248 msgid "Table" msgstr "" -#: js/temperament.js:2185 +#: js/widgets/temperament.js:2356 msgid "Add pitches" msgstr "" -#: js/musickeyboard.js:570 -msgid "Metronome" +#: js/widgets/tempo.js:78 +#: js/widgets/tempo.js:97 +#: js/widgets/tempo.js:99 +#: js/widgets/aiwidget.js:134 +#: js/widgets/aiwidget.js:136 +#: js/widgets/rhythmruler.js:681 +#: js/widgets/rhythmruler.js:683 +#: js/widgets/rhythmruler.js:1864 +#: js/widgets/rhythmruler.js:1866 +#: js/widgets/sampler.js:180 +#: js/widgets/sampler.js:182 +msgid "Pause" msgstr "" -#: js/musickeyboard.js:1296 -#: plugins/rodi.rtp:193 -msgid "duration" -msgstr "अन्तराल" +#: js/widgets/tempo.js:113 +msgid "Save tempo" +msgstr "" -#: js/musickeyboard.js:2840 -msgid "New action blocks generated!" +#: js/widgets/tempo.js:144 +msgid "speed up" msgstr "" -#: js/musickeyboard.js:2841 -msgid "New action block generated" +#: js/widgets/tempo.js:150 +msgid "slow down" msgstr "" -#: js/musickeyboard.js:2984 -#: js/musickeyboard.js:2992 -msgid "MIDI device present." +#: js/widgets/tempo.js:194 +msgid "Adjust the tempo with the buttons." msgstr "" -#: js/musickeyboard.js:2995 -msgid "No MIDI device found." +#: js/widgets/tempo.js:261 +msgid "Please enter a number between 30 and 1000" msgstr "" -#: js/musickeyboard.js:3000 -msgid "Failed to get MIDI access in browser." +#: js/widgets/tempo.js:268 +#: js/widgets/tempo.js:271 +msgid "The beats per minute must be between 30 and 1000." msgstr "" -#: js/rhythmruler.js:202 -msgid "Save rhythms" +#: js/widgets/tempo.js:287 +msgid "The beats per minute must be below 1000." msgstr "" -#: js/rhythmruler.js:222 -msgid "Save drum machine" +#: js/widgets/tempo.js:303 +msgid "The beats per minute must be above 30" msgstr "" -#: js/rhythmruler.js:263 -#.TRANS: user can tap out a rhythm by clicking on a ruler. -msgid "Tap a rhythm" +#: js/widgets/timbre.js:766 +msgid "Synthesizer" msgstr "" -#: js/rhythmruler.js:342 -#: js/rhythmruler.js:344 -#: js/rhythmruler.js:1481 -#: js/rhythmruler.js:1483 -#: js/sampler.js:110 -#: js/sampler.js:112 -#: js/tempo.js:78 -#: js/tempo.js:97 -#: js/tempo.js:99 -msgid "Pause" +#: js/widgets/timbre.js:789 +msgid "Oscillator" msgstr "" -#: js/rhythmruler.js:478 -msgid "Click on the ruler to divide it." +#: js/widgets/timbre.js:840 +msgid "Envelope" msgstr "" -#: js/rhythmruler.js:603 -#: js/rhythmruler.js:605 -#: js/rhythmruler.js:804 -#: js/rhythmruler.js:806 -#: js/rhythmruler.js:1386 -#: js/rhythmruler.js:1388 -msgid "tap a rhythm" +#: js/widgets/timbre.js:886 +#: planet/js/GlobalTag.js:50 +#.TRANS: On the Planet, we use labels to tag projects. +msgid "Effects" msgstr "" -#: js/rhythmruler.js:1084 -msgid "Maximum value of 256 has been exceeded." +#: js/widgets/timbre.js:904 +msgid "Filter" msgstr "" -#: js/sampler.js:137 -msgid "Warning: Sample is bigger than 1MB." +#: js/widgets/timbre.js:946 +msgid "Add filter" msgstr "" -#: js/sampler.js:142 -msgid "Upload failed: Sample is not a .wav file." +#: js/widgets/timbre.js:987 +msgid "Click on buttons to open the timbre design tools." msgstr "" -#: js/sampler.js:164 -msgid "A new sample block was generated." +#: js/widgets/timbre.js:1273 +msgid "harmonicity" msgstr "" -#: js/sampler.js:255 -msgid "Upload sample" +#: js/widgets/timbre.js:1340 +#: js/widgets/timbre.js:1406 +msgid "modulation index" msgstr "" -#: js/sampler.js:306 -msgid "Save sample" +#: js/widgets/timbre.js:1484 +msgid "vibrato amount" msgstr "" -#: js/sampler.js:697 -#.TRANS: The reference tone is a sound used for comparison. -msgid "reference tone" +#: js/widgets/timbre.js:1919 +msgid "Filter already present." msgstr "" -#: js/tempo.js:113 -msgid "Save tempo" +#: js/widgets/timbre.js:2322 +msgid "delay (MS)" msgstr "" -#: js/tempo.js:144 -msgid "speed up" +#: js/widgets/timbre.js:2507 +msgid "distortion amount" msgstr "" -#: js/tempo.js:150 -msgid "slow down" +#: js/widgets/aiwidget.js:180 +#: js/widgets/sampler.js:227 +msgid "Warning: Sample is bigger than 1MB." msgstr "" -#: js/tempo.js:194 -msgid "Adjust the tempo with the buttons." +#: js/widgets/aiwidget.js:539 +msgid "New start block generated" msgstr "" -#: js/tempo.js:261 -msgid "Please enter a number between 30 and 1000" +#: js/widgets/aiwidget.js:541 +msgid "MIDI loading. This may take some time depending upon the number of notes in the track" msgstr "" -#: js/tempo.js:268 -#: js/tempo.js:271 -msgid "The beats per minute must be between 30 and 1000." +#: js/widgets/aiwidget.js:551 +#: js/widgets/sampler.js:254 +msgid "Upload failed: Sample is not a .wav file." msgstr "" -#: js/tempo.js:287 -msgid "The beats per minute must be below 1000." +#: js/widgets/aiwidget.js:679 +#: js/widgets/sampler.js:432 +msgid "Save sample" msgstr "" -#: js/tempo.js:303 -msgid "The beats per minute must be above 30" +#: js/widgets/aiwidget.js:701 +msgid "AI Music" msgstr "" -#: js/timbre.js:766 -msgid "Synthesizer" +#: js/widgets/arpeggio.js:239 +msgid "Click in the grid to add steps to the arpeggio." msgstr "" -#: js/timbre.js:789 -msgid "Oscillator" +#: js/widgets/help.js:95 +#: js/widgets/help.js:125 +#: js/widgets/help.js:146 +#: js/widgets/help.js:158 +#: js/widgets/help.js:376 +#: js/widgets/help.js:391 +msgid "Take a tour" msgstr "" -#: js/timbre.js:840 -msgid "Envelope" +#: js/widgets/musickeyboard.js:725 +#: js/widgets/phrasemaker.js:584 +msgid "Add note" msgstr "" -#: js/timbre.js:886 -#: js/GlobalTag.js:50 -#.TRANS: On the Planet, we use labels to tag projects. -msgid "Effects" +#: js/widgets/musickeyboard.js:744 +msgid "Metronome" +msgstr "" + +#: js/widgets/musickeyboard.js:1549 +#: plugins/rodi.rtp:193 +msgid "duration" +msgstr "अन्तराल" + +#: js/widgets/musickeyboard.js:3179 +msgid "New action blocks generated" +msgstr "" + +#: js/widgets/musickeyboard.js:3180 +msgid "New action block generated" +msgstr "" + +#: js/widgets/musickeyboard.js:3365 +#: js/widgets/musickeyboard.js:3373 +msgid "MIDI device present." msgstr "" -#: js/timbre.js:904 -msgid "Filter" +#: js/widgets/musickeyboard.js:3376 +msgid "No MIDI device found." msgstr "" -#: js/timbre.js:946 -msgid "Add filter" +#: js/widgets/musickeyboard.js:3386 +msgid "Failed to get MIDI access in browser." msgstr "" -#: js/timbre.js:987 -msgid "Click on buttons to open the timbre design tools." +#: js/widgets/phrasemaker.js:574 +msgid "Export" msgstr "" -#: js/timbre.js:1273 -msgid "harmonicity" +#: js/widgets/phrasemaker.js:581 +msgid "Sort" msgstr "" -#: js/timbre.js:1340 -#: js/timbre.js:1406 -msgid "modulation index" +#: js/widgets/phrasemaker.js:975 +msgid "Click on the table to add notes." msgstr "" -#: js/timbre.js:1484 -msgid "vibrato amount" +#: js/widgets/phrasemaker.js:2677 +#: js/widgets/phrasemaker.js:2819 +msgid "tuplet value" msgstr "" -#: js/timbre.js:1919 -msgid "Filter already present." +#: js/widgets/rhythmruler.js:486 +msgid "Save rhythms" msgstr "" -#: js/timbre.js:2322 -msgid "delay (MS)" +#: js/widgets/rhythmruler.js:512 +msgid "Save drum machine" msgstr "" -#: js/timbre.js:2507 -msgid "distortion amount" +#: js/widgets/rhythmruler.js:589 +#.TRANS: user can tap out a rhythm by clicking on a ruler. +msgid "Tap a rhythm" msgstr "" -#: js/meterwidget.js:170 -msgid "Reset" +#: js/widgets/rhythmruler.js:817 +msgid "Click on the ruler to divide it." msgstr "" -#: js/meterwidget.js:196 -msgid "Click in the circle to select strong beats for the meter." +#: js/widgets/rhythmruler.js:950 +#: js/widgets/rhythmruler.js:952 +#: js/widgets/rhythmruler.js:1152 +#: js/widgets/rhythmruler.js:1154 +#: js/widgets/rhythmruler.js:1765 +#: js/widgets/rhythmruler.js:1767 +msgid "tap a rhythm" msgstr "" -#: js/arpeggio.js:239 -msgid "Click in the grid to add steps to the arpeggio." +#: js/widgets/rhythmruler.js:1459 +msgid "Maximum value of 256 has been exceeded." msgstr "" -#: js/ProjectStorage.js:243 -msgid "anonymous" +#: js/widgets/sampler.js:237 +msgid "Recording started..." msgstr "" -#: js/GlobalCard.js:68 -msgid "Share" -msgstr "बाड्नुहोस" - -#: js/GlobalCard.js:74 -msgid "Flags" +#: js/widgets/sampler.js:245 +msgid "Recording complete..." msgstr "" -#: js/LocalCard.js:36 -msgid "View published project" +#: js/widgets/sampler.js:283 +msgid "A new sample block was generated." msgstr "" -#: js/LocalCard.js:42 -msgid "Publish project" +#: js/widgets/sampler.js:378 +msgid "Upload sample" msgstr "" -#: js/LocalCard.js:51 -msgid "Edit project" +#: js/widgets/sampler.js:399 +msgid "Warning: Your sample cannot be loaded because it is >1MB." msgstr "" -#: js/LocalCard.js:52 -msgid "Delete project" +#: js/widgets/sampler.js:448 +msgid "Toggle Mic" msgstr "" -#: js/LocalCard.js:53 -msgid "Download project" +#: js/widgets/sampler.js:458 +msgid "Playback" msgstr "" -#: js/LocalCard.js:55 -msgid "Duplicate project" +#: js/widgets/sampler.js:979 +#.TRANS: The reference tone is a sound used for comparison. +msgid "reference tone" msgstr "" -#: js/GlobalTag.js:28 +#: planet/js/GlobalTag.js:28 #.TRANS: On the Planet, we use labels to tag projects. msgid "All Projects" msgstr "" -#: js/GlobalTag.js:30 -#: js/StringHelper.js:37 +#: planet/js/GlobalTag.js:30 +#: planet/js/StringHelper.js:37 #.TRANS: On the Planet, we use labels to tag projects. msgid "My Projects" msgstr "" -#: js/GlobalTag.js:32 +#: planet/js/GlobalTag.js:32 #.TRANS: On the Planet, we use labels to tag projects. msgid "Examples" msgstr "" -#: js/GlobalTag.js:34 +#: planet/js/GlobalTag.js:34 #.TRANS: On the Planet, we use labels to tag projects. msgid "Music" msgstr "" -#: js/GlobalTag.js:36 +#: planet/js/GlobalTag.js:36 #.TRANS: On the Planet, we use labels to tag projects. msgid "Art" msgstr "" -#: js/GlobalTag.js:38 +#: planet/js/GlobalTag.js:38 #.TRANS: On the Planet, we use labels to tag projects. msgid "Math" msgstr "" -#: js/GlobalTag.js:40 +#: planet/js/GlobalTag.js:40 #.TRANS: On the Planet, we use labels to tag projects. msgid "Interactive" msgstr "" -#: js/GlobalTag.js:42 +#: planet/js/GlobalTag.js:42 #.TRANS: On the Planet, we use labels to tag projects. msgid "Design" msgstr "" -#: js/GlobalTag.js:44 +#: planet/js/GlobalTag.js:44 #.TRANS: On the Planet, we use labels to tag projects. msgid "Game" msgstr "" -#: js/GlobalTag.js:46 +#: planet/js/GlobalTag.js:46 #.TRANS: On the Planet, we use labels to tag projects. msgid "Media" msgstr "" -#: js/GlobalTag.js:48 +#: planet/js/GlobalTag.js:48 #.TRANS: On the Planet, we use labels to tag projects. msgid "Sensors" msgstr "" -#: js/GlobalTag.js:52 +#: planet/js/GlobalTag.js:52 #.TRANS: On the Planet, we use labels to tag projects. msgid "Code Snippet" msgstr "" -#: js/helper.js:149 -#: js/StringHelper.js:49 -msgid "Show more tags" +#: planet/js/LocalCard.js:36 +msgid "View published project" msgstr "" -#: js/helper.js:150 -msgid "Show fewer tags" +#: planet/js/LocalCard.js:42 +msgid "Publish project" +msgstr "" + +#: planet/js/LocalCard.js:51 +msgid "Edit project" +msgstr "" + +#: planet/js/LocalCard.js:52 +msgid "Delete project" +msgstr "" + +#: planet/js/LocalCard.js:53 +msgid "Download project" +msgstr "" + +#: planet/js/LocalCard.js:55 +msgid "Duplicate project" +msgstr "" + +#: planet/js/ProjectStorage.js:243 +msgid "anonymous" +msgstr "" + +#: planet/js/SaveInterface.js:34 +msgid "Open in Music Blocks" +msgstr "" + +#: planet/js/SaveInterface.js:35 +msgid "Open in Turtle Blocks" +msgstr "" + +#: planet/js/GlobalCard.js:68 +msgid "Share" +msgstr "बाड्नुहोस" + +#: planet/js/GlobalCard.js:74 +msgid "Flags" +msgstr "" + +#: planet/js/GlobalPlanet.js:35 +msgid "No results found." +msgstr "" + +#: planet/js/GlobalPlanet.js:51 +msgid "Remix of" +msgstr "" + +#: planet/js/GlobalPlanet.js:509 +msgid "Cannot connect to server" msgstr "" -#: js/ProjectViewer.js:30 +#: planet/js/ProjectViewer.js:30 msgid "Error: Report could not be submitted. Try again later." msgstr "" -#: js/ProjectViewer.js:31 +#: planet/js/ProjectViewer.js:31 msgid "Thank you for reporting this project. A moderator will review the project shortly, to verify violation of the Sugar Labs Code of Conduct." msgstr "" -#: js/ProjectViewer.js:32 -#: js/StringHelper.js:62 -#: js/StringHelper.js:64 -#: js/StringHelper.js:68 +#: planet/js/ProjectViewer.js:32 +#: planet/js/StringHelper.js:62 +#: planet/js/StringHelper.js:64 +#: planet/js/StringHelper.js:68 msgid "Report Project" msgstr "" -#: js/ProjectViewer.js:33 -#: js/StringHelper.js:63 +#: planet/js/ProjectViewer.js:33 +#: planet/js/StringHelper.js:63 msgid "Project Reported" msgstr "" -#: js/ProjectViewer.js:34 +#: planet/js/ProjectViewer.js:34 msgid "Report description required" msgstr "" -#: js/ProjectViewer.js:35 +#: planet/js/ProjectViewer.js:35 msgid "Report description too long" msgstr "" -#: js/StringHelper.js:30 +#: planet/js/Publisher.js:30 +msgid "Feature unavailable - cannot connect to server. Reload Music Blocks to try again." +msgstr "" + +#: planet/js/Publisher.js:220 +#: planet/js/Publisher.js:237 +msgid "This field is required" +msgstr "" + +#: planet/js/Publisher.js:227 +msgid "Title too long" +msgstr "" + +#: planet/js/Publisher.js:244 +msgid "Description too long" +msgstr "" + +#: planet/js/Publisher.js:341 +msgid "Server Error" +msgstr "" + +#: planet/js/Publisher.js:341 +msgid "Try Again" +msgstr "" + +#: planet/js/StringHelper.js:30 msgid "Planet" msgstr "प्लानेट" -#: js/StringHelper.js:31 +#: planet/js/StringHelper.js:31 msgid "Close Planet" msgstr "" -#: js/StringHelper.js:32 +#: planet/js/StringHelper.js:32 msgid "Open project from file" msgstr "" -#: js/StringHelper.js:34 +#: planet/js/StringHelper.js:34 msgid "Local" msgstr "" -#: js/StringHelper.js:35 +#: planet/js/StringHelper.js:35 msgid "Global" msgstr "" -#: js/StringHelper.js:36 +#: planet/js/StringHelper.js:36 msgid "Search for a project" msgstr "" -#: js/StringHelper.js:38 +#: planet/js/StringHelper.js:38 msgid "Publish Project" msgstr "" -#: js/StringHelper.js:40 +#: planet/js/StringHelper.js:40 msgid "Tags (max 5)" msgstr "" -#: js/StringHelper.js:41 -#: js/StringHelper.js:61 +#: planet/js/StringHelper.js:41 +#: planet/js/StringHelper.js:61 msgid "Description" msgstr "" -#: js/StringHelper.js:42 -#: js/StringHelper.js:67 +#: planet/js/StringHelper.js:42 +#: planet/js/StringHelper.js:67 msgid "Submit" msgstr "" -#: js/StringHelper.js:43 -#: js/StringHelper.js:47 +#: planet/js/StringHelper.js:43 +#: planet/js/StringHelper.js:47 msgid "Cancel" msgstr "" -#: js/StringHelper.js:44 +#: planet/js/StringHelper.js:44 msgid "Delete \\"\\"?" msgstr "" -#: js/StringHelper.js:45 +#: planet/js/StringHelper.js:45 msgid "Permanently delete project \\"\\"?" msgstr "" -#: js/StringHelper.js:48 +#: planet/js/StringHelper.js:48 msgid "Explore Projects" msgstr "" -#: js/StringHelper.js:50 +#: planet/js/StringHelper.js:49 +#: planet/js/helper.js:149 +msgid "Show more tags" +msgstr "" + +#: planet/js/StringHelper.js:50 msgid "Most recent" msgstr "" -#: js/StringHelper.js:51 +#: planet/js/StringHelper.js:51 msgid "Most liked" msgstr "" -#: js/StringHelper.js:52 +#: planet/js/StringHelper.js:52 msgid "Most downloaded" msgstr "" -#: js/StringHelper.js:53 +#: planet/js/StringHelper.js:53 msgid "A-Z" msgstr "" -#: js/StringHelper.js:54 +#: planet/js/StringHelper.js:54 msgid "Sort by" msgstr "" -#: js/StringHelper.js:55 +#: planet/js/StringHelper.js:55 msgid "Load More Projects" msgstr "" -#: js/StringHelper.js:56 +#: planet/js/StringHelper.js:56 msgid "Last Updated" msgstr "" -#: js/StringHelper.js:57 +#: planet/js/StringHelper.js:57 msgid "Creation Date" msgstr "" -#: js/StringHelper.js:58 +#: planet/js/StringHelper.js:58 msgid "Number of Downloads:" msgstr "" -#: js/StringHelper.js:59 +#: planet/js/StringHelper.js:59 msgid "Number of Likes:" msgstr "" -#: js/StringHelper.js:60 +#: planet/js/StringHelper.js:60 msgid "Tags:" msgstr "" -#: js/StringHelper.js:65 +#: planet/js/StringHelper.js:65 msgid "Report projects which violate the Sugar Labs Code of Conduct." msgstr "" -#: js/StringHelper.js:66 +#: planet/js/StringHelper.js:66 msgid "Reason for reporting project" msgstr "" -#: js/StringHelper.js:70 +#: planet/js/StringHelper.js:70 msgid "Download as File" msgstr "" -#: js/GlobalPlanet.js:35 -msgid "No results found." -msgstr "" - -#: js/GlobalPlanet.js:51 -msgid "Remix of" -msgstr "" - -#: js/GlobalPlanet.js:509 -msgid "Cannot connect to server" -msgstr "" - -#: js/Publisher.js:30 -msgid "Feature unavailable - cannot connect to server. Reload Music Blocks to try again." -msgstr "" - -#: js/Publisher.js:218 -#: js/Publisher.js:235 -msgid "This field is required" -msgstr "" - -#: js/Publisher.js:225 -msgid "Title too long" +#: planet/js/helper.js:150 +msgid "Show fewer tags" msgstr "" -#: js/Publisher.js:242 -msgid "Description too long" +#: plugins/accelerometer.rtp:48 +msgid "motion x" msgstr "" -#: js/Publisher.js:339 -msgid "Server Error" +#: plugins/accelerometer.rtp:56 +msgid "motion y" msgstr "" -#: js/Publisher.js:339 -msgid "Try Again" +#: plugins/accelerometer.rtp:64 +msgid "motion z" msgstr "" -#: js/SaveInterface.js:34 -msgid "Open in Music Blocks" +#: plugins/facebook.rtp:27 +msgid "publish" msgstr "" -#: js/SaveInterface.js:35 -msgid "Open in Turtle Blocks" +#: plugins/maths.rtp:62 +msgid "power" msgstr "" -#: plugins/weather.rtp:68 -#: plugins/weather.rtp:97 -msgid "Days ahead must be in the range of -1 to 5." +#: plugins/maths.rtp:62 +msgid "base" msgstr "" -#: plugins/weather.rtp:122 -msgid "forecast" +#: plugins/maths.rtp:62 +msgid "exp" msgstr "" -#: plugins/weather.rtp:123 -#: plugins/weather.rtp:137 -#: plugins/weather.rtp:150 -msgid "city" +#: plugins/maths.rtp:99 +msgid "floor" msgstr "" -#: plugins/weather.rtp:124 -#: plugins/weather.rtp:138 -#: plugins/weather.rtp:151 -msgid "day" +#: plugins/maths.rtp:104 +msgid "ceiling" msgstr "" -#: plugins/weather.rtp:136 -msgid "high" +#: plugins/maths.rtp:109 +msgid "to degrees" msgstr "" -#: plugins/weather.rtp:149 -msgid "low" +#: plugins/maths.rtp:114 +msgid "to radians" msgstr "" #: plugins/nutrition.rtp:104 @@ -9458,45 +9867,6 @@ msgstr "" msgid "water" msgstr "" -#: plugins/maths.rtp:62 -#: plugins/examples.rtp:93 -msgid "power" -msgstr "" - -#: plugins/maths.rtp:62 -#: plugins/examples.rtp:93 -msgid "base" -msgstr "" - -#: plugins/maths.rtp:62 -#: plugins/examples.rtp:93 -msgid "exp" -msgstr "" - -#: plugins/maths.rtp:99 -#: plugins/examples.rtp:130 -msgid "floor" -msgstr "" - -#: plugins/maths.rtp:104 -#: plugins/examples.rtp:135 -msgid "ceiling" -msgstr "" - -#: plugins/maths.rtp:109 -#: plugins/examples.rtp:140 -msgid "to degrees" -msgstr "" - -#: plugins/maths.rtp:114 -#: plugins/examples.rtp:145 -msgid "to radians" -msgstr "" - -#: plugins/facebook.rtp:27 -msgid "publish" -msgstr "" - #: plugins/rodi.rtp:172 msgid "blink" msgstr "" @@ -9525,18 +9895,66 @@ msgstr "" msgid "move" msgstr "" -#: plugins/accelerometer.rtp:48 -msgid "motion x" +#: plugins/weather.rtp:68 +#: plugins/weather.rtp:97 +msgid "Days ahead must be in the range of -1 to 5." msgstr "" -#: plugins/accelerometer.rtp:56 -msgid "motion y" +#: plugins/weather.rtp:122 +msgid "forecast" msgstr "" -#: plugins/accelerometer.rtp:64 -msgid "motion z" +#: plugins/weather.rtp:123 +#: plugins/weather.rtp:137 +#: plugins/weather.rtp:150 +msgid "city" +msgstr "" + +#: plugins/weather.rtp:124 +#: plugins/weather.rtp:138 +#: plugins/weather.rtp:151 +msgid "day" +msgstr "" + +#: plugins/weather.rtp:136 +msgid "high" +msgstr "" + +#: plugins/weather.rtp:149 +msgid "low" msgstr "" +#: js/toolbar.js:70 + +#: js/toolbar.js:130 + +#: js/toolbar.js:194 + +#: js/toolbar.js:249 + +#~msgid "Toggle JavaScript Editor" +#~msgstr "" + +#: js/EnsembleBlocks.js:643 + +#~msgid "The Turrle pitch block returns the current pitch number being played by the specified turtle." +#~msgstr "" + +#: js/PitchActions.js:88 + +#~msgid "The Scalar Step Block must be used inside of a Note Block." +#~msgstr "" + +#: js/PitchActions.js:107 + +#~msgid "The Scalar Step Block must be preceded by a Pitch Block." +#~msgstr "" + +#: js/musickeyboard.js:2840 + +#~msgid "New action blocks generated!" +#~msgstr "" + #: js/toolbar.js:110 #: js/toolbar.js:204 @@ -9877,11 +10295,6 @@ msgstr "" #~msgid "The Time block returns the number of seconds that the program has been running." #~msgstr "" -#: js/help.js:95 - -#~msgid "Take a tour" -#~msgstr "" - #: js/GlobalCard.js:48 #~msgid "More Details" @@ -12780,11 +13193,6 @@ msgstr "" #~msgid "The save-stack button saves a stack onto a custom palette. It appears after a \"long press\" on a stack." #~msgstr "" -#: js/musicutils.js:254 - -#~msgid "Custom" -#~msgstr "" - #: js/basicblocks.js:4785 #~msgid "Rhythm" diff --git a/po/nl.po b/po/nl.po index 37a24e87a9..ee49bc0273 100644 --- a/po/nl.po +++ b/po/nl.po @@ -2127,276 +2127,131 @@ #: js/planetInterface.js:104 #: js/planetInterface.js:104 #: js/planetInterface.js:104 -msgid "project undefined" +#: js/SaveInterface.js:59 +#: js/SaveInterface.js:61 +#: js/SaveInterface.js:93 +msgid "Music Blocks Project" msgstr "" -#: js/logo.js:61 -msgid "Not a valid pitch name" +#: js/SaveInterface.js:63 +msgid "This project was created in Music Blocks" msgstr "" -#: js/logo.js:507 -#: js/ProgramBlocks.js:258 -#: js/ProgramBlocks.js:427 -msgid "You must select a file." +#: js/SaveInterface.js:67 +msgid "Music Blocks is a Free/Libre Software application." msgstr "" -#: js/logo.js:1184 -#: js/turtles.js:118 -#: js/turtle-painter.js:1192 -#: js/turtle-painter.js:1193 -#: js/block.js:1463 -#: js/lilypond.js:757 -#: js/lilypond.js:921 -#: js/lilypond.js:959 -#: js/ActionBlocks.js:1223 -#: js/ProgramBlocks.js:1267 -msgid "start" -msgstr "begin" - -#: js/logo.js:1696 -msgid "Playback is ready." +#: js/SaveInterface.js:69 +msgid "The source code can be accessed at" msgstr "" -#: js/blocks.js:1011 -#: js/blocks.js:3427 -#: js/blocks.js:3428 -#: js/blocks.js:3653 -#: js/blocks.js:4012 -#: js/blocks.js:4205 -#: js/blocks.js:5343 -#: js/blocks.js:6474 -#: js/palette.js:527 -#: js/palette.js:536 -#: js/palette.js:545 -#: js/palette.js:554 -#: js/palette.js:1131 -#: js/palette.js:1142 -#: js/palette.js:1153 -#: js/palette.js:1164 -#: js/palette.js:1183 -#: js/rubrics.js:529 -#: js/macros.js:170 -#: js/macros.js:266 -#: js/macros.js:267 -#: js/macros.js:276 -#: js/macros.js:828 -#: js/block.js:1449 -#: js/block.js:4164 -#: js/block.js:4182 -#: js/block.js:4193 -#: js/turtledefs.js:128 -#: js/turtledefs.js:230 -#: js/ActionBlocks.js:254 -#: js/ActionBlocks.js:307 -#: js/ActionBlocks.js:617 -#: js/ActionBlocks.js:716 -#: js/ActionBlocks.js:961 -#: js/ActionBlocks.js:1049 -#: js/ActionBlocks.js:1322 -#: js/ActionBlocks.js:1325 -#: js/ActionBlocks.js:1337 -#: js/ActionBlocks.js:1404 -#: js/MeterBlocks.js:715 -#: js/MeterBlocks.js:768 -#: js/MeterBlocks.js:831 -#: js/MeterBlocks.js:892 -#: js/phrasemaker.js:4412 -#: js/musickeyboard.js:2647 -#: js/rhythmruler.js:1928 -#: js/rhythmruler.js:1935 -#: js/rhythmruler.js:2119 -#: js/rhythmruler.js:2126 -msgid "action" -msgstr "actie" - -#: js/blocks.js:1205 -#: js/blocks.js:3380 -#: js/blocks.js:3770 -#: js/blocks.js:3801 -#: js/blocks.js:3850 -#: js/blocks.js:3885 -#: js/blocks.js:6497 -#: js/palette.js:509 -#: js/palette.js:638 -#: js/palette.js:1107 -#: js/BoxesBlocks.js:282 -#: js/BoxesBlocks.js:285 -#: js/BoxesBlocks.js:405 -#: js/BoxesBlocks.js:594 -msgid "box" -msgstr "doos" - -#: js/blocks.js:1680 -msgid "Consider breaking this stack into parts." +#: js/SaveInterface.js:72 +msgid "For more information, please consult the" msgstr "" -#: js/blocks.js:2408 -#: js/palette.js:653 -#: js/MediaBlocks.js:602 -msgid "open file" +#: js/SaveInterface.js:76 +#: js/turtledefs.js:795 +msgid "Music Blocks Guide" msgstr "" -#: js/blocks.js:2415 -#: js/blocks.js:2423 -#: js/activity.js:1875 -msgid "audio file" +#: js/SaveInterface.js:83 +msgid "Alternatively, open the file in Music Blocks using the Load project button." msgstr "" -#: js/blocks.js:2536 -#: js/blocks.js:3147 -#: js/block.js:3543 -msgid "on2" +#: js/SaveInterface.js:85 +msgid "Project Code" msgstr "" -#: js/blocks.js:2538 -#: js/blocks.js:3149 -#: js/block.js:3545 -msgid "off" +#: js/SaveInterface.js:87 +msgid "This code stores data about the blocks in a project." msgstr "" -#: js/blocks.js:2543 -#: js/blocks.js:3154 -#: js/palette.js:618 -#: js/block.js:3466 -#: js/BooleanBlocks.js:77 -#: js/BooleanBlocks.js:167 -#: js/BooleanBlocks.js:251 -#: js/BooleanBlocks.js:335 -#: js/BooleanBlocks.js:433 -#: js/BooleanBlocks.js:539 -#: js/BooleanBlocks.js:640 -#: js/BooleanBlocks.js:741 -#: js/BooleanBlocks.js:847 -#: js/BooleanBlocks.js:948 -#: js/BooleanBlocks.js:1033 -#: js/SensorsBlocks.js:910 -msgid "true" +#: js/SaveInterface.js:89 +msgid "Show" msgstr "" -#: js/blocks.js:2545 -#: js/blocks.js:3156 -#: js/block.js:3466 -#: js/BooleanBlocks.js:79 -#: js/BooleanBlocks.js:169 -#: js/BooleanBlocks.js:253 -#: js/BooleanBlocks.js:337 -#: js/BooleanBlocks.js:435 -#: js/BooleanBlocks.js:541 -#: js/BooleanBlocks.js:642 -#: js/BooleanBlocks.js:743 -#: js/BooleanBlocks.js:849 -#: js/BooleanBlocks.js:950 -#: js/SensorsBlocks.js:912 -msgid "false" +#: js/SaveInterface.js:91 +msgid "Hide" msgstr "" -#: js/blocks.js:3183 -#: js/palette.js:574 -#: js/MediaBlocks.js:892 -#: js/MediaBlocks.js:963 -msgid "text" -msgstr "tekst" - -#: js/blocks.js:3379 -#: js/palette.js:641 -#: js/palette.js:642 -#: js/BoxesBlocks.js:514 -msgid "store in box" +#: js/SaveInterface.js:131 +#: js/SaveInterface.js:204 +#: js/SaveInterface.js:262 +#: js/SaveInterface.js:389 +#: js/SaveInterface.js:417 +#: js/activity.js:4884 +#: planet/js/ProjectStorage.js:27 +#: planet/js/GlobalPlanet.js:467 +#: planet/js/GlobalPlanet.js:469 +#: planet/js/GlobalPlanet.js:495 +#.TRANS: default project title when saving as Lilypond +msgid "My Project" msgstr "" -#: js/blocks.js:3384 -#: js/blocks.js:3824 -#: js/blocks.js:3859 -#: js/blocks.js:3894 -#: js/blocks.js:5773 -#: js/blocks.js:5794 -#: js/BoxesBlocks.js:772 -msgid "box1" +#: js/SaveInterface.js:197 +#: planet/js/SaveInterface.js:58 +msgid "No description provided" msgstr "" -#: js/blocks.js:3386 -#: js/blocks.js:3826 -#: js/blocks.js:3861 -#: js/blocks.js:3896 -#: js/blocks.js:5775 -#: js/blocks.js:5796 -#: js/BoxesBlocks.js:663 -msgid "box2" +#: js/SaveInterface.js:332 +msgid "Your recording is in progress." msgstr "" -#: js/blocks.js:4058 -#: js/palette.js:639 -#: js/palette.js:644 -#: js/palette.js:1043 -#: js/BoxesBlocks.js:591 -msgid "store in" -msgstr "sla op in" - -#: js/blocks.js:4058 -#: js/EnsembleBlocks.js:391 -#: js/EnsembleBlocks.js:402 -#: js/MediaBlocks.js:746 -#: js/ProgramBlocks.js:390 -#: js/ProgramBlocks.js:495 -#: js/ProgramBlocks.js:658 -#: js/BoxesBlocks.js:595 -#: js/PitchBlocks.js:656 -#: js/PitchBlocks.js:932 -#: js/PitchBlocks.js:1827 -#: js/ToneBlocks.js:1025 -#: js/DictBlocks.js:215 -#: js/DictBlocks.js:289 -msgid "name" +#: js/SaveInterface.js:401 +#.TRANS: File name prompt for save as Lilypond +msgid "File name" msgstr "" -#: js/blocks.js:4058 -#: js/RhythmBlocks.js:1130 -#: js/BoxesBlocks.js:75 -#: js/BoxesBlocks.js:595 -#: js/HeapBlocks.js:544 -#: js/DictBlocks.js:289 -#: js/DictBlocks.js:430 -msgid "value" -msgstr "waarde" - -#: js/blocks.js:4907 -msgid "There is no block selected." +#: js/SaveInterface.js:403 +#: planet/js/StringHelper.js:39 +#.TRANS: Project title prompt for save as Lilypond +msgid "Project title" msgstr "" -#: js/blocks.js:5002 -#: js/MediaBlocks.js:888 -msgid "show" -msgstr "toon" - -#: js/blocks.js:5005 -#: js/MediaBlocks.js:803 -#.TRANS: Avatar is the image used to determine the appearance of the mouse. -msgid "avatar" +#: js/SaveInterface.js:405 +#.TRANS: Project title prompt for save as Lilypond +msgid "Project author" msgstr "" -#: js/blocks.js:5008 -#: js/ToneBlocks.js:1010 -#: js/sampler.js:693 -#.TRANS: The sound sample that the user uploads. -msgid "sample" +#: js/SaveInterface.js:407 +#.TRANS: MIDI prompt for save as Lilypond +msgid "Include MIDI output?" msgstr "" -#: js/turtles.js:874 -msgid "Grid" -msgstr "Rooster" +#: js/SaveInterface.js:409 +#.TRANS: Guitar prompt for save as Lilypond +msgid "Include guitar tablature output?" +msgstr "" -#: js/turtles.js:891 -#: js/turtledefs.js:626 -msgid "Clean" -msgstr "Wissen" +#: js/SaveInterface.js:411 +#.TRANS: Lilypond is a scripting language for generating sheet music +msgid "Save as Lilypond" +msgstr "" -#: js/turtles.js:912 -#: js/turtledefs.js:632 -msgid "Collapse" +#: js/SaveInterface.js:426 +#: js/blocks/EnsembleBlocks.js:75 +#: js/blocks/EnsembleBlocks.js:154 +#: js/blocks/EnsembleBlocks.js:216 +#: js/blocks/EnsembleBlocks.js:302 +#: js/blocks/EnsembleBlocks.js:348 +#: js/blocks/EnsembleBlocks.js:389 +#: js/blocks/EnsembleBlocks.js:441 +#: js/blocks/EnsembleBlocks.js:490 +#: js/blocks/EnsembleBlocks.js:536 +#: js/blocks/EnsembleBlocks.js:583 +#: js/blocks/EnsembleBlocks.js:637 +#: js/blocks/EnsembleBlocks.js:753 +#: js/blocks/EnsembleBlocks.js:840 +#: js/blocks/EnsembleBlocks.js:899 +#: js/blocks/EnsembleBlocks.js:942 +#: js/blocks/EnsembleBlocks.js:1212 +#: js/blocks/EnsembleBlocks.js:1280 +#.TRANS: default project author when saving as Lilypond +msgid "Mr. Mouse" msgstr "" -#: js/turtles.js:940 -msgid "Expand" +#: js/SaveInterface.js:573 +msgid "The Lilypond code is copied to clipboard. You can paste it here: " msgstr "" #: js/languagebox.js:198 @@ -2407,6933 +2262,7487 @@ msgstr "" msgid "Music Blocks is already set to this language." msgstr "" -#: js/piemenus.js:200 -#: js/musicutils.js:808 -#: js/musicutils.js:824 -#: js/phrasemaker.js:1672 -#: js/musickeyboard.js:2041 -#: js/sampler.js:544 -#.TRANS: double sharp is a music term related to pitch -msgid "double sharp" +#: js/planetInterface.js:131 +msgid "project undefined" msgstr "" -#: js/piemenus.js:201 -#: js/PitchBlocks.js:1510 -#: js/PitchActions.js:580 -#: js/musicutils.js:806 -#: js/musicutils.js:825 -#: js/phrasemaker.js:1673 -#: js/musickeyboard.js:2042 -#: js/sampler.js:545 -#.TRANS: sharp is a half-step up in pitch -#.TRANS: sharp is a music term related to pitch -msgid "sharp" +#: js/rubrics.js:523 +#: js/turtledefs.js:119 +#: js/turtledefs.js:221 +#: js/blocks/RhythmBlockPaletteBlocks.js:52 +#: js/blocks/RhythmBlockPaletteBlocks.js:234 +#: js/blocks/ProgramBlocks.js:745 +#: js/widgets/rhythmruler.js:2057 +#: js/widgets/rhythmruler.js:2064 +#: js/widgets/rhythmruler.js:2133 +#: js/widgets/rhythmruler.js:2140 +#: js/widgets/rhythmruler.js:2219 +#.TRANS: an arrangement of notes based on duration +msgid "rhythm" msgstr "" -#: js/piemenus.js:202 -#: js/musicutils.js:804 -#: js/musicutils.js:826 -#: js/phrasemaker.js:1674 -#: js/musickeyboard.js:2043 -#: js/sampler.js:546 -#.TRANS: natural is a music term related to pitch -msgid "natural" +#: js/rubrics.js:524 +#: js/turtledefs.js:121 +#: js/turtledefs.js:223 +#: js/block-verbose.js:2622 +#: js/block.js:2550 +#: js/blocks/IntervalsBlocks.js:63 +#: js/blocks/SensorsBlocks.js:178 +#: js/blocks/PitchBlocks.js:1839 +#: js/blocks/PitchBlocks.js:1853 +#: js/widgets/musickeyboard.js:1935 +#: js/widgets/phrasemaker.js:1036 +#.TRANS: pitch number +#.TRANS: pitch number +#.TRANS: we specify pitch in terms of a name and an octave. The name can be CDEFGAB or Do Re Mi Fa Sol La Ti. Octave is a number between 1 and 8. +msgid "pitch" msgstr "" -#: js/piemenus.js:203 -#: js/PitchBlocks.js:1469 -#: js/PitchActions.js:583 -#: js/musicutils.js:802 -#: js/musicutils.js:827 -#: js/phrasemaker.js:1675 -#: js/musickeyboard.js:2044 -#: js/sampler.js:547 -#.TRANS: flat is a half-step down in pitch -#.TRANS: flat is a music term related to pitch -msgid "flat" +#: js/rubrics.js:525 +#: js/turtledefs.js:123 +#: js/turtledefs.js:225 +msgid "tone" msgstr "" -#: js/piemenus.js:204 -#: js/musicutils.js:800 -#: js/musicutils.js:828 -#: js/phrasemaker.js:1676 -#: js/musickeyboard.js:2045 -#: js/sampler.js:548 -#.TRANS: double flat is a music term related to pitch -msgid "double flat" +#: js/rubrics.js:526 +#: js/lilypond.js:605 +#: js/lilypond.js:904 +#: js/lilypond.js:910 +#: js/lilypond.js:948 +msgid "mouse" msgstr "" -#: js/piemenus.js:2861 -#: js/PitchBlocks.js:1357 -#: js/musicutils.js:627 -#.TRANS: unison means the note is the same as the current note -#.TRANS: unison is a music term related to intervals -msgid "unison" -msgstr "" +#: js/rubrics.js:527 +#: js/turtledefs.js:132 +#: js/turtledefs.js:234 +#: js/widgets/phrasemaker.js:1040 +msgid "pen" +msgstr "pen" -#: js/piemenus.js:3015 -#: js/piemenus.js:3088 -#: js/musicutils.js:635 -#: js/musicutils.js:810 -#: js/musicutils.js:912 -#.TRANS: major is a music term related to intervals and mode -msgid "major" -msgstr "" +#: js/rubrics.js:528 +#: js/turtledefs.js:133 +#: js/turtledefs.js:235 +#: js/blocks/NumberBlocks.js:981 +#: js/blocks/PitchBlocks.js:1717 +#: js/blocks/PitchBlocks.js:1758 +msgid "number" +msgstr "nummer" -#: js/piemenus.js:3015 -#: js/piemenus.js:3088 -#: js/musicutils.js:653 -#.TRANS: modal scale for music -msgid "ionian" -msgstr "" +#: js/rubrics.js:529 +#: js/turtledefs.js:127 +#: js/turtledefs.js:229 +msgid "flow" +msgstr "vloeien" -#: js/piemenus.js:3017 -#: js/piemenus.js:3092 -#: js/musicutils.js:633 -#: js/musicutils.js:811 -#: js/musicutils.js:909 -#.TRANS: minor is a music term related to intervals and mode -msgid "minor" -msgstr "" +#: js/rubrics.js:530 +#: js/turtledefs.js:128 +#: js/turtledefs.js:230 +#: js/block-verbose.js:1609 +#: js/block-verbose.js:4559 +#: js/block-verbose.js:4577 +#: js/block-verbose.js:4588 +#: js/block.js:1573 +#: js/block.js:4483 +#: js/block.js:4501 +#: js/block.js:4512 +#: js/blocks.js:1018 +#: js/blocks.js:3491 +#: js/blocks.js:3492 +#: js/blocks.js:3717 +#: js/blocks.js:4076 +#: js/blocks.js:4269 +#: js/blocks.js:5432 +#: js/blocks.js:6563 +#: js/macros.js:170 +#: js/macros.js:266 +#: js/macros.js:267 +#: js/macros.js:276 +#: js/macros.js:828 +#: js/palette.js:527 +#: js/palette.js:536 +#: js/palette.js:545 +#: js/palette.js:554 +#: js/palette.js:1129 +#: js/palette.js:1140 +#: js/palette.js:1151 +#: js/palette.js:1162 +#: js/palette.js:1181 +#: js/blocks/ActionBlocks.js:254 +#: js/blocks/ActionBlocks.js:307 +#: js/blocks/ActionBlocks.js:617 +#: js/blocks/ActionBlocks.js:716 +#: js/blocks/ActionBlocks.js:961 +#: js/blocks/ActionBlocks.js:1049 +#: js/blocks/ActionBlocks.js:1322 +#: js/blocks/ActionBlocks.js:1325 +#: js/blocks/ActionBlocks.js:1337 +#: js/blocks/ActionBlocks.js:1404 +#: js/blocks/MeterBlocks.js:715 +#: js/blocks/MeterBlocks.js:768 +#: js/blocks/MeterBlocks.js:831 +#: js/blocks/MeterBlocks.js:892 +#: js/widgets/musickeyboard.js:2986 +#: js/widgets/phrasemaker.js:4913 +#: js/widgets/rhythmruler.js:2319 +#: js/widgets/rhythmruler.js:2326 +#: js/widgets/rhythmruler.js:2511 +#: js/widgets/rhythmruler.js:2518 +msgid "action" +msgstr "actie" -#: js/piemenus.js:3017 -#: js/piemenus.js:3092 -#: js/musicutils.js:663 -#.TRANS: modal scale for music -msgid "aeolian" +#: js/rubrics.js:531 +#: js/turtledefs.js:136 +#: js/turtledefs.js:238 +msgid "sensors" msgstr "" -#: js/piemenus.js:3407 -msgid "Duplicate" -msgstr "" +#: js/rubrics.js:532 +#: js/turtledefs.js:135 +#: js/turtledefs.js:237 +#: js/blocks/MediaBlocks.js:930 +msgid "media" +msgstr "media" -#: js/piemenus.js:3408 -#: js/turtledefs.js:534 -msgid "Extract" +#: js/rubrics.js:533 +msgid "mice" msgstr "" -#: js/piemenus.js:3409 -msgid "Move to trash" +#: js/toolbar.js:48 +#: js/toolbar.js:109 +msgid "About Music Blocks" msgstr "" -#: js/piemenus.js:3410 -#: js/timbre.js:968 -#: js/StringHelper.js:69 -msgid "Close" +#: js/toolbar.js:49 +#: js/toolbar.js:110 +#: js/toolbar.js:175 +#: js/toolbar.js:231 +#: js/turtledefs.js:445 +#: js/turtledefs.js:482 +#: js/activity.js:2660 +#: js/activity.js:2671 +#: js/activity.js:2902 +#: js/widgets/modewidget.js:77 +#: js/widgets/meterwidget.js:185 +#: js/widgets/pitchdrummatrix.js:147 +#: js/widgets/pitchdrummatrix.js:687 +#: js/widgets/pitchdrummatrix.js:689 +#: js/widgets/pitchdrummatrix.js:741 +#: js/widgets/pitchdrummatrix.js:743 +#: js/widgets/pitchdrummatrix.js:758 +#: js/widgets/pitchdrummatrix.js:760 +#: js/widgets/pitchdrummatrix.js:789 +#: js/widgets/pitchdrummatrix.js:791 +#: js/widgets/pitchstaircase.js:121 +#: js/widgets/temperament.js:610 +#: js/widgets/temperament.js:613 +#: js/widgets/temperament.js:673 +#: js/widgets/temperament.js:675 +#: js/widgets/temperament.js:2017 +#: js/widgets/temperament.js:2019 +#: js/widgets/tempo.js:84 +#: js/widgets/tempo.js:86 +#: js/widgets/timbre.js:432 +#: js/widgets/timbre.js:434 +#: js/widgets/timbre.js:465 +#: js/widgets/timbre.js:467 +#: js/widgets/timbre.js:746 +#: js/widgets/aiwidget.js:647 +#: js/widgets/aiwidget.js:654 +#: js/widgets/aiwidget.js:656 +#: js/widgets/arpeggio.js:90 +#: js/widgets/arpeggio.js:547 +#: js/widgets/arpeggio.js:549 +#: js/widgets/arpeggio.js:644 +#: js/widgets/arpeggio.js:646 +#: js/widgets/musickeyboard.js:676 +#: js/widgets/musickeyboard.js:872 +#: js/widgets/musickeyboard.js:874 +#: js/widgets/musickeyboard.js:953 +#: js/widgets/musickeyboard.js:955 +#: js/widgets/phrasemaker.js:513 +#: js/widgets/phrasemaker.js:523 +#: js/widgets/phrasemaker.js:525 +#: js/widgets/phrasemaker.js:4304 +#: js/widgets/phrasemaker.js:4528 +#: js/widgets/phrasemaker.js:4533 +#: js/widgets/phrasemaker.js:4535 +#: js/widgets/phrasemaker.js:4650 +#: js/widgets/rhythmruler.js:637 +#: js/widgets/rhythmruler.js:639 +#: js/widgets/rhythmruler.js:653 +#: js/widgets/rhythmruler.js:655 +#: js/widgets/sampler.js:162 +#: js/widgets/sampler.js:164 +#: js/widgets/sampler.js:363 +msgid "Play" msgstr "" -#: js/piemenus.js:3416 -msgid "Save stack" -msgstr "Opslaan stapel" +#: js/toolbar.js:50 +#: js/toolbar.js:111 +#: js/toolbar.js:176 +#: js/toolbar.js:232 +#: js/turtledefs.js:451 +#: js/turtledefs.js:488 +#: js/activity.js:2679 +#: js/widgets/modewidget.js:99 +#: js/widgets/modewidget.js:101 +#: js/widgets/meterwidget.js:206 +#: js/widgets/meterwidget.js:208 +#: js/widgets/pitchdrummatrix.js:674 +#: js/widgets/pitchdrummatrix.js:676 +#: js/widgets/temperament.js:2002 +#: js/widgets/temperament.js:2004 +#: js/widgets/arpeggio.js:534 +#: js/widgets/arpeggio.js:536 +#: js/widgets/phrasemaker.js:534 +#: js/widgets/phrasemaker.js:536 +msgid "Stop" +msgstr "Stop" -#: js/piemenus.js:3420 -#: js/toolbar.js:60 +#: js/toolbar.js:51 +#: js/toolbar.js:112 +#: js/toolbar.js:177 +#: js/toolbar.js:233 +#: js/turtledefs.js:498 +msgid "Record" +msgstr "" + +#: js/toolbar.js:52 +#: js/toolbar.js:53 +msgid "Full screen" +msgstr "" + +#: js/toolbar.js:54 +#: js/toolbar.js:115 +#: js/toolbar.js:180 +#: js/toolbar.js:236 +#: js/turtledefs.js:504 +msgid "Toggle Fullscreen" +msgstr "" + +#: js/toolbar.js:55 +#: js/toolbar.js:116 +#: js/toolbar.js:181 +#: js/toolbar.js:237 +#: js/turtledefs.js:510 +#: planet/js/StringHelper.js:33 +msgid "New project" +msgstr "" + +#: js/toolbar.js:56 +#: js/toolbar.js:117 +#: js/toolbar.js:182 +#: js/toolbar.js:238 +#: js/turtledefs.js:516 +msgid "Load project from file" +msgstr "" + +#: js/toolbar.js:57 +#: js/toolbar.js:118 +#: js/toolbar.js:119 +#: js/toolbar.js:183 +#: js/toolbar.js:239 +#: js/turtledefs.js:541 +#: js/turtledefs.js:550 +#: js/turtledefs.js:571 +msgid "Save project" +msgstr "" + +#: js/toolbar.js:58 +#: js/toolbar.js:77 +#: js/toolbar.js:79 +#: js/toolbar.js:138 +#: js/toolbar.js:147 +#: js/toolbar.js:149 +#: js/toolbar.js:184 +#: js/toolbar.js:202 +#: js/toolbar.js:204 +#: js/toolbar.js:240 +#: js/toolbar.js:258 +#: js/toolbar.js:260 +msgid "Save project as HTML" +msgstr "" + +#: js/toolbar.js:59 #: js/toolbar.js:120 #: js/toolbar.js:185 -#: js/toolbar.js:240 +#: js/toolbar.js:241 +msgid "Find and share projects" +msgstr "" + +#: js/toolbar.js:60 +#: js/toolbar.js:121 +#: js/toolbar.js:186 +#: js/toolbar.js:242 +msgid "Offline. Sharing is unavailable" +msgstr "" + +#: js/toolbar.js:61 +#: js/toolbar.js:122 +#: js/toolbar.js:187 +#: js/toolbar.js:243 +msgid "Auxiliary menu" +msgstr "" + +#: js/toolbar.js:62 +#: js/toolbar.js:123 +#: js/toolbar.js:188 +#: js/toolbar.js:244 #: js/turtledefs.js:752 +#: js/piemenus.js:3423 msgid "Help" msgstr "Help" -#: js/piemenus.js:3762 -msgid "You have chosen key " +#: js/toolbar.js:63 +#: js/toolbar.js:124 +#: js/toolbar.js:189 +#: js/toolbar.js:245 +msgid "Run slowly" +msgstr "" + +#: js/toolbar.js:64 +#: js/toolbar.js:125 +#: js/toolbar.js:190 +#: js/toolbar.js:246 +#: js/turtledefs.js:682 +msgid "Run step by step" +msgstr "" + +#: js/toolbar.js:65 +#: js/toolbar.js:126 +#: js/toolbar.js:191 +#: js/toolbar.js:247 +#: js/turtledefs.js:689 +msgid "Display statistics" +msgstr "" + +#: js/toolbar.js:66 +#: js/toolbar.js:127 +#: js/toolbar.js:192 +#: js/toolbar.js:248 +msgid "Load plugin" +msgstr "" + +#: js/toolbar.js:67 +#: js/toolbar.js:128 +#: js/toolbar.js:193 +#: js/toolbar.js:249 +#: js/turtledefs.js:696 +msgid "Delete plugin" +msgstr "" + +#: js/toolbar.js:68 +#: js/toolbar.js:129 +#: js/toolbar.js:194 +#: js/toolbar.js:250 +msgid "Enable horizontal scrolling" +msgstr "" + +#: js/toolbar.js:69 +#: js/toolbar.js:130 +#: js/toolbar.js:195 +#: js/toolbar.js:251 +msgid "Disable horizontal scrolling" +msgstr "" + +#: js/toolbar.js:70 +#: js/toolbar.js:131 +#: js/toolbar.js:196 +#: js/toolbar.js:252 +#: planet/js/LocalCard.js:54 +#: planet/js/StringHelper.js:71 +msgid "Merge with current project" +msgstr "" + +#: js/toolbar.js:71 +#: js/toolbar.js:132 +msgid "Set Pitch Preview" +msgstr "" + +#: js/toolbar.js:72 +#: js/toolbar.js:133 +#: js/toolbar.js:197 +#: js/toolbar.js:253 +msgid "JavaScript Editor" +msgstr "" + +#: js/toolbar.js:73 +#: js/toolbar.js:134 +#: js/toolbar.js:198 +#: js/toolbar.js:254 +#: js/turtledefs.js:724 +msgid "Restore" +msgstr "" + +#: js/toolbar.js:74 +#: js/toolbar.js:135 +#: js/toolbar.js:199 +#: js/toolbar.js:255 +msgid "Switch to beginner mode" +msgstr "" + +#: js/toolbar.js:75 +#: js/toolbar.js:136 +#: js/toolbar.js:200 +#: js/toolbar.js:256 +msgid "Switch to advanced mode" +msgstr "" + +#: js/toolbar.js:76 +#: js/toolbar.js:137 +#: js/toolbar.js:146 +#: js/toolbar.js:201 +#: js/toolbar.js:257 +#: js/turtledefs.js:738 +msgid "Select language" +msgstr "" + +#: js/toolbar.js:78 +#: js/toolbar.js:81 +#: js/toolbar.js:140 +#: js/turtledefs.js:579 +msgid "Save mouse artwork as PNG" +msgstr "" + +#: js/toolbar.js:80 +#: js/toolbar.js:139 +#: js/turtledefs.js:575 +msgid "Save mouse artwork as SVG" +msgstr "" + +#: js/toolbar.js:82 +#: js/toolbar.js:141 +#: js/turtledefs.js:583 +msgid "Save music as WAV" +msgstr "" + +#: js/toolbar.js:83 +#: js/toolbar.js:142 +#: js/turtledefs.js:587 +msgid "Save sheet music as ABC" +msgstr "" + +#: js/toolbar.js:84 +#: js/toolbar.js:143 +#: js/turtledefs.js:591 +msgid "Save sheet music as Lilypond" +msgstr "" + +#: js/toolbar.js:85 +msgid "Save sheet music as MusicXML" +msgstr "" + +#: js/toolbar.js:86 +#: js/toolbar.js:144 +#: js/toolbar.js:152 +#: js/toolbar.js:207 +#: js/toolbar.js:263 +#: js/turtledefs.js:562 +#: js/turtledefs.js:595 +msgid "Save block artwork as SVG" +msgstr "" + +#: js/toolbar.js:87 +#: js/toolbar.js:145 +#: js/toolbar.js:153 +#: js/toolbar.js:208 +#: js/toolbar.js:264 +#: js/turtles.js:911 +msgid "Confirm" +msgstr "" + +#: js/toolbar.js:88 +#: js/toolbar.js:154 +#: js/toolbar.js:209 +#: js/toolbar.js:265 +msgid "English (United States)" +msgstr "" + +#: js/toolbar.js:89 +#: js/toolbar.js:155 +#: js/toolbar.js:210 +#: js/toolbar.js:266 +msgid "English (United Kingdom)" +msgstr "" + +#: js/toolbar.js:90 +#: js/toolbar.js:156 +#: js/toolbar.js:211 +#: js/toolbar.js:267 +msgid "日本語" +msgstr "" + +#: js/toolbar.js:91 +msgid "한국어" +msgstr "" + +#: js/toolbar.js:92 +#: js/toolbar.js:158 +#: js/toolbar.js:213 +#: js/toolbar.js:269 +msgid "español" +msgstr "" + +#: js/toolbar.js:93 +#: js/toolbar.js:159 +#: js/toolbar.js:214 +#: js/toolbar.js:270 +msgid "português" +msgstr "" + +#: js/toolbar.js:94 +#: js/toolbar.js:160 +#: js/toolbar.js:215 +#: js/toolbar.js:271 +msgid "にほんご" +msgstr "" + +#: js/toolbar.js:95 +#: js/toolbar.js:161 +#: js/toolbar.js:216 +#: js/toolbar.js:272 +msgid "中文" +msgstr "" + +#: js/toolbar.js:96 +#: js/toolbar.js:162 +#: js/toolbar.js:217 +#: js/toolbar.js:273 +msgid "ภาษาไทย" +msgstr "" + +#: js/toolbar.js:97 +#: js/toolbar.js:163 +#: js/toolbar.js:218 +#: js/toolbar.js:274 +msgid "aymara" +msgstr "" + +#: js/toolbar.js:98 +#: js/toolbar.js:164 +#: js/toolbar.js:219 +#: js/toolbar.js:275 +msgid "quechua" +msgstr "" + +#: js/toolbar.js:99 +#: js/toolbar.js:165 +#: js/toolbar.js:220 +#: js/toolbar.js:276 +msgid "guarani" +msgstr "" + +#: js/toolbar.js:100 +#: js/toolbar.js:166 +#: js/toolbar.js:221 +#: js/toolbar.js:277 +msgid "हिंदी" +msgstr "" + +#: js/toolbar.js:101 +#: js/toolbar.js:168 +#: js/toolbar.js:222 +#: js/toolbar.js:279 +msgid "igbo" +msgstr "" + +#: js/toolbar.js:102 +#: js/toolbar.js:169 +#: js/toolbar.js:223 +#: js/toolbar.js:280 +msgid "عربى" +msgstr "" + +#: js/toolbar.js:103 +#: js/toolbar.js:167 +#: js/toolbar.js:224 +#: js/toolbar.js:278 +msgid "తెలుగు" +msgstr "" + +#: js/toolbar.js:104 +#: js/toolbar.js:170 +#: js/toolbar.js:225 +#: js/toolbar.js:281 +msgid "עִברִית" +msgstr "" + +#: js/toolbar.js:113 +#: js/toolbar.js:114 +#: js/toolbar.js:178 +#: js/toolbar.js:179 +#: js/toolbar.js:234 +#: js/toolbar.js:235 +msgid "Full Screen" +msgstr "" + +#: js/toolbar.js:148 +#: js/toolbar.js:151 +#: js/toolbar.js:203 +#: js/toolbar.js:206 +#: js/toolbar.js:259 +#: js/toolbar.js:262 +#: js/turtledefs.js:558 +msgid "Save turtle artwork as PNG" +msgstr "" + +#: js/toolbar.js:150 +#: js/toolbar.js:205 +#: js/toolbar.js:261 +#: js/turtledefs.js:554 +msgid "Save turtle artwork as SVG" +msgstr "" + +#: js/toolbar.js:157 +#: js/toolbar.js:212 +#: js/toolbar.js:268 +msgid "한국인" +msgstr "" + +#: js/toolbar.js:174 +#: js/toolbar.js:230 +msgid "About Turtle Blocks" +msgstr "" + +#: js/toolbar.js:446 +#: js/toolbar.js:457 +#: js/toolbar.js:497 +msgid "Turtle Wrap Off" +msgstr "" + +#: js/toolbar.js:466 +#: js/toolbar.js:506 +msgid "Turtle Wrap On" +msgstr "" + +#: js/turtle-painter.js:1192 +#: js/turtle-painter.js:1193 +#: js/turtles.js:118 +#: js/block-verbose.js:1623 +#: js/block.js:1587 +#: js/lilypond.js:749 +#: js/lilypond.js:913 +#: js/lilypond.js:951 +#: js/logo.js:1184 +#: js/blocks/ActionBlocks.js:1223 +#: js/blocks/ProgramBlocks.js:1267 +msgid "start" +msgstr "begin" + +#: js/turtledefs.js:40 +#.TRANS: put the URL to the guide here, e.g., https://github.com/sugarlabs/turtleblocksjs/tree/master/guide/README.md +msgid "guide url" +msgstr "" + +#: js/turtledefs.js:85 +#: js/turtledefs.js:437 +msgid "Turtle Blocks is a Logo-inspired turtle that draws colorful pictures with snap-together visual-programming blocks." +msgstr "" + +#: js/turtledefs.js:118 +#: js/turtledefs.js:220 +msgid "search" +msgstr "" + +#: js/turtledefs.js:120 +#: js/turtledefs.js:222 +#: js/blocks/MeterBlocks.js:1343 +#: js/blocks/WidgetBlocks.js:522 +#.TRANS: musical meter (time signature), e.g., 4:4 +msgid "meter" +msgstr "" + +#: js/turtledefs.js:122 +#: js/turtledefs.js:224 +msgid "intervals" +msgstr "" + +#: js/turtledefs.js:124 +#: js/turtledefs.js:226 +msgid "ornament" +msgstr "" + +#: js/turtledefs.js:125 +#: js/turtledefs.js:227 +#: js/blocks/VolumeBlocks.js:362 +#: js/blocks/VolumeBlocks.js:502 +#: js/blocks/VolumeBlocks.js:545 +msgid "volume" +msgstr "" + +#: js/turtledefs.js:126 +#: js/turtledefs.js:228 +#: js/block-verbose.js:1700 +#: js/block-verbose.js:2626 +#: js/block.js:1664 +#: js/block.js:2554 +#: js/lilypond.js:732 +#: js/lilypond.js:897 +#: js/lilypond.js:941 +#: js/palette.js:577 +#: js/blocks/RhythmBlocks.js:766 +#: js/blocks/DrumBlocks.js:477 +#: js/blocks/VolumeBlocks.js:502 +#: js/widgets/phrasemaker.js:1038 +msgid "drum" +msgstr "" + +#: js/turtledefs.js:129 +#: js/turtledefs.js:231 +msgid "boxes" +msgstr "" + +#: js/turtledefs.js:130 +#: js/turtledefs.js:232 +msgid "widgets" +msgstr "" + +#: js/turtledefs.js:131 +#: js/turtledefs.js:233 +#: js/widgets/phrasemaker.js:1039 +msgid "graphics" +msgstr "" + +#: js/turtledefs.js:134 +#: js/turtledefs.js:236 +msgid "boolean" +msgstr "" + +#: js/turtledefs.js:137 +#: js/turtledefs.js:239 +#: js/blocks/HeapBlocks.js:59 +#: js/widgets/status.js:147 +msgid "heap" +msgstr "" + +#: js/turtledefs.js:138 +#: js/turtledefs.js:240 +#: js/blocks/DictBlocks.js:142 +#: js/blocks/ProgramBlocks.js:495 +msgid "dictionary" +msgstr "" + +#: js/turtledefs.js:139 +#: js/turtledefs.js:241 +msgid "ensemble" +msgstr "" + +#: js/turtledefs.js:140 +#: js/turtledefs.js:242 +msgid "extras" +msgstr "extra's" + +#: js/turtledefs.js:142 +#: js/turtledefs.js:244 +#.TRANS: program as in computer program +#.TRANS: program as in computer program +msgid "program" msgstr "" -#: js/piemenus.js:3766 -msgid " for your pitch preview." +#: js/turtledefs.js:143 +#: js/turtledefs.js:245 +msgid "my blocks" msgstr "" -#: js/palette.js:571 -msgid "grid" -msgstr "Rooster" +#: js/turtledefs.js:185 +#: js/turtledefs.js:281 +msgid "artwork" +msgstr "" -#: js/palette.js:577 -#: js/block.js:1540 -#: js/block.js:2343 -#: js/turtledefs.js:126 -#: js/turtledefs.js:228 -#: js/lilypond.js:740 -#: js/lilypond.js:905 -#: js/lilypond.js:949 -#: js/DrumBlocks.js:486 -#: js/RhythmBlocks.js:766 -#: js/VolumeBlocks.js:502 -#: js/phrasemaker.js:823 -msgid "drum" +#: js/turtledefs.js:185 +#: js/turtledefs.js:281 +msgid "logic" msgstr "" -#: js/palette.js:580 -msgid "effect" +#: js/turtledefs.js:185 +#: js/turtledefs.js:281 +msgid "music" msgstr "" -#: js/palette.js:586 -msgid "sargam" +#: js/turtledefs.js:187 +#: js/turtledefs.js:463 +msgid "Music Blocks is a collection of tools for exploring fundamental musical concepts in a fun way." msgstr "" -#: js/palette.js:589 -#: js/activity.js:1833 -#: js/RhythmBlocks.js:923 -#: js/PitchBlocks.js:442 -#: js/PitchBlocks.js:1748 -#.TRANS: a numeric mapping of the notes in an octave based on the musical mode -msgid "scale degree" +#: js/turtledefs.js:436 +msgid "Welcome to Turtle Blocks" msgstr "" -#: js/palette.js:592 -#: js/activity.js:1860 -msgid "mode name" +#: js/turtledefs.js:438 +#: js/turtledefs.js:465 +#: js/turtledefs.js:774 +#: js/turtledefs.js:805 +msgid "The current version is" msgstr "" -#: js/palette.js:595 -#: js/activity.js:1839 -msgid "invert mode" +#: js/turtledefs.js:446 +#: js/turtledefs.js:483 +msgid "Click the run button to run the project in fast mode." msgstr "" -#: js/palette.js:598 -#: js/activity.js:1836 -msgid "voice name" +#: js/turtledefs.js:452 +msgid "Stop the turtle." msgstr "" -#: js/palette.js:601 -#: js/PitchBlocks.js:1181 -msgid "custom pitch" +#: js/turtledefs.js:454 +#: js/turtledefs.js:491 +msgid "You can also type Alt-S to stop." msgstr "" -#: js/palette.js:605 -#: js/block.js:1456 -#: js/block.js:1575 -#: js/WidgetBlocks.js:218 -#: js/IntervalsBlocks.js:63 -msgid "temperament" +#: js/turtledefs.js:462 +#: js/widgets/help.js:333 +msgid "Welcome to Music Blocks" msgstr "" -#: js/palette.js:609 -msgid "accidental" +#: js/turtledefs.js:472 +#: js/widgets/help.js:334 +msgid "Meet Mr. Mouse!" msgstr "" -#: js/palette.js:615 -#: js/activity.js:1866 -msgid "interval name" +#: js/turtledefs.js:473 +msgid "Mr Mouse is our Music Blocks conductor." msgstr "" -#: js/palette.js:633 -#: js/PitchBlocks.js:405 -msgid "pitch converter" +#: js/turtledefs.js:475 +msgid "Mr Mouse encourages you to explore Music Blocks." msgstr "" -#: js/rubrics.js:522 -#: js/turtledefs.js:119 -#: js/turtledefs.js:221 -#: js/RhythmBlockPaletteBlocks.js:52 -#: js/RhythmBlockPaletteBlocks.js:233 -#: js/ProgramBlocks.js:745 -#: js/rhythmruler.js:1670 -#: js/rhythmruler.js:1677 -#: js/rhythmruler.js:1745 -#: js/rhythmruler.js:1752 -#: js/rhythmruler.js:1830 -#.TRANS: an arrangement of notes based on duration -msgid "rhythm" +#: js/turtledefs.js:477 +msgid "Let us start our tour!" msgstr "" -#: js/rubrics.js:523 -#: js/block.js:2339 -#: js/turtledefs.js:121 -#: js/turtledefs.js:223 -#: js/IntervalsBlocks.js:63 -#: js/PitchBlocks.js:1801 -#: js/PitchBlocks.js:1814 -#: js/SensorsBlocks.js:178 -#: js/phrasemaker.js:821 -#: js/musickeyboard.js:1653 -#.TRANS: pitch number -#.TRANS: we specify pitch in terms of a name and an octave. The name can be CDEFGAB or Do Re Mi Fa Sol La Ti. Octave is a number between 1 and 8. -msgid "pitch" +#: js/turtledefs.js:489 +msgid "Stop the music (and the mice)." msgstr "" -#: js/rubrics.js:524 -#: js/turtledefs.js:123 -#: js/turtledefs.js:225 -msgid "tone" +#: js/turtledefs.js:499 +msgid "Record your project as video." msgstr "" -#: js/rubrics.js:525 -#: js/lilypond.js:613 -#: js/lilypond.js:912 -#: js/lilypond.js:918 -#: js/lilypond.js:956 -msgid "mouse" +#: js/turtledefs.js:505 +msgid "Toggle Fullscreen mode." msgstr "" -#: js/rubrics.js:526 -#: js/turtledefs.js:132 -#: js/turtledefs.js:234 -#: js/phrasemaker.js:825 -msgid "pen" -msgstr "pen" +#: js/turtledefs.js:511 +msgid "Initialize a new project." +msgstr "" -#: js/rubrics.js:527 -#: js/turtledefs.js:133 -#: js/turtledefs.js:235 -#: js/NumberBlocks.js:905 -#: js/PitchBlocks.js:1679 -#: js/PitchBlocks.js:1720 -msgid "number" -msgstr "nummer" +#: js/turtledefs.js:517 +msgid "You can also load projects from the file system." +msgstr "" -#: js/rubrics.js:528 -#: js/turtledefs.js:127 -#: js/turtledefs.js:229 -msgid "flow" -msgstr "vloeien" +#: js/turtledefs.js:522 +#: planet/js/StringHelper.js:46 +msgid "Delete" +msgstr "" -#: js/rubrics.js:530 -#: js/turtledefs.js:136 -#: js/turtledefs.js:238 -msgid "sensors" +#: js/turtledefs.js:523 +msgid "To delete a block, just right-click on it, then you will be able to see the delete option" msgstr "" -#: js/rubrics.js:531 -#: js/turtledefs.js:135 -#: js/turtledefs.js:237 -#: js/MediaBlocks.js:930 -msgid "media" -msgstr "media" +#: js/turtledefs.js:528 +#: js/activity.js:2649 +#: planet/js/LocalCard.js:31 +msgid "Copy" +msgstr "Kopieer" -#: js/rubrics.js:532 -msgid "mice" +#: js/turtledefs.js:529 +msgid "To copy a block, just right-click on it, then you will be able to see the copy option" msgstr "" -#: js/macros.js:711 -#: js/musicutils.js:783 -#: js/synthutils.js:181 -#.TRANS: animal sound effect -msgid "duck" +#: js/turtledefs.js:534 +#: js/piemenus.js:3411 +msgid "Extract" msgstr "" -#: js/toolbar.js:46 -#: js/toolbar.js:107 -msgid "About Music Blocks" +#: js/turtledefs.js:535 +msgid "To extract a block, just right-click on it, then you will be able to see the extract option" msgstr "" -#: js/toolbar.js:47 -#: js/toolbar.js:108 -#: js/toolbar.js:172 -#: js/toolbar.js:228 -#: js/turtledefs.js:445 -#: js/turtledefs.js:482 -#: js/activity.js:2281 -#: js/activity.js:2289 -#: js/activity.js:2520 -#: js/modewidget.js:77 -#: js/pitchstaircase.js:121 -#: js/phrasemaker.js:302 -#: js/phrasemaker.js:312 -#: js/phrasemaker.js:314 -#: js/phrasemaker.js:3901 -#: js/phrasemaker.js:4061 -#: js/phrasemaker.js:4066 -#: js/phrasemaker.js:4068 -#: js/phrasemaker.js:4183 -#: js/pitchdrummatrix.js:81 -#: js/pitchdrummatrix.js:574 -#: js/pitchdrummatrix.js:576 -#: js/pitchdrummatrix.js:628 -#: js/pitchdrummatrix.js:630 -#: js/pitchdrummatrix.js:645 -#: js/pitchdrummatrix.js:647 -#: js/pitchdrummatrix.js:674 -#: js/pitchdrummatrix.js:676 -#: js/temperament.js:477 -#: js/temperament.js:480 -#: js/temperament.js:540 -#: js/temperament.js:542 -#: js/temperament.js:1835 -#: js/temperament.js:1837 -#: js/temperament.js:1986 -#: js/temperament.js:1988 -#: js/musickeyboard.js:522 -#: js/musickeyboard.js:682 -#: js/musickeyboard.js:684 -#: js/musickeyboard.js:756 -#: js/musickeyboard.js:758 -#: js/rhythmruler.js:298 -#: js/rhythmruler.js:300 -#: js/rhythmruler.js:314 -#: js/rhythmruler.js:316 -#: js/sampler.js:96 -#: js/sampler.js:98 -#: js/sampler.js:229 -#: js/sampler.js:235 -#: js/sampler.js:237 -#: js/tempo.js:84 -#: js/tempo.js:86 -#: js/timbre.js:432 -#: js/timbre.js:434 -#: js/timbre.js:465 -#: js/timbre.js:467 -#: js/timbre.js:746 -#: js/meterwidget.js:80 -#: js/arpeggio.js:90 -#: js/arpeggio.js:547 -#: js/arpeggio.js:549 -#: js/arpeggio.js:644 -#: js/arpeggio.js:646 -msgid "Play" +#: js/turtledefs.js:542 +#: js/turtledefs.js:552 +#: js/turtledefs.js:573 +msgid "Save your project to a file." msgstr "" -#: js/toolbar.js:48 -#: js/toolbar.js:109 -#: js/toolbar.js:173 -#: js/toolbar.js:229 -#: js/turtledefs.js:451 -#: js/turtledefs.js:488 -#: js/activity.js:2297 -#: js/modewidget.js:99 -#: js/modewidget.js:101 -#: js/phrasemaker.js:323 -#: js/phrasemaker.js:325 -#: js/pitchdrummatrix.js:561 -#: js/pitchdrummatrix.js:563 -#: js/temperament.js:1820 -#: js/temperament.js:1822 -#: js/meterwidget.js:101 -#: js/meterwidget.js:103 -#: js/arpeggio.js:534 -#: js/arpeggio.js:536 -msgid "Stop" -msgstr "Stop" +#: js/turtledefs.js:549 +#: js/turtledefs.js:570 +msgid "save" +msgstr "" -#: js/toolbar.js:49 -#: js/toolbar.js:110 -#: js/toolbar.js:174 -#: js/toolbar.js:230 -#: js/turtledefs.js:498 -msgid "Record" +#: js/turtledefs.js:556 +#: js/turtledefs.js:577 +msgid "Save graphics from your project to as SVG." msgstr "" -#: js/toolbar.js:50 -#: js/toolbar.js:51 -msgid "Full screen" +#: js/turtledefs.js:560 +#: js/turtledefs.js:581 +msgid "Save graphics from your project as PNG." msgstr "" -#: js/toolbar.js:52 -#: js/toolbar.js:112 -#: js/toolbar.js:177 -#: js/toolbar.js:232 -#: js/turtledefs.js:504 -msgid "Toggle Fullscreen" +#: js/turtledefs.js:564 +#: js/turtledefs.js:597 +msgid "Save block artwork as an SVG file." msgstr "" -#: js/toolbar.js:53 -#: js/toolbar.js:113 -#: js/toolbar.js:178 -#: js/toolbar.js:233 -#: js/turtledefs.js:510 -#: js/StringHelper.js:33 -msgid "New project" +#: js/turtledefs.js:585 +msgid "Save audio from your project as WAV." msgstr "" -#: js/toolbar.js:54 -#: js/toolbar.js:114 -#: js/toolbar.js:179 -#: js/toolbar.js:234 -#: js/turtledefs.js:516 -msgid "Load project from file" +#: js/turtledefs.js:589 +msgid "Save your project to as an ABC file." msgstr "" -#: js/toolbar.js:55 -#: js/toolbar.js:115 -#: js/toolbar.js:116 -#: js/toolbar.js:180 -#: js/toolbar.js:235 -#: js/turtledefs.js:541 -#: js/turtledefs.js:550 -#: js/turtledefs.js:571 -msgid "Save project" +#: js/turtledefs.js:593 +msgid "Save your project to as a Lilypond file." msgstr "" -#: js/toolbar.js:56 -#: js/toolbar.js:75 -#: js/toolbar.js:77 -#: js/toolbar.js:135 -#: js/toolbar.js:144 -#: js/toolbar.js:146 -#: js/toolbar.js:181 -#: js/toolbar.js:199 -#: js/toolbar.js:201 -#: js/toolbar.js:236 -#: js/toolbar.js:254 -#: js/toolbar.js:256 -msgid "Save project as HTML" +#: js/turtledefs.js:604 +msgid "Load samples from server" msgstr "" -#: js/toolbar.js:57 -#: js/toolbar.js:117 -#: js/toolbar.js:182 -#: js/toolbar.js:237 -msgid "Find and share projects" +#: js/turtledefs.js:605 +msgid "This button opens a viewer for loading example projects." +msgstr "" + +#: js/turtledefs.js:611 +msgid "Palette buttons" +msgstr "" + +#: js/turtledefs.js:612 +msgid "This toolbar contains the palette buttons including Rhythm Pitch Tone Action and more." +msgstr "" + +#: js/turtledefs.js:614 +msgid "Click to show the palettes of blocks and drag blocks from the palettes onto the canvas to use them." +msgstr "" + +#: js/turtledefs.js:620 +msgid "Cartesian/Polar" msgstr "" -#: js/toolbar.js:58 -#: js/toolbar.js:118 -#: js/toolbar.js:183 -#: js/toolbar.js:238 -msgid "Offline. Sharing is unavailable" +#: js/turtledefs.js:621 +msgid "Show or hide a coordinate grid." msgstr "" -#: js/toolbar.js:59 -#: js/toolbar.js:119 -#: js/toolbar.js:184 -#: js/toolbar.js:239 -msgid "Auxiliary menu" +#: js/turtledefs.js:626 +#: js/turtles.js:902 +msgid "Clean" +msgstr "Wissen" + +#: js/turtledefs.js:627 +msgid "Clear the screen and return the mice to their initial positions." msgstr "" -#: js/toolbar.js:61 -#: js/toolbar.js:121 -#: js/toolbar.js:186 -#: js/toolbar.js:241 -msgid "Run slowly" +#: js/turtledefs.js:632 +#: js/turtles.js:955 +msgid "Collapse" msgstr "" -#: js/toolbar.js:62 -#: js/toolbar.js:122 -#: js/toolbar.js:187 -#: js/toolbar.js:242 -#: js/turtledefs.js:682 -msgid "Run step by step" +#: js/turtledefs.js:633 +msgid "Collapse the graphics window." msgstr "" -#: js/toolbar.js:63 -#: js/toolbar.js:123 -#: js/toolbar.js:188 -#: js/toolbar.js:243 -#: js/turtledefs.js:689 -msgid "Display statistics" +#: js/turtledefs.js:638 +#: js/activity.js:5684 +msgid "Home" msgstr "" -#: js/toolbar.js:64 -#: js/toolbar.js:124 -#: js/toolbar.js:189 -#: js/toolbar.js:244 -msgid "Load plugin" +#: js/turtledefs.js:639 +msgid "Return all blocks to the center of the screen." msgstr "" -#: js/toolbar.js:65 -#: js/toolbar.js:125 -#: js/toolbar.js:190 -#: js/toolbar.js:245 -#: js/turtledefs.js:696 -msgid "Delete plugin" +#: js/turtledefs.js:644 +msgid "Show/hide blocks" +msgstr "Toon/verberg blokken" + +#: js/turtledefs.js:645 +msgid "Hide or show the blocks and the palettes." msgstr "" -#: js/toolbar.js:66 -#: js/toolbar.js:126 -#: js/toolbar.js:191 -#: js/toolbar.js:246 -msgid "Enable horizontal scrolling" +#: js/turtledefs.js:650 +msgid "Expand/collapse collapsable blocks" msgstr "" -#: js/toolbar.js:67 -#: js/toolbar.js:127 -#: js/toolbar.js:192 -#: js/toolbar.js:247 -msgid "Disable horizontal scrolling" +#: js/turtledefs.js:651 +msgid "Expand or collapse start and action stacks." msgstr "" -#: js/toolbar.js:68 -#: js/toolbar.js:128 -#: js/toolbar.js:193 -#: js/toolbar.js:248 -#: js/LocalCard.js:54 -#: js/StringHelper.js:71 -msgid "Merge with current project" +#: js/turtledefs.js:658 +#: js/activity.js:5704 +msgid "Decrease block size" msgstr "" -#: js/toolbar.js:69 -#: js/toolbar.js:129 -msgid "Set Pitch Preview" +#: js/turtledefs.js:659 +msgid "Decrease the size of the blocks." msgstr "" -#: js/toolbar.js:70 -#: js/toolbar.js:130 -#: js/toolbar.js:194 -#: js/toolbar.js:249 -msgid "Toggle JavaScript Editor" +#: js/turtledefs.js:664 +#: js/activity.js:5710 +msgid "Increase block size" msgstr "" -#: js/toolbar.js:71 -#: js/toolbar.js:131 -#: js/toolbar.js:195 -#: js/toolbar.js:250 -#: js/turtledefs.js:724 -msgid "Restore" +#: js/turtledefs.js:665 +msgid "Increase the size of the blocks." msgstr "" -#: js/toolbar.js:72 -#: js/toolbar.js:132 -#: js/toolbar.js:196 -#: js/toolbar.js:251 -msgid "Switch to beginner mode" +#: js/turtledefs.js:670 +msgid "Expand/collapse option toolbar" msgstr "" -#: js/toolbar.js:73 -#: js/toolbar.js:133 -#: js/toolbar.js:197 -#: js/toolbar.js:252 -msgid "Switch to advanced mode" +#: js/turtledefs.js:671 +msgid "Click this button to expand or collapse the auxillary toolbar." msgstr "" -#: js/toolbar.js:74 -#: js/toolbar.js:134 -#: js/toolbar.js:143 -#: js/toolbar.js:198 -#: js/toolbar.js:253 -#: js/turtledefs.js:738 -msgid "Select language" +#: js/turtledefs.js:676 +msgid "Run slow" msgstr "" -#: js/toolbar.js:76 -#: js/toolbar.js:79 -#: js/toolbar.js:137 -#: js/turtledefs.js:579 -msgid "Save mouse artwork as PNG" +#: js/turtledefs.js:677 +msgid "Click to run the project in slow mode." msgstr "" -#: js/toolbar.js:78 -#: js/toolbar.js:136 -#: js/turtledefs.js:575 -msgid "Save mouse artwork as SVG" +#: js/turtledefs.js:683 +msgid "Click to run the project step by step." msgstr "" -#: js/toolbar.js:80 -#: js/toolbar.js:138 -#: js/turtledefs.js:583 -msgid "Save music as WAV" +#: js/turtledefs.js:690 +msgid "Display statistics about your Music project." msgstr "" -#: js/toolbar.js:81 -#: js/toolbar.js:139 -#: js/turtledefs.js:587 -msgid "Save sheet music as ABC" +#: js/turtledefs.js:697 +msgid "Delete a selected plugin." msgstr "" -#: js/toolbar.js:82 -#: js/toolbar.js:140 -#: js/turtledefs.js:591 -msgid "Save sheet music as Lilypond" +#: js/turtledefs.js:704 +msgid "Enable scrolling" msgstr "" -#: js/toolbar.js:83 -msgid "Save sheet music as MusicXML" +#: js/turtledefs.js:705 +msgid "You can scroll the blocks on the canvas." msgstr "" -#: js/toolbar.js:84 -#: js/toolbar.js:141 -#: js/toolbar.js:149 -#: js/toolbar.js:204 -#: js/toolbar.js:259 -#: js/turtledefs.js:562 -#: js/turtledefs.js:595 -msgid "Save block artwork as SVG" +#: js/turtledefs.js:714 +msgid "Wrap Turtle" msgstr "" -#: js/toolbar.js:85 -#: js/toolbar.js:142 -#: js/toolbar.js:150 -#: js/toolbar.js:205 -#: js/toolbar.js:260 -msgid "Confirm" +#: js/turtledefs.js:715 +msgid "Turn Turtle wrapping On or Off." msgstr "" -#: js/toolbar.js:86 -#: js/toolbar.js:151 -#: js/toolbar.js:206 -#: js/toolbar.js:261 -msgid "English (United States)" +#: js/turtledefs.js:725 +msgid "Restore blocks from the trash." msgstr "" -#: js/toolbar.js:87 -#: js/toolbar.js:152 -#: js/toolbar.js:207 -#: js/toolbar.js:262 -msgid "English (United Kingdom)" +#: js/turtledefs.js:732 +msgid "Switch mode" msgstr "" -#: js/toolbar.js:88 -#: js/toolbar.js:153 -#: js/toolbar.js:208 -#: js/toolbar.js:263 -msgid "日本語" +#: js/turtledefs.js:733 +msgid "Switch between beginner and advance modes." msgstr "" -#: js/toolbar.js:89 -msgid "한국어" +#: js/turtledefs.js:739 +msgid "Select your language preference." msgstr "" -#: js/toolbar.js:90 -#: js/toolbar.js:155 -#: js/toolbar.js:210 -#: js/toolbar.js:265 -msgid "español" +#: js/turtledefs.js:745 +msgid "Keyboard shortcuts" msgstr "" -#: js/toolbar.js:91 -#: js/toolbar.js:156 -#: js/toolbar.js:211 -#: js/toolbar.js:266 -msgid "português" +#: js/turtledefs.js:746 +msgid "You can type d to create a do block and r to create a re block etc." msgstr "" -#: js/toolbar.js:92 -#: js/toolbar.js:157 -#: js/toolbar.js:212 -#: js/toolbar.js:267 -msgid "にほんご" +#: js/turtledefs.js:753 +msgid "Show these messages." msgstr "" -#: js/toolbar.js:93 -#: js/toolbar.js:158 -#: js/toolbar.js:213 -#: js/toolbar.js:268 -msgid "中文" +#: js/turtledefs.js:759 +#: js/turtledefs.js:790 +#: js/widgets/help.js:335 +msgid "Guide" msgstr "" -#: js/toolbar.js:94 -#: js/toolbar.js:159 -#: js/toolbar.js:214 -#: js/toolbar.js:269 -msgid "ภาษาไทย" +#: js/turtledefs.js:760 +msgid "A detailed guide to Turtle Blocks is available." msgstr "" -#: js/toolbar.js:95 -#: js/toolbar.js:160 -#: js/toolbar.js:215 -#: js/toolbar.js:270 -msgid "aymara" +#: js/turtledefs.js:764 +msgid "Turtle Blocks Guide" msgstr "" -#: js/toolbar.js:96 -#: js/toolbar.js:161 -#: js/toolbar.js:216 -#: js/toolbar.js:271 -msgid "quechua" +#: js/turtledefs.js:767 +#: js/turtledefs.js:798 +#: js/widgets/help.js:336 +msgid "About" +msgstr "" + +#: js/turtledefs.js:768 +msgid "Turtle Blocks is an open source collection of tools for exploring musical concepts." msgstr "" -#: js/toolbar.js:97 -#: js/toolbar.js:162 -#: js/toolbar.js:217 -#: js/toolbar.js:272 -msgid "guarani" +#: js/turtledefs.js:770 +msgid "A full list of contributors can be found in the Turtle Blocks GitHub repository." msgstr "" -#: js/toolbar.js:98 -#: js/toolbar.js:163 -#: js/toolbar.js:218 -#: js/toolbar.js:273 -msgid "हिंदी" +#: js/turtledefs.js:772 +msgid "Turtle Blocks is licensed under the AGPL." msgstr "" -#: js/toolbar.js:99 -#: js/toolbar.js:165 -#: js/toolbar.js:219 -#: js/toolbar.js:275 -msgid "igbo" +#: js/turtledefs.js:780 +msgid "Turtle Blocks GitHub repository" msgstr "" -#: js/toolbar.js:100 -#: js/toolbar.js:166 -#: js/toolbar.js:220 -#: js/toolbar.js:276 -msgid "عربى" +#: js/turtledefs.js:783 +#: js/turtledefs.js:814 +#: js/widgets/help.js:337 +#: js/widgets/help.js:359 +msgid "Congratulations." msgstr "" -#: js/toolbar.js:101 -#: js/toolbar.js:164 -#: js/toolbar.js:221 -#: js/toolbar.js:274 -msgid "తెలుగు" +#: js/turtledefs.js:784 +msgid "You have finished the tour. Please enjoy Turtle Blocks!" msgstr "" -#: js/toolbar.js:102 -#: js/toolbar.js:167 -#: js/toolbar.js:222 -#: js/toolbar.js:277 -msgid "עִברִית" +#: js/turtledefs.js:791 +msgid "A detailed guide to Music Blocks is available." msgstr "" -#: js/toolbar.js:111 -#: js/toolbar.js:175 -#: js/toolbar.js:176 -#: js/toolbar.js:231 -msgid "Full Screen" +#: js/turtledefs.js:799 +msgid "Music Blocks is an open source collection of tools for exploring musical concepts." msgstr "" -#: js/toolbar.js:145 -#: js/toolbar.js:148 -#: js/toolbar.js:200 -#: js/toolbar.js:203 -#: js/toolbar.js:255 -#: js/toolbar.js:258 -#: js/turtledefs.js:558 -msgid "Save turtle artwork as PNG" +#: js/turtledefs.js:801 +msgid "A full list of contributors can be found in the Music Blocks GitHub repository." msgstr "" -#: js/toolbar.js:147 -#: js/toolbar.js:202 -#: js/toolbar.js:257 -#: js/turtledefs.js:554 -msgid "Save turtle artwork as SVG" +#: js/turtledefs.js:803 +msgid "Music Blocks is licensed under the AGPL." msgstr "" -#: js/toolbar.js:154 -#: js/toolbar.js:209 -#: js/toolbar.js:264 -msgid "한국인" +#: js/turtledefs.js:811 +msgid "Music Blocks GitHub repository" msgstr "" -#: js/toolbar.js:171 -#: js/toolbar.js:227 -msgid "About Turtle Blocks" +#: js/turtledefs.js:815 +msgid "You have finished the tour. Please enjoy Music Blocks!" msgstr "" -#: js/toolbar.js:429 -#: js/toolbar.js:440 -msgid "Turtle Wrap Off" +#: js/turtles.js:882 +msgid "Grid" +msgstr "Rooster" + +#: js/turtles.js:1024 +msgid "Expand" msgstr "" -#: js/toolbar.js:442 -msgid "Turtle Wrap On" +#: js/block-verbose.js:1616 +#: js/block-verbose.js:1735 +#: js/block.js:1580 +#: js/block.js:1699 +#: js/palette.js:605 +#: js/blocks/IntervalsBlocks.js:63 +#: js/blocks/WidgetBlocks.js:259 +msgid "temperament" msgstr "" -#: js/block.js:1470 +#: js/block-verbose.js:1630 +#: js/block.js:1594 msgid "matrix" msgstr "" -#: js/block.js:1477 -#: js/WidgetBlocks.js:1226 +#: js/block-verbose.js:1637 +#: js/block.js:1601 +#: js/blocks/WidgetBlocks.js:1509 #: plugins/rodi.rtp:324 msgid "status" msgstr "" -#: js/block.js:1484 +#: js/block-verbose.js:1644 +#: js/block.js:1608 msgid "drum mapper" msgstr "" -#: js/block.js:1491 +#: js/block-verbose.js:1651 +#: js/block.js:1615 msgid "ruler" msgstr "" -#: js/block.js:1498 -#: js/WidgetBlocks.js:327 +#: js/block-verbose.js:1658 +#: js/block.js:1622 +#: js/blocks/WidgetBlocks.js:397 #.TRANS: timbre is the character or quality of a musical sound msgid "timbre" msgstr "" -#: js/block.js:1505 +#: js/block-verbose.js:1665 +#: js/block.js:1629 msgid "stair" msgstr "" -#: js/block.js:1512 -#: js/WidgetBlocks.js:577 +#: js/block-verbose.js:1672 +#: js/block.js:1636 +#: js/blocks/WidgetBlocks.js:707 #.TRANS: the speed at music is should be played. msgid "tempo" msgstr "" -#: js/block.js:1519 -#: js/block.js:1582 -#: js/IntervalsBlocks.js:1268 +#: js/block-verbose.js:1679 +#: js/block-verbose.js:1742 +#: js/block.js:1643 +#: js/block.js:1706 +#: js/blocks/IntervalsBlocks.js:1464 #.TRANS: mode, e.g., Major in C Major msgid "mode" msgstr "" -#: js/block.js:1526 +#: js/block-verbose.js:1686 +#: js/block.js:1650 msgid "slider" msgstr "" -#: js/block.js:1533 -#: js/SensorsBlocks.js:1001 +#: js/block-verbose.js:1693 +#: js/block.js:1657 +#: js/blocks/SensorsBlocks.js:1001 msgid "keyboard" msgstr "toetsenbord" -#: js/block.js:1547 -#: js/WidgetBlocks.js:957 -#: js/WidgetBlocks.js:988 +#: js/block-verbose.js:1707 +#: js/block.js:1671 +#: js/blocks/WidgetBlocks.js:1190 +#: js/blocks/WidgetBlocks.js:1228 #.TRANS: widget for subdividing a measure into distinct rhythmic elements msgid "rhythm maker" msgstr "" -#: js/block.js:1554 -#: js/block.js:2182 -#: js/block.js:2236 -#: js/RhythmBlockPaletteBlocks.js:70 -#: js/RhythmBlockPaletteBlocks.js:251 -#: js/RhythmBlockPaletteBlocks.js:484 -#: js/RhythmBlockPaletteBlocks.js:553 -#: js/RhythmBlockPaletteBlocks.js:604 -#: js/RhythmBlockPaletteBlocks.js:874 -#: js/RhythmBlocks.js:33 -#: js/RhythmBlocks.js:356 -#: js/RhythmBlocks.js:766 -#: js/RhythmBlocks.js:806 -#: js/OrnamentBlocks.js:220 -#: js/OrnamentBlocks.js:312 -#: js/MeterBlocks.js:1367 -#: js/DictActions.js:85 -#: js/phrasemaker.js:731 -#: js/phrasemaker.js:2393 -#: js/phrasemaker.js:2436 -#: js/phrasemaker.js:2534 +#: js/block-verbose.js:1714 +#: js/block-verbose.js:2457 +#: js/block-verbose.js:2514 +#: js/block.js:1678 +#: js/block.js:2385 +#: js/block.js:2442 +#: js/blocks/MeterBlocks.js:1367 +#: js/blocks/OrnamentBlocks.js:220 +#: js/blocks/OrnamentBlocks.js:312 +#: js/blocks/RhythmBlocks.js:33 +#: js/blocks/RhythmBlocks.js:356 +#: js/blocks/RhythmBlocks.js:766 +#: js/blocks/RhythmBlocks.js:806 +#: js/blocks/RhythmBlockPaletteBlocks.js:70 +#: js/blocks/RhythmBlockPaletteBlocks.js:252 +#: js/blocks/RhythmBlockPaletteBlocks.js:485 +#: js/blocks/RhythmBlockPaletteBlocks.js:554 +#: js/blocks/RhythmBlockPaletteBlocks.js:605 +#: js/blocks/RhythmBlockPaletteBlocks.js:875 +#: js/turtleactions/DictActions.js:85 +#: js/widgets/phrasemaker.js:942 +#: js/widgets/phrasemaker.js:2656 +#: js/widgets/phrasemaker.js:2699 +#: js/widgets/phrasemaker.js:2810 #.TRANS: the value (e.g., 1/4 note) of the note being played. msgid "note value" msgstr "" -#: js/block.js:1561 -#: js/block.js:2110 -#: js/block.js:2133 -#: js/IntervalsBlocks.js:875 -#: js/OrnamentBlocks.js:312 +#: js/block-verbose.js:1721 +#: js/block-verbose.js:2382 +#: js/block-verbose.js:2405 +#: js/block.js:1685 +#: js/block.js:2310 +#: js/block.js:2333 +#: js/blocks/IntervalsBlocks.js:1071 +#: js/blocks/OrnamentBlocks.js:312 #.TRANS: calculate a relative step between notes based on semi-tones msgid "scalar interval" msgstr "" -#: js/block.js:1568 -#: js/RhythmBlocks.js:148 +#: js/block-verbose.js:1728 +#: js/block.js:1692 +#: js/blocks/RhythmBlocks.js:148 msgid "milliseconds" msgstr "" -#: js/block.js:2180 -#: js/block.js:2184 -#: js/block.js:2234 -#: js/block.js:2345 -#: js/ProgramBlocks.js:1273 -#: js/RhythmBlocks.js:712 -#: js/rhythmruler.js:834 -#: js/rhythmruler.js:961 +#: js/block-verbose.js:2455 +#: js/block-verbose.js:2459 +#: js/block-verbose.js:2512 +#: js/block-verbose.js:2628 +#: js/block.js:2383 +#: js/block.js:2387 +#: js/block.js:2440 +#: js/block.js:2556 +#: js/blocks/RhythmBlocks.js:712 +#: js/blocks/ProgramBlocks.js:1273 +#: js/widgets/rhythmruler.js:1183 +#: js/widgets/rhythmruler.js:1329 msgid "silence" msgstr "" -#: js/block.js:2265 -#: js/block.js:3134 -#: js/block.js:3151 -#: js/activity.js:2336 -#: js/activity.js:2387 -#: js/musicutils.js:2932 -#: js/musicutils.js:4287 +#: js/block-verbose.js:2548 +#: js/block-verbose.js:3492 +#: js/block-verbose.js:3509 +#: js/activity.js:2718 +#: js/activity.js:2769 +#: js/block.js:2476 +#: js/block.js:3416 +#: js/block.js:3433 +#: js/utils/musicutils.js:3780 +#: js/utils/musicutils.js:5273 +#.TRANS: the note names must be separated by single spaces #.TRANS: the note names must be separated by single spaces #.TRANS: the note names must be separated by single spaces msgid "ti la sol fa mi re do" msgstr "" -#: js/block.js:2333 +#: js/block-verbose.js:2616 +#: js/block.js:2544 +#.TRANS: scalar step #.TRANS: scalar step msgid "down" msgstr "" -#: js/block.js:2334 +#: js/block-verbose.js:2617 +#: js/block.js:2545 msgid "up" msgstr "" -#: js/block.js:3477 -#: js/block.js:3490 -#: js/ExtrasBlocks.js:612 +#: js/block-verbose.js:3026 +#: js/block.js:2950 +msgid "Silence block cannot be removed." +msgstr "" + +#: js/block-verbose.js:3824 +#: js/block.js:3748 +#: js/blocks.js:2607 +#: js/blocks.js:3218 +#: js/palette.js:618 +#: js/blocks/BooleanBlocks.js:77 +#: js/blocks/BooleanBlocks.js:167 +#: js/blocks/BooleanBlocks.js:251 +#: js/blocks/BooleanBlocks.js:335 +#: js/blocks/BooleanBlocks.js:433 +#: js/blocks/BooleanBlocks.js:539 +#: js/blocks/BooleanBlocks.js:640 +#: js/blocks/BooleanBlocks.js:741 +#: js/blocks/BooleanBlocks.js:847 +#: js/blocks/BooleanBlocks.js:948 +#: js/blocks/BooleanBlocks.js:1033 +#: js/blocks/SensorsBlocks.js:910 +msgid "true" +msgstr "" + +#: js/block-verbose.js:3824 +#: js/block.js:3748 +#: js/blocks.js:2609 +#: js/blocks.js:3220 +#: js/blocks/BooleanBlocks.js:79 +#: js/blocks/BooleanBlocks.js:169 +#: js/blocks/BooleanBlocks.js:253 +#: js/blocks/BooleanBlocks.js:337 +#: js/blocks/BooleanBlocks.js:435 +#: js/blocks/BooleanBlocks.js:541 +#: js/blocks/BooleanBlocks.js:642 +#: js/blocks/BooleanBlocks.js:743 +#: js/blocks/BooleanBlocks.js:849 +#: js/blocks/BooleanBlocks.js:950 +#: js/blocks/SensorsBlocks.js:912 +msgid "false" +msgstr "" + +#: js/block-verbose.js:3835 +#: js/block-verbose.js:3848 +#: js/block.js:3759 +#: js/block.js:3772 +#: js/blocks/ExtrasBlocks.js:615 msgid "Cartesian" msgstr "Cartesisch" -#: js/block.js:3478 -#: js/block.js:3491 -#: js/ExtrasBlocks.js:616 +#: js/block-verbose.js:3836 +#: js/block-verbose.js:3849 +#: js/block.js:3760 +#: js/block.js:3773 +#: js/blocks/ExtrasBlocks.js:619 msgid "polar" msgstr "" -#: js/block.js:3479 -#: js/block.js:3492 -#: js/ExtrasBlocks.js:620 +#: js/block-verbose.js:3837 +#: js/block-verbose.js:3850 +#: js/block.js:3761 +#: js/block.js:3774 +#: js/blocks/ExtrasBlocks.js:623 msgid "Cartesian+polar" msgstr "" -#: js/block.js:3480 -#: js/block.js:3499 -#: js/ExtrasBlocks.js:649 +#: js/block-verbose.js:3838 +#: js/block-verbose.js:3857 +#: js/block.js:3762 +#: js/block.js:3781 +#: js/blocks/ExtrasBlocks.js:652 msgid "none" msgstr "" -#: js/block.js:3493 -#: js/ExtrasBlocks.js:625 +#: js/block-verbose.js:3851 +#: js/block.js:3775 +#: js/blocks/ExtrasBlocks.js:628 msgid "treble" msgstr "" -#: js/block.js:3494 -#: js/ExtrasBlocks.js:629 +#: js/block-verbose.js:3852 +#: js/block.js:3776 +#: js/blocks/ExtrasBlocks.js:632 msgid "grand staff" msgstr "" -#: js/block.js:3495 -#: js/ExtrasBlocks.js:633 +#: js/block-verbose.js:3853 +#: js/block.js:3777 +#: js/blocks/ExtrasBlocks.js:636 msgid "mezzo-soprano" msgstr "" -#: js/block.js:3496 -#: js/ExtrasBlocks.js:637 +#: js/block-verbose.js:3854 +#: js/block.js:3778 +#: js/blocks/ExtrasBlocks.js:640 msgid "alto" msgstr "" -#: js/block.js:3497 -#: js/ExtrasBlocks.js:641 +#: js/block-verbose.js:3855 +#: js/block.js:3779 +#: js/blocks/ExtrasBlocks.js:644 msgid "tenor" msgstr "" -#: js/block.js:3498 -#: js/ExtrasBlocks.js:645 -#: js/musicutils.js:736 -#: js/synthutils.js:64 +#: js/block-verbose.js:3856 +#: js/block.js:3780 +#: js/utils/musicutils.js:1115 +#: js/utils/synthutils.js:80 +#: js/blocks/ExtrasBlocks.js:648 #.TRANS: musical instrument msgid "bass" msgstr "" -#: js/block.js:4075 +#: js/block-verbose.js:3901 +#: js/block.js:3825 +#: js/blocks.js:2600 +#: js/blocks.js:3211 +msgid "on2" +msgstr "" + +#: js/block-verbose.js:3903 +#: js/block.js:3827 +#: js/blocks.js:2602 +#: js/blocks.js:3213 +msgid "off" +msgstr "" + +#: js/block-verbose.js:4470 +#: js/block.js:4394 msgid "Not a number" msgstr "" -#: js/block.js:4082 +#: js/block-verbose.js:4477 +#: js/block.js:4401 msgid "Octave value must be between 1 and 10." msgstr "" -#: js/block.js:4090 -msgid "Numbers can have at most 10 digits." +#: js/block-verbose.js:4485 +#: js/block.js:4409 +msgid "Numbers can have at most 10 digits." +msgstr "" + +#: js/activity.js:390 +#: js/activity.js:395 +msgid "Search for blocks" +msgstr "" + +#: js/activity.js:1413 +msgid "Refresh your browser to change to advanced mode." +msgstr "" + +#: js/activity.js:1418 +msgid "Refresh your browser to change to beginner mode." +msgstr "" + +#: js/activity.js:1477 +msgid "Catching mice" +msgstr "" + +#: js/activity.js:1478 +msgid "Cleaning the instruments" +msgstr "" + +#: js/activity.js:1479 +msgid "Testing key pieces" +msgstr "" + +#: js/activity.js:1480 +msgid "Sight-reading" +msgstr "" + +#: js/activity.js:1481 +msgid "Combining math and music" +msgstr "" + +#: js/activity.js:1482 +msgid "Generating more blocks" +msgstr "" + +#: js/activity.js:1483 +msgid "Do Re Mi Fa Sol La Ti Do" +msgstr "" + +#: js/activity.js:1484 +msgid "Tuning string instruments" +msgstr "" + +#: js/activity.js:1485 +msgid "Pressing random keys" +msgstr "" + +#: js/activity.js:1663 +msgid "plugins will be removed upon restart." +msgstr "" + +#: js/activity.js:1672 +msgid "show Cartesian" +msgstr "" + +#: js/activity.js:2211 +#: js/palette.js:589 +#: js/blocks/RhythmBlocks.js:923 +#: js/blocks/PitchBlocks.js:442 +#: js/blocks/PitchBlocks.js:1786 +#.TRANS: a numeric mapping of the notes in an octave based on the musical mode +msgid "scale degree" +msgstr "" + +#: js/activity.js:2214 +#: js/palette.js:598 +msgid "voice name" +msgstr "" + +#: js/activity.js:2217 +#: js/palette.js:595 +msgid "invert mode" +msgstr "" + +#: js/activity.js:2220 +msgid "output tools" +msgstr "" + +#: js/activity.js:2223 +msgid "custom note" +msgstr "" + +#: js/activity.js:2226 +msgid "accidental name" +msgstr "" + +#: js/activity.js:2229 +#: js/blocks/PitchBlocks.js:855 +msgid "east indian solfege" +msgstr "" + +#: js/activity.js:2232 +#: js/blocks/PitchBlocks.js:869 +msgid "note name" +msgstr "" + +#: js/activity.js:2235 +#: js/blocks/IntervalsBlocks.js:94 +msgid "temperament name" +msgstr "" + +#: js/activity.js:2238 +#: js/palette.js:592 +msgid "mode name" +msgstr "" + +#: js/activity.js:2241 +msgid "chord name" +msgstr "" + +#: js/activity.js:2244 +#: js/palette.js:615 +msgid "interval name" +msgstr "" + +#: js/activity.js:2247 +msgid "filter type" +msgstr "" + +#: js/activity.js:2250 +msgid "oscillator type" +msgstr "" + +#: js/activity.js:2253 +#: js/blocks.js:2479 +#: js/blocks.js:2487 +msgid "audio file" +msgstr "" + +#: js/activity.js:2256 +#: js/blocks/DrumBlocks.js:32 +msgid "noise name" +msgstr "" + +#: js/activity.js:2259 +#: js/blocks/DrumBlocks.js:75 +msgid "drum name" +msgstr "" + +#: js/activity.js:2262 +#: js/blocks/DrumBlocks.js:119 +msgid "effects name" +msgstr "" + +#: js/activity.js:2265 +msgid "wrap mode" +msgstr "" + +#: js/activity.js:2268 +msgid "load file" +msgstr "" + +#: js/activity.js:2435 +#: js/activity.js:5851 +msgid "This block is deprecated." +msgstr "" + +#: js/activity.js:2437 +#: js/activity.js:5853 +msgid "Block cannot be found." +msgstr "" + +#: js/activity.js:2645 +msgid "Saving block artwork" +msgstr "" + +#: js/activity.js:2656 +msgid "Erase" +msgstr "" + +#: js/activity.js:2683 +#: js/activity.js:2705 +msgid "Paste" +msgstr "Plak" + +#: js/activity.js:2687 +msgid "Save block help" +msgstr "" + +#: js/activity.js:2772 +msgid "Jumping to the bottom of the page." +msgstr "" + +#: js/activity.js:2778 +msgid "Scrolling up." +msgstr "" + +#: js/activity.js:2783 +msgid "Scrolling down." +msgstr "" + +#: js/activity.js:2788 +msgid "Extracting block" +msgstr "" + +#: js/activity.js:2796 +msgid "Moving block up." +msgstr "" + +#: js/activity.js:2817 +msgid "Moving block down." +msgstr "" + +#: js/activity.js:2838 +msgid "Moving block left." msgstr "" -#: js/notation.js:353 -msgid "Lilypond cannot process pickup of " +#: js/activity.js:2855 +msgid "Moving block right." msgstr "" -#: js/turtledefs.js:40 -#.TRANS: put the URL to the guide here, e.g., https://github.com/sugarlabs/turtleblocksjs/tree/master/guide/README.md -msgid "guide url" +#: js/activity.js:2870 +msgid "Jump to home position." msgstr "" -#: js/turtledefs.js:85 -#: js/turtledefs.js:437 -msgid "Turtle Blocks is a Logo-inspired turtle that draws colorful pictures with snap-together visual-programming blocks." +#: js/activity.js:2897 +msgid "Hide blocks" msgstr "" -#: js/turtledefs.js:118 -#: js/turtledefs.js:220 -msgid "search" +#: js/activity.js:4500 +msgid "Click the run button to run the project." msgstr "" -#: js/turtledefs.js:120 -#: js/turtledefs.js:222 -#: js/WidgetBlocks.js:437 -#: js/MeterBlocks.js:1343 -#.TRANS: musical meter (time signature), e.g., 4:4 -msgid "meter" +#: js/activity.js:5692 +msgid "Show/hide block" msgstr "" -#: js/turtledefs.js:122 -#: js/turtledefs.js:224 -msgid "intervals" +#: js/activity.js:5698 +msgid "Expand/collapse blocks" msgstr "" -#: js/turtledefs.js:124 -#: js/turtledefs.js:226 -msgid "ornament" +#: js/activity.js:5976 +msgid "Could not parse JSON input." msgstr "" -#: js/turtledefs.js:125 -#: js/turtledefs.js:227 -#: js/VolumeBlocks.js:362 -#: js/VolumeBlocks.js:502 -#: js/VolumeBlocks.js:545 -msgid "volume" +#: js/activity.js:6475 +#: js/activity.js:6580 +#: js/activity.js:6631 +msgid "Cannot load project from the file. Please check the file type." msgstr "" -#: js/turtledefs.js:129 -#: js/turtledefs.js:231 -msgid "boxes" +#: js/activity.js:6917 +msgid "Invalid parameters" msgstr "" -#: js/turtledefs.js:130 -#: js/turtledefs.js:232 -msgid "widgets" -msgstr "" +#: js/blocks.js:1212 +#: js/blocks.js:3444 +#: js/blocks.js:3834 +#: js/blocks.js:3865 +#: js/blocks.js:3914 +#: js/blocks.js:3949 +#: js/blocks.js:6586 +#: js/palette.js:509 +#: js/palette.js:638 +#: js/palette.js:1105 +#: js/blocks/BoxesBlocks.js:282 +#: js/blocks/BoxesBlocks.js:285 +#: js/blocks/BoxesBlocks.js:405 +#: js/blocks/BoxesBlocks.js:594 +msgid "box" +msgstr "doos" -#: js/turtledefs.js:131 -#: js/turtledefs.js:233 -#: js/phrasemaker.js:824 -msgid "graphics" +#: js/blocks.js:1713 +msgid "Consider breaking this stack into parts." msgstr "" -#: js/turtledefs.js:134 -#: js/turtledefs.js:236 -msgid "boolean" +#: js/blocks.js:2472 +#: js/palette.js:653 +#: js/blocks/MediaBlocks.js:602 +msgid "open file" msgstr "" -#: js/turtledefs.js:137 -#: js/turtledefs.js:239 -#: js/HeapBlocks.js:59 -#: js/status.js:147 -msgid "heap" +#: js/blocks.js:3247 +#: js/palette.js:574 +#: js/blocks/MediaBlocks.js:892 +#: js/blocks/MediaBlocks.js:963 +msgid "text" +msgstr "tekst" + +#: js/blocks.js:3443 +#: js/palette.js:641 +#: js/palette.js:642 +#: js/blocks/BoxesBlocks.js:514 +msgid "store in box" msgstr "" -#: js/turtledefs.js:138 -#: js/turtledefs.js:240 -#: js/ProgramBlocks.js:495 -#: js/DictBlocks.js:142 -msgid "dictionary" +#: js/blocks.js:3448 +#: js/blocks.js:3888 +#: js/blocks.js:3923 +#: js/blocks.js:3958 +#: js/blocks.js:5862 +#: js/blocks.js:5883 +#: js/blocks/BoxesBlocks.js:772 +msgid "box1" msgstr "" -#: js/turtledefs.js:139 -#: js/turtledefs.js:241 -msgid "ensemble" +#: js/blocks.js:3450 +#: js/blocks.js:3890 +#: js/blocks.js:3925 +#: js/blocks.js:3960 +#: js/blocks.js:5864 +#: js/blocks.js:5885 +#: js/blocks/BoxesBlocks.js:663 +msgid "box2" msgstr "" -#: js/turtledefs.js:140 -#: js/turtledefs.js:242 -msgid "extras" -msgstr "extra's" +#: js/blocks.js:4122 +#: js/palette.js:639 +#: js/palette.js:644 +#: js/palette.js:1041 +#: js/blocks/BoxesBlocks.js:591 +msgid "store in" +msgstr "sla op in" -#: js/turtledefs.js:142 -#: js/turtledefs.js:244 -#.TRANS: program as in computer program -#.TRANS: program as in computer program -msgid "program" +#: js/blocks.js:4122 +#: js/blocks/BoxesBlocks.js:595 +#: js/blocks/DictBlocks.js:215 +#: js/blocks/DictBlocks.js:289 +#: js/blocks/EnsembleBlocks.js:391 +#: js/blocks/EnsembleBlocks.js:402 +#: js/blocks/MediaBlocks.js:746 +#: js/blocks/PitchBlocks.js:656 +#: js/blocks/PitchBlocks.js:934 +#: js/blocks/PitchBlocks.js:1866 +#: js/blocks/ProgramBlocks.js:390 +#: js/blocks/ProgramBlocks.js:495 +#: js/blocks/ProgramBlocks.js:658 +#: js/blocks/ToneBlocks.js:1025 +msgid "name" msgstr "" -#: js/turtledefs.js:143 -#: js/turtledefs.js:245 -msgid "my blocks" +#: js/blocks.js:4122 +#: js/blocks/BoxesBlocks.js:75 +#: js/blocks/BoxesBlocks.js:595 +#: js/blocks/DictBlocks.js:289 +#: js/blocks/DictBlocks.js:430 +#: js/blocks/HeapBlocks.js:544 +#: js/blocks/RhythmBlocks.js:1130 +msgid "value" +msgstr "waarde" + +#: js/blocks.js:4465 +msgid "Forever loop detected inside a note value block. Unexpected things may happen." msgstr "" -#: js/turtledefs.js:185 -#: js/turtledefs.js:281 -msgid "artwork" +#: js/blocks.js:4988 +msgid "There is no block selected." msgstr "" -#: js/turtledefs.js:185 -#: js/turtledefs.js:281 -msgid "logic" +#: js/blocks.js:5091 +#: js/blocks/MediaBlocks.js:888 +msgid "show" +msgstr "toon" + +#: js/blocks.js:5094 +#: js/blocks/MediaBlocks.js:803 +#.TRANS: Avatar is the image used to determine the appearance of the mouse. +msgid "avatar" msgstr "" -#: js/turtledefs.js:185 -#: js/turtledefs.js:281 -msgid "music" +#: js/blocks.js:5097 +#: js/blocks/ToneBlocks.js:1010 +#: js/widgets/sampler.js:975 +#.TRANS: The sound sample that the user uploads. +msgid "sample" msgstr "" -#: js/turtledefs.js:187 -#: js/turtledefs.js:463 -msgid "Music Blocks is a collection of tools for exploring fundamental musical concepts in a fun way." +#: js/lilypond.js:606 +msgid "brown rat" msgstr "" -#: js/turtledefs.js:436 -msgid "Welcome to Turtle Blocks" +#: js/lilypond.js:607 +msgid "mole" msgstr "" -#: js/turtledefs.js:438 -#: js/turtledefs.js:465 -#: js/turtledefs.js:774 -#: js/turtledefs.js:805 -msgid "The current version is" +#: js/lilypond.js:608 +msgid "chipmunk" msgstr "" -#: js/turtledefs.js:446 -#: js/turtledefs.js:483 -msgid "Click the run button to run the project in fast mode." +#: js/lilypond.js:609 +msgid "red squirrel" msgstr "" -#: js/turtledefs.js:452 -msgid "Stop the turtle." +#: js/lilypond.js:610 +msgid "guinea pig" msgstr "" -#: js/turtledefs.js:454 -#: js/turtledefs.js:491 -msgid "You can also type Alt-S to stop." +#: js/lilypond.js:611 +msgid "capybara" msgstr "" -#: js/turtledefs.js:462 -#: js/help.js:333 -msgid "Welcome to Music Blocks" +#: js/lilypond.js:612 +msgid "coypu" msgstr "" -#: js/turtledefs.js:472 -#: js/help.js:334 -msgid "Meet Mr. Mouse!" +#: js/lilypond.js:613 +msgid "black rat" msgstr "" -#: js/turtledefs.js:473 -msgid "Mr Mouse is our Music Blocks conductor." +#: js/lilypond.js:614 +msgid "grey squirrel" msgstr "" -#: js/turtledefs.js:475 -msgid "Mr Mouse encourages you to explore Music Blocks." +#: js/lilypond.js:615 +msgid "flying squirrel" msgstr "" -#: js/turtledefs.js:477 -msgid "Let us start our tour!" +#: js/lilypond.js:616 +msgid "bat" msgstr "" -#: js/turtledefs.js:489 -msgid "Stop the music (and the mice)." +#: js/lilypond.js:749 +#: js/lilypond.js:913 +#: js/lilypond.js:951 +#: js/blocks/ActionBlocks.js:1256 +#: js/blocks/ExtrasBlocks.js:556 +msgid "start drum" msgstr "" -#: js/turtledefs.js:499 -msgid "Record your project as video." +#: js/logo.js:61 +msgid "Not a valid pitch name" msgstr "" -#: js/turtledefs.js:505 -msgid "Toggle Fullscreen mode." +#: js/logo.js:507 +#: js/blocks/ProgramBlocks.js:258 +#: js/blocks/ProgramBlocks.js:427 +msgid "You must select a file." msgstr "" -#: js/turtledefs.js:511 -msgid "Initialize a new project." +#: js/logo.js:1696 +msgid "Playback is ready." msgstr "" -#: js/turtledefs.js:517 -msgid "You can also load projects from the file system." +#: js/macros.js:711 +#: js/utils/musicutils.js:1162 +#: js/utils/synthutils.js:202 +#.TRANS: animal sound effect +msgid "duck" msgstr "" -#: js/turtledefs.js:522 -#: js/StringHelper.js:46 -msgid "Delete" +#: js/notation.js:353 +msgid "Lilypond cannot process pickup of " msgstr "" -#: js/turtledefs.js:523 -msgid "To delete a block, just right-click on it, then you will be able to see the delete option" +#: js/palette.js:571 +msgid "grid" +msgstr "Rooster" + +#: js/palette.js:580 +msgid "effect" msgstr "" -#: js/turtledefs.js:528 -#: js/activity.js:2270 -#: js/LocalCard.js:31 -msgid "Copy" -msgstr "Kopieer" +#: js/palette.js:586 +msgid "sargam" +msgstr "" -#: js/turtledefs.js:529 -msgid "To copy a block, just right-click on it, then you will be able to see the copy option" +#: js/palette.js:601 +#: js/blocks/PitchBlocks.js:1209 +msgid "custom pitch" msgstr "" -#: js/turtledefs.js:535 -msgid "To extract a block, just right-click on it, then you will be able to see the extract option" +#: js/palette.js:609 +msgid "accidental" msgstr "" -#: js/turtledefs.js:542 -#: js/turtledefs.js:552 -#: js/turtledefs.js:573 -msgid "Save your project to a file." +#: js/palette.js:633 +#: js/blocks/PitchBlocks.js:405 +msgid "pitch converter" msgstr "" -#: js/turtledefs.js:549 -#: js/turtledefs.js:570 -msgid "save" +#: js/piemenus.js:200 +#: js/utils/musicutils.js:1187 +#: js/utils/musicutils.js:1207 +#: js/widgets/musickeyboard.js:2341 +#: js/widgets/phrasemaker.js:1908 +#: js/widgets/sampler.js:810 +#.TRANS: double sharp is a music term related to pitch +msgid "double sharp" msgstr "" -#: js/turtledefs.js:556 -#: js/turtledefs.js:577 -msgid "Save graphics from your project to as SVG." +#: js/piemenus.js:201 +#: js/utils/musicutils.js:1185 +#: js/utils/musicutils.js:1208 +#: js/blocks/PitchBlocks.js:1539 +#: js/turtleactions/PitchActions.js:323 +#: js/widgets/musickeyboard.js:2342 +#: js/widgets/phrasemaker.js:1909 +#: js/widgets/sampler.js:811 +#.TRANS: sharp is a music term related to pitch +#.TRANS: sharp is a half-step up in pitch +msgid "sharp" msgstr "" -#: js/turtledefs.js:560 -#: js/turtledefs.js:581 -msgid "Save graphics from your project as PNG." +#: js/piemenus.js:202 +#: js/utils/musicutils.js:1183 +#: js/utils/musicutils.js:1209 +#: js/widgets/musickeyboard.js:2343 +#: js/widgets/phrasemaker.js:1910 +#: js/widgets/sampler.js:812 +#.TRANS: natural is a music term related to pitch +msgid "natural" msgstr "" -#: js/turtledefs.js:564 -#: js/turtledefs.js:597 -msgid "Save block artwork as an SVG file." +#: js/piemenus.js:203 +#: js/utils/musicutils.js:1181 +#: js/utils/musicutils.js:1210 +#: js/blocks/PitchBlocks.js:1498 +#: js/turtleactions/PitchActions.js:326 +#: js/widgets/musickeyboard.js:2344 +#: js/widgets/phrasemaker.js:1911 +#: js/widgets/sampler.js:813 +#.TRANS: flat is a music term related to pitch +#.TRANS: flat is a half-step down in pitch +msgid "flat" msgstr "" -#: js/turtledefs.js:585 -msgid "Save audio from your project as WAV." +#: js/piemenus.js:204 +#: js/utils/musicutils.js:1179 +#: js/utils/musicutils.js:1211 +#: js/widgets/musickeyboard.js:2345 +#: js/widgets/phrasemaker.js:1912 +#: js/widgets/sampler.js:814 +#.TRANS: double flat is a music term related to pitch +msgid "double flat" msgstr "" -#: js/turtledefs.js:589 -msgid "Save your project to as an ABC file." +#: js/piemenus.js:2864 +#: js/utils/musicutils.js:1006 +#: js/blocks/PitchBlocks.js:1385 +#.TRANS: unison is a music term related to intervals +#.TRANS: unison means the note is the same as the current note +msgid "unison" msgstr "" -#: js/turtledefs.js:593 -msgid "Save your project to as a Lilypond file." +#: js/piemenus.js:3018 +#: js/piemenus.js:3091 +#: js/utils/musicutils.js:1014 +#: js/utils/musicutils.js:1189 +#: js/utils/musicutils.js:1326 +#.TRANS: major is a music term related to intervals and mode +msgid "major" msgstr "" -#: js/turtledefs.js:604 -msgid "Load samples from server" +#: js/piemenus.js:3018 +#: js/piemenus.js:3091 +#: js/utils/musicutils.js:1032 +#.TRANS: modal scale for music +msgid "ionian" msgstr "" -#: js/turtledefs.js:605 -msgid "This button opens a viewer for loading example projects." +#: js/piemenus.js:3020 +#: js/piemenus.js:3095 +#: js/utils/musicutils.js:1012 +#: js/utils/musicutils.js:1190 +#: js/utils/musicutils.js:1323 +#.TRANS: minor is a music term related to intervals and mode +msgid "minor" msgstr "" -#: js/turtledefs.js:611 -msgid "Palette buttons" +#: js/piemenus.js:3020 +#: js/piemenus.js:3095 +#: js/utils/musicutils.js:1042 +#.TRANS: modal scale for music +msgid "aeolian" msgstr "" -#: js/turtledefs.js:612 -msgid "This toolbar contains the palette buttons including Rhythm Pitch Tone Action and more." +#: js/piemenus.js:3410 +msgid "Duplicate" msgstr "" -#: js/turtledefs.js:614 -msgid "Click to show the palettes of blocks and drag blocks from the palettes onto the canvas to use them." +#: js/piemenus.js:3412 +msgid "Move to trash" msgstr "" -#: js/turtledefs.js:620 -msgid "Cartesian/Polar" +#: js/piemenus.js:3413 +#: js/widgets/timbre.js:968 +#: planet/js/StringHelper.js:69 +msgid "Close" msgstr "" -#: js/turtledefs.js:621 -msgid "Show or hide a coordinate grid." -msgstr "" +#: js/piemenus.js:3419 +msgid "Save stack" +msgstr "Opslaan stapel" -#: js/turtledefs.js:627 -msgid "Clear the screen and return the mice to their initial positions." +#: js/piemenus.js:3449 +msgid "In order to copy a sample, you must reload the widget, import the sample again, and export it." msgstr "" -#: js/turtledefs.js:633 -msgid "Collapse the graphics window." +#: js/piemenus.js:3812 +msgid "You have chosen key " msgstr "" -#: js/turtledefs.js:638 -#: js/activity.js:4256 -#: js/activity.js:4256 -msgid "Home" +#: js/piemenus.js:3816 +msgid " for your pitch preview." msgstr "" -#: js/turtledefs.js:639 -msgid "Return all blocks to the center of the screen." +#: js/turtle-singer.js:1363 +#.TRANS: partials are weighted components in a harmonic series +msgid "You must have at least one Partial block inside of a Weighted-partial block" msgstr "" -#: js/turtledefs.js:644 -msgid "Show/hide blocks" -msgstr "Toon/verberg blokken" +#: js/turtle-singer.js:2077 +msgid "synth cannot play chords." +msgstr "" -#: js/turtledefs.js:645 -msgid "Hide or show the blocks and the palettes." +#: js/utils/musicutils.js:505 +#: js/utils/musicutils.js:645 +#: js/widgets/pitchdrummatrix.js:228 +#: js/widgets/musickeyboard.js:2885 +msgid "rest" msgstr "" -#: js/turtledefs.js:650 -msgid "Expand/collapse collapsable blocks" +#: js/utils/musicutils.js:689 +msgid "Perfect unison" msgstr "" -#: js/turtledefs.js:651 -msgid "Expand or collapse start and action stacks." +#: js/utils/musicutils.js:689 +msgid "Diminished second" msgstr "" -#: js/turtledefs.js:658 -#: js/activity.js:4265 -msgid "Decrease block size" +#: js/utils/musicutils.js:690 +msgid "Minor second" msgstr "" -#: js/turtledefs.js:659 -msgid "Decrease the size of the blocks." +#: js/utils/musicutils.js:690 +msgid "Augmented unison" msgstr "" -#: js/turtledefs.js:664 -#: js/activity.js:4267 -msgid "Increase block size" +#: js/utils/musicutils.js:691 +msgid "Major second" msgstr "" -#: js/turtledefs.js:665 -msgid "Increase the size of the blocks." +#: js/utils/musicutils.js:691 +msgid "Diminished third" msgstr "" -#: js/turtledefs.js:670 -msgid "Expand/collapse option toolbar" +#: js/utils/musicutils.js:692 +msgid "Minor third" msgstr "" -#: js/turtledefs.js:671 -msgid "Click this button to expand or collapse the auxillary toolbar." +#: js/utils/musicutils.js:692 +msgid "Augmented second" msgstr "" -#: js/turtledefs.js:676 -msgid "Run slow" +#: js/utils/musicutils.js:693 +msgid "Major third" msgstr "" -#: js/turtledefs.js:677 -msgid "Click to run the project in slow mode." +#: js/utils/musicutils.js:693 +msgid "Diminished fourth" msgstr "" -#: js/turtledefs.js:683 -msgid "Click to run the project step by step." +#: js/utils/musicutils.js:694 +msgid "Perfect fourth" msgstr "" -#: js/turtledefs.js:690 -msgid "Display statistics about your Music project." +#: js/utils/musicutils.js:694 +msgid "Augmented third" msgstr "" -#: js/turtledefs.js:697 -msgid "Delete a selected plugin." +#: js/utils/musicutils.js:695 +msgid "Diminished fifth" msgstr "" -#: js/turtledefs.js:704 -msgid "Enable scrolling" +#: js/utils/musicutils.js:695 +msgid "Augmented fourth" msgstr "" -#: js/turtledefs.js:705 -msgid "You can scroll the blocks on the canvas." +#: js/utils/musicutils.js:696 +msgid "Perfect fifth" msgstr "" -#: js/turtledefs.js:714 -msgid "Wrap Turtle" +#: js/utils/musicutils.js:696 +msgid "Diminished sixth" msgstr "" -#: js/turtledefs.js:715 -msgid "Turn Turtle wrapping On or Off." +#: js/utils/musicutils.js:697 +msgid "Minor sixth" msgstr "" -#: js/turtledefs.js:725 -msgid "Restore blocks from the trash." +#: js/utils/musicutils.js:697 +msgid "Augmented fifth" msgstr "" -#: js/turtledefs.js:732 -msgid "Switch mode" +#: js/utils/musicutils.js:698 +msgid "Major sixth" msgstr "" -#: js/turtledefs.js:733 -msgid "Switch between beginner and advance modes." +#: js/utils/musicutils.js:698 +msgid "Diminished seventh" msgstr "" -#: js/turtledefs.js:739 -msgid "Select your language preference." +#: js/utils/musicutils.js:699 +msgid "Minor seventh" msgstr "" -#: js/turtledefs.js:745 -msgid "Keyboard shortcuts" +#: js/utils/musicutils.js:699 +msgid "Augmented sixth" msgstr "" -#: js/turtledefs.js:746 -msgid "You can type d to create a do block and r to create a re block etc." +#: js/utils/musicutils.js:700 +msgid "Major seventh" msgstr "" -#: js/turtledefs.js:753 -msgid "Show these messages." +#: js/utils/musicutils.js:700 +msgid "Diminished octave" msgstr "" -#: js/turtledefs.js:759 -#: js/turtledefs.js:790 -#: js/help.js:335 -msgid "Guide" +#: js/utils/musicutils.js:701 +msgid "Perfect octave" msgstr "" -#: js/turtledefs.js:760 -msgid "A detailed guide to Turtle Blocks is available." +#: js/utils/musicutils.js:701 +msgid "Augmented seventh" msgstr "" -#: js/turtledefs.js:764 -msgid "Turtle Blocks Guide" +#: js/utils/musicutils.js:702 +msgid "Minor ninth" msgstr "" -#: js/turtledefs.js:767 -#: js/turtledefs.js:798 -#: js/help.js:336 -msgid "About" +#: js/utils/musicutils.js:702 +msgid "Augmented octave" msgstr "" -#: js/turtledefs.js:768 -msgid "Turtle Blocks is an open source collection of tools for exploring musical concepts." +#: js/utils/musicutils.js:703 +msgid "Major ninth" msgstr "" -#: js/turtledefs.js:770 -msgid "A full list of contributors can be found in the Turtle Blocks GitHub repository." +#: js/utils/musicutils.js:703 +msgid "Diminished tenth" msgstr "" -#: js/turtledefs.js:772 -msgid "Turtle Blocks is licensed under the AGPL." +#: js/utils/musicutils.js:704 +msgid "Minor tenth" msgstr "" -#: js/turtledefs.js:780 -msgid "Turtle Blocks GitHub repository" +#: js/utils/musicutils.js:704 +msgid "Augmented ninth" msgstr "" -#: js/turtledefs.js:783 -#: js/turtledefs.js:814 -#: js/help.js:337 -#: js/help.js:359 -msgid "Congratulations." +#: js/utils/musicutils.js:705 +msgid "Major tenth" msgstr "" -#: js/turtledefs.js:784 -msgid "You have finished the tour. Please enjoy Turtle Blocks!" +#: js/utils/musicutils.js:705 +msgid "Diminished eleventh" msgstr "" -#: js/turtledefs.js:791 -msgid "A detailed guide to Music Blocks is available." +#: js/utils/musicutils.js:706 +msgid "Perfect eleventh" msgstr "" -#: js/turtledefs.js:795 -#: js/SaveInterface.js:76 -msgid "Music Blocks Guide" +#: js/utils/musicutils.js:706 +msgid "Augmented tenth" msgstr "" -#: js/turtledefs.js:799 -msgid "Music Blocks is an open source collection of tools for exploring musical concepts." +#: js/utils/musicutils.js:707 +msgid "Diminished twelfth" msgstr "" -#: js/turtledefs.js:801 -msgid "A full list of contributors can be found in the Music Blocks GitHub repository." +#: js/utils/musicutils.js:707 +msgid "Augmented eleventh" msgstr "" -#: js/turtledefs.js:803 -msgid "Music Blocks is licensed under the AGPL." +#: js/utils/musicutils.js:708 +msgid "Perfect twelfth" msgstr "" -#: js/turtledefs.js:811 -msgid "Music Blocks GitHub repository" +#: js/utils/musicutils.js:708 +msgid "Diminished thirteenth" msgstr "" -#: js/turtledefs.js:815 -msgid "You have finished the tour. Please enjoy Music Blocks!" +#: js/utils/musicutils.js:709 +msgid "Minor thirteenth" msgstr "" -#: js/activity.js:369 -msgid "Search for blocks" +#: js/utils/musicutils.js:709 +msgid "Augmented fifth, plus an octave" msgstr "" -#: js/activity.js:1145 -msgid "Refresh your browser to change to advanced mode." +#: js/utils/musicutils.js:710 +msgid "Major thirteenth" msgstr "" -#: js/activity.js:1150 -msgid "Refresh your browser to change to beginner mode." +#: js/utils/musicutils.js:710 +msgid "Diminished seventh, plus an octave" msgstr "" -#: js/activity.js:1184 -msgid "Catching mice" +#: js/utils/musicutils.js:838 +#.TRANS: ordinal number. Please keep exactly one space between each number. +msgid "1st 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th" msgstr "" -#: js/activity.js:1185 -msgid "Cleaning the instruments" +#: js/utils/musicutils.js:1008 +#: js/utils/musicutils.js:1191 +#: js/utils/musicutils.js:1325 +#.TRANS: augmented is a music term related to intervals +msgid "augmented" msgstr "" -#: js/activity.js:1186 -msgid "Testing key pieces" +#: js/utils/musicutils.js:1010 +#: js/utils/musicutils.js:1192 +#: js/utils/musicutils.js:1324 +#.TRANS: diminished is a music term related to intervals and mode +msgid "diminished" msgstr "" -#: js/activity.js:1187 -msgid "Sight-reading" +#: js/utils/musicutils.js:1016 +#: js/utils/musicutils.js:1322 +#: js/blocks/IntervalsBlocks.js:649 +#: js/turtleactions/IntervalsActions.js:120 +#: js/turtleactions/IntervalsActions.js:124 +#.TRANS: perfect is a music term related to intervals +msgid "perfect" msgstr "" -#: js/activity.js:1188 -msgid "Combining math and music" +#: js/utils/musicutils.js:1018 +#.TRANS: twelve semi-tone scale for music +msgid "chromatic" msgstr "" -#: js/activity.js:1189 -msgid "Generating more blocks" +#: js/utils/musicutils.js:1019 +msgid "algerian" msgstr "" -#: js/activity.js:1190 -msgid "Do Re Mi Fa Sol La Ti Do" +#: js/utils/musicutils.js:1020 +msgid "spanish" msgstr "" -#: js/activity.js:1191 -msgid "Tuning string instruments" +#: js/utils/musicutils.js:1022 +#.TRANS: modal scale in music +msgid "octatonic" msgstr "" -#: js/activity.js:1192 -msgid "Pressing random keys" +#: js/utils/musicutils.js:1024 +#.TRANS: harmonic major scale in music +msgid "harmonic major" msgstr "" -#: js/activity.js:1351 -msgid "plugins will be removed upon restart." +#: js/utils/musicutils.js:1026 +#.TRANS: natural minor scales in music +msgid "natural minor" msgstr "" -#: js/activity.js:1360 -msgid "show Cartesian" +#: js/utils/musicutils.js:1028 +#.TRANS: harmonic minor scale in music +msgid "harmonic minor" msgstr "" -#: js/activity.js:1842 -msgid "output tools" +#: js/utils/musicutils.js:1030 +#.TRANS: melodic minor scale in music +msgid "melodic minor" msgstr "" -#: js/activity.js:1845 -msgid "custom note" +#: js/utils/musicutils.js:1034 +#.TRANS: modal scale for music +msgid "dorian" msgstr "" -#: js/activity.js:1848 -msgid "accidental name" +#: js/utils/musicutils.js:1036 +#.TRANS: modal scale for music +msgid "phrygian" msgstr "" -#: js/activity.js:1851 -#: js/PitchBlocks.js:855 -msgid "east indian solfege" +#: js/utils/musicutils.js:1038 +#.TRANS: modal scale for music +msgid "lydian" msgstr "" -#: js/activity.js:1854 -#: js/PitchBlocks.js:869 -msgid "note name" +#: js/utils/musicutils.js:1040 +#.TRANS: modal scale for music +msgid "mixolydian" msgstr "" -#: js/activity.js:1857 -#: js/IntervalsBlocks.js:94 -msgid "temperament name" +#: js/utils/musicutils.js:1044 +#.TRANS: modal scale for music +msgid "locrian" msgstr "" -#: js/activity.js:1863 -msgid "chord name" +#: js/utils/musicutils.js:1046 +#.TRANS: minor jazz scale for music +msgid "jazz minor" msgstr "" -#: js/activity.js:1869 -msgid "filter type" +#: js/utils/musicutils.js:1048 +#.TRANS: bebop scale for music +msgid "bebop" msgstr "" -#: js/activity.js:1872 -msgid "oscillator type" +#: js/utils/musicutils.js:1049 +msgid "arabic" msgstr "" -#: js/activity.js:1878 -#: js/DrumBlocks.js:32 -msgid "noise name" +#: js/utils/musicutils.js:1050 +msgid "byzantine" msgstr "" -#: js/activity.js:1881 -#: js/DrumBlocks.js:75 -msgid "drum name" +#: js/utils/musicutils.js:1052 +#.TRANS: musical scale for music by Verdi +msgid "enigmatic" msgstr "" -#: js/activity.js:1884 -#: js/DrumBlocks.js:119 -msgid "effects name" +#: js/utils/musicutils.js:1053 +msgid "ethiopian" msgstr "" -#: js/activity.js:1887 -msgid "wrap mode" +#: js/utils/musicutils.js:1055 +#.TRANS: Ethiopic scale for music +msgid "geez" msgstr "" -#: js/activity.js:1890 -msgid "load file" +#: js/utils/musicutils.js:1056 +msgid "hindu" msgstr "" -#: js/activity.js:2056 -msgid "This block is deprecated." +#: js/utils/musicutils.js:1057 +msgid "hungarian" msgstr "" -#: js/activity.js:2058 -msgid "Block cannot be found." +#: js/utils/musicutils.js:1059 +#.TRANS: minor Romanian scale for music +msgid "romanian minor" msgstr "" -#: js/activity.js:2266 -msgid "Saving block artwork" +#: js/utils/musicutils.js:1060 +msgid "spanish gypsy" msgstr "" -#: js/activity.js:2277 -msgid "Erase" +#: js/utils/musicutils.js:1062 +#.TRANS: musical scale for Mid-Eastern music +msgid "maqam" msgstr "" -#: js/activity.js:2301 -#: js/activity.js:2323 -msgid "Paste" -msgstr "Plak" +#: js/utils/musicutils.js:1064 +#.TRANS: minor blues scale for music +msgid "minor blues" +msgstr "" -#: js/activity.js:2305 -msgid "Save block help" +#: js/utils/musicutils.js:1066 +#.TRANS: major blues scale for music +msgid "major blues" msgstr "" -#: js/activity.js:2390 -msgid "Jumping to the bottom of the page." +#: js/utils/musicutils.js:1067 +msgid "whole tone" msgstr "" -#: js/activity.js:2396 -msgid "Scrolling up." +#: js/utils/musicutils.js:1069 +#.TRANS: pentatonic is a general term that means "five note scale". This scale is typically known as "minor pentatonic" +msgid "minor pentatonic" msgstr "" -#: js/activity.js:2401 -msgid "Scrolling down." +#: js/utils/musicutils.js:1071 +#.TRANS: pentatonic is a general term that means "five note scale". This scale is typically known as "major pentatonic" +msgid "major pentatonic" msgstr "" -#: js/activity.js:2406 -msgid "Extracting block" +#: js/utils/musicutils.js:1072 +msgid "chinese" msgstr "" -#: js/activity.js:2414 -msgid "Moving block up." +#: js/utils/musicutils.js:1073 +msgid "egyptian" msgstr "" -#: js/activity.js:2435 -msgid "Moving block down." +#: js/utils/musicutils.js:1075 +#.TRANS: https://en.wikipedia.org/wiki/Hirajoshi_scale NOTE: There are three different versions of this scale +msgid "hirajoshi" msgstr "" -#: js/activity.js:2456 -msgid "Moving block left." +#: js/utils/musicutils.js:1076 +msgid "Japan" msgstr "" -#: js/activity.js:2473 -msgid "Moving block right." +#: js/utils/musicutils.js:1078 +#.TRANS: https://en.wikipedia.org/wiki/In_scale and https://en.wikipedia.org/wiki/Sakura_Sakura +msgid "in" msgstr "" -#: js/activity.js:2488 -msgid "Jump to home position." +#: js/utils/musicutils.js:1080 +#.TRANS: https://en.wikipedia.org/wiki/Miny%C5%8D_scale +msgid "minyo" msgstr "" -#: js/activity.js:2515 -msgid "Hide blocks" +#: js/utils/musicutils.js:1082 +#.TRANS: Italian mathematician +msgid "fibonacci" msgstr "" -#: js/activity.js:3389 -msgid "Click the run button to run the project." +#: js/utils/musicutils.js:1083 +#: js/utils/musicutils.js:1134 +#: js/utils/musicutils.js:1177 +#: js/utils/musicutils.js:1199 +#: js/utils/synthutils.js:134 +#: js/blocks/IntervalsBlocks.js:1124 +#: js/blocks/ToneBlocks.js:946 +#: js/blocks/VolumeBlocks.js:411 +#: js/blocks/WidgetBlocks.js:399 +#: js/blocks/WidgetBlocks.js:404 +#: js/turtleactions/VolumeActions.js:218 +#: js/widgets/modewidget.js:919 +#.TRANS: customize voice +msgid "custom" msgstr "" -#: js/activity.js:3456 -#: js/SaveInterface.js:131 -#: js/SaveInterface.js:204 -#: js/SaveInterface.js:262 -#: js/SaveInterface.js:389 -#: js/SaveInterface.js:417 -#: js/ProjectStorage.js:27 -#: js/GlobalPlanet.js:467 -#: js/GlobalPlanet.js:469 -#: js/GlobalPlanet.js:495 -#.TRANS: default project title when saving as Lilypond -msgid "My Project" +#: js/utils/musicutils.js:1085 +#: js/utils/musicutils.js:1531 +#: js/blocks/WidgetBlocks.js:176 +#.TRANS: highpass filter +msgid "highpass" msgstr "" -#: js/activity.js:4261 -msgid "Show/hide block" +#: js/utils/musicutils.js:1087 +#: js/utils/musicutils.js:1532 +#.TRANS: lowpass filter +msgid "lowpass" msgstr "" -#: js/activity.js:4263 -msgid "Expand/collapse blocks" +#: js/utils/musicutils.js:1089 +#: js/utils/musicutils.js:1533 +#.TRANS: bandpass filter +msgid "bandpass" msgstr "" -#: js/activity.js:4381 -msgid "Could not parse JSON input." +#: js/utils/musicutils.js:1091 +#: js/utils/musicutils.js:1534 +#.TRANS: high-shelf filter +msgid "highshelf" msgstr "" -#: js/activity.js:4684 -#: js/activity.js:4771 -#: js/activity.js:4821 -msgid "Cannot load project from the file. Please check the file type." +#: js/utils/musicutils.js:1093 +#: js/utils/musicutils.js:1535 +#.TRANS: low-shelf filter +msgid "lowshelf" msgstr "" -#: js/activity.js:5051 -msgid "Invalid parameters" +#: js/utils/musicutils.js:1095 +#: js/utils/musicutils.js:1536 +#.TRANS: notch-shelf filter +msgid "notch" msgstr "" -#: js/turtle-singer.js:1334 -#.TRANS: partials are weighted components in a harmonic series -msgid "You must have at least one Partial block inside of a Weighted-partial block" +#: js/utils/musicutils.js:1097 +#: js/utils/musicutils.js:1537 +#.TRANS: all-pass filter +msgid "allpass" msgstr "" -#: js/turtle-singer.js:2048 -msgid "synth cannot play chords." +#: js/utils/musicutils.js:1099 +#: js/utils/musicutils.js:1538 +#.TRANS: peaking filter +msgid "peaking" msgstr "" -#: js/lilypond.js:614 -msgid "brown rat" +#: js/utils/musicutils.js:1100 +#: js/utils/musicutils.js:1546 +#: js/utils/synthutils.js:126 +#: js/blocks/PitchBlocks.js:85 +#.TRANS: sine wave +msgid "sine" msgstr "" -#: js/lilypond.js:615 -msgid "mole" +#: js/utils/musicutils.js:1101 +#: js/utils/musicutils.js:1547 +#: js/utils/synthutils.js:128 +#: js/blocks/PitchBlocks.js:39 +#.TRANS: square wave +msgid "square" msgstr "" -#: js/lilypond.js:616 -msgid "chipmunk" +#: js/utils/musicutils.js:1102 +#: js/utils/musicutils.js:1548 +#: js/utils/synthutils.js:132 +#: js/blocks/PitchBlocks.js:62 +#: js/blocks/ToneBlocks.js:39 +#.TRANS: triangle wave +msgid "triangle" msgstr "" -#: js/lilypond.js:617 -msgid "red squirrel" +#: js/utils/musicutils.js:1103 +#: js/utils/musicutils.js:1549 +#: js/utils/synthutils.js:130 +#: js/blocks/PitchBlocks.js:108 +#.TRANS: sawtooth wave +msgid "sawtooth" msgstr "" -#: js/lilypond.js:618 -msgid "guinea pig" +#: js/utils/musicutils.js:1105 +#: js/utils/musicutils.js:1312 +#: js/blocks/PitchBlocks.js:931 +#: js/blocks/PitchBlocks.js:937 +#: js/turtleactions/PitchActions.js:469 +#.TRANS: even numbers +#.TRANS: invert based on even or odd number or musical scale +msgid "even" msgstr "" -#: js/lilypond.js:619 -msgid "capybara" +#: js/utils/musicutils.js:1107 +#: js/utils/musicutils.js:1313 +#: js/blocks/PitchBlocks.js:937 +#: js/turtleactions/PitchActions.js:471 +#.TRANS: odd numbers +msgid "odd" msgstr "" -#: js/lilypond.js:620 -msgid "coypu" +#: js/utils/musicutils.js:1108 +#: js/utils/musicutils.js:1314 +#: js/blocks/PitchBlocks.js:937 +#: js/turtleactions/PitchActions.js:473 +msgid "scalar" msgstr "" -#: js/lilypond.js:621 -msgid "black rat" +#: js/utils/musicutils.js:1109 +#: js/utils/synthutils.js:72 +#: js/blocks/VolumeBlocks.js:47 +#.TRANS: musical instrument +msgid "piano" msgstr "" -#: js/lilypond.js:622 -msgid "grey squirrel" +#: js/utils/musicutils.js:1110 +#: js/utils/synthutils.js:74 +#.TRANS: musical instrument +msgid "violin" msgstr "" -#: js/lilypond.js:623 -msgid "flying squirrel" +#: js/utils/musicutils.js:1111 +#: js/utils/synthutils.js:76 +#.TRANS: viola musical instrument +msgid "viola" msgstr "" -#: js/lilypond.js:624 -msgid "bat" +#: js/utils/musicutils.js:1112 +#: js/utils/synthutils.js:114 +#.TRANS: xylophone musical instrument +msgid "xylophone" msgstr "" -#: js/lilypond.js:757 -#: js/lilypond.js:921 -#: js/lilypond.js:959 -#: js/ActionBlocks.js:1256 -#: js/ExtrasBlocks.js:553 -msgid "start drum" +#: js/utils/musicutils.js:1113 +#: js/utils/synthutils.js:136 +#.TRANS: vibraphone musical instrument +msgid "vibraphone" msgstr "" -#: js/SaveInterface.js:59 -#: js/SaveInterface.js:61 -#: js/SaveInterface.js:93 -msgid "Music Blocks Project" +#: js/utils/musicutils.js:1114 +#: js/utils/synthutils.js:78 +#.TRANS: musical instrument +msgid "cello" msgstr "" -#: js/SaveInterface.js:63 -msgid "This project was created in Music Blocks" +#: js/utils/musicutils.js:1116 +#: js/utils/synthutils.js:82 +#.TRANS: viola musical instrument +msgid "double bass" msgstr "" -#: js/SaveInterface.js:67 -msgid "Music Blocks is a Free/Libre Software application." +#: js/utils/musicutils.js:1117 +#: js/utils/synthutils.js:84 +#: js/widgets/rhythmruler.js:2511 +#.TRANS: musical instrument +msgid "guitar" msgstr "" -#: js/SaveInterface.js:69 -msgid "The source code can be accessed at" +#: js/utils/musicutils.js:1118 +#: js/utils/synthutils.js:86 +#.TRANS: musical instrument +msgid "acoustic guitar" msgstr "" -#: js/SaveInterface.js:72 -msgid "For more information, please consult the" +#: js/utils/musicutils.js:1119 +#: js/utils/synthutils.js:88 +#.TRANS: musical instrument +msgid "flute" msgstr "" -#: js/SaveInterface.js:83 -msgid "Alternatively, open the file in Music Blocks using the Load project button." +#: js/utils/musicutils.js:1120 +#: js/utils/synthutils.js:90 +#.TRANS: musical instrument +msgid "clarinet" msgstr "" -#: js/SaveInterface.js:85 -msgid "Project Code" +#: js/utils/musicutils.js:1121 +#: js/utils/synthutils.js:92 +#.TRANS: musical instrument +msgid "saxophone" msgstr "" -#: js/SaveInterface.js:87 -msgid "This code stores data about the blocks in a project." +#: js/utils/musicutils.js:1122 +#: js/utils/synthutils.js:94 +#.TRANS: musical instrument +msgid "tuba" msgstr "" -#: js/SaveInterface.js:89 -msgid "Show" +#: js/utils/musicutils.js:1123 +#: js/utils/synthutils.js:96 +#.TRANS: musical instrument +msgid "trumpet" msgstr "" -#: js/SaveInterface.js:91 -msgid "Hide" +#: js/utils/musicutils.js:1124 +#: js/utils/synthutils.js:98 +#.TRANS: musical instrument +msgid "oboe" msgstr "" -#: js/SaveInterface.js:197 -#: js/SaveInterface.js:58 -msgid "No description provided" +#: js/utils/musicutils.js:1125 +#: js/utils/synthutils.js:100 +#.TRANS: musical instrument +msgid "trombone" msgstr "" -#: js/SaveInterface.js:332 -msgid "Your recording is in progress." +#: js/utils/musicutils.js:1126 +#: js/utils/synthutils.js:116 +#.TRANS: polytone synthesizer +msgid "electronic synth" msgstr "" -#: js/SaveInterface.js:401 -#.TRANS: File name prompt for save as Lilypond -msgid "File name" +#: js/utils/musicutils.js:1127 +#: js/utils/synthutils.js:118 +#.TRANS: simple monotone synthesizer +msgid "simple 1" msgstr "" -#: js/SaveInterface.js:403 -#: js/StringHelper.js:39 -#.TRANS: Project title prompt for save as Lilypond -msgid "Project title" +#: js/utils/musicutils.js:1128 +msgid "simple 2" msgstr "" -#: js/SaveInterface.js:405 -#.TRANS: Project title prompt for save as Lilypond -msgid "Project author" +#: js/utils/musicutils.js:1129 +msgid "simple 3" msgstr "" -#: js/SaveInterface.js:407 -#.TRANS: MIDI prompt for save as Lilypond -msgid "Include MIDI output?" +#: js/utils/musicutils.js:1130 +msgid "simple 4" msgstr "" -#: js/SaveInterface.js:409 -#.TRANS: Guitar prompt for save as Lilypond -msgid "Include guitar tablature output?" +#: js/utils/musicutils.js:1131 +#: js/utils/synthutils.js:58 +#: js/blocks/DrumBlocks.js:191 +#.TRANS: white noise synthesizer +msgid "white noise" msgstr "" -#: js/SaveInterface.js:411 -#.TRANS: Lilypond is a scripting language for generating sheet music -msgid "Save as Lilypond" +#: js/utils/musicutils.js:1132 +#: js/utils/synthutils.js:60 +#.TRANS: brown noise synthesizer +msgid "brown noise" msgstr "" -#: js/SaveInterface.js:426 -#: js/EnsembleBlocks.js:75 -#: js/EnsembleBlocks.js:154 -#: js/EnsembleBlocks.js:216 -#: js/EnsembleBlocks.js:302 -#: js/EnsembleBlocks.js:348 -#: js/EnsembleBlocks.js:389 -#: js/EnsembleBlocks.js:441 -#: js/EnsembleBlocks.js:490 -#: js/EnsembleBlocks.js:536 -#: js/EnsembleBlocks.js:583 -#: js/EnsembleBlocks.js:637 -#: js/EnsembleBlocks.js:753 -#: js/EnsembleBlocks.js:840 -#: js/EnsembleBlocks.js:899 -#: js/EnsembleBlocks.js:942 -#: js/EnsembleBlocks.js:1212 -#: js/EnsembleBlocks.js:1280 -#.TRANS: default project author when saving as Lilypond -msgid "Mr. Mouse" +#: js/utils/musicutils.js:1133 +#: js/utils/synthutils.js:62 +#.TRANS: pink noise synthesizer +msgid "pink noise" msgstr "" -#: js/SaveInterface.js:573 -msgid "The Lilypond code is copied to clipboard. You can paste it here: " +#: js/utils/musicutils.js:1135 +#: js/utils/synthutils.js:148 +#: js/widgets/rhythmruler.js:2057 +#: js/widgets/rhythmruler.js:2319 +#.TRANS: musical instrument +msgid "snare drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:50 -#: js/RhythmBlockPaletteBlocks.js:232 -#.TRANS: rhythm block -#.TRANS: translate "rhythm1" as rhythm -msgid "rhythm1" +#: js/utils/musicutils.js:1136 +#: js/utils/synthutils.js:150 +#.TRANS: musical instrument +msgid "kick drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:70 -#: js/RhythmBlockPaletteBlocks.js:251 -#: js/RhythmBlockPaletteBlocks.js:484 -#: js/RhythmBlockPaletteBlocks.js:553 -#: js/RhythmBlockPaletteBlocks.js:874 -msgid "number of notes" +#: js/utils/musicutils.js:1137 +#: js/utils/synthutils.js:152 +#.TRANS: musical instrument +msgid "tom tom" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:126 -msgid "polyphonic rhythm" +#: js/utils/musicutils.js:1138 +#: js/utils/synthutils.js:154 +#.TRANS: musical instrument +msgid "floor tom" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:218 -msgid "The Rhythm block is used to generate rhythm patterns." +#: js/utils/musicutils.js:1139 +#: js/utils/synthutils.js:156 +#.TRANS: musical instrument +msgid "bass drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:279 -msgid "1/64 note" +#: js/utils/musicutils.js:1140 +#: js/utils/synthutils.js:158 +#.TRANS: a drum made from an inverted cup +msgid "cup drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:303 -msgid "1/32 note" +#: js/utils/musicutils.js:1141 +#: js/utils/synthutils.js:160 +#.TRANS: musical instrument +msgid "darbuka drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:331 -msgid "1/16 note" +#: js/utils/musicutils.js:1142 +#: js/utils/synthutils.js:164 +#.TRANS: musical instrument +msgid "hi hat" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:359 -msgid "eighth note" +#: js/utils/musicutils.js:1143 +#: js/utils/synthutils.js:166 +#.TRANS: a small metal bell +msgid "ride bell" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:387 -msgid "quarter note" +#: js/utils/musicutils.js:1144 +#: js/utils/synthutils.js:168 +#.TRANS: musical instrument +msgid "cow bell" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:415 -msgid "half note" +#: js/utils/musicutils.js:1145 +msgid "japanese drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:443 -msgid "whole note" +#: js/utils/musicutils.js:1146 +#: js/utils/synthutils.js:174 +#.TRANS: musical instrument +msgid "japanese bell" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:481 -#: js/RhythmBlockPaletteBlocks.js:550 -#: js/RhythmBlockPaletteBlocks.js:601 -#.TRANS: A tuplet is a note value divided into irregular time values. -msgid "tuplet" +#: js/utils/musicutils.js:1147 +#: js/utils/synthutils.js:170 +#.TRANS: musical instrument +msgid "triangle bell" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:767 -msgid "septuplet" +#: js/utils/musicutils.js:1148 +#: js/utils/synthutils.js:172 +#.TRANS: musical instrument +msgid "finger cymbals" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:795 -msgid "quintuplet" +#: js/utils/musicutils.js:1149 +#: js/utils/synthutils.js:176 +#.TRANS: a musically tuned set of bells +msgid "chime" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:823 -msgid "triplet" +#: js/utils/musicutils.js:1150 +#: js/utils/synthutils.js:178 +#.TRANS: a musical instrument +msgid "gong" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:850 -msgid "simple tuplet" +#: js/utils/musicutils.js:1151 +#: js/utils/synthutils.js:180 +#.TRANS: sound effect +msgid "clang" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:860 -msgid "Tuplets are a collection of notes that get scaled to a specific duration." +#: js/utils/musicutils.js:1152 +#: js/utils/synthutils.js:182 +#.TRANS: sound effect +msgid "crash" msgstr "" -#: js/WidgetBlocks.js:71 -#.TRANS: sound envelope (ADSR) -msgid "envelope" +#: js/utils/musicutils.js:1153 +#: js/utils/synthutils.js:184 +#.TRANS: sound effect +msgid "bottle" msgstr "" -#: js/WidgetBlocks.js:79 -#.TRANS: Attack time is the time taken for initial run-up of level from nil to peak, beginning when the key is first pressed. -msgid "attack" +#: js/utils/musicutils.js:1154 +#: js/utils/synthutils.js:186 +#.TRANS: sound effect +msgid "clap" msgstr "" -#: js/WidgetBlocks.js:81 -#.TRANS: Decay time is the time taken for the subsequent run down from the attack level to the designated sustain level. -msgid "decay" +#: js/utils/musicutils.js:1155 +#: js/utils/synthutils.js:188 +#.TRANS: sound effect +msgid "slap" msgstr "" -#: js/WidgetBlocks.js:83 -#.TRANS: Sustain level is the level during the main sequence of the sound's duration, until the key is released. -msgid "sustain" +#: js/utils/musicutils.js:1156 +#: js/utils/synthutils.js:190 +#.TRANS: sound effect +msgid "splash" msgstr "" -#: js/WidgetBlocks.js:85 -#.TRANS: Release time is the time taken for the level to decay from the sustain level to zero after the key is released. -msgid "release" +#: js/utils/musicutils.js:1157 +#: js/utils/synthutils.js:192 +#.TRANS: sound effect +msgid "bubbles" msgstr "" -#: js/WidgetBlocks.js:96 -msgid "Attack value should be from 0 to 100." +#: js/utils/musicutils.js:1158 +#: js/utils/synthutils.js:194 +#.TRANS: sound effect +msgid "raindrop" msgstr "" -#: js/WidgetBlocks.js:99 -msgid "Decay value should be from 0 to 100." +#: js/utils/musicutils.js:1159 +#: js/utils/synthutils.js:196 +#.TRANS: animal sound effect +msgid "cat" msgstr "" -#: js/WidgetBlocks.js:102 -msgid "Sustain value should be from 0 to 100." +#: js/utils/musicutils.js:1160 +#: js/utils/synthutils.js:198 +#.TRANS: animal sound effect +msgid "cricket" msgstr "" -#: js/WidgetBlocks.js:105 -msgid "Release value should be from 0-100." +#: js/utils/musicutils.js:1161 +#: js/utils/synthutils.js:200 +#.TRANS: animal sound effect +msgid "dog" msgstr "" -#: js/WidgetBlocks.js:121 -msgid "You are adding multiple envelope blocks." +#: js/utils/musicutils.js:1163 +#: js/utils/synthutils.js:102 +#.TRANS: musical instrument +msgid "banjo" msgstr "" -#: js/WidgetBlocks.js:144 -#.TRANS: a filter removes some unwanted components from a signal -msgid "filter" +#: js/utils/musicutils.js:1164 +#: js/utils/synthutils.js:104 +#.TRANS: musical instrument +msgid "koto" msgstr "" -#: js/WidgetBlocks.js:149 -#: js/musicutils.js:706 -#: js/musicutils.js:1105 -#.TRANS: highpass filter -msgid "highpass" +#: js/utils/musicutils.js:1165 +#: js/utils/synthutils.js:106 +#.TRANS: musical instrument +msgid "dulcimer" msgstr "" -#: js/WidgetBlocks.js:152 -#: js/ToneBlocks.js:42 -#: js/timbre.js:1558 -#: js/timbre.js:1808 -#.TRANS: type of filter, e.g., lowpass, highpass, etc. -#.TRANS: there are different types (sine, triangle, square...) of oscillators. -msgid "type" +#: js/utils/musicutils.js:1166 +#: js/utils/synthutils.js:108 +#.TRANS: musical instrument +msgid "electric guitar" msgstr "" -#: js/WidgetBlocks.js:154 -#: js/timbre.js:1818 -#.TRANS: rolloff is the steepness of a change in frequency. -msgid "rolloff" +#: js/utils/musicutils.js:1167 +#: js/utils/synthutils.js:110 +#.TRANS: musical instrument +msgid "bassoon" msgstr "" -#: js/WidgetBlocks.js:155 -#: js/MediaBlocks.js:692 -#: js/temperament.js:382 -#: js/temperament.js:417 -#: js/temperament.js:477 -#: js/temperament.js:485 -#: js/temperament.js:1348 -#: js/timbre.js:1842 -msgid "frequency" +#: js/utils/musicutils.js:1168 +#: js/utils/synthutils.js:112 +#.TRANS: musical instrument +msgid "celeste" msgstr "" -#: js/WidgetBlocks.js:179 -#.TRANS: rolloff is the steepness of a change in frequency. -msgid "Rolloff value should be either -12, -24, -48, or -96 decibels/octave." +#: js/utils/musicutils.js:1170 +#: js/widgets/temperament.js:787 +#.TRANS: musical temperament +msgid "equal" msgstr "" -#: js/WidgetBlocks.js:211 -msgid "The Temperament tool is used to define custom tuning." +#: js/utils/musicutils.js:1172 +#.TRANS: musical temperament +msgid "Pythagorean" msgstr "" -#: js/WidgetBlocks.js:277 -#: js/sampler.js:329 -msgid "Upload a sample and adjust its pitch center." +#: js/utils/musicutils.js:1174 +#.TRANS: musical temperament +msgid "just intonation" msgstr "" -#: js/WidgetBlocks.js:284 -#.TRANS: the speed at music is should be played. -msgid "sampler" +#: js/utils/musicutils.js:1176 +#.TRANS: musical temperament +msgid "meantone" msgstr "" -#: js/WidgetBlocks.js:329 -#: js/WidgetBlocks.js:334 -#: js/IntervalsBlocks.js:928 -#: js/VolumeBlocks.js:411 -#: js/ToneBlocks.js:946 -#: js/VolumeActions.js:218 -#: js/musicutils.js:704 -#: js/musicutils.js:755 -#: js/musicutils.js:798 -#: js/musicutils.js:820 -#: js/musicutils.js:1136 -#: js/synthutils.js:118 -#: js/modewidget.js:919 -#.TRANS: customize voice -msgid "custom" +#: js/utils/musicutils.js:1193 +msgid "major 7th" msgstr "" -#: js/WidgetBlocks.js:432 -msgid "The Meter block opens a tool to select strong beats for the meter." +#: js/utils/musicutils.js:1194 +msgid "minor 7th" msgstr "" -#: js/WidgetBlocks.js:473 -msgid "The oscilloscope block opens a tool to visualize waveforms." +#: js/utils/musicutils.js:1195 +msgid "dominant 7th" msgstr "" -#: js/WidgetBlocks.js:478 -msgid "oscilloscope" +#: js/utils/musicutils.js:1196 +msgid "minor-major 7th" msgstr "" -#: js/WidgetBlocks.js:530 -msgid "The Custom mode block opens a tool to explore musical mode (the spacing of the notes in a scale)." +#: js/utils/musicutils.js:1197 +msgid "fully-diminished 7th" msgstr "" -#: js/WidgetBlocks.js:536 -#.TRANS: musical mode is the pattern of half-steps in an octave, e.g., Major or Minor modes -msgid "custom mode" +#: js/utils/musicutils.js:1198 +msgid "half-diminished 7th" msgstr "" -#: js/WidgetBlocks.js:570 -msgid "The Tempo block opens a metronome to visualize the beat." +#: js/utils/musicutils.js:1557 +#: js/utils/musicutils.js:1569 +msgid "Equal (12EDO)" msgstr "" -#: js/WidgetBlocks.js:617 -msgid "The Arpeggio Widget is used to compose chord sequences." +#: js/utils/musicutils.js:1558 +#: js/utils/musicutils.js:1570 +msgid "5-limit Just Intonation" msgstr "" -#: js/WidgetBlocks.js:623 -#: js/IntervalsBlocks.js:683 -msgid "arpeggio" +#: js/utils/musicutils.js:1559 +#: js/utils/musicutils.js:1571 +msgid "Pythagorean (3-limit JI)" msgstr "" -#: js/WidgetBlocks.js:677 -msgid "The Pitch drum matrix is used to map pitches to drum sounds." +#: js/utils/musicutils.js:1560 +#: js/utils/musicutils.js:1561 +#: js/utils/musicutils.js:1572 +#: js/utils/musicutils.js:1573 +msgid "Meantone" msgstr "" -#: js/WidgetBlocks.js:682 -#.TRANS: makes a mapping between pitches and drum sounds -msgid "pitch-drum mapper" +#: js/utils/musicutils.js:1574 +msgid "Custom" msgstr "" -#: js/WidgetBlocks.js:724 -msgid "You must have at least one pitch block and one drum block in the matrix." +#: js/utils/musicutils.js:5387 +#: js/utils/musicutils.js:5430 +msgid "current" msgstr "" -#: js/WidgetBlocks.js:746 -msgid "The Pitch slider tool to is used to generate pitches at selected frequencies." +#: js/utils/musicutils.js:5390 +#: js/utils/musicutils.js:5421 +msgid "next" msgstr "" -#: js/WidgetBlocks.js:751 -#.TRANS: widget to generate pitches using a slider -msgid "pitch slider" +#: js/utils/musicutils.js:5393 +#: js/utils/musicutils.js:5426 +msgid "previous" msgstr "" -#: js/WidgetBlocks.js:788 -msgid "chromatic keyboard" +#: js/utils/synthutils.js:120 +#.TRANS: simple monotone synthesizer +msgid "simple-2" msgstr "" -#: js/WidgetBlocks.js:815 -#: js/WidgetBlocks.js:874 -#.TRANS: widget to generate pitches using a slider -msgid "music keyboard" +#: js/utils/synthutils.js:122 +#.TRANS: simple monotone synthesizer +msgid "simple-3" msgstr "" -#: js/WidgetBlocks.js:859 -#: js/WidgetBlocks.js:866 -msgid "The Music keyboard block opens a piano keyboard that can be used to create notes." +#: js/utils/synthutils.js:124 +#.TRANS: simple monotone synthesizer +msgid "simple-4" msgstr "" -#: js/WidgetBlocks.js:910 -msgid "The Pitch staircase tool to is used to generate pitches from a given ratio." +#: js/utils/synthutils.js:162 +#.TRANS: musical instrument +msgid "taiko" msgstr "" -#: js/WidgetBlocks.js:917 -#.TRANS: generate a progressive sequence of pitches -msgid "pitch staircase" +#: js/blocks/ActionBlocks.js:58 +msgid "The Return block will return a value from an action." msgstr "" -#: js/WidgetBlocks.js:982 -msgid "The Rhythm Maker block opens a tool to create drum machines." +#: js/blocks/ActionBlocks.js:75 +msgid "return" msgstr "" -#: js/WidgetBlocks.js:1036 -msgid "G major scale" +#: js/blocks/ActionBlocks.js:128 +msgid "The Return to URL block will return a value to a webpage." msgstr "" -#: js/WidgetBlocks.js:1064 -msgid "C major scale" +#: js/blocks/ActionBlocks.js:145 +msgid "return to URL" msgstr "" -#: js/WidgetBlocks.js:1097 -msgid "The Phrase Maker block opens a tool to create musical phrases." +#: js/blocks/ActionBlocks.js:233 +#: js/blocks/ActionBlocks.js:290 +#: js/blocks/ActionBlocks.js:501 +#: js/blocks/ActionBlocks.js:688 +msgid "The Calculate block returns a value calculated by an action." msgstr "" -#: js/WidgetBlocks.js:1104 -#.TRANS: assigns pitch to a sequence of beats to generate a melody -msgid "phrase maker" +#: js/blocks/ActionBlocks.js:251 +#: js/blocks/ActionBlocks.js:517 +#: js/blocks/ActionBlocks.js:707 +msgid "calculate" msgstr "" -#: js/WidgetBlocks.js:1168 -msgid "You must have at least one pitch block and one rhythm block in the matrix." +#: js/blocks/ActionBlocks.js:376 +#: js/blocks/ActionBlocks.js:593 +#: js/blocks/ActionBlocks.js:942 +#: js/blocks/ActionBlocks.js:1389 +#.TRANS: do is the do something or take an action. +msgid "The Do block is used to initiate an action." msgstr "" -#: js/WidgetBlocks.js:1220 -msgid "The Status block opens a tool for inspecting the status of Music Blocks as it is running." +#: js/blocks/ActionBlocks.js:390 +#: js/blocks/ActionBlocks.js:610 +#: js/blocks/ActionBlocks.js:959 +#: js/blocks/ActionBlocks.js:1048 +#: js/blocks/MeterBlocks.js:769 +msgid "do1" msgstr "" -#: js/IntervalsBlocks.js:45 -msgid "set temperament" +#: js/blocks/ActionBlocks.js:390 +#: js/blocks/ActionBlocks.js:610 +#: js/blocks/ActionBlocks.js:959 +#: js/blocks/ActionBlocks.js:1048 +#: js/blocks/FlowBlocks.js:742 +#: js/blocks/FlowBlocks.js:822 +#: js/blocks/MeterBlocks.js:769 +msgid "do" msgstr "" -#: js/IntervalsBlocks.js:63 -#: js/MediaBlocks.js:746 -#: js/PitchBlocks.js:657 -#: js/PitchBlocks.js:933 -#: js/PitchBlocks.js:972 -#: js/PitchBlocks.js:1005 -#: js/PitchBlocks.js:1166 -#: js/PitchBlocks.js:1679 -#: js/PitchBlocks.js:1720 -#: js/PitchBlocks.js:1827 -#: js/ToneBlocks.js:1025 -#.TRANS: adjusts the shift up or down by one octave (twelve half-steps in the interval between two notes, one having twice or half the frequency in Hz of the other.) -msgid "octave" +#: js/blocks/ActionBlocks.js:791 +#: js/blocks/ActionBlocks.js:865 +msgid "The Arg block contains the value of an argument passed to an action." msgstr "" -#: js/IntervalsBlocks.js:99 -msgid "The Temperament name block is used to select a tuning method." +#: js/blocks/ActionBlocks.js:806 +#: js/blocks/ActionBlocks.js:878 +msgid "arg" msgstr "" -#: js/IntervalsBlocks.js:161 -msgid "doubly" +#: js/blocks/ActionBlocks.js:836 +#: js/blocks/ActionBlocks.js:900 +#: js/blocks/ActionBlocks.js:908 +msgid "Invalid argument" msgstr "" -#: js/IntervalsBlocks.js:166 -msgid "The Doubly block will double the size of an interval." +#: js/blocks/ActionBlocks.js:944 +msgid "In the example, it is used with the One of block to choose a random phase." msgstr "" -#: js/IntervalsBlocks.js:262 -msgid "interval number" +#: js/blocks/ActionBlocks.js:1019 +#: js/blocks/ActionBlocks.js:1026 +msgid "The Listen block is used to listen for an event such as a mouse click." msgstr "" -#: js/IntervalsBlocks.js:330 -#.TRANS: measure the distance between two pitches in semi-tones -msgid "semi-tone interval measure" +#: js/blocks/ActionBlocks.js:1028 +msgid "When the event happens, an action is taken." msgstr "" -#: js/IntervalsBlocks.js:397 -#: js/IntervalsBlocks.js:513 -msgid "You must use two pitch blocks when measuring an interval." +#: js/blocks/ActionBlocks.js:1045 +msgid "on" msgstr "" -#: js/IntervalsBlocks.js:439 -msgid "The Scalar interval block measures the distance between two notes in the current key and mode." +#: js/blocks/ActionBlocks.js:1048 +#: js/blocks/ActionBlocks.js:1049 +#: js/blocks/ActionBlocks.js:1153 +msgid "event" msgstr "" -#: js/IntervalsBlocks.js:445 -#.TRANS: measure the distance between two pitches in steps of musical scale -msgid "scalar interval measure" +#: js/blocks/ActionBlocks.js:1133 +msgid "The Broadcast block is used to trigger an event." msgstr "" -#: js/IntervalsBlocks.js:592 -#: js/musicutils.js:637 -#: js/musicutils.js:908 -#.TRANS: perfect is a music term related to intervals -msgid "perfect" +#: js/blocks/ActionBlocks.js:1151 +msgid "broadcast" msgstr "" -#: js/IntervalsBlocks.js:621 -msgid "In the figure, we add sol# to sol." +#: js/blocks/ActionBlocks.js:1208 +msgid "Each Start block is a separate voice." msgstr "" -#: js/IntervalsBlocks.js:627 -#: js/OrnamentBlocks.js:220 -#.TRANS: calculate a relative step between notes based on semi-tones -msgid "semi-tone interval" +#: js/blocks/ActionBlocks.js:1304 +msgid "It is often used for storing a phrase of music that is repeated." msgstr "" -#: js/IntervalsBlocks.js:676 -msgid "The output of the example is: do, mi, sol, sol, ti, mi" +#: js/blocks/ActionBlocks.js:1495 +msgid "define temperament" msgstr "" -#: js/IntervalsBlocks.js:735 -msgid "The Chord block calculates common chords." +#: js/blocks/BooleanBlocks.js:44 +msgid "The Not block is the logical not operator." msgstr "" -#: js/IntervalsBlocks.js:737 -msgid "In the figure, we generate a C-major chord." -msgstr "" +#: js/blocks/BooleanBlocks.js:62 +msgid "not" +msgstr "niet" -#: js/IntervalsBlocks.js:742 -msgid "chord" +#: js/blocks/BooleanBlocks.js:134 +msgid "The And block is the logical and operator." msgstr "" -#: js/IntervalsBlocks.js:794 -msgid "The Ratio Interval block calculates an interval based on a ratio." -msgstr "" +#: js/blocks/BooleanBlocks.js:152 +msgid "and" +msgstr "en" -#: js/IntervalsBlocks.js:799 -msgid "ratio interval" +#: js/blocks/BooleanBlocks.js:218 +msgid "The Or block is the logical or operator." msgstr "" -#: js/IntervalsBlocks.js:868 -msgid "In the figure, we add la to sol." -msgstr "" +#: js/blocks/BooleanBlocks.js:236 +msgid "or" +msgstr "of" -#: js/IntervalsBlocks.js:924 -#.TRANS: define a custom mode -msgid "define mode" +#: js/blocks/BooleanBlocks.js:302 +msgid "The XOR block is the logical XOR operator." msgstr "" -#: js/IntervalsBlocks.js:977 -msgid "movable Do" +#: js/blocks/BooleanBlocks.js:320 +msgid "xor" msgstr "" -#: js/IntervalsBlocks.js:1028 -#.TRANS: mode length is the number of notes in the mode, e.g., 7 for major and minor scales; 12 for chromatic scales -msgid "mode length" +#: js/blocks/BooleanBlocks.js:808 +msgid "The Equal block returns True if the two numbers are equal." msgstr "" -#: js/IntervalsBlocks.js:1037 -msgid "The Mode length block is the number of notes in the current scale." +#: js/blocks/BooleanBlocks.js:909 +msgid "The Not-equal-to block returns True if the two numbers are not equal to each other." msgstr "" -#: js/IntervalsBlocks.js:1039 -msgid "Most Western scales have 7 notes." +#: js/blocks/BooleanBlocks.js:1008 +msgid "The Boolean block is used to specify true or false." msgstr "" -#: js/IntervalsBlocks.js:1088 -#.TRANS: the mode in music is 'major', 'minor', etc. -msgid "current mode" +#: js/blocks/BoxesBlocks.js:53 +#: js/blocks/BoxesBlocks.js:59 +msgid "The Add-to block is used to add to the value stored in a box." msgstr "" -#: js/IntervalsBlocks.js:1141 -#.TRANS: the key is a group of pitches with which a music composition is created -msgid "current key" +#: js/blocks/BoxesBlocks.js:61 +msgid "It can also be used with other blocks such as Color and Pen size." msgstr "" -#: js/IntervalsBlocks.js:1193 -#: js/IntervalsBlocks.js:1238 -#.TRANS: set the key and mode, e.g. C Major -msgid "set key" +#: js/blocks/BoxesBlocks.js:73 +msgid "add" msgstr "" -#: js/IntervalsBlocks.js:1247 -#: js/IntervalsBlocks.js:1253 -msgid "The Set key block is used to set the key and mode," +#: js/blocks/BoxesBlocks.js:75 +#: js/widgets/temperament.js:857 +msgid "to" msgstr "" -#: js/IntervalsBlocks.js:1253 -msgid "eg C Major" +#: js/blocks/BoxesBlocks.js:75 +#: js/blocks/BoxesBlocks.js:595 +#: js/blocks/HeapBlocks.js:544 +msgid "value1" msgstr "" -#: js/IntervalsBlocks.js:1266 -#: js/DictBlocks.js:215 -#: js/DictBlocks.js:216 -#: js/DictBlocks.js:289 -#: js/DictBlocks.js:290 -#: js/DictBlocks.js:357 -#: js/DictBlocks.js:430 -#: js/DictBlocks.js:431 -#.TRANS: key, e.g., C in C Major -msgid "key" +#: js/blocks/BoxesBlocks.js:118 +msgid "Block does not support incrementing." msgstr "" -#: js/ActionBlocks.js:58 -msgid "The Return block will return a value from an action." +#: js/blocks/BoxesBlocks.js:152 +msgid "The Add-1-to block adds one to the value stored in a box." msgstr "" -#: js/ActionBlocks.js:75 -msgid "return" +#: js/blocks/BoxesBlocks.js:163 +msgid "add 1 to" msgstr "" -#: js/ActionBlocks.js:128 -msgid "The Return to URL block will return a value to a webpage." +#: js/blocks/BoxesBlocks.js:211 +msgid "The Subtract-1-from block subtracts one from the value stored in a box." msgstr "" -#: js/ActionBlocks.js:145 -msgid "return to URL" +#: js/blocks/BoxesBlocks.js:222 +msgid "subtract 1 from" msgstr "" -#: js/ActionBlocks.js:233 -#: js/ActionBlocks.js:290 -#: js/ActionBlocks.js:501 -#: js/ActionBlocks.js:688 -msgid "The Calculate block returns a value calculated by an action." +#: js/blocks/BoxesBlocks.js:270 +#: js/blocks/BoxesBlocks.js:387 +msgid "The Box block returns the value stored in a box." msgstr "" -#: js/ActionBlocks.js:251 -#: js/ActionBlocks.js:517 -#: js/ActionBlocks.js:707 -msgid "calculate" +#: js/blocks/BoxesBlocks.js:500 +#: js/blocks/BoxesBlocks.js:576 +msgid "The Store in block will store a value in a box." msgstr "" -#: js/ActionBlocks.js:376 -#: js/ActionBlocks.js:593 -#: js/ActionBlocks.js:942 -#: js/ActionBlocks.js:1389 -#.TRANS: do is the do something or take an action. -msgid "The Do block is used to initiate an action." +#: js/blocks/BoxesBlocks.js:595 +#: js/blocks/EnsembleBlocks.js:391 +#: js/blocks/EnsembleBlocks.js:402 +msgid "name1" msgstr "" -#: js/ActionBlocks.js:390 -#: js/ActionBlocks.js:610 -#: js/ActionBlocks.js:959 -#: js/ActionBlocks.js:1048 -#: js/MeterBlocks.js:769 -msgid "do1" +#: js/blocks/BoxesBlocks.js:652 +msgid "The Box2 block returns the value stored in Box2." msgstr "" -#: js/ActionBlocks.js:390 -#: js/ActionBlocks.js:610 -#: js/ActionBlocks.js:959 -#: js/ActionBlocks.js:1048 -#: js/FlowBlocks.js:742 -#: js/FlowBlocks.js:822 -#: js/MeterBlocks.js:769 -msgid "do" +#: js/blocks/BoxesBlocks.js:703 +msgid "The Store in Box2 block is used to store a value in Box2." msgstr "" -#: js/ActionBlocks.js:791 -#: js/ActionBlocks.js:865 -msgid "The Arg block contains the value of an argument passed to an action." +#: js/blocks/BoxesBlocks.js:715 +msgid "store in box2" msgstr "" -#: js/ActionBlocks.js:806 -#: js/ActionBlocks.js:878 -msgid "arg" +#: js/blocks/BoxesBlocks.js:761 +msgid "The Box1 block returns the value stored in Box1." msgstr "" -#: js/ActionBlocks.js:836 -#: js/ActionBlocks.js:900 -#: js/ActionBlocks.js:908 -msgid "Invalid argument" +#: js/blocks/BoxesBlocks.js:812 +msgid "The Store in Box1 block is used to store a value in Box1." msgstr "" -#: js/ActionBlocks.js:944 -msgid "In the example, it is used with the One of block to choose a random phase." +#: js/blocks/BoxesBlocks.js:826 +msgid "store in box1" msgstr "" -#: js/ActionBlocks.js:1019 -#: js/ActionBlocks.js:1026 -msgid "The Listen block is used to listen for an event such as a mouse click." +#: js/blocks/DictBlocks.js:77 +msgid "show dictionary" msgstr "" -#: js/ActionBlocks.js:1028 -msgid "When the event happens, an action is taken." +#: js/blocks/DictBlocks.js:80 +#: js/blocks/DictBlocks.js:145 +#: js/blocks/DictBlocks.js:216 +#: js/blocks/DictBlocks.js:290 +#: js/blocks/ProgramBlocks.js:396 +#: js/blocks/ProgramBlocks.js:501 +#: js/blocks/ProgramBlocks.js:664 +msgid "My Dictionary" msgstr "" -#: js/ActionBlocks.js:1045 -msgid "on" +#: js/blocks/DictBlocks.js:129 +msgid "The Dictionary block returns a dictionary." msgstr "" -#: js/ActionBlocks.js:1048 -#: js/ActionBlocks.js:1049 -#: js/ActionBlocks.js:1153 -msgid "event" +#: js/blocks/DictBlocks.js:197 +#: js/blocks/DictBlocks.js:339 +msgid "The Get-dict block returns a value in the dictionary for a specified key." msgstr "" -#: js/ActionBlocks.js:1133 -msgid "The Broadcast block is used to trigger an event." +#: js/blocks/DictBlocks.js:212 +#: js/blocks/DictBlocks.js:354 +#.TRANS: retrieve a value from the dictionary with a given key +msgid "get value" msgstr "" -#: js/ActionBlocks.js:1151 -msgid "broadcast" +#: js/blocks/DictBlocks.js:215 +#: js/blocks/DictBlocks.js:216 +#: js/blocks/DictBlocks.js:289 +#: js/blocks/DictBlocks.js:290 +#: js/blocks/DictBlocks.js:357 +#: js/blocks/DictBlocks.js:430 +#: js/blocks/DictBlocks.js:431 +msgid "key2" msgstr "" -#: js/ActionBlocks.js:1208 -msgid "Each Start block is a separate voice." +#: js/blocks/DictBlocks.js:215 +#: js/blocks/DictBlocks.js:216 +#: js/blocks/DictBlocks.js:289 +#: js/blocks/DictBlocks.js:290 +#: js/blocks/DictBlocks.js:357 +#: js/blocks/DictBlocks.js:430 +#: js/blocks/DictBlocks.js:431 +#: js/blocks/IntervalsBlocks.js:1462 +#.TRANS: key, e.g., C in C Major +msgid "key" msgstr "" -#: js/ActionBlocks.js:1304 -msgid "It is often used for storing a phrase of music that is repeated." +#: js/blocks/DictBlocks.js:271 +#: js/blocks/DictBlocks.js:411 +msgid "The Set-dict block sets a value in the dictionary for a specified key." msgstr "" -#: js/ActionBlocks.js:1495 -msgid "define temperament" +#: js/blocks/DictBlocks.js:286 +#: js/blocks/DictBlocks.js:427 +#.TRANS: set a value in the dictionary for a given key +msgid "set value" msgstr "" -#: js/EnsembleBlocks.js:66 +#: js/blocks/EnsembleBlocks.js:66 msgid "mouse index heap" msgstr "" -#: js/EnsembleBlocks.js:68 +#: js/blocks/EnsembleBlocks.js:68 msgid "The Mouse index heap block returns a value in the heap at a specified location for a specified mouse." msgstr "" -#: js/EnsembleBlocks.js:77 -#: js/EnsembleBlocks.js:1080 +#: js/blocks/EnsembleBlocks.js:77 +#: js/blocks/EnsembleBlocks.js:1080 msgid "mouse name" msgstr "" -#: js/EnsembleBlocks.js:77 -#: js/EnsembleBlocks.js:92 -#: js/HeapBlocks.js:544 +#: js/blocks/EnsembleBlocks.js:77 +#: js/blocks/EnsembleBlocks.js:92 +#: js/blocks/HeapBlocks.js:544 #.TRANS: value1 is a numeric value (JAPANESE ONLY) msgid "index" msgstr "" -#: js/EnsembleBlocks.js:80 +#: js/blocks/EnsembleBlocks.js:80 msgid "turtle index heap" msgstr "" -#: js/EnsembleBlocks.js:82 +#: js/blocks/EnsembleBlocks.js:82 msgid "The Turtle index heap block returns a value in the heap at a specified location for a specified turtle." msgstr "" -#: js/EnsembleBlocks.js:90 -#: js/EnsembleBlocks.js:167 -#: js/EnsembleBlocks.js:230 -#: js/EnsembleBlocks.js:316 -#: js/EnsembleBlocks.js:362 -#: js/EnsembleBlocks.js:400 -#: js/EnsembleBlocks.js:454 -#: js/EnsembleBlocks.js:504 -#: js/EnsembleBlocks.js:550 -#: js/EnsembleBlocks.js:597 -#: js/EnsembleBlocks.js:651 -#: js/EnsembleBlocks.js:763 -#: js/EnsembleBlocks.js:854 -#: js/EnsembleBlocks.js:915 -#: js/EnsembleBlocks.js:955 -#: js/EnsembleBlocks.js:1219 -#: js/EnsembleBlocks.js:1293 +#: js/blocks/EnsembleBlocks.js:90 +#: js/blocks/EnsembleBlocks.js:167 +#: js/blocks/EnsembleBlocks.js:230 +#: js/blocks/EnsembleBlocks.js:316 +#: js/blocks/EnsembleBlocks.js:362 +#: js/blocks/EnsembleBlocks.js:400 +#: js/blocks/EnsembleBlocks.js:454 +#: js/blocks/EnsembleBlocks.js:504 +#: js/blocks/EnsembleBlocks.js:550 +#: js/blocks/EnsembleBlocks.js:597 +#: js/blocks/EnsembleBlocks.js:651 +#: js/blocks/EnsembleBlocks.js:763 +#: js/blocks/EnsembleBlocks.js:854 +#: js/blocks/EnsembleBlocks.js:915 +#: js/blocks/EnsembleBlocks.js:955 +#: js/blocks/EnsembleBlocks.js:1219 +#: js/blocks/EnsembleBlocks.js:1293 #.TRANS: Yertle is the name of a turtle. msgid "Yertle" msgstr "" -#: js/EnsembleBlocks.js:92 -#: js/EnsembleBlocks.js:1089 +#: js/blocks/EnsembleBlocks.js:92 +#: js/blocks/EnsembleBlocks.js:1089 msgid "turtle name" msgstr "" -#: js/EnsembleBlocks.js:122 -#: js/EnsembleBlocks.js:1197 -#: js/HeapBlocks.js:474 -#: js/HeapBlocks.js:572 +#: js/blocks/EnsembleBlocks.js:122 +#: js/blocks/EnsembleBlocks.js:1197 +#: js/blocks/HeapBlocks.js:474 +#: js/blocks/HeapBlocks.js:572 msgid "Index must be > 0." msgstr "" -#: js/EnsembleBlocks.js:127 -#: js/HeapBlocks.js:479 -#: js/HeapBlocks.js:577 +#: js/blocks/EnsembleBlocks.js:127 +#: js/blocks/HeapBlocks.js:479 +#: js/blocks/HeapBlocks.js:577 msgid "Maximum heap size is 1000." msgstr "" -#: js/EnsembleBlocks.js:145 +#: js/blocks/EnsembleBlocks.js:145 msgid "stop mouse" msgstr "" -#: js/EnsembleBlocks.js:147 +#: js/blocks/EnsembleBlocks.js:147 msgid "The Stop mouse block stops the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:158 +#: js/blocks/EnsembleBlocks.js:158 msgid "stop turtle" msgstr "" -#: js/EnsembleBlocks.js:160 +#: js/blocks/EnsembleBlocks.js:160 msgid "The Stop turtle block stops the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:184 -#: js/EnsembleBlocks.js:247 -#: js/EnsembleBlocks.js:413 -#: js/EnsembleBlocks.js:468 -#: js/EnsembleBlocks.js:706 -#: js/EnsembleBlocks.js:808 -#: js/EnsembleBlocks.js:870 -#: js/EnsembleBlocks.js:1190 -#: js/EnsembleBlocks.js:1253 +#: js/blocks/EnsembleBlocks.js:184 +#: js/blocks/EnsembleBlocks.js:247 +#: js/blocks/EnsembleBlocks.js:413 +#: js/blocks/EnsembleBlocks.js:468 +#: js/blocks/EnsembleBlocks.js:706 +#: js/blocks/EnsembleBlocks.js:808 +#: js/blocks/EnsembleBlocks.js:870 +#: js/blocks/EnsembleBlocks.js:1190 +#: js/blocks/EnsembleBlocks.js:1253 msgid "Cannot find mouse" msgstr "" -#: js/EnsembleBlocks.js:186 -#: js/EnsembleBlocks.js:249 -#: js/EnsembleBlocks.js:415 -#: js/EnsembleBlocks.js:470 -#: js/EnsembleBlocks.js:708 -#: js/EnsembleBlocks.js:810 -#: js/EnsembleBlocks.js:872 -#: js/EnsembleBlocks.js:1192 -#: js/EnsembleBlocks.js:1255 +#: js/blocks/EnsembleBlocks.js:186 +#: js/blocks/EnsembleBlocks.js:249 +#: js/blocks/EnsembleBlocks.js:415 +#: js/blocks/EnsembleBlocks.js:470 +#: js/blocks/EnsembleBlocks.js:708 +#: js/blocks/EnsembleBlocks.js:810 +#: js/blocks/EnsembleBlocks.js:872 +#: js/blocks/EnsembleBlocks.js:1192 +#: js/blocks/EnsembleBlocks.js:1255 msgid "Cannot find turtle" msgstr "" -#: js/EnsembleBlocks.js:206 +#: js/blocks/EnsembleBlocks.js:206 msgid "start mouse" msgstr "" -#: js/EnsembleBlocks.js:209 +#: js/blocks/EnsembleBlocks.js:209 msgid "The Start mouse block starts the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:220 +#: js/blocks/EnsembleBlocks.js:220 msgid "start turtle" msgstr "" -#: js/EnsembleBlocks.js:223 +#: js/blocks/EnsembleBlocks.js:223 msgid "The Start turtle block starts the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:256 +#: js/blocks/EnsembleBlocks.js:256 msgid "Mouse is already running." msgstr "" -#: js/EnsembleBlocks.js:258 +#: js/blocks/EnsembleBlocks.js:258 msgid "Turtle is already running." msgstr "" -#: js/EnsembleBlocks.js:282 +#: js/blocks/EnsembleBlocks.js:282 msgid "Cannot find start block" msgstr "" -#: js/EnsembleBlocks.js:292 +#: js/blocks/EnsembleBlocks.js:292 #.TRANS: pen color for this mouse msgid "mouse color" msgstr "" -#: js/EnsembleBlocks.js:294 +#: js/blocks/EnsembleBlocks.js:294 msgid "The Mouse color block returns the pen color of the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:306 +#: js/blocks/EnsembleBlocks.js:306 #.TRANS: pen color for this turtle msgid "turtle color" msgstr "" -#: js/EnsembleBlocks.js:308 +#: js/blocks/EnsembleBlocks.js:308 msgid "The Turtle color block returns the pen color of the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:338 +#: js/blocks/EnsembleBlocks.js:338 #.TRANS: heading (compass direction) for this mouse msgid "mouse heading" msgstr "" -#: js/EnsembleBlocks.js:340 +#: js/blocks/EnsembleBlocks.js:340 msgid "The Mouse heading block returns the heading of the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:352 +#: js/blocks/EnsembleBlocks.js:352 #.TRANS: heading (compass direction) for this turtle msgid "turtle heading" msgstr "" -#: js/EnsembleBlocks.js:354 +#: js/blocks/EnsembleBlocks.js:354 msgid "The Turtle heading block returns the heading of the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:384 -#: js/EnsembleBlocks.js:439 +#: js/blocks/EnsembleBlocks.js:384 +#: js/blocks/EnsembleBlocks.js:439 #.TRANS: set xy position for this mouse msgid "set mouse" msgstr "" -#: js/EnsembleBlocks.js:391 -#: js/EnsembleBlocks.js:402 -#: js/BoxesBlocks.js:595 -msgid "name1" -msgstr "" - -#: js/EnsembleBlocks.js:391 -#: js/EnsembleBlocks.js:402 -#: js/ProgramBlocks.js:881 -#: js/GraphicsBlocks.js:235 -#: js/GraphicsBlocks.js:313 -#: js/GraphicsBlocks.js:436 -#: js/GraphicsBlocks.js:487 -#: js/GraphicsBlocks.js:534 -#: js/GraphicsBlocks.js:750 +#: js/blocks/EnsembleBlocks.js:391 +#: js/blocks/EnsembleBlocks.js:402 +#: js/blocks/GraphicsBlocks.js:235 +#: js/blocks/GraphicsBlocks.js:313 +#: js/blocks/GraphicsBlocks.js:436 +#: js/blocks/GraphicsBlocks.js:487 +#: js/blocks/GraphicsBlocks.js:534 +#: js/blocks/GraphicsBlocks.js:750 +#: js/blocks/ProgramBlocks.js:881 msgid "x" msgstr "x" -#: js/EnsembleBlocks.js:391 -#: js/EnsembleBlocks.js:402 -#: js/ProgramBlocks.js:881 -#: js/GraphicsBlocks.js:149 -#: js/GraphicsBlocks.js:313 -#: js/GraphicsBlocks.js:436 -#: js/GraphicsBlocks.js:487 -#: js/GraphicsBlocks.js:534 -#: js/GraphicsBlocks.js:750 +#: js/blocks/EnsembleBlocks.js:391 +#: js/blocks/EnsembleBlocks.js:402 +#: js/blocks/GraphicsBlocks.js:149 +#: js/blocks/GraphicsBlocks.js:313 +#: js/blocks/GraphicsBlocks.js:436 +#: js/blocks/GraphicsBlocks.js:487 +#: js/blocks/GraphicsBlocks.js:534 +#: js/blocks/GraphicsBlocks.js:750 +#: js/blocks/ProgramBlocks.js:881 msgid "y" msgstr "y" -#: js/EnsembleBlocks.js:395 -#: js/EnsembleBlocks.js:452 +#: js/blocks/EnsembleBlocks.js:395 +#: js/blocks/EnsembleBlocks.js:452 #.TRANS: set xy position for this turtle msgid "set turtle" msgstr "" -#: js/EnsembleBlocks.js:433 +#: js/blocks/EnsembleBlocks.js:433 msgid "The Set mouse block sends a stack of blocks to be run by the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:446 +#: js/blocks/EnsembleBlocks.js:446 msgid "The Set turtle block sends a stack of blocks to be run by the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:480 +#: js/blocks/EnsembleBlocks.js:480 #.TRANS: y position for this mouse msgid "mouse y" msgstr "muis y" -#: js/EnsembleBlocks.js:482 +#: js/blocks/EnsembleBlocks.js:482 msgid "The Y mouse block returns the Y position of the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:494 +#: js/blocks/EnsembleBlocks.js:494 #.TRANS: y position for this turtle msgid "turtle y" msgstr "schildpad y" -#: js/EnsembleBlocks.js:496 +#: js/blocks/EnsembleBlocks.js:496 msgid "The Y turtle block returns the Y position of the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:526 +#: js/blocks/EnsembleBlocks.js:526 #.TRANS: x position for this mouse msgid "mouse x" msgstr "muis x" -#: js/EnsembleBlocks.js:528 +#: js/blocks/EnsembleBlocks.js:528 msgid "The X mouse block returns the X position of the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:540 +#: js/blocks/EnsembleBlocks.js:540 #.TRANS: x position for this turtle msgid "turtle x" msgstr "schildpad x" -#: js/EnsembleBlocks.js:542 +#: js/blocks/EnsembleBlocks.js:542 msgid "The X turtle block returns the X position of the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:573 +#: js/blocks/EnsembleBlocks.js:573 #.TRANS: notes played by this mouse msgid "mouse notes played" msgstr "" -#: js/EnsembleBlocks.js:575 +#: js/blocks/EnsembleBlocks.js:575 msgid "The Mouse elapse notes block returns the number of notes played by the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:587 +#: js/blocks/EnsembleBlocks.js:587 #.TRANS: notes played by this turtle msgid "turtle notes played" msgstr "" -#: js/EnsembleBlocks.js:589 +#: js/blocks/EnsembleBlocks.js:589 msgid "The Turtle elapse notes block returns the number of notes played by the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:627 +#: js/blocks/EnsembleBlocks.js:627 #.TRANS: convert current note for this turtle to piano key (1-88) msgid "mouse pitch number" msgstr "" -#: js/EnsembleBlocks.js:629 +#: js/blocks/EnsembleBlocks.js:629 msgid "The Mouse pitch block returns the current pitch number being played by the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:641 +#: js/blocks/EnsembleBlocks.js:641 #.TRANS: convert current note for this turtle to piano key (1-88) msgid "turtle pitch number" msgstr "" -#: js/EnsembleBlocks.js:643 -msgid "The Turrle pitch block returns the current pitch number being played by the specified turtle." +#: js/blocks/EnsembleBlocks.js:643 +msgid "The Turtle pitch block returns the current pitch number being played by the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:747 -#: js/EnsembleBlocks.js:819 +#: js/blocks/EnsembleBlocks.js:747 +#: js/blocks/EnsembleBlocks.js:819 #.TRANS: note value is the duration of the note played by this mouse msgid "mouse note value" msgstr "" -#: js/EnsembleBlocks.js:757 +#: js/blocks/EnsembleBlocks.js:757 #.TRANS: note value is the duration of the note played by this turtle msgid "turtle note value" msgstr "" -#: js/EnsembleBlocks.js:830 +#: js/blocks/EnsembleBlocks.js:830 #.TRANS: sync is short for synchronization msgid "mouse sync" msgstr "" -#: js/EnsembleBlocks.js:832 +#: js/blocks/EnsembleBlocks.js:832 msgid "The Mouse sync block aligns the beat count between mice." msgstr "" -#: js/EnsembleBlocks.js:844 +#: js/blocks/EnsembleBlocks.js:844 #.TRANS: sync is short for synchronization msgid "turtle sync" msgstr "" -#: js/EnsembleBlocks.js:846 +#: js/blocks/EnsembleBlocks.js:846 msgid "The Turtle sync block aligns the beat count between turtles." msgstr "" -#: js/EnsembleBlocks.js:887 +#: js/blocks/EnsembleBlocks.js:887 msgid "The Found mouse block will return true if the specified mouse can be found." msgstr "" -#: js/EnsembleBlocks.js:893 +#: js/blocks/EnsembleBlocks.js:893 msgid "found mouse" msgstr "" -#: js/EnsembleBlocks.js:903 +#: js/blocks/EnsembleBlocks.js:903 msgid "The Found turtle block will return true if the specified turtle can be found." msgstr "" -#: js/EnsembleBlocks.js:909 +#: js/blocks/EnsembleBlocks.js:909 msgid "found turtle" msgstr "" -#: js/EnsembleBlocks.js:932 +#: js/blocks/EnsembleBlocks.js:932 msgid "new mouse" msgstr "" -#: js/EnsembleBlocks.js:934 +#: js/blocks/EnsembleBlocks.js:934 msgid "The New mouse block will create a new mouse." msgstr "" -#: js/EnsembleBlocks.js:945 +#: js/blocks/EnsembleBlocks.js:945 msgid "new turtle" msgstr "" -#: js/EnsembleBlocks.js:947 +#: js/blocks/EnsembleBlocks.js:947 msgid "The New turtle block will create a new turtle." msgstr "" -#: js/EnsembleBlocks.js:1011 +#: js/blocks/EnsembleBlocks.js:1011 msgid "set mouse color" msgstr "" -#: js/EnsembleBlocks.js:1014 +#: js/blocks/EnsembleBlocks.js:1014 msgid "The Set-mouse-color block is used to set the color of a mouse." msgstr "" -#: js/EnsembleBlocks.js:1020 +#: js/blocks/EnsembleBlocks.js:1020 msgid "set turtle color" msgstr "" -#: js/EnsembleBlocks.js:1023 +#: js/blocks/EnsembleBlocks.js:1023 msgid "The Set-turtle-color block is used to set the color of a turtle." msgstr "" -#: js/EnsembleBlocks.js:1083 +#: js/blocks/EnsembleBlocks.js:1083 msgid "The Mouse-name block returns the name of a mouse." msgstr "" -#: js/EnsembleBlocks.js:1092 +#: js/blocks/EnsembleBlocks.js:1092 msgid "The Turtle-name block returns the name of a turtle." msgstr "" -#: js/EnsembleBlocks.js:1115 +#: js/blocks/EnsembleBlocks.js:1115 msgid "mouse count" msgstr "" -#: js/EnsembleBlocks.js:1118 +#: js/blocks/EnsembleBlocks.js:1118 msgid "The Mouse-count block returns the number of mice." msgstr "" -#: js/EnsembleBlocks.js:1124 +#: js/blocks/EnsembleBlocks.js:1124 msgid "turtle count" msgstr "" -#: js/EnsembleBlocks.js:1127 +#: js/blocks/EnsembleBlocks.js:1127 msgid "The Turtle-count block returns the number of turtles." msgstr "" -#: js/EnsembleBlocks.js:1149 +#: js/blocks/EnsembleBlocks.js:1149 msgid "nth mouse name" msgstr "" -#: js/EnsembleBlocks.js:1152 +#: js/blocks/EnsembleBlocks.js:1152 msgid "The Nth-Mouse name block returns the name of the nth mouse." msgstr "" -#: js/EnsembleBlocks.js:1158 +#: js/blocks/EnsembleBlocks.js:1158 msgid "nth turtle name" msgstr "" -#: js/EnsembleBlocks.js:1161 -msgid "The Nth-Turtle name block returns the name of the nth turtle." -msgstr "" - -#: js/EnsembleBlocks.js:1205 -#: js/EnsembleBlocks.js:1265 -msgid "set name" -msgstr "" - -#: js/EnsembleBlocks.js:1214 -#: js/EnsembleBlocks.js:1221 -msgid "source" -msgstr "" - -#: js/EnsembleBlocks.js:1214 -#: js/EnsembleBlocks.js:1221 -msgid "target" -msgstr "" - -#: js/EnsembleBlocks.js:1271 -msgid "The Set-name block is used to name a mouse." -msgstr "" - -#: js/EnsembleBlocks.js:1284 -msgid "The Set-name block is used to name a turtle." -msgstr "" - -#: js/BooleanBlocks.js:44 -msgid "The Not block is the logical not operator." -msgstr "" - -#: js/BooleanBlocks.js:62 -msgid "not" -msgstr "niet" - -#: js/BooleanBlocks.js:134 -msgid "The And block is the logical and operator." -msgstr "" - -#: js/BooleanBlocks.js:152 -msgid "and" -msgstr "en" - -#: js/BooleanBlocks.js:218 -msgid "The Or block is the logical or operator." -msgstr "" - -#: js/BooleanBlocks.js:236 -msgid "or" -msgstr "of" - -#: js/BooleanBlocks.js:302 -msgid "The XOR block is the logical XOR operator." -msgstr "" - -#: js/BooleanBlocks.js:320 -msgid "xor" -msgstr "" - -#: js/BooleanBlocks.js:808 -msgid "The Equal block returns True if the two numbers are equal." -msgstr "" - -#: js/BooleanBlocks.js:909 -msgid "The Not-equal-to block returns True if the two numbers are not equal to each other." -msgstr "" - -#: js/BooleanBlocks.js:1008 -msgid "The Boolean block is used to specify true or false." -msgstr "" - -#: js/MediaBlocks.js:35 -#.TRANS: right side of the screen -msgid "right (screen)" -msgstr "" - -#: js/MediaBlocks.js:45 -#: js/MediaBlocks.js:56 -msgid "The Right block returns the position of the right of the canvas." +#: js/blocks/EnsembleBlocks.js:1161 +msgid "The Nth-Turtle name block returns the name of the nth turtle." msgstr "" -#: js/MediaBlocks.js:97 -#.TRANS: left side of the screen -msgid "left (screen)" +#: js/blocks/EnsembleBlocks.js:1205 +#: js/blocks/EnsembleBlocks.js:1265 +msgid "set name" msgstr "" -#: js/MediaBlocks.js:107 -#: js/MediaBlocks.js:118 -msgid "The Left block returns the position of the left of the canvas." +#: js/blocks/EnsembleBlocks.js:1214 +#: js/blocks/EnsembleBlocks.js:1221 +msgid "source" msgstr "" -#: js/MediaBlocks.js:158 -msgid "top (screen)" +#: js/blocks/EnsembleBlocks.js:1214 +#: js/blocks/EnsembleBlocks.js:1221 +msgid "target" msgstr "" -#: js/MediaBlocks.js:168 -#: js/MediaBlocks.js:179 -msgid "The Top block returns the position of the top of the canvas." +#: js/blocks/EnsembleBlocks.js:1271 +msgid "The Set-name block is used to name a mouse." msgstr "" -#: js/MediaBlocks.js:219 -msgid "bottom (screen)" +#: js/blocks/EnsembleBlocks.js:1284 +msgid "The Set-name block is used to name a turtle." msgstr "" -#: js/MediaBlocks.js:229 -#: js/MediaBlocks.js:240 -msgid "The Bottom block returns the position of the bottom of the canvas." +#: js/blocks/ExtrasBlocks.js:33 +msgid "fraction" msgstr "" -#: js/MediaBlocks.js:282 -msgid "width" +#: js/blocks/ExtrasBlocks.js:36 +msgid "Convert a float to a fraction" msgstr "" -#: js/MediaBlocks.js:291 -msgid "The Width block returns the width of the canvas." +#: js/blocks/ExtrasBlocks.js:93 +msgid "save as ABC" msgstr "" -#: js/MediaBlocks.js:325 -msgid "height" +#: js/blocks/ExtrasBlocks.js:96 +#: js/blocks/ExtrasBlocks.js:132 +#: js/blocks/ExtrasBlocks.js:168 +msgid "title" msgstr "" -#: js/MediaBlocks.js:334 -msgid "The Height block returns the height of the canvas." +#: js/blocks/ExtrasBlocks.js:129 +msgid "save as Lilypond" msgstr "" -#: js/MediaBlocks.js:369 -#.TRANS: stops playback of an audio recording -msgid "stop play" +#: js/blocks/ExtrasBlocks.js:165 +msgid "save as SVG" msgstr "" -#: js/MediaBlocks.js:404 -#.TRANS: Erases the images and text -msgid "erase media" +#: js/blocks/ExtrasBlocks.js:216 +msgid "no background" msgstr "" -#: js/MediaBlocks.js:409 -msgid "The Erase Media block erases text and images." +#: js/blocks/ExtrasBlocks.js:219 +msgid "The No background block eliminates the background from the saved SVG output." msgstr "" -#: js/MediaBlocks.js:439 -#.TRANS: play an audio recording -msgid "play back" +#: js/blocks/ExtrasBlocks.js:247 +msgid "show blocks" +msgstr "blokken weergeven" + +#: js/blocks/ExtrasBlocks.js:249 +msgid "The Show blocks block shows the blocks." msgstr "" -#: js/MediaBlocks.js:487 -msgid "speak" -msgstr "spreek" +#: js/blocks/ExtrasBlocks.js:274 +msgid "hide blocks" +msgstr "blokken verbergen" -#: js/MediaBlocks.js:495 -msgid "The Speak block outputs to the text-to-speech synthesizer" +#: js/blocks/ExtrasBlocks.js:276 +msgid "The Hide blocks block hides the blocks." msgstr "" -#: js/MediaBlocks.js:546 -msgid "camera" +#: js/blocks/ExtrasBlocks.js:305 +#: js/blocks/ExtrasBlocks.js:338 +msgid "The Space block is used to add space between blocks." msgstr "" -#: js/MediaBlocks.js:551 -msgid "The Camera block connects a webcam to the Show block." -msgstr "" +#: js/blocks/ExtrasBlocks.js:376 +msgid "wait" +msgstr "wacht" -#: js/MediaBlocks.js:574 -msgid "video" +#: js/blocks/ExtrasBlocks.js:379 +msgid "The Wait block pauses the program for a specified number of seconds." msgstr "" -#: js/MediaBlocks.js:579 -msgid "The Video block selects video for use with the Show block." -msgstr "" +#: js/blocks/ExtrasBlocks.js:433 +#: plugins/facebook.rtp:30 +msgid "comment" +msgstr "commentaar" -#: js/MediaBlocks.js:607 -msgid "The Open file block opens a file for use with the Show block." -msgstr "" +#: js/blocks/ExtrasBlocks.js:469 +msgid "print" +msgstr "druk af" -#: js/MediaBlocks.js:645 -msgid "stop media" +#: js/blocks/ExtrasBlocks.js:476 +msgid "The Print block displays text at the top of the screen." msgstr "" -#: js/MediaBlocks.js:650 -msgid "The Stop media block stops audio or video playback." +#: js/blocks/ExtrasBlocks.js:582 +msgid "display grid" msgstr "" -#: js/MediaBlocks.js:679 -#: js/PitchBlocks.js:1539 -#: js/phrasemaker.js:822 -#: js/musickeyboard.js:1654 -#.TRANS: a measure of frequency: one cycle per second -msgid "hertz" +#: js/blocks/ExtrasBlocks.js:587 +msgid "The Display Grid Block changes the grid type" msgstr "" -#: js/MediaBlocks.js:692 -msgid "duration (ms)" +#: js/blocks/ExtrasBlocks.js:689 +#: js/blocks/ExtrasBlocks.js:708 +#: js/blocks/ExtrasBlocks.js:731 +#: js/blocks/ExtrasBlocks.js:754 +#: js/blocks/ExtrasBlocks.js:772 +#: js/blocks/ExtrasBlocks.js:791 +#: js/blocks/ExtrasBlocks.js:810 +#: js/blocks/ExtrasBlocks.js:829 +msgid "unknown" msgstr "" -#: js/MediaBlocks.js:728 -#.TRANS: translate a note into hertz, e.g., A4 -> 440HZ -msgid "note to frequency" +#: js/blocks/FlowBlocks.js:41 +msgid "The Backward block runs code in reverse order (Musical retrograde)." msgstr "" -#: js/MediaBlocks.js:736 -msgid "The To frequency block converts a pitch name and octave to Hertz." +#: js/blocks/FlowBlocks.js:48 +msgid "backward" msgstr "" -#: js/MediaBlocks.js:746 -#: js/PitchBlocks.js:656 -#: js/PitchBlocks.js:932 -#: js/PitchBlocks.js:1827 -#.TRANS: name2 is name as in name of pitch (JAPANESE ONLY) -msgid "name2" +#: js/blocks/FlowBlocks.js:124 +msgid "The Duplicate block will run each block multiple times." msgstr "" -#: js/MediaBlocks.js:812 -msgid "The Avatar block is used to change the appearance of the mouse." +#: js/blocks/FlowBlocks.js:136 +msgid "duplicate" msgstr "" -#: js/MediaBlocks.js:819 -msgid "The Avatar block is used to change the appearance of the turtle." +#: js/blocks/FlowBlocks.js:334 +msgid "The Default block is used inside of a Switch to define the default action." msgstr "" -#: js/MediaBlocks.js:831 -#: js/MediaBlocks.js:891 -#.TRANS: a media object -msgid "size" +#: js/blocks/FlowBlocks.js:342 +msgid "default" msgstr "" -#: js/MediaBlocks.js:831 -msgid "image" -msgstr "afbeelding" - -#: js/MediaBlocks.js:880 -msgid "The Show block is used to display text or images on the canvas." +#: js/blocks/FlowBlocks.js:361 +#: js/blocks/FlowBlocks.js:418 +msgid "The Case Block must be used inside of a Switch Block." msgstr "" -#: js/MediaBlocks.js:888 -#.TRANS: show1 is show as in display an image or text on the screen. -msgid "show1" +#: js/blocks/FlowBlocks.js:389 +msgid "The Case block is used inside of a Switch to define matches." msgstr "" -#: js/MediaBlocks.js:891 -msgid "obj" +#: js/blocks/FlowBlocks.js:397 +msgid "case" msgstr "" -#: js/MediaBlocks.js:938 -msgid "The Media block is used to import an image." +#: js/blocks/FlowBlocks.js:446 +msgid "The Switch block will run the code in the matching Case." msgstr "" -#: js/MediaBlocks.js:973 -msgid "The Text block holds a text string." +#: js/blocks/FlowBlocks.js:454 +msgid "switch" msgstr "" -#: js/ProgramBlocks.js:33 -msgid "The Load-heap-from-app block loads the heap from a web page." +#: js/blocks/FlowBlocks.js:595 +msgid "The Stop block will stop a loop" msgstr "" -#: js/ProgramBlocks.js:44 -#.TRANS: load the heap contents from a URL -msgid "load heap from App" +#: js/blocks/FlowBlocks.js:597 +msgid "Forever, Repeat, While, or Until." msgstr "" -#: js/ProgramBlocks.js:95 -msgid "Error parsing JSON data:" -msgstr "" +#: js/blocks/FlowBlocks.js:604 +#: js/widgets/timbre.js:417 +#: js/widgets/timbre.js:419 +#: js/widgets/musickeyboard.js:819 +#: js/widgets/musickeyboard.js:821 +#: js/widgets/phrasemaker.js:4202 +#: plugins/rodi.rtp:29 +#: plugins/rodi.rtp:73 +#: plugins/rodi.rtp:413 +msgid "stop" +msgstr "stop" -#: js/ProgramBlocks.js:100 -msgid "404: Page not found" +#: js/blocks/FlowBlocks.js:653 +msgid "The Waitfor block will wait until the condition is true." msgstr "" -#: js/ProgramBlocks.js:133 -msgid "The Save-heap-to-app block saves the heap to a web page." +#: js/blocks/FlowBlocks.js:661 +msgid "wait for" msgstr "" -#: js/ProgramBlocks.js:144 -#.TRANS: save the heap contents to a URL -msgid "save heap to App" +#: js/blocks/FlowBlocks.js:732 +msgid "The Until block will repeat until the condition is true." msgstr "" -#: js/ProgramBlocks.js:189 -msgid "Cannot find a valid heap for" -msgstr "" +#: js/blocks/FlowBlocks.js:740 +msgid "until" +msgstr "totdat" -#: js/ProgramBlocks.js:206 -msgid "The Load-heap block loads the heap from a file." +#: js/blocks/FlowBlocks.js:742 +#: js/blocks/FlowBlocks.js:822 +msgid "do2" msgstr "" -#: js/ProgramBlocks.js:217 -#.TRANS: load the heap from a file -msgid "load heap" +#: js/blocks/FlowBlocks.js:812 +msgid "The While block will repeat while the condition is true." msgstr "" -#: js/ProgramBlocks.js:270 -msgid "The file you selected does not contain a valid heap." -msgstr "" +#: js/blocks/FlowBlocks.js:820 +msgid "while" +msgstr "zolang" -#: js/ProgramBlocks.js:275 -msgid "The loadHeap block needs a loadFile block." +#: js/blocks/FlowBlocks.js:903 +#: js/blocks/FlowBlocks.js:968 +#: js/blocks/FlowBlocks.js:979 +msgid "In this example if the mouse button is pressed a snare drum will play." msgstr "" -#: js/ProgramBlocks.js:291 -msgid "The Set-heap block loads the heap." -msgstr "" +#: js/blocks/FlowBlocks.js:925 +#: js/blocks/FlowBlocks.js:988 +msgid "if" +msgstr "als" -#: js/ProgramBlocks.js:299 -#: js/HeapBlocks.js:539 -#.TRANS: load the heap from a JSON encoding -msgid "set heap" -msgstr "" +#: js/blocks/FlowBlocks.js:927 +#: js/blocks/FlowBlocks.js:990 +msgid "then" +msgstr "dan" -#: js/ProgramBlocks.js:340 -msgid "The block you selected does not contain a valid heap." -msgstr "" +#: js/blocks/FlowBlocks.js:927 +msgid "else" +msgstr "anders" -#: js/ProgramBlocks.js:343 -msgid "The Set heap block needs a heap." +#: js/blocks/FlowBlocks.js:1025 +msgid "The Forever block will repeat the contained blocks forever." msgstr "" -#: js/ProgramBlocks.js:360 -msgid "The Load-dictionary block loads a dictionary from a file." -msgstr "" +#: js/blocks/FlowBlocks.js:1037 +msgid "forever" +msgstr "altijd" -#: js/ProgramBlocks.js:372 -#.TRANS: load a dictionary from a file -msgid "load dictionary" +#: js/blocks/FlowBlocks.js:1073 +msgid "The Repeat block will repeat the contained blocks." msgstr "" -#: js/ProgramBlocks.js:390 -#: js/ProgramBlocks.js:658 -#: js/ToneBlocks.js:1025 -msgid "file" +#: js/blocks/FlowBlocks.js:1075 +msgid "In this example the note will be played 4 times." msgstr "" -#: js/ProgramBlocks.js:396 -#: js/ProgramBlocks.js:501 -#: js/ProgramBlocks.js:664 -#: js/DictBlocks.js:80 -#: js/DictBlocks.js:145 -#: js/DictBlocks.js:216 -#: js/DictBlocks.js:290 -msgid "My Dictionary" -msgstr "" +#: js/blocks/FlowBlocks.js:1083 +msgid "repeat" +msgstr "herhaal" -#: js/ProgramBlocks.js:444 -msgid "The file you selected does not contain a valid dictionary." +#: js/blocks/FlowBlocks.js:1123 +msgid "duplicate factor" msgstr "" -#: js/ProgramBlocks.js:449 -msgid "The load dictionary block needs a load file block." +#: js/blocks/HeapBlocks.js:49 +msgid "The Heap block returns the heap." msgstr "" -#: js/ProgramBlocks.js:466 -msgid "The Set-dictionary block loads a dictionary." -msgstr "" +#: js/blocks/HeapBlocks.js:133 +msgid "show heap" +msgstr "stapel weergeven" -#: js/ProgramBlocks.js:477 -#.TRANS: load a dictionary from a JSON -msgid "set dictionary" +#: js/blocks/HeapBlocks.js:181 +msgid "The Heap-length block returns the length of the heap." msgstr "" -#: js/ProgramBlocks.js:546 -msgid "The block you selected does not contain a valid dictionary." +#: js/blocks/HeapBlocks.js:195 +msgid "heap length" msgstr "" -#: js/ProgramBlocks.js:550 -msgid "The set dictionary block needs a dictionary." +#: js/blocks/HeapBlocks.js:254 +msgid "The Heap-empty? block returns true if the heap is empty." msgstr "" -#: js/ProgramBlocks.js:567 -msgid "The Save-heap block saves the heap to a file." +#: js/blocks/HeapBlocks.js:268 +#.TRANS: Is the heap empty? +msgid "heap empty?" msgstr "" -#: js/ProgramBlocks.js:578 -#.TRANS: save the heap to a file -msgid "save heap" +#: js/blocks/HeapBlocks.js:317 +msgid "The Empty-heap block empties the heap." msgstr "" -#: js/ProgramBlocks.js:629 -msgid "The Save-dictionary block saves a dictionary to a file." +#: js/blocks/HeapBlocks.js:327 +#: js/blocks/HeapBlocks.js:647 +#.TRANS: empty the heap +msgid "empty heap" +msgstr "stapel wissen" + +#: js/blocks/HeapBlocks.js:371 +msgid "The Reverse-heap block reverses the order of the heap." msgstr "" -#: js/ProgramBlocks.js:640 -#.TRANS: save a dictionary to a file -msgid "save dictionary" +#: js/blocks/HeapBlocks.js:384 +#.TRANS: reverse the order of the heap +msgid "reverse heap" msgstr "" -#: js/ProgramBlocks.js:720 -msgid "The Open palette block opens a palette." +#: js/blocks/HeapBlocks.js:428 +msgid "The Index-heap block returns a value in the heap at a specified location." msgstr "" -#: js/ProgramBlocks.js:727 -msgid "open palette" +#: js/blocks/HeapBlocks.js:443 +#.TRANS: retrieve a value from the heap at index position in the heap +msgid "index heap" msgstr "" -#: js/ProgramBlocks.js:785 -msgid "The Delete block block removes a block." +#: js/blocks/HeapBlocks.js:523 +msgid "The Set-heap entry block sets a value in he heap at the specified location." msgstr "" -#: js/ProgramBlocks.js:797 -#.TRANS: Move this block to the trash. -msgid "delete block" +#: js/blocks/HeapBlocks.js:539 +#: js/blocks/ProgramBlocks.js:299 +#.TRANS: load the heap from a JSON encoding +msgid "set heap" msgstr "" -#: js/ProgramBlocks.js:861 -msgid "The Move block block moves a block." +#: js/blocks/HeapBlocks.js:619 +msgid "The Pop block removes the value at the top of the heap." msgstr "" -#: js/ProgramBlocks.js:869 -#.TRANS: Move the position of a block on the screen. -msgid "move block" +#: js/blocks/HeapBlocks.js:633 +#.TRANS: pop a value off the top of the heap +msgid "pop" +msgstr "afnemen" + +#: js/blocks/HeapBlocks.js:680 +msgid "The Push block adds a value to the top of the heap." msgstr "" -#: js/ProgramBlocks.js:881 -#: js/ProgramBlocks.js:1048 -msgid "block number" +#: js/blocks/HeapBlocks.js:696 +#.TRANS: push a value onto the top of the heap +msgid "push" +msgstr "neerleggen" + +#: js/blocks/IntervalsBlocks.js:45 +msgid "set temperament" msgstr "" -#: js/ProgramBlocks.js:935 -#.TRANS: Run program beginning at this block. -msgid "run block" +#: js/blocks/IntervalsBlocks.js:63 +#: js/blocks/MediaBlocks.js:746 +#: js/blocks/PitchBlocks.js:657 +#: js/blocks/PitchBlocks.js:935 +#: js/blocks/PitchBlocks.js:974 +#: js/blocks/PitchBlocks.js:1007 +#: js/blocks/PitchBlocks.js:1194 +#: js/blocks/PitchBlocks.js:1717 +#: js/blocks/PitchBlocks.js:1758 +#: js/blocks/PitchBlocks.js:1866 +#: js/blocks/ToneBlocks.js:1025 +#: js/turtleactions/IntervalsActions.js:114 +#.TRANS: adjusts the shift up or down by one octave (twelve half-steps in the interval between two notes, one having twice or half the frequency in Hz of the other.) +msgid "octave" msgstr "" -#: js/ProgramBlocks.js:1025 -msgid "The Dock block block connections two blocks." +#: js/blocks/IntervalsBlocks.js:99 +msgid "The Temperament name block is used to select a tuning method." msgstr "" -#: js/ProgramBlocks.js:1036 -#.TRANS: We can connect a block to another block. -msgid "connect blocks" +#: js/blocks/IntervalsBlocks.js:161 +msgid "doubly" msgstr "" -#: js/ProgramBlocks.js:1048 -msgid "target block" +#: js/blocks/IntervalsBlocks.js:166 +msgid "The Doubly block will double the size of an interval." msgstr "" -#: js/ProgramBlocks.js:1048 -msgid "connection number" +#: js/blocks/IntervalsBlocks.js:262 +msgid "interval number" msgstr "" -#: js/ProgramBlocks.js:1140 -msgid "The Make block block creates a new block." +#: js/blocks/IntervalsBlocks.js:317 +msgid "current interval" msgstr "" -#: js/ProgramBlocks.js:1152 -#.TRANS: Create a new block -msgid "make block" +#: js/blocks/IntervalsBlocks.js:387 +#.TRANS: measure the distance between two pitches in semi-tones +msgid "semi-tone interval measure" msgstr "" -#: js/ProgramBlocks.js:1186 -#: js/ProgramBlocks.js:1227 -#: js/RhythmBlocks.js:1128 -#: js/PitchBlocks.js:972 -#: js/PitchBlocks.js:1005 -#: js/temperament.js:340 -#: js/temperament.js:362 -#: js/temperament.js:372 -#: js/temperament.js:484 -#: js/status.js:190 -#: plugins/rodi.rtp:192 -#.TRANS: a musical note consisting of pitch and duration -msgid "note" +#: js/blocks/IntervalsBlocks.js:454 +#: js/blocks/IntervalsBlocks.js:570 +msgid "You must use two pitch blocks when measuring an interval." msgstr "" -#: js/ProgramBlocks.js:1285 -msgid "Cannot find block" +#: js/blocks/IntervalsBlocks.js:496 +msgid "The Scalar interval block measures the distance between two notes in the current key and mode." msgstr "" -#: js/ProgramBlocks.js:1304 -#: js/ProgramBlocks.js:1313 -msgid "Warning: block argument type mismatch" +#: js/blocks/IntervalsBlocks.js:502 +#.TRANS: measure the distance between two pitches in steps of musical scale +msgid "scalar interval measure" msgstr "" -#: js/ProgramBlocks.js:1347 -msgid "The Open project block is used to open a project from a web page." +#: js/blocks/IntervalsBlocks.js:678 +msgid "In the figure, we add sol# to sol." msgstr "" -#: js/ProgramBlocks.js:1357 -msgid "open project" +#: js/blocks/IntervalsBlocks.js:684 +#: js/blocks/OrnamentBlocks.js:220 +#.TRANS: calculate a relative step between notes based on semi-tones +msgid "semi-tone interval" msgstr "" -#: js/ProgramBlocks.js:1410 -msgid "Please enter a valid URL." +#: js/blocks/IntervalsBlocks.js:733 +msgid "The output of the example is: do, mi, sol, sol, ti, mi" msgstr "" -#: js/DrumBlocks.js:59 -msgid "The Noise name block is used to select a noise synthesizer." +#: js/blocks/IntervalsBlocks.js:740 +#: js/blocks/WidgetBlocks.js:768 +msgid "arpeggio" msgstr "" -#: js/DrumBlocks.js:102 -msgid "The Drum name block is used to select a drum." +#: js/blocks/IntervalsBlocks.js:931 +msgid "The Chord block calculates common chords." msgstr "" -#: js/DrumBlocks.js:146 -msgid "The Effects name block is used to select a sound effect." +#: js/blocks/IntervalsBlocks.js:933 +msgid "In the figure, we generate a C-major chord." msgstr "" -#: js/DrumBlocks.js:163 -msgid "noise" +#: js/blocks/IntervalsBlocks.js:938 +msgid "chord" msgstr "" -#: js/DrumBlocks.js:177 -msgid "The Play noise block will generate white, pink, or brown noise." +#: js/blocks/IntervalsBlocks.js:990 +msgid "The Ratio Interval block calculates an interval based on a ratio." msgstr "" -#: js/DrumBlocks.js:191 -#: js/musicutils.js:752 -#: js/synthutils.js:47 -#.TRANS: white noise synthesizer -msgid "white noise" +#: js/blocks/IntervalsBlocks.js:995 +msgid "ratio interval" msgstr "" -#: js/DrumBlocks.js:326 -msgid "Replace every instance of a pitch with a drum sound." +#: js/blocks/IntervalsBlocks.js:1064 +msgid "In the figure, we add la to sol." msgstr "" -#: js/DrumBlocks.js:337 -#.TRANS: map a pitch to a drum sound -msgid "map pitch to drum" +#: js/blocks/IntervalsBlocks.js:1120 +#.TRANS: define a custom mode +msgid "define mode" msgstr "" -#: js/DrumBlocks.js:404 -msgid "In the example above, a kick drum sound will be played instead of sol." +#: js/blocks/IntervalsBlocks.js:1173 +msgid "movable Do" msgstr "" -#: js/DrumBlocks.js:416 -#.TRANS: set the current drum sound for playback -msgid "set drum" +#: js/blocks/IntervalsBlocks.js:1224 +#.TRANS: mode length is the number of notes in the mode, e.g., 7 for major and minor scales; 12 for chromatic scales +msgid "mode length" msgstr "" -#: js/DrumBlocks.js:460 -msgid "sound effect" +#: js/blocks/IntervalsBlocks.js:1233 +msgid "The Mode length block is the number of notes in the current scale." msgstr "" -#: js/DrumBlocks.js:498 -msgid "You can use multiple Drum blocks within a Note block." +#: js/blocks/IntervalsBlocks.js:1235 +msgid "Most Western scales have 7 notes." msgstr "" -#: js/RhythmBlocks.js:182 -#: js/RhythmBlocks.js:1086 -#: js/RhythmBlocks.js:1162 -msgid "Note value must be greater than 0." +#: js/blocks/IntervalsBlocks.js:1284 +#.TRANS: the mode in music is 'major', 'minor', etc. +msgid "current mode" msgstr "" -#: js/RhythmBlocks.js:215 -#: js/RhythmBlocks.js:278 -#: js/RhythmBlocks.js:350 -#.TRANS: swing is a rhythmic variation that emphasises the offbeat -msgid "swing" +#: js/blocks/IntervalsBlocks.js:1337 +#.TRANS: the key is a group of pitches with which a music composition is created +msgid "current key" msgstr "" -#: js/RhythmBlocks.js:355 -#.TRANS: the amount to shift to the offbeat note -msgid "swing value" +#: js/blocks/IntervalsBlocks.js:1389 +#: js/blocks/IntervalsBlocks.js:1434 +#.TRANS: set the key and mode, e.g. C Major +msgid "set key" msgstr "" -#: js/RhythmBlocks.js:419 -msgid "The Skip notes block will cause notes to be skipped." +#: js/blocks/IntervalsBlocks.js:1443 +#: js/blocks/IntervalsBlocks.js:1449 +msgid "The Set key block is used to set the key and mode," msgstr "" -#: js/RhythmBlocks.js:427 -#.TRANS: substitute rests on notes being skipped -msgid "skip notes" +#: js/blocks/IntervalsBlocks.js:1449 +msgid "eg C Major" msgstr "" -#: js/RhythmBlocks.js:489 -#.TRANS: speed up note duration by some factor, e.g. convert 1/4 to 1/8 notes by using a factor of 2 -msgid "multiply note value" +#: js/blocks/MediaBlocks.js:35 +#.TRANS: right side of the screen +msgid "right (screen)" msgstr "" -#: js/RhythmBlocks.js:542 -msgid "The Tie block works on pairs of notes, combining them into one note." +#: js/blocks/MediaBlocks.js:45 +#: js/blocks/MediaBlocks.js:56 +msgid "The Right block returns the position of the right of the canvas." msgstr "" -#: js/RhythmBlocks.js:550 -#.TRANS: tie notes together into one longer note -msgid "tie" +#: js/blocks/MediaBlocks.js:97 +#.TRANS: left side of the screen +msgid "left (screen)" msgstr "" -#: js/RhythmBlocks.js:591 -#: js/RhythmBlocks.js:671 -#.TRANS: a dotted note is played for 1.5x its value, e.g., 1/8. --> 3/16 -msgid "dot" +#: js/blocks/MediaBlocks.js:107 +#: js/blocks/MediaBlocks.js:118 +msgid "The Left block returns the position of the left of the canvas." msgstr "" -#: js/RhythmBlocks.js:619 -#: js/RhythmActions.js:221 -msgid "An argument of -1 results in a note value of 0." +#: js/blocks/MediaBlocks.js:158 +msgid "top (screen)" msgstr "" -#: js/RhythmBlocks.js:661 -msgid "The Dot block extends the duration of a note by 50%." +#: js/blocks/MediaBlocks.js:168 +#: js/blocks/MediaBlocks.js:179 +msgid "The Top block returns the position of the top of the canvas." msgstr "" -#: js/RhythmBlocks.js:663 -msgid "Eg a dotted quarter note will play for 3/8 (1/4 + 1/8) of a beat." +#: js/blocks/MediaBlocks.js:219 +msgid "bottom (screen)" msgstr "" -#: js/RhythmBlocks.js:765 -#.TRANS: Japanese only: note value block for drum -msgid "note value drum" +#: js/blocks/MediaBlocks.js:229 +#: js/blocks/MediaBlocks.js:240 +msgid "The Bottom block returns the position of the bottom of the canvas." msgstr "" -#: js/RhythmBlocks.js:829 -msgid "392 hertz" +#: js/blocks/MediaBlocks.js:282 +msgid "width" msgstr "" -#: js/RhythmBlocks.js:1119 -msgid "The Note block is a container for one or more Pitch blocks." +#: js/blocks/MediaBlocks.js:291 +msgid "The Width block returns the width of the canvas." msgstr "" -#: js/RhythmBlocks.js:1121 -msgid "The Note block specifies the duration (note value) of its contents." +#: js/blocks/MediaBlocks.js:325 +msgid "height" msgstr "" -#: js/RhythmBlocks.js:1130 -msgid "value2" +#: js/blocks/MediaBlocks.js:334 +msgid "The Height block returns the height of the canvas." msgstr "" -#: js/RhythmBlocks.js:1200 -msgid "define frequency" +#: js/blocks/MediaBlocks.js:369 +#.TRANS: stops playback of an audio recording +msgid "stop play" msgstr "" -#: js/RhythmBlocks.js:1218 -#: js/temperament.js:650 -#: js/temperament.js:1421 -msgid "octave space" +#: js/blocks/MediaBlocks.js:404 +#.TRANS: Erases the images and text +msgid "erase media" msgstr "" -#: js/NumberBlocks.js:28 -msgid "The Int block returns an integer." +#: js/blocks/MediaBlocks.js:409 +msgid "The Erase Media block erases text and images." msgstr "" -#: js/NumberBlocks.js:34 -msgid "int" +#: js/blocks/MediaBlocks.js:439 +#.TRANS: play an audio recording +msgid "play back" msgstr "" -#: js/NumberBlocks.js:73 -msgid "The Mod block returns the remainder from a division." -msgstr "" +#: js/blocks/MediaBlocks.js:487 +msgid "speak" +msgstr "spreek" -#: js/NumberBlocks.js:79 -msgid "mod" -msgstr "mod" +#: js/blocks/MediaBlocks.js:495 +msgid "The Speak block outputs to the text-to-speech synthesizer" +msgstr "" -#: js/NumberBlocks.js:123 -msgid "The Power block calculates a power function." +#: js/blocks/MediaBlocks.js:546 +msgid "camera" msgstr "" -#: js/NumberBlocks.js:178 -msgid "The Sqrt block returns the square root." +#: js/blocks/MediaBlocks.js:551 +msgid "The Camera block connects a webcam to the Show block." msgstr "" -#: js/NumberBlocks.js:184 -msgid "sqrt" +#: js/blocks/MediaBlocks.js:574 +msgid "video" msgstr "" -#: js/NumberBlocks.js:230 -msgid "The Abs block returns the absolute value." +#: js/blocks/MediaBlocks.js:579 +msgid "The Video block selects video for use with the Show block." msgstr "" -#: js/NumberBlocks.js:236 -msgid "abs" +#: js/blocks/MediaBlocks.js:607 +msgid "The Open file block opens a file for use with the Show block." msgstr "" -#: js/NumberBlocks.js:277 -msgid "The Distance block returns the distance between two points. For example, between the mouse and the center of the screen." +#: js/blocks/MediaBlocks.js:645 +msgid "stop media" msgstr "" -#: js/NumberBlocks.js:283 -#: plugins/rodi.rtp:310 -msgid "distance" +#: js/blocks/MediaBlocks.js:650 +msgid "The Stop media block stops audio or video playback." msgstr "" -#: js/NumberBlocks.js:343 -msgid "The Divide block is used to divide." +#: js/blocks/MediaBlocks.js:679 +#: js/blocks/PitchBlocks.js:1577 +#: js/widgets/musickeyboard.js:1936 +#: js/widgets/phrasemaker.js:1037 +#.TRANS: a measure of frequency: one cycle per second +msgid "hertz" msgstr "" -#: js/NumberBlocks.js:411 -msgid "The Multiply block is used to multiply." +#: js/blocks/MediaBlocks.js:692 +#: js/blocks/WidgetBlocks.js:182 +#: js/widgets/temperament.js:506 +#: js/widgets/temperament.js:546 +#: js/widgets/temperament.js:610 +#: js/widgets/temperament.js:618 +#: js/widgets/temperament.js:1505 +#: js/widgets/timbre.js:1842 +msgid "frequency" msgstr "" -#: js/NumberBlocks.js:554 -msgid "The Minus block is used to subtract." +#: js/blocks/MediaBlocks.js:692 +msgid "duration (ms)" msgstr "" -#: js/NumberBlocks.js:647 -msgid "The Plus block is used to add." +#: js/blocks/MediaBlocks.js:728 +#.TRANS: translate a note into hertz, e.g., A4 -> 440HZ +msgid "note to frequency" msgstr "" -#: js/NumberBlocks.js:773 -msgid "The One-of block returns one of two choices." +#: js/blocks/MediaBlocks.js:736 +msgid "The To frequency block converts a pitch name and octave to Hertz." msgstr "" -#: js/NumberBlocks.js:780 -#: js/PitchBlocks.js:616 -msgid "one of" +#: js/blocks/MediaBlocks.js:746 +#: js/blocks/PitchBlocks.js:656 +#: js/blocks/PitchBlocks.js:934 +#: js/blocks/PitchBlocks.js:1866 +#.TRANS: name2 is name as in name of pitch (JAPANESE ONLY) +msgid "name2" msgstr "" -#: js/NumberBlocks.js:782 -msgid "this" +#: js/blocks/MediaBlocks.js:812 +msgid "The Avatar block is used to change the appearance of the mouse." msgstr "" -#: js/NumberBlocks.js:782 -msgid "that" +#: js/blocks/MediaBlocks.js:819 +msgid "The Avatar block is used to change the appearance of the turtle." msgstr "" -#: js/NumberBlocks.js:837 -msgid "The Random block returns a random number." +#: js/blocks/MediaBlocks.js:831 +#: js/blocks/MediaBlocks.js:891 +#.TRANS: a media object +msgid "size" msgstr "" -#: js/NumberBlocks.js:844 -msgid "random" -msgstr "willekeurig" +#: js/blocks/MediaBlocks.js:831 +msgid "image" +msgstr "afbeelding" -#: js/NumberBlocks.js:846 -msgid "min" -msgstr "min" +#: js/blocks/MediaBlocks.js:880 +msgid "The Show block is used to display text or images on the canvas." +msgstr "" -#: js/NumberBlocks.js:846 -msgid "max" -msgstr "max" +#: js/blocks/MediaBlocks.js:888 +#.TRANS: show1 is show as in display an image or text on the screen. +msgid "show1" +msgstr "" -#: js/NumberBlocks.js:910 -msgid "The Number block holds a number." +#: js/blocks/MediaBlocks.js:891 +msgid "obj" msgstr "" -#: js/BoxesBlocks.js:53 -#: js/BoxesBlocks.js:59 -msgid "The Add-to block is used to add to the value stored in a box." +#: js/blocks/MediaBlocks.js:938 +msgid "The Media block is used to import an image." msgstr "" -#: js/BoxesBlocks.js:61 -msgid "It can also be used with other blocks such as Color and Pen size." +#: js/blocks/MediaBlocks.js:973 +msgid "The Text block holds a text string." msgstr "" -#: js/BoxesBlocks.js:73 -msgid "add" +#: js/blocks/MeterBlocks.js:34 +#.TRANS: musical meter (time signature), e.g., 4:4 +msgid "current meter" msgstr "" -#: js/BoxesBlocks.js:75 -#: js/temperament.js:716 -msgid "to" +#: js/blocks/MeterBlocks.js:85 +#.TRANS: number of beats per minute +msgid "beat factor" msgstr "" -#: js/BoxesBlocks.js:75 -#: js/BoxesBlocks.js:595 -#: js/HeapBlocks.js:544 -msgid "value1" +#: js/blocks/MeterBlocks.js:161 +msgid "The Beats per minute block returns the current beats per minute." msgstr "" -#: js/BoxesBlocks.js:118 -msgid "Block does not support incrementing." +#: js/blocks/MeterBlocks.js:169 +#: js/widgets/status.js:152 +#.TRANS: number of beats played per minute +msgid "beats per minute2" msgstr "" -#: js/BoxesBlocks.js:152 -msgid "The Add-1-to block adds one to the value stored in a box." +#: js/blocks/MeterBlocks.js:169 +#: js/blocks/MeterBlocks.js:1056 +#: js/blocks/MeterBlocks.js:1133 +#: js/blocks/MeterBlocks.js:1211 +#.TRANS: sets tempo by defining a beat and beats per minute +msgid "beats per minute" msgstr "" -#: js/BoxesBlocks.js:163 -msgid "add 1 to" +#: js/blocks/MeterBlocks.js:233 +#.TRANS: count of current musical measure in meter +msgid "measure count" msgstr "" -#: js/BoxesBlocks.js:211 -msgid "The Subtract-1-from block subtracts one from the value stored in a box." +#: js/blocks/MeterBlocks.js:241 +msgid "The Measure count block returns the current measure." msgstr "" -#: js/BoxesBlocks.js:222 -msgid "subtract 1 from" +#: js/blocks/MeterBlocks.js:290 +#.TRANS: count of current beat in the meter +msgid "beat count" msgstr "" -#: js/BoxesBlocks.js:270 -#: js/BoxesBlocks.js:387 -msgid "The Box block returns the value stored in a box." +#: js/blocks/MeterBlocks.js:300 +#: js/blocks/MeterBlocks.js:311 +#: js/blocks/MeterBlocks.js:565 +#: js/blocks/MeterBlocks.js:576 +msgid "The Beat count block is the number of the current beat," msgstr "" -#: js/BoxesBlocks.js:500 -#: js/BoxesBlocks.js:576 -msgid "The Store in block will store a value in a box." +#: js/blocks/MeterBlocks.js:313 +#: js/blocks/MeterBlocks.js:578 +msgid "eg 1, 2, 3, or 4." msgstr "" -#: js/BoxesBlocks.js:652 -msgid "The Box2 block returns the value stored in Box2." +#: js/blocks/MeterBlocks.js:368 +#.TRANS: count the number of notes +msgid "sum note values" msgstr "" -#: js/BoxesBlocks.js:703 -msgid "The Store in Box2 block is used to store a value in Box2." +#: js/blocks/MeterBlocks.js:376 +#: js/blocks/MeterBlocks.js:440 +msgid "The Note counter block can be used to count the number of contained notes." msgstr "" -#: js/BoxesBlocks.js:715 -msgid "store in box2" +#: js/blocks/MeterBlocks.js:432 +#.TRANS: count the number of notes +msgid "note counter" msgstr "" -#: js/BoxesBlocks.js:761 -msgid "The Box1 block returns the value stored in Box1." +#: js/blocks/MeterBlocks.js:496 +#.TRANS: number of whole notes that have been played +msgid "whole notes played" msgstr "" -#: js/BoxesBlocks.js:812 -msgid "The Store in Box1 block is used to store a value in Box1." +#: js/blocks/MeterBlocks.js:505 +msgid "The Whole notes played block returns the total number of whole notes played." msgstr "" -#: js/BoxesBlocks.js:826 -msgid "store in box1" +#: js/blocks/MeterBlocks.js:555 +#: js/turtleactions/DictActions.js:83 +#.TRANS: number of notes that have been played +msgid "notes played" msgstr "" -#: js/HeapBlocks.js:49 -msgid "The Heap block returns the heap." +#: js/blocks/MeterBlocks.js:653 +msgid "The No clock block decouples the notes from the master clock." msgstr "" -#: js/HeapBlocks.js:133 -msgid "show heap" -msgstr "stapel weergeven" +#: js/blocks/MeterBlocks.js:661 +#.TRANS: don't lock notes to master clock +msgid "no clock" +msgstr "" -#: js/HeapBlocks.js:181 -msgid "The Heap-length block returns the length of the heap." +#: js/blocks/MeterBlocks.js:700 +msgid "on weak beat do" msgstr "" -#: js/HeapBlocks.js:195 -msgid "heap length" +#: js/blocks/MeterBlocks.js:705 +msgid "The On-weak-beat block lets you specify actions to take on weak (off) beats." msgstr "" -#: js/HeapBlocks.js:254 -msgid "The Heap-empty? block returns true if the heap is empty." +#: js/blocks/MeterBlocks.js:750 +msgid "on strong beat" msgstr "" -#: js/HeapBlocks.js:268 -#.TRANS: Is the heap empty? -msgid "heap empty?" +#: js/blocks/MeterBlocks.js:758 +msgid "The On-strong-beat block lets you specify actions to take on specified beats." msgstr "" -#: js/HeapBlocks.js:317 -msgid "The Empty-heap block empties the heap." +#: js/blocks/MeterBlocks.js:769 +msgid "beat" msgstr "" -#: js/HeapBlocks.js:327 -#: js/HeapBlocks.js:647 -#.TRANS: empty the heap -msgid "empty heap" -msgstr "stapel wissen" +#: js/blocks/MeterBlocks.js:813 +msgid "on every beat do" +msgstr "" -#: js/HeapBlocks.js:371 -msgid "The Reverse-heap block reverses the order of the heap." +#: js/blocks/MeterBlocks.js:821 +msgid "The On-every-beat block lets you specify actions to take on every beat." msgstr "" -#: js/HeapBlocks.js:384 -#.TRANS: reverse the order of the heap -msgid "reverse heap" +#: js/blocks/MeterBlocks.js:874 +msgid "on every note do" msgstr "" -#: js/HeapBlocks.js:428 -msgid "The Index-heap block returns a value in the heap at a specified location." +#: js/blocks/MeterBlocks.js:882 +msgid "The On-every-note block lets you specify actions to take on every note." msgstr "" -#: js/HeapBlocks.js:443 -#.TRANS: retrieve a value from the heap at index position in the heap -msgid "index heap" +#: js/blocks/MeterBlocks.js:928 +#: js/blocks/MeterBlocks.js:999 +#.TRANS: sets tempo by defining a beat and beats per minute +msgid "master beats per minute" msgstr "" -#: js/HeapBlocks.js:523 -msgid "The Set-heap entry block sets a value in he heap at the specified location." +#: js/blocks/MeterBlocks.js:952 +#: js/blocks/MeterBlocks.js:1078 +#: js/blocks/MeterBlocks.js:1135 +msgid "bpm" msgstr "" -#: js/HeapBlocks.js:619 -msgid "The Pop block removes the value at the top of the heap." +#: js/blocks/MeterBlocks.js:952 +#: js/blocks/MeterBlocks.js:1078 +#: js/blocks/MeterBlocks.js:1135 +msgid "beat value" msgstr "" -#: js/HeapBlocks.js:633 -#.TRANS: pop a value off the top of the heap -msgid "pop" -msgstr "afnemen" +#: js/blocks/MeterBlocks.js:1024 +#: js/blocks/MeterBlocks.js:1167 +#: js/blocks/MeterBlocks.js:1241 +msgid "Beats per minute must be > 30." +msgstr "" -#: js/HeapBlocks.js:680 -msgid "The Push block adds a value to the top of the heap." +#: js/blocks/MeterBlocks.js:1027 +#: js/blocks/MeterBlocks.js:1170 +#: js/blocks/MeterBlocks.js:1244 +msgid "Maximum beats per minute is 1000." msgstr "" -#: js/HeapBlocks.js:696 -#.TRANS: push a value onto the top of the heap -msgid "push" -msgstr "neerleggen" +#: js/blocks/MeterBlocks.js:1068 +msgid "The Beats per minute block sets the number of 1/4 notes per minute." +msgstr "" -#: js/FlowBlocks.js:41 -msgid "The Backward block runs code in reverse order (Musical retrograde)." +#: js/blocks/MeterBlocks.js:1279 +#.TRANS: anacrusis +msgid "pickup" msgstr "" -#: js/FlowBlocks.js:48 -msgid "backward" +#: js/blocks/MeterBlocks.js:1367 +msgid "number of beats" msgstr "" -#: js/FlowBlocks.js:124 -msgid "The Duplicate block will run each block multiple times." +#: js/blocks/NumberBlocks.js:28 +msgid "The Int block returns an integer." msgstr "" -#: js/FlowBlocks.js:136 -msgid "duplicate" +#: js/blocks/NumberBlocks.js:34 +msgid "int" msgstr "" -#: js/FlowBlocks.js:334 -msgid "The Default block is used inside of a Switch to define the default action." +#: js/blocks/NumberBlocks.js:73 +msgid "The Mod block returns the remainder from a division." +msgstr "" + +#: js/blocks/NumberBlocks.js:79 +msgid "mod" +msgstr "mod" + +#: js/blocks/NumberBlocks.js:141 +msgid "The Power block calculates a power function." msgstr "" -#: js/FlowBlocks.js:342 -msgid "default" +#: js/blocks/NumberBlocks.js:196 +msgid "The Sqrt block returns the square root." msgstr "" -#: js/FlowBlocks.js:361 -#: js/FlowBlocks.js:418 -msgid "The Case Block must be used inside of a Switch Block." +#: js/blocks/NumberBlocks.js:202 +msgid "sqrt" msgstr "" -#: js/FlowBlocks.js:389 -msgid "The Case block is used inside of a Switch to define matches." +#: js/blocks/NumberBlocks.js:248 +msgid "The Abs block returns the absolute value." msgstr "" -#: js/FlowBlocks.js:397 -msgid "case" +#: js/blocks/NumberBlocks.js:254 +msgid "abs" msgstr "" -#: js/FlowBlocks.js:446 -msgid "The Switch block will run the code in the matching Case." +#: js/blocks/NumberBlocks.js:295 +msgid "The Distance block returns the distance between two points. For example, between the mouse and the center of the screen." msgstr "" -#: js/FlowBlocks.js:454 -msgid "switch" +#: js/blocks/NumberBlocks.js:301 +#: plugins/rodi.rtp:310 +msgid "distance" msgstr "" -#: js/FlowBlocks.js:595 -msgid "The Stop block will stop a loop" +#: js/blocks/NumberBlocks.js:361 +msgid "The Divide block is used to divide." msgstr "" -#: js/FlowBlocks.js:597 -msgid "Forever, Repeat, While, or Until." +#: js/blocks/NumberBlocks.js:441 +msgid "The Multiply block is used to multiply." msgstr "" -#: js/FlowBlocks.js:604 -#: js/phrasemaker.js:3799 -#: js/musickeyboard.js:629 -#: js/musickeyboard.js:631 -#: js/timbre.js:417 -#: js/timbre.js:419 -#: plugins/rodi.rtp:29 -#: plugins/rodi.rtp:73 -#: plugins/rodi.rtp:413 -msgid "stop" -msgstr "stop" - -#: js/FlowBlocks.js:653 -msgid "The Waitfor block will wait until the condition is true." +#: js/blocks/NumberBlocks.js:612 +msgid "The Minus block is used to subtract." msgstr "" -#: js/FlowBlocks.js:661 -msgid "wait for" +#: js/blocks/NumberBlocks.js:723 +msgid "The Plus block is used to add." msgstr "" -#: js/FlowBlocks.js:732 -msgid "The Until block will repeat until the condition is true." +#: js/blocks/NumberBlocks.js:849 +msgid "The One-of block returns one of two choices." msgstr "" -#: js/FlowBlocks.js:740 -msgid "until" -msgstr "totdat" - -#: js/FlowBlocks.js:742 -#: js/FlowBlocks.js:822 -msgid "do2" +#: js/blocks/NumberBlocks.js:856 +#: js/blocks/PitchBlocks.js:616 +msgid "one of" msgstr "" -#: js/FlowBlocks.js:812 -msgid "The While block will repeat while the condition is true." +#: js/blocks/NumberBlocks.js:858 +msgid "this" msgstr "" -#: js/FlowBlocks.js:820 -msgid "while" -msgstr "zolang" +#: js/blocks/NumberBlocks.js:858 +msgid "that" +msgstr "" -#: js/FlowBlocks.js:903 -#: js/FlowBlocks.js:968 -#: js/FlowBlocks.js:979 -msgid "In this example if the mouse button is pressed a snare drum will play." +#: js/blocks/NumberBlocks.js:913 +msgid "The Random block returns a random number." msgstr "" -#: js/FlowBlocks.js:925 -#: js/FlowBlocks.js:988 -msgid "if" -msgstr "als" +#: js/blocks/NumberBlocks.js:920 +msgid "random" +msgstr "willekeurig" -#: js/FlowBlocks.js:927 -#: js/FlowBlocks.js:990 -msgid "then" -msgstr "dan" +#: js/blocks/NumberBlocks.js:922 +msgid "min" +msgstr "min" -#: js/FlowBlocks.js:927 -msgid "else" -msgstr "anders" +#: js/blocks/NumberBlocks.js:922 +msgid "max" +msgstr "max" -#: js/FlowBlocks.js:1025 -msgid "The Forever block will repeat the contained blocks forever." +#: js/blocks/NumberBlocks.js:986 +msgid "The Number block holds a number." msgstr "" -#: js/FlowBlocks.js:1037 -msgid "forever" -msgstr "altijd" - -#: js/FlowBlocks.js:1073 -msgid "The Repeat block will repeat the contained blocks." +#: js/blocks/OrnamentBlocks.js:32 +msgid "staccato factor" msgstr "" -#: js/FlowBlocks.js:1075 -msgid "In this example the note will be played 4 times." +#: js/blocks/OrnamentBlocks.js:108 +msgid "slur factor" msgstr "" -#: js/FlowBlocks.js:1083 -msgid "repeat" -msgstr "herhaal" - -#: js/FlowBlocks.js:1123 -msgid "duplicate factor" +#: js/blocks/OrnamentBlocks.js:217 +#: js/blocks/OrnamentBlocks.js:309 +#.TRANS: the neighbor refers to a neighboring note, e.g., D is a neighbor of C +msgid "neighbor" msgstr "" -#: js/PitchBlocks.js:39 -#: js/musicutils.js:722 -#: js/musicutils.js:1117 -#: js/synthutils.js:112 -#.TRANS: square wave -msgid "square" +#: js/blocks/OrnamentBlocks.js:293 +msgid "The Neighbor block rapidly switches between neighboring pitches." msgstr "" -#: js/PitchBlocks.js:62 -#: js/ToneBlocks.js:39 -#: js/musicutils.js:723 -#: js/musicutils.js:1118 -#: js/synthutils.js:116 -#.TRANS: triangle wave -msgid "triangle" +#: js/blocks/OrnamentBlocks.js:364 +msgid "glide" msgstr "" -#: js/PitchBlocks.js:85 -#: js/musicutils.js:721 -#: js/musicutils.js:1116 -#: js/synthutils.js:110 -#.TRANS: sine wave -msgid "sine" +#: js/blocks/OrnamentBlocks.js:479 +#: js/blocks/OrnamentBlocks.js:643 +msgid "slur" msgstr "" -#: js/PitchBlocks.js:108 -#: js/musicutils.js:724 -#: js/musicutils.js:1119 -#: js/synthutils.js:114 -#.TRANS: sawtooth wave -msgid "sawtooth" +#: js/blocks/OrnamentBlocks.js:558 +#: js/blocks/OrnamentBlocks.js:710 +#.TRANS: play each note sharply detached from the others +msgid "staccato" msgstr "" -#: js/PitchBlocks.js:141 -#.TRANS: musical transposition (adjustment of pitch up or down) -msgid "transposition" +#: js/blocks/RhythmBlocks.js:182 +#: js/blocks/RhythmBlocks.js:1086 +#: js/blocks/RhythmBlocks.js:1162 +msgid "Note value must be greater than 0." msgstr "" -#: js/PitchBlocks.js:168 -#.TRANS: step down one note in current musical scale -msgid "scalar step down" +#: js/blocks/RhythmBlocks.js:215 +#: js/blocks/RhythmBlocks.js:278 +#: js/blocks/RhythmBlocks.js:350 +#.TRANS: swing is a rhythmic variation that emphasises the offbeat +msgid "swing" msgstr "" -#: js/PitchBlocks.js:172 -msgid "The Scalar step down block returns the number of semi-tones down to the previous note in the current key and mode." +#: js/blocks/RhythmBlocks.js:355 +#.TRANS: the amount to shift to the offbeat note +msgid "swing value" msgstr "" -#: js/PitchBlocks.js:190 -#.TRANS: step up one note in current musical scale -msgid "scalar step up" +#: js/blocks/RhythmBlocks.js:419 +msgid "The Skip notes block will cause notes to be skipped." msgstr "" -#: js/PitchBlocks.js:194 -msgid "The Scalar step up block returns the number of semi-tones up to the next note in the current key and mode." +#: js/blocks/RhythmBlocks.js:427 +#.TRANS: substitute rests on notes being skipped +msgid "skip notes" msgstr "" -#: js/PitchBlocks.js:212 -#.TRANS: the change measured in half-steps between the current pitch and the previous pitch -msgid "change in pitch" +#: js/blocks/RhythmBlocks.js:489 +#.TRANS: speed up note duration by some factor, e.g. convert 1/4 to 1/8 notes by using a factor of 2 +msgid "multiply note value" msgstr "" -#: js/PitchBlocks.js:216 -msgid "The Change in pitch block is the difference (in half steps) between the current pitch being played and the previous pitch played." +#: js/blocks/RhythmBlocks.js:542 +msgid "The Tie block works on pairs of notes, combining them into one note." msgstr "" -#: js/PitchBlocks.js:243 -#.TRANS: the change measured in scale-steps between the current pitch and the previous pitch -msgid "scalar change in pitch" +#: js/blocks/RhythmBlocks.js:550 +#.TRANS: tie notes together into one longer note +msgid "tie" msgstr "" -#: js/PitchBlocks.js:250 -#: js/PitchBlocks.js:432 -#: js/PitchBlocks.js:1629 -#: js/DictActions.js:89 -#: js/temperament.js:477 -#: js/temperament.js:481 -#: js/temperament.js:714 -#.TRANS: convert current note to piano key (1-88) -#.TRANS: a mapping of pitch to the 88 piano keys -msgid "pitch number" +#: js/blocks/RhythmBlocks.js:591 +#: js/blocks/RhythmBlocks.js:671 +#.TRANS: a dotted note is played for 1.5x its value, e.g., 1/8. --> 3/16 +msgid "dot" msgstr "" -#: js/PitchBlocks.js:256 -msgid "The Pitch number block is the value of the pitch of the note currently being played." +#: js/blocks/RhythmBlocks.js:619 +#: js/turtleactions/RhythmActions.js:221 +msgid "An argument of -1 results in a note value of 0." msgstr "" -#: js/PitchBlocks.js:329 -#: js/PitchBlocks.js:433 -#.TRANS: the current pitch expressed in Hertz -msgid "pitch in hertz" +#: js/blocks/RhythmBlocks.js:661 +msgid "The Dot block extends the duration of a note by 50%." msgstr "" -#: js/PitchBlocks.js:334 -msgid "The Pitch in Hertz block is the value in Hertz of the pitch of the note currently being played." +#: js/blocks/RhythmBlocks.js:663 +msgid "Eg a dotted quarter note will play for 3/8 (1/4 + 1/8) of a beat." msgstr "" -#: js/PitchBlocks.js:367 -#: js/DictActions.js:87 -msgid "current pitch" +#: js/blocks/RhythmBlocks.js:765 +#.TRANS: Japanese only: note value block for drum +msgid "note value drum" msgstr "" -#: js/PitchBlocks.js:373 -msgid "The Current Pitch block is used with the Pitch Converter block. In the example above, current pitch, sol 4, is displayed as 392 hertz." +#: js/blocks/RhythmBlocks.js:829 +msgid "392 hertz" msgstr "" -#: js/PitchBlocks.js:410 -msgid "This block converts the pitch value of the last note played into different formats such as hertz, letter name, pitch number, et al." +#: js/blocks/RhythmBlocks.js:1119 +msgid "The Note block is a container for one or more Pitch blocks." msgstr "" -#: js/PitchBlocks.js:434 -msgid "alphabet" +#: js/blocks/RhythmBlocks.js:1121 +msgid "The Note block specifies the duration (note value) of its contents." msgstr "" -#: js/PitchBlocks.js:436 -#.TRANS: Translate as "alphabet class" -msgid "letter class" +#: js/blocks/RhythmBlocks.js:1128 +#: js/blocks/PitchBlocks.js:974 +#: js/blocks/PitchBlocks.js:1007 +#: js/blocks/ProgramBlocks.js:1186 +#: js/blocks/ProgramBlocks.js:1227 +#: js/widgets/status.js:190 +#: js/widgets/temperament.js:464 +#: js/widgets/temperament.js:486 +#: js/widgets/temperament.js:496 +#: js/widgets/temperament.js:617 +#: plugins/rodi.rtp:192 +#.TRANS: a musical note consisting of pitch and duration +msgid "note" msgstr "" -#: js/PitchBlocks.js:437 -msgid "solfege class" +#: js/blocks/RhythmBlocks.js:1130 +msgid "value2" msgstr "" -#: js/PitchBlocks.js:438 -msgid "staff y" +#: js/blocks/RhythmBlocks.js:1200 +msgid "define frequency" msgstr "" -#: js/PitchBlocks.js:439 -msgid "solfege syllable" +#: js/blocks/RhythmBlocks.js:1218 +#: js/widgets/temperament.js:787 +#: js/widgets/temperament.js:1587 +msgid "octave space" msgstr "" -#: js/PitchBlocks.js:440 -msgid "pitch class" +#: js/blocks/SensorsBlocks.js:36 +msgid "The Input block prompts for keyboard input." msgstr "" -#: js/PitchBlocks.js:441 -msgid "scalar class" +#: js/blocks/SensorsBlocks.js:46 +msgid "input" msgstr "" -#: js/PitchBlocks.js:443 -msgid "nth degree" +#: js/blocks/SensorsBlocks.js:64 +msgid "Input a value" msgstr "" -#: js/PitchBlocks.js:444 -msgid "pitch to shade" +#: js/blocks/SensorsBlocks.js:126 +msgid "input value" msgstr "" -#: js/PitchBlocks.js:445 -msgid "pitch to color" +#: js/blocks/SensorsBlocks.js:131 +msgid "The Input-value block stores the input." msgstr "" -#: js/PitchBlocks.js:629 -#: js/musickeyboard.js:565 -#.TRANS: MIDI is a technical standard for electronic music -msgid "MIDI" -msgstr "" +#: js/blocks/SensorsBlocks.js:238 +msgid "loudness" +msgstr "luidheid" -#: js/PitchBlocks.js:642 -#.TRANS: set an offset associated with the numeric piano keyboard mapping -msgid "set pitch number offset" +#: js/blocks/SensorsBlocks.js:245 +msgid "The Loudness block returns the volume detected by the microphone." msgstr "" -#: js/PitchBlocks.js:645 -msgid "The Set pitch number offset block is used to set the offset for mapping pitch numbers to pitch and octave." +#: js/blocks/SensorsBlocks.js:300 +msgid "click" msgstr "" -#: js/PitchBlocks.js:679 -#.TRANS: convert piano key number (1-88) to pitch -msgid "number to pitch" +#: js/blocks/SensorsBlocks.js:306 +msgid "The Click block triggers an event if a mouse has been clicked." msgstr "" -#: js/PitchBlocks.js:682 -msgid "The Number to pitch block will convert a pitch number to a pich name." +#: js/blocks/SensorsBlocks.js:313 +msgid "The Click block triggers an event if a turtle has been clicked." msgstr "" -#: js/PitchBlocks.js:715 -#.TRANS: convert piano key number (1-88) to octave -msgid "number to octave" +#: js/blocks/SensorsBlocks.js:342 +msgid "cursor over" msgstr "" -#: js/PitchBlocks.js:717 -msgid "The Number to octave block will convert a pitch number to an octave." +#: js/blocks/SensorsBlocks.js:387 +msgid "cursor out" msgstr "" -#: js/PitchBlocks.js:726 -msgid "y to pitch" +#: js/blocks/SensorsBlocks.js:433 +msgid "cursor button down" msgstr "" -#: js/PitchBlocks.js:729 -msgid "Y to pitch block will convert a staff y position to corresponding pitch notation." +#: js/blocks/SensorsBlocks.js:477 +msgid "cursor button up" msgstr "" -#: js/PitchBlocks.js:841 -msgid "accidental selector" +#: js/blocks/SensorsBlocks.js:521 +#: js/blocks/PenBlocks.js:48 +#: plugins/rodi.rtp:219 +msgid "blue" msgstr "" -#: js/PitchBlocks.js:844 -msgid "The Accidental selector block is used to choose between double-sharp, sharp, natural, flat, and double-flat." +#: js/blocks/SensorsBlocks.js:577 +#: js/blocks/PenBlocks.js:64 +#: plugins/rodi.rtp:218 +msgid "green" msgstr "" -#: js/PitchBlocks.js:858 -msgid "Pitch can be specified in terms of ni dha pa ma ga re sa." +#: js/blocks/SensorsBlocks.js:633 +#: js/blocks/PenBlocks.js:112 +#: plugins/rodi.rtp:217 +msgid "red" msgstr "" -#: js/PitchBlocks.js:872 -msgid "Pitch can be specified in terms of C D E F G A B." +#: js/blocks/SensorsBlocks.js:638 +msgid "The Get red block returns the red component of the pixel under the mouse." msgstr "" -#: js/PitchBlocks.js:883 -msgid "solfege" +#: js/blocks/SensorsBlocks.js:644 +msgid "The Get red block returns the red component of the pixel under the turtle." msgstr "" -#: js/PitchBlocks.js:886 -msgid "Pitch can be specified in terms of do re mi fa sol la ti." +#: js/blocks/SensorsBlocks.js:685 +#: plugins/rodi.rtp:216 +msgid "pixel color" msgstr "" -#: js/PitchBlocks.js:920 -msgid "The Invert block rotates any contained notes around a target note." +#: js/blocks/SensorsBlocks.js:690 +msgid "The Get pixel block returns the color of the pixel under the mouse." msgstr "" -#: js/PitchBlocks.js:927 -#.TRANS: pitch inversion rotates a pitch around another pitch -msgid "invert" +#: js/blocks/SensorsBlocks.js:696 +msgid "The Get pixel block returns the color of the pixel under the turtle." msgstr "" -#: js/PitchBlocks.js:929 -#: js/PitchBlocks.js:935 -#: js/PitchActions.js:727 -#: js/musicutils.js:726 -#: js/musicutils.js:902 -#.TRANS: invert based on even or odd number or musical scale -#.TRANS: even numbers -msgid "even" -msgstr "" +#: js/blocks/SensorsBlocks.js:758 +msgid "time" +msgstr "tijd" -#: js/PitchBlocks.js:935 -#: js/PitchActions.js:729 -#: js/musicutils.js:728 -#: js/musicutils.js:903 -#.TRANS: odd numbers -msgid "odd" +#: js/blocks/SensorsBlocks.js:804 +msgid "cursor y" msgstr "" -#: js/PitchBlocks.js:935 -#: js/PitchActions.js:731 -#: js/musicutils.js:729 -#: js/musicutils.js:904 -msgid "scalar" +#: js/blocks/SensorsBlocks.js:809 +msgid "The Cursor Y block returns the vertical position of the mouse." msgstr "" -#: js/PitchBlocks.js:966 -#.TRANS: pitch inversion rotates a pitch around another pitch (odd number) -msgid "invert (odd)" +#: js/blocks/SensorsBlocks.js:845 +msgid "cursor x" msgstr "" -#: js/PitchBlocks.js:999 -#.TRANS: pitch inversion rotates a pitch around another pitch (even number) -msgid "invert (even)" +#: js/blocks/SensorsBlocks.js:850 +msgid "The Cursor X block returns the horizontal position of the mouse." msgstr "" -#: js/PitchBlocks.js:1020 -#.TRANS: register is the octave of the current pitch -msgid "register" +#: js/blocks/SensorsBlocks.js:886 +msgid "mouse button" msgstr "" -#: js/PitchBlocks.js:1024 -msgid "The Register block provides an easy way to modify the register (octave) of the notes that follow it." +#: js/blocks/SensorsBlocks.js:888 +msgid "The Mouse-button block returns True if the mouse button is pressed." msgstr "" -#: js/PitchBlocks.js:1074 -msgid "The Semi-tone transposition block will shift the pitches contained inside Note blocks up (or down) by half steps." +#: js/blocks/SensorsBlocks.js:934 +msgid "to ASCII" msgstr "" -#: js/PitchBlocks.js:1076 -msgid "In the example shown above, sol is shifted up to sol#." +#: js/blocks/SensorsBlocks.js:938 +msgid "The To ASCII block converts numbers to letters." msgstr "" -#: js/PitchBlocks.js:1082 -#.TRANS: adjust the amount of shift (up or down) of a pitch -msgid "semi-tone transpose" +#: js/blocks/SensorsBlocks.js:1005 +msgid "The Keyboard block returns computer keyboard input." msgstr "" -#: js/PitchBlocks.js:1115 -msgid "The Transpose by Ratio block will shift the pitches contained inside Note blocks up (or down) by a ratio" +#: js/blocks/RhythmBlockPaletteBlocks.js:50 +#: js/blocks/RhythmBlockPaletteBlocks.js:233 +#.TRANS: rhythm block +#.TRANS: translate "rhythm1" as rhythm +msgid "rhythm1" msgstr "" -#: js/PitchBlocks.js:1121 -#.TRANS: adjust the amount of shift (up or down) of a pitch -msgid "transpose by ratio" +#: js/blocks/RhythmBlockPaletteBlocks.js:70 +#: js/blocks/RhythmBlockPaletteBlocks.js:252 +#: js/blocks/RhythmBlockPaletteBlocks.js:485 +#: js/blocks/RhythmBlockPaletteBlocks.js:554 +#: js/blocks/RhythmBlockPaletteBlocks.js:875 +msgid "number of notes" msgstr "" -#: js/PitchBlocks.js:1204 -#.TRANS: down sixth means the note is five scale degrees below current note -msgid "down sixth" +#: js/blocks/RhythmBlockPaletteBlocks.js:126 +msgid "polyphonic rhythm" msgstr "" -#: js/PitchBlocks.js:1223 -#.TRANS: down third means the note is two scale degrees below current note -msgid "down third" +#: js/blocks/RhythmBlockPaletteBlocks.js:219 +msgid "The Rhythm block is used to generate rhythm patterns." msgstr "" -#: js/PitchBlocks.js:1242 -#.TRANS: seventh means the note is the six scale degrees above current note -msgid "seventh" +#: js/blocks/RhythmBlockPaletteBlocks.js:280 +msgid "1/64 note" msgstr "" -#: js/PitchBlocks.js:1261 -#.TRANS: sixth means the note is the five scale degrees above current note -msgid "sixth" +#: js/blocks/RhythmBlockPaletteBlocks.js:304 +msgid "1/32 note" msgstr "" -#: js/PitchBlocks.js:1280 -#.TRANS: fifth means the note is the four scale degrees above current note -msgid "fifth" +#: js/blocks/RhythmBlockPaletteBlocks.js:332 +msgid "1/16 note" msgstr "" -#: js/PitchBlocks.js:1300 -#.TRANS: fourth means the note is three scale degrees above current note -msgid "fourth" +#: js/blocks/RhythmBlockPaletteBlocks.js:360 +msgid "eighth note" msgstr "" -#: js/PitchBlocks.js:1319 -#.TRANS: third means the note is two scale degrees above current note -msgid "third" +#: js/blocks/RhythmBlockPaletteBlocks.js:388 +msgid "quarter note" msgstr "" -#: js/PitchBlocks.js:1338 -#.TRANS: second means the note is one scale degree above current note -msgid "second" +#: js/blocks/RhythmBlockPaletteBlocks.js:416 +msgid "half note" msgstr "" -#: js/PitchBlocks.js:1379 -msgid "The Scalar transposition block will shift the pitches contained inside Note blocks up (or down) the scale." +#: js/blocks/RhythmBlockPaletteBlocks.js:444 +msgid "whole note" msgstr "" -#: js/PitchBlocks.js:1381 -msgid "In the example shown above, sol is shifted up to la." +#: js/blocks/RhythmBlockPaletteBlocks.js:482 +#: js/blocks/RhythmBlockPaletteBlocks.js:551 +#: js/blocks/RhythmBlockPaletteBlocks.js:602 +#.TRANS: A tuplet is a note value divided into irregular time values. +msgid "tuplet" msgstr "" -#: js/PitchBlocks.js:1388 -#.TRANS: adjust the amount of shift (up or down) of a pitch by musical scale (scalar) steps -msgid "scalar transpose" +#: js/blocks/RhythmBlockPaletteBlocks.js:768 +msgid "septuplet" msgstr "" -#: js/PitchBlocks.js:1423 -msgid "The Accidental block is used to create sharps and flats" +#: js/blocks/RhythmBlockPaletteBlocks.js:796 +msgid "quintuplet" msgstr "" -#: js/PitchBlocks.js:1430 -#.TRANS: An accidental is a modification to a pitch, e.g., sharp or flat. -msgid "accidental override" +#: js/blocks/RhythmBlockPaletteBlocks.js:824 +msgid "triplet" msgstr "" -#: js/PitchBlocks.js:1543 -msgid "The Hertz block (in combination with a Number block) will play a sound at the specified frequency." +#: js/blocks/RhythmBlockPaletteBlocks.js:851 +msgid "simple tuplet" msgstr "" -#: js/PitchBlocks.js:1633 -msgid "The Pitch Number block will play a pitch associated by its number, e.g. 0 for C and 7 for G." +#: js/blocks/RhythmBlockPaletteBlocks.js:861 +msgid "Tuplets are a collection of notes that get scaled to a specific duration." msgstr "" -#: js/PitchBlocks.js:1665 -#: js/PitchBlocks.js:1707 -#.TRANS: a numeric mapping of the notes in an octave based on the musical mode -#.TRANS: a numeric mapping of the notes in an octave based on the musical mode -msgid "nth modal pitch" +#: js/blocks/DrumBlocks.js:59 +msgid "The Noise name block is used to select a noise synthesizer." msgstr "" -#: js/PitchBlocks.js:1668 -msgid "n^th Modal Pitch takes the pattern of pitches in semitones for a mode and makes each point a degree of the mode," +#: js/blocks/DrumBlocks.js:102 +msgid "The Drum name block is used to select a drum." msgstr "" -#: js/PitchBlocks.js:1670 -msgid "starting from 1 and regardless of tonal framework (i.e. not always 8 notes in the octave)" +#: js/blocks/DrumBlocks.js:146 +msgid "The Effects name block is used to select a sound effect." msgstr "" -#: js/PitchBlocks.js:1711 -msgid "N^th Modal Pitch takes a number as an input as the n^th degree for the given mode. 0 is the first position, 1 is the second, -1 is the note before the first etc." +#: js/blocks/DrumBlocks.js:163 +msgid "noise" msgstr "" -#: js/PitchBlocks.js:1713 -msgid "The pitches change according to the mode specified without any need for respellings." +#: js/blocks/DrumBlocks.js:177 +msgid "The Play noise block will generate white, pink, or brown noise." msgstr "" -#: js/PitchBlocks.js:1752 -msgid "Scale Degree is a common convention in music. Scale Degree offers seven possible positions in the scale (1-7) and can be modified via accidentals." +#: js/blocks/DrumBlocks.js:317 +msgid "Replace every instance of a pitch with a drum sound." msgstr "" -#: js/PitchBlocks.js:1754 -msgid "Scale Degree 1 is always the first pitch in a given scale, regardless of octave." +#: js/blocks/DrumBlocks.js:328 +#.TRANS: map a pitch to a drum sound +msgid "map pitch to drum" msgstr "" -#: js/PitchBlocks.js:1776 -#.TRANS: step some number of notes in current musical scale -msgid "scalar step" +#: js/blocks/DrumBlocks.js:395 +msgid "In the example above, a kick drum sound will be played instead of sol." msgstr "" -#: js/PitchBlocks.js:1781 -msgid "The Scalar Step block (in combination with a Number block) will play the next pitch in a scale," +#: js/blocks/DrumBlocks.js:407 +#.TRANS: set the current drum sound for playback +msgid "set drum" msgstr "" -#: js/PitchBlocks.js:1783 -msgid "eg if the last note played was sol, Scalar Step 1 will play la." +#: js/blocks/DrumBlocks.js:451 +msgid "sound effect" msgstr "" -#: js/PitchBlocks.js:1818 -msgid "The Pitch block specifies the pitch name and octave of a note that together determine the frequency of the note." +#: js/blocks/DrumBlocks.js:489 +msgid "You can use multiple Drum blocks within a Note block." msgstr "" -#: js/GraphicsBlocks.js:46 -#: js/DictActions.js:77 -#: js/DictActions.js:155 -#: js/DictActions.js:189 +#: js/blocks/GraphicsBlocks.js:46 +#: js/turtleactions/DictActions.js:77 +#: js/turtleactions/DictActions.js:144 +#: js/turtleactions/DictActions.js:173 msgid "heading" msgstr "richting" -#: js/GraphicsBlocks.js:56 +#: js/blocks/GraphicsBlocks.js:56 msgid "The Heading block returns the orientation of the mouse." msgstr "" -#: js/GraphicsBlocks.js:62 +#: js/blocks/GraphicsBlocks.js:62 msgid "The Heading block returns the orientation of the turtle." msgstr "" -#: js/GraphicsBlocks.js:133 +#: js/blocks/GraphicsBlocks.js:133 msgid "The Y block returns the vertical position of the mouse." msgstr "" -#: js/GraphicsBlocks.js:140 +#: js/blocks/GraphicsBlocks.js:140 msgid "The Y block returns the vertical position of the turtle." msgstr "" -#: js/GraphicsBlocks.js:149 +#: js/blocks/GraphicsBlocks.js:149 msgid "y3" msgstr "" -#: js/GraphicsBlocks.js:219 +#: js/blocks/GraphicsBlocks.js:219 msgid "The X block returns the horizontal position of the mouse." msgstr "" -#: js/GraphicsBlocks.js:226 +#: js/blocks/GraphicsBlocks.js:226 msgid "The X block returns the horizontal position of the turtle." msgstr "" -#: js/GraphicsBlocks.js:235 +#: js/blocks/GraphicsBlocks.js:235 msgid "x3" msgstr "" -#: js/GraphicsBlocks.js:295 +#: js/blocks/GraphicsBlocks.js:295 msgid "scroll xy" msgstr "" -#: js/GraphicsBlocks.js:303 +#: js/blocks/GraphicsBlocks.js:303 msgid "The Scroll XY block moves the canvas." msgstr "" -#: js/GraphicsBlocks.js:313 +#: js/blocks/GraphicsBlocks.js:313 msgid "x2" msgstr "" -#: js/GraphicsBlocks.js:313 +#: js/blocks/GraphicsBlocks.js:313 msgid "y2" msgstr "" -#: js/GraphicsBlocks.js:373 -#: js/temperament.js:213 -#: js/temperament.js:241 +#: js/blocks/GraphicsBlocks.js:373 +#: js/widgets/temperament.js:319 +#: js/widgets/temperament.js:347 msgid "clear" msgstr "" -#: js/GraphicsBlocks.js:426 +#: js/blocks/GraphicsBlocks.js:426 msgid "The Control-point 2 block sets the second control point for the Bezier curve." msgstr "" -#: js/GraphicsBlocks.js:433 +#: js/blocks/GraphicsBlocks.js:433 msgid "control point 2" msgstr "" -#: js/GraphicsBlocks.js:436 -#: js/GraphicsBlocks.js:487 -#: js/GraphicsBlocks.js:534 -#: js/GraphicsBlocks.js:750 +#: js/blocks/GraphicsBlocks.js:436 +#: js/blocks/GraphicsBlocks.js:487 +#: js/blocks/GraphicsBlocks.js:534 +#: js/blocks/GraphicsBlocks.js:750 msgid "x1" msgstr "" -#: js/GraphicsBlocks.js:436 -#: js/GraphicsBlocks.js:487 -#: js/GraphicsBlocks.js:534 -#: js/GraphicsBlocks.js:750 +#: js/blocks/GraphicsBlocks.js:436 +#: js/blocks/GraphicsBlocks.js:487 +#: js/blocks/GraphicsBlocks.js:534 +#: js/blocks/GraphicsBlocks.js:750 msgid "y1" msgstr "" -#: js/GraphicsBlocks.js:477 +#: js/blocks/GraphicsBlocks.js:477 msgid "The Control-point 1 block sets the first control point for the Bezier curve." msgstr "" -#: js/GraphicsBlocks.js:484 +#: js/blocks/GraphicsBlocks.js:484 msgid "control point 1" msgstr "" -#: js/GraphicsBlocks.js:527 +#: js/blocks/GraphicsBlocks.js:527 msgid "The Bezier block draws a Bezier curve." msgstr "" -#: js/GraphicsBlocks.js:531 +#: js/blocks/GraphicsBlocks.js:531 msgid "bezier" msgstr "" -#: js/GraphicsBlocks.js:592 +#: js/blocks/GraphicsBlocks.js:592 msgid "The Arc block moves the turtle in an arc." msgstr "" -#: js/GraphicsBlocks.js:600 +#: js/blocks/GraphicsBlocks.js:600 msgid "arc" msgstr "boog" -#: js/GraphicsBlocks.js:603 +#: js/blocks/GraphicsBlocks.js:603 msgid "angle" msgstr "hoek" -#: js/GraphicsBlocks.js:603 +#: js/blocks/GraphicsBlocks.js:603 msgid "radius" msgstr "straal" -#: js/GraphicsBlocks.js:620 -#: js/GraphicsBlocks.js:767 -#: js/GraphicsBlocks.js:1010 -#: js/GraphicsBlocks.js:1093 +#: js/blocks/GraphicsBlocks.js:620 +#: js/blocks/GraphicsBlocks.js:767 +#: js/blocks/GraphicsBlocks.js:1010 +#: js/blocks/GraphicsBlocks.js:1093 msgid "Value must be within -5000 to 5000 when Wrap Mode is off." msgstr "" -#: js/GraphicsBlocks.js:622 -#: js/GraphicsBlocks.js:769 -#: js/GraphicsBlocks.js:1012 -#: js/GraphicsBlocks.js:1095 +#: js/blocks/GraphicsBlocks.js:622 +#: js/blocks/GraphicsBlocks.js:769 +#: js/blocks/GraphicsBlocks.js:1012 +#: js/blocks/GraphicsBlocks.js:1095 msgid "Value must be within -20000 to 20000 when Wrap Mode is on." msgstr "" -#: js/GraphicsBlocks.js:660 +#: js/blocks/GraphicsBlocks.js:660 msgid "set heading" msgstr "richting instellen" -#: js/GraphicsBlocks.js:673 +#: js/blocks/GraphicsBlocks.js:673 msgid "The Set heading block sets the heading of the turtle." msgstr "" -#: js/GraphicsBlocks.js:733 +#: js/blocks/GraphicsBlocks.js:733 msgid "The Set XY block moves the mouse to a specific position on the screen." msgstr "" -#: js/GraphicsBlocks.js:739 +#: js/blocks/GraphicsBlocks.js:739 msgid "The Set XY block moves the turtle to a specific position on the screen." msgstr "" -#: js/GraphicsBlocks.js:747 +#: js/blocks/GraphicsBlocks.js:747 msgid "set xy" msgstr "zet xy" -#: js/GraphicsBlocks.js:819 +#: js/blocks/GraphicsBlocks.js:819 msgid "The Right block turns the mouse to the right." msgstr "" -#: js/GraphicsBlocks.js:826 +#: js/blocks/GraphicsBlocks.js:826 msgid "The Right block turns the turtle to the right." msgstr "" -#: js/GraphicsBlocks.js:835 +#: js/blocks/GraphicsBlocks.js:835 msgid "right1" msgstr "" -#: js/GraphicsBlocks.js:835 +#: js/blocks/GraphicsBlocks.js:835 #: plugins/rodi.rtp:77 #: plugins/rodi.rtp:340 #: plugins/rodi.rtp:375 msgid "right" msgstr "rechts" -#: js/GraphicsBlocks.js:899 +#: js/blocks/GraphicsBlocks.js:899 msgid "The Left block turns the mouse to the left." msgstr "" -#: js/GraphicsBlocks.js:906 +#: js/blocks/GraphicsBlocks.js:906 msgid "The Left block turns the turtle to the left." msgstr "" -#: js/GraphicsBlocks.js:915 +#: js/blocks/GraphicsBlocks.js:915 msgid "left1" msgstr "" -#: js/GraphicsBlocks.js:915 +#: js/blocks/GraphicsBlocks.js:915 #: plugins/rodi.rtp:79 #: plugins/rodi.rtp:339 #: plugins/rodi.rtp:362 msgid "left" msgstr "links" -#: js/GraphicsBlocks.js:967 -#: js/temperament.js:734 -#: js/temperament.js:933 +#: js/blocks/GraphicsBlocks.js:967 +#: js/widgets/temperament.js:875 +#: js/widgets/temperament.js:1078 #: plugins/rodi.rtp:69 #: plugins/rodi.rtp:387 msgid "back" msgstr "terug" -#: js/GraphicsBlocks.js:976 +#: js/blocks/GraphicsBlocks.js:976 msgid "The Back block moves the mouse backward." msgstr "" -#: js/GraphicsBlocks.js:983 +#: js/blocks/GraphicsBlocks.js:983 msgid "The Back block moves the turtle backward." msgstr "" -#: js/GraphicsBlocks.js:1050 +#: js/blocks/GraphicsBlocks.js:1050 #: plugins/rodi.rtp:71 #: plugins/rodi.rtp:400 msgid "forward" msgstr "vooruit" -#: js/GraphicsBlocks.js:1059 +#: js/blocks/GraphicsBlocks.js:1059 msgid "The Forward block moves the mouse forward." msgstr "" -#: js/GraphicsBlocks.js:1066 +#: js/blocks/GraphicsBlocks.js:1066 msgid "The Forward block moves the turtle forward." msgstr "" -#: js/GraphicsBlocks.js:1154 -#: js/GraphicsBlocks.js:1172 +#: js/blocks/GraphicsBlocks.js:1154 +#: js/blocks/GraphicsBlocks.js:1172 msgid "wrap" msgstr "" -#: js/OrnamentBlocks.js:32 -msgid "staccato factor" -msgstr "" - -#: js/OrnamentBlocks.js:108 -msgid "slur factor" -msgstr "" - -#: js/OrnamentBlocks.js:217 -#: js/OrnamentBlocks.js:309 -#.TRANS: the neighbor refers to a neighboring note, e.g., D is a neighbor of C -msgid "neighbor" -msgstr "" - -#: js/OrnamentBlocks.js:293 -msgid "The Neighbor block rapidly switches between neighboring pitches." -msgstr "" - -#: js/OrnamentBlocks.js:364 -msgid "glide" -msgstr "" - -#: js/OrnamentBlocks.js:479 -#: js/OrnamentBlocks.js:643 -msgid "slur" -msgstr "" - -#: js/OrnamentBlocks.js:558 -#: js/OrnamentBlocks.js:710 -#.TRANS: play each note sharply detached from the others -msgid "staccato" -msgstr "" - -#: js/PenBlocks.js:24 +#: js/blocks/PenBlocks.js:30 msgid "purple" msgstr "" -#: js/PenBlocks.js:37 -#: js/SensorsBlocks.js:521 -#: plugins/rodi.rtp:219 -msgid "blue" -msgstr "" - -#: js/PenBlocks.js:50 -#: js/SensorsBlocks.js:577 -#: plugins/rodi.rtp:218 -msgid "green" -msgstr "" - -#: js/PenBlocks.js:63 +#: js/blocks/PenBlocks.js:80 msgid "yellow" msgstr "" -#: js/PenBlocks.js:76 +#: js/blocks/PenBlocks.js:96 #: plugins/nutrition.rtp:164 msgid "orange" msgstr "oranje" -#: js/PenBlocks.js:89 -#: js/SensorsBlocks.js:633 -#: plugins/rodi.rtp:217 -msgid "red" -msgstr "" - -#: js/PenBlocks.js:102 +#: js/blocks/PenBlocks.js:128 msgid "white" msgstr "" -#: js/PenBlocks.js:115 +#: js/blocks/PenBlocks.js:144 msgid "black" msgstr "" -#: js/PenBlocks.js:128 +#: js/blocks/PenBlocks.js:163 msgid "begin fill" msgstr "" -#: js/PenBlocks.js:143 +#: js/blocks/PenBlocks.js:190 msgid "end fill" msgstr "stop met vullen" -#: js/PenBlocks.js:159 -#: js/PenBlocks.js:386 +#: js/blocks/PenBlocks.js:212 +#: js/blocks/PenBlocks.js:560 #.TRANS: set the background color msgid "background" msgstr "" -#: js/PenBlocks.js:206 -#: js/DictActions.js:71 -#: js/DictActions.js:149 -#: js/DictActions.js:186 +#: js/blocks/PenBlocks.js:274 +#: js/turtleactions/DictActions.js:71 +#: js/turtleactions/DictActions.js:138 +#: js/turtleactions/DictActions.js:170 msgid "grey" msgstr "" -#: js/PenBlocks.js:210 +#: js/blocks/PenBlocks.js:282 msgid "The Grey block returns the current pen grey value." msgstr "" -#: js/PenBlocks.js:243 -#: js/DictActions.js:69 -#: js/DictActions.js:147 -#: js/DictActions.js:185 +#: js/blocks/PenBlocks.js:340 +#: js/turtleactions/DictActions.js:69 +#: js/turtleactions/DictActions.js:136 +#: js/turtleactions/DictActions.js:169 msgid "shade" msgstr "schaduw" -#: js/PenBlocks.js:247 +#: js/blocks/PenBlocks.js:347 msgid "The Shade block returns the current pen shade value." msgstr "" -#: js/PenBlocks.js:280 -#: js/DictActions.js:67 -#: js/DictActions.js:145 -#: js/DictActions.js:184 +#: js/blocks/PenBlocks.js:405 +#: js/turtleactions/DictActions.js:67 +#: js/turtleactions/DictActions.js:134 +#: js/turtleactions/DictActions.js:168 msgid "color" msgstr "kleur" -#: js/PenBlocks.js:285 +#: js/blocks/PenBlocks.js:415 msgid "The Color block returns the current pen color." msgstr "" -#: js/PenBlocks.js:318 -#: js/DictActions.js:73 -#: js/DictActions.js:151 -#: js/DictActions.js:187 +#: js/blocks/PenBlocks.js:470 +#: js/turtleactions/DictActions.js:73 +#: js/turtleactions/DictActions.js:140 +#: js/turtleactions/DictActions.js:171 msgid "pen size" msgstr "pen dikte" -#: js/PenBlocks.js:322 +#: js/blocks/PenBlocks.js:474 msgid "The Pen size block returns the current pen size value." msgstr "" -#: js/PenBlocks.js:355 +#: js/blocks/PenBlocks.js:513 msgid "set font" msgstr "" -#: js/PenBlocks.js:358 +#: js/blocks/PenBlocks.js:518 msgid "The Set font block sets the font used by the Show block." msgstr "" -#: js/PenBlocks.js:391 +#: js/blocks/PenBlocks.js:567 msgid "The Background block sets the window background color." msgstr "" -#: js/PenBlocks.js:408 +#: js/blocks/PenBlocks.js:598 msgid "The Hollow line block creates a line with a hollow center." msgstr "" -#: js/PenBlocks.js:415 +#: js/blocks/PenBlocks.js:606 #.TRANS: draw a line logo has a hollow space down its center msgid "hollow line" msgstr "" -#: js/PenBlocks.js:462 +#: js/blocks/PenBlocks.js:675 msgid "The Fill block fills in a shape with a color." msgstr "" -#: js/PenBlocks.js:470 +#: js/blocks/PenBlocks.js:684 #.TRANS: fill in as a solid color msgid "fill" msgstr "" -#: js/PenBlocks.js:527 +#: js/blocks/PenBlocks.js:761 #.TRANS: raise up the pen so logo it does not draw when it is moved msgid "pen up" msgstr "pen omhoog" -#: js/PenBlocks.js:532 +#: js/blocks/PenBlocks.js:768 msgid "The Pen-up block raises the pen so that it does not draw." msgstr "" -#: js/PenBlocks.js:552 +#: js/blocks/PenBlocks.js:802 #.TRANS: put down the pen so logo it draws when it is moved msgid "pen down" msgstr "pen omlaag" -#: js/PenBlocks.js:557 +#: js/blocks/PenBlocks.js:810 msgid "The Pen-down block lowers the pen so that it draws." msgstr "" -#: js/PenBlocks.js:577 +#: js/blocks/PenBlocks.js:844 #.TRANS: set the width of the line drawn by the pen msgid "set pen size" msgstr "zet pen dikte" -#: js/PenBlocks.js:583 +#: js/blocks/PenBlocks.js:854 msgid "The Set-pen-size block changes the size of the pen." msgstr "" -#: js/PenBlocks.js:623 +#: js/blocks/PenBlocks.js:913 #.TRANS: set degree of translucence of the pen color msgid "set translucency" msgstr "" -#: js/PenBlocks.js:627 +#: js/blocks/PenBlocks.js:921 msgid "The Set translucency block changes the opacity of the pen." msgstr "" -#: js/PenBlocks.js:668 +#: js/blocks/PenBlocks.js:981 msgid "set hue" msgstr "" -#: js/PenBlocks.js:672 +#: js/blocks/PenBlocks.js:989 msgid "The Set hue block changes the color of the pen." msgstr "" -#: js/PenBlocks.js:711 +#: js/blocks/PenBlocks.js:1047 msgid "set shade" msgstr "zet schaduw" -#: js/PenBlocks.js:717 +#: js/blocks/PenBlocks.js:1057 msgid "The Set-shade block changes the pen color from dark to light." msgstr "" -#: js/PenBlocks.js:757 +#: js/blocks/PenBlocks.js:1111 #.TRANS: set the level of vividness of the pen color msgid "set grey" msgstr "" -#: js/PenBlocks.js:761 +#: js/blocks/PenBlocks.js:1119 msgid "The Set grey block changes the vividness of the pen color." msgstr "" -#: js/PenBlocks.js:800 +#: js/blocks/PenBlocks.js:1172 msgid "set color" msgstr "zet kleur" -#: js/PenBlocks.js:806 +#: js/blocks/PenBlocks.js:1182 msgid "The Set-color block changes the pen color." msgstr "" -#: js/VolumeBlocks.js:35 -msgid "synth volume" -msgstr "" - -#: js/VolumeBlocks.js:39 -msgid "The Synth volume block returns the current volume of the current synthesizer." -msgstr "" - -#: js/VolumeBlocks.js:47 -#: js/musicutils.js:730 -#: js/synthutils.js:56 -#.TRANS: musical instrument -msgid "piano" -msgstr "" - -#: js/VolumeBlocks.js:105 -msgid "master volume" -msgstr "" - -#: js/VolumeBlocks.js:109 -msgid "The Master volume block returns the master volume." -msgstr "" - -#: js/VolumeBlocks.js:355 -#: js/VolumeBlocks.js:524 -msgid "set synth volume" -msgstr "" - -#: js/VolumeBlocks.js:362 -#: js/VolumeBlocks.js:545 -msgid "synth" -msgstr "" - -#: js/VolumeBlocks.js:403 -#: js/VolumeBlocks.js:577 -#: js/VolumeBlocks.js:740 -#: js/VolumeActions.js:173 -msgid "Setting volume to 0." -msgstr "" - -#: js/VolumeBlocks.js:440 -msgid "Synth not found" -msgstr "" - -#: js/VolumeBlocks.js:494 -msgid "set drum volume" -msgstr "" - -#: js/VolumeBlocks.js:530 -msgid "The Set synth volume block will change the volume of a particular synth," -msgstr "" - -#: js/VolumeBlocks.js:532 -msgid "eg guitar violin snare drum etc." -msgstr "" - -#: js/VolumeBlocks.js:534 -msgid "The default volume is 50." -msgstr "" - -#: js/VolumeBlocks.js:536 -msgid "The range is 0 for silence to 100 for full volume." -msgstr "" - -#: js/VolumeBlocks.js:597 -msgid "set panning" -msgstr "" - -#: js/VolumeBlocks.js:603 -msgid "The Set Panning block sets the panning for all synthesizers." -msgstr "" - -#: js/VolumeBlocks.js:625 -msgid "Warning: Sound is coming out from only the left or right side." -msgstr "" - -#: js/VolumeBlocks.js:647 -#: js/VolumeBlocks.js:695 -msgid "set master volume" -msgstr "" - -#: js/VolumeBlocks.js:653 -msgid "The Set master volume block sets the volume for all synthesizers." -msgstr "" - -#: js/VolumeBlocks.js:784 -msgid "The Set relative volume block changes the volume of the contained notes." -msgstr "" - -#: js/VolumeBlocks.js:791 -msgid "set relative volume" -msgstr "" - -#: js/VolumeBlocks.js:857 -msgid "decrescendo" -msgstr "" - -#: js/VolumeBlocks.js:921 -msgid "crescendo" -msgstr "" - -#: js/ToneBlocks.js:34 -msgid "oscillator" -msgstr "" - -#: js/ToneBlocks.js:44 -#: js/timbre.js:1562 -#.TRANS: Partials refers to the number of sine waves combined into the sound. -msgid "partials" -msgstr "" - -#: js/ToneBlocks.js:76 -msgid "You are adding multiple oscillator blocks." -msgstr "" - -#: js/ToneBlocks.js:144 -#: js/timbre.js:1225 -#.TRANS: a duo synthesizer combines a synth with a sequencer -msgid "duo synth" -msgstr "" - -#: js/ToneBlocks.js:149 -msgid "The Duo synth block is a duo-frequency modulator used to define a timbre." -msgstr "" - -#: js/ToneBlocks.js:157 -#: js/timbre.js:1476 -msgid "vibrato rate" -msgstr "" - -#: js/ToneBlocks.js:157 -msgid "vibrato intensity" -msgstr "" - -#: js/ToneBlocks.js:185 -#: js/timbre.js:1221 -#.TRANS: AM (amplitude modulation) synthesizer -msgid "AM synth" -msgstr "" - -#: js/ToneBlocks.js:189 -msgid "The AM synth block is an amplitude modulator used to define a timbre." -msgstr "" - -#: js/ToneBlocks.js:224 -#: js/timbre.js:1223 -#.TRANS: FM (frequency modulation) synthesizer -msgid "FM synth" +#: js/blocks/PitchBlocks.js:141 +#.TRANS: musical transposition (adjustment of pitch up or down) +msgid "transposition" msgstr "" -#: js/ToneBlocks.js:228 -msgid "The FM synth block is a frequency modulator used to define a timbre." +#: js/blocks/PitchBlocks.js:168 +#.TRANS: step down one note in current musical scale +msgid "scalar step down" msgstr "" -#: js/ToneBlocks.js:262 -msgid "partial" +#: js/blocks/PitchBlocks.js:172 +msgid "The Scalar step down block returns the number of semi-tones down to the previous note in the current key and mode." msgstr "" -#: js/ToneBlocks.js:265 -msgid "The Partial block is used to specify a weight for a specific partial harmonic." +#: js/blocks/PitchBlocks.js:190 +#.TRANS: step up one note in current musical scale +msgid "scalar step up" msgstr "" -#: js/ToneBlocks.js:284 -#.TRANS: partials are weighted components in a harmonic series -msgid "Partial weight must be between 0 and 1." +#: js/blocks/PitchBlocks.js:194 +msgid "The Scalar step up block returns the number of semi-tones up to the next note in the current key and mode." msgstr "" -#: js/ToneBlocks.js:297 -#.TRANS: partials are weighted components in a harmonic series -msgid "Partial block should be used inside of a Weighted-partials block." +#: js/blocks/PitchBlocks.js:212 +#.TRANS: the change measured in half-steps between the current pitch and the previous pitch +msgid "change in pitch" msgstr "" -#: js/ToneBlocks.js:325 -#.TRANS: partials are weighted components in a harmonic series -msgid "weighted partials" +#: js/blocks/PitchBlocks.js:216 +msgid "The Change in pitch block is the difference (in half steps) between the current pitch being played and the previous pitch played." msgstr "" -#: js/ToneBlocks.js:383 -msgid "The Harmonic block will add harmonics to the contained notes." +#: js/blocks/PitchBlocks.js:243 +#.TRANS: the change measured in scale-steps between the current pitch and the previous pitch +msgid "scalar change in pitch" msgstr "" -#: js/ToneBlocks.js:390 -#.TRANS: A harmonic is an overtone. -msgid "harmonic" +#: js/blocks/PitchBlocks.js:250 +#: js/blocks/PitchBlocks.js:432 +#: js/blocks/PitchBlocks.js:1667 +#: js/turtleactions/DictActions.js:89 +#: js/widgets/temperament.js:610 +#: js/widgets/temperament.js:614 +#: js/widgets/temperament.js:855 +#.TRANS: convert current note to piano key (1-88) +#.TRANS: a mapping of pitch to the 88 piano keys +msgid "pitch number" msgstr "" -#: js/ToneBlocks.js:431 -msgid "The Distortion block adds distortion to the pitch." +#: js/blocks/PitchBlocks.js:256 +msgid "The Pitch number block is the value of the pitch of the note currently being played." msgstr "" -#: js/ToneBlocks.js:438 -#: js/timbre.js:2100 -#.TRANS: distortion is an alteration in the sound -msgid "distortion" +#: js/blocks/PitchBlocks.js:329 +#: js/blocks/PitchBlocks.js:433 +#.TRANS: the current pitch expressed in Hertz +msgid "pitch in hertz" msgstr "" -#: js/ToneBlocks.js:487 -msgid "The Tremolo block adds a wavering effect." +#: js/blocks/PitchBlocks.js:334 +msgid "The Pitch in Hertz block is the value in Hertz of the pitch of the note currently being played." msgstr "" -#: js/ToneBlocks.js:495 -#: js/timbre.js:2092 -#.TRANS: a wavering effect in a musical tone -msgid "tremolo" +#: js/blocks/PitchBlocks.js:367 +#: js/turtleactions/DictActions.js:87 +msgid "current pitch" msgstr "" -#: js/ToneBlocks.js:500 -#: js/ToneBlocks.js:569 -#: js/ToneBlocks.js:630 -#: js/ToneBlocks.js:689 -#: js/timbre.js:2134 -#: js/timbre.js:2222 -#: js/timbre.js:2317 -#: js/timbre.js:2419 -#.TRANS: rate at which tremolo wavers -msgid "rate" +#: js/blocks/PitchBlocks.js:373 +msgid "The Current Pitch block is used with the Pitch Converter block. In the example above, current pitch, sol 4, is displayed as 392 hertz." msgstr "" -#: js/ToneBlocks.js:502 -#: js/ToneBlocks.js:630 -#: js/timbre.js:2137 -#: js/timbre.js:2328 -#.TRANS: amplitude of tremolo waver -msgid "depth" +#: js/blocks/PitchBlocks.js:410 +msgid "This block converts the pitch value of the last note played into different formats such as hertz, letter name, pitch number, et al." msgstr "" -#: js/ToneBlocks.js:559 -msgid "The Phaser block adds a sweeping sound." +#: js/blocks/PitchBlocks.js:434 +msgid "alphabet" msgstr "" -#: js/ToneBlocks.js:566 -#: js/timbre.js:2098 -#.TRANS: alter the phase of the sound -msgid "phaser" +#: js/blocks/PitchBlocks.js:436 +#.TRANS: Translate as "alphabet class" +msgid "letter class" msgstr "" -#: js/ToneBlocks.js:569 -#: js/timbre.js:2422 -msgid "octaves" +#: js/blocks/PitchBlocks.js:437 +msgid "solfege class" msgstr "" -#: js/ToneBlocks.js:569 -#: js/timbre.js:2425 -msgid "base frequency" +#: js/blocks/PitchBlocks.js:438 +msgid "staff y" msgstr "" -#: js/ToneBlocks.js:619 -msgid "The Chorus block adds a chorus effect." +#: js/blocks/PitchBlocks.js:439 +msgid "solfege syllable" msgstr "" -#: js/ToneBlocks.js:627 -#: js/timbre.js:2096 -#.TRANS: musical effect to simulate a choral sound -msgid "chorus" +#: js/blocks/PitchBlocks.js:440 +msgid "pitch class" msgstr "" -#: js/ToneBlocks.js:630 -msgid "delay" +#: js/blocks/PitchBlocks.js:441 +msgid "scalar class" msgstr "" -#: js/ToneBlocks.js:678 -msgid "The Vibrato block adds a rapid, slight variation in pitch." +#: js/blocks/PitchBlocks.js:443 +msgid "nth degree" msgstr "" -#: js/ToneBlocks.js:686 -#: js/timbre.js:2094 -#.TRANS: a rapid, slight variation in pitch -msgid "vibrato" +#: js/blocks/PitchBlocks.js:444 +msgid "pitch to shade" msgstr "" -#: js/ToneBlocks.js:689 -#: js/timbre.js:2221 -msgid "intensity" +#: js/blocks/PitchBlocks.js:445 +msgid "pitch to color" msgstr "" -#: js/ToneBlocks.js:733 -#.TRANS: select synthesizer -msgid "set synth" +#: js/blocks/PitchBlocks.js:629 +#: js/widgets/musickeyboard.js:735 +#.TRANS: MIDI is a technical standard for electronic music +msgid "MIDI" msgstr "" -#: js/ToneBlocks.js:804 -msgid "synth name" +#: js/blocks/PitchBlocks.js:642 +#.TRANS: set an offset associated with the numeric piano keyboard mapping +msgid "set pitch number offset" msgstr "" -#: js/ToneBlocks.js:842 -msgid "set default instrument" +#: js/blocks/PitchBlocks.js:645 +msgid "The Set pitch number offset block is used to set the offset for mapping pitch numbers to pitch and octave." msgstr "" -#: js/ToneBlocks.js:895 -#: js/ToneBlocks.js:943 -#.TRANS: set the characteristics of a custom instrument -msgid "set instrument" +#: js/blocks/PitchBlocks.js:679 +#.TRANS: convert piano key number (1-88) to pitch +msgid "number to pitch" msgstr "" -#: js/ToneBlocks.js:898 -#: js/ToneBlocks.js:926 -#: js/ToneBlocks.js:932 -msgid "The Set instrument block selects a voice for the synthesizer," +#: js/blocks/PitchBlocks.js:682 +msgid "The Number to pitch block will convert a pitch number to a pich name." msgstr "" -#: js/ToneBlocks.js:900 -#: js/ToneBlocks.js:934 -msgid "eg guitar piano violin or cello." +#: js/blocks/PitchBlocks.js:715 +#.TRANS: convert piano key number (1-88) to octave +msgid "number to octave" msgstr "" -#: js/ToneBlocks.js:1015 -msgid "Import a sound file to use as an instrument and set its pitch center." +#: js/blocks/PitchBlocks.js:717 +msgid "The Number to octave block will convert a pitch number to an octave." msgstr "" -#: js/ToneBlocks.js:1110 -msgid "Upload a sound file to connect with the sample block." +#: js/blocks/PitchBlocks.js:726 +msgid "y to pitch" msgstr "" -#: js/MeterBlocks.js:34 -#.TRANS: musical meter (time signature), e.g., 4:4 -msgid "current meter" +#: js/blocks/PitchBlocks.js:729 +msgid "Y to pitch block will convert a staff y position to corresponding pitch notation." msgstr "" -#: js/MeterBlocks.js:85 -#.TRANS: number of beats per minute -msgid "beat factor" +#: js/blocks/PitchBlocks.js:841 +msgid "accidental selector" msgstr "" -#: js/MeterBlocks.js:161 -msgid "The Beats per minute block returns the current beats per minute." +#: js/blocks/PitchBlocks.js:844 +msgid "The Accidental selector block is used to choose between double-sharp, sharp, natural, flat, and double-flat." msgstr "" -#: js/MeterBlocks.js:169 -#: js/status.js:152 -#.TRANS: number of beats played per minute -msgid "beats per minute2" +#: js/blocks/PitchBlocks.js:858 +msgid "Pitch can be specified in terms of ni dha pa ma ga re sa." msgstr "" -#: js/MeterBlocks.js:169 -#: js/MeterBlocks.js:1056 -#: js/MeterBlocks.js:1133 -#: js/MeterBlocks.js:1211 -#.TRANS: sets tempo by defining a beat and beats per minute -msgid "beats per minute" +#: js/blocks/PitchBlocks.js:872 +msgid "Pitch can be specified in terms of C D E F G A B." msgstr "" -#: js/MeterBlocks.js:233 -#.TRANS: count of current musical measure in meter -msgid "measure count" +#: js/blocks/PitchBlocks.js:884 +msgid "solfege" msgstr "" -#: js/MeterBlocks.js:241 -msgid "The Measure count block returns the current measure." +#: js/blocks/PitchBlocks.js:887 +msgid "Pitch can be specified in terms of do re mi fa sol la ti." msgstr "" -#: js/MeterBlocks.js:290 -#.TRANS: count of current beat in the meter -msgid "beat count" +#: js/blocks/PitchBlocks.js:922 +msgid "The Invert block rotates any contained notes around a target note." msgstr "" -#: js/MeterBlocks.js:300 -#: js/MeterBlocks.js:311 -#: js/MeterBlocks.js:565 -#: js/MeterBlocks.js:576 -msgid "The Beat count block is the number of the current beat," +#: js/blocks/PitchBlocks.js:929 +#.TRANS: pitch inversion rotates a pitch around another pitch +msgid "invert" msgstr "" -#: js/MeterBlocks.js:313 -#: js/MeterBlocks.js:578 -msgid "eg 1, 2, 3, or 4." +#: js/blocks/PitchBlocks.js:968 +#.TRANS: pitch inversion rotates a pitch around another pitch (odd number) +msgid "invert (odd)" msgstr "" -#: js/MeterBlocks.js:368 -#.TRANS: count the number of notes -msgid "sum note values" +#: js/blocks/PitchBlocks.js:1001 +#.TRANS: pitch inversion rotates a pitch around another pitch (even number) +msgid "invert (even)" msgstr "" -#: js/MeterBlocks.js:376 -#: js/MeterBlocks.js:440 -msgid "The Note counter block can be used to count the number of contained notes." +#: js/blocks/PitchBlocks.js:1022 +#.TRANS: register is the octave of the current pitch +msgid "register" msgstr "" -#: js/MeterBlocks.js:432 -#.TRANS: count the number of notes -msgid "note counter" +#: js/blocks/PitchBlocks.js:1026 +msgid "The Register block provides an easy way to modify the register (octave) of the notes that follow it." msgstr "" -#: js/MeterBlocks.js:496 -#.TRANS: number of whole notes that have been played -msgid "whole notes played" +#: js/blocks/PitchBlocks.js:1047 +#.TRANS: cents are units used to specify the ratio between pitches. There are 100 cents between successive notes. +msgid "50 cents" msgstr "" -#: js/MeterBlocks.js:505 -msgid "The Whole notes played block returns the total number of whole notes played." +#: js/blocks/PitchBlocks.js:1102 +msgid "The Semi-tone transposition block will shift the pitches contained inside Note blocks up (or down) by half steps." msgstr "" -#: js/MeterBlocks.js:555 -#: js/DictActions.js:83 -#.TRANS: number of notes that have been played -msgid "notes played" +#: js/blocks/PitchBlocks.js:1104 +msgid "In the example shown above, sol is shifted up to sol#." msgstr "" -#: js/MeterBlocks.js:653 -msgid "The No clock block decouples the notes from the master clock." +#: js/blocks/PitchBlocks.js:1110 +#.TRANS: adjust the amount of shift (up or down) of a pitch +msgid "semi-tone transpose" msgstr "" -#: js/MeterBlocks.js:661 -#.TRANS: don't lock notes to master clock -msgid "no clock" +#: js/blocks/PitchBlocks.js:1143 +msgid "The Transpose by Ratio block will shift the pitches contained inside Note blocks up (or down) by a ratio" msgstr "" -#: js/MeterBlocks.js:700 -msgid "on weak beat do" +#: js/blocks/PitchBlocks.js:1149 +#.TRANS: adjust the amount of shift (up or down) of a pitch +msgid "transpose by ratio" msgstr "" -#: js/MeterBlocks.js:705 -msgid "The On-weak-beat block lets you specify actions to take on weak (off) beats." +#: js/blocks/PitchBlocks.js:1232 +#.TRANS: down sixth means the note is five scale degrees below current note +msgid "down sixth" msgstr "" -#: js/MeterBlocks.js:750 -msgid "on strong beat" +#: js/blocks/PitchBlocks.js:1251 +#.TRANS: down third means the note is two scale degrees below current note +msgid "down third" msgstr "" -#: js/MeterBlocks.js:758 -msgid "The On-strong-beat block lets you specify actions to take on specified beats." +#: js/blocks/PitchBlocks.js:1270 +#.TRANS: seventh means the note is the six scale degrees above current note +msgid "seventh" msgstr "" -#: js/MeterBlocks.js:769 -msgid "beat" +#: js/blocks/PitchBlocks.js:1289 +#.TRANS: sixth means the note is the five scale degrees above current note +msgid "sixth" msgstr "" -#: js/MeterBlocks.js:813 -msgid "on every beat do" +#: js/blocks/PitchBlocks.js:1308 +#.TRANS: fifth means the note is the four scale degrees above current note +msgid "fifth" msgstr "" -#: js/MeterBlocks.js:821 -msgid "The On-every-beat block lets you specify actions to take on every beat." +#: js/blocks/PitchBlocks.js:1328 +#.TRANS: fourth means the note is three scale degrees above current note +msgid "fourth" msgstr "" -#: js/MeterBlocks.js:874 -msgid "on every note do" +#: js/blocks/PitchBlocks.js:1347 +#.TRANS: third means the note is two scale degrees above current note +msgid "third" msgstr "" -#: js/MeterBlocks.js:882 -msgid "The On-every-note block lets you specify actions to take on every note." +#: js/blocks/PitchBlocks.js:1366 +#.TRANS: second means the note is one scale degree above current note +msgid "second" msgstr "" -#: js/MeterBlocks.js:928 -#: js/MeterBlocks.js:999 -#.TRANS: sets tempo by defining a beat and beats per minute -msgid "master beats per minute" +#: js/blocks/PitchBlocks.js:1407 +msgid "The Scalar transposition block will shift the pitches contained inside Note blocks up (or down) the scale." msgstr "" -#: js/MeterBlocks.js:952 -#: js/MeterBlocks.js:1078 -#: js/MeterBlocks.js:1135 -msgid "bpm" +#: js/blocks/PitchBlocks.js:1409 +msgid "In the example shown above, sol is shifted up to la." msgstr "" -#: js/MeterBlocks.js:952 -#: js/MeterBlocks.js:1078 -#: js/MeterBlocks.js:1135 -msgid "beat value" +#: js/blocks/PitchBlocks.js:1416 +#.TRANS: adjust the amount of shift (up or down) of a pitch by musical scale (scalar) steps +msgid "scalar transpose" msgstr "" -#: js/MeterBlocks.js:1024 -#: js/MeterBlocks.js:1167 -#: js/MeterBlocks.js:1241 -msgid "Beats per minute must be > 30." +#: js/blocks/PitchBlocks.js:1451 +msgid "The Accidental block is used to create sharps and flats" msgstr "" -#: js/MeterBlocks.js:1027 -#: js/MeterBlocks.js:1170 -#: js/MeterBlocks.js:1244 -msgid "Maximum beats per minute is 1000." +#: js/blocks/PitchBlocks.js:1458 +#.TRANS: An accidental is a modification to a pitch, e.g., sharp or flat. +msgid "accidental override" msgstr "" -#: js/MeterBlocks.js:1068 -msgid "The Beats per minute block sets the number of 1/4 notes per minute." +#: js/blocks/PitchBlocks.js:1581 +msgid "The Hertz block (in combination with a Number block) will play a sound at the specified frequency." msgstr "" -#: js/MeterBlocks.js:1279 -#.TRANS: anacrusis -msgid "pickup" +#: js/blocks/PitchBlocks.js:1671 +msgid "The Pitch Number block will play a pitch associated by its number, e.g. 0 for C and 7 for G." msgstr "" -#: js/MeterBlocks.js:1367 -msgid "number of beats" +#: js/blocks/PitchBlocks.js:1703 +#: js/blocks/PitchBlocks.js:1745 +#.TRANS: a numeric mapping of the notes in an octave based on the musical mode +#.TRANS: a numeric mapping of the notes in an octave based on the musical mode +msgid "nth modal pitch" msgstr "" -#: js/DictBlocks.js:77 -msgid "show dictionary" +#: js/blocks/PitchBlocks.js:1706 +msgid "n^th Modal Pitch takes the pattern of pitches in semitones for a mode and makes each point a degree of the mode," msgstr "" -#: js/DictBlocks.js:129 -msgid "The Dictionary block returns a dictionary." +#: js/blocks/PitchBlocks.js:1708 +msgid "starting from 1 and regardless of tonal framework (i.e. not always 8 notes in the octave)" msgstr "" -#: js/DictBlocks.js:197 -#: js/DictBlocks.js:339 -msgid "The Get-dict block returns a value in the dictionary for a specified key." +#: js/blocks/PitchBlocks.js:1749 +msgid "N^th Modal Pitch takes a number as an input as the n^th degree for the given mode. 0 is the first position, 1 is the second, -1 is the note before the first etc." msgstr "" -#: js/DictBlocks.js:212 -#: js/DictBlocks.js:354 -#.TRANS: retrieve a value from the dictionary with a given key -msgid "get value" +#: js/blocks/PitchBlocks.js:1751 +msgid "The pitches change according to the mode specified without any need for respellings." msgstr "" -#: js/DictBlocks.js:215 -#: js/DictBlocks.js:216 -#: js/DictBlocks.js:289 -#: js/DictBlocks.js:290 -#: js/DictBlocks.js:357 -#: js/DictBlocks.js:430 -#: js/DictBlocks.js:431 -msgid "key2" +#: js/blocks/PitchBlocks.js:1790 +msgid "Scale Degree is a common convention in music. Scale Degree offers seven possible positions in the scale (1-7) and can be modified via accidentals." msgstr "" -#: js/DictBlocks.js:271 -#: js/DictBlocks.js:411 -msgid "The Set-dict block sets a value in the dictionary for a specified key." +#: js/blocks/PitchBlocks.js:1792 +msgid "Scale Degree 1 is always the first pitch in a given scale, regardless of octave." msgstr "" -#: js/DictBlocks.js:286 -#: js/DictBlocks.js:427 -#.TRANS: set a value in the dictionary for a given key -msgid "set value" +#: js/blocks/PitchBlocks.js:1814 +#.TRANS: step some number of notes in current musical scale +msgid "scalar step" msgstr "" -#: js/ExtrasBlocks.js:33 -msgid "fraction" +#: js/blocks/PitchBlocks.js:1819 +msgid "The Scalar Step block (in combination with a Number block) will play the next pitch in a scale," msgstr "" -#: js/ExtrasBlocks.js:36 -msgid "Convert a float to a fraction" +#: js/blocks/PitchBlocks.js:1821 +msgid "eg if the last note played was sol, Scalar Step 1 will play la." msgstr "" -#: js/ExtrasBlocks.js:93 -msgid "save as ABC" +#: js/blocks/PitchBlocks.js:1857 +msgid "The Pitch block specifies the pitch name and octave of a note that together determine the frequency of the note." msgstr "" -#: js/ExtrasBlocks.js:96 -#: js/ExtrasBlocks.js:132 -#: js/ExtrasBlocks.js:168 -msgid "title" +#: js/blocks/ProgramBlocks.js:33 +msgid "The Load-heap-from-app block loads the heap from a web page." msgstr "" -#: js/ExtrasBlocks.js:129 -msgid "save as Lilypond" +#: js/blocks/ProgramBlocks.js:44 +#.TRANS: load the heap contents from a URL +msgid "load heap from App" msgstr "" -#: js/ExtrasBlocks.js:165 -msgid "save as SVG" +#: js/blocks/ProgramBlocks.js:95 +msgid "Error parsing JSON data:" msgstr "" -#: js/ExtrasBlocks.js:216 -msgid "no background" +#: js/blocks/ProgramBlocks.js:100 +msgid "404: Page not found" msgstr "" -#: js/ExtrasBlocks.js:219 -msgid "The No background block eliminates the background from the saved SVG output." +#: js/blocks/ProgramBlocks.js:133 +msgid "The Save-heap-to-app block saves the heap to a web page." msgstr "" -#: js/ExtrasBlocks.js:247 -msgid "show blocks" -msgstr "blokken weergeven" - -#: js/ExtrasBlocks.js:249 -msgid "The Show blocks block shows the blocks." +#: js/blocks/ProgramBlocks.js:144 +#.TRANS: save the heap contents to a URL +msgid "save heap to App" msgstr "" -#: js/ExtrasBlocks.js:274 -msgid "hide blocks" -msgstr "blokken verbergen" - -#: js/ExtrasBlocks.js:276 -msgid "The Hide blocks block hides the blocks." +#: js/blocks/ProgramBlocks.js:189 +msgid "Cannot find a valid heap for" msgstr "" -#: js/ExtrasBlocks.js:305 -#: js/ExtrasBlocks.js:335 -msgid "The Space block is used to add space between blocks." +#: js/blocks/ProgramBlocks.js:206 +msgid "The Load-heap block loads the heap from a file." msgstr "" -#: js/ExtrasBlocks.js:373 -msgid "wait" -msgstr "wacht" +#: js/blocks/ProgramBlocks.js:217 +#.TRANS: load the heap from a file +msgid "load heap" +msgstr "" -#: js/ExtrasBlocks.js:376 -msgid "The Wait block pauses the program for a specified number of seconds." +#: js/blocks/ProgramBlocks.js:270 +msgid "The file you selected does not contain a valid heap." msgstr "" -#: js/ExtrasBlocks.js:430 -#: plugins/facebook.rtp:30 -msgid "comment" -msgstr "commentaar" +#: js/blocks/ProgramBlocks.js:275 +msgid "The loadHeap block needs a loadFile block." +msgstr "" -#: js/ExtrasBlocks.js:466 -msgid "print" -msgstr "druk af" +#: js/blocks/ProgramBlocks.js:291 +msgid "The Set-heap block loads the heap." +msgstr "" -#: js/ExtrasBlocks.js:473 -msgid "The Print block displays text at the top of the screen." +#: js/blocks/ProgramBlocks.js:340 +msgid "The block you selected does not contain a valid heap." msgstr "" -#: js/ExtrasBlocks.js:579 -msgid "display grid" +#: js/blocks/ProgramBlocks.js:343 +msgid "The Set heap block needs a heap." msgstr "" -#: js/ExtrasBlocks.js:584 -msgid "The Display Grid Block changes the grid type" +#: js/blocks/ProgramBlocks.js:360 +msgid "The Load-dictionary block loads a dictionary from a file." msgstr "" -#: js/ExtrasBlocks.js:686 -#: js/ExtrasBlocks.js:705 -#: js/ExtrasBlocks.js:728 -#: js/ExtrasBlocks.js:751 -#: js/ExtrasBlocks.js:769 -#: js/ExtrasBlocks.js:788 -#: js/ExtrasBlocks.js:807 -#: js/ExtrasBlocks.js:826 -msgid "unknown" +#: js/blocks/ProgramBlocks.js:372 +#.TRANS: load a dictionary from a file +msgid "load dictionary" msgstr "" -#: js/SensorsBlocks.js:36 -msgid "The Input block prompts for keyboard input." +#: js/blocks/ProgramBlocks.js:390 +#: js/blocks/ProgramBlocks.js:658 +#: js/blocks/ToneBlocks.js:1025 +msgid "file" msgstr "" -#: js/SensorsBlocks.js:46 -msgid "input" +#: js/blocks/ProgramBlocks.js:444 +msgid "The file you selected does not contain a valid dictionary." msgstr "" -#: js/SensorsBlocks.js:64 -msgid "Input a value" +#: js/blocks/ProgramBlocks.js:449 +msgid "The load dictionary block needs a load file block." msgstr "" -#: js/SensorsBlocks.js:126 -msgid "input value" +#: js/blocks/ProgramBlocks.js:466 +msgid "The Set-dictionary block loads a dictionary." msgstr "" -#: js/SensorsBlocks.js:131 -msgid "The Input-value block stores the input." +#: js/blocks/ProgramBlocks.js:477 +#.TRANS: load a dictionary from a JSON +msgid "set dictionary" msgstr "" -#: js/SensorsBlocks.js:238 -msgid "loudness" -msgstr "luidheid" +#: js/blocks/ProgramBlocks.js:546 +msgid "The block you selected does not contain a valid dictionary." +msgstr "" -#: js/SensorsBlocks.js:245 -msgid "The Loudness block returns the volume detected by the microphone." +#: js/blocks/ProgramBlocks.js:550 +msgid "The set dictionary block needs a dictionary." msgstr "" -#: js/SensorsBlocks.js:300 -msgid "click" +#: js/blocks/ProgramBlocks.js:567 +msgid "The Save-heap block saves the heap to a file." msgstr "" -#: js/SensorsBlocks.js:306 -msgid "The Click block triggers an event if a mouse has been clicked." +#: js/blocks/ProgramBlocks.js:578 +#.TRANS: save the heap to a file +msgid "save heap" msgstr "" -#: js/SensorsBlocks.js:313 -msgid "The Click block triggers an event if a turtle has been clicked." +#: js/blocks/ProgramBlocks.js:629 +msgid "The Save-dictionary block saves a dictionary to a file." msgstr "" -#: js/SensorsBlocks.js:342 -msgid "cursor over" +#: js/blocks/ProgramBlocks.js:640 +#.TRANS: save a dictionary to a file +msgid "save dictionary" msgstr "" -#: js/SensorsBlocks.js:387 -msgid "cursor out" +#: js/blocks/ProgramBlocks.js:720 +msgid "The Open palette block opens a palette." msgstr "" -#: js/SensorsBlocks.js:433 -msgid "cursor button down" +#: js/blocks/ProgramBlocks.js:727 +msgid "open palette" msgstr "" -#: js/SensorsBlocks.js:477 -msgid "cursor button up" +#: js/blocks/ProgramBlocks.js:785 +msgid "The Delete block block removes a block." msgstr "" -#: js/SensorsBlocks.js:638 -msgid "The Get red block returns the red component of the pixel under the mouse." +#: js/blocks/ProgramBlocks.js:797 +#.TRANS: Move this block to the trash. +msgid "delete block" msgstr "" -#: js/SensorsBlocks.js:644 -msgid "The Get red block returns the red component of the pixel under the turtle." +#: js/blocks/ProgramBlocks.js:861 +msgid "The Move block block moves a block." msgstr "" -#: js/SensorsBlocks.js:685 -#: plugins/rodi.rtp:216 -msgid "pixel color" +#: js/blocks/ProgramBlocks.js:869 +#.TRANS: Move the position of a block on the screen. +msgid "move block" msgstr "" -#: js/SensorsBlocks.js:690 -msgid "The Get pixel block returns the color of the pixel under the mouse." +#: js/blocks/ProgramBlocks.js:881 +#: js/blocks/ProgramBlocks.js:1048 +msgid "block number" msgstr "" -#: js/SensorsBlocks.js:696 -msgid "The Get pixel block returns the color of the pixel under the turtle." +#: js/blocks/ProgramBlocks.js:935 +#.TRANS: Run program beginning at this block. +msgid "run block" msgstr "" -#: js/SensorsBlocks.js:758 -msgid "time" -msgstr "tijd" +#: js/blocks/ProgramBlocks.js:1025 +msgid "The Dock block block connections two blocks." +msgstr "" -#: js/SensorsBlocks.js:804 -msgid "cursor y" +#: js/blocks/ProgramBlocks.js:1036 +#.TRANS: We can connect a block to another block. +msgid "connect blocks" msgstr "" -#: js/SensorsBlocks.js:809 -msgid "The Cursor Y block returns the vertical position of the mouse." +#: js/blocks/ProgramBlocks.js:1048 +msgid "target block" msgstr "" -#: js/SensorsBlocks.js:845 -msgid "cursor x" +#: js/blocks/ProgramBlocks.js:1048 +msgid "connection number" msgstr "" -#: js/SensorsBlocks.js:850 -msgid "The Cursor X block returns the horizontal position of the mouse." +#: js/blocks/ProgramBlocks.js:1140 +msgid "The Make block block creates a new block." msgstr "" -#: js/SensorsBlocks.js:886 -msgid "mouse button" +#: js/blocks/ProgramBlocks.js:1152 +#.TRANS: Create a new block +msgid "make block" msgstr "" -#: js/SensorsBlocks.js:888 -msgid "The Mouse-button block returns True if the mouse button is pressed." +#: js/blocks/ProgramBlocks.js:1285 +msgid "Cannot find block" msgstr "" -#: js/SensorsBlocks.js:934 -msgid "to ASCII" +#: js/blocks/ProgramBlocks.js:1304 +#: js/blocks/ProgramBlocks.js:1313 +msgid "Warning: block argument type mismatch" msgstr "" -#: js/SensorsBlocks.js:938 -msgid "The To ASCII block converts numbers to letters." +#: js/blocks/ProgramBlocks.js:1347 +msgid "The Open project block is used to open a project from a web page." msgstr "" -#: js/SensorsBlocks.js:1005 -msgid "The Keyboard block returns computer keyboard input." +#: js/blocks/ProgramBlocks.js:1357 +msgid "open project" msgstr "" -#: js/IntervalsActions.js:216 -msgid "Adding missing pitch number 0." +#: js/blocks/ProgramBlocks.js:1410 +msgid "Please enter a valid URL." msgstr "" -#: js/IntervalsActions.js:224 -msgid "Ignoring pitch numbers less than zero or greater than eleven." +#: js/blocks/ToneBlocks.js:34 +msgid "oscillator" msgstr "" -#: js/IntervalsActions.js:230 -msgid "Ignoring duplicate pitch numbers." +#: js/blocks/ToneBlocks.js:42 +#: js/blocks/WidgetBlocks.js:179 +#: js/widgets/timbre.js:1558 +#: js/widgets/timbre.js:1808 +#.TRANS: there are different types (sine, triangle, square...) of oscillators. +#.TRANS: type of filter, e.g., lowpass, highpass, etc. +msgid "type" msgstr "" -#: js/PitchActions.js:88 -msgid "The Scalar Step Block must be used inside of a Note Block." +#: js/blocks/ToneBlocks.js:44 +#: js/widgets/timbre.js:1562 +#.TRANS: Partials refers to the number of sine waves combined into the sound. +msgid "partials" msgstr "" -#: js/PitchActions.js:107 -msgid "The Scalar Step Block must be preceded by a Pitch Block." +#: js/blocks/ToneBlocks.js:76 +msgid "You are adding multiple oscillator blocks." msgstr "" -#: js/DrumActions.js:231 -msgid "Noise Block: Did you mean to use a Note block?" +#: js/blocks/ToneBlocks.js:144 +#: js/widgets/timbre.js:1225 +#.TRANS: a duo synthesizer combines a synth with a sequencer +msgid "duo synth" msgstr "" -#: js/MeterActions.js:101 -#: js/MeterActions.js:139 -msgid "beats per minute must be greater than" +#: js/blocks/ToneBlocks.js:149 +msgid "The Duo synth block is a duo-frequency modulator used to define a timbre." msgstr "" -#: js/MeterActions.js:111 -#: js/MeterActions.js:149 -msgid "maximum" +#: js/blocks/ToneBlocks.js:157 +#: js/widgets/timbre.js:1476 +msgid "vibrato rate" msgstr "" -#: js/MeterActions.js:117 -#: js/MeterActions.js:155 -msgid "beats per minute is" +#: js/blocks/ToneBlocks.js:157 +msgid "vibrato intensity" msgstr "" -#: js/ToneActions.js:134 -msgid "Vibrato intensity must be between 1 and 100." +#: js/blocks/ToneBlocks.js:185 +#: js/widgets/timbre.js:1221 +#.TRANS: AM (amplitude modulation) synthesizer +msgid "AM synth" msgstr "" -#: js/ToneActions.js:139 -msgid "Vibrato rate must be greater than 0." +#: js/blocks/ToneBlocks.js:189 +msgid "The AM synth block is an amplitude modulator used to define a timbre." msgstr "" -#: js/ToneActions.js:192 -#: js/ToneActions.js:265 -#.TRANS: Depth is the intesity of the tremolo or chorus effect. -msgid "Depth is out of range." +#: js/blocks/ToneBlocks.js:224 +#: js/widgets/timbre.js:1223 +#.TRANS: FM (frequency modulation) synthesizer +msgid "FM synth" msgstr "" -#: js/ToneActions.js:301 -msgid "Distortion must be from 0 to 100." +#: js/blocks/ToneBlocks.js:228 +msgid "The FM synth block is a frequency modulator used to define a timbre." msgstr "" -#: js/ToneActions.js:332 -#.TRANS: partials components in a harmonic series -msgid "Partial must be greater than or equal to 0." +#: js/blocks/ToneBlocks.js:262 +msgid "partial" msgstr "" -#: js/ToneActions.js:378 -#: js/ToneActions.js:417 -#: js/ToneActions.js:456 -#: js/timbre.js:782 -msgid "Unable to use synth due to existing oscillator" +#: js/blocks/ToneBlocks.js:265 +msgid "The Partial block is used to specify a weight for a specific partial harmonic." msgstr "" -#: js/ToneActions.js:388 -#: js/ToneActions.js:427 -msgid "The input cannot be negative." +#: js/blocks/ToneBlocks.js:284 +#.TRANS: partials are weighted components in a harmonic series +msgid "Partial weight must be between 0 and 1." msgstr "" -#: js/DictActions.js:75 -#: js/DictActions.js:153 -#: js/DictActions.js:188 -msgid "font" +#: js/blocks/ToneBlocks.js:297 +#.TRANS: partials are weighted components in a harmonic series +msgid "Partial block should be used inside of a Weighted-partials block." msgstr "" -#: js/musicutils.js:363 -#: js/musicutils.js:471 -#: js/pitchdrummatrix.js:151 -#: js/musickeyboard.js:2563 -msgid "rest" +#: js/blocks/ToneBlocks.js:325 +#.TRANS: partials are weighted components in a harmonic series +msgid "weighted partials" msgstr "" -#: js/musicutils.js:565 -#.TRANS: ordinal number. Please keep exactly one space between each number. -msgid "1st 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th" +#: js/blocks/ToneBlocks.js:383 +msgid "The Harmonic block will add harmonics to the contained notes." msgstr "" -#: js/musicutils.js:629 -#: js/musicutils.js:812 -#: js/musicutils.js:911 -#.TRANS: augmented is a music term related to intervals -msgid "augmented" +#: js/blocks/ToneBlocks.js:390 +#.TRANS: A harmonic is an overtone. +msgid "harmonic" msgstr "" -#: js/musicutils.js:631 -#: js/musicutils.js:813 -#: js/musicutils.js:910 -#.TRANS: diminished is a music term related to intervals and mode -msgid "diminished" +#: js/blocks/ToneBlocks.js:431 +msgid "The Distortion block adds distortion to the pitch." msgstr "" -#: js/musicutils.js:639 -#.TRANS: twelve semi-tone scale for music -msgid "chromatic" +#: js/blocks/ToneBlocks.js:438 +#: js/widgets/timbre.js:2100 +#.TRANS: distortion is an alteration in the sound +msgid "distortion" msgstr "" -#: js/musicutils.js:640 -msgid "algerian" +#: js/blocks/ToneBlocks.js:487 +msgid "The Tremolo block adds a wavering effect." msgstr "" -#: js/musicutils.js:641 -msgid "spanish" +#: js/blocks/ToneBlocks.js:495 +#: js/widgets/timbre.js:2092 +#.TRANS: a wavering effect in a musical tone +msgid "tremolo" msgstr "" -#: js/musicutils.js:643 -#.TRANS: modal scale in music -msgid "octatonic" +#: js/blocks/ToneBlocks.js:500 +#: js/blocks/ToneBlocks.js:569 +#: js/blocks/ToneBlocks.js:630 +#: js/blocks/ToneBlocks.js:689 +#: js/widgets/timbre.js:2134 +#: js/widgets/timbre.js:2222 +#: js/widgets/timbre.js:2317 +#: js/widgets/timbre.js:2419 +#.TRANS: rate at which tremolo wavers +msgid "rate" msgstr "" -#: js/musicutils.js:645 -#.TRANS: harmonic major scale in music -msgid "harmonic major" +#: js/blocks/ToneBlocks.js:502 +#: js/blocks/ToneBlocks.js:630 +#: js/widgets/timbre.js:2137 +#: js/widgets/timbre.js:2328 +#.TRANS: amplitude of tremolo waver +msgid "depth" msgstr "" -#: js/musicutils.js:647 -#.TRANS: natural minor scales in music -msgid "natural minor" +#: js/blocks/ToneBlocks.js:559 +msgid "The Phaser block adds a sweeping sound." msgstr "" -#: js/musicutils.js:649 -#.TRANS: harmonic minor scale in music -msgid "harmonic minor" +#: js/blocks/ToneBlocks.js:566 +#: js/widgets/timbre.js:2098 +#.TRANS: alter the phase of the sound +msgid "phaser" msgstr "" -#: js/musicutils.js:651 -#.TRANS: melodic minor scale in music -msgid "melodic minor" +#: js/blocks/ToneBlocks.js:569 +#: js/turtleactions/IntervalsActions.js:114 +#: js/widgets/timbre.js:2422 +msgid "octaves" msgstr "" -#: js/musicutils.js:655 -#.TRANS: modal scale for music -msgid "dorian" +#: js/blocks/ToneBlocks.js:569 +#: js/widgets/timbre.js:2425 +msgid "base frequency" msgstr "" -#: js/musicutils.js:657 -#.TRANS: modal scale for music -msgid "phrygian" +#: js/blocks/ToneBlocks.js:619 +msgid "The Chorus block adds a chorus effect." msgstr "" -#: js/musicutils.js:659 -#.TRANS: modal scale for music -msgid "lydian" +#: js/blocks/ToneBlocks.js:627 +#: js/widgets/timbre.js:2096 +#.TRANS: musical effect to simulate a choral sound +msgid "chorus" msgstr "" -#: js/musicutils.js:661 -#.TRANS: modal scale for music -msgid "mixolydian" +#: js/blocks/ToneBlocks.js:630 +msgid "delay" msgstr "" -#: js/musicutils.js:665 -#.TRANS: modal scale for music -msgid "locrian" +#: js/blocks/ToneBlocks.js:678 +msgid "The Vibrato block adds a rapid, slight variation in pitch." msgstr "" -#: js/musicutils.js:667 -#.TRANS: minor jazz scale for music -msgid "jazz minor" +#: js/blocks/ToneBlocks.js:686 +#: js/widgets/timbre.js:2094 +#.TRANS: a rapid, slight variation in pitch +msgid "vibrato" msgstr "" -#: js/musicutils.js:669 -#.TRANS: bebop scale for music -msgid "bebop" +#: js/blocks/ToneBlocks.js:689 +#: js/widgets/timbre.js:2221 +msgid "intensity" msgstr "" -#: js/musicutils.js:670 -msgid "arabic" +#: js/blocks/ToneBlocks.js:733 +#.TRANS: select synthesizer +msgid "set synth" msgstr "" -#: js/musicutils.js:671 -msgid "byzantine" +#: js/blocks/ToneBlocks.js:804 +msgid "synth name" msgstr "" -#: js/musicutils.js:673 -#.TRANS: musical scale for music by Verdi -msgid "enigmatic" +#: js/blocks/ToneBlocks.js:842 +msgid "set default instrument" msgstr "" -#: js/musicutils.js:674 -msgid "ethiopian" +#: js/blocks/ToneBlocks.js:895 +#: js/blocks/ToneBlocks.js:943 +#.TRANS: set the characteristics of a custom instrument +msgid "set instrument" msgstr "" -#: js/musicutils.js:676 -#.TRANS: Ethiopic scale for music -msgid "geez" +#: js/blocks/ToneBlocks.js:898 +#: js/blocks/ToneBlocks.js:926 +#: js/blocks/ToneBlocks.js:932 +msgid "The Set instrument block selects a voice for the synthesizer," msgstr "" -#: js/musicutils.js:677 -msgid "hindu" +#: js/blocks/ToneBlocks.js:900 +#: js/blocks/ToneBlocks.js:934 +msgid "eg guitar piano violin or cello." msgstr "" -#: js/musicutils.js:678 -msgid "hungarian" +#: js/blocks/ToneBlocks.js:1015 +msgid "Import a sound file to use as an instrument and set its pitch center." msgstr "" -#: js/musicutils.js:680 -#.TRANS: minor Romanian scale for music -msgid "romanian minor" +#: js/blocks/ToneBlocks.js:1110 +msgid "Upload a sound file to connect with the sample block." msgstr "" -#: js/musicutils.js:681 -msgid "spanish gypsy" +#: js/blocks/VolumeBlocks.js:35 +msgid "synth volume" msgstr "" -#: js/musicutils.js:683 -#.TRANS: musical scale for Mid-Eastern music -msgid "maqam" +#: js/blocks/VolumeBlocks.js:39 +msgid "The Synth volume block returns the current volume of the current synthesizer." msgstr "" -#: js/musicutils.js:685 -#.TRANS: minor blues scale for music -msgid "minor blues" +#: js/blocks/VolumeBlocks.js:105 +msgid "master volume" msgstr "" -#: js/musicutils.js:687 -#.TRANS: major blues scale for music -msgid "major blues" +#: js/blocks/VolumeBlocks.js:109 +msgid "The Master volume block returns the master volume." msgstr "" -#: js/musicutils.js:688 -msgid "whole tone" +#: js/blocks/VolumeBlocks.js:355 +#: js/blocks/VolumeBlocks.js:524 +msgid "set synth volume" msgstr "" -#: js/musicutils.js:690 -#.TRANS: pentatonic is a general term that means "five note scale". This scale is typically known as "minor pentatonic" -msgid "minor pentatonic" +#: js/blocks/VolumeBlocks.js:362 +#: js/blocks/VolumeBlocks.js:545 +msgid "synth" msgstr "" -#: js/musicutils.js:692 -#.TRANS: pentatonic is a general term that means "five note scale". This scale is typically known as "major pentatonic" -msgid "major pentatonic" +#: js/blocks/VolumeBlocks.js:403 +#: js/blocks/VolumeBlocks.js:577 +#: js/blocks/VolumeBlocks.js:740 +#: js/turtleactions/VolumeActions.js:173 +msgid "Setting volume to 0." msgstr "" -#: js/musicutils.js:693 -msgid "chinese" +#: js/blocks/VolumeBlocks.js:440 +msgid "Synth not found" msgstr "" -#: js/musicutils.js:694 -msgid "egyptian" +#: js/blocks/VolumeBlocks.js:494 +msgid "set drum volume" msgstr "" -#: js/musicutils.js:696 -#.TRANS: https://en.wikipedia.org/wiki/Hirajoshi_scale NOTE: There are three different versions of this scale -msgid "hirajoshi" +#: js/blocks/VolumeBlocks.js:530 +msgid "The Set synth volume block will change the volume of a particular synth," msgstr "" -#: js/musicutils.js:697 -msgid "Japan" +#: js/blocks/VolumeBlocks.js:532 +msgid "eg guitar violin snare drum etc." msgstr "" -#: js/musicutils.js:699 -#.TRANS: https://en.wikipedia.org/wiki/In_scale and https://en.wikipedia.org/wiki/Sakura_Sakura -msgid "in" +#: js/blocks/VolumeBlocks.js:534 +msgid "The default volume is 50." msgstr "" -#: js/musicutils.js:701 -#.TRANS: https://en.wikipedia.org/wiki/Miny%C5%8D_scale -msgid "minyo" +#: js/blocks/VolumeBlocks.js:536 +msgid "The range is 0 for silence to 100 for full volume." msgstr "" -#: js/musicutils.js:703 -#.TRANS: Italian mathematician -msgid "fibonacci" +#: js/blocks/VolumeBlocks.js:597 +msgid "set panning" msgstr "" -#: js/musicutils.js:708 -#: js/musicutils.js:1106 -#.TRANS: lowpass filter -msgid "lowpass" +#: js/blocks/VolumeBlocks.js:603 +msgid "The Set Panning block sets the panning for all synthesizers." msgstr "" -#: js/musicutils.js:710 -#: js/musicutils.js:1107 -#.TRANS: bandpass filter -msgid "bandpass" +#: js/blocks/VolumeBlocks.js:625 +msgid "Warning: Sound is coming out from only the left or right side." msgstr "" -#: js/musicutils.js:712 -#: js/musicutils.js:1108 -#.TRANS: high-shelf filter -msgid "highshelf" +#: js/blocks/VolumeBlocks.js:647 +#: js/blocks/VolumeBlocks.js:695 +msgid "set master volume" msgstr "" -#: js/musicutils.js:714 -#: js/musicutils.js:1109 -#.TRANS: low-shelf filter -msgid "lowshelf" +#: js/blocks/VolumeBlocks.js:653 +msgid "The Set master volume block sets the volume for all synthesizers." msgstr "" -#: js/musicutils.js:716 -#: js/musicutils.js:1110 -#.TRANS: notch-shelf filter -msgid "notch" +#: js/blocks/VolumeBlocks.js:784 +msgid "The Set relative volume block changes the volume of the contained notes." msgstr "" -#: js/musicutils.js:718 -#: js/musicutils.js:1111 -#.TRANS: all-pass filter -msgid "allpass" +#: js/blocks/VolumeBlocks.js:791 +msgid "set relative volume" msgstr "" -#: js/musicutils.js:720 -#: js/musicutils.js:1112 -#.TRANS: peaking filter -msgid "peaking" +#: js/blocks/VolumeBlocks.js:857 +msgid "decrescendo" msgstr "" -#: js/musicutils.js:731 -#: js/synthutils.js:58 -#.TRANS: musical instrument -msgid "violin" +#: js/blocks/VolumeBlocks.js:921 +msgid "crescendo" msgstr "" -#: js/musicutils.js:732 -#: js/synthutils.js:60 -#.TRANS: viola musical instrument -msgid "viola" +#: js/blocks/WidgetBlocks.js:81 +#.TRANS: sound envelope (ADSR) +msgid "envelope" msgstr "" -#: js/musicutils.js:733 -#: js/synthutils.js:98 -#.TRANS: xylophone musical instrument -msgid "xylophone" +#: js/blocks/WidgetBlocks.js:89 +#.TRANS: Attack time is the time taken for initial run-up of level from nil to peak, beginning when the key is first pressed. +msgid "attack" msgstr "" -#: js/musicutils.js:734 -#: js/synthutils.js:120 -#.TRANS: vibraphone musical instrument -msgid "vibraphone" +#: js/blocks/WidgetBlocks.js:91 +#.TRANS: Decay time is the time taken for the subsequent run down from the attack level to the designated sustain level. +msgid "decay" msgstr "" -#: js/musicutils.js:735 -#: js/synthutils.js:62 -#.TRANS: musical instrument -msgid "cello" +#: js/blocks/WidgetBlocks.js:93 +#.TRANS: Sustain level is the level during the main sequence of the sound's duration, until the key is released. +msgid "sustain" msgstr "" -#: js/musicutils.js:737 -#: js/synthutils.js:66 -#.TRANS: viola musical instrument -msgid "double bass" +#: js/blocks/WidgetBlocks.js:95 +#.TRANS: Release time is the time taken for the level to decay from the sustain level to zero after the key is released. +msgid "release" msgstr "" -#: js/musicutils.js:738 -#: js/synthutils.js:68 -#: js/rhythmruler.js:2119 -#.TRANS: musical instrument -msgid "guitar" +#: js/blocks/WidgetBlocks.js:113 +msgid "Attack value should be from 0 to 100." msgstr "" -#: js/musicutils.js:739 -#: js/synthutils.js:70 -#.TRANS: musical instrument -msgid "acoustic guitar" +#: js/blocks/WidgetBlocks.js:116 +msgid "Decay value should be from 0 to 100." msgstr "" -#: js/musicutils.js:740 -#: js/synthutils.js:72 -#.TRANS: musical instrument -msgid "flute" +#: js/blocks/WidgetBlocks.js:119 +msgid "Sustain value should be from 0 to 100." msgstr "" -#: js/musicutils.js:741 -#: js/synthutils.js:74 -#.TRANS: musical instrument -msgid "clarinet" +#: js/blocks/WidgetBlocks.js:122 +msgid "Release value should be from 0-100." msgstr "" -#: js/musicutils.js:742 -#: js/synthutils.js:76 -#.TRANS: musical instrument -msgid "saxophone" +#: js/blocks/WidgetBlocks.js:140 +msgid "You are adding multiple envelope blocks." msgstr "" -#: js/musicutils.js:743 -#: js/synthutils.js:78 -#.TRANS: musical instrument -msgid "tuba" +#: js/blocks/WidgetBlocks.js:171 +#.TRANS: a filter removes some unwanted components from a signal +msgid "filter" msgstr "" -#: js/musicutils.js:744 -#: js/synthutils.js:80 -#.TRANS: musical instrument -msgid "trumpet" +#: js/blocks/WidgetBlocks.js:181 +#: js/widgets/timbre.js:1818 +#.TRANS: rolloff is the steepness of a change in frequency. +msgid "rolloff" msgstr "" -#: js/musicutils.js:745 -#: js/synthutils.js:82 -#.TRANS: musical instrument -msgid "oboe" +#: js/blocks/WidgetBlocks.js:213 +#.TRANS: rolloff is the steepness of a change in frequency. +msgid "Rolloff value should be either -12, -24, -48, or -96 decibels/octave." msgstr "" -#: js/musicutils.js:746 -#: js/synthutils.js:84 -#.TRANS: musical instrument -msgid "trombone" +#: js/blocks/WidgetBlocks.js:252 +msgid "The Temperament tool is used to define custom tuning." msgstr "" -#: js/musicutils.js:747 -#: js/synthutils.js:100 -#.TRANS: polytone synthesizer -msgid "electronic synth" +#: js/blocks/WidgetBlocks.js:332 +#: js/blocks/WidgetBlocks.js:1573 +#: js/widgets/sampler.js:547 +msgid "Upload a sample and adjust its pitch center." msgstr "" -#: js/musicutils.js:748 -#: js/synthutils.js:102 -#.TRANS: simple monotone synthesizer -msgid "simple 1" +#: js/blocks/WidgetBlocks.js:339 +#.TRANS: the speed at music is should be played. +msgid "sampler" +msgstr "" + +#: js/blocks/WidgetBlocks.js:517 +msgid "The Meter block opens a tool to select strong beats for the meter." msgstr "" -#: js/musicutils.js:749 -msgid "simple 2" +#: js/blocks/WidgetBlocks.js:573 +msgid "The oscilloscope block opens a tool to visualize waveforms." msgstr "" -#: js/musicutils.js:750 -msgid "simple 3" +#: js/blocks/WidgetBlocks.js:578 +msgid "oscilloscope" msgstr "" -#: js/musicutils.js:751 -msgid "simple 4" +#: js/blocks/WidgetBlocks.js:645 +msgid "The Custom mode block opens a tool to explore musical mode (the spacing of the notes in a scale)." msgstr "" -#: js/musicutils.js:753 -#: js/synthutils.js:49 -#.TRANS: brown noise synthesizer -msgid "brown noise" +#: js/blocks/WidgetBlocks.js:651 +#.TRANS: musical mode is the pattern of half-steps in an octave, e.g., Major or Minor modes +msgid "custom mode" msgstr "" -#: js/musicutils.js:754 -#: js/synthutils.js:51 -#.TRANS: pink noise synthesizer -msgid "pink noise" +#: js/blocks/WidgetBlocks.js:700 +msgid "The Tempo block opens a metronome to visualize the beat." msgstr "" -#: js/musicutils.js:756 -#: js/synthutils.js:127 -#: js/rhythmruler.js:1670 -#: js/rhythmruler.js:1928 -#.TRANS: musical instrument -msgid "snare drum" +#: js/blocks/WidgetBlocks.js:762 +msgid "The Arpeggio Widget is used to compose chord sequences." msgstr "" -#: js/musicutils.js:757 -#: js/synthutils.js:129 -#.TRANS: musical instrument -msgid "kick drum" +#: js/blocks/WidgetBlocks.js:837 +msgid "The Pitch drum matrix is used to map pitches to drum sounds." msgstr "" -#: js/musicutils.js:758 -#: js/synthutils.js:131 -#.TRANS: musical instrument -msgid "tom tom" +#: js/blocks/WidgetBlocks.js:842 +#.TRANS: makes a mapping between pitches and drum sounds +msgid "pitch-drum mapper" msgstr "" -#: js/musicutils.js:759 -#: js/synthutils.js:133 -#.TRANS: musical instrument -msgid "floor tom" +#: js/blocks/WidgetBlocks.js:891 +msgid "You must have at least one pitch block and one drum block in the matrix." msgstr "" -#: js/musicutils.js:760 -#: js/synthutils.js:135 -#.TRANS: musical instrument -msgid "bass drum" +#: js/blocks/WidgetBlocks.js:920 +msgid "The Pitch slider tool to is used to generate pitches at selected frequencies." msgstr "" -#: js/musicutils.js:761 -#: js/synthutils.js:137 -#.TRANS: a drum made from an inverted cup -msgid "cup drum" +#: js/blocks/WidgetBlocks.js:925 +#.TRANS: widget to generate pitches using a slider +msgid "pitch slider" msgstr "" -#: js/musicutils.js:762 -#: js/synthutils.js:139 -#.TRANS: musical instrument -msgid "darbuka drum" +#: js/blocks/WidgetBlocks.js:977 +msgid "chromatic keyboard" msgstr "" -#: js/musicutils.js:763 -#: js/synthutils.js:143 -#.TRANS: musical instrument -msgid "hi hat" +#: js/blocks/WidgetBlocks.js:1011 +#: js/blocks/WidgetBlocks.js:1077 +#.TRANS: widget to generate pitches using a slider +msgid "music keyboard" msgstr "" -#: js/musicutils.js:764 -#: js/synthutils.js:145 -#.TRANS: a small metal bell -msgid "ride bell" +#: js/blocks/WidgetBlocks.js:1062 +#: js/blocks/WidgetBlocks.js:1069 +msgid "The Music keyboard block opens a piano keyboard that can be used to create notes." msgstr "" -#: js/musicutils.js:765 -#: js/synthutils.js:147 -#.TRANS: musical instrument -msgid "cow bell" +#: js/blocks/WidgetBlocks.js:1128 +msgid "The Pitch staircase tool to is used to generate pitches from a given ratio." msgstr "" -#: js/musicutils.js:766 -msgid "japanese drum" +#: js/blocks/WidgetBlocks.js:1135 +#.TRANS: generate a progressive sequence of pitches +msgid "pitch staircase" msgstr "" -#: js/musicutils.js:767 -#: js/synthutils.js:153 -#.TRANS: musical instrument -msgid "japanese bell" +#: js/blocks/WidgetBlocks.js:1222 +msgid "The Rhythm Maker block opens a tool to create drum machines." msgstr "" -#: js/musicutils.js:768 -#: js/synthutils.js:149 -#.TRANS: musical instrument -msgid "triangle bell" +#: js/blocks/WidgetBlocks.js:1291 +msgid "G major scale" msgstr "" -#: js/musicutils.js:769 -#: js/synthutils.js:151 -#.TRANS: musical instrument -msgid "finger cymbals" +#: js/blocks/WidgetBlocks.js:1326 +msgid "C major scale" msgstr "" -#: js/musicutils.js:770 -#: js/synthutils.js:155 -#.TRANS: a musically tuned set of bells -msgid "chime" +#: js/blocks/WidgetBlocks.js:1366 +msgid "The Phrase Maker block opens a tool to create musical phrases." msgstr "" -#: js/musicutils.js:771 -#: js/synthutils.js:157 -#.TRANS: a musical instrument -msgid "gong" +#: js/blocks/WidgetBlocks.js:1373 +#.TRANS: assigns pitch to a sequence of beats to generate a melody +msgid "phrase maker" msgstr "" -#: js/musicutils.js:772 -#: js/synthutils.js:159 -#.TRANS: sound effect -msgid "clang" +#: js/blocks/WidgetBlocks.js:1444 +msgid "You must have at least one pitch block and one rhythm block in the matrix." msgstr "" -#: js/musicutils.js:773 -#: js/synthutils.js:161 -#.TRANS: sound effect -msgid "crash" +#: js/blocks/WidgetBlocks.js:1503 +msgid "The Status block opens a tool for inspecting the status of Music Blocks as it is running." msgstr "" -#: js/musicutils.js:774 -#: js/synthutils.js:163 -#.TRANS: sound effect -msgid "bottle" +#: js/blocks/WidgetBlocks.js:1580 +#.TRANS: AI-generated music +msgid "aimusic" msgstr "" -#: js/musicutils.js:775 -#: js/synthutils.js:165 -#.TRANS: sound effect -msgid "clap" +#: js/turtleactions/MeterActions.js:101 +#: js/turtleactions/MeterActions.js:139 +msgid "beats per minute must be greater than" msgstr "" -#: js/musicutils.js:776 -#: js/synthutils.js:167 -#.TRANS: sound effect -msgid "slap" +#: js/turtleactions/MeterActions.js:111 +#: js/turtleactions/MeterActions.js:149 +msgid "maximum" msgstr "" -#: js/musicutils.js:777 -#: js/synthutils.js:169 -#.TRANS: sound effect -msgid "splash" +#: js/turtleactions/MeterActions.js:117 +#: js/turtleactions/MeterActions.js:155 +msgid "beats per minute is" msgstr "" -#: js/musicutils.js:778 -#: js/synthutils.js:171 -#.TRANS: sound effect -msgid "bubbles" +#: js/turtleactions/DictActions.js:75 +#: js/turtleactions/DictActions.js:142 +#: js/turtleactions/DictActions.js:172 +msgid "font" msgstr "" -#: js/musicutils.js:779 -#: js/synthutils.js:173 -#.TRANS: sound effect -msgid "raindrop" +#: js/turtleactions/DictActions.js:255 +msgid "Dictionary with this name does not exist" msgstr "" -#: js/musicutils.js:780 -#: js/synthutils.js:175 -#.TRANS: animal sound effect -msgid "cat" +#: js/turtleactions/DictActions.js:259 +msgid "Key with this name does not exist in " msgstr "" -#: js/musicutils.js:781 -#: js/synthutils.js:177 -#.TRANS: animal sound effect -msgid "cricket" +#: js/turtleactions/DrumActions.js:227 +msgid "Noise Block: Did you mean to use a Note block?" msgstr "" -#: js/musicutils.js:782 -#: js/synthutils.js:179 -#.TRANS: animal sound effect -msgid "dog" +#: js/turtleactions/IntervalsActions.js:113 +msgid "one" msgstr "" -#: js/musicutils.js:784 -#: js/synthutils.js:86 -#.TRANS: musical instrument -msgid "banjo" +#: js/turtleactions/IntervalsActions.js:113 +msgid "two" msgstr "" -#: js/musicutils.js:785 -#: js/synthutils.js:88 -#.TRANS: musical instrument -msgid "koto" +#: js/turtleactions/IntervalsActions.js:113 +msgid "three" msgstr "" -#: js/musicutils.js:786 -#: js/synthutils.js:90 -#.TRANS: musical instrument -msgid "dulcimer" +#: js/turtleactions/IntervalsActions.js:113 +msgid "four" msgstr "" -#: js/musicutils.js:787 -#: js/synthutils.js:92 -#.TRANS: musical instrument -msgid "electric guitar" +#: js/turtleactions/IntervalsActions.js:113 +msgid "five" msgstr "" -#: js/musicutils.js:788 -#: js/synthutils.js:94 -#.TRANS: musical instrument -msgid "bassoon" +#: js/turtleactions/IntervalsActions.js:113 +msgid "six" msgstr "" -#: js/musicutils.js:789 -#: js/synthutils.js:96 -#.TRANS: musical instrument -msgid "celeste" +#: js/turtleactions/IntervalsActions.js:113 +msgid "seven" msgstr "" -#: js/musicutils.js:791 -#: js/musicutils.js:1123 -#: js/musicutils.js:1131 -#: js/temperament.js:650 -#.TRANS: musical temperament -msgid "equal" +#: js/turtleactions/IntervalsActions.js:113 +msgid "eight" msgstr "" -#: js/musicutils.js:793 -#: js/musicutils.js:1125 -#: js/musicutils.js:1133 -#.TRANS: musical temperament -msgid "Pythagorean" +#: js/turtleactions/IntervalsActions.js:113 +msgid "nine" msgstr "" -#: js/musicutils.js:795 -#: js/musicutils.js:1124 -#: js/musicutils.js:1132 -#.TRANS: musical temperament -msgid "just intonation" +#: js/turtleactions/IntervalsActions.js:119 +msgid "a" msgstr "" -#: js/musicutils.js:797 -#: js/musicutils.js:1126 -#: js/musicutils.js:1127 -#: js/musicutils.js:1134 -#: js/musicutils.js:1135 -#.TRANS: musical temperament -msgid "meantone" +#: js/turtleactions/IntervalsActions.js:120 +msgid "below" msgstr "" -#: js/musicutils.js:814 -msgid "major 7th" +#: js/turtleactions/IntervalsActions.js:124 +msgid "above" msgstr "" -#: js/musicutils.js:815 -msgid "minor 7th" +#: js/turtleactions/IntervalsActions.js:131 +msgid "plus" msgstr "" -#: js/musicutils.js:816 -msgid "dominant 7th" +#: js/turtleactions/IntervalsActions.js:139 +msgid " below" msgstr "" -#: js/musicutils.js:817 -msgid "minor-major 7th" +#: js/turtleactions/IntervalsActions.js:257 +msgid "Adding missing pitch number 0." msgstr "" -#: js/musicutils.js:818 -msgid "fully-diminished 7th" +#: js/turtleactions/IntervalsActions.js:265 +msgid "Ignoring pitch numbers less than zero or greater than eleven." msgstr "" -#: js/musicutils.js:819 -msgid "half-diminished 7th" +#: js/turtleactions/IntervalsActions.js:271 +msgid "Ignoring duplicate pitch numbers." msgstr "" -#: js/musicutils.js:4379 -#: js/musicutils.js:4416 -msgid "current" +#: js/turtleactions/ToneActions.js:134 +msgid "Vibrato intensity must be between 1 and 100." msgstr "" -#: js/musicutils.js:4382 -#: js/musicutils.js:4407 -msgid "next" +#: js/turtleactions/ToneActions.js:139 +msgid "Vibrato rate must be greater than 0." msgstr "" -#: js/musicutils.js:4385 -#: js/musicutils.js:4412 -msgid "previous" +#: js/turtleactions/ToneActions.js:192 +#: js/turtleactions/ToneActions.js:265 +#.TRANS: Depth is the intesity of the tremolo or chorus effect. +msgid "Depth is out of range." msgstr "" -#: js/synthutils.js:104 -#.TRANS: simple monotone synthesizer -msgid "simple-2" +#: js/turtleactions/ToneActions.js:301 +msgid "Distortion must be from 0 to 100." msgstr "" -#: js/synthutils.js:106 -#.TRANS: simple monotone synthesizer -msgid "simple-3" +#: js/turtleactions/ToneActions.js:332 +#.TRANS: partials components in a harmonic series +msgid "Partial must be greater than or equal to 0." msgstr "" -#: js/synthutils.js:108 -#.TRANS: simple monotone synthesizer -msgid "simple-4" +#: js/turtleactions/ToneActions.js:378 +#: js/turtleactions/ToneActions.js:417 +#: js/turtleactions/ToneActions.js:456 +#: js/widgets/timbre.js:782 +msgid "Unable to use synth due to existing oscillator" msgstr "" -#: js/synthutils.js:141 -#.TRANS: musical instrument -msgid "taiko" +#: js/turtleactions/ToneActions.js:388 +#: js/turtleactions/ToneActions.js:427 +msgid "The input cannot be negative." msgstr "" -#: js/modewidget.js:86 -#: js/modewidget.js:88 -#: js/modewidget.js:642 -#: js/modewidget.js:644 -#: js/modewidget.js:712 -#: js/modewidget.js:714 -#: js/temperament.js:2078 -#: js/rhythmruler.js:189 -#: js/rhythmruler.js:1410 -#: js/rhythmruler.js:1412 -#: js/rhythmruler.js:1435 -#: js/rhythmruler.js:1437 -#: js/meterwidget.js:89 -#: js/meterwidget.js:91 +#: js/widgets/modewidget.js:86 +#: js/widgets/modewidget.js:88 +#: js/widgets/modewidget.js:642 +#: js/widgets/modewidget.js:644 +#: js/widgets/modewidget.js:712 +#: js/widgets/modewidget.js:714 +#: js/widgets/meterwidget.js:194 +#: js/widgets/meterwidget.js:196 +#: js/widgets/temperament.js:2236 +#: js/widgets/rhythmruler.js:457 +#: js/widgets/rhythmruler.js:1790 +#: js/widgets/rhythmruler.js:1792 +#: js/widgets/rhythmruler.js:1816 +#: js/widgets/rhythmruler.js:1818 msgid "Play all" msgstr "" -#: js/modewidget.js:115 -#: js/pitchstaircase.js:641 -#: js/phrasemaker.js:339 -#: js/pitchdrummatrix.js:94 -#: js/pitchslider.js:125 -#: js/temperament.js:2083 -#: js/musickeyboard.js:530 -#: js/timbre.js:756 -#: js/meterwidget.js:124 -#: js/arpeggio.js:103 +#: js/widgets/modewidget.js:115 +#: js/widgets/meterwidget.js:229 +#: js/widgets/pitchdrummatrix.js:166 +#: js/widgets/pitchslider.js:125 +#: js/widgets/pitchstaircase.js:641 +#: js/widgets/temperament.js:2244 +#: js/widgets/timbre.js:756 +#: js/widgets/arpeggio.js:103 +#: js/widgets/musickeyboard.js:688 +#: js/widgets/phrasemaker.js:550 msgid "Save" msgstr "" -#: js/modewidget.js:121 -#: js/pitchstaircase.js:686 -#: js/phrasemaker.js:356 -#: js/pitchdrummatrix.js:109 -#: js/musickeyboard.js:534 -#: js/rhythmruler.js:269 -#: js/arpeggio.js:118 +#: js/widgets/modewidget.js:121 +#: js/widgets/pitchdrummatrix.js:181 +#: js/widgets/pitchstaircase.js:686 +#: js/widgets/arpeggio.js:118 +#: js/widgets/musickeyboard.js:696 +#: js/widgets/phrasemaker.js:567 +#: js/widgets/rhythmruler.js:601 #.TRANS: clear all subdivisions from the ruler. msgid "Clear" msgstr "" -#: js/modewidget.js:127 +#: js/widgets/modewidget.js:127 msgid "Rotate counter clockwise" msgstr "" -#: js/modewidget.js:133 +#: js/widgets/modewidget.js:133 msgid "Rotate clockwise" msgstr "" -#: js/modewidget.js:139 +#: js/widgets/modewidget.js:139 msgid "Invert" msgstr "" -#: js/modewidget.js:145 -#: js/pitchstaircase.js:678 -#: js/rhythmruler.js:258 -#: js/timbre.js:963 +#: js/widgets/modewidget.js:145 +#: js/widgets/pitchstaircase.js:678 +#: js/widgets/timbre.js:963 +#: js/widgets/rhythmruler.js:578 msgid "Undo" msgstr "" -#: js/modewidget.js:163 +#: js/widgets/modewidget.js:163 #.TRANS: A circle of notes represents the musical mode. msgid "Click in the circle to select notes for the mode." msgstr "" -#: js/modewidget.js:1017 -#: js/pitchstaircase.js:580 -#: js/phrasemaker.js:4855 -#: js/temperament.js:1754 -#: js/rhythmruler.js:1865 -#: js/rhythmruler.js:2081 -#: js/tempo.js:414 +#: js/widgets/modewidget.js:1017 +#: js/widgets/pitchstaircase.js:580 +#: js/widgets/temperament.js:1929 +#: js/widgets/tempo.js:414 +#: js/widgets/phrasemaker.js:5356 +#: js/widgets/rhythmruler.js:2254 +#: js/widgets/rhythmruler.js:2472 msgid "New action block generated!" msgstr "" -#: js/oscilloscope.js:79 -msgid "Zoom In" -msgstr "" - -#: js/oscilloscope.js:88 -msgid "Zoom Out" -msgstr "" - -#: js/pitchstaircase.js:624 -msgid "Play chord" -msgstr "" - -#: js/pitchstaircase.js:632 -msgid "Play scale" +#: js/widgets/meterwidget.js:275 +msgid "Reset" msgstr "" -#: js/pitchstaircase.js:696 -msgid "Click on a note to create a new step." +#: js/widgets/meterwidget.js:301 +msgid "Click in the circle to select strong beats for the meter." msgstr "" -#: js/phrasemaker.js:363 -msgid "Export" +#: js/widgets/oscilloscope.js:79 +msgid "Zoom In" msgstr "" -#: js/phrasemaker.js:370 -msgid "Sort" +#: js/widgets/oscilloscope.js:88 +msgid "Zoom Out" msgstr "" -#: js/phrasemaker.js:373 -#: js/musickeyboard.js:559 -msgid "Add note" +#: js/widgets/pitchdrummatrix.js:356 +#: js/widgets/pitchdrummatrix.js:752 +msgid "Click in the grid to map notes to drums." msgstr "" -#: js/phrasemaker.js:764 -msgid "Click on the table to add notes." +#: js/widgets/pitchslider.js:103 +msgid "Move up" msgstr "" -#: js/phrasemaker.js:2414 -#: js/phrasemaker.js:2543 -msgid "tuplet value" +#: js/widgets/pitchslider.js:114 +msgid "Move down" msgstr "" -#: js/pitchdrummatrix.js:270 -#: js/pitchdrummatrix.js:639 -msgid "Click in the grid to map notes to drums." +#: js/widgets/pitchslider.js:136 +msgid "Click on the slider to create a note block." msgstr "" -#: js/pitchslider.js:103 -msgid "Move up" +#: js/widgets/pitchstaircase.js:624 +msgid "Play chord" msgstr "" -#: js/pitchslider.js:114 -msgid "Move down" +#: js/widgets/pitchstaircase.js:632 +msgid "Play scale" msgstr "" -#: js/pitchslider.js:136 -msgid "Click on the slider to create a note block." +#: js/widgets/pitchstaircase.js:696 +msgid "Click on a note to create a new step." msgstr "" -#: js/temperament.js:215 +#: js/widgets/temperament.js:321 msgid "back to 2:1 octave space" msgstr "" -#: js/temperament.js:323 +#: js/widgets/temperament.js:447 msgid "edit" msgstr "" -#: js/temperament.js:330 -#: js/temperament.js:332 -#: js/temperament.js:1336 -#: js/temperament.js:1338 +#: js/widgets/temperament.js:454 +#: js/widgets/temperament.js:456 +#: js/widgets/temperament.js:1493 +#: js/widgets/temperament.js:1495 msgid "close" msgstr "" -#: js/temperament.js:423 -#: js/temperament.js:736 -#: js/temperament.js:743 -#: js/temperament.js:845 -#: js/temperament.js:935 -#: js/temperament.js:942 -#: js/temperament.js:1015 -#: js/temperament.js:1284 -#: js/temperament.js:1354 -#: js/temperament.js:1430 +#: js/widgets/temperament.js:552 +#: js/widgets/temperament.js:877 +#: js/widgets/temperament.js:884 +#: js/widgets/temperament.js:986 +#: js/widgets/temperament.js:1080 +#: js/widgets/temperament.js:1087 +#: js/widgets/temperament.js:1160 +#: js/widgets/temperament.js:1433 +#: js/widgets/temperament.js:1511 +#: js/widgets/temperament.js:1596 msgid "done" msgstr "" -#: js/temperament.js:477 -#: js/temperament.js:482 -#: js/temperament.js:918 +#: js/widgets/temperament.js:610 +#: js/widgets/temperament.js:615 +#: js/widgets/temperament.js:1063 msgid "ratio" msgstr "" -#: js/temperament.js:483 +#: js/widgets/temperament.js:616 msgid "interval" msgstr "" -#: js/temperament.js:611 +#: js/widgets/temperament.js:744 msgid "non scalar" msgstr "" -#: js/temperament.js:650 +#: js/widgets/temperament.js:787 msgid "ratios" msgstr "" -#: js/temperament.js:650 +#: js/widgets/temperament.js:787 msgid "arbitrary" msgstr "" -#: js/temperament.js:719 +#: js/widgets/temperament.js:860 msgid "number of divisions" msgstr "" -#: js/temperament.js:741 -#: js/temperament.js:858 -#: js/temperament.js:940 -#: js/temperament.js:1033 +#: js/widgets/temperament.js:882 +#: js/widgets/temperament.js:999 +#: js/widgets/temperament.js:1085 +#: js/widgets/temperament.js:1178 msgid "preview" msgstr "" -#: js/temperament.js:788 +#: js/widgets/temperament.js:929 msgid "The Number of divisions is too large." msgstr "" -#: js/temperament.js:921 +#: js/widgets/temperament.js:1066 msgid "recursion" msgstr "" -#: js/temperament.js:1450 +#: js/widgets/temperament.js:1616 msgid "The octave ratio has changed. This changes temperament significantly." msgstr "" -#: js/temperament.js:2087 +#: js/widgets/temperament.js:2248 msgid "Table" msgstr "" -#: js/temperament.js:2185 +#: js/widgets/temperament.js:2356 msgid "Add pitches" msgstr "" -#: js/musickeyboard.js:570 -msgid "Metronome" +#: js/widgets/tempo.js:78 +#: js/widgets/tempo.js:97 +#: js/widgets/tempo.js:99 +#: js/widgets/aiwidget.js:134 +#: js/widgets/aiwidget.js:136 +#: js/widgets/rhythmruler.js:681 +#: js/widgets/rhythmruler.js:683 +#: js/widgets/rhythmruler.js:1864 +#: js/widgets/rhythmruler.js:1866 +#: js/widgets/sampler.js:180 +#: js/widgets/sampler.js:182 +msgid "Pause" msgstr "" -#: js/musickeyboard.js:1296 -#: plugins/rodi.rtp:193 -msgid "duration" -msgstr "duur" +#: js/widgets/tempo.js:113 +msgid "Save tempo" +msgstr "" -#: js/musickeyboard.js:2840 -msgid "New action blocks generated!" +#: js/widgets/tempo.js:144 +msgid "speed up" msgstr "" -#: js/musickeyboard.js:2841 -msgid "New action block generated" +#: js/widgets/tempo.js:150 +msgid "slow down" msgstr "" -#: js/musickeyboard.js:2984 -#: js/musickeyboard.js:2992 -msgid "MIDI device present." +#: js/widgets/tempo.js:194 +msgid "Adjust the tempo with the buttons." msgstr "" -#: js/musickeyboard.js:2995 -msgid "No MIDI device found." +#: js/widgets/tempo.js:261 +msgid "Please enter a number between 30 and 1000" msgstr "" -#: js/musickeyboard.js:3000 -msgid "Failed to get MIDI access in browser." +#: js/widgets/tempo.js:268 +#: js/widgets/tempo.js:271 +msgid "The beats per minute must be between 30 and 1000." msgstr "" -#: js/rhythmruler.js:202 -msgid "Save rhythms" +#: js/widgets/tempo.js:287 +msgid "The beats per minute must be below 1000." msgstr "" -#: js/rhythmruler.js:222 -msgid "Save drum machine" +#: js/widgets/tempo.js:303 +msgid "The beats per minute must be above 30" msgstr "" -#: js/rhythmruler.js:263 -#.TRANS: user can tap out a rhythm by clicking on a ruler. -msgid "Tap a rhythm" +#: js/widgets/timbre.js:766 +msgid "Synthesizer" msgstr "" -#: js/rhythmruler.js:342 -#: js/rhythmruler.js:344 -#: js/rhythmruler.js:1481 -#: js/rhythmruler.js:1483 -#: js/sampler.js:110 -#: js/sampler.js:112 -#: js/tempo.js:78 -#: js/tempo.js:97 -#: js/tempo.js:99 -msgid "Pause" +#: js/widgets/timbre.js:789 +msgid "Oscillator" msgstr "" -#: js/rhythmruler.js:478 -msgid "Click on the ruler to divide it." +#: js/widgets/timbre.js:840 +msgid "Envelope" msgstr "" -#: js/rhythmruler.js:603 -#: js/rhythmruler.js:605 -#: js/rhythmruler.js:804 -#: js/rhythmruler.js:806 -#: js/rhythmruler.js:1386 -#: js/rhythmruler.js:1388 -msgid "tap a rhythm" +#: js/widgets/timbre.js:886 +#: planet/js/GlobalTag.js:50 +#.TRANS: On the Planet, we use labels to tag projects. +msgid "Effects" msgstr "" -#: js/rhythmruler.js:1084 -msgid "Maximum value of 256 has been exceeded." +#: js/widgets/timbre.js:904 +msgid "Filter" msgstr "" -#: js/sampler.js:137 -msgid "Warning: Sample is bigger than 1MB." +#: js/widgets/timbre.js:946 +msgid "Add filter" msgstr "" -#: js/sampler.js:142 -msgid "Upload failed: Sample is not a .wav file." +#: js/widgets/timbre.js:987 +msgid "Click on buttons to open the timbre design tools." msgstr "" -#: js/sampler.js:164 -msgid "A new sample block was generated." +#: js/widgets/timbre.js:1273 +msgid "harmonicity" msgstr "" -#: js/sampler.js:255 -msgid "Upload sample" +#: js/widgets/timbre.js:1340 +#: js/widgets/timbre.js:1406 +msgid "modulation index" msgstr "" -#: js/sampler.js:306 -msgid "Save sample" +#: js/widgets/timbre.js:1484 +msgid "vibrato amount" msgstr "" -#: js/sampler.js:697 -#.TRANS: The reference tone is a sound used for comparison. -msgid "reference tone" +#: js/widgets/timbre.js:1919 +msgid "Filter already present." msgstr "" -#: js/tempo.js:113 -msgid "Save tempo" +#: js/widgets/timbre.js:2322 +msgid "delay (MS)" msgstr "" -#: js/tempo.js:144 -msgid "speed up" +#: js/widgets/timbre.js:2507 +msgid "distortion amount" msgstr "" -#: js/tempo.js:150 -msgid "slow down" +#: js/widgets/aiwidget.js:180 +#: js/widgets/sampler.js:227 +msgid "Warning: Sample is bigger than 1MB." msgstr "" -#: js/tempo.js:194 -msgid "Adjust the tempo with the buttons." +#: js/widgets/aiwidget.js:539 +msgid "New start block generated" msgstr "" -#: js/tempo.js:261 -msgid "Please enter a number between 30 and 1000" +#: js/widgets/aiwidget.js:541 +msgid "MIDI loading. This may take some time depending upon the number of notes in the track" msgstr "" -#: js/tempo.js:268 -#: js/tempo.js:271 -msgid "The beats per minute must be between 30 and 1000." +#: js/widgets/aiwidget.js:551 +#: js/widgets/sampler.js:254 +msgid "Upload failed: Sample is not a .wav file." msgstr "" -#: js/tempo.js:287 -msgid "The beats per minute must be below 1000." +#: js/widgets/aiwidget.js:679 +#: js/widgets/sampler.js:432 +msgid "Save sample" msgstr "" -#: js/tempo.js:303 -msgid "The beats per minute must be above 30" +#: js/widgets/aiwidget.js:701 +msgid "AI Music" msgstr "" -#: js/timbre.js:766 -msgid "Synthesizer" +#: js/widgets/arpeggio.js:239 +msgid "Click in the grid to add steps to the arpeggio." msgstr "" -#: js/timbre.js:789 -msgid "Oscillator" +#: js/widgets/help.js:95 +#: js/widgets/help.js:125 +#: js/widgets/help.js:146 +#: js/widgets/help.js:158 +#: js/widgets/help.js:376 +#: js/widgets/help.js:391 +msgid "Take a tour" msgstr "" -#: js/timbre.js:840 -msgid "Envelope" +#: js/widgets/musickeyboard.js:725 +#: js/widgets/phrasemaker.js:584 +msgid "Add note" msgstr "" -#: js/timbre.js:886 -#: js/GlobalTag.js:50 -#.TRANS: On the Planet, we use labels to tag projects. -msgid "Effects" +#: js/widgets/musickeyboard.js:744 +msgid "Metronome" +msgstr "" + +#: js/widgets/musickeyboard.js:1549 +#: plugins/rodi.rtp:193 +msgid "duration" +msgstr "duur" + +#: js/widgets/musickeyboard.js:3179 +msgid "New action blocks generated" +msgstr "" + +#: js/widgets/musickeyboard.js:3180 +msgid "New action block generated" msgstr "" -#: js/timbre.js:904 -msgid "Filter" +#: js/widgets/musickeyboard.js:3365 +#: js/widgets/musickeyboard.js:3373 +msgid "MIDI device present." msgstr "" -#: js/timbre.js:946 -msgid "Add filter" +#: js/widgets/musickeyboard.js:3376 +msgid "No MIDI device found." msgstr "" -#: js/timbre.js:987 -msgid "Click on buttons to open the timbre design tools." +#: js/widgets/musickeyboard.js:3386 +msgid "Failed to get MIDI access in browser." msgstr "" -#: js/timbre.js:1273 -msgid "harmonicity" +#: js/widgets/phrasemaker.js:574 +msgid "Export" msgstr "" -#: js/timbre.js:1340 -#: js/timbre.js:1406 -msgid "modulation index" +#: js/widgets/phrasemaker.js:581 +msgid "Sort" msgstr "" -#: js/timbre.js:1484 -msgid "vibrato amount" +#: js/widgets/phrasemaker.js:975 +msgid "Click on the table to add notes." msgstr "" -#: js/timbre.js:1919 -msgid "Filter already present." +#: js/widgets/phrasemaker.js:2677 +#: js/widgets/phrasemaker.js:2819 +msgid "tuplet value" msgstr "" -#: js/timbre.js:2322 -msgid "delay (MS)" +#: js/widgets/rhythmruler.js:486 +msgid "Save rhythms" msgstr "" -#: js/timbre.js:2507 -msgid "distortion amount" +#: js/widgets/rhythmruler.js:512 +msgid "Save drum machine" msgstr "" -#: js/meterwidget.js:170 -msgid "Reset" +#: js/widgets/rhythmruler.js:589 +#.TRANS: user can tap out a rhythm by clicking on a ruler. +msgid "Tap a rhythm" msgstr "" -#: js/meterwidget.js:196 -msgid "Click in the circle to select strong beats for the meter." +#: js/widgets/rhythmruler.js:817 +msgid "Click on the ruler to divide it." msgstr "" -#: js/arpeggio.js:239 -msgid "Click in the grid to add steps to the arpeggio." +#: js/widgets/rhythmruler.js:950 +#: js/widgets/rhythmruler.js:952 +#: js/widgets/rhythmruler.js:1152 +#: js/widgets/rhythmruler.js:1154 +#: js/widgets/rhythmruler.js:1765 +#: js/widgets/rhythmruler.js:1767 +msgid "tap a rhythm" msgstr "" -#: js/ProjectStorage.js:243 -msgid "anonymous" +#: js/widgets/rhythmruler.js:1459 +msgid "Maximum value of 256 has been exceeded." msgstr "" -#: js/GlobalCard.js:68 -msgid "Share" +#: js/widgets/sampler.js:237 +msgid "Recording started..." msgstr "" -#: js/GlobalCard.js:74 -msgid "Flags" +#: js/widgets/sampler.js:245 +msgid "Recording complete..." msgstr "" -#: js/LocalCard.js:36 -msgid "View published project" +#: js/widgets/sampler.js:283 +msgid "A new sample block was generated." msgstr "" -#: js/LocalCard.js:42 -msgid "Publish project" +#: js/widgets/sampler.js:378 +msgid "Upload sample" msgstr "" -#: js/LocalCard.js:51 -msgid "Edit project" +#: js/widgets/sampler.js:399 +msgid "Warning: Your sample cannot be loaded because it is >1MB." msgstr "" -#: js/LocalCard.js:52 -msgid "Delete project" +#: js/widgets/sampler.js:448 +msgid "Toggle Mic" msgstr "" -#: js/LocalCard.js:53 -msgid "Download project" +#: js/widgets/sampler.js:458 +msgid "Playback" msgstr "" -#: js/LocalCard.js:55 -msgid "Duplicate project" +#: js/widgets/sampler.js:979 +#.TRANS: The reference tone is a sound used for comparison. +msgid "reference tone" msgstr "" -#: js/GlobalTag.js:28 +#: planet/js/GlobalTag.js:28 #.TRANS: On the Planet, we use labels to tag projects. msgid "All Projects" msgstr "" -#: js/GlobalTag.js:30 -#: js/StringHelper.js:37 +#: planet/js/GlobalTag.js:30 +#: planet/js/StringHelper.js:37 #.TRANS: On the Planet, we use labels to tag projects. msgid "My Projects" msgstr "" -#: js/GlobalTag.js:32 +#: planet/js/GlobalTag.js:32 #.TRANS: On the Planet, we use labels to tag projects. msgid "Examples" msgstr "" -#: js/GlobalTag.js:34 +#: planet/js/GlobalTag.js:34 #.TRANS: On the Planet, we use labels to tag projects. msgid "Music" msgstr "" -#: js/GlobalTag.js:36 +#: planet/js/GlobalTag.js:36 #.TRANS: On the Planet, we use labels to tag projects. msgid "Art" msgstr "" -#: js/GlobalTag.js:38 +#: planet/js/GlobalTag.js:38 #.TRANS: On the Planet, we use labels to tag projects. msgid "Math" msgstr "" -#: js/GlobalTag.js:40 +#: planet/js/GlobalTag.js:40 #.TRANS: On the Planet, we use labels to tag projects. msgid "Interactive" msgstr "" -#: js/GlobalTag.js:42 +#: planet/js/GlobalTag.js:42 #.TRANS: On the Planet, we use labels to tag projects. msgid "Design" msgstr "" -#: js/GlobalTag.js:44 +#: planet/js/GlobalTag.js:44 #.TRANS: On the Planet, we use labels to tag projects. msgid "Game" msgstr "" -#: js/GlobalTag.js:46 +#: planet/js/GlobalTag.js:46 #.TRANS: On the Planet, we use labels to tag projects. msgid "Media" msgstr "" -#: js/GlobalTag.js:48 +#: planet/js/GlobalTag.js:48 #.TRANS: On the Planet, we use labels to tag projects. msgid "Sensors" msgstr "" -#: js/GlobalTag.js:52 +#: planet/js/GlobalTag.js:52 #.TRANS: On the Planet, we use labels to tag projects. msgid "Code Snippet" msgstr "" -#: js/helper.js:149 -#: js/StringHelper.js:49 -msgid "Show more tags" +#: planet/js/LocalCard.js:36 +msgid "View published project" msgstr "" -#: js/helper.js:150 -msgid "Show fewer tags" +#: planet/js/LocalCard.js:42 +msgid "Publish project" +msgstr "" + +#: planet/js/LocalCard.js:51 +msgid "Edit project" +msgstr "" + +#: planet/js/LocalCard.js:52 +msgid "Delete project" +msgstr "" + +#: planet/js/LocalCard.js:53 +msgid "Download project" +msgstr "" + +#: planet/js/LocalCard.js:55 +msgid "Duplicate project" +msgstr "" + +#: planet/js/ProjectStorage.js:243 +msgid "anonymous" +msgstr "" + +#: planet/js/SaveInterface.js:34 +msgid "Open in Music Blocks" +msgstr "" + +#: planet/js/SaveInterface.js:35 +msgid "Open in Turtle Blocks" +msgstr "" + +#: planet/js/GlobalCard.js:68 +msgid "Share" +msgstr "" + +#: planet/js/GlobalCard.js:74 +msgid "Flags" +msgstr "" + +#: planet/js/GlobalPlanet.js:35 +msgid "No results found." +msgstr "" + +#: planet/js/GlobalPlanet.js:51 +msgid "Remix of" +msgstr "" + +#: planet/js/GlobalPlanet.js:509 +msgid "Cannot connect to server" msgstr "" -#: js/ProjectViewer.js:30 +#: planet/js/ProjectViewer.js:30 msgid "Error: Report could not be submitted. Try again later." msgstr "" -#: js/ProjectViewer.js:31 +#: planet/js/ProjectViewer.js:31 msgid "Thank you for reporting this project. A moderator will review the project shortly, to verify violation of the Sugar Labs Code of Conduct." msgstr "" -#: js/ProjectViewer.js:32 -#: js/StringHelper.js:62 -#: js/StringHelper.js:64 -#: js/StringHelper.js:68 +#: planet/js/ProjectViewer.js:32 +#: planet/js/StringHelper.js:62 +#: planet/js/StringHelper.js:64 +#: planet/js/StringHelper.js:68 msgid "Report Project" msgstr "" -#: js/ProjectViewer.js:33 -#: js/StringHelper.js:63 +#: planet/js/ProjectViewer.js:33 +#: planet/js/StringHelper.js:63 msgid "Project Reported" msgstr "" -#: js/ProjectViewer.js:34 +#: planet/js/ProjectViewer.js:34 msgid "Report description required" msgstr "" -#: js/ProjectViewer.js:35 +#: planet/js/ProjectViewer.js:35 msgid "Report description too long" msgstr "" -#: js/StringHelper.js:30 +#: planet/js/Publisher.js:30 +msgid "Feature unavailable - cannot connect to server. Reload Music Blocks to try again." +msgstr "" + +#: planet/js/Publisher.js:220 +#: planet/js/Publisher.js:237 +msgid "This field is required" +msgstr "" + +#: planet/js/Publisher.js:227 +msgid "Title too long" +msgstr "" + +#: planet/js/Publisher.js:244 +msgid "Description too long" +msgstr "" + +#: planet/js/Publisher.js:341 +msgid "Server Error" +msgstr "" + +#: planet/js/Publisher.js:341 +msgid "Try Again" +msgstr "" + +#: planet/js/StringHelper.js:30 msgid "Planet" msgstr "" -#: js/StringHelper.js:31 +#: planet/js/StringHelper.js:31 msgid "Close Planet" msgstr "" -#: js/StringHelper.js:32 +#: planet/js/StringHelper.js:32 msgid "Open project from file" msgstr "" -#: js/StringHelper.js:34 +#: planet/js/StringHelper.js:34 msgid "Local" msgstr "" -#: js/StringHelper.js:35 +#: planet/js/StringHelper.js:35 msgid "Global" msgstr "" -#: js/StringHelper.js:36 +#: planet/js/StringHelper.js:36 msgid "Search for a project" msgstr "" -#: js/StringHelper.js:38 +#: planet/js/StringHelper.js:38 msgid "Publish Project" msgstr "" -#: js/StringHelper.js:40 +#: planet/js/StringHelper.js:40 msgid "Tags (max 5)" msgstr "" -#: js/StringHelper.js:41 -#: js/StringHelper.js:61 +#: planet/js/StringHelper.js:41 +#: planet/js/StringHelper.js:61 msgid "Description" msgstr "" -#: js/StringHelper.js:42 -#: js/StringHelper.js:67 +#: planet/js/StringHelper.js:42 +#: planet/js/StringHelper.js:67 msgid "Submit" msgstr "" -#: js/StringHelper.js:43 -#: js/StringHelper.js:47 +#: planet/js/StringHelper.js:43 +#: planet/js/StringHelper.js:47 msgid "Cancel" msgstr "" -#: js/StringHelper.js:44 +#: planet/js/StringHelper.js:44 msgid "Delete \\"\\"?" msgstr "" -#: js/StringHelper.js:45 +#: planet/js/StringHelper.js:45 msgid "Permanently delete project \\"\\"?" msgstr "" -#: js/StringHelper.js:48 +#: planet/js/StringHelper.js:48 msgid "Explore Projects" msgstr "" -#: js/StringHelper.js:50 +#: planet/js/StringHelper.js:49 +#: planet/js/helper.js:149 +msgid "Show more tags" +msgstr "" + +#: planet/js/StringHelper.js:50 msgid "Most recent" msgstr "" -#: js/StringHelper.js:51 +#: planet/js/StringHelper.js:51 msgid "Most liked" msgstr "" -#: js/StringHelper.js:52 +#: planet/js/StringHelper.js:52 msgid "Most downloaded" msgstr "" -#: js/StringHelper.js:53 +#: planet/js/StringHelper.js:53 msgid "A-Z" msgstr "" -#: js/StringHelper.js:54 +#: planet/js/StringHelper.js:54 msgid "Sort by" msgstr "" -#: js/StringHelper.js:55 +#: planet/js/StringHelper.js:55 msgid "Load More Projects" msgstr "" -#: js/StringHelper.js:56 +#: planet/js/StringHelper.js:56 msgid "Last Updated" msgstr "" -#: js/StringHelper.js:57 +#: planet/js/StringHelper.js:57 msgid "Creation Date" msgstr "" -#: js/StringHelper.js:58 +#: planet/js/StringHelper.js:58 msgid "Number of Downloads:" msgstr "" -#: js/StringHelper.js:59 +#: planet/js/StringHelper.js:59 msgid "Number of Likes:" msgstr "" -#: js/StringHelper.js:60 +#: planet/js/StringHelper.js:60 msgid "Tags:" msgstr "" -#: js/StringHelper.js:65 +#: planet/js/StringHelper.js:65 msgid "Report projects which violate the Sugar Labs Code of Conduct." msgstr "" -#: js/StringHelper.js:66 +#: planet/js/StringHelper.js:66 msgid "Reason for reporting project" msgstr "" -#: js/StringHelper.js:70 +#: planet/js/StringHelper.js:70 msgid "Download as File" msgstr "" -#: js/GlobalPlanet.js:35 -msgid "No results found." -msgstr "" - -#: js/GlobalPlanet.js:51 -msgid "Remix of" -msgstr "" - -#: js/GlobalPlanet.js:509 -msgid "Cannot connect to server" -msgstr "" - -#: js/Publisher.js:30 -msgid "Feature unavailable - cannot connect to server. Reload Music Blocks to try again." -msgstr "" - -#: js/Publisher.js:218 -#: js/Publisher.js:235 -msgid "This field is required" -msgstr "" - -#: js/Publisher.js:225 -msgid "Title too long" +#: planet/js/helper.js:150 +msgid "Show fewer tags" msgstr "" -#: js/Publisher.js:242 -msgid "Description too long" +#: plugins/accelerometer.rtp:48 +msgid "motion x" msgstr "" -#: js/Publisher.js:339 -msgid "Server Error" +#: plugins/accelerometer.rtp:56 +msgid "motion y" msgstr "" -#: js/Publisher.js:339 -msgid "Try Again" +#: plugins/accelerometer.rtp:64 +msgid "motion z" msgstr "" -#: js/SaveInterface.js:34 -msgid "Open in Music Blocks" +#: plugins/facebook.rtp:27 +msgid "publish" msgstr "" -#: js/SaveInterface.js:35 -msgid "Open in Turtle Blocks" +#: plugins/maths.rtp:62 +msgid "power" msgstr "" -#: plugins/weather.rtp:68 -#: plugins/weather.rtp:97 -msgid "Days ahead must be in the range of -1 to 5." +#: plugins/maths.rtp:62 +msgid "base" msgstr "" -#: plugins/weather.rtp:122 -msgid "forecast" +#: plugins/maths.rtp:62 +msgid "exp" msgstr "" -#: plugins/weather.rtp:123 -#: plugins/weather.rtp:137 -#: plugins/weather.rtp:150 -msgid "city" +#: plugins/maths.rtp:99 +msgid "floor" msgstr "" -#: plugins/weather.rtp:124 -#: plugins/weather.rtp:138 -#: plugins/weather.rtp:151 -msgid "day" +#: plugins/maths.rtp:104 +msgid "ceiling" msgstr "" -#: plugins/weather.rtp:136 -msgid "high" +#: plugins/maths.rtp:109 +msgid "to degrees" msgstr "" -#: plugins/weather.rtp:149 -msgid "low" +#: plugins/maths.rtp:114 +msgid "to radians" msgstr "" #: plugins/nutrition.rtp:104 @@ -9456,45 +9865,6 @@ msgstr "" msgid "water" msgstr "" -#: plugins/maths.rtp:62 -#: plugins/examples.rtp:93 -msgid "power" -msgstr "" - -#: plugins/maths.rtp:62 -#: plugins/examples.rtp:93 -msgid "base" -msgstr "" - -#: plugins/maths.rtp:62 -#: plugins/examples.rtp:93 -msgid "exp" -msgstr "" - -#: plugins/maths.rtp:99 -#: plugins/examples.rtp:130 -msgid "floor" -msgstr "" - -#: plugins/maths.rtp:104 -#: plugins/examples.rtp:135 -msgid "ceiling" -msgstr "" - -#: plugins/maths.rtp:109 -#: plugins/examples.rtp:140 -msgid "to degrees" -msgstr "" - -#: plugins/maths.rtp:114 -#: plugins/examples.rtp:145 -msgid "to radians" -msgstr "" - -#: plugins/facebook.rtp:27 -msgid "publish" -msgstr "" - #: plugins/rodi.rtp:172 msgid "blink" msgstr "" @@ -9523,18 +9893,66 @@ msgstr "" msgid "move" msgstr "" -#: plugins/accelerometer.rtp:48 -msgid "motion x" +#: plugins/weather.rtp:68 +#: plugins/weather.rtp:97 +msgid "Days ahead must be in the range of -1 to 5." msgstr "" -#: plugins/accelerometer.rtp:56 -msgid "motion y" +#: plugins/weather.rtp:122 +msgid "forecast" msgstr "" -#: plugins/accelerometer.rtp:64 -msgid "motion z" +#: plugins/weather.rtp:123 +#: plugins/weather.rtp:137 +#: plugins/weather.rtp:150 +msgid "city" +msgstr "" + +#: plugins/weather.rtp:124 +#: plugins/weather.rtp:138 +#: plugins/weather.rtp:151 +msgid "day" +msgstr "" + +#: plugins/weather.rtp:136 +msgid "high" +msgstr "" + +#: plugins/weather.rtp:149 +msgid "low" msgstr "" +#: js/toolbar.js:70 + +#: js/toolbar.js:130 + +#: js/toolbar.js:194 + +#: js/toolbar.js:249 + +#~msgid "Toggle JavaScript Editor" +#~msgstr "" + +#: js/EnsembleBlocks.js:643 + +#~msgid "The Turrle pitch block returns the current pitch number being played by the specified turtle." +#~msgstr "" + +#: js/PitchActions.js:88 + +#~msgid "The Scalar Step Block must be used inside of a Note Block." +#~msgstr "" + +#: js/PitchActions.js:107 + +#~msgid "The Scalar Step Block must be preceded by a Pitch Block." +#~msgstr "" + +#: js/musickeyboard.js:2840 + +#~msgid "New action blocks generated!" +#~msgstr "" + #: js/toolbar.js:110 #: js/toolbar.js:204 @@ -9875,11 +10293,6 @@ msgstr "" #~msgid "The Time block returns the number of seconds that the program has been running." #~msgstr "" -#: js/help.js:95 - -#~msgid "Take a tour" -#~msgstr "" - #: js/GlobalCard.js:48 #~msgid "More Details" @@ -12778,11 +13191,6 @@ msgstr "" #~msgid "The save-stack button saves a stack onto a custom palette. It appears after a \"long press\" on a stack." #~msgstr "" -#: js/musicutils.js:254 - -#~msgid "Custom" -#~msgstr "" - #: js/basicblocks.js:4785 #~msgid "Rhythm" diff --git a/po/pa.po b/po/pa.po index 2bfd891aa8..f266e09638 100644 --- a/po/pa.po +++ b/po/pa.po @@ -2129,276 +2129,131 @@ #: js/planetInterface.js:104 #: js/planetInterface.js:104 #: js/planetInterface.js:104 -msgid "project undefined" -msgstr "" - -#: js/logo.js:61 -msgid "Not a valid pitch name" -msgstr "" - -#: js/logo.js:507 -#: js/ProgramBlocks.js:258 -#: js/ProgramBlocks.js:427 -msgid "You must select a file." -msgstr "" - -#: js/logo.js:1184 -#: js/turtles.js:118 -#: js/turtle-painter.js:1192 -#: js/turtle-painter.js:1193 -#: js/block.js:1463 -#: js/lilypond.js:757 -#: js/lilypond.js:921 -#: js/lilypond.js:959 -#: js/ActionBlocks.js:1223 -#: js/ProgramBlocks.js:1267 -msgid "start" -msgstr "" - -#: js/logo.js:1696 -msgid "Playback is ready." -msgstr "" - -#: js/blocks.js:1011 -#: js/blocks.js:3427 -#: js/blocks.js:3428 -#: js/blocks.js:3653 -#: js/blocks.js:4012 -#: js/blocks.js:4205 -#: js/blocks.js:5343 -#: js/blocks.js:6474 -#: js/palette.js:527 -#: js/palette.js:536 -#: js/palette.js:545 -#: js/palette.js:554 -#: js/palette.js:1131 -#: js/palette.js:1142 -#: js/palette.js:1153 -#: js/palette.js:1164 -#: js/palette.js:1183 -#: js/rubrics.js:529 -#: js/macros.js:170 -#: js/macros.js:266 -#: js/macros.js:267 -#: js/macros.js:276 -#: js/macros.js:828 -#: js/block.js:1449 -#: js/block.js:4164 -#: js/block.js:4182 -#: js/block.js:4193 -#: js/turtledefs.js:128 -#: js/turtledefs.js:230 -#: js/ActionBlocks.js:254 -#: js/ActionBlocks.js:307 -#: js/ActionBlocks.js:617 -#: js/ActionBlocks.js:716 -#: js/ActionBlocks.js:961 -#: js/ActionBlocks.js:1049 -#: js/ActionBlocks.js:1322 -#: js/ActionBlocks.js:1325 -#: js/ActionBlocks.js:1337 -#: js/ActionBlocks.js:1404 -#: js/MeterBlocks.js:715 -#: js/MeterBlocks.js:768 -#: js/MeterBlocks.js:831 -#: js/MeterBlocks.js:892 -#: js/phrasemaker.js:4412 -#: js/musickeyboard.js:2647 -#: js/rhythmruler.js:1928 -#: js/rhythmruler.js:1935 -#: js/rhythmruler.js:2119 -#: js/rhythmruler.js:2126 -msgid "action" -msgstr "" - -#: js/blocks.js:1205 -#: js/blocks.js:3380 -#: js/blocks.js:3770 -#: js/blocks.js:3801 -#: js/blocks.js:3850 -#: js/blocks.js:3885 -#: js/blocks.js:6497 -#: js/palette.js:509 -#: js/palette.js:638 -#: js/palette.js:1107 -#: js/BoxesBlocks.js:282 -#: js/BoxesBlocks.js:285 -#: js/BoxesBlocks.js:405 -#: js/BoxesBlocks.js:594 -msgid "box" -msgstr "" - -#: js/blocks.js:1680 -msgid "Consider breaking this stack into parts." +#: js/SaveInterface.js:59 +#: js/SaveInterface.js:61 +#: js/SaveInterface.js:93 +msgid "Music Blocks Project" msgstr "" -#: js/blocks.js:2408 -#: js/palette.js:653 -#: js/MediaBlocks.js:602 -msgid "open file" +#: js/SaveInterface.js:63 +msgid "This project was created in Music Blocks" msgstr "" -#: js/blocks.js:2415 -#: js/blocks.js:2423 -#: js/activity.js:1875 -msgid "audio file" +#: js/SaveInterface.js:67 +msgid "Music Blocks is a Free/Libre Software application." msgstr "" -#: js/blocks.js:2536 -#: js/blocks.js:3147 -#: js/block.js:3543 -msgid "on2" +#: js/SaveInterface.js:69 +msgid "The source code can be accessed at" msgstr "" -#: js/blocks.js:2538 -#: js/blocks.js:3149 -#: js/block.js:3545 -msgid "off" +#: js/SaveInterface.js:72 +msgid "For more information, please consult the" msgstr "" -#: js/blocks.js:2543 -#: js/blocks.js:3154 -#: js/palette.js:618 -#: js/block.js:3466 -#: js/BooleanBlocks.js:77 -#: js/BooleanBlocks.js:167 -#: js/BooleanBlocks.js:251 -#: js/BooleanBlocks.js:335 -#: js/BooleanBlocks.js:433 -#: js/BooleanBlocks.js:539 -#: js/BooleanBlocks.js:640 -#: js/BooleanBlocks.js:741 -#: js/BooleanBlocks.js:847 -#: js/BooleanBlocks.js:948 -#: js/BooleanBlocks.js:1033 -#: js/SensorsBlocks.js:910 -msgid "true" +#: js/SaveInterface.js:76 +#: js/turtledefs.js:795 +msgid "Music Blocks Guide" msgstr "" -#: js/blocks.js:2545 -#: js/blocks.js:3156 -#: js/block.js:3466 -#: js/BooleanBlocks.js:79 -#: js/BooleanBlocks.js:169 -#: js/BooleanBlocks.js:253 -#: js/BooleanBlocks.js:337 -#: js/BooleanBlocks.js:435 -#: js/BooleanBlocks.js:541 -#: js/BooleanBlocks.js:642 -#: js/BooleanBlocks.js:743 -#: js/BooleanBlocks.js:849 -#: js/BooleanBlocks.js:950 -#: js/SensorsBlocks.js:912 -msgid "false" +#: js/SaveInterface.js:83 +msgid "Alternatively, open the file in Music Blocks using the Load project button." msgstr "" -#: js/blocks.js:3183 -#: js/palette.js:574 -#: js/MediaBlocks.js:892 -#: js/MediaBlocks.js:963 -msgid "text" +#: js/SaveInterface.js:85 +msgid "Project Code" msgstr "" -#: js/blocks.js:3379 -#: js/palette.js:641 -#: js/palette.js:642 -#: js/BoxesBlocks.js:514 -msgid "store in box" +#: js/SaveInterface.js:87 +msgid "This code stores data about the blocks in a project." msgstr "" -#: js/blocks.js:3384 -#: js/blocks.js:3824 -#: js/blocks.js:3859 -#: js/blocks.js:3894 -#: js/blocks.js:5773 -#: js/blocks.js:5794 -#: js/BoxesBlocks.js:772 -msgid "box1" +#: js/SaveInterface.js:89 +msgid "Show" msgstr "" -#: js/blocks.js:3386 -#: js/blocks.js:3826 -#: js/blocks.js:3861 -#: js/blocks.js:3896 -#: js/blocks.js:5775 -#: js/blocks.js:5796 -#: js/BoxesBlocks.js:663 -msgid "box2" +#: js/SaveInterface.js:91 +msgid "Hide" msgstr "" -#: js/blocks.js:4058 -#: js/palette.js:639 -#: js/palette.js:644 -#: js/palette.js:1043 -#: js/BoxesBlocks.js:591 -msgid "store in" +#: js/SaveInterface.js:131 +#: js/SaveInterface.js:204 +#: js/SaveInterface.js:262 +#: js/SaveInterface.js:389 +#: js/SaveInterface.js:417 +#: js/activity.js:4884 +#: planet/js/ProjectStorage.js:27 +#: planet/js/GlobalPlanet.js:467 +#: planet/js/GlobalPlanet.js:469 +#: planet/js/GlobalPlanet.js:495 +#.TRANS: default project title when saving as Lilypond +msgid "My Project" msgstr "" -#: js/blocks.js:4058 -#: js/EnsembleBlocks.js:391 -#: js/EnsembleBlocks.js:402 -#: js/MediaBlocks.js:746 -#: js/ProgramBlocks.js:390 -#: js/ProgramBlocks.js:495 -#: js/ProgramBlocks.js:658 -#: js/BoxesBlocks.js:595 -#: js/PitchBlocks.js:656 -#: js/PitchBlocks.js:932 -#: js/PitchBlocks.js:1827 -#: js/ToneBlocks.js:1025 -#: js/DictBlocks.js:215 -#: js/DictBlocks.js:289 -msgid "name" +#: js/SaveInterface.js:197 +#: planet/js/SaveInterface.js:58 +msgid "No description provided" msgstr "" -#: js/blocks.js:4058 -#: js/RhythmBlocks.js:1130 -#: js/BoxesBlocks.js:75 -#: js/BoxesBlocks.js:595 -#: js/HeapBlocks.js:544 -#: js/DictBlocks.js:289 -#: js/DictBlocks.js:430 -msgid "value" +#: js/SaveInterface.js:332 +msgid "Your recording is in progress." msgstr "" -#: js/blocks.js:4907 -msgid "There is no block selected." +#: js/SaveInterface.js:401 +#.TRANS: File name prompt for save as Lilypond +msgid "File name" msgstr "" -#: js/blocks.js:5002 -#: js/MediaBlocks.js:888 -msgid "show" +#: js/SaveInterface.js:403 +#: planet/js/StringHelper.js:39 +#.TRANS: Project title prompt for save as Lilypond +msgid "Project title" msgstr "" -#: js/blocks.js:5005 -#: js/MediaBlocks.js:803 -#.TRANS: Avatar is the image used to determine the appearance of the mouse. -msgid "avatar" +#: js/SaveInterface.js:405 +#.TRANS: Project title prompt for save as Lilypond +msgid "Project author" msgstr "" -#: js/blocks.js:5008 -#: js/ToneBlocks.js:1010 -#: js/sampler.js:693 -#.TRANS: The sound sample that the user uploads. -msgid "sample" +#: js/SaveInterface.js:407 +#.TRANS: MIDI prompt for save as Lilypond +msgid "Include MIDI output?" msgstr "" -#: js/turtles.js:874 -msgid "Grid" +#: js/SaveInterface.js:409 +#.TRANS: Guitar prompt for save as Lilypond +msgid "Include guitar tablature output?" msgstr "" -#: js/turtles.js:891 -#: js/turtledefs.js:626 -msgid "Clean" +#: js/SaveInterface.js:411 +#.TRANS: Lilypond is a scripting language for generating sheet music +msgid "Save as Lilypond" msgstr "" -#: js/turtles.js:912 -#: js/turtledefs.js:632 -msgid "Collapse" +#: js/SaveInterface.js:426 +#: js/blocks/EnsembleBlocks.js:75 +#: js/blocks/EnsembleBlocks.js:154 +#: js/blocks/EnsembleBlocks.js:216 +#: js/blocks/EnsembleBlocks.js:302 +#: js/blocks/EnsembleBlocks.js:348 +#: js/blocks/EnsembleBlocks.js:389 +#: js/blocks/EnsembleBlocks.js:441 +#: js/blocks/EnsembleBlocks.js:490 +#: js/blocks/EnsembleBlocks.js:536 +#: js/blocks/EnsembleBlocks.js:583 +#: js/blocks/EnsembleBlocks.js:637 +#: js/blocks/EnsembleBlocks.js:753 +#: js/blocks/EnsembleBlocks.js:840 +#: js/blocks/EnsembleBlocks.js:899 +#: js/blocks/EnsembleBlocks.js:942 +#: js/blocks/EnsembleBlocks.js:1212 +#: js/blocks/EnsembleBlocks.js:1280 +#.TRANS: default project author when saving as Lilypond +msgid "Mr. Mouse" msgstr "" -#: js/turtles.js:940 -msgid "Expand" +#: js/SaveInterface.js:573 +msgid "The Lilypond code is copied to clipboard. You can paste it here: " msgstr "" #: js/languagebox.js:198 @@ -2409,6933 +2264,7487 @@ msgstr "" msgid "Music Blocks is already set to this language." msgstr "" -#: js/piemenus.js:200 -#: js/musicutils.js:808 -#: js/musicutils.js:824 -#: js/phrasemaker.js:1672 -#: js/musickeyboard.js:2041 -#: js/sampler.js:544 -#.TRANS: double sharp is a music term related to pitch -msgid "double sharp" +#: js/planetInterface.js:131 +msgid "project undefined" msgstr "" -#: js/piemenus.js:201 -#: js/PitchBlocks.js:1510 -#: js/PitchActions.js:580 -#: js/musicutils.js:806 -#: js/musicutils.js:825 -#: js/phrasemaker.js:1673 -#: js/musickeyboard.js:2042 -#: js/sampler.js:545 -#.TRANS: sharp is a half-step up in pitch -#.TRANS: sharp is a music term related to pitch -msgid "sharp" +#: js/rubrics.js:523 +#: js/turtledefs.js:119 +#: js/turtledefs.js:221 +#: js/blocks/RhythmBlockPaletteBlocks.js:52 +#: js/blocks/RhythmBlockPaletteBlocks.js:234 +#: js/blocks/ProgramBlocks.js:745 +#: js/widgets/rhythmruler.js:2057 +#: js/widgets/rhythmruler.js:2064 +#: js/widgets/rhythmruler.js:2133 +#: js/widgets/rhythmruler.js:2140 +#: js/widgets/rhythmruler.js:2219 +#.TRANS: an arrangement of notes based on duration +msgid "rhythm" msgstr "" -#: js/piemenus.js:202 -#: js/musicutils.js:804 -#: js/musicutils.js:826 -#: js/phrasemaker.js:1674 -#: js/musickeyboard.js:2043 -#: js/sampler.js:546 -#.TRANS: natural is a music term related to pitch -msgid "natural" +#: js/rubrics.js:524 +#: js/turtledefs.js:121 +#: js/turtledefs.js:223 +#: js/block-verbose.js:2622 +#: js/block.js:2550 +#: js/blocks/IntervalsBlocks.js:63 +#: js/blocks/SensorsBlocks.js:178 +#: js/blocks/PitchBlocks.js:1839 +#: js/blocks/PitchBlocks.js:1853 +#: js/widgets/musickeyboard.js:1935 +#: js/widgets/phrasemaker.js:1036 +#.TRANS: pitch number +#.TRANS: pitch number +#.TRANS: we specify pitch in terms of a name and an octave. The name can be CDEFGAB or Do Re Mi Fa Sol La Ti. Octave is a number between 1 and 8. +msgid "pitch" msgstr "" -#: js/piemenus.js:203 -#: js/PitchBlocks.js:1469 -#: js/PitchActions.js:583 -#: js/musicutils.js:802 -#: js/musicutils.js:827 -#: js/phrasemaker.js:1675 -#: js/musickeyboard.js:2044 -#: js/sampler.js:547 -#.TRANS: flat is a half-step down in pitch -#.TRANS: flat is a music term related to pitch -msgid "flat" +#: js/rubrics.js:525 +#: js/turtledefs.js:123 +#: js/turtledefs.js:225 +msgid "tone" msgstr "" -#: js/piemenus.js:204 -#: js/musicutils.js:800 -#: js/musicutils.js:828 -#: js/phrasemaker.js:1676 -#: js/musickeyboard.js:2045 -#: js/sampler.js:548 -#.TRANS: double flat is a music term related to pitch -msgid "double flat" +#: js/rubrics.js:526 +#: js/lilypond.js:605 +#: js/lilypond.js:904 +#: js/lilypond.js:910 +#: js/lilypond.js:948 +msgid "mouse" msgstr "" -#: js/piemenus.js:2861 -#: js/PitchBlocks.js:1357 -#: js/musicutils.js:627 -#.TRANS: unison means the note is the same as the current note -#.TRANS: unison is a music term related to intervals -msgid "unison" +#: js/rubrics.js:527 +#: js/turtledefs.js:132 +#: js/turtledefs.js:234 +#: js/widgets/phrasemaker.js:1040 +msgid "pen" msgstr "" -#: js/piemenus.js:3015 -#: js/piemenus.js:3088 -#: js/musicutils.js:635 -#: js/musicutils.js:810 -#: js/musicutils.js:912 -#.TRANS: major is a music term related to intervals and mode -msgid "major" +#: js/rubrics.js:528 +#: js/turtledefs.js:133 +#: js/turtledefs.js:235 +#: js/blocks/NumberBlocks.js:981 +#: js/blocks/PitchBlocks.js:1717 +#: js/blocks/PitchBlocks.js:1758 +msgid "number" msgstr "" -#: js/piemenus.js:3015 -#: js/piemenus.js:3088 -#: js/musicutils.js:653 -#.TRANS: modal scale for music -msgid "ionian" +#: js/rubrics.js:529 +#: js/turtledefs.js:127 +#: js/turtledefs.js:229 +msgid "flow" msgstr "" -#: js/piemenus.js:3017 -#: js/piemenus.js:3092 -#: js/musicutils.js:633 -#: js/musicutils.js:811 -#: js/musicutils.js:909 -#.TRANS: minor is a music term related to intervals and mode -msgid "minor" +#: js/rubrics.js:530 +#: js/turtledefs.js:128 +#: js/turtledefs.js:230 +#: js/block-verbose.js:1609 +#: js/block-verbose.js:4559 +#: js/block-verbose.js:4577 +#: js/block-verbose.js:4588 +#: js/block.js:1573 +#: js/block.js:4483 +#: js/block.js:4501 +#: js/block.js:4512 +#: js/blocks.js:1018 +#: js/blocks.js:3491 +#: js/blocks.js:3492 +#: js/blocks.js:3717 +#: js/blocks.js:4076 +#: js/blocks.js:4269 +#: js/blocks.js:5432 +#: js/blocks.js:6563 +#: js/macros.js:170 +#: js/macros.js:266 +#: js/macros.js:267 +#: js/macros.js:276 +#: js/macros.js:828 +#: js/palette.js:527 +#: js/palette.js:536 +#: js/palette.js:545 +#: js/palette.js:554 +#: js/palette.js:1129 +#: js/palette.js:1140 +#: js/palette.js:1151 +#: js/palette.js:1162 +#: js/palette.js:1181 +#: js/blocks/ActionBlocks.js:254 +#: js/blocks/ActionBlocks.js:307 +#: js/blocks/ActionBlocks.js:617 +#: js/blocks/ActionBlocks.js:716 +#: js/blocks/ActionBlocks.js:961 +#: js/blocks/ActionBlocks.js:1049 +#: js/blocks/ActionBlocks.js:1322 +#: js/blocks/ActionBlocks.js:1325 +#: js/blocks/ActionBlocks.js:1337 +#: js/blocks/ActionBlocks.js:1404 +#: js/blocks/MeterBlocks.js:715 +#: js/blocks/MeterBlocks.js:768 +#: js/blocks/MeterBlocks.js:831 +#: js/blocks/MeterBlocks.js:892 +#: js/widgets/musickeyboard.js:2986 +#: js/widgets/phrasemaker.js:4913 +#: js/widgets/rhythmruler.js:2319 +#: js/widgets/rhythmruler.js:2326 +#: js/widgets/rhythmruler.js:2511 +#: js/widgets/rhythmruler.js:2518 +msgid "action" msgstr "" -#: js/piemenus.js:3017 -#: js/piemenus.js:3092 -#: js/musicutils.js:663 -#.TRANS: modal scale for music -msgid "aeolian" +#: js/rubrics.js:531 +#: js/turtledefs.js:136 +#: js/turtledefs.js:238 +msgid "sensors" msgstr "" -#: js/piemenus.js:3407 -msgid "Duplicate" +#: js/rubrics.js:532 +#: js/turtledefs.js:135 +#: js/turtledefs.js:237 +#: js/blocks/MediaBlocks.js:930 +msgid "media" msgstr "" -#: js/piemenus.js:3408 -#: js/turtledefs.js:534 -msgid "Extract" +#: js/rubrics.js:533 +msgid "mice" msgstr "" -#: js/piemenus.js:3409 -msgid "Move to trash" +#: js/toolbar.js:48 +#: js/toolbar.js:109 +msgid "About Music Blocks" msgstr "" -#: js/piemenus.js:3410 -#: js/timbre.js:968 -#: js/StringHelper.js:69 -msgid "Close" +#: js/toolbar.js:49 +#: js/toolbar.js:110 +#: js/toolbar.js:175 +#: js/toolbar.js:231 +#: js/turtledefs.js:445 +#: js/turtledefs.js:482 +#: js/activity.js:2660 +#: js/activity.js:2671 +#: js/activity.js:2902 +#: js/widgets/modewidget.js:77 +#: js/widgets/meterwidget.js:185 +#: js/widgets/pitchdrummatrix.js:147 +#: js/widgets/pitchdrummatrix.js:687 +#: js/widgets/pitchdrummatrix.js:689 +#: js/widgets/pitchdrummatrix.js:741 +#: js/widgets/pitchdrummatrix.js:743 +#: js/widgets/pitchdrummatrix.js:758 +#: js/widgets/pitchdrummatrix.js:760 +#: js/widgets/pitchdrummatrix.js:789 +#: js/widgets/pitchdrummatrix.js:791 +#: js/widgets/pitchstaircase.js:121 +#: js/widgets/temperament.js:610 +#: js/widgets/temperament.js:613 +#: js/widgets/temperament.js:673 +#: js/widgets/temperament.js:675 +#: js/widgets/temperament.js:2017 +#: js/widgets/temperament.js:2019 +#: js/widgets/tempo.js:84 +#: js/widgets/tempo.js:86 +#: js/widgets/timbre.js:432 +#: js/widgets/timbre.js:434 +#: js/widgets/timbre.js:465 +#: js/widgets/timbre.js:467 +#: js/widgets/timbre.js:746 +#: js/widgets/aiwidget.js:647 +#: js/widgets/aiwidget.js:654 +#: js/widgets/aiwidget.js:656 +#: js/widgets/arpeggio.js:90 +#: js/widgets/arpeggio.js:547 +#: js/widgets/arpeggio.js:549 +#: js/widgets/arpeggio.js:644 +#: js/widgets/arpeggio.js:646 +#: js/widgets/musickeyboard.js:676 +#: js/widgets/musickeyboard.js:872 +#: js/widgets/musickeyboard.js:874 +#: js/widgets/musickeyboard.js:953 +#: js/widgets/musickeyboard.js:955 +#: js/widgets/phrasemaker.js:513 +#: js/widgets/phrasemaker.js:523 +#: js/widgets/phrasemaker.js:525 +#: js/widgets/phrasemaker.js:4304 +#: js/widgets/phrasemaker.js:4528 +#: js/widgets/phrasemaker.js:4533 +#: js/widgets/phrasemaker.js:4535 +#: js/widgets/phrasemaker.js:4650 +#: js/widgets/rhythmruler.js:637 +#: js/widgets/rhythmruler.js:639 +#: js/widgets/rhythmruler.js:653 +#: js/widgets/rhythmruler.js:655 +#: js/widgets/sampler.js:162 +#: js/widgets/sampler.js:164 +#: js/widgets/sampler.js:363 +msgid "Play" msgstr "" -#: js/piemenus.js:3416 -msgid "Save stack" +#: js/toolbar.js:50 +#: js/toolbar.js:111 +#: js/toolbar.js:176 +#: js/toolbar.js:232 +#: js/turtledefs.js:451 +#: js/turtledefs.js:488 +#: js/activity.js:2679 +#: js/widgets/modewidget.js:99 +#: js/widgets/modewidget.js:101 +#: js/widgets/meterwidget.js:206 +#: js/widgets/meterwidget.js:208 +#: js/widgets/pitchdrummatrix.js:674 +#: js/widgets/pitchdrummatrix.js:676 +#: js/widgets/temperament.js:2002 +#: js/widgets/temperament.js:2004 +#: js/widgets/arpeggio.js:534 +#: js/widgets/arpeggio.js:536 +#: js/widgets/phrasemaker.js:534 +#: js/widgets/phrasemaker.js:536 +msgid "Stop" msgstr "" -#: js/piemenus.js:3420 -#: js/toolbar.js:60 -#: js/toolbar.js:120 -#: js/toolbar.js:185 -#: js/toolbar.js:240 -#: js/turtledefs.js:752 -msgid "Help" +#: js/toolbar.js:51 +#: js/toolbar.js:112 +#: js/toolbar.js:177 +#: js/toolbar.js:233 +#: js/turtledefs.js:498 +msgid "Record" msgstr "" -#: js/piemenus.js:3762 -msgid "You have chosen key " +#: js/toolbar.js:52 +#: js/toolbar.js:53 +msgid "Full screen" msgstr "" -#: js/piemenus.js:3766 -msgid " for your pitch preview." +#: js/toolbar.js:54 +#: js/toolbar.js:115 +#: js/toolbar.js:180 +#: js/toolbar.js:236 +#: js/turtledefs.js:504 +msgid "Toggle Fullscreen" +msgstr "" + +#: js/toolbar.js:55 +#: js/toolbar.js:116 +#: js/toolbar.js:181 +#: js/toolbar.js:237 +#: js/turtledefs.js:510 +#: planet/js/StringHelper.js:33 +msgid "New project" +msgstr "" + +#: js/toolbar.js:56 +#: js/toolbar.js:117 +#: js/toolbar.js:182 +#: js/toolbar.js:238 +#: js/turtledefs.js:516 +msgid "Load project from file" +msgstr "" + +#: js/toolbar.js:57 +#: js/toolbar.js:118 +#: js/toolbar.js:119 +#: js/toolbar.js:183 +#: js/toolbar.js:239 +#: js/turtledefs.js:541 +#: js/turtledefs.js:550 +#: js/turtledefs.js:571 +msgid "Save project" +msgstr "" + +#: js/toolbar.js:58 +#: js/toolbar.js:77 +#: js/toolbar.js:79 +#: js/toolbar.js:138 +#: js/toolbar.js:147 +#: js/toolbar.js:149 +#: js/toolbar.js:184 +#: js/toolbar.js:202 +#: js/toolbar.js:204 +#: js/toolbar.js:240 +#: js/toolbar.js:258 +#: js/toolbar.js:260 +msgid "Save project as HTML" +msgstr "" + +#: js/toolbar.js:59 +#: js/toolbar.js:120 +#: js/toolbar.js:185 +#: js/toolbar.js:241 +msgid "Find and share projects" +msgstr "" + +#: js/toolbar.js:60 +#: js/toolbar.js:121 +#: js/toolbar.js:186 +#: js/toolbar.js:242 +msgid "Offline. Sharing is unavailable" +msgstr "" + +#: js/toolbar.js:61 +#: js/toolbar.js:122 +#: js/toolbar.js:187 +#: js/toolbar.js:243 +msgid "Auxiliary menu" +msgstr "" + +#: js/toolbar.js:62 +#: js/toolbar.js:123 +#: js/toolbar.js:188 +#: js/toolbar.js:244 +#: js/turtledefs.js:752 +#: js/piemenus.js:3423 +msgid "Help" +msgstr "" + +#: js/toolbar.js:63 +#: js/toolbar.js:124 +#: js/toolbar.js:189 +#: js/toolbar.js:245 +msgid "Run slowly" +msgstr "" + +#: js/toolbar.js:64 +#: js/toolbar.js:125 +#: js/toolbar.js:190 +#: js/toolbar.js:246 +#: js/turtledefs.js:682 +msgid "Run step by step" +msgstr "" + +#: js/toolbar.js:65 +#: js/toolbar.js:126 +#: js/toolbar.js:191 +#: js/toolbar.js:247 +#: js/turtledefs.js:689 +msgid "Display statistics" +msgstr "" + +#: js/toolbar.js:66 +#: js/toolbar.js:127 +#: js/toolbar.js:192 +#: js/toolbar.js:248 +msgid "Load plugin" +msgstr "" + +#: js/toolbar.js:67 +#: js/toolbar.js:128 +#: js/toolbar.js:193 +#: js/toolbar.js:249 +#: js/turtledefs.js:696 +msgid "Delete plugin" +msgstr "" + +#: js/toolbar.js:68 +#: js/toolbar.js:129 +#: js/toolbar.js:194 +#: js/toolbar.js:250 +msgid "Enable horizontal scrolling" +msgstr "" + +#: js/toolbar.js:69 +#: js/toolbar.js:130 +#: js/toolbar.js:195 +#: js/toolbar.js:251 +msgid "Disable horizontal scrolling" +msgstr "" + +#: js/toolbar.js:70 +#: js/toolbar.js:131 +#: js/toolbar.js:196 +#: js/toolbar.js:252 +#: planet/js/LocalCard.js:54 +#: planet/js/StringHelper.js:71 +msgid "Merge with current project" +msgstr "" + +#: js/toolbar.js:71 +#: js/toolbar.js:132 +msgid "Set Pitch Preview" +msgstr "" + +#: js/toolbar.js:72 +#: js/toolbar.js:133 +#: js/toolbar.js:197 +#: js/toolbar.js:253 +msgid "JavaScript Editor" +msgstr "" + +#: js/toolbar.js:73 +#: js/toolbar.js:134 +#: js/toolbar.js:198 +#: js/toolbar.js:254 +#: js/turtledefs.js:724 +msgid "Restore" +msgstr "" + +#: js/toolbar.js:74 +#: js/toolbar.js:135 +#: js/toolbar.js:199 +#: js/toolbar.js:255 +msgid "Switch to beginner mode" +msgstr "" + +#: js/toolbar.js:75 +#: js/toolbar.js:136 +#: js/toolbar.js:200 +#: js/toolbar.js:256 +msgid "Switch to advanced mode" +msgstr "" + +#: js/toolbar.js:76 +#: js/toolbar.js:137 +#: js/toolbar.js:146 +#: js/toolbar.js:201 +#: js/toolbar.js:257 +#: js/turtledefs.js:738 +msgid "Select language" +msgstr "" + +#: js/toolbar.js:78 +#: js/toolbar.js:81 +#: js/toolbar.js:140 +#: js/turtledefs.js:579 +msgid "Save mouse artwork as PNG" +msgstr "" + +#: js/toolbar.js:80 +#: js/toolbar.js:139 +#: js/turtledefs.js:575 +msgid "Save mouse artwork as SVG" +msgstr "" + +#: js/toolbar.js:82 +#: js/toolbar.js:141 +#: js/turtledefs.js:583 +msgid "Save music as WAV" +msgstr "" + +#: js/toolbar.js:83 +#: js/toolbar.js:142 +#: js/turtledefs.js:587 +msgid "Save sheet music as ABC" +msgstr "" + +#: js/toolbar.js:84 +#: js/toolbar.js:143 +#: js/turtledefs.js:591 +msgid "Save sheet music as Lilypond" +msgstr "" + +#: js/toolbar.js:85 +msgid "Save sheet music as MusicXML" +msgstr "" + +#: js/toolbar.js:86 +#: js/toolbar.js:144 +#: js/toolbar.js:152 +#: js/toolbar.js:207 +#: js/toolbar.js:263 +#: js/turtledefs.js:562 +#: js/turtledefs.js:595 +msgid "Save block artwork as SVG" +msgstr "" + +#: js/toolbar.js:87 +#: js/toolbar.js:145 +#: js/toolbar.js:153 +#: js/toolbar.js:208 +#: js/toolbar.js:264 +#: js/turtles.js:911 +msgid "Confirm" +msgstr "" + +#: js/toolbar.js:88 +#: js/toolbar.js:154 +#: js/toolbar.js:209 +#: js/toolbar.js:265 +msgid "English (United States)" +msgstr "" + +#: js/toolbar.js:89 +#: js/toolbar.js:155 +#: js/toolbar.js:210 +#: js/toolbar.js:266 +msgid "English (United Kingdom)" +msgstr "" + +#: js/toolbar.js:90 +#: js/toolbar.js:156 +#: js/toolbar.js:211 +#: js/toolbar.js:267 +msgid "日本語" +msgstr "" + +#: js/toolbar.js:91 +msgid "한국어" +msgstr "" + +#: js/toolbar.js:92 +#: js/toolbar.js:158 +#: js/toolbar.js:213 +#: js/toolbar.js:269 +msgid "español" +msgstr "" + +#: js/toolbar.js:93 +#: js/toolbar.js:159 +#: js/toolbar.js:214 +#: js/toolbar.js:270 +msgid "português" +msgstr "" + +#: js/toolbar.js:94 +#: js/toolbar.js:160 +#: js/toolbar.js:215 +#: js/toolbar.js:271 +msgid "にほんご" +msgstr "" + +#: js/toolbar.js:95 +#: js/toolbar.js:161 +#: js/toolbar.js:216 +#: js/toolbar.js:272 +msgid "中文" +msgstr "" + +#: js/toolbar.js:96 +#: js/toolbar.js:162 +#: js/toolbar.js:217 +#: js/toolbar.js:273 +msgid "ภาษาไทย" +msgstr "" + +#: js/toolbar.js:97 +#: js/toolbar.js:163 +#: js/toolbar.js:218 +#: js/toolbar.js:274 +msgid "aymara" +msgstr "" + +#: js/toolbar.js:98 +#: js/toolbar.js:164 +#: js/toolbar.js:219 +#: js/toolbar.js:275 +msgid "quechua" +msgstr "" + +#: js/toolbar.js:99 +#: js/toolbar.js:165 +#: js/toolbar.js:220 +#: js/toolbar.js:276 +msgid "guarani" +msgstr "" + +#: js/toolbar.js:100 +#: js/toolbar.js:166 +#: js/toolbar.js:221 +#: js/toolbar.js:277 +msgid "हिंदी" +msgstr "" + +#: js/toolbar.js:101 +#: js/toolbar.js:168 +#: js/toolbar.js:222 +#: js/toolbar.js:279 +msgid "igbo" +msgstr "" + +#: js/toolbar.js:102 +#: js/toolbar.js:169 +#: js/toolbar.js:223 +#: js/toolbar.js:280 +msgid "عربى" +msgstr "" + +#: js/toolbar.js:103 +#: js/toolbar.js:167 +#: js/toolbar.js:224 +#: js/toolbar.js:278 +msgid "తెలుగు" +msgstr "" + +#: js/toolbar.js:104 +#: js/toolbar.js:170 +#: js/toolbar.js:225 +#: js/toolbar.js:281 +msgid "עִברִית" +msgstr "" + +#: js/toolbar.js:113 +#: js/toolbar.js:114 +#: js/toolbar.js:178 +#: js/toolbar.js:179 +#: js/toolbar.js:234 +#: js/toolbar.js:235 +msgid "Full Screen" +msgstr "" + +#: js/toolbar.js:148 +#: js/toolbar.js:151 +#: js/toolbar.js:203 +#: js/toolbar.js:206 +#: js/toolbar.js:259 +#: js/toolbar.js:262 +#: js/turtledefs.js:558 +msgid "Save turtle artwork as PNG" +msgstr "" + +#: js/toolbar.js:150 +#: js/toolbar.js:205 +#: js/toolbar.js:261 +#: js/turtledefs.js:554 +msgid "Save turtle artwork as SVG" +msgstr "" + +#: js/toolbar.js:157 +#: js/toolbar.js:212 +#: js/toolbar.js:268 +msgid "한국인" +msgstr "" + +#: js/toolbar.js:174 +#: js/toolbar.js:230 +msgid "About Turtle Blocks" +msgstr "" + +#: js/toolbar.js:446 +#: js/toolbar.js:457 +#: js/toolbar.js:497 +msgid "Turtle Wrap Off" +msgstr "" + +#: js/toolbar.js:466 +#: js/toolbar.js:506 +msgid "Turtle Wrap On" +msgstr "" + +#: js/turtle-painter.js:1192 +#: js/turtle-painter.js:1193 +#: js/turtles.js:118 +#: js/block-verbose.js:1623 +#: js/block.js:1587 +#: js/lilypond.js:749 +#: js/lilypond.js:913 +#: js/lilypond.js:951 +#: js/logo.js:1184 +#: js/blocks/ActionBlocks.js:1223 +#: js/blocks/ProgramBlocks.js:1267 +msgid "start" +msgstr "" + +#: js/turtledefs.js:40 +#.TRANS: put the URL to the guide here, e.g., https://github.com/sugarlabs/turtleblocksjs/tree/master/guide/README.md +msgid "guide url" +msgstr "" + +#: js/turtledefs.js:85 +#: js/turtledefs.js:437 +msgid "Turtle Blocks is a Logo-inspired turtle that draws colorful pictures with snap-together visual-programming blocks." +msgstr "" + +#: js/turtledefs.js:118 +#: js/turtledefs.js:220 +msgid "search" +msgstr "" + +#: js/turtledefs.js:120 +#: js/turtledefs.js:222 +#: js/blocks/MeterBlocks.js:1343 +#: js/blocks/WidgetBlocks.js:522 +#.TRANS: musical meter (time signature), e.g., 4:4 +msgid "meter" +msgstr "" + +#: js/turtledefs.js:122 +#: js/turtledefs.js:224 +msgid "intervals" +msgstr "" + +#: js/turtledefs.js:124 +#: js/turtledefs.js:226 +msgid "ornament" +msgstr "" + +#: js/turtledefs.js:125 +#: js/turtledefs.js:227 +#: js/blocks/VolumeBlocks.js:362 +#: js/blocks/VolumeBlocks.js:502 +#: js/blocks/VolumeBlocks.js:545 +msgid "volume" +msgstr "" + +#: js/turtledefs.js:126 +#: js/turtledefs.js:228 +#: js/block-verbose.js:1700 +#: js/block-verbose.js:2626 +#: js/block.js:1664 +#: js/block.js:2554 +#: js/lilypond.js:732 +#: js/lilypond.js:897 +#: js/lilypond.js:941 +#: js/palette.js:577 +#: js/blocks/RhythmBlocks.js:766 +#: js/blocks/DrumBlocks.js:477 +#: js/blocks/VolumeBlocks.js:502 +#: js/widgets/phrasemaker.js:1038 +msgid "drum" +msgstr "" + +#: js/turtledefs.js:129 +#: js/turtledefs.js:231 +msgid "boxes" +msgstr "" + +#: js/turtledefs.js:130 +#: js/turtledefs.js:232 +msgid "widgets" +msgstr "" + +#: js/turtledefs.js:131 +#: js/turtledefs.js:233 +#: js/widgets/phrasemaker.js:1039 +msgid "graphics" +msgstr "" + +#: js/turtledefs.js:134 +#: js/turtledefs.js:236 +msgid "boolean" +msgstr "" + +#: js/turtledefs.js:137 +#: js/turtledefs.js:239 +#: js/blocks/HeapBlocks.js:59 +#: js/widgets/status.js:147 +msgid "heap" +msgstr "" + +#: js/turtledefs.js:138 +#: js/turtledefs.js:240 +#: js/blocks/DictBlocks.js:142 +#: js/blocks/ProgramBlocks.js:495 +msgid "dictionary" +msgstr "" + +#: js/turtledefs.js:139 +#: js/turtledefs.js:241 +msgid "ensemble" +msgstr "" + +#: js/turtledefs.js:140 +#: js/turtledefs.js:242 +msgid "extras" +msgstr "" + +#: js/turtledefs.js:142 +#: js/turtledefs.js:244 +#.TRANS: program as in computer program +#.TRANS: program as in computer program +msgid "program" +msgstr "" + +#: js/turtledefs.js:143 +#: js/turtledefs.js:245 +msgid "my blocks" +msgstr "" + +#: js/turtledefs.js:185 +#: js/turtledefs.js:281 +msgid "artwork" +msgstr "" + +#: js/turtledefs.js:185 +#: js/turtledefs.js:281 +msgid "logic" +msgstr "" + +#: js/turtledefs.js:185 +#: js/turtledefs.js:281 +msgid "music" +msgstr "" + +#: js/turtledefs.js:187 +#: js/turtledefs.js:463 +msgid "Music Blocks is a collection of tools for exploring fundamental musical concepts in a fun way." +msgstr "" + +#: js/turtledefs.js:436 +msgid "Welcome to Turtle Blocks" +msgstr "" + +#: js/turtledefs.js:438 +#: js/turtledefs.js:465 +#: js/turtledefs.js:774 +#: js/turtledefs.js:805 +msgid "The current version is" +msgstr "" + +#: js/turtledefs.js:446 +#: js/turtledefs.js:483 +msgid "Click the run button to run the project in fast mode." +msgstr "" + +#: js/turtledefs.js:452 +msgid "Stop the turtle." +msgstr "" + +#: js/turtledefs.js:454 +#: js/turtledefs.js:491 +msgid "You can also type Alt-S to stop." +msgstr "" + +#: js/turtledefs.js:462 +#: js/widgets/help.js:333 +msgid "Welcome to Music Blocks" +msgstr "" + +#: js/turtledefs.js:472 +#: js/widgets/help.js:334 +msgid "Meet Mr. Mouse!" +msgstr "" + +#: js/turtledefs.js:473 +msgid "Mr Mouse is our Music Blocks conductor." +msgstr "" + +#: js/turtledefs.js:475 +msgid "Mr Mouse encourages you to explore Music Blocks." +msgstr "" + +#: js/turtledefs.js:477 +msgid "Let us start our tour!" +msgstr "" + +#: js/turtledefs.js:489 +msgid "Stop the music (and the mice)." +msgstr "" + +#: js/turtledefs.js:499 +msgid "Record your project as video." +msgstr "" + +#: js/turtledefs.js:505 +msgid "Toggle Fullscreen mode." +msgstr "" + +#: js/turtledefs.js:511 +msgid "Initialize a new project." +msgstr "" + +#: js/turtledefs.js:517 +msgid "You can also load projects from the file system." +msgstr "" + +#: js/turtledefs.js:522 +#: planet/js/StringHelper.js:46 +msgid "Delete" +msgstr "" + +#: js/turtledefs.js:523 +msgid "To delete a block, just right-click on it, then you will be able to see the delete option" +msgstr "" + +#: js/turtledefs.js:528 +#: js/activity.js:2649 +#: planet/js/LocalCard.js:31 +msgid "Copy" +msgstr "" + +#: js/turtledefs.js:529 +msgid "To copy a block, just right-click on it, then you will be able to see the copy option" +msgstr "" + +#: js/turtledefs.js:534 +#: js/piemenus.js:3411 +msgid "Extract" +msgstr "" + +#: js/turtledefs.js:535 +msgid "To extract a block, just right-click on it, then you will be able to see the extract option" +msgstr "" + +#: js/turtledefs.js:542 +#: js/turtledefs.js:552 +#: js/turtledefs.js:573 +msgid "Save your project to a file." +msgstr "" + +#: js/turtledefs.js:549 +#: js/turtledefs.js:570 +msgid "save" +msgstr "" + +#: js/turtledefs.js:556 +#: js/turtledefs.js:577 +msgid "Save graphics from your project to as SVG." +msgstr "" + +#: js/turtledefs.js:560 +#: js/turtledefs.js:581 +msgid "Save graphics from your project as PNG." +msgstr "" + +#: js/turtledefs.js:564 +#: js/turtledefs.js:597 +msgid "Save block artwork as an SVG file." +msgstr "" + +#: js/turtledefs.js:585 +msgid "Save audio from your project as WAV." +msgstr "" + +#: js/turtledefs.js:589 +msgid "Save your project to as an ABC file." +msgstr "" + +#: js/turtledefs.js:593 +msgid "Save your project to as a Lilypond file." +msgstr "" + +#: js/turtledefs.js:604 +msgid "Load samples from server" +msgstr "" + +#: js/turtledefs.js:605 +msgid "This button opens a viewer for loading example projects." +msgstr "" + +#: js/turtledefs.js:611 +msgid "Palette buttons" +msgstr "" + +#: js/turtledefs.js:612 +msgid "This toolbar contains the palette buttons including Rhythm Pitch Tone Action and more." +msgstr "" + +#: js/turtledefs.js:614 +msgid "Click to show the palettes of blocks and drag blocks from the palettes onto the canvas to use them." +msgstr "" + +#: js/turtledefs.js:620 +msgid "Cartesian/Polar" +msgstr "" + +#: js/turtledefs.js:621 +msgid "Show or hide a coordinate grid." +msgstr "" + +#: js/turtledefs.js:626 +#: js/turtles.js:902 +msgid "Clean" +msgstr "" + +#: js/turtledefs.js:627 +msgid "Clear the screen and return the mice to their initial positions." +msgstr "" + +#: js/turtledefs.js:632 +#: js/turtles.js:955 +msgid "Collapse" +msgstr "" + +#: js/turtledefs.js:633 +msgid "Collapse the graphics window." msgstr "" -#: js/palette.js:571 -msgid "grid" +#: js/turtledefs.js:638 +#: js/activity.js:5684 +msgid "Home" msgstr "" -#: js/palette.js:577 -#: js/block.js:1540 -#: js/block.js:2343 -#: js/turtledefs.js:126 -#: js/turtledefs.js:228 -#: js/lilypond.js:740 -#: js/lilypond.js:905 -#: js/lilypond.js:949 -#: js/DrumBlocks.js:486 -#: js/RhythmBlocks.js:766 -#: js/VolumeBlocks.js:502 -#: js/phrasemaker.js:823 -msgid "drum" +#: js/turtledefs.js:639 +msgid "Return all blocks to the center of the screen." msgstr "" -#: js/palette.js:580 -msgid "effect" +#: js/turtledefs.js:644 +msgid "Show/hide blocks" msgstr "" -#: js/palette.js:586 -msgid "sargam" +#: js/turtledefs.js:645 +msgid "Hide or show the blocks and the palettes." msgstr "" -#: js/palette.js:589 -#: js/activity.js:1833 -#: js/RhythmBlocks.js:923 -#: js/PitchBlocks.js:442 -#: js/PitchBlocks.js:1748 -#.TRANS: a numeric mapping of the notes in an octave based on the musical mode -msgid "scale degree" +#: js/turtledefs.js:650 +msgid "Expand/collapse collapsable blocks" msgstr "" -#: js/palette.js:592 -#: js/activity.js:1860 -msgid "mode name" +#: js/turtledefs.js:651 +msgid "Expand or collapse start and action stacks." msgstr "" -#: js/palette.js:595 -#: js/activity.js:1839 -msgid "invert mode" +#: js/turtledefs.js:658 +#: js/activity.js:5704 +msgid "Decrease block size" msgstr "" -#: js/palette.js:598 -#: js/activity.js:1836 -msgid "voice name" +#: js/turtledefs.js:659 +msgid "Decrease the size of the blocks." msgstr "" -#: js/palette.js:601 -#: js/PitchBlocks.js:1181 -msgid "custom pitch" +#: js/turtledefs.js:664 +#: js/activity.js:5710 +msgid "Increase block size" msgstr "" -#: js/palette.js:605 -#: js/block.js:1456 -#: js/block.js:1575 -#: js/WidgetBlocks.js:218 -#: js/IntervalsBlocks.js:63 -msgid "temperament" +#: js/turtledefs.js:665 +msgid "Increase the size of the blocks." msgstr "" -#: js/palette.js:609 -msgid "accidental" +#: js/turtledefs.js:670 +msgid "Expand/collapse option toolbar" msgstr "" -#: js/palette.js:615 -#: js/activity.js:1866 -msgid "interval name" +#: js/turtledefs.js:671 +msgid "Click this button to expand or collapse the auxillary toolbar." msgstr "" -#: js/palette.js:633 -#: js/PitchBlocks.js:405 -msgid "pitch converter" +#: js/turtledefs.js:676 +msgid "Run slow" msgstr "" -#: js/rubrics.js:522 -#: js/turtledefs.js:119 -#: js/turtledefs.js:221 -#: js/RhythmBlockPaletteBlocks.js:52 -#: js/RhythmBlockPaletteBlocks.js:233 -#: js/ProgramBlocks.js:745 -#: js/rhythmruler.js:1670 -#: js/rhythmruler.js:1677 -#: js/rhythmruler.js:1745 -#: js/rhythmruler.js:1752 -#: js/rhythmruler.js:1830 -#.TRANS: an arrangement of notes based on duration -msgid "rhythm" +#: js/turtledefs.js:677 +msgid "Click to run the project in slow mode." msgstr "" -#: js/rubrics.js:523 -#: js/block.js:2339 -#: js/turtledefs.js:121 -#: js/turtledefs.js:223 -#: js/IntervalsBlocks.js:63 -#: js/PitchBlocks.js:1801 -#: js/PitchBlocks.js:1814 -#: js/SensorsBlocks.js:178 -#: js/phrasemaker.js:821 -#: js/musickeyboard.js:1653 -#.TRANS: pitch number -#.TRANS: we specify pitch in terms of a name and an octave. The name can be CDEFGAB or Do Re Mi Fa Sol La Ti. Octave is a number between 1 and 8. -msgid "pitch" +#: js/turtledefs.js:683 +msgid "Click to run the project step by step." msgstr "" -#: js/rubrics.js:524 -#: js/turtledefs.js:123 -#: js/turtledefs.js:225 -msgid "tone" +#: js/turtledefs.js:690 +msgid "Display statistics about your Music project." msgstr "" -#: js/rubrics.js:525 -#: js/lilypond.js:613 -#: js/lilypond.js:912 -#: js/lilypond.js:918 -#: js/lilypond.js:956 -msgid "mouse" +#: js/turtledefs.js:697 +msgid "Delete a selected plugin." msgstr "" -#: js/rubrics.js:526 -#: js/turtledefs.js:132 -#: js/turtledefs.js:234 -#: js/phrasemaker.js:825 -msgid "pen" +#: js/turtledefs.js:704 +msgid "Enable scrolling" msgstr "" -#: js/rubrics.js:527 -#: js/turtledefs.js:133 -#: js/turtledefs.js:235 -#: js/NumberBlocks.js:905 -#: js/PitchBlocks.js:1679 -#: js/PitchBlocks.js:1720 -msgid "number" +#: js/turtledefs.js:705 +msgid "You can scroll the blocks on the canvas." msgstr "" -#: js/rubrics.js:528 -#: js/turtledefs.js:127 -#: js/turtledefs.js:229 -msgid "flow" +#: js/turtledefs.js:714 +msgid "Wrap Turtle" msgstr "" -#: js/rubrics.js:530 -#: js/turtledefs.js:136 -#: js/turtledefs.js:238 -msgid "sensors" +#: js/turtledefs.js:715 +msgid "Turn Turtle wrapping On or Off." msgstr "" -#: js/rubrics.js:531 -#: js/turtledefs.js:135 -#: js/turtledefs.js:237 -#: js/MediaBlocks.js:930 -msgid "media" +#: js/turtledefs.js:725 +msgid "Restore blocks from the trash." msgstr "" -#: js/rubrics.js:532 -msgid "mice" +#: js/turtledefs.js:732 +msgid "Switch mode" msgstr "" -#: js/macros.js:711 -#: js/musicutils.js:783 -#: js/synthutils.js:181 -#.TRANS: animal sound effect -msgid "duck" +#: js/turtledefs.js:733 +msgid "Switch between beginner and advance modes." msgstr "" -#: js/toolbar.js:46 -#: js/toolbar.js:107 -msgid "About Music Blocks" +#: js/turtledefs.js:739 +msgid "Select your language preference." msgstr "" -#: js/toolbar.js:47 -#: js/toolbar.js:108 -#: js/toolbar.js:172 -#: js/toolbar.js:228 -#: js/turtledefs.js:445 -#: js/turtledefs.js:482 -#: js/activity.js:2281 -#: js/activity.js:2289 -#: js/activity.js:2520 -#: js/modewidget.js:77 -#: js/pitchstaircase.js:121 -#: js/phrasemaker.js:302 -#: js/phrasemaker.js:312 -#: js/phrasemaker.js:314 -#: js/phrasemaker.js:3901 -#: js/phrasemaker.js:4061 -#: js/phrasemaker.js:4066 -#: js/phrasemaker.js:4068 -#: js/phrasemaker.js:4183 -#: js/pitchdrummatrix.js:81 -#: js/pitchdrummatrix.js:574 -#: js/pitchdrummatrix.js:576 -#: js/pitchdrummatrix.js:628 -#: js/pitchdrummatrix.js:630 -#: js/pitchdrummatrix.js:645 -#: js/pitchdrummatrix.js:647 -#: js/pitchdrummatrix.js:674 -#: js/pitchdrummatrix.js:676 -#: js/temperament.js:477 -#: js/temperament.js:480 -#: js/temperament.js:540 -#: js/temperament.js:542 -#: js/temperament.js:1835 -#: js/temperament.js:1837 -#: js/temperament.js:1986 -#: js/temperament.js:1988 -#: js/musickeyboard.js:522 -#: js/musickeyboard.js:682 -#: js/musickeyboard.js:684 -#: js/musickeyboard.js:756 -#: js/musickeyboard.js:758 -#: js/rhythmruler.js:298 -#: js/rhythmruler.js:300 -#: js/rhythmruler.js:314 -#: js/rhythmruler.js:316 -#: js/sampler.js:96 -#: js/sampler.js:98 -#: js/sampler.js:229 -#: js/sampler.js:235 -#: js/sampler.js:237 -#: js/tempo.js:84 -#: js/tempo.js:86 -#: js/timbre.js:432 -#: js/timbre.js:434 -#: js/timbre.js:465 -#: js/timbre.js:467 -#: js/timbre.js:746 -#: js/meterwidget.js:80 -#: js/arpeggio.js:90 -#: js/arpeggio.js:547 -#: js/arpeggio.js:549 -#: js/arpeggio.js:644 -#: js/arpeggio.js:646 -msgid "Play" +#: js/turtledefs.js:745 +msgid "Keyboard shortcuts" msgstr "" -#: js/toolbar.js:48 -#: js/toolbar.js:109 -#: js/toolbar.js:173 -#: js/toolbar.js:229 -#: js/turtledefs.js:451 -#: js/turtledefs.js:488 -#: js/activity.js:2297 -#: js/modewidget.js:99 -#: js/modewidget.js:101 -#: js/phrasemaker.js:323 -#: js/phrasemaker.js:325 -#: js/pitchdrummatrix.js:561 -#: js/pitchdrummatrix.js:563 -#: js/temperament.js:1820 -#: js/temperament.js:1822 -#: js/meterwidget.js:101 -#: js/meterwidget.js:103 -#: js/arpeggio.js:534 -#: js/arpeggio.js:536 -msgid "Stop" +#: js/turtledefs.js:746 +msgid "You can type d to create a do block and r to create a re block etc." msgstr "" -#: js/toolbar.js:49 -#: js/toolbar.js:110 -#: js/toolbar.js:174 -#: js/toolbar.js:230 -#: js/turtledefs.js:498 -msgid "Record" +#: js/turtledefs.js:753 +msgid "Show these messages." msgstr "" -#: js/toolbar.js:50 -#: js/toolbar.js:51 -msgid "Full screen" +#: js/turtledefs.js:759 +#: js/turtledefs.js:790 +#: js/widgets/help.js:335 +msgid "Guide" msgstr "" -#: js/toolbar.js:52 -#: js/toolbar.js:112 -#: js/toolbar.js:177 -#: js/toolbar.js:232 -#: js/turtledefs.js:504 -msgid "Toggle Fullscreen" +#: js/turtledefs.js:760 +msgid "A detailed guide to Turtle Blocks is available." msgstr "" -#: js/toolbar.js:53 -#: js/toolbar.js:113 -#: js/toolbar.js:178 -#: js/toolbar.js:233 -#: js/turtledefs.js:510 -#: js/StringHelper.js:33 -msgid "New project" +#: js/turtledefs.js:764 +msgid "Turtle Blocks Guide" msgstr "" -#: js/toolbar.js:54 -#: js/toolbar.js:114 -#: js/toolbar.js:179 -#: js/toolbar.js:234 -#: js/turtledefs.js:516 -msgid "Load project from file" +#: js/turtledefs.js:767 +#: js/turtledefs.js:798 +#: js/widgets/help.js:336 +msgid "About" msgstr "" -#: js/toolbar.js:55 -#: js/toolbar.js:115 -#: js/toolbar.js:116 -#: js/toolbar.js:180 -#: js/toolbar.js:235 -#: js/turtledefs.js:541 -#: js/turtledefs.js:550 -#: js/turtledefs.js:571 -msgid "Save project" +#: js/turtledefs.js:768 +msgid "Turtle Blocks is an open source collection of tools for exploring musical concepts." msgstr "" -#: js/toolbar.js:56 -#: js/toolbar.js:75 -#: js/toolbar.js:77 -#: js/toolbar.js:135 -#: js/toolbar.js:144 -#: js/toolbar.js:146 -#: js/toolbar.js:181 -#: js/toolbar.js:199 -#: js/toolbar.js:201 -#: js/toolbar.js:236 -#: js/toolbar.js:254 -#: js/toolbar.js:256 -msgid "Save project as HTML" +#: js/turtledefs.js:770 +msgid "A full list of contributors can be found in the Turtle Blocks GitHub repository." +msgstr "" + +#: js/turtledefs.js:772 +msgid "Turtle Blocks is licensed under the AGPL." +msgstr "" + +#: js/turtledefs.js:780 +msgid "Turtle Blocks GitHub repository" +msgstr "" + +#: js/turtledefs.js:783 +#: js/turtledefs.js:814 +#: js/widgets/help.js:337 +#: js/widgets/help.js:359 +msgid "Congratulations." +msgstr "" + +#: js/turtledefs.js:784 +msgid "You have finished the tour. Please enjoy Turtle Blocks!" +msgstr "" + +#: js/turtledefs.js:791 +msgid "A detailed guide to Music Blocks is available." +msgstr "" + +#: js/turtledefs.js:799 +msgid "Music Blocks is an open source collection of tools for exploring musical concepts." +msgstr "" + +#: js/turtledefs.js:801 +msgid "A full list of contributors can be found in the Music Blocks GitHub repository." +msgstr "" + +#: js/turtledefs.js:803 +msgid "Music Blocks is licensed under the AGPL." +msgstr "" + +#: js/turtledefs.js:811 +msgid "Music Blocks GitHub repository" +msgstr "" + +#: js/turtledefs.js:815 +msgid "You have finished the tour. Please enjoy Music Blocks!" +msgstr "" + +#: js/turtles.js:882 +msgid "Grid" +msgstr "" + +#: js/turtles.js:1024 +msgid "Expand" +msgstr "" + +#: js/block-verbose.js:1616 +#: js/block-verbose.js:1735 +#: js/block.js:1580 +#: js/block.js:1699 +#: js/palette.js:605 +#: js/blocks/IntervalsBlocks.js:63 +#: js/blocks/WidgetBlocks.js:259 +msgid "temperament" +msgstr "" + +#: js/block-verbose.js:1630 +#: js/block.js:1594 +msgid "matrix" msgstr "" -#: js/toolbar.js:57 -#: js/toolbar.js:117 -#: js/toolbar.js:182 -#: js/toolbar.js:237 -msgid "Find and share projects" +#: js/block-verbose.js:1637 +#: js/block.js:1601 +#: js/blocks/WidgetBlocks.js:1509 +#: plugins/rodi.rtp:324 +msgid "status" msgstr "" -#: js/toolbar.js:58 -#: js/toolbar.js:118 -#: js/toolbar.js:183 -#: js/toolbar.js:238 -msgid "Offline. Sharing is unavailable" +#: js/block-verbose.js:1644 +#: js/block.js:1608 +msgid "drum mapper" msgstr "" -#: js/toolbar.js:59 -#: js/toolbar.js:119 -#: js/toolbar.js:184 -#: js/toolbar.js:239 -msgid "Auxiliary menu" +#: js/block-verbose.js:1651 +#: js/block.js:1615 +msgid "ruler" msgstr "" -#: js/toolbar.js:61 -#: js/toolbar.js:121 -#: js/toolbar.js:186 -#: js/toolbar.js:241 -msgid "Run slowly" +#: js/block-verbose.js:1658 +#: js/block.js:1622 +#: js/blocks/WidgetBlocks.js:397 +#.TRANS: timbre is the character or quality of a musical sound +msgid "timbre" msgstr "" -#: js/toolbar.js:62 -#: js/toolbar.js:122 -#: js/toolbar.js:187 -#: js/toolbar.js:242 -#: js/turtledefs.js:682 -msgid "Run step by step" +#: js/block-verbose.js:1665 +#: js/block.js:1629 +msgid "stair" msgstr "" -#: js/toolbar.js:63 -#: js/toolbar.js:123 -#: js/toolbar.js:188 -#: js/toolbar.js:243 -#: js/turtledefs.js:689 -msgid "Display statistics" +#: js/block-verbose.js:1672 +#: js/block.js:1636 +#: js/blocks/WidgetBlocks.js:707 +#.TRANS: the speed at music is should be played. +msgid "tempo" msgstr "" -#: js/toolbar.js:64 -#: js/toolbar.js:124 -#: js/toolbar.js:189 -#: js/toolbar.js:244 -msgid "Load plugin" +#: js/block-verbose.js:1679 +#: js/block-verbose.js:1742 +#: js/block.js:1643 +#: js/block.js:1706 +#: js/blocks/IntervalsBlocks.js:1464 +#.TRANS: mode, e.g., Major in C Major +msgid "mode" msgstr "" -#: js/toolbar.js:65 -#: js/toolbar.js:125 -#: js/toolbar.js:190 -#: js/toolbar.js:245 -#: js/turtledefs.js:696 -msgid "Delete plugin" +#: js/block-verbose.js:1686 +#: js/block.js:1650 +msgid "slider" msgstr "" -#: js/toolbar.js:66 -#: js/toolbar.js:126 -#: js/toolbar.js:191 -#: js/toolbar.js:246 -msgid "Enable horizontal scrolling" +#: js/block-verbose.js:1693 +#: js/block.js:1657 +#: js/blocks/SensorsBlocks.js:1001 +msgid "keyboard" msgstr "" -#: js/toolbar.js:67 -#: js/toolbar.js:127 -#: js/toolbar.js:192 -#: js/toolbar.js:247 -msgid "Disable horizontal scrolling" +#: js/block-verbose.js:1707 +#: js/block.js:1671 +#: js/blocks/WidgetBlocks.js:1190 +#: js/blocks/WidgetBlocks.js:1228 +#.TRANS: widget for subdividing a measure into distinct rhythmic elements +msgid "rhythm maker" msgstr "" -#: js/toolbar.js:68 -#: js/toolbar.js:128 -#: js/toolbar.js:193 -#: js/toolbar.js:248 -#: js/LocalCard.js:54 -#: js/StringHelper.js:71 -msgid "Merge with current project" +#: js/block-verbose.js:1714 +#: js/block-verbose.js:2457 +#: js/block-verbose.js:2514 +#: js/block.js:1678 +#: js/block.js:2385 +#: js/block.js:2442 +#: js/blocks/MeterBlocks.js:1367 +#: js/blocks/OrnamentBlocks.js:220 +#: js/blocks/OrnamentBlocks.js:312 +#: js/blocks/RhythmBlocks.js:33 +#: js/blocks/RhythmBlocks.js:356 +#: js/blocks/RhythmBlocks.js:766 +#: js/blocks/RhythmBlocks.js:806 +#: js/blocks/RhythmBlockPaletteBlocks.js:70 +#: js/blocks/RhythmBlockPaletteBlocks.js:252 +#: js/blocks/RhythmBlockPaletteBlocks.js:485 +#: js/blocks/RhythmBlockPaletteBlocks.js:554 +#: js/blocks/RhythmBlockPaletteBlocks.js:605 +#: js/blocks/RhythmBlockPaletteBlocks.js:875 +#: js/turtleactions/DictActions.js:85 +#: js/widgets/phrasemaker.js:942 +#: js/widgets/phrasemaker.js:2656 +#: js/widgets/phrasemaker.js:2699 +#: js/widgets/phrasemaker.js:2810 +#.TRANS: the value (e.g., 1/4 note) of the note being played. +msgid "note value" msgstr "" -#: js/toolbar.js:69 -#: js/toolbar.js:129 -msgid "Set Pitch Preview" +#: js/block-verbose.js:1721 +#: js/block-verbose.js:2382 +#: js/block-verbose.js:2405 +#: js/block.js:1685 +#: js/block.js:2310 +#: js/block.js:2333 +#: js/blocks/IntervalsBlocks.js:1071 +#: js/blocks/OrnamentBlocks.js:312 +#.TRANS: calculate a relative step between notes based on semi-tones +msgid "scalar interval" msgstr "" -#: js/toolbar.js:70 -#: js/toolbar.js:130 -#: js/toolbar.js:194 -#: js/toolbar.js:249 -msgid "Toggle JavaScript Editor" +#: js/block-verbose.js:1728 +#: js/block.js:1692 +#: js/blocks/RhythmBlocks.js:148 +msgid "milliseconds" msgstr "" -#: js/toolbar.js:71 -#: js/toolbar.js:131 -#: js/toolbar.js:195 -#: js/toolbar.js:250 -#: js/turtledefs.js:724 -msgid "Restore" +#: js/block-verbose.js:2455 +#: js/block-verbose.js:2459 +#: js/block-verbose.js:2512 +#: js/block-verbose.js:2628 +#: js/block.js:2383 +#: js/block.js:2387 +#: js/block.js:2440 +#: js/block.js:2556 +#: js/blocks/RhythmBlocks.js:712 +#: js/blocks/ProgramBlocks.js:1273 +#: js/widgets/rhythmruler.js:1183 +#: js/widgets/rhythmruler.js:1329 +msgid "silence" msgstr "" -#: js/toolbar.js:72 -#: js/toolbar.js:132 -#: js/toolbar.js:196 -#: js/toolbar.js:251 -msgid "Switch to beginner mode" +#: js/block-verbose.js:2548 +#: js/block-verbose.js:3492 +#: js/block-verbose.js:3509 +#: js/activity.js:2718 +#: js/activity.js:2769 +#: js/block.js:2476 +#: js/block.js:3416 +#: js/block.js:3433 +#: js/utils/musicutils.js:3780 +#: js/utils/musicutils.js:5273 +#.TRANS: the note names must be separated by single spaces +#.TRANS: the note names must be separated by single spaces +#.TRANS: the note names must be separated by single spaces +msgid "ti la sol fa mi re do" msgstr "" -#: js/toolbar.js:73 -#: js/toolbar.js:133 -#: js/toolbar.js:197 -#: js/toolbar.js:252 -msgid "Switch to advanced mode" +#: js/block-verbose.js:2616 +#: js/block.js:2544 +#.TRANS: scalar step +#.TRANS: scalar step +msgid "down" msgstr "" -#: js/toolbar.js:74 -#: js/toolbar.js:134 -#: js/toolbar.js:143 -#: js/toolbar.js:198 -#: js/toolbar.js:253 -#: js/turtledefs.js:738 -msgid "Select language" +#: js/block-verbose.js:2617 +#: js/block.js:2545 +msgid "up" msgstr "" -#: js/toolbar.js:76 -#: js/toolbar.js:79 -#: js/toolbar.js:137 -#: js/turtledefs.js:579 -msgid "Save mouse artwork as PNG" +#: js/block-verbose.js:3026 +#: js/block.js:2950 +msgid "Silence block cannot be removed." msgstr "" -#: js/toolbar.js:78 -#: js/toolbar.js:136 -#: js/turtledefs.js:575 -msgid "Save mouse artwork as SVG" +#: js/block-verbose.js:3824 +#: js/block.js:3748 +#: js/blocks.js:2607 +#: js/blocks.js:3218 +#: js/palette.js:618 +#: js/blocks/BooleanBlocks.js:77 +#: js/blocks/BooleanBlocks.js:167 +#: js/blocks/BooleanBlocks.js:251 +#: js/blocks/BooleanBlocks.js:335 +#: js/blocks/BooleanBlocks.js:433 +#: js/blocks/BooleanBlocks.js:539 +#: js/blocks/BooleanBlocks.js:640 +#: js/blocks/BooleanBlocks.js:741 +#: js/blocks/BooleanBlocks.js:847 +#: js/blocks/BooleanBlocks.js:948 +#: js/blocks/BooleanBlocks.js:1033 +#: js/blocks/SensorsBlocks.js:910 +msgid "true" msgstr "" -#: js/toolbar.js:80 -#: js/toolbar.js:138 -#: js/turtledefs.js:583 -msgid "Save music as WAV" +#: js/block-verbose.js:3824 +#: js/block.js:3748 +#: js/blocks.js:2609 +#: js/blocks.js:3220 +#: js/blocks/BooleanBlocks.js:79 +#: js/blocks/BooleanBlocks.js:169 +#: js/blocks/BooleanBlocks.js:253 +#: js/blocks/BooleanBlocks.js:337 +#: js/blocks/BooleanBlocks.js:435 +#: js/blocks/BooleanBlocks.js:541 +#: js/blocks/BooleanBlocks.js:642 +#: js/blocks/BooleanBlocks.js:743 +#: js/blocks/BooleanBlocks.js:849 +#: js/blocks/BooleanBlocks.js:950 +#: js/blocks/SensorsBlocks.js:912 +msgid "false" msgstr "" -#: js/toolbar.js:81 -#: js/toolbar.js:139 -#: js/turtledefs.js:587 -msgid "Save sheet music as ABC" +#: js/block-verbose.js:3835 +#: js/block-verbose.js:3848 +#: js/block.js:3759 +#: js/block.js:3772 +#: js/blocks/ExtrasBlocks.js:615 +msgid "Cartesian" msgstr "" -#: js/toolbar.js:82 -#: js/toolbar.js:140 -#: js/turtledefs.js:591 -msgid "Save sheet music as Lilypond" +#: js/block-verbose.js:3836 +#: js/block-verbose.js:3849 +#: js/block.js:3760 +#: js/block.js:3773 +#: js/blocks/ExtrasBlocks.js:619 +msgid "polar" msgstr "" -#: js/toolbar.js:83 -msgid "Save sheet music as MusicXML" +#: js/block-verbose.js:3837 +#: js/block-verbose.js:3850 +#: js/block.js:3761 +#: js/block.js:3774 +#: js/blocks/ExtrasBlocks.js:623 +msgid "Cartesian+polar" msgstr "" -#: js/toolbar.js:84 -#: js/toolbar.js:141 -#: js/toolbar.js:149 -#: js/toolbar.js:204 -#: js/toolbar.js:259 -#: js/turtledefs.js:562 -#: js/turtledefs.js:595 -msgid "Save block artwork as SVG" +#: js/block-verbose.js:3838 +#: js/block-verbose.js:3857 +#: js/block.js:3762 +#: js/block.js:3781 +#: js/blocks/ExtrasBlocks.js:652 +msgid "none" msgstr "" -#: js/toolbar.js:85 -#: js/toolbar.js:142 -#: js/toolbar.js:150 -#: js/toolbar.js:205 -#: js/toolbar.js:260 -msgid "Confirm" +#: js/block-verbose.js:3851 +#: js/block.js:3775 +#: js/blocks/ExtrasBlocks.js:628 +msgid "treble" msgstr "" -#: js/toolbar.js:86 -#: js/toolbar.js:151 -#: js/toolbar.js:206 -#: js/toolbar.js:261 -msgid "English (United States)" +#: js/block-verbose.js:3852 +#: js/block.js:3776 +#: js/blocks/ExtrasBlocks.js:632 +msgid "grand staff" msgstr "" -#: js/toolbar.js:87 -#: js/toolbar.js:152 -#: js/toolbar.js:207 -#: js/toolbar.js:262 -msgid "English (United Kingdom)" +#: js/block-verbose.js:3853 +#: js/block.js:3777 +#: js/blocks/ExtrasBlocks.js:636 +msgid "mezzo-soprano" msgstr "" -#: js/toolbar.js:88 -#: js/toolbar.js:153 -#: js/toolbar.js:208 -#: js/toolbar.js:263 -msgid "日本語" +#: js/block-verbose.js:3854 +#: js/block.js:3778 +#: js/blocks/ExtrasBlocks.js:640 +msgid "alto" msgstr "" -#: js/toolbar.js:89 -msgid "한국어" +#: js/block-verbose.js:3855 +#: js/block.js:3779 +#: js/blocks/ExtrasBlocks.js:644 +msgid "tenor" msgstr "" -#: js/toolbar.js:90 -#: js/toolbar.js:155 -#: js/toolbar.js:210 -#: js/toolbar.js:265 -msgid "español" +#: js/block-verbose.js:3856 +#: js/block.js:3780 +#: js/utils/musicutils.js:1115 +#: js/utils/synthutils.js:80 +#: js/blocks/ExtrasBlocks.js:648 +#.TRANS: musical instrument +msgid "bass" msgstr "" -#: js/toolbar.js:91 -#: js/toolbar.js:156 -#: js/toolbar.js:211 -#: js/toolbar.js:266 -msgid "português" +#: js/block-verbose.js:3901 +#: js/block.js:3825 +#: js/blocks.js:2600 +#: js/blocks.js:3211 +msgid "on2" msgstr "" -#: js/toolbar.js:92 -#: js/toolbar.js:157 -#: js/toolbar.js:212 -#: js/toolbar.js:267 -msgid "にほんご" +#: js/block-verbose.js:3903 +#: js/block.js:3827 +#: js/blocks.js:2602 +#: js/blocks.js:3213 +msgid "off" msgstr "" -#: js/toolbar.js:93 -#: js/toolbar.js:158 -#: js/toolbar.js:213 -#: js/toolbar.js:268 -msgid "中文" +#: js/block-verbose.js:4470 +#: js/block.js:4394 +msgid "Not a number" msgstr "" -#: js/toolbar.js:94 -#: js/toolbar.js:159 -#: js/toolbar.js:214 -#: js/toolbar.js:269 -msgid "ภาษาไทย" +#: js/block-verbose.js:4477 +#: js/block.js:4401 +msgid "Octave value must be between 1 and 10." msgstr "" -#: js/toolbar.js:95 -#: js/toolbar.js:160 -#: js/toolbar.js:215 -#: js/toolbar.js:270 -msgid "aymara" +#: js/block-verbose.js:4485 +#: js/block.js:4409 +msgid "Numbers can have at most 10 digits." msgstr "" -#: js/toolbar.js:96 -#: js/toolbar.js:161 -#: js/toolbar.js:216 -#: js/toolbar.js:271 -msgid "quechua" +#: js/activity.js:390 +#: js/activity.js:395 +msgid "Search for blocks" msgstr "" -#: js/toolbar.js:97 -#: js/toolbar.js:162 -#: js/toolbar.js:217 -#: js/toolbar.js:272 -msgid "guarani" +#: js/activity.js:1413 +msgid "Refresh your browser to change to advanced mode." msgstr "" -#: js/toolbar.js:98 -#: js/toolbar.js:163 -#: js/toolbar.js:218 -#: js/toolbar.js:273 -msgid "हिंदी" +#: js/activity.js:1418 +msgid "Refresh your browser to change to beginner mode." msgstr "" -#: js/toolbar.js:99 -#: js/toolbar.js:165 -#: js/toolbar.js:219 -#: js/toolbar.js:275 -msgid "igbo" +#: js/activity.js:1477 +msgid "Catching mice" +msgstr "" + +#: js/activity.js:1478 +msgid "Cleaning the instruments" +msgstr "" + +#: js/activity.js:1479 +msgid "Testing key pieces" +msgstr "" + +#: js/activity.js:1480 +msgid "Sight-reading" +msgstr "" + +#: js/activity.js:1481 +msgid "Combining math and music" msgstr "" -#: js/toolbar.js:100 -#: js/toolbar.js:166 -#: js/toolbar.js:220 -#: js/toolbar.js:276 -msgid "عربى" +#: js/activity.js:1482 +msgid "Generating more blocks" msgstr "" -#: js/toolbar.js:101 -#: js/toolbar.js:164 -#: js/toolbar.js:221 -#: js/toolbar.js:274 -msgid "తెలుగు" +#: js/activity.js:1483 +msgid "Do Re Mi Fa Sol La Ti Do" msgstr "" -#: js/toolbar.js:102 -#: js/toolbar.js:167 -#: js/toolbar.js:222 -#: js/toolbar.js:277 -msgid "עִברִית" +#: js/activity.js:1484 +msgid "Tuning string instruments" msgstr "" -#: js/toolbar.js:111 -#: js/toolbar.js:175 -#: js/toolbar.js:176 -#: js/toolbar.js:231 -msgid "Full Screen" +#: js/activity.js:1485 +msgid "Pressing random keys" msgstr "" -#: js/toolbar.js:145 -#: js/toolbar.js:148 -#: js/toolbar.js:200 -#: js/toolbar.js:203 -#: js/toolbar.js:255 -#: js/toolbar.js:258 -#: js/turtledefs.js:558 -msgid "Save turtle artwork as PNG" +#: js/activity.js:1663 +msgid "plugins will be removed upon restart." msgstr "" -#: js/toolbar.js:147 -#: js/toolbar.js:202 -#: js/toolbar.js:257 -#: js/turtledefs.js:554 -msgid "Save turtle artwork as SVG" +#: js/activity.js:1672 +msgid "show Cartesian" msgstr "" -#: js/toolbar.js:154 -#: js/toolbar.js:209 -#: js/toolbar.js:264 -msgid "한국인" +#: js/activity.js:2211 +#: js/palette.js:589 +#: js/blocks/RhythmBlocks.js:923 +#: js/blocks/PitchBlocks.js:442 +#: js/blocks/PitchBlocks.js:1786 +#.TRANS: a numeric mapping of the notes in an octave based on the musical mode +msgid "scale degree" msgstr "" -#: js/toolbar.js:171 -#: js/toolbar.js:227 -msgid "About Turtle Blocks" +#: js/activity.js:2214 +#: js/palette.js:598 +msgid "voice name" msgstr "" -#: js/toolbar.js:429 -#: js/toolbar.js:440 -msgid "Turtle Wrap Off" +#: js/activity.js:2217 +#: js/palette.js:595 +msgid "invert mode" msgstr "" -#: js/toolbar.js:442 -msgid "Turtle Wrap On" +#: js/activity.js:2220 +msgid "output tools" msgstr "" -#: js/block.js:1470 -msgid "matrix" +#: js/activity.js:2223 +msgid "custom note" msgstr "" -#: js/block.js:1477 -#: js/WidgetBlocks.js:1226 -#: plugins/rodi.rtp:324 -msgid "status" +#: js/activity.js:2226 +msgid "accidental name" msgstr "" -#: js/block.js:1484 -msgid "drum mapper" +#: js/activity.js:2229 +#: js/blocks/PitchBlocks.js:855 +msgid "east indian solfege" msgstr "" -#: js/block.js:1491 -msgid "ruler" +#: js/activity.js:2232 +#: js/blocks/PitchBlocks.js:869 +msgid "note name" msgstr "" -#: js/block.js:1498 -#: js/WidgetBlocks.js:327 -#.TRANS: timbre is the character or quality of a musical sound -msgid "timbre" +#: js/activity.js:2235 +#: js/blocks/IntervalsBlocks.js:94 +msgid "temperament name" msgstr "" -#: js/block.js:1505 -msgid "stair" +#: js/activity.js:2238 +#: js/palette.js:592 +msgid "mode name" msgstr "" -#: js/block.js:1512 -#: js/WidgetBlocks.js:577 -#.TRANS: the speed at music is should be played. -msgid "tempo" +#: js/activity.js:2241 +msgid "chord name" msgstr "" -#: js/block.js:1519 -#: js/block.js:1582 -#: js/IntervalsBlocks.js:1268 -#.TRANS: mode, e.g., Major in C Major -msgid "mode" +#: js/activity.js:2244 +#: js/palette.js:615 +msgid "interval name" msgstr "" -#: js/block.js:1526 -msgid "slider" +#: js/activity.js:2247 +msgid "filter type" msgstr "" -#: js/block.js:1533 -#: js/SensorsBlocks.js:1001 -msgid "keyboard" +#: js/activity.js:2250 +msgid "oscillator type" msgstr "" -#: js/block.js:1547 -#: js/WidgetBlocks.js:957 -#: js/WidgetBlocks.js:988 -#.TRANS: widget for subdividing a measure into distinct rhythmic elements -msgid "rhythm maker" +#: js/activity.js:2253 +#: js/blocks.js:2479 +#: js/blocks.js:2487 +msgid "audio file" msgstr "" -#: js/block.js:1554 -#: js/block.js:2182 -#: js/block.js:2236 -#: js/RhythmBlockPaletteBlocks.js:70 -#: js/RhythmBlockPaletteBlocks.js:251 -#: js/RhythmBlockPaletteBlocks.js:484 -#: js/RhythmBlockPaletteBlocks.js:553 -#: js/RhythmBlockPaletteBlocks.js:604 -#: js/RhythmBlockPaletteBlocks.js:874 -#: js/RhythmBlocks.js:33 -#: js/RhythmBlocks.js:356 -#: js/RhythmBlocks.js:766 -#: js/RhythmBlocks.js:806 -#: js/OrnamentBlocks.js:220 -#: js/OrnamentBlocks.js:312 -#: js/MeterBlocks.js:1367 -#: js/DictActions.js:85 -#: js/phrasemaker.js:731 -#: js/phrasemaker.js:2393 -#: js/phrasemaker.js:2436 -#: js/phrasemaker.js:2534 -#.TRANS: the value (e.g., 1/4 note) of the note being played. -msgid "note value" +#: js/activity.js:2256 +#: js/blocks/DrumBlocks.js:32 +msgid "noise name" msgstr "" -#: js/block.js:1561 -#: js/block.js:2110 -#: js/block.js:2133 -#: js/IntervalsBlocks.js:875 -#: js/OrnamentBlocks.js:312 -#.TRANS: calculate a relative step between notes based on semi-tones -msgid "scalar interval" +#: js/activity.js:2259 +#: js/blocks/DrumBlocks.js:75 +msgid "drum name" msgstr "" -#: js/block.js:1568 -#: js/RhythmBlocks.js:148 -msgid "milliseconds" +#: js/activity.js:2262 +#: js/blocks/DrumBlocks.js:119 +msgid "effects name" msgstr "" -#: js/block.js:2180 -#: js/block.js:2184 -#: js/block.js:2234 -#: js/block.js:2345 -#: js/ProgramBlocks.js:1273 -#: js/RhythmBlocks.js:712 -#: js/rhythmruler.js:834 -#: js/rhythmruler.js:961 -msgid "silence" +#: js/activity.js:2265 +msgid "wrap mode" msgstr "" -#: js/block.js:2265 -#: js/block.js:3134 -#: js/block.js:3151 -#: js/activity.js:2336 -#: js/activity.js:2387 -#: js/musicutils.js:2932 -#: js/musicutils.js:4287 -#.TRANS: the note names must be separated by single spaces -#.TRANS: the note names must be separated by single spaces -msgid "ti la sol fa mi re do" +#: js/activity.js:2268 +msgid "load file" msgstr "" -#: js/block.js:2333 -#.TRANS: scalar step -msgid "down" +#: js/activity.js:2435 +#: js/activity.js:5851 +msgid "This block is deprecated." msgstr "" -#: js/block.js:2334 -msgid "up" +#: js/activity.js:2437 +#: js/activity.js:5853 +msgid "Block cannot be found." msgstr "" -#: js/block.js:3477 -#: js/block.js:3490 -#: js/ExtrasBlocks.js:612 -msgid "Cartesian" +#: js/activity.js:2645 +msgid "Saving block artwork" msgstr "" -#: js/block.js:3478 -#: js/block.js:3491 -#: js/ExtrasBlocks.js:616 -msgid "polar" +#: js/activity.js:2656 +msgid "Erase" msgstr "" -#: js/block.js:3479 -#: js/block.js:3492 -#: js/ExtrasBlocks.js:620 -msgid "Cartesian+polar" +#: js/activity.js:2683 +#: js/activity.js:2705 +msgid "Paste" msgstr "" -#: js/block.js:3480 -#: js/block.js:3499 -#: js/ExtrasBlocks.js:649 -msgid "none" +#: js/activity.js:2687 +msgid "Save block help" msgstr "" -#: js/block.js:3493 -#: js/ExtrasBlocks.js:625 -msgid "treble" +#: js/activity.js:2772 +msgid "Jumping to the bottom of the page." msgstr "" -#: js/block.js:3494 -#: js/ExtrasBlocks.js:629 -msgid "grand staff" +#: js/activity.js:2778 +msgid "Scrolling up." msgstr "" -#: js/block.js:3495 -#: js/ExtrasBlocks.js:633 -msgid "mezzo-soprano" +#: js/activity.js:2783 +msgid "Scrolling down." msgstr "" -#: js/block.js:3496 -#: js/ExtrasBlocks.js:637 -msgid "alto" +#: js/activity.js:2788 +msgid "Extracting block" msgstr "" -#: js/block.js:3497 -#: js/ExtrasBlocks.js:641 -msgid "tenor" +#: js/activity.js:2796 +msgid "Moving block up." msgstr "" -#: js/block.js:3498 -#: js/ExtrasBlocks.js:645 -#: js/musicutils.js:736 -#: js/synthutils.js:64 -#.TRANS: musical instrument -msgid "bass" +#: js/activity.js:2817 +msgid "Moving block down." msgstr "" -#: js/block.js:4075 -msgid "Not a number" +#: js/activity.js:2838 +msgid "Moving block left." msgstr "" -#: js/block.js:4082 -msgid "Octave value must be between 1 and 10." +#: js/activity.js:2855 +msgid "Moving block right." msgstr "" -#: js/block.js:4090 -msgid "Numbers can have at most 10 digits." +#: js/activity.js:2870 +msgid "Jump to home position." msgstr "" -#: js/notation.js:353 -msgid "Lilypond cannot process pickup of " +#: js/activity.js:2897 +msgid "Hide blocks" msgstr "" -#: js/turtledefs.js:40 -#.TRANS: put the URL to the guide here, e.g., https://github.com/sugarlabs/turtleblocksjs/tree/master/guide/README.md -msgid "guide url" +#: js/activity.js:4500 +msgid "Click the run button to run the project." msgstr "" -#: js/turtledefs.js:85 -#: js/turtledefs.js:437 -msgid "Turtle Blocks is a Logo-inspired turtle that draws colorful pictures with snap-together visual-programming blocks." +#: js/activity.js:5692 +msgid "Show/hide block" msgstr "" -#: js/turtledefs.js:118 -#: js/turtledefs.js:220 -msgid "search" +#: js/activity.js:5698 +msgid "Expand/collapse blocks" msgstr "" -#: js/turtledefs.js:120 -#: js/turtledefs.js:222 -#: js/WidgetBlocks.js:437 -#: js/MeterBlocks.js:1343 -#.TRANS: musical meter (time signature), e.g., 4:4 -msgid "meter" +#: js/activity.js:5976 +msgid "Could not parse JSON input." msgstr "" -#: js/turtledefs.js:122 -#: js/turtledefs.js:224 -msgid "intervals" +#: js/activity.js:6475 +#: js/activity.js:6580 +#: js/activity.js:6631 +msgid "Cannot load project from the file. Please check the file type." msgstr "" -#: js/turtledefs.js:124 -#: js/turtledefs.js:226 -msgid "ornament" +#: js/activity.js:6917 +msgid "Invalid parameters" msgstr "" -#: js/turtledefs.js:125 -#: js/turtledefs.js:227 -#: js/VolumeBlocks.js:362 -#: js/VolumeBlocks.js:502 -#: js/VolumeBlocks.js:545 -msgid "volume" +#: js/blocks.js:1212 +#: js/blocks.js:3444 +#: js/blocks.js:3834 +#: js/blocks.js:3865 +#: js/blocks.js:3914 +#: js/blocks.js:3949 +#: js/blocks.js:6586 +#: js/palette.js:509 +#: js/palette.js:638 +#: js/palette.js:1105 +#: js/blocks/BoxesBlocks.js:282 +#: js/blocks/BoxesBlocks.js:285 +#: js/blocks/BoxesBlocks.js:405 +#: js/blocks/BoxesBlocks.js:594 +msgid "box" msgstr "" -#: js/turtledefs.js:129 -#: js/turtledefs.js:231 -msgid "boxes" +#: js/blocks.js:1713 +msgid "Consider breaking this stack into parts." msgstr "" -#: js/turtledefs.js:130 -#: js/turtledefs.js:232 -msgid "widgets" +#: js/blocks.js:2472 +#: js/palette.js:653 +#: js/blocks/MediaBlocks.js:602 +msgid "open file" msgstr "" -#: js/turtledefs.js:131 -#: js/turtledefs.js:233 -#: js/phrasemaker.js:824 -msgid "graphics" +#: js/blocks.js:3247 +#: js/palette.js:574 +#: js/blocks/MediaBlocks.js:892 +#: js/blocks/MediaBlocks.js:963 +msgid "text" msgstr "" -#: js/turtledefs.js:134 -#: js/turtledefs.js:236 -msgid "boolean" +#: js/blocks.js:3443 +#: js/palette.js:641 +#: js/palette.js:642 +#: js/blocks/BoxesBlocks.js:514 +msgid "store in box" msgstr "" -#: js/turtledefs.js:137 -#: js/turtledefs.js:239 -#: js/HeapBlocks.js:59 -#: js/status.js:147 -msgid "heap" +#: js/blocks.js:3448 +#: js/blocks.js:3888 +#: js/blocks.js:3923 +#: js/blocks.js:3958 +#: js/blocks.js:5862 +#: js/blocks.js:5883 +#: js/blocks/BoxesBlocks.js:772 +msgid "box1" msgstr "" -#: js/turtledefs.js:138 -#: js/turtledefs.js:240 -#: js/ProgramBlocks.js:495 -#: js/DictBlocks.js:142 -msgid "dictionary" +#: js/blocks.js:3450 +#: js/blocks.js:3890 +#: js/blocks.js:3925 +#: js/blocks.js:3960 +#: js/blocks.js:5864 +#: js/blocks.js:5885 +#: js/blocks/BoxesBlocks.js:663 +msgid "box2" msgstr "" -#: js/turtledefs.js:139 -#: js/turtledefs.js:241 -msgid "ensemble" +#: js/blocks.js:4122 +#: js/palette.js:639 +#: js/palette.js:644 +#: js/palette.js:1041 +#: js/blocks/BoxesBlocks.js:591 +msgid "store in" msgstr "" -#: js/turtledefs.js:140 -#: js/turtledefs.js:242 -msgid "extras" +#: js/blocks.js:4122 +#: js/blocks/BoxesBlocks.js:595 +#: js/blocks/DictBlocks.js:215 +#: js/blocks/DictBlocks.js:289 +#: js/blocks/EnsembleBlocks.js:391 +#: js/blocks/EnsembleBlocks.js:402 +#: js/blocks/MediaBlocks.js:746 +#: js/blocks/PitchBlocks.js:656 +#: js/blocks/PitchBlocks.js:934 +#: js/blocks/PitchBlocks.js:1866 +#: js/blocks/ProgramBlocks.js:390 +#: js/blocks/ProgramBlocks.js:495 +#: js/blocks/ProgramBlocks.js:658 +#: js/blocks/ToneBlocks.js:1025 +msgid "name" msgstr "" -#: js/turtledefs.js:142 -#: js/turtledefs.js:244 -#.TRANS: program as in computer program -#.TRANS: program as in computer program -msgid "program" +#: js/blocks.js:4122 +#: js/blocks/BoxesBlocks.js:75 +#: js/blocks/BoxesBlocks.js:595 +#: js/blocks/DictBlocks.js:289 +#: js/blocks/DictBlocks.js:430 +#: js/blocks/HeapBlocks.js:544 +#: js/blocks/RhythmBlocks.js:1130 +msgid "value" msgstr "" -#: js/turtledefs.js:143 -#: js/turtledefs.js:245 -msgid "my blocks" +#: js/blocks.js:4465 +msgid "Forever loop detected inside a note value block. Unexpected things may happen." msgstr "" -#: js/turtledefs.js:185 -#: js/turtledefs.js:281 -msgid "artwork" +#: js/blocks.js:4988 +msgid "There is no block selected." msgstr "" -#: js/turtledefs.js:185 -#: js/turtledefs.js:281 -msgid "logic" +#: js/blocks.js:5091 +#: js/blocks/MediaBlocks.js:888 +msgid "show" msgstr "" -#: js/turtledefs.js:185 -#: js/turtledefs.js:281 -msgid "music" +#: js/blocks.js:5094 +#: js/blocks/MediaBlocks.js:803 +#.TRANS: Avatar is the image used to determine the appearance of the mouse. +msgid "avatar" msgstr "" -#: js/turtledefs.js:187 -#: js/turtledefs.js:463 -msgid "Music Blocks is a collection of tools for exploring fundamental musical concepts in a fun way." +#: js/blocks.js:5097 +#: js/blocks/ToneBlocks.js:1010 +#: js/widgets/sampler.js:975 +#.TRANS: The sound sample that the user uploads. +msgid "sample" msgstr "" -#: js/turtledefs.js:436 -msgid "Welcome to Turtle Blocks" +#: js/lilypond.js:606 +msgid "brown rat" msgstr "" -#: js/turtledefs.js:438 -#: js/turtledefs.js:465 -#: js/turtledefs.js:774 -#: js/turtledefs.js:805 -msgid "The current version is" +#: js/lilypond.js:607 +msgid "mole" msgstr "" -#: js/turtledefs.js:446 -#: js/turtledefs.js:483 -msgid "Click the run button to run the project in fast mode." +#: js/lilypond.js:608 +msgid "chipmunk" msgstr "" -#: js/turtledefs.js:452 -msgid "Stop the turtle." +#: js/lilypond.js:609 +msgid "red squirrel" msgstr "" -#: js/turtledefs.js:454 -#: js/turtledefs.js:491 -msgid "You can also type Alt-S to stop." +#: js/lilypond.js:610 +msgid "guinea pig" +msgstr "" + +#: js/lilypond.js:611 +msgid "capybara" msgstr "" -#: js/turtledefs.js:462 -#: js/help.js:333 -msgid "Welcome to Music Blocks" +#: js/lilypond.js:612 +msgid "coypu" msgstr "" -#: js/turtledefs.js:472 -#: js/help.js:334 -msgid "Meet Mr. Mouse!" +#: js/lilypond.js:613 +msgid "black rat" msgstr "" -#: js/turtledefs.js:473 -msgid "Mr Mouse is our Music Blocks conductor." +#: js/lilypond.js:614 +msgid "grey squirrel" msgstr "" -#: js/turtledefs.js:475 -msgid "Mr Mouse encourages you to explore Music Blocks." +#: js/lilypond.js:615 +msgid "flying squirrel" msgstr "" -#: js/turtledefs.js:477 -msgid "Let us start our tour!" +#: js/lilypond.js:616 +msgid "bat" msgstr "" -#: js/turtledefs.js:489 -msgid "Stop the music (and the mice)." +#: js/lilypond.js:749 +#: js/lilypond.js:913 +#: js/lilypond.js:951 +#: js/blocks/ActionBlocks.js:1256 +#: js/blocks/ExtrasBlocks.js:556 +msgid "start drum" msgstr "" -#: js/turtledefs.js:499 -msgid "Record your project as video." +#: js/logo.js:61 +msgid "Not a valid pitch name" msgstr "" -#: js/turtledefs.js:505 -msgid "Toggle Fullscreen mode." +#: js/logo.js:507 +#: js/blocks/ProgramBlocks.js:258 +#: js/blocks/ProgramBlocks.js:427 +msgid "You must select a file." msgstr "" -#: js/turtledefs.js:511 -msgid "Initialize a new project." +#: js/logo.js:1696 +msgid "Playback is ready." msgstr "" -#: js/turtledefs.js:517 -msgid "You can also load projects from the file system." +#: js/macros.js:711 +#: js/utils/musicutils.js:1162 +#: js/utils/synthutils.js:202 +#.TRANS: animal sound effect +msgid "duck" msgstr "" -#: js/turtledefs.js:522 -#: js/StringHelper.js:46 -msgid "Delete" +#: js/notation.js:353 +msgid "Lilypond cannot process pickup of " msgstr "" -#: js/turtledefs.js:523 -msgid "To delete a block, just right-click on it, then you will be able to see the delete option" +#: js/palette.js:571 +msgid "grid" msgstr "" -#: js/turtledefs.js:528 -#: js/activity.js:2270 -#: js/LocalCard.js:31 -msgid "Copy" +#: js/palette.js:580 +msgid "effect" msgstr "" -#: js/turtledefs.js:529 -msgid "To copy a block, just right-click on it, then you will be able to see the copy option" +#: js/palette.js:586 +msgid "sargam" msgstr "" -#: js/turtledefs.js:535 -msgid "To extract a block, just right-click on it, then you will be able to see the extract option" +#: js/palette.js:601 +#: js/blocks/PitchBlocks.js:1209 +msgid "custom pitch" msgstr "" -#: js/turtledefs.js:542 -#: js/turtledefs.js:552 -#: js/turtledefs.js:573 -msgid "Save your project to a file." +#: js/palette.js:609 +msgid "accidental" msgstr "" -#: js/turtledefs.js:549 -#: js/turtledefs.js:570 -msgid "save" +#: js/palette.js:633 +#: js/blocks/PitchBlocks.js:405 +msgid "pitch converter" msgstr "" -#: js/turtledefs.js:556 -#: js/turtledefs.js:577 -msgid "Save graphics from your project to as SVG." +#: js/piemenus.js:200 +#: js/utils/musicutils.js:1187 +#: js/utils/musicutils.js:1207 +#: js/widgets/musickeyboard.js:2341 +#: js/widgets/phrasemaker.js:1908 +#: js/widgets/sampler.js:810 +#.TRANS: double sharp is a music term related to pitch +msgid "double sharp" msgstr "" -#: js/turtledefs.js:560 -#: js/turtledefs.js:581 -msgid "Save graphics from your project as PNG." +#: js/piemenus.js:201 +#: js/utils/musicutils.js:1185 +#: js/utils/musicutils.js:1208 +#: js/blocks/PitchBlocks.js:1539 +#: js/turtleactions/PitchActions.js:323 +#: js/widgets/musickeyboard.js:2342 +#: js/widgets/phrasemaker.js:1909 +#: js/widgets/sampler.js:811 +#.TRANS: sharp is a music term related to pitch +#.TRANS: sharp is a half-step up in pitch +msgid "sharp" msgstr "" -#: js/turtledefs.js:564 -#: js/turtledefs.js:597 -msgid "Save block artwork as an SVG file." +#: js/piemenus.js:202 +#: js/utils/musicutils.js:1183 +#: js/utils/musicutils.js:1209 +#: js/widgets/musickeyboard.js:2343 +#: js/widgets/phrasemaker.js:1910 +#: js/widgets/sampler.js:812 +#.TRANS: natural is a music term related to pitch +msgid "natural" msgstr "" -#: js/turtledefs.js:585 -msgid "Save audio from your project as WAV." +#: js/piemenus.js:203 +#: js/utils/musicutils.js:1181 +#: js/utils/musicutils.js:1210 +#: js/blocks/PitchBlocks.js:1498 +#: js/turtleactions/PitchActions.js:326 +#: js/widgets/musickeyboard.js:2344 +#: js/widgets/phrasemaker.js:1911 +#: js/widgets/sampler.js:813 +#.TRANS: flat is a music term related to pitch +#.TRANS: flat is a half-step down in pitch +msgid "flat" msgstr "" -#: js/turtledefs.js:589 -msgid "Save your project to as an ABC file." +#: js/piemenus.js:204 +#: js/utils/musicutils.js:1179 +#: js/utils/musicutils.js:1211 +#: js/widgets/musickeyboard.js:2345 +#: js/widgets/phrasemaker.js:1912 +#: js/widgets/sampler.js:814 +#.TRANS: double flat is a music term related to pitch +msgid "double flat" msgstr "" -#: js/turtledefs.js:593 -msgid "Save your project to as a Lilypond file." +#: js/piemenus.js:2864 +#: js/utils/musicutils.js:1006 +#: js/blocks/PitchBlocks.js:1385 +#.TRANS: unison is a music term related to intervals +#.TRANS: unison means the note is the same as the current note +msgid "unison" msgstr "" -#: js/turtledefs.js:604 -msgid "Load samples from server" +#: js/piemenus.js:3018 +#: js/piemenus.js:3091 +#: js/utils/musicutils.js:1014 +#: js/utils/musicutils.js:1189 +#: js/utils/musicutils.js:1326 +#.TRANS: major is a music term related to intervals and mode +msgid "major" msgstr "" -#: js/turtledefs.js:605 -msgid "This button opens a viewer for loading example projects." +#: js/piemenus.js:3018 +#: js/piemenus.js:3091 +#: js/utils/musicutils.js:1032 +#.TRANS: modal scale for music +msgid "ionian" msgstr "" -#: js/turtledefs.js:611 -msgid "Palette buttons" +#: js/piemenus.js:3020 +#: js/piemenus.js:3095 +#: js/utils/musicutils.js:1012 +#: js/utils/musicutils.js:1190 +#: js/utils/musicutils.js:1323 +#.TRANS: minor is a music term related to intervals and mode +msgid "minor" msgstr "" -#: js/turtledefs.js:612 -msgid "This toolbar contains the palette buttons including Rhythm Pitch Tone Action and more." +#: js/piemenus.js:3020 +#: js/piemenus.js:3095 +#: js/utils/musicutils.js:1042 +#.TRANS: modal scale for music +msgid "aeolian" msgstr "" -#: js/turtledefs.js:614 -msgid "Click to show the palettes of blocks and drag blocks from the palettes onto the canvas to use them." +#: js/piemenus.js:3410 +msgid "Duplicate" msgstr "" -#: js/turtledefs.js:620 -msgid "Cartesian/Polar" +#: js/piemenus.js:3412 +msgid "Move to trash" msgstr "" -#: js/turtledefs.js:621 -msgid "Show or hide a coordinate grid." +#: js/piemenus.js:3413 +#: js/widgets/timbre.js:968 +#: planet/js/StringHelper.js:69 +msgid "Close" msgstr "" -#: js/turtledefs.js:627 -msgid "Clear the screen and return the mice to their initial positions." +#: js/piemenus.js:3419 +msgid "Save stack" msgstr "" -#: js/turtledefs.js:633 -msgid "Collapse the graphics window." +#: js/piemenus.js:3449 +msgid "In order to copy a sample, you must reload the widget, import the sample again, and export it." msgstr "" -#: js/turtledefs.js:638 -#: js/activity.js:4256 -#: js/activity.js:4256 -msgid "Home" +#: js/piemenus.js:3812 +msgid "You have chosen key " msgstr "" -#: js/turtledefs.js:639 -msgid "Return all blocks to the center of the screen." +#: js/piemenus.js:3816 +msgid " for your pitch preview." msgstr "" -#: js/turtledefs.js:644 -msgid "Show/hide blocks" +#: js/turtle-singer.js:1363 +#.TRANS: partials are weighted components in a harmonic series +msgid "You must have at least one Partial block inside of a Weighted-partial block" msgstr "" -#: js/turtledefs.js:645 -msgid "Hide or show the blocks and the palettes." +#: js/turtle-singer.js:2077 +msgid "synth cannot play chords." msgstr "" -#: js/turtledefs.js:650 -msgid "Expand/collapse collapsable blocks" +#: js/utils/musicutils.js:505 +#: js/utils/musicutils.js:645 +#: js/widgets/pitchdrummatrix.js:228 +#: js/widgets/musickeyboard.js:2885 +msgid "rest" msgstr "" -#: js/turtledefs.js:651 -msgid "Expand or collapse start and action stacks." +#: js/utils/musicutils.js:689 +msgid "Perfect unison" msgstr "" -#: js/turtledefs.js:658 -#: js/activity.js:4265 -msgid "Decrease block size" +#: js/utils/musicutils.js:689 +msgid "Diminished second" msgstr "" -#: js/turtledefs.js:659 -msgid "Decrease the size of the blocks." +#: js/utils/musicutils.js:690 +msgid "Minor second" msgstr "" -#: js/turtledefs.js:664 -#: js/activity.js:4267 -msgid "Increase block size" +#: js/utils/musicutils.js:690 +msgid "Augmented unison" msgstr "" -#: js/turtledefs.js:665 -msgid "Increase the size of the blocks." +#: js/utils/musicutils.js:691 +msgid "Major second" msgstr "" -#: js/turtledefs.js:670 -msgid "Expand/collapse option toolbar" +#: js/utils/musicutils.js:691 +msgid "Diminished third" msgstr "" -#: js/turtledefs.js:671 -msgid "Click this button to expand or collapse the auxillary toolbar." +#: js/utils/musicutils.js:692 +msgid "Minor third" msgstr "" -#: js/turtledefs.js:676 -msgid "Run slow" +#: js/utils/musicutils.js:692 +msgid "Augmented second" msgstr "" -#: js/turtledefs.js:677 -msgid "Click to run the project in slow mode." +#: js/utils/musicutils.js:693 +msgid "Major third" msgstr "" -#: js/turtledefs.js:683 -msgid "Click to run the project step by step." +#: js/utils/musicutils.js:693 +msgid "Diminished fourth" msgstr "" -#: js/turtledefs.js:690 -msgid "Display statistics about your Music project." +#: js/utils/musicutils.js:694 +msgid "Perfect fourth" msgstr "" -#: js/turtledefs.js:697 -msgid "Delete a selected plugin." +#: js/utils/musicutils.js:694 +msgid "Augmented third" msgstr "" -#: js/turtledefs.js:704 -msgid "Enable scrolling" +#: js/utils/musicutils.js:695 +msgid "Diminished fifth" msgstr "" -#: js/turtledefs.js:705 -msgid "You can scroll the blocks on the canvas." +#: js/utils/musicutils.js:695 +msgid "Augmented fourth" msgstr "" -#: js/turtledefs.js:714 -msgid "Wrap Turtle" +#: js/utils/musicutils.js:696 +msgid "Perfect fifth" msgstr "" -#: js/turtledefs.js:715 -msgid "Turn Turtle wrapping On or Off." +#: js/utils/musicutils.js:696 +msgid "Diminished sixth" msgstr "" -#: js/turtledefs.js:725 -msgid "Restore blocks from the trash." +#: js/utils/musicutils.js:697 +msgid "Minor sixth" msgstr "" -#: js/turtledefs.js:732 -msgid "Switch mode" +#: js/utils/musicutils.js:697 +msgid "Augmented fifth" msgstr "" -#: js/turtledefs.js:733 -msgid "Switch between beginner and advance modes." +#: js/utils/musicutils.js:698 +msgid "Major sixth" msgstr "" -#: js/turtledefs.js:739 -msgid "Select your language preference." +#: js/utils/musicutils.js:698 +msgid "Diminished seventh" msgstr "" -#: js/turtledefs.js:745 -msgid "Keyboard shortcuts" +#: js/utils/musicutils.js:699 +msgid "Minor seventh" msgstr "" -#: js/turtledefs.js:746 -msgid "You can type d to create a do block and r to create a re block etc." +#: js/utils/musicutils.js:699 +msgid "Augmented sixth" msgstr "" -#: js/turtledefs.js:753 -msgid "Show these messages." +#: js/utils/musicutils.js:700 +msgid "Major seventh" msgstr "" -#: js/turtledefs.js:759 -#: js/turtledefs.js:790 -#: js/help.js:335 -msgid "Guide" +#: js/utils/musicutils.js:700 +msgid "Diminished octave" msgstr "" -#: js/turtledefs.js:760 -msgid "A detailed guide to Turtle Blocks is available." +#: js/utils/musicutils.js:701 +msgid "Perfect octave" msgstr "" -#: js/turtledefs.js:764 -msgid "Turtle Blocks Guide" +#: js/utils/musicutils.js:701 +msgid "Augmented seventh" msgstr "" -#: js/turtledefs.js:767 -#: js/turtledefs.js:798 -#: js/help.js:336 -msgid "About" +#: js/utils/musicutils.js:702 +msgid "Minor ninth" msgstr "" -#: js/turtledefs.js:768 -msgid "Turtle Blocks is an open source collection of tools for exploring musical concepts." +#: js/utils/musicutils.js:702 +msgid "Augmented octave" msgstr "" -#: js/turtledefs.js:770 -msgid "A full list of contributors can be found in the Turtle Blocks GitHub repository." +#: js/utils/musicutils.js:703 +msgid "Major ninth" msgstr "" -#: js/turtledefs.js:772 -msgid "Turtle Blocks is licensed under the AGPL." +#: js/utils/musicutils.js:703 +msgid "Diminished tenth" msgstr "" -#: js/turtledefs.js:780 -msgid "Turtle Blocks GitHub repository" +#: js/utils/musicutils.js:704 +msgid "Minor tenth" msgstr "" -#: js/turtledefs.js:783 -#: js/turtledefs.js:814 -#: js/help.js:337 -#: js/help.js:359 -msgid "Congratulations." +#: js/utils/musicutils.js:704 +msgid "Augmented ninth" msgstr "" -#: js/turtledefs.js:784 -msgid "You have finished the tour. Please enjoy Turtle Blocks!" +#: js/utils/musicutils.js:705 +msgid "Major tenth" msgstr "" -#: js/turtledefs.js:791 -msgid "A detailed guide to Music Blocks is available." +#: js/utils/musicutils.js:705 +msgid "Diminished eleventh" msgstr "" -#: js/turtledefs.js:795 -#: js/SaveInterface.js:76 -msgid "Music Blocks Guide" +#: js/utils/musicutils.js:706 +msgid "Perfect eleventh" msgstr "" -#: js/turtledefs.js:799 -msgid "Music Blocks is an open source collection of tools for exploring musical concepts." +#: js/utils/musicutils.js:706 +msgid "Augmented tenth" msgstr "" -#: js/turtledefs.js:801 -msgid "A full list of contributors can be found in the Music Blocks GitHub repository." +#: js/utils/musicutils.js:707 +msgid "Diminished twelfth" msgstr "" -#: js/turtledefs.js:803 -msgid "Music Blocks is licensed under the AGPL." +#: js/utils/musicutils.js:707 +msgid "Augmented eleventh" msgstr "" -#: js/turtledefs.js:811 -msgid "Music Blocks GitHub repository" +#: js/utils/musicutils.js:708 +msgid "Perfect twelfth" msgstr "" -#: js/turtledefs.js:815 -msgid "You have finished the tour. Please enjoy Music Blocks!" +#: js/utils/musicutils.js:708 +msgid "Diminished thirteenth" msgstr "" -#: js/activity.js:369 -msgid "Search for blocks" +#: js/utils/musicutils.js:709 +msgid "Minor thirteenth" msgstr "" -#: js/activity.js:1145 -msgid "Refresh your browser to change to advanced mode." +#: js/utils/musicutils.js:709 +msgid "Augmented fifth, plus an octave" msgstr "" -#: js/activity.js:1150 -msgid "Refresh your browser to change to beginner mode." +#: js/utils/musicutils.js:710 +msgid "Major thirteenth" msgstr "" -#: js/activity.js:1184 -msgid "Catching mice" +#: js/utils/musicutils.js:710 +msgid "Diminished seventh, plus an octave" msgstr "" -#: js/activity.js:1185 -msgid "Cleaning the instruments" +#: js/utils/musicutils.js:838 +#.TRANS: ordinal number. Please keep exactly one space between each number. +msgid "1st 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th" msgstr "" -#: js/activity.js:1186 -msgid "Testing key pieces" +#: js/utils/musicutils.js:1008 +#: js/utils/musicutils.js:1191 +#: js/utils/musicutils.js:1325 +#.TRANS: augmented is a music term related to intervals +msgid "augmented" msgstr "" -#: js/activity.js:1187 -msgid "Sight-reading" +#: js/utils/musicutils.js:1010 +#: js/utils/musicutils.js:1192 +#: js/utils/musicutils.js:1324 +#.TRANS: diminished is a music term related to intervals and mode +msgid "diminished" msgstr "" -#: js/activity.js:1188 -msgid "Combining math and music" +#: js/utils/musicutils.js:1016 +#: js/utils/musicutils.js:1322 +#: js/blocks/IntervalsBlocks.js:649 +#: js/turtleactions/IntervalsActions.js:120 +#: js/turtleactions/IntervalsActions.js:124 +#.TRANS: perfect is a music term related to intervals +msgid "perfect" +msgstr "" + +#: js/utils/musicutils.js:1018 +#.TRANS: twelve semi-tone scale for music +msgid "chromatic" msgstr "" -#: js/activity.js:1189 -msgid "Generating more blocks" +#: js/utils/musicutils.js:1019 +msgid "algerian" msgstr "" -#: js/activity.js:1190 -msgid "Do Re Mi Fa Sol La Ti Do" +#: js/utils/musicutils.js:1020 +msgid "spanish" msgstr "" -#: js/activity.js:1191 -msgid "Tuning string instruments" +#: js/utils/musicutils.js:1022 +#.TRANS: modal scale in music +msgid "octatonic" msgstr "" -#: js/activity.js:1192 -msgid "Pressing random keys" +#: js/utils/musicutils.js:1024 +#.TRANS: harmonic major scale in music +msgid "harmonic major" msgstr "" -#: js/activity.js:1351 -msgid "plugins will be removed upon restart." +#: js/utils/musicutils.js:1026 +#.TRANS: natural minor scales in music +msgid "natural minor" msgstr "" -#: js/activity.js:1360 -msgid "show Cartesian" +#: js/utils/musicutils.js:1028 +#.TRANS: harmonic minor scale in music +msgid "harmonic minor" msgstr "" -#: js/activity.js:1842 -msgid "output tools" +#: js/utils/musicutils.js:1030 +#.TRANS: melodic minor scale in music +msgid "melodic minor" msgstr "" -#: js/activity.js:1845 -msgid "custom note" +#: js/utils/musicutils.js:1034 +#.TRANS: modal scale for music +msgid "dorian" msgstr "" -#: js/activity.js:1848 -msgid "accidental name" +#: js/utils/musicutils.js:1036 +#.TRANS: modal scale for music +msgid "phrygian" msgstr "" -#: js/activity.js:1851 -#: js/PitchBlocks.js:855 -msgid "east indian solfege" +#: js/utils/musicutils.js:1038 +#.TRANS: modal scale for music +msgid "lydian" msgstr "" -#: js/activity.js:1854 -#: js/PitchBlocks.js:869 -msgid "note name" +#: js/utils/musicutils.js:1040 +#.TRANS: modal scale for music +msgid "mixolydian" msgstr "" -#: js/activity.js:1857 -#: js/IntervalsBlocks.js:94 -msgid "temperament name" +#: js/utils/musicutils.js:1044 +#.TRANS: modal scale for music +msgid "locrian" msgstr "" -#: js/activity.js:1863 -msgid "chord name" +#: js/utils/musicutils.js:1046 +#.TRANS: minor jazz scale for music +msgid "jazz minor" msgstr "" -#: js/activity.js:1869 -msgid "filter type" +#: js/utils/musicutils.js:1048 +#.TRANS: bebop scale for music +msgid "bebop" msgstr "" -#: js/activity.js:1872 -msgid "oscillator type" +#: js/utils/musicutils.js:1049 +msgid "arabic" msgstr "" -#: js/activity.js:1878 -#: js/DrumBlocks.js:32 -msgid "noise name" +#: js/utils/musicutils.js:1050 +msgid "byzantine" msgstr "" -#: js/activity.js:1881 -#: js/DrumBlocks.js:75 -msgid "drum name" +#: js/utils/musicutils.js:1052 +#.TRANS: musical scale for music by Verdi +msgid "enigmatic" msgstr "" -#: js/activity.js:1884 -#: js/DrumBlocks.js:119 -msgid "effects name" +#: js/utils/musicutils.js:1053 +msgid "ethiopian" msgstr "" -#: js/activity.js:1887 -msgid "wrap mode" +#: js/utils/musicutils.js:1055 +#.TRANS: Ethiopic scale for music +msgid "geez" msgstr "" -#: js/activity.js:1890 -msgid "load file" +#: js/utils/musicutils.js:1056 +msgid "hindu" msgstr "" -#: js/activity.js:2056 -msgid "This block is deprecated." +#: js/utils/musicutils.js:1057 +msgid "hungarian" msgstr "" -#: js/activity.js:2058 -msgid "Block cannot be found." +#: js/utils/musicutils.js:1059 +#.TRANS: minor Romanian scale for music +msgid "romanian minor" msgstr "" -#: js/activity.js:2266 -msgid "Saving block artwork" +#: js/utils/musicutils.js:1060 +msgid "spanish gypsy" msgstr "" -#: js/activity.js:2277 -msgid "Erase" +#: js/utils/musicutils.js:1062 +#.TRANS: musical scale for Mid-Eastern music +msgid "maqam" msgstr "" -#: js/activity.js:2301 -#: js/activity.js:2323 -msgid "Paste" +#: js/utils/musicutils.js:1064 +#.TRANS: minor blues scale for music +msgid "minor blues" msgstr "" -#: js/activity.js:2305 -msgid "Save block help" +#: js/utils/musicutils.js:1066 +#.TRANS: major blues scale for music +msgid "major blues" msgstr "" -#: js/activity.js:2390 -msgid "Jumping to the bottom of the page." +#: js/utils/musicutils.js:1067 +msgid "whole tone" msgstr "" -#: js/activity.js:2396 -msgid "Scrolling up." +#: js/utils/musicutils.js:1069 +#.TRANS: pentatonic is a general term that means "five note scale". This scale is typically known as "minor pentatonic" +msgid "minor pentatonic" msgstr "" -#: js/activity.js:2401 -msgid "Scrolling down." +#: js/utils/musicutils.js:1071 +#.TRANS: pentatonic is a general term that means "five note scale". This scale is typically known as "major pentatonic" +msgid "major pentatonic" msgstr "" -#: js/activity.js:2406 -msgid "Extracting block" +#: js/utils/musicutils.js:1072 +msgid "chinese" msgstr "" -#: js/activity.js:2414 -msgid "Moving block up." +#: js/utils/musicutils.js:1073 +msgid "egyptian" msgstr "" -#: js/activity.js:2435 -msgid "Moving block down." +#: js/utils/musicutils.js:1075 +#.TRANS: https://en.wikipedia.org/wiki/Hirajoshi_scale NOTE: There are three different versions of this scale +msgid "hirajoshi" msgstr "" -#: js/activity.js:2456 -msgid "Moving block left." +#: js/utils/musicutils.js:1076 +msgid "Japan" msgstr "" -#: js/activity.js:2473 -msgid "Moving block right." +#: js/utils/musicutils.js:1078 +#.TRANS: https://en.wikipedia.org/wiki/In_scale and https://en.wikipedia.org/wiki/Sakura_Sakura +msgid "in" msgstr "" -#: js/activity.js:2488 -msgid "Jump to home position." +#: js/utils/musicutils.js:1080 +#.TRANS: https://en.wikipedia.org/wiki/Miny%C5%8D_scale +msgid "minyo" msgstr "" -#: js/activity.js:2515 -msgid "Hide blocks" +#: js/utils/musicutils.js:1082 +#.TRANS: Italian mathematician +msgid "fibonacci" msgstr "" -#: js/activity.js:3389 -msgid "Click the run button to run the project." +#: js/utils/musicutils.js:1083 +#: js/utils/musicutils.js:1134 +#: js/utils/musicutils.js:1177 +#: js/utils/musicutils.js:1199 +#: js/utils/synthutils.js:134 +#: js/blocks/IntervalsBlocks.js:1124 +#: js/blocks/ToneBlocks.js:946 +#: js/blocks/VolumeBlocks.js:411 +#: js/blocks/WidgetBlocks.js:399 +#: js/blocks/WidgetBlocks.js:404 +#: js/turtleactions/VolumeActions.js:218 +#: js/widgets/modewidget.js:919 +#.TRANS: customize voice +msgid "custom" msgstr "" -#: js/activity.js:3456 -#: js/SaveInterface.js:131 -#: js/SaveInterface.js:204 -#: js/SaveInterface.js:262 -#: js/SaveInterface.js:389 -#: js/SaveInterface.js:417 -#: js/ProjectStorage.js:27 -#: js/GlobalPlanet.js:467 -#: js/GlobalPlanet.js:469 -#: js/GlobalPlanet.js:495 -#.TRANS: default project title when saving as Lilypond -msgid "My Project" +#: js/utils/musicutils.js:1085 +#: js/utils/musicutils.js:1531 +#: js/blocks/WidgetBlocks.js:176 +#.TRANS: highpass filter +msgid "highpass" msgstr "" -#: js/activity.js:4261 -msgid "Show/hide block" +#: js/utils/musicutils.js:1087 +#: js/utils/musicutils.js:1532 +#.TRANS: lowpass filter +msgid "lowpass" msgstr "" -#: js/activity.js:4263 -msgid "Expand/collapse blocks" +#: js/utils/musicutils.js:1089 +#: js/utils/musicutils.js:1533 +#.TRANS: bandpass filter +msgid "bandpass" msgstr "" -#: js/activity.js:4381 -msgid "Could not parse JSON input." +#: js/utils/musicutils.js:1091 +#: js/utils/musicutils.js:1534 +#.TRANS: high-shelf filter +msgid "highshelf" msgstr "" -#: js/activity.js:4684 -#: js/activity.js:4771 -#: js/activity.js:4821 -msgid "Cannot load project from the file. Please check the file type." +#: js/utils/musicutils.js:1093 +#: js/utils/musicutils.js:1535 +#.TRANS: low-shelf filter +msgid "lowshelf" msgstr "" -#: js/activity.js:5051 -msgid "Invalid parameters" +#: js/utils/musicutils.js:1095 +#: js/utils/musicutils.js:1536 +#.TRANS: notch-shelf filter +msgid "notch" msgstr "" -#: js/turtle-singer.js:1334 -#.TRANS: partials are weighted components in a harmonic series -msgid "You must have at least one Partial block inside of a Weighted-partial block" +#: js/utils/musicutils.js:1097 +#: js/utils/musicutils.js:1537 +#.TRANS: all-pass filter +msgid "allpass" msgstr "" -#: js/turtle-singer.js:2048 -msgid "synth cannot play chords." +#: js/utils/musicutils.js:1099 +#: js/utils/musicutils.js:1538 +#.TRANS: peaking filter +msgid "peaking" msgstr "" -#: js/lilypond.js:614 -msgid "brown rat" +#: js/utils/musicutils.js:1100 +#: js/utils/musicutils.js:1546 +#: js/utils/synthutils.js:126 +#: js/blocks/PitchBlocks.js:85 +#.TRANS: sine wave +msgid "sine" msgstr "" -#: js/lilypond.js:615 -msgid "mole" +#: js/utils/musicutils.js:1101 +#: js/utils/musicutils.js:1547 +#: js/utils/synthutils.js:128 +#: js/blocks/PitchBlocks.js:39 +#.TRANS: square wave +msgid "square" msgstr "" -#: js/lilypond.js:616 -msgid "chipmunk" +#: js/utils/musicutils.js:1102 +#: js/utils/musicutils.js:1548 +#: js/utils/synthutils.js:132 +#: js/blocks/PitchBlocks.js:62 +#: js/blocks/ToneBlocks.js:39 +#.TRANS: triangle wave +msgid "triangle" msgstr "" -#: js/lilypond.js:617 -msgid "red squirrel" +#: js/utils/musicutils.js:1103 +#: js/utils/musicutils.js:1549 +#: js/utils/synthutils.js:130 +#: js/blocks/PitchBlocks.js:108 +#.TRANS: sawtooth wave +msgid "sawtooth" msgstr "" -#: js/lilypond.js:618 -msgid "guinea pig" +#: js/utils/musicutils.js:1105 +#: js/utils/musicutils.js:1312 +#: js/blocks/PitchBlocks.js:931 +#: js/blocks/PitchBlocks.js:937 +#: js/turtleactions/PitchActions.js:469 +#.TRANS: even numbers +#.TRANS: invert based on even or odd number or musical scale +msgid "even" msgstr "" -#: js/lilypond.js:619 -msgid "capybara" +#: js/utils/musicutils.js:1107 +#: js/utils/musicutils.js:1313 +#: js/blocks/PitchBlocks.js:937 +#: js/turtleactions/PitchActions.js:471 +#.TRANS: odd numbers +msgid "odd" msgstr "" -#: js/lilypond.js:620 -msgid "coypu" +#: js/utils/musicutils.js:1108 +#: js/utils/musicutils.js:1314 +#: js/blocks/PitchBlocks.js:937 +#: js/turtleactions/PitchActions.js:473 +msgid "scalar" msgstr "" -#: js/lilypond.js:621 -msgid "black rat" +#: js/utils/musicutils.js:1109 +#: js/utils/synthutils.js:72 +#: js/blocks/VolumeBlocks.js:47 +#.TRANS: musical instrument +msgid "piano" msgstr "" -#: js/lilypond.js:622 -msgid "grey squirrel" +#: js/utils/musicutils.js:1110 +#: js/utils/synthutils.js:74 +#.TRANS: musical instrument +msgid "violin" msgstr "" -#: js/lilypond.js:623 -msgid "flying squirrel" +#: js/utils/musicutils.js:1111 +#: js/utils/synthutils.js:76 +#.TRANS: viola musical instrument +msgid "viola" msgstr "" -#: js/lilypond.js:624 -msgid "bat" +#: js/utils/musicutils.js:1112 +#: js/utils/synthutils.js:114 +#.TRANS: xylophone musical instrument +msgid "xylophone" msgstr "" -#: js/lilypond.js:757 -#: js/lilypond.js:921 -#: js/lilypond.js:959 -#: js/ActionBlocks.js:1256 -#: js/ExtrasBlocks.js:553 -msgid "start drum" +#: js/utils/musicutils.js:1113 +#: js/utils/synthutils.js:136 +#.TRANS: vibraphone musical instrument +msgid "vibraphone" msgstr "" -#: js/SaveInterface.js:59 -#: js/SaveInterface.js:61 -#: js/SaveInterface.js:93 -msgid "Music Blocks Project" +#: js/utils/musicutils.js:1114 +#: js/utils/synthutils.js:78 +#.TRANS: musical instrument +msgid "cello" msgstr "" -#: js/SaveInterface.js:63 -msgid "This project was created in Music Blocks" +#: js/utils/musicutils.js:1116 +#: js/utils/synthutils.js:82 +#.TRANS: viola musical instrument +msgid "double bass" msgstr "" -#: js/SaveInterface.js:67 -msgid "Music Blocks is a Free/Libre Software application." +#: js/utils/musicutils.js:1117 +#: js/utils/synthutils.js:84 +#: js/widgets/rhythmruler.js:2511 +#.TRANS: musical instrument +msgid "guitar" msgstr "" -#: js/SaveInterface.js:69 -msgid "The source code can be accessed at" +#: js/utils/musicutils.js:1118 +#: js/utils/synthutils.js:86 +#.TRANS: musical instrument +msgid "acoustic guitar" msgstr "" -#: js/SaveInterface.js:72 -msgid "For more information, please consult the" +#: js/utils/musicutils.js:1119 +#: js/utils/synthutils.js:88 +#.TRANS: musical instrument +msgid "flute" msgstr "" -#: js/SaveInterface.js:83 -msgid "Alternatively, open the file in Music Blocks using the Load project button." +#: js/utils/musicutils.js:1120 +#: js/utils/synthutils.js:90 +#.TRANS: musical instrument +msgid "clarinet" msgstr "" -#: js/SaveInterface.js:85 -msgid "Project Code" +#: js/utils/musicutils.js:1121 +#: js/utils/synthutils.js:92 +#.TRANS: musical instrument +msgid "saxophone" msgstr "" -#: js/SaveInterface.js:87 -msgid "This code stores data about the blocks in a project." +#: js/utils/musicutils.js:1122 +#: js/utils/synthutils.js:94 +#.TRANS: musical instrument +msgid "tuba" msgstr "" -#: js/SaveInterface.js:89 -msgid "Show" +#: js/utils/musicutils.js:1123 +#: js/utils/synthutils.js:96 +#.TRANS: musical instrument +msgid "trumpet" msgstr "" -#: js/SaveInterface.js:91 -msgid "Hide" +#: js/utils/musicutils.js:1124 +#: js/utils/synthutils.js:98 +#.TRANS: musical instrument +msgid "oboe" msgstr "" -#: js/SaveInterface.js:197 -#: js/SaveInterface.js:58 -msgid "No description provided" +#: js/utils/musicutils.js:1125 +#: js/utils/synthutils.js:100 +#.TRANS: musical instrument +msgid "trombone" msgstr "" -#: js/SaveInterface.js:332 -msgid "Your recording is in progress." +#: js/utils/musicutils.js:1126 +#: js/utils/synthutils.js:116 +#.TRANS: polytone synthesizer +msgid "electronic synth" msgstr "" -#: js/SaveInterface.js:401 -#.TRANS: File name prompt for save as Lilypond -msgid "File name" +#: js/utils/musicutils.js:1127 +#: js/utils/synthutils.js:118 +#.TRANS: simple monotone synthesizer +msgid "simple 1" msgstr "" -#: js/SaveInterface.js:403 -#: js/StringHelper.js:39 -#.TRANS: Project title prompt for save as Lilypond -msgid "Project title" +#: js/utils/musicutils.js:1128 +msgid "simple 2" msgstr "" -#: js/SaveInterface.js:405 -#.TRANS: Project title prompt for save as Lilypond -msgid "Project author" +#: js/utils/musicutils.js:1129 +msgid "simple 3" msgstr "" -#: js/SaveInterface.js:407 -#.TRANS: MIDI prompt for save as Lilypond -msgid "Include MIDI output?" +#: js/utils/musicutils.js:1130 +msgid "simple 4" msgstr "" -#: js/SaveInterface.js:409 -#.TRANS: Guitar prompt for save as Lilypond -msgid "Include guitar tablature output?" +#: js/utils/musicutils.js:1131 +#: js/utils/synthutils.js:58 +#: js/blocks/DrumBlocks.js:191 +#.TRANS: white noise synthesizer +msgid "white noise" msgstr "" -#: js/SaveInterface.js:411 -#.TRANS: Lilypond is a scripting language for generating sheet music -msgid "Save as Lilypond" +#: js/utils/musicutils.js:1132 +#: js/utils/synthutils.js:60 +#.TRANS: brown noise synthesizer +msgid "brown noise" msgstr "" -#: js/SaveInterface.js:426 -#: js/EnsembleBlocks.js:75 -#: js/EnsembleBlocks.js:154 -#: js/EnsembleBlocks.js:216 -#: js/EnsembleBlocks.js:302 -#: js/EnsembleBlocks.js:348 -#: js/EnsembleBlocks.js:389 -#: js/EnsembleBlocks.js:441 -#: js/EnsembleBlocks.js:490 -#: js/EnsembleBlocks.js:536 -#: js/EnsembleBlocks.js:583 -#: js/EnsembleBlocks.js:637 -#: js/EnsembleBlocks.js:753 -#: js/EnsembleBlocks.js:840 -#: js/EnsembleBlocks.js:899 -#: js/EnsembleBlocks.js:942 -#: js/EnsembleBlocks.js:1212 -#: js/EnsembleBlocks.js:1280 -#.TRANS: default project author when saving as Lilypond -msgid "Mr. Mouse" +#: js/utils/musicutils.js:1133 +#: js/utils/synthutils.js:62 +#.TRANS: pink noise synthesizer +msgid "pink noise" msgstr "" -#: js/SaveInterface.js:573 -msgid "The Lilypond code is copied to clipboard. You can paste it here: " +#: js/utils/musicutils.js:1135 +#: js/utils/synthutils.js:148 +#: js/widgets/rhythmruler.js:2057 +#: js/widgets/rhythmruler.js:2319 +#.TRANS: musical instrument +msgid "snare drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:50 -#: js/RhythmBlockPaletteBlocks.js:232 -#.TRANS: rhythm block -#.TRANS: translate "rhythm1" as rhythm -msgid "rhythm1" +#: js/utils/musicutils.js:1136 +#: js/utils/synthutils.js:150 +#.TRANS: musical instrument +msgid "kick drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:70 -#: js/RhythmBlockPaletteBlocks.js:251 -#: js/RhythmBlockPaletteBlocks.js:484 -#: js/RhythmBlockPaletteBlocks.js:553 -#: js/RhythmBlockPaletteBlocks.js:874 -msgid "number of notes" +#: js/utils/musicutils.js:1137 +#: js/utils/synthutils.js:152 +#.TRANS: musical instrument +msgid "tom tom" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:126 -msgid "polyphonic rhythm" +#: js/utils/musicutils.js:1138 +#: js/utils/synthutils.js:154 +#.TRANS: musical instrument +msgid "floor tom" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:218 -msgid "The Rhythm block is used to generate rhythm patterns." +#: js/utils/musicutils.js:1139 +#: js/utils/synthutils.js:156 +#.TRANS: musical instrument +msgid "bass drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:279 -msgid "1/64 note" +#: js/utils/musicutils.js:1140 +#: js/utils/synthutils.js:158 +#.TRANS: a drum made from an inverted cup +msgid "cup drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:303 -msgid "1/32 note" +#: js/utils/musicutils.js:1141 +#: js/utils/synthutils.js:160 +#.TRANS: musical instrument +msgid "darbuka drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:331 -msgid "1/16 note" +#: js/utils/musicutils.js:1142 +#: js/utils/synthutils.js:164 +#.TRANS: musical instrument +msgid "hi hat" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:359 -msgid "eighth note" +#: js/utils/musicutils.js:1143 +#: js/utils/synthutils.js:166 +#.TRANS: a small metal bell +msgid "ride bell" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:387 -msgid "quarter note" +#: js/utils/musicutils.js:1144 +#: js/utils/synthutils.js:168 +#.TRANS: musical instrument +msgid "cow bell" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:415 -msgid "half note" +#: js/utils/musicutils.js:1145 +msgid "japanese drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:443 -msgid "whole note" +#: js/utils/musicutils.js:1146 +#: js/utils/synthutils.js:174 +#.TRANS: musical instrument +msgid "japanese bell" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:481 -#: js/RhythmBlockPaletteBlocks.js:550 -#: js/RhythmBlockPaletteBlocks.js:601 -#.TRANS: A tuplet is a note value divided into irregular time values. -msgid "tuplet" +#: js/utils/musicutils.js:1147 +#: js/utils/synthutils.js:170 +#.TRANS: musical instrument +msgid "triangle bell" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:767 -msgid "septuplet" +#: js/utils/musicutils.js:1148 +#: js/utils/synthutils.js:172 +#.TRANS: musical instrument +msgid "finger cymbals" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:795 -msgid "quintuplet" +#: js/utils/musicutils.js:1149 +#: js/utils/synthutils.js:176 +#.TRANS: a musically tuned set of bells +msgid "chime" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:823 -msgid "triplet" +#: js/utils/musicutils.js:1150 +#: js/utils/synthutils.js:178 +#.TRANS: a musical instrument +msgid "gong" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:850 -msgid "simple tuplet" +#: js/utils/musicutils.js:1151 +#: js/utils/synthutils.js:180 +#.TRANS: sound effect +msgid "clang" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:860 -msgid "Tuplets are a collection of notes that get scaled to a specific duration." +#: js/utils/musicutils.js:1152 +#: js/utils/synthutils.js:182 +#.TRANS: sound effect +msgid "crash" msgstr "" -#: js/WidgetBlocks.js:71 -#.TRANS: sound envelope (ADSR) -msgid "envelope" +#: js/utils/musicutils.js:1153 +#: js/utils/synthutils.js:184 +#.TRANS: sound effect +msgid "bottle" msgstr "" -#: js/WidgetBlocks.js:79 -#.TRANS: Attack time is the time taken for initial run-up of level from nil to peak, beginning when the key is first pressed. -msgid "attack" +#: js/utils/musicutils.js:1154 +#: js/utils/synthutils.js:186 +#.TRANS: sound effect +msgid "clap" msgstr "" -#: js/WidgetBlocks.js:81 -#.TRANS: Decay time is the time taken for the subsequent run down from the attack level to the designated sustain level. -msgid "decay" +#: js/utils/musicutils.js:1155 +#: js/utils/synthutils.js:188 +#.TRANS: sound effect +msgid "slap" msgstr "" -#: js/WidgetBlocks.js:83 -#.TRANS: Sustain level is the level during the main sequence of the sound's duration, until the key is released. -msgid "sustain" +#: js/utils/musicutils.js:1156 +#: js/utils/synthutils.js:190 +#.TRANS: sound effect +msgid "splash" msgstr "" -#: js/WidgetBlocks.js:85 -#.TRANS: Release time is the time taken for the level to decay from the sustain level to zero after the key is released. -msgid "release" +#: js/utils/musicutils.js:1157 +#: js/utils/synthutils.js:192 +#.TRANS: sound effect +msgid "bubbles" msgstr "" -#: js/WidgetBlocks.js:96 -msgid "Attack value should be from 0 to 100." +#: js/utils/musicutils.js:1158 +#: js/utils/synthutils.js:194 +#.TRANS: sound effect +msgid "raindrop" msgstr "" -#: js/WidgetBlocks.js:99 -msgid "Decay value should be from 0 to 100." +#: js/utils/musicutils.js:1159 +#: js/utils/synthutils.js:196 +#.TRANS: animal sound effect +msgid "cat" msgstr "" -#: js/WidgetBlocks.js:102 -msgid "Sustain value should be from 0 to 100." +#: js/utils/musicutils.js:1160 +#: js/utils/synthutils.js:198 +#.TRANS: animal sound effect +msgid "cricket" msgstr "" -#: js/WidgetBlocks.js:105 -msgid "Release value should be from 0-100." +#: js/utils/musicutils.js:1161 +#: js/utils/synthutils.js:200 +#.TRANS: animal sound effect +msgid "dog" msgstr "" -#: js/WidgetBlocks.js:121 -msgid "You are adding multiple envelope blocks." +#: js/utils/musicutils.js:1163 +#: js/utils/synthutils.js:102 +#.TRANS: musical instrument +msgid "banjo" msgstr "" -#: js/WidgetBlocks.js:144 -#.TRANS: a filter removes some unwanted components from a signal -msgid "filter" +#: js/utils/musicutils.js:1164 +#: js/utils/synthutils.js:104 +#.TRANS: musical instrument +msgid "koto" msgstr "" -#: js/WidgetBlocks.js:149 -#: js/musicutils.js:706 -#: js/musicutils.js:1105 -#.TRANS: highpass filter -msgid "highpass" +#: js/utils/musicutils.js:1165 +#: js/utils/synthutils.js:106 +#.TRANS: musical instrument +msgid "dulcimer" msgstr "" -#: js/WidgetBlocks.js:152 -#: js/ToneBlocks.js:42 -#: js/timbre.js:1558 -#: js/timbre.js:1808 -#.TRANS: type of filter, e.g., lowpass, highpass, etc. -#.TRANS: there are different types (sine, triangle, square...) of oscillators. -msgid "type" +#: js/utils/musicutils.js:1166 +#: js/utils/synthutils.js:108 +#.TRANS: musical instrument +msgid "electric guitar" msgstr "" -#: js/WidgetBlocks.js:154 -#: js/timbre.js:1818 -#.TRANS: rolloff is the steepness of a change in frequency. -msgid "rolloff" +#: js/utils/musicutils.js:1167 +#: js/utils/synthutils.js:110 +#.TRANS: musical instrument +msgid "bassoon" msgstr "" -#: js/WidgetBlocks.js:155 -#: js/MediaBlocks.js:692 -#: js/temperament.js:382 -#: js/temperament.js:417 -#: js/temperament.js:477 -#: js/temperament.js:485 -#: js/temperament.js:1348 -#: js/timbre.js:1842 -msgid "frequency" +#: js/utils/musicutils.js:1168 +#: js/utils/synthutils.js:112 +#.TRANS: musical instrument +msgid "celeste" msgstr "" -#: js/WidgetBlocks.js:179 -#.TRANS: rolloff is the steepness of a change in frequency. -msgid "Rolloff value should be either -12, -24, -48, or -96 decibels/octave." +#: js/utils/musicutils.js:1170 +#: js/widgets/temperament.js:787 +#.TRANS: musical temperament +msgid "equal" msgstr "" -#: js/WidgetBlocks.js:211 -msgid "The Temperament tool is used to define custom tuning." +#: js/utils/musicutils.js:1172 +#.TRANS: musical temperament +msgid "Pythagorean" msgstr "" -#: js/WidgetBlocks.js:277 -#: js/sampler.js:329 -msgid "Upload a sample and adjust its pitch center." +#: js/utils/musicutils.js:1174 +#.TRANS: musical temperament +msgid "just intonation" msgstr "" -#: js/WidgetBlocks.js:284 -#.TRANS: the speed at music is should be played. -msgid "sampler" +#: js/utils/musicutils.js:1176 +#.TRANS: musical temperament +msgid "meantone" msgstr "" -#: js/WidgetBlocks.js:329 -#: js/WidgetBlocks.js:334 -#: js/IntervalsBlocks.js:928 -#: js/VolumeBlocks.js:411 -#: js/ToneBlocks.js:946 -#: js/VolumeActions.js:218 -#: js/musicutils.js:704 -#: js/musicutils.js:755 -#: js/musicutils.js:798 -#: js/musicutils.js:820 -#: js/musicutils.js:1136 -#: js/synthutils.js:118 -#: js/modewidget.js:919 -#.TRANS: customize voice -msgid "custom" +#: js/utils/musicutils.js:1193 +msgid "major 7th" msgstr "" -#: js/WidgetBlocks.js:432 -msgid "The Meter block opens a tool to select strong beats for the meter." +#: js/utils/musicutils.js:1194 +msgid "minor 7th" msgstr "" -#: js/WidgetBlocks.js:473 -msgid "The oscilloscope block opens a tool to visualize waveforms." +#: js/utils/musicutils.js:1195 +msgid "dominant 7th" msgstr "" -#: js/WidgetBlocks.js:478 -msgid "oscilloscope" +#: js/utils/musicutils.js:1196 +msgid "minor-major 7th" msgstr "" -#: js/WidgetBlocks.js:530 -msgid "The Custom mode block opens a tool to explore musical mode (the spacing of the notes in a scale)." +#: js/utils/musicutils.js:1197 +msgid "fully-diminished 7th" msgstr "" -#: js/WidgetBlocks.js:536 -#.TRANS: musical mode is the pattern of half-steps in an octave, e.g., Major or Minor modes -msgid "custom mode" +#: js/utils/musicutils.js:1198 +msgid "half-diminished 7th" msgstr "" -#: js/WidgetBlocks.js:570 -msgid "The Tempo block opens a metronome to visualize the beat." +#: js/utils/musicutils.js:1557 +#: js/utils/musicutils.js:1569 +msgid "Equal (12EDO)" msgstr "" -#: js/WidgetBlocks.js:617 -msgid "The Arpeggio Widget is used to compose chord sequences." +#: js/utils/musicutils.js:1558 +#: js/utils/musicutils.js:1570 +msgid "5-limit Just Intonation" msgstr "" -#: js/WidgetBlocks.js:623 -#: js/IntervalsBlocks.js:683 -msgid "arpeggio" +#: js/utils/musicutils.js:1559 +#: js/utils/musicutils.js:1571 +msgid "Pythagorean (3-limit JI)" msgstr "" -#: js/WidgetBlocks.js:677 -msgid "The Pitch drum matrix is used to map pitches to drum sounds." +#: js/utils/musicutils.js:1560 +#: js/utils/musicutils.js:1561 +#: js/utils/musicutils.js:1572 +#: js/utils/musicutils.js:1573 +msgid "Meantone" msgstr "" -#: js/WidgetBlocks.js:682 -#.TRANS: makes a mapping between pitches and drum sounds -msgid "pitch-drum mapper" +#: js/utils/musicutils.js:1574 +msgid "Custom" msgstr "" -#: js/WidgetBlocks.js:724 -msgid "You must have at least one pitch block and one drum block in the matrix." +#: js/utils/musicutils.js:5387 +#: js/utils/musicutils.js:5430 +msgid "current" msgstr "" -#: js/WidgetBlocks.js:746 -msgid "The Pitch slider tool to is used to generate pitches at selected frequencies." +#: js/utils/musicutils.js:5390 +#: js/utils/musicutils.js:5421 +msgid "next" msgstr "" -#: js/WidgetBlocks.js:751 -#.TRANS: widget to generate pitches using a slider -msgid "pitch slider" +#: js/utils/musicutils.js:5393 +#: js/utils/musicutils.js:5426 +msgid "previous" msgstr "" -#: js/WidgetBlocks.js:788 -msgid "chromatic keyboard" +#: js/utils/synthutils.js:120 +#.TRANS: simple monotone synthesizer +msgid "simple-2" msgstr "" -#: js/WidgetBlocks.js:815 -#: js/WidgetBlocks.js:874 -#.TRANS: widget to generate pitches using a slider -msgid "music keyboard" +#: js/utils/synthutils.js:122 +#.TRANS: simple monotone synthesizer +msgid "simple-3" msgstr "" -#: js/WidgetBlocks.js:859 -#: js/WidgetBlocks.js:866 -msgid "The Music keyboard block opens a piano keyboard that can be used to create notes." +#: js/utils/synthutils.js:124 +#.TRANS: simple monotone synthesizer +msgid "simple-4" msgstr "" -#: js/WidgetBlocks.js:910 -msgid "The Pitch staircase tool to is used to generate pitches from a given ratio." +#: js/utils/synthutils.js:162 +#.TRANS: musical instrument +msgid "taiko" msgstr "" -#: js/WidgetBlocks.js:917 -#.TRANS: generate a progressive sequence of pitches -msgid "pitch staircase" +#: js/blocks/ActionBlocks.js:58 +msgid "The Return block will return a value from an action." msgstr "" -#: js/WidgetBlocks.js:982 -msgid "The Rhythm Maker block opens a tool to create drum machines." +#: js/blocks/ActionBlocks.js:75 +msgid "return" msgstr "" -#: js/WidgetBlocks.js:1036 -msgid "G major scale" +#: js/blocks/ActionBlocks.js:128 +msgid "The Return to URL block will return a value to a webpage." msgstr "" -#: js/WidgetBlocks.js:1064 -msgid "C major scale" +#: js/blocks/ActionBlocks.js:145 +msgid "return to URL" msgstr "" -#: js/WidgetBlocks.js:1097 -msgid "The Phrase Maker block opens a tool to create musical phrases." +#: js/blocks/ActionBlocks.js:233 +#: js/blocks/ActionBlocks.js:290 +#: js/blocks/ActionBlocks.js:501 +#: js/blocks/ActionBlocks.js:688 +msgid "The Calculate block returns a value calculated by an action." msgstr "" -#: js/WidgetBlocks.js:1104 -#.TRANS: assigns pitch to a sequence of beats to generate a melody -msgid "phrase maker" +#: js/blocks/ActionBlocks.js:251 +#: js/blocks/ActionBlocks.js:517 +#: js/blocks/ActionBlocks.js:707 +msgid "calculate" msgstr "" -#: js/WidgetBlocks.js:1168 -msgid "You must have at least one pitch block and one rhythm block in the matrix." +#: js/blocks/ActionBlocks.js:376 +#: js/blocks/ActionBlocks.js:593 +#: js/blocks/ActionBlocks.js:942 +#: js/blocks/ActionBlocks.js:1389 +#.TRANS: do is the do something or take an action. +msgid "The Do block is used to initiate an action." msgstr "" -#: js/WidgetBlocks.js:1220 -msgid "The Status block opens a tool for inspecting the status of Music Blocks as it is running." +#: js/blocks/ActionBlocks.js:390 +#: js/blocks/ActionBlocks.js:610 +#: js/blocks/ActionBlocks.js:959 +#: js/blocks/ActionBlocks.js:1048 +#: js/blocks/MeterBlocks.js:769 +msgid "do1" msgstr "" -#: js/IntervalsBlocks.js:45 -msgid "set temperament" +#: js/blocks/ActionBlocks.js:390 +#: js/blocks/ActionBlocks.js:610 +#: js/blocks/ActionBlocks.js:959 +#: js/blocks/ActionBlocks.js:1048 +#: js/blocks/FlowBlocks.js:742 +#: js/blocks/FlowBlocks.js:822 +#: js/blocks/MeterBlocks.js:769 +msgid "do" msgstr "" -#: js/IntervalsBlocks.js:63 -#: js/MediaBlocks.js:746 -#: js/PitchBlocks.js:657 -#: js/PitchBlocks.js:933 -#: js/PitchBlocks.js:972 -#: js/PitchBlocks.js:1005 -#: js/PitchBlocks.js:1166 -#: js/PitchBlocks.js:1679 -#: js/PitchBlocks.js:1720 -#: js/PitchBlocks.js:1827 -#: js/ToneBlocks.js:1025 -#.TRANS: adjusts the shift up or down by one octave (twelve half-steps in the interval between two notes, one having twice or half the frequency in Hz of the other.) -msgid "octave" +#: js/blocks/ActionBlocks.js:791 +#: js/blocks/ActionBlocks.js:865 +msgid "The Arg block contains the value of an argument passed to an action." msgstr "" -#: js/IntervalsBlocks.js:99 -msgid "The Temperament name block is used to select a tuning method." +#: js/blocks/ActionBlocks.js:806 +#: js/blocks/ActionBlocks.js:878 +msgid "arg" msgstr "" -#: js/IntervalsBlocks.js:161 -msgid "doubly" +#: js/blocks/ActionBlocks.js:836 +#: js/blocks/ActionBlocks.js:900 +#: js/blocks/ActionBlocks.js:908 +msgid "Invalid argument" msgstr "" -#: js/IntervalsBlocks.js:166 -msgid "The Doubly block will double the size of an interval." +#: js/blocks/ActionBlocks.js:944 +msgid "In the example, it is used with the One of block to choose a random phase." msgstr "" -#: js/IntervalsBlocks.js:262 -msgid "interval number" +#: js/blocks/ActionBlocks.js:1019 +#: js/blocks/ActionBlocks.js:1026 +msgid "The Listen block is used to listen for an event such as a mouse click." msgstr "" -#: js/IntervalsBlocks.js:330 -#.TRANS: measure the distance between two pitches in semi-tones -msgid "semi-tone interval measure" +#: js/blocks/ActionBlocks.js:1028 +msgid "When the event happens, an action is taken." msgstr "" -#: js/IntervalsBlocks.js:397 -#: js/IntervalsBlocks.js:513 -msgid "You must use two pitch blocks when measuring an interval." +#: js/blocks/ActionBlocks.js:1045 +msgid "on" msgstr "" -#: js/IntervalsBlocks.js:439 -msgid "The Scalar interval block measures the distance between two notes in the current key and mode." +#: js/blocks/ActionBlocks.js:1048 +#: js/blocks/ActionBlocks.js:1049 +#: js/blocks/ActionBlocks.js:1153 +msgid "event" msgstr "" -#: js/IntervalsBlocks.js:445 -#.TRANS: measure the distance between two pitches in steps of musical scale -msgid "scalar interval measure" +#: js/blocks/ActionBlocks.js:1133 +msgid "The Broadcast block is used to trigger an event." msgstr "" -#: js/IntervalsBlocks.js:592 -#: js/musicutils.js:637 -#: js/musicutils.js:908 -#.TRANS: perfect is a music term related to intervals -msgid "perfect" +#: js/blocks/ActionBlocks.js:1151 +msgid "broadcast" msgstr "" -#: js/IntervalsBlocks.js:621 -msgid "In the figure, we add sol# to sol." +#: js/blocks/ActionBlocks.js:1208 +msgid "Each Start block is a separate voice." msgstr "" -#: js/IntervalsBlocks.js:627 -#: js/OrnamentBlocks.js:220 -#.TRANS: calculate a relative step between notes based on semi-tones -msgid "semi-tone interval" +#: js/blocks/ActionBlocks.js:1304 +msgid "It is often used for storing a phrase of music that is repeated." msgstr "" -#: js/IntervalsBlocks.js:676 -msgid "The output of the example is: do, mi, sol, sol, ti, mi" +#: js/blocks/ActionBlocks.js:1495 +msgid "define temperament" msgstr "" -#: js/IntervalsBlocks.js:735 -msgid "The Chord block calculates common chords." +#: js/blocks/BooleanBlocks.js:44 +msgid "The Not block is the logical not operator." msgstr "" -#: js/IntervalsBlocks.js:737 -msgid "In the figure, we generate a C-major chord." +#: js/blocks/BooleanBlocks.js:62 +msgid "not" msgstr "" -#: js/IntervalsBlocks.js:742 -msgid "chord" +#: js/blocks/BooleanBlocks.js:134 +msgid "The And block is the logical and operator." msgstr "" -#: js/IntervalsBlocks.js:794 -msgid "The Ratio Interval block calculates an interval based on a ratio." +#: js/blocks/BooleanBlocks.js:152 +msgid "and" msgstr "" -#: js/IntervalsBlocks.js:799 -msgid "ratio interval" +#: js/blocks/BooleanBlocks.js:218 +msgid "The Or block is the logical or operator." msgstr "" -#: js/IntervalsBlocks.js:868 -msgid "In the figure, we add la to sol." +#: js/blocks/BooleanBlocks.js:236 +msgid "or" msgstr "" -#: js/IntervalsBlocks.js:924 -#.TRANS: define a custom mode -msgid "define mode" +#: js/blocks/BooleanBlocks.js:302 +msgid "The XOR block is the logical XOR operator." msgstr "" -#: js/IntervalsBlocks.js:977 -msgid "movable Do" +#: js/blocks/BooleanBlocks.js:320 +msgid "xor" msgstr "" -#: js/IntervalsBlocks.js:1028 -#.TRANS: mode length is the number of notes in the mode, e.g., 7 for major and minor scales; 12 for chromatic scales -msgid "mode length" +#: js/blocks/BooleanBlocks.js:808 +msgid "The Equal block returns True if the two numbers are equal." msgstr "" -#: js/IntervalsBlocks.js:1037 -msgid "The Mode length block is the number of notes in the current scale." +#: js/blocks/BooleanBlocks.js:909 +msgid "The Not-equal-to block returns True if the two numbers are not equal to each other." msgstr "" -#: js/IntervalsBlocks.js:1039 -msgid "Most Western scales have 7 notes." +#: js/blocks/BooleanBlocks.js:1008 +msgid "The Boolean block is used to specify true or false." msgstr "" -#: js/IntervalsBlocks.js:1088 -#.TRANS: the mode in music is 'major', 'minor', etc. -msgid "current mode" +#: js/blocks/BoxesBlocks.js:53 +#: js/blocks/BoxesBlocks.js:59 +msgid "The Add-to block is used to add to the value stored in a box." msgstr "" -#: js/IntervalsBlocks.js:1141 -#.TRANS: the key is a group of pitches with which a music composition is created -msgid "current key" +#: js/blocks/BoxesBlocks.js:61 +msgid "It can also be used with other blocks such as Color and Pen size." msgstr "" -#: js/IntervalsBlocks.js:1193 -#: js/IntervalsBlocks.js:1238 -#.TRANS: set the key and mode, e.g. C Major -msgid "set key" +#: js/blocks/BoxesBlocks.js:73 +msgid "add" msgstr "" -#: js/IntervalsBlocks.js:1247 -#: js/IntervalsBlocks.js:1253 -msgid "The Set key block is used to set the key and mode," +#: js/blocks/BoxesBlocks.js:75 +#: js/widgets/temperament.js:857 +msgid "to" msgstr "" -#: js/IntervalsBlocks.js:1253 -msgid "eg C Major" +#: js/blocks/BoxesBlocks.js:75 +#: js/blocks/BoxesBlocks.js:595 +#: js/blocks/HeapBlocks.js:544 +msgid "value1" msgstr "" -#: js/IntervalsBlocks.js:1266 -#: js/DictBlocks.js:215 -#: js/DictBlocks.js:216 -#: js/DictBlocks.js:289 -#: js/DictBlocks.js:290 -#: js/DictBlocks.js:357 -#: js/DictBlocks.js:430 -#: js/DictBlocks.js:431 -#.TRANS: key, e.g., C in C Major -msgid "key" +#: js/blocks/BoxesBlocks.js:118 +msgid "Block does not support incrementing." msgstr "" -#: js/ActionBlocks.js:58 -msgid "The Return block will return a value from an action." +#: js/blocks/BoxesBlocks.js:152 +msgid "The Add-1-to block adds one to the value stored in a box." msgstr "" -#: js/ActionBlocks.js:75 -msgid "return" +#: js/blocks/BoxesBlocks.js:163 +msgid "add 1 to" msgstr "" -#: js/ActionBlocks.js:128 -msgid "The Return to URL block will return a value to a webpage." +#: js/blocks/BoxesBlocks.js:211 +msgid "The Subtract-1-from block subtracts one from the value stored in a box." msgstr "" -#: js/ActionBlocks.js:145 -msgid "return to URL" +#: js/blocks/BoxesBlocks.js:222 +msgid "subtract 1 from" msgstr "" -#: js/ActionBlocks.js:233 -#: js/ActionBlocks.js:290 -#: js/ActionBlocks.js:501 -#: js/ActionBlocks.js:688 -msgid "The Calculate block returns a value calculated by an action." +#: js/blocks/BoxesBlocks.js:270 +#: js/blocks/BoxesBlocks.js:387 +msgid "The Box block returns the value stored in a box." msgstr "" -#: js/ActionBlocks.js:251 -#: js/ActionBlocks.js:517 -#: js/ActionBlocks.js:707 -msgid "calculate" +#: js/blocks/BoxesBlocks.js:500 +#: js/blocks/BoxesBlocks.js:576 +msgid "The Store in block will store a value in a box." msgstr "" -#: js/ActionBlocks.js:376 -#: js/ActionBlocks.js:593 -#: js/ActionBlocks.js:942 -#: js/ActionBlocks.js:1389 -#.TRANS: do is the do something or take an action. -msgid "The Do block is used to initiate an action." +#: js/blocks/BoxesBlocks.js:595 +#: js/blocks/EnsembleBlocks.js:391 +#: js/blocks/EnsembleBlocks.js:402 +msgid "name1" msgstr "" -#: js/ActionBlocks.js:390 -#: js/ActionBlocks.js:610 -#: js/ActionBlocks.js:959 -#: js/ActionBlocks.js:1048 -#: js/MeterBlocks.js:769 -msgid "do1" +#: js/blocks/BoxesBlocks.js:652 +msgid "The Box2 block returns the value stored in Box2." msgstr "" -#: js/ActionBlocks.js:390 -#: js/ActionBlocks.js:610 -#: js/ActionBlocks.js:959 -#: js/ActionBlocks.js:1048 -#: js/FlowBlocks.js:742 -#: js/FlowBlocks.js:822 -#: js/MeterBlocks.js:769 -msgid "do" +#: js/blocks/BoxesBlocks.js:703 +msgid "The Store in Box2 block is used to store a value in Box2." msgstr "" -#: js/ActionBlocks.js:791 -#: js/ActionBlocks.js:865 -msgid "The Arg block contains the value of an argument passed to an action." +#: js/blocks/BoxesBlocks.js:715 +msgid "store in box2" msgstr "" -#: js/ActionBlocks.js:806 -#: js/ActionBlocks.js:878 -msgid "arg" +#: js/blocks/BoxesBlocks.js:761 +msgid "The Box1 block returns the value stored in Box1." msgstr "" -#: js/ActionBlocks.js:836 -#: js/ActionBlocks.js:900 -#: js/ActionBlocks.js:908 -msgid "Invalid argument" +#: js/blocks/BoxesBlocks.js:812 +msgid "The Store in Box1 block is used to store a value in Box1." msgstr "" -#: js/ActionBlocks.js:944 -msgid "In the example, it is used with the One of block to choose a random phase." +#: js/blocks/BoxesBlocks.js:826 +msgid "store in box1" msgstr "" -#: js/ActionBlocks.js:1019 -#: js/ActionBlocks.js:1026 -msgid "The Listen block is used to listen for an event such as a mouse click." +#: js/blocks/DictBlocks.js:77 +msgid "show dictionary" msgstr "" -#: js/ActionBlocks.js:1028 -msgid "When the event happens, an action is taken." +#: js/blocks/DictBlocks.js:80 +#: js/blocks/DictBlocks.js:145 +#: js/blocks/DictBlocks.js:216 +#: js/blocks/DictBlocks.js:290 +#: js/blocks/ProgramBlocks.js:396 +#: js/blocks/ProgramBlocks.js:501 +#: js/blocks/ProgramBlocks.js:664 +msgid "My Dictionary" msgstr "" -#: js/ActionBlocks.js:1045 -msgid "on" +#: js/blocks/DictBlocks.js:129 +msgid "The Dictionary block returns a dictionary." msgstr "" -#: js/ActionBlocks.js:1048 -#: js/ActionBlocks.js:1049 -#: js/ActionBlocks.js:1153 -msgid "event" +#: js/blocks/DictBlocks.js:197 +#: js/blocks/DictBlocks.js:339 +msgid "The Get-dict block returns a value in the dictionary for a specified key." msgstr "" -#: js/ActionBlocks.js:1133 -msgid "The Broadcast block is used to trigger an event." +#: js/blocks/DictBlocks.js:212 +#: js/blocks/DictBlocks.js:354 +#.TRANS: retrieve a value from the dictionary with a given key +msgid "get value" msgstr "" -#: js/ActionBlocks.js:1151 -msgid "broadcast" +#: js/blocks/DictBlocks.js:215 +#: js/blocks/DictBlocks.js:216 +#: js/blocks/DictBlocks.js:289 +#: js/blocks/DictBlocks.js:290 +#: js/blocks/DictBlocks.js:357 +#: js/blocks/DictBlocks.js:430 +#: js/blocks/DictBlocks.js:431 +msgid "key2" msgstr "" -#: js/ActionBlocks.js:1208 -msgid "Each Start block is a separate voice." +#: js/blocks/DictBlocks.js:215 +#: js/blocks/DictBlocks.js:216 +#: js/blocks/DictBlocks.js:289 +#: js/blocks/DictBlocks.js:290 +#: js/blocks/DictBlocks.js:357 +#: js/blocks/DictBlocks.js:430 +#: js/blocks/DictBlocks.js:431 +#: js/blocks/IntervalsBlocks.js:1462 +#.TRANS: key, e.g., C in C Major +msgid "key" msgstr "" -#: js/ActionBlocks.js:1304 -msgid "It is often used for storing a phrase of music that is repeated." +#: js/blocks/DictBlocks.js:271 +#: js/blocks/DictBlocks.js:411 +msgid "The Set-dict block sets a value in the dictionary for a specified key." msgstr "" -#: js/ActionBlocks.js:1495 -msgid "define temperament" +#: js/blocks/DictBlocks.js:286 +#: js/blocks/DictBlocks.js:427 +#.TRANS: set a value in the dictionary for a given key +msgid "set value" msgstr "" -#: js/EnsembleBlocks.js:66 +#: js/blocks/EnsembleBlocks.js:66 msgid "mouse index heap" msgstr "" -#: js/EnsembleBlocks.js:68 +#: js/blocks/EnsembleBlocks.js:68 msgid "The Mouse index heap block returns a value in the heap at a specified location for a specified mouse." msgstr "" -#: js/EnsembleBlocks.js:77 -#: js/EnsembleBlocks.js:1080 +#: js/blocks/EnsembleBlocks.js:77 +#: js/blocks/EnsembleBlocks.js:1080 msgid "mouse name" msgstr "" -#: js/EnsembleBlocks.js:77 -#: js/EnsembleBlocks.js:92 -#: js/HeapBlocks.js:544 +#: js/blocks/EnsembleBlocks.js:77 +#: js/blocks/EnsembleBlocks.js:92 +#: js/blocks/HeapBlocks.js:544 #.TRANS: value1 is a numeric value (JAPANESE ONLY) msgid "index" msgstr "" -#: js/EnsembleBlocks.js:80 +#: js/blocks/EnsembleBlocks.js:80 msgid "turtle index heap" msgstr "" -#: js/EnsembleBlocks.js:82 +#: js/blocks/EnsembleBlocks.js:82 msgid "The Turtle index heap block returns a value in the heap at a specified location for a specified turtle." msgstr "" -#: js/EnsembleBlocks.js:90 -#: js/EnsembleBlocks.js:167 -#: js/EnsembleBlocks.js:230 -#: js/EnsembleBlocks.js:316 -#: js/EnsembleBlocks.js:362 -#: js/EnsembleBlocks.js:400 -#: js/EnsembleBlocks.js:454 -#: js/EnsembleBlocks.js:504 -#: js/EnsembleBlocks.js:550 -#: js/EnsembleBlocks.js:597 -#: js/EnsembleBlocks.js:651 -#: js/EnsembleBlocks.js:763 -#: js/EnsembleBlocks.js:854 -#: js/EnsembleBlocks.js:915 -#: js/EnsembleBlocks.js:955 -#: js/EnsembleBlocks.js:1219 -#: js/EnsembleBlocks.js:1293 +#: js/blocks/EnsembleBlocks.js:90 +#: js/blocks/EnsembleBlocks.js:167 +#: js/blocks/EnsembleBlocks.js:230 +#: js/blocks/EnsembleBlocks.js:316 +#: js/blocks/EnsembleBlocks.js:362 +#: js/blocks/EnsembleBlocks.js:400 +#: js/blocks/EnsembleBlocks.js:454 +#: js/blocks/EnsembleBlocks.js:504 +#: js/blocks/EnsembleBlocks.js:550 +#: js/blocks/EnsembleBlocks.js:597 +#: js/blocks/EnsembleBlocks.js:651 +#: js/blocks/EnsembleBlocks.js:763 +#: js/blocks/EnsembleBlocks.js:854 +#: js/blocks/EnsembleBlocks.js:915 +#: js/blocks/EnsembleBlocks.js:955 +#: js/blocks/EnsembleBlocks.js:1219 +#: js/blocks/EnsembleBlocks.js:1293 #.TRANS: Yertle is the name of a turtle. msgid "Yertle" msgstr "" -#: js/EnsembleBlocks.js:92 -#: js/EnsembleBlocks.js:1089 +#: js/blocks/EnsembleBlocks.js:92 +#: js/blocks/EnsembleBlocks.js:1089 msgid "turtle name" msgstr "" -#: js/EnsembleBlocks.js:122 -#: js/EnsembleBlocks.js:1197 -#: js/HeapBlocks.js:474 -#: js/HeapBlocks.js:572 +#: js/blocks/EnsembleBlocks.js:122 +#: js/blocks/EnsembleBlocks.js:1197 +#: js/blocks/HeapBlocks.js:474 +#: js/blocks/HeapBlocks.js:572 msgid "Index must be > 0." msgstr "" -#: js/EnsembleBlocks.js:127 -#: js/HeapBlocks.js:479 -#: js/HeapBlocks.js:577 +#: js/blocks/EnsembleBlocks.js:127 +#: js/blocks/HeapBlocks.js:479 +#: js/blocks/HeapBlocks.js:577 msgid "Maximum heap size is 1000." msgstr "" -#: js/EnsembleBlocks.js:145 +#: js/blocks/EnsembleBlocks.js:145 msgid "stop mouse" msgstr "" -#: js/EnsembleBlocks.js:147 +#: js/blocks/EnsembleBlocks.js:147 msgid "The Stop mouse block stops the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:158 +#: js/blocks/EnsembleBlocks.js:158 msgid "stop turtle" msgstr "" -#: js/EnsembleBlocks.js:160 +#: js/blocks/EnsembleBlocks.js:160 msgid "The Stop turtle block stops the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:184 -#: js/EnsembleBlocks.js:247 -#: js/EnsembleBlocks.js:413 -#: js/EnsembleBlocks.js:468 -#: js/EnsembleBlocks.js:706 -#: js/EnsembleBlocks.js:808 -#: js/EnsembleBlocks.js:870 -#: js/EnsembleBlocks.js:1190 -#: js/EnsembleBlocks.js:1253 +#: js/blocks/EnsembleBlocks.js:184 +#: js/blocks/EnsembleBlocks.js:247 +#: js/blocks/EnsembleBlocks.js:413 +#: js/blocks/EnsembleBlocks.js:468 +#: js/blocks/EnsembleBlocks.js:706 +#: js/blocks/EnsembleBlocks.js:808 +#: js/blocks/EnsembleBlocks.js:870 +#: js/blocks/EnsembleBlocks.js:1190 +#: js/blocks/EnsembleBlocks.js:1253 msgid "Cannot find mouse" msgstr "" -#: js/EnsembleBlocks.js:186 -#: js/EnsembleBlocks.js:249 -#: js/EnsembleBlocks.js:415 -#: js/EnsembleBlocks.js:470 -#: js/EnsembleBlocks.js:708 -#: js/EnsembleBlocks.js:810 -#: js/EnsembleBlocks.js:872 -#: js/EnsembleBlocks.js:1192 -#: js/EnsembleBlocks.js:1255 +#: js/blocks/EnsembleBlocks.js:186 +#: js/blocks/EnsembleBlocks.js:249 +#: js/blocks/EnsembleBlocks.js:415 +#: js/blocks/EnsembleBlocks.js:470 +#: js/blocks/EnsembleBlocks.js:708 +#: js/blocks/EnsembleBlocks.js:810 +#: js/blocks/EnsembleBlocks.js:872 +#: js/blocks/EnsembleBlocks.js:1192 +#: js/blocks/EnsembleBlocks.js:1255 msgid "Cannot find turtle" msgstr "" -#: js/EnsembleBlocks.js:206 +#: js/blocks/EnsembleBlocks.js:206 msgid "start mouse" msgstr "" -#: js/EnsembleBlocks.js:209 +#: js/blocks/EnsembleBlocks.js:209 msgid "The Start mouse block starts the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:220 +#: js/blocks/EnsembleBlocks.js:220 msgid "start turtle" msgstr "" -#: js/EnsembleBlocks.js:223 +#: js/blocks/EnsembleBlocks.js:223 msgid "The Start turtle block starts the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:256 +#: js/blocks/EnsembleBlocks.js:256 msgid "Mouse is already running." msgstr "" -#: js/EnsembleBlocks.js:258 +#: js/blocks/EnsembleBlocks.js:258 msgid "Turtle is already running." msgstr "" -#: js/EnsembleBlocks.js:282 +#: js/blocks/EnsembleBlocks.js:282 msgid "Cannot find start block" msgstr "" -#: js/EnsembleBlocks.js:292 +#: js/blocks/EnsembleBlocks.js:292 #.TRANS: pen color for this mouse msgid "mouse color" msgstr "" -#: js/EnsembleBlocks.js:294 +#: js/blocks/EnsembleBlocks.js:294 msgid "The Mouse color block returns the pen color of the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:306 +#: js/blocks/EnsembleBlocks.js:306 #.TRANS: pen color for this turtle msgid "turtle color" msgstr "" -#: js/EnsembleBlocks.js:308 +#: js/blocks/EnsembleBlocks.js:308 msgid "The Turtle color block returns the pen color of the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:338 +#: js/blocks/EnsembleBlocks.js:338 #.TRANS: heading (compass direction) for this mouse msgid "mouse heading" msgstr "" -#: js/EnsembleBlocks.js:340 +#: js/blocks/EnsembleBlocks.js:340 msgid "The Mouse heading block returns the heading of the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:352 +#: js/blocks/EnsembleBlocks.js:352 #.TRANS: heading (compass direction) for this turtle msgid "turtle heading" msgstr "" -#: js/EnsembleBlocks.js:354 +#: js/blocks/EnsembleBlocks.js:354 msgid "The Turtle heading block returns the heading of the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:384 -#: js/EnsembleBlocks.js:439 +#: js/blocks/EnsembleBlocks.js:384 +#: js/blocks/EnsembleBlocks.js:439 #.TRANS: set xy position for this mouse msgid "set mouse" msgstr "" -#: js/EnsembleBlocks.js:391 -#: js/EnsembleBlocks.js:402 -#: js/BoxesBlocks.js:595 -msgid "name1" -msgstr "" - -#: js/EnsembleBlocks.js:391 -#: js/EnsembleBlocks.js:402 -#: js/ProgramBlocks.js:881 -#: js/GraphicsBlocks.js:235 -#: js/GraphicsBlocks.js:313 -#: js/GraphicsBlocks.js:436 -#: js/GraphicsBlocks.js:487 -#: js/GraphicsBlocks.js:534 -#: js/GraphicsBlocks.js:750 +#: js/blocks/EnsembleBlocks.js:391 +#: js/blocks/EnsembleBlocks.js:402 +#: js/blocks/GraphicsBlocks.js:235 +#: js/blocks/GraphicsBlocks.js:313 +#: js/blocks/GraphicsBlocks.js:436 +#: js/blocks/GraphicsBlocks.js:487 +#: js/blocks/GraphicsBlocks.js:534 +#: js/blocks/GraphicsBlocks.js:750 +#: js/blocks/ProgramBlocks.js:881 msgid "x" msgstr "" -#: js/EnsembleBlocks.js:391 -#: js/EnsembleBlocks.js:402 -#: js/ProgramBlocks.js:881 -#: js/GraphicsBlocks.js:149 -#: js/GraphicsBlocks.js:313 -#: js/GraphicsBlocks.js:436 -#: js/GraphicsBlocks.js:487 -#: js/GraphicsBlocks.js:534 -#: js/GraphicsBlocks.js:750 +#: js/blocks/EnsembleBlocks.js:391 +#: js/blocks/EnsembleBlocks.js:402 +#: js/blocks/GraphicsBlocks.js:149 +#: js/blocks/GraphicsBlocks.js:313 +#: js/blocks/GraphicsBlocks.js:436 +#: js/blocks/GraphicsBlocks.js:487 +#: js/blocks/GraphicsBlocks.js:534 +#: js/blocks/GraphicsBlocks.js:750 +#: js/blocks/ProgramBlocks.js:881 msgid "y" msgstr "" -#: js/EnsembleBlocks.js:395 -#: js/EnsembleBlocks.js:452 +#: js/blocks/EnsembleBlocks.js:395 +#: js/blocks/EnsembleBlocks.js:452 #.TRANS: set xy position for this turtle msgid "set turtle" msgstr "" -#: js/EnsembleBlocks.js:433 +#: js/blocks/EnsembleBlocks.js:433 msgid "The Set mouse block sends a stack of blocks to be run by the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:446 +#: js/blocks/EnsembleBlocks.js:446 msgid "The Set turtle block sends a stack of blocks to be run by the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:480 +#: js/blocks/EnsembleBlocks.js:480 #.TRANS: y position for this mouse msgid "mouse y" msgstr "" -#: js/EnsembleBlocks.js:482 +#: js/blocks/EnsembleBlocks.js:482 msgid "The Y mouse block returns the Y position of the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:494 +#: js/blocks/EnsembleBlocks.js:494 #.TRANS: y position for this turtle msgid "turtle y" msgstr "" -#: js/EnsembleBlocks.js:496 +#: js/blocks/EnsembleBlocks.js:496 msgid "The Y turtle block returns the Y position of the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:526 +#: js/blocks/EnsembleBlocks.js:526 #.TRANS: x position for this mouse msgid "mouse x" msgstr "" -#: js/EnsembleBlocks.js:528 +#: js/blocks/EnsembleBlocks.js:528 msgid "The X mouse block returns the X position of the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:540 +#: js/blocks/EnsembleBlocks.js:540 #.TRANS: x position for this turtle msgid "turtle x" msgstr "" -#: js/EnsembleBlocks.js:542 +#: js/blocks/EnsembleBlocks.js:542 msgid "The X turtle block returns the X position of the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:573 +#: js/blocks/EnsembleBlocks.js:573 #.TRANS: notes played by this mouse msgid "mouse notes played" msgstr "" -#: js/EnsembleBlocks.js:575 +#: js/blocks/EnsembleBlocks.js:575 msgid "The Mouse elapse notes block returns the number of notes played by the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:587 +#: js/blocks/EnsembleBlocks.js:587 #.TRANS: notes played by this turtle msgid "turtle notes played" msgstr "" -#: js/EnsembleBlocks.js:589 +#: js/blocks/EnsembleBlocks.js:589 msgid "The Turtle elapse notes block returns the number of notes played by the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:627 +#: js/blocks/EnsembleBlocks.js:627 #.TRANS: convert current note for this turtle to piano key (1-88) msgid "mouse pitch number" msgstr "" -#: js/EnsembleBlocks.js:629 +#: js/blocks/EnsembleBlocks.js:629 msgid "The Mouse pitch block returns the current pitch number being played by the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:641 +#: js/blocks/EnsembleBlocks.js:641 #.TRANS: convert current note for this turtle to piano key (1-88) msgid "turtle pitch number" msgstr "" -#: js/EnsembleBlocks.js:643 -msgid "The Turrle pitch block returns the current pitch number being played by the specified turtle." +#: js/blocks/EnsembleBlocks.js:643 +msgid "The Turtle pitch block returns the current pitch number being played by the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:747 -#: js/EnsembleBlocks.js:819 +#: js/blocks/EnsembleBlocks.js:747 +#: js/blocks/EnsembleBlocks.js:819 #.TRANS: note value is the duration of the note played by this mouse msgid "mouse note value" msgstr "" -#: js/EnsembleBlocks.js:757 +#: js/blocks/EnsembleBlocks.js:757 #.TRANS: note value is the duration of the note played by this turtle msgid "turtle note value" msgstr "" -#: js/EnsembleBlocks.js:830 +#: js/blocks/EnsembleBlocks.js:830 #.TRANS: sync is short for synchronization msgid "mouse sync" msgstr "" -#: js/EnsembleBlocks.js:832 +#: js/blocks/EnsembleBlocks.js:832 msgid "The Mouse sync block aligns the beat count between mice." msgstr "" -#: js/EnsembleBlocks.js:844 +#: js/blocks/EnsembleBlocks.js:844 #.TRANS: sync is short for synchronization msgid "turtle sync" msgstr "" -#: js/EnsembleBlocks.js:846 +#: js/blocks/EnsembleBlocks.js:846 msgid "The Turtle sync block aligns the beat count between turtles." msgstr "" -#: js/EnsembleBlocks.js:887 +#: js/blocks/EnsembleBlocks.js:887 msgid "The Found mouse block will return true if the specified mouse can be found." msgstr "" -#: js/EnsembleBlocks.js:893 +#: js/blocks/EnsembleBlocks.js:893 msgid "found mouse" msgstr "" -#: js/EnsembleBlocks.js:903 +#: js/blocks/EnsembleBlocks.js:903 msgid "The Found turtle block will return true if the specified turtle can be found." msgstr "" -#: js/EnsembleBlocks.js:909 +#: js/blocks/EnsembleBlocks.js:909 msgid "found turtle" msgstr "" -#: js/EnsembleBlocks.js:932 +#: js/blocks/EnsembleBlocks.js:932 msgid "new mouse" msgstr "" -#: js/EnsembleBlocks.js:934 +#: js/blocks/EnsembleBlocks.js:934 msgid "The New mouse block will create a new mouse." msgstr "" -#: js/EnsembleBlocks.js:945 +#: js/blocks/EnsembleBlocks.js:945 msgid "new turtle" msgstr "" -#: js/EnsembleBlocks.js:947 +#: js/blocks/EnsembleBlocks.js:947 msgid "The New turtle block will create a new turtle." msgstr "" -#: js/EnsembleBlocks.js:1011 +#: js/blocks/EnsembleBlocks.js:1011 msgid "set mouse color" msgstr "" -#: js/EnsembleBlocks.js:1014 +#: js/blocks/EnsembleBlocks.js:1014 msgid "The Set-mouse-color block is used to set the color of a mouse." msgstr "" -#: js/EnsembleBlocks.js:1020 +#: js/blocks/EnsembleBlocks.js:1020 msgid "set turtle color" msgstr "" -#: js/EnsembleBlocks.js:1023 +#: js/blocks/EnsembleBlocks.js:1023 msgid "The Set-turtle-color block is used to set the color of a turtle." msgstr "" -#: js/EnsembleBlocks.js:1083 +#: js/blocks/EnsembleBlocks.js:1083 msgid "The Mouse-name block returns the name of a mouse." msgstr "" -#: js/EnsembleBlocks.js:1092 +#: js/blocks/EnsembleBlocks.js:1092 msgid "The Turtle-name block returns the name of a turtle." msgstr "" -#: js/EnsembleBlocks.js:1115 +#: js/blocks/EnsembleBlocks.js:1115 msgid "mouse count" msgstr "" -#: js/EnsembleBlocks.js:1118 +#: js/blocks/EnsembleBlocks.js:1118 msgid "The Mouse-count block returns the number of mice." msgstr "" -#: js/EnsembleBlocks.js:1124 +#: js/blocks/EnsembleBlocks.js:1124 msgid "turtle count" msgstr "" -#: js/EnsembleBlocks.js:1127 +#: js/blocks/EnsembleBlocks.js:1127 msgid "The Turtle-count block returns the number of turtles." msgstr "" -#: js/EnsembleBlocks.js:1149 +#: js/blocks/EnsembleBlocks.js:1149 msgid "nth mouse name" msgstr "" -#: js/EnsembleBlocks.js:1152 +#: js/blocks/EnsembleBlocks.js:1152 msgid "The Nth-Mouse name block returns the name of the nth mouse." msgstr "" -#: js/EnsembleBlocks.js:1158 +#: js/blocks/EnsembleBlocks.js:1158 msgid "nth turtle name" msgstr "" -#: js/EnsembleBlocks.js:1161 +#: js/blocks/EnsembleBlocks.js:1161 msgid "The Nth-Turtle name block returns the name of the nth turtle." msgstr "" -#: js/EnsembleBlocks.js:1205 -#: js/EnsembleBlocks.js:1265 +#: js/blocks/EnsembleBlocks.js:1205 +#: js/blocks/EnsembleBlocks.js:1265 msgid "set name" msgstr "" -#: js/EnsembleBlocks.js:1214 -#: js/EnsembleBlocks.js:1221 +#: js/blocks/EnsembleBlocks.js:1214 +#: js/blocks/EnsembleBlocks.js:1221 msgid "source" msgstr "" -#: js/EnsembleBlocks.js:1214 -#: js/EnsembleBlocks.js:1221 +#: js/blocks/EnsembleBlocks.js:1214 +#: js/blocks/EnsembleBlocks.js:1221 msgid "target" msgstr "" -#: js/EnsembleBlocks.js:1271 +#: js/blocks/EnsembleBlocks.js:1271 msgid "The Set-name block is used to name a mouse." msgstr "" -#: js/EnsembleBlocks.js:1284 +#: js/blocks/EnsembleBlocks.js:1284 msgid "The Set-name block is used to name a turtle." msgstr "" -#: js/BooleanBlocks.js:44 -msgid "The Not block is the logical not operator." -msgstr "" - -#: js/BooleanBlocks.js:62 -msgid "not" -msgstr "" - -#: js/BooleanBlocks.js:134 -msgid "The And block is the logical and operator." -msgstr "" - -#: js/BooleanBlocks.js:152 -msgid "and" -msgstr "" - -#: js/BooleanBlocks.js:218 -msgid "The Or block is the logical or operator." -msgstr "" - -#: js/BooleanBlocks.js:236 -msgid "or" -msgstr "" - -#: js/BooleanBlocks.js:302 -msgid "The XOR block is the logical XOR operator." -msgstr "" - -#: js/BooleanBlocks.js:320 -msgid "xor" -msgstr "" - -#: js/BooleanBlocks.js:808 -msgid "The Equal block returns True if the two numbers are equal." -msgstr "" - -#: js/BooleanBlocks.js:909 -msgid "The Not-equal-to block returns True if the two numbers are not equal to each other." -msgstr "" - -#: js/BooleanBlocks.js:1008 -msgid "The Boolean block is used to specify true or false." -msgstr "" - -#: js/MediaBlocks.js:35 -#.TRANS: right side of the screen -msgid "right (screen)" -msgstr "" - -#: js/MediaBlocks.js:45 -#: js/MediaBlocks.js:56 -msgid "The Right block returns the position of the right of the canvas." -msgstr "" - -#: js/MediaBlocks.js:97 -#.TRANS: left side of the screen -msgid "left (screen)" -msgstr "" - -#: js/MediaBlocks.js:107 -#: js/MediaBlocks.js:118 -msgid "The Left block returns the position of the left of the canvas." -msgstr "" - -#: js/MediaBlocks.js:158 -msgid "top (screen)" -msgstr "" - -#: js/MediaBlocks.js:168 -#: js/MediaBlocks.js:179 -msgid "The Top block returns the position of the top of the canvas." -msgstr "" - -#: js/MediaBlocks.js:219 -msgid "bottom (screen)" +#: js/blocks/ExtrasBlocks.js:33 +msgid "fraction" msgstr "" -#: js/MediaBlocks.js:229 -#: js/MediaBlocks.js:240 -msgid "The Bottom block returns the position of the bottom of the canvas." +#: js/blocks/ExtrasBlocks.js:36 +msgid "Convert a float to a fraction" msgstr "" -#: js/MediaBlocks.js:282 -msgid "width" +#: js/blocks/ExtrasBlocks.js:93 +msgid "save as ABC" msgstr "" -#: js/MediaBlocks.js:291 -msgid "The Width block returns the width of the canvas." +#: js/blocks/ExtrasBlocks.js:96 +#: js/blocks/ExtrasBlocks.js:132 +#: js/blocks/ExtrasBlocks.js:168 +msgid "title" msgstr "" -#: js/MediaBlocks.js:325 -msgid "height" +#: js/blocks/ExtrasBlocks.js:129 +msgid "save as Lilypond" msgstr "" -#: js/MediaBlocks.js:334 -msgid "The Height block returns the height of the canvas." +#: js/blocks/ExtrasBlocks.js:165 +msgid "save as SVG" msgstr "" -#: js/MediaBlocks.js:369 -#.TRANS: stops playback of an audio recording -msgid "stop play" +#: js/blocks/ExtrasBlocks.js:216 +msgid "no background" msgstr "" -#: js/MediaBlocks.js:404 -#.TRANS: Erases the images and text -msgid "erase media" +#: js/blocks/ExtrasBlocks.js:219 +msgid "The No background block eliminates the background from the saved SVG output." msgstr "" -#: js/MediaBlocks.js:409 -msgid "The Erase Media block erases text and images." +#: js/blocks/ExtrasBlocks.js:247 +msgid "show blocks" msgstr "" -#: js/MediaBlocks.js:439 -#.TRANS: play an audio recording -msgid "play back" +#: js/blocks/ExtrasBlocks.js:249 +msgid "The Show blocks block shows the blocks." msgstr "" -#: js/MediaBlocks.js:487 -msgid "speak" +#: js/blocks/ExtrasBlocks.js:274 +msgid "hide blocks" msgstr "" -#: js/MediaBlocks.js:495 -msgid "The Speak block outputs to the text-to-speech synthesizer" +#: js/blocks/ExtrasBlocks.js:276 +msgid "The Hide blocks block hides the blocks." msgstr "" -#: js/MediaBlocks.js:546 -msgid "camera" +#: js/blocks/ExtrasBlocks.js:305 +#: js/blocks/ExtrasBlocks.js:338 +msgid "The Space block is used to add space between blocks." msgstr "" -#: js/MediaBlocks.js:551 -msgid "The Camera block connects a webcam to the Show block." +#: js/blocks/ExtrasBlocks.js:376 +msgid "wait" msgstr "" -#: js/MediaBlocks.js:574 -msgid "video" +#: js/blocks/ExtrasBlocks.js:379 +msgid "The Wait block pauses the program for a specified number of seconds." msgstr "" -#: js/MediaBlocks.js:579 -msgid "The Video block selects video for use with the Show block." +#: js/blocks/ExtrasBlocks.js:433 +#: plugins/facebook.rtp:30 +msgid "comment" msgstr "" -#: js/MediaBlocks.js:607 -msgid "The Open file block opens a file for use with the Show block." +#: js/blocks/ExtrasBlocks.js:469 +msgid "print" msgstr "" -#: js/MediaBlocks.js:645 -msgid "stop media" +#: js/blocks/ExtrasBlocks.js:476 +msgid "The Print block displays text at the top of the screen." msgstr "" -#: js/MediaBlocks.js:650 -msgid "The Stop media block stops audio or video playback." +#: js/blocks/ExtrasBlocks.js:582 +msgid "display grid" msgstr "" -#: js/MediaBlocks.js:679 -#: js/PitchBlocks.js:1539 -#: js/phrasemaker.js:822 -#: js/musickeyboard.js:1654 -#.TRANS: a measure of frequency: one cycle per second -msgid "hertz" +#: js/blocks/ExtrasBlocks.js:587 +msgid "The Display Grid Block changes the grid type" msgstr "" -#: js/MediaBlocks.js:692 -msgid "duration (ms)" +#: js/blocks/ExtrasBlocks.js:689 +#: js/blocks/ExtrasBlocks.js:708 +#: js/blocks/ExtrasBlocks.js:731 +#: js/blocks/ExtrasBlocks.js:754 +#: js/blocks/ExtrasBlocks.js:772 +#: js/blocks/ExtrasBlocks.js:791 +#: js/blocks/ExtrasBlocks.js:810 +#: js/blocks/ExtrasBlocks.js:829 +msgid "unknown" msgstr "" -#: js/MediaBlocks.js:728 -#.TRANS: translate a note into hertz, e.g., A4 -> 440HZ -msgid "note to frequency" +#: js/blocks/FlowBlocks.js:41 +msgid "The Backward block runs code in reverse order (Musical retrograde)." msgstr "" -#: js/MediaBlocks.js:736 -msgid "The To frequency block converts a pitch name and octave to Hertz." +#: js/blocks/FlowBlocks.js:48 +msgid "backward" msgstr "" -#: js/MediaBlocks.js:746 -#: js/PitchBlocks.js:656 -#: js/PitchBlocks.js:932 -#: js/PitchBlocks.js:1827 -#.TRANS: name2 is name as in name of pitch (JAPANESE ONLY) -msgid "name2" +#: js/blocks/FlowBlocks.js:124 +msgid "The Duplicate block will run each block multiple times." msgstr "" -#: js/MediaBlocks.js:812 -msgid "The Avatar block is used to change the appearance of the mouse." +#: js/blocks/FlowBlocks.js:136 +msgid "duplicate" msgstr "" -#: js/MediaBlocks.js:819 -msgid "The Avatar block is used to change the appearance of the turtle." +#: js/blocks/FlowBlocks.js:334 +msgid "The Default block is used inside of a Switch to define the default action." msgstr "" -#: js/MediaBlocks.js:831 -#: js/MediaBlocks.js:891 -#.TRANS: a media object -msgid "size" +#: js/blocks/FlowBlocks.js:342 +msgid "default" msgstr "" -#: js/MediaBlocks.js:831 -msgid "image" +#: js/blocks/FlowBlocks.js:361 +#: js/blocks/FlowBlocks.js:418 +msgid "The Case Block must be used inside of a Switch Block." msgstr "" -#: js/MediaBlocks.js:880 -msgid "The Show block is used to display text or images on the canvas." +#: js/blocks/FlowBlocks.js:389 +msgid "The Case block is used inside of a Switch to define matches." msgstr "" -#: js/MediaBlocks.js:888 -#.TRANS: show1 is show as in display an image or text on the screen. -msgid "show1" +#: js/blocks/FlowBlocks.js:397 +msgid "case" msgstr "" -#: js/MediaBlocks.js:891 -msgid "obj" +#: js/blocks/FlowBlocks.js:446 +msgid "The Switch block will run the code in the matching Case." msgstr "" -#: js/MediaBlocks.js:938 -msgid "The Media block is used to import an image." +#: js/blocks/FlowBlocks.js:454 +msgid "switch" msgstr "" -#: js/MediaBlocks.js:973 -msgid "The Text block holds a text string." +#: js/blocks/FlowBlocks.js:595 +msgid "The Stop block will stop a loop" msgstr "" -#: js/ProgramBlocks.js:33 -msgid "The Load-heap-from-app block loads the heap from a web page." +#: js/blocks/FlowBlocks.js:597 +msgid "Forever, Repeat, While, or Until." msgstr "" -#: js/ProgramBlocks.js:44 -#.TRANS: load the heap contents from a URL -msgid "load heap from App" +#: js/blocks/FlowBlocks.js:604 +#: js/widgets/timbre.js:417 +#: js/widgets/timbre.js:419 +#: js/widgets/musickeyboard.js:819 +#: js/widgets/musickeyboard.js:821 +#: js/widgets/phrasemaker.js:4202 +#: plugins/rodi.rtp:29 +#: plugins/rodi.rtp:73 +#: plugins/rodi.rtp:413 +msgid "stop" msgstr "" -#: js/ProgramBlocks.js:95 -msgid "Error parsing JSON data:" +#: js/blocks/FlowBlocks.js:653 +msgid "The Waitfor block will wait until the condition is true." msgstr "" -#: js/ProgramBlocks.js:100 -msgid "404: Page not found" +#: js/blocks/FlowBlocks.js:661 +msgid "wait for" msgstr "" -#: js/ProgramBlocks.js:133 -msgid "The Save-heap-to-app block saves the heap to a web page." +#: js/blocks/FlowBlocks.js:732 +msgid "The Until block will repeat until the condition is true." msgstr "" -#: js/ProgramBlocks.js:144 -#.TRANS: save the heap contents to a URL -msgid "save heap to App" +#: js/blocks/FlowBlocks.js:740 +msgid "until" msgstr "" -#: js/ProgramBlocks.js:189 -msgid "Cannot find a valid heap for" +#: js/blocks/FlowBlocks.js:742 +#: js/blocks/FlowBlocks.js:822 +msgid "do2" msgstr "" -#: js/ProgramBlocks.js:206 -msgid "The Load-heap block loads the heap from a file." +#: js/blocks/FlowBlocks.js:812 +msgid "The While block will repeat while the condition is true." msgstr "" -#: js/ProgramBlocks.js:217 -#.TRANS: load the heap from a file -msgid "load heap" +#: js/blocks/FlowBlocks.js:820 +msgid "while" msgstr "" -#: js/ProgramBlocks.js:270 -msgid "The file you selected does not contain a valid heap." +#: js/blocks/FlowBlocks.js:903 +#: js/blocks/FlowBlocks.js:968 +#: js/blocks/FlowBlocks.js:979 +msgid "In this example if the mouse button is pressed a snare drum will play." msgstr "" -#: js/ProgramBlocks.js:275 -msgid "The loadHeap block needs a loadFile block." +#: js/blocks/FlowBlocks.js:925 +#: js/blocks/FlowBlocks.js:988 +msgid "if" msgstr "" -#: js/ProgramBlocks.js:291 -msgid "The Set-heap block loads the heap." +#: js/blocks/FlowBlocks.js:927 +#: js/blocks/FlowBlocks.js:990 +msgid "then" msgstr "" -#: js/ProgramBlocks.js:299 -#: js/HeapBlocks.js:539 -#.TRANS: load the heap from a JSON encoding -msgid "set heap" +#: js/blocks/FlowBlocks.js:927 +msgid "else" msgstr "" -#: js/ProgramBlocks.js:340 -msgid "The block you selected does not contain a valid heap." +#: js/blocks/FlowBlocks.js:1025 +msgid "The Forever block will repeat the contained blocks forever." msgstr "" -#: js/ProgramBlocks.js:343 -msgid "The Set heap block needs a heap." +#: js/blocks/FlowBlocks.js:1037 +msgid "forever" msgstr "" -#: js/ProgramBlocks.js:360 -msgid "The Load-dictionary block loads a dictionary from a file." +#: js/blocks/FlowBlocks.js:1073 +msgid "The Repeat block will repeat the contained blocks." msgstr "" -#: js/ProgramBlocks.js:372 -#.TRANS: load a dictionary from a file -msgid "load dictionary" +#: js/blocks/FlowBlocks.js:1075 +msgid "In this example the note will be played 4 times." msgstr "" -#: js/ProgramBlocks.js:390 -#: js/ProgramBlocks.js:658 -#: js/ToneBlocks.js:1025 -msgid "file" +#: js/blocks/FlowBlocks.js:1083 +msgid "repeat" msgstr "" -#: js/ProgramBlocks.js:396 -#: js/ProgramBlocks.js:501 -#: js/ProgramBlocks.js:664 -#: js/DictBlocks.js:80 -#: js/DictBlocks.js:145 -#: js/DictBlocks.js:216 -#: js/DictBlocks.js:290 -msgid "My Dictionary" +#: js/blocks/FlowBlocks.js:1123 +msgid "duplicate factor" msgstr "" -#: js/ProgramBlocks.js:444 -msgid "The file you selected does not contain a valid dictionary." +#: js/blocks/HeapBlocks.js:49 +msgid "The Heap block returns the heap." msgstr "" -#: js/ProgramBlocks.js:449 -msgid "The load dictionary block needs a load file block." +#: js/blocks/HeapBlocks.js:133 +msgid "show heap" msgstr "" -#: js/ProgramBlocks.js:466 -msgid "The Set-dictionary block loads a dictionary." +#: js/blocks/HeapBlocks.js:181 +msgid "The Heap-length block returns the length of the heap." msgstr "" -#: js/ProgramBlocks.js:477 -#.TRANS: load a dictionary from a JSON -msgid "set dictionary" +#: js/blocks/HeapBlocks.js:195 +msgid "heap length" msgstr "" -#: js/ProgramBlocks.js:546 -msgid "The block you selected does not contain a valid dictionary." +#: js/blocks/HeapBlocks.js:254 +msgid "The Heap-empty? block returns true if the heap is empty." msgstr "" -#: js/ProgramBlocks.js:550 -msgid "The set dictionary block needs a dictionary." +#: js/blocks/HeapBlocks.js:268 +#.TRANS: Is the heap empty? +msgid "heap empty?" msgstr "" -#: js/ProgramBlocks.js:567 -msgid "The Save-heap block saves the heap to a file." +#: js/blocks/HeapBlocks.js:317 +msgid "The Empty-heap block empties the heap." msgstr "" -#: js/ProgramBlocks.js:578 -#.TRANS: save the heap to a file -msgid "save heap" +#: js/blocks/HeapBlocks.js:327 +#: js/blocks/HeapBlocks.js:647 +#.TRANS: empty the heap +msgid "empty heap" msgstr "" -#: js/ProgramBlocks.js:629 -msgid "The Save-dictionary block saves a dictionary to a file." +#: js/blocks/HeapBlocks.js:371 +msgid "The Reverse-heap block reverses the order of the heap." msgstr "" -#: js/ProgramBlocks.js:640 -#.TRANS: save a dictionary to a file -msgid "save dictionary" +#: js/blocks/HeapBlocks.js:384 +#.TRANS: reverse the order of the heap +msgid "reverse heap" msgstr "" -#: js/ProgramBlocks.js:720 -msgid "The Open palette block opens a palette." +#: js/blocks/HeapBlocks.js:428 +msgid "The Index-heap block returns a value in the heap at a specified location." msgstr "" -#: js/ProgramBlocks.js:727 -msgid "open palette" +#: js/blocks/HeapBlocks.js:443 +#.TRANS: retrieve a value from the heap at index position in the heap +msgid "index heap" msgstr "" -#: js/ProgramBlocks.js:785 -msgid "The Delete block block removes a block." +#: js/blocks/HeapBlocks.js:523 +msgid "The Set-heap entry block sets a value in he heap at the specified location." msgstr "" -#: js/ProgramBlocks.js:797 -#.TRANS: Move this block to the trash. -msgid "delete block" +#: js/blocks/HeapBlocks.js:539 +#: js/blocks/ProgramBlocks.js:299 +#.TRANS: load the heap from a JSON encoding +msgid "set heap" msgstr "" -#: js/ProgramBlocks.js:861 -msgid "The Move block block moves a block." +#: js/blocks/HeapBlocks.js:619 +msgid "The Pop block removes the value at the top of the heap." msgstr "" -#: js/ProgramBlocks.js:869 -#.TRANS: Move the position of a block on the screen. -msgid "move block" +#: js/blocks/HeapBlocks.js:633 +#.TRANS: pop a value off the top of the heap +msgid "pop" msgstr "" -#: js/ProgramBlocks.js:881 -#: js/ProgramBlocks.js:1048 -msgid "block number" +#: js/blocks/HeapBlocks.js:680 +msgid "The Push block adds a value to the top of the heap." msgstr "" -#: js/ProgramBlocks.js:935 -#.TRANS: Run program beginning at this block. -msgid "run block" +#: js/blocks/HeapBlocks.js:696 +#.TRANS: push a value onto the top of the heap +msgid "push" msgstr "" -#: js/ProgramBlocks.js:1025 -msgid "The Dock block block connections two blocks." +#: js/blocks/IntervalsBlocks.js:45 +msgid "set temperament" msgstr "" -#: js/ProgramBlocks.js:1036 -#.TRANS: We can connect a block to another block. -msgid "connect blocks" +#: js/blocks/IntervalsBlocks.js:63 +#: js/blocks/MediaBlocks.js:746 +#: js/blocks/PitchBlocks.js:657 +#: js/blocks/PitchBlocks.js:935 +#: js/blocks/PitchBlocks.js:974 +#: js/blocks/PitchBlocks.js:1007 +#: js/blocks/PitchBlocks.js:1194 +#: js/blocks/PitchBlocks.js:1717 +#: js/blocks/PitchBlocks.js:1758 +#: js/blocks/PitchBlocks.js:1866 +#: js/blocks/ToneBlocks.js:1025 +#: js/turtleactions/IntervalsActions.js:114 +#.TRANS: adjusts the shift up or down by one octave (twelve half-steps in the interval between two notes, one having twice or half the frequency in Hz of the other.) +msgid "octave" msgstr "" -#: js/ProgramBlocks.js:1048 -msgid "target block" +#: js/blocks/IntervalsBlocks.js:99 +msgid "The Temperament name block is used to select a tuning method." msgstr "" -#: js/ProgramBlocks.js:1048 -msgid "connection number" +#: js/blocks/IntervalsBlocks.js:161 +msgid "doubly" msgstr "" -#: js/ProgramBlocks.js:1140 -msgid "The Make block block creates a new block." +#: js/blocks/IntervalsBlocks.js:166 +msgid "The Doubly block will double the size of an interval." msgstr "" -#: js/ProgramBlocks.js:1152 -#.TRANS: Create a new block -msgid "make block" +#: js/blocks/IntervalsBlocks.js:262 +msgid "interval number" msgstr "" -#: js/ProgramBlocks.js:1186 -#: js/ProgramBlocks.js:1227 -#: js/RhythmBlocks.js:1128 -#: js/PitchBlocks.js:972 -#: js/PitchBlocks.js:1005 -#: js/temperament.js:340 -#: js/temperament.js:362 -#: js/temperament.js:372 -#: js/temperament.js:484 -#: js/status.js:190 -#: plugins/rodi.rtp:192 -#.TRANS: a musical note consisting of pitch and duration -msgid "note" +#: js/blocks/IntervalsBlocks.js:317 +msgid "current interval" msgstr "" -#: js/ProgramBlocks.js:1285 -msgid "Cannot find block" +#: js/blocks/IntervalsBlocks.js:387 +#.TRANS: measure the distance between two pitches in semi-tones +msgid "semi-tone interval measure" msgstr "" -#: js/ProgramBlocks.js:1304 -#: js/ProgramBlocks.js:1313 -msgid "Warning: block argument type mismatch" +#: js/blocks/IntervalsBlocks.js:454 +#: js/blocks/IntervalsBlocks.js:570 +msgid "You must use two pitch blocks when measuring an interval." msgstr "" -#: js/ProgramBlocks.js:1347 -msgid "The Open project block is used to open a project from a web page." +#: js/blocks/IntervalsBlocks.js:496 +msgid "The Scalar interval block measures the distance between two notes in the current key and mode." msgstr "" -#: js/ProgramBlocks.js:1357 -msgid "open project" +#: js/blocks/IntervalsBlocks.js:502 +#.TRANS: measure the distance between two pitches in steps of musical scale +msgid "scalar interval measure" msgstr "" -#: js/ProgramBlocks.js:1410 -msgid "Please enter a valid URL." +#: js/blocks/IntervalsBlocks.js:678 +msgid "In the figure, we add sol# to sol." msgstr "" -#: js/DrumBlocks.js:59 -msgid "The Noise name block is used to select a noise synthesizer." +#: js/blocks/IntervalsBlocks.js:684 +#: js/blocks/OrnamentBlocks.js:220 +#.TRANS: calculate a relative step between notes based on semi-tones +msgid "semi-tone interval" msgstr "" -#: js/DrumBlocks.js:102 -msgid "The Drum name block is used to select a drum." +#: js/blocks/IntervalsBlocks.js:733 +msgid "The output of the example is: do, mi, sol, sol, ti, mi" msgstr "" -#: js/DrumBlocks.js:146 -msgid "The Effects name block is used to select a sound effect." +#: js/blocks/IntervalsBlocks.js:740 +#: js/blocks/WidgetBlocks.js:768 +msgid "arpeggio" msgstr "" -#: js/DrumBlocks.js:163 -msgid "noise" +#: js/blocks/IntervalsBlocks.js:931 +msgid "The Chord block calculates common chords." msgstr "" -#: js/DrumBlocks.js:177 -msgid "The Play noise block will generate white, pink, or brown noise." +#: js/blocks/IntervalsBlocks.js:933 +msgid "In the figure, we generate a C-major chord." msgstr "" -#: js/DrumBlocks.js:191 -#: js/musicutils.js:752 -#: js/synthutils.js:47 -#.TRANS: white noise synthesizer -msgid "white noise" +#: js/blocks/IntervalsBlocks.js:938 +msgid "chord" msgstr "" -#: js/DrumBlocks.js:326 -msgid "Replace every instance of a pitch with a drum sound." +#: js/blocks/IntervalsBlocks.js:990 +msgid "The Ratio Interval block calculates an interval based on a ratio." msgstr "" -#: js/DrumBlocks.js:337 -#.TRANS: map a pitch to a drum sound -msgid "map pitch to drum" +#: js/blocks/IntervalsBlocks.js:995 +msgid "ratio interval" msgstr "" -#: js/DrumBlocks.js:404 -msgid "In the example above, a kick drum sound will be played instead of sol." +#: js/blocks/IntervalsBlocks.js:1064 +msgid "In the figure, we add la to sol." msgstr "" -#: js/DrumBlocks.js:416 -#.TRANS: set the current drum sound for playback -msgid "set drum" +#: js/blocks/IntervalsBlocks.js:1120 +#.TRANS: define a custom mode +msgid "define mode" msgstr "" -#: js/DrumBlocks.js:460 -msgid "sound effect" +#: js/blocks/IntervalsBlocks.js:1173 +msgid "movable Do" msgstr "" -#: js/DrumBlocks.js:498 -msgid "You can use multiple Drum blocks within a Note block." +#: js/blocks/IntervalsBlocks.js:1224 +#.TRANS: mode length is the number of notes in the mode, e.g., 7 for major and minor scales; 12 for chromatic scales +msgid "mode length" msgstr "" -#: js/RhythmBlocks.js:182 -#: js/RhythmBlocks.js:1086 -#: js/RhythmBlocks.js:1162 -msgid "Note value must be greater than 0." +#: js/blocks/IntervalsBlocks.js:1233 +msgid "The Mode length block is the number of notes in the current scale." msgstr "" -#: js/RhythmBlocks.js:215 -#: js/RhythmBlocks.js:278 -#: js/RhythmBlocks.js:350 -#.TRANS: swing is a rhythmic variation that emphasises the offbeat -msgid "swing" +#: js/blocks/IntervalsBlocks.js:1235 +msgid "Most Western scales have 7 notes." msgstr "" -#: js/RhythmBlocks.js:355 -#.TRANS: the amount to shift to the offbeat note -msgid "swing value" +#: js/blocks/IntervalsBlocks.js:1284 +#.TRANS: the mode in music is 'major', 'minor', etc. +msgid "current mode" msgstr "" -#: js/RhythmBlocks.js:419 -msgid "The Skip notes block will cause notes to be skipped." +#: js/blocks/IntervalsBlocks.js:1337 +#.TRANS: the key is a group of pitches with which a music composition is created +msgid "current key" msgstr "" -#: js/RhythmBlocks.js:427 -#.TRANS: substitute rests on notes being skipped -msgid "skip notes" +#: js/blocks/IntervalsBlocks.js:1389 +#: js/blocks/IntervalsBlocks.js:1434 +#.TRANS: set the key and mode, e.g. C Major +msgid "set key" msgstr "" -#: js/RhythmBlocks.js:489 -#.TRANS: speed up note duration by some factor, e.g. convert 1/4 to 1/8 notes by using a factor of 2 -msgid "multiply note value" +#: js/blocks/IntervalsBlocks.js:1443 +#: js/blocks/IntervalsBlocks.js:1449 +msgid "The Set key block is used to set the key and mode," msgstr "" -#: js/RhythmBlocks.js:542 -msgid "The Tie block works on pairs of notes, combining them into one note." +#: js/blocks/IntervalsBlocks.js:1449 +msgid "eg C Major" msgstr "" -#: js/RhythmBlocks.js:550 -#.TRANS: tie notes together into one longer note -msgid "tie" +#: js/blocks/MediaBlocks.js:35 +#.TRANS: right side of the screen +msgid "right (screen)" msgstr "" -#: js/RhythmBlocks.js:591 -#: js/RhythmBlocks.js:671 -#.TRANS: a dotted note is played for 1.5x its value, e.g., 1/8. --> 3/16 -msgid "dot" +#: js/blocks/MediaBlocks.js:45 +#: js/blocks/MediaBlocks.js:56 +msgid "The Right block returns the position of the right of the canvas." msgstr "" -#: js/RhythmBlocks.js:619 -#: js/RhythmActions.js:221 -msgid "An argument of -1 results in a note value of 0." +#: js/blocks/MediaBlocks.js:97 +#.TRANS: left side of the screen +msgid "left (screen)" msgstr "" -#: js/RhythmBlocks.js:661 -msgid "The Dot block extends the duration of a note by 50%." +#: js/blocks/MediaBlocks.js:107 +#: js/blocks/MediaBlocks.js:118 +msgid "The Left block returns the position of the left of the canvas." msgstr "" -#: js/RhythmBlocks.js:663 -msgid "Eg a dotted quarter note will play for 3/8 (1/4 + 1/8) of a beat." +#: js/blocks/MediaBlocks.js:158 +msgid "top (screen)" msgstr "" -#: js/RhythmBlocks.js:765 -#.TRANS: Japanese only: note value block for drum -msgid "note value drum" +#: js/blocks/MediaBlocks.js:168 +#: js/blocks/MediaBlocks.js:179 +msgid "The Top block returns the position of the top of the canvas." msgstr "" -#: js/RhythmBlocks.js:829 -msgid "392 hertz" +#: js/blocks/MediaBlocks.js:219 +msgid "bottom (screen)" msgstr "" -#: js/RhythmBlocks.js:1119 -msgid "The Note block is a container for one or more Pitch blocks." +#: js/blocks/MediaBlocks.js:229 +#: js/blocks/MediaBlocks.js:240 +msgid "The Bottom block returns the position of the bottom of the canvas." msgstr "" -#: js/RhythmBlocks.js:1121 -msgid "The Note block specifies the duration (note value) of its contents." +#: js/blocks/MediaBlocks.js:282 +msgid "width" msgstr "" -#: js/RhythmBlocks.js:1130 -msgid "value2" +#: js/blocks/MediaBlocks.js:291 +msgid "The Width block returns the width of the canvas." msgstr "" -#: js/RhythmBlocks.js:1200 -msgid "define frequency" +#: js/blocks/MediaBlocks.js:325 +msgid "height" msgstr "" -#: js/RhythmBlocks.js:1218 -#: js/temperament.js:650 -#: js/temperament.js:1421 -msgid "octave space" +#: js/blocks/MediaBlocks.js:334 +msgid "The Height block returns the height of the canvas." msgstr "" -#: js/NumberBlocks.js:28 -msgid "The Int block returns an integer." +#: js/blocks/MediaBlocks.js:369 +#.TRANS: stops playback of an audio recording +msgid "stop play" msgstr "" -#: js/NumberBlocks.js:34 -msgid "int" +#: js/blocks/MediaBlocks.js:404 +#.TRANS: Erases the images and text +msgid "erase media" msgstr "" -#: js/NumberBlocks.js:73 -msgid "The Mod block returns the remainder from a division." +#: js/blocks/MediaBlocks.js:409 +msgid "The Erase Media block erases text and images." msgstr "" -#: js/NumberBlocks.js:79 -msgid "mod" +#: js/blocks/MediaBlocks.js:439 +#.TRANS: play an audio recording +msgid "play back" msgstr "" -#: js/NumberBlocks.js:123 -msgid "The Power block calculates a power function." +#: js/blocks/MediaBlocks.js:487 +msgid "speak" msgstr "" -#: js/NumberBlocks.js:178 -msgid "The Sqrt block returns the square root." +#: js/blocks/MediaBlocks.js:495 +msgid "The Speak block outputs to the text-to-speech synthesizer" msgstr "" -#: js/NumberBlocks.js:184 -msgid "sqrt" +#: js/blocks/MediaBlocks.js:546 +msgid "camera" msgstr "" -#: js/NumberBlocks.js:230 -msgid "The Abs block returns the absolute value." +#: js/blocks/MediaBlocks.js:551 +msgid "The Camera block connects a webcam to the Show block." msgstr "" -#: js/NumberBlocks.js:236 -msgid "abs" +#: js/blocks/MediaBlocks.js:574 +msgid "video" msgstr "" -#: js/NumberBlocks.js:277 -msgid "The Distance block returns the distance between two points. For example, between the mouse and the center of the screen." +#: js/blocks/MediaBlocks.js:579 +msgid "The Video block selects video for use with the Show block." msgstr "" -#: js/NumberBlocks.js:283 -#: plugins/rodi.rtp:310 -msgid "distance" +#: js/blocks/MediaBlocks.js:607 +msgid "The Open file block opens a file for use with the Show block." msgstr "" -#: js/NumberBlocks.js:343 -msgid "The Divide block is used to divide." +#: js/blocks/MediaBlocks.js:645 +msgid "stop media" msgstr "" -#: js/NumberBlocks.js:411 -msgid "The Multiply block is used to multiply." +#: js/blocks/MediaBlocks.js:650 +msgid "The Stop media block stops audio or video playback." msgstr "" -#: js/NumberBlocks.js:554 -msgid "The Minus block is used to subtract." +#: js/blocks/MediaBlocks.js:679 +#: js/blocks/PitchBlocks.js:1577 +#: js/widgets/musickeyboard.js:1936 +#: js/widgets/phrasemaker.js:1037 +#.TRANS: a measure of frequency: one cycle per second +msgid "hertz" msgstr "" -#: js/NumberBlocks.js:647 -msgid "The Plus block is used to add." +#: js/blocks/MediaBlocks.js:692 +#: js/blocks/WidgetBlocks.js:182 +#: js/widgets/temperament.js:506 +#: js/widgets/temperament.js:546 +#: js/widgets/temperament.js:610 +#: js/widgets/temperament.js:618 +#: js/widgets/temperament.js:1505 +#: js/widgets/timbre.js:1842 +msgid "frequency" msgstr "" -#: js/NumberBlocks.js:773 -msgid "The One-of block returns one of two choices." +#: js/blocks/MediaBlocks.js:692 +msgid "duration (ms)" msgstr "" -#: js/NumberBlocks.js:780 -#: js/PitchBlocks.js:616 -msgid "one of" +#: js/blocks/MediaBlocks.js:728 +#.TRANS: translate a note into hertz, e.g., A4 -> 440HZ +msgid "note to frequency" msgstr "" -#: js/NumberBlocks.js:782 -msgid "this" +#: js/blocks/MediaBlocks.js:736 +msgid "The To frequency block converts a pitch name and octave to Hertz." msgstr "" -#: js/NumberBlocks.js:782 -msgid "that" +#: js/blocks/MediaBlocks.js:746 +#: js/blocks/PitchBlocks.js:656 +#: js/blocks/PitchBlocks.js:934 +#: js/blocks/PitchBlocks.js:1866 +#.TRANS: name2 is name as in name of pitch (JAPANESE ONLY) +msgid "name2" msgstr "" -#: js/NumberBlocks.js:837 -msgid "The Random block returns a random number." +#: js/blocks/MediaBlocks.js:812 +msgid "The Avatar block is used to change the appearance of the mouse." msgstr "" -#: js/NumberBlocks.js:844 -msgid "random" +#: js/blocks/MediaBlocks.js:819 +msgid "The Avatar block is used to change the appearance of the turtle." msgstr "" -#: js/NumberBlocks.js:846 -msgid "min" +#: js/blocks/MediaBlocks.js:831 +#: js/blocks/MediaBlocks.js:891 +#.TRANS: a media object +msgid "size" msgstr "" -#: js/NumberBlocks.js:846 -msgid "max" +#: js/blocks/MediaBlocks.js:831 +msgid "image" msgstr "" -#: js/NumberBlocks.js:910 -msgid "The Number block holds a number." +#: js/blocks/MediaBlocks.js:880 +msgid "The Show block is used to display text or images on the canvas." msgstr "" -#: js/BoxesBlocks.js:53 -#: js/BoxesBlocks.js:59 -msgid "The Add-to block is used to add to the value stored in a box." +#: js/blocks/MediaBlocks.js:888 +#.TRANS: show1 is show as in display an image or text on the screen. +msgid "show1" msgstr "" -#: js/BoxesBlocks.js:61 -msgid "It can also be used with other blocks such as Color and Pen size." +#: js/blocks/MediaBlocks.js:891 +msgid "obj" msgstr "" -#: js/BoxesBlocks.js:73 -msgid "add" +#: js/blocks/MediaBlocks.js:938 +msgid "The Media block is used to import an image." msgstr "" -#: js/BoxesBlocks.js:75 -#: js/temperament.js:716 -msgid "to" +#: js/blocks/MediaBlocks.js:973 +msgid "The Text block holds a text string." msgstr "" -#: js/BoxesBlocks.js:75 -#: js/BoxesBlocks.js:595 -#: js/HeapBlocks.js:544 -msgid "value1" +#: js/blocks/MeterBlocks.js:34 +#.TRANS: musical meter (time signature), e.g., 4:4 +msgid "current meter" msgstr "" -#: js/BoxesBlocks.js:118 -msgid "Block does not support incrementing." +#: js/blocks/MeterBlocks.js:85 +#.TRANS: number of beats per minute +msgid "beat factor" msgstr "" -#: js/BoxesBlocks.js:152 -msgid "The Add-1-to block adds one to the value stored in a box." +#: js/blocks/MeterBlocks.js:161 +msgid "The Beats per minute block returns the current beats per minute." msgstr "" -#: js/BoxesBlocks.js:163 -msgid "add 1 to" +#: js/blocks/MeterBlocks.js:169 +#: js/widgets/status.js:152 +#.TRANS: number of beats played per minute +msgid "beats per minute2" msgstr "" -#: js/BoxesBlocks.js:211 -msgid "The Subtract-1-from block subtracts one from the value stored in a box." +#: js/blocks/MeterBlocks.js:169 +#: js/blocks/MeterBlocks.js:1056 +#: js/blocks/MeterBlocks.js:1133 +#: js/blocks/MeterBlocks.js:1211 +#.TRANS: sets tempo by defining a beat and beats per minute +msgid "beats per minute" msgstr "" -#: js/BoxesBlocks.js:222 -msgid "subtract 1 from" +#: js/blocks/MeterBlocks.js:233 +#.TRANS: count of current musical measure in meter +msgid "measure count" msgstr "" -#: js/BoxesBlocks.js:270 -#: js/BoxesBlocks.js:387 -msgid "The Box block returns the value stored in a box." +#: js/blocks/MeterBlocks.js:241 +msgid "The Measure count block returns the current measure." msgstr "" -#: js/BoxesBlocks.js:500 -#: js/BoxesBlocks.js:576 -msgid "The Store in block will store a value in a box." +#: js/blocks/MeterBlocks.js:290 +#.TRANS: count of current beat in the meter +msgid "beat count" msgstr "" -#: js/BoxesBlocks.js:652 -msgid "The Box2 block returns the value stored in Box2." +#: js/blocks/MeterBlocks.js:300 +#: js/blocks/MeterBlocks.js:311 +#: js/blocks/MeterBlocks.js:565 +#: js/blocks/MeterBlocks.js:576 +msgid "The Beat count block is the number of the current beat," msgstr "" -#: js/BoxesBlocks.js:703 -msgid "The Store in Box2 block is used to store a value in Box2." +#: js/blocks/MeterBlocks.js:313 +#: js/blocks/MeterBlocks.js:578 +msgid "eg 1, 2, 3, or 4." msgstr "" -#: js/BoxesBlocks.js:715 -msgid "store in box2" +#: js/blocks/MeterBlocks.js:368 +#.TRANS: count the number of notes +msgid "sum note values" msgstr "" -#: js/BoxesBlocks.js:761 -msgid "The Box1 block returns the value stored in Box1." +#: js/blocks/MeterBlocks.js:376 +#: js/blocks/MeterBlocks.js:440 +msgid "The Note counter block can be used to count the number of contained notes." msgstr "" -#: js/BoxesBlocks.js:812 -msgid "The Store in Box1 block is used to store a value in Box1." +#: js/blocks/MeterBlocks.js:432 +#.TRANS: count the number of notes +msgid "note counter" msgstr "" -#: js/BoxesBlocks.js:826 -msgid "store in box1" +#: js/blocks/MeterBlocks.js:496 +#.TRANS: number of whole notes that have been played +msgid "whole notes played" msgstr "" -#: js/HeapBlocks.js:49 -msgid "The Heap block returns the heap." +#: js/blocks/MeterBlocks.js:505 +msgid "The Whole notes played block returns the total number of whole notes played." msgstr "" -#: js/HeapBlocks.js:133 -msgid "show heap" +#: js/blocks/MeterBlocks.js:555 +#: js/turtleactions/DictActions.js:83 +#.TRANS: number of notes that have been played +msgid "notes played" msgstr "" -#: js/HeapBlocks.js:181 -msgid "The Heap-length block returns the length of the heap." +#: js/blocks/MeterBlocks.js:653 +msgid "The No clock block decouples the notes from the master clock." msgstr "" -#: js/HeapBlocks.js:195 -msgid "heap length" +#: js/blocks/MeterBlocks.js:661 +#.TRANS: don't lock notes to master clock +msgid "no clock" msgstr "" -#: js/HeapBlocks.js:254 -msgid "The Heap-empty? block returns true if the heap is empty." +#: js/blocks/MeterBlocks.js:700 +msgid "on weak beat do" msgstr "" -#: js/HeapBlocks.js:268 -#.TRANS: Is the heap empty? -msgid "heap empty?" +#: js/blocks/MeterBlocks.js:705 +msgid "The On-weak-beat block lets you specify actions to take on weak (off) beats." msgstr "" -#: js/HeapBlocks.js:317 -msgid "The Empty-heap block empties the heap." +#: js/blocks/MeterBlocks.js:750 +msgid "on strong beat" msgstr "" -#: js/HeapBlocks.js:327 -#: js/HeapBlocks.js:647 -#.TRANS: empty the heap -msgid "empty heap" +#: js/blocks/MeterBlocks.js:758 +msgid "The On-strong-beat block lets you specify actions to take on specified beats." msgstr "" -#: js/HeapBlocks.js:371 -msgid "The Reverse-heap block reverses the order of the heap." +#: js/blocks/MeterBlocks.js:769 +msgid "beat" msgstr "" -#: js/HeapBlocks.js:384 -#.TRANS: reverse the order of the heap -msgid "reverse heap" +#: js/blocks/MeterBlocks.js:813 +msgid "on every beat do" msgstr "" -#: js/HeapBlocks.js:428 -msgid "The Index-heap block returns a value in the heap at a specified location." +#: js/blocks/MeterBlocks.js:821 +msgid "The On-every-beat block lets you specify actions to take on every beat." msgstr "" -#: js/HeapBlocks.js:443 -#.TRANS: retrieve a value from the heap at index position in the heap -msgid "index heap" +#: js/blocks/MeterBlocks.js:874 +msgid "on every note do" msgstr "" -#: js/HeapBlocks.js:523 -msgid "The Set-heap entry block sets a value in he heap at the specified location." +#: js/blocks/MeterBlocks.js:882 +msgid "The On-every-note block lets you specify actions to take on every note." msgstr "" -#: js/HeapBlocks.js:619 -msgid "The Pop block removes the value at the top of the heap." +#: js/blocks/MeterBlocks.js:928 +#: js/blocks/MeterBlocks.js:999 +#.TRANS: sets tempo by defining a beat and beats per minute +msgid "master beats per minute" msgstr "" -#: js/HeapBlocks.js:633 -#.TRANS: pop a value off the top of the heap -msgid "pop" +#: js/blocks/MeterBlocks.js:952 +#: js/blocks/MeterBlocks.js:1078 +#: js/blocks/MeterBlocks.js:1135 +msgid "bpm" msgstr "" -#: js/HeapBlocks.js:680 -msgid "The Push block adds a value to the top of the heap." +#: js/blocks/MeterBlocks.js:952 +#: js/blocks/MeterBlocks.js:1078 +#: js/blocks/MeterBlocks.js:1135 +msgid "beat value" msgstr "" -#: js/HeapBlocks.js:696 -#.TRANS: push a value onto the top of the heap -msgid "push" +#: js/blocks/MeterBlocks.js:1024 +#: js/blocks/MeterBlocks.js:1167 +#: js/blocks/MeterBlocks.js:1241 +msgid "Beats per minute must be > 30." msgstr "" -#: js/FlowBlocks.js:41 -msgid "The Backward block runs code in reverse order (Musical retrograde)." +#: js/blocks/MeterBlocks.js:1027 +#: js/blocks/MeterBlocks.js:1170 +#: js/blocks/MeterBlocks.js:1244 +msgid "Maximum beats per minute is 1000." msgstr "" -#: js/FlowBlocks.js:48 -msgid "backward" +#: js/blocks/MeterBlocks.js:1068 +msgid "The Beats per minute block sets the number of 1/4 notes per minute." msgstr "" -#: js/FlowBlocks.js:124 -msgid "The Duplicate block will run each block multiple times." +#: js/blocks/MeterBlocks.js:1279 +#.TRANS: anacrusis +msgid "pickup" msgstr "" -#: js/FlowBlocks.js:136 -msgid "duplicate" +#: js/blocks/MeterBlocks.js:1367 +msgid "number of beats" msgstr "" -#: js/FlowBlocks.js:334 -msgid "The Default block is used inside of a Switch to define the default action." +#: js/blocks/NumberBlocks.js:28 +msgid "The Int block returns an integer." msgstr "" -#: js/FlowBlocks.js:342 -msgid "default" +#: js/blocks/NumberBlocks.js:34 +msgid "int" msgstr "" -#: js/FlowBlocks.js:361 -#: js/FlowBlocks.js:418 -msgid "The Case Block must be used inside of a Switch Block." +#: js/blocks/NumberBlocks.js:73 +msgid "The Mod block returns the remainder from a division." msgstr "" -#: js/FlowBlocks.js:389 -msgid "The Case block is used inside of a Switch to define matches." +#: js/blocks/NumberBlocks.js:79 +msgid "mod" msgstr "" -#: js/FlowBlocks.js:397 -msgid "case" +#: js/blocks/NumberBlocks.js:141 +msgid "The Power block calculates a power function." msgstr "" -#: js/FlowBlocks.js:446 -msgid "The Switch block will run the code in the matching Case." +#: js/blocks/NumberBlocks.js:196 +msgid "The Sqrt block returns the square root." msgstr "" -#: js/FlowBlocks.js:454 -msgid "switch" +#: js/blocks/NumberBlocks.js:202 +msgid "sqrt" msgstr "" -#: js/FlowBlocks.js:595 -msgid "The Stop block will stop a loop" +#: js/blocks/NumberBlocks.js:248 +msgid "The Abs block returns the absolute value." msgstr "" -#: js/FlowBlocks.js:597 -msgid "Forever, Repeat, While, or Until." +#: js/blocks/NumberBlocks.js:254 +msgid "abs" msgstr "" -#: js/FlowBlocks.js:604 -#: js/phrasemaker.js:3799 -#: js/musickeyboard.js:629 -#: js/musickeyboard.js:631 -#: js/timbre.js:417 -#: js/timbre.js:419 -#: plugins/rodi.rtp:29 -#: plugins/rodi.rtp:73 -#: plugins/rodi.rtp:413 -msgid "stop" +#: js/blocks/NumberBlocks.js:295 +msgid "The Distance block returns the distance between two points. For example, between the mouse and the center of the screen." msgstr "" -#: js/FlowBlocks.js:653 -msgid "The Waitfor block will wait until the condition is true." +#: js/blocks/NumberBlocks.js:301 +#: plugins/rodi.rtp:310 +msgid "distance" msgstr "" -#: js/FlowBlocks.js:661 -msgid "wait for" +#: js/blocks/NumberBlocks.js:361 +msgid "The Divide block is used to divide." msgstr "" -#: js/FlowBlocks.js:732 -msgid "The Until block will repeat until the condition is true." +#: js/blocks/NumberBlocks.js:441 +msgid "The Multiply block is used to multiply." msgstr "" -#: js/FlowBlocks.js:740 -msgid "until" +#: js/blocks/NumberBlocks.js:612 +msgid "The Minus block is used to subtract." msgstr "" -#: js/FlowBlocks.js:742 -#: js/FlowBlocks.js:822 -msgid "do2" +#: js/blocks/NumberBlocks.js:723 +msgid "The Plus block is used to add." msgstr "" -#: js/FlowBlocks.js:812 -msgid "The While block will repeat while the condition is true." +#: js/blocks/NumberBlocks.js:849 +msgid "The One-of block returns one of two choices." msgstr "" -#: js/FlowBlocks.js:820 -msgid "while" +#: js/blocks/NumberBlocks.js:856 +#: js/blocks/PitchBlocks.js:616 +msgid "one of" msgstr "" -#: js/FlowBlocks.js:903 -#: js/FlowBlocks.js:968 -#: js/FlowBlocks.js:979 -msgid "In this example if the mouse button is pressed a snare drum will play." +#: js/blocks/NumberBlocks.js:858 +msgid "this" msgstr "" -#: js/FlowBlocks.js:925 -#: js/FlowBlocks.js:988 -msgid "if" +#: js/blocks/NumberBlocks.js:858 +msgid "that" msgstr "" -#: js/FlowBlocks.js:927 -#: js/FlowBlocks.js:990 -msgid "then" +#: js/blocks/NumberBlocks.js:913 +msgid "The Random block returns a random number." msgstr "" -#: js/FlowBlocks.js:927 -msgid "else" +#: js/blocks/NumberBlocks.js:920 +msgid "random" msgstr "" -#: js/FlowBlocks.js:1025 -msgid "The Forever block will repeat the contained blocks forever." +#: js/blocks/NumberBlocks.js:922 +msgid "min" msgstr "" -#: js/FlowBlocks.js:1037 -msgid "forever" +#: js/blocks/NumberBlocks.js:922 +msgid "max" msgstr "" -#: js/FlowBlocks.js:1073 -msgid "The Repeat block will repeat the contained blocks." +#: js/blocks/NumberBlocks.js:986 +msgid "The Number block holds a number." msgstr "" -#: js/FlowBlocks.js:1075 -msgid "In this example the note will be played 4 times." +#: js/blocks/OrnamentBlocks.js:32 +msgid "staccato factor" msgstr "" -#: js/FlowBlocks.js:1083 -msgid "repeat" +#: js/blocks/OrnamentBlocks.js:108 +msgid "slur factor" msgstr "" -#: js/FlowBlocks.js:1123 -msgid "duplicate factor" +#: js/blocks/OrnamentBlocks.js:217 +#: js/blocks/OrnamentBlocks.js:309 +#.TRANS: the neighbor refers to a neighboring note, e.g., D is a neighbor of C +msgid "neighbor" msgstr "" -#: js/PitchBlocks.js:39 -#: js/musicutils.js:722 -#: js/musicutils.js:1117 -#: js/synthutils.js:112 -#.TRANS: square wave -msgid "square" +#: js/blocks/OrnamentBlocks.js:293 +msgid "The Neighbor block rapidly switches between neighboring pitches." msgstr "" -#: js/PitchBlocks.js:62 -#: js/ToneBlocks.js:39 -#: js/musicutils.js:723 -#: js/musicutils.js:1118 -#: js/synthutils.js:116 -#.TRANS: triangle wave -msgid "triangle" +#: js/blocks/OrnamentBlocks.js:364 +msgid "glide" msgstr "" -#: js/PitchBlocks.js:85 -#: js/musicutils.js:721 -#: js/musicutils.js:1116 -#: js/synthutils.js:110 -#.TRANS: sine wave -msgid "sine" +#: js/blocks/OrnamentBlocks.js:479 +#: js/blocks/OrnamentBlocks.js:643 +msgid "slur" msgstr "" -#: js/PitchBlocks.js:108 -#: js/musicutils.js:724 -#: js/musicutils.js:1119 -#: js/synthutils.js:114 -#.TRANS: sawtooth wave -msgid "sawtooth" +#: js/blocks/OrnamentBlocks.js:558 +#: js/blocks/OrnamentBlocks.js:710 +#.TRANS: play each note sharply detached from the others +msgid "staccato" msgstr "" -#: js/PitchBlocks.js:141 -#.TRANS: musical transposition (adjustment of pitch up or down) -msgid "transposition" +#: js/blocks/RhythmBlocks.js:182 +#: js/blocks/RhythmBlocks.js:1086 +#: js/blocks/RhythmBlocks.js:1162 +msgid "Note value must be greater than 0." msgstr "" -#: js/PitchBlocks.js:168 -#.TRANS: step down one note in current musical scale -msgid "scalar step down" +#: js/blocks/RhythmBlocks.js:215 +#: js/blocks/RhythmBlocks.js:278 +#: js/blocks/RhythmBlocks.js:350 +#.TRANS: swing is a rhythmic variation that emphasises the offbeat +msgid "swing" msgstr "" -#: js/PitchBlocks.js:172 -msgid "The Scalar step down block returns the number of semi-tones down to the previous note in the current key and mode." +#: js/blocks/RhythmBlocks.js:355 +#.TRANS: the amount to shift to the offbeat note +msgid "swing value" msgstr "" -#: js/PitchBlocks.js:190 -#.TRANS: step up one note in current musical scale -msgid "scalar step up" +#: js/blocks/RhythmBlocks.js:419 +msgid "The Skip notes block will cause notes to be skipped." msgstr "" -#: js/PitchBlocks.js:194 -msgid "The Scalar step up block returns the number of semi-tones up to the next note in the current key and mode." +#: js/blocks/RhythmBlocks.js:427 +#.TRANS: substitute rests on notes being skipped +msgid "skip notes" msgstr "" -#: js/PitchBlocks.js:212 -#.TRANS: the change measured in half-steps between the current pitch and the previous pitch -msgid "change in pitch" +#: js/blocks/RhythmBlocks.js:489 +#.TRANS: speed up note duration by some factor, e.g. convert 1/4 to 1/8 notes by using a factor of 2 +msgid "multiply note value" msgstr "" -#: js/PitchBlocks.js:216 -msgid "The Change in pitch block is the difference (in half steps) between the current pitch being played and the previous pitch played." +#: js/blocks/RhythmBlocks.js:542 +msgid "The Tie block works on pairs of notes, combining them into one note." msgstr "" -#: js/PitchBlocks.js:243 -#.TRANS: the change measured in scale-steps between the current pitch and the previous pitch -msgid "scalar change in pitch" +#: js/blocks/RhythmBlocks.js:550 +#.TRANS: tie notes together into one longer note +msgid "tie" msgstr "" -#: js/PitchBlocks.js:250 -#: js/PitchBlocks.js:432 -#: js/PitchBlocks.js:1629 -#: js/DictActions.js:89 -#: js/temperament.js:477 -#: js/temperament.js:481 -#: js/temperament.js:714 -#.TRANS: convert current note to piano key (1-88) -#.TRANS: a mapping of pitch to the 88 piano keys -msgid "pitch number" +#: js/blocks/RhythmBlocks.js:591 +#: js/blocks/RhythmBlocks.js:671 +#.TRANS: a dotted note is played for 1.5x its value, e.g., 1/8. --> 3/16 +msgid "dot" msgstr "" -#: js/PitchBlocks.js:256 -msgid "The Pitch number block is the value of the pitch of the note currently being played." +#: js/blocks/RhythmBlocks.js:619 +#: js/turtleactions/RhythmActions.js:221 +msgid "An argument of -1 results in a note value of 0." msgstr "" -#: js/PitchBlocks.js:329 -#: js/PitchBlocks.js:433 -#.TRANS: the current pitch expressed in Hertz -msgid "pitch in hertz" +#: js/blocks/RhythmBlocks.js:661 +msgid "The Dot block extends the duration of a note by 50%." msgstr "" -#: js/PitchBlocks.js:334 -msgid "The Pitch in Hertz block is the value in Hertz of the pitch of the note currently being played." +#: js/blocks/RhythmBlocks.js:663 +msgid "Eg a dotted quarter note will play for 3/8 (1/4 + 1/8) of a beat." msgstr "" -#: js/PitchBlocks.js:367 -#: js/DictActions.js:87 -msgid "current pitch" +#: js/blocks/RhythmBlocks.js:765 +#.TRANS: Japanese only: note value block for drum +msgid "note value drum" msgstr "" -#: js/PitchBlocks.js:373 -msgid "The Current Pitch block is used with the Pitch Converter block. In the example above, current pitch, sol 4, is displayed as 392 hertz." +#: js/blocks/RhythmBlocks.js:829 +msgid "392 hertz" msgstr "" -#: js/PitchBlocks.js:410 -msgid "This block converts the pitch value of the last note played into different formats such as hertz, letter name, pitch number, et al." +#: js/blocks/RhythmBlocks.js:1119 +msgid "The Note block is a container for one or more Pitch blocks." msgstr "" -#: js/PitchBlocks.js:434 -msgid "alphabet" +#: js/blocks/RhythmBlocks.js:1121 +msgid "The Note block specifies the duration (note value) of its contents." msgstr "" -#: js/PitchBlocks.js:436 -#.TRANS: Translate as "alphabet class" -msgid "letter class" +#: js/blocks/RhythmBlocks.js:1128 +#: js/blocks/PitchBlocks.js:974 +#: js/blocks/PitchBlocks.js:1007 +#: js/blocks/ProgramBlocks.js:1186 +#: js/blocks/ProgramBlocks.js:1227 +#: js/widgets/status.js:190 +#: js/widgets/temperament.js:464 +#: js/widgets/temperament.js:486 +#: js/widgets/temperament.js:496 +#: js/widgets/temperament.js:617 +#: plugins/rodi.rtp:192 +#.TRANS: a musical note consisting of pitch and duration +msgid "note" msgstr "" -#: js/PitchBlocks.js:437 -msgid "solfege class" +#: js/blocks/RhythmBlocks.js:1130 +msgid "value2" msgstr "" -#: js/PitchBlocks.js:438 -msgid "staff y" +#: js/blocks/RhythmBlocks.js:1200 +msgid "define frequency" msgstr "" -#: js/PitchBlocks.js:439 -msgid "solfege syllable" +#: js/blocks/RhythmBlocks.js:1218 +#: js/widgets/temperament.js:787 +#: js/widgets/temperament.js:1587 +msgid "octave space" msgstr "" -#: js/PitchBlocks.js:440 -msgid "pitch class" +#: js/blocks/SensorsBlocks.js:36 +msgid "The Input block prompts for keyboard input." msgstr "" -#: js/PitchBlocks.js:441 -msgid "scalar class" +#: js/blocks/SensorsBlocks.js:46 +msgid "input" msgstr "" -#: js/PitchBlocks.js:443 -msgid "nth degree" +#: js/blocks/SensorsBlocks.js:64 +msgid "Input a value" msgstr "" -#: js/PitchBlocks.js:444 -msgid "pitch to shade" +#: js/blocks/SensorsBlocks.js:126 +msgid "input value" msgstr "" -#: js/PitchBlocks.js:445 -msgid "pitch to color" +#: js/blocks/SensorsBlocks.js:131 +msgid "The Input-value block stores the input." msgstr "" -#: js/PitchBlocks.js:629 -#: js/musickeyboard.js:565 -#.TRANS: MIDI is a technical standard for electronic music -msgid "MIDI" +#: js/blocks/SensorsBlocks.js:238 +msgid "loudness" msgstr "" -#: js/PitchBlocks.js:642 -#.TRANS: set an offset associated with the numeric piano keyboard mapping -msgid "set pitch number offset" +#: js/blocks/SensorsBlocks.js:245 +msgid "The Loudness block returns the volume detected by the microphone." msgstr "" -#: js/PitchBlocks.js:645 -msgid "The Set pitch number offset block is used to set the offset for mapping pitch numbers to pitch and octave." +#: js/blocks/SensorsBlocks.js:300 +msgid "click" msgstr "" -#: js/PitchBlocks.js:679 -#.TRANS: convert piano key number (1-88) to pitch -msgid "number to pitch" +#: js/blocks/SensorsBlocks.js:306 +msgid "The Click block triggers an event if a mouse has been clicked." msgstr "" -#: js/PitchBlocks.js:682 -msgid "The Number to pitch block will convert a pitch number to a pich name." +#: js/blocks/SensorsBlocks.js:313 +msgid "The Click block triggers an event if a turtle has been clicked." msgstr "" -#: js/PitchBlocks.js:715 -#.TRANS: convert piano key number (1-88) to octave -msgid "number to octave" +#: js/blocks/SensorsBlocks.js:342 +msgid "cursor over" msgstr "" -#: js/PitchBlocks.js:717 -msgid "The Number to octave block will convert a pitch number to an octave." +#: js/blocks/SensorsBlocks.js:387 +msgid "cursor out" msgstr "" -#: js/PitchBlocks.js:726 -msgid "y to pitch" +#: js/blocks/SensorsBlocks.js:433 +msgid "cursor button down" msgstr "" -#: js/PitchBlocks.js:729 -msgid "Y to pitch block will convert a staff y position to corresponding pitch notation." +#: js/blocks/SensorsBlocks.js:477 +msgid "cursor button up" msgstr "" -#: js/PitchBlocks.js:841 -msgid "accidental selector" +#: js/blocks/SensorsBlocks.js:521 +#: js/blocks/PenBlocks.js:48 +#: plugins/rodi.rtp:219 +msgid "blue" msgstr "" -#: js/PitchBlocks.js:844 -msgid "The Accidental selector block is used to choose between double-sharp, sharp, natural, flat, and double-flat." +#: js/blocks/SensorsBlocks.js:577 +#: js/blocks/PenBlocks.js:64 +#: plugins/rodi.rtp:218 +msgid "green" msgstr "" -#: js/PitchBlocks.js:858 -msgid "Pitch can be specified in terms of ni dha pa ma ga re sa." +#: js/blocks/SensorsBlocks.js:633 +#: js/blocks/PenBlocks.js:112 +#: plugins/rodi.rtp:217 +msgid "red" msgstr "" -#: js/PitchBlocks.js:872 -msgid "Pitch can be specified in terms of C D E F G A B." +#: js/blocks/SensorsBlocks.js:638 +msgid "The Get red block returns the red component of the pixel under the mouse." msgstr "" -#: js/PitchBlocks.js:883 -msgid "solfege" +#: js/blocks/SensorsBlocks.js:644 +msgid "The Get red block returns the red component of the pixel under the turtle." msgstr "" -#: js/PitchBlocks.js:886 -msgid "Pitch can be specified in terms of do re mi fa sol la ti." +#: js/blocks/SensorsBlocks.js:685 +#: plugins/rodi.rtp:216 +msgid "pixel color" msgstr "" -#: js/PitchBlocks.js:920 -msgid "The Invert block rotates any contained notes around a target note." +#: js/blocks/SensorsBlocks.js:690 +msgid "The Get pixel block returns the color of the pixel under the mouse." msgstr "" -#: js/PitchBlocks.js:927 -#.TRANS: pitch inversion rotates a pitch around another pitch -msgid "invert" +#: js/blocks/SensorsBlocks.js:696 +msgid "The Get pixel block returns the color of the pixel under the turtle." msgstr "" -#: js/PitchBlocks.js:929 -#: js/PitchBlocks.js:935 -#: js/PitchActions.js:727 -#: js/musicutils.js:726 -#: js/musicutils.js:902 -#.TRANS: invert based on even or odd number or musical scale -#.TRANS: even numbers -msgid "even" +#: js/blocks/SensorsBlocks.js:758 +msgid "time" msgstr "" -#: js/PitchBlocks.js:935 -#: js/PitchActions.js:729 -#: js/musicutils.js:728 -#: js/musicutils.js:903 -#.TRANS: odd numbers -msgid "odd" +#: js/blocks/SensorsBlocks.js:804 +msgid "cursor y" msgstr "" -#: js/PitchBlocks.js:935 -#: js/PitchActions.js:731 -#: js/musicutils.js:729 -#: js/musicutils.js:904 -msgid "scalar" +#: js/blocks/SensorsBlocks.js:809 +msgid "The Cursor Y block returns the vertical position of the mouse." msgstr "" -#: js/PitchBlocks.js:966 -#.TRANS: pitch inversion rotates a pitch around another pitch (odd number) -msgid "invert (odd)" +#: js/blocks/SensorsBlocks.js:845 +msgid "cursor x" msgstr "" -#: js/PitchBlocks.js:999 -#.TRANS: pitch inversion rotates a pitch around another pitch (even number) -msgid "invert (even)" +#: js/blocks/SensorsBlocks.js:850 +msgid "The Cursor X block returns the horizontal position of the mouse." msgstr "" -#: js/PitchBlocks.js:1020 -#.TRANS: register is the octave of the current pitch -msgid "register" +#: js/blocks/SensorsBlocks.js:886 +msgid "mouse button" msgstr "" -#: js/PitchBlocks.js:1024 -msgid "The Register block provides an easy way to modify the register (octave) of the notes that follow it." +#: js/blocks/SensorsBlocks.js:888 +msgid "The Mouse-button block returns True if the mouse button is pressed." msgstr "" -#: js/PitchBlocks.js:1074 -msgid "The Semi-tone transposition block will shift the pitches contained inside Note blocks up (or down) by half steps." +#: js/blocks/SensorsBlocks.js:934 +msgid "to ASCII" msgstr "" -#: js/PitchBlocks.js:1076 -msgid "In the example shown above, sol is shifted up to sol#." +#: js/blocks/SensorsBlocks.js:938 +msgid "The To ASCII block converts numbers to letters." msgstr "" -#: js/PitchBlocks.js:1082 -#.TRANS: adjust the amount of shift (up or down) of a pitch -msgid "semi-tone transpose" +#: js/blocks/SensorsBlocks.js:1005 +msgid "The Keyboard block returns computer keyboard input." msgstr "" -#: js/PitchBlocks.js:1115 -msgid "The Transpose by Ratio block will shift the pitches contained inside Note blocks up (or down) by a ratio" +#: js/blocks/RhythmBlockPaletteBlocks.js:50 +#: js/blocks/RhythmBlockPaletteBlocks.js:233 +#.TRANS: rhythm block +#.TRANS: translate "rhythm1" as rhythm +msgid "rhythm1" msgstr "" -#: js/PitchBlocks.js:1121 -#.TRANS: adjust the amount of shift (up or down) of a pitch -msgid "transpose by ratio" +#: js/blocks/RhythmBlockPaletteBlocks.js:70 +#: js/blocks/RhythmBlockPaletteBlocks.js:252 +#: js/blocks/RhythmBlockPaletteBlocks.js:485 +#: js/blocks/RhythmBlockPaletteBlocks.js:554 +#: js/blocks/RhythmBlockPaletteBlocks.js:875 +msgid "number of notes" msgstr "" -#: js/PitchBlocks.js:1204 -#.TRANS: down sixth means the note is five scale degrees below current note -msgid "down sixth" +#: js/blocks/RhythmBlockPaletteBlocks.js:126 +msgid "polyphonic rhythm" msgstr "" -#: js/PitchBlocks.js:1223 -#.TRANS: down third means the note is two scale degrees below current note -msgid "down third" +#: js/blocks/RhythmBlockPaletteBlocks.js:219 +msgid "The Rhythm block is used to generate rhythm patterns." msgstr "" -#: js/PitchBlocks.js:1242 -#.TRANS: seventh means the note is the six scale degrees above current note -msgid "seventh" +#: js/blocks/RhythmBlockPaletteBlocks.js:280 +msgid "1/64 note" msgstr "" -#: js/PitchBlocks.js:1261 -#.TRANS: sixth means the note is the five scale degrees above current note -msgid "sixth" +#: js/blocks/RhythmBlockPaletteBlocks.js:304 +msgid "1/32 note" msgstr "" -#: js/PitchBlocks.js:1280 -#.TRANS: fifth means the note is the four scale degrees above current note -msgid "fifth" +#: js/blocks/RhythmBlockPaletteBlocks.js:332 +msgid "1/16 note" msgstr "" -#: js/PitchBlocks.js:1300 -#.TRANS: fourth means the note is three scale degrees above current note -msgid "fourth" +#: js/blocks/RhythmBlockPaletteBlocks.js:360 +msgid "eighth note" msgstr "" -#: js/PitchBlocks.js:1319 -#.TRANS: third means the note is two scale degrees above current note -msgid "third" +#: js/blocks/RhythmBlockPaletteBlocks.js:388 +msgid "quarter note" msgstr "" -#: js/PitchBlocks.js:1338 -#.TRANS: second means the note is one scale degree above current note -msgid "second" +#: js/blocks/RhythmBlockPaletteBlocks.js:416 +msgid "half note" msgstr "" -#: js/PitchBlocks.js:1379 -msgid "The Scalar transposition block will shift the pitches contained inside Note blocks up (or down) the scale." +#: js/blocks/RhythmBlockPaletteBlocks.js:444 +msgid "whole note" msgstr "" -#: js/PitchBlocks.js:1381 -msgid "In the example shown above, sol is shifted up to la." +#: js/blocks/RhythmBlockPaletteBlocks.js:482 +#: js/blocks/RhythmBlockPaletteBlocks.js:551 +#: js/blocks/RhythmBlockPaletteBlocks.js:602 +#.TRANS: A tuplet is a note value divided into irregular time values. +msgid "tuplet" msgstr "" -#: js/PitchBlocks.js:1388 -#.TRANS: adjust the amount of shift (up or down) of a pitch by musical scale (scalar) steps -msgid "scalar transpose" +#: js/blocks/RhythmBlockPaletteBlocks.js:768 +msgid "septuplet" msgstr "" -#: js/PitchBlocks.js:1423 -msgid "The Accidental block is used to create sharps and flats" +#: js/blocks/RhythmBlockPaletteBlocks.js:796 +msgid "quintuplet" msgstr "" -#: js/PitchBlocks.js:1430 -#.TRANS: An accidental is a modification to a pitch, e.g., sharp or flat. -msgid "accidental override" +#: js/blocks/RhythmBlockPaletteBlocks.js:824 +msgid "triplet" msgstr "" -#: js/PitchBlocks.js:1543 -msgid "The Hertz block (in combination with a Number block) will play a sound at the specified frequency." +#: js/blocks/RhythmBlockPaletteBlocks.js:851 +msgid "simple tuplet" msgstr "" -#: js/PitchBlocks.js:1633 -msgid "The Pitch Number block will play a pitch associated by its number, e.g. 0 for C and 7 for G." +#: js/blocks/RhythmBlockPaletteBlocks.js:861 +msgid "Tuplets are a collection of notes that get scaled to a specific duration." msgstr "" -#: js/PitchBlocks.js:1665 -#: js/PitchBlocks.js:1707 -#.TRANS: a numeric mapping of the notes in an octave based on the musical mode -#.TRANS: a numeric mapping of the notes in an octave based on the musical mode -msgid "nth modal pitch" +#: js/blocks/DrumBlocks.js:59 +msgid "The Noise name block is used to select a noise synthesizer." msgstr "" -#: js/PitchBlocks.js:1668 -msgid "n^th Modal Pitch takes the pattern of pitches in semitones for a mode and makes each point a degree of the mode," +#: js/blocks/DrumBlocks.js:102 +msgid "The Drum name block is used to select a drum." msgstr "" -#: js/PitchBlocks.js:1670 -msgid "starting from 1 and regardless of tonal framework (i.e. not always 8 notes in the octave)" +#: js/blocks/DrumBlocks.js:146 +msgid "The Effects name block is used to select a sound effect." msgstr "" -#: js/PitchBlocks.js:1711 -msgid "N^th Modal Pitch takes a number as an input as the n^th degree for the given mode. 0 is the first position, 1 is the second, -1 is the note before the first etc." +#: js/blocks/DrumBlocks.js:163 +msgid "noise" msgstr "" -#: js/PitchBlocks.js:1713 -msgid "The pitches change according to the mode specified without any need for respellings." +#: js/blocks/DrumBlocks.js:177 +msgid "The Play noise block will generate white, pink, or brown noise." msgstr "" -#: js/PitchBlocks.js:1752 -msgid "Scale Degree is a common convention in music. Scale Degree offers seven possible positions in the scale (1-7) and can be modified via accidentals." +#: js/blocks/DrumBlocks.js:317 +msgid "Replace every instance of a pitch with a drum sound." msgstr "" -#: js/PitchBlocks.js:1754 -msgid "Scale Degree 1 is always the first pitch in a given scale, regardless of octave." +#: js/blocks/DrumBlocks.js:328 +#.TRANS: map a pitch to a drum sound +msgid "map pitch to drum" msgstr "" -#: js/PitchBlocks.js:1776 -#.TRANS: step some number of notes in current musical scale -msgid "scalar step" +#: js/blocks/DrumBlocks.js:395 +msgid "In the example above, a kick drum sound will be played instead of sol." msgstr "" -#: js/PitchBlocks.js:1781 -msgid "The Scalar Step block (in combination with a Number block) will play the next pitch in a scale," +#: js/blocks/DrumBlocks.js:407 +#.TRANS: set the current drum sound for playback +msgid "set drum" msgstr "" -#: js/PitchBlocks.js:1783 -msgid "eg if the last note played was sol, Scalar Step 1 will play la." +#: js/blocks/DrumBlocks.js:451 +msgid "sound effect" msgstr "" -#: js/PitchBlocks.js:1818 -msgid "The Pitch block specifies the pitch name and octave of a note that together determine the frequency of the note." +#: js/blocks/DrumBlocks.js:489 +msgid "You can use multiple Drum blocks within a Note block." msgstr "" -#: js/GraphicsBlocks.js:46 -#: js/DictActions.js:77 -#: js/DictActions.js:155 -#: js/DictActions.js:189 +#: js/blocks/GraphicsBlocks.js:46 +#: js/turtleactions/DictActions.js:77 +#: js/turtleactions/DictActions.js:144 +#: js/turtleactions/DictActions.js:173 msgid "heading" msgstr "" -#: js/GraphicsBlocks.js:56 +#: js/blocks/GraphicsBlocks.js:56 msgid "The Heading block returns the orientation of the mouse." msgstr "" -#: js/GraphicsBlocks.js:62 +#: js/blocks/GraphicsBlocks.js:62 msgid "The Heading block returns the orientation of the turtle." msgstr "" -#: js/GraphicsBlocks.js:133 +#: js/blocks/GraphicsBlocks.js:133 msgid "The Y block returns the vertical position of the mouse." msgstr "" -#: js/GraphicsBlocks.js:140 +#: js/blocks/GraphicsBlocks.js:140 msgid "The Y block returns the vertical position of the turtle." msgstr "" -#: js/GraphicsBlocks.js:149 +#: js/blocks/GraphicsBlocks.js:149 msgid "y3" msgstr "" -#: js/GraphicsBlocks.js:219 +#: js/blocks/GraphicsBlocks.js:219 msgid "The X block returns the horizontal position of the mouse." msgstr "" -#: js/GraphicsBlocks.js:226 +#: js/blocks/GraphicsBlocks.js:226 msgid "The X block returns the horizontal position of the turtle." msgstr "" -#: js/GraphicsBlocks.js:235 +#: js/blocks/GraphicsBlocks.js:235 msgid "x3" msgstr "" -#: js/GraphicsBlocks.js:295 +#: js/blocks/GraphicsBlocks.js:295 msgid "scroll xy" msgstr "" -#: js/GraphicsBlocks.js:303 +#: js/blocks/GraphicsBlocks.js:303 msgid "The Scroll XY block moves the canvas." msgstr "" -#: js/GraphicsBlocks.js:313 +#: js/blocks/GraphicsBlocks.js:313 msgid "x2" msgstr "" -#: js/GraphicsBlocks.js:313 +#: js/blocks/GraphicsBlocks.js:313 msgid "y2" msgstr "" -#: js/GraphicsBlocks.js:373 -#: js/temperament.js:213 -#: js/temperament.js:241 +#: js/blocks/GraphicsBlocks.js:373 +#: js/widgets/temperament.js:319 +#: js/widgets/temperament.js:347 msgid "clear" msgstr "" -#: js/GraphicsBlocks.js:426 +#: js/blocks/GraphicsBlocks.js:426 msgid "The Control-point 2 block sets the second control point for the Bezier curve." msgstr "" -#: js/GraphicsBlocks.js:433 +#: js/blocks/GraphicsBlocks.js:433 msgid "control point 2" msgstr "" -#: js/GraphicsBlocks.js:436 -#: js/GraphicsBlocks.js:487 -#: js/GraphicsBlocks.js:534 -#: js/GraphicsBlocks.js:750 +#: js/blocks/GraphicsBlocks.js:436 +#: js/blocks/GraphicsBlocks.js:487 +#: js/blocks/GraphicsBlocks.js:534 +#: js/blocks/GraphicsBlocks.js:750 msgid "x1" msgstr "" -#: js/GraphicsBlocks.js:436 -#: js/GraphicsBlocks.js:487 -#: js/GraphicsBlocks.js:534 -#: js/GraphicsBlocks.js:750 +#: js/blocks/GraphicsBlocks.js:436 +#: js/blocks/GraphicsBlocks.js:487 +#: js/blocks/GraphicsBlocks.js:534 +#: js/blocks/GraphicsBlocks.js:750 msgid "y1" msgstr "" -#: js/GraphicsBlocks.js:477 +#: js/blocks/GraphicsBlocks.js:477 msgid "The Control-point 1 block sets the first control point for the Bezier curve." msgstr "" -#: js/GraphicsBlocks.js:484 +#: js/blocks/GraphicsBlocks.js:484 msgid "control point 1" msgstr "" -#: js/GraphicsBlocks.js:527 +#: js/blocks/GraphicsBlocks.js:527 msgid "The Bezier block draws a Bezier curve." msgstr "" -#: js/GraphicsBlocks.js:531 +#: js/blocks/GraphicsBlocks.js:531 msgid "bezier" msgstr "" -#: js/GraphicsBlocks.js:592 +#: js/blocks/GraphicsBlocks.js:592 msgid "The Arc block moves the turtle in an arc." msgstr "" -#: js/GraphicsBlocks.js:600 +#: js/blocks/GraphicsBlocks.js:600 msgid "arc" msgstr "" -#: js/GraphicsBlocks.js:603 +#: js/blocks/GraphicsBlocks.js:603 msgid "angle" msgstr "" -#: js/GraphicsBlocks.js:603 +#: js/blocks/GraphicsBlocks.js:603 msgid "radius" msgstr "" -#: js/GraphicsBlocks.js:620 -#: js/GraphicsBlocks.js:767 -#: js/GraphicsBlocks.js:1010 -#: js/GraphicsBlocks.js:1093 +#: js/blocks/GraphicsBlocks.js:620 +#: js/blocks/GraphicsBlocks.js:767 +#: js/blocks/GraphicsBlocks.js:1010 +#: js/blocks/GraphicsBlocks.js:1093 msgid "Value must be within -5000 to 5000 when Wrap Mode is off." msgstr "" -#: js/GraphicsBlocks.js:622 -#: js/GraphicsBlocks.js:769 -#: js/GraphicsBlocks.js:1012 -#: js/GraphicsBlocks.js:1095 +#: js/blocks/GraphicsBlocks.js:622 +#: js/blocks/GraphicsBlocks.js:769 +#: js/blocks/GraphicsBlocks.js:1012 +#: js/blocks/GraphicsBlocks.js:1095 msgid "Value must be within -20000 to 20000 when Wrap Mode is on." msgstr "" -#: js/GraphicsBlocks.js:660 +#: js/blocks/GraphicsBlocks.js:660 msgid "set heading" msgstr "seth" -#: js/GraphicsBlocks.js:673 +#: js/blocks/GraphicsBlocks.js:673 msgid "The Set heading block sets the heading of the turtle." msgstr "" -#: js/GraphicsBlocks.js:733 +#: js/blocks/GraphicsBlocks.js:733 msgid "The Set XY block moves the mouse to a specific position on the screen." msgstr "" -#: js/GraphicsBlocks.js:739 +#: js/blocks/GraphicsBlocks.js:739 msgid "The Set XY block moves the turtle to a specific position on the screen." msgstr "" -#: js/GraphicsBlocks.js:747 +#: js/blocks/GraphicsBlocks.js:747 msgid "set xy" msgstr "" -#: js/GraphicsBlocks.js:819 +#: js/blocks/GraphicsBlocks.js:819 msgid "The Right block turns the mouse to the right." msgstr "" -#: js/GraphicsBlocks.js:826 +#: js/blocks/GraphicsBlocks.js:826 msgid "The Right block turns the turtle to the right." msgstr "" -#: js/GraphicsBlocks.js:835 +#: js/blocks/GraphicsBlocks.js:835 msgid "right1" msgstr "" -#: js/GraphicsBlocks.js:835 +#: js/blocks/GraphicsBlocks.js:835 #: plugins/rodi.rtp:77 #: plugins/rodi.rtp:340 #: plugins/rodi.rtp:375 msgid "right" msgstr "" -#: js/GraphicsBlocks.js:899 +#: js/blocks/GraphicsBlocks.js:899 msgid "The Left block turns the mouse to the left." msgstr "" -#: js/GraphicsBlocks.js:906 +#: js/blocks/GraphicsBlocks.js:906 msgid "The Left block turns the turtle to the left." msgstr "" -#: js/GraphicsBlocks.js:915 +#: js/blocks/GraphicsBlocks.js:915 msgid "left1" msgstr "" -#: js/GraphicsBlocks.js:915 +#: js/blocks/GraphicsBlocks.js:915 #: plugins/rodi.rtp:79 #: plugins/rodi.rtp:339 #: plugins/rodi.rtp:362 msgid "left" msgstr "" -#: js/GraphicsBlocks.js:967 -#: js/temperament.js:734 -#: js/temperament.js:933 +#: js/blocks/GraphicsBlocks.js:967 +#: js/widgets/temperament.js:875 +#: js/widgets/temperament.js:1078 #: plugins/rodi.rtp:69 #: plugins/rodi.rtp:387 msgid "back" msgstr "" -#: js/GraphicsBlocks.js:976 +#: js/blocks/GraphicsBlocks.js:976 msgid "The Back block moves the mouse backward." msgstr "" -#: js/GraphicsBlocks.js:983 +#: js/blocks/GraphicsBlocks.js:983 msgid "The Back block moves the turtle backward." msgstr "" -#: js/GraphicsBlocks.js:1050 +#: js/blocks/GraphicsBlocks.js:1050 #: plugins/rodi.rtp:71 #: plugins/rodi.rtp:400 msgid "forward" msgstr "" -#: js/GraphicsBlocks.js:1059 +#: js/blocks/GraphicsBlocks.js:1059 msgid "The Forward block moves the mouse forward." msgstr "" -#: js/GraphicsBlocks.js:1066 +#: js/blocks/GraphicsBlocks.js:1066 msgid "The Forward block moves the turtle forward." msgstr "" -#: js/GraphicsBlocks.js:1154 -#: js/GraphicsBlocks.js:1172 +#: js/blocks/GraphicsBlocks.js:1154 +#: js/blocks/GraphicsBlocks.js:1172 msgid "wrap" msgstr "" -#: js/OrnamentBlocks.js:32 -msgid "staccato factor" -msgstr "" - -#: js/OrnamentBlocks.js:108 -msgid "slur factor" -msgstr "" - -#: js/OrnamentBlocks.js:217 -#: js/OrnamentBlocks.js:309 -#.TRANS: the neighbor refers to a neighboring note, e.g., D is a neighbor of C -msgid "neighbor" -msgstr "" - -#: js/OrnamentBlocks.js:293 -msgid "The Neighbor block rapidly switches between neighboring pitches." -msgstr "" - -#: js/OrnamentBlocks.js:364 -msgid "glide" -msgstr "" - -#: js/OrnamentBlocks.js:479 -#: js/OrnamentBlocks.js:643 -msgid "slur" -msgstr "" - -#: js/OrnamentBlocks.js:558 -#: js/OrnamentBlocks.js:710 -#.TRANS: play each note sharply detached from the others -msgid "staccato" -msgstr "" - -#: js/PenBlocks.js:24 +#: js/blocks/PenBlocks.js:30 msgid "purple" msgstr "" -#: js/PenBlocks.js:37 -#: js/SensorsBlocks.js:521 -#: plugins/rodi.rtp:219 -msgid "blue" -msgstr "" - -#: js/PenBlocks.js:50 -#: js/SensorsBlocks.js:577 -#: plugins/rodi.rtp:218 -msgid "green" -msgstr "" - -#: js/PenBlocks.js:63 +#: js/blocks/PenBlocks.js:80 msgid "yellow" msgstr "" -#: js/PenBlocks.js:76 +#: js/blocks/PenBlocks.js:96 #: plugins/nutrition.rtp:164 msgid "orange" msgstr "" -#: js/PenBlocks.js:89 -#: js/SensorsBlocks.js:633 -#: plugins/rodi.rtp:217 -msgid "red" -msgstr "" - -#: js/PenBlocks.js:102 +#: js/blocks/PenBlocks.js:128 msgid "white" msgstr "" -#: js/PenBlocks.js:115 +#: js/blocks/PenBlocks.js:144 msgid "black" msgstr "" -#: js/PenBlocks.js:128 +#: js/blocks/PenBlocks.js:163 msgid "begin fill" msgstr "" -#: js/PenBlocks.js:143 +#: js/blocks/PenBlocks.js:190 msgid "end fill" msgstr "" -#: js/PenBlocks.js:159 -#: js/PenBlocks.js:386 +#: js/blocks/PenBlocks.js:212 +#: js/blocks/PenBlocks.js:560 #.TRANS: set the background color msgid "background" msgstr "" -#: js/PenBlocks.js:206 -#: js/DictActions.js:71 -#: js/DictActions.js:149 -#: js/DictActions.js:186 +#: js/blocks/PenBlocks.js:274 +#: js/turtleactions/DictActions.js:71 +#: js/turtleactions/DictActions.js:138 +#: js/turtleactions/DictActions.js:170 msgid "grey" msgstr "" -#: js/PenBlocks.js:210 +#: js/blocks/PenBlocks.js:282 msgid "The Grey block returns the current pen grey value." msgstr "" -#: js/PenBlocks.js:243 -#: js/DictActions.js:69 -#: js/DictActions.js:147 -#: js/DictActions.js:185 +#: js/blocks/PenBlocks.js:340 +#: js/turtleactions/DictActions.js:69 +#: js/turtleactions/DictActions.js:136 +#: js/turtleactions/DictActions.js:169 msgid "shade" msgstr "" -#: js/PenBlocks.js:247 +#: js/blocks/PenBlocks.js:347 msgid "The Shade block returns the current pen shade value." msgstr "" -#: js/PenBlocks.js:280 -#: js/DictActions.js:67 -#: js/DictActions.js:145 -#: js/DictActions.js:184 +#: js/blocks/PenBlocks.js:405 +#: js/turtleactions/DictActions.js:67 +#: js/turtleactions/DictActions.js:134 +#: js/turtleactions/DictActions.js:168 msgid "color" msgstr "" -#: js/PenBlocks.js:285 +#: js/blocks/PenBlocks.js:415 msgid "The Color block returns the current pen color." msgstr "" -#: js/PenBlocks.js:318 -#: js/DictActions.js:73 -#: js/DictActions.js:151 -#: js/DictActions.js:187 +#: js/blocks/PenBlocks.js:470 +#: js/turtleactions/DictActions.js:73 +#: js/turtleactions/DictActions.js:140 +#: js/turtleactions/DictActions.js:171 msgid "pen size" msgstr "" -#: js/PenBlocks.js:322 +#: js/blocks/PenBlocks.js:474 msgid "The Pen size block returns the current pen size value." msgstr "" -#: js/PenBlocks.js:355 +#: js/blocks/PenBlocks.js:513 msgid "set font" msgstr "" -#: js/PenBlocks.js:358 +#: js/blocks/PenBlocks.js:518 msgid "The Set font block sets the font used by the Show block." msgstr "" -#: js/PenBlocks.js:391 +#: js/blocks/PenBlocks.js:567 msgid "The Background block sets the window background color." msgstr "" -#: js/PenBlocks.js:408 +#: js/blocks/PenBlocks.js:598 msgid "The Hollow line block creates a line with a hollow center." msgstr "" -#: js/PenBlocks.js:415 +#: js/blocks/PenBlocks.js:606 #.TRANS: draw a line logo has a hollow space down its center msgid "hollow line" msgstr "" -#: js/PenBlocks.js:462 +#: js/blocks/PenBlocks.js:675 msgid "The Fill block fills in a shape with a color." msgstr "" -#: js/PenBlocks.js:470 +#: js/blocks/PenBlocks.js:684 #.TRANS: fill in as a solid color msgid "fill" msgstr "" -#: js/PenBlocks.js:527 +#: js/blocks/PenBlocks.js:761 #.TRANS: raise up the pen so logo it does not draw when it is moved msgid "pen up" msgstr "" -#: js/PenBlocks.js:532 +#: js/blocks/PenBlocks.js:768 msgid "The Pen-up block raises the pen so that it does not draw." msgstr "" -#: js/PenBlocks.js:552 +#: js/blocks/PenBlocks.js:802 #.TRANS: put down the pen so logo it draws when it is moved msgid "pen down" msgstr "" -#: js/PenBlocks.js:557 +#: js/blocks/PenBlocks.js:810 msgid "The Pen-down block lowers the pen so that it draws." msgstr "" -#: js/PenBlocks.js:577 +#: js/blocks/PenBlocks.js:844 #.TRANS: set the width of the line drawn by the pen msgid "set pen size" msgstr "" -#: js/PenBlocks.js:583 +#: js/blocks/PenBlocks.js:854 msgid "The Set-pen-size block changes the size of the pen." msgstr "" -#: js/PenBlocks.js:623 +#: js/blocks/PenBlocks.js:913 #.TRANS: set degree of translucence of the pen color msgid "set translucency" msgstr "" -#: js/PenBlocks.js:627 +#: js/blocks/PenBlocks.js:921 msgid "The Set translucency block changes the opacity of the pen." msgstr "" -#: js/PenBlocks.js:668 +#: js/blocks/PenBlocks.js:981 msgid "set hue" msgstr "" -#: js/PenBlocks.js:672 +#: js/blocks/PenBlocks.js:989 msgid "The Set hue block changes the color of the pen." msgstr "" -#: js/PenBlocks.js:711 +#: js/blocks/PenBlocks.js:1047 msgid "set shade" msgstr "" -#: js/PenBlocks.js:717 +#: js/blocks/PenBlocks.js:1057 msgid "The Set-shade block changes the pen color from dark to light." msgstr "" -#: js/PenBlocks.js:757 +#: js/blocks/PenBlocks.js:1111 #.TRANS: set the level of vividness of the pen color msgid "set grey" msgstr "" -#: js/PenBlocks.js:761 +#: js/blocks/PenBlocks.js:1119 msgid "The Set grey block changes the vividness of the pen color." msgstr "" -#: js/PenBlocks.js:800 +#: js/blocks/PenBlocks.js:1172 msgid "set color" msgstr "" -#: js/PenBlocks.js:806 +#: js/blocks/PenBlocks.js:1182 msgid "The Set-color block changes the pen color." msgstr "" -#: js/VolumeBlocks.js:35 -msgid "synth volume" -msgstr "" - -#: js/VolumeBlocks.js:39 -msgid "The Synth volume block returns the current volume of the current synthesizer." -msgstr "" - -#: js/VolumeBlocks.js:47 -#: js/musicutils.js:730 -#: js/synthutils.js:56 -#.TRANS: musical instrument -msgid "piano" -msgstr "" - -#: js/VolumeBlocks.js:105 -msgid "master volume" -msgstr "" - -#: js/VolumeBlocks.js:109 -msgid "The Master volume block returns the master volume." -msgstr "" - -#: js/VolumeBlocks.js:355 -#: js/VolumeBlocks.js:524 -msgid "set synth volume" -msgstr "" - -#: js/VolumeBlocks.js:362 -#: js/VolumeBlocks.js:545 -msgid "synth" -msgstr "" - -#: js/VolumeBlocks.js:403 -#: js/VolumeBlocks.js:577 -#: js/VolumeBlocks.js:740 -#: js/VolumeActions.js:173 -msgid "Setting volume to 0." -msgstr "" - -#: js/VolumeBlocks.js:440 -msgid "Synth not found" -msgstr "" - -#: js/VolumeBlocks.js:494 -msgid "set drum volume" -msgstr "" - -#: js/VolumeBlocks.js:530 -msgid "The Set synth volume block will change the volume of a particular synth," -msgstr "" - -#: js/VolumeBlocks.js:532 -msgid "eg guitar violin snare drum etc." -msgstr "" - -#: js/VolumeBlocks.js:534 -msgid "The default volume is 50." -msgstr "" - -#: js/VolumeBlocks.js:536 -msgid "The range is 0 for silence to 100 for full volume." -msgstr "" - -#: js/VolumeBlocks.js:597 -msgid "set panning" -msgstr "" - -#: js/VolumeBlocks.js:603 -msgid "The Set Panning block sets the panning for all synthesizers." -msgstr "" - -#: js/VolumeBlocks.js:625 -msgid "Warning: Sound is coming out from only the left or right side." -msgstr "" - -#: js/VolumeBlocks.js:647 -#: js/VolumeBlocks.js:695 -msgid "set master volume" -msgstr "" - -#: js/VolumeBlocks.js:653 -msgid "The Set master volume block sets the volume for all synthesizers." -msgstr "" - -#: js/VolumeBlocks.js:784 -msgid "The Set relative volume block changes the volume of the contained notes." -msgstr "" - -#: js/VolumeBlocks.js:791 -msgid "set relative volume" -msgstr "" - -#: js/VolumeBlocks.js:857 -msgid "decrescendo" -msgstr "" - -#: js/VolumeBlocks.js:921 -msgid "crescendo" -msgstr "" - -#: js/ToneBlocks.js:34 -msgid "oscillator" -msgstr "" - -#: js/ToneBlocks.js:44 -#: js/timbre.js:1562 -#.TRANS: Partials refers to the number of sine waves combined into the sound. -msgid "partials" -msgstr "" - -#: js/ToneBlocks.js:76 -msgid "You are adding multiple oscillator blocks." -msgstr "" - -#: js/ToneBlocks.js:144 -#: js/timbre.js:1225 -#.TRANS: a duo synthesizer combines a synth with a sequencer -msgid "duo synth" -msgstr "" - -#: js/ToneBlocks.js:149 -msgid "The Duo synth block is a duo-frequency modulator used to define a timbre." -msgstr "" - -#: js/ToneBlocks.js:157 -#: js/timbre.js:1476 -msgid "vibrato rate" -msgstr "" - -#: js/ToneBlocks.js:157 -msgid "vibrato intensity" -msgstr "" - -#: js/ToneBlocks.js:185 -#: js/timbre.js:1221 -#.TRANS: AM (amplitude modulation) synthesizer -msgid "AM synth" -msgstr "" - -#: js/ToneBlocks.js:189 -msgid "The AM synth block is an amplitude modulator used to define a timbre." -msgstr "" - -#: js/ToneBlocks.js:224 -#: js/timbre.js:1223 -#.TRANS: FM (frequency modulation) synthesizer -msgid "FM synth" -msgstr "" - -#: js/ToneBlocks.js:228 -msgid "The FM synth block is a frequency modulator used to define a timbre." +#: js/blocks/PitchBlocks.js:141 +#.TRANS: musical transposition (adjustment of pitch up or down) +msgid "transposition" msgstr "" -#: js/ToneBlocks.js:262 -msgid "partial" +#: js/blocks/PitchBlocks.js:168 +#.TRANS: step down one note in current musical scale +msgid "scalar step down" msgstr "" -#: js/ToneBlocks.js:265 -msgid "The Partial block is used to specify a weight for a specific partial harmonic." +#: js/blocks/PitchBlocks.js:172 +msgid "The Scalar step down block returns the number of semi-tones down to the previous note in the current key and mode." msgstr "" -#: js/ToneBlocks.js:284 -#.TRANS: partials are weighted components in a harmonic series -msgid "Partial weight must be between 0 and 1." +#: js/blocks/PitchBlocks.js:190 +#.TRANS: step up one note in current musical scale +msgid "scalar step up" msgstr "" -#: js/ToneBlocks.js:297 -#.TRANS: partials are weighted components in a harmonic series -msgid "Partial block should be used inside of a Weighted-partials block." +#: js/blocks/PitchBlocks.js:194 +msgid "The Scalar step up block returns the number of semi-tones up to the next note in the current key and mode." msgstr "" -#: js/ToneBlocks.js:325 -#.TRANS: partials are weighted components in a harmonic series -msgid "weighted partials" +#: js/blocks/PitchBlocks.js:212 +#.TRANS: the change measured in half-steps between the current pitch and the previous pitch +msgid "change in pitch" msgstr "" -#: js/ToneBlocks.js:383 -msgid "The Harmonic block will add harmonics to the contained notes." +#: js/blocks/PitchBlocks.js:216 +msgid "The Change in pitch block is the difference (in half steps) between the current pitch being played and the previous pitch played." msgstr "" -#: js/ToneBlocks.js:390 -#.TRANS: A harmonic is an overtone. -msgid "harmonic" +#: js/blocks/PitchBlocks.js:243 +#.TRANS: the change measured in scale-steps between the current pitch and the previous pitch +msgid "scalar change in pitch" msgstr "" -#: js/ToneBlocks.js:431 -msgid "The Distortion block adds distortion to the pitch." +#: js/blocks/PitchBlocks.js:250 +#: js/blocks/PitchBlocks.js:432 +#: js/blocks/PitchBlocks.js:1667 +#: js/turtleactions/DictActions.js:89 +#: js/widgets/temperament.js:610 +#: js/widgets/temperament.js:614 +#: js/widgets/temperament.js:855 +#.TRANS: convert current note to piano key (1-88) +#.TRANS: a mapping of pitch to the 88 piano keys +msgid "pitch number" msgstr "" -#: js/ToneBlocks.js:438 -#: js/timbre.js:2100 -#.TRANS: distortion is an alteration in the sound -msgid "distortion" +#: js/blocks/PitchBlocks.js:256 +msgid "The Pitch number block is the value of the pitch of the note currently being played." msgstr "" -#: js/ToneBlocks.js:487 -msgid "The Tremolo block adds a wavering effect." +#: js/blocks/PitchBlocks.js:329 +#: js/blocks/PitchBlocks.js:433 +#.TRANS: the current pitch expressed in Hertz +msgid "pitch in hertz" msgstr "" -#: js/ToneBlocks.js:495 -#: js/timbre.js:2092 -#.TRANS: a wavering effect in a musical tone -msgid "tremolo" +#: js/blocks/PitchBlocks.js:334 +msgid "The Pitch in Hertz block is the value in Hertz of the pitch of the note currently being played." msgstr "" -#: js/ToneBlocks.js:500 -#: js/ToneBlocks.js:569 -#: js/ToneBlocks.js:630 -#: js/ToneBlocks.js:689 -#: js/timbre.js:2134 -#: js/timbre.js:2222 -#: js/timbre.js:2317 -#: js/timbre.js:2419 -#.TRANS: rate at which tremolo wavers -msgid "rate" +#: js/blocks/PitchBlocks.js:367 +#: js/turtleactions/DictActions.js:87 +msgid "current pitch" msgstr "" -#: js/ToneBlocks.js:502 -#: js/ToneBlocks.js:630 -#: js/timbre.js:2137 -#: js/timbre.js:2328 -#.TRANS: amplitude of tremolo waver -msgid "depth" +#: js/blocks/PitchBlocks.js:373 +msgid "The Current Pitch block is used with the Pitch Converter block. In the example above, current pitch, sol 4, is displayed as 392 hertz." msgstr "" -#: js/ToneBlocks.js:559 -msgid "The Phaser block adds a sweeping sound." +#: js/blocks/PitchBlocks.js:410 +msgid "This block converts the pitch value of the last note played into different formats such as hertz, letter name, pitch number, et al." msgstr "" -#: js/ToneBlocks.js:566 -#: js/timbre.js:2098 -#.TRANS: alter the phase of the sound -msgid "phaser" +#: js/blocks/PitchBlocks.js:434 +msgid "alphabet" msgstr "" -#: js/ToneBlocks.js:569 -#: js/timbre.js:2422 -msgid "octaves" +#: js/blocks/PitchBlocks.js:436 +#.TRANS: Translate as "alphabet class" +msgid "letter class" msgstr "" -#: js/ToneBlocks.js:569 -#: js/timbre.js:2425 -msgid "base frequency" +#: js/blocks/PitchBlocks.js:437 +msgid "solfege class" msgstr "" -#: js/ToneBlocks.js:619 -msgid "The Chorus block adds a chorus effect." +#: js/blocks/PitchBlocks.js:438 +msgid "staff y" msgstr "" -#: js/ToneBlocks.js:627 -#: js/timbre.js:2096 -#.TRANS: musical effect to simulate a choral sound -msgid "chorus" +#: js/blocks/PitchBlocks.js:439 +msgid "solfege syllable" msgstr "" -#: js/ToneBlocks.js:630 -msgid "delay" +#: js/blocks/PitchBlocks.js:440 +msgid "pitch class" msgstr "" -#: js/ToneBlocks.js:678 -msgid "The Vibrato block adds a rapid, slight variation in pitch." +#: js/blocks/PitchBlocks.js:441 +msgid "scalar class" msgstr "" -#: js/ToneBlocks.js:686 -#: js/timbre.js:2094 -#.TRANS: a rapid, slight variation in pitch -msgid "vibrato" +#: js/blocks/PitchBlocks.js:443 +msgid "nth degree" msgstr "" -#: js/ToneBlocks.js:689 -#: js/timbre.js:2221 -msgid "intensity" +#: js/blocks/PitchBlocks.js:444 +msgid "pitch to shade" msgstr "" -#: js/ToneBlocks.js:733 -#.TRANS: select synthesizer -msgid "set synth" +#: js/blocks/PitchBlocks.js:445 +msgid "pitch to color" msgstr "" -#: js/ToneBlocks.js:804 -msgid "synth name" +#: js/blocks/PitchBlocks.js:629 +#: js/widgets/musickeyboard.js:735 +#.TRANS: MIDI is a technical standard for electronic music +msgid "MIDI" msgstr "" -#: js/ToneBlocks.js:842 -msgid "set default instrument" +#: js/blocks/PitchBlocks.js:642 +#.TRANS: set an offset associated with the numeric piano keyboard mapping +msgid "set pitch number offset" msgstr "" -#: js/ToneBlocks.js:895 -#: js/ToneBlocks.js:943 -#.TRANS: set the characteristics of a custom instrument -msgid "set instrument" +#: js/blocks/PitchBlocks.js:645 +msgid "The Set pitch number offset block is used to set the offset for mapping pitch numbers to pitch and octave." msgstr "" -#: js/ToneBlocks.js:898 -#: js/ToneBlocks.js:926 -#: js/ToneBlocks.js:932 -msgid "The Set instrument block selects a voice for the synthesizer," +#: js/blocks/PitchBlocks.js:679 +#.TRANS: convert piano key number (1-88) to pitch +msgid "number to pitch" msgstr "" -#: js/ToneBlocks.js:900 -#: js/ToneBlocks.js:934 -msgid "eg guitar piano violin or cello." +#: js/blocks/PitchBlocks.js:682 +msgid "The Number to pitch block will convert a pitch number to a pich name." msgstr "" -#: js/ToneBlocks.js:1015 -msgid "Import a sound file to use as an instrument and set its pitch center." +#: js/blocks/PitchBlocks.js:715 +#.TRANS: convert piano key number (1-88) to octave +msgid "number to octave" msgstr "" -#: js/ToneBlocks.js:1110 -msgid "Upload a sound file to connect with the sample block." +#: js/blocks/PitchBlocks.js:717 +msgid "The Number to octave block will convert a pitch number to an octave." msgstr "" -#: js/MeterBlocks.js:34 -#.TRANS: musical meter (time signature), e.g., 4:4 -msgid "current meter" +#: js/blocks/PitchBlocks.js:726 +msgid "y to pitch" msgstr "" -#: js/MeterBlocks.js:85 -#.TRANS: number of beats per minute -msgid "beat factor" +#: js/blocks/PitchBlocks.js:729 +msgid "Y to pitch block will convert a staff y position to corresponding pitch notation." msgstr "" -#: js/MeterBlocks.js:161 -msgid "The Beats per minute block returns the current beats per minute." +#: js/blocks/PitchBlocks.js:841 +msgid "accidental selector" msgstr "" -#: js/MeterBlocks.js:169 -#: js/status.js:152 -#.TRANS: number of beats played per minute -msgid "beats per minute2" +#: js/blocks/PitchBlocks.js:844 +msgid "The Accidental selector block is used to choose between double-sharp, sharp, natural, flat, and double-flat." msgstr "" -#: js/MeterBlocks.js:169 -#: js/MeterBlocks.js:1056 -#: js/MeterBlocks.js:1133 -#: js/MeterBlocks.js:1211 -#.TRANS: sets tempo by defining a beat and beats per minute -msgid "beats per minute" +#: js/blocks/PitchBlocks.js:858 +msgid "Pitch can be specified in terms of ni dha pa ma ga re sa." msgstr "" -#: js/MeterBlocks.js:233 -#.TRANS: count of current musical measure in meter -msgid "measure count" +#: js/blocks/PitchBlocks.js:872 +msgid "Pitch can be specified in terms of C D E F G A B." msgstr "" -#: js/MeterBlocks.js:241 -msgid "The Measure count block returns the current measure." +#: js/blocks/PitchBlocks.js:884 +msgid "solfege" msgstr "" -#: js/MeterBlocks.js:290 -#.TRANS: count of current beat in the meter -msgid "beat count" +#: js/blocks/PitchBlocks.js:887 +msgid "Pitch can be specified in terms of do re mi fa sol la ti." msgstr "" -#: js/MeterBlocks.js:300 -#: js/MeterBlocks.js:311 -#: js/MeterBlocks.js:565 -#: js/MeterBlocks.js:576 -msgid "The Beat count block is the number of the current beat," +#: js/blocks/PitchBlocks.js:922 +msgid "The Invert block rotates any contained notes around a target note." msgstr "" -#: js/MeterBlocks.js:313 -#: js/MeterBlocks.js:578 -msgid "eg 1, 2, 3, or 4." +#: js/blocks/PitchBlocks.js:929 +#.TRANS: pitch inversion rotates a pitch around another pitch +msgid "invert" msgstr "" -#: js/MeterBlocks.js:368 -#.TRANS: count the number of notes -msgid "sum note values" +#: js/blocks/PitchBlocks.js:968 +#.TRANS: pitch inversion rotates a pitch around another pitch (odd number) +msgid "invert (odd)" msgstr "" -#: js/MeterBlocks.js:376 -#: js/MeterBlocks.js:440 -msgid "The Note counter block can be used to count the number of contained notes." +#: js/blocks/PitchBlocks.js:1001 +#.TRANS: pitch inversion rotates a pitch around another pitch (even number) +msgid "invert (even)" msgstr "" -#: js/MeterBlocks.js:432 -#.TRANS: count the number of notes -msgid "note counter" +#: js/blocks/PitchBlocks.js:1022 +#.TRANS: register is the octave of the current pitch +msgid "register" msgstr "" -#: js/MeterBlocks.js:496 -#.TRANS: number of whole notes that have been played -msgid "whole notes played" +#: js/blocks/PitchBlocks.js:1026 +msgid "The Register block provides an easy way to modify the register (octave) of the notes that follow it." msgstr "" -#: js/MeterBlocks.js:505 -msgid "The Whole notes played block returns the total number of whole notes played." +#: js/blocks/PitchBlocks.js:1047 +#.TRANS: cents are units used to specify the ratio between pitches. There are 100 cents between successive notes. +msgid "50 cents" msgstr "" -#: js/MeterBlocks.js:555 -#: js/DictActions.js:83 -#.TRANS: number of notes that have been played -msgid "notes played" +#: js/blocks/PitchBlocks.js:1102 +msgid "The Semi-tone transposition block will shift the pitches contained inside Note blocks up (or down) by half steps." msgstr "" -#: js/MeterBlocks.js:653 -msgid "The No clock block decouples the notes from the master clock." +#: js/blocks/PitchBlocks.js:1104 +msgid "In the example shown above, sol is shifted up to sol#." msgstr "" -#: js/MeterBlocks.js:661 -#.TRANS: don't lock notes to master clock -msgid "no clock" +#: js/blocks/PitchBlocks.js:1110 +#.TRANS: adjust the amount of shift (up or down) of a pitch +msgid "semi-tone transpose" msgstr "" -#: js/MeterBlocks.js:700 -msgid "on weak beat do" +#: js/blocks/PitchBlocks.js:1143 +msgid "The Transpose by Ratio block will shift the pitches contained inside Note blocks up (or down) by a ratio" msgstr "" -#: js/MeterBlocks.js:705 -msgid "The On-weak-beat block lets you specify actions to take on weak (off) beats." +#: js/blocks/PitchBlocks.js:1149 +#.TRANS: adjust the amount of shift (up or down) of a pitch +msgid "transpose by ratio" msgstr "" -#: js/MeterBlocks.js:750 -msgid "on strong beat" +#: js/blocks/PitchBlocks.js:1232 +#.TRANS: down sixth means the note is five scale degrees below current note +msgid "down sixth" msgstr "" -#: js/MeterBlocks.js:758 -msgid "The On-strong-beat block lets you specify actions to take on specified beats." +#: js/blocks/PitchBlocks.js:1251 +#.TRANS: down third means the note is two scale degrees below current note +msgid "down third" msgstr "" -#: js/MeterBlocks.js:769 -msgid "beat" +#: js/blocks/PitchBlocks.js:1270 +#.TRANS: seventh means the note is the six scale degrees above current note +msgid "seventh" msgstr "" -#: js/MeterBlocks.js:813 -msgid "on every beat do" +#: js/blocks/PitchBlocks.js:1289 +#.TRANS: sixth means the note is the five scale degrees above current note +msgid "sixth" msgstr "" -#: js/MeterBlocks.js:821 -msgid "The On-every-beat block lets you specify actions to take on every beat." +#: js/blocks/PitchBlocks.js:1308 +#.TRANS: fifth means the note is the four scale degrees above current note +msgid "fifth" msgstr "" -#: js/MeterBlocks.js:874 -msgid "on every note do" +#: js/blocks/PitchBlocks.js:1328 +#.TRANS: fourth means the note is three scale degrees above current note +msgid "fourth" msgstr "" -#: js/MeterBlocks.js:882 -msgid "The On-every-note block lets you specify actions to take on every note." +#: js/blocks/PitchBlocks.js:1347 +#.TRANS: third means the note is two scale degrees above current note +msgid "third" msgstr "" -#: js/MeterBlocks.js:928 -#: js/MeterBlocks.js:999 -#.TRANS: sets tempo by defining a beat and beats per minute -msgid "master beats per minute" +#: js/blocks/PitchBlocks.js:1366 +#.TRANS: second means the note is one scale degree above current note +msgid "second" msgstr "" -#: js/MeterBlocks.js:952 -#: js/MeterBlocks.js:1078 -#: js/MeterBlocks.js:1135 -msgid "bpm" +#: js/blocks/PitchBlocks.js:1407 +msgid "The Scalar transposition block will shift the pitches contained inside Note blocks up (or down) the scale." msgstr "" -#: js/MeterBlocks.js:952 -#: js/MeterBlocks.js:1078 -#: js/MeterBlocks.js:1135 -msgid "beat value" +#: js/blocks/PitchBlocks.js:1409 +msgid "In the example shown above, sol is shifted up to la." msgstr "" -#: js/MeterBlocks.js:1024 -#: js/MeterBlocks.js:1167 -#: js/MeterBlocks.js:1241 -msgid "Beats per minute must be > 30." +#: js/blocks/PitchBlocks.js:1416 +#.TRANS: adjust the amount of shift (up or down) of a pitch by musical scale (scalar) steps +msgid "scalar transpose" msgstr "" -#: js/MeterBlocks.js:1027 -#: js/MeterBlocks.js:1170 -#: js/MeterBlocks.js:1244 -msgid "Maximum beats per minute is 1000." +#: js/blocks/PitchBlocks.js:1451 +msgid "The Accidental block is used to create sharps and flats" msgstr "" -#: js/MeterBlocks.js:1068 -msgid "The Beats per minute block sets the number of 1/4 notes per minute." +#: js/blocks/PitchBlocks.js:1458 +#.TRANS: An accidental is a modification to a pitch, e.g., sharp or flat. +msgid "accidental override" msgstr "" -#: js/MeterBlocks.js:1279 -#.TRANS: anacrusis -msgid "pickup" +#: js/blocks/PitchBlocks.js:1581 +msgid "The Hertz block (in combination with a Number block) will play a sound at the specified frequency." msgstr "" -#: js/MeterBlocks.js:1367 -msgid "number of beats" +#: js/blocks/PitchBlocks.js:1671 +msgid "The Pitch Number block will play a pitch associated by its number, e.g. 0 for C and 7 for G." msgstr "" -#: js/DictBlocks.js:77 -msgid "show dictionary" +#: js/blocks/PitchBlocks.js:1703 +#: js/blocks/PitchBlocks.js:1745 +#.TRANS: a numeric mapping of the notes in an octave based on the musical mode +#.TRANS: a numeric mapping of the notes in an octave based on the musical mode +msgid "nth modal pitch" msgstr "" -#: js/DictBlocks.js:129 -msgid "The Dictionary block returns a dictionary." +#: js/blocks/PitchBlocks.js:1706 +msgid "n^th Modal Pitch takes the pattern of pitches in semitones for a mode and makes each point a degree of the mode," msgstr "" -#: js/DictBlocks.js:197 -#: js/DictBlocks.js:339 -msgid "The Get-dict block returns a value in the dictionary for a specified key." +#: js/blocks/PitchBlocks.js:1708 +msgid "starting from 1 and regardless of tonal framework (i.e. not always 8 notes in the octave)" msgstr "" -#: js/DictBlocks.js:212 -#: js/DictBlocks.js:354 -#.TRANS: retrieve a value from the dictionary with a given key -msgid "get value" +#: js/blocks/PitchBlocks.js:1749 +msgid "N^th Modal Pitch takes a number as an input as the n^th degree for the given mode. 0 is the first position, 1 is the second, -1 is the note before the first etc." msgstr "" -#: js/DictBlocks.js:215 -#: js/DictBlocks.js:216 -#: js/DictBlocks.js:289 -#: js/DictBlocks.js:290 -#: js/DictBlocks.js:357 -#: js/DictBlocks.js:430 -#: js/DictBlocks.js:431 -msgid "key2" +#: js/blocks/PitchBlocks.js:1751 +msgid "The pitches change according to the mode specified without any need for respellings." msgstr "" -#: js/DictBlocks.js:271 -#: js/DictBlocks.js:411 -msgid "The Set-dict block sets a value in the dictionary for a specified key." +#: js/blocks/PitchBlocks.js:1790 +msgid "Scale Degree is a common convention in music. Scale Degree offers seven possible positions in the scale (1-7) and can be modified via accidentals." msgstr "" -#: js/DictBlocks.js:286 -#: js/DictBlocks.js:427 -#.TRANS: set a value in the dictionary for a given key -msgid "set value" +#: js/blocks/PitchBlocks.js:1792 +msgid "Scale Degree 1 is always the first pitch in a given scale, regardless of octave." msgstr "" -#: js/ExtrasBlocks.js:33 -msgid "fraction" +#: js/blocks/PitchBlocks.js:1814 +#.TRANS: step some number of notes in current musical scale +msgid "scalar step" msgstr "" -#: js/ExtrasBlocks.js:36 -msgid "Convert a float to a fraction" +#: js/blocks/PitchBlocks.js:1819 +msgid "The Scalar Step block (in combination with a Number block) will play the next pitch in a scale," msgstr "" -#: js/ExtrasBlocks.js:93 -msgid "save as ABC" +#: js/blocks/PitchBlocks.js:1821 +msgid "eg if the last note played was sol, Scalar Step 1 will play la." msgstr "" -#: js/ExtrasBlocks.js:96 -#: js/ExtrasBlocks.js:132 -#: js/ExtrasBlocks.js:168 -msgid "title" +#: js/blocks/PitchBlocks.js:1857 +msgid "The Pitch block specifies the pitch name and octave of a note that together determine the frequency of the note." msgstr "" -#: js/ExtrasBlocks.js:129 -msgid "save as Lilypond" +#: js/blocks/ProgramBlocks.js:33 +msgid "The Load-heap-from-app block loads the heap from a web page." msgstr "" -#: js/ExtrasBlocks.js:165 -msgid "save as SVG" +#: js/blocks/ProgramBlocks.js:44 +#.TRANS: load the heap contents from a URL +msgid "load heap from App" msgstr "" -#: js/ExtrasBlocks.js:216 -msgid "no background" +#: js/blocks/ProgramBlocks.js:95 +msgid "Error parsing JSON data:" msgstr "" -#: js/ExtrasBlocks.js:219 -msgid "The No background block eliminates the background from the saved SVG output." +#: js/blocks/ProgramBlocks.js:100 +msgid "404: Page not found" msgstr "" -#: js/ExtrasBlocks.js:247 -msgid "show blocks" +#: js/blocks/ProgramBlocks.js:133 +msgid "The Save-heap-to-app block saves the heap to a web page." msgstr "" -#: js/ExtrasBlocks.js:249 -msgid "The Show blocks block shows the blocks." +#: js/blocks/ProgramBlocks.js:144 +#.TRANS: save the heap contents to a URL +msgid "save heap to App" msgstr "" -#: js/ExtrasBlocks.js:274 -msgid "hide blocks" +#: js/blocks/ProgramBlocks.js:189 +msgid "Cannot find a valid heap for" msgstr "" -#: js/ExtrasBlocks.js:276 -msgid "The Hide blocks block hides the blocks." +#: js/blocks/ProgramBlocks.js:206 +msgid "The Load-heap block loads the heap from a file." msgstr "" -#: js/ExtrasBlocks.js:305 -#: js/ExtrasBlocks.js:335 -msgid "The Space block is used to add space between blocks." +#: js/blocks/ProgramBlocks.js:217 +#.TRANS: load the heap from a file +msgid "load heap" msgstr "" -#: js/ExtrasBlocks.js:373 -msgid "wait" +#: js/blocks/ProgramBlocks.js:270 +msgid "The file you selected does not contain a valid heap." msgstr "" -#: js/ExtrasBlocks.js:376 -msgid "The Wait block pauses the program for a specified number of seconds." +#: js/blocks/ProgramBlocks.js:275 +msgid "The loadHeap block needs a loadFile block." msgstr "" -#: js/ExtrasBlocks.js:430 -#: plugins/facebook.rtp:30 -msgid "comment" +#: js/blocks/ProgramBlocks.js:291 +msgid "The Set-heap block loads the heap." msgstr "" -#: js/ExtrasBlocks.js:466 -msgid "print" +#: js/blocks/ProgramBlocks.js:340 +msgid "The block you selected does not contain a valid heap." msgstr "" -#: js/ExtrasBlocks.js:473 -msgid "The Print block displays text at the top of the screen." +#: js/blocks/ProgramBlocks.js:343 +msgid "The Set heap block needs a heap." msgstr "" -#: js/ExtrasBlocks.js:579 -msgid "display grid" +#: js/blocks/ProgramBlocks.js:360 +msgid "The Load-dictionary block loads a dictionary from a file." msgstr "" -#: js/ExtrasBlocks.js:584 -msgid "The Display Grid Block changes the grid type" +#: js/blocks/ProgramBlocks.js:372 +#.TRANS: load a dictionary from a file +msgid "load dictionary" msgstr "" -#: js/ExtrasBlocks.js:686 -#: js/ExtrasBlocks.js:705 -#: js/ExtrasBlocks.js:728 -#: js/ExtrasBlocks.js:751 -#: js/ExtrasBlocks.js:769 -#: js/ExtrasBlocks.js:788 -#: js/ExtrasBlocks.js:807 -#: js/ExtrasBlocks.js:826 -msgid "unknown" +#: js/blocks/ProgramBlocks.js:390 +#: js/blocks/ProgramBlocks.js:658 +#: js/blocks/ToneBlocks.js:1025 +msgid "file" msgstr "" -#: js/SensorsBlocks.js:36 -msgid "The Input block prompts for keyboard input." +#: js/blocks/ProgramBlocks.js:444 +msgid "The file you selected does not contain a valid dictionary." msgstr "" -#: js/SensorsBlocks.js:46 -msgid "input" +#: js/blocks/ProgramBlocks.js:449 +msgid "The load dictionary block needs a load file block." msgstr "" -#: js/SensorsBlocks.js:64 -msgid "Input a value" +#: js/blocks/ProgramBlocks.js:466 +msgid "The Set-dictionary block loads a dictionary." msgstr "" -#: js/SensorsBlocks.js:126 -msgid "input value" +#: js/blocks/ProgramBlocks.js:477 +#.TRANS: load a dictionary from a JSON +msgid "set dictionary" msgstr "" -#: js/SensorsBlocks.js:131 -msgid "The Input-value block stores the input." +#: js/blocks/ProgramBlocks.js:546 +msgid "The block you selected does not contain a valid dictionary." msgstr "" -#: js/SensorsBlocks.js:238 -msgid "loudness" +#: js/blocks/ProgramBlocks.js:550 +msgid "The set dictionary block needs a dictionary." msgstr "" -#: js/SensorsBlocks.js:245 -msgid "The Loudness block returns the volume detected by the microphone." +#: js/blocks/ProgramBlocks.js:567 +msgid "The Save-heap block saves the heap to a file." msgstr "" -#: js/SensorsBlocks.js:300 -msgid "click" +#: js/blocks/ProgramBlocks.js:578 +#.TRANS: save the heap to a file +msgid "save heap" msgstr "" -#: js/SensorsBlocks.js:306 -msgid "The Click block triggers an event if a mouse has been clicked." +#: js/blocks/ProgramBlocks.js:629 +msgid "The Save-dictionary block saves a dictionary to a file." msgstr "" -#: js/SensorsBlocks.js:313 -msgid "The Click block triggers an event if a turtle has been clicked." +#: js/blocks/ProgramBlocks.js:640 +#.TRANS: save a dictionary to a file +msgid "save dictionary" msgstr "" -#: js/SensorsBlocks.js:342 -msgid "cursor over" +#: js/blocks/ProgramBlocks.js:720 +msgid "The Open palette block opens a palette." msgstr "" -#: js/SensorsBlocks.js:387 -msgid "cursor out" +#: js/blocks/ProgramBlocks.js:727 +msgid "open palette" msgstr "" -#: js/SensorsBlocks.js:433 -msgid "cursor button down" +#: js/blocks/ProgramBlocks.js:785 +msgid "The Delete block block removes a block." msgstr "" -#: js/SensorsBlocks.js:477 -msgid "cursor button up" +#: js/blocks/ProgramBlocks.js:797 +#.TRANS: Move this block to the trash. +msgid "delete block" msgstr "" -#: js/SensorsBlocks.js:638 -msgid "The Get red block returns the red component of the pixel under the mouse." +#: js/blocks/ProgramBlocks.js:861 +msgid "The Move block block moves a block." msgstr "" -#: js/SensorsBlocks.js:644 -msgid "The Get red block returns the red component of the pixel under the turtle." +#: js/blocks/ProgramBlocks.js:869 +#.TRANS: Move the position of a block on the screen. +msgid "move block" msgstr "" -#: js/SensorsBlocks.js:685 -#: plugins/rodi.rtp:216 -msgid "pixel color" +#: js/blocks/ProgramBlocks.js:881 +#: js/blocks/ProgramBlocks.js:1048 +msgid "block number" msgstr "" -#: js/SensorsBlocks.js:690 -msgid "The Get pixel block returns the color of the pixel under the mouse." +#: js/blocks/ProgramBlocks.js:935 +#.TRANS: Run program beginning at this block. +msgid "run block" msgstr "" -#: js/SensorsBlocks.js:696 -msgid "The Get pixel block returns the color of the pixel under the turtle." +#: js/blocks/ProgramBlocks.js:1025 +msgid "The Dock block block connections two blocks." msgstr "" -#: js/SensorsBlocks.js:758 -msgid "time" +#: js/blocks/ProgramBlocks.js:1036 +#.TRANS: We can connect a block to another block. +msgid "connect blocks" msgstr "" -#: js/SensorsBlocks.js:804 -msgid "cursor y" +#: js/blocks/ProgramBlocks.js:1048 +msgid "target block" msgstr "" -#: js/SensorsBlocks.js:809 -msgid "The Cursor Y block returns the vertical position of the mouse." +#: js/blocks/ProgramBlocks.js:1048 +msgid "connection number" msgstr "" -#: js/SensorsBlocks.js:845 -msgid "cursor x" +#: js/blocks/ProgramBlocks.js:1140 +msgid "The Make block block creates a new block." msgstr "" -#: js/SensorsBlocks.js:850 -msgid "The Cursor X block returns the horizontal position of the mouse." +#: js/blocks/ProgramBlocks.js:1152 +#.TRANS: Create a new block +msgid "make block" msgstr "" -#: js/SensorsBlocks.js:886 -msgid "mouse button" +#: js/blocks/ProgramBlocks.js:1285 +msgid "Cannot find block" msgstr "" -#: js/SensorsBlocks.js:888 -msgid "The Mouse-button block returns True if the mouse button is pressed." +#: js/blocks/ProgramBlocks.js:1304 +#: js/blocks/ProgramBlocks.js:1313 +msgid "Warning: block argument type mismatch" msgstr "" -#: js/SensorsBlocks.js:934 -msgid "to ASCII" +#: js/blocks/ProgramBlocks.js:1347 +msgid "The Open project block is used to open a project from a web page." msgstr "" -#: js/SensorsBlocks.js:938 -msgid "The To ASCII block converts numbers to letters." +#: js/blocks/ProgramBlocks.js:1357 +msgid "open project" msgstr "" -#: js/SensorsBlocks.js:1005 -msgid "The Keyboard block returns computer keyboard input." +#: js/blocks/ProgramBlocks.js:1410 +msgid "Please enter a valid URL." msgstr "" -#: js/IntervalsActions.js:216 -msgid "Adding missing pitch number 0." +#: js/blocks/ToneBlocks.js:34 +msgid "oscillator" msgstr "" -#: js/IntervalsActions.js:224 -msgid "Ignoring pitch numbers less than zero or greater than eleven." +#: js/blocks/ToneBlocks.js:42 +#: js/blocks/WidgetBlocks.js:179 +#: js/widgets/timbre.js:1558 +#: js/widgets/timbre.js:1808 +#.TRANS: there are different types (sine, triangle, square...) of oscillators. +#.TRANS: type of filter, e.g., lowpass, highpass, etc. +msgid "type" msgstr "" -#: js/IntervalsActions.js:230 -msgid "Ignoring duplicate pitch numbers." +#: js/blocks/ToneBlocks.js:44 +#: js/widgets/timbre.js:1562 +#.TRANS: Partials refers to the number of sine waves combined into the sound. +msgid "partials" msgstr "" -#: js/PitchActions.js:88 -msgid "The Scalar Step Block must be used inside of a Note Block." +#: js/blocks/ToneBlocks.js:76 +msgid "You are adding multiple oscillator blocks." msgstr "" -#: js/PitchActions.js:107 -msgid "The Scalar Step Block must be preceded by a Pitch Block." +#: js/blocks/ToneBlocks.js:144 +#: js/widgets/timbre.js:1225 +#.TRANS: a duo synthesizer combines a synth with a sequencer +msgid "duo synth" msgstr "" -#: js/DrumActions.js:231 -msgid "Noise Block: Did you mean to use a Note block?" +#: js/blocks/ToneBlocks.js:149 +msgid "The Duo synth block is a duo-frequency modulator used to define a timbre." msgstr "" -#: js/MeterActions.js:101 -#: js/MeterActions.js:139 -msgid "beats per minute must be greater than" +#: js/blocks/ToneBlocks.js:157 +#: js/widgets/timbre.js:1476 +msgid "vibrato rate" msgstr "" -#: js/MeterActions.js:111 -#: js/MeterActions.js:149 -msgid "maximum" +#: js/blocks/ToneBlocks.js:157 +msgid "vibrato intensity" msgstr "" -#: js/MeterActions.js:117 -#: js/MeterActions.js:155 -msgid "beats per minute is" +#: js/blocks/ToneBlocks.js:185 +#: js/widgets/timbre.js:1221 +#.TRANS: AM (amplitude modulation) synthesizer +msgid "AM synth" msgstr "" -#: js/ToneActions.js:134 -msgid "Vibrato intensity must be between 1 and 100." +#: js/blocks/ToneBlocks.js:189 +msgid "The AM synth block is an amplitude modulator used to define a timbre." msgstr "" -#: js/ToneActions.js:139 -msgid "Vibrato rate must be greater than 0." +#: js/blocks/ToneBlocks.js:224 +#: js/widgets/timbre.js:1223 +#.TRANS: FM (frequency modulation) synthesizer +msgid "FM synth" msgstr "" -#: js/ToneActions.js:192 -#: js/ToneActions.js:265 -#.TRANS: Depth is the intesity of the tremolo or chorus effect. -msgid "Depth is out of range." +#: js/blocks/ToneBlocks.js:228 +msgid "The FM synth block is a frequency modulator used to define a timbre." msgstr "" -#: js/ToneActions.js:301 -msgid "Distortion must be from 0 to 100." +#: js/blocks/ToneBlocks.js:262 +msgid "partial" msgstr "" -#: js/ToneActions.js:332 -#.TRANS: partials components in a harmonic series -msgid "Partial must be greater than or equal to 0." +#: js/blocks/ToneBlocks.js:265 +msgid "The Partial block is used to specify a weight for a specific partial harmonic." msgstr "" -#: js/ToneActions.js:378 -#: js/ToneActions.js:417 -#: js/ToneActions.js:456 -#: js/timbre.js:782 -msgid "Unable to use synth due to existing oscillator" +#: js/blocks/ToneBlocks.js:284 +#.TRANS: partials are weighted components in a harmonic series +msgid "Partial weight must be between 0 and 1." msgstr "" -#: js/ToneActions.js:388 -#: js/ToneActions.js:427 -msgid "The input cannot be negative." +#: js/blocks/ToneBlocks.js:297 +#.TRANS: partials are weighted components in a harmonic series +msgid "Partial block should be used inside of a Weighted-partials block." msgstr "" -#: js/DictActions.js:75 -#: js/DictActions.js:153 -#: js/DictActions.js:188 -msgid "font" +#: js/blocks/ToneBlocks.js:325 +#.TRANS: partials are weighted components in a harmonic series +msgid "weighted partials" msgstr "" -#: js/musicutils.js:363 -#: js/musicutils.js:471 -#: js/pitchdrummatrix.js:151 -#: js/musickeyboard.js:2563 -msgid "rest" +#: js/blocks/ToneBlocks.js:383 +msgid "The Harmonic block will add harmonics to the contained notes." msgstr "" -#: js/musicutils.js:565 -#.TRANS: ordinal number. Please keep exactly one space between each number. -msgid "1st 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th" +#: js/blocks/ToneBlocks.js:390 +#.TRANS: A harmonic is an overtone. +msgid "harmonic" msgstr "" -#: js/musicutils.js:629 -#: js/musicutils.js:812 -#: js/musicutils.js:911 -#.TRANS: augmented is a music term related to intervals -msgid "augmented" +#: js/blocks/ToneBlocks.js:431 +msgid "The Distortion block adds distortion to the pitch." msgstr "" -#: js/musicutils.js:631 -#: js/musicutils.js:813 -#: js/musicutils.js:910 -#.TRANS: diminished is a music term related to intervals and mode -msgid "diminished" +#: js/blocks/ToneBlocks.js:438 +#: js/widgets/timbre.js:2100 +#.TRANS: distortion is an alteration in the sound +msgid "distortion" msgstr "" -#: js/musicutils.js:639 -#.TRANS: twelve semi-tone scale for music -msgid "chromatic" +#: js/blocks/ToneBlocks.js:487 +msgid "The Tremolo block adds a wavering effect." msgstr "" -#: js/musicutils.js:640 -msgid "algerian" +#: js/blocks/ToneBlocks.js:495 +#: js/widgets/timbre.js:2092 +#.TRANS: a wavering effect in a musical tone +msgid "tremolo" msgstr "" -#: js/musicutils.js:641 -msgid "spanish" +#: js/blocks/ToneBlocks.js:500 +#: js/blocks/ToneBlocks.js:569 +#: js/blocks/ToneBlocks.js:630 +#: js/blocks/ToneBlocks.js:689 +#: js/widgets/timbre.js:2134 +#: js/widgets/timbre.js:2222 +#: js/widgets/timbre.js:2317 +#: js/widgets/timbre.js:2419 +#.TRANS: rate at which tremolo wavers +msgid "rate" msgstr "" -#: js/musicutils.js:643 -#.TRANS: modal scale in music -msgid "octatonic" +#: js/blocks/ToneBlocks.js:502 +#: js/blocks/ToneBlocks.js:630 +#: js/widgets/timbre.js:2137 +#: js/widgets/timbre.js:2328 +#.TRANS: amplitude of tremolo waver +msgid "depth" msgstr "" -#: js/musicutils.js:645 -#.TRANS: harmonic major scale in music -msgid "harmonic major" +#: js/blocks/ToneBlocks.js:559 +msgid "The Phaser block adds a sweeping sound." msgstr "" -#: js/musicutils.js:647 -#.TRANS: natural minor scales in music -msgid "natural minor" +#: js/blocks/ToneBlocks.js:566 +#: js/widgets/timbre.js:2098 +#.TRANS: alter the phase of the sound +msgid "phaser" msgstr "" -#: js/musicutils.js:649 -#.TRANS: harmonic minor scale in music -msgid "harmonic minor" +#: js/blocks/ToneBlocks.js:569 +#: js/turtleactions/IntervalsActions.js:114 +#: js/widgets/timbre.js:2422 +msgid "octaves" msgstr "" -#: js/musicutils.js:651 -#.TRANS: melodic minor scale in music -msgid "melodic minor" +#: js/blocks/ToneBlocks.js:569 +#: js/widgets/timbre.js:2425 +msgid "base frequency" msgstr "" -#: js/musicutils.js:655 -#.TRANS: modal scale for music -msgid "dorian" +#: js/blocks/ToneBlocks.js:619 +msgid "The Chorus block adds a chorus effect." msgstr "" -#: js/musicutils.js:657 -#.TRANS: modal scale for music -msgid "phrygian" +#: js/blocks/ToneBlocks.js:627 +#: js/widgets/timbre.js:2096 +#.TRANS: musical effect to simulate a choral sound +msgid "chorus" msgstr "" -#: js/musicutils.js:659 -#.TRANS: modal scale for music -msgid "lydian" +#: js/blocks/ToneBlocks.js:630 +msgid "delay" msgstr "" -#: js/musicutils.js:661 -#.TRANS: modal scale for music -msgid "mixolydian" +#: js/blocks/ToneBlocks.js:678 +msgid "The Vibrato block adds a rapid, slight variation in pitch." msgstr "" -#: js/musicutils.js:665 -#.TRANS: modal scale for music -msgid "locrian" +#: js/blocks/ToneBlocks.js:686 +#: js/widgets/timbre.js:2094 +#.TRANS: a rapid, slight variation in pitch +msgid "vibrato" msgstr "" -#: js/musicutils.js:667 -#.TRANS: minor jazz scale for music -msgid "jazz minor" +#: js/blocks/ToneBlocks.js:689 +#: js/widgets/timbre.js:2221 +msgid "intensity" msgstr "" -#: js/musicutils.js:669 -#.TRANS: bebop scale for music -msgid "bebop" +#: js/blocks/ToneBlocks.js:733 +#.TRANS: select synthesizer +msgid "set synth" msgstr "" -#: js/musicutils.js:670 -msgid "arabic" +#: js/blocks/ToneBlocks.js:804 +msgid "synth name" msgstr "" -#: js/musicutils.js:671 -msgid "byzantine" +#: js/blocks/ToneBlocks.js:842 +msgid "set default instrument" msgstr "" -#: js/musicutils.js:673 -#.TRANS: musical scale for music by Verdi -msgid "enigmatic" +#: js/blocks/ToneBlocks.js:895 +#: js/blocks/ToneBlocks.js:943 +#.TRANS: set the characteristics of a custom instrument +msgid "set instrument" msgstr "" -#: js/musicutils.js:674 -msgid "ethiopian" +#: js/blocks/ToneBlocks.js:898 +#: js/blocks/ToneBlocks.js:926 +#: js/blocks/ToneBlocks.js:932 +msgid "The Set instrument block selects a voice for the synthesizer," msgstr "" -#: js/musicutils.js:676 -#.TRANS: Ethiopic scale for music -msgid "geez" +#: js/blocks/ToneBlocks.js:900 +#: js/blocks/ToneBlocks.js:934 +msgid "eg guitar piano violin or cello." msgstr "" -#: js/musicutils.js:677 -msgid "hindu" +#: js/blocks/ToneBlocks.js:1015 +msgid "Import a sound file to use as an instrument and set its pitch center." msgstr "" -#: js/musicutils.js:678 -msgid "hungarian" +#: js/blocks/ToneBlocks.js:1110 +msgid "Upload a sound file to connect with the sample block." msgstr "" -#: js/musicutils.js:680 -#.TRANS: minor Romanian scale for music -msgid "romanian minor" +#: js/blocks/VolumeBlocks.js:35 +msgid "synth volume" msgstr "" -#: js/musicutils.js:681 -msgid "spanish gypsy" +#: js/blocks/VolumeBlocks.js:39 +msgid "The Synth volume block returns the current volume of the current synthesizer." msgstr "" -#: js/musicutils.js:683 -#.TRANS: musical scale for Mid-Eastern music -msgid "maqam" +#: js/blocks/VolumeBlocks.js:105 +msgid "master volume" msgstr "" -#: js/musicutils.js:685 -#.TRANS: minor blues scale for music -msgid "minor blues" +#: js/blocks/VolumeBlocks.js:109 +msgid "The Master volume block returns the master volume." msgstr "" -#: js/musicutils.js:687 -#.TRANS: major blues scale for music -msgid "major blues" +#: js/blocks/VolumeBlocks.js:355 +#: js/blocks/VolumeBlocks.js:524 +msgid "set synth volume" msgstr "" -#: js/musicutils.js:688 -msgid "whole tone" +#: js/blocks/VolumeBlocks.js:362 +#: js/blocks/VolumeBlocks.js:545 +msgid "synth" msgstr "" -#: js/musicutils.js:690 -#.TRANS: pentatonic is a general term that means "five note scale". This scale is typically known as "minor pentatonic" -msgid "minor pentatonic" +#: js/blocks/VolumeBlocks.js:403 +#: js/blocks/VolumeBlocks.js:577 +#: js/blocks/VolumeBlocks.js:740 +#: js/turtleactions/VolumeActions.js:173 +msgid "Setting volume to 0." msgstr "" -#: js/musicutils.js:692 -#.TRANS: pentatonic is a general term that means "five note scale". This scale is typically known as "major pentatonic" -msgid "major pentatonic" +#: js/blocks/VolumeBlocks.js:440 +msgid "Synth not found" msgstr "" -#: js/musicutils.js:693 -msgid "chinese" +#: js/blocks/VolumeBlocks.js:494 +msgid "set drum volume" msgstr "" -#: js/musicutils.js:694 -msgid "egyptian" +#: js/blocks/VolumeBlocks.js:530 +msgid "The Set synth volume block will change the volume of a particular synth," msgstr "" -#: js/musicutils.js:696 -#.TRANS: https://en.wikipedia.org/wiki/Hirajoshi_scale NOTE: There are three different versions of this scale -msgid "hirajoshi" +#: js/blocks/VolumeBlocks.js:532 +msgid "eg guitar violin snare drum etc." msgstr "" -#: js/musicutils.js:697 -msgid "Japan" +#: js/blocks/VolumeBlocks.js:534 +msgid "The default volume is 50." msgstr "" -#: js/musicutils.js:699 -#.TRANS: https://en.wikipedia.org/wiki/In_scale and https://en.wikipedia.org/wiki/Sakura_Sakura -msgid "in" +#: js/blocks/VolumeBlocks.js:536 +msgid "The range is 0 for silence to 100 for full volume." msgstr "" -#: js/musicutils.js:701 -#.TRANS: https://en.wikipedia.org/wiki/Miny%C5%8D_scale -msgid "minyo" +#: js/blocks/VolumeBlocks.js:597 +msgid "set panning" msgstr "" -#: js/musicutils.js:703 -#.TRANS: Italian mathematician -msgid "fibonacci" +#: js/blocks/VolumeBlocks.js:603 +msgid "The Set Panning block sets the panning for all synthesizers." msgstr "" -#: js/musicutils.js:708 -#: js/musicutils.js:1106 -#.TRANS: lowpass filter -msgid "lowpass" +#: js/blocks/VolumeBlocks.js:625 +msgid "Warning: Sound is coming out from only the left or right side." msgstr "" -#: js/musicutils.js:710 -#: js/musicutils.js:1107 -#.TRANS: bandpass filter -msgid "bandpass" +#: js/blocks/VolumeBlocks.js:647 +#: js/blocks/VolumeBlocks.js:695 +msgid "set master volume" msgstr "" -#: js/musicutils.js:712 -#: js/musicutils.js:1108 -#.TRANS: high-shelf filter -msgid "highshelf" +#: js/blocks/VolumeBlocks.js:653 +msgid "The Set master volume block sets the volume for all synthesizers." msgstr "" -#: js/musicutils.js:714 -#: js/musicutils.js:1109 -#.TRANS: low-shelf filter -msgid "lowshelf" +#: js/blocks/VolumeBlocks.js:784 +msgid "The Set relative volume block changes the volume of the contained notes." msgstr "" -#: js/musicutils.js:716 -#: js/musicutils.js:1110 -#.TRANS: notch-shelf filter -msgid "notch" +#: js/blocks/VolumeBlocks.js:791 +msgid "set relative volume" msgstr "" -#: js/musicutils.js:718 -#: js/musicutils.js:1111 -#.TRANS: all-pass filter -msgid "allpass" +#: js/blocks/VolumeBlocks.js:857 +msgid "decrescendo" msgstr "" -#: js/musicutils.js:720 -#: js/musicutils.js:1112 -#.TRANS: peaking filter -msgid "peaking" +#: js/blocks/VolumeBlocks.js:921 +msgid "crescendo" msgstr "" -#: js/musicutils.js:731 -#: js/synthutils.js:58 -#.TRANS: musical instrument -msgid "violin" +#: js/blocks/WidgetBlocks.js:81 +#.TRANS: sound envelope (ADSR) +msgid "envelope" msgstr "" -#: js/musicutils.js:732 -#: js/synthutils.js:60 -#.TRANS: viola musical instrument -msgid "viola" +#: js/blocks/WidgetBlocks.js:89 +#.TRANS: Attack time is the time taken for initial run-up of level from nil to peak, beginning when the key is first pressed. +msgid "attack" msgstr "" -#: js/musicutils.js:733 -#: js/synthutils.js:98 -#.TRANS: xylophone musical instrument -msgid "xylophone" +#: js/blocks/WidgetBlocks.js:91 +#.TRANS: Decay time is the time taken for the subsequent run down from the attack level to the designated sustain level. +msgid "decay" msgstr "" -#: js/musicutils.js:734 -#: js/synthutils.js:120 -#.TRANS: vibraphone musical instrument -msgid "vibraphone" +#: js/blocks/WidgetBlocks.js:93 +#.TRANS: Sustain level is the level during the main sequence of the sound's duration, until the key is released. +msgid "sustain" msgstr "" -#: js/musicutils.js:735 -#: js/synthutils.js:62 -#.TRANS: musical instrument -msgid "cello" +#: js/blocks/WidgetBlocks.js:95 +#.TRANS: Release time is the time taken for the level to decay from the sustain level to zero after the key is released. +msgid "release" msgstr "" -#: js/musicutils.js:737 -#: js/synthutils.js:66 -#.TRANS: viola musical instrument -msgid "double bass" +#: js/blocks/WidgetBlocks.js:113 +msgid "Attack value should be from 0 to 100." msgstr "" -#: js/musicutils.js:738 -#: js/synthutils.js:68 -#: js/rhythmruler.js:2119 -#.TRANS: musical instrument -msgid "guitar" +#: js/blocks/WidgetBlocks.js:116 +msgid "Decay value should be from 0 to 100." msgstr "" -#: js/musicutils.js:739 -#: js/synthutils.js:70 -#.TRANS: musical instrument -msgid "acoustic guitar" +#: js/blocks/WidgetBlocks.js:119 +msgid "Sustain value should be from 0 to 100." msgstr "" -#: js/musicutils.js:740 -#: js/synthutils.js:72 -#.TRANS: musical instrument -msgid "flute" +#: js/blocks/WidgetBlocks.js:122 +msgid "Release value should be from 0-100." msgstr "" -#: js/musicutils.js:741 -#: js/synthutils.js:74 -#.TRANS: musical instrument -msgid "clarinet" +#: js/blocks/WidgetBlocks.js:140 +msgid "You are adding multiple envelope blocks." msgstr "" -#: js/musicutils.js:742 -#: js/synthutils.js:76 -#.TRANS: musical instrument -msgid "saxophone" +#: js/blocks/WidgetBlocks.js:171 +#.TRANS: a filter removes some unwanted components from a signal +msgid "filter" msgstr "" -#: js/musicutils.js:743 -#: js/synthutils.js:78 -#.TRANS: musical instrument -msgid "tuba" +#: js/blocks/WidgetBlocks.js:181 +#: js/widgets/timbre.js:1818 +#.TRANS: rolloff is the steepness of a change in frequency. +msgid "rolloff" msgstr "" -#: js/musicutils.js:744 -#: js/synthutils.js:80 -#.TRANS: musical instrument -msgid "trumpet" +#: js/blocks/WidgetBlocks.js:213 +#.TRANS: rolloff is the steepness of a change in frequency. +msgid "Rolloff value should be either -12, -24, -48, or -96 decibels/octave." msgstr "" -#: js/musicutils.js:745 -#: js/synthutils.js:82 -#.TRANS: musical instrument -msgid "oboe" +#: js/blocks/WidgetBlocks.js:252 +msgid "The Temperament tool is used to define custom tuning." msgstr "" -#: js/musicutils.js:746 -#: js/synthutils.js:84 -#.TRANS: musical instrument -msgid "trombone" +#: js/blocks/WidgetBlocks.js:332 +#: js/blocks/WidgetBlocks.js:1573 +#: js/widgets/sampler.js:547 +msgid "Upload a sample and adjust its pitch center." msgstr "" -#: js/musicutils.js:747 -#: js/synthutils.js:100 -#.TRANS: polytone synthesizer -msgid "electronic synth" +#: js/blocks/WidgetBlocks.js:339 +#.TRANS: the speed at music is should be played. +msgid "sampler" msgstr "" -#: js/musicutils.js:748 -#: js/synthutils.js:102 -#.TRANS: simple monotone synthesizer -msgid "simple 1" +#: js/blocks/WidgetBlocks.js:517 +msgid "The Meter block opens a tool to select strong beats for the meter." msgstr "" -#: js/musicutils.js:749 -msgid "simple 2" +#: js/blocks/WidgetBlocks.js:573 +msgid "The oscilloscope block opens a tool to visualize waveforms." msgstr "" -#: js/musicutils.js:750 -msgid "simple 3" +#: js/blocks/WidgetBlocks.js:578 +msgid "oscilloscope" msgstr "" -#: js/musicutils.js:751 -msgid "simple 4" +#: js/blocks/WidgetBlocks.js:645 +msgid "The Custom mode block opens a tool to explore musical mode (the spacing of the notes in a scale)." msgstr "" -#: js/musicutils.js:753 -#: js/synthutils.js:49 -#.TRANS: brown noise synthesizer -msgid "brown noise" +#: js/blocks/WidgetBlocks.js:651 +#.TRANS: musical mode is the pattern of half-steps in an octave, e.g., Major or Minor modes +msgid "custom mode" msgstr "" -#: js/musicutils.js:754 -#: js/synthutils.js:51 -#.TRANS: pink noise synthesizer -msgid "pink noise" +#: js/blocks/WidgetBlocks.js:700 +msgid "The Tempo block opens a metronome to visualize the beat." msgstr "" -#: js/musicutils.js:756 -#: js/synthutils.js:127 -#: js/rhythmruler.js:1670 -#: js/rhythmruler.js:1928 -#.TRANS: musical instrument -msgid "snare drum" +#: js/blocks/WidgetBlocks.js:762 +msgid "The Arpeggio Widget is used to compose chord sequences." msgstr "" -#: js/musicutils.js:757 -#: js/synthutils.js:129 -#.TRANS: musical instrument -msgid "kick drum" +#: js/blocks/WidgetBlocks.js:837 +msgid "The Pitch drum matrix is used to map pitches to drum sounds." msgstr "" -#: js/musicutils.js:758 -#: js/synthutils.js:131 -#.TRANS: musical instrument -msgid "tom tom" +#: js/blocks/WidgetBlocks.js:842 +#.TRANS: makes a mapping between pitches and drum sounds +msgid "pitch-drum mapper" msgstr "" -#: js/musicutils.js:759 -#: js/synthutils.js:133 -#.TRANS: musical instrument -msgid "floor tom" +#: js/blocks/WidgetBlocks.js:891 +msgid "You must have at least one pitch block and one drum block in the matrix." msgstr "" -#: js/musicutils.js:760 -#: js/synthutils.js:135 -#.TRANS: musical instrument -msgid "bass drum" +#: js/blocks/WidgetBlocks.js:920 +msgid "The Pitch slider tool to is used to generate pitches at selected frequencies." msgstr "" -#: js/musicutils.js:761 -#: js/synthutils.js:137 -#.TRANS: a drum made from an inverted cup -msgid "cup drum" +#: js/blocks/WidgetBlocks.js:925 +#.TRANS: widget to generate pitches using a slider +msgid "pitch slider" msgstr "" -#: js/musicutils.js:762 -#: js/synthutils.js:139 -#.TRANS: musical instrument -msgid "darbuka drum" +#: js/blocks/WidgetBlocks.js:977 +msgid "chromatic keyboard" msgstr "" -#: js/musicutils.js:763 -#: js/synthutils.js:143 -#.TRANS: musical instrument -msgid "hi hat" +#: js/blocks/WidgetBlocks.js:1011 +#: js/blocks/WidgetBlocks.js:1077 +#.TRANS: widget to generate pitches using a slider +msgid "music keyboard" msgstr "" -#: js/musicutils.js:764 -#: js/synthutils.js:145 -#.TRANS: a small metal bell -msgid "ride bell" +#: js/blocks/WidgetBlocks.js:1062 +#: js/blocks/WidgetBlocks.js:1069 +msgid "The Music keyboard block opens a piano keyboard that can be used to create notes." msgstr "" -#: js/musicutils.js:765 -#: js/synthutils.js:147 -#.TRANS: musical instrument -msgid "cow bell" +#: js/blocks/WidgetBlocks.js:1128 +msgid "The Pitch staircase tool to is used to generate pitches from a given ratio." msgstr "" -#: js/musicutils.js:766 -msgid "japanese drum" +#: js/blocks/WidgetBlocks.js:1135 +#.TRANS: generate a progressive sequence of pitches +msgid "pitch staircase" msgstr "" -#: js/musicutils.js:767 -#: js/synthutils.js:153 -#.TRANS: musical instrument -msgid "japanese bell" +#: js/blocks/WidgetBlocks.js:1222 +msgid "The Rhythm Maker block opens a tool to create drum machines." msgstr "" -#: js/musicutils.js:768 -#: js/synthutils.js:149 -#.TRANS: musical instrument -msgid "triangle bell" +#: js/blocks/WidgetBlocks.js:1291 +msgid "G major scale" msgstr "" -#: js/musicutils.js:769 -#: js/synthutils.js:151 -#.TRANS: musical instrument -msgid "finger cymbals" +#: js/blocks/WidgetBlocks.js:1326 +msgid "C major scale" msgstr "" -#: js/musicutils.js:770 -#: js/synthutils.js:155 -#.TRANS: a musically tuned set of bells -msgid "chime" +#: js/blocks/WidgetBlocks.js:1366 +msgid "The Phrase Maker block opens a tool to create musical phrases." msgstr "" -#: js/musicutils.js:771 -#: js/synthutils.js:157 -#.TRANS: a musical instrument -msgid "gong" +#: js/blocks/WidgetBlocks.js:1373 +#.TRANS: assigns pitch to a sequence of beats to generate a melody +msgid "phrase maker" msgstr "" -#: js/musicutils.js:772 -#: js/synthutils.js:159 -#.TRANS: sound effect -msgid "clang" +#: js/blocks/WidgetBlocks.js:1444 +msgid "You must have at least one pitch block and one rhythm block in the matrix." msgstr "" -#: js/musicutils.js:773 -#: js/synthutils.js:161 -#.TRANS: sound effect -msgid "crash" +#: js/blocks/WidgetBlocks.js:1503 +msgid "The Status block opens a tool for inspecting the status of Music Blocks as it is running." msgstr "" -#: js/musicutils.js:774 -#: js/synthutils.js:163 -#.TRANS: sound effect -msgid "bottle" +#: js/blocks/WidgetBlocks.js:1580 +#.TRANS: AI-generated music +msgid "aimusic" msgstr "" -#: js/musicutils.js:775 -#: js/synthutils.js:165 -#.TRANS: sound effect -msgid "clap" +#: js/turtleactions/MeterActions.js:101 +#: js/turtleactions/MeterActions.js:139 +msgid "beats per minute must be greater than" msgstr "" -#: js/musicutils.js:776 -#: js/synthutils.js:167 -#.TRANS: sound effect -msgid "slap" +#: js/turtleactions/MeterActions.js:111 +#: js/turtleactions/MeterActions.js:149 +msgid "maximum" msgstr "" -#: js/musicutils.js:777 -#: js/synthutils.js:169 -#.TRANS: sound effect -msgid "splash" +#: js/turtleactions/MeterActions.js:117 +#: js/turtleactions/MeterActions.js:155 +msgid "beats per minute is" msgstr "" -#: js/musicutils.js:778 -#: js/synthutils.js:171 -#.TRANS: sound effect -msgid "bubbles" +#: js/turtleactions/DictActions.js:75 +#: js/turtleactions/DictActions.js:142 +#: js/turtleactions/DictActions.js:172 +msgid "font" msgstr "" -#: js/musicutils.js:779 -#: js/synthutils.js:173 -#.TRANS: sound effect -msgid "raindrop" +#: js/turtleactions/DictActions.js:255 +msgid "Dictionary with this name does not exist" msgstr "" -#: js/musicutils.js:780 -#: js/synthutils.js:175 -#.TRANS: animal sound effect -msgid "cat" +#: js/turtleactions/DictActions.js:259 +msgid "Key with this name does not exist in " msgstr "" -#: js/musicutils.js:781 -#: js/synthutils.js:177 -#.TRANS: animal sound effect -msgid "cricket" +#: js/turtleactions/DrumActions.js:227 +msgid "Noise Block: Did you mean to use a Note block?" msgstr "" -#: js/musicutils.js:782 -#: js/synthutils.js:179 -#.TRANS: animal sound effect -msgid "dog" +#: js/turtleactions/IntervalsActions.js:113 +msgid "one" msgstr "" -#: js/musicutils.js:784 -#: js/synthutils.js:86 -#.TRANS: musical instrument -msgid "banjo" +#: js/turtleactions/IntervalsActions.js:113 +msgid "two" msgstr "" -#: js/musicutils.js:785 -#: js/synthutils.js:88 -#.TRANS: musical instrument -msgid "koto" +#: js/turtleactions/IntervalsActions.js:113 +msgid "three" msgstr "" -#: js/musicutils.js:786 -#: js/synthutils.js:90 -#.TRANS: musical instrument -msgid "dulcimer" +#: js/turtleactions/IntervalsActions.js:113 +msgid "four" msgstr "" -#: js/musicutils.js:787 -#: js/synthutils.js:92 -#.TRANS: musical instrument -msgid "electric guitar" +#: js/turtleactions/IntervalsActions.js:113 +msgid "five" msgstr "" -#: js/musicutils.js:788 -#: js/synthutils.js:94 -#.TRANS: musical instrument -msgid "bassoon" +#: js/turtleactions/IntervalsActions.js:113 +msgid "six" msgstr "" -#: js/musicutils.js:789 -#: js/synthutils.js:96 -#.TRANS: musical instrument -msgid "celeste" +#: js/turtleactions/IntervalsActions.js:113 +msgid "seven" msgstr "" -#: js/musicutils.js:791 -#: js/musicutils.js:1123 -#: js/musicutils.js:1131 -#: js/temperament.js:650 -#.TRANS: musical temperament -msgid "equal" +#: js/turtleactions/IntervalsActions.js:113 +msgid "eight" msgstr "" -#: js/musicutils.js:793 -#: js/musicutils.js:1125 -#: js/musicutils.js:1133 -#.TRANS: musical temperament -msgid "Pythagorean" +#: js/turtleactions/IntervalsActions.js:113 +msgid "nine" msgstr "" -#: js/musicutils.js:795 -#: js/musicutils.js:1124 -#: js/musicutils.js:1132 -#.TRANS: musical temperament -msgid "just intonation" +#: js/turtleactions/IntervalsActions.js:119 +msgid "a" msgstr "" -#: js/musicutils.js:797 -#: js/musicutils.js:1126 -#: js/musicutils.js:1127 -#: js/musicutils.js:1134 -#: js/musicutils.js:1135 -#.TRANS: musical temperament -msgid "meantone" +#: js/turtleactions/IntervalsActions.js:120 +msgid "below" msgstr "" -#: js/musicutils.js:814 -msgid "major 7th" +#: js/turtleactions/IntervalsActions.js:124 +msgid "above" msgstr "" -#: js/musicutils.js:815 -msgid "minor 7th" +#: js/turtleactions/IntervalsActions.js:131 +msgid "plus" msgstr "" -#: js/musicutils.js:816 -msgid "dominant 7th" +#: js/turtleactions/IntervalsActions.js:139 +msgid " below" msgstr "" -#: js/musicutils.js:817 -msgid "minor-major 7th" +#: js/turtleactions/IntervalsActions.js:257 +msgid "Adding missing pitch number 0." msgstr "" -#: js/musicutils.js:818 -msgid "fully-diminished 7th" +#: js/turtleactions/IntervalsActions.js:265 +msgid "Ignoring pitch numbers less than zero or greater than eleven." msgstr "" -#: js/musicutils.js:819 -msgid "half-diminished 7th" +#: js/turtleactions/IntervalsActions.js:271 +msgid "Ignoring duplicate pitch numbers." msgstr "" -#: js/musicutils.js:4379 -#: js/musicutils.js:4416 -msgid "current" +#: js/turtleactions/ToneActions.js:134 +msgid "Vibrato intensity must be between 1 and 100." msgstr "" -#: js/musicutils.js:4382 -#: js/musicutils.js:4407 -msgid "next" +#: js/turtleactions/ToneActions.js:139 +msgid "Vibrato rate must be greater than 0." msgstr "" -#: js/musicutils.js:4385 -#: js/musicutils.js:4412 -msgid "previous" +#: js/turtleactions/ToneActions.js:192 +#: js/turtleactions/ToneActions.js:265 +#.TRANS: Depth is the intesity of the tremolo or chorus effect. +msgid "Depth is out of range." msgstr "" -#: js/synthutils.js:104 -#.TRANS: simple monotone synthesizer -msgid "simple-2" +#: js/turtleactions/ToneActions.js:301 +msgid "Distortion must be from 0 to 100." msgstr "" -#: js/synthutils.js:106 -#.TRANS: simple monotone synthesizer -msgid "simple-3" +#: js/turtleactions/ToneActions.js:332 +#.TRANS: partials components in a harmonic series +msgid "Partial must be greater than or equal to 0." msgstr "" -#: js/synthutils.js:108 -#.TRANS: simple monotone synthesizer -msgid "simple-4" +#: js/turtleactions/ToneActions.js:378 +#: js/turtleactions/ToneActions.js:417 +#: js/turtleactions/ToneActions.js:456 +#: js/widgets/timbre.js:782 +msgid "Unable to use synth due to existing oscillator" msgstr "" -#: js/synthutils.js:141 -#.TRANS: musical instrument -msgid "taiko" +#: js/turtleactions/ToneActions.js:388 +#: js/turtleactions/ToneActions.js:427 +msgid "The input cannot be negative." msgstr "" -#: js/modewidget.js:86 -#: js/modewidget.js:88 -#: js/modewidget.js:642 -#: js/modewidget.js:644 -#: js/modewidget.js:712 -#: js/modewidget.js:714 -#: js/temperament.js:2078 -#: js/rhythmruler.js:189 -#: js/rhythmruler.js:1410 -#: js/rhythmruler.js:1412 -#: js/rhythmruler.js:1435 -#: js/rhythmruler.js:1437 -#: js/meterwidget.js:89 -#: js/meterwidget.js:91 +#: js/widgets/modewidget.js:86 +#: js/widgets/modewidget.js:88 +#: js/widgets/modewidget.js:642 +#: js/widgets/modewidget.js:644 +#: js/widgets/modewidget.js:712 +#: js/widgets/modewidget.js:714 +#: js/widgets/meterwidget.js:194 +#: js/widgets/meterwidget.js:196 +#: js/widgets/temperament.js:2236 +#: js/widgets/rhythmruler.js:457 +#: js/widgets/rhythmruler.js:1790 +#: js/widgets/rhythmruler.js:1792 +#: js/widgets/rhythmruler.js:1816 +#: js/widgets/rhythmruler.js:1818 msgid "Play all" msgstr "" -#: js/modewidget.js:115 -#: js/pitchstaircase.js:641 -#: js/phrasemaker.js:339 -#: js/pitchdrummatrix.js:94 -#: js/pitchslider.js:125 -#: js/temperament.js:2083 -#: js/musickeyboard.js:530 -#: js/timbre.js:756 -#: js/meterwidget.js:124 -#: js/arpeggio.js:103 +#: js/widgets/modewidget.js:115 +#: js/widgets/meterwidget.js:229 +#: js/widgets/pitchdrummatrix.js:166 +#: js/widgets/pitchslider.js:125 +#: js/widgets/pitchstaircase.js:641 +#: js/widgets/temperament.js:2244 +#: js/widgets/timbre.js:756 +#: js/widgets/arpeggio.js:103 +#: js/widgets/musickeyboard.js:688 +#: js/widgets/phrasemaker.js:550 msgid "Save" msgstr "" -#: js/modewidget.js:121 -#: js/pitchstaircase.js:686 -#: js/phrasemaker.js:356 -#: js/pitchdrummatrix.js:109 -#: js/musickeyboard.js:534 -#: js/rhythmruler.js:269 -#: js/arpeggio.js:118 +#: js/widgets/modewidget.js:121 +#: js/widgets/pitchdrummatrix.js:181 +#: js/widgets/pitchstaircase.js:686 +#: js/widgets/arpeggio.js:118 +#: js/widgets/musickeyboard.js:696 +#: js/widgets/phrasemaker.js:567 +#: js/widgets/rhythmruler.js:601 #.TRANS: clear all subdivisions from the ruler. msgid "Clear" msgstr "" -#: js/modewidget.js:127 +#: js/widgets/modewidget.js:127 msgid "Rotate counter clockwise" msgstr "" -#: js/modewidget.js:133 +#: js/widgets/modewidget.js:133 msgid "Rotate clockwise" msgstr "" -#: js/modewidget.js:139 +#: js/widgets/modewidget.js:139 msgid "Invert" msgstr "" -#: js/modewidget.js:145 -#: js/pitchstaircase.js:678 -#: js/rhythmruler.js:258 -#: js/timbre.js:963 +#: js/widgets/modewidget.js:145 +#: js/widgets/pitchstaircase.js:678 +#: js/widgets/timbre.js:963 +#: js/widgets/rhythmruler.js:578 msgid "Undo" msgstr "" -#: js/modewidget.js:163 +#: js/widgets/modewidget.js:163 #.TRANS: A circle of notes represents the musical mode. msgid "Click in the circle to select notes for the mode." msgstr "" -#: js/modewidget.js:1017 -#: js/pitchstaircase.js:580 -#: js/phrasemaker.js:4855 -#: js/temperament.js:1754 -#: js/rhythmruler.js:1865 -#: js/rhythmruler.js:2081 -#: js/tempo.js:414 +#: js/widgets/modewidget.js:1017 +#: js/widgets/pitchstaircase.js:580 +#: js/widgets/temperament.js:1929 +#: js/widgets/tempo.js:414 +#: js/widgets/phrasemaker.js:5356 +#: js/widgets/rhythmruler.js:2254 +#: js/widgets/rhythmruler.js:2472 msgid "New action block generated!" msgstr "" -#: js/oscilloscope.js:79 -msgid "Zoom In" -msgstr "" - -#: js/oscilloscope.js:88 -msgid "Zoom Out" -msgstr "" - -#: js/pitchstaircase.js:624 -msgid "Play chord" -msgstr "" - -#: js/pitchstaircase.js:632 -msgid "Play scale" +#: js/widgets/meterwidget.js:275 +msgid "Reset" msgstr "" -#: js/pitchstaircase.js:696 -msgid "Click on a note to create a new step." +#: js/widgets/meterwidget.js:301 +msgid "Click in the circle to select strong beats for the meter." msgstr "" -#: js/phrasemaker.js:363 -msgid "Export" +#: js/widgets/oscilloscope.js:79 +msgid "Zoom In" msgstr "" -#: js/phrasemaker.js:370 -msgid "Sort" +#: js/widgets/oscilloscope.js:88 +msgid "Zoom Out" msgstr "" -#: js/phrasemaker.js:373 -#: js/musickeyboard.js:559 -msgid "Add note" +#: js/widgets/pitchdrummatrix.js:356 +#: js/widgets/pitchdrummatrix.js:752 +msgid "Click in the grid to map notes to drums." msgstr "" -#: js/phrasemaker.js:764 -msgid "Click on the table to add notes." +#: js/widgets/pitchslider.js:103 +msgid "Move up" msgstr "" -#: js/phrasemaker.js:2414 -#: js/phrasemaker.js:2543 -msgid "tuplet value" +#: js/widgets/pitchslider.js:114 +msgid "Move down" msgstr "" -#: js/pitchdrummatrix.js:270 -#: js/pitchdrummatrix.js:639 -msgid "Click in the grid to map notes to drums." +#: js/widgets/pitchslider.js:136 +msgid "Click on the slider to create a note block." msgstr "" -#: js/pitchslider.js:103 -msgid "Move up" +#: js/widgets/pitchstaircase.js:624 +msgid "Play chord" msgstr "" -#: js/pitchslider.js:114 -msgid "Move down" +#: js/widgets/pitchstaircase.js:632 +msgid "Play scale" msgstr "" -#: js/pitchslider.js:136 -msgid "Click on the slider to create a note block." +#: js/widgets/pitchstaircase.js:696 +msgid "Click on a note to create a new step." msgstr "" -#: js/temperament.js:215 +#: js/widgets/temperament.js:321 msgid "back to 2:1 octave space" msgstr "" -#: js/temperament.js:323 +#: js/widgets/temperament.js:447 msgid "edit" msgstr "" -#: js/temperament.js:330 -#: js/temperament.js:332 -#: js/temperament.js:1336 -#: js/temperament.js:1338 +#: js/widgets/temperament.js:454 +#: js/widgets/temperament.js:456 +#: js/widgets/temperament.js:1493 +#: js/widgets/temperament.js:1495 msgid "close" msgstr "" -#: js/temperament.js:423 -#: js/temperament.js:736 -#: js/temperament.js:743 -#: js/temperament.js:845 -#: js/temperament.js:935 -#: js/temperament.js:942 -#: js/temperament.js:1015 -#: js/temperament.js:1284 -#: js/temperament.js:1354 -#: js/temperament.js:1430 +#: js/widgets/temperament.js:552 +#: js/widgets/temperament.js:877 +#: js/widgets/temperament.js:884 +#: js/widgets/temperament.js:986 +#: js/widgets/temperament.js:1080 +#: js/widgets/temperament.js:1087 +#: js/widgets/temperament.js:1160 +#: js/widgets/temperament.js:1433 +#: js/widgets/temperament.js:1511 +#: js/widgets/temperament.js:1596 msgid "done" msgstr "" -#: js/temperament.js:477 -#: js/temperament.js:482 -#: js/temperament.js:918 +#: js/widgets/temperament.js:610 +#: js/widgets/temperament.js:615 +#: js/widgets/temperament.js:1063 msgid "ratio" msgstr "" -#: js/temperament.js:483 +#: js/widgets/temperament.js:616 msgid "interval" msgstr "" -#: js/temperament.js:611 +#: js/widgets/temperament.js:744 msgid "non scalar" msgstr "" -#: js/temperament.js:650 +#: js/widgets/temperament.js:787 msgid "ratios" msgstr "" -#: js/temperament.js:650 +#: js/widgets/temperament.js:787 msgid "arbitrary" msgstr "" -#: js/temperament.js:719 +#: js/widgets/temperament.js:860 msgid "number of divisions" msgstr "" -#: js/temperament.js:741 -#: js/temperament.js:858 -#: js/temperament.js:940 -#: js/temperament.js:1033 +#: js/widgets/temperament.js:882 +#: js/widgets/temperament.js:999 +#: js/widgets/temperament.js:1085 +#: js/widgets/temperament.js:1178 msgid "preview" msgstr "" -#: js/temperament.js:788 +#: js/widgets/temperament.js:929 msgid "The Number of divisions is too large." msgstr "" -#: js/temperament.js:921 +#: js/widgets/temperament.js:1066 msgid "recursion" msgstr "" -#: js/temperament.js:1450 +#: js/widgets/temperament.js:1616 msgid "The octave ratio has changed. This changes temperament significantly." msgstr "" -#: js/temperament.js:2087 +#: js/widgets/temperament.js:2248 msgid "Table" msgstr "" -#: js/temperament.js:2185 +#: js/widgets/temperament.js:2356 msgid "Add pitches" msgstr "" -#: js/musickeyboard.js:570 -msgid "Metronome" +#: js/widgets/tempo.js:78 +#: js/widgets/tempo.js:97 +#: js/widgets/tempo.js:99 +#: js/widgets/aiwidget.js:134 +#: js/widgets/aiwidget.js:136 +#: js/widgets/rhythmruler.js:681 +#: js/widgets/rhythmruler.js:683 +#: js/widgets/rhythmruler.js:1864 +#: js/widgets/rhythmruler.js:1866 +#: js/widgets/sampler.js:180 +#: js/widgets/sampler.js:182 +msgid "Pause" msgstr "" -#: js/musickeyboard.js:1296 -#: plugins/rodi.rtp:193 -msgid "duration" +#: js/widgets/tempo.js:113 +msgid "Save tempo" msgstr "" -#: js/musickeyboard.js:2840 -msgid "New action blocks generated!" +#: js/widgets/tempo.js:144 +msgid "speed up" msgstr "" -#: js/musickeyboard.js:2841 -msgid "New action block generated" +#: js/widgets/tempo.js:150 +msgid "slow down" msgstr "" -#: js/musickeyboard.js:2984 -#: js/musickeyboard.js:2992 -msgid "MIDI device present." +#: js/widgets/tempo.js:194 +msgid "Adjust the tempo with the buttons." msgstr "" -#: js/musickeyboard.js:2995 -msgid "No MIDI device found." +#: js/widgets/tempo.js:261 +msgid "Please enter a number between 30 and 1000" msgstr "" -#: js/musickeyboard.js:3000 -msgid "Failed to get MIDI access in browser." +#: js/widgets/tempo.js:268 +#: js/widgets/tempo.js:271 +msgid "The beats per minute must be between 30 and 1000." msgstr "" -#: js/rhythmruler.js:202 -msgid "Save rhythms" +#: js/widgets/tempo.js:287 +msgid "The beats per minute must be below 1000." msgstr "" -#: js/rhythmruler.js:222 -msgid "Save drum machine" +#: js/widgets/tempo.js:303 +msgid "The beats per minute must be above 30" msgstr "" -#: js/rhythmruler.js:263 -#.TRANS: user can tap out a rhythm by clicking on a ruler. -msgid "Tap a rhythm" +#: js/widgets/timbre.js:766 +msgid "Synthesizer" msgstr "" -#: js/rhythmruler.js:342 -#: js/rhythmruler.js:344 -#: js/rhythmruler.js:1481 -#: js/rhythmruler.js:1483 -#: js/sampler.js:110 -#: js/sampler.js:112 -#: js/tempo.js:78 -#: js/tempo.js:97 -#: js/tempo.js:99 -msgid "Pause" +#: js/widgets/timbre.js:789 +msgid "Oscillator" msgstr "" -#: js/rhythmruler.js:478 -msgid "Click on the ruler to divide it." +#: js/widgets/timbre.js:840 +msgid "Envelope" msgstr "" -#: js/rhythmruler.js:603 -#: js/rhythmruler.js:605 -#: js/rhythmruler.js:804 -#: js/rhythmruler.js:806 -#: js/rhythmruler.js:1386 -#: js/rhythmruler.js:1388 -msgid "tap a rhythm" +#: js/widgets/timbre.js:886 +#: planet/js/GlobalTag.js:50 +#.TRANS: On the Planet, we use labels to tag projects. +msgid "Effects" msgstr "" -#: js/rhythmruler.js:1084 -msgid "Maximum value of 256 has been exceeded." +#: js/widgets/timbre.js:904 +msgid "Filter" msgstr "" -#: js/sampler.js:137 -msgid "Warning: Sample is bigger than 1MB." +#: js/widgets/timbre.js:946 +msgid "Add filter" msgstr "" -#: js/sampler.js:142 -msgid "Upload failed: Sample is not a .wav file." +#: js/widgets/timbre.js:987 +msgid "Click on buttons to open the timbre design tools." msgstr "" -#: js/sampler.js:164 -msgid "A new sample block was generated." +#: js/widgets/timbre.js:1273 +msgid "harmonicity" msgstr "" -#: js/sampler.js:255 -msgid "Upload sample" +#: js/widgets/timbre.js:1340 +#: js/widgets/timbre.js:1406 +msgid "modulation index" msgstr "" -#: js/sampler.js:306 -msgid "Save sample" +#: js/widgets/timbre.js:1484 +msgid "vibrato amount" msgstr "" -#: js/sampler.js:697 -#.TRANS: The reference tone is a sound used for comparison. -msgid "reference tone" +#: js/widgets/timbre.js:1919 +msgid "Filter already present." msgstr "" -#: js/tempo.js:113 -msgid "Save tempo" +#: js/widgets/timbre.js:2322 +msgid "delay (MS)" msgstr "" -#: js/tempo.js:144 -msgid "speed up" +#: js/widgets/timbre.js:2507 +msgid "distortion amount" msgstr "" -#: js/tempo.js:150 -msgid "slow down" +#: js/widgets/aiwidget.js:180 +#: js/widgets/sampler.js:227 +msgid "Warning: Sample is bigger than 1MB." msgstr "" -#: js/tempo.js:194 -msgid "Adjust the tempo with the buttons." +#: js/widgets/aiwidget.js:539 +msgid "New start block generated" msgstr "" -#: js/tempo.js:261 -msgid "Please enter a number between 30 and 1000" +#: js/widgets/aiwidget.js:541 +msgid "MIDI loading. This may take some time depending upon the number of notes in the track" msgstr "" -#: js/tempo.js:268 -#: js/tempo.js:271 -msgid "The beats per minute must be between 30 and 1000." +#: js/widgets/aiwidget.js:551 +#: js/widgets/sampler.js:254 +msgid "Upload failed: Sample is not a .wav file." msgstr "" -#: js/tempo.js:287 -msgid "The beats per minute must be below 1000." +#: js/widgets/aiwidget.js:679 +#: js/widgets/sampler.js:432 +msgid "Save sample" msgstr "" -#: js/tempo.js:303 -msgid "The beats per minute must be above 30" +#: js/widgets/aiwidget.js:701 +msgid "AI Music" msgstr "" -#: js/timbre.js:766 -msgid "Synthesizer" +#: js/widgets/arpeggio.js:239 +msgid "Click in the grid to add steps to the arpeggio." msgstr "" -#: js/timbre.js:789 -msgid "Oscillator" +#: js/widgets/help.js:95 +#: js/widgets/help.js:125 +#: js/widgets/help.js:146 +#: js/widgets/help.js:158 +#: js/widgets/help.js:376 +#: js/widgets/help.js:391 +msgid "Take a tour" msgstr "" -#: js/timbre.js:840 -msgid "Envelope" +#: js/widgets/musickeyboard.js:725 +#: js/widgets/phrasemaker.js:584 +msgid "Add note" msgstr "" -#: js/timbre.js:886 -#: js/GlobalTag.js:50 -#.TRANS: On the Planet, we use labels to tag projects. -msgid "Effects" +#: js/widgets/musickeyboard.js:744 +msgid "Metronome" +msgstr "" + +#: js/widgets/musickeyboard.js:1549 +#: plugins/rodi.rtp:193 +msgid "duration" +msgstr "" + +#: js/widgets/musickeyboard.js:3179 +msgid "New action blocks generated" +msgstr "" + +#: js/widgets/musickeyboard.js:3180 +msgid "New action block generated" msgstr "" -#: js/timbre.js:904 -msgid "Filter" +#: js/widgets/musickeyboard.js:3365 +#: js/widgets/musickeyboard.js:3373 +msgid "MIDI device present." msgstr "" -#: js/timbre.js:946 -msgid "Add filter" +#: js/widgets/musickeyboard.js:3376 +msgid "No MIDI device found." msgstr "" -#: js/timbre.js:987 -msgid "Click on buttons to open the timbre design tools." +#: js/widgets/musickeyboard.js:3386 +msgid "Failed to get MIDI access in browser." msgstr "" -#: js/timbre.js:1273 -msgid "harmonicity" +#: js/widgets/phrasemaker.js:574 +msgid "Export" msgstr "" -#: js/timbre.js:1340 -#: js/timbre.js:1406 -msgid "modulation index" +#: js/widgets/phrasemaker.js:581 +msgid "Sort" msgstr "" -#: js/timbre.js:1484 -msgid "vibrato amount" +#: js/widgets/phrasemaker.js:975 +msgid "Click on the table to add notes." msgstr "" -#: js/timbre.js:1919 -msgid "Filter already present." +#: js/widgets/phrasemaker.js:2677 +#: js/widgets/phrasemaker.js:2819 +msgid "tuplet value" msgstr "" -#: js/timbre.js:2322 -msgid "delay (MS)" +#: js/widgets/rhythmruler.js:486 +msgid "Save rhythms" msgstr "" -#: js/timbre.js:2507 -msgid "distortion amount" +#: js/widgets/rhythmruler.js:512 +msgid "Save drum machine" msgstr "" -#: js/meterwidget.js:170 -msgid "Reset" +#: js/widgets/rhythmruler.js:589 +#.TRANS: user can tap out a rhythm by clicking on a ruler. +msgid "Tap a rhythm" msgstr "" -#: js/meterwidget.js:196 -msgid "Click in the circle to select strong beats for the meter." +#: js/widgets/rhythmruler.js:817 +msgid "Click on the ruler to divide it." msgstr "" -#: js/arpeggio.js:239 -msgid "Click in the grid to add steps to the arpeggio." +#: js/widgets/rhythmruler.js:950 +#: js/widgets/rhythmruler.js:952 +#: js/widgets/rhythmruler.js:1152 +#: js/widgets/rhythmruler.js:1154 +#: js/widgets/rhythmruler.js:1765 +#: js/widgets/rhythmruler.js:1767 +msgid "tap a rhythm" msgstr "" -#: js/ProjectStorage.js:243 -msgid "anonymous" +#: js/widgets/rhythmruler.js:1459 +msgid "Maximum value of 256 has been exceeded." msgstr "" -#: js/GlobalCard.js:68 -msgid "Share" +#: js/widgets/sampler.js:237 +msgid "Recording started..." msgstr "" -#: js/GlobalCard.js:74 -msgid "Flags" +#: js/widgets/sampler.js:245 +msgid "Recording complete..." msgstr "" -#: js/LocalCard.js:36 -msgid "View published project" +#: js/widgets/sampler.js:283 +msgid "A new sample block was generated." msgstr "" -#: js/LocalCard.js:42 -msgid "Publish project" +#: js/widgets/sampler.js:378 +msgid "Upload sample" msgstr "" -#: js/LocalCard.js:51 -msgid "Edit project" +#: js/widgets/sampler.js:399 +msgid "Warning: Your sample cannot be loaded because it is >1MB." msgstr "" -#: js/LocalCard.js:52 -msgid "Delete project" +#: js/widgets/sampler.js:448 +msgid "Toggle Mic" msgstr "" -#: js/LocalCard.js:53 -msgid "Download project" +#: js/widgets/sampler.js:458 +msgid "Playback" msgstr "" -#: js/LocalCard.js:55 -msgid "Duplicate project" +#: js/widgets/sampler.js:979 +#.TRANS: The reference tone is a sound used for comparison. +msgid "reference tone" msgstr "" -#: js/GlobalTag.js:28 +#: planet/js/GlobalTag.js:28 #.TRANS: On the Planet, we use labels to tag projects. msgid "All Projects" msgstr "" -#: js/GlobalTag.js:30 -#: js/StringHelper.js:37 +#: planet/js/GlobalTag.js:30 +#: planet/js/StringHelper.js:37 #.TRANS: On the Planet, we use labels to tag projects. msgid "My Projects" msgstr "" -#: js/GlobalTag.js:32 +#: planet/js/GlobalTag.js:32 #.TRANS: On the Planet, we use labels to tag projects. msgid "Examples" msgstr "" -#: js/GlobalTag.js:34 +#: planet/js/GlobalTag.js:34 #.TRANS: On the Planet, we use labels to tag projects. msgid "Music" msgstr "" -#: js/GlobalTag.js:36 +#: planet/js/GlobalTag.js:36 #.TRANS: On the Planet, we use labels to tag projects. msgid "Art" msgstr "" -#: js/GlobalTag.js:38 +#: planet/js/GlobalTag.js:38 #.TRANS: On the Planet, we use labels to tag projects. msgid "Math" msgstr "" -#: js/GlobalTag.js:40 +#: planet/js/GlobalTag.js:40 #.TRANS: On the Planet, we use labels to tag projects. msgid "Interactive" msgstr "" -#: js/GlobalTag.js:42 +#: planet/js/GlobalTag.js:42 #.TRANS: On the Planet, we use labels to tag projects. msgid "Design" msgstr "" -#: js/GlobalTag.js:44 +#: planet/js/GlobalTag.js:44 #.TRANS: On the Planet, we use labels to tag projects. msgid "Game" msgstr "" -#: js/GlobalTag.js:46 +#: planet/js/GlobalTag.js:46 #.TRANS: On the Planet, we use labels to tag projects. msgid "Media" msgstr "" -#: js/GlobalTag.js:48 +#: planet/js/GlobalTag.js:48 #.TRANS: On the Planet, we use labels to tag projects. msgid "Sensors" msgstr "" -#: js/GlobalTag.js:52 +#: planet/js/GlobalTag.js:52 #.TRANS: On the Planet, we use labels to tag projects. msgid "Code Snippet" msgstr "" -#: js/helper.js:149 -#: js/StringHelper.js:49 -msgid "Show more tags" +#: planet/js/LocalCard.js:36 +msgid "View published project" msgstr "" -#: js/helper.js:150 -msgid "Show fewer tags" +#: planet/js/LocalCard.js:42 +msgid "Publish project" +msgstr "" + +#: planet/js/LocalCard.js:51 +msgid "Edit project" +msgstr "" + +#: planet/js/LocalCard.js:52 +msgid "Delete project" +msgstr "" + +#: planet/js/LocalCard.js:53 +msgid "Download project" +msgstr "" + +#: planet/js/LocalCard.js:55 +msgid "Duplicate project" +msgstr "" + +#: planet/js/ProjectStorage.js:243 +msgid "anonymous" +msgstr "" + +#: planet/js/SaveInterface.js:34 +msgid "Open in Music Blocks" +msgstr "" + +#: planet/js/SaveInterface.js:35 +msgid "Open in Turtle Blocks" +msgstr "" + +#: planet/js/GlobalCard.js:68 +msgid "Share" +msgstr "" + +#: planet/js/GlobalCard.js:74 +msgid "Flags" +msgstr "" + +#: planet/js/GlobalPlanet.js:35 +msgid "No results found." +msgstr "" + +#: planet/js/GlobalPlanet.js:51 +msgid "Remix of" +msgstr "" + +#: planet/js/GlobalPlanet.js:509 +msgid "Cannot connect to server" msgstr "" -#: js/ProjectViewer.js:30 +#: planet/js/ProjectViewer.js:30 msgid "Error: Report could not be submitted. Try again later." msgstr "" -#: js/ProjectViewer.js:31 +#: planet/js/ProjectViewer.js:31 msgid "Thank you for reporting this project. A moderator will review the project shortly, to verify violation of the Sugar Labs Code of Conduct." msgstr "" -#: js/ProjectViewer.js:32 -#: js/StringHelper.js:62 -#: js/StringHelper.js:64 -#: js/StringHelper.js:68 +#: planet/js/ProjectViewer.js:32 +#: planet/js/StringHelper.js:62 +#: planet/js/StringHelper.js:64 +#: planet/js/StringHelper.js:68 msgid "Report Project" msgstr "" -#: js/ProjectViewer.js:33 -#: js/StringHelper.js:63 +#: planet/js/ProjectViewer.js:33 +#: planet/js/StringHelper.js:63 msgid "Project Reported" msgstr "" -#: js/ProjectViewer.js:34 +#: planet/js/ProjectViewer.js:34 msgid "Report description required" msgstr "" -#: js/ProjectViewer.js:35 +#: planet/js/ProjectViewer.js:35 msgid "Report description too long" msgstr "" -#: js/StringHelper.js:30 +#: planet/js/Publisher.js:30 +msgid "Feature unavailable - cannot connect to server. Reload Music Blocks to try again." +msgstr "" + +#: planet/js/Publisher.js:220 +#: planet/js/Publisher.js:237 +msgid "This field is required" +msgstr "" + +#: planet/js/Publisher.js:227 +msgid "Title too long" +msgstr "" + +#: planet/js/Publisher.js:244 +msgid "Description too long" +msgstr "" + +#: planet/js/Publisher.js:341 +msgid "Server Error" +msgstr "" + +#: planet/js/Publisher.js:341 +msgid "Try Again" +msgstr "" + +#: planet/js/StringHelper.js:30 msgid "Planet" msgstr "" -#: js/StringHelper.js:31 +#: planet/js/StringHelper.js:31 msgid "Close Planet" msgstr "" -#: js/StringHelper.js:32 +#: planet/js/StringHelper.js:32 msgid "Open project from file" msgstr "" -#: js/StringHelper.js:34 +#: planet/js/StringHelper.js:34 msgid "Local" msgstr "" -#: js/StringHelper.js:35 +#: planet/js/StringHelper.js:35 msgid "Global" msgstr "" -#: js/StringHelper.js:36 +#: planet/js/StringHelper.js:36 msgid "Search for a project" msgstr "" -#: js/StringHelper.js:38 +#: planet/js/StringHelper.js:38 msgid "Publish Project" msgstr "" -#: js/StringHelper.js:40 +#: planet/js/StringHelper.js:40 msgid "Tags (max 5)" msgstr "" -#: js/StringHelper.js:41 -#: js/StringHelper.js:61 +#: planet/js/StringHelper.js:41 +#: planet/js/StringHelper.js:61 msgid "Description" msgstr "" -#: js/StringHelper.js:42 -#: js/StringHelper.js:67 +#: planet/js/StringHelper.js:42 +#: planet/js/StringHelper.js:67 msgid "Submit" msgstr "" -#: js/StringHelper.js:43 -#: js/StringHelper.js:47 +#: planet/js/StringHelper.js:43 +#: planet/js/StringHelper.js:47 msgid "Cancel" msgstr "" -#: js/StringHelper.js:44 +#: planet/js/StringHelper.js:44 msgid "Delete \\"\\"?" msgstr "" -#: js/StringHelper.js:45 +#: planet/js/StringHelper.js:45 msgid "Permanently delete project \\"\\"?" msgstr "" -#: js/StringHelper.js:48 +#: planet/js/StringHelper.js:48 msgid "Explore Projects" msgstr "" -#: js/StringHelper.js:50 +#: planet/js/StringHelper.js:49 +#: planet/js/helper.js:149 +msgid "Show more tags" +msgstr "" + +#: planet/js/StringHelper.js:50 msgid "Most recent" msgstr "" -#: js/StringHelper.js:51 +#: planet/js/StringHelper.js:51 msgid "Most liked" msgstr "" -#: js/StringHelper.js:52 +#: planet/js/StringHelper.js:52 msgid "Most downloaded" msgstr "" -#: js/StringHelper.js:53 +#: planet/js/StringHelper.js:53 msgid "A-Z" msgstr "" -#: js/StringHelper.js:54 +#: planet/js/StringHelper.js:54 msgid "Sort by" msgstr "" -#: js/StringHelper.js:55 +#: planet/js/StringHelper.js:55 msgid "Load More Projects" msgstr "" -#: js/StringHelper.js:56 +#: planet/js/StringHelper.js:56 msgid "Last Updated" msgstr "" -#: js/StringHelper.js:57 +#: planet/js/StringHelper.js:57 msgid "Creation Date" msgstr "" -#: js/StringHelper.js:58 +#: planet/js/StringHelper.js:58 msgid "Number of Downloads:" msgstr "" -#: js/StringHelper.js:59 +#: planet/js/StringHelper.js:59 msgid "Number of Likes:" msgstr "" -#: js/StringHelper.js:60 +#: planet/js/StringHelper.js:60 msgid "Tags:" msgstr "" -#: js/StringHelper.js:65 +#: planet/js/StringHelper.js:65 msgid "Report projects which violate the Sugar Labs Code of Conduct." msgstr "" -#: js/StringHelper.js:66 +#: planet/js/StringHelper.js:66 msgid "Reason for reporting project" msgstr "" -#: js/StringHelper.js:70 +#: planet/js/StringHelper.js:70 msgid "Download as File" msgstr "" -#: js/GlobalPlanet.js:35 -msgid "No results found." -msgstr "" - -#: js/GlobalPlanet.js:51 -msgid "Remix of" -msgstr "" - -#: js/GlobalPlanet.js:509 -msgid "Cannot connect to server" -msgstr "" - -#: js/Publisher.js:30 -msgid "Feature unavailable - cannot connect to server. Reload Music Blocks to try again." -msgstr "" - -#: js/Publisher.js:218 -#: js/Publisher.js:235 -msgid "This field is required" -msgstr "" - -#: js/Publisher.js:225 -msgid "Title too long" +#: planet/js/helper.js:150 +msgid "Show fewer tags" msgstr "" -#: js/Publisher.js:242 -msgid "Description too long" +#: plugins/accelerometer.rtp:48 +msgid "motion x" msgstr "" -#: js/Publisher.js:339 -msgid "Server Error" +#: plugins/accelerometer.rtp:56 +msgid "motion y" msgstr "" -#: js/Publisher.js:339 -msgid "Try Again" +#: plugins/accelerometer.rtp:64 +msgid "motion z" msgstr "" -#: js/SaveInterface.js:34 -msgid "Open in Music Blocks" +#: plugins/facebook.rtp:27 +msgid "publish" msgstr "" -#: js/SaveInterface.js:35 -msgid "Open in Turtle Blocks" +#: plugins/maths.rtp:62 +msgid "power" msgstr "" -#: plugins/weather.rtp:68 -#: plugins/weather.rtp:97 -msgid "Days ahead must be in the range of -1 to 5." +#: plugins/maths.rtp:62 +msgid "base" msgstr "" -#: plugins/weather.rtp:122 -msgid "forecast" +#: plugins/maths.rtp:62 +msgid "exp" msgstr "" -#: plugins/weather.rtp:123 -#: plugins/weather.rtp:137 -#: plugins/weather.rtp:150 -msgid "city" +#: plugins/maths.rtp:99 +msgid "floor" msgstr "" -#: plugins/weather.rtp:124 -#: plugins/weather.rtp:138 -#: plugins/weather.rtp:151 -msgid "day" +#: plugins/maths.rtp:104 +msgid "ceiling" msgstr "" -#: plugins/weather.rtp:136 -msgid "high" +#: plugins/maths.rtp:109 +msgid "to degrees" msgstr "" -#: plugins/weather.rtp:149 -msgid "low" +#: plugins/maths.rtp:114 +msgid "to radians" msgstr "" #: plugins/nutrition.rtp:104 @@ -9458,45 +9867,6 @@ msgstr "" msgid "water" msgstr "" -#: plugins/maths.rtp:62 -#: plugins/examples.rtp:93 -msgid "power" -msgstr "" - -#: plugins/maths.rtp:62 -#: plugins/examples.rtp:93 -msgid "base" -msgstr "" - -#: plugins/maths.rtp:62 -#: plugins/examples.rtp:93 -msgid "exp" -msgstr "" - -#: plugins/maths.rtp:99 -#: plugins/examples.rtp:130 -msgid "floor" -msgstr "" - -#: plugins/maths.rtp:104 -#: plugins/examples.rtp:135 -msgid "ceiling" -msgstr "" - -#: plugins/maths.rtp:109 -#: plugins/examples.rtp:140 -msgid "to degrees" -msgstr "" - -#: plugins/maths.rtp:114 -#: plugins/examples.rtp:145 -msgid "to radians" -msgstr "" - -#: plugins/facebook.rtp:27 -msgid "publish" -msgstr "" - #: plugins/rodi.rtp:172 msgid "blink" msgstr "" @@ -9525,18 +9895,66 @@ msgstr "" msgid "move" msgstr "" -#: plugins/accelerometer.rtp:48 -msgid "motion x" +#: plugins/weather.rtp:68 +#: plugins/weather.rtp:97 +msgid "Days ahead must be in the range of -1 to 5." msgstr "" -#: plugins/accelerometer.rtp:56 -msgid "motion y" +#: plugins/weather.rtp:122 +msgid "forecast" msgstr "" -#: plugins/accelerometer.rtp:64 -msgid "motion z" +#: plugins/weather.rtp:123 +#: plugins/weather.rtp:137 +#: plugins/weather.rtp:150 +msgid "city" +msgstr "" + +#: plugins/weather.rtp:124 +#: plugins/weather.rtp:138 +#: plugins/weather.rtp:151 +msgid "day" +msgstr "" + +#: plugins/weather.rtp:136 +msgid "high" +msgstr "" + +#: plugins/weather.rtp:149 +msgid "low" msgstr "" +#: js/toolbar.js:70 + +#: js/toolbar.js:130 + +#: js/toolbar.js:194 + +#: js/toolbar.js:249 + +#~msgid "Toggle JavaScript Editor" +#~msgstr "" + +#: js/EnsembleBlocks.js:643 + +#~msgid "The Turrle pitch block returns the current pitch number being played by the specified turtle." +#~msgstr "" + +#: js/PitchActions.js:88 + +#~msgid "The Scalar Step Block must be used inside of a Note Block." +#~msgstr "" + +#: js/PitchActions.js:107 + +#~msgid "The Scalar Step Block must be preceded by a Pitch Block." +#~msgstr "" + +#: js/musickeyboard.js:2840 + +#~msgid "New action blocks generated!" +#~msgstr "" + #: js/toolbar.js:110 #: js/toolbar.js:204 @@ -9877,11 +10295,6 @@ msgstr "" #~msgid "The Time block returns the number of seconds that the program has been running." #~msgstr "" -#: js/help.js:95 - -#~msgid "Take a tour" -#~msgstr "" - #: js/GlobalCard.js:48 #~msgid "More Details" @@ -12780,11 +13193,6 @@ msgstr "" #~msgid "The save-stack button saves a stack onto a custom palette. It appears after a \"long press\" on a stack." #~msgstr "" -#: js/musicutils.js:254 - -#~msgid "Custom" -#~msgstr "" - #: js/basicblocks.js:4785 #~msgid "Rhythm" diff --git a/po/pap.po b/po/pap.po index 4387ec2a2e..ff845ba792 100644 --- a/po/pap.po +++ b/po/pap.po @@ -2129,276 +2129,131 @@ #: js/planetInterface.js:104 #: js/planetInterface.js:104 #: js/planetInterface.js:104 -msgid "project undefined" +#: js/SaveInterface.js:59 +#: js/SaveInterface.js:61 +#: js/SaveInterface.js:93 +msgid "Music Blocks Project" msgstr "" -#: js/logo.js:61 -msgid "Not a valid pitch name" +#: js/SaveInterface.js:63 +msgid "This project was created in Music Blocks" msgstr "" -#: js/logo.js:507 -#: js/ProgramBlocks.js:258 -#: js/ProgramBlocks.js:427 -msgid "You must select a file." +#: js/SaveInterface.js:67 +msgid "Music Blocks is a Free/Libre Software application." msgstr "" -#: js/logo.js:1184 -#: js/turtles.js:118 -#: js/turtle-painter.js:1192 -#: js/turtle-painter.js:1193 -#: js/block.js:1463 -#: js/lilypond.js:757 -#: js/lilypond.js:921 -#: js/lilypond.js:959 -#: js/ActionBlocks.js:1223 -#: js/ProgramBlocks.js:1267 -msgid "start" -msgstr "start" - -#: js/logo.js:1696 -msgid "Playback is ready." +#: js/SaveInterface.js:69 +msgid "The source code can be accessed at" msgstr "" -#: js/blocks.js:1011 -#: js/blocks.js:3427 -#: js/blocks.js:3428 -#: js/blocks.js:3653 -#: js/blocks.js:4012 -#: js/blocks.js:4205 -#: js/blocks.js:5343 -#: js/blocks.js:6474 -#: js/palette.js:527 -#: js/palette.js:536 -#: js/palette.js:545 -#: js/palette.js:554 -#: js/palette.js:1131 -#: js/palette.js:1142 -#: js/palette.js:1153 -#: js/palette.js:1164 -#: js/palette.js:1183 -#: js/rubrics.js:529 -#: js/macros.js:170 -#: js/macros.js:266 -#: js/macros.js:267 -#: js/macros.js:276 -#: js/macros.js:828 -#: js/block.js:1449 -#: js/block.js:4164 -#: js/block.js:4182 -#: js/block.js:4193 -#: js/turtledefs.js:128 -#: js/turtledefs.js:230 -#: js/ActionBlocks.js:254 -#: js/ActionBlocks.js:307 -#: js/ActionBlocks.js:617 -#: js/ActionBlocks.js:716 -#: js/ActionBlocks.js:961 -#: js/ActionBlocks.js:1049 -#: js/ActionBlocks.js:1322 -#: js/ActionBlocks.js:1325 -#: js/ActionBlocks.js:1337 -#: js/ActionBlocks.js:1404 -#: js/MeterBlocks.js:715 -#: js/MeterBlocks.js:768 -#: js/MeterBlocks.js:831 -#: js/MeterBlocks.js:892 -#: js/phrasemaker.js:4412 -#: js/musickeyboard.js:2647 -#: js/rhythmruler.js:1928 -#: js/rhythmruler.js:1935 -#: js/rhythmruler.js:2119 -#: js/rhythmruler.js:2126 -msgid "action" -msgstr "akshon" - -#: js/blocks.js:1205 -#: js/blocks.js:3380 -#: js/blocks.js:3770 -#: js/blocks.js:3801 -#: js/blocks.js:3850 -#: js/blocks.js:3885 -#: js/blocks.js:6497 -#: js/palette.js:509 -#: js/palette.js:638 -#: js/palette.js:1107 -#: js/BoxesBlocks.js:282 -#: js/BoxesBlocks.js:285 -#: js/BoxesBlocks.js:405 -#: js/BoxesBlocks.js:594 -msgid "box" -msgstr "kaha" - -#: js/blocks.js:1680 -msgid "Consider breaking this stack into parts." +#: js/SaveInterface.js:72 +msgid "For more information, please consult the" msgstr "" -#: js/blocks.js:2408 -#: js/palette.js:653 -#: js/MediaBlocks.js:602 -msgid "open file" +#: js/SaveInterface.js:76 +#: js/turtledefs.js:795 +msgid "Music Blocks Guide" msgstr "" -#: js/blocks.js:2415 -#: js/blocks.js:2423 -#: js/activity.js:1875 -msgid "audio file" +#: js/SaveInterface.js:83 +msgid "Alternatively, open the file in Music Blocks using the Load project button." msgstr "" -#: js/blocks.js:2536 -#: js/blocks.js:3147 -#: js/block.js:3543 -msgid "on2" +#: js/SaveInterface.js:85 +msgid "Project Code" msgstr "" -#: js/blocks.js:2538 -#: js/blocks.js:3149 -#: js/block.js:3545 -msgid "off" +#: js/SaveInterface.js:87 +msgid "This code stores data about the blocks in a project." msgstr "" -#: js/blocks.js:2543 -#: js/blocks.js:3154 -#: js/palette.js:618 -#: js/block.js:3466 -#: js/BooleanBlocks.js:77 -#: js/BooleanBlocks.js:167 -#: js/BooleanBlocks.js:251 -#: js/BooleanBlocks.js:335 -#: js/BooleanBlocks.js:433 -#: js/BooleanBlocks.js:539 -#: js/BooleanBlocks.js:640 -#: js/BooleanBlocks.js:741 -#: js/BooleanBlocks.js:847 -#: js/BooleanBlocks.js:948 -#: js/BooleanBlocks.js:1033 -#: js/SensorsBlocks.js:910 -msgid "true" +#: js/SaveInterface.js:89 +msgid "Show" msgstr "" -#: js/blocks.js:2545 -#: js/blocks.js:3156 -#: js/block.js:3466 -#: js/BooleanBlocks.js:79 -#: js/BooleanBlocks.js:169 -#: js/BooleanBlocks.js:253 -#: js/BooleanBlocks.js:337 -#: js/BooleanBlocks.js:435 -#: js/BooleanBlocks.js:541 -#: js/BooleanBlocks.js:642 -#: js/BooleanBlocks.js:743 -#: js/BooleanBlocks.js:849 -#: js/BooleanBlocks.js:950 -#: js/SensorsBlocks.js:912 -msgid "false" +#: js/SaveInterface.js:91 +msgid "Hide" msgstr "" -#: js/blocks.js:3183 -#: js/palette.js:574 -#: js/MediaBlocks.js:892 -#: js/MediaBlocks.js:963 -msgid "text" -msgstr "teksto" - -#: js/blocks.js:3379 -#: js/palette.js:641 -#: js/palette.js:642 -#: js/BoxesBlocks.js:514 -msgid "store in box" +#: js/SaveInterface.js:131 +#: js/SaveInterface.js:204 +#: js/SaveInterface.js:262 +#: js/SaveInterface.js:389 +#: js/SaveInterface.js:417 +#: js/activity.js:4884 +#: planet/js/ProjectStorage.js:27 +#: planet/js/GlobalPlanet.js:467 +#: planet/js/GlobalPlanet.js:469 +#: planet/js/GlobalPlanet.js:495 +#.TRANS: default project title when saving as Lilypond +msgid "My Project" msgstr "" -#: js/blocks.js:3384 -#: js/blocks.js:3824 -#: js/blocks.js:3859 -#: js/blocks.js:3894 -#: js/blocks.js:5773 -#: js/blocks.js:5794 -#: js/BoxesBlocks.js:772 -msgid "box1" +#: js/SaveInterface.js:197 +#: planet/js/SaveInterface.js:58 +msgid "No description provided" msgstr "" -#: js/blocks.js:3386 -#: js/blocks.js:3826 -#: js/blocks.js:3861 -#: js/blocks.js:3896 -#: js/blocks.js:5775 -#: js/blocks.js:5796 -#: js/BoxesBlocks.js:663 -msgid "box2" +#: js/SaveInterface.js:332 +msgid "Your recording is in progress." msgstr "" -#: js/blocks.js:4058 -#: js/palette.js:639 -#: js/palette.js:644 -#: js/palette.js:1043 -#: js/BoxesBlocks.js:591 -msgid "store in" -msgstr "waarda den" - -#: js/blocks.js:4058 -#: js/EnsembleBlocks.js:391 -#: js/EnsembleBlocks.js:402 -#: js/MediaBlocks.js:746 -#: js/ProgramBlocks.js:390 -#: js/ProgramBlocks.js:495 -#: js/ProgramBlocks.js:658 -#: js/BoxesBlocks.js:595 -#: js/PitchBlocks.js:656 -#: js/PitchBlocks.js:932 -#: js/PitchBlocks.js:1827 -#: js/ToneBlocks.js:1025 -#: js/DictBlocks.js:215 -#: js/DictBlocks.js:289 -msgid "name" +#: js/SaveInterface.js:401 +#.TRANS: File name prompt for save as Lilypond +msgid "File name" msgstr "" -#: js/blocks.js:4058 -#: js/RhythmBlocks.js:1130 -#: js/BoxesBlocks.js:75 -#: js/BoxesBlocks.js:595 -#: js/HeapBlocks.js:544 -#: js/DictBlocks.js:289 -#: js/DictBlocks.js:430 -msgid "value" -msgstr "balor" - -#: js/blocks.js:4907 -msgid "There is no block selected." +#: js/SaveInterface.js:403 +#: planet/js/StringHelper.js:39 +#.TRANS: Project title prompt for save as Lilypond +msgid "Project title" msgstr "" -#: js/blocks.js:5002 -#: js/MediaBlocks.js:888 -msgid "show" -msgstr "Mustra" - -#: js/blocks.js:5005 -#: js/MediaBlocks.js:803 -#.TRANS: Avatar is the image used to determine the appearance of the mouse. -msgid "avatar" +#: js/SaveInterface.js:405 +#.TRANS: Project title prompt for save as Lilypond +msgid "Project author" msgstr "" -#: js/blocks.js:5008 -#: js/ToneBlocks.js:1010 -#: js/sampler.js:693 -#.TRANS: The sound sample that the user uploads. -msgid "sample" +#: js/SaveInterface.js:407 +#.TRANS: MIDI prompt for save as Lilypond +msgid "Include MIDI output?" msgstr "" -#: js/turtles.js:874 -msgid "Grid" +#: js/SaveInterface.js:409 +#.TRANS: Guitar prompt for save as Lilypond +msgid "Include guitar tablature output?" msgstr "" -#: js/turtles.js:891 -#: js/turtledefs.js:626 -msgid "Clean" -msgstr "Limpia" +#: js/SaveInterface.js:411 +#.TRANS: Lilypond is a scripting language for generating sheet music +msgid "Save as Lilypond" +msgstr "" -#: js/turtles.js:912 -#: js/turtledefs.js:632 -msgid "Collapse" +#: js/SaveInterface.js:426 +#: js/blocks/EnsembleBlocks.js:75 +#: js/blocks/EnsembleBlocks.js:154 +#: js/blocks/EnsembleBlocks.js:216 +#: js/blocks/EnsembleBlocks.js:302 +#: js/blocks/EnsembleBlocks.js:348 +#: js/blocks/EnsembleBlocks.js:389 +#: js/blocks/EnsembleBlocks.js:441 +#: js/blocks/EnsembleBlocks.js:490 +#: js/blocks/EnsembleBlocks.js:536 +#: js/blocks/EnsembleBlocks.js:583 +#: js/blocks/EnsembleBlocks.js:637 +#: js/blocks/EnsembleBlocks.js:753 +#: js/blocks/EnsembleBlocks.js:840 +#: js/blocks/EnsembleBlocks.js:899 +#: js/blocks/EnsembleBlocks.js:942 +#: js/blocks/EnsembleBlocks.js:1212 +#: js/blocks/EnsembleBlocks.js:1280 +#.TRANS: default project author when saving as Lilypond +msgid "Mr. Mouse" msgstr "" -#: js/turtles.js:940 -msgid "Expand" +#: js/SaveInterface.js:573 +msgid "The Lilypond code is copied to clipboard. You can paste it here: " msgstr "" #: js/languagebox.js:198 @@ -2409,6933 +2264,7487 @@ msgstr "" msgid "Music Blocks is already set to this language." msgstr "" -#: js/piemenus.js:200 -#: js/musicutils.js:808 -#: js/musicutils.js:824 -#: js/phrasemaker.js:1672 -#: js/musickeyboard.js:2041 -#: js/sampler.js:544 -#.TRANS: double sharp is a music term related to pitch -msgid "double sharp" +#: js/planetInterface.js:131 +msgid "project undefined" msgstr "" -#: js/piemenus.js:201 -#: js/PitchBlocks.js:1510 -#: js/PitchActions.js:580 -#: js/musicutils.js:806 -#: js/musicutils.js:825 -#: js/phrasemaker.js:1673 -#: js/musickeyboard.js:2042 -#: js/sampler.js:545 -#.TRANS: sharp is a half-step up in pitch -#.TRANS: sharp is a music term related to pitch -msgid "sharp" +#: js/rubrics.js:523 +#: js/turtledefs.js:119 +#: js/turtledefs.js:221 +#: js/blocks/RhythmBlockPaletteBlocks.js:52 +#: js/blocks/RhythmBlockPaletteBlocks.js:234 +#: js/blocks/ProgramBlocks.js:745 +#: js/widgets/rhythmruler.js:2057 +#: js/widgets/rhythmruler.js:2064 +#: js/widgets/rhythmruler.js:2133 +#: js/widgets/rhythmruler.js:2140 +#: js/widgets/rhythmruler.js:2219 +#.TRANS: an arrangement of notes based on duration +msgid "rhythm" msgstr "" -#: js/piemenus.js:202 -#: js/musicutils.js:804 -#: js/musicutils.js:826 -#: js/phrasemaker.js:1674 -#: js/musickeyboard.js:2043 -#: js/sampler.js:546 -#.TRANS: natural is a music term related to pitch -msgid "natural" +#: js/rubrics.js:524 +#: js/turtledefs.js:121 +#: js/turtledefs.js:223 +#: js/block-verbose.js:2622 +#: js/block.js:2550 +#: js/blocks/IntervalsBlocks.js:63 +#: js/blocks/SensorsBlocks.js:178 +#: js/blocks/PitchBlocks.js:1839 +#: js/blocks/PitchBlocks.js:1853 +#: js/widgets/musickeyboard.js:1935 +#: js/widgets/phrasemaker.js:1036 +#.TRANS: pitch number +#.TRANS: pitch number +#.TRANS: we specify pitch in terms of a name and an octave. The name can be CDEFGAB or Do Re Mi Fa Sol La Ti. Octave is a number between 1 and 8. +msgid "pitch" msgstr "" -#: js/piemenus.js:203 -#: js/PitchBlocks.js:1469 -#: js/PitchActions.js:583 -#: js/musicutils.js:802 -#: js/musicutils.js:827 -#: js/phrasemaker.js:1675 -#: js/musickeyboard.js:2044 -#: js/sampler.js:547 -#.TRANS: flat is a half-step down in pitch -#.TRANS: flat is a music term related to pitch -msgid "flat" +#: js/rubrics.js:525 +#: js/turtledefs.js:123 +#: js/turtledefs.js:225 +msgid "tone" msgstr "" -#: js/piemenus.js:204 -#: js/musicutils.js:800 -#: js/musicutils.js:828 -#: js/phrasemaker.js:1676 -#: js/musickeyboard.js:2045 -#: js/sampler.js:548 -#.TRANS: double flat is a music term related to pitch -msgid "double flat" +#: js/rubrics.js:526 +#: js/lilypond.js:605 +#: js/lilypond.js:904 +#: js/lilypond.js:910 +#: js/lilypond.js:948 +msgid "mouse" msgstr "" -#: js/piemenus.js:2861 -#: js/PitchBlocks.js:1357 -#: js/musicutils.js:627 -#.TRANS: unison means the note is the same as the current note -#.TRANS: unison is a music term related to intervals -msgid "unison" -msgstr "" +#: js/rubrics.js:527 +#: js/turtledefs.js:132 +#: js/turtledefs.js:234 +#: js/widgets/phrasemaker.js:1040 +msgid "pen" +msgstr "pèn" -#: js/piemenus.js:3015 -#: js/piemenus.js:3088 -#: js/musicutils.js:635 -#: js/musicutils.js:810 -#: js/musicutils.js:912 -#.TRANS: major is a music term related to intervals and mode -msgid "major" -msgstr "" +#: js/rubrics.js:528 +#: js/turtledefs.js:133 +#: js/turtledefs.js:235 +#: js/blocks/NumberBlocks.js:981 +#: js/blocks/PitchBlocks.js:1717 +#: js/blocks/PitchBlocks.js:1758 +msgid "number" +msgstr "number" -#: js/piemenus.js:3015 -#: js/piemenus.js:3088 -#: js/musicutils.js:653 -#.TRANS: modal scale for music -msgid "ionian" -msgstr "" +#: js/rubrics.js:529 +#: js/turtledefs.js:127 +#: js/turtledefs.js:229 +msgid "flow" +msgstr "fluho" -#: js/piemenus.js:3017 -#: js/piemenus.js:3092 -#: js/musicutils.js:633 -#: js/musicutils.js:811 -#: js/musicutils.js:909 -#.TRANS: minor is a music term related to intervals and mode -msgid "minor" -msgstr "" +#: js/rubrics.js:530 +#: js/turtledefs.js:128 +#: js/turtledefs.js:230 +#: js/block-verbose.js:1609 +#: js/block-verbose.js:4559 +#: js/block-verbose.js:4577 +#: js/block-verbose.js:4588 +#: js/block.js:1573 +#: js/block.js:4483 +#: js/block.js:4501 +#: js/block.js:4512 +#: js/blocks.js:1018 +#: js/blocks.js:3491 +#: js/blocks.js:3492 +#: js/blocks.js:3717 +#: js/blocks.js:4076 +#: js/blocks.js:4269 +#: js/blocks.js:5432 +#: js/blocks.js:6563 +#: js/macros.js:170 +#: js/macros.js:266 +#: js/macros.js:267 +#: js/macros.js:276 +#: js/macros.js:828 +#: js/palette.js:527 +#: js/palette.js:536 +#: js/palette.js:545 +#: js/palette.js:554 +#: js/palette.js:1129 +#: js/palette.js:1140 +#: js/palette.js:1151 +#: js/palette.js:1162 +#: js/palette.js:1181 +#: js/blocks/ActionBlocks.js:254 +#: js/blocks/ActionBlocks.js:307 +#: js/blocks/ActionBlocks.js:617 +#: js/blocks/ActionBlocks.js:716 +#: js/blocks/ActionBlocks.js:961 +#: js/blocks/ActionBlocks.js:1049 +#: js/blocks/ActionBlocks.js:1322 +#: js/blocks/ActionBlocks.js:1325 +#: js/blocks/ActionBlocks.js:1337 +#: js/blocks/ActionBlocks.js:1404 +#: js/blocks/MeterBlocks.js:715 +#: js/blocks/MeterBlocks.js:768 +#: js/blocks/MeterBlocks.js:831 +#: js/blocks/MeterBlocks.js:892 +#: js/widgets/musickeyboard.js:2986 +#: js/widgets/phrasemaker.js:4913 +#: js/widgets/rhythmruler.js:2319 +#: js/widgets/rhythmruler.js:2326 +#: js/widgets/rhythmruler.js:2511 +#: js/widgets/rhythmruler.js:2518 +msgid "action" +msgstr "akshon" -#: js/piemenus.js:3017 -#: js/piemenus.js:3092 -#: js/musicutils.js:663 -#.TRANS: modal scale for music -msgid "aeolian" +#: js/rubrics.js:531 +#: js/turtledefs.js:136 +#: js/turtledefs.js:238 +msgid "sensors" msgstr "" -#: js/piemenus.js:3407 -msgid "Duplicate" -msgstr "" +#: js/rubrics.js:532 +#: js/turtledefs.js:135 +#: js/turtledefs.js:237 +#: js/blocks/MediaBlocks.js:930 +msgid "media" +msgstr "medionan" -#: js/piemenus.js:3408 -#: js/turtledefs.js:534 -msgid "Extract" +#: js/rubrics.js:533 +msgid "mice" msgstr "" -#: js/piemenus.js:3409 -msgid "Move to trash" +#: js/toolbar.js:48 +#: js/toolbar.js:109 +msgid "About Music Blocks" msgstr "" -#: js/piemenus.js:3410 -#: js/timbre.js:968 -#: js/StringHelper.js:69 -msgid "Close" +#: js/toolbar.js:49 +#: js/toolbar.js:110 +#: js/toolbar.js:175 +#: js/toolbar.js:231 +#: js/turtledefs.js:445 +#: js/turtledefs.js:482 +#: js/activity.js:2660 +#: js/activity.js:2671 +#: js/activity.js:2902 +#: js/widgets/modewidget.js:77 +#: js/widgets/meterwidget.js:185 +#: js/widgets/pitchdrummatrix.js:147 +#: js/widgets/pitchdrummatrix.js:687 +#: js/widgets/pitchdrummatrix.js:689 +#: js/widgets/pitchdrummatrix.js:741 +#: js/widgets/pitchdrummatrix.js:743 +#: js/widgets/pitchdrummatrix.js:758 +#: js/widgets/pitchdrummatrix.js:760 +#: js/widgets/pitchdrummatrix.js:789 +#: js/widgets/pitchdrummatrix.js:791 +#: js/widgets/pitchstaircase.js:121 +#: js/widgets/temperament.js:610 +#: js/widgets/temperament.js:613 +#: js/widgets/temperament.js:673 +#: js/widgets/temperament.js:675 +#: js/widgets/temperament.js:2017 +#: js/widgets/temperament.js:2019 +#: js/widgets/tempo.js:84 +#: js/widgets/tempo.js:86 +#: js/widgets/timbre.js:432 +#: js/widgets/timbre.js:434 +#: js/widgets/timbre.js:465 +#: js/widgets/timbre.js:467 +#: js/widgets/timbre.js:746 +#: js/widgets/aiwidget.js:647 +#: js/widgets/aiwidget.js:654 +#: js/widgets/aiwidget.js:656 +#: js/widgets/arpeggio.js:90 +#: js/widgets/arpeggio.js:547 +#: js/widgets/arpeggio.js:549 +#: js/widgets/arpeggio.js:644 +#: js/widgets/arpeggio.js:646 +#: js/widgets/musickeyboard.js:676 +#: js/widgets/musickeyboard.js:872 +#: js/widgets/musickeyboard.js:874 +#: js/widgets/musickeyboard.js:953 +#: js/widgets/musickeyboard.js:955 +#: js/widgets/phrasemaker.js:513 +#: js/widgets/phrasemaker.js:523 +#: js/widgets/phrasemaker.js:525 +#: js/widgets/phrasemaker.js:4304 +#: js/widgets/phrasemaker.js:4528 +#: js/widgets/phrasemaker.js:4533 +#: js/widgets/phrasemaker.js:4535 +#: js/widgets/phrasemaker.js:4650 +#: js/widgets/rhythmruler.js:637 +#: js/widgets/rhythmruler.js:639 +#: js/widgets/rhythmruler.js:653 +#: js/widgets/rhythmruler.js:655 +#: js/widgets/sampler.js:162 +#: js/widgets/sampler.js:164 +#: js/widgets/sampler.js:363 +msgid "Play" msgstr "" -#: js/piemenus.js:3416 -msgid "Save stack" -msgstr "Warda stack" +#: js/toolbar.js:50 +#: js/toolbar.js:111 +#: js/toolbar.js:176 +#: js/toolbar.js:232 +#: js/turtledefs.js:451 +#: js/turtledefs.js:488 +#: js/activity.js:2679 +#: js/widgets/modewidget.js:99 +#: js/widgets/modewidget.js:101 +#: js/widgets/meterwidget.js:206 +#: js/widgets/meterwidget.js:208 +#: js/widgets/pitchdrummatrix.js:674 +#: js/widgets/pitchdrummatrix.js:676 +#: js/widgets/temperament.js:2002 +#: js/widgets/temperament.js:2004 +#: js/widgets/arpeggio.js:534 +#: js/widgets/arpeggio.js:536 +#: js/widgets/phrasemaker.js:534 +#: js/widgets/phrasemaker.js:536 +msgid "Stop" +msgstr "Stòp" -#: js/piemenus.js:3420 -#: js/toolbar.js:60 -#: js/toolbar.js:120 -#: js/toolbar.js:185 +#: js/toolbar.js:51 +#: js/toolbar.js:112 +#: js/toolbar.js:177 +#: js/toolbar.js:233 +#: js/turtledefs.js:498 +msgid "Record" +msgstr "" + +#: js/toolbar.js:52 +#: js/toolbar.js:53 +msgid "Full screen" +msgstr "" + +#: js/toolbar.js:54 +#: js/toolbar.js:115 +#: js/toolbar.js:180 +#: js/toolbar.js:236 +#: js/turtledefs.js:504 +msgid "Toggle Fullscreen" +msgstr "" + +#: js/toolbar.js:55 +#: js/toolbar.js:116 +#: js/toolbar.js:181 +#: js/toolbar.js:237 +#: js/turtledefs.js:510 +#: planet/js/StringHelper.js:33 +msgid "New project" +msgstr "" + +#: js/toolbar.js:56 +#: js/toolbar.js:117 +#: js/toolbar.js:182 +#: js/toolbar.js:238 +#: js/turtledefs.js:516 +msgid "Load project from file" +msgstr "" + +#: js/toolbar.js:57 +#: js/toolbar.js:118 +#: js/toolbar.js:119 +#: js/toolbar.js:183 +#: js/toolbar.js:239 +#: js/turtledefs.js:541 +#: js/turtledefs.js:550 +#: js/turtledefs.js:571 +msgid "Save project" +msgstr "" + +#: js/toolbar.js:58 +#: js/toolbar.js:77 +#: js/toolbar.js:79 +#: js/toolbar.js:138 +#: js/toolbar.js:147 +#: js/toolbar.js:149 +#: js/toolbar.js:184 +#: js/toolbar.js:202 +#: js/toolbar.js:204 #: js/toolbar.js:240 +#: js/toolbar.js:258 +#: js/toolbar.js:260 +msgid "Save project as HTML" +msgstr "" + +#: js/toolbar.js:59 +#: js/toolbar.js:120 +#: js/toolbar.js:185 +#: js/toolbar.js:241 +msgid "Find and share projects" +msgstr "" + +#: js/toolbar.js:60 +#: js/toolbar.js:121 +#: js/toolbar.js:186 +#: js/toolbar.js:242 +msgid "Offline. Sharing is unavailable" +msgstr "" + +#: js/toolbar.js:61 +#: js/toolbar.js:122 +#: js/toolbar.js:187 +#: js/toolbar.js:243 +msgid "Auxiliary menu" +msgstr "" + +#: js/toolbar.js:62 +#: js/toolbar.js:123 +#: js/toolbar.js:188 +#: js/toolbar.js:244 #: js/turtledefs.js:752 +#: js/piemenus.js:3423 msgid "Help" msgstr "Ousilio" -#: js/piemenus.js:3762 -msgid "You have chosen key " +#: js/toolbar.js:63 +#: js/toolbar.js:124 +#: js/toolbar.js:189 +#: js/toolbar.js:245 +msgid "Run slowly" +msgstr "" + +#: js/toolbar.js:64 +#: js/toolbar.js:125 +#: js/toolbar.js:190 +#: js/toolbar.js:246 +#: js/turtledefs.js:682 +msgid "Run step by step" +msgstr "" + +#: js/toolbar.js:65 +#: js/toolbar.js:126 +#: js/toolbar.js:191 +#: js/toolbar.js:247 +#: js/turtledefs.js:689 +msgid "Display statistics" +msgstr "" + +#: js/toolbar.js:66 +#: js/toolbar.js:127 +#: js/toolbar.js:192 +#: js/toolbar.js:248 +msgid "Load plugin" +msgstr "" + +#: js/toolbar.js:67 +#: js/toolbar.js:128 +#: js/toolbar.js:193 +#: js/toolbar.js:249 +#: js/turtledefs.js:696 +msgid "Delete plugin" +msgstr "" + +#: js/toolbar.js:68 +#: js/toolbar.js:129 +#: js/toolbar.js:194 +#: js/toolbar.js:250 +msgid "Enable horizontal scrolling" +msgstr "" + +#: js/toolbar.js:69 +#: js/toolbar.js:130 +#: js/toolbar.js:195 +#: js/toolbar.js:251 +msgid "Disable horizontal scrolling" +msgstr "" + +#: js/toolbar.js:70 +#: js/toolbar.js:131 +#: js/toolbar.js:196 +#: js/toolbar.js:252 +#: planet/js/LocalCard.js:54 +#: planet/js/StringHelper.js:71 +msgid "Merge with current project" +msgstr "" + +#: js/toolbar.js:71 +#: js/toolbar.js:132 +msgid "Set Pitch Preview" +msgstr "" + +#: js/toolbar.js:72 +#: js/toolbar.js:133 +#: js/toolbar.js:197 +#: js/toolbar.js:253 +msgid "JavaScript Editor" +msgstr "" + +#: js/toolbar.js:73 +#: js/toolbar.js:134 +#: js/toolbar.js:198 +#: js/toolbar.js:254 +#: js/turtledefs.js:724 +msgid "Restore" +msgstr "" + +#: js/toolbar.js:74 +#: js/toolbar.js:135 +#: js/toolbar.js:199 +#: js/toolbar.js:255 +msgid "Switch to beginner mode" +msgstr "" + +#: js/toolbar.js:75 +#: js/toolbar.js:136 +#: js/toolbar.js:200 +#: js/toolbar.js:256 +msgid "Switch to advanced mode" +msgstr "" + +#: js/toolbar.js:76 +#: js/toolbar.js:137 +#: js/toolbar.js:146 +#: js/toolbar.js:201 +#: js/toolbar.js:257 +#: js/turtledefs.js:738 +msgid "Select language" +msgstr "" + +#: js/toolbar.js:78 +#: js/toolbar.js:81 +#: js/toolbar.js:140 +#: js/turtledefs.js:579 +msgid "Save mouse artwork as PNG" +msgstr "" + +#: js/toolbar.js:80 +#: js/toolbar.js:139 +#: js/turtledefs.js:575 +msgid "Save mouse artwork as SVG" +msgstr "" + +#: js/toolbar.js:82 +#: js/toolbar.js:141 +#: js/turtledefs.js:583 +msgid "Save music as WAV" +msgstr "" + +#: js/toolbar.js:83 +#: js/toolbar.js:142 +#: js/turtledefs.js:587 +msgid "Save sheet music as ABC" +msgstr "" + +#: js/toolbar.js:84 +#: js/toolbar.js:143 +#: js/turtledefs.js:591 +msgid "Save sheet music as Lilypond" +msgstr "" + +#: js/toolbar.js:85 +msgid "Save sheet music as MusicXML" +msgstr "" + +#: js/toolbar.js:86 +#: js/toolbar.js:144 +#: js/toolbar.js:152 +#: js/toolbar.js:207 +#: js/toolbar.js:263 +#: js/turtledefs.js:562 +#: js/turtledefs.js:595 +msgid "Save block artwork as SVG" +msgstr "" + +#: js/toolbar.js:87 +#: js/toolbar.js:145 +#: js/toolbar.js:153 +#: js/toolbar.js:208 +#: js/toolbar.js:264 +#: js/turtles.js:911 +msgid "Confirm" +msgstr "" + +#: js/toolbar.js:88 +#: js/toolbar.js:154 +#: js/toolbar.js:209 +#: js/toolbar.js:265 +msgid "English (United States)" +msgstr "" + +#: js/toolbar.js:89 +#: js/toolbar.js:155 +#: js/toolbar.js:210 +#: js/toolbar.js:266 +msgid "English (United Kingdom)" +msgstr "" + +#: js/toolbar.js:90 +#: js/toolbar.js:156 +#: js/toolbar.js:211 +#: js/toolbar.js:267 +msgid "日本語" +msgstr "" + +#: js/toolbar.js:91 +msgid "한국어" +msgstr "" + +#: js/toolbar.js:92 +#: js/toolbar.js:158 +#: js/toolbar.js:213 +#: js/toolbar.js:269 +msgid "español" +msgstr "" + +#: js/toolbar.js:93 +#: js/toolbar.js:159 +#: js/toolbar.js:214 +#: js/toolbar.js:270 +msgid "português" +msgstr "" + +#: js/toolbar.js:94 +#: js/toolbar.js:160 +#: js/toolbar.js:215 +#: js/toolbar.js:271 +msgid "にほんご" +msgstr "" + +#: js/toolbar.js:95 +#: js/toolbar.js:161 +#: js/toolbar.js:216 +#: js/toolbar.js:272 +msgid "中文" +msgstr "" + +#: js/toolbar.js:96 +#: js/toolbar.js:162 +#: js/toolbar.js:217 +#: js/toolbar.js:273 +msgid "ภาษาไทย" +msgstr "" + +#: js/toolbar.js:97 +#: js/toolbar.js:163 +#: js/toolbar.js:218 +#: js/toolbar.js:274 +msgid "aymara" +msgstr "" + +#: js/toolbar.js:98 +#: js/toolbar.js:164 +#: js/toolbar.js:219 +#: js/toolbar.js:275 +msgid "quechua" +msgstr "" + +#: js/toolbar.js:99 +#: js/toolbar.js:165 +#: js/toolbar.js:220 +#: js/toolbar.js:276 +msgid "guarani" +msgstr "" + +#: js/toolbar.js:100 +#: js/toolbar.js:166 +#: js/toolbar.js:221 +#: js/toolbar.js:277 +msgid "हिंदी" +msgstr "" + +#: js/toolbar.js:101 +#: js/toolbar.js:168 +#: js/toolbar.js:222 +#: js/toolbar.js:279 +msgid "igbo" +msgstr "" + +#: js/toolbar.js:102 +#: js/toolbar.js:169 +#: js/toolbar.js:223 +#: js/toolbar.js:280 +msgid "عربى" +msgstr "" + +#: js/toolbar.js:103 +#: js/toolbar.js:167 +#: js/toolbar.js:224 +#: js/toolbar.js:278 +msgid "తెలుగు" +msgstr "" + +#: js/toolbar.js:104 +#: js/toolbar.js:170 +#: js/toolbar.js:225 +#: js/toolbar.js:281 +msgid "עִברִית" +msgstr "" + +#: js/toolbar.js:113 +#: js/toolbar.js:114 +#: js/toolbar.js:178 +#: js/toolbar.js:179 +#: js/toolbar.js:234 +#: js/toolbar.js:235 +msgid "Full Screen" +msgstr "" + +#: js/toolbar.js:148 +#: js/toolbar.js:151 +#: js/toolbar.js:203 +#: js/toolbar.js:206 +#: js/toolbar.js:259 +#: js/toolbar.js:262 +#: js/turtledefs.js:558 +msgid "Save turtle artwork as PNG" +msgstr "" + +#: js/toolbar.js:150 +#: js/toolbar.js:205 +#: js/toolbar.js:261 +#: js/turtledefs.js:554 +msgid "Save turtle artwork as SVG" +msgstr "" + +#: js/toolbar.js:157 +#: js/toolbar.js:212 +#: js/toolbar.js:268 +msgid "한국인" +msgstr "" + +#: js/toolbar.js:174 +#: js/toolbar.js:230 +msgid "About Turtle Blocks" +msgstr "" + +#: js/toolbar.js:446 +#: js/toolbar.js:457 +#: js/toolbar.js:497 +msgid "Turtle Wrap Off" +msgstr "" + +#: js/toolbar.js:466 +#: js/toolbar.js:506 +msgid "Turtle Wrap On" +msgstr "" + +#: js/turtle-painter.js:1192 +#: js/turtle-painter.js:1193 +#: js/turtles.js:118 +#: js/block-verbose.js:1623 +#: js/block.js:1587 +#: js/lilypond.js:749 +#: js/lilypond.js:913 +#: js/lilypond.js:951 +#: js/logo.js:1184 +#: js/blocks/ActionBlocks.js:1223 +#: js/blocks/ProgramBlocks.js:1267 +msgid "start" +msgstr "start" + +#: js/turtledefs.js:40 +#.TRANS: put the URL to the guide here, e.g., https://github.com/sugarlabs/turtleblocksjs/tree/master/guide/README.md +msgid "guide url" +msgstr "" + +#: js/turtledefs.js:85 +#: js/turtledefs.js:437 +msgid "Turtle Blocks is a Logo-inspired turtle that draws colorful pictures with snap-together visual-programming blocks." +msgstr "" + +#: js/turtledefs.js:118 +#: js/turtledefs.js:220 +msgid "search" +msgstr "" + +#: js/turtledefs.js:120 +#: js/turtledefs.js:222 +#: js/blocks/MeterBlocks.js:1343 +#: js/blocks/WidgetBlocks.js:522 +#.TRANS: musical meter (time signature), e.g., 4:4 +msgid "meter" +msgstr "" + +#: js/turtledefs.js:122 +#: js/turtledefs.js:224 +msgid "intervals" +msgstr "" + +#: js/turtledefs.js:124 +#: js/turtledefs.js:226 +msgid "ornament" +msgstr "" + +#: js/turtledefs.js:125 +#: js/turtledefs.js:227 +#: js/blocks/VolumeBlocks.js:362 +#: js/blocks/VolumeBlocks.js:502 +#: js/blocks/VolumeBlocks.js:545 +msgid "volume" +msgstr "" + +#: js/turtledefs.js:126 +#: js/turtledefs.js:228 +#: js/block-verbose.js:1700 +#: js/block-verbose.js:2626 +#: js/block.js:1664 +#: js/block.js:2554 +#: js/lilypond.js:732 +#: js/lilypond.js:897 +#: js/lilypond.js:941 +#: js/palette.js:577 +#: js/blocks/RhythmBlocks.js:766 +#: js/blocks/DrumBlocks.js:477 +#: js/blocks/VolumeBlocks.js:502 +#: js/widgets/phrasemaker.js:1038 +msgid "drum" +msgstr "" + +#: js/turtledefs.js:129 +#: js/turtledefs.js:231 +msgid "boxes" +msgstr "" + +#: js/turtledefs.js:130 +#: js/turtledefs.js:232 +msgid "widgets" +msgstr "" + +#: js/turtledefs.js:131 +#: js/turtledefs.js:233 +#: js/widgets/phrasemaker.js:1039 +msgid "graphics" +msgstr "" + +#: js/turtledefs.js:134 +#: js/turtledefs.js:236 +msgid "boolean" +msgstr "" + +#: js/turtledefs.js:137 +#: js/turtledefs.js:239 +#: js/blocks/HeapBlocks.js:59 +#: js/widgets/status.js:147 +msgid "heap" +msgstr "" + +#: js/turtledefs.js:138 +#: js/turtledefs.js:240 +#: js/blocks/DictBlocks.js:142 +#: js/blocks/ProgramBlocks.js:495 +msgid "dictionary" +msgstr "" + +#: js/turtledefs.js:139 +#: js/turtledefs.js:241 +msgid "ensemble" +msgstr "" + +#: js/turtledefs.js:140 +#: js/turtledefs.js:242 +msgid "extras" +msgstr "Èkstranan" + +#: js/turtledefs.js:142 +#: js/turtledefs.js:244 +#.TRANS: program as in computer program +#.TRANS: program as in computer program +msgid "program" msgstr "" -#: js/piemenus.js:3766 -msgid " for your pitch preview." +#: js/turtledefs.js:143 +#: js/turtledefs.js:245 +msgid "my blocks" msgstr "" -#: js/palette.js:571 -msgid "grid" +#: js/turtledefs.js:185 +#: js/turtledefs.js:281 +msgid "artwork" msgstr "" -#: js/palette.js:577 -#: js/block.js:1540 -#: js/block.js:2343 -#: js/turtledefs.js:126 -#: js/turtledefs.js:228 -#: js/lilypond.js:740 -#: js/lilypond.js:905 -#: js/lilypond.js:949 -#: js/DrumBlocks.js:486 -#: js/RhythmBlocks.js:766 -#: js/VolumeBlocks.js:502 -#: js/phrasemaker.js:823 -msgid "drum" +#: js/turtledefs.js:185 +#: js/turtledefs.js:281 +msgid "logic" msgstr "" -#: js/palette.js:580 -msgid "effect" +#: js/turtledefs.js:185 +#: js/turtledefs.js:281 +msgid "music" msgstr "" -#: js/palette.js:586 -msgid "sargam" +#: js/turtledefs.js:187 +#: js/turtledefs.js:463 +msgid "Music Blocks is a collection of tools for exploring fundamental musical concepts in a fun way." msgstr "" -#: js/palette.js:589 -#: js/activity.js:1833 -#: js/RhythmBlocks.js:923 -#: js/PitchBlocks.js:442 -#: js/PitchBlocks.js:1748 -#.TRANS: a numeric mapping of the notes in an octave based on the musical mode -msgid "scale degree" +#: js/turtledefs.js:436 +msgid "Welcome to Turtle Blocks" msgstr "" -#: js/palette.js:592 -#: js/activity.js:1860 -msgid "mode name" +#: js/turtledefs.js:438 +#: js/turtledefs.js:465 +#: js/turtledefs.js:774 +#: js/turtledefs.js:805 +msgid "The current version is" msgstr "" -#: js/palette.js:595 -#: js/activity.js:1839 -msgid "invert mode" +#: js/turtledefs.js:446 +#: js/turtledefs.js:483 +msgid "Click the run button to run the project in fast mode." msgstr "" -#: js/palette.js:598 -#: js/activity.js:1836 -msgid "voice name" +#: js/turtledefs.js:452 +msgid "Stop the turtle." msgstr "" -#: js/palette.js:601 -#: js/PitchBlocks.js:1181 -msgid "custom pitch" +#: js/turtledefs.js:454 +#: js/turtledefs.js:491 +msgid "You can also type Alt-S to stop." msgstr "" -#: js/palette.js:605 -#: js/block.js:1456 -#: js/block.js:1575 -#: js/WidgetBlocks.js:218 -#: js/IntervalsBlocks.js:63 -msgid "temperament" +#: js/turtledefs.js:462 +#: js/widgets/help.js:333 +msgid "Welcome to Music Blocks" msgstr "" -#: js/palette.js:609 -msgid "accidental" +#: js/turtledefs.js:472 +#: js/widgets/help.js:334 +msgid "Meet Mr. Mouse!" msgstr "" -#: js/palette.js:615 -#: js/activity.js:1866 -msgid "interval name" +#: js/turtledefs.js:473 +msgid "Mr Mouse is our Music Blocks conductor." msgstr "" -#: js/palette.js:633 -#: js/PitchBlocks.js:405 -msgid "pitch converter" +#: js/turtledefs.js:475 +msgid "Mr Mouse encourages you to explore Music Blocks." msgstr "" -#: js/rubrics.js:522 -#: js/turtledefs.js:119 -#: js/turtledefs.js:221 -#: js/RhythmBlockPaletteBlocks.js:52 -#: js/RhythmBlockPaletteBlocks.js:233 -#: js/ProgramBlocks.js:745 -#: js/rhythmruler.js:1670 -#: js/rhythmruler.js:1677 -#: js/rhythmruler.js:1745 -#: js/rhythmruler.js:1752 -#: js/rhythmruler.js:1830 -#.TRANS: an arrangement of notes based on duration -msgid "rhythm" +#: js/turtledefs.js:477 +msgid "Let us start our tour!" msgstr "" -#: js/rubrics.js:523 -#: js/block.js:2339 -#: js/turtledefs.js:121 -#: js/turtledefs.js:223 -#: js/IntervalsBlocks.js:63 -#: js/PitchBlocks.js:1801 -#: js/PitchBlocks.js:1814 -#: js/SensorsBlocks.js:178 -#: js/phrasemaker.js:821 -#: js/musickeyboard.js:1653 -#.TRANS: pitch number -#.TRANS: we specify pitch in terms of a name and an octave. The name can be CDEFGAB or Do Re Mi Fa Sol La Ti. Octave is a number between 1 and 8. -msgid "pitch" +#: js/turtledefs.js:489 +msgid "Stop the music (and the mice)." msgstr "" -#: js/rubrics.js:524 -#: js/turtledefs.js:123 -#: js/turtledefs.js:225 -msgid "tone" +#: js/turtledefs.js:499 +msgid "Record your project as video." msgstr "" -#: js/rubrics.js:525 -#: js/lilypond.js:613 -#: js/lilypond.js:912 -#: js/lilypond.js:918 -#: js/lilypond.js:956 -msgid "mouse" +#: js/turtledefs.js:505 +msgid "Toggle Fullscreen mode." msgstr "" -#: js/rubrics.js:526 -#: js/turtledefs.js:132 -#: js/turtledefs.js:234 -#: js/phrasemaker.js:825 -msgid "pen" -msgstr "pèn" +#: js/turtledefs.js:511 +msgid "Initialize a new project." +msgstr "" -#: js/rubrics.js:527 -#: js/turtledefs.js:133 -#: js/turtledefs.js:235 -#: js/NumberBlocks.js:905 -#: js/PitchBlocks.js:1679 -#: js/PitchBlocks.js:1720 -msgid "number" -msgstr "number" +#: js/turtledefs.js:517 +msgid "You can also load projects from the file system." +msgstr "" -#: js/rubrics.js:528 -#: js/turtledefs.js:127 -#: js/turtledefs.js:229 -msgid "flow" -msgstr "fluho" +#: js/turtledefs.js:522 +#: planet/js/StringHelper.js:46 +msgid "Delete" +msgstr "" -#: js/rubrics.js:530 -#: js/turtledefs.js:136 -#: js/turtledefs.js:238 -msgid "sensors" +#: js/turtledefs.js:523 +msgid "To delete a block, just right-click on it, then you will be able to see the delete option" msgstr "" -#: js/rubrics.js:531 -#: js/turtledefs.js:135 -#: js/turtledefs.js:237 -#: js/MediaBlocks.js:930 -msgid "media" -msgstr "medionan" +#: js/turtledefs.js:528 +#: js/activity.js:2649 +#: planet/js/LocalCard.js:31 +msgid "Copy" +msgstr "Kopia" -#: js/rubrics.js:532 -msgid "mice" +#: js/turtledefs.js:529 +msgid "To copy a block, just right-click on it, then you will be able to see the copy option" msgstr "" -#: js/macros.js:711 -#: js/musicutils.js:783 -#: js/synthutils.js:181 -#.TRANS: animal sound effect -msgid "duck" +#: js/turtledefs.js:534 +#: js/piemenus.js:3411 +msgid "Extract" msgstr "" -#: js/toolbar.js:46 -#: js/toolbar.js:107 -msgid "About Music Blocks" +#: js/turtledefs.js:535 +msgid "To extract a block, just right-click on it, then you will be able to see the extract option" msgstr "" -#: js/toolbar.js:47 -#: js/toolbar.js:108 -#: js/toolbar.js:172 -#: js/toolbar.js:228 -#: js/turtledefs.js:445 -#: js/turtledefs.js:482 -#: js/activity.js:2281 -#: js/activity.js:2289 -#: js/activity.js:2520 -#: js/modewidget.js:77 -#: js/pitchstaircase.js:121 -#: js/phrasemaker.js:302 -#: js/phrasemaker.js:312 -#: js/phrasemaker.js:314 -#: js/phrasemaker.js:3901 -#: js/phrasemaker.js:4061 -#: js/phrasemaker.js:4066 -#: js/phrasemaker.js:4068 -#: js/phrasemaker.js:4183 -#: js/pitchdrummatrix.js:81 -#: js/pitchdrummatrix.js:574 -#: js/pitchdrummatrix.js:576 -#: js/pitchdrummatrix.js:628 -#: js/pitchdrummatrix.js:630 -#: js/pitchdrummatrix.js:645 -#: js/pitchdrummatrix.js:647 -#: js/pitchdrummatrix.js:674 -#: js/pitchdrummatrix.js:676 -#: js/temperament.js:477 -#: js/temperament.js:480 -#: js/temperament.js:540 -#: js/temperament.js:542 -#: js/temperament.js:1835 -#: js/temperament.js:1837 -#: js/temperament.js:1986 -#: js/temperament.js:1988 -#: js/musickeyboard.js:522 -#: js/musickeyboard.js:682 -#: js/musickeyboard.js:684 -#: js/musickeyboard.js:756 -#: js/musickeyboard.js:758 -#: js/rhythmruler.js:298 -#: js/rhythmruler.js:300 -#: js/rhythmruler.js:314 -#: js/rhythmruler.js:316 -#: js/sampler.js:96 -#: js/sampler.js:98 -#: js/sampler.js:229 -#: js/sampler.js:235 -#: js/sampler.js:237 -#: js/tempo.js:84 -#: js/tempo.js:86 -#: js/timbre.js:432 -#: js/timbre.js:434 -#: js/timbre.js:465 -#: js/timbre.js:467 -#: js/timbre.js:746 -#: js/meterwidget.js:80 -#: js/arpeggio.js:90 -#: js/arpeggio.js:547 -#: js/arpeggio.js:549 -#: js/arpeggio.js:644 -#: js/arpeggio.js:646 -msgid "Play" +#: js/turtledefs.js:542 +#: js/turtledefs.js:552 +#: js/turtledefs.js:573 +msgid "Save your project to a file." msgstr "" -#: js/toolbar.js:48 -#: js/toolbar.js:109 -#: js/toolbar.js:173 -#: js/toolbar.js:229 -#: js/turtledefs.js:451 -#: js/turtledefs.js:488 -#: js/activity.js:2297 -#: js/modewidget.js:99 -#: js/modewidget.js:101 -#: js/phrasemaker.js:323 -#: js/phrasemaker.js:325 -#: js/pitchdrummatrix.js:561 -#: js/pitchdrummatrix.js:563 -#: js/temperament.js:1820 -#: js/temperament.js:1822 -#: js/meterwidget.js:101 -#: js/meterwidget.js:103 -#: js/arpeggio.js:534 -#: js/arpeggio.js:536 -msgid "Stop" -msgstr "Stòp" +#: js/turtledefs.js:549 +#: js/turtledefs.js:570 +msgid "save" +msgstr "" -#: js/toolbar.js:49 -#: js/toolbar.js:110 -#: js/toolbar.js:174 -#: js/toolbar.js:230 -#: js/turtledefs.js:498 -msgid "Record" +#: js/turtledefs.js:556 +#: js/turtledefs.js:577 +msgid "Save graphics from your project to as SVG." msgstr "" -#: js/toolbar.js:50 -#: js/toolbar.js:51 -msgid "Full screen" +#: js/turtledefs.js:560 +#: js/turtledefs.js:581 +msgid "Save graphics from your project as PNG." msgstr "" -#: js/toolbar.js:52 -#: js/toolbar.js:112 -#: js/toolbar.js:177 -#: js/toolbar.js:232 -#: js/turtledefs.js:504 -msgid "Toggle Fullscreen" +#: js/turtledefs.js:564 +#: js/turtledefs.js:597 +msgid "Save block artwork as an SVG file." msgstr "" -#: js/toolbar.js:53 -#: js/toolbar.js:113 -#: js/toolbar.js:178 -#: js/toolbar.js:233 -#: js/turtledefs.js:510 -#: js/StringHelper.js:33 -msgid "New project" +#: js/turtledefs.js:585 +msgid "Save audio from your project as WAV." msgstr "" -#: js/toolbar.js:54 -#: js/toolbar.js:114 -#: js/toolbar.js:179 -#: js/toolbar.js:234 -#: js/turtledefs.js:516 -msgid "Load project from file" +#: js/turtledefs.js:589 +msgid "Save your project to as an ABC file." msgstr "" -#: js/toolbar.js:55 -#: js/toolbar.js:115 -#: js/toolbar.js:116 -#: js/toolbar.js:180 -#: js/toolbar.js:235 -#: js/turtledefs.js:541 -#: js/turtledefs.js:550 -#: js/turtledefs.js:571 -msgid "Save project" +#: js/turtledefs.js:593 +msgid "Save your project to as a Lilypond file." msgstr "" -#: js/toolbar.js:56 -#: js/toolbar.js:75 -#: js/toolbar.js:77 -#: js/toolbar.js:135 -#: js/toolbar.js:144 -#: js/toolbar.js:146 -#: js/toolbar.js:181 -#: js/toolbar.js:199 -#: js/toolbar.js:201 -#: js/toolbar.js:236 -#: js/toolbar.js:254 -#: js/toolbar.js:256 -msgid "Save project as HTML" +#: js/turtledefs.js:604 +msgid "Load samples from server" +msgstr "" + +#: js/turtledefs.js:605 +msgid "This button opens a viewer for loading example projects." +msgstr "" + +#: js/turtledefs.js:611 +msgid "Palette buttons" +msgstr "" + +#: js/turtledefs.js:612 +msgid "This toolbar contains the palette buttons including Rhythm Pitch Tone Action and more." +msgstr "" + +#: js/turtledefs.js:614 +msgid "Click to show the palettes of blocks and drag blocks from the palettes onto the canvas to use them." +msgstr "" + +#: js/turtledefs.js:620 +msgid "Cartesian/Polar" msgstr "" -#: js/toolbar.js:57 -#: js/toolbar.js:117 -#: js/toolbar.js:182 -#: js/toolbar.js:237 -msgid "Find and share projects" +#: js/turtledefs.js:621 +msgid "Show or hide a coordinate grid." msgstr "" -#: js/toolbar.js:58 -#: js/toolbar.js:118 -#: js/toolbar.js:183 -#: js/toolbar.js:238 -msgid "Offline. Sharing is unavailable" +#: js/turtledefs.js:626 +#: js/turtles.js:902 +msgid "Clean" +msgstr "Limpia" + +#: js/turtledefs.js:627 +msgid "Clear the screen and return the mice to their initial positions." msgstr "" -#: js/toolbar.js:59 -#: js/toolbar.js:119 -#: js/toolbar.js:184 -#: js/toolbar.js:239 -msgid "Auxiliary menu" +#: js/turtledefs.js:632 +#: js/turtles.js:955 +msgid "Collapse" msgstr "" -#: js/toolbar.js:61 -#: js/toolbar.js:121 -#: js/toolbar.js:186 -#: js/toolbar.js:241 -msgid "Run slowly" +#: js/turtledefs.js:633 +msgid "Collapse the graphics window." msgstr "" -#: js/toolbar.js:62 -#: js/toolbar.js:122 -#: js/toolbar.js:187 -#: js/toolbar.js:242 -#: js/turtledefs.js:682 -msgid "Run step by step" +#: js/turtledefs.js:638 +#: js/activity.js:5684 +msgid "Home" msgstr "" -#: js/toolbar.js:63 -#: js/toolbar.js:123 -#: js/toolbar.js:188 -#: js/toolbar.js:243 -#: js/turtledefs.js:689 -msgid "Display statistics" +#: js/turtledefs.js:639 +msgid "Return all blocks to the center of the screen." msgstr "" -#: js/toolbar.js:64 -#: js/toolbar.js:124 -#: js/toolbar.js:189 -#: js/toolbar.js:244 -msgid "Load plugin" +#: js/turtledefs.js:644 +msgid "Show/hide blocks" +msgstr "Mustra/skonde blòki" + +#: js/turtledefs.js:645 +msgid "Hide or show the blocks and the palettes." msgstr "" -#: js/toolbar.js:65 -#: js/toolbar.js:125 -#: js/toolbar.js:190 -#: js/toolbar.js:245 -#: js/turtledefs.js:696 -msgid "Delete plugin" +#: js/turtledefs.js:650 +msgid "Expand/collapse collapsable blocks" msgstr "" -#: js/toolbar.js:66 -#: js/toolbar.js:126 -#: js/toolbar.js:191 -#: js/toolbar.js:246 -msgid "Enable horizontal scrolling" +#: js/turtledefs.js:651 +msgid "Expand or collapse start and action stacks." msgstr "" -#: js/toolbar.js:67 -#: js/toolbar.js:127 -#: js/toolbar.js:192 -#: js/toolbar.js:247 -msgid "Disable horizontal scrolling" +#: js/turtledefs.js:658 +#: js/activity.js:5704 +msgid "Decrease block size" msgstr "" -#: js/toolbar.js:68 -#: js/toolbar.js:128 -#: js/toolbar.js:193 -#: js/toolbar.js:248 -#: js/LocalCard.js:54 -#: js/StringHelper.js:71 -msgid "Merge with current project" +#: js/turtledefs.js:659 +msgid "Decrease the size of the blocks." msgstr "" -#: js/toolbar.js:69 -#: js/toolbar.js:129 -msgid "Set Pitch Preview" +#: js/turtledefs.js:664 +#: js/activity.js:5710 +msgid "Increase block size" msgstr "" -#: js/toolbar.js:70 -#: js/toolbar.js:130 -#: js/toolbar.js:194 -#: js/toolbar.js:249 -msgid "Toggle JavaScript Editor" +#: js/turtledefs.js:665 +msgid "Increase the size of the blocks." msgstr "" -#: js/toolbar.js:71 -#: js/toolbar.js:131 -#: js/toolbar.js:195 -#: js/toolbar.js:250 -#: js/turtledefs.js:724 -msgid "Restore" +#: js/turtledefs.js:670 +msgid "Expand/collapse option toolbar" msgstr "" -#: js/toolbar.js:72 -#: js/toolbar.js:132 -#: js/toolbar.js:196 -#: js/toolbar.js:251 -msgid "Switch to beginner mode" +#: js/turtledefs.js:671 +msgid "Click this button to expand or collapse the auxillary toolbar." msgstr "" -#: js/toolbar.js:73 -#: js/toolbar.js:133 -#: js/toolbar.js:197 -#: js/toolbar.js:252 -msgid "Switch to advanced mode" +#: js/turtledefs.js:676 +msgid "Run slow" msgstr "" -#: js/toolbar.js:74 -#: js/toolbar.js:134 -#: js/toolbar.js:143 -#: js/toolbar.js:198 -#: js/toolbar.js:253 -#: js/turtledefs.js:738 -msgid "Select language" +#: js/turtledefs.js:677 +msgid "Click to run the project in slow mode." msgstr "" -#: js/toolbar.js:76 -#: js/toolbar.js:79 -#: js/toolbar.js:137 -#: js/turtledefs.js:579 -msgid "Save mouse artwork as PNG" +#: js/turtledefs.js:683 +msgid "Click to run the project step by step." msgstr "" -#: js/toolbar.js:78 -#: js/toolbar.js:136 -#: js/turtledefs.js:575 -msgid "Save mouse artwork as SVG" +#: js/turtledefs.js:690 +msgid "Display statistics about your Music project." msgstr "" -#: js/toolbar.js:80 -#: js/toolbar.js:138 -#: js/turtledefs.js:583 -msgid "Save music as WAV" +#: js/turtledefs.js:697 +msgid "Delete a selected plugin." msgstr "" -#: js/toolbar.js:81 -#: js/toolbar.js:139 -#: js/turtledefs.js:587 -msgid "Save sheet music as ABC" +#: js/turtledefs.js:704 +msgid "Enable scrolling" msgstr "" -#: js/toolbar.js:82 -#: js/toolbar.js:140 -#: js/turtledefs.js:591 -msgid "Save sheet music as Lilypond" +#: js/turtledefs.js:705 +msgid "You can scroll the blocks on the canvas." msgstr "" -#: js/toolbar.js:83 -msgid "Save sheet music as MusicXML" +#: js/turtledefs.js:714 +msgid "Wrap Turtle" msgstr "" -#: js/toolbar.js:84 -#: js/toolbar.js:141 -#: js/toolbar.js:149 -#: js/toolbar.js:204 -#: js/toolbar.js:259 -#: js/turtledefs.js:562 -#: js/turtledefs.js:595 -msgid "Save block artwork as SVG" +#: js/turtledefs.js:715 +msgid "Turn Turtle wrapping On or Off." msgstr "" -#: js/toolbar.js:85 -#: js/toolbar.js:142 -#: js/toolbar.js:150 -#: js/toolbar.js:205 -#: js/toolbar.js:260 -msgid "Confirm" +#: js/turtledefs.js:725 +msgid "Restore blocks from the trash." msgstr "" -#: js/toolbar.js:86 -#: js/toolbar.js:151 -#: js/toolbar.js:206 -#: js/toolbar.js:261 -msgid "English (United States)" +#: js/turtledefs.js:732 +msgid "Switch mode" msgstr "" -#: js/toolbar.js:87 -#: js/toolbar.js:152 -#: js/toolbar.js:207 -#: js/toolbar.js:262 -msgid "English (United Kingdom)" +#: js/turtledefs.js:733 +msgid "Switch between beginner and advance modes." msgstr "" -#: js/toolbar.js:88 -#: js/toolbar.js:153 -#: js/toolbar.js:208 -#: js/toolbar.js:263 -msgid "日本語" +#: js/turtledefs.js:739 +msgid "Select your language preference." msgstr "" -#: js/toolbar.js:89 -msgid "한국어" +#: js/turtledefs.js:745 +msgid "Keyboard shortcuts" msgstr "" -#: js/toolbar.js:90 -#: js/toolbar.js:155 -#: js/toolbar.js:210 -#: js/toolbar.js:265 -msgid "español" +#: js/turtledefs.js:746 +msgid "You can type d to create a do block and r to create a re block etc." msgstr "" -#: js/toolbar.js:91 -#: js/toolbar.js:156 -#: js/toolbar.js:211 -#: js/toolbar.js:266 -msgid "português" +#: js/turtledefs.js:753 +msgid "Show these messages." msgstr "" -#: js/toolbar.js:92 -#: js/toolbar.js:157 -#: js/toolbar.js:212 -#: js/toolbar.js:267 -msgid "にほんご" +#: js/turtledefs.js:759 +#: js/turtledefs.js:790 +#: js/widgets/help.js:335 +msgid "Guide" msgstr "" -#: js/toolbar.js:93 -#: js/toolbar.js:158 -#: js/toolbar.js:213 -#: js/toolbar.js:268 -msgid "中文" +#: js/turtledefs.js:760 +msgid "A detailed guide to Turtle Blocks is available." msgstr "" -#: js/toolbar.js:94 -#: js/toolbar.js:159 -#: js/toolbar.js:214 -#: js/toolbar.js:269 -msgid "ภาษาไทย" +#: js/turtledefs.js:764 +msgid "Turtle Blocks Guide" msgstr "" -#: js/toolbar.js:95 -#: js/toolbar.js:160 -#: js/toolbar.js:215 -#: js/toolbar.js:270 -msgid "aymara" +#: js/turtledefs.js:767 +#: js/turtledefs.js:798 +#: js/widgets/help.js:336 +msgid "About" +msgstr "" + +#: js/turtledefs.js:768 +msgid "Turtle Blocks is an open source collection of tools for exploring musical concepts." msgstr "" -#: js/toolbar.js:96 -#: js/toolbar.js:161 -#: js/toolbar.js:216 -#: js/toolbar.js:271 -msgid "quechua" +#: js/turtledefs.js:770 +msgid "A full list of contributors can be found in the Turtle Blocks GitHub repository." msgstr "" -#: js/toolbar.js:97 -#: js/toolbar.js:162 -#: js/toolbar.js:217 -#: js/toolbar.js:272 -msgid "guarani" +#: js/turtledefs.js:772 +msgid "Turtle Blocks is licensed under the AGPL." msgstr "" -#: js/toolbar.js:98 -#: js/toolbar.js:163 -#: js/toolbar.js:218 -#: js/toolbar.js:273 -msgid "हिंदी" +#: js/turtledefs.js:780 +msgid "Turtle Blocks GitHub repository" msgstr "" -#: js/toolbar.js:99 -#: js/toolbar.js:165 -#: js/toolbar.js:219 -#: js/toolbar.js:275 -msgid "igbo" +#: js/turtledefs.js:783 +#: js/turtledefs.js:814 +#: js/widgets/help.js:337 +#: js/widgets/help.js:359 +msgid "Congratulations." msgstr "" -#: js/toolbar.js:100 -#: js/toolbar.js:166 -#: js/toolbar.js:220 -#: js/toolbar.js:276 -msgid "عربى" +#: js/turtledefs.js:784 +msgid "You have finished the tour. Please enjoy Turtle Blocks!" msgstr "" -#: js/toolbar.js:101 -#: js/toolbar.js:164 -#: js/toolbar.js:221 -#: js/toolbar.js:274 -msgid "తెలుగు" +#: js/turtledefs.js:791 +msgid "A detailed guide to Music Blocks is available." msgstr "" -#: js/toolbar.js:102 -#: js/toolbar.js:167 -#: js/toolbar.js:222 -#: js/toolbar.js:277 -msgid "עִברִית" +#: js/turtledefs.js:799 +msgid "Music Blocks is an open source collection of tools for exploring musical concepts." msgstr "" -#: js/toolbar.js:111 -#: js/toolbar.js:175 -#: js/toolbar.js:176 -#: js/toolbar.js:231 -msgid "Full Screen" +#: js/turtledefs.js:801 +msgid "A full list of contributors can be found in the Music Blocks GitHub repository." msgstr "" -#: js/toolbar.js:145 -#: js/toolbar.js:148 -#: js/toolbar.js:200 -#: js/toolbar.js:203 -#: js/toolbar.js:255 -#: js/toolbar.js:258 -#: js/turtledefs.js:558 -msgid "Save turtle artwork as PNG" +#: js/turtledefs.js:803 +msgid "Music Blocks is licensed under the AGPL." msgstr "" -#: js/toolbar.js:147 -#: js/toolbar.js:202 -#: js/toolbar.js:257 -#: js/turtledefs.js:554 -msgid "Save turtle artwork as SVG" +#: js/turtledefs.js:811 +msgid "Music Blocks GitHub repository" msgstr "" -#: js/toolbar.js:154 -#: js/toolbar.js:209 -#: js/toolbar.js:264 -msgid "한국인" +#: js/turtledefs.js:815 +msgid "You have finished the tour. Please enjoy Music Blocks!" msgstr "" -#: js/toolbar.js:171 -#: js/toolbar.js:227 -msgid "About Turtle Blocks" +#: js/turtles.js:882 +msgid "Grid" msgstr "" -#: js/toolbar.js:429 -#: js/toolbar.js:440 -msgid "Turtle Wrap Off" +#: js/turtles.js:1024 +msgid "Expand" msgstr "" -#: js/toolbar.js:442 -msgid "Turtle Wrap On" +#: js/block-verbose.js:1616 +#: js/block-verbose.js:1735 +#: js/block.js:1580 +#: js/block.js:1699 +#: js/palette.js:605 +#: js/blocks/IntervalsBlocks.js:63 +#: js/blocks/WidgetBlocks.js:259 +msgid "temperament" msgstr "" -#: js/block.js:1470 +#: js/block-verbose.js:1630 +#: js/block.js:1594 msgid "matrix" msgstr "" -#: js/block.js:1477 -#: js/WidgetBlocks.js:1226 +#: js/block-verbose.js:1637 +#: js/block.js:1601 +#: js/blocks/WidgetBlocks.js:1509 #: plugins/rodi.rtp:324 msgid "status" msgstr "" -#: js/block.js:1484 +#: js/block-verbose.js:1644 +#: js/block.js:1608 msgid "drum mapper" msgstr "" -#: js/block.js:1491 +#: js/block-verbose.js:1651 +#: js/block.js:1615 msgid "ruler" msgstr "" -#: js/block.js:1498 -#: js/WidgetBlocks.js:327 +#: js/block-verbose.js:1658 +#: js/block.js:1622 +#: js/blocks/WidgetBlocks.js:397 #.TRANS: timbre is the character or quality of a musical sound msgid "timbre" msgstr "" -#: js/block.js:1505 +#: js/block-verbose.js:1665 +#: js/block.js:1629 msgid "stair" msgstr "" -#: js/block.js:1512 -#: js/WidgetBlocks.js:577 +#: js/block-verbose.js:1672 +#: js/block.js:1636 +#: js/blocks/WidgetBlocks.js:707 #.TRANS: the speed at music is should be played. msgid "tempo" msgstr "" -#: js/block.js:1519 -#: js/block.js:1582 -#: js/IntervalsBlocks.js:1268 +#: js/block-verbose.js:1679 +#: js/block-verbose.js:1742 +#: js/block.js:1643 +#: js/block.js:1706 +#: js/blocks/IntervalsBlocks.js:1464 #.TRANS: mode, e.g., Major in C Major msgid "mode" msgstr "" -#: js/block.js:1526 +#: js/block-verbose.js:1686 +#: js/block.js:1650 msgid "slider" msgstr "" -#: js/block.js:1533 -#: js/SensorsBlocks.js:1001 +#: js/block-verbose.js:1693 +#: js/block.js:1657 +#: js/blocks/SensorsBlocks.js:1001 msgid "keyboard" msgstr "teklado" -#: js/block.js:1547 -#: js/WidgetBlocks.js:957 -#: js/WidgetBlocks.js:988 +#: js/block-verbose.js:1707 +#: js/block.js:1671 +#: js/blocks/WidgetBlocks.js:1190 +#: js/blocks/WidgetBlocks.js:1228 #.TRANS: widget for subdividing a measure into distinct rhythmic elements msgid "rhythm maker" msgstr "" -#: js/block.js:1554 -#: js/block.js:2182 -#: js/block.js:2236 -#: js/RhythmBlockPaletteBlocks.js:70 -#: js/RhythmBlockPaletteBlocks.js:251 -#: js/RhythmBlockPaletteBlocks.js:484 -#: js/RhythmBlockPaletteBlocks.js:553 -#: js/RhythmBlockPaletteBlocks.js:604 -#: js/RhythmBlockPaletteBlocks.js:874 -#: js/RhythmBlocks.js:33 -#: js/RhythmBlocks.js:356 -#: js/RhythmBlocks.js:766 -#: js/RhythmBlocks.js:806 -#: js/OrnamentBlocks.js:220 -#: js/OrnamentBlocks.js:312 -#: js/MeterBlocks.js:1367 -#: js/DictActions.js:85 -#: js/phrasemaker.js:731 -#: js/phrasemaker.js:2393 -#: js/phrasemaker.js:2436 -#: js/phrasemaker.js:2534 +#: js/block-verbose.js:1714 +#: js/block-verbose.js:2457 +#: js/block-verbose.js:2514 +#: js/block.js:1678 +#: js/block.js:2385 +#: js/block.js:2442 +#: js/blocks/MeterBlocks.js:1367 +#: js/blocks/OrnamentBlocks.js:220 +#: js/blocks/OrnamentBlocks.js:312 +#: js/blocks/RhythmBlocks.js:33 +#: js/blocks/RhythmBlocks.js:356 +#: js/blocks/RhythmBlocks.js:766 +#: js/blocks/RhythmBlocks.js:806 +#: js/blocks/RhythmBlockPaletteBlocks.js:70 +#: js/blocks/RhythmBlockPaletteBlocks.js:252 +#: js/blocks/RhythmBlockPaletteBlocks.js:485 +#: js/blocks/RhythmBlockPaletteBlocks.js:554 +#: js/blocks/RhythmBlockPaletteBlocks.js:605 +#: js/blocks/RhythmBlockPaletteBlocks.js:875 +#: js/turtleactions/DictActions.js:85 +#: js/widgets/phrasemaker.js:942 +#: js/widgets/phrasemaker.js:2656 +#: js/widgets/phrasemaker.js:2699 +#: js/widgets/phrasemaker.js:2810 #.TRANS: the value (e.g., 1/4 note) of the note being played. msgid "note value" msgstr "" -#: js/block.js:1561 -#: js/block.js:2110 -#: js/block.js:2133 -#: js/IntervalsBlocks.js:875 -#: js/OrnamentBlocks.js:312 +#: js/block-verbose.js:1721 +#: js/block-verbose.js:2382 +#: js/block-verbose.js:2405 +#: js/block.js:1685 +#: js/block.js:2310 +#: js/block.js:2333 +#: js/blocks/IntervalsBlocks.js:1071 +#: js/blocks/OrnamentBlocks.js:312 #.TRANS: calculate a relative step between notes based on semi-tones msgid "scalar interval" msgstr "" -#: js/block.js:1568 -#: js/RhythmBlocks.js:148 +#: js/block-verbose.js:1728 +#: js/block.js:1692 +#: js/blocks/RhythmBlocks.js:148 msgid "milliseconds" msgstr "" -#: js/block.js:2180 -#: js/block.js:2184 -#: js/block.js:2234 -#: js/block.js:2345 -#: js/ProgramBlocks.js:1273 -#: js/RhythmBlocks.js:712 -#: js/rhythmruler.js:834 -#: js/rhythmruler.js:961 +#: js/block-verbose.js:2455 +#: js/block-verbose.js:2459 +#: js/block-verbose.js:2512 +#: js/block-verbose.js:2628 +#: js/block.js:2383 +#: js/block.js:2387 +#: js/block.js:2440 +#: js/block.js:2556 +#: js/blocks/RhythmBlocks.js:712 +#: js/blocks/ProgramBlocks.js:1273 +#: js/widgets/rhythmruler.js:1183 +#: js/widgets/rhythmruler.js:1329 msgid "silence" msgstr "" -#: js/block.js:2265 -#: js/block.js:3134 -#: js/block.js:3151 -#: js/activity.js:2336 -#: js/activity.js:2387 -#: js/musicutils.js:2932 -#: js/musicutils.js:4287 +#: js/block-verbose.js:2548 +#: js/block-verbose.js:3492 +#: js/block-verbose.js:3509 +#: js/activity.js:2718 +#: js/activity.js:2769 +#: js/block.js:2476 +#: js/block.js:3416 +#: js/block.js:3433 +#: js/utils/musicutils.js:3780 +#: js/utils/musicutils.js:5273 +#.TRANS: the note names must be separated by single spaces #.TRANS: the note names must be separated by single spaces #.TRANS: the note names must be separated by single spaces msgid "ti la sol fa mi re do" msgstr "" -#: js/block.js:2333 +#: js/block-verbose.js:2616 +#: js/block.js:2544 +#.TRANS: scalar step #.TRANS: scalar step msgid "down" msgstr "" -#: js/block.js:2334 +#: js/block-verbose.js:2617 +#: js/block.js:2545 msgid "up" msgstr "" -#: js/block.js:3477 -#: js/block.js:3490 -#: js/ExtrasBlocks.js:612 +#: js/block-verbose.js:3026 +#: js/block.js:2950 +msgid "Silence block cannot be removed." +msgstr "" + +#: js/block-verbose.js:3824 +#: js/block.js:3748 +#: js/blocks.js:2607 +#: js/blocks.js:3218 +#: js/palette.js:618 +#: js/blocks/BooleanBlocks.js:77 +#: js/blocks/BooleanBlocks.js:167 +#: js/blocks/BooleanBlocks.js:251 +#: js/blocks/BooleanBlocks.js:335 +#: js/blocks/BooleanBlocks.js:433 +#: js/blocks/BooleanBlocks.js:539 +#: js/blocks/BooleanBlocks.js:640 +#: js/blocks/BooleanBlocks.js:741 +#: js/blocks/BooleanBlocks.js:847 +#: js/blocks/BooleanBlocks.js:948 +#: js/blocks/BooleanBlocks.js:1033 +#: js/blocks/SensorsBlocks.js:910 +msgid "true" +msgstr "" + +#: js/block-verbose.js:3824 +#: js/block.js:3748 +#: js/blocks.js:2609 +#: js/blocks.js:3220 +#: js/blocks/BooleanBlocks.js:79 +#: js/blocks/BooleanBlocks.js:169 +#: js/blocks/BooleanBlocks.js:253 +#: js/blocks/BooleanBlocks.js:337 +#: js/blocks/BooleanBlocks.js:435 +#: js/blocks/BooleanBlocks.js:541 +#: js/blocks/BooleanBlocks.js:642 +#: js/blocks/BooleanBlocks.js:743 +#: js/blocks/BooleanBlocks.js:849 +#: js/blocks/BooleanBlocks.js:950 +#: js/blocks/SensorsBlocks.js:912 +msgid "false" +msgstr "" + +#: js/block-verbose.js:3835 +#: js/block-verbose.js:3848 +#: js/block.js:3759 +#: js/block.js:3772 +#: js/blocks/ExtrasBlocks.js:615 msgid "Cartesian" msgstr "Cartesian" -#: js/block.js:3478 -#: js/block.js:3491 -#: js/ExtrasBlocks.js:616 +#: js/block-verbose.js:3836 +#: js/block-verbose.js:3849 +#: js/block.js:3760 +#: js/block.js:3773 +#: js/blocks/ExtrasBlocks.js:619 msgid "polar" msgstr "" -#: js/block.js:3479 -#: js/block.js:3492 -#: js/ExtrasBlocks.js:620 +#: js/block-verbose.js:3837 +#: js/block-verbose.js:3850 +#: js/block.js:3761 +#: js/block.js:3774 +#: js/blocks/ExtrasBlocks.js:623 msgid "Cartesian+polar" msgstr "" -#: js/block.js:3480 -#: js/block.js:3499 -#: js/ExtrasBlocks.js:649 +#: js/block-verbose.js:3838 +#: js/block-verbose.js:3857 +#: js/block.js:3762 +#: js/block.js:3781 +#: js/blocks/ExtrasBlocks.js:652 msgid "none" msgstr "" -#: js/block.js:3493 -#: js/ExtrasBlocks.js:625 +#: js/block-verbose.js:3851 +#: js/block.js:3775 +#: js/blocks/ExtrasBlocks.js:628 msgid "treble" msgstr "" -#: js/block.js:3494 -#: js/ExtrasBlocks.js:629 +#: js/block-verbose.js:3852 +#: js/block.js:3776 +#: js/blocks/ExtrasBlocks.js:632 msgid "grand staff" msgstr "" -#: js/block.js:3495 -#: js/ExtrasBlocks.js:633 +#: js/block-verbose.js:3853 +#: js/block.js:3777 +#: js/blocks/ExtrasBlocks.js:636 msgid "mezzo-soprano" msgstr "" -#: js/block.js:3496 -#: js/ExtrasBlocks.js:637 +#: js/block-verbose.js:3854 +#: js/block.js:3778 +#: js/blocks/ExtrasBlocks.js:640 msgid "alto" msgstr "" -#: js/block.js:3497 -#: js/ExtrasBlocks.js:641 +#: js/block-verbose.js:3855 +#: js/block.js:3779 +#: js/blocks/ExtrasBlocks.js:644 msgid "tenor" msgstr "" -#: js/block.js:3498 -#: js/ExtrasBlocks.js:645 -#: js/musicutils.js:736 -#: js/synthutils.js:64 +#: js/block-verbose.js:3856 +#: js/block.js:3780 +#: js/utils/musicutils.js:1115 +#: js/utils/synthutils.js:80 +#: js/blocks/ExtrasBlocks.js:648 #.TRANS: musical instrument msgid "bass" msgstr "" -#: js/block.js:4075 +#: js/block-verbose.js:3901 +#: js/block.js:3825 +#: js/blocks.js:2600 +#: js/blocks.js:3211 +msgid "on2" +msgstr "" + +#: js/block-verbose.js:3903 +#: js/block.js:3827 +#: js/blocks.js:2602 +#: js/blocks.js:3213 +msgid "off" +msgstr "" + +#: js/block-verbose.js:4470 +#: js/block.js:4394 msgid "Not a number" msgstr "" -#: js/block.js:4082 -msgid "Octave value must be between 1 and 10." +#: js/block-verbose.js:4477 +#: js/block.js:4401 +msgid "Octave value must be between 1 and 10." +msgstr "" + +#: js/block-verbose.js:4485 +#: js/block.js:4409 +msgid "Numbers can have at most 10 digits." +msgstr "" + +#: js/activity.js:390 +#: js/activity.js:395 +msgid "Search for blocks" +msgstr "" + +#: js/activity.js:1413 +msgid "Refresh your browser to change to advanced mode." +msgstr "" + +#: js/activity.js:1418 +msgid "Refresh your browser to change to beginner mode." +msgstr "" + +#: js/activity.js:1477 +msgid "Catching mice" +msgstr "" + +#: js/activity.js:1478 +msgid "Cleaning the instruments" +msgstr "" + +#: js/activity.js:1479 +msgid "Testing key pieces" +msgstr "" + +#: js/activity.js:1480 +msgid "Sight-reading" +msgstr "" + +#: js/activity.js:1481 +msgid "Combining math and music" +msgstr "" + +#: js/activity.js:1482 +msgid "Generating more blocks" +msgstr "" + +#: js/activity.js:1483 +msgid "Do Re Mi Fa Sol La Ti Do" +msgstr "" + +#: js/activity.js:1484 +msgid "Tuning string instruments" +msgstr "" + +#: js/activity.js:1485 +msgid "Pressing random keys" +msgstr "" + +#: js/activity.js:1663 +msgid "plugins will be removed upon restart." +msgstr "" + +#: js/activity.js:1672 +msgid "show Cartesian" +msgstr "" + +#: js/activity.js:2211 +#: js/palette.js:589 +#: js/blocks/RhythmBlocks.js:923 +#: js/blocks/PitchBlocks.js:442 +#: js/blocks/PitchBlocks.js:1786 +#.TRANS: a numeric mapping of the notes in an octave based on the musical mode +msgid "scale degree" +msgstr "" + +#: js/activity.js:2214 +#: js/palette.js:598 +msgid "voice name" +msgstr "" + +#: js/activity.js:2217 +#: js/palette.js:595 +msgid "invert mode" +msgstr "" + +#: js/activity.js:2220 +msgid "output tools" +msgstr "" + +#: js/activity.js:2223 +msgid "custom note" +msgstr "" + +#: js/activity.js:2226 +msgid "accidental name" +msgstr "" + +#: js/activity.js:2229 +#: js/blocks/PitchBlocks.js:855 +msgid "east indian solfege" +msgstr "" + +#: js/activity.js:2232 +#: js/blocks/PitchBlocks.js:869 +msgid "note name" +msgstr "" + +#: js/activity.js:2235 +#: js/blocks/IntervalsBlocks.js:94 +msgid "temperament name" +msgstr "" + +#: js/activity.js:2238 +#: js/palette.js:592 +msgid "mode name" +msgstr "" + +#: js/activity.js:2241 +msgid "chord name" +msgstr "" + +#: js/activity.js:2244 +#: js/palette.js:615 +msgid "interval name" +msgstr "" + +#: js/activity.js:2247 +msgid "filter type" +msgstr "" + +#: js/activity.js:2250 +msgid "oscillator type" +msgstr "" + +#: js/activity.js:2253 +#: js/blocks.js:2479 +#: js/blocks.js:2487 +msgid "audio file" +msgstr "" + +#: js/activity.js:2256 +#: js/blocks/DrumBlocks.js:32 +msgid "noise name" +msgstr "" + +#: js/activity.js:2259 +#: js/blocks/DrumBlocks.js:75 +msgid "drum name" +msgstr "" + +#: js/activity.js:2262 +#: js/blocks/DrumBlocks.js:119 +msgid "effects name" +msgstr "" + +#: js/activity.js:2265 +msgid "wrap mode" +msgstr "" + +#: js/activity.js:2268 +msgid "load file" +msgstr "" + +#: js/activity.js:2435 +#: js/activity.js:5851 +msgid "This block is deprecated." +msgstr "" + +#: js/activity.js:2437 +#: js/activity.js:5853 +msgid "Block cannot be found." +msgstr "" + +#: js/activity.js:2645 +msgid "Saving block artwork" +msgstr "" + +#: js/activity.js:2656 +msgid "Erase" +msgstr "" + +#: js/activity.js:2683 +#: js/activity.js:2705 +msgid "Paste" +msgstr "Pega" + +#: js/activity.js:2687 +msgid "Save block help" +msgstr "" + +#: js/activity.js:2772 +msgid "Jumping to the bottom of the page." +msgstr "" + +#: js/activity.js:2778 +msgid "Scrolling up." +msgstr "" + +#: js/activity.js:2783 +msgid "Scrolling down." +msgstr "" + +#: js/activity.js:2788 +msgid "Extracting block" +msgstr "" + +#: js/activity.js:2796 +msgid "Moving block up." +msgstr "" + +#: js/activity.js:2817 +msgid "Moving block down." msgstr "" -#: js/block.js:4090 -msgid "Numbers can have at most 10 digits." +#: js/activity.js:2838 +msgid "Moving block left." msgstr "" -#: js/notation.js:353 -msgid "Lilypond cannot process pickup of " +#: js/activity.js:2855 +msgid "Moving block right." msgstr "" -#: js/turtledefs.js:40 -#.TRANS: put the URL to the guide here, e.g., https://github.com/sugarlabs/turtleblocksjs/tree/master/guide/README.md -msgid "guide url" +#: js/activity.js:2870 +msgid "Jump to home position." msgstr "" -#: js/turtledefs.js:85 -#: js/turtledefs.js:437 -msgid "Turtle Blocks is a Logo-inspired turtle that draws colorful pictures with snap-together visual-programming blocks." +#: js/activity.js:2897 +msgid "Hide blocks" msgstr "" -#: js/turtledefs.js:118 -#: js/turtledefs.js:220 -msgid "search" +#: js/activity.js:4500 +msgid "Click the run button to run the project." msgstr "" -#: js/turtledefs.js:120 -#: js/turtledefs.js:222 -#: js/WidgetBlocks.js:437 -#: js/MeterBlocks.js:1343 -#.TRANS: musical meter (time signature), e.g., 4:4 -msgid "meter" +#: js/activity.js:5692 +msgid "Show/hide block" msgstr "" -#: js/turtledefs.js:122 -#: js/turtledefs.js:224 -msgid "intervals" +#: js/activity.js:5698 +msgid "Expand/collapse blocks" msgstr "" -#: js/turtledefs.js:124 -#: js/turtledefs.js:226 -msgid "ornament" +#: js/activity.js:5976 +msgid "Could not parse JSON input." msgstr "" -#: js/turtledefs.js:125 -#: js/turtledefs.js:227 -#: js/VolumeBlocks.js:362 -#: js/VolumeBlocks.js:502 -#: js/VolumeBlocks.js:545 -msgid "volume" +#: js/activity.js:6475 +#: js/activity.js:6580 +#: js/activity.js:6631 +msgid "Cannot load project from the file. Please check the file type." msgstr "" -#: js/turtledefs.js:129 -#: js/turtledefs.js:231 -msgid "boxes" +#: js/activity.js:6917 +msgid "Invalid parameters" msgstr "" -#: js/turtledefs.js:130 -#: js/turtledefs.js:232 -msgid "widgets" +#: js/blocks.js:1212 +#: js/blocks.js:3444 +#: js/blocks.js:3834 +#: js/blocks.js:3865 +#: js/blocks.js:3914 +#: js/blocks.js:3949 +#: js/blocks.js:6586 +#: js/palette.js:509 +#: js/palette.js:638 +#: js/palette.js:1105 +#: js/blocks/BoxesBlocks.js:282 +#: js/blocks/BoxesBlocks.js:285 +#: js/blocks/BoxesBlocks.js:405 +#: js/blocks/BoxesBlocks.js:594 +msgid "box" +msgstr "kaha" + +#: js/blocks.js:1713 +msgid "Consider breaking this stack into parts." msgstr "" -#: js/turtledefs.js:131 -#: js/turtledefs.js:233 -#: js/phrasemaker.js:824 -msgid "graphics" +#: js/blocks.js:2472 +#: js/palette.js:653 +#: js/blocks/MediaBlocks.js:602 +msgid "open file" msgstr "" -#: js/turtledefs.js:134 -#: js/turtledefs.js:236 -msgid "boolean" +#: js/blocks.js:3247 +#: js/palette.js:574 +#: js/blocks/MediaBlocks.js:892 +#: js/blocks/MediaBlocks.js:963 +msgid "text" +msgstr "teksto" + +#: js/blocks.js:3443 +#: js/palette.js:641 +#: js/palette.js:642 +#: js/blocks/BoxesBlocks.js:514 +msgid "store in box" msgstr "" -#: js/turtledefs.js:137 -#: js/turtledefs.js:239 -#: js/HeapBlocks.js:59 -#: js/status.js:147 -msgid "heap" +#: js/blocks.js:3448 +#: js/blocks.js:3888 +#: js/blocks.js:3923 +#: js/blocks.js:3958 +#: js/blocks.js:5862 +#: js/blocks.js:5883 +#: js/blocks/BoxesBlocks.js:772 +msgid "box1" msgstr "" -#: js/turtledefs.js:138 -#: js/turtledefs.js:240 -#: js/ProgramBlocks.js:495 -#: js/DictBlocks.js:142 -msgid "dictionary" +#: js/blocks.js:3450 +#: js/blocks.js:3890 +#: js/blocks.js:3925 +#: js/blocks.js:3960 +#: js/blocks.js:5864 +#: js/blocks.js:5885 +#: js/blocks/BoxesBlocks.js:663 +msgid "box2" msgstr "" -#: js/turtledefs.js:139 -#: js/turtledefs.js:241 -msgid "ensemble" +#: js/blocks.js:4122 +#: js/palette.js:639 +#: js/palette.js:644 +#: js/palette.js:1041 +#: js/blocks/BoxesBlocks.js:591 +msgid "store in" +msgstr "waarda den" + +#: js/blocks.js:4122 +#: js/blocks/BoxesBlocks.js:595 +#: js/blocks/DictBlocks.js:215 +#: js/blocks/DictBlocks.js:289 +#: js/blocks/EnsembleBlocks.js:391 +#: js/blocks/EnsembleBlocks.js:402 +#: js/blocks/MediaBlocks.js:746 +#: js/blocks/PitchBlocks.js:656 +#: js/blocks/PitchBlocks.js:934 +#: js/blocks/PitchBlocks.js:1866 +#: js/blocks/ProgramBlocks.js:390 +#: js/blocks/ProgramBlocks.js:495 +#: js/blocks/ProgramBlocks.js:658 +#: js/blocks/ToneBlocks.js:1025 +msgid "name" msgstr "" -#: js/turtledefs.js:140 -#: js/turtledefs.js:242 -msgid "extras" -msgstr "Èkstranan" +#: js/blocks.js:4122 +#: js/blocks/BoxesBlocks.js:75 +#: js/blocks/BoxesBlocks.js:595 +#: js/blocks/DictBlocks.js:289 +#: js/blocks/DictBlocks.js:430 +#: js/blocks/HeapBlocks.js:544 +#: js/blocks/RhythmBlocks.js:1130 +msgid "value" +msgstr "balor" -#: js/turtledefs.js:142 -#: js/turtledefs.js:244 -#.TRANS: program as in computer program -#.TRANS: program as in computer program -msgid "program" +#: js/blocks.js:4465 +msgid "Forever loop detected inside a note value block. Unexpected things may happen." msgstr "" -#: js/turtledefs.js:143 -#: js/turtledefs.js:245 -msgid "my blocks" +#: js/blocks.js:4988 +msgid "There is no block selected." msgstr "" -#: js/turtledefs.js:185 -#: js/turtledefs.js:281 -msgid "artwork" +#: js/blocks.js:5091 +#: js/blocks/MediaBlocks.js:888 +msgid "show" +msgstr "Mustra" + +#: js/blocks.js:5094 +#: js/blocks/MediaBlocks.js:803 +#.TRANS: Avatar is the image used to determine the appearance of the mouse. +msgid "avatar" msgstr "" -#: js/turtledefs.js:185 -#: js/turtledefs.js:281 -msgid "logic" +#: js/blocks.js:5097 +#: js/blocks/ToneBlocks.js:1010 +#: js/widgets/sampler.js:975 +#.TRANS: The sound sample that the user uploads. +msgid "sample" msgstr "" -#: js/turtledefs.js:185 -#: js/turtledefs.js:281 -msgid "music" +#: js/lilypond.js:606 +msgid "brown rat" msgstr "" -#: js/turtledefs.js:187 -#: js/turtledefs.js:463 -msgid "Music Blocks is a collection of tools for exploring fundamental musical concepts in a fun way." +#: js/lilypond.js:607 +msgid "mole" msgstr "" -#: js/turtledefs.js:436 -msgid "Welcome to Turtle Blocks" +#: js/lilypond.js:608 +msgid "chipmunk" msgstr "" -#: js/turtledefs.js:438 -#: js/turtledefs.js:465 -#: js/turtledefs.js:774 -#: js/turtledefs.js:805 -msgid "The current version is" +#: js/lilypond.js:609 +msgid "red squirrel" msgstr "" -#: js/turtledefs.js:446 -#: js/turtledefs.js:483 -msgid "Click the run button to run the project in fast mode." +#: js/lilypond.js:610 +msgid "guinea pig" msgstr "" -#: js/turtledefs.js:452 -msgid "Stop the turtle." +#: js/lilypond.js:611 +msgid "capybara" msgstr "" -#: js/turtledefs.js:454 -#: js/turtledefs.js:491 -msgid "You can also type Alt-S to stop." +#: js/lilypond.js:612 +msgid "coypu" msgstr "" -#: js/turtledefs.js:462 -#: js/help.js:333 -msgid "Welcome to Music Blocks" +#: js/lilypond.js:613 +msgid "black rat" msgstr "" -#: js/turtledefs.js:472 -#: js/help.js:334 -msgid "Meet Mr. Mouse!" +#: js/lilypond.js:614 +msgid "grey squirrel" msgstr "" -#: js/turtledefs.js:473 -msgid "Mr Mouse is our Music Blocks conductor." +#: js/lilypond.js:615 +msgid "flying squirrel" msgstr "" -#: js/turtledefs.js:475 -msgid "Mr Mouse encourages you to explore Music Blocks." +#: js/lilypond.js:616 +msgid "bat" msgstr "" -#: js/turtledefs.js:477 -msgid "Let us start our tour!" +#: js/lilypond.js:749 +#: js/lilypond.js:913 +#: js/lilypond.js:951 +#: js/blocks/ActionBlocks.js:1256 +#: js/blocks/ExtrasBlocks.js:556 +msgid "start drum" msgstr "" -#: js/turtledefs.js:489 -msgid "Stop the music (and the mice)." +#: js/logo.js:61 +msgid "Not a valid pitch name" msgstr "" -#: js/turtledefs.js:499 -msgid "Record your project as video." +#: js/logo.js:507 +#: js/blocks/ProgramBlocks.js:258 +#: js/blocks/ProgramBlocks.js:427 +msgid "You must select a file." msgstr "" -#: js/turtledefs.js:505 -msgid "Toggle Fullscreen mode." +#: js/logo.js:1696 +msgid "Playback is ready." msgstr "" -#: js/turtledefs.js:511 -msgid "Initialize a new project." +#: js/macros.js:711 +#: js/utils/musicutils.js:1162 +#: js/utils/synthutils.js:202 +#.TRANS: animal sound effect +msgid "duck" msgstr "" -#: js/turtledefs.js:517 -msgid "You can also load projects from the file system." +#: js/notation.js:353 +msgid "Lilypond cannot process pickup of " msgstr "" -#: js/turtledefs.js:522 -#: js/StringHelper.js:46 -msgid "Delete" +#: js/palette.js:571 +msgid "grid" msgstr "" -#: js/turtledefs.js:523 -msgid "To delete a block, just right-click on it, then you will be able to see the delete option" +#: js/palette.js:580 +msgid "effect" msgstr "" -#: js/turtledefs.js:528 -#: js/activity.js:2270 -#: js/LocalCard.js:31 -msgid "Copy" -msgstr "Kopia" +#: js/palette.js:586 +msgid "sargam" +msgstr "" -#: js/turtledefs.js:529 -msgid "To copy a block, just right-click on it, then you will be able to see the copy option" +#: js/palette.js:601 +#: js/blocks/PitchBlocks.js:1209 +msgid "custom pitch" msgstr "" -#: js/turtledefs.js:535 -msgid "To extract a block, just right-click on it, then you will be able to see the extract option" +#: js/palette.js:609 +msgid "accidental" msgstr "" -#: js/turtledefs.js:542 -#: js/turtledefs.js:552 -#: js/turtledefs.js:573 -msgid "Save your project to a file." +#: js/palette.js:633 +#: js/blocks/PitchBlocks.js:405 +msgid "pitch converter" msgstr "" -#: js/turtledefs.js:549 -#: js/turtledefs.js:570 -msgid "save" +#: js/piemenus.js:200 +#: js/utils/musicutils.js:1187 +#: js/utils/musicutils.js:1207 +#: js/widgets/musickeyboard.js:2341 +#: js/widgets/phrasemaker.js:1908 +#: js/widgets/sampler.js:810 +#.TRANS: double sharp is a music term related to pitch +msgid "double sharp" msgstr "" -#: js/turtledefs.js:556 -#: js/turtledefs.js:577 -msgid "Save graphics from your project to as SVG." +#: js/piemenus.js:201 +#: js/utils/musicutils.js:1185 +#: js/utils/musicutils.js:1208 +#: js/blocks/PitchBlocks.js:1539 +#: js/turtleactions/PitchActions.js:323 +#: js/widgets/musickeyboard.js:2342 +#: js/widgets/phrasemaker.js:1909 +#: js/widgets/sampler.js:811 +#.TRANS: sharp is a music term related to pitch +#.TRANS: sharp is a half-step up in pitch +msgid "sharp" msgstr "" -#: js/turtledefs.js:560 -#: js/turtledefs.js:581 -msgid "Save graphics from your project as PNG." +#: js/piemenus.js:202 +#: js/utils/musicutils.js:1183 +#: js/utils/musicutils.js:1209 +#: js/widgets/musickeyboard.js:2343 +#: js/widgets/phrasemaker.js:1910 +#: js/widgets/sampler.js:812 +#.TRANS: natural is a music term related to pitch +msgid "natural" msgstr "" -#: js/turtledefs.js:564 -#: js/turtledefs.js:597 -msgid "Save block artwork as an SVG file." +#: js/piemenus.js:203 +#: js/utils/musicutils.js:1181 +#: js/utils/musicutils.js:1210 +#: js/blocks/PitchBlocks.js:1498 +#: js/turtleactions/PitchActions.js:326 +#: js/widgets/musickeyboard.js:2344 +#: js/widgets/phrasemaker.js:1911 +#: js/widgets/sampler.js:813 +#.TRANS: flat is a music term related to pitch +#.TRANS: flat is a half-step down in pitch +msgid "flat" msgstr "" -#: js/turtledefs.js:585 -msgid "Save audio from your project as WAV." +#: js/piemenus.js:204 +#: js/utils/musicutils.js:1179 +#: js/utils/musicutils.js:1211 +#: js/widgets/musickeyboard.js:2345 +#: js/widgets/phrasemaker.js:1912 +#: js/widgets/sampler.js:814 +#.TRANS: double flat is a music term related to pitch +msgid "double flat" msgstr "" -#: js/turtledefs.js:589 -msgid "Save your project to as an ABC file." +#: js/piemenus.js:2864 +#: js/utils/musicutils.js:1006 +#: js/blocks/PitchBlocks.js:1385 +#.TRANS: unison is a music term related to intervals +#.TRANS: unison means the note is the same as the current note +msgid "unison" msgstr "" -#: js/turtledefs.js:593 -msgid "Save your project to as a Lilypond file." +#: js/piemenus.js:3018 +#: js/piemenus.js:3091 +#: js/utils/musicutils.js:1014 +#: js/utils/musicutils.js:1189 +#: js/utils/musicutils.js:1326 +#.TRANS: major is a music term related to intervals and mode +msgid "major" msgstr "" -#: js/turtledefs.js:604 -msgid "Load samples from server" +#: js/piemenus.js:3018 +#: js/piemenus.js:3091 +#: js/utils/musicutils.js:1032 +#.TRANS: modal scale for music +msgid "ionian" msgstr "" -#: js/turtledefs.js:605 -msgid "This button opens a viewer for loading example projects." +#: js/piemenus.js:3020 +#: js/piemenus.js:3095 +#: js/utils/musicutils.js:1012 +#: js/utils/musicutils.js:1190 +#: js/utils/musicutils.js:1323 +#.TRANS: minor is a music term related to intervals and mode +msgid "minor" msgstr "" -#: js/turtledefs.js:611 -msgid "Palette buttons" +#: js/piemenus.js:3020 +#: js/piemenus.js:3095 +#: js/utils/musicutils.js:1042 +#.TRANS: modal scale for music +msgid "aeolian" msgstr "" -#: js/turtledefs.js:612 -msgid "This toolbar contains the palette buttons including Rhythm Pitch Tone Action and more." +#: js/piemenus.js:3410 +msgid "Duplicate" msgstr "" -#: js/turtledefs.js:614 -msgid "Click to show the palettes of blocks and drag blocks from the palettes onto the canvas to use them." +#: js/piemenus.js:3412 +msgid "Move to trash" msgstr "" -#: js/turtledefs.js:620 -msgid "Cartesian/Polar" +#: js/piemenus.js:3413 +#: js/widgets/timbre.js:968 +#: planet/js/StringHelper.js:69 +msgid "Close" msgstr "" -#: js/turtledefs.js:621 -msgid "Show or hide a coordinate grid." -msgstr "" +#: js/piemenus.js:3419 +msgid "Save stack" +msgstr "Warda stack" -#: js/turtledefs.js:627 -msgid "Clear the screen and return the mice to their initial positions." +#: js/piemenus.js:3449 +msgid "In order to copy a sample, you must reload the widget, import the sample again, and export it." msgstr "" -#: js/turtledefs.js:633 -msgid "Collapse the graphics window." +#: js/piemenus.js:3812 +msgid "You have chosen key " msgstr "" -#: js/turtledefs.js:638 -#: js/activity.js:4256 -#: js/activity.js:4256 -msgid "Home" +#: js/piemenus.js:3816 +msgid " for your pitch preview." msgstr "" -#: js/turtledefs.js:639 -msgid "Return all blocks to the center of the screen." +#: js/turtle-singer.js:1363 +#.TRANS: partials are weighted components in a harmonic series +msgid "You must have at least one Partial block inside of a Weighted-partial block" msgstr "" -#: js/turtledefs.js:644 -msgid "Show/hide blocks" -msgstr "Mustra/skonde blòki" +#: js/turtle-singer.js:2077 +msgid "synth cannot play chords." +msgstr "" -#: js/turtledefs.js:645 -msgid "Hide or show the blocks and the palettes." +#: js/utils/musicutils.js:505 +#: js/utils/musicutils.js:645 +#: js/widgets/pitchdrummatrix.js:228 +#: js/widgets/musickeyboard.js:2885 +msgid "rest" msgstr "" -#: js/turtledefs.js:650 -msgid "Expand/collapse collapsable blocks" +#: js/utils/musicutils.js:689 +msgid "Perfect unison" msgstr "" -#: js/turtledefs.js:651 -msgid "Expand or collapse start and action stacks." +#: js/utils/musicutils.js:689 +msgid "Diminished second" msgstr "" -#: js/turtledefs.js:658 -#: js/activity.js:4265 -msgid "Decrease block size" +#: js/utils/musicutils.js:690 +msgid "Minor second" msgstr "" -#: js/turtledefs.js:659 -msgid "Decrease the size of the blocks." +#: js/utils/musicutils.js:690 +msgid "Augmented unison" msgstr "" -#: js/turtledefs.js:664 -#: js/activity.js:4267 -msgid "Increase block size" +#: js/utils/musicutils.js:691 +msgid "Major second" msgstr "" -#: js/turtledefs.js:665 -msgid "Increase the size of the blocks." +#: js/utils/musicutils.js:691 +msgid "Diminished third" msgstr "" -#: js/turtledefs.js:670 -msgid "Expand/collapse option toolbar" +#: js/utils/musicutils.js:692 +msgid "Minor third" msgstr "" -#: js/turtledefs.js:671 -msgid "Click this button to expand or collapse the auxillary toolbar." +#: js/utils/musicutils.js:692 +msgid "Augmented second" msgstr "" -#: js/turtledefs.js:676 -msgid "Run slow" +#: js/utils/musicutils.js:693 +msgid "Major third" msgstr "" -#: js/turtledefs.js:677 -msgid "Click to run the project in slow mode." +#: js/utils/musicutils.js:693 +msgid "Diminished fourth" msgstr "" -#: js/turtledefs.js:683 -msgid "Click to run the project step by step." +#: js/utils/musicutils.js:694 +msgid "Perfect fourth" msgstr "" -#: js/turtledefs.js:690 -msgid "Display statistics about your Music project." +#: js/utils/musicutils.js:694 +msgid "Augmented third" msgstr "" -#: js/turtledefs.js:697 -msgid "Delete a selected plugin." +#: js/utils/musicutils.js:695 +msgid "Diminished fifth" msgstr "" -#: js/turtledefs.js:704 -msgid "Enable scrolling" +#: js/utils/musicutils.js:695 +msgid "Augmented fourth" msgstr "" -#: js/turtledefs.js:705 -msgid "You can scroll the blocks on the canvas." +#: js/utils/musicutils.js:696 +msgid "Perfect fifth" msgstr "" -#: js/turtledefs.js:714 -msgid "Wrap Turtle" +#: js/utils/musicutils.js:696 +msgid "Diminished sixth" msgstr "" -#: js/turtledefs.js:715 -msgid "Turn Turtle wrapping On or Off." +#: js/utils/musicutils.js:697 +msgid "Minor sixth" msgstr "" -#: js/turtledefs.js:725 -msgid "Restore blocks from the trash." +#: js/utils/musicutils.js:697 +msgid "Augmented fifth" msgstr "" -#: js/turtledefs.js:732 -msgid "Switch mode" +#: js/utils/musicutils.js:698 +msgid "Major sixth" msgstr "" -#: js/turtledefs.js:733 -msgid "Switch between beginner and advance modes." +#: js/utils/musicutils.js:698 +msgid "Diminished seventh" msgstr "" -#: js/turtledefs.js:739 -msgid "Select your language preference." +#: js/utils/musicutils.js:699 +msgid "Minor seventh" msgstr "" -#: js/turtledefs.js:745 -msgid "Keyboard shortcuts" +#: js/utils/musicutils.js:699 +msgid "Augmented sixth" msgstr "" -#: js/turtledefs.js:746 -msgid "You can type d to create a do block and r to create a re block etc." +#: js/utils/musicutils.js:700 +msgid "Major seventh" msgstr "" -#: js/turtledefs.js:753 -msgid "Show these messages." +#: js/utils/musicutils.js:700 +msgid "Diminished octave" msgstr "" -#: js/turtledefs.js:759 -#: js/turtledefs.js:790 -#: js/help.js:335 -msgid "Guide" +#: js/utils/musicutils.js:701 +msgid "Perfect octave" msgstr "" -#: js/turtledefs.js:760 -msgid "A detailed guide to Turtle Blocks is available." +#: js/utils/musicutils.js:701 +msgid "Augmented seventh" msgstr "" -#: js/turtledefs.js:764 -msgid "Turtle Blocks Guide" +#: js/utils/musicutils.js:702 +msgid "Minor ninth" msgstr "" -#: js/turtledefs.js:767 -#: js/turtledefs.js:798 -#: js/help.js:336 -msgid "About" +#: js/utils/musicutils.js:702 +msgid "Augmented octave" msgstr "" -#: js/turtledefs.js:768 -msgid "Turtle Blocks is an open source collection of tools for exploring musical concepts." +#: js/utils/musicutils.js:703 +msgid "Major ninth" msgstr "" -#: js/turtledefs.js:770 -msgid "A full list of contributors can be found in the Turtle Blocks GitHub repository." +#: js/utils/musicutils.js:703 +msgid "Diminished tenth" msgstr "" -#: js/turtledefs.js:772 -msgid "Turtle Blocks is licensed under the AGPL." +#: js/utils/musicutils.js:704 +msgid "Minor tenth" msgstr "" -#: js/turtledefs.js:780 -msgid "Turtle Blocks GitHub repository" +#: js/utils/musicutils.js:704 +msgid "Augmented ninth" msgstr "" -#: js/turtledefs.js:783 -#: js/turtledefs.js:814 -#: js/help.js:337 -#: js/help.js:359 -msgid "Congratulations." +#: js/utils/musicutils.js:705 +msgid "Major tenth" msgstr "" -#: js/turtledefs.js:784 -msgid "You have finished the tour. Please enjoy Turtle Blocks!" +#: js/utils/musicutils.js:705 +msgid "Diminished eleventh" msgstr "" -#: js/turtledefs.js:791 -msgid "A detailed guide to Music Blocks is available." +#: js/utils/musicutils.js:706 +msgid "Perfect eleventh" msgstr "" -#: js/turtledefs.js:795 -#: js/SaveInterface.js:76 -msgid "Music Blocks Guide" +#: js/utils/musicutils.js:706 +msgid "Augmented tenth" msgstr "" -#: js/turtledefs.js:799 -msgid "Music Blocks is an open source collection of tools for exploring musical concepts." +#: js/utils/musicutils.js:707 +msgid "Diminished twelfth" msgstr "" -#: js/turtledefs.js:801 -msgid "A full list of contributors can be found in the Music Blocks GitHub repository." +#: js/utils/musicutils.js:707 +msgid "Augmented eleventh" msgstr "" -#: js/turtledefs.js:803 -msgid "Music Blocks is licensed under the AGPL." +#: js/utils/musicutils.js:708 +msgid "Perfect twelfth" msgstr "" -#: js/turtledefs.js:811 -msgid "Music Blocks GitHub repository" +#: js/utils/musicutils.js:708 +msgid "Diminished thirteenth" msgstr "" -#: js/turtledefs.js:815 -msgid "You have finished the tour. Please enjoy Music Blocks!" +#: js/utils/musicutils.js:709 +msgid "Minor thirteenth" msgstr "" -#: js/activity.js:369 -msgid "Search for blocks" +#: js/utils/musicutils.js:709 +msgid "Augmented fifth, plus an octave" msgstr "" -#: js/activity.js:1145 -msgid "Refresh your browser to change to advanced mode." +#: js/utils/musicutils.js:710 +msgid "Major thirteenth" msgstr "" -#: js/activity.js:1150 -msgid "Refresh your browser to change to beginner mode." +#: js/utils/musicutils.js:710 +msgid "Diminished seventh, plus an octave" msgstr "" -#: js/activity.js:1184 -msgid "Catching mice" +#: js/utils/musicutils.js:838 +#.TRANS: ordinal number. Please keep exactly one space between each number. +msgid "1st 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th" msgstr "" -#: js/activity.js:1185 -msgid "Cleaning the instruments" +#: js/utils/musicutils.js:1008 +#: js/utils/musicutils.js:1191 +#: js/utils/musicutils.js:1325 +#.TRANS: augmented is a music term related to intervals +msgid "augmented" msgstr "" -#: js/activity.js:1186 -msgid "Testing key pieces" +#: js/utils/musicutils.js:1010 +#: js/utils/musicutils.js:1192 +#: js/utils/musicutils.js:1324 +#.TRANS: diminished is a music term related to intervals and mode +msgid "diminished" msgstr "" -#: js/activity.js:1187 -msgid "Sight-reading" +#: js/utils/musicutils.js:1016 +#: js/utils/musicutils.js:1322 +#: js/blocks/IntervalsBlocks.js:649 +#: js/turtleactions/IntervalsActions.js:120 +#: js/turtleactions/IntervalsActions.js:124 +#.TRANS: perfect is a music term related to intervals +msgid "perfect" msgstr "" -#: js/activity.js:1188 -msgid "Combining math and music" +#: js/utils/musicutils.js:1018 +#.TRANS: twelve semi-tone scale for music +msgid "chromatic" msgstr "" -#: js/activity.js:1189 -msgid "Generating more blocks" +#: js/utils/musicutils.js:1019 +msgid "algerian" msgstr "" -#: js/activity.js:1190 -msgid "Do Re Mi Fa Sol La Ti Do" +#: js/utils/musicutils.js:1020 +msgid "spanish" msgstr "" -#: js/activity.js:1191 -msgid "Tuning string instruments" +#: js/utils/musicutils.js:1022 +#.TRANS: modal scale in music +msgid "octatonic" msgstr "" -#: js/activity.js:1192 -msgid "Pressing random keys" +#: js/utils/musicutils.js:1024 +#.TRANS: harmonic major scale in music +msgid "harmonic major" msgstr "" -#: js/activity.js:1351 -msgid "plugins will be removed upon restart." +#: js/utils/musicutils.js:1026 +#.TRANS: natural minor scales in music +msgid "natural minor" msgstr "" -#: js/activity.js:1360 -msgid "show Cartesian" +#: js/utils/musicutils.js:1028 +#.TRANS: harmonic minor scale in music +msgid "harmonic minor" msgstr "" -#: js/activity.js:1842 -msgid "output tools" +#: js/utils/musicutils.js:1030 +#.TRANS: melodic minor scale in music +msgid "melodic minor" msgstr "" -#: js/activity.js:1845 -msgid "custom note" +#: js/utils/musicutils.js:1034 +#.TRANS: modal scale for music +msgid "dorian" msgstr "" -#: js/activity.js:1848 -msgid "accidental name" +#: js/utils/musicutils.js:1036 +#.TRANS: modal scale for music +msgid "phrygian" msgstr "" -#: js/activity.js:1851 -#: js/PitchBlocks.js:855 -msgid "east indian solfege" +#: js/utils/musicutils.js:1038 +#.TRANS: modal scale for music +msgid "lydian" msgstr "" -#: js/activity.js:1854 -#: js/PitchBlocks.js:869 -msgid "note name" +#: js/utils/musicutils.js:1040 +#.TRANS: modal scale for music +msgid "mixolydian" msgstr "" -#: js/activity.js:1857 -#: js/IntervalsBlocks.js:94 -msgid "temperament name" +#: js/utils/musicutils.js:1044 +#.TRANS: modal scale for music +msgid "locrian" msgstr "" -#: js/activity.js:1863 -msgid "chord name" +#: js/utils/musicutils.js:1046 +#.TRANS: minor jazz scale for music +msgid "jazz minor" msgstr "" -#: js/activity.js:1869 -msgid "filter type" +#: js/utils/musicutils.js:1048 +#.TRANS: bebop scale for music +msgid "bebop" msgstr "" -#: js/activity.js:1872 -msgid "oscillator type" +#: js/utils/musicutils.js:1049 +msgid "arabic" msgstr "" -#: js/activity.js:1878 -#: js/DrumBlocks.js:32 -msgid "noise name" +#: js/utils/musicutils.js:1050 +msgid "byzantine" msgstr "" -#: js/activity.js:1881 -#: js/DrumBlocks.js:75 -msgid "drum name" +#: js/utils/musicutils.js:1052 +#.TRANS: musical scale for music by Verdi +msgid "enigmatic" msgstr "" -#: js/activity.js:1884 -#: js/DrumBlocks.js:119 -msgid "effects name" +#: js/utils/musicutils.js:1053 +msgid "ethiopian" msgstr "" -#: js/activity.js:1887 -msgid "wrap mode" +#: js/utils/musicutils.js:1055 +#.TRANS: Ethiopic scale for music +msgid "geez" msgstr "" -#: js/activity.js:1890 -msgid "load file" +#: js/utils/musicutils.js:1056 +msgid "hindu" msgstr "" -#: js/activity.js:2056 -msgid "This block is deprecated." +#: js/utils/musicutils.js:1057 +msgid "hungarian" msgstr "" -#: js/activity.js:2058 -msgid "Block cannot be found." +#: js/utils/musicutils.js:1059 +#.TRANS: minor Romanian scale for music +msgid "romanian minor" msgstr "" -#: js/activity.js:2266 -msgid "Saving block artwork" +#: js/utils/musicutils.js:1060 +msgid "spanish gypsy" msgstr "" -#: js/activity.js:2277 -msgid "Erase" +#: js/utils/musicutils.js:1062 +#.TRANS: musical scale for Mid-Eastern music +msgid "maqam" msgstr "" -#: js/activity.js:2301 -#: js/activity.js:2323 -msgid "Paste" -msgstr "Pega" +#: js/utils/musicutils.js:1064 +#.TRANS: minor blues scale for music +msgid "minor blues" +msgstr "" -#: js/activity.js:2305 -msgid "Save block help" +#: js/utils/musicutils.js:1066 +#.TRANS: major blues scale for music +msgid "major blues" msgstr "" -#: js/activity.js:2390 -msgid "Jumping to the bottom of the page." +#: js/utils/musicutils.js:1067 +msgid "whole tone" msgstr "" -#: js/activity.js:2396 -msgid "Scrolling up." +#: js/utils/musicutils.js:1069 +#.TRANS: pentatonic is a general term that means "five note scale". This scale is typically known as "minor pentatonic" +msgid "minor pentatonic" msgstr "" -#: js/activity.js:2401 -msgid "Scrolling down." +#: js/utils/musicutils.js:1071 +#.TRANS: pentatonic is a general term that means "five note scale". This scale is typically known as "major pentatonic" +msgid "major pentatonic" msgstr "" -#: js/activity.js:2406 -msgid "Extracting block" +#: js/utils/musicutils.js:1072 +msgid "chinese" msgstr "" -#: js/activity.js:2414 -msgid "Moving block up." +#: js/utils/musicutils.js:1073 +msgid "egyptian" msgstr "" -#: js/activity.js:2435 -msgid "Moving block down." +#: js/utils/musicutils.js:1075 +#.TRANS: https://en.wikipedia.org/wiki/Hirajoshi_scale NOTE: There are three different versions of this scale +msgid "hirajoshi" msgstr "" -#: js/activity.js:2456 -msgid "Moving block left." +#: js/utils/musicutils.js:1076 +msgid "Japan" msgstr "" -#: js/activity.js:2473 -msgid "Moving block right." +#: js/utils/musicutils.js:1078 +#.TRANS: https://en.wikipedia.org/wiki/In_scale and https://en.wikipedia.org/wiki/Sakura_Sakura +msgid "in" msgstr "" -#: js/activity.js:2488 -msgid "Jump to home position." +#: js/utils/musicutils.js:1080 +#.TRANS: https://en.wikipedia.org/wiki/Miny%C5%8D_scale +msgid "minyo" msgstr "" -#: js/activity.js:2515 -msgid "Hide blocks" +#: js/utils/musicutils.js:1082 +#.TRANS: Italian mathematician +msgid "fibonacci" msgstr "" -#: js/activity.js:3389 -msgid "Click the run button to run the project." +#: js/utils/musicutils.js:1083 +#: js/utils/musicutils.js:1134 +#: js/utils/musicutils.js:1177 +#: js/utils/musicutils.js:1199 +#: js/utils/synthutils.js:134 +#: js/blocks/IntervalsBlocks.js:1124 +#: js/blocks/ToneBlocks.js:946 +#: js/blocks/VolumeBlocks.js:411 +#: js/blocks/WidgetBlocks.js:399 +#: js/blocks/WidgetBlocks.js:404 +#: js/turtleactions/VolumeActions.js:218 +#: js/widgets/modewidget.js:919 +#.TRANS: customize voice +msgid "custom" msgstr "" -#: js/activity.js:3456 -#: js/SaveInterface.js:131 -#: js/SaveInterface.js:204 -#: js/SaveInterface.js:262 -#: js/SaveInterface.js:389 -#: js/SaveInterface.js:417 -#: js/ProjectStorage.js:27 -#: js/GlobalPlanet.js:467 -#: js/GlobalPlanet.js:469 -#: js/GlobalPlanet.js:495 -#.TRANS: default project title when saving as Lilypond -msgid "My Project" +#: js/utils/musicutils.js:1085 +#: js/utils/musicutils.js:1531 +#: js/blocks/WidgetBlocks.js:176 +#.TRANS: highpass filter +msgid "highpass" msgstr "" -#: js/activity.js:4261 -msgid "Show/hide block" +#: js/utils/musicutils.js:1087 +#: js/utils/musicutils.js:1532 +#.TRANS: lowpass filter +msgid "lowpass" msgstr "" -#: js/activity.js:4263 -msgid "Expand/collapse blocks" +#: js/utils/musicutils.js:1089 +#: js/utils/musicutils.js:1533 +#.TRANS: bandpass filter +msgid "bandpass" msgstr "" -#: js/activity.js:4381 -msgid "Could not parse JSON input." +#: js/utils/musicutils.js:1091 +#: js/utils/musicutils.js:1534 +#.TRANS: high-shelf filter +msgid "highshelf" msgstr "" -#: js/activity.js:4684 -#: js/activity.js:4771 -#: js/activity.js:4821 -msgid "Cannot load project from the file. Please check the file type." +#: js/utils/musicutils.js:1093 +#: js/utils/musicutils.js:1535 +#.TRANS: low-shelf filter +msgid "lowshelf" msgstr "" -#: js/activity.js:5051 -msgid "Invalid parameters" +#: js/utils/musicutils.js:1095 +#: js/utils/musicutils.js:1536 +#.TRANS: notch-shelf filter +msgid "notch" msgstr "" -#: js/turtle-singer.js:1334 -#.TRANS: partials are weighted components in a harmonic series -msgid "You must have at least one Partial block inside of a Weighted-partial block" +#: js/utils/musicutils.js:1097 +#: js/utils/musicutils.js:1537 +#.TRANS: all-pass filter +msgid "allpass" msgstr "" -#: js/turtle-singer.js:2048 -msgid "synth cannot play chords." +#: js/utils/musicutils.js:1099 +#: js/utils/musicutils.js:1538 +#.TRANS: peaking filter +msgid "peaking" msgstr "" -#: js/lilypond.js:614 -msgid "brown rat" +#: js/utils/musicutils.js:1100 +#: js/utils/musicutils.js:1546 +#: js/utils/synthutils.js:126 +#: js/blocks/PitchBlocks.js:85 +#.TRANS: sine wave +msgid "sine" msgstr "" -#: js/lilypond.js:615 -msgid "mole" +#: js/utils/musicutils.js:1101 +#: js/utils/musicutils.js:1547 +#: js/utils/synthutils.js:128 +#: js/blocks/PitchBlocks.js:39 +#.TRANS: square wave +msgid "square" msgstr "" -#: js/lilypond.js:616 -msgid "chipmunk" +#: js/utils/musicutils.js:1102 +#: js/utils/musicutils.js:1548 +#: js/utils/synthutils.js:132 +#: js/blocks/PitchBlocks.js:62 +#: js/blocks/ToneBlocks.js:39 +#.TRANS: triangle wave +msgid "triangle" msgstr "" -#: js/lilypond.js:617 -msgid "red squirrel" +#: js/utils/musicutils.js:1103 +#: js/utils/musicutils.js:1549 +#: js/utils/synthutils.js:130 +#: js/blocks/PitchBlocks.js:108 +#.TRANS: sawtooth wave +msgid "sawtooth" msgstr "" -#: js/lilypond.js:618 -msgid "guinea pig" +#: js/utils/musicutils.js:1105 +#: js/utils/musicutils.js:1312 +#: js/blocks/PitchBlocks.js:931 +#: js/blocks/PitchBlocks.js:937 +#: js/turtleactions/PitchActions.js:469 +#.TRANS: even numbers +#.TRANS: invert based on even or odd number or musical scale +msgid "even" msgstr "" -#: js/lilypond.js:619 -msgid "capybara" +#: js/utils/musicutils.js:1107 +#: js/utils/musicutils.js:1313 +#: js/blocks/PitchBlocks.js:937 +#: js/turtleactions/PitchActions.js:471 +#.TRANS: odd numbers +msgid "odd" msgstr "" -#: js/lilypond.js:620 -msgid "coypu" +#: js/utils/musicutils.js:1108 +#: js/utils/musicutils.js:1314 +#: js/blocks/PitchBlocks.js:937 +#: js/turtleactions/PitchActions.js:473 +msgid "scalar" msgstr "" -#: js/lilypond.js:621 -msgid "black rat" +#: js/utils/musicutils.js:1109 +#: js/utils/synthutils.js:72 +#: js/blocks/VolumeBlocks.js:47 +#.TRANS: musical instrument +msgid "piano" msgstr "" -#: js/lilypond.js:622 -msgid "grey squirrel" +#: js/utils/musicutils.js:1110 +#: js/utils/synthutils.js:74 +#.TRANS: musical instrument +msgid "violin" msgstr "" -#: js/lilypond.js:623 -msgid "flying squirrel" +#: js/utils/musicutils.js:1111 +#: js/utils/synthutils.js:76 +#.TRANS: viola musical instrument +msgid "viola" msgstr "" -#: js/lilypond.js:624 -msgid "bat" +#: js/utils/musicutils.js:1112 +#: js/utils/synthutils.js:114 +#.TRANS: xylophone musical instrument +msgid "xylophone" msgstr "" -#: js/lilypond.js:757 -#: js/lilypond.js:921 -#: js/lilypond.js:959 -#: js/ActionBlocks.js:1256 -#: js/ExtrasBlocks.js:553 -msgid "start drum" +#: js/utils/musicutils.js:1113 +#: js/utils/synthutils.js:136 +#.TRANS: vibraphone musical instrument +msgid "vibraphone" msgstr "" -#: js/SaveInterface.js:59 -#: js/SaveInterface.js:61 -#: js/SaveInterface.js:93 -msgid "Music Blocks Project" +#: js/utils/musicutils.js:1114 +#: js/utils/synthutils.js:78 +#.TRANS: musical instrument +msgid "cello" msgstr "" -#: js/SaveInterface.js:63 -msgid "This project was created in Music Blocks" +#: js/utils/musicutils.js:1116 +#: js/utils/synthutils.js:82 +#.TRANS: viola musical instrument +msgid "double bass" msgstr "" -#: js/SaveInterface.js:67 -msgid "Music Blocks is a Free/Libre Software application." +#: js/utils/musicutils.js:1117 +#: js/utils/synthutils.js:84 +#: js/widgets/rhythmruler.js:2511 +#.TRANS: musical instrument +msgid "guitar" msgstr "" -#: js/SaveInterface.js:69 -msgid "The source code can be accessed at" +#: js/utils/musicutils.js:1118 +#: js/utils/synthutils.js:86 +#.TRANS: musical instrument +msgid "acoustic guitar" msgstr "" -#: js/SaveInterface.js:72 -msgid "For more information, please consult the" +#: js/utils/musicutils.js:1119 +#: js/utils/synthutils.js:88 +#.TRANS: musical instrument +msgid "flute" msgstr "" -#: js/SaveInterface.js:83 -msgid "Alternatively, open the file in Music Blocks using the Load project button." +#: js/utils/musicutils.js:1120 +#: js/utils/synthutils.js:90 +#.TRANS: musical instrument +msgid "clarinet" msgstr "" -#: js/SaveInterface.js:85 -msgid "Project Code" +#: js/utils/musicutils.js:1121 +#: js/utils/synthutils.js:92 +#.TRANS: musical instrument +msgid "saxophone" msgstr "" -#: js/SaveInterface.js:87 -msgid "This code stores data about the blocks in a project." +#: js/utils/musicutils.js:1122 +#: js/utils/synthutils.js:94 +#.TRANS: musical instrument +msgid "tuba" msgstr "" -#: js/SaveInterface.js:89 -msgid "Show" +#: js/utils/musicutils.js:1123 +#: js/utils/synthutils.js:96 +#.TRANS: musical instrument +msgid "trumpet" msgstr "" -#: js/SaveInterface.js:91 -msgid "Hide" +#: js/utils/musicutils.js:1124 +#: js/utils/synthutils.js:98 +#.TRANS: musical instrument +msgid "oboe" msgstr "" -#: js/SaveInterface.js:197 -#: js/SaveInterface.js:58 -msgid "No description provided" +#: js/utils/musicutils.js:1125 +#: js/utils/synthutils.js:100 +#.TRANS: musical instrument +msgid "trombone" msgstr "" -#: js/SaveInterface.js:332 -msgid "Your recording is in progress." +#: js/utils/musicutils.js:1126 +#: js/utils/synthutils.js:116 +#.TRANS: polytone synthesizer +msgid "electronic synth" msgstr "" -#: js/SaveInterface.js:401 -#.TRANS: File name prompt for save as Lilypond -msgid "File name" +#: js/utils/musicutils.js:1127 +#: js/utils/synthutils.js:118 +#.TRANS: simple monotone synthesizer +msgid "simple 1" msgstr "" -#: js/SaveInterface.js:403 -#: js/StringHelper.js:39 -#.TRANS: Project title prompt for save as Lilypond -msgid "Project title" +#: js/utils/musicutils.js:1128 +msgid "simple 2" msgstr "" -#: js/SaveInterface.js:405 -#.TRANS: Project title prompt for save as Lilypond -msgid "Project author" +#: js/utils/musicutils.js:1129 +msgid "simple 3" msgstr "" -#: js/SaveInterface.js:407 -#.TRANS: MIDI prompt for save as Lilypond -msgid "Include MIDI output?" +#: js/utils/musicutils.js:1130 +msgid "simple 4" msgstr "" -#: js/SaveInterface.js:409 -#.TRANS: Guitar prompt for save as Lilypond -msgid "Include guitar tablature output?" +#: js/utils/musicutils.js:1131 +#: js/utils/synthutils.js:58 +#: js/blocks/DrumBlocks.js:191 +#.TRANS: white noise synthesizer +msgid "white noise" msgstr "" -#: js/SaveInterface.js:411 -#.TRANS: Lilypond is a scripting language for generating sheet music -msgid "Save as Lilypond" +#: js/utils/musicutils.js:1132 +#: js/utils/synthutils.js:60 +#.TRANS: brown noise synthesizer +msgid "brown noise" msgstr "" -#: js/SaveInterface.js:426 -#: js/EnsembleBlocks.js:75 -#: js/EnsembleBlocks.js:154 -#: js/EnsembleBlocks.js:216 -#: js/EnsembleBlocks.js:302 -#: js/EnsembleBlocks.js:348 -#: js/EnsembleBlocks.js:389 -#: js/EnsembleBlocks.js:441 -#: js/EnsembleBlocks.js:490 -#: js/EnsembleBlocks.js:536 -#: js/EnsembleBlocks.js:583 -#: js/EnsembleBlocks.js:637 -#: js/EnsembleBlocks.js:753 -#: js/EnsembleBlocks.js:840 -#: js/EnsembleBlocks.js:899 -#: js/EnsembleBlocks.js:942 -#: js/EnsembleBlocks.js:1212 -#: js/EnsembleBlocks.js:1280 -#.TRANS: default project author when saving as Lilypond -msgid "Mr. Mouse" +#: js/utils/musicutils.js:1133 +#: js/utils/synthutils.js:62 +#.TRANS: pink noise synthesizer +msgid "pink noise" msgstr "" -#: js/SaveInterface.js:573 -msgid "The Lilypond code is copied to clipboard. You can paste it here: " +#: js/utils/musicutils.js:1135 +#: js/utils/synthutils.js:148 +#: js/widgets/rhythmruler.js:2057 +#: js/widgets/rhythmruler.js:2319 +#.TRANS: musical instrument +msgid "snare drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:50 -#: js/RhythmBlockPaletteBlocks.js:232 -#.TRANS: rhythm block -#.TRANS: translate "rhythm1" as rhythm -msgid "rhythm1" +#: js/utils/musicutils.js:1136 +#: js/utils/synthutils.js:150 +#.TRANS: musical instrument +msgid "kick drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:70 -#: js/RhythmBlockPaletteBlocks.js:251 -#: js/RhythmBlockPaletteBlocks.js:484 -#: js/RhythmBlockPaletteBlocks.js:553 -#: js/RhythmBlockPaletteBlocks.js:874 -msgid "number of notes" +#: js/utils/musicutils.js:1137 +#: js/utils/synthutils.js:152 +#.TRANS: musical instrument +msgid "tom tom" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:126 -msgid "polyphonic rhythm" +#: js/utils/musicutils.js:1138 +#: js/utils/synthutils.js:154 +#.TRANS: musical instrument +msgid "floor tom" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:218 -msgid "The Rhythm block is used to generate rhythm patterns." +#: js/utils/musicutils.js:1139 +#: js/utils/synthutils.js:156 +#.TRANS: musical instrument +msgid "bass drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:279 -msgid "1/64 note" +#: js/utils/musicutils.js:1140 +#: js/utils/synthutils.js:158 +#.TRANS: a drum made from an inverted cup +msgid "cup drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:303 -msgid "1/32 note" +#: js/utils/musicutils.js:1141 +#: js/utils/synthutils.js:160 +#.TRANS: musical instrument +msgid "darbuka drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:331 -msgid "1/16 note" +#: js/utils/musicutils.js:1142 +#: js/utils/synthutils.js:164 +#.TRANS: musical instrument +msgid "hi hat" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:359 -msgid "eighth note" +#: js/utils/musicutils.js:1143 +#: js/utils/synthutils.js:166 +#.TRANS: a small metal bell +msgid "ride bell" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:387 -msgid "quarter note" +#: js/utils/musicutils.js:1144 +#: js/utils/synthutils.js:168 +#.TRANS: musical instrument +msgid "cow bell" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:415 -msgid "half note" +#: js/utils/musicutils.js:1145 +msgid "japanese drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:443 -msgid "whole note" +#: js/utils/musicutils.js:1146 +#: js/utils/synthutils.js:174 +#.TRANS: musical instrument +msgid "japanese bell" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:481 -#: js/RhythmBlockPaletteBlocks.js:550 -#: js/RhythmBlockPaletteBlocks.js:601 -#.TRANS: A tuplet is a note value divided into irregular time values. -msgid "tuplet" +#: js/utils/musicutils.js:1147 +#: js/utils/synthutils.js:170 +#.TRANS: musical instrument +msgid "triangle bell" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:767 -msgid "septuplet" +#: js/utils/musicutils.js:1148 +#: js/utils/synthutils.js:172 +#.TRANS: musical instrument +msgid "finger cymbals" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:795 -msgid "quintuplet" +#: js/utils/musicutils.js:1149 +#: js/utils/synthutils.js:176 +#.TRANS: a musically tuned set of bells +msgid "chime" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:823 -msgid "triplet" +#: js/utils/musicutils.js:1150 +#: js/utils/synthutils.js:178 +#.TRANS: a musical instrument +msgid "gong" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:850 -msgid "simple tuplet" +#: js/utils/musicutils.js:1151 +#: js/utils/synthutils.js:180 +#.TRANS: sound effect +msgid "clang" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:860 -msgid "Tuplets are a collection of notes that get scaled to a specific duration." +#: js/utils/musicutils.js:1152 +#: js/utils/synthutils.js:182 +#.TRANS: sound effect +msgid "crash" msgstr "" -#: js/WidgetBlocks.js:71 -#.TRANS: sound envelope (ADSR) -msgid "envelope" +#: js/utils/musicutils.js:1153 +#: js/utils/synthutils.js:184 +#.TRANS: sound effect +msgid "bottle" msgstr "" -#: js/WidgetBlocks.js:79 -#.TRANS: Attack time is the time taken for initial run-up of level from nil to peak, beginning when the key is first pressed. -msgid "attack" +#: js/utils/musicutils.js:1154 +#: js/utils/synthutils.js:186 +#.TRANS: sound effect +msgid "clap" msgstr "" -#: js/WidgetBlocks.js:81 -#.TRANS: Decay time is the time taken for the subsequent run down from the attack level to the designated sustain level. -msgid "decay" +#: js/utils/musicutils.js:1155 +#: js/utils/synthutils.js:188 +#.TRANS: sound effect +msgid "slap" msgstr "" -#: js/WidgetBlocks.js:83 -#.TRANS: Sustain level is the level during the main sequence of the sound's duration, until the key is released. -msgid "sustain" +#: js/utils/musicutils.js:1156 +#: js/utils/synthutils.js:190 +#.TRANS: sound effect +msgid "splash" msgstr "" -#: js/WidgetBlocks.js:85 -#.TRANS: Release time is the time taken for the level to decay from the sustain level to zero after the key is released. -msgid "release" +#: js/utils/musicutils.js:1157 +#: js/utils/synthutils.js:192 +#.TRANS: sound effect +msgid "bubbles" msgstr "" -#: js/WidgetBlocks.js:96 -msgid "Attack value should be from 0 to 100." +#: js/utils/musicutils.js:1158 +#: js/utils/synthutils.js:194 +#.TRANS: sound effect +msgid "raindrop" msgstr "" -#: js/WidgetBlocks.js:99 -msgid "Decay value should be from 0 to 100." +#: js/utils/musicutils.js:1159 +#: js/utils/synthutils.js:196 +#.TRANS: animal sound effect +msgid "cat" msgstr "" -#: js/WidgetBlocks.js:102 -msgid "Sustain value should be from 0 to 100." +#: js/utils/musicutils.js:1160 +#: js/utils/synthutils.js:198 +#.TRANS: animal sound effect +msgid "cricket" msgstr "" -#: js/WidgetBlocks.js:105 -msgid "Release value should be from 0-100." +#: js/utils/musicutils.js:1161 +#: js/utils/synthutils.js:200 +#.TRANS: animal sound effect +msgid "dog" msgstr "" -#: js/WidgetBlocks.js:121 -msgid "You are adding multiple envelope blocks." +#: js/utils/musicutils.js:1163 +#: js/utils/synthutils.js:102 +#.TRANS: musical instrument +msgid "banjo" msgstr "" -#: js/WidgetBlocks.js:144 -#.TRANS: a filter removes some unwanted components from a signal -msgid "filter" +#: js/utils/musicutils.js:1164 +#: js/utils/synthutils.js:104 +#.TRANS: musical instrument +msgid "koto" msgstr "" -#: js/WidgetBlocks.js:149 -#: js/musicutils.js:706 -#: js/musicutils.js:1105 -#.TRANS: highpass filter -msgid "highpass" +#: js/utils/musicutils.js:1165 +#: js/utils/synthutils.js:106 +#.TRANS: musical instrument +msgid "dulcimer" msgstr "" -#: js/WidgetBlocks.js:152 -#: js/ToneBlocks.js:42 -#: js/timbre.js:1558 -#: js/timbre.js:1808 -#.TRANS: type of filter, e.g., lowpass, highpass, etc. -#.TRANS: there are different types (sine, triangle, square...) of oscillators. -msgid "type" +#: js/utils/musicutils.js:1166 +#: js/utils/synthutils.js:108 +#.TRANS: musical instrument +msgid "electric guitar" msgstr "" -#: js/WidgetBlocks.js:154 -#: js/timbre.js:1818 -#.TRANS: rolloff is the steepness of a change in frequency. -msgid "rolloff" +#: js/utils/musicutils.js:1167 +#: js/utils/synthutils.js:110 +#.TRANS: musical instrument +msgid "bassoon" msgstr "" -#: js/WidgetBlocks.js:155 -#: js/MediaBlocks.js:692 -#: js/temperament.js:382 -#: js/temperament.js:417 -#: js/temperament.js:477 -#: js/temperament.js:485 -#: js/temperament.js:1348 -#: js/timbre.js:1842 -msgid "frequency" +#: js/utils/musicutils.js:1168 +#: js/utils/synthutils.js:112 +#.TRANS: musical instrument +msgid "celeste" msgstr "" -#: js/WidgetBlocks.js:179 -#.TRANS: rolloff is the steepness of a change in frequency. -msgid "Rolloff value should be either -12, -24, -48, or -96 decibels/octave." +#: js/utils/musicutils.js:1170 +#: js/widgets/temperament.js:787 +#.TRANS: musical temperament +msgid "equal" msgstr "" -#: js/WidgetBlocks.js:211 -msgid "The Temperament tool is used to define custom tuning." +#: js/utils/musicutils.js:1172 +#.TRANS: musical temperament +msgid "Pythagorean" msgstr "" -#: js/WidgetBlocks.js:277 -#: js/sampler.js:329 -msgid "Upload a sample and adjust its pitch center." +#: js/utils/musicutils.js:1174 +#.TRANS: musical temperament +msgid "just intonation" msgstr "" -#: js/WidgetBlocks.js:284 -#.TRANS: the speed at music is should be played. -msgid "sampler" +#: js/utils/musicutils.js:1176 +#.TRANS: musical temperament +msgid "meantone" msgstr "" -#: js/WidgetBlocks.js:329 -#: js/WidgetBlocks.js:334 -#: js/IntervalsBlocks.js:928 -#: js/VolumeBlocks.js:411 -#: js/ToneBlocks.js:946 -#: js/VolumeActions.js:218 -#: js/musicutils.js:704 -#: js/musicutils.js:755 -#: js/musicutils.js:798 -#: js/musicutils.js:820 -#: js/musicutils.js:1136 -#: js/synthutils.js:118 -#: js/modewidget.js:919 -#.TRANS: customize voice -msgid "custom" +#: js/utils/musicutils.js:1193 +msgid "major 7th" msgstr "" -#: js/WidgetBlocks.js:432 -msgid "The Meter block opens a tool to select strong beats for the meter." +#: js/utils/musicutils.js:1194 +msgid "minor 7th" msgstr "" -#: js/WidgetBlocks.js:473 -msgid "The oscilloscope block opens a tool to visualize waveforms." +#: js/utils/musicutils.js:1195 +msgid "dominant 7th" msgstr "" -#: js/WidgetBlocks.js:478 -msgid "oscilloscope" +#: js/utils/musicutils.js:1196 +msgid "minor-major 7th" msgstr "" -#: js/WidgetBlocks.js:530 -msgid "The Custom mode block opens a tool to explore musical mode (the spacing of the notes in a scale)." +#: js/utils/musicutils.js:1197 +msgid "fully-diminished 7th" msgstr "" -#: js/WidgetBlocks.js:536 -#.TRANS: musical mode is the pattern of half-steps in an octave, e.g., Major or Minor modes -msgid "custom mode" +#: js/utils/musicutils.js:1198 +msgid "half-diminished 7th" msgstr "" -#: js/WidgetBlocks.js:570 -msgid "The Tempo block opens a metronome to visualize the beat." +#: js/utils/musicutils.js:1557 +#: js/utils/musicutils.js:1569 +msgid "Equal (12EDO)" msgstr "" -#: js/WidgetBlocks.js:617 -msgid "The Arpeggio Widget is used to compose chord sequences." +#: js/utils/musicutils.js:1558 +#: js/utils/musicutils.js:1570 +msgid "5-limit Just Intonation" msgstr "" -#: js/WidgetBlocks.js:623 -#: js/IntervalsBlocks.js:683 -msgid "arpeggio" +#: js/utils/musicutils.js:1559 +#: js/utils/musicutils.js:1571 +msgid "Pythagorean (3-limit JI)" msgstr "" -#: js/WidgetBlocks.js:677 -msgid "The Pitch drum matrix is used to map pitches to drum sounds." +#: js/utils/musicutils.js:1560 +#: js/utils/musicutils.js:1561 +#: js/utils/musicutils.js:1572 +#: js/utils/musicutils.js:1573 +msgid "Meantone" msgstr "" -#: js/WidgetBlocks.js:682 -#.TRANS: makes a mapping between pitches and drum sounds -msgid "pitch-drum mapper" +#: js/utils/musicutils.js:1574 +msgid "Custom" msgstr "" -#: js/WidgetBlocks.js:724 -msgid "You must have at least one pitch block and one drum block in the matrix." +#: js/utils/musicutils.js:5387 +#: js/utils/musicutils.js:5430 +msgid "current" msgstr "" -#: js/WidgetBlocks.js:746 -msgid "The Pitch slider tool to is used to generate pitches at selected frequencies." +#: js/utils/musicutils.js:5390 +#: js/utils/musicutils.js:5421 +msgid "next" msgstr "" -#: js/WidgetBlocks.js:751 -#.TRANS: widget to generate pitches using a slider -msgid "pitch slider" +#: js/utils/musicutils.js:5393 +#: js/utils/musicutils.js:5426 +msgid "previous" msgstr "" -#: js/WidgetBlocks.js:788 -msgid "chromatic keyboard" +#: js/utils/synthutils.js:120 +#.TRANS: simple monotone synthesizer +msgid "simple-2" msgstr "" -#: js/WidgetBlocks.js:815 -#: js/WidgetBlocks.js:874 -#.TRANS: widget to generate pitches using a slider -msgid "music keyboard" +#: js/utils/synthutils.js:122 +#.TRANS: simple monotone synthesizer +msgid "simple-3" msgstr "" -#: js/WidgetBlocks.js:859 -#: js/WidgetBlocks.js:866 -msgid "The Music keyboard block opens a piano keyboard that can be used to create notes." +#: js/utils/synthutils.js:124 +#.TRANS: simple monotone synthesizer +msgid "simple-4" msgstr "" -#: js/WidgetBlocks.js:910 -msgid "The Pitch staircase tool to is used to generate pitches from a given ratio." +#: js/utils/synthutils.js:162 +#.TRANS: musical instrument +msgid "taiko" msgstr "" -#: js/WidgetBlocks.js:917 -#.TRANS: generate a progressive sequence of pitches -msgid "pitch staircase" +#: js/blocks/ActionBlocks.js:58 +msgid "The Return block will return a value from an action." msgstr "" -#: js/WidgetBlocks.js:982 -msgid "The Rhythm Maker block opens a tool to create drum machines." +#: js/blocks/ActionBlocks.js:75 +msgid "return" msgstr "" -#: js/WidgetBlocks.js:1036 -msgid "G major scale" +#: js/blocks/ActionBlocks.js:128 +msgid "The Return to URL block will return a value to a webpage." msgstr "" -#: js/WidgetBlocks.js:1064 -msgid "C major scale" +#: js/blocks/ActionBlocks.js:145 +msgid "return to URL" msgstr "" -#: js/WidgetBlocks.js:1097 -msgid "The Phrase Maker block opens a tool to create musical phrases." +#: js/blocks/ActionBlocks.js:233 +#: js/blocks/ActionBlocks.js:290 +#: js/blocks/ActionBlocks.js:501 +#: js/blocks/ActionBlocks.js:688 +msgid "The Calculate block returns a value calculated by an action." msgstr "" -#: js/WidgetBlocks.js:1104 -#.TRANS: assigns pitch to a sequence of beats to generate a melody -msgid "phrase maker" +#: js/blocks/ActionBlocks.js:251 +#: js/blocks/ActionBlocks.js:517 +#: js/blocks/ActionBlocks.js:707 +msgid "calculate" msgstr "" -#: js/WidgetBlocks.js:1168 -msgid "You must have at least one pitch block and one rhythm block in the matrix." +#: js/blocks/ActionBlocks.js:376 +#: js/blocks/ActionBlocks.js:593 +#: js/blocks/ActionBlocks.js:942 +#: js/blocks/ActionBlocks.js:1389 +#.TRANS: do is the do something or take an action. +msgid "The Do block is used to initiate an action." msgstr "" -#: js/WidgetBlocks.js:1220 -msgid "The Status block opens a tool for inspecting the status of Music Blocks as it is running." +#: js/blocks/ActionBlocks.js:390 +#: js/blocks/ActionBlocks.js:610 +#: js/blocks/ActionBlocks.js:959 +#: js/blocks/ActionBlocks.js:1048 +#: js/blocks/MeterBlocks.js:769 +msgid "do1" msgstr "" -#: js/IntervalsBlocks.js:45 -msgid "set temperament" +#: js/blocks/ActionBlocks.js:390 +#: js/blocks/ActionBlocks.js:610 +#: js/blocks/ActionBlocks.js:959 +#: js/blocks/ActionBlocks.js:1048 +#: js/blocks/FlowBlocks.js:742 +#: js/blocks/FlowBlocks.js:822 +#: js/blocks/MeterBlocks.js:769 +msgid "do" msgstr "" -#: js/IntervalsBlocks.js:63 -#: js/MediaBlocks.js:746 -#: js/PitchBlocks.js:657 -#: js/PitchBlocks.js:933 -#: js/PitchBlocks.js:972 -#: js/PitchBlocks.js:1005 -#: js/PitchBlocks.js:1166 -#: js/PitchBlocks.js:1679 -#: js/PitchBlocks.js:1720 -#: js/PitchBlocks.js:1827 -#: js/ToneBlocks.js:1025 -#.TRANS: adjusts the shift up or down by one octave (twelve half-steps in the interval between two notes, one having twice or half the frequency in Hz of the other.) -msgid "octave" +#: js/blocks/ActionBlocks.js:791 +#: js/blocks/ActionBlocks.js:865 +msgid "The Arg block contains the value of an argument passed to an action." msgstr "" -#: js/IntervalsBlocks.js:99 -msgid "The Temperament name block is used to select a tuning method." +#: js/blocks/ActionBlocks.js:806 +#: js/blocks/ActionBlocks.js:878 +msgid "arg" msgstr "" -#: js/IntervalsBlocks.js:161 -msgid "doubly" +#: js/blocks/ActionBlocks.js:836 +#: js/blocks/ActionBlocks.js:900 +#: js/blocks/ActionBlocks.js:908 +msgid "Invalid argument" msgstr "" -#: js/IntervalsBlocks.js:166 -msgid "The Doubly block will double the size of an interval." +#: js/blocks/ActionBlocks.js:944 +msgid "In the example, it is used with the One of block to choose a random phase." msgstr "" -#: js/IntervalsBlocks.js:262 -msgid "interval number" +#: js/blocks/ActionBlocks.js:1019 +#: js/blocks/ActionBlocks.js:1026 +msgid "The Listen block is used to listen for an event such as a mouse click." msgstr "" -#: js/IntervalsBlocks.js:330 -#.TRANS: measure the distance between two pitches in semi-tones -msgid "semi-tone interval measure" +#: js/blocks/ActionBlocks.js:1028 +msgid "When the event happens, an action is taken." msgstr "" -#: js/IntervalsBlocks.js:397 -#: js/IntervalsBlocks.js:513 -msgid "You must use two pitch blocks when measuring an interval." +#: js/blocks/ActionBlocks.js:1045 +msgid "on" msgstr "" -#: js/IntervalsBlocks.js:439 -msgid "The Scalar interval block measures the distance between two notes in the current key and mode." +#: js/blocks/ActionBlocks.js:1048 +#: js/blocks/ActionBlocks.js:1049 +#: js/blocks/ActionBlocks.js:1153 +msgid "event" msgstr "" -#: js/IntervalsBlocks.js:445 -#.TRANS: measure the distance between two pitches in steps of musical scale -msgid "scalar interval measure" +#: js/blocks/ActionBlocks.js:1133 +msgid "The Broadcast block is used to trigger an event." msgstr "" -#: js/IntervalsBlocks.js:592 -#: js/musicutils.js:637 -#: js/musicutils.js:908 -#.TRANS: perfect is a music term related to intervals -msgid "perfect" +#: js/blocks/ActionBlocks.js:1151 +msgid "broadcast" msgstr "" -#: js/IntervalsBlocks.js:621 -msgid "In the figure, we add sol# to sol." +#: js/blocks/ActionBlocks.js:1208 +msgid "Each Start block is a separate voice." msgstr "" -#: js/IntervalsBlocks.js:627 -#: js/OrnamentBlocks.js:220 -#.TRANS: calculate a relative step between notes based on semi-tones -msgid "semi-tone interval" +#: js/blocks/ActionBlocks.js:1304 +msgid "It is often used for storing a phrase of music that is repeated." msgstr "" -#: js/IntervalsBlocks.js:676 -msgid "The output of the example is: do, mi, sol, sol, ti, mi" +#: js/blocks/ActionBlocks.js:1495 +msgid "define temperament" msgstr "" -#: js/IntervalsBlocks.js:735 -msgid "The Chord block calculates common chords." +#: js/blocks/BooleanBlocks.js:44 +msgid "The Not block is the logical not operator." msgstr "" -#: js/IntervalsBlocks.js:737 -msgid "In the figure, we generate a C-major chord." -msgstr "" +#: js/blocks/BooleanBlocks.js:62 +msgid "not" +msgstr "no" -#: js/IntervalsBlocks.js:742 -msgid "chord" +#: js/blocks/BooleanBlocks.js:134 +msgid "The And block is the logical and operator." msgstr "" -#: js/IntervalsBlocks.js:794 -msgid "The Ratio Interval block calculates an interval based on a ratio." -msgstr "" +#: js/blocks/BooleanBlocks.js:152 +msgid "and" +msgstr "i" -#: js/IntervalsBlocks.js:799 -msgid "ratio interval" +#: js/blocks/BooleanBlocks.js:218 +msgid "The Or block is the logical or operator." msgstr "" -#: js/IntervalsBlocks.js:868 -msgid "In the figure, we add la to sol." -msgstr "" +#: js/blocks/BooleanBlocks.js:236 +msgid "or" +msgstr "òf" -#: js/IntervalsBlocks.js:924 -#.TRANS: define a custom mode -msgid "define mode" +#: js/blocks/BooleanBlocks.js:302 +msgid "The XOR block is the logical XOR operator." msgstr "" -#: js/IntervalsBlocks.js:977 -msgid "movable Do" +#: js/blocks/BooleanBlocks.js:320 +msgid "xor" msgstr "" -#: js/IntervalsBlocks.js:1028 -#.TRANS: mode length is the number of notes in the mode, e.g., 7 for major and minor scales; 12 for chromatic scales -msgid "mode length" +#: js/blocks/BooleanBlocks.js:808 +msgid "The Equal block returns True if the two numbers are equal." msgstr "" -#: js/IntervalsBlocks.js:1037 -msgid "The Mode length block is the number of notes in the current scale." +#: js/blocks/BooleanBlocks.js:909 +msgid "The Not-equal-to block returns True if the two numbers are not equal to each other." msgstr "" -#: js/IntervalsBlocks.js:1039 -msgid "Most Western scales have 7 notes." +#: js/blocks/BooleanBlocks.js:1008 +msgid "The Boolean block is used to specify true or false." msgstr "" -#: js/IntervalsBlocks.js:1088 -#.TRANS: the mode in music is 'major', 'minor', etc. -msgid "current mode" +#: js/blocks/BoxesBlocks.js:53 +#: js/blocks/BoxesBlocks.js:59 +msgid "The Add-to block is used to add to the value stored in a box." msgstr "" -#: js/IntervalsBlocks.js:1141 -#.TRANS: the key is a group of pitches with which a music composition is created -msgid "current key" +#: js/blocks/BoxesBlocks.js:61 +msgid "It can also be used with other blocks such as Color and Pen size." msgstr "" -#: js/IntervalsBlocks.js:1193 -#: js/IntervalsBlocks.js:1238 -#.TRANS: set the key and mode, e.g. C Major -msgid "set key" +#: js/blocks/BoxesBlocks.js:73 +msgid "add" msgstr "" -#: js/IntervalsBlocks.js:1247 -#: js/IntervalsBlocks.js:1253 -msgid "The Set key block is used to set the key and mode," +#: js/blocks/BoxesBlocks.js:75 +#: js/widgets/temperament.js:857 +msgid "to" msgstr "" -#: js/IntervalsBlocks.js:1253 -msgid "eg C Major" +#: js/blocks/BoxesBlocks.js:75 +#: js/blocks/BoxesBlocks.js:595 +#: js/blocks/HeapBlocks.js:544 +msgid "value1" msgstr "" -#: js/IntervalsBlocks.js:1266 -#: js/DictBlocks.js:215 -#: js/DictBlocks.js:216 -#: js/DictBlocks.js:289 -#: js/DictBlocks.js:290 -#: js/DictBlocks.js:357 -#: js/DictBlocks.js:430 -#: js/DictBlocks.js:431 -#.TRANS: key, e.g., C in C Major -msgid "key" +#: js/blocks/BoxesBlocks.js:118 +msgid "Block does not support incrementing." msgstr "" -#: js/ActionBlocks.js:58 -msgid "The Return block will return a value from an action." +#: js/blocks/BoxesBlocks.js:152 +msgid "The Add-1-to block adds one to the value stored in a box." msgstr "" -#: js/ActionBlocks.js:75 -msgid "return" +#: js/blocks/BoxesBlocks.js:163 +msgid "add 1 to" msgstr "" -#: js/ActionBlocks.js:128 -msgid "The Return to URL block will return a value to a webpage." +#: js/blocks/BoxesBlocks.js:211 +msgid "The Subtract-1-from block subtracts one from the value stored in a box." msgstr "" -#: js/ActionBlocks.js:145 -msgid "return to URL" +#: js/blocks/BoxesBlocks.js:222 +msgid "subtract 1 from" msgstr "" -#: js/ActionBlocks.js:233 -#: js/ActionBlocks.js:290 -#: js/ActionBlocks.js:501 -#: js/ActionBlocks.js:688 -msgid "The Calculate block returns a value calculated by an action." +#: js/blocks/BoxesBlocks.js:270 +#: js/blocks/BoxesBlocks.js:387 +msgid "The Box block returns the value stored in a box." msgstr "" -#: js/ActionBlocks.js:251 -#: js/ActionBlocks.js:517 -#: js/ActionBlocks.js:707 -msgid "calculate" +#: js/blocks/BoxesBlocks.js:500 +#: js/blocks/BoxesBlocks.js:576 +msgid "The Store in block will store a value in a box." msgstr "" -#: js/ActionBlocks.js:376 -#: js/ActionBlocks.js:593 -#: js/ActionBlocks.js:942 -#: js/ActionBlocks.js:1389 -#.TRANS: do is the do something or take an action. -msgid "The Do block is used to initiate an action." +#: js/blocks/BoxesBlocks.js:595 +#: js/blocks/EnsembleBlocks.js:391 +#: js/blocks/EnsembleBlocks.js:402 +msgid "name1" msgstr "" -#: js/ActionBlocks.js:390 -#: js/ActionBlocks.js:610 -#: js/ActionBlocks.js:959 -#: js/ActionBlocks.js:1048 -#: js/MeterBlocks.js:769 -msgid "do1" +#: js/blocks/BoxesBlocks.js:652 +msgid "The Box2 block returns the value stored in Box2." msgstr "" -#: js/ActionBlocks.js:390 -#: js/ActionBlocks.js:610 -#: js/ActionBlocks.js:959 -#: js/ActionBlocks.js:1048 -#: js/FlowBlocks.js:742 -#: js/FlowBlocks.js:822 -#: js/MeterBlocks.js:769 -msgid "do" +#: js/blocks/BoxesBlocks.js:703 +msgid "The Store in Box2 block is used to store a value in Box2." msgstr "" -#: js/ActionBlocks.js:791 -#: js/ActionBlocks.js:865 -msgid "The Arg block contains the value of an argument passed to an action." +#: js/blocks/BoxesBlocks.js:715 +msgid "store in box2" msgstr "" -#: js/ActionBlocks.js:806 -#: js/ActionBlocks.js:878 -msgid "arg" +#: js/blocks/BoxesBlocks.js:761 +msgid "The Box1 block returns the value stored in Box1." msgstr "" -#: js/ActionBlocks.js:836 -#: js/ActionBlocks.js:900 -#: js/ActionBlocks.js:908 -msgid "Invalid argument" +#: js/blocks/BoxesBlocks.js:812 +msgid "The Store in Box1 block is used to store a value in Box1." msgstr "" -#: js/ActionBlocks.js:944 -msgid "In the example, it is used with the One of block to choose a random phase." +#: js/blocks/BoxesBlocks.js:826 +msgid "store in box1" msgstr "" -#: js/ActionBlocks.js:1019 -#: js/ActionBlocks.js:1026 -msgid "The Listen block is used to listen for an event such as a mouse click." +#: js/blocks/DictBlocks.js:77 +msgid "show dictionary" msgstr "" -#: js/ActionBlocks.js:1028 -msgid "When the event happens, an action is taken." +#: js/blocks/DictBlocks.js:80 +#: js/blocks/DictBlocks.js:145 +#: js/blocks/DictBlocks.js:216 +#: js/blocks/DictBlocks.js:290 +#: js/blocks/ProgramBlocks.js:396 +#: js/blocks/ProgramBlocks.js:501 +#: js/blocks/ProgramBlocks.js:664 +msgid "My Dictionary" msgstr "" -#: js/ActionBlocks.js:1045 -msgid "on" +#: js/blocks/DictBlocks.js:129 +msgid "The Dictionary block returns a dictionary." msgstr "" -#: js/ActionBlocks.js:1048 -#: js/ActionBlocks.js:1049 -#: js/ActionBlocks.js:1153 -msgid "event" +#: js/blocks/DictBlocks.js:197 +#: js/blocks/DictBlocks.js:339 +msgid "The Get-dict block returns a value in the dictionary for a specified key." msgstr "" -#: js/ActionBlocks.js:1133 -msgid "The Broadcast block is used to trigger an event." +#: js/blocks/DictBlocks.js:212 +#: js/blocks/DictBlocks.js:354 +#.TRANS: retrieve a value from the dictionary with a given key +msgid "get value" msgstr "" -#: js/ActionBlocks.js:1151 -msgid "broadcast" +#: js/blocks/DictBlocks.js:215 +#: js/blocks/DictBlocks.js:216 +#: js/blocks/DictBlocks.js:289 +#: js/blocks/DictBlocks.js:290 +#: js/blocks/DictBlocks.js:357 +#: js/blocks/DictBlocks.js:430 +#: js/blocks/DictBlocks.js:431 +msgid "key2" msgstr "" -#: js/ActionBlocks.js:1208 -msgid "Each Start block is a separate voice." +#: js/blocks/DictBlocks.js:215 +#: js/blocks/DictBlocks.js:216 +#: js/blocks/DictBlocks.js:289 +#: js/blocks/DictBlocks.js:290 +#: js/blocks/DictBlocks.js:357 +#: js/blocks/DictBlocks.js:430 +#: js/blocks/DictBlocks.js:431 +#: js/blocks/IntervalsBlocks.js:1462 +#.TRANS: key, e.g., C in C Major +msgid "key" msgstr "" -#: js/ActionBlocks.js:1304 -msgid "It is often used for storing a phrase of music that is repeated." +#: js/blocks/DictBlocks.js:271 +#: js/blocks/DictBlocks.js:411 +msgid "The Set-dict block sets a value in the dictionary for a specified key." msgstr "" -#: js/ActionBlocks.js:1495 -msgid "define temperament" +#: js/blocks/DictBlocks.js:286 +#: js/blocks/DictBlocks.js:427 +#.TRANS: set a value in the dictionary for a given key +msgid "set value" msgstr "" -#: js/EnsembleBlocks.js:66 +#: js/blocks/EnsembleBlocks.js:66 msgid "mouse index heap" msgstr "" -#: js/EnsembleBlocks.js:68 +#: js/blocks/EnsembleBlocks.js:68 msgid "The Mouse index heap block returns a value in the heap at a specified location for a specified mouse." msgstr "" -#: js/EnsembleBlocks.js:77 -#: js/EnsembleBlocks.js:1080 +#: js/blocks/EnsembleBlocks.js:77 +#: js/blocks/EnsembleBlocks.js:1080 msgid "mouse name" msgstr "" -#: js/EnsembleBlocks.js:77 -#: js/EnsembleBlocks.js:92 -#: js/HeapBlocks.js:544 +#: js/blocks/EnsembleBlocks.js:77 +#: js/blocks/EnsembleBlocks.js:92 +#: js/blocks/HeapBlocks.js:544 #.TRANS: value1 is a numeric value (JAPANESE ONLY) msgid "index" msgstr "" -#: js/EnsembleBlocks.js:80 +#: js/blocks/EnsembleBlocks.js:80 msgid "turtle index heap" msgstr "" -#: js/EnsembleBlocks.js:82 +#: js/blocks/EnsembleBlocks.js:82 msgid "The Turtle index heap block returns a value in the heap at a specified location for a specified turtle." msgstr "" -#: js/EnsembleBlocks.js:90 -#: js/EnsembleBlocks.js:167 -#: js/EnsembleBlocks.js:230 -#: js/EnsembleBlocks.js:316 -#: js/EnsembleBlocks.js:362 -#: js/EnsembleBlocks.js:400 -#: js/EnsembleBlocks.js:454 -#: js/EnsembleBlocks.js:504 -#: js/EnsembleBlocks.js:550 -#: js/EnsembleBlocks.js:597 -#: js/EnsembleBlocks.js:651 -#: js/EnsembleBlocks.js:763 -#: js/EnsembleBlocks.js:854 -#: js/EnsembleBlocks.js:915 -#: js/EnsembleBlocks.js:955 -#: js/EnsembleBlocks.js:1219 -#: js/EnsembleBlocks.js:1293 +#: js/blocks/EnsembleBlocks.js:90 +#: js/blocks/EnsembleBlocks.js:167 +#: js/blocks/EnsembleBlocks.js:230 +#: js/blocks/EnsembleBlocks.js:316 +#: js/blocks/EnsembleBlocks.js:362 +#: js/blocks/EnsembleBlocks.js:400 +#: js/blocks/EnsembleBlocks.js:454 +#: js/blocks/EnsembleBlocks.js:504 +#: js/blocks/EnsembleBlocks.js:550 +#: js/blocks/EnsembleBlocks.js:597 +#: js/blocks/EnsembleBlocks.js:651 +#: js/blocks/EnsembleBlocks.js:763 +#: js/blocks/EnsembleBlocks.js:854 +#: js/blocks/EnsembleBlocks.js:915 +#: js/blocks/EnsembleBlocks.js:955 +#: js/blocks/EnsembleBlocks.js:1219 +#: js/blocks/EnsembleBlocks.js:1293 #.TRANS: Yertle is the name of a turtle. msgid "Yertle" msgstr "" -#: js/EnsembleBlocks.js:92 -#: js/EnsembleBlocks.js:1089 +#: js/blocks/EnsembleBlocks.js:92 +#: js/blocks/EnsembleBlocks.js:1089 msgid "turtle name" msgstr "" -#: js/EnsembleBlocks.js:122 -#: js/EnsembleBlocks.js:1197 -#: js/HeapBlocks.js:474 -#: js/HeapBlocks.js:572 +#: js/blocks/EnsembleBlocks.js:122 +#: js/blocks/EnsembleBlocks.js:1197 +#: js/blocks/HeapBlocks.js:474 +#: js/blocks/HeapBlocks.js:572 msgid "Index must be > 0." msgstr "" -#: js/EnsembleBlocks.js:127 -#: js/HeapBlocks.js:479 -#: js/HeapBlocks.js:577 +#: js/blocks/EnsembleBlocks.js:127 +#: js/blocks/HeapBlocks.js:479 +#: js/blocks/HeapBlocks.js:577 msgid "Maximum heap size is 1000." msgstr "" -#: js/EnsembleBlocks.js:145 +#: js/blocks/EnsembleBlocks.js:145 msgid "stop mouse" msgstr "" -#: js/EnsembleBlocks.js:147 +#: js/blocks/EnsembleBlocks.js:147 msgid "The Stop mouse block stops the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:158 +#: js/blocks/EnsembleBlocks.js:158 msgid "stop turtle" msgstr "" -#: js/EnsembleBlocks.js:160 +#: js/blocks/EnsembleBlocks.js:160 msgid "The Stop turtle block stops the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:184 -#: js/EnsembleBlocks.js:247 -#: js/EnsembleBlocks.js:413 -#: js/EnsembleBlocks.js:468 -#: js/EnsembleBlocks.js:706 -#: js/EnsembleBlocks.js:808 -#: js/EnsembleBlocks.js:870 -#: js/EnsembleBlocks.js:1190 -#: js/EnsembleBlocks.js:1253 +#: js/blocks/EnsembleBlocks.js:184 +#: js/blocks/EnsembleBlocks.js:247 +#: js/blocks/EnsembleBlocks.js:413 +#: js/blocks/EnsembleBlocks.js:468 +#: js/blocks/EnsembleBlocks.js:706 +#: js/blocks/EnsembleBlocks.js:808 +#: js/blocks/EnsembleBlocks.js:870 +#: js/blocks/EnsembleBlocks.js:1190 +#: js/blocks/EnsembleBlocks.js:1253 msgid "Cannot find mouse" msgstr "" -#: js/EnsembleBlocks.js:186 -#: js/EnsembleBlocks.js:249 -#: js/EnsembleBlocks.js:415 -#: js/EnsembleBlocks.js:470 -#: js/EnsembleBlocks.js:708 -#: js/EnsembleBlocks.js:810 -#: js/EnsembleBlocks.js:872 -#: js/EnsembleBlocks.js:1192 -#: js/EnsembleBlocks.js:1255 +#: js/blocks/EnsembleBlocks.js:186 +#: js/blocks/EnsembleBlocks.js:249 +#: js/blocks/EnsembleBlocks.js:415 +#: js/blocks/EnsembleBlocks.js:470 +#: js/blocks/EnsembleBlocks.js:708 +#: js/blocks/EnsembleBlocks.js:810 +#: js/blocks/EnsembleBlocks.js:872 +#: js/blocks/EnsembleBlocks.js:1192 +#: js/blocks/EnsembleBlocks.js:1255 msgid "Cannot find turtle" msgstr "" -#: js/EnsembleBlocks.js:206 +#: js/blocks/EnsembleBlocks.js:206 msgid "start mouse" msgstr "" -#: js/EnsembleBlocks.js:209 +#: js/blocks/EnsembleBlocks.js:209 msgid "The Start mouse block starts the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:220 +#: js/blocks/EnsembleBlocks.js:220 msgid "start turtle" msgstr "" -#: js/EnsembleBlocks.js:223 +#: js/blocks/EnsembleBlocks.js:223 msgid "The Start turtle block starts the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:256 +#: js/blocks/EnsembleBlocks.js:256 msgid "Mouse is already running." msgstr "" -#: js/EnsembleBlocks.js:258 +#: js/blocks/EnsembleBlocks.js:258 msgid "Turtle is already running." msgstr "" -#: js/EnsembleBlocks.js:282 +#: js/blocks/EnsembleBlocks.js:282 msgid "Cannot find start block" msgstr "" -#: js/EnsembleBlocks.js:292 +#: js/blocks/EnsembleBlocks.js:292 #.TRANS: pen color for this mouse msgid "mouse color" msgstr "" -#: js/EnsembleBlocks.js:294 +#: js/blocks/EnsembleBlocks.js:294 msgid "The Mouse color block returns the pen color of the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:306 +#: js/blocks/EnsembleBlocks.js:306 #.TRANS: pen color for this turtle msgid "turtle color" msgstr "" -#: js/EnsembleBlocks.js:308 +#: js/blocks/EnsembleBlocks.js:308 msgid "The Turtle color block returns the pen color of the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:338 +#: js/blocks/EnsembleBlocks.js:338 #.TRANS: heading (compass direction) for this mouse msgid "mouse heading" msgstr "" -#: js/EnsembleBlocks.js:340 +#: js/blocks/EnsembleBlocks.js:340 msgid "The Mouse heading block returns the heading of the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:352 +#: js/blocks/EnsembleBlocks.js:352 #.TRANS: heading (compass direction) for this turtle msgid "turtle heading" msgstr "" -#: js/EnsembleBlocks.js:354 +#: js/blocks/EnsembleBlocks.js:354 msgid "The Turtle heading block returns the heading of the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:384 -#: js/EnsembleBlocks.js:439 +#: js/blocks/EnsembleBlocks.js:384 +#: js/blocks/EnsembleBlocks.js:439 #.TRANS: set xy position for this mouse msgid "set mouse" msgstr "" -#: js/EnsembleBlocks.js:391 -#: js/EnsembleBlocks.js:402 -#: js/BoxesBlocks.js:595 -msgid "name1" -msgstr "" - -#: js/EnsembleBlocks.js:391 -#: js/EnsembleBlocks.js:402 -#: js/ProgramBlocks.js:881 -#: js/GraphicsBlocks.js:235 -#: js/GraphicsBlocks.js:313 -#: js/GraphicsBlocks.js:436 -#: js/GraphicsBlocks.js:487 -#: js/GraphicsBlocks.js:534 -#: js/GraphicsBlocks.js:750 +#: js/blocks/EnsembleBlocks.js:391 +#: js/blocks/EnsembleBlocks.js:402 +#: js/blocks/GraphicsBlocks.js:235 +#: js/blocks/GraphicsBlocks.js:313 +#: js/blocks/GraphicsBlocks.js:436 +#: js/blocks/GraphicsBlocks.js:487 +#: js/blocks/GraphicsBlocks.js:534 +#: js/blocks/GraphicsBlocks.js:750 +#: js/blocks/ProgramBlocks.js:881 msgid "x" msgstr "x" -#: js/EnsembleBlocks.js:391 -#: js/EnsembleBlocks.js:402 -#: js/ProgramBlocks.js:881 -#: js/GraphicsBlocks.js:149 -#: js/GraphicsBlocks.js:313 -#: js/GraphicsBlocks.js:436 -#: js/GraphicsBlocks.js:487 -#: js/GraphicsBlocks.js:534 -#: js/GraphicsBlocks.js:750 +#: js/blocks/EnsembleBlocks.js:391 +#: js/blocks/EnsembleBlocks.js:402 +#: js/blocks/GraphicsBlocks.js:149 +#: js/blocks/GraphicsBlocks.js:313 +#: js/blocks/GraphicsBlocks.js:436 +#: js/blocks/GraphicsBlocks.js:487 +#: js/blocks/GraphicsBlocks.js:534 +#: js/blocks/GraphicsBlocks.js:750 +#: js/blocks/ProgramBlocks.js:881 msgid "y" msgstr "y" -#: js/EnsembleBlocks.js:395 -#: js/EnsembleBlocks.js:452 +#: js/blocks/EnsembleBlocks.js:395 +#: js/blocks/EnsembleBlocks.js:452 #.TRANS: set xy position for this turtle msgid "set turtle" msgstr "" -#: js/EnsembleBlocks.js:433 +#: js/blocks/EnsembleBlocks.js:433 msgid "The Set mouse block sends a stack of blocks to be run by the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:446 +#: js/blocks/EnsembleBlocks.js:446 msgid "The Set turtle block sends a stack of blocks to be run by the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:480 +#: js/blocks/EnsembleBlocks.js:480 #.TRANS: y position for this mouse msgid "mouse y" msgstr "raton y" -#: js/EnsembleBlocks.js:482 +#: js/blocks/EnsembleBlocks.js:482 msgid "The Y mouse block returns the Y position of the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:494 +#: js/blocks/EnsembleBlocks.js:494 #.TRANS: y position for this turtle msgid "turtle y" msgstr "turtuga y" -#: js/EnsembleBlocks.js:496 +#: js/blocks/EnsembleBlocks.js:496 msgid "The Y turtle block returns the Y position of the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:526 +#: js/blocks/EnsembleBlocks.js:526 #.TRANS: x position for this mouse msgid "mouse x" msgstr "raton x" -#: js/EnsembleBlocks.js:528 +#: js/blocks/EnsembleBlocks.js:528 msgid "The X mouse block returns the X position of the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:540 +#: js/blocks/EnsembleBlocks.js:540 #.TRANS: x position for this turtle msgid "turtle x" msgstr "turtuga x" -#: js/EnsembleBlocks.js:542 +#: js/blocks/EnsembleBlocks.js:542 msgid "The X turtle block returns the X position of the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:573 +#: js/blocks/EnsembleBlocks.js:573 #.TRANS: notes played by this mouse msgid "mouse notes played" msgstr "" -#: js/EnsembleBlocks.js:575 +#: js/blocks/EnsembleBlocks.js:575 msgid "The Mouse elapse notes block returns the number of notes played by the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:587 +#: js/blocks/EnsembleBlocks.js:587 #.TRANS: notes played by this turtle msgid "turtle notes played" msgstr "" -#: js/EnsembleBlocks.js:589 +#: js/blocks/EnsembleBlocks.js:589 msgid "The Turtle elapse notes block returns the number of notes played by the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:627 +#: js/blocks/EnsembleBlocks.js:627 #.TRANS: convert current note for this turtle to piano key (1-88) msgid "mouse pitch number" msgstr "" -#: js/EnsembleBlocks.js:629 +#: js/blocks/EnsembleBlocks.js:629 msgid "The Mouse pitch block returns the current pitch number being played by the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:641 +#: js/blocks/EnsembleBlocks.js:641 #.TRANS: convert current note for this turtle to piano key (1-88) msgid "turtle pitch number" msgstr "" -#: js/EnsembleBlocks.js:643 -msgid "The Turrle pitch block returns the current pitch number being played by the specified turtle." +#: js/blocks/EnsembleBlocks.js:643 +msgid "The Turtle pitch block returns the current pitch number being played by the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:747 -#: js/EnsembleBlocks.js:819 +#: js/blocks/EnsembleBlocks.js:747 +#: js/blocks/EnsembleBlocks.js:819 #.TRANS: note value is the duration of the note played by this mouse msgid "mouse note value" msgstr "" -#: js/EnsembleBlocks.js:757 +#: js/blocks/EnsembleBlocks.js:757 #.TRANS: note value is the duration of the note played by this turtle msgid "turtle note value" msgstr "" -#: js/EnsembleBlocks.js:830 +#: js/blocks/EnsembleBlocks.js:830 #.TRANS: sync is short for synchronization msgid "mouse sync" msgstr "" -#: js/EnsembleBlocks.js:832 +#: js/blocks/EnsembleBlocks.js:832 msgid "The Mouse sync block aligns the beat count between mice." msgstr "" -#: js/EnsembleBlocks.js:844 +#: js/blocks/EnsembleBlocks.js:844 #.TRANS: sync is short for synchronization msgid "turtle sync" msgstr "" -#: js/EnsembleBlocks.js:846 +#: js/blocks/EnsembleBlocks.js:846 msgid "The Turtle sync block aligns the beat count between turtles." msgstr "" -#: js/EnsembleBlocks.js:887 +#: js/blocks/EnsembleBlocks.js:887 msgid "The Found mouse block will return true if the specified mouse can be found." msgstr "" -#: js/EnsembleBlocks.js:893 +#: js/blocks/EnsembleBlocks.js:893 msgid "found mouse" msgstr "" -#: js/EnsembleBlocks.js:903 +#: js/blocks/EnsembleBlocks.js:903 msgid "The Found turtle block will return true if the specified turtle can be found." msgstr "" -#: js/EnsembleBlocks.js:909 +#: js/blocks/EnsembleBlocks.js:909 msgid "found turtle" msgstr "" -#: js/EnsembleBlocks.js:932 +#: js/blocks/EnsembleBlocks.js:932 msgid "new mouse" msgstr "" -#: js/EnsembleBlocks.js:934 +#: js/blocks/EnsembleBlocks.js:934 msgid "The New mouse block will create a new mouse." msgstr "" -#: js/EnsembleBlocks.js:945 +#: js/blocks/EnsembleBlocks.js:945 msgid "new turtle" msgstr "" -#: js/EnsembleBlocks.js:947 +#: js/blocks/EnsembleBlocks.js:947 msgid "The New turtle block will create a new turtle." msgstr "" -#: js/EnsembleBlocks.js:1011 +#: js/blocks/EnsembleBlocks.js:1011 msgid "set mouse color" msgstr "" -#: js/EnsembleBlocks.js:1014 +#: js/blocks/EnsembleBlocks.js:1014 msgid "The Set-mouse-color block is used to set the color of a mouse." msgstr "" -#: js/EnsembleBlocks.js:1020 +#: js/blocks/EnsembleBlocks.js:1020 msgid "set turtle color" msgstr "" -#: js/EnsembleBlocks.js:1023 +#: js/blocks/EnsembleBlocks.js:1023 msgid "The Set-turtle-color block is used to set the color of a turtle." msgstr "" -#: js/EnsembleBlocks.js:1083 +#: js/blocks/EnsembleBlocks.js:1083 msgid "The Mouse-name block returns the name of a mouse." msgstr "" -#: js/EnsembleBlocks.js:1092 +#: js/blocks/EnsembleBlocks.js:1092 msgid "The Turtle-name block returns the name of a turtle." msgstr "" -#: js/EnsembleBlocks.js:1115 +#: js/blocks/EnsembleBlocks.js:1115 msgid "mouse count" msgstr "" -#: js/EnsembleBlocks.js:1118 +#: js/blocks/EnsembleBlocks.js:1118 msgid "The Mouse-count block returns the number of mice." msgstr "" -#: js/EnsembleBlocks.js:1124 +#: js/blocks/EnsembleBlocks.js:1124 msgid "turtle count" msgstr "" -#: js/EnsembleBlocks.js:1127 +#: js/blocks/EnsembleBlocks.js:1127 msgid "The Turtle-count block returns the number of turtles." msgstr "" -#: js/EnsembleBlocks.js:1149 +#: js/blocks/EnsembleBlocks.js:1149 msgid "nth mouse name" msgstr "" -#: js/EnsembleBlocks.js:1152 +#: js/blocks/EnsembleBlocks.js:1152 msgid "The Nth-Mouse name block returns the name of the nth mouse." msgstr "" -#: js/EnsembleBlocks.js:1158 +#: js/blocks/EnsembleBlocks.js:1158 msgid "nth turtle name" msgstr "" -#: js/EnsembleBlocks.js:1161 -msgid "The Nth-Turtle name block returns the name of the nth turtle." -msgstr "" - -#: js/EnsembleBlocks.js:1205 -#: js/EnsembleBlocks.js:1265 -msgid "set name" -msgstr "" - -#: js/EnsembleBlocks.js:1214 -#: js/EnsembleBlocks.js:1221 -msgid "source" -msgstr "" - -#: js/EnsembleBlocks.js:1214 -#: js/EnsembleBlocks.js:1221 -msgid "target" -msgstr "" - -#: js/EnsembleBlocks.js:1271 -msgid "The Set-name block is used to name a mouse." -msgstr "" - -#: js/EnsembleBlocks.js:1284 -msgid "The Set-name block is used to name a turtle." -msgstr "" - -#: js/BooleanBlocks.js:44 -msgid "The Not block is the logical not operator." -msgstr "" - -#: js/BooleanBlocks.js:62 -msgid "not" -msgstr "no" - -#: js/BooleanBlocks.js:134 -msgid "The And block is the logical and operator." -msgstr "" - -#: js/BooleanBlocks.js:152 -msgid "and" -msgstr "i" - -#: js/BooleanBlocks.js:218 -msgid "The Or block is the logical or operator." -msgstr "" - -#: js/BooleanBlocks.js:236 -msgid "or" -msgstr "òf" - -#: js/BooleanBlocks.js:302 -msgid "The XOR block is the logical XOR operator." -msgstr "" - -#: js/BooleanBlocks.js:320 -msgid "xor" -msgstr "" - -#: js/BooleanBlocks.js:808 -msgid "The Equal block returns True if the two numbers are equal." -msgstr "" - -#: js/BooleanBlocks.js:909 -msgid "The Not-equal-to block returns True if the two numbers are not equal to each other." -msgstr "" - -#: js/BooleanBlocks.js:1008 -msgid "The Boolean block is used to specify true or false." -msgstr "" - -#: js/MediaBlocks.js:35 -#.TRANS: right side of the screen -msgid "right (screen)" -msgstr "" - -#: js/MediaBlocks.js:45 -#: js/MediaBlocks.js:56 -msgid "The Right block returns the position of the right of the canvas." +#: js/blocks/EnsembleBlocks.js:1161 +msgid "The Nth-Turtle name block returns the name of the nth turtle." msgstr "" -#: js/MediaBlocks.js:97 -#.TRANS: left side of the screen -msgid "left (screen)" +#: js/blocks/EnsembleBlocks.js:1205 +#: js/blocks/EnsembleBlocks.js:1265 +msgid "set name" msgstr "" -#: js/MediaBlocks.js:107 -#: js/MediaBlocks.js:118 -msgid "The Left block returns the position of the left of the canvas." +#: js/blocks/EnsembleBlocks.js:1214 +#: js/blocks/EnsembleBlocks.js:1221 +msgid "source" msgstr "" -#: js/MediaBlocks.js:158 -msgid "top (screen)" +#: js/blocks/EnsembleBlocks.js:1214 +#: js/blocks/EnsembleBlocks.js:1221 +msgid "target" msgstr "" -#: js/MediaBlocks.js:168 -#: js/MediaBlocks.js:179 -msgid "The Top block returns the position of the top of the canvas." +#: js/blocks/EnsembleBlocks.js:1271 +msgid "The Set-name block is used to name a mouse." msgstr "" -#: js/MediaBlocks.js:219 -msgid "bottom (screen)" +#: js/blocks/EnsembleBlocks.js:1284 +msgid "The Set-name block is used to name a turtle." msgstr "" -#: js/MediaBlocks.js:229 -#: js/MediaBlocks.js:240 -msgid "The Bottom block returns the position of the bottom of the canvas." +#: js/blocks/ExtrasBlocks.js:33 +msgid "fraction" msgstr "" -#: js/MediaBlocks.js:282 -msgid "width" +#: js/blocks/ExtrasBlocks.js:36 +msgid "Convert a float to a fraction" msgstr "" -#: js/MediaBlocks.js:291 -msgid "The Width block returns the width of the canvas." +#: js/blocks/ExtrasBlocks.js:93 +msgid "save as ABC" msgstr "" -#: js/MediaBlocks.js:325 -msgid "height" +#: js/blocks/ExtrasBlocks.js:96 +#: js/blocks/ExtrasBlocks.js:132 +#: js/blocks/ExtrasBlocks.js:168 +msgid "title" msgstr "" -#: js/MediaBlocks.js:334 -msgid "The Height block returns the height of the canvas." +#: js/blocks/ExtrasBlocks.js:129 +msgid "save as Lilypond" msgstr "" -#: js/MediaBlocks.js:369 -#.TRANS: stops playback of an audio recording -msgid "stop play" +#: js/blocks/ExtrasBlocks.js:165 +msgid "save as SVG" msgstr "" -#: js/MediaBlocks.js:404 -#.TRANS: Erases the images and text -msgid "erase media" +#: js/blocks/ExtrasBlocks.js:216 +msgid "no background" msgstr "" -#: js/MediaBlocks.js:409 -msgid "The Erase Media block erases text and images." +#: js/blocks/ExtrasBlocks.js:219 +msgid "The No background block eliminates the background from the saved SVG output." msgstr "" -#: js/MediaBlocks.js:439 -#.TRANS: play an audio recording -msgid "play back" +#: js/blocks/ExtrasBlocks.js:247 +msgid "show blocks" +msgstr "Mustra blòkinan" + +#: js/blocks/ExtrasBlocks.js:249 +msgid "The Show blocks block shows the blocks." msgstr "" -#: js/MediaBlocks.js:487 -msgid "speak" -msgstr "papia" +#: js/blocks/ExtrasBlocks.js:274 +msgid "hide blocks" +msgstr "skonde blòkinan" -#: js/MediaBlocks.js:495 -msgid "The Speak block outputs to the text-to-speech synthesizer" +#: js/blocks/ExtrasBlocks.js:276 +msgid "The Hide blocks block hides the blocks." msgstr "" -#: js/MediaBlocks.js:546 -msgid "camera" +#: js/blocks/ExtrasBlocks.js:305 +#: js/blocks/ExtrasBlocks.js:338 +msgid "The Space block is used to add space between blocks." msgstr "" -#: js/MediaBlocks.js:551 -msgid "The Camera block connects a webcam to the Show block." -msgstr "" +#: js/blocks/ExtrasBlocks.js:376 +msgid "wait" +msgstr "warda" -#: js/MediaBlocks.js:574 -msgid "video" +#: js/blocks/ExtrasBlocks.js:379 +msgid "The Wait block pauses the program for a specified number of seconds." msgstr "" -#: js/MediaBlocks.js:579 -msgid "The Video block selects video for use with the Show block." -msgstr "" +#: js/blocks/ExtrasBlocks.js:433 +#: plugins/facebook.rtp:30 +msgid "comment" +msgstr "komentario" -#: js/MediaBlocks.js:607 -msgid "The Open file block opens a file for use with the Show block." -msgstr "" +#: js/blocks/ExtrasBlocks.js:469 +msgid "print" +msgstr "prent" -#: js/MediaBlocks.js:645 -msgid "stop media" +#: js/blocks/ExtrasBlocks.js:476 +msgid "The Print block displays text at the top of the screen." msgstr "" -#: js/MediaBlocks.js:650 -msgid "The Stop media block stops audio or video playback." +#: js/blocks/ExtrasBlocks.js:582 +msgid "display grid" msgstr "" -#: js/MediaBlocks.js:679 -#: js/PitchBlocks.js:1539 -#: js/phrasemaker.js:822 -#: js/musickeyboard.js:1654 -#.TRANS: a measure of frequency: one cycle per second -msgid "hertz" +#: js/blocks/ExtrasBlocks.js:587 +msgid "The Display Grid Block changes the grid type" msgstr "" -#: js/MediaBlocks.js:692 -msgid "duration (ms)" +#: js/blocks/ExtrasBlocks.js:689 +#: js/blocks/ExtrasBlocks.js:708 +#: js/blocks/ExtrasBlocks.js:731 +#: js/blocks/ExtrasBlocks.js:754 +#: js/blocks/ExtrasBlocks.js:772 +#: js/blocks/ExtrasBlocks.js:791 +#: js/blocks/ExtrasBlocks.js:810 +#: js/blocks/ExtrasBlocks.js:829 +msgid "unknown" msgstr "" -#: js/MediaBlocks.js:728 -#.TRANS: translate a note into hertz, e.g., A4 -> 440HZ -msgid "note to frequency" +#: js/blocks/FlowBlocks.js:41 +msgid "The Backward block runs code in reverse order (Musical retrograde)." msgstr "" -#: js/MediaBlocks.js:736 -msgid "The To frequency block converts a pitch name and octave to Hertz." +#: js/blocks/FlowBlocks.js:48 +msgid "backward" msgstr "" -#: js/MediaBlocks.js:746 -#: js/PitchBlocks.js:656 -#: js/PitchBlocks.js:932 -#: js/PitchBlocks.js:1827 -#.TRANS: name2 is name as in name of pitch (JAPANESE ONLY) -msgid "name2" +#: js/blocks/FlowBlocks.js:124 +msgid "The Duplicate block will run each block multiple times." msgstr "" -#: js/MediaBlocks.js:812 -msgid "The Avatar block is used to change the appearance of the mouse." +#: js/blocks/FlowBlocks.js:136 +msgid "duplicate" msgstr "" -#: js/MediaBlocks.js:819 -msgid "The Avatar block is used to change the appearance of the turtle." +#: js/blocks/FlowBlocks.js:334 +msgid "The Default block is used inside of a Switch to define the default action." msgstr "" -#: js/MediaBlocks.js:831 -#: js/MediaBlocks.js:891 -#.TRANS: a media object -msgid "size" +#: js/blocks/FlowBlocks.js:342 +msgid "default" msgstr "" -#: js/MediaBlocks.js:831 -msgid "image" -msgstr "imágen" - -#: js/MediaBlocks.js:880 -msgid "The Show block is used to display text or images on the canvas." +#: js/blocks/FlowBlocks.js:361 +#: js/blocks/FlowBlocks.js:418 +msgid "The Case Block must be used inside of a Switch Block." msgstr "" -#: js/MediaBlocks.js:888 -#.TRANS: show1 is show as in display an image or text on the screen. -msgid "show1" +#: js/blocks/FlowBlocks.js:389 +msgid "The Case block is used inside of a Switch to define matches." msgstr "" -#: js/MediaBlocks.js:891 -msgid "obj" +#: js/blocks/FlowBlocks.js:397 +msgid "case" msgstr "" -#: js/MediaBlocks.js:938 -msgid "The Media block is used to import an image." +#: js/blocks/FlowBlocks.js:446 +msgid "The Switch block will run the code in the matching Case." msgstr "" -#: js/MediaBlocks.js:973 -msgid "The Text block holds a text string." +#: js/blocks/FlowBlocks.js:454 +msgid "switch" msgstr "" -#: js/ProgramBlocks.js:33 -msgid "The Load-heap-from-app block loads the heap from a web page." +#: js/blocks/FlowBlocks.js:595 +msgid "The Stop block will stop a loop" msgstr "" -#: js/ProgramBlocks.js:44 -#.TRANS: load the heap contents from a URL -msgid "load heap from App" +#: js/blocks/FlowBlocks.js:597 +msgid "Forever, Repeat, While, or Until." msgstr "" -#: js/ProgramBlocks.js:95 -msgid "Error parsing JSON data:" -msgstr "" +#: js/blocks/FlowBlocks.js:604 +#: js/widgets/timbre.js:417 +#: js/widgets/timbre.js:419 +#: js/widgets/musickeyboard.js:819 +#: js/widgets/musickeyboard.js:821 +#: js/widgets/phrasemaker.js:4202 +#: plugins/rodi.rtp:29 +#: plugins/rodi.rtp:73 +#: plugins/rodi.rtp:413 +msgid "stop" +msgstr "stòp" -#: js/ProgramBlocks.js:100 -msgid "404: Page not found" +#: js/blocks/FlowBlocks.js:653 +msgid "The Waitfor block will wait until the condition is true." msgstr "" -#: js/ProgramBlocks.js:133 -msgid "The Save-heap-to-app block saves the heap to a web page." +#: js/blocks/FlowBlocks.js:661 +msgid "wait for" msgstr "" -#: js/ProgramBlocks.js:144 -#.TRANS: save the heap contents to a URL -msgid "save heap to App" +#: js/blocks/FlowBlocks.js:732 +msgid "The Until block will repeat until the condition is true." msgstr "" -#: js/ProgramBlocks.js:189 -msgid "Cannot find a valid heap for" -msgstr "" +#: js/blocks/FlowBlocks.js:740 +msgid "until" +msgstr "te ora ku" -#: js/ProgramBlocks.js:206 -msgid "The Load-heap block loads the heap from a file." +#: js/blocks/FlowBlocks.js:742 +#: js/blocks/FlowBlocks.js:822 +msgid "do2" msgstr "" -#: js/ProgramBlocks.js:217 -#.TRANS: load the heap from a file -msgid "load heap" +#: js/blocks/FlowBlocks.js:812 +msgid "The While block will repeat while the condition is true." msgstr "" -#: js/ProgramBlocks.js:270 -msgid "The file you selected does not contain a valid heap." -msgstr "" +#: js/blocks/FlowBlocks.js:820 +msgid "while" +msgstr "miéntras" -#: js/ProgramBlocks.js:275 -msgid "The loadHeap block needs a loadFile block." +#: js/blocks/FlowBlocks.js:903 +#: js/blocks/FlowBlocks.js:968 +#: js/blocks/FlowBlocks.js:979 +msgid "In this example if the mouse button is pressed a snare drum will play." msgstr "" -#: js/ProgramBlocks.js:291 -msgid "The Set-heap block loads the heap." -msgstr "" +#: js/blocks/FlowBlocks.js:925 +#: js/blocks/FlowBlocks.js:988 +msgid "if" +msgstr "si" -#: js/ProgramBlocks.js:299 -#: js/HeapBlocks.js:539 -#.TRANS: load the heap from a JSON encoding -msgid "set heap" -msgstr "" +#: js/blocks/FlowBlocks.js:927 +#: js/blocks/FlowBlocks.js:990 +msgid "then" +msgstr "despues" -#: js/ProgramBlocks.js:340 -msgid "The block you selected does not contain a valid heap." -msgstr "" +#: js/blocks/FlowBlocks.js:927 +msgid "else" +msgstr "sinó" -#: js/ProgramBlocks.js:343 -msgid "The Set heap block needs a heap." +#: js/blocks/FlowBlocks.js:1025 +msgid "The Forever block will repeat the contained blocks forever." msgstr "" -#: js/ProgramBlocks.js:360 -msgid "The Load-dictionary block loads a dictionary from a file." -msgstr "" +#: js/blocks/FlowBlocks.js:1037 +msgid "forever" +msgstr "pa semper" -#: js/ProgramBlocks.js:372 -#.TRANS: load a dictionary from a file -msgid "load dictionary" +#: js/blocks/FlowBlocks.js:1073 +msgid "The Repeat block will repeat the contained blocks." msgstr "" -#: js/ProgramBlocks.js:390 -#: js/ProgramBlocks.js:658 -#: js/ToneBlocks.js:1025 -msgid "file" +#: js/blocks/FlowBlocks.js:1075 +msgid "In this example the note will be played 4 times." msgstr "" -#: js/ProgramBlocks.js:396 -#: js/ProgramBlocks.js:501 -#: js/ProgramBlocks.js:664 -#: js/DictBlocks.js:80 -#: js/DictBlocks.js:145 -#: js/DictBlocks.js:216 -#: js/DictBlocks.js:290 -msgid "My Dictionary" -msgstr "" +#: js/blocks/FlowBlocks.js:1083 +msgid "repeat" +msgstr "ripití" -#: js/ProgramBlocks.js:444 -msgid "The file you selected does not contain a valid dictionary." +#: js/blocks/FlowBlocks.js:1123 +msgid "duplicate factor" msgstr "" -#: js/ProgramBlocks.js:449 -msgid "The load dictionary block needs a load file block." +#: js/blocks/HeapBlocks.js:49 +msgid "The Heap block returns the heap." msgstr "" -#: js/ProgramBlocks.js:466 -msgid "The Set-dictionary block loads a dictionary." -msgstr "" +#: js/blocks/HeapBlocks.js:133 +msgid "show heap" +msgstr "mustra monton" -#: js/ProgramBlocks.js:477 -#.TRANS: load a dictionary from a JSON -msgid "set dictionary" +#: js/blocks/HeapBlocks.js:181 +msgid "The Heap-length block returns the length of the heap." msgstr "" -#: js/ProgramBlocks.js:546 -msgid "The block you selected does not contain a valid dictionary." +#: js/blocks/HeapBlocks.js:195 +msgid "heap length" msgstr "" -#: js/ProgramBlocks.js:550 -msgid "The set dictionary block needs a dictionary." +#: js/blocks/HeapBlocks.js:254 +msgid "The Heap-empty? block returns true if the heap is empty." msgstr "" -#: js/ProgramBlocks.js:567 -msgid "The Save-heap block saves the heap to a file." +#: js/blocks/HeapBlocks.js:268 +#.TRANS: Is the heap empty? +msgid "heap empty?" msgstr "" -#: js/ProgramBlocks.js:578 -#.TRANS: save the heap to a file -msgid "save heap" +#: js/blocks/HeapBlocks.js:317 +msgid "The Empty-heap block empties the heap." msgstr "" -#: js/ProgramBlocks.js:629 -msgid "The Save-dictionary block saves a dictionary to a file." +#: js/blocks/HeapBlocks.js:327 +#: js/blocks/HeapBlocks.js:647 +#.TRANS: empty the heap +msgid "empty heap" +msgstr "monton bashi" + +#: js/blocks/HeapBlocks.js:371 +msgid "The Reverse-heap block reverses the order of the heap." msgstr "" -#: js/ProgramBlocks.js:640 -#.TRANS: save a dictionary to a file -msgid "save dictionary" +#: js/blocks/HeapBlocks.js:384 +#.TRANS: reverse the order of the heap +msgid "reverse heap" msgstr "" -#: js/ProgramBlocks.js:720 -msgid "The Open palette block opens a palette." +#: js/blocks/HeapBlocks.js:428 +msgid "The Index-heap block returns a value in the heap at a specified location." msgstr "" -#: js/ProgramBlocks.js:727 -msgid "open palette" +#: js/blocks/HeapBlocks.js:443 +#.TRANS: retrieve a value from the heap at index position in the heap +msgid "index heap" msgstr "" -#: js/ProgramBlocks.js:785 -msgid "The Delete block block removes a block." +#: js/blocks/HeapBlocks.js:523 +msgid "The Set-heap entry block sets a value in he heap at the specified location." msgstr "" -#: js/ProgramBlocks.js:797 -#.TRANS: Move this block to the trash. -msgid "delete block" +#: js/blocks/HeapBlocks.js:539 +#: js/blocks/ProgramBlocks.js:299 +#.TRANS: load the heap from a JSON encoding +msgid "set heap" msgstr "" -#: js/ProgramBlocks.js:861 -msgid "The Move block block moves a block." +#: js/blocks/HeapBlocks.js:619 +msgid "The Pop block removes the value at the top of the heap." msgstr "" -#: js/ProgramBlocks.js:869 -#.TRANS: Move the position of a block on the screen. -msgid "move block" +#: js/blocks/HeapBlocks.js:633 +#.TRANS: pop a value off the top of the heap +msgid "pop" +msgstr "kita" + +#: js/blocks/HeapBlocks.js:680 +msgid "The Push block adds a value to the top of the heap." msgstr "" -#: js/ProgramBlocks.js:881 -#: js/ProgramBlocks.js:1048 -msgid "block number" +#: js/blocks/HeapBlocks.js:696 +#.TRANS: push a value onto the top of the heap +msgid "push" +msgstr "pusha" + +#: js/blocks/IntervalsBlocks.js:45 +msgid "set temperament" msgstr "" -#: js/ProgramBlocks.js:935 -#.TRANS: Run program beginning at this block. -msgid "run block" +#: js/blocks/IntervalsBlocks.js:63 +#: js/blocks/MediaBlocks.js:746 +#: js/blocks/PitchBlocks.js:657 +#: js/blocks/PitchBlocks.js:935 +#: js/blocks/PitchBlocks.js:974 +#: js/blocks/PitchBlocks.js:1007 +#: js/blocks/PitchBlocks.js:1194 +#: js/blocks/PitchBlocks.js:1717 +#: js/blocks/PitchBlocks.js:1758 +#: js/blocks/PitchBlocks.js:1866 +#: js/blocks/ToneBlocks.js:1025 +#: js/turtleactions/IntervalsActions.js:114 +#.TRANS: adjusts the shift up or down by one octave (twelve half-steps in the interval between two notes, one having twice or half the frequency in Hz of the other.) +msgid "octave" msgstr "" -#: js/ProgramBlocks.js:1025 -msgid "The Dock block block connections two blocks." +#: js/blocks/IntervalsBlocks.js:99 +msgid "The Temperament name block is used to select a tuning method." msgstr "" -#: js/ProgramBlocks.js:1036 -#.TRANS: We can connect a block to another block. -msgid "connect blocks" +#: js/blocks/IntervalsBlocks.js:161 +msgid "doubly" msgstr "" -#: js/ProgramBlocks.js:1048 -msgid "target block" +#: js/blocks/IntervalsBlocks.js:166 +msgid "The Doubly block will double the size of an interval." msgstr "" -#: js/ProgramBlocks.js:1048 -msgid "connection number" +#: js/blocks/IntervalsBlocks.js:262 +msgid "interval number" msgstr "" -#: js/ProgramBlocks.js:1140 -msgid "The Make block block creates a new block." +#: js/blocks/IntervalsBlocks.js:317 +msgid "current interval" msgstr "" -#: js/ProgramBlocks.js:1152 -#.TRANS: Create a new block -msgid "make block" +#: js/blocks/IntervalsBlocks.js:387 +#.TRANS: measure the distance between two pitches in semi-tones +msgid "semi-tone interval measure" msgstr "" -#: js/ProgramBlocks.js:1186 -#: js/ProgramBlocks.js:1227 -#: js/RhythmBlocks.js:1128 -#: js/PitchBlocks.js:972 -#: js/PitchBlocks.js:1005 -#: js/temperament.js:340 -#: js/temperament.js:362 -#: js/temperament.js:372 -#: js/temperament.js:484 -#: js/status.js:190 -#: plugins/rodi.rtp:192 -#.TRANS: a musical note consisting of pitch and duration -msgid "note" +#: js/blocks/IntervalsBlocks.js:454 +#: js/blocks/IntervalsBlocks.js:570 +msgid "You must use two pitch blocks when measuring an interval." msgstr "" -#: js/ProgramBlocks.js:1285 -msgid "Cannot find block" +#: js/blocks/IntervalsBlocks.js:496 +msgid "The Scalar interval block measures the distance between two notes in the current key and mode." msgstr "" -#: js/ProgramBlocks.js:1304 -#: js/ProgramBlocks.js:1313 -msgid "Warning: block argument type mismatch" +#: js/blocks/IntervalsBlocks.js:502 +#.TRANS: measure the distance between two pitches in steps of musical scale +msgid "scalar interval measure" msgstr "" -#: js/ProgramBlocks.js:1347 -msgid "The Open project block is used to open a project from a web page." +#: js/blocks/IntervalsBlocks.js:678 +msgid "In the figure, we add sol# to sol." msgstr "" -#: js/ProgramBlocks.js:1357 -msgid "open project" +#: js/blocks/IntervalsBlocks.js:684 +#: js/blocks/OrnamentBlocks.js:220 +#.TRANS: calculate a relative step between notes based on semi-tones +msgid "semi-tone interval" msgstr "" -#: js/ProgramBlocks.js:1410 -msgid "Please enter a valid URL." +#: js/blocks/IntervalsBlocks.js:733 +msgid "The output of the example is: do, mi, sol, sol, ti, mi" msgstr "" -#: js/DrumBlocks.js:59 -msgid "The Noise name block is used to select a noise synthesizer." +#: js/blocks/IntervalsBlocks.js:740 +#: js/blocks/WidgetBlocks.js:768 +msgid "arpeggio" msgstr "" -#: js/DrumBlocks.js:102 -msgid "The Drum name block is used to select a drum." +#: js/blocks/IntervalsBlocks.js:931 +msgid "The Chord block calculates common chords." msgstr "" -#: js/DrumBlocks.js:146 -msgid "The Effects name block is used to select a sound effect." +#: js/blocks/IntervalsBlocks.js:933 +msgid "In the figure, we generate a C-major chord." msgstr "" -#: js/DrumBlocks.js:163 -msgid "noise" +#: js/blocks/IntervalsBlocks.js:938 +msgid "chord" msgstr "" -#: js/DrumBlocks.js:177 -msgid "The Play noise block will generate white, pink, or brown noise." +#: js/blocks/IntervalsBlocks.js:990 +msgid "The Ratio Interval block calculates an interval based on a ratio." msgstr "" -#: js/DrumBlocks.js:191 -#: js/musicutils.js:752 -#: js/synthutils.js:47 -#.TRANS: white noise synthesizer -msgid "white noise" +#: js/blocks/IntervalsBlocks.js:995 +msgid "ratio interval" msgstr "" -#: js/DrumBlocks.js:326 -msgid "Replace every instance of a pitch with a drum sound." +#: js/blocks/IntervalsBlocks.js:1064 +msgid "In the figure, we add la to sol." msgstr "" -#: js/DrumBlocks.js:337 -#.TRANS: map a pitch to a drum sound -msgid "map pitch to drum" +#: js/blocks/IntervalsBlocks.js:1120 +#.TRANS: define a custom mode +msgid "define mode" msgstr "" -#: js/DrumBlocks.js:404 -msgid "In the example above, a kick drum sound will be played instead of sol." +#: js/blocks/IntervalsBlocks.js:1173 +msgid "movable Do" msgstr "" -#: js/DrumBlocks.js:416 -#.TRANS: set the current drum sound for playback -msgid "set drum" +#: js/blocks/IntervalsBlocks.js:1224 +#.TRANS: mode length is the number of notes in the mode, e.g., 7 for major and minor scales; 12 for chromatic scales +msgid "mode length" msgstr "" -#: js/DrumBlocks.js:460 -msgid "sound effect" +#: js/blocks/IntervalsBlocks.js:1233 +msgid "The Mode length block is the number of notes in the current scale." msgstr "" -#: js/DrumBlocks.js:498 -msgid "You can use multiple Drum blocks within a Note block." +#: js/blocks/IntervalsBlocks.js:1235 +msgid "Most Western scales have 7 notes." msgstr "" -#: js/RhythmBlocks.js:182 -#: js/RhythmBlocks.js:1086 -#: js/RhythmBlocks.js:1162 -msgid "Note value must be greater than 0." +#: js/blocks/IntervalsBlocks.js:1284 +#.TRANS: the mode in music is 'major', 'minor', etc. +msgid "current mode" msgstr "" -#: js/RhythmBlocks.js:215 -#: js/RhythmBlocks.js:278 -#: js/RhythmBlocks.js:350 -#.TRANS: swing is a rhythmic variation that emphasises the offbeat -msgid "swing" +#: js/blocks/IntervalsBlocks.js:1337 +#.TRANS: the key is a group of pitches with which a music composition is created +msgid "current key" msgstr "" -#: js/RhythmBlocks.js:355 -#.TRANS: the amount to shift to the offbeat note -msgid "swing value" +#: js/blocks/IntervalsBlocks.js:1389 +#: js/blocks/IntervalsBlocks.js:1434 +#.TRANS: set the key and mode, e.g. C Major +msgid "set key" msgstr "" -#: js/RhythmBlocks.js:419 -msgid "The Skip notes block will cause notes to be skipped." +#: js/blocks/IntervalsBlocks.js:1443 +#: js/blocks/IntervalsBlocks.js:1449 +msgid "The Set key block is used to set the key and mode," msgstr "" -#: js/RhythmBlocks.js:427 -#.TRANS: substitute rests on notes being skipped -msgid "skip notes" +#: js/blocks/IntervalsBlocks.js:1449 +msgid "eg C Major" msgstr "" -#: js/RhythmBlocks.js:489 -#.TRANS: speed up note duration by some factor, e.g. convert 1/4 to 1/8 notes by using a factor of 2 -msgid "multiply note value" +#: js/blocks/MediaBlocks.js:35 +#.TRANS: right side of the screen +msgid "right (screen)" msgstr "" -#: js/RhythmBlocks.js:542 -msgid "The Tie block works on pairs of notes, combining them into one note." +#: js/blocks/MediaBlocks.js:45 +#: js/blocks/MediaBlocks.js:56 +msgid "The Right block returns the position of the right of the canvas." msgstr "" -#: js/RhythmBlocks.js:550 -#.TRANS: tie notes together into one longer note -msgid "tie" +#: js/blocks/MediaBlocks.js:97 +#.TRANS: left side of the screen +msgid "left (screen)" msgstr "" -#: js/RhythmBlocks.js:591 -#: js/RhythmBlocks.js:671 -#.TRANS: a dotted note is played for 1.5x its value, e.g., 1/8. --> 3/16 -msgid "dot" +#: js/blocks/MediaBlocks.js:107 +#: js/blocks/MediaBlocks.js:118 +msgid "The Left block returns the position of the left of the canvas." msgstr "" -#: js/RhythmBlocks.js:619 -#: js/RhythmActions.js:221 -msgid "An argument of -1 results in a note value of 0." +#: js/blocks/MediaBlocks.js:158 +msgid "top (screen)" msgstr "" -#: js/RhythmBlocks.js:661 -msgid "The Dot block extends the duration of a note by 50%." +#: js/blocks/MediaBlocks.js:168 +#: js/blocks/MediaBlocks.js:179 +msgid "The Top block returns the position of the top of the canvas." msgstr "" -#: js/RhythmBlocks.js:663 -msgid "Eg a dotted quarter note will play for 3/8 (1/4 + 1/8) of a beat." +#: js/blocks/MediaBlocks.js:219 +msgid "bottom (screen)" msgstr "" -#: js/RhythmBlocks.js:765 -#.TRANS: Japanese only: note value block for drum -msgid "note value drum" +#: js/blocks/MediaBlocks.js:229 +#: js/blocks/MediaBlocks.js:240 +msgid "The Bottom block returns the position of the bottom of the canvas." msgstr "" -#: js/RhythmBlocks.js:829 -msgid "392 hertz" +#: js/blocks/MediaBlocks.js:282 +msgid "width" msgstr "" -#: js/RhythmBlocks.js:1119 -msgid "The Note block is a container for one or more Pitch blocks." +#: js/blocks/MediaBlocks.js:291 +msgid "The Width block returns the width of the canvas." msgstr "" -#: js/RhythmBlocks.js:1121 -msgid "The Note block specifies the duration (note value) of its contents." +#: js/blocks/MediaBlocks.js:325 +msgid "height" msgstr "" -#: js/RhythmBlocks.js:1130 -msgid "value2" +#: js/blocks/MediaBlocks.js:334 +msgid "The Height block returns the height of the canvas." msgstr "" -#: js/RhythmBlocks.js:1200 -msgid "define frequency" +#: js/blocks/MediaBlocks.js:369 +#.TRANS: stops playback of an audio recording +msgid "stop play" msgstr "" -#: js/RhythmBlocks.js:1218 -#: js/temperament.js:650 -#: js/temperament.js:1421 -msgid "octave space" +#: js/blocks/MediaBlocks.js:404 +#.TRANS: Erases the images and text +msgid "erase media" msgstr "" -#: js/NumberBlocks.js:28 -msgid "The Int block returns an integer." +#: js/blocks/MediaBlocks.js:409 +msgid "The Erase Media block erases text and images." msgstr "" -#: js/NumberBlocks.js:34 -msgid "int" +#: js/blocks/MediaBlocks.js:439 +#.TRANS: play an audio recording +msgid "play back" msgstr "" -#: js/NumberBlocks.js:73 -msgid "The Mod block returns the remainder from a division." -msgstr "" +#: js/blocks/MediaBlocks.js:487 +msgid "speak" +msgstr "papia" -#: js/NumberBlocks.js:79 -msgid "mod" -msgstr "mod" +#: js/blocks/MediaBlocks.js:495 +msgid "The Speak block outputs to the text-to-speech synthesizer" +msgstr "" -#: js/NumberBlocks.js:123 -msgid "The Power block calculates a power function." +#: js/blocks/MediaBlocks.js:546 +msgid "camera" msgstr "" -#: js/NumberBlocks.js:178 -msgid "The Sqrt block returns the square root." +#: js/blocks/MediaBlocks.js:551 +msgid "The Camera block connects a webcam to the Show block." msgstr "" -#: js/NumberBlocks.js:184 -msgid "sqrt" +#: js/blocks/MediaBlocks.js:574 +msgid "video" msgstr "" -#: js/NumberBlocks.js:230 -msgid "The Abs block returns the absolute value." +#: js/blocks/MediaBlocks.js:579 +msgid "The Video block selects video for use with the Show block." msgstr "" -#: js/NumberBlocks.js:236 -msgid "abs" +#: js/blocks/MediaBlocks.js:607 +msgid "The Open file block opens a file for use with the Show block." msgstr "" -#: js/NumberBlocks.js:277 -msgid "The Distance block returns the distance between two points. For example, between the mouse and the center of the screen." +#: js/blocks/MediaBlocks.js:645 +msgid "stop media" msgstr "" -#: js/NumberBlocks.js:283 -#: plugins/rodi.rtp:310 -msgid "distance" +#: js/blocks/MediaBlocks.js:650 +msgid "The Stop media block stops audio or video playback." msgstr "" -#: js/NumberBlocks.js:343 -msgid "The Divide block is used to divide." +#: js/blocks/MediaBlocks.js:679 +#: js/blocks/PitchBlocks.js:1577 +#: js/widgets/musickeyboard.js:1936 +#: js/widgets/phrasemaker.js:1037 +#.TRANS: a measure of frequency: one cycle per second +msgid "hertz" msgstr "" -#: js/NumberBlocks.js:411 -msgid "The Multiply block is used to multiply." +#: js/blocks/MediaBlocks.js:692 +#: js/blocks/WidgetBlocks.js:182 +#: js/widgets/temperament.js:506 +#: js/widgets/temperament.js:546 +#: js/widgets/temperament.js:610 +#: js/widgets/temperament.js:618 +#: js/widgets/temperament.js:1505 +#: js/widgets/timbre.js:1842 +msgid "frequency" msgstr "" -#: js/NumberBlocks.js:554 -msgid "The Minus block is used to subtract." +#: js/blocks/MediaBlocks.js:692 +msgid "duration (ms)" msgstr "" -#: js/NumberBlocks.js:647 -msgid "The Plus block is used to add." +#: js/blocks/MediaBlocks.js:728 +#.TRANS: translate a note into hertz, e.g., A4 -> 440HZ +msgid "note to frequency" msgstr "" -#: js/NumberBlocks.js:773 -msgid "The One-of block returns one of two choices." +#: js/blocks/MediaBlocks.js:736 +msgid "The To frequency block converts a pitch name and octave to Hertz." msgstr "" -#: js/NumberBlocks.js:780 -#: js/PitchBlocks.js:616 -msgid "one of" +#: js/blocks/MediaBlocks.js:746 +#: js/blocks/PitchBlocks.js:656 +#: js/blocks/PitchBlocks.js:934 +#: js/blocks/PitchBlocks.js:1866 +#.TRANS: name2 is name as in name of pitch (JAPANESE ONLY) +msgid "name2" msgstr "" -#: js/NumberBlocks.js:782 -msgid "this" +#: js/blocks/MediaBlocks.js:812 +msgid "The Avatar block is used to change the appearance of the mouse." msgstr "" -#: js/NumberBlocks.js:782 -msgid "that" +#: js/blocks/MediaBlocks.js:819 +msgid "The Avatar block is used to change the appearance of the turtle." msgstr "" -#: js/NumberBlocks.js:837 -msgid "The Random block returns a random number." +#: js/blocks/MediaBlocks.js:831 +#: js/blocks/MediaBlocks.js:891 +#.TRANS: a media object +msgid "size" msgstr "" -#: js/NumberBlocks.js:844 -msgid "random" -msgstr "random" +#: js/blocks/MediaBlocks.js:831 +msgid "image" +msgstr "imágen" -#: js/NumberBlocks.js:846 -msgid "min" -msgstr "min" +#: js/blocks/MediaBlocks.js:880 +msgid "The Show block is used to display text or images on the canvas." +msgstr "" -#: js/NumberBlocks.js:846 -msgid "max" -msgstr "max" +#: js/blocks/MediaBlocks.js:888 +#.TRANS: show1 is show as in display an image or text on the screen. +msgid "show1" +msgstr "" -#: js/NumberBlocks.js:910 -msgid "The Number block holds a number." +#: js/blocks/MediaBlocks.js:891 +msgid "obj" msgstr "" -#: js/BoxesBlocks.js:53 -#: js/BoxesBlocks.js:59 -msgid "The Add-to block is used to add to the value stored in a box." +#: js/blocks/MediaBlocks.js:938 +msgid "The Media block is used to import an image." msgstr "" -#: js/BoxesBlocks.js:61 -msgid "It can also be used with other blocks such as Color and Pen size." +#: js/blocks/MediaBlocks.js:973 +msgid "The Text block holds a text string." msgstr "" -#: js/BoxesBlocks.js:73 -msgid "add" +#: js/blocks/MeterBlocks.js:34 +#.TRANS: musical meter (time signature), e.g., 4:4 +msgid "current meter" msgstr "" -#: js/BoxesBlocks.js:75 -#: js/temperament.js:716 -msgid "to" +#: js/blocks/MeterBlocks.js:85 +#.TRANS: number of beats per minute +msgid "beat factor" msgstr "" -#: js/BoxesBlocks.js:75 -#: js/BoxesBlocks.js:595 -#: js/HeapBlocks.js:544 -msgid "value1" +#: js/blocks/MeterBlocks.js:161 +msgid "The Beats per minute block returns the current beats per minute." msgstr "" -#: js/BoxesBlocks.js:118 -msgid "Block does not support incrementing." +#: js/blocks/MeterBlocks.js:169 +#: js/widgets/status.js:152 +#.TRANS: number of beats played per minute +msgid "beats per minute2" msgstr "" -#: js/BoxesBlocks.js:152 -msgid "The Add-1-to block adds one to the value stored in a box." +#: js/blocks/MeterBlocks.js:169 +#: js/blocks/MeterBlocks.js:1056 +#: js/blocks/MeterBlocks.js:1133 +#: js/blocks/MeterBlocks.js:1211 +#.TRANS: sets tempo by defining a beat and beats per minute +msgid "beats per minute" msgstr "" -#: js/BoxesBlocks.js:163 -msgid "add 1 to" +#: js/blocks/MeterBlocks.js:233 +#.TRANS: count of current musical measure in meter +msgid "measure count" msgstr "" -#: js/BoxesBlocks.js:211 -msgid "The Subtract-1-from block subtracts one from the value stored in a box." +#: js/blocks/MeterBlocks.js:241 +msgid "The Measure count block returns the current measure." msgstr "" -#: js/BoxesBlocks.js:222 -msgid "subtract 1 from" +#: js/blocks/MeterBlocks.js:290 +#.TRANS: count of current beat in the meter +msgid "beat count" msgstr "" -#: js/BoxesBlocks.js:270 -#: js/BoxesBlocks.js:387 -msgid "The Box block returns the value stored in a box." +#: js/blocks/MeterBlocks.js:300 +#: js/blocks/MeterBlocks.js:311 +#: js/blocks/MeterBlocks.js:565 +#: js/blocks/MeterBlocks.js:576 +msgid "The Beat count block is the number of the current beat," msgstr "" -#: js/BoxesBlocks.js:500 -#: js/BoxesBlocks.js:576 -msgid "The Store in block will store a value in a box." +#: js/blocks/MeterBlocks.js:313 +#: js/blocks/MeterBlocks.js:578 +msgid "eg 1, 2, 3, or 4." msgstr "" -#: js/BoxesBlocks.js:652 -msgid "The Box2 block returns the value stored in Box2." +#: js/blocks/MeterBlocks.js:368 +#.TRANS: count the number of notes +msgid "sum note values" msgstr "" -#: js/BoxesBlocks.js:703 -msgid "The Store in Box2 block is used to store a value in Box2." +#: js/blocks/MeterBlocks.js:376 +#: js/blocks/MeterBlocks.js:440 +msgid "The Note counter block can be used to count the number of contained notes." msgstr "" -#: js/BoxesBlocks.js:715 -msgid "store in box2" +#: js/blocks/MeterBlocks.js:432 +#.TRANS: count the number of notes +msgid "note counter" msgstr "" -#: js/BoxesBlocks.js:761 -msgid "The Box1 block returns the value stored in Box1." +#: js/blocks/MeterBlocks.js:496 +#.TRANS: number of whole notes that have been played +msgid "whole notes played" msgstr "" -#: js/BoxesBlocks.js:812 -msgid "The Store in Box1 block is used to store a value in Box1." +#: js/blocks/MeterBlocks.js:505 +msgid "The Whole notes played block returns the total number of whole notes played." msgstr "" -#: js/BoxesBlocks.js:826 -msgid "store in box1" +#: js/blocks/MeterBlocks.js:555 +#: js/turtleactions/DictActions.js:83 +#.TRANS: number of notes that have been played +msgid "notes played" msgstr "" -#: js/HeapBlocks.js:49 -msgid "The Heap block returns the heap." +#: js/blocks/MeterBlocks.js:653 +msgid "The No clock block decouples the notes from the master clock." msgstr "" -#: js/HeapBlocks.js:133 -msgid "show heap" -msgstr "mustra monton" +#: js/blocks/MeterBlocks.js:661 +#.TRANS: don't lock notes to master clock +msgid "no clock" +msgstr "" -#: js/HeapBlocks.js:181 -msgid "The Heap-length block returns the length of the heap." +#: js/blocks/MeterBlocks.js:700 +msgid "on weak beat do" msgstr "" -#: js/HeapBlocks.js:195 -msgid "heap length" +#: js/blocks/MeterBlocks.js:705 +msgid "The On-weak-beat block lets you specify actions to take on weak (off) beats." msgstr "" -#: js/HeapBlocks.js:254 -msgid "The Heap-empty? block returns true if the heap is empty." +#: js/blocks/MeterBlocks.js:750 +msgid "on strong beat" msgstr "" -#: js/HeapBlocks.js:268 -#.TRANS: Is the heap empty? -msgid "heap empty?" +#: js/blocks/MeterBlocks.js:758 +msgid "The On-strong-beat block lets you specify actions to take on specified beats." msgstr "" -#: js/HeapBlocks.js:317 -msgid "The Empty-heap block empties the heap." +#: js/blocks/MeterBlocks.js:769 +msgid "beat" msgstr "" -#: js/HeapBlocks.js:327 -#: js/HeapBlocks.js:647 -#.TRANS: empty the heap -msgid "empty heap" -msgstr "monton bashi" +#: js/blocks/MeterBlocks.js:813 +msgid "on every beat do" +msgstr "" -#: js/HeapBlocks.js:371 -msgid "The Reverse-heap block reverses the order of the heap." +#: js/blocks/MeterBlocks.js:821 +msgid "The On-every-beat block lets you specify actions to take on every beat." msgstr "" -#: js/HeapBlocks.js:384 -#.TRANS: reverse the order of the heap -msgid "reverse heap" +#: js/blocks/MeterBlocks.js:874 +msgid "on every note do" msgstr "" -#: js/HeapBlocks.js:428 -msgid "The Index-heap block returns a value in the heap at a specified location." +#: js/blocks/MeterBlocks.js:882 +msgid "The On-every-note block lets you specify actions to take on every note." msgstr "" -#: js/HeapBlocks.js:443 -#.TRANS: retrieve a value from the heap at index position in the heap -msgid "index heap" +#: js/blocks/MeterBlocks.js:928 +#: js/blocks/MeterBlocks.js:999 +#.TRANS: sets tempo by defining a beat and beats per minute +msgid "master beats per minute" msgstr "" -#: js/HeapBlocks.js:523 -msgid "The Set-heap entry block sets a value in he heap at the specified location." +#: js/blocks/MeterBlocks.js:952 +#: js/blocks/MeterBlocks.js:1078 +#: js/blocks/MeterBlocks.js:1135 +msgid "bpm" msgstr "" -#: js/HeapBlocks.js:619 -msgid "The Pop block removes the value at the top of the heap." +#: js/blocks/MeterBlocks.js:952 +#: js/blocks/MeterBlocks.js:1078 +#: js/blocks/MeterBlocks.js:1135 +msgid "beat value" msgstr "" -#: js/HeapBlocks.js:633 -#.TRANS: pop a value off the top of the heap -msgid "pop" -msgstr "kita" +#: js/blocks/MeterBlocks.js:1024 +#: js/blocks/MeterBlocks.js:1167 +#: js/blocks/MeterBlocks.js:1241 +msgid "Beats per minute must be > 30." +msgstr "" -#: js/HeapBlocks.js:680 -msgid "The Push block adds a value to the top of the heap." +#: js/blocks/MeterBlocks.js:1027 +#: js/blocks/MeterBlocks.js:1170 +#: js/blocks/MeterBlocks.js:1244 +msgid "Maximum beats per minute is 1000." msgstr "" -#: js/HeapBlocks.js:696 -#.TRANS: push a value onto the top of the heap -msgid "push" -msgstr "pusha" +#: js/blocks/MeterBlocks.js:1068 +msgid "The Beats per minute block sets the number of 1/4 notes per minute." +msgstr "" -#: js/FlowBlocks.js:41 -msgid "The Backward block runs code in reverse order (Musical retrograde)." +#: js/blocks/MeterBlocks.js:1279 +#.TRANS: anacrusis +msgid "pickup" msgstr "" -#: js/FlowBlocks.js:48 -msgid "backward" +#: js/blocks/MeterBlocks.js:1367 +msgid "number of beats" msgstr "" -#: js/FlowBlocks.js:124 -msgid "The Duplicate block will run each block multiple times." +#: js/blocks/NumberBlocks.js:28 +msgid "The Int block returns an integer." msgstr "" -#: js/FlowBlocks.js:136 -msgid "duplicate" +#: js/blocks/NumberBlocks.js:34 +msgid "int" msgstr "" -#: js/FlowBlocks.js:334 -msgid "The Default block is used inside of a Switch to define the default action." +#: js/blocks/NumberBlocks.js:73 +msgid "The Mod block returns the remainder from a division." +msgstr "" + +#: js/blocks/NumberBlocks.js:79 +msgid "mod" +msgstr "mod" + +#: js/blocks/NumberBlocks.js:141 +msgid "The Power block calculates a power function." msgstr "" -#: js/FlowBlocks.js:342 -msgid "default" +#: js/blocks/NumberBlocks.js:196 +msgid "The Sqrt block returns the square root." msgstr "" -#: js/FlowBlocks.js:361 -#: js/FlowBlocks.js:418 -msgid "The Case Block must be used inside of a Switch Block." +#: js/blocks/NumberBlocks.js:202 +msgid "sqrt" msgstr "" -#: js/FlowBlocks.js:389 -msgid "The Case block is used inside of a Switch to define matches." +#: js/blocks/NumberBlocks.js:248 +msgid "The Abs block returns the absolute value." msgstr "" -#: js/FlowBlocks.js:397 -msgid "case" +#: js/blocks/NumberBlocks.js:254 +msgid "abs" msgstr "" -#: js/FlowBlocks.js:446 -msgid "The Switch block will run the code in the matching Case." +#: js/blocks/NumberBlocks.js:295 +msgid "The Distance block returns the distance between two points. For example, between the mouse and the center of the screen." msgstr "" -#: js/FlowBlocks.js:454 -msgid "switch" +#: js/blocks/NumberBlocks.js:301 +#: plugins/rodi.rtp:310 +msgid "distance" msgstr "" -#: js/FlowBlocks.js:595 -msgid "The Stop block will stop a loop" +#: js/blocks/NumberBlocks.js:361 +msgid "The Divide block is used to divide." msgstr "" -#: js/FlowBlocks.js:597 -msgid "Forever, Repeat, While, or Until." +#: js/blocks/NumberBlocks.js:441 +msgid "The Multiply block is used to multiply." msgstr "" -#: js/FlowBlocks.js:604 -#: js/phrasemaker.js:3799 -#: js/musickeyboard.js:629 -#: js/musickeyboard.js:631 -#: js/timbre.js:417 -#: js/timbre.js:419 -#: plugins/rodi.rtp:29 -#: plugins/rodi.rtp:73 -#: plugins/rodi.rtp:413 -msgid "stop" -msgstr "stòp" - -#: js/FlowBlocks.js:653 -msgid "The Waitfor block will wait until the condition is true." +#: js/blocks/NumberBlocks.js:612 +msgid "The Minus block is used to subtract." msgstr "" -#: js/FlowBlocks.js:661 -msgid "wait for" +#: js/blocks/NumberBlocks.js:723 +msgid "The Plus block is used to add." msgstr "" -#: js/FlowBlocks.js:732 -msgid "The Until block will repeat until the condition is true." +#: js/blocks/NumberBlocks.js:849 +msgid "The One-of block returns one of two choices." msgstr "" -#: js/FlowBlocks.js:740 -msgid "until" -msgstr "te ora ku" - -#: js/FlowBlocks.js:742 -#: js/FlowBlocks.js:822 -msgid "do2" +#: js/blocks/NumberBlocks.js:856 +#: js/blocks/PitchBlocks.js:616 +msgid "one of" msgstr "" -#: js/FlowBlocks.js:812 -msgid "The While block will repeat while the condition is true." +#: js/blocks/NumberBlocks.js:858 +msgid "this" msgstr "" -#: js/FlowBlocks.js:820 -msgid "while" -msgstr "miéntras" +#: js/blocks/NumberBlocks.js:858 +msgid "that" +msgstr "" -#: js/FlowBlocks.js:903 -#: js/FlowBlocks.js:968 -#: js/FlowBlocks.js:979 -msgid "In this example if the mouse button is pressed a snare drum will play." +#: js/blocks/NumberBlocks.js:913 +msgid "The Random block returns a random number." msgstr "" -#: js/FlowBlocks.js:925 -#: js/FlowBlocks.js:988 -msgid "if" -msgstr "si" +#: js/blocks/NumberBlocks.js:920 +msgid "random" +msgstr "random" -#: js/FlowBlocks.js:927 -#: js/FlowBlocks.js:990 -msgid "then" -msgstr "despues" +#: js/blocks/NumberBlocks.js:922 +msgid "min" +msgstr "min" -#: js/FlowBlocks.js:927 -msgid "else" -msgstr "sinó" +#: js/blocks/NumberBlocks.js:922 +msgid "max" +msgstr "max" -#: js/FlowBlocks.js:1025 -msgid "The Forever block will repeat the contained blocks forever." +#: js/blocks/NumberBlocks.js:986 +msgid "The Number block holds a number." msgstr "" -#: js/FlowBlocks.js:1037 -msgid "forever" -msgstr "pa semper" - -#: js/FlowBlocks.js:1073 -msgid "The Repeat block will repeat the contained blocks." +#: js/blocks/OrnamentBlocks.js:32 +msgid "staccato factor" msgstr "" -#: js/FlowBlocks.js:1075 -msgid "In this example the note will be played 4 times." +#: js/blocks/OrnamentBlocks.js:108 +msgid "slur factor" msgstr "" -#: js/FlowBlocks.js:1083 -msgid "repeat" -msgstr "ripití" - -#: js/FlowBlocks.js:1123 -msgid "duplicate factor" +#: js/blocks/OrnamentBlocks.js:217 +#: js/blocks/OrnamentBlocks.js:309 +#.TRANS: the neighbor refers to a neighboring note, e.g., D is a neighbor of C +msgid "neighbor" msgstr "" -#: js/PitchBlocks.js:39 -#: js/musicutils.js:722 -#: js/musicutils.js:1117 -#: js/synthutils.js:112 -#.TRANS: square wave -msgid "square" +#: js/blocks/OrnamentBlocks.js:293 +msgid "The Neighbor block rapidly switches between neighboring pitches." msgstr "" -#: js/PitchBlocks.js:62 -#: js/ToneBlocks.js:39 -#: js/musicutils.js:723 -#: js/musicutils.js:1118 -#: js/synthutils.js:116 -#.TRANS: triangle wave -msgid "triangle" +#: js/blocks/OrnamentBlocks.js:364 +msgid "glide" msgstr "" -#: js/PitchBlocks.js:85 -#: js/musicutils.js:721 -#: js/musicutils.js:1116 -#: js/synthutils.js:110 -#.TRANS: sine wave -msgid "sine" +#: js/blocks/OrnamentBlocks.js:479 +#: js/blocks/OrnamentBlocks.js:643 +msgid "slur" msgstr "" -#: js/PitchBlocks.js:108 -#: js/musicutils.js:724 -#: js/musicutils.js:1119 -#: js/synthutils.js:114 -#.TRANS: sawtooth wave -msgid "sawtooth" +#: js/blocks/OrnamentBlocks.js:558 +#: js/blocks/OrnamentBlocks.js:710 +#.TRANS: play each note sharply detached from the others +msgid "staccato" msgstr "" -#: js/PitchBlocks.js:141 -#.TRANS: musical transposition (adjustment of pitch up or down) -msgid "transposition" +#: js/blocks/RhythmBlocks.js:182 +#: js/blocks/RhythmBlocks.js:1086 +#: js/blocks/RhythmBlocks.js:1162 +msgid "Note value must be greater than 0." msgstr "" -#: js/PitchBlocks.js:168 -#.TRANS: step down one note in current musical scale -msgid "scalar step down" +#: js/blocks/RhythmBlocks.js:215 +#: js/blocks/RhythmBlocks.js:278 +#: js/blocks/RhythmBlocks.js:350 +#.TRANS: swing is a rhythmic variation that emphasises the offbeat +msgid "swing" msgstr "" -#: js/PitchBlocks.js:172 -msgid "The Scalar step down block returns the number of semi-tones down to the previous note in the current key and mode." +#: js/blocks/RhythmBlocks.js:355 +#.TRANS: the amount to shift to the offbeat note +msgid "swing value" msgstr "" -#: js/PitchBlocks.js:190 -#.TRANS: step up one note in current musical scale -msgid "scalar step up" +#: js/blocks/RhythmBlocks.js:419 +msgid "The Skip notes block will cause notes to be skipped." msgstr "" -#: js/PitchBlocks.js:194 -msgid "The Scalar step up block returns the number of semi-tones up to the next note in the current key and mode." +#: js/blocks/RhythmBlocks.js:427 +#.TRANS: substitute rests on notes being skipped +msgid "skip notes" msgstr "" -#: js/PitchBlocks.js:212 -#.TRANS: the change measured in half-steps between the current pitch and the previous pitch -msgid "change in pitch" +#: js/blocks/RhythmBlocks.js:489 +#.TRANS: speed up note duration by some factor, e.g. convert 1/4 to 1/8 notes by using a factor of 2 +msgid "multiply note value" msgstr "" -#: js/PitchBlocks.js:216 -msgid "The Change in pitch block is the difference (in half steps) between the current pitch being played and the previous pitch played." +#: js/blocks/RhythmBlocks.js:542 +msgid "The Tie block works on pairs of notes, combining them into one note." msgstr "" -#: js/PitchBlocks.js:243 -#.TRANS: the change measured in scale-steps between the current pitch and the previous pitch -msgid "scalar change in pitch" +#: js/blocks/RhythmBlocks.js:550 +#.TRANS: tie notes together into one longer note +msgid "tie" msgstr "" -#: js/PitchBlocks.js:250 -#: js/PitchBlocks.js:432 -#: js/PitchBlocks.js:1629 -#: js/DictActions.js:89 -#: js/temperament.js:477 -#: js/temperament.js:481 -#: js/temperament.js:714 -#.TRANS: convert current note to piano key (1-88) -#.TRANS: a mapping of pitch to the 88 piano keys -msgid "pitch number" +#: js/blocks/RhythmBlocks.js:591 +#: js/blocks/RhythmBlocks.js:671 +#.TRANS: a dotted note is played for 1.5x its value, e.g., 1/8. --> 3/16 +msgid "dot" msgstr "" -#: js/PitchBlocks.js:256 -msgid "The Pitch number block is the value of the pitch of the note currently being played." +#: js/blocks/RhythmBlocks.js:619 +#: js/turtleactions/RhythmActions.js:221 +msgid "An argument of -1 results in a note value of 0." msgstr "" -#: js/PitchBlocks.js:329 -#: js/PitchBlocks.js:433 -#.TRANS: the current pitch expressed in Hertz -msgid "pitch in hertz" +#: js/blocks/RhythmBlocks.js:661 +msgid "The Dot block extends the duration of a note by 50%." msgstr "" -#: js/PitchBlocks.js:334 -msgid "The Pitch in Hertz block is the value in Hertz of the pitch of the note currently being played." +#: js/blocks/RhythmBlocks.js:663 +msgid "Eg a dotted quarter note will play for 3/8 (1/4 + 1/8) of a beat." msgstr "" -#: js/PitchBlocks.js:367 -#: js/DictActions.js:87 -msgid "current pitch" +#: js/blocks/RhythmBlocks.js:765 +#.TRANS: Japanese only: note value block for drum +msgid "note value drum" msgstr "" -#: js/PitchBlocks.js:373 -msgid "The Current Pitch block is used with the Pitch Converter block. In the example above, current pitch, sol 4, is displayed as 392 hertz." +#: js/blocks/RhythmBlocks.js:829 +msgid "392 hertz" msgstr "" -#: js/PitchBlocks.js:410 -msgid "This block converts the pitch value of the last note played into different formats such as hertz, letter name, pitch number, et al." +#: js/blocks/RhythmBlocks.js:1119 +msgid "The Note block is a container for one or more Pitch blocks." msgstr "" -#: js/PitchBlocks.js:434 -msgid "alphabet" +#: js/blocks/RhythmBlocks.js:1121 +msgid "The Note block specifies the duration (note value) of its contents." msgstr "" -#: js/PitchBlocks.js:436 -#.TRANS: Translate as "alphabet class" -msgid "letter class" +#: js/blocks/RhythmBlocks.js:1128 +#: js/blocks/PitchBlocks.js:974 +#: js/blocks/PitchBlocks.js:1007 +#: js/blocks/ProgramBlocks.js:1186 +#: js/blocks/ProgramBlocks.js:1227 +#: js/widgets/status.js:190 +#: js/widgets/temperament.js:464 +#: js/widgets/temperament.js:486 +#: js/widgets/temperament.js:496 +#: js/widgets/temperament.js:617 +#: plugins/rodi.rtp:192 +#.TRANS: a musical note consisting of pitch and duration +msgid "note" msgstr "" -#: js/PitchBlocks.js:437 -msgid "solfege class" +#: js/blocks/RhythmBlocks.js:1130 +msgid "value2" msgstr "" -#: js/PitchBlocks.js:438 -msgid "staff y" +#: js/blocks/RhythmBlocks.js:1200 +msgid "define frequency" msgstr "" -#: js/PitchBlocks.js:439 -msgid "solfege syllable" +#: js/blocks/RhythmBlocks.js:1218 +#: js/widgets/temperament.js:787 +#: js/widgets/temperament.js:1587 +msgid "octave space" msgstr "" -#: js/PitchBlocks.js:440 -msgid "pitch class" +#: js/blocks/SensorsBlocks.js:36 +msgid "The Input block prompts for keyboard input." msgstr "" -#: js/PitchBlocks.js:441 -msgid "scalar class" +#: js/blocks/SensorsBlocks.js:46 +msgid "input" msgstr "" -#: js/PitchBlocks.js:443 -msgid "nth degree" +#: js/blocks/SensorsBlocks.js:64 +msgid "Input a value" msgstr "" -#: js/PitchBlocks.js:444 -msgid "pitch to shade" +#: js/blocks/SensorsBlocks.js:126 +msgid "input value" msgstr "" -#: js/PitchBlocks.js:445 -msgid "pitch to color" +#: js/blocks/SensorsBlocks.js:131 +msgid "The Input-value block stores the input." msgstr "" -#: js/PitchBlocks.js:629 -#: js/musickeyboard.js:565 -#.TRANS: MIDI is a technical standard for electronic music -msgid "MIDI" -msgstr "" +#: js/blocks/SensorsBlocks.js:238 +msgid "loudness" +msgstr "volúmen" -#: js/PitchBlocks.js:642 -#.TRANS: set an offset associated with the numeric piano keyboard mapping -msgid "set pitch number offset" +#: js/blocks/SensorsBlocks.js:245 +msgid "The Loudness block returns the volume detected by the microphone." msgstr "" -#: js/PitchBlocks.js:645 -msgid "The Set pitch number offset block is used to set the offset for mapping pitch numbers to pitch and octave." +#: js/blocks/SensorsBlocks.js:300 +msgid "click" msgstr "" -#: js/PitchBlocks.js:679 -#.TRANS: convert piano key number (1-88) to pitch -msgid "number to pitch" +#: js/blocks/SensorsBlocks.js:306 +msgid "The Click block triggers an event if a mouse has been clicked." msgstr "" -#: js/PitchBlocks.js:682 -msgid "The Number to pitch block will convert a pitch number to a pich name." +#: js/blocks/SensorsBlocks.js:313 +msgid "The Click block triggers an event if a turtle has been clicked." msgstr "" -#: js/PitchBlocks.js:715 -#.TRANS: convert piano key number (1-88) to octave -msgid "number to octave" +#: js/blocks/SensorsBlocks.js:342 +msgid "cursor over" msgstr "" -#: js/PitchBlocks.js:717 -msgid "The Number to octave block will convert a pitch number to an octave." +#: js/blocks/SensorsBlocks.js:387 +msgid "cursor out" msgstr "" -#: js/PitchBlocks.js:726 -msgid "y to pitch" +#: js/blocks/SensorsBlocks.js:433 +msgid "cursor button down" msgstr "" -#: js/PitchBlocks.js:729 -msgid "Y to pitch block will convert a staff y position to corresponding pitch notation." +#: js/blocks/SensorsBlocks.js:477 +msgid "cursor button up" msgstr "" -#: js/PitchBlocks.js:841 -msgid "accidental selector" +#: js/blocks/SensorsBlocks.js:521 +#: js/blocks/PenBlocks.js:48 +#: plugins/rodi.rtp:219 +msgid "blue" msgstr "" -#: js/PitchBlocks.js:844 -msgid "The Accidental selector block is used to choose between double-sharp, sharp, natural, flat, and double-flat." +#: js/blocks/SensorsBlocks.js:577 +#: js/blocks/PenBlocks.js:64 +#: plugins/rodi.rtp:218 +msgid "green" msgstr "" -#: js/PitchBlocks.js:858 -msgid "Pitch can be specified in terms of ni dha pa ma ga re sa." +#: js/blocks/SensorsBlocks.js:633 +#: js/blocks/PenBlocks.js:112 +#: plugins/rodi.rtp:217 +msgid "red" msgstr "" -#: js/PitchBlocks.js:872 -msgid "Pitch can be specified in terms of C D E F G A B." +#: js/blocks/SensorsBlocks.js:638 +msgid "The Get red block returns the red component of the pixel under the mouse." msgstr "" -#: js/PitchBlocks.js:883 -msgid "solfege" +#: js/blocks/SensorsBlocks.js:644 +msgid "The Get red block returns the red component of the pixel under the turtle." msgstr "" -#: js/PitchBlocks.js:886 -msgid "Pitch can be specified in terms of do re mi fa sol la ti." +#: js/blocks/SensorsBlocks.js:685 +#: plugins/rodi.rtp:216 +msgid "pixel color" msgstr "" -#: js/PitchBlocks.js:920 -msgid "The Invert block rotates any contained notes around a target note." +#: js/blocks/SensorsBlocks.js:690 +msgid "The Get pixel block returns the color of the pixel under the mouse." msgstr "" -#: js/PitchBlocks.js:927 -#.TRANS: pitch inversion rotates a pitch around another pitch -msgid "invert" +#: js/blocks/SensorsBlocks.js:696 +msgid "The Get pixel block returns the color of the pixel under the turtle." msgstr "" -#: js/PitchBlocks.js:929 -#: js/PitchBlocks.js:935 -#: js/PitchActions.js:727 -#: js/musicutils.js:726 -#: js/musicutils.js:902 -#.TRANS: invert based on even or odd number or musical scale -#.TRANS: even numbers -msgid "even" -msgstr "" +#: js/blocks/SensorsBlocks.js:758 +msgid "time" +msgstr "tempu" -#: js/PitchBlocks.js:935 -#: js/PitchActions.js:729 -#: js/musicutils.js:728 -#: js/musicutils.js:903 -#.TRANS: odd numbers -msgid "odd" +#: js/blocks/SensorsBlocks.js:804 +msgid "cursor y" msgstr "" -#: js/PitchBlocks.js:935 -#: js/PitchActions.js:731 -#: js/musicutils.js:729 -#: js/musicutils.js:904 -msgid "scalar" +#: js/blocks/SensorsBlocks.js:809 +msgid "The Cursor Y block returns the vertical position of the mouse." msgstr "" -#: js/PitchBlocks.js:966 -#.TRANS: pitch inversion rotates a pitch around another pitch (odd number) -msgid "invert (odd)" +#: js/blocks/SensorsBlocks.js:845 +msgid "cursor x" msgstr "" -#: js/PitchBlocks.js:999 -#.TRANS: pitch inversion rotates a pitch around another pitch (even number) -msgid "invert (even)" +#: js/blocks/SensorsBlocks.js:850 +msgid "The Cursor X block returns the horizontal position of the mouse." msgstr "" -#: js/PitchBlocks.js:1020 -#.TRANS: register is the octave of the current pitch -msgid "register" +#: js/blocks/SensorsBlocks.js:886 +msgid "mouse button" msgstr "" -#: js/PitchBlocks.js:1024 -msgid "The Register block provides an easy way to modify the register (octave) of the notes that follow it." +#: js/blocks/SensorsBlocks.js:888 +msgid "The Mouse-button block returns True if the mouse button is pressed." msgstr "" -#: js/PitchBlocks.js:1074 -msgid "The Semi-tone transposition block will shift the pitches contained inside Note blocks up (or down) by half steps." +#: js/blocks/SensorsBlocks.js:934 +msgid "to ASCII" msgstr "" -#: js/PitchBlocks.js:1076 -msgid "In the example shown above, sol is shifted up to sol#." +#: js/blocks/SensorsBlocks.js:938 +msgid "The To ASCII block converts numbers to letters." msgstr "" -#: js/PitchBlocks.js:1082 -#.TRANS: adjust the amount of shift (up or down) of a pitch -msgid "semi-tone transpose" +#: js/blocks/SensorsBlocks.js:1005 +msgid "The Keyboard block returns computer keyboard input." msgstr "" -#: js/PitchBlocks.js:1115 -msgid "The Transpose by Ratio block will shift the pitches contained inside Note blocks up (or down) by a ratio" +#: js/blocks/RhythmBlockPaletteBlocks.js:50 +#: js/blocks/RhythmBlockPaletteBlocks.js:233 +#.TRANS: rhythm block +#.TRANS: translate "rhythm1" as rhythm +msgid "rhythm1" msgstr "" -#: js/PitchBlocks.js:1121 -#.TRANS: adjust the amount of shift (up or down) of a pitch -msgid "transpose by ratio" +#: js/blocks/RhythmBlockPaletteBlocks.js:70 +#: js/blocks/RhythmBlockPaletteBlocks.js:252 +#: js/blocks/RhythmBlockPaletteBlocks.js:485 +#: js/blocks/RhythmBlockPaletteBlocks.js:554 +#: js/blocks/RhythmBlockPaletteBlocks.js:875 +msgid "number of notes" msgstr "" -#: js/PitchBlocks.js:1204 -#.TRANS: down sixth means the note is five scale degrees below current note -msgid "down sixth" +#: js/blocks/RhythmBlockPaletteBlocks.js:126 +msgid "polyphonic rhythm" msgstr "" -#: js/PitchBlocks.js:1223 -#.TRANS: down third means the note is two scale degrees below current note -msgid "down third" +#: js/blocks/RhythmBlockPaletteBlocks.js:219 +msgid "The Rhythm block is used to generate rhythm patterns." msgstr "" -#: js/PitchBlocks.js:1242 -#.TRANS: seventh means the note is the six scale degrees above current note -msgid "seventh" +#: js/blocks/RhythmBlockPaletteBlocks.js:280 +msgid "1/64 note" msgstr "" -#: js/PitchBlocks.js:1261 -#.TRANS: sixth means the note is the five scale degrees above current note -msgid "sixth" +#: js/blocks/RhythmBlockPaletteBlocks.js:304 +msgid "1/32 note" msgstr "" -#: js/PitchBlocks.js:1280 -#.TRANS: fifth means the note is the four scale degrees above current note -msgid "fifth" +#: js/blocks/RhythmBlockPaletteBlocks.js:332 +msgid "1/16 note" msgstr "" -#: js/PitchBlocks.js:1300 -#.TRANS: fourth means the note is three scale degrees above current note -msgid "fourth" +#: js/blocks/RhythmBlockPaletteBlocks.js:360 +msgid "eighth note" msgstr "" -#: js/PitchBlocks.js:1319 -#.TRANS: third means the note is two scale degrees above current note -msgid "third" +#: js/blocks/RhythmBlockPaletteBlocks.js:388 +msgid "quarter note" msgstr "" -#: js/PitchBlocks.js:1338 -#.TRANS: second means the note is one scale degree above current note -msgid "second" +#: js/blocks/RhythmBlockPaletteBlocks.js:416 +msgid "half note" msgstr "" -#: js/PitchBlocks.js:1379 -msgid "The Scalar transposition block will shift the pitches contained inside Note blocks up (or down) the scale." +#: js/blocks/RhythmBlockPaletteBlocks.js:444 +msgid "whole note" msgstr "" -#: js/PitchBlocks.js:1381 -msgid "In the example shown above, sol is shifted up to la." +#: js/blocks/RhythmBlockPaletteBlocks.js:482 +#: js/blocks/RhythmBlockPaletteBlocks.js:551 +#: js/blocks/RhythmBlockPaletteBlocks.js:602 +#.TRANS: A tuplet is a note value divided into irregular time values. +msgid "tuplet" msgstr "" -#: js/PitchBlocks.js:1388 -#.TRANS: adjust the amount of shift (up or down) of a pitch by musical scale (scalar) steps -msgid "scalar transpose" +#: js/blocks/RhythmBlockPaletteBlocks.js:768 +msgid "septuplet" msgstr "" -#: js/PitchBlocks.js:1423 -msgid "The Accidental block is used to create sharps and flats" +#: js/blocks/RhythmBlockPaletteBlocks.js:796 +msgid "quintuplet" msgstr "" -#: js/PitchBlocks.js:1430 -#.TRANS: An accidental is a modification to a pitch, e.g., sharp or flat. -msgid "accidental override" +#: js/blocks/RhythmBlockPaletteBlocks.js:824 +msgid "triplet" msgstr "" -#: js/PitchBlocks.js:1543 -msgid "The Hertz block (in combination with a Number block) will play a sound at the specified frequency." +#: js/blocks/RhythmBlockPaletteBlocks.js:851 +msgid "simple tuplet" msgstr "" -#: js/PitchBlocks.js:1633 -msgid "The Pitch Number block will play a pitch associated by its number, e.g. 0 for C and 7 for G." +#: js/blocks/RhythmBlockPaletteBlocks.js:861 +msgid "Tuplets are a collection of notes that get scaled to a specific duration." msgstr "" -#: js/PitchBlocks.js:1665 -#: js/PitchBlocks.js:1707 -#.TRANS: a numeric mapping of the notes in an octave based on the musical mode -#.TRANS: a numeric mapping of the notes in an octave based on the musical mode -msgid "nth modal pitch" +#: js/blocks/DrumBlocks.js:59 +msgid "The Noise name block is used to select a noise synthesizer." msgstr "" -#: js/PitchBlocks.js:1668 -msgid "n^th Modal Pitch takes the pattern of pitches in semitones for a mode and makes each point a degree of the mode," +#: js/blocks/DrumBlocks.js:102 +msgid "The Drum name block is used to select a drum." msgstr "" -#: js/PitchBlocks.js:1670 -msgid "starting from 1 and regardless of tonal framework (i.e. not always 8 notes in the octave)" +#: js/blocks/DrumBlocks.js:146 +msgid "The Effects name block is used to select a sound effect." msgstr "" -#: js/PitchBlocks.js:1711 -msgid "N^th Modal Pitch takes a number as an input as the n^th degree for the given mode. 0 is the first position, 1 is the second, -1 is the note before the first etc." +#: js/blocks/DrumBlocks.js:163 +msgid "noise" msgstr "" -#: js/PitchBlocks.js:1713 -msgid "The pitches change according to the mode specified without any need for respellings." +#: js/blocks/DrumBlocks.js:177 +msgid "The Play noise block will generate white, pink, or brown noise." msgstr "" -#: js/PitchBlocks.js:1752 -msgid "Scale Degree is a common convention in music. Scale Degree offers seven possible positions in the scale (1-7) and can be modified via accidentals." +#: js/blocks/DrumBlocks.js:317 +msgid "Replace every instance of a pitch with a drum sound." msgstr "" -#: js/PitchBlocks.js:1754 -msgid "Scale Degree 1 is always the first pitch in a given scale, regardless of octave." +#: js/blocks/DrumBlocks.js:328 +#.TRANS: map a pitch to a drum sound +msgid "map pitch to drum" msgstr "" -#: js/PitchBlocks.js:1776 -#.TRANS: step some number of notes in current musical scale -msgid "scalar step" +#: js/blocks/DrumBlocks.js:395 +msgid "In the example above, a kick drum sound will be played instead of sol." msgstr "" -#: js/PitchBlocks.js:1781 -msgid "The Scalar Step block (in combination with a Number block) will play the next pitch in a scale," +#: js/blocks/DrumBlocks.js:407 +#.TRANS: set the current drum sound for playback +msgid "set drum" msgstr "" -#: js/PitchBlocks.js:1783 -msgid "eg if the last note played was sol, Scalar Step 1 will play la." +#: js/blocks/DrumBlocks.js:451 +msgid "sound effect" msgstr "" -#: js/PitchBlocks.js:1818 -msgid "The Pitch block specifies the pitch name and octave of a note that together determine the frequency of the note." +#: js/blocks/DrumBlocks.js:489 +msgid "You can use multiple Drum blocks within a Note block." msgstr "" -#: js/GraphicsBlocks.js:46 -#: js/DictActions.js:77 -#: js/DictActions.js:155 -#: js/DictActions.js:189 +#: js/blocks/GraphicsBlocks.js:46 +#: js/turtleactions/DictActions.js:77 +#: js/turtleactions/DictActions.js:144 +#: js/turtleactions/DictActions.js:173 msgid "heading" msgstr "direkshon" -#: js/GraphicsBlocks.js:56 +#: js/blocks/GraphicsBlocks.js:56 msgid "The Heading block returns the orientation of the mouse." msgstr "" -#: js/GraphicsBlocks.js:62 +#: js/blocks/GraphicsBlocks.js:62 msgid "The Heading block returns the orientation of the turtle." msgstr "" -#: js/GraphicsBlocks.js:133 +#: js/blocks/GraphicsBlocks.js:133 msgid "The Y block returns the vertical position of the mouse." msgstr "" -#: js/GraphicsBlocks.js:140 +#: js/blocks/GraphicsBlocks.js:140 msgid "The Y block returns the vertical position of the turtle." msgstr "" -#: js/GraphicsBlocks.js:149 +#: js/blocks/GraphicsBlocks.js:149 msgid "y3" msgstr "" -#: js/GraphicsBlocks.js:219 +#: js/blocks/GraphicsBlocks.js:219 msgid "The X block returns the horizontal position of the mouse." msgstr "" -#: js/GraphicsBlocks.js:226 +#: js/blocks/GraphicsBlocks.js:226 msgid "The X block returns the horizontal position of the turtle." msgstr "" -#: js/GraphicsBlocks.js:235 +#: js/blocks/GraphicsBlocks.js:235 msgid "x3" msgstr "" -#: js/GraphicsBlocks.js:295 +#: js/blocks/GraphicsBlocks.js:295 msgid "scroll xy" msgstr "" -#: js/GraphicsBlocks.js:303 +#: js/blocks/GraphicsBlocks.js:303 msgid "The Scroll XY block moves the canvas." msgstr "" -#: js/GraphicsBlocks.js:313 +#: js/blocks/GraphicsBlocks.js:313 msgid "x2" msgstr "" -#: js/GraphicsBlocks.js:313 +#: js/blocks/GraphicsBlocks.js:313 msgid "y2" msgstr "" -#: js/GraphicsBlocks.js:373 -#: js/temperament.js:213 -#: js/temperament.js:241 +#: js/blocks/GraphicsBlocks.js:373 +#: js/widgets/temperament.js:319 +#: js/widgets/temperament.js:347 msgid "clear" msgstr "" -#: js/GraphicsBlocks.js:426 +#: js/blocks/GraphicsBlocks.js:426 msgid "The Control-point 2 block sets the second control point for the Bezier curve." msgstr "" -#: js/GraphicsBlocks.js:433 +#: js/blocks/GraphicsBlocks.js:433 msgid "control point 2" msgstr "" -#: js/GraphicsBlocks.js:436 -#: js/GraphicsBlocks.js:487 -#: js/GraphicsBlocks.js:534 -#: js/GraphicsBlocks.js:750 +#: js/blocks/GraphicsBlocks.js:436 +#: js/blocks/GraphicsBlocks.js:487 +#: js/blocks/GraphicsBlocks.js:534 +#: js/blocks/GraphicsBlocks.js:750 msgid "x1" msgstr "" -#: js/GraphicsBlocks.js:436 -#: js/GraphicsBlocks.js:487 -#: js/GraphicsBlocks.js:534 -#: js/GraphicsBlocks.js:750 +#: js/blocks/GraphicsBlocks.js:436 +#: js/blocks/GraphicsBlocks.js:487 +#: js/blocks/GraphicsBlocks.js:534 +#: js/blocks/GraphicsBlocks.js:750 msgid "y1" msgstr "" -#: js/GraphicsBlocks.js:477 +#: js/blocks/GraphicsBlocks.js:477 msgid "The Control-point 1 block sets the first control point for the Bezier curve." msgstr "" -#: js/GraphicsBlocks.js:484 +#: js/blocks/GraphicsBlocks.js:484 msgid "control point 1" msgstr "" -#: js/GraphicsBlocks.js:527 +#: js/blocks/GraphicsBlocks.js:527 msgid "The Bezier block draws a Bezier curve." msgstr "" -#: js/GraphicsBlocks.js:531 +#: js/blocks/GraphicsBlocks.js:531 msgid "bezier" msgstr "" -#: js/GraphicsBlocks.js:592 +#: js/blocks/GraphicsBlocks.js:592 msgid "The Arc block moves the turtle in an arc." msgstr "" -#: js/GraphicsBlocks.js:600 +#: js/blocks/GraphicsBlocks.js:600 msgid "arc" msgstr "arko" -#: js/GraphicsBlocks.js:603 +#: js/blocks/GraphicsBlocks.js:603 msgid "angle" msgstr "ángulo" -#: js/GraphicsBlocks.js:603 +#: js/blocks/GraphicsBlocks.js:603 msgid "radius" msgstr "radio" -#: js/GraphicsBlocks.js:620 -#: js/GraphicsBlocks.js:767 -#: js/GraphicsBlocks.js:1010 -#: js/GraphicsBlocks.js:1093 +#: js/blocks/GraphicsBlocks.js:620 +#: js/blocks/GraphicsBlocks.js:767 +#: js/blocks/GraphicsBlocks.js:1010 +#: js/blocks/GraphicsBlocks.js:1093 msgid "Value must be within -5000 to 5000 when Wrap Mode is off." msgstr "" -#: js/GraphicsBlocks.js:622 -#: js/GraphicsBlocks.js:769 -#: js/GraphicsBlocks.js:1012 -#: js/GraphicsBlocks.js:1095 +#: js/blocks/GraphicsBlocks.js:622 +#: js/blocks/GraphicsBlocks.js:769 +#: js/blocks/GraphicsBlocks.js:1012 +#: js/blocks/GraphicsBlocks.js:1095 msgid "Value must be within -20000 to 20000 when Wrap Mode is on." msgstr "" -#: js/GraphicsBlocks.js:660 +#: js/blocks/GraphicsBlocks.js:660 msgid "set heading" msgstr "fiha titulo" -#: js/GraphicsBlocks.js:673 +#: js/blocks/GraphicsBlocks.js:673 msgid "The Set heading block sets the heading of the turtle." msgstr "" -#: js/GraphicsBlocks.js:733 +#: js/blocks/GraphicsBlocks.js:733 msgid "The Set XY block moves the mouse to a specific position on the screen." msgstr "" -#: js/GraphicsBlocks.js:739 +#: js/blocks/GraphicsBlocks.js:739 msgid "The Set XY block moves the turtle to a specific position on the screen." msgstr "" -#: js/GraphicsBlocks.js:747 +#: js/blocks/GraphicsBlocks.js:747 msgid "set xy" msgstr "fiha xy" -#: js/GraphicsBlocks.js:819 +#: js/blocks/GraphicsBlocks.js:819 msgid "The Right block turns the mouse to the right." msgstr "" -#: js/GraphicsBlocks.js:826 +#: js/blocks/GraphicsBlocks.js:826 msgid "The Right block turns the turtle to the right." msgstr "" -#: js/GraphicsBlocks.js:835 +#: js/blocks/GraphicsBlocks.js:835 msgid "right1" msgstr "" -#: js/GraphicsBlocks.js:835 +#: js/blocks/GraphicsBlocks.js:835 #: plugins/rodi.rtp:77 #: plugins/rodi.rtp:340 #: plugins/rodi.rtp:375 msgid "right" msgstr "man drechi" -#: js/GraphicsBlocks.js:899 +#: js/blocks/GraphicsBlocks.js:899 msgid "The Left block turns the mouse to the left." msgstr "" -#: js/GraphicsBlocks.js:906 +#: js/blocks/GraphicsBlocks.js:906 msgid "The Left block turns the turtle to the left." msgstr "" -#: js/GraphicsBlocks.js:915 +#: js/blocks/GraphicsBlocks.js:915 msgid "left1" msgstr "" -#: js/GraphicsBlocks.js:915 +#: js/blocks/GraphicsBlocks.js:915 #: plugins/rodi.rtp:79 #: plugins/rodi.rtp:339 #: plugins/rodi.rtp:362 msgid "left" msgstr "na man robes" -#: js/GraphicsBlocks.js:967 -#: js/temperament.js:734 -#: js/temperament.js:933 +#: js/blocks/GraphicsBlocks.js:967 +#: js/widgets/temperament.js:875 +#: js/widgets/temperament.js:1078 #: plugins/rodi.rtp:69 #: plugins/rodi.rtp:387 msgid "back" msgstr "bèk" -#: js/GraphicsBlocks.js:976 +#: js/blocks/GraphicsBlocks.js:976 msgid "The Back block moves the mouse backward." msgstr "" -#: js/GraphicsBlocks.js:983 +#: js/blocks/GraphicsBlocks.js:983 msgid "The Back block moves the turtle backward." msgstr "" -#: js/GraphicsBlocks.js:1050 +#: js/blocks/GraphicsBlocks.js:1050 #: plugins/rodi.rtp:71 #: plugins/rodi.rtp:400 msgid "forward" msgstr "dilanti" -#: js/GraphicsBlocks.js:1059 +#: js/blocks/GraphicsBlocks.js:1059 msgid "The Forward block moves the mouse forward." msgstr "" -#: js/GraphicsBlocks.js:1066 +#: js/blocks/GraphicsBlocks.js:1066 msgid "The Forward block moves the turtle forward." msgstr "" -#: js/GraphicsBlocks.js:1154 -#: js/GraphicsBlocks.js:1172 +#: js/blocks/GraphicsBlocks.js:1154 +#: js/blocks/GraphicsBlocks.js:1172 msgid "wrap" msgstr "" -#: js/OrnamentBlocks.js:32 -msgid "staccato factor" -msgstr "" - -#: js/OrnamentBlocks.js:108 -msgid "slur factor" -msgstr "" - -#: js/OrnamentBlocks.js:217 -#: js/OrnamentBlocks.js:309 -#.TRANS: the neighbor refers to a neighboring note, e.g., D is a neighbor of C -msgid "neighbor" -msgstr "" - -#: js/OrnamentBlocks.js:293 -msgid "The Neighbor block rapidly switches between neighboring pitches." -msgstr "" - -#: js/OrnamentBlocks.js:364 -msgid "glide" -msgstr "" - -#: js/OrnamentBlocks.js:479 -#: js/OrnamentBlocks.js:643 -msgid "slur" -msgstr "" - -#: js/OrnamentBlocks.js:558 -#: js/OrnamentBlocks.js:710 -#.TRANS: play each note sharply detached from the others -msgid "staccato" -msgstr "" - -#: js/PenBlocks.js:24 +#: js/blocks/PenBlocks.js:30 msgid "purple" msgstr "" -#: js/PenBlocks.js:37 -#: js/SensorsBlocks.js:521 -#: plugins/rodi.rtp:219 -msgid "blue" -msgstr "" - -#: js/PenBlocks.js:50 -#: js/SensorsBlocks.js:577 -#: plugins/rodi.rtp:218 -msgid "green" -msgstr "" - -#: js/PenBlocks.js:63 +#: js/blocks/PenBlocks.js:80 msgid "yellow" msgstr "" -#: js/PenBlocks.js:76 +#: js/blocks/PenBlocks.js:96 #: plugins/nutrition.rtp:164 msgid "orange" msgstr "oraño" -#: js/PenBlocks.js:89 -#: js/SensorsBlocks.js:633 -#: plugins/rodi.rtp:217 -msgid "red" -msgstr "" - -#: js/PenBlocks.js:102 +#: js/blocks/PenBlocks.js:128 msgid "white" msgstr "" -#: js/PenBlocks.js:115 +#: js/blocks/PenBlocks.js:144 msgid "black" msgstr "" -#: js/PenBlocks.js:128 +#: js/blocks/PenBlocks.js:163 msgid "begin fill" msgstr "" -#: js/PenBlocks.js:143 +#: js/blocks/PenBlocks.js:190 msgid "end fill" msgstr "stòp yenamentu" -#: js/PenBlocks.js:159 -#: js/PenBlocks.js:386 +#: js/blocks/PenBlocks.js:212 +#: js/blocks/PenBlocks.js:560 #.TRANS: set the background color msgid "background" msgstr "" -#: js/PenBlocks.js:206 -#: js/DictActions.js:71 -#: js/DictActions.js:149 -#: js/DictActions.js:186 +#: js/blocks/PenBlocks.js:274 +#: js/turtleactions/DictActions.js:71 +#: js/turtleactions/DictActions.js:138 +#: js/turtleactions/DictActions.js:170 msgid "grey" msgstr "" -#: js/PenBlocks.js:210 +#: js/blocks/PenBlocks.js:282 msgid "The Grey block returns the current pen grey value." msgstr "" -#: js/PenBlocks.js:243 -#: js/DictActions.js:69 -#: js/DictActions.js:147 -#: js/DictActions.js:185 +#: js/blocks/PenBlocks.js:340 +#: js/turtleactions/DictActions.js:69 +#: js/turtleactions/DictActions.js:136 +#: js/turtleactions/DictActions.js:169 msgid "shade" msgstr "tono" -#: js/PenBlocks.js:247 +#: js/blocks/PenBlocks.js:347 msgid "The Shade block returns the current pen shade value." msgstr "" -#: js/PenBlocks.js:280 -#: js/DictActions.js:67 -#: js/DictActions.js:145 -#: js/DictActions.js:184 +#: js/blocks/PenBlocks.js:405 +#: js/turtleactions/DictActions.js:67 +#: js/turtleactions/DictActions.js:134 +#: js/turtleactions/DictActions.js:168 msgid "color" msgstr "koló" -#: js/PenBlocks.js:285 +#: js/blocks/PenBlocks.js:415 msgid "The Color block returns the current pen color." msgstr "" -#: js/PenBlocks.js:318 -#: js/DictActions.js:73 -#: js/DictActions.js:151 -#: js/DictActions.js:187 +#: js/blocks/PenBlocks.js:470 +#: js/turtleactions/DictActions.js:73 +#: js/turtleactions/DictActions.js:140 +#: js/turtleactions/DictActions.js:171 msgid "pen size" msgstr "tamaño di pèn" -#: js/PenBlocks.js:322 +#: js/blocks/PenBlocks.js:474 msgid "The Pen size block returns the current pen size value." msgstr "" -#: js/PenBlocks.js:355 +#: js/blocks/PenBlocks.js:513 msgid "set font" msgstr "" -#: js/PenBlocks.js:358 +#: js/blocks/PenBlocks.js:518 msgid "The Set font block sets the font used by the Show block." msgstr "" -#: js/PenBlocks.js:391 +#: js/blocks/PenBlocks.js:567 msgid "The Background block sets the window background color." msgstr "" -#: js/PenBlocks.js:408 +#: js/blocks/PenBlocks.js:598 msgid "The Hollow line block creates a line with a hollow center." msgstr "" -#: js/PenBlocks.js:415 +#: js/blocks/PenBlocks.js:606 #.TRANS: draw a line logo has a hollow space down its center msgid "hollow line" msgstr "" -#: js/PenBlocks.js:462 +#: js/blocks/PenBlocks.js:675 msgid "The Fill block fills in a shape with a color." msgstr "" -#: js/PenBlocks.js:470 +#: js/blocks/PenBlocks.js:684 #.TRANS: fill in as a solid color msgid "fill" msgstr "" -#: js/PenBlocks.js:527 +#: js/blocks/PenBlocks.js:761 #.TRANS: raise up the pen so logo it does not draw when it is moved msgid "pen up" msgstr "Pen ariba" -#: js/PenBlocks.js:532 +#: js/blocks/PenBlocks.js:768 msgid "The Pen-up block raises the pen so that it does not draw." msgstr "" -#: js/PenBlocks.js:552 +#: js/blocks/PenBlocks.js:802 #.TRANS: put down the pen so logo it draws when it is moved msgid "pen down" msgstr "pen abou" -#: js/PenBlocks.js:557 +#: js/blocks/PenBlocks.js:810 msgid "The Pen-down block lowers the pen so that it draws." msgstr "" -#: js/PenBlocks.js:577 +#: js/blocks/PenBlocks.js:844 #.TRANS: set the width of the line drawn by the pen msgid "set pen size" msgstr "instala tamánjo di pen" -#: js/PenBlocks.js:583 +#: js/blocks/PenBlocks.js:854 msgid "The Set-pen-size block changes the size of the pen." msgstr "" -#: js/PenBlocks.js:623 +#: js/blocks/PenBlocks.js:913 #.TRANS: set degree of translucence of the pen color msgid "set translucency" msgstr "" -#: js/PenBlocks.js:627 +#: js/blocks/PenBlocks.js:921 msgid "The Set translucency block changes the opacity of the pen." msgstr "" -#: js/PenBlocks.js:668 +#: js/blocks/PenBlocks.js:981 msgid "set hue" msgstr "" -#: js/PenBlocks.js:672 +#: js/blocks/PenBlocks.js:989 msgid "The Set hue block changes the color of the pen." msgstr "" -#: js/PenBlocks.js:711 +#: js/blocks/PenBlocks.js:1047 msgid "set shade" msgstr "instala sombra" -#: js/PenBlocks.js:717 +#: js/blocks/PenBlocks.js:1057 msgid "The Set-shade block changes the pen color from dark to light." msgstr "" -#: js/PenBlocks.js:757 +#: js/blocks/PenBlocks.js:1111 #.TRANS: set the level of vividness of the pen color msgid "set grey" msgstr "" -#: js/PenBlocks.js:761 +#: js/blocks/PenBlocks.js:1119 msgid "The Set grey block changes the vividness of the pen color." msgstr "" -#: js/PenBlocks.js:800 +#: js/blocks/PenBlocks.js:1172 msgid "set color" msgstr "fiha koló" -#: js/PenBlocks.js:806 +#: js/blocks/PenBlocks.js:1182 msgid "The Set-color block changes the pen color." msgstr "" -#: js/VolumeBlocks.js:35 -msgid "synth volume" -msgstr "" - -#: js/VolumeBlocks.js:39 -msgid "The Synth volume block returns the current volume of the current synthesizer." -msgstr "" - -#: js/VolumeBlocks.js:47 -#: js/musicutils.js:730 -#: js/synthutils.js:56 -#.TRANS: musical instrument -msgid "piano" -msgstr "" - -#: js/VolumeBlocks.js:105 -msgid "master volume" -msgstr "" - -#: js/VolumeBlocks.js:109 -msgid "The Master volume block returns the master volume." -msgstr "" - -#: js/VolumeBlocks.js:355 -#: js/VolumeBlocks.js:524 -msgid "set synth volume" -msgstr "" - -#: js/VolumeBlocks.js:362 -#: js/VolumeBlocks.js:545 -msgid "synth" -msgstr "" - -#: js/VolumeBlocks.js:403 -#: js/VolumeBlocks.js:577 -#: js/VolumeBlocks.js:740 -#: js/VolumeActions.js:173 -msgid "Setting volume to 0." -msgstr "" - -#: js/VolumeBlocks.js:440 -msgid "Synth not found" -msgstr "" - -#: js/VolumeBlocks.js:494 -msgid "set drum volume" -msgstr "" - -#: js/VolumeBlocks.js:530 -msgid "The Set synth volume block will change the volume of a particular synth," -msgstr "" - -#: js/VolumeBlocks.js:532 -msgid "eg guitar violin snare drum etc." -msgstr "" - -#: js/VolumeBlocks.js:534 -msgid "The default volume is 50." -msgstr "" - -#: js/VolumeBlocks.js:536 -msgid "The range is 0 for silence to 100 for full volume." -msgstr "" - -#: js/VolumeBlocks.js:597 -msgid "set panning" -msgstr "" - -#: js/VolumeBlocks.js:603 -msgid "The Set Panning block sets the panning for all synthesizers." -msgstr "" - -#: js/VolumeBlocks.js:625 -msgid "Warning: Sound is coming out from only the left or right side." -msgstr "" - -#: js/VolumeBlocks.js:647 -#: js/VolumeBlocks.js:695 -msgid "set master volume" -msgstr "" - -#: js/VolumeBlocks.js:653 -msgid "The Set master volume block sets the volume for all synthesizers." -msgstr "" - -#: js/VolumeBlocks.js:784 -msgid "The Set relative volume block changes the volume of the contained notes." -msgstr "" - -#: js/VolumeBlocks.js:791 -msgid "set relative volume" -msgstr "" - -#: js/VolumeBlocks.js:857 -msgid "decrescendo" -msgstr "" - -#: js/VolumeBlocks.js:921 -msgid "crescendo" -msgstr "" - -#: js/ToneBlocks.js:34 -msgid "oscillator" -msgstr "" - -#: js/ToneBlocks.js:44 -#: js/timbre.js:1562 -#.TRANS: Partials refers to the number of sine waves combined into the sound. -msgid "partials" -msgstr "" - -#: js/ToneBlocks.js:76 -msgid "You are adding multiple oscillator blocks." -msgstr "" - -#: js/ToneBlocks.js:144 -#: js/timbre.js:1225 -#.TRANS: a duo synthesizer combines a synth with a sequencer -msgid "duo synth" -msgstr "" - -#: js/ToneBlocks.js:149 -msgid "The Duo synth block is a duo-frequency modulator used to define a timbre." -msgstr "" - -#: js/ToneBlocks.js:157 -#: js/timbre.js:1476 -msgid "vibrato rate" -msgstr "" - -#: js/ToneBlocks.js:157 -msgid "vibrato intensity" -msgstr "" - -#: js/ToneBlocks.js:185 -#: js/timbre.js:1221 -#.TRANS: AM (amplitude modulation) synthesizer -msgid "AM synth" -msgstr "" - -#: js/ToneBlocks.js:189 -msgid "The AM synth block is an amplitude modulator used to define a timbre." -msgstr "" - -#: js/ToneBlocks.js:224 -#: js/timbre.js:1223 -#.TRANS: FM (frequency modulation) synthesizer -msgid "FM synth" +#: js/blocks/PitchBlocks.js:141 +#.TRANS: musical transposition (adjustment of pitch up or down) +msgid "transposition" msgstr "" -#: js/ToneBlocks.js:228 -msgid "The FM synth block is a frequency modulator used to define a timbre." +#: js/blocks/PitchBlocks.js:168 +#.TRANS: step down one note in current musical scale +msgid "scalar step down" msgstr "" -#: js/ToneBlocks.js:262 -msgid "partial" +#: js/blocks/PitchBlocks.js:172 +msgid "The Scalar step down block returns the number of semi-tones down to the previous note in the current key and mode." msgstr "" -#: js/ToneBlocks.js:265 -msgid "The Partial block is used to specify a weight for a specific partial harmonic." +#: js/blocks/PitchBlocks.js:190 +#.TRANS: step up one note in current musical scale +msgid "scalar step up" msgstr "" -#: js/ToneBlocks.js:284 -#.TRANS: partials are weighted components in a harmonic series -msgid "Partial weight must be between 0 and 1." +#: js/blocks/PitchBlocks.js:194 +msgid "The Scalar step up block returns the number of semi-tones up to the next note in the current key and mode." msgstr "" -#: js/ToneBlocks.js:297 -#.TRANS: partials are weighted components in a harmonic series -msgid "Partial block should be used inside of a Weighted-partials block." +#: js/blocks/PitchBlocks.js:212 +#.TRANS: the change measured in half-steps between the current pitch and the previous pitch +msgid "change in pitch" msgstr "" -#: js/ToneBlocks.js:325 -#.TRANS: partials are weighted components in a harmonic series -msgid "weighted partials" +#: js/blocks/PitchBlocks.js:216 +msgid "The Change in pitch block is the difference (in half steps) between the current pitch being played and the previous pitch played." msgstr "" -#: js/ToneBlocks.js:383 -msgid "The Harmonic block will add harmonics to the contained notes." +#: js/blocks/PitchBlocks.js:243 +#.TRANS: the change measured in scale-steps between the current pitch and the previous pitch +msgid "scalar change in pitch" msgstr "" -#: js/ToneBlocks.js:390 -#.TRANS: A harmonic is an overtone. -msgid "harmonic" +#: js/blocks/PitchBlocks.js:250 +#: js/blocks/PitchBlocks.js:432 +#: js/blocks/PitchBlocks.js:1667 +#: js/turtleactions/DictActions.js:89 +#: js/widgets/temperament.js:610 +#: js/widgets/temperament.js:614 +#: js/widgets/temperament.js:855 +#.TRANS: convert current note to piano key (1-88) +#.TRANS: a mapping of pitch to the 88 piano keys +msgid "pitch number" msgstr "" -#: js/ToneBlocks.js:431 -msgid "The Distortion block adds distortion to the pitch." +#: js/blocks/PitchBlocks.js:256 +msgid "The Pitch number block is the value of the pitch of the note currently being played." msgstr "" -#: js/ToneBlocks.js:438 -#: js/timbre.js:2100 -#.TRANS: distortion is an alteration in the sound -msgid "distortion" +#: js/blocks/PitchBlocks.js:329 +#: js/blocks/PitchBlocks.js:433 +#.TRANS: the current pitch expressed in Hertz +msgid "pitch in hertz" msgstr "" -#: js/ToneBlocks.js:487 -msgid "The Tremolo block adds a wavering effect." +#: js/blocks/PitchBlocks.js:334 +msgid "The Pitch in Hertz block is the value in Hertz of the pitch of the note currently being played." msgstr "" -#: js/ToneBlocks.js:495 -#: js/timbre.js:2092 -#.TRANS: a wavering effect in a musical tone -msgid "tremolo" +#: js/blocks/PitchBlocks.js:367 +#: js/turtleactions/DictActions.js:87 +msgid "current pitch" msgstr "" -#: js/ToneBlocks.js:500 -#: js/ToneBlocks.js:569 -#: js/ToneBlocks.js:630 -#: js/ToneBlocks.js:689 -#: js/timbre.js:2134 -#: js/timbre.js:2222 -#: js/timbre.js:2317 -#: js/timbre.js:2419 -#.TRANS: rate at which tremolo wavers -msgid "rate" +#: js/blocks/PitchBlocks.js:373 +msgid "The Current Pitch block is used with the Pitch Converter block. In the example above, current pitch, sol 4, is displayed as 392 hertz." msgstr "" -#: js/ToneBlocks.js:502 -#: js/ToneBlocks.js:630 -#: js/timbre.js:2137 -#: js/timbre.js:2328 -#.TRANS: amplitude of tremolo waver -msgid "depth" +#: js/blocks/PitchBlocks.js:410 +msgid "This block converts the pitch value of the last note played into different formats such as hertz, letter name, pitch number, et al." msgstr "" -#: js/ToneBlocks.js:559 -msgid "The Phaser block adds a sweeping sound." +#: js/blocks/PitchBlocks.js:434 +msgid "alphabet" msgstr "" -#: js/ToneBlocks.js:566 -#: js/timbre.js:2098 -#.TRANS: alter the phase of the sound -msgid "phaser" +#: js/blocks/PitchBlocks.js:436 +#.TRANS: Translate as "alphabet class" +msgid "letter class" msgstr "" -#: js/ToneBlocks.js:569 -#: js/timbre.js:2422 -msgid "octaves" +#: js/blocks/PitchBlocks.js:437 +msgid "solfege class" msgstr "" -#: js/ToneBlocks.js:569 -#: js/timbre.js:2425 -msgid "base frequency" +#: js/blocks/PitchBlocks.js:438 +msgid "staff y" msgstr "" -#: js/ToneBlocks.js:619 -msgid "The Chorus block adds a chorus effect." +#: js/blocks/PitchBlocks.js:439 +msgid "solfege syllable" msgstr "" -#: js/ToneBlocks.js:627 -#: js/timbre.js:2096 -#.TRANS: musical effect to simulate a choral sound -msgid "chorus" +#: js/blocks/PitchBlocks.js:440 +msgid "pitch class" msgstr "" -#: js/ToneBlocks.js:630 -msgid "delay" +#: js/blocks/PitchBlocks.js:441 +msgid "scalar class" msgstr "" -#: js/ToneBlocks.js:678 -msgid "The Vibrato block adds a rapid, slight variation in pitch." +#: js/blocks/PitchBlocks.js:443 +msgid "nth degree" msgstr "" -#: js/ToneBlocks.js:686 -#: js/timbre.js:2094 -#.TRANS: a rapid, slight variation in pitch -msgid "vibrato" +#: js/blocks/PitchBlocks.js:444 +msgid "pitch to shade" msgstr "" -#: js/ToneBlocks.js:689 -#: js/timbre.js:2221 -msgid "intensity" +#: js/blocks/PitchBlocks.js:445 +msgid "pitch to color" msgstr "" -#: js/ToneBlocks.js:733 -#.TRANS: select synthesizer -msgid "set synth" +#: js/blocks/PitchBlocks.js:629 +#: js/widgets/musickeyboard.js:735 +#.TRANS: MIDI is a technical standard for electronic music +msgid "MIDI" msgstr "" -#: js/ToneBlocks.js:804 -msgid "synth name" +#: js/blocks/PitchBlocks.js:642 +#.TRANS: set an offset associated with the numeric piano keyboard mapping +msgid "set pitch number offset" msgstr "" -#: js/ToneBlocks.js:842 -msgid "set default instrument" +#: js/blocks/PitchBlocks.js:645 +msgid "The Set pitch number offset block is used to set the offset for mapping pitch numbers to pitch and octave." msgstr "" -#: js/ToneBlocks.js:895 -#: js/ToneBlocks.js:943 -#.TRANS: set the characteristics of a custom instrument -msgid "set instrument" +#: js/blocks/PitchBlocks.js:679 +#.TRANS: convert piano key number (1-88) to pitch +msgid "number to pitch" msgstr "" -#: js/ToneBlocks.js:898 -#: js/ToneBlocks.js:926 -#: js/ToneBlocks.js:932 -msgid "The Set instrument block selects a voice for the synthesizer," +#: js/blocks/PitchBlocks.js:682 +msgid "The Number to pitch block will convert a pitch number to a pich name." msgstr "" -#: js/ToneBlocks.js:900 -#: js/ToneBlocks.js:934 -msgid "eg guitar piano violin or cello." +#: js/blocks/PitchBlocks.js:715 +#.TRANS: convert piano key number (1-88) to octave +msgid "number to octave" msgstr "" -#: js/ToneBlocks.js:1015 -msgid "Import a sound file to use as an instrument and set its pitch center." +#: js/blocks/PitchBlocks.js:717 +msgid "The Number to octave block will convert a pitch number to an octave." msgstr "" -#: js/ToneBlocks.js:1110 -msgid "Upload a sound file to connect with the sample block." +#: js/blocks/PitchBlocks.js:726 +msgid "y to pitch" msgstr "" -#: js/MeterBlocks.js:34 -#.TRANS: musical meter (time signature), e.g., 4:4 -msgid "current meter" +#: js/blocks/PitchBlocks.js:729 +msgid "Y to pitch block will convert a staff y position to corresponding pitch notation." msgstr "" -#: js/MeterBlocks.js:85 -#.TRANS: number of beats per minute -msgid "beat factor" +#: js/blocks/PitchBlocks.js:841 +msgid "accidental selector" msgstr "" -#: js/MeterBlocks.js:161 -msgid "The Beats per minute block returns the current beats per minute." +#: js/blocks/PitchBlocks.js:844 +msgid "The Accidental selector block is used to choose between double-sharp, sharp, natural, flat, and double-flat." msgstr "" -#: js/MeterBlocks.js:169 -#: js/status.js:152 -#.TRANS: number of beats played per minute -msgid "beats per minute2" +#: js/blocks/PitchBlocks.js:858 +msgid "Pitch can be specified in terms of ni dha pa ma ga re sa." msgstr "" -#: js/MeterBlocks.js:169 -#: js/MeterBlocks.js:1056 -#: js/MeterBlocks.js:1133 -#: js/MeterBlocks.js:1211 -#.TRANS: sets tempo by defining a beat and beats per minute -msgid "beats per minute" +#: js/blocks/PitchBlocks.js:872 +msgid "Pitch can be specified in terms of C D E F G A B." msgstr "" -#: js/MeterBlocks.js:233 -#.TRANS: count of current musical measure in meter -msgid "measure count" +#: js/blocks/PitchBlocks.js:884 +msgid "solfege" msgstr "" -#: js/MeterBlocks.js:241 -msgid "The Measure count block returns the current measure." +#: js/blocks/PitchBlocks.js:887 +msgid "Pitch can be specified in terms of do re mi fa sol la ti." msgstr "" -#: js/MeterBlocks.js:290 -#.TRANS: count of current beat in the meter -msgid "beat count" +#: js/blocks/PitchBlocks.js:922 +msgid "The Invert block rotates any contained notes around a target note." msgstr "" -#: js/MeterBlocks.js:300 -#: js/MeterBlocks.js:311 -#: js/MeterBlocks.js:565 -#: js/MeterBlocks.js:576 -msgid "The Beat count block is the number of the current beat," +#: js/blocks/PitchBlocks.js:929 +#.TRANS: pitch inversion rotates a pitch around another pitch +msgid "invert" msgstr "" -#: js/MeterBlocks.js:313 -#: js/MeterBlocks.js:578 -msgid "eg 1, 2, 3, or 4." +#: js/blocks/PitchBlocks.js:968 +#.TRANS: pitch inversion rotates a pitch around another pitch (odd number) +msgid "invert (odd)" msgstr "" -#: js/MeterBlocks.js:368 -#.TRANS: count the number of notes -msgid "sum note values" +#: js/blocks/PitchBlocks.js:1001 +#.TRANS: pitch inversion rotates a pitch around another pitch (even number) +msgid "invert (even)" msgstr "" -#: js/MeterBlocks.js:376 -#: js/MeterBlocks.js:440 -msgid "The Note counter block can be used to count the number of contained notes." +#: js/blocks/PitchBlocks.js:1022 +#.TRANS: register is the octave of the current pitch +msgid "register" msgstr "" -#: js/MeterBlocks.js:432 -#.TRANS: count the number of notes -msgid "note counter" +#: js/blocks/PitchBlocks.js:1026 +msgid "The Register block provides an easy way to modify the register (octave) of the notes that follow it." msgstr "" -#: js/MeterBlocks.js:496 -#.TRANS: number of whole notes that have been played -msgid "whole notes played" +#: js/blocks/PitchBlocks.js:1047 +#.TRANS: cents are units used to specify the ratio between pitches. There are 100 cents between successive notes. +msgid "50 cents" msgstr "" -#: js/MeterBlocks.js:505 -msgid "The Whole notes played block returns the total number of whole notes played." +#: js/blocks/PitchBlocks.js:1102 +msgid "The Semi-tone transposition block will shift the pitches contained inside Note blocks up (or down) by half steps." msgstr "" -#: js/MeterBlocks.js:555 -#: js/DictActions.js:83 -#.TRANS: number of notes that have been played -msgid "notes played" +#: js/blocks/PitchBlocks.js:1104 +msgid "In the example shown above, sol is shifted up to sol#." msgstr "" -#: js/MeterBlocks.js:653 -msgid "The No clock block decouples the notes from the master clock." +#: js/blocks/PitchBlocks.js:1110 +#.TRANS: adjust the amount of shift (up or down) of a pitch +msgid "semi-tone transpose" msgstr "" -#: js/MeterBlocks.js:661 -#.TRANS: don't lock notes to master clock -msgid "no clock" +#: js/blocks/PitchBlocks.js:1143 +msgid "The Transpose by Ratio block will shift the pitches contained inside Note blocks up (or down) by a ratio" msgstr "" -#: js/MeterBlocks.js:700 -msgid "on weak beat do" +#: js/blocks/PitchBlocks.js:1149 +#.TRANS: adjust the amount of shift (up or down) of a pitch +msgid "transpose by ratio" msgstr "" -#: js/MeterBlocks.js:705 -msgid "The On-weak-beat block lets you specify actions to take on weak (off) beats." +#: js/blocks/PitchBlocks.js:1232 +#.TRANS: down sixth means the note is five scale degrees below current note +msgid "down sixth" msgstr "" -#: js/MeterBlocks.js:750 -msgid "on strong beat" +#: js/blocks/PitchBlocks.js:1251 +#.TRANS: down third means the note is two scale degrees below current note +msgid "down third" msgstr "" -#: js/MeterBlocks.js:758 -msgid "The On-strong-beat block lets you specify actions to take on specified beats." +#: js/blocks/PitchBlocks.js:1270 +#.TRANS: seventh means the note is the six scale degrees above current note +msgid "seventh" msgstr "" -#: js/MeterBlocks.js:769 -msgid "beat" +#: js/blocks/PitchBlocks.js:1289 +#.TRANS: sixth means the note is the five scale degrees above current note +msgid "sixth" msgstr "" -#: js/MeterBlocks.js:813 -msgid "on every beat do" +#: js/blocks/PitchBlocks.js:1308 +#.TRANS: fifth means the note is the four scale degrees above current note +msgid "fifth" msgstr "" -#: js/MeterBlocks.js:821 -msgid "The On-every-beat block lets you specify actions to take on every beat." +#: js/blocks/PitchBlocks.js:1328 +#.TRANS: fourth means the note is three scale degrees above current note +msgid "fourth" msgstr "" -#: js/MeterBlocks.js:874 -msgid "on every note do" +#: js/blocks/PitchBlocks.js:1347 +#.TRANS: third means the note is two scale degrees above current note +msgid "third" msgstr "" -#: js/MeterBlocks.js:882 -msgid "The On-every-note block lets you specify actions to take on every note." +#: js/blocks/PitchBlocks.js:1366 +#.TRANS: second means the note is one scale degree above current note +msgid "second" msgstr "" -#: js/MeterBlocks.js:928 -#: js/MeterBlocks.js:999 -#.TRANS: sets tempo by defining a beat and beats per minute -msgid "master beats per minute" +#: js/blocks/PitchBlocks.js:1407 +msgid "The Scalar transposition block will shift the pitches contained inside Note blocks up (or down) the scale." msgstr "" -#: js/MeterBlocks.js:952 -#: js/MeterBlocks.js:1078 -#: js/MeterBlocks.js:1135 -msgid "bpm" +#: js/blocks/PitchBlocks.js:1409 +msgid "In the example shown above, sol is shifted up to la." msgstr "" -#: js/MeterBlocks.js:952 -#: js/MeterBlocks.js:1078 -#: js/MeterBlocks.js:1135 -msgid "beat value" +#: js/blocks/PitchBlocks.js:1416 +#.TRANS: adjust the amount of shift (up or down) of a pitch by musical scale (scalar) steps +msgid "scalar transpose" msgstr "" -#: js/MeterBlocks.js:1024 -#: js/MeterBlocks.js:1167 -#: js/MeterBlocks.js:1241 -msgid "Beats per minute must be > 30." +#: js/blocks/PitchBlocks.js:1451 +msgid "The Accidental block is used to create sharps and flats" msgstr "" -#: js/MeterBlocks.js:1027 -#: js/MeterBlocks.js:1170 -#: js/MeterBlocks.js:1244 -msgid "Maximum beats per minute is 1000." +#: js/blocks/PitchBlocks.js:1458 +#.TRANS: An accidental is a modification to a pitch, e.g., sharp or flat. +msgid "accidental override" msgstr "" -#: js/MeterBlocks.js:1068 -msgid "The Beats per minute block sets the number of 1/4 notes per minute." +#: js/blocks/PitchBlocks.js:1581 +msgid "The Hertz block (in combination with a Number block) will play a sound at the specified frequency." msgstr "" -#: js/MeterBlocks.js:1279 -#.TRANS: anacrusis -msgid "pickup" +#: js/blocks/PitchBlocks.js:1671 +msgid "The Pitch Number block will play a pitch associated by its number, e.g. 0 for C and 7 for G." msgstr "" -#: js/MeterBlocks.js:1367 -msgid "number of beats" +#: js/blocks/PitchBlocks.js:1703 +#: js/blocks/PitchBlocks.js:1745 +#.TRANS: a numeric mapping of the notes in an octave based on the musical mode +#.TRANS: a numeric mapping of the notes in an octave based on the musical mode +msgid "nth modal pitch" msgstr "" -#: js/DictBlocks.js:77 -msgid "show dictionary" +#: js/blocks/PitchBlocks.js:1706 +msgid "n^th Modal Pitch takes the pattern of pitches in semitones for a mode and makes each point a degree of the mode," msgstr "" -#: js/DictBlocks.js:129 -msgid "The Dictionary block returns a dictionary." +#: js/blocks/PitchBlocks.js:1708 +msgid "starting from 1 and regardless of tonal framework (i.e. not always 8 notes in the octave)" msgstr "" -#: js/DictBlocks.js:197 -#: js/DictBlocks.js:339 -msgid "The Get-dict block returns a value in the dictionary for a specified key." +#: js/blocks/PitchBlocks.js:1749 +msgid "N^th Modal Pitch takes a number as an input as the n^th degree for the given mode. 0 is the first position, 1 is the second, -1 is the note before the first etc." msgstr "" -#: js/DictBlocks.js:212 -#: js/DictBlocks.js:354 -#.TRANS: retrieve a value from the dictionary with a given key -msgid "get value" +#: js/blocks/PitchBlocks.js:1751 +msgid "The pitches change according to the mode specified without any need for respellings." msgstr "" -#: js/DictBlocks.js:215 -#: js/DictBlocks.js:216 -#: js/DictBlocks.js:289 -#: js/DictBlocks.js:290 -#: js/DictBlocks.js:357 -#: js/DictBlocks.js:430 -#: js/DictBlocks.js:431 -msgid "key2" +#: js/blocks/PitchBlocks.js:1790 +msgid "Scale Degree is a common convention in music. Scale Degree offers seven possible positions in the scale (1-7) and can be modified via accidentals." msgstr "" -#: js/DictBlocks.js:271 -#: js/DictBlocks.js:411 -msgid "The Set-dict block sets a value in the dictionary for a specified key." +#: js/blocks/PitchBlocks.js:1792 +msgid "Scale Degree 1 is always the first pitch in a given scale, regardless of octave." msgstr "" -#: js/DictBlocks.js:286 -#: js/DictBlocks.js:427 -#.TRANS: set a value in the dictionary for a given key -msgid "set value" +#: js/blocks/PitchBlocks.js:1814 +#.TRANS: step some number of notes in current musical scale +msgid "scalar step" msgstr "" -#: js/ExtrasBlocks.js:33 -msgid "fraction" +#: js/blocks/PitchBlocks.js:1819 +msgid "The Scalar Step block (in combination with a Number block) will play the next pitch in a scale," msgstr "" -#: js/ExtrasBlocks.js:36 -msgid "Convert a float to a fraction" +#: js/blocks/PitchBlocks.js:1821 +msgid "eg if the last note played was sol, Scalar Step 1 will play la." msgstr "" -#: js/ExtrasBlocks.js:93 -msgid "save as ABC" +#: js/blocks/PitchBlocks.js:1857 +msgid "The Pitch block specifies the pitch name and octave of a note that together determine the frequency of the note." msgstr "" -#: js/ExtrasBlocks.js:96 -#: js/ExtrasBlocks.js:132 -#: js/ExtrasBlocks.js:168 -msgid "title" +#: js/blocks/ProgramBlocks.js:33 +msgid "The Load-heap-from-app block loads the heap from a web page." msgstr "" -#: js/ExtrasBlocks.js:129 -msgid "save as Lilypond" +#: js/blocks/ProgramBlocks.js:44 +#.TRANS: load the heap contents from a URL +msgid "load heap from App" msgstr "" -#: js/ExtrasBlocks.js:165 -msgid "save as SVG" +#: js/blocks/ProgramBlocks.js:95 +msgid "Error parsing JSON data:" msgstr "" -#: js/ExtrasBlocks.js:216 -msgid "no background" +#: js/blocks/ProgramBlocks.js:100 +msgid "404: Page not found" msgstr "" -#: js/ExtrasBlocks.js:219 -msgid "The No background block eliminates the background from the saved SVG output." +#: js/blocks/ProgramBlocks.js:133 +msgid "The Save-heap-to-app block saves the heap to a web page." msgstr "" -#: js/ExtrasBlocks.js:247 -msgid "show blocks" -msgstr "Mustra blòkinan" - -#: js/ExtrasBlocks.js:249 -msgid "The Show blocks block shows the blocks." +#: js/blocks/ProgramBlocks.js:144 +#.TRANS: save the heap contents to a URL +msgid "save heap to App" msgstr "" -#: js/ExtrasBlocks.js:274 -msgid "hide blocks" -msgstr "skonde blòkinan" - -#: js/ExtrasBlocks.js:276 -msgid "The Hide blocks block hides the blocks." +#: js/blocks/ProgramBlocks.js:189 +msgid "Cannot find a valid heap for" msgstr "" -#: js/ExtrasBlocks.js:305 -#: js/ExtrasBlocks.js:335 -msgid "The Space block is used to add space between blocks." +#: js/blocks/ProgramBlocks.js:206 +msgid "The Load-heap block loads the heap from a file." msgstr "" -#: js/ExtrasBlocks.js:373 -msgid "wait" -msgstr "warda" +#: js/blocks/ProgramBlocks.js:217 +#.TRANS: load the heap from a file +msgid "load heap" +msgstr "" -#: js/ExtrasBlocks.js:376 -msgid "The Wait block pauses the program for a specified number of seconds." +#: js/blocks/ProgramBlocks.js:270 +msgid "The file you selected does not contain a valid heap." msgstr "" -#: js/ExtrasBlocks.js:430 -#: plugins/facebook.rtp:30 -msgid "comment" -msgstr "komentario" +#: js/blocks/ProgramBlocks.js:275 +msgid "The loadHeap block needs a loadFile block." +msgstr "" -#: js/ExtrasBlocks.js:466 -msgid "print" -msgstr "prent" +#: js/blocks/ProgramBlocks.js:291 +msgid "The Set-heap block loads the heap." +msgstr "" -#: js/ExtrasBlocks.js:473 -msgid "The Print block displays text at the top of the screen." +#: js/blocks/ProgramBlocks.js:340 +msgid "The block you selected does not contain a valid heap." msgstr "" -#: js/ExtrasBlocks.js:579 -msgid "display grid" +#: js/blocks/ProgramBlocks.js:343 +msgid "The Set heap block needs a heap." msgstr "" -#: js/ExtrasBlocks.js:584 -msgid "The Display Grid Block changes the grid type" +#: js/blocks/ProgramBlocks.js:360 +msgid "The Load-dictionary block loads a dictionary from a file." msgstr "" -#: js/ExtrasBlocks.js:686 -#: js/ExtrasBlocks.js:705 -#: js/ExtrasBlocks.js:728 -#: js/ExtrasBlocks.js:751 -#: js/ExtrasBlocks.js:769 -#: js/ExtrasBlocks.js:788 -#: js/ExtrasBlocks.js:807 -#: js/ExtrasBlocks.js:826 -msgid "unknown" +#: js/blocks/ProgramBlocks.js:372 +#.TRANS: load a dictionary from a file +msgid "load dictionary" msgstr "" -#: js/SensorsBlocks.js:36 -msgid "The Input block prompts for keyboard input." +#: js/blocks/ProgramBlocks.js:390 +#: js/blocks/ProgramBlocks.js:658 +#: js/blocks/ToneBlocks.js:1025 +msgid "file" msgstr "" -#: js/SensorsBlocks.js:46 -msgid "input" +#: js/blocks/ProgramBlocks.js:444 +msgid "The file you selected does not contain a valid dictionary." msgstr "" -#: js/SensorsBlocks.js:64 -msgid "Input a value" +#: js/blocks/ProgramBlocks.js:449 +msgid "The load dictionary block needs a load file block." msgstr "" -#: js/SensorsBlocks.js:126 -msgid "input value" +#: js/blocks/ProgramBlocks.js:466 +msgid "The Set-dictionary block loads a dictionary." msgstr "" -#: js/SensorsBlocks.js:131 -msgid "The Input-value block stores the input." +#: js/blocks/ProgramBlocks.js:477 +#.TRANS: load a dictionary from a JSON +msgid "set dictionary" msgstr "" -#: js/SensorsBlocks.js:238 -msgid "loudness" -msgstr "volúmen" +#: js/blocks/ProgramBlocks.js:546 +msgid "The block you selected does not contain a valid dictionary." +msgstr "" -#: js/SensorsBlocks.js:245 -msgid "The Loudness block returns the volume detected by the microphone." +#: js/blocks/ProgramBlocks.js:550 +msgid "The set dictionary block needs a dictionary." msgstr "" -#: js/SensorsBlocks.js:300 -msgid "click" +#: js/blocks/ProgramBlocks.js:567 +msgid "The Save-heap block saves the heap to a file." msgstr "" -#: js/SensorsBlocks.js:306 -msgid "The Click block triggers an event if a mouse has been clicked." +#: js/blocks/ProgramBlocks.js:578 +#.TRANS: save the heap to a file +msgid "save heap" msgstr "" -#: js/SensorsBlocks.js:313 -msgid "The Click block triggers an event if a turtle has been clicked." +#: js/blocks/ProgramBlocks.js:629 +msgid "The Save-dictionary block saves a dictionary to a file." msgstr "" -#: js/SensorsBlocks.js:342 -msgid "cursor over" +#: js/blocks/ProgramBlocks.js:640 +#.TRANS: save a dictionary to a file +msgid "save dictionary" msgstr "" -#: js/SensorsBlocks.js:387 -msgid "cursor out" +#: js/blocks/ProgramBlocks.js:720 +msgid "The Open palette block opens a palette." msgstr "" -#: js/SensorsBlocks.js:433 -msgid "cursor button down" +#: js/blocks/ProgramBlocks.js:727 +msgid "open palette" msgstr "" -#: js/SensorsBlocks.js:477 -msgid "cursor button up" +#: js/blocks/ProgramBlocks.js:785 +msgid "The Delete block block removes a block." msgstr "" -#: js/SensorsBlocks.js:638 -msgid "The Get red block returns the red component of the pixel under the mouse." +#: js/blocks/ProgramBlocks.js:797 +#.TRANS: Move this block to the trash. +msgid "delete block" msgstr "" -#: js/SensorsBlocks.js:644 -msgid "The Get red block returns the red component of the pixel under the turtle." +#: js/blocks/ProgramBlocks.js:861 +msgid "The Move block block moves a block." msgstr "" -#: js/SensorsBlocks.js:685 -#: plugins/rodi.rtp:216 -msgid "pixel color" +#: js/blocks/ProgramBlocks.js:869 +#.TRANS: Move the position of a block on the screen. +msgid "move block" msgstr "" -#: js/SensorsBlocks.js:690 -msgid "The Get pixel block returns the color of the pixel under the mouse." +#: js/blocks/ProgramBlocks.js:881 +#: js/blocks/ProgramBlocks.js:1048 +msgid "block number" msgstr "" -#: js/SensorsBlocks.js:696 -msgid "The Get pixel block returns the color of the pixel under the turtle." +#: js/blocks/ProgramBlocks.js:935 +#.TRANS: Run program beginning at this block. +msgid "run block" msgstr "" -#: js/SensorsBlocks.js:758 -msgid "time" -msgstr "tempu" +#: js/blocks/ProgramBlocks.js:1025 +msgid "The Dock block block connections two blocks." +msgstr "" -#: js/SensorsBlocks.js:804 -msgid "cursor y" +#: js/blocks/ProgramBlocks.js:1036 +#.TRANS: We can connect a block to another block. +msgid "connect blocks" msgstr "" -#: js/SensorsBlocks.js:809 -msgid "The Cursor Y block returns the vertical position of the mouse." +#: js/blocks/ProgramBlocks.js:1048 +msgid "target block" msgstr "" -#: js/SensorsBlocks.js:845 -msgid "cursor x" +#: js/blocks/ProgramBlocks.js:1048 +msgid "connection number" msgstr "" -#: js/SensorsBlocks.js:850 -msgid "The Cursor X block returns the horizontal position of the mouse." +#: js/blocks/ProgramBlocks.js:1140 +msgid "The Make block block creates a new block." msgstr "" -#: js/SensorsBlocks.js:886 -msgid "mouse button" +#: js/blocks/ProgramBlocks.js:1152 +#.TRANS: Create a new block +msgid "make block" msgstr "" -#: js/SensorsBlocks.js:888 -msgid "The Mouse-button block returns True if the mouse button is pressed." +#: js/blocks/ProgramBlocks.js:1285 +msgid "Cannot find block" msgstr "" -#: js/SensorsBlocks.js:934 -msgid "to ASCII" +#: js/blocks/ProgramBlocks.js:1304 +#: js/blocks/ProgramBlocks.js:1313 +msgid "Warning: block argument type mismatch" msgstr "" -#: js/SensorsBlocks.js:938 -msgid "The To ASCII block converts numbers to letters." +#: js/blocks/ProgramBlocks.js:1347 +msgid "The Open project block is used to open a project from a web page." msgstr "" -#: js/SensorsBlocks.js:1005 -msgid "The Keyboard block returns computer keyboard input." +#: js/blocks/ProgramBlocks.js:1357 +msgid "open project" msgstr "" -#: js/IntervalsActions.js:216 -msgid "Adding missing pitch number 0." +#: js/blocks/ProgramBlocks.js:1410 +msgid "Please enter a valid URL." msgstr "" -#: js/IntervalsActions.js:224 -msgid "Ignoring pitch numbers less than zero or greater than eleven." +#: js/blocks/ToneBlocks.js:34 +msgid "oscillator" msgstr "" -#: js/IntervalsActions.js:230 -msgid "Ignoring duplicate pitch numbers." +#: js/blocks/ToneBlocks.js:42 +#: js/blocks/WidgetBlocks.js:179 +#: js/widgets/timbre.js:1558 +#: js/widgets/timbre.js:1808 +#.TRANS: there are different types (sine, triangle, square...) of oscillators. +#.TRANS: type of filter, e.g., lowpass, highpass, etc. +msgid "type" msgstr "" -#: js/PitchActions.js:88 -msgid "The Scalar Step Block must be used inside of a Note Block." +#: js/blocks/ToneBlocks.js:44 +#: js/widgets/timbre.js:1562 +#.TRANS: Partials refers to the number of sine waves combined into the sound. +msgid "partials" msgstr "" -#: js/PitchActions.js:107 -msgid "The Scalar Step Block must be preceded by a Pitch Block." +#: js/blocks/ToneBlocks.js:76 +msgid "You are adding multiple oscillator blocks." msgstr "" -#: js/DrumActions.js:231 -msgid "Noise Block: Did you mean to use a Note block?" +#: js/blocks/ToneBlocks.js:144 +#: js/widgets/timbre.js:1225 +#.TRANS: a duo synthesizer combines a synth with a sequencer +msgid "duo synth" msgstr "" -#: js/MeterActions.js:101 -#: js/MeterActions.js:139 -msgid "beats per minute must be greater than" +#: js/blocks/ToneBlocks.js:149 +msgid "The Duo synth block is a duo-frequency modulator used to define a timbre." msgstr "" -#: js/MeterActions.js:111 -#: js/MeterActions.js:149 -msgid "maximum" +#: js/blocks/ToneBlocks.js:157 +#: js/widgets/timbre.js:1476 +msgid "vibrato rate" msgstr "" -#: js/MeterActions.js:117 -#: js/MeterActions.js:155 -msgid "beats per minute is" +#: js/blocks/ToneBlocks.js:157 +msgid "vibrato intensity" msgstr "" -#: js/ToneActions.js:134 -msgid "Vibrato intensity must be between 1 and 100." +#: js/blocks/ToneBlocks.js:185 +#: js/widgets/timbre.js:1221 +#.TRANS: AM (amplitude modulation) synthesizer +msgid "AM synth" msgstr "" -#: js/ToneActions.js:139 -msgid "Vibrato rate must be greater than 0." +#: js/blocks/ToneBlocks.js:189 +msgid "The AM synth block is an amplitude modulator used to define a timbre." msgstr "" -#: js/ToneActions.js:192 -#: js/ToneActions.js:265 -#.TRANS: Depth is the intesity of the tremolo or chorus effect. -msgid "Depth is out of range." +#: js/blocks/ToneBlocks.js:224 +#: js/widgets/timbre.js:1223 +#.TRANS: FM (frequency modulation) synthesizer +msgid "FM synth" msgstr "" -#: js/ToneActions.js:301 -msgid "Distortion must be from 0 to 100." +#: js/blocks/ToneBlocks.js:228 +msgid "The FM synth block is a frequency modulator used to define a timbre." msgstr "" -#: js/ToneActions.js:332 -#.TRANS: partials components in a harmonic series -msgid "Partial must be greater than or equal to 0." +#: js/blocks/ToneBlocks.js:262 +msgid "partial" msgstr "" -#: js/ToneActions.js:378 -#: js/ToneActions.js:417 -#: js/ToneActions.js:456 -#: js/timbre.js:782 -msgid "Unable to use synth due to existing oscillator" +#: js/blocks/ToneBlocks.js:265 +msgid "The Partial block is used to specify a weight for a specific partial harmonic." msgstr "" -#: js/ToneActions.js:388 -#: js/ToneActions.js:427 -msgid "The input cannot be negative." +#: js/blocks/ToneBlocks.js:284 +#.TRANS: partials are weighted components in a harmonic series +msgid "Partial weight must be between 0 and 1." msgstr "" -#: js/DictActions.js:75 -#: js/DictActions.js:153 -#: js/DictActions.js:188 -msgid "font" +#: js/blocks/ToneBlocks.js:297 +#.TRANS: partials are weighted components in a harmonic series +msgid "Partial block should be used inside of a Weighted-partials block." msgstr "" -#: js/musicutils.js:363 -#: js/musicutils.js:471 -#: js/pitchdrummatrix.js:151 -#: js/musickeyboard.js:2563 -msgid "rest" +#: js/blocks/ToneBlocks.js:325 +#.TRANS: partials are weighted components in a harmonic series +msgid "weighted partials" msgstr "" -#: js/musicutils.js:565 -#.TRANS: ordinal number. Please keep exactly one space between each number. -msgid "1st 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th" +#: js/blocks/ToneBlocks.js:383 +msgid "The Harmonic block will add harmonics to the contained notes." msgstr "" -#: js/musicutils.js:629 -#: js/musicutils.js:812 -#: js/musicutils.js:911 -#.TRANS: augmented is a music term related to intervals -msgid "augmented" +#: js/blocks/ToneBlocks.js:390 +#.TRANS: A harmonic is an overtone. +msgid "harmonic" msgstr "" -#: js/musicutils.js:631 -#: js/musicutils.js:813 -#: js/musicutils.js:910 -#.TRANS: diminished is a music term related to intervals and mode -msgid "diminished" +#: js/blocks/ToneBlocks.js:431 +msgid "The Distortion block adds distortion to the pitch." msgstr "" -#: js/musicutils.js:639 -#.TRANS: twelve semi-tone scale for music -msgid "chromatic" +#: js/blocks/ToneBlocks.js:438 +#: js/widgets/timbre.js:2100 +#.TRANS: distortion is an alteration in the sound +msgid "distortion" msgstr "" -#: js/musicutils.js:640 -msgid "algerian" +#: js/blocks/ToneBlocks.js:487 +msgid "The Tremolo block adds a wavering effect." msgstr "" -#: js/musicutils.js:641 -msgid "spanish" +#: js/blocks/ToneBlocks.js:495 +#: js/widgets/timbre.js:2092 +#.TRANS: a wavering effect in a musical tone +msgid "tremolo" msgstr "" -#: js/musicutils.js:643 -#.TRANS: modal scale in music -msgid "octatonic" +#: js/blocks/ToneBlocks.js:500 +#: js/blocks/ToneBlocks.js:569 +#: js/blocks/ToneBlocks.js:630 +#: js/blocks/ToneBlocks.js:689 +#: js/widgets/timbre.js:2134 +#: js/widgets/timbre.js:2222 +#: js/widgets/timbre.js:2317 +#: js/widgets/timbre.js:2419 +#.TRANS: rate at which tremolo wavers +msgid "rate" msgstr "" -#: js/musicutils.js:645 -#.TRANS: harmonic major scale in music -msgid "harmonic major" +#: js/blocks/ToneBlocks.js:502 +#: js/blocks/ToneBlocks.js:630 +#: js/widgets/timbre.js:2137 +#: js/widgets/timbre.js:2328 +#.TRANS: amplitude of tremolo waver +msgid "depth" msgstr "" -#: js/musicutils.js:647 -#.TRANS: natural minor scales in music -msgid "natural minor" +#: js/blocks/ToneBlocks.js:559 +msgid "The Phaser block adds a sweeping sound." msgstr "" -#: js/musicutils.js:649 -#.TRANS: harmonic minor scale in music -msgid "harmonic minor" +#: js/blocks/ToneBlocks.js:566 +#: js/widgets/timbre.js:2098 +#.TRANS: alter the phase of the sound +msgid "phaser" msgstr "" -#: js/musicutils.js:651 -#.TRANS: melodic minor scale in music -msgid "melodic minor" +#: js/blocks/ToneBlocks.js:569 +#: js/turtleactions/IntervalsActions.js:114 +#: js/widgets/timbre.js:2422 +msgid "octaves" msgstr "" -#: js/musicutils.js:655 -#.TRANS: modal scale for music -msgid "dorian" +#: js/blocks/ToneBlocks.js:569 +#: js/widgets/timbre.js:2425 +msgid "base frequency" msgstr "" -#: js/musicutils.js:657 -#.TRANS: modal scale for music -msgid "phrygian" +#: js/blocks/ToneBlocks.js:619 +msgid "The Chorus block adds a chorus effect." msgstr "" -#: js/musicutils.js:659 -#.TRANS: modal scale for music -msgid "lydian" +#: js/blocks/ToneBlocks.js:627 +#: js/widgets/timbre.js:2096 +#.TRANS: musical effect to simulate a choral sound +msgid "chorus" msgstr "" -#: js/musicutils.js:661 -#.TRANS: modal scale for music -msgid "mixolydian" +#: js/blocks/ToneBlocks.js:630 +msgid "delay" msgstr "" -#: js/musicutils.js:665 -#.TRANS: modal scale for music -msgid "locrian" +#: js/blocks/ToneBlocks.js:678 +msgid "The Vibrato block adds a rapid, slight variation in pitch." msgstr "" -#: js/musicutils.js:667 -#.TRANS: minor jazz scale for music -msgid "jazz minor" +#: js/blocks/ToneBlocks.js:686 +#: js/widgets/timbre.js:2094 +#.TRANS: a rapid, slight variation in pitch +msgid "vibrato" msgstr "" -#: js/musicutils.js:669 -#.TRANS: bebop scale for music -msgid "bebop" +#: js/blocks/ToneBlocks.js:689 +#: js/widgets/timbre.js:2221 +msgid "intensity" msgstr "" -#: js/musicutils.js:670 -msgid "arabic" +#: js/blocks/ToneBlocks.js:733 +#.TRANS: select synthesizer +msgid "set synth" msgstr "" -#: js/musicutils.js:671 -msgid "byzantine" +#: js/blocks/ToneBlocks.js:804 +msgid "synth name" msgstr "" -#: js/musicutils.js:673 -#.TRANS: musical scale for music by Verdi -msgid "enigmatic" +#: js/blocks/ToneBlocks.js:842 +msgid "set default instrument" msgstr "" -#: js/musicutils.js:674 -msgid "ethiopian" +#: js/blocks/ToneBlocks.js:895 +#: js/blocks/ToneBlocks.js:943 +#.TRANS: set the characteristics of a custom instrument +msgid "set instrument" msgstr "" -#: js/musicutils.js:676 -#.TRANS: Ethiopic scale for music -msgid "geez" +#: js/blocks/ToneBlocks.js:898 +#: js/blocks/ToneBlocks.js:926 +#: js/blocks/ToneBlocks.js:932 +msgid "The Set instrument block selects a voice for the synthesizer," msgstr "" -#: js/musicutils.js:677 -msgid "hindu" +#: js/blocks/ToneBlocks.js:900 +#: js/blocks/ToneBlocks.js:934 +msgid "eg guitar piano violin or cello." msgstr "" -#: js/musicutils.js:678 -msgid "hungarian" +#: js/blocks/ToneBlocks.js:1015 +msgid "Import a sound file to use as an instrument and set its pitch center." msgstr "" -#: js/musicutils.js:680 -#.TRANS: minor Romanian scale for music -msgid "romanian minor" +#: js/blocks/ToneBlocks.js:1110 +msgid "Upload a sound file to connect with the sample block." msgstr "" -#: js/musicutils.js:681 -msgid "spanish gypsy" +#: js/blocks/VolumeBlocks.js:35 +msgid "synth volume" msgstr "" -#: js/musicutils.js:683 -#.TRANS: musical scale for Mid-Eastern music -msgid "maqam" +#: js/blocks/VolumeBlocks.js:39 +msgid "The Synth volume block returns the current volume of the current synthesizer." msgstr "" -#: js/musicutils.js:685 -#.TRANS: minor blues scale for music -msgid "minor blues" +#: js/blocks/VolumeBlocks.js:105 +msgid "master volume" msgstr "" -#: js/musicutils.js:687 -#.TRANS: major blues scale for music -msgid "major blues" +#: js/blocks/VolumeBlocks.js:109 +msgid "The Master volume block returns the master volume." msgstr "" -#: js/musicutils.js:688 -msgid "whole tone" +#: js/blocks/VolumeBlocks.js:355 +#: js/blocks/VolumeBlocks.js:524 +msgid "set synth volume" msgstr "" -#: js/musicutils.js:690 -#.TRANS: pentatonic is a general term that means "five note scale". This scale is typically known as "minor pentatonic" -msgid "minor pentatonic" +#: js/blocks/VolumeBlocks.js:362 +#: js/blocks/VolumeBlocks.js:545 +msgid "synth" msgstr "" -#: js/musicutils.js:692 -#.TRANS: pentatonic is a general term that means "five note scale". This scale is typically known as "major pentatonic" -msgid "major pentatonic" +#: js/blocks/VolumeBlocks.js:403 +#: js/blocks/VolumeBlocks.js:577 +#: js/blocks/VolumeBlocks.js:740 +#: js/turtleactions/VolumeActions.js:173 +msgid "Setting volume to 0." msgstr "" -#: js/musicutils.js:693 -msgid "chinese" +#: js/blocks/VolumeBlocks.js:440 +msgid "Synth not found" msgstr "" -#: js/musicutils.js:694 -msgid "egyptian" +#: js/blocks/VolumeBlocks.js:494 +msgid "set drum volume" msgstr "" -#: js/musicutils.js:696 -#.TRANS: https://en.wikipedia.org/wiki/Hirajoshi_scale NOTE: There are three different versions of this scale -msgid "hirajoshi" +#: js/blocks/VolumeBlocks.js:530 +msgid "The Set synth volume block will change the volume of a particular synth," msgstr "" -#: js/musicutils.js:697 -msgid "Japan" +#: js/blocks/VolumeBlocks.js:532 +msgid "eg guitar violin snare drum etc." msgstr "" -#: js/musicutils.js:699 -#.TRANS: https://en.wikipedia.org/wiki/In_scale and https://en.wikipedia.org/wiki/Sakura_Sakura -msgid "in" +#: js/blocks/VolumeBlocks.js:534 +msgid "The default volume is 50." msgstr "" -#: js/musicutils.js:701 -#.TRANS: https://en.wikipedia.org/wiki/Miny%C5%8D_scale -msgid "minyo" +#: js/blocks/VolumeBlocks.js:536 +msgid "The range is 0 for silence to 100 for full volume." msgstr "" -#: js/musicutils.js:703 -#.TRANS: Italian mathematician -msgid "fibonacci" +#: js/blocks/VolumeBlocks.js:597 +msgid "set panning" msgstr "" -#: js/musicutils.js:708 -#: js/musicutils.js:1106 -#.TRANS: lowpass filter -msgid "lowpass" +#: js/blocks/VolumeBlocks.js:603 +msgid "The Set Panning block sets the panning for all synthesizers." msgstr "" -#: js/musicutils.js:710 -#: js/musicutils.js:1107 -#.TRANS: bandpass filter -msgid "bandpass" +#: js/blocks/VolumeBlocks.js:625 +msgid "Warning: Sound is coming out from only the left or right side." msgstr "" -#: js/musicutils.js:712 -#: js/musicutils.js:1108 -#.TRANS: high-shelf filter -msgid "highshelf" +#: js/blocks/VolumeBlocks.js:647 +#: js/blocks/VolumeBlocks.js:695 +msgid "set master volume" msgstr "" -#: js/musicutils.js:714 -#: js/musicutils.js:1109 -#.TRANS: low-shelf filter -msgid "lowshelf" +#: js/blocks/VolumeBlocks.js:653 +msgid "The Set master volume block sets the volume for all synthesizers." msgstr "" -#: js/musicutils.js:716 -#: js/musicutils.js:1110 -#.TRANS: notch-shelf filter -msgid "notch" +#: js/blocks/VolumeBlocks.js:784 +msgid "The Set relative volume block changes the volume of the contained notes." msgstr "" -#: js/musicutils.js:718 -#: js/musicutils.js:1111 -#.TRANS: all-pass filter -msgid "allpass" +#: js/blocks/VolumeBlocks.js:791 +msgid "set relative volume" msgstr "" -#: js/musicutils.js:720 -#: js/musicutils.js:1112 -#.TRANS: peaking filter -msgid "peaking" +#: js/blocks/VolumeBlocks.js:857 +msgid "decrescendo" msgstr "" -#: js/musicutils.js:731 -#: js/synthutils.js:58 -#.TRANS: musical instrument -msgid "violin" +#: js/blocks/VolumeBlocks.js:921 +msgid "crescendo" msgstr "" -#: js/musicutils.js:732 -#: js/synthutils.js:60 -#.TRANS: viola musical instrument -msgid "viola" +#: js/blocks/WidgetBlocks.js:81 +#.TRANS: sound envelope (ADSR) +msgid "envelope" msgstr "" -#: js/musicutils.js:733 -#: js/synthutils.js:98 -#.TRANS: xylophone musical instrument -msgid "xylophone" +#: js/blocks/WidgetBlocks.js:89 +#.TRANS: Attack time is the time taken for initial run-up of level from nil to peak, beginning when the key is first pressed. +msgid "attack" msgstr "" -#: js/musicutils.js:734 -#: js/synthutils.js:120 -#.TRANS: vibraphone musical instrument -msgid "vibraphone" +#: js/blocks/WidgetBlocks.js:91 +#.TRANS: Decay time is the time taken for the subsequent run down from the attack level to the designated sustain level. +msgid "decay" msgstr "" -#: js/musicutils.js:735 -#: js/synthutils.js:62 -#.TRANS: musical instrument -msgid "cello" +#: js/blocks/WidgetBlocks.js:93 +#.TRANS: Sustain level is the level during the main sequence of the sound's duration, until the key is released. +msgid "sustain" msgstr "" -#: js/musicutils.js:737 -#: js/synthutils.js:66 -#.TRANS: viola musical instrument -msgid "double bass" +#: js/blocks/WidgetBlocks.js:95 +#.TRANS: Release time is the time taken for the level to decay from the sustain level to zero after the key is released. +msgid "release" msgstr "" -#: js/musicutils.js:738 -#: js/synthutils.js:68 -#: js/rhythmruler.js:2119 -#.TRANS: musical instrument -msgid "guitar" +#: js/blocks/WidgetBlocks.js:113 +msgid "Attack value should be from 0 to 100." msgstr "" -#: js/musicutils.js:739 -#: js/synthutils.js:70 -#.TRANS: musical instrument -msgid "acoustic guitar" +#: js/blocks/WidgetBlocks.js:116 +msgid "Decay value should be from 0 to 100." msgstr "" -#: js/musicutils.js:740 -#: js/synthutils.js:72 -#.TRANS: musical instrument -msgid "flute" +#: js/blocks/WidgetBlocks.js:119 +msgid "Sustain value should be from 0 to 100." msgstr "" -#: js/musicutils.js:741 -#: js/synthutils.js:74 -#.TRANS: musical instrument -msgid "clarinet" +#: js/blocks/WidgetBlocks.js:122 +msgid "Release value should be from 0-100." msgstr "" -#: js/musicutils.js:742 -#: js/synthutils.js:76 -#.TRANS: musical instrument -msgid "saxophone" +#: js/blocks/WidgetBlocks.js:140 +msgid "You are adding multiple envelope blocks." msgstr "" -#: js/musicutils.js:743 -#: js/synthutils.js:78 -#.TRANS: musical instrument -msgid "tuba" +#: js/blocks/WidgetBlocks.js:171 +#.TRANS: a filter removes some unwanted components from a signal +msgid "filter" msgstr "" -#: js/musicutils.js:744 -#: js/synthutils.js:80 -#.TRANS: musical instrument -msgid "trumpet" +#: js/blocks/WidgetBlocks.js:181 +#: js/widgets/timbre.js:1818 +#.TRANS: rolloff is the steepness of a change in frequency. +msgid "rolloff" msgstr "" -#: js/musicutils.js:745 -#: js/synthutils.js:82 -#.TRANS: musical instrument -msgid "oboe" +#: js/blocks/WidgetBlocks.js:213 +#.TRANS: rolloff is the steepness of a change in frequency. +msgid "Rolloff value should be either -12, -24, -48, or -96 decibels/octave." msgstr "" -#: js/musicutils.js:746 -#: js/synthutils.js:84 -#.TRANS: musical instrument -msgid "trombone" +#: js/blocks/WidgetBlocks.js:252 +msgid "The Temperament tool is used to define custom tuning." msgstr "" -#: js/musicutils.js:747 -#: js/synthutils.js:100 -#.TRANS: polytone synthesizer -msgid "electronic synth" +#: js/blocks/WidgetBlocks.js:332 +#: js/blocks/WidgetBlocks.js:1573 +#: js/widgets/sampler.js:547 +msgid "Upload a sample and adjust its pitch center." msgstr "" -#: js/musicutils.js:748 -#: js/synthutils.js:102 -#.TRANS: simple monotone synthesizer -msgid "simple 1" +#: js/blocks/WidgetBlocks.js:339 +#.TRANS: the speed at music is should be played. +msgid "sampler" +msgstr "" + +#: js/blocks/WidgetBlocks.js:517 +msgid "The Meter block opens a tool to select strong beats for the meter." msgstr "" -#: js/musicutils.js:749 -msgid "simple 2" +#: js/blocks/WidgetBlocks.js:573 +msgid "The oscilloscope block opens a tool to visualize waveforms." msgstr "" -#: js/musicutils.js:750 -msgid "simple 3" +#: js/blocks/WidgetBlocks.js:578 +msgid "oscilloscope" msgstr "" -#: js/musicutils.js:751 -msgid "simple 4" +#: js/blocks/WidgetBlocks.js:645 +msgid "The Custom mode block opens a tool to explore musical mode (the spacing of the notes in a scale)." msgstr "" -#: js/musicutils.js:753 -#: js/synthutils.js:49 -#.TRANS: brown noise synthesizer -msgid "brown noise" +#: js/blocks/WidgetBlocks.js:651 +#.TRANS: musical mode is the pattern of half-steps in an octave, e.g., Major or Minor modes +msgid "custom mode" msgstr "" -#: js/musicutils.js:754 -#: js/synthutils.js:51 -#.TRANS: pink noise synthesizer -msgid "pink noise" +#: js/blocks/WidgetBlocks.js:700 +msgid "The Tempo block opens a metronome to visualize the beat." msgstr "" -#: js/musicutils.js:756 -#: js/synthutils.js:127 -#: js/rhythmruler.js:1670 -#: js/rhythmruler.js:1928 -#.TRANS: musical instrument -msgid "snare drum" +#: js/blocks/WidgetBlocks.js:762 +msgid "The Arpeggio Widget is used to compose chord sequences." msgstr "" -#: js/musicutils.js:757 -#: js/synthutils.js:129 -#.TRANS: musical instrument -msgid "kick drum" +#: js/blocks/WidgetBlocks.js:837 +msgid "The Pitch drum matrix is used to map pitches to drum sounds." msgstr "" -#: js/musicutils.js:758 -#: js/synthutils.js:131 -#.TRANS: musical instrument -msgid "tom tom" +#: js/blocks/WidgetBlocks.js:842 +#.TRANS: makes a mapping between pitches and drum sounds +msgid "pitch-drum mapper" msgstr "" -#: js/musicutils.js:759 -#: js/synthutils.js:133 -#.TRANS: musical instrument -msgid "floor tom" +#: js/blocks/WidgetBlocks.js:891 +msgid "You must have at least one pitch block and one drum block in the matrix." msgstr "" -#: js/musicutils.js:760 -#: js/synthutils.js:135 -#.TRANS: musical instrument -msgid "bass drum" +#: js/blocks/WidgetBlocks.js:920 +msgid "The Pitch slider tool to is used to generate pitches at selected frequencies." msgstr "" -#: js/musicutils.js:761 -#: js/synthutils.js:137 -#.TRANS: a drum made from an inverted cup -msgid "cup drum" +#: js/blocks/WidgetBlocks.js:925 +#.TRANS: widget to generate pitches using a slider +msgid "pitch slider" msgstr "" -#: js/musicutils.js:762 -#: js/synthutils.js:139 -#.TRANS: musical instrument -msgid "darbuka drum" +#: js/blocks/WidgetBlocks.js:977 +msgid "chromatic keyboard" msgstr "" -#: js/musicutils.js:763 -#: js/synthutils.js:143 -#.TRANS: musical instrument -msgid "hi hat" +#: js/blocks/WidgetBlocks.js:1011 +#: js/blocks/WidgetBlocks.js:1077 +#.TRANS: widget to generate pitches using a slider +msgid "music keyboard" msgstr "" -#: js/musicutils.js:764 -#: js/synthutils.js:145 -#.TRANS: a small metal bell -msgid "ride bell" +#: js/blocks/WidgetBlocks.js:1062 +#: js/blocks/WidgetBlocks.js:1069 +msgid "The Music keyboard block opens a piano keyboard that can be used to create notes." msgstr "" -#: js/musicutils.js:765 -#: js/synthutils.js:147 -#.TRANS: musical instrument -msgid "cow bell" +#: js/blocks/WidgetBlocks.js:1128 +msgid "The Pitch staircase tool to is used to generate pitches from a given ratio." msgstr "" -#: js/musicutils.js:766 -msgid "japanese drum" +#: js/blocks/WidgetBlocks.js:1135 +#.TRANS: generate a progressive sequence of pitches +msgid "pitch staircase" msgstr "" -#: js/musicutils.js:767 -#: js/synthutils.js:153 -#.TRANS: musical instrument -msgid "japanese bell" +#: js/blocks/WidgetBlocks.js:1222 +msgid "The Rhythm Maker block opens a tool to create drum machines." msgstr "" -#: js/musicutils.js:768 -#: js/synthutils.js:149 -#.TRANS: musical instrument -msgid "triangle bell" +#: js/blocks/WidgetBlocks.js:1291 +msgid "G major scale" msgstr "" -#: js/musicutils.js:769 -#: js/synthutils.js:151 -#.TRANS: musical instrument -msgid "finger cymbals" +#: js/blocks/WidgetBlocks.js:1326 +msgid "C major scale" msgstr "" -#: js/musicutils.js:770 -#: js/synthutils.js:155 -#.TRANS: a musically tuned set of bells -msgid "chime" +#: js/blocks/WidgetBlocks.js:1366 +msgid "The Phrase Maker block opens a tool to create musical phrases." msgstr "" -#: js/musicutils.js:771 -#: js/synthutils.js:157 -#.TRANS: a musical instrument -msgid "gong" +#: js/blocks/WidgetBlocks.js:1373 +#.TRANS: assigns pitch to a sequence of beats to generate a melody +msgid "phrase maker" msgstr "" -#: js/musicutils.js:772 -#: js/synthutils.js:159 -#.TRANS: sound effect -msgid "clang" +#: js/blocks/WidgetBlocks.js:1444 +msgid "You must have at least one pitch block and one rhythm block in the matrix." msgstr "" -#: js/musicutils.js:773 -#: js/synthutils.js:161 -#.TRANS: sound effect -msgid "crash" +#: js/blocks/WidgetBlocks.js:1503 +msgid "The Status block opens a tool for inspecting the status of Music Blocks as it is running." msgstr "" -#: js/musicutils.js:774 -#: js/synthutils.js:163 -#.TRANS: sound effect -msgid "bottle" +#: js/blocks/WidgetBlocks.js:1580 +#.TRANS: AI-generated music +msgid "aimusic" msgstr "" -#: js/musicutils.js:775 -#: js/synthutils.js:165 -#.TRANS: sound effect -msgid "clap" +#: js/turtleactions/MeterActions.js:101 +#: js/turtleactions/MeterActions.js:139 +msgid "beats per minute must be greater than" msgstr "" -#: js/musicutils.js:776 -#: js/synthutils.js:167 -#.TRANS: sound effect -msgid "slap" +#: js/turtleactions/MeterActions.js:111 +#: js/turtleactions/MeterActions.js:149 +msgid "maximum" msgstr "" -#: js/musicutils.js:777 -#: js/synthutils.js:169 -#.TRANS: sound effect -msgid "splash" +#: js/turtleactions/MeterActions.js:117 +#: js/turtleactions/MeterActions.js:155 +msgid "beats per minute is" msgstr "" -#: js/musicutils.js:778 -#: js/synthutils.js:171 -#.TRANS: sound effect -msgid "bubbles" +#: js/turtleactions/DictActions.js:75 +#: js/turtleactions/DictActions.js:142 +#: js/turtleactions/DictActions.js:172 +msgid "font" msgstr "" -#: js/musicutils.js:779 -#: js/synthutils.js:173 -#.TRANS: sound effect -msgid "raindrop" +#: js/turtleactions/DictActions.js:255 +msgid "Dictionary with this name does not exist" msgstr "" -#: js/musicutils.js:780 -#: js/synthutils.js:175 -#.TRANS: animal sound effect -msgid "cat" +#: js/turtleactions/DictActions.js:259 +msgid "Key with this name does not exist in " msgstr "" -#: js/musicutils.js:781 -#: js/synthutils.js:177 -#.TRANS: animal sound effect -msgid "cricket" +#: js/turtleactions/DrumActions.js:227 +msgid "Noise Block: Did you mean to use a Note block?" msgstr "" -#: js/musicutils.js:782 -#: js/synthutils.js:179 -#.TRANS: animal sound effect -msgid "dog" +#: js/turtleactions/IntervalsActions.js:113 +msgid "one" msgstr "" -#: js/musicutils.js:784 -#: js/synthutils.js:86 -#.TRANS: musical instrument -msgid "banjo" +#: js/turtleactions/IntervalsActions.js:113 +msgid "two" msgstr "" -#: js/musicutils.js:785 -#: js/synthutils.js:88 -#.TRANS: musical instrument -msgid "koto" +#: js/turtleactions/IntervalsActions.js:113 +msgid "three" msgstr "" -#: js/musicutils.js:786 -#: js/synthutils.js:90 -#.TRANS: musical instrument -msgid "dulcimer" +#: js/turtleactions/IntervalsActions.js:113 +msgid "four" msgstr "" -#: js/musicutils.js:787 -#: js/synthutils.js:92 -#.TRANS: musical instrument -msgid "electric guitar" +#: js/turtleactions/IntervalsActions.js:113 +msgid "five" msgstr "" -#: js/musicutils.js:788 -#: js/synthutils.js:94 -#.TRANS: musical instrument -msgid "bassoon" +#: js/turtleactions/IntervalsActions.js:113 +msgid "six" msgstr "" -#: js/musicutils.js:789 -#: js/synthutils.js:96 -#.TRANS: musical instrument -msgid "celeste" +#: js/turtleactions/IntervalsActions.js:113 +msgid "seven" msgstr "" -#: js/musicutils.js:791 -#: js/musicutils.js:1123 -#: js/musicutils.js:1131 -#: js/temperament.js:650 -#.TRANS: musical temperament -msgid "equal" +#: js/turtleactions/IntervalsActions.js:113 +msgid "eight" msgstr "" -#: js/musicutils.js:793 -#: js/musicutils.js:1125 -#: js/musicutils.js:1133 -#.TRANS: musical temperament -msgid "Pythagorean" +#: js/turtleactions/IntervalsActions.js:113 +msgid "nine" msgstr "" -#: js/musicutils.js:795 -#: js/musicutils.js:1124 -#: js/musicutils.js:1132 -#.TRANS: musical temperament -msgid "just intonation" +#: js/turtleactions/IntervalsActions.js:119 +msgid "a" msgstr "" -#: js/musicutils.js:797 -#: js/musicutils.js:1126 -#: js/musicutils.js:1127 -#: js/musicutils.js:1134 -#: js/musicutils.js:1135 -#.TRANS: musical temperament -msgid "meantone" +#: js/turtleactions/IntervalsActions.js:120 +msgid "below" msgstr "" -#: js/musicutils.js:814 -msgid "major 7th" +#: js/turtleactions/IntervalsActions.js:124 +msgid "above" msgstr "" -#: js/musicutils.js:815 -msgid "minor 7th" +#: js/turtleactions/IntervalsActions.js:131 +msgid "plus" msgstr "" -#: js/musicutils.js:816 -msgid "dominant 7th" +#: js/turtleactions/IntervalsActions.js:139 +msgid " below" msgstr "" -#: js/musicutils.js:817 -msgid "minor-major 7th" +#: js/turtleactions/IntervalsActions.js:257 +msgid "Adding missing pitch number 0." msgstr "" -#: js/musicutils.js:818 -msgid "fully-diminished 7th" +#: js/turtleactions/IntervalsActions.js:265 +msgid "Ignoring pitch numbers less than zero or greater than eleven." msgstr "" -#: js/musicutils.js:819 -msgid "half-diminished 7th" +#: js/turtleactions/IntervalsActions.js:271 +msgid "Ignoring duplicate pitch numbers." msgstr "" -#: js/musicutils.js:4379 -#: js/musicutils.js:4416 -msgid "current" +#: js/turtleactions/ToneActions.js:134 +msgid "Vibrato intensity must be between 1 and 100." msgstr "" -#: js/musicutils.js:4382 -#: js/musicutils.js:4407 -msgid "next" +#: js/turtleactions/ToneActions.js:139 +msgid "Vibrato rate must be greater than 0." msgstr "" -#: js/musicutils.js:4385 -#: js/musicutils.js:4412 -msgid "previous" +#: js/turtleactions/ToneActions.js:192 +#: js/turtleactions/ToneActions.js:265 +#.TRANS: Depth is the intesity of the tremolo or chorus effect. +msgid "Depth is out of range." msgstr "" -#: js/synthutils.js:104 -#.TRANS: simple monotone synthesizer -msgid "simple-2" +#: js/turtleactions/ToneActions.js:301 +msgid "Distortion must be from 0 to 100." msgstr "" -#: js/synthutils.js:106 -#.TRANS: simple monotone synthesizer -msgid "simple-3" +#: js/turtleactions/ToneActions.js:332 +#.TRANS: partials components in a harmonic series +msgid "Partial must be greater than or equal to 0." msgstr "" -#: js/synthutils.js:108 -#.TRANS: simple monotone synthesizer -msgid "simple-4" +#: js/turtleactions/ToneActions.js:378 +#: js/turtleactions/ToneActions.js:417 +#: js/turtleactions/ToneActions.js:456 +#: js/widgets/timbre.js:782 +msgid "Unable to use synth due to existing oscillator" msgstr "" -#: js/synthutils.js:141 -#.TRANS: musical instrument -msgid "taiko" +#: js/turtleactions/ToneActions.js:388 +#: js/turtleactions/ToneActions.js:427 +msgid "The input cannot be negative." msgstr "" -#: js/modewidget.js:86 -#: js/modewidget.js:88 -#: js/modewidget.js:642 -#: js/modewidget.js:644 -#: js/modewidget.js:712 -#: js/modewidget.js:714 -#: js/temperament.js:2078 -#: js/rhythmruler.js:189 -#: js/rhythmruler.js:1410 -#: js/rhythmruler.js:1412 -#: js/rhythmruler.js:1435 -#: js/rhythmruler.js:1437 -#: js/meterwidget.js:89 -#: js/meterwidget.js:91 +#: js/widgets/modewidget.js:86 +#: js/widgets/modewidget.js:88 +#: js/widgets/modewidget.js:642 +#: js/widgets/modewidget.js:644 +#: js/widgets/modewidget.js:712 +#: js/widgets/modewidget.js:714 +#: js/widgets/meterwidget.js:194 +#: js/widgets/meterwidget.js:196 +#: js/widgets/temperament.js:2236 +#: js/widgets/rhythmruler.js:457 +#: js/widgets/rhythmruler.js:1790 +#: js/widgets/rhythmruler.js:1792 +#: js/widgets/rhythmruler.js:1816 +#: js/widgets/rhythmruler.js:1818 msgid "Play all" msgstr "" -#: js/modewidget.js:115 -#: js/pitchstaircase.js:641 -#: js/phrasemaker.js:339 -#: js/pitchdrummatrix.js:94 -#: js/pitchslider.js:125 -#: js/temperament.js:2083 -#: js/musickeyboard.js:530 -#: js/timbre.js:756 -#: js/meterwidget.js:124 -#: js/arpeggio.js:103 +#: js/widgets/modewidget.js:115 +#: js/widgets/meterwidget.js:229 +#: js/widgets/pitchdrummatrix.js:166 +#: js/widgets/pitchslider.js:125 +#: js/widgets/pitchstaircase.js:641 +#: js/widgets/temperament.js:2244 +#: js/widgets/timbre.js:756 +#: js/widgets/arpeggio.js:103 +#: js/widgets/musickeyboard.js:688 +#: js/widgets/phrasemaker.js:550 msgid "Save" msgstr "" -#: js/modewidget.js:121 -#: js/pitchstaircase.js:686 -#: js/phrasemaker.js:356 -#: js/pitchdrummatrix.js:109 -#: js/musickeyboard.js:534 -#: js/rhythmruler.js:269 -#: js/arpeggio.js:118 +#: js/widgets/modewidget.js:121 +#: js/widgets/pitchdrummatrix.js:181 +#: js/widgets/pitchstaircase.js:686 +#: js/widgets/arpeggio.js:118 +#: js/widgets/musickeyboard.js:696 +#: js/widgets/phrasemaker.js:567 +#: js/widgets/rhythmruler.js:601 #.TRANS: clear all subdivisions from the ruler. msgid "Clear" msgstr "" -#: js/modewidget.js:127 +#: js/widgets/modewidget.js:127 msgid "Rotate counter clockwise" msgstr "" -#: js/modewidget.js:133 +#: js/widgets/modewidget.js:133 msgid "Rotate clockwise" msgstr "" -#: js/modewidget.js:139 +#: js/widgets/modewidget.js:139 msgid "Invert" msgstr "" -#: js/modewidget.js:145 -#: js/pitchstaircase.js:678 -#: js/rhythmruler.js:258 -#: js/timbre.js:963 +#: js/widgets/modewidget.js:145 +#: js/widgets/pitchstaircase.js:678 +#: js/widgets/timbre.js:963 +#: js/widgets/rhythmruler.js:578 msgid "Undo" msgstr "" -#: js/modewidget.js:163 +#: js/widgets/modewidget.js:163 #.TRANS: A circle of notes represents the musical mode. msgid "Click in the circle to select notes for the mode." msgstr "" -#: js/modewidget.js:1017 -#: js/pitchstaircase.js:580 -#: js/phrasemaker.js:4855 -#: js/temperament.js:1754 -#: js/rhythmruler.js:1865 -#: js/rhythmruler.js:2081 -#: js/tempo.js:414 +#: js/widgets/modewidget.js:1017 +#: js/widgets/pitchstaircase.js:580 +#: js/widgets/temperament.js:1929 +#: js/widgets/tempo.js:414 +#: js/widgets/phrasemaker.js:5356 +#: js/widgets/rhythmruler.js:2254 +#: js/widgets/rhythmruler.js:2472 msgid "New action block generated!" msgstr "" -#: js/oscilloscope.js:79 -msgid "Zoom In" -msgstr "" - -#: js/oscilloscope.js:88 -msgid "Zoom Out" -msgstr "" - -#: js/pitchstaircase.js:624 -msgid "Play chord" -msgstr "" - -#: js/pitchstaircase.js:632 -msgid "Play scale" +#: js/widgets/meterwidget.js:275 +msgid "Reset" msgstr "" -#: js/pitchstaircase.js:696 -msgid "Click on a note to create a new step." +#: js/widgets/meterwidget.js:301 +msgid "Click in the circle to select strong beats for the meter." msgstr "" -#: js/phrasemaker.js:363 -msgid "Export" +#: js/widgets/oscilloscope.js:79 +msgid "Zoom In" msgstr "" -#: js/phrasemaker.js:370 -msgid "Sort" +#: js/widgets/oscilloscope.js:88 +msgid "Zoom Out" msgstr "" -#: js/phrasemaker.js:373 -#: js/musickeyboard.js:559 -msgid "Add note" +#: js/widgets/pitchdrummatrix.js:356 +#: js/widgets/pitchdrummatrix.js:752 +msgid "Click in the grid to map notes to drums." msgstr "" -#: js/phrasemaker.js:764 -msgid "Click on the table to add notes." +#: js/widgets/pitchslider.js:103 +msgid "Move up" msgstr "" -#: js/phrasemaker.js:2414 -#: js/phrasemaker.js:2543 -msgid "tuplet value" +#: js/widgets/pitchslider.js:114 +msgid "Move down" msgstr "" -#: js/pitchdrummatrix.js:270 -#: js/pitchdrummatrix.js:639 -msgid "Click in the grid to map notes to drums." +#: js/widgets/pitchslider.js:136 +msgid "Click on the slider to create a note block." msgstr "" -#: js/pitchslider.js:103 -msgid "Move up" +#: js/widgets/pitchstaircase.js:624 +msgid "Play chord" msgstr "" -#: js/pitchslider.js:114 -msgid "Move down" +#: js/widgets/pitchstaircase.js:632 +msgid "Play scale" msgstr "" -#: js/pitchslider.js:136 -msgid "Click on the slider to create a note block." +#: js/widgets/pitchstaircase.js:696 +msgid "Click on a note to create a new step." msgstr "" -#: js/temperament.js:215 +#: js/widgets/temperament.js:321 msgid "back to 2:1 octave space" msgstr "" -#: js/temperament.js:323 +#: js/widgets/temperament.js:447 msgid "edit" msgstr "" -#: js/temperament.js:330 -#: js/temperament.js:332 -#: js/temperament.js:1336 -#: js/temperament.js:1338 +#: js/widgets/temperament.js:454 +#: js/widgets/temperament.js:456 +#: js/widgets/temperament.js:1493 +#: js/widgets/temperament.js:1495 msgid "close" msgstr "" -#: js/temperament.js:423 -#: js/temperament.js:736 -#: js/temperament.js:743 -#: js/temperament.js:845 -#: js/temperament.js:935 -#: js/temperament.js:942 -#: js/temperament.js:1015 -#: js/temperament.js:1284 -#: js/temperament.js:1354 -#: js/temperament.js:1430 +#: js/widgets/temperament.js:552 +#: js/widgets/temperament.js:877 +#: js/widgets/temperament.js:884 +#: js/widgets/temperament.js:986 +#: js/widgets/temperament.js:1080 +#: js/widgets/temperament.js:1087 +#: js/widgets/temperament.js:1160 +#: js/widgets/temperament.js:1433 +#: js/widgets/temperament.js:1511 +#: js/widgets/temperament.js:1596 msgid "done" msgstr "" -#: js/temperament.js:477 -#: js/temperament.js:482 -#: js/temperament.js:918 +#: js/widgets/temperament.js:610 +#: js/widgets/temperament.js:615 +#: js/widgets/temperament.js:1063 msgid "ratio" msgstr "" -#: js/temperament.js:483 +#: js/widgets/temperament.js:616 msgid "interval" msgstr "" -#: js/temperament.js:611 +#: js/widgets/temperament.js:744 msgid "non scalar" msgstr "" -#: js/temperament.js:650 +#: js/widgets/temperament.js:787 msgid "ratios" msgstr "" -#: js/temperament.js:650 +#: js/widgets/temperament.js:787 msgid "arbitrary" msgstr "" -#: js/temperament.js:719 +#: js/widgets/temperament.js:860 msgid "number of divisions" msgstr "" -#: js/temperament.js:741 -#: js/temperament.js:858 -#: js/temperament.js:940 -#: js/temperament.js:1033 +#: js/widgets/temperament.js:882 +#: js/widgets/temperament.js:999 +#: js/widgets/temperament.js:1085 +#: js/widgets/temperament.js:1178 msgid "preview" msgstr "" -#: js/temperament.js:788 +#: js/widgets/temperament.js:929 msgid "The Number of divisions is too large." msgstr "" -#: js/temperament.js:921 +#: js/widgets/temperament.js:1066 msgid "recursion" msgstr "" -#: js/temperament.js:1450 +#: js/widgets/temperament.js:1616 msgid "The octave ratio has changed. This changes temperament significantly." msgstr "" -#: js/temperament.js:2087 +#: js/widgets/temperament.js:2248 msgid "Table" msgstr "" -#: js/temperament.js:2185 +#: js/widgets/temperament.js:2356 msgid "Add pitches" msgstr "" -#: js/musickeyboard.js:570 -msgid "Metronome" +#: js/widgets/tempo.js:78 +#: js/widgets/tempo.js:97 +#: js/widgets/tempo.js:99 +#: js/widgets/aiwidget.js:134 +#: js/widgets/aiwidget.js:136 +#: js/widgets/rhythmruler.js:681 +#: js/widgets/rhythmruler.js:683 +#: js/widgets/rhythmruler.js:1864 +#: js/widgets/rhythmruler.js:1866 +#: js/widgets/sampler.js:180 +#: js/widgets/sampler.js:182 +msgid "Pause" msgstr "" -#: js/musickeyboard.js:1296 -#: plugins/rodi.rtp:193 -msgid "duration" -msgstr "durashon" +#: js/widgets/tempo.js:113 +msgid "Save tempo" +msgstr "" -#: js/musickeyboard.js:2840 -msgid "New action blocks generated!" +#: js/widgets/tempo.js:144 +msgid "speed up" msgstr "" -#: js/musickeyboard.js:2841 -msgid "New action block generated" +#: js/widgets/tempo.js:150 +msgid "slow down" msgstr "" -#: js/musickeyboard.js:2984 -#: js/musickeyboard.js:2992 -msgid "MIDI device present." +#: js/widgets/tempo.js:194 +msgid "Adjust the tempo with the buttons." msgstr "" -#: js/musickeyboard.js:2995 -msgid "No MIDI device found." +#: js/widgets/tempo.js:261 +msgid "Please enter a number between 30 and 1000" msgstr "" -#: js/musickeyboard.js:3000 -msgid "Failed to get MIDI access in browser." +#: js/widgets/tempo.js:268 +#: js/widgets/tempo.js:271 +msgid "The beats per minute must be between 30 and 1000." msgstr "" -#: js/rhythmruler.js:202 -msgid "Save rhythms" +#: js/widgets/tempo.js:287 +msgid "The beats per minute must be below 1000." msgstr "" -#: js/rhythmruler.js:222 -msgid "Save drum machine" +#: js/widgets/tempo.js:303 +msgid "The beats per minute must be above 30" msgstr "" -#: js/rhythmruler.js:263 -#.TRANS: user can tap out a rhythm by clicking on a ruler. -msgid "Tap a rhythm" +#: js/widgets/timbre.js:766 +msgid "Synthesizer" msgstr "" -#: js/rhythmruler.js:342 -#: js/rhythmruler.js:344 -#: js/rhythmruler.js:1481 -#: js/rhythmruler.js:1483 -#: js/sampler.js:110 -#: js/sampler.js:112 -#: js/tempo.js:78 -#: js/tempo.js:97 -#: js/tempo.js:99 -msgid "Pause" +#: js/widgets/timbre.js:789 +msgid "Oscillator" msgstr "" -#: js/rhythmruler.js:478 -msgid "Click on the ruler to divide it." +#: js/widgets/timbre.js:840 +msgid "Envelope" msgstr "" -#: js/rhythmruler.js:603 -#: js/rhythmruler.js:605 -#: js/rhythmruler.js:804 -#: js/rhythmruler.js:806 -#: js/rhythmruler.js:1386 -#: js/rhythmruler.js:1388 -msgid "tap a rhythm" +#: js/widgets/timbre.js:886 +#: planet/js/GlobalTag.js:50 +#.TRANS: On the Planet, we use labels to tag projects. +msgid "Effects" msgstr "" -#: js/rhythmruler.js:1084 -msgid "Maximum value of 256 has been exceeded." +#: js/widgets/timbre.js:904 +msgid "Filter" msgstr "" -#: js/sampler.js:137 -msgid "Warning: Sample is bigger than 1MB." +#: js/widgets/timbre.js:946 +msgid "Add filter" msgstr "" -#: js/sampler.js:142 -msgid "Upload failed: Sample is not a .wav file." +#: js/widgets/timbre.js:987 +msgid "Click on buttons to open the timbre design tools." msgstr "" -#: js/sampler.js:164 -msgid "A new sample block was generated." +#: js/widgets/timbre.js:1273 +msgid "harmonicity" msgstr "" -#: js/sampler.js:255 -msgid "Upload sample" +#: js/widgets/timbre.js:1340 +#: js/widgets/timbre.js:1406 +msgid "modulation index" msgstr "" -#: js/sampler.js:306 -msgid "Save sample" +#: js/widgets/timbre.js:1484 +msgid "vibrato amount" msgstr "" -#: js/sampler.js:697 -#.TRANS: The reference tone is a sound used for comparison. -msgid "reference tone" +#: js/widgets/timbre.js:1919 +msgid "Filter already present." msgstr "" -#: js/tempo.js:113 -msgid "Save tempo" +#: js/widgets/timbre.js:2322 +msgid "delay (MS)" msgstr "" -#: js/tempo.js:144 -msgid "speed up" +#: js/widgets/timbre.js:2507 +msgid "distortion amount" msgstr "" -#: js/tempo.js:150 -msgid "slow down" +#: js/widgets/aiwidget.js:180 +#: js/widgets/sampler.js:227 +msgid "Warning: Sample is bigger than 1MB." msgstr "" -#: js/tempo.js:194 -msgid "Adjust the tempo with the buttons." +#: js/widgets/aiwidget.js:539 +msgid "New start block generated" msgstr "" -#: js/tempo.js:261 -msgid "Please enter a number between 30 and 1000" +#: js/widgets/aiwidget.js:541 +msgid "MIDI loading. This may take some time depending upon the number of notes in the track" msgstr "" -#: js/tempo.js:268 -#: js/tempo.js:271 -msgid "The beats per minute must be between 30 and 1000." +#: js/widgets/aiwidget.js:551 +#: js/widgets/sampler.js:254 +msgid "Upload failed: Sample is not a .wav file." msgstr "" -#: js/tempo.js:287 -msgid "The beats per minute must be below 1000." +#: js/widgets/aiwidget.js:679 +#: js/widgets/sampler.js:432 +msgid "Save sample" msgstr "" -#: js/tempo.js:303 -msgid "The beats per minute must be above 30" +#: js/widgets/aiwidget.js:701 +msgid "AI Music" msgstr "" -#: js/timbre.js:766 -msgid "Synthesizer" +#: js/widgets/arpeggio.js:239 +msgid "Click in the grid to add steps to the arpeggio." msgstr "" -#: js/timbre.js:789 -msgid "Oscillator" +#: js/widgets/help.js:95 +#: js/widgets/help.js:125 +#: js/widgets/help.js:146 +#: js/widgets/help.js:158 +#: js/widgets/help.js:376 +#: js/widgets/help.js:391 +msgid "Take a tour" msgstr "" -#: js/timbre.js:840 -msgid "Envelope" +#: js/widgets/musickeyboard.js:725 +#: js/widgets/phrasemaker.js:584 +msgid "Add note" msgstr "" -#: js/timbre.js:886 -#: js/GlobalTag.js:50 -#.TRANS: On the Planet, we use labels to tag projects. -msgid "Effects" +#: js/widgets/musickeyboard.js:744 +msgid "Metronome" +msgstr "" + +#: js/widgets/musickeyboard.js:1549 +#: plugins/rodi.rtp:193 +msgid "duration" +msgstr "durashon" + +#: js/widgets/musickeyboard.js:3179 +msgid "New action blocks generated" +msgstr "" + +#: js/widgets/musickeyboard.js:3180 +msgid "New action block generated" msgstr "" -#: js/timbre.js:904 -msgid "Filter" +#: js/widgets/musickeyboard.js:3365 +#: js/widgets/musickeyboard.js:3373 +msgid "MIDI device present." msgstr "" -#: js/timbre.js:946 -msgid "Add filter" +#: js/widgets/musickeyboard.js:3376 +msgid "No MIDI device found." msgstr "" -#: js/timbre.js:987 -msgid "Click on buttons to open the timbre design tools." +#: js/widgets/musickeyboard.js:3386 +msgid "Failed to get MIDI access in browser." msgstr "" -#: js/timbre.js:1273 -msgid "harmonicity" +#: js/widgets/phrasemaker.js:574 +msgid "Export" msgstr "" -#: js/timbre.js:1340 -#: js/timbre.js:1406 -msgid "modulation index" +#: js/widgets/phrasemaker.js:581 +msgid "Sort" msgstr "" -#: js/timbre.js:1484 -msgid "vibrato amount" +#: js/widgets/phrasemaker.js:975 +msgid "Click on the table to add notes." msgstr "" -#: js/timbre.js:1919 -msgid "Filter already present." +#: js/widgets/phrasemaker.js:2677 +#: js/widgets/phrasemaker.js:2819 +msgid "tuplet value" msgstr "" -#: js/timbre.js:2322 -msgid "delay (MS)" +#: js/widgets/rhythmruler.js:486 +msgid "Save rhythms" msgstr "" -#: js/timbre.js:2507 -msgid "distortion amount" +#: js/widgets/rhythmruler.js:512 +msgid "Save drum machine" msgstr "" -#: js/meterwidget.js:170 -msgid "Reset" +#: js/widgets/rhythmruler.js:589 +#.TRANS: user can tap out a rhythm by clicking on a ruler. +msgid "Tap a rhythm" msgstr "" -#: js/meterwidget.js:196 -msgid "Click in the circle to select strong beats for the meter." +#: js/widgets/rhythmruler.js:817 +msgid "Click on the ruler to divide it." msgstr "" -#: js/arpeggio.js:239 -msgid "Click in the grid to add steps to the arpeggio." +#: js/widgets/rhythmruler.js:950 +#: js/widgets/rhythmruler.js:952 +#: js/widgets/rhythmruler.js:1152 +#: js/widgets/rhythmruler.js:1154 +#: js/widgets/rhythmruler.js:1765 +#: js/widgets/rhythmruler.js:1767 +msgid "tap a rhythm" msgstr "" -#: js/ProjectStorage.js:243 -msgid "anonymous" +#: js/widgets/rhythmruler.js:1459 +msgid "Maximum value of 256 has been exceeded." msgstr "" -#: js/GlobalCard.js:68 -msgid "Share" +#: js/widgets/sampler.js:237 +msgid "Recording started..." msgstr "" -#: js/GlobalCard.js:74 -msgid "Flags" +#: js/widgets/sampler.js:245 +msgid "Recording complete..." msgstr "" -#: js/LocalCard.js:36 -msgid "View published project" +#: js/widgets/sampler.js:283 +msgid "A new sample block was generated." msgstr "" -#: js/LocalCard.js:42 -msgid "Publish project" +#: js/widgets/sampler.js:378 +msgid "Upload sample" msgstr "" -#: js/LocalCard.js:51 -msgid "Edit project" +#: js/widgets/sampler.js:399 +msgid "Warning: Your sample cannot be loaded because it is >1MB." msgstr "" -#: js/LocalCard.js:52 -msgid "Delete project" +#: js/widgets/sampler.js:448 +msgid "Toggle Mic" msgstr "" -#: js/LocalCard.js:53 -msgid "Download project" +#: js/widgets/sampler.js:458 +msgid "Playback" msgstr "" -#: js/LocalCard.js:55 -msgid "Duplicate project" +#: js/widgets/sampler.js:979 +#.TRANS: The reference tone is a sound used for comparison. +msgid "reference tone" msgstr "" -#: js/GlobalTag.js:28 +#: planet/js/GlobalTag.js:28 #.TRANS: On the Planet, we use labels to tag projects. msgid "All Projects" msgstr "" -#: js/GlobalTag.js:30 -#: js/StringHelper.js:37 +#: planet/js/GlobalTag.js:30 +#: planet/js/StringHelper.js:37 #.TRANS: On the Planet, we use labels to tag projects. msgid "My Projects" msgstr "" -#: js/GlobalTag.js:32 +#: planet/js/GlobalTag.js:32 #.TRANS: On the Planet, we use labels to tag projects. msgid "Examples" msgstr "" -#: js/GlobalTag.js:34 +#: planet/js/GlobalTag.js:34 #.TRANS: On the Planet, we use labels to tag projects. msgid "Music" msgstr "" -#: js/GlobalTag.js:36 +#: planet/js/GlobalTag.js:36 #.TRANS: On the Planet, we use labels to tag projects. msgid "Art" msgstr "" -#: js/GlobalTag.js:38 +#: planet/js/GlobalTag.js:38 #.TRANS: On the Planet, we use labels to tag projects. msgid "Math" msgstr "" -#: js/GlobalTag.js:40 +#: planet/js/GlobalTag.js:40 #.TRANS: On the Planet, we use labels to tag projects. msgid "Interactive" msgstr "" -#: js/GlobalTag.js:42 +#: planet/js/GlobalTag.js:42 #.TRANS: On the Planet, we use labels to tag projects. msgid "Design" msgstr "" -#: js/GlobalTag.js:44 +#: planet/js/GlobalTag.js:44 #.TRANS: On the Planet, we use labels to tag projects. msgid "Game" msgstr "" -#: js/GlobalTag.js:46 +#: planet/js/GlobalTag.js:46 #.TRANS: On the Planet, we use labels to tag projects. msgid "Media" msgstr "" -#: js/GlobalTag.js:48 +#: planet/js/GlobalTag.js:48 #.TRANS: On the Planet, we use labels to tag projects. msgid "Sensors" msgstr "" -#: js/GlobalTag.js:52 +#: planet/js/GlobalTag.js:52 #.TRANS: On the Planet, we use labels to tag projects. msgid "Code Snippet" msgstr "" -#: js/helper.js:149 -#: js/StringHelper.js:49 -msgid "Show more tags" +#: planet/js/LocalCard.js:36 +msgid "View published project" msgstr "" -#: js/helper.js:150 -msgid "Show fewer tags" +#: planet/js/LocalCard.js:42 +msgid "Publish project" +msgstr "" + +#: planet/js/LocalCard.js:51 +msgid "Edit project" +msgstr "" + +#: planet/js/LocalCard.js:52 +msgid "Delete project" +msgstr "" + +#: planet/js/LocalCard.js:53 +msgid "Download project" +msgstr "" + +#: planet/js/LocalCard.js:55 +msgid "Duplicate project" +msgstr "" + +#: planet/js/ProjectStorage.js:243 +msgid "anonymous" +msgstr "" + +#: planet/js/SaveInterface.js:34 +msgid "Open in Music Blocks" +msgstr "" + +#: planet/js/SaveInterface.js:35 +msgid "Open in Turtle Blocks" +msgstr "" + +#: planet/js/GlobalCard.js:68 +msgid "Share" +msgstr "" + +#: planet/js/GlobalCard.js:74 +msgid "Flags" +msgstr "" + +#: planet/js/GlobalPlanet.js:35 +msgid "No results found." +msgstr "" + +#: planet/js/GlobalPlanet.js:51 +msgid "Remix of" +msgstr "" + +#: planet/js/GlobalPlanet.js:509 +msgid "Cannot connect to server" msgstr "" -#: js/ProjectViewer.js:30 +#: planet/js/ProjectViewer.js:30 msgid "Error: Report could not be submitted. Try again later." msgstr "" -#: js/ProjectViewer.js:31 +#: planet/js/ProjectViewer.js:31 msgid "Thank you for reporting this project. A moderator will review the project shortly, to verify violation of the Sugar Labs Code of Conduct." msgstr "" -#: js/ProjectViewer.js:32 -#: js/StringHelper.js:62 -#: js/StringHelper.js:64 -#: js/StringHelper.js:68 +#: planet/js/ProjectViewer.js:32 +#: planet/js/StringHelper.js:62 +#: planet/js/StringHelper.js:64 +#: planet/js/StringHelper.js:68 msgid "Report Project" msgstr "" -#: js/ProjectViewer.js:33 -#: js/StringHelper.js:63 +#: planet/js/ProjectViewer.js:33 +#: planet/js/StringHelper.js:63 msgid "Project Reported" msgstr "" -#: js/ProjectViewer.js:34 +#: planet/js/ProjectViewer.js:34 msgid "Report description required" msgstr "" -#: js/ProjectViewer.js:35 +#: planet/js/ProjectViewer.js:35 msgid "Report description too long" msgstr "" -#: js/StringHelper.js:30 +#: planet/js/Publisher.js:30 +msgid "Feature unavailable - cannot connect to server. Reload Music Blocks to try again." +msgstr "" + +#: planet/js/Publisher.js:220 +#: planet/js/Publisher.js:237 +msgid "This field is required" +msgstr "" + +#: planet/js/Publisher.js:227 +msgid "Title too long" +msgstr "" + +#: planet/js/Publisher.js:244 +msgid "Description too long" +msgstr "" + +#: planet/js/Publisher.js:341 +msgid "Server Error" +msgstr "" + +#: planet/js/Publisher.js:341 +msgid "Try Again" +msgstr "" + +#: planet/js/StringHelper.js:30 msgid "Planet" msgstr "" -#: js/StringHelper.js:31 +#: planet/js/StringHelper.js:31 msgid "Close Planet" msgstr "" -#: js/StringHelper.js:32 +#: planet/js/StringHelper.js:32 msgid "Open project from file" msgstr "" -#: js/StringHelper.js:34 +#: planet/js/StringHelper.js:34 msgid "Local" msgstr "" -#: js/StringHelper.js:35 +#: planet/js/StringHelper.js:35 msgid "Global" msgstr "" -#: js/StringHelper.js:36 +#: planet/js/StringHelper.js:36 msgid "Search for a project" msgstr "" -#: js/StringHelper.js:38 +#: planet/js/StringHelper.js:38 msgid "Publish Project" msgstr "" -#: js/StringHelper.js:40 +#: planet/js/StringHelper.js:40 msgid "Tags (max 5)" msgstr "" -#: js/StringHelper.js:41 -#: js/StringHelper.js:61 +#: planet/js/StringHelper.js:41 +#: planet/js/StringHelper.js:61 msgid "Description" msgstr "" -#: js/StringHelper.js:42 -#: js/StringHelper.js:67 +#: planet/js/StringHelper.js:42 +#: planet/js/StringHelper.js:67 msgid "Submit" msgstr "" -#: js/StringHelper.js:43 -#: js/StringHelper.js:47 +#: planet/js/StringHelper.js:43 +#: planet/js/StringHelper.js:47 msgid "Cancel" msgstr "" -#: js/StringHelper.js:44 +#: planet/js/StringHelper.js:44 msgid "Delete \\"\\"?" msgstr "" -#: js/StringHelper.js:45 +#: planet/js/StringHelper.js:45 msgid "Permanently delete project \\"\\"?" msgstr "" -#: js/StringHelper.js:48 +#: planet/js/StringHelper.js:48 msgid "Explore Projects" msgstr "" -#: js/StringHelper.js:50 +#: planet/js/StringHelper.js:49 +#: planet/js/helper.js:149 +msgid "Show more tags" +msgstr "" + +#: planet/js/StringHelper.js:50 msgid "Most recent" msgstr "" -#: js/StringHelper.js:51 +#: planet/js/StringHelper.js:51 msgid "Most liked" msgstr "" -#: js/StringHelper.js:52 +#: planet/js/StringHelper.js:52 msgid "Most downloaded" msgstr "" -#: js/StringHelper.js:53 +#: planet/js/StringHelper.js:53 msgid "A-Z" msgstr "" -#: js/StringHelper.js:54 +#: planet/js/StringHelper.js:54 msgid "Sort by" msgstr "" -#: js/StringHelper.js:55 +#: planet/js/StringHelper.js:55 msgid "Load More Projects" msgstr "" -#: js/StringHelper.js:56 +#: planet/js/StringHelper.js:56 msgid "Last Updated" msgstr "" -#: js/StringHelper.js:57 +#: planet/js/StringHelper.js:57 msgid "Creation Date" msgstr "" -#: js/StringHelper.js:58 +#: planet/js/StringHelper.js:58 msgid "Number of Downloads:" msgstr "" -#: js/StringHelper.js:59 +#: planet/js/StringHelper.js:59 msgid "Number of Likes:" msgstr "" -#: js/StringHelper.js:60 +#: planet/js/StringHelper.js:60 msgid "Tags:" msgstr "" -#: js/StringHelper.js:65 +#: planet/js/StringHelper.js:65 msgid "Report projects which violate the Sugar Labs Code of Conduct." msgstr "" -#: js/StringHelper.js:66 +#: planet/js/StringHelper.js:66 msgid "Reason for reporting project" msgstr "" -#: js/StringHelper.js:70 +#: planet/js/StringHelper.js:70 msgid "Download as File" msgstr "" -#: js/GlobalPlanet.js:35 -msgid "No results found." -msgstr "" - -#: js/GlobalPlanet.js:51 -msgid "Remix of" -msgstr "" - -#: js/GlobalPlanet.js:509 -msgid "Cannot connect to server" -msgstr "" - -#: js/Publisher.js:30 -msgid "Feature unavailable - cannot connect to server. Reload Music Blocks to try again." -msgstr "" - -#: js/Publisher.js:218 -#: js/Publisher.js:235 -msgid "This field is required" -msgstr "" - -#: js/Publisher.js:225 -msgid "Title too long" +#: planet/js/helper.js:150 +msgid "Show fewer tags" msgstr "" -#: js/Publisher.js:242 -msgid "Description too long" +#: plugins/accelerometer.rtp:48 +msgid "motion x" msgstr "" -#: js/Publisher.js:339 -msgid "Server Error" +#: plugins/accelerometer.rtp:56 +msgid "motion y" msgstr "" -#: js/Publisher.js:339 -msgid "Try Again" +#: plugins/accelerometer.rtp:64 +msgid "motion z" msgstr "" -#: js/SaveInterface.js:34 -msgid "Open in Music Blocks" +#: plugins/facebook.rtp:27 +msgid "publish" msgstr "" -#: js/SaveInterface.js:35 -msgid "Open in Turtle Blocks" +#: plugins/maths.rtp:62 +msgid "power" msgstr "" -#: plugins/weather.rtp:68 -#: plugins/weather.rtp:97 -msgid "Days ahead must be in the range of -1 to 5." +#: plugins/maths.rtp:62 +msgid "base" msgstr "" -#: plugins/weather.rtp:122 -msgid "forecast" +#: plugins/maths.rtp:62 +msgid "exp" msgstr "" -#: plugins/weather.rtp:123 -#: plugins/weather.rtp:137 -#: plugins/weather.rtp:150 -msgid "city" +#: plugins/maths.rtp:99 +msgid "floor" msgstr "" -#: plugins/weather.rtp:124 -#: plugins/weather.rtp:138 -#: plugins/weather.rtp:151 -msgid "day" +#: plugins/maths.rtp:104 +msgid "ceiling" msgstr "" -#: plugins/weather.rtp:136 -msgid "high" +#: plugins/maths.rtp:109 +msgid "to degrees" msgstr "" -#: plugins/weather.rtp:149 -msgid "low" +#: plugins/maths.rtp:114 +msgid "to radians" msgstr "" #: plugins/nutrition.rtp:104 @@ -9458,45 +9867,6 @@ msgstr "" msgid "water" msgstr "" -#: plugins/maths.rtp:62 -#: plugins/examples.rtp:93 -msgid "power" -msgstr "" - -#: plugins/maths.rtp:62 -#: plugins/examples.rtp:93 -msgid "base" -msgstr "" - -#: plugins/maths.rtp:62 -#: plugins/examples.rtp:93 -msgid "exp" -msgstr "" - -#: plugins/maths.rtp:99 -#: plugins/examples.rtp:130 -msgid "floor" -msgstr "" - -#: plugins/maths.rtp:104 -#: plugins/examples.rtp:135 -msgid "ceiling" -msgstr "" - -#: plugins/maths.rtp:109 -#: plugins/examples.rtp:140 -msgid "to degrees" -msgstr "" - -#: plugins/maths.rtp:114 -#: plugins/examples.rtp:145 -msgid "to radians" -msgstr "" - -#: plugins/facebook.rtp:27 -msgid "publish" -msgstr "" - #: plugins/rodi.rtp:172 msgid "blink" msgstr "" @@ -9525,18 +9895,66 @@ msgstr "" msgid "move" msgstr "" -#: plugins/accelerometer.rtp:48 -msgid "motion x" +#: plugins/weather.rtp:68 +#: plugins/weather.rtp:97 +msgid "Days ahead must be in the range of -1 to 5." msgstr "" -#: plugins/accelerometer.rtp:56 -msgid "motion y" +#: plugins/weather.rtp:122 +msgid "forecast" msgstr "" -#: plugins/accelerometer.rtp:64 -msgid "motion z" +#: plugins/weather.rtp:123 +#: plugins/weather.rtp:137 +#: plugins/weather.rtp:150 +msgid "city" +msgstr "" + +#: plugins/weather.rtp:124 +#: plugins/weather.rtp:138 +#: plugins/weather.rtp:151 +msgid "day" +msgstr "" + +#: plugins/weather.rtp:136 +msgid "high" +msgstr "" + +#: plugins/weather.rtp:149 +msgid "low" msgstr "" +#: js/toolbar.js:70 + +#: js/toolbar.js:130 + +#: js/toolbar.js:194 + +#: js/toolbar.js:249 + +#~msgid "Toggle JavaScript Editor" +#~msgstr "" + +#: js/EnsembleBlocks.js:643 + +#~msgid "The Turrle pitch block returns the current pitch number being played by the specified turtle." +#~msgstr "" + +#: js/PitchActions.js:88 + +#~msgid "The Scalar Step Block must be used inside of a Note Block." +#~msgstr "" + +#: js/PitchActions.js:107 + +#~msgid "The Scalar Step Block must be preceded by a Pitch Block." +#~msgstr "" + +#: js/musickeyboard.js:2840 + +#~msgid "New action blocks generated!" +#~msgstr "" + #: js/toolbar.js:110 #: js/toolbar.js:204 @@ -9877,11 +10295,6 @@ msgstr "" #~msgid "The Time block returns the number of seconds that the program has been running." #~msgstr "" -#: js/help.js:95 - -#~msgid "Take a tour" -#~msgstr "" - #: js/GlobalCard.js:48 #~msgid "More Details" @@ -12780,11 +13193,6 @@ msgstr "" #~msgid "The save-stack button saves a stack onto a custom palette. It appears after a \"long press\" on a stack." #~msgstr "" -#: js/musicutils.js:254 - -#~msgid "Custom" -#~msgstr "" - #: js/basicblocks.js:4785 #~msgid "Rhythm" diff --git a/po/pbs.po b/po/pbs.po index 83bc1e709f..36de172c62 100644 --- a/po/pbs.po +++ b/po/pbs.po @@ -2129,276 +2129,131 @@ #: js/planetInterface.js:104 #: js/planetInterface.js:104 #: js/planetInterface.js:104 -msgid "project undefined" +#: js/SaveInterface.js:59 +#: js/SaveInterface.js:61 +#: js/SaveInterface.js:93 +msgid "Music Blocks Project" msgstr "" -#: js/logo.js:61 -msgid "Not a valid pitch name" +#: js/SaveInterface.js:63 +msgid "This project was created in Music Blocks" msgstr "" -#: js/logo.js:507 -#: js/ProgramBlocks.js:258 -#: js/ProgramBlocks.js:427 -msgid "You must select a file." +#: js/SaveInterface.js:67 +msgid "Music Blocks is a Free/Libre Software application." msgstr "" -#: js/logo.js:1184 -#: js/turtles.js:118 -#: js/turtle-painter.js:1192 -#: js/turtle-painter.js:1193 -#: js/block.js:1463 -#: js/lilypond.js:757 -#: js/lilypond.js:921 -#: js/lilypond.js:959 -#: js/ActionBlocks.js:1223 -#: js/ProgramBlocks.js:1267 -msgid "start" -msgstr "ndapup" - -#: js/logo.js:1696 -msgid "Playback is ready." +#: js/SaveInterface.js:69 +msgid "The source code can be accessed at" msgstr "" -#: js/blocks.js:1011 -#: js/blocks.js:3427 -#: js/blocks.js:3428 -#: js/blocks.js:3653 -#: js/blocks.js:4012 -#: js/blocks.js:4205 -#: js/blocks.js:5343 -#: js/blocks.js:6474 -#: js/palette.js:527 -#: js/palette.js:536 -#: js/palette.js:545 -#: js/palette.js:554 -#: js/palette.js:1131 -#: js/palette.js:1142 -#: js/palette.js:1153 -#: js/palette.js:1164 -#: js/palette.js:1183 -#: js/rubrics.js:529 -#: js/macros.js:170 -#: js/macros.js:266 -#: js/macros.js:267 -#: js/macros.js:276 -#: js/macros.js:828 -#: js/block.js:1449 -#: js/block.js:4164 -#: js/block.js:4182 -#: js/block.js:4193 -#: js/turtledefs.js:128 -#: js/turtledefs.js:230 -#: js/ActionBlocks.js:254 -#: js/ActionBlocks.js:307 -#: js/ActionBlocks.js:617 -#: js/ActionBlocks.js:716 -#: js/ActionBlocks.js:961 -#: js/ActionBlocks.js:1049 -#: js/ActionBlocks.js:1322 -#: js/ActionBlocks.js:1325 -#: js/ActionBlocks.js:1337 -#: js/ActionBlocks.js:1404 -#: js/MeterBlocks.js:715 -#: js/MeterBlocks.js:768 -#: js/MeterBlocks.js:831 -#: js/MeterBlocks.js:892 -#: js/phrasemaker.js:4412 -#: js/musickeyboard.js:2647 -#: js/rhythmruler.js:1928 -#: js/rhythmruler.js:1935 -#: js/rhythmruler.js:2119 -#: js/rhythmruler.js:2126 -msgid "action" -msgstr "matsjau" - -#: js/blocks.js:1205 -#: js/blocks.js:3380 -#: js/blocks.js:3770 -#: js/blocks.js:3801 -#: js/blocks.js:3850 -#: js/blocks.js:3885 -#: js/blocks.js:6497 -#: js/palette.js:509 -#: js/palette.js:638 -#: js/palette.js:1107 -#: js/BoxesBlocks.js:282 -#: js/BoxesBlocks.js:285 -#: js/BoxesBlocks.js:405 -#: js/BoxesBlocks.js:594 -msgid "box" -msgstr "ndakjaat" - -#: js/blocks.js:1680 -msgid "Consider breaking this stack into parts." +#: js/SaveInterface.js:72 +msgid "For more information, please consult the" msgstr "" -#: js/blocks.js:2408 -#: js/palette.js:653 -#: js/MediaBlocks.js:602 -msgid "open file" +#: js/SaveInterface.js:76 +#: js/turtledefs.js:795 +msgid "Music Blocks Guide" msgstr "" -#: js/blocks.js:2415 -#: js/blocks.js:2423 -#: js/activity.js:1875 -msgid "audio file" +#: js/SaveInterface.js:83 +msgid "Alternatively, open the file in Music Blocks using the Load project button." msgstr "" -#: js/blocks.js:2536 -#: js/blocks.js:3147 -#: js/block.js:3543 -msgid "on2" +#: js/SaveInterface.js:85 +msgid "Project Code" msgstr "" -#: js/blocks.js:2538 -#: js/blocks.js:3149 -#: js/block.js:3545 -msgid "off" +#: js/SaveInterface.js:87 +msgid "This code stores data about the blocks in a project." msgstr "" -#: js/blocks.js:2543 -#: js/blocks.js:3154 -#: js/palette.js:618 -#: js/block.js:3466 -#: js/BooleanBlocks.js:77 -#: js/BooleanBlocks.js:167 -#: js/BooleanBlocks.js:251 -#: js/BooleanBlocks.js:335 -#: js/BooleanBlocks.js:433 -#: js/BooleanBlocks.js:539 -#: js/BooleanBlocks.js:640 -#: js/BooleanBlocks.js:741 -#: js/BooleanBlocks.js:847 -#: js/BooleanBlocks.js:948 -#: js/BooleanBlocks.js:1033 -#: js/SensorsBlocks.js:910 -msgid "true" +#: js/SaveInterface.js:89 +msgid "Show" msgstr "" -#: js/blocks.js:2545 -#: js/blocks.js:3156 -#: js/block.js:3466 -#: js/BooleanBlocks.js:79 -#: js/BooleanBlocks.js:169 -#: js/BooleanBlocks.js:253 -#: js/BooleanBlocks.js:337 -#: js/BooleanBlocks.js:435 -#: js/BooleanBlocks.js:541 -#: js/BooleanBlocks.js:642 -#: js/BooleanBlocks.js:743 -#: js/BooleanBlocks.js:849 -#: js/BooleanBlocks.js:950 -#: js/SensorsBlocks.js:912 -msgid "false" +#: js/SaveInterface.js:91 +msgid "Hide" msgstr "" -#: js/blocks.js:3183 -#: js/palette.js:574 -#: js/MediaBlocks.js:892 -#: js/MediaBlocks.js:963 -msgid "text" -msgstr "kily'e keich'" - -#: js/blocks.js:3379 -#: js/palette.js:641 -#: js/palette.js:642 -#: js/BoxesBlocks.js:514 -msgid "store in box" +#: js/SaveInterface.js:131 +#: js/SaveInterface.js:204 +#: js/SaveInterface.js:262 +#: js/SaveInterface.js:389 +#: js/SaveInterface.js:417 +#: js/activity.js:4884 +#: planet/js/ProjectStorage.js:27 +#: planet/js/GlobalPlanet.js:467 +#: planet/js/GlobalPlanet.js:469 +#: planet/js/GlobalPlanet.js:495 +#.TRANS: default project title when saving as Lilypond +msgid "My Project" msgstr "" -#: js/blocks.js:3384 -#: js/blocks.js:3824 -#: js/blocks.js:3859 -#: js/blocks.js:3894 -#: js/blocks.js:5773 -#: js/blocks.js:5794 -#: js/BoxesBlocks.js:772 -msgid "box1" +#: js/SaveInterface.js:197 +#: planet/js/SaveInterface.js:58 +msgid "No description provided" msgstr "" -#: js/blocks.js:3386 -#: js/blocks.js:3826 -#: js/blocks.js:3861 -#: js/blocks.js:3896 -#: js/blocks.js:5775 -#: js/blocks.js:5796 -#: js/BoxesBlocks.js:663 -msgid "box2" +#: js/SaveInterface.js:332 +msgid "Your recording is in progress." msgstr "" -#: js/blocks.js:4058 -#: js/palette.js:639 -#: js/palette.js:644 -#: js/palette.js:1043 -#: js/BoxesBlocks.js:591 -msgid "store in" -msgstr "makjaat kiñkiep'" - -#: js/blocks.js:4058 -#: js/EnsembleBlocks.js:391 -#: js/EnsembleBlocks.js:402 -#: js/MediaBlocks.js:746 -#: js/ProgramBlocks.js:390 -#: js/ProgramBlocks.js:495 -#: js/ProgramBlocks.js:658 -#: js/BoxesBlocks.js:595 -#: js/PitchBlocks.js:656 -#: js/PitchBlocks.js:932 -#: js/PitchBlocks.js:1827 -#: js/ToneBlocks.js:1025 -#: js/DictBlocks.js:215 -#: js/DictBlocks.js:289 -msgid "name" +#: js/SaveInterface.js:401 +#.TRANS: File name prompt for save as Lilypond +msgid "File name" msgstr "" -#: js/blocks.js:4058 -#: js/RhythmBlocks.js:1130 -#: js/BoxesBlocks.js:75 -#: js/BoxesBlocks.js:595 -#: js/HeapBlocks.js:544 -#: js/DictBlocks.js:289 -#: js/DictBlocks.js:430 -msgid "value" -msgstr "liñjú" - -#: js/blocks.js:4907 -msgid "There is no block selected." +#: js/SaveInterface.js:403 +#: planet/js/StringHelper.js:39 +#.TRANS: Project title prompt for save as Lilypond +msgid "Project title" msgstr "" -#: js/blocks.js:5002 -#: js/MediaBlocks.js:888 -msgid "show" -msgstr "nda'u'up" - -#: js/blocks.js:5005 -#: js/MediaBlocks.js:803 -#.TRANS: Avatar is the image used to determine the appearance of the mouse. -msgid "avatar" +#: js/SaveInterface.js:405 +#.TRANS: Project title prompt for save as Lilypond +msgid "Project author" msgstr "" -#: js/blocks.js:5008 -#: js/ToneBlocks.js:1010 -#: js/sampler.js:693 -#.TRANS: The sound sample that the user uploads. -msgid "sample" +#: js/SaveInterface.js:407 +#.TRANS: MIDI prompt for save as Lilypond +msgid "Include MIDI output?" msgstr "" -#: js/turtles.js:874 -msgid "Grid" +#: js/SaveInterface.js:409 +#.TRANS: Guitar prompt for save as Lilypond +msgid "Include guitar tablature output?" msgstr "" -#: js/turtles.js:891 -#: js/turtledefs.js:626 -msgid "Clean" -msgstr "Matseiñ'" +#: js/SaveInterface.js:411 +#.TRANS: Lilypond is a scripting language for generating sheet music +msgid "Save as Lilypond" +msgstr "" -#: js/turtles.js:912 -#: js/turtledefs.js:632 -msgid "Collapse" +#: js/SaveInterface.js:426 +#: js/blocks/EnsembleBlocks.js:75 +#: js/blocks/EnsembleBlocks.js:154 +#: js/blocks/EnsembleBlocks.js:216 +#: js/blocks/EnsembleBlocks.js:302 +#: js/blocks/EnsembleBlocks.js:348 +#: js/blocks/EnsembleBlocks.js:389 +#: js/blocks/EnsembleBlocks.js:441 +#: js/blocks/EnsembleBlocks.js:490 +#: js/blocks/EnsembleBlocks.js:536 +#: js/blocks/EnsembleBlocks.js:583 +#: js/blocks/EnsembleBlocks.js:637 +#: js/blocks/EnsembleBlocks.js:753 +#: js/blocks/EnsembleBlocks.js:840 +#: js/blocks/EnsembleBlocks.js:899 +#: js/blocks/EnsembleBlocks.js:942 +#: js/blocks/EnsembleBlocks.js:1212 +#: js/blocks/EnsembleBlocks.js:1280 +#.TRANS: default project author when saving as Lilypond +msgid "Mr. Mouse" msgstr "" -#: js/turtles.js:940 -msgid "Expand" +#: js/SaveInterface.js:573 +msgid "The Lilypond code is copied to clipboard. You can paste it here: " msgstr "" #: js/languagebox.js:198 @@ -2409,6933 +2264,7487 @@ msgstr "" msgid "Music Blocks is already set to this language." msgstr "" -#: js/piemenus.js:200 -#: js/musicutils.js:808 -#: js/musicutils.js:824 -#: js/phrasemaker.js:1672 -#: js/musickeyboard.js:2041 -#: js/sampler.js:544 -#.TRANS: double sharp is a music term related to pitch -msgid "double sharp" +#: js/planetInterface.js:131 +msgid "project undefined" msgstr "" -#: js/piemenus.js:201 -#: js/PitchBlocks.js:1510 -#: js/PitchActions.js:580 -#: js/musicutils.js:806 -#: js/musicutils.js:825 -#: js/phrasemaker.js:1673 -#: js/musickeyboard.js:2042 -#: js/sampler.js:545 -#.TRANS: sharp is a half-step up in pitch -#.TRANS: sharp is a music term related to pitch -msgid "sharp" +#: js/rubrics.js:523 +#: js/turtledefs.js:119 +#: js/turtledefs.js:221 +#: js/blocks/RhythmBlockPaletteBlocks.js:52 +#: js/blocks/RhythmBlockPaletteBlocks.js:234 +#: js/blocks/ProgramBlocks.js:745 +#: js/widgets/rhythmruler.js:2057 +#: js/widgets/rhythmruler.js:2064 +#: js/widgets/rhythmruler.js:2133 +#: js/widgets/rhythmruler.js:2140 +#: js/widgets/rhythmruler.js:2219 +#.TRANS: an arrangement of notes based on duration +msgid "rhythm" msgstr "" -#: js/piemenus.js:202 -#: js/musicutils.js:804 -#: js/musicutils.js:826 -#: js/phrasemaker.js:1674 -#: js/musickeyboard.js:2043 -#: js/sampler.js:546 -#.TRANS: natural is a music term related to pitch -msgid "natural" +#: js/rubrics.js:524 +#: js/turtledefs.js:121 +#: js/turtledefs.js:223 +#: js/block-verbose.js:2622 +#: js/block.js:2550 +#: js/blocks/IntervalsBlocks.js:63 +#: js/blocks/SensorsBlocks.js:178 +#: js/blocks/PitchBlocks.js:1839 +#: js/blocks/PitchBlocks.js:1853 +#: js/widgets/musickeyboard.js:1935 +#: js/widgets/phrasemaker.js:1036 +#.TRANS: pitch number +#.TRANS: pitch number +#.TRANS: we specify pitch in terms of a name and an octave. The name can be CDEFGAB or Do Re Mi Fa Sol La Ti. Octave is a number between 1 and 8. +msgid "pitch" msgstr "" -#: js/piemenus.js:203 -#: js/PitchBlocks.js:1469 -#: js/PitchActions.js:583 -#: js/musicutils.js:802 -#: js/musicutils.js:827 -#: js/phrasemaker.js:1675 -#: js/musickeyboard.js:2044 -#: js/sampler.js:547 -#.TRANS: flat is a half-step down in pitch -#.TRANS: flat is a music term related to pitch -msgid "flat" +#: js/rubrics.js:525 +#: js/turtledefs.js:123 +#: js/turtledefs.js:225 +msgid "tone" msgstr "" -#: js/piemenus.js:204 -#: js/musicutils.js:800 -#: js/musicutils.js:828 -#: js/phrasemaker.js:1676 -#: js/musickeyboard.js:2045 -#: js/sampler.js:548 -#.TRANS: double flat is a music term related to pitch -msgid "double flat" +#: js/rubrics.js:526 +#: js/lilypond.js:605 +#: js/lilypond.js:904 +#: js/lilypond.js:910 +#: js/lilypond.js:948 +msgid "mouse" msgstr "" -#: js/piemenus.js:2861 -#: js/PitchBlocks.js:1357 -#: js/musicutils.js:627 -#.TRANS: unison means the note is the same as the current note -#.TRANS: unison is a music term related to intervals -msgid "unison" +#: js/rubrics.js:527 +#: js/turtledefs.js:132 +#: js/turtledefs.js:234 +#: js/widgets/phrasemaker.js:1040 +msgid "pen" msgstr "" -#: js/piemenus.js:3015 -#: js/piemenus.js:3088 -#: js/musicutils.js:635 -#: js/musicutils.js:810 -#: js/musicutils.js:912 -#.TRANS: major is a music term related to intervals and mode -msgid "major" -msgstr "" +#: js/rubrics.js:528 +#: js/turtledefs.js:133 +#: js/turtledefs.js:235 +#: js/blocks/NumberBlocks.js:981 +#: js/blocks/PitchBlocks.js:1717 +#: js/blocks/PitchBlocks.js:1758 +msgid "number" +msgstr "rabe'en" -#: js/piemenus.js:3015 -#: js/piemenus.js:3088 -#: js/musicutils.js:653 -#.TRANS: modal scale for music -msgid "ionian" +#: js/rubrics.js:529 +#: js/turtledefs.js:127 +#: js/turtledefs.js:229 +msgid "flow" msgstr "" -#: js/piemenus.js:3017 -#: js/piemenus.js:3092 -#: js/musicutils.js:633 -#: js/musicutils.js:811 -#: js/musicutils.js:909 -#.TRANS: minor is a music term related to intervals and mode -msgid "minor" -msgstr "" +#: js/rubrics.js:530 +#: js/turtledefs.js:128 +#: js/turtledefs.js:230 +#: js/block-verbose.js:1609 +#: js/block-verbose.js:4559 +#: js/block-verbose.js:4577 +#: js/block-verbose.js:4588 +#: js/block.js:1573 +#: js/block.js:4483 +#: js/block.js:4501 +#: js/block.js:4512 +#: js/blocks.js:1018 +#: js/blocks.js:3491 +#: js/blocks.js:3492 +#: js/blocks.js:3717 +#: js/blocks.js:4076 +#: js/blocks.js:4269 +#: js/blocks.js:5432 +#: js/blocks.js:6563 +#: js/macros.js:170 +#: js/macros.js:266 +#: js/macros.js:267 +#: js/macros.js:276 +#: js/macros.js:828 +#: js/palette.js:527 +#: js/palette.js:536 +#: js/palette.js:545 +#: js/palette.js:554 +#: js/palette.js:1129 +#: js/palette.js:1140 +#: js/palette.js:1151 +#: js/palette.js:1162 +#: js/palette.js:1181 +#: js/blocks/ActionBlocks.js:254 +#: js/blocks/ActionBlocks.js:307 +#: js/blocks/ActionBlocks.js:617 +#: js/blocks/ActionBlocks.js:716 +#: js/blocks/ActionBlocks.js:961 +#: js/blocks/ActionBlocks.js:1049 +#: js/blocks/ActionBlocks.js:1322 +#: js/blocks/ActionBlocks.js:1325 +#: js/blocks/ActionBlocks.js:1337 +#: js/blocks/ActionBlocks.js:1404 +#: js/blocks/MeterBlocks.js:715 +#: js/blocks/MeterBlocks.js:768 +#: js/blocks/MeterBlocks.js:831 +#: js/blocks/MeterBlocks.js:892 +#: js/widgets/musickeyboard.js:2986 +#: js/widgets/phrasemaker.js:4913 +#: js/widgets/rhythmruler.js:2319 +#: js/widgets/rhythmruler.js:2326 +#: js/widgets/rhythmruler.js:2511 +#: js/widgets/rhythmruler.js:2518 +msgid "action" +msgstr "matsjau" -#: js/piemenus.js:3017 -#: js/piemenus.js:3092 -#: js/musicutils.js:663 -#.TRANS: modal scale for music -msgid "aeolian" +#: js/rubrics.js:531 +#: js/turtledefs.js:136 +#: js/turtledefs.js:238 +msgid "sensors" msgstr "" -#: js/piemenus.js:3407 -msgid "Duplicate" +#: js/rubrics.js:532 +#: js/turtledefs.js:135 +#: js/turtledefs.js:237 +#: js/blocks/MediaBlocks.js:930 +msgid "media" msgstr "" -#: js/piemenus.js:3408 -#: js/turtledefs.js:534 -msgid "Extract" +#: js/rubrics.js:533 +msgid "mice" msgstr "" -#: js/piemenus.js:3409 -msgid "Move to trash" +#: js/toolbar.js:48 +#: js/toolbar.js:109 +msgid "About Music Blocks" msgstr "" -#: js/piemenus.js:3410 -#: js/timbre.js:968 -#: js/StringHelper.js:69 -msgid "Close" +#: js/toolbar.js:49 +#: js/toolbar.js:110 +#: js/toolbar.js:175 +#: js/toolbar.js:231 +#: js/turtledefs.js:445 +#: js/turtledefs.js:482 +#: js/activity.js:2660 +#: js/activity.js:2671 +#: js/activity.js:2902 +#: js/widgets/modewidget.js:77 +#: js/widgets/meterwidget.js:185 +#: js/widgets/pitchdrummatrix.js:147 +#: js/widgets/pitchdrummatrix.js:687 +#: js/widgets/pitchdrummatrix.js:689 +#: js/widgets/pitchdrummatrix.js:741 +#: js/widgets/pitchdrummatrix.js:743 +#: js/widgets/pitchdrummatrix.js:758 +#: js/widgets/pitchdrummatrix.js:760 +#: js/widgets/pitchdrummatrix.js:789 +#: js/widgets/pitchdrummatrix.js:791 +#: js/widgets/pitchstaircase.js:121 +#: js/widgets/temperament.js:610 +#: js/widgets/temperament.js:613 +#: js/widgets/temperament.js:673 +#: js/widgets/temperament.js:675 +#: js/widgets/temperament.js:2017 +#: js/widgets/temperament.js:2019 +#: js/widgets/tempo.js:84 +#: js/widgets/tempo.js:86 +#: js/widgets/timbre.js:432 +#: js/widgets/timbre.js:434 +#: js/widgets/timbre.js:465 +#: js/widgets/timbre.js:467 +#: js/widgets/timbre.js:746 +#: js/widgets/aiwidget.js:647 +#: js/widgets/aiwidget.js:654 +#: js/widgets/aiwidget.js:656 +#: js/widgets/arpeggio.js:90 +#: js/widgets/arpeggio.js:547 +#: js/widgets/arpeggio.js:549 +#: js/widgets/arpeggio.js:644 +#: js/widgets/arpeggio.js:646 +#: js/widgets/musickeyboard.js:676 +#: js/widgets/musickeyboard.js:872 +#: js/widgets/musickeyboard.js:874 +#: js/widgets/musickeyboard.js:953 +#: js/widgets/musickeyboard.js:955 +#: js/widgets/phrasemaker.js:513 +#: js/widgets/phrasemaker.js:523 +#: js/widgets/phrasemaker.js:525 +#: js/widgets/phrasemaker.js:4304 +#: js/widgets/phrasemaker.js:4528 +#: js/widgets/phrasemaker.js:4533 +#: js/widgets/phrasemaker.js:4535 +#: js/widgets/phrasemaker.js:4650 +#: js/widgets/rhythmruler.js:637 +#: js/widgets/rhythmruler.js:639 +#: js/widgets/rhythmruler.js:653 +#: js/widgets/rhythmruler.js:655 +#: js/widgets/sampler.js:162 +#: js/widgets/sampler.js:164 +#: js/widgets/sampler.js:363 +msgid "Play" msgstr "" -#: js/piemenus.js:3416 -msgid "Save stack" +#: js/toolbar.js:50 +#: js/toolbar.js:111 +#: js/toolbar.js:176 +#: js/toolbar.js:232 +#: js/turtledefs.js:451 +#: js/turtledefs.js:488 +#: js/activity.js:2679 +#: js/widgets/modewidget.js:99 +#: js/widgets/modewidget.js:101 +#: js/widgets/meterwidget.js:206 +#: js/widgets/meterwidget.js:208 +#: js/widgets/pitchdrummatrix.js:674 +#: js/widgets/pitchdrummatrix.js:676 +#: js/widgets/temperament.js:2002 +#: js/widgets/temperament.js:2004 +#: js/widgets/arpeggio.js:534 +#: js/widgets/arpeggio.js:536 +#: js/widgets/phrasemaker.js:534 +#: js/widgets/phrasemaker.js:536 +msgid "Stop" +msgstr "Ndama'ai" + +#: js/toolbar.js:51 +#: js/toolbar.js:112 +#: js/toolbar.js:177 +#: js/toolbar.js:233 +#: js/turtledefs.js:498 +msgid "Record" msgstr "" -#: js/piemenus.js:3420 -#: js/toolbar.js:60 -#: js/toolbar.js:120 -#: js/toolbar.js:185 +#: js/toolbar.js:52 +#: js/toolbar.js:53 +msgid "Full screen" +msgstr "" + +#: js/toolbar.js:54 +#: js/toolbar.js:115 +#: js/toolbar.js:180 +#: js/toolbar.js:236 +#: js/turtledefs.js:504 +msgid "Toggle Fullscreen" +msgstr "" + +#: js/toolbar.js:55 +#: js/toolbar.js:116 +#: js/toolbar.js:181 +#: js/toolbar.js:237 +#: js/turtledefs.js:510 +#: planet/js/StringHelper.js:33 +msgid "New project" +msgstr "" + +#: js/toolbar.js:56 +#: js/toolbar.js:117 +#: js/toolbar.js:182 +#: js/toolbar.js:238 +#: js/turtledefs.js:516 +msgid "Load project from file" +msgstr "" + +#: js/toolbar.js:57 +#: js/toolbar.js:118 +#: js/toolbar.js:119 +#: js/toolbar.js:183 +#: js/toolbar.js:239 +#: js/turtledefs.js:541 +#: js/turtledefs.js:550 +#: js/turtledefs.js:571 +msgid "Save project" +msgstr "" + +#: js/toolbar.js:58 +#: js/toolbar.js:77 +#: js/toolbar.js:79 +#: js/toolbar.js:138 +#: js/toolbar.js:147 +#: js/toolbar.js:149 +#: js/toolbar.js:184 +#: js/toolbar.js:202 +#: js/toolbar.js:204 #: js/toolbar.js:240 +#: js/toolbar.js:258 +#: js/toolbar.js:260 +msgid "Save project as HTML" +msgstr "" + +#: js/toolbar.js:59 +#: js/toolbar.js:120 +#: js/toolbar.js:185 +#: js/toolbar.js:241 +msgid "Find and share projects" +msgstr "" + +#: js/toolbar.js:60 +#: js/toolbar.js:121 +#: js/toolbar.js:186 +#: js/toolbar.js:242 +msgid "Offline. Sharing is unavailable" +msgstr "" + +#: js/toolbar.js:61 +#: js/toolbar.js:122 +#: js/toolbar.js:187 +#: js/toolbar.js:243 +msgid "Auxiliary menu" +msgstr "" + +#: js/toolbar.js:62 +#: js/toolbar.js:123 +#: js/toolbar.js:188 +#: js/toolbar.js:244 #: js/turtledefs.js:752 +#: js/piemenus.js:3423 msgid "Help" msgstr "Nabaik" -#: js/piemenus.js:3762 -msgid "You have chosen key " +#: js/toolbar.js:63 +#: js/toolbar.js:124 +#: js/toolbar.js:189 +#: js/toolbar.js:245 +msgid "Run slowly" +msgstr "" + +#: js/toolbar.js:64 +#: js/toolbar.js:125 +#: js/toolbar.js:190 +#: js/toolbar.js:246 +#: js/turtledefs.js:682 +msgid "Run step by step" +msgstr "" + +#: js/toolbar.js:65 +#: js/toolbar.js:126 +#: js/toolbar.js:191 +#: js/toolbar.js:247 +#: js/turtledefs.js:689 +msgid "Display statistics" +msgstr "" + +#: js/toolbar.js:66 +#: js/toolbar.js:127 +#: js/toolbar.js:192 +#: js/toolbar.js:248 +msgid "Load plugin" +msgstr "" + +#: js/toolbar.js:67 +#: js/toolbar.js:128 +#: js/toolbar.js:193 +#: js/toolbar.js:249 +#: js/turtledefs.js:696 +msgid "Delete plugin" +msgstr "" + +#: js/toolbar.js:68 +#: js/toolbar.js:129 +#: js/toolbar.js:194 +#: js/toolbar.js:250 +msgid "Enable horizontal scrolling" +msgstr "" + +#: js/toolbar.js:69 +#: js/toolbar.js:130 +#: js/toolbar.js:195 +#: js/toolbar.js:251 +msgid "Disable horizontal scrolling" +msgstr "" + +#: js/toolbar.js:70 +#: js/toolbar.js:131 +#: js/toolbar.js:196 +#: js/toolbar.js:252 +#: planet/js/LocalCard.js:54 +#: planet/js/StringHelper.js:71 +msgid "Merge with current project" +msgstr "" + +#: js/toolbar.js:71 +#: js/toolbar.js:132 +msgid "Set Pitch Preview" +msgstr "" + +#: js/toolbar.js:72 +#: js/toolbar.js:133 +#: js/toolbar.js:197 +#: js/toolbar.js:253 +msgid "JavaScript Editor" +msgstr "" + +#: js/toolbar.js:73 +#: js/toolbar.js:134 +#: js/toolbar.js:198 +#: js/toolbar.js:254 +#: js/turtledefs.js:724 +msgid "Restore" +msgstr "" + +#: js/toolbar.js:74 +#: js/toolbar.js:135 +#: js/toolbar.js:199 +#: js/toolbar.js:255 +msgid "Switch to beginner mode" +msgstr "" + +#: js/toolbar.js:75 +#: js/toolbar.js:136 +#: js/toolbar.js:200 +#: js/toolbar.js:256 +msgid "Switch to advanced mode" +msgstr "" + +#: js/toolbar.js:76 +#: js/toolbar.js:137 +#: js/toolbar.js:146 +#: js/toolbar.js:201 +#: js/toolbar.js:257 +#: js/turtledefs.js:738 +msgid "Select language" +msgstr "" + +#: js/toolbar.js:78 +#: js/toolbar.js:81 +#: js/toolbar.js:140 +#: js/turtledefs.js:579 +msgid "Save mouse artwork as PNG" +msgstr "" + +#: js/toolbar.js:80 +#: js/toolbar.js:139 +#: js/turtledefs.js:575 +msgid "Save mouse artwork as SVG" +msgstr "" + +#: js/toolbar.js:82 +#: js/toolbar.js:141 +#: js/turtledefs.js:583 +msgid "Save music as WAV" +msgstr "" + +#: js/toolbar.js:83 +#: js/toolbar.js:142 +#: js/turtledefs.js:587 +msgid "Save sheet music as ABC" +msgstr "" + +#: js/toolbar.js:84 +#: js/toolbar.js:143 +#: js/turtledefs.js:591 +msgid "Save sheet music as Lilypond" +msgstr "" + +#: js/toolbar.js:85 +msgid "Save sheet music as MusicXML" +msgstr "" + +#: js/toolbar.js:86 +#: js/toolbar.js:144 +#: js/toolbar.js:152 +#: js/toolbar.js:207 +#: js/toolbar.js:263 +#: js/turtledefs.js:562 +#: js/turtledefs.js:595 +msgid "Save block artwork as SVG" +msgstr "" + +#: js/toolbar.js:87 +#: js/toolbar.js:145 +#: js/toolbar.js:153 +#: js/toolbar.js:208 +#: js/toolbar.js:264 +#: js/turtles.js:911 +msgid "Confirm" +msgstr "" + +#: js/toolbar.js:88 +#: js/toolbar.js:154 +#: js/toolbar.js:209 +#: js/toolbar.js:265 +msgid "English (United States)" +msgstr "" + +#: js/toolbar.js:89 +#: js/toolbar.js:155 +#: js/toolbar.js:210 +#: js/toolbar.js:266 +msgid "English (United Kingdom)" +msgstr "" + +#: js/toolbar.js:90 +#: js/toolbar.js:156 +#: js/toolbar.js:211 +#: js/toolbar.js:267 +msgid "日本語" +msgstr "" + +#: js/toolbar.js:91 +msgid "한국어" +msgstr "" + +#: js/toolbar.js:92 +#: js/toolbar.js:158 +#: js/toolbar.js:213 +#: js/toolbar.js:269 +msgid "español" +msgstr "" + +#: js/toolbar.js:93 +#: js/toolbar.js:159 +#: js/toolbar.js:214 +#: js/toolbar.js:270 +msgid "português" +msgstr "" + +#: js/toolbar.js:94 +#: js/toolbar.js:160 +#: js/toolbar.js:215 +#: js/toolbar.js:271 +msgid "にほんご" +msgstr "" + +#: js/toolbar.js:95 +#: js/toolbar.js:161 +#: js/toolbar.js:216 +#: js/toolbar.js:272 +msgid "中文" +msgstr "" + +#: js/toolbar.js:96 +#: js/toolbar.js:162 +#: js/toolbar.js:217 +#: js/toolbar.js:273 +msgid "ภาษาไทย" +msgstr "" + +#: js/toolbar.js:97 +#: js/toolbar.js:163 +#: js/toolbar.js:218 +#: js/toolbar.js:274 +msgid "aymara" +msgstr "" + +#: js/toolbar.js:98 +#: js/toolbar.js:164 +#: js/toolbar.js:219 +#: js/toolbar.js:275 +msgid "quechua" +msgstr "" + +#: js/toolbar.js:99 +#: js/toolbar.js:165 +#: js/toolbar.js:220 +#: js/toolbar.js:276 +msgid "guarani" +msgstr "" + +#: js/toolbar.js:100 +#: js/toolbar.js:166 +#: js/toolbar.js:221 +#: js/toolbar.js:277 +msgid "हिंदी" +msgstr "" + +#: js/toolbar.js:101 +#: js/toolbar.js:168 +#: js/toolbar.js:222 +#: js/toolbar.js:279 +msgid "igbo" +msgstr "" + +#: js/toolbar.js:102 +#: js/toolbar.js:169 +#: js/toolbar.js:223 +#: js/toolbar.js:280 +msgid "عربى" +msgstr "" + +#: js/toolbar.js:103 +#: js/toolbar.js:167 +#: js/toolbar.js:224 +#: js/toolbar.js:278 +msgid "తెలుగు" +msgstr "" + +#: js/toolbar.js:104 +#: js/toolbar.js:170 +#: js/toolbar.js:225 +#: js/toolbar.js:281 +msgid "עִברִית" +msgstr "" + +#: js/toolbar.js:113 +#: js/toolbar.js:114 +#: js/toolbar.js:178 +#: js/toolbar.js:179 +#: js/toolbar.js:234 +#: js/toolbar.js:235 +msgid "Full Screen" +msgstr "" + +#: js/toolbar.js:148 +#: js/toolbar.js:151 +#: js/toolbar.js:203 +#: js/toolbar.js:206 +#: js/toolbar.js:259 +#: js/toolbar.js:262 +#: js/turtledefs.js:558 +msgid "Save turtle artwork as PNG" +msgstr "" + +#: js/toolbar.js:150 +#: js/toolbar.js:205 +#: js/toolbar.js:261 +#: js/turtledefs.js:554 +msgid "Save turtle artwork as SVG" +msgstr "" + +#: js/toolbar.js:157 +#: js/toolbar.js:212 +#: js/toolbar.js:268 +msgid "한국인" +msgstr "" + +#: js/toolbar.js:174 +#: js/toolbar.js:230 +msgid "About Turtle Blocks" +msgstr "" + +#: js/toolbar.js:446 +#: js/toolbar.js:457 +#: js/toolbar.js:497 +msgid "Turtle Wrap Off" +msgstr "" + +#: js/toolbar.js:466 +#: js/toolbar.js:506 +msgid "Turtle Wrap On" +msgstr "" + +#: js/turtle-painter.js:1192 +#: js/turtle-painter.js:1193 +#: js/turtles.js:118 +#: js/block-verbose.js:1623 +#: js/block.js:1587 +#: js/lilypond.js:749 +#: js/lilypond.js:913 +#: js/lilypond.js:951 +#: js/logo.js:1184 +#: js/blocks/ActionBlocks.js:1223 +#: js/blocks/ProgramBlocks.js:1267 +msgid "start" +msgstr "ndapup" + +#: js/turtledefs.js:40 +#.TRANS: put the URL to the guide here, e.g., https://github.com/sugarlabs/turtleblocksjs/tree/master/guide/README.md +msgid "guide url" +msgstr "" + +#: js/turtledefs.js:85 +#: js/turtledefs.js:437 +msgid "Turtle Blocks is a Logo-inspired turtle that draws colorful pictures with snap-together visual-programming blocks." +msgstr "" + +#: js/turtledefs.js:118 +#: js/turtledefs.js:220 +msgid "search" +msgstr "" + +#: js/turtledefs.js:120 +#: js/turtledefs.js:222 +#: js/blocks/MeterBlocks.js:1343 +#: js/blocks/WidgetBlocks.js:522 +#.TRANS: musical meter (time signature), e.g., 4:4 +msgid "meter" +msgstr "" + +#: js/turtledefs.js:122 +#: js/turtledefs.js:224 +msgid "intervals" +msgstr "" + +#: js/turtledefs.js:124 +#: js/turtledefs.js:226 +msgid "ornament" +msgstr "" + +#: js/turtledefs.js:125 +#: js/turtledefs.js:227 +#: js/blocks/VolumeBlocks.js:362 +#: js/blocks/VolumeBlocks.js:502 +#: js/blocks/VolumeBlocks.js:545 +msgid "volume" +msgstr "" + +#: js/turtledefs.js:126 +#: js/turtledefs.js:228 +#: js/block-verbose.js:1700 +#: js/block-verbose.js:2626 +#: js/block.js:1664 +#: js/block.js:2554 +#: js/lilypond.js:732 +#: js/lilypond.js:897 +#: js/lilypond.js:941 +#: js/palette.js:577 +#: js/blocks/RhythmBlocks.js:766 +#: js/blocks/DrumBlocks.js:477 +#: js/blocks/VolumeBlocks.js:502 +#: js/widgets/phrasemaker.js:1038 +msgid "drum" +msgstr "" + +#: js/turtledefs.js:129 +#: js/turtledefs.js:231 +msgid "boxes" +msgstr "" + +#: js/turtledefs.js:130 +#: js/turtledefs.js:232 +msgid "widgets" +msgstr "" + +#: js/turtledefs.js:131 +#: js/turtledefs.js:233 +#: js/widgets/phrasemaker.js:1039 +msgid "graphics" +msgstr "" + +#: js/turtledefs.js:134 +#: js/turtledefs.js:236 +msgid "boolean" +msgstr "" + +#: js/turtledefs.js:137 +#: js/turtledefs.js:239 +#: js/blocks/HeapBlocks.js:59 +#: js/widgets/status.js:147 +msgid "heap" +msgstr "" + +#: js/turtledefs.js:138 +#: js/turtledefs.js:240 +#: js/blocks/DictBlocks.js:142 +#: js/blocks/ProgramBlocks.js:495 +msgid "dictionary" +msgstr "" + +#: js/turtledefs.js:139 +#: js/turtledefs.js:241 +msgid "ensemble" +msgstr "" + +#: js/turtledefs.js:140 +#: js/turtledefs.js:242 +msgid "extras" +msgstr "" + +#: js/turtledefs.js:142 +#: js/turtledefs.js:244 +#.TRANS: program as in computer program +#.TRANS: program as in computer program +msgid "program" msgstr "" -#: js/piemenus.js:3766 -msgid " for your pitch preview." +#: js/turtledefs.js:143 +#: js/turtledefs.js:245 +msgid "my blocks" msgstr "" -#: js/palette.js:571 -msgid "grid" +#: js/turtledefs.js:185 +#: js/turtledefs.js:281 +msgid "artwork" msgstr "" -#: js/palette.js:577 -#: js/block.js:1540 -#: js/block.js:2343 -#: js/turtledefs.js:126 -#: js/turtledefs.js:228 -#: js/lilypond.js:740 -#: js/lilypond.js:905 -#: js/lilypond.js:949 -#: js/DrumBlocks.js:486 -#: js/RhythmBlocks.js:766 -#: js/VolumeBlocks.js:502 -#: js/phrasemaker.js:823 -msgid "drum" +#: js/turtledefs.js:185 +#: js/turtledefs.js:281 +msgid "logic" msgstr "" -#: js/palette.js:580 -msgid "effect" +#: js/turtledefs.js:185 +#: js/turtledefs.js:281 +msgid "music" msgstr "" -#: js/palette.js:586 -msgid "sargam" +#: js/turtledefs.js:187 +#: js/turtledefs.js:463 +msgid "Music Blocks is a collection of tools for exploring fundamental musical concepts in a fun way." msgstr "" -#: js/palette.js:589 -#: js/activity.js:1833 -#: js/RhythmBlocks.js:923 -#: js/PitchBlocks.js:442 -#: js/PitchBlocks.js:1748 -#.TRANS: a numeric mapping of the notes in an octave based on the musical mode -msgid "scale degree" +#: js/turtledefs.js:436 +msgid "Welcome to Turtle Blocks" msgstr "" -#: js/palette.js:592 -#: js/activity.js:1860 -msgid "mode name" +#: js/turtledefs.js:438 +#: js/turtledefs.js:465 +#: js/turtledefs.js:774 +#: js/turtledefs.js:805 +msgid "The current version is" msgstr "" -#: js/palette.js:595 -#: js/activity.js:1839 -msgid "invert mode" +#: js/turtledefs.js:446 +#: js/turtledefs.js:483 +msgid "Click the run button to run the project in fast mode." msgstr "" -#: js/palette.js:598 -#: js/activity.js:1836 -msgid "voice name" +#: js/turtledefs.js:452 +msgid "Stop the turtle." msgstr "" -#: js/palette.js:601 -#: js/PitchBlocks.js:1181 -msgid "custom pitch" +#: js/turtledefs.js:454 +#: js/turtledefs.js:491 +msgid "You can also type Alt-S to stop." msgstr "" -#: js/palette.js:605 -#: js/block.js:1456 -#: js/block.js:1575 -#: js/WidgetBlocks.js:218 -#: js/IntervalsBlocks.js:63 -msgid "temperament" +#: js/turtledefs.js:462 +#: js/widgets/help.js:333 +msgid "Welcome to Music Blocks" msgstr "" -#: js/palette.js:609 -msgid "accidental" +#: js/turtledefs.js:472 +#: js/widgets/help.js:334 +msgid "Meet Mr. Mouse!" msgstr "" -#: js/palette.js:615 -#: js/activity.js:1866 -msgid "interval name" +#: js/turtledefs.js:473 +msgid "Mr Mouse is our Music Blocks conductor." msgstr "" -#: js/palette.js:633 -#: js/PitchBlocks.js:405 -msgid "pitch converter" +#: js/turtledefs.js:475 +msgid "Mr Mouse encourages you to explore Music Blocks." msgstr "" -#: js/rubrics.js:522 -#: js/turtledefs.js:119 -#: js/turtledefs.js:221 -#: js/RhythmBlockPaletteBlocks.js:52 -#: js/RhythmBlockPaletteBlocks.js:233 -#: js/ProgramBlocks.js:745 -#: js/rhythmruler.js:1670 -#: js/rhythmruler.js:1677 -#: js/rhythmruler.js:1745 -#: js/rhythmruler.js:1752 -#: js/rhythmruler.js:1830 -#.TRANS: an arrangement of notes based on duration -msgid "rhythm" +#: js/turtledefs.js:477 +msgid "Let us start our tour!" msgstr "" -#: js/rubrics.js:523 -#: js/block.js:2339 -#: js/turtledefs.js:121 -#: js/turtledefs.js:223 -#: js/IntervalsBlocks.js:63 -#: js/PitchBlocks.js:1801 -#: js/PitchBlocks.js:1814 -#: js/SensorsBlocks.js:178 -#: js/phrasemaker.js:821 -#: js/musickeyboard.js:1653 -#.TRANS: pitch number -#.TRANS: we specify pitch in terms of a name and an octave. The name can be CDEFGAB or Do Re Mi Fa Sol La Ti. Octave is a number between 1 and 8. -msgid "pitch" +#: js/turtledefs.js:489 +msgid "Stop the music (and the mice)." msgstr "" -#: js/rubrics.js:524 -#: js/turtledefs.js:123 -#: js/turtledefs.js:225 -msgid "tone" +#: js/turtledefs.js:499 +msgid "Record your project as video." msgstr "" -#: js/rubrics.js:525 -#: js/lilypond.js:613 -#: js/lilypond.js:912 -#: js/lilypond.js:918 -#: js/lilypond.js:956 -msgid "mouse" +#: js/turtledefs.js:505 +msgid "Toggle Fullscreen mode." msgstr "" -#: js/rubrics.js:526 -#: js/turtledefs.js:132 -#: js/turtledefs.js:234 -#: js/phrasemaker.js:825 -msgid "pen" +#: js/turtledefs.js:511 +msgid "Initialize a new project." msgstr "" -#: js/rubrics.js:527 -#: js/turtledefs.js:133 -#: js/turtledefs.js:235 -#: js/NumberBlocks.js:905 -#: js/PitchBlocks.js:1679 -#: js/PitchBlocks.js:1720 -msgid "number" -msgstr "rabe'en" +#: js/turtledefs.js:517 +msgid "You can also load projects from the file system." +msgstr "" -#: js/rubrics.js:528 -#: js/turtledefs.js:127 -#: js/turtledefs.js:229 -msgid "flow" +#: js/turtledefs.js:522 +#: planet/js/StringHelper.js:46 +msgid "Delete" msgstr "" -#: js/rubrics.js:530 -#: js/turtledefs.js:136 -#: js/turtledefs.js:238 -msgid "sensors" +#: js/turtledefs.js:523 +msgid "To delete a block, just right-click on it, then you will be able to see the delete option" msgstr "" -#: js/rubrics.js:531 -#: js/turtledefs.js:135 -#: js/turtledefs.js:237 -#: js/MediaBlocks.js:930 -msgid "media" +#: js/turtledefs.js:528 +#: js/activity.js:2649 +#: planet/js/LocalCard.js:31 +msgid "Copy" +msgstr "Make'eik" + +#: js/turtledefs.js:529 +msgid "To copy a block, just right-click on it, then you will be able to see the copy option" msgstr "" -#: js/rubrics.js:532 -msgid "mice" +#: js/turtledefs.js:534 +#: js/piemenus.js:3411 +msgid "Extract" msgstr "" -#: js/macros.js:711 -#: js/musicutils.js:783 -#: js/synthutils.js:181 -#.TRANS: animal sound effect -msgid "duck" +#: js/turtledefs.js:535 +msgid "To extract a block, just right-click on it, then you will be able to see the extract option" msgstr "" -#: js/toolbar.js:46 -#: js/toolbar.js:107 -msgid "About Music Blocks" +#: js/turtledefs.js:542 +#: js/turtledefs.js:552 +#: js/turtledefs.js:573 +msgid "Save your project to a file." msgstr "" -#: js/toolbar.js:47 -#: js/toolbar.js:108 -#: js/toolbar.js:172 -#: js/toolbar.js:228 -#: js/turtledefs.js:445 -#: js/turtledefs.js:482 -#: js/activity.js:2281 -#: js/activity.js:2289 -#: js/activity.js:2520 -#: js/modewidget.js:77 -#: js/pitchstaircase.js:121 -#: js/phrasemaker.js:302 -#: js/phrasemaker.js:312 -#: js/phrasemaker.js:314 -#: js/phrasemaker.js:3901 -#: js/phrasemaker.js:4061 -#: js/phrasemaker.js:4066 -#: js/phrasemaker.js:4068 -#: js/phrasemaker.js:4183 -#: js/pitchdrummatrix.js:81 -#: js/pitchdrummatrix.js:574 -#: js/pitchdrummatrix.js:576 -#: js/pitchdrummatrix.js:628 -#: js/pitchdrummatrix.js:630 -#: js/pitchdrummatrix.js:645 -#: js/pitchdrummatrix.js:647 -#: js/pitchdrummatrix.js:674 -#: js/pitchdrummatrix.js:676 -#: js/temperament.js:477 -#: js/temperament.js:480 -#: js/temperament.js:540 -#: js/temperament.js:542 -#: js/temperament.js:1835 -#: js/temperament.js:1837 -#: js/temperament.js:1986 -#: js/temperament.js:1988 -#: js/musickeyboard.js:522 -#: js/musickeyboard.js:682 -#: js/musickeyboard.js:684 -#: js/musickeyboard.js:756 -#: js/musickeyboard.js:758 -#: js/rhythmruler.js:298 -#: js/rhythmruler.js:300 -#: js/rhythmruler.js:314 -#: js/rhythmruler.js:316 -#: js/sampler.js:96 -#: js/sampler.js:98 -#: js/sampler.js:229 -#: js/sampler.js:235 -#: js/sampler.js:237 -#: js/tempo.js:84 -#: js/tempo.js:86 -#: js/timbre.js:432 -#: js/timbre.js:434 -#: js/timbre.js:465 -#: js/timbre.js:467 -#: js/timbre.js:746 -#: js/meterwidget.js:80 -#: js/arpeggio.js:90 -#: js/arpeggio.js:547 -#: js/arpeggio.js:549 -#: js/arpeggio.js:644 -#: js/arpeggio.js:646 -msgid "Play" +#: js/turtledefs.js:549 +#: js/turtledefs.js:570 +msgid "save" msgstr "" -#: js/toolbar.js:48 -#: js/toolbar.js:109 -#: js/toolbar.js:173 -#: js/toolbar.js:229 -#: js/turtledefs.js:451 -#: js/turtledefs.js:488 -#: js/activity.js:2297 -#: js/modewidget.js:99 -#: js/modewidget.js:101 -#: js/phrasemaker.js:323 -#: js/phrasemaker.js:325 -#: js/pitchdrummatrix.js:561 -#: js/pitchdrummatrix.js:563 -#: js/temperament.js:1820 -#: js/temperament.js:1822 -#: js/meterwidget.js:101 -#: js/meterwidget.js:103 -#: js/arpeggio.js:534 -#: js/arpeggio.js:536 -msgid "Stop" -msgstr "Ndama'ai" +#: js/turtledefs.js:556 +#: js/turtledefs.js:577 +msgid "Save graphics from your project to as SVG." +msgstr "" -#: js/toolbar.js:49 -#: js/toolbar.js:110 -#: js/toolbar.js:174 -#: js/toolbar.js:230 -#: js/turtledefs.js:498 -msgid "Record" +#: js/turtledefs.js:560 +#: js/turtledefs.js:581 +msgid "Save graphics from your project as PNG." msgstr "" -#: js/toolbar.js:50 -#: js/toolbar.js:51 -msgid "Full screen" +#: js/turtledefs.js:564 +#: js/turtledefs.js:597 +msgid "Save block artwork as an SVG file." msgstr "" -#: js/toolbar.js:52 -#: js/toolbar.js:112 -#: js/toolbar.js:177 -#: js/toolbar.js:232 -#: js/turtledefs.js:504 -msgid "Toggle Fullscreen" +#: js/turtledefs.js:585 +msgid "Save audio from your project as WAV." msgstr "" -#: js/toolbar.js:53 -#: js/toolbar.js:113 -#: js/toolbar.js:178 -#: js/toolbar.js:233 -#: js/turtledefs.js:510 -#: js/StringHelper.js:33 -msgid "New project" +#: js/turtledefs.js:589 +msgid "Save your project to as an ABC file." msgstr "" -#: js/toolbar.js:54 -#: js/toolbar.js:114 -#: js/toolbar.js:179 -#: js/toolbar.js:234 -#: js/turtledefs.js:516 -msgid "Load project from file" +#: js/turtledefs.js:593 +msgid "Save your project to as a Lilypond file." msgstr "" -#: js/toolbar.js:55 -#: js/toolbar.js:115 -#: js/toolbar.js:116 -#: js/toolbar.js:180 -#: js/toolbar.js:235 -#: js/turtledefs.js:541 -#: js/turtledefs.js:550 -#: js/turtledefs.js:571 -msgid "Save project" +#: js/turtledefs.js:604 +msgid "Load samples from server" msgstr "" -#: js/toolbar.js:56 -#: js/toolbar.js:75 -#: js/toolbar.js:77 -#: js/toolbar.js:135 -#: js/toolbar.js:144 -#: js/toolbar.js:146 -#: js/toolbar.js:181 -#: js/toolbar.js:199 -#: js/toolbar.js:201 -#: js/toolbar.js:236 -#: js/toolbar.js:254 -#: js/toolbar.js:256 -msgid "Save project as HTML" +#: js/turtledefs.js:605 +msgid "This button opens a viewer for loading example projects." +msgstr "" + +#: js/turtledefs.js:611 +msgid "Palette buttons" +msgstr "" + +#: js/turtledefs.js:612 +msgid "This toolbar contains the palette buttons including Rhythm Pitch Tone Action and more." msgstr "" -#: js/toolbar.js:57 -#: js/toolbar.js:117 -#: js/toolbar.js:182 -#: js/toolbar.js:237 -msgid "Find and share projects" +#: js/turtledefs.js:614 +msgid "Click to show the palettes of blocks and drag blocks from the palettes onto the canvas to use them." +msgstr "" + +#: js/turtledefs.js:620 +msgid "Cartesian/Polar" +msgstr "" + +#: js/turtledefs.js:621 +msgid "Show or hide a coordinate grid." +msgstr "" + +#: js/turtledefs.js:626 +#: js/turtles.js:902 +msgid "Clean" +msgstr "Matseiñ'" + +#: js/turtledefs.js:627 +msgid "Clear the screen and return the mice to their initial positions." msgstr "" -#: js/toolbar.js:58 -#: js/toolbar.js:118 -#: js/toolbar.js:183 -#: js/toolbar.js:238 -msgid "Offline. Sharing is unavailable" +#: js/turtledefs.js:632 +#: js/turtles.js:955 +msgid "Collapse" msgstr "" -#: js/toolbar.js:59 -#: js/toolbar.js:119 -#: js/toolbar.js:184 -#: js/toolbar.js:239 -msgid "Auxiliary menu" +#: js/turtledefs.js:633 +msgid "Collapse the graphics window." msgstr "" -#: js/toolbar.js:61 -#: js/toolbar.js:121 -#: js/toolbar.js:186 -#: js/toolbar.js:241 -msgid "Run slowly" +#: js/turtledefs.js:638 +#: js/activity.js:5684 +msgid "Home" msgstr "" -#: js/toolbar.js:62 -#: js/toolbar.js:122 -#: js/toolbar.js:187 -#: js/toolbar.js:242 -#: js/turtledefs.js:682 -msgid "Run step by step" +#: js/turtledefs.js:639 +msgid "Return all blocks to the center of the screen." msgstr "" -#: js/toolbar.js:63 -#: js/toolbar.js:123 -#: js/toolbar.js:188 -#: js/toolbar.js:243 -#: js/turtledefs.js:689 -msgid "Display statistics" +#: js/turtledefs.js:644 +msgid "Show/hide blocks" msgstr "" -#: js/toolbar.js:64 -#: js/toolbar.js:124 -#: js/toolbar.js:189 -#: js/toolbar.js:244 -msgid "Load plugin" +#: js/turtledefs.js:645 +msgid "Hide or show the blocks and the palettes." msgstr "" -#: js/toolbar.js:65 -#: js/toolbar.js:125 -#: js/toolbar.js:190 -#: js/toolbar.js:245 -#: js/turtledefs.js:696 -msgid "Delete plugin" +#: js/turtledefs.js:650 +msgid "Expand/collapse collapsable blocks" msgstr "" -#: js/toolbar.js:66 -#: js/toolbar.js:126 -#: js/toolbar.js:191 -#: js/toolbar.js:246 -msgid "Enable horizontal scrolling" +#: js/turtledefs.js:651 +msgid "Expand or collapse start and action stacks." msgstr "" -#: js/toolbar.js:67 -#: js/toolbar.js:127 -#: js/toolbar.js:192 -#: js/toolbar.js:247 -msgid "Disable horizontal scrolling" +#: js/turtledefs.js:658 +#: js/activity.js:5704 +msgid "Decrease block size" msgstr "" -#: js/toolbar.js:68 -#: js/toolbar.js:128 -#: js/toolbar.js:193 -#: js/toolbar.js:248 -#: js/LocalCard.js:54 -#: js/StringHelper.js:71 -msgid "Merge with current project" +#: js/turtledefs.js:659 +msgid "Decrease the size of the blocks." msgstr "" -#: js/toolbar.js:69 -#: js/toolbar.js:129 -msgid "Set Pitch Preview" +#: js/turtledefs.js:664 +#: js/activity.js:5710 +msgid "Increase block size" msgstr "" -#: js/toolbar.js:70 -#: js/toolbar.js:130 -#: js/toolbar.js:194 -#: js/toolbar.js:249 -msgid "Toggle JavaScript Editor" +#: js/turtledefs.js:665 +msgid "Increase the size of the blocks." msgstr "" -#: js/toolbar.js:71 -#: js/toolbar.js:131 -#: js/toolbar.js:195 -#: js/toolbar.js:250 -#: js/turtledefs.js:724 -msgid "Restore" +#: js/turtledefs.js:670 +msgid "Expand/collapse option toolbar" msgstr "" -#: js/toolbar.js:72 -#: js/toolbar.js:132 -#: js/toolbar.js:196 -#: js/toolbar.js:251 -msgid "Switch to beginner mode" +#: js/turtledefs.js:671 +msgid "Click this button to expand or collapse the auxillary toolbar." msgstr "" -#: js/toolbar.js:73 -#: js/toolbar.js:133 -#: js/toolbar.js:197 -#: js/toolbar.js:252 -msgid "Switch to advanced mode" +#: js/turtledefs.js:676 +msgid "Run slow" msgstr "" -#: js/toolbar.js:74 -#: js/toolbar.js:134 -#: js/toolbar.js:143 -#: js/toolbar.js:198 -#: js/toolbar.js:253 -#: js/turtledefs.js:738 -msgid "Select language" +#: js/turtledefs.js:677 +msgid "Click to run the project in slow mode." msgstr "" -#: js/toolbar.js:76 -#: js/toolbar.js:79 -#: js/toolbar.js:137 -#: js/turtledefs.js:579 -msgid "Save mouse artwork as PNG" +#: js/turtledefs.js:683 +msgid "Click to run the project step by step." msgstr "" -#: js/toolbar.js:78 -#: js/toolbar.js:136 -#: js/turtledefs.js:575 -msgid "Save mouse artwork as SVG" +#: js/turtledefs.js:690 +msgid "Display statistics about your Music project." msgstr "" -#: js/toolbar.js:80 -#: js/toolbar.js:138 -#: js/turtledefs.js:583 -msgid "Save music as WAV" +#: js/turtledefs.js:697 +msgid "Delete a selected plugin." msgstr "" -#: js/toolbar.js:81 -#: js/toolbar.js:139 -#: js/turtledefs.js:587 -msgid "Save sheet music as ABC" +#: js/turtledefs.js:704 +msgid "Enable scrolling" msgstr "" -#: js/toolbar.js:82 -#: js/toolbar.js:140 -#: js/turtledefs.js:591 -msgid "Save sheet music as Lilypond" +#: js/turtledefs.js:705 +msgid "You can scroll the blocks on the canvas." msgstr "" -#: js/toolbar.js:83 -msgid "Save sheet music as MusicXML" +#: js/turtledefs.js:714 +msgid "Wrap Turtle" msgstr "" -#: js/toolbar.js:84 -#: js/toolbar.js:141 -#: js/toolbar.js:149 -#: js/toolbar.js:204 -#: js/toolbar.js:259 -#: js/turtledefs.js:562 -#: js/turtledefs.js:595 -msgid "Save block artwork as SVG" +#: js/turtledefs.js:715 +msgid "Turn Turtle wrapping On or Off." msgstr "" -#: js/toolbar.js:85 -#: js/toolbar.js:142 -#: js/toolbar.js:150 -#: js/toolbar.js:205 -#: js/toolbar.js:260 -msgid "Confirm" +#: js/turtledefs.js:725 +msgid "Restore blocks from the trash." msgstr "" -#: js/toolbar.js:86 -#: js/toolbar.js:151 -#: js/toolbar.js:206 -#: js/toolbar.js:261 -msgid "English (United States)" +#: js/turtledefs.js:732 +msgid "Switch mode" msgstr "" -#: js/toolbar.js:87 -#: js/toolbar.js:152 -#: js/toolbar.js:207 -#: js/toolbar.js:262 -msgid "English (United Kingdom)" +#: js/turtledefs.js:733 +msgid "Switch between beginner and advance modes." msgstr "" -#: js/toolbar.js:88 -#: js/toolbar.js:153 -#: js/toolbar.js:208 -#: js/toolbar.js:263 -msgid "日本語" +#: js/turtledefs.js:739 +msgid "Select your language preference." msgstr "" -#: js/toolbar.js:89 -msgid "한국어" +#: js/turtledefs.js:745 +msgid "Keyboard shortcuts" msgstr "" -#: js/toolbar.js:90 -#: js/toolbar.js:155 -#: js/toolbar.js:210 -#: js/toolbar.js:265 -msgid "español" +#: js/turtledefs.js:746 +msgid "You can type d to create a do block and r to create a re block etc." msgstr "" -#: js/toolbar.js:91 -#: js/toolbar.js:156 -#: js/toolbar.js:211 -#: js/toolbar.js:266 -msgid "português" +#: js/turtledefs.js:753 +msgid "Show these messages." msgstr "" -#: js/toolbar.js:92 -#: js/toolbar.js:157 -#: js/toolbar.js:212 -#: js/toolbar.js:267 -msgid "にほんご" +#: js/turtledefs.js:759 +#: js/turtledefs.js:790 +#: js/widgets/help.js:335 +msgid "Guide" msgstr "" -#: js/toolbar.js:93 -#: js/toolbar.js:158 -#: js/toolbar.js:213 -#: js/toolbar.js:268 -msgid "中文" +#: js/turtledefs.js:760 +msgid "A detailed guide to Turtle Blocks is available." msgstr "" -#: js/toolbar.js:94 -#: js/toolbar.js:159 -#: js/toolbar.js:214 -#: js/toolbar.js:269 -msgid "ภาษาไทย" +#: js/turtledefs.js:764 +msgid "Turtle Blocks Guide" msgstr "" -#: js/toolbar.js:95 -#: js/toolbar.js:160 -#: js/toolbar.js:215 -#: js/toolbar.js:270 -msgid "aymara" +#: js/turtledefs.js:767 +#: js/turtledefs.js:798 +#: js/widgets/help.js:336 +msgid "About" msgstr "" -#: js/toolbar.js:96 -#: js/toolbar.js:161 -#: js/toolbar.js:216 -#: js/toolbar.js:271 -msgid "quechua" +#: js/turtledefs.js:768 +msgid "Turtle Blocks is an open source collection of tools for exploring musical concepts." msgstr "" -#: js/toolbar.js:97 -#: js/toolbar.js:162 -#: js/toolbar.js:217 -#: js/toolbar.js:272 -msgid "guarani" +#: js/turtledefs.js:770 +msgid "A full list of contributors can be found in the Turtle Blocks GitHub repository." msgstr "" -#: js/toolbar.js:98 -#: js/toolbar.js:163 -#: js/toolbar.js:218 -#: js/toolbar.js:273 -msgid "हिंदी" +#: js/turtledefs.js:772 +msgid "Turtle Blocks is licensed under the AGPL." msgstr "" -#: js/toolbar.js:99 -#: js/toolbar.js:165 -#: js/toolbar.js:219 -#: js/toolbar.js:275 -msgid "igbo" +#: js/turtledefs.js:780 +msgid "Turtle Blocks GitHub repository" msgstr "" -#: js/toolbar.js:100 -#: js/toolbar.js:166 -#: js/toolbar.js:220 -#: js/toolbar.js:276 -msgid "عربى" +#: js/turtledefs.js:783 +#: js/turtledefs.js:814 +#: js/widgets/help.js:337 +#: js/widgets/help.js:359 +msgid "Congratulations." msgstr "" -#: js/toolbar.js:101 -#: js/toolbar.js:164 -#: js/toolbar.js:221 -#: js/toolbar.js:274 -msgid "తెలుగు" +#: js/turtledefs.js:784 +msgid "You have finished the tour. Please enjoy Turtle Blocks!" msgstr "" -#: js/toolbar.js:102 -#: js/toolbar.js:167 -#: js/toolbar.js:222 -#: js/toolbar.js:277 -msgid "עִברִית" +#: js/turtledefs.js:791 +msgid "A detailed guide to Music Blocks is available." msgstr "" -#: js/toolbar.js:111 -#: js/toolbar.js:175 -#: js/toolbar.js:176 -#: js/toolbar.js:231 -msgid "Full Screen" +#: js/turtledefs.js:799 +msgid "Music Blocks is an open source collection of tools for exploring musical concepts." msgstr "" -#: js/toolbar.js:145 -#: js/toolbar.js:148 -#: js/toolbar.js:200 -#: js/toolbar.js:203 -#: js/toolbar.js:255 -#: js/toolbar.js:258 -#: js/turtledefs.js:558 -msgid "Save turtle artwork as PNG" +#: js/turtledefs.js:801 +msgid "A full list of contributors can be found in the Music Blocks GitHub repository." msgstr "" -#: js/toolbar.js:147 -#: js/toolbar.js:202 -#: js/toolbar.js:257 -#: js/turtledefs.js:554 -msgid "Save turtle artwork as SVG" +#: js/turtledefs.js:803 +msgid "Music Blocks is licensed under the AGPL." msgstr "" -#: js/toolbar.js:154 -#: js/toolbar.js:209 -#: js/toolbar.js:264 -msgid "한국인" +#: js/turtledefs.js:811 +msgid "Music Blocks GitHub repository" msgstr "" -#: js/toolbar.js:171 -#: js/toolbar.js:227 -msgid "About Turtle Blocks" +#: js/turtledefs.js:815 +msgid "You have finished the tour. Please enjoy Music Blocks!" msgstr "" -#: js/toolbar.js:429 -#: js/toolbar.js:440 -msgid "Turtle Wrap Off" +#: js/turtles.js:882 +msgid "Grid" msgstr "" -#: js/toolbar.js:442 -msgid "Turtle Wrap On" +#: js/turtles.js:1024 +msgid "Expand" +msgstr "" + +#: js/block-verbose.js:1616 +#: js/block-verbose.js:1735 +#: js/block.js:1580 +#: js/block.js:1699 +#: js/palette.js:605 +#: js/blocks/IntervalsBlocks.js:63 +#: js/blocks/WidgetBlocks.js:259 +msgid "temperament" msgstr "" -#: js/block.js:1470 +#: js/block-verbose.js:1630 +#: js/block.js:1594 msgid "matrix" msgstr "" -#: js/block.js:1477 -#: js/WidgetBlocks.js:1226 +#: js/block-verbose.js:1637 +#: js/block.js:1601 +#: js/blocks/WidgetBlocks.js:1509 #: plugins/rodi.rtp:324 msgid "status" msgstr "" -#: js/block.js:1484 +#: js/block-verbose.js:1644 +#: js/block.js:1608 msgid "drum mapper" msgstr "" -#: js/block.js:1491 +#: js/block-verbose.js:1651 +#: js/block.js:1615 msgid "ruler" msgstr "" -#: js/block.js:1498 -#: js/WidgetBlocks.js:327 +#: js/block-verbose.js:1658 +#: js/block.js:1622 +#: js/blocks/WidgetBlocks.js:397 #.TRANS: timbre is the character or quality of a musical sound msgid "timbre" msgstr "" -#: js/block.js:1505 +#: js/block-verbose.js:1665 +#: js/block.js:1629 msgid "stair" msgstr "" -#: js/block.js:1512 -#: js/WidgetBlocks.js:577 +#: js/block-verbose.js:1672 +#: js/block.js:1636 +#: js/blocks/WidgetBlocks.js:707 #.TRANS: the speed at music is should be played. msgid "tempo" msgstr "" -#: js/block.js:1519 -#: js/block.js:1582 -#: js/IntervalsBlocks.js:1268 +#: js/block-verbose.js:1679 +#: js/block-verbose.js:1742 +#: js/block.js:1643 +#: js/block.js:1706 +#: js/blocks/IntervalsBlocks.js:1464 #.TRANS: mode, e.g., Major in C Major msgid "mode" msgstr "" -#: js/block.js:1526 +#: js/block-verbose.js:1686 +#: js/block.js:1650 msgid "slider" msgstr "" -#: js/block.js:1533 -#: js/SensorsBlocks.js:1001 +#: js/block-verbose.js:1693 +#: js/block.js:1657 +#: js/blocks/SensorsBlocks.js:1001 msgid "keyboard" msgstr "" -#: js/block.js:1547 -#: js/WidgetBlocks.js:957 -#: js/WidgetBlocks.js:988 +#: js/block-verbose.js:1707 +#: js/block.js:1671 +#: js/blocks/WidgetBlocks.js:1190 +#: js/blocks/WidgetBlocks.js:1228 #.TRANS: widget for subdividing a measure into distinct rhythmic elements msgid "rhythm maker" msgstr "" -#: js/block.js:1554 -#: js/block.js:2182 -#: js/block.js:2236 -#: js/RhythmBlockPaletteBlocks.js:70 -#: js/RhythmBlockPaletteBlocks.js:251 -#: js/RhythmBlockPaletteBlocks.js:484 -#: js/RhythmBlockPaletteBlocks.js:553 -#: js/RhythmBlockPaletteBlocks.js:604 -#: js/RhythmBlockPaletteBlocks.js:874 -#: js/RhythmBlocks.js:33 -#: js/RhythmBlocks.js:356 -#: js/RhythmBlocks.js:766 -#: js/RhythmBlocks.js:806 -#: js/OrnamentBlocks.js:220 -#: js/OrnamentBlocks.js:312 -#: js/MeterBlocks.js:1367 -#: js/DictActions.js:85 -#: js/phrasemaker.js:731 -#: js/phrasemaker.js:2393 -#: js/phrasemaker.js:2436 -#: js/phrasemaker.js:2534 +#: js/block-verbose.js:1714 +#: js/block-verbose.js:2457 +#: js/block-verbose.js:2514 +#: js/block.js:1678 +#: js/block.js:2385 +#: js/block.js:2442 +#: js/blocks/MeterBlocks.js:1367 +#: js/blocks/OrnamentBlocks.js:220 +#: js/blocks/OrnamentBlocks.js:312 +#: js/blocks/RhythmBlocks.js:33 +#: js/blocks/RhythmBlocks.js:356 +#: js/blocks/RhythmBlocks.js:766 +#: js/blocks/RhythmBlocks.js:806 +#: js/blocks/RhythmBlockPaletteBlocks.js:70 +#: js/blocks/RhythmBlockPaletteBlocks.js:252 +#: js/blocks/RhythmBlockPaletteBlocks.js:485 +#: js/blocks/RhythmBlockPaletteBlocks.js:554 +#: js/blocks/RhythmBlockPaletteBlocks.js:605 +#: js/blocks/RhythmBlockPaletteBlocks.js:875 +#: js/turtleactions/DictActions.js:85 +#: js/widgets/phrasemaker.js:942 +#: js/widgets/phrasemaker.js:2656 +#: js/widgets/phrasemaker.js:2699 +#: js/widgets/phrasemaker.js:2810 #.TRANS: the value (e.g., 1/4 note) of the note being played. msgid "note value" msgstr "" -#: js/block.js:1561 -#: js/block.js:2110 -#: js/block.js:2133 -#: js/IntervalsBlocks.js:875 -#: js/OrnamentBlocks.js:312 +#: js/block-verbose.js:1721 +#: js/block-verbose.js:2382 +#: js/block-verbose.js:2405 +#: js/block.js:1685 +#: js/block.js:2310 +#: js/block.js:2333 +#: js/blocks/IntervalsBlocks.js:1071 +#: js/blocks/OrnamentBlocks.js:312 #.TRANS: calculate a relative step between notes based on semi-tones msgid "scalar interval" msgstr "" -#: js/block.js:1568 -#: js/RhythmBlocks.js:148 +#: js/block-verbose.js:1728 +#: js/block.js:1692 +#: js/blocks/RhythmBlocks.js:148 msgid "milliseconds" msgstr "" -#: js/block.js:2180 -#: js/block.js:2184 -#: js/block.js:2234 -#: js/block.js:2345 -#: js/ProgramBlocks.js:1273 -#: js/RhythmBlocks.js:712 -#: js/rhythmruler.js:834 -#: js/rhythmruler.js:961 +#: js/block-verbose.js:2455 +#: js/block-verbose.js:2459 +#: js/block-verbose.js:2512 +#: js/block-verbose.js:2628 +#: js/block.js:2383 +#: js/block.js:2387 +#: js/block.js:2440 +#: js/block.js:2556 +#: js/blocks/RhythmBlocks.js:712 +#: js/blocks/ProgramBlocks.js:1273 +#: js/widgets/rhythmruler.js:1183 +#: js/widgets/rhythmruler.js:1329 msgid "silence" msgstr "" -#: js/block.js:2265 -#: js/block.js:3134 -#: js/block.js:3151 -#: js/activity.js:2336 -#: js/activity.js:2387 -#: js/musicutils.js:2932 -#: js/musicutils.js:4287 +#: js/block-verbose.js:2548 +#: js/block-verbose.js:3492 +#: js/block-verbose.js:3509 +#: js/activity.js:2718 +#: js/activity.js:2769 +#: js/block.js:2476 +#: js/block.js:3416 +#: js/block.js:3433 +#: js/utils/musicutils.js:3780 +#: js/utils/musicutils.js:5273 +#.TRANS: the note names must be separated by single spaces #.TRANS: the note names must be separated by single spaces #.TRANS: the note names must be separated by single spaces msgid "ti la sol fa mi re do" msgstr "" -#: js/block.js:2333 +#: js/block-verbose.js:2616 +#: js/block.js:2544 +#.TRANS: scalar step #.TRANS: scalar step msgid "down" msgstr "" -#: js/block.js:2334 +#: js/block-verbose.js:2617 +#: js/block.js:2545 msgid "up" msgstr "" -#: js/block.js:3477 -#: js/block.js:3490 -#: js/ExtrasBlocks.js:612 +#: js/block-verbose.js:3026 +#: js/block.js:2950 +msgid "Silence block cannot be removed." +msgstr "" + +#: js/block-verbose.js:3824 +#: js/block.js:3748 +#: js/blocks.js:2607 +#: js/blocks.js:3218 +#: js/palette.js:618 +#: js/blocks/BooleanBlocks.js:77 +#: js/blocks/BooleanBlocks.js:167 +#: js/blocks/BooleanBlocks.js:251 +#: js/blocks/BooleanBlocks.js:335 +#: js/blocks/BooleanBlocks.js:433 +#: js/blocks/BooleanBlocks.js:539 +#: js/blocks/BooleanBlocks.js:640 +#: js/blocks/BooleanBlocks.js:741 +#: js/blocks/BooleanBlocks.js:847 +#: js/blocks/BooleanBlocks.js:948 +#: js/blocks/BooleanBlocks.js:1033 +#: js/blocks/SensorsBlocks.js:910 +msgid "true" +msgstr "" + +#: js/block-verbose.js:3824 +#: js/block.js:3748 +#: js/blocks.js:2609 +#: js/blocks.js:3220 +#: js/blocks/BooleanBlocks.js:79 +#: js/blocks/BooleanBlocks.js:169 +#: js/blocks/BooleanBlocks.js:253 +#: js/blocks/BooleanBlocks.js:337 +#: js/blocks/BooleanBlocks.js:435 +#: js/blocks/BooleanBlocks.js:541 +#: js/blocks/BooleanBlocks.js:642 +#: js/blocks/BooleanBlocks.js:743 +#: js/blocks/BooleanBlocks.js:849 +#: js/blocks/BooleanBlocks.js:950 +#: js/blocks/SensorsBlocks.js:912 +msgid "false" +msgstr "" + +#: js/block-verbose.js:3835 +#: js/block-verbose.js:3848 +#: js/block.js:3759 +#: js/block.js:3772 +#: js/blocks/ExtrasBlocks.js:615 msgid "Cartesian" msgstr "" -#: js/block.js:3478 -#: js/block.js:3491 -#: js/ExtrasBlocks.js:616 +#: js/block-verbose.js:3836 +#: js/block-verbose.js:3849 +#: js/block.js:3760 +#: js/block.js:3773 +#: js/blocks/ExtrasBlocks.js:619 msgid "polar" msgstr "" -#: js/block.js:3479 -#: js/block.js:3492 -#: js/ExtrasBlocks.js:620 +#: js/block-verbose.js:3837 +#: js/block-verbose.js:3850 +#: js/block.js:3761 +#: js/block.js:3774 +#: js/blocks/ExtrasBlocks.js:623 msgid "Cartesian+polar" msgstr "" -#: js/block.js:3480 -#: js/block.js:3499 -#: js/ExtrasBlocks.js:649 +#: js/block-verbose.js:3838 +#: js/block-verbose.js:3857 +#: js/block.js:3762 +#: js/block.js:3781 +#: js/blocks/ExtrasBlocks.js:652 msgid "none" msgstr "" -#: js/block.js:3493 -#: js/ExtrasBlocks.js:625 +#: js/block-verbose.js:3851 +#: js/block.js:3775 +#: js/blocks/ExtrasBlocks.js:628 msgid "treble" msgstr "" -#: js/block.js:3494 -#: js/ExtrasBlocks.js:629 +#: js/block-verbose.js:3852 +#: js/block.js:3776 +#: js/blocks/ExtrasBlocks.js:632 msgid "grand staff" msgstr "" -#: js/block.js:3495 -#: js/ExtrasBlocks.js:633 +#: js/block-verbose.js:3853 +#: js/block.js:3777 +#: js/blocks/ExtrasBlocks.js:636 msgid "mezzo-soprano" msgstr "" -#: js/block.js:3496 -#: js/ExtrasBlocks.js:637 +#: js/block-verbose.js:3854 +#: js/block.js:3778 +#: js/blocks/ExtrasBlocks.js:640 msgid "alto" msgstr "" -#: js/block.js:3497 -#: js/ExtrasBlocks.js:641 +#: js/block-verbose.js:3855 +#: js/block.js:3779 +#: js/blocks/ExtrasBlocks.js:644 msgid "tenor" msgstr "" -#: js/block.js:3498 -#: js/ExtrasBlocks.js:645 -#: js/musicutils.js:736 -#: js/synthutils.js:64 +#: js/block-verbose.js:3856 +#: js/block.js:3780 +#: js/utils/musicutils.js:1115 +#: js/utils/synthutils.js:80 +#: js/blocks/ExtrasBlocks.js:648 #.TRANS: musical instrument msgid "bass" msgstr "" -#: js/block.js:4075 +#: js/block-verbose.js:3901 +#: js/block.js:3825 +#: js/blocks.js:2600 +#: js/blocks.js:3211 +msgid "on2" +msgstr "" + +#: js/block-verbose.js:3903 +#: js/block.js:3827 +#: js/blocks.js:2602 +#: js/blocks.js:3213 +msgid "off" +msgstr "" + +#: js/block-verbose.js:4470 +#: js/block.js:4394 msgid "Not a number" msgstr "" -#: js/block.js:4082 +#: js/block-verbose.js:4477 +#: js/block.js:4401 msgid "Octave value must be between 1 and 10." msgstr "" -#: js/block.js:4090 +#: js/block-verbose.js:4485 +#: js/block.js:4409 msgid "Numbers can have at most 10 digits." msgstr "" -#: js/notation.js:353 -msgid "Lilypond cannot process pickup of " +#: js/activity.js:390 +#: js/activity.js:395 +msgid "Search for blocks" msgstr "" -#: js/turtledefs.js:40 -#.TRANS: put the URL to the guide here, e.g., https://github.com/sugarlabs/turtleblocksjs/tree/master/guide/README.md -msgid "guide url" +#: js/activity.js:1413 +msgid "Refresh your browser to change to advanced mode." msgstr "" -#: js/turtledefs.js:85 -#: js/turtledefs.js:437 -msgid "Turtle Blocks is a Logo-inspired turtle that draws colorful pictures with snap-together visual-programming blocks." +#: js/activity.js:1418 +msgid "Refresh your browser to change to beginner mode." msgstr "" -#: js/turtledefs.js:118 -#: js/turtledefs.js:220 -msgid "search" +#: js/activity.js:1477 +msgid "Catching mice" msgstr "" -#: js/turtledefs.js:120 -#: js/turtledefs.js:222 -#: js/WidgetBlocks.js:437 -#: js/MeterBlocks.js:1343 -#.TRANS: musical meter (time signature), e.g., 4:4 -msgid "meter" +#: js/activity.js:1478 +msgid "Cleaning the instruments" +msgstr "" + +#: js/activity.js:1479 +msgid "Testing key pieces" +msgstr "" + +#: js/activity.js:1480 +msgid "Sight-reading" +msgstr "" + +#: js/activity.js:1481 +msgid "Combining math and music" +msgstr "" + +#: js/activity.js:1482 +msgid "Generating more blocks" +msgstr "" + +#: js/activity.js:1483 +msgid "Do Re Mi Fa Sol La Ti Do" +msgstr "" + +#: js/activity.js:1484 +msgid "Tuning string instruments" +msgstr "" + +#: js/activity.js:1485 +msgid "Pressing random keys" +msgstr "" + +#: js/activity.js:1663 +msgid "plugins will be removed upon restart." +msgstr "" + +#: js/activity.js:1672 +msgid "show Cartesian" +msgstr "" + +#: js/activity.js:2211 +#: js/palette.js:589 +#: js/blocks/RhythmBlocks.js:923 +#: js/blocks/PitchBlocks.js:442 +#: js/blocks/PitchBlocks.js:1786 +#.TRANS: a numeric mapping of the notes in an octave based on the musical mode +msgid "scale degree" +msgstr "" + +#: js/activity.js:2214 +#: js/palette.js:598 +msgid "voice name" +msgstr "" + +#: js/activity.js:2217 +#: js/palette.js:595 +msgid "invert mode" +msgstr "" + +#: js/activity.js:2220 +msgid "output tools" +msgstr "" + +#: js/activity.js:2223 +msgid "custom note" +msgstr "" + +#: js/activity.js:2226 +msgid "accidental name" +msgstr "" + +#: js/activity.js:2229 +#: js/blocks/PitchBlocks.js:855 +msgid "east indian solfege" +msgstr "" + +#: js/activity.js:2232 +#: js/blocks/PitchBlocks.js:869 +msgid "note name" +msgstr "" + +#: js/activity.js:2235 +#: js/blocks/IntervalsBlocks.js:94 +msgid "temperament name" +msgstr "" + +#: js/activity.js:2238 +#: js/palette.js:592 +msgid "mode name" +msgstr "" + +#: js/activity.js:2241 +msgid "chord name" +msgstr "" + +#: js/activity.js:2244 +#: js/palette.js:615 +msgid "interval name" +msgstr "" + +#: js/activity.js:2247 +msgid "filter type" +msgstr "" + +#: js/activity.js:2250 +msgid "oscillator type" +msgstr "" + +#: js/activity.js:2253 +#: js/blocks.js:2479 +#: js/blocks.js:2487 +msgid "audio file" +msgstr "" + +#: js/activity.js:2256 +#: js/blocks/DrumBlocks.js:32 +msgid "noise name" +msgstr "" + +#: js/activity.js:2259 +#: js/blocks/DrumBlocks.js:75 +msgid "drum name" +msgstr "" + +#: js/activity.js:2262 +#: js/blocks/DrumBlocks.js:119 +msgid "effects name" +msgstr "" + +#: js/activity.js:2265 +msgid "wrap mode" +msgstr "" + +#: js/activity.js:2268 +msgid "load file" +msgstr "" + +#: js/activity.js:2435 +#: js/activity.js:5851 +msgid "This block is deprecated." +msgstr "" + +#: js/activity.js:2437 +#: js/activity.js:5853 +msgid "Block cannot be found." +msgstr "" + +#: js/activity.js:2645 +msgid "Saving block artwork" +msgstr "" + +#: js/activity.js:2656 +msgid "Erase" +msgstr "" + +#: js/activity.js:2683 +#: js/activity.js:2705 +msgid "Paste" +msgstr "Makua'al" + +#: js/activity.js:2687 +msgid "Save block help" +msgstr "" + +#: js/activity.js:2772 +msgid "Jumping to the bottom of the page." +msgstr "" + +#: js/activity.js:2778 +msgid "Scrolling up." +msgstr "" + +#: js/activity.js:2783 +msgid "Scrolling down." +msgstr "" + +#: js/activity.js:2788 +msgid "Extracting block" +msgstr "" + +#: js/activity.js:2796 +msgid "Moving block up." +msgstr "" + +#: js/activity.js:2817 +msgid "Moving block down." +msgstr "" + +#: js/activity.js:2838 +msgid "Moving block left." +msgstr "" + +#: js/activity.js:2855 +msgid "Moving block right." msgstr "" -#: js/turtledefs.js:122 -#: js/turtledefs.js:224 -msgid "intervals" +#: js/activity.js:2870 +msgid "Jump to home position." msgstr "" -#: js/turtledefs.js:124 -#: js/turtledefs.js:226 -msgid "ornament" +#: js/activity.js:2897 +msgid "Hide blocks" msgstr "" -#: js/turtledefs.js:125 -#: js/turtledefs.js:227 -#: js/VolumeBlocks.js:362 -#: js/VolumeBlocks.js:502 -#: js/VolumeBlocks.js:545 -msgid "volume" +#: js/activity.js:4500 +msgid "Click the run button to run the project." msgstr "" -#: js/turtledefs.js:129 -#: js/turtledefs.js:231 -msgid "boxes" +#: js/activity.js:5692 +msgid "Show/hide block" msgstr "" -#: js/turtledefs.js:130 -#: js/turtledefs.js:232 -msgid "widgets" +#: js/activity.js:5698 +msgid "Expand/collapse blocks" msgstr "" -#: js/turtledefs.js:131 -#: js/turtledefs.js:233 -#: js/phrasemaker.js:824 -msgid "graphics" +#: js/activity.js:5976 +msgid "Could not parse JSON input." msgstr "" -#: js/turtledefs.js:134 -#: js/turtledefs.js:236 -msgid "boolean" +#: js/activity.js:6475 +#: js/activity.js:6580 +#: js/activity.js:6631 +msgid "Cannot load project from the file. Please check the file type." msgstr "" -#: js/turtledefs.js:137 -#: js/turtledefs.js:239 -#: js/HeapBlocks.js:59 -#: js/status.js:147 -msgid "heap" +#: js/activity.js:6917 +msgid "Invalid parameters" msgstr "" -#: js/turtledefs.js:138 -#: js/turtledefs.js:240 -#: js/ProgramBlocks.js:495 -#: js/DictBlocks.js:142 -msgid "dictionary" +#: js/blocks.js:1212 +#: js/blocks.js:3444 +#: js/blocks.js:3834 +#: js/blocks.js:3865 +#: js/blocks.js:3914 +#: js/blocks.js:3949 +#: js/blocks.js:6586 +#: js/palette.js:509 +#: js/palette.js:638 +#: js/palette.js:1105 +#: js/blocks/BoxesBlocks.js:282 +#: js/blocks/BoxesBlocks.js:285 +#: js/blocks/BoxesBlocks.js:405 +#: js/blocks/BoxesBlocks.js:594 +msgid "box" +msgstr "ndakjaat" + +#: js/blocks.js:1713 +msgid "Consider breaking this stack into parts." msgstr "" -#: js/turtledefs.js:139 -#: js/turtledefs.js:241 -msgid "ensemble" +#: js/blocks.js:2472 +#: js/palette.js:653 +#: js/blocks/MediaBlocks.js:602 +msgid "open file" msgstr "" -#: js/turtledefs.js:140 -#: js/turtledefs.js:242 -msgid "extras" +#: js/blocks.js:3247 +#: js/palette.js:574 +#: js/blocks/MediaBlocks.js:892 +#: js/blocks/MediaBlocks.js:963 +msgid "text" +msgstr "kily'e keich'" + +#: js/blocks.js:3443 +#: js/palette.js:641 +#: js/palette.js:642 +#: js/blocks/BoxesBlocks.js:514 +msgid "store in box" msgstr "" -#: js/turtledefs.js:142 -#: js/turtledefs.js:244 -#.TRANS: program as in computer program -#.TRANS: program as in computer program -msgid "program" +#: js/blocks.js:3448 +#: js/blocks.js:3888 +#: js/blocks.js:3923 +#: js/blocks.js:3958 +#: js/blocks.js:5862 +#: js/blocks.js:5883 +#: js/blocks/BoxesBlocks.js:772 +msgid "box1" msgstr "" -#: js/turtledefs.js:143 -#: js/turtledefs.js:245 -msgid "my blocks" +#: js/blocks.js:3450 +#: js/blocks.js:3890 +#: js/blocks.js:3925 +#: js/blocks.js:3960 +#: js/blocks.js:5864 +#: js/blocks.js:5885 +#: js/blocks/BoxesBlocks.js:663 +msgid "box2" msgstr "" -#: js/turtledefs.js:185 -#: js/turtledefs.js:281 -msgid "artwork" +#: js/blocks.js:4122 +#: js/palette.js:639 +#: js/palette.js:644 +#: js/palette.js:1041 +#: js/blocks/BoxesBlocks.js:591 +msgid "store in" +msgstr "makjaat kiñkiep'" + +#: js/blocks.js:4122 +#: js/blocks/BoxesBlocks.js:595 +#: js/blocks/DictBlocks.js:215 +#: js/blocks/DictBlocks.js:289 +#: js/blocks/EnsembleBlocks.js:391 +#: js/blocks/EnsembleBlocks.js:402 +#: js/blocks/MediaBlocks.js:746 +#: js/blocks/PitchBlocks.js:656 +#: js/blocks/PitchBlocks.js:934 +#: js/blocks/PitchBlocks.js:1866 +#: js/blocks/ProgramBlocks.js:390 +#: js/blocks/ProgramBlocks.js:495 +#: js/blocks/ProgramBlocks.js:658 +#: js/blocks/ToneBlocks.js:1025 +msgid "name" msgstr "" -#: js/turtledefs.js:185 -#: js/turtledefs.js:281 -msgid "logic" +#: js/blocks.js:4122 +#: js/blocks/BoxesBlocks.js:75 +#: js/blocks/BoxesBlocks.js:595 +#: js/blocks/DictBlocks.js:289 +#: js/blocks/DictBlocks.js:430 +#: js/blocks/HeapBlocks.js:544 +#: js/blocks/RhythmBlocks.js:1130 +msgid "value" +msgstr "liñjú" + +#: js/blocks.js:4465 +msgid "Forever loop detected inside a note value block. Unexpected things may happen." msgstr "" -#: js/turtledefs.js:185 -#: js/turtledefs.js:281 -msgid "music" +#: js/blocks.js:4988 +msgid "There is no block selected." msgstr "" -#: js/turtledefs.js:187 -#: js/turtledefs.js:463 -msgid "Music Blocks is a collection of tools for exploring fundamental musical concepts in a fun way." +#: js/blocks.js:5091 +#: js/blocks/MediaBlocks.js:888 +msgid "show" +msgstr "nda'u'up" + +#: js/blocks.js:5094 +#: js/blocks/MediaBlocks.js:803 +#.TRANS: Avatar is the image used to determine the appearance of the mouse. +msgid "avatar" msgstr "" -#: js/turtledefs.js:436 -msgid "Welcome to Turtle Blocks" +#: js/blocks.js:5097 +#: js/blocks/ToneBlocks.js:1010 +#: js/widgets/sampler.js:975 +#.TRANS: The sound sample that the user uploads. +msgid "sample" msgstr "" -#: js/turtledefs.js:438 -#: js/turtledefs.js:465 -#: js/turtledefs.js:774 -#: js/turtledefs.js:805 -msgid "The current version is" +#: js/lilypond.js:606 +msgid "brown rat" msgstr "" -#: js/turtledefs.js:446 -#: js/turtledefs.js:483 -msgid "Click the run button to run the project in fast mode." +#: js/lilypond.js:607 +msgid "mole" msgstr "" -#: js/turtledefs.js:452 -msgid "Stop the turtle." +#: js/lilypond.js:608 +msgid "chipmunk" msgstr "" -#: js/turtledefs.js:454 -#: js/turtledefs.js:491 -msgid "You can also type Alt-S to stop." +#: js/lilypond.js:609 +msgid "red squirrel" msgstr "" -#: js/turtledefs.js:462 -#: js/help.js:333 -msgid "Welcome to Music Blocks" +#: js/lilypond.js:610 +msgid "guinea pig" msgstr "" -#: js/turtledefs.js:472 -#: js/help.js:334 -msgid "Meet Mr. Mouse!" +#: js/lilypond.js:611 +msgid "capybara" msgstr "" -#: js/turtledefs.js:473 -msgid "Mr Mouse is our Music Blocks conductor." +#: js/lilypond.js:612 +msgid "coypu" msgstr "" -#: js/turtledefs.js:475 -msgid "Mr Mouse encourages you to explore Music Blocks." +#: js/lilypond.js:613 +msgid "black rat" msgstr "" -#: js/turtledefs.js:477 -msgid "Let us start our tour!" +#: js/lilypond.js:614 +msgid "grey squirrel" msgstr "" -#: js/turtledefs.js:489 -msgid "Stop the music (and the mice)." +#: js/lilypond.js:615 +msgid "flying squirrel" msgstr "" -#: js/turtledefs.js:499 -msgid "Record your project as video." +#: js/lilypond.js:616 +msgid "bat" msgstr "" -#: js/turtledefs.js:505 -msgid "Toggle Fullscreen mode." +#: js/lilypond.js:749 +#: js/lilypond.js:913 +#: js/lilypond.js:951 +#: js/blocks/ActionBlocks.js:1256 +#: js/blocks/ExtrasBlocks.js:556 +msgid "start drum" msgstr "" -#: js/turtledefs.js:511 -msgid "Initialize a new project." +#: js/logo.js:61 +msgid "Not a valid pitch name" msgstr "" -#: js/turtledefs.js:517 -msgid "You can also load projects from the file system." +#: js/logo.js:507 +#: js/blocks/ProgramBlocks.js:258 +#: js/blocks/ProgramBlocks.js:427 +msgid "You must select a file." msgstr "" -#: js/turtledefs.js:522 -#: js/StringHelper.js:46 -msgid "Delete" +#: js/logo.js:1696 +msgid "Playback is ready." msgstr "" -#: js/turtledefs.js:523 -msgid "To delete a block, just right-click on it, then you will be able to see the delete option" +#: js/macros.js:711 +#: js/utils/musicutils.js:1162 +#: js/utils/synthutils.js:202 +#.TRANS: animal sound effect +msgid "duck" msgstr "" -#: js/turtledefs.js:528 -#: js/activity.js:2270 -#: js/LocalCard.js:31 -msgid "Copy" -msgstr "Make'eik" +#: js/notation.js:353 +msgid "Lilypond cannot process pickup of " +msgstr "" -#: js/turtledefs.js:529 -msgid "To copy a block, just right-click on it, then you will be able to see the copy option" +#: js/palette.js:571 +msgid "grid" msgstr "" -#: js/turtledefs.js:535 -msgid "To extract a block, just right-click on it, then you will be able to see the extract option" +#: js/palette.js:580 +msgid "effect" msgstr "" -#: js/turtledefs.js:542 -#: js/turtledefs.js:552 -#: js/turtledefs.js:573 -msgid "Save your project to a file." +#: js/palette.js:586 +msgid "sargam" msgstr "" -#: js/turtledefs.js:549 -#: js/turtledefs.js:570 -msgid "save" +#: js/palette.js:601 +#: js/blocks/PitchBlocks.js:1209 +msgid "custom pitch" msgstr "" -#: js/turtledefs.js:556 -#: js/turtledefs.js:577 -msgid "Save graphics from your project to as SVG." +#: js/palette.js:609 +msgid "accidental" msgstr "" -#: js/turtledefs.js:560 -#: js/turtledefs.js:581 -msgid "Save graphics from your project as PNG." +#: js/palette.js:633 +#: js/blocks/PitchBlocks.js:405 +msgid "pitch converter" msgstr "" -#: js/turtledefs.js:564 -#: js/turtledefs.js:597 -msgid "Save block artwork as an SVG file." +#: js/piemenus.js:200 +#: js/utils/musicutils.js:1187 +#: js/utils/musicutils.js:1207 +#: js/widgets/musickeyboard.js:2341 +#: js/widgets/phrasemaker.js:1908 +#: js/widgets/sampler.js:810 +#.TRANS: double sharp is a music term related to pitch +msgid "double sharp" msgstr "" -#: js/turtledefs.js:585 -msgid "Save audio from your project as WAV." +#: js/piemenus.js:201 +#: js/utils/musicutils.js:1185 +#: js/utils/musicutils.js:1208 +#: js/blocks/PitchBlocks.js:1539 +#: js/turtleactions/PitchActions.js:323 +#: js/widgets/musickeyboard.js:2342 +#: js/widgets/phrasemaker.js:1909 +#: js/widgets/sampler.js:811 +#.TRANS: sharp is a music term related to pitch +#.TRANS: sharp is a half-step up in pitch +msgid "sharp" msgstr "" -#: js/turtledefs.js:589 -msgid "Save your project to as an ABC file." +#: js/piemenus.js:202 +#: js/utils/musicutils.js:1183 +#: js/utils/musicutils.js:1209 +#: js/widgets/musickeyboard.js:2343 +#: js/widgets/phrasemaker.js:1910 +#: js/widgets/sampler.js:812 +#.TRANS: natural is a music term related to pitch +msgid "natural" msgstr "" -#: js/turtledefs.js:593 -msgid "Save your project to as a Lilypond file." +#: js/piemenus.js:203 +#: js/utils/musicutils.js:1181 +#: js/utils/musicutils.js:1210 +#: js/blocks/PitchBlocks.js:1498 +#: js/turtleactions/PitchActions.js:326 +#: js/widgets/musickeyboard.js:2344 +#: js/widgets/phrasemaker.js:1911 +#: js/widgets/sampler.js:813 +#.TRANS: flat is a music term related to pitch +#.TRANS: flat is a half-step down in pitch +msgid "flat" msgstr "" -#: js/turtledefs.js:604 -msgid "Load samples from server" +#: js/piemenus.js:204 +#: js/utils/musicutils.js:1179 +#: js/utils/musicutils.js:1211 +#: js/widgets/musickeyboard.js:2345 +#: js/widgets/phrasemaker.js:1912 +#: js/widgets/sampler.js:814 +#.TRANS: double flat is a music term related to pitch +msgid "double flat" msgstr "" -#: js/turtledefs.js:605 -msgid "This button opens a viewer for loading example projects." +#: js/piemenus.js:2864 +#: js/utils/musicutils.js:1006 +#: js/blocks/PitchBlocks.js:1385 +#.TRANS: unison is a music term related to intervals +#.TRANS: unison means the note is the same as the current note +msgid "unison" msgstr "" -#: js/turtledefs.js:611 -msgid "Palette buttons" +#: js/piemenus.js:3018 +#: js/piemenus.js:3091 +#: js/utils/musicutils.js:1014 +#: js/utils/musicutils.js:1189 +#: js/utils/musicutils.js:1326 +#.TRANS: major is a music term related to intervals and mode +msgid "major" msgstr "" -#: js/turtledefs.js:612 -msgid "This toolbar contains the palette buttons including Rhythm Pitch Tone Action and more." +#: js/piemenus.js:3018 +#: js/piemenus.js:3091 +#: js/utils/musicutils.js:1032 +#.TRANS: modal scale for music +msgid "ionian" msgstr "" -#: js/turtledefs.js:614 -msgid "Click to show the palettes of blocks and drag blocks from the palettes onto the canvas to use them." +#: js/piemenus.js:3020 +#: js/piemenus.js:3095 +#: js/utils/musicutils.js:1012 +#: js/utils/musicutils.js:1190 +#: js/utils/musicutils.js:1323 +#.TRANS: minor is a music term related to intervals and mode +msgid "minor" msgstr "" -#: js/turtledefs.js:620 -msgid "Cartesian/Polar" +#: js/piemenus.js:3020 +#: js/piemenus.js:3095 +#: js/utils/musicutils.js:1042 +#.TRANS: modal scale for music +msgid "aeolian" msgstr "" -#: js/turtledefs.js:621 -msgid "Show or hide a coordinate grid." +#: js/piemenus.js:3410 +msgid "Duplicate" msgstr "" -#: js/turtledefs.js:627 -msgid "Clear the screen and return the mice to their initial positions." +#: js/piemenus.js:3412 +msgid "Move to trash" msgstr "" -#: js/turtledefs.js:633 -msgid "Collapse the graphics window." +#: js/piemenus.js:3413 +#: js/widgets/timbre.js:968 +#: planet/js/StringHelper.js:69 +msgid "Close" +msgstr "" + +#: js/piemenus.js:3419 +msgid "Save stack" msgstr "" -#: js/turtledefs.js:638 -#: js/activity.js:4256 -#: js/activity.js:4256 -msgid "Home" +#: js/piemenus.js:3449 +msgid "In order to copy a sample, you must reload the widget, import the sample again, and export it." msgstr "" -#: js/turtledefs.js:639 -msgid "Return all blocks to the center of the screen." +#: js/piemenus.js:3812 +msgid "You have chosen key " msgstr "" -#: js/turtledefs.js:644 -msgid "Show/hide blocks" +#: js/piemenus.js:3816 +msgid " for your pitch preview." msgstr "" -#: js/turtledefs.js:645 -msgid "Hide or show the blocks and the palettes." +#: js/turtle-singer.js:1363 +#.TRANS: partials are weighted components in a harmonic series +msgid "You must have at least one Partial block inside of a Weighted-partial block" msgstr "" -#: js/turtledefs.js:650 -msgid "Expand/collapse collapsable blocks" +#: js/turtle-singer.js:2077 +msgid "synth cannot play chords." msgstr "" -#: js/turtledefs.js:651 -msgid "Expand or collapse start and action stacks." +#: js/utils/musicutils.js:505 +#: js/utils/musicutils.js:645 +#: js/widgets/pitchdrummatrix.js:228 +#: js/widgets/musickeyboard.js:2885 +msgid "rest" msgstr "" -#: js/turtledefs.js:658 -#: js/activity.js:4265 -msgid "Decrease block size" +#: js/utils/musicutils.js:689 +msgid "Perfect unison" msgstr "" -#: js/turtledefs.js:659 -msgid "Decrease the size of the blocks." +#: js/utils/musicutils.js:689 +msgid "Diminished second" msgstr "" -#: js/turtledefs.js:664 -#: js/activity.js:4267 -msgid "Increase block size" +#: js/utils/musicutils.js:690 +msgid "Minor second" msgstr "" -#: js/turtledefs.js:665 -msgid "Increase the size of the blocks." +#: js/utils/musicutils.js:690 +msgid "Augmented unison" msgstr "" -#: js/turtledefs.js:670 -msgid "Expand/collapse option toolbar" +#: js/utils/musicutils.js:691 +msgid "Major second" msgstr "" -#: js/turtledefs.js:671 -msgid "Click this button to expand or collapse the auxillary toolbar." +#: js/utils/musicutils.js:691 +msgid "Diminished third" msgstr "" -#: js/turtledefs.js:676 -msgid "Run slow" +#: js/utils/musicutils.js:692 +msgid "Minor third" msgstr "" -#: js/turtledefs.js:677 -msgid "Click to run the project in slow mode." +#: js/utils/musicutils.js:692 +msgid "Augmented second" msgstr "" -#: js/turtledefs.js:683 -msgid "Click to run the project step by step." +#: js/utils/musicutils.js:693 +msgid "Major third" msgstr "" -#: js/turtledefs.js:690 -msgid "Display statistics about your Music project." +#: js/utils/musicutils.js:693 +msgid "Diminished fourth" msgstr "" -#: js/turtledefs.js:697 -msgid "Delete a selected plugin." +#: js/utils/musicutils.js:694 +msgid "Perfect fourth" msgstr "" -#: js/turtledefs.js:704 -msgid "Enable scrolling" +#: js/utils/musicutils.js:694 +msgid "Augmented third" msgstr "" -#: js/turtledefs.js:705 -msgid "You can scroll the blocks on the canvas." +#: js/utils/musicutils.js:695 +msgid "Diminished fifth" msgstr "" -#: js/turtledefs.js:714 -msgid "Wrap Turtle" +#: js/utils/musicutils.js:695 +msgid "Augmented fourth" msgstr "" -#: js/turtledefs.js:715 -msgid "Turn Turtle wrapping On or Off." +#: js/utils/musicutils.js:696 +msgid "Perfect fifth" msgstr "" -#: js/turtledefs.js:725 -msgid "Restore blocks from the trash." +#: js/utils/musicutils.js:696 +msgid "Diminished sixth" msgstr "" -#: js/turtledefs.js:732 -msgid "Switch mode" +#: js/utils/musicutils.js:697 +msgid "Minor sixth" msgstr "" -#: js/turtledefs.js:733 -msgid "Switch between beginner and advance modes." +#: js/utils/musicutils.js:697 +msgid "Augmented fifth" msgstr "" -#: js/turtledefs.js:739 -msgid "Select your language preference." +#: js/utils/musicutils.js:698 +msgid "Major sixth" msgstr "" -#: js/turtledefs.js:745 -msgid "Keyboard shortcuts" +#: js/utils/musicutils.js:698 +msgid "Diminished seventh" msgstr "" -#: js/turtledefs.js:746 -msgid "You can type d to create a do block and r to create a re block etc." +#: js/utils/musicutils.js:699 +msgid "Minor seventh" msgstr "" -#: js/turtledefs.js:753 -msgid "Show these messages." +#: js/utils/musicutils.js:699 +msgid "Augmented sixth" msgstr "" -#: js/turtledefs.js:759 -#: js/turtledefs.js:790 -#: js/help.js:335 -msgid "Guide" +#: js/utils/musicutils.js:700 +msgid "Major seventh" msgstr "" -#: js/turtledefs.js:760 -msgid "A detailed guide to Turtle Blocks is available." +#: js/utils/musicutils.js:700 +msgid "Diminished octave" msgstr "" -#: js/turtledefs.js:764 -msgid "Turtle Blocks Guide" +#: js/utils/musicutils.js:701 +msgid "Perfect octave" msgstr "" -#: js/turtledefs.js:767 -#: js/turtledefs.js:798 -#: js/help.js:336 -msgid "About" +#: js/utils/musicutils.js:701 +msgid "Augmented seventh" msgstr "" -#: js/turtledefs.js:768 -msgid "Turtle Blocks is an open source collection of tools for exploring musical concepts." +#: js/utils/musicutils.js:702 +msgid "Minor ninth" msgstr "" -#: js/turtledefs.js:770 -msgid "A full list of contributors can be found in the Turtle Blocks GitHub repository." +#: js/utils/musicutils.js:702 +msgid "Augmented octave" msgstr "" -#: js/turtledefs.js:772 -msgid "Turtle Blocks is licensed under the AGPL." +#: js/utils/musicutils.js:703 +msgid "Major ninth" msgstr "" -#: js/turtledefs.js:780 -msgid "Turtle Blocks GitHub repository" +#: js/utils/musicutils.js:703 +msgid "Diminished tenth" msgstr "" -#: js/turtledefs.js:783 -#: js/turtledefs.js:814 -#: js/help.js:337 -#: js/help.js:359 -msgid "Congratulations." +#: js/utils/musicutils.js:704 +msgid "Minor tenth" msgstr "" -#: js/turtledefs.js:784 -msgid "You have finished the tour. Please enjoy Turtle Blocks!" +#: js/utils/musicutils.js:704 +msgid "Augmented ninth" msgstr "" -#: js/turtledefs.js:791 -msgid "A detailed guide to Music Blocks is available." +#: js/utils/musicutils.js:705 +msgid "Major tenth" msgstr "" -#: js/turtledefs.js:795 -#: js/SaveInterface.js:76 -msgid "Music Blocks Guide" +#: js/utils/musicutils.js:705 +msgid "Diminished eleventh" msgstr "" -#: js/turtledefs.js:799 -msgid "Music Blocks is an open source collection of tools for exploring musical concepts." +#: js/utils/musicutils.js:706 +msgid "Perfect eleventh" msgstr "" -#: js/turtledefs.js:801 -msgid "A full list of contributors can be found in the Music Blocks GitHub repository." +#: js/utils/musicutils.js:706 +msgid "Augmented tenth" msgstr "" -#: js/turtledefs.js:803 -msgid "Music Blocks is licensed under the AGPL." +#: js/utils/musicutils.js:707 +msgid "Diminished twelfth" msgstr "" -#: js/turtledefs.js:811 -msgid "Music Blocks GitHub repository" +#: js/utils/musicutils.js:707 +msgid "Augmented eleventh" msgstr "" -#: js/turtledefs.js:815 -msgid "You have finished the tour. Please enjoy Music Blocks!" +#: js/utils/musicutils.js:708 +msgid "Perfect twelfth" msgstr "" -#: js/activity.js:369 -msgid "Search for blocks" +#: js/utils/musicutils.js:708 +msgid "Diminished thirteenth" msgstr "" -#: js/activity.js:1145 -msgid "Refresh your browser to change to advanced mode." +#: js/utils/musicutils.js:709 +msgid "Minor thirteenth" msgstr "" -#: js/activity.js:1150 -msgid "Refresh your browser to change to beginner mode." +#: js/utils/musicutils.js:709 +msgid "Augmented fifth, plus an octave" msgstr "" -#: js/activity.js:1184 -msgid "Catching mice" +#: js/utils/musicutils.js:710 +msgid "Major thirteenth" msgstr "" -#: js/activity.js:1185 -msgid "Cleaning the instruments" +#: js/utils/musicutils.js:710 +msgid "Diminished seventh, plus an octave" msgstr "" -#: js/activity.js:1186 -msgid "Testing key pieces" +#: js/utils/musicutils.js:838 +#.TRANS: ordinal number. Please keep exactly one space between each number. +msgid "1st 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th" msgstr "" -#: js/activity.js:1187 -msgid "Sight-reading" +#: js/utils/musicutils.js:1008 +#: js/utils/musicutils.js:1191 +#: js/utils/musicutils.js:1325 +#.TRANS: augmented is a music term related to intervals +msgid "augmented" msgstr "" -#: js/activity.js:1188 -msgid "Combining math and music" +#: js/utils/musicutils.js:1010 +#: js/utils/musicutils.js:1192 +#: js/utils/musicutils.js:1324 +#.TRANS: diminished is a music term related to intervals and mode +msgid "diminished" msgstr "" -#: js/activity.js:1189 -msgid "Generating more blocks" +#: js/utils/musicutils.js:1016 +#: js/utils/musicutils.js:1322 +#: js/blocks/IntervalsBlocks.js:649 +#: js/turtleactions/IntervalsActions.js:120 +#: js/turtleactions/IntervalsActions.js:124 +#.TRANS: perfect is a music term related to intervals +msgid "perfect" msgstr "" -#: js/activity.js:1190 -msgid "Do Re Mi Fa Sol La Ti Do" +#: js/utils/musicutils.js:1018 +#.TRANS: twelve semi-tone scale for music +msgid "chromatic" msgstr "" -#: js/activity.js:1191 -msgid "Tuning string instruments" +#: js/utils/musicutils.js:1019 +msgid "algerian" msgstr "" -#: js/activity.js:1192 -msgid "Pressing random keys" +#: js/utils/musicutils.js:1020 +msgid "spanish" msgstr "" -#: js/activity.js:1351 -msgid "plugins will be removed upon restart." +#: js/utils/musicutils.js:1022 +#.TRANS: modal scale in music +msgid "octatonic" msgstr "" -#: js/activity.js:1360 -msgid "show Cartesian" +#: js/utils/musicutils.js:1024 +#.TRANS: harmonic major scale in music +msgid "harmonic major" msgstr "" -#: js/activity.js:1842 -msgid "output tools" +#: js/utils/musicutils.js:1026 +#.TRANS: natural minor scales in music +msgid "natural minor" msgstr "" -#: js/activity.js:1845 -msgid "custom note" +#: js/utils/musicutils.js:1028 +#.TRANS: harmonic minor scale in music +msgid "harmonic minor" msgstr "" -#: js/activity.js:1848 -msgid "accidental name" +#: js/utils/musicutils.js:1030 +#.TRANS: melodic minor scale in music +msgid "melodic minor" msgstr "" -#: js/activity.js:1851 -#: js/PitchBlocks.js:855 -msgid "east indian solfege" +#: js/utils/musicutils.js:1034 +#.TRANS: modal scale for music +msgid "dorian" msgstr "" -#: js/activity.js:1854 -#: js/PitchBlocks.js:869 -msgid "note name" +#: js/utils/musicutils.js:1036 +#.TRANS: modal scale for music +msgid "phrygian" msgstr "" -#: js/activity.js:1857 -#: js/IntervalsBlocks.js:94 -msgid "temperament name" +#: js/utils/musicutils.js:1038 +#.TRANS: modal scale for music +msgid "lydian" msgstr "" -#: js/activity.js:1863 -msgid "chord name" +#: js/utils/musicutils.js:1040 +#.TRANS: modal scale for music +msgid "mixolydian" msgstr "" -#: js/activity.js:1869 -msgid "filter type" +#: js/utils/musicutils.js:1044 +#.TRANS: modal scale for music +msgid "locrian" msgstr "" -#: js/activity.js:1872 -msgid "oscillator type" +#: js/utils/musicutils.js:1046 +#.TRANS: minor jazz scale for music +msgid "jazz minor" msgstr "" -#: js/activity.js:1878 -#: js/DrumBlocks.js:32 -msgid "noise name" +#: js/utils/musicutils.js:1048 +#.TRANS: bebop scale for music +msgid "bebop" msgstr "" -#: js/activity.js:1881 -#: js/DrumBlocks.js:75 -msgid "drum name" +#: js/utils/musicutils.js:1049 +msgid "arabic" msgstr "" -#: js/activity.js:1884 -#: js/DrumBlocks.js:119 -msgid "effects name" +#: js/utils/musicutils.js:1050 +msgid "byzantine" msgstr "" -#: js/activity.js:1887 -msgid "wrap mode" +#: js/utils/musicutils.js:1052 +#.TRANS: musical scale for music by Verdi +msgid "enigmatic" msgstr "" -#: js/activity.js:1890 -msgid "load file" +#: js/utils/musicutils.js:1053 +msgid "ethiopian" msgstr "" -#: js/activity.js:2056 -msgid "This block is deprecated." +#: js/utils/musicutils.js:1055 +#.TRANS: Ethiopic scale for music +msgid "geez" msgstr "" -#: js/activity.js:2058 -msgid "Block cannot be found." +#: js/utils/musicutils.js:1056 +msgid "hindu" msgstr "" -#: js/activity.js:2266 -msgid "Saving block artwork" +#: js/utils/musicutils.js:1057 +msgid "hungarian" msgstr "" -#: js/activity.js:2277 -msgid "Erase" +#: js/utils/musicutils.js:1059 +#.TRANS: minor Romanian scale for music +msgid "romanian minor" msgstr "" -#: js/activity.js:2301 -#: js/activity.js:2323 -msgid "Paste" -msgstr "Makua'al" +#: js/utils/musicutils.js:1060 +msgid "spanish gypsy" +msgstr "" -#: js/activity.js:2305 -msgid "Save block help" +#: js/utils/musicutils.js:1062 +#.TRANS: musical scale for Mid-Eastern music +msgid "maqam" msgstr "" -#: js/activity.js:2390 -msgid "Jumping to the bottom of the page." +#: js/utils/musicutils.js:1064 +#.TRANS: minor blues scale for music +msgid "minor blues" msgstr "" -#: js/activity.js:2396 -msgid "Scrolling up." +#: js/utils/musicutils.js:1066 +#.TRANS: major blues scale for music +msgid "major blues" msgstr "" -#: js/activity.js:2401 -msgid "Scrolling down." +#: js/utils/musicutils.js:1067 +msgid "whole tone" msgstr "" -#: js/activity.js:2406 -msgid "Extracting block" +#: js/utils/musicutils.js:1069 +#.TRANS: pentatonic is a general term that means "five note scale". This scale is typically known as "minor pentatonic" +msgid "minor pentatonic" msgstr "" -#: js/activity.js:2414 -msgid "Moving block up." +#: js/utils/musicutils.js:1071 +#.TRANS: pentatonic is a general term that means "five note scale". This scale is typically known as "major pentatonic" +msgid "major pentatonic" msgstr "" -#: js/activity.js:2435 -msgid "Moving block down." +#: js/utils/musicutils.js:1072 +msgid "chinese" msgstr "" -#: js/activity.js:2456 -msgid "Moving block left." +#: js/utils/musicutils.js:1073 +msgid "egyptian" msgstr "" -#: js/activity.js:2473 -msgid "Moving block right." +#: js/utils/musicutils.js:1075 +#.TRANS: https://en.wikipedia.org/wiki/Hirajoshi_scale NOTE: There are three different versions of this scale +msgid "hirajoshi" msgstr "" -#: js/activity.js:2488 -msgid "Jump to home position." +#: js/utils/musicutils.js:1076 +msgid "Japan" msgstr "" -#: js/activity.js:2515 -msgid "Hide blocks" +#: js/utils/musicutils.js:1078 +#.TRANS: https://en.wikipedia.org/wiki/In_scale and https://en.wikipedia.org/wiki/Sakura_Sakura +msgid "in" msgstr "" -#: js/activity.js:3389 -msgid "Click the run button to run the project." +#: js/utils/musicutils.js:1080 +#.TRANS: https://en.wikipedia.org/wiki/Miny%C5%8D_scale +msgid "minyo" msgstr "" -#: js/activity.js:3456 -#: js/SaveInterface.js:131 -#: js/SaveInterface.js:204 -#: js/SaveInterface.js:262 -#: js/SaveInterface.js:389 -#: js/SaveInterface.js:417 -#: js/ProjectStorage.js:27 -#: js/GlobalPlanet.js:467 -#: js/GlobalPlanet.js:469 -#: js/GlobalPlanet.js:495 -#.TRANS: default project title when saving as Lilypond -msgid "My Project" +#: js/utils/musicutils.js:1082 +#.TRANS: Italian mathematician +msgid "fibonacci" msgstr "" -#: js/activity.js:4261 -msgid "Show/hide block" +#: js/utils/musicutils.js:1083 +#: js/utils/musicutils.js:1134 +#: js/utils/musicutils.js:1177 +#: js/utils/musicutils.js:1199 +#: js/utils/synthutils.js:134 +#: js/blocks/IntervalsBlocks.js:1124 +#: js/blocks/ToneBlocks.js:946 +#: js/blocks/VolumeBlocks.js:411 +#: js/blocks/WidgetBlocks.js:399 +#: js/blocks/WidgetBlocks.js:404 +#: js/turtleactions/VolumeActions.js:218 +#: js/widgets/modewidget.js:919 +#.TRANS: customize voice +msgid "custom" msgstr "" -#: js/activity.js:4263 -msgid "Expand/collapse blocks" +#: js/utils/musicutils.js:1085 +#: js/utils/musicutils.js:1531 +#: js/blocks/WidgetBlocks.js:176 +#.TRANS: highpass filter +msgid "highpass" msgstr "" -#: js/activity.js:4381 -msgid "Could not parse JSON input." +#: js/utils/musicutils.js:1087 +#: js/utils/musicutils.js:1532 +#.TRANS: lowpass filter +msgid "lowpass" msgstr "" -#: js/activity.js:4684 -#: js/activity.js:4771 -#: js/activity.js:4821 -msgid "Cannot load project from the file. Please check the file type." +#: js/utils/musicutils.js:1089 +#: js/utils/musicutils.js:1533 +#.TRANS: bandpass filter +msgid "bandpass" msgstr "" -#: js/activity.js:5051 -msgid "Invalid parameters" +#: js/utils/musicutils.js:1091 +#: js/utils/musicutils.js:1534 +#.TRANS: high-shelf filter +msgid "highshelf" msgstr "" -#: js/turtle-singer.js:1334 -#.TRANS: partials are weighted components in a harmonic series -msgid "You must have at least one Partial block inside of a Weighted-partial block" +#: js/utils/musicutils.js:1093 +#: js/utils/musicutils.js:1535 +#.TRANS: low-shelf filter +msgid "lowshelf" msgstr "" -#: js/turtle-singer.js:2048 -msgid "synth cannot play chords." +#: js/utils/musicutils.js:1095 +#: js/utils/musicutils.js:1536 +#.TRANS: notch-shelf filter +msgid "notch" msgstr "" -#: js/lilypond.js:614 -msgid "brown rat" +#: js/utils/musicutils.js:1097 +#: js/utils/musicutils.js:1537 +#.TRANS: all-pass filter +msgid "allpass" msgstr "" -#: js/lilypond.js:615 -msgid "mole" +#: js/utils/musicutils.js:1099 +#: js/utils/musicutils.js:1538 +#.TRANS: peaking filter +msgid "peaking" msgstr "" -#: js/lilypond.js:616 -msgid "chipmunk" +#: js/utils/musicutils.js:1100 +#: js/utils/musicutils.js:1546 +#: js/utils/synthutils.js:126 +#: js/blocks/PitchBlocks.js:85 +#.TRANS: sine wave +msgid "sine" msgstr "" -#: js/lilypond.js:617 -msgid "red squirrel" +#: js/utils/musicutils.js:1101 +#: js/utils/musicutils.js:1547 +#: js/utils/synthutils.js:128 +#: js/blocks/PitchBlocks.js:39 +#.TRANS: square wave +msgid "square" msgstr "" -#: js/lilypond.js:618 -msgid "guinea pig" +#: js/utils/musicutils.js:1102 +#: js/utils/musicutils.js:1548 +#: js/utils/synthutils.js:132 +#: js/blocks/PitchBlocks.js:62 +#: js/blocks/ToneBlocks.js:39 +#.TRANS: triangle wave +msgid "triangle" msgstr "" -#: js/lilypond.js:619 -msgid "capybara" +#: js/utils/musicutils.js:1103 +#: js/utils/musicutils.js:1549 +#: js/utils/synthutils.js:130 +#: js/blocks/PitchBlocks.js:108 +#.TRANS: sawtooth wave +msgid "sawtooth" msgstr "" -#: js/lilypond.js:620 -msgid "coypu" +#: js/utils/musicutils.js:1105 +#: js/utils/musicutils.js:1312 +#: js/blocks/PitchBlocks.js:931 +#: js/blocks/PitchBlocks.js:937 +#: js/turtleactions/PitchActions.js:469 +#.TRANS: even numbers +#.TRANS: invert based on even or odd number or musical scale +msgid "even" msgstr "" -#: js/lilypond.js:621 -msgid "black rat" +#: js/utils/musicutils.js:1107 +#: js/utils/musicutils.js:1313 +#: js/blocks/PitchBlocks.js:937 +#: js/turtleactions/PitchActions.js:471 +#.TRANS: odd numbers +msgid "odd" msgstr "" -#: js/lilypond.js:622 -msgid "grey squirrel" +#: js/utils/musicutils.js:1108 +#: js/utils/musicutils.js:1314 +#: js/blocks/PitchBlocks.js:937 +#: js/turtleactions/PitchActions.js:473 +msgid "scalar" msgstr "" -#: js/lilypond.js:623 -msgid "flying squirrel" +#: js/utils/musicutils.js:1109 +#: js/utils/synthutils.js:72 +#: js/blocks/VolumeBlocks.js:47 +#.TRANS: musical instrument +msgid "piano" msgstr "" -#: js/lilypond.js:624 -msgid "bat" +#: js/utils/musicutils.js:1110 +#: js/utils/synthutils.js:74 +#.TRANS: musical instrument +msgid "violin" msgstr "" -#: js/lilypond.js:757 -#: js/lilypond.js:921 -#: js/lilypond.js:959 -#: js/ActionBlocks.js:1256 -#: js/ExtrasBlocks.js:553 -msgid "start drum" +#: js/utils/musicutils.js:1111 +#: js/utils/synthutils.js:76 +#.TRANS: viola musical instrument +msgid "viola" msgstr "" -#: js/SaveInterface.js:59 -#: js/SaveInterface.js:61 -#: js/SaveInterface.js:93 -msgid "Music Blocks Project" +#: js/utils/musicutils.js:1112 +#: js/utils/synthutils.js:114 +#.TRANS: xylophone musical instrument +msgid "xylophone" msgstr "" -#: js/SaveInterface.js:63 -msgid "This project was created in Music Blocks" +#: js/utils/musicutils.js:1113 +#: js/utils/synthutils.js:136 +#.TRANS: vibraphone musical instrument +msgid "vibraphone" msgstr "" -#: js/SaveInterface.js:67 -msgid "Music Blocks is a Free/Libre Software application." +#: js/utils/musicutils.js:1114 +#: js/utils/synthutils.js:78 +#.TRANS: musical instrument +msgid "cello" msgstr "" -#: js/SaveInterface.js:69 -msgid "The source code can be accessed at" +#: js/utils/musicutils.js:1116 +#: js/utils/synthutils.js:82 +#.TRANS: viola musical instrument +msgid "double bass" msgstr "" -#: js/SaveInterface.js:72 -msgid "For more information, please consult the" +#: js/utils/musicutils.js:1117 +#: js/utils/synthutils.js:84 +#: js/widgets/rhythmruler.js:2511 +#.TRANS: musical instrument +msgid "guitar" msgstr "" -#: js/SaveInterface.js:83 -msgid "Alternatively, open the file in Music Blocks using the Load project button." +#: js/utils/musicutils.js:1118 +#: js/utils/synthutils.js:86 +#.TRANS: musical instrument +msgid "acoustic guitar" msgstr "" -#: js/SaveInterface.js:85 -msgid "Project Code" +#: js/utils/musicutils.js:1119 +#: js/utils/synthutils.js:88 +#.TRANS: musical instrument +msgid "flute" msgstr "" -#: js/SaveInterface.js:87 -msgid "This code stores data about the blocks in a project." +#: js/utils/musicutils.js:1120 +#: js/utils/synthutils.js:90 +#.TRANS: musical instrument +msgid "clarinet" msgstr "" -#: js/SaveInterface.js:89 -msgid "Show" +#: js/utils/musicutils.js:1121 +#: js/utils/synthutils.js:92 +#.TRANS: musical instrument +msgid "saxophone" msgstr "" -#: js/SaveInterface.js:91 -msgid "Hide" +#: js/utils/musicutils.js:1122 +#: js/utils/synthutils.js:94 +#.TRANS: musical instrument +msgid "tuba" msgstr "" -#: js/SaveInterface.js:197 -#: js/SaveInterface.js:58 -msgid "No description provided" +#: js/utils/musicutils.js:1123 +#: js/utils/synthutils.js:96 +#.TRANS: musical instrument +msgid "trumpet" msgstr "" -#: js/SaveInterface.js:332 -msgid "Your recording is in progress." +#: js/utils/musicutils.js:1124 +#: js/utils/synthutils.js:98 +#.TRANS: musical instrument +msgid "oboe" msgstr "" -#: js/SaveInterface.js:401 -#.TRANS: File name prompt for save as Lilypond -msgid "File name" +#: js/utils/musicutils.js:1125 +#: js/utils/synthutils.js:100 +#.TRANS: musical instrument +msgid "trombone" msgstr "" -#: js/SaveInterface.js:403 -#: js/StringHelper.js:39 -#.TRANS: Project title prompt for save as Lilypond -msgid "Project title" +#: js/utils/musicutils.js:1126 +#: js/utils/synthutils.js:116 +#.TRANS: polytone synthesizer +msgid "electronic synth" msgstr "" -#: js/SaveInterface.js:405 -#.TRANS: Project title prompt for save as Lilypond -msgid "Project author" +#: js/utils/musicutils.js:1127 +#: js/utils/synthutils.js:118 +#.TRANS: simple monotone synthesizer +msgid "simple 1" msgstr "" -#: js/SaveInterface.js:407 -#.TRANS: MIDI prompt for save as Lilypond -msgid "Include MIDI output?" +#: js/utils/musicutils.js:1128 +msgid "simple 2" msgstr "" -#: js/SaveInterface.js:409 -#.TRANS: Guitar prompt for save as Lilypond -msgid "Include guitar tablature output?" +#: js/utils/musicutils.js:1129 +msgid "simple 3" msgstr "" -#: js/SaveInterface.js:411 -#.TRANS: Lilypond is a scripting language for generating sheet music -msgid "Save as Lilypond" +#: js/utils/musicutils.js:1130 +msgid "simple 4" msgstr "" -#: js/SaveInterface.js:426 -#: js/EnsembleBlocks.js:75 -#: js/EnsembleBlocks.js:154 -#: js/EnsembleBlocks.js:216 -#: js/EnsembleBlocks.js:302 -#: js/EnsembleBlocks.js:348 -#: js/EnsembleBlocks.js:389 -#: js/EnsembleBlocks.js:441 -#: js/EnsembleBlocks.js:490 -#: js/EnsembleBlocks.js:536 -#: js/EnsembleBlocks.js:583 -#: js/EnsembleBlocks.js:637 -#: js/EnsembleBlocks.js:753 -#: js/EnsembleBlocks.js:840 -#: js/EnsembleBlocks.js:899 -#: js/EnsembleBlocks.js:942 -#: js/EnsembleBlocks.js:1212 -#: js/EnsembleBlocks.js:1280 -#.TRANS: default project author when saving as Lilypond -msgid "Mr. Mouse" +#: js/utils/musicutils.js:1131 +#: js/utils/synthutils.js:58 +#: js/blocks/DrumBlocks.js:191 +#.TRANS: white noise synthesizer +msgid "white noise" msgstr "" -#: js/SaveInterface.js:573 -msgid "The Lilypond code is copied to clipboard. You can paste it here: " +#: js/utils/musicutils.js:1132 +#: js/utils/synthutils.js:60 +#.TRANS: brown noise synthesizer +msgid "brown noise" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:50 -#: js/RhythmBlockPaletteBlocks.js:232 -#.TRANS: rhythm block -#.TRANS: translate "rhythm1" as rhythm -msgid "rhythm1" +#: js/utils/musicutils.js:1133 +#: js/utils/synthutils.js:62 +#.TRANS: pink noise synthesizer +msgid "pink noise" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:70 -#: js/RhythmBlockPaletteBlocks.js:251 -#: js/RhythmBlockPaletteBlocks.js:484 -#: js/RhythmBlockPaletteBlocks.js:553 -#: js/RhythmBlockPaletteBlocks.js:874 -msgid "number of notes" +#: js/utils/musicutils.js:1135 +#: js/utils/synthutils.js:148 +#: js/widgets/rhythmruler.js:2057 +#: js/widgets/rhythmruler.js:2319 +#.TRANS: musical instrument +msgid "snare drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:126 -msgid "polyphonic rhythm" +#: js/utils/musicutils.js:1136 +#: js/utils/synthutils.js:150 +#.TRANS: musical instrument +msgid "kick drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:218 -msgid "The Rhythm block is used to generate rhythm patterns." +#: js/utils/musicutils.js:1137 +#: js/utils/synthutils.js:152 +#.TRANS: musical instrument +msgid "tom tom" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:279 -msgid "1/64 note" +#: js/utils/musicutils.js:1138 +#: js/utils/synthutils.js:154 +#.TRANS: musical instrument +msgid "floor tom" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:303 -msgid "1/32 note" +#: js/utils/musicutils.js:1139 +#: js/utils/synthutils.js:156 +#.TRANS: musical instrument +msgid "bass drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:331 -msgid "1/16 note" +#: js/utils/musicutils.js:1140 +#: js/utils/synthutils.js:158 +#.TRANS: a drum made from an inverted cup +msgid "cup drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:359 -msgid "eighth note" +#: js/utils/musicutils.js:1141 +#: js/utils/synthutils.js:160 +#.TRANS: musical instrument +msgid "darbuka drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:387 -msgid "quarter note" +#: js/utils/musicutils.js:1142 +#: js/utils/synthutils.js:164 +#.TRANS: musical instrument +msgid "hi hat" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:415 -msgid "half note" +#: js/utils/musicutils.js:1143 +#: js/utils/synthutils.js:166 +#.TRANS: a small metal bell +msgid "ride bell" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:443 -msgid "whole note" +#: js/utils/musicutils.js:1144 +#: js/utils/synthutils.js:168 +#.TRANS: musical instrument +msgid "cow bell" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:481 -#: js/RhythmBlockPaletteBlocks.js:550 -#: js/RhythmBlockPaletteBlocks.js:601 -#.TRANS: A tuplet is a note value divided into irregular time values. -msgid "tuplet" +#: js/utils/musicutils.js:1145 +msgid "japanese drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:767 -msgid "septuplet" +#: js/utils/musicutils.js:1146 +#: js/utils/synthutils.js:174 +#.TRANS: musical instrument +msgid "japanese bell" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:795 -msgid "quintuplet" +#: js/utils/musicutils.js:1147 +#: js/utils/synthutils.js:170 +#.TRANS: musical instrument +msgid "triangle bell" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:823 -msgid "triplet" +#: js/utils/musicutils.js:1148 +#: js/utils/synthutils.js:172 +#.TRANS: musical instrument +msgid "finger cymbals" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:850 -msgid "simple tuplet" +#: js/utils/musicutils.js:1149 +#: js/utils/synthutils.js:176 +#.TRANS: a musically tuned set of bells +msgid "chime" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:860 -msgid "Tuplets are a collection of notes that get scaled to a specific duration." +#: js/utils/musicutils.js:1150 +#: js/utils/synthutils.js:178 +#.TRANS: a musical instrument +msgid "gong" msgstr "" -#: js/WidgetBlocks.js:71 -#.TRANS: sound envelope (ADSR) -msgid "envelope" +#: js/utils/musicutils.js:1151 +#: js/utils/synthutils.js:180 +#.TRANS: sound effect +msgid "clang" msgstr "" -#: js/WidgetBlocks.js:79 -#.TRANS: Attack time is the time taken for initial run-up of level from nil to peak, beginning when the key is first pressed. -msgid "attack" +#: js/utils/musicutils.js:1152 +#: js/utils/synthutils.js:182 +#.TRANS: sound effect +msgid "crash" msgstr "" -#: js/WidgetBlocks.js:81 -#.TRANS: Decay time is the time taken for the subsequent run down from the attack level to the designated sustain level. -msgid "decay" +#: js/utils/musicutils.js:1153 +#: js/utils/synthutils.js:184 +#.TRANS: sound effect +msgid "bottle" msgstr "" -#: js/WidgetBlocks.js:83 -#.TRANS: Sustain level is the level during the main sequence of the sound's duration, until the key is released. -msgid "sustain" +#: js/utils/musicutils.js:1154 +#: js/utils/synthutils.js:186 +#.TRANS: sound effect +msgid "clap" msgstr "" -#: js/WidgetBlocks.js:85 -#.TRANS: Release time is the time taken for the level to decay from the sustain level to zero after the key is released. -msgid "release" +#: js/utils/musicutils.js:1155 +#: js/utils/synthutils.js:188 +#.TRANS: sound effect +msgid "slap" msgstr "" -#: js/WidgetBlocks.js:96 -msgid "Attack value should be from 0 to 100." +#: js/utils/musicutils.js:1156 +#: js/utils/synthutils.js:190 +#.TRANS: sound effect +msgid "splash" msgstr "" -#: js/WidgetBlocks.js:99 -msgid "Decay value should be from 0 to 100." +#: js/utils/musicutils.js:1157 +#: js/utils/synthutils.js:192 +#.TRANS: sound effect +msgid "bubbles" msgstr "" -#: js/WidgetBlocks.js:102 -msgid "Sustain value should be from 0 to 100." +#: js/utils/musicutils.js:1158 +#: js/utils/synthutils.js:194 +#.TRANS: sound effect +msgid "raindrop" msgstr "" -#: js/WidgetBlocks.js:105 -msgid "Release value should be from 0-100." +#: js/utils/musicutils.js:1159 +#: js/utils/synthutils.js:196 +#.TRANS: animal sound effect +msgid "cat" msgstr "" -#: js/WidgetBlocks.js:121 -msgid "You are adding multiple envelope blocks." +#: js/utils/musicutils.js:1160 +#: js/utils/synthutils.js:198 +#.TRANS: animal sound effect +msgid "cricket" msgstr "" -#: js/WidgetBlocks.js:144 -#.TRANS: a filter removes some unwanted components from a signal -msgid "filter" +#: js/utils/musicutils.js:1161 +#: js/utils/synthutils.js:200 +#.TRANS: animal sound effect +msgid "dog" msgstr "" -#: js/WidgetBlocks.js:149 -#: js/musicutils.js:706 -#: js/musicutils.js:1105 -#.TRANS: highpass filter -msgid "highpass" +#: js/utils/musicutils.js:1163 +#: js/utils/synthutils.js:102 +#.TRANS: musical instrument +msgid "banjo" msgstr "" -#: js/WidgetBlocks.js:152 -#: js/ToneBlocks.js:42 -#: js/timbre.js:1558 -#: js/timbre.js:1808 -#.TRANS: type of filter, e.g., lowpass, highpass, etc. -#.TRANS: there are different types (sine, triangle, square...) of oscillators. -msgid "type" +#: js/utils/musicutils.js:1164 +#: js/utils/synthutils.js:104 +#.TRANS: musical instrument +msgid "koto" msgstr "" -#: js/WidgetBlocks.js:154 -#: js/timbre.js:1818 -#.TRANS: rolloff is the steepness of a change in frequency. -msgid "rolloff" +#: js/utils/musicutils.js:1165 +#: js/utils/synthutils.js:106 +#.TRANS: musical instrument +msgid "dulcimer" msgstr "" -#: js/WidgetBlocks.js:155 -#: js/MediaBlocks.js:692 -#: js/temperament.js:382 -#: js/temperament.js:417 -#: js/temperament.js:477 -#: js/temperament.js:485 -#: js/temperament.js:1348 -#: js/timbre.js:1842 -msgid "frequency" +#: js/utils/musicutils.js:1166 +#: js/utils/synthutils.js:108 +#.TRANS: musical instrument +msgid "electric guitar" msgstr "" -#: js/WidgetBlocks.js:179 -#.TRANS: rolloff is the steepness of a change in frequency. -msgid "Rolloff value should be either -12, -24, -48, or -96 decibels/octave." +#: js/utils/musicutils.js:1167 +#: js/utils/synthutils.js:110 +#.TRANS: musical instrument +msgid "bassoon" msgstr "" -#: js/WidgetBlocks.js:211 -msgid "The Temperament tool is used to define custom tuning." +#: js/utils/musicutils.js:1168 +#: js/utils/synthutils.js:112 +#.TRANS: musical instrument +msgid "celeste" msgstr "" -#: js/WidgetBlocks.js:277 -#: js/sampler.js:329 -msgid "Upload a sample and adjust its pitch center." +#: js/utils/musicutils.js:1170 +#: js/widgets/temperament.js:787 +#.TRANS: musical temperament +msgid "equal" msgstr "" -#: js/WidgetBlocks.js:284 -#.TRANS: the speed at music is should be played. -msgid "sampler" +#: js/utils/musicutils.js:1172 +#.TRANS: musical temperament +msgid "Pythagorean" msgstr "" -#: js/WidgetBlocks.js:329 -#: js/WidgetBlocks.js:334 -#: js/IntervalsBlocks.js:928 -#: js/VolumeBlocks.js:411 -#: js/ToneBlocks.js:946 -#: js/VolumeActions.js:218 -#: js/musicutils.js:704 -#: js/musicutils.js:755 -#: js/musicutils.js:798 -#: js/musicutils.js:820 -#: js/musicutils.js:1136 -#: js/synthutils.js:118 -#: js/modewidget.js:919 -#.TRANS: customize voice -msgid "custom" +#: js/utils/musicutils.js:1174 +#.TRANS: musical temperament +msgid "just intonation" msgstr "" -#: js/WidgetBlocks.js:432 -msgid "The Meter block opens a tool to select strong beats for the meter." +#: js/utils/musicutils.js:1176 +#.TRANS: musical temperament +msgid "meantone" msgstr "" -#: js/WidgetBlocks.js:473 -msgid "The oscilloscope block opens a tool to visualize waveforms." +#: js/utils/musicutils.js:1193 +msgid "major 7th" msgstr "" -#: js/WidgetBlocks.js:478 -msgid "oscilloscope" +#: js/utils/musicutils.js:1194 +msgid "minor 7th" msgstr "" -#: js/WidgetBlocks.js:530 -msgid "The Custom mode block opens a tool to explore musical mode (the spacing of the notes in a scale)." +#: js/utils/musicutils.js:1195 +msgid "dominant 7th" msgstr "" -#: js/WidgetBlocks.js:536 -#.TRANS: musical mode is the pattern of half-steps in an octave, e.g., Major or Minor modes -msgid "custom mode" +#: js/utils/musicutils.js:1196 +msgid "minor-major 7th" msgstr "" -#: js/WidgetBlocks.js:570 -msgid "The Tempo block opens a metronome to visualize the beat." +#: js/utils/musicutils.js:1197 +msgid "fully-diminished 7th" msgstr "" -#: js/WidgetBlocks.js:617 -msgid "The Arpeggio Widget is used to compose chord sequences." +#: js/utils/musicutils.js:1198 +msgid "half-diminished 7th" msgstr "" -#: js/WidgetBlocks.js:623 -#: js/IntervalsBlocks.js:683 -msgid "arpeggio" +#: js/utils/musicutils.js:1557 +#: js/utils/musicutils.js:1569 +msgid "Equal (12EDO)" msgstr "" -#: js/WidgetBlocks.js:677 -msgid "The Pitch drum matrix is used to map pitches to drum sounds." +#: js/utils/musicutils.js:1558 +#: js/utils/musicutils.js:1570 +msgid "5-limit Just Intonation" msgstr "" -#: js/WidgetBlocks.js:682 -#.TRANS: makes a mapping between pitches and drum sounds -msgid "pitch-drum mapper" +#: js/utils/musicutils.js:1559 +#: js/utils/musicutils.js:1571 +msgid "Pythagorean (3-limit JI)" msgstr "" -#: js/WidgetBlocks.js:724 -msgid "You must have at least one pitch block and one drum block in the matrix." +#: js/utils/musicutils.js:1560 +#: js/utils/musicutils.js:1561 +#: js/utils/musicutils.js:1572 +#: js/utils/musicutils.js:1573 +msgid "Meantone" msgstr "" -#: js/WidgetBlocks.js:746 -msgid "The Pitch slider tool to is used to generate pitches at selected frequencies." +#: js/utils/musicutils.js:1574 +msgid "Custom" msgstr "" -#: js/WidgetBlocks.js:751 -#.TRANS: widget to generate pitches using a slider -msgid "pitch slider" +#: js/utils/musicutils.js:5387 +#: js/utils/musicutils.js:5430 +msgid "current" msgstr "" -#: js/WidgetBlocks.js:788 -msgid "chromatic keyboard" +#: js/utils/musicutils.js:5390 +#: js/utils/musicutils.js:5421 +msgid "next" msgstr "" -#: js/WidgetBlocks.js:815 -#: js/WidgetBlocks.js:874 -#.TRANS: widget to generate pitches using a slider -msgid "music keyboard" +#: js/utils/musicutils.js:5393 +#: js/utils/musicutils.js:5426 +msgid "previous" msgstr "" -#: js/WidgetBlocks.js:859 -#: js/WidgetBlocks.js:866 -msgid "The Music keyboard block opens a piano keyboard that can be used to create notes." +#: js/utils/synthutils.js:120 +#.TRANS: simple monotone synthesizer +msgid "simple-2" msgstr "" -#: js/WidgetBlocks.js:910 -msgid "The Pitch staircase tool to is used to generate pitches from a given ratio." +#: js/utils/synthutils.js:122 +#.TRANS: simple monotone synthesizer +msgid "simple-3" msgstr "" -#: js/WidgetBlocks.js:917 -#.TRANS: generate a progressive sequence of pitches -msgid "pitch staircase" +#: js/utils/synthutils.js:124 +#.TRANS: simple monotone synthesizer +msgid "simple-4" msgstr "" -#: js/WidgetBlocks.js:982 -msgid "The Rhythm Maker block opens a tool to create drum machines." +#: js/utils/synthutils.js:162 +#.TRANS: musical instrument +msgid "taiko" msgstr "" -#: js/WidgetBlocks.js:1036 -msgid "G major scale" +#: js/blocks/ActionBlocks.js:58 +msgid "The Return block will return a value from an action." msgstr "" -#: js/WidgetBlocks.js:1064 -msgid "C major scale" +#: js/blocks/ActionBlocks.js:75 +msgid "return" msgstr "" -#: js/WidgetBlocks.js:1097 -msgid "The Phrase Maker block opens a tool to create musical phrases." +#: js/blocks/ActionBlocks.js:128 +msgid "The Return to URL block will return a value to a webpage." msgstr "" -#: js/WidgetBlocks.js:1104 -#.TRANS: assigns pitch to a sequence of beats to generate a melody -msgid "phrase maker" +#: js/blocks/ActionBlocks.js:145 +msgid "return to URL" msgstr "" -#: js/WidgetBlocks.js:1168 -msgid "You must have at least one pitch block and one rhythm block in the matrix." +#: js/blocks/ActionBlocks.js:233 +#: js/blocks/ActionBlocks.js:290 +#: js/blocks/ActionBlocks.js:501 +#: js/blocks/ActionBlocks.js:688 +msgid "The Calculate block returns a value calculated by an action." msgstr "" -#: js/WidgetBlocks.js:1220 -msgid "The Status block opens a tool for inspecting the status of Music Blocks as it is running." +#: js/blocks/ActionBlocks.js:251 +#: js/blocks/ActionBlocks.js:517 +#: js/blocks/ActionBlocks.js:707 +msgid "calculate" msgstr "" -#: js/IntervalsBlocks.js:45 -msgid "set temperament" +#: js/blocks/ActionBlocks.js:376 +#: js/blocks/ActionBlocks.js:593 +#: js/blocks/ActionBlocks.js:942 +#: js/blocks/ActionBlocks.js:1389 +#.TRANS: do is the do something or take an action. +msgid "The Do block is used to initiate an action." msgstr "" -#: js/IntervalsBlocks.js:63 -#: js/MediaBlocks.js:746 -#: js/PitchBlocks.js:657 -#: js/PitchBlocks.js:933 -#: js/PitchBlocks.js:972 -#: js/PitchBlocks.js:1005 -#: js/PitchBlocks.js:1166 -#: js/PitchBlocks.js:1679 -#: js/PitchBlocks.js:1720 -#: js/PitchBlocks.js:1827 -#: js/ToneBlocks.js:1025 -#.TRANS: adjusts the shift up or down by one octave (twelve half-steps in the interval between two notes, one having twice or half the frequency in Hz of the other.) -msgid "octave" +#: js/blocks/ActionBlocks.js:390 +#: js/blocks/ActionBlocks.js:610 +#: js/blocks/ActionBlocks.js:959 +#: js/blocks/ActionBlocks.js:1048 +#: js/blocks/MeterBlocks.js:769 +msgid "do1" msgstr "" -#: js/IntervalsBlocks.js:99 -msgid "The Temperament name block is used to select a tuning method." +#: js/blocks/ActionBlocks.js:390 +#: js/blocks/ActionBlocks.js:610 +#: js/blocks/ActionBlocks.js:959 +#: js/blocks/ActionBlocks.js:1048 +#: js/blocks/FlowBlocks.js:742 +#: js/blocks/FlowBlocks.js:822 +#: js/blocks/MeterBlocks.js:769 +msgid "do" msgstr "" -#: js/IntervalsBlocks.js:161 -msgid "doubly" +#: js/blocks/ActionBlocks.js:791 +#: js/blocks/ActionBlocks.js:865 +msgid "The Arg block contains the value of an argument passed to an action." msgstr "" -#: js/IntervalsBlocks.js:166 -msgid "The Doubly block will double the size of an interval." +#: js/blocks/ActionBlocks.js:806 +#: js/blocks/ActionBlocks.js:878 +msgid "arg" msgstr "" -#: js/IntervalsBlocks.js:262 -msgid "interval number" +#: js/blocks/ActionBlocks.js:836 +#: js/blocks/ActionBlocks.js:900 +#: js/blocks/ActionBlocks.js:908 +msgid "Invalid argument" msgstr "" -#: js/IntervalsBlocks.js:330 -#.TRANS: measure the distance between two pitches in semi-tones -msgid "semi-tone interval measure" +#: js/blocks/ActionBlocks.js:944 +msgid "In the example, it is used with the One of block to choose a random phase." msgstr "" -#: js/IntervalsBlocks.js:397 -#: js/IntervalsBlocks.js:513 -msgid "You must use two pitch blocks when measuring an interval." +#: js/blocks/ActionBlocks.js:1019 +#: js/blocks/ActionBlocks.js:1026 +msgid "The Listen block is used to listen for an event such as a mouse click." msgstr "" -#: js/IntervalsBlocks.js:439 -msgid "The Scalar interval block measures the distance between two notes in the current key and mode." +#: js/blocks/ActionBlocks.js:1028 +msgid "When the event happens, an action is taken." msgstr "" -#: js/IntervalsBlocks.js:445 -#.TRANS: measure the distance between two pitches in steps of musical scale -msgid "scalar interval measure" +#: js/blocks/ActionBlocks.js:1045 +msgid "on" msgstr "" -#: js/IntervalsBlocks.js:592 -#: js/musicutils.js:637 -#: js/musicutils.js:908 -#.TRANS: perfect is a music term related to intervals -msgid "perfect" +#: js/blocks/ActionBlocks.js:1048 +#: js/blocks/ActionBlocks.js:1049 +#: js/blocks/ActionBlocks.js:1153 +msgid "event" msgstr "" -#: js/IntervalsBlocks.js:621 -msgid "In the figure, we add sol# to sol." +#: js/blocks/ActionBlocks.js:1133 +msgid "The Broadcast block is used to trigger an event." msgstr "" -#: js/IntervalsBlocks.js:627 -#: js/OrnamentBlocks.js:220 -#.TRANS: calculate a relative step between notes based on semi-tones -msgid "semi-tone interval" +#: js/blocks/ActionBlocks.js:1151 +msgid "broadcast" msgstr "" -#: js/IntervalsBlocks.js:676 -msgid "The output of the example is: do, mi, sol, sol, ti, mi" +#: js/blocks/ActionBlocks.js:1208 +msgid "Each Start block is a separate voice." msgstr "" -#: js/IntervalsBlocks.js:735 -msgid "The Chord block calculates common chords." +#: js/blocks/ActionBlocks.js:1304 +msgid "It is often used for storing a phrase of music that is repeated." msgstr "" -#: js/IntervalsBlocks.js:737 -msgid "In the figure, we generate a C-major chord." +#: js/blocks/ActionBlocks.js:1495 +msgid "define temperament" msgstr "" -#: js/IntervalsBlocks.js:742 -msgid "chord" +#: js/blocks/BooleanBlocks.js:44 +msgid "The Not block is the logical not operator." msgstr "" -#: js/IntervalsBlocks.js:794 -msgid "The Ratio Interval block calculates an interval based on a ratio." -msgstr "" +#: js/blocks/BooleanBlocks.js:62 +msgid "not" +msgstr "mut" -#: js/IntervalsBlocks.js:799 -msgid "ratio interval" +#: js/blocks/BooleanBlocks.js:134 +msgid "The And block is the logical and operator." msgstr "" -#: js/IntervalsBlocks.js:868 -msgid "In the figure, we add la to sol." +#: js/blocks/BooleanBlocks.js:152 +msgid "and" +msgstr "y" + +#: js/blocks/BooleanBlocks.js:218 +msgid "The Or block is the logical or operator." msgstr "" -#: js/IntervalsBlocks.js:924 -#.TRANS: define a custom mode -msgid "define mode" +#: js/blocks/BooleanBlocks.js:236 +msgid "or" +msgstr "o" + +#: js/blocks/BooleanBlocks.js:302 +msgid "The XOR block is the logical XOR operator." msgstr "" -#: js/IntervalsBlocks.js:977 -msgid "movable Do" +#: js/blocks/BooleanBlocks.js:320 +msgid "xor" msgstr "" -#: js/IntervalsBlocks.js:1028 -#.TRANS: mode length is the number of notes in the mode, e.g., 7 for major and minor scales; 12 for chromatic scales -msgid "mode length" +#: js/blocks/BooleanBlocks.js:808 +msgid "The Equal block returns True if the two numbers are equal." msgstr "" -#: js/IntervalsBlocks.js:1037 -msgid "The Mode length block is the number of notes in the current scale." +#: js/blocks/BooleanBlocks.js:909 +msgid "The Not-equal-to block returns True if the two numbers are not equal to each other." msgstr "" -#: js/IntervalsBlocks.js:1039 -msgid "Most Western scales have 7 notes." +#: js/blocks/BooleanBlocks.js:1008 +msgid "The Boolean block is used to specify true or false." msgstr "" -#: js/IntervalsBlocks.js:1088 -#.TRANS: the mode in music is 'major', 'minor', etc. -msgid "current mode" +#: js/blocks/BoxesBlocks.js:53 +#: js/blocks/BoxesBlocks.js:59 +msgid "The Add-to block is used to add to the value stored in a box." msgstr "" -#: js/IntervalsBlocks.js:1141 -#.TRANS: the key is a group of pitches with which a music composition is created -msgid "current key" +#: js/blocks/BoxesBlocks.js:61 +msgid "It can also be used with other blocks such as Color and Pen size." msgstr "" -#: js/IntervalsBlocks.js:1193 -#: js/IntervalsBlocks.js:1238 -#.TRANS: set the key and mode, e.g. C Major -msgid "set key" +#: js/blocks/BoxesBlocks.js:73 +msgid "add" msgstr "" -#: js/IntervalsBlocks.js:1247 -#: js/IntervalsBlocks.js:1253 -msgid "The Set key block is used to set the key and mode," +#: js/blocks/BoxesBlocks.js:75 +#: js/widgets/temperament.js:857 +msgid "to" msgstr "" -#: js/IntervalsBlocks.js:1253 -msgid "eg C Major" +#: js/blocks/BoxesBlocks.js:75 +#: js/blocks/BoxesBlocks.js:595 +#: js/blocks/HeapBlocks.js:544 +msgid "value1" msgstr "" -#: js/IntervalsBlocks.js:1266 -#: js/DictBlocks.js:215 -#: js/DictBlocks.js:216 -#: js/DictBlocks.js:289 -#: js/DictBlocks.js:290 -#: js/DictBlocks.js:357 -#: js/DictBlocks.js:430 -#: js/DictBlocks.js:431 -#.TRANS: key, e.g., C in C Major -msgid "key" +#: js/blocks/BoxesBlocks.js:118 +msgid "Block does not support incrementing." msgstr "" -#: js/ActionBlocks.js:58 -msgid "The Return block will return a value from an action." +#: js/blocks/BoxesBlocks.js:152 +msgid "The Add-1-to block adds one to the value stored in a box." msgstr "" -#: js/ActionBlocks.js:75 -msgid "return" +#: js/blocks/BoxesBlocks.js:163 +msgid "add 1 to" msgstr "" -#: js/ActionBlocks.js:128 -msgid "The Return to URL block will return a value to a webpage." +#: js/blocks/BoxesBlocks.js:211 +msgid "The Subtract-1-from block subtracts one from the value stored in a box." msgstr "" -#: js/ActionBlocks.js:145 -msgid "return to URL" +#: js/blocks/BoxesBlocks.js:222 +msgid "subtract 1 from" msgstr "" -#: js/ActionBlocks.js:233 -#: js/ActionBlocks.js:290 -#: js/ActionBlocks.js:501 -#: js/ActionBlocks.js:688 -msgid "The Calculate block returns a value calculated by an action." +#: js/blocks/BoxesBlocks.js:270 +#: js/blocks/BoxesBlocks.js:387 +msgid "The Box block returns the value stored in a box." msgstr "" -#: js/ActionBlocks.js:251 -#: js/ActionBlocks.js:517 -#: js/ActionBlocks.js:707 -msgid "calculate" +#: js/blocks/BoxesBlocks.js:500 +#: js/blocks/BoxesBlocks.js:576 +msgid "The Store in block will store a value in a box." msgstr "" -#: js/ActionBlocks.js:376 -#: js/ActionBlocks.js:593 -#: js/ActionBlocks.js:942 -#: js/ActionBlocks.js:1389 -#.TRANS: do is the do something or take an action. -msgid "The Do block is used to initiate an action." +#: js/blocks/BoxesBlocks.js:595 +#: js/blocks/EnsembleBlocks.js:391 +#: js/blocks/EnsembleBlocks.js:402 +msgid "name1" msgstr "" -#: js/ActionBlocks.js:390 -#: js/ActionBlocks.js:610 -#: js/ActionBlocks.js:959 -#: js/ActionBlocks.js:1048 -#: js/MeterBlocks.js:769 -msgid "do1" +#: js/blocks/BoxesBlocks.js:652 +msgid "The Box2 block returns the value stored in Box2." msgstr "" -#: js/ActionBlocks.js:390 -#: js/ActionBlocks.js:610 -#: js/ActionBlocks.js:959 -#: js/ActionBlocks.js:1048 -#: js/FlowBlocks.js:742 -#: js/FlowBlocks.js:822 -#: js/MeterBlocks.js:769 -msgid "do" +#: js/blocks/BoxesBlocks.js:703 +msgid "The Store in Box2 block is used to store a value in Box2." msgstr "" -#: js/ActionBlocks.js:791 -#: js/ActionBlocks.js:865 -msgid "The Arg block contains the value of an argument passed to an action." +#: js/blocks/BoxesBlocks.js:715 +msgid "store in box2" msgstr "" -#: js/ActionBlocks.js:806 -#: js/ActionBlocks.js:878 -msgid "arg" +#: js/blocks/BoxesBlocks.js:761 +msgid "The Box1 block returns the value stored in Box1." msgstr "" -#: js/ActionBlocks.js:836 -#: js/ActionBlocks.js:900 -#: js/ActionBlocks.js:908 -msgid "Invalid argument" +#: js/blocks/BoxesBlocks.js:812 +msgid "The Store in Box1 block is used to store a value in Box1." msgstr "" -#: js/ActionBlocks.js:944 -msgid "In the example, it is used with the One of block to choose a random phase." +#: js/blocks/BoxesBlocks.js:826 +msgid "store in box1" msgstr "" -#: js/ActionBlocks.js:1019 -#: js/ActionBlocks.js:1026 -msgid "The Listen block is used to listen for an event such as a mouse click." +#: js/blocks/DictBlocks.js:77 +msgid "show dictionary" msgstr "" -#: js/ActionBlocks.js:1028 -msgid "When the event happens, an action is taken." +#: js/blocks/DictBlocks.js:80 +#: js/blocks/DictBlocks.js:145 +#: js/blocks/DictBlocks.js:216 +#: js/blocks/DictBlocks.js:290 +#: js/blocks/ProgramBlocks.js:396 +#: js/blocks/ProgramBlocks.js:501 +#: js/blocks/ProgramBlocks.js:664 +msgid "My Dictionary" msgstr "" -#: js/ActionBlocks.js:1045 -msgid "on" +#: js/blocks/DictBlocks.js:129 +msgid "The Dictionary block returns a dictionary." msgstr "" -#: js/ActionBlocks.js:1048 -#: js/ActionBlocks.js:1049 -#: js/ActionBlocks.js:1153 -msgid "event" +#: js/blocks/DictBlocks.js:197 +#: js/blocks/DictBlocks.js:339 +msgid "The Get-dict block returns a value in the dictionary for a specified key." msgstr "" -#: js/ActionBlocks.js:1133 -msgid "The Broadcast block is used to trigger an event." +#: js/blocks/DictBlocks.js:212 +#: js/blocks/DictBlocks.js:354 +#.TRANS: retrieve a value from the dictionary with a given key +msgid "get value" msgstr "" -#: js/ActionBlocks.js:1151 -msgid "broadcast" +#: js/blocks/DictBlocks.js:215 +#: js/blocks/DictBlocks.js:216 +#: js/blocks/DictBlocks.js:289 +#: js/blocks/DictBlocks.js:290 +#: js/blocks/DictBlocks.js:357 +#: js/blocks/DictBlocks.js:430 +#: js/blocks/DictBlocks.js:431 +msgid "key2" msgstr "" -#: js/ActionBlocks.js:1208 -msgid "Each Start block is a separate voice." +#: js/blocks/DictBlocks.js:215 +#: js/blocks/DictBlocks.js:216 +#: js/blocks/DictBlocks.js:289 +#: js/blocks/DictBlocks.js:290 +#: js/blocks/DictBlocks.js:357 +#: js/blocks/DictBlocks.js:430 +#: js/blocks/DictBlocks.js:431 +#: js/blocks/IntervalsBlocks.js:1462 +#.TRANS: key, e.g., C in C Major +msgid "key" msgstr "" -#: js/ActionBlocks.js:1304 -msgid "It is often used for storing a phrase of music that is repeated." +#: js/blocks/DictBlocks.js:271 +#: js/blocks/DictBlocks.js:411 +msgid "The Set-dict block sets a value in the dictionary for a specified key." msgstr "" -#: js/ActionBlocks.js:1495 -msgid "define temperament" +#: js/blocks/DictBlocks.js:286 +#: js/blocks/DictBlocks.js:427 +#.TRANS: set a value in the dictionary for a given key +msgid "set value" msgstr "" -#: js/EnsembleBlocks.js:66 +#: js/blocks/EnsembleBlocks.js:66 msgid "mouse index heap" msgstr "" -#: js/EnsembleBlocks.js:68 +#: js/blocks/EnsembleBlocks.js:68 msgid "The Mouse index heap block returns a value in the heap at a specified location for a specified mouse." msgstr "" -#: js/EnsembleBlocks.js:77 -#: js/EnsembleBlocks.js:1080 +#: js/blocks/EnsembleBlocks.js:77 +#: js/blocks/EnsembleBlocks.js:1080 msgid "mouse name" msgstr "" -#: js/EnsembleBlocks.js:77 -#: js/EnsembleBlocks.js:92 -#: js/HeapBlocks.js:544 +#: js/blocks/EnsembleBlocks.js:77 +#: js/blocks/EnsembleBlocks.js:92 +#: js/blocks/HeapBlocks.js:544 #.TRANS: value1 is a numeric value (JAPANESE ONLY) msgid "index" msgstr "" -#: js/EnsembleBlocks.js:80 +#: js/blocks/EnsembleBlocks.js:80 msgid "turtle index heap" msgstr "" -#: js/EnsembleBlocks.js:82 +#: js/blocks/EnsembleBlocks.js:82 msgid "The Turtle index heap block returns a value in the heap at a specified location for a specified turtle." msgstr "" -#: js/EnsembleBlocks.js:90 -#: js/EnsembleBlocks.js:167 -#: js/EnsembleBlocks.js:230 -#: js/EnsembleBlocks.js:316 -#: js/EnsembleBlocks.js:362 -#: js/EnsembleBlocks.js:400 -#: js/EnsembleBlocks.js:454 -#: js/EnsembleBlocks.js:504 -#: js/EnsembleBlocks.js:550 -#: js/EnsembleBlocks.js:597 -#: js/EnsembleBlocks.js:651 -#: js/EnsembleBlocks.js:763 -#: js/EnsembleBlocks.js:854 -#: js/EnsembleBlocks.js:915 -#: js/EnsembleBlocks.js:955 -#: js/EnsembleBlocks.js:1219 -#: js/EnsembleBlocks.js:1293 +#: js/blocks/EnsembleBlocks.js:90 +#: js/blocks/EnsembleBlocks.js:167 +#: js/blocks/EnsembleBlocks.js:230 +#: js/blocks/EnsembleBlocks.js:316 +#: js/blocks/EnsembleBlocks.js:362 +#: js/blocks/EnsembleBlocks.js:400 +#: js/blocks/EnsembleBlocks.js:454 +#: js/blocks/EnsembleBlocks.js:504 +#: js/blocks/EnsembleBlocks.js:550 +#: js/blocks/EnsembleBlocks.js:597 +#: js/blocks/EnsembleBlocks.js:651 +#: js/blocks/EnsembleBlocks.js:763 +#: js/blocks/EnsembleBlocks.js:854 +#: js/blocks/EnsembleBlocks.js:915 +#: js/blocks/EnsembleBlocks.js:955 +#: js/blocks/EnsembleBlocks.js:1219 +#: js/blocks/EnsembleBlocks.js:1293 #.TRANS: Yertle is the name of a turtle. msgid "Yertle" msgstr "" -#: js/EnsembleBlocks.js:92 -#: js/EnsembleBlocks.js:1089 +#: js/blocks/EnsembleBlocks.js:92 +#: js/blocks/EnsembleBlocks.js:1089 msgid "turtle name" msgstr "" -#: js/EnsembleBlocks.js:122 -#: js/EnsembleBlocks.js:1197 -#: js/HeapBlocks.js:474 -#: js/HeapBlocks.js:572 +#: js/blocks/EnsembleBlocks.js:122 +#: js/blocks/EnsembleBlocks.js:1197 +#: js/blocks/HeapBlocks.js:474 +#: js/blocks/HeapBlocks.js:572 msgid "Index must be > 0." msgstr "" -#: js/EnsembleBlocks.js:127 -#: js/HeapBlocks.js:479 -#: js/HeapBlocks.js:577 +#: js/blocks/EnsembleBlocks.js:127 +#: js/blocks/HeapBlocks.js:479 +#: js/blocks/HeapBlocks.js:577 msgid "Maximum heap size is 1000." msgstr "" -#: js/EnsembleBlocks.js:145 +#: js/blocks/EnsembleBlocks.js:145 msgid "stop mouse" msgstr "" -#: js/EnsembleBlocks.js:147 +#: js/blocks/EnsembleBlocks.js:147 msgid "The Stop mouse block stops the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:158 +#: js/blocks/EnsembleBlocks.js:158 msgid "stop turtle" msgstr "" -#: js/EnsembleBlocks.js:160 +#: js/blocks/EnsembleBlocks.js:160 msgid "The Stop turtle block stops the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:184 -#: js/EnsembleBlocks.js:247 -#: js/EnsembleBlocks.js:413 -#: js/EnsembleBlocks.js:468 -#: js/EnsembleBlocks.js:706 -#: js/EnsembleBlocks.js:808 -#: js/EnsembleBlocks.js:870 -#: js/EnsembleBlocks.js:1190 -#: js/EnsembleBlocks.js:1253 +#: js/blocks/EnsembleBlocks.js:184 +#: js/blocks/EnsembleBlocks.js:247 +#: js/blocks/EnsembleBlocks.js:413 +#: js/blocks/EnsembleBlocks.js:468 +#: js/blocks/EnsembleBlocks.js:706 +#: js/blocks/EnsembleBlocks.js:808 +#: js/blocks/EnsembleBlocks.js:870 +#: js/blocks/EnsembleBlocks.js:1190 +#: js/blocks/EnsembleBlocks.js:1253 msgid "Cannot find mouse" msgstr "" -#: js/EnsembleBlocks.js:186 -#: js/EnsembleBlocks.js:249 -#: js/EnsembleBlocks.js:415 -#: js/EnsembleBlocks.js:470 -#: js/EnsembleBlocks.js:708 -#: js/EnsembleBlocks.js:810 -#: js/EnsembleBlocks.js:872 -#: js/EnsembleBlocks.js:1192 -#: js/EnsembleBlocks.js:1255 +#: js/blocks/EnsembleBlocks.js:186 +#: js/blocks/EnsembleBlocks.js:249 +#: js/blocks/EnsembleBlocks.js:415 +#: js/blocks/EnsembleBlocks.js:470 +#: js/blocks/EnsembleBlocks.js:708 +#: js/blocks/EnsembleBlocks.js:810 +#: js/blocks/EnsembleBlocks.js:872 +#: js/blocks/EnsembleBlocks.js:1192 +#: js/blocks/EnsembleBlocks.js:1255 msgid "Cannot find turtle" msgstr "" -#: js/EnsembleBlocks.js:206 +#: js/blocks/EnsembleBlocks.js:206 msgid "start mouse" msgstr "" -#: js/EnsembleBlocks.js:209 +#: js/blocks/EnsembleBlocks.js:209 msgid "The Start mouse block starts the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:220 +#: js/blocks/EnsembleBlocks.js:220 msgid "start turtle" msgstr "" -#: js/EnsembleBlocks.js:223 +#: js/blocks/EnsembleBlocks.js:223 msgid "The Start turtle block starts the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:256 +#: js/blocks/EnsembleBlocks.js:256 msgid "Mouse is already running." msgstr "" -#: js/EnsembleBlocks.js:258 +#: js/blocks/EnsembleBlocks.js:258 msgid "Turtle is already running." msgstr "" -#: js/EnsembleBlocks.js:282 +#: js/blocks/EnsembleBlocks.js:282 msgid "Cannot find start block" msgstr "" -#: js/EnsembleBlocks.js:292 +#: js/blocks/EnsembleBlocks.js:292 #.TRANS: pen color for this mouse msgid "mouse color" msgstr "" -#: js/EnsembleBlocks.js:294 +#: js/blocks/EnsembleBlocks.js:294 msgid "The Mouse color block returns the pen color of the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:306 +#: js/blocks/EnsembleBlocks.js:306 #.TRANS: pen color for this turtle msgid "turtle color" msgstr "" -#: js/EnsembleBlocks.js:308 +#: js/blocks/EnsembleBlocks.js:308 msgid "The Turtle color block returns the pen color of the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:338 +#: js/blocks/EnsembleBlocks.js:338 #.TRANS: heading (compass direction) for this mouse msgid "mouse heading" msgstr "" -#: js/EnsembleBlocks.js:340 +#: js/blocks/EnsembleBlocks.js:340 msgid "The Mouse heading block returns the heading of the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:352 +#: js/blocks/EnsembleBlocks.js:352 #.TRANS: heading (compass direction) for this turtle msgid "turtle heading" msgstr "" -#: js/EnsembleBlocks.js:354 +#: js/blocks/EnsembleBlocks.js:354 msgid "The Turtle heading block returns the heading of the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:384 -#: js/EnsembleBlocks.js:439 +#: js/blocks/EnsembleBlocks.js:384 +#: js/blocks/EnsembleBlocks.js:439 #.TRANS: set xy position for this mouse msgid "set mouse" msgstr "" -#: js/EnsembleBlocks.js:391 -#: js/EnsembleBlocks.js:402 -#: js/BoxesBlocks.js:595 -msgid "name1" -msgstr "" - -#: js/EnsembleBlocks.js:391 -#: js/EnsembleBlocks.js:402 -#: js/ProgramBlocks.js:881 -#: js/GraphicsBlocks.js:235 -#: js/GraphicsBlocks.js:313 -#: js/GraphicsBlocks.js:436 -#: js/GraphicsBlocks.js:487 -#: js/GraphicsBlocks.js:534 -#: js/GraphicsBlocks.js:750 +#: js/blocks/EnsembleBlocks.js:391 +#: js/blocks/EnsembleBlocks.js:402 +#: js/blocks/GraphicsBlocks.js:235 +#: js/blocks/GraphicsBlocks.js:313 +#: js/blocks/GraphicsBlocks.js:436 +#: js/blocks/GraphicsBlocks.js:487 +#: js/blocks/GraphicsBlocks.js:534 +#: js/blocks/GraphicsBlocks.js:750 +#: js/blocks/ProgramBlocks.js:881 msgid "x" msgstr "x" -#: js/EnsembleBlocks.js:391 -#: js/EnsembleBlocks.js:402 -#: js/ProgramBlocks.js:881 -#: js/GraphicsBlocks.js:149 -#: js/GraphicsBlocks.js:313 -#: js/GraphicsBlocks.js:436 -#: js/GraphicsBlocks.js:487 -#: js/GraphicsBlocks.js:534 -#: js/GraphicsBlocks.js:750 +#: js/blocks/EnsembleBlocks.js:391 +#: js/blocks/EnsembleBlocks.js:402 +#: js/blocks/GraphicsBlocks.js:149 +#: js/blocks/GraphicsBlocks.js:313 +#: js/blocks/GraphicsBlocks.js:436 +#: js/blocks/GraphicsBlocks.js:487 +#: js/blocks/GraphicsBlocks.js:534 +#: js/blocks/GraphicsBlocks.js:750 +#: js/blocks/ProgramBlocks.js:881 msgid "y" msgstr "y" -#: js/EnsembleBlocks.js:395 -#: js/EnsembleBlocks.js:452 +#: js/blocks/EnsembleBlocks.js:395 +#: js/blocks/EnsembleBlocks.js:452 #.TRANS: set xy position for this turtle msgid "set turtle" msgstr "" -#: js/EnsembleBlocks.js:433 +#: js/blocks/EnsembleBlocks.js:433 msgid "The Set mouse block sends a stack of blocks to be run by the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:446 +#: js/blocks/EnsembleBlocks.js:446 msgid "The Set turtle block sends a stack of blocks to be run by the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:480 +#: js/blocks/EnsembleBlocks.js:480 #.TRANS: y position for this mouse msgid "mouse y" msgstr "" -#: js/EnsembleBlocks.js:482 +#: js/blocks/EnsembleBlocks.js:482 msgid "The Y mouse block returns the Y position of the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:494 +#: js/blocks/EnsembleBlocks.js:494 #.TRANS: y position for this turtle msgid "turtle y" msgstr "" -#: js/EnsembleBlocks.js:496 +#: js/blocks/EnsembleBlocks.js:496 msgid "The Y turtle block returns the Y position of the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:526 +#: js/blocks/EnsembleBlocks.js:526 #.TRANS: x position for this mouse msgid "mouse x" msgstr "" -#: js/EnsembleBlocks.js:528 +#: js/blocks/EnsembleBlocks.js:528 msgid "The X mouse block returns the X position of the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:540 +#: js/blocks/EnsembleBlocks.js:540 #.TRANS: x position for this turtle msgid "turtle x" msgstr "" -#: js/EnsembleBlocks.js:542 +#: js/blocks/EnsembleBlocks.js:542 msgid "The X turtle block returns the X position of the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:573 +#: js/blocks/EnsembleBlocks.js:573 #.TRANS: notes played by this mouse msgid "mouse notes played" msgstr "" -#: js/EnsembleBlocks.js:575 +#: js/blocks/EnsembleBlocks.js:575 msgid "The Mouse elapse notes block returns the number of notes played by the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:587 +#: js/blocks/EnsembleBlocks.js:587 #.TRANS: notes played by this turtle msgid "turtle notes played" msgstr "" -#: js/EnsembleBlocks.js:589 +#: js/blocks/EnsembleBlocks.js:589 msgid "The Turtle elapse notes block returns the number of notes played by the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:627 +#: js/blocks/EnsembleBlocks.js:627 #.TRANS: convert current note for this turtle to piano key (1-88) msgid "mouse pitch number" msgstr "" -#: js/EnsembleBlocks.js:629 +#: js/blocks/EnsembleBlocks.js:629 msgid "The Mouse pitch block returns the current pitch number being played by the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:641 +#: js/blocks/EnsembleBlocks.js:641 #.TRANS: convert current note for this turtle to piano key (1-88) msgid "turtle pitch number" msgstr "" -#: js/EnsembleBlocks.js:643 -msgid "The Turrle pitch block returns the current pitch number being played by the specified turtle." +#: js/blocks/EnsembleBlocks.js:643 +msgid "The Turtle pitch block returns the current pitch number being played by the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:747 -#: js/EnsembleBlocks.js:819 +#: js/blocks/EnsembleBlocks.js:747 +#: js/blocks/EnsembleBlocks.js:819 #.TRANS: note value is the duration of the note played by this mouse msgid "mouse note value" msgstr "" -#: js/EnsembleBlocks.js:757 +#: js/blocks/EnsembleBlocks.js:757 #.TRANS: note value is the duration of the note played by this turtle msgid "turtle note value" msgstr "" -#: js/EnsembleBlocks.js:830 +#: js/blocks/EnsembleBlocks.js:830 #.TRANS: sync is short for synchronization msgid "mouse sync" msgstr "" -#: js/EnsembleBlocks.js:832 +#: js/blocks/EnsembleBlocks.js:832 msgid "The Mouse sync block aligns the beat count between mice." msgstr "" -#: js/EnsembleBlocks.js:844 +#: js/blocks/EnsembleBlocks.js:844 #.TRANS: sync is short for synchronization msgid "turtle sync" msgstr "" -#: js/EnsembleBlocks.js:846 +#: js/blocks/EnsembleBlocks.js:846 msgid "The Turtle sync block aligns the beat count between turtles." msgstr "" -#: js/EnsembleBlocks.js:887 +#: js/blocks/EnsembleBlocks.js:887 msgid "The Found mouse block will return true if the specified mouse can be found." msgstr "" -#: js/EnsembleBlocks.js:893 +#: js/blocks/EnsembleBlocks.js:893 msgid "found mouse" msgstr "" -#: js/EnsembleBlocks.js:903 +#: js/blocks/EnsembleBlocks.js:903 msgid "The Found turtle block will return true if the specified turtle can be found." msgstr "" -#: js/EnsembleBlocks.js:909 +#: js/blocks/EnsembleBlocks.js:909 msgid "found turtle" msgstr "" -#: js/EnsembleBlocks.js:932 +#: js/blocks/EnsembleBlocks.js:932 msgid "new mouse" msgstr "" -#: js/EnsembleBlocks.js:934 +#: js/blocks/EnsembleBlocks.js:934 msgid "The New mouse block will create a new mouse." msgstr "" -#: js/EnsembleBlocks.js:945 +#: js/blocks/EnsembleBlocks.js:945 msgid "new turtle" msgstr "" -#: js/EnsembleBlocks.js:947 -msgid "The New turtle block will create a new turtle." -msgstr "" - -#: js/EnsembleBlocks.js:1011 -msgid "set mouse color" -msgstr "" - -#: js/EnsembleBlocks.js:1014 -msgid "The Set-mouse-color block is used to set the color of a mouse." -msgstr "" - -#: js/EnsembleBlocks.js:1020 -msgid "set turtle color" -msgstr "" - -#: js/EnsembleBlocks.js:1023 -msgid "The Set-turtle-color block is used to set the color of a turtle." -msgstr "" - -#: js/EnsembleBlocks.js:1083 -msgid "The Mouse-name block returns the name of a mouse." -msgstr "" - -#: js/EnsembleBlocks.js:1092 -msgid "The Turtle-name block returns the name of a turtle." -msgstr "" - -#: js/EnsembleBlocks.js:1115 -msgid "mouse count" -msgstr "" - -#: js/EnsembleBlocks.js:1118 -msgid "The Mouse-count block returns the number of mice." -msgstr "" - -#: js/EnsembleBlocks.js:1124 -msgid "turtle count" -msgstr "" - -#: js/EnsembleBlocks.js:1127 -msgid "The Turtle-count block returns the number of turtles." -msgstr "" - -#: js/EnsembleBlocks.js:1149 -msgid "nth mouse name" -msgstr "" - -#: js/EnsembleBlocks.js:1152 -msgid "The Nth-Mouse name block returns the name of the nth mouse." -msgstr "" - -#: js/EnsembleBlocks.js:1158 -msgid "nth turtle name" -msgstr "" - -#: js/EnsembleBlocks.js:1161 -msgid "The Nth-Turtle name block returns the name of the nth turtle." -msgstr "" - -#: js/EnsembleBlocks.js:1205 -#: js/EnsembleBlocks.js:1265 -msgid "set name" -msgstr "" - -#: js/EnsembleBlocks.js:1214 -#: js/EnsembleBlocks.js:1221 -msgid "source" -msgstr "" - -#: js/EnsembleBlocks.js:1214 -#: js/EnsembleBlocks.js:1221 -msgid "target" -msgstr "" - -#: js/EnsembleBlocks.js:1271 -msgid "The Set-name block is used to name a mouse." -msgstr "" - -#: js/EnsembleBlocks.js:1284 -msgid "The Set-name block is used to name a turtle." -msgstr "" - -#: js/BooleanBlocks.js:44 -msgid "The Not block is the logical not operator." -msgstr "" - -#: js/BooleanBlocks.js:62 -msgid "not" -msgstr "mut" - -#: js/BooleanBlocks.js:134 -msgid "The And block is the logical and operator." -msgstr "" - -#: js/BooleanBlocks.js:152 -msgid "and" -msgstr "y" - -#: js/BooleanBlocks.js:218 -msgid "The Or block is the logical or operator." -msgstr "" - -#: js/BooleanBlocks.js:236 -msgid "or" -msgstr "o" +#: js/blocks/EnsembleBlocks.js:947 +msgid "The New turtle block will create a new turtle." +msgstr "" -#: js/BooleanBlocks.js:302 -msgid "The XOR block is the logical XOR operator." +#: js/blocks/EnsembleBlocks.js:1011 +msgid "set mouse color" msgstr "" -#: js/BooleanBlocks.js:320 -msgid "xor" +#: js/blocks/EnsembleBlocks.js:1014 +msgid "The Set-mouse-color block is used to set the color of a mouse." msgstr "" -#: js/BooleanBlocks.js:808 -msgid "The Equal block returns True if the two numbers are equal." +#: js/blocks/EnsembleBlocks.js:1020 +msgid "set turtle color" msgstr "" -#: js/BooleanBlocks.js:909 -msgid "The Not-equal-to block returns True if the two numbers are not equal to each other." +#: js/blocks/EnsembleBlocks.js:1023 +msgid "The Set-turtle-color block is used to set the color of a turtle." msgstr "" -#: js/BooleanBlocks.js:1008 -msgid "The Boolean block is used to specify true or false." +#: js/blocks/EnsembleBlocks.js:1083 +msgid "The Mouse-name block returns the name of a mouse." msgstr "" -#: js/MediaBlocks.js:35 -#.TRANS: right side of the screen -msgid "right (screen)" +#: js/blocks/EnsembleBlocks.js:1092 +msgid "The Turtle-name block returns the name of a turtle." msgstr "" -#: js/MediaBlocks.js:45 -#: js/MediaBlocks.js:56 -msgid "The Right block returns the position of the right of the canvas." +#: js/blocks/EnsembleBlocks.js:1115 +msgid "mouse count" msgstr "" -#: js/MediaBlocks.js:97 -#.TRANS: left side of the screen -msgid "left (screen)" +#: js/blocks/EnsembleBlocks.js:1118 +msgid "The Mouse-count block returns the number of mice." msgstr "" -#: js/MediaBlocks.js:107 -#: js/MediaBlocks.js:118 -msgid "The Left block returns the position of the left of the canvas." +#: js/blocks/EnsembleBlocks.js:1124 +msgid "turtle count" msgstr "" -#: js/MediaBlocks.js:158 -msgid "top (screen)" +#: js/blocks/EnsembleBlocks.js:1127 +msgid "The Turtle-count block returns the number of turtles." msgstr "" -#: js/MediaBlocks.js:168 -#: js/MediaBlocks.js:179 -msgid "The Top block returns the position of the top of the canvas." +#: js/blocks/EnsembleBlocks.js:1149 +msgid "nth mouse name" msgstr "" -#: js/MediaBlocks.js:219 -msgid "bottom (screen)" +#: js/blocks/EnsembleBlocks.js:1152 +msgid "The Nth-Mouse name block returns the name of the nth mouse." msgstr "" -#: js/MediaBlocks.js:229 -#: js/MediaBlocks.js:240 -msgid "The Bottom block returns the position of the bottom of the canvas." +#: js/blocks/EnsembleBlocks.js:1158 +msgid "nth turtle name" msgstr "" -#: js/MediaBlocks.js:282 -msgid "width" +#: js/blocks/EnsembleBlocks.js:1161 +msgid "The Nth-Turtle name block returns the name of the nth turtle." msgstr "" -#: js/MediaBlocks.js:291 -msgid "The Width block returns the width of the canvas." +#: js/blocks/EnsembleBlocks.js:1205 +#: js/blocks/EnsembleBlocks.js:1265 +msgid "set name" msgstr "" -#: js/MediaBlocks.js:325 -msgid "height" +#: js/blocks/EnsembleBlocks.js:1214 +#: js/blocks/EnsembleBlocks.js:1221 +msgid "source" msgstr "" -#: js/MediaBlocks.js:334 -msgid "The Height block returns the height of the canvas." +#: js/blocks/EnsembleBlocks.js:1214 +#: js/blocks/EnsembleBlocks.js:1221 +msgid "target" msgstr "" -#: js/MediaBlocks.js:369 -#.TRANS: stops playback of an audio recording -msgid "stop play" +#: js/blocks/EnsembleBlocks.js:1271 +msgid "The Set-name block is used to name a mouse." msgstr "" -#: js/MediaBlocks.js:404 -#.TRANS: Erases the images and text -msgid "erase media" +#: js/blocks/EnsembleBlocks.js:1284 +msgid "The Set-name block is used to name a turtle." msgstr "" -#: js/MediaBlocks.js:409 -msgid "The Erase Media block erases text and images." +#: js/blocks/ExtrasBlocks.js:33 +msgid "fraction" msgstr "" -#: js/MediaBlocks.js:439 -#.TRANS: play an audio recording -msgid "play back" +#: js/blocks/ExtrasBlocks.js:36 +msgid "Convert a float to a fraction" msgstr "" -#: js/MediaBlocks.js:487 -msgid "speak" -msgstr "nia" +#: js/blocks/ExtrasBlocks.js:93 +msgid "save as ABC" +msgstr "" -#: js/MediaBlocks.js:495 -msgid "The Speak block outputs to the text-to-speech synthesizer" +#: js/blocks/ExtrasBlocks.js:96 +#: js/blocks/ExtrasBlocks.js:132 +#: js/blocks/ExtrasBlocks.js:168 +msgid "title" msgstr "" -#: js/MediaBlocks.js:546 -msgid "camera" +#: js/blocks/ExtrasBlocks.js:129 +msgid "save as Lilypond" msgstr "" -#: js/MediaBlocks.js:551 -msgid "The Camera block connects a webcam to the Show block." +#: js/blocks/ExtrasBlocks.js:165 +msgid "save as SVG" msgstr "" -#: js/MediaBlocks.js:574 -msgid "video" +#: js/blocks/ExtrasBlocks.js:216 +msgid "no background" msgstr "" -#: js/MediaBlocks.js:579 -msgid "The Video block selects video for use with the Show block." +#: js/blocks/ExtrasBlocks.js:219 +msgid "The No background block eliminates the background from the saved SVG output." msgstr "" -#: js/MediaBlocks.js:607 -msgid "The Open file block opens a file for use with the Show block." +#: js/blocks/ExtrasBlocks.js:247 +msgid "show blocks" +msgstr "Ma'u'up re se vud-ua me'ets" + +#: js/blocks/ExtrasBlocks.js:249 +msgid "The Show blocks block shows the blocks." msgstr "" -#: js/MediaBlocks.js:645 -msgid "stop media" +#: js/blocks/ExtrasBlocks.js:274 +msgid "hide blocks" +msgstr "Ma'aung me'ets kily'e" + +#: js/blocks/ExtrasBlocks.js:276 +msgid "The Hide blocks block hides the blocks." msgstr "" -#: js/MediaBlocks.js:650 -msgid "The Stop media block stops audio or video playback." +#: js/blocks/ExtrasBlocks.js:305 +#: js/blocks/ExtrasBlocks.js:338 +msgid "The Space block is used to add space between blocks." msgstr "" -#: js/MediaBlocks.js:679 -#: js/PitchBlocks.js:1539 -#: js/phrasemaker.js:822 -#: js/musickeyboard.js:1654 -#.TRANS: a measure of frequency: one cycle per second -msgid "hertz" +#: js/blocks/ExtrasBlocks.js:376 +msgid "wait" +msgstr "mapee" + +#: js/blocks/ExtrasBlocks.js:379 +msgid "The Wait block pauses the program for a specified number of seconds." msgstr "" -#: js/MediaBlocks.js:692 -msgid "duration (ms)" +#: js/blocks/ExtrasBlocks.js:433 +#: plugins/facebook.rtp:30 +msgid "comment" msgstr "" -#: js/MediaBlocks.js:728 -#.TRANS: translate a note into hertz, e.g., A4 -> 440HZ -msgid "note to frequency" +#: js/blocks/ExtrasBlocks.js:469 +msgid "print" msgstr "" -#: js/MediaBlocks.js:736 -msgid "The To frequency block converts a pitch name and octave to Hertz." +#: js/blocks/ExtrasBlocks.js:476 +msgid "The Print block displays text at the top of the screen." msgstr "" -#: js/MediaBlocks.js:746 -#: js/PitchBlocks.js:656 -#: js/PitchBlocks.js:932 -#: js/PitchBlocks.js:1827 -#.TRANS: name2 is name as in name of pitch (JAPANESE ONLY) -msgid "name2" +#: js/blocks/ExtrasBlocks.js:582 +msgid "display grid" msgstr "" -#: js/MediaBlocks.js:812 -msgid "The Avatar block is used to change the appearance of the mouse." +#: js/blocks/ExtrasBlocks.js:587 +msgid "The Display Grid Block changes the grid type" msgstr "" -#: js/MediaBlocks.js:819 -msgid "The Avatar block is used to change the appearance of the turtle." +#: js/blocks/ExtrasBlocks.js:689 +#: js/blocks/ExtrasBlocks.js:708 +#: js/blocks/ExtrasBlocks.js:731 +#: js/blocks/ExtrasBlocks.js:754 +#: js/blocks/ExtrasBlocks.js:772 +#: js/blocks/ExtrasBlocks.js:791 +#: js/blocks/ExtrasBlocks.js:810 +#: js/blocks/ExtrasBlocks.js:829 +msgid "unknown" msgstr "" -#: js/MediaBlocks.js:831 -#: js/MediaBlocks.js:891 -#.TRANS: a media object -msgid "size" +#: js/blocks/FlowBlocks.js:41 +msgid "The Backward block runs code in reverse order (Musical retrograde)." msgstr "" -#: js/MediaBlocks.js:831 -msgid "image" -msgstr "xikji'ik" +#: js/blocks/FlowBlocks.js:48 +msgid "backward" +msgstr "" -#: js/MediaBlocks.js:880 -msgid "The Show block is used to display text or images on the canvas." +#: js/blocks/FlowBlocks.js:124 +msgid "The Duplicate block will run each block multiple times." msgstr "" -#: js/MediaBlocks.js:888 -#.TRANS: show1 is show as in display an image or text on the screen. -msgid "show1" +#: js/blocks/FlowBlocks.js:136 +msgid "duplicate" msgstr "" -#: js/MediaBlocks.js:891 -msgid "obj" +#: js/blocks/FlowBlocks.js:334 +msgid "The Default block is used inside of a Switch to define the default action." msgstr "" -#: js/MediaBlocks.js:938 -msgid "The Media block is used to import an image." +#: js/blocks/FlowBlocks.js:342 +msgid "default" msgstr "" -#: js/MediaBlocks.js:973 -msgid "The Text block holds a text string." +#: js/blocks/FlowBlocks.js:361 +#: js/blocks/FlowBlocks.js:418 +msgid "The Case Block must be used inside of a Switch Block." msgstr "" -#: js/ProgramBlocks.js:33 -msgid "The Load-heap-from-app block loads the heap from a web page." +#: js/blocks/FlowBlocks.js:389 +msgid "The Case block is used inside of a Switch to define matches." msgstr "" -#: js/ProgramBlocks.js:44 -#.TRANS: load the heap contents from a URL -msgid "load heap from App" +#: js/blocks/FlowBlocks.js:397 +msgid "case" msgstr "" -#: js/ProgramBlocks.js:95 -msgid "Error parsing JSON data:" +#: js/blocks/FlowBlocks.js:446 +msgid "The Switch block will run the code in the matching Case." msgstr "" -#: js/ProgramBlocks.js:100 -msgid "404: Page not found" +#: js/blocks/FlowBlocks.js:454 +msgid "switch" msgstr "" -#: js/ProgramBlocks.js:133 -msgid "The Save-heap-to-app block saves the heap to a web page." +#: js/blocks/FlowBlocks.js:595 +msgid "The Stop block will stop a loop" msgstr "" -#: js/ProgramBlocks.js:144 -#.TRANS: save the heap contents to a URL -msgid "save heap to App" +#: js/blocks/FlowBlocks.js:597 +msgid "Forever, Repeat, While, or Until." msgstr "" -#: js/ProgramBlocks.js:189 -msgid "Cannot find a valid heap for" +#: js/blocks/FlowBlocks.js:604 +#: js/widgets/timbre.js:417 +#: js/widgets/timbre.js:419 +#: js/widgets/musickeyboard.js:819 +#: js/widgets/musickeyboard.js:821 +#: js/widgets/phrasemaker.js:4202 +#: plugins/rodi.rtp:29 +#: plugins/rodi.rtp:73 +#: plugins/rodi.rtp:413 +msgid "stop" +msgstr "ndama'ai" + +#: js/blocks/FlowBlocks.js:653 +msgid "The Waitfor block will wait until the condition is true." msgstr "" -#: js/ProgramBlocks.js:206 -msgid "The Load-heap block loads the heap from a file." +#: js/blocks/FlowBlocks.js:661 +msgid "wait for" msgstr "" -#: js/ProgramBlocks.js:217 -#.TRANS: load the heap from a file -msgid "load heap" +#: js/blocks/FlowBlocks.js:732 +msgid "The Until block will repeat until the condition is true." msgstr "" -#: js/ProgramBlocks.js:270 -msgid "The file you selected does not contain a valid heap." +#: js/blocks/FlowBlocks.js:740 +msgid "until" +msgstr "lamee" + +#: js/blocks/FlowBlocks.js:742 +#: js/blocks/FlowBlocks.js:822 +msgid "do2" msgstr "" -#: js/ProgramBlocks.js:275 -msgid "The loadHeap block needs a loadFile block." +#: js/blocks/FlowBlocks.js:812 +msgid "The While block will repeat while the condition is true." msgstr "" -#: js/ProgramBlocks.js:291 -msgid "The Set-heap block loads the heap." +#: js/blocks/FlowBlocks.js:820 +msgid "while" +msgstr "vupee sad-ia'" + +#: js/blocks/FlowBlocks.js:903 +#: js/blocks/FlowBlocks.js:968 +#: js/blocks/FlowBlocks.js:979 +msgid "In this example if the mouse button is pressed a snare drum will play." msgstr "" -#: js/ProgramBlocks.js:299 -#: js/HeapBlocks.js:539 -#.TRANS: load the heap from a JSON encoding -msgid "set heap" +#: js/blocks/FlowBlocks.js:925 +#: js/blocks/FlowBlocks.js:988 +msgid "if" +msgstr "lik'iajam" + +#: js/blocks/FlowBlocks.js:927 +#: js/blocks/FlowBlocks.js:990 +msgid "then" +msgstr "xi'iap" + +#: js/blocks/FlowBlocks.js:927 +msgid "else" +msgstr "kad-ep" + +#: js/blocks/FlowBlocks.js:1025 +msgid "The Forever block will repeat the contained blocks forever." msgstr "" -#: js/ProgramBlocks.js:340 -msgid "The block you selected does not contain a valid heap." +#: js/blocks/FlowBlocks.js:1037 +msgid "forever" +msgstr "Leem" + +#: js/blocks/FlowBlocks.js:1073 +msgid "The Repeat block will repeat the contained blocks." msgstr "" -#: js/ProgramBlocks.js:343 -msgid "The Set heap block needs a heap." +#: js/blocks/FlowBlocks.js:1075 +msgid "In this example the note will be played 4 times." msgstr "" -#: js/ProgramBlocks.js:360 -msgid "The Load-dictionary block loads a dictionary from a file." +#: js/blocks/FlowBlocks.js:1083 +msgid "repeat" +msgstr "Maleix" + +#: js/blocks/FlowBlocks.js:1123 +msgid "duplicate factor" msgstr "" -#: js/ProgramBlocks.js:372 -#.TRANS: load a dictionary from a file -msgid "load dictionary" +#: js/blocks/HeapBlocks.js:49 +msgid "The Heap block returns the heap." msgstr "" -#: js/ProgramBlocks.js:390 -#: js/ProgramBlocks.js:658 -#: js/ToneBlocks.js:1025 -msgid "file" +#: js/blocks/HeapBlocks.js:133 +msgid "show heap" msgstr "" -#: js/ProgramBlocks.js:396 -#: js/ProgramBlocks.js:501 -#: js/ProgramBlocks.js:664 -#: js/DictBlocks.js:80 -#: js/DictBlocks.js:145 -#: js/DictBlocks.js:216 -#: js/DictBlocks.js:290 -msgid "My Dictionary" +#: js/blocks/HeapBlocks.js:181 +msgid "The Heap-length block returns the length of the heap." msgstr "" -#: js/ProgramBlocks.js:444 -msgid "The file you selected does not contain a valid dictionary." +#: js/blocks/HeapBlocks.js:195 +msgid "heap length" msgstr "" -#: js/ProgramBlocks.js:449 -msgid "The load dictionary block needs a load file block." +#: js/blocks/HeapBlocks.js:254 +msgid "The Heap-empty? block returns true if the heap is empty." msgstr "" -#: js/ProgramBlocks.js:466 -msgid "The Set-dictionary block loads a dictionary." +#: js/blocks/HeapBlocks.js:268 +#.TRANS: Is the heap empty? +msgid "heap empty?" msgstr "" -#: js/ProgramBlocks.js:477 -#.TRANS: load a dictionary from a JSON -msgid "set dictionary" +#: js/blocks/HeapBlocks.js:317 +msgid "The Empty-heap block empties the heap." msgstr "" -#: js/ProgramBlocks.js:546 -msgid "The block you selected does not contain a valid dictionary." +#: js/blocks/HeapBlocks.js:327 +#: js/blocks/HeapBlocks.js:647 +#.TRANS: empty the heap +msgid "empty heap" msgstr "" -#: js/ProgramBlocks.js:550 -msgid "The set dictionary block needs a dictionary." +#: js/blocks/HeapBlocks.js:371 +msgid "The Reverse-heap block reverses the order of the heap." msgstr "" -#: js/ProgramBlocks.js:567 -msgid "The Save-heap block saves the heap to a file." +#: js/blocks/HeapBlocks.js:384 +#.TRANS: reverse the order of the heap +msgid "reverse heap" msgstr "" -#: js/ProgramBlocks.js:578 -#.TRANS: save the heap to a file -msgid "save heap" +#: js/blocks/HeapBlocks.js:428 +msgid "The Index-heap block returns a value in the heap at a specified location." msgstr "" -#: js/ProgramBlocks.js:629 -msgid "The Save-dictionary block saves a dictionary to a file." +#: js/blocks/HeapBlocks.js:443 +#.TRANS: retrieve a value from the heap at index position in the heap +msgid "index heap" msgstr "" -#: js/ProgramBlocks.js:640 -#.TRANS: save a dictionary to a file -msgid "save dictionary" +#: js/blocks/HeapBlocks.js:523 +msgid "The Set-heap entry block sets a value in he heap at the specified location." msgstr "" -#: js/ProgramBlocks.js:720 -msgid "The Open palette block opens a palette." +#: js/blocks/HeapBlocks.js:539 +#: js/blocks/ProgramBlocks.js:299 +#.TRANS: load the heap from a JSON encoding +msgid "set heap" msgstr "" -#: js/ProgramBlocks.js:727 -msgid "open palette" +#: js/blocks/HeapBlocks.js:619 +msgid "The Pop block removes the value at the top of the heap." msgstr "" -#: js/ProgramBlocks.js:785 -msgid "The Delete block block removes a block." +#: js/blocks/HeapBlocks.js:633 +#.TRANS: pop a value off the top of the heap +msgid "pop" msgstr "" -#: js/ProgramBlocks.js:797 -#.TRANS: Move this block to the trash. -msgid "delete block" +#: js/blocks/HeapBlocks.js:680 +msgid "The Push block adds a value to the top of the heap." msgstr "" -#: js/ProgramBlocks.js:861 -msgid "The Move block block moves a block." +#: js/blocks/HeapBlocks.js:696 +#.TRANS: push a value onto the top of the heap +msgid "push" msgstr "" -#: js/ProgramBlocks.js:869 -#.TRANS: Move the position of a block on the screen. -msgid "move block" +#: js/blocks/IntervalsBlocks.js:45 +msgid "set temperament" msgstr "" -#: js/ProgramBlocks.js:881 -#: js/ProgramBlocks.js:1048 -msgid "block number" +#: js/blocks/IntervalsBlocks.js:63 +#: js/blocks/MediaBlocks.js:746 +#: js/blocks/PitchBlocks.js:657 +#: js/blocks/PitchBlocks.js:935 +#: js/blocks/PitchBlocks.js:974 +#: js/blocks/PitchBlocks.js:1007 +#: js/blocks/PitchBlocks.js:1194 +#: js/blocks/PitchBlocks.js:1717 +#: js/blocks/PitchBlocks.js:1758 +#: js/blocks/PitchBlocks.js:1866 +#: js/blocks/ToneBlocks.js:1025 +#: js/turtleactions/IntervalsActions.js:114 +#.TRANS: adjusts the shift up or down by one octave (twelve half-steps in the interval between two notes, one having twice or half the frequency in Hz of the other.) +msgid "octave" msgstr "" -#: js/ProgramBlocks.js:935 -#.TRANS: Run program beginning at this block. -msgid "run block" +#: js/blocks/IntervalsBlocks.js:99 +msgid "The Temperament name block is used to select a tuning method." msgstr "" -#: js/ProgramBlocks.js:1025 -msgid "The Dock block block connections two blocks." +#: js/blocks/IntervalsBlocks.js:161 +msgid "doubly" msgstr "" -#: js/ProgramBlocks.js:1036 -#.TRANS: We can connect a block to another block. -msgid "connect blocks" +#: js/blocks/IntervalsBlocks.js:166 +msgid "The Doubly block will double the size of an interval." msgstr "" -#: js/ProgramBlocks.js:1048 -msgid "target block" +#: js/blocks/IntervalsBlocks.js:262 +msgid "interval number" msgstr "" -#: js/ProgramBlocks.js:1048 -msgid "connection number" +#: js/blocks/IntervalsBlocks.js:317 +msgid "current interval" msgstr "" -#: js/ProgramBlocks.js:1140 -msgid "The Make block block creates a new block." +#: js/blocks/IntervalsBlocks.js:387 +#.TRANS: measure the distance between two pitches in semi-tones +msgid "semi-tone interval measure" msgstr "" -#: js/ProgramBlocks.js:1152 -#.TRANS: Create a new block -msgid "make block" +#: js/blocks/IntervalsBlocks.js:454 +#: js/blocks/IntervalsBlocks.js:570 +msgid "You must use two pitch blocks when measuring an interval." msgstr "" -#: js/ProgramBlocks.js:1186 -#: js/ProgramBlocks.js:1227 -#: js/RhythmBlocks.js:1128 -#: js/PitchBlocks.js:972 -#: js/PitchBlocks.js:1005 -#: js/temperament.js:340 -#: js/temperament.js:362 -#: js/temperament.js:372 -#: js/temperament.js:484 -#: js/status.js:190 -#: plugins/rodi.rtp:192 -#.TRANS: a musical note consisting of pitch and duration -msgid "note" +#: js/blocks/IntervalsBlocks.js:496 +msgid "The Scalar interval block measures the distance between two notes in the current key and mode." msgstr "" -#: js/ProgramBlocks.js:1285 -msgid "Cannot find block" +#: js/blocks/IntervalsBlocks.js:502 +#.TRANS: measure the distance between two pitches in steps of musical scale +msgid "scalar interval measure" msgstr "" -#: js/ProgramBlocks.js:1304 -#: js/ProgramBlocks.js:1313 -msgid "Warning: block argument type mismatch" +#: js/blocks/IntervalsBlocks.js:678 +msgid "In the figure, we add sol# to sol." msgstr "" -#: js/ProgramBlocks.js:1347 -msgid "The Open project block is used to open a project from a web page." +#: js/blocks/IntervalsBlocks.js:684 +#: js/blocks/OrnamentBlocks.js:220 +#.TRANS: calculate a relative step between notes based on semi-tones +msgid "semi-tone interval" msgstr "" -#: js/ProgramBlocks.js:1357 -msgid "open project" +#: js/blocks/IntervalsBlocks.js:733 +msgid "The output of the example is: do, mi, sol, sol, ti, mi" msgstr "" -#: js/ProgramBlocks.js:1410 -msgid "Please enter a valid URL." +#: js/blocks/IntervalsBlocks.js:740 +#: js/blocks/WidgetBlocks.js:768 +msgid "arpeggio" msgstr "" -#: js/DrumBlocks.js:59 -msgid "The Noise name block is used to select a noise synthesizer." +#: js/blocks/IntervalsBlocks.js:931 +msgid "The Chord block calculates common chords." msgstr "" -#: js/DrumBlocks.js:102 -msgid "The Drum name block is used to select a drum." +#: js/blocks/IntervalsBlocks.js:933 +msgid "In the figure, we generate a C-major chord." msgstr "" -#: js/DrumBlocks.js:146 -msgid "The Effects name block is used to select a sound effect." +#: js/blocks/IntervalsBlocks.js:938 +msgid "chord" msgstr "" -#: js/DrumBlocks.js:163 -msgid "noise" +#: js/blocks/IntervalsBlocks.js:990 +msgid "The Ratio Interval block calculates an interval based on a ratio." msgstr "" -#: js/DrumBlocks.js:177 -msgid "The Play noise block will generate white, pink, or brown noise." +#: js/blocks/IntervalsBlocks.js:995 +msgid "ratio interval" msgstr "" -#: js/DrumBlocks.js:191 -#: js/musicutils.js:752 -#: js/synthutils.js:47 -#.TRANS: white noise synthesizer -msgid "white noise" +#: js/blocks/IntervalsBlocks.js:1064 +msgid "In the figure, we add la to sol." msgstr "" -#: js/DrumBlocks.js:326 -msgid "Replace every instance of a pitch with a drum sound." +#: js/blocks/IntervalsBlocks.js:1120 +#.TRANS: define a custom mode +msgid "define mode" msgstr "" -#: js/DrumBlocks.js:337 -#.TRANS: map a pitch to a drum sound -msgid "map pitch to drum" +#: js/blocks/IntervalsBlocks.js:1173 +msgid "movable Do" msgstr "" -#: js/DrumBlocks.js:404 -msgid "In the example above, a kick drum sound will be played instead of sol." +#: js/blocks/IntervalsBlocks.js:1224 +#.TRANS: mode length is the number of notes in the mode, e.g., 7 for major and minor scales; 12 for chromatic scales +msgid "mode length" msgstr "" -#: js/DrumBlocks.js:416 -#.TRANS: set the current drum sound for playback -msgid "set drum" +#: js/blocks/IntervalsBlocks.js:1233 +msgid "The Mode length block is the number of notes in the current scale." msgstr "" -#: js/DrumBlocks.js:460 -msgid "sound effect" +#: js/blocks/IntervalsBlocks.js:1235 +msgid "Most Western scales have 7 notes." msgstr "" -#: js/DrumBlocks.js:498 -msgid "You can use multiple Drum blocks within a Note block." +#: js/blocks/IntervalsBlocks.js:1284 +#.TRANS: the mode in music is 'major', 'minor', etc. +msgid "current mode" msgstr "" -#: js/RhythmBlocks.js:182 -#: js/RhythmBlocks.js:1086 -#: js/RhythmBlocks.js:1162 -msgid "Note value must be greater than 0." +#: js/blocks/IntervalsBlocks.js:1337 +#.TRANS: the key is a group of pitches with which a music composition is created +msgid "current key" msgstr "" -#: js/RhythmBlocks.js:215 -#: js/RhythmBlocks.js:278 -#: js/RhythmBlocks.js:350 -#.TRANS: swing is a rhythmic variation that emphasises the offbeat -msgid "swing" +#: js/blocks/IntervalsBlocks.js:1389 +#: js/blocks/IntervalsBlocks.js:1434 +#.TRANS: set the key and mode, e.g. C Major +msgid "set key" msgstr "" -#: js/RhythmBlocks.js:355 -#.TRANS: the amount to shift to the offbeat note -msgid "swing value" +#: js/blocks/IntervalsBlocks.js:1443 +#: js/blocks/IntervalsBlocks.js:1449 +msgid "The Set key block is used to set the key and mode," msgstr "" -#: js/RhythmBlocks.js:419 -msgid "The Skip notes block will cause notes to be skipped." +#: js/blocks/IntervalsBlocks.js:1449 +msgid "eg C Major" msgstr "" -#: js/RhythmBlocks.js:427 -#.TRANS: substitute rests on notes being skipped -msgid "skip notes" +#: js/blocks/MediaBlocks.js:35 +#.TRANS: right side of the screen +msgid "right (screen)" msgstr "" -#: js/RhythmBlocks.js:489 -#.TRANS: speed up note duration by some factor, e.g. convert 1/4 to 1/8 notes by using a factor of 2 -msgid "multiply note value" +#: js/blocks/MediaBlocks.js:45 +#: js/blocks/MediaBlocks.js:56 +msgid "The Right block returns the position of the right of the canvas." msgstr "" -#: js/RhythmBlocks.js:542 -msgid "The Tie block works on pairs of notes, combining them into one note." +#: js/blocks/MediaBlocks.js:97 +#.TRANS: left side of the screen +msgid "left (screen)" msgstr "" -#: js/RhythmBlocks.js:550 -#.TRANS: tie notes together into one longer note -msgid "tie" +#: js/blocks/MediaBlocks.js:107 +#: js/blocks/MediaBlocks.js:118 +msgid "The Left block returns the position of the left of the canvas." msgstr "" -#: js/RhythmBlocks.js:591 -#: js/RhythmBlocks.js:671 -#.TRANS: a dotted note is played for 1.5x its value, e.g., 1/8. --> 3/16 -msgid "dot" +#: js/blocks/MediaBlocks.js:158 +msgid "top (screen)" msgstr "" -#: js/RhythmBlocks.js:619 -#: js/RhythmActions.js:221 -msgid "An argument of -1 results in a note value of 0." +#: js/blocks/MediaBlocks.js:168 +#: js/blocks/MediaBlocks.js:179 +msgid "The Top block returns the position of the top of the canvas." msgstr "" -#: js/RhythmBlocks.js:661 -msgid "The Dot block extends the duration of a note by 50%." +#: js/blocks/MediaBlocks.js:219 +msgid "bottom (screen)" msgstr "" -#: js/RhythmBlocks.js:663 -msgid "Eg a dotted quarter note will play for 3/8 (1/4 + 1/8) of a beat." +#: js/blocks/MediaBlocks.js:229 +#: js/blocks/MediaBlocks.js:240 +msgid "The Bottom block returns the position of the bottom of the canvas." msgstr "" -#: js/RhythmBlocks.js:765 -#.TRANS: Japanese only: note value block for drum -msgid "note value drum" +#: js/blocks/MediaBlocks.js:282 +msgid "width" msgstr "" -#: js/RhythmBlocks.js:829 -msgid "392 hertz" +#: js/blocks/MediaBlocks.js:291 +msgid "The Width block returns the width of the canvas." msgstr "" -#: js/RhythmBlocks.js:1119 -msgid "The Note block is a container for one or more Pitch blocks." +#: js/blocks/MediaBlocks.js:325 +msgid "height" msgstr "" -#: js/RhythmBlocks.js:1121 -msgid "The Note block specifies the duration (note value) of its contents." +#: js/blocks/MediaBlocks.js:334 +msgid "The Height block returns the height of the canvas." msgstr "" -#: js/RhythmBlocks.js:1130 -msgid "value2" +#: js/blocks/MediaBlocks.js:369 +#.TRANS: stops playback of an audio recording +msgid "stop play" msgstr "" -#: js/RhythmBlocks.js:1200 -msgid "define frequency" +#: js/blocks/MediaBlocks.js:404 +#.TRANS: Erases the images and text +msgid "erase media" msgstr "" -#: js/RhythmBlocks.js:1218 -#: js/temperament.js:650 -#: js/temperament.js:1421 -msgid "octave space" +#: js/blocks/MediaBlocks.js:409 +msgid "The Erase Media block erases text and images." msgstr "" -#: js/NumberBlocks.js:28 -msgid "The Int block returns an integer." +#: js/blocks/MediaBlocks.js:439 +#.TRANS: play an audio recording +msgid "play back" msgstr "" -#: js/NumberBlocks.js:34 -msgid "int" -msgstr "" +#: js/blocks/MediaBlocks.js:487 +msgid "speak" +msgstr "nia" -#: js/NumberBlocks.js:73 -msgid "The Mod block returns the remainder from a division." +#: js/blocks/MediaBlocks.js:495 +msgid "The Speak block outputs to the text-to-speech synthesizer" msgstr "" -#: js/NumberBlocks.js:79 -msgid "mod" -msgstr "mod" +#: js/blocks/MediaBlocks.js:546 +msgid "camera" +msgstr "" -#: js/NumberBlocks.js:123 -msgid "The Power block calculates a power function." +#: js/blocks/MediaBlocks.js:551 +msgid "The Camera block connects a webcam to the Show block." msgstr "" -#: js/NumberBlocks.js:178 -msgid "The Sqrt block returns the square root." +#: js/blocks/MediaBlocks.js:574 +msgid "video" msgstr "" -#: js/NumberBlocks.js:184 -msgid "sqrt" +#: js/blocks/MediaBlocks.js:579 +msgid "The Video block selects video for use with the Show block." msgstr "" -#: js/NumberBlocks.js:230 -msgid "The Abs block returns the absolute value." +#: js/blocks/MediaBlocks.js:607 +msgid "The Open file block opens a file for use with the Show block." msgstr "" -#: js/NumberBlocks.js:236 -msgid "abs" +#: js/blocks/MediaBlocks.js:645 +msgid "stop media" msgstr "" -#: js/NumberBlocks.js:277 -msgid "The Distance block returns the distance between two points. For example, between the mouse and the center of the screen." +#: js/blocks/MediaBlocks.js:650 +msgid "The Stop media block stops audio or video playback." msgstr "" -#: js/NumberBlocks.js:283 -#: plugins/rodi.rtp:310 -msgid "distance" +#: js/blocks/MediaBlocks.js:679 +#: js/blocks/PitchBlocks.js:1577 +#: js/widgets/musickeyboard.js:1936 +#: js/widgets/phrasemaker.js:1037 +#.TRANS: a measure of frequency: one cycle per second +msgid "hertz" msgstr "" -#: js/NumberBlocks.js:343 -msgid "The Divide block is used to divide." +#: js/blocks/MediaBlocks.js:692 +#: js/blocks/WidgetBlocks.js:182 +#: js/widgets/temperament.js:506 +#: js/widgets/temperament.js:546 +#: js/widgets/temperament.js:610 +#: js/widgets/temperament.js:618 +#: js/widgets/temperament.js:1505 +#: js/widgets/timbre.js:1842 +msgid "frequency" msgstr "" -#: js/NumberBlocks.js:411 -msgid "The Multiply block is used to multiply." +#: js/blocks/MediaBlocks.js:692 +msgid "duration (ms)" msgstr "" -#: js/NumberBlocks.js:554 -msgid "The Minus block is used to subtract." +#: js/blocks/MediaBlocks.js:728 +#.TRANS: translate a note into hertz, e.g., A4 -> 440HZ +msgid "note to frequency" msgstr "" -#: js/NumberBlocks.js:647 -msgid "The Plus block is used to add." +#: js/blocks/MediaBlocks.js:736 +msgid "The To frequency block converts a pitch name and octave to Hertz." msgstr "" -#: js/NumberBlocks.js:773 -msgid "The One-of block returns one of two choices." +#: js/blocks/MediaBlocks.js:746 +#: js/blocks/PitchBlocks.js:656 +#: js/blocks/PitchBlocks.js:934 +#: js/blocks/PitchBlocks.js:1866 +#.TRANS: name2 is name as in name of pitch (JAPANESE ONLY) +msgid "name2" msgstr "" -#: js/NumberBlocks.js:780 -#: js/PitchBlocks.js:616 -msgid "one of" +#: js/blocks/MediaBlocks.js:812 +msgid "The Avatar block is used to change the appearance of the mouse." msgstr "" -#: js/NumberBlocks.js:782 -msgid "this" +#: js/blocks/MediaBlocks.js:819 +msgid "The Avatar block is used to change the appearance of the turtle." msgstr "" -#: js/NumberBlocks.js:782 -msgid "that" +#: js/blocks/MediaBlocks.js:831 +#: js/blocks/MediaBlocks.js:891 +#.TRANS: a media object +msgid "size" msgstr "" -#: js/NumberBlocks.js:837 -msgid "The Random block returns a random number." +#: js/blocks/MediaBlocks.js:831 +msgid "image" +msgstr "xikji'ik" + +#: js/blocks/MediaBlocks.js:880 +msgid "The Show block is used to display text or images on the canvas." msgstr "" -#: js/NumberBlocks.js:844 -msgid "random" -msgstr "kensemakeje'" +#: js/blocks/MediaBlocks.js:888 +#.TRANS: show1 is show as in display an image or text on the screen. +msgid "show1" +msgstr "" -#: js/NumberBlocks.js:846 -msgid "min" -msgstr "sau' lakejé" +#: js/blocks/MediaBlocks.js:891 +msgid "obj" +msgstr "" -#: js/NumberBlocks.js:846 -msgid "max" -msgstr "kutue' le'ei lakejé" +#: js/blocks/MediaBlocks.js:938 +msgid "The Media block is used to import an image." +msgstr "" -#: js/NumberBlocks.js:910 -msgid "The Number block holds a number." +#: js/blocks/MediaBlocks.js:973 +msgid "The Text block holds a text string." msgstr "" -#: js/BoxesBlocks.js:53 -#: js/BoxesBlocks.js:59 -msgid "The Add-to block is used to add to the value stored in a box." +#: js/blocks/MeterBlocks.js:34 +#.TRANS: musical meter (time signature), e.g., 4:4 +msgid "current meter" msgstr "" -#: js/BoxesBlocks.js:61 -msgid "It can also be used with other blocks such as Color and Pen size." +#: js/blocks/MeterBlocks.js:85 +#.TRANS: number of beats per minute +msgid "beat factor" msgstr "" -#: js/BoxesBlocks.js:73 -msgid "add" +#: js/blocks/MeterBlocks.js:161 +msgid "The Beats per minute block returns the current beats per minute." msgstr "" -#: js/BoxesBlocks.js:75 -#: js/temperament.js:716 -msgid "to" +#: js/blocks/MeterBlocks.js:169 +#: js/widgets/status.js:152 +#.TRANS: number of beats played per minute +msgid "beats per minute2" msgstr "" -#: js/BoxesBlocks.js:75 -#: js/BoxesBlocks.js:595 -#: js/HeapBlocks.js:544 -msgid "value1" +#: js/blocks/MeterBlocks.js:169 +#: js/blocks/MeterBlocks.js:1056 +#: js/blocks/MeterBlocks.js:1133 +#: js/blocks/MeterBlocks.js:1211 +#.TRANS: sets tempo by defining a beat and beats per minute +msgid "beats per minute" msgstr "" -#: js/BoxesBlocks.js:118 -msgid "Block does not support incrementing." +#: js/blocks/MeterBlocks.js:233 +#.TRANS: count of current musical measure in meter +msgid "measure count" msgstr "" -#: js/BoxesBlocks.js:152 -msgid "The Add-1-to block adds one to the value stored in a box." +#: js/blocks/MeterBlocks.js:241 +msgid "The Measure count block returns the current measure." msgstr "" -#: js/BoxesBlocks.js:163 -msgid "add 1 to" +#: js/blocks/MeterBlocks.js:290 +#.TRANS: count of current beat in the meter +msgid "beat count" msgstr "" -#: js/BoxesBlocks.js:211 -msgid "The Subtract-1-from block subtracts one from the value stored in a box." +#: js/blocks/MeterBlocks.js:300 +#: js/blocks/MeterBlocks.js:311 +#: js/blocks/MeterBlocks.js:565 +#: js/blocks/MeterBlocks.js:576 +msgid "The Beat count block is the number of the current beat," msgstr "" -#: js/BoxesBlocks.js:222 -msgid "subtract 1 from" +#: js/blocks/MeterBlocks.js:313 +#: js/blocks/MeterBlocks.js:578 +msgid "eg 1, 2, 3, or 4." msgstr "" -#: js/BoxesBlocks.js:270 -#: js/BoxesBlocks.js:387 -msgid "The Box block returns the value stored in a box." +#: js/blocks/MeterBlocks.js:368 +#.TRANS: count the number of notes +msgid "sum note values" msgstr "" -#: js/BoxesBlocks.js:500 -#: js/BoxesBlocks.js:576 -msgid "The Store in block will store a value in a box." +#: js/blocks/MeterBlocks.js:376 +#: js/blocks/MeterBlocks.js:440 +msgid "The Note counter block can be used to count the number of contained notes." msgstr "" -#: js/BoxesBlocks.js:652 -msgid "The Box2 block returns the value stored in Box2." +#: js/blocks/MeterBlocks.js:432 +#.TRANS: count the number of notes +msgid "note counter" msgstr "" -#: js/BoxesBlocks.js:703 -msgid "The Store in Box2 block is used to store a value in Box2." +#: js/blocks/MeterBlocks.js:496 +#.TRANS: number of whole notes that have been played +msgid "whole notes played" msgstr "" -#: js/BoxesBlocks.js:715 -msgid "store in box2" +#: js/blocks/MeterBlocks.js:505 +msgid "The Whole notes played block returns the total number of whole notes played." msgstr "" -#: js/BoxesBlocks.js:761 -msgid "The Box1 block returns the value stored in Box1." +#: js/blocks/MeterBlocks.js:555 +#: js/turtleactions/DictActions.js:83 +#.TRANS: number of notes that have been played +msgid "notes played" msgstr "" -#: js/BoxesBlocks.js:812 -msgid "The Store in Box1 block is used to store a value in Box1." +#: js/blocks/MeterBlocks.js:653 +msgid "The No clock block decouples the notes from the master clock." msgstr "" -#: js/BoxesBlocks.js:826 -msgid "store in box1" +#: js/blocks/MeterBlocks.js:661 +#.TRANS: don't lock notes to master clock +msgid "no clock" msgstr "" -#: js/HeapBlocks.js:49 -msgid "The Heap block returns the heap." +#: js/blocks/MeterBlocks.js:700 +msgid "on weak beat do" msgstr "" -#: js/HeapBlocks.js:133 -msgid "show heap" +#: js/blocks/MeterBlocks.js:705 +msgid "The On-weak-beat block lets you specify actions to take on weak (off) beats." msgstr "" -#: js/HeapBlocks.js:181 -msgid "The Heap-length block returns the length of the heap." +#: js/blocks/MeterBlocks.js:750 +msgid "on strong beat" msgstr "" -#: js/HeapBlocks.js:195 -msgid "heap length" +#: js/blocks/MeterBlocks.js:758 +msgid "The On-strong-beat block lets you specify actions to take on specified beats." msgstr "" -#: js/HeapBlocks.js:254 -msgid "The Heap-empty? block returns true if the heap is empty." +#: js/blocks/MeterBlocks.js:769 +msgid "beat" msgstr "" -#: js/HeapBlocks.js:268 -#.TRANS: Is the heap empty? -msgid "heap empty?" +#: js/blocks/MeterBlocks.js:813 +msgid "on every beat do" msgstr "" -#: js/HeapBlocks.js:317 -msgid "The Empty-heap block empties the heap." +#: js/blocks/MeterBlocks.js:821 +msgid "The On-every-beat block lets you specify actions to take on every beat." msgstr "" -#: js/HeapBlocks.js:327 -#: js/HeapBlocks.js:647 -#.TRANS: empty the heap -msgid "empty heap" +#: js/blocks/MeterBlocks.js:874 +msgid "on every note do" msgstr "" -#: js/HeapBlocks.js:371 -msgid "The Reverse-heap block reverses the order of the heap." +#: js/blocks/MeterBlocks.js:882 +msgid "The On-every-note block lets you specify actions to take on every note." msgstr "" -#: js/HeapBlocks.js:384 -#.TRANS: reverse the order of the heap -msgid "reverse heap" +#: js/blocks/MeterBlocks.js:928 +#: js/blocks/MeterBlocks.js:999 +#.TRANS: sets tempo by defining a beat and beats per minute +msgid "master beats per minute" msgstr "" -#: js/HeapBlocks.js:428 -msgid "The Index-heap block returns a value in the heap at a specified location." +#: js/blocks/MeterBlocks.js:952 +#: js/blocks/MeterBlocks.js:1078 +#: js/blocks/MeterBlocks.js:1135 +msgid "bpm" msgstr "" -#: js/HeapBlocks.js:443 -#.TRANS: retrieve a value from the heap at index position in the heap -msgid "index heap" +#: js/blocks/MeterBlocks.js:952 +#: js/blocks/MeterBlocks.js:1078 +#: js/blocks/MeterBlocks.js:1135 +msgid "beat value" msgstr "" -#: js/HeapBlocks.js:523 -msgid "The Set-heap entry block sets a value in he heap at the specified location." +#: js/blocks/MeterBlocks.js:1024 +#: js/blocks/MeterBlocks.js:1167 +#: js/blocks/MeterBlocks.js:1241 +msgid "Beats per minute must be > 30." msgstr "" -#: js/HeapBlocks.js:619 -msgid "The Pop block removes the value at the top of the heap." +#: js/blocks/MeterBlocks.js:1027 +#: js/blocks/MeterBlocks.js:1170 +#: js/blocks/MeterBlocks.js:1244 +msgid "Maximum beats per minute is 1000." msgstr "" -#: js/HeapBlocks.js:633 -#.TRANS: pop a value off the top of the heap -msgid "pop" +#: js/blocks/MeterBlocks.js:1068 +msgid "The Beats per minute block sets the number of 1/4 notes per minute." msgstr "" -#: js/HeapBlocks.js:680 -msgid "The Push block adds a value to the top of the heap." +#: js/blocks/MeterBlocks.js:1279 +#.TRANS: anacrusis +msgid "pickup" msgstr "" -#: js/HeapBlocks.js:696 -#.TRANS: push a value onto the top of the heap -msgid "push" +#: js/blocks/MeterBlocks.js:1367 +msgid "number of beats" msgstr "" -#: js/FlowBlocks.js:41 -msgid "The Backward block runs code in reverse order (Musical retrograde)." +#: js/blocks/NumberBlocks.js:28 +msgid "The Int block returns an integer." msgstr "" -#: js/FlowBlocks.js:48 -msgid "backward" +#: js/blocks/NumberBlocks.js:34 +msgid "int" msgstr "" -#: js/FlowBlocks.js:124 -msgid "The Duplicate block will run each block multiple times." +#: js/blocks/NumberBlocks.js:73 +msgid "The Mod block returns the remainder from a division." msgstr "" -#: js/FlowBlocks.js:136 -msgid "duplicate" +#: js/blocks/NumberBlocks.js:79 +msgid "mod" +msgstr "mod" + +#: js/blocks/NumberBlocks.js:141 +msgid "The Power block calculates a power function." msgstr "" -#: js/FlowBlocks.js:334 -msgid "The Default block is used inside of a Switch to define the default action." +#: js/blocks/NumberBlocks.js:196 +msgid "The Sqrt block returns the square root." msgstr "" -#: js/FlowBlocks.js:342 -msgid "default" +#: js/blocks/NumberBlocks.js:202 +msgid "sqrt" msgstr "" -#: js/FlowBlocks.js:361 -#: js/FlowBlocks.js:418 -msgid "The Case Block must be used inside of a Switch Block." +#: js/blocks/NumberBlocks.js:248 +msgid "The Abs block returns the absolute value." msgstr "" -#: js/FlowBlocks.js:389 -msgid "The Case block is used inside of a Switch to define matches." +#: js/blocks/NumberBlocks.js:254 +msgid "abs" msgstr "" -#: js/FlowBlocks.js:397 -msgid "case" +#: js/blocks/NumberBlocks.js:295 +msgid "The Distance block returns the distance between two points. For example, between the mouse and the center of the screen." msgstr "" -#: js/FlowBlocks.js:446 -msgid "The Switch block will run the code in the matching Case." +#: js/blocks/NumberBlocks.js:301 +#: plugins/rodi.rtp:310 +msgid "distance" msgstr "" -#: js/FlowBlocks.js:454 -msgid "switch" +#: js/blocks/NumberBlocks.js:361 +msgid "The Divide block is used to divide." msgstr "" -#: js/FlowBlocks.js:595 -msgid "The Stop block will stop a loop" +#: js/blocks/NumberBlocks.js:441 +msgid "The Multiply block is used to multiply." msgstr "" -#: js/FlowBlocks.js:597 -msgid "Forever, Repeat, While, or Until." +#: js/blocks/NumberBlocks.js:612 +msgid "The Minus block is used to subtract." msgstr "" -#: js/FlowBlocks.js:604 -#: js/phrasemaker.js:3799 -#: js/musickeyboard.js:629 -#: js/musickeyboard.js:631 -#: js/timbre.js:417 -#: js/timbre.js:419 -#: plugins/rodi.rtp:29 -#: plugins/rodi.rtp:73 -#: plugins/rodi.rtp:413 -msgid "stop" -msgstr "ndama'ai" - -#: js/FlowBlocks.js:653 -msgid "The Waitfor block will wait until the condition is true." +#: js/blocks/NumberBlocks.js:723 +msgid "The Plus block is used to add." msgstr "" -#: js/FlowBlocks.js:661 -msgid "wait for" +#: js/blocks/NumberBlocks.js:849 +msgid "The One-of block returns one of two choices." msgstr "" -#: js/FlowBlocks.js:732 -msgid "The Until block will repeat until the condition is true." +#: js/blocks/NumberBlocks.js:856 +#: js/blocks/PitchBlocks.js:616 +msgid "one of" msgstr "" -#: js/FlowBlocks.js:740 -msgid "until" -msgstr "lamee" - -#: js/FlowBlocks.js:742 -#: js/FlowBlocks.js:822 -msgid "do2" +#: js/blocks/NumberBlocks.js:858 +msgid "this" msgstr "" -#: js/FlowBlocks.js:812 -msgid "The While block will repeat while the condition is true." +#: js/blocks/NumberBlocks.js:858 +msgid "that" msgstr "" -#: js/FlowBlocks.js:820 -msgid "while" -msgstr "vupee sad-ia'" - -#: js/FlowBlocks.js:903 -#: js/FlowBlocks.js:968 -#: js/FlowBlocks.js:979 -msgid "In this example if the mouse button is pressed a snare drum will play." +#: js/blocks/NumberBlocks.js:913 +msgid "The Random block returns a random number." msgstr "" -#: js/FlowBlocks.js:925 -#: js/FlowBlocks.js:988 -msgid "if" -msgstr "lik'iajam" +#: js/blocks/NumberBlocks.js:920 +msgid "random" +msgstr "kensemakeje'" -#: js/FlowBlocks.js:927 -#: js/FlowBlocks.js:990 -msgid "then" -msgstr "xi'iap" +#: js/blocks/NumberBlocks.js:922 +msgid "min" +msgstr "sau' lakejé" -#: js/FlowBlocks.js:927 -msgid "else" -msgstr "kad-ep" +#: js/blocks/NumberBlocks.js:922 +msgid "max" +msgstr "kutue' le'ei lakejé" -#: js/FlowBlocks.js:1025 -msgid "The Forever block will repeat the contained blocks forever." +#: js/blocks/NumberBlocks.js:986 +msgid "The Number block holds a number." msgstr "" -#: js/FlowBlocks.js:1037 -msgid "forever" -msgstr "Leem" - -#: js/FlowBlocks.js:1073 -msgid "The Repeat block will repeat the contained blocks." +#: js/blocks/OrnamentBlocks.js:32 +msgid "staccato factor" msgstr "" -#: js/FlowBlocks.js:1075 -msgid "In this example the note will be played 4 times." +#: js/blocks/OrnamentBlocks.js:108 +msgid "slur factor" msgstr "" -#: js/FlowBlocks.js:1083 -msgid "repeat" -msgstr "Maleix" - -#: js/FlowBlocks.js:1123 -msgid "duplicate factor" +#: js/blocks/OrnamentBlocks.js:217 +#: js/blocks/OrnamentBlocks.js:309 +#.TRANS: the neighbor refers to a neighboring note, e.g., D is a neighbor of C +msgid "neighbor" msgstr "" -#: js/PitchBlocks.js:39 -#: js/musicutils.js:722 -#: js/musicutils.js:1117 -#: js/synthutils.js:112 -#.TRANS: square wave -msgid "square" +#: js/blocks/OrnamentBlocks.js:293 +msgid "The Neighbor block rapidly switches between neighboring pitches." msgstr "" -#: js/PitchBlocks.js:62 -#: js/ToneBlocks.js:39 -#: js/musicutils.js:723 -#: js/musicutils.js:1118 -#: js/synthutils.js:116 -#.TRANS: triangle wave -msgid "triangle" +#: js/blocks/OrnamentBlocks.js:364 +msgid "glide" msgstr "" -#: js/PitchBlocks.js:85 -#: js/musicutils.js:721 -#: js/musicutils.js:1116 -#: js/synthutils.js:110 -#.TRANS: sine wave -msgid "sine" +#: js/blocks/OrnamentBlocks.js:479 +#: js/blocks/OrnamentBlocks.js:643 +msgid "slur" msgstr "" -#: js/PitchBlocks.js:108 -#: js/musicutils.js:724 -#: js/musicutils.js:1119 -#: js/synthutils.js:114 -#.TRANS: sawtooth wave -msgid "sawtooth" +#: js/blocks/OrnamentBlocks.js:558 +#: js/blocks/OrnamentBlocks.js:710 +#.TRANS: play each note sharply detached from the others +msgid "staccato" msgstr "" -#: js/PitchBlocks.js:141 -#.TRANS: musical transposition (adjustment of pitch up or down) -msgid "transposition" +#: js/blocks/RhythmBlocks.js:182 +#: js/blocks/RhythmBlocks.js:1086 +#: js/blocks/RhythmBlocks.js:1162 +msgid "Note value must be greater than 0." msgstr "" -#: js/PitchBlocks.js:168 -#.TRANS: step down one note in current musical scale -msgid "scalar step down" +#: js/blocks/RhythmBlocks.js:215 +#: js/blocks/RhythmBlocks.js:278 +#: js/blocks/RhythmBlocks.js:350 +#.TRANS: swing is a rhythmic variation that emphasises the offbeat +msgid "swing" msgstr "" -#: js/PitchBlocks.js:172 -msgid "The Scalar step down block returns the number of semi-tones down to the previous note in the current key and mode." +#: js/blocks/RhythmBlocks.js:355 +#.TRANS: the amount to shift to the offbeat note +msgid "swing value" msgstr "" -#: js/PitchBlocks.js:190 -#.TRANS: step up one note in current musical scale -msgid "scalar step up" +#: js/blocks/RhythmBlocks.js:419 +msgid "The Skip notes block will cause notes to be skipped." msgstr "" -#: js/PitchBlocks.js:194 -msgid "The Scalar step up block returns the number of semi-tones up to the next note in the current key and mode." +#: js/blocks/RhythmBlocks.js:427 +#.TRANS: substitute rests on notes being skipped +msgid "skip notes" msgstr "" -#: js/PitchBlocks.js:212 -#.TRANS: the change measured in half-steps between the current pitch and the previous pitch -msgid "change in pitch" +#: js/blocks/RhythmBlocks.js:489 +#.TRANS: speed up note duration by some factor, e.g. convert 1/4 to 1/8 notes by using a factor of 2 +msgid "multiply note value" msgstr "" -#: js/PitchBlocks.js:216 -msgid "The Change in pitch block is the difference (in half steps) between the current pitch being played and the previous pitch played." +#: js/blocks/RhythmBlocks.js:542 +msgid "The Tie block works on pairs of notes, combining them into one note." msgstr "" -#: js/PitchBlocks.js:243 -#.TRANS: the change measured in scale-steps between the current pitch and the previous pitch -msgid "scalar change in pitch" +#: js/blocks/RhythmBlocks.js:550 +#.TRANS: tie notes together into one longer note +msgid "tie" msgstr "" -#: js/PitchBlocks.js:250 -#: js/PitchBlocks.js:432 -#: js/PitchBlocks.js:1629 -#: js/DictActions.js:89 -#: js/temperament.js:477 -#: js/temperament.js:481 -#: js/temperament.js:714 -#.TRANS: convert current note to piano key (1-88) -#.TRANS: a mapping of pitch to the 88 piano keys -msgid "pitch number" +#: js/blocks/RhythmBlocks.js:591 +#: js/blocks/RhythmBlocks.js:671 +#.TRANS: a dotted note is played for 1.5x its value, e.g., 1/8. --> 3/16 +msgid "dot" msgstr "" -#: js/PitchBlocks.js:256 -msgid "The Pitch number block is the value of the pitch of the note currently being played." +#: js/blocks/RhythmBlocks.js:619 +#: js/turtleactions/RhythmActions.js:221 +msgid "An argument of -1 results in a note value of 0." msgstr "" -#: js/PitchBlocks.js:329 -#: js/PitchBlocks.js:433 -#.TRANS: the current pitch expressed in Hertz -msgid "pitch in hertz" +#: js/blocks/RhythmBlocks.js:661 +msgid "The Dot block extends the duration of a note by 50%." msgstr "" -#: js/PitchBlocks.js:334 -msgid "The Pitch in Hertz block is the value in Hertz of the pitch of the note currently being played." +#: js/blocks/RhythmBlocks.js:663 +msgid "Eg a dotted quarter note will play for 3/8 (1/4 + 1/8) of a beat." msgstr "" -#: js/PitchBlocks.js:367 -#: js/DictActions.js:87 -msgid "current pitch" +#: js/blocks/RhythmBlocks.js:765 +#.TRANS: Japanese only: note value block for drum +msgid "note value drum" msgstr "" -#: js/PitchBlocks.js:373 -msgid "The Current Pitch block is used with the Pitch Converter block. In the example above, current pitch, sol 4, is displayed as 392 hertz." +#: js/blocks/RhythmBlocks.js:829 +msgid "392 hertz" msgstr "" -#: js/PitchBlocks.js:410 -msgid "This block converts the pitch value of the last note played into different formats such as hertz, letter name, pitch number, et al." +#: js/blocks/RhythmBlocks.js:1119 +msgid "The Note block is a container for one or more Pitch blocks." msgstr "" -#: js/PitchBlocks.js:434 -msgid "alphabet" +#: js/blocks/RhythmBlocks.js:1121 +msgid "The Note block specifies the duration (note value) of its contents." msgstr "" -#: js/PitchBlocks.js:436 -#.TRANS: Translate as "alphabet class" -msgid "letter class" +#: js/blocks/RhythmBlocks.js:1128 +#: js/blocks/PitchBlocks.js:974 +#: js/blocks/PitchBlocks.js:1007 +#: js/blocks/ProgramBlocks.js:1186 +#: js/blocks/ProgramBlocks.js:1227 +#: js/widgets/status.js:190 +#: js/widgets/temperament.js:464 +#: js/widgets/temperament.js:486 +#: js/widgets/temperament.js:496 +#: js/widgets/temperament.js:617 +#: plugins/rodi.rtp:192 +#.TRANS: a musical note consisting of pitch and duration +msgid "note" msgstr "" -#: js/PitchBlocks.js:437 -msgid "solfege class" +#: js/blocks/RhythmBlocks.js:1130 +msgid "value2" msgstr "" -#: js/PitchBlocks.js:438 -msgid "staff y" +#: js/blocks/RhythmBlocks.js:1200 +msgid "define frequency" msgstr "" -#: js/PitchBlocks.js:439 -msgid "solfege syllable" +#: js/blocks/RhythmBlocks.js:1218 +#: js/widgets/temperament.js:787 +#: js/widgets/temperament.js:1587 +msgid "octave space" msgstr "" -#: js/PitchBlocks.js:440 -msgid "pitch class" +#: js/blocks/SensorsBlocks.js:36 +msgid "The Input block prompts for keyboard input." msgstr "" -#: js/PitchBlocks.js:441 -msgid "scalar class" +#: js/blocks/SensorsBlocks.js:46 +msgid "input" msgstr "" -#: js/PitchBlocks.js:443 -msgid "nth degree" +#: js/blocks/SensorsBlocks.js:64 +msgid "Input a value" msgstr "" -#: js/PitchBlocks.js:444 -msgid "pitch to shade" +#: js/blocks/SensorsBlocks.js:126 +msgid "input value" msgstr "" -#: js/PitchBlocks.js:445 -msgid "pitch to color" +#: js/blocks/SensorsBlocks.js:131 +msgid "The Input-value block stores the input." msgstr "" -#: js/PitchBlocks.js:629 -#: js/musickeyboard.js:565 -#.TRANS: MIDI is a technical standard for electronic music -msgid "MIDI" -msgstr "" +#: js/blocks/SensorsBlocks.js:238 +msgid "loudness" +msgstr "manaja" -#: js/PitchBlocks.js:642 -#.TRANS: set an offset associated with the numeric piano keyboard mapping -msgid "set pitch number offset" +#: js/blocks/SensorsBlocks.js:245 +msgid "The Loudness block returns the volume detected by the microphone." msgstr "" -#: js/PitchBlocks.js:645 -msgid "The Set pitch number offset block is used to set the offset for mapping pitch numbers to pitch and octave." +#: js/blocks/SensorsBlocks.js:300 +msgid "click" msgstr "" -#: js/PitchBlocks.js:679 -#.TRANS: convert piano key number (1-88) to pitch -msgid "number to pitch" +#: js/blocks/SensorsBlocks.js:306 +msgid "The Click block triggers an event if a mouse has been clicked." msgstr "" -#: js/PitchBlocks.js:682 -msgid "The Number to pitch block will convert a pitch number to a pich name." +#: js/blocks/SensorsBlocks.js:313 +msgid "The Click block triggers an event if a turtle has been clicked." msgstr "" -#: js/PitchBlocks.js:715 -#.TRANS: convert piano key number (1-88) to octave -msgid "number to octave" +#: js/blocks/SensorsBlocks.js:342 +msgid "cursor over" msgstr "" -#: js/PitchBlocks.js:717 -msgid "The Number to octave block will convert a pitch number to an octave." +#: js/blocks/SensorsBlocks.js:387 +msgid "cursor out" msgstr "" -#: js/PitchBlocks.js:726 -msgid "y to pitch" +#: js/blocks/SensorsBlocks.js:433 +msgid "cursor button down" msgstr "" -#: js/PitchBlocks.js:729 -msgid "Y to pitch block will convert a staff y position to corresponding pitch notation." +#: js/blocks/SensorsBlocks.js:477 +msgid "cursor button up" msgstr "" -#: js/PitchBlocks.js:841 -msgid "accidental selector" +#: js/blocks/SensorsBlocks.js:521 +#: js/blocks/PenBlocks.js:48 +#: plugins/rodi.rtp:219 +msgid "blue" msgstr "" -#: js/PitchBlocks.js:844 -msgid "The Accidental selector block is used to choose between double-sharp, sharp, natural, flat, and double-flat." +#: js/blocks/SensorsBlocks.js:577 +#: js/blocks/PenBlocks.js:64 +#: plugins/rodi.rtp:218 +msgid "green" msgstr "" -#: js/PitchBlocks.js:858 -msgid "Pitch can be specified in terms of ni dha pa ma ga re sa." +#: js/blocks/SensorsBlocks.js:633 +#: js/blocks/PenBlocks.js:112 +#: plugins/rodi.rtp:217 +msgid "red" msgstr "" -#: js/PitchBlocks.js:872 -msgid "Pitch can be specified in terms of C D E F G A B." +#: js/blocks/SensorsBlocks.js:638 +msgid "The Get red block returns the red component of the pixel under the mouse." msgstr "" -#: js/PitchBlocks.js:883 -msgid "solfege" +#: js/blocks/SensorsBlocks.js:644 +msgid "The Get red block returns the red component of the pixel under the turtle." msgstr "" -#: js/PitchBlocks.js:886 -msgid "Pitch can be specified in terms of do re mi fa sol la ti." +#: js/blocks/SensorsBlocks.js:685 +#: plugins/rodi.rtp:216 +msgid "pixel color" msgstr "" -#: js/PitchBlocks.js:920 -msgid "The Invert block rotates any contained notes around a target note." +#: js/blocks/SensorsBlocks.js:690 +msgid "The Get pixel block returns the color of the pixel under the mouse." msgstr "" -#: js/PitchBlocks.js:927 -#.TRANS: pitch inversion rotates a pitch around another pitch -msgid "invert" +#: js/blocks/SensorsBlocks.js:696 +msgid "The Get pixel block returns the color of the pixel under the turtle." msgstr "" -#: js/PitchBlocks.js:929 -#: js/PitchBlocks.js:935 -#: js/PitchActions.js:727 -#: js/musicutils.js:726 -#: js/musicutils.js:902 -#.TRANS: invert based on even or odd number or musical scale -#.TRANS: even numbers -msgid "even" +#: js/blocks/SensorsBlocks.js:758 +msgid "time" msgstr "" -#: js/PitchBlocks.js:935 -#: js/PitchActions.js:729 -#: js/musicutils.js:728 -#: js/musicutils.js:903 -#.TRANS: odd numbers -msgid "odd" +#: js/blocks/SensorsBlocks.js:804 +msgid "cursor y" msgstr "" -#: js/PitchBlocks.js:935 -#: js/PitchActions.js:731 -#: js/musicutils.js:729 -#: js/musicutils.js:904 -msgid "scalar" +#: js/blocks/SensorsBlocks.js:809 +msgid "The Cursor Y block returns the vertical position of the mouse." msgstr "" -#: js/PitchBlocks.js:966 -#.TRANS: pitch inversion rotates a pitch around another pitch (odd number) -msgid "invert (odd)" +#: js/blocks/SensorsBlocks.js:845 +msgid "cursor x" msgstr "" -#: js/PitchBlocks.js:999 -#.TRANS: pitch inversion rotates a pitch around another pitch (even number) -msgid "invert (even)" +#: js/blocks/SensorsBlocks.js:850 +msgid "The Cursor X block returns the horizontal position of the mouse." msgstr "" -#: js/PitchBlocks.js:1020 -#.TRANS: register is the octave of the current pitch -msgid "register" +#: js/blocks/SensorsBlocks.js:886 +msgid "mouse button" msgstr "" -#: js/PitchBlocks.js:1024 -msgid "The Register block provides an easy way to modify the register (octave) of the notes that follow it." +#: js/blocks/SensorsBlocks.js:888 +msgid "The Mouse-button block returns True if the mouse button is pressed." msgstr "" -#: js/PitchBlocks.js:1074 -msgid "The Semi-tone transposition block will shift the pitches contained inside Note blocks up (or down) by half steps." +#: js/blocks/SensorsBlocks.js:934 +msgid "to ASCII" msgstr "" -#: js/PitchBlocks.js:1076 -msgid "In the example shown above, sol is shifted up to sol#." +#: js/blocks/SensorsBlocks.js:938 +msgid "The To ASCII block converts numbers to letters." msgstr "" -#: js/PitchBlocks.js:1082 -#.TRANS: adjust the amount of shift (up or down) of a pitch -msgid "semi-tone transpose" +#: js/blocks/SensorsBlocks.js:1005 +msgid "The Keyboard block returns computer keyboard input." msgstr "" -#: js/PitchBlocks.js:1115 -msgid "The Transpose by Ratio block will shift the pitches contained inside Note blocks up (or down) by a ratio" +#: js/blocks/RhythmBlockPaletteBlocks.js:50 +#: js/blocks/RhythmBlockPaletteBlocks.js:233 +#.TRANS: rhythm block +#.TRANS: translate "rhythm1" as rhythm +msgid "rhythm1" msgstr "" -#: js/PitchBlocks.js:1121 -#.TRANS: adjust the amount of shift (up or down) of a pitch -msgid "transpose by ratio" +#: js/blocks/RhythmBlockPaletteBlocks.js:70 +#: js/blocks/RhythmBlockPaletteBlocks.js:252 +#: js/blocks/RhythmBlockPaletteBlocks.js:485 +#: js/blocks/RhythmBlockPaletteBlocks.js:554 +#: js/blocks/RhythmBlockPaletteBlocks.js:875 +msgid "number of notes" msgstr "" -#: js/PitchBlocks.js:1204 -#.TRANS: down sixth means the note is five scale degrees below current note -msgid "down sixth" +#: js/blocks/RhythmBlockPaletteBlocks.js:126 +msgid "polyphonic rhythm" msgstr "" -#: js/PitchBlocks.js:1223 -#.TRANS: down third means the note is two scale degrees below current note -msgid "down third" +#: js/blocks/RhythmBlockPaletteBlocks.js:219 +msgid "The Rhythm block is used to generate rhythm patterns." msgstr "" -#: js/PitchBlocks.js:1242 -#.TRANS: seventh means the note is the six scale degrees above current note -msgid "seventh" +#: js/blocks/RhythmBlockPaletteBlocks.js:280 +msgid "1/64 note" msgstr "" -#: js/PitchBlocks.js:1261 -#.TRANS: sixth means the note is the five scale degrees above current note -msgid "sixth" +#: js/blocks/RhythmBlockPaletteBlocks.js:304 +msgid "1/32 note" msgstr "" -#: js/PitchBlocks.js:1280 -#.TRANS: fifth means the note is the four scale degrees above current note -msgid "fifth" +#: js/blocks/RhythmBlockPaletteBlocks.js:332 +msgid "1/16 note" msgstr "" -#: js/PitchBlocks.js:1300 -#.TRANS: fourth means the note is three scale degrees above current note -msgid "fourth" +#: js/blocks/RhythmBlockPaletteBlocks.js:360 +msgid "eighth note" msgstr "" -#: js/PitchBlocks.js:1319 -#.TRANS: third means the note is two scale degrees above current note -msgid "third" +#: js/blocks/RhythmBlockPaletteBlocks.js:388 +msgid "quarter note" msgstr "" -#: js/PitchBlocks.js:1338 -#.TRANS: second means the note is one scale degree above current note -msgid "second" +#: js/blocks/RhythmBlockPaletteBlocks.js:416 +msgid "half note" msgstr "" -#: js/PitchBlocks.js:1379 -msgid "The Scalar transposition block will shift the pitches contained inside Note blocks up (or down) the scale." +#: js/blocks/RhythmBlockPaletteBlocks.js:444 +msgid "whole note" msgstr "" -#: js/PitchBlocks.js:1381 -msgid "In the example shown above, sol is shifted up to la." +#: js/blocks/RhythmBlockPaletteBlocks.js:482 +#: js/blocks/RhythmBlockPaletteBlocks.js:551 +#: js/blocks/RhythmBlockPaletteBlocks.js:602 +#.TRANS: A tuplet is a note value divided into irregular time values. +msgid "tuplet" msgstr "" -#: js/PitchBlocks.js:1388 -#.TRANS: adjust the amount of shift (up or down) of a pitch by musical scale (scalar) steps -msgid "scalar transpose" +#: js/blocks/RhythmBlockPaletteBlocks.js:768 +msgid "septuplet" msgstr "" -#: js/PitchBlocks.js:1423 -msgid "The Accidental block is used to create sharps and flats" +#: js/blocks/RhythmBlockPaletteBlocks.js:796 +msgid "quintuplet" msgstr "" -#: js/PitchBlocks.js:1430 -#.TRANS: An accidental is a modification to a pitch, e.g., sharp or flat. -msgid "accidental override" +#: js/blocks/RhythmBlockPaletteBlocks.js:824 +msgid "triplet" msgstr "" -#: js/PitchBlocks.js:1543 -msgid "The Hertz block (in combination with a Number block) will play a sound at the specified frequency." +#: js/blocks/RhythmBlockPaletteBlocks.js:851 +msgid "simple tuplet" msgstr "" -#: js/PitchBlocks.js:1633 -msgid "The Pitch Number block will play a pitch associated by its number, e.g. 0 for C and 7 for G." +#: js/blocks/RhythmBlockPaletteBlocks.js:861 +msgid "Tuplets are a collection of notes that get scaled to a specific duration." msgstr "" -#: js/PitchBlocks.js:1665 -#: js/PitchBlocks.js:1707 -#.TRANS: a numeric mapping of the notes in an octave based on the musical mode -#.TRANS: a numeric mapping of the notes in an octave based on the musical mode -msgid "nth modal pitch" +#: js/blocks/DrumBlocks.js:59 +msgid "The Noise name block is used to select a noise synthesizer." msgstr "" -#: js/PitchBlocks.js:1668 -msgid "n^th Modal Pitch takes the pattern of pitches in semitones for a mode and makes each point a degree of the mode," +#: js/blocks/DrumBlocks.js:102 +msgid "The Drum name block is used to select a drum." msgstr "" -#: js/PitchBlocks.js:1670 -msgid "starting from 1 and regardless of tonal framework (i.e. not always 8 notes in the octave)" +#: js/blocks/DrumBlocks.js:146 +msgid "The Effects name block is used to select a sound effect." msgstr "" -#: js/PitchBlocks.js:1711 -msgid "N^th Modal Pitch takes a number as an input as the n^th degree for the given mode. 0 is the first position, 1 is the second, -1 is the note before the first etc." +#: js/blocks/DrumBlocks.js:163 +msgid "noise" msgstr "" -#: js/PitchBlocks.js:1713 -msgid "The pitches change according to the mode specified without any need for respellings." +#: js/blocks/DrumBlocks.js:177 +msgid "The Play noise block will generate white, pink, or brown noise." msgstr "" -#: js/PitchBlocks.js:1752 -msgid "Scale Degree is a common convention in music. Scale Degree offers seven possible positions in the scale (1-7) and can be modified via accidentals." +#: js/blocks/DrumBlocks.js:317 +msgid "Replace every instance of a pitch with a drum sound." msgstr "" -#: js/PitchBlocks.js:1754 -msgid "Scale Degree 1 is always the first pitch in a given scale, regardless of octave." +#: js/blocks/DrumBlocks.js:328 +#.TRANS: map a pitch to a drum sound +msgid "map pitch to drum" msgstr "" -#: js/PitchBlocks.js:1776 -#.TRANS: step some number of notes in current musical scale -msgid "scalar step" +#: js/blocks/DrumBlocks.js:395 +msgid "In the example above, a kick drum sound will be played instead of sol." msgstr "" -#: js/PitchBlocks.js:1781 -msgid "The Scalar Step block (in combination with a Number block) will play the next pitch in a scale," +#: js/blocks/DrumBlocks.js:407 +#.TRANS: set the current drum sound for playback +msgid "set drum" msgstr "" -#: js/PitchBlocks.js:1783 -msgid "eg if the last note played was sol, Scalar Step 1 will play la." +#: js/blocks/DrumBlocks.js:451 +msgid "sound effect" msgstr "" -#: js/PitchBlocks.js:1818 -msgid "The Pitch block specifies the pitch name and octave of a note that together determine the frequency of the note." +#: js/blocks/DrumBlocks.js:489 +msgid "You can use multiple Drum blocks within a Note block." msgstr "" -#: js/GraphicsBlocks.js:46 -#: js/DictActions.js:77 -#: js/DictActions.js:155 -#: js/DictActions.js:189 +#: js/blocks/GraphicsBlocks.js:46 +#: js/turtleactions/DictActions.js:77 +#: js/turtleactions/DictActions.js:144 +#: js/turtleactions/DictActions.js:173 msgid "heading" msgstr "peuk manamaa" -#: js/GraphicsBlocks.js:56 +#: js/blocks/GraphicsBlocks.js:56 msgid "The Heading block returns the orientation of the mouse." msgstr "" -#: js/GraphicsBlocks.js:62 +#: js/blocks/GraphicsBlocks.js:62 msgid "The Heading block returns the orientation of the turtle." msgstr "" -#: js/GraphicsBlocks.js:133 +#: js/blocks/GraphicsBlocks.js:133 msgid "The Y block returns the vertical position of the mouse." msgstr "" -#: js/GraphicsBlocks.js:140 +#: js/blocks/GraphicsBlocks.js:140 msgid "The Y block returns the vertical position of the turtle." msgstr "" -#: js/GraphicsBlocks.js:149 +#: js/blocks/GraphicsBlocks.js:149 msgid "y3" msgstr "" -#: js/GraphicsBlocks.js:219 +#: js/blocks/GraphicsBlocks.js:219 msgid "The X block returns the horizontal position of the mouse." msgstr "" -#: js/GraphicsBlocks.js:226 +#: js/blocks/GraphicsBlocks.js:226 msgid "The X block returns the horizontal position of the turtle." msgstr "" -#: js/GraphicsBlocks.js:235 +#: js/blocks/GraphicsBlocks.js:235 msgid "x3" msgstr "" -#: js/GraphicsBlocks.js:295 +#: js/blocks/GraphicsBlocks.js:295 msgid "scroll xy" msgstr "" -#: js/GraphicsBlocks.js:303 +#: js/blocks/GraphicsBlocks.js:303 msgid "The Scroll XY block moves the canvas." msgstr "" -#: js/GraphicsBlocks.js:313 +#: js/blocks/GraphicsBlocks.js:313 msgid "x2" msgstr "" -#: js/GraphicsBlocks.js:313 +#: js/blocks/GraphicsBlocks.js:313 msgid "y2" msgstr "" -#: js/GraphicsBlocks.js:373 -#: js/temperament.js:213 -#: js/temperament.js:241 +#: js/blocks/GraphicsBlocks.js:373 +#: js/widgets/temperament.js:319 +#: js/widgets/temperament.js:347 msgid "clear" msgstr "" -#: js/GraphicsBlocks.js:426 +#: js/blocks/GraphicsBlocks.js:426 msgid "The Control-point 2 block sets the second control point for the Bezier curve." msgstr "" -#: js/GraphicsBlocks.js:433 +#: js/blocks/GraphicsBlocks.js:433 msgid "control point 2" msgstr "" -#: js/GraphicsBlocks.js:436 -#: js/GraphicsBlocks.js:487 -#: js/GraphicsBlocks.js:534 -#: js/GraphicsBlocks.js:750 +#: js/blocks/GraphicsBlocks.js:436 +#: js/blocks/GraphicsBlocks.js:487 +#: js/blocks/GraphicsBlocks.js:534 +#: js/blocks/GraphicsBlocks.js:750 msgid "x1" msgstr "" -#: js/GraphicsBlocks.js:436 -#: js/GraphicsBlocks.js:487 -#: js/GraphicsBlocks.js:534 -#: js/GraphicsBlocks.js:750 +#: js/blocks/GraphicsBlocks.js:436 +#: js/blocks/GraphicsBlocks.js:487 +#: js/blocks/GraphicsBlocks.js:534 +#: js/blocks/GraphicsBlocks.js:750 msgid "y1" msgstr "" -#: js/GraphicsBlocks.js:477 +#: js/blocks/GraphicsBlocks.js:477 msgid "The Control-point 1 block sets the first control point for the Bezier curve." msgstr "" -#: js/GraphicsBlocks.js:484 +#: js/blocks/GraphicsBlocks.js:484 msgid "control point 1" msgstr "" -#: js/GraphicsBlocks.js:527 +#: js/blocks/GraphicsBlocks.js:527 msgid "The Bezier block draws a Bezier curve." msgstr "" -#: js/GraphicsBlocks.js:531 +#: js/blocks/GraphicsBlocks.js:531 msgid "bezier" msgstr "" -#: js/GraphicsBlocks.js:592 +#: js/blocks/GraphicsBlocks.js:592 msgid "The Arc block moves the turtle in an arc." msgstr "" -#: js/GraphicsBlocks.js:600 +#: js/blocks/GraphicsBlocks.js:600 msgid "arc" msgstr "ngulja'" -#: js/GraphicsBlocks.js:603 +#: js/blocks/GraphicsBlocks.js:603 msgid "angle" msgstr "ngumúu se liviuch' nui niñ'eje'" -#: js/GraphicsBlocks.js:603 +#: js/blocks/GraphicsBlocks.js:603 msgid "radius" msgstr "ngube'ei" -#: js/GraphicsBlocks.js:620 -#: js/GraphicsBlocks.js:767 -#: js/GraphicsBlocks.js:1010 -#: js/GraphicsBlocks.js:1093 +#: js/blocks/GraphicsBlocks.js:620 +#: js/blocks/GraphicsBlocks.js:767 +#: js/blocks/GraphicsBlocks.js:1010 +#: js/blocks/GraphicsBlocks.js:1093 msgid "Value must be within -5000 to 5000 when Wrap Mode is off." msgstr "" -#: js/GraphicsBlocks.js:622 -#: js/GraphicsBlocks.js:769 -#: js/GraphicsBlocks.js:1012 -#: js/GraphicsBlocks.js:1095 +#: js/blocks/GraphicsBlocks.js:622 +#: js/blocks/GraphicsBlocks.js:769 +#: js/blocks/GraphicsBlocks.js:1012 +#: js/blocks/GraphicsBlocks.js:1095 msgid "Value must be within -20000 to 20000 when Wrap Mode is on." msgstr "" -#: js/GraphicsBlocks.js:660 +#: js/blocks/GraphicsBlocks.js:660 msgid "set heading" msgstr "makeje' peuk manamá" -#: js/GraphicsBlocks.js:673 +#: js/blocks/GraphicsBlocks.js:673 msgid "The Set heading block sets the heading of the turtle." msgstr "" -#: js/GraphicsBlocks.js:733 +#: js/blocks/GraphicsBlocks.js:733 msgid "The Set XY block moves the mouse to a specific position on the screen." msgstr "" -#: js/GraphicsBlocks.js:739 +#: js/blocks/GraphicsBlocks.js:739 msgid "The Set XY block moves the turtle to a specific position on the screen." msgstr "" -#: js/GraphicsBlocks.js:747 +#: js/blocks/GraphicsBlocks.js:747 msgid "set xy" msgstr "makeje' xy" -#: js/GraphicsBlocks.js:819 +#: js/blocks/GraphicsBlocks.js:819 msgid "The Right block turns the mouse to the right." msgstr "" -#: js/GraphicsBlocks.js:826 +#: js/blocks/GraphicsBlocks.js:826 msgid "The Right block turns the turtle to the right." msgstr "" -#: js/GraphicsBlocks.js:835 +#: js/blocks/GraphicsBlocks.js:835 msgid "right1" msgstr "" -#: js/GraphicsBlocks.js:835 +#: js/blocks/GraphicsBlocks.js:835 #: plugins/rodi.rtp:77 #: plugins/rodi.rtp:340 #: plugins/rodi.rtp:375 msgid "right" msgstr "majaap" -#: js/GraphicsBlocks.js:899 +#: js/blocks/GraphicsBlocks.js:899 msgid "The Left block turns the mouse to the left." msgstr "" -#: js/GraphicsBlocks.js:906 +#: js/blocks/GraphicsBlocks.js:906 msgid "The Left block turns the turtle to the left." msgstr "" -#: js/GraphicsBlocks.js:915 +#: js/blocks/GraphicsBlocks.js:915 msgid "left1" msgstr "" -#: js/GraphicsBlocks.js:915 +#: js/blocks/GraphicsBlocks.js:915 #: plugins/rodi.rtp:79 #: plugins/rodi.rtp:339 #: plugins/rodi.rtp:362 msgid "left" msgstr "meje'ep" -#: js/GraphicsBlocks.js:967 -#: js/temperament.js:734 -#: js/temperament.js:933 +#: js/blocks/GraphicsBlocks.js:967 +#: js/widgets/temperament.js:875 +#: js/widgets/temperament.js:1078 #: plugins/rodi.rtp:69 #: plugins/rodi.rtp:387 msgid "back" msgstr "ma ngupeix" -#: js/GraphicsBlocks.js:976 +#: js/blocks/GraphicsBlocks.js:976 msgid "The Back block moves the mouse backward." msgstr "" -#: js/GraphicsBlocks.js:983 +#: js/blocks/GraphicsBlocks.js:983 msgid "The Back block moves the turtle backward." msgstr "" -#: js/GraphicsBlocks.js:1050 +#: js/blocks/GraphicsBlocks.js:1050 #: plugins/rodi.rtp:71 #: plugins/rodi.rtp:400 msgid "forward" msgstr "D-uaja'" -#: js/GraphicsBlocks.js:1059 +#: js/blocks/GraphicsBlocks.js:1059 msgid "The Forward block moves the mouse forward." msgstr "" -#: js/GraphicsBlocks.js:1066 +#: js/blocks/GraphicsBlocks.js:1066 msgid "The Forward block moves the turtle forward." msgstr "" -#: js/GraphicsBlocks.js:1154 -#: js/GraphicsBlocks.js:1172 +#: js/blocks/GraphicsBlocks.js:1154 +#: js/blocks/GraphicsBlocks.js:1172 msgid "wrap" msgstr "" -#: js/OrnamentBlocks.js:32 -msgid "staccato factor" -msgstr "" - -#: js/OrnamentBlocks.js:108 -msgid "slur factor" -msgstr "" - -#: js/OrnamentBlocks.js:217 -#: js/OrnamentBlocks.js:309 -#.TRANS: the neighbor refers to a neighboring note, e.g., D is a neighbor of C -msgid "neighbor" -msgstr "" - -#: js/OrnamentBlocks.js:293 -msgid "The Neighbor block rapidly switches between neighboring pitches." -msgstr "" - -#: js/OrnamentBlocks.js:364 -msgid "glide" -msgstr "" - -#: js/OrnamentBlocks.js:479 -#: js/OrnamentBlocks.js:643 -msgid "slur" -msgstr "" - -#: js/OrnamentBlocks.js:558 -#: js/OrnamentBlocks.js:710 -#.TRANS: play each note sharply detached from the others -msgid "staccato" -msgstr "" - -#: js/PenBlocks.js:24 +#: js/blocks/PenBlocks.js:30 msgid "purple" msgstr "" -#: js/PenBlocks.js:37 -#: js/SensorsBlocks.js:521 -#: plugins/rodi.rtp:219 -msgid "blue" -msgstr "" - -#: js/PenBlocks.js:50 -#: js/SensorsBlocks.js:577 -#: plugins/rodi.rtp:218 -msgid "green" -msgstr "" - -#: js/PenBlocks.js:63 +#: js/blocks/PenBlocks.js:80 msgid "yellow" msgstr "" -#: js/PenBlocks.js:76 +#: js/blocks/PenBlocks.js:96 #: plugins/nutrition.rtp:164 msgid "orange" msgstr "ni'an" -#: js/PenBlocks.js:89 -#: js/SensorsBlocks.js:633 -#: plugins/rodi.rtp:217 -msgid "red" -msgstr "" - -#: js/PenBlocks.js:102 +#: js/blocks/PenBlocks.js:128 msgid "white" msgstr "" -#: js/PenBlocks.js:115 +#: js/blocks/PenBlocks.js:144 msgid "black" msgstr "" -#: js/PenBlocks.js:128 +#: js/blocks/PenBlocks.js:163 msgid "begin fill" msgstr "" -#: js/PenBlocks.js:143 +#: js/blocks/PenBlocks.js:190 msgid "end fill" msgstr "maljung se mane'p" -#: js/PenBlocks.js:159 -#: js/PenBlocks.js:386 +#: js/blocks/PenBlocks.js:212 +#: js/blocks/PenBlocks.js:560 #.TRANS: set the background color msgid "background" msgstr "" -#: js/PenBlocks.js:206 -#: js/DictActions.js:71 -#: js/DictActions.js:149 -#: js/DictActions.js:186 +#: js/blocks/PenBlocks.js:274 +#: js/turtleactions/DictActions.js:71 +#: js/turtleactions/DictActions.js:138 +#: js/turtleactions/DictActions.js:170 msgid "grey" msgstr "" -#: js/PenBlocks.js:210 +#: js/blocks/PenBlocks.js:282 msgid "The Grey block returns the current pen grey value." msgstr "" -#: js/PenBlocks.js:243 -#: js/DictActions.js:69 -#: js/DictActions.js:147 -#: js/DictActions.js:185 +#: js/blocks/PenBlocks.js:340 +#: js/turtleactions/DictActions.js:69 +#: js/turtleactions/DictActions.js:136 +#: js/turtleactions/DictActions.js:169 msgid "shade" msgstr "lijiú" -#: js/PenBlocks.js:247 +#: js/blocks/PenBlocks.js:347 msgid "The Shade block returns the current pen shade value." msgstr "" -#: js/PenBlocks.js:280 -#: js/DictActions.js:67 -#: js/DictActions.js:145 -#: js/DictActions.js:184 +#: js/blocks/PenBlocks.js:405 +#: js/turtleactions/DictActions.js:67 +#: js/turtleactions/DictActions.js:134 +#: js/turtleactions/DictActions.js:168 msgid "color" msgstr "xikjia'" -#: js/PenBlocks.js:285 +#: js/blocks/PenBlocks.js:415 msgid "The Color block returns the current pen color." msgstr "" -#: js/PenBlocks.js:318 -#: js/DictActions.js:73 -#: js/DictActions.js:151 -#: js/DictActions.js:187 +#: js/blocks/PenBlocks.js:470 +#: js/turtleactions/DictActions.js:73 +#: js/turtleactions/DictActions.js:140 +#: js/turtleactions/DictActions.js:171 msgid "pen size" msgstr "ngutue'p" -#: js/PenBlocks.js:322 +#: js/blocks/PenBlocks.js:474 msgid "The Pen size block returns the current pen size value." msgstr "" -#: js/PenBlocks.js:355 +#: js/blocks/PenBlocks.js:513 msgid "set font" msgstr "" -#: js/PenBlocks.js:358 +#: js/blocks/PenBlocks.js:518 msgid "The Set font block sets the font used by the Show block." msgstr "" -#: js/PenBlocks.js:391 +#: js/blocks/PenBlocks.js:567 msgid "The Background block sets the window background color." msgstr "" -#: js/PenBlocks.js:408 +#: js/blocks/PenBlocks.js:598 msgid "The Hollow line block creates a line with a hollow center." msgstr "" -#: js/PenBlocks.js:415 +#: js/blocks/PenBlocks.js:606 #.TRANS: draw a line logo has a hollow space down its center msgid "hollow line" msgstr "" -#: js/PenBlocks.js:462 +#: js/blocks/PenBlocks.js:675 msgid "The Fill block fills in a shape with a color." msgstr "" -#: js/PenBlocks.js:470 +#: js/blocks/PenBlocks.js:684 #.TRANS: fill in as a solid color msgid "fill" msgstr "" -#: js/PenBlocks.js:527 +#: js/blocks/PenBlocks.js:761 #.TRANS: raise up the pen so logo it does not draw when it is moved msgid "pen up" msgstr "majáu ne nde'ets kil'e" -#: js/PenBlocks.js:532 +#: js/blocks/PenBlocks.js:768 msgid "The Pen-up block raises the pen so that it does not draw." msgstr "" -#: js/PenBlocks.js:552 +#: js/blocks/PenBlocks.js:802 #.TRANS: put down the pen so logo it draws when it is moved msgid "pen down" msgstr "mapuu' ne nde'ets kily'e" -#: js/PenBlocks.js:557 +#: js/blocks/PenBlocks.js:810 msgid "The Pen-down block lowers the pen so that it draws." msgstr "" -#: js/PenBlocks.js:577 +#: js/blocks/PenBlocks.js:844 #.TRANS: set the width of the line drawn by the pen msgid "set pen size" msgstr "makeje' ngutue'p" -#: js/PenBlocks.js:583 +#: js/blocks/PenBlocks.js:854 msgid "The Set-pen-size block changes the size of the pen." msgstr "" -#: js/PenBlocks.js:623 +#: js/blocks/PenBlocks.js:913 #.TRANS: set degree of translucence of the pen color msgid "set translucency" msgstr "" -#: js/PenBlocks.js:627 +#: js/blocks/PenBlocks.js:921 msgid "The Set translucency block changes the opacity of the pen." msgstr "" -#: js/PenBlocks.js:668 +#: js/blocks/PenBlocks.js:981 msgid "set hue" msgstr "" -#: js/PenBlocks.js:672 +#: js/blocks/PenBlocks.js:989 msgid "The Set hue block changes the color of the pen." msgstr "" -#: js/PenBlocks.js:711 +#: js/blocks/PenBlocks.js:1047 msgid "set shade" msgstr "makeje' peuk lu'ue lijiú" -#: js/PenBlocks.js:717 +#: js/blocks/PenBlocks.js:1057 msgid "The Set-shade block changes the pen color from dark to light." msgstr "" -#: js/PenBlocks.js:757 +#: js/blocks/PenBlocks.js:1111 #.TRANS: set the level of vividness of the pen color msgid "set grey" msgstr "" -#: js/PenBlocks.js:761 +#: js/blocks/PenBlocks.js:1119 msgid "The Set grey block changes the vividness of the pen color." msgstr "" -#: js/PenBlocks.js:800 +#: js/blocks/PenBlocks.js:1172 msgid "set color" msgstr "makeje' xikjia'" -#: js/PenBlocks.js:806 +#: js/blocks/PenBlocks.js:1182 msgid "The Set-color block changes the pen color." msgstr "" -#: js/VolumeBlocks.js:35 -msgid "synth volume" -msgstr "" - -#: js/VolumeBlocks.js:39 -msgid "The Synth volume block returns the current volume of the current synthesizer." -msgstr "" - -#: js/VolumeBlocks.js:47 -#: js/musicutils.js:730 -#: js/synthutils.js:56 -#.TRANS: musical instrument -msgid "piano" -msgstr "" - -#: js/VolumeBlocks.js:105 -msgid "master volume" -msgstr "" - -#: js/VolumeBlocks.js:109 -msgid "The Master volume block returns the master volume." -msgstr "" - -#: js/VolumeBlocks.js:355 -#: js/VolumeBlocks.js:524 -msgid "set synth volume" -msgstr "" - -#: js/VolumeBlocks.js:362 -#: js/VolumeBlocks.js:545 -msgid "synth" -msgstr "" - -#: js/VolumeBlocks.js:403 -#: js/VolumeBlocks.js:577 -#: js/VolumeBlocks.js:740 -#: js/VolumeActions.js:173 -msgid "Setting volume to 0." -msgstr "" - -#: js/VolumeBlocks.js:440 -msgid "Synth not found" -msgstr "" - -#: js/VolumeBlocks.js:494 -msgid "set drum volume" -msgstr "" - -#: js/VolumeBlocks.js:530 -msgid "The Set synth volume block will change the volume of a particular synth," -msgstr "" - -#: js/VolumeBlocks.js:532 -msgid "eg guitar violin snare drum etc." -msgstr "" - -#: js/VolumeBlocks.js:534 -msgid "The default volume is 50." -msgstr "" - -#: js/VolumeBlocks.js:536 -msgid "The range is 0 for silence to 100 for full volume." -msgstr "" - -#: js/VolumeBlocks.js:597 -msgid "set panning" -msgstr "" - -#: js/VolumeBlocks.js:603 -msgid "The Set Panning block sets the panning for all synthesizers." -msgstr "" - -#: js/VolumeBlocks.js:625 -msgid "Warning: Sound is coming out from only the left or right side." -msgstr "" - -#: js/VolumeBlocks.js:647 -#: js/VolumeBlocks.js:695 -msgid "set master volume" -msgstr "" - -#: js/VolumeBlocks.js:653 -msgid "The Set master volume block sets the volume for all synthesizers." -msgstr "" - -#: js/VolumeBlocks.js:784 -msgid "The Set relative volume block changes the volume of the contained notes." -msgstr "" - -#: js/VolumeBlocks.js:791 -msgid "set relative volume" -msgstr "" - -#: js/VolumeBlocks.js:857 -msgid "decrescendo" -msgstr "" - -#: js/VolumeBlocks.js:921 -msgid "crescendo" -msgstr "" - -#: js/ToneBlocks.js:34 -msgid "oscillator" -msgstr "" - -#: js/ToneBlocks.js:44 -#: js/timbre.js:1562 -#.TRANS: Partials refers to the number of sine waves combined into the sound. -msgid "partials" -msgstr "" - -#: js/ToneBlocks.js:76 -msgid "You are adding multiple oscillator blocks." -msgstr "" - -#: js/ToneBlocks.js:144 -#: js/timbre.js:1225 -#.TRANS: a duo synthesizer combines a synth with a sequencer -msgid "duo synth" -msgstr "" - -#: js/ToneBlocks.js:149 -msgid "The Duo synth block is a duo-frequency modulator used to define a timbre." -msgstr "" - -#: js/ToneBlocks.js:157 -#: js/timbre.js:1476 -msgid "vibrato rate" -msgstr "" - -#: js/ToneBlocks.js:157 -msgid "vibrato intensity" -msgstr "" - -#: js/ToneBlocks.js:185 -#: js/timbre.js:1221 -#.TRANS: AM (amplitude modulation) synthesizer -msgid "AM synth" -msgstr "" - -#: js/ToneBlocks.js:189 -msgid "The AM synth block is an amplitude modulator used to define a timbre." -msgstr "" - -#: js/ToneBlocks.js:224 -#: js/timbre.js:1223 -#.TRANS: FM (frequency modulation) synthesizer -msgid "FM synth" -msgstr "" - -#: js/ToneBlocks.js:228 -msgid "The FM synth block is a frequency modulator used to define a timbre." -msgstr "" - -#: js/ToneBlocks.js:262 -msgid "partial" +#: js/blocks/PitchBlocks.js:141 +#.TRANS: musical transposition (adjustment of pitch up or down) +msgid "transposition" msgstr "" -#: js/ToneBlocks.js:265 -msgid "The Partial block is used to specify a weight for a specific partial harmonic." +#: js/blocks/PitchBlocks.js:168 +#.TRANS: step down one note in current musical scale +msgid "scalar step down" msgstr "" -#: js/ToneBlocks.js:284 -#.TRANS: partials are weighted components in a harmonic series -msgid "Partial weight must be between 0 and 1." +#: js/blocks/PitchBlocks.js:172 +msgid "The Scalar step down block returns the number of semi-tones down to the previous note in the current key and mode." msgstr "" -#: js/ToneBlocks.js:297 -#.TRANS: partials are weighted components in a harmonic series -msgid "Partial block should be used inside of a Weighted-partials block." +#: js/blocks/PitchBlocks.js:190 +#.TRANS: step up one note in current musical scale +msgid "scalar step up" msgstr "" -#: js/ToneBlocks.js:325 -#.TRANS: partials are weighted components in a harmonic series -msgid "weighted partials" +#: js/blocks/PitchBlocks.js:194 +msgid "The Scalar step up block returns the number of semi-tones up to the next note in the current key and mode." msgstr "" -#: js/ToneBlocks.js:383 -msgid "The Harmonic block will add harmonics to the contained notes." +#: js/blocks/PitchBlocks.js:212 +#.TRANS: the change measured in half-steps between the current pitch and the previous pitch +msgid "change in pitch" msgstr "" -#: js/ToneBlocks.js:390 -#.TRANS: A harmonic is an overtone. -msgid "harmonic" +#: js/blocks/PitchBlocks.js:216 +msgid "The Change in pitch block is the difference (in half steps) between the current pitch being played and the previous pitch played." msgstr "" -#: js/ToneBlocks.js:431 -msgid "The Distortion block adds distortion to the pitch." +#: js/blocks/PitchBlocks.js:243 +#.TRANS: the change measured in scale-steps between the current pitch and the previous pitch +msgid "scalar change in pitch" msgstr "" -#: js/ToneBlocks.js:438 -#: js/timbre.js:2100 -#.TRANS: distortion is an alteration in the sound -msgid "distortion" +#: js/blocks/PitchBlocks.js:250 +#: js/blocks/PitchBlocks.js:432 +#: js/blocks/PitchBlocks.js:1667 +#: js/turtleactions/DictActions.js:89 +#: js/widgets/temperament.js:610 +#: js/widgets/temperament.js:614 +#: js/widgets/temperament.js:855 +#.TRANS: convert current note to piano key (1-88) +#.TRANS: a mapping of pitch to the 88 piano keys +msgid "pitch number" msgstr "" -#: js/ToneBlocks.js:487 -msgid "The Tremolo block adds a wavering effect." +#: js/blocks/PitchBlocks.js:256 +msgid "The Pitch number block is the value of the pitch of the note currently being played." msgstr "" -#: js/ToneBlocks.js:495 -#: js/timbre.js:2092 -#.TRANS: a wavering effect in a musical tone -msgid "tremolo" +#: js/blocks/PitchBlocks.js:329 +#: js/blocks/PitchBlocks.js:433 +#.TRANS: the current pitch expressed in Hertz +msgid "pitch in hertz" msgstr "" -#: js/ToneBlocks.js:500 -#: js/ToneBlocks.js:569 -#: js/ToneBlocks.js:630 -#: js/ToneBlocks.js:689 -#: js/timbre.js:2134 -#: js/timbre.js:2222 -#: js/timbre.js:2317 -#: js/timbre.js:2419 -#.TRANS: rate at which tremolo wavers -msgid "rate" +#: js/blocks/PitchBlocks.js:334 +msgid "The Pitch in Hertz block is the value in Hertz of the pitch of the note currently being played." msgstr "" -#: js/ToneBlocks.js:502 -#: js/ToneBlocks.js:630 -#: js/timbre.js:2137 -#: js/timbre.js:2328 -#.TRANS: amplitude of tremolo waver -msgid "depth" +#: js/blocks/PitchBlocks.js:367 +#: js/turtleactions/DictActions.js:87 +msgid "current pitch" msgstr "" -#: js/ToneBlocks.js:559 -msgid "The Phaser block adds a sweeping sound." +#: js/blocks/PitchBlocks.js:373 +msgid "The Current Pitch block is used with the Pitch Converter block. In the example above, current pitch, sol 4, is displayed as 392 hertz." msgstr "" -#: js/ToneBlocks.js:566 -#: js/timbre.js:2098 -#.TRANS: alter the phase of the sound -msgid "phaser" +#: js/blocks/PitchBlocks.js:410 +msgid "This block converts the pitch value of the last note played into different formats such as hertz, letter name, pitch number, et al." msgstr "" -#: js/ToneBlocks.js:569 -#: js/timbre.js:2422 -msgid "octaves" +#: js/blocks/PitchBlocks.js:434 +msgid "alphabet" msgstr "" -#: js/ToneBlocks.js:569 -#: js/timbre.js:2425 -msgid "base frequency" +#: js/blocks/PitchBlocks.js:436 +#.TRANS: Translate as "alphabet class" +msgid "letter class" msgstr "" -#: js/ToneBlocks.js:619 -msgid "The Chorus block adds a chorus effect." +#: js/blocks/PitchBlocks.js:437 +msgid "solfege class" msgstr "" -#: js/ToneBlocks.js:627 -#: js/timbre.js:2096 -#.TRANS: musical effect to simulate a choral sound -msgid "chorus" +#: js/blocks/PitchBlocks.js:438 +msgid "staff y" msgstr "" -#: js/ToneBlocks.js:630 -msgid "delay" +#: js/blocks/PitchBlocks.js:439 +msgid "solfege syllable" msgstr "" -#: js/ToneBlocks.js:678 -msgid "The Vibrato block adds a rapid, slight variation in pitch." +#: js/blocks/PitchBlocks.js:440 +msgid "pitch class" msgstr "" -#: js/ToneBlocks.js:686 -#: js/timbre.js:2094 -#.TRANS: a rapid, slight variation in pitch -msgid "vibrato" +#: js/blocks/PitchBlocks.js:441 +msgid "scalar class" msgstr "" -#: js/ToneBlocks.js:689 -#: js/timbre.js:2221 -msgid "intensity" +#: js/blocks/PitchBlocks.js:443 +msgid "nth degree" msgstr "" -#: js/ToneBlocks.js:733 -#.TRANS: select synthesizer -msgid "set synth" +#: js/blocks/PitchBlocks.js:444 +msgid "pitch to shade" msgstr "" -#: js/ToneBlocks.js:804 -msgid "synth name" +#: js/blocks/PitchBlocks.js:445 +msgid "pitch to color" msgstr "" -#: js/ToneBlocks.js:842 -msgid "set default instrument" +#: js/blocks/PitchBlocks.js:629 +#: js/widgets/musickeyboard.js:735 +#.TRANS: MIDI is a technical standard for electronic music +msgid "MIDI" msgstr "" -#: js/ToneBlocks.js:895 -#: js/ToneBlocks.js:943 -#.TRANS: set the characteristics of a custom instrument -msgid "set instrument" +#: js/blocks/PitchBlocks.js:642 +#.TRANS: set an offset associated with the numeric piano keyboard mapping +msgid "set pitch number offset" msgstr "" -#: js/ToneBlocks.js:898 -#: js/ToneBlocks.js:926 -#: js/ToneBlocks.js:932 -msgid "The Set instrument block selects a voice for the synthesizer," +#: js/blocks/PitchBlocks.js:645 +msgid "The Set pitch number offset block is used to set the offset for mapping pitch numbers to pitch and octave." msgstr "" -#: js/ToneBlocks.js:900 -#: js/ToneBlocks.js:934 -msgid "eg guitar piano violin or cello." +#: js/blocks/PitchBlocks.js:679 +#.TRANS: convert piano key number (1-88) to pitch +msgid "number to pitch" msgstr "" -#: js/ToneBlocks.js:1015 -msgid "Import a sound file to use as an instrument and set its pitch center." +#: js/blocks/PitchBlocks.js:682 +msgid "The Number to pitch block will convert a pitch number to a pich name." msgstr "" -#: js/ToneBlocks.js:1110 -msgid "Upload a sound file to connect with the sample block." +#: js/blocks/PitchBlocks.js:715 +#.TRANS: convert piano key number (1-88) to octave +msgid "number to octave" msgstr "" -#: js/MeterBlocks.js:34 -#.TRANS: musical meter (time signature), e.g., 4:4 -msgid "current meter" +#: js/blocks/PitchBlocks.js:717 +msgid "The Number to octave block will convert a pitch number to an octave." msgstr "" -#: js/MeterBlocks.js:85 -#.TRANS: number of beats per minute -msgid "beat factor" +#: js/blocks/PitchBlocks.js:726 +msgid "y to pitch" msgstr "" -#: js/MeterBlocks.js:161 -msgid "The Beats per minute block returns the current beats per minute." +#: js/blocks/PitchBlocks.js:729 +msgid "Y to pitch block will convert a staff y position to corresponding pitch notation." msgstr "" -#: js/MeterBlocks.js:169 -#: js/status.js:152 -#.TRANS: number of beats played per minute -msgid "beats per minute2" +#: js/blocks/PitchBlocks.js:841 +msgid "accidental selector" msgstr "" -#: js/MeterBlocks.js:169 -#: js/MeterBlocks.js:1056 -#: js/MeterBlocks.js:1133 -#: js/MeterBlocks.js:1211 -#.TRANS: sets tempo by defining a beat and beats per minute -msgid "beats per minute" +#: js/blocks/PitchBlocks.js:844 +msgid "The Accidental selector block is used to choose between double-sharp, sharp, natural, flat, and double-flat." msgstr "" -#: js/MeterBlocks.js:233 -#.TRANS: count of current musical measure in meter -msgid "measure count" +#: js/blocks/PitchBlocks.js:858 +msgid "Pitch can be specified in terms of ni dha pa ma ga re sa." msgstr "" -#: js/MeterBlocks.js:241 -msgid "The Measure count block returns the current measure." +#: js/blocks/PitchBlocks.js:872 +msgid "Pitch can be specified in terms of C D E F G A B." msgstr "" -#: js/MeterBlocks.js:290 -#.TRANS: count of current beat in the meter -msgid "beat count" +#: js/blocks/PitchBlocks.js:884 +msgid "solfege" msgstr "" -#: js/MeterBlocks.js:300 -#: js/MeterBlocks.js:311 -#: js/MeterBlocks.js:565 -#: js/MeterBlocks.js:576 -msgid "The Beat count block is the number of the current beat," +#: js/blocks/PitchBlocks.js:887 +msgid "Pitch can be specified in terms of do re mi fa sol la ti." msgstr "" -#: js/MeterBlocks.js:313 -#: js/MeterBlocks.js:578 -msgid "eg 1, 2, 3, or 4." +#: js/blocks/PitchBlocks.js:922 +msgid "The Invert block rotates any contained notes around a target note." msgstr "" -#: js/MeterBlocks.js:368 -#.TRANS: count the number of notes -msgid "sum note values" +#: js/blocks/PitchBlocks.js:929 +#.TRANS: pitch inversion rotates a pitch around another pitch +msgid "invert" msgstr "" -#: js/MeterBlocks.js:376 -#: js/MeterBlocks.js:440 -msgid "The Note counter block can be used to count the number of contained notes." +#: js/blocks/PitchBlocks.js:968 +#.TRANS: pitch inversion rotates a pitch around another pitch (odd number) +msgid "invert (odd)" msgstr "" -#: js/MeterBlocks.js:432 -#.TRANS: count the number of notes -msgid "note counter" +#: js/blocks/PitchBlocks.js:1001 +#.TRANS: pitch inversion rotates a pitch around another pitch (even number) +msgid "invert (even)" msgstr "" -#: js/MeterBlocks.js:496 -#.TRANS: number of whole notes that have been played -msgid "whole notes played" +#: js/blocks/PitchBlocks.js:1022 +#.TRANS: register is the octave of the current pitch +msgid "register" msgstr "" -#: js/MeterBlocks.js:505 -msgid "The Whole notes played block returns the total number of whole notes played." +#: js/blocks/PitchBlocks.js:1026 +msgid "The Register block provides an easy way to modify the register (octave) of the notes that follow it." msgstr "" -#: js/MeterBlocks.js:555 -#: js/DictActions.js:83 -#.TRANS: number of notes that have been played -msgid "notes played" +#: js/blocks/PitchBlocks.js:1047 +#.TRANS: cents are units used to specify the ratio between pitches. There are 100 cents between successive notes. +msgid "50 cents" msgstr "" -#: js/MeterBlocks.js:653 -msgid "The No clock block decouples the notes from the master clock." +#: js/blocks/PitchBlocks.js:1102 +msgid "The Semi-tone transposition block will shift the pitches contained inside Note blocks up (or down) by half steps." msgstr "" -#: js/MeterBlocks.js:661 -#.TRANS: don't lock notes to master clock -msgid "no clock" +#: js/blocks/PitchBlocks.js:1104 +msgid "In the example shown above, sol is shifted up to sol#." msgstr "" -#: js/MeterBlocks.js:700 -msgid "on weak beat do" +#: js/blocks/PitchBlocks.js:1110 +#.TRANS: adjust the amount of shift (up or down) of a pitch +msgid "semi-tone transpose" msgstr "" -#: js/MeterBlocks.js:705 -msgid "The On-weak-beat block lets you specify actions to take on weak (off) beats." +#: js/blocks/PitchBlocks.js:1143 +msgid "The Transpose by Ratio block will shift the pitches contained inside Note blocks up (or down) by a ratio" msgstr "" -#: js/MeterBlocks.js:750 -msgid "on strong beat" +#: js/blocks/PitchBlocks.js:1149 +#.TRANS: adjust the amount of shift (up or down) of a pitch +msgid "transpose by ratio" msgstr "" -#: js/MeterBlocks.js:758 -msgid "The On-strong-beat block lets you specify actions to take on specified beats." +#: js/blocks/PitchBlocks.js:1232 +#.TRANS: down sixth means the note is five scale degrees below current note +msgid "down sixth" msgstr "" -#: js/MeterBlocks.js:769 -msgid "beat" +#: js/blocks/PitchBlocks.js:1251 +#.TRANS: down third means the note is two scale degrees below current note +msgid "down third" msgstr "" -#: js/MeterBlocks.js:813 -msgid "on every beat do" +#: js/blocks/PitchBlocks.js:1270 +#.TRANS: seventh means the note is the six scale degrees above current note +msgid "seventh" msgstr "" -#: js/MeterBlocks.js:821 -msgid "The On-every-beat block lets you specify actions to take on every beat." +#: js/blocks/PitchBlocks.js:1289 +#.TRANS: sixth means the note is the five scale degrees above current note +msgid "sixth" msgstr "" -#: js/MeterBlocks.js:874 -msgid "on every note do" +#: js/blocks/PitchBlocks.js:1308 +#.TRANS: fifth means the note is the four scale degrees above current note +msgid "fifth" msgstr "" -#: js/MeterBlocks.js:882 -msgid "The On-every-note block lets you specify actions to take on every note." +#: js/blocks/PitchBlocks.js:1328 +#.TRANS: fourth means the note is three scale degrees above current note +msgid "fourth" msgstr "" -#: js/MeterBlocks.js:928 -#: js/MeterBlocks.js:999 -#.TRANS: sets tempo by defining a beat and beats per minute -msgid "master beats per minute" +#: js/blocks/PitchBlocks.js:1347 +#.TRANS: third means the note is two scale degrees above current note +msgid "third" msgstr "" -#: js/MeterBlocks.js:952 -#: js/MeterBlocks.js:1078 -#: js/MeterBlocks.js:1135 -msgid "bpm" +#: js/blocks/PitchBlocks.js:1366 +#.TRANS: second means the note is one scale degree above current note +msgid "second" msgstr "" -#: js/MeterBlocks.js:952 -#: js/MeterBlocks.js:1078 -#: js/MeterBlocks.js:1135 -msgid "beat value" +#: js/blocks/PitchBlocks.js:1407 +msgid "The Scalar transposition block will shift the pitches contained inside Note blocks up (or down) the scale." msgstr "" -#: js/MeterBlocks.js:1024 -#: js/MeterBlocks.js:1167 -#: js/MeterBlocks.js:1241 -msgid "Beats per minute must be > 30." +#: js/blocks/PitchBlocks.js:1409 +msgid "In the example shown above, sol is shifted up to la." msgstr "" -#: js/MeterBlocks.js:1027 -#: js/MeterBlocks.js:1170 -#: js/MeterBlocks.js:1244 -msgid "Maximum beats per minute is 1000." +#: js/blocks/PitchBlocks.js:1416 +#.TRANS: adjust the amount of shift (up or down) of a pitch by musical scale (scalar) steps +msgid "scalar transpose" msgstr "" -#: js/MeterBlocks.js:1068 -msgid "The Beats per minute block sets the number of 1/4 notes per minute." +#: js/blocks/PitchBlocks.js:1451 +msgid "The Accidental block is used to create sharps and flats" msgstr "" -#: js/MeterBlocks.js:1279 -#.TRANS: anacrusis -msgid "pickup" +#: js/blocks/PitchBlocks.js:1458 +#.TRANS: An accidental is a modification to a pitch, e.g., sharp or flat. +msgid "accidental override" msgstr "" -#: js/MeterBlocks.js:1367 -msgid "number of beats" +#: js/blocks/PitchBlocks.js:1581 +msgid "The Hertz block (in combination with a Number block) will play a sound at the specified frequency." msgstr "" -#: js/DictBlocks.js:77 -msgid "show dictionary" +#: js/blocks/PitchBlocks.js:1671 +msgid "The Pitch Number block will play a pitch associated by its number, e.g. 0 for C and 7 for G." msgstr "" -#: js/DictBlocks.js:129 -msgid "The Dictionary block returns a dictionary." +#: js/blocks/PitchBlocks.js:1703 +#: js/blocks/PitchBlocks.js:1745 +#.TRANS: a numeric mapping of the notes in an octave based on the musical mode +#.TRANS: a numeric mapping of the notes in an octave based on the musical mode +msgid "nth modal pitch" msgstr "" -#: js/DictBlocks.js:197 -#: js/DictBlocks.js:339 -msgid "The Get-dict block returns a value in the dictionary for a specified key." +#: js/blocks/PitchBlocks.js:1706 +msgid "n^th Modal Pitch takes the pattern of pitches in semitones for a mode and makes each point a degree of the mode," msgstr "" -#: js/DictBlocks.js:212 -#: js/DictBlocks.js:354 -#.TRANS: retrieve a value from the dictionary with a given key -msgid "get value" +#: js/blocks/PitchBlocks.js:1708 +msgid "starting from 1 and regardless of tonal framework (i.e. not always 8 notes in the octave)" msgstr "" -#: js/DictBlocks.js:215 -#: js/DictBlocks.js:216 -#: js/DictBlocks.js:289 -#: js/DictBlocks.js:290 -#: js/DictBlocks.js:357 -#: js/DictBlocks.js:430 -#: js/DictBlocks.js:431 -msgid "key2" +#: js/blocks/PitchBlocks.js:1749 +msgid "N^th Modal Pitch takes a number as an input as the n^th degree for the given mode. 0 is the first position, 1 is the second, -1 is the note before the first etc." msgstr "" -#: js/DictBlocks.js:271 -#: js/DictBlocks.js:411 -msgid "The Set-dict block sets a value in the dictionary for a specified key." +#: js/blocks/PitchBlocks.js:1751 +msgid "The pitches change according to the mode specified without any need for respellings." msgstr "" -#: js/DictBlocks.js:286 -#: js/DictBlocks.js:427 -#.TRANS: set a value in the dictionary for a given key -msgid "set value" +#: js/blocks/PitchBlocks.js:1790 +msgid "Scale Degree is a common convention in music. Scale Degree offers seven possible positions in the scale (1-7) and can be modified via accidentals." msgstr "" -#: js/ExtrasBlocks.js:33 -msgid "fraction" +#: js/blocks/PitchBlocks.js:1792 +msgid "Scale Degree 1 is always the first pitch in a given scale, regardless of octave." msgstr "" -#: js/ExtrasBlocks.js:36 -msgid "Convert a float to a fraction" +#: js/blocks/PitchBlocks.js:1814 +#.TRANS: step some number of notes in current musical scale +msgid "scalar step" msgstr "" -#: js/ExtrasBlocks.js:93 -msgid "save as ABC" +#: js/blocks/PitchBlocks.js:1819 +msgid "The Scalar Step block (in combination with a Number block) will play the next pitch in a scale," msgstr "" -#: js/ExtrasBlocks.js:96 -#: js/ExtrasBlocks.js:132 -#: js/ExtrasBlocks.js:168 -msgid "title" +#: js/blocks/PitchBlocks.js:1821 +msgid "eg if the last note played was sol, Scalar Step 1 will play la." msgstr "" -#: js/ExtrasBlocks.js:129 -msgid "save as Lilypond" +#: js/blocks/PitchBlocks.js:1857 +msgid "The Pitch block specifies the pitch name and octave of a note that together determine the frequency of the note." msgstr "" -#: js/ExtrasBlocks.js:165 -msgid "save as SVG" +#: js/blocks/ProgramBlocks.js:33 +msgid "The Load-heap-from-app block loads the heap from a web page." msgstr "" -#: js/ExtrasBlocks.js:216 -msgid "no background" +#: js/blocks/ProgramBlocks.js:44 +#.TRANS: load the heap contents from a URL +msgid "load heap from App" msgstr "" -#: js/ExtrasBlocks.js:219 -msgid "The No background block eliminates the background from the saved SVG output." +#: js/blocks/ProgramBlocks.js:95 +msgid "Error parsing JSON data:" msgstr "" -#: js/ExtrasBlocks.js:247 -msgid "show blocks" -msgstr "Ma'u'up re se vud-ua me'ets" +#: js/blocks/ProgramBlocks.js:100 +msgid "404: Page not found" +msgstr "" -#: js/ExtrasBlocks.js:249 -msgid "The Show blocks block shows the blocks." +#: js/blocks/ProgramBlocks.js:133 +msgid "The Save-heap-to-app block saves the heap to a web page." msgstr "" -#: js/ExtrasBlocks.js:274 -msgid "hide blocks" -msgstr "Ma'aung me'ets kily'e" +#: js/blocks/ProgramBlocks.js:144 +#.TRANS: save the heap contents to a URL +msgid "save heap to App" +msgstr "" -#: js/ExtrasBlocks.js:276 -msgid "The Hide blocks block hides the blocks." +#: js/blocks/ProgramBlocks.js:189 +msgid "Cannot find a valid heap for" msgstr "" -#: js/ExtrasBlocks.js:305 -#: js/ExtrasBlocks.js:335 -msgid "The Space block is used to add space between blocks." +#: js/blocks/ProgramBlocks.js:206 +msgid "The Load-heap block loads the heap from a file." msgstr "" -#: js/ExtrasBlocks.js:373 -msgid "wait" -msgstr "mapee" +#: js/blocks/ProgramBlocks.js:217 +#.TRANS: load the heap from a file +msgid "load heap" +msgstr "" -#: js/ExtrasBlocks.js:376 -msgid "The Wait block pauses the program for a specified number of seconds." +#: js/blocks/ProgramBlocks.js:270 +msgid "The file you selected does not contain a valid heap." msgstr "" -#: js/ExtrasBlocks.js:430 -#: plugins/facebook.rtp:30 -msgid "comment" +#: js/blocks/ProgramBlocks.js:275 +msgid "The loadHeap block needs a loadFile block." msgstr "" -#: js/ExtrasBlocks.js:466 -msgid "print" +#: js/blocks/ProgramBlocks.js:291 +msgid "The Set-heap block loads the heap." msgstr "" -#: js/ExtrasBlocks.js:473 -msgid "The Print block displays text at the top of the screen." +#: js/blocks/ProgramBlocks.js:340 +msgid "The block you selected does not contain a valid heap." msgstr "" -#: js/ExtrasBlocks.js:579 -msgid "display grid" +#: js/blocks/ProgramBlocks.js:343 +msgid "The Set heap block needs a heap." msgstr "" -#: js/ExtrasBlocks.js:584 -msgid "The Display Grid Block changes the grid type" +#: js/blocks/ProgramBlocks.js:360 +msgid "The Load-dictionary block loads a dictionary from a file." msgstr "" -#: js/ExtrasBlocks.js:686 -#: js/ExtrasBlocks.js:705 -#: js/ExtrasBlocks.js:728 -#: js/ExtrasBlocks.js:751 -#: js/ExtrasBlocks.js:769 -#: js/ExtrasBlocks.js:788 -#: js/ExtrasBlocks.js:807 -#: js/ExtrasBlocks.js:826 -msgid "unknown" +#: js/blocks/ProgramBlocks.js:372 +#.TRANS: load a dictionary from a file +msgid "load dictionary" msgstr "" -#: js/SensorsBlocks.js:36 -msgid "The Input block prompts for keyboard input." +#: js/blocks/ProgramBlocks.js:390 +#: js/blocks/ProgramBlocks.js:658 +#: js/blocks/ToneBlocks.js:1025 +msgid "file" msgstr "" -#: js/SensorsBlocks.js:46 -msgid "input" +#: js/blocks/ProgramBlocks.js:444 +msgid "The file you selected does not contain a valid dictionary." msgstr "" -#: js/SensorsBlocks.js:64 -msgid "Input a value" +#: js/blocks/ProgramBlocks.js:449 +msgid "The load dictionary block needs a load file block." msgstr "" -#: js/SensorsBlocks.js:126 -msgid "input value" +#: js/blocks/ProgramBlocks.js:466 +msgid "The Set-dictionary block loads a dictionary." msgstr "" -#: js/SensorsBlocks.js:131 -msgid "The Input-value block stores the input." +#: js/blocks/ProgramBlocks.js:477 +#.TRANS: load a dictionary from a JSON +msgid "set dictionary" msgstr "" -#: js/SensorsBlocks.js:238 -msgid "loudness" -msgstr "manaja" +#: js/blocks/ProgramBlocks.js:546 +msgid "The block you selected does not contain a valid dictionary." +msgstr "" -#: js/SensorsBlocks.js:245 -msgid "The Loudness block returns the volume detected by the microphone." +#: js/blocks/ProgramBlocks.js:550 +msgid "The set dictionary block needs a dictionary." msgstr "" -#: js/SensorsBlocks.js:300 -msgid "click" +#: js/blocks/ProgramBlocks.js:567 +msgid "The Save-heap block saves the heap to a file." msgstr "" -#: js/SensorsBlocks.js:306 -msgid "The Click block triggers an event if a mouse has been clicked." +#: js/blocks/ProgramBlocks.js:578 +#.TRANS: save the heap to a file +msgid "save heap" msgstr "" -#: js/SensorsBlocks.js:313 -msgid "The Click block triggers an event if a turtle has been clicked." +#: js/blocks/ProgramBlocks.js:629 +msgid "The Save-dictionary block saves a dictionary to a file." msgstr "" -#: js/SensorsBlocks.js:342 -msgid "cursor over" +#: js/blocks/ProgramBlocks.js:640 +#.TRANS: save a dictionary to a file +msgid "save dictionary" msgstr "" -#: js/SensorsBlocks.js:387 -msgid "cursor out" +#: js/blocks/ProgramBlocks.js:720 +msgid "The Open palette block opens a palette." msgstr "" -#: js/SensorsBlocks.js:433 -msgid "cursor button down" +#: js/blocks/ProgramBlocks.js:727 +msgid "open palette" msgstr "" -#: js/SensorsBlocks.js:477 -msgid "cursor button up" +#: js/blocks/ProgramBlocks.js:785 +msgid "The Delete block block removes a block." msgstr "" -#: js/SensorsBlocks.js:638 -msgid "The Get red block returns the red component of the pixel under the mouse." +#: js/blocks/ProgramBlocks.js:797 +#.TRANS: Move this block to the trash. +msgid "delete block" msgstr "" -#: js/SensorsBlocks.js:644 -msgid "The Get red block returns the red component of the pixel under the turtle." +#: js/blocks/ProgramBlocks.js:861 +msgid "The Move block block moves a block." msgstr "" -#: js/SensorsBlocks.js:685 -#: plugins/rodi.rtp:216 -msgid "pixel color" +#: js/blocks/ProgramBlocks.js:869 +#.TRANS: Move the position of a block on the screen. +msgid "move block" msgstr "" -#: js/SensorsBlocks.js:690 -msgid "The Get pixel block returns the color of the pixel under the mouse." +#: js/blocks/ProgramBlocks.js:881 +#: js/blocks/ProgramBlocks.js:1048 +msgid "block number" msgstr "" -#: js/SensorsBlocks.js:696 -msgid "The Get pixel block returns the color of the pixel under the turtle." +#: js/blocks/ProgramBlocks.js:935 +#.TRANS: Run program beginning at this block. +msgid "run block" msgstr "" -#: js/SensorsBlocks.js:758 -msgid "time" +#: js/blocks/ProgramBlocks.js:1025 +msgid "The Dock block block connections two blocks." msgstr "" -#: js/SensorsBlocks.js:804 -msgid "cursor y" +#: js/blocks/ProgramBlocks.js:1036 +#.TRANS: We can connect a block to another block. +msgid "connect blocks" msgstr "" -#: js/SensorsBlocks.js:809 -msgid "The Cursor Y block returns the vertical position of the mouse." +#: js/blocks/ProgramBlocks.js:1048 +msgid "target block" msgstr "" -#: js/SensorsBlocks.js:845 -msgid "cursor x" +#: js/blocks/ProgramBlocks.js:1048 +msgid "connection number" msgstr "" -#: js/SensorsBlocks.js:850 -msgid "The Cursor X block returns the horizontal position of the mouse." +#: js/blocks/ProgramBlocks.js:1140 +msgid "The Make block block creates a new block." msgstr "" -#: js/SensorsBlocks.js:886 -msgid "mouse button" +#: js/blocks/ProgramBlocks.js:1152 +#.TRANS: Create a new block +msgid "make block" msgstr "" -#: js/SensorsBlocks.js:888 -msgid "The Mouse-button block returns True if the mouse button is pressed." +#: js/blocks/ProgramBlocks.js:1285 +msgid "Cannot find block" msgstr "" -#: js/SensorsBlocks.js:934 -msgid "to ASCII" +#: js/blocks/ProgramBlocks.js:1304 +#: js/blocks/ProgramBlocks.js:1313 +msgid "Warning: block argument type mismatch" msgstr "" -#: js/SensorsBlocks.js:938 -msgid "The To ASCII block converts numbers to letters." +#: js/blocks/ProgramBlocks.js:1347 +msgid "The Open project block is used to open a project from a web page." msgstr "" -#: js/SensorsBlocks.js:1005 -msgid "The Keyboard block returns computer keyboard input." +#: js/blocks/ProgramBlocks.js:1357 +msgid "open project" msgstr "" -#: js/IntervalsActions.js:216 -msgid "Adding missing pitch number 0." +#: js/blocks/ProgramBlocks.js:1410 +msgid "Please enter a valid URL." msgstr "" -#: js/IntervalsActions.js:224 -msgid "Ignoring pitch numbers less than zero or greater than eleven." +#: js/blocks/ToneBlocks.js:34 +msgid "oscillator" msgstr "" -#: js/IntervalsActions.js:230 -msgid "Ignoring duplicate pitch numbers." +#: js/blocks/ToneBlocks.js:42 +#: js/blocks/WidgetBlocks.js:179 +#: js/widgets/timbre.js:1558 +#: js/widgets/timbre.js:1808 +#.TRANS: there are different types (sine, triangle, square...) of oscillators. +#.TRANS: type of filter, e.g., lowpass, highpass, etc. +msgid "type" msgstr "" -#: js/PitchActions.js:88 -msgid "The Scalar Step Block must be used inside of a Note Block." +#: js/blocks/ToneBlocks.js:44 +#: js/widgets/timbre.js:1562 +#.TRANS: Partials refers to the number of sine waves combined into the sound. +msgid "partials" msgstr "" -#: js/PitchActions.js:107 -msgid "The Scalar Step Block must be preceded by a Pitch Block." +#: js/blocks/ToneBlocks.js:76 +msgid "You are adding multiple oscillator blocks." msgstr "" -#: js/DrumActions.js:231 -msgid "Noise Block: Did you mean to use a Note block?" +#: js/blocks/ToneBlocks.js:144 +#: js/widgets/timbre.js:1225 +#.TRANS: a duo synthesizer combines a synth with a sequencer +msgid "duo synth" msgstr "" -#: js/MeterActions.js:101 -#: js/MeterActions.js:139 -msgid "beats per minute must be greater than" +#: js/blocks/ToneBlocks.js:149 +msgid "The Duo synth block is a duo-frequency modulator used to define a timbre." msgstr "" -#: js/MeterActions.js:111 -#: js/MeterActions.js:149 -msgid "maximum" +#: js/blocks/ToneBlocks.js:157 +#: js/widgets/timbre.js:1476 +msgid "vibrato rate" msgstr "" -#: js/MeterActions.js:117 -#: js/MeterActions.js:155 -msgid "beats per minute is" +#: js/blocks/ToneBlocks.js:157 +msgid "vibrato intensity" msgstr "" -#: js/ToneActions.js:134 -msgid "Vibrato intensity must be between 1 and 100." +#: js/blocks/ToneBlocks.js:185 +#: js/widgets/timbre.js:1221 +#.TRANS: AM (amplitude modulation) synthesizer +msgid "AM synth" msgstr "" -#: js/ToneActions.js:139 -msgid "Vibrato rate must be greater than 0." +#: js/blocks/ToneBlocks.js:189 +msgid "The AM synth block is an amplitude modulator used to define a timbre." msgstr "" -#: js/ToneActions.js:192 -#: js/ToneActions.js:265 -#.TRANS: Depth is the intesity of the tremolo or chorus effect. -msgid "Depth is out of range." +#: js/blocks/ToneBlocks.js:224 +#: js/widgets/timbre.js:1223 +#.TRANS: FM (frequency modulation) synthesizer +msgid "FM synth" msgstr "" -#: js/ToneActions.js:301 -msgid "Distortion must be from 0 to 100." +#: js/blocks/ToneBlocks.js:228 +msgid "The FM synth block is a frequency modulator used to define a timbre." msgstr "" -#: js/ToneActions.js:332 -#.TRANS: partials components in a harmonic series -msgid "Partial must be greater than or equal to 0." +#: js/blocks/ToneBlocks.js:262 +msgid "partial" msgstr "" -#: js/ToneActions.js:378 -#: js/ToneActions.js:417 -#: js/ToneActions.js:456 -#: js/timbre.js:782 -msgid "Unable to use synth due to existing oscillator" +#: js/blocks/ToneBlocks.js:265 +msgid "The Partial block is used to specify a weight for a specific partial harmonic." msgstr "" -#: js/ToneActions.js:388 -#: js/ToneActions.js:427 -msgid "The input cannot be negative." +#: js/blocks/ToneBlocks.js:284 +#.TRANS: partials are weighted components in a harmonic series +msgid "Partial weight must be between 0 and 1." msgstr "" -#: js/DictActions.js:75 -#: js/DictActions.js:153 -#: js/DictActions.js:188 -msgid "font" +#: js/blocks/ToneBlocks.js:297 +#.TRANS: partials are weighted components in a harmonic series +msgid "Partial block should be used inside of a Weighted-partials block." msgstr "" -#: js/musicutils.js:363 -#: js/musicutils.js:471 -#: js/pitchdrummatrix.js:151 -#: js/musickeyboard.js:2563 -msgid "rest" +#: js/blocks/ToneBlocks.js:325 +#.TRANS: partials are weighted components in a harmonic series +msgid "weighted partials" msgstr "" -#: js/musicutils.js:565 -#.TRANS: ordinal number. Please keep exactly one space between each number. -msgid "1st 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th" +#: js/blocks/ToneBlocks.js:383 +msgid "The Harmonic block will add harmonics to the contained notes." msgstr "" -#: js/musicutils.js:629 -#: js/musicutils.js:812 -#: js/musicutils.js:911 -#.TRANS: augmented is a music term related to intervals -msgid "augmented" +#: js/blocks/ToneBlocks.js:390 +#.TRANS: A harmonic is an overtone. +msgid "harmonic" msgstr "" -#: js/musicutils.js:631 -#: js/musicutils.js:813 -#: js/musicutils.js:910 -#.TRANS: diminished is a music term related to intervals and mode -msgid "diminished" +#: js/blocks/ToneBlocks.js:431 +msgid "The Distortion block adds distortion to the pitch." msgstr "" -#: js/musicutils.js:639 -#.TRANS: twelve semi-tone scale for music -msgid "chromatic" +#: js/blocks/ToneBlocks.js:438 +#: js/widgets/timbre.js:2100 +#.TRANS: distortion is an alteration in the sound +msgid "distortion" msgstr "" -#: js/musicutils.js:640 -msgid "algerian" +#: js/blocks/ToneBlocks.js:487 +msgid "The Tremolo block adds a wavering effect." msgstr "" -#: js/musicutils.js:641 -msgid "spanish" +#: js/blocks/ToneBlocks.js:495 +#: js/widgets/timbre.js:2092 +#.TRANS: a wavering effect in a musical tone +msgid "tremolo" msgstr "" -#: js/musicutils.js:643 -#.TRANS: modal scale in music -msgid "octatonic" +#: js/blocks/ToneBlocks.js:500 +#: js/blocks/ToneBlocks.js:569 +#: js/blocks/ToneBlocks.js:630 +#: js/blocks/ToneBlocks.js:689 +#: js/widgets/timbre.js:2134 +#: js/widgets/timbre.js:2222 +#: js/widgets/timbre.js:2317 +#: js/widgets/timbre.js:2419 +#.TRANS: rate at which tremolo wavers +msgid "rate" msgstr "" -#: js/musicutils.js:645 -#.TRANS: harmonic major scale in music -msgid "harmonic major" +#: js/blocks/ToneBlocks.js:502 +#: js/blocks/ToneBlocks.js:630 +#: js/widgets/timbre.js:2137 +#: js/widgets/timbre.js:2328 +#.TRANS: amplitude of tremolo waver +msgid "depth" msgstr "" -#: js/musicutils.js:647 -#.TRANS: natural minor scales in music -msgid "natural minor" +#: js/blocks/ToneBlocks.js:559 +msgid "The Phaser block adds a sweeping sound." msgstr "" -#: js/musicutils.js:649 -#.TRANS: harmonic minor scale in music -msgid "harmonic minor" +#: js/blocks/ToneBlocks.js:566 +#: js/widgets/timbre.js:2098 +#.TRANS: alter the phase of the sound +msgid "phaser" msgstr "" -#: js/musicutils.js:651 -#.TRANS: melodic minor scale in music -msgid "melodic minor" +#: js/blocks/ToneBlocks.js:569 +#: js/turtleactions/IntervalsActions.js:114 +#: js/widgets/timbre.js:2422 +msgid "octaves" msgstr "" -#: js/musicutils.js:655 -#.TRANS: modal scale for music -msgid "dorian" +#: js/blocks/ToneBlocks.js:569 +#: js/widgets/timbre.js:2425 +msgid "base frequency" msgstr "" -#: js/musicutils.js:657 -#.TRANS: modal scale for music -msgid "phrygian" +#: js/blocks/ToneBlocks.js:619 +msgid "The Chorus block adds a chorus effect." msgstr "" -#: js/musicutils.js:659 -#.TRANS: modal scale for music -msgid "lydian" +#: js/blocks/ToneBlocks.js:627 +#: js/widgets/timbre.js:2096 +#.TRANS: musical effect to simulate a choral sound +msgid "chorus" msgstr "" -#: js/musicutils.js:661 -#.TRANS: modal scale for music -msgid "mixolydian" +#: js/blocks/ToneBlocks.js:630 +msgid "delay" msgstr "" -#: js/musicutils.js:665 -#.TRANS: modal scale for music -msgid "locrian" +#: js/blocks/ToneBlocks.js:678 +msgid "The Vibrato block adds a rapid, slight variation in pitch." msgstr "" -#: js/musicutils.js:667 -#.TRANS: minor jazz scale for music -msgid "jazz minor" +#: js/blocks/ToneBlocks.js:686 +#: js/widgets/timbre.js:2094 +#.TRANS: a rapid, slight variation in pitch +msgid "vibrato" msgstr "" -#: js/musicutils.js:669 -#.TRANS: bebop scale for music -msgid "bebop" +#: js/blocks/ToneBlocks.js:689 +#: js/widgets/timbre.js:2221 +msgid "intensity" msgstr "" -#: js/musicutils.js:670 -msgid "arabic" +#: js/blocks/ToneBlocks.js:733 +#.TRANS: select synthesizer +msgid "set synth" msgstr "" -#: js/musicutils.js:671 -msgid "byzantine" +#: js/blocks/ToneBlocks.js:804 +msgid "synth name" msgstr "" -#: js/musicutils.js:673 -#.TRANS: musical scale for music by Verdi -msgid "enigmatic" +#: js/blocks/ToneBlocks.js:842 +msgid "set default instrument" msgstr "" -#: js/musicutils.js:674 -msgid "ethiopian" +#: js/blocks/ToneBlocks.js:895 +#: js/blocks/ToneBlocks.js:943 +#.TRANS: set the characteristics of a custom instrument +msgid "set instrument" msgstr "" -#: js/musicutils.js:676 -#.TRANS: Ethiopic scale for music -msgid "geez" +#: js/blocks/ToneBlocks.js:898 +#: js/blocks/ToneBlocks.js:926 +#: js/blocks/ToneBlocks.js:932 +msgid "The Set instrument block selects a voice for the synthesizer," msgstr "" -#: js/musicutils.js:677 -msgid "hindu" +#: js/blocks/ToneBlocks.js:900 +#: js/blocks/ToneBlocks.js:934 +msgid "eg guitar piano violin or cello." msgstr "" -#: js/musicutils.js:678 -msgid "hungarian" +#: js/blocks/ToneBlocks.js:1015 +msgid "Import a sound file to use as an instrument and set its pitch center." msgstr "" -#: js/musicutils.js:680 -#.TRANS: minor Romanian scale for music -msgid "romanian minor" +#: js/blocks/ToneBlocks.js:1110 +msgid "Upload a sound file to connect with the sample block." msgstr "" -#: js/musicutils.js:681 -msgid "spanish gypsy" +#: js/blocks/VolumeBlocks.js:35 +msgid "synth volume" msgstr "" -#: js/musicutils.js:683 -#.TRANS: musical scale for Mid-Eastern music -msgid "maqam" +#: js/blocks/VolumeBlocks.js:39 +msgid "The Synth volume block returns the current volume of the current synthesizer." msgstr "" -#: js/musicutils.js:685 -#.TRANS: minor blues scale for music -msgid "minor blues" +#: js/blocks/VolumeBlocks.js:105 +msgid "master volume" msgstr "" -#: js/musicutils.js:687 -#.TRANS: major blues scale for music -msgid "major blues" +#: js/blocks/VolumeBlocks.js:109 +msgid "The Master volume block returns the master volume." msgstr "" -#: js/musicutils.js:688 -msgid "whole tone" +#: js/blocks/VolumeBlocks.js:355 +#: js/blocks/VolumeBlocks.js:524 +msgid "set synth volume" msgstr "" -#: js/musicutils.js:690 -#.TRANS: pentatonic is a general term that means "five note scale". This scale is typically known as "minor pentatonic" -msgid "minor pentatonic" +#: js/blocks/VolumeBlocks.js:362 +#: js/blocks/VolumeBlocks.js:545 +msgid "synth" msgstr "" -#: js/musicutils.js:692 -#.TRANS: pentatonic is a general term that means "five note scale". This scale is typically known as "major pentatonic" -msgid "major pentatonic" +#: js/blocks/VolumeBlocks.js:403 +#: js/blocks/VolumeBlocks.js:577 +#: js/blocks/VolumeBlocks.js:740 +#: js/turtleactions/VolumeActions.js:173 +msgid "Setting volume to 0." msgstr "" -#: js/musicutils.js:693 -msgid "chinese" +#: js/blocks/VolumeBlocks.js:440 +msgid "Synth not found" msgstr "" -#: js/musicutils.js:694 -msgid "egyptian" +#: js/blocks/VolumeBlocks.js:494 +msgid "set drum volume" msgstr "" -#: js/musicutils.js:696 -#.TRANS: https://en.wikipedia.org/wiki/Hirajoshi_scale NOTE: There are three different versions of this scale -msgid "hirajoshi" +#: js/blocks/VolumeBlocks.js:530 +msgid "The Set synth volume block will change the volume of a particular synth," msgstr "" -#: js/musicutils.js:697 -msgid "Japan" +#: js/blocks/VolumeBlocks.js:532 +msgid "eg guitar violin snare drum etc." msgstr "" -#: js/musicutils.js:699 -#.TRANS: https://en.wikipedia.org/wiki/In_scale and https://en.wikipedia.org/wiki/Sakura_Sakura -msgid "in" +#: js/blocks/VolumeBlocks.js:534 +msgid "The default volume is 50." msgstr "" -#: js/musicutils.js:701 -#.TRANS: https://en.wikipedia.org/wiki/Miny%C5%8D_scale -msgid "minyo" +#: js/blocks/VolumeBlocks.js:536 +msgid "The range is 0 for silence to 100 for full volume." msgstr "" -#: js/musicutils.js:703 -#.TRANS: Italian mathematician -msgid "fibonacci" +#: js/blocks/VolumeBlocks.js:597 +msgid "set panning" msgstr "" -#: js/musicutils.js:708 -#: js/musicutils.js:1106 -#.TRANS: lowpass filter -msgid "lowpass" +#: js/blocks/VolumeBlocks.js:603 +msgid "The Set Panning block sets the panning for all synthesizers." msgstr "" -#: js/musicutils.js:710 -#: js/musicutils.js:1107 -#.TRANS: bandpass filter -msgid "bandpass" +#: js/blocks/VolumeBlocks.js:625 +msgid "Warning: Sound is coming out from only the left or right side." msgstr "" -#: js/musicutils.js:712 -#: js/musicutils.js:1108 -#.TRANS: high-shelf filter -msgid "highshelf" +#: js/blocks/VolumeBlocks.js:647 +#: js/blocks/VolumeBlocks.js:695 +msgid "set master volume" msgstr "" -#: js/musicutils.js:714 -#: js/musicutils.js:1109 -#.TRANS: low-shelf filter -msgid "lowshelf" +#: js/blocks/VolumeBlocks.js:653 +msgid "The Set master volume block sets the volume for all synthesizers." msgstr "" -#: js/musicutils.js:716 -#: js/musicutils.js:1110 -#.TRANS: notch-shelf filter -msgid "notch" +#: js/blocks/VolumeBlocks.js:784 +msgid "The Set relative volume block changes the volume of the contained notes." msgstr "" -#: js/musicutils.js:718 -#: js/musicutils.js:1111 -#.TRANS: all-pass filter -msgid "allpass" +#: js/blocks/VolumeBlocks.js:791 +msgid "set relative volume" msgstr "" -#: js/musicutils.js:720 -#: js/musicutils.js:1112 -#.TRANS: peaking filter -msgid "peaking" +#: js/blocks/VolumeBlocks.js:857 +msgid "decrescendo" msgstr "" -#: js/musicutils.js:731 -#: js/synthutils.js:58 -#.TRANS: musical instrument -msgid "violin" +#: js/blocks/VolumeBlocks.js:921 +msgid "crescendo" msgstr "" -#: js/musicutils.js:732 -#: js/synthutils.js:60 -#.TRANS: viola musical instrument -msgid "viola" +#: js/blocks/WidgetBlocks.js:81 +#.TRANS: sound envelope (ADSR) +msgid "envelope" msgstr "" -#: js/musicutils.js:733 -#: js/synthutils.js:98 -#.TRANS: xylophone musical instrument -msgid "xylophone" +#: js/blocks/WidgetBlocks.js:89 +#.TRANS: Attack time is the time taken for initial run-up of level from nil to peak, beginning when the key is first pressed. +msgid "attack" msgstr "" -#: js/musicutils.js:734 -#: js/synthutils.js:120 -#.TRANS: vibraphone musical instrument -msgid "vibraphone" +#: js/blocks/WidgetBlocks.js:91 +#.TRANS: Decay time is the time taken for the subsequent run down from the attack level to the designated sustain level. +msgid "decay" msgstr "" -#: js/musicutils.js:735 -#: js/synthutils.js:62 -#.TRANS: musical instrument -msgid "cello" +#: js/blocks/WidgetBlocks.js:93 +#.TRANS: Sustain level is the level during the main sequence of the sound's duration, until the key is released. +msgid "sustain" msgstr "" -#: js/musicutils.js:737 -#: js/synthutils.js:66 -#.TRANS: viola musical instrument -msgid "double bass" +#: js/blocks/WidgetBlocks.js:95 +#.TRANS: Release time is the time taken for the level to decay from the sustain level to zero after the key is released. +msgid "release" msgstr "" -#: js/musicutils.js:738 -#: js/synthutils.js:68 -#: js/rhythmruler.js:2119 -#.TRANS: musical instrument -msgid "guitar" +#: js/blocks/WidgetBlocks.js:113 +msgid "Attack value should be from 0 to 100." msgstr "" -#: js/musicutils.js:739 -#: js/synthutils.js:70 -#.TRANS: musical instrument -msgid "acoustic guitar" +#: js/blocks/WidgetBlocks.js:116 +msgid "Decay value should be from 0 to 100." msgstr "" -#: js/musicutils.js:740 -#: js/synthutils.js:72 -#.TRANS: musical instrument -msgid "flute" +#: js/blocks/WidgetBlocks.js:119 +msgid "Sustain value should be from 0 to 100." msgstr "" -#: js/musicutils.js:741 -#: js/synthutils.js:74 -#.TRANS: musical instrument -msgid "clarinet" +#: js/blocks/WidgetBlocks.js:122 +msgid "Release value should be from 0-100." msgstr "" -#: js/musicutils.js:742 -#: js/synthutils.js:76 -#.TRANS: musical instrument -msgid "saxophone" +#: js/blocks/WidgetBlocks.js:140 +msgid "You are adding multiple envelope blocks." msgstr "" -#: js/musicutils.js:743 -#: js/synthutils.js:78 -#.TRANS: musical instrument -msgid "tuba" +#: js/blocks/WidgetBlocks.js:171 +#.TRANS: a filter removes some unwanted components from a signal +msgid "filter" msgstr "" -#: js/musicutils.js:744 -#: js/synthutils.js:80 -#.TRANS: musical instrument -msgid "trumpet" +#: js/blocks/WidgetBlocks.js:181 +#: js/widgets/timbre.js:1818 +#.TRANS: rolloff is the steepness of a change in frequency. +msgid "rolloff" msgstr "" -#: js/musicutils.js:745 -#: js/synthutils.js:82 -#.TRANS: musical instrument -msgid "oboe" +#: js/blocks/WidgetBlocks.js:213 +#.TRANS: rolloff is the steepness of a change in frequency. +msgid "Rolloff value should be either -12, -24, -48, or -96 decibels/octave." msgstr "" -#: js/musicutils.js:746 -#: js/synthutils.js:84 -#.TRANS: musical instrument -msgid "trombone" +#: js/blocks/WidgetBlocks.js:252 +msgid "The Temperament tool is used to define custom tuning." msgstr "" -#: js/musicutils.js:747 -#: js/synthutils.js:100 -#.TRANS: polytone synthesizer -msgid "electronic synth" +#: js/blocks/WidgetBlocks.js:332 +#: js/blocks/WidgetBlocks.js:1573 +#: js/widgets/sampler.js:547 +msgid "Upload a sample and adjust its pitch center." msgstr "" -#: js/musicutils.js:748 -#: js/synthutils.js:102 -#.TRANS: simple monotone synthesizer -msgid "simple 1" +#: js/blocks/WidgetBlocks.js:339 +#.TRANS: the speed at music is should be played. +msgid "sampler" +msgstr "" + +#: js/blocks/WidgetBlocks.js:517 +msgid "The Meter block opens a tool to select strong beats for the meter." msgstr "" -#: js/musicutils.js:749 -msgid "simple 2" +#: js/blocks/WidgetBlocks.js:573 +msgid "The oscilloscope block opens a tool to visualize waveforms." msgstr "" -#: js/musicutils.js:750 -msgid "simple 3" +#: js/blocks/WidgetBlocks.js:578 +msgid "oscilloscope" msgstr "" -#: js/musicutils.js:751 -msgid "simple 4" +#: js/blocks/WidgetBlocks.js:645 +msgid "The Custom mode block opens a tool to explore musical mode (the spacing of the notes in a scale)." msgstr "" -#: js/musicutils.js:753 -#: js/synthutils.js:49 -#.TRANS: brown noise synthesizer -msgid "brown noise" +#: js/blocks/WidgetBlocks.js:651 +#.TRANS: musical mode is the pattern of half-steps in an octave, e.g., Major or Minor modes +msgid "custom mode" msgstr "" -#: js/musicutils.js:754 -#: js/synthutils.js:51 -#.TRANS: pink noise synthesizer -msgid "pink noise" +#: js/blocks/WidgetBlocks.js:700 +msgid "The Tempo block opens a metronome to visualize the beat." msgstr "" -#: js/musicutils.js:756 -#: js/synthutils.js:127 -#: js/rhythmruler.js:1670 -#: js/rhythmruler.js:1928 -#.TRANS: musical instrument -msgid "snare drum" +#: js/blocks/WidgetBlocks.js:762 +msgid "The Arpeggio Widget is used to compose chord sequences." msgstr "" -#: js/musicutils.js:757 -#: js/synthutils.js:129 -#.TRANS: musical instrument -msgid "kick drum" +#: js/blocks/WidgetBlocks.js:837 +msgid "The Pitch drum matrix is used to map pitches to drum sounds." msgstr "" -#: js/musicutils.js:758 -#: js/synthutils.js:131 -#.TRANS: musical instrument -msgid "tom tom" +#: js/blocks/WidgetBlocks.js:842 +#.TRANS: makes a mapping between pitches and drum sounds +msgid "pitch-drum mapper" msgstr "" -#: js/musicutils.js:759 -#: js/synthutils.js:133 -#.TRANS: musical instrument -msgid "floor tom" +#: js/blocks/WidgetBlocks.js:891 +msgid "You must have at least one pitch block and one drum block in the matrix." msgstr "" -#: js/musicutils.js:760 -#: js/synthutils.js:135 -#.TRANS: musical instrument -msgid "bass drum" +#: js/blocks/WidgetBlocks.js:920 +msgid "The Pitch slider tool to is used to generate pitches at selected frequencies." msgstr "" -#: js/musicutils.js:761 -#: js/synthutils.js:137 -#.TRANS: a drum made from an inverted cup -msgid "cup drum" +#: js/blocks/WidgetBlocks.js:925 +#.TRANS: widget to generate pitches using a slider +msgid "pitch slider" msgstr "" -#: js/musicutils.js:762 -#: js/synthutils.js:139 -#.TRANS: musical instrument -msgid "darbuka drum" +#: js/blocks/WidgetBlocks.js:977 +msgid "chromatic keyboard" msgstr "" -#: js/musicutils.js:763 -#: js/synthutils.js:143 -#.TRANS: musical instrument -msgid "hi hat" +#: js/blocks/WidgetBlocks.js:1011 +#: js/blocks/WidgetBlocks.js:1077 +#.TRANS: widget to generate pitches using a slider +msgid "music keyboard" msgstr "" -#: js/musicutils.js:764 -#: js/synthutils.js:145 -#.TRANS: a small metal bell -msgid "ride bell" +#: js/blocks/WidgetBlocks.js:1062 +#: js/blocks/WidgetBlocks.js:1069 +msgid "The Music keyboard block opens a piano keyboard that can be used to create notes." msgstr "" -#: js/musicutils.js:765 -#: js/synthutils.js:147 -#.TRANS: musical instrument -msgid "cow bell" +#: js/blocks/WidgetBlocks.js:1128 +msgid "The Pitch staircase tool to is used to generate pitches from a given ratio." msgstr "" -#: js/musicutils.js:766 -msgid "japanese drum" +#: js/blocks/WidgetBlocks.js:1135 +#.TRANS: generate a progressive sequence of pitches +msgid "pitch staircase" msgstr "" -#: js/musicutils.js:767 -#: js/synthutils.js:153 -#.TRANS: musical instrument -msgid "japanese bell" +#: js/blocks/WidgetBlocks.js:1222 +msgid "The Rhythm Maker block opens a tool to create drum machines." msgstr "" -#: js/musicutils.js:768 -#: js/synthutils.js:149 -#.TRANS: musical instrument -msgid "triangle bell" +#: js/blocks/WidgetBlocks.js:1291 +msgid "G major scale" msgstr "" -#: js/musicutils.js:769 -#: js/synthutils.js:151 -#.TRANS: musical instrument -msgid "finger cymbals" +#: js/blocks/WidgetBlocks.js:1326 +msgid "C major scale" msgstr "" -#: js/musicutils.js:770 -#: js/synthutils.js:155 -#.TRANS: a musically tuned set of bells -msgid "chime" +#: js/blocks/WidgetBlocks.js:1366 +msgid "The Phrase Maker block opens a tool to create musical phrases." msgstr "" -#: js/musicutils.js:771 -#: js/synthutils.js:157 -#.TRANS: a musical instrument -msgid "gong" +#: js/blocks/WidgetBlocks.js:1373 +#.TRANS: assigns pitch to a sequence of beats to generate a melody +msgid "phrase maker" msgstr "" -#: js/musicutils.js:772 -#: js/synthutils.js:159 -#.TRANS: sound effect -msgid "clang" +#: js/blocks/WidgetBlocks.js:1444 +msgid "You must have at least one pitch block and one rhythm block in the matrix." msgstr "" -#: js/musicutils.js:773 -#: js/synthutils.js:161 -#.TRANS: sound effect -msgid "crash" +#: js/blocks/WidgetBlocks.js:1503 +msgid "The Status block opens a tool for inspecting the status of Music Blocks as it is running." msgstr "" -#: js/musicutils.js:774 -#: js/synthutils.js:163 -#.TRANS: sound effect -msgid "bottle" +#: js/blocks/WidgetBlocks.js:1580 +#.TRANS: AI-generated music +msgid "aimusic" msgstr "" -#: js/musicutils.js:775 -#: js/synthutils.js:165 -#.TRANS: sound effect -msgid "clap" +#: js/turtleactions/MeterActions.js:101 +#: js/turtleactions/MeterActions.js:139 +msgid "beats per minute must be greater than" msgstr "" -#: js/musicutils.js:776 -#: js/synthutils.js:167 -#.TRANS: sound effect -msgid "slap" +#: js/turtleactions/MeterActions.js:111 +#: js/turtleactions/MeterActions.js:149 +msgid "maximum" msgstr "" -#: js/musicutils.js:777 -#: js/synthutils.js:169 -#.TRANS: sound effect -msgid "splash" +#: js/turtleactions/MeterActions.js:117 +#: js/turtleactions/MeterActions.js:155 +msgid "beats per minute is" msgstr "" -#: js/musicutils.js:778 -#: js/synthutils.js:171 -#.TRANS: sound effect -msgid "bubbles" +#: js/turtleactions/DictActions.js:75 +#: js/turtleactions/DictActions.js:142 +#: js/turtleactions/DictActions.js:172 +msgid "font" msgstr "" -#: js/musicutils.js:779 -#: js/synthutils.js:173 -#.TRANS: sound effect -msgid "raindrop" +#: js/turtleactions/DictActions.js:255 +msgid "Dictionary with this name does not exist" msgstr "" -#: js/musicutils.js:780 -#: js/synthutils.js:175 -#.TRANS: animal sound effect -msgid "cat" +#: js/turtleactions/DictActions.js:259 +msgid "Key with this name does not exist in " msgstr "" -#: js/musicutils.js:781 -#: js/synthutils.js:177 -#.TRANS: animal sound effect -msgid "cricket" +#: js/turtleactions/DrumActions.js:227 +msgid "Noise Block: Did you mean to use a Note block?" msgstr "" -#: js/musicutils.js:782 -#: js/synthutils.js:179 -#.TRANS: animal sound effect -msgid "dog" +#: js/turtleactions/IntervalsActions.js:113 +msgid "one" msgstr "" -#: js/musicutils.js:784 -#: js/synthutils.js:86 -#.TRANS: musical instrument -msgid "banjo" +#: js/turtleactions/IntervalsActions.js:113 +msgid "two" msgstr "" -#: js/musicutils.js:785 -#: js/synthutils.js:88 -#.TRANS: musical instrument -msgid "koto" +#: js/turtleactions/IntervalsActions.js:113 +msgid "three" msgstr "" -#: js/musicutils.js:786 -#: js/synthutils.js:90 -#.TRANS: musical instrument -msgid "dulcimer" +#: js/turtleactions/IntervalsActions.js:113 +msgid "four" msgstr "" -#: js/musicutils.js:787 -#: js/synthutils.js:92 -#.TRANS: musical instrument -msgid "electric guitar" +#: js/turtleactions/IntervalsActions.js:113 +msgid "five" msgstr "" -#: js/musicutils.js:788 -#: js/synthutils.js:94 -#.TRANS: musical instrument -msgid "bassoon" +#: js/turtleactions/IntervalsActions.js:113 +msgid "six" msgstr "" -#: js/musicutils.js:789 -#: js/synthutils.js:96 -#.TRANS: musical instrument -msgid "celeste" +#: js/turtleactions/IntervalsActions.js:113 +msgid "seven" msgstr "" -#: js/musicutils.js:791 -#: js/musicutils.js:1123 -#: js/musicutils.js:1131 -#: js/temperament.js:650 -#.TRANS: musical temperament -msgid "equal" +#: js/turtleactions/IntervalsActions.js:113 +msgid "eight" msgstr "" -#: js/musicutils.js:793 -#: js/musicutils.js:1125 -#: js/musicutils.js:1133 -#.TRANS: musical temperament -msgid "Pythagorean" +#: js/turtleactions/IntervalsActions.js:113 +msgid "nine" msgstr "" -#: js/musicutils.js:795 -#: js/musicutils.js:1124 -#: js/musicutils.js:1132 -#.TRANS: musical temperament -msgid "just intonation" +#: js/turtleactions/IntervalsActions.js:119 +msgid "a" msgstr "" -#: js/musicutils.js:797 -#: js/musicutils.js:1126 -#: js/musicutils.js:1127 -#: js/musicutils.js:1134 -#: js/musicutils.js:1135 -#.TRANS: musical temperament -msgid "meantone" +#: js/turtleactions/IntervalsActions.js:120 +msgid "below" msgstr "" -#: js/musicutils.js:814 -msgid "major 7th" +#: js/turtleactions/IntervalsActions.js:124 +msgid "above" msgstr "" -#: js/musicutils.js:815 -msgid "minor 7th" +#: js/turtleactions/IntervalsActions.js:131 +msgid "plus" msgstr "" -#: js/musicutils.js:816 -msgid "dominant 7th" +#: js/turtleactions/IntervalsActions.js:139 +msgid " below" msgstr "" -#: js/musicutils.js:817 -msgid "minor-major 7th" +#: js/turtleactions/IntervalsActions.js:257 +msgid "Adding missing pitch number 0." msgstr "" -#: js/musicutils.js:818 -msgid "fully-diminished 7th" +#: js/turtleactions/IntervalsActions.js:265 +msgid "Ignoring pitch numbers less than zero or greater than eleven." msgstr "" -#: js/musicutils.js:819 -msgid "half-diminished 7th" +#: js/turtleactions/IntervalsActions.js:271 +msgid "Ignoring duplicate pitch numbers." msgstr "" -#: js/musicutils.js:4379 -#: js/musicutils.js:4416 -msgid "current" +#: js/turtleactions/ToneActions.js:134 +msgid "Vibrato intensity must be between 1 and 100." msgstr "" -#: js/musicutils.js:4382 -#: js/musicutils.js:4407 -msgid "next" +#: js/turtleactions/ToneActions.js:139 +msgid "Vibrato rate must be greater than 0." msgstr "" -#: js/musicutils.js:4385 -#: js/musicutils.js:4412 -msgid "previous" +#: js/turtleactions/ToneActions.js:192 +#: js/turtleactions/ToneActions.js:265 +#.TRANS: Depth is the intesity of the tremolo or chorus effect. +msgid "Depth is out of range." msgstr "" -#: js/synthutils.js:104 -#.TRANS: simple monotone synthesizer -msgid "simple-2" +#: js/turtleactions/ToneActions.js:301 +msgid "Distortion must be from 0 to 100." msgstr "" -#: js/synthutils.js:106 -#.TRANS: simple monotone synthesizer -msgid "simple-3" +#: js/turtleactions/ToneActions.js:332 +#.TRANS: partials components in a harmonic series +msgid "Partial must be greater than or equal to 0." msgstr "" -#: js/synthutils.js:108 -#.TRANS: simple monotone synthesizer -msgid "simple-4" +#: js/turtleactions/ToneActions.js:378 +#: js/turtleactions/ToneActions.js:417 +#: js/turtleactions/ToneActions.js:456 +#: js/widgets/timbre.js:782 +msgid "Unable to use synth due to existing oscillator" msgstr "" -#: js/synthutils.js:141 -#.TRANS: musical instrument -msgid "taiko" +#: js/turtleactions/ToneActions.js:388 +#: js/turtleactions/ToneActions.js:427 +msgid "The input cannot be negative." msgstr "" -#: js/modewidget.js:86 -#: js/modewidget.js:88 -#: js/modewidget.js:642 -#: js/modewidget.js:644 -#: js/modewidget.js:712 -#: js/modewidget.js:714 -#: js/temperament.js:2078 -#: js/rhythmruler.js:189 -#: js/rhythmruler.js:1410 -#: js/rhythmruler.js:1412 -#: js/rhythmruler.js:1435 -#: js/rhythmruler.js:1437 -#: js/meterwidget.js:89 -#: js/meterwidget.js:91 +#: js/widgets/modewidget.js:86 +#: js/widgets/modewidget.js:88 +#: js/widgets/modewidget.js:642 +#: js/widgets/modewidget.js:644 +#: js/widgets/modewidget.js:712 +#: js/widgets/modewidget.js:714 +#: js/widgets/meterwidget.js:194 +#: js/widgets/meterwidget.js:196 +#: js/widgets/temperament.js:2236 +#: js/widgets/rhythmruler.js:457 +#: js/widgets/rhythmruler.js:1790 +#: js/widgets/rhythmruler.js:1792 +#: js/widgets/rhythmruler.js:1816 +#: js/widgets/rhythmruler.js:1818 msgid "Play all" msgstr "" -#: js/modewidget.js:115 -#: js/pitchstaircase.js:641 -#: js/phrasemaker.js:339 -#: js/pitchdrummatrix.js:94 -#: js/pitchslider.js:125 -#: js/temperament.js:2083 -#: js/musickeyboard.js:530 -#: js/timbre.js:756 -#: js/meterwidget.js:124 -#: js/arpeggio.js:103 +#: js/widgets/modewidget.js:115 +#: js/widgets/meterwidget.js:229 +#: js/widgets/pitchdrummatrix.js:166 +#: js/widgets/pitchslider.js:125 +#: js/widgets/pitchstaircase.js:641 +#: js/widgets/temperament.js:2244 +#: js/widgets/timbre.js:756 +#: js/widgets/arpeggio.js:103 +#: js/widgets/musickeyboard.js:688 +#: js/widgets/phrasemaker.js:550 msgid "Save" msgstr "" -#: js/modewidget.js:121 -#: js/pitchstaircase.js:686 -#: js/phrasemaker.js:356 -#: js/pitchdrummatrix.js:109 -#: js/musickeyboard.js:534 -#: js/rhythmruler.js:269 -#: js/arpeggio.js:118 +#: js/widgets/modewidget.js:121 +#: js/widgets/pitchdrummatrix.js:181 +#: js/widgets/pitchstaircase.js:686 +#: js/widgets/arpeggio.js:118 +#: js/widgets/musickeyboard.js:696 +#: js/widgets/phrasemaker.js:567 +#: js/widgets/rhythmruler.js:601 #.TRANS: clear all subdivisions from the ruler. msgid "Clear" msgstr "" -#: js/modewidget.js:127 +#: js/widgets/modewidget.js:127 msgid "Rotate counter clockwise" msgstr "" -#: js/modewidget.js:133 +#: js/widgets/modewidget.js:133 msgid "Rotate clockwise" msgstr "" -#: js/modewidget.js:139 +#: js/widgets/modewidget.js:139 msgid "Invert" msgstr "" -#: js/modewidget.js:145 -#: js/pitchstaircase.js:678 -#: js/rhythmruler.js:258 -#: js/timbre.js:963 +#: js/widgets/modewidget.js:145 +#: js/widgets/pitchstaircase.js:678 +#: js/widgets/timbre.js:963 +#: js/widgets/rhythmruler.js:578 msgid "Undo" msgstr "" -#: js/modewidget.js:163 +#: js/widgets/modewidget.js:163 #.TRANS: A circle of notes represents the musical mode. msgid "Click in the circle to select notes for the mode." msgstr "" -#: js/modewidget.js:1017 -#: js/pitchstaircase.js:580 -#: js/phrasemaker.js:4855 -#: js/temperament.js:1754 -#: js/rhythmruler.js:1865 -#: js/rhythmruler.js:2081 -#: js/tempo.js:414 +#: js/widgets/modewidget.js:1017 +#: js/widgets/pitchstaircase.js:580 +#: js/widgets/temperament.js:1929 +#: js/widgets/tempo.js:414 +#: js/widgets/phrasemaker.js:5356 +#: js/widgets/rhythmruler.js:2254 +#: js/widgets/rhythmruler.js:2472 msgid "New action block generated!" msgstr "" -#: js/oscilloscope.js:79 -msgid "Zoom In" -msgstr "" - -#: js/oscilloscope.js:88 -msgid "Zoom Out" -msgstr "" - -#: js/pitchstaircase.js:624 -msgid "Play chord" -msgstr "" - -#: js/pitchstaircase.js:632 -msgid "Play scale" +#: js/widgets/meterwidget.js:275 +msgid "Reset" msgstr "" -#: js/pitchstaircase.js:696 -msgid "Click on a note to create a new step." +#: js/widgets/meterwidget.js:301 +msgid "Click in the circle to select strong beats for the meter." msgstr "" -#: js/phrasemaker.js:363 -msgid "Export" +#: js/widgets/oscilloscope.js:79 +msgid "Zoom In" msgstr "" -#: js/phrasemaker.js:370 -msgid "Sort" +#: js/widgets/oscilloscope.js:88 +msgid "Zoom Out" msgstr "" -#: js/phrasemaker.js:373 -#: js/musickeyboard.js:559 -msgid "Add note" +#: js/widgets/pitchdrummatrix.js:356 +#: js/widgets/pitchdrummatrix.js:752 +msgid "Click in the grid to map notes to drums." msgstr "" -#: js/phrasemaker.js:764 -msgid "Click on the table to add notes." +#: js/widgets/pitchslider.js:103 +msgid "Move up" msgstr "" -#: js/phrasemaker.js:2414 -#: js/phrasemaker.js:2543 -msgid "tuplet value" +#: js/widgets/pitchslider.js:114 +msgid "Move down" msgstr "" -#: js/pitchdrummatrix.js:270 -#: js/pitchdrummatrix.js:639 -msgid "Click in the grid to map notes to drums." +#: js/widgets/pitchslider.js:136 +msgid "Click on the slider to create a note block." msgstr "" -#: js/pitchslider.js:103 -msgid "Move up" +#: js/widgets/pitchstaircase.js:624 +msgid "Play chord" msgstr "" -#: js/pitchslider.js:114 -msgid "Move down" +#: js/widgets/pitchstaircase.js:632 +msgid "Play scale" msgstr "" -#: js/pitchslider.js:136 -msgid "Click on the slider to create a note block." +#: js/widgets/pitchstaircase.js:696 +msgid "Click on a note to create a new step." msgstr "" -#: js/temperament.js:215 +#: js/widgets/temperament.js:321 msgid "back to 2:1 octave space" msgstr "" -#: js/temperament.js:323 +#: js/widgets/temperament.js:447 msgid "edit" msgstr "" -#: js/temperament.js:330 -#: js/temperament.js:332 -#: js/temperament.js:1336 -#: js/temperament.js:1338 +#: js/widgets/temperament.js:454 +#: js/widgets/temperament.js:456 +#: js/widgets/temperament.js:1493 +#: js/widgets/temperament.js:1495 msgid "close" msgstr "" -#: js/temperament.js:423 -#: js/temperament.js:736 -#: js/temperament.js:743 -#: js/temperament.js:845 -#: js/temperament.js:935 -#: js/temperament.js:942 -#: js/temperament.js:1015 -#: js/temperament.js:1284 -#: js/temperament.js:1354 -#: js/temperament.js:1430 +#: js/widgets/temperament.js:552 +#: js/widgets/temperament.js:877 +#: js/widgets/temperament.js:884 +#: js/widgets/temperament.js:986 +#: js/widgets/temperament.js:1080 +#: js/widgets/temperament.js:1087 +#: js/widgets/temperament.js:1160 +#: js/widgets/temperament.js:1433 +#: js/widgets/temperament.js:1511 +#: js/widgets/temperament.js:1596 msgid "done" msgstr "" -#: js/temperament.js:477 -#: js/temperament.js:482 -#: js/temperament.js:918 +#: js/widgets/temperament.js:610 +#: js/widgets/temperament.js:615 +#: js/widgets/temperament.js:1063 msgid "ratio" msgstr "" -#: js/temperament.js:483 +#: js/widgets/temperament.js:616 msgid "interval" msgstr "" -#: js/temperament.js:611 +#: js/widgets/temperament.js:744 msgid "non scalar" msgstr "" -#: js/temperament.js:650 +#: js/widgets/temperament.js:787 msgid "ratios" msgstr "" -#: js/temperament.js:650 +#: js/widgets/temperament.js:787 msgid "arbitrary" msgstr "" -#: js/temperament.js:719 +#: js/widgets/temperament.js:860 msgid "number of divisions" msgstr "" -#: js/temperament.js:741 -#: js/temperament.js:858 -#: js/temperament.js:940 -#: js/temperament.js:1033 +#: js/widgets/temperament.js:882 +#: js/widgets/temperament.js:999 +#: js/widgets/temperament.js:1085 +#: js/widgets/temperament.js:1178 msgid "preview" msgstr "" -#: js/temperament.js:788 +#: js/widgets/temperament.js:929 msgid "The Number of divisions is too large." msgstr "" -#: js/temperament.js:921 +#: js/widgets/temperament.js:1066 msgid "recursion" msgstr "" -#: js/temperament.js:1450 +#: js/widgets/temperament.js:1616 msgid "The octave ratio has changed. This changes temperament significantly." msgstr "" -#: js/temperament.js:2087 +#: js/widgets/temperament.js:2248 msgid "Table" msgstr "" -#: js/temperament.js:2185 +#: js/widgets/temperament.js:2356 msgid "Add pitches" msgstr "" -#: js/musickeyboard.js:570 -msgid "Metronome" +#: js/widgets/tempo.js:78 +#: js/widgets/tempo.js:97 +#: js/widgets/tempo.js:99 +#: js/widgets/aiwidget.js:134 +#: js/widgets/aiwidget.js:136 +#: js/widgets/rhythmruler.js:681 +#: js/widgets/rhythmruler.js:683 +#: js/widgets/rhythmruler.js:1864 +#: js/widgets/rhythmruler.js:1866 +#: js/widgets/sampler.js:180 +#: js/widgets/sampler.js:182 +msgid "Pause" msgstr "" -#: js/musickeyboard.js:1296 -#: plugins/rodi.rtp:193 -msgid "duration" -msgstr "lujuéeu'" +#: js/widgets/tempo.js:113 +msgid "Save tempo" +msgstr "" -#: js/musickeyboard.js:2840 -msgid "New action blocks generated!" +#: js/widgets/tempo.js:144 +msgid "speed up" msgstr "" -#: js/musickeyboard.js:2841 -msgid "New action block generated" +#: js/widgets/tempo.js:150 +msgid "slow down" msgstr "" -#: js/musickeyboard.js:2984 -#: js/musickeyboard.js:2992 -msgid "MIDI device present." +#: js/widgets/tempo.js:194 +msgid "Adjust the tempo with the buttons." msgstr "" -#: js/musickeyboard.js:2995 -msgid "No MIDI device found." +#: js/widgets/tempo.js:261 +msgid "Please enter a number between 30 and 1000" msgstr "" -#: js/musickeyboard.js:3000 -msgid "Failed to get MIDI access in browser." +#: js/widgets/tempo.js:268 +#: js/widgets/tempo.js:271 +msgid "The beats per minute must be between 30 and 1000." msgstr "" -#: js/rhythmruler.js:202 -msgid "Save rhythms" +#: js/widgets/tempo.js:287 +msgid "The beats per minute must be below 1000." msgstr "" -#: js/rhythmruler.js:222 -msgid "Save drum machine" +#: js/widgets/tempo.js:303 +msgid "The beats per minute must be above 30" msgstr "" -#: js/rhythmruler.js:263 -#.TRANS: user can tap out a rhythm by clicking on a ruler. -msgid "Tap a rhythm" +#: js/widgets/timbre.js:766 +msgid "Synthesizer" msgstr "" -#: js/rhythmruler.js:342 -#: js/rhythmruler.js:344 -#: js/rhythmruler.js:1481 -#: js/rhythmruler.js:1483 -#: js/sampler.js:110 -#: js/sampler.js:112 -#: js/tempo.js:78 -#: js/tempo.js:97 -#: js/tempo.js:99 -msgid "Pause" +#: js/widgets/timbre.js:789 +msgid "Oscillator" msgstr "" -#: js/rhythmruler.js:478 -msgid "Click on the ruler to divide it." +#: js/widgets/timbre.js:840 +msgid "Envelope" msgstr "" -#: js/rhythmruler.js:603 -#: js/rhythmruler.js:605 -#: js/rhythmruler.js:804 -#: js/rhythmruler.js:806 -#: js/rhythmruler.js:1386 -#: js/rhythmruler.js:1388 -msgid "tap a rhythm" +#: js/widgets/timbre.js:886 +#: planet/js/GlobalTag.js:50 +#.TRANS: On the Planet, we use labels to tag projects. +msgid "Effects" msgstr "" -#: js/rhythmruler.js:1084 -msgid "Maximum value of 256 has been exceeded." +#: js/widgets/timbre.js:904 +msgid "Filter" msgstr "" -#: js/sampler.js:137 -msgid "Warning: Sample is bigger than 1MB." +#: js/widgets/timbre.js:946 +msgid "Add filter" msgstr "" -#: js/sampler.js:142 -msgid "Upload failed: Sample is not a .wav file." +#: js/widgets/timbre.js:987 +msgid "Click on buttons to open the timbre design tools." msgstr "" -#: js/sampler.js:164 -msgid "A new sample block was generated." +#: js/widgets/timbre.js:1273 +msgid "harmonicity" msgstr "" -#: js/sampler.js:255 -msgid "Upload sample" +#: js/widgets/timbre.js:1340 +#: js/widgets/timbre.js:1406 +msgid "modulation index" msgstr "" -#: js/sampler.js:306 -msgid "Save sample" +#: js/widgets/timbre.js:1484 +msgid "vibrato amount" msgstr "" -#: js/sampler.js:697 -#.TRANS: The reference tone is a sound used for comparison. -msgid "reference tone" +#: js/widgets/timbre.js:1919 +msgid "Filter already present." msgstr "" -#: js/tempo.js:113 -msgid "Save tempo" +#: js/widgets/timbre.js:2322 +msgid "delay (MS)" msgstr "" -#: js/tempo.js:144 -msgid "speed up" +#: js/widgets/timbre.js:2507 +msgid "distortion amount" msgstr "" -#: js/tempo.js:150 -msgid "slow down" +#: js/widgets/aiwidget.js:180 +#: js/widgets/sampler.js:227 +msgid "Warning: Sample is bigger than 1MB." msgstr "" -#: js/tempo.js:194 -msgid "Adjust the tempo with the buttons." +#: js/widgets/aiwidget.js:539 +msgid "New start block generated" msgstr "" -#: js/tempo.js:261 -msgid "Please enter a number between 30 and 1000" +#: js/widgets/aiwidget.js:541 +msgid "MIDI loading. This may take some time depending upon the number of notes in the track" msgstr "" -#: js/tempo.js:268 -#: js/tempo.js:271 -msgid "The beats per minute must be between 30 and 1000." +#: js/widgets/aiwidget.js:551 +#: js/widgets/sampler.js:254 +msgid "Upload failed: Sample is not a .wav file." msgstr "" -#: js/tempo.js:287 -msgid "The beats per minute must be below 1000." +#: js/widgets/aiwidget.js:679 +#: js/widgets/sampler.js:432 +msgid "Save sample" msgstr "" -#: js/tempo.js:303 -msgid "The beats per minute must be above 30" +#: js/widgets/aiwidget.js:701 +msgid "AI Music" msgstr "" -#: js/timbre.js:766 -msgid "Synthesizer" +#: js/widgets/arpeggio.js:239 +msgid "Click in the grid to add steps to the arpeggio." msgstr "" -#: js/timbre.js:789 -msgid "Oscillator" +#: js/widgets/help.js:95 +#: js/widgets/help.js:125 +#: js/widgets/help.js:146 +#: js/widgets/help.js:158 +#: js/widgets/help.js:376 +#: js/widgets/help.js:391 +msgid "Take a tour" msgstr "" -#: js/timbre.js:840 -msgid "Envelope" +#: js/widgets/musickeyboard.js:725 +#: js/widgets/phrasemaker.js:584 +msgid "Add note" msgstr "" -#: js/timbre.js:886 -#: js/GlobalTag.js:50 -#.TRANS: On the Planet, we use labels to tag projects. -msgid "Effects" +#: js/widgets/musickeyboard.js:744 +msgid "Metronome" +msgstr "" + +#: js/widgets/musickeyboard.js:1549 +#: plugins/rodi.rtp:193 +msgid "duration" +msgstr "lujuéeu'" + +#: js/widgets/musickeyboard.js:3179 +msgid "New action blocks generated" +msgstr "" + +#: js/widgets/musickeyboard.js:3180 +msgid "New action block generated" msgstr "" -#: js/timbre.js:904 -msgid "Filter" +#: js/widgets/musickeyboard.js:3365 +#: js/widgets/musickeyboard.js:3373 +msgid "MIDI device present." msgstr "" -#: js/timbre.js:946 -msgid "Add filter" +#: js/widgets/musickeyboard.js:3376 +msgid "No MIDI device found." msgstr "" -#: js/timbre.js:987 -msgid "Click on buttons to open the timbre design tools." +#: js/widgets/musickeyboard.js:3386 +msgid "Failed to get MIDI access in browser." msgstr "" -#: js/timbre.js:1273 -msgid "harmonicity" +#: js/widgets/phrasemaker.js:574 +msgid "Export" msgstr "" -#: js/timbre.js:1340 -#: js/timbre.js:1406 -msgid "modulation index" +#: js/widgets/phrasemaker.js:581 +msgid "Sort" msgstr "" -#: js/timbre.js:1484 -msgid "vibrato amount" +#: js/widgets/phrasemaker.js:975 +msgid "Click on the table to add notes." msgstr "" -#: js/timbre.js:1919 -msgid "Filter already present." +#: js/widgets/phrasemaker.js:2677 +#: js/widgets/phrasemaker.js:2819 +msgid "tuplet value" msgstr "" -#: js/timbre.js:2322 -msgid "delay (MS)" +#: js/widgets/rhythmruler.js:486 +msgid "Save rhythms" msgstr "" -#: js/timbre.js:2507 -msgid "distortion amount" +#: js/widgets/rhythmruler.js:512 +msgid "Save drum machine" msgstr "" -#: js/meterwidget.js:170 -msgid "Reset" +#: js/widgets/rhythmruler.js:589 +#.TRANS: user can tap out a rhythm by clicking on a ruler. +msgid "Tap a rhythm" msgstr "" -#: js/meterwidget.js:196 -msgid "Click in the circle to select strong beats for the meter." +#: js/widgets/rhythmruler.js:817 +msgid "Click on the ruler to divide it." msgstr "" -#: js/arpeggio.js:239 -msgid "Click in the grid to add steps to the arpeggio." +#: js/widgets/rhythmruler.js:950 +#: js/widgets/rhythmruler.js:952 +#: js/widgets/rhythmruler.js:1152 +#: js/widgets/rhythmruler.js:1154 +#: js/widgets/rhythmruler.js:1765 +#: js/widgets/rhythmruler.js:1767 +msgid "tap a rhythm" msgstr "" -#: js/ProjectStorage.js:243 -msgid "anonymous" +#: js/widgets/rhythmruler.js:1459 +msgid "Maximum value of 256 has been exceeded." msgstr "" -#: js/GlobalCard.js:68 -msgid "Share" +#: js/widgets/sampler.js:237 +msgid "Recording started..." msgstr "" -#: js/GlobalCard.js:74 -msgid "Flags" +#: js/widgets/sampler.js:245 +msgid "Recording complete..." msgstr "" -#: js/LocalCard.js:36 -msgid "View published project" +#: js/widgets/sampler.js:283 +msgid "A new sample block was generated." msgstr "" -#: js/LocalCard.js:42 -msgid "Publish project" +#: js/widgets/sampler.js:378 +msgid "Upload sample" msgstr "" -#: js/LocalCard.js:51 -msgid "Edit project" +#: js/widgets/sampler.js:399 +msgid "Warning: Your sample cannot be loaded because it is >1MB." msgstr "" -#: js/LocalCard.js:52 -msgid "Delete project" +#: js/widgets/sampler.js:448 +msgid "Toggle Mic" msgstr "" -#: js/LocalCard.js:53 -msgid "Download project" +#: js/widgets/sampler.js:458 +msgid "Playback" msgstr "" -#: js/LocalCard.js:55 -msgid "Duplicate project" +#: js/widgets/sampler.js:979 +#.TRANS: The reference tone is a sound used for comparison. +msgid "reference tone" msgstr "" -#: js/GlobalTag.js:28 +#: planet/js/GlobalTag.js:28 #.TRANS: On the Planet, we use labels to tag projects. msgid "All Projects" msgstr "" -#: js/GlobalTag.js:30 -#: js/StringHelper.js:37 +#: planet/js/GlobalTag.js:30 +#: planet/js/StringHelper.js:37 #.TRANS: On the Planet, we use labels to tag projects. msgid "My Projects" msgstr "" -#: js/GlobalTag.js:32 +#: planet/js/GlobalTag.js:32 #.TRANS: On the Planet, we use labels to tag projects. msgid "Examples" msgstr "" -#: js/GlobalTag.js:34 +#: planet/js/GlobalTag.js:34 #.TRANS: On the Planet, we use labels to tag projects. msgid "Music" msgstr "" -#: js/GlobalTag.js:36 +#: planet/js/GlobalTag.js:36 #.TRANS: On the Planet, we use labels to tag projects. msgid "Art" msgstr "" -#: js/GlobalTag.js:38 +#: planet/js/GlobalTag.js:38 #.TRANS: On the Planet, we use labels to tag projects. msgid "Math" msgstr "" -#: js/GlobalTag.js:40 +#: planet/js/GlobalTag.js:40 #.TRANS: On the Planet, we use labels to tag projects. msgid "Interactive" msgstr "" -#: js/GlobalTag.js:42 +#: planet/js/GlobalTag.js:42 #.TRANS: On the Planet, we use labels to tag projects. msgid "Design" msgstr "" -#: js/GlobalTag.js:44 +#: planet/js/GlobalTag.js:44 #.TRANS: On the Planet, we use labels to tag projects. msgid "Game" msgstr "" -#: js/GlobalTag.js:46 +#: planet/js/GlobalTag.js:46 #.TRANS: On the Planet, we use labels to tag projects. msgid "Media" msgstr "" -#: js/GlobalTag.js:48 +#: planet/js/GlobalTag.js:48 #.TRANS: On the Planet, we use labels to tag projects. msgid "Sensors" msgstr "" -#: js/GlobalTag.js:52 +#: planet/js/GlobalTag.js:52 #.TRANS: On the Planet, we use labels to tag projects. msgid "Code Snippet" msgstr "" -#: js/helper.js:149 -#: js/StringHelper.js:49 -msgid "Show more tags" +#: planet/js/LocalCard.js:36 +msgid "View published project" msgstr "" -#: js/helper.js:150 -msgid "Show fewer tags" +#: planet/js/LocalCard.js:42 +msgid "Publish project" +msgstr "" + +#: planet/js/LocalCard.js:51 +msgid "Edit project" +msgstr "" + +#: planet/js/LocalCard.js:52 +msgid "Delete project" +msgstr "" + +#: planet/js/LocalCard.js:53 +msgid "Download project" +msgstr "" + +#: planet/js/LocalCard.js:55 +msgid "Duplicate project" +msgstr "" + +#: planet/js/ProjectStorage.js:243 +msgid "anonymous" +msgstr "" + +#: planet/js/SaveInterface.js:34 +msgid "Open in Music Blocks" +msgstr "" + +#: planet/js/SaveInterface.js:35 +msgid "Open in Turtle Blocks" +msgstr "" + +#: planet/js/GlobalCard.js:68 +msgid "Share" +msgstr "" + +#: planet/js/GlobalCard.js:74 +msgid "Flags" +msgstr "" + +#: planet/js/GlobalPlanet.js:35 +msgid "No results found." +msgstr "" + +#: planet/js/GlobalPlanet.js:51 +msgid "Remix of" +msgstr "" + +#: planet/js/GlobalPlanet.js:509 +msgid "Cannot connect to server" msgstr "" -#: js/ProjectViewer.js:30 +#: planet/js/ProjectViewer.js:30 msgid "Error: Report could not be submitted. Try again later." msgstr "" -#: js/ProjectViewer.js:31 +#: planet/js/ProjectViewer.js:31 msgid "Thank you for reporting this project. A moderator will review the project shortly, to verify violation of the Sugar Labs Code of Conduct." msgstr "" -#: js/ProjectViewer.js:32 -#: js/StringHelper.js:62 -#: js/StringHelper.js:64 -#: js/StringHelper.js:68 +#: planet/js/ProjectViewer.js:32 +#: planet/js/StringHelper.js:62 +#: planet/js/StringHelper.js:64 +#: planet/js/StringHelper.js:68 msgid "Report Project" msgstr "" -#: js/ProjectViewer.js:33 -#: js/StringHelper.js:63 +#: planet/js/ProjectViewer.js:33 +#: planet/js/StringHelper.js:63 msgid "Project Reported" msgstr "" -#: js/ProjectViewer.js:34 +#: planet/js/ProjectViewer.js:34 msgid "Report description required" msgstr "" -#: js/ProjectViewer.js:35 +#: planet/js/ProjectViewer.js:35 msgid "Report description too long" msgstr "" -#: js/StringHelper.js:30 +#: planet/js/Publisher.js:30 +msgid "Feature unavailable - cannot connect to server. Reload Music Blocks to try again." +msgstr "" + +#: planet/js/Publisher.js:220 +#: planet/js/Publisher.js:237 +msgid "This field is required" +msgstr "" + +#: planet/js/Publisher.js:227 +msgid "Title too long" +msgstr "" + +#: planet/js/Publisher.js:244 +msgid "Description too long" +msgstr "" + +#: planet/js/Publisher.js:341 +msgid "Server Error" +msgstr "" + +#: planet/js/Publisher.js:341 +msgid "Try Again" +msgstr "" + +#: planet/js/StringHelper.js:30 msgid "Planet" msgstr "" -#: js/StringHelper.js:31 +#: planet/js/StringHelper.js:31 msgid "Close Planet" msgstr "" -#: js/StringHelper.js:32 +#: planet/js/StringHelper.js:32 msgid "Open project from file" msgstr "" -#: js/StringHelper.js:34 +#: planet/js/StringHelper.js:34 msgid "Local" msgstr "" -#: js/StringHelper.js:35 +#: planet/js/StringHelper.js:35 msgid "Global" msgstr "" -#: js/StringHelper.js:36 +#: planet/js/StringHelper.js:36 msgid "Search for a project" msgstr "" -#: js/StringHelper.js:38 +#: planet/js/StringHelper.js:38 msgid "Publish Project" msgstr "" -#: js/StringHelper.js:40 +#: planet/js/StringHelper.js:40 msgid "Tags (max 5)" msgstr "" -#: js/StringHelper.js:41 -#: js/StringHelper.js:61 +#: planet/js/StringHelper.js:41 +#: planet/js/StringHelper.js:61 msgid "Description" msgstr "" -#: js/StringHelper.js:42 -#: js/StringHelper.js:67 +#: planet/js/StringHelper.js:42 +#: planet/js/StringHelper.js:67 msgid "Submit" msgstr "" -#: js/StringHelper.js:43 -#: js/StringHelper.js:47 +#: planet/js/StringHelper.js:43 +#: planet/js/StringHelper.js:47 msgid "Cancel" msgstr "" -#: js/StringHelper.js:44 +#: planet/js/StringHelper.js:44 msgid "Delete \\"\\"?" msgstr "" -#: js/StringHelper.js:45 +#: planet/js/StringHelper.js:45 msgid "Permanently delete project \\"\\"?" msgstr "" -#: js/StringHelper.js:48 +#: planet/js/StringHelper.js:48 msgid "Explore Projects" msgstr "" -#: js/StringHelper.js:50 +#: planet/js/StringHelper.js:49 +#: planet/js/helper.js:149 +msgid "Show more tags" +msgstr "" + +#: planet/js/StringHelper.js:50 msgid "Most recent" msgstr "" -#: js/StringHelper.js:51 +#: planet/js/StringHelper.js:51 msgid "Most liked" msgstr "" -#: js/StringHelper.js:52 +#: planet/js/StringHelper.js:52 msgid "Most downloaded" msgstr "" -#: js/StringHelper.js:53 +#: planet/js/StringHelper.js:53 msgid "A-Z" msgstr "" -#: js/StringHelper.js:54 +#: planet/js/StringHelper.js:54 msgid "Sort by" msgstr "" -#: js/StringHelper.js:55 +#: planet/js/StringHelper.js:55 msgid "Load More Projects" msgstr "" -#: js/StringHelper.js:56 +#: planet/js/StringHelper.js:56 msgid "Last Updated" msgstr "" -#: js/StringHelper.js:57 +#: planet/js/StringHelper.js:57 msgid "Creation Date" msgstr "" -#: js/StringHelper.js:58 +#: planet/js/StringHelper.js:58 msgid "Number of Downloads:" msgstr "" -#: js/StringHelper.js:59 +#: planet/js/StringHelper.js:59 msgid "Number of Likes:" msgstr "" -#: js/StringHelper.js:60 +#: planet/js/StringHelper.js:60 msgid "Tags:" msgstr "" -#: js/StringHelper.js:65 +#: planet/js/StringHelper.js:65 msgid "Report projects which violate the Sugar Labs Code of Conduct." msgstr "" -#: js/StringHelper.js:66 +#: planet/js/StringHelper.js:66 msgid "Reason for reporting project" msgstr "" -#: js/StringHelper.js:70 +#: planet/js/StringHelper.js:70 msgid "Download as File" msgstr "" -#: js/GlobalPlanet.js:35 -msgid "No results found." -msgstr "" - -#: js/GlobalPlanet.js:51 -msgid "Remix of" -msgstr "" - -#: js/GlobalPlanet.js:509 -msgid "Cannot connect to server" -msgstr "" - -#: js/Publisher.js:30 -msgid "Feature unavailable - cannot connect to server. Reload Music Blocks to try again." -msgstr "" - -#: js/Publisher.js:218 -#: js/Publisher.js:235 -msgid "This field is required" -msgstr "" - -#: js/Publisher.js:225 -msgid "Title too long" +#: planet/js/helper.js:150 +msgid "Show fewer tags" msgstr "" -#: js/Publisher.js:242 -msgid "Description too long" +#: plugins/accelerometer.rtp:48 +msgid "motion x" msgstr "" -#: js/Publisher.js:339 -msgid "Server Error" +#: plugins/accelerometer.rtp:56 +msgid "motion y" msgstr "" -#: js/Publisher.js:339 -msgid "Try Again" +#: plugins/accelerometer.rtp:64 +msgid "motion z" msgstr "" -#: js/SaveInterface.js:34 -msgid "Open in Music Blocks" +#: plugins/facebook.rtp:27 +msgid "publish" msgstr "" -#: js/SaveInterface.js:35 -msgid "Open in Turtle Blocks" +#: plugins/maths.rtp:62 +msgid "power" msgstr "" -#: plugins/weather.rtp:68 -#: plugins/weather.rtp:97 -msgid "Days ahead must be in the range of -1 to 5." +#: plugins/maths.rtp:62 +msgid "base" msgstr "" -#: plugins/weather.rtp:122 -msgid "forecast" +#: plugins/maths.rtp:62 +msgid "exp" msgstr "" -#: plugins/weather.rtp:123 -#: plugins/weather.rtp:137 -#: plugins/weather.rtp:150 -msgid "city" +#: plugins/maths.rtp:99 +msgid "floor" msgstr "" -#: plugins/weather.rtp:124 -#: plugins/weather.rtp:138 -#: plugins/weather.rtp:151 -msgid "day" +#: plugins/maths.rtp:104 +msgid "ceiling" msgstr "" -#: plugins/weather.rtp:136 -msgid "high" +#: plugins/maths.rtp:109 +msgid "to degrees" msgstr "" -#: plugins/weather.rtp:149 -msgid "low" +#: plugins/maths.rtp:114 +msgid "to radians" msgstr "" #: plugins/nutrition.rtp:104 @@ -9458,45 +9867,6 @@ msgstr "" msgid "water" msgstr "" -#: plugins/maths.rtp:62 -#: plugins/examples.rtp:93 -msgid "power" -msgstr "" - -#: plugins/maths.rtp:62 -#: plugins/examples.rtp:93 -msgid "base" -msgstr "" - -#: plugins/maths.rtp:62 -#: plugins/examples.rtp:93 -msgid "exp" -msgstr "" - -#: plugins/maths.rtp:99 -#: plugins/examples.rtp:130 -msgid "floor" -msgstr "" - -#: plugins/maths.rtp:104 -#: plugins/examples.rtp:135 -msgid "ceiling" -msgstr "" - -#: plugins/maths.rtp:109 -#: plugins/examples.rtp:140 -msgid "to degrees" -msgstr "" - -#: plugins/maths.rtp:114 -#: plugins/examples.rtp:145 -msgid "to radians" -msgstr "" - -#: plugins/facebook.rtp:27 -msgid "publish" -msgstr "" - #: plugins/rodi.rtp:172 msgid "blink" msgstr "" @@ -9525,18 +9895,66 @@ msgstr "" msgid "move" msgstr "" -#: plugins/accelerometer.rtp:48 -msgid "motion x" +#: plugins/weather.rtp:68 +#: plugins/weather.rtp:97 +msgid "Days ahead must be in the range of -1 to 5." msgstr "" -#: plugins/accelerometer.rtp:56 -msgid "motion y" +#: plugins/weather.rtp:122 +msgid "forecast" msgstr "" -#: plugins/accelerometer.rtp:64 -msgid "motion z" +#: plugins/weather.rtp:123 +#: plugins/weather.rtp:137 +#: plugins/weather.rtp:150 +msgid "city" +msgstr "" + +#: plugins/weather.rtp:124 +#: plugins/weather.rtp:138 +#: plugins/weather.rtp:151 +msgid "day" +msgstr "" + +#: plugins/weather.rtp:136 +msgid "high" +msgstr "" + +#: plugins/weather.rtp:149 +msgid "low" msgstr "" +#: js/toolbar.js:70 + +#: js/toolbar.js:130 + +#: js/toolbar.js:194 + +#: js/toolbar.js:249 + +#~msgid "Toggle JavaScript Editor" +#~msgstr "" + +#: js/EnsembleBlocks.js:643 + +#~msgid "The Turrle pitch block returns the current pitch number being played by the specified turtle." +#~msgstr "" + +#: js/PitchActions.js:88 + +#~msgid "The Scalar Step Block must be used inside of a Note Block." +#~msgstr "" + +#: js/PitchActions.js:107 + +#~msgid "The Scalar Step Block must be preceded by a Pitch Block." +#~msgstr "" + +#: js/musickeyboard.js:2840 + +#~msgid "New action blocks generated!" +#~msgstr "" + #: js/toolbar.js:110 #: js/toolbar.js:204 @@ -9877,11 +10295,6 @@ msgstr "" #~msgid "The Time block returns the number of seconds that the program has been running." #~msgstr "" -#: js/help.js:95 - -#~msgid "Take a tour" -#~msgstr "" - #: js/GlobalCard.js:48 #~msgid "More Details" @@ -12780,11 +13193,6 @@ msgstr "" #~msgid "The save-stack button saves a stack onto a custom palette. It appears after a \"long press\" on a stack." #~msgstr "" -#: js/musicutils.js:254 - -#~msgid "Custom" -#~msgstr "" - #: js/basicblocks.js:4785 #~msgid "Rhythm" diff --git a/po/pl.po b/po/pl.po index 2174d9a70e..573f90537b 100644 --- a/po/pl.po +++ b/po/pl.po @@ -2130,276 +2130,131 @@ #: js/planetInterface.js:104 #: js/planetInterface.js:104 #: js/planetInterface.js:104 -msgid "project undefined" +#: js/SaveInterface.js:59 +#: js/SaveInterface.js:61 +#: js/SaveInterface.js:93 +msgid "Music Blocks Project" msgstr "" -#: js/logo.js:61 -msgid "Not a valid pitch name" +#: js/SaveInterface.js:63 +msgid "This project was created in Music Blocks" msgstr "" -#: js/logo.js:507 -#: js/ProgramBlocks.js:258 -#: js/ProgramBlocks.js:427 -msgid "You must select a file." +#: js/SaveInterface.js:67 +msgid "Music Blocks is a Free/Libre Software application." msgstr "" -#: js/logo.js:1184 -#: js/turtles.js:118 -#: js/turtle-painter.js:1192 -#: js/turtle-painter.js:1193 -#: js/block.js:1463 -#: js/lilypond.js:757 -#: js/lilypond.js:921 -#: js/lilypond.js:959 -#: js/ActionBlocks.js:1223 -#: js/ProgramBlocks.js:1267 -msgid "start" -msgstr "start" - -#: js/logo.js:1696 -msgid "Playback is ready." +#: js/SaveInterface.js:69 +msgid "The source code can be accessed at" msgstr "" -#: js/blocks.js:1011 -#: js/blocks.js:3427 -#: js/blocks.js:3428 -#: js/blocks.js:3653 -#: js/blocks.js:4012 -#: js/blocks.js:4205 -#: js/blocks.js:5343 -#: js/blocks.js:6474 -#: js/palette.js:527 -#: js/palette.js:536 -#: js/palette.js:545 -#: js/palette.js:554 -#: js/palette.js:1131 -#: js/palette.js:1142 -#: js/palette.js:1153 -#: js/palette.js:1164 -#: js/palette.js:1183 -#: js/rubrics.js:529 -#: js/macros.js:170 -#: js/macros.js:266 -#: js/macros.js:267 -#: js/macros.js:276 -#: js/macros.js:828 -#: js/block.js:1449 -#: js/block.js:4164 -#: js/block.js:4182 -#: js/block.js:4193 -#: js/turtledefs.js:128 -#: js/turtledefs.js:230 -#: js/ActionBlocks.js:254 -#: js/ActionBlocks.js:307 -#: js/ActionBlocks.js:617 -#: js/ActionBlocks.js:716 -#: js/ActionBlocks.js:961 -#: js/ActionBlocks.js:1049 -#: js/ActionBlocks.js:1322 -#: js/ActionBlocks.js:1325 -#: js/ActionBlocks.js:1337 -#: js/ActionBlocks.js:1404 -#: js/MeterBlocks.js:715 -#: js/MeterBlocks.js:768 -#: js/MeterBlocks.js:831 -#: js/MeterBlocks.js:892 -#: js/phrasemaker.js:4412 -#: js/musickeyboard.js:2647 -#: js/rhythmruler.js:1928 -#: js/rhythmruler.js:1935 -#: js/rhythmruler.js:2119 -#: js/rhythmruler.js:2126 -msgid "action" -msgstr "akcje" - -#: js/blocks.js:1205 -#: js/blocks.js:3380 -#: js/blocks.js:3770 -#: js/blocks.js:3801 -#: js/blocks.js:3850 -#: js/blocks.js:3885 -#: js/blocks.js:6497 -#: js/palette.js:509 -#: js/palette.js:638 -#: js/palette.js:1107 -#: js/BoxesBlocks.js:282 -#: js/BoxesBlocks.js:285 -#: js/BoxesBlocks.js:405 -#: js/BoxesBlocks.js:594 -msgid "box" -msgstr "pudło" - -#: js/blocks.js:1680 -msgid "Consider breaking this stack into parts." +#: js/SaveInterface.js:72 +msgid "For more information, please consult the" msgstr "" -#: js/blocks.js:2408 -#: js/palette.js:653 -#: js/MediaBlocks.js:602 -msgid "open file" +#: js/SaveInterface.js:76 +#: js/turtledefs.js:795 +msgid "Music Blocks Guide" msgstr "" -#: js/blocks.js:2415 -#: js/blocks.js:2423 -#: js/activity.js:1875 -msgid "audio file" +#: js/SaveInterface.js:83 +msgid "Alternatively, open the file in Music Blocks using the Load project button." msgstr "" -#: js/blocks.js:2536 -#: js/blocks.js:3147 -#: js/block.js:3543 -msgid "on2" +#: js/SaveInterface.js:85 +msgid "Project Code" msgstr "" -#: js/blocks.js:2538 -#: js/blocks.js:3149 -#: js/block.js:3545 -msgid "off" +#: js/SaveInterface.js:87 +msgid "This code stores data about the blocks in a project." msgstr "" -#: js/blocks.js:2543 -#: js/blocks.js:3154 -#: js/palette.js:618 -#: js/block.js:3466 -#: js/BooleanBlocks.js:77 -#: js/BooleanBlocks.js:167 -#: js/BooleanBlocks.js:251 -#: js/BooleanBlocks.js:335 -#: js/BooleanBlocks.js:433 -#: js/BooleanBlocks.js:539 -#: js/BooleanBlocks.js:640 -#: js/BooleanBlocks.js:741 -#: js/BooleanBlocks.js:847 -#: js/BooleanBlocks.js:948 -#: js/BooleanBlocks.js:1033 -#: js/SensorsBlocks.js:910 -msgid "true" +#: js/SaveInterface.js:89 +msgid "Show" msgstr "" -#: js/blocks.js:2545 -#: js/blocks.js:3156 -#: js/block.js:3466 -#: js/BooleanBlocks.js:79 -#: js/BooleanBlocks.js:169 -#: js/BooleanBlocks.js:253 -#: js/BooleanBlocks.js:337 -#: js/BooleanBlocks.js:435 -#: js/BooleanBlocks.js:541 -#: js/BooleanBlocks.js:642 -#: js/BooleanBlocks.js:743 -#: js/BooleanBlocks.js:849 -#: js/BooleanBlocks.js:950 -#: js/SensorsBlocks.js:912 -msgid "false" +#: js/SaveInterface.js:91 +msgid "Hide" msgstr "" -#: js/blocks.js:3183 -#: js/palette.js:574 -#: js/MediaBlocks.js:892 -#: js/MediaBlocks.js:963 -msgid "text" -msgstr "tekst" - -#: js/blocks.js:3379 -#: js/palette.js:641 -#: js/palette.js:642 -#: js/BoxesBlocks.js:514 -msgid "store in box" +#: js/SaveInterface.js:131 +#: js/SaveInterface.js:204 +#: js/SaveInterface.js:262 +#: js/SaveInterface.js:389 +#: js/SaveInterface.js:417 +#: js/activity.js:4884 +#: planet/js/ProjectStorage.js:27 +#: planet/js/GlobalPlanet.js:467 +#: planet/js/GlobalPlanet.js:469 +#: planet/js/GlobalPlanet.js:495 +#.TRANS: default project title when saving as Lilypond +msgid "My Project" msgstr "" -#: js/blocks.js:3384 -#: js/blocks.js:3824 -#: js/blocks.js:3859 -#: js/blocks.js:3894 -#: js/blocks.js:5773 -#: js/blocks.js:5794 -#: js/BoxesBlocks.js:772 -msgid "box1" +#: js/SaveInterface.js:197 +#: planet/js/SaveInterface.js:58 +msgid "No description provided" msgstr "" -#: js/blocks.js:3386 -#: js/blocks.js:3826 -#: js/blocks.js:3861 -#: js/blocks.js:3896 -#: js/blocks.js:5775 -#: js/blocks.js:5796 -#: js/BoxesBlocks.js:663 -msgid "box2" +#: js/SaveInterface.js:332 +msgid "Your recording is in progress." msgstr "" -#: js/blocks.js:4058 -#: js/palette.js:639 -#: js/palette.js:644 -#: js/palette.js:1043 -#: js/BoxesBlocks.js:591 -msgid "store in" -msgstr "przechowaj w" - -#: js/blocks.js:4058 -#: js/EnsembleBlocks.js:391 -#: js/EnsembleBlocks.js:402 -#: js/MediaBlocks.js:746 -#: js/ProgramBlocks.js:390 -#: js/ProgramBlocks.js:495 -#: js/ProgramBlocks.js:658 -#: js/BoxesBlocks.js:595 -#: js/PitchBlocks.js:656 -#: js/PitchBlocks.js:932 -#: js/PitchBlocks.js:1827 -#: js/ToneBlocks.js:1025 -#: js/DictBlocks.js:215 -#: js/DictBlocks.js:289 -msgid "name" +#: js/SaveInterface.js:401 +#.TRANS: File name prompt for save as Lilypond +msgid "File name" msgstr "" -#: js/blocks.js:4058 -#: js/RhythmBlocks.js:1130 -#: js/BoxesBlocks.js:75 -#: js/BoxesBlocks.js:595 -#: js/HeapBlocks.js:544 -#: js/DictBlocks.js:289 -#: js/DictBlocks.js:430 -msgid "value" -msgstr "wartość" - -#: js/blocks.js:4907 -msgid "There is no block selected." +#: js/SaveInterface.js:403 +#: planet/js/StringHelper.js:39 +#.TRANS: Project title prompt for save as Lilypond +msgid "Project title" msgstr "" -#: js/blocks.js:5002 -#: js/MediaBlocks.js:888 -msgid "show" -msgstr "pokaż" - -#: js/blocks.js:5005 -#: js/MediaBlocks.js:803 -#.TRANS: Avatar is the image used to determine the appearance of the mouse. -msgid "avatar" +#: js/SaveInterface.js:405 +#.TRANS: Project title prompt for save as Lilypond +msgid "Project author" msgstr "" -#: js/blocks.js:5008 -#: js/ToneBlocks.js:1010 -#: js/sampler.js:693 -#.TRANS: The sound sample that the user uploads. -msgid "sample" +#: js/SaveInterface.js:407 +#.TRANS: MIDI prompt for save as Lilypond +msgid "Include MIDI output?" msgstr "" -#: js/turtles.js:874 -msgid "Grid" -msgstr "siatka" +#: js/SaveInterface.js:409 +#.TRANS: Guitar prompt for save as Lilypond +msgid "Include guitar tablature output?" +msgstr "" -#: js/turtles.js:891 -#: js/turtledefs.js:626 -msgid "Clean" -msgstr "Wyczyść" +#: js/SaveInterface.js:411 +#.TRANS: Lilypond is a scripting language for generating sheet music +msgid "Save as Lilypond" +msgstr "" -#: js/turtles.js:912 -#: js/turtledefs.js:632 -msgid "Collapse" +#: js/SaveInterface.js:426 +#: js/blocks/EnsembleBlocks.js:75 +#: js/blocks/EnsembleBlocks.js:154 +#: js/blocks/EnsembleBlocks.js:216 +#: js/blocks/EnsembleBlocks.js:302 +#: js/blocks/EnsembleBlocks.js:348 +#: js/blocks/EnsembleBlocks.js:389 +#: js/blocks/EnsembleBlocks.js:441 +#: js/blocks/EnsembleBlocks.js:490 +#: js/blocks/EnsembleBlocks.js:536 +#: js/blocks/EnsembleBlocks.js:583 +#: js/blocks/EnsembleBlocks.js:637 +#: js/blocks/EnsembleBlocks.js:753 +#: js/blocks/EnsembleBlocks.js:840 +#: js/blocks/EnsembleBlocks.js:899 +#: js/blocks/EnsembleBlocks.js:942 +#: js/blocks/EnsembleBlocks.js:1212 +#: js/blocks/EnsembleBlocks.js:1280 +#.TRANS: default project author when saving as Lilypond +msgid "Mr. Mouse" msgstr "" -#: js/turtles.js:940 -msgid "Expand" +#: js/SaveInterface.js:573 +msgid "The Lilypond code is copied to clipboard. You can paste it here: " msgstr "" #: js/languagebox.js:198 @@ -2410,6933 +2265,7487 @@ msgstr "" msgid "Music Blocks is already set to this language." msgstr "" -#: js/piemenus.js:200 -#: js/musicutils.js:808 -#: js/musicutils.js:824 -#: js/phrasemaker.js:1672 -#: js/musickeyboard.js:2041 -#: js/sampler.js:544 -#.TRANS: double sharp is a music term related to pitch -msgid "double sharp" +#: js/planetInterface.js:131 +msgid "project undefined" msgstr "" -#: js/piemenus.js:201 -#: js/PitchBlocks.js:1510 -#: js/PitchActions.js:580 -#: js/musicutils.js:806 -#: js/musicutils.js:825 -#: js/phrasemaker.js:1673 -#: js/musickeyboard.js:2042 -#: js/sampler.js:545 -#.TRANS: sharp is a half-step up in pitch -#.TRANS: sharp is a music term related to pitch -msgid "sharp" +#: js/rubrics.js:523 +#: js/turtledefs.js:119 +#: js/turtledefs.js:221 +#: js/blocks/RhythmBlockPaletteBlocks.js:52 +#: js/blocks/RhythmBlockPaletteBlocks.js:234 +#: js/blocks/ProgramBlocks.js:745 +#: js/widgets/rhythmruler.js:2057 +#: js/widgets/rhythmruler.js:2064 +#: js/widgets/rhythmruler.js:2133 +#: js/widgets/rhythmruler.js:2140 +#: js/widgets/rhythmruler.js:2219 +#.TRANS: an arrangement of notes based on duration +msgid "rhythm" msgstr "" -#: js/piemenus.js:202 -#: js/musicutils.js:804 -#: js/musicutils.js:826 -#: js/phrasemaker.js:1674 -#: js/musickeyboard.js:2043 -#: js/sampler.js:546 -#.TRANS: natural is a music term related to pitch -msgid "natural" +#: js/rubrics.js:524 +#: js/turtledefs.js:121 +#: js/turtledefs.js:223 +#: js/block-verbose.js:2622 +#: js/block.js:2550 +#: js/blocks/IntervalsBlocks.js:63 +#: js/blocks/SensorsBlocks.js:178 +#: js/blocks/PitchBlocks.js:1839 +#: js/blocks/PitchBlocks.js:1853 +#: js/widgets/musickeyboard.js:1935 +#: js/widgets/phrasemaker.js:1036 +#.TRANS: pitch number +#.TRANS: pitch number +#.TRANS: we specify pitch in terms of a name and an octave. The name can be CDEFGAB or Do Re Mi Fa Sol La Ti. Octave is a number between 1 and 8. +msgid "pitch" msgstr "" -#: js/piemenus.js:203 -#: js/PitchBlocks.js:1469 -#: js/PitchActions.js:583 -#: js/musicutils.js:802 -#: js/musicutils.js:827 -#: js/phrasemaker.js:1675 -#: js/musickeyboard.js:2044 -#: js/sampler.js:547 -#.TRANS: flat is a half-step down in pitch -#.TRANS: flat is a music term related to pitch -msgid "flat" +#: js/rubrics.js:525 +#: js/turtledefs.js:123 +#: js/turtledefs.js:225 +msgid "tone" msgstr "" -#: js/piemenus.js:204 -#: js/musicutils.js:800 -#: js/musicutils.js:828 -#: js/phrasemaker.js:1676 -#: js/musickeyboard.js:2045 -#: js/sampler.js:548 -#.TRANS: double flat is a music term related to pitch -msgid "double flat" +#: js/rubrics.js:526 +#: js/lilypond.js:605 +#: js/lilypond.js:904 +#: js/lilypond.js:910 +#: js/lilypond.js:948 +msgid "mouse" msgstr "" -#: js/piemenus.js:2861 -#: js/PitchBlocks.js:1357 -#: js/musicutils.js:627 -#.TRANS: unison means the note is the same as the current note -#.TRANS: unison is a music term related to intervals -msgid "unison" +#: js/rubrics.js:527 +#: js/turtledefs.js:132 +#: js/turtledefs.js:234 +#: js/widgets/phrasemaker.js:1040 +msgid "pen" msgstr "" -#: js/piemenus.js:3015 -#: js/piemenus.js:3088 -#: js/musicutils.js:635 -#: js/musicutils.js:810 -#: js/musicutils.js:912 -#.TRANS: major is a music term related to intervals and mode -msgid "major" -msgstr "" +#: js/rubrics.js:528 +#: js/turtledefs.js:133 +#: js/turtledefs.js:235 +#: js/blocks/NumberBlocks.js:981 +#: js/blocks/PitchBlocks.js:1717 +#: js/blocks/PitchBlocks.js:1758 +msgid "number" +msgstr "liczba" -#: js/piemenus.js:3015 -#: js/piemenus.js:3088 -#: js/musicutils.js:653 -#.TRANS: modal scale for music -msgid "ionian" +#: js/rubrics.js:529 +#: js/turtledefs.js:127 +#: js/turtledefs.js:229 +msgid "flow" msgstr "" -#: js/piemenus.js:3017 -#: js/piemenus.js:3092 -#: js/musicutils.js:633 -#: js/musicutils.js:811 -#: js/musicutils.js:909 -#.TRANS: minor is a music term related to intervals and mode -msgid "minor" -msgstr "" +#: js/rubrics.js:530 +#: js/turtledefs.js:128 +#: js/turtledefs.js:230 +#: js/block-verbose.js:1609 +#: js/block-verbose.js:4559 +#: js/block-verbose.js:4577 +#: js/block-verbose.js:4588 +#: js/block.js:1573 +#: js/block.js:4483 +#: js/block.js:4501 +#: js/block.js:4512 +#: js/blocks.js:1018 +#: js/blocks.js:3491 +#: js/blocks.js:3492 +#: js/blocks.js:3717 +#: js/blocks.js:4076 +#: js/blocks.js:4269 +#: js/blocks.js:5432 +#: js/blocks.js:6563 +#: js/macros.js:170 +#: js/macros.js:266 +#: js/macros.js:267 +#: js/macros.js:276 +#: js/macros.js:828 +#: js/palette.js:527 +#: js/palette.js:536 +#: js/palette.js:545 +#: js/palette.js:554 +#: js/palette.js:1129 +#: js/palette.js:1140 +#: js/palette.js:1151 +#: js/palette.js:1162 +#: js/palette.js:1181 +#: js/blocks/ActionBlocks.js:254 +#: js/blocks/ActionBlocks.js:307 +#: js/blocks/ActionBlocks.js:617 +#: js/blocks/ActionBlocks.js:716 +#: js/blocks/ActionBlocks.js:961 +#: js/blocks/ActionBlocks.js:1049 +#: js/blocks/ActionBlocks.js:1322 +#: js/blocks/ActionBlocks.js:1325 +#: js/blocks/ActionBlocks.js:1337 +#: js/blocks/ActionBlocks.js:1404 +#: js/blocks/MeterBlocks.js:715 +#: js/blocks/MeterBlocks.js:768 +#: js/blocks/MeterBlocks.js:831 +#: js/blocks/MeterBlocks.js:892 +#: js/widgets/musickeyboard.js:2986 +#: js/widgets/phrasemaker.js:4913 +#: js/widgets/rhythmruler.js:2319 +#: js/widgets/rhythmruler.js:2326 +#: js/widgets/rhythmruler.js:2511 +#: js/widgets/rhythmruler.js:2518 +msgid "action" +msgstr "akcje" -#: js/piemenus.js:3017 -#: js/piemenus.js:3092 -#: js/musicutils.js:663 -#.TRANS: modal scale for music -msgid "aeolian" +#: js/rubrics.js:531 +#: js/turtledefs.js:136 +#: js/turtledefs.js:238 +msgid "sensors" msgstr "" -#: js/piemenus.js:3407 -msgid "Duplicate" +#: js/rubrics.js:532 +#: js/turtledefs.js:135 +#: js/turtledefs.js:237 +#: js/blocks/MediaBlocks.js:930 +msgid "media" msgstr "" -#: js/piemenus.js:3408 -#: js/turtledefs.js:534 -msgid "Extract" +#: js/rubrics.js:533 +msgid "mice" msgstr "" -#: js/piemenus.js:3409 -msgid "Move to trash" +#: js/toolbar.js:48 +#: js/toolbar.js:109 +msgid "About Music Blocks" msgstr "" -#: js/piemenus.js:3410 -#: js/timbre.js:968 -#: js/StringHelper.js:69 -msgid "Close" +#: js/toolbar.js:49 +#: js/toolbar.js:110 +#: js/toolbar.js:175 +#: js/toolbar.js:231 +#: js/turtledefs.js:445 +#: js/turtledefs.js:482 +#: js/activity.js:2660 +#: js/activity.js:2671 +#: js/activity.js:2902 +#: js/widgets/modewidget.js:77 +#: js/widgets/meterwidget.js:185 +#: js/widgets/pitchdrummatrix.js:147 +#: js/widgets/pitchdrummatrix.js:687 +#: js/widgets/pitchdrummatrix.js:689 +#: js/widgets/pitchdrummatrix.js:741 +#: js/widgets/pitchdrummatrix.js:743 +#: js/widgets/pitchdrummatrix.js:758 +#: js/widgets/pitchdrummatrix.js:760 +#: js/widgets/pitchdrummatrix.js:789 +#: js/widgets/pitchdrummatrix.js:791 +#: js/widgets/pitchstaircase.js:121 +#: js/widgets/temperament.js:610 +#: js/widgets/temperament.js:613 +#: js/widgets/temperament.js:673 +#: js/widgets/temperament.js:675 +#: js/widgets/temperament.js:2017 +#: js/widgets/temperament.js:2019 +#: js/widgets/tempo.js:84 +#: js/widgets/tempo.js:86 +#: js/widgets/timbre.js:432 +#: js/widgets/timbre.js:434 +#: js/widgets/timbre.js:465 +#: js/widgets/timbre.js:467 +#: js/widgets/timbre.js:746 +#: js/widgets/aiwidget.js:647 +#: js/widgets/aiwidget.js:654 +#: js/widgets/aiwidget.js:656 +#: js/widgets/arpeggio.js:90 +#: js/widgets/arpeggio.js:547 +#: js/widgets/arpeggio.js:549 +#: js/widgets/arpeggio.js:644 +#: js/widgets/arpeggio.js:646 +#: js/widgets/musickeyboard.js:676 +#: js/widgets/musickeyboard.js:872 +#: js/widgets/musickeyboard.js:874 +#: js/widgets/musickeyboard.js:953 +#: js/widgets/musickeyboard.js:955 +#: js/widgets/phrasemaker.js:513 +#: js/widgets/phrasemaker.js:523 +#: js/widgets/phrasemaker.js:525 +#: js/widgets/phrasemaker.js:4304 +#: js/widgets/phrasemaker.js:4528 +#: js/widgets/phrasemaker.js:4533 +#: js/widgets/phrasemaker.js:4535 +#: js/widgets/phrasemaker.js:4650 +#: js/widgets/rhythmruler.js:637 +#: js/widgets/rhythmruler.js:639 +#: js/widgets/rhythmruler.js:653 +#: js/widgets/rhythmruler.js:655 +#: js/widgets/sampler.js:162 +#: js/widgets/sampler.js:164 +#: js/widgets/sampler.js:363 +msgid "Play" msgstr "" -#: js/piemenus.js:3416 -msgid "Save stack" +#: js/toolbar.js:50 +#: js/toolbar.js:111 +#: js/toolbar.js:176 +#: js/toolbar.js:232 +#: js/turtledefs.js:451 +#: js/turtledefs.js:488 +#: js/activity.js:2679 +#: js/widgets/modewidget.js:99 +#: js/widgets/modewidget.js:101 +#: js/widgets/meterwidget.js:206 +#: js/widgets/meterwidget.js:208 +#: js/widgets/pitchdrummatrix.js:674 +#: js/widgets/pitchdrummatrix.js:676 +#: js/widgets/temperament.js:2002 +#: js/widgets/temperament.js:2004 +#: js/widgets/arpeggio.js:534 +#: js/widgets/arpeggio.js:536 +#: js/widgets/phrasemaker.js:534 +#: js/widgets/phrasemaker.js:536 +msgid "Stop" +msgstr "Stop" + +#: js/toolbar.js:51 +#: js/toolbar.js:112 +#: js/toolbar.js:177 +#: js/toolbar.js:233 +#: js/turtledefs.js:498 +msgid "Record" msgstr "" -#: js/piemenus.js:3420 -#: js/toolbar.js:60 +#: js/toolbar.js:52 +#: js/toolbar.js:53 +msgid "Full screen" +msgstr "" + +#: js/toolbar.js:54 +#: js/toolbar.js:115 +#: js/toolbar.js:180 +#: js/toolbar.js:236 +#: js/turtledefs.js:504 +msgid "Toggle Fullscreen" +msgstr "" + +#: js/toolbar.js:55 +#: js/toolbar.js:116 +#: js/toolbar.js:181 +#: js/toolbar.js:237 +#: js/turtledefs.js:510 +#: planet/js/StringHelper.js:33 +msgid "New project" +msgstr "" + +#: js/toolbar.js:56 +#: js/toolbar.js:117 +#: js/toolbar.js:182 +#: js/toolbar.js:238 +#: js/turtledefs.js:516 +msgid "Load project from file" +msgstr "" + +#: js/toolbar.js:57 +#: js/toolbar.js:118 +#: js/toolbar.js:119 +#: js/toolbar.js:183 +#: js/toolbar.js:239 +#: js/turtledefs.js:541 +#: js/turtledefs.js:550 +#: js/turtledefs.js:571 +msgid "Save project" +msgstr "" + +#: js/toolbar.js:58 +#: js/toolbar.js:77 +#: js/toolbar.js:79 +#: js/toolbar.js:138 +#: js/toolbar.js:147 +#: js/toolbar.js:149 +#: js/toolbar.js:184 +#: js/toolbar.js:202 +#: js/toolbar.js:204 +#: js/toolbar.js:240 +#: js/toolbar.js:258 +#: js/toolbar.js:260 +msgid "Save project as HTML" +msgstr "" + +#: js/toolbar.js:59 #: js/toolbar.js:120 #: js/toolbar.js:185 -#: js/toolbar.js:240 +#: js/toolbar.js:241 +msgid "Find and share projects" +msgstr "" + +#: js/toolbar.js:60 +#: js/toolbar.js:121 +#: js/toolbar.js:186 +#: js/toolbar.js:242 +msgid "Offline. Sharing is unavailable" +msgstr "" + +#: js/toolbar.js:61 +#: js/toolbar.js:122 +#: js/toolbar.js:187 +#: js/toolbar.js:243 +msgid "Auxiliary menu" +msgstr "" + +#: js/toolbar.js:62 +#: js/toolbar.js:123 +#: js/toolbar.js:188 +#: js/toolbar.js:244 #: js/turtledefs.js:752 +#: js/piemenus.js:3423 msgid "Help" msgstr "Pomoc" -#: js/piemenus.js:3762 -msgid "You have chosen key " +#: js/toolbar.js:63 +#: js/toolbar.js:124 +#: js/toolbar.js:189 +#: js/toolbar.js:245 +msgid "Run slowly" +msgstr "" + +#: js/toolbar.js:64 +#: js/toolbar.js:125 +#: js/toolbar.js:190 +#: js/toolbar.js:246 +#: js/turtledefs.js:682 +msgid "Run step by step" +msgstr "" + +#: js/toolbar.js:65 +#: js/toolbar.js:126 +#: js/toolbar.js:191 +#: js/toolbar.js:247 +#: js/turtledefs.js:689 +msgid "Display statistics" +msgstr "" + +#: js/toolbar.js:66 +#: js/toolbar.js:127 +#: js/toolbar.js:192 +#: js/toolbar.js:248 +msgid "Load plugin" +msgstr "" + +#: js/toolbar.js:67 +#: js/toolbar.js:128 +#: js/toolbar.js:193 +#: js/toolbar.js:249 +#: js/turtledefs.js:696 +msgid "Delete plugin" +msgstr "" + +#: js/toolbar.js:68 +#: js/toolbar.js:129 +#: js/toolbar.js:194 +#: js/toolbar.js:250 +msgid "Enable horizontal scrolling" +msgstr "" + +#: js/toolbar.js:69 +#: js/toolbar.js:130 +#: js/toolbar.js:195 +#: js/toolbar.js:251 +msgid "Disable horizontal scrolling" +msgstr "" + +#: js/toolbar.js:70 +#: js/toolbar.js:131 +#: js/toolbar.js:196 +#: js/toolbar.js:252 +#: planet/js/LocalCard.js:54 +#: planet/js/StringHelper.js:71 +msgid "Merge with current project" +msgstr "" + +#: js/toolbar.js:71 +#: js/toolbar.js:132 +msgid "Set Pitch Preview" +msgstr "" + +#: js/toolbar.js:72 +#: js/toolbar.js:133 +#: js/toolbar.js:197 +#: js/toolbar.js:253 +msgid "JavaScript Editor" +msgstr "" + +#: js/toolbar.js:73 +#: js/toolbar.js:134 +#: js/toolbar.js:198 +#: js/toolbar.js:254 +#: js/turtledefs.js:724 +msgid "Restore" +msgstr "" + +#: js/toolbar.js:74 +#: js/toolbar.js:135 +#: js/toolbar.js:199 +#: js/toolbar.js:255 +msgid "Switch to beginner mode" +msgstr "" + +#: js/toolbar.js:75 +#: js/toolbar.js:136 +#: js/toolbar.js:200 +#: js/toolbar.js:256 +msgid "Switch to advanced mode" +msgstr "" + +#: js/toolbar.js:76 +#: js/toolbar.js:137 +#: js/toolbar.js:146 +#: js/toolbar.js:201 +#: js/toolbar.js:257 +#: js/turtledefs.js:738 +msgid "Select language" +msgstr "" + +#: js/toolbar.js:78 +#: js/toolbar.js:81 +#: js/toolbar.js:140 +#: js/turtledefs.js:579 +msgid "Save mouse artwork as PNG" +msgstr "" + +#: js/toolbar.js:80 +#: js/toolbar.js:139 +#: js/turtledefs.js:575 +msgid "Save mouse artwork as SVG" +msgstr "" + +#: js/toolbar.js:82 +#: js/toolbar.js:141 +#: js/turtledefs.js:583 +msgid "Save music as WAV" +msgstr "" + +#: js/toolbar.js:83 +#: js/toolbar.js:142 +#: js/turtledefs.js:587 +msgid "Save sheet music as ABC" +msgstr "" + +#: js/toolbar.js:84 +#: js/toolbar.js:143 +#: js/turtledefs.js:591 +msgid "Save sheet music as Lilypond" +msgstr "" + +#: js/toolbar.js:85 +msgid "Save sheet music as MusicXML" +msgstr "" + +#: js/toolbar.js:86 +#: js/toolbar.js:144 +#: js/toolbar.js:152 +#: js/toolbar.js:207 +#: js/toolbar.js:263 +#: js/turtledefs.js:562 +#: js/turtledefs.js:595 +msgid "Save block artwork as SVG" +msgstr "" + +#: js/toolbar.js:87 +#: js/toolbar.js:145 +#: js/toolbar.js:153 +#: js/toolbar.js:208 +#: js/toolbar.js:264 +#: js/turtles.js:911 +msgid "Confirm" +msgstr "" + +#: js/toolbar.js:88 +#: js/toolbar.js:154 +#: js/toolbar.js:209 +#: js/toolbar.js:265 +msgid "English (United States)" +msgstr "" + +#: js/toolbar.js:89 +#: js/toolbar.js:155 +#: js/toolbar.js:210 +#: js/toolbar.js:266 +msgid "English (United Kingdom)" +msgstr "" + +#: js/toolbar.js:90 +#: js/toolbar.js:156 +#: js/toolbar.js:211 +#: js/toolbar.js:267 +msgid "日本語" +msgstr "" + +#: js/toolbar.js:91 +msgid "한국어" +msgstr "" + +#: js/toolbar.js:92 +#: js/toolbar.js:158 +#: js/toolbar.js:213 +#: js/toolbar.js:269 +msgid "español" +msgstr "" + +#: js/toolbar.js:93 +#: js/toolbar.js:159 +#: js/toolbar.js:214 +#: js/toolbar.js:270 +msgid "português" +msgstr "" + +#: js/toolbar.js:94 +#: js/toolbar.js:160 +#: js/toolbar.js:215 +#: js/toolbar.js:271 +msgid "にほんご" +msgstr "" + +#: js/toolbar.js:95 +#: js/toolbar.js:161 +#: js/toolbar.js:216 +#: js/toolbar.js:272 +msgid "中文" +msgstr "" + +#: js/toolbar.js:96 +#: js/toolbar.js:162 +#: js/toolbar.js:217 +#: js/toolbar.js:273 +msgid "ภาษาไทย" +msgstr "" + +#: js/toolbar.js:97 +#: js/toolbar.js:163 +#: js/toolbar.js:218 +#: js/toolbar.js:274 +msgid "aymara" +msgstr "" + +#: js/toolbar.js:98 +#: js/toolbar.js:164 +#: js/toolbar.js:219 +#: js/toolbar.js:275 +msgid "quechua" +msgstr "" + +#: js/toolbar.js:99 +#: js/toolbar.js:165 +#: js/toolbar.js:220 +#: js/toolbar.js:276 +msgid "guarani" +msgstr "" + +#: js/toolbar.js:100 +#: js/toolbar.js:166 +#: js/toolbar.js:221 +#: js/toolbar.js:277 +msgid "हिंदी" +msgstr "" + +#: js/toolbar.js:101 +#: js/toolbar.js:168 +#: js/toolbar.js:222 +#: js/toolbar.js:279 +msgid "igbo" +msgstr "" + +#: js/toolbar.js:102 +#: js/toolbar.js:169 +#: js/toolbar.js:223 +#: js/toolbar.js:280 +msgid "عربى" +msgstr "" + +#: js/toolbar.js:103 +#: js/toolbar.js:167 +#: js/toolbar.js:224 +#: js/toolbar.js:278 +msgid "తెలుగు" +msgstr "" + +#: js/toolbar.js:104 +#: js/toolbar.js:170 +#: js/toolbar.js:225 +#: js/toolbar.js:281 +msgid "עִברִית" +msgstr "" + +#: js/toolbar.js:113 +#: js/toolbar.js:114 +#: js/toolbar.js:178 +#: js/toolbar.js:179 +#: js/toolbar.js:234 +#: js/toolbar.js:235 +msgid "Full Screen" +msgstr "" + +#: js/toolbar.js:148 +#: js/toolbar.js:151 +#: js/toolbar.js:203 +#: js/toolbar.js:206 +#: js/toolbar.js:259 +#: js/toolbar.js:262 +#: js/turtledefs.js:558 +msgid "Save turtle artwork as PNG" +msgstr "" + +#: js/toolbar.js:150 +#: js/toolbar.js:205 +#: js/toolbar.js:261 +#: js/turtledefs.js:554 +msgid "Save turtle artwork as SVG" +msgstr "" + +#: js/toolbar.js:157 +#: js/toolbar.js:212 +#: js/toolbar.js:268 +msgid "한국인" +msgstr "" + +#: js/toolbar.js:174 +#: js/toolbar.js:230 +msgid "About Turtle Blocks" +msgstr "" + +#: js/toolbar.js:446 +#: js/toolbar.js:457 +#: js/toolbar.js:497 +msgid "Turtle Wrap Off" +msgstr "" + +#: js/toolbar.js:466 +#: js/toolbar.js:506 +msgid "Turtle Wrap On" +msgstr "" + +#: js/turtle-painter.js:1192 +#: js/turtle-painter.js:1193 +#: js/turtles.js:118 +#: js/block-verbose.js:1623 +#: js/block.js:1587 +#: js/lilypond.js:749 +#: js/lilypond.js:913 +#: js/lilypond.js:951 +#: js/logo.js:1184 +#: js/blocks/ActionBlocks.js:1223 +#: js/blocks/ProgramBlocks.js:1267 +msgid "start" +msgstr "start" + +#: js/turtledefs.js:40 +#.TRANS: put the URL to the guide here, e.g., https://github.com/sugarlabs/turtleblocksjs/tree/master/guide/README.md +msgid "guide url" +msgstr "" + +#: js/turtledefs.js:85 +#: js/turtledefs.js:437 +msgid "Turtle Blocks is a Logo-inspired turtle that draws colorful pictures with snap-together visual-programming blocks." +msgstr "" + +#: js/turtledefs.js:118 +#: js/turtledefs.js:220 +msgid "search" +msgstr "" + +#: js/turtledefs.js:120 +#: js/turtledefs.js:222 +#: js/blocks/MeterBlocks.js:1343 +#: js/blocks/WidgetBlocks.js:522 +#.TRANS: musical meter (time signature), e.g., 4:4 +msgid "meter" +msgstr "" + +#: js/turtledefs.js:122 +#: js/turtledefs.js:224 +msgid "intervals" +msgstr "" + +#: js/turtledefs.js:124 +#: js/turtledefs.js:226 +msgid "ornament" +msgstr "" + +#: js/turtledefs.js:125 +#: js/turtledefs.js:227 +#: js/blocks/VolumeBlocks.js:362 +#: js/blocks/VolumeBlocks.js:502 +#: js/blocks/VolumeBlocks.js:545 +msgid "volume" +msgstr "" + +#: js/turtledefs.js:126 +#: js/turtledefs.js:228 +#: js/block-verbose.js:1700 +#: js/block-verbose.js:2626 +#: js/block.js:1664 +#: js/block.js:2554 +#: js/lilypond.js:732 +#: js/lilypond.js:897 +#: js/lilypond.js:941 +#: js/palette.js:577 +#: js/blocks/RhythmBlocks.js:766 +#: js/blocks/DrumBlocks.js:477 +#: js/blocks/VolumeBlocks.js:502 +#: js/widgets/phrasemaker.js:1038 +msgid "drum" +msgstr "" + +#: js/turtledefs.js:129 +#: js/turtledefs.js:231 +msgid "boxes" +msgstr "" + +#: js/turtledefs.js:130 +#: js/turtledefs.js:232 +msgid "widgets" +msgstr "" + +#: js/turtledefs.js:131 +#: js/turtledefs.js:233 +#: js/widgets/phrasemaker.js:1039 +msgid "graphics" +msgstr "" + +#: js/turtledefs.js:134 +#: js/turtledefs.js:236 +msgid "boolean" +msgstr "" + +#: js/turtledefs.js:137 +#: js/turtledefs.js:239 +#: js/blocks/HeapBlocks.js:59 +#: js/widgets/status.js:147 +msgid "heap" +msgstr "" + +#: js/turtledefs.js:138 +#: js/turtledefs.js:240 +#: js/blocks/DictBlocks.js:142 +#: js/blocks/ProgramBlocks.js:495 +msgid "dictionary" +msgstr "" + +#: js/turtledefs.js:139 +#: js/turtledefs.js:241 +msgid "ensemble" +msgstr "" + +#: js/turtledefs.js:140 +#: js/turtledefs.js:242 +msgid "extras" msgstr "" -#: js/piemenus.js:3766 -msgid " for your pitch preview." +#: js/turtledefs.js:142 +#: js/turtledefs.js:244 +#.TRANS: program as in computer program +#.TRANS: program as in computer program +msgid "program" msgstr "" -#: js/palette.js:571 -msgid "grid" -msgstr "siatka" +#: js/turtledefs.js:143 +#: js/turtledefs.js:245 +msgid "my blocks" +msgstr "" -#: js/palette.js:577 -#: js/block.js:1540 -#: js/block.js:2343 -#: js/turtledefs.js:126 -#: js/turtledefs.js:228 -#: js/lilypond.js:740 -#: js/lilypond.js:905 -#: js/lilypond.js:949 -#: js/DrumBlocks.js:486 -#: js/RhythmBlocks.js:766 -#: js/VolumeBlocks.js:502 -#: js/phrasemaker.js:823 -msgid "drum" +#: js/turtledefs.js:185 +#: js/turtledefs.js:281 +msgid "artwork" msgstr "" -#: js/palette.js:580 -msgid "effect" +#: js/turtledefs.js:185 +#: js/turtledefs.js:281 +msgid "logic" msgstr "" -#: js/palette.js:586 -msgid "sargam" +#: js/turtledefs.js:185 +#: js/turtledefs.js:281 +msgid "music" msgstr "" -#: js/palette.js:589 -#: js/activity.js:1833 -#: js/RhythmBlocks.js:923 -#: js/PitchBlocks.js:442 -#: js/PitchBlocks.js:1748 -#.TRANS: a numeric mapping of the notes in an octave based on the musical mode -msgid "scale degree" +#: js/turtledefs.js:187 +#: js/turtledefs.js:463 +msgid "Music Blocks is a collection of tools for exploring fundamental musical concepts in a fun way." msgstr "" -#: js/palette.js:592 -#: js/activity.js:1860 -msgid "mode name" +#: js/turtledefs.js:436 +msgid "Welcome to Turtle Blocks" msgstr "" -#: js/palette.js:595 -#: js/activity.js:1839 -msgid "invert mode" +#: js/turtledefs.js:438 +#: js/turtledefs.js:465 +#: js/turtledefs.js:774 +#: js/turtledefs.js:805 +msgid "The current version is" msgstr "" -#: js/palette.js:598 -#: js/activity.js:1836 -msgid "voice name" +#: js/turtledefs.js:446 +#: js/turtledefs.js:483 +msgid "Click the run button to run the project in fast mode." msgstr "" -#: js/palette.js:601 -#: js/PitchBlocks.js:1181 -msgid "custom pitch" +#: js/turtledefs.js:452 +msgid "Stop the turtle." msgstr "" -#: js/palette.js:605 -#: js/block.js:1456 -#: js/block.js:1575 -#: js/WidgetBlocks.js:218 -#: js/IntervalsBlocks.js:63 -msgid "temperament" +#: js/turtledefs.js:454 +#: js/turtledefs.js:491 +msgid "You can also type Alt-S to stop." msgstr "" -#: js/palette.js:609 -msgid "accidental" +#: js/turtledefs.js:462 +#: js/widgets/help.js:333 +msgid "Welcome to Music Blocks" msgstr "" -#: js/palette.js:615 -#: js/activity.js:1866 -msgid "interval name" +#: js/turtledefs.js:472 +#: js/widgets/help.js:334 +msgid "Meet Mr. Mouse!" msgstr "" -#: js/palette.js:633 -#: js/PitchBlocks.js:405 -msgid "pitch converter" +#: js/turtledefs.js:473 +msgid "Mr Mouse is our Music Blocks conductor." msgstr "" -#: js/rubrics.js:522 -#: js/turtledefs.js:119 -#: js/turtledefs.js:221 -#: js/RhythmBlockPaletteBlocks.js:52 -#: js/RhythmBlockPaletteBlocks.js:233 -#: js/ProgramBlocks.js:745 -#: js/rhythmruler.js:1670 -#: js/rhythmruler.js:1677 -#: js/rhythmruler.js:1745 -#: js/rhythmruler.js:1752 -#: js/rhythmruler.js:1830 -#.TRANS: an arrangement of notes based on duration -msgid "rhythm" +#: js/turtledefs.js:475 +msgid "Mr Mouse encourages you to explore Music Blocks." msgstr "" -#: js/rubrics.js:523 -#: js/block.js:2339 -#: js/turtledefs.js:121 -#: js/turtledefs.js:223 -#: js/IntervalsBlocks.js:63 -#: js/PitchBlocks.js:1801 -#: js/PitchBlocks.js:1814 -#: js/SensorsBlocks.js:178 -#: js/phrasemaker.js:821 -#: js/musickeyboard.js:1653 -#.TRANS: pitch number -#.TRANS: we specify pitch in terms of a name and an octave. The name can be CDEFGAB or Do Re Mi Fa Sol La Ti. Octave is a number between 1 and 8. -msgid "pitch" +#: js/turtledefs.js:477 +msgid "Let us start our tour!" msgstr "" -#: js/rubrics.js:524 -#: js/turtledefs.js:123 -#: js/turtledefs.js:225 -msgid "tone" +#: js/turtledefs.js:489 +msgid "Stop the music (and the mice)." msgstr "" -#: js/rubrics.js:525 -#: js/lilypond.js:613 -#: js/lilypond.js:912 -#: js/lilypond.js:918 -#: js/lilypond.js:956 -msgid "mouse" +#: js/turtledefs.js:499 +msgid "Record your project as video." msgstr "" -#: js/rubrics.js:526 -#: js/turtledefs.js:132 -#: js/turtledefs.js:234 -#: js/phrasemaker.js:825 -msgid "pen" +#: js/turtledefs.js:505 +msgid "Toggle Fullscreen mode." msgstr "" -#: js/rubrics.js:527 -#: js/turtledefs.js:133 -#: js/turtledefs.js:235 -#: js/NumberBlocks.js:905 -#: js/PitchBlocks.js:1679 -#: js/PitchBlocks.js:1720 -msgid "number" -msgstr "liczba" +#: js/turtledefs.js:511 +msgid "Initialize a new project." +msgstr "" -#: js/rubrics.js:528 -#: js/turtledefs.js:127 -#: js/turtledefs.js:229 -msgid "flow" +#: js/turtledefs.js:517 +msgid "You can also load projects from the file system." msgstr "" -#: js/rubrics.js:530 -#: js/turtledefs.js:136 -#: js/turtledefs.js:238 -msgid "sensors" +#: js/turtledefs.js:522 +#: planet/js/StringHelper.js:46 +msgid "Delete" msgstr "" -#: js/rubrics.js:531 -#: js/turtledefs.js:135 -#: js/turtledefs.js:237 -#: js/MediaBlocks.js:930 -msgid "media" +#: js/turtledefs.js:523 +msgid "To delete a block, just right-click on it, then you will be able to see the delete option" msgstr "" -#: js/rubrics.js:532 -msgid "mice" +#: js/turtledefs.js:528 +#: js/activity.js:2649 +#: planet/js/LocalCard.js:31 +msgid "Copy" +msgstr "Kopiuj" + +#: js/turtledefs.js:529 +msgid "To copy a block, just right-click on it, then you will be able to see the copy option" msgstr "" -#: js/macros.js:711 -#: js/musicutils.js:783 -#: js/synthutils.js:181 -#.TRANS: animal sound effect -msgid "duck" +#: js/turtledefs.js:534 +#: js/piemenus.js:3411 +msgid "Extract" msgstr "" -#: js/toolbar.js:46 -#: js/toolbar.js:107 -msgid "About Music Blocks" +#: js/turtledefs.js:535 +msgid "To extract a block, just right-click on it, then you will be able to see the extract option" msgstr "" -#: js/toolbar.js:47 -#: js/toolbar.js:108 -#: js/toolbar.js:172 -#: js/toolbar.js:228 -#: js/turtledefs.js:445 -#: js/turtledefs.js:482 -#: js/activity.js:2281 -#: js/activity.js:2289 -#: js/activity.js:2520 -#: js/modewidget.js:77 -#: js/pitchstaircase.js:121 -#: js/phrasemaker.js:302 -#: js/phrasemaker.js:312 -#: js/phrasemaker.js:314 -#: js/phrasemaker.js:3901 -#: js/phrasemaker.js:4061 -#: js/phrasemaker.js:4066 -#: js/phrasemaker.js:4068 -#: js/phrasemaker.js:4183 -#: js/pitchdrummatrix.js:81 -#: js/pitchdrummatrix.js:574 -#: js/pitchdrummatrix.js:576 -#: js/pitchdrummatrix.js:628 -#: js/pitchdrummatrix.js:630 -#: js/pitchdrummatrix.js:645 -#: js/pitchdrummatrix.js:647 -#: js/pitchdrummatrix.js:674 -#: js/pitchdrummatrix.js:676 -#: js/temperament.js:477 -#: js/temperament.js:480 -#: js/temperament.js:540 -#: js/temperament.js:542 -#: js/temperament.js:1835 -#: js/temperament.js:1837 -#: js/temperament.js:1986 -#: js/temperament.js:1988 -#: js/musickeyboard.js:522 -#: js/musickeyboard.js:682 -#: js/musickeyboard.js:684 -#: js/musickeyboard.js:756 -#: js/musickeyboard.js:758 -#: js/rhythmruler.js:298 -#: js/rhythmruler.js:300 -#: js/rhythmruler.js:314 -#: js/rhythmruler.js:316 -#: js/sampler.js:96 -#: js/sampler.js:98 -#: js/sampler.js:229 -#: js/sampler.js:235 -#: js/sampler.js:237 -#: js/tempo.js:84 -#: js/tempo.js:86 -#: js/timbre.js:432 -#: js/timbre.js:434 -#: js/timbre.js:465 -#: js/timbre.js:467 -#: js/timbre.js:746 -#: js/meterwidget.js:80 -#: js/arpeggio.js:90 -#: js/arpeggio.js:547 -#: js/arpeggio.js:549 -#: js/arpeggio.js:644 -#: js/arpeggio.js:646 -msgid "Play" +#: js/turtledefs.js:542 +#: js/turtledefs.js:552 +#: js/turtledefs.js:573 +msgid "Save your project to a file." msgstr "" -#: js/toolbar.js:48 -#: js/toolbar.js:109 -#: js/toolbar.js:173 -#: js/toolbar.js:229 -#: js/turtledefs.js:451 -#: js/turtledefs.js:488 -#: js/activity.js:2297 -#: js/modewidget.js:99 -#: js/modewidget.js:101 -#: js/phrasemaker.js:323 -#: js/phrasemaker.js:325 -#: js/pitchdrummatrix.js:561 -#: js/pitchdrummatrix.js:563 -#: js/temperament.js:1820 -#: js/temperament.js:1822 -#: js/meterwidget.js:101 -#: js/meterwidget.js:103 -#: js/arpeggio.js:534 -#: js/arpeggio.js:536 -msgid "Stop" -msgstr "Stop" +#: js/turtledefs.js:549 +#: js/turtledefs.js:570 +msgid "save" +msgstr "" -#: js/toolbar.js:49 -#: js/toolbar.js:110 -#: js/toolbar.js:174 -#: js/toolbar.js:230 -#: js/turtledefs.js:498 -msgid "Record" +#: js/turtledefs.js:556 +#: js/turtledefs.js:577 +msgid "Save graphics from your project to as SVG." msgstr "" -#: js/toolbar.js:50 -#: js/toolbar.js:51 -msgid "Full screen" +#: js/turtledefs.js:560 +#: js/turtledefs.js:581 +msgid "Save graphics from your project as PNG." msgstr "" -#: js/toolbar.js:52 -#: js/toolbar.js:112 -#: js/toolbar.js:177 -#: js/toolbar.js:232 -#: js/turtledefs.js:504 -msgid "Toggle Fullscreen" +#: js/turtledefs.js:564 +#: js/turtledefs.js:597 +msgid "Save block artwork as an SVG file." msgstr "" -#: js/toolbar.js:53 -#: js/toolbar.js:113 -#: js/toolbar.js:178 -#: js/toolbar.js:233 -#: js/turtledefs.js:510 -#: js/StringHelper.js:33 -msgid "New project" +#: js/turtledefs.js:585 +msgid "Save audio from your project as WAV." msgstr "" -#: js/toolbar.js:54 -#: js/toolbar.js:114 -#: js/toolbar.js:179 -#: js/toolbar.js:234 -#: js/turtledefs.js:516 -msgid "Load project from file" +#: js/turtledefs.js:589 +msgid "Save your project to as an ABC file." msgstr "" -#: js/toolbar.js:55 -#: js/toolbar.js:115 -#: js/toolbar.js:116 -#: js/toolbar.js:180 -#: js/toolbar.js:235 -#: js/turtledefs.js:541 -#: js/turtledefs.js:550 -#: js/turtledefs.js:571 -msgid "Save project" +#: js/turtledefs.js:593 +msgid "Save your project to as a Lilypond file." msgstr "" -#: js/toolbar.js:56 -#: js/toolbar.js:75 -#: js/toolbar.js:77 -#: js/toolbar.js:135 -#: js/toolbar.js:144 -#: js/toolbar.js:146 -#: js/toolbar.js:181 -#: js/toolbar.js:199 -#: js/toolbar.js:201 -#: js/toolbar.js:236 -#: js/toolbar.js:254 -#: js/toolbar.js:256 -msgid "Save project as HTML" +#: js/turtledefs.js:604 +msgid "Load samples from server" msgstr "" -#: js/toolbar.js:57 -#: js/toolbar.js:117 -#: js/toolbar.js:182 -#: js/toolbar.js:237 -msgid "Find and share projects" +#: js/turtledefs.js:605 +msgid "This button opens a viewer for loading example projects." +msgstr "" + +#: js/turtledefs.js:611 +msgid "Palette buttons" +msgstr "" + +#: js/turtledefs.js:612 +msgid "This toolbar contains the palette buttons including Rhythm Pitch Tone Action and more." +msgstr "" + +#: js/turtledefs.js:614 +msgid "Click to show the palettes of blocks and drag blocks from the palettes onto the canvas to use them." +msgstr "" + +#: js/turtledefs.js:620 +msgid "Cartesian/Polar" msgstr "" -#: js/toolbar.js:58 -#: js/toolbar.js:118 -#: js/toolbar.js:183 -#: js/toolbar.js:238 -msgid "Offline. Sharing is unavailable" +#: js/turtledefs.js:621 +msgid "Show or hide a coordinate grid." msgstr "" -#: js/toolbar.js:59 -#: js/toolbar.js:119 -#: js/toolbar.js:184 -#: js/toolbar.js:239 -msgid "Auxiliary menu" +#: js/turtledefs.js:626 +#: js/turtles.js:902 +msgid "Clean" +msgstr "Wyczyść" + +#: js/turtledefs.js:627 +msgid "Clear the screen and return the mice to their initial positions." msgstr "" -#: js/toolbar.js:61 -#: js/toolbar.js:121 -#: js/toolbar.js:186 -#: js/toolbar.js:241 -msgid "Run slowly" +#: js/turtledefs.js:632 +#: js/turtles.js:955 +msgid "Collapse" msgstr "" -#: js/toolbar.js:62 -#: js/toolbar.js:122 -#: js/toolbar.js:187 -#: js/toolbar.js:242 -#: js/turtledefs.js:682 -msgid "Run step by step" +#: js/turtledefs.js:633 +msgid "Collapse the graphics window." msgstr "" -#: js/toolbar.js:63 -#: js/toolbar.js:123 -#: js/toolbar.js:188 -#: js/toolbar.js:243 -#: js/turtledefs.js:689 -msgid "Display statistics" +#: js/turtledefs.js:638 +#: js/activity.js:5684 +msgid "Home" msgstr "" -#: js/toolbar.js:64 -#: js/toolbar.js:124 -#: js/toolbar.js:189 -#: js/toolbar.js:244 -msgid "Load plugin" +#: js/turtledefs.js:639 +msgid "Return all blocks to the center of the screen." msgstr "" -#: js/toolbar.js:65 -#: js/toolbar.js:125 -#: js/toolbar.js:190 -#: js/toolbar.js:245 -#: js/turtledefs.js:696 -msgid "Delete plugin" +#: js/turtledefs.js:644 +msgid "Show/hide blocks" +msgstr "Pokaż/schowaj schemat" + +#: js/turtledefs.js:645 +msgid "Hide or show the blocks and the palettes." msgstr "" -#: js/toolbar.js:66 -#: js/toolbar.js:126 -#: js/toolbar.js:191 -#: js/toolbar.js:246 -msgid "Enable horizontal scrolling" +#: js/turtledefs.js:650 +msgid "Expand/collapse collapsable blocks" msgstr "" -#: js/toolbar.js:67 -#: js/toolbar.js:127 -#: js/toolbar.js:192 -#: js/toolbar.js:247 -msgid "Disable horizontal scrolling" +#: js/turtledefs.js:651 +msgid "Expand or collapse start and action stacks." msgstr "" -#: js/toolbar.js:68 -#: js/toolbar.js:128 -#: js/toolbar.js:193 -#: js/toolbar.js:248 -#: js/LocalCard.js:54 -#: js/StringHelper.js:71 -msgid "Merge with current project" +#: js/turtledefs.js:658 +#: js/activity.js:5704 +msgid "Decrease block size" msgstr "" -#: js/toolbar.js:69 -#: js/toolbar.js:129 -msgid "Set Pitch Preview" +#: js/turtledefs.js:659 +msgid "Decrease the size of the blocks." msgstr "" -#: js/toolbar.js:70 -#: js/toolbar.js:130 -#: js/toolbar.js:194 -#: js/toolbar.js:249 -msgid "Toggle JavaScript Editor" +#: js/turtledefs.js:664 +#: js/activity.js:5710 +msgid "Increase block size" msgstr "" -#: js/toolbar.js:71 -#: js/toolbar.js:131 -#: js/toolbar.js:195 -#: js/toolbar.js:250 -#: js/turtledefs.js:724 -msgid "Restore" +#: js/turtledefs.js:665 +msgid "Increase the size of the blocks." msgstr "" -#: js/toolbar.js:72 -#: js/toolbar.js:132 -#: js/toolbar.js:196 -#: js/toolbar.js:251 -msgid "Switch to beginner mode" +#: js/turtledefs.js:670 +msgid "Expand/collapse option toolbar" msgstr "" -#: js/toolbar.js:73 -#: js/toolbar.js:133 -#: js/toolbar.js:197 -#: js/toolbar.js:252 -msgid "Switch to advanced mode" +#: js/turtledefs.js:671 +msgid "Click this button to expand or collapse the auxillary toolbar." msgstr "" -#: js/toolbar.js:74 -#: js/toolbar.js:134 -#: js/toolbar.js:143 -#: js/toolbar.js:198 -#: js/toolbar.js:253 -#: js/turtledefs.js:738 -msgid "Select language" +#: js/turtledefs.js:676 +msgid "Run slow" msgstr "" -#: js/toolbar.js:76 -#: js/toolbar.js:79 -#: js/toolbar.js:137 -#: js/turtledefs.js:579 -msgid "Save mouse artwork as PNG" +#: js/turtledefs.js:677 +msgid "Click to run the project in slow mode." msgstr "" -#: js/toolbar.js:78 -#: js/toolbar.js:136 -#: js/turtledefs.js:575 -msgid "Save mouse artwork as SVG" +#: js/turtledefs.js:683 +msgid "Click to run the project step by step." msgstr "" -#: js/toolbar.js:80 -#: js/toolbar.js:138 -#: js/turtledefs.js:583 -msgid "Save music as WAV" +#: js/turtledefs.js:690 +msgid "Display statistics about your Music project." msgstr "" -#: js/toolbar.js:81 -#: js/toolbar.js:139 -#: js/turtledefs.js:587 -msgid "Save sheet music as ABC" +#: js/turtledefs.js:697 +msgid "Delete a selected plugin." msgstr "" -#: js/toolbar.js:82 -#: js/toolbar.js:140 -#: js/turtledefs.js:591 -msgid "Save sheet music as Lilypond" +#: js/turtledefs.js:704 +msgid "Enable scrolling" msgstr "" -#: js/toolbar.js:83 -msgid "Save sheet music as MusicXML" +#: js/turtledefs.js:705 +msgid "You can scroll the blocks on the canvas." msgstr "" -#: js/toolbar.js:84 -#: js/toolbar.js:141 -#: js/toolbar.js:149 -#: js/toolbar.js:204 -#: js/toolbar.js:259 -#: js/turtledefs.js:562 -#: js/turtledefs.js:595 -msgid "Save block artwork as SVG" +#: js/turtledefs.js:714 +msgid "Wrap Turtle" msgstr "" -#: js/toolbar.js:85 -#: js/toolbar.js:142 -#: js/toolbar.js:150 -#: js/toolbar.js:205 -#: js/toolbar.js:260 -msgid "Confirm" +#: js/turtledefs.js:715 +msgid "Turn Turtle wrapping On or Off." msgstr "" -#: js/toolbar.js:86 -#: js/toolbar.js:151 -#: js/toolbar.js:206 -#: js/toolbar.js:261 -msgid "English (United States)" +#: js/turtledefs.js:725 +msgid "Restore blocks from the trash." msgstr "" -#: js/toolbar.js:87 -#: js/toolbar.js:152 -#: js/toolbar.js:207 -#: js/toolbar.js:262 -msgid "English (United Kingdom)" +#: js/turtledefs.js:732 +msgid "Switch mode" msgstr "" -#: js/toolbar.js:88 -#: js/toolbar.js:153 -#: js/toolbar.js:208 -#: js/toolbar.js:263 -msgid "日本語" +#: js/turtledefs.js:733 +msgid "Switch between beginner and advance modes." msgstr "" -#: js/toolbar.js:89 -msgid "한국어" +#: js/turtledefs.js:739 +msgid "Select your language preference." msgstr "" -#: js/toolbar.js:90 -#: js/toolbar.js:155 -#: js/toolbar.js:210 -#: js/toolbar.js:265 -msgid "español" +#: js/turtledefs.js:745 +msgid "Keyboard shortcuts" msgstr "" -#: js/toolbar.js:91 -#: js/toolbar.js:156 -#: js/toolbar.js:211 -#: js/toolbar.js:266 -msgid "português" +#: js/turtledefs.js:746 +msgid "You can type d to create a do block and r to create a re block etc." msgstr "" -#: js/toolbar.js:92 -#: js/toolbar.js:157 -#: js/toolbar.js:212 -#: js/toolbar.js:267 -msgid "にほんご" +#: js/turtledefs.js:753 +msgid "Show these messages." msgstr "" -#: js/toolbar.js:93 -#: js/toolbar.js:158 -#: js/toolbar.js:213 -#: js/toolbar.js:268 -msgid "中文" +#: js/turtledefs.js:759 +#: js/turtledefs.js:790 +#: js/widgets/help.js:335 +msgid "Guide" msgstr "" -#: js/toolbar.js:94 -#: js/toolbar.js:159 -#: js/toolbar.js:214 -#: js/toolbar.js:269 -msgid "ภาษาไทย" +#: js/turtledefs.js:760 +msgid "A detailed guide to Turtle Blocks is available." msgstr "" -#: js/toolbar.js:95 -#: js/toolbar.js:160 -#: js/toolbar.js:215 -#: js/toolbar.js:270 -msgid "aymara" +#: js/turtledefs.js:764 +msgid "Turtle Blocks Guide" msgstr "" -#: js/toolbar.js:96 -#: js/toolbar.js:161 -#: js/toolbar.js:216 -#: js/toolbar.js:271 -msgid "quechua" +#: js/turtledefs.js:767 +#: js/turtledefs.js:798 +#: js/widgets/help.js:336 +msgid "About" +msgstr "" + +#: js/turtledefs.js:768 +msgid "Turtle Blocks is an open source collection of tools for exploring musical concepts." msgstr "" -#: js/toolbar.js:97 -#: js/toolbar.js:162 -#: js/toolbar.js:217 -#: js/toolbar.js:272 -msgid "guarani" +#: js/turtledefs.js:770 +msgid "A full list of contributors can be found in the Turtle Blocks GitHub repository." msgstr "" -#: js/toolbar.js:98 -#: js/toolbar.js:163 -#: js/toolbar.js:218 -#: js/toolbar.js:273 -msgid "हिंदी" +#: js/turtledefs.js:772 +msgid "Turtle Blocks is licensed under the AGPL." msgstr "" -#: js/toolbar.js:99 -#: js/toolbar.js:165 -#: js/toolbar.js:219 -#: js/toolbar.js:275 -msgid "igbo" +#: js/turtledefs.js:780 +msgid "Turtle Blocks GitHub repository" msgstr "" -#: js/toolbar.js:100 -#: js/toolbar.js:166 -#: js/toolbar.js:220 -#: js/toolbar.js:276 -msgid "عربى" +#: js/turtledefs.js:783 +#: js/turtledefs.js:814 +#: js/widgets/help.js:337 +#: js/widgets/help.js:359 +msgid "Congratulations." msgstr "" -#: js/toolbar.js:101 -#: js/toolbar.js:164 -#: js/toolbar.js:221 -#: js/toolbar.js:274 -msgid "తెలుగు" +#: js/turtledefs.js:784 +msgid "You have finished the tour. Please enjoy Turtle Blocks!" msgstr "" -#: js/toolbar.js:102 -#: js/toolbar.js:167 -#: js/toolbar.js:222 -#: js/toolbar.js:277 -msgid "עִברִית" +#: js/turtledefs.js:791 +msgid "A detailed guide to Music Blocks is available." msgstr "" -#: js/toolbar.js:111 -#: js/toolbar.js:175 -#: js/toolbar.js:176 -#: js/toolbar.js:231 -msgid "Full Screen" +#: js/turtledefs.js:799 +msgid "Music Blocks is an open source collection of tools for exploring musical concepts." msgstr "" -#: js/toolbar.js:145 -#: js/toolbar.js:148 -#: js/toolbar.js:200 -#: js/toolbar.js:203 -#: js/toolbar.js:255 -#: js/toolbar.js:258 -#: js/turtledefs.js:558 -msgid "Save turtle artwork as PNG" +#: js/turtledefs.js:801 +msgid "A full list of contributors can be found in the Music Blocks GitHub repository." msgstr "" -#: js/toolbar.js:147 -#: js/toolbar.js:202 -#: js/toolbar.js:257 -#: js/turtledefs.js:554 -msgid "Save turtle artwork as SVG" +#: js/turtledefs.js:803 +msgid "Music Blocks is licensed under the AGPL." msgstr "" -#: js/toolbar.js:154 -#: js/toolbar.js:209 -#: js/toolbar.js:264 -msgid "한국인" +#: js/turtledefs.js:811 +msgid "Music Blocks GitHub repository" msgstr "" -#: js/toolbar.js:171 -#: js/toolbar.js:227 -msgid "About Turtle Blocks" +#: js/turtledefs.js:815 +msgid "You have finished the tour. Please enjoy Music Blocks!" msgstr "" -#: js/toolbar.js:429 -#: js/toolbar.js:440 -msgid "Turtle Wrap Off" +#: js/turtles.js:882 +msgid "Grid" +msgstr "siatka" + +#: js/turtles.js:1024 +msgid "Expand" msgstr "" -#: js/toolbar.js:442 -msgid "Turtle Wrap On" +#: js/block-verbose.js:1616 +#: js/block-verbose.js:1735 +#: js/block.js:1580 +#: js/block.js:1699 +#: js/palette.js:605 +#: js/blocks/IntervalsBlocks.js:63 +#: js/blocks/WidgetBlocks.js:259 +msgid "temperament" msgstr "" -#: js/block.js:1470 +#: js/block-verbose.js:1630 +#: js/block.js:1594 msgid "matrix" msgstr "" -#: js/block.js:1477 -#: js/WidgetBlocks.js:1226 +#: js/block-verbose.js:1637 +#: js/block.js:1601 +#: js/blocks/WidgetBlocks.js:1509 #: plugins/rodi.rtp:324 msgid "status" msgstr "" -#: js/block.js:1484 +#: js/block-verbose.js:1644 +#: js/block.js:1608 msgid "drum mapper" msgstr "" -#: js/block.js:1491 +#: js/block-verbose.js:1651 +#: js/block.js:1615 msgid "ruler" msgstr "" -#: js/block.js:1498 -#: js/WidgetBlocks.js:327 +#: js/block-verbose.js:1658 +#: js/block.js:1622 +#: js/blocks/WidgetBlocks.js:397 #.TRANS: timbre is the character or quality of a musical sound msgid "timbre" msgstr "" -#: js/block.js:1505 +#: js/block-verbose.js:1665 +#: js/block.js:1629 msgid "stair" msgstr "" -#: js/block.js:1512 -#: js/WidgetBlocks.js:577 +#: js/block-verbose.js:1672 +#: js/block.js:1636 +#: js/blocks/WidgetBlocks.js:707 #.TRANS: the speed at music is should be played. msgid "tempo" msgstr "" -#: js/block.js:1519 -#: js/block.js:1582 -#: js/IntervalsBlocks.js:1268 +#: js/block-verbose.js:1679 +#: js/block-verbose.js:1742 +#: js/block.js:1643 +#: js/block.js:1706 +#: js/blocks/IntervalsBlocks.js:1464 #.TRANS: mode, e.g., Major in C Major msgid "mode" msgstr "" -#: js/block.js:1526 +#: js/block-verbose.js:1686 +#: js/block.js:1650 msgid "slider" msgstr "" -#: js/block.js:1533 -#: js/SensorsBlocks.js:1001 +#: js/block-verbose.js:1693 +#: js/block.js:1657 +#: js/blocks/SensorsBlocks.js:1001 msgid "keyboard" msgstr "klawiatura" -#: js/block.js:1547 -#: js/WidgetBlocks.js:957 -#: js/WidgetBlocks.js:988 +#: js/block-verbose.js:1707 +#: js/block.js:1671 +#: js/blocks/WidgetBlocks.js:1190 +#: js/blocks/WidgetBlocks.js:1228 #.TRANS: widget for subdividing a measure into distinct rhythmic elements msgid "rhythm maker" msgstr "" -#: js/block.js:1554 -#: js/block.js:2182 -#: js/block.js:2236 -#: js/RhythmBlockPaletteBlocks.js:70 -#: js/RhythmBlockPaletteBlocks.js:251 -#: js/RhythmBlockPaletteBlocks.js:484 -#: js/RhythmBlockPaletteBlocks.js:553 -#: js/RhythmBlockPaletteBlocks.js:604 -#: js/RhythmBlockPaletteBlocks.js:874 -#: js/RhythmBlocks.js:33 -#: js/RhythmBlocks.js:356 -#: js/RhythmBlocks.js:766 -#: js/RhythmBlocks.js:806 -#: js/OrnamentBlocks.js:220 -#: js/OrnamentBlocks.js:312 -#: js/MeterBlocks.js:1367 -#: js/DictActions.js:85 -#: js/phrasemaker.js:731 -#: js/phrasemaker.js:2393 -#: js/phrasemaker.js:2436 -#: js/phrasemaker.js:2534 +#: js/block-verbose.js:1714 +#: js/block-verbose.js:2457 +#: js/block-verbose.js:2514 +#: js/block.js:1678 +#: js/block.js:2385 +#: js/block.js:2442 +#: js/blocks/MeterBlocks.js:1367 +#: js/blocks/OrnamentBlocks.js:220 +#: js/blocks/OrnamentBlocks.js:312 +#: js/blocks/RhythmBlocks.js:33 +#: js/blocks/RhythmBlocks.js:356 +#: js/blocks/RhythmBlocks.js:766 +#: js/blocks/RhythmBlocks.js:806 +#: js/blocks/RhythmBlockPaletteBlocks.js:70 +#: js/blocks/RhythmBlockPaletteBlocks.js:252 +#: js/blocks/RhythmBlockPaletteBlocks.js:485 +#: js/blocks/RhythmBlockPaletteBlocks.js:554 +#: js/blocks/RhythmBlockPaletteBlocks.js:605 +#: js/blocks/RhythmBlockPaletteBlocks.js:875 +#: js/turtleactions/DictActions.js:85 +#: js/widgets/phrasemaker.js:942 +#: js/widgets/phrasemaker.js:2656 +#: js/widgets/phrasemaker.js:2699 +#: js/widgets/phrasemaker.js:2810 #.TRANS: the value (e.g., 1/4 note) of the note being played. msgid "note value" msgstr "" -#: js/block.js:1561 -#: js/block.js:2110 -#: js/block.js:2133 -#: js/IntervalsBlocks.js:875 -#: js/OrnamentBlocks.js:312 +#: js/block-verbose.js:1721 +#: js/block-verbose.js:2382 +#: js/block-verbose.js:2405 +#: js/block.js:1685 +#: js/block.js:2310 +#: js/block.js:2333 +#: js/blocks/IntervalsBlocks.js:1071 +#: js/blocks/OrnamentBlocks.js:312 #.TRANS: calculate a relative step between notes based on semi-tones msgid "scalar interval" msgstr "" -#: js/block.js:1568 -#: js/RhythmBlocks.js:148 +#: js/block-verbose.js:1728 +#: js/block.js:1692 +#: js/blocks/RhythmBlocks.js:148 msgid "milliseconds" msgstr "" -#: js/block.js:2180 -#: js/block.js:2184 -#: js/block.js:2234 -#: js/block.js:2345 -#: js/ProgramBlocks.js:1273 -#: js/RhythmBlocks.js:712 -#: js/rhythmruler.js:834 -#: js/rhythmruler.js:961 +#: js/block-verbose.js:2455 +#: js/block-verbose.js:2459 +#: js/block-verbose.js:2512 +#: js/block-verbose.js:2628 +#: js/block.js:2383 +#: js/block.js:2387 +#: js/block.js:2440 +#: js/block.js:2556 +#: js/blocks/RhythmBlocks.js:712 +#: js/blocks/ProgramBlocks.js:1273 +#: js/widgets/rhythmruler.js:1183 +#: js/widgets/rhythmruler.js:1329 msgid "silence" msgstr "" -#: js/block.js:2265 -#: js/block.js:3134 -#: js/block.js:3151 -#: js/activity.js:2336 -#: js/activity.js:2387 -#: js/musicutils.js:2932 -#: js/musicutils.js:4287 +#: js/block-verbose.js:2548 +#: js/block-verbose.js:3492 +#: js/block-verbose.js:3509 +#: js/activity.js:2718 +#: js/activity.js:2769 +#: js/block.js:2476 +#: js/block.js:3416 +#: js/block.js:3433 +#: js/utils/musicutils.js:3780 +#: js/utils/musicutils.js:5273 +#.TRANS: the note names must be separated by single spaces #.TRANS: the note names must be separated by single spaces #.TRANS: the note names must be separated by single spaces msgid "ti la sol fa mi re do" msgstr "" -#: js/block.js:2333 +#: js/block-verbose.js:2616 +#: js/block.js:2544 +#.TRANS: scalar step #.TRANS: scalar step msgid "down" msgstr "" -#: js/block.js:2334 +#: js/block-verbose.js:2617 +#: js/block.js:2545 msgid "up" msgstr "" -#: js/block.js:3477 -#: js/block.js:3490 -#: js/ExtrasBlocks.js:612 +#: js/block-verbose.js:3026 +#: js/block.js:2950 +msgid "Silence block cannot be removed." +msgstr "" + +#: js/block-verbose.js:3824 +#: js/block.js:3748 +#: js/blocks.js:2607 +#: js/blocks.js:3218 +#: js/palette.js:618 +#: js/blocks/BooleanBlocks.js:77 +#: js/blocks/BooleanBlocks.js:167 +#: js/blocks/BooleanBlocks.js:251 +#: js/blocks/BooleanBlocks.js:335 +#: js/blocks/BooleanBlocks.js:433 +#: js/blocks/BooleanBlocks.js:539 +#: js/blocks/BooleanBlocks.js:640 +#: js/blocks/BooleanBlocks.js:741 +#: js/blocks/BooleanBlocks.js:847 +#: js/blocks/BooleanBlocks.js:948 +#: js/blocks/BooleanBlocks.js:1033 +#: js/blocks/SensorsBlocks.js:910 +msgid "true" +msgstr "" + +#: js/block-verbose.js:3824 +#: js/block.js:3748 +#: js/blocks.js:2609 +#: js/blocks.js:3220 +#: js/blocks/BooleanBlocks.js:79 +#: js/blocks/BooleanBlocks.js:169 +#: js/blocks/BooleanBlocks.js:253 +#: js/blocks/BooleanBlocks.js:337 +#: js/blocks/BooleanBlocks.js:435 +#: js/blocks/BooleanBlocks.js:541 +#: js/blocks/BooleanBlocks.js:642 +#: js/blocks/BooleanBlocks.js:743 +#: js/blocks/BooleanBlocks.js:849 +#: js/blocks/BooleanBlocks.js:950 +#: js/blocks/SensorsBlocks.js:912 +msgid "false" +msgstr "" + +#: js/block-verbose.js:3835 +#: js/block-verbose.js:3848 +#: js/block.js:3759 +#: js/block.js:3772 +#: js/blocks/ExtrasBlocks.js:615 msgid "Cartesian" msgstr "Kartezjańskie" -#: js/block.js:3478 -#: js/block.js:3491 -#: js/ExtrasBlocks.js:616 +#: js/block-verbose.js:3836 +#: js/block-verbose.js:3849 +#: js/block.js:3760 +#: js/block.js:3773 +#: js/blocks/ExtrasBlocks.js:619 msgid "polar" msgstr "" -#: js/block.js:3479 -#: js/block.js:3492 -#: js/ExtrasBlocks.js:620 +#: js/block-verbose.js:3837 +#: js/block-verbose.js:3850 +#: js/block.js:3761 +#: js/block.js:3774 +#: js/blocks/ExtrasBlocks.js:623 msgid "Cartesian+polar" msgstr "" -#: js/block.js:3480 -#: js/block.js:3499 -#: js/ExtrasBlocks.js:649 +#: js/block-verbose.js:3838 +#: js/block-verbose.js:3857 +#: js/block.js:3762 +#: js/block.js:3781 +#: js/blocks/ExtrasBlocks.js:652 msgid "none" msgstr "" -#: js/block.js:3493 -#: js/ExtrasBlocks.js:625 +#: js/block-verbose.js:3851 +#: js/block.js:3775 +#: js/blocks/ExtrasBlocks.js:628 msgid "treble" msgstr "" -#: js/block.js:3494 -#: js/ExtrasBlocks.js:629 +#: js/block-verbose.js:3852 +#: js/block.js:3776 +#: js/blocks/ExtrasBlocks.js:632 msgid "grand staff" msgstr "" -#: js/block.js:3495 -#: js/ExtrasBlocks.js:633 +#: js/block-verbose.js:3853 +#: js/block.js:3777 +#: js/blocks/ExtrasBlocks.js:636 msgid "mezzo-soprano" msgstr "" -#: js/block.js:3496 -#: js/ExtrasBlocks.js:637 +#: js/block-verbose.js:3854 +#: js/block.js:3778 +#: js/blocks/ExtrasBlocks.js:640 msgid "alto" msgstr "" -#: js/block.js:3497 -#: js/ExtrasBlocks.js:641 +#: js/block-verbose.js:3855 +#: js/block.js:3779 +#: js/blocks/ExtrasBlocks.js:644 msgid "tenor" msgstr "" -#: js/block.js:3498 -#: js/ExtrasBlocks.js:645 -#: js/musicutils.js:736 -#: js/synthutils.js:64 +#: js/block-verbose.js:3856 +#: js/block.js:3780 +#: js/utils/musicutils.js:1115 +#: js/utils/synthutils.js:80 +#: js/blocks/ExtrasBlocks.js:648 #.TRANS: musical instrument msgid "bass" msgstr "" -#: js/block.js:4075 +#: js/block-verbose.js:3901 +#: js/block.js:3825 +#: js/blocks.js:2600 +#: js/blocks.js:3211 +msgid "on2" +msgstr "" + +#: js/block-verbose.js:3903 +#: js/block.js:3827 +#: js/blocks.js:2602 +#: js/blocks.js:3213 +msgid "off" +msgstr "" + +#: js/block-verbose.js:4470 +#: js/block.js:4394 msgid "Not a number" msgstr "" -#: js/block.js:4082 -msgid "Octave value must be between 1 and 10." +#: js/block-verbose.js:4477 +#: js/block.js:4401 +msgid "Octave value must be between 1 and 10." +msgstr "" + +#: js/block-verbose.js:4485 +#: js/block.js:4409 +msgid "Numbers can have at most 10 digits." +msgstr "" + +#: js/activity.js:390 +#: js/activity.js:395 +msgid "Search for blocks" +msgstr "" + +#: js/activity.js:1413 +msgid "Refresh your browser to change to advanced mode." +msgstr "" + +#: js/activity.js:1418 +msgid "Refresh your browser to change to beginner mode." +msgstr "" + +#: js/activity.js:1477 +msgid "Catching mice" +msgstr "" + +#: js/activity.js:1478 +msgid "Cleaning the instruments" +msgstr "" + +#: js/activity.js:1479 +msgid "Testing key pieces" +msgstr "" + +#: js/activity.js:1480 +msgid "Sight-reading" +msgstr "" + +#: js/activity.js:1481 +msgid "Combining math and music" +msgstr "" + +#: js/activity.js:1482 +msgid "Generating more blocks" +msgstr "" + +#: js/activity.js:1483 +msgid "Do Re Mi Fa Sol La Ti Do" +msgstr "" + +#: js/activity.js:1484 +msgid "Tuning string instruments" +msgstr "" + +#: js/activity.js:1485 +msgid "Pressing random keys" +msgstr "" + +#: js/activity.js:1663 +msgid "plugins will be removed upon restart." +msgstr "" + +#: js/activity.js:1672 +msgid "show Cartesian" +msgstr "" + +#: js/activity.js:2211 +#: js/palette.js:589 +#: js/blocks/RhythmBlocks.js:923 +#: js/blocks/PitchBlocks.js:442 +#: js/blocks/PitchBlocks.js:1786 +#.TRANS: a numeric mapping of the notes in an octave based on the musical mode +msgid "scale degree" +msgstr "" + +#: js/activity.js:2214 +#: js/palette.js:598 +msgid "voice name" +msgstr "" + +#: js/activity.js:2217 +#: js/palette.js:595 +msgid "invert mode" +msgstr "" + +#: js/activity.js:2220 +msgid "output tools" +msgstr "" + +#: js/activity.js:2223 +msgid "custom note" +msgstr "" + +#: js/activity.js:2226 +msgid "accidental name" +msgstr "" + +#: js/activity.js:2229 +#: js/blocks/PitchBlocks.js:855 +msgid "east indian solfege" +msgstr "" + +#: js/activity.js:2232 +#: js/blocks/PitchBlocks.js:869 +msgid "note name" +msgstr "" + +#: js/activity.js:2235 +#: js/blocks/IntervalsBlocks.js:94 +msgid "temperament name" +msgstr "" + +#: js/activity.js:2238 +#: js/palette.js:592 +msgid "mode name" +msgstr "" + +#: js/activity.js:2241 +msgid "chord name" +msgstr "" + +#: js/activity.js:2244 +#: js/palette.js:615 +msgid "interval name" +msgstr "" + +#: js/activity.js:2247 +msgid "filter type" +msgstr "" + +#: js/activity.js:2250 +msgid "oscillator type" +msgstr "" + +#: js/activity.js:2253 +#: js/blocks.js:2479 +#: js/blocks.js:2487 +msgid "audio file" +msgstr "" + +#: js/activity.js:2256 +#: js/blocks/DrumBlocks.js:32 +msgid "noise name" +msgstr "" + +#: js/activity.js:2259 +#: js/blocks/DrumBlocks.js:75 +msgid "drum name" +msgstr "" + +#: js/activity.js:2262 +#: js/blocks/DrumBlocks.js:119 +msgid "effects name" +msgstr "" + +#: js/activity.js:2265 +msgid "wrap mode" +msgstr "" + +#: js/activity.js:2268 +msgid "load file" +msgstr "" + +#: js/activity.js:2435 +#: js/activity.js:5851 +msgid "This block is deprecated." +msgstr "" + +#: js/activity.js:2437 +#: js/activity.js:5853 +msgid "Block cannot be found." +msgstr "" + +#: js/activity.js:2645 +msgid "Saving block artwork" +msgstr "" + +#: js/activity.js:2656 +msgid "Erase" +msgstr "" + +#: js/activity.js:2683 +#: js/activity.js:2705 +msgid "Paste" +msgstr "Wklej" + +#: js/activity.js:2687 +msgid "Save block help" +msgstr "" + +#: js/activity.js:2772 +msgid "Jumping to the bottom of the page." +msgstr "" + +#: js/activity.js:2778 +msgid "Scrolling up." +msgstr "" + +#: js/activity.js:2783 +msgid "Scrolling down." +msgstr "" + +#: js/activity.js:2788 +msgid "Extracting block" +msgstr "" + +#: js/activity.js:2796 +msgid "Moving block up." +msgstr "" + +#: js/activity.js:2817 +msgid "Moving block down." msgstr "" -#: js/block.js:4090 -msgid "Numbers can have at most 10 digits." +#: js/activity.js:2838 +msgid "Moving block left." msgstr "" -#: js/notation.js:353 -msgid "Lilypond cannot process pickup of " +#: js/activity.js:2855 +msgid "Moving block right." msgstr "" -#: js/turtledefs.js:40 -#.TRANS: put the URL to the guide here, e.g., https://github.com/sugarlabs/turtleblocksjs/tree/master/guide/README.md -msgid "guide url" +#: js/activity.js:2870 +msgid "Jump to home position." msgstr "" -#: js/turtledefs.js:85 -#: js/turtledefs.js:437 -msgid "Turtle Blocks is a Logo-inspired turtle that draws colorful pictures with snap-together visual-programming blocks." +#: js/activity.js:2897 +msgid "Hide blocks" msgstr "" -#: js/turtledefs.js:118 -#: js/turtledefs.js:220 -msgid "search" +#: js/activity.js:4500 +msgid "Click the run button to run the project." msgstr "" -#: js/turtledefs.js:120 -#: js/turtledefs.js:222 -#: js/WidgetBlocks.js:437 -#: js/MeterBlocks.js:1343 -#.TRANS: musical meter (time signature), e.g., 4:4 -msgid "meter" +#: js/activity.js:5692 +msgid "Show/hide block" msgstr "" -#: js/turtledefs.js:122 -#: js/turtledefs.js:224 -msgid "intervals" +#: js/activity.js:5698 +msgid "Expand/collapse blocks" msgstr "" -#: js/turtledefs.js:124 -#: js/turtledefs.js:226 -msgid "ornament" +#: js/activity.js:5976 +msgid "Could not parse JSON input." msgstr "" -#: js/turtledefs.js:125 -#: js/turtledefs.js:227 -#: js/VolumeBlocks.js:362 -#: js/VolumeBlocks.js:502 -#: js/VolumeBlocks.js:545 -msgid "volume" +#: js/activity.js:6475 +#: js/activity.js:6580 +#: js/activity.js:6631 +msgid "Cannot load project from the file. Please check the file type." msgstr "" -#: js/turtledefs.js:129 -#: js/turtledefs.js:231 -msgid "boxes" +#: js/activity.js:6917 +msgid "Invalid parameters" msgstr "" -#: js/turtledefs.js:130 -#: js/turtledefs.js:232 -msgid "widgets" -msgstr "" +#: js/blocks.js:1212 +#: js/blocks.js:3444 +#: js/blocks.js:3834 +#: js/blocks.js:3865 +#: js/blocks.js:3914 +#: js/blocks.js:3949 +#: js/blocks.js:6586 +#: js/palette.js:509 +#: js/palette.js:638 +#: js/palette.js:1105 +#: js/blocks/BoxesBlocks.js:282 +#: js/blocks/BoxesBlocks.js:285 +#: js/blocks/BoxesBlocks.js:405 +#: js/blocks/BoxesBlocks.js:594 +msgid "box" +msgstr "pudło" -#: js/turtledefs.js:131 -#: js/turtledefs.js:233 -#: js/phrasemaker.js:824 -msgid "graphics" +#: js/blocks.js:1713 +msgid "Consider breaking this stack into parts." msgstr "" -#: js/turtledefs.js:134 -#: js/turtledefs.js:236 -msgid "boolean" +#: js/blocks.js:2472 +#: js/palette.js:653 +#: js/blocks/MediaBlocks.js:602 +msgid "open file" msgstr "" -#: js/turtledefs.js:137 -#: js/turtledefs.js:239 -#: js/HeapBlocks.js:59 -#: js/status.js:147 -msgid "heap" +#: js/blocks.js:3247 +#: js/palette.js:574 +#: js/blocks/MediaBlocks.js:892 +#: js/blocks/MediaBlocks.js:963 +msgid "text" +msgstr "tekst" + +#: js/blocks.js:3443 +#: js/palette.js:641 +#: js/palette.js:642 +#: js/blocks/BoxesBlocks.js:514 +msgid "store in box" msgstr "" -#: js/turtledefs.js:138 -#: js/turtledefs.js:240 -#: js/ProgramBlocks.js:495 -#: js/DictBlocks.js:142 -msgid "dictionary" +#: js/blocks.js:3448 +#: js/blocks.js:3888 +#: js/blocks.js:3923 +#: js/blocks.js:3958 +#: js/blocks.js:5862 +#: js/blocks.js:5883 +#: js/blocks/BoxesBlocks.js:772 +msgid "box1" msgstr "" -#: js/turtledefs.js:139 -#: js/turtledefs.js:241 -msgid "ensemble" +#: js/blocks.js:3450 +#: js/blocks.js:3890 +#: js/blocks.js:3925 +#: js/blocks.js:3960 +#: js/blocks.js:5864 +#: js/blocks.js:5885 +#: js/blocks/BoxesBlocks.js:663 +msgid "box2" msgstr "" -#: js/turtledefs.js:140 -#: js/turtledefs.js:242 -msgid "extras" +#: js/blocks.js:4122 +#: js/palette.js:639 +#: js/palette.js:644 +#: js/palette.js:1041 +#: js/blocks/BoxesBlocks.js:591 +msgid "store in" +msgstr "przechowaj w" + +#: js/blocks.js:4122 +#: js/blocks/BoxesBlocks.js:595 +#: js/blocks/DictBlocks.js:215 +#: js/blocks/DictBlocks.js:289 +#: js/blocks/EnsembleBlocks.js:391 +#: js/blocks/EnsembleBlocks.js:402 +#: js/blocks/MediaBlocks.js:746 +#: js/blocks/PitchBlocks.js:656 +#: js/blocks/PitchBlocks.js:934 +#: js/blocks/PitchBlocks.js:1866 +#: js/blocks/ProgramBlocks.js:390 +#: js/blocks/ProgramBlocks.js:495 +#: js/blocks/ProgramBlocks.js:658 +#: js/blocks/ToneBlocks.js:1025 +msgid "name" msgstr "" -#: js/turtledefs.js:142 -#: js/turtledefs.js:244 -#.TRANS: program as in computer program -#.TRANS: program as in computer program -msgid "program" +#: js/blocks.js:4122 +#: js/blocks/BoxesBlocks.js:75 +#: js/blocks/BoxesBlocks.js:595 +#: js/blocks/DictBlocks.js:289 +#: js/blocks/DictBlocks.js:430 +#: js/blocks/HeapBlocks.js:544 +#: js/blocks/RhythmBlocks.js:1130 +msgid "value" +msgstr "wartość" + +#: js/blocks.js:4465 +msgid "Forever loop detected inside a note value block. Unexpected things may happen." msgstr "" -#: js/turtledefs.js:143 -#: js/turtledefs.js:245 -msgid "my blocks" +#: js/blocks.js:4988 +msgid "There is no block selected." msgstr "" -#: js/turtledefs.js:185 -#: js/turtledefs.js:281 -msgid "artwork" +#: js/blocks.js:5091 +#: js/blocks/MediaBlocks.js:888 +msgid "show" +msgstr "pokaż" + +#: js/blocks.js:5094 +#: js/blocks/MediaBlocks.js:803 +#.TRANS: Avatar is the image used to determine the appearance of the mouse. +msgid "avatar" msgstr "" -#: js/turtledefs.js:185 -#: js/turtledefs.js:281 -msgid "logic" +#: js/blocks.js:5097 +#: js/blocks/ToneBlocks.js:1010 +#: js/widgets/sampler.js:975 +#.TRANS: The sound sample that the user uploads. +msgid "sample" msgstr "" -#: js/turtledefs.js:185 -#: js/turtledefs.js:281 -msgid "music" +#: js/lilypond.js:606 +msgid "brown rat" msgstr "" -#: js/turtledefs.js:187 -#: js/turtledefs.js:463 -msgid "Music Blocks is a collection of tools for exploring fundamental musical concepts in a fun way." +#: js/lilypond.js:607 +msgid "mole" msgstr "" -#: js/turtledefs.js:436 -msgid "Welcome to Turtle Blocks" +#: js/lilypond.js:608 +msgid "chipmunk" msgstr "" -#: js/turtledefs.js:438 -#: js/turtledefs.js:465 -#: js/turtledefs.js:774 -#: js/turtledefs.js:805 -msgid "The current version is" +#: js/lilypond.js:609 +msgid "red squirrel" msgstr "" -#: js/turtledefs.js:446 -#: js/turtledefs.js:483 -msgid "Click the run button to run the project in fast mode." +#: js/lilypond.js:610 +msgid "guinea pig" msgstr "" -#: js/turtledefs.js:452 -msgid "Stop the turtle." +#: js/lilypond.js:611 +msgid "capybara" msgstr "" -#: js/turtledefs.js:454 -#: js/turtledefs.js:491 -msgid "You can also type Alt-S to stop." +#: js/lilypond.js:612 +msgid "coypu" msgstr "" -#: js/turtledefs.js:462 -#: js/help.js:333 -msgid "Welcome to Music Blocks" +#: js/lilypond.js:613 +msgid "black rat" msgstr "" -#: js/turtledefs.js:472 -#: js/help.js:334 -msgid "Meet Mr. Mouse!" +#: js/lilypond.js:614 +msgid "grey squirrel" msgstr "" -#: js/turtledefs.js:473 -msgid "Mr Mouse is our Music Blocks conductor." +#: js/lilypond.js:615 +msgid "flying squirrel" msgstr "" -#: js/turtledefs.js:475 -msgid "Mr Mouse encourages you to explore Music Blocks." +#: js/lilypond.js:616 +msgid "bat" msgstr "" -#: js/turtledefs.js:477 -msgid "Let us start our tour!" +#: js/lilypond.js:749 +#: js/lilypond.js:913 +#: js/lilypond.js:951 +#: js/blocks/ActionBlocks.js:1256 +#: js/blocks/ExtrasBlocks.js:556 +msgid "start drum" msgstr "" -#: js/turtledefs.js:489 -msgid "Stop the music (and the mice)." +#: js/logo.js:61 +msgid "Not a valid pitch name" msgstr "" -#: js/turtledefs.js:499 -msgid "Record your project as video." +#: js/logo.js:507 +#: js/blocks/ProgramBlocks.js:258 +#: js/blocks/ProgramBlocks.js:427 +msgid "You must select a file." msgstr "" -#: js/turtledefs.js:505 -msgid "Toggle Fullscreen mode." +#: js/logo.js:1696 +msgid "Playback is ready." msgstr "" -#: js/turtledefs.js:511 -msgid "Initialize a new project." +#: js/macros.js:711 +#: js/utils/musicutils.js:1162 +#: js/utils/synthutils.js:202 +#.TRANS: animal sound effect +msgid "duck" msgstr "" -#: js/turtledefs.js:517 -msgid "You can also load projects from the file system." +#: js/notation.js:353 +msgid "Lilypond cannot process pickup of " msgstr "" -#: js/turtledefs.js:522 -#: js/StringHelper.js:46 -msgid "Delete" +#: js/palette.js:571 +msgid "grid" +msgstr "siatka" + +#: js/palette.js:580 +msgid "effect" msgstr "" -#: js/turtledefs.js:523 -msgid "To delete a block, just right-click on it, then you will be able to see the delete option" +#: js/palette.js:586 +msgid "sargam" msgstr "" -#: js/turtledefs.js:528 -#: js/activity.js:2270 -#: js/LocalCard.js:31 -msgid "Copy" -msgstr "Kopiuj" +#: js/palette.js:601 +#: js/blocks/PitchBlocks.js:1209 +msgid "custom pitch" +msgstr "" -#: js/turtledefs.js:529 -msgid "To copy a block, just right-click on it, then you will be able to see the copy option" +#: js/palette.js:609 +msgid "accidental" msgstr "" -#: js/turtledefs.js:535 -msgid "To extract a block, just right-click on it, then you will be able to see the extract option" +#: js/palette.js:633 +#: js/blocks/PitchBlocks.js:405 +msgid "pitch converter" msgstr "" -#: js/turtledefs.js:542 -#: js/turtledefs.js:552 -#: js/turtledefs.js:573 -msgid "Save your project to a file." +#: js/piemenus.js:200 +#: js/utils/musicutils.js:1187 +#: js/utils/musicutils.js:1207 +#: js/widgets/musickeyboard.js:2341 +#: js/widgets/phrasemaker.js:1908 +#: js/widgets/sampler.js:810 +#.TRANS: double sharp is a music term related to pitch +msgid "double sharp" msgstr "" -#: js/turtledefs.js:549 -#: js/turtledefs.js:570 -msgid "save" +#: js/piemenus.js:201 +#: js/utils/musicutils.js:1185 +#: js/utils/musicutils.js:1208 +#: js/blocks/PitchBlocks.js:1539 +#: js/turtleactions/PitchActions.js:323 +#: js/widgets/musickeyboard.js:2342 +#: js/widgets/phrasemaker.js:1909 +#: js/widgets/sampler.js:811 +#.TRANS: sharp is a music term related to pitch +#.TRANS: sharp is a half-step up in pitch +msgid "sharp" msgstr "" -#: js/turtledefs.js:556 -#: js/turtledefs.js:577 -msgid "Save graphics from your project to as SVG." +#: js/piemenus.js:202 +#: js/utils/musicutils.js:1183 +#: js/utils/musicutils.js:1209 +#: js/widgets/musickeyboard.js:2343 +#: js/widgets/phrasemaker.js:1910 +#: js/widgets/sampler.js:812 +#.TRANS: natural is a music term related to pitch +msgid "natural" msgstr "" -#: js/turtledefs.js:560 -#: js/turtledefs.js:581 -msgid "Save graphics from your project as PNG." +#: js/piemenus.js:203 +#: js/utils/musicutils.js:1181 +#: js/utils/musicutils.js:1210 +#: js/blocks/PitchBlocks.js:1498 +#: js/turtleactions/PitchActions.js:326 +#: js/widgets/musickeyboard.js:2344 +#: js/widgets/phrasemaker.js:1911 +#: js/widgets/sampler.js:813 +#.TRANS: flat is a music term related to pitch +#.TRANS: flat is a half-step down in pitch +msgid "flat" msgstr "" -#: js/turtledefs.js:564 -#: js/turtledefs.js:597 -msgid "Save block artwork as an SVG file." +#: js/piemenus.js:204 +#: js/utils/musicutils.js:1179 +#: js/utils/musicutils.js:1211 +#: js/widgets/musickeyboard.js:2345 +#: js/widgets/phrasemaker.js:1912 +#: js/widgets/sampler.js:814 +#.TRANS: double flat is a music term related to pitch +msgid "double flat" msgstr "" -#: js/turtledefs.js:585 -msgid "Save audio from your project as WAV." +#: js/piemenus.js:2864 +#: js/utils/musicutils.js:1006 +#: js/blocks/PitchBlocks.js:1385 +#.TRANS: unison is a music term related to intervals +#.TRANS: unison means the note is the same as the current note +msgid "unison" msgstr "" -#: js/turtledefs.js:589 -msgid "Save your project to as an ABC file." +#: js/piemenus.js:3018 +#: js/piemenus.js:3091 +#: js/utils/musicutils.js:1014 +#: js/utils/musicutils.js:1189 +#: js/utils/musicutils.js:1326 +#.TRANS: major is a music term related to intervals and mode +msgid "major" msgstr "" -#: js/turtledefs.js:593 -msgid "Save your project to as a Lilypond file." +#: js/piemenus.js:3018 +#: js/piemenus.js:3091 +#: js/utils/musicutils.js:1032 +#.TRANS: modal scale for music +msgid "ionian" msgstr "" -#: js/turtledefs.js:604 -msgid "Load samples from server" +#: js/piemenus.js:3020 +#: js/piemenus.js:3095 +#: js/utils/musicutils.js:1012 +#: js/utils/musicutils.js:1190 +#: js/utils/musicutils.js:1323 +#.TRANS: minor is a music term related to intervals and mode +msgid "minor" msgstr "" -#: js/turtledefs.js:605 -msgid "This button opens a viewer for loading example projects." +#: js/piemenus.js:3020 +#: js/piemenus.js:3095 +#: js/utils/musicutils.js:1042 +#.TRANS: modal scale for music +msgid "aeolian" msgstr "" -#: js/turtledefs.js:611 -msgid "Palette buttons" +#: js/piemenus.js:3410 +msgid "Duplicate" msgstr "" -#: js/turtledefs.js:612 -msgid "This toolbar contains the palette buttons including Rhythm Pitch Tone Action and more." +#: js/piemenus.js:3412 +msgid "Move to trash" msgstr "" -#: js/turtledefs.js:614 -msgid "Click to show the palettes of blocks and drag blocks from the palettes onto the canvas to use them." +#: js/piemenus.js:3413 +#: js/widgets/timbre.js:968 +#: planet/js/StringHelper.js:69 +msgid "Close" msgstr "" -#: js/turtledefs.js:620 -msgid "Cartesian/Polar" +#: js/piemenus.js:3419 +msgid "Save stack" msgstr "" -#: js/turtledefs.js:621 -msgid "Show or hide a coordinate grid." +#: js/piemenus.js:3449 +msgid "In order to copy a sample, you must reload the widget, import the sample again, and export it." msgstr "" -#: js/turtledefs.js:627 -msgid "Clear the screen and return the mice to their initial positions." +#: js/piemenus.js:3812 +msgid "You have chosen key " msgstr "" -#: js/turtledefs.js:633 -msgid "Collapse the graphics window." +#: js/piemenus.js:3816 +msgid " for your pitch preview." msgstr "" -#: js/turtledefs.js:638 -#: js/activity.js:4256 -#: js/activity.js:4256 -msgid "Home" +#: js/turtle-singer.js:1363 +#.TRANS: partials are weighted components in a harmonic series +msgid "You must have at least one Partial block inside of a Weighted-partial block" msgstr "" -#: js/turtledefs.js:639 -msgid "Return all blocks to the center of the screen." +#: js/turtle-singer.js:2077 +msgid "synth cannot play chords." msgstr "" -#: js/turtledefs.js:644 -msgid "Show/hide blocks" -msgstr "Pokaż/schowaj schemat" - -#: js/turtledefs.js:645 -msgid "Hide or show the blocks and the palettes." +#: js/utils/musicutils.js:505 +#: js/utils/musicutils.js:645 +#: js/widgets/pitchdrummatrix.js:228 +#: js/widgets/musickeyboard.js:2885 +msgid "rest" msgstr "" -#: js/turtledefs.js:650 -msgid "Expand/collapse collapsable blocks" +#: js/utils/musicutils.js:689 +msgid "Perfect unison" msgstr "" -#: js/turtledefs.js:651 -msgid "Expand or collapse start and action stacks." +#: js/utils/musicutils.js:689 +msgid "Diminished second" msgstr "" -#: js/turtledefs.js:658 -#: js/activity.js:4265 -msgid "Decrease block size" +#: js/utils/musicutils.js:690 +msgid "Minor second" msgstr "" -#: js/turtledefs.js:659 -msgid "Decrease the size of the blocks." +#: js/utils/musicutils.js:690 +msgid "Augmented unison" msgstr "" -#: js/turtledefs.js:664 -#: js/activity.js:4267 -msgid "Increase block size" +#: js/utils/musicutils.js:691 +msgid "Major second" msgstr "" -#: js/turtledefs.js:665 -msgid "Increase the size of the blocks." +#: js/utils/musicutils.js:691 +msgid "Diminished third" msgstr "" -#: js/turtledefs.js:670 -msgid "Expand/collapse option toolbar" +#: js/utils/musicutils.js:692 +msgid "Minor third" msgstr "" -#: js/turtledefs.js:671 -msgid "Click this button to expand or collapse the auxillary toolbar." +#: js/utils/musicutils.js:692 +msgid "Augmented second" msgstr "" -#: js/turtledefs.js:676 -msgid "Run slow" +#: js/utils/musicutils.js:693 +msgid "Major third" msgstr "" -#: js/turtledefs.js:677 -msgid "Click to run the project in slow mode." +#: js/utils/musicutils.js:693 +msgid "Diminished fourth" msgstr "" -#: js/turtledefs.js:683 -msgid "Click to run the project step by step." +#: js/utils/musicutils.js:694 +msgid "Perfect fourth" msgstr "" -#: js/turtledefs.js:690 -msgid "Display statistics about your Music project." +#: js/utils/musicutils.js:694 +msgid "Augmented third" msgstr "" -#: js/turtledefs.js:697 -msgid "Delete a selected plugin." +#: js/utils/musicutils.js:695 +msgid "Diminished fifth" msgstr "" -#: js/turtledefs.js:704 -msgid "Enable scrolling" +#: js/utils/musicutils.js:695 +msgid "Augmented fourth" msgstr "" -#: js/turtledefs.js:705 -msgid "You can scroll the blocks on the canvas." +#: js/utils/musicutils.js:696 +msgid "Perfect fifth" msgstr "" -#: js/turtledefs.js:714 -msgid "Wrap Turtle" +#: js/utils/musicutils.js:696 +msgid "Diminished sixth" msgstr "" -#: js/turtledefs.js:715 -msgid "Turn Turtle wrapping On or Off." +#: js/utils/musicutils.js:697 +msgid "Minor sixth" msgstr "" -#: js/turtledefs.js:725 -msgid "Restore blocks from the trash." +#: js/utils/musicutils.js:697 +msgid "Augmented fifth" msgstr "" -#: js/turtledefs.js:732 -msgid "Switch mode" +#: js/utils/musicutils.js:698 +msgid "Major sixth" msgstr "" -#: js/turtledefs.js:733 -msgid "Switch between beginner and advance modes." +#: js/utils/musicutils.js:698 +msgid "Diminished seventh" msgstr "" -#: js/turtledefs.js:739 -msgid "Select your language preference." +#: js/utils/musicutils.js:699 +msgid "Minor seventh" msgstr "" -#: js/turtledefs.js:745 -msgid "Keyboard shortcuts" +#: js/utils/musicutils.js:699 +msgid "Augmented sixth" msgstr "" -#: js/turtledefs.js:746 -msgid "You can type d to create a do block and r to create a re block etc." +#: js/utils/musicutils.js:700 +msgid "Major seventh" msgstr "" -#: js/turtledefs.js:753 -msgid "Show these messages." +#: js/utils/musicutils.js:700 +msgid "Diminished octave" msgstr "" -#: js/turtledefs.js:759 -#: js/turtledefs.js:790 -#: js/help.js:335 -msgid "Guide" +#: js/utils/musicutils.js:701 +msgid "Perfect octave" msgstr "" -#: js/turtledefs.js:760 -msgid "A detailed guide to Turtle Blocks is available." +#: js/utils/musicutils.js:701 +msgid "Augmented seventh" msgstr "" -#: js/turtledefs.js:764 -msgid "Turtle Blocks Guide" +#: js/utils/musicutils.js:702 +msgid "Minor ninth" msgstr "" -#: js/turtledefs.js:767 -#: js/turtledefs.js:798 -#: js/help.js:336 -msgid "About" +#: js/utils/musicutils.js:702 +msgid "Augmented octave" msgstr "" -#: js/turtledefs.js:768 -msgid "Turtle Blocks is an open source collection of tools for exploring musical concepts." +#: js/utils/musicutils.js:703 +msgid "Major ninth" msgstr "" -#: js/turtledefs.js:770 -msgid "A full list of contributors can be found in the Turtle Blocks GitHub repository." +#: js/utils/musicutils.js:703 +msgid "Diminished tenth" msgstr "" -#: js/turtledefs.js:772 -msgid "Turtle Blocks is licensed under the AGPL." +#: js/utils/musicutils.js:704 +msgid "Minor tenth" msgstr "" -#: js/turtledefs.js:780 -msgid "Turtle Blocks GitHub repository" +#: js/utils/musicutils.js:704 +msgid "Augmented ninth" msgstr "" -#: js/turtledefs.js:783 -#: js/turtledefs.js:814 -#: js/help.js:337 -#: js/help.js:359 -msgid "Congratulations." +#: js/utils/musicutils.js:705 +msgid "Major tenth" msgstr "" -#: js/turtledefs.js:784 -msgid "You have finished the tour. Please enjoy Turtle Blocks!" +#: js/utils/musicutils.js:705 +msgid "Diminished eleventh" msgstr "" -#: js/turtledefs.js:791 -msgid "A detailed guide to Music Blocks is available." +#: js/utils/musicutils.js:706 +msgid "Perfect eleventh" msgstr "" -#: js/turtledefs.js:795 -#: js/SaveInterface.js:76 -msgid "Music Blocks Guide" +#: js/utils/musicutils.js:706 +msgid "Augmented tenth" msgstr "" -#: js/turtledefs.js:799 -msgid "Music Blocks is an open source collection of tools for exploring musical concepts." +#: js/utils/musicutils.js:707 +msgid "Diminished twelfth" msgstr "" -#: js/turtledefs.js:801 -msgid "A full list of contributors can be found in the Music Blocks GitHub repository." +#: js/utils/musicutils.js:707 +msgid "Augmented eleventh" msgstr "" -#: js/turtledefs.js:803 -msgid "Music Blocks is licensed under the AGPL." +#: js/utils/musicutils.js:708 +msgid "Perfect twelfth" msgstr "" -#: js/turtledefs.js:811 -msgid "Music Blocks GitHub repository" +#: js/utils/musicutils.js:708 +msgid "Diminished thirteenth" msgstr "" -#: js/turtledefs.js:815 -msgid "You have finished the tour. Please enjoy Music Blocks!" +#: js/utils/musicutils.js:709 +msgid "Minor thirteenth" msgstr "" -#: js/activity.js:369 -msgid "Search for blocks" +#: js/utils/musicutils.js:709 +msgid "Augmented fifth, plus an octave" msgstr "" -#: js/activity.js:1145 -msgid "Refresh your browser to change to advanced mode." +#: js/utils/musicutils.js:710 +msgid "Major thirteenth" msgstr "" -#: js/activity.js:1150 -msgid "Refresh your browser to change to beginner mode." +#: js/utils/musicutils.js:710 +msgid "Diminished seventh, plus an octave" msgstr "" -#: js/activity.js:1184 -msgid "Catching mice" +#: js/utils/musicutils.js:838 +#.TRANS: ordinal number. Please keep exactly one space between each number. +msgid "1st 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th" msgstr "" -#: js/activity.js:1185 -msgid "Cleaning the instruments" +#: js/utils/musicutils.js:1008 +#: js/utils/musicutils.js:1191 +#: js/utils/musicutils.js:1325 +#.TRANS: augmented is a music term related to intervals +msgid "augmented" msgstr "" -#: js/activity.js:1186 -msgid "Testing key pieces" +#: js/utils/musicutils.js:1010 +#: js/utils/musicutils.js:1192 +#: js/utils/musicutils.js:1324 +#.TRANS: diminished is a music term related to intervals and mode +msgid "diminished" msgstr "" -#: js/activity.js:1187 -msgid "Sight-reading" +#: js/utils/musicutils.js:1016 +#: js/utils/musicutils.js:1322 +#: js/blocks/IntervalsBlocks.js:649 +#: js/turtleactions/IntervalsActions.js:120 +#: js/turtleactions/IntervalsActions.js:124 +#.TRANS: perfect is a music term related to intervals +msgid "perfect" msgstr "" -#: js/activity.js:1188 -msgid "Combining math and music" +#: js/utils/musicutils.js:1018 +#.TRANS: twelve semi-tone scale for music +msgid "chromatic" msgstr "" -#: js/activity.js:1189 -msgid "Generating more blocks" +#: js/utils/musicutils.js:1019 +msgid "algerian" msgstr "" -#: js/activity.js:1190 -msgid "Do Re Mi Fa Sol La Ti Do" +#: js/utils/musicutils.js:1020 +msgid "spanish" msgstr "" -#: js/activity.js:1191 -msgid "Tuning string instruments" +#: js/utils/musicutils.js:1022 +#.TRANS: modal scale in music +msgid "octatonic" msgstr "" -#: js/activity.js:1192 -msgid "Pressing random keys" +#: js/utils/musicutils.js:1024 +#.TRANS: harmonic major scale in music +msgid "harmonic major" msgstr "" -#: js/activity.js:1351 -msgid "plugins will be removed upon restart." +#: js/utils/musicutils.js:1026 +#.TRANS: natural minor scales in music +msgid "natural minor" msgstr "" -#: js/activity.js:1360 -msgid "show Cartesian" +#: js/utils/musicutils.js:1028 +#.TRANS: harmonic minor scale in music +msgid "harmonic minor" msgstr "" -#: js/activity.js:1842 -msgid "output tools" +#: js/utils/musicutils.js:1030 +#.TRANS: melodic minor scale in music +msgid "melodic minor" msgstr "" -#: js/activity.js:1845 -msgid "custom note" +#: js/utils/musicutils.js:1034 +#.TRANS: modal scale for music +msgid "dorian" msgstr "" -#: js/activity.js:1848 -msgid "accidental name" +#: js/utils/musicutils.js:1036 +#.TRANS: modal scale for music +msgid "phrygian" msgstr "" -#: js/activity.js:1851 -#: js/PitchBlocks.js:855 -msgid "east indian solfege" +#: js/utils/musicutils.js:1038 +#.TRANS: modal scale for music +msgid "lydian" msgstr "" -#: js/activity.js:1854 -#: js/PitchBlocks.js:869 -msgid "note name" +#: js/utils/musicutils.js:1040 +#.TRANS: modal scale for music +msgid "mixolydian" msgstr "" -#: js/activity.js:1857 -#: js/IntervalsBlocks.js:94 -msgid "temperament name" +#: js/utils/musicutils.js:1044 +#.TRANS: modal scale for music +msgid "locrian" msgstr "" -#: js/activity.js:1863 -msgid "chord name" +#: js/utils/musicutils.js:1046 +#.TRANS: minor jazz scale for music +msgid "jazz minor" msgstr "" -#: js/activity.js:1869 -msgid "filter type" +#: js/utils/musicutils.js:1048 +#.TRANS: bebop scale for music +msgid "bebop" msgstr "" -#: js/activity.js:1872 -msgid "oscillator type" +#: js/utils/musicutils.js:1049 +msgid "arabic" msgstr "" -#: js/activity.js:1878 -#: js/DrumBlocks.js:32 -msgid "noise name" +#: js/utils/musicutils.js:1050 +msgid "byzantine" msgstr "" -#: js/activity.js:1881 -#: js/DrumBlocks.js:75 -msgid "drum name" +#: js/utils/musicutils.js:1052 +#.TRANS: musical scale for music by Verdi +msgid "enigmatic" msgstr "" -#: js/activity.js:1884 -#: js/DrumBlocks.js:119 -msgid "effects name" +#: js/utils/musicutils.js:1053 +msgid "ethiopian" msgstr "" -#: js/activity.js:1887 -msgid "wrap mode" +#: js/utils/musicutils.js:1055 +#.TRANS: Ethiopic scale for music +msgid "geez" msgstr "" -#: js/activity.js:1890 -msgid "load file" +#: js/utils/musicutils.js:1056 +msgid "hindu" msgstr "" -#: js/activity.js:2056 -msgid "This block is deprecated." +#: js/utils/musicutils.js:1057 +msgid "hungarian" msgstr "" -#: js/activity.js:2058 -msgid "Block cannot be found." +#: js/utils/musicutils.js:1059 +#.TRANS: minor Romanian scale for music +msgid "romanian minor" msgstr "" -#: js/activity.js:2266 -msgid "Saving block artwork" +#: js/utils/musicutils.js:1060 +msgid "spanish gypsy" msgstr "" -#: js/activity.js:2277 -msgid "Erase" +#: js/utils/musicutils.js:1062 +#.TRANS: musical scale for Mid-Eastern music +msgid "maqam" msgstr "" -#: js/activity.js:2301 -#: js/activity.js:2323 -msgid "Paste" -msgstr "Wklej" +#: js/utils/musicutils.js:1064 +#.TRANS: minor blues scale for music +msgid "minor blues" +msgstr "" -#: js/activity.js:2305 -msgid "Save block help" +#: js/utils/musicutils.js:1066 +#.TRANS: major blues scale for music +msgid "major blues" msgstr "" -#: js/activity.js:2390 -msgid "Jumping to the bottom of the page." +#: js/utils/musicutils.js:1067 +msgid "whole tone" msgstr "" -#: js/activity.js:2396 -msgid "Scrolling up." +#: js/utils/musicutils.js:1069 +#.TRANS: pentatonic is a general term that means "five note scale". This scale is typically known as "minor pentatonic" +msgid "minor pentatonic" msgstr "" -#: js/activity.js:2401 -msgid "Scrolling down." +#: js/utils/musicutils.js:1071 +#.TRANS: pentatonic is a general term that means "five note scale". This scale is typically known as "major pentatonic" +msgid "major pentatonic" msgstr "" -#: js/activity.js:2406 -msgid "Extracting block" +#: js/utils/musicutils.js:1072 +msgid "chinese" msgstr "" -#: js/activity.js:2414 -msgid "Moving block up." +#: js/utils/musicutils.js:1073 +msgid "egyptian" msgstr "" -#: js/activity.js:2435 -msgid "Moving block down." +#: js/utils/musicutils.js:1075 +#.TRANS: https://en.wikipedia.org/wiki/Hirajoshi_scale NOTE: There are three different versions of this scale +msgid "hirajoshi" msgstr "" -#: js/activity.js:2456 -msgid "Moving block left." +#: js/utils/musicutils.js:1076 +msgid "Japan" msgstr "" -#: js/activity.js:2473 -msgid "Moving block right." +#: js/utils/musicutils.js:1078 +#.TRANS: https://en.wikipedia.org/wiki/In_scale and https://en.wikipedia.org/wiki/Sakura_Sakura +msgid "in" msgstr "" -#: js/activity.js:2488 -msgid "Jump to home position." +#: js/utils/musicutils.js:1080 +#.TRANS: https://en.wikipedia.org/wiki/Miny%C5%8D_scale +msgid "minyo" msgstr "" -#: js/activity.js:2515 -msgid "Hide blocks" +#: js/utils/musicutils.js:1082 +#.TRANS: Italian mathematician +msgid "fibonacci" msgstr "" -#: js/activity.js:3389 -msgid "Click the run button to run the project." +#: js/utils/musicutils.js:1083 +#: js/utils/musicutils.js:1134 +#: js/utils/musicutils.js:1177 +#: js/utils/musicutils.js:1199 +#: js/utils/synthutils.js:134 +#: js/blocks/IntervalsBlocks.js:1124 +#: js/blocks/ToneBlocks.js:946 +#: js/blocks/VolumeBlocks.js:411 +#: js/blocks/WidgetBlocks.js:399 +#: js/blocks/WidgetBlocks.js:404 +#: js/turtleactions/VolumeActions.js:218 +#: js/widgets/modewidget.js:919 +#.TRANS: customize voice +msgid "custom" msgstr "" -#: js/activity.js:3456 -#: js/SaveInterface.js:131 -#: js/SaveInterface.js:204 -#: js/SaveInterface.js:262 -#: js/SaveInterface.js:389 -#: js/SaveInterface.js:417 -#: js/ProjectStorage.js:27 -#: js/GlobalPlanet.js:467 -#: js/GlobalPlanet.js:469 -#: js/GlobalPlanet.js:495 -#.TRANS: default project title when saving as Lilypond -msgid "My Project" +#: js/utils/musicutils.js:1085 +#: js/utils/musicutils.js:1531 +#: js/blocks/WidgetBlocks.js:176 +#.TRANS: highpass filter +msgid "highpass" msgstr "" -#: js/activity.js:4261 -msgid "Show/hide block" +#: js/utils/musicutils.js:1087 +#: js/utils/musicutils.js:1532 +#.TRANS: lowpass filter +msgid "lowpass" msgstr "" -#: js/activity.js:4263 -msgid "Expand/collapse blocks" +#: js/utils/musicutils.js:1089 +#: js/utils/musicutils.js:1533 +#.TRANS: bandpass filter +msgid "bandpass" msgstr "" -#: js/activity.js:4381 -msgid "Could not parse JSON input." +#: js/utils/musicutils.js:1091 +#: js/utils/musicutils.js:1534 +#.TRANS: high-shelf filter +msgid "highshelf" msgstr "" -#: js/activity.js:4684 -#: js/activity.js:4771 -#: js/activity.js:4821 -msgid "Cannot load project from the file. Please check the file type." +#: js/utils/musicutils.js:1093 +#: js/utils/musicutils.js:1535 +#.TRANS: low-shelf filter +msgid "lowshelf" msgstr "" -#: js/activity.js:5051 -msgid "Invalid parameters" +#: js/utils/musicutils.js:1095 +#: js/utils/musicutils.js:1536 +#.TRANS: notch-shelf filter +msgid "notch" msgstr "" -#: js/turtle-singer.js:1334 -#.TRANS: partials are weighted components in a harmonic series -msgid "You must have at least one Partial block inside of a Weighted-partial block" +#: js/utils/musicutils.js:1097 +#: js/utils/musicutils.js:1537 +#.TRANS: all-pass filter +msgid "allpass" msgstr "" -#: js/turtle-singer.js:2048 -msgid "synth cannot play chords." +#: js/utils/musicutils.js:1099 +#: js/utils/musicutils.js:1538 +#.TRANS: peaking filter +msgid "peaking" msgstr "" -#: js/lilypond.js:614 -msgid "brown rat" +#: js/utils/musicutils.js:1100 +#: js/utils/musicutils.js:1546 +#: js/utils/synthutils.js:126 +#: js/blocks/PitchBlocks.js:85 +#.TRANS: sine wave +msgid "sine" msgstr "" -#: js/lilypond.js:615 -msgid "mole" +#: js/utils/musicutils.js:1101 +#: js/utils/musicutils.js:1547 +#: js/utils/synthutils.js:128 +#: js/blocks/PitchBlocks.js:39 +#.TRANS: square wave +msgid "square" msgstr "" -#: js/lilypond.js:616 -msgid "chipmunk" +#: js/utils/musicutils.js:1102 +#: js/utils/musicutils.js:1548 +#: js/utils/synthutils.js:132 +#: js/blocks/PitchBlocks.js:62 +#: js/blocks/ToneBlocks.js:39 +#.TRANS: triangle wave +msgid "triangle" msgstr "" -#: js/lilypond.js:617 -msgid "red squirrel" +#: js/utils/musicutils.js:1103 +#: js/utils/musicutils.js:1549 +#: js/utils/synthutils.js:130 +#: js/blocks/PitchBlocks.js:108 +#.TRANS: sawtooth wave +msgid "sawtooth" msgstr "" -#: js/lilypond.js:618 -msgid "guinea pig" +#: js/utils/musicutils.js:1105 +#: js/utils/musicutils.js:1312 +#: js/blocks/PitchBlocks.js:931 +#: js/blocks/PitchBlocks.js:937 +#: js/turtleactions/PitchActions.js:469 +#.TRANS: even numbers +#.TRANS: invert based on even or odd number or musical scale +msgid "even" msgstr "" -#: js/lilypond.js:619 -msgid "capybara" +#: js/utils/musicutils.js:1107 +#: js/utils/musicutils.js:1313 +#: js/blocks/PitchBlocks.js:937 +#: js/turtleactions/PitchActions.js:471 +#.TRANS: odd numbers +msgid "odd" msgstr "" -#: js/lilypond.js:620 -msgid "coypu" +#: js/utils/musicutils.js:1108 +#: js/utils/musicutils.js:1314 +#: js/blocks/PitchBlocks.js:937 +#: js/turtleactions/PitchActions.js:473 +msgid "scalar" msgstr "" -#: js/lilypond.js:621 -msgid "black rat" +#: js/utils/musicutils.js:1109 +#: js/utils/synthutils.js:72 +#: js/blocks/VolumeBlocks.js:47 +#.TRANS: musical instrument +msgid "piano" msgstr "" -#: js/lilypond.js:622 -msgid "grey squirrel" +#: js/utils/musicutils.js:1110 +#: js/utils/synthutils.js:74 +#.TRANS: musical instrument +msgid "violin" msgstr "" -#: js/lilypond.js:623 -msgid "flying squirrel" +#: js/utils/musicutils.js:1111 +#: js/utils/synthutils.js:76 +#.TRANS: viola musical instrument +msgid "viola" msgstr "" -#: js/lilypond.js:624 -msgid "bat" +#: js/utils/musicutils.js:1112 +#: js/utils/synthutils.js:114 +#.TRANS: xylophone musical instrument +msgid "xylophone" msgstr "" -#: js/lilypond.js:757 -#: js/lilypond.js:921 -#: js/lilypond.js:959 -#: js/ActionBlocks.js:1256 -#: js/ExtrasBlocks.js:553 -msgid "start drum" +#: js/utils/musicutils.js:1113 +#: js/utils/synthutils.js:136 +#.TRANS: vibraphone musical instrument +msgid "vibraphone" msgstr "" -#: js/SaveInterface.js:59 -#: js/SaveInterface.js:61 -#: js/SaveInterface.js:93 -msgid "Music Blocks Project" +#: js/utils/musicutils.js:1114 +#: js/utils/synthutils.js:78 +#.TRANS: musical instrument +msgid "cello" msgstr "" -#: js/SaveInterface.js:63 -msgid "This project was created in Music Blocks" +#: js/utils/musicutils.js:1116 +#: js/utils/synthutils.js:82 +#.TRANS: viola musical instrument +msgid "double bass" msgstr "" -#: js/SaveInterface.js:67 -msgid "Music Blocks is a Free/Libre Software application." +#: js/utils/musicutils.js:1117 +#: js/utils/synthutils.js:84 +#: js/widgets/rhythmruler.js:2511 +#.TRANS: musical instrument +msgid "guitar" msgstr "" -#: js/SaveInterface.js:69 -msgid "The source code can be accessed at" +#: js/utils/musicutils.js:1118 +#: js/utils/synthutils.js:86 +#.TRANS: musical instrument +msgid "acoustic guitar" msgstr "" -#: js/SaveInterface.js:72 -msgid "For more information, please consult the" +#: js/utils/musicutils.js:1119 +#: js/utils/synthutils.js:88 +#.TRANS: musical instrument +msgid "flute" msgstr "" -#: js/SaveInterface.js:83 -msgid "Alternatively, open the file in Music Blocks using the Load project button." +#: js/utils/musicutils.js:1120 +#: js/utils/synthutils.js:90 +#.TRANS: musical instrument +msgid "clarinet" msgstr "" -#: js/SaveInterface.js:85 -msgid "Project Code" +#: js/utils/musicutils.js:1121 +#: js/utils/synthutils.js:92 +#.TRANS: musical instrument +msgid "saxophone" msgstr "" -#: js/SaveInterface.js:87 -msgid "This code stores data about the blocks in a project." +#: js/utils/musicutils.js:1122 +#: js/utils/synthutils.js:94 +#.TRANS: musical instrument +msgid "tuba" msgstr "" -#: js/SaveInterface.js:89 -msgid "Show" +#: js/utils/musicutils.js:1123 +#: js/utils/synthutils.js:96 +#.TRANS: musical instrument +msgid "trumpet" msgstr "" -#: js/SaveInterface.js:91 -msgid "Hide" +#: js/utils/musicutils.js:1124 +#: js/utils/synthutils.js:98 +#.TRANS: musical instrument +msgid "oboe" msgstr "" -#: js/SaveInterface.js:197 -#: js/SaveInterface.js:58 -msgid "No description provided" +#: js/utils/musicutils.js:1125 +#: js/utils/synthutils.js:100 +#.TRANS: musical instrument +msgid "trombone" msgstr "" -#: js/SaveInterface.js:332 -msgid "Your recording is in progress." +#: js/utils/musicutils.js:1126 +#: js/utils/synthutils.js:116 +#.TRANS: polytone synthesizer +msgid "electronic synth" msgstr "" -#: js/SaveInterface.js:401 -#.TRANS: File name prompt for save as Lilypond -msgid "File name" +#: js/utils/musicutils.js:1127 +#: js/utils/synthutils.js:118 +#.TRANS: simple monotone synthesizer +msgid "simple 1" msgstr "" -#: js/SaveInterface.js:403 -#: js/StringHelper.js:39 -#.TRANS: Project title prompt for save as Lilypond -msgid "Project title" +#: js/utils/musicutils.js:1128 +msgid "simple 2" msgstr "" -#: js/SaveInterface.js:405 -#.TRANS: Project title prompt for save as Lilypond -msgid "Project author" +#: js/utils/musicutils.js:1129 +msgid "simple 3" msgstr "" -#: js/SaveInterface.js:407 -#.TRANS: MIDI prompt for save as Lilypond -msgid "Include MIDI output?" +#: js/utils/musicutils.js:1130 +msgid "simple 4" msgstr "" -#: js/SaveInterface.js:409 -#.TRANS: Guitar prompt for save as Lilypond -msgid "Include guitar tablature output?" +#: js/utils/musicutils.js:1131 +#: js/utils/synthutils.js:58 +#: js/blocks/DrumBlocks.js:191 +#.TRANS: white noise synthesizer +msgid "white noise" msgstr "" -#: js/SaveInterface.js:411 -#.TRANS: Lilypond is a scripting language for generating sheet music -msgid "Save as Lilypond" +#: js/utils/musicutils.js:1132 +#: js/utils/synthutils.js:60 +#.TRANS: brown noise synthesizer +msgid "brown noise" msgstr "" -#: js/SaveInterface.js:426 -#: js/EnsembleBlocks.js:75 -#: js/EnsembleBlocks.js:154 -#: js/EnsembleBlocks.js:216 -#: js/EnsembleBlocks.js:302 -#: js/EnsembleBlocks.js:348 -#: js/EnsembleBlocks.js:389 -#: js/EnsembleBlocks.js:441 -#: js/EnsembleBlocks.js:490 -#: js/EnsembleBlocks.js:536 -#: js/EnsembleBlocks.js:583 -#: js/EnsembleBlocks.js:637 -#: js/EnsembleBlocks.js:753 -#: js/EnsembleBlocks.js:840 -#: js/EnsembleBlocks.js:899 -#: js/EnsembleBlocks.js:942 -#: js/EnsembleBlocks.js:1212 -#: js/EnsembleBlocks.js:1280 -#.TRANS: default project author when saving as Lilypond -msgid "Mr. Mouse" +#: js/utils/musicutils.js:1133 +#: js/utils/synthutils.js:62 +#.TRANS: pink noise synthesizer +msgid "pink noise" msgstr "" -#: js/SaveInterface.js:573 -msgid "The Lilypond code is copied to clipboard. You can paste it here: " +#: js/utils/musicutils.js:1135 +#: js/utils/synthutils.js:148 +#: js/widgets/rhythmruler.js:2057 +#: js/widgets/rhythmruler.js:2319 +#.TRANS: musical instrument +msgid "snare drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:50 -#: js/RhythmBlockPaletteBlocks.js:232 -#.TRANS: rhythm block -#.TRANS: translate "rhythm1" as rhythm -msgid "rhythm1" +#: js/utils/musicutils.js:1136 +#: js/utils/synthutils.js:150 +#.TRANS: musical instrument +msgid "kick drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:70 -#: js/RhythmBlockPaletteBlocks.js:251 -#: js/RhythmBlockPaletteBlocks.js:484 -#: js/RhythmBlockPaletteBlocks.js:553 -#: js/RhythmBlockPaletteBlocks.js:874 -msgid "number of notes" +#: js/utils/musicutils.js:1137 +#: js/utils/synthutils.js:152 +#.TRANS: musical instrument +msgid "tom tom" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:126 -msgid "polyphonic rhythm" +#: js/utils/musicutils.js:1138 +#: js/utils/synthutils.js:154 +#.TRANS: musical instrument +msgid "floor tom" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:218 -msgid "The Rhythm block is used to generate rhythm patterns." +#: js/utils/musicutils.js:1139 +#: js/utils/synthutils.js:156 +#.TRANS: musical instrument +msgid "bass drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:279 -msgid "1/64 note" +#: js/utils/musicutils.js:1140 +#: js/utils/synthutils.js:158 +#.TRANS: a drum made from an inverted cup +msgid "cup drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:303 -msgid "1/32 note" +#: js/utils/musicutils.js:1141 +#: js/utils/synthutils.js:160 +#.TRANS: musical instrument +msgid "darbuka drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:331 -msgid "1/16 note" +#: js/utils/musicutils.js:1142 +#: js/utils/synthutils.js:164 +#.TRANS: musical instrument +msgid "hi hat" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:359 -msgid "eighth note" +#: js/utils/musicutils.js:1143 +#: js/utils/synthutils.js:166 +#.TRANS: a small metal bell +msgid "ride bell" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:387 -msgid "quarter note" +#: js/utils/musicutils.js:1144 +#: js/utils/synthutils.js:168 +#.TRANS: musical instrument +msgid "cow bell" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:415 -msgid "half note" +#: js/utils/musicutils.js:1145 +msgid "japanese drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:443 -msgid "whole note" +#: js/utils/musicutils.js:1146 +#: js/utils/synthutils.js:174 +#.TRANS: musical instrument +msgid "japanese bell" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:481 -#: js/RhythmBlockPaletteBlocks.js:550 -#: js/RhythmBlockPaletteBlocks.js:601 -#.TRANS: A tuplet is a note value divided into irregular time values. -msgid "tuplet" +#: js/utils/musicutils.js:1147 +#: js/utils/synthutils.js:170 +#.TRANS: musical instrument +msgid "triangle bell" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:767 -msgid "septuplet" +#: js/utils/musicutils.js:1148 +#: js/utils/synthutils.js:172 +#.TRANS: musical instrument +msgid "finger cymbals" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:795 -msgid "quintuplet" +#: js/utils/musicutils.js:1149 +#: js/utils/synthutils.js:176 +#.TRANS: a musically tuned set of bells +msgid "chime" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:823 -msgid "triplet" +#: js/utils/musicutils.js:1150 +#: js/utils/synthutils.js:178 +#.TRANS: a musical instrument +msgid "gong" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:850 -msgid "simple tuplet" +#: js/utils/musicutils.js:1151 +#: js/utils/synthutils.js:180 +#.TRANS: sound effect +msgid "clang" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:860 -msgid "Tuplets are a collection of notes that get scaled to a specific duration." +#: js/utils/musicutils.js:1152 +#: js/utils/synthutils.js:182 +#.TRANS: sound effect +msgid "crash" msgstr "" -#: js/WidgetBlocks.js:71 -#.TRANS: sound envelope (ADSR) -msgid "envelope" +#: js/utils/musicutils.js:1153 +#: js/utils/synthutils.js:184 +#.TRANS: sound effect +msgid "bottle" msgstr "" -#: js/WidgetBlocks.js:79 -#.TRANS: Attack time is the time taken for initial run-up of level from nil to peak, beginning when the key is first pressed. -msgid "attack" +#: js/utils/musicutils.js:1154 +#: js/utils/synthutils.js:186 +#.TRANS: sound effect +msgid "clap" msgstr "" -#: js/WidgetBlocks.js:81 -#.TRANS: Decay time is the time taken for the subsequent run down from the attack level to the designated sustain level. -msgid "decay" +#: js/utils/musicutils.js:1155 +#: js/utils/synthutils.js:188 +#.TRANS: sound effect +msgid "slap" msgstr "" -#: js/WidgetBlocks.js:83 -#.TRANS: Sustain level is the level during the main sequence of the sound's duration, until the key is released. -msgid "sustain" +#: js/utils/musicutils.js:1156 +#: js/utils/synthutils.js:190 +#.TRANS: sound effect +msgid "splash" msgstr "" -#: js/WidgetBlocks.js:85 -#.TRANS: Release time is the time taken for the level to decay from the sustain level to zero after the key is released. -msgid "release" +#: js/utils/musicutils.js:1157 +#: js/utils/synthutils.js:192 +#.TRANS: sound effect +msgid "bubbles" msgstr "" -#: js/WidgetBlocks.js:96 -msgid "Attack value should be from 0 to 100." +#: js/utils/musicutils.js:1158 +#: js/utils/synthutils.js:194 +#.TRANS: sound effect +msgid "raindrop" msgstr "" -#: js/WidgetBlocks.js:99 -msgid "Decay value should be from 0 to 100." +#: js/utils/musicutils.js:1159 +#: js/utils/synthutils.js:196 +#.TRANS: animal sound effect +msgid "cat" msgstr "" -#: js/WidgetBlocks.js:102 -msgid "Sustain value should be from 0 to 100." +#: js/utils/musicutils.js:1160 +#: js/utils/synthutils.js:198 +#.TRANS: animal sound effect +msgid "cricket" msgstr "" -#: js/WidgetBlocks.js:105 -msgid "Release value should be from 0-100." +#: js/utils/musicutils.js:1161 +#: js/utils/synthutils.js:200 +#.TRANS: animal sound effect +msgid "dog" msgstr "" -#: js/WidgetBlocks.js:121 -msgid "You are adding multiple envelope blocks." +#: js/utils/musicutils.js:1163 +#: js/utils/synthutils.js:102 +#.TRANS: musical instrument +msgid "banjo" msgstr "" -#: js/WidgetBlocks.js:144 -#.TRANS: a filter removes some unwanted components from a signal -msgid "filter" +#: js/utils/musicutils.js:1164 +#: js/utils/synthutils.js:104 +#.TRANS: musical instrument +msgid "koto" msgstr "" -#: js/WidgetBlocks.js:149 -#: js/musicutils.js:706 -#: js/musicutils.js:1105 -#.TRANS: highpass filter -msgid "highpass" +#: js/utils/musicutils.js:1165 +#: js/utils/synthutils.js:106 +#.TRANS: musical instrument +msgid "dulcimer" msgstr "" -#: js/WidgetBlocks.js:152 -#: js/ToneBlocks.js:42 -#: js/timbre.js:1558 -#: js/timbre.js:1808 -#.TRANS: type of filter, e.g., lowpass, highpass, etc. -#.TRANS: there are different types (sine, triangle, square...) of oscillators. -msgid "type" +#: js/utils/musicutils.js:1166 +#: js/utils/synthutils.js:108 +#.TRANS: musical instrument +msgid "electric guitar" msgstr "" -#: js/WidgetBlocks.js:154 -#: js/timbre.js:1818 -#.TRANS: rolloff is the steepness of a change in frequency. -msgid "rolloff" +#: js/utils/musicutils.js:1167 +#: js/utils/synthutils.js:110 +#.TRANS: musical instrument +msgid "bassoon" msgstr "" -#: js/WidgetBlocks.js:155 -#: js/MediaBlocks.js:692 -#: js/temperament.js:382 -#: js/temperament.js:417 -#: js/temperament.js:477 -#: js/temperament.js:485 -#: js/temperament.js:1348 -#: js/timbre.js:1842 -msgid "frequency" +#: js/utils/musicutils.js:1168 +#: js/utils/synthutils.js:112 +#.TRANS: musical instrument +msgid "celeste" msgstr "" -#: js/WidgetBlocks.js:179 -#.TRANS: rolloff is the steepness of a change in frequency. -msgid "Rolloff value should be either -12, -24, -48, or -96 decibels/octave." +#: js/utils/musicutils.js:1170 +#: js/widgets/temperament.js:787 +#.TRANS: musical temperament +msgid "equal" msgstr "" -#: js/WidgetBlocks.js:211 -msgid "The Temperament tool is used to define custom tuning." +#: js/utils/musicutils.js:1172 +#.TRANS: musical temperament +msgid "Pythagorean" msgstr "" -#: js/WidgetBlocks.js:277 -#: js/sampler.js:329 -msgid "Upload a sample and adjust its pitch center." +#: js/utils/musicutils.js:1174 +#.TRANS: musical temperament +msgid "just intonation" msgstr "" -#: js/WidgetBlocks.js:284 -#.TRANS: the speed at music is should be played. -msgid "sampler" +#: js/utils/musicutils.js:1176 +#.TRANS: musical temperament +msgid "meantone" msgstr "" -#: js/WidgetBlocks.js:329 -#: js/WidgetBlocks.js:334 -#: js/IntervalsBlocks.js:928 -#: js/VolumeBlocks.js:411 -#: js/ToneBlocks.js:946 -#: js/VolumeActions.js:218 -#: js/musicutils.js:704 -#: js/musicutils.js:755 -#: js/musicutils.js:798 -#: js/musicutils.js:820 -#: js/musicutils.js:1136 -#: js/synthutils.js:118 -#: js/modewidget.js:919 -#.TRANS: customize voice -msgid "custom" +#: js/utils/musicutils.js:1193 +msgid "major 7th" msgstr "" -#: js/WidgetBlocks.js:432 -msgid "The Meter block opens a tool to select strong beats for the meter." +#: js/utils/musicutils.js:1194 +msgid "minor 7th" msgstr "" -#: js/WidgetBlocks.js:473 -msgid "The oscilloscope block opens a tool to visualize waveforms." +#: js/utils/musicutils.js:1195 +msgid "dominant 7th" msgstr "" -#: js/WidgetBlocks.js:478 -msgid "oscilloscope" +#: js/utils/musicutils.js:1196 +msgid "minor-major 7th" msgstr "" -#: js/WidgetBlocks.js:530 -msgid "The Custom mode block opens a tool to explore musical mode (the spacing of the notes in a scale)." +#: js/utils/musicutils.js:1197 +msgid "fully-diminished 7th" msgstr "" -#: js/WidgetBlocks.js:536 -#.TRANS: musical mode is the pattern of half-steps in an octave, e.g., Major or Minor modes -msgid "custom mode" +#: js/utils/musicutils.js:1198 +msgid "half-diminished 7th" msgstr "" -#: js/WidgetBlocks.js:570 -msgid "The Tempo block opens a metronome to visualize the beat." +#: js/utils/musicutils.js:1557 +#: js/utils/musicutils.js:1569 +msgid "Equal (12EDO)" msgstr "" -#: js/WidgetBlocks.js:617 -msgid "The Arpeggio Widget is used to compose chord sequences." +#: js/utils/musicutils.js:1558 +#: js/utils/musicutils.js:1570 +msgid "5-limit Just Intonation" msgstr "" -#: js/WidgetBlocks.js:623 -#: js/IntervalsBlocks.js:683 -msgid "arpeggio" +#: js/utils/musicutils.js:1559 +#: js/utils/musicutils.js:1571 +msgid "Pythagorean (3-limit JI)" msgstr "" -#: js/WidgetBlocks.js:677 -msgid "The Pitch drum matrix is used to map pitches to drum sounds." +#: js/utils/musicutils.js:1560 +#: js/utils/musicutils.js:1561 +#: js/utils/musicutils.js:1572 +#: js/utils/musicutils.js:1573 +msgid "Meantone" msgstr "" -#: js/WidgetBlocks.js:682 -#.TRANS: makes a mapping between pitches and drum sounds -msgid "pitch-drum mapper" +#: js/utils/musicutils.js:1574 +msgid "Custom" msgstr "" -#: js/WidgetBlocks.js:724 -msgid "You must have at least one pitch block and one drum block in the matrix." +#: js/utils/musicutils.js:5387 +#: js/utils/musicutils.js:5430 +msgid "current" msgstr "" -#: js/WidgetBlocks.js:746 -msgid "The Pitch slider tool to is used to generate pitches at selected frequencies." +#: js/utils/musicutils.js:5390 +#: js/utils/musicutils.js:5421 +msgid "next" msgstr "" -#: js/WidgetBlocks.js:751 -#.TRANS: widget to generate pitches using a slider -msgid "pitch slider" +#: js/utils/musicutils.js:5393 +#: js/utils/musicutils.js:5426 +msgid "previous" msgstr "" -#: js/WidgetBlocks.js:788 -msgid "chromatic keyboard" +#: js/utils/synthutils.js:120 +#.TRANS: simple monotone synthesizer +msgid "simple-2" msgstr "" -#: js/WidgetBlocks.js:815 -#: js/WidgetBlocks.js:874 -#.TRANS: widget to generate pitches using a slider -msgid "music keyboard" +#: js/utils/synthutils.js:122 +#.TRANS: simple monotone synthesizer +msgid "simple-3" msgstr "" -#: js/WidgetBlocks.js:859 -#: js/WidgetBlocks.js:866 -msgid "The Music keyboard block opens a piano keyboard that can be used to create notes." +#: js/utils/synthutils.js:124 +#.TRANS: simple monotone synthesizer +msgid "simple-4" msgstr "" -#: js/WidgetBlocks.js:910 -msgid "The Pitch staircase tool to is used to generate pitches from a given ratio." +#: js/utils/synthutils.js:162 +#.TRANS: musical instrument +msgid "taiko" msgstr "" -#: js/WidgetBlocks.js:917 -#.TRANS: generate a progressive sequence of pitches -msgid "pitch staircase" +#: js/blocks/ActionBlocks.js:58 +msgid "The Return block will return a value from an action." msgstr "" -#: js/WidgetBlocks.js:982 -msgid "The Rhythm Maker block opens a tool to create drum machines." +#: js/blocks/ActionBlocks.js:75 +msgid "return" msgstr "" -#: js/WidgetBlocks.js:1036 -msgid "G major scale" +#: js/blocks/ActionBlocks.js:128 +msgid "The Return to URL block will return a value to a webpage." msgstr "" -#: js/WidgetBlocks.js:1064 -msgid "C major scale" +#: js/blocks/ActionBlocks.js:145 +msgid "return to URL" msgstr "" -#: js/WidgetBlocks.js:1097 -msgid "The Phrase Maker block opens a tool to create musical phrases." +#: js/blocks/ActionBlocks.js:233 +#: js/blocks/ActionBlocks.js:290 +#: js/blocks/ActionBlocks.js:501 +#: js/blocks/ActionBlocks.js:688 +msgid "The Calculate block returns a value calculated by an action." msgstr "" -#: js/WidgetBlocks.js:1104 -#.TRANS: assigns pitch to a sequence of beats to generate a melody -msgid "phrase maker" +#: js/blocks/ActionBlocks.js:251 +#: js/blocks/ActionBlocks.js:517 +#: js/blocks/ActionBlocks.js:707 +msgid "calculate" msgstr "" -#: js/WidgetBlocks.js:1168 -msgid "You must have at least one pitch block and one rhythm block in the matrix." +#: js/blocks/ActionBlocks.js:376 +#: js/blocks/ActionBlocks.js:593 +#: js/blocks/ActionBlocks.js:942 +#: js/blocks/ActionBlocks.js:1389 +#.TRANS: do is the do something or take an action. +msgid "The Do block is used to initiate an action." msgstr "" -#: js/WidgetBlocks.js:1220 -msgid "The Status block opens a tool for inspecting the status of Music Blocks as it is running." +#: js/blocks/ActionBlocks.js:390 +#: js/blocks/ActionBlocks.js:610 +#: js/blocks/ActionBlocks.js:959 +#: js/blocks/ActionBlocks.js:1048 +#: js/blocks/MeterBlocks.js:769 +msgid "do1" msgstr "" -#: js/IntervalsBlocks.js:45 -msgid "set temperament" +#: js/blocks/ActionBlocks.js:390 +#: js/blocks/ActionBlocks.js:610 +#: js/blocks/ActionBlocks.js:959 +#: js/blocks/ActionBlocks.js:1048 +#: js/blocks/FlowBlocks.js:742 +#: js/blocks/FlowBlocks.js:822 +#: js/blocks/MeterBlocks.js:769 +msgid "do" msgstr "" -#: js/IntervalsBlocks.js:63 -#: js/MediaBlocks.js:746 -#: js/PitchBlocks.js:657 -#: js/PitchBlocks.js:933 -#: js/PitchBlocks.js:972 -#: js/PitchBlocks.js:1005 -#: js/PitchBlocks.js:1166 -#: js/PitchBlocks.js:1679 -#: js/PitchBlocks.js:1720 -#: js/PitchBlocks.js:1827 -#: js/ToneBlocks.js:1025 -#.TRANS: adjusts the shift up or down by one octave (twelve half-steps in the interval between two notes, one having twice or half the frequency in Hz of the other.) -msgid "octave" +#: js/blocks/ActionBlocks.js:791 +#: js/blocks/ActionBlocks.js:865 +msgid "The Arg block contains the value of an argument passed to an action." msgstr "" -#: js/IntervalsBlocks.js:99 -msgid "The Temperament name block is used to select a tuning method." +#: js/blocks/ActionBlocks.js:806 +#: js/blocks/ActionBlocks.js:878 +msgid "arg" msgstr "" -#: js/IntervalsBlocks.js:161 -msgid "doubly" +#: js/blocks/ActionBlocks.js:836 +#: js/blocks/ActionBlocks.js:900 +#: js/blocks/ActionBlocks.js:908 +msgid "Invalid argument" msgstr "" -#: js/IntervalsBlocks.js:166 -msgid "The Doubly block will double the size of an interval." +#: js/blocks/ActionBlocks.js:944 +msgid "In the example, it is used with the One of block to choose a random phase." msgstr "" -#: js/IntervalsBlocks.js:262 -msgid "interval number" +#: js/blocks/ActionBlocks.js:1019 +#: js/blocks/ActionBlocks.js:1026 +msgid "The Listen block is used to listen for an event such as a mouse click." msgstr "" -#: js/IntervalsBlocks.js:330 -#.TRANS: measure the distance between two pitches in semi-tones -msgid "semi-tone interval measure" +#: js/blocks/ActionBlocks.js:1028 +msgid "When the event happens, an action is taken." msgstr "" -#: js/IntervalsBlocks.js:397 -#: js/IntervalsBlocks.js:513 -msgid "You must use two pitch blocks when measuring an interval." +#: js/blocks/ActionBlocks.js:1045 +msgid "on" msgstr "" -#: js/IntervalsBlocks.js:439 -msgid "The Scalar interval block measures the distance between two notes in the current key and mode." +#: js/blocks/ActionBlocks.js:1048 +#: js/blocks/ActionBlocks.js:1049 +#: js/blocks/ActionBlocks.js:1153 +msgid "event" msgstr "" -#: js/IntervalsBlocks.js:445 -#.TRANS: measure the distance between two pitches in steps of musical scale -msgid "scalar interval measure" +#: js/blocks/ActionBlocks.js:1133 +msgid "The Broadcast block is used to trigger an event." msgstr "" -#: js/IntervalsBlocks.js:592 -#: js/musicutils.js:637 -#: js/musicutils.js:908 -#.TRANS: perfect is a music term related to intervals -msgid "perfect" +#: js/blocks/ActionBlocks.js:1151 +msgid "broadcast" msgstr "" -#: js/IntervalsBlocks.js:621 -msgid "In the figure, we add sol# to sol." +#: js/blocks/ActionBlocks.js:1208 +msgid "Each Start block is a separate voice." msgstr "" -#: js/IntervalsBlocks.js:627 -#: js/OrnamentBlocks.js:220 -#.TRANS: calculate a relative step between notes based on semi-tones -msgid "semi-tone interval" +#: js/blocks/ActionBlocks.js:1304 +msgid "It is often used for storing a phrase of music that is repeated." msgstr "" -#: js/IntervalsBlocks.js:676 -msgid "The output of the example is: do, mi, sol, sol, ti, mi" +#: js/blocks/ActionBlocks.js:1495 +msgid "define temperament" msgstr "" -#: js/IntervalsBlocks.js:735 -msgid "The Chord block calculates common chords." +#: js/blocks/BooleanBlocks.js:44 +msgid "The Not block is the logical not operator." msgstr "" -#: js/IntervalsBlocks.js:737 -msgid "In the figure, we generate a C-major chord." -msgstr "" +#: js/blocks/BooleanBlocks.js:62 +msgid "not" +msgstr "nie" -#: js/IntervalsBlocks.js:742 -msgid "chord" +#: js/blocks/BooleanBlocks.js:134 +msgid "The And block is the logical and operator." msgstr "" -#: js/IntervalsBlocks.js:794 -msgid "The Ratio Interval block calculates an interval based on a ratio." -msgstr "" +#: js/blocks/BooleanBlocks.js:152 +msgid "and" +msgstr "i" -#: js/IntervalsBlocks.js:799 -msgid "ratio interval" +#: js/blocks/BooleanBlocks.js:218 +msgid "The Or block is the logical or operator." msgstr "" -#: js/IntervalsBlocks.js:868 -msgid "In the figure, we add la to sol." -msgstr "" +#: js/blocks/BooleanBlocks.js:236 +msgid "or" +msgstr "lub" -#: js/IntervalsBlocks.js:924 -#.TRANS: define a custom mode -msgid "define mode" +#: js/blocks/BooleanBlocks.js:302 +msgid "The XOR block is the logical XOR operator." msgstr "" -#: js/IntervalsBlocks.js:977 -msgid "movable Do" +#: js/blocks/BooleanBlocks.js:320 +msgid "xor" msgstr "" -#: js/IntervalsBlocks.js:1028 -#.TRANS: mode length is the number of notes in the mode, e.g., 7 for major and minor scales; 12 for chromatic scales -msgid "mode length" +#: js/blocks/BooleanBlocks.js:808 +msgid "The Equal block returns True if the two numbers are equal." msgstr "" -#: js/IntervalsBlocks.js:1037 -msgid "The Mode length block is the number of notes in the current scale." +#: js/blocks/BooleanBlocks.js:909 +msgid "The Not-equal-to block returns True if the two numbers are not equal to each other." msgstr "" -#: js/IntervalsBlocks.js:1039 -msgid "Most Western scales have 7 notes." +#: js/blocks/BooleanBlocks.js:1008 +msgid "The Boolean block is used to specify true or false." msgstr "" -#: js/IntervalsBlocks.js:1088 -#.TRANS: the mode in music is 'major', 'minor', etc. -msgid "current mode" +#: js/blocks/BoxesBlocks.js:53 +#: js/blocks/BoxesBlocks.js:59 +msgid "The Add-to block is used to add to the value stored in a box." msgstr "" -#: js/IntervalsBlocks.js:1141 -#.TRANS: the key is a group of pitches with which a music composition is created -msgid "current key" +#: js/blocks/BoxesBlocks.js:61 +msgid "It can also be used with other blocks such as Color and Pen size." msgstr "" -#: js/IntervalsBlocks.js:1193 -#: js/IntervalsBlocks.js:1238 -#.TRANS: set the key and mode, e.g. C Major -msgid "set key" +#: js/blocks/BoxesBlocks.js:73 +msgid "add" msgstr "" -#: js/IntervalsBlocks.js:1247 -#: js/IntervalsBlocks.js:1253 -msgid "The Set key block is used to set the key and mode," +#: js/blocks/BoxesBlocks.js:75 +#: js/widgets/temperament.js:857 +msgid "to" msgstr "" -#: js/IntervalsBlocks.js:1253 -msgid "eg C Major" +#: js/blocks/BoxesBlocks.js:75 +#: js/blocks/BoxesBlocks.js:595 +#: js/blocks/HeapBlocks.js:544 +msgid "value1" msgstr "" -#: js/IntervalsBlocks.js:1266 -#: js/DictBlocks.js:215 -#: js/DictBlocks.js:216 -#: js/DictBlocks.js:289 -#: js/DictBlocks.js:290 -#: js/DictBlocks.js:357 -#: js/DictBlocks.js:430 -#: js/DictBlocks.js:431 -#.TRANS: key, e.g., C in C Major -msgid "key" +#: js/blocks/BoxesBlocks.js:118 +msgid "Block does not support incrementing." msgstr "" -#: js/ActionBlocks.js:58 -msgid "The Return block will return a value from an action." +#: js/blocks/BoxesBlocks.js:152 +msgid "The Add-1-to block adds one to the value stored in a box." msgstr "" -#: js/ActionBlocks.js:75 -msgid "return" +#: js/blocks/BoxesBlocks.js:163 +msgid "add 1 to" msgstr "" -#: js/ActionBlocks.js:128 -msgid "The Return to URL block will return a value to a webpage." +#: js/blocks/BoxesBlocks.js:211 +msgid "The Subtract-1-from block subtracts one from the value stored in a box." msgstr "" -#: js/ActionBlocks.js:145 -msgid "return to URL" +#: js/blocks/BoxesBlocks.js:222 +msgid "subtract 1 from" msgstr "" -#: js/ActionBlocks.js:233 -#: js/ActionBlocks.js:290 -#: js/ActionBlocks.js:501 -#: js/ActionBlocks.js:688 -msgid "The Calculate block returns a value calculated by an action." +#: js/blocks/BoxesBlocks.js:270 +#: js/blocks/BoxesBlocks.js:387 +msgid "The Box block returns the value stored in a box." msgstr "" -#: js/ActionBlocks.js:251 -#: js/ActionBlocks.js:517 -#: js/ActionBlocks.js:707 -msgid "calculate" +#: js/blocks/BoxesBlocks.js:500 +#: js/blocks/BoxesBlocks.js:576 +msgid "The Store in block will store a value in a box." msgstr "" -#: js/ActionBlocks.js:376 -#: js/ActionBlocks.js:593 -#: js/ActionBlocks.js:942 -#: js/ActionBlocks.js:1389 -#.TRANS: do is the do something or take an action. -msgid "The Do block is used to initiate an action." +#: js/blocks/BoxesBlocks.js:595 +#: js/blocks/EnsembleBlocks.js:391 +#: js/blocks/EnsembleBlocks.js:402 +msgid "name1" msgstr "" -#: js/ActionBlocks.js:390 -#: js/ActionBlocks.js:610 -#: js/ActionBlocks.js:959 -#: js/ActionBlocks.js:1048 -#: js/MeterBlocks.js:769 -msgid "do1" +#: js/blocks/BoxesBlocks.js:652 +msgid "The Box2 block returns the value stored in Box2." msgstr "" -#: js/ActionBlocks.js:390 -#: js/ActionBlocks.js:610 -#: js/ActionBlocks.js:959 -#: js/ActionBlocks.js:1048 -#: js/FlowBlocks.js:742 -#: js/FlowBlocks.js:822 -#: js/MeterBlocks.js:769 -msgid "do" +#: js/blocks/BoxesBlocks.js:703 +msgid "The Store in Box2 block is used to store a value in Box2." msgstr "" -#: js/ActionBlocks.js:791 -#: js/ActionBlocks.js:865 -msgid "The Arg block contains the value of an argument passed to an action." +#: js/blocks/BoxesBlocks.js:715 +msgid "store in box2" msgstr "" -#: js/ActionBlocks.js:806 -#: js/ActionBlocks.js:878 -msgid "arg" +#: js/blocks/BoxesBlocks.js:761 +msgid "The Box1 block returns the value stored in Box1." msgstr "" -#: js/ActionBlocks.js:836 -#: js/ActionBlocks.js:900 -#: js/ActionBlocks.js:908 -msgid "Invalid argument" +#: js/blocks/BoxesBlocks.js:812 +msgid "The Store in Box1 block is used to store a value in Box1." msgstr "" -#: js/ActionBlocks.js:944 -msgid "In the example, it is used with the One of block to choose a random phase." +#: js/blocks/BoxesBlocks.js:826 +msgid "store in box1" msgstr "" -#: js/ActionBlocks.js:1019 -#: js/ActionBlocks.js:1026 -msgid "The Listen block is used to listen for an event such as a mouse click." +#: js/blocks/DictBlocks.js:77 +msgid "show dictionary" msgstr "" -#: js/ActionBlocks.js:1028 -msgid "When the event happens, an action is taken." +#: js/blocks/DictBlocks.js:80 +#: js/blocks/DictBlocks.js:145 +#: js/blocks/DictBlocks.js:216 +#: js/blocks/DictBlocks.js:290 +#: js/blocks/ProgramBlocks.js:396 +#: js/blocks/ProgramBlocks.js:501 +#: js/blocks/ProgramBlocks.js:664 +msgid "My Dictionary" msgstr "" -#: js/ActionBlocks.js:1045 -msgid "on" +#: js/blocks/DictBlocks.js:129 +msgid "The Dictionary block returns a dictionary." msgstr "" -#: js/ActionBlocks.js:1048 -#: js/ActionBlocks.js:1049 -#: js/ActionBlocks.js:1153 -msgid "event" +#: js/blocks/DictBlocks.js:197 +#: js/blocks/DictBlocks.js:339 +msgid "The Get-dict block returns a value in the dictionary for a specified key." msgstr "" -#: js/ActionBlocks.js:1133 -msgid "The Broadcast block is used to trigger an event." +#: js/blocks/DictBlocks.js:212 +#: js/blocks/DictBlocks.js:354 +#.TRANS: retrieve a value from the dictionary with a given key +msgid "get value" msgstr "" -#: js/ActionBlocks.js:1151 -msgid "broadcast" +#: js/blocks/DictBlocks.js:215 +#: js/blocks/DictBlocks.js:216 +#: js/blocks/DictBlocks.js:289 +#: js/blocks/DictBlocks.js:290 +#: js/blocks/DictBlocks.js:357 +#: js/blocks/DictBlocks.js:430 +#: js/blocks/DictBlocks.js:431 +msgid "key2" msgstr "" -#: js/ActionBlocks.js:1208 -msgid "Each Start block is a separate voice." +#: js/blocks/DictBlocks.js:215 +#: js/blocks/DictBlocks.js:216 +#: js/blocks/DictBlocks.js:289 +#: js/blocks/DictBlocks.js:290 +#: js/blocks/DictBlocks.js:357 +#: js/blocks/DictBlocks.js:430 +#: js/blocks/DictBlocks.js:431 +#: js/blocks/IntervalsBlocks.js:1462 +#.TRANS: key, e.g., C in C Major +msgid "key" msgstr "" -#: js/ActionBlocks.js:1304 -msgid "It is often used for storing a phrase of music that is repeated." +#: js/blocks/DictBlocks.js:271 +#: js/blocks/DictBlocks.js:411 +msgid "The Set-dict block sets a value in the dictionary for a specified key." msgstr "" -#: js/ActionBlocks.js:1495 -msgid "define temperament" +#: js/blocks/DictBlocks.js:286 +#: js/blocks/DictBlocks.js:427 +#.TRANS: set a value in the dictionary for a given key +msgid "set value" msgstr "" -#: js/EnsembleBlocks.js:66 +#: js/blocks/EnsembleBlocks.js:66 msgid "mouse index heap" msgstr "" -#: js/EnsembleBlocks.js:68 +#: js/blocks/EnsembleBlocks.js:68 msgid "The Mouse index heap block returns a value in the heap at a specified location for a specified mouse." msgstr "" -#: js/EnsembleBlocks.js:77 -#: js/EnsembleBlocks.js:1080 +#: js/blocks/EnsembleBlocks.js:77 +#: js/blocks/EnsembleBlocks.js:1080 msgid "mouse name" msgstr "" -#: js/EnsembleBlocks.js:77 -#: js/EnsembleBlocks.js:92 -#: js/HeapBlocks.js:544 +#: js/blocks/EnsembleBlocks.js:77 +#: js/blocks/EnsembleBlocks.js:92 +#: js/blocks/HeapBlocks.js:544 #.TRANS: value1 is a numeric value (JAPANESE ONLY) msgid "index" msgstr "" -#: js/EnsembleBlocks.js:80 +#: js/blocks/EnsembleBlocks.js:80 msgid "turtle index heap" msgstr "" -#: js/EnsembleBlocks.js:82 +#: js/blocks/EnsembleBlocks.js:82 msgid "The Turtle index heap block returns a value in the heap at a specified location for a specified turtle." msgstr "" -#: js/EnsembleBlocks.js:90 -#: js/EnsembleBlocks.js:167 -#: js/EnsembleBlocks.js:230 -#: js/EnsembleBlocks.js:316 -#: js/EnsembleBlocks.js:362 -#: js/EnsembleBlocks.js:400 -#: js/EnsembleBlocks.js:454 -#: js/EnsembleBlocks.js:504 -#: js/EnsembleBlocks.js:550 -#: js/EnsembleBlocks.js:597 -#: js/EnsembleBlocks.js:651 -#: js/EnsembleBlocks.js:763 -#: js/EnsembleBlocks.js:854 -#: js/EnsembleBlocks.js:915 -#: js/EnsembleBlocks.js:955 -#: js/EnsembleBlocks.js:1219 -#: js/EnsembleBlocks.js:1293 +#: js/blocks/EnsembleBlocks.js:90 +#: js/blocks/EnsembleBlocks.js:167 +#: js/blocks/EnsembleBlocks.js:230 +#: js/blocks/EnsembleBlocks.js:316 +#: js/blocks/EnsembleBlocks.js:362 +#: js/blocks/EnsembleBlocks.js:400 +#: js/blocks/EnsembleBlocks.js:454 +#: js/blocks/EnsembleBlocks.js:504 +#: js/blocks/EnsembleBlocks.js:550 +#: js/blocks/EnsembleBlocks.js:597 +#: js/blocks/EnsembleBlocks.js:651 +#: js/blocks/EnsembleBlocks.js:763 +#: js/blocks/EnsembleBlocks.js:854 +#: js/blocks/EnsembleBlocks.js:915 +#: js/blocks/EnsembleBlocks.js:955 +#: js/blocks/EnsembleBlocks.js:1219 +#: js/blocks/EnsembleBlocks.js:1293 #.TRANS: Yertle is the name of a turtle. msgid "Yertle" msgstr "" -#: js/EnsembleBlocks.js:92 -#: js/EnsembleBlocks.js:1089 +#: js/blocks/EnsembleBlocks.js:92 +#: js/blocks/EnsembleBlocks.js:1089 msgid "turtle name" msgstr "" -#: js/EnsembleBlocks.js:122 -#: js/EnsembleBlocks.js:1197 -#: js/HeapBlocks.js:474 -#: js/HeapBlocks.js:572 +#: js/blocks/EnsembleBlocks.js:122 +#: js/blocks/EnsembleBlocks.js:1197 +#: js/blocks/HeapBlocks.js:474 +#: js/blocks/HeapBlocks.js:572 msgid "Index must be > 0." msgstr "" -#: js/EnsembleBlocks.js:127 -#: js/HeapBlocks.js:479 -#: js/HeapBlocks.js:577 +#: js/blocks/EnsembleBlocks.js:127 +#: js/blocks/HeapBlocks.js:479 +#: js/blocks/HeapBlocks.js:577 msgid "Maximum heap size is 1000." msgstr "" -#: js/EnsembleBlocks.js:145 +#: js/blocks/EnsembleBlocks.js:145 msgid "stop mouse" msgstr "" -#: js/EnsembleBlocks.js:147 +#: js/blocks/EnsembleBlocks.js:147 msgid "The Stop mouse block stops the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:158 +#: js/blocks/EnsembleBlocks.js:158 msgid "stop turtle" msgstr "" -#: js/EnsembleBlocks.js:160 +#: js/blocks/EnsembleBlocks.js:160 msgid "The Stop turtle block stops the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:184 -#: js/EnsembleBlocks.js:247 -#: js/EnsembleBlocks.js:413 -#: js/EnsembleBlocks.js:468 -#: js/EnsembleBlocks.js:706 -#: js/EnsembleBlocks.js:808 -#: js/EnsembleBlocks.js:870 -#: js/EnsembleBlocks.js:1190 -#: js/EnsembleBlocks.js:1253 +#: js/blocks/EnsembleBlocks.js:184 +#: js/blocks/EnsembleBlocks.js:247 +#: js/blocks/EnsembleBlocks.js:413 +#: js/blocks/EnsembleBlocks.js:468 +#: js/blocks/EnsembleBlocks.js:706 +#: js/blocks/EnsembleBlocks.js:808 +#: js/blocks/EnsembleBlocks.js:870 +#: js/blocks/EnsembleBlocks.js:1190 +#: js/blocks/EnsembleBlocks.js:1253 msgid "Cannot find mouse" msgstr "" -#: js/EnsembleBlocks.js:186 -#: js/EnsembleBlocks.js:249 -#: js/EnsembleBlocks.js:415 -#: js/EnsembleBlocks.js:470 -#: js/EnsembleBlocks.js:708 -#: js/EnsembleBlocks.js:810 -#: js/EnsembleBlocks.js:872 -#: js/EnsembleBlocks.js:1192 -#: js/EnsembleBlocks.js:1255 +#: js/blocks/EnsembleBlocks.js:186 +#: js/blocks/EnsembleBlocks.js:249 +#: js/blocks/EnsembleBlocks.js:415 +#: js/blocks/EnsembleBlocks.js:470 +#: js/blocks/EnsembleBlocks.js:708 +#: js/blocks/EnsembleBlocks.js:810 +#: js/blocks/EnsembleBlocks.js:872 +#: js/blocks/EnsembleBlocks.js:1192 +#: js/blocks/EnsembleBlocks.js:1255 msgid "Cannot find turtle" msgstr "" -#: js/EnsembleBlocks.js:206 +#: js/blocks/EnsembleBlocks.js:206 msgid "start mouse" msgstr "" -#: js/EnsembleBlocks.js:209 +#: js/blocks/EnsembleBlocks.js:209 msgid "The Start mouse block starts the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:220 +#: js/blocks/EnsembleBlocks.js:220 msgid "start turtle" msgstr "" -#: js/EnsembleBlocks.js:223 +#: js/blocks/EnsembleBlocks.js:223 msgid "The Start turtle block starts the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:256 +#: js/blocks/EnsembleBlocks.js:256 msgid "Mouse is already running." msgstr "" -#: js/EnsembleBlocks.js:258 +#: js/blocks/EnsembleBlocks.js:258 msgid "Turtle is already running." msgstr "" -#: js/EnsembleBlocks.js:282 +#: js/blocks/EnsembleBlocks.js:282 msgid "Cannot find start block" msgstr "" -#: js/EnsembleBlocks.js:292 +#: js/blocks/EnsembleBlocks.js:292 #.TRANS: pen color for this mouse msgid "mouse color" msgstr "" -#: js/EnsembleBlocks.js:294 +#: js/blocks/EnsembleBlocks.js:294 msgid "The Mouse color block returns the pen color of the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:306 +#: js/blocks/EnsembleBlocks.js:306 #.TRANS: pen color for this turtle msgid "turtle color" msgstr "" -#: js/EnsembleBlocks.js:308 +#: js/blocks/EnsembleBlocks.js:308 msgid "The Turtle color block returns the pen color of the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:338 +#: js/blocks/EnsembleBlocks.js:338 #.TRANS: heading (compass direction) for this mouse msgid "mouse heading" msgstr "" -#: js/EnsembleBlocks.js:340 +#: js/blocks/EnsembleBlocks.js:340 msgid "The Mouse heading block returns the heading of the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:352 +#: js/blocks/EnsembleBlocks.js:352 #.TRANS: heading (compass direction) for this turtle msgid "turtle heading" msgstr "" -#: js/EnsembleBlocks.js:354 +#: js/blocks/EnsembleBlocks.js:354 msgid "The Turtle heading block returns the heading of the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:384 -#: js/EnsembleBlocks.js:439 +#: js/blocks/EnsembleBlocks.js:384 +#: js/blocks/EnsembleBlocks.js:439 #.TRANS: set xy position for this mouse msgid "set mouse" msgstr "" -#: js/EnsembleBlocks.js:391 -#: js/EnsembleBlocks.js:402 -#: js/BoxesBlocks.js:595 -msgid "name1" -msgstr "" - -#: js/EnsembleBlocks.js:391 -#: js/EnsembleBlocks.js:402 -#: js/ProgramBlocks.js:881 -#: js/GraphicsBlocks.js:235 -#: js/GraphicsBlocks.js:313 -#: js/GraphicsBlocks.js:436 -#: js/GraphicsBlocks.js:487 -#: js/GraphicsBlocks.js:534 -#: js/GraphicsBlocks.js:750 +#: js/blocks/EnsembleBlocks.js:391 +#: js/blocks/EnsembleBlocks.js:402 +#: js/blocks/GraphicsBlocks.js:235 +#: js/blocks/GraphicsBlocks.js:313 +#: js/blocks/GraphicsBlocks.js:436 +#: js/blocks/GraphicsBlocks.js:487 +#: js/blocks/GraphicsBlocks.js:534 +#: js/blocks/GraphicsBlocks.js:750 +#: js/blocks/ProgramBlocks.js:881 msgid "x" msgstr "x" -#: js/EnsembleBlocks.js:391 -#: js/EnsembleBlocks.js:402 -#: js/ProgramBlocks.js:881 -#: js/GraphicsBlocks.js:149 -#: js/GraphicsBlocks.js:313 -#: js/GraphicsBlocks.js:436 -#: js/GraphicsBlocks.js:487 -#: js/GraphicsBlocks.js:534 -#: js/GraphicsBlocks.js:750 +#: js/blocks/EnsembleBlocks.js:391 +#: js/blocks/EnsembleBlocks.js:402 +#: js/blocks/GraphicsBlocks.js:149 +#: js/blocks/GraphicsBlocks.js:313 +#: js/blocks/GraphicsBlocks.js:436 +#: js/blocks/GraphicsBlocks.js:487 +#: js/blocks/GraphicsBlocks.js:534 +#: js/blocks/GraphicsBlocks.js:750 +#: js/blocks/ProgramBlocks.js:881 msgid "y" msgstr "y" -#: js/EnsembleBlocks.js:395 -#: js/EnsembleBlocks.js:452 +#: js/blocks/EnsembleBlocks.js:395 +#: js/blocks/EnsembleBlocks.js:452 #.TRANS: set xy position for this turtle msgid "set turtle" msgstr "" -#: js/EnsembleBlocks.js:433 +#: js/blocks/EnsembleBlocks.js:433 msgid "The Set mouse block sends a stack of blocks to be run by the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:446 +#: js/blocks/EnsembleBlocks.js:446 msgid "The Set turtle block sends a stack of blocks to be run by the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:480 +#: js/blocks/EnsembleBlocks.js:480 #.TRANS: y position for this mouse msgid "mouse y" msgstr "myszka y" -#: js/EnsembleBlocks.js:482 +#: js/blocks/EnsembleBlocks.js:482 msgid "The Y mouse block returns the Y position of the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:494 +#: js/blocks/EnsembleBlocks.js:494 #.TRANS: y position for this turtle msgid "turtle y" msgstr "" -#: js/EnsembleBlocks.js:496 +#: js/blocks/EnsembleBlocks.js:496 msgid "The Y turtle block returns the Y position of the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:526 +#: js/blocks/EnsembleBlocks.js:526 #.TRANS: x position for this mouse msgid "mouse x" msgstr "myszka x" -#: js/EnsembleBlocks.js:528 +#: js/blocks/EnsembleBlocks.js:528 msgid "The X mouse block returns the X position of the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:540 +#: js/blocks/EnsembleBlocks.js:540 #.TRANS: x position for this turtle msgid "turtle x" msgstr "" -#: js/EnsembleBlocks.js:542 +#: js/blocks/EnsembleBlocks.js:542 msgid "The X turtle block returns the X position of the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:573 +#: js/blocks/EnsembleBlocks.js:573 #.TRANS: notes played by this mouse msgid "mouse notes played" msgstr "" -#: js/EnsembleBlocks.js:575 +#: js/blocks/EnsembleBlocks.js:575 msgid "The Mouse elapse notes block returns the number of notes played by the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:587 +#: js/blocks/EnsembleBlocks.js:587 #.TRANS: notes played by this turtle msgid "turtle notes played" msgstr "" -#: js/EnsembleBlocks.js:589 +#: js/blocks/EnsembleBlocks.js:589 msgid "The Turtle elapse notes block returns the number of notes played by the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:627 +#: js/blocks/EnsembleBlocks.js:627 #.TRANS: convert current note for this turtle to piano key (1-88) msgid "mouse pitch number" msgstr "" -#: js/EnsembleBlocks.js:629 +#: js/blocks/EnsembleBlocks.js:629 msgid "The Mouse pitch block returns the current pitch number being played by the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:641 +#: js/blocks/EnsembleBlocks.js:641 #.TRANS: convert current note for this turtle to piano key (1-88) msgid "turtle pitch number" msgstr "" -#: js/EnsembleBlocks.js:643 -msgid "The Turrle pitch block returns the current pitch number being played by the specified turtle." +#: js/blocks/EnsembleBlocks.js:643 +msgid "The Turtle pitch block returns the current pitch number being played by the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:747 -#: js/EnsembleBlocks.js:819 +#: js/blocks/EnsembleBlocks.js:747 +#: js/blocks/EnsembleBlocks.js:819 #.TRANS: note value is the duration of the note played by this mouse msgid "mouse note value" msgstr "" -#: js/EnsembleBlocks.js:757 +#: js/blocks/EnsembleBlocks.js:757 #.TRANS: note value is the duration of the note played by this turtle msgid "turtle note value" msgstr "" -#: js/EnsembleBlocks.js:830 +#: js/blocks/EnsembleBlocks.js:830 #.TRANS: sync is short for synchronization msgid "mouse sync" msgstr "" -#: js/EnsembleBlocks.js:832 +#: js/blocks/EnsembleBlocks.js:832 msgid "The Mouse sync block aligns the beat count between mice." msgstr "" -#: js/EnsembleBlocks.js:844 +#: js/blocks/EnsembleBlocks.js:844 #.TRANS: sync is short for synchronization msgid "turtle sync" msgstr "" -#: js/EnsembleBlocks.js:846 +#: js/blocks/EnsembleBlocks.js:846 msgid "The Turtle sync block aligns the beat count between turtles." msgstr "" -#: js/EnsembleBlocks.js:887 +#: js/blocks/EnsembleBlocks.js:887 msgid "The Found mouse block will return true if the specified mouse can be found." msgstr "" -#: js/EnsembleBlocks.js:893 +#: js/blocks/EnsembleBlocks.js:893 msgid "found mouse" msgstr "" -#: js/EnsembleBlocks.js:903 +#: js/blocks/EnsembleBlocks.js:903 msgid "The Found turtle block will return true if the specified turtle can be found." msgstr "" -#: js/EnsembleBlocks.js:909 +#: js/blocks/EnsembleBlocks.js:909 msgid "found turtle" msgstr "" -#: js/EnsembleBlocks.js:932 +#: js/blocks/EnsembleBlocks.js:932 msgid "new mouse" msgstr "" -#: js/EnsembleBlocks.js:934 +#: js/blocks/EnsembleBlocks.js:934 msgid "The New mouse block will create a new mouse." msgstr "" -#: js/EnsembleBlocks.js:945 +#: js/blocks/EnsembleBlocks.js:945 msgid "new turtle" msgstr "" -#: js/EnsembleBlocks.js:947 +#: js/blocks/EnsembleBlocks.js:947 msgid "The New turtle block will create a new turtle." msgstr "" -#: js/EnsembleBlocks.js:1011 +#: js/blocks/EnsembleBlocks.js:1011 msgid "set mouse color" msgstr "" -#: js/EnsembleBlocks.js:1014 +#: js/blocks/EnsembleBlocks.js:1014 msgid "The Set-mouse-color block is used to set the color of a mouse." msgstr "" -#: js/EnsembleBlocks.js:1020 +#: js/blocks/EnsembleBlocks.js:1020 msgid "set turtle color" msgstr "" -#: js/EnsembleBlocks.js:1023 +#: js/blocks/EnsembleBlocks.js:1023 msgid "The Set-turtle-color block is used to set the color of a turtle." msgstr "" -#: js/EnsembleBlocks.js:1083 +#: js/blocks/EnsembleBlocks.js:1083 msgid "The Mouse-name block returns the name of a mouse." msgstr "" -#: js/EnsembleBlocks.js:1092 +#: js/blocks/EnsembleBlocks.js:1092 msgid "The Turtle-name block returns the name of a turtle." msgstr "" -#: js/EnsembleBlocks.js:1115 +#: js/blocks/EnsembleBlocks.js:1115 msgid "mouse count" msgstr "" -#: js/EnsembleBlocks.js:1118 +#: js/blocks/EnsembleBlocks.js:1118 msgid "The Mouse-count block returns the number of mice." msgstr "" -#: js/EnsembleBlocks.js:1124 +#: js/blocks/EnsembleBlocks.js:1124 msgid "turtle count" msgstr "" -#: js/EnsembleBlocks.js:1127 +#: js/blocks/EnsembleBlocks.js:1127 msgid "The Turtle-count block returns the number of turtles." msgstr "" -#: js/EnsembleBlocks.js:1149 +#: js/blocks/EnsembleBlocks.js:1149 msgid "nth mouse name" msgstr "" -#: js/EnsembleBlocks.js:1152 +#: js/blocks/EnsembleBlocks.js:1152 msgid "The Nth-Mouse name block returns the name of the nth mouse." msgstr "" -#: js/EnsembleBlocks.js:1158 +#: js/blocks/EnsembleBlocks.js:1158 msgid "nth turtle name" msgstr "" -#: js/EnsembleBlocks.js:1161 -msgid "The Nth-Turtle name block returns the name of the nth turtle." -msgstr "" - -#: js/EnsembleBlocks.js:1205 -#: js/EnsembleBlocks.js:1265 -msgid "set name" -msgstr "" - -#: js/EnsembleBlocks.js:1214 -#: js/EnsembleBlocks.js:1221 -msgid "source" -msgstr "" - -#: js/EnsembleBlocks.js:1214 -#: js/EnsembleBlocks.js:1221 -msgid "target" -msgstr "" - -#: js/EnsembleBlocks.js:1271 -msgid "The Set-name block is used to name a mouse." -msgstr "" - -#: js/EnsembleBlocks.js:1284 -msgid "The Set-name block is used to name a turtle." -msgstr "" - -#: js/BooleanBlocks.js:44 -msgid "The Not block is the logical not operator." -msgstr "" - -#: js/BooleanBlocks.js:62 -msgid "not" -msgstr "nie" - -#: js/BooleanBlocks.js:134 -msgid "The And block is the logical and operator." -msgstr "" - -#: js/BooleanBlocks.js:152 -msgid "and" -msgstr "i" - -#: js/BooleanBlocks.js:218 -msgid "The Or block is the logical or operator." -msgstr "" - -#: js/BooleanBlocks.js:236 -msgid "or" -msgstr "lub" - -#: js/BooleanBlocks.js:302 -msgid "The XOR block is the logical XOR operator." -msgstr "" - -#: js/BooleanBlocks.js:320 -msgid "xor" -msgstr "" - -#: js/BooleanBlocks.js:808 -msgid "The Equal block returns True if the two numbers are equal." -msgstr "" - -#: js/BooleanBlocks.js:909 -msgid "The Not-equal-to block returns True if the two numbers are not equal to each other." -msgstr "" - -#: js/BooleanBlocks.js:1008 -msgid "The Boolean block is used to specify true or false." -msgstr "" - -#: js/MediaBlocks.js:35 -#.TRANS: right side of the screen -msgid "right (screen)" -msgstr "" - -#: js/MediaBlocks.js:45 -#: js/MediaBlocks.js:56 -msgid "The Right block returns the position of the right of the canvas." +#: js/blocks/EnsembleBlocks.js:1161 +msgid "The Nth-Turtle name block returns the name of the nth turtle." msgstr "" -#: js/MediaBlocks.js:97 -#.TRANS: left side of the screen -msgid "left (screen)" +#: js/blocks/EnsembleBlocks.js:1205 +#: js/blocks/EnsembleBlocks.js:1265 +msgid "set name" msgstr "" -#: js/MediaBlocks.js:107 -#: js/MediaBlocks.js:118 -msgid "The Left block returns the position of the left of the canvas." +#: js/blocks/EnsembleBlocks.js:1214 +#: js/blocks/EnsembleBlocks.js:1221 +msgid "source" msgstr "" -#: js/MediaBlocks.js:158 -msgid "top (screen)" +#: js/blocks/EnsembleBlocks.js:1214 +#: js/blocks/EnsembleBlocks.js:1221 +msgid "target" msgstr "" -#: js/MediaBlocks.js:168 -#: js/MediaBlocks.js:179 -msgid "The Top block returns the position of the top of the canvas." +#: js/blocks/EnsembleBlocks.js:1271 +msgid "The Set-name block is used to name a mouse." msgstr "" -#: js/MediaBlocks.js:219 -msgid "bottom (screen)" +#: js/blocks/EnsembleBlocks.js:1284 +msgid "The Set-name block is used to name a turtle." msgstr "" -#: js/MediaBlocks.js:229 -#: js/MediaBlocks.js:240 -msgid "The Bottom block returns the position of the bottom of the canvas." +#: js/blocks/ExtrasBlocks.js:33 +msgid "fraction" msgstr "" -#: js/MediaBlocks.js:282 -msgid "width" +#: js/blocks/ExtrasBlocks.js:36 +msgid "Convert a float to a fraction" msgstr "" -#: js/MediaBlocks.js:291 -msgid "The Width block returns the width of the canvas." +#: js/blocks/ExtrasBlocks.js:93 +msgid "save as ABC" msgstr "" -#: js/MediaBlocks.js:325 -msgid "height" +#: js/blocks/ExtrasBlocks.js:96 +#: js/blocks/ExtrasBlocks.js:132 +#: js/blocks/ExtrasBlocks.js:168 +msgid "title" msgstr "" -#: js/MediaBlocks.js:334 -msgid "The Height block returns the height of the canvas." +#: js/blocks/ExtrasBlocks.js:129 +msgid "save as Lilypond" msgstr "" -#: js/MediaBlocks.js:369 -#.TRANS: stops playback of an audio recording -msgid "stop play" +#: js/blocks/ExtrasBlocks.js:165 +msgid "save as SVG" msgstr "" -#: js/MediaBlocks.js:404 -#.TRANS: Erases the images and text -msgid "erase media" +#: js/blocks/ExtrasBlocks.js:216 +msgid "no background" msgstr "" -#: js/MediaBlocks.js:409 -msgid "The Erase Media block erases text and images." +#: js/blocks/ExtrasBlocks.js:219 +msgid "The No background block eliminates the background from the saved SVG output." msgstr "" -#: js/MediaBlocks.js:439 -#.TRANS: play an audio recording -msgid "play back" +#: js/blocks/ExtrasBlocks.js:247 +msgid "show blocks" +msgstr "pokaż schemat" + +#: js/blocks/ExtrasBlocks.js:249 +msgid "The Show blocks block shows the blocks." msgstr "" -#: js/MediaBlocks.js:487 -msgid "speak" -msgstr "mówić" +#: js/blocks/ExtrasBlocks.js:274 +msgid "hide blocks" +msgstr "schowaj schemat" -#: js/MediaBlocks.js:495 -msgid "The Speak block outputs to the text-to-speech synthesizer" +#: js/blocks/ExtrasBlocks.js:276 +msgid "The Hide blocks block hides the blocks." msgstr "" -#: js/MediaBlocks.js:546 -msgid "camera" +#: js/blocks/ExtrasBlocks.js:305 +#: js/blocks/ExtrasBlocks.js:338 +msgid "The Space block is used to add space between blocks." msgstr "" -#: js/MediaBlocks.js:551 -msgid "The Camera block connects a webcam to the Show block." -msgstr "" +#: js/blocks/ExtrasBlocks.js:376 +msgid "wait" +msgstr "czekaj" -#: js/MediaBlocks.js:574 -msgid "video" +#: js/blocks/ExtrasBlocks.js:379 +msgid "The Wait block pauses the program for a specified number of seconds." msgstr "" -#: js/MediaBlocks.js:579 -msgid "The Video block selects video for use with the Show block." -msgstr "" +#: js/blocks/ExtrasBlocks.js:433 +#: plugins/facebook.rtp:30 +msgid "comment" +msgstr "komentarz" -#: js/MediaBlocks.js:607 -msgid "The Open file block opens a file for use with the Show block." -msgstr "" +#: js/blocks/ExtrasBlocks.js:469 +msgid "print" +msgstr "pisz" -#: js/MediaBlocks.js:645 -msgid "stop media" +#: js/blocks/ExtrasBlocks.js:476 +msgid "The Print block displays text at the top of the screen." msgstr "" -#: js/MediaBlocks.js:650 -msgid "The Stop media block stops audio or video playback." +#: js/blocks/ExtrasBlocks.js:582 +msgid "display grid" msgstr "" -#: js/MediaBlocks.js:679 -#: js/PitchBlocks.js:1539 -#: js/phrasemaker.js:822 -#: js/musickeyboard.js:1654 -#.TRANS: a measure of frequency: one cycle per second -msgid "hertz" +#: js/blocks/ExtrasBlocks.js:587 +msgid "The Display Grid Block changes the grid type" msgstr "" -#: js/MediaBlocks.js:692 -msgid "duration (ms)" +#: js/blocks/ExtrasBlocks.js:689 +#: js/blocks/ExtrasBlocks.js:708 +#: js/blocks/ExtrasBlocks.js:731 +#: js/blocks/ExtrasBlocks.js:754 +#: js/blocks/ExtrasBlocks.js:772 +#: js/blocks/ExtrasBlocks.js:791 +#: js/blocks/ExtrasBlocks.js:810 +#: js/blocks/ExtrasBlocks.js:829 +msgid "unknown" msgstr "" -#: js/MediaBlocks.js:728 -#.TRANS: translate a note into hertz, e.g., A4 -> 440HZ -msgid "note to frequency" +#: js/blocks/FlowBlocks.js:41 +msgid "The Backward block runs code in reverse order (Musical retrograde)." msgstr "" -#: js/MediaBlocks.js:736 -msgid "The To frequency block converts a pitch name and octave to Hertz." +#: js/blocks/FlowBlocks.js:48 +msgid "backward" msgstr "" -#: js/MediaBlocks.js:746 -#: js/PitchBlocks.js:656 -#: js/PitchBlocks.js:932 -#: js/PitchBlocks.js:1827 -#.TRANS: name2 is name as in name of pitch (JAPANESE ONLY) -msgid "name2" +#: js/blocks/FlowBlocks.js:124 +msgid "The Duplicate block will run each block multiple times." msgstr "" -#: js/MediaBlocks.js:812 -msgid "The Avatar block is used to change the appearance of the mouse." +#: js/blocks/FlowBlocks.js:136 +msgid "duplicate" msgstr "" -#: js/MediaBlocks.js:819 -msgid "The Avatar block is used to change the appearance of the turtle." +#: js/blocks/FlowBlocks.js:334 +msgid "The Default block is used inside of a Switch to define the default action." msgstr "" -#: js/MediaBlocks.js:831 -#: js/MediaBlocks.js:891 -#.TRANS: a media object -msgid "size" +#: js/blocks/FlowBlocks.js:342 +msgid "default" msgstr "" -#: js/MediaBlocks.js:831 -msgid "image" -msgstr "obraz" - -#: js/MediaBlocks.js:880 -msgid "The Show block is used to display text or images on the canvas." +#: js/blocks/FlowBlocks.js:361 +#: js/blocks/FlowBlocks.js:418 +msgid "The Case Block must be used inside of a Switch Block." msgstr "" -#: js/MediaBlocks.js:888 -#.TRANS: show1 is show as in display an image or text on the screen. -msgid "show1" +#: js/blocks/FlowBlocks.js:389 +msgid "The Case block is used inside of a Switch to define matches." msgstr "" -#: js/MediaBlocks.js:891 -msgid "obj" +#: js/blocks/FlowBlocks.js:397 +msgid "case" msgstr "" -#: js/MediaBlocks.js:938 -msgid "The Media block is used to import an image." +#: js/blocks/FlowBlocks.js:446 +msgid "The Switch block will run the code in the matching Case." msgstr "" -#: js/MediaBlocks.js:973 -msgid "The Text block holds a text string." +#: js/blocks/FlowBlocks.js:454 +msgid "switch" msgstr "" -#: js/ProgramBlocks.js:33 -msgid "The Load-heap-from-app block loads the heap from a web page." +#: js/blocks/FlowBlocks.js:595 +msgid "The Stop block will stop a loop" msgstr "" -#: js/ProgramBlocks.js:44 -#.TRANS: load the heap contents from a URL -msgid "load heap from App" +#: js/blocks/FlowBlocks.js:597 +msgid "Forever, Repeat, While, or Until." msgstr "" -#: js/ProgramBlocks.js:95 -msgid "Error parsing JSON data:" -msgstr "" +#: js/blocks/FlowBlocks.js:604 +#: js/widgets/timbre.js:417 +#: js/widgets/timbre.js:419 +#: js/widgets/musickeyboard.js:819 +#: js/widgets/musickeyboard.js:821 +#: js/widgets/phrasemaker.js:4202 +#: plugins/rodi.rtp:29 +#: plugins/rodi.rtp:73 +#: plugins/rodi.rtp:413 +msgid "stop" +msgstr "zatrzymaj" -#: js/ProgramBlocks.js:100 -msgid "404: Page not found" +#: js/blocks/FlowBlocks.js:653 +msgid "The Waitfor block will wait until the condition is true." msgstr "" -#: js/ProgramBlocks.js:133 -msgid "The Save-heap-to-app block saves the heap to a web page." +#: js/blocks/FlowBlocks.js:661 +msgid "wait for" msgstr "" -#: js/ProgramBlocks.js:144 -#.TRANS: save the heap contents to a URL -msgid "save heap to App" +#: js/blocks/FlowBlocks.js:732 +msgid "The Until block will repeat until the condition is true." msgstr "" -#: js/ProgramBlocks.js:189 -msgid "Cannot find a valid heap for" -msgstr "" +#: js/blocks/FlowBlocks.js:740 +msgid "until" +msgstr "dopóki" -#: js/ProgramBlocks.js:206 -msgid "The Load-heap block loads the heap from a file." +#: js/blocks/FlowBlocks.js:742 +#: js/blocks/FlowBlocks.js:822 +msgid "do2" msgstr "" -#: js/ProgramBlocks.js:217 -#.TRANS: load the heap from a file -msgid "load heap" +#: js/blocks/FlowBlocks.js:812 +msgid "The While block will repeat while the condition is true." msgstr "" -#: js/ProgramBlocks.js:270 -msgid "The file you selected does not contain a valid heap." -msgstr "" +#: js/blocks/FlowBlocks.js:820 +msgid "while" +msgstr "podczas gdy" -#: js/ProgramBlocks.js:275 -msgid "The loadHeap block needs a loadFile block." +#: js/blocks/FlowBlocks.js:903 +#: js/blocks/FlowBlocks.js:968 +#: js/blocks/FlowBlocks.js:979 +msgid "In this example if the mouse button is pressed a snare drum will play." msgstr "" -#: js/ProgramBlocks.js:291 -msgid "The Set-heap block loads the heap." -msgstr "" +#: js/blocks/FlowBlocks.js:925 +#: js/blocks/FlowBlocks.js:988 +msgid "if" +msgstr "jeżeli" -#: js/ProgramBlocks.js:299 -#: js/HeapBlocks.js:539 -#.TRANS: load the heap from a JSON encoding -msgid "set heap" -msgstr "" +#: js/blocks/FlowBlocks.js:927 +#: js/blocks/FlowBlocks.js:990 +msgid "then" +msgstr "wtedy" -#: js/ProgramBlocks.js:340 -msgid "The block you selected does not contain a valid heap." -msgstr "" +#: js/blocks/FlowBlocks.js:927 +msgid "else" +msgstr "pozostałe" -#: js/ProgramBlocks.js:343 -msgid "The Set heap block needs a heap." +#: js/blocks/FlowBlocks.js:1025 +msgid "The Forever block will repeat the contained blocks forever." msgstr "" -#: js/ProgramBlocks.js:360 -msgid "The Load-dictionary block loads a dictionary from a file." -msgstr "" +#: js/blocks/FlowBlocks.js:1037 +msgid "forever" +msgstr "ciągle" -#: js/ProgramBlocks.js:372 -#.TRANS: load a dictionary from a file -msgid "load dictionary" +#: js/blocks/FlowBlocks.js:1073 +msgid "The Repeat block will repeat the contained blocks." msgstr "" -#: js/ProgramBlocks.js:390 -#: js/ProgramBlocks.js:658 -#: js/ToneBlocks.js:1025 -msgid "file" +#: js/blocks/FlowBlocks.js:1075 +msgid "In this example the note will be played 4 times." msgstr "" -#: js/ProgramBlocks.js:396 -#: js/ProgramBlocks.js:501 -#: js/ProgramBlocks.js:664 -#: js/DictBlocks.js:80 -#: js/DictBlocks.js:145 -#: js/DictBlocks.js:216 -#: js/DictBlocks.js:290 -msgid "My Dictionary" -msgstr "" +#: js/blocks/FlowBlocks.js:1083 +msgid "repeat" +msgstr "powtarzaj" -#: js/ProgramBlocks.js:444 -msgid "The file you selected does not contain a valid dictionary." +#: js/blocks/FlowBlocks.js:1123 +msgid "duplicate factor" msgstr "" -#: js/ProgramBlocks.js:449 -msgid "The load dictionary block needs a load file block." +#: js/blocks/HeapBlocks.js:49 +msgid "The Heap block returns the heap." msgstr "" -#: js/ProgramBlocks.js:466 -msgid "The Set-dictionary block loads a dictionary." -msgstr "" +#: js/blocks/HeapBlocks.js:133 +msgid "show heap" +msgstr "pokaż stos" -#: js/ProgramBlocks.js:477 -#.TRANS: load a dictionary from a JSON -msgid "set dictionary" +#: js/blocks/HeapBlocks.js:181 +msgid "The Heap-length block returns the length of the heap." msgstr "" -#: js/ProgramBlocks.js:546 -msgid "The block you selected does not contain a valid dictionary." +#: js/blocks/HeapBlocks.js:195 +msgid "heap length" msgstr "" -#: js/ProgramBlocks.js:550 -msgid "The set dictionary block needs a dictionary." +#: js/blocks/HeapBlocks.js:254 +msgid "The Heap-empty? block returns true if the heap is empty." msgstr "" -#: js/ProgramBlocks.js:567 -msgid "The Save-heap block saves the heap to a file." +#: js/blocks/HeapBlocks.js:268 +#.TRANS: Is the heap empty? +msgid "heap empty?" msgstr "" -#: js/ProgramBlocks.js:578 -#.TRANS: save the heap to a file -msgid "save heap" +#: js/blocks/HeapBlocks.js:317 +msgid "The Empty-heap block empties the heap." msgstr "" -#: js/ProgramBlocks.js:629 -msgid "The Save-dictionary block saves a dictionary to a file." +#: js/blocks/HeapBlocks.js:327 +#: js/blocks/HeapBlocks.js:647 +#.TRANS: empty the heap +msgid "empty heap" +msgstr "opróżnij stos" + +#: js/blocks/HeapBlocks.js:371 +msgid "The Reverse-heap block reverses the order of the heap." msgstr "" -#: js/ProgramBlocks.js:640 -#.TRANS: save a dictionary to a file -msgid "save dictionary" +#: js/blocks/HeapBlocks.js:384 +#.TRANS: reverse the order of the heap +msgid "reverse heap" msgstr "" -#: js/ProgramBlocks.js:720 -msgid "The Open palette block opens a palette." +#: js/blocks/HeapBlocks.js:428 +msgid "The Index-heap block returns a value in the heap at a specified location." msgstr "" -#: js/ProgramBlocks.js:727 -msgid "open palette" +#: js/blocks/HeapBlocks.js:443 +#.TRANS: retrieve a value from the heap at index position in the heap +msgid "index heap" msgstr "" -#: js/ProgramBlocks.js:785 -msgid "The Delete block block removes a block." +#: js/blocks/HeapBlocks.js:523 +msgid "The Set-heap entry block sets a value in he heap at the specified location." msgstr "" -#: js/ProgramBlocks.js:797 -#.TRANS: Move this block to the trash. -msgid "delete block" +#: js/blocks/HeapBlocks.js:539 +#: js/blocks/ProgramBlocks.js:299 +#.TRANS: load the heap from a JSON encoding +msgid "set heap" msgstr "" -#: js/ProgramBlocks.js:861 -msgid "The Move block block moves a block." +#: js/blocks/HeapBlocks.js:619 +msgid "The Pop block removes the value at the top of the heap." msgstr "" -#: js/ProgramBlocks.js:869 -#.TRANS: Move the position of a block on the screen. -msgid "move block" +#: js/blocks/HeapBlocks.js:633 +#.TRANS: pop a value off the top of the heap +msgid "pop" +msgstr "ze stosu" + +#: js/blocks/HeapBlocks.js:680 +msgid "The Push block adds a value to the top of the heap." msgstr "" -#: js/ProgramBlocks.js:881 -#: js/ProgramBlocks.js:1048 -msgid "block number" +#: js/blocks/HeapBlocks.js:696 +#.TRANS: push a value onto the top of the heap +msgid "push" +msgstr "na stos" + +#: js/blocks/IntervalsBlocks.js:45 +msgid "set temperament" msgstr "" -#: js/ProgramBlocks.js:935 -#.TRANS: Run program beginning at this block. -msgid "run block" +#: js/blocks/IntervalsBlocks.js:63 +#: js/blocks/MediaBlocks.js:746 +#: js/blocks/PitchBlocks.js:657 +#: js/blocks/PitchBlocks.js:935 +#: js/blocks/PitchBlocks.js:974 +#: js/blocks/PitchBlocks.js:1007 +#: js/blocks/PitchBlocks.js:1194 +#: js/blocks/PitchBlocks.js:1717 +#: js/blocks/PitchBlocks.js:1758 +#: js/blocks/PitchBlocks.js:1866 +#: js/blocks/ToneBlocks.js:1025 +#: js/turtleactions/IntervalsActions.js:114 +#.TRANS: adjusts the shift up or down by one octave (twelve half-steps in the interval between two notes, one having twice or half the frequency in Hz of the other.) +msgid "octave" msgstr "" -#: js/ProgramBlocks.js:1025 -msgid "The Dock block block connections two blocks." +#: js/blocks/IntervalsBlocks.js:99 +msgid "The Temperament name block is used to select a tuning method." msgstr "" -#: js/ProgramBlocks.js:1036 -#.TRANS: We can connect a block to another block. -msgid "connect blocks" +#: js/blocks/IntervalsBlocks.js:161 +msgid "doubly" msgstr "" -#: js/ProgramBlocks.js:1048 -msgid "target block" +#: js/blocks/IntervalsBlocks.js:166 +msgid "The Doubly block will double the size of an interval." msgstr "" -#: js/ProgramBlocks.js:1048 -msgid "connection number" +#: js/blocks/IntervalsBlocks.js:262 +msgid "interval number" msgstr "" -#: js/ProgramBlocks.js:1140 -msgid "The Make block block creates a new block." +#: js/blocks/IntervalsBlocks.js:317 +msgid "current interval" msgstr "" -#: js/ProgramBlocks.js:1152 -#.TRANS: Create a new block -msgid "make block" +#: js/blocks/IntervalsBlocks.js:387 +#.TRANS: measure the distance between two pitches in semi-tones +msgid "semi-tone interval measure" msgstr "" -#: js/ProgramBlocks.js:1186 -#: js/ProgramBlocks.js:1227 -#: js/RhythmBlocks.js:1128 -#: js/PitchBlocks.js:972 -#: js/PitchBlocks.js:1005 -#: js/temperament.js:340 -#: js/temperament.js:362 -#: js/temperament.js:372 -#: js/temperament.js:484 -#: js/status.js:190 -#: plugins/rodi.rtp:192 -#.TRANS: a musical note consisting of pitch and duration -msgid "note" +#: js/blocks/IntervalsBlocks.js:454 +#: js/blocks/IntervalsBlocks.js:570 +msgid "You must use two pitch blocks when measuring an interval." msgstr "" -#: js/ProgramBlocks.js:1285 -msgid "Cannot find block" +#: js/blocks/IntervalsBlocks.js:496 +msgid "The Scalar interval block measures the distance between two notes in the current key and mode." msgstr "" -#: js/ProgramBlocks.js:1304 -#: js/ProgramBlocks.js:1313 -msgid "Warning: block argument type mismatch" +#: js/blocks/IntervalsBlocks.js:502 +#.TRANS: measure the distance between two pitches in steps of musical scale +msgid "scalar interval measure" msgstr "" -#: js/ProgramBlocks.js:1347 -msgid "The Open project block is used to open a project from a web page." +#: js/blocks/IntervalsBlocks.js:678 +msgid "In the figure, we add sol# to sol." msgstr "" -#: js/ProgramBlocks.js:1357 -msgid "open project" +#: js/blocks/IntervalsBlocks.js:684 +#: js/blocks/OrnamentBlocks.js:220 +#.TRANS: calculate a relative step between notes based on semi-tones +msgid "semi-tone interval" msgstr "" -#: js/ProgramBlocks.js:1410 -msgid "Please enter a valid URL." +#: js/blocks/IntervalsBlocks.js:733 +msgid "The output of the example is: do, mi, sol, sol, ti, mi" msgstr "" -#: js/DrumBlocks.js:59 -msgid "The Noise name block is used to select a noise synthesizer." +#: js/blocks/IntervalsBlocks.js:740 +#: js/blocks/WidgetBlocks.js:768 +msgid "arpeggio" msgstr "" -#: js/DrumBlocks.js:102 -msgid "The Drum name block is used to select a drum." +#: js/blocks/IntervalsBlocks.js:931 +msgid "The Chord block calculates common chords." msgstr "" -#: js/DrumBlocks.js:146 -msgid "The Effects name block is used to select a sound effect." +#: js/blocks/IntervalsBlocks.js:933 +msgid "In the figure, we generate a C-major chord." msgstr "" -#: js/DrumBlocks.js:163 -msgid "noise" +#: js/blocks/IntervalsBlocks.js:938 +msgid "chord" msgstr "" -#: js/DrumBlocks.js:177 -msgid "The Play noise block will generate white, pink, or brown noise." +#: js/blocks/IntervalsBlocks.js:990 +msgid "The Ratio Interval block calculates an interval based on a ratio." msgstr "" -#: js/DrumBlocks.js:191 -#: js/musicutils.js:752 -#: js/synthutils.js:47 -#.TRANS: white noise synthesizer -msgid "white noise" +#: js/blocks/IntervalsBlocks.js:995 +msgid "ratio interval" msgstr "" -#: js/DrumBlocks.js:326 -msgid "Replace every instance of a pitch with a drum sound." +#: js/blocks/IntervalsBlocks.js:1064 +msgid "In the figure, we add la to sol." msgstr "" -#: js/DrumBlocks.js:337 -#.TRANS: map a pitch to a drum sound -msgid "map pitch to drum" +#: js/blocks/IntervalsBlocks.js:1120 +#.TRANS: define a custom mode +msgid "define mode" msgstr "" -#: js/DrumBlocks.js:404 -msgid "In the example above, a kick drum sound will be played instead of sol." +#: js/blocks/IntervalsBlocks.js:1173 +msgid "movable Do" msgstr "" -#: js/DrumBlocks.js:416 -#.TRANS: set the current drum sound for playback -msgid "set drum" +#: js/blocks/IntervalsBlocks.js:1224 +#.TRANS: mode length is the number of notes in the mode, e.g., 7 for major and minor scales; 12 for chromatic scales +msgid "mode length" msgstr "" -#: js/DrumBlocks.js:460 -msgid "sound effect" +#: js/blocks/IntervalsBlocks.js:1233 +msgid "The Mode length block is the number of notes in the current scale." msgstr "" -#: js/DrumBlocks.js:498 -msgid "You can use multiple Drum blocks within a Note block." +#: js/blocks/IntervalsBlocks.js:1235 +msgid "Most Western scales have 7 notes." msgstr "" -#: js/RhythmBlocks.js:182 -#: js/RhythmBlocks.js:1086 -#: js/RhythmBlocks.js:1162 -msgid "Note value must be greater than 0." +#: js/blocks/IntervalsBlocks.js:1284 +#.TRANS: the mode in music is 'major', 'minor', etc. +msgid "current mode" msgstr "" -#: js/RhythmBlocks.js:215 -#: js/RhythmBlocks.js:278 -#: js/RhythmBlocks.js:350 -#.TRANS: swing is a rhythmic variation that emphasises the offbeat -msgid "swing" +#: js/blocks/IntervalsBlocks.js:1337 +#.TRANS: the key is a group of pitches with which a music composition is created +msgid "current key" msgstr "" -#: js/RhythmBlocks.js:355 -#.TRANS: the amount to shift to the offbeat note -msgid "swing value" +#: js/blocks/IntervalsBlocks.js:1389 +#: js/blocks/IntervalsBlocks.js:1434 +#.TRANS: set the key and mode, e.g. C Major +msgid "set key" msgstr "" -#: js/RhythmBlocks.js:419 -msgid "The Skip notes block will cause notes to be skipped." +#: js/blocks/IntervalsBlocks.js:1443 +#: js/blocks/IntervalsBlocks.js:1449 +msgid "The Set key block is used to set the key and mode," msgstr "" -#: js/RhythmBlocks.js:427 -#.TRANS: substitute rests on notes being skipped -msgid "skip notes" +#: js/blocks/IntervalsBlocks.js:1449 +msgid "eg C Major" msgstr "" -#: js/RhythmBlocks.js:489 -#.TRANS: speed up note duration by some factor, e.g. convert 1/4 to 1/8 notes by using a factor of 2 -msgid "multiply note value" +#: js/blocks/MediaBlocks.js:35 +#.TRANS: right side of the screen +msgid "right (screen)" msgstr "" -#: js/RhythmBlocks.js:542 -msgid "The Tie block works on pairs of notes, combining them into one note." +#: js/blocks/MediaBlocks.js:45 +#: js/blocks/MediaBlocks.js:56 +msgid "The Right block returns the position of the right of the canvas." msgstr "" -#: js/RhythmBlocks.js:550 -#.TRANS: tie notes together into one longer note -msgid "tie" +#: js/blocks/MediaBlocks.js:97 +#.TRANS: left side of the screen +msgid "left (screen)" msgstr "" -#: js/RhythmBlocks.js:591 -#: js/RhythmBlocks.js:671 -#.TRANS: a dotted note is played for 1.5x its value, e.g., 1/8. --> 3/16 -msgid "dot" +#: js/blocks/MediaBlocks.js:107 +#: js/blocks/MediaBlocks.js:118 +msgid "The Left block returns the position of the left of the canvas." msgstr "" -#: js/RhythmBlocks.js:619 -#: js/RhythmActions.js:221 -msgid "An argument of -1 results in a note value of 0." +#: js/blocks/MediaBlocks.js:158 +msgid "top (screen)" msgstr "" -#: js/RhythmBlocks.js:661 -msgid "The Dot block extends the duration of a note by 50%." +#: js/blocks/MediaBlocks.js:168 +#: js/blocks/MediaBlocks.js:179 +msgid "The Top block returns the position of the top of the canvas." msgstr "" -#: js/RhythmBlocks.js:663 -msgid "Eg a dotted quarter note will play for 3/8 (1/4 + 1/8) of a beat." +#: js/blocks/MediaBlocks.js:219 +msgid "bottom (screen)" msgstr "" -#: js/RhythmBlocks.js:765 -#.TRANS: Japanese only: note value block for drum -msgid "note value drum" +#: js/blocks/MediaBlocks.js:229 +#: js/blocks/MediaBlocks.js:240 +msgid "The Bottom block returns the position of the bottom of the canvas." msgstr "" -#: js/RhythmBlocks.js:829 -msgid "392 hertz" +#: js/blocks/MediaBlocks.js:282 +msgid "width" msgstr "" -#: js/RhythmBlocks.js:1119 -msgid "The Note block is a container for one or more Pitch blocks." +#: js/blocks/MediaBlocks.js:291 +msgid "The Width block returns the width of the canvas." msgstr "" -#: js/RhythmBlocks.js:1121 -msgid "The Note block specifies the duration (note value) of its contents." +#: js/blocks/MediaBlocks.js:325 +msgid "height" msgstr "" -#: js/RhythmBlocks.js:1130 -msgid "value2" +#: js/blocks/MediaBlocks.js:334 +msgid "The Height block returns the height of the canvas." msgstr "" -#: js/RhythmBlocks.js:1200 -msgid "define frequency" +#: js/blocks/MediaBlocks.js:369 +#.TRANS: stops playback of an audio recording +msgid "stop play" msgstr "" -#: js/RhythmBlocks.js:1218 -#: js/temperament.js:650 -#: js/temperament.js:1421 -msgid "octave space" +#: js/blocks/MediaBlocks.js:404 +#.TRANS: Erases the images and text +msgid "erase media" msgstr "" -#: js/NumberBlocks.js:28 -msgid "The Int block returns an integer." +#: js/blocks/MediaBlocks.js:409 +msgid "The Erase Media block erases text and images." msgstr "" -#: js/NumberBlocks.js:34 -msgid "int" +#: js/blocks/MediaBlocks.js:439 +#.TRANS: play an audio recording +msgid "play back" msgstr "" -#: js/NumberBlocks.js:73 -msgid "The Mod block returns the remainder from a division." -msgstr "" +#: js/blocks/MediaBlocks.js:487 +msgid "speak" +msgstr "mówić" -#: js/NumberBlocks.js:79 -msgid "mod" -msgstr "modulo" +#: js/blocks/MediaBlocks.js:495 +msgid "The Speak block outputs to the text-to-speech synthesizer" +msgstr "" -#: js/NumberBlocks.js:123 -msgid "The Power block calculates a power function." +#: js/blocks/MediaBlocks.js:546 +msgid "camera" msgstr "" -#: js/NumberBlocks.js:178 -msgid "The Sqrt block returns the square root." +#: js/blocks/MediaBlocks.js:551 +msgid "The Camera block connects a webcam to the Show block." msgstr "" -#: js/NumberBlocks.js:184 -msgid "sqrt" +#: js/blocks/MediaBlocks.js:574 +msgid "video" msgstr "" -#: js/NumberBlocks.js:230 -msgid "The Abs block returns the absolute value." +#: js/blocks/MediaBlocks.js:579 +msgid "The Video block selects video for use with the Show block." msgstr "" -#: js/NumberBlocks.js:236 -msgid "abs" +#: js/blocks/MediaBlocks.js:607 +msgid "The Open file block opens a file for use with the Show block." msgstr "" -#: js/NumberBlocks.js:277 -msgid "The Distance block returns the distance between two points. For example, between the mouse and the center of the screen." +#: js/blocks/MediaBlocks.js:645 +msgid "stop media" msgstr "" -#: js/NumberBlocks.js:283 -#: plugins/rodi.rtp:310 -msgid "distance" +#: js/blocks/MediaBlocks.js:650 +msgid "The Stop media block stops audio or video playback." msgstr "" -#: js/NumberBlocks.js:343 -msgid "The Divide block is used to divide." +#: js/blocks/MediaBlocks.js:679 +#: js/blocks/PitchBlocks.js:1577 +#: js/widgets/musickeyboard.js:1936 +#: js/widgets/phrasemaker.js:1037 +#.TRANS: a measure of frequency: one cycle per second +msgid "hertz" msgstr "" -#: js/NumberBlocks.js:411 -msgid "The Multiply block is used to multiply." +#: js/blocks/MediaBlocks.js:692 +#: js/blocks/WidgetBlocks.js:182 +#: js/widgets/temperament.js:506 +#: js/widgets/temperament.js:546 +#: js/widgets/temperament.js:610 +#: js/widgets/temperament.js:618 +#: js/widgets/temperament.js:1505 +#: js/widgets/timbre.js:1842 +msgid "frequency" msgstr "" -#: js/NumberBlocks.js:554 -msgid "The Minus block is used to subtract." +#: js/blocks/MediaBlocks.js:692 +msgid "duration (ms)" msgstr "" -#: js/NumberBlocks.js:647 -msgid "The Plus block is used to add." +#: js/blocks/MediaBlocks.js:728 +#.TRANS: translate a note into hertz, e.g., A4 -> 440HZ +msgid "note to frequency" msgstr "" -#: js/NumberBlocks.js:773 -msgid "The One-of block returns one of two choices." +#: js/blocks/MediaBlocks.js:736 +msgid "The To frequency block converts a pitch name and octave to Hertz." msgstr "" -#: js/NumberBlocks.js:780 -#: js/PitchBlocks.js:616 -msgid "one of" +#: js/blocks/MediaBlocks.js:746 +#: js/blocks/PitchBlocks.js:656 +#: js/blocks/PitchBlocks.js:934 +#: js/blocks/PitchBlocks.js:1866 +#.TRANS: name2 is name as in name of pitch (JAPANESE ONLY) +msgid "name2" msgstr "" -#: js/NumberBlocks.js:782 -msgid "this" +#: js/blocks/MediaBlocks.js:812 +msgid "The Avatar block is used to change the appearance of the mouse." msgstr "" -#: js/NumberBlocks.js:782 -msgid "that" +#: js/blocks/MediaBlocks.js:819 +msgid "The Avatar block is used to change the appearance of the turtle." msgstr "" -#: js/NumberBlocks.js:837 -msgid "The Random block returns a random number." +#: js/blocks/MediaBlocks.js:831 +#: js/blocks/MediaBlocks.js:891 +#.TRANS: a media object +msgid "size" msgstr "" -#: js/NumberBlocks.js:844 -msgid "random" -msgstr "losowy" +#: js/blocks/MediaBlocks.js:831 +msgid "image" +msgstr "obraz" -#: js/NumberBlocks.js:846 -msgid "min" -msgstr "min" +#: js/blocks/MediaBlocks.js:880 +msgid "The Show block is used to display text or images on the canvas." +msgstr "" -#: js/NumberBlocks.js:846 -msgid "max" -msgstr "maks" +#: js/blocks/MediaBlocks.js:888 +#.TRANS: show1 is show as in display an image or text on the screen. +msgid "show1" +msgstr "" -#: js/NumberBlocks.js:910 -msgid "The Number block holds a number." +#: js/blocks/MediaBlocks.js:891 +msgid "obj" msgstr "" -#: js/BoxesBlocks.js:53 -#: js/BoxesBlocks.js:59 -msgid "The Add-to block is used to add to the value stored in a box." +#: js/blocks/MediaBlocks.js:938 +msgid "The Media block is used to import an image." msgstr "" -#: js/BoxesBlocks.js:61 -msgid "It can also be used with other blocks such as Color and Pen size." +#: js/blocks/MediaBlocks.js:973 +msgid "The Text block holds a text string." msgstr "" -#: js/BoxesBlocks.js:73 -msgid "add" +#: js/blocks/MeterBlocks.js:34 +#.TRANS: musical meter (time signature), e.g., 4:4 +msgid "current meter" msgstr "" -#: js/BoxesBlocks.js:75 -#: js/temperament.js:716 -msgid "to" +#: js/blocks/MeterBlocks.js:85 +#.TRANS: number of beats per minute +msgid "beat factor" msgstr "" -#: js/BoxesBlocks.js:75 -#: js/BoxesBlocks.js:595 -#: js/HeapBlocks.js:544 -msgid "value1" +#: js/blocks/MeterBlocks.js:161 +msgid "The Beats per minute block returns the current beats per minute." msgstr "" -#: js/BoxesBlocks.js:118 -msgid "Block does not support incrementing." +#: js/blocks/MeterBlocks.js:169 +#: js/widgets/status.js:152 +#.TRANS: number of beats played per minute +msgid "beats per minute2" msgstr "" -#: js/BoxesBlocks.js:152 -msgid "The Add-1-to block adds one to the value stored in a box." +#: js/blocks/MeterBlocks.js:169 +#: js/blocks/MeterBlocks.js:1056 +#: js/blocks/MeterBlocks.js:1133 +#: js/blocks/MeterBlocks.js:1211 +#.TRANS: sets tempo by defining a beat and beats per minute +msgid "beats per minute" msgstr "" -#: js/BoxesBlocks.js:163 -msgid "add 1 to" +#: js/blocks/MeterBlocks.js:233 +#.TRANS: count of current musical measure in meter +msgid "measure count" msgstr "" -#: js/BoxesBlocks.js:211 -msgid "The Subtract-1-from block subtracts one from the value stored in a box." +#: js/blocks/MeterBlocks.js:241 +msgid "The Measure count block returns the current measure." msgstr "" -#: js/BoxesBlocks.js:222 -msgid "subtract 1 from" +#: js/blocks/MeterBlocks.js:290 +#.TRANS: count of current beat in the meter +msgid "beat count" msgstr "" -#: js/BoxesBlocks.js:270 -#: js/BoxesBlocks.js:387 -msgid "The Box block returns the value stored in a box." +#: js/blocks/MeterBlocks.js:300 +#: js/blocks/MeterBlocks.js:311 +#: js/blocks/MeterBlocks.js:565 +#: js/blocks/MeterBlocks.js:576 +msgid "The Beat count block is the number of the current beat," msgstr "" -#: js/BoxesBlocks.js:500 -#: js/BoxesBlocks.js:576 -msgid "The Store in block will store a value in a box." +#: js/blocks/MeterBlocks.js:313 +#: js/blocks/MeterBlocks.js:578 +msgid "eg 1, 2, 3, or 4." msgstr "" -#: js/BoxesBlocks.js:652 -msgid "The Box2 block returns the value stored in Box2." +#: js/blocks/MeterBlocks.js:368 +#.TRANS: count the number of notes +msgid "sum note values" msgstr "" -#: js/BoxesBlocks.js:703 -msgid "The Store in Box2 block is used to store a value in Box2." +#: js/blocks/MeterBlocks.js:376 +#: js/blocks/MeterBlocks.js:440 +msgid "The Note counter block can be used to count the number of contained notes." msgstr "" -#: js/BoxesBlocks.js:715 -msgid "store in box2" +#: js/blocks/MeterBlocks.js:432 +#.TRANS: count the number of notes +msgid "note counter" msgstr "" -#: js/BoxesBlocks.js:761 -msgid "The Box1 block returns the value stored in Box1." +#: js/blocks/MeterBlocks.js:496 +#.TRANS: number of whole notes that have been played +msgid "whole notes played" msgstr "" -#: js/BoxesBlocks.js:812 -msgid "The Store in Box1 block is used to store a value in Box1." +#: js/blocks/MeterBlocks.js:505 +msgid "The Whole notes played block returns the total number of whole notes played." msgstr "" -#: js/BoxesBlocks.js:826 -msgid "store in box1" +#: js/blocks/MeterBlocks.js:555 +#: js/turtleactions/DictActions.js:83 +#.TRANS: number of notes that have been played +msgid "notes played" msgstr "" -#: js/HeapBlocks.js:49 -msgid "The Heap block returns the heap." +#: js/blocks/MeterBlocks.js:653 +msgid "The No clock block decouples the notes from the master clock." msgstr "" -#: js/HeapBlocks.js:133 -msgid "show heap" -msgstr "pokaż stos" +#: js/blocks/MeterBlocks.js:661 +#.TRANS: don't lock notes to master clock +msgid "no clock" +msgstr "" -#: js/HeapBlocks.js:181 -msgid "The Heap-length block returns the length of the heap." +#: js/blocks/MeterBlocks.js:700 +msgid "on weak beat do" msgstr "" -#: js/HeapBlocks.js:195 -msgid "heap length" +#: js/blocks/MeterBlocks.js:705 +msgid "The On-weak-beat block lets you specify actions to take on weak (off) beats." msgstr "" -#: js/HeapBlocks.js:254 -msgid "The Heap-empty? block returns true if the heap is empty." +#: js/blocks/MeterBlocks.js:750 +msgid "on strong beat" msgstr "" -#: js/HeapBlocks.js:268 -#.TRANS: Is the heap empty? -msgid "heap empty?" +#: js/blocks/MeterBlocks.js:758 +msgid "The On-strong-beat block lets you specify actions to take on specified beats." msgstr "" -#: js/HeapBlocks.js:317 -msgid "The Empty-heap block empties the heap." +#: js/blocks/MeterBlocks.js:769 +msgid "beat" msgstr "" -#: js/HeapBlocks.js:327 -#: js/HeapBlocks.js:647 -#.TRANS: empty the heap -msgid "empty heap" -msgstr "opróżnij stos" +#: js/blocks/MeterBlocks.js:813 +msgid "on every beat do" +msgstr "" -#: js/HeapBlocks.js:371 -msgid "The Reverse-heap block reverses the order of the heap." +#: js/blocks/MeterBlocks.js:821 +msgid "The On-every-beat block lets you specify actions to take on every beat." msgstr "" -#: js/HeapBlocks.js:384 -#.TRANS: reverse the order of the heap -msgid "reverse heap" +#: js/blocks/MeterBlocks.js:874 +msgid "on every note do" msgstr "" -#: js/HeapBlocks.js:428 -msgid "The Index-heap block returns a value in the heap at a specified location." +#: js/blocks/MeterBlocks.js:882 +msgid "The On-every-note block lets you specify actions to take on every note." msgstr "" -#: js/HeapBlocks.js:443 -#.TRANS: retrieve a value from the heap at index position in the heap -msgid "index heap" +#: js/blocks/MeterBlocks.js:928 +#: js/blocks/MeterBlocks.js:999 +#.TRANS: sets tempo by defining a beat and beats per minute +msgid "master beats per minute" msgstr "" -#: js/HeapBlocks.js:523 -msgid "The Set-heap entry block sets a value in he heap at the specified location." +#: js/blocks/MeterBlocks.js:952 +#: js/blocks/MeterBlocks.js:1078 +#: js/blocks/MeterBlocks.js:1135 +msgid "bpm" msgstr "" -#: js/HeapBlocks.js:619 -msgid "The Pop block removes the value at the top of the heap." +#: js/blocks/MeterBlocks.js:952 +#: js/blocks/MeterBlocks.js:1078 +#: js/blocks/MeterBlocks.js:1135 +msgid "beat value" msgstr "" -#: js/HeapBlocks.js:633 -#.TRANS: pop a value off the top of the heap -msgid "pop" -msgstr "ze stosu" +#: js/blocks/MeterBlocks.js:1024 +#: js/blocks/MeterBlocks.js:1167 +#: js/blocks/MeterBlocks.js:1241 +msgid "Beats per minute must be > 30." +msgstr "" -#: js/HeapBlocks.js:680 -msgid "The Push block adds a value to the top of the heap." +#: js/blocks/MeterBlocks.js:1027 +#: js/blocks/MeterBlocks.js:1170 +#: js/blocks/MeterBlocks.js:1244 +msgid "Maximum beats per minute is 1000." msgstr "" -#: js/HeapBlocks.js:696 -#.TRANS: push a value onto the top of the heap -msgid "push" -msgstr "na stos" +#: js/blocks/MeterBlocks.js:1068 +msgid "The Beats per minute block sets the number of 1/4 notes per minute." +msgstr "" -#: js/FlowBlocks.js:41 -msgid "The Backward block runs code in reverse order (Musical retrograde)." +#: js/blocks/MeterBlocks.js:1279 +#.TRANS: anacrusis +msgid "pickup" msgstr "" -#: js/FlowBlocks.js:48 -msgid "backward" +#: js/blocks/MeterBlocks.js:1367 +msgid "number of beats" msgstr "" -#: js/FlowBlocks.js:124 -msgid "The Duplicate block will run each block multiple times." +#: js/blocks/NumberBlocks.js:28 +msgid "The Int block returns an integer." msgstr "" -#: js/FlowBlocks.js:136 -msgid "duplicate" +#: js/blocks/NumberBlocks.js:34 +msgid "int" msgstr "" -#: js/FlowBlocks.js:334 -msgid "The Default block is used inside of a Switch to define the default action." +#: js/blocks/NumberBlocks.js:73 +msgid "The Mod block returns the remainder from a division." +msgstr "" + +#: js/blocks/NumberBlocks.js:79 +msgid "mod" +msgstr "modulo" + +#: js/blocks/NumberBlocks.js:141 +msgid "The Power block calculates a power function." msgstr "" -#: js/FlowBlocks.js:342 -msgid "default" +#: js/blocks/NumberBlocks.js:196 +msgid "The Sqrt block returns the square root." msgstr "" -#: js/FlowBlocks.js:361 -#: js/FlowBlocks.js:418 -msgid "The Case Block must be used inside of a Switch Block." +#: js/blocks/NumberBlocks.js:202 +msgid "sqrt" msgstr "" -#: js/FlowBlocks.js:389 -msgid "The Case block is used inside of a Switch to define matches." +#: js/blocks/NumberBlocks.js:248 +msgid "The Abs block returns the absolute value." msgstr "" -#: js/FlowBlocks.js:397 -msgid "case" +#: js/blocks/NumberBlocks.js:254 +msgid "abs" msgstr "" -#: js/FlowBlocks.js:446 -msgid "The Switch block will run the code in the matching Case." +#: js/blocks/NumberBlocks.js:295 +msgid "The Distance block returns the distance between two points. For example, between the mouse and the center of the screen." msgstr "" -#: js/FlowBlocks.js:454 -msgid "switch" +#: js/blocks/NumberBlocks.js:301 +#: plugins/rodi.rtp:310 +msgid "distance" msgstr "" -#: js/FlowBlocks.js:595 -msgid "The Stop block will stop a loop" +#: js/blocks/NumberBlocks.js:361 +msgid "The Divide block is used to divide." msgstr "" -#: js/FlowBlocks.js:597 -msgid "Forever, Repeat, While, or Until." +#: js/blocks/NumberBlocks.js:441 +msgid "The Multiply block is used to multiply." msgstr "" -#: js/FlowBlocks.js:604 -#: js/phrasemaker.js:3799 -#: js/musickeyboard.js:629 -#: js/musickeyboard.js:631 -#: js/timbre.js:417 -#: js/timbre.js:419 -#: plugins/rodi.rtp:29 -#: plugins/rodi.rtp:73 -#: plugins/rodi.rtp:413 -msgid "stop" -msgstr "zatrzymaj" - -#: js/FlowBlocks.js:653 -msgid "The Waitfor block will wait until the condition is true." +#: js/blocks/NumberBlocks.js:612 +msgid "The Minus block is used to subtract." msgstr "" -#: js/FlowBlocks.js:661 -msgid "wait for" +#: js/blocks/NumberBlocks.js:723 +msgid "The Plus block is used to add." msgstr "" -#: js/FlowBlocks.js:732 -msgid "The Until block will repeat until the condition is true." +#: js/blocks/NumberBlocks.js:849 +msgid "The One-of block returns one of two choices." msgstr "" -#: js/FlowBlocks.js:740 -msgid "until" -msgstr "dopóki" - -#: js/FlowBlocks.js:742 -#: js/FlowBlocks.js:822 -msgid "do2" +#: js/blocks/NumberBlocks.js:856 +#: js/blocks/PitchBlocks.js:616 +msgid "one of" msgstr "" -#: js/FlowBlocks.js:812 -msgid "The While block will repeat while the condition is true." +#: js/blocks/NumberBlocks.js:858 +msgid "this" msgstr "" -#: js/FlowBlocks.js:820 -msgid "while" -msgstr "podczas gdy" +#: js/blocks/NumberBlocks.js:858 +msgid "that" +msgstr "" -#: js/FlowBlocks.js:903 -#: js/FlowBlocks.js:968 -#: js/FlowBlocks.js:979 -msgid "In this example if the mouse button is pressed a snare drum will play." +#: js/blocks/NumberBlocks.js:913 +msgid "The Random block returns a random number." msgstr "" -#: js/FlowBlocks.js:925 -#: js/FlowBlocks.js:988 -msgid "if" -msgstr "jeżeli" +#: js/blocks/NumberBlocks.js:920 +msgid "random" +msgstr "losowy" -#: js/FlowBlocks.js:927 -#: js/FlowBlocks.js:990 -msgid "then" -msgstr "wtedy" +#: js/blocks/NumberBlocks.js:922 +msgid "min" +msgstr "min" -#: js/FlowBlocks.js:927 -msgid "else" -msgstr "pozostałe" +#: js/blocks/NumberBlocks.js:922 +msgid "max" +msgstr "maks" -#: js/FlowBlocks.js:1025 -msgid "The Forever block will repeat the contained blocks forever." +#: js/blocks/NumberBlocks.js:986 +msgid "The Number block holds a number." msgstr "" -#: js/FlowBlocks.js:1037 -msgid "forever" -msgstr "ciągle" - -#: js/FlowBlocks.js:1073 -msgid "The Repeat block will repeat the contained blocks." +#: js/blocks/OrnamentBlocks.js:32 +msgid "staccato factor" msgstr "" -#: js/FlowBlocks.js:1075 -msgid "In this example the note will be played 4 times." +#: js/blocks/OrnamentBlocks.js:108 +msgid "slur factor" msgstr "" -#: js/FlowBlocks.js:1083 -msgid "repeat" -msgstr "powtarzaj" - -#: js/FlowBlocks.js:1123 -msgid "duplicate factor" +#: js/blocks/OrnamentBlocks.js:217 +#: js/blocks/OrnamentBlocks.js:309 +#.TRANS: the neighbor refers to a neighboring note, e.g., D is a neighbor of C +msgid "neighbor" msgstr "" -#: js/PitchBlocks.js:39 -#: js/musicutils.js:722 -#: js/musicutils.js:1117 -#: js/synthutils.js:112 -#.TRANS: square wave -msgid "square" +#: js/blocks/OrnamentBlocks.js:293 +msgid "The Neighbor block rapidly switches between neighboring pitches." msgstr "" -#: js/PitchBlocks.js:62 -#: js/ToneBlocks.js:39 -#: js/musicutils.js:723 -#: js/musicutils.js:1118 -#: js/synthutils.js:116 -#.TRANS: triangle wave -msgid "triangle" +#: js/blocks/OrnamentBlocks.js:364 +msgid "glide" msgstr "" -#: js/PitchBlocks.js:85 -#: js/musicutils.js:721 -#: js/musicutils.js:1116 -#: js/synthutils.js:110 -#.TRANS: sine wave -msgid "sine" +#: js/blocks/OrnamentBlocks.js:479 +#: js/blocks/OrnamentBlocks.js:643 +msgid "slur" msgstr "" -#: js/PitchBlocks.js:108 -#: js/musicutils.js:724 -#: js/musicutils.js:1119 -#: js/synthutils.js:114 -#.TRANS: sawtooth wave -msgid "sawtooth" +#: js/blocks/OrnamentBlocks.js:558 +#: js/blocks/OrnamentBlocks.js:710 +#.TRANS: play each note sharply detached from the others +msgid "staccato" msgstr "" -#: js/PitchBlocks.js:141 -#.TRANS: musical transposition (adjustment of pitch up or down) -msgid "transposition" +#: js/blocks/RhythmBlocks.js:182 +#: js/blocks/RhythmBlocks.js:1086 +#: js/blocks/RhythmBlocks.js:1162 +msgid "Note value must be greater than 0." msgstr "" -#: js/PitchBlocks.js:168 -#.TRANS: step down one note in current musical scale -msgid "scalar step down" +#: js/blocks/RhythmBlocks.js:215 +#: js/blocks/RhythmBlocks.js:278 +#: js/blocks/RhythmBlocks.js:350 +#.TRANS: swing is a rhythmic variation that emphasises the offbeat +msgid "swing" msgstr "" -#: js/PitchBlocks.js:172 -msgid "The Scalar step down block returns the number of semi-tones down to the previous note in the current key and mode." +#: js/blocks/RhythmBlocks.js:355 +#.TRANS: the amount to shift to the offbeat note +msgid "swing value" msgstr "" -#: js/PitchBlocks.js:190 -#.TRANS: step up one note in current musical scale -msgid "scalar step up" +#: js/blocks/RhythmBlocks.js:419 +msgid "The Skip notes block will cause notes to be skipped." msgstr "" -#: js/PitchBlocks.js:194 -msgid "The Scalar step up block returns the number of semi-tones up to the next note in the current key and mode." +#: js/blocks/RhythmBlocks.js:427 +#.TRANS: substitute rests on notes being skipped +msgid "skip notes" msgstr "" -#: js/PitchBlocks.js:212 -#.TRANS: the change measured in half-steps between the current pitch and the previous pitch -msgid "change in pitch" +#: js/blocks/RhythmBlocks.js:489 +#.TRANS: speed up note duration by some factor, e.g. convert 1/4 to 1/8 notes by using a factor of 2 +msgid "multiply note value" msgstr "" -#: js/PitchBlocks.js:216 -msgid "The Change in pitch block is the difference (in half steps) between the current pitch being played and the previous pitch played." +#: js/blocks/RhythmBlocks.js:542 +msgid "The Tie block works on pairs of notes, combining them into one note." msgstr "" -#: js/PitchBlocks.js:243 -#.TRANS: the change measured in scale-steps between the current pitch and the previous pitch -msgid "scalar change in pitch" +#: js/blocks/RhythmBlocks.js:550 +#.TRANS: tie notes together into one longer note +msgid "tie" msgstr "" -#: js/PitchBlocks.js:250 -#: js/PitchBlocks.js:432 -#: js/PitchBlocks.js:1629 -#: js/DictActions.js:89 -#: js/temperament.js:477 -#: js/temperament.js:481 -#: js/temperament.js:714 -#.TRANS: convert current note to piano key (1-88) -#.TRANS: a mapping of pitch to the 88 piano keys -msgid "pitch number" +#: js/blocks/RhythmBlocks.js:591 +#: js/blocks/RhythmBlocks.js:671 +#.TRANS: a dotted note is played for 1.5x its value, e.g., 1/8. --> 3/16 +msgid "dot" msgstr "" -#: js/PitchBlocks.js:256 -msgid "The Pitch number block is the value of the pitch of the note currently being played." +#: js/blocks/RhythmBlocks.js:619 +#: js/turtleactions/RhythmActions.js:221 +msgid "An argument of -1 results in a note value of 0." msgstr "" -#: js/PitchBlocks.js:329 -#: js/PitchBlocks.js:433 -#.TRANS: the current pitch expressed in Hertz -msgid "pitch in hertz" +#: js/blocks/RhythmBlocks.js:661 +msgid "The Dot block extends the duration of a note by 50%." msgstr "" -#: js/PitchBlocks.js:334 -msgid "The Pitch in Hertz block is the value in Hertz of the pitch of the note currently being played." +#: js/blocks/RhythmBlocks.js:663 +msgid "Eg a dotted quarter note will play for 3/8 (1/4 + 1/8) of a beat." msgstr "" -#: js/PitchBlocks.js:367 -#: js/DictActions.js:87 -msgid "current pitch" +#: js/blocks/RhythmBlocks.js:765 +#.TRANS: Japanese only: note value block for drum +msgid "note value drum" msgstr "" -#: js/PitchBlocks.js:373 -msgid "The Current Pitch block is used with the Pitch Converter block. In the example above, current pitch, sol 4, is displayed as 392 hertz." +#: js/blocks/RhythmBlocks.js:829 +msgid "392 hertz" msgstr "" -#: js/PitchBlocks.js:410 -msgid "This block converts the pitch value of the last note played into different formats such as hertz, letter name, pitch number, et al." +#: js/blocks/RhythmBlocks.js:1119 +msgid "The Note block is a container for one or more Pitch blocks." msgstr "" -#: js/PitchBlocks.js:434 -msgid "alphabet" +#: js/blocks/RhythmBlocks.js:1121 +msgid "The Note block specifies the duration (note value) of its contents." msgstr "" -#: js/PitchBlocks.js:436 -#.TRANS: Translate as "alphabet class" -msgid "letter class" +#: js/blocks/RhythmBlocks.js:1128 +#: js/blocks/PitchBlocks.js:974 +#: js/blocks/PitchBlocks.js:1007 +#: js/blocks/ProgramBlocks.js:1186 +#: js/blocks/ProgramBlocks.js:1227 +#: js/widgets/status.js:190 +#: js/widgets/temperament.js:464 +#: js/widgets/temperament.js:486 +#: js/widgets/temperament.js:496 +#: js/widgets/temperament.js:617 +#: plugins/rodi.rtp:192 +#.TRANS: a musical note consisting of pitch and duration +msgid "note" msgstr "" -#: js/PitchBlocks.js:437 -msgid "solfege class" +#: js/blocks/RhythmBlocks.js:1130 +msgid "value2" msgstr "" -#: js/PitchBlocks.js:438 -msgid "staff y" +#: js/blocks/RhythmBlocks.js:1200 +msgid "define frequency" msgstr "" -#: js/PitchBlocks.js:439 -msgid "solfege syllable" +#: js/blocks/RhythmBlocks.js:1218 +#: js/widgets/temperament.js:787 +#: js/widgets/temperament.js:1587 +msgid "octave space" msgstr "" -#: js/PitchBlocks.js:440 -msgid "pitch class" +#: js/blocks/SensorsBlocks.js:36 +msgid "The Input block prompts for keyboard input." msgstr "" -#: js/PitchBlocks.js:441 -msgid "scalar class" +#: js/blocks/SensorsBlocks.js:46 +msgid "input" msgstr "" -#: js/PitchBlocks.js:443 -msgid "nth degree" +#: js/blocks/SensorsBlocks.js:64 +msgid "Input a value" msgstr "" -#: js/PitchBlocks.js:444 -msgid "pitch to shade" +#: js/blocks/SensorsBlocks.js:126 +msgid "input value" msgstr "" -#: js/PitchBlocks.js:445 -msgid "pitch to color" +#: js/blocks/SensorsBlocks.js:131 +msgid "The Input-value block stores the input." msgstr "" -#: js/PitchBlocks.js:629 -#: js/musickeyboard.js:565 -#.TRANS: MIDI is a technical standard for electronic music -msgid "MIDI" -msgstr "" +#: js/blocks/SensorsBlocks.js:238 +msgid "loudness" +msgstr "głośność" -#: js/PitchBlocks.js:642 -#.TRANS: set an offset associated with the numeric piano keyboard mapping -msgid "set pitch number offset" +#: js/blocks/SensorsBlocks.js:245 +msgid "The Loudness block returns the volume detected by the microphone." msgstr "" -#: js/PitchBlocks.js:645 -msgid "The Set pitch number offset block is used to set the offset for mapping pitch numbers to pitch and octave." +#: js/blocks/SensorsBlocks.js:300 +msgid "click" msgstr "" -#: js/PitchBlocks.js:679 -#.TRANS: convert piano key number (1-88) to pitch -msgid "number to pitch" +#: js/blocks/SensorsBlocks.js:306 +msgid "The Click block triggers an event if a mouse has been clicked." msgstr "" -#: js/PitchBlocks.js:682 -msgid "The Number to pitch block will convert a pitch number to a pich name." +#: js/blocks/SensorsBlocks.js:313 +msgid "The Click block triggers an event if a turtle has been clicked." msgstr "" -#: js/PitchBlocks.js:715 -#.TRANS: convert piano key number (1-88) to octave -msgid "number to octave" +#: js/blocks/SensorsBlocks.js:342 +msgid "cursor over" msgstr "" -#: js/PitchBlocks.js:717 -msgid "The Number to octave block will convert a pitch number to an octave." +#: js/blocks/SensorsBlocks.js:387 +msgid "cursor out" msgstr "" -#: js/PitchBlocks.js:726 -msgid "y to pitch" +#: js/blocks/SensorsBlocks.js:433 +msgid "cursor button down" msgstr "" -#: js/PitchBlocks.js:729 -msgid "Y to pitch block will convert a staff y position to corresponding pitch notation." +#: js/blocks/SensorsBlocks.js:477 +msgid "cursor button up" msgstr "" -#: js/PitchBlocks.js:841 -msgid "accidental selector" +#: js/blocks/SensorsBlocks.js:521 +#: js/blocks/PenBlocks.js:48 +#: plugins/rodi.rtp:219 +msgid "blue" msgstr "" -#: js/PitchBlocks.js:844 -msgid "The Accidental selector block is used to choose between double-sharp, sharp, natural, flat, and double-flat." +#: js/blocks/SensorsBlocks.js:577 +#: js/blocks/PenBlocks.js:64 +#: plugins/rodi.rtp:218 +msgid "green" msgstr "" -#: js/PitchBlocks.js:858 -msgid "Pitch can be specified in terms of ni dha pa ma ga re sa." +#: js/blocks/SensorsBlocks.js:633 +#: js/blocks/PenBlocks.js:112 +#: plugins/rodi.rtp:217 +msgid "red" msgstr "" -#: js/PitchBlocks.js:872 -msgid "Pitch can be specified in terms of C D E F G A B." +#: js/blocks/SensorsBlocks.js:638 +msgid "The Get red block returns the red component of the pixel under the mouse." msgstr "" -#: js/PitchBlocks.js:883 -msgid "solfege" +#: js/blocks/SensorsBlocks.js:644 +msgid "The Get red block returns the red component of the pixel under the turtle." msgstr "" -#: js/PitchBlocks.js:886 -msgid "Pitch can be specified in terms of do re mi fa sol la ti." +#: js/blocks/SensorsBlocks.js:685 +#: plugins/rodi.rtp:216 +msgid "pixel color" msgstr "" -#: js/PitchBlocks.js:920 -msgid "The Invert block rotates any contained notes around a target note." +#: js/blocks/SensorsBlocks.js:690 +msgid "The Get pixel block returns the color of the pixel under the mouse." msgstr "" -#: js/PitchBlocks.js:927 -#.TRANS: pitch inversion rotates a pitch around another pitch -msgid "invert" +#: js/blocks/SensorsBlocks.js:696 +msgid "The Get pixel block returns the color of the pixel under the turtle." msgstr "" -#: js/PitchBlocks.js:929 -#: js/PitchBlocks.js:935 -#: js/PitchActions.js:727 -#: js/musicutils.js:726 -#: js/musicutils.js:902 -#.TRANS: invert based on even or odd number or musical scale -#.TRANS: even numbers -msgid "even" -msgstr "" +#: js/blocks/SensorsBlocks.js:758 +msgid "time" +msgstr "czas" -#: js/PitchBlocks.js:935 -#: js/PitchActions.js:729 -#: js/musicutils.js:728 -#: js/musicutils.js:903 -#.TRANS: odd numbers -msgid "odd" +#: js/blocks/SensorsBlocks.js:804 +msgid "cursor y" msgstr "" -#: js/PitchBlocks.js:935 -#: js/PitchActions.js:731 -#: js/musicutils.js:729 -#: js/musicutils.js:904 -msgid "scalar" +#: js/blocks/SensorsBlocks.js:809 +msgid "The Cursor Y block returns the vertical position of the mouse." msgstr "" -#: js/PitchBlocks.js:966 -#.TRANS: pitch inversion rotates a pitch around another pitch (odd number) -msgid "invert (odd)" +#: js/blocks/SensorsBlocks.js:845 +msgid "cursor x" msgstr "" -#: js/PitchBlocks.js:999 -#.TRANS: pitch inversion rotates a pitch around another pitch (even number) -msgid "invert (even)" +#: js/blocks/SensorsBlocks.js:850 +msgid "The Cursor X block returns the horizontal position of the mouse." msgstr "" -#: js/PitchBlocks.js:1020 -#.TRANS: register is the octave of the current pitch -msgid "register" +#: js/blocks/SensorsBlocks.js:886 +msgid "mouse button" msgstr "" -#: js/PitchBlocks.js:1024 -msgid "The Register block provides an easy way to modify the register (octave) of the notes that follow it." +#: js/blocks/SensorsBlocks.js:888 +msgid "The Mouse-button block returns True if the mouse button is pressed." msgstr "" -#: js/PitchBlocks.js:1074 -msgid "The Semi-tone transposition block will shift the pitches contained inside Note blocks up (or down) by half steps." +#: js/blocks/SensorsBlocks.js:934 +msgid "to ASCII" msgstr "" -#: js/PitchBlocks.js:1076 -msgid "In the example shown above, sol is shifted up to sol#." +#: js/blocks/SensorsBlocks.js:938 +msgid "The To ASCII block converts numbers to letters." msgstr "" -#: js/PitchBlocks.js:1082 -#.TRANS: adjust the amount of shift (up or down) of a pitch -msgid "semi-tone transpose" +#: js/blocks/SensorsBlocks.js:1005 +msgid "The Keyboard block returns computer keyboard input." msgstr "" -#: js/PitchBlocks.js:1115 -msgid "The Transpose by Ratio block will shift the pitches contained inside Note blocks up (or down) by a ratio" +#: js/blocks/RhythmBlockPaletteBlocks.js:50 +#: js/blocks/RhythmBlockPaletteBlocks.js:233 +#.TRANS: rhythm block +#.TRANS: translate "rhythm1" as rhythm +msgid "rhythm1" msgstr "" -#: js/PitchBlocks.js:1121 -#.TRANS: adjust the amount of shift (up or down) of a pitch -msgid "transpose by ratio" +#: js/blocks/RhythmBlockPaletteBlocks.js:70 +#: js/blocks/RhythmBlockPaletteBlocks.js:252 +#: js/blocks/RhythmBlockPaletteBlocks.js:485 +#: js/blocks/RhythmBlockPaletteBlocks.js:554 +#: js/blocks/RhythmBlockPaletteBlocks.js:875 +msgid "number of notes" msgstr "" -#: js/PitchBlocks.js:1204 -#.TRANS: down sixth means the note is five scale degrees below current note -msgid "down sixth" +#: js/blocks/RhythmBlockPaletteBlocks.js:126 +msgid "polyphonic rhythm" msgstr "" -#: js/PitchBlocks.js:1223 -#.TRANS: down third means the note is two scale degrees below current note -msgid "down third" +#: js/blocks/RhythmBlockPaletteBlocks.js:219 +msgid "The Rhythm block is used to generate rhythm patterns." msgstr "" -#: js/PitchBlocks.js:1242 -#.TRANS: seventh means the note is the six scale degrees above current note -msgid "seventh" +#: js/blocks/RhythmBlockPaletteBlocks.js:280 +msgid "1/64 note" msgstr "" -#: js/PitchBlocks.js:1261 -#.TRANS: sixth means the note is the five scale degrees above current note -msgid "sixth" +#: js/blocks/RhythmBlockPaletteBlocks.js:304 +msgid "1/32 note" msgstr "" -#: js/PitchBlocks.js:1280 -#.TRANS: fifth means the note is the four scale degrees above current note -msgid "fifth" +#: js/blocks/RhythmBlockPaletteBlocks.js:332 +msgid "1/16 note" msgstr "" -#: js/PitchBlocks.js:1300 -#.TRANS: fourth means the note is three scale degrees above current note -msgid "fourth" +#: js/blocks/RhythmBlockPaletteBlocks.js:360 +msgid "eighth note" msgstr "" -#: js/PitchBlocks.js:1319 -#.TRANS: third means the note is two scale degrees above current note -msgid "third" +#: js/blocks/RhythmBlockPaletteBlocks.js:388 +msgid "quarter note" msgstr "" -#: js/PitchBlocks.js:1338 -#.TRANS: second means the note is one scale degree above current note -msgid "second" +#: js/blocks/RhythmBlockPaletteBlocks.js:416 +msgid "half note" msgstr "" -#: js/PitchBlocks.js:1379 -msgid "The Scalar transposition block will shift the pitches contained inside Note blocks up (or down) the scale." +#: js/blocks/RhythmBlockPaletteBlocks.js:444 +msgid "whole note" msgstr "" -#: js/PitchBlocks.js:1381 -msgid "In the example shown above, sol is shifted up to la." +#: js/blocks/RhythmBlockPaletteBlocks.js:482 +#: js/blocks/RhythmBlockPaletteBlocks.js:551 +#: js/blocks/RhythmBlockPaletteBlocks.js:602 +#.TRANS: A tuplet is a note value divided into irregular time values. +msgid "tuplet" msgstr "" -#: js/PitchBlocks.js:1388 -#.TRANS: adjust the amount of shift (up or down) of a pitch by musical scale (scalar) steps -msgid "scalar transpose" +#: js/blocks/RhythmBlockPaletteBlocks.js:768 +msgid "septuplet" msgstr "" -#: js/PitchBlocks.js:1423 -msgid "The Accidental block is used to create sharps and flats" +#: js/blocks/RhythmBlockPaletteBlocks.js:796 +msgid "quintuplet" msgstr "" -#: js/PitchBlocks.js:1430 -#.TRANS: An accidental is a modification to a pitch, e.g., sharp or flat. -msgid "accidental override" +#: js/blocks/RhythmBlockPaletteBlocks.js:824 +msgid "triplet" msgstr "" -#: js/PitchBlocks.js:1543 -msgid "The Hertz block (in combination with a Number block) will play a sound at the specified frequency." +#: js/blocks/RhythmBlockPaletteBlocks.js:851 +msgid "simple tuplet" msgstr "" -#: js/PitchBlocks.js:1633 -msgid "The Pitch Number block will play a pitch associated by its number, e.g. 0 for C and 7 for G." +#: js/blocks/RhythmBlockPaletteBlocks.js:861 +msgid "Tuplets are a collection of notes that get scaled to a specific duration." msgstr "" -#: js/PitchBlocks.js:1665 -#: js/PitchBlocks.js:1707 -#.TRANS: a numeric mapping of the notes in an octave based on the musical mode -#.TRANS: a numeric mapping of the notes in an octave based on the musical mode -msgid "nth modal pitch" +#: js/blocks/DrumBlocks.js:59 +msgid "The Noise name block is used to select a noise synthesizer." msgstr "" -#: js/PitchBlocks.js:1668 -msgid "n^th Modal Pitch takes the pattern of pitches in semitones for a mode and makes each point a degree of the mode," +#: js/blocks/DrumBlocks.js:102 +msgid "The Drum name block is used to select a drum." msgstr "" -#: js/PitchBlocks.js:1670 -msgid "starting from 1 and regardless of tonal framework (i.e. not always 8 notes in the octave)" +#: js/blocks/DrumBlocks.js:146 +msgid "The Effects name block is used to select a sound effect." msgstr "" -#: js/PitchBlocks.js:1711 -msgid "N^th Modal Pitch takes a number as an input as the n^th degree for the given mode. 0 is the first position, 1 is the second, -1 is the note before the first etc." +#: js/blocks/DrumBlocks.js:163 +msgid "noise" msgstr "" -#: js/PitchBlocks.js:1713 -msgid "The pitches change according to the mode specified without any need for respellings." +#: js/blocks/DrumBlocks.js:177 +msgid "The Play noise block will generate white, pink, or brown noise." msgstr "" -#: js/PitchBlocks.js:1752 -msgid "Scale Degree is a common convention in music. Scale Degree offers seven possible positions in the scale (1-7) and can be modified via accidentals." +#: js/blocks/DrumBlocks.js:317 +msgid "Replace every instance of a pitch with a drum sound." msgstr "" -#: js/PitchBlocks.js:1754 -msgid "Scale Degree 1 is always the first pitch in a given scale, regardless of octave." +#: js/blocks/DrumBlocks.js:328 +#.TRANS: map a pitch to a drum sound +msgid "map pitch to drum" msgstr "" -#: js/PitchBlocks.js:1776 -#.TRANS: step some number of notes in current musical scale -msgid "scalar step" +#: js/blocks/DrumBlocks.js:395 +msgid "In the example above, a kick drum sound will be played instead of sol." msgstr "" -#: js/PitchBlocks.js:1781 -msgid "The Scalar Step block (in combination with a Number block) will play the next pitch in a scale," +#: js/blocks/DrumBlocks.js:407 +#.TRANS: set the current drum sound for playback +msgid "set drum" msgstr "" -#: js/PitchBlocks.js:1783 -msgid "eg if the last note played was sol, Scalar Step 1 will play la." +#: js/blocks/DrumBlocks.js:451 +msgid "sound effect" msgstr "" -#: js/PitchBlocks.js:1818 -msgid "The Pitch block specifies the pitch name and octave of a note that together determine the frequency of the note." +#: js/blocks/DrumBlocks.js:489 +msgid "You can use multiple Drum blocks within a Note block." msgstr "" -#: js/GraphicsBlocks.js:46 -#: js/DictActions.js:77 -#: js/DictActions.js:155 -#: js/DictActions.js:189 +#: js/blocks/GraphicsBlocks.js:46 +#: js/turtleactions/DictActions.js:77 +#: js/turtleactions/DictActions.js:144 +#: js/turtleactions/DictActions.js:173 msgid "heading" msgstr "kierunek" -#: js/GraphicsBlocks.js:56 +#: js/blocks/GraphicsBlocks.js:56 msgid "The Heading block returns the orientation of the mouse." msgstr "" -#: js/GraphicsBlocks.js:62 +#: js/blocks/GraphicsBlocks.js:62 msgid "The Heading block returns the orientation of the turtle." msgstr "" -#: js/GraphicsBlocks.js:133 +#: js/blocks/GraphicsBlocks.js:133 msgid "The Y block returns the vertical position of the mouse." msgstr "" -#: js/GraphicsBlocks.js:140 +#: js/blocks/GraphicsBlocks.js:140 msgid "The Y block returns the vertical position of the turtle." msgstr "" -#: js/GraphicsBlocks.js:149 +#: js/blocks/GraphicsBlocks.js:149 msgid "y3" msgstr "" -#: js/GraphicsBlocks.js:219 +#: js/blocks/GraphicsBlocks.js:219 msgid "The X block returns the horizontal position of the mouse." msgstr "" -#: js/GraphicsBlocks.js:226 +#: js/blocks/GraphicsBlocks.js:226 msgid "The X block returns the horizontal position of the turtle." msgstr "" -#: js/GraphicsBlocks.js:235 +#: js/blocks/GraphicsBlocks.js:235 msgid "x3" msgstr "" -#: js/GraphicsBlocks.js:295 +#: js/blocks/GraphicsBlocks.js:295 msgid "scroll xy" msgstr "" -#: js/GraphicsBlocks.js:303 +#: js/blocks/GraphicsBlocks.js:303 msgid "The Scroll XY block moves the canvas." msgstr "" -#: js/GraphicsBlocks.js:313 +#: js/blocks/GraphicsBlocks.js:313 msgid "x2" msgstr "" -#: js/GraphicsBlocks.js:313 +#: js/blocks/GraphicsBlocks.js:313 msgid "y2" msgstr "" -#: js/GraphicsBlocks.js:373 -#: js/temperament.js:213 -#: js/temperament.js:241 +#: js/blocks/GraphicsBlocks.js:373 +#: js/widgets/temperament.js:319 +#: js/widgets/temperament.js:347 msgid "clear" msgstr "" -#: js/GraphicsBlocks.js:426 +#: js/blocks/GraphicsBlocks.js:426 msgid "The Control-point 2 block sets the second control point for the Bezier curve." msgstr "" -#: js/GraphicsBlocks.js:433 +#: js/blocks/GraphicsBlocks.js:433 msgid "control point 2" msgstr "" -#: js/GraphicsBlocks.js:436 -#: js/GraphicsBlocks.js:487 -#: js/GraphicsBlocks.js:534 -#: js/GraphicsBlocks.js:750 +#: js/blocks/GraphicsBlocks.js:436 +#: js/blocks/GraphicsBlocks.js:487 +#: js/blocks/GraphicsBlocks.js:534 +#: js/blocks/GraphicsBlocks.js:750 msgid "x1" msgstr "" -#: js/GraphicsBlocks.js:436 -#: js/GraphicsBlocks.js:487 -#: js/GraphicsBlocks.js:534 -#: js/GraphicsBlocks.js:750 +#: js/blocks/GraphicsBlocks.js:436 +#: js/blocks/GraphicsBlocks.js:487 +#: js/blocks/GraphicsBlocks.js:534 +#: js/blocks/GraphicsBlocks.js:750 msgid "y1" msgstr "" -#: js/GraphicsBlocks.js:477 +#: js/blocks/GraphicsBlocks.js:477 msgid "The Control-point 1 block sets the first control point for the Bezier curve." msgstr "" -#: js/GraphicsBlocks.js:484 +#: js/blocks/GraphicsBlocks.js:484 msgid "control point 1" msgstr "" -#: js/GraphicsBlocks.js:527 +#: js/blocks/GraphicsBlocks.js:527 msgid "The Bezier block draws a Bezier curve." msgstr "" -#: js/GraphicsBlocks.js:531 +#: js/blocks/GraphicsBlocks.js:531 msgid "bezier" msgstr "" -#: js/GraphicsBlocks.js:592 +#: js/blocks/GraphicsBlocks.js:592 msgid "The Arc block moves the turtle in an arc." msgstr "" -#: js/GraphicsBlocks.js:600 +#: js/blocks/GraphicsBlocks.js:600 msgid "arc" msgstr "łuk" -#: js/GraphicsBlocks.js:603 +#: js/blocks/GraphicsBlocks.js:603 msgid "angle" msgstr "kąt" -#: js/GraphicsBlocks.js:603 +#: js/blocks/GraphicsBlocks.js:603 msgid "radius" msgstr "promień" -#: js/GraphicsBlocks.js:620 -#: js/GraphicsBlocks.js:767 -#: js/GraphicsBlocks.js:1010 -#: js/GraphicsBlocks.js:1093 +#: js/blocks/GraphicsBlocks.js:620 +#: js/blocks/GraphicsBlocks.js:767 +#: js/blocks/GraphicsBlocks.js:1010 +#: js/blocks/GraphicsBlocks.js:1093 msgid "Value must be within -5000 to 5000 when Wrap Mode is off." msgstr "" -#: js/GraphicsBlocks.js:622 -#: js/GraphicsBlocks.js:769 -#: js/GraphicsBlocks.js:1012 -#: js/GraphicsBlocks.js:1095 +#: js/blocks/GraphicsBlocks.js:622 +#: js/blocks/GraphicsBlocks.js:769 +#: js/blocks/GraphicsBlocks.js:1012 +#: js/blocks/GraphicsBlocks.js:1095 msgid "Value must be within -20000 to 20000 when Wrap Mode is on." msgstr "" -#: js/GraphicsBlocks.js:660 +#: js/blocks/GraphicsBlocks.js:660 msgid "set heading" msgstr "ustaw kierunek" -#: js/GraphicsBlocks.js:673 +#: js/blocks/GraphicsBlocks.js:673 msgid "The Set heading block sets the heading of the turtle." msgstr "" -#: js/GraphicsBlocks.js:733 +#: js/blocks/GraphicsBlocks.js:733 msgid "The Set XY block moves the mouse to a specific position on the screen." msgstr "" -#: js/GraphicsBlocks.js:739 +#: js/blocks/GraphicsBlocks.js:739 msgid "The Set XY block moves the turtle to a specific position on the screen." msgstr "" -#: js/GraphicsBlocks.js:747 +#: js/blocks/GraphicsBlocks.js:747 msgid "set xy" msgstr "ustaw xy" -#: js/GraphicsBlocks.js:819 +#: js/blocks/GraphicsBlocks.js:819 msgid "The Right block turns the mouse to the right." msgstr "" -#: js/GraphicsBlocks.js:826 +#: js/blocks/GraphicsBlocks.js:826 msgid "The Right block turns the turtle to the right." msgstr "" -#: js/GraphicsBlocks.js:835 +#: js/blocks/GraphicsBlocks.js:835 msgid "right1" msgstr "" -#: js/GraphicsBlocks.js:835 +#: js/blocks/GraphicsBlocks.js:835 #: plugins/rodi.rtp:77 #: plugins/rodi.rtp:340 #: plugins/rodi.rtp:375 msgid "right" msgstr "w prawo" -#: js/GraphicsBlocks.js:899 +#: js/blocks/GraphicsBlocks.js:899 msgid "The Left block turns the mouse to the left." msgstr "" -#: js/GraphicsBlocks.js:906 +#: js/blocks/GraphicsBlocks.js:906 msgid "The Left block turns the turtle to the left." msgstr "" -#: js/GraphicsBlocks.js:915 +#: js/blocks/GraphicsBlocks.js:915 msgid "left1" msgstr "" -#: js/GraphicsBlocks.js:915 +#: js/blocks/GraphicsBlocks.js:915 #: plugins/rodi.rtp:79 #: plugins/rodi.rtp:339 #: plugins/rodi.rtp:362 msgid "left" msgstr "w lewo" -#: js/GraphicsBlocks.js:967 -#: js/temperament.js:734 -#: js/temperament.js:933 +#: js/blocks/GraphicsBlocks.js:967 +#: js/widgets/temperament.js:875 +#: js/widgets/temperament.js:1078 #: plugins/rodi.rtp:69 #: plugins/rodi.rtp:387 msgid "back" msgstr "cofaj" -#: js/GraphicsBlocks.js:976 +#: js/blocks/GraphicsBlocks.js:976 msgid "The Back block moves the mouse backward." msgstr "" -#: js/GraphicsBlocks.js:983 +#: js/blocks/GraphicsBlocks.js:983 msgid "The Back block moves the turtle backward." msgstr "" -#: js/GraphicsBlocks.js:1050 +#: js/blocks/GraphicsBlocks.js:1050 #: plugins/rodi.rtp:71 #: plugins/rodi.rtp:400 msgid "forward" msgstr "idź" -#: js/GraphicsBlocks.js:1059 +#: js/blocks/GraphicsBlocks.js:1059 msgid "The Forward block moves the mouse forward." msgstr "" -#: js/GraphicsBlocks.js:1066 +#: js/blocks/GraphicsBlocks.js:1066 msgid "The Forward block moves the turtle forward." msgstr "" -#: js/GraphicsBlocks.js:1154 -#: js/GraphicsBlocks.js:1172 +#: js/blocks/GraphicsBlocks.js:1154 +#: js/blocks/GraphicsBlocks.js:1172 msgid "wrap" msgstr "" -#: js/OrnamentBlocks.js:32 -msgid "staccato factor" -msgstr "" - -#: js/OrnamentBlocks.js:108 -msgid "slur factor" -msgstr "" - -#: js/OrnamentBlocks.js:217 -#: js/OrnamentBlocks.js:309 -#.TRANS: the neighbor refers to a neighboring note, e.g., D is a neighbor of C -msgid "neighbor" -msgstr "" - -#: js/OrnamentBlocks.js:293 -msgid "The Neighbor block rapidly switches between neighboring pitches." -msgstr "" - -#: js/OrnamentBlocks.js:364 -msgid "glide" -msgstr "" - -#: js/OrnamentBlocks.js:479 -#: js/OrnamentBlocks.js:643 -msgid "slur" -msgstr "" - -#: js/OrnamentBlocks.js:558 -#: js/OrnamentBlocks.js:710 -#.TRANS: play each note sharply detached from the others -msgid "staccato" -msgstr "" - -#: js/PenBlocks.js:24 +#: js/blocks/PenBlocks.js:30 msgid "purple" msgstr "" -#: js/PenBlocks.js:37 -#: js/SensorsBlocks.js:521 -#: plugins/rodi.rtp:219 -msgid "blue" -msgstr "" - -#: js/PenBlocks.js:50 -#: js/SensorsBlocks.js:577 -#: plugins/rodi.rtp:218 -msgid "green" -msgstr "" - -#: js/PenBlocks.js:63 +#: js/blocks/PenBlocks.js:80 msgid "yellow" msgstr "" -#: js/PenBlocks.js:76 +#: js/blocks/PenBlocks.js:96 #: plugins/nutrition.rtp:164 msgid "orange" msgstr "pomarańczowy" -#: js/PenBlocks.js:89 -#: js/SensorsBlocks.js:633 -#: plugins/rodi.rtp:217 -msgid "red" -msgstr "" - -#: js/PenBlocks.js:102 +#: js/blocks/PenBlocks.js:128 msgid "white" msgstr "" -#: js/PenBlocks.js:115 +#: js/blocks/PenBlocks.js:144 msgid "black" msgstr "" -#: js/PenBlocks.js:128 +#: js/blocks/PenBlocks.js:163 msgid "begin fill" msgstr "" -#: js/PenBlocks.js:143 +#: js/blocks/PenBlocks.js:190 msgid "end fill" msgstr "koniec wypełniania" -#: js/PenBlocks.js:159 -#: js/PenBlocks.js:386 +#: js/blocks/PenBlocks.js:212 +#: js/blocks/PenBlocks.js:560 #.TRANS: set the background color msgid "background" msgstr "" -#: js/PenBlocks.js:206 -#: js/DictActions.js:71 -#: js/DictActions.js:149 -#: js/DictActions.js:186 +#: js/blocks/PenBlocks.js:274 +#: js/turtleactions/DictActions.js:71 +#: js/turtleactions/DictActions.js:138 +#: js/turtleactions/DictActions.js:170 msgid "grey" msgstr "" -#: js/PenBlocks.js:210 +#: js/blocks/PenBlocks.js:282 msgid "The Grey block returns the current pen grey value." msgstr "" -#: js/PenBlocks.js:243 -#: js/DictActions.js:69 -#: js/DictActions.js:147 -#: js/DictActions.js:185 +#: js/blocks/PenBlocks.js:340 +#: js/turtleactions/DictActions.js:69 +#: js/turtleactions/DictActions.js:136 +#: js/turtleactions/DictActions.js:169 msgid "shade" msgstr "cień" -#: js/PenBlocks.js:247 +#: js/blocks/PenBlocks.js:347 msgid "The Shade block returns the current pen shade value." msgstr "" -#: js/PenBlocks.js:280 -#: js/DictActions.js:67 -#: js/DictActions.js:145 -#: js/DictActions.js:184 +#: js/blocks/PenBlocks.js:405 +#: js/turtleactions/DictActions.js:67 +#: js/turtleactions/DictActions.js:134 +#: js/turtleactions/DictActions.js:168 msgid "color" msgstr "kolor" -#: js/PenBlocks.js:285 +#: js/blocks/PenBlocks.js:415 msgid "The Color block returns the current pen color." msgstr "" -#: js/PenBlocks.js:318 -#: js/DictActions.js:73 -#: js/DictActions.js:151 -#: js/DictActions.js:187 +#: js/blocks/PenBlocks.js:470 +#: js/turtleactions/DictActions.js:73 +#: js/turtleactions/DictActions.js:140 +#: js/turtleactions/DictActions.js:171 msgid "pen size" msgstr "rozmiar pisaka" -#: js/PenBlocks.js:322 +#: js/blocks/PenBlocks.js:474 msgid "The Pen size block returns the current pen size value." msgstr "" -#: js/PenBlocks.js:355 +#: js/blocks/PenBlocks.js:513 msgid "set font" msgstr "" -#: js/PenBlocks.js:358 +#: js/blocks/PenBlocks.js:518 msgid "The Set font block sets the font used by the Show block." msgstr "" -#: js/PenBlocks.js:391 +#: js/blocks/PenBlocks.js:567 msgid "The Background block sets the window background color." msgstr "" -#: js/PenBlocks.js:408 +#: js/blocks/PenBlocks.js:598 msgid "The Hollow line block creates a line with a hollow center." msgstr "" -#: js/PenBlocks.js:415 +#: js/blocks/PenBlocks.js:606 #.TRANS: draw a line logo has a hollow space down its center msgid "hollow line" msgstr "" -#: js/PenBlocks.js:462 +#: js/blocks/PenBlocks.js:675 msgid "The Fill block fills in a shape with a color." msgstr "" -#: js/PenBlocks.js:470 +#: js/blocks/PenBlocks.js:684 #.TRANS: fill in as a solid color msgid "fill" msgstr "" -#: js/PenBlocks.js:527 +#: js/blocks/PenBlocks.js:761 #.TRANS: raise up the pen so logo it does not draw when it is moved msgid "pen up" msgstr "podnieś pisak" -#: js/PenBlocks.js:532 +#: js/blocks/PenBlocks.js:768 msgid "The Pen-up block raises the pen so that it does not draw." msgstr "" -#: js/PenBlocks.js:552 +#: js/blocks/PenBlocks.js:802 #.TRANS: put down the pen so logo it draws when it is moved msgid "pen down" msgstr "opuść pisak" -#: js/PenBlocks.js:557 +#: js/blocks/PenBlocks.js:810 msgid "The Pen-down block lowers the pen so that it draws." msgstr "" -#: js/PenBlocks.js:577 +#: js/blocks/PenBlocks.js:844 #.TRANS: set the width of the line drawn by the pen msgid "set pen size" msgstr "zmień rozmiar pisaka" -#: js/PenBlocks.js:583 +#: js/blocks/PenBlocks.js:854 msgid "The Set-pen-size block changes the size of the pen." msgstr "" -#: js/PenBlocks.js:623 +#: js/blocks/PenBlocks.js:913 #.TRANS: set degree of translucence of the pen color msgid "set translucency" msgstr "" -#: js/PenBlocks.js:627 +#: js/blocks/PenBlocks.js:921 msgid "The Set translucency block changes the opacity of the pen." msgstr "" -#: js/PenBlocks.js:668 +#: js/blocks/PenBlocks.js:981 msgid "set hue" msgstr "" -#: js/PenBlocks.js:672 +#: js/blocks/PenBlocks.js:989 msgid "The Set hue block changes the color of the pen." msgstr "" -#: js/PenBlocks.js:711 +#: js/blocks/PenBlocks.js:1047 msgid "set shade" msgstr "ustaw cień" -#: js/PenBlocks.js:717 +#: js/blocks/PenBlocks.js:1057 msgid "The Set-shade block changes the pen color from dark to light." msgstr "" -#: js/PenBlocks.js:757 +#: js/blocks/PenBlocks.js:1111 #.TRANS: set the level of vividness of the pen color msgid "set grey" msgstr "" -#: js/PenBlocks.js:761 +#: js/blocks/PenBlocks.js:1119 msgid "The Set grey block changes the vividness of the pen color." msgstr "" -#: js/PenBlocks.js:800 +#: js/blocks/PenBlocks.js:1172 msgid "set color" msgstr "ustaw kolor" -#: js/PenBlocks.js:806 +#: js/blocks/PenBlocks.js:1182 msgid "The Set-color block changes the pen color." msgstr "" -#: js/VolumeBlocks.js:35 -msgid "synth volume" -msgstr "" - -#: js/VolumeBlocks.js:39 -msgid "The Synth volume block returns the current volume of the current synthesizer." -msgstr "" - -#: js/VolumeBlocks.js:47 -#: js/musicutils.js:730 -#: js/synthutils.js:56 -#.TRANS: musical instrument -msgid "piano" -msgstr "" - -#: js/VolumeBlocks.js:105 -msgid "master volume" -msgstr "" - -#: js/VolumeBlocks.js:109 -msgid "The Master volume block returns the master volume." -msgstr "" - -#: js/VolumeBlocks.js:355 -#: js/VolumeBlocks.js:524 -msgid "set synth volume" -msgstr "" - -#: js/VolumeBlocks.js:362 -#: js/VolumeBlocks.js:545 -msgid "synth" -msgstr "" - -#: js/VolumeBlocks.js:403 -#: js/VolumeBlocks.js:577 -#: js/VolumeBlocks.js:740 -#: js/VolumeActions.js:173 -msgid "Setting volume to 0." -msgstr "" - -#: js/VolumeBlocks.js:440 -msgid "Synth not found" -msgstr "" - -#: js/VolumeBlocks.js:494 -msgid "set drum volume" -msgstr "" - -#: js/VolumeBlocks.js:530 -msgid "The Set synth volume block will change the volume of a particular synth," -msgstr "" - -#: js/VolumeBlocks.js:532 -msgid "eg guitar violin snare drum etc." -msgstr "" - -#: js/VolumeBlocks.js:534 -msgid "The default volume is 50." -msgstr "" - -#: js/VolumeBlocks.js:536 -msgid "The range is 0 for silence to 100 for full volume." -msgstr "" - -#: js/VolumeBlocks.js:597 -msgid "set panning" -msgstr "" - -#: js/VolumeBlocks.js:603 -msgid "The Set Panning block sets the panning for all synthesizers." -msgstr "" - -#: js/VolumeBlocks.js:625 -msgid "Warning: Sound is coming out from only the left or right side." -msgstr "" - -#: js/VolumeBlocks.js:647 -#: js/VolumeBlocks.js:695 -msgid "set master volume" -msgstr "" - -#: js/VolumeBlocks.js:653 -msgid "The Set master volume block sets the volume for all synthesizers." -msgstr "" - -#: js/VolumeBlocks.js:784 -msgid "The Set relative volume block changes the volume of the contained notes." -msgstr "" - -#: js/VolumeBlocks.js:791 -msgid "set relative volume" -msgstr "" - -#: js/VolumeBlocks.js:857 -msgid "decrescendo" -msgstr "" - -#: js/VolumeBlocks.js:921 -msgid "crescendo" -msgstr "" - -#: js/ToneBlocks.js:34 -msgid "oscillator" -msgstr "" - -#: js/ToneBlocks.js:44 -#: js/timbre.js:1562 -#.TRANS: Partials refers to the number of sine waves combined into the sound. -msgid "partials" -msgstr "" - -#: js/ToneBlocks.js:76 -msgid "You are adding multiple oscillator blocks." -msgstr "" - -#: js/ToneBlocks.js:144 -#: js/timbre.js:1225 -#.TRANS: a duo synthesizer combines a synth with a sequencer -msgid "duo synth" -msgstr "" - -#: js/ToneBlocks.js:149 -msgid "The Duo synth block is a duo-frequency modulator used to define a timbre." -msgstr "" - -#: js/ToneBlocks.js:157 -#: js/timbre.js:1476 -msgid "vibrato rate" -msgstr "" - -#: js/ToneBlocks.js:157 -msgid "vibrato intensity" -msgstr "" - -#: js/ToneBlocks.js:185 -#: js/timbre.js:1221 -#.TRANS: AM (amplitude modulation) synthesizer -msgid "AM synth" -msgstr "" - -#: js/ToneBlocks.js:189 -msgid "The AM synth block is an amplitude modulator used to define a timbre." -msgstr "" - -#: js/ToneBlocks.js:224 -#: js/timbre.js:1223 -#.TRANS: FM (frequency modulation) synthesizer -msgid "FM synth" +#: js/blocks/PitchBlocks.js:141 +#.TRANS: musical transposition (adjustment of pitch up or down) +msgid "transposition" msgstr "" -#: js/ToneBlocks.js:228 -msgid "The FM synth block is a frequency modulator used to define a timbre." +#: js/blocks/PitchBlocks.js:168 +#.TRANS: step down one note in current musical scale +msgid "scalar step down" msgstr "" -#: js/ToneBlocks.js:262 -msgid "partial" +#: js/blocks/PitchBlocks.js:172 +msgid "The Scalar step down block returns the number of semi-tones down to the previous note in the current key and mode." msgstr "" -#: js/ToneBlocks.js:265 -msgid "The Partial block is used to specify a weight for a specific partial harmonic." +#: js/blocks/PitchBlocks.js:190 +#.TRANS: step up one note in current musical scale +msgid "scalar step up" msgstr "" -#: js/ToneBlocks.js:284 -#.TRANS: partials are weighted components in a harmonic series -msgid "Partial weight must be between 0 and 1." +#: js/blocks/PitchBlocks.js:194 +msgid "The Scalar step up block returns the number of semi-tones up to the next note in the current key and mode." msgstr "" -#: js/ToneBlocks.js:297 -#.TRANS: partials are weighted components in a harmonic series -msgid "Partial block should be used inside of a Weighted-partials block." +#: js/blocks/PitchBlocks.js:212 +#.TRANS: the change measured in half-steps between the current pitch and the previous pitch +msgid "change in pitch" msgstr "" -#: js/ToneBlocks.js:325 -#.TRANS: partials are weighted components in a harmonic series -msgid "weighted partials" +#: js/blocks/PitchBlocks.js:216 +msgid "The Change in pitch block is the difference (in half steps) between the current pitch being played and the previous pitch played." msgstr "" -#: js/ToneBlocks.js:383 -msgid "The Harmonic block will add harmonics to the contained notes." +#: js/blocks/PitchBlocks.js:243 +#.TRANS: the change measured in scale-steps between the current pitch and the previous pitch +msgid "scalar change in pitch" msgstr "" -#: js/ToneBlocks.js:390 -#.TRANS: A harmonic is an overtone. -msgid "harmonic" +#: js/blocks/PitchBlocks.js:250 +#: js/blocks/PitchBlocks.js:432 +#: js/blocks/PitchBlocks.js:1667 +#: js/turtleactions/DictActions.js:89 +#: js/widgets/temperament.js:610 +#: js/widgets/temperament.js:614 +#: js/widgets/temperament.js:855 +#.TRANS: convert current note to piano key (1-88) +#.TRANS: a mapping of pitch to the 88 piano keys +msgid "pitch number" msgstr "" -#: js/ToneBlocks.js:431 -msgid "The Distortion block adds distortion to the pitch." +#: js/blocks/PitchBlocks.js:256 +msgid "The Pitch number block is the value of the pitch of the note currently being played." msgstr "" -#: js/ToneBlocks.js:438 -#: js/timbre.js:2100 -#.TRANS: distortion is an alteration in the sound -msgid "distortion" +#: js/blocks/PitchBlocks.js:329 +#: js/blocks/PitchBlocks.js:433 +#.TRANS: the current pitch expressed in Hertz +msgid "pitch in hertz" msgstr "" -#: js/ToneBlocks.js:487 -msgid "The Tremolo block adds a wavering effect." +#: js/blocks/PitchBlocks.js:334 +msgid "The Pitch in Hertz block is the value in Hertz of the pitch of the note currently being played." msgstr "" -#: js/ToneBlocks.js:495 -#: js/timbre.js:2092 -#.TRANS: a wavering effect in a musical tone -msgid "tremolo" +#: js/blocks/PitchBlocks.js:367 +#: js/turtleactions/DictActions.js:87 +msgid "current pitch" msgstr "" -#: js/ToneBlocks.js:500 -#: js/ToneBlocks.js:569 -#: js/ToneBlocks.js:630 -#: js/ToneBlocks.js:689 -#: js/timbre.js:2134 -#: js/timbre.js:2222 -#: js/timbre.js:2317 -#: js/timbre.js:2419 -#.TRANS: rate at which tremolo wavers -msgid "rate" +#: js/blocks/PitchBlocks.js:373 +msgid "The Current Pitch block is used with the Pitch Converter block. In the example above, current pitch, sol 4, is displayed as 392 hertz." msgstr "" -#: js/ToneBlocks.js:502 -#: js/ToneBlocks.js:630 -#: js/timbre.js:2137 -#: js/timbre.js:2328 -#.TRANS: amplitude of tremolo waver -msgid "depth" +#: js/blocks/PitchBlocks.js:410 +msgid "This block converts the pitch value of the last note played into different formats such as hertz, letter name, pitch number, et al." msgstr "" -#: js/ToneBlocks.js:559 -msgid "The Phaser block adds a sweeping sound." +#: js/blocks/PitchBlocks.js:434 +msgid "alphabet" msgstr "" -#: js/ToneBlocks.js:566 -#: js/timbre.js:2098 -#.TRANS: alter the phase of the sound -msgid "phaser" +#: js/blocks/PitchBlocks.js:436 +#.TRANS: Translate as "alphabet class" +msgid "letter class" msgstr "" -#: js/ToneBlocks.js:569 -#: js/timbre.js:2422 -msgid "octaves" +#: js/blocks/PitchBlocks.js:437 +msgid "solfege class" msgstr "" -#: js/ToneBlocks.js:569 -#: js/timbre.js:2425 -msgid "base frequency" +#: js/blocks/PitchBlocks.js:438 +msgid "staff y" msgstr "" -#: js/ToneBlocks.js:619 -msgid "The Chorus block adds a chorus effect." +#: js/blocks/PitchBlocks.js:439 +msgid "solfege syllable" msgstr "" -#: js/ToneBlocks.js:627 -#: js/timbre.js:2096 -#.TRANS: musical effect to simulate a choral sound -msgid "chorus" +#: js/blocks/PitchBlocks.js:440 +msgid "pitch class" msgstr "" -#: js/ToneBlocks.js:630 -msgid "delay" +#: js/blocks/PitchBlocks.js:441 +msgid "scalar class" msgstr "" -#: js/ToneBlocks.js:678 -msgid "The Vibrato block adds a rapid, slight variation in pitch." +#: js/blocks/PitchBlocks.js:443 +msgid "nth degree" msgstr "" -#: js/ToneBlocks.js:686 -#: js/timbre.js:2094 -#.TRANS: a rapid, slight variation in pitch -msgid "vibrato" +#: js/blocks/PitchBlocks.js:444 +msgid "pitch to shade" msgstr "" -#: js/ToneBlocks.js:689 -#: js/timbre.js:2221 -msgid "intensity" +#: js/blocks/PitchBlocks.js:445 +msgid "pitch to color" msgstr "" -#: js/ToneBlocks.js:733 -#.TRANS: select synthesizer -msgid "set synth" +#: js/blocks/PitchBlocks.js:629 +#: js/widgets/musickeyboard.js:735 +#.TRANS: MIDI is a technical standard for electronic music +msgid "MIDI" msgstr "" -#: js/ToneBlocks.js:804 -msgid "synth name" +#: js/blocks/PitchBlocks.js:642 +#.TRANS: set an offset associated with the numeric piano keyboard mapping +msgid "set pitch number offset" msgstr "" -#: js/ToneBlocks.js:842 -msgid "set default instrument" +#: js/blocks/PitchBlocks.js:645 +msgid "The Set pitch number offset block is used to set the offset for mapping pitch numbers to pitch and octave." msgstr "" -#: js/ToneBlocks.js:895 -#: js/ToneBlocks.js:943 -#.TRANS: set the characteristics of a custom instrument -msgid "set instrument" +#: js/blocks/PitchBlocks.js:679 +#.TRANS: convert piano key number (1-88) to pitch +msgid "number to pitch" msgstr "" -#: js/ToneBlocks.js:898 -#: js/ToneBlocks.js:926 -#: js/ToneBlocks.js:932 -msgid "The Set instrument block selects a voice for the synthesizer," +#: js/blocks/PitchBlocks.js:682 +msgid "The Number to pitch block will convert a pitch number to a pich name." msgstr "" -#: js/ToneBlocks.js:900 -#: js/ToneBlocks.js:934 -msgid "eg guitar piano violin or cello." +#: js/blocks/PitchBlocks.js:715 +#.TRANS: convert piano key number (1-88) to octave +msgid "number to octave" msgstr "" -#: js/ToneBlocks.js:1015 -msgid "Import a sound file to use as an instrument and set its pitch center." +#: js/blocks/PitchBlocks.js:717 +msgid "The Number to octave block will convert a pitch number to an octave." msgstr "" -#: js/ToneBlocks.js:1110 -msgid "Upload a sound file to connect with the sample block." +#: js/blocks/PitchBlocks.js:726 +msgid "y to pitch" msgstr "" -#: js/MeterBlocks.js:34 -#.TRANS: musical meter (time signature), e.g., 4:4 -msgid "current meter" +#: js/blocks/PitchBlocks.js:729 +msgid "Y to pitch block will convert a staff y position to corresponding pitch notation." msgstr "" -#: js/MeterBlocks.js:85 -#.TRANS: number of beats per minute -msgid "beat factor" +#: js/blocks/PitchBlocks.js:841 +msgid "accidental selector" msgstr "" -#: js/MeterBlocks.js:161 -msgid "The Beats per minute block returns the current beats per minute." +#: js/blocks/PitchBlocks.js:844 +msgid "The Accidental selector block is used to choose between double-sharp, sharp, natural, flat, and double-flat." msgstr "" -#: js/MeterBlocks.js:169 -#: js/status.js:152 -#.TRANS: number of beats played per minute -msgid "beats per minute2" +#: js/blocks/PitchBlocks.js:858 +msgid "Pitch can be specified in terms of ni dha pa ma ga re sa." msgstr "" -#: js/MeterBlocks.js:169 -#: js/MeterBlocks.js:1056 -#: js/MeterBlocks.js:1133 -#: js/MeterBlocks.js:1211 -#.TRANS: sets tempo by defining a beat and beats per minute -msgid "beats per minute" +#: js/blocks/PitchBlocks.js:872 +msgid "Pitch can be specified in terms of C D E F G A B." msgstr "" -#: js/MeterBlocks.js:233 -#.TRANS: count of current musical measure in meter -msgid "measure count" +#: js/blocks/PitchBlocks.js:884 +msgid "solfege" msgstr "" -#: js/MeterBlocks.js:241 -msgid "The Measure count block returns the current measure." +#: js/blocks/PitchBlocks.js:887 +msgid "Pitch can be specified in terms of do re mi fa sol la ti." msgstr "" -#: js/MeterBlocks.js:290 -#.TRANS: count of current beat in the meter -msgid "beat count" +#: js/blocks/PitchBlocks.js:922 +msgid "The Invert block rotates any contained notes around a target note." msgstr "" -#: js/MeterBlocks.js:300 -#: js/MeterBlocks.js:311 -#: js/MeterBlocks.js:565 -#: js/MeterBlocks.js:576 -msgid "The Beat count block is the number of the current beat," +#: js/blocks/PitchBlocks.js:929 +#.TRANS: pitch inversion rotates a pitch around another pitch +msgid "invert" msgstr "" -#: js/MeterBlocks.js:313 -#: js/MeterBlocks.js:578 -msgid "eg 1, 2, 3, or 4." +#: js/blocks/PitchBlocks.js:968 +#.TRANS: pitch inversion rotates a pitch around another pitch (odd number) +msgid "invert (odd)" msgstr "" -#: js/MeterBlocks.js:368 -#.TRANS: count the number of notes -msgid "sum note values" +#: js/blocks/PitchBlocks.js:1001 +#.TRANS: pitch inversion rotates a pitch around another pitch (even number) +msgid "invert (even)" msgstr "" -#: js/MeterBlocks.js:376 -#: js/MeterBlocks.js:440 -msgid "The Note counter block can be used to count the number of contained notes." +#: js/blocks/PitchBlocks.js:1022 +#.TRANS: register is the octave of the current pitch +msgid "register" msgstr "" -#: js/MeterBlocks.js:432 -#.TRANS: count the number of notes -msgid "note counter" +#: js/blocks/PitchBlocks.js:1026 +msgid "The Register block provides an easy way to modify the register (octave) of the notes that follow it." msgstr "" -#: js/MeterBlocks.js:496 -#.TRANS: number of whole notes that have been played -msgid "whole notes played" +#: js/blocks/PitchBlocks.js:1047 +#.TRANS: cents are units used to specify the ratio between pitches. There are 100 cents between successive notes. +msgid "50 cents" msgstr "" -#: js/MeterBlocks.js:505 -msgid "The Whole notes played block returns the total number of whole notes played." +#: js/blocks/PitchBlocks.js:1102 +msgid "The Semi-tone transposition block will shift the pitches contained inside Note blocks up (or down) by half steps." msgstr "" -#: js/MeterBlocks.js:555 -#: js/DictActions.js:83 -#.TRANS: number of notes that have been played -msgid "notes played" +#: js/blocks/PitchBlocks.js:1104 +msgid "In the example shown above, sol is shifted up to sol#." msgstr "" -#: js/MeterBlocks.js:653 -msgid "The No clock block decouples the notes from the master clock." +#: js/blocks/PitchBlocks.js:1110 +#.TRANS: adjust the amount of shift (up or down) of a pitch +msgid "semi-tone transpose" msgstr "" -#: js/MeterBlocks.js:661 -#.TRANS: don't lock notes to master clock -msgid "no clock" +#: js/blocks/PitchBlocks.js:1143 +msgid "The Transpose by Ratio block will shift the pitches contained inside Note blocks up (or down) by a ratio" msgstr "" -#: js/MeterBlocks.js:700 -msgid "on weak beat do" +#: js/blocks/PitchBlocks.js:1149 +#.TRANS: adjust the amount of shift (up or down) of a pitch +msgid "transpose by ratio" msgstr "" -#: js/MeterBlocks.js:705 -msgid "The On-weak-beat block lets you specify actions to take on weak (off) beats." +#: js/blocks/PitchBlocks.js:1232 +#.TRANS: down sixth means the note is five scale degrees below current note +msgid "down sixth" msgstr "" -#: js/MeterBlocks.js:750 -msgid "on strong beat" +#: js/blocks/PitchBlocks.js:1251 +#.TRANS: down third means the note is two scale degrees below current note +msgid "down third" msgstr "" -#: js/MeterBlocks.js:758 -msgid "The On-strong-beat block lets you specify actions to take on specified beats." +#: js/blocks/PitchBlocks.js:1270 +#.TRANS: seventh means the note is the six scale degrees above current note +msgid "seventh" msgstr "" -#: js/MeterBlocks.js:769 -msgid "beat" +#: js/blocks/PitchBlocks.js:1289 +#.TRANS: sixth means the note is the five scale degrees above current note +msgid "sixth" msgstr "" -#: js/MeterBlocks.js:813 -msgid "on every beat do" +#: js/blocks/PitchBlocks.js:1308 +#.TRANS: fifth means the note is the four scale degrees above current note +msgid "fifth" msgstr "" -#: js/MeterBlocks.js:821 -msgid "The On-every-beat block lets you specify actions to take on every beat." +#: js/blocks/PitchBlocks.js:1328 +#.TRANS: fourth means the note is three scale degrees above current note +msgid "fourth" msgstr "" -#: js/MeterBlocks.js:874 -msgid "on every note do" +#: js/blocks/PitchBlocks.js:1347 +#.TRANS: third means the note is two scale degrees above current note +msgid "third" msgstr "" -#: js/MeterBlocks.js:882 -msgid "The On-every-note block lets you specify actions to take on every note." +#: js/blocks/PitchBlocks.js:1366 +#.TRANS: second means the note is one scale degree above current note +msgid "second" msgstr "" -#: js/MeterBlocks.js:928 -#: js/MeterBlocks.js:999 -#.TRANS: sets tempo by defining a beat and beats per minute -msgid "master beats per minute" +#: js/blocks/PitchBlocks.js:1407 +msgid "The Scalar transposition block will shift the pitches contained inside Note blocks up (or down) the scale." msgstr "" -#: js/MeterBlocks.js:952 -#: js/MeterBlocks.js:1078 -#: js/MeterBlocks.js:1135 -msgid "bpm" +#: js/blocks/PitchBlocks.js:1409 +msgid "In the example shown above, sol is shifted up to la." msgstr "" -#: js/MeterBlocks.js:952 -#: js/MeterBlocks.js:1078 -#: js/MeterBlocks.js:1135 -msgid "beat value" +#: js/blocks/PitchBlocks.js:1416 +#.TRANS: adjust the amount of shift (up or down) of a pitch by musical scale (scalar) steps +msgid "scalar transpose" msgstr "" -#: js/MeterBlocks.js:1024 -#: js/MeterBlocks.js:1167 -#: js/MeterBlocks.js:1241 -msgid "Beats per minute must be > 30." +#: js/blocks/PitchBlocks.js:1451 +msgid "The Accidental block is used to create sharps and flats" msgstr "" -#: js/MeterBlocks.js:1027 -#: js/MeterBlocks.js:1170 -#: js/MeterBlocks.js:1244 -msgid "Maximum beats per minute is 1000." +#: js/blocks/PitchBlocks.js:1458 +#.TRANS: An accidental is a modification to a pitch, e.g., sharp or flat. +msgid "accidental override" msgstr "" -#: js/MeterBlocks.js:1068 -msgid "The Beats per minute block sets the number of 1/4 notes per minute." +#: js/blocks/PitchBlocks.js:1581 +msgid "The Hertz block (in combination with a Number block) will play a sound at the specified frequency." msgstr "" -#: js/MeterBlocks.js:1279 -#.TRANS: anacrusis -msgid "pickup" +#: js/blocks/PitchBlocks.js:1671 +msgid "The Pitch Number block will play a pitch associated by its number, e.g. 0 for C and 7 for G." msgstr "" -#: js/MeterBlocks.js:1367 -msgid "number of beats" +#: js/blocks/PitchBlocks.js:1703 +#: js/blocks/PitchBlocks.js:1745 +#.TRANS: a numeric mapping of the notes in an octave based on the musical mode +#.TRANS: a numeric mapping of the notes in an octave based on the musical mode +msgid "nth modal pitch" msgstr "" -#: js/DictBlocks.js:77 -msgid "show dictionary" +#: js/blocks/PitchBlocks.js:1706 +msgid "n^th Modal Pitch takes the pattern of pitches in semitones for a mode and makes each point a degree of the mode," msgstr "" -#: js/DictBlocks.js:129 -msgid "The Dictionary block returns a dictionary." +#: js/blocks/PitchBlocks.js:1708 +msgid "starting from 1 and regardless of tonal framework (i.e. not always 8 notes in the octave)" msgstr "" -#: js/DictBlocks.js:197 -#: js/DictBlocks.js:339 -msgid "The Get-dict block returns a value in the dictionary for a specified key." +#: js/blocks/PitchBlocks.js:1749 +msgid "N^th Modal Pitch takes a number as an input as the n^th degree for the given mode. 0 is the first position, 1 is the second, -1 is the note before the first etc." msgstr "" -#: js/DictBlocks.js:212 -#: js/DictBlocks.js:354 -#.TRANS: retrieve a value from the dictionary with a given key -msgid "get value" +#: js/blocks/PitchBlocks.js:1751 +msgid "The pitches change according to the mode specified without any need for respellings." msgstr "" -#: js/DictBlocks.js:215 -#: js/DictBlocks.js:216 -#: js/DictBlocks.js:289 -#: js/DictBlocks.js:290 -#: js/DictBlocks.js:357 -#: js/DictBlocks.js:430 -#: js/DictBlocks.js:431 -msgid "key2" +#: js/blocks/PitchBlocks.js:1790 +msgid "Scale Degree is a common convention in music. Scale Degree offers seven possible positions in the scale (1-7) and can be modified via accidentals." msgstr "" -#: js/DictBlocks.js:271 -#: js/DictBlocks.js:411 -msgid "The Set-dict block sets a value in the dictionary for a specified key." +#: js/blocks/PitchBlocks.js:1792 +msgid "Scale Degree 1 is always the first pitch in a given scale, regardless of octave." msgstr "" -#: js/DictBlocks.js:286 -#: js/DictBlocks.js:427 -#.TRANS: set a value in the dictionary for a given key -msgid "set value" +#: js/blocks/PitchBlocks.js:1814 +#.TRANS: step some number of notes in current musical scale +msgid "scalar step" msgstr "" -#: js/ExtrasBlocks.js:33 -msgid "fraction" +#: js/blocks/PitchBlocks.js:1819 +msgid "The Scalar Step block (in combination with a Number block) will play the next pitch in a scale," msgstr "" -#: js/ExtrasBlocks.js:36 -msgid "Convert a float to a fraction" +#: js/blocks/PitchBlocks.js:1821 +msgid "eg if the last note played was sol, Scalar Step 1 will play la." msgstr "" -#: js/ExtrasBlocks.js:93 -msgid "save as ABC" +#: js/blocks/PitchBlocks.js:1857 +msgid "The Pitch block specifies the pitch name and octave of a note that together determine the frequency of the note." msgstr "" -#: js/ExtrasBlocks.js:96 -#: js/ExtrasBlocks.js:132 -#: js/ExtrasBlocks.js:168 -msgid "title" +#: js/blocks/ProgramBlocks.js:33 +msgid "The Load-heap-from-app block loads the heap from a web page." msgstr "" -#: js/ExtrasBlocks.js:129 -msgid "save as Lilypond" +#: js/blocks/ProgramBlocks.js:44 +#.TRANS: load the heap contents from a URL +msgid "load heap from App" msgstr "" -#: js/ExtrasBlocks.js:165 -msgid "save as SVG" +#: js/blocks/ProgramBlocks.js:95 +msgid "Error parsing JSON data:" msgstr "" -#: js/ExtrasBlocks.js:216 -msgid "no background" +#: js/blocks/ProgramBlocks.js:100 +msgid "404: Page not found" msgstr "" -#: js/ExtrasBlocks.js:219 -msgid "The No background block eliminates the background from the saved SVG output." +#: js/blocks/ProgramBlocks.js:133 +msgid "The Save-heap-to-app block saves the heap to a web page." msgstr "" -#: js/ExtrasBlocks.js:247 -msgid "show blocks" -msgstr "pokaż schemat" - -#: js/ExtrasBlocks.js:249 -msgid "The Show blocks block shows the blocks." +#: js/blocks/ProgramBlocks.js:144 +#.TRANS: save the heap contents to a URL +msgid "save heap to App" msgstr "" -#: js/ExtrasBlocks.js:274 -msgid "hide blocks" -msgstr "schowaj schemat" - -#: js/ExtrasBlocks.js:276 -msgid "The Hide blocks block hides the blocks." +#: js/blocks/ProgramBlocks.js:189 +msgid "Cannot find a valid heap for" msgstr "" -#: js/ExtrasBlocks.js:305 -#: js/ExtrasBlocks.js:335 -msgid "The Space block is used to add space between blocks." +#: js/blocks/ProgramBlocks.js:206 +msgid "The Load-heap block loads the heap from a file." msgstr "" -#: js/ExtrasBlocks.js:373 -msgid "wait" -msgstr "czekaj" +#: js/blocks/ProgramBlocks.js:217 +#.TRANS: load the heap from a file +msgid "load heap" +msgstr "" -#: js/ExtrasBlocks.js:376 -msgid "The Wait block pauses the program for a specified number of seconds." +#: js/blocks/ProgramBlocks.js:270 +msgid "The file you selected does not contain a valid heap." msgstr "" -#: js/ExtrasBlocks.js:430 -#: plugins/facebook.rtp:30 -msgid "comment" -msgstr "komentarz" +#: js/blocks/ProgramBlocks.js:275 +msgid "The loadHeap block needs a loadFile block." +msgstr "" -#: js/ExtrasBlocks.js:466 -msgid "print" -msgstr "pisz" +#: js/blocks/ProgramBlocks.js:291 +msgid "The Set-heap block loads the heap." +msgstr "" -#: js/ExtrasBlocks.js:473 -msgid "The Print block displays text at the top of the screen." +#: js/blocks/ProgramBlocks.js:340 +msgid "The block you selected does not contain a valid heap." msgstr "" -#: js/ExtrasBlocks.js:579 -msgid "display grid" +#: js/blocks/ProgramBlocks.js:343 +msgid "The Set heap block needs a heap." msgstr "" -#: js/ExtrasBlocks.js:584 -msgid "The Display Grid Block changes the grid type" +#: js/blocks/ProgramBlocks.js:360 +msgid "The Load-dictionary block loads a dictionary from a file." msgstr "" -#: js/ExtrasBlocks.js:686 -#: js/ExtrasBlocks.js:705 -#: js/ExtrasBlocks.js:728 -#: js/ExtrasBlocks.js:751 -#: js/ExtrasBlocks.js:769 -#: js/ExtrasBlocks.js:788 -#: js/ExtrasBlocks.js:807 -#: js/ExtrasBlocks.js:826 -msgid "unknown" +#: js/blocks/ProgramBlocks.js:372 +#.TRANS: load a dictionary from a file +msgid "load dictionary" msgstr "" -#: js/SensorsBlocks.js:36 -msgid "The Input block prompts for keyboard input." +#: js/blocks/ProgramBlocks.js:390 +#: js/blocks/ProgramBlocks.js:658 +#: js/blocks/ToneBlocks.js:1025 +msgid "file" msgstr "" -#: js/SensorsBlocks.js:46 -msgid "input" +#: js/blocks/ProgramBlocks.js:444 +msgid "The file you selected does not contain a valid dictionary." msgstr "" -#: js/SensorsBlocks.js:64 -msgid "Input a value" +#: js/blocks/ProgramBlocks.js:449 +msgid "The load dictionary block needs a load file block." msgstr "" -#: js/SensorsBlocks.js:126 -msgid "input value" +#: js/blocks/ProgramBlocks.js:466 +msgid "The Set-dictionary block loads a dictionary." msgstr "" -#: js/SensorsBlocks.js:131 -msgid "The Input-value block stores the input." +#: js/blocks/ProgramBlocks.js:477 +#.TRANS: load a dictionary from a JSON +msgid "set dictionary" msgstr "" -#: js/SensorsBlocks.js:238 -msgid "loudness" -msgstr "głośność" +#: js/blocks/ProgramBlocks.js:546 +msgid "The block you selected does not contain a valid dictionary." +msgstr "" -#: js/SensorsBlocks.js:245 -msgid "The Loudness block returns the volume detected by the microphone." +#: js/blocks/ProgramBlocks.js:550 +msgid "The set dictionary block needs a dictionary." msgstr "" -#: js/SensorsBlocks.js:300 -msgid "click" +#: js/blocks/ProgramBlocks.js:567 +msgid "The Save-heap block saves the heap to a file." msgstr "" -#: js/SensorsBlocks.js:306 -msgid "The Click block triggers an event if a mouse has been clicked." +#: js/blocks/ProgramBlocks.js:578 +#.TRANS: save the heap to a file +msgid "save heap" msgstr "" -#: js/SensorsBlocks.js:313 -msgid "The Click block triggers an event if a turtle has been clicked." +#: js/blocks/ProgramBlocks.js:629 +msgid "The Save-dictionary block saves a dictionary to a file." msgstr "" -#: js/SensorsBlocks.js:342 -msgid "cursor over" +#: js/blocks/ProgramBlocks.js:640 +#.TRANS: save a dictionary to a file +msgid "save dictionary" msgstr "" -#: js/SensorsBlocks.js:387 -msgid "cursor out" +#: js/blocks/ProgramBlocks.js:720 +msgid "The Open palette block opens a palette." msgstr "" -#: js/SensorsBlocks.js:433 -msgid "cursor button down" +#: js/blocks/ProgramBlocks.js:727 +msgid "open palette" msgstr "" -#: js/SensorsBlocks.js:477 -msgid "cursor button up" +#: js/blocks/ProgramBlocks.js:785 +msgid "The Delete block block removes a block." msgstr "" -#: js/SensorsBlocks.js:638 -msgid "The Get red block returns the red component of the pixel under the mouse." +#: js/blocks/ProgramBlocks.js:797 +#.TRANS: Move this block to the trash. +msgid "delete block" msgstr "" -#: js/SensorsBlocks.js:644 -msgid "The Get red block returns the red component of the pixel under the turtle." +#: js/blocks/ProgramBlocks.js:861 +msgid "The Move block block moves a block." msgstr "" -#: js/SensorsBlocks.js:685 -#: plugins/rodi.rtp:216 -msgid "pixel color" +#: js/blocks/ProgramBlocks.js:869 +#.TRANS: Move the position of a block on the screen. +msgid "move block" msgstr "" -#: js/SensorsBlocks.js:690 -msgid "The Get pixel block returns the color of the pixel under the mouse." +#: js/blocks/ProgramBlocks.js:881 +#: js/blocks/ProgramBlocks.js:1048 +msgid "block number" msgstr "" -#: js/SensorsBlocks.js:696 -msgid "The Get pixel block returns the color of the pixel under the turtle." +#: js/blocks/ProgramBlocks.js:935 +#.TRANS: Run program beginning at this block. +msgid "run block" msgstr "" -#: js/SensorsBlocks.js:758 -msgid "time" -msgstr "czas" +#: js/blocks/ProgramBlocks.js:1025 +msgid "The Dock block block connections two blocks." +msgstr "" -#: js/SensorsBlocks.js:804 -msgid "cursor y" +#: js/blocks/ProgramBlocks.js:1036 +#.TRANS: We can connect a block to another block. +msgid "connect blocks" msgstr "" -#: js/SensorsBlocks.js:809 -msgid "The Cursor Y block returns the vertical position of the mouse." +#: js/blocks/ProgramBlocks.js:1048 +msgid "target block" msgstr "" -#: js/SensorsBlocks.js:845 -msgid "cursor x" +#: js/blocks/ProgramBlocks.js:1048 +msgid "connection number" msgstr "" -#: js/SensorsBlocks.js:850 -msgid "The Cursor X block returns the horizontal position of the mouse." +#: js/blocks/ProgramBlocks.js:1140 +msgid "The Make block block creates a new block." msgstr "" -#: js/SensorsBlocks.js:886 -msgid "mouse button" +#: js/blocks/ProgramBlocks.js:1152 +#.TRANS: Create a new block +msgid "make block" msgstr "" -#: js/SensorsBlocks.js:888 -msgid "The Mouse-button block returns True if the mouse button is pressed." +#: js/blocks/ProgramBlocks.js:1285 +msgid "Cannot find block" msgstr "" -#: js/SensorsBlocks.js:934 -msgid "to ASCII" +#: js/blocks/ProgramBlocks.js:1304 +#: js/blocks/ProgramBlocks.js:1313 +msgid "Warning: block argument type mismatch" msgstr "" -#: js/SensorsBlocks.js:938 -msgid "The To ASCII block converts numbers to letters." +#: js/blocks/ProgramBlocks.js:1347 +msgid "The Open project block is used to open a project from a web page." msgstr "" -#: js/SensorsBlocks.js:1005 -msgid "The Keyboard block returns computer keyboard input." +#: js/blocks/ProgramBlocks.js:1357 +msgid "open project" msgstr "" -#: js/IntervalsActions.js:216 -msgid "Adding missing pitch number 0." +#: js/blocks/ProgramBlocks.js:1410 +msgid "Please enter a valid URL." msgstr "" -#: js/IntervalsActions.js:224 -msgid "Ignoring pitch numbers less than zero or greater than eleven." +#: js/blocks/ToneBlocks.js:34 +msgid "oscillator" msgstr "" -#: js/IntervalsActions.js:230 -msgid "Ignoring duplicate pitch numbers." +#: js/blocks/ToneBlocks.js:42 +#: js/blocks/WidgetBlocks.js:179 +#: js/widgets/timbre.js:1558 +#: js/widgets/timbre.js:1808 +#.TRANS: there are different types (sine, triangle, square...) of oscillators. +#.TRANS: type of filter, e.g., lowpass, highpass, etc. +msgid "type" msgstr "" -#: js/PitchActions.js:88 -msgid "The Scalar Step Block must be used inside of a Note Block." +#: js/blocks/ToneBlocks.js:44 +#: js/widgets/timbre.js:1562 +#.TRANS: Partials refers to the number of sine waves combined into the sound. +msgid "partials" msgstr "" -#: js/PitchActions.js:107 -msgid "The Scalar Step Block must be preceded by a Pitch Block." +#: js/blocks/ToneBlocks.js:76 +msgid "You are adding multiple oscillator blocks." msgstr "" -#: js/DrumActions.js:231 -msgid "Noise Block: Did you mean to use a Note block?" +#: js/blocks/ToneBlocks.js:144 +#: js/widgets/timbre.js:1225 +#.TRANS: a duo synthesizer combines a synth with a sequencer +msgid "duo synth" msgstr "" -#: js/MeterActions.js:101 -#: js/MeterActions.js:139 -msgid "beats per minute must be greater than" +#: js/blocks/ToneBlocks.js:149 +msgid "The Duo synth block is a duo-frequency modulator used to define a timbre." msgstr "" -#: js/MeterActions.js:111 -#: js/MeterActions.js:149 -msgid "maximum" +#: js/blocks/ToneBlocks.js:157 +#: js/widgets/timbre.js:1476 +msgid "vibrato rate" msgstr "" -#: js/MeterActions.js:117 -#: js/MeterActions.js:155 -msgid "beats per minute is" +#: js/blocks/ToneBlocks.js:157 +msgid "vibrato intensity" msgstr "" -#: js/ToneActions.js:134 -msgid "Vibrato intensity must be between 1 and 100." +#: js/blocks/ToneBlocks.js:185 +#: js/widgets/timbre.js:1221 +#.TRANS: AM (amplitude modulation) synthesizer +msgid "AM synth" msgstr "" -#: js/ToneActions.js:139 -msgid "Vibrato rate must be greater than 0." +#: js/blocks/ToneBlocks.js:189 +msgid "The AM synth block is an amplitude modulator used to define a timbre." msgstr "" -#: js/ToneActions.js:192 -#: js/ToneActions.js:265 -#.TRANS: Depth is the intesity of the tremolo or chorus effect. -msgid "Depth is out of range." +#: js/blocks/ToneBlocks.js:224 +#: js/widgets/timbre.js:1223 +#.TRANS: FM (frequency modulation) synthesizer +msgid "FM synth" msgstr "" -#: js/ToneActions.js:301 -msgid "Distortion must be from 0 to 100." +#: js/blocks/ToneBlocks.js:228 +msgid "The FM synth block is a frequency modulator used to define a timbre." msgstr "" -#: js/ToneActions.js:332 -#.TRANS: partials components in a harmonic series -msgid "Partial must be greater than or equal to 0." +#: js/blocks/ToneBlocks.js:262 +msgid "partial" msgstr "" -#: js/ToneActions.js:378 -#: js/ToneActions.js:417 -#: js/ToneActions.js:456 -#: js/timbre.js:782 -msgid "Unable to use synth due to existing oscillator" +#: js/blocks/ToneBlocks.js:265 +msgid "The Partial block is used to specify a weight for a specific partial harmonic." msgstr "" -#: js/ToneActions.js:388 -#: js/ToneActions.js:427 -msgid "The input cannot be negative." +#: js/blocks/ToneBlocks.js:284 +#.TRANS: partials are weighted components in a harmonic series +msgid "Partial weight must be between 0 and 1." msgstr "" -#: js/DictActions.js:75 -#: js/DictActions.js:153 -#: js/DictActions.js:188 -msgid "font" +#: js/blocks/ToneBlocks.js:297 +#.TRANS: partials are weighted components in a harmonic series +msgid "Partial block should be used inside of a Weighted-partials block." msgstr "" -#: js/musicutils.js:363 -#: js/musicutils.js:471 -#: js/pitchdrummatrix.js:151 -#: js/musickeyboard.js:2563 -msgid "rest" +#: js/blocks/ToneBlocks.js:325 +#.TRANS: partials are weighted components in a harmonic series +msgid "weighted partials" msgstr "" -#: js/musicutils.js:565 -#.TRANS: ordinal number. Please keep exactly one space between each number. -msgid "1st 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th" +#: js/blocks/ToneBlocks.js:383 +msgid "The Harmonic block will add harmonics to the contained notes." msgstr "" -#: js/musicutils.js:629 -#: js/musicutils.js:812 -#: js/musicutils.js:911 -#.TRANS: augmented is a music term related to intervals -msgid "augmented" +#: js/blocks/ToneBlocks.js:390 +#.TRANS: A harmonic is an overtone. +msgid "harmonic" msgstr "" -#: js/musicutils.js:631 -#: js/musicutils.js:813 -#: js/musicutils.js:910 -#.TRANS: diminished is a music term related to intervals and mode -msgid "diminished" +#: js/blocks/ToneBlocks.js:431 +msgid "The Distortion block adds distortion to the pitch." msgstr "" -#: js/musicutils.js:639 -#.TRANS: twelve semi-tone scale for music -msgid "chromatic" +#: js/blocks/ToneBlocks.js:438 +#: js/widgets/timbre.js:2100 +#.TRANS: distortion is an alteration in the sound +msgid "distortion" msgstr "" -#: js/musicutils.js:640 -msgid "algerian" +#: js/blocks/ToneBlocks.js:487 +msgid "The Tremolo block adds a wavering effect." msgstr "" -#: js/musicutils.js:641 -msgid "spanish" +#: js/blocks/ToneBlocks.js:495 +#: js/widgets/timbre.js:2092 +#.TRANS: a wavering effect in a musical tone +msgid "tremolo" msgstr "" -#: js/musicutils.js:643 -#.TRANS: modal scale in music -msgid "octatonic" +#: js/blocks/ToneBlocks.js:500 +#: js/blocks/ToneBlocks.js:569 +#: js/blocks/ToneBlocks.js:630 +#: js/blocks/ToneBlocks.js:689 +#: js/widgets/timbre.js:2134 +#: js/widgets/timbre.js:2222 +#: js/widgets/timbre.js:2317 +#: js/widgets/timbre.js:2419 +#.TRANS: rate at which tremolo wavers +msgid "rate" msgstr "" -#: js/musicutils.js:645 -#.TRANS: harmonic major scale in music -msgid "harmonic major" +#: js/blocks/ToneBlocks.js:502 +#: js/blocks/ToneBlocks.js:630 +#: js/widgets/timbre.js:2137 +#: js/widgets/timbre.js:2328 +#.TRANS: amplitude of tremolo waver +msgid "depth" msgstr "" -#: js/musicutils.js:647 -#.TRANS: natural minor scales in music -msgid "natural minor" +#: js/blocks/ToneBlocks.js:559 +msgid "The Phaser block adds a sweeping sound." msgstr "" -#: js/musicutils.js:649 -#.TRANS: harmonic minor scale in music -msgid "harmonic minor" +#: js/blocks/ToneBlocks.js:566 +#: js/widgets/timbre.js:2098 +#.TRANS: alter the phase of the sound +msgid "phaser" msgstr "" -#: js/musicutils.js:651 -#.TRANS: melodic minor scale in music -msgid "melodic minor" +#: js/blocks/ToneBlocks.js:569 +#: js/turtleactions/IntervalsActions.js:114 +#: js/widgets/timbre.js:2422 +msgid "octaves" msgstr "" -#: js/musicutils.js:655 -#.TRANS: modal scale for music -msgid "dorian" +#: js/blocks/ToneBlocks.js:569 +#: js/widgets/timbre.js:2425 +msgid "base frequency" msgstr "" -#: js/musicutils.js:657 -#.TRANS: modal scale for music -msgid "phrygian" +#: js/blocks/ToneBlocks.js:619 +msgid "The Chorus block adds a chorus effect." msgstr "" -#: js/musicutils.js:659 -#.TRANS: modal scale for music -msgid "lydian" +#: js/blocks/ToneBlocks.js:627 +#: js/widgets/timbre.js:2096 +#.TRANS: musical effect to simulate a choral sound +msgid "chorus" msgstr "" -#: js/musicutils.js:661 -#.TRANS: modal scale for music -msgid "mixolydian" +#: js/blocks/ToneBlocks.js:630 +msgid "delay" msgstr "" -#: js/musicutils.js:665 -#.TRANS: modal scale for music -msgid "locrian" +#: js/blocks/ToneBlocks.js:678 +msgid "The Vibrato block adds a rapid, slight variation in pitch." msgstr "" -#: js/musicutils.js:667 -#.TRANS: minor jazz scale for music -msgid "jazz minor" +#: js/blocks/ToneBlocks.js:686 +#: js/widgets/timbre.js:2094 +#.TRANS: a rapid, slight variation in pitch +msgid "vibrato" msgstr "" -#: js/musicutils.js:669 -#.TRANS: bebop scale for music -msgid "bebop" +#: js/blocks/ToneBlocks.js:689 +#: js/widgets/timbre.js:2221 +msgid "intensity" msgstr "" -#: js/musicutils.js:670 -msgid "arabic" +#: js/blocks/ToneBlocks.js:733 +#.TRANS: select synthesizer +msgid "set synth" msgstr "" -#: js/musicutils.js:671 -msgid "byzantine" +#: js/blocks/ToneBlocks.js:804 +msgid "synth name" msgstr "" -#: js/musicutils.js:673 -#.TRANS: musical scale for music by Verdi -msgid "enigmatic" +#: js/blocks/ToneBlocks.js:842 +msgid "set default instrument" msgstr "" -#: js/musicutils.js:674 -msgid "ethiopian" +#: js/blocks/ToneBlocks.js:895 +#: js/blocks/ToneBlocks.js:943 +#.TRANS: set the characteristics of a custom instrument +msgid "set instrument" msgstr "" -#: js/musicutils.js:676 -#.TRANS: Ethiopic scale for music -msgid "geez" +#: js/blocks/ToneBlocks.js:898 +#: js/blocks/ToneBlocks.js:926 +#: js/blocks/ToneBlocks.js:932 +msgid "The Set instrument block selects a voice for the synthesizer," msgstr "" -#: js/musicutils.js:677 -msgid "hindu" +#: js/blocks/ToneBlocks.js:900 +#: js/blocks/ToneBlocks.js:934 +msgid "eg guitar piano violin or cello." msgstr "" -#: js/musicutils.js:678 -msgid "hungarian" +#: js/blocks/ToneBlocks.js:1015 +msgid "Import a sound file to use as an instrument and set its pitch center." msgstr "" -#: js/musicutils.js:680 -#.TRANS: minor Romanian scale for music -msgid "romanian minor" +#: js/blocks/ToneBlocks.js:1110 +msgid "Upload a sound file to connect with the sample block." msgstr "" -#: js/musicutils.js:681 -msgid "spanish gypsy" +#: js/blocks/VolumeBlocks.js:35 +msgid "synth volume" msgstr "" -#: js/musicutils.js:683 -#.TRANS: musical scale for Mid-Eastern music -msgid "maqam" +#: js/blocks/VolumeBlocks.js:39 +msgid "The Synth volume block returns the current volume of the current synthesizer." msgstr "" -#: js/musicutils.js:685 -#.TRANS: minor blues scale for music -msgid "minor blues" +#: js/blocks/VolumeBlocks.js:105 +msgid "master volume" msgstr "" -#: js/musicutils.js:687 -#.TRANS: major blues scale for music -msgid "major blues" +#: js/blocks/VolumeBlocks.js:109 +msgid "The Master volume block returns the master volume." msgstr "" -#: js/musicutils.js:688 -msgid "whole tone" +#: js/blocks/VolumeBlocks.js:355 +#: js/blocks/VolumeBlocks.js:524 +msgid "set synth volume" msgstr "" -#: js/musicutils.js:690 -#.TRANS: pentatonic is a general term that means "five note scale". This scale is typically known as "minor pentatonic" -msgid "minor pentatonic" +#: js/blocks/VolumeBlocks.js:362 +#: js/blocks/VolumeBlocks.js:545 +msgid "synth" msgstr "" -#: js/musicutils.js:692 -#.TRANS: pentatonic is a general term that means "five note scale". This scale is typically known as "major pentatonic" -msgid "major pentatonic" +#: js/blocks/VolumeBlocks.js:403 +#: js/blocks/VolumeBlocks.js:577 +#: js/blocks/VolumeBlocks.js:740 +#: js/turtleactions/VolumeActions.js:173 +msgid "Setting volume to 0." msgstr "" -#: js/musicutils.js:693 -msgid "chinese" +#: js/blocks/VolumeBlocks.js:440 +msgid "Synth not found" msgstr "" -#: js/musicutils.js:694 -msgid "egyptian" +#: js/blocks/VolumeBlocks.js:494 +msgid "set drum volume" msgstr "" -#: js/musicutils.js:696 -#.TRANS: https://en.wikipedia.org/wiki/Hirajoshi_scale NOTE: There are three different versions of this scale -msgid "hirajoshi" +#: js/blocks/VolumeBlocks.js:530 +msgid "The Set synth volume block will change the volume of a particular synth," msgstr "" -#: js/musicutils.js:697 -msgid "Japan" +#: js/blocks/VolumeBlocks.js:532 +msgid "eg guitar violin snare drum etc." msgstr "" -#: js/musicutils.js:699 -#.TRANS: https://en.wikipedia.org/wiki/In_scale and https://en.wikipedia.org/wiki/Sakura_Sakura -msgid "in" +#: js/blocks/VolumeBlocks.js:534 +msgid "The default volume is 50." msgstr "" -#: js/musicutils.js:701 -#.TRANS: https://en.wikipedia.org/wiki/Miny%C5%8D_scale -msgid "minyo" +#: js/blocks/VolumeBlocks.js:536 +msgid "The range is 0 for silence to 100 for full volume." msgstr "" -#: js/musicutils.js:703 -#.TRANS: Italian mathematician -msgid "fibonacci" +#: js/blocks/VolumeBlocks.js:597 +msgid "set panning" msgstr "" -#: js/musicutils.js:708 -#: js/musicutils.js:1106 -#.TRANS: lowpass filter -msgid "lowpass" +#: js/blocks/VolumeBlocks.js:603 +msgid "The Set Panning block sets the panning for all synthesizers." msgstr "" -#: js/musicutils.js:710 -#: js/musicutils.js:1107 -#.TRANS: bandpass filter -msgid "bandpass" +#: js/blocks/VolumeBlocks.js:625 +msgid "Warning: Sound is coming out from only the left or right side." msgstr "" -#: js/musicutils.js:712 -#: js/musicutils.js:1108 -#.TRANS: high-shelf filter -msgid "highshelf" +#: js/blocks/VolumeBlocks.js:647 +#: js/blocks/VolumeBlocks.js:695 +msgid "set master volume" msgstr "" -#: js/musicutils.js:714 -#: js/musicutils.js:1109 -#.TRANS: low-shelf filter -msgid "lowshelf" +#: js/blocks/VolumeBlocks.js:653 +msgid "The Set master volume block sets the volume for all synthesizers." msgstr "" -#: js/musicutils.js:716 -#: js/musicutils.js:1110 -#.TRANS: notch-shelf filter -msgid "notch" +#: js/blocks/VolumeBlocks.js:784 +msgid "The Set relative volume block changes the volume of the contained notes." msgstr "" -#: js/musicutils.js:718 -#: js/musicutils.js:1111 -#.TRANS: all-pass filter -msgid "allpass" +#: js/blocks/VolumeBlocks.js:791 +msgid "set relative volume" msgstr "" -#: js/musicutils.js:720 -#: js/musicutils.js:1112 -#.TRANS: peaking filter -msgid "peaking" +#: js/blocks/VolumeBlocks.js:857 +msgid "decrescendo" msgstr "" -#: js/musicutils.js:731 -#: js/synthutils.js:58 -#.TRANS: musical instrument -msgid "violin" +#: js/blocks/VolumeBlocks.js:921 +msgid "crescendo" msgstr "" -#: js/musicutils.js:732 -#: js/synthutils.js:60 -#.TRANS: viola musical instrument -msgid "viola" +#: js/blocks/WidgetBlocks.js:81 +#.TRANS: sound envelope (ADSR) +msgid "envelope" msgstr "" -#: js/musicutils.js:733 -#: js/synthutils.js:98 -#.TRANS: xylophone musical instrument -msgid "xylophone" +#: js/blocks/WidgetBlocks.js:89 +#.TRANS: Attack time is the time taken for initial run-up of level from nil to peak, beginning when the key is first pressed. +msgid "attack" msgstr "" -#: js/musicutils.js:734 -#: js/synthutils.js:120 -#.TRANS: vibraphone musical instrument -msgid "vibraphone" +#: js/blocks/WidgetBlocks.js:91 +#.TRANS: Decay time is the time taken for the subsequent run down from the attack level to the designated sustain level. +msgid "decay" msgstr "" -#: js/musicutils.js:735 -#: js/synthutils.js:62 -#.TRANS: musical instrument -msgid "cello" +#: js/blocks/WidgetBlocks.js:93 +#.TRANS: Sustain level is the level during the main sequence of the sound's duration, until the key is released. +msgid "sustain" msgstr "" -#: js/musicutils.js:737 -#: js/synthutils.js:66 -#.TRANS: viola musical instrument -msgid "double bass" +#: js/blocks/WidgetBlocks.js:95 +#.TRANS: Release time is the time taken for the level to decay from the sustain level to zero after the key is released. +msgid "release" msgstr "" -#: js/musicutils.js:738 -#: js/synthutils.js:68 -#: js/rhythmruler.js:2119 -#.TRANS: musical instrument -msgid "guitar" +#: js/blocks/WidgetBlocks.js:113 +msgid "Attack value should be from 0 to 100." msgstr "" -#: js/musicutils.js:739 -#: js/synthutils.js:70 -#.TRANS: musical instrument -msgid "acoustic guitar" +#: js/blocks/WidgetBlocks.js:116 +msgid "Decay value should be from 0 to 100." msgstr "" -#: js/musicutils.js:740 -#: js/synthutils.js:72 -#.TRANS: musical instrument -msgid "flute" +#: js/blocks/WidgetBlocks.js:119 +msgid "Sustain value should be from 0 to 100." msgstr "" -#: js/musicutils.js:741 -#: js/synthutils.js:74 -#.TRANS: musical instrument -msgid "clarinet" +#: js/blocks/WidgetBlocks.js:122 +msgid "Release value should be from 0-100." msgstr "" -#: js/musicutils.js:742 -#: js/synthutils.js:76 -#.TRANS: musical instrument -msgid "saxophone" +#: js/blocks/WidgetBlocks.js:140 +msgid "You are adding multiple envelope blocks." msgstr "" -#: js/musicutils.js:743 -#: js/synthutils.js:78 -#.TRANS: musical instrument -msgid "tuba" +#: js/blocks/WidgetBlocks.js:171 +#.TRANS: a filter removes some unwanted components from a signal +msgid "filter" msgstr "" -#: js/musicutils.js:744 -#: js/synthutils.js:80 -#.TRANS: musical instrument -msgid "trumpet" +#: js/blocks/WidgetBlocks.js:181 +#: js/widgets/timbre.js:1818 +#.TRANS: rolloff is the steepness of a change in frequency. +msgid "rolloff" msgstr "" -#: js/musicutils.js:745 -#: js/synthutils.js:82 -#.TRANS: musical instrument -msgid "oboe" +#: js/blocks/WidgetBlocks.js:213 +#.TRANS: rolloff is the steepness of a change in frequency. +msgid "Rolloff value should be either -12, -24, -48, or -96 decibels/octave." msgstr "" -#: js/musicutils.js:746 -#: js/synthutils.js:84 -#.TRANS: musical instrument -msgid "trombone" +#: js/blocks/WidgetBlocks.js:252 +msgid "The Temperament tool is used to define custom tuning." msgstr "" -#: js/musicutils.js:747 -#: js/synthutils.js:100 -#.TRANS: polytone synthesizer -msgid "electronic synth" +#: js/blocks/WidgetBlocks.js:332 +#: js/blocks/WidgetBlocks.js:1573 +#: js/widgets/sampler.js:547 +msgid "Upload a sample and adjust its pitch center." msgstr "" -#: js/musicutils.js:748 -#: js/synthutils.js:102 -#.TRANS: simple monotone synthesizer -msgid "simple 1" +#: js/blocks/WidgetBlocks.js:339 +#.TRANS: the speed at music is should be played. +msgid "sampler" +msgstr "" + +#: js/blocks/WidgetBlocks.js:517 +msgid "The Meter block opens a tool to select strong beats for the meter." msgstr "" -#: js/musicutils.js:749 -msgid "simple 2" +#: js/blocks/WidgetBlocks.js:573 +msgid "The oscilloscope block opens a tool to visualize waveforms." msgstr "" -#: js/musicutils.js:750 -msgid "simple 3" +#: js/blocks/WidgetBlocks.js:578 +msgid "oscilloscope" msgstr "" -#: js/musicutils.js:751 -msgid "simple 4" +#: js/blocks/WidgetBlocks.js:645 +msgid "The Custom mode block opens a tool to explore musical mode (the spacing of the notes in a scale)." msgstr "" -#: js/musicutils.js:753 -#: js/synthutils.js:49 -#.TRANS: brown noise synthesizer -msgid "brown noise" +#: js/blocks/WidgetBlocks.js:651 +#.TRANS: musical mode is the pattern of half-steps in an octave, e.g., Major or Minor modes +msgid "custom mode" msgstr "" -#: js/musicutils.js:754 -#: js/synthutils.js:51 -#.TRANS: pink noise synthesizer -msgid "pink noise" +#: js/blocks/WidgetBlocks.js:700 +msgid "The Tempo block opens a metronome to visualize the beat." msgstr "" -#: js/musicutils.js:756 -#: js/synthutils.js:127 -#: js/rhythmruler.js:1670 -#: js/rhythmruler.js:1928 -#.TRANS: musical instrument -msgid "snare drum" +#: js/blocks/WidgetBlocks.js:762 +msgid "The Arpeggio Widget is used to compose chord sequences." msgstr "" -#: js/musicutils.js:757 -#: js/synthutils.js:129 -#.TRANS: musical instrument -msgid "kick drum" +#: js/blocks/WidgetBlocks.js:837 +msgid "The Pitch drum matrix is used to map pitches to drum sounds." msgstr "" -#: js/musicutils.js:758 -#: js/synthutils.js:131 -#.TRANS: musical instrument -msgid "tom tom" +#: js/blocks/WidgetBlocks.js:842 +#.TRANS: makes a mapping between pitches and drum sounds +msgid "pitch-drum mapper" msgstr "" -#: js/musicutils.js:759 -#: js/synthutils.js:133 -#.TRANS: musical instrument -msgid "floor tom" +#: js/blocks/WidgetBlocks.js:891 +msgid "You must have at least one pitch block and one drum block in the matrix." msgstr "" -#: js/musicutils.js:760 -#: js/synthutils.js:135 -#.TRANS: musical instrument -msgid "bass drum" +#: js/blocks/WidgetBlocks.js:920 +msgid "The Pitch slider tool to is used to generate pitches at selected frequencies." msgstr "" -#: js/musicutils.js:761 -#: js/synthutils.js:137 -#.TRANS: a drum made from an inverted cup -msgid "cup drum" +#: js/blocks/WidgetBlocks.js:925 +#.TRANS: widget to generate pitches using a slider +msgid "pitch slider" msgstr "" -#: js/musicutils.js:762 -#: js/synthutils.js:139 -#.TRANS: musical instrument -msgid "darbuka drum" +#: js/blocks/WidgetBlocks.js:977 +msgid "chromatic keyboard" msgstr "" -#: js/musicutils.js:763 -#: js/synthutils.js:143 -#.TRANS: musical instrument -msgid "hi hat" +#: js/blocks/WidgetBlocks.js:1011 +#: js/blocks/WidgetBlocks.js:1077 +#.TRANS: widget to generate pitches using a slider +msgid "music keyboard" msgstr "" -#: js/musicutils.js:764 -#: js/synthutils.js:145 -#.TRANS: a small metal bell -msgid "ride bell" +#: js/blocks/WidgetBlocks.js:1062 +#: js/blocks/WidgetBlocks.js:1069 +msgid "The Music keyboard block opens a piano keyboard that can be used to create notes." msgstr "" -#: js/musicutils.js:765 -#: js/synthutils.js:147 -#.TRANS: musical instrument -msgid "cow bell" +#: js/blocks/WidgetBlocks.js:1128 +msgid "The Pitch staircase tool to is used to generate pitches from a given ratio." msgstr "" -#: js/musicutils.js:766 -msgid "japanese drum" +#: js/blocks/WidgetBlocks.js:1135 +#.TRANS: generate a progressive sequence of pitches +msgid "pitch staircase" msgstr "" -#: js/musicutils.js:767 -#: js/synthutils.js:153 -#.TRANS: musical instrument -msgid "japanese bell" +#: js/blocks/WidgetBlocks.js:1222 +msgid "The Rhythm Maker block opens a tool to create drum machines." msgstr "" -#: js/musicutils.js:768 -#: js/synthutils.js:149 -#.TRANS: musical instrument -msgid "triangle bell" +#: js/blocks/WidgetBlocks.js:1291 +msgid "G major scale" msgstr "" -#: js/musicutils.js:769 -#: js/synthutils.js:151 -#.TRANS: musical instrument -msgid "finger cymbals" +#: js/blocks/WidgetBlocks.js:1326 +msgid "C major scale" msgstr "" -#: js/musicutils.js:770 -#: js/synthutils.js:155 -#.TRANS: a musically tuned set of bells -msgid "chime" +#: js/blocks/WidgetBlocks.js:1366 +msgid "The Phrase Maker block opens a tool to create musical phrases." msgstr "" -#: js/musicutils.js:771 -#: js/synthutils.js:157 -#.TRANS: a musical instrument -msgid "gong" +#: js/blocks/WidgetBlocks.js:1373 +#.TRANS: assigns pitch to a sequence of beats to generate a melody +msgid "phrase maker" msgstr "" -#: js/musicutils.js:772 -#: js/synthutils.js:159 -#.TRANS: sound effect -msgid "clang" +#: js/blocks/WidgetBlocks.js:1444 +msgid "You must have at least one pitch block and one rhythm block in the matrix." msgstr "" -#: js/musicutils.js:773 -#: js/synthutils.js:161 -#.TRANS: sound effect -msgid "crash" +#: js/blocks/WidgetBlocks.js:1503 +msgid "The Status block opens a tool for inspecting the status of Music Blocks as it is running." msgstr "" -#: js/musicutils.js:774 -#: js/synthutils.js:163 -#.TRANS: sound effect -msgid "bottle" +#: js/blocks/WidgetBlocks.js:1580 +#.TRANS: AI-generated music +msgid "aimusic" msgstr "" -#: js/musicutils.js:775 -#: js/synthutils.js:165 -#.TRANS: sound effect -msgid "clap" +#: js/turtleactions/MeterActions.js:101 +#: js/turtleactions/MeterActions.js:139 +msgid "beats per minute must be greater than" msgstr "" -#: js/musicutils.js:776 -#: js/synthutils.js:167 -#.TRANS: sound effect -msgid "slap" +#: js/turtleactions/MeterActions.js:111 +#: js/turtleactions/MeterActions.js:149 +msgid "maximum" msgstr "" -#: js/musicutils.js:777 -#: js/synthutils.js:169 -#.TRANS: sound effect -msgid "splash" +#: js/turtleactions/MeterActions.js:117 +#: js/turtleactions/MeterActions.js:155 +msgid "beats per minute is" msgstr "" -#: js/musicutils.js:778 -#: js/synthutils.js:171 -#.TRANS: sound effect -msgid "bubbles" +#: js/turtleactions/DictActions.js:75 +#: js/turtleactions/DictActions.js:142 +#: js/turtleactions/DictActions.js:172 +msgid "font" msgstr "" -#: js/musicutils.js:779 -#: js/synthutils.js:173 -#.TRANS: sound effect -msgid "raindrop" +#: js/turtleactions/DictActions.js:255 +msgid "Dictionary with this name does not exist" msgstr "" -#: js/musicutils.js:780 -#: js/synthutils.js:175 -#.TRANS: animal sound effect -msgid "cat" +#: js/turtleactions/DictActions.js:259 +msgid "Key with this name does not exist in " msgstr "" -#: js/musicutils.js:781 -#: js/synthutils.js:177 -#.TRANS: animal sound effect -msgid "cricket" +#: js/turtleactions/DrumActions.js:227 +msgid "Noise Block: Did you mean to use a Note block?" msgstr "" -#: js/musicutils.js:782 -#: js/synthutils.js:179 -#.TRANS: animal sound effect -msgid "dog" +#: js/turtleactions/IntervalsActions.js:113 +msgid "one" msgstr "" -#: js/musicutils.js:784 -#: js/synthutils.js:86 -#.TRANS: musical instrument -msgid "banjo" +#: js/turtleactions/IntervalsActions.js:113 +msgid "two" msgstr "" -#: js/musicutils.js:785 -#: js/synthutils.js:88 -#.TRANS: musical instrument -msgid "koto" +#: js/turtleactions/IntervalsActions.js:113 +msgid "three" msgstr "" -#: js/musicutils.js:786 -#: js/synthutils.js:90 -#.TRANS: musical instrument -msgid "dulcimer" +#: js/turtleactions/IntervalsActions.js:113 +msgid "four" msgstr "" -#: js/musicutils.js:787 -#: js/synthutils.js:92 -#.TRANS: musical instrument -msgid "electric guitar" +#: js/turtleactions/IntervalsActions.js:113 +msgid "five" msgstr "" -#: js/musicutils.js:788 -#: js/synthutils.js:94 -#.TRANS: musical instrument -msgid "bassoon" +#: js/turtleactions/IntervalsActions.js:113 +msgid "six" msgstr "" -#: js/musicutils.js:789 -#: js/synthutils.js:96 -#.TRANS: musical instrument -msgid "celeste" +#: js/turtleactions/IntervalsActions.js:113 +msgid "seven" msgstr "" -#: js/musicutils.js:791 -#: js/musicutils.js:1123 -#: js/musicutils.js:1131 -#: js/temperament.js:650 -#.TRANS: musical temperament -msgid "equal" +#: js/turtleactions/IntervalsActions.js:113 +msgid "eight" msgstr "" -#: js/musicutils.js:793 -#: js/musicutils.js:1125 -#: js/musicutils.js:1133 -#.TRANS: musical temperament -msgid "Pythagorean" +#: js/turtleactions/IntervalsActions.js:113 +msgid "nine" msgstr "" -#: js/musicutils.js:795 -#: js/musicutils.js:1124 -#: js/musicutils.js:1132 -#.TRANS: musical temperament -msgid "just intonation" +#: js/turtleactions/IntervalsActions.js:119 +msgid "a" msgstr "" -#: js/musicutils.js:797 -#: js/musicutils.js:1126 -#: js/musicutils.js:1127 -#: js/musicutils.js:1134 -#: js/musicutils.js:1135 -#.TRANS: musical temperament -msgid "meantone" +#: js/turtleactions/IntervalsActions.js:120 +msgid "below" msgstr "" -#: js/musicutils.js:814 -msgid "major 7th" +#: js/turtleactions/IntervalsActions.js:124 +msgid "above" msgstr "" -#: js/musicutils.js:815 -msgid "minor 7th" +#: js/turtleactions/IntervalsActions.js:131 +msgid "plus" msgstr "" -#: js/musicutils.js:816 -msgid "dominant 7th" +#: js/turtleactions/IntervalsActions.js:139 +msgid " below" msgstr "" -#: js/musicutils.js:817 -msgid "minor-major 7th" +#: js/turtleactions/IntervalsActions.js:257 +msgid "Adding missing pitch number 0." msgstr "" -#: js/musicutils.js:818 -msgid "fully-diminished 7th" +#: js/turtleactions/IntervalsActions.js:265 +msgid "Ignoring pitch numbers less than zero or greater than eleven." msgstr "" -#: js/musicutils.js:819 -msgid "half-diminished 7th" +#: js/turtleactions/IntervalsActions.js:271 +msgid "Ignoring duplicate pitch numbers." msgstr "" -#: js/musicutils.js:4379 -#: js/musicutils.js:4416 -msgid "current" +#: js/turtleactions/ToneActions.js:134 +msgid "Vibrato intensity must be between 1 and 100." msgstr "" -#: js/musicutils.js:4382 -#: js/musicutils.js:4407 -msgid "next" +#: js/turtleactions/ToneActions.js:139 +msgid "Vibrato rate must be greater than 0." msgstr "" -#: js/musicutils.js:4385 -#: js/musicutils.js:4412 -msgid "previous" +#: js/turtleactions/ToneActions.js:192 +#: js/turtleactions/ToneActions.js:265 +#.TRANS: Depth is the intesity of the tremolo or chorus effect. +msgid "Depth is out of range." msgstr "" -#: js/synthutils.js:104 -#.TRANS: simple monotone synthesizer -msgid "simple-2" +#: js/turtleactions/ToneActions.js:301 +msgid "Distortion must be from 0 to 100." msgstr "" -#: js/synthutils.js:106 -#.TRANS: simple monotone synthesizer -msgid "simple-3" +#: js/turtleactions/ToneActions.js:332 +#.TRANS: partials components in a harmonic series +msgid "Partial must be greater than or equal to 0." msgstr "" -#: js/synthutils.js:108 -#.TRANS: simple monotone synthesizer -msgid "simple-4" +#: js/turtleactions/ToneActions.js:378 +#: js/turtleactions/ToneActions.js:417 +#: js/turtleactions/ToneActions.js:456 +#: js/widgets/timbre.js:782 +msgid "Unable to use synth due to existing oscillator" msgstr "" -#: js/synthutils.js:141 -#.TRANS: musical instrument -msgid "taiko" +#: js/turtleactions/ToneActions.js:388 +#: js/turtleactions/ToneActions.js:427 +msgid "The input cannot be negative." msgstr "" -#: js/modewidget.js:86 -#: js/modewidget.js:88 -#: js/modewidget.js:642 -#: js/modewidget.js:644 -#: js/modewidget.js:712 -#: js/modewidget.js:714 -#: js/temperament.js:2078 -#: js/rhythmruler.js:189 -#: js/rhythmruler.js:1410 -#: js/rhythmruler.js:1412 -#: js/rhythmruler.js:1435 -#: js/rhythmruler.js:1437 -#: js/meterwidget.js:89 -#: js/meterwidget.js:91 +#: js/widgets/modewidget.js:86 +#: js/widgets/modewidget.js:88 +#: js/widgets/modewidget.js:642 +#: js/widgets/modewidget.js:644 +#: js/widgets/modewidget.js:712 +#: js/widgets/modewidget.js:714 +#: js/widgets/meterwidget.js:194 +#: js/widgets/meterwidget.js:196 +#: js/widgets/temperament.js:2236 +#: js/widgets/rhythmruler.js:457 +#: js/widgets/rhythmruler.js:1790 +#: js/widgets/rhythmruler.js:1792 +#: js/widgets/rhythmruler.js:1816 +#: js/widgets/rhythmruler.js:1818 msgid "Play all" msgstr "" -#: js/modewidget.js:115 -#: js/pitchstaircase.js:641 -#: js/phrasemaker.js:339 -#: js/pitchdrummatrix.js:94 -#: js/pitchslider.js:125 -#: js/temperament.js:2083 -#: js/musickeyboard.js:530 -#: js/timbre.js:756 -#: js/meterwidget.js:124 -#: js/arpeggio.js:103 +#: js/widgets/modewidget.js:115 +#: js/widgets/meterwidget.js:229 +#: js/widgets/pitchdrummatrix.js:166 +#: js/widgets/pitchslider.js:125 +#: js/widgets/pitchstaircase.js:641 +#: js/widgets/temperament.js:2244 +#: js/widgets/timbre.js:756 +#: js/widgets/arpeggio.js:103 +#: js/widgets/musickeyboard.js:688 +#: js/widgets/phrasemaker.js:550 msgid "Save" msgstr "" -#: js/modewidget.js:121 -#: js/pitchstaircase.js:686 -#: js/phrasemaker.js:356 -#: js/pitchdrummatrix.js:109 -#: js/musickeyboard.js:534 -#: js/rhythmruler.js:269 -#: js/arpeggio.js:118 +#: js/widgets/modewidget.js:121 +#: js/widgets/pitchdrummatrix.js:181 +#: js/widgets/pitchstaircase.js:686 +#: js/widgets/arpeggio.js:118 +#: js/widgets/musickeyboard.js:696 +#: js/widgets/phrasemaker.js:567 +#: js/widgets/rhythmruler.js:601 #.TRANS: clear all subdivisions from the ruler. msgid "Clear" msgstr "" -#: js/modewidget.js:127 +#: js/widgets/modewidget.js:127 msgid "Rotate counter clockwise" msgstr "" -#: js/modewidget.js:133 +#: js/widgets/modewidget.js:133 msgid "Rotate clockwise" msgstr "" -#: js/modewidget.js:139 +#: js/widgets/modewidget.js:139 msgid "Invert" msgstr "" -#: js/modewidget.js:145 -#: js/pitchstaircase.js:678 -#: js/rhythmruler.js:258 -#: js/timbre.js:963 +#: js/widgets/modewidget.js:145 +#: js/widgets/pitchstaircase.js:678 +#: js/widgets/timbre.js:963 +#: js/widgets/rhythmruler.js:578 msgid "Undo" msgstr "" -#: js/modewidget.js:163 +#: js/widgets/modewidget.js:163 #.TRANS: A circle of notes represents the musical mode. msgid "Click in the circle to select notes for the mode." msgstr "" -#: js/modewidget.js:1017 -#: js/pitchstaircase.js:580 -#: js/phrasemaker.js:4855 -#: js/temperament.js:1754 -#: js/rhythmruler.js:1865 -#: js/rhythmruler.js:2081 -#: js/tempo.js:414 +#: js/widgets/modewidget.js:1017 +#: js/widgets/pitchstaircase.js:580 +#: js/widgets/temperament.js:1929 +#: js/widgets/tempo.js:414 +#: js/widgets/phrasemaker.js:5356 +#: js/widgets/rhythmruler.js:2254 +#: js/widgets/rhythmruler.js:2472 msgid "New action block generated!" msgstr "" -#: js/oscilloscope.js:79 -msgid "Zoom In" -msgstr "" - -#: js/oscilloscope.js:88 -msgid "Zoom Out" -msgstr "" - -#: js/pitchstaircase.js:624 -msgid "Play chord" -msgstr "" - -#: js/pitchstaircase.js:632 -msgid "Play scale" +#: js/widgets/meterwidget.js:275 +msgid "Reset" msgstr "" -#: js/pitchstaircase.js:696 -msgid "Click on a note to create a new step." +#: js/widgets/meterwidget.js:301 +msgid "Click in the circle to select strong beats for the meter." msgstr "" -#: js/phrasemaker.js:363 -msgid "Export" +#: js/widgets/oscilloscope.js:79 +msgid "Zoom In" msgstr "" -#: js/phrasemaker.js:370 -msgid "Sort" +#: js/widgets/oscilloscope.js:88 +msgid "Zoom Out" msgstr "" -#: js/phrasemaker.js:373 -#: js/musickeyboard.js:559 -msgid "Add note" +#: js/widgets/pitchdrummatrix.js:356 +#: js/widgets/pitchdrummatrix.js:752 +msgid "Click in the grid to map notes to drums." msgstr "" -#: js/phrasemaker.js:764 -msgid "Click on the table to add notes." +#: js/widgets/pitchslider.js:103 +msgid "Move up" msgstr "" -#: js/phrasemaker.js:2414 -#: js/phrasemaker.js:2543 -msgid "tuplet value" +#: js/widgets/pitchslider.js:114 +msgid "Move down" msgstr "" -#: js/pitchdrummatrix.js:270 -#: js/pitchdrummatrix.js:639 -msgid "Click in the grid to map notes to drums." +#: js/widgets/pitchslider.js:136 +msgid "Click on the slider to create a note block." msgstr "" -#: js/pitchslider.js:103 -msgid "Move up" +#: js/widgets/pitchstaircase.js:624 +msgid "Play chord" msgstr "" -#: js/pitchslider.js:114 -msgid "Move down" +#: js/widgets/pitchstaircase.js:632 +msgid "Play scale" msgstr "" -#: js/pitchslider.js:136 -msgid "Click on the slider to create a note block." +#: js/widgets/pitchstaircase.js:696 +msgid "Click on a note to create a new step." msgstr "" -#: js/temperament.js:215 +#: js/widgets/temperament.js:321 msgid "back to 2:1 octave space" msgstr "" -#: js/temperament.js:323 +#: js/widgets/temperament.js:447 msgid "edit" msgstr "" -#: js/temperament.js:330 -#: js/temperament.js:332 -#: js/temperament.js:1336 -#: js/temperament.js:1338 +#: js/widgets/temperament.js:454 +#: js/widgets/temperament.js:456 +#: js/widgets/temperament.js:1493 +#: js/widgets/temperament.js:1495 msgid "close" msgstr "" -#: js/temperament.js:423 -#: js/temperament.js:736 -#: js/temperament.js:743 -#: js/temperament.js:845 -#: js/temperament.js:935 -#: js/temperament.js:942 -#: js/temperament.js:1015 -#: js/temperament.js:1284 -#: js/temperament.js:1354 -#: js/temperament.js:1430 +#: js/widgets/temperament.js:552 +#: js/widgets/temperament.js:877 +#: js/widgets/temperament.js:884 +#: js/widgets/temperament.js:986 +#: js/widgets/temperament.js:1080 +#: js/widgets/temperament.js:1087 +#: js/widgets/temperament.js:1160 +#: js/widgets/temperament.js:1433 +#: js/widgets/temperament.js:1511 +#: js/widgets/temperament.js:1596 msgid "done" msgstr "" -#: js/temperament.js:477 -#: js/temperament.js:482 -#: js/temperament.js:918 +#: js/widgets/temperament.js:610 +#: js/widgets/temperament.js:615 +#: js/widgets/temperament.js:1063 msgid "ratio" msgstr "" -#: js/temperament.js:483 +#: js/widgets/temperament.js:616 msgid "interval" msgstr "" -#: js/temperament.js:611 +#: js/widgets/temperament.js:744 msgid "non scalar" msgstr "" -#: js/temperament.js:650 +#: js/widgets/temperament.js:787 msgid "ratios" msgstr "" -#: js/temperament.js:650 +#: js/widgets/temperament.js:787 msgid "arbitrary" msgstr "" -#: js/temperament.js:719 +#: js/widgets/temperament.js:860 msgid "number of divisions" msgstr "" -#: js/temperament.js:741 -#: js/temperament.js:858 -#: js/temperament.js:940 -#: js/temperament.js:1033 +#: js/widgets/temperament.js:882 +#: js/widgets/temperament.js:999 +#: js/widgets/temperament.js:1085 +#: js/widgets/temperament.js:1178 msgid "preview" msgstr "" -#: js/temperament.js:788 +#: js/widgets/temperament.js:929 msgid "The Number of divisions is too large." msgstr "" -#: js/temperament.js:921 +#: js/widgets/temperament.js:1066 msgid "recursion" msgstr "" -#: js/temperament.js:1450 +#: js/widgets/temperament.js:1616 msgid "The octave ratio has changed. This changes temperament significantly." msgstr "" -#: js/temperament.js:2087 +#: js/widgets/temperament.js:2248 msgid "Table" msgstr "" -#: js/temperament.js:2185 +#: js/widgets/temperament.js:2356 msgid "Add pitches" msgstr "" -#: js/musickeyboard.js:570 -msgid "Metronome" +#: js/widgets/tempo.js:78 +#: js/widgets/tempo.js:97 +#: js/widgets/tempo.js:99 +#: js/widgets/aiwidget.js:134 +#: js/widgets/aiwidget.js:136 +#: js/widgets/rhythmruler.js:681 +#: js/widgets/rhythmruler.js:683 +#: js/widgets/rhythmruler.js:1864 +#: js/widgets/rhythmruler.js:1866 +#: js/widgets/sampler.js:180 +#: js/widgets/sampler.js:182 +msgid "Pause" msgstr "" -#: js/musickeyboard.js:1296 -#: plugins/rodi.rtp:193 -msgid "duration" -msgstr "czas trwania" +#: js/widgets/tempo.js:113 +msgid "Save tempo" +msgstr "" -#: js/musickeyboard.js:2840 -msgid "New action blocks generated!" +#: js/widgets/tempo.js:144 +msgid "speed up" msgstr "" -#: js/musickeyboard.js:2841 -msgid "New action block generated" +#: js/widgets/tempo.js:150 +msgid "slow down" msgstr "" -#: js/musickeyboard.js:2984 -#: js/musickeyboard.js:2992 -msgid "MIDI device present." +#: js/widgets/tempo.js:194 +msgid "Adjust the tempo with the buttons." msgstr "" -#: js/musickeyboard.js:2995 -msgid "No MIDI device found." +#: js/widgets/tempo.js:261 +msgid "Please enter a number between 30 and 1000" msgstr "" -#: js/musickeyboard.js:3000 -msgid "Failed to get MIDI access in browser." +#: js/widgets/tempo.js:268 +#: js/widgets/tempo.js:271 +msgid "The beats per minute must be between 30 and 1000." msgstr "" -#: js/rhythmruler.js:202 -msgid "Save rhythms" +#: js/widgets/tempo.js:287 +msgid "The beats per minute must be below 1000." msgstr "" -#: js/rhythmruler.js:222 -msgid "Save drum machine" +#: js/widgets/tempo.js:303 +msgid "The beats per minute must be above 30" msgstr "" -#: js/rhythmruler.js:263 -#.TRANS: user can tap out a rhythm by clicking on a ruler. -msgid "Tap a rhythm" +#: js/widgets/timbre.js:766 +msgid "Synthesizer" msgstr "" -#: js/rhythmruler.js:342 -#: js/rhythmruler.js:344 -#: js/rhythmruler.js:1481 -#: js/rhythmruler.js:1483 -#: js/sampler.js:110 -#: js/sampler.js:112 -#: js/tempo.js:78 -#: js/tempo.js:97 -#: js/tempo.js:99 -msgid "Pause" +#: js/widgets/timbre.js:789 +msgid "Oscillator" msgstr "" -#: js/rhythmruler.js:478 -msgid "Click on the ruler to divide it." +#: js/widgets/timbre.js:840 +msgid "Envelope" msgstr "" -#: js/rhythmruler.js:603 -#: js/rhythmruler.js:605 -#: js/rhythmruler.js:804 -#: js/rhythmruler.js:806 -#: js/rhythmruler.js:1386 -#: js/rhythmruler.js:1388 -msgid "tap a rhythm" +#: js/widgets/timbre.js:886 +#: planet/js/GlobalTag.js:50 +#.TRANS: On the Planet, we use labels to tag projects. +msgid "Effects" msgstr "" -#: js/rhythmruler.js:1084 -msgid "Maximum value of 256 has been exceeded." +#: js/widgets/timbre.js:904 +msgid "Filter" msgstr "" -#: js/sampler.js:137 -msgid "Warning: Sample is bigger than 1MB." +#: js/widgets/timbre.js:946 +msgid "Add filter" msgstr "" -#: js/sampler.js:142 -msgid "Upload failed: Sample is not a .wav file." +#: js/widgets/timbre.js:987 +msgid "Click on buttons to open the timbre design tools." msgstr "" -#: js/sampler.js:164 -msgid "A new sample block was generated." +#: js/widgets/timbre.js:1273 +msgid "harmonicity" msgstr "" -#: js/sampler.js:255 -msgid "Upload sample" +#: js/widgets/timbre.js:1340 +#: js/widgets/timbre.js:1406 +msgid "modulation index" msgstr "" -#: js/sampler.js:306 -msgid "Save sample" +#: js/widgets/timbre.js:1484 +msgid "vibrato amount" msgstr "" -#: js/sampler.js:697 -#.TRANS: The reference tone is a sound used for comparison. -msgid "reference tone" +#: js/widgets/timbre.js:1919 +msgid "Filter already present." msgstr "" -#: js/tempo.js:113 -msgid "Save tempo" +#: js/widgets/timbre.js:2322 +msgid "delay (MS)" msgstr "" -#: js/tempo.js:144 -msgid "speed up" +#: js/widgets/timbre.js:2507 +msgid "distortion amount" msgstr "" -#: js/tempo.js:150 -msgid "slow down" +#: js/widgets/aiwidget.js:180 +#: js/widgets/sampler.js:227 +msgid "Warning: Sample is bigger than 1MB." msgstr "" -#: js/tempo.js:194 -msgid "Adjust the tempo with the buttons." +#: js/widgets/aiwidget.js:539 +msgid "New start block generated" msgstr "" -#: js/tempo.js:261 -msgid "Please enter a number between 30 and 1000" +#: js/widgets/aiwidget.js:541 +msgid "MIDI loading. This may take some time depending upon the number of notes in the track" msgstr "" -#: js/tempo.js:268 -#: js/tempo.js:271 -msgid "The beats per minute must be between 30 and 1000." +#: js/widgets/aiwidget.js:551 +#: js/widgets/sampler.js:254 +msgid "Upload failed: Sample is not a .wav file." msgstr "" -#: js/tempo.js:287 -msgid "The beats per minute must be below 1000." +#: js/widgets/aiwidget.js:679 +#: js/widgets/sampler.js:432 +msgid "Save sample" msgstr "" -#: js/tempo.js:303 -msgid "The beats per minute must be above 30" +#: js/widgets/aiwidget.js:701 +msgid "AI Music" msgstr "" -#: js/timbre.js:766 -msgid "Synthesizer" +#: js/widgets/arpeggio.js:239 +msgid "Click in the grid to add steps to the arpeggio." msgstr "" -#: js/timbre.js:789 -msgid "Oscillator" +#: js/widgets/help.js:95 +#: js/widgets/help.js:125 +#: js/widgets/help.js:146 +#: js/widgets/help.js:158 +#: js/widgets/help.js:376 +#: js/widgets/help.js:391 +msgid "Take a tour" msgstr "" -#: js/timbre.js:840 -msgid "Envelope" +#: js/widgets/musickeyboard.js:725 +#: js/widgets/phrasemaker.js:584 +msgid "Add note" msgstr "" -#: js/timbre.js:886 -#: js/GlobalTag.js:50 -#.TRANS: On the Planet, we use labels to tag projects. -msgid "Effects" +#: js/widgets/musickeyboard.js:744 +msgid "Metronome" +msgstr "" + +#: js/widgets/musickeyboard.js:1549 +#: plugins/rodi.rtp:193 +msgid "duration" +msgstr "czas trwania" + +#: js/widgets/musickeyboard.js:3179 +msgid "New action blocks generated" +msgstr "" + +#: js/widgets/musickeyboard.js:3180 +msgid "New action block generated" msgstr "" -#: js/timbre.js:904 -msgid "Filter" +#: js/widgets/musickeyboard.js:3365 +#: js/widgets/musickeyboard.js:3373 +msgid "MIDI device present." msgstr "" -#: js/timbre.js:946 -msgid "Add filter" +#: js/widgets/musickeyboard.js:3376 +msgid "No MIDI device found." msgstr "" -#: js/timbre.js:987 -msgid "Click on buttons to open the timbre design tools." +#: js/widgets/musickeyboard.js:3386 +msgid "Failed to get MIDI access in browser." msgstr "" -#: js/timbre.js:1273 -msgid "harmonicity" +#: js/widgets/phrasemaker.js:574 +msgid "Export" msgstr "" -#: js/timbre.js:1340 -#: js/timbre.js:1406 -msgid "modulation index" +#: js/widgets/phrasemaker.js:581 +msgid "Sort" msgstr "" -#: js/timbre.js:1484 -msgid "vibrato amount" +#: js/widgets/phrasemaker.js:975 +msgid "Click on the table to add notes." msgstr "" -#: js/timbre.js:1919 -msgid "Filter already present." +#: js/widgets/phrasemaker.js:2677 +#: js/widgets/phrasemaker.js:2819 +msgid "tuplet value" msgstr "" -#: js/timbre.js:2322 -msgid "delay (MS)" +#: js/widgets/rhythmruler.js:486 +msgid "Save rhythms" msgstr "" -#: js/timbre.js:2507 -msgid "distortion amount" +#: js/widgets/rhythmruler.js:512 +msgid "Save drum machine" msgstr "" -#: js/meterwidget.js:170 -msgid "Reset" +#: js/widgets/rhythmruler.js:589 +#.TRANS: user can tap out a rhythm by clicking on a ruler. +msgid "Tap a rhythm" msgstr "" -#: js/meterwidget.js:196 -msgid "Click in the circle to select strong beats for the meter." +#: js/widgets/rhythmruler.js:817 +msgid "Click on the ruler to divide it." msgstr "" -#: js/arpeggio.js:239 -msgid "Click in the grid to add steps to the arpeggio." +#: js/widgets/rhythmruler.js:950 +#: js/widgets/rhythmruler.js:952 +#: js/widgets/rhythmruler.js:1152 +#: js/widgets/rhythmruler.js:1154 +#: js/widgets/rhythmruler.js:1765 +#: js/widgets/rhythmruler.js:1767 +msgid "tap a rhythm" msgstr "" -#: js/ProjectStorage.js:243 -msgid "anonymous" +#: js/widgets/rhythmruler.js:1459 +msgid "Maximum value of 256 has been exceeded." msgstr "" -#: js/GlobalCard.js:68 -msgid "Share" +#: js/widgets/sampler.js:237 +msgid "Recording started..." msgstr "" -#: js/GlobalCard.js:74 -msgid "Flags" +#: js/widgets/sampler.js:245 +msgid "Recording complete..." msgstr "" -#: js/LocalCard.js:36 -msgid "View published project" +#: js/widgets/sampler.js:283 +msgid "A new sample block was generated." msgstr "" -#: js/LocalCard.js:42 -msgid "Publish project" +#: js/widgets/sampler.js:378 +msgid "Upload sample" msgstr "" -#: js/LocalCard.js:51 -msgid "Edit project" +#: js/widgets/sampler.js:399 +msgid "Warning: Your sample cannot be loaded because it is >1MB." msgstr "" -#: js/LocalCard.js:52 -msgid "Delete project" +#: js/widgets/sampler.js:448 +msgid "Toggle Mic" msgstr "" -#: js/LocalCard.js:53 -msgid "Download project" +#: js/widgets/sampler.js:458 +msgid "Playback" msgstr "" -#: js/LocalCard.js:55 -msgid "Duplicate project" +#: js/widgets/sampler.js:979 +#.TRANS: The reference tone is a sound used for comparison. +msgid "reference tone" msgstr "" -#: js/GlobalTag.js:28 +#: planet/js/GlobalTag.js:28 #.TRANS: On the Planet, we use labels to tag projects. msgid "All Projects" msgstr "" -#: js/GlobalTag.js:30 -#: js/StringHelper.js:37 +#: planet/js/GlobalTag.js:30 +#: planet/js/StringHelper.js:37 #.TRANS: On the Planet, we use labels to tag projects. msgid "My Projects" msgstr "" -#: js/GlobalTag.js:32 +#: planet/js/GlobalTag.js:32 #.TRANS: On the Planet, we use labels to tag projects. msgid "Examples" msgstr "" -#: js/GlobalTag.js:34 +#: planet/js/GlobalTag.js:34 #.TRANS: On the Planet, we use labels to tag projects. msgid "Music" msgstr "" -#: js/GlobalTag.js:36 +#: planet/js/GlobalTag.js:36 #.TRANS: On the Planet, we use labels to tag projects. msgid "Art" msgstr "" -#: js/GlobalTag.js:38 +#: planet/js/GlobalTag.js:38 #.TRANS: On the Planet, we use labels to tag projects. msgid "Math" msgstr "" -#: js/GlobalTag.js:40 +#: planet/js/GlobalTag.js:40 #.TRANS: On the Planet, we use labels to tag projects. msgid "Interactive" msgstr "" -#: js/GlobalTag.js:42 +#: planet/js/GlobalTag.js:42 #.TRANS: On the Planet, we use labels to tag projects. msgid "Design" msgstr "" -#: js/GlobalTag.js:44 +#: planet/js/GlobalTag.js:44 #.TRANS: On the Planet, we use labels to tag projects. msgid "Game" msgstr "" -#: js/GlobalTag.js:46 +#: planet/js/GlobalTag.js:46 #.TRANS: On the Planet, we use labels to tag projects. msgid "Media" msgstr "" -#: js/GlobalTag.js:48 +#: planet/js/GlobalTag.js:48 #.TRANS: On the Planet, we use labels to tag projects. msgid "Sensors" msgstr "" -#: js/GlobalTag.js:52 +#: planet/js/GlobalTag.js:52 #.TRANS: On the Planet, we use labels to tag projects. msgid "Code Snippet" msgstr "" -#: js/helper.js:149 -#: js/StringHelper.js:49 -msgid "Show more tags" +#: planet/js/LocalCard.js:36 +msgid "View published project" msgstr "" -#: js/helper.js:150 -msgid "Show fewer tags" +#: planet/js/LocalCard.js:42 +msgid "Publish project" +msgstr "" + +#: planet/js/LocalCard.js:51 +msgid "Edit project" +msgstr "" + +#: planet/js/LocalCard.js:52 +msgid "Delete project" +msgstr "" + +#: planet/js/LocalCard.js:53 +msgid "Download project" +msgstr "" + +#: planet/js/LocalCard.js:55 +msgid "Duplicate project" +msgstr "" + +#: planet/js/ProjectStorage.js:243 +msgid "anonymous" +msgstr "" + +#: planet/js/SaveInterface.js:34 +msgid "Open in Music Blocks" +msgstr "" + +#: planet/js/SaveInterface.js:35 +msgid "Open in Turtle Blocks" +msgstr "" + +#: planet/js/GlobalCard.js:68 +msgid "Share" +msgstr "" + +#: planet/js/GlobalCard.js:74 +msgid "Flags" +msgstr "" + +#: planet/js/GlobalPlanet.js:35 +msgid "No results found." +msgstr "" + +#: planet/js/GlobalPlanet.js:51 +msgid "Remix of" +msgstr "" + +#: planet/js/GlobalPlanet.js:509 +msgid "Cannot connect to server" msgstr "" -#: js/ProjectViewer.js:30 +#: planet/js/ProjectViewer.js:30 msgid "Error: Report could not be submitted. Try again later." msgstr "" -#: js/ProjectViewer.js:31 +#: planet/js/ProjectViewer.js:31 msgid "Thank you for reporting this project. A moderator will review the project shortly, to verify violation of the Sugar Labs Code of Conduct." msgstr "" -#: js/ProjectViewer.js:32 -#: js/StringHelper.js:62 -#: js/StringHelper.js:64 -#: js/StringHelper.js:68 +#: planet/js/ProjectViewer.js:32 +#: planet/js/StringHelper.js:62 +#: planet/js/StringHelper.js:64 +#: planet/js/StringHelper.js:68 msgid "Report Project" msgstr "" -#: js/ProjectViewer.js:33 -#: js/StringHelper.js:63 +#: planet/js/ProjectViewer.js:33 +#: planet/js/StringHelper.js:63 msgid "Project Reported" msgstr "" -#: js/ProjectViewer.js:34 +#: planet/js/ProjectViewer.js:34 msgid "Report description required" msgstr "" -#: js/ProjectViewer.js:35 +#: planet/js/ProjectViewer.js:35 msgid "Report description too long" msgstr "" -#: js/StringHelper.js:30 +#: planet/js/Publisher.js:30 +msgid "Feature unavailable - cannot connect to server. Reload Music Blocks to try again." +msgstr "" + +#: planet/js/Publisher.js:220 +#: planet/js/Publisher.js:237 +msgid "This field is required" +msgstr "" + +#: planet/js/Publisher.js:227 +msgid "Title too long" +msgstr "" + +#: planet/js/Publisher.js:244 +msgid "Description too long" +msgstr "" + +#: planet/js/Publisher.js:341 +msgid "Server Error" +msgstr "" + +#: planet/js/Publisher.js:341 +msgid "Try Again" +msgstr "" + +#: planet/js/StringHelper.js:30 msgid "Planet" msgstr "" -#: js/StringHelper.js:31 +#: planet/js/StringHelper.js:31 msgid "Close Planet" msgstr "" -#: js/StringHelper.js:32 +#: planet/js/StringHelper.js:32 msgid "Open project from file" msgstr "" -#: js/StringHelper.js:34 +#: planet/js/StringHelper.js:34 msgid "Local" msgstr "" -#: js/StringHelper.js:35 +#: planet/js/StringHelper.js:35 msgid "Global" msgstr "" -#: js/StringHelper.js:36 +#: planet/js/StringHelper.js:36 msgid "Search for a project" msgstr "" -#: js/StringHelper.js:38 +#: planet/js/StringHelper.js:38 msgid "Publish Project" msgstr "" -#: js/StringHelper.js:40 +#: planet/js/StringHelper.js:40 msgid "Tags (max 5)" msgstr "" -#: js/StringHelper.js:41 -#: js/StringHelper.js:61 +#: planet/js/StringHelper.js:41 +#: planet/js/StringHelper.js:61 msgid "Description" msgstr "" -#: js/StringHelper.js:42 -#: js/StringHelper.js:67 +#: planet/js/StringHelper.js:42 +#: planet/js/StringHelper.js:67 msgid "Submit" msgstr "" -#: js/StringHelper.js:43 -#: js/StringHelper.js:47 +#: planet/js/StringHelper.js:43 +#: planet/js/StringHelper.js:47 msgid "Cancel" msgstr "" -#: js/StringHelper.js:44 +#: planet/js/StringHelper.js:44 msgid "Delete \\"\\"?" msgstr "" -#: js/StringHelper.js:45 +#: planet/js/StringHelper.js:45 msgid "Permanently delete project \\"\\"?" msgstr "" -#: js/StringHelper.js:48 +#: planet/js/StringHelper.js:48 msgid "Explore Projects" msgstr "" -#: js/StringHelper.js:50 +#: planet/js/StringHelper.js:49 +#: planet/js/helper.js:149 +msgid "Show more tags" +msgstr "" + +#: planet/js/StringHelper.js:50 msgid "Most recent" msgstr "" -#: js/StringHelper.js:51 +#: planet/js/StringHelper.js:51 msgid "Most liked" msgstr "" -#: js/StringHelper.js:52 +#: planet/js/StringHelper.js:52 msgid "Most downloaded" msgstr "" -#: js/StringHelper.js:53 +#: planet/js/StringHelper.js:53 msgid "A-Z" msgstr "" -#: js/StringHelper.js:54 +#: planet/js/StringHelper.js:54 msgid "Sort by" msgstr "" -#: js/StringHelper.js:55 +#: planet/js/StringHelper.js:55 msgid "Load More Projects" msgstr "" -#: js/StringHelper.js:56 +#: planet/js/StringHelper.js:56 msgid "Last Updated" msgstr "" -#: js/StringHelper.js:57 +#: planet/js/StringHelper.js:57 msgid "Creation Date" msgstr "" -#: js/StringHelper.js:58 +#: planet/js/StringHelper.js:58 msgid "Number of Downloads:" msgstr "" -#: js/StringHelper.js:59 +#: planet/js/StringHelper.js:59 msgid "Number of Likes:" msgstr "" -#: js/StringHelper.js:60 +#: planet/js/StringHelper.js:60 msgid "Tags:" msgstr "" -#: js/StringHelper.js:65 +#: planet/js/StringHelper.js:65 msgid "Report projects which violate the Sugar Labs Code of Conduct." msgstr "" -#: js/StringHelper.js:66 +#: planet/js/StringHelper.js:66 msgid "Reason for reporting project" msgstr "" -#: js/StringHelper.js:70 +#: planet/js/StringHelper.js:70 msgid "Download as File" msgstr "" -#: js/GlobalPlanet.js:35 -msgid "No results found." -msgstr "" - -#: js/GlobalPlanet.js:51 -msgid "Remix of" -msgstr "" - -#: js/GlobalPlanet.js:509 -msgid "Cannot connect to server" -msgstr "" - -#: js/Publisher.js:30 -msgid "Feature unavailable - cannot connect to server. Reload Music Blocks to try again." -msgstr "" - -#: js/Publisher.js:218 -#: js/Publisher.js:235 -msgid "This field is required" -msgstr "" - -#: js/Publisher.js:225 -msgid "Title too long" +#: planet/js/helper.js:150 +msgid "Show fewer tags" msgstr "" -#: js/Publisher.js:242 -msgid "Description too long" +#: plugins/accelerometer.rtp:48 +msgid "motion x" msgstr "" -#: js/Publisher.js:339 -msgid "Server Error" +#: plugins/accelerometer.rtp:56 +msgid "motion y" msgstr "" -#: js/Publisher.js:339 -msgid "Try Again" +#: plugins/accelerometer.rtp:64 +msgid "motion z" msgstr "" -#: js/SaveInterface.js:34 -msgid "Open in Music Blocks" +#: plugins/facebook.rtp:27 +msgid "publish" msgstr "" -#: js/SaveInterface.js:35 -msgid "Open in Turtle Blocks" +#: plugins/maths.rtp:62 +msgid "power" msgstr "" -#: plugins/weather.rtp:68 -#: plugins/weather.rtp:97 -msgid "Days ahead must be in the range of -1 to 5." +#: plugins/maths.rtp:62 +msgid "base" msgstr "" -#: plugins/weather.rtp:122 -msgid "forecast" +#: plugins/maths.rtp:62 +msgid "exp" msgstr "" -#: plugins/weather.rtp:123 -#: plugins/weather.rtp:137 -#: plugins/weather.rtp:150 -msgid "city" +#: plugins/maths.rtp:99 +msgid "floor" msgstr "" -#: plugins/weather.rtp:124 -#: plugins/weather.rtp:138 -#: plugins/weather.rtp:151 -msgid "day" +#: plugins/maths.rtp:104 +msgid "ceiling" msgstr "" -#: plugins/weather.rtp:136 -msgid "high" +#: plugins/maths.rtp:109 +msgid "to degrees" msgstr "" -#: plugins/weather.rtp:149 -msgid "low" +#: plugins/maths.rtp:114 +msgid "to radians" msgstr "" #: plugins/nutrition.rtp:104 @@ -9459,45 +9868,6 @@ msgstr "" msgid "water" msgstr "" -#: plugins/maths.rtp:62 -#: plugins/examples.rtp:93 -msgid "power" -msgstr "" - -#: plugins/maths.rtp:62 -#: plugins/examples.rtp:93 -msgid "base" -msgstr "" - -#: plugins/maths.rtp:62 -#: plugins/examples.rtp:93 -msgid "exp" -msgstr "" - -#: plugins/maths.rtp:99 -#: plugins/examples.rtp:130 -msgid "floor" -msgstr "" - -#: plugins/maths.rtp:104 -#: plugins/examples.rtp:135 -msgid "ceiling" -msgstr "" - -#: plugins/maths.rtp:109 -#: plugins/examples.rtp:140 -msgid "to degrees" -msgstr "" - -#: plugins/maths.rtp:114 -#: plugins/examples.rtp:145 -msgid "to radians" -msgstr "" - -#: plugins/facebook.rtp:27 -msgid "publish" -msgstr "" - #: plugins/rodi.rtp:172 msgid "blink" msgstr "" @@ -9526,18 +9896,66 @@ msgstr "" msgid "move" msgstr "" -#: plugins/accelerometer.rtp:48 -msgid "motion x" +#: plugins/weather.rtp:68 +#: plugins/weather.rtp:97 +msgid "Days ahead must be in the range of -1 to 5." msgstr "" -#: plugins/accelerometer.rtp:56 -msgid "motion y" +#: plugins/weather.rtp:122 +msgid "forecast" msgstr "" -#: plugins/accelerometer.rtp:64 -msgid "motion z" +#: plugins/weather.rtp:123 +#: plugins/weather.rtp:137 +#: plugins/weather.rtp:150 +msgid "city" +msgstr "" + +#: plugins/weather.rtp:124 +#: plugins/weather.rtp:138 +#: plugins/weather.rtp:151 +msgid "day" +msgstr "" + +#: plugins/weather.rtp:136 +msgid "high" +msgstr "" + +#: plugins/weather.rtp:149 +msgid "low" msgstr "" +#: js/toolbar.js:70 + +#: js/toolbar.js:130 + +#: js/toolbar.js:194 + +#: js/toolbar.js:249 + +#~msgid "Toggle JavaScript Editor" +#~msgstr "" + +#: js/EnsembleBlocks.js:643 + +#~msgid "The Turrle pitch block returns the current pitch number being played by the specified turtle." +#~msgstr "" + +#: js/PitchActions.js:88 + +#~msgid "The Scalar Step Block must be used inside of a Note Block." +#~msgstr "" + +#: js/PitchActions.js:107 + +#~msgid "The Scalar Step Block must be preceded by a Pitch Block." +#~msgstr "" + +#: js/musickeyboard.js:2840 + +#~msgid "New action blocks generated!" +#~msgstr "" + #: js/toolbar.js:110 #: js/toolbar.js:204 @@ -9878,11 +10296,6 @@ msgstr "" #~msgid "The Time block returns the number of seconds that the program has been running." #~msgstr "" -#: js/help.js:95 - -#~msgid "Take a tour" -#~msgstr "" - #: js/GlobalCard.js:48 #~msgid "More Details" @@ -12781,11 +13194,6 @@ msgstr "" #~msgid "The save-stack button saves a stack onto a custom palette. It appears after a \"long press\" on a stack." #~msgstr "" -#: js/musicutils.js:254 - -#~msgid "Custom" -#~msgstr "" - #: js/basicblocks.js:4785 #~msgid "Rhythm" diff --git a/po/pt.po b/po/pt.po index 60d10780d2..aaf4dec871 100644 --- a/po/pt.po +++ b/po/pt.po @@ -19,690 +19,133 @@ #js/toolbar.js:230 #js/turtledefs.js:504 #js/turtledefs.js:505 -msgid: "Toggle Fullscreen" -msgstr: "Alternar tela cheia" - -#: js/RhythmBlockPaletteBlocks.js:14 -#: js/RhythmBlockPaletteBlocks.js:177 -#: js/RhythmBlockPaletteBlocks.js:14 -#: js/RhythmBlockPaletteBlocks.js:177 -#: js/RhythmBlockPaletteBlocks.js:14 -#: js/RhythmBlockPaletteBlocks.js:177 -#: js/RhythmBlockPaletteBlocks.js:14 -#: js/RhythmBlockPaletteBlocks.js:177 -#: js/RhythmBlockPaletteBlocks.js:14 -#: js/RhythmBlockPaletteBlocks.js:170 -#: js/block.js:1436 -#: js/block.js:7910 -#: js/block.js:7931 -#: js/block.js:7948 -#: js/activity.js:2693 -#: js/palette.js:932 -#: js/palette.js:941 -#: js/palette.js:950 -#: js/palette.js:959 -#: js/palette.js:2511 -#: js/palette.js:2522 -#: js/palette.js:2533 -#: js/palette.js:2544 -#: js/palette.js:2563 -#: js/turtledefs.js:76 -#: js/rubrics.js:497 -#: js/macros.js:153 -#: js/macros.js:249 -#: js/macros.js:250 -#: js/macros.js:259 -#: js/macros.js:801 -#: js/blocks.js:1120 -#: js/blocks.js:3549 -#: js/blocks.js:3550 -#: js/blocks.js:3786 -#: js/blocks.js:4168 -#: js/blocks.js:4363 -#: js/blocks.js:5526 -#: js/blocks.js:6776 -#: js/ActionBlocks.js:99 -#: js/ActionBlocks.js:147 -#: js/ActionBlocks.js:350 -#: js/ActionBlocks.js:415 -#: js/ActionBlocks.js:569 -#: js/ActionBlocks.js:629 -#: js/ActionBlocks.js:765 -#: js/ActionBlocks.js:768 -#: js/ActionBlocks.js:773 -#: js/ActionBlocks.js:805 -#: js/MeterBlocks.js:412 -#: js/MeterBlocks.js:479 -#: js/MeterBlocks.js:568 -#: js/MeterBlocks.js:669 -#: js/musickeyboard.js:2360 -#: js/pitchtimematrix.js:4708 -#: js/rhythmruler.js:1602 -#: js/rhythmruler.js:1610 -#: js/rhythmruler.js:1911 -#: js/rhythmruler.js:1919 -#: js/block.js:1436 -#: js/block.js:8089 -#: js/block.js:8110 -#: js/block.js:8127 -#: js/activity.js:2968 -#: js/palette.js:503 -#: js/palette.js:512 -#: js/palette.js:521 -#: js/palette.js:530 -#: js/palette.js:1122 -#: js/palette.js:1133 -#: js/palette.js:1144 -#: js/palette.js:1155 -#: js/palette.js:1174 -#: js/turtledefs.js:76 -#: js/rubrics.js:497 -#: js/macros.js:153 -#: js/macros.js:249 -#: js/macros.js:250 -#: js/macros.js:259 -#: js/macros.js:801 -#: js/blocks.js:1120 -#: js/blocks.js:3572 -#: js/blocks.js:3573 -#: js/blocks.js:3809 -#: js/blocks.js:4191 -#: js/blocks.js:4382 -#: js/blocks.js:5545 -#: js/blocks.js:6795 -#: js/ActionBlocks.js:99 -#: js/ActionBlocks.js:147 -#: js/ActionBlocks.js:343 -#: js/ActionBlocks.js:408 -#: js/ActionBlocks.js:562 -#: js/ActionBlocks.js:622 -#: js/ActionBlocks.js:749 -#: js/ActionBlocks.js:752 -#: js/ActionBlocks.js:757 -#: js/ActionBlocks.js:789 -#: js/MeterBlocks.js:390 -#: js/MeterBlocks.js:419 -#: js/MeterBlocks.js:455 -#: js/MeterBlocks.js:494 -#: js/musickeyboard.js:2421 -#: js/pitchtimematrix.js:4706 -#: js/rhythmruler.js:1602 -#: js/rhythmruler.js:1610 -#: js/rhythmruler.js:1911 -#: js/rhythmruler.js:1919 -#: js/block.js:1436 -#: js/block.js:8073 -#: js/block.js:8094 -#: js/block.js:8111 -#: js/activity.js:2984 -#: js/palette.js:503 -#: js/palette.js:512 -#: js/palette.js:521 -#: js/palette.js:530 -#: js/palette.js:1122 -#: js/palette.js:1133 -#: js/palette.js:1144 -#: js/palette.js:1155 -#: js/palette.js:1174 -#: js/turtledefs.js:78 -#: js/rubrics.js:501 -#: js/macros.js:153 -#: js/macros.js:249 -#: js/macros.js:250 -#: js/macros.js:259 -#: js/macros.js:801 -#: js/blocks.js:1112 -#: js/blocks.js:3545 -#: js/blocks.js:3546 -#: js/blocks.js:3779 -#: js/blocks.js:4160 -#: js/blocks.js:4346 -#: js/blocks.js:5496 -#: js/blocks.js:6721 -#: js/ActionBlocks.js:99 -#: js/ActionBlocks.js:147 -#: js/ActionBlocks.js:343 -#: js/ActionBlocks.js:408 -#: js/ActionBlocks.js:562 -#: js/ActionBlocks.js:622 -#: js/ActionBlocks.js:750 -#: js/ActionBlocks.js:753 -#: js/ActionBlocks.js:758 -#: js/ActionBlocks.js:790 -#: js/MeterBlocks.js:396 -#: js/MeterBlocks.js:425 -#: js/MeterBlocks.js:461 -#: js/MeterBlocks.js:500 -#: js/musickeyboard.js:2495 -#: js/pitchtimematrix.js:4718 -#: js/rhythmruler.js:1602 -#: js/rhythmruler.js:1610 -#: js/rhythmruler.js:1911 -#: js/rhythmruler.js:1919 -#: js/block.js:1436 -#: js/block.js:8073 -#: js/block.js:8094 -#: js/block.js:8111 -#: js/activity.js:2984 -#: js/palette.js:503 -#: js/palette.js:512 -#: js/palette.js:521 -#: js/palette.js:530 -#: js/palette.js:1122 -#: js/palette.js:1133 -#: js/palette.js:1144 -#: js/palette.js:1155 -#: js/palette.js:1174 -#: js/turtledefs.js:78 -#: js/rubrics.js:501 -#: js/macros.js:153 -#: js/macros.js:249 -#: js/macros.js:250 -#: js/macros.js:259 -#: js/macros.js:801 -#: js/blocks.js:1112 -#: js/blocks.js:3545 -#: js/blocks.js:3546 -#: js/blocks.js:3779 -#: js/blocks.js:4160 -#: js/blocks.js:4346 -#: js/blocks.js:5496 -#: js/blocks.js:6721 -#: js/ActionBlocks.js:99 -#: js/ActionBlocks.js:147 -#: js/ActionBlocks.js:343 -#: js/ActionBlocks.js:408 -#: js/ActionBlocks.js:562 -#: js/ActionBlocks.js:622 -#: js/ActionBlocks.js:750 -#: js/ActionBlocks.js:753 -#: js/ActionBlocks.js:758 -#: js/ActionBlocks.js:790 -#: js/MeterBlocks.js:396 -#: js/MeterBlocks.js:425 -#: js/MeterBlocks.js:461 -#: js/MeterBlocks.js:500 -#: js/musickeyboard.js:2495 -#: js/pitchtimematrix.js:4718 -#: js/rhythmruler.js:1602 -#: js/rhythmruler.js:1610 -#: js/rhythmruler.js:1911 -#: js/rhythmruler.js:1919 -#: js/block.js:1436 -#: js/block.js:8073 -#: js/block.js:8094 -#: js/block.js:8111 -#: js/activity.js:2984 -#: js/palette.js:506 -#: js/palette.js:515 -#: js/palette.js:524 -#: js/palette.js:533 -#: js/palette.js:1128 -#: js/palette.js:1139 -#: js/palette.js:1150 -#: js/palette.js:1161 -#: js/palette.js:1180 -#: js/turtledefs.js:78 -#: js/rubrics.js:501 -#: js/macros.js:153 -#: js/macros.js:249 -#: js/macros.js:250 -#: js/macros.js:259 -#: js/macros.js:801 -#: js/blocks.js:1112 -#: js/blocks.js:3545 -#: js/blocks.js:3546 -#: js/blocks.js:3779 -#: js/blocks.js:4160 -#: js/blocks.js:4346 -#: js/blocks.js:5496 -#: js/blocks.js:6721 -#: js/ActionBlocks.js:99 -#: js/ActionBlocks.js:147 -#: js/ActionBlocks.js:343 -#: js/ActionBlocks.js:408 -#: js/ActionBlocks.js:562 -#: js/ActionBlocks.js:622 -#: js/ActionBlocks.js:750 -#: js/ActionBlocks.js:753 -#: js/ActionBlocks.js:758 -#: js/ActionBlocks.js:790 -#: js/MeterBlocks.js:396 -#: js/MeterBlocks.js:425 -#: js/MeterBlocks.js:461 -#: js/MeterBlocks.js:500 -#: js/musickeyboard.js:2495 -#: js/pitchtimematrix.js:4718 -#: js/rhythmruler.js:1602 -#: js/rhythmruler.js:1610 -#: js/rhythmruler.js:1911 -#: js/rhythmruler.js:1919 -#: js/block.js:1414 -#: js/block.js:4018 -#: js/block.js:4036 -#: js/block.js:4047 -#: js/activity.js:2899 -#: js/palette.js:486 -#: js/palette.js:495 -#: js/palette.js:504 -#: js/palette.js:513 -#: js/palette.js:1089 -#: js/palette.js:1100 -#: js/palette.js:1111 -#: js/palette.js:1122 -#: js/palette.js:1141 -#: js/turtledefs.js:78 -#: js/rubrics.js:501 -#: js/macros.js:170 -#: js/macros.js:266 -#: js/macros.js:267 -#: js/macros.js:276 -#: js/macros.js:828 -#: js/blocks.js:1071 -#: js/blocks.js:3210 -#: js/blocks.js:3211 -#: js/blocks.js:3428 -#: js/blocks.js:3752 -#: js/blocks.js:3932 -#: js/blocks.js:4976 -#: js/blocks.js:5845 -#: js/ActionBlocks.js:99 -#: js/ActionBlocks.js:147 -#: js/ActionBlocks.js:343 -#: js/ActionBlocks.js:408 -#: js/ActionBlocks.js:562 -#: js/ActionBlocks.js:622 -#: js/ActionBlocks.js:750 -#: js/ActionBlocks.js:753 -#: js/ActionBlocks.js:758 -#: js/ActionBlocks.js:790 -#: js/MeterBlocks.js:396 -#: js/MeterBlocks.js:426 -#: js/MeterBlocks.js:462 -#: js/MeterBlocks.js:501 -#: js/musickeyboard.js:2495 -#: js/rhythmruler.js:1874 -#: js/rhythmruler.js:1881 -#: js/rhythmruler.js:2065 -#: js/rhythmruler.js:2072 -#: js/phrasemaker.js:4226 -#: js/block.js:1414 -#: js/block.js:4020 -#: js/block.js:4038 -#: js/block.js:4049 -#: js/activity.js:2899 -#: js/palette.js:486 -#: js/palette.js:495 -#: js/palette.js:504 -#: js/palette.js:513 -#: js/palette.js:1089 -#: js/palette.js:1100 -#: js/palette.js:1111 -#: js/palette.js:1122 -#: js/palette.js:1141 -#: js/turtledefs.js:78 -#: js/rubrics.js:501 -#: js/macros.js:170 -#: js/macros.js:266 -#: js/macros.js:267 -#: js/macros.js:276 -#: js/macros.js:828 -#: js/blocks.js:1071 -#: js/blocks.js:3210 -#: js/blocks.js:3211 -#: js/blocks.js:3428 -#: js/blocks.js:3752 -#: js/blocks.js:3932 -#: js/blocks.js:4976 -#: js/blocks.js:5845 -#: js/ActionBlocks.js:99 -#: js/ActionBlocks.js:147 -#: js/ActionBlocks.js:343 -#: js/ActionBlocks.js:408 -#: js/ActionBlocks.js:562 -#: js/ActionBlocks.js:622 -#: js/ActionBlocks.js:750 -#: js/ActionBlocks.js:753 -#: js/ActionBlocks.js:758 -#: js/ActionBlocks.js:790 -#: js/MeterBlocks.js:396 -#: js/MeterBlocks.js:426 -#: js/MeterBlocks.js:462 -#: js/MeterBlocks.js:501 -#: js/musickeyboard.js:2495 -#: js/rhythmruler.js:1874 -#: js/rhythmruler.js:1881 -#: js/rhythmruler.js:2065 -#: js/rhythmruler.js:2072 -#: js/phrasemaker.js:4226 -#: js/block.js:1439 -#: js/block.js:4063 -#: js/block.js:4081 -#: js/block.js:4092 -#: js/palette.js:505 -#: js/palette.js:514 -#: js/palette.js:523 -#: js/palette.js:532 -#: js/palette.js:1125 -#: js/palette.js:1136 -#: js/palette.js:1147 -#: js/palette.js:1158 -#: js/palette.js:1177 -#: js/turtledefs.js:101 -#: js/rubrics.js:522 -#: js/macros.js:168 -#: js/macros.js:264 -#: js/macros.js:265 -#: js/macros.js:274 -#: js/macros.js:826 -#: js/blocks.js:1001 -#: js/blocks.js:3394 -#: js/blocks.js:3395 -#: js/blocks.js:3620 -#: js/blocks.js:3981 -#: js/blocks.js:4172 -#: js/blocks.js:5305 -#: js/blocks.js:6432 -#: js/ActionBlocks.js:119 -#: js/ActionBlocks.js:167 -#: js/ActionBlocks.js:364 -#: js/ActionBlocks.js:429 -#: js/ActionBlocks.js:582 -#: js/ActionBlocks.js:643 -#: js/ActionBlocks.js:772 -#: js/ActionBlocks.js:775 -#: js/ActionBlocks.js:780 -#: js/ActionBlocks.js:813 -#: js/MeterBlocks.js:416 -#: js/MeterBlocks.js:446 -#: js/MeterBlocks.js:482 -#: js/MeterBlocks.js:521 -#: js/musickeyboard.js:2564 -#: js/rhythmruler.js:1925 -#: js/rhythmruler.js:1932 -#: js/rhythmruler.js:2116 -#: js/rhythmruler.js:2123 -#: js/phrasemaker.js:4402 -#: js/planetInterface.js:101 -#: js/planetInterface.js:101 -#: js/planetInterface.js:101 -#: js/planetInterface.js:101 -#: js/planetInterface.js:102 -#: js/planetInterface.js:104 -#: js/planetInterface.js:104 -#: js/planetInterface.js:104 -msgid "project undefined" -msgstr "projeto indefinido" - -#: js/logo.js:61 -msgid "Not a valid pitch name" -msgstr "Não é um nome de nota válido" - -#: js/logo.js:507 -#: js/ProgramBlocks.js:258 -#: js/ProgramBlocks.js:427 -msgid "You must select a file." -msgstr "Você deve selecionar um arquivo." - -#: js/logo.js:1184 -#: js/turtles.js:118 -#: js/turtle-painter.js:1192 -#: js/turtle-painter.js:1193 -#: js/block.js:1463 -#: js/lilypond.js:757 -#: js/lilypond.js:921 -#: js/lilypond.js:959 -#: js/ActionBlocks.js:1223 -#: js/ProgramBlocks.js:1267 -msgid "start" -msgstr "iniciar" - -#: js/logo.js:1696 -msgid "Playback is ready." -msgstr "Tocador está pronto" +#: js/SaveInterface.js:59 +#: js/SaveInterface.js:61 +#: js/SaveInterface.js:93 +msgid "Music Blocks Project" +msgstr "Projeto Music Blocks" -#: js/blocks.js:1011 -#: js/blocks.js:3427 -#: js/blocks.js:3428 -#: js/blocks.js:3653 -#: js/blocks.js:4012 -#: js/blocks.js:4205 -#: js/blocks.js:5343 -#: js/blocks.js:6474 -#: js/palette.js:527 -#: js/palette.js:536 -#: js/palette.js:545 -#: js/palette.js:554 -#: js/palette.js:1131 -#: js/palette.js:1142 -#: js/palette.js:1153 -#: js/palette.js:1164 -#: js/palette.js:1183 -#: js/rubrics.js:529 -#: js/macros.js:170 -#: js/macros.js:266 -#: js/macros.js:267 -#: js/macros.js:276 -#: js/macros.js:828 -#: js/block.js:1449 -#: js/block.js:4164 -#: js/block.js:4182 -#: js/block.js:4193 -#: js/turtledefs.js:128 -#: js/turtledefs.js:230 -#: js/ActionBlocks.js:254 -#: js/ActionBlocks.js:307 -#: js/ActionBlocks.js:617 -#: js/ActionBlocks.js:716 -#: js/ActionBlocks.js:961 -#: js/ActionBlocks.js:1049 -#: js/ActionBlocks.js:1322 -#: js/ActionBlocks.js:1325 -#: js/ActionBlocks.js:1337 -#: js/ActionBlocks.js:1404 -#: js/MeterBlocks.js:715 -#: js/MeterBlocks.js:768 -#: js/MeterBlocks.js:831 -#: js/MeterBlocks.js:892 -#: js/phrasemaker.js:4412 -#: js/musickeyboard.js:2647 -#: js/rhythmruler.js:1928 -#: js/rhythmruler.js:1935 -#: js/rhythmruler.js:2119 -#: js/rhythmruler.js:2126 -msgid "action" -msgstr "ação" +#: js/SaveInterface.js:63 +msgid "This project was created in Music Blocks" +msgstr "Este projeto foi criado no Music Blocks" -#: js/blocks.js:1205 -#: js/blocks.js:3380 -#: js/blocks.js:3770 -#: js/blocks.js:3801 -#: js/blocks.js:3850 -#: js/blocks.js:3885 -#: js/blocks.js:6497 -#: js/palette.js:509 -#: js/palette.js:638 -#: js/palette.js:1107 -#: js/BoxesBlocks.js:282 -#: js/BoxesBlocks.js:285 -#: js/BoxesBlocks.js:405 -#: js/BoxesBlocks.js:594 -msgid "box" -msgstr "caixa" +#: js/SaveInterface.js:67 +msgid "Music Blocks is a Free/Libre Software application." +msgstr "O Music Blocks é Software Livre e gratuito." -#: js/blocks.js:1680 -msgid "Consider breaking this stack into parts." -msgstr "Considere dividir essa pilha em partes." +#: js/SaveInterface.js:69 +msgid "The source code can be accessed at" +msgstr "O código fonte pode ser acessado em " -#: js/blocks.js:2408 -#: js/palette.js:653 -#: js/MediaBlocks.js:602 -msgid "open file" -msgstr "abrir arquivo" +#: js/SaveInterface.js:72 +msgid "For more information, please consult the" +msgstr "Para mais informações, consulte por favor " -#: js/blocks.js:2415 -#: js/blocks.js:2423 -#: js/activity.js:1875 -msgid "audio file" -msgstr "" +#: js/SaveInterface.js:76 +#: js/turtledefs.js:795 +msgid "Music Blocks Guide" +msgstr "Guia do Music Blocks" -#: js/blocks.js:2536 -#: js/blocks.js:3147 -#: js/block.js:3543 -msgid "on2" -msgstr "" +#: js/SaveInterface.js:83 +msgid "Alternatively, open the file in Music Blocks using the Load project button." +msgstr "Alternativamente, abra o arquivo no Music Blocks usando o botão Carregar projeto" -#: js/blocks.js:2538 -#: js/blocks.js:3149 -#: js/block.js:3545 -msgid "off" -msgstr "" +#: js/SaveInterface.js:85 +msgid "Project Code" +msgstr "Código do Projeto" -#: js/blocks.js:2543 -#: js/blocks.js:3154 -#: js/palette.js:618 -#: js/block.js:3466 -#: js/BooleanBlocks.js:77 -#: js/BooleanBlocks.js:167 -#: js/BooleanBlocks.js:251 -#: js/BooleanBlocks.js:335 -#: js/BooleanBlocks.js:433 -#: js/BooleanBlocks.js:539 -#: js/BooleanBlocks.js:640 -#: js/BooleanBlocks.js:741 -#: js/BooleanBlocks.js:847 -#: js/BooleanBlocks.js:948 -#: js/BooleanBlocks.js:1033 -#: js/SensorsBlocks.js:910 -msgid "true" -msgstr "verdadeiro" +#: js/SaveInterface.js:87 +msgid "This code stores data about the blocks in a project." +msgstr "Este código contém dados sobre os blocos de um projeto." -#: js/blocks.js:2545 -#: js/blocks.js:3156 -#: js/block.js:3466 -#: js/BooleanBlocks.js:79 -#: js/BooleanBlocks.js:169 -#: js/BooleanBlocks.js:253 -#: js/BooleanBlocks.js:337 -#: js/BooleanBlocks.js:435 -#: js/BooleanBlocks.js:541 -#: js/BooleanBlocks.js:642 -#: js/BooleanBlocks.js:743 -#: js/BooleanBlocks.js:849 -#: js/BooleanBlocks.js:950 -#: js/SensorsBlocks.js:912 -msgid "false" -msgstr "falso" +#: js/SaveInterface.js:89 +msgid "Show" +msgstr "Mostrar" -#: js/blocks.js:3183 -#: js/palette.js:574 -#: js/MediaBlocks.js:892 -#: js/MediaBlocks.js:963 -msgid "text" -msgstr "texto" +#: js/SaveInterface.js:91 +msgid "Hide" +msgstr "Ocultar" -#: js/blocks.js:3379 -#: js/palette.js:641 -#: js/palette.js:642 -#: js/BoxesBlocks.js:514 -msgid "store in box" -msgstr "guardar na caixa" +#: js/SaveInterface.js:131 +#: js/SaveInterface.js:204 +#: js/SaveInterface.js:262 +#: js/SaveInterface.js:389 +#: js/SaveInterface.js:417 +#: js/activity.js:4884 +#: planet/js/ProjectStorage.js:27 +#: planet/js/GlobalPlanet.js:467 +#: planet/js/GlobalPlanet.js:469 +#: planet/js/GlobalPlanet.js:495 +#.TRANS: default project title when saving as Lilypond +msgid "My Project" +msgstr "Meu projeto" -#: js/blocks.js:3384 -#: js/blocks.js:3824 -#: js/blocks.js:3859 -#: js/blocks.js:3894 -#: js/blocks.js:5773 -#: js/blocks.js:5794 -#: js/BoxesBlocks.js:772 -msgid "box1" -msgstr "caixa1" +#: js/SaveInterface.js:197 +#: planet/js/SaveInterface.js:58 +msgid "No description provided" +msgstr "Sem descrição fornecida" -#: js/blocks.js:3386 -#: js/blocks.js:3826 -#: js/blocks.js:3861 -#: js/blocks.js:3896 -#: js/blocks.js:5775 -#: js/blocks.js:5796 -#: js/BoxesBlocks.js:663 -msgid "box2" -msgstr "caixa2" +#: js/SaveInterface.js:332 +msgid "Your recording is in progress." +msgstr "" -#: js/blocks.js:4058 -#: js/palette.js:639 -#: js/palette.js:644 -#: js/palette.js:1043 -#: js/BoxesBlocks.js:591 -msgid "store in" -msgstr "guardar em" +#: js/SaveInterface.js:401 +#.TRANS: File name prompt for save as Lilypond +msgid "File name" +msgstr "Nome do arquivo" -#: js/blocks.js:4058 -#: js/EnsembleBlocks.js:391 -#: js/EnsembleBlocks.js:402 -#: js/MediaBlocks.js:746 -#: js/ProgramBlocks.js:390 -#: js/ProgramBlocks.js:495 -#: js/ProgramBlocks.js:658 -#: js/BoxesBlocks.js:595 -#: js/PitchBlocks.js:656 -#: js/PitchBlocks.js:932 -#: js/PitchBlocks.js:1827 -#: js/ToneBlocks.js:1025 -#: js/DictBlocks.js:215 -#: js/DictBlocks.js:289 -msgid "name" -msgstr "nome" +#: js/SaveInterface.js:403 +#: planet/js/StringHelper.js:39 +#.TRANS: Project title prompt for save as Lilypond +msgid "Project title" +msgstr "Título do projeto" -#: js/blocks.js:4058 -#: js/RhythmBlocks.js:1130 -#: js/BoxesBlocks.js:75 -#: js/BoxesBlocks.js:595 -#: js/HeapBlocks.js:544 -#: js/DictBlocks.js:289 -#: js/DictBlocks.js:430 -msgid "value" -msgstr "valor" +#: js/SaveInterface.js:405 +#.TRANS: Project title prompt for save as Lilypond +msgid "Project author" +msgstr "Autor do projeto" -#: js/blocks.js:4907 -msgid "There is no block selected." -msgstr "Não há bloco selecionado." +#: js/SaveInterface.js:407 +#.TRANS: MIDI prompt for save as Lilypond +msgid "Include MIDI output?" +msgstr "Incluir saida de MIDI?" -#: js/blocks.js:5002 -#: js/MediaBlocks.js:888 -msgid "show" -msgstr "mostrar" +#: js/SaveInterface.js:409 +#.TRANS: Guitar prompt for save as Lilypond +msgid "Include guitar tablature output?" +msgstr "Incluir saida de tablatura de guitarra?" -#: js/blocks.js:5005 -#: js/MediaBlocks.js:803 -#.TRANS: Avatar is the image used to determine the appearance of the mouse. -msgid "avatar" -msgstr "avatar" +#: js/SaveInterface.js:411 +#.TRANS: Lilypond is a scripting language for generating sheet music +msgid "Save as Lilypond" +msgstr "Salvar como Lilypond" -#: js/blocks.js:5008 -#: js/ToneBlocks.js:1010 -#: js/sampler.js:693 -#.TRANS: The sound sample that the user uploads. -msgid "sample" -msgstr "" +#: js/SaveInterface.js:426 +#: js/blocks/EnsembleBlocks.js:75 +#: js/blocks/EnsembleBlocks.js:154 +#: js/blocks/EnsembleBlocks.js:216 +#: js/blocks/EnsembleBlocks.js:302 +#: js/blocks/EnsembleBlocks.js:348 +#: js/blocks/EnsembleBlocks.js:389 +#: js/blocks/EnsembleBlocks.js:441 +#: js/blocks/EnsembleBlocks.js:490 +#: js/blocks/EnsembleBlocks.js:536 +#: js/blocks/EnsembleBlocks.js:583 +#: js/blocks/EnsembleBlocks.js:637 +#: js/blocks/EnsembleBlocks.js:753 +#: js/blocks/EnsembleBlocks.js:840 +#: js/blocks/EnsembleBlocks.js:899 +#: js/blocks/EnsembleBlocks.js:942 +#: js/blocks/EnsembleBlocks.js:1212 +#: js/blocks/EnsembleBlocks.js:1280 +#.TRANS: default project author when saving as Lilypond +msgid "Mr. Mouse" +msgstr "Sr. Ratinho" -#: js/turtles.js:874 -msgid "Grid" +#: js/SaveInterface.js:573 +msgid "The Lilypond code is copied to clipboard. You can paste it here: " msgstr "" -#: js/turtles.js:891 -#: js/turtledefs.js:626 -msgid "Clean" -msgstr "Limpar" - -#: js/turtles.js:912 -#: js/turtledefs.js:632 -msgid "Collapse" -msgstr "Recolher" - -#: js/turtles.js:940 -msgid "Expand" -msgstr "Expandir" - #: js/languagebox.js:198 msgid "Refresh your browser to change your language preference." msgstr "Atualize a página do seu navegador para mudar as preferências de idioma" @@ -711,6934 +154,7488 @@ msgstr "Atualize a página do seu navegador para mudar as preferências de idiom msgid "Music Blocks is already set to this language." msgstr "O Music Blocks já está configurado para este idioma." -#: js/piemenus.js:200 -#: js/musicutils.js:808 -#: js/musicutils.js:824 -#: js/phrasemaker.js:1672 -#: js/musickeyboard.js:2041 -#: js/sampler.js:544 -#.TRANS: double sharp is a music term related to pitch -msgid "double sharp" -msgstr "afinação dupla" +#: js/planetInterface.js:131 +msgid "project undefined" +msgstr "projeto indefinido" -#: js/piemenus.js:201 -#: js/PitchBlocks.js:1510 -#: js/PitchActions.js:580 -#: js/musicutils.js:806 -#: js/musicutils.js:825 -#: js/phrasemaker.js:1673 -#: js/musickeyboard.js:2042 -#: js/sampler.js:545 -#.TRANS: sharp is a half-step up in pitch -#.TRANS: sharp is a music term related to pitch -msgid "sharp" -msgstr "afinado" +#: js/rubrics.js:523 +#: js/turtledefs.js:119 +#: js/turtledefs.js:221 +#: js/blocks/RhythmBlockPaletteBlocks.js:52 +#: js/blocks/RhythmBlockPaletteBlocks.js:234 +#: js/blocks/ProgramBlocks.js:745 +#: js/widgets/rhythmruler.js:2057 +#: js/widgets/rhythmruler.js:2064 +#: js/widgets/rhythmruler.js:2133 +#: js/widgets/rhythmruler.js:2140 +#: js/widgets/rhythmruler.js:2219 +#.TRANS: an arrangement of notes based on duration +msgid "rhythm" +msgstr "Ritmo" -#: js/piemenus.js:202 -#: js/musicutils.js:804 -#: js/musicutils.js:826 -#: js/phrasemaker.js:1674 -#: js/musickeyboard.js:2043 -#: js/sampler.js:546 -#.TRANS: natural is a music term related to pitch -msgid "natural" -msgstr "natural" +#: js/rubrics.js:524 +#: js/turtledefs.js:121 +#: js/turtledefs.js:223 +#: js/block-verbose.js:2622 +#: js/block.js:2550 +#: js/blocks/IntervalsBlocks.js:63 +#: js/blocks/SensorsBlocks.js:178 +#: js/blocks/PitchBlocks.js:1839 +#: js/blocks/PitchBlocks.js:1853 +#: js/widgets/musickeyboard.js:1935 +#: js/widgets/phrasemaker.js:1036 +#.TRANS: pitch number +#.TRANS: pitch number +#.TRANS: we specify pitch in terms of a name and an octave. The name can be CDEFGAB or Do Re Mi Fa Sol La Ti. Octave is a number between 1 and 8. +msgid "pitch" +msgstr "determinar o tom" -#: js/piemenus.js:203 -#: js/PitchBlocks.js:1469 -#: js/PitchActions.js:583 -#: js/musicutils.js:802 -#: js/musicutils.js:827 -#: js/phrasemaker.js:1675 -#: js/musickeyboard.js:2044 -#: js/sampler.js:547 -#.TRANS: flat is a half-step down in pitch -#.TRANS: flat is a music term related to pitch -msgid "flat" -msgstr "plano" +#: js/rubrics.js:525 +#: js/turtledefs.js:123 +#: js/turtledefs.js:225 +msgid "tone" +msgstr "tom" -#: js/piemenus.js:204 -#: js/musicutils.js:800 -#: js/musicutils.js:828 -#: js/phrasemaker.js:1676 -#: js/musickeyboard.js:2045 -#: js/sampler.js:548 -#.TRANS: double flat is a music term related to pitch -msgid "double flat" -msgstr "plano duplo" +#: js/rubrics.js:526 +#: js/lilypond.js:605 +#: js/lilypond.js:904 +#: js/lilypond.js:910 +#: js/lilypond.js:948 +msgid "mouse" +msgstr "ratinho" -#: js/piemenus.js:2861 -#: js/PitchBlocks.js:1357 -#: js/musicutils.js:627 -#.TRANS: unison means the note is the same as the current note -#.TRANS: unison is a music term related to intervals -msgid "unison" -msgstr "unisom" +#: js/rubrics.js:527 +#: js/turtledefs.js:132 +#: js/turtledefs.js:234 +#: js/widgets/phrasemaker.js:1040 +msgid "pen" +msgstr "caneta" -#: js/piemenus.js:3015 -#: js/piemenus.js:3088 -#: js/musicutils.js:635 -#: js/musicutils.js:810 -#: js/musicutils.js:912 -#.TRANS: major is a music term related to intervals and mode -msgid "major" -msgstr "maior" - -#: js/piemenus.js:3015 -#: js/piemenus.js:3088 -#: js/musicutils.js:653 -#.TRANS: modal scale for music -msgid "ionian" -msgstr "ioniano" - -#: js/piemenus.js:3017 -#: js/piemenus.js:3092 -#: js/musicutils.js:633 -#: js/musicutils.js:811 -#: js/musicutils.js:909 -#.TRANS: minor is a music term related to intervals and mode -msgid "minor" -msgstr "menor" - -#: js/piemenus.js:3017 -#: js/piemenus.js:3092 -#: js/musicutils.js:663 -#.TRANS: modal scale for music -msgid "aeolian" -msgstr "aeoliano" - -#: js/piemenus.js:3407 -msgid "Duplicate" -msgstr "" - -#: js/piemenus.js:3408 -#: js/turtledefs.js:534 -msgid "Extract" -msgstr "Extrair" - -#: js/piemenus.js:3409 -msgid "Move to trash" -msgstr "Mover para a lixeira" - -#: js/piemenus.js:3410 -#: js/timbre.js:968 -#: js/StringHelper.js:69 -msgid "Close" -msgstr "Fechar" - -#: js/piemenus.js:3416 -msgid "Save stack" -msgstr "Salvar pilha" - -#: js/piemenus.js:3420 -#: js/toolbar.js:60 -#: js/toolbar.js:120 -#: js/toolbar.js:185 -#: js/toolbar.js:240 -#: js/turtledefs.js:752 -msgid "Help" -msgstr "Ajuda" - -#: js/piemenus.js:3762 -msgid "You have chosen key " -msgstr "" - -#: js/piemenus.js:3766 -msgid " for your pitch preview." -msgstr "" - -#: js/palette.js:571 -msgid "grid" -msgstr "" - -#: js/palette.js:577 -#: js/block.js:1540 -#: js/block.js:2343 -#: js/turtledefs.js:126 -#: js/turtledefs.js:228 -#: js/lilypond.js:740 -#: js/lilypond.js:905 -#: js/lilypond.js:949 -#: js/DrumBlocks.js:486 -#: js/RhythmBlocks.js:766 -#: js/VolumeBlocks.js:502 -#: js/phrasemaker.js:823 -msgid "drum" -msgstr "bateria" - -#: js/palette.js:580 -msgid "effect" -msgstr "efeito" - -#: js/palette.js:586 -msgid "sargam" -msgstr "" - -#: js/palette.js:589 -#: js/activity.js:1833 -#: js/RhythmBlocks.js:923 -#: js/PitchBlocks.js:442 -#: js/PitchBlocks.js:1748 -#.TRANS: a numeric mapping of the notes in an octave based on the musical mode -msgid "scale degree" -msgstr "escala de graus" - -#: js/palette.js:592 -#: js/activity.js:1860 -msgid "mode name" -msgstr "nome do modo" - -#: js/palette.js:595 -#: js/activity.js:1839 -msgid "invert mode" -msgstr "modo inverso" - -#: js/palette.js:598 -#: js/activity.js:1836 -msgid "voice name" -msgstr "nome da voz" - -#: js/palette.js:601 -#: js/PitchBlocks.js:1181 -msgid "custom pitch" -msgstr "tom personalizado" - -#: js/palette.js:605 -#: js/block.js:1456 -#: js/block.js:1575 -#: js/WidgetBlocks.js:218 -#: js/IntervalsBlocks.js:63 -msgid "temperament" -msgstr "temperamento" - -#: js/palette.js:609 -msgid "accidental" -msgstr "acidental" - -#: js/palette.js:615 -#: js/activity.js:1866 -msgid "interval name" -msgstr "nome do intervalo" - -#: js/palette.js:633 -#: js/PitchBlocks.js:405 -msgid "pitch converter" -msgstr "" - -#: js/rubrics.js:522 -#: js/turtledefs.js:119 -#: js/turtledefs.js:221 -#: js/RhythmBlockPaletteBlocks.js:52 -#: js/RhythmBlockPaletteBlocks.js:233 -#: js/ProgramBlocks.js:745 -#: js/rhythmruler.js:1670 -#: js/rhythmruler.js:1677 -#: js/rhythmruler.js:1745 -#: js/rhythmruler.js:1752 -#: js/rhythmruler.js:1830 -#.TRANS: an arrangement of notes based on duration -msgid "rhythm" -msgstr "Ritmo" - -#: js/rubrics.js:523 -#: js/block.js:2339 -#: js/turtledefs.js:121 -#: js/turtledefs.js:223 -#: js/IntervalsBlocks.js:63 -#: js/PitchBlocks.js:1801 -#: js/PitchBlocks.js:1814 -#: js/SensorsBlocks.js:178 -#: js/phrasemaker.js:821 -#: js/musickeyboard.js:1653 -#.TRANS: pitch number -#.TRANS: we specify pitch in terms of a name and an octave. The name can be CDEFGAB or Do Re Mi Fa Sol La Ti. Octave is a number between 1 and 8. -msgid "pitch" -msgstr "determinar o tom" - -#: js/rubrics.js:524 -#: js/turtledefs.js:123 -#: js/turtledefs.js:225 -msgid "tone" -msgstr "tom" - -#: js/rubrics.js:525 -#: js/lilypond.js:613 -#: js/lilypond.js:912 -#: js/lilypond.js:918 -#: js/lilypond.js:956 -msgid "mouse" -msgstr "ratinho" - -#: js/rubrics.js:526 -#: js/turtledefs.js:132 -#: js/turtledefs.js:234 -#: js/phrasemaker.js:825 -msgid "pen" -msgstr "caneta" - -#: js/rubrics.js:527 +#: js/rubrics.js:528 #: js/turtledefs.js:133 #: js/turtledefs.js:235 -#: js/NumberBlocks.js:905 -#: js/PitchBlocks.js:1679 -#: js/PitchBlocks.js:1720 +#: js/blocks/NumberBlocks.js:981 +#: js/blocks/PitchBlocks.js:1717 +#: js/blocks/PitchBlocks.js:1758 msgid "number" msgstr "número" -#: js/rubrics.js:528 +#: js/rubrics.js:529 #: js/turtledefs.js:127 #: js/turtledefs.js:229 msgid "flow" msgstr "seguimento" #: js/rubrics.js:530 +#: js/turtledefs.js:128 +#: js/turtledefs.js:230 +#: js/block-verbose.js:1609 +#: js/block-verbose.js:4559 +#: js/block-verbose.js:4577 +#: js/block-verbose.js:4588 +#: js/block.js:1573 +#: js/block.js:4483 +#: js/block.js:4501 +#: js/block.js:4512 +#: js/blocks.js:1018 +#: js/blocks.js:3491 +#: js/blocks.js:3492 +#: js/blocks.js:3717 +#: js/blocks.js:4076 +#: js/blocks.js:4269 +#: js/blocks.js:5432 +#: js/blocks.js:6563 +#: js/macros.js:170 +#: js/macros.js:266 +#: js/macros.js:267 +#: js/macros.js:276 +#: js/macros.js:828 +#: js/palette.js:527 +#: js/palette.js:536 +#: js/palette.js:545 +#: js/palette.js:554 +#: js/palette.js:1129 +#: js/palette.js:1140 +#: js/palette.js:1151 +#: js/palette.js:1162 +#: js/palette.js:1181 +#: js/blocks/ActionBlocks.js:254 +#: js/blocks/ActionBlocks.js:307 +#: js/blocks/ActionBlocks.js:617 +#: js/blocks/ActionBlocks.js:716 +#: js/blocks/ActionBlocks.js:961 +#: js/blocks/ActionBlocks.js:1049 +#: js/blocks/ActionBlocks.js:1322 +#: js/blocks/ActionBlocks.js:1325 +#: js/blocks/ActionBlocks.js:1337 +#: js/blocks/ActionBlocks.js:1404 +#: js/blocks/MeterBlocks.js:715 +#: js/blocks/MeterBlocks.js:768 +#: js/blocks/MeterBlocks.js:831 +#: js/blocks/MeterBlocks.js:892 +#: js/widgets/musickeyboard.js:2986 +#: js/widgets/phrasemaker.js:4913 +#: js/widgets/rhythmruler.js:2319 +#: js/widgets/rhythmruler.js:2326 +#: js/widgets/rhythmruler.js:2511 +#: js/widgets/rhythmruler.js:2518 +msgid "action" +msgstr "ação" + +#: js/rubrics.js:531 #: js/turtledefs.js:136 #: js/turtledefs.js:238 msgid "sensors" msgstr "sensores" -#: js/rubrics.js:531 +#: js/rubrics.js:532 #: js/turtledefs.js:135 #: js/turtledefs.js:237 -#: js/MediaBlocks.js:930 +#: js/blocks/MediaBlocks.js:930 msgid "media" msgstr "mídia" -#: js/rubrics.js:532 +#: js/rubrics.js:533 msgid "mice" msgstr "rato" -#: js/macros.js:711 -#: js/musicutils.js:783 -#: js/synthutils.js:181 -#.TRANS: animal sound effect -msgid "duck" -msgstr "pato" - -#: js/toolbar.js:46 -#: js/toolbar.js:107 +#: js/toolbar.js:48 +#: js/toolbar.js:109 msgid "About Music Blocks" msgstr "Sobre o Music Blocks" -#: js/toolbar.js:47 -#: js/toolbar.js:108 -#: js/toolbar.js:172 -#: js/toolbar.js:228 +#: js/toolbar.js:49 +#: js/toolbar.js:110 +#: js/toolbar.js:175 +#: js/toolbar.js:231 #: js/turtledefs.js:445 #: js/turtledefs.js:482 -#: js/activity.js:2281 -#: js/activity.js:2289 -#: js/activity.js:2520 -#: js/modewidget.js:77 -#: js/pitchstaircase.js:121 -#: js/phrasemaker.js:302 -#: js/phrasemaker.js:312 -#: js/phrasemaker.js:314 -#: js/phrasemaker.js:3901 -#: js/phrasemaker.js:4061 -#: js/phrasemaker.js:4066 -#: js/phrasemaker.js:4068 -#: js/phrasemaker.js:4183 -#: js/pitchdrummatrix.js:81 -#: js/pitchdrummatrix.js:574 -#: js/pitchdrummatrix.js:576 -#: js/pitchdrummatrix.js:628 -#: js/pitchdrummatrix.js:630 -#: js/pitchdrummatrix.js:645 -#: js/pitchdrummatrix.js:647 -#: js/pitchdrummatrix.js:674 -#: js/pitchdrummatrix.js:676 -#: js/temperament.js:477 -#: js/temperament.js:480 -#: js/temperament.js:540 -#: js/temperament.js:542 -#: js/temperament.js:1835 -#: js/temperament.js:1837 -#: js/temperament.js:1986 -#: js/temperament.js:1988 -#: js/musickeyboard.js:522 -#: js/musickeyboard.js:682 -#: js/musickeyboard.js:684 -#: js/musickeyboard.js:756 -#: js/musickeyboard.js:758 -#: js/rhythmruler.js:298 -#: js/rhythmruler.js:300 -#: js/rhythmruler.js:314 -#: js/rhythmruler.js:316 -#: js/sampler.js:96 -#: js/sampler.js:98 -#: js/sampler.js:229 -#: js/sampler.js:235 -#: js/sampler.js:237 -#: js/tempo.js:84 -#: js/tempo.js:86 -#: js/timbre.js:432 -#: js/timbre.js:434 -#: js/timbre.js:465 -#: js/timbre.js:467 -#: js/timbre.js:746 -#: js/meterwidget.js:80 -#: js/arpeggio.js:90 -#: js/arpeggio.js:547 -#: js/arpeggio.js:549 -#: js/arpeggio.js:644 -#: js/arpeggio.js:646 +#: js/activity.js:2660 +#: js/activity.js:2671 +#: js/activity.js:2902 +#: js/widgets/modewidget.js:77 +#: js/widgets/meterwidget.js:185 +#: js/widgets/pitchdrummatrix.js:147 +#: js/widgets/pitchdrummatrix.js:687 +#: js/widgets/pitchdrummatrix.js:689 +#: js/widgets/pitchdrummatrix.js:741 +#: js/widgets/pitchdrummatrix.js:743 +#: js/widgets/pitchdrummatrix.js:758 +#: js/widgets/pitchdrummatrix.js:760 +#: js/widgets/pitchdrummatrix.js:789 +#: js/widgets/pitchdrummatrix.js:791 +#: js/widgets/pitchstaircase.js:121 +#: js/widgets/temperament.js:610 +#: js/widgets/temperament.js:613 +#: js/widgets/temperament.js:673 +#: js/widgets/temperament.js:675 +#: js/widgets/temperament.js:2017 +#: js/widgets/temperament.js:2019 +#: js/widgets/tempo.js:84 +#: js/widgets/tempo.js:86 +#: js/widgets/timbre.js:432 +#: js/widgets/timbre.js:434 +#: js/widgets/timbre.js:465 +#: js/widgets/timbre.js:467 +#: js/widgets/timbre.js:746 +#: js/widgets/aiwidget.js:647 +#: js/widgets/aiwidget.js:654 +#: js/widgets/aiwidget.js:656 +#: js/widgets/arpeggio.js:90 +#: js/widgets/arpeggio.js:547 +#: js/widgets/arpeggio.js:549 +#: js/widgets/arpeggio.js:644 +#: js/widgets/arpeggio.js:646 +#: js/widgets/musickeyboard.js:676 +#: js/widgets/musickeyboard.js:872 +#: js/widgets/musickeyboard.js:874 +#: js/widgets/musickeyboard.js:953 +#: js/widgets/musickeyboard.js:955 +#: js/widgets/phrasemaker.js:513 +#: js/widgets/phrasemaker.js:523 +#: js/widgets/phrasemaker.js:525 +#: js/widgets/phrasemaker.js:4304 +#: js/widgets/phrasemaker.js:4528 +#: js/widgets/phrasemaker.js:4533 +#: js/widgets/phrasemaker.js:4535 +#: js/widgets/phrasemaker.js:4650 +#: js/widgets/rhythmruler.js:637 +#: js/widgets/rhythmruler.js:639 +#: js/widgets/rhythmruler.js:653 +#: js/widgets/rhythmruler.js:655 +#: js/widgets/sampler.js:162 +#: js/widgets/sampler.js:164 +#: js/widgets/sampler.js:363 msgid "Play" msgstr "Executar" -#: js/toolbar.js:48 -#: js/toolbar.js:109 -#: js/toolbar.js:173 -#: js/toolbar.js:229 +#: js/toolbar.js:50 +#: js/toolbar.js:111 +#: js/toolbar.js:176 +#: js/toolbar.js:232 #: js/turtledefs.js:451 #: js/turtledefs.js:488 -#: js/activity.js:2297 -#: js/modewidget.js:99 -#: js/modewidget.js:101 -#: js/phrasemaker.js:323 -#: js/phrasemaker.js:325 -#: js/pitchdrummatrix.js:561 -#: js/pitchdrummatrix.js:563 -#: js/temperament.js:1820 -#: js/temperament.js:1822 -#: js/meterwidget.js:101 -#: js/meterwidget.js:103 -#: js/arpeggio.js:534 -#: js/arpeggio.js:536 +#: js/activity.js:2679 +#: js/widgets/modewidget.js:99 +#: js/widgets/modewidget.js:101 +#: js/widgets/meterwidget.js:206 +#: js/widgets/meterwidget.js:208 +#: js/widgets/pitchdrummatrix.js:674 +#: js/widgets/pitchdrummatrix.js:676 +#: js/widgets/temperament.js:2002 +#: js/widgets/temperament.js:2004 +#: js/widgets/arpeggio.js:534 +#: js/widgets/arpeggio.js:536 +#: js/widgets/phrasemaker.js:534 +#: js/widgets/phrasemaker.js:536 msgid "Stop" msgstr "Parar" -#: js/toolbar.js:49 -#: js/toolbar.js:110 -#: js/toolbar.js:174 -#: js/toolbar.js:230 +#: js/toolbar.js:51 +#: js/toolbar.js:112 +#: js/toolbar.js:177 +#: js/toolbar.js:233 #: js/turtledefs.js:498 msgid "Record" msgstr "" -#: js/toolbar.js:50 -#: js/toolbar.js:51 +#: js/toolbar.js:52 +#: js/toolbar.js:53 msgid "Full screen" msgstr "" -#: js/toolbar.js:52 -#: js/toolbar.js:112 -#: js/toolbar.js:177 -#: js/toolbar.js:232 +#: js/toolbar.js:54 +#: js/toolbar.js:115 +#: js/toolbar.js:180 +#: js/toolbar.js:236 #: js/turtledefs.js:504 msgid "Toggle Fullscreen" msgstr "" -#: js/toolbar.js:53 -#: js/toolbar.js:113 -#: js/toolbar.js:178 -#: js/toolbar.js:233 +#: js/toolbar.js:55 +#: js/toolbar.js:116 +#: js/toolbar.js:181 +#: js/toolbar.js:237 #: js/turtledefs.js:510 -#: js/StringHelper.js:33 +#: planet/js/StringHelper.js:33 msgid "New project" msgstr "Novo projeto" -#: js/toolbar.js:54 -#: js/toolbar.js:114 -#: js/toolbar.js:179 -#: js/toolbar.js:234 +#: js/toolbar.js:56 +#: js/toolbar.js:117 +#: js/toolbar.js:182 +#: js/toolbar.js:238 #: js/turtledefs.js:516 msgid "Load project from file" msgstr "Carregar projeto de um arquivo" -#: js/toolbar.js:55 -#: js/toolbar.js:115 -#: js/toolbar.js:116 -#: js/toolbar.js:180 -#: js/toolbar.js:235 +#: js/toolbar.js:57 +#: js/toolbar.js:118 +#: js/toolbar.js:119 +#: js/toolbar.js:183 +#: js/toolbar.js:239 #: js/turtledefs.js:541 #: js/turtledefs.js:550 #: js/turtledefs.js:571 msgid "Save project" msgstr "Salvar projeto" -#: js/toolbar.js:56 -#: js/toolbar.js:75 +#: js/toolbar.js:58 #: js/toolbar.js:77 -#: js/toolbar.js:135 -#: js/toolbar.js:144 -#: js/toolbar.js:146 -#: js/toolbar.js:181 -#: js/toolbar.js:199 -#: js/toolbar.js:201 -#: js/toolbar.js:236 -#: js/toolbar.js:254 -#: js/toolbar.js:256 +#: js/toolbar.js:79 +#: js/toolbar.js:138 +#: js/toolbar.js:147 +#: js/toolbar.js:149 +#: js/toolbar.js:184 +#: js/toolbar.js:202 +#: js/toolbar.js:204 +#: js/toolbar.js:240 +#: js/toolbar.js:258 +#: js/toolbar.js:260 msgid "Save project as HTML" msgstr "Salvar projeto como HTML" -#: js/toolbar.js:57 -#: js/toolbar.js:117 -#: js/toolbar.js:182 -#: js/toolbar.js:237 +#: js/toolbar.js:59 +#: js/toolbar.js:120 +#: js/toolbar.js:185 +#: js/toolbar.js:241 msgid "Find and share projects" msgstr "Buscar e compartilhar projetos" -#: js/toolbar.js:58 -#: js/toolbar.js:118 -#: js/toolbar.js:183 -#: js/toolbar.js:238 +#: js/toolbar.js:60 +#: js/toolbar.js:121 +#: js/toolbar.js:186 +#: js/toolbar.js:242 msgid "Offline. Sharing is unavailable" msgstr "Desconectado. Compartilhamento não está disponível" -#: js/toolbar.js:59 -#: js/toolbar.js:119 -#: js/toolbar.js:184 -#: js/toolbar.js:239 +#: js/toolbar.js:61 +#: js/toolbar.js:122 +#: js/toolbar.js:187 +#: js/toolbar.js:243 msgid "Auxiliary menu" msgstr "Menu auxiliar" -#: js/toolbar.js:61 -#: js/toolbar.js:121 -#: js/toolbar.js:186 -#: js/toolbar.js:241 +#: js/toolbar.js:62 +#: js/toolbar.js:123 +#: js/toolbar.js:188 +#: js/toolbar.js:244 +#: js/turtledefs.js:752 +#: js/piemenus.js:3423 +msgid "Help" +msgstr "Ajuda" + +#: js/toolbar.js:63 +#: js/toolbar.js:124 +#: js/toolbar.js:189 +#: js/toolbar.js:245 msgid "Run slowly" msgstr "Executar lentamente" -#: js/toolbar.js:62 -#: js/toolbar.js:122 -#: js/toolbar.js:187 -#: js/toolbar.js:242 +#: js/toolbar.js:64 +#: js/toolbar.js:125 +#: js/toolbar.js:190 +#: js/toolbar.js:246 #: js/turtledefs.js:682 msgid "Run step by step" msgstr "Executar passo a passo" -#: js/toolbar.js:63 -#: js/toolbar.js:123 -#: js/toolbar.js:188 -#: js/toolbar.js:243 +#: js/toolbar.js:65 +#: js/toolbar.js:126 +#: js/toolbar.js:191 +#: js/toolbar.js:247 #: js/turtledefs.js:689 msgid "Display statistics" msgstr "Exibir estatísticas" -#: js/toolbar.js:64 -#: js/toolbar.js:124 -#: js/toolbar.js:189 -#: js/toolbar.js:244 +#: js/toolbar.js:66 +#: js/toolbar.js:127 +#: js/toolbar.js:192 +#: js/toolbar.js:248 msgid "Load plugin" msgstr "Carregar plugin" -#: js/toolbar.js:65 -#: js/toolbar.js:125 -#: js/toolbar.js:190 -#: js/toolbar.js:245 +#: js/toolbar.js:67 +#: js/toolbar.js:128 +#: js/toolbar.js:193 +#: js/toolbar.js:249 #: js/turtledefs.js:696 msgid "Delete plugin" msgstr "Excluir plugin" -#: js/toolbar.js:66 -#: js/toolbar.js:126 -#: js/toolbar.js:191 -#: js/toolbar.js:246 +#: js/toolbar.js:68 +#: js/toolbar.js:129 +#: js/toolbar.js:194 +#: js/toolbar.js:250 msgid "Enable horizontal scrolling" msgstr "Habilitar rolamento horizontal" -#: js/toolbar.js:67 -#: js/toolbar.js:127 -#: js/toolbar.js:192 -#: js/toolbar.js:247 +#: js/toolbar.js:69 +#: js/toolbar.js:130 +#: js/toolbar.js:195 +#: js/toolbar.js:251 msgid "Disable horizontal scrolling" msgstr "Desabilitar o rolamento horizontal" -#: js/toolbar.js:68 -#: js/toolbar.js:128 -#: js/toolbar.js:193 -#: js/toolbar.js:248 -#: js/LocalCard.js:54 -#: js/StringHelper.js:71 +#: js/toolbar.js:70 +#: js/toolbar.js:131 +#: js/toolbar.js:196 +#: js/toolbar.js:252 +#: planet/js/LocalCard.js:54 +#: planet/js/StringHelper.js:71 msgid "Merge with current project" msgstr "Integrar com o projeto atual" -#: js/toolbar.js:69 -#: js/toolbar.js:129 +#: js/toolbar.js:71 +#: js/toolbar.js:132 msgid "Set Pitch Preview" msgstr "" -#: js/toolbar.js:70 -#: js/toolbar.js:130 -#: js/toolbar.js:194 -#: js/toolbar.js:249 -msgid "Toggle JavaScript Editor" +#: js/toolbar.js:72 +#: js/toolbar.js:133 +#: js/toolbar.js:197 +#: js/toolbar.js:253 +msgid "JavaScript Editor" msgstr "" -#: js/toolbar.js:71 -#: js/toolbar.js:131 -#: js/toolbar.js:195 -#: js/toolbar.js:250 +#: js/toolbar.js:73 +#: js/toolbar.js:134 +#: js/toolbar.js:198 +#: js/toolbar.js:254 #: js/turtledefs.js:724 msgid "Restore" msgstr "Restaurar" -#: js/toolbar.js:72 -#: js/toolbar.js:132 -#: js/toolbar.js:196 -#: js/toolbar.js:251 +#: js/toolbar.js:74 +#: js/toolbar.js:135 +#: js/toolbar.js:199 +#: js/toolbar.js:255 msgid "Switch to beginner mode" msgstr "Trocar para modo iniciante" -#: js/toolbar.js:73 -#: js/toolbar.js:133 -#: js/toolbar.js:197 -#: js/toolbar.js:252 +#: js/toolbar.js:75 +#: js/toolbar.js:136 +#: js/toolbar.js:200 +#: js/toolbar.js:256 msgid "Switch to advanced mode" msgstr "Trocar para modo avançado" -#: js/toolbar.js:74 -#: js/toolbar.js:134 -#: js/toolbar.js:143 -#: js/toolbar.js:198 -#: js/toolbar.js:253 +#: js/toolbar.js:76 +#: js/toolbar.js:137 +#: js/toolbar.js:146 +#: js/toolbar.js:201 +#: js/toolbar.js:257 #: js/turtledefs.js:738 msgid "Select language" msgstr "Selecionar idioma" -#: js/toolbar.js:76 -#: js/toolbar.js:79 -#: js/toolbar.js:137 +#: js/toolbar.js:78 +#: js/toolbar.js:81 +#: js/toolbar.js:140 #: js/turtledefs.js:579 msgid "Save mouse artwork as PNG" msgstr "Salvar as ilustrações do ratinho como PNG" -#: js/toolbar.js:78 -#: js/toolbar.js:136 +#: js/toolbar.js:80 +#: js/toolbar.js:139 #: js/turtledefs.js:575 msgid "Save mouse artwork as SVG" msgstr "Salvar as ilustrações do ratinho como SVG" -#: js/toolbar.js:80 -#: js/toolbar.js:138 +#: js/toolbar.js:82 +#: js/toolbar.js:141 #: js/turtledefs.js:583 msgid "Save music as WAV" msgstr "Salvar a música como WAV" -#: js/toolbar.js:81 -#: js/toolbar.js:139 +#: js/toolbar.js:83 +#: js/toolbar.js:142 #: js/turtledefs.js:587 msgid "Save sheet music as ABC" msgstr "Slavar partitura com ABC" -#: js/toolbar.js:82 -#: js/toolbar.js:140 +#: js/toolbar.js:84 +#: js/toolbar.js:143 #: js/turtledefs.js:591 msgid "Save sheet music as Lilypond" msgstr "Salvar partitura como Lilypond" -#: js/toolbar.js:83 +#: js/toolbar.js:85 msgid "Save sheet music as MusicXML" msgstr "" -#: js/toolbar.js:84 -#: js/toolbar.js:141 -#: js/toolbar.js:149 -#: js/toolbar.js:204 -#: js/toolbar.js:259 +#: js/toolbar.js:86 +#: js/toolbar.js:144 +#: js/toolbar.js:152 +#: js/toolbar.js:207 +#: js/toolbar.js:263 #: js/turtledefs.js:562 #: js/turtledefs.js:595 msgid "Save block artwork as SVG" msgstr "Salvar ilustração do bloco como SVG" -#: js/toolbar.js:85 -#: js/toolbar.js:142 -#: js/toolbar.js:150 -#: js/toolbar.js:205 -#: js/toolbar.js:260 +#: js/toolbar.js:87 +#: js/toolbar.js:145 +#: js/toolbar.js:153 +#: js/toolbar.js:208 +#: js/toolbar.js:264 +#: js/turtles.js:911 msgid "Confirm" msgstr "Confirmar" -#: js/toolbar.js:86 -#: js/toolbar.js:151 -#: js/toolbar.js:206 -#: js/toolbar.js:261 +#: js/toolbar.js:88 +#: js/toolbar.js:154 +#: js/toolbar.js:209 +#: js/toolbar.js:265 msgid "English (United States)" msgstr "Inglês (Estados Unidos)" -#: js/toolbar.js:87 -#: js/toolbar.js:152 -#: js/toolbar.js:207 -#: js/toolbar.js:262 +#: js/toolbar.js:89 +#: js/toolbar.js:155 +#: js/toolbar.js:210 +#: js/toolbar.js:266 msgid "English (United Kingdom)" msgstr "Inglês (Reino Unido)" -#: js/toolbar.js:88 -#: js/toolbar.js:153 -#: js/toolbar.js:208 -#: js/toolbar.js:263 +#: js/toolbar.js:90 +#: js/toolbar.js:156 +#: js/toolbar.js:211 +#: js/toolbar.js:267 msgid "日本語" msgstr "日本語" -#: js/toolbar.js:89 +#: js/toolbar.js:91 msgid "한국어" msgstr "" -#: js/toolbar.js:90 -#: js/toolbar.js:155 -#: js/toolbar.js:210 -#: js/toolbar.js:265 +#: js/toolbar.js:92 +#: js/toolbar.js:158 +#: js/toolbar.js:213 +#: js/toolbar.js:269 msgid "español" msgstr "espanhol" -#: js/toolbar.js:91 -#: js/toolbar.js:156 -#: js/toolbar.js:211 -#: js/toolbar.js:266 +#: js/toolbar.js:93 +#: js/toolbar.js:159 +#: js/toolbar.js:214 +#: js/toolbar.js:270 msgid "português" msgstr "" -#: js/toolbar.js:92 -#: js/toolbar.js:157 -#: js/toolbar.js:212 -#: js/toolbar.js:267 +#: js/toolbar.js:94 +#: js/toolbar.js:160 +#: js/toolbar.js:215 +#: js/toolbar.js:271 msgid "にほんご" msgstr "にほんご" -#: js/toolbar.js:93 -#: js/toolbar.js:158 -#: js/toolbar.js:213 -#: js/toolbar.js:268 +#: js/toolbar.js:95 +#: js/toolbar.js:161 +#: js/toolbar.js:216 +#: js/toolbar.js:272 msgid "中文" msgstr "中文" -#: js/toolbar.js:94 -#: js/toolbar.js:159 -#: js/toolbar.js:214 -#: js/toolbar.js:269 +#: js/toolbar.js:96 +#: js/toolbar.js:162 +#: js/toolbar.js:217 +#: js/toolbar.js:273 msgid "ภาษาไทย" msgstr "ภาษาไทย" -#: js/toolbar.js:95 -#: js/toolbar.js:160 -#: js/toolbar.js:215 -#: js/toolbar.js:270 +#: js/toolbar.js:97 +#: js/toolbar.js:163 +#: js/toolbar.js:218 +#: js/toolbar.js:274 msgid "aymara" msgstr "aymara" -#: js/toolbar.js:96 -#: js/toolbar.js:161 -#: js/toolbar.js:216 -#: js/toolbar.js:271 +#: js/toolbar.js:98 +#: js/toolbar.js:164 +#: js/toolbar.js:219 +#: js/toolbar.js:275 msgid "quechua" msgstr "" -#: js/toolbar.js:97 -#: js/toolbar.js:162 -#: js/toolbar.js:217 -#: js/toolbar.js:272 -msgid "guarani" -msgstr "guarani" - -#: js/toolbar.js:98 -#: js/toolbar.js:163 -#: js/toolbar.js:218 -#: js/toolbar.js:273 +#: js/toolbar.js:99 +#: js/toolbar.js:165 +#: js/toolbar.js:220 +#: js/toolbar.js:276 +msgid "guarani" +msgstr "guarani" + +#: js/toolbar.js:100 +#: js/toolbar.js:166 +#: js/toolbar.js:221 +#: js/toolbar.js:277 msgid "हिंदी" msgstr "हिंदी" -#: js/toolbar.js:99 -#: js/toolbar.js:165 -#: js/toolbar.js:219 -#: js/toolbar.js:275 +#: js/toolbar.js:101 +#: js/toolbar.js:168 +#: js/toolbar.js:222 +#: js/toolbar.js:279 msgid "igbo" msgstr "igbo" -#: js/toolbar.js:100 -#: js/toolbar.js:166 -#: js/toolbar.js:220 -#: js/toolbar.js:276 +#: js/toolbar.js:102 +#: js/toolbar.js:169 +#: js/toolbar.js:223 +#: js/toolbar.js:280 msgid "عربى" msgstr "عربى" -#: js/toolbar.js:101 -#: js/toolbar.js:164 -#: js/toolbar.js:221 -#: js/toolbar.js:274 +#: js/toolbar.js:103 +#: js/toolbar.js:167 +#: js/toolbar.js:224 +#: js/toolbar.js:278 msgid "తెలుగు" msgstr "" -#: js/toolbar.js:102 -#: js/toolbar.js:167 -#: js/toolbar.js:222 -#: js/toolbar.js:277 +#: js/toolbar.js:104 +#: js/toolbar.js:170 +#: js/toolbar.js:225 +#: js/toolbar.js:281 msgid "עִברִית" msgstr "עִברִית" -#: js/toolbar.js:111 -#: js/toolbar.js:175 -#: js/toolbar.js:176 -#: js/toolbar.js:231 +#: js/toolbar.js:113 +#: js/toolbar.js:114 +#: js/toolbar.js:178 +#: js/toolbar.js:179 +#: js/toolbar.js:234 +#: js/toolbar.js:235 msgid "Full Screen" msgstr "" -#: js/toolbar.js:145 #: js/toolbar.js:148 -#: js/toolbar.js:200 +#: js/toolbar.js:151 #: js/toolbar.js:203 -#: js/toolbar.js:255 -#: js/toolbar.js:258 +#: js/toolbar.js:206 +#: js/toolbar.js:259 +#: js/toolbar.js:262 #: js/turtledefs.js:558 msgid "Save turtle artwork as PNG" msgstr "Salvar ilustração da tartaruga como PNG" -#: js/toolbar.js:147 -#: js/toolbar.js:202 -#: js/toolbar.js:257 +#: js/toolbar.js:150 +#: js/toolbar.js:205 +#: js/toolbar.js:261 #: js/turtledefs.js:554 msgid "Save turtle artwork as SVG" msgstr "Salvar ilustração da tartaruga como SVG" -#: js/toolbar.js:154 -#: js/toolbar.js:209 -#: js/toolbar.js:264 +#: js/toolbar.js:157 +#: js/toolbar.js:212 +#: js/toolbar.js:268 msgid "한국인" msgstr "" -#: js/toolbar.js:171 -#: js/toolbar.js:227 -msgid "About Turtle Blocks" -msgstr "Sobre o Turtle Blocks" +#: js/toolbar.js:174 +#: js/toolbar.js:230 +msgid "About Turtle Blocks" +msgstr "Sobre o Turtle Blocks" + +#: js/toolbar.js:446 +#: js/toolbar.js:457 +#: js/toolbar.js:497 +msgid "Turtle Wrap Off" +msgstr "" + +#: js/toolbar.js:466 +#: js/toolbar.js:506 +msgid "Turtle Wrap On" +msgstr "" + +#: js/turtle-painter.js:1192 +#: js/turtle-painter.js:1193 +#: js/turtles.js:118 +#: js/block-verbose.js:1623 +#: js/block.js:1587 +#: js/lilypond.js:749 +#: js/lilypond.js:913 +#: js/lilypond.js:951 +#: js/logo.js:1184 +#: js/blocks/ActionBlocks.js:1223 +#: js/blocks/ProgramBlocks.js:1267 +msgid "start" +msgstr "iniciar" + +#: js/turtledefs.js:40 +#.TRANS: put the URL to the guide here, e.g., https://github.com/sugarlabs/turtleblocksjs/tree/master/guide/README.md +msgid "guide url" +msgstr "guia url" + +#: js/turtledefs.js:85 +#: js/turtledefs.js:437 +msgid "Turtle Blocks is a Logo-inspired turtle that draws colorful pictures with snap-together visual-programming blocks." +msgstr "" + +#: js/turtledefs.js:118 +#: js/turtledefs.js:220 +msgid "search" +msgstr "buscar" + +#: js/turtledefs.js:120 +#: js/turtledefs.js:222 +#: js/blocks/MeterBlocks.js:1343 +#: js/blocks/WidgetBlocks.js:522 +#.TRANS: musical meter (time signature), e.g., 4:4 +msgid "meter" +msgstr "metro" + +#: js/turtledefs.js:122 +#: js/turtledefs.js:224 +msgid "intervals" +msgstr "intervalos" + +#: js/turtledefs.js:124 +#: js/turtledefs.js:226 +msgid "ornament" +msgstr "ornamento" + +#: js/turtledefs.js:125 +#: js/turtledefs.js:227 +#: js/blocks/VolumeBlocks.js:362 +#: js/blocks/VolumeBlocks.js:502 +#: js/blocks/VolumeBlocks.js:545 +msgid "volume" +msgstr "volume" + +#: js/turtledefs.js:126 +#: js/turtledefs.js:228 +#: js/block-verbose.js:1700 +#: js/block-verbose.js:2626 +#: js/block.js:1664 +#: js/block.js:2554 +#: js/lilypond.js:732 +#: js/lilypond.js:897 +#: js/lilypond.js:941 +#: js/palette.js:577 +#: js/blocks/RhythmBlocks.js:766 +#: js/blocks/DrumBlocks.js:477 +#: js/blocks/VolumeBlocks.js:502 +#: js/widgets/phrasemaker.js:1038 +msgid "drum" +msgstr "bateria" + +#: js/turtledefs.js:129 +#: js/turtledefs.js:231 +msgid "boxes" +msgstr "caixas" + +#: js/turtledefs.js:130 +#: js/turtledefs.js:232 +msgid "widgets" +msgstr "widgets" + +#: js/turtledefs.js:131 +#: js/turtledefs.js:233 +#: js/widgets/phrasemaker.js:1039 +msgid "graphics" +msgstr "gráficos" + +#: js/turtledefs.js:134 +#: js/turtledefs.js:236 +msgid "boolean" +msgstr "boleano" + +#: js/turtledefs.js:137 +#: js/turtledefs.js:239 +#: js/blocks/HeapBlocks.js:59 +#: js/widgets/status.js:147 +msgid "heap" +msgstr "pilha" + +#: js/turtledefs.js:138 +#: js/turtledefs.js:240 +#: js/blocks/DictBlocks.js:142 +#: js/blocks/ProgramBlocks.js:495 +msgid "dictionary" +msgstr "" + +#: js/turtledefs.js:139 +#: js/turtledefs.js:241 +msgid "ensemble" +msgstr "conjunto" + +#: js/turtledefs.js:140 +#: js/turtledefs.js:242 +msgid "extras" +msgstr "extras" + +#: js/turtledefs.js:142 +#: js/turtledefs.js:244 +#.TRANS: program as in computer program +#.TRANS: program as in computer program +msgid "program" +msgstr "" + +#: js/turtledefs.js:143 +#: js/turtledefs.js:245 +msgid "my blocks" +msgstr "meus blocos" + +#: js/turtledefs.js:185 +#: js/turtledefs.js:281 +msgid "artwork" +msgstr "ilustrção" + +#: js/turtledefs.js:185 +#: js/turtledefs.js:281 +msgid "logic" +msgstr "lógica" + +#: js/turtledefs.js:185 +#: js/turtledefs.js:281 +msgid "music" +msgstr "música" + +#: js/turtledefs.js:187 +#: js/turtledefs.js:463 +msgid "Music Blocks is a collection of tools for exploring fundamental musical concepts in a fun way." +msgstr "Music Blocks é uma coleção de ferramentas para explorar conceitos musicais fundamentais de uma forma divertida." + +#: js/turtledefs.js:436 +msgid "Welcome to Turtle Blocks" +msgstr "" + +#: js/turtledefs.js:438 +#: js/turtledefs.js:465 +#: js/turtledefs.js:774 +#: js/turtledefs.js:805 +msgid "The current version is" +msgstr "A versão atual é" + +#: js/turtledefs.js:446 +#: js/turtledefs.js:483 +msgid "Click the run button to run the project in fast mode." +msgstr "Clique no botão executar para tocar o projeto em modo rápido" + +#: js/turtledefs.js:452 +msgid "Stop the turtle." +msgstr "" + +#: js/turtledefs.js:454 +#: js/turtledefs.js:491 +msgid "You can also type Alt-S to stop." +msgstr "Você também pode pressionar Alt-S para parar" + +#: js/turtledefs.js:462 +#: js/widgets/help.js:333 +msgid "Welcome to Music Blocks" +msgstr "Bem vindo ao Music Blocks" + +#: js/turtledefs.js:472 +#: js/widgets/help.js:334 +msgid "Meet Mr. Mouse!" +msgstr "Conheça o Sr. Ratinho!" + +#: js/turtledefs.js:473 +msgid "Mr Mouse is our Music Blocks conductor." +msgstr "Sr Ratinho é o nosso guia do Music Blocks." + +#: js/turtledefs.js:475 +msgid "Mr Mouse encourages you to explore Music Blocks." +msgstr "Sr Ratinho incentiva a explorar o Music Blocks." + +#: js/turtledefs.js:477 +msgid "Let us start our tour!" +msgstr "Vamos iniciar o nosso tour!" + +#: js/turtledefs.js:489 +msgid "Stop the music (and the mice)." +msgstr "Parar a música (e o rato)" + +#: js/turtledefs.js:499 +msgid "Record your project as video." +msgstr "" + +#: js/turtledefs.js:505 +msgid "Toggle Fullscreen mode." +msgstr "" + +#: js/turtledefs.js:511 +msgid "Initialize a new project." +msgstr "Iniciar um novo projeto." + +#: js/turtledefs.js:517 +msgid "You can also load projects from the file system." +msgstr "Você também pode carregar projetos do sistema de arquivos." + +#: js/turtledefs.js:522 +#: planet/js/StringHelper.js:46 +msgid "Delete" +msgstr "Excluir" + +#: js/turtledefs.js:523 +msgid "To delete a block, just right-click on it, then you will be able to see the delete option" +msgstr "" + +#: js/turtledefs.js:528 +#: js/activity.js:2649 +#: planet/js/LocalCard.js:31 +msgid "Copy" +msgstr "Copiar" + +#: js/turtledefs.js:529 +msgid "To copy a block, just right-click on it, then you will be able to see the copy option" +msgstr "" + +#: js/turtledefs.js:534 +#: js/piemenus.js:3411 +msgid "Extract" +msgstr "Extrair" + +#: js/turtledefs.js:535 +msgid "To extract a block, just right-click on it, then you will be able to see the extract option" +msgstr "" + +#: js/turtledefs.js:542 +#: js/turtledefs.js:552 +#: js/turtledefs.js:573 +msgid "Save your project to a file." +msgstr "Salve seu projeto em um arquivo." + +#: js/turtledefs.js:549 +#: js/turtledefs.js:570 +msgid "save" +msgstr "salvar" + +#: js/turtledefs.js:556 +#: js/turtledefs.js:577 +msgid "Save graphics from your project to as SVG." +msgstr "Salvar os grficos do seu projeto como SVG." + +#: js/turtledefs.js:560 +#: js/turtledefs.js:581 +msgid "Save graphics from your project as PNG." +msgstr "Salvar os gráficos do seu projeto como PNG." + +#: js/turtledefs.js:564 +#: js/turtledefs.js:597 +msgid "Save block artwork as an SVG file." +msgstr "Salvar ilustração do bloco como uma arquivo SVG." + +#: js/turtledefs.js:585 +msgid "Save audio from your project as WAV." +msgstr "Slavar o audio do seu projeto como WAV" + +#: js/turtledefs.js:589 +msgid "Save your project to as an ABC file." +msgstr "Salvar seu projeto para uma arquivo ABC." + +#: js/turtledefs.js:593 +msgid "Save your project to as a Lilypond file." +msgstr "Salve seu projeto como um arquivo do Lilypond." + +#: js/turtledefs.js:604 +msgid "Load samples from server" +msgstr "Carregar amostras do servidor" + +#: js/turtledefs.js:605 +msgid "This button opens a viewer for loading example projects." +msgstr "Este botão abre um visualizador para carregar exemplos de projetos." + +#: js/turtledefs.js:611 +msgid "Palette buttons" +msgstr "Botões de paleta" + +#: js/turtledefs.js:612 +msgid "This toolbar contains the palette buttons including Rhythm Pitch Tone Action and more." +msgstr "Essa barra de ferramentas contém a paleta de botões, incluindo Ação do Ritmo do Tom da Nota e mais." + +#: js/turtledefs.js:614 +msgid "Click to show the palettes of blocks and drag blocks from the palettes onto the canvas to use them." +msgstr "Clique para mostrar a paleta de botões e arraste blocos da paleta para a tela para usá-los." + +#: js/turtledefs.js:620 +msgid "Cartesian/Polar" +msgstr "Cartesiano/Polar" + +#: js/turtledefs.js:621 +msgid "Show or hide a coordinate grid." +msgstr "Mostrar ou ocultar uma grade de coordenadas." + +#: js/turtledefs.js:626 +#: js/turtles.js:902 +msgid "Clean" +msgstr "Limpar" + +#: js/turtledefs.js:627 +msgid "Clear the screen and return the mice to their initial positions." +msgstr "Limpar a tela e retornar o rato para a sua posição inicial." + +#: js/turtledefs.js:632 +#: js/turtles.js:955 +msgid "Collapse" +msgstr "Recolher" + +#: js/turtledefs.js:633 +msgid "Collapse the graphics window." +msgstr "Recolher a janela gráfica." + +#: js/turtledefs.js:638 +#: js/activity.js:5684 +msgid "Home" +msgstr "Início" + +#: js/turtledefs.js:639 +msgid "Return all blocks to the center of the screen." +msgstr "Retornar todos os blocos para o centro da tela." + +#: js/turtledefs.js:644 +msgid "Show/hide blocks" +msgstr "Mostrar/ocultar blocos" + +#: js/turtledefs.js:645 +msgid "Hide or show the blocks and the palettes." +msgstr "Ocultar ou mostrar as paletas e os blocos." + +#: js/turtledefs.js:650 +msgid "Expand/collapse collapsable blocks" +msgstr "Expandir/recolher blocos recolhíveis" + +#: js/turtledefs.js:651 +msgid "Expand or collapse start and action stacks." +msgstr "Expandir ou recolher pilhas de início e ação." + +#: js/turtledefs.js:658 +#: js/activity.js:5704 +msgid "Decrease block size" +msgstr "Diminuir o tamanho do bloco" + +#: js/turtledefs.js:659 +msgid "Decrease the size of the blocks." +msgstr "Diminua o tamanho dos blocos." + +#: js/turtledefs.js:664 +#: js/activity.js:5710 +msgid "Increase block size" +msgstr "Aumentar o tamanho do bloco" + +#: js/turtledefs.js:665 +msgid "Increase the size of the blocks." +msgstr "Aumentar o tamanho dos blocos." + +#: js/turtledefs.js:670 +msgid "Expand/collapse option toolbar" +msgstr "Expandir/recolher a barra de ferramentas" + +#: js/turtledefs.js:671 +msgid "Click this button to expand or collapse the auxillary toolbar." +msgstr "Clique neste botão para expandir ou recolher a barra de ferramentas auxiliar." + +#: js/turtledefs.js:676 +msgid "Run slow" +msgstr "Executar devagar" + +#: js/turtledefs.js:677 +msgid "Click to run the project in slow mode." +msgstr "Clique para executar o projeto no modo lento." + +#: js/turtledefs.js:683 +msgid "Click to run the project step by step." +msgstr "Clique para executar o projeto passo a passo." + +#: js/turtledefs.js:690 +msgid "Display statistics about your Music project." +msgstr "Exibe estatísticas sobre o seu projeto de música." + +#: js/turtledefs.js:697 +msgid "Delete a selected plugin." +msgstr "Excluir o plugin selecionado." + +#: js/turtledefs.js:704 +msgid "Enable scrolling" +msgstr "Ativar rolagem" + +#: js/turtledefs.js:705 +msgid "You can scroll the blocks on the canvas." +msgstr "Você pode rolar os blocos na tela." + +#: js/turtledefs.js:714 +msgid "Wrap Turtle" +msgstr "" + +#: js/turtledefs.js:715 +msgid "Turn Turtle wrapping On or Off." +msgstr "" + +#: js/turtledefs.js:725 +msgid "Restore blocks from the trash." +msgstr "Restaurar blocos da lixeira." + +#: js/turtledefs.js:732 +msgid "Switch mode" +msgstr "Modo de troca" + +#: js/turtledefs.js:733 +msgid "Switch between beginner and advance modes." +msgstr "Trocar entre o modo iniciante e o modo avançado." + +#: js/turtledefs.js:739 +msgid "Select your language preference." +msgstr "Selecionar suas preferência de idioma." + +#: js/turtledefs.js:745 +msgid "Keyboard shortcuts" +msgstr "Atalhos de teclado" + +#: js/turtledefs.js:746 +msgid "You can type d to create a do block and r to create a re block etc." +msgstr "Você pode pressionar d para criar um bloco com a nota Do e r para criar uma nota Re, etc." + +#: js/turtledefs.js:753 +msgid "Show these messages." +msgstr "Mostrar essas mensagens." + +#: js/turtledefs.js:759 +#: js/turtledefs.js:790 +#: js/widgets/help.js:335 +msgid "Guide" +msgstr "Guia" + +#: js/turtledefs.js:760 +msgid "A detailed guide to Turtle Blocks is available." +msgstr "" + +#: js/turtledefs.js:764 +msgid "Turtle Blocks Guide" +msgstr "" + +#: js/turtledefs.js:767 +#: js/turtledefs.js:798 +#: js/widgets/help.js:336 +msgid "About" +msgstr "Sobre" + +#: js/turtledefs.js:768 +msgid "Turtle Blocks is an open source collection of tools for exploring musical concepts." +msgstr "" + +#: js/turtledefs.js:770 +msgid "A full list of contributors can be found in the Turtle Blocks GitHub repository." +msgstr "" + +#: js/turtledefs.js:772 +msgid "Turtle Blocks is licensed under the AGPL." +msgstr "" + +#: js/turtledefs.js:780 +msgid "Turtle Blocks GitHub repository" +msgstr "" + +#: js/turtledefs.js:783 +#: js/turtledefs.js:814 +#: js/widgets/help.js:337 +#: js/widgets/help.js:359 +msgid "Congratulations." +msgstr "Parabéns." + +#: js/turtledefs.js:784 +msgid "You have finished the tour. Please enjoy Turtle Blocks!" +msgstr "" + +#: js/turtledefs.js:791 +msgid "A detailed guide to Music Blocks is available." +msgstr "Um guia detalhado do Music Blocks está disponível." + +#: js/turtledefs.js:799 +msgid "Music Blocks is an open source collection of tools for exploring musical concepts." +msgstr "Music Blocks é uma coleção de ferramentas de código aberto para explorar conceitos musicais." + +#: js/turtledefs.js:801 +msgid "A full list of contributors can be found in the Music Blocks GitHub repository." +msgstr "A lista completa de colaboradores pode ser encontrada no repositório Github do Music Blocks." + +#: js/turtledefs.js:803 +msgid "Music Blocks is licensed under the AGPL." +msgstr "Music Blocks é licenciado sob a GNU/AGPL." + +#: js/turtledefs.js:811 +msgid "Music Blocks GitHub repository" +msgstr "Repositório Github do Music Blocks" + +#: js/turtledefs.js:815 +msgid "You have finished the tour. Please enjoy Music Blocks!" +msgstr "Você terminou o tour. Por favor, aproveite o Music Blocks!" -#: js/toolbar.js:429 -#: js/toolbar.js:440 -msgid "Turtle Wrap Off" +#: js/turtles.js:882 +msgid "Grid" msgstr "" -#: js/toolbar.js:442 -msgid "Turtle Wrap On" -msgstr "" +#: js/turtles.js:1024 +msgid "Expand" +msgstr "Expandir" + +#: js/block-verbose.js:1616 +#: js/block-verbose.js:1735 +#: js/block.js:1580 +#: js/block.js:1699 +#: js/palette.js:605 +#: js/blocks/IntervalsBlocks.js:63 +#: js/blocks/WidgetBlocks.js:259 +msgid "temperament" +msgstr "temperamento" -#: js/block.js:1470 +#: js/block-verbose.js:1630 +#: js/block.js:1594 msgid "matrix" msgstr "matriz" -#: js/block.js:1477 -#: js/WidgetBlocks.js:1226 +#: js/block-verbose.js:1637 +#: js/block.js:1601 +#: js/blocks/WidgetBlocks.js:1509 #: plugins/rodi.rtp:324 msgid "status" msgstr "condição" -#: js/block.js:1484 +#: js/block-verbose.js:1644 +#: js/block.js:1608 msgid "drum mapper" msgstr "mapa da bateria" -#: js/block.js:1491 +#: js/block-verbose.js:1651 +#: js/block.js:1615 msgid "ruler" msgstr "régua" -#: js/block.js:1498 -#: js/WidgetBlocks.js:327 +#: js/block-verbose.js:1658 +#: js/block.js:1622 +#: js/blocks/WidgetBlocks.js:397 #.TRANS: timbre is the character or quality of a musical sound msgid "timbre" msgstr "timbre" -#: js/block.js:1505 +#: js/block-verbose.js:1665 +#: js/block.js:1629 msgid "stair" msgstr "escada" -#: js/block.js:1512 -#: js/WidgetBlocks.js:577 +#: js/block-verbose.js:1672 +#: js/block.js:1636 +#: js/blocks/WidgetBlocks.js:707 #.TRANS: the speed at music is should be played. msgid "tempo" msgstr "tempo" -#: js/block.js:1519 -#: js/block.js:1582 -#: js/IntervalsBlocks.js:1268 +#: js/block-verbose.js:1679 +#: js/block-verbose.js:1742 +#: js/block.js:1643 +#: js/block.js:1706 +#: js/blocks/IntervalsBlocks.js:1464 #.TRANS: mode, e.g., Major in C Major msgid "mode" msgstr "modo" -#: js/block.js:1526 +#: js/block-verbose.js:1686 +#: js/block.js:1650 msgid "slider" msgstr "slider" -#: js/block.js:1533 -#: js/SensorsBlocks.js:1001 +#: js/block-verbose.js:1693 +#: js/block.js:1657 +#: js/blocks/SensorsBlocks.js:1001 msgid "keyboard" msgstr "teclado" -#: js/block.js:1547 -#: js/WidgetBlocks.js:957 -#: js/WidgetBlocks.js:988 +#: js/block-verbose.js:1707 +#: js/block.js:1671 +#: js/blocks/WidgetBlocks.js:1190 +#: js/blocks/WidgetBlocks.js:1228 #.TRANS: widget for subdividing a measure into distinct rhythmic elements msgid "rhythm maker" msgstr "criador de ritmo" -#: js/block.js:1554 -#: js/block.js:2182 -#: js/block.js:2236 -#: js/RhythmBlockPaletteBlocks.js:70 -#: js/RhythmBlockPaletteBlocks.js:251 -#: js/RhythmBlockPaletteBlocks.js:484 -#: js/RhythmBlockPaletteBlocks.js:553 -#: js/RhythmBlockPaletteBlocks.js:604 -#: js/RhythmBlockPaletteBlocks.js:874 -#: js/RhythmBlocks.js:33 -#: js/RhythmBlocks.js:356 -#: js/RhythmBlocks.js:766 -#: js/RhythmBlocks.js:806 -#: js/OrnamentBlocks.js:220 -#: js/OrnamentBlocks.js:312 -#: js/MeterBlocks.js:1367 -#: js/DictActions.js:85 -#: js/phrasemaker.js:731 -#: js/phrasemaker.js:2393 -#: js/phrasemaker.js:2436 -#: js/phrasemaker.js:2534 +#: js/block-verbose.js:1714 +#: js/block-verbose.js:2457 +#: js/block-verbose.js:2514 +#: js/block.js:1678 +#: js/block.js:2385 +#: js/block.js:2442 +#: js/blocks/MeterBlocks.js:1367 +#: js/blocks/OrnamentBlocks.js:220 +#: js/blocks/OrnamentBlocks.js:312 +#: js/blocks/RhythmBlocks.js:33 +#: js/blocks/RhythmBlocks.js:356 +#: js/blocks/RhythmBlocks.js:766 +#: js/blocks/RhythmBlocks.js:806 +#: js/blocks/RhythmBlockPaletteBlocks.js:70 +#: js/blocks/RhythmBlockPaletteBlocks.js:252 +#: js/blocks/RhythmBlockPaletteBlocks.js:485 +#: js/blocks/RhythmBlockPaletteBlocks.js:554 +#: js/blocks/RhythmBlockPaletteBlocks.js:605 +#: js/blocks/RhythmBlockPaletteBlocks.js:875 +#: js/turtleactions/DictActions.js:85 +#: js/widgets/phrasemaker.js:942 +#: js/widgets/phrasemaker.js:2656 +#: js/widgets/phrasemaker.js:2699 +#: js/widgets/phrasemaker.js:2810 #.TRANS: the value (e.g., 1/4 note) of the note being played. msgid "note value" msgstr "valor de nota" -#: js/block.js:1561 -#: js/block.js:2110 -#: js/block.js:2133 -#: js/IntervalsBlocks.js:875 -#: js/OrnamentBlocks.js:312 +#: js/block-verbose.js:1721 +#: js/block-verbose.js:2382 +#: js/block-verbose.js:2405 +#: js/block.js:1685 +#: js/block.js:2310 +#: js/block.js:2333 +#: js/blocks/IntervalsBlocks.js:1071 +#: js/blocks/OrnamentBlocks.js:312 #.TRANS: calculate a relative step between notes based on semi-tones msgid "scalar interval" msgstr "intervalo escalar" -#: js/block.js:1568 -#: js/RhythmBlocks.js:148 +#: js/block-verbose.js:1728 +#: js/block.js:1692 +#: js/blocks/RhythmBlocks.js:148 msgid "milliseconds" msgstr "milissegundos" -#: js/block.js:2180 -#: js/block.js:2184 -#: js/block.js:2234 -#: js/block.js:2345 -#: js/ProgramBlocks.js:1273 -#: js/RhythmBlocks.js:712 -#: js/rhythmruler.js:834 -#: js/rhythmruler.js:961 +#: js/block-verbose.js:2455 +#: js/block-verbose.js:2459 +#: js/block-verbose.js:2512 +#: js/block-verbose.js:2628 +#: js/block.js:2383 +#: js/block.js:2387 +#: js/block.js:2440 +#: js/block.js:2556 +#: js/blocks/RhythmBlocks.js:712 +#: js/blocks/ProgramBlocks.js:1273 +#: js/widgets/rhythmruler.js:1183 +#: js/widgets/rhythmruler.js:1329 msgid "silence" msgstr "silêncio" -#: js/block.js:2265 -#: js/block.js:3134 -#: js/block.js:3151 -#: js/activity.js:2336 -#: js/activity.js:2387 -#: js/musicutils.js:2932 -#: js/musicutils.js:4287 +#: js/block-verbose.js:2548 +#: js/block-verbose.js:3492 +#: js/block-verbose.js:3509 +#: js/activity.js:2718 +#: js/activity.js:2769 +#: js/block.js:2476 +#: js/block.js:3416 +#: js/block.js:3433 +#: js/utils/musicutils.js:3780 +#: js/utils/musicutils.js:5273 +#.TRANS: the note names must be separated by single spaces #.TRANS: the note names must be separated by single spaces #.TRANS: the note names must be separated by single spaces msgid "ti la sol fa mi re do" msgstr "si la sol fa mi re do" -#: js/block.js:2333 +#: js/block-verbose.js:2616 +#: js/block.js:2544 +#.TRANS: scalar step #.TRANS: scalar step msgid "down" msgstr "abaixo" -#: js/block.js:2334 +#: js/block-verbose.js:2617 +#: js/block.js:2545 msgid "up" msgstr "acima" -#: js/block.js:3477 -#: js/block.js:3490 -#: js/ExtrasBlocks.js:612 +#: js/block-verbose.js:3026 +#: js/block.js:2950 +msgid "Silence block cannot be removed." +msgstr "" + +#: js/block-verbose.js:3824 +#: js/block.js:3748 +#: js/blocks.js:2607 +#: js/blocks.js:3218 +#: js/palette.js:618 +#: js/blocks/BooleanBlocks.js:77 +#: js/blocks/BooleanBlocks.js:167 +#: js/blocks/BooleanBlocks.js:251 +#: js/blocks/BooleanBlocks.js:335 +#: js/blocks/BooleanBlocks.js:433 +#: js/blocks/BooleanBlocks.js:539 +#: js/blocks/BooleanBlocks.js:640 +#: js/blocks/BooleanBlocks.js:741 +#: js/blocks/BooleanBlocks.js:847 +#: js/blocks/BooleanBlocks.js:948 +#: js/blocks/BooleanBlocks.js:1033 +#: js/blocks/SensorsBlocks.js:910 +msgid "true" +msgstr "verdadeiro" + +#: js/block-verbose.js:3824 +#: js/block.js:3748 +#: js/blocks.js:2609 +#: js/blocks.js:3220 +#: js/blocks/BooleanBlocks.js:79 +#: js/blocks/BooleanBlocks.js:169 +#: js/blocks/BooleanBlocks.js:253 +#: js/blocks/BooleanBlocks.js:337 +#: js/blocks/BooleanBlocks.js:435 +#: js/blocks/BooleanBlocks.js:541 +#: js/blocks/BooleanBlocks.js:642 +#: js/blocks/BooleanBlocks.js:743 +#: js/blocks/BooleanBlocks.js:849 +#: js/blocks/BooleanBlocks.js:950 +#: js/blocks/SensorsBlocks.js:912 +msgid "false" +msgstr "falso" + +#: js/block-verbose.js:3835 +#: js/block-verbose.js:3848 +#: js/block.js:3759 +#: js/block.js:3772 +#: js/blocks/ExtrasBlocks.js:615 msgid "Cartesian" msgstr "Cartesiano" -#: js/block.js:3478 -#: js/block.js:3491 -#: js/ExtrasBlocks.js:616 +#: js/block-verbose.js:3836 +#: js/block-verbose.js:3849 +#: js/block.js:3760 +#: js/block.js:3773 +#: js/blocks/ExtrasBlocks.js:619 msgid "polar" msgstr "" -#: js/block.js:3479 -#: js/block.js:3492 -#: js/ExtrasBlocks.js:620 +#: js/block-verbose.js:3837 +#: js/block-verbose.js:3850 +#: js/block.js:3761 +#: js/block.js:3774 +#: js/blocks/ExtrasBlocks.js:623 msgid "Cartesian+polar" msgstr "" -#: js/block.js:3480 -#: js/block.js:3499 -#: js/ExtrasBlocks.js:649 +#: js/block-verbose.js:3838 +#: js/block-verbose.js:3857 +#: js/block.js:3762 +#: js/block.js:3781 +#: js/blocks/ExtrasBlocks.js:652 msgid "none" msgstr "" -#: js/block.js:3493 -#: js/ExtrasBlocks.js:625 +#: js/block-verbose.js:3851 +#: js/block.js:3775 +#: js/blocks/ExtrasBlocks.js:628 msgid "treble" msgstr "" -#: js/block.js:3494 -#: js/ExtrasBlocks.js:629 +#: js/block-verbose.js:3852 +#: js/block.js:3776 +#: js/blocks/ExtrasBlocks.js:632 msgid "grand staff" msgstr "" -#: js/block.js:3495 -#: js/ExtrasBlocks.js:633 +#: js/block-verbose.js:3853 +#: js/block.js:3777 +#: js/blocks/ExtrasBlocks.js:636 msgid "mezzo-soprano" msgstr "" -#: js/block.js:3496 -#: js/ExtrasBlocks.js:637 +#: js/block-verbose.js:3854 +#: js/block.js:3778 +#: js/blocks/ExtrasBlocks.js:640 msgid "alto" msgstr "" -#: js/block.js:3497 -#: js/ExtrasBlocks.js:641 +#: js/block-verbose.js:3855 +#: js/block.js:3779 +#: js/blocks/ExtrasBlocks.js:644 msgid "tenor" msgstr "" -#: js/block.js:3498 -#: js/ExtrasBlocks.js:645 -#: js/musicutils.js:736 -#: js/synthutils.js:64 +#: js/block-verbose.js:3856 +#: js/block.js:3780 +#: js/utils/musicutils.js:1115 +#: js/utils/synthutils.js:80 +#: js/blocks/ExtrasBlocks.js:648 #.TRANS: musical instrument msgid "bass" msgstr "baixo" -#: js/block.js:4075 +#: js/block-verbose.js:3901 +#: js/block.js:3825 +#: js/blocks.js:2600 +#: js/blocks.js:3211 +msgid "on2" +msgstr "" + +#: js/block-verbose.js:3903 +#: js/block.js:3827 +#: js/blocks.js:2602 +#: js/blocks.js:3213 +msgid "off" +msgstr "" + +#: js/block-verbose.js:4470 +#: js/block.js:4394 msgid "Not a number" msgstr "Não um número" -#: js/block.js:4082 +#: js/block-verbose.js:4477 +#: js/block.js:4401 msgid "Octave value must be between 1 and 10." msgstr "" -#: js/block.js:4090 +#: js/block-verbose.js:4485 +#: js/block.js:4409 msgid "Numbers can have at most 10 digits." msgstr "" -#: js/notation.js:353 -msgid "Lilypond cannot process pickup of " -msgstr "Lilypond não pode processar a coleta de" +#: js/activity.js:390 +#: js/activity.js:395 +msgid "Search for blocks" +msgstr "" -#: js/turtledefs.js:40 -#.TRANS: put the URL to the guide here, e.g., https://github.com/sugarlabs/turtleblocksjs/tree/master/guide/README.md -msgid "guide url" -msgstr "guia url" +#: js/activity.js:1413 +msgid "Refresh your browser to change to advanced mode." +msgstr "Atualize a página do seu navegador para mudar para o modo avançado." -#: js/turtledefs.js:85 -#: js/turtledefs.js:437 -msgid "Turtle Blocks is a Logo-inspired turtle that draws colorful pictures with snap-together visual-programming blocks." +#: js/activity.js:1418 +msgid "Refresh your browser to change to beginner mode." +msgstr "Atualize a página do seu navegador para mudar para o modo iniciante." + +#: js/activity.js:1477 +msgid "Catching mice" msgstr "" -#: js/turtledefs.js:118 -#: js/turtledefs.js:220 -msgid "search" -msgstr "buscar" +#: js/activity.js:1478 +msgid "Cleaning the instruments" +msgstr "" -#: js/turtledefs.js:120 -#: js/turtledefs.js:222 -#: js/WidgetBlocks.js:437 -#: js/MeterBlocks.js:1343 -#.TRANS: musical meter (time signature), e.g., 4:4 -msgid "meter" -msgstr "metro" +#: js/activity.js:1479 +msgid "Testing key pieces" +msgstr "" -#: js/turtledefs.js:122 -#: js/turtledefs.js:224 -msgid "intervals" -msgstr "intervalos" +#: js/activity.js:1480 +msgid "Sight-reading" +msgstr "" -#: js/turtledefs.js:124 -#: js/turtledefs.js:226 -msgid "ornament" -msgstr "ornamento" +#: js/activity.js:1481 +msgid "Combining math and music" +msgstr "" -#: js/turtledefs.js:125 -#: js/turtledefs.js:227 -#: js/VolumeBlocks.js:362 -#: js/VolumeBlocks.js:502 -#: js/VolumeBlocks.js:545 -msgid "volume" -msgstr "volume" +#: js/activity.js:1482 +msgid "Generating more blocks" +msgstr "" -#: js/turtledefs.js:129 -#: js/turtledefs.js:231 -msgid "boxes" -msgstr "caixas" +#: js/activity.js:1483 +msgid "Do Re Mi Fa Sol La Ti Do" +msgstr "" -#: js/turtledefs.js:130 -#: js/turtledefs.js:232 -msgid "widgets" -msgstr "widgets" +#: js/activity.js:1484 +msgid "Tuning string instruments" +msgstr "" -#: js/turtledefs.js:131 -#: js/turtledefs.js:233 -#: js/phrasemaker.js:824 -msgid "graphics" -msgstr "gráficos" +#: js/activity.js:1485 +msgid "Pressing random keys" +msgstr "" -#: js/turtledefs.js:134 -#: js/turtledefs.js:236 -msgid "boolean" -msgstr "boleano" +#: js/activity.js:1663 +msgid "plugins will be removed upon restart." +msgstr "" -#: js/turtledefs.js:137 -#: js/turtledefs.js:239 -#: js/HeapBlocks.js:59 -#: js/status.js:147 -msgid "heap" -msgstr "pilha" +#: js/activity.js:1672 +msgid "show Cartesian" +msgstr "mostrar Cartesiano" -#: js/turtledefs.js:138 -#: js/turtledefs.js:240 -#: js/ProgramBlocks.js:495 -#: js/DictBlocks.js:142 -msgid "dictionary" +#: js/activity.js:2211 +#: js/palette.js:589 +#: js/blocks/RhythmBlocks.js:923 +#: js/blocks/PitchBlocks.js:442 +#: js/blocks/PitchBlocks.js:1786 +#.TRANS: a numeric mapping of the notes in an octave based on the musical mode +msgid "scale degree" +msgstr "escala de graus" + +#: js/activity.js:2214 +#: js/palette.js:598 +msgid "voice name" +msgstr "nome da voz" + +#: js/activity.js:2217 +#: js/palette.js:595 +msgid "invert mode" +msgstr "modo inverso" + +#: js/activity.js:2220 +msgid "output tools" msgstr "" -#: js/turtledefs.js:139 -#: js/turtledefs.js:241 -msgid "ensemble" -msgstr "conjunto" +#: js/activity.js:2223 +msgid "custom note" +msgstr "" -#: js/turtledefs.js:140 -#: js/turtledefs.js:242 -msgid "extras" -msgstr "extras" +#: js/activity.js:2226 +msgid "accidental name" +msgstr "" -#: js/turtledefs.js:142 -#: js/turtledefs.js:244 -#.TRANS: program as in computer program -#.TRANS: program as in computer program -msgid "program" +#: js/activity.js:2229 +#: js/blocks/PitchBlocks.js:855 +msgid "east indian solfege" msgstr "" -#: js/turtledefs.js:143 -#: js/turtledefs.js:245 -msgid "my blocks" -msgstr "meus blocos" +#: js/activity.js:2232 +#: js/blocks/PitchBlocks.js:869 +msgid "note name" +msgstr "" -#: js/turtledefs.js:185 -#: js/turtledefs.js:281 -msgid "artwork" -msgstr "ilustrção" +#: js/activity.js:2235 +#: js/blocks/IntervalsBlocks.js:94 +msgid "temperament name" +msgstr "" -#: js/turtledefs.js:185 -#: js/turtledefs.js:281 -msgid "logic" -msgstr "lógica" +#: js/activity.js:2238 +#: js/palette.js:592 +msgid "mode name" +msgstr "nome do modo" -#: js/turtledefs.js:185 -#: js/turtledefs.js:281 -msgid "music" -msgstr "música" +#: js/activity.js:2241 +msgid "chord name" +msgstr "" -#: js/turtledefs.js:187 -#: js/turtledefs.js:463 -msgid "Music Blocks is a collection of tools for exploring fundamental musical concepts in a fun way." -msgstr "Music Blocks é uma coleção de ferramentas para explorar conceitos musicais fundamentais de uma forma divertida." +#: js/activity.js:2244 +#: js/palette.js:615 +msgid "interval name" +msgstr "nome do intervalo" -#: js/turtledefs.js:436 -msgid "Welcome to Turtle Blocks" +#: js/activity.js:2247 +msgid "filter type" msgstr "" -#: js/turtledefs.js:438 -#: js/turtledefs.js:465 -#: js/turtledefs.js:774 -#: js/turtledefs.js:805 -msgid "The current version is" -msgstr "A versão atual é" +#: js/activity.js:2250 +msgid "oscillator type" +msgstr "" -#: js/turtledefs.js:446 -#: js/turtledefs.js:483 -msgid "Click the run button to run the project in fast mode." -msgstr "Clique no botão executar para tocar o projeto em modo rápido" +#: js/activity.js:2253 +#: js/blocks.js:2479 +#: js/blocks.js:2487 +msgid "audio file" +msgstr "" -#: js/turtledefs.js:452 -msgid "Stop the turtle." +#: js/activity.js:2256 +#: js/blocks/DrumBlocks.js:32 +msgid "noise name" msgstr "" -#: js/turtledefs.js:454 -#: js/turtledefs.js:491 -msgid "You can also type Alt-S to stop." -msgstr "Você também pode pressionar Alt-S para parar" +#: js/activity.js:2259 +#: js/blocks/DrumBlocks.js:75 +msgid "drum name" +msgstr "" -#: js/turtledefs.js:462 -#: js/help.js:333 -msgid "Welcome to Music Blocks" -msgstr "Bem vindo ao Music Blocks" +#: js/activity.js:2262 +#: js/blocks/DrumBlocks.js:119 +msgid "effects name" +msgstr "" -#: js/turtledefs.js:472 -#: js/help.js:334 -msgid "Meet Mr. Mouse!" -msgstr "Conheça o Sr. Ratinho!" +#: js/activity.js:2265 +msgid "wrap mode" +msgstr "" -#: js/turtledefs.js:473 -msgid "Mr Mouse is our Music Blocks conductor." -msgstr "Sr Ratinho é o nosso guia do Music Blocks." +#: js/activity.js:2268 +msgid "load file" +msgstr "" -#: js/turtledefs.js:475 -msgid "Mr Mouse encourages you to explore Music Blocks." -msgstr "Sr Ratinho incentiva a explorar o Music Blocks." +#: js/activity.js:2435 +#: js/activity.js:5851 +msgid "This block is deprecated." +msgstr "Este bloco está descontinuado" -#: js/turtledefs.js:477 -msgid "Let us start our tour!" -msgstr "Vamos iniciar o nosso tour!" +#: js/activity.js:2437 +#: js/activity.js:5853 +msgid "Block cannot be found." +msgstr "O bloco não foi encontrado." -#: js/turtledefs.js:489 -msgid "Stop the music (and the mice)." -msgstr "Parar a música (e o rato)" +#: js/activity.js:2645 +msgid "Saving block artwork" +msgstr "" -#: js/turtledefs.js:499 -msgid "Record your project as video." +#: js/activity.js:2656 +msgid "Erase" +msgstr "" + +#: js/activity.js:2683 +#: js/activity.js:2705 +msgid "Paste" +msgstr "Colar" + +#: js/activity.js:2687 +msgid "Save block help" +msgstr "" + +#: js/activity.js:2772 +msgid "Jumping to the bottom of the page." +msgstr "" + +#: js/activity.js:2778 +msgid "Scrolling up." +msgstr "" + +#: js/activity.js:2783 +msgid "Scrolling down." msgstr "" -#: js/turtledefs.js:505 -msgid "Toggle Fullscreen mode." +#: js/activity.js:2788 +msgid "Extracting block" msgstr "" -#: js/turtledefs.js:511 -msgid "Initialize a new project." -msgstr "Iniciar um novo projeto." +#: js/activity.js:2796 +msgid "Moving block up." +msgstr "" -#: js/turtledefs.js:517 -msgid "You can also load projects from the file system." -msgstr "Você também pode carregar projetos do sistema de arquivos." +#: js/activity.js:2817 +msgid "Moving block down." +msgstr "" -#: js/turtledefs.js:522 -#: js/StringHelper.js:46 -msgid "Delete" -msgstr "Excluir" +#: js/activity.js:2838 +msgid "Moving block left." +msgstr "" -#: js/turtledefs.js:523 -msgid "To delete a block, just right-click on it, then you will be able to see the delete option" +#: js/activity.js:2855 +msgid "Moving block right." msgstr "" -#: js/turtledefs.js:528 -#: js/activity.js:2270 -#: js/LocalCard.js:31 -msgid "Copy" -msgstr "Copiar" +#: js/activity.js:2870 +msgid "Jump to home position." +msgstr "" -#: js/turtledefs.js:529 -msgid "To copy a block, just right-click on it, then you will be able to see the copy option" +#: js/activity.js:2897 +msgid "Hide blocks" msgstr "" -#: js/turtledefs.js:535 -msgid "To extract a block, just right-click on it, then you will be able to see the extract option" +#: js/activity.js:4500 +msgid "Click the run button to run the project." msgstr "" -#: js/turtledefs.js:542 -#: js/turtledefs.js:552 -#: js/turtledefs.js:573 -msgid "Save your project to a file." -msgstr "Salve seu projeto em um arquivo." +#: js/activity.js:5692 +msgid "Show/hide block" +msgstr "Mostrar/ocultar bloco" -#: js/turtledefs.js:549 -#: js/turtledefs.js:570 -msgid "save" -msgstr "salvar" +#: js/activity.js:5698 +msgid "Expand/collapse blocks" +msgstr "Expandir/recolher blocos" -#: js/turtledefs.js:556 -#: js/turtledefs.js:577 -msgid "Save graphics from your project to as SVG." -msgstr "Salvar os grficos do seu projeto como SVG." +#: js/activity.js:5976 +msgid "Could not parse JSON input." +msgstr "Não foi possível analisar a entrada JSON." -#: js/turtledefs.js:560 -#: js/turtledefs.js:581 -msgid "Save graphics from your project as PNG." -msgstr "Salvar os gráficos do seu projeto como PNG." +#: js/activity.js:6475 +#: js/activity.js:6580 +#: js/activity.js:6631 +msgid "Cannot load project from the file. Please check the file type." +msgstr "Não foi possível carregar o projeto do arquivo. Por favor, verifique o tipo de arquivo." -#: js/turtledefs.js:564 -#: js/turtledefs.js:597 -msgid "Save block artwork as an SVG file." -msgstr "Salvar ilustração do bloco como uma arquivo SVG." +#: js/activity.js:6917 +msgid "Invalid parameters" +msgstr "Parâmetros inválidos" -#: js/turtledefs.js:585 -msgid "Save audio from your project as WAV." -msgstr "Slavar o audio do seu projeto como WAV" +#: js/blocks.js:1212 +#: js/blocks.js:3444 +#: js/blocks.js:3834 +#: js/blocks.js:3865 +#: js/blocks.js:3914 +#: js/blocks.js:3949 +#: js/blocks.js:6586 +#: js/palette.js:509 +#: js/palette.js:638 +#: js/palette.js:1105 +#: js/blocks/BoxesBlocks.js:282 +#: js/blocks/BoxesBlocks.js:285 +#: js/blocks/BoxesBlocks.js:405 +#: js/blocks/BoxesBlocks.js:594 +msgid "box" +msgstr "caixa" -#: js/turtledefs.js:589 -msgid "Save your project to as an ABC file." -msgstr "Salvar seu projeto para uma arquivo ABC." +#: js/blocks.js:1713 +msgid "Consider breaking this stack into parts." +msgstr "Considere dividir essa pilha em partes." -#: js/turtledefs.js:593 -msgid "Save your project to as a Lilypond file." -msgstr "Salve seu projeto como um arquivo do Lilypond." +#: js/blocks.js:2472 +#: js/palette.js:653 +#: js/blocks/MediaBlocks.js:602 +msgid "open file" +msgstr "abrir arquivo" -#: js/turtledefs.js:604 -msgid "Load samples from server" -msgstr "Carregar amostras do servidor" +#: js/blocks.js:3247 +#: js/palette.js:574 +#: js/blocks/MediaBlocks.js:892 +#: js/blocks/MediaBlocks.js:963 +msgid "text" +msgstr "texto" -#: js/turtledefs.js:605 -msgid "This button opens a viewer for loading example projects." -msgstr "Este botão abre um visualizador para carregar exemplos de projetos." +#: js/blocks.js:3443 +#: js/palette.js:641 +#: js/palette.js:642 +#: js/blocks/BoxesBlocks.js:514 +msgid "store in box" +msgstr "guardar na caixa" -#: js/turtledefs.js:611 -msgid "Palette buttons" -msgstr "Botões de paleta" +#: js/blocks.js:3448 +#: js/blocks.js:3888 +#: js/blocks.js:3923 +#: js/blocks.js:3958 +#: js/blocks.js:5862 +#: js/blocks.js:5883 +#: js/blocks/BoxesBlocks.js:772 +msgid "box1" +msgstr "caixa1" -#: js/turtledefs.js:612 -msgid "This toolbar contains the palette buttons including Rhythm Pitch Tone Action and more." -msgstr "Essa barra de ferramentas contém a paleta de botões, incluindo Ação do Ritmo do Tom da Nota e mais." +#: js/blocks.js:3450 +#: js/blocks.js:3890 +#: js/blocks.js:3925 +#: js/blocks.js:3960 +#: js/blocks.js:5864 +#: js/blocks.js:5885 +#: js/blocks/BoxesBlocks.js:663 +msgid "box2" +msgstr "caixa2" -#: js/turtledefs.js:614 -msgid "Click to show the palettes of blocks and drag blocks from the palettes onto the canvas to use them." -msgstr "Clique para mostrar a paleta de botões e arraste blocos da paleta para a tela para usá-los." +#: js/blocks.js:4122 +#: js/palette.js:639 +#: js/palette.js:644 +#: js/palette.js:1041 +#: js/blocks/BoxesBlocks.js:591 +msgid "store in" +msgstr "guardar em" -#: js/turtledefs.js:620 -msgid "Cartesian/Polar" -msgstr "Cartesiano/Polar" +#: js/blocks.js:4122 +#: js/blocks/BoxesBlocks.js:595 +#: js/blocks/DictBlocks.js:215 +#: js/blocks/DictBlocks.js:289 +#: js/blocks/EnsembleBlocks.js:391 +#: js/blocks/EnsembleBlocks.js:402 +#: js/blocks/MediaBlocks.js:746 +#: js/blocks/PitchBlocks.js:656 +#: js/blocks/PitchBlocks.js:934 +#: js/blocks/PitchBlocks.js:1866 +#: js/blocks/ProgramBlocks.js:390 +#: js/blocks/ProgramBlocks.js:495 +#: js/blocks/ProgramBlocks.js:658 +#: js/blocks/ToneBlocks.js:1025 +msgid "name" +msgstr "nome" -#: js/turtledefs.js:621 -msgid "Show or hide a coordinate grid." -msgstr "Mostrar ou ocultar uma grade de coordenadas." +#: js/blocks.js:4122 +#: js/blocks/BoxesBlocks.js:75 +#: js/blocks/BoxesBlocks.js:595 +#: js/blocks/DictBlocks.js:289 +#: js/blocks/DictBlocks.js:430 +#: js/blocks/HeapBlocks.js:544 +#: js/blocks/RhythmBlocks.js:1130 +msgid "value" +msgstr "valor" -#: js/turtledefs.js:627 -msgid "Clear the screen and return the mice to their initial positions." -msgstr "Limpar a tela e retornar o rato para a sua posição inicial." +#: js/blocks.js:4465 +msgid "Forever loop detected inside a note value block. Unexpected things may happen." +msgstr "" -#: js/turtledefs.js:633 -msgid "Collapse the graphics window." -msgstr "Recolher a janela gráfica." +#: js/blocks.js:4988 +msgid "There is no block selected." +msgstr "Não há bloco selecionado." -#: js/turtledefs.js:638 -#: js/activity.js:4256 -#: js/activity.js:4256 -msgid "Home" -msgstr "Início" +#: js/blocks.js:5091 +#: js/blocks/MediaBlocks.js:888 +msgid "show" +msgstr "mostrar" -#: js/turtledefs.js:639 -msgid "Return all blocks to the center of the screen." -msgstr "Retornar todos os blocos para o centro da tela." +#: js/blocks.js:5094 +#: js/blocks/MediaBlocks.js:803 +#.TRANS: Avatar is the image used to determine the appearance of the mouse. +msgid "avatar" +msgstr "avatar" -#: js/turtledefs.js:644 -msgid "Show/hide blocks" -msgstr "Mostrar/ocultar blocos" +#: js/blocks.js:5097 +#: js/blocks/ToneBlocks.js:1010 +#: js/widgets/sampler.js:975 +#.TRANS: The sound sample that the user uploads. +msgid "sample" +msgstr "" -#: js/turtledefs.js:645 -msgid "Hide or show the blocks and the palettes." -msgstr "Ocultar ou mostrar as paletas e os blocos." +#: js/lilypond.js:606 +msgid "brown rat" +msgstr "rato marron" -#: js/turtledefs.js:650 -msgid "Expand/collapse collapsable blocks" -msgstr "Expandir/recolher blocos recolhíveis" +#: js/lilypond.js:607 +msgid "mole" +msgstr "topeira" -#: js/turtledefs.js:651 -msgid "Expand or collapse start and action stacks." -msgstr "Expandir ou recolher pilhas de início e ação." +#: js/lilypond.js:608 +msgid "chipmunk" +msgstr "chimpanzé" -#: js/turtledefs.js:658 -#: js/activity.js:4265 -msgid "Decrease block size" -msgstr "Diminuir o tamanho do bloco" +#: js/lilypond.js:609 +msgid "red squirrel" +msgstr "esquilo vermelho" -#: js/turtledefs.js:659 -msgid "Decrease the size of the blocks." -msgstr "Diminua o tamanho dos blocos." +#: js/lilypond.js:610 +msgid "guinea pig" +msgstr "porquinho da índia" -#: js/turtledefs.js:664 -#: js/activity.js:4267 -msgid "Increase block size" -msgstr "Aumentar o tamanho do bloco" +#: js/lilypond.js:611 +msgid "capybara" +msgstr "capivara" -#: js/turtledefs.js:665 -msgid "Increase the size of the blocks." -msgstr "Aumentar o tamanho dos blocos." +#: js/lilypond.js:612 +msgid "coypu" +msgstr "nútria" -#: js/turtledefs.js:670 -msgid "Expand/collapse option toolbar" -msgstr "Expandir/recolher a barra de ferramentas" +#: js/lilypond.js:613 +msgid "black rat" +msgstr "rato de navio" -#: js/turtledefs.js:671 -msgid "Click this button to expand or collapse the auxillary toolbar." -msgstr "Clique neste botão para expandir ou recolher a barra de ferramentas auxiliar." +#: js/lilypond.js:614 +msgid "grey squirrel" +msgstr "esquilo cinza" -#: js/turtledefs.js:676 -msgid "Run slow" -msgstr "Executar devagar" +#: js/lilypond.js:615 +msgid "flying squirrel" +msgstr "esquilo voador" -#: js/turtledefs.js:677 -msgid "Click to run the project in slow mode." -msgstr "Clique para executar o projeto no modo lento." +#: js/lilypond.js:616 +msgid "bat" +msgstr "morcego" -#: js/turtledefs.js:683 -msgid "Click to run the project step by step." -msgstr "Clique para executar o projeto passo a passo." +#: js/lilypond.js:749 +#: js/lilypond.js:913 +#: js/lilypond.js:951 +#: js/blocks/ActionBlocks.js:1256 +#: js/blocks/ExtrasBlocks.js:556 +msgid "start drum" +msgstr "iniciar bateria" -#: js/turtledefs.js:690 -msgid "Display statistics about your Music project." -msgstr "Exibe estatísticas sobre o seu projeto de música." +#: js/logo.js:61 +msgid "Not a valid pitch name" +msgstr "Não é um nome de nota válido" -#: js/turtledefs.js:697 -msgid "Delete a selected plugin." -msgstr "Excluir o plugin selecionado." +#: js/logo.js:507 +#: js/blocks/ProgramBlocks.js:258 +#: js/blocks/ProgramBlocks.js:427 +msgid "You must select a file." +msgstr "Você deve selecionar um arquivo." -#: js/turtledefs.js:704 -msgid "Enable scrolling" -msgstr "Ativar rolagem" +#: js/logo.js:1696 +msgid "Playback is ready." +msgstr "Tocador está pronto" + +#: js/macros.js:711 +#: js/utils/musicutils.js:1162 +#: js/utils/synthutils.js:202 +#.TRANS: animal sound effect +msgid "duck" +msgstr "pato" + +#: js/notation.js:353 +msgid "Lilypond cannot process pickup of " +msgstr "Lilypond não pode processar a coleta de" + +#: js/palette.js:571 +msgid "grid" +msgstr "" + +#: js/palette.js:580 +msgid "effect" +msgstr "efeito" + +#: js/palette.js:586 +msgid "sargam" +msgstr "" + +#: js/palette.js:601 +#: js/blocks/PitchBlocks.js:1209 +msgid "custom pitch" +msgstr "tom personalizado" -#: js/turtledefs.js:705 -msgid "You can scroll the blocks on the canvas." -msgstr "Você pode rolar os blocos na tela." +#: js/palette.js:609 +msgid "accidental" +msgstr "acidental" -#: js/turtledefs.js:714 -msgid "Wrap Turtle" +#: js/palette.js:633 +#: js/blocks/PitchBlocks.js:405 +msgid "pitch converter" msgstr "" -#: js/turtledefs.js:715 -msgid "Turn Turtle wrapping On or Off." -msgstr "" +#: js/piemenus.js:200 +#: js/utils/musicutils.js:1187 +#: js/utils/musicutils.js:1207 +#: js/widgets/musickeyboard.js:2341 +#: js/widgets/phrasemaker.js:1908 +#: js/widgets/sampler.js:810 +#.TRANS: double sharp is a music term related to pitch +msgid "double sharp" +msgstr "afinação dupla" -#: js/turtledefs.js:725 -msgid "Restore blocks from the trash." -msgstr "Restaurar blocos da lixeira." +#: js/piemenus.js:201 +#: js/utils/musicutils.js:1185 +#: js/utils/musicutils.js:1208 +#: js/blocks/PitchBlocks.js:1539 +#: js/turtleactions/PitchActions.js:323 +#: js/widgets/musickeyboard.js:2342 +#: js/widgets/phrasemaker.js:1909 +#: js/widgets/sampler.js:811 +#.TRANS: sharp is a music term related to pitch +#.TRANS: sharp is a half-step up in pitch +msgid "sharp" +msgstr "afinado" -#: js/turtledefs.js:732 -msgid "Switch mode" -msgstr "Modo de troca" +#: js/piemenus.js:202 +#: js/utils/musicutils.js:1183 +#: js/utils/musicutils.js:1209 +#: js/widgets/musickeyboard.js:2343 +#: js/widgets/phrasemaker.js:1910 +#: js/widgets/sampler.js:812 +#.TRANS: natural is a music term related to pitch +msgid "natural" +msgstr "natural" -#: js/turtledefs.js:733 -msgid "Switch between beginner and advance modes." -msgstr "Trocar entre o modo iniciante e o modo avançado." +#: js/piemenus.js:203 +#: js/utils/musicutils.js:1181 +#: js/utils/musicutils.js:1210 +#: js/blocks/PitchBlocks.js:1498 +#: js/turtleactions/PitchActions.js:326 +#: js/widgets/musickeyboard.js:2344 +#: js/widgets/phrasemaker.js:1911 +#: js/widgets/sampler.js:813 +#.TRANS: flat is a music term related to pitch +#.TRANS: flat is a half-step down in pitch +msgid "flat" +msgstr "plano" -#: js/turtledefs.js:739 -msgid "Select your language preference." -msgstr "Selecionar suas preferência de idioma." +#: js/piemenus.js:204 +#: js/utils/musicutils.js:1179 +#: js/utils/musicutils.js:1211 +#: js/widgets/musickeyboard.js:2345 +#: js/widgets/phrasemaker.js:1912 +#: js/widgets/sampler.js:814 +#.TRANS: double flat is a music term related to pitch +msgid "double flat" +msgstr "plano duplo" -#: js/turtledefs.js:745 -msgid "Keyboard shortcuts" -msgstr "Atalhos de teclado" +#: js/piemenus.js:2864 +#: js/utils/musicutils.js:1006 +#: js/blocks/PitchBlocks.js:1385 +#.TRANS: unison is a music term related to intervals +#.TRANS: unison means the note is the same as the current note +msgid "unison" +msgstr "unisom" -#: js/turtledefs.js:746 -msgid "You can type d to create a do block and r to create a re block etc." -msgstr "Você pode pressionar d para criar um bloco com a nota Do e r para criar uma nota Re, etc." +#: js/piemenus.js:3018 +#: js/piemenus.js:3091 +#: js/utils/musicutils.js:1014 +#: js/utils/musicutils.js:1189 +#: js/utils/musicutils.js:1326 +#.TRANS: major is a music term related to intervals and mode +msgid "major" +msgstr "maior" -#: js/turtledefs.js:753 -msgid "Show these messages." -msgstr "Mostrar essas mensagens." +#: js/piemenus.js:3018 +#: js/piemenus.js:3091 +#: js/utils/musicutils.js:1032 +#.TRANS: modal scale for music +msgid "ionian" +msgstr "ioniano" -#: js/turtledefs.js:759 -#: js/turtledefs.js:790 -#: js/help.js:335 -msgid "Guide" -msgstr "Guia" +#: js/piemenus.js:3020 +#: js/piemenus.js:3095 +#: js/utils/musicutils.js:1012 +#: js/utils/musicutils.js:1190 +#: js/utils/musicutils.js:1323 +#.TRANS: minor is a music term related to intervals and mode +msgid "minor" +msgstr "menor" -#: js/turtledefs.js:760 -msgid "A detailed guide to Turtle Blocks is available." -msgstr "" +#: js/piemenus.js:3020 +#: js/piemenus.js:3095 +#: js/utils/musicutils.js:1042 +#.TRANS: modal scale for music +msgid "aeolian" +msgstr "aeoliano" -#: js/turtledefs.js:764 -msgid "Turtle Blocks Guide" +#: js/piemenus.js:3410 +msgid "Duplicate" msgstr "" -#: js/turtledefs.js:767 -#: js/turtledefs.js:798 -#: js/help.js:336 -msgid "About" -msgstr "Sobre" +#: js/piemenus.js:3412 +msgid "Move to trash" +msgstr "Mover para a lixeira" -#: js/turtledefs.js:768 -msgid "Turtle Blocks is an open source collection of tools for exploring musical concepts." -msgstr "" +#: js/piemenus.js:3413 +#: js/widgets/timbre.js:968 +#: planet/js/StringHelper.js:69 +msgid "Close" +msgstr "Fechar" -#: js/turtledefs.js:770 -msgid "A full list of contributors can be found in the Turtle Blocks GitHub repository." -msgstr "" +#: js/piemenus.js:3419 +msgid "Save stack" +msgstr "Salvar pilha" -#: js/turtledefs.js:772 -msgid "Turtle Blocks is licensed under the AGPL." +#: js/piemenus.js:3449 +msgid "In order to copy a sample, you must reload the widget, import the sample again, and export it." msgstr "" -#: js/turtledefs.js:780 -msgid "Turtle Blocks GitHub repository" +#: js/piemenus.js:3812 +msgid "You have chosen key " msgstr "" -#: js/turtledefs.js:783 -#: js/turtledefs.js:814 -#: js/help.js:337 -#: js/help.js:359 -msgid "Congratulations." -msgstr "Parabéns." - -#: js/turtledefs.js:784 -msgid "You have finished the tour. Please enjoy Turtle Blocks!" +#: js/piemenus.js:3816 +msgid " for your pitch preview." msgstr "" -#: js/turtledefs.js:791 -msgid "A detailed guide to Music Blocks is available." -msgstr "Um guia detalhado do Music Blocks está disponível." - -#: js/turtledefs.js:795 -#: js/SaveInterface.js:76 -msgid "Music Blocks Guide" -msgstr "Guia do Music Blocks" - -#: js/turtledefs.js:799 -msgid "Music Blocks is an open source collection of tools for exploring musical concepts." -msgstr "Music Blocks é uma coleção de ferramentas de código aberto para explorar conceitos musicais." - -#: js/turtledefs.js:801 -msgid "A full list of contributors can be found in the Music Blocks GitHub repository." -msgstr "A lista completa de colaboradores pode ser encontrada no repositório Github do Music Blocks." - -#: js/turtledefs.js:803 -msgid "Music Blocks is licensed under the AGPL." -msgstr "Music Blocks é licenciado sob a GNU/AGPL." +#: js/turtle-singer.js:1363 +#.TRANS: partials are weighted components in a harmonic series +msgid "You must have at least one Partial block inside of a Weighted-partial block" +msgstr "Você deve ter pelo menos um bloco Parcial dentro de um bloco parcial Ponderado" -#: js/turtledefs.js:811 -msgid "Music Blocks GitHub repository" -msgstr "Repositório Github do Music Blocks" +#: js/turtle-singer.js:2077 +msgid "synth cannot play chords." +msgstr "sintetizador não pode tocar acordes." -#: js/turtledefs.js:815 -msgid "You have finished the tour. Please enjoy Music Blocks!" -msgstr "Você terminou o tour. Por favor, aproveite o Music Blocks!" +#: js/utils/musicutils.js:505 +#: js/utils/musicutils.js:645 +#: js/widgets/pitchdrummatrix.js:228 +#: js/widgets/musickeyboard.js:2885 +msgid "rest" +msgstr "resto" -#: js/activity.js:369 -msgid "Search for blocks" +#: js/utils/musicutils.js:689 +msgid "Perfect unison" msgstr "" -#: js/activity.js:1145 -msgid "Refresh your browser to change to advanced mode." -msgstr "Atualize a página do seu navegador para mudar para o modo avançado." - -#: js/activity.js:1150 -msgid "Refresh your browser to change to beginner mode." -msgstr "Atualize a página do seu navegador para mudar para o modo iniciante." +#: js/utils/musicutils.js:689 +msgid "Diminished second" +msgstr "" -#: js/activity.js:1184 -msgid "Catching mice" +#: js/utils/musicutils.js:690 +msgid "Minor second" msgstr "" -#: js/activity.js:1185 -msgid "Cleaning the instruments" +#: js/utils/musicutils.js:690 +msgid "Augmented unison" msgstr "" -#: js/activity.js:1186 -msgid "Testing key pieces" +#: js/utils/musicutils.js:691 +msgid "Major second" msgstr "" -#: js/activity.js:1187 -msgid "Sight-reading" +#: js/utils/musicutils.js:691 +msgid "Diminished third" msgstr "" -#: js/activity.js:1188 -msgid "Combining math and music" +#: js/utils/musicutils.js:692 +msgid "Minor third" msgstr "" -#: js/activity.js:1189 -msgid "Generating more blocks" +#: js/utils/musicutils.js:692 +msgid "Augmented second" msgstr "" -#: js/activity.js:1190 -msgid "Do Re Mi Fa Sol La Ti Do" +#: js/utils/musicutils.js:693 +msgid "Major third" msgstr "" -#: js/activity.js:1191 -msgid "Tuning string instruments" +#: js/utils/musicutils.js:693 +msgid "Diminished fourth" msgstr "" -#: js/activity.js:1192 -msgid "Pressing random keys" +#: js/utils/musicutils.js:694 +msgid "Perfect fourth" msgstr "" -#: js/activity.js:1351 -msgid "plugins will be removed upon restart." +#: js/utils/musicutils.js:694 +msgid "Augmented third" msgstr "" -#: js/activity.js:1360 -msgid "show Cartesian" -msgstr "mostrar Cartesiano" +#: js/utils/musicutils.js:695 +msgid "Diminished fifth" +msgstr "" -#: js/activity.js:1842 -msgid "output tools" +#: js/utils/musicutils.js:695 +msgid "Augmented fourth" msgstr "" -#: js/activity.js:1845 -msgid "custom note" +#: js/utils/musicutils.js:696 +msgid "Perfect fifth" msgstr "" -#: js/activity.js:1848 -msgid "accidental name" +#: js/utils/musicutils.js:696 +msgid "Diminished sixth" msgstr "" -#: js/activity.js:1851 -#: js/PitchBlocks.js:855 -msgid "east indian solfege" +#: js/utils/musicutils.js:697 +msgid "Minor sixth" msgstr "" -#: js/activity.js:1854 -#: js/PitchBlocks.js:869 -msgid "note name" +#: js/utils/musicutils.js:697 +msgid "Augmented fifth" msgstr "" -#: js/activity.js:1857 -#: js/IntervalsBlocks.js:94 -msgid "temperament name" +#: js/utils/musicutils.js:698 +msgid "Major sixth" msgstr "" -#: js/activity.js:1863 -msgid "chord name" +#: js/utils/musicutils.js:698 +msgid "Diminished seventh" msgstr "" -#: js/activity.js:1869 -msgid "filter type" +#: js/utils/musicutils.js:699 +msgid "Minor seventh" msgstr "" -#: js/activity.js:1872 -msgid "oscillator type" +#: js/utils/musicutils.js:699 +msgid "Augmented sixth" msgstr "" -#: js/activity.js:1878 -#: js/DrumBlocks.js:32 -msgid "noise name" +#: js/utils/musicutils.js:700 +msgid "Major seventh" msgstr "" -#: js/activity.js:1881 -#: js/DrumBlocks.js:75 -msgid "drum name" +#: js/utils/musicutils.js:700 +msgid "Diminished octave" msgstr "" -#: js/activity.js:1884 -#: js/DrumBlocks.js:119 -msgid "effects name" +#: js/utils/musicutils.js:701 +msgid "Perfect octave" msgstr "" -#: js/activity.js:1887 -msgid "wrap mode" +#: js/utils/musicutils.js:701 +msgid "Augmented seventh" msgstr "" -#: js/activity.js:1890 -msgid "load file" +#: js/utils/musicutils.js:702 +msgid "Minor ninth" msgstr "" -#: js/activity.js:2056 -msgid "This block is deprecated." -msgstr "Este bloco está descontinuado" +#: js/utils/musicutils.js:702 +msgid "Augmented octave" +msgstr "" -#: js/activity.js:2058 -msgid "Block cannot be found." -msgstr "O bloco não foi encontrado." +#: js/utils/musicutils.js:703 +msgid "Major ninth" +msgstr "" -#: js/activity.js:2266 -msgid "Saving block artwork" +#: js/utils/musicutils.js:703 +msgid "Diminished tenth" msgstr "" -#: js/activity.js:2277 -msgid "Erase" +#: js/utils/musicutils.js:704 +msgid "Minor tenth" msgstr "" -#: js/activity.js:2301 -#: js/activity.js:2323 -msgid "Paste" -msgstr "Colar" +#: js/utils/musicutils.js:704 +msgid "Augmented ninth" +msgstr "" -#: js/activity.js:2305 -msgid "Save block help" +#: js/utils/musicutils.js:705 +msgid "Major tenth" msgstr "" -#: js/activity.js:2390 -msgid "Jumping to the bottom of the page." +#: js/utils/musicutils.js:705 +msgid "Diminished eleventh" msgstr "" -#: js/activity.js:2396 -msgid "Scrolling up." +#: js/utils/musicutils.js:706 +msgid "Perfect eleventh" msgstr "" -#: js/activity.js:2401 -msgid "Scrolling down." +#: js/utils/musicutils.js:706 +msgid "Augmented tenth" msgstr "" -#: js/activity.js:2406 -msgid "Extracting block" +#: js/utils/musicutils.js:707 +msgid "Diminished twelfth" msgstr "" -#: js/activity.js:2414 -msgid "Moving block up." +#: js/utils/musicutils.js:707 +msgid "Augmented eleventh" msgstr "" -#: js/activity.js:2435 -msgid "Moving block down." +#: js/utils/musicutils.js:708 +msgid "Perfect twelfth" msgstr "" -#: js/activity.js:2456 -msgid "Moving block left." +#: js/utils/musicutils.js:708 +msgid "Diminished thirteenth" msgstr "" -#: js/activity.js:2473 -msgid "Moving block right." +#: js/utils/musicutils.js:709 +msgid "Minor thirteenth" msgstr "" -#: js/activity.js:2488 -msgid "Jump to home position." +#: js/utils/musicutils.js:709 +msgid "Augmented fifth, plus an octave" msgstr "" -#: js/activity.js:2515 -msgid "Hide blocks" +#: js/utils/musicutils.js:710 +msgid "Major thirteenth" msgstr "" -#: js/activity.js:3389 -msgid "Click the run button to run the project." +#: js/utils/musicutils.js:710 +msgid "Diminished seventh, plus an octave" msgstr "" -#: js/activity.js:3456 -#: js/SaveInterface.js:131 -#: js/SaveInterface.js:204 -#: js/SaveInterface.js:262 -#: js/SaveInterface.js:389 -#: js/SaveInterface.js:417 -#: js/ProjectStorage.js:27 -#: js/GlobalPlanet.js:467 -#: js/GlobalPlanet.js:469 -#: js/GlobalPlanet.js:495 -#.TRANS: default project title when saving as Lilypond -msgid "My Project" -msgstr "Meu projeto" +#: js/utils/musicutils.js:838 +#.TRANS: ordinal number. Please keep exactly one space between each number. +msgid "1st 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th" +msgstr "1º 2º 3º 4º 5º 6º 7º 8º 9º 10º 11º 12º" -#: js/activity.js:4261 -msgid "Show/hide block" -msgstr "Mostrar/ocultar bloco" +#: js/utils/musicutils.js:1008 +#: js/utils/musicutils.js:1191 +#: js/utils/musicutils.js:1325 +#.TRANS: augmented is a music term related to intervals +msgid "augmented" +msgstr "aumentado" -#: js/activity.js:4263 -msgid "Expand/collapse blocks" -msgstr "Expandir/recolher blocos" +#: js/utils/musicutils.js:1010 +#: js/utils/musicutils.js:1192 +#: js/utils/musicutils.js:1324 +#.TRANS: diminished is a music term related to intervals and mode +msgid "diminished" +msgstr "diminuído" -#: js/activity.js:4381 -msgid "Could not parse JSON input." -msgstr "Não foi possível analisar a entrada JSON." +#: js/utils/musicutils.js:1016 +#: js/utils/musicutils.js:1322 +#: js/blocks/IntervalsBlocks.js:649 +#: js/turtleactions/IntervalsActions.js:120 +#: js/turtleactions/IntervalsActions.js:124 +#.TRANS: perfect is a music term related to intervals +msgid "perfect" +msgstr "perfeito" -#: js/activity.js:4684 -#: js/activity.js:4771 -#: js/activity.js:4821 -msgid "Cannot load project from the file. Please check the file type." -msgstr "Não foi possível carregar o projeto do arquivo. Por favor, verifique o tipo de arquivo." +#: js/utils/musicutils.js:1018 +#.TRANS: twelve semi-tone scale for music +msgid "chromatic" +msgstr "cromático" -#: js/activity.js:5051 -msgid "Invalid parameters" -msgstr "Parâmetros inválidos" +#: js/utils/musicutils.js:1019 +msgid "algerian" +msgstr "algeriano" -#: js/turtle-singer.js:1334 -#.TRANS: partials are weighted components in a harmonic series -msgid "You must have at least one Partial block inside of a Weighted-partial block" -msgstr "Você deve ter pelo menos um bloco Parcial dentro de um bloco parcial Ponderado" +#: js/utils/musicutils.js:1020 +msgid "spanish" +msgstr "espanhol" -#: js/turtle-singer.js:2048 -msgid "synth cannot play chords." -msgstr "sintetizador não pode tocar acordes." +#: js/utils/musicutils.js:1022 +#.TRANS: modal scale in music +msgid "octatonic" +msgstr "octatônico" + +#: js/utils/musicutils.js:1024 +#.TRANS: harmonic major scale in music +msgid "harmonic major" +msgstr "harmônico maior" + +#: js/utils/musicutils.js:1026 +#.TRANS: natural minor scales in music +msgid "natural minor" +msgstr "menor natural" -#: js/lilypond.js:614 -msgid "brown rat" -msgstr "rato marron" +#: js/utils/musicutils.js:1028 +#.TRANS: harmonic minor scale in music +msgid "harmonic minor" +msgstr "harmônico menor" -#: js/lilypond.js:615 -msgid "mole" -msgstr "topeira" +#: js/utils/musicutils.js:1030 +#.TRANS: melodic minor scale in music +msgid "melodic minor" +msgstr "menor melódico" -#: js/lilypond.js:616 -msgid "chipmunk" -msgstr "chimpanzé" +#: js/utils/musicutils.js:1034 +#.TRANS: modal scale for music +msgid "dorian" +msgstr "doriano" -#: js/lilypond.js:617 -msgid "red squirrel" -msgstr "esquilo vermelho" +#: js/utils/musicutils.js:1036 +#.TRANS: modal scale for music +msgid "phrygian" +msgstr "phrygianiano" -#: js/lilypond.js:618 -msgid "guinea pig" -msgstr "porquinho da índia" +#: js/utils/musicutils.js:1038 +#.TRANS: modal scale for music +msgid "lydian" +msgstr "lydiano" -#: js/lilypond.js:619 -msgid "capybara" -msgstr "capivara" +#: js/utils/musicutils.js:1040 +#.TRANS: modal scale for music +msgid "mixolydian" +msgstr "mixolydiano" -#: js/lilypond.js:620 -msgid "coypu" -msgstr "nútria" +#: js/utils/musicutils.js:1044 +#.TRANS: modal scale for music +msgid "locrian" +msgstr "locriano" -#: js/lilypond.js:621 -msgid "black rat" -msgstr "rato de navio" +#: js/utils/musicutils.js:1046 +#.TRANS: minor jazz scale for music +msgid "jazz minor" +msgstr "jazz menor" -#: js/lilypond.js:622 -msgid "grey squirrel" -msgstr "esquilo cinza" +#: js/utils/musicutils.js:1048 +#.TRANS: bebop scale for music +msgid "bebop" +msgstr "bebop" -#: js/lilypond.js:623 -msgid "flying squirrel" -msgstr "esquilo voador" +#: js/utils/musicutils.js:1049 +msgid "arabic" +msgstr "arábico" -#: js/lilypond.js:624 -msgid "bat" -msgstr "morcego" +#: js/utils/musicutils.js:1050 +msgid "byzantine" +msgstr "bizantino" -#: js/lilypond.js:757 -#: js/lilypond.js:921 -#: js/lilypond.js:959 -#: js/ActionBlocks.js:1256 -#: js/ExtrasBlocks.js:553 -msgid "start drum" -msgstr "iniciar bateria" +#: js/utils/musicutils.js:1052 +#.TRANS: musical scale for music by Verdi +msgid "enigmatic" +msgstr "enigmático" -#: js/SaveInterface.js:59 -#: js/SaveInterface.js:61 -#: js/SaveInterface.js:93 -msgid "Music Blocks Project" -msgstr "Projeto Music Blocks" +#: js/utils/musicutils.js:1053 +msgid "ethiopian" +msgstr "etiopiano" -#: js/SaveInterface.js:63 -msgid "This project was created in Music Blocks" -msgstr "Este projeto foi criado no Music Blocks" +#: js/utils/musicutils.js:1055 +#.TRANS: Ethiopic scale for music +msgid "geez" +msgstr "geez" -#: js/SaveInterface.js:67 -msgid "Music Blocks is a Free/Libre Software application." -msgstr "O Music Blocks é Software Livre e gratuito." +#: js/utils/musicutils.js:1056 +msgid "hindu" +msgstr "hindu" -#: js/SaveInterface.js:69 -msgid "The source code can be accessed at" -msgstr "O código fonte pode ser acessado em " +#: js/utils/musicutils.js:1057 +msgid "hungarian" +msgstr "húngaro" -#: js/SaveInterface.js:72 -msgid "For more information, please consult the" -msgstr "Para mais informações, consulte por favor " +#: js/utils/musicutils.js:1059 +#.TRANS: minor Romanian scale for music +msgid "romanian minor" +msgstr "romano menor" -#: js/SaveInterface.js:83 -msgid "Alternatively, open the file in Music Blocks using the Load project button." -msgstr "Alternativamente, abra o arquivo no Music Blocks usando o botão Carregar projeto" +#: js/utils/musicutils.js:1060 +msgid "spanish gypsy" +msgstr "espanhol cigano" -#: js/SaveInterface.js:85 -msgid "Project Code" -msgstr "Código do Projeto" +#: js/utils/musicutils.js:1062 +#.TRANS: musical scale for Mid-Eastern music +msgid "maqam" +msgstr "maqamo" -#: js/SaveInterface.js:87 -msgid "This code stores data about the blocks in a project." -msgstr "Este código contém dados sobre os blocos de um projeto." +#: js/utils/musicutils.js:1064 +#.TRANS: minor blues scale for music +msgid "minor blues" +msgstr "blues menor" -#: js/SaveInterface.js:89 -msgid "Show" -msgstr "Mostrar" +#: js/utils/musicutils.js:1066 +#.TRANS: major blues scale for music +msgid "major blues" +msgstr "blues maior" -#: js/SaveInterface.js:91 -msgid "Hide" -msgstr "Ocultar" +#: js/utils/musicutils.js:1067 +msgid "whole tone" +msgstr "tom inteiro" -#: js/SaveInterface.js:197 -#: js/SaveInterface.js:58 -msgid "No description provided" -msgstr "Sem descrição fornecida" +#: js/utils/musicutils.js:1069 +#.TRANS: pentatonic is a general term that means "five note scale". This scale is typically known as "minor pentatonic" +msgid "minor pentatonic" +msgstr "pentatônico menor" -#: js/SaveInterface.js:332 -msgid "Your recording is in progress." -msgstr "" +#: js/utils/musicutils.js:1071 +#.TRANS: pentatonic is a general term that means "five note scale". This scale is typically known as "major pentatonic" +msgid "major pentatonic" +msgstr "pentatônico maior" -#: js/SaveInterface.js:401 -#.TRANS: File name prompt for save as Lilypond -msgid "File name" -msgstr "Nome do arquivo" +#: js/utils/musicutils.js:1072 +msgid "chinese" +msgstr "chinês" -#: js/SaveInterface.js:403 -#: js/StringHelper.js:39 -#.TRANS: Project title prompt for save as Lilypond -msgid "Project title" -msgstr "Título do projeto" +#: js/utils/musicutils.js:1073 +msgid "egyptian" +msgstr "egípcio" -#: js/SaveInterface.js:405 -#.TRANS: Project title prompt for save as Lilypond -msgid "Project author" -msgstr "Autor do projeto" +#: js/utils/musicutils.js:1075 +#.TRANS: https://en.wikipedia.org/wiki/Hirajoshi_scale NOTE: There are three different versions of this scale +msgid "hirajoshi" +msgstr "hirajoshi" -#: js/SaveInterface.js:407 -#.TRANS: MIDI prompt for save as Lilypond -msgid "Include MIDI output?" -msgstr "Incluir saida de MIDI?" +#: js/utils/musicutils.js:1076 +msgid "Japan" +msgstr "Japão" -#: js/SaveInterface.js:409 -#.TRANS: Guitar prompt for save as Lilypond -msgid "Include guitar tablature output?" -msgstr "Incluir saida de tablatura de guitarra?" +#: js/utils/musicutils.js:1078 +#.TRANS: https://en.wikipedia.org/wiki/In_scale and https://en.wikipedia.org/wiki/Sakura_Sakura +msgid "in" +msgstr "em" -#: js/SaveInterface.js:411 -#.TRANS: Lilypond is a scripting language for generating sheet music -msgid "Save as Lilypond" -msgstr "Salvar como Lilypond" +#: js/utils/musicutils.js:1080 +#.TRANS: https://en.wikipedia.org/wiki/Miny%C5%8D_scale +msgid "minyo" +msgstr "minyo" -#: js/SaveInterface.js:426 -#: js/EnsembleBlocks.js:75 -#: js/EnsembleBlocks.js:154 -#: js/EnsembleBlocks.js:216 -#: js/EnsembleBlocks.js:302 -#: js/EnsembleBlocks.js:348 -#: js/EnsembleBlocks.js:389 -#: js/EnsembleBlocks.js:441 -#: js/EnsembleBlocks.js:490 -#: js/EnsembleBlocks.js:536 -#: js/EnsembleBlocks.js:583 -#: js/EnsembleBlocks.js:637 -#: js/EnsembleBlocks.js:753 -#: js/EnsembleBlocks.js:840 -#: js/EnsembleBlocks.js:899 -#: js/EnsembleBlocks.js:942 -#: js/EnsembleBlocks.js:1212 -#: js/EnsembleBlocks.js:1280 -#.TRANS: default project author when saving as Lilypond -msgid "Mr. Mouse" -msgstr "Sr. Ratinho" +#: js/utils/musicutils.js:1082 +#.TRANS: Italian mathematician +msgid "fibonacci" +msgstr "fibonacci" -#: js/SaveInterface.js:573 -msgid "The Lilypond code is copied to clipboard. You can paste it here: " -msgstr "" +#: js/utils/musicutils.js:1083 +#: js/utils/musicutils.js:1134 +#: js/utils/musicutils.js:1177 +#: js/utils/musicutils.js:1199 +#: js/utils/synthutils.js:134 +#: js/blocks/IntervalsBlocks.js:1124 +#: js/blocks/ToneBlocks.js:946 +#: js/blocks/VolumeBlocks.js:411 +#: js/blocks/WidgetBlocks.js:399 +#: js/blocks/WidgetBlocks.js:404 +#: js/turtleactions/VolumeActions.js:218 +#: js/widgets/modewidget.js:919 +#.TRANS: customize voice +msgid "custom" +msgstr "personalizar" -#: js/RhythmBlockPaletteBlocks.js:50 -#: js/RhythmBlockPaletteBlocks.js:232 -#.TRANS: rhythm block -#.TRANS: translate "rhythm1" as rhythm -msgid "rhythm1" -msgstr "ritmo1" +#: js/utils/musicutils.js:1085 +#: js/utils/musicutils.js:1531 +#: js/blocks/WidgetBlocks.js:176 +#.TRANS: highpass filter +msgid "highpass" +msgstr "highpass" -#: js/RhythmBlockPaletteBlocks.js:70 -#: js/RhythmBlockPaletteBlocks.js:251 -#: js/RhythmBlockPaletteBlocks.js:484 -#: js/RhythmBlockPaletteBlocks.js:553 -#: js/RhythmBlockPaletteBlocks.js:874 -msgid "number of notes" -msgstr "número de notas" +#: js/utils/musicutils.js:1087 +#: js/utils/musicutils.js:1532 +#.TRANS: lowpass filter +msgid "lowpass" +msgstr "lowpass" -#: js/RhythmBlockPaletteBlocks.js:126 -msgid "polyphonic rhythm" -msgstr "ritmo polifônico" +#: js/utils/musicutils.js:1089 +#: js/utils/musicutils.js:1533 +#.TRANS: bandpass filter +msgid "bandpass" +msgstr "bandpass" -#: js/RhythmBlockPaletteBlocks.js:218 -msgid "The Rhythm block is used to generate rhythm patterns." -msgstr "O bloco Ritmo é usado para gerar padrões de ritmo." +#: js/utils/musicutils.js:1091 +#: js/utils/musicutils.js:1534 +#.TRANS: high-shelf filter +msgid "highshelf" +msgstr "highshelf" -#: js/RhythmBlockPaletteBlocks.js:279 -msgid "1/64 note" -msgstr "nota 1/64" +#: js/utils/musicutils.js:1093 +#: js/utils/musicutils.js:1535 +#.TRANS: low-shelf filter +msgid "lowshelf" +msgstr "lowshelf" -#: js/RhythmBlockPaletteBlocks.js:303 -msgid "1/32 note" -msgstr "nota 1/32" +#: js/utils/musicutils.js:1095 +#: js/utils/musicutils.js:1536 +#.TRANS: notch-shelf filter +msgid "notch" +msgstr "entalhe" -#: js/RhythmBlockPaletteBlocks.js:331 -msgid "1/16 note" -msgstr "nota 1/16" +#: js/utils/musicutils.js:1097 +#: js/utils/musicutils.js:1537 +#.TRANS: all-pass filter +msgid "allpass" +msgstr "allpass" -#: js/RhythmBlockPaletteBlocks.js:359 -msgid "eighth note" -msgstr "uma oitava de nota" +#: js/utils/musicutils.js:1099 +#: js/utils/musicutils.js:1538 +#.TRANS: peaking filter +msgid "peaking" +msgstr "pico" -#: js/RhythmBlockPaletteBlocks.js:387 -msgid "quarter note" -msgstr "um quarto de nota" +#: js/utils/musicutils.js:1100 +#: js/utils/musicutils.js:1546 +#: js/utils/synthutils.js:126 +#: js/blocks/PitchBlocks.js:85 +#.TRANS: sine wave +msgid "sine" +msgstr "sino" -#: js/RhythmBlockPaletteBlocks.js:415 -msgid "half note" -msgstr "meia nota" +#: js/utils/musicutils.js:1101 +#: js/utils/musicutils.js:1547 +#: js/utils/synthutils.js:128 +#: js/blocks/PitchBlocks.js:39 +#.TRANS: square wave +msgid "square" +msgstr "quadrado" -#: js/RhythmBlockPaletteBlocks.js:443 -msgid "whole note" -msgstr "nota inteira" +#: js/utils/musicutils.js:1102 +#: js/utils/musicutils.js:1548 +#: js/utils/synthutils.js:132 +#: js/blocks/PitchBlocks.js:62 +#: js/blocks/ToneBlocks.js:39 +#.TRANS: triangle wave +msgid "triangle" +msgstr "triângulo" -#: js/RhythmBlockPaletteBlocks.js:481 -#: js/RhythmBlockPaletteBlocks.js:550 -#: js/RhythmBlockPaletteBlocks.js:601 -#.TRANS: A tuplet is a note value divided into irregular time values. -msgid "tuplet" -msgstr "tuplet" +#: js/utils/musicutils.js:1103 +#: js/utils/musicutils.js:1549 +#: js/utils/synthutils.js:130 +#: js/blocks/PitchBlocks.js:108 +#.TRANS: sawtooth wave +msgid "sawtooth" +msgstr "dente de serra" -#: js/RhythmBlockPaletteBlocks.js:767 -msgid "septuplet" -msgstr "sexteto" +#: js/utils/musicutils.js:1105 +#: js/utils/musicutils.js:1312 +#: js/blocks/PitchBlocks.js:931 +#: js/blocks/PitchBlocks.js:937 +#: js/turtleactions/PitchActions.js:469 +#.TRANS: even numbers +#.TRANS: invert based on even or odd number or musical scale +msgid "even" +msgstr "par" -#: js/RhythmBlockPaletteBlocks.js:795 -msgid "quintuplet" -msgstr "quinteto" +#: js/utils/musicutils.js:1107 +#: js/utils/musicutils.js:1313 +#: js/blocks/PitchBlocks.js:937 +#: js/turtleactions/PitchActions.js:471 +#.TRANS: odd numbers +msgid "odd" +msgstr "ímpar" -#: js/RhythmBlockPaletteBlocks.js:823 -msgid "triplet" -msgstr "trio" +#: js/utils/musicutils.js:1108 +#: js/utils/musicutils.js:1314 +#: js/blocks/PitchBlocks.js:937 +#: js/turtleactions/PitchActions.js:473 +msgid "scalar" +msgstr "escalar" -#: js/RhythmBlockPaletteBlocks.js:850 -msgid "simple tuplet" -msgstr "tuplet simples" +#: js/utils/musicutils.js:1109 +#: js/utils/synthutils.js:72 +#: js/blocks/VolumeBlocks.js:47 +#.TRANS: musical instrument +msgid "piano" +msgstr "piano" -#: js/RhythmBlockPaletteBlocks.js:860 -msgid "Tuplets are a collection of notes that get scaled to a specific duration." -msgstr "Os Tuplets são uma coleção de notas que são escaladas para uma duração específica." +#: js/utils/musicutils.js:1110 +#: js/utils/synthutils.js:74 +#.TRANS: musical instrument +msgid "violin" +msgstr "violino" -#: js/WidgetBlocks.js:71 -#.TRANS: sound envelope (ADSR) -msgid "envelope" -msgstr "envelope" +#: js/utils/musicutils.js:1111 +#: js/utils/synthutils.js:76 +#.TRANS: viola musical instrument +msgid "viola" +msgstr "" -#: js/WidgetBlocks.js:79 -#.TRANS: Attack time is the time taken for initial run-up of level from nil to peak, beginning when the key is first pressed. -msgid "attack" -msgstr "iniciar" +#: js/utils/musicutils.js:1112 +#: js/utils/synthutils.js:114 +#.TRANS: xylophone musical instrument +msgid "xylophone" +msgstr "" -#: js/WidgetBlocks.js:81 -#.TRANS: Decay time is the time taken for the subsequent run down from the attack level to the designated sustain level. -msgid "decay" -msgstr "decair" +#: js/utils/musicutils.js:1113 +#: js/utils/synthutils.js:136 +#.TRANS: vibraphone musical instrument +msgid "vibraphone" +msgstr "" -#: js/WidgetBlocks.js:83 -#.TRANS: Sustain level is the level during the main sequence of the sound's duration, until the key is released. -msgid "sustain" -msgstr "sustentar" +#: js/utils/musicutils.js:1114 +#: js/utils/synthutils.js:78 +#.TRANS: musical instrument +msgid "cello" +msgstr "violoncelo" -#: js/WidgetBlocks.js:85 -#.TRANS: Release time is the time taken for the level to decay from the sustain level to zero after the key is released. -msgid "release" -msgstr "lançar" +#: js/utils/musicutils.js:1116 +#: js/utils/synthutils.js:82 +#.TRANS: viola musical instrument +msgid "double bass" +msgstr "" -#: js/WidgetBlocks.js:96 -msgid "Attack value should be from 0 to 100." -msgstr "O valor de volume deve ser de 0 a 100." +#: js/utils/musicutils.js:1117 +#: js/utils/synthutils.js:84 +#: js/widgets/rhythmruler.js:2511 +#.TRANS: musical instrument +msgid "guitar" +msgstr "guitarra" -#: js/WidgetBlocks.js:99 -msgid "Decay value should be from 0 to 100." -msgstr "O valor de decaimento deve ser de 0 a 100." +#: js/utils/musicutils.js:1118 +#: js/utils/synthutils.js:86 +#.TRANS: musical instrument +msgid "acoustic guitar" +msgstr "violão acústico" -#: js/WidgetBlocks.js:102 -msgid "Sustain value should be from 0 to 100." -msgstr "O valor da sustentação deve ser de 0 a 100." +#: js/utils/musicutils.js:1119 +#: js/utils/synthutils.js:88 +#.TRANS: musical instrument +msgid "flute" +msgstr "flauta" -#: js/WidgetBlocks.js:105 -msgid "Release value should be from 0-100." -msgstr "O valor de lançamento deve ser de 0 a 100." +#: js/utils/musicutils.js:1120 +#: js/utils/synthutils.js:90 +#.TRANS: musical instrument +msgid "clarinet" +msgstr "Clarineta" -#: js/WidgetBlocks.js:121 -msgid "You are adding multiple envelope blocks." -msgstr "Você está adicionando vários blocos de envelope." +#: js/utils/musicutils.js:1121 +#: js/utils/synthutils.js:92 +#.TRANS: musical instrument +msgid "saxophone" +msgstr "saxofone" -#: js/WidgetBlocks.js:144 -#.TRANS: a filter removes some unwanted components from a signal -msgid "filter" -msgstr "filtrar" +#: js/utils/musicutils.js:1122 +#: js/utils/synthutils.js:94 +#.TRANS: musical instrument +msgid "tuba" +msgstr "tuba" -#: js/WidgetBlocks.js:149 -#: js/musicutils.js:706 -#: js/musicutils.js:1105 -#.TRANS: highpass filter -msgid "highpass" -msgstr "highpass" +#: js/utils/musicutils.js:1123 +#: js/utils/synthutils.js:96 +#.TRANS: musical instrument +msgid "trumpet" +msgstr "trumpete" -#: js/WidgetBlocks.js:152 -#: js/ToneBlocks.js:42 -#: js/timbre.js:1558 -#: js/timbre.js:1808 -#.TRANS: type of filter, e.g., lowpass, highpass, etc. -#.TRANS: there are different types (sine, triangle, square...) of oscillators. -msgid "type" -msgstr "tipo" +#: js/utils/musicutils.js:1124 +#: js/utils/synthutils.js:98 +#.TRANS: musical instrument +msgid "oboe" +msgstr "" -#: js/WidgetBlocks.js:154 -#: js/timbre.js:1818 -#.TRANS: rolloff is the steepness of a change in frequency. -msgid "rolloff" -msgstr "para fora" +#: js/utils/musicutils.js:1125 +#: js/utils/synthutils.js:100 +#.TRANS: musical instrument +msgid "trombone" +msgstr "" -#: js/WidgetBlocks.js:155 -#: js/MediaBlocks.js:692 -#: js/temperament.js:382 -#: js/temperament.js:417 -#: js/temperament.js:477 -#: js/temperament.js:485 -#: js/temperament.js:1348 -#: js/timbre.js:1842 -msgid "frequency" -msgstr "frequência" +#: js/utils/musicutils.js:1126 +#: js/utils/synthutils.js:116 +#.TRANS: polytone synthesizer +msgid "electronic synth" +msgstr "sintetizador eletrônico" -#: js/WidgetBlocks.js:179 -#.TRANS: rolloff is the steepness of a change in frequency. -msgid "Rolloff value should be either -12, -24, -48, or -96 decibels/octave." -msgstr "O valor de referência deve ser -12, -24, -48 ou -96 decibéis / oitava." +#: js/utils/musicutils.js:1127 +#: js/utils/synthutils.js:118 +#.TRANS: simple monotone synthesizer +msgid "simple 1" +msgstr "simples 1" -#: js/WidgetBlocks.js:211 -msgid "The Temperament tool is used to define custom tuning." -msgstr "A ferramenta Temperamento é usada para definir uma afinação personalizada." +#: js/utils/musicutils.js:1128 +msgid "simple 2" +msgstr "simples 2" -#: js/WidgetBlocks.js:277 -#: js/sampler.js:329 -msgid "Upload a sample and adjust its pitch center." -msgstr "" +#: js/utils/musicutils.js:1129 +msgid "simple 3" +msgstr "simples 3" -#: js/WidgetBlocks.js:284 -#.TRANS: the speed at music is should be played. -msgid "sampler" -msgstr "" +#: js/utils/musicutils.js:1130 +msgid "simple 4" +msgstr "simples 4" -#: js/WidgetBlocks.js:329 -#: js/WidgetBlocks.js:334 -#: js/IntervalsBlocks.js:928 -#: js/VolumeBlocks.js:411 -#: js/ToneBlocks.js:946 -#: js/VolumeActions.js:218 -#: js/musicutils.js:704 -#: js/musicutils.js:755 -#: js/musicutils.js:798 -#: js/musicutils.js:820 -#: js/musicutils.js:1136 -#: js/synthutils.js:118 -#: js/modewidget.js:919 -#.TRANS: customize voice -msgid "custom" -msgstr "personalizar" +#: js/utils/musicutils.js:1131 +#: js/utils/synthutils.js:58 +#: js/blocks/DrumBlocks.js:191 +#.TRANS: white noise synthesizer +msgid "white noise" +msgstr "ruído branco" -#: js/WidgetBlocks.js:432 -msgid "The Meter block opens a tool to select strong beats for the meter." -msgstr "" +#: js/utils/musicutils.js:1132 +#: js/utils/synthutils.js:60 +#.TRANS: brown noise synthesizer +msgid "brown noise" +msgstr "ruído marrom" -#: js/WidgetBlocks.js:473 -msgid "The oscilloscope block opens a tool to visualize waveforms." -msgstr "" +#: js/utils/musicutils.js:1133 +#: js/utils/synthutils.js:62 +#.TRANS: pink noise synthesizer +msgid "pink noise" +msgstr "ruído rosa" -#: js/WidgetBlocks.js:478 -msgid "oscilloscope" -msgstr "" +#: js/utils/musicutils.js:1135 +#: js/utils/synthutils.js:148 +#: js/widgets/rhythmruler.js:2057 +#: js/widgets/rhythmruler.js:2319 +#.TRANS: musical instrument +msgid "snare drum" +msgstr "tarola" -#: js/WidgetBlocks.js:530 -msgid "The Custom mode block opens a tool to explore musical mode (the spacing of the notes in a scale)." -msgstr "O bloco do modo Personalizado abre uma ferramenta para explorar o modo musical (o espaçamento das notas em uma escala)." +#: js/utils/musicutils.js:1136 +#: js/utils/synthutils.js:150 +#.TRANS: musical instrument +msgid "kick drum" +msgstr "bumbo" -#: js/WidgetBlocks.js:536 -#.TRANS: musical mode is the pattern of half-steps in an octave, e.g., Major or Minor modes -msgid "custom mode" -msgstr "modo personalizado" +#: js/utils/musicutils.js:1137 +#: js/utils/synthutils.js:152 +#.TRANS: musical instrument +msgid "tom tom" +msgstr "tom tom" -#: js/WidgetBlocks.js:570 -msgid "The Tempo block opens a metronome to visualize the beat." -msgstr "O bloco Tempo abre um metrônomo para visualizar a batida." +#: js/utils/musicutils.js:1138 +#: js/utils/synthutils.js:154 +#.TRANS: musical instrument +msgid "floor tom" +msgstr "tom baixo" -#: js/WidgetBlocks.js:617 -msgid "The Arpeggio Widget is used to compose chord sequences." +#: js/utils/musicutils.js:1139 +#: js/utils/synthutils.js:156 +#.TRANS: musical instrument +msgid "bass drum" msgstr "" -#: js/WidgetBlocks.js:623 -#: js/IntervalsBlocks.js:683 -msgid "arpeggio" -msgstr "" +#: js/utils/musicutils.js:1140 +#: js/utils/synthutils.js:158 +#.TRANS: a drum made from an inverted cup +msgid "cup drum" +msgstr "tambor de taça" -#: js/WidgetBlocks.js:677 -msgid "The Pitch drum matrix is used to map pitches to drum sounds." -msgstr "A matriz do Tom da bateria é usada para mapear tons dos sons da bateria." +#: js/utils/musicutils.js:1141 +#: js/utils/synthutils.js:160 +#.TRANS: musical instrument +msgid "darbuka drum" +msgstr "tambor de darbuka" -#: js/WidgetBlocks.js:682 -#.TRANS: makes a mapping between pitches and drum sounds -msgid "pitch-drum mapper" -msgstr "mapa do tom de bateria" +#: js/utils/musicutils.js:1142 +#: js/utils/synthutils.js:164 +#.TRANS: musical instrument +msgid "hi hat" +msgstr "hi hat" -#: js/WidgetBlocks.js:724 -msgid "You must have at least one pitch block and one drum block in the matrix." -msgstr "Você deve ter pelo menos um bloco de tom e um bloco de bateria na matriz." +#: js/utils/musicutils.js:1143 +#: js/utils/synthutils.js:166 +#.TRANS: a small metal bell +msgid "ride bell" +msgstr "pequeno sino" -#: js/WidgetBlocks.js:746 -msgid "The Pitch slider tool to is used to generate pitches at selected frequencies." -msgstr "A ferramenta de controle deslizante do Tom é usada para gerar tons em freqüências selecionadas." +#: js/utils/musicutils.js:1144 +#: js/utils/synthutils.js:168 +#.TRANS: musical instrument +msgid "cow bell" +msgstr "sino de vaca" -#: js/WidgetBlocks.js:751 -#.TRANS: widget to generate pitches using a slider -msgid "pitch slider" -msgstr "medir tom do slider" +#: js/utils/musicutils.js:1145 +msgid "japanese drum" +msgstr "" -#: js/WidgetBlocks.js:788 -msgid "chromatic keyboard" +#: js/utils/musicutils.js:1146 +#: js/utils/synthutils.js:174 +#.TRANS: musical instrument +msgid "japanese bell" msgstr "" -#: js/WidgetBlocks.js:815 -#: js/WidgetBlocks.js:874 -#.TRANS: widget to generate pitches using a slider -msgid "music keyboard" -msgstr "teclado de música" +#: js/utils/musicutils.js:1147 +#: js/utils/synthutils.js:170 +#.TRANS: musical instrument +msgid "triangle bell" +msgstr "sino triângular" -#: js/WidgetBlocks.js:859 -#: js/WidgetBlocks.js:866 -msgid "The Music keyboard block opens a piano keyboard that can be used to create notes." -msgstr "O bloco Teclado abre um teclado de piano que pode ser usado para criar notas." +#: js/utils/musicutils.js:1148 +#: js/utils/synthutils.js:172 +#.TRANS: musical instrument +msgid "finger cymbals" +msgstr "estalar de dedos" -#: js/WidgetBlocks.js:910 -msgid "The Pitch staircase tool to is used to generate pitches from a given ratio." -msgstr "A ferramenta escada do Tom é usada para gerar tom a partir de uma determinada taxa." +#: js/utils/musicutils.js:1149 +#: js/utils/synthutils.js:176 +#.TRANS: a musically tuned set of bells +msgid "chime" +msgstr "carrilhão" -#: js/WidgetBlocks.js:917 -#.TRANS: generate a progressive sequence of pitches -msgid "pitch staircase" -msgstr "medir tom da escala" +#: js/utils/musicutils.js:1150 +#: js/utils/synthutils.js:178 +#.TRANS: a musical instrument +msgid "gong" +msgstr "gong" -#: js/WidgetBlocks.js:982 -msgid "The Rhythm Maker block opens a tool to create drum machines." -msgstr "O bloco Criador de Ritmo abre uma ferramenta para criar baterias eletrônicas" +#: js/utils/musicutils.js:1151 +#: js/utils/synthutils.js:180 +#.TRANS: sound effect +msgid "clang" +msgstr "clang" -#: js/WidgetBlocks.js:1036 -msgid "G major scale" -msgstr "escala G maior" +#: js/utils/musicutils.js:1152 +#: js/utils/synthutils.js:182 +#.TRANS: sound effect +msgid "crash" +msgstr "bater" -#: js/WidgetBlocks.js:1064 -msgid "C major scale" -msgstr "escala C maior" +#: js/utils/musicutils.js:1153 +#: js/utils/synthutils.js:184 +#.TRANS: sound effect +msgid "bottle" +msgstr "garrafa" -#: js/WidgetBlocks.js:1097 -msgid "The Phrase Maker block opens a tool to create musical phrases." -msgstr "O bloco Criar Frases abre uma ferramenta para criar frases musicais." +#: js/utils/musicutils.js:1154 +#: js/utils/synthutils.js:186 +#.TRANS: sound effect +msgid "clap" +msgstr "palmas" -#: js/WidgetBlocks.js:1104 -#.TRANS: assigns pitch to a sequence of beats to generate a melody -msgid "phrase maker" -msgstr "criador de frase" +#: js/utils/musicutils.js:1155 +#: js/utils/synthutils.js:188 +#.TRANS: sound effect +msgid "slap" +msgstr "tapa" -#: js/WidgetBlocks.js:1168 -msgid "You must have at least one pitch block and one rhythm block in the matrix." -msgstr "Você deve ter pelo menos um bloco de tom e um bloco de ritmo na matriz." +#: js/utils/musicutils.js:1156 +#: js/utils/synthutils.js:190 +#.TRANS: sound effect +msgid "splash" +msgstr "splash" -#: js/WidgetBlocks.js:1220 -msgid "The Status block opens a tool for inspecting the status of Music Blocks as it is running." -msgstr "O bloco Status abre uma ferramenta para inspecionar o status do Music Blocks enquanto ele está sendo executado." +#: js/utils/musicutils.js:1157 +#: js/utils/synthutils.js:192 +#.TRANS: sound effect +msgid "bubbles" +msgstr "bolhas" + +#: js/utils/musicutils.js:1158 +#: js/utils/synthutils.js:194 +#.TRANS: sound effect +msgid "raindrop" +msgstr "" -#: js/IntervalsBlocks.js:45 -msgid "set temperament" -msgstr "definir temperamento" +#: js/utils/musicutils.js:1159 +#: js/utils/synthutils.js:196 +#.TRANS: animal sound effect +msgid "cat" +msgstr "gato" -#: js/IntervalsBlocks.js:63 -#: js/MediaBlocks.js:746 -#: js/PitchBlocks.js:657 -#: js/PitchBlocks.js:933 -#: js/PitchBlocks.js:972 -#: js/PitchBlocks.js:1005 -#: js/PitchBlocks.js:1166 -#: js/PitchBlocks.js:1679 -#: js/PitchBlocks.js:1720 -#: js/PitchBlocks.js:1827 -#: js/ToneBlocks.js:1025 -#.TRANS: adjusts the shift up or down by one octave (twelve half-steps in the interval between two notes, one having twice or half the frequency in Hz of the other.) -msgid "octave" -msgstr "oitava" +#: js/utils/musicutils.js:1160 +#: js/utils/synthutils.js:198 +#.TRANS: animal sound effect +msgid "cricket" +msgstr "grilo" -#: js/IntervalsBlocks.js:99 -msgid "The Temperament name block is used to select a tuning method." -msgstr "O bloco nome do Temperamento é usado para selecionar o método de afinação." +#: js/utils/musicutils.js:1161 +#: js/utils/synthutils.js:200 +#.TRANS: animal sound effect +msgid "dog" +msgstr "cachorro" -#: js/IntervalsBlocks.js:161 -msgid "doubly" -msgstr "duplicar" +#: js/utils/musicutils.js:1163 +#: js/utils/synthutils.js:102 +#.TRANS: musical instrument +msgid "banjo" +msgstr "banjo" -#: js/IntervalsBlocks.js:166 -msgid "The Doubly block will double the size of an interval." -msgstr "O bloco Duplicar duplicará o tamanho de um intervalo." +#: js/utils/musicutils.js:1164 +#: js/utils/synthutils.js:104 +#.TRANS: musical instrument +msgid "koto" +msgstr "koto" -#: js/IntervalsBlocks.js:262 -msgid "interval number" -msgstr "" +#: js/utils/musicutils.js:1165 +#: js/utils/synthutils.js:106 +#.TRANS: musical instrument +msgid "dulcimer" +msgstr "dulcimer" -#: js/IntervalsBlocks.js:330 -#.TRANS: measure the distance between two pitches in semi-tones -msgid "semi-tone interval measure" -msgstr "medida do intervalo semi-tom" +#: js/utils/musicutils.js:1166 +#: js/utils/synthutils.js:108 +#.TRANS: musical instrument +msgid "electric guitar" +msgstr "Guitarra elétrica" -#: js/IntervalsBlocks.js:397 -#: js/IntervalsBlocks.js:513 -msgid "You must use two pitch blocks when measuring an interval." -msgstr "Você deve usar dois blocos de tom quando medir um intervalo." +#: js/utils/musicutils.js:1167 +#: js/utils/synthutils.js:110 +#.TRANS: musical instrument +msgid "bassoon" +msgstr "" -#: js/IntervalsBlocks.js:439 -msgid "The Scalar interval block measures the distance between two notes in the current key and mode." -msgstr "O bloco de intervalo Escalar mede a distância entre duas notas na tecla e no modo atuais." +#: js/utils/musicutils.js:1168 +#: js/utils/synthutils.js:112 +#.TRANS: musical instrument +msgid "celeste" +msgstr "" -#: js/IntervalsBlocks.js:445 -#.TRANS: measure the distance between two pitches in steps of musical scale -msgid "scalar interval measure" -msgstr "medida do intervalo escalar" +#: js/utils/musicutils.js:1170 +#: js/widgets/temperament.js:787 +#.TRANS: musical temperament +msgid "equal" +msgstr "igual" -#: js/IntervalsBlocks.js:592 -#: js/musicutils.js:637 -#: js/musicutils.js:908 -#.TRANS: perfect is a music term related to intervals -msgid "perfect" -msgstr "perfeito" +#: js/utils/musicutils.js:1172 +#.TRANS: musical temperament +msgid "Pythagorean" +msgstr "Pitagórico" -#: js/IntervalsBlocks.js:621 -msgid "In the figure, we add sol# to sol." -msgstr "Na figura, adicionamos sol# ao sol." +#: js/utils/musicutils.js:1174 +#.TRANS: musical temperament +msgid "just intonation" +msgstr "apenas entonação" -#: js/IntervalsBlocks.js:627 -#: js/OrnamentBlocks.js:220 -#.TRANS: calculate a relative step between notes based on semi-tones -msgid "semi-tone interval" -msgstr "intervalo semi-tom" +#: js/utils/musicutils.js:1176 +#.TRANS: musical temperament +msgid "meantone" +msgstr "mesotônico" -#: js/IntervalsBlocks.js:676 -msgid "The output of the example is: do, mi, sol, sol, ti, mi" +#: js/utils/musicutils.js:1193 +msgid "major 7th" msgstr "" -#: js/IntervalsBlocks.js:735 -msgid "The Chord block calculates common chords." +#: js/utils/musicutils.js:1194 +msgid "minor 7th" msgstr "" -#: js/IntervalsBlocks.js:737 -msgid "In the figure, we generate a C-major chord." +#: js/utils/musicutils.js:1195 +msgid "dominant 7th" msgstr "" -#: js/IntervalsBlocks.js:742 -msgid "chord" -msgstr "acorde" +#: js/utils/musicutils.js:1196 +msgid "minor-major 7th" +msgstr "" -#: js/IntervalsBlocks.js:794 -msgid "The Ratio Interval block calculates an interval based on a ratio." +#: js/utils/musicutils.js:1197 +msgid "fully-diminished 7th" msgstr "" -#: js/IntervalsBlocks.js:799 -msgid "ratio interval" +#: js/utils/musicutils.js:1198 +msgid "half-diminished 7th" msgstr "" -#: js/IntervalsBlocks.js:868 -msgid "In the figure, we add la to sol." -msgstr "Na figura, adicionamos la ao sol." +#: js/utils/musicutils.js:1557 +#: js/utils/musicutils.js:1569 +msgid "Equal (12EDO)" +msgstr "" -#: js/IntervalsBlocks.js:924 -#.TRANS: define a custom mode -msgid "define mode" -msgstr "Definir modo" +#: js/utils/musicutils.js:1558 +#: js/utils/musicutils.js:1570 +msgid "5-limit Just Intonation" +msgstr "" -#: js/IntervalsBlocks.js:977 -msgid "movable Do" -msgstr "Do móvel" +#: js/utils/musicutils.js:1559 +#: js/utils/musicutils.js:1571 +msgid "Pythagorean (3-limit JI)" +msgstr "" -#: js/IntervalsBlocks.js:1028 -#.TRANS: mode length is the number of notes in the mode, e.g., 7 for major and minor scales; 12 for chromatic scales -msgid "mode length" -msgstr "modo número de notas" +#: js/utils/musicutils.js:1560 +#: js/utils/musicutils.js:1561 +#: js/utils/musicutils.js:1572 +#: js/utils/musicutils.js:1573 +msgid "Meantone" +msgstr "" -#: js/IntervalsBlocks.js:1037 -msgid "The Mode length block is the number of notes in the current scale." -msgstr "O bloco Modo número de notas é o número de notas na escala atual." +#: js/utils/musicutils.js:1574 +msgid "Custom" +msgstr "" -#: js/IntervalsBlocks.js:1039 -msgid "Most Western scales have 7 notes." -msgstr "A maioria das escalas ocidentais possui 7 notas." +#: js/utils/musicutils.js:5387 +#: js/utils/musicutils.js:5430 +msgid "current" +msgstr "atual" -#: js/IntervalsBlocks.js:1088 -#.TRANS: the mode in music is 'major', 'minor', etc. -msgid "current mode" -msgstr "modo atual" +#: js/utils/musicutils.js:5390 +#: js/utils/musicutils.js:5421 +msgid "next" +msgstr "próximo" -#: js/IntervalsBlocks.js:1141 -#.TRANS: the key is a group of pitches with which a music composition is created -msgid "current key" -msgstr "chave atual" +#: js/utils/musicutils.js:5393 +#: js/utils/musicutils.js:5426 +msgid "previous" +msgstr "anterior" -#: js/IntervalsBlocks.js:1193 -#: js/IntervalsBlocks.js:1238 -#.TRANS: set the key and mode, e.g. C Major -msgid "set key" -msgstr "definir chave" +#: js/utils/synthutils.js:120 +#.TRANS: simple monotone synthesizer +msgid "simple-2" +msgstr "simples-2" -#: js/IntervalsBlocks.js:1247 -#: js/IntervalsBlocks.js:1253 -msgid "The Set key block is used to set the key and mode," -msgstr "O bloco Definir tecla é usado para definir a tecla e o modo," +#: js/utils/synthutils.js:122 +#.TRANS: simple monotone synthesizer +msgid "simple-3" +msgstr "simples-3" -#: js/IntervalsBlocks.js:1253 -msgid "eg C Major" -msgstr "Por exemplo, C Maior" +#: js/utils/synthutils.js:124 +#.TRANS: simple monotone synthesizer +msgid "simple-4" +msgstr "simples-4" -#: js/IntervalsBlocks.js:1266 -#: js/DictBlocks.js:215 -#: js/DictBlocks.js:216 -#: js/DictBlocks.js:289 -#: js/DictBlocks.js:290 -#: js/DictBlocks.js:357 -#: js/DictBlocks.js:430 -#: js/DictBlocks.js:431 -#.TRANS: key, e.g., C in C Major -msgid "key" -msgstr "chave" +#: js/utils/synthutils.js:162 +#.TRANS: musical instrument +msgid "taiko" +msgstr "" -#: js/ActionBlocks.js:58 +#: js/blocks/ActionBlocks.js:58 msgid "The Return block will return a value from an action." msgstr "O bloco Retornar retornará um valor de uma ação." -#: js/ActionBlocks.js:75 +#: js/blocks/ActionBlocks.js:75 msgid "return" msgstr "retornar" -#: js/ActionBlocks.js:128 +#: js/blocks/ActionBlocks.js:128 msgid "The Return to URL block will return a value to a webpage." msgstr "O bloco Retornar para URL retornará um valor para uma página da Internet." -#: js/ActionBlocks.js:145 +#: js/blocks/ActionBlocks.js:145 msgid "return to URL" msgstr "retornar para URL" -#: js/ActionBlocks.js:233 -#: js/ActionBlocks.js:290 -#: js/ActionBlocks.js:501 -#: js/ActionBlocks.js:688 +#: js/blocks/ActionBlocks.js:233 +#: js/blocks/ActionBlocks.js:290 +#: js/blocks/ActionBlocks.js:501 +#: js/blocks/ActionBlocks.js:688 msgid "The Calculate block returns a value calculated by an action." msgstr "O bloco Calcular retorna um valor calculado por uma ação." -#: js/ActionBlocks.js:251 -#: js/ActionBlocks.js:517 -#: js/ActionBlocks.js:707 +#: js/blocks/ActionBlocks.js:251 +#: js/blocks/ActionBlocks.js:517 +#: js/blocks/ActionBlocks.js:707 msgid "calculate" msgstr "calcular" -#: js/ActionBlocks.js:376 -#: js/ActionBlocks.js:593 -#: js/ActionBlocks.js:942 -#: js/ActionBlocks.js:1389 +#: js/blocks/ActionBlocks.js:376 +#: js/blocks/ActionBlocks.js:593 +#: js/blocks/ActionBlocks.js:942 +#: js/blocks/ActionBlocks.js:1389 #.TRANS: do is the do something or take an action. msgid "The Do block is used to initiate an action." msgstr "O bloco Agir é usado para iniciar uma ação." -#: js/ActionBlocks.js:390 -#: js/ActionBlocks.js:610 -#: js/ActionBlocks.js:959 -#: js/ActionBlocks.js:1048 -#: js/MeterBlocks.js:769 +#: js/blocks/ActionBlocks.js:390 +#: js/blocks/ActionBlocks.js:610 +#: js/blocks/ActionBlocks.js:959 +#: js/blocks/ActionBlocks.js:1048 +#: js/blocks/MeterBlocks.js:769 msgid "do1" msgstr "fazer1" -#: js/ActionBlocks.js:390 -#: js/ActionBlocks.js:610 -#: js/ActionBlocks.js:959 -#: js/ActionBlocks.js:1048 -#: js/FlowBlocks.js:742 -#: js/FlowBlocks.js:822 -#: js/MeterBlocks.js:769 +#: js/blocks/ActionBlocks.js:390 +#: js/blocks/ActionBlocks.js:610 +#: js/blocks/ActionBlocks.js:959 +#: js/blocks/ActionBlocks.js:1048 +#: js/blocks/FlowBlocks.js:742 +#: js/blocks/FlowBlocks.js:822 +#: js/blocks/MeterBlocks.js:769 msgid "do" msgstr "fazer" -#: js/ActionBlocks.js:791 -#: js/ActionBlocks.js:865 +#: js/blocks/ActionBlocks.js:791 +#: js/blocks/ActionBlocks.js:865 msgid "The Arg block contains the value of an argument passed to an action." msgstr "O bloco Arg contém o valor de um argumento passado a uma ação." -#: js/ActionBlocks.js:806 -#: js/ActionBlocks.js:878 +#: js/blocks/ActionBlocks.js:806 +#: js/blocks/ActionBlocks.js:878 msgid "arg" msgstr "" -#: js/ActionBlocks.js:836 -#: js/ActionBlocks.js:900 -#: js/ActionBlocks.js:908 +#: js/blocks/ActionBlocks.js:836 +#: js/blocks/ActionBlocks.js:900 +#: js/blocks/ActionBlocks.js:908 msgid "Invalid argument" msgstr "Argumento inválido" -#: js/ActionBlocks.js:944 +#: js/blocks/ActionBlocks.js:944 msgid "In the example, it is used with the One of block to choose a random phase." msgstr "No exemplo, é usado com o bloco Um para escolher aleatoriamente uma fase." -#: js/ActionBlocks.js:1019 -#: js/ActionBlocks.js:1026 +#: js/blocks/ActionBlocks.js:1019 +#: js/blocks/ActionBlocks.js:1026 msgid "The Listen block is used to listen for an event such as a mouse click." msgstr "O bloco Ouvir é usado para escutar um evento, como um clique do mouse." -#: js/ActionBlocks.js:1028 +#: js/blocks/ActionBlocks.js:1028 msgid "When the event happens, an action is taken." msgstr "Quando o evento acontece, uma ação é executada." -#: js/ActionBlocks.js:1045 +#: js/blocks/ActionBlocks.js:1045 msgid "on" msgstr "ligado" -#: js/ActionBlocks.js:1048 -#: js/ActionBlocks.js:1049 -#: js/ActionBlocks.js:1153 +#: js/blocks/ActionBlocks.js:1048 +#: js/blocks/ActionBlocks.js:1049 +#: js/blocks/ActionBlocks.js:1153 msgid "event" msgstr "evento" -#: js/ActionBlocks.js:1133 +#: js/blocks/ActionBlocks.js:1133 msgid "The Broadcast block is used to trigger an event." msgstr "O bloco Emitir é usado para acionar um evento." -#: js/ActionBlocks.js:1151 +#: js/blocks/ActionBlocks.js:1151 msgid "broadcast" msgstr "transmissão" -#: js/ActionBlocks.js:1208 +#: js/blocks/ActionBlocks.js:1208 msgid "Each Start block is a separate voice." msgstr "Cada bloco Iniciar é uma voz separada." -#: js/ActionBlocks.js:1304 +#: js/blocks/ActionBlocks.js:1304 msgid "It is often used for storing a phrase of music that is repeated." msgstr "É freqüentemente usado para armazenar uma frase de música que é repetida." -#: js/ActionBlocks.js:1495 -msgid "define temperament" -msgstr "definir temperamento" +#: js/blocks/ActionBlocks.js:1495 +msgid "define temperament" +msgstr "definir temperamento" + +#: js/blocks/BooleanBlocks.js:44 +msgid "The Not block is the logical not operator." +msgstr "O bloco Não é o operador lógico não." + +#: js/blocks/BooleanBlocks.js:62 +msgid "not" +msgstr "não" + +#: js/blocks/BooleanBlocks.js:134 +msgid "The And block is the logical and operator." +msgstr "O bloco E é o operador lógico e." + +#: js/blocks/BooleanBlocks.js:152 +msgid "and" +msgstr "e" + +#: js/blocks/BooleanBlocks.js:218 +msgid "The Or block is the logical or operator." +msgstr "O bloco Ou é o operador lógico ou." + +#: js/blocks/BooleanBlocks.js:236 +msgid "or" +msgstr "ou" + +#: js/blocks/BooleanBlocks.js:302 +msgid "The XOR block is the logical XOR operator." +msgstr "" + +#: js/blocks/BooleanBlocks.js:320 +msgid "xor" +msgstr "" + +#: js/blocks/BooleanBlocks.js:808 +msgid "The Equal block returns True if the two numbers are equal." +msgstr "O bloco Igual retorna Verdadeiro se os dois números forem iguais." + +#: js/blocks/BooleanBlocks.js:909 +msgid "The Not-equal-to block returns True if the two numbers are not equal to each other." +msgstr "" + +#: js/blocks/BooleanBlocks.js:1008 +msgid "The Boolean block is used to specify true or false." +msgstr "O bloco Booleano é usado para especificar verdadeiro ou falso." + +#: js/blocks/BoxesBlocks.js:53 +#: js/blocks/BoxesBlocks.js:59 +msgid "The Add-to block is used to add to the value stored in a box." +msgstr "O bloco Adicionar-na é usado para adicionar o valor armazenado em uma caixa." + +#: js/blocks/BoxesBlocks.js:61 +msgid "It can also be used with other blocks such as Color and Pen size." +msgstr "" + +#: js/blocks/BoxesBlocks.js:73 +msgid "add" +msgstr "adicionar" + +#: js/blocks/BoxesBlocks.js:75 +#: js/widgets/temperament.js:857 +msgid "to" +msgstr "à" + +#: js/blocks/BoxesBlocks.js:75 +#: js/blocks/BoxesBlocks.js:595 +#: js/blocks/HeapBlocks.js:544 +msgid "value1" +msgstr "valor1" + +#: js/blocks/BoxesBlocks.js:118 +msgid "Block does not support incrementing." +msgstr "O bloco não suporta incrementações." + +#: js/blocks/BoxesBlocks.js:152 +msgid "The Add-1-to block adds one to the value stored in a box." +msgstr "O bloco Adicionar-1-na adiciona um ao valor armazenado em uma caixa." + +#: js/blocks/BoxesBlocks.js:163 +msgid "add 1 to" +msgstr "adicionar 1 à" + +#: js/blocks/BoxesBlocks.js:211 +msgid "The Subtract-1-from block subtracts one from the value stored in a box." +msgstr "" + +#: js/blocks/BoxesBlocks.js:222 +msgid "subtract 1 from" +msgstr "subtrair 1 de" + +#: js/blocks/BoxesBlocks.js:270 +#: js/blocks/BoxesBlocks.js:387 +msgid "The Box block returns the value stored in a box." +msgstr "O bloco Caixa retornará o valor armazenado em uma caixa." + +#: js/blocks/BoxesBlocks.js:500 +#: js/blocks/BoxesBlocks.js:576 +msgid "The Store in block will store a value in a box." +msgstr "O bloco Armazenar em armazenará um valor em uma caixa." + +#: js/blocks/BoxesBlocks.js:595 +#: js/blocks/EnsembleBlocks.js:391 +#: js/blocks/EnsembleBlocks.js:402 +msgid "name1" +msgstr "nome1" + +#: js/blocks/BoxesBlocks.js:652 +msgid "The Box2 block returns the value stored in Box2." +msgstr "" + +#: js/blocks/BoxesBlocks.js:703 +msgid "The Store in Box2 block is used to store a value in Box2." +msgstr "" + +#: js/blocks/BoxesBlocks.js:715 +msgid "store in box2" +msgstr "armazenar na caixa 2" + +#: js/blocks/BoxesBlocks.js:761 +msgid "The Box1 block returns the value stored in Box1." +msgstr "" + +#: js/blocks/BoxesBlocks.js:812 +msgid "The Store in Box1 block is used to store a value in Box1." +msgstr "" + +#: js/blocks/BoxesBlocks.js:826 +msgid "store in box1" +msgstr "armazenar na caixa 1" + +#: js/blocks/DictBlocks.js:77 +msgid "show dictionary" +msgstr "" + +#: js/blocks/DictBlocks.js:80 +#: js/blocks/DictBlocks.js:145 +#: js/blocks/DictBlocks.js:216 +#: js/blocks/DictBlocks.js:290 +#: js/blocks/ProgramBlocks.js:396 +#: js/blocks/ProgramBlocks.js:501 +#: js/blocks/ProgramBlocks.js:664 +msgid "My Dictionary" +msgstr "" + +#: js/blocks/DictBlocks.js:129 +msgid "The Dictionary block returns a dictionary." +msgstr "" + +#: js/blocks/DictBlocks.js:197 +#: js/blocks/DictBlocks.js:339 +msgid "The Get-dict block returns a value in the dictionary for a specified key." +msgstr "" + +#: js/blocks/DictBlocks.js:212 +#: js/blocks/DictBlocks.js:354 +#.TRANS: retrieve a value from the dictionary with a given key +msgid "get value" +msgstr "" + +#: js/blocks/DictBlocks.js:215 +#: js/blocks/DictBlocks.js:216 +#: js/blocks/DictBlocks.js:289 +#: js/blocks/DictBlocks.js:290 +#: js/blocks/DictBlocks.js:357 +#: js/blocks/DictBlocks.js:430 +#: js/blocks/DictBlocks.js:431 +msgid "key2" +msgstr "" + +#: js/blocks/DictBlocks.js:215 +#: js/blocks/DictBlocks.js:216 +#: js/blocks/DictBlocks.js:289 +#: js/blocks/DictBlocks.js:290 +#: js/blocks/DictBlocks.js:357 +#: js/blocks/DictBlocks.js:430 +#: js/blocks/DictBlocks.js:431 +#: js/blocks/IntervalsBlocks.js:1462 +#.TRANS: key, e.g., C in C Major +msgid "key" +msgstr "chave" + +#: js/blocks/DictBlocks.js:271 +#: js/blocks/DictBlocks.js:411 +msgid "The Set-dict block sets a value in the dictionary for a specified key." +msgstr "" + +#: js/blocks/DictBlocks.js:286 +#: js/blocks/DictBlocks.js:427 +#.TRANS: set a value in the dictionary for a given key +msgid "set value" +msgstr "" -#: js/EnsembleBlocks.js:66 +#: js/blocks/EnsembleBlocks.js:66 msgid "mouse index heap" msgstr "" -#: js/EnsembleBlocks.js:68 +#: js/blocks/EnsembleBlocks.js:68 msgid "The Mouse index heap block returns a value in the heap at a specified location for a specified mouse." msgstr "" -#: js/EnsembleBlocks.js:77 -#: js/EnsembleBlocks.js:1080 +#: js/blocks/EnsembleBlocks.js:77 +#: js/blocks/EnsembleBlocks.js:1080 msgid "mouse name" msgstr "nome do ratinho" -#: js/EnsembleBlocks.js:77 -#: js/EnsembleBlocks.js:92 -#: js/HeapBlocks.js:544 +#: js/blocks/EnsembleBlocks.js:77 +#: js/blocks/EnsembleBlocks.js:92 +#: js/blocks/HeapBlocks.js:544 #.TRANS: value1 is a numeric value (JAPANESE ONLY) msgid "index" msgstr "índice" -#: js/EnsembleBlocks.js:80 +#: js/blocks/EnsembleBlocks.js:80 msgid "turtle index heap" msgstr "" -#: js/EnsembleBlocks.js:82 +#: js/blocks/EnsembleBlocks.js:82 msgid "The Turtle index heap block returns a value in the heap at a specified location for a specified turtle." msgstr "" -#: js/EnsembleBlocks.js:90 -#: js/EnsembleBlocks.js:167 -#: js/EnsembleBlocks.js:230 -#: js/EnsembleBlocks.js:316 -#: js/EnsembleBlocks.js:362 -#: js/EnsembleBlocks.js:400 -#: js/EnsembleBlocks.js:454 -#: js/EnsembleBlocks.js:504 -#: js/EnsembleBlocks.js:550 -#: js/EnsembleBlocks.js:597 -#: js/EnsembleBlocks.js:651 -#: js/EnsembleBlocks.js:763 -#: js/EnsembleBlocks.js:854 -#: js/EnsembleBlocks.js:915 -#: js/EnsembleBlocks.js:955 -#: js/EnsembleBlocks.js:1219 -#: js/EnsembleBlocks.js:1293 +#: js/blocks/EnsembleBlocks.js:90 +#: js/blocks/EnsembleBlocks.js:167 +#: js/blocks/EnsembleBlocks.js:230 +#: js/blocks/EnsembleBlocks.js:316 +#: js/blocks/EnsembleBlocks.js:362 +#: js/blocks/EnsembleBlocks.js:400 +#: js/blocks/EnsembleBlocks.js:454 +#: js/blocks/EnsembleBlocks.js:504 +#: js/blocks/EnsembleBlocks.js:550 +#: js/blocks/EnsembleBlocks.js:597 +#: js/blocks/EnsembleBlocks.js:651 +#: js/blocks/EnsembleBlocks.js:763 +#: js/blocks/EnsembleBlocks.js:854 +#: js/blocks/EnsembleBlocks.js:915 +#: js/blocks/EnsembleBlocks.js:955 +#: js/blocks/EnsembleBlocks.js:1219 +#: js/blocks/EnsembleBlocks.js:1293 #.TRANS: Yertle is the name of a turtle. msgid "Yertle" msgstr "" -#: js/EnsembleBlocks.js:92 -#: js/EnsembleBlocks.js:1089 +#: js/blocks/EnsembleBlocks.js:92 +#: js/blocks/EnsembleBlocks.js:1089 msgid "turtle name" msgstr "nome da tartaruga" -#: js/EnsembleBlocks.js:122 -#: js/EnsembleBlocks.js:1197 -#: js/HeapBlocks.js:474 -#: js/HeapBlocks.js:572 +#: js/blocks/EnsembleBlocks.js:122 +#: js/blocks/EnsembleBlocks.js:1197 +#: js/blocks/HeapBlocks.js:474 +#: js/blocks/HeapBlocks.js:572 msgid "Index must be > 0." msgstr "O índice deve ser > 0." -#: js/EnsembleBlocks.js:127 -#: js/HeapBlocks.js:479 -#: js/HeapBlocks.js:577 +#: js/blocks/EnsembleBlocks.js:127 +#: js/blocks/HeapBlocks.js:479 +#: js/blocks/HeapBlocks.js:577 msgid "Maximum heap size is 1000." msgstr "O tamanho máximo da pilha é 1.000" -#: js/EnsembleBlocks.js:145 +#: js/blocks/EnsembleBlocks.js:145 msgid "stop mouse" msgstr "parar ratinho" -#: js/EnsembleBlocks.js:147 +#: js/blocks/EnsembleBlocks.js:147 msgid "The Stop mouse block stops the specified mouse." msgstr "O bloco Parar ratinho para o ratinho especificado." -#: js/EnsembleBlocks.js:158 +#: js/blocks/EnsembleBlocks.js:158 msgid "stop turtle" msgstr "parar tartaruga" -#: js/EnsembleBlocks.js:160 +#: js/blocks/EnsembleBlocks.js:160 msgid "The Stop turtle block stops the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:184 -#: js/EnsembleBlocks.js:247 -#: js/EnsembleBlocks.js:413 -#: js/EnsembleBlocks.js:468 -#: js/EnsembleBlocks.js:706 -#: js/EnsembleBlocks.js:808 -#: js/EnsembleBlocks.js:870 -#: js/EnsembleBlocks.js:1190 -#: js/EnsembleBlocks.js:1253 +#: js/blocks/EnsembleBlocks.js:184 +#: js/blocks/EnsembleBlocks.js:247 +#: js/blocks/EnsembleBlocks.js:413 +#: js/blocks/EnsembleBlocks.js:468 +#: js/blocks/EnsembleBlocks.js:706 +#: js/blocks/EnsembleBlocks.js:808 +#: js/blocks/EnsembleBlocks.js:870 +#: js/blocks/EnsembleBlocks.js:1190 +#: js/blocks/EnsembleBlocks.js:1253 msgid "Cannot find mouse" msgstr "Não foi possível encontrar o ratinho" -#: js/EnsembleBlocks.js:186 -#: js/EnsembleBlocks.js:249 -#: js/EnsembleBlocks.js:415 -#: js/EnsembleBlocks.js:470 -#: js/EnsembleBlocks.js:708 -#: js/EnsembleBlocks.js:810 -#: js/EnsembleBlocks.js:872 -#: js/EnsembleBlocks.js:1192 -#: js/EnsembleBlocks.js:1255 +#: js/blocks/EnsembleBlocks.js:186 +#: js/blocks/EnsembleBlocks.js:249 +#: js/blocks/EnsembleBlocks.js:415 +#: js/blocks/EnsembleBlocks.js:470 +#: js/blocks/EnsembleBlocks.js:708 +#: js/blocks/EnsembleBlocks.js:810 +#: js/blocks/EnsembleBlocks.js:872 +#: js/blocks/EnsembleBlocks.js:1192 +#: js/blocks/EnsembleBlocks.js:1255 msgid "Cannot find turtle" msgstr "Não foi possível encontrar a tartaruga" -#: js/EnsembleBlocks.js:206 +#: js/blocks/EnsembleBlocks.js:206 msgid "start mouse" msgstr "iniciar ratinho" -#: js/EnsembleBlocks.js:209 +#: js/blocks/EnsembleBlocks.js:209 msgid "The Start mouse block starts the specified mouse." msgstr "O bloco Iniciar ratinho inicia o ratinho especificado." -#: js/EnsembleBlocks.js:220 +#: js/blocks/EnsembleBlocks.js:220 msgid "start turtle" msgstr "iniciar tartaruga" -#: js/EnsembleBlocks.js:223 +#: js/blocks/EnsembleBlocks.js:223 msgid "The Start turtle block starts the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:256 +#: js/blocks/EnsembleBlocks.js:256 msgid "Mouse is already running." msgstr "O ratinho está sendo executado." -#: js/EnsembleBlocks.js:258 +#: js/blocks/EnsembleBlocks.js:258 msgid "Turtle is already running." msgstr "A tartaruga está sendo executada." -#: js/EnsembleBlocks.js:282 +#: js/blocks/EnsembleBlocks.js:282 msgid "Cannot find start block" msgstr "Não foi possível encontrar o bloco iniciar" -#: js/EnsembleBlocks.js:292 +#: js/blocks/EnsembleBlocks.js:292 #.TRANS: pen color for this mouse msgid "mouse color" msgstr "cor do ratinho" -#: js/EnsembleBlocks.js:294 +#: js/blocks/EnsembleBlocks.js:294 msgid "The Mouse color block returns the pen color of the specified mouse." msgstr "O bloco cor do Ratinho retorna a cor da caneta do ratinho especificado." -#: js/EnsembleBlocks.js:306 +#: js/blocks/EnsembleBlocks.js:306 #.TRANS: pen color for this turtle msgid "turtle color" msgstr "" -#: js/EnsembleBlocks.js:308 +#: js/blocks/EnsembleBlocks.js:308 msgid "The Turtle color block returns the pen color of the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:338 +#: js/blocks/EnsembleBlocks.js:338 #.TRANS: heading (compass direction) for this mouse msgid "mouse heading" msgstr "rumo do ratinho" -#: js/EnsembleBlocks.js:340 +#: js/blocks/EnsembleBlocks.js:340 msgid "The Mouse heading block returns the heading of the specified mouse." msgstr "O bloco rumo do Ratinho retorna a orientação do ratinho especificado." -#: js/EnsembleBlocks.js:352 +#: js/blocks/EnsembleBlocks.js:352 #.TRANS: heading (compass direction) for this turtle msgid "turtle heading" msgstr "" -#: js/EnsembleBlocks.js:354 +#: js/blocks/EnsembleBlocks.js:354 msgid "The Turtle heading block returns the heading of the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:384 -#: js/EnsembleBlocks.js:439 +#: js/blocks/EnsembleBlocks.js:384 +#: js/blocks/EnsembleBlocks.js:439 #.TRANS: set xy position for this mouse msgid "set mouse" msgstr "Definir ratinho" -#: js/EnsembleBlocks.js:391 -#: js/EnsembleBlocks.js:402 -#: js/BoxesBlocks.js:595 -msgid "name1" -msgstr "nome1" - -#: js/EnsembleBlocks.js:391 -#: js/EnsembleBlocks.js:402 -#: js/ProgramBlocks.js:881 -#: js/GraphicsBlocks.js:235 -#: js/GraphicsBlocks.js:313 -#: js/GraphicsBlocks.js:436 -#: js/GraphicsBlocks.js:487 -#: js/GraphicsBlocks.js:534 -#: js/GraphicsBlocks.js:750 +#: js/blocks/EnsembleBlocks.js:391 +#: js/blocks/EnsembleBlocks.js:402 +#: js/blocks/GraphicsBlocks.js:235 +#: js/blocks/GraphicsBlocks.js:313 +#: js/blocks/GraphicsBlocks.js:436 +#: js/blocks/GraphicsBlocks.js:487 +#: js/blocks/GraphicsBlocks.js:534 +#: js/blocks/GraphicsBlocks.js:750 +#: js/blocks/ProgramBlocks.js:881 msgid "x" msgstr "x" -#: js/EnsembleBlocks.js:391 -#: js/EnsembleBlocks.js:402 -#: js/ProgramBlocks.js:881 -#: js/GraphicsBlocks.js:149 -#: js/GraphicsBlocks.js:313 -#: js/GraphicsBlocks.js:436 -#: js/GraphicsBlocks.js:487 -#: js/GraphicsBlocks.js:534 -#: js/GraphicsBlocks.js:750 +#: js/blocks/EnsembleBlocks.js:391 +#: js/blocks/EnsembleBlocks.js:402 +#: js/blocks/GraphicsBlocks.js:149 +#: js/blocks/GraphicsBlocks.js:313 +#: js/blocks/GraphicsBlocks.js:436 +#: js/blocks/GraphicsBlocks.js:487 +#: js/blocks/GraphicsBlocks.js:534 +#: js/blocks/GraphicsBlocks.js:750 +#: js/blocks/ProgramBlocks.js:881 msgid "y" msgstr "y" -#: js/EnsembleBlocks.js:395 -#: js/EnsembleBlocks.js:452 +#: js/blocks/EnsembleBlocks.js:395 +#: js/blocks/EnsembleBlocks.js:452 #.TRANS: set xy position for this turtle msgid "set turtle" msgstr "" -#: js/EnsembleBlocks.js:433 +#: js/blocks/EnsembleBlocks.js:433 msgid "The Set mouse block sends a stack of blocks to be run by the specified mouse." msgstr "O bloco Define ratinho envia uma pilha de blocos para ser executada pelo ratinho especificado." -#: js/EnsembleBlocks.js:446 +#: js/blocks/EnsembleBlocks.js:446 msgid "The Set turtle block sends a stack of blocks to be run by the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:480 +#: js/blocks/EnsembleBlocks.js:480 #.TRANS: y position for this mouse msgid "mouse y" msgstr "ratinho y" -#: js/EnsembleBlocks.js:482 +#: js/blocks/EnsembleBlocks.js:482 msgid "The Y mouse block returns the Y position of the specified mouse." msgstr "O bloco ratinho Y retorna a posição Y do ratinho especificado." -#: js/EnsembleBlocks.js:494 +#: js/blocks/EnsembleBlocks.js:494 #.TRANS: y position for this turtle msgid "turtle y" msgstr "tartaruga y" -#: js/EnsembleBlocks.js:496 +#: js/blocks/EnsembleBlocks.js:496 msgid "The Y turtle block returns the Y position of the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:526 +#: js/blocks/EnsembleBlocks.js:526 #.TRANS: x position for this mouse msgid "mouse x" msgstr "ratinho x" -#: js/EnsembleBlocks.js:528 +#: js/blocks/EnsembleBlocks.js:528 msgid "The X mouse block returns the X position of the specified mouse." msgstr "O bloco ratinho X retorna a posição X do ratinho especificado" -#: js/EnsembleBlocks.js:540 +#: js/blocks/EnsembleBlocks.js:540 #.TRANS: x position for this turtle msgid "turtle x" msgstr "tartaruga x" -#: js/EnsembleBlocks.js:542 +#: js/blocks/EnsembleBlocks.js:542 msgid "The X turtle block returns the X position of the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:573 +#: js/blocks/EnsembleBlocks.js:573 #.TRANS: notes played by this mouse msgid "mouse notes played" msgstr "notas de ratinho tocadas" -#: js/EnsembleBlocks.js:575 +#: js/blocks/EnsembleBlocks.js:575 msgid "The Mouse elapse notes block returns the number of notes played by the specified mouse." msgstr "O bloco de notas de passagem do Ratinho retorna o número de notas executadas pelo ratinho especificado." -#: js/EnsembleBlocks.js:587 +#: js/blocks/EnsembleBlocks.js:587 #.TRANS: notes played by this turtle msgid "turtle notes played" msgstr "" -#: js/EnsembleBlocks.js:589 +#: js/blocks/EnsembleBlocks.js:589 msgid "The Turtle elapse notes block returns the number of notes played by the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:627 +#: js/blocks/EnsembleBlocks.js:627 #.TRANS: convert current note for this turtle to piano key (1-88) msgid "mouse pitch number" msgstr "número de tom do ratinho" -#: js/EnsembleBlocks.js:629 +#: js/blocks/EnsembleBlocks.js:629 msgid "The Mouse pitch block returns the current pitch number being played by the specified mouse." msgstr "O bloco tom do Ratinho retorna o tom atual sendo executado pelo ratinho especificado." -#: js/EnsembleBlocks.js:641 +#: js/blocks/EnsembleBlocks.js:641 #.TRANS: convert current note for this turtle to piano key (1-88) msgid "turtle pitch number" msgstr "" -#: js/EnsembleBlocks.js:643 -msgid "The Turrle pitch block returns the current pitch number being played by the specified turtle." +#: js/blocks/EnsembleBlocks.js:643 +msgid "The Turtle pitch block returns the current pitch number being played by the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:747 -#: js/EnsembleBlocks.js:819 +#: js/blocks/EnsembleBlocks.js:747 +#: js/blocks/EnsembleBlocks.js:819 #.TRANS: note value is the duration of the note played by this mouse msgid "mouse note value" msgstr "valor da nota do ratinho" -#: js/EnsembleBlocks.js:757 +#: js/blocks/EnsembleBlocks.js:757 #.TRANS: note value is the duration of the note played by this turtle msgid "turtle note value" msgstr "" -#: js/EnsembleBlocks.js:830 +#: js/blocks/EnsembleBlocks.js:830 #.TRANS: sync is short for synchronization msgid "mouse sync" msgstr "sincronizar ratinho" -#: js/EnsembleBlocks.js:832 +#: js/blocks/EnsembleBlocks.js:832 msgid "The Mouse sync block aligns the beat count between mice." msgstr "O bloco de sincronização do Ratinho alinha a contagem de batimentos entre os ratinho." -#: js/EnsembleBlocks.js:844 +#: js/blocks/EnsembleBlocks.js:844 #.TRANS: sync is short for synchronization msgid "turtle sync" msgstr "" -#: js/EnsembleBlocks.js:846 +#: js/blocks/EnsembleBlocks.js:846 msgid "The Turtle sync block aligns the beat count between turtles." msgstr "" -#: js/EnsembleBlocks.js:887 +#: js/blocks/EnsembleBlocks.js:887 msgid "The Found mouse block will return true if the specified mouse can be found." msgstr "O bloco Encontrar do mouse retornará verdadeiro se o ratinho especificado for encontrado." -#: js/EnsembleBlocks.js:893 +#: js/blocks/EnsembleBlocks.js:893 msgid "found mouse" msgstr "encontrar ratinho" -#: js/EnsembleBlocks.js:903 +#: js/blocks/EnsembleBlocks.js:903 msgid "The Found turtle block will return true if the specified turtle can be found." msgstr "" -#: js/EnsembleBlocks.js:909 +#: js/blocks/EnsembleBlocks.js:909 msgid "found turtle" msgstr "" -#: js/EnsembleBlocks.js:932 +#: js/blocks/EnsembleBlocks.js:932 msgid "new mouse" msgstr "novo ratinho" -#: js/EnsembleBlocks.js:934 +#: js/blocks/EnsembleBlocks.js:934 msgid "The New mouse block will create a new mouse." msgstr "O bloco Novo mouse criará um novo ratinho." -#: js/EnsembleBlocks.js:945 +#: js/blocks/EnsembleBlocks.js:945 msgid "new turtle" msgstr "" -#: js/EnsembleBlocks.js:947 +#: js/blocks/EnsembleBlocks.js:947 msgid "The New turtle block will create a new turtle." msgstr "" -#: js/EnsembleBlocks.js:1011 +#: js/blocks/EnsembleBlocks.js:1011 msgid "set mouse color" msgstr "" -#: js/EnsembleBlocks.js:1014 +#: js/blocks/EnsembleBlocks.js:1014 msgid "The Set-mouse-color block is used to set the color of a mouse." msgstr "" -#: js/EnsembleBlocks.js:1020 +#: js/blocks/EnsembleBlocks.js:1020 msgid "set turtle color" msgstr "" -#: js/EnsembleBlocks.js:1023 +#: js/blocks/EnsembleBlocks.js:1023 msgid "The Set-turtle-color block is used to set the color of a turtle." msgstr "" -#: js/EnsembleBlocks.js:1083 +#: js/blocks/EnsembleBlocks.js:1083 msgid "The Mouse-name block returns the name of a mouse." msgstr "O bloco Nome-do-ratinho retorna o nome de um ratinho." -#: js/EnsembleBlocks.js:1092 +#: js/blocks/EnsembleBlocks.js:1092 msgid "The Turtle-name block returns the name of a turtle." msgstr "" -#: js/EnsembleBlocks.js:1115 +#: js/blocks/EnsembleBlocks.js:1115 msgid "mouse count" msgstr "" -#: js/EnsembleBlocks.js:1118 +#: js/blocks/EnsembleBlocks.js:1118 msgid "The Mouse-count block returns the number of mice." msgstr "" -#: js/EnsembleBlocks.js:1124 +#: js/blocks/EnsembleBlocks.js:1124 msgid "turtle count" msgstr "" -#: js/EnsembleBlocks.js:1127 +#: js/blocks/EnsembleBlocks.js:1127 msgid "The Turtle-count block returns the number of turtles." msgstr "" -#: js/EnsembleBlocks.js:1149 +#: js/blocks/EnsembleBlocks.js:1149 msgid "nth mouse name" msgstr "" -#: js/EnsembleBlocks.js:1152 +#: js/blocks/EnsembleBlocks.js:1152 msgid "The Nth-Mouse name block returns the name of the nth mouse." msgstr "" -#: js/EnsembleBlocks.js:1158 +#: js/blocks/EnsembleBlocks.js:1158 msgid "nth turtle name" msgstr "" -#: js/EnsembleBlocks.js:1161 +#: js/blocks/EnsembleBlocks.js:1161 msgid "The Nth-Turtle name block returns the name of the nth turtle." msgstr "" -#: js/EnsembleBlocks.js:1205 -#: js/EnsembleBlocks.js:1265 +#: js/blocks/EnsembleBlocks.js:1205 +#: js/blocks/EnsembleBlocks.js:1265 msgid "set name" msgstr "Definir nome" -#: js/EnsembleBlocks.js:1214 -#: js/EnsembleBlocks.js:1221 +#: js/blocks/EnsembleBlocks.js:1214 +#: js/blocks/EnsembleBlocks.js:1221 msgid "source" msgstr "fonte" -#: js/EnsembleBlocks.js:1214 -#: js/EnsembleBlocks.js:1221 +#: js/blocks/EnsembleBlocks.js:1214 +#: js/blocks/EnsembleBlocks.js:1221 msgid "target" msgstr "alvo" -#: js/EnsembleBlocks.js:1271 +#: js/blocks/EnsembleBlocks.js:1271 msgid "The Set-name block is used to name a mouse." msgstr "O bloco Definir-nome é usado para nomear um ratinho." -#: js/EnsembleBlocks.js:1284 +#: js/blocks/EnsembleBlocks.js:1284 msgid "The Set-name block is used to name a turtle." msgstr "" -#: js/BooleanBlocks.js:44 -msgid "The Not block is the logical not operator." -msgstr "O bloco Não é o operador lógico não." - -#: js/BooleanBlocks.js:62 -msgid "not" -msgstr "não" - -#: js/BooleanBlocks.js:134 -msgid "The And block is the logical and operator." -msgstr "O bloco E é o operador lógico e." - -#: js/BooleanBlocks.js:152 -msgid "and" -msgstr "e" - -#: js/BooleanBlocks.js:218 -msgid "The Or block is the logical or operator." -msgstr "O bloco Ou é o operador lógico ou." - -#: js/BooleanBlocks.js:236 -msgid "or" -msgstr "ou" - -#: js/BooleanBlocks.js:302 -msgid "The XOR block is the logical XOR operator." -msgstr "" - -#: js/BooleanBlocks.js:320 -msgid "xor" +#: js/blocks/ExtrasBlocks.js:33 +msgid "fraction" msgstr "" -#: js/BooleanBlocks.js:808 -msgid "The Equal block returns True if the two numbers are equal." -msgstr "O bloco Igual retorna Verdadeiro se os dois números forem iguais." - -#: js/BooleanBlocks.js:909 -msgid "The Not-equal-to block returns True if the two numbers are not equal to each other." +#: js/blocks/ExtrasBlocks.js:36 +msgid "Convert a float to a fraction" msgstr "" -#: js/BooleanBlocks.js:1008 -msgid "The Boolean block is used to specify true or false." -msgstr "O bloco Booleano é usado para especificar verdadeiro ou falso." - -#: js/MediaBlocks.js:35 -#.TRANS: right side of the screen -msgid "right (screen)" -msgstr "direita (tela)" - -#: js/MediaBlocks.js:45 -#: js/MediaBlocks.js:56 -msgid "The Right block returns the position of the right of the canvas." -msgstr "O bloco Direita retorna a posição da direita da tela." - -#: js/MediaBlocks.js:97 -#.TRANS: left side of the screen -msgid "left (screen)" -msgstr "esquerda" +#: js/blocks/ExtrasBlocks.js:93 +msgid "save as ABC" +msgstr "salvar como ABC" -#: js/MediaBlocks.js:107 -#: js/MediaBlocks.js:118 -msgid "The Left block returns the position of the left of the canvas." -msgstr "O bloco Esquerda retorna a posição da esquerda da tela." +#: js/blocks/ExtrasBlocks.js:96 +#: js/blocks/ExtrasBlocks.js:132 +#: js/blocks/ExtrasBlocks.js:168 +msgid "title" +msgstr "título" -#: js/MediaBlocks.js:158 -msgid "top (screen)" -msgstr "topo (tela)" +#: js/blocks/ExtrasBlocks.js:129 +msgid "save as Lilypond" +msgstr "Salvar como Lilypond" -#: js/MediaBlocks.js:168 -#: js/MediaBlocks.js:179 -msgid "The Top block returns the position of the top of the canvas." -msgstr "O bloco Topo retorna a posição do topo da tela." +#: js/blocks/ExtrasBlocks.js:165 +msgid "save as SVG" +msgstr "salvar como SVG" -#: js/MediaBlocks.js:219 -msgid "bottom (screen)" -msgstr "rodapé (tela)" +#: js/blocks/ExtrasBlocks.js:216 +msgid "no background" +msgstr "sem plano de fundo" -#: js/MediaBlocks.js:229 -#: js/MediaBlocks.js:240 -msgid "The Bottom block returns the position of the bottom of the canvas." -msgstr "O bloco Rodapé retorna a posição da parte inferior da tela." +#: js/blocks/ExtrasBlocks.js:219 +msgid "The No background block eliminates the background from the saved SVG output." +msgstr "O bloco Sem plano de fundo elimina o plano de fundo de uma saida SVG salva." -#: js/MediaBlocks.js:282 -msgid "width" -msgstr "largura" +#: js/blocks/ExtrasBlocks.js:247 +msgid "show blocks" +msgstr "mostrar blocos" -#: js/MediaBlocks.js:291 -msgid "The Width block returns the width of the canvas." -msgstr "O bloco Largura retorna a largura da tela." +#: js/blocks/ExtrasBlocks.js:249 +msgid "The Show blocks block shows the blocks." +msgstr "O bloco Mostar blocos mostra os blocos." -#: js/MediaBlocks.js:325 -msgid "height" -msgstr "altura" +#: js/blocks/ExtrasBlocks.js:274 +msgid "hide blocks" +msgstr "ocultar blocos" -#: js/MediaBlocks.js:334 -msgid "The Height block returns the height of the canvas." -msgstr "O bloco Altura retorna a altura da tela." +#: js/blocks/ExtrasBlocks.js:276 +msgid "The Hide blocks block hides the blocks." +msgstr "O bloco Ocultar blocos esconde os blocos." -#: js/MediaBlocks.js:369 -#.TRANS: stops playback of an audio recording -msgid "stop play" -msgstr "parar de tocar" +#: js/blocks/ExtrasBlocks.js:305 +#: js/blocks/ExtrasBlocks.js:338 +msgid "The Space block is used to add space between blocks." +msgstr "O bloco Espaço é usado para adicionar espaço entre dois blocos." -#: js/MediaBlocks.js:404 -#.TRANS: Erases the images and text -msgid "erase media" -msgstr "" +#: js/blocks/ExtrasBlocks.js:376 +msgid "wait" +msgstr "espere" -#: js/MediaBlocks.js:409 -msgid "The Erase Media block erases text and images." -msgstr "" +#: js/blocks/ExtrasBlocks.js:379 +msgid "The Wait block pauses the program for a specified number of seconds." +msgstr "O bloco Esperar pausa o programa por um número de segundos especificado." -#: js/MediaBlocks.js:439 -#.TRANS: play an audio recording -msgid "play back" -msgstr "tocar de fundo" +#: js/blocks/ExtrasBlocks.js:433 +#: plugins/facebook.rtp:30 +msgid "comment" +msgstr "comentar" -#: js/MediaBlocks.js:487 -msgid "speak" -msgstr "falar" +#: js/blocks/ExtrasBlocks.js:469 +msgid "print" +msgstr "imprimir" -#: js/MediaBlocks.js:495 -msgid "The Speak block outputs to the text-to-speech synthesizer" -msgstr "O bloco Falar executa o sintetizador de texto para fala" +#: js/blocks/ExtrasBlocks.js:476 +msgid "The Print block displays text at the top of the screen." +msgstr "O bloco Exibir exibe o texto na parte superior da tela." -#: js/MediaBlocks.js:546 -msgid "camera" +#: js/blocks/ExtrasBlocks.js:582 +msgid "display grid" msgstr "" -#: js/MediaBlocks.js:551 -msgid "The Camera block connects a webcam to the Show block." -msgstr "O bloco Câmera conecta a câmera web com o bloco Mostar." - -#: js/MediaBlocks.js:574 -msgid "video" +#: js/blocks/ExtrasBlocks.js:587 +msgid "The Display Grid Block changes the grid type" msgstr "" -#: js/MediaBlocks.js:579 -msgid "The Video block selects video for use with the Show block." -msgstr "O bloco Vídeo seleciona vídeo para usar com o bloco Mostrar." - -#: js/MediaBlocks.js:607 -msgid "The Open file block opens a file for use with the Show block." -msgstr "O bloco Abrir arquivo abre um arquivo para usar com o bloco Mostrar." - -#: js/MediaBlocks.js:645 -msgid "stop media" -msgstr "parar mídia" - -#: js/MediaBlocks.js:650 -msgid "The Stop media block stops audio or video playback." -msgstr "O bloco Parar mídia para o áudio ou o vídeo sendo executado." - -#: js/MediaBlocks.js:679 -#: js/PitchBlocks.js:1539 -#: js/phrasemaker.js:822 -#: js/musickeyboard.js:1654 -#.TRANS: a measure of frequency: one cycle per second -msgid "hertz" -msgstr "hertz" - -#: js/MediaBlocks.js:692 -msgid "duration (ms)" -msgstr "duração (ms)" +#: js/blocks/ExtrasBlocks.js:689 +#: js/blocks/ExtrasBlocks.js:708 +#: js/blocks/ExtrasBlocks.js:731 +#: js/blocks/ExtrasBlocks.js:754 +#: js/blocks/ExtrasBlocks.js:772 +#: js/blocks/ExtrasBlocks.js:791 +#: js/blocks/ExtrasBlocks.js:810 +#: js/blocks/ExtrasBlocks.js:829 +msgid "unknown" +msgstr "desconhecido" -#: js/MediaBlocks.js:728 -#.TRANS: translate a note into hertz, e.g., A4 -> 440HZ -msgid "note to frequency" -msgstr "nota para frequência" +#: js/blocks/FlowBlocks.js:41 +msgid "The Backward block runs code in reverse order (Musical retrograde)." +msgstr "O bloco Retroceder executa o código na ordem inversa (retorno musical)." -#: js/MediaBlocks.js:736 -msgid "The To frequency block converts a pitch name and octave to Hertz." -msgstr "O bloco frequência converte o nome de um tom e de uma oitava em Hertz." +#: js/blocks/FlowBlocks.js:48 +msgid "backward" +msgstr "para trás" -#: js/MediaBlocks.js:746 -#: js/PitchBlocks.js:656 -#: js/PitchBlocks.js:932 -#: js/PitchBlocks.js:1827 -#.TRANS: name2 is name as in name of pitch (JAPANESE ONLY) -msgid "name2" -msgstr "nome2" +#: js/blocks/FlowBlocks.js:124 +msgid "The Duplicate block will run each block multiple times." +msgstr "O bloco Duplicar executará cada bloco múltiplas vezes." -#: js/MediaBlocks.js:812 -msgid "The Avatar block is used to change the appearance of the mouse." -msgstr "" +#: js/blocks/FlowBlocks.js:136 +msgid "duplicate" +msgstr "duplicar" -#: js/MediaBlocks.js:819 -msgid "The Avatar block is used to change the appearance of the turtle." +#: js/blocks/FlowBlocks.js:334 +msgid "The Default block is used inside of a Switch to define the default action." msgstr "" -#: js/MediaBlocks.js:831 -#: js/MediaBlocks.js:891 -#.TRANS: a media object -msgid "size" -msgstr "tamanho" - -#: js/MediaBlocks.js:831 -msgid "image" -msgstr "imagem" - -#: js/MediaBlocks.js:880 -msgid "The Show block is used to display text or images on the canvas." -msgstr "O bloco Mostrar é usado para exibir texto ou imagens na tela." - -#: js/MediaBlocks.js:888 -#.TRANS: show1 is show as in display an image or text on the screen. -msgid "show1" -msgstr "mostrar1" - -#: js/MediaBlocks.js:891 -msgid "obj" -msgstr "obj" +#: js/blocks/FlowBlocks.js:342 +msgid "default" +msgstr "padrão" -#: js/MediaBlocks.js:938 -msgid "The Media block is used to import an image." -msgstr "O bloco Mídia é usado para importar uma imagem." +#: js/blocks/FlowBlocks.js:361 +#: js/blocks/FlowBlocks.js:418 +msgid "The Case Block must be used inside of a Switch Block." +msgstr "O Bloco de Casos deve ser usado dentro de um Bloco de Trocas" -#: js/MediaBlocks.js:973 -msgid "The Text block holds a text string." -msgstr "O bloco Texto contém uma linha de texto." +#: js/blocks/FlowBlocks.js:389 +msgid "The Case block is used inside of a Switch to define matches." +msgstr "O bloco Caso é usado dentro de Trocar para definir correspondências." -#: js/ProgramBlocks.js:33 -msgid "The Load-heap-from-app block loads the heap from a web page." -msgstr "O bloco Carregar-pilha-do-app carrega a pilha de uma página da web." +#: js/blocks/FlowBlocks.js:397 +msgid "case" +msgstr "capa" -#: js/ProgramBlocks.js:44 -#.TRANS: load the heap contents from a URL -msgid "load heap from App" -msgstr "carregar pilha do aplicativo" +#: js/blocks/FlowBlocks.js:446 +msgid "The Switch block will run the code in the matching Case." +msgstr "O bloco Trocar executará o código no caso correspondente." -#: js/ProgramBlocks.js:95 -msgid "Error parsing JSON data:" -msgstr "Erro ao analisar dados JSON:" +#: js/blocks/FlowBlocks.js:454 +msgid "switch" +msgstr "trocar" -#: js/ProgramBlocks.js:100 -msgid "404: Page not found" -msgstr "404 Página não encontrada" +#: js/blocks/FlowBlocks.js:595 +msgid "The Stop block will stop a loop" +msgstr "O bloco Parar interromperá uma repetição" -#: js/ProgramBlocks.js:133 -msgid "The Save-heap-to-app block saves the heap to a web page." -msgstr "O bloco Salvar-pilha-para-aplicativo salva a pilha em uma página da web." +#: js/blocks/FlowBlocks.js:597 +msgid "Forever, Repeat, While, or Until." +msgstr "Para sempre, Repetir, Enquanto ou Até." -#: js/ProgramBlocks.js:144 -#.TRANS: save the heap contents to a URL -msgid "save heap to App" -msgstr "salvar pilha no aplicativo" +#: js/blocks/FlowBlocks.js:604 +#: js/widgets/timbre.js:417 +#: js/widgets/timbre.js:419 +#: js/widgets/musickeyboard.js:819 +#: js/widgets/musickeyboard.js:821 +#: js/widgets/phrasemaker.js:4202 +#: plugins/rodi.rtp:29 +#: plugins/rodi.rtp:73 +#: plugins/rodi.rtp:413 +msgid "stop" +msgstr "parar" -#: js/ProgramBlocks.js:189 -msgid "Cannot find a valid heap for" -msgstr "Não foi possível encontrar uma pilha válida para" +#: js/blocks/FlowBlocks.js:653 +msgid "The Waitfor block will wait until the condition is true." +msgstr "O bloco Esperarpor esperará até o momento em que a condição seja verdadeira." -#: js/ProgramBlocks.js:206 -msgid "The Load-heap block loads the heap from a file." -msgstr "O bloco Carregar-pilha carrega a pilha de um arquivo." +#: js/blocks/FlowBlocks.js:661 +msgid "wait for" +msgstr "esperar por" -#: js/ProgramBlocks.js:217 -#.TRANS: load the heap from a file -msgid "load heap" -msgstr "carregar pilha" +#: js/blocks/FlowBlocks.js:732 +msgid "The Until block will repeat until the condition is true." +msgstr "O bloco Até repetirá até o momento em que a condição seja verdadeira." -#: js/ProgramBlocks.js:270 -msgid "The file you selected does not contain a valid heap." -msgstr "O arquivo escolhido não tem uma pilha válida." +#: js/blocks/FlowBlocks.js:740 +msgid "until" +msgstr "até" -#: js/ProgramBlocks.js:275 -msgid "The loadHeap block needs a loadFile block." -msgstr "O bloco de carregarPilha precisa de um bloco de carregarArquivo." +#: js/blocks/FlowBlocks.js:742 +#: js/blocks/FlowBlocks.js:822 +msgid "do2" +msgstr "fazer2" -#: js/ProgramBlocks.js:291 -msgid "The Set-heap block loads the heap." -msgstr "" +#: js/blocks/FlowBlocks.js:812 +msgid "The While block will repeat while the condition is true." +msgstr "O bloco Enquanto repetirá enquanto a condição for verdadeira." -#: js/ProgramBlocks.js:299 -#: js/HeapBlocks.js:539 -#.TRANS: load the heap from a JSON encoding -msgid "set heap" -msgstr "definir pilha" +#: js/blocks/FlowBlocks.js:820 +msgid "while" +msgstr "enquanto" -#: js/ProgramBlocks.js:340 -msgid "The block you selected does not contain a valid heap." -msgstr "" +#: js/blocks/FlowBlocks.js:903 +#: js/blocks/FlowBlocks.js:968 +#: js/blocks/FlowBlocks.js:979 +msgid "In this example if the mouse button is pressed a snare drum will play." +msgstr "Neste exemplo, se o botão do mouse for pressionado, uma batida de caixa será executada." -#: js/ProgramBlocks.js:343 -msgid "The Set heap block needs a heap." -msgstr "" +#: js/blocks/FlowBlocks.js:925 +#: js/blocks/FlowBlocks.js:988 +msgid "if" +msgstr "se" -#: js/ProgramBlocks.js:360 -msgid "The Load-dictionary block loads a dictionary from a file." -msgstr "" +#: js/blocks/FlowBlocks.js:927 +#: js/blocks/FlowBlocks.js:990 +msgid "then" +msgstr "então" -#: js/ProgramBlocks.js:372 -#.TRANS: load a dictionary from a file -msgid "load dictionary" -msgstr "" +#: js/blocks/FlowBlocks.js:927 +msgid "else" +msgstr "ou" -#: js/ProgramBlocks.js:390 -#: js/ProgramBlocks.js:658 -#: js/ToneBlocks.js:1025 -msgid "file" -msgstr "" +#: js/blocks/FlowBlocks.js:1025 +msgid "The Forever block will repeat the contained blocks forever." +msgstr "O bloco Forever irá repetir os blocos contidos para sempre." -#: js/ProgramBlocks.js:396 -#: js/ProgramBlocks.js:501 -#: js/ProgramBlocks.js:664 -#: js/DictBlocks.js:80 -#: js/DictBlocks.js:145 -#: js/DictBlocks.js:216 -#: js/DictBlocks.js:290 -msgid "My Dictionary" -msgstr "" +#: js/blocks/FlowBlocks.js:1037 +msgid "forever" +msgstr "para sempre" -#: js/ProgramBlocks.js:444 -msgid "The file you selected does not contain a valid dictionary." -msgstr "" +#: js/blocks/FlowBlocks.js:1073 +msgid "The Repeat block will repeat the contained blocks." +msgstr "O bloco Repetir repetirá os blocos contidos." -#: js/ProgramBlocks.js:449 -msgid "The load dictionary block needs a load file block." -msgstr "" +#: js/blocks/FlowBlocks.js:1075 +msgid "In this example the note will be played 4 times." +msgstr "Neste exemplo, a nota será executada 4 vezes." -#: js/ProgramBlocks.js:466 -msgid "The Set-dictionary block loads a dictionary." -msgstr "" +#: js/blocks/FlowBlocks.js:1083 +msgid "repeat" +msgstr "repetir" -#: js/ProgramBlocks.js:477 -#.TRANS: load a dictionary from a JSON -msgid "set dictionary" -msgstr "" +#: js/blocks/FlowBlocks.js:1123 +msgid "duplicate factor" +msgstr "duplicar fator" -#: js/ProgramBlocks.js:546 -msgid "The block you selected does not contain a valid dictionary." +#: js/blocks/HeapBlocks.js:49 +msgid "The Heap block returns the heap." msgstr "" -#: js/ProgramBlocks.js:550 -msgid "The set dictionary block needs a dictionary." -msgstr "" +#: js/blocks/HeapBlocks.js:133 +msgid "show heap" +msgstr "mostrar pilha" -#: js/ProgramBlocks.js:567 -msgid "The Save-heap block saves the heap to a file." -msgstr "O bloco Salvar-pilha salva a pilha em um arquivo." +#: js/blocks/HeapBlocks.js:181 +msgid "The Heap-length block returns the length of the heap." +msgstr "O bloco Comprimento-da-pilha retorna o comprimento da pilha." -#: js/ProgramBlocks.js:578 -#.TRANS: save the heap to a file -msgid "save heap" -msgstr "salvar pilha" +#: js/blocks/HeapBlocks.js:195 +msgid "heap length" +msgstr "comprimento da pilha" -#: js/ProgramBlocks.js:629 -msgid "The Save-dictionary block saves a dictionary to a file." -msgstr "" +#: js/blocks/HeapBlocks.js:254 +msgid "The Heap-empty? block returns true if the heap is empty." +msgstr "O bloco Pilha-vazia? retorna verdadeiro se a pilha está vazia." -#: js/ProgramBlocks.js:640 -#.TRANS: save a dictionary to a file -msgid "save dictionary" -msgstr "" +#: js/blocks/HeapBlocks.js:268 +#.TRANS: Is the heap empty? +msgid "heap empty?" +msgstr "pilha vazia?" -#: js/ProgramBlocks.js:720 -msgid "The Open palette block opens a palette." -msgstr "O bloco Abrir paleta abre uma paleta." +#: js/blocks/HeapBlocks.js:317 +msgid "The Empty-heap block empties the heap." +msgstr "O bloco Esvaziar-pilha esvazia a pilha." -#: js/ProgramBlocks.js:727 -msgid "open palette" -msgstr "abrir paleta" +#: js/blocks/HeapBlocks.js:327 +#: js/blocks/HeapBlocks.js:647 +#.TRANS: empty the heap +msgid "empty heap" +msgstr "pilha vazia" -#: js/ProgramBlocks.js:785 -msgid "The Delete block block removes a block." -msgstr "O bloco Excluir bloco remove um bloco." +#: js/blocks/HeapBlocks.js:371 +msgid "The Reverse-heap block reverses the order of the heap." +msgstr "O bloco Pilha-reversa reverte a ordem da pilha." -#: js/ProgramBlocks.js:797 -#.TRANS: Move this block to the trash. -msgid "delete block" -msgstr "excluir bloco" +#: js/blocks/HeapBlocks.js:384 +#.TRANS: reverse the order of the heap +msgid "reverse heap" +msgstr "pilha reversa" -#: js/ProgramBlocks.js:861 -msgid "The Move block block moves a block." -msgstr "O bloco Mover move um bloco." +#: js/blocks/HeapBlocks.js:428 +msgid "The Index-heap block returns a value in the heap at a specified location." +msgstr "O bloco Índice-pilha retorna um valor na pilha em um local especificado." -#: js/ProgramBlocks.js:869 -#.TRANS: Move the position of a block on the screen. -msgid "move block" -msgstr "mover bloco" +#: js/blocks/HeapBlocks.js:443 +#.TRANS: retrieve a value from the heap at index position in the heap +msgid "index heap" +msgstr "pilha índice" -#: js/ProgramBlocks.js:881 -#: js/ProgramBlocks.js:1048 -msgid "block number" -msgstr "número do bloco" +#: js/blocks/HeapBlocks.js:523 +msgid "The Set-heap entry block sets a value in he heap at the specified location." +msgstr "O bloco de entrada Definir-pilha define um valor na pilha na localização especificada." -#: js/ProgramBlocks.js:935 -#.TRANS: Run program beginning at this block. -msgid "run block" -msgstr "executar bloco" +#: js/blocks/HeapBlocks.js:539 +#: js/blocks/ProgramBlocks.js:299 +#.TRANS: load the heap from a JSON encoding +msgid "set heap" +msgstr "definir pilha" -#: js/ProgramBlocks.js:1025 -msgid "The Dock block block connections two blocks." -msgstr "O bloco Dock bloco conecta dois blocos." +#: js/blocks/HeapBlocks.js:619 +msgid "The Pop block removes the value at the top of the heap." +msgstr "O bloco Pop remove o valor do topo da pilha." -#: js/ProgramBlocks.js:1036 -#.TRANS: We can connect a block to another block. -msgid "connect blocks" -msgstr "conectar blocos" +#: js/blocks/HeapBlocks.js:633 +#.TRANS: pop a value off the top of the heap +msgid "pop" +msgstr "pop" -#: js/ProgramBlocks.js:1048 -msgid "target block" -msgstr "Blco alvo" +#: js/blocks/HeapBlocks.js:680 +msgid "The Push block adds a value to the top of the heap." +msgstr "O bloco Empurrar adiciona um valor ao topo da pilha." -#: js/ProgramBlocks.js:1048 -msgid "connection number" -msgstr "Número da conexão" +#: js/blocks/HeapBlocks.js:696 +#.TRANS: push a value onto the top of the heap +msgid "push" +msgstr "empurrar" -#: js/ProgramBlocks.js:1140 -msgid "The Make block block creates a new block." -msgstr "O bloco Fazer bloco criar um novo bloco." +#: js/blocks/IntervalsBlocks.js:45 +msgid "set temperament" +msgstr "definir temperamento" -#: js/ProgramBlocks.js:1152 -#.TRANS: Create a new block -msgid "make block" -msgstr "fazer bloco" +#: js/blocks/IntervalsBlocks.js:63 +#: js/blocks/MediaBlocks.js:746 +#: js/blocks/PitchBlocks.js:657 +#: js/blocks/PitchBlocks.js:935 +#: js/blocks/PitchBlocks.js:974 +#: js/blocks/PitchBlocks.js:1007 +#: js/blocks/PitchBlocks.js:1194 +#: js/blocks/PitchBlocks.js:1717 +#: js/blocks/PitchBlocks.js:1758 +#: js/blocks/PitchBlocks.js:1866 +#: js/blocks/ToneBlocks.js:1025 +#: js/turtleactions/IntervalsActions.js:114 +#.TRANS: adjusts the shift up or down by one octave (twelve half-steps in the interval between two notes, one having twice or half the frequency in Hz of the other.) +msgid "octave" +msgstr "oitava" -#: js/ProgramBlocks.js:1186 -#: js/ProgramBlocks.js:1227 -#: js/RhythmBlocks.js:1128 -#: js/PitchBlocks.js:972 -#: js/PitchBlocks.js:1005 -#: js/temperament.js:340 -#: js/temperament.js:362 -#: js/temperament.js:372 -#: js/temperament.js:484 -#: js/status.js:190 -#: plugins/rodi.rtp:192 -#.TRANS: a musical note consisting of pitch and duration -msgid "note" -msgstr "nota" +#: js/blocks/IntervalsBlocks.js:99 +msgid "The Temperament name block is used to select a tuning method." +msgstr "O bloco nome do Temperamento é usado para selecionar o método de afinação." -#: js/ProgramBlocks.js:1285 -msgid "Cannot find block" -msgstr "Não foi possivel encontrar o bloco" +#: js/blocks/IntervalsBlocks.js:161 +msgid "doubly" +msgstr "duplicar" -#: js/ProgramBlocks.js:1304 -#: js/ProgramBlocks.js:1313 -msgid "Warning: block argument type mismatch" -msgstr "Aviso: tipo incompatível de bloco de arggumento" +#: js/blocks/IntervalsBlocks.js:166 +msgid "The Doubly block will double the size of an interval." +msgstr "O bloco Duplicar duplicará o tamanho de um intervalo." -#: js/ProgramBlocks.js:1347 -msgid "The Open project block is used to open a project from a web page." -msgstr "O bloco Abrir projeto é usado para abrir um projeto de uma página da Internet." +#: js/blocks/IntervalsBlocks.js:262 +msgid "interval number" +msgstr "" -#: js/ProgramBlocks.js:1357 -msgid "open project" -msgstr "abrir projeto" +#: js/blocks/IntervalsBlocks.js:317 +msgid "current interval" +msgstr "" -#: js/ProgramBlocks.js:1410 -msgid "Please enter a valid URL." -msgstr "Por favor, digite uma URL válida" +#: js/blocks/IntervalsBlocks.js:387 +#.TRANS: measure the distance between two pitches in semi-tones +msgid "semi-tone interval measure" +msgstr "medida do intervalo semi-tom" -#: js/DrumBlocks.js:59 -msgid "The Noise name block is used to select a noise synthesizer." -msgstr "O bloco nome do Ruído é usado para selecionar um ruído de sintetizador." +#: js/blocks/IntervalsBlocks.js:454 +#: js/blocks/IntervalsBlocks.js:570 +msgid "You must use two pitch blocks when measuring an interval." +msgstr "Você deve usar dois blocos de tom quando medir um intervalo." -#: js/DrumBlocks.js:102 -msgid "The Drum name block is used to select a drum." -msgstr "O bloco nome da Bateria é utilizado para selecionar uma bateria." +#: js/blocks/IntervalsBlocks.js:496 +msgid "The Scalar interval block measures the distance between two notes in the current key and mode." +msgstr "O bloco de intervalo Escalar mede a distância entre duas notas na tecla e no modo atuais." -#: js/DrumBlocks.js:146 -msgid "The Effects name block is used to select a sound effect." -msgstr "O bloco de nome Efeito é utilizado para selecionar um efeito de som." +#: js/blocks/IntervalsBlocks.js:502 +#.TRANS: measure the distance between two pitches in steps of musical scale +msgid "scalar interval measure" +msgstr "medida do intervalo escalar" -#: js/DrumBlocks.js:163 -msgid "noise" -msgstr "ruído" +#: js/blocks/IntervalsBlocks.js:678 +msgid "In the figure, we add sol# to sol." +msgstr "Na figura, adicionamos sol# ao sol." -#: js/DrumBlocks.js:177 -msgid "The Play noise block will generate white, pink, or brown noise." -msgstr "O bloco Executar ruído irá gerar um ruído branco, rosa ou marrom." +#: js/blocks/IntervalsBlocks.js:684 +#: js/blocks/OrnamentBlocks.js:220 +#.TRANS: calculate a relative step between notes based on semi-tones +msgid "semi-tone interval" +msgstr "intervalo semi-tom" -#: js/DrumBlocks.js:191 -#: js/musicutils.js:752 -#: js/synthutils.js:47 -#.TRANS: white noise synthesizer -msgid "white noise" -msgstr "ruído branco" +#: js/blocks/IntervalsBlocks.js:733 +msgid "The output of the example is: do, mi, sol, sol, ti, mi" +msgstr "" -#: js/DrumBlocks.js:326 -msgid "Replace every instance of a pitch with a drum sound." +#: js/blocks/IntervalsBlocks.js:740 +#: js/blocks/WidgetBlocks.js:768 +msgid "arpeggio" msgstr "" -#: js/DrumBlocks.js:337 -#.TRANS: map a pitch to a drum sound -msgid "map pitch to drum" +#: js/blocks/IntervalsBlocks.js:931 +msgid "The Chord block calculates common chords." msgstr "" -#: js/DrumBlocks.js:404 -msgid "In the example above, a kick drum sound will be played instead of sol." -msgstr "No exemplo acima, um som de bumbo será reproduzido em vez de sol." +#: js/blocks/IntervalsBlocks.js:933 +msgid "In the figure, we generate a C-major chord." +msgstr "" -#: js/DrumBlocks.js:416 -#.TRANS: set the current drum sound for playback -msgid "set drum" -msgstr "definir bateria" +#: js/blocks/IntervalsBlocks.js:938 +msgid "chord" +msgstr "acorde" -#: js/DrumBlocks.js:460 -msgid "sound effect" -msgstr "efeito de som" +#: js/blocks/IntervalsBlocks.js:990 +msgid "The Ratio Interval block calculates an interval based on a ratio." +msgstr "" -#: js/DrumBlocks.js:498 -msgid "You can use multiple Drum blocks within a Note block." -msgstr "Você pode usar vários blocos Bateria dentro de um bloco Notas." +#: js/blocks/IntervalsBlocks.js:995 +msgid "ratio interval" +msgstr "" -#: js/RhythmBlocks.js:182 -#: js/RhythmBlocks.js:1086 -#: js/RhythmBlocks.js:1162 -msgid "Note value must be greater than 0." -msgstr "O valor da nota deve ser maior que 0." +#: js/blocks/IntervalsBlocks.js:1064 +msgid "In the figure, we add la to sol." +msgstr "Na figura, adicionamos la ao sol." -#: js/RhythmBlocks.js:215 -#: js/RhythmBlocks.js:278 -#: js/RhythmBlocks.js:350 -#.TRANS: swing is a rhythmic variation that emphasises the offbeat -msgid "swing" -msgstr "swing" +#: js/blocks/IntervalsBlocks.js:1120 +#.TRANS: define a custom mode +msgid "define mode" +msgstr "Definir modo" -#: js/RhythmBlocks.js:355 -#.TRANS: the amount to shift to the offbeat note -msgid "swing value" -msgstr "valor do swing" +#: js/blocks/IntervalsBlocks.js:1173 +msgid "movable Do" +msgstr "Do móvel" -#: js/RhythmBlocks.js:419 -msgid "The Skip notes block will cause notes to be skipped." -msgstr "O bloco Ignorar notas fará com que as notas sejam ignoradas." +#: js/blocks/IntervalsBlocks.js:1224 +#.TRANS: mode length is the number of notes in the mode, e.g., 7 for major and minor scales; 12 for chromatic scales +msgid "mode length" +msgstr "modo número de notas" -#: js/RhythmBlocks.js:427 -#.TRANS: substitute rests on notes being skipped -msgid "skip notes" -msgstr "pular notas" +#: js/blocks/IntervalsBlocks.js:1233 +msgid "The Mode length block is the number of notes in the current scale." +msgstr "O bloco Modo número de notas é o número de notas na escala atual." -#: js/RhythmBlocks.js:489 -#.TRANS: speed up note duration by some factor, e.g. convert 1/4 to 1/8 notes by using a factor of 2 -msgid "multiply note value" -msgstr "multiplicar valor da nota" +#: js/blocks/IntervalsBlocks.js:1235 +msgid "Most Western scales have 7 notes." +msgstr "A maioria das escalas ocidentais possui 7 notas." -#: js/RhythmBlocks.js:542 -msgid "The Tie block works on pairs of notes, combining them into one note." -msgstr "O bloco Laço funciona em pares de notas, combinando-as em uma nota." +#: js/blocks/IntervalsBlocks.js:1284 +#.TRANS: the mode in music is 'major', 'minor', etc. +msgid "current mode" +msgstr "modo atual" -#: js/RhythmBlocks.js:550 -#.TRANS: tie notes together into one longer note -msgid "tie" -msgstr "juntar" +#: js/blocks/IntervalsBlocks.js:1337 +#.TRANS: the key is a group of pitches with which a music composition is created +msgid "current key" +msgstr "chave atual" -#: js/RhythmBlocks.js:591 -#: js/RhythmBlocks.js:671 -#.TRANS: a dotted note is played for 1.5x its value, e.g., 1/8. --> 3/16 -msgid "dot" -msgstr "ponto" +#: js/blocks/IntervalsBlocks.js:1389 +#: js/blocks/IntervalsBlocks.js:1434 +#.TRANS: set the key and mode, e.g. C Major +msgid "set key" +msgstr "definir chave" -#: js/RhythmBlocks.js:619 -#: js/RhythmActions.js:221 -msgid "An argument of -1 results in a note value of 0." -msgstr "Um argumento de -1 resulta em um valor de nota de 0." +#: js/blocks/IntervalsBlocks.js:1443 +#: js/blocks/IntervalsBlocks.js:1449 +msgid "The Set key block is used to set the key and mode," +msgstr "O bloco Definir tecla é usado para definir a tecla e o modo," -#: js/RhythmBlocks.js:661 -msgid "The Dot block extends the duration of a note by 50%." -msgstr "O bloco Ponto aumenta a duração de uma nota em 50%." +#: js/blocks/IntervalsBlocks.js:1449 +msgid "eg C Major" +msgstr "Por exemplo, C Maior" -#: js/RhythmBlocks.js:663 -msgid "Eg a dotted quarter note will play for 3/8 (1/4 + 1/8) of a beat." -msgstr "Por exemplo, uma semínima pontuada será reproduzida por 3/8 (1/4 + 1/8) de uma batida." +#: js/blocks/MediaBlocks.js:35 +#.TRANS: right side of the screen +msgid "right (screen)" +msgstr "direita (tela)" -#: js/RhythmBlocks.js:765 -#.TRANS: Japanese only: note value block for drum -msgid "note value drum" -msgstr "valor da nota da bateria" +#: js/blocks/MediaBlocks.js:45 +#: js/blocks/MediaBlocks.js:56 +msgid "The Right block returns the position of the right of the canvas." +msgstr "O bloco Direita retorna a posição da direita da tela." -#: js/RhythmBlocks.js:829 -msgid "392 hertz" -msgstr "392 hertz" +#: js/blocks/MediaBlocks.js:97 +#.TRANS: left side of the screen +msgid "left (screen)" +msgstr "esquerda" -#: js/RhythmBlocks.js:1119 -msgid "The Note block is a container for one or more Pitch blocks." -msgstr "O bloco Notas é um contêiner para um ou mais blocos de tom." +#: js/blocks/MediaBlocks.js:107 +#: js/blocks/MediaBlocks.js:118 +msgid "The Left block returns the position of the left of the canvas." +msgstr "O bloco Esquerda retorna a posição da esquerda da tela." -#: js/RhythmBlocks.js:1121 -msgid "The Note block specifies the duration (note value) of its contents." -msgstr "O bloco Nota especifica a duração (valor da nota) de seu conteúdo." +#: js/blocks/MediaBlocks.js:158 +msgid "top (screen)" +msgstr "topo (tela)" -#: js/RhythmBlocks.js:1130 -msgid "value2" -msgstr "valor2" +#: js/blocks/MediaBlocks.js:168 +#: js/blocks/MediaBlocks.js:179 +msgid "The Top block returns the position of the top of the canvas." +msgstr "O bloco Topo retorna a posição do topo da tela." -#: js/RhythmBlocks.js:1200 -msgid "define frequency" -msgstr "Definir frequência" +#: js/blocks/MediaBlocks.js:219 +msgid "bottom (screen)" +msgstr "rodapé (tela)" -#: js/RhythmBlocks.js:1218 -#: js/temperament.js:650 -#: js/temperament.js:1421 -msgid "octave space" -msgstr "espaço oitava" +#: js/blocks/MediaBlocks.js:229 +#: js/blocks/MediaBlocks.js:240 +msgid "The Bottom block returns the position of the bottom of the canvas." +msgstr "O bloco Rodapé retorna a posição da parte inferior da tela." -#: js/NumberBlocks.js:28 -msgid "The Int block returns an integer." -msgstr "O bloco Int retorna um inteiro." +#: js/blocks/MediaBlocks.js:282 +msgid "width" +msgstr "largura" -#: js/NumberBlocks.js:34 -msgid "int" -msgstr "int" +#: js/blocks/MediaBlocks.js:291 +msgid "The Width block returns the width of the canvas." +msgstr "O bloco Largura retorna a largura da tela." -#: js/NumberBlocks.js:73 -msgid "The Mod block returns the remainder from a division." -msgstr "O bloco Mod retorna o resto de uma divisão." +#: js/blocks/MediaBlocks.js:325 +msgid "height" +msgstr "altura" -#: js/NumberBlocks.js:79 -msgid "mod" -msgstr "mod" +#: js/blocks/MediaBlocks.js:334 +msgid "The Height block returns the height of the canvas." +msgstr "O bloco Altura retorna a altura da tela." -#: js/NumberBlocks.js:123 -msgid "The Power block calculates a power function." -msgstr "O bloco Potência calcula a função potência." +#: js/blocks/MediaBlocks.js:369 +#.TRANS: stops playback of an audio recording +msgid "stop play" +msgstr "parar de tocar" -#: js/NumberBlocks.js:178 -msgid "The Sqrt block returns the square root." -msgstr "O bloco Sqrt retorna a raiz quadrada." +#: js/blocks/MediaBlocks.js:404 +#.TRANS: Erases the images and text +msgid "erase media" +msgstr "" -#: js/NumberBlocks.js:184 -msgid "sqrt" -msgstr "sqrt" +#: js/blocks/MediaBlocks.js:409 +msgid "The Erase Media block erases text and images." +msgstr "" -#: js/NumberBlocks.js:230 -msgid "The Abs block returns the absolute value." -msgstr "O bloco Abs retorna o valor absoluto." +#: js/blocks/MediaBlocks.js:439 +#.TRANS: play an audio recording +msgid "play back" +msgstr "tocar de fundo" -#: js/NumberBlocks.js:236 -msgid "abs" -msgstr "abs" +#: js/blocks/MediaBlocks.js:487 +msgid "speak" +msgstr "falar" -#: js/NumberBlocks.js:277 -msgid "The Distance block returns the distance between two points. For example, between the mouse and the center of the screen." +#: js/blocks/MediaBlocks.js:495 +msgid "The Speak block outputs to the text-to-speech synthesizer" +msgstr "O bloco Falar executa o sintetizador de texto para fala" + +#: js/blocks/MediaBlocks.js:546 +msgid "camera" msgstr "" -#: js/NumberBlocks.js:283 -#: plugins/rodi.rtp:310 -msgid "distance" -msgstr "distância" +#: js/blocks/MediaBlocks.js:551 +msgid "The Camera block connects a webcam to the Show block." +msgstr "O bloco Câmera conecta a câmera web com o bloco Mostar." -#: js/NumberBlocks.js:343 -msgid "The Divide block is used to divide." -msgstr "O bloco Dividir é usado para dividir." +#: js/blocks/MediaBlocks.js:574 +msgid "video" +msgstr "" -#: js/NumberBlocks.js:411 -msgid "The Multiply block is used to multiply." -msgstr "O bloco Multiplicar é usado para multiplicar." +#: js/blocks/MediaBlocks.js:579 +msgid "The Video block selects video for use with the Show block." +msgstr "O bloco Vídeo seleciona vídeo para usar com o bloco Mostrar." -#: js/NumberBlocks.js:554 -msgid "The Minus block is used to subtract." -msgstr "O bloco Menos é usado para subtrair." +#: js/blocks/MediaBlocks.js:607 +msgid "The Open file block opens a file for use with the Show block." +msgstr "O bloco Abrir arquivo abre um arquivo para usar com o bloco Mostrar." -#: js/NumberBlocks.js:647 -msgid "The Plus block is used to add." -msgstr "O bloco Mais é usado para adicionar." +#: js/blocks/MediaBlocks.js:645 +msgid "stop media" +msgstr "parar mídia" -#: js/NumberBlocks.js:773 -msgid "The One-of block returns one of two choices." -msgstr "O bloco UM-de retorna uma das duas opções." +#: js/blocks/MediaBlocks.js:650 +msgid "The Stop media block stops audio or video playback." +msgstr "O bloco Parar mídia para o áudio ou o vídeo sendo executado." -#: js/NumberBlocks.js:780 -#: js/PitchBlocks.js:616 -msgid "one of" -msgstr "um de" +#: js/blocks/MediaBlocks.js:679 +#: js/blocks/PitchBlocks.js:1577 +#: js/widgets/musickeyboard.js:1936 +#: js/widgets/phrasemaker.js:1037 +#.TRANS: a measure of frequency: one cycle per second +msgid "hertz" +msgstr "hertz" -#: js/NumberBlocks.js:782 -msgid "this" -msgstr "isso" +#: js/blocks/MediaBlocks.js:692 +#: js/blocks/WidgetBlocks.js:182 +#: js/widgets/temperament.js:506 +#: js/widgets/temperament.js:546 +#: js/widgets/temperament.js:610 +#: js/widgets/temperament.js:618 +#: js/widgets/temperament.js:1505 +#: js/widgets/timbre.js:1842 +msgid "frequency" +msgstr "frequência" -#: js/NumberBlocks.js:782 -msgid "that" -msgstr "aquilo" +#: js/blocks/MediaBlocks.js:692 +msgid "duration (ms)" +msgstr "duração (ms)" -#: js/NumberBlocks.js:837 -msgid "The Random block returns a random number." -msgstr "O bloco Aleatório retorna um número aleatório." +#: js/blocks/MediaBlocks.js:728 +#.TRANS: translate a note into hertz, e.g., A4 -> 440HZ +msgid "note to frequency" +msgstr "nota para frequência" -#: js/NumberBlocks.js:844 -msgid "random" -msgstr "aleatório" +#: js/blocks/MediaBlocks.js:736 +msgid "The To frequency block converts a pitch name and octave to Hertz." +msgstr "O bloco frequência converte o nome de um tom e de uma oitava em Hertz." -#: js/NumberBlocks.js:846 -msgid "min" -msgstr "min" +#: js/blocks/MediaBlocks.js:746 +#: js/blocks/PitchBlocks.js:656 +#: js/blocks/PitchBlocks.js:934 +#: js/blocks/PitchBlocks.js:1866 +#.TRANS: name2 is name as in name of pitch (JAPANESE ONLY) +msgid "name2" +msgstr "nome2" -#: js/NumberBlocks.js:846 -msgid "max" -msgstr "max" +#: js/blocks/MediaBlocks.js:812 +msgid "The Avatar block is used to change the appearance of the mouse." +msgstr "" -#: js/NumberBlocks.js:910 -msgid "The Number block holds a number." -msgstr "O bloco Número contém um número." +#: js/blocks/MediaBlocks.js:819 +msgid "The Avatar block is used to change the appearance of the turtle." +msgstr "" -#: js/BoxesBlocks.js:53 -#: js/BoxesBlocks.js:59 -msgid "The Add-to block is used to add to the value stored in a box." -msgstr "O bloco Adicionar-na é usado para adicionar o valor armazenado em uma caixa." +#: js/blocks/MediaBlocks.js:831 +#: js/blocks/MediaBlocks.js:891 +#.TRANS: a media object +msgid "size" +msgstr "tamanho" -#: js/BoxesBlocks.js:61 -msgid "It can also be used with other blocks such as Color and Pen size." -msgstr "" +#: js/blocks/MediaBlocks.js:831 +msgid "image" +msgstr "imagem" -#: js/BoxesBlocks.js:73 -msgid "add" -msgstr "adicionar" +#: js/blocks/MediaBlocks.js:880 +msgid "The Show block is used to display text or images on the canvas." +msgstr "O bloco Mostrar é usado para exibir texto ou imagens na tela." -#: js/BoxesBlocks.js:75 -#: js/temperament.js:716 -msgid "to" -msgstr "à" +#: js/blocks/MediaBlocks.js:888 +#.TRANS: show1 is show as in display an image or text on the screen. +msgid "show1" +msgstr "mostrar1" -#: js/BoxesBlocks.js:75 -#: js/BoxesBlocks.js:595 -#: js/HeapBlocks.js:544 -msgid "value1" -msgstr "valor1" +#: js/blocks/MediaBlocks.js:891 +msgid "obj" +msgstr "obj" -#: js/BoxesBlocks.js:118 -msgid "Block does not support incrementing." -msgstr "O bloco não suporta incrementações." +#: js/blocks/MediaBlocks.js:938 +msgid "The Media block is used to import an image." +msgstr "O bloco Mídia é usado para importar uma imagem." -#: js/BoxesBlocks.js:152 -msgid "The Add-1-to block adds one to the value stored in a box." -msgstr "O bloco Adicionar-1-na adiciona um ao valor armazenado em uma caixa." +#: js/blocks/MediaBlocks.js:973 +msgid "The Text block holds a text string." +msgstr "O bloco Texto contém uma linha de texto." -#: js/BoxesBlocks.js:163 -msgid "add 1 to" -msgstr "adicionar 1 à" +#: js/blocks/MeterBlocks.js:34 +#.TRANS: musical meter (time signature), e.g., 4:4 +msgid "current meter" +msgstr "medidor atual" -#: js/BoxesBlocks.js:211 -msgid "The Subtract-1-from block subtracts one from the value stored in a box." -msgstr "" +#: js/blocks/MeterBlocks.js:85 +#.TRANS: number of beats per minute +msgid "beat factor" +msgstr "fator da batida" -#: js/BoxesBlocks.js:222 -msgid "subtract 1 from" -msgstr "subtrair 1 de" +#: js/blocks/MeterBlocks.js:161 +msgid "The Beats per minute block returns the current beats per minute." +msgstr "O bloco Batidas por minuto retorna as batidas atuais por minuto." -#: js/BoxesBlocks.js:270 -#: js/BoxesBlocks.js:387 -msgid "The Box block returns the value stored in a box." -msgstr "O bloco Caixa retornará o valor armazenado em uma caixa." +#: js/blocks/MeterBlocks.js:169 +#: js/widgets/status.js:152 +#.TRANS: number of beats played per minute +msgid "beats per minute2" +msgstr "batidas por minuto2" -#: js/BoxesBlocks.js:500 -#: js/BoxesBlocks.js:576 -msgid "The Store in block will store a value in a box." -msgstr "O bloco Armazenar em armazenará um valor em uma caixa." +#: js/blocks/MeterBlocks.js:169 +#: js/blocks/MeterBlocks.js:1056 +#: js/blocks/MeterBlocks.js:1133 +#: js/blocks/MeterBlocks.js:1211 +#.TRANS: sets tempo by defining a beat and beats per minute +msgid "beats per minute" +msgstr "batidas por minuto" -#: js/BoxesBlocks.js:652 -msgid "The Box2 block returns the value stored in Box2." -msgstr "" +#: js/blocks/MeterBlocks.js:233 +#.TRANS: count of current musical measure in meter +msgid "measure count" +msgstr "contador de medida" -#: js/BoxesBlocks.js:703 -msgid "The Store in Box2 block is used to store a value in Box2." -msgstr "" +#: js/blocks/MeterBlocks.js:241 +msgid "The Measure count block returns the current measure." +msgstr "O bloco Medidor retorna a contagem atual." -#: js/BoxesBlocks.js:715 -msgid "store in box2" -msgstr "armazenar na caixa 2" +#: js/blocks/MeterBlocks.js:290 +#.TRANS: count of current beat in the meter +msgid "beat count" +msgstr "contador de batidas" -#: js/BoxesBlocks.js:761 -msgid "The Box1 block returns the value stored in Box1." -msgstr "" +#: js/blocks/MeterBlocks.js:300 +#: js/blocks/MeterBlocks.js:311 +#: js/blocks/MeterBlocks.js:565 +#: js/blocks/MeterBlocks.js:576 +msgid "The Beat count block is the number of the current beat," +msgstr "O bloco contagem de Batidas é o número da batida atual," -#: js/BoxesBlocks.js:812 -msgid "The Store in Box1 block is used to store a value in Box1." +#: js/blocks/MeterBlocks.js:313 +#: js/blocks/MeterBlocks.js:578 +msgid "eg 1, 2, 3, or 4." +msgstr "por exemplo 1, 2, 3, 4." + +#: js/blocks/MeterBlocks.js:368 +#.TRANS: count the number of notes +msgid "sum note values" msgstr "" -#: js/BoxesBlocks.js:826 -msgid "store in box1" -msgstr "armazenar na caixa 1" +#: js/blocks/MeterBlocks.js:376 +#: js/blocks/MeterBlocks.js:440 +msgid "The Note counter block can be used to count the number of contained notes." +msgstr "O bloco Contador de notas pode ser usado para contar o número de notas." -#: js/HeapBlocks.js:49 -msgid "The Heap block returns the heap." -msgstr "" +#: js/blocks/MeterBlocks.js:432 +#.TRANS: count the number of notes +msgid "note counter" +msgstr "contador de notas" -#: js/HeapBlocks.js:133 -msgid "show heap" -msgstr "mostrar pilha" +#: js/blocks/MeterBlocks.js:496 +#.TRANS: number of whole notes that have been played +msgid "whole notes played" +msgstr "todas as notas tocadas" -#: js/HeapBlocks.js:181 -msgid "The Heap-length block returns the length of the heap." -msgstr "O bloco Comprimento-da-pilha retorna o comprimento da pilha." +#: js/blocks/MeterBlocks.js:505 +msgid "The Whole notes played block returns the total number of whole notes played." +msgstr "O bloco Inteiro de notas tocadas retorna o número total de notas inteiras tocadas." -#: js/HeapBlocks.js:195 -msgid "heap length" -msgstr "comprimento da pilha" +#: js/blocks/MeterBlocks.js:555 +#: js/turtleactions/DictActions.js:83 +#.TRANS: number of notes that have been played +msgid "notes played" +msgstr "notas tocadas" -#: js/HeapBlocks.js:254 -msgid "The Heap-empty? block returns true if the heap is empty." -msgstr "O bloco Pilha-vazia? retorna verdadeiro se a pilha está vazia." +#: js/blocks/MeterBlocks.js:653 +msgid "The No clock block decouples the notes from the master clock." +msgstr "O bloco Sem-relógio desacopla as notas do relógio principal." -#: js/HeapBlocks.js:268 -#.TRANS: Is the heap empty? -msgid "heap empty?" -msgstr "pilha vazia?" +#: js/blocks/MeterBlocks.js:661 +#.TRANS: don't lock notes to master clock +msgid "no clock" +msgstr "sem relógio" -#: js/HeapBlocks.js:317 -msgid "The Empty-heap block empties the heap." -msgstr "O bloco Esvaziar-pilha esvazia a pilha." +#: js/blocks/MeterBlocks.js:700 +msgid "on weak beat do" +msgstr "" -#: js/HeapBlocks.js:327 -#: js/HeapBlocks.js:647 -#.TRANS: empty the heap -msgid "empty heap" -msgstr "pilha vazia" +#: js/blocks/MeterBlocks.js:705 +msgid "The On-weak-beat block lets you specify actions to take on weak (off) beats." +msgstr "" -#: js/HeapBlocks.js:371 -msgid "The Reverse-heap block reverses the order of the heap." -msgstr "O bloco Pilha-reversa reverte a ordem da pilha." +#: js/blocks/MeterBlocks.js:750 +msgid "on strong beat" +msgstr "em batida forte" -#: js/HeapBlocks.js:384 -#.TRANS: reverse the order of the heap -msgid "reverse heap" -msgstr "pilha reversa" +#: js/blocks/MeterBlocks.js:758 +msgid "The On-strong-beat block lets you specify actions to take on specified beats." +msgstr "" -#: js/HeapBlocks.js:428 -msgid "The Index-heap block returns a value in the heap at a specified location." -msgstr "O bloco Índice-pilha retorna um valor na pilha em um local especificado." +#: js/blocks/MeterBlocks.js:769 +msgid "beat" +msgstr "batida" -#: js/HeapBlocks.js:443 -#.TRANS: retrieve a value from the heap at index position in the heap -msgid "index heap" -msgstr "pilha índice" +#: js/blocks/MeterBlocks.js:813 +msgid "on every beat do" +msgstr "" -#: js/HeapBlocks.js:523 -msgid "The Set-heap entry block sets a value in he heap at the specified location." -msgstr "O bloco de entrada Definir-pilha define um valor na pilha na localização especificada." +#: js/blocks/MeterBlocks.js:821 +msgid "The On-every-beat block lets you specify actions to take on every beat." +msgstr "" -#: js/HeapBlocks.js:619 -msgid "The Pop block removes the value at the top of the heap." -msgstr "O bloco Pop remove o valor do topo da pilha." +#: js/blocks/MeterBlocks.js:874 +msgid "on every note do" +msgstr "em cada nota feita" -#: js/HeapBlocks.js:633 -#.TRANS: pop a value off the top of the heap -msgid "pop" -msgstr "pop" +#: js/blocks/MeterBlocks.js:882 +msgid "The On-every-note block lets you specify actions to take on every note." +msgstr "" -#: js/HeapBlocks.js:680 -msgid "The Push block adds a value to the top of the heap." -msgstr "O bloco Empurrar adiciona um valor ao topo da pilha." +#: js/blocks/MeterBlocks.js:928 +#: js/blocks/MeterBlocks.js:999 +#.TRANS: sets tempo by defining a beat and beats per minute +msgid "master beats per minute" +msgstr "batida mestre por minuto" -#: js/HeapBlocks.js:696 -#.TRANS: push a value onto the top of the heap -msgid "push" -msgstr "empurrar" +#: js/blocks/MeterBlocks.js:952 +#: js/blocks/MeterBlocks.js:1078 +#: js/blocks/MeterBlocks.js:1135 +msgid "bpm" +msgstr "bpm" -#: js/FlowBlocks.js:41 -msgid "The Backward block runs code in reverse order (Musical retrograde)." -msgstr "O bloco Retroceder executa o código na ordem inversa (retorno musical)." +#: js/blocks/MeterBlocks.js:952 +#: js/blocks/MeterBlocks.js:1078 +#: js/blocks/MeterBlocks.js:1135 +msgid "beat value" +msgstr "valor da batida" -#: js/FlowBlocks.js:48 -msgid "backward" -msgstr "para trás" +#: js/blocks/MeterBlocks.js:1024 +#: js/blocks/MeterBlocks.js:1167 +#: js/blocks/MeterBlocks.js:1241 +msgid "Beats per minute must be > 30." +msgstr "Batidas por minuto devem ser> 30." -#: js/FlowBlocks.js:124 -msgid "The Duplicate block will run each block multiple times." -msgstr "O bloco Duplicar executará cada bloco múltiplas vezes." +#: js/blocks/MeterBlocks.js:1027 +#: js/blocks/MeterBlocks.js:1170 +#: js/blocks/MeterBlocks.js:1244 +msgid "Maximum beats per minute is 1000." +msgstr "Máximo de batidas por minuto é de 1.000." -#: js/FlowBlocks.js:136 -msgid "duplicate" -msgstr "duplicar" +#: js/blocks/MeterBlocks.js:1068 +msgid "The Beats per minute block sets the number of 1/4 notes per minute." +msgstr "O bloco Batidas por minuto define o número de 1/4 notas por minuto." -#: js/FlowBlocks.js:334 -msgid "The Default block is used inside of a Switch to define the default action." -msgstr "" +#: js/blocks/MeterBlocks.js:1279 +#.TRANS: anacrusis +msgid "pickup" +msgstr "pegar" -#: js/FlowBlocks.js:342 -msgid "default" -msgstr "padrão" +#: js/blocks/MeterBlocks.js:1367 +msgid "number of beats" +msgstr "número de batidas" -#: js/FlowBlocks.js:361 -#: js/FlowBlocks.js:418 -msgid "The Case Block must be used inside of a Switch Block." -msgstr "O Bloco de Casos deve ser usado dentro de um Bloco de Trocas" +#: js/blocks/NumberBlocks.js:28 +msgid "The Int block returns an integer." +msgstr "O bloco Int retorna um inteiro." -#: js/FlowBlocks.js:389 -msgid "The Case block is used inside of a Switch to define matches." -msgstr "O bloco Caso é usado dentro de Trocar para definir correspondências." +#: js/blocks/NumberBlocks.js:34 +msgid "int" +msgstr "int" -#: js/FlowBlocks.js:397 -msgid "case" -msgstr "capa" +#: js/blocks/NumberBlocks.js:73 +msgid "The Mod block returns the remainder from a division." +msgstr "O bloco Mod retorna o resto de uma divisão." -#: js/FlowBlocks.js:446 -msgid "The Switch block will run the code in the matching Case." -msgstr "O bloco Trocar executará o código no caso correspondente." +#: js/blocks/NumberBlocks.js:79 +msgid "mod" +msgstr "mod" -#: js/FlowBlocks.js:454 -msgid "switch" -msgstr "trocar" +#: js/blocks/NumberBlocks.js:141 +msgid "The Power block calculates a power function." +msgstr "O bloco Potência calcula a função potência." -#: js/FlowBlocks.js:595 -msgid "The Stop block will stop a loop" -msgstr "O bloco Parar interromperá uma repetição" +#: js/blocks/NumberBlocks.js:196 +msgid "The Sqrt block returns the square root." +msgstr "O bloco Sqrt retorna a raiz quadrada." -#: js/FlowBlocks.js:597 -msgid "Forever, Repeat, While, or Until." -msgstr "Para sempre, Repetir, Enquanto ou Até." +#: js/blocks/NumberBlocks.js:202 +msgid "sqrt" +msgstr "sqrt" -#: js/FlowBlocks.js:604 -#: js/phrasemaker.js:3799 -#: js/musickeyboard.js:629 -#: js/musickeyboard.js:631 -#: js/timbre.js:417 -#: js/timbre.js:419 -#: plugins/rodi.rtp:29 -#: plugins/rodi.rtp:73 -#: plugins/rodi.rtp:413 -msgid "stop" -msgstr "parar" +#: js/blocks/NumberBlocks.js:248 +msgid "The Abs block returns the absolute value." +msgstr "O bloco Abs retorna o valor absoluto." -#: js/FlowBlocks.js:653 -msgid "The Waitfor block will wait until the condition is true." -msgstr "O bloco Esperarpor esperará até o momento em que a condição seja verdadeira." +#: js/blocks/NumberBlocks.js:254 +msgid "abs" +msgstr "abs" -#: js/FlowBlocks.js:661 -msgid "wait for" -msgstr "esperar por" +#: js/blocks/NumberBlocks.js:295 +msgid "The Distance block returns the distance between two points. For example, between the mouse and the center of the screen." +msgstr "" -#: js/FlowBlocks.js:732 -msgid "The Until block will repeat until the condition is true." -msgstr "O bloco Até repetirá até o momento em que a condição seja verdadeira." +#: js/blocks/NumberBlocks.js:301 +#: plugins/rodi.rtp:310 +msgid "distance" +msgstr "distância" -#: js/FlowBlocks.js:740 -msgid "until" -msgstr "até" +#: js/blocks/NumberBlocks.js:361 +msgid "The Divide block is used to divide." +msgstr "O bloco Dividir é usado para dividir." -#: js/FlowBlocks.js:742 -#: js/FlowBlocks.js:822 -msgid "do2" -msgstr "fazer2" +#: js/blocks/NumberBlocks.js:441 +msgid "The Multiply block is used to multiply." +msgstr "O bloco Multiplicar é usado para multiplicar." -#: js/FlowBlocks.js:812 -msgid "The While block will repeat while the condition is true." -msgstr "O bloco Enquanto repetirá enquanto a condição for verdadeira." +#: js/blocks/NumberBlocks.js:612 +msgid "The Minus block is used to subtract." +msgstr "O bloco Menos é usado para subtrair." -#: js/FlowBlocks.js:820 -msgid "while" -msgstr "enquanto" +#: js/blocks/NumberBlocks.js:723 +msgid "The Plus block is used to add." +msgstr "O bloco Mais é usado para adicionar." -#: js/FlowBlocks.js:903 -#: js/FlowBlocks.js:968 -#: js/FlowBlocks.js:979 -msgid "In this example if the mouse button is pressed a snare drum will play." -msgstr "Neste exemplo, se o botão do mouse for pressionado, uma batida de caixa será executada." +#: js/blocks/NumberBlocks.js:849 +msgid "The One-of block returns one of two choices." +msgstr "O bloco UM-de retorna uma das duas opções." -#: js/FlowBlocks.js:925 -#: js/FlowBlocks.js:988 -msgid "if" -msgstr "se" +#: js/blocks/NumberBlocks.js:856 +#: js/blocks/PitchBlocks.js:616 +msgid "one of" +msgstr "um de" -#: js/FlowBlocks.js:927 -#: js/FlowBlocks.js:990 -msgid "then" -msgstr "então" +#: js/blocks/NumberBlocks.js:858 +msgid "this" +msgstr "isso" -#: js/FlowBlocks.js:927 -msgid "else" -msgstr "ou" +#: js/blocks/NumberBlocks.js:858 +msgid "that" +msgstr "aquilo" -#: js/FlowBlocks.js:1025 -msgid "The Forever block will repeat the contained blocks forever." -msgstr "O bloco Forever irá repetir os blocos contidos para sempre." +#: js/blocks/NumberBlocks.js:913 +msgid "The Random block returns a random number." +msgstr "O bloco Aleatório retorna um número aleatório." -#: js/FlowBlocks.js:1037 -msgid "forever" -msgstr "para sempre" +#: js/blocks/NumberBlocks.js:920 +msgid "random" +msgstr "aleatório" -#: js/FlowBlocks.js:1073 -msgid "The Repeat block will repeat the contained blocks." -msgstr "O bloco Repetir repetirá os blocos contidos." +#: js/blocks/NumberBlocks.js:922 +msgid "min" +msgstr "min" -#: js/FlowBlocks.js:1075 -msgid "In this example the note will be played 4 times." -msgstr "Neste exemplo, a nota será executada 4 vezes." +#: js/blocks/NumberBlocks.js:922 +msgid "max" +msgstr "max" -#: js/FlowBlocks.js:1083 -msgid "repeat" -msgstr "repetir" +#: js/blocks/NumberBlocks.js:986 +msgid "The Number block holds a number." +msgstr "O bloco Número contém um número." -#: js/FlowBlocks.js:1123 -msgid "duplicate factor" -msgstr "duplicar fator" +#: js/blocks/OrnamentBlocks.js:32 +msgid "staccato factor" +msgstr "fator de staccato" -#: js/PitchBlocks.js:39 -#: js/musicutils.js:722 -#: js/musicutils.js:1117 -#: js/synthutils.js:112 -#.TRANS: square wave -msgid "square" -msgstr "quadrado" +#: js/blocks/OrnamentBlocks.js:108 +msgid "slur factor" +msgstr "fator legato" -#: js/PitchBlocks.js:62 -#: js/ToneBlocks.js:39 -#: js/musicutils.js:723 -#: js/musicutils.js:1118 -#: js/synthutils.js:116 -#.TRANS: triangle wave -msgid "triangle" -msgstr "triângulo" +#: js/blocks/OrnamentBlocks.js:217 +#: js/blocks/OrnamentBlocks.js:309 +#.TRANS: the neighbor refers to a neighboring note, e.g., D is a neighbor of C +msgid "neighbor" +msgstr "vizinho" -#: js/PitchBlocks.js:85 -#: js/musicutils.js:721 -#: js/musicutils.js:1116 -#: js/synthutils.js:110 -#.TRANS: sine wave -msgid "sine" -msgstr "sino" +#: js/blocks/OrnamentBlocks.js:293 +msgid "The Neighbor block rapidly switches between neighboring pitches." +msgstr "O bloco Vizinho muda rapidamente entre os campos vizinhos." -#: js/PitchBlocks.js:108 -#: js/musicutils.js:724 -#: js/musicutils.js:1119 -#: js/synthutils.js:114 -#.TRANS: sawtooth wave -msgid "sawtooth" -msgstr "dente de serra" +#: js/blocks/OrnamentBlocks.js:364 +msgid "glide" +msgstr "glide" -#: js/PitchBlocks.js:141 -#.TRANS: musical transposition (adjustment of pitch up or down) -msgid "transposition" -msgstr "transposição" +#: js/blocks/OrnamentBlocks.js:479 +#: js/blocks/OrnamentBlocks.js:643 +msgid "slur" +msgstr "legato" -#: js/PitchBlocks.js:168 -#.TRANS: step down one note in current musical scale -msgid "scalar step down" -msgstr "degrau escalar de baixo" +#: js/blocks/OrnamentBlocks.js:558 +#: js/blocks/OrnamentBlocks.js:710 +#.TRANS: play each note sharply detached from the others +msgid "staccato" +msgstr "staccato" -#: js/PitchBlocks.js:172 -msgid "The Scalar step down block returns the number of semi-tones down to the previous note in the current key and mode." -msgstr "O bloco Escalar redutor retorna o número de semitons reduzidos até a nota anterior na tecla atual e modo." +#: js/blocks/RhythmBlocks.js:182 +#: js/blocks/RhythmBlocks.js:1086 +#: js/blocks/RhythmBlocks.js:1162 +msgid "Note value must be greater than 0." +msgstr "O valor da nota deve ser maior que 0." -#: js/PitchBlocks.js:190 -#.TRANS: step up one note in current musical scale -msgid "scalar step up" -msgstr "degrau escalar de cima" +#: js/blocks/RhythmBlocks.js:215 +#: js/blocks/RhythmBlocks.js:278 +#: js/blocks/RhythmBlocks.js:350 +#.TRANS: swing is a rhythmic variation that emphasises the offbeat +msgid "swing" +msgstr "swing" -#: js/PitchBlocks.js:194 -msgid "The Scalar step up block returns the number of semi-tones up to the next note in the current key and mode." -msgstr "O bloco Escalar progressivo retorna o número de semitons até a próxima nota na tecla atual e modo." +#: js/blocks/RhythmBlocks.js:355 +#.TRANS: the amount to shift to the offbeat note +msgid "swing value" +msgstr "valor do swing" -#: js/PitchBlocks.js:212 -#.TRANS: the change measured in half-steps between the current pitch and the previous pitch -msgid "change in pitch" -msgstr "mudança no tom" +#: js/blocks/RhythmBlocks.js:419 +msgid "The Skip notes block will cause notes to be skipped." +msgstr "O bloco Ignorar notas fará com que as notas sejam ignoradas." -#: js/PitchBlocks.js:216 -msgid "The Change in pitch block is the difference (in half steps) between the current pitch being played and the previous pitch played." -msgstr "Mudar no bloco de tom é a diferença (em meio passo) entre o tom atual que está sendo tocado e o tom anterior executado." +#: js/blocks/RhythmBlocks.js:427 +#.TRANS: substitute rests on notes being skipped +msgid "skip notes" +msgstr "pular notas" -#: js/PitchBlocks.js:243 -#.TRANS: the change measured in scale-steps between the current pitch and the previous pitch -msgid "scalar change in pitch" -msgstr "" +#: js/blocks/RhythmBlocks.js:489 +#.TRANS: speed up note duration by some factor, e.g. convert 1/4 to 1/8 notes by using a factor of 2 +msgid "multiply note value" +msgstr "multiplicar valor da nota" -#: js/PitchBlocks.js:250 -#: js/PitchBlocks.js:432 -#: js/PitchBlocks.js:1629 -#: js/DictActions.js:89 -#: js/temperament.js:477 -#: js/temperament.js:481 -#: js/temperament.js:714 -#.TRANS: convert current note to piano key (1-88) -#.TRANS: a mapping of pitch to the 88 piano keys -msgid "pitch number" -msgstr "número do tom" +#: js/blocks/RhythmBlocks.js:542 +msgid "The Tie block works on pairs of notes, combining them into one note." +msgstr "O bloco Laço funciona em pares de notas, combinando-as em uma nota." -#: js/PitchBlocks.js:256 -msgid "The Pitch number block is the value of the pitch of the note currently being played." -msgstr "O bloco Tom número é o valor do tom da nota atualmente sendo reproduzida." +#: js/blocks/RhythmBlocks.js:550 +#.TRANS: tie notes together into one longer note +msgid "tie" +msgstr "juntar" -#: js/PitchBlocks.js:329 -#: js/PitchBlocks.js:433 -#.TRANS: the current pitch expressed in Hertz -msgid "pitch in hertz" -msgstr "tom em hertz" +#: js/blocks/RhythmBlocks.js:591 +#: js/blocks/RhythmBlocks.js:671 +#.TRANS: a dotted note is played for 1.5x its value, e.g., 1/8. --> 3/16 +msgid "dot" +msgstr "ponto" -#: js/PitchBlocks.js:334 -msgid "The Pitch in Hertz block is the value in Hertz of the pitch of the note currently being played." -msgstr "O bloco Tom em Hertz é o valor em Hertz do tom da nota atualmente sendo tocada." +#: js/blocks/RhythmBlocks.js:619 +#: js/turtleactions/RhythmActions.js:221 +msgid "An argument of -1 results in a note value of 0." +msgstr "Um argumento de -1 resulta em um valor de nota de 0." -#: js/PitchBlocks.js:367 -#: js/DictActions.js:87 -msgid "current pitch" -msgstr "" +#: js/blocks/RhythmBlocks.js:661 +msgid "The Dot block extends the duration of a note by 50%." +msgstr "O bloco Ponto aumenta a duração de uma nota em 50%." -#: js/PitchBlocks.js:373 -msgid "The Current Pitch block is used with the Pitch Converter block. In the example above, current pitch, sol 4, is displayed as 392 hertz." -msgstr "" +#: js/blocks/RhythmBlocks.js:663 +msgid "Eg a dotted quarter note will play for 3/8 (1/4 + 1/8) of a beat." +msgstr "Por exemplo, uma semínima pontuada será reproduzida por 3/8 (1/4 + 1/8) de uma batida." -#: js/PitchBlocks.js:410 -msgid "This block converts the pitch value of the last note played into different formats such as hertz, letter name, pitch number, et al." -msgstr "" +#: js/blocks/RhythmBlocks.js:765 +#.TRANS: Japanese only: note value block for drum +msgid "note value drum" +msgstr "valor da nota da bateria" -#: js/PitchBlocks.js:434 -msgid "alphabet" -msgstr "" +#: js/blocks/RhythmBlocks.js:829 +msgid "392 hertz" +msgstr "392 hertz" -#: js/PitchBlocks.js:436 -#.TRANS: Translate as "alphabet class" -msgid "letter class" -msgstr "" +#: js/blocks/RhythmBlocks.js:1119 +msgid "The Note block is a container for one or more Pitch blocks." +msgstr "O bloco Notas é um contêiner para um ou mais blocos de tom." -#: js/PitchBlocks.js:437 -msgid "solfege class" -msgstr "" +#: js/blocks/RhythmBlocks.js:1121 +msgid "The Note block specifies the duration (note value) of its contents." +msgstr "O bloco Nota especifica a duração (valor da nota) de seu conteúdo." -#: js/PitchBlocks.js:438 -msgid "staff y" -msgstr "" +#: js/blocks/RhythmBlocks.js:1128 +#: js/blocks/PitchBlocks.js:974 +#: js/blocks/PitchBlocks.js:1007 +#: js/blocks/ProgramBlocks.js:1186 +#: js/blocks/ProgramBlocks.js:1227 +#: js/widgets/status.js:190 +#: js/widgets/temperament.js:464 +#: js/widgets/temperament.js:486 +#: js/widgets/temperament.js:496 +#: js/widgets/temperament.js:617 +#: plugins/rodi.rtp:192 +#.TRANS: a musical note consisting of pitch and duration +msgid "note" +msgstr "nota" -#: js/PitchBlocks.js:439 -msgid "solfege syllable" -msgstr "" +#: js/blocks/RhythmBlocks.js:1130 +msgid "value2" +msgstr "valor2" -#: js/PitchBlocks.js:440 -msgid "pitch class" -msgstr "" +#: js/blocks/RhythmBlocks.js:1200 +msgid "define frequency" +msgstr "Definir frequência" -#: js/PitchBlocks.js:441 -msgid "scalar class" +#: js/blocks/RhythmBlocks.js:1218 +#: js/widgets/temperament.js:787 +#: js/widgets/temperament.js:1587 +msgid "octave space" +msgstr "espaço oitava" + +#: js/blocks/SensorsBlocks.js:36 +msgid "The Input block prompts for keyboard input." msgstr "" -#: js/PitchBlocks.js:443 -msgid "nth degree" +#: js/blocks/SensorsBlocks.js:46 +msgid "input" msgstr "" -#: js/PitchBlocks.js:444 -msgid "pitch to shade" +#: js/blocks/SensorsBlocks.js:64 +msgid "Input a value" msgstr "" -#: js/PitchBlocks.js:445 -msgid "pitch to color" +#: js/blocks/SensorsBlocks.js:126 +msgid "input value" msgstr "" -#: js/PitchBlocks.js:629 -#: js/musickeyboard.js:565 -#.TRANS: MIDI is a technical standard for electronic music -msgid "MIDI" +#: js/blocks/SensorsBlocks.js:131 +msgid "The Input-value block stores the input." msgstr "" -#: js/PitchBlocks.js:642 -#.TRANS: set an offset associated with the numeric piano keyboard mapping -msgid "set pitch number offset" -msgstr "definir número do tom" +#: js/blocks/SensorsBlocks.js:238 +msgid "loudness" +msgstr "intensidade" -#: js/PitchBlocks.js:645 -msgid "The Set pitch number offset block is used to set the offset for mapping pitch numbers to pitch and octave." -msgstr "O bloco de deslocamento Define número do tom é usado para definir o deslocamento para mapear os números de tom para afinação e oitava." +#: js/blocks/SensorsBlocks.js:245 +msgid "The Loudness block returns the volume detected by the microphone." +msgstr "O bloco Sonoridade retorna o volume detectado pelo microfone." -#: js/PitchBlocks.js:679 -#.TRANS: convert piano key number (1-88) to pitch -msgid "number to pitch" -msgstr "número para o tom" +#: js/blocks/SensorsBlocks.js:300 +msgid "click" +msgstr "clique" -#: js/PitchBlocks.js:682 -msgid "The Number to pitch block will convert a pitch number to a pich name." +#: js/blocks/SensorsBlocks.js:306 +msgid "The Click block triggers an event if a mouse has been clicked." msgstr "" -#: js/PitchBlocks.js:715 -#.TRANS: convert piano key number (1-88) to octave -msgid "number to octave" -msgstr "número para a oitava" +#: js/blocks/SensorsBlocks.js:313 +msgid "The Click block triggers an event if a turtle has been clicked." +msgstr "" -#: js/PitchBlocks.js:717 -msgid "The Number to octave block will convert a pitch number to an octave." -msgstr "O bloco Número para oitava irá converter um número de tom em uma oitava." +#: js/blocks/SensorsBlocks.js:342 +msgid "cursor over" +msgstr "" -#: js/PitchBlocks.js:726 -msgid "y to pitch" +#: js/blocks/SensorsBlocks.js:387 +msgid "cursor out" msgstr "" -#: js/PitchBlocks.js:729 -msgid "Y to pitch block will convert a staff y position to corresponding pitch notation." +#: js/blocks/SensorsBlocks.js:433 +msgid "cursor button down" msgstr "" -#: js/PitchBlocks.js:841 -msgid "accidental selector" +#: js/blocks/SensorsBlocks.js:477 +msgid "cursor button up" msgstr "" -#: js/PitchBlocks.js:844 -msgid "The Accidental selector block is used to choose between double-sharp, sharp, natural, flat, and double-flat." -msgstr "O bloco seletor Acidental é usado para escolher entre duplo-afinado, afinado, natural, plano e duplo plano." +#: js/blocks/SensorsBlocks.js:521 +#: js/blocks/PenBlocks.js:48 +#: plugins/rodi.rtp:219 +msgid "blue" +msgstr "azul" -#: js/PitchBlocks.js:858 -msgid "Pitch can be specified in terms of ni dha pa ma ga re sa." -msgstr "O tom pode ser especificado em termos de ni dha pa ga ga sa sa." +#: js/blocks/SensorsBlocks.js:577 +#: js/blocks/PenBlocks.js:64 +#: plugins/rodi.rtp:218 +msgid "green" +msgstr "verde" -#: js/PitchBlocks.js:872 -msgid "Pitch can be specified in terms of C D E F G A B." -msgstr "O tom pode ser especificado em termos de C D E F G A B." +#: js/blocks/SensorsBlocks.js:633 +#: js/blocks/PenBlocks.js:112 +#: plugins/rodi.rtp:217 +msgid "red" +msgstr "vermelho" -#: js/PitchBlocks.js:883 -msgid "solfege" -msgstr "" +#: js/blocks/SensorsBlocks.js:638 +msgid "The Get red block returns the red component of the pixel under the mouse." +msgstr "O bloco Obtenha vermelho retorna o componente vermelho do pixel sob o ratinho." -#: js/PitchBlocks.js:886 -msgid "Pitch can be specified in terms of do re mi fa sol la ti." -msgstr "O Tom pode ser especificado em termos de do re mi fá sol la si." +#: js/blocks/SensorsBlocks.js:644 +msgid "The Get red block returns the red component of the pixel under the turtle." +msgstr "" -#: js/PitchBlocks.js:920 -msgid "The Invert block rotates any contained notes around a target note." -msgstr "O bloco Inversor rotaciona todas as notas contidas em torno de uma nota de destino." +#: js/blocks/SensorsBlocks.js:685 +#: plugins/rodi.rtp:216 +msgid "pixel color" +msgstr "cor do pixel" -#: js/PitchBlocks.js:927 -#.TRANS: pitch inversion rotates a pitch around another pitch -msgid "invert" -msgstr "inverter" +#: js/blocks/SensorsBlocks.js:690 +msgid "The Get pixel block returns the color of the pixel under the mouse." +msgstr "O bloco Obtenha pixel retorna a cor do pixel sob o ratinho." -#: js/PitchBlocks.js:929 -#: js/PitchBlocks.js:935 -#: js/PitchActions.js:727 -#: js/musicutils.js:726 -#: js/musicutils.js:902 -#.TRANS: invert based on even or odd number or musical scale -#.TRANS: even numbers -msgid "even" -msgstr "par" +#: js/blocks/SensorsBlocks.js:696 +msgid "The Get pixel block returns the color of the pixel under the turtle." +msgstr "" -#: js/PitchBlocks.js:935 -#: js/PitchActions.js:729 -#: js/musicutils.js:728 -#: js/musicutils.js:903 -#.TRANS: odd numbers -msgid "odd" -msgstr "ímpar" +#: js/blocks/SensorsBlocks.js:758 +msgid "time" +msgstr "tempo" -#: js/PitchBlocks.js:935 -#: js/PitchActions.js:731 -#: js/musicutils.js:729 -#: js/musicutils.js:904 -msgid "scalar" -msgstr "escalar" +#: js/blocks/SensorsBlocks.js:804 +msgid "cursor y" +msgstr "cursor y" -#: js/PitchBlocks.js:966 -#.TRANS: pitch inversion rotates a pitch around another pitch (odd number) -msgid "invert (odd)" -msgstr "inverter (ímpar)" +#: js/blocks/SensorsBlocks.js:809 +msgid "The Cursor Y block returns the vertical position of the mouse." +msgstr "O bloco Cursor Y retorna a posição vertical do ratinho." -#: js/PitchBlocks.js:999 -#.TRANS: pitch inversion rotates a pitch around another pitch (even number) -msgid "invert (even)" -msgstr "inverter (par)" +#: js/blocks/SensorsBlocks.js:845 +msgid "cursor x" +msgstr "cursor x" -#: js/PitchBlocks.js:1020 -#.TRANS: register is the octave of the current pitch -msgid "register" -msgstr "registrador" +#: js/blocks/SensorsBlocks.js:850 +msgid "The Cursor X block returns the horizontal position of the mouse." +msgstr "O bloco Cursor X retorna a posição horizontal do ratinho." -#: js/PitchBlocks.js:1024 -msgid "The Register block provides an easy way to modify the register (octave) of the notes that follow it." -msgstr "O bloco Registrador fornece uma maneira fácil de modificar o registro (oitava) das notas que o seguem." +#: js/blocks/SensorsBlocks.js:886 +msgid "mouse button" +msgstr "botão do ratinho" -#: js/PitchBlocks.js:1074 -msgid "The Semi-tone transposition block will shift the pitches contained inside Note blocks up (or down) by half steps." -msgstr "O bloco de transposição de Semi-tom mudará os passos contidos dentro dos blocos de Notas para cima (ou para baixo) em intervalos de meio tom." +#: js/blocks/SensorsBlocks.js:888 +msgid "The Mouse-button block returns True if the mouse button is pressed." +msgstr "O bloco Botão-do-ratinho retorna Verdadeiro se o botão do ratinho for pressionado." -#: js/PitchBlocks.js:1076 -msgid "In the example shown above, sol is shifted up to sol#." -msgstr "No exemplo acima, sol é deslocado para sol#." +#: js/blocks/SensorsBlocks.js:934 +msgid "to ASCII" +msgstr "ir para ASCII" -#: js/PitchBlocks.js:1082 -#.TRANS: adjust the amount of shift (up or down) of a pitch -msgid "semi-tone transpose" -msgstr "transposição de semi-tom" +#: js/blocks/SensorsBlocks.js:938 +msgid "The To ASCII block converts numbers to letters." +msgstr "O bloco Para ASCII converte números em letras." -#: js/PitchBlocks.js:1115 -msgid "The Transpose by Ratio block will shift the pitches contained inside Note blocks up (or down) by a ratio" -msgstr "" +#: js/blocks/SensorsBlocks.js:1005 +msgid "The Keyboard block returns computer keyboard input." +msgstr "O bloco Teclado retorna o teclado de entrada do computador." -#: js/PitchBlocks.js:1121 -#.TRANS: adjust the amount of shift (up or down) of a pitch -msgid "transpose by ratio" -msgstr "" +#: js/blocks/RhythmBlockPaletteBlocks.js:50 +#: js/blocks/RhythmBlockPaletteBlocks.js:233 +#.TRANS: rhythm block +#.TRANS: translate "rhythm1" as rhythm +msgid "rhythm1" +msgstr "ritmo1" -#: js/PitchBlocks.js:1204 -#.TRANS: down sixth means the note is five scale degrees below current note -msgid "down sixth" -msgstr "sexta baixa" +#: js/blocks/RhythmBlockPaletteBlocks.js:70 +#: js/blocks/RhythmBlockPaletteBlocks.js:252 +#: js/blocks/RhythmBlockPaletteBlocks.js:485 +#: js/blocks/RhythmBlockPaletteBlocks.js:554 +#: js/blocks/RhythmBlockPaletteBlocks.js:875 +msgid "number of notes" +msgstr "número de notas" -#: js/PitchBlocks.js:1223 -#.TRANS: down third means the note is two scale degrees below current note -msgid "down third" -msgstr "terceira baixa" +#: js/blocks/RhythmBlockPaletteBlocks.js:126 +msgid "polyphonic rhythm" +msgstr "ritmo polifônico" -#: js/PitchBlocks.js:1242 -#.TRANS: seventh means the note is the six scale degrees above current note -msgid "seventh" -msgstr "sétima" +#: js/blocks/RhythmBlockPaletteBlocks.js:219 +msgid "The Rhythm block is used to generate rhythm patterns." +msgstr "O bloco Ritmo é usado para gerar padrões de ritmo." -#: js/PitchBlocks.js:1261 -#.TRANS: sixth means the note is the five scale degrees above current note -msgid "sixth" -msgstr "sexta" +#: js/blocks/RhythmBlockPaletteBlocks.js:280 +msgid "1/64 note" +msgstr "nota 1/64" -#: js/PitchBlocks.js:1280 -#.TRANS: fifth means the note is the four scale degrees above current note -msgid "fifth" -msgstr "quinta" +#: js/blocks/RhythmBlockPaletteBlocks.js:304 +msgid "1/32 note" +msgstr "nota 1/32" -#: js/PitchBlocks.js:1300 -#.TRANS: fourth means the note is three scale degrees above current note -msgid "fourth" -msgstr "quarta" +#: js/blocks/RhythmBlockPaletteBlocks.js:332 +msgid "1/16 note" +msgstr "nota 1/16" -#: js/PitchBlocks.js:1319 -#.TRANS: third means the note is two scale degrees above current note -msgid "third" -msgstr "terceira" +#: js/blocks/RhythmBlockPaletteBlocks.js:360 +msgid "eighth note" +msgstr "uma oitava de nota" -#: js/PitchBlocks.js:1338 -#.TRANS: second means the note is one scale degree above current note -msgid "second" -msgstr "segunda" +#: js/blocks/RhythmBlockPaletteBlocks.js:388 +msgid "quarter note" +msgstr "um quarto de nota" -#: js/PitchBlocks.js:1379 -msgid "The Scalar transposition block will shift the pitches contained inside Note blocks up (or down) the scale." -msgstr "O bloco de transposição Escalar mudará os tons contidos dentro dos blocos de notas para cima (ou para baixo) da escala." +#: js/blocks/RhythmBlockPaletteBlocks.js:416 +msgid "half note" +msgstr "meia nota" -#: js/PitchBlocks.js:1381 -msgid "In the example shown above, sol is shifted up to la." -msgstr "No exemplo mostrado acima, sol é deslocado até la." +#: js/blocks/RhythmBlockPaletteBlocks.js:444 +msgid "whole note" +msgstr "nota inteira" -#: js/PitchBlocks.js:1388 -#.TRANS: adjust the amount of shift (up or down) of a pitch by musical scale (scalar) steps -msgid "scalar transpose" -msgstr "transposição escalar" +#: js/blocks/RhythmBlockPaletteBlocks.js:482 +#: js/blocks/RhythmBlockPaletteBlocks.js:551 +#: js/blocks/RhythmBlockPaletteBlocks.js:602 +#.TRANS: A tuplet is a note value divided into irregular time values. +msgid "tuplet" +msgstr "tuplet" -#: js/PitchBlocks.js:1423 -msgid "The Accidental block is used to create sharps and flats" -msgstr "O bloco Acidental é usado para criar afinações e planos" +#: js/blocks/RhythmBlockPaletteBlocks.js:768 +msgid "septuplet" +msgstr "sexteto" -#: js/PitchBlocks.js:1430 -#.TRANS: An accidental is a modification to a pitch, e.g., sharp or flat. -msgid "accidental override" -msgstr "" +#: js/blocks/RhythmBlockPaletteBlocks.js:796 +msgid "quintuplet" +msgstr "quinteto" -#: js/PitchBlocks.js:1543 -msgid "The Hertz block (in combination with a Number block) will play a sound at the specified frequency." -msgstr "O bloco Hertz (em combinação com um bloco Número) reproduzirá um som na freqüência especificada." +#: js/blocks/RhythmBlockPaletteBlocks.js:824 +msgid "triplet" +msgstr "trio" -#: js/PitchBlocks.js:1633 -msgid "The Pitch Number block will play a pitch associated by its number, e.g. 0 for C and 7 for G." -msgstr "" +#: js/blocks/RhythmBlockPaletteBlocks.js:851 +msgid "simple tuplet" +msgstr "tuplet simples" -#: js/PitchBlocks.js:1665 -#: js/PitchBlocks.js:1707 -#.TRANS: a numeric mapping of the notes in an octave based on the musical mode -#.TRANS: a numeric mapping of the notes in an octave based on the musical mode -msgid "nth modal pitch" -msgstr "" +#: js/blocks/RhythmBlockPaletteBlocks.js:861 +msgid "Tuplets are a collection of notes that get scaled to a specific duration." +msgstr "Os Tuplets são uma coleção de notas que são escaladas para uma duração específica." -#: js/PitchBlocks.js:1668 -msgid "n^th Modal Pitch takes the pattern of pitches in semitones for a mode and makes each point a degree of the mode," -msgstr "" +#: js/blocks/DrumBlocks.js:59 +msgid "The Noise name block is used to select a noise synthesizer." +msgstr "O bloco nome do Ruído é usado para selecionar um ruído de sintetizador." -#: js/PitchBlocks.js:1670 -msgid "starting from 1 and regardless of tonal framework (i.e. not always 8 notes in the octave)" -msgstr "" +#: js/blocks/DrumBlocks.js:102 +msgid "The Drum name block is used to select a drum." +msgstr "O bloco nome da Bateria é utilizado para selecionar uma bateria." -#: js/PitchBlocks.js:1711 -msgid "N^th Modal Pitch takes a number as an input as the n^th degree for the given mode. 0 is the first position, 1 is the second, -1 is the note before the first etc." -msgstr "" +#: js/blocks/DrumBlocks.js:146 +msgid "The Effects name block is used to select a sound effect." +msgstr "O bloco de nome Efeito é utilizado para selecionar um efeito de som." -#: js/PitchBlocks.js:1713 -msgid "The pitches change according to the mode specified without any need for respellings." -msgstr "" +#: js/blocks/DrumBlocks.js:163 +msgid "noise" +msgstr "ruído" -#: js/PitchBlocks.js:1752 -msgid "Scale Degree is a common convention in music. Scale Degree offers seven possible positions in the scale (1-7) and can be modified via accidentals." +#: js/blocks/DrumBlocks.js:177 +msgid "The Play noise block will generate white, pink, or brown noise." +msgstr "O bloco Executar ruído irá gerar um ruído branco, rosa ou marrom." + +#: js/blocks/DrumBlocks.js:317 +msgid "Replace every instance of a pitch with a drum sound." msgstr "" -#: js/PitchBlocks.js:1754 -msgid "Scale Degree 1 is always the first pitch in a given scale, regardless of octave." +#: js/blocks/DrumBlocks.js:328 +#.TRANS: map a pitch to a drum sound +msgid "map pitch to drum" msgstr "" -#: js/PitchBlocks.js:1776 -#.TRANS: step some number of notes in current musical scale -msgid "scalar step" -msgstr "passo escalar" +#: js/blocks/DrumBlocks.js:395 +msgid "In the example above, a kick drum sound will be played instead of sol." +msgstr "No exemplo acima, um som de bumbo será reproduzido em vez de sol." -#: js/PitchBlocks.js:1781 -msgid "The Scalar Step block (in combination with a Number block) will play the next pitch in a scale," -msgstr "O bloco Passo Escalar (em combinação com um bloco Número) reproduzirá o próximo tom em uma escala," +#: js/blocks/DrumBlocks.js:407 +#.TRANS: set the current drum sound for playback +msgid "set drum" +msgstr "definir bateria" -#: js/PitchBlocks.js:1783 -msgid "eg if the last note played was sol, Scalar Step 1 will play la." -msgstr "Por exemplo, se a última nota tocada for sol, o Passo Escalar 1 tocará la." +#: js/blocks/DrumBlocks.js:451 +msgid "sound effect" +msgstr "efeito de som" -#: js/PitchBlocks.js:1818 -msgid "The Pitch block specifies the pitch name and octave of a note that together determine the frequency of the note." -msgstr "O bloco Tom especifica o nome do tom e a oitava de uma nota que juntos determinam a frequência da nota." +#: js/blocks/DrumBlocks.js:489 +msgid "You can use multiple Drum blocks within a Note block." +msgstr "Você pode usar vários blocos Bateria dentro de um bloco Notas." -#: js/GraphicsBlocks.js:46 -#: js/DictActions.js:77 -#: js/DictActions.js:155 -#: js/DictActions.js:189 +#: js/blocks/GraphicsBlocks.js:46 +#: js/turtleactions/DictActions.js:77 +#: js/turtleactions/DictActions.js:144 +#: js/turtleactions/DictActions.js:173 msgid "heading" msgstr "rumo" -#: js/GraphicsBlocks.js:56 +#: js/blocks/GraphicsBlocks.js:56 msgid "The Heading block returns the orientation of the mouse." msgstr "O bloco Rumo retorna a orientação do ratinho." -#: js/GraphicsBlocks.js:62 +#: js/blocks/GraphicsBlocks.js:62 msgid "The Heading block returns the orientation of the turtle." msgstr "" -#: js/GraphicsBlocks.js:133 +#: js/blocks/GraphicsBlocks.js:133 msgid "The Y block returns the vertical position of the mouse." msgstr "O bloco Y retorna a posição vertical do ratinho." -#: js/GraphicsBlocks.js:140 +#: js/blocks/GraphicsBlocks.js:140 msgid "The Y block returns the vertical position of the turtle." msgstr "" -#: js/GraphicsBlocks.js:149 +#: js/blocks/GraphicsBlocks.js:149 msgid "y3" msgstr "y3" -#: js/GraphicsBlocks.js:219 +#: js/blocks/GraphicsBlocks.js:219 msgid "The X block returns the horizontal position of the mouse." msgstr "O bloco X retorna a posição horizontal do mouse." -#: js/GraphicsBlocks.js:226 +#: js/blocks/GraphicsBlocks.js:226 msgid "The X block returns the horizontal position of the turtle." msgstr "" -#: js/GraphicsBlocks.js:235 +#: js/blocks/GraphicsBlocks.js:235 msgid "x3" msgstr "x3" -#: js/GraphicsBlocks.js:295 +#: js/blocks/GraphicsBlocks.js:295 msgid "scroll xy" msgstr "rolar xy" -#: js/GraphicsBlocks.js:303 +#: js/blocks/GraphicsBlocks.js:303 msgid "The Scroll XY block moves the canvas." msgstr "O bloco Rolar XY move a tela." -#: js/GraphicsBlocks.js:313 +#: js/blocks/GraphicsBlocks.js:313 msgid "x2" msgstr "x2" -#: js/GraphicsBlocks.js:313 +#: js/blocks/GraphicsBlocks.js:313 msgid "y2" msgstr "y2" -#: js/GraphicsBlocks.js:373 -#: js/temperament.js:213 -#: js/temperament.js:241 +#: js/blocks/GraphicsBlocks.js:373 +#: js/widgets/temperament.js:319 +#: js/widgets/temperament.js:347 msgid "clear" msgstr "limpar" -#: js/GraphicsBlocks.js:426 +#: js/blocks/GraphicsBlocks.js:426 msgid "The Control-point 2 block sets the second control point for the Bezier curve." msgstr "O bloco Ponto-de-controle 2 define o segundo ponto de controle para uma curva Bezier." -#: js/GraphicsBlocks.js:433 +#: js/blocks/GraphicsBlocks.js:433 msgid "control point 2" msgstr "ponto de controle 2" -#: js/GraphicsBlocks.js:436 -#: js/GraphicsBlocks.js:487 -#: js/GraphicsBlocks.js:534 -#: js/GraphicsBlocks.js:750 +#: js/blocks/GraphicsBlocks.js:436 +#: js/blocks/GraphicsBlocks.js:487 +#: js/blocks/GraphicsBlocks.js:534 +#: js/blocks/GraphicsBlocks.js:750 msgid "x1" msgstr "x1" -#: js/GraphicsBlocks.js:436 -#: js/GraphicsBlocks.js:487 -#: js/GraphicsBlocks.js:534 -#: js/GraphicsBlocks.js:750 +#: js/blocks/GraphicsBlocks.js:436 +#: js/blocks/GraphicsBlocks.js:487 +#: js/blocks/GraphicsBlocks.js:534 +#: js/blocks/GraphicsBlocks.js:750 msgid "y1" msgstr "y1" -#: js/GraphicsBlocks.js:477 +#: js/blocks/GraphicsBlocks.js:477 msgid "The Control-point 1 block sets the first control point for the Bezier curve." msgstr "O bloco Ponto-de-controle 1 define o primeiro ponto de controle para uma curva Bezier." -#: js/GraphicsBlocks.js:484 +#: js/blocks/GraphicsBlocks.js:484 msgid "control point 1" msgstr "ponto de controle 1" -#: js/GraphicsBlocks.js:527 +#: js/blocks/GraphicsBlocks.js:527 msgid "The Bezier block draws a Bezier curve." msgstr "O bloco Bezier desenha uma curva Bezier." -#: js/GraphicsBlocks.js:531 +#: js/blocks/GraphicsBlocks.js:531 msgid "bezier" msgstr "bezier" -#: js/GraphicsBlocks.js:592 +#: js/blocks/GraphicsBlocks.js:592 msgid "The Arc block moves the turtle in an arc." msgstr "" -#: js/GraphicsBlocks.js:600 +#: js/blocks/GraphicsBlocks.js:600 msgid "arc" msgstr "arc" -#: js/GraphicsBlocks.js:603 +#: js/blocks/GraphicsBlocks.js:603 msgid "angle" msgstr "ângulo" -#: js/GraphicsBlocks.js:603 +#: js/blocks/GraphicsBlocks.js:603 msgid "radius" msgstr "raio" -#: js/GraphicsBlocks.js:620 -#: js/GraphicsBlocks.js:767 -#: js/GraphicsBlocks.js:1010 -#: js/GraphicsBlocks.js:1093 +#: js/blocks/GraphicsBlocks.js:620 +#: js/blocks/GraphicsBlocks.js:767 +#: js/blocks/GraphicsBlocks.js:1010 +#: js/blocks/GraphicsBlocks.js:1093 msgid "Value must be within -5000 to 5000 when Wrap Mode is off." msgstr "" -#: js/GraphicsBlocks.js:622 -#: js/GraphicsBlocks.js:769 -#: js/GraphicsBlocks.js:1012 -#: js/GraphicsBlocks.js:1095 +#: js/blocks/GraphicsBlocks.js:622 +#: js/blocks/GraphicsBlocks.js:769 +#: js/blocks/GraphicsBlocks.js:1012 +#: js/blocks/GraphicsBlocks.js:1095 msgid "Value must be within -20000 to 20000 when Wrap Mode is on." msgstr "" -#: js/GraphicsBlocks.js:660 +#: js/blocks/GraphicsBlocks.js:660 msgid "set heading" msgstr "definir rumo" -#: js/GraphicsBlocks.js:673 +#: js/blocks/GraphicsBlocks.js:673 msgid "The Set heading block sets the heading of the turtle." msgstr "" -#: js/GraphicsBlocks.js:733 +#: js/blocks/GraphicsBlocks.js:733 msgid "The Set XY block moves the mouse to a specific position on the screen." msgstr "O bloco Estabeleça XY move o ratinho para uma posição específica na tela." -#: js/GraphicsBlocks.js:739 +#: js/blocks/GraphicsBlocks.js:739 msgid "The Set XY block moves the turtle to a specific position on the screen." msgstr "" -#: js/GraphicsBlocks.js:747 +#: js/blocks/GraphicsBlocks.js:747 msgid "set xy" msgstr "definir xy" -#: js/GraphicsBlocks.js:819 +#: js/blocks/GraphicsBlocks.js:819 msgid "The Right block turns the mouse to the right." msgstr "O bloco Direita gira o ratinho para a direita." -#: js/GraphicsBlocks.js:826 +#: js/blocks/GraphicsBlocks.js:826 msgid "The Right block turns the turtle to the right." msgstr "" -#: js/GraphicsBlocks.js:835 +#: js/blocks/GraphicsBlocks.js:835 msgid "right1" msgstr "direita1" -#: js/GraphicsBlocks.js:835 +#: js/blocks/GraphicsBlocks.js:835 #: plugins/rodi.rtp:77 #: plugins/rodi.rtp:340 #: plugins/rodi.rtp:375 msgid "right" msgstr "direita" -#: js/GraphicsBlocks.js:899 +#: js/blocks/GraphicsBlocks.js:899 msgid "The Left block turns the mouse to the left." msgstr "O bloco Esquerda gira o ratinho para a esquerda." -#: js/GraphicsBlocks.js:906 +#: js/blocks/GraphicsBlocks.js:906 msgid "The Left block turns the turtle to the left." msgstr "" -#: js/GraphicsBlocks.js:915 +#: js/blocks/GraphicsBlocks.js:915 msgid "left1" msgstr "esquerda1" -#: js/GraphicsBlocks.js:915 +#: js/blocks/GraphicsBlocks.js:915 #: plugins/rodi.rtp:79 #: plugins/rodi.rtp:339 #: plugins/rodi.rtp:362 msgid "left" msgstr "esquerda" -#: js/GraphicsBlocks.js:967 -#: js/temperament.js:734 -#: js/temperament.js:933 +#: js/blocks/GraphicsBlocks.js:967 +#: js/widgets/temperament.js:875 +#: js/widgets/temperament.js:1078 #: plugins/rodi.rtp:69 #: plugins/rodi.rtp:387 msgid "back" msgstr "voltar" -#: js/GraphicsBlocks.js:976 +#: js/blocks/GraphicsBlocks.js:976 msgid "The Back block moves the mouse backward." msgstr "O bloco Retornar move o ratinho para trás." -#: js/GraphicsBlocks.js:983 +#: js/blocks/GraphicsBlocks.js:983 msgid "The Back block moves the turtle backward." msgstr "" -#: js/GraphicsBlocks.js:1050 +#: js/blocks/GraphicsBlocks.js:1050 #: plugins/rodi.rtp:71 #: plugins/rodi.rtp:400 msgid "forward" msgstr "para frente" -#: js/GraphicsBlocks.js:1059 +#: js/blocks/GraphicsBlocks.js:1059 msgid "The Forward block moves the mouse forward." msgstr "O bloco Avançar move o ratinho para frente." -#: js/GraphicsBlocks.js:1066 +#: js/blocks/GraphicsBlocks.js:1066 msgid "The Forward block moves the turtle forward." msgstr "" -#: js/GraphicsBlocks.js:1154 -#: js/GraphicsBlocks.js:1172 +#: js/blocks/GraphicsBlocks.js:1154 +#: js/blocks/GraphicsBlocks.js:1172 msgid "wrap" msgstr "" -#: js/OrnamentBlocks.js:32 -msgid "staccato factor" -msgstr "fator de staccato" - -#: js/OrnamentBlocks.js:108 -msgid "slur factor" -msgstr "fator legato" - -#: js/OrnamentBlocks.js:217 -#: js/OrnamentBlocks.js:309 -#.TRANS: the neighbor refers to a neighboring note, e.g., D is a neighbor of C -msgid "neighbor" -msgstr "vizinho" - -#: js/OrnamentBlocks.js:293 -msgid "The Neighbor block rapidly switches between neighboring pitches." -msgstr "O bloco Vizinho muda rapidamente entre os campos vizinhos." - -#: js/OrnamentBlocks.js:364 -msgid "glide" -msgstr "glide" - -#: js/OrnamentBlocks.js:479 -#: js/OrnamentBlocks.js:643 -msgid "slur" -msgstr "legato" - -#: js/OrnamentBlocks.js:558 -#: js/OrnamentBlocks.js:710 -#.TRANS: play each note sharply detached from the others -msgid "staccato" -msgstr "staccato" - -#: js/PenBlocks.js:24 +#: js/blocks/PenBlocks.js:30 msgid "purple" msgstr "púrpura" -#: js/PenBlocks.js:37 -#: js/SensorsBlocks.js:521 -#: plugins/rodi.rtp:219 -msgid "blue" -msgstr "azul" - -#: js/PenBlocks.js:50 -#: js/SensorsBlocks.js:577 -#: plugins/rodi.rtp:218 -msgid "green" -msgstr "verde" - -#: js/PenBlocks.js:63 +#: js/blocks/PenBlocks.js:80 msgid "yellow" msgstr "amarelo" -#: js/PenBlocks.js:76 +#: js/blocks/PenBlocks.js:96 #: plugins/nutrition.rtp:164 msgid "orange" msgstr "laranja" -#: js/PenBlocks.js:89 -#: js/SensorsBlocks.js:633 -#: plugins/rodi.rtp:217 -msgid "red" -msgstr "vermelho" - -#: js/PenBlocks.js:102 +#: js/blocks/PenBlocks.js:128 msgid "white" msgstr "branco" -#: js/PenBlocks.js:115 +#: js/blocks/PenBlocks.js:144 msgid "black" msgstr "preto" -#: js/PenBlocks.js:128 +#: js/blocks/PenBlocks.js:163 msgid "begin fill" msgstr "iniciar preenchimento" -#: js/PenBlocks.js:143 +#: js/blocks/PenBlocks.js:190 msgid "end fill" msgstr "fim do preenchimento" -#: js/PenBlocks.js:159 -#: js/PenBlocks.js:386 +#: js/blocks/PenBlocks.js:212 +#: js/blocks/PenBlocks.js:560 #.TRANS: set the background color msgid "background" msgstr "plano de fundo" -#: js/PenBlocks.js:206 -#: js/DictActions.js:71 -#: js/DictActions.js:149 -#: js/DictActions.js:186 +#: js/blocks/PenBlocks.js:274 +#: js/turtleactions/DictActions.js:71 +#: js/turtleactions/DictActions.js:138 +#: js/turtleactions/DictActions.js:170 msgid "grey" msgstr "cinza" -#: js/PenBlocks.js:210 +#: js/blocks/PenBlocks.js:282 msgid "The Grey block returns the current pen grey value." msgstr "O bloco Cinza retorna o valor atual da caneta cinza." -#: js/PenBlocks.js:243 -#: js/DictActions.js:69 -#: js/DictActions.js:147 -#: js/DictActions.js:185 +#: js/blocks/PenBlocks.js:340 +#: js/turtleactions/DictActions.js:69 +#: js/turtleactions/DictActions.js:136 +#: js/turtleactions/DictActions.js:169 msgid "shade" msgstr "sombra" -#: js/PenBlocks.js:247 +#: js/blocks/PenBlocks.js:347 msgid "The Shade block returns the current pen shade value." msgstr "O bloco Sombra retorna o valor atual da sombra da caneta." -#: js/PenBlocks.js:280 -#: js/DictActions.js:67 -#: js/DictActions.js:145 -#: js/DictActions.js:184 +#: js/blocks/PenBlocks.js:405 +#: js/turtleactions/DictActions.js:67 +#: js/turtleactions/DictActions.js:134 +#: js/turtleactions/DictActions.js:168 msgid "color" msgstr "cor" -#: js/PenBlocks.js:285 +#: js/blocks/PenBlocks.js:415 msgid "The Color block returns the current pen color." msgstr "O bloco Cor retorna a cor atual da caneta." -#: js/PenBlocks.js:318 -#: js/DictActions.js:73 -#: js/DictActions.js:151 -#: js/DictActions.js:187 +#: js/blocks/PenBlocks.js:470 +#: js/turtleactions/DictActions.js:73 +#: js/turtleactions/DictActions.js:140 +#: js/turtleactions/DictActions.js:171 msgid "pen size" msgstr "largura do traço da caneta" -#: js/PenBlocks.js:322 +#: js/blocks/PenBlocks.js:474 msgid "The Pen size block returns the current pen size value." msgstr "O bloco largura da linha da Caneta retorna o atual valor do tamanho da caneta." -#: js/PenBlocks.js:355 +#: js/blocks/PenBlocks.js:513 msgid "set font" msgstr "definir fonte" -#: js/PenBlocks.js:358 +#: js/blocks/PenBlocks.js:518 msgid "The Set font block sets the font used by the Show block." msgstr "O bloco Define fonte define a fonte usada pelo bloco Mostar." -#: js/PenBlocks.js:391 +#: js/blocks/PenBlocks.js:567 msgid "The Background block sets the window background color." msgstr "" -#: js/PenBlocks.js:408 +#: js/blocks/PenBlocks.js:598 msgid "The Hollow line block creates a line with a hollow center." msgstr "O bloco linha Oca cria uma linha com um centro oco." -#: js/PenBlocks.js:415 +#: js/blocks/PenBlocks.js:606 #.TRANS: draw a line logo has a hollow space down its center msgid "hollow line" msgstr "linha oca" -#: js/PenBlocks.js:462 +#: js/blocks/PenBlocks.js:675 msgid "The Fill block fills in a shape with a color." msgstr "O bloco de Preencher preenche uma forma com uma cor." -#: js/PenBlocks.js:470 +#: js/blocks/PenBlocks.js:684 #.TRANS: fill in as a solid color msgid "fill" msgstr "preencher" -#: js/PenBlocks.js:527 +#: js/blocks/PenBlocks.js:761 #.TRANS: raise up the pen so logo it does not draw when it is moved msgid "pen up" msgstr "levantar caneta" -#: js/PenBlocks.js:532 +#: js/blocks/PenBlocks.js:768 msgid "The Pen-up block raises the pen so that it does not draw." msgstr "O bloco Caneta-erquida levanta a caneta para que ela não desenhe." -#: js/PenBlocks.js:552 +#: js/blocks/PenBlocks.js:802 #.TRANS: put down the pen so logo it draws when it is moved msgid "pen down" msgstr "baixar caneta" -#: js/PenBlocks.js:557 +#: js/blocks/PenBlocks.js:810 msgid "The Pen-down block lowers the pen so that it draws." msgstr "O bloco Caneta-para-baixo abaixa a caneta para que ela desenhe." -#: js/PenBlocks.js:577 +#: js/blocks/PenBlocks.js:844 #.TRANS: set the width of the line drawn by the pen msgid "set pen size" msgstr "definir largura do traço da caneta" -#: js/PenBlocks.js:583 +#: js/blocks/PenBlocks.js:854 msgid "The Set-pen-size block changes the size of the pen." msgstr "O bloco Definir-largura-do-traço altera a largura do traço da caneta." -#: js/PenBlocks.js:623 +#: js/blocks/PenBlocks.js:913 #.TRANS: set degree of translucence of the pen color msgid "set translucency" msgstr "definir transparência" -#: js/PenBlocks.js:627 +#: js/blocks/PenBlocks.js:921 msgid "The Set translucency block changes the opacity of the pen." msgstr "O bloco Definir translúcido altera a opacidade da caneta." -#: js/PenBlocks.js:668 +#: js/blocks/PenBlocks.js:981 msgid "set hue" msgstr "definir matiz" -#: js/PenBlocks.js:672 +#: js/blocks/PenBlocks.js:989 msgid "The Set hue block changes the color of the pen." msgstr "O bloco Definir matiz altera a cor da caneta." -#: js/PenBlocks.js:711 +#: js/blocks/PenBlocks.js:1047 msgid "set shade" msgstr "definir sombra" -#: js/PenBlocks.js:717 +#: js/blocks/PenBlocks.js:1057 msgid "The Set-shade block changes the pen color from dark to light." msgstr "O bloco Definir-sombra muda a cor da caneta de escuro para claro." -#: js/PenBlocks.js:757 +#: js/blocks/PenBlocks.js:1111 #.TRANS: set the level of vividness of the pen color msgid "set grey" msgstr "definir cinza" -#: js/PenBlocks.js:761 +#: js/blocks/PenBlocks.js:1119 msgid "The Set grey block changes the vividness of the pen color." msgstr "O bloco Definir cinza altera a vivacidade da cor da caneta." -#: js/PenBlocks.js:800 +#: js/blocks/PenBlocks.js:1172 msgid "set color" msgstr "definir cor" -#: js/PenBlocks.js:806 +#: js/blocks/PenBlocks.js:1182 msgid "The Set-color block changes the pen color." msgstr "O bloco Define-cor muda a cor da caneta." -#: js/VolumeBlocks.js:35 -msgid "synth volume" -msgstr "" - -#: js/VolumeBlocks.js:39 -msgid "The Synth volume block returns the current volume of the current synthesizer." -msgstr "" - -#: js/VolumeBlocks.js:47 -#: js/musicutils.js:730 -#: js/synthutils.js:56 -#.TRANS: musical instrument -msgid "piano" -msgstr "piano" - -#: js/VolumeBlocks.js:105 -msgid "master volume" -msgstr "volume mestre" - -#: js/VolumeBlocks.js:109 -msgid "The Master volume block returns the master volume." -msgstr "" - -#: js/VolumeBlocks.js:355 -#: js/VolumeBlocks.js:524 -msgid "set synth volume" -msgstr "definir volume do sintetizador" - -#: js/VolumeBlocks.js:362 -#: js/VolumeBlocks.js:545 -msgid "synth" -msgstr "sintetizador" - -#: js/VolumeBlocks.js:403 -#: js/VolumeBlocks.js:577 -#: js/VolumeBlocks.js:740 -#: js/VolumeActions.js:173 -msgid "Setting volume to 0." -msgstr "Configurando o volume para 0." - -#: js/VolumeBlocks.js:440 -msgid "Synth not found" -msgstr "sintetizador não encontrado" - -#: js/VolumeBlocks.js:494 -msgid "set drum volume" -msgstr "definir volume da bateria" - -#: js/VolumeBlocks.js:530 -msgid "The Set synth volume block will change the volume of a particular synth," -msgstr "O bloco Definir volume do sintetizador mudará o volume de um sintetizador específico" - -#: js/VolumeBlocks.js:532 -msgid "eg guitar violin snare drum etc." -msgstr "por exemplo, guitarra violino tambor snare etc." - -#: js/VolumeBlocks.js:534 -msgid "The default volume is 50." -msgstr "O volume padrão é 50." - -#: js/VolumeBlocks.js:536 -msgid "The range is 0 for silence to 100 for full volume." -msgstr "O intervalo é de 0 para o silêncio e 100 para o volume total." - -#: js/VolumeBlocks.js:597 -msgid "set panning" -msgstr "" - -#: js/VolumeBlocks.js:603 -msgid "The Set Panning block sets the panning for all synthesizers." -msgstr "" - -#: js/VolumeBlocks.js:625 -msgid "Warning: Sound is coming out from only the left or right side." -msgstr "" - -#: js/VolumeBlocks.js:647 -#: js/VolumeBlocks.js:695 -msgid "set master volume" -msgstr "definir volume mestre" - -#: js/VolumeBlocks.js:653 -msgid "The Set master volume block sets the volume for all synthesizers." -msgstr "O bloco Definir volume mestre define o volume para todos os sintetizadores." - -#: js/VolumeBlocks.js:784 -msgid "The Set relative volume block changes the volume of the contained notes." -msgstr "O bloco Define de volume relativo altera o volume das notas contidas." - -#: js/VolumeBlocks.js:791 -msgid "set relative volume" -msgstr "definir volume relativo" - -#: js/VolumeBlocks.js:857 -msgid "decrescendo" -msgstr "decrescendo" - -#: js/VolumeBlocks.js:921 -msgid "crescendo" -msgstr "crescendo" - -#: js/ToneBlocks.js:34 -msgid "oscillator" -msgstr "oscilador" - -#: js/ToneBlocks.js:44 -#: js/timbre.js:1562 -#.TRANS: Partials refers to the number of sine waves combined into the sound. -msgid "partials" -msgstr "parciais" - -#: js/ToneBlocks.js:76 -msgid "You are adding multiple oscillator blocks." -msgstr "Você está adicionando vários blocos do oscilador." - -#: js/ToneBlocks.js:144 -#: js/timbre.js:1225 -#.TRANS: a duo synthesizer combines a synth with a sequencer -msgid "duo synth" -msgstr "duo sintetizador" - -#: js/ToneBlocks.js:149 -msgid "The Duo synth block is a duo-frequency modulator used to define a timbre." -msgstr "O bloco sintetizador Duo é um modulador de frequência dupla usado para definir um timbre." - -#: js/ToneBlocks.js:157 -#: js/timbre.js:1476 -msgid "vibrato rate" -msgstr "taxa de vibrato" +#: js/blocks/PitchBlocks.js:141 +#.TRANS: musical transposition (adjustment of pitch up or down) +msgid "transposition" +msgstr "transposição" -#: js/ToneBlocks.js:157 -msgid "vibrato intensity" -msgstr "intensidade de vibrato" +#: js/blocks/PitchBlocks.js:168 +#.TRANS: step down one note in current musical scale +msgid "scalar step down" +msgstr "degrau escalar de baixo" -#: js/ToneBlocks.js:185 -#: js/timbre.js:1221 -#.TRANS: AM (amplitude modulation) synthesizer -msgid "AM synth" -msgstr "sintetizador AM" +#: js/blocks/PitchBlocks.js:172 +msgid "The Scalar step down block returns the number of semi-tones down to the previous note in the current key and mode." +msgstr "O bloco Escalar redutor retorna o número de semitons reduzidos até a nota anterior na tecla atual e modo." -#: js/ToneBlocks.js:189 -msgid "The AM synth block is an amplitude modulator used to define a timbre." -msgstr "O bloco sintetizador AM é um modulador de amplitude usado para definir um timbre." +#: js/blocks/PitchBlocks.js:190 +#.TRANS: step up one note in current musical scale +msgid "scalar step up" +msgstr "degrau escalar de cima" -#: js/ToneBlocks.js:224 -#: js/timbre.js:1223 -#.TRANS: FM (frequency modulation) synthesizer -msgid "FM synth" -msgstr "sintetizador FM" +#: js/blocks/PitchBlocks.js:194 +msgid "The Scalar step up block returns the number of semi-tones up to the next note in the current key and mode." +msgstr "O bloco Escalar progressivo retorna o número de semitons até a próxima nota na tecla atual e modo." -#: js/ToneBlocks.js:228 -msgid "The FM synth block is a frequency modulator used to define a timbre." -msgstr "O bloco sintetizador FM é um modulador de frequência usado para definir um timbre." +#: js/blocks/PitchBlocks.js:212 +#.TRANS: the change measured in half-steps between the current pitch and the previous pitch +msgid "change in pitch" +msgstr "mudança no tom" -#: js/ToneBlocks.js:262 -msgid "partial" -msgstr "parcial" +#: js/blocks/PitchBlocks.js:216 +msgid "The Change in pitch block is the difference (in half steps) between the current pitch being played and the previous pitch played." +msgstr "Mudar no bloco de tom é a diferença (em meio passo) entre o tom atual que está sendo tocado e o tom anterior executado." -#: js/ToneBlocks.js:265 -msgid "The Partial block is used to specify a weight for a specific partial harmonic." +#: js/blocks/PitchBlocks.js:243 +#.TRANS: the change measured in scale-steps between the current pitch and the previous pitch +msgid "scalar change in pitch" msgstr "" -#: js/ToneBlocks.js:284 -#.TRANS: partials are weighted components in a harmonic series -msgid "Partial weight must be between 0 and 1." -msgstr "O peso Parcial deve estar entre 0 e 1." - -#: js/ToneBlocks.js:297 -#.TRANS: partials are weighted components in a harmonic series -msgid "Partial block should be used inside of a Weighted-partials block." -msgstr "Bloco Parcial deve ser usado dentro de um bloco parcial Ponderado." - -#: js/ToneBlocks.js:325 -#.TRANS: partials are weighted components in a harmonic series -msgid "weighted partials" -msgstr "parciais ponderadas" - -#: js/ToneBlocks.js:383 -msgid "The Harmonic block will add harmonics to the contained notes." -msgstr "O bloco Harmônico adicionará harmônicos às notas contidas." - -#: js/ToneBlocks.js:390 -#.TRANS: A harmonic is an overtone. -msgid "harmonic" -msgstr "harmônico" - -#: js/ToneBlocks.js:431 -msgid "The Distortion block adds distortion to the pitch." -msgstr "O bloco Distorção adiciona distorção ao tom." - -#: js/ToneBlocks.js:438 -#: js/timbre.js:2100 -#.TRANS: distortion is an alteration in the sound -msgid "distortion" -msgstr "distorção" - -#: js/ToneBlocks.js:487 -msgid "The Tremolo block adds a wavering effect." -msgstr "O bloco Tremolo adiciona um efeito de onda." - -#: js/ToneBlocks.js:495 -#: js/timbre.js:2092 -#.TRANS: a wavering effect in a musical tone -msgid "tremolo" -msgstr "tremolo" - -#: js/ToneBlocks.js:500 -#: js/ToneBlocks.js:569 -#: js/ToneBlocks.js:630 -#: js/ToneBlocks.js:689 -#: js/timbre.js:2134 -#: js/timbre.js:2222 -#: js/timbre.js:2317 -#: js/timbre.js:2419 -#.TRANS: rate at which tremolo wavers -msgid "rate" -msgstr "taxa" - -#: js/ToneBlocks.js:502 -#: js/ToneBlocks.js:630 -#: js/timbre.js:2137 -#: js/timbre.js:2328 -#.TRANS: amplitude of tremolo waver -msgid "depth" -msgstr "profundidade" - -#: js/ToneBlocks.js:559 -msgid "The Phaser block adds a sweeping sound." -msgstr "O bloco Phaser adiciona um som de varredura." - -#: js/ToneBlocks.js:566 -#: js/timbre.js:2098 -#.TRANS: alter the phase of the sound -msgid "phaser" -msgstr "phaser" - -#: js/ToneBlocks.js:569 -#: js/timbre.js:2422 -msgid "octaves" -msgstr "oitavas" +#: js/blocks/PitchBlocks.js:250 +#: js/blocks/PitchBlocks.js:432 +#: js/blocks/PitchBlocks.js:1667 +#: js/turtleactions/DictActions.js:89 +#: js/widgets/temperament.js:610 +#: js/widgets/temperament.js:614 +#: js/widgets/temperament.js:855 +#.TRANS: convert current note to piano key (1-88) +#.TRANS: a mapping of pitch to the 88 piano keys +msgid "pitch number" +msgstr "número do tom" -#: js/ToneBlocks.js:569 -#: js/timbre.js:2425 -msgid "base frequency" -msgstr "frequência base" +#: js/blocks/PitchBlocks.js:256 +msgid "The Pitch number block is the value of the pitch of the note currently being played." +msgstr "O bloco Tom número é o valor do tom da nota atualmente sendo reproduzida." -#: js/ToneBlocks.js:619 -msgid "The Chorus block adds a chorus effect." -msgstr "O bloco Coro adiciona um efeito de coro." +#: js/blocks/PitchBlocks.js:329 +#: js/blocks/PitchBlocks.js:433 +#.TRANS: the current pitch expressed in Hertz +msgid "pitch in hertz" +msgstr "tom em hertz" -#: js/ToneBlocks.js:627 -#: js/timbre.js:2096 -#.TRANS: musical effect to simulate a choral sound -msgid "chorus" -msgstr "refrão" +#: js/blocks/PitchBlocks.js:334 +msgid "The Pitch in Hertz block is the value in Hertz of the pitch of the note currently being played." +msgstr "O bloco Tom em Hertz é o valor em Hertz do tom da nota atualmente sendo tocada." -#: js/ToneBlocks.js:630 -msgid "delay" -msgstr "atraso" +#: js/blocks/PitchBlocks.js:367 +#: js/turtleactions/DictActions.js:87 +msgid "current pitch" +msgstr "" -#: js/ToneBlocks.js:678 -msgid "The Vibrato block adds a rapid, slight variation in pitch." -msgstr "O bloco Vibrato adiciona uma variação rápida e ligeira no tom." +#: js/blocks/PitchBlocks.js:373 +msgid "The Current Pitch block is used with the Pitch Converter block. In the example above, current pitch, sol 4, is displayed as 392 hertz." +msgstr "" -#: js/ToneBlocks.js:686 -#: js/timbre.js:2094 -#.TRANS: a rapid, slight variation in pitch -msgid "vibrato" -msgstr "vibrato" +#: js/blocks/PitchBlocks.js:410 +msgid "This block converts the pitch value of the last note played into different formats such as hertz, letter name, pitch number, et al." +msgstr "" -#: js/ToneBlocks.js:689 -#: js/timbre.js:2221 -msgid "intensity" -msgstr "intensidade" +#: js/blocks/PitchBlocks.js:434 +msgid "alphabet" +msgstr "" -#: js/ToneBlocks.js:733 -#.TRANS: select synthesizer -msgid "set synth" -msgstr "difinir sintetizador" +#: js/blocks/PitchBlocks.js:436 +#.TRANS: Translate as "alphabet class" +msgid "letter class" +msgstr "" -#: js/ToneBlocks.js:804 -msgid "synth name" -msgstr "nome do sintetizador" +#: js/blocks/PitchBlocks.js:437 +msgid "solfege class" +msgstr "" -#: js/ToneBlocks.js:842 -msgid "set default instrument" +#: js/blocks/PitchBlocks.js:438 +msgid "staff y" msgstr "" -#: js/ToneBlocks.js:895 -#: js/ToneBlocks.js:943 -#.TRANS: set the characteristics of a custom instrument -msgid "set instrument" +#: js/blocks/PitchBlocks.js:439 +msgid "solfege syllable" msgstr "" -#: js/ToneBlocks.js:898 -#: js/ToneBlocks.js:926 -#: js/ToneBlocks.js:932 -msgid "The Set instrument block selects a voice for the synthesizer," +#: js/blocks/PitchBlocks.js:440 +msgid "pitch class" msgstr "" -#: js/ToneBlocks.js:900 -#: js/ToneBlocks.js:934 -msgid "eg guitar piano violin or cello." -msgstr "por exemplo guitarra piano violino ou violoncelo." +#: js/blocks/PitchBlocks.js:441 +msgid "scalar class" +msgstr "" -#: js/ToneBlocks.js:1015 -msgid "Import a sound file to use as an instrument and set its pitch center." +#: js/blocks/PitchBlocks.js:443 +msgid "nth degree" msgstr "" -#: js/ToneBlocks.js:1110 -msgid "Upload a sound file to connect with the sample block." +#: js/blocks/PitchBlocks.js:444 +msgid "pitch to shade" msgstr "" -#: js/MeterBlocks.js:34 -#.TRANS: musical meter (time signature), e.g., 4:4 -msgid "current meter" -msgstr "medidor atual" +#: js/blocks/PitchBlocks.js:445 +msgid "pitch to color" +msgstr "" -#: js/MeterBlocks.js:85 -#.TRANS: number of beats per minute -msgid "beat factor" -msgstr "fator da batida" +#: js/blocks/PitchBlocks.js:629 +#: js/widgets/musickeyboard.js:735 +#.TRANS: MIDI is a technical standard for electronic music +msgid "MIDI" +msgstr "" -#: js/MeterBlocks.js:161 -msgid "The Beats per minute block returns the current beats per minute." -msgstr "O bloco Batidas por minuto retorna as batidas atuais por minuto." +#: js/blocks/PitchBlocks.js:642 +#.TRANS: set an offset associated with the numeric piano keyboard mapping +msgid "set pitch number offset" +msgstr "definir número do tom" -#: js/MeterBlocks.js:169 -#: js/status.js:152 -#.TRANS: number of beats played per minute -msgid "beats per minute2" -msgstr "batidas por minuto2" +#: js/blocks/PitchBlocks.js:645 +msgid "The Set pitch number offset block is used to set the offset for mapping pitch numbers to pitch and octave." +msgstr "O bloco de deslocamento Define número do tom é usado para definir o deslocamento para mapear os números de tom para afinação e oitava." -#: js/MeterBlocks.js:169 -#: js/MeterBlocks.js:1056 -#: js/MeterBlocks.js:1133 -#: js/MeterBlocks.js:1211 -#.TRANS: sets tempo by defining a beat and beats per minute -msgid "beats per minute" -msgstr "batidas por minuto" +#: js/blocks/PitchBlocks.js:679 +#.TRANS: convert piano key number (1-88) to pitch +msgid "number to pitch" +msgstr "número para o tom" -#: js/MeterBlocks.js:233 -#.TRANS: count of current musical measure in meter -msgid "measure count" -msgstr "contador de medida" +#: js/blocks/PitchBlocks.js:682 +msgid "The Number to pitch block will convert a pitch number to a pich name." +msgstr "" -#: js/MeterBlocks.js:241 -msgid "The Measure count block returns the current measure." -msgstr "O bloco Medidor retorna a contagem atual." +#: js/blocks/PitchBlocks.js:715 +#.TRANS: convert piano key number (1-88) to octave +msgid "number to octave" +msgstr "número para a oitava" -#: js/MeterBlocks.js:290 -#.TRANS: count of current beat in the meter -msgid "beat count" -msgstr "contador de batidas" +#: js/blocks/PitchBlocks.js:717 +msgid "The Number to octave block will convert a pitch number to an octave." +msgstr "O bloco Número para oitava irá converter um número de tom em uma oitava." -#: js/MeterBlocks.js:300 -#: js/MeterBlocks.js:311 -#: js/MeterBlocks.js:565 -#: js/MeterBlocks.js:576 -msgid "The Beat count block is the number of the current beat," -msgstr "O bloco contagem de Batidas é o número da batida atual," +#: js/blocks/PitchBlocks.js:726 +msgid "y to pitch" +msgstr "" -#: js/MeterBlocks.js:313 -#: js/MeterBlocks.js:578 -msgid "eg 1, 2, 3, or 4." -msgstr "por exemplo 1, 2, 3, 4." +#: js/blocks/PitchBlocks.js:729 +msgid "Y to pitch block will convert a staff y position to corresponding pitch notation." +msgstr "" -#: js/MeterBlocks.js:368 -#.TRANS: count the number of notes -msgid "sum note values" +#: js/blocks/PitchBlocks.js:841 +msgid "accidental selector" msgstr "" -#: js/MeterBlocks.js:376 -#: js/MeterBlocks.js:440 -msgid "The Note counter block can be used to count the number of contained notes." -msgstr "O bloco Contador de notas pode ser usado para contar o número de notas." +#: js/blocks/PitchBlocks.js:844 +msgid "The Accidental selector block is used to choose between double-sharp, sharp, natural, flat, and double-flat." +msgstr "O bloco seletor Acidental é usado para escolher entre duplo-afinado, afinado, natural, plano e duplo plano." -#: js/MeterBlocks.js:432 -#.TRANS: count the number of notes -msgid "note counter" -msgstr "contador de notas" +#: js/blocks/PitchBlocks.js:858 +msgid "Pitch can be specified in terms of ni dha pa ma ga re sa." +msgstr "O tom pode ser especificado em termos de ni dha pa ga ga sa sa." -#: js/MeterBlocks.js:496 -#.TRANS: number of whole notes that have been played -msgid "whole notes played" -msgstr "todas as notas tocadas" +#: js/blocks/PitchBlocks.js:872 +msgid "Pitch can be specified in terms of C D E F G A B." +msgstr "O tom pode ser especificado em termos de C D E F G A B." -#: js/MeterBlocks.js:505 -msgid "The Whole notes played block returns the total number of whole notes played." -msgstr "O bloco Inteiro de notas tocadas retorna o número total de notas inteiras tocadas." +#: js/blocks/PitchBlocks.js:884 +msgid "solfege" +msgstr "" -#: js/MeterBlocks.js:555 -#: js/DictActions.js:83 -#.TRANS: number of notes that have been played -msgid "notes played" -msgstr "notas tocadas" +#: js/blocks/PitchBlocks.js:887 +msgid "Pitch can be specified in terms of do re mi fa sol la ti." +msgstr "O Tom pode ser especificado em termos de do re mi fá sol la si." -#: js/MeterBlocks.js:653 -msgid "The No clock block decouples the notes from the master clock." -msgstr "O bloco Sem-relógio desacopla as notas do relógio principal." +#: js/blocks/PitchBlocks.js:922 +msgid "The Invert block rotates any contained notes around a target note." +msgstr "O bloco Inversor rotaciona todas as notas contidas em torno de uma nota de destino." -#: js/MeterBlocks.js:661 -#.TRANS: don't lock notes to master clock -msgid "no clock" -msgstr "sem relógio" +#: js/blocks/PitchBlocks.js:929 +#.TRANS: pitch inversion rotates a pitch around another pitch +msgid "invert" +msgstr "inverter" -#: js/MeterBlocks.js:700 -msgid "on weak beat do" -msgstr "" +#: js/blocks/PitchBlocks.js:968 +#.TRANS: pitch inversion rotates a pitch around another pitch (odd number) +msgid "invert (odd)" +msgstr "inverter (ímpar)" -#: js/MeterBlocks.js:705 -msgid "The On-weak-beat block lets you specify actions to take on weak (off) beats." -msgstr "" +#: js/blocks/PitchBlocks.js:1001 +#.TRANS: pitch inversion rotates a pitch around another pitch (even number) +msgid "invert (even)" +msgstr "inverter (par)" -#: js/MeterBlocks.js:750 -msgid "on strong beat" -msgstr "em batida forte" +#: js/blocks/PitchBlocks.js:1022 +#.TRANS: register is the octave of the current pitch +msgid "register" +msgstr "registrador" -#: js/MeterBlocks.js:758 -msgid "The On-strong-beat block lets you specify actions to take on specified beats." +#: js/blocks/PitchBlocks.js:1026 +msgid "The Register block provides an easy way to modify the register (octave) of the notes that follow it." +msgstr "O bloco Registrador fornece uma maneira fácil de modificar o registro (oitava) das notas que o seguem." + +#: js/blocks/PitchBlocks.js:1047 +#.TRANS: cents are units used to specify the ratio between pitches. There are 100 cents between successive notes. +msgid "50 cents" msgstr "" -#: js/MeterBlocks.js:769 -msgid "beat" -msgstr "batida" +#: js/blocks/PitchBlocks.js:1102 +msgid "The Semi-tone transposition block will shift the pitches contained inside Note blocks up (or down) by half steps." +msgstr "O bloco de transposição de Semi-tom mudará os passos contidos dentro dos blocos de Notas para cima (ou para baixo) em intervalos de meio tom." -#: js/MeterBlocks.js:813 -msgid "on every beat do" +#: js/blocks/PitchBlocks.js:1104 +msgid "In the example shown above, sol is shifted up to sol#." +msgstr "No exemplo acima, sol é deslocado para sol#." + +#: js/blocks/PitchBlocks.js:1110 +#.TRANS: adjust the amount of shift (up or down) of a pitch +msgid "semi-tone transpose" +msgstr "transposição de semi-tom" + +#: js/blocks/PitchBlocks.js:1143 +msgid "The Transpose by Ratio block will shift the pitches contained inside Note blocks up (or down) by a ratio" msgstr "" -#: js/MeterBlocks.js:821 -msgid "The On-every-beat block lets you specify actions to take on every beat." +#: js/blocks/PitchBlocks.js:1149 +#.TRANS: adjust the amount of shift (up or down) of a pitch +msgid "transpose by ratio" msgstr "" -#: js/MeterBlocks.js:874 -msgid "on every note do" -msgstr "em cada nota feita" +#: js/blocks/PitchBlocks.js:1232 +#.TRANS: down sixth means the note is five scale degrees below current note +msgid "down sixth" +msgstr "sexta baixa" -#: js/MeterBlocks.js:882 -msgid "The On-every-note block lets you specify actions to take on every note." -msgstr "" +#: js/blocks/PitchBlocks.js:1251 +#.TRANS: down third means the note is two scale degrees below current note +msgid "down third" +msgstr "terceira baixa" -#: js/MeterBlocks.js:928 -#: js/MeterBlocks.js:999 -#.TRANS: sets tempo by defining a beat and beats per minute -msgid "master beats per minute" -msgstr "batida mestre por minuto" +#: js/blocks/PitchBlocks.js:1270 +#.TRANS: seventh means the note is the six scale degrees above current note +msgid "seventh" +msgstr "sétima" -#: js/MeterBlocks.js:952 -#: js/MeterBlocks.js:1078 -#: js/MeterBlocks.js:1135 -msgid "bpm" -msgstr "bpm" +#: js/blocks/PitchBlocks.js:1289 +#.TRANS: sixth means the note is the five scale degrees above current note +msgid "sixth" +msgstr "sexta" -#: js/MeterBlocks.js:952 -#: js/MeterBlocks.js:1078 -#: js/MeterBlocks.js:1135 -msgid "beat value" -msgstr "valor da batida" +#: js/blocks/PitchBlocks.js:1308 +#.TRANS: fifth means the note is the four scale degrees above current note +msgid "fifth" +msgstr "quinta" -#: js/MeterBlocks.js:1024 -#: js/MeterBlocks.js:1167 -#: js/MeterBlocks.js:1241 -msgid "Beats per minute must be > 30." -msgstr "Batidas por minuto devem ser> 30." +#: js/blocks/PitchBlocks.js:1328 +#.TRANS: fourth means the note is three scale degrees above current note +msgid "fourth" +msgstr "quarta" -#: js/MeterBlocks.js:1027 -#: js/MeterBlocks.js:1170 -#: js/MeterBlocks.js:1244 -msgid "Maximum beats per minute is 1000." -msgstr "Máximo de batidas por minuto é de 1.000." +#: js/blocks/PitchBlocks.js:1347 +#.TRANS: third means the note is two scale degrees above current note +msgid "third" +msgstr "terceira" -#: js/MeterBlocks.js:1068 -msgid "The Beats per minute block sets the number of 1/4 notes per minute." -msgstr "O bloco Batidas por minuto define o número de 1/4 notas por minuto." +#: js/blocks/PitchBlocks.js:1366 +#.TRANS: second means the note is one scale degree above current note +msgid "second" +msgstr "segunda" -#: js/MeterBlocks.js:1279 -#.TRANS: anacrusis -msgid "pickup" -msgstr "pegar" +#: js/blocks/PitchBlocks.js:1407 +msgid "The Scalar transposition block will shift the pitches contained inside Note blocks up (or down) the scale." +msgstr "O bloco de transposição Escalar mudará os tons contidos dentro dos blocos de notas para cima (ou para baixo) da escala." -#: js/MeterBlocks.js:1367 -msgid "number of beats" -msgstr "número de batidas" +#: js/blocks/PitchBlocks.js:1409 +msgid "In the example shown above, sol is shifted up to la." +msgstr "No exemplo mostrado acima, sol é deslocado até la." -#: js/DictBlocks.js:77 -msgid "show dictionary" -msgstr "" +#: js/blocks/PitchBlocks.js:1416 +#.TRANS: adjust the amount of shift (up or down) of a pitch by musical scale (scalar) steps +msgid "scalar transpose" +msgstr "transposição escalar" -#: js/DictBlocks.js:129 -msgid "The Dictionary block returns a dictionary." +#: js/blocks/PitchBlocks.js:1451 +msgid "The Accidental block is used to create sharps and flats" +msgstr "O bloco Acidental é usado para criar afinações e planos" + +#: js/blocks/PitchBlocks.js:1458 +#.TRANS: An accidental is a modification to a pitch, e.g., sharp or flat. +msgid "accidental override" msgstr "" -#: js/DictBlocks.js:197 -#: js/DictBlocks.js:339 -msgid "The Get-dict block returns a value in the dictionary for a specified key." +#: js/blocks/PitchBlocks.js:1581 +msgid "The Hertz block (in combination with a Number block) will play a sound at the specified frequency." +msgstr "O bloco Hertz (em combinação com um bloco Número) reproduzirá um som na freqüência especificada." + +#: js/blocks/PitchBlocks.js:1671 +msgid "The Pitch Number block will play a pitch associated by its number, e.g. 0 for C and 7 for G." msgstr "" -#: js/DictBlocks.js:212 -#: js/DictBlocks.js:354 -#.TRANS: retrieve a value from the dictionary with a given key -msgid "get value" +#: js/blocks/PitchBlocks.js:1703 +#: js/blocks/PitchBlocks.js:1745 +#.TRANS: a numeric mapping of the notes in an octave based on the musical mode +#.TRANS: a numeric mapping of the notes in an octave based on the musical mode +msgid "nth modal pitch" msgstr "" -#: js/DictBlocks.js:215 -#: js/DictBlocks.js:216 -#: js/DictBlocks.js:289 -#: js/DictBlocks.js:290 -#: js/DictBlocks.js:357 -#: js/DictBlocks.js:430 -#: js/DictBlocks.js:431 -msgid "key2" +#: js/blocks/PitchBlocks.js:1706 +msgid "n^th Modal Pitch takes the pattern of pitches in semitones for a mode and makes each point a degree of the mode," msgstr "" -#: js/DictBlocks.js:271 -#: js/DictBlocks.js:411 -msgid "The Set-dict block sets a value in the dictionary for a specified key." +#: js/blocks/PitchBlocks.js:1708 +msgid "starting from 1 and regardless of tonal framework (i.e. not always 8 notes in the octave)" msgstr "" -#: js/DictBlocks.js:286 -#: js/DictBlocks.js:427 -#.TRANS: set a value in the dictionary for a given key -msgid "set value" +#: js/blocks/PitchBlocks.js:1749 +msgid "N^th Modal Pitch takes a number as an input as the n^th degree for the given mode. 0 is the first position, 1 is the second, -1 is the note before the first etc." msgstr "" -#: js/ExtrasBlocks.js:33 -msgid "fraction" +#: js/blocks/PitchBlocks.js:1751 +msgid "The pitches change according to the mode specified without any need for respellings." msgstr "" -#: js/ExtrasBlocks.js:36 -msgid "Convert a float to a fraction" +#: js/blocks/PitchBlocks.js:1790 +msgid "Scale Degree is a common convention in music. Scale Degree offers seven possible positions in the scale (1-7) and can be modified via accidentals." msgstr "" -#: js/ExtrasBlocks.js:93 -msgid "save as ABC" -msgstr "salvar como ABC" +#: js/blocks/PitchBlocks.js:1792 +msgid "Scale Degree 1 is always the first pitch in a given scale, regardless of octave." +msgstr "" -#: js/ExtrasBlocks.js:96 -#: js/ExtrasBlocks.js:132 -#: js/ExtrasBlocks.js:168 -msgid "title" -msgstr "título" +#: js/blocks/PitchBlocks.js:1814 +#.TRANS: step some number of notes in current musical scale +msgid "scalar step" +msgstr "passo escalar" -#: js/ExtrasBlocks.js:129 -msgid "save as Lilypond" -msgstr "Salvar como Lilypond" +#: js/blocks/PitchBlocks.js:1819 +msgid "The Scalar Step block (in combination with a Number block) will play the next pitch in a scale," +msgstr "O bloco Passo Escalar (em combinação com um bloco Número) reproduzirá o próximo tom em uma escala," -#: js/ExtrasBlocks.js:165 -msgid "save as SVG" -msgstr "salvar como SVG" +#: js/blocks/PitchBlocks.js:1821 +msgid "eg if the last note played was sol, Scalar Step 1 will play la." +msgstr "Por exemplo, se a última nota tocada for sol, o Passo Escalar 1 tocará la." -#: js/ExtrasBlocks.js:216 -msgid "no background" -msgstr "sem plano de fundo" +#: js/blocks/PitchBlocks.js:1857 +msgid "The Pitch block specifies the pitch name and octave of a note that together determine the frequency of the note." +msgstr "O bloco Tom especifica o nome do tom e a oitava de uma nota que juntos determinam a frequência da nota." -#: js/ExtrasBlocks.js:219 -msgid "The No background block eliminates the background from the saved SVG output." -msgstr "O bloco Sem plano de fundo elimina o plano de fundo de uma saida SVG salva." +#: js/blocks/ProgramBlocks.js:33 +msgid "The Load-heap-from-app block loads the heap from a web page." +msgstr "O bloco Carregar-pilha-do-app carrega a pilha de uma página da web." -#: js/ExtrasBlocks.js:247 -msgid "show blocks" -msgstr "mostrar blocos" +#: js/blocks/ProgramBlocks.js:44 +#.TRANS: load the heap contents from a URL +msgid "load heap from App" +msgstr "carregar pilha do aplicativo" -#: js/ExtrasBlocks.js:249 -msgid "The Show blocks block shows the blocks." -msgstr "O bloco Mostar blocos mostra os blocos." +#: js/blocks/ProgramBlocks.js:95 +msgid "Error parsing JSON data:" +msgstr "Erro ao analisar dados JSON:" -#: js/ExtrasBlocks.js:274 -msgid "hide blocks" -msgstr "ocultar blocos" +#: js/blocks/ProgramBlocks.js:100 +msgid "404: Page not found" +msgstr "404 Página não encontrada" -#: js/ExtrasBlocks.js:276 -msgid "The Hide blocks block hides the blocks." -msgstr "O bloco Ocultar blocos esconde os blocos." +#: js/blocks/ProgramBlocks.js:133 +msgid "The Save-heap-to-app block saves the heap to a web page." +msgstr "O bloco Salvar-pilha-para-aplicativo salva a pilha em uma página da web." -#: js/ExtrasBlocks.js:305 -#: js/ExtrasBlocks.js:335 -msgid "The Space block is used to add space between blocks." -msgstr "O bloco Espaço é usado para adicionar espaço entre dois blocos." +#: js/blocks/ProgramBlocks.js:144 +#.TRANS: save the heap contents to a URL +msgid "save heap to App" +msgstr "salvar pilha no aplicativo" -#: js/ExtrasBlocks.js:373 -msgid "wait" -msgstr "espere" +#: js/blocks/ProgramBlocks.js:189 +msgid "Cannot find a valid heap for" +msgstr "Não foi possível encontrar uma pilha válida para" -#: js/ExtrasBlocks.js:376 -msgid "The Wait block pauses the program for a specified number of seconds." -msgstr "O bloco Esperar pausa o programa por um número de segundos especificado." +#: js/blocks/ProgramBlocks.js:206 +msgid "The Load-heap block loads the heap from a file." +msgstr "O bloco Carregar-pilha carrega a pilha de um arquivo." -#: js/ExtrasBlocks.js:430 -#: plugins/facebook.rtp:30 -msgid "comment" -msgstr "comentar" +#: js/blocks/ProgramBlocks.js:217 +#.TRANS: load the heap from a file +msgid "load heap" +msgstr "carregar pilha" -#: js/ExtrasBlocks.js:466 -msgid "print" -msgstr "imprimir" +#: js/blocks/ProgramBlocks.js:270 +msgid "The file you selected does not contain a valid heap." +msgstr "O arquivo escolhido não tem uma pilha válida." -#: js/ExtrasBlocks.js:473 -msgid "The Print block displays text at the top of the screen." -msgstr "O bloco Exibir exibe o texto na parte superior da tela." +#: js/blocks/ProgramBlocks.js:275 +msgid "The loadHeap block needs a loadFile block." +msgstr "O bloco de carregarPilha precisa de um bloco de carregarArquivo." -#: js/ExtrasBlocks.js:579 -msgid "display grid" +#: js/blocks/ProgramBlocks.js:291 +msgid "The Set-heap block loads the heap." msgstr "" -#: js/ExtrasBlocks.js:584 -msgid "The Display Grid Block changes the grid type" +#: js/blocks/ProgramBlocks.js:340 +msgid "The block you selected does not contain a valid heap." msgstr "" -#: js/ExtrasBlocks.js:686 -#: js/ExtrasBlocks.js:705 -#: js/ExtrasBlocks.js:728 -#: js/ExtrasBlocks.js:751 -#: js/ExtrasBlocks.js:769 -#: js/ExtrasBlocks.js:788 -#: js/ExtrasBlocks.js:807 -#: js/ExtrasBlocks.js:826 -msgid "unknown" -msgstr "desconhecido" - -#: js/SensorsBlocks.js:36 -msgid "The Input block prompts for keyboard input." +#: js/blocks/ProgramBlocks.js:343 +msgid "The Set heap block needs a heap." msgstr "" -#: js/SensorsBlocks.js:46 -msgid "input" +#: js/blocks/ProgramBlocks.js:360 +msgid "The Load-dictionary block loads a dictionary from a file." msgstr "" -#: js/SensorsBlocks.js:64 -msgid "Input a value" +#: js/blocks/ProgramBlocks.js:372 +#.TRANS: load a dictionary from a file +msgid "load dictionary" msgstr "" -#: js/SensorsBlocks.js:126 -msgid "input value" +#: js/blocks/ProgramBlocks.js:390 +#: js/blocks/ProgramBlocks.js:658 +#: js/blocks/ToneBlocks.js:1025 +msgid "file" msgstr "" -#: js/SensorsBlocks.js:131 -msgid "The Input-value block stores the input." +#: js/blocks/ProgramBlocks.js:444 +msgid "The file you selected does not contain a valid dictionary." msgstr "" -#: js/SensorsBlocks.js:238 -msgid "loudness" -msgstr "intensidade" - -#: js/SensorsBlocks.js:245 -msgid "The Loudness block returns the volume detected by the microphone." -msgstr "O bloco Sonoridade retorna o volume detectado pelo microfone." - -#: js/SensorsBlocks.js:300 -msgid "click" -msgstr "clique" +#: js/blocks/ProgramBlocks.js:449 +msgid "The load dictionary block needs a load file block." +msgstr "" -#: js/SensorsBlocks.js:306 -msgid "The Click block triggers an event if a mouse has been clicked." +#: js/blocks/ProgramBlocks.js:466 +msgid "The Set-dictionary block loads a dictionary." msgstr "" -#: js/SensorsBlocks.js:313 -msgid "The Click block triggers an event if a turtle has been clicked." +#: js/blocks/ProgramBlocks.js:477 +#.TRANS: load a dictionary from a JSON +msgid "set dictionary" msgstr "" -#: js/SensorsBlocks.js:342 -msgid "cursor over" +#: js/blocks/ProgramBlocks.js:546 +msgid "The block you selected does not contain a valid dictionary." msgstr "" -#: js/SensorsBlocks.js:387 -msgid "cursor out" +#: js/blocks/ProgramBlocks.js:550 +msgid "The set dictionary block needs a dictionary." msgstr "" -#: js/SensorsBlocks.js:433 -msgid "cursor button down" +#: js/blocks/ProgramBlocks.js:567 +msgid "The Save-heap block saves the heap to a file." +msgstr "O bloco Salvar-pilha salva a pilha em um arquivo." + +#: js/blocks/ProgramBlocks.js:578 +#.TRANS: save the heap to a file +msgid "save heap" +msgstr "salvar pilha" + +#: js/blocks/ProgramBlocks.js:629 +msgid "The Save-dictionary block saves a dictionary to a file." msgstr "" -#: js/SensorsBlocks.js:477 -msgid "cursor button up" +#: js/blocks/ProgramBlocks.js:640 +#.TRANS: save a dictionary to a file +msgid "save dictionary" msgstr "" -#: js/SensorsBlocks.js:638 -msgid "The Get red block returns the red component of the pixel under the mouse." -msgstr "O bloco Obtenha vermelho retorna o componente vermelho do pixel sob o ratinho." +#: js/blocks/ProgramBlocks.js:720 +msgid "The Open palette block opens a palette." +msgstr "O bloco Abrir paleta abre uma paleta." -#: js/SensorsBlocks.js:644 -msgid "The Get red block returns the red component of the pixel under the turtle." -msgstr "" +#: js/blocks/ProgramBlocks.js:727 +msgid "open palette" +msgstr "abrir paleta" -#: js/SensorsBlocks.js:685 -#: plugins/rodi.rtp:216 -msgid "pixel color" -msgstr "cor do pixel" +#: js/blocks/ProgramBlocks.js:785 +msgid "The Delete block block removes a block." +msgstr "O bloco Excluir bloco remove um bloco." -#: js/SensorsBlocks.js:690 -msgid "The Get pixel block returns the color of the pixel under the mouse." -msgstr "O bloco Obtenha pixel retorna a cor do pixel sob o ratinho." +#: js/blocks/ProgramBlocks.js:797 +#.TRANS: Move this block to the trash. +msgid "delete block" +msgstr "excluir bloco" -#: js/SensorsBlocks.js:696 -msgid "The Get pixel block returns the color of the pixel under the turtle." -msgstr "" +#: js/blocks/ProgramBlocks.js:861 +msgid "The Move block block moves a block." +msgstr "O bloco Mover move um bloco." -#: js/SensorsBlocks.js:758 -msgid "time" -msgstr "tempo" +#: js/blocks/ProgramBlocks.js:869 +#.TRANS: Move the position of a block on the screen. +msgid "move block" +msgstr "mover bloco" -#: js/SensorsBlocks.js:804 -msgid "cursor y" -msgstr "cursor y" +#: js/blocks/ProgramBlocks.js:881 +#: js/blocks/ProgramBlocks.js:1048 +msgid "block number" +msgstr "número do bloco" -#: js/SensorsBlocks.js:809 -msgid "The Cursor Y block returns the vertical position of the mouse." -msgstr "O bloco Cursor Y retorna a posição vertical do ratinho." +#: js/blocks/ProgramBlocks.js:935 +#.TRANS: Run program beginning at this block. +msgid "run block" +msgstr "executar bloco" -#: js/SensorsBlocks.js:845 -msgid "cursor x" -msgstr "cursor x" +#: js/blocks/ProgramBlocks.js:1025 +msgid "The Dock block block connections two blocks." +msgstr "O bloco Dock bloco conecta dois blocos." -#: js/SensorsBlocks.js:850 -msgid "The Cursor X block returns the horizontal position of the mouse." -msgstr "O bloco Cursor X retorna a posição horizontal do ratinho." +#: js/blocks/ProgramBlocks.js:1036 +#.TRANS: We can connect a block to another block. +msgid "connect blocks" +msgstr "conectar blocos" -#: js/SensorsBlocks.js:886 -msgid "mouse button" -msgstr "botão do ratinho" +#: js/blocks/ProgramBlocks.js:1048 +msgid "target block" +msgstr "Blco alvo" -#: js/SensorsBlocks.js:888 -msgid "The Mouse-button block returns True if the mouse button is pressed." -msgstr "O bloco Botão-do-ratinho retorna Verdadeiro se o botão do ratinho for pressionado." +#: js/blocks/ProgramBlocks.js:1048 +msgid "connection number" +msgstr "Número da conexão" -#: js/SensorsBlocks.js:934 -msgid "to ASCII" -msgstr "ir para ASCII" +#: js/blocks/ProgramBlocks.js:1140 +msgid "The Make block block creates a new block." +msgstr "O bloco Fazer bloco criar um novo bloco." -#: js/SensorsBlocks.js:938 -msgid "The To ASCII block converts numbers to letters." -msgstr "O bloco Para ASCII converte números em letras." +#: js/blocks/ProgramBlocks.js:1152 +#.TRANS: Create a new block +msgid "make block" +msgstr "fazer bloco" -#: js/SensorsBlocks.js:1005 -msgid "The Keyboard block returns computer keyboard input." -msgstr "O bloco Teclado retorna o teclado de entrada do computador." +#: js/blocks/ProgramBlocks.js:1285 +msgid "Cannot find block" +msgstr "Não foi possivel encontrar o bloco" -#: js/IntervalsActions.js:216 -msgid "Adding missing pitch number 0." -msgstr "Adicionando o número de tom ausente 0." +#: js/blocks/ProgramBlocks.js:1304 +#: js/blocks/ProgramBlocks.js:1313 +msgid "Warning: block argument type mismatch" +msgstr "Aviso: tipo incompatível de bloco de arggumento" -#: js/IntervalsActions.js:224 -msgid "Ignoring pitch numbers less than zero or greater than eleven." -msgstr "Ignorando números de tom menores que zero ou maiores que onze." +#: js/blocks/ProgramBlocks.js:1347 +msgid "The Open project block is used to open a project from a web page." +msgstr "O bloco Abrir projeto é usado para abrir um projeto de uma página da Internet." -#: js/IntervalsActions.js:230 -msgid "Ignoring duplicate pitch numbers." -msgstr "Ignorando números de tom duplicados." +#: js/blocks/ProgramBlocks.js:1357 +msgid "open project" +msgstr "abrir projeto" -#: js/PitchActions.js:88 -msgid "The Scalar Step Block must be used inside of a Note Block." -msgstr "O Bloco Passo Escalar deve ser usado dentro de um Bloco de Notas." +#: js/blocks/ProgramBlocks.js:1410 +msgid "Please enter a valid URL." +msgstr "Por favor, digite uma URL válida" -#: js/PitchActions.js:107 -msgid "The Scalar Step Block must be preceded by a Pitch Block." -msgstr "O Bloco Passo Escalar deve ser precedido de um Bloco de Tom." +#: js/blocks/ToneBlocks.js:34 +msgid "oscillator" +msgstr "oscilador" -#: js/DrumActions.js:231 -msgid "Noise Block: Did you mean to use a Note block?" -msgstr "Bloco de Ruído: Você quis usar um bloco de Notas?" +#: js/blocks/ToneBlocks.js:42 +#: js/blocks/WidgetBlocks.js:179 +#: js/widgets/timbre.js:1558 +#: js/widgets/timbre.js:1808 +#.TRANS: there are different types (sine, triangle, square...) of oscillators. +#.TRANS: type of filter, e.g., lowpass, highpass, etc. +msgid "type" +msgstr "tipo" -#: js/MeterActions.js:101 -#: js/MeterActions.js:139 -msgid "beats per minute must be greater than" -msgstr "" +#: js/blocks/ToneBlocks.js:44 +#: js/widgets/timbre.js:1562 +#.TRANS: Partials refers to the number of sine waves combined into the sound. +msgid "partials" +msgstr "parciais" -#: js/MeterActions.js:111 -#: js/MeterActions.js:149 -msgid "maximum" -msgstr "" +#: js/blocks/ToneBlocks.js:76 +msgid "You are adding multiple oscillator blocks." +msgstr "Você está adicionando vários blocos do oscilador." -#: js/MeterActions.js:117 -#: js/MeterActions.js:155 -msgid "beats per minute is" -msgstr "" +#: js/blocks/ToneBlocks.js:144 +#: js/widgets/timbre.js:1225 +#.TRANS: a duo synthesizer combines a synth with a sequencer +msgid "duo synth" +msgstr "duo sintetizador" -#: js/ToneActions.js:134 -msgid "Vibrato intensity must be between 1 and 100." -msgstr "A intensidade do vibrato deve estar entre 1 e 100." +#: js/blocks/ToneBlocks.js:149 +msgid "The Duo synth block is a duo-frequency modulator used to define a timbre." +msgstr "O bloco sintetizador Duo é um modulador de frequência dupla usado para definir um timbre." -#: js/ToneActions.js:139 -msgid "Vibrato rate must be greater than 0." -msgstr "A taxa de vibrato deve ser maior que 0." +#: js/blocks/ToneBlocks.js:157 +#: js/widgets/timbre.js:1476 +msgid "vibrato rate" +msgstr "taxa de vibrato" -#: js/ToneActions.js:192 -#: js/ToneActions.js:265 -#.TRANS: Depth is the intesity of the tremolo or chorus effect. -msgid "Depth is out of range." -msgstr "A profundidade está fora do limite." +#: js/blocks/ToneBlocks.js:157 +msgid "vibrato intensity" +msgstr "intensidade de vibrato" -#: js/ToneActions.js:301 -msgid "Distortion must be from 0 to 100." -msgstr "A distorção deve ser de 0 a 100." +#: js/blocks/ToneBlocks.js:185 +#: js/widgets/timbre.js:1221 +#.TRANS: AM (amplitude modulation) synthesizer +msgid "AM synth" +msgstr "sintetizador AM" -#: js/ToneActions.js:332 -#.TRANS: partials components in a harmonic series -msgid "Partial must be greater than or equal to 0." -msgstr "Parcial deve ser maior ou igual a 0." +#: js/blocks/ToneBlocks.js:189 +msgid "The AM synth block is an amplitude modulator used to define a timbre." +msgstr "O bloco sintetizador AM é um modulador de amplitude usado para definir um timbre." -#: js/ToneActions.js:378 -#: js/ToneActions.js:417 -#: js/ToneActions.js:456 -#: js/timbre.js:782 -msgid "Unable to use synth due to existing oscillator" -msgstr "Não é possível usar o sintetizador devido ao oscilador existente" +#: js/blocks/ToneBlocks.js:224 +#: js/widgets/timbre.js:1223 +#.TRANS: FM (frequency modulation) synthesizer +msgid "FM synth" +msgstr "sintetizador FM" + +#: js/blocks/ToneBlocks.js:228 +msgid "The FM synth block is a frequency modulator used to define a timbre." +msgstr "O bloco sintetizador FM é um modulador de frequência usado para definir um timbre." -#: js/ToneActions.js:388 -#: js/ToneActions.js:427 -msgid "The input cannot be negative." -msgstr "A entrada não pode ser negativa." +#: js/blocks/ToneBlocks.js:262 +msgid "partial" +msgstr "parcial" -#: js/DictActions.js:75 -#: js/DictActions.js:153 -#: js/DictActions.js:188 -msgid "font" +#: js/blocks/ToneBlocks.js:265 +msgid "The Partial block is used to specify a weight for a specific partial harmonic." msgstr "" -#: js/musicutils.js:363 -#: js/musicutils.js:471 -#: js/pitchdrummatrix.js:151 -#: js/musickeyboard.js:2563 -msgid "rest" -msgstr "resto" - -#: js/musicutils.js:565 -#.TRANS: ordinal number. Please keep exactly one space between each number. -msgid "1st 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th" -msgstr "1º 2º 3º 4º 5º 6º 7º 8º 9º 10º 11º 12º" +#: js/blocks/ToneBlocks.js:284 +#.TRANS: partials are weighted components in a harmonic series +msgid "Partial weight must be between 0 and 1." +msgstr "O peso Parcial deve estar entre 0 e 1." -#: js/musicutils.js:629 -#: js/musicutils.js:812 -#: js/musicutils.js:911 -#.TRANS: augmented is a music term related to intervals -msgid "augmented" -msgstr "aumentado" +#: js/blocks/ToneBlocks.js:297 +#.TRANS: partials are weighted components in a harmonic series +msgid "Partial block should be used inside of a Weighted-partials block." +msgstr "Bloco Parcial deve ser usado dentro de um bloco parcial Ponderado." -#: js/musicutils.js:631 -#: js/musicutils.js:813 -#: js/musicutils.js:910 -#.TRANS: diminished is a music term related to intervals and mode -msgid "diminished" -msgstr "diminuído" +#: js/blocks/ToneBlocks.js:325 +#.TRANS: partials are weighted components in a harmonic series +msgid "weighted partials" +msgstr "parciais ponderadas" -#: js/musicutils.js:639 -#.TRANS: twelve semi-tone scale for music -msgid "chromatic" -msgstr "cromático" +#: js/blocks/ToneBlocks.js:383 +msgid "The Harmonic block will add harmonics to the contained notes." +msgstr "O bloco Harmônico adicionará harmônicos às notas contidas." -#: js/musicutils.js:640 -msgid "algerian" -msgstr "algeriano" +#: js/blocks/ToneBlocks.js:390 +#.TRANS: A harmonic is an overtone. +msgid "harmonic" +msgstr "harmônico" -#: js/musicutils.js:641 -msgid "spanish" -msgstr "espanhol" +#: js/blocks/ToneBlocks.js:431 +msgid "The Distortion block adds distortion to the pitch." +msgstr "O bloco Distorção adiciona distorção ao tom." -#: js/musicutils.js:643 -#.TRANS: modal scale in music -msgid "octatonic" -msgstr "octatônico" +#: js/blocks/ToneBlocks.js:438 +#: js/widgets/timbre.js:2100 +#.TRANS: distortion is an alteration in the sound +msgid "distortion" +msgstr "distorção" -#: js/musicutils.js:645 -#.TRANS: harmonic major scale in music -msgid "harmonic major" -msgstr "harmônico maior" +#: js/blocks/ToneBlocks.js:487 +msgid "The Tremolo block adds a wavering effect." +msgstr "O bloco Tremolo adiciona um efeito de onda." -#: js/musicutils.js:647 -#.TRANS: natural minor scales in music -msgid "natural minor" -msgstr "menor natural" +#: js/blocks/ToneBlocks.js:495 +#: js/widgets/timbre.js:2092 +#.TRANS: a wavering effect in a musical tone +msgid "tremolo" +msgstr "tremolo" -#: js/musicutils.js:649 -#.TRANS: harmonic minor scale in music -msgid "harmonic minor" -msgstr "harmônico menor" +#: js/blocks/ToneBlocks.js:500 +#: js/blocks/ToneBlocks.js:569 +#: js/blocks/ToneBlocks.js:630 +#: js/blocks/ToneBlocks.js:689 +#: js/widgets/timbre.js:2134 +#: js/widgets/timbre.js:2222 +#: js/widgets/timbre.js:2317 +#: js/widgets/timbre.js:2419 +#.TRANS: rate at which tremolo wavers +msgid "rate" +msgstr "taxa" -#: js/musicutils.js:651 -#.TRANS: melodic minor scale in music -msgid "melodic minor" -msgstr "menor melódico" +#: js/blocks/ToneBlocks.js:502 +#: js/blocks/ToneBlocks.js:630 +#: js/widgets/timbre.js:2137 +#: js/widgets/timbre.js:2328 +#.TRANS: amplitude of tremolo waver +msgid "depth" +msgstr "profundidade" -#: js/musicutils.js:655 -#.TRANS: modal scale for music -msgid "dorian" -msgstr "doriano" +#: js/blocks/ToneBlocks.js:559 +msgid "The Phaser block adds a sweeping sound." +msgstr "O bloco Phaser adiciona um som de varredura." -#: js/musicutils.js:657 -#.TRANS: modal scale for music -msgid "phrygian" -msgstr "phrygianiano" +#: js/blocks/ToneBlocks.js:566 +#: js/widgets/timbre.js:2098 +#.TRANS: alter the phase of the sound +msgid "phaser" +msgstr "phaser" -#: js/musicutils.js:659 -#.TRANS: modal scale for music -msgid "lydian" -msgstr "lydiano" +#: js/blocks/ToneBlocks.js:569 +#: js/turtleactions/IntervalsActions.js:114 +#: js/widgets/timbre.js:2422 +msgid "octaves" +msgstr "oitavas" -#: js/musicutils.js:661 -#.TRANS: modal scale for music -msgid "mixolydian" -msgstr "mixolydiano" +#: js/blocks/ToneBlocks.js:569 +#: js/widgets/timbre.js:2425 +msgid "base frequency" +msgstr "frequência base" -#: js/musicutils.js:665 -#.TRANS: modal scale for music -msgid "locrian" -msgstr "locriano" +#: js/blocks/ToneBlocks.js:619 +msgid "The Chorus block adds a chorus effect." +msgstr "O bloco Coro adiciona um efeito de coro." -#: js/musicutils.js:667 -#.TRANS: minor jazz scale for music -msgid "jazz minor" -msgstr "jazz menor" +#: js/blocks/ToneBlocks.js:627 +#: js/widgets/timbre.js:2096 +#.TRANS: musical effect to simulate a choral sound +msgid "chorus" +msgstr "refrão" -#: js/musicutils.js:669 -#.TRANS: bebop scale for music -msgid "bebop" -msgstr "bebop" +#: js/blocks/ToneBlocks.js:630 +msgid "delay" +msgstr "atraso" -#: js/musicutils.js:670 -msgid "arabic" -msgstr "arábico" +#: js/blocks/ToneBlocks.js:678 +msgid "The Vibrato block adds a rapid, slight variation in pitch." +msgstr "O bloco Vibrato adiciona uma variação rápida e ligeira no tom." -#: js/musicutils.js:671 -msgid "byzantine" -msgstr "bizantino" +#: js/blocks/ToneBlocks.js:686 +#: js/widgets/timbre.js:2094 +#.TRANS: a rapid, slight variation in pitch +msgid "vibrato" +msgstr "vibrato" -#: js/musicutils.js:673 -#.TRANS: musical scale for music by Verdi -msgid "enigmatic" -msgstr "enigmático" +#: js/blocks/ToneBlocks.js:689 +#: js/widgets/timbre.js:2221 +msgid "intensity" +msgstr "intensidade" -#: js/musicutils.js:674 -msgid "ethiopian" -msgstr "etiopiano" +#: js/blocks/ToneBlocks.js:733 +#.TRANS: select synthesizer +msgid "set synth" +msgstr "difinir sintetizador" -#: js/musicutils.js:676 -#.TRANS: Ethiopic scale for music -msgid "geez" -msgstr "geez" +#: js/blocks/ToneBlocks.js:804 +msgid "synth name" +msgstr "nome do sintetizador" -#: js/musicutils.js:677 -msgid "hindu" -msgstr "hindu" +#: js/blocks/ToneBlocks.js:842 +msgid "set default instrument" +msgstr "" -#: js/musicutils.js:678 -msgid "hungarian" -msgstr "húngaro" +#: js/blocks/ToneBlocks.js:895 +#: js/blocks/ToneBlocks.js:943 +#.TRANS: set the characteristics of a custom instrument +msgid "set instrument" +msgstr "" -#: js/musicutils.js:680 -#.TRANS: minor Romanian scale for music -msgid "romanian minor" -msgstr "romano menor" +#: js/blocks/ToneBlocks.js:898 +#: js/blocks/ToneBlocks.js:926 +#: js/blocks/ToneBlocks.js:932 +msgid "The Set instrument block selects a voice for the synthesizer," +msgstr "" -#: js/musicutils.js:681 -msgid "spanish gypsy" -msgstr "espanhol cigano" +#: js/blocks/ToneBlocks.js:900 +#: js/blocks/ToneBlocks.js:934 +msgid "eg guitar piano violin or cello." +msgstr "por exemplo guitarra piano violino ou violoncelo." -#: js/musicutils.js:683 -#.TRANS: musical scale for Mid-Eastern music -msgid "maqam" -msgstr "maqamo" +#: js/blocks/ToneBlocks.js:1015 +msgid "Import a sound file to use as an instrument and set its pitch center." +msgstr "" -#: js/musicutils.js:685 -#.TRANS: minor blues scale for music -msgid "minor blues" -msgstr "blues menor" +#: js/blocks/ToneBlocks.js:1110 +msgid "Upload a sound file to connect with the sample block." +msgstr "" -#: js/musicutils.js:687 -#.TRANS: major blues scale for music -msgid "major blues" -msgstr "blues maior" +#: js/blocks/VolumeBlocks.js:35 +msgid "synth volume" +msgstr "" -#: js/musicutils.js:688 -msgid "whole tone" -msgstr "tom inteiro" +#: js/blocks/VolumeBlocks.js:39 +msgid "The Synth volume block returns the current volume of the current synthesizer." +msgstr "" -#: js/musicutils.js:690 -#.TRANS: pentatonic is a general term that means "five note scale". This scale is typically known as "minor pentatonic" -msgid "minor pentatonic" -msgstr "pentatônico menor" +#: js/blocks/VolumeBlocks.js:105 +msgid "master volume" +msgstr "volume mestre" -#: js/musicutils.js:692 -#.TRANS: pentatonic is a general term that means "five note scale". This scale is typically known as "major pentatonic" -msgid "major pentatonic" -msgstr "pentatônico maior" +#: js/blocks/VolumeBlocks.js:109 +msgid "The Master volume block returns the master volume." +msgstr "" -#: js/musicutils.js:693 -msgid "chinese" -msgstr "chinês" +#: js/blocks/VolumeBlocks.js:355 +#: js/blocks/VolumeBlocks.js:524 +msgid "set synth volume" +msgstr "definir volume do sintetizador" -#: js/musicutils.js:694 -msgid "egyptian" -msgstr "egípcio" +#: js/blocks/VolumeBlocks.js:362 +#: js/blocks/VolumeBlocks.js:545 +msgid "synth" +msgstr "sintetizador" -#: js/musicutils.js:696 -#.TRANS: https://en.wikipedia.org/wiki/Hirajoshi_scale NOTE: There are three different versions of this scale -msgid "hirajoshi" -msgstr "hirajoshi" +#: js/blocks/VolumeBlocks.js:403 +#: js/blocks/VolumeBlocks.js:577 +#: js/blocks/VolumeBlocks.js:740 +#: js/turtleactions/VolumeActions.js:173 +msgid "Setting volume to 0." +msgstr "Configurando o volume para 0." -#: js/musicutils.js:697 -msgid "Japan" -msgstr "Japão" +#: js/blocks/VolumeBlocks.js:440 +msgid "Synth not found" +msgstr "sintetizador não encontrado" -#: js/musicutils.js:699 -#.TRANS: https://en.wikipedia.org/wiki/In_scale and https://en.wikipedia.org/wiki/Sakura_Sakura -msgid "in" -msgstr "em" +#: js/blocks/VolumeBlocks.js:494 +msgid "set drum volume" +msgstr "definir volume da bateria" -#: js/musicutils.js:701 -#.TRANS: https://en.wikipedia.org/wiki/Miny%C5%8D_scale -msgid "minyo" -msgstr "minyo" +#: js/blocks/VolumeBlocks.js:530 +msgid "The Set synth volume block will change the volume of a particular synth," +msgstr "O bloco Definir volume do sintetizador mudará o volume de um sintetizador específico" -#: js/musicutils.js:703 -#.TRANS: Italian mathematician -msgid "fibonacci" -msgstr "fibonacci" +#: js/blocks/VolumeBlocks.js:532 +msgid "eg guitar violin snare drum etc." +msgstr "por exemplo, guitarra violino tambor snare etc." -#: js/musicutils.js:708 -#: js/musicutils.js:1106 -#.TRANS: lowpass filter -msgid "lowpass" -msgstr "lowpass" +#: js/blocks/VolumeBlocks.js:534 +msgid "The default volume is 50." +msgstr "O volume padrão é 50." -#: js/musicutils.js:710 -#: js/musicutils.js:1107 -#.TRANS: bandpass filter -msgid "bandpass" -msgstr "bandpass" +#: js/blocks/VolumeBlocks.js:536 +msgid "The range is 0 for silence to 100 for full volume." +msgstr "O intervalo é de 0 para o silêncio e 100 para o volume total." -#: js/musicutils.js:712 -#: js/musicutils.js:1108 -#.TRANS: high-shelf filter -msgid "highshelf" -msgstr "highshelf" +#: js/blocks/VolumeBlocks.js:597 +msgid "set panning" +msgstr "" -#: js/musicutils.js:714 -#: js/musicutils.js:1109 -#.TRANS: low-shelf filter -msgid "lowshelf" -msgstr "lowshelf" +#: js/blocks/VolumeBlocks.js:603 +msgid "The Set Panning block sets the panning for all synthesizers." +msgstr "" -#: js/musicutils.js:716 -#: js/musicutils.js:1110 -#.TRANS: notch-shelf filter -msgid "notch" -msgstr "entalhe" +#: js/blocks/VolumeBlocks.js:625 +msgid "Warning: Sound is coming out from only the left or right side." +msgstr "" -#: js/musicutils.js:718 -#: js/musicutils.js:1111 -#.TRANS: all-pass filter -msgid "allpass" -msgstr "allpass" +#: js/blocks/VolumeBlocks.js:647 +#: js/blocks/VolumeBlocks.js:695 +msgid "set master volume" +msgstr "definir volume mestre" -#: js/musicutils.js:720 -#: js/musicutils.js:1112 -#.TRANS: peaking filter -msgid "peaking" -msgstr "pico" +#: js/blocks/VolumeBlocks.js:653 +msgid "The Set master volume block sets the volume for all synthesizers." +msgstr "O bloco Definir volume mestre define o volume para todos os sintetizadores." -#: js/musicutils.js:731 -#: js/synthutils.js:58 -#.TRANS: musical instrument -msgid "violin" -msgstr "violino" +#: js/blocks/VolumeBlocks.js:784 +msgid "The Set relative volume block changes the volume of the contained notes." +msgstr "O bloco Define de volume relativo altera o volume das notas contidas." -#: js/musicutils.js:732 -#: js/synthutils.js:60 -#.TRANS: viola musical instrument -msgid "viola" -msgstr "" +#: js/blocks/VolumeBlocks.js:791 +msgid "set relative volume" +msgstr "definir volume relativo" -#: js/musicutils.js:733 -#: js/synthutils.js:98 -#.TRANS: xylophone musical instrument -msgid "xylophone" -msgstr "" +#: js/blocks/VolumeBlocks.js:857 +msgid "decrescendo" +msgstr "decrescendo" -#: js/musicutils.js:734 -#: js/synthutils.js:120 -#.TRANS: vibraphone musical instrument -msgid "vibraphone" -msgstr "" +#: js/blocks/VolumeBlocks.js:921 +msgid "crescendo" +msgstr "crescendo" -#: js/musicutils.js:735 -#: js/synthutils.js:62 -#.TRANS: musical instrument -msgid "cello" -msgstr "violoncelo" +#: js/blocks/WidgetBlocks.js:81 +#.TRANS: sound envelope (ADSR) +msgid "envelope" +msgstr "envelope" -#: js/musicutils.js:737 -#: js/synthutils.js:66 -#.TRANS: viola musical instrument -msgid "double bass" -msgstr "" +#: js/blocks/WidgetBlocks.js:89 +#.TRANS: Attack time is the time taken for initial run-up of level from nil to peak, beginning when the key is first pressed. +msgid "attack" +msgstr "iniciar" -#: js/musicutils.js:738 -#: js/synthutils.js:68 -#: js/rhythmruler.js:2119 -#.TRANS: musical instrument -msgid "guitar" -msgstr "guitarra" +#: js/blocks/WidgetBlocks.js:91 +#.TRANS: Decay time is the time taken for the subsequent run down from the attack level to the designated sustain level. +msgid "decay" +msgstr "decair" -#: js/musicutils.js:739 -#: js/synthutils.js:70 -#.TRANS: musical instrument -msgid "acoustic guitar" -msgstr "violão acústico" +#: js/blocks/WidgetBlocks.js:93 +#.TRANS: Sustain level is the level during the main sequence of the sound's duration, until the key is released. +msgid "sustain" +msgstr "sustentar" -#: js/musicutils.js:740 -#: js/synthutils.js:72 -#.TRANS: musical instrument -msgid "flute" -msgstr "flauta" +#: js/blocks/WidgetBlocks.js:95 +#.TRANS: Release time is the time taken for the level to decay from the sustain level to zero after the key is released. +msgid "release" +msgstr "lançar" -#: js/musicutils.js:741 -#: js/synthutils.js:74 -#.TRANS: musical instrument -msgid "clarinet" -msgstr "Clarineta" +#: js/blocks/WidgetBlocks.js:113 +msgid "Attack value should be from 0 to 100." +msgstr "O valor de volume deve ser de 0 a 100." -#: js/musicutils.js:742 -#: js/synthutils.js:76 -#.TRANS: musical instrument -msgid "saxophone" -msgstr "saxofone" +#: js/blocks/WidgetBlocks.js:116 +msgid "Decay value should be from 0 to 100." +msgstr "O valor de decaimento deve ser de 0 a 100." -#: js/musicutils.js:743 -#: js/synthutils.js:78 -#.TRANS: musical instrument -msgid "tuba" -msgstr "tuba" +#: js/blocks/WidgetBlocks.js:119 +msgid "Sustain value should be from 0 to 100." +msgstr "O valor da sustentação deve ser de 0 a 100." -#: js/musicutils.js:744 -#: js/synthutils.js:80 -#.TRANS: musical instrument -msgid "trumpet" -msgstr "trumpete" +#: js/blocks/WidgetBlocks.js:122 +msgid "Release value should be from 0-100." +msgstr "O valor de lançamento deve ser de 0 a 100." -#: js/musicutils.js:745 -#: js/synthutils.js:82 -#.TRANS: musical instrument -msgid "oboe" -msgstr "" +#: js/blocks/WidgetBlocks.js:140 +msgid "You are adding multiple envelope blocks." +msgstr "Você está adicionando vários blocos de envelope." -#: js/musicutils.js:746 -#: js/synthutils.js:84 -#.TRANS: musical instrument -msgid "trombone" -msgstr "" +#: js/blocks/WidgetBlocks.js:171 +#.TRANS: a filter removes some unwanted components from a signal +msgid "filter" +msgstr "filtrar" -#: js/musicutils.js:747 -#: js/synthutils.js:100 -#.TRANS: polytone synthesizer -msgid "electronic synth" -msgstr "sintetizador eletrônico" +#: js/blocks/WidgetBlocks.js:181 +#: js/widgets/timbre.js:1818 +#.TRANS: rolloff is the steepness of a change in frequency. +msgid "rolloff" +msgstr "para fora" -#: js/musicutils.js:748 -#: js/synthutils.js:102 -#.TRANS: simple monotone synthesizer -msgid "simple 1" -msgstr "simples 1" +#: js/blocks/WidgetBlocks.js:213 +#.TRANS: rolloff is the steepness of a change in frequency. +msgid "Rolloff value should be either -12, -24, -48, or -96 decibels/octave." +msgstr "O valor de referência deve ser -12, -24, -48 ou -96 decibéis / oitava." -#: js/musicutils.js:749 -msgid "simple 2" -msgstr "simples 2" +#: js/blocks/WidgetBlocks.js:252 +msgid "The Temperament tool is used to define custom tuning." +msgstr "A ferramenta Temperamento é usada para definir uma afinação personalizada." -#: js/musicutils.js:750 -msgid "simple 3" -msgstr "simples 3" +#: js/blocks/WidgetBlocks.js:332 +#: js/blocks/WidgetBlocks.js:1573 +#: js/widgets/sampler.js:547 +msgid "Upload a sample and adjust its pitch center." +msgstr "" -#: js/musicutils.js:751 -msgid "simple 4" -msgstr "simples 4" +#: js/blocks/WidgetBlocks.js:339 +#.TRANS: the speed at music is should be played. +msgid "sampler" +msgstr "" -#: js/musicutils.js:753 -#: js/synthutils.js:49 -#.TRANS: brown noise synthesizer -msgid "brown noise" -msgstr "ruído marrom" +#: js/blocks/WidgetBlocks.js:517 +msgid "The Meter block opens a tool to select strong beats for the meter." +msgstr "" -#: js/musicutils.js:754 -#: js/synthutils.js:51 -#.TRANS: pink noise synthesizer -msgid "pink noise" -msgstr "ruído rosa" +#: js/blocks/WidgetBlocks.js:573 +msgid "The oscilloscope block opens a tool to visualize waveforms." +msgstr "" -#: js/musicutils.js:756 -#: js/synthutils.js:127 -#: js/rhythmruler.js:1670 -#: js/rhythmruler.js:1928 -#.TRANS: musical instrument -msgid "snare drum" -msgstr "tarola" +#: js/blocks/WidgetBlocks.js:578 +msgid "oscilloscope" +msgstr "" -#: js/musicutils.js:757 -#: js/synthutils.js:129 -#.TRANS: musical instrument -msgid "kick drum" -msgstr "bumbo" +#: js/blocks/WidgetBlocks.js:645 +msgid "The Custom mode block opens a tool to explore musical mode (the spacing of the notes in a scale)." +msgstr "O bloco do modo Personalizado abre uma ferramenta para explorar o modo musical (o espaçamento das notas em uma escala)." -#: js/musicutils.js:758 -#: js/synthutils.js:131 -#.TRANS: musical instrument -msgid "tom tom" -msgstr "tom tom" +#: js/blocks/WidgetBlocks.js:651 +#.TRANS: musical mode is the pattern of half-steps in an octave, e.g., Major or Minor modes +msgid "custom mode" +msgstr "modo personalizado" -#: js/musicutils.js:759 -#: js/synthutils.js:133 -#.TRANS: musical instrument -msgid "floor tom" -msgstr "tom baixo" +#: js/blocks/WidgetBlocks.js:700 +msgid "The Tempo block opens a metronome to visualize the beat." +msgstr "O bloco Tempo abre um metrônomo para visualizar a batida." -#: js/musicutils.js:760 -#: js/synthutils.js:135 -#.TRANS: musical instrument -msgid "bass drum" +#: js/blocks/WidgetBlocks.js:762 +msgid "The Arpeggio Widget is used to compose chord sequences." msgstr "" -#: js/musicutils.js:761 -#: js/synthutils.js:137 -#.TRANS: a drum made from an inverted cup -msgid "cup drum" -msgstr "tambor de taça" +#: js/blocks/WidgetBlocks.js:837 +msgid "The Pitch drum matrix is used to map pitches to drum sounds." +msgstr "A matriz do Tom da bateria é usada para mapear tons dos sons da bateria." -#: js/musicutils.js:762 -#: js/synthutils.js:139 -#.TRANS: musical instrument -msgid "darbuka drum" -msgstr "tambor de darbuka" +#: js/blocks/WidgetBlocks.js:842 +#.TRANS: makes a mapping between pitches and drum sounds +msgid "pitch-drum mapper" +msgstr "mapa do tom de bateria" -#: js/musicutils.js:763 -#: js/synthutils.js:143 -#.TRANS: musical instrument -msgid "hi hat" -msgstr "hi hat" +#: js/blocks/WidgetBlocks.js:891 +msgid "You must have at least one pitch block and one drum block in the matrix." +msgstr "Você deve ter pelo menos um bloco de tom e um bloco de bateria na matriz." -#: js/musicutils.js:764 -#: js/synthutils.js:145 -#.TRANS: a small metal bell -msgid "ride bell" -msgstr "pequeno sino" +#: js/blocks/WidgetBlocks.js:920 +msgid "The Pitch slider tool to is used to generate pitches at selected frequencies." +msgstr "A ferramenta de controle deslizante do Tom é usada para gerar tons em freqüências selecionadas." -#: js/musicutils.js:765 -#: js/synthutils.js:147 -#.TRANS: musical instrument -msgid "cow bell" -msgstr "sino de vaca" +#: js/blocks/WidgetBlocks.js:925 +#.TRANS: widget to generate pitches using a slider +msgid "pitch slider" +msgstr "medir tom do slider" -#: js/musicutils.js:766 -msgid "japanese drum" +#: js/blocks/WidgetBlocks.js:977 +msgid "chromatic keyboard" msgstr "" -#: js/musicutils.js:767 -#: js/synthutils.js:153 -#.TRANS: musical instrument -msgid "japanese bell" -msgstr "" +#: js/blocks/WidgetBlocks.js:1011 +#: js/blocks/WidgetBlocks.js:1077 +#.TRANS: widget to generate pitches using a slider +msgid "music keyboard" +msgstr "teclado de música" -#: js/musicutils.js:768 -#: js/synthutils.js:149 -#.TRANS: musical instrument -msgid "triangle bell" -msgstr "sino triângular" +#: js/blocks/WidgetBlocks.js:1062 +#: js/blocks/WidgetBlocks.js:1069 +msgid "The Music keyboard block opens a piano keyboard that can be used to create notes." +msgstr "O bloco Teclado abre um teclado de piano que pode ser usado para criar notas." -#: js/musicutils.js:769 -#: js/synthutils.js:151 -#.TRANS: musical instrument -msgid "finger cymbals" -msgstr "estalar de dedos" +#: js/blocks/WidgetBlocks.js:1128 +msgid "The Pitch staircase tool to is used to generate pitches from a given ratio." +msgstr "A ferramenta escada do Tom é usada para gerar tom a partir de uma determinada taxa." -#: js/musicutils.js:770 -#: js/synthutils.js:155 -#.TRANS: a musically tuned set of bells -msgid "chime" -msgstr "carrilhão" +#: js/blocks/WidgetBlocks.js:1135 +#.TRANS: generate a progressive sequence of pitches +msgid "pitch staircase" +msgstr "medir tom da escala" -#: js/musicutils.js:771 -#: js/synthutils.js:157 -#.TRANS: a musical instrument -msgid "gong" -msgstr "gong" +#: js/blocks/WidgetBlocks.js:1222 +msgid "The Rhythm Maker block opens a tool to create drum machines." +msgstr "O bloco Criador de Ritmo abre uma ferramenta para criar baterias eletrônicas" -#: js/musicutils.js:772 -#: js/synthutils.js:159 -#.TRANS: sound effect -msgid "clang" -msgstr "clang" +#: js/blocks/WidgetBlocks.js:1291 +msgid "G major scale" +msgstr "escala G maior" -#: js/musicutils.js:773 -#: js/synthutils.js:161 -#.TRANS: sound effect -msgid "crash" -msgstr "bater" +#: js/blocks/WidgetBlocks.js:1326 +msgid "C major scale" +msgstr "escala C maior" -#: js/musicutils.js:774 -#: js/synthutils.js:163 -#.TRANS: sound effect -msgid "bottle" -msgstr "garrafa" +#: js/blocks/WidgetBlocks.js:1366 +msgid "The Phrase Maker block opens a tool to create musical phrases." +msgstr "O bloco Criar Frases abre uma ferramenta para criar frases musicais." -#: js/musicutils.js:775 -#: js/synthutils.js:165 -#.TRANS: sound effect -msgid "clap" -msgstr "palmas" +#: js/blocks/WidgetBlocks.js:1373 +#.TRANS: assigns pitch to a sequence of beats to generate a melody +msgid "phrase maker" +msgstr "criador de frase" -#: js/musicutils.js:776 -#: js/synthutils.js:167 -#.TRANS: sound effect -msgid "slap" -msgstr "tapa" +#: js/blocks/WidgetBlocks.js:1444 +msgid "You must have at least one pitch block and one rhythm block in the matrix." +msgstr "Você deve ter pelo menos um bloco de tom e um bloco de ritmo na matriz." -#: js/musicutils.js:777 -#: js/synthutils.js:169 -#.TRANS: sound effect -msgid "splash" -msgstr "splash" +#: js/blocks/WidgetBlocks.js:1503 +msgid "The Status block opens a tool for inspecting the status of Music Blocks as it is running." +msgstr "O bloco Status abre uma ferramenta para inspecionar o status do Music Blocks enquanto ele está sendo executado." -#: js/musicutils.js:778 -#: js/synthutils.js:171 -#.TRANS: sound effect -msgid "bubbles" -msgstr "bolhas" +#: js/blocks/WidgetBlocks.js:1580 +#.TRANS: AI-generated music +msgid "aimusic" +msgstr "" -#: js/musicutils.js:779 -#: js/synthutils.js:173 -#.TRANS: sound effect -msgid "raindrop" +#: js/turtleactions/MeterActions.js:101 +#: js/turtleactions/MeterActions.js:139 +msgid "beats per minute must be greater than" msgstr "" -#: js/musicutils.js:780 -#: js/synthutils.js:175 -#.TRANS: animal sound effect -msgid "cat" -msgstr "gato" +#: js/turtleactions/MeterActions.js:111 +#: js/turtleactions/MeterActions.js:149 +msgid "maximum" +msgstr "" -#: js/musicutils.js:781 -#: js/synthutils.js:177 -#.TRANS: animal sound effect -msgid "cricket" -msgstr "grilo" +#: js/turtleactions/MeterActions.js:117 +#: js/turtleactions/MeterActions.js:155 +msgid "beats per minute is" +msgstr "" -#: js/musicutils.js:782 -#: js/synthutils.js:179 -#.TRANS: animal sound effect -msgid "dog" -msgstr "cachorro" +#: js/turtleactions/DictActions.js:75 +#: js/turtleactions/DictActions.js:142 +#: js/turtleactions/DictActions.js:172 +msgid "font" +msgstr "" -#: js/musicutils.js:784 -#: js/synthutils.js:86 -#.TRANS: musical instrument -msgid "banjo" -msgstr "banjo" +#: js/turtleactions/DictActions.js:255 +msgid "Dictionary with this name does not exist" +msgstr "" -#: js/musicutils.js:785 -#: js/synthutils.js:88 -#.TRANS: musical instrument -msgid "koto" -msgstr "koto" +#: js/turtleactions/DictActions.js:259 +msgid "Key with this name does not exist in " +msgstr "" -#: js/musicutils.js:786 -#: js/synthutils.js:90 -#.TRANS: musical instrument -msgid "dulcimer" -msgstr "dulcimer" +#: js/turtleactions/DrumActions.js:227 +msgid "Noise Block: Did you mean to use a Note block?" +msgstr "Bloco de Ruído: Você quis usar um bloco de Notas?" -#: js/musicutils.js:787 -#: js/synthutils.js:92 -#.TRANS: musical instrument -msgid "electric guitar" -msgstr "Guitarra elétrica" +#: js/turtleactions/IntervalsActions.js:113 +msgid "one" +msgstr "" -#: js/musicutils.js:788 -#: js/synthutils.js:94 -#.TRANS: musical instrument -msgid "bassoon" +#: js/turtleactions/IntervalsActions.js:113 +msgid "two" msgstr "" -#: js/musicutils.js:789 -#: js/synthutils.js:96 -#.TRANS: musical instrument -msgid "celeste" +#: js/turtleactions/IntervalsActions.js:113 +msgid "three" msgstr "" -#: js/musicutils.js:791 -#: js/musicutils.js:1123 -#: js/musicutils.js:1131 -#: js/temperament.js:650 -#.TRANS: musical temperament -msgid "equal" -msgstr "igual" +#: js/turtleactions/IntervalsActions.js:113 +msgid "four" +msgstr "" -#: js/musicutils.js:793 -#: js/musicutils.js:1125 -#: js/musicutils.js:1133 -#.TRANS: musical temperament -msgid "Pythagorean" -msgstr "Pitagórico" +#: js/turtleactions/IntervalsActions.js:113 +msgid "five" +msgstr "" -#: js/musicutils.js:795 -#: js/musicutils.js:1124 -#: js/musicutils.js:1132 -#.TRANS: musical temperament -msgid "just intonation" -msgstr "apenas entonação" +#: js/turtleactions/IntervalsActions.js:113 +msgid "six" +msgstr "" -#: js/musicutils.js:797 -#: js/musicutils.js:1126 -#: js/musicutils.js:1127 -#: js/musicutils.js:1134 -#: js/musicutils.js:1135 -#.TRANS: musical temperament -msgid "meantone" -msgstr "mesotônico" +#: js/turtleactions/IntervalsActions.js:113 +msgid "seven" +msgstr "" -#: js/musicutils.js:814 -msgid "major 7th" +#: js/turtleactions/IntervalsActions.js:113 +msgid "eight" msgstr "" -#: js/musicutils.js:815 -msgid "minor 7th" +#: js/turtleactions/IntervalsActions.js:113 +msgid "nine" msgstr "" -#: js/musicutils.js:816 -msgid "dominant 7th" +#: js/turtleactions/IntervalsActions.js:119 +msgid "a" msgstr "" -#: js/musicutils.js:817 -msgid "minor-major 7th" +#: js/turtleactions/IntervalsActions.js:120 +msgid "below" msgstr "" -#: js/musicutils.js:818 -msgid "fully-diminished 7th" +#: js/turtleactions/IntervalsActions.js:124 +msgid "above" msgstr "" -#: js/musicutils.js:819 -msgid "half-diminished 7th" +#: js/turtleactions/IntervalsActions.js:131 +msgid "plus" msgstr "" -#: js/musicutils.js:4379 -#: js/musicutils.js:4416 -msgid "current" -msgstr "atual" +#: js/turtleactions/IntervalsActions.js:139 +msgid " below" +msgstr "" -#: js/musicutils.js:4382 -#: js/musicutils.js:4407 -msgid "next" -msgstr "próximo" +#: js/turtleactions/IntervalsActions.js:257 +msgid "Adding missing pitch number 0." +msgstr "Adicionando o número de tom ausente 0." -#: js/musicutils.js:4385 -#: js/musicutils.js:4412 -msgid "previous" -msgstr "anterior" +#: js/turtleactions/IntervalsActions.js:265 +msgid "Ignoring pitch numbers less than zero or greater than eleven." +msgstr "Ignorando números de tom menores que zero ou maiores que onze." -#: js/synthutils.js:104 -#.TRANS: simple monotone synthesizer -msgid "simple-2" -msgstr "simples-2" +#: js/turtleactions/IntervalsActions.js:271 +msgid "Ignoring duplicate pitch numbers." +msgstr "Ignorando números de tom duplicados." -#: js/synthutils.js:106 -#.TRANS: simple monotone synthesizer -msgid "simple-3" -msgstr "simples-3" +#: js/turtleactions/ToneActions.js:134 +msgid "Vibrato intensity must be between 1 and 100." +msgstr "A intensidade do vibrato deve estar entre 1 e 100." -#: js/synthutils.js:108 -#.TRANS: simple monotone synthesizer -msgid "simple-4" -msgstr "simples-4" +#: js/turtleactions/ToneActions.js:139 +msgid "Vibrato rate must be greater than 0." +msgstr "A taxa de vibrato deve ser maior que 0." -#: js/synthutils.js:141 -#.TRANS: musical instrument -msgid "taiko" -msgstr "" +#: js/turtleactions/ToneActions.js:192 +#: js/turtleactions/ToneActions.js:265 +#.TRANS: Depth is the intesity of the tremolo or chorus effect. +msgid "Depth is out of range." +msgstr "A profundidade está fora do limite." + +#: js/turtleactions/ToneActions.js:301 +msgid "Distortion must be from 0 to 100." +msgstr "A distorção deve ser de 0 a 100." + +#: js/turtleactions/ToneActions.js:332 +#.TRANS: partials components in a harmonic series +msgid "Partial must be greater than or equal to 0." +msgstr "Parcial deve ser maior ou igual a 0." + +#: js/turtleactions/ToneActions.js:378 +#: js/turtleactions/ToneActions.js:417 +#: js/turtleactions/ToneActions.js:456 +#: js/widgets/timbre.js:782 +msgid "Unable to use synth due to existing oscillator" +msgstr "Não é possível usar o sintetizador devido ao oscilador existente" -#: js/modewidget.js:86 -#: js/modewidget.js:88 -#: js/modewidget.js:642 -#: js/modewidget.js:644 -#: js/modewidget.js:712 -#: js/modewidget.js:714 -#: js/temperament.js:2078 -#: js/rhythmruler.js:189 -#: js/rhythmruler.js:1410 -#: js/rhythmruler.js:1412 -#: js/rhythmruler.js:1435 -#: js/rhythmruler.js:1437 -#: js/meterwidget.js:89 -#: js/meterwidget.js:91 +#: js/turtleactions/ToneActions.js:388 +#: js/turtleactions/ToneActions.js:427 +msgid "The input cannot be negative." +msgstr "A entrada não pode ser negativa." + +#: js/widgets/modewidget.js:86 +#: js/widgets/modewidget.js:88 +#: js/widgets/modewidget.js:642 +#: js/widgets/modewidget.js:644 +#: js/widgets/modewidget.js:712 +#: js/widgets/modewidget.js:714 +#: js/widgets/meterwidget.js:194 +#: js/widgets/meterwidget.js:196 +#: js/widgets/temperament.js:2236 +#: js/widgets/rhythmruler.js:457 +#: js/widgets/rhythmruler.js:1790 +#: js/widgets/rhythmruler.js:1792 +#: js/widgets/rhythmruler.js:1816 +#: js/widgets/rhythmruler.js:1818 msgid "Play all" msgstr "Executar tudo" -#: js/modewidget.js:115 -#: js/pitchstaircase.js:641 -#: js/phrasemaker.js:339 -#: js/pitchdrummatrix.js:94 -#: js/pitchslider.js:125 -#: js/temperament.js:2083 -#: js/musickeyboard.js:530 -#: js/timbre.js:756 -#: js/meterwidget.js:124 -#: js/arpeggio.js:103 +#: js/widgets/modewidget.js:115 +#: js/widgets/meterwidget.js:229 +#: js/widgets/pitchdrummatrix.js:166 +#: js/widgets/pitchslider.js:125 +#: js/widgets/pitchstaircase.js:641 +#: js/widgets/temperament.js:2244 +#: js/widgets/timbre.js:756 +#: js/widgets/arpeggio.js:103 +#: js/widgets/musickeyboard.js:688 +#: js/widgets/phrasemaker.js:550 msgid "Save" msgstr "Salvar" -#: js/modewidget.js:121 -#: js/pitchstaircase.js:686 -#: js/phrasemaker.js:356 -#: js/pitchdrummatrix.js:109 -#: js/musickeyboard.js:534 -#: js/rhythmruler.js:269 -#: js/arpeggio.js:118 +#: js/widgets/modewidget.js:121 +#: js/widgets/pitchdrummatrix.js:181 +#: js/widgets/pitchstaircase.js:686 +#: js/widgets/arpeggio.js:118 +#: js/widgets/musickeyboard.js:696 +#: js/widgets/phrasemaker.js:567 +#: js/widgets/rhythmruler.js:601 #.TRANS: clear all subdivisions from the ruler. msgid "Clear" msgstr "Limpar" -#: js/modewidget.js:127 +#: js/widgets/modewidget.js:127 msgid "Rotate counter clockwise" msgstr "Rodar no sentido anti-horário" -#: js/modewidget.js:133 +#: js/widgets/modewidget.js:133 msgid "Rotate clockwise" msgstr "Rodar no sentido horário" -#: js/modewidget.js:139 +#: js/widgets/modewidget.js:139 msgid "Invert" msgstr "Inverter" -#: js/modewidget.js:145 -#: js/pitchstaircase.js:678 -#: js/rhythmruler.js:258 -#: js/timbre.js:963 +#: js/widgets/modewidget.js:145 +#: js/widgets/pitchstaircase.js:678 +#: js/widgets/timbre.js:963 +#: js/widgets/rhythmruler.js:578 msgid "Undo" msgstr "Desfazer" -#: js/modewidget.js:163 +#: js/widgets/modewidget.js:163 #.TRANS: A circle of notes represents the musical mode. msgid "Click in the circle to select notes for the mode." msgstr "Clique no círculo para selecionar notas para o modo." -#: js/modewidget.js:1017 -#: js/pitchstaircase.js:580 -#: js/phrasemaker.js:4855 -#: js/temperament.js:1754 -#: js/rhythmruler.js:1865 -#: js/rhythmruler.js:2081 -#: js/tempo.js:414 +#: js/widgets/modewidget.js:1017 +#: js/widgets/pitchstaircase.js:580 +#: js/widgets/temperament.js:1929 +#: js/widgets/tempo.js:414 +#: js/widgets/phrasemaker.js:5356 +#: js/widgets/rhythmruler.js:2254 +#: js/widgets/rhythmruler.js:2472 msgid "New action block generated!" msgstr "" -#: js/oscilloscope.js:79 -msgid "Zoom In" +#: js/widgets/meterwidget.js:275 +msgid "Reset" msgstr "" -#: js/oscilloscope.js:88 -msgid "Zoom Out" +#: js/widgets/meterwidget.js:301 +msgid "Click in the circle to select strong beats for the meter." msgstr "" -#: js/pitchstaircase.js:624 -msgid "Play chord" -msgstr "Tocar acorde" - -#: js/pitchstaircase.js:632 -msgid "Play scale" -msgstr "Executar escala" - -#: js/pitchstaircase.js:696 -msgid "Click on a note to create a new step." -msgstr "Clique em uma nota para criar um novo passo." - -#: js/phrasemaker.js:363 -msgid "Export" -msgstr "Exportar" - -#: js/phrasemaker.js:370 -msgid "Sort" -msgstr "Ordenar" - -#: js/phrasemaker.js:373 -#: js/musickeyboard.js:559 -msgid "Add note" +#: js/widgets/oscilloscope.js:79 +msgid "Zoom In" msgstr "" -#: js/phrasemaker.js:764 -msgid "Click on the table to add notes." -msgstr "Clique na mesa para adicionar notas." - -#: js/phrasemaker.js:2414 -#: js/phrasemaker.js:2543 -msgid "tuplet value" -msgstr "valor de tuplet" +#: js/widgets/oscilloscope.js:88 +msgid "Zoom Out" +msgstr "" -#: js/pitchdrummatrix.js:270 -#: js/pitchdrummatrix.js:639 +#: js/widgets/pitchdrummatrix.js:356 +#: js/widgets/pitchdrummatrix.js:752 msgid "Click in the grid to map notes to drums." msgstr "Clique na grade para mapear notas para a bateria" -#: js/pitchslider.js:103 +#: js/widgets/pitchslider.js:103 msgid "Move up" msgstr "Mover para cima" -#: js/pitchslider.js:114 +#: js/widgets/pitchslider.js:114 msgid "Move down" msgstr "Mover para baixo" -#: js/pitchslider.js:136 +#: js/widgets/pitchslider.js:136 msgid "Click on the slider to create a note block." msgstr "" -#: js/temperament.js:215 +#: js/widgets/pitchstaircase.js:624 +msgid "Play chord" +msgstr "Tocar acorde" + +#: js/widgets/pitchstaircase.js:632 +msgid "Play scale" +msgstr "Executar escala" + +#: js/widgets/pitchstaircase.js:696 +msgid "Click on a note to create a new step." +msgstr "Clique em uma nota para criar um novo passo." + +#: js/widgets/temperament.js:321 msgid "back to 2:1 octave space" msgstr "" -#: js/temperament.js:323 +#: js/widgets/temperament.js:447 msgid "edit" msgstr "" -#: js/temperament.js:330 -#: js/temperament.js:332 -#: js/temperament.js:1336 -#: js/temperament.js:1338 +#: js/widgets/temperament.js:454 +#: js/widgets/temperament.js:456 +#: js/widgets/temperament.js:1493 +#: js/widgets/temperament.js:1495 msgid "close" msgstr "fechar" -#: js/temperament.js:423 -#: js/temperament.js:736 -#: js/temperament.js:743 -#: js/temperament.js:845 -#: js/temperament.js:935 -#: js/temperament.js:942 -#: js/temperament.js:1015 -#: js/temperament.js:1284 -#: js/temperament.js:1354 -#: js/temperament.js:1430 +#: js/widgets/temperament.js:552 +#: js/widgets/temperament.js:877 +#: js/widgets/temperament.js:884 +#: js/widgets/temperament.js:986 +#: js/widgets/temperament.js:1080 +#: js/widgets/temperament.js:1087 +#: js/widgets/temperament.js:1160 +#: js/widgets/temperament.js:1433 +#: js/widgets/temperament.js:1511 +#: js/widgets/temperament.js:1596 msgid "done" msgstr "" -#: js/temperament.js:477 -#: js/temperament.js:482 -#: js/temperament.js:918 +#: js/widgets/temperament.js:610 +#: js/widgets/temperament.js:615 +#: js/widgets/temperament.js:1063 msgid "ratio" msgstr "" -#: js/temperament.js:483 +#: js/widgets/temperament.js:616 msgid "interval" msgstr "intervalo" -#: js/temperament.js:611 +#: js/widgets/temperament.js:744 msgid "non scalar" msgstr "" -#: js/temperament.js:650 +#: js/widgets/temperament.js:787 msgid "ratios" msgstr "" -#: js/temperament.js:650 +#: js/widgets/temperament.js:787 msgid "arbitrary" msgstr "" -#: js/temperament.js:719 +#: js/widgets/temperament.js:860 msgid "number of divisions" msgstr "" -#: js/temperament.js:741 -#: js/temperament.js:858 -#: js/temperament.js:940 -#: js/temperament.js:1033 +#: js/widgets/temperament.js:882 +#: js/widgets/temperament.js:999 +#: js/widgets/temperament.js:1085 +#: js/widgets/temperament.js:1178 msgid "preview" msgstr "" -#: js/temperament.js:788 +#: js/widgets/temperament.js:929 msgid "The Number of divisions is too large." msgstr "" -#: js/temperament.js:921 +#: js/widgets/temperament.js:1066 msgid "recursion" msgstr "" -#: js/temperament.js:1450 +#: js/widgets/temperament.js:1616 msgid "The octave ratio has changed. This changes temperament significantly." msgstr "" -#: js/temperament.js:2087 +#: js/widgets/temperament.js:2248 msgid "Table" msgstr "Mesa" -#: js/temperament.js:2185 +#: js/widgets/temperament.js:2356 msgid "Add pitches" msgstr "Adicionar tons" -#: js/musickeyboard.js:570 -msgid "Metronome" -msgstr "" - -#: js/musickeyboard.js:1296 -#: plugins/rodi.rtp:193 -msgid "duration" -msgstr "duração" - -#: js/musickeyboard.js:2840 -msgid "New action blocks generated!" -msgstr "" - -#: js/musickeyboard.js:2841 -msgid "New action block generated" -msgstr "" - -#: js/musickeyboard.js:2984 -#: js/musickeyboard.js:2992 -msgid "MIDI device present." -msgstr "" - -#: js/musickeyboard.js:2995 -msgid "No MIDI device found." -msgstr "" - -#: js/musickeyboard.js:3000 -msgid "Failed to get MIDI access in browser." -msgstr "" - -#: js/rhythmruler.js:202 -msgid "Save rhythms" -msgstr "Salvar ritmos" - -#: js/rhythmruler.js:222 -msgid "Save drum machine" -msgstr "Salvar bateria eletrônica" - -#: js/rhythmruler.js:263 -#.TRANS: user can tap out a rhythm by clicking on a ruler. -msgid "Tap a rhythm" -msgstr "Pressiona um ritmo" - -#: js/rhythmruler.js:342 -#: js/rhythmruler.js:344 -#: js/rhythmruler.js:1481 -#: js/rhythmruler.js:1483 -#: js/sampler.js:110 -#: js/sampler.js:112 -#: js/tempo.js:78 -#: js/tempo.js:97 -#: js/tempo.js:99 +#: js/widgets/tempo.js:78 +#: js/widgets/tempo.js:97 +#: js/widgets/tempo.js:99 +#: js/widgets/aiwidget.js:134 +#: js/widgets/aiwidget.js:136 +#: js/widgets/rhythmruler.js:681 +#: js/widgets/rhythmruler.js:683 +#: js/widgets/rhythmruler.js:1864 +#: js/widgets/rhythmruler.js:1866 +#: js/widgets/sampler.js:180 +#: js/widgets/sampler.js:182 msgid "Pause" msgstr "Pausar" -#: js/rhythmruler.js:478 -msgid "Click on the ruler to divide it." -msgstr "Clique na régua para dividir." - -#: js/rhythmruler.js:603 -#: js/rhythmruler.js:605 -#: js/rhythmruler.js:804 -#: js/rhythmruler.js:806 -#: js/rhythmruler.js:1386 -#: js/rhythmruler.js:1388 -msgid "tap a rhythm" -msgstr "pressionar um ritmo" - -#: js/rhythmruler.js:1084 -msgid "Maximum value of 256 has been exceeded." -msgstr "O valr máximo 256 foi ultrapassado." - -#: js/sampler.js:137 -msgid "Warning: Sample is bigger than 1MB." -msgstr "" - -#: js/sampler.js:142 -msgid "Upload failed: Sample is not a .wav file." -msgstr "" - -#: js/sampler.js:164 -msgid "A new sample block was generated." -msgstr "" - -#: js/sampler.js:255 -msgid "Upload sample" -msgstr "" - -#: js/sampler.js:306 -msgid "Save sample" -msgstr "" - -#: js/sampler.js:697 -#.TRANS: The reference tone is a sound used for comparison. -msgid "reference tone" -msgstr "" - -#: js/tempo.js:113 +#: js/widgets/tempo.js:113 msgid "Save tempo" msgstr "" -#: js/tempo.js:144 +#: js/widgets/tempo.js:144 msgid "speed up" msgstr "acelerar" -#: js/tempo.js:150 +#: js/widgets/tempo.js:150 msgid "slow down" msgstr "diminuir" -#: js/tempo.js:194 +#: js/widgets/tempo.js:194 msgid "Adjust the tempo with the buttons." msgstr "Ajustar o tempo com os botões." -#: js/tempo.js:261 +#: js/widgets/tempo.js:261 msgid "Please enter a number between 30 and 1000" msgstr "" -#: js/tempo.js:268 -#: js/tempo.js:271 +#: js/widgets/tempo.js:268 +#: js/widgets/tempo.js:271 msgid "The beats per minute must be between 30 and 1000." msgstr "As batidas por minuto devem ser entre 30 e 1.000." -#: js/tempo.js:287 +#: js/widgets/tempo.js:287 msgid "The beats per minute must be below 1000." msgstr "" -#: js/tempo.js:303 +#: js/widgets/tempo.js:303 msgid "The beats per minute must be above 30" msgstr "" -#: js/timbre.js:766 +#: js/widgets/timbre.js:766 msgid "Synthesizer" msgstr "Sintetizador" -#: js/timbre.js:789 +#: js/widgets/timbre.js:789 msgid "Oscillator" msgstr "Oscilador" -#: js/timbre.js:840 +#: js/widgets/timbre.js:840 msgid "Envelope" msgstr "Envelope" -#: js/timbre.js:886 -#: js/GlobalTag.js:50 +#: js/widgets/timbre.js:886 +#: planet/js/GlobalTag.js:50 #.TRANS: On the Planet, we use labels to tag projects. msgid "Effects" msgstr "Efeitos" -#: js/timbre.js:904 +#: js/widgets/timbre.js:904 msgid "Filter" msgstr "Filtro" -#: js/timbre.js:946 +#: js/widgets/timbre.js:946 msgid "Add filter" msgstr "Adicionar filtro" -#: js/timbre.js:987 +#: js/widgets/timbre.js:987 msgid "Click on buttons to open the timbre design tools." msgstr "Clique nos botões para abrir as ferramentas de definição do timbre." -#: js/timbre.js:1273 +#: js/widgets/timbre.js:1273 msgid "harmonicity" msgstr "harmonicidade" -#: js/timbre.js:1340 -#: js/timbre.js:1406 +#: js/widgets/timbre.js:1340 +#: js/widgets/timbre.js:1406 msgid "modulation index" msgstr "índice de modulação" -#: js/timbre.js:1484 +#: js/widgets/timbre.js:1484 msgid "vibrato amount" msgstr "quantidade de vibrato" -#: js/timbre.js:1919 +#: js/widgets/timbre.js:1919 msgid "Filter already present." msgstr "" -#: js/timbre.js:2322 +#: js/widgets/timbre.js:2322 msgid "delay (MS)" msgstr "atraso (MS)" -#: js/timbre.js:2507 +#: js/widgets/timbre.js:2507 msgid "distortion amount" msgstr "quantidade de distorção" -#: js/meterwidget.js:170 -msgid "Reset" +#: js/widgets/aiwidget.js:180 +#: js/widgets/sampler.js:227 +msgid "Warning: Sample is bigger than 1MB." msgstr "" -#: js/meterwidget.js:196 -msgid "Click in the circle to select strong beats for the meter." +#: js/widgets/aiwidget.js:539 +msgid "New start block generated" +msgstr "" + +#: js/widgets/aiwidget.js:541 +msgid "MIDI loading. This may take some time depending upon the number of notes in the track" +msgstr "" + +#: js/widgets/aiwidget.js:551 +#: js/widgets/sampler.js:254 +msgid "Upload failed: Sample is not a .wav file." msgstr "" -#: js/arpeggio.js:239 +#: js/widgets/aiwidget.js:679 +#: js/widgets/sampler.js:432 +msgid "Save sample" +msgstr "" + +#: js/widgets/aiwidget.js:701 +msgid "AI Music" +msgstr "" + +#: js/widgets/arpeggio.js:239 msgid "Click in the grid to add steps to the arpeggio." msgstr "" -#: js/ProjectStorage.js:243 -msgid "anonymous" -msgstr "anônimo" +#: js/widgets/help.js:95 +#: js/widgets/help.js:125 +#: js/widgets/help.js:146 +#: js/widgets/help.js:158 +#: js/widgets/help.js:376 +#: js/widgets/help.js:391 +msgid "Take a tour" +msgstr "" -#: js/GlobalCard.js:68 -msgid "Share" -msgstr "Compartilhar" +#: js/widgets/musickeyboard.js:725 +#: js/widgets/phrasemaker.js:584 +msgid "Add note" +msgstr "" -#: js/GlobalCard.js:74 -msgid "Flags" -msgstr "Bandeiras" +#: js/widgets/musickeyboard.js:744 +msgid "Metronome" +msgstr "" -#: js/LocalCard.js:36 -msgid "View published project" -msgstr "Visualizar projeto publicado" +#: js/widgets/musickeyboard.js:1549 +#: plugins/rodi.rtp:193 +msgid "duration" +msgstr "duração" -#: js/LocalCard.js:42 -msgid "Publish project" -msgstr "Publicar projeto" +#: js/widgets/musickeyboard.js:3179 +msgid "New action blocks generated" +msgstr "" -#: js/LocalCard.js:51 -msgid "Edit project" -msgstr "Editar projeto" +#: js/widgets/musickeyboard.js:3180 +msgid "New action block generated" +msgstr "" + +#: js/widgets/musickeyboard.js:3365 +#: js/widgets/musickeyboard.js:3373 +msgid "MIDI device present." +msgstr "" + +#: js/widgets/musickeyboard.js:3376 +msgid "No MIDI device found." +msgstr "" + +#: js/widgets/musickeyboard.js:3386 +msgid "Failed to get MIDI access in browser." +msgstr "" + +#: js/widgets/phrasemaker.js:574 +msgid "Export" +msgstr "Exportar" + +#: js/widgets/phrasemaker.js:581 +msgid "Sort" +msgstr "Ordenar" + +#: js/widgets/phrasemaker.js:975 +msgid "Click on the table to add notes." +msgstr "Clique na mesa para adicionar notas." + +#: js/widgets/phrasemaker.js:2677 +#: js/widgets/phrasemaker.js:2819 +msgid "tuplet value" +msgstr "valor de tuplet" + +#: js/widgets/rhythmruler.js:486 +msgid "Save rhythms" +msgstr "Salvar ritmos" + +#: js/widgets/rhythmruler.js:512 +msgid "Save drum machine" +msgstr "Salvar bateria eletrônica" + +#: js/widgets/rhythmruler.js:589 +#.TRANS: user can tap out a rhythm by clicking on a ruler. +msgid "Tap a rhythm" +msgstr "Pressiona um ritmo" + +#: js/widgets/rhythmruler.js:817 +msgid "Click on the ruler to divide it." +msgstr "Clique na régua para dividir." + +#: js/widgets/rhythmruler.js:950 +#: js/widgets/rhythmruler.js:952 +#: js/widgets/rhythmruler.js:1152 +#: js/widgets/rhythmruler.js:1154 +#: js/widgets/rhythmruler.js:1765 +#: js/widgets/rhythmruler.js:1767 +msgid "tap a rhythm" +msgstr "pressionar um ritmo" + +#: js/widgets/rhythmruler.js:1459 +msgid "Maximum value of 256 has been exceeded." +msgstr "O valr máximo 256 foi ultrapassado." + +#: js/widgets/sampler.js:237 +msgid "Recording started..." +msgstr "" + +#: js/widgets/sampler.js:245 +msgid "Recording complete..." +msgstr "" + +#: js/widgets/sampler.js:283 +msgid "A new sample block was generated." +msgstr "" + +#: js/widgets/sampler.js:378 +msgid "Upload sample" +msgstr "" + +#: js/widgets/sampler.js:399 +msgid "Warning: Your sample cannot be loaded because it is >1MB." +msgstr "" -#: js/LocalCard.js:52 -msgid "Delete project" -msgstr "Excluir projeto" +#: js/widgets/sampler.js:448 +msgid "Toggle Mic" +msgstr "" -#: js/LocalCard.js:53 -msgid "Download project" -msgstr "Baixar projeto" +#: js/widgets/sampler.js:458 +msgid "Playback" +msgstr "" -#: js/LocalCard.js:55 -msgid "Duplicate project" -msgstr "Duplicar projeto" +#: js/widgets/sampler.js:979 +#.TRANS: The reference tone is a sound used for comparison. +msgid "reference tone" +msgstr "" -#: js/GlobalTag.js:28 +#: planet/js/GlobalTag.js:28 #.TRANS: On the Planet, we use labels to tag projects. msgid "All Projects" msgstr "Todos os projetos" -#: js/GlobalTag.js:30 -#: js/StringHelper.js:37 +#: planet/js/GlobalTag.js:30 +#: planet/js/StringHelper.js:37 #.TRANS: On the Planet, we use labels to tag projects. msgid "My Projects" msgstr "Meus projetos" -#: js/GlobalTag.js:32 +#: planet/js/GlobalTag.js:32 #.TRANS: On the Planet, we use labels to tag projects. msgid "Examples" msgstr "Exemplos" -#: js/GlobalTag.js:34 +#: planet/js/GlobalTag.js:34 #.TRANS: On the Planet, we use labels to tag projects. msgid "Music" msgstr "Música" -#: js/GlobalTag.js:36 +#: planet/js/GlobalTag.js:36 #.TRANS: On the Planet, we use labels to tag projects. msgid "Art" msgstr "Arte" -#: js/GlobalTag.js:38 +#: planet/js/GlobalTag.js:38 #.TRANS: On the Planet, we use labels to tag projects. msgid "Math" msgstr "Matemática" -#: js/GlobalTag.js:40 +#: planet/js/GlobalTag.js:40 #.TRANS: On the Planet, we use labels to tag projects. msgid "Interactive" msgstr "Interativo" -#: js/GlobalTag.js:42 +#: planet/js/GlobalTag.js:42 #.TRANS: On the Planet, we use labels to tag projects. msgid "Design" msgstr "Design" -#: js/GlobalTag.js:44 +#: planet/js/GlobalTag.js:44 #.TRANS: On the Planet, we use labels to tag projects. msgid "Game" msgstr "Jogo" -#: js/GlobalTag.js:46 +#: planet/js/GlobalTag.js:46 #.TRANS: On the Planet, we use labels to tag projects. msgid "Media" msgstr "Mídia" -#: js/GlobalTag.js:48 +#: planet/js/GlobalTag.js:48 #.TRANS: On the Planet, we use labels to tag projects. msgid "Sensors" msgstr "Sensores" -#: js/GlobalTag.js:52 +#: planet/js/GlobalTag.js:52 #.TRANS: On the Planet, we use labels to tag projects. msgid "Code Snippet" msgstr "" -#: js/helper.js:149 -#: js/StringHelper.js:49 -msgid "Show more tags" -msgstr "Mostrar mais etiquetas" +#: planet/js/LocalCard.js:36 +msgid "View published project" +msgstr "Visualizar projeto publicado" -#: js/helper.js:150 -msgid "Show fewer tags" -msgstr "Mostrar algumas etiquetas" +#: planet/js/LocalCard.js:42 +msgid "Publish project" +msgstr "Publicar projeto" + +#: planet/js/LocalCard.js:51 +msgid "Edit project" +msgstr "Editar projeto" + +#: planet/js/LocalCard.js:52 +msgid "Delete project" +msgstr "Excluir projeto" + +#: planet/js/LocalCard.js:53 +msgid "Download project" +msgstr "Baixar projeto" + +#: planet/js/LocalCard.js:55 +msgid "Duplicate project" +msgstr "Duplicar projeto" + +#: planet/js/ProjectStorage.js:243 +msgid "anonymous" +msgstr "anônimo" + +#: planet/js/SaveInterface.js:34 +msgid "Open in Music Blocks" +msgstr "Abrir no Music Blocks" + +#: planet/js/SaveInterface.js:35 +msgid "Open in Turtle Blocks" +msgstr "" + +#: planet/js/GlobalCard.js:68 +msgid "Share" +msgstr "Compartilhar" + +#: planet/js/GlobalCard.js:74 +msgid "Flags" +msgstr "Bandeiras" + +#: planet/js/GlobalPlanet.js:35 +msgid "No results found." +msgstr "Não foram encontrados resultados" + +#: planet/js/GlobalPlanet.js:51 +msgid "Remix of" +msgstr "Remixar de" -#: js/ProjectViewer.js:30 +#: planet/js/GlobalPlanet.js:509 +msgid "Cannot connect to server" +msgstr "Não foi possível conectar ao servidor" + +#: planet/js/ProjectViewer.js:30 msgid "Error: Report could not be submitted. Try again later." msgstr "Erro: o relatório não pode ser submetido. Tente mais tarde." -#: js/ProjectViewer.js:31 +#: planet/js/ProjectViewer.js:31 msgid "Thank you for reporting this project. A moderator will review the project shortly, to verify violation of the Sugar Labs Code of Conduct." msgstr "Obrigado por enviar este projeto. Um moderador irá realizar uma pequena revisão do projeto, para verificar se há violação do Código de Conduta do Sugar Labs." -#: js/ProjectViewer.js:32 -#: js/StringHelper.js:62 -#: js/StringHelper.js:64 -#: js/StringHelper.js:68 +#: planet/js/ProjectViewer.js:32 +#: planet/js/StringHelper.js:62 +#: planet/js/StringHelper.js:64 +#: planet/js/StringHelper.js:68 msgid "Report Project" msgstr "Enviar projeto" -#: js/ProjectViewer.js:33 -#: js/StringHelper.js:63 +#: planet/js/ProjectViewer.js:33 +#: planet/js/StringHelper.js:63 msgid "Project Reported" msgstr "Projeto enviado" -#: js/ProjectViewer.js:34 +#: planet/js/ProjectViewer.js:34 msgid "Report description required" msgstr "Descrição do relatório necessária" -#: js/ProjectViewer.js:35 +#: planet/js/ProjectViewer.js:35 msgid "Report description too long" msgstr "Descrição do relatório muito longa." -#: js/StringHelper.js:30 +#: planet/js/Publisher.js:30 +msgid "Feature unavailable - cannot connect to server. Reload Music Blocks to try again." +msgstr "Funcionalidade indisponível - não foi possível conectar ao servidor. Reinicie o Music Blocks para tentar novemente." + +#: planet/js/Publisher.js:220 +#: planet/js/Publisher.js:237 +msgid "This field is required" +msgstr "Este campo é necessário" + +#: planet/js/Publisher.js:227 +msgid "Title too long" +msgstr "Título muito longo" + +#: planet/js/Publisher.js:244 +msgid "Description too long" +msgstr "Descrição muito longa" + +#: planet/js/Publisher.js:341 +msgid "Server Error" +msgstr "Erro no servidor" + +#: planet/js/Publisher.js:341 +msgid "Try Again" +msgstr "Tentar novamente" + +#: planet/js/StringHelper.js:30 msgid "Planet" msgstr "Planeta" -#: js/StringHelper.js:31 +#: planet/js/StringHelper.js:31 msgid "Close Planet" msgstr "Fechar Planeta" -#: js/StringHelper.js:32 +#: planet/js/StringHelper.js:32 msgid "Open project from file" msgstr "Carregar arquivo de projeto" -#: js/StringHelper.js:34 +#: planet/js/StringHelper.js:34 msgid "Local" msgstr "Local" -#: js/StringHelper.js:35 +#: planet/js/StringHelper.js:35 msgid "Global" msgstr "Global" -#: js/StringHelper.js:36 +#: planet/js/StringHelper.js:36 msgid "Search for a project" msgstr "Buscar um projeto" -#: js/StringHelper.js:38 +#: planet/js/StringHelper.js:38 msgid "Publish Project" msgstr "Publicar projeto" -#: js/StringHelper.js:40 +#: planet/js/StringHelper.js:40 msgid "Tags (max 5)" msgstr "Etiquetas (max 5)" -#: js/StringHelper.js:41 -#: js/StringHelper.js:61 +#: planet/js/StringHelper.js:41 +#: planet/js/StringHelper.js:61 msgid "Description" msgstr "Descrição" -#: js/StringHelper.js:42 -#: js/StringHelper.js:67 +#: planet/js/StringHelper.js:42 +#: planet/js/StringHelper.js:67 msgid "Submit" msgstr "Submeter" -#: js/StringHelper.js:43 -#: js/StringHelper.js:47 +#: planet/js/StringHelper.js:43 +#: planet/js/StringHelper.js:47 msgid "Cancel" msgstr "Cancelar" -#: js/StringHelper.js:44 +#: planet/js/StringHelper.js:44 msgid "Delete \\"\\"?" msgstr "Excluir \\"\\"?" -#: js/StringHelper.js:45 +#: planet/js/StringHelper.js:45 msgid "Permanently delete project \\"\\"?" msgstr "Excluir permnentemente o projeto \\"\\"?" -#: js/StringHelper.js:48 +#: planet/js/StringHelper.js:48 msgid "Explore Projects" msgstr "Explorar projetos" -#: js/StringHelper.js:50 +#: planet/js/StringHelper.js:49 +#: planet/js/helper.js:149 +msgid "Show more tags" +msgstr "Mostrar mais etiquetas" + +#: planet/js/StringHelper.js:50 msgid "Most recent" msgstr "Mais recentes" -#: js/StringHelper.js:51 +#: planet/js/StringHelper.js:51 msgid "Most liked" msgstr "Mais curtidos" -#: js/StringHelper.js:52 +#: planet/js/StringHelper.js:52 msgid "Most downloaded" msgstr "Mais baixados" -#: js/StringHelper.js:53 +#: planet/js/StringHelper.js:53 msgid "A-Z" msgstr "A-Z" -#: js/StringHelper.js:54 +#: planet/js/StringHelper.js:54 msgid "Sort by" msgstr "Ordenar por" -#: js/StringHelper.js:55 +#: planet/js/StringHelper.js:55 msgid "Load More Projects" msgstr "Carregar mais projetos" -#: js/StringHelper.js:56 +#: planet/js/StringHelper.js:56 msgid "Last Updated" msgstr "Última atualização" -#: js/StringHelper.js:57 +#: planet/js/StringHelper.js:57 msgid "Creation Date" msgstr "Data de criação" -#: js/StringHelper.js:58 +#: planet/js/StringHelper.js:58 msgid "Number of Downloads:" msgstr "Número de Downloads:" -#: js/StringHelper.js:59 +#: planet/js/StringHelper.js:59 msgid "Number of Likes:" msgstr "Núumero de curtidas" -#: js/StringHelper.js:60 +#: planet/js/StringHelper.js:60 msgid "Tags:" msgstr "Etiquetas" -#: js/StringHelper.js:65 +#: planet/js/StringHelper.js:65 msgid "Report projects which violate the Sugar Labs Code of Conduct." msgstr "Avisar sobre projetos que violam o Código de Conduta do Sugar Labs." -#: js/StringHelper.js:66 +#: planet/js/StringHelper.js:66 msgid "Reason for reporting project" msgstr "Razão para enviar projeto" -#: js/StringHelper.js:70 +#: planet/js/StringHelper.js:70 msgid "Download as File" msgstr "Baixar com arquivo" -#: js/GlobalPlanet.js:35 -msgid "No results found." -msgstr "Não foram encontrados resultados" - -#: js/GlobalPlanet.js:51 -msgid "Remix of" -msgstr "Remixar de" - -#: js/GlobalPlanet.js:509 -msgid "Cannot connect to server" -msgstr "Não foi possível conectar ao servidor" - -#: js/Publisher.js:30 -msgid "Feature unavailable - cannot connect to server. Reload Music Blocks to try again." -msgstr "Funcionalidade indisponível - não foi possível conectar ao servidor. Reinicie o Music Blocks para tentar novemente." - -#: js/Publisher.js:218 -#: js/Publisher.js:235 -msgid "This field is required" -msgstr "Este campo é necessário" - -#: js/Publisher.js:225 -msgid "Title too long" -msgstr "Título muito longo" +#: planet/js/helper.js:150 +msgid "Show fewer tags" +msgstr "Mostrar algumas etiquetas" -#: js/Publisher.js:242 -msgid "Description too long" -msgstr "Descrição muito longa" +#: plugins/accelerometer.rtp:48 +msgid "motion x" +msgstr "movimento x" -#: js/Publisher.js:339 -msgid "Server Error" -msgstr "Erro no servidor" +#: plugins/accelerometer.rtp:56 +msgid "motion y" +msgstr "movimento y" -#: js/Publisher.js:339 -msgid "Try Again" -msgstr "Tentar novamente" +#: plugins/accelerometer.rtp:64 +msgid "motion z" +msgstr "movimento z" -#: js/SaveInterface.js:34 -msgid "Open in Music Blocks" -msgstr "Abrir no Music Blocks" +#: plugins/facebook.rtp:27 +msgid "publish" +msgstr "publicar" -#: js/SaveInterface.js:35 -msgid "Open in Turtle Blocks" -msgstr "" +#: plugins/maths.rtp:62 +msgid "power" +msgstr "poder" -#: plugins/weather.rtp:68 -#: plugins/weather.rtp:97 -msgid "Days ahead must be in the range of -1 to 5." -msgstr "Dias a frente devem estar entre -1 e 5" +#: plugins/maths.rtp:62 +msgid "base" +msgstr "base" -#: plugins/weather.rtp:122 -msgid "forecast" -msgstr "previsão" +#: plugins/maths.rtp:62 +msgid "exp" +msgstr "exp" -#: plugins/weather.rtp:123 -#: plugins/weather.rtp:137 -#: plugins/weather.rtp:150 -msgid "city" -msgstr "cidade" +#: plugins/maths.rtp:99 +msgid "floor" +msgstr "chão" -#: plugins/weather.rtp:124 -#: plugins/weather.rtp:138 -#: plugins/weather.rtp:151 -msgid "day" -msgstr "dia" +#: plugins/maths.rtp:104 +msgid "ceiling" +msgstr "teto" -#: plugins/weather.rtp:136 -msgid "high" -msgstr "alto" +#: plugins/maths.rtp:109 +msgid "to degrees" +msgstr "para graus" -#: plugins/weather.rtp:149 -msgid "low" -msgstr "baixo" +#: plugins/maths.rtp:114 +msgid "to radians" +msgstr "para radianos" #: plugins/nutrition.rtp:104 msgid "get calories" @@ -7760,45 +7757,6 @@ msgstr "biscoito" msgid "water" msgstr "água" -#: plugins/maths.rtp:62 -#: plugins/examples.rtp:93 -msgid "power" -msgstr "poder" - -#: plugins/maths.rtp:62 -#: plugins/examples.rtp:93 -msgid "base" -msgstr "base" - -#: plugins/maths.rtp:62 -#: plugins/examples.rtp:93 -msgid "exp" -msgstr "exp" - -#: plugins/maths.rtp:99 -#: plugins/examples.rtp:130 -msgid "floor" -msgstr "chão" - -#: plugins/maths.rtp:104 -#: plugins/examples.rtp:135 -msgid "ceiling" -msgstr "teto" - -#: plugins/maths.rtp:109 -#: plugins/examples.rtp:140 -msgid "to degrees" -msgstr "para graus" - -#: plugins/maths.rtp:114 -#: plugins/examples.rtp:145 -msgid "to radians" -msgstr "para radianos" - -#: plugins/facebook.rtp:27 -msgid "publish" -msgstr "publicar" - #: plugins/rodi.rtp:172 msgid "blink" msgstr "piscar" @@ -7827,17 +7785,68 @@ msgstr "luz infravermelha (direita)" msgid "move" msgstr "mover" -#: plugins/accelerometer.rtp:48 -msgid "motion x" -msgstr "movimento x" +#: plugins/weather.rtp:68 +#: plugins/weather.rtp:97 +msgid "Days ahead must be in the range of -1 to 5." +msgstr "Dias a frente devem estar entre -1 e 5" -#: plugins/accelerometer.rtp:56 -msgid "motion y" -msgstr "movimento y" +#: plugins/weather.rtp:122 +msgid "forecast" +msgstr "previsão" -#: plugins/accelerometer.rtp:64 -msgid "motion z" -msgstr "movimento z" +#: plugins/weather.rtp:123 +#: plugins/weather.rtp:137 +#: plugins/weather.rtp:150 +msgid "city" +msgstr "cidade" + +#: plugins/weather.rtp:124 +#: plugins/weather.rtp:138 +#: plugins/weather.rtp:151 +msgid "day" +msgstr "dia" + +#: plugins/weather.rtp:136 +msgid "high" +msgstr "alto" + +#: plugins/weather.rtp:149 +msgid "low" +msgstr "baixo" + +#~msgid ""Toggle Fullscreen" +#~msgstr ""Alternar tela cheia" + +#: js/toolbar.js:70 + +#: js/toolbar.js:130 + +#: js/toolbar.js:194 + +#: js/toolbar.js:249 + +#~msgid "Toggle JavaScript Editor" +#~msgstr "" + +#: js/EnsembleBlocks.js:643 + +#~msgid "The Turrle pitch block returns the current pitch number being played by the specified turtle." +#~msgstr "" + +#: js/PitchActions.js:88 + +#~msgid "The Scalar Step Block must be used inside of a Note Block." +#~msgstr "O Bloco Passo Escalar deve ser usado dentro de um Bloco de Notas." + +#: js/PitchActions.js:107 + +#~msgid "The Scalar Step Block must be preceded by a Pitch Block." +#~msgstr "O Bloco Passo Escalar deve ser precedido de um Bloco de Tom." + +#: js/musickeyboard.js:2840 + +#~msgid "New action blocks generated!" +#~msgstr "" #: js/toolbar.js:110 @@ -8179,11 +8188,6 @@ msgstr "movimento z" #~msgid "The Time block returns the number of seconds that the program has been running." #~msgstr "O bloco Tempo retorna o número de segundos que o programa está executando." -#: js/help.js:95 - -#~msgid "Take a tour" -#~msgstr "" - #: js/GlobalCard.js:48 #~msgid "More Details" diff --git a/po/quz.po b/po/quz.po index 8b017cb17e..bff5376e33 100644 --- a/po/quz.po +++ b/po/quz.po @@ -418,7413 +418,9363 @@ #: js/planetInterface.js:104 #: js/planetInterface.js:104 #: js/planetInterface.js:104 -msgid "project undefined" +#: js/SaveInterface.js:59 +#: js/SaveInterface.js:61 +#: js/SaveInterface.js:93 +#.TRANS: Proyecto de Bloques de Música +msgid "Music Blocks Project" msgstr "" -#: js/logo.js:61 -msgid "Not a valid pitch name" +#: js/SaveInterface.js:63 +#.TRANS: Este proyecto fue creado en Bloques de Música +msgid "This project was created in Music Blocks" msgstr "" -#: js/logo.js:507 -#: js/ProgramBlocks.js:258 -#: js/ProgramBlocks.js:427 -msgid "You must select a file." -msgstr "Huk waqaychasqata ch’ikuy" - -#: js/logo.js:1184 -#: js/turtles.js:118 -#: js/turtle-painter.js:1192 -#: js/turtle-painter.js:1193 -#: js/block.js:1463 -#: js/lilypond.js:757 -#: js/lilypond.js:921 -#: js/lilypond.js:959 -#: js/ActionBlocks.js:1223 -#: js/ProgramBlocks.js:1267 -msgid "start" -msgstr "qallari" - -#: js/logo.js:1696 -msgid "Playback is ready." +#: js/SaveInterface.js:67 +#.TRANS: Bloques de Música es una aplicación de Software Libre +msgid "Music Blocks is a Free/Libre Software application." msgstr "" -#: js/blocks.js:1011 -#: js/blocks.js:3427 -#: js/blocks.js:3428 -#: js/blocks.js:3653 -#: js/blocks.js:4012 -#: js/blocks.js:4205 -#: js/blocks.js:5343 -#: js/blocks.js:6474 -#: js/palette.js:527 -#: js/palette.js:536 -#: js/palette.js:545 -#: js/palette.js:554 -#: js/palette.js:1131 -#: js/palette.js:1142 -#: js/palette.js:1153 -#: js/palette.js:1164 -#: js/palette.js:1183 -#: js/rubrics.js:529 -#: js/macros.js:170 -#: js/macros.js:266 -#: js/macros.js:267 -#: js/macros.js:276 -#: js/macros.js:828 -#: js/block.js:1449 -#: js/block.js:4164 -#: js/block.js:4182 -#: js/block.js:4193 -#: js/turtledefs.js:128 -#: js/turtledefs.js:230 -#: js/ActionBlocks.js:254 -#: js/ActionBlocks.js:307 -#: js/ActionBlocks.js:617 -#: js/ActionBlocks.js:716 -#: js/ActionBlocks.js:961 -#: js/ActionBlocks.js:1049 -#: js/ActionBlocks.js:1322 -#: js/ActionBlocks.js:1325 -#: js/ActionBlocks.js:1337 -#: js/ActionBlocks.js:1404 -#: js/MeterBlocks.js:715 -#: js/MeterBlocks.js:768 -#: js/MeterBlocks.js:831 -#: js/MeterBlocks.js:892 -#: js/phrasemaker.js:4412 -#: js/musickeyboard.js:2647 -#: js/rhythmruler.js:1928 -#: js/rhythmruler.js:1935 -#: js/rhythmruler.js:2119 -#: js/rhythmruler.js:2126 -msgid "action" -msgstr "ruway" - -#: js/blocks.js:1205 -#: js/blocks.js:3380 -#: js/blocks.js:3770 -#: js/blocks.js:3801 -#: js/blocks.js:3850 -#: js/blocks.js:3885 -#: js/blocks.js:6497 -#: js/palette.js:509 -#: js/palette.js:638 -#: js/palette.js:1107 -#: js/BoxesBlocks.js:282 -#: js/BoxesBlocks.js:285 -#: js/BoxesBlocks.js:405 -#: js/BoxesBlocks.js:594 -msgid "box" -msgstr "tawa k'uchu" - -#: js/blocks.js:1680 -msgid "Consider breaking this stack into parts." +#: js/SaveInterface.js:69 +#.TRANS: Se puede acceder al código fuente en +msgid "The source code can be accessed at" msgstr "" -#: js/blocks.js:2408 -#: js/palette.js:653 -#: js/MediaBlocks.js:602 -msgid "open file" +#: js/SaveInterface.js:72 +#.TRANS: Para más información, consulte el +msgid "For more information, please consult the" msgstr "" -#: js/blocks.js:2415 -#: js/blocks.js:2423 -#: js/activity.js:1875 -msgid "audio file" +#: js/SaveInterface.js:76 +#: js/turtledefs.js:795 +#.TRANS: Guía de Bloques de Música +msgid "Music Blocks Guide" msgstr "" -#: js/blocks.js:2536 -#: js/blocks.js:3147 -#: js/block.js:3543 -msgid "on2" +#: js/SaveInterface.js:83 +#.TRANS: Alternativamente, abra el archivo en Bloques de Música usando el botón Cargar proyecto. +msgid "Alternatively, open the file in Music Blocks using the Load project button." msgstr "" -#: js/blocks.js:2538 -#: js/blocks.js:3149 -#: js/block.js:3545 -msgid "off" +#: js/SaveInterface.js:85 +#.TRANS: Código de proyecto +msgid "Project Code" msgstr "" -#: js/blocks.js:2543 -#: js/blocks.js:3154 -#: js/palette.js:618 -#: js/block.js:3466 -#: js/BooleanBlocks.js:77 -#: js/BooleanBlocks.js:167 -#: js/BooleanBlocks.js:251 -#: js/BooleanBlocks.js:335 -#: js/BooleanBlocks.js:433 -#: js/BooleanBlocks.js:539 -#: js/BooleanBlocks.js:640 -#: js/BooleanBlocks.js:741 -#: js/BooleanBlocks.js:847 -#: js/BooleanBlocks.js:948 -#: js/BooleanBlocks.js:1033 -#: js/SensorsBlocks.js:910 -msgid "true" -msgstr "chiqaq" - -#: js/blocks.js:2545 -#: js/blocks.js:3156 -#: js/block.js:3466 -#: js/BooleanBlocks.js:79 -#: js/BooleanBlocks.js:169 -#: js/BooleanBlocks.js:253 -#: js/BooleanBlocks.js:337 -#: js/BooleanBlocks.js:435 -#: js/BooleanBlocks.js:541 -#: js/BooleanBlocks.js:642 -#: js/BooleanBlocks.js:743 -#: js/BooleanBlocks.js:849 -#: js/BooleanBlocks.js:950 -#: js/SensorsBlocks.js:912 -msgid "false" -msgstr "llulla" - -#: js/blocks.js:3183 -#: js/palette.js:574 -#: js/MediaBlocks.js:892 -#: js/MediaBlocks.js:963 -msgid "text" -msgstr "qillqa" - -#: js/blocks.js:3379 -#: js/palette.js:641 -#: js/palette.js:642 -#: js/BoxesBlocks.js:514 -msgid "store in box" -msgstr "tawa k’uchupi waqaychay" - -#: js/blocks.js:3384 -#: js/blocks.js:3824 -#: js/blocks.js:3859 -#: js/blocks.js:3894 -#: js/blocks.js:5773 -#: js/blocks.js:5794 -#: js/BoxesBlocks.js:772 -msgid "box1" -msgstr "1 tawa k’uchu" +#: js/SaveInterface.js:87 +#.TRANS: Este código almacena datos sobre los bloques en un proyecto. +msgid "This code stores data about the blocks in a project." +msgstr "" -#: js/blocks.js:3386 -#: js/blocks.js:3826 -#: js/blocks.js:3861 -#: js/blocks.js:3896 -#: js/blocks.js:5775 -#: js/blocks.js:5796 -#: js/BoxesBlocks.js:663 -msgid "box2" -msgstr "2 tawa k’uchu" +#: js/SaveInterface.js:89 +#.TRANS: Mostrar +msgid "Show" +msgstr "" -#: js/blocks.js:4058 -#: js/palette.js:639 -#: js/palette.js:644 -#: js/palette.js:1043 -#: js/BoxesBlocks.js:591 -msgid "store in" -msgstr "imapi waqaychanki" "maypi waqaychanki" +#: js/SaveInterface.js:91 +#.TRANS: Ocultar +msgid "Hide" +msgstr "" -#: js/blocks.js:4058 -#: js/EnsembleBlocks.js:391 -#: js/EnsembleBlocks.js:402 -#: js/MediaBlocks.js:746 -#: js/ProgramBlocks.js:390 -#: js/ProgramBlocks.js:495 -#: js/ProgramBlocks.js:658 -#: js/BoxesBlocks.js:595 -#: js/PitchBlocks.js:656 -#: js/PitchBlocks.js:932 -#: js/PitchBlocks.js:1827 -#: js/ToneBlocks.js:1025 -#: js/DictBlocks.js:215 -#: js/DictBlocks.js:289 -msgid "name" -msgstr "nombre" +#: js/SaveInterface.js:131 +#: js/SaveInterface.js:204 +#: js/SaveInterface.js:262 +#: js/SaveInterface.js:389 +#: js/SaveInterface.js:417 +#: js/activity.js:4884 +#: planet/js/ProjectStorage.js:27 +#: planet/js/GlobalPlanet.js:467 +#: planet/js/GlobalPlanet.js:469 +#: planet/js/GlobalPlanet.js:495 +#.TRANS: default project title when saving as Lilypond +#.TRANS: Mi proyecto +msgid "My Project" +msgstr "hatun llamk’anay" -#: js/blocks.js:4058 -#: js/RhythmBlocks.js:1130 -#: js/BoxesBlocks.js:75 -#: js/BoxesBlocks.js:595 -#: js/HeapBlocks.js:544 -#: js/DictBlocks.js:289 -#: js/DictBlocks.js:430 -msgid "value" -msgstr "tupu" +#: js/SaveInterface.js:197 +#: planet/js/SaveInterface.js:58 +#.TRANS: Ninguna descripción provista +msgid "No description provided" +msgstr "Mana mayqin willakuypas kamasqachu" -#: js/blocks.js:4907 -msgid "There is no block selected." +#: js/SaveInterface.js:332 +#.TRANS: Tu grabación está en curso. +msgid "Your recording is in progress." msgstr "" -#: js/blocks.js:5002 -#: js/MediaBlocks.js:888 -msgid "show" -msgstr "qhawachiy" +#: js/SaveInterface.js:401 +#.TRANS: File name prompt for save as Lilypond +#.TRANS: Nombre del archivo +msgid "File name" +msgstr "" -#: js/blocks.js:5005 -#: js/MediaBlocks.js:803 -#.TRANS: Avatar is the image used to determine the appearance of the mouse. -msgid "avatar" -msgstr "siq’isqa" +#: js/SaveInterface.js:403 +#: planet/js/StringHelper.js:39 +#.TRANS: Project title prompt for save as Lilypond +#.TRANS: Título del proyecto +msgid "Project title" +msgstr "Título del proyecto" -#: js/blocks.js:5008 -#: js/ToneBlocks.js:1010 -#: js/sampler.js:693 -#.TRANS: The sound sample that the user uploads. -msgid "sample" +#: js/SaveInterface.js:405 +#.TRANS: Project title prompt for save as Lilypond +#.TRANS: Autor del Proyecto +msgid "Project author" msgstr "" -#: js/turtles.js:874 -msgid "Grid" +#: js/SaveInterface.js:407 +#.TRANS: MIDI prompt for save as Lilypond +#.TRANS: Incluye MIDI? +msgid "Include MIDI output?" msgstr "" -#: js/turtles.js:891 -#: js/turtledefs.js:626 -msgid "Clean" +#: js/SaveInterface.js:409 +#.TRANS: Guitar prompt for save as Lilypond +#.TRANS: Incluye tablatura de guitarra +msgid "Include guitar tablature output?" msgstr "" -#: js/turtles.js:912 -#: js/turtledefs.js:632 -msgid "Collapse" +#: js/SaveInterface.js:411 +#.TRANS: Lilypond is a scripting language for generating sheet music +#.TRANS: Guardar como lilypond +msgid "Save as Lilypond" msgstr "" -#: js/turtles.js:940 -msgid "Expand" +#: js/SaveInterface.js:426 +#: js/blocks/EnsembleBlocks.js:75 +#: js/blocks/EnsembleBlocks.js:154 +#: js/blocks/EnsembleBlocks.js:216 +#: js/blocks/EnsembleBlocks.js:302 +#: js/blocks/EnsembleBlocks.js:348 +#: js/blocks/EnsembleBlocks.js:389 +#: js/blocks/EnsembleBlocks.js:441 +#: js/blocks/EnsembleBlocks.js:490 +#: js/blocks/EnsembleBlocks.js:536 +#: js/blocks/EnsembleBlocks.js:583 +#: js/blocks/EnsembleBlocks.js:637 +#: js/blocks/EnsembleBlocks.js:753 +#: js/blocks/EnsembleBlocks.js:840 +#: js/blocks/EnsembleBlocks.js:899 +#: js/blocks/EnsembleBlocks.js:942 +#: js/blocks/EnsembleBlocks.js:1212 +#: js/blocks/EnsembleBlocks.js:1280 +#.TRANS: default project author when saving as Lilypond +#.TRANS: Sr. Ratón +msgid "Mr. Mouse" +msgstr "Sr. Ratón" + +#: js/SaveInterface.js:573 +#.TRANS: El código de Lilypond se copia al portapapeles. Puedes pegarlo aquí: +msgid "The Lilypond code is copied to clipboard. You can paste it here: " msgstr "" #: js/languagebox.js:198 +#.TRANS: Actualice su navegador para cambiar su preferencia de idioma. msgid "Refresh your browser to change your language preference." msgstr "" #: js/languagebox.js:218 +#.TRANS: Music Blocks ya est� configurado en este idioma. msgid "Music Blocks is already set to this language." msgstr "Music Blocks ya está configurado en este idioma." -#: js/piemenus.js:200 -#: js/musicutils.js:808 -#: js/musicutils.js:824 -#: js/phrasemaker.js:1672 -#: js/musickeyboard.js:2041 -#: js/sampler.js:544 -#.TRANS: double sharp is a music term related to pitch -msgid "double sharp" -msgstr "iskay ñañu kunka" +#: js/planetInterface.js:131 +#.TRANS: El proyecto no está definido. +msgid "project undefined" +msgstr "" -#: js/piemenus.js:201 -#: js/PitchBlocks.js:1510 -#: js/PitchActions.js:580 -#: js/musicutils.js:806 -#: js/musicutils.js:825 -#: js/phrasemaker.js:1673 -#: js/musickeyboard.js:2042 -#: js/sampler.js:545 -#.TRANS: sharp is a half-step up in pitch -#.TRANS: sharp is a music term related to pitch -msgid "sharp" -msgstr "allin uyarikuy" +#: js/rubrics.js:523 +#: js/turtledefs.js:119 +#: js/turtledefs.js:221 +#: js/blocks/RhythmBlockPaletteBlocks.js:52 +#: js/blocks/RhythmBlockPaletteBlocks.js:234 +#: js/blocks/ProgramBlocks.js:745 +#: js/widgets/rhythmruler.js:2057 +#: js/widgets/rhythmruler.js:2064 +#: js/widgets/rhythmruler.js:2133 +#: js/widgets/rhythmruler.js:2140 +#: js/widgets/rhythmruler.js:2219 +#.TRANS: an arrangement of notes based on duration +#.TRANS: ritmo +msgid "rhythm" +msgstr "taki muyuchik" -#: js/piemenus.js:202 -#: js/musicutils.js:804 -#: js/musicutils.js:826 -#: js/phrasemaker.js:1674 -#: js/musickeyboard.js:2043 -#: js/sampler.js:546 -#.TRANS: natural is a music term related to pitch -msgid "natural" -msgstr "purum" +#: js/rubrics.js:524 +#: js/turtledefs.js:121 +#: js/turtledefs.js:223 +#: js/block-verbose.js:2622 +#: js/block.js:2550 +#: js/blocks/IntervalsBlocks.js:63 +#: js/blocks/SensorsBlocks.js:178 +#: js/blocks/PitchBlocks.js:1839 +#: js/blocks/PitchBlocks.js:1853 +#: js/widgets/musickeyboard.js:1935 +#: js/widgets/phrasemaker.js:1036 +#.TRANS: pitch number +#.TRANS: pitch number +#.TRANS: we specify pitch in terms of a name and an octave. The name can be CDEFGAB or Do Re Mi Fa Sol La Ti. Octave is a number between 1 and 8. +#.TRANS: tono +msgid "pitch" +msgstr "kunka" -#: js/piemenus.js:203 -#: js/PitchBlocks.js:1469 -#: js/PitchActions.js:583 -#: js/musicutils.js:802 -#: js/musicutils.js:827 -#: js/phrasemaker.js:1675 -#: js/musickeyboard.js:2044 -#: js/sampler.js:547 -#.TRANS: flat is a half-step down in pitch -#.TRANS: flat is a music term related to pitch -msgid "flat" -msgstr "pampa" +#: js/rubrics.js:525 +#: js/turtledefs.js:123 +#: js/turtledefs.js:225 +#.TRANS: tono +msgid "tone" +msgstr "" -#: js/piemenus.js:204 -#: js/musicutils.js:800 -#: js/musicutils.js:828 -#: js/phrasemaker.js:1676 -#: js/musickeyboard.js:2045 -#: js/sampler.js:548 -#.TRANS: double flat is a music term related to pitch -msgid "double flat" -msgstr "iskay t’aqlla" +#: js/rubrics.js:526 +#: js/lilypond.js:605 +#: js/lilypond.js:904 +#: js/lilypond.js:910 +#: js/lilypond.js:948 +#.TRANS: ratón +msgid "mouse" +msgstr "" -#: js/piemenus.js:2861 -#: js/PitchBlocks.js:1357 -#: js/musicutils.js:627 -#.TRANS: unison means the note is the same as the current note -#.TRANS: unison is a music term related to intervals -msgid "unison" -msgstr "unísono" +#: js/rubrics.js:527 +#: js/turtledefs.js:132 +#: js/turtledefs.js:234 +#: js/widgets/phrasemaker.js:1040 +#.TRANS: pluma +msgid "pen" +msgstr "qillqana" -#: js/piemenus.js:3015 -#: js/piemenus.js:3088 -#: js/musicutils.js:635 -#: js/musicutils.js:810 -#: js/musicutils.js:912 -#.TRANS: major is a music term related to intervals and mode -msgid "major" -msgstr "kuraq" +#: js/rubrics.js:528 +#: js/turtledefs.js:133 +#: js/turtledefs.js:235 +#: js/blocks/NumberBlocks.js:981 +#: js/blocks/PitchBlocks.js:1717 +#: js/blocks/PitchBlocks.js:1758 +#.TRANS: número +msgid "number" +msgstr "yupana" -#: js/piemenus.js:3015 -#: js/piemenus.js:3088 -#: js/musicutils.js:653 -#.TRANS: modal scale for music -msgid "ionian" +#: js/rubrics.js:529 +#: js/turtledefs.js:127 +#: js/turtledefs.js:229 +#.TRANS: flujo +msgid "flow" msgstr "" -#: js/piemenus.js:3017 -#: js/piemenus.js:3092 -#: js/musicutils.js:633 -#: js/musicutils.js:811 -#: js/musicutils.js:909 -#.TRANS: minor is a music term related to intervals and mode -msgid "minor" -msgstr "sullk’a" - -#: js/piemenus.js:3017 -#: js/piemenus.js:3092 -#: js/musicutils.js:663 -#.TRANS: modal scale for music -msgid "aeolian" -msgstr "" +#: js/rubrics.js:530 +#: js/turtledefs.js:128 +#: js/turtledefs.js:230 +#: js/block-verbose.js:1609 +#: js/block-verbose.js:4559 +#: js/block-verbose.js:4577 +#: js/block-verbose.js:4588 +#: js/block.js:1573 +#: js/block.js:4483 +#: js/block.js:4501 +#: js/block.js:4512 +#: js/blocks.js:1018 +#: js/blocks.js:3491 +#: js/blocks.js:3492 +#: js/blocks.js:3717 +#: js/blocks.js:4076 +#: js/blocks.js:4269 +#: js/blocks.js:5432 +#: js/blocks.js:6563 +#: js/macros.js:170 +#: js/macros.js:266 +#: js/macros.js:267 +#: js/macros.js:276 +#: js/macros.js:828 +#: js/palette.js:527 +#: js/palette.js:536 +#: js/palette.js:545 +#: js/palette.js:554 +#: js/palette.js:1129 +#: js/palette.js:1140 +#: js/palette.js:1151 +#: js/palette.js:1162 +#: js/palette.js:1181 +#: js/blocks/ActionBlocks.js:254 +#: js/blocks/ActionBlocks.js:307 +#: js/blocks/ActionBlocks.js:617 +#: js/blocks/ActionBlocks.js:716 +#: js/blocks/ActionBlocks.js:961 +#: js/blocks/ActionBlocks.js:1049 +#: js/blocks/ActionBlocks.js:1322 +#: js/blocks/ActionBlocks.js:1325 +#: js/blocks/ActionBlocks.js:1337 +#: js/blocks/ActionBlocks.js:1404 +#: js/blocks/MeterBlocks.js:715 +#: js/blocks/MeterBlocks.js:768 +#: js/blocks/MeterBlocks.js:831 +#: js/blocks/MeterBlocks.js:892 +#: js/widgets/musickeyboard.js:2986 +#: js/widgets/phrasemaker.js:4913 +#: js/widgets/rhythmruler.js:2319 +#: js/widgets/rhythmruler.js:2326 +#: js/widgets/rhythmruler.js:2511 +#: js/widgets/rhythmruler.js:2518 +#.TRANS: acción +msgid "action" +msgstr "ruway" -#: js/piemenus.js:3407 -msgid "Duplicate" +#: js/rubrics.js:531 +#: js/turtledefs.js:136 +#: js/turtledefs.js:238 +#.TRANS: sensores +msgid "sensors" msgstr "" -#: js/piemenus.js:3408 -#: js/turtledefs.js:534 -msgid "Extract" +#: js/rubrics.js:532 +#: js/turtledefs.js:135 +#: js/turtledefs.js:237 +#: js/blocks/MediaBlocks.js:930 +#.TRANS: medios +msgid "media" msgstr "" -#: js/piemenus.js:3409 -msgid "Move to trash" +#: js/rubrics.js:533 +#.TRANS: ratón +msgid "mice" msgstr "" -#: js/piemenus.js:3410 -#: js/timbre.js:968 -#: js/StringHelper.js:69 -msgid "Close" -msgstr "wisq’ay" +#: js/toolbar.js:48 +#: js/toolbar.js:109 +#.TRANS: Acerca de los Bloques de Música +msgid "About Music Blocks" +msgstr "" + +#: js/toolbar.js:49 +#: js/toolbar.js:110 +#: js/toolbar.js:175 +#: js/toolbar.js:231 +#: js/turtledefs.js:445 +#: js/turtledefs.js:482 +#: js/activity.js:2660 +#: js/activity.js:2671 +#: js/activity.js:2902 +#: js/widgets/modewidget.js:77 +#: js/widgets/meterwidget.js:185 +#: js/widgets/pitchdrummatrix.js:147 +#: js/widgets/pitchdrummatrix.js:687 +#: js/widgets/pitchdrummatrix.js:689 +#: js/widgets/pitchdrummatrix.js:741 +#: js/widgets/pitchdrummatrix.js:743 +#: js/widgets/pitchdrummatrix.js:758 +#: js/widgets/pitchdrummatrix.js:760 +#: js/widgets/pitchdrummatrix.js:789 +#: js/widgets/pitchdrummatrix.js:791 +#: js/widgets/pitchstaircase.js:121 +#: js/widgets/temperament.js:610 +#: js/widgets/temperament.js:613 +#: js/widgets/temperament.js:673 +#: js/widgets/temperament.js:675 +#: js/widgets/temperament.js:2017 +#: js/widgets/temperament.js:2019 +#: js/widgets/tempo.js:84 +#: js/widgets/tempo.js:86 +#: js/widgets/timbre.js:432 +#: js/widgets/timbre.js:434 +#: js/widgets/timbre.js:465 +#: js/widgets/timbre.js:467 +#: js/widgets/timbre.js:746 +#: js/widgets/aiwidget.js:647 +#: js/widgets/aiwidget.js:654 +#: js/widgets/aiwidget.js:656 +#: js/widgets/arpeggio.js:90 +#: js/widgets/arpeggio.js:547 +#: js/widgets/arpeggio.js:549 +#: js/widgets/arpeggio.js:644 +#: js/widgets/arpeggio.js:646 +#: js/widgets/musickeyboard.js:676 +#: js/widgets/musickeyboard.js:872 +#: js/widgets/musickeyboard.js:874 +#: js/widgets/musickeyboard.js:953 +#: js/widgets/musickeyboard.js:955 +#: js/widgets/phrasemaker.js:513 +#: js/widgets/phrasemaker.js:523 +#: js/widgets/phrasemaker.js:525 +#: js/widgets/phrasemaker.js:4304 +#: js/widgets/phrasemaker.js:4528 +#: js/widgets/phrasemaker.js:4533 +#: js/widgets/phrasemaker.js:4535 +#: js/widgets/phrasemaker.js:4650 +#: js/widgets/rhythmruler.js:637 +#: js/widgets/rhythmruler.js:639 +#: js/widgets/rhythmruler.js:653 +#: js/widgets/rhythmruler.js:655 +#: js/widgets/sampler.js:162 +#: js/widgets/sampler.js:164 +#: js/widgets/sampler.js:363 +#.TRANS: Tocar +msgid "Play" +msgstr "waqachiy" + +#: js/toolbar.js:50 +#: js/toolbar.js:111 +#: js/toolbar.js:176 +#: js/toolbar.js:232 +#: js/turtledefs.js:451 +#: js/turtledefs.js:488 +#: js/activity.js:2679 +#: js/widgets/modewidget.js:99 +#: js/widgets/modewidget.js:101 +#: js/widgets/meterwidget.js:206 +#: js/widgets/meterwidget.js:208 +#: js/widgets/pitchdrummatrix.js:674 +#: js/widgets/pitchdrummatrix.js:676 +#: js/widgets/temperament.js:2002 +#: js/widgets/temperament.js:2004 +#: js/widgets/arpeggio.js:534 +#: js/widgets/arpeggio.js:536 +#: js/widgets/phrasemaker.js:534 +#: js/widgets/phrasemaker.js:536 +#.TRANS: Detener +msgid "Stop" +msgstr "Sayachiy" + +#: js/toolbar.js:51 +#: js/toolbar.js:112 +#: js/toolbar.js:177 +#: js/toolbar.js:233 +#: js/turtledefs.js:498 +#.TRANS: Grabar +msgid "Record" +msgstr "" + +#: js/toolbar.js:52 +#: js/toolbar.js:53 +#.TRANS: Pantalla completa +msgid "Full screen" +msgstr "" + +#: js/toolbar.js:54 +#: js/toolbar.js:115 +#: js/toolbar.js:180 +#: js/toolbar.js:236 +#: js/turtledefs.js:504 +#.TRANS: Alternar pantalla completa +msgid "Toggle Fullscreen" +msgstr "" + +#: js/toolbar.js:55 +#: js/toolbar.js:116 +#: js/toolbar.js:181 +#: js/toolbar.js:237 +#: js/turtledefs.js:510 +#: planet/js/StringHelper.js:33 +#.TRANS: Nuevo proyecto +msgid "New project" +msgstr "Nuevo proyecto" + +#: js/toolbar.js:56 +#: js/toolbar.js:117 +#: js/toolbar.js:182 +#: js/toolbar.js:238 +#: js/turtledefs.js:516 +#.TRANS: Cargar proyecto de archivo +msgid "Load project from file" +msgstr "" + +#: js/toolbar.js:57 +#: js/toolbar.js:118 +#: js/toolbar.js:119 +#: js/toolbar.js:183 +#: js/toolbar.js:239 +#: js/turtledefs.js:541 +#: js/turtledefs.js:550 +#: js/turtledefs.js:571 +#.TRANS: Guardar proyecto +msgid "Save project" +msgstr "" + +#: js/toolbar.js:58 +#: js/toolbar.js:77 +#: js/toolbar.js:79 +#: js/toolbar.js:138 +#: js/toolbar.js:147 +#: js/toolbar.js:149 +#: js/toolbar.js:184 +#: js/toolbar.js:202 +#: js/toolbar.js:204 +#: js/toolbar.js:240 +#: js/toolbar.js:258 +#: js/toolbar.js:260 +#.TRANS: Guardar como HTML +msgid "Save project as HTML" +msgstr "" + +#: js/toolbar.js:59 +#: js/toolbar.js:120 +#: js/toolbar.js:185 +#: js/toolbar.js:241 +#.TRANS: Encuentra y comparte proyectos +msgid "Find and share projects" +msgstr "" + +#: js/toolbar.js:60 +#: js/toolbar.js:121 +#: js/toolbar.js:186 +#: js/toolbar.js:242 +#.TRANS: Desconectado. Compartir no está disponible. +msgid "Offline. Sharing is unavailable" +msgstr "" + +#: js/toolbar.js:61 +#: js/toolbar.js:122 +#: js/toolbar.js:187 +#: js/toolbar.js:243 +#.TRANS: Menú auxiliar +msgid "Auxiliary menu" +msgstr "" + +#: js/toolbar.js:62 +#: js/toolbar.js:123 +#: js/toolbar.js:188 +#: js/toolbar.js:244 +#: js/turtledefs.js:752 +#: js/piemenus.js:3423 +#.TRANS: Ayuda +msgid "Help" +msgstr "" + +#: js/toolbar.js:63 +#: js/toolbar.js:124 +#: js/toolbar.js:189 +#: js/toolbar.js:245 +#.TRANS: Tocar lentamente +msgid "Run slowly" +msgstr "" + +#: js/toolbar.js:64 +#: js/toolbar.js:125 +#: js/toolbar.js:190 +#: js/toolbar.js:246 +#: js/turtledefs.js:682 +#.TRANS: Ejecutar paso a paso +msgid "Run step by step" +msgstr "" + +#: js/toolbar.js:65 +#: js/toolbar.js:126 +#: js/toolbar.js:191 +#: js/toolbar.js:247 +#: js/turtledefs.js:689 +#.TRANS: Analizar +msgid "Display statistics" +msgstr "" + +#: js/toolbar.js:66 +#: js/toolbar.js:127 +#: js/toolbar.js:192 +#: js/toolbar.js:248 +#.TRANS: Cargar plugin +msgid "Load plugin" +msgstr "" + +#: js/toolbar.js:67 +#: js/toolbar.js:128 +#: js/toolbar.js:193 +#: js/toolbar.js:249 +#: js/turtledefs.js:696 +#.TRANS: Eliminar plugin +msgid "Delete plugin" +msgstr "" + +#: js/toolbar.js:68 +#: js/toolbar.js:129 +#: js/toolbar.js:194 +#: js/toolbar.js:250 +#.TRANS: Habilitar desplazamiento horizontal +msgid "Enable horizontal scrolling" +msgstr "" + +#: js/toolbar.js:69 +#: js/toolbar.js:130 +#: js/toolbar.js:195 +#: js/toolbar.js:251 +#.TRANS: Deshabilitar desplazamiento horizontal +msgid "Disable horizontal scrolling" +msgstr "" + +#: js/toolbar.js:70 +#: js/toolbar.js:131 +#: js/toolbar.js:196 +#: js/toolbar.js:252 +#: planet/js/LocalCard.js:54 +#: planet/js/StringHelper.js:71 +#.TRANS: Unir con el proyecto actual +msgid "Merge with current project" +msgstr "Unir con el proyecto actual" + +#: js/toolbar.js:71 +#: js/toolbar.js:132 +#.TRANS: Establecer vista previa de tono +msgid "Set Pitch Preview" +msgstr "" + +#: js/toolbar.js:72 +#: js/toolbar.js:133 +#: js/toolbar.js:197 +#: js/toolbar.js:253 +#.TRANS: Editor de Javascript +msgid "JavaScript Editor" +msgstr "" + +#: js/toolbar.js:73 +#: js/toolbar.js:134 +#: js/toolbar.js:198 +#: js/toolbar.js:254 +#: js/turtledefs.js:724 +#.TRANS: Restaurar +msgid "Restore" +msgstr "" + +#: js/toolbar.js:74 +#: js/toolbar.js:135 +#: js/toolbar.js:199 +#: js/toolbar.js:255 +#.TRANS: Cambiar al modo principiante +msgid "Switch to beginner mode" +msgstr "" + +#: js/toolbar.js:75 +#: js/toolbar.js:136 +#: js/toolbar.js:200 +#: js/toolbar.js:256 +#.TRANS: Cambiar a modo avanzado +msgid "Switch to advanced mode" +msgstr "" + +#: js/toolbar.js:76 +#: js/toolbar.js:137 +#: js/toolbar.js:146 +#: js/toolbar.js:201 +#: js/toolbar.js:257 +#: js/turtledefs.js:738 +#.TRANS: Seleccione el idioma +msgid "Select language" +msgstr "" + +#: js/toolbar.js:78 +#: js/toolbar.js:81 +#: js/toolbar.js:140 +#: js/turtledefs.js:579 +#.TRANS: Guardar ilustraciones del ratón como PNG +msgid "Save mouse artwork as PNG" +msgstr "" + +#: js/toolbar.js:80 +#: js/toolbar.js:139 +#: js/turtledefs.js:575 +#.TRANS: Guardar ilustraciones del ratón como SVG +msgid "Save mouse artwork as SVG" +msgstr "" + +#: js/toolbar.js:82 +#: js/toolbar.js:141 +#: js/turtledefs.js:583 +#.TRANS: Guarda música como WAV +msgid "Save music as WAV" +msgstr "" + +#: js/toolbar.js:83 +#: js/toolbar.js:142 +#: js/turtledefs.js:587 +#.TRANS: Guardar partituras como ABC +msgid "Save sheet music as ABC" +msgstr "" + +#: js/toolbar.js:84 +#: js/toolbar.js:143 +#: js/turtledefs.js:591 +#.TRANS: Guardar partituras como Lilypond. +msgid "Save sheet music as Lilypond" +msgstr "" + +#: js/toolbar.js:85 +#.TRANS: Guardar partituras como MusicXML +msgid "Save sheet music as MusicXML" +msgstr "" + +#: js/toolbar.js:86 +#: js/toolbar.js:144 +#: js/toolbar.js:152 +#: js/toolbar.js:207 +#: js/toolbar.js:263 +#: js/turtledefs.js:562 +#: js/turtledefs.js:595 +#.TRANS: Guardar bloque de ilustraciones como SVG +msgid "Save block artwork as SVG" +msgstr "" + +#: js/toolbar.js:87 +#: js/toolbar.js:145 +#: js/toolbar.js:153 +#: js/toolbar.js:208 +#: js/toolbar.js:264 +#: js/turtles.js:911 +#.TRANS: Confirmar +msgid "Confirm" +msgstr "" + +#: js/toolbar.js:88 +#: js/toolbar.js:154 +#: js/toolbar.js:209 +#: js/toolbar.js:265 +#.TRANS: +msgid "English (United States)" +msgstr "" + +#: js/toolbar.js:89 +#: js/toolbar.js:155 +#: js/toolbar.js:210 +#: js/toolbar.js:266 +#.TRANS: +msgid "English (United Kingdom)" +msgstr "" + +#: js/toolbar.js:90 +#: js/toolbar.js:156 +#: js/toolbar.js:211 +#: js/toolbar.js:267 +#.TRANS: +msgid "日本語" +msgstr "" + +#: js/toolbar.js:91 +#.TRANS: +msgid "한국어" +msgstr "" + +#: js/toolbar.js:92 +#: js/toolbar.js:158 +#: js/toolbar.js:213 +#: js/toolbar.js:269 +#.TRANS: +msgid "español" +msgstr "" + +#: js/toolbar.js:93 +#: js/toolbar.js:159 +#: js/toolbar.js:214 +#: js/toolbar.js:270 +#.TRANS: +msgid "português" +msgstr "" + +#: js/toolbar.js:94 +#: js/toolbar.js:160 +#: js/toolbar.js:215 +#: js/toolbar.js:271 +#.TRANS: +msgid "にほんご" +msgstr "" + +#: js/toolbar.js:95 +#: js/toolbar.js:161 +#: js/toolbar.js:216 +#: js/toolbar.js:272 +#.TRANS: +msgid "中文" +msgstr "" + +#: js/toolbar.js:96 +#: js/toolbar.js:162 +#: js/toolbar.js:217 +#: js/toolbar.js:273 +#.TRANS: +msgid "ภาษาไทย" +msgstr "" + +#: js/toolbar.js:97 +#: js/toolbar.js:163 +#: js/toolbar.js:218 +#: js/toolbar.js:274 +#.TRANS: +msgid "aymara" +msgstr "" + +#: js/toolbar.js:98 +#: js/toolbar.js:164 +#: js/toolbar.js:219 +#: js/toolbar.js:275 +#.TRANS: +msgid "quechua" +msgstr "" + +#: js/toolbar.js:99 +#: js/toolbar.js:165 +#: js/toolbar.js:220 +#: js/toolbar.js:276 +#.TRANS: +msgid "guarani" +msgstr "" + +#: js/toolbar.js:100 +#: js/toolbar.js:166 +#: js/toolbar.js:221 +#: js/toolbar.js:277 +#.TRANS: +msgid "हिंदी" +msgstr "" + +#: js/toolbar.js:101 +#: js/toolbar.js:168 +#: js/toolbar.js:222 +#: js/toolbar.js:279 +#.TRANS: +msgid "igbo" +msgstr "" + +#: js/toolbar.js:102 +#: js/toolbar.js:169 +#: js/toolbar.js:223 +#: js/toolbar.js:280 +#.TRANS: +msgid "عربى" +msgstr "" + +#: js/toolbar.js:103 +#: js/toolbar.js:167 +#: js/toolbar.js:224 +#: js/toolbar.js:278 +#.TRANS: +msgid "తెలుగు" +msgstr "" + +#: js/toolbar.js:104 +#: js/toolbar.js:170 +#: js/toolbar.js:225 +#: js/toolbar.js:281 +#.TRANS: +msgid "עִברִית" +msgstr "" + +#: js/toolbar.js:113 +#: js/toolbar.js:114 +#: js/toolbar.js:178 +#: js/toolbar.js:179 +#: js/toolbar.js:234 +#: js/toolbar.js:235 +#.TRANS: Pantalla completa +msgid "Full Screen" +msgstr "" + +#: js/toolbar.js:148 +#: js/toolbar.js:151 +#: js/toolbar.js:203 +#: js/toolbar.js:206 +#: js/toolbar.js:259 +#: js/toolbar.js:262 +#: js/turtledefs.js:558 +#.TRANS: Guardar la ilustración de la tortuga como PNG +msgid "Save turtle artwork as PNG" +msgstr "" + +#: js/toolbar.js:150 +#: js/toolbar.js:205 +#: js/toolbar.js:261 +#: js/turtledefs.js:554 +#.TRANS: Guardar la ilustración de la tortuga como SVG +msgid "Save turtle artwork as SVG" +msgstr "" + +#: js/toolbar.js:157 +#: js/toolbar.js:212 +#: js/toolbar.js:268 +#.TRANS: +msgid "한국인" +msgstr "" + +#: js/toolbar.js:174 +#: js/toolbar.js:230 +#.TRANS: Sobre Bloques de Tortuga +msgid "About Turtle Blocks" +msgstr "" + +#: js/toolbar.js:446 +#: js/toolbar.js:457 +#: js/toolbar.js:497 +#.TRANS: No Envolver +msgid "Turtle Wrap Off" +msgstr "" + +#: js/toolbar.js:466 +#: js/toolbar.js:506 +#.TRANS: Envolver +msgid "Turtle Wrap On" +msgstr "" -#: js/piemenus.js:3416 -msgid "Save stack" +#: js/turtle-painter.js:1192 +#: js/turtle-painter.js:1193 +#: js/turtles.js:118 +#: js/block-verbose.js:1623 +#: js/block.js:1587 +#: js/lilypond.js:749 +#: js/lilypond.js:913 +#: js/lilypond.js:951 +#: js/logo.js:1184 +#: js/blocks/ActionBlocks.js:1223 +#: js/blocks/ProgramBlocks.js:1267 +#.TRANS: iniciar +msgid "start" +msgstr "qallari" + +#: js/turtledefs.js:40 +#.TRANS: put the URL to the guide here, e.g., https://github.com/sugarlabs/turtleblocksjs/tree/master/guide/README.md +#.TRANS: https://github.com/sugarlabs/musicblocks/tree/master/guide-es/README.md +msgid "guide url" msgstr "" -#: js/piemenus.js:3420 -#: js/toolbar.js:60 -#: js/toolbar.js:120 -#: js/toolbar.js:185 -#: js/toolbar.js:240 -#: js/turtledefs.js:752 -msgid "Help" +#: js/turtledefs.js:85 +#: js/turtledefs.js:437 +#.TRANS: Turtle Blocks es una tortuga basada en Logo que dibuja imágenes coloridas programable de una forma visual con bloques encastrables. +msgid "Turtle Blocks is a Logo-inspired turtle that draws colorful pictures with snap-together visual-programming blocks." msgstr "" -#: js/piemenus.js:3762 -msgid "You have chosen key " +#: js/turtledefs.js:118 +#: js/turtledefs.js:220 +#.TRANS: buscar +msgid "search" msgstr "" -#: js/piemenus.js:3766 -msgid " for your pitch preview." +#: js/turtledefs.js:120 +#: js/turtledefs.js:222 +#: js/blocks/MeterBlocks.js:1343 +#: js/blocks/WidgetBlocks.js:522 +#.TRANS: musical meter (time signature), e.g., 4:4 +#.TRANS: metro +msgid "meter" +msgstr "tupuna" + +#: js/turtledefs.js:122 +#: js/turtledefs.js:224 +#.TRANS: intervalos +msgid "intervals" msgstr "" -#: js/palette.js:571 -msgid "grid" +#: js/turtledefs.js:124 +#: js/turtledefs.js:226 +#.TRANS: ornamento +msgid "ornament" msgstr "" -#: js/palette.js:577 -#: js/block.js:1540 -#: js/block.js:2343 +#: js/turtledefs.js:125 +#: js/turtledefs.js:227 +#: js/blocks/VolumeBlocks.js:362 +#: js/blocks/VolumeBlocks.js:502 +#: js/blocks/VolumeBlocks.js:545 +#.TRANS: volumen +msgid "volume" +msgstr "volumen" + #: js/turtledefs.js:126 #: js/turtledefs.js:228 -#: js/lilypond.js:740 -#: js/lilypond.js:905 -#: js/lilypond.js:949 -#: js/DrumBlocks.js:486 -#: js/RhythmBlocks.js:766 -#: js/VolumeBlocks.js:502 -#: js/phrasemaker.js:823 +#: js/block-verbose.js:1700 +#: js/block-verbose.js:2626 +#: js/block.js:1664 +#: js/block.js:2554 +#: js/lilypond.js:732 +#: js/lilypond.js:897 +#: js/lilypond.js:941 +#: js/palette.js:577 +#: js/blocks/RhythmBlocks.js:766 +#: js/blocks/DrumBlocks.js:477 +#: js/blocks/VolumeBlocks.js:502 +#: js/widgets/phrasemaker.js:1038 +#.TRANS: tambor msgid "drum" msgstr "tankar" -#: js/palette.js:580 -msgid "effect" +#: js/turtledefs.js:129 +#: js/turtledefs.js:231 +#.TRANS: cajas +msgid "boxes" msgstr "" -#: js/palette.js:586 -msgid "sargam" +#: js/turtledefs.js:130 +#: js/turtledefs.js:232 +#.TRANS: aparatos +msgid "widgets" msgstr "" -#: js/palette.js:589 -#: js/activity.js:1833 -#: js/RhythmBlocks.js:923 -#: js/PitchBlocks.js:442 -#: js/PitchBlocks.js:1748 -#.TRANS: a numeric mapping of the notes in an octave based on the musical mode -msgid "scale degree" +#: js/turtledefs.js:131 +#: js/turtledefs.js:233 +#: js/widgets/phrasemaker.js:1039 +#.TRANS: gráficos +msgid "graphics" +msgstr "siq’ikuna" + +#: js/turtledefs.js:134 +#: js/turtledefs.js:236 +#.TRANS: booleano +msgid "boolean" msgstr "" -#: js/palette.js:592 -#: js/activity.js:1860 -msgid "mode name" +#: js/turtledefs.js:137 +#: js/turtledefs.js:239 +#: js/blocks/HeapBlocks.js:59 +#: js/widgets/status.js:147 +#.TRANS: pila +msgid "heap" msgstr "" -#: js/palette.js:595 -#: js/activity.js:1839 -msgid "invert mode" +#: js/turtledefs.js:138 +#: js/turtledefs.js:240 +#: js/blocks/DictBlocks.js:142 +#: js/blocks/ProgramBlocks.js:495 +#.TRANS: diccionario +msgid "dictionary" msgstr "" -#: js/palette.js:598 -#: js/activity.js:1836 -msgid "voice name" +#: js/turtledefs.js:139 +#: js/turtledefs.js:241 +#.TRANS: conjunto +msgid "ensemble" msgstr "" -#: js/palette.js:601 -#: js/PitchBlocks.js:1181 -msgid "custom pitch" -msgstr "sapallanpa kunka" +#: js/turtledefs.js:140 +#: js/turtledefs.js:242 +#.TRANS: extras +msgid "extras" +msgstr "" -#: js/palette.js:605 -#: js/block.js:1456 -#: js/block.js:1575 -#: js/WidgetBlocks.js:218 -#: js/IntervalsBlocks.js:63 -msgid "temperament" -msgstr "munasqanman tikrakuq" +#: js/turtledefs.js:142 +#: js/turtledefs.js:244 +#.TRANS: program as in computer program +#.TRANS: program as in computer program +#.TRANS: programa +msgid "program" +msgstr "" -#: js/palette.js:609 -msgid "accidental" -msgstr "yanapaqnin" +#: js/turtledefs.js:143 +#: js/turtledefs.js:245 +#.TRANS: mis bloques +msgid "my blocks" +msgstr "" -#: js/palette.js:615 -#: js/activity.js:1866 -msgid "interval name" +#: js/turtledefs.js:185 +#: js/turtledefs.js:281 +#.TRANS: arte +msgid "artwork" msgstr "" -#: js/palette.js:633 -#: js/PitchBlocks.js:405 -msgid "pitch converter" +#: js/turtledefs.js:185 +#: js/turtledefs.js:281 +#.TRANS: lógica +msgid "logic" msgstr "" -#: js/rubrics.js:522 -#: js/turtledefs.js:119 -#: js/turtledefs.js:221 -#: js/RhythmBlockPaletteBlocks.js:52 -#: js/RhythmBlockPaletteBlocks.js:233 -#: js/ProgramBlocks.js:745 -#: js/rhythmruler.js:1670 -#: js/rhythmruler.js:1677 -#: js/rhythmruler.js:1745 -#: js/rhythmruler.js:1752 -#: js/rhythmruler.js:1830 -#.TRANS: an arrangement of notes based on duration -msgid "rhythm" -msgstr "taki muyuchik" +#: js/turtledefs.js:185 +#: js/turtledefs.js:281 +#.TRANS: música +msgid "music" +msgstr "" -#: js/rubrics.js:523 -#: js/block.js:2339 -#: js/turtledefs.js:121 -#: js/turtledefs.js:223 -#: js/IntervalsBlocks.js:63 -#: js/PitchBlocks.js:1801 -#: js/PitchBlocks.js:1814 -#: js/SensorsBlocks.js:178 -#: js/phrasemaker.js:821 -#: js/musickeyboard.js:1653 -#.TRANS: pitch number -#.TRANS: we specify pitch in terms of a name and an octave. The name can be CDEFGAB or Do Re Mi Fa Sol La Ti. Octave is a number between 1 and 8. -msgid "pitch" -msgstr "kunka" +#: js/turtledefs.js:187 +#: js/turtledefs.js:463 +#.TRANS: Bloques de Música es una colección de herramientas de manipulación para explorar conceptos musicales fundamentales de una manera integradora y divertido. +msgid "Music Blocks is a collection of tools for exploring fundamental musical concepts in a fun way." +msgstr "" -#: js/rubrics.js:524 -#: js/turtledefs.js:123 -#: js/turtledefs.js:225 -msgid "tone" +#: js/turtledefs.js:436 +#.TRANS: Bienvenidos a TortuBloques +msgid "Welcome to Turtle Blocks" msgstr "" -#: js/rubrics.js:525 -#: js/lilypond.js:613 -#: js/lilypond.js:912 -#: js/lilypond.js:918 -#: js/lilypond.js:956 -msgid "mouse" +#: js/turtledefs.js:438 +#: js/turtledefs.js:465 +#: js/turtledefs.js:774 +#: js/turtledefs.js:805 +#.TRANS: La versión actual es +msgid "The current version is" msgstr "" -#: js/rubrics.js:526 -#: js/turtledefs.js:132 -#: js/turtledefs.js:234 -#: js/phrasemaker.js:825 -msgid "pen" -msgstr "qillqana" +#: js/turtledefs.js:446 +#: js/turtledefs.js:483 +#.TRANS: Haga clic para ejecutar el proyecto en modo rápido. +msgid "Click the run button to run the project in fast mode." +msgstr "" -#: js/rubrics.js:527 -#: js/turtledefs.js:133 -#: js/turtledefs.js:235 -#: js/NumberBlocks.js:905 -#: js/PitchBlocks.js:1679 -#: js/PitchBlocks.js:1720 -msgid "number" -msgstr "yupana" +#: js/turtledefs.js:452 +#.TRANS: Detener la tortuga. +msgid "Stop the turtle." +msgstr "" -#: js/rubrics.js:528 -#: js/turtledefs.js:127 -#: js/turtledefs.js:229 -msgid "flow" +#: js/turtledefs.js:454 +#: js/turtledefs.js:491 +#.TRANS: También puede escribir Alt-S para detenerse. +msgid "You can also type Alt-S to stop." msgstr "" -#: js/rubrics.js:530 -#: js/turtledefs.js:136 -#: js/turtledefs.js:238 -msgid "sensors" +#: js/turtledefs.js:462 +#: js/widgets/help.js:333 +#.TRANS: Bienvenido a Bloques de Música +msgid "Welcome to Music Blocks" +msgstr "Takiy t’aqaman allin hamunki" + +#: js/turtledefs.js:472 +#: js/widgets/help.js:334 +#.TRANS: Conoce Sr. Ratón +msgid "Meet Mr. Mouse!" +msgstr "Wiraqucha huk’uchata riqsinki" + +#: js/turtledefs.js:473 +#.TRANS: Sr. Ratón es nuestro conductor de Bloques de Música. +msgid "Mr Mouse is our Music Blocks conductor." msgstr "" -#: js/rubrics.js:531 -#: js/turtledefs.js:135 -#: js/turtledefs.js:237 -#: js/MediaBlocks.js:930 -msgid "media" +#: js/turtledefs.js:475 +#.TRANS: Sr. Ratón le anima a explorar los Bloques de Música. +msgid "Mr Mouse encourages you to explore Music Blocks." msgstr "" -#: js/rubrics.js:532 -msgid "mice" +#: js/turtledefs.js:477 +#.TRANS: Vamos a empezar nuestro recorrido! +msgid "Let us start our tour!" msgstr "" -#: js/macros.js:711 -#: js/musicutils.js:783 -#: js/synthutils.js:181 -#.TRANS: animal sound effect -msgid "duck" -msgstr "Waswa" +#: js/turtledefs.js:489 +#.TRANS: Detener la música (y los ratones) +msgid "Stop the music (and the mice)." +msgstr "" + +#: js/turtledefs.js:499 +#.TRANS: Grabe su proyecto como video. +msgid "Record your project as video." +msgstr "" + +#: js/turtledefs.js:505 +#.TRANS: Alternar el modo de pantalla completa +msgid "Toggle Fullscreen mode." +msgstr "" + +#: js/turtledefs.js:511 +#.TRANS: Inicializar un nuevo proyecto. +msgid "Initialize a new project." +msgstr "" + +#: js/turtledefs.js:517 +#.TRANS: También puede cargar proyectos desde el sistema de archivos. +msgid "You can also load projects from the file system." +msgstr "" + +#: js/turtledefs.js:522 +#: planet/js/StringHelper.js:46 +#.TRANS: Borrar +msgid "Delete" +msgstr "Borrar" + +#: js/turtledefs.js:523 +#.TRANS: Para eliminar un bloque, simplemente haz clic derecho sobre él, luego podrás ver la opción de eliminar. +msgid "To delete a block, just right-click on it, then you will be able to see the delete option" +msgstr "" + +#: js/turtledefs.js:528 +#: js/activity.js:2649 +#: planet/js/LocalCard.js:31 +#.TRANS: Copiar +msgid "Copy" +msgstr "Kikinchay" + +#: js/turtledefs.js:529 +#.TRANS: Para copiar un bloque, simplemente haz clic derecho sobre él, luego podrás ver la opción de copiar. +msgid "To copy a block, just right-click on it, then you will be able to see the copy option" +msgstr "" + +#: js/turtledefs.js:534 +#: js/piemenus.js:3411 +#.TRANS: Extraer +msgid "Extract" +msgstr "" + +#: js/turtledefs.js:535 +#.TRANS: Para extraer un bloque, simplemente haz clic derecho sobre él, luego podrás ver la opción de extracción. +msgid "To extract a block, just right-click on it, then you will be able to see the extract option" +msgstr "" + +#: js/turtledefs.js:542 +#: js/turtledefs.js:552 +#: js/turtledefs.js:573 +#.TRANS: Guarde proyecto en archivo +msgid "Save your project to a file." +msgstr "" + +#: js/turtledefs.js:549 +#: js/turtledefs.js:570 +#.TRANS: guardar +msgid "save" +msgstr "" -#: js/toolbar.js:46 -#: js/toolbar.js:107 -msgid "About Music Blocks" +#: js/turtledefs.js:556 +#: js/turtledefs.js:577 +#.TRANS: Guardar gráficos de su proyecto como SVG +msgid "Save graphics from your project to as SVG." msgstr "" -#: js/toolbar.js:47 -#: js/toolbar.js:108 -#: js/toolbar.js:172 -#: js/toolbar.js:228 -#: js/turtledefs.js:445 -#: js/turtledefs.js:482 -#: js/activity.js:2281 -#: js/activity.js:2289 -#: js/activity.js:2520 -#: js/modewidget.js:77 -#: js/pitchstaircase.js:121 -#: js/phrasemaker.js:302 -#: js/phrasemaker.js:312 -#: js/phrasemaker.js:314 -#: js/phrasemaker.js:3901 -#: js/phrasemaker.js:4061 -#: js/phrasemaker.js:4066 -#: js/phrasemaker.js:4068 -#: js/phrasemaker.js:4183 -#: js/pitchdrummatrix.js:81 -#: js/pitchdrummatrix.js:574 -#: js/pitchdrummatrix.js:576 -#: js/pitchdrummatrix.js:628 -#: js/pitchdrummatrix.js:630 -#: js/pitchdrummatrix.js:645 -#: js/pitchdrummatrix.js:647 -#: js/pitchdrummatrix.js:674 -#: js/pitchdrummatrix.js:676 -#: js/temperament.js:477 -#: js/temperament.js:480 -#: js/temperament.js:540 -#: js/temperament.js:542 -#: js/temperament.js:1835 -#: js/temperament.js:1837 -#: js/temperament.js:1986 -#: js/temperament.js:1988 -#: js/musickeyboard.js:522 -#: js/musickeyboard.js:682 -#: js/musickeyboard.js:684 -#: js/musickeyboard.js:756 -#: js/musickeyboard.js:758 -#: js/rhythmruler.js:298 -#: js/rhythmruler.js:300 -#: js/rhythmruler.js:314 -#: js/rhythmruler.js:316 -#: js/sampler.js:96 -#: js/sampler.js:98 -#: js/sampler.js:229 -#: js/sampler.js:235 -#: js/sampler.js:237 -#: js/tempo.js:84 -#: js/tempo.js:86 -#: js/timbre.js:432 -#: js/timbre.js:434 -#: js/timbre.js:465 -#: js/timbre.js:467 -#: js/timbre.js:746 -#: js/meterwidget.js:80 -#: js/arpeggio.js:90 -#: js/arpeggio.js:547 -#: js/arpeggio.js:549 -#: js/arpeggio.js:644 -#: js/arpeggio.js:646 -msgid "Play" -msgstr "waqachiy" +#: js/turtledefs.js:560 +#: js/turtledefs.js:581 +#.TRANS: Guardar gráficos de su proyecto como PNG +msgid "Save graphics from your project as PNG." +msgstr "" -#: js/toolbar.js:48 -#: js/toolbar.js:109 -#: js/toolbar.js:173 -#: js/toolbar.js:229 -#: js/turtledefs.js:451 -#: js/turtledefs.js:488 -#: js/activity.js:2297 -#: js/modewidget.js:99 -#: js/modewidget.js:101 -#: js/phrasemaker.js:323 -#: js/phrasemaker.js:325 -#: js/pitchdrummatrix.js:561 -#: js/pitchdrummatrix.js:563 -#: js/temperament.js:1820 -#: js/temperament.js:1822 -#: js/meterwidget.js:101 -#: js/meterwidget.js:103 -#: js/arpeggio.js:534 -#: js/arpeggio.js:536 -msgid "Stop" -msgstr "Sayachiy" +#: js/turtledefs.js:564 +#: js/turtledefs.js:597 +#.TRANS: Guardar bloque de ilustraciones como un archivo de SVG +msgid "Save block artwork as an SVG file." +msgstr "" -#: js/toolbar.js:49 -#: js/toolbar.js:110 -#: js/toolbar.js:174 -#: js/toolbar.js:230 -#: js/turtledefs.js:498 -msgid "Record" +#: js/turtledefs.js:585 +#.TRANS: Guarda audio de tu proyecto como WAV. +msgid "Save audio from your project as WAV." msgstr "" -#: js/toolbar.js:50 -#: js/toolbar.js:51 -msgid "Full screen" +#: js/turtledefs.js:589 +#.TRANS: Guarda tu proyecto como un archivo ABC. +msgid "Save your project to as an ABC file." msgstr "" -#: js/toolbar.js:52 -#: js/toolbar.js:112 -#: js/toolbar.js:177 -#: js/toolbar.js:232 -#: js/turtledefs.js:504 -msgid "Toggle Fullscreen" +#: js/turtledefs.js:593 +#.TRANS: Guarde el proyecto como un archivo de LilyPond. +msgid "Save your project to as a Lilypond file." msgstr "" -#: js/toolbar.js:53 -#: js/toolbar.js:113 -#: js/toolbar.js:178 -#: js/toolbar.js:233 -#: js/turtledefs.js:510 -#: js/StringHelper.js:33 -msgid "New project" -msgstr "Nuevo proyecto" +#: js/turtledefs.js:604 +#.TRANS: Cargar ejemplos desde el servidor +msgid "Load samples from server" +msgstr "" -#: js/toolbar.js:54 -#: js/toolbar.js:114 -#: js/toolbar.js:179 -#: js/toolbar.js:234 -#: js/turtledefs.js:516 -msgid "Load project from file" +#: js/turtledefs.js:605 +#.TRANS: Este botón abre la pantalla de carga de proyectos de ejemplo. +msgid "This button opens a viewer for loading example projects." msgstr "" -#: js/toolbar.js:55 -#: js/toolbar.js:115 -#: js/toolbar.js:116 -#: js/toolbar.js:180 -#: js/toolbar.js:235 -#: js/turtledefs.js:541 -#: js/turtledefs.js:550 -#: js/turtledefs.js:571 -msgid "Save project" +#: js/turtledefs.js:611 +#.TRANS: Botones de paleta +msgid "Palette buttons" msgstr "" -#: js/toolbar.js:56 -#: js/toolbar.js:75 -#: js/toolbar.js:77 -#: js/toolbar.js:135 -#: js/toolbar.js:144 -#: js/toolbar.js:146 -#: js/toolbar.js:181 -#: js/toolbar.js:199 -#: js/toolbar.js:201 -#: js/toolbar.js:236 -#: js/toolbar.js:254 -#: js/toolbar.js:256 -msgid "Save project as HTML" +#: js/turtledefs.js:612 +#.TRANS: Esta barra de herramientas contiene los botones de la paleta de Ritmo, Tono, Tortuga, y más. +msgid "This toolbar contains the palette buttons including Rhythm Pitch Tone Action and more." msgstr "" -#: js/toolbar.js:57 -#: js/toolbar.js:117 -#: js/toolbar.js:182 -#: js/toolbar.js:237 -msgid "Find and share projects" +#: js/turtledefs.js:614 +#.TRANS: Haga clic para mostrar las paletas de bloques y bloques de arrastre de las gamas de colores en el lienzo para usarlos. +msgid "Click to show the palettes of blocks and drag blocks from the palettes onto the canvas to use them." msgstr "" -#: js/toolbar.js:58 -#: js/toolbar.js:118 -#: js/toolbar.js:183 -#: js/toolbar.js:238 -msgid "Offline. Sharing is unavailable" +#: js/turtledefs.js:620 +#.TRANS: Cartesiano/Polar +msgid "Cartesian/Polar" msgstr "" -#: js/toolbar.js:59 -#: js/toolbar.js:119 -#: js/toolbar.js:184 -#: js/toolbar.js:239 -msgid "Auxiliary menu" +#: js/turtledefs.js:621 +#.TRANS: Mostrar u ocultar las rejillas de coordenadas. +msgid "Show or hide a coordinate grid." msgstr "" -#: js/toolbar.js:61 -#: js/toolbar.js:121 -#: js/toolbar.js:186 -#: js/toolbar.js:241 -msgid "Run slowly" +#: js/turtledefs.js:626 +#: js/turtles.js:902 +#.TRANS: Limpiar +msgid "Clean" msgstr "" -#: js/toolbar.js:62 -#: js/toolbar.js:122 -#: js/toolbar.js:187 -#: js/toolbar.js:242 -#: js/turtledefs.js:682 -msgid "Run step by step" +#: js/turtledefs.js:627 +#.TRANS: Borre la pantalla y devuelva los ratones a sus posiciones iniciales. +msgid "Clear the screen and return the mice to their initial positions." msgstr "" -#: js/toolbar.js:63 -#: js/toolbar.js:123 -#: js/toolbar.js:188 -#: js/toolbar.js:243 -#: js/turtledefs.js:689 -msgid "Display statistics" +#: js/turtledefs.js:632 +#: js/turtles.js:955 +#.TRANS: Contraer +msgid "Collapse" msgstr "" -#: js/toolbar.js:64 -#: js/toolbar.js:124 -#: js/toolbar.js:189 -#: js/toolbar.js:244 -msgid "Load plugin" +#: js/turtledefs.js:633 +#.TRANS: Contraer la ventana de gráficos. +msgid "Collapse the graphics window." msgstr "" -#: js/toolbar.js:65 -#: js/toolbar.js:125 -#: js/toolbar.js:190 -#: js/toolbar.js:245 -#: js/turtledefs.js:696 -msgid "Delete plugin" +#: js/turtledefs.js:638 +#: js/activity.js:5684 +#.TRANS: Casa +msgid "Home" msgstr "" -#: js/toolbar.js:66 -#: js/toolbar.js:126 -#: js/toolbar.js:191 -#: js/toolbar.js:246 -msgid "Enable horizontal scrolling" +#: js/turtledefs.js:639 +#.TRANS: Devolver todos los bloques para el centro de la pantalla. +msgid "Return all blocks to the center of the screen." msgstr "" -#: js/toolbar.js:67 -#: js/toolbar.js:127 -#: js/toolbar.js:192 -#: js/toolbar.js:247 -msgid "Disable horizontal scrolling" +#: js/turtledefs.js:644 +#.TRANS: Mostrar u ocultar los bloques. +msgid "Show/hide blocks" msgstr "" -#: js/toolbar.js:68 -#: js/toolbar.js:128 -#: js/toolbar.js:193 -#: js/toolbar.js:248 -#: js/LocalCard.js:54 -#: js/StringHelper.js:71 -msgid "Merge with current project" -msgstr "Unir con el proyecto actual" +#: js/turtledefs.js:645 +#.TRANS: Ocultar o mostrar los bloques y las paletas. +msgid "Hide or show the blocks and the palettes." +msgstr "" -#: js/toolbar.js:69 -#: js/toolbar.js:129 -msgid "Set Pitch Preview" +#: js/turtledefs.js:650 +#.TRANS: Expandir/contraer los bloques +msgid "Expand/collapse collapsable blocks" msgstr "" -#: js/toolbar.js:70 -#: js/toolbar.js:130 -#: js/toolbar.js:194 -#: js/toolbar.js:249 -msgid "Toggle JavaScript Editor" +#: js/turtledefs.js:651 +#.TRANS: Expandir o colapsar los bloques colapsables, cómo por ejemplo los bloques de empezar y los de acción. +msgid "Expand or collapse start and action stacks." msgstr "" -#: js/toolbar.js:71 -#: js/toolbar.js:131 -#: js/toolbar.js:195 -#: js/toolbar.js:250 -#: js/turtledefs.js:724 -msgid "Restore" +#: js/turtledefs.js:658 +#: js/activity.js:5704 +#.TRANS: Disminuir el tamaño de los bloques +msgid "Decrease block size" msgstr "" -#: js/toolbar.js:72 -#: js/toolbar.js:132 -#: js/toolbar.js:196 -#: js/toolbar.js:251 -msgid "Switch to beginner mode" +#: js/turtledefs.js:659 +#.TRANS: Disminuye el tamaño de los bloques +msgid "Decrease the size of the blocks." msgstr "" -#: js/toolbar.js:73 -#: js/toolbar.js:133 -#: js/toolbar.js:197 -#: js/toolbar.js:252 -msgid "Switch to advanced mode" +#: js/turtledefs.js:664 +#: js/activity.js:5710 +#.TRANS: Incrementar tamaño de bloques +msgid "Increase block size" msgstr "" -#: js/toolbar.js:74 -#: js/toolbar.js:134 -#: js/toolbar.js:143 -#: js/toolbar.js:198 -#: js/toolbar.js:253 -#: js/turtledefs.js:738 -msgid "Select language" +#: js/turtledefs.js:665 +#.TRANS: Incrementa el tamaño de los bloques. +msgid "Increase the size of the blocks." msgstr "" -#: js/toolbar.js:76 -#: js/toolbar.js:79 -#: js/toolbar.js:137 -#: js/turtledefs.js:579 -msgid "Save mouse artwork as PNG" +#: js/turtledefs.js:670 +#.TRANS: Expandir/colapsar la barra de opciones. +msgid "Expand/collapse option toolbar" msgstr "" -#: js/toolbar.js:78 -#: js/toolbar.js:136 -#: js/turtledefs.js:575 -msgid "Save mouse artwork as SVG" +#: js/turtledefs.js:671 +#.TRANS: Haga clic en este botón para expandir o contraer la barra de herramientas auxiliar. +msgid "Click this button to expand or collapse the auxillary toolbar." msgstr "" -#: js/toolbar.js:80 -#: js/toolbar.js:138 -#: js/turtledefs.js:583 -msgid "Save music as WAV" +#: js/turtledefs.js:676 +#.TRANS: Ejecutar lentamente +msgid "Run slow" msgstr "" -#: js/toolbar.js:81 -#: js/toolbar.js:139 -#: js/turtledefs.js:587 -msgid "Save sheet music as ABC" +#: js/turtledefs.js:677 +#.TRANS: Haz click para ejecutar el proyecto en modo lento. +msgid "Click to run the project in slow mode." msgstr "" -#: js/toolbar.js:82 -#: js/toolbar.js:140 -#: js/turtledefs.js:591 -msgid "Save sheet music as Lilypond" +#: js/turtledefs.js:683 +#.TRANS: Haz click para ejecutar el proyecto en modo paso a paso. +msgid "Click to run the project step by step." msgstr "" -#: js/toolbar.js:83 -msgid "Save sheet music as MusicXML" +#: js/turtledefs.js:690 +#.TRANS: Analizar los tipos de bloques usados. +msgid "Display statistics about your Music project." msgstr "" -#: js/toolbar.js:84 -#: js/toolbar.js:141 -#: js/toolbar.js:149 -#: js/toolbar.js:204 -#: js/toolbar.js:259 -#: js/turtledefs.js:562 -#: js/turtledefs.js:595 -msgid "Save block artwork as SVG" +#: js/turtledefs.js:697 +#.TRANS: Eliminar un plugin seleccionado. +msgid "Delete a selected plugin." msgstr "" -#: js/toolbar.js:85 -#: js/toolbar.js:142 -#: js/toolbar.js:150 -#: js/toolbar.js:205 -#: js/toolbar.js:260 -msgid "Confirm" +#: js/turtledefs.js:704 +#.TRANS: Activar scroll +msgid "Enable scrolling" msgstr "" -#: js/toolbar.js:86 -#: js/toolbar.js:151 -#: js/toolbar.js:206 -#: js/toolbar.js:261 -msgid "English (United States)" +#: js/turtledefs.js:705 +#.TRANS: Puedes mover los bloques por el área de trabajo +msgid "You can scroll the blocks on the canvas." msgstr "" -#: js/toolbar.js:87 -#: js/toolbar.js:152 -#: js/toolbar.js:207 -#: js/toolbar.js:262 -msgid "English (United Kingdom)" +#: js/turtledefs.js:714 +#.TRANS: Envolver tortuga +msgid "Wrap Turtle" msgstr "" -#: js/toolbar.js:88 -#: js/toolbar.js:153 -#: js/toolbar.js:208 -#: js/toolbar.js:263 -msgid "日本語" +#: js/turtledefs.js:715 +#.TRANS: Encender / apagar la envoltura de tortugas +msgid "Turn Turtle wrapping On or Off." msgstr "" -#: js/toolbar.js:89 -msgid "한국어" +#: js/turtledefs.js:725 +#.TRANS: Restaurar bloques de la papelera. +msgid "Restore blocks from the trash." msgstr "" -#: js/toolbar.js:90 -#: js/toolbar.js:155 -#: js/toolbar.js:210 -#: js/toolbar.js:265 -msgid "español" +#: js/turtledefs.js:732 +#.TRANS: Cambiar el modo +msgid "Switch mode" msgstr "" -#: js/toolbar.js:91 -#: js/toolbar.js:156 -#: js/toolbar.js:211 -#: js/toolbar.js:266 -msgid "português" +#: js/turtledefs.js:733 +#.TRANS: Cambia entre los modos principiante y avanzado. +msgid "Switch between beginner and advance modes." msgstr "" -#: js/toolbar.js:92 -#: js/toolbar.js:157 -#: js/toolbar.js:212 -#: js/toolbar.js:267 -msgid "にほんご" +#: js/turtledefs.js:739 +#.TRANS: Seleccione su preferencia de idioma. +msgid "Select your language preference." msgstr "" -#: js/toolbar.js:93 -#: js/toolbar.js:158 -#: js/toolbar.js:213 -#: js/toolbar.js:268 -msgid "中文" +#: js/turtledefs.js:745 +#.TRANS: Atajos de teclado +msgid "Keyboard shortcuts" msgstr "" -#: js/toolbar.js:94 -#: js/toolbar.js:159 -#: js/toolbar.js:214 -#: js/toolbar.js:269 -msgid "ภาษาไทย" +#: js/turtledefs.js:746 +#.TRANS: Puede escribir \"d\" para crear un bloque \"do\", \"r\" para crear un bloque \"re\", etc. +msgid "You can type d to create a do block and r to create a re block etc." msgstr "" -#: js/toolbar.js:95 -#: js/toolbar.js:160 -#: js/toolbar.js:215 -#: js/toolbar.js:270 -msgid "aymara" +#: js/turtledefs.js:753 +#.TRANS: Mostrar estos mensajes. +msgid "Show these messages." msgstr "" -#: js/toolbar.js:96 -#: js/toolbar.js:161 -#: js/toolbar.js:216 -#: js/toolbar.js:271 -msgid "quechua" +#: js/turtledefs.js:759 +#: js/turtledefs.js:790 +#: js/widgets/help.js:335 +#.TRANS: Guía +msgid "Guide" +msgstr "pusaq" + +#: js/turtledefs.js:760 +#.TRANS: Se encuentra disponible una guía detallada de TortuBloques. +msgid "A detailed guide to Turtle Blocks is available." msgstr "" -#: js/toolbar.js:97 -#: js/toolbar.js:162 -#: js/toolbar.js:217 -#: js/toolbar.js:272 -msgid "guarani" +#: js/turtledefs.js:764 +#.TRANS: Guía de TortuBloques +msgid "Turtle Blocks Guide" msgstr "" -#: js/toolbar.js:98 -#: js/toolbar.js:163 -#: js/toolbar.js:218 -#: js/toolbar.js:273 -msgid "हिंदी" +#: js/turtledefs.js:767 +#: js/turtledefs.js:798 +#: js/widgets/help.js:336 +#.TRANS: Acerca +msgid "About" +msgstr "qayllampi" + +#: js/turtledefs.js:768 +#.TRANS: TortuBloques es una colección de herramientas de Software Libre para explorar conceptos musicales. +msgid "Turtle Blocks is an open source collection of tools for exploring musical concepts." msgstr "" -#: js/toolbar.js:99 -#: js/toolbar.js:165 -#: js/toolbar.js:219 -#: js/toolbar.js:275 -msgid "igbo" +#: js/turtledefs.js:770 +#.TRANS: Se puede encontrar una lista completa de colaboradores en el repositorio GitHub de TortuBloques. +msgid "A full list of contributors can be found in the Turtle Blocks GitHub repository." msgstr "" -#: js/toolbar.js:100 -#: js/toolbar.js:166 -#: js/toolbar.js:220 -#: js/toolbar.js:276 -msgid "عربى" +#: js/turtledefs.js:772 +#.TRANS: TortuBloques está licenciado bajo el AGPL. +msgid "Turtle Blocks is licensed under the AGPL." msgstr "" -#: js/toolbar.js:101 -#: js/toolbar.js:164 -#: js/toolbar.js:221 -#: js/toolbar.js:274 -msgid "తెలుగు" +#: js/turtledefs.js:780 +#.TRANS: El repositorio de GitHub de TortuBloques +msgid "Turtle Blocks GitHub repository" msgstr "" -#: js/toolbar.js:102 -#: js/toolbar.js:167 -#: js/toolbar.js:222 -#: js/toolbar.js:277 -msgid "עִברִית" +#: js/turtledefs.js:783 +#: js/turtledefs.js:814 +#: js/widgets/help.js:337 +#: js/widgets/help.js:359 +#.TRANS: Felicitaciones. +msgid "Congratulations." +msgstr "Felicitaciones." + +#: js/turtledefs.js:784 +#.TRANS: Ha terminado la gira. Por favor, disfrutar de TortuBloques +msgid "You have finished the tour. Please enjoy Turtle Blocks!" msgstr "" -#: js/toolbar.js:111 -#: js/toolbar.js:175 -#: js/toolbar.js:176 -#: js/toolbar.js:231 -msgid "Full Screen" +#: js/turtledefs.js:791 +#.TRANS: Una guía detallada de Bloques de Música está disponible. +msgid "A detailed guide to Music Blocks is available." msgstr "" -#: js/toolbar.js:145 -#: js/toolbar.js:148 -#: js/toolbar.js:200 -#: js/toolbar.js:203 -#: js/toolbar.js:255 -#: js/toolbar.js:258 -#: js/turtledefs.js:558 -msgid "Save turtle artwork as PNG" +#: js/turtledefs.js:799 +#.TRANS: Bloques de Música es una colección de herramientas de Software Libre para explorar conceptos musicales. +msgid "Music Blocks is an open source collection of tools for exploring musical concepts." msgstr "" -#: js/toolbar.js:147 -#: js/toolbar.js:202 -#: js/toolbar.js:257 -#: js/turtledefs.js:554 -msgid "Save turtle artwork as SVG" +#: js/turtledefs.js:801 +#.TRANS: Se puede encontrar una lista completa de colaboradores en el repositorio GitHub de Bloques de Música. +msgid "A full list of contributors can be found in the Music Blocks GitHub repository." msgstr "" -#: js/toolbar.js:154 -#: js/toolbar.js:209 -#: js/toolbar.js:264 -msgid "한국인" +#: js/turtledefs.js:803 +#.TRANS: Bloques de Música está licenciado bajo el AGPL. +msgid "Music Blocks is licensed under the AGPL." msgstr "" -#: js/toolbar.js:171 -#: js/toolbar.js:227 -msgid "About Turtle Blocks" +#: js/turtledefs.js:811 +#.TRANS: El repositorio de GitHub de Bloques de Música +msgid "Music Blocks GitHub repository" msgstr "" -#: js/toolbar.js:429 -#: js/toolbar.js:440 -msgid "Turtle Wrap Off" +#: js/turtledefs.js:815 +#.TRANS: Ha terminado la gira. Por favor, disfrutar de Bloques de Música! +msgid "You have finished the tour. Please enjoy Music Blocks!" msgstr "" -#: js/toolbar.js:442 -msgid "Turtle Wrap On" +#: js/turtles.js:882 +#.TRANS: Cuadrícula +msgid "Grid" +msgstr "" + +#: js/turtles.js:1024 +#.TRANS: Expandir +msgid "Expand" msgstr "" -#: js/block.js:1470 +#: js/block-verbose.js:1616 +#: js/block-verbose.js:1735 +#: js/block.js:1580 +#: js/block.js:1699 +#: js/palette.js:605 +#: js/blocks/IntervalsBlocks.js:63 +#: js/blocks/WidgetBlocks.js:259 +#.TRANS: temperamento +msgid "temperament" +msgstr "munasqanman tikrakuq" + +#: js/block-verbose.js:1630 +#: js/block.js:1594 +#.TRANS: matriz msgid "matrix" msgstr "" -#: js/block.js:1477 -#: js/WidgetBlocks.js:1226 +#: js/block-verbose.js:1637 +#: js/block.js:1601 +#: js/blocks/WidgetBlocks.js:1509 #: plugins/rodi.rtp:324 +#.TRANS: estatus msgid "status" msgstr "kakusqan" -#: js/block.js:1484 +#: js/block-verbose.js:1644 +#: js/block.js:1608 +#.TRANS: mapa del tambor msgid "drum mapper" msgstr "" -#: js/block.js:1491 +#: js/block-verbose.js:1651 +#: js/block.js:1615 +#.TRANS: regla msgid "ruler" msgstr "" -#: js/block.js:1498 -#: js/WidgetBlocks.js:327 +#: js/block-verbose.js:1658 +#: js/block.js:1622 +#: js/blocks/WidgetBlocks.js:397 #.TRANS: timbre is the character or quality of a musical sound +#.TRANS: timbre msgid "timbre" msgstr "kunkariq" -#: js/block.js:1505 +#: js/block-verbose.js:1665 +#: js/block.js:1629 +#.TRANS: escalera msgid "stair" msgstr "" -#: js/block.js:1512 -#: js/WidgetBlocks.js:577 +#: js/block-verbose.js:1672 +#: js/block.js:1636 +#: js/blocks/WidgetBlocks.js:707 #.TRANS: the speed at music is should be played. +#.TRANS: tempo msgid "tempo" msgstr "" -#: js/block.js:1519 -#: js/block.js:1582 -#: js/IntervalsBlocks.js:1268 +#: js/block-verbose.js:1679 +#: js/block-verbose.js:1742 +#: js/block.js:1643 +#: js/block.js:1706 +#: js/blocks/IntervalsBlocks.js:1464 #.TRANS: mode, e.g., Major in C Major +#.TRANS: modo msgid "mode" msgstr "Tupasqa kunkakuna" -#: js/block.js:1526 +#: js/block-verbose.js:1686 +#: js/block.js:1650 +#.TRANS: deslizador msgid "slider" msgstr "" -#: js/block.js:1533 -#: js/SensorsBlocks.js:1001 +#: js/block-verbose.js:1693 +#: js/block.js:1657 +#: js/blocks/SensorsBlocks.js:1001 +#.TRANS: teclado msgid "keyboard" msgstr "ñup’una taqi" -#: js/block.js:1547 -#: js/WidgetBlocks.js:957 -#: js/WidgetBlocks.js:988 +#: js/block-verbose.js:1707 +#: js/block.js:1671 +#: js/blocks/WidgetBlocks.js:1190 +#: js/blocks/WidgetBlocks.js:1228 #.TRANS: widget for subdividing a measure into distinct rhythmic elements +#.TRANS: hacer un ritmo msgid "rhythm maker" msgstr " kunka ruray" -#: js/block.js:1554 -#: js/block.js:2182 -#: js/block.js:2236 -#: js/RhythmBlockPaletteBlocks.js:70 -#: js/RhythmBlockPaletteBlocks.js:251 -#: js/RhythmBlockPaletteBlocks.js:484 -#: js/RhythmBlockPaletteBlocks.js:553 -#: js/RhythmBlockPaletteBlocks.js:604 -#: js/RhythmBlockPaletteBlocks.js:874 -#: js/RhythmBlocks.js:33 -#: js/RhythmBlocks.js:356 -#: js/RhythmBlocks.js:766 -#: js/RhythmBlocks.js:806 -#: js/OrnamentBlocks.js:220 -#: js/OrnamentBlocks.js:312 -#: js/MeterBlocks.js:1367 -#: js/DictActions.js:85 -#: js/phrasemaker.js:731 -#: js/phrasemaker.js:2393 -#: js/phrasemaker.js:2436 -#: js/phrasemaker.js:2534 +#: js/block-verbose.js:1714 +#: js/block-verbose.js:2457 +#: js/block-verbose.js:2514 +#: js/block.js:1678 +#: js/block.js:2385 +#: js/block.js:2442 +#: js/blocks/MeterBlocks.js:1367 +#: js/blocks/OrnamentBlocks.js:220 +#: js/blocks/OrnamentBlocks.js:312 +#: js/blocks/RhythmBlocks.js:33 +#: js/blocks/RhythmBlocks.js:356 +#: js/blocks/RhythmBlocks.js:766 +#: js/blocks/RhythmBlocks.js:806 +#: js/blocks/RhythmBlockPaletteBlocks.js:70 +#: js/blocks/RhythmBlockPaletteBlocks.js:252 +#: js/blocks/RhythmBlockPaletteBlocks.js:485 +#: js/blocks/RhythmBlockPaletteBlocks.js:554 +#: js/blocks/RhythmBlockPaletteBlocks.js:605 +#: js/blocks/RhythmBlockPaletteBlocks.js:875 +#: js/turtleactions/DictActions.js:85 +#: js/widgets/phrasemaker.js:942 +#: js/widgets/phrasemaker.js:2656 +#: js/widgets/phrasemaker.js:2699 +#: js/widgets/phrasemaker.js:2810 #.TRANS: the value (e.g., 1/4 note) of the note being played. +#.TRANS: valor de la nota msgid "note value" msgstr "T’uyaq yupaynin" -#: js/block.js:1561 -#: js/block.js:2110 -#: js/block.js:2133 -#: js/IntervalsBlocks.js:875 -#: js/OrnamentBlocks.js:312 +#: js/block-verbose.js:1721 +#: js/block-verbose.js:2382 +#: js/block-verbose.js:2405 +#: js/block.js:1685 +#: js/block.js:2310 +#: js/block.js:2333 +#: js/blocks/IntervalsBlocks.js:1071 +#: js/blocks/OrnamentBlocks.js:312 #.TRANS: calculate a relative step between notes based on semi-tones +#.TRANS: intervalo escalar msgid "scalar interval" msgstr "intervalo escalar" -#: js/block.js:1568 -#: js/RhythmBlocks.js:148 +#: js/block-verbose.js:1728 +#: js/block.js:1692 +#: js/blocks/RhythmBlocks.js:148 +#.TRANS: milisegundos msgid "milliseconds" msgstr "k’ata tip" -#: js/block.js:2180 -#: js/block.js:2184 -#: js/block.js:2234 -#: js/block.js:2345 -#: js/ProgramBlocks.js:1273 -#: js/RhythmBlocks.js:712 -#: js/rhythmruler.js:834 -#: js/rhythmruler.js:961 +#: js/block-verbose.js:2455 +#: js/block-verbose.js:2459 +#: js/block-verbose.js:2512 +#: js/block-verbose.js:2628 +#: js/block.js:2383 +#: js/block.js:2387 +#: js/block.js:2440 +#: js/block.js:2556 +#: js/blocks/RhythmBlocks.js:712 +#: js/blocks/ProgramBlocks.js:1273 +#: js/widgets/rhythmruler.js:1183 +#: js/widgets/rhythmruler.js:1329 +#.TRANS: silencio msgid "silence" msgstr "ch’in" -#: js/block.js:2265 -#: js/block.js:3134 -#: js/block.js:3151 -#: js/activity.js:2336 -#: js/activity.js:2387 -#: js/musicutils.js:2932 -#: js/musicutils.js:4287 +#: js/block-verbose.js:2548 +#: js/block-verbose.js:3492 +#: js/block-verbose.js:3509 +#: js/activity.js:2718 +#: js/activity.js:2769 +#: js/block.js:2476 +#: js/block.js:3416 +#: js/block.js:3433 +#: js/utils/musicutils.js:3780 +#: js/utils/musicutils.js:5273 #.TRANS: the note names must be separated by single spaces #.TRANS: the note names must be separated by single spaces +#.TRANS: the note names must be separated by single spaces +#.TRANS: si la sol fa mi re do msgid "ti la sol fa mi re do" msgstr "si la sol fa mi re do" -#: js/block.js:2333 +#: js/block-verbose.js:2616 +#: js/block.js:2544 #.TRANS: scalar step +#.TRANS: scalar step +#.TRANS: abajo msgid "down" msgstr "" -#: js/block.js:2334 +#: js/block-verbose.js:2617 +#: js/block.js:2545 +#.TRANS: arriba msgid "up" msgstr "" -#: js/block.js:3477 -#: js/block.js:3490 -#: js/ExtrasBlocks.js:612 +#: js/block-verbose.js:3026 +#: js/block.js:2950 +#.TRANS: El bloqueo de silencio no se puede eliminar. +msgid "Silence block cannot be removed." +msgstr "" + +#: js/block-verbose.js:3824 +#: js/block.js:3748 +#: js/blocks.js:2607 +#: js/blocks.js:3218 +#: js/palette.js:618 +#: js/blocks/BooleanBlocks.js:77 +#: js/blocks/BooleanBlocks.js:167 +#: js/blocks/BooleanBlocks.js:251 +#: js/blocks/BooleanBlocks.js:335 +#: js/blocks/BooleanBlocks.js:433 +#: js/blocks/BooleanBlocks.js:539 +#: js/blocks/BooleanBlocks.js:640 +#: js/blocks/BooleanBlocks.js:741 +#: js/blocks/BooleanBlocks.js:847 +#: js/blocks/BooleanBlocks.js:948 +#: js/blocks/BooleanBlocks.js:1033 +#: js/blocks/SensorsBlocks.js:910 +#.TRANS: verdadero +msgid "true" +msgstr "chiqaq" + +#: js/block-verbose.js:3824 +#: js/block.js:3748 +#: js/blocks.js:2609 +#: js/blocks.js:3220 +#: js/blocks/BooleanBlocks.js:79 +#: js/blocks/BooleanBlocks.js:169 +#: js/blocks/BooleanBlocks.js:253 +#: js/blocks/BooleanBlocks.js:337 +#: js/blocks/BooleanBlocks.js:435 +#: js/blocks/BooleanBlocks.js:541 +#: js/blocks/BooleanBlocks.js:642 +#: js/blocks/BooleanBlocks.js:743 +#: js/blocks/BooleanBlocks.js:849 +#: js/blocks/BooleanBlocks.js:950 +#: js/blocks/SensorsBlocks.js:912 +#.TRANS: falso +msgid "false" +msgstr "llulla" + +#: js/block-verbose.js:3835 +#: js/block-verbose.js:3848 +#: js/block.js:3759 +#: js/block.js:3772 +#: js/blocks/ExtrasBlocks.js:615 +#.TRANS: Cartesiano msgid "Cartesian" msgstr "" -#: js/block.js:3478 -#: js/block.js:3491 -#: js/ExtrasBlocks.js:616 +#: js/block-verbose.js:3836 +#: js/block-verbose.js:3849 +#: js/block.js:3760 +#: js/block.js:3773 +#: js/blocks/ExtrasBlocks.js:619 +#.TRANS: polar msgid "polar" msgstr "" -#: js/block.js:3479 -#: js/block.js:3492 -#: js/ExtrasBlocks.js:620 +#: js/block-verbose.js:3837 +#: js/block-verbose.js:3850 +#: js/block.js:3761 +#: js/block.js:3774 +#: js/blocks/ExtrasBlocks.js:623 +#.TRANS: Cartesiano+polar msgid "Cartesian+polar" msgstr "" -#: js/block.js:3480 -#: js/block.js:3499 -#: js/ExtrasBlocks.js:649 +#: js/block-verbose.js:3838 +#: js/block-verbose.js:3857 +#: js/block.js:3762 +#: js/block.js:3781 +#: js/blocks/ExtrasBlocks.js:652 +#.TRANS: ninguno msgid "none" msgstr "" -#: js/block.js:3493 -#: js/ExtrasBlocks.js:625 +#: js/block-verbose.js:3851 +#: js/block.js:3775 +#: js/blocks/ExtrasBlocks.js:628 +#.TRANS: agudos msgid "treble" msgstr "" -#: js/block.js:3494 -#: js/ExtrasBlocks.js:629 +#: js/block-verbose.js:3852 +#: js/block.js:3776 +#: js/blocks/ExtrasBlocks.js:632 +#.TRANS: staff grande msgid "grand staff" msgstr "" -#: js/block.js:3495 -#: js/ExtrasBlocks.js:633 +#: js/block-verbose.js:3853 +#: js/block.js:3777 +#: js/blocks/ExtrasBlocks.js:636 +#.TRANS: mezzo-soprano msgid "mezzo-soprano" msgstr "" -#: js/block.js:3496 -#: js/ExtrasBlocks.js:637 +#: js/block-verbose.js:3854 +#: js/block.js:3778 +#: js/blocks/ExtrasBlocks.js:640 +#.TRANS: alto msgid "alto" msgstr "" -#: js/block.js:3497 -#: js/ExtrasBlocks.js:641 +#: js/block-verbose.js:3855 +#: js/block.js:3779 +#: js/blocks/ExtrasBlocks.js:644 +#.TRANS: tenor msgid "tenor" msgstr "" -#: js/block.js:3498 -#: js/ExtrasBlocks.js:645 -#: js/musicutils.js:736 -#: js/synthutils.js:64 -#.TRANS: musical instrument -msgid "bass" -msgstr "" - -#: js/block.js:4075 -msgid "Not a number" -msgstr "" - -#: js/block.js:4082 -msgid "Octave value must be between 1 and 10." -msgstr "" - -#: js/block.js:4090 -msgid "Numbers can have at most 10 digits." -msgstr "" - -#: js/notation.js:353 -msgid "Lilypond cannot process pickup of " -msgstr "" - -#: js/turtledefs.js:40 -#.TRANS: put the URL to the guide here, e.g., https://github.com/sugarlabs/turtleblocksjs/tree/master/guide/README.md -msgid "guide url" -msgstr "" - -#: js/turtledefs.js:85 -#: js/turtledefs.js:437 -msgid "Turtle Blocks is a Logo-inspired turtle that draws colorful pictures with snap-together visual-programming blocks." -msgstr "" - -#: js/turtledefs.js:118 -#: js/turtledefs.js:220 -msgid "search" -msgstr "" - -#: js/turtledefs.js:120 -#: js/turtledefs.js:222 -#: js/WidgetBlocks.js:437 -#: js/MeterBlocks.js:1343 -#.TRANS: musical meter (time signature), e.g., 4:4 -msgid "meter" -msgstr "tupuna" - -#: js/turtledefs.js:122 -#: js/turtledefs.js:224 -msgid "intervals" -msgstr "" - -#: js/turtledefs.js:124 -#: js/turtledefs.js:226 -msgid "ornament" -msgstr "" - -#: js/turtledefs.js:125 -#: js/turtledefs.js:227 -#: js/VolumeBlocks.js:362 -#: js/VolumeBlocks.js:502 -#: js/VolumeBlocks.js:545 -msgid "volume" -msgstr "volumen" - -#: js/turtledefs.js:129 -#: js/turtledefs.js:231 -msgid "boxes" -msgstr "" - -#: js/turtledefs.js:130 -#: js/turtledefs.js:232 -msgid "widgets" +#: js/block-verbose.js:3856 +#: js/block.js:3780 +#: js/utils/musicutils.js:1115 +#: js/utils/synthutils.js:80 +#: js/blocks/ExtrasBlocks.js:648 +#.TRANS: musical instrument +#.TRANS: bass +msgid "bass" msgstr "" -#: js/turtledefs.js:131 -#: js/turtledefs.js:233 -#: js/phrasemaker.js:824 -msgid "graphics" -msgstr "siq’ikuna" - -#: js/turtledefs.js:134 -#: js/turtledefs.js:236 -msgid "boolean" +#: js/block-verbose.js:3901 +#: js/block.js:3825 +#: js/blocks.js:2600 +#: js/blocks.js:3211 +#.TRANS: encendido +msgid "on2" msgstr "" -#: js/turtledefs.js:137 -#: js/turtledefs.js:239 -#: js/HeapBlocks.js:59 -#: js/status.js:147 -msgid "heap" +#: js/block-verbose.js:3903 +#: js/block.js:3827 +#: js/blocks.js:2602 +#: js/blocks.js:3213 +#.TRANS: apagado +msgid "off" msgstr "" -#: js/turtledefs.js:138 -#: js/turtledefs.js:240 -#: js/ProgramBlocks.js:495 -#: js/DictBlocks.js:142 -msgid "dictionary" +#: js/block-verbose.js:4470 +#: js/block.js:4394 +#.TRANS: no es un número +msgid "Not a number" msgstr "" -#: js/turtledefs.js:139 -#: js/turtledefs.js:241 -msgid "ensemble" +#: js/block-verbose.js:4477 +#: js/block.js:4401 +#.TRANS: El bloqueo de silencio no se puede eliminar. +msgid "Octave value must be between 1 and 10." msgstr "" -#: js/turtledefs.js:140 -#: js/turtledefs.js:242 -msgid "extras" +#: js/block-verbose.js:4485 +#: js/block.js:4409 +#.TRANS: El bloqueo de silencio no se puede eliminar. +msgid "Numbers can have at most 10 digits." msgstr "" -#: js/turtledefs.js:142 -#: js/turtledefs.js:244 -#.TRANS: program as in computer program -#.TRANS: program as in computer program -msgid "program" +#: js/activity.js:390 +#: js/activity.js:395 +#.TRANS: Buscar bloques +msgid "Search for blocks" msgstr "" -#: js/turtledefs.js:143 -#: js/turtledefs.js:245 -msgid "my blocks" +#: js/activity.js:1413 +#.TRANS: Actualice su navegador para cambiar al modo avanzado. +msgid "Refresh your browser to change to advanced mode." msgstr "" -#: js/turtledefs.js:185 -#: js/turtledefs.js:281 -msgid "artwork" +#: js/activity.js:1418 +#.TRANS: Actualice su navegador para cambiar al modo principiante. +msgid "Refresh your browser to change to beginner mode." msgstr "" -#: js/turtledefs.js:185 -#: js/turtledefs.js:281 -msgid "logic" +#: js/activity.js:1477 +#.TRANS: atrapar ratones +msgid "Catching mice" msgstr "" -#: js/turtledefs.js:185 -#: js/turtledefs.js:281 -msgid "music" +#: js/activity.js:1478 +#.TRANS: limpiar los instrumentos +msgid "Cleaning the instruments" msgstr "" -#: js/turtledefs.js:187 -#: js/turtledefs.js:463 -msgid "Music Blocks is a collection of tools for exploring fundamental musical concepts in a fun way." +#: js/activity.js:1479 +#.TRANS: probando piezas clave +msgid "Testing key pieces" msgstr "" -#: js/turtledefs.js:436 -msgid "Welcome to Turtle Blocks" +#: js/activity.js:1480 +#.TRANS: lectura a primera vista +msgid "Sight-reading" msgstr "" -#: js/turtledefs.js:438 -#: js/turtledefs.js:465 -#: js/turtledefs.js:774 -#: js/turtledefs.js:805 -msgid "The current version is" +#: js/activity.js:1481 +#.TRANS: combinando matemáticas y música +msgid "Combining math and music" msgstr "" -#: js/turtledefs.js:446 -#: js/turtledefs.js:483 -msgid "Click the run button to run the project in fast mode." +#: js/activity.js:1482 +#.TRANS: generando más bloques +msgid "Generating more blocks" msgstr "" -#: js/turtledefs.js:452 -msgid "Stop the turtle." +#: js/activity.js:1483 +#.TRANS: Do Re Mi Fa Sol La Si Do +msgid "Do Re Mi Fa Sol La Ti Do" msgstr "" -#: js/turtledefs.js:454 -#: js/turtledefs.js:491 -msgid "You can also type Alt-S to stop." +#: js/activity.js:1484 +#.TRANS: afinar instrumentos de cuerda +msgid "Tuning string instruments" msgstr "" -#: js/turtledefs.js:462 -#: js/help.js:333 -msgid "Welcome to Music Blocks" -msgstr "Takiy t’aqaman allin hamunki" +#: js/activity.js:1485 +#.TRANS: presionando teclas aleatorias +msgid "Pressing random keys" +msgstr "" -#: js/turtledefs.js:472 -#: js/help.js:334 -msgid "Meet Mr. Mouse!" -msgstr "Wiraqucha huk’uchata riqsinki" +#: js/activity.js:1663 +#.TRANS: los plugins se eliminarán al reiniciar. +msgid "plugins will be removed upon restart." +msgstr "" -#: js/turtledefs.js:473 -msgid "Mr Mouse is our Music Blocks conductor." +#: js/activity.js:1672 +#.TRANS: Mostrar Cartesiano +msgid "show Cartesian" msgstr "" -#: js/turtledefs.js:475 -msgid "Mr Mouse encourages you to explore Music Blocks." +#: js/activity.js:2211 +#: js/palette.js:589 +#: js/blocks/RhythmBlocks.js:923 +#: js/blocks/PitchBlocks.js:442 +#: js/blocks/PitchBlocks.js:1786 +#.TRANS: a numeric mapping of the notes in an octave based on the musical mode +#.TRANS: grado de escala +msgid "scale degree" msgstr "" -#: js/turtledefs.js:477 -msgid "Let us start our tour!" +#: js/activity.js:2214 +#: js/palette.js:598 +#.TRANS: nombre de voz +msgid "voice name" msgstr "" -#: js/turtledefs.js:489 -msgid "Stop the music (and the mice)." +#: js/activity.js:2217 +#: js/palette.js:595 +#.TRANS: modo invertido +msgid "invert mode" msgstr "" -#: js/turtledefs.js:499 -msgid "Record your project as video." +#: js/activity.js:2220 +#.TRANS: herramientas de producción +msgid "output tools" msgstr "" -#: js/turtledefs.js:505 -msgid "Toggle Fullscreen mode." +#: js/activity.js:2223 +#.TRANS: nota personalizada +msgid "custom note" msgstr "" -#: js/turtledefs.js:511 -msgid "Initialize a new project." +#: js/activity.js:2226 +#.TRANS: nombre accidental +msgid "accidental name" msgstr "" -#: js/turtledefs.js:517 -msgid "You can also load projects from the file system." +#: js/activity.js:2229 +#: js/blocks/PitchBlocks.js:855 +#.TRANS: +msgid "east indian solfege" msgstr "" -#: js/turtledefs.js:522 -#: js/StringHelper.js:46 -msgid "Delete" -msgstr "Borrar" +#: js/activity.js:2232 +#: js/blocks/PitchBlocks.js:869 +#.TRANS: nombre de la nota +msgid "note name" +msgstr "" -#: js/turtledefs.js:523 -msgid "To delete a block, just right-click on it, then you will be able to see the delete option" +#: js/activity.js:2235 +#: js/blocks/IntervalsBlocks.js:94 +#.TRANS: nombre de temperamento +msgid "temperament name" msgstr "" -#: js/turtledefs.js:528 -#: js/activity.js:2270 -#: js/LocalCard.js:31 -msgid "Copy" -msgstr "Kikinchay" +#: js/activity.js:2238 +#: js/palette.js:592 +#.TRANS: nombre de modo +msgid "mode name" +msgstr "" -#: js/turtledefs.js:529 -msgid "To copy a block, just right-click on it, then you will be able to see the copy option" +#: js/activity.js:2241 +#.TRANS: nombre de achorde +msgid "chord name" msgstr "" -#: js/turtledefs.js:535 -msgid "To extract a block, just right-click on it, then you will be able to see the extract option" +#: js/activity.js:2244 +#: js/palette.js:615 +#.TRANS: nombre de intervalo +msgid "interval name" msgstr "" -#: js/turtledefs.js:542 -#: js/turtledefs.js:552 -#: js/turtledefs.js:573 -msgid "Save your project to a file." +#: js/activity.js:2247 +#.TRANS: tipo de filtro +msgid "filter type" msgstr "" -#: js/turtledefs.js:549 -#: js/turtledefs.js:570 -msgid "save" +#: js/activity.js:2250 +#.TRANS: tipo de oscilador +msgid "oscillator type" msgstr "" -#: js/turtledefs.js:556 -#: js/turtledefs.js:577 -msgid "Save graphics from your project to as SVG." +#: js/activity.js:2253 +#: js/blocks.js:2479 +#: js/blocks.js:2487 +#.TRANS: archivo de audio +msgid "audio file" msgstr "" -#: js/turtledefs.js:560 -#: js/turtledefs.js:581 -msgid "Save graphics from your project as PNG." +#: js/activity.js:2256 +#: js/blocks/DrumBlocks.js:32 +#.TRANS: nombre de ruido +msgid "noise name" msgstr "" -#: js/turtledefs.js:564 -#: js/turtledefs.js:597 -msgid "Save block artwork as an SVG file." +#: js/activity.js:2259 +#: js/blocks/DrumBlocks.js:75 +#.TRANS: nombre del tambor +msgid "drum name" msgstr "" -#: js/turtledefs.js:585 -msgid "Save audio from your project as WAV." +#: js/activity.js:2262 +#: js/blocks/DrumBlocks.js:119 +#.TRANS: nombre de efectos +msgid "effects name" msgstr "" -#: js/turtledefs.js:589 -msgid "Save your project to as an ABC file." +#: js/activity.js:2265 +#.TRANS: modo de envoltura +msgid "wrap mode" msgstr "" -#: js/turtledefs.js:593 -msgid "Save your project to as a Lilypond file." +#: js/activity.js:2268 +#.TRANS: cargar archivo +msgid "load file" msgstr "" -#: js/turtledefs.js:604 -msgid "Load samples from server" +#: js/activity.js:2435 +#: js/activity.js:5851 +#.TRANS: Este bloque está en desuso. +msgid "This block is deprecated." msgstr "" -#: js/turtledefs.js:605 -msgid "This button opens a viewer for loading example projects." +#: js/activity.js:2437 +#: js/activity.js:5853 +#.TRANS: Este bloque no se puede encontrar. +msgid "Block cannot be found." msgstr "" -#: js/turtledefs.js:611 -msgid "Palette buttons" +#: js/activity.js:2645 +#.TRANS: Guardar ilustraciones de bloques +msgid "Saving block artwork" msgstr "" -#: js/turtledefs.js:612 -msgid "This toolbar contains the palette buttons including Rhythm Pitch Tone Action and more." +#: js/activity.js:2656 +#.TRANS: Borrar +msgid "Erase" msgstr "" -#: js/turtledefs.js:614 -msgid "Click to show the palettes of blocks and drag blocks from the palettes onto the canvas to use them." +#: js/activity.js:2683 +#: js/activity.js:2705 +#.TRANS: Pegar +msgid "Paste" msgstr "" -#: js/turtledefs.js:620 -msgid "Cartesian/Polar" +#: js/activity.js:2687 +#.TRANS: Guardar ayuda de bloque +msgid "Save block help" msgstr "" -#: js/turtledefs.js:621 -msgid "Show or hide a coordinate grid." +#: js/activity.js:2772 +#.TRANS: Saltando al final de la página +msgid "Jumping to the bottom of the page." msgstr "" -#: js/turtledefs.js:627 -msgid "Clear the screen and return the mice to their initial positions." +#: js/activity.js:2778 +#.TRANS: Desplazarse hacia arriba +msgid "Scrolling up." msgstr "" -#: js/turtledefs.js:633 -msgid "Collapse the graphics window." +#: js/activity.js:2783 +#.TRANS: Desplazarse hacia abajo +msgid "Scrolling down." msgstr "" -#: js/turtledefs.js:638 -#: js/activity.js:4256 -#: js/activity.js:4256 -msgid "Home" +#: js/activity.js:2788 +#.TRANS: Bloque de extracción +msgid "Extracting block" msgstr "" -#: js/turtledefs.js:639 -msgid "Return all blocks to the center of the screen." +#: js/activity.js:2796 +#.TRANS: Mover bloque hacia arriba +msgid "Moving block up." msgstr "" -#: js/turtledefs.js:644 -msgid "Show/hide blocks" +#: js/activity.js:2817 +#.TRANS: Mover bloque hacia abajo +msgid "Moving block down." msgstr "" -#: js/turtledefs.js:645 -msgid "Hide or show the blocks and the palettes." +#: js/activity.js:2838 +#.TRANS: Mover bloque a la izquierda +msgid "Moving block left." msgstr "" -#: js/turtledefs.js:650 -msgid "Expand/collapse collapsable blocks" +#: js/activity.js:2855 +#.TRANS: Mover bloque a la derecha +msgid "Moving block right." msgstr "" -#: js/turtledefs.js:651 -msgid "Expand or collapse start and action stacks." +#: js/activity.js:2870 +#.TRANS: Saltar a la posición inicial +msgid "Jump to home position." msgstr "" -#: js/turtledefs.js:658 -#: js/activity.js:4265 -msgid "Decrease block size" +#: js/activity.js:2897 +#.TRANS: Ocultar bloques +msgid "Hide blocks" msgstr "" -#: js/turtledefs.js:659 -msgid "Decrease the size of the blocks." +#: js/activity.js:4500 +#.TRANS: Haga clic en el botón ejecutar para ejecutar el proyecto. +msgid "Click the run button to run the project." msgstr "" -#: js/turtledefs.js:664 -#: js/activity.js:4267 -msgid "Increase block size" +#: js/activity.js:5692 +#.TRANS: Mostrar/ocultar bloques +msgid "Show/hide block" msgstr "" -#: js/turtledefs.js:665 -msgid "Increase the size of the blocks." +#: js/activity.js:5698 +#.TRANS: Expandir / Contraer bloques +msgid "Expand/collapse blocks" msgstr "" -#: js/turtledefs.js:670 -msgid "Expand/collapse option toolbar" +#: js/activity.js:5976 +#.TRANS: No se pudo analizar la entrada de JSON. +msgid "Could not parse JSON input." msgstr "" -#: js/turtledefs.js:671 -msgid "Click this button to expand or collapse the auxillary toolbar." +#: js/activity.js:6475 +#: js/activity.js:6580 +#: js/activity.js:6631 +#.TRANS: No se puede cargar el proyecto desde el archivo. Compruebe el tipo de archivo. +msgid "Cannot load project from the file. Please check the file type." msgstr "" -#: js/turtledefs.js:676 -msgid "Run slow" +#: js/activity.js:6917 +#.TRANS: El parametro es invalido. +msgid "Invalid parameters" msgstr "" -#: js/turtledefs.js:677 -msgid "Click to run the project in slow mode." +#: js/blocks.js:1212 +#: js/blocks.js:3444 +#: js/blocks.js:3834 +#: js/blocks.js:3865 +#: js/blocks.js:3914 +#: js/blocks.js:3949 +#: js/blocks.js:6586 +#: js/palette.js:509 +#: js/palette.js:638 +#: js/palette.js:1105 +#: js/blocks/BoxesBlocks.js:282 +#: js/blocks/BoxesBlocks.js:285 +#: js/blocks/BoxesBlocks.js:405 +#: js/blocks/BoxesBlocks.js:594 +#.TRANS: caja +msgid "box" +msgstr "tawa k'uchu" + +#: js/blocks.js:1713 +#.TRANS: Considera dividir esta pila en partes. +msgid "Consider breaking this stack into parts." msgstr "" -#: js/turtledefs.js:683 -msgid "Click to run the project step by step." +#: js/blocks.js:2472 +#: js/palette.js:653 +#: js/blocks/MediaBlocks.js:602 +#.TRANS: abrir archivo +msgid "open file" msgstr "" -#: js/turtledefs.js:690 -msgid "Display statistics about your Music project." -msgstr "" +#: js/blocks.js:3247 +#: js/palette.js:574 +#: js/blocks/MediaBlocks.js:892 +#: js/blocks/MediaBlocks.js:963 +#.TRANS: texto +msgid "text" +msgstr "qillqa" + +#: js/blocks.js:3443 +#: js/palette.js:641 +#: js/palette.js:642 +#: js/blocks/BoxesBlocks.js:514 +#.TRANS: guardar en caja +msgid "store in box" +msgstr "tawa k’uchupi waqaychay" + +#: js/blocks.js:3448 +#: js/blocks.js:3888 +#: js/blocks.js:3923 +#: js/blocks.js:3958 +#: js/blocks.js:5862 +#: js/blocks.js:5883 +#: js/blocks/BoxesBlocks.js:772 +#.TRANS: caja1 +msgid "box1" +msgstr "1 tawa k’uchu" + +#: js/blocks.js:3450 +#: js/blocks.js:3890 +#: js/blocks.js:3925 +#: js/blocks.js:3960 +#: js/blocks.js:5864 +#: js/blocks.js:5885 +#: js/blocks/BoxesBlocks.js:663 +#.TRANS: caja2 +msgid "box2" +msgstr "2 tawa k’uchu" -#: js/turtledefs.js:697 -msgid "Delete a selected plugin." -msgstr "" +#: js/blocks.js:4122 +#: js/palette.js:639 +#: js/palette.js:644 +#: js/palette.js:1041 +#: js/blocks/BoxesBlocks.js:591 +#.TRANS: guardar en +msgid "store in" +msgstr "imapi waqaychanki" "maypi waqaychanki" -#: js/turtledefs.js:704 -msgid "Enable scrolling" -msgstr "" +#: js/blocks.js:4122 +#: js/blocks/BoxesBlocks.js:595 +#: js/blocks/DictBlocks.js:215 +#: js/blocks/DictBlocks.js:289 +#: js/blocks/EnsembleBlocks.js:391 +#: js/blocks/EnsembleBlocks.js:402 +#: js/blocks/MediaBlocks.js:746 +#: js/blocks/PitchBlocks.js:656 +#: js/blocks/PitchBlocks.js:934 +#: js/blocks/PitchBlocks.js:1866 +#: js/blocks/ProgramBlocks.js:390 +#: js/blocks/ProgramBlocks.js:495 +#: js/blocks/ProgramBlocks.js:658 +#: js/blocks/ToneBlocks.js:1025 +#.TRANS: nombre +msgid "name" +msgstr "nombre" -#: js/turtledefs.js:705 -msgid "You can scroll the blocks on the canvas." -msgstr "" +#: js/blocks.js:4122 +#: js/blocks/BoxesBlocks.js:75 +#: js/blocks/BoxesBlocks.js:595 +#: js/blocks/DictBlocks.js:289 +#: js/blocks/DictBlocks.js:430 +#: js/blocks/HeapBlocks.js:544 +#: js/blocks/RhythmBlocks.js:1130 +#.TRANS: valor +msgid "value" +msgstr "tupu" -#: js/turtledefs.js:714 -msgid "Wrap Turtle" +#: js/blocks.js:4465 +#.TRANS: Se detectó un bucle indefinido dentro de un bloque de valor de nota. Pueden ocurrir cosas inesperadas. +msgid "Forever loop detected inside a note value block. Unexpected things may happen." msgstr "" -#: js/turtledefs.js:715 -msgid "Turn Turtle wrapping On or Off." +#: js/blocks.js:4988 +#.TRANS: No hay bloque seleccionado. +msgid "There is no block selected." msgstr "" -#: js/turtledefs.js:725 -msgid "Restore blocks from the trash." -msgstr "" +#: js/blocks.js:5091 +#: js/blocks/MediaBlocks.js:888 +#.TRANS: mostrar +msgid "show" +msgstr "qhawachiy" -#: js/turtledefs.js:732 -msgid "Switch mode" -msgstr "" +#: js/blocks.js:5094 +#: js/blocks/MediaBlocks.js:803 +#.TRANS: Avatar is the image used to determine the appearance of the mouse. +#.TRANS: avatar +msgid "avatar" +msgstr "siq’isqa" -#: js/turtledefs.js:733 -msgid "Switch between beginner and advance modes." +#: js/blocks.js:5097 +#: js/blocks/ToneBlocks.js:1010 +#: js/widgets/sampler.js:975 +#.TRANS: The sound sample that the user uploads. +#.TRANS: muestra de audio +msgid "sample" msgstr "" -#: js/turtledefs.js:739 -msgid "Select your language preference." +#: js/lilypond.js:606 +#.TRANS: rata marrón +msgid "brown rat" msgstr "" -#: js/turtledefs.js:745 -msgid "Keyboard shortcuts" +#: js/lilypond.js:607 +#.TRANS: topo +msgid "mole" msgstr "" -#: js/turtledefs.js:746 -msgid "You can type d to create a do block and r to create a re block etc." +#: js/lilypond.js:608 +#.TRANS: ardilla +msgid "chipmunk" msgstr "" -#: js/turtledefs.js:753 -msgid "Show these messages." +#: js/lilypond.js:609 +#.TRANS: ardilla roja +msgid "red squirrel" msgstr "" -#: js/turtledefs.js:759 -#: js/turtledefs.js:790 -#: js/help.js:335 -msgid "Guide" -msgstr "pusaq" - -#: js/turtledefs.js:760 -msgid "A detailed guide to Turtle Blocks is available." +#: js/lilypond.js:610 +#.TRANS: conejillo de indias +msgid "guinea pig" msgstr "" -#: js/turtledefs.js:764 -msgid "Turtle Blocks Guide" +#: js/lilypond.js:611 +#.TRANS: capybara +msgid "capybara" msgstr "" -#: js/turtledefs.js:767 -#: js/turtledefs.js:798 -#: js/help.js:336 -msgid "About" -msgstr "qayllampi" +#: js/lilypond.js:612 +#.TRANS: coypu +msgid "coypu" +msgstr "" -#: js/turtledefs.js:768 -msgid "Turtle Blocks is an open source collection of tools for exploring musical concepts." +#: js/lilypond.js:613 +#.TRANS: rata negra +msgid "black rat" msgstr "" -#: js/turtledefs.js:770 -msgid "A full list of contributors can be found in the Turtle Blocks GitHub repository." +#: js/lilypond.js:614 +#.TRANS: ardilla gris +msgid "grey squirrel" msgstr "" -#: js/turtledefs.js:772 -msgid "Turtle Blocks is licensed under the AGPL." +#: js/lilypond.js:615 +#.TRANS: ardilla voladora +msgid "flying squirrel" msgstr "" -#: js/turtledefs.js:780 -msgid "Turtle Blocks GitHub repository" +#: js/lilypond.js:616 +#.TRANS: murciélago +msgid "bat" msgstr "" -#: js/turtledefs.js:783 -#: js/turtledefs.js:814 -#: js/help.js:337 -#: js/help.js:359 -msgid "Congratulations." -msgstr "Felicitaciones." +#: js/lilypond.js:749 +#: js/lilypond.js:913 +#: js/lilypond.js:951 +#: js/blocks/ActionBlocks.js:1256 +#: js/blocks/ExtrasBlocks.js:556 +#.TRANS: iniciar tambor +msgid "start drum" +msgstr "iniciar tambor" -#: js/turtledefs.js:784 -msgid "You have finished the tour. Please enjoy Turtle Blocks!" +#: js/logo.js:61 +#.TRANS: No es un nombre de tono válido. +msgid "Not a valid pitch name" msgstr "" -#: js/turtledefs.js:791 -msgid "A detailed guide to Music Blocks is available." -msgstr "" +#: js/logo.js:507 +#: js/blocks/ProgramBlocks.js:258 +#: js/blocks/ProgramBlocks.js:427 +#.TRANS: Debe seleccionar un archivo. +msgid "You must select a file." +msgstr "Huk waqaychasqata ch’ikuy" -#: js/turtledefs.js:795 -#: js/SaveInterface.js:76 -msgid "Music Blocks Guide" +#: js/logo.js:1696 +#.TRANS: La reproducción está preparada. +msgid "Playback is ready." msgstr "" -#: js/turtledefs.js:799 -msgid "Music Blocks is an open source collection of tools for exploring musical concepts." -msgstr "" +#: js/macros.js:711 +#: js/utils/musicutils.js:1162 +#: js/utils/synthutils.js:202 +#.TRANS: animal sound effect +#.TRANS: pato +msgid "duck" +msgstr "Waswa" -#: js/turtledefs.js:801 -msgid "A full list of contributors can be found in the Music Blocks GitHub repository." +#: js/notation.js:353 +#.TRANS: Lilypond no puede procesar pickup de +msgid "Lilypond cannot process pickup of " msgstr "" -#: js/turtledefs.js:803 -msgid "Music Blocks is licensed under the AGPL." +#: js/palette.js:571 +#.TRANS: cuadrícula +msgid "grid" msgstr "" -#: js/turtledefs.js:811 -msgid "Music Blocks GitHub repository" +#: js/palette.js:580 +#.TRANS: efecto +msgid "effect" msgstr "" -#: js/turtledefs.js:815 -msgid "You have finished the tour. Please enjoy Music Blocks!" +#: js/palette.js:586 +#.TRANS: +msgid "sargam" msgstr "" -#: js/activity.js:369 -msgid "Search for blocks" -msgstr "" +#: js/palette.js:601 +#: js/blocks/PitchBlocks.js:1209 +#.TRANS: personalizado tono +msgid "custom pitch" +msgstr "sapallanpa kunka" -#: js/activity.js:1145 -msgid "Refresh your browser to change to advanced mode." -msgstr "" +#: js/palette.js:609 +#.TRANS: accidental +msgid "accidental" +msgstr "yanapaqnin" -#: js/activity.js:1150 -msgid "Refresh your browser to change to beginner mode." +#: js/palette.js:633 +#: js/blocks/PitchBlocks.js:405 +#.TRANS: convertidor de tono +msgid "pitch converter" msgstr "" -#: js/activity.js:1184 -msgid "Catching mice" -msgstr "" +#: js/piemenus.js:200 +#: js/utils/musicutils.js:1187 +#: js/utils/musicutils.js:1207 +#: js/widgets/musickeyboard.js:2341 +#: js/widgets/phrasemaker.js:1908 +#: js/widgets/sampler.js:810 +#.TRANS: double sharp is a music term related to pitch +#.TRANS: doble agudas +msgid "double sharp" +msgstr "iskay ñañu kunka" -#: js/activity.js:1185 -msgid "Cleaning the instruments" -msgstr "" +#: js/piemenus.js:201 +#: js/utils/musicutils.js:1185 +#: js/utils/musicutils.js:1208 +#: js/blocks/PitchBlocks.js:1539 +#: js/turtleactions/PitchActions.js:323 +#: js/widgets/musickeyboard.js:2342 +#: js/widgets/phrasemaker.js:1909 +#: js/widgets/sampler.js:811 +#.TRANS: sharp is a music term related to pitch +#.TRANS: sharp is a half-step up in pitch +#.TRANS: agudas +msgid "sharp" +msgstr "allin uyarikuy" -#: js/activity.js:1186 -msgid "Testing key pieces" -msgstr "" +#: js/piemenus.js:202 +#: js/utils/musicutils.js:1183 +#: js/utils/musicutils.js:1209 +#: js/widgets/musickeyboard.js:2343 +#: js/widgets/phrasemaker.js:1910 +#: js/widgets/sampler.js:812 +#.TRANS: natural is a music term related to pitch +#.TRANS: normal +msgid "natural" +msgstr "purum" -#: js/activity.js:1187 -msgid "Sight-reading" -msgstr "" +#: js/piemenus.js:203 +#: js/utils/musicutils.js:1181 +#: js/utils/musicutils.js:1210 +#: js/blocks/PitchBlocks.js:1498 +#: js/turtleactions/PitchActions.js:326 +#: js/widgets/musickeyboard.js:2344 +#: js/widgets/phrasemaker.js:1911 +#: js/widgets/sampler.js:813 +#.TRANS: flat is a music term related to pitch +#.TRANS: flat is a half-step down in pitch +#.TRANS: planas +msgid "flat" +msgstr "pampa" -#: js/activity.js:1188 -msgid "Combining math and music" -msgstr "" +#: js/piemenus.js:204 +#: js/utils/musicutils.js:1179 +#: js/utils/musicutils.js:1211 +#: js/widgets/musickeyboard.js:2345 +#: js/widgets/phrasemaker.js:1912 +#: js/widgets/sampler.js:814 +#.TRANS: double flat is a music term related to pitch +#.TRANS: doble planas +msgid "double flat" +msgstr "iskay t’aqlla" -#: js/activity.js:1189 -msgid "Generating more blocks" -msgstr "" +#: js/piemenus.js:2864 +#: js/utils/musicutils.js:1006 +#: js/blocks/PitchBlocks.js:1385 +#.TRANS: unison is a music term related to intervals +#.TRANS: unison means the note is the same as the current note +#.TRANS: unísono +msgid "unison" +msgstr "unísono" -#: js/activity.js:1190 -msgid "Do Re Mi Fa Sol La Ti Do" -msgstr "" +#: js/piemenus.js:3018 +#: js/piemenus.js:3091 +#: js/utils/musicutils.js:1014 +#: js/utils/musicutils.js:1189 +#: js/utils/musicutils.js:1326 +#.TRANS: major is a music term related to intervals and mode +#.TRANS: mayor +msgid "major" +msgstr "kuraq" -#: js/activity.js:1191 -msgid "Tuning string instruments" +#: js/piemenus.js:3018 +#: js/piemenus.js:3091 +#: js/utils/musicutils.js:1032 +#.TRANS: modal scale for music +#.TRANS: ionian +msgid "ionian" msgstr "" -#: js/activity.js:1192 -msgid "Pressing random keys" -msgstr "" +#: js/piemenus.js:3020 +#: js/piemenus.js:3095 +#: js/utils/musicutils.js:1012 +#: js/utils/musicutils.js:1190 +#: js/utils/musicutils.js:1323 +#.TRANS: minor is a music term related to intervals and mode +#.TRANS: menor +msgid "minor" +msgstr "sullk’a" -#: js/activity.js:1351 -msgid "plugins will be removed upon restart." +#: js/piemenus.js:3020 +#: js/piemenus.js:3095 +#: js/utils/musicutils.js:1042 +#.TRANS: modal scale for music +#.TRANS: aeolian +msgid "aeolian" msgstr "" -#: js/activity.js:1360 -msgid "show Cartesian" +#: js/piemenus.js:3410 +#.TRANS: Duplicar +msgid "Duplicate" msgstr "" -#: js/activity.js:1842 -msgid "output tools" +#: js/piemenus.js:3412 +#.TRANS: Mover para recargar +msgid "Move to trash" msgstr "" -#: js/activity.js:1845 -msgid "custom note" -msgstr "" +#: js/piemenus.js:3413 +#: js/widgets/timbre.js:968 +#: planet/js/StringHelper.js:69 +#.TRANS: Cerrar +msgid "Close" +msgstr "wisq’ay" -#: js/activity.js:1848 -msgid "accidental name" +#: js/piemenus.js:3419 +#.TRANS: Guardar pila +msgid "Save stack" msgstr "" -#: js/activity.js:1851 -#: js/PitchBlocks.js:855 -msgid "east indian solfege" +#: js/piemenus.js:3449 +#.TRANS: Se detectó un bucle indefinido dentro de un bloque de valor de nota. Pueden ocurrir cosas inesperadas. +msgid "In order to copy a sample, you must reload the widget, import the sample again, and export it." msgstr "" -#: js/activity.js:1854 -#: js/PitchBlocks.js:869 -msgid "note name" +#: js/piemenus.js:3812 +#.TRANS: Ha elegido la tecla +msgid "You have chosen key " msgstr "" -#: js/activity.js:1857 -#: js/IntervalsBlocks.js:94 -msgid "temperament name" +#: js/piemenus.js:3816 +#.TRANS: para la vista previa de su tono. +msgid " for your pitch preview." msgstr "" -#: js/activity.js:1863 -msgid "chord name" +#: js/turtle-singer.js:1363 +#.TRANS: partials are weighted components in a harmonic series +#.TRANS: Debe tener al menos un bloque parcial dentro de un bloque parcial ponderado. +msgid "You must have at least one Partial block inside of a Weighted-partial block" msgstr "" -#: js/activity.js:1869 -msgid "filter type" +#: js/turtle-singer.js:2077 +#.TRANS: Synth no puede tocar acordes. +msgid "synth cannot play chords." msgstr "" -#: js/activity.js:1872 -msgid "oscillator type" -msgstr "" +#: js/utils/musicutils.js:505 +#: js/utils/musicutils.js:645 +#: js/widgets/pitchdrummatrix.js:228 +#: js/widgets/musickeyboard.js:2885 +#.TRANS: descanso +msgid "rest" +msgstr "samay" -#: js/activity.js:1878 -#: js/DrumBlocks.js:32 -msgid "noise name" +#: js/utils/musicutils.js:689 +#.TRANS: Unísono perfecto +msgid "Perfect unison" msgstr "" -#: js/activity.js:1881 -#: js/DrumBlocks.js:75 -msgid "drum name" +#: js/utils/musicutils.js:689 +#.TRANS: Segundo disminuido +msgid "Diminished second" msgstr "" -#: js/activity.js:1884 -#: js/DrumBlocks.js:119 -msgid "effects name" +#: js/utils/musicutils.js:690 +#.TRANS: Segundo menor +msgid "Minor second" msgstr "" -#: js/activity.js:1887 -msgid "wrap mode" +#: js/utils/musicutils.js:690 +#.TRANS: Unísono aumentado +msgid "Augmented unison" msgstr "" -#: js/activity.js:1890 -msgid "load file" +#: js/utils/musicutils.js:691 +#.TRANS: Segundo mayor +msgid "Major second" msgstr "" -#: js/activity.js:2056 -msgid "This block is deprecated." +#: js/utils/musicutils.js:691 +#.TRANS: Tercio disminuido +msgid "Diminished third" msgstr "" -#: js/activity.js:2058 -msgid "Block cannot be found." +#: js/utils/musicutils.js:692 +#.TRANS: Tercio menor +msgid "Minor third" msgstr "" -#: js/activity.js:2266 -msgid "Saving block artwork" +#: js/utils/musicutils.js:692 +#.TRANS: Segundo aumentado +msgid "Augmented second" msgstr "" -#: js/activity.js:2277 -msgid "Erase" +#: js/utils/musicutils.js:693 +#.TRANS: Tercio mayor +msgid "Major third" msgstr "" -#: js/activity.js:2301 -#: js/activity.js:2323 -msgid "Paste" +#: js/utils/musicutils.js:693 +#.TRANS: Cuarta disminuida +msgid "Diminished fourth" msgstr "" -#: js/activity.js:2305 -msgid "Save block help" +#: js/utils/musicutils.js:694 +#.TRANS: Cuarta perfecta +msgid "Perfect fourth" msgstr "" -#: js/activity.js:2390 -msgid "Jumping to the bottom of the page." +#: js/utils/musicutils.js:694 +#.TRANS: Tercio aumentado +msgid "Augmented third" msgstr "" -#: js/activity.js:2396 -msgid "Scrolling up." +#: js/utils/musicutils.js:695 +#.TRANS: Quinta disminuida +msgid "Diminished fifth" msgstr "" -#: js/activity.js:2401 -msgid "Scrolling down." +#: js/utils/musicutils.js:695 +#.TRANS: Cuarta aumentada +msgid "Augmented fourth" msgstr "" -#: js/activity.js:2406 -msgid "Extracting block" +#: js/utils/musicutils.js:696 +#.TRANS: Quinta perfecta +msgid "Perfect fifth" msgstr "" -#: js/activity.js:2414 -msgid "Moving block up." +#: js/utils/musicutils.js:696 +#.TRANS: Sexto disminuido +msgid "Diminished sixth" msgstr "" -#: js/activity.js:2435 -msgid "Moving block down." +#: js/utils/musicutils.js:697 +#.TRANS: Sexto menor +msgid "Minor sixth" msgstr "" -#: js/activity.js:2456 -msgid "Moving block left." +#: js/utils/musicutils.js:697 +#.TRANS: Quinta aumentada +msgid "Augmented fifth" msgstr "" -#: js/activity.js:2473 -msgid "Moving block right." +#: js/utils/musicutils.js:698 +#.TRANS: Sexto mayor +msgid "Major sixth" msgstr "" -#: js/activity.js:2488 -msgid "Jump to home position." +#: js/utils/musicutils.js:698 +#.TRANS: Séptimo disminuido +msgid "Diminished seventh" msgstr "" -#: js/activity.js:2515 -msgid "Hide blocks" +#: js/utils/musicutils.js:699 +#.TRANS: Séptimo menor +msgid "Minor seventh" msgstr "" -#: js/activity.js:3389 -msgid "Click the run button to run the project." +#: js/utils/musicutils.js:699 +#.TRANS: Sexto aumentado +msgid "Augmented sixth" msgstr "" -#: js/activity.js:3456 -#: js/SaveInterface.js:131 -#: js/SaveInterface.js:204 -#: js/SaveInterface.js:262 -#: js/SaveInterface.js:389 -#: js/SaveInterface.js:417 -#: js/ProjectStorage.js:27 -#: js/GlobalPlanet.js:467 -#: js/GlobalPlanet.js:469 -#: js/GlobalPlanet.js:495 -#.TRANS: default project title when saving as Lilypond -msgid "My Project" -msgstr "hatun llamk’anay" - -#: js/activity.js:4261 -msgid "Show/hide block" +#: js/utils/musicutils.js:700 +#.TRANS: Séptimo mayor +msgid "Major seventh" msgstr "" -#: js/activity.js:4263 -msgid "Expand/collapse blocks" +#: js/utils/musicutils.js:700 +#.TRANS: Octavo disminuido +msgid "Diminished octave" msgstr "" -#: js/activity.js:4381 -msgid "Could not parse JSON input." +#: js/utils/musicutils.js:701 +#.TRANS: Octavo perfecto +msgid "Perfect octave" msgstr "" -#: js/activity.js:4684 -#: js/activity.js:4771 -#: js/activity.js:4821 -msgid "Cannot load project from the file. Please check the file type." +#: js/utils/musicutils.js:701 +#.TRANS: Séptimo aumentado +msgid "Augmented seventh" msgstr "" -#: js/activity.js:5051 -msgid "Invalid parameters" +#: js/utils/musicutils.js:702 +#.TRANS: Novena menor +msgid "Minor ninth" msgstr "" -#: js/turtle-singer.js:1334 -#.TRANS: partials are weighted components in a harmonic series -msgid "You must have at least one Partial block inside of a Weighted-partial block" +#: js/utils/musicutils.js:702 +#.TRANS: Octavo aumentado +msgid "Augmented octave" msgstr "" -#: js/turtle-singer.js:2048 -msgid "synth cannot play chords." +#: js/utils/musicutils.js:703 +#.TRANS: Novena mayor +msgid "Major ninth" msgstr "" -#: js/lilypond.js:614 -msgid "brown rat" +#: js/utils/musicutils.js:703 +#.TRANS: Décima disminuida +msgid "Diminished tenth" msgstr "" -#: js/lilypond.js:615 -msgid "mole" +#: js/utils/musicutils.js:704 +#.TRANS: Décima menor +msgid "Minor tenth" msgstr "" -#: js/lilypond.js:616 -msgid "chipmunk" +#: js/utils/musicutils.js:704 +#.TRANS: Novena aumentada +msgid "Augmented ninth" msgstr "" -#: js/lilypond.js:617 -msgid "red squirrel" +#: js/utils/musicutils.js:705 +#.TRANS: Décima mayor +msgid "Major tenth" msgstr "" -#: js/lilypond.js:618 -msgid "guinea pig" +#: js/utils/musicutils.js:705 +#.TRANS: Undécimo disminuido +msgid "Diminished eleventh" msgstr "" -#: js/lilypond.js:619 -msgid "capybara" +#: js/utils/musicutils.js:706 +#.TRANS: Undécimo perfecto +msgid "Perfect eleventh" msgstr "" -#: js/lilypond.js:620 -msgid "coypu" +#: js/utils/musicutils.js:706 +#.TRANS: Décima aumentada +msgid "Augmented tenth" msgstr "" -#: js/lilypond.js:621 -msgid "black rat" +#: js/utils/musicutils.js:707 +#.TRANS: Doce disminuido +msgid "Diminished twelfth" msgstr "" -#: js/lilypond.js:622 -msgid "grey squirrel" +#: js/utils/musicutils.js:707 +#.TRANS: Undécimo aumentado +msgid "Augmented eleventh" msgstr "" -#: js/lilypond.js:623 -msgid "flying squirrel" +#: js/utils/musicutils.js:708 +#.TRANS: Doce perfecto +msgid "Perfect twelfth" msgstr "" -#: js/lilypond.js:624 -msgid "bat" +#: js/utils/musicutils.js:708 +#.TRANS: Decimotercero disminuido +msgid "Diminished thirteenth" msgstr "" -#: js/lilypond.js:757 -#: js/lilypond.js:921 -#: js/lilypond.js:959 -#: js/ActionBlocks.js:1256 -#: js/ExtrasBlocks.js:553 -msgid "start drum" -msgstr "iniciar tambor" +#: js/utils/musicutils.js:709 +#.TRANS: Doce menor +msgid "Minor thirteenth" +msgstr "" -#: js/SaveInterface.js:59 -#: js/SaveInterface.js:61 -#: js/SaveInterface.js:93 -msgid "Music Blocks Project" +#: js/utils/musicutils.js:709 +#.TRANS: Quinta aumentada, más una octava +msgid "Augmented fifth, plus an octave" msgstr "" -#: js/SaveInterface.js:63 -msgid "This project was created in Music Blocks" +#: js/utils/musicutils.js:710 +#.TRANS: Decimotercero mayor +msgid "Major thirteenth" msgstr "" -#: js/SaveInterface.js:67 -msgid "Music Blocks is a Free/Libre Software application." +#: js/utils/musicutils.js:710 +#.TRANS: Séptimo disminuido, más una octava +msgid "Diminished seventh, plus an octave" msgstr "" -#: js/SaveInterface.js:69 -msgid "The source code can be accessed at" +#: js/utils/musicutils.js:838 +#.TRANS: ordinal number. Please keep exactly one space between each number. +#.TRANS: 1º 2º 3º 4º 5º 6º 7º 8º 9º 10º 11º 12º +msgid "1st 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th" +msgstr "1ñ (huk ñiqi) 2ñ (iskay ñiqi) 3ñ (kimsa ñiqi) 4ñ(kimsa ñiqi) 5ñ (phisqa ñiqi)6ñ (suqta ñiqi) 7ñ qanchik ñiqi) 8ñ (pusaq ñiqi)9ñ (isqun ñiqi) 10ñ (chunka ñiqi) 11ñ (chunka hukniyuq ñuqi) 12ñ (chunka iskayniyuq ñiqi" + +#: js/utils/musicutils.js:1008 +#: js/utils/musicutils.js:1191 +#: js/utils/musicutils.js:1325 +#.TRANS: augmented is a music term related to intervals +#.TRANS: aumentado +msgid "augmented" +msgstr "yapaspa" + +#: js/utils/musicutils.js:1010 +#: js/utils/musicutils.js:1192 +#: js/utils/musicutils.js:1324 +#.TRANS: diminished is a music term related to intervals and mode +#.TRANS: disminuido +msgid "diminished" +msgstr "pisiyachiy" + +#: js/utils/musicutils.js:1016 +#: js/utils/musicutils.js:1322 +#: js/blocks/IntervalsBlocks.js:649 +#: js/turtleactions/IntervalsActions.js:120 +#: js/turtleactions/IntervalsActions.js:124 +#.TRANS: perfect is a music term related to intervals +#.TRANS: perfecto +msgid "perfect" +msgstr "allinpuni" + +#: js/utils/musicutils.js:1018 +#.TRANS: twelve semi-tone scale for music +#.TRANS: cromático +msgid "chromatic" +msgstr "llimp’I sapa" + +#: js/utils/musicutils.js:1019 +#.TRANS: argelino +msgid "algerian" +msgstr "alhiriyan" + +#: js/utils/musicutils.js:1020 +#.TRANS: español +msgid "spanish" +msgstr "ispañul" + +#: js/utils/musicutils.js:1022 +#.TRANS: modal scale in music +#.TRANS: octatonic +msgid "octatonic" msgstr "" -#: js/SaveInterface.js:72 -msgid "For more information, please consult the" +#: js/utils/musicutils.js:1024 +#.TRANS: harmonic major scale in music +#.TRANS: armónico mayor +msgid "harmonic major" +msgstr "kuraq muyurichiq" + +#: js/utils/musicutils.js:1026 +#.TRANS: natural minor scales in music +#.TRANS: natural menor +msgid "natural minor" +msgstr "sullk’a kikin" + +#: js/utils/musicutils.js:1028 +#.TRANS: harmonic minor scale in music +#.TRANS: armónico menor +msgid "harmonic minor" +msgstr "Sullk’a muyurichiq" + +#: js/utils/musicutils.js:1030 +#.TRANS: melodic minor scale in music +#.TRANS: melódico menor +msgid "melodic minor" +msgstr "sullk’a sumaq kunka " + +#: js/utils/musicutils.js:1034 +#.TRANS: modal scale for music +#.TRANS: dorio +msgid "dorian" msgstr "" -#: js/SaveInterface.js:83 -msgid "Alternatively, open the file in Music Blocks using the Load project button." +#: js/utils/musicutils.js:1036 +#.TRANS: modal scale for music +#.TRANS: frigio +msgid "phrygian" msgstr "" -#: js/SaveInterface.js:85 -msgid "Project Code" +#: js/utils/musicutils.js:1038 +#.TRANS: modal scale for music +#.TRANS: lidio +msgid "lydian" msgstr "" -#: js/SaveInterface.js:87 -msgid "This code stores data about the blocks in a project." +#: js/utils/musicutils.js:1040 +#.TRANS: modal scale for music +#.TRANS: mixolidio +msgid "mixolydian" msgstr "" -#: js/SaveInterface.js:89 -msgid "Show" +#: js/utils/musicutils.js:1044 +#.TRANS: modal scale for music +#.TRANS: locrian +msgid "locrian" msgstr "" -#: js/SaveInterface.js:91 -msgid "Hide" +#: js/utils/musicutils.js:1046 +#.TRANS: minor jazz scale for music +#.TRANS: jazz menor +msgid "jazz minor" +msgstr "jazz menor" + +#: js/utils/musicutils.js:1048 +#.TRANS: bebop scale for music +#.TRANS: bebop +msgid "bebop" msgstr "" -#: js/SaveInterface.js:197 -#: js/SaveInterface.js:58 -msgid "No description provided" -msgstr "Mana mayqin willakuypas kamasqachu" +#: js/utils/musicutils.js:1049 +#.TRANS: arábica +msgid "arabic" +msgstr "arábica" -#: js/SaveInterface.js:332 -msgid "Your recording is in progress." +#: js/utils/musicutils.js:1050 +#.TRANS: bizantino +msgid "byzantine" +msgstr "bizantino" + +#: js/utils/musicutils.js:1052 +#.TRANS: musical scale for music by Verdi +#.TRANS: enigmático +msgid "enigmatic" +msgstr "mana riqsichikuq" + +#: js/utils/musicutils.js:1053 +#.TRANS: etíope +msgid "ethiopian" +msgstr "etíope" + +#: js/utils/musicutils.js:1055 +#.TRANS: Ethiopic scale for music +#.TRANS: geez +msgid "geez" msgstr "" -#: js/SaveInterface.js:401 -#.TRANS: File name prompt for save as Lilypond -msgid "File name" +#: js/utils/musicutils.js:1056 +#.TRANS: hindú +msgid "hindu" +msgstr "hindú" + +#: js/utils/musicutils.js:1057 +#.TRANS: húngaro +msgid "hungarian" +msgstr "húngaro" + +#: js/utils/musicutils.js:1059 +#.TRANS: minor Romanian scale for music +#.TRANS: romano menor +msgid "romanian minor" +msgstr "sullqa romanian" + +#: js/utils/musicutils.js:1060 +#.TRANS: gitana española +msgid "spanish gypsy" +msgstr "ispaña guitarra" + +#: js/utils/musicutils.js:1062 +#.TRANS: musical scale for Mid-Eastern music +#.TRANS: maqam +msgid "maqam" msgstr "" -#: js/SaveInterface.js:403 -#: js/StringHelper.js:39 -#.TRANS: Project title prompt for save as Lilypond -msgid "Project title" -msgstr "Título del proyecto" +#: js/utils/musicutils.js:1064 +#.TRANS: minor blues scale for music +#.TRANS: blues menor +msgid "minor blues" +msgstr "Sullqa anqaskuna" -#: js/SaveInterface.js:405 -#.TRANS: Project title prompt for save as Lilypond -msgid "Project author" +#: js/utils/musicutils.js:1066 +#.TRANS: major blues scale for music +#.TRANS: blues mayor +msgid "major blues" +msgstr "kuraq anqas" + +#: js/utils/musicutils.js:1067 +#.TRANS: tono completo +msgid "whole tone" +msgstr "tono completo" + +#: js/utils/musicutils.js:1069 +#.TRANS: pentatonic is a general term that means "five note scale". This scale is typically known as "minor pentatonic" +#.TRANS: pentatonic minor +msgid "minor pentatonic" +msgstr "pentatonic minor" + +#: js/utils/musicutils.js:1071 +#.TRANS: pentatonic is a general term that means "five note scale". This scale is typically known as "major pentatonic" +#.TRANS: pentatonic mayor +msgid "major pentatonic" +msgstr "pentatonic mayor" + +#: js/utils/musicutils.js:1072 +#.TRANS: chino +msgid "chinese" +msgstr "chino" + +#: js/utils/musicutils.js:1073 +#.TRANS: egipcio +msgid "egyptian" +msgstr "egipcio" + +#: js/utils/musicutils.js:1075 +#.TRANS: https://en.wikipedia.org/wiki/Hirajoshi_scale NOTE: There are three different versions of this scale +#.TRANS: hirajoshi +msgid "hirajoshi" msgstr "" -#: js/SaveInterface.js:407 -#.TRANS: MIDI prompt for save as Lilypond -msgid "Include MIDI output?" +#: js/utils/musicutils.js:1076 +#.TRANS: Japón +msgid "Japan" +msgstr "Japón" + +#: js/utils/musicutils.js:1078 +#.TRANS: https://en.wikipedia.org/wiki/In_scale and https://en.wikipedia.org/wiki/Sakura_Sakura +#.TRANS: in +msgid "in" msgstr "" -#: js/SaveInterface.js:409 -#.TRANS: Guitar prompt for save as Lilypond -msgid "Include guitar tablature output?" +#: js/utils/musicutils.js:1080 +#.TRANS: https://en.wikipedia.org/wiki/Miny%C5%8D_scale +#.TRANS: minyo +msgid "minyo" msgstr "" -#: js/SaveInterface.js:411 -#.TRANS: Lilypond is a scripting language for generating sheet music -msgid "Save as Lilypond" +#: js/utils/musicutils.js:1082 +#.TRANS: Italian mathematician +#.TRANS: fibonacci +msgid "fibonacci" msgstr "" -#: js/SaveInterface.js:426 -#: js/EnsembleBlocks.js:75 -#: js/EnsembleBlocks.js:154 -#: js/EnsembleBlocks.js:216 -#: js/EnsembleBlocks.js:302 -#: js/EnsembleBlocks.js:348 -#: js/EnsembleBlocks.js:389 -#: js/EnsembleBlocks.js:441 -#: js/EnsembleBlocks.js:490 -#: js/EnsembleBlocks.js:536 -#: js/EnsembleBlocks.js:583 -#: js/EnsembleBlocks.js:637 -#: js/EnsembleBlocks.js:753 -#: js/EnsembleBlocks.js:840 -#: js/EnsembleBlocks.js:899 -#: js/EnsembleBlocks.js:942 -#: js/EnsembleBlocks.js:1212 -#: js/EnsembleBlocks.js:1280 -#.TRANS: default project author when saving as Lilypond -msgid "Mr. Mouse" -msgstr "Sr. Ratón" +#: js/utils/musicutils.js:1083 +#: js/utils/musicutils.js:1134 +#: js/utils/musicutils.js:1177 +#: js/utils/musicutils.js:1199 +#: js/utils/synthutils.js:134 +#: js/blocks/IntervalsBlocks.js:1124 +#: js/blocks/ToneBlocks.js:946 +#: js/blocks/VolumeBlocks.js:411 +#: js/blocks/WidgetBlocks.js:399 +#: js/blocks/WidgetBlocks.js:404 +#: js/turtleactions/VolumeActions.js:218 +#: js/widgets/modewidget.js:919 +#.TRANS: customize voice +#.TRANS: personalizado +msgid "custom" +msgstr "Runachasqa" -#: js/SaveInterface.js:573 -msgid "The Lilypond code is copied to clipboard. You can paste it here: " +#: js/utils/musicutils.js:1085 +#: js/utils/musicutils.js:1531 +#: js/blocks/WidgetBlocks.js:176 +#.TRANS: highpass filter +#.TRANS: highpass +msgid "highpass" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:50 -#: js/RhythmBlockPaletteBlocks.js:232 -#.TRANS: rhythm block -#.TRANS: translate "rhythm1" as rhythm -msgid "rhythm1" -msgstr "taki muyuchik" +#: js/utils/musicutils.js:1087 +#: js/utils/musicutils.js:1532 +#.TRANS: lowpass filter +#.TRANS: +msgid "lowpass" +msgstr "" -#: js/RhythmBlockPaletteBlocks.js:70 -#: js/RhythmBlockPaletteBlocks.js:251 -#: js/RhythmBlockPaletteBlocks.js:484 -#: js/RhythmBlockPaletteBlocks.js:553 -#: js/RhythmBlockPaletteBlocks.js:874 -msgid "number of notes" -msgstr "Yupay waqaykuna" +#: js/utils/musicutils.js:1089 +#: js/utils/musicutils.js:1533 +#.TRANS: bandpass filter +#.TRANS: +msgid "bandpass" +msgstr "" -#: js/RhythmBlockPaletteBlocks.js:126 -msgid "polyphonic rhythm" -msgstr "Achka waqaykunap Munay muyuchik" +#: js/utils/musicutils.js:1091 +#: js/utils/musicutils.js:1534 +#.TRANS: high-shelf filter +#.TRANS: +msgid "highshelf" +msgstr "" -#: js/RhythmBlockPaletteBlocks.js:218 -msgid "The Rhythm block is used to generate rhythm patterns." -msgstr "Munay purichiqa kinkinman hina qatipaq" +#: js/utils/musicutils.js:1093 +#: js/utils/musicutils.js:1535 +#.TRANS: low-shelf filter +#.TRANS: +msgid "lowshelf" +msgstr "" -#: js/RhythmBlockPaletteBlocks.js:279 -msgid "1/64 note" -msgstr "1/64 kunka" +#: js/utils/musicutils.js:1095 +#: js/utils/musicutils.js:1536 +#.TRANS: notch-shelf filter +#.TRANS: +msgid "notch" +msgstr "" -#: js/RhythmBlockPaletteBlocks.js:303 -msgid "1/32 note" -msgstr "Kunkaq tahasqan" +#: js/utils/musicutils.js:1097 +#: js/utils/musicutils.js:1537 +#.TRANS: all-pass filter +#.TRANS: +msgid "allpass" +msgstr "" -#: js/RhythmBlockPaletteBlocks.js:331 -msgid "1/16 note" -msgstr "1/6 kunka" +#: js/utils/musicutils.js:1099 +#: js/utils/musicutils.js:1538 +#.TRANS: peaking filter +#.TRANS: +msgid "peaking" +msgstr "" -#: js/RhythmBlockPaletteBlocks.js:359 -msgid "eighth note" -msgstr "1/8 kunka" +#: js/utils/musicutils.js:1100 +#: js/utils/musicutils.js:1546 +#: js/utils/synthutils.js:126 +#: js/blocks/PitchBlocks.js:85 +#.TRANS: sine wave +#.TRANS: sine +msgid "sine" +msgstr "" + +#: js/utils/musicutils.js:1101 +#: js/utils/musicutils.js:1547 +#: js/utils/synthutils.js:128 +#: js/blocks/PitchBlocks.js:39 +#.TRANS: square wave +#.TRANS: cuadrado +msgid "square" +msgstr "tawa k’uchu" + +#: js/utils/musicutils.js:1102 +#: js/utils/musicutils.js:1548 +#: js/utils/synthutils.js:132 +#: js/blocks/PitchBlocks.js:62 +#: js/blocks/ToneBlocks.js:39 +#.TRANS: triangle wave +#.TRANS: triángulo +msgid "triangle" +msgstr "kimsa k’uchu" -#: js/RhythmBlockPaletteBlocks.js:387 -msgid "quarter note" -msgstr "1/4 kunka" +#: js/utils/musicutils.js:1103 +#: js/utils/musicutils.js:1549 +#: js/utils/synthutils.js:130 +#: js/blocks/PitchBlocks.js:108 +#.TRANS: sawtooth wave +#.TRANS: diente de sierra +msgid "sawtooth" +msgstr "" -#: js/RhythmBlockPaletteBlocks.js:415 -msgid "half note" -msgstr "1/2 kunka" +#: js/utils/musicutils.js:1105 +#: js/utils/musicutils.js:1312 +#: js/blocks/PitchBlocks.js:931 +#: js/blocks/PitchBlocks.js:937 +#: js/turtleactions/PitchActions.js:469 +#.TRANS: even numbers +#.TRANS: invert based on even or odd number or musical scale +#.TRANS: par +msgid "even" +msgstr "masa" -#: js/RhythmBlockPaletteBlocks.js:443 -msgid "whole note" -msgstr "hunt’asqa kunka" +#: js/utils/musicutils.js:1107 +#: js/utils/musicutils.js:1313 +#: js/blocks/PitchBlocks.js:937 +#: js/turtleactions/PitchActions.js:471 +#.TRANS: odd numbers +#.TRANS: impar +msgid "odd" +msgstr "sapallan" -#: js/RhythmBlockPaletteBlocks.js:481 -#: js/RhythmBlockPaletteBlocks.js:550 -#: js/RhythmBlockPaletteBlocks.js:601 -#.TRANS: A tuplet is a note value divided into irregular time values. -msgid "tuplet" +#: js/utils/musicutils.js:1108 +#: js/utils/musicutils.js:1314 +#: js/blocks/PitchBlocks.js:937 +#: js/turtleactions/PitchActions.js:473 +#.TRANS: escalar +msgid "scalar" +msgstr "siqay" + +#: js/utils/musicutils.js:1109 +#: js/utils/synthutils.js:72 +#: js/blocks/VolumeBlocks.js:47 +#.TRANS: musical instrument +#.TRANS: piano +msgid "piano" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:767 -msgid "septuplet" -msgstr "Qanchikmanta" +#: js/utils/musicutils.js:1110 +#: js/utils/synthutils.js:74 +#.TRANS: musical instrument +#.TRANS: violín +msgid "violin" +msgstr "violin" -#: js/RhythmBlockPaletteBlocks.js:795 -msgid "quintuplet" -msgstr "Phisqamanta" +#: js/utils/musicutils.js:1111 +#: js/utils/synthutils.js:76 +#.TRANS: viola musical instrument +#.TRANS: viola +msgid "viola" +msgstr "viola" -#: js/RhythmBlockPaletteBlocks.js:823 -msgid "triplet" +#: js/utils/musicutils.js:1112 +#: js/utils/synthutils.js:114 +#.TRANS: xylophone musical instrument +#.TRANS: xilófono +msgid "xylophone" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:850 -msgid "simple tuplet" -msgstr "tuplet simple" - -#: js/RhythmBlockPaletteBlocks.js:860 -msgid "Tuplets are a collection of notes that get scaled to a specific duration." +#: js/utils/musicutils.js:1113 +#: js/utils/synthutils.js:136 +#.TRANS: vibraphone musical instrument +#.TRANS: vibráfono +msgid "vibraphone" msgstr "" -#: js/WidgetBlocks.js:71 -#.TRANS: sound envelope (ADSR) -msgid "envelope" -msgstr "envolventes" +#: js/utils/musicutils.js:1114 +#: js/utils/synthutils.js:78 +#.TRANS: musical instrument +#.TRANS: violonchelo +msgid "cello" +msgstr "violonchelo" -#: js/WidgetBlocks.js:79 -#.TRANS: Attack time is the time taken for initial run-up of level from nil to peak, beginning when the key is first pressed. -msgid "attack" -msgstr "atacar" +#: js/utils/musicutils.js:1116 +#: js/utils/synthutils.js:82 +#.TRANS: viola musical instrument +#.TRANS: contrabajo +msgid "double bass" +msgstr "Viola takina waqachina" -#: js/WidgetBlocks.js:81 -#.TRANS: Decay time is the time taken for the subsequent run down from the attack level to the designated sustain level. -msgid "decay" -msgstr "Pisipayay" +#: js/utils/musicutils.js:1117 +#: js/utils/synthutils.js:84 +#: js/widgets/rhythmruler.js:2511 +#.TRANS: musical instrument +#.TRANS: guitarra +msgid "guitar" +msgstr "guitarra" -#: js/WidgetBlocks.js:83 -#.TRANS: Sustain level is the level during the main sequence of the sound's duration, until the key is released. -msgid "sustain" -msgstr "hap’ipay" +#: js/utils/musicutils.js:1118 +#: js/utils/synthutils.js:86 +#.TRANS: musical instrument +#.TRANS: guitarra acustica +msgid "acoustic guitar" +msgstr "aswan kunkayuq guitarra" -#: js/WidgetBlocks.js:85 -#.TRANS: Release time is the time taken for the level to decay from the sustain level to zero after the key is released. -msgid "release" -msgstr "waqmanta ñawinchay" +#: js/utils/musicutils.js:1119 +#: js/utils/synthutils.js:88 +#.TRANS: musical instrument +#.TRANS: flauta +msgid "flute" +msgstr "flauta" -#: js/WidgetBlocks.js:96 -msgid "Attack value should be from 0 to 100." -msgstr "El valor de atacar debe estar entre 0 y 100." +#: js/utils/musicutils.js:1120 +#: js/utils/synthutils.js:90 +#.TRANS: musical instrument +#.TRANS: clarinete +msgid "clarinet" +msgstr "clarinete" -#: js/WidgetBlocks.js:99 -msgid "Decay value should be from 0 to 100." -msgstr "Pisipayachiyqa 0 – 100 kaman kanan" +#: js/utils/musicutils.js:1121 +#: js/utils/synthutils.js:92 +#.TRANS: musical instrument +#.TRANS: saxofón +msgid "saxophone" +msgstr "saxofón" -#: js/WidgetBlocks.js:102 -msgid "Sustain value should be from 0 to 100." -msgstr "Hap’paypa tupuynin ch’usaqmanta pachaqkamann kanan" +#: js/utils/musicutils.js:1122 +#: js/utils/synthutils.js:94 +#.TRANS: musical instrument +#.TRANS: tuba +msgid "tuba" +msgstr "tuba" -#: js/WidgetBlocks.js:105 -msgid "Release value should be from 0-100." -msgstr "Kachariya tupun kanan 0 – 100 kama" +#: js/utils/musicutils.js:1123 +#: js/utils/synthutils.js:96 +#.TRANS: musical instrument +#.TRANS: trompeta +msgid "trumpet" +msgstr "trompeta" -#: js/WidgetBlocks.js:121 -msgid "You are adding multiple envelope blocks." -msgstr "Está agregando varios bloques de envolvente." +#: js/utils/musicutils.js:1124 +#: js/utils/synthutils.js:98 +#.TRANS: musical instrument +#.TRANS: oboe +msgid "oboe" +msgstr "" -#: js/WidgetBlocks.js:144 -#.TRANS: a filter removes some unwanted components from a signal -msgid "filter" -msgstr "suysuy" +#: js/utils/musicutils.js:1125 +#: js/utils/synthutils.js:100 +#.TRANS: musical instrument +#.TRANS: trombón +msgid "trombone" +msgstr "trombón" -#: js/WidgetBlocks.js:149 -#: js/musicutils.js:706 -#: js/musicutils.js:1105 -#.TRANS: highpass filter -msgid "highpass" -msgstr "" +#: js/utils/musicutils.js:1126 +#: js/utils/synthutils.js:116 +#.TRANS: polytone synthesizer +#.TRANS: sintetizador electronico +msgid "electronic synth" +msgstr "sintetizador electronico" -#: js/WidgetBlocks.js:152 -#: js/ToneBlocks.js:42 -#: js/timbre.js:1558 -#: js/timbre.js:1808 -#.TRANS: type of filter, e.g., lowpass, highpass, etc. -#.TRANS: there are different types (sine, triangle, square...) of oscillators. -msgid "type" -msgstr "typo" +#: js/utils/musicutils.js:1127 +#: js/utils/synthutils.js:118 +#.TRANS: simple monotone synthesizer +#.TRANS: simple-1 +msgid "simple 1" +msgstr "qasi-1" -#: js/WidgetBlocks.js:154 -#: js/timbre.js:1818 -#.TRANS: rolloff is the steepness of a change in frequency. -msgid "rolloff" +#: js/utils/musicutils.js:1128 +#.TRANS: simple 2 +msgid "simple 2" msgstr "" -#: js/WidgetBlocks.js:155 -#: js/MediaBlocks.js:692 -#: js/temperament.js:382 -#: js/temperament.js:417 -#: js/temperament.js:477 -#: js/temperament.js:485 -#: js/temperament.js:1348 -#: js/timbre.js:1842 -msgid "frequency" -msgstr "Kutipayaq" +#: js/utils/musicutils.js:1129 +#.TRANS: simple 3 +msgid "simple 3" +msgstr "" -#: js/WidgetBlocks.js:179 -#.TRANS: rolloff is the steepness of a change in frequency. -msgid "Rolloff value should be either -12, -24, -48, or -96 decibels/octave." +#: js/utils/musicutils.js:1130 +#.TRANS: simple 4 +msgid "simple 4" msgstr "" -#: js/WidgetBlocks.js:211 -msgid "The Temperament tool is used to define custom tuning." -msgstr "La Herramienta temperamento se utiliza para definir la afinación personalizada." +#: js/utils/musicutils.js:1131 +#: js/utils/synthutils.js:58 +#: js/blocks/DrumBlocks.js:191 +#.TRANS: white noise synthesizer +#.TRANS: ruido blanco +msgid "white noise" +msgstr "Yuraq rakhaqaqaq" -#: js/WidgetBlocks.js:277 -#: js/sampler.js:329 -msgid "Upload a sample and adjust its pitch center." -msgstr "" +#: js/utils/musicutils.js:1132 +#: js/utils/synthutils.js:60 +#.TRANS: brown noise synthesizer +#.TRANS: ruido marrón +msgid "brown noise" +msgstr "ch’umpi chanraray" -#: js/WidgetBlocks.js:284 -#.TRANS: the speed at music is should be played. -msgid "sampler" -msgstr "" +#: js/utils/musicutils.js:1133 +#: js/utils/synthutils.js:62 +#.TRANS: pink noise synthesizer +#.TRANS: ruido rosa +msgid "pink noise" +msgstr "rosa chanraray" -#: js/WidgetBlocks.js:329 -#: js/WidgetBlocks.js:334 -#: js/IntervalsBlocks.js:928 -#: js/VolumeBlocks.js:411 -#: js/ToneBlocks.js:946 -#: js/VolumeActions.js:218 -#: js/musicutils.js:704 -#: js/musicutils.js:755 -#: js/musicutils.js:798 -#: js/musicutils.js:820 -#: js/musicutils.js:1136 -#: js/synthutils.js:118 -#: js/modewidget.js:919 -#.TRANS: customize voice -msgid "custom" -msgstr "Runachasqa" +#: js/utils/musicutils.js:1135 +#: js/utils/synthutils.js:148 +#: js/widgets/rhythmruler.js:2057 +#: js/widgets/rhythmruler.js:2319 +#.TRANS: musical instrument +#.TRANS: tambor militar pequeño +msgid "snare drum" +msgstr "wankar" -#: js/WidgetBlocks.js:432 -msgid "The Meter block opens a tool to select strong beats for the meter." -msgstr "" +#: js/utils/musicutils.js:1136 +#: js/utils/synthutils.js:150 +#.TRANS: musical instrument +#.TRANS: tambor de patada +msgid "kick drum" +msgstr "Hayt’ana wankar" -#: js/WidgetBlocks.js:473 -msgid "The oscilloscope block opens a tool to visualize waveforms." -msgstr "" +#: js/utils/musicutils.js:1137 +#: js/utils/synthutils.js:152 +#.TRANS: musical instrument +#.TRANS: tom tom +msgid "tom tom" +msgstr "tum tum" -#: js/WidgetBlocks.js:478 -msgid "oscilloscope" +#: js/utils/musicutils.js:1138 +#: js/utils/synthutils.js:154 +#.TRANS: musical instrument +#.TRANS: piso tom +msgid "floor tom" msgstr "" -#: js/WidgetBlocks.js:530 -msgid "The Custom mode block opens a tool to explore musical mode (the spacing of the notes in a scale)." +#: js/utils/musicutils.js:1139 +#: js/utils/synthutils.js:156 +#.TRANS: musical instrument +#.TRANS: tambor de bajo +msgid "bass drum" msgstr "" -#: js/WidgetBlocks.js:536 -#.TRANS: musical mode is the pattern of half-steps in an octave, e.g., Major or Minor modes -msgid "custom mode" -msgstr "huk hinayuq runachasqa" +#: js/utils/musicutils.js:1140 +#: js/utils/synthutils.js:158 +#.TRANS: a drum made from an inverted cup +#.TRANS: taza de tambor +msgid "cup drum" +msgstr "qiru wankar" -#: js/WidgetBlocks.js:570 -msgid "The Tempo block opens a metronome to visualize the beat." -msgstr "El bloque Tempo abre un metrónomo para visualizar el ritmo." +#: js/utils/musicutils.js:1141 +#: js/utils/synthutils.js:160 +#.TRANS: musical instrument +#.TRANS: darbuka +msgid "darbuka drum" +msgstr "wankar darbuka" -#: js/WidgetBlocks.js:617 -msgid "The Arpeggio Widget is used to compose chord sequences." +#: js/utils/musicutils.js:1142 +#: js/utils/synthutils.js:164 +#.TRANS: musical instrument +#.TRANS: +msgid "hi hat" msgstr "" -#: js/WidgetBlocks.js:623 -#: js/IntervalsBlocks.js:683 -msgid "arpeggio" -msgstr "" +#: js/utils/musicutils.js:1143 +#: js/utils/synthutils.js:166 +#.TRANS: a small metal bell +#.TRANS: campana de paseo +msgid "ride bell" +msgstr "puriq kampana/kalanka" -#: js/WidgetBlocks.js:677 -msgid "The Pitch drum matrix is used to map pitches to drum sounds." -msgstr "" +#: js/utils/musicutils.js:1144 +#: js/utils/synthutils.js:168 +#.TRANS: musical instrument +#.TRANS: campana de vaca +msgid "cow bell" +msgstr "waka kampana/kalanka" -#: js/WidgetBlocks.js:682 -#.TRANS: makes a mapping between pitches and drum sounds -msgid "pitch-drum mapper" -msgstr "taki purihiq" +#: js/utils/musicutils.js:1145 +#.TRANS: tambor japonés +msgid "japanese drum" +msgstr "tambor japonés" -#: js/WidgetBlocks.js:724 -msgid "You must have at least one pitch block and one drum block in the matrix." -msgstr "" +#: js/utils/musicutils.js:1146 +#: js/utils/synthutils.js:174 +#.TRANS: musical instrument +#.TRANS: campana japonesa +msgid "japanese bell" +msgstr "campana japonesa" -#: js/WidgetBlocks.js:746 -msgid "The Pitch slider tool to is used to generate pitches at selected frequencies." -msgstr "" +#: js/utils/musicutils.js:1147 +#: js/utils/synthutils.js:170 +#.TRANS: musical instrument +#.TRANS: campana triangular +msgid "triangle bell" +msgstr "kimsa k’uchu kampana/kalanka" -#: js/WidgetBlocks.js:751 -#.TRANS: widget to generate pitches using a slider -msgid "pitch slider" -msgstr "Kunka lluskhachik" +#: js/utils/musicutils.js:1148 +#: js/utils/synthutils.js:172 +#.TRANS: musical instrument +#.TRANS: castañuelas +msgid "finger cymbals" +msgstr "kastañuylas" -#: js/WidgetBlocks.js:788 -msgid "chromatic keyboard" -msgstr "" +#: js/utils/musicutils.js:1149 +#: js/utils/synthutils.js:176 +#.TRANS: a musically tuned set of bells +#.TRANS: campaneo +msgid "chime" +msgstr "campaneo" -#: js/WidgetBlocks.js:815 -#: js/WidgetBlocks.js:874 -#.TRANS: widget to generate pitches using a slider -msgid "music keyboard" -msgstr "taki t’upuna" +#: js/utils/musicutils.js:1150 +#: js/utils/synthutils.js:178 +#.TRANS: a musical instrument +#.TRANS: gong +msgid "gong" +msgstr "" " -#: js/WidgetBlocks.js:859 -#: js/WidgetBlocks.js:866 -msgid "The Music keyboard block opens a piano keyboard that can be used to create notes." -msgstr "" +#: js/utils/musicutils.js:1151 +#: js/utils/synthutils.js:180 +#.TRANS: sound effect +#.TRANS: estruendo +msgid "clang" +msgstr "raqhaqaqay" -#: js/WidgetBlocks.js:910 -msgid "The Pitch staircase tool to is used to generate pitches from a given ratio." -msgstr "" +#: js/utils/musicutils.js:1152 +#: js/utils/synthutils.js:182 +#.TRANS: sound effect +#.TRANS: choque +msgid "crash" +msgstr "Takanakuy" -#: js/WidgetBlocks.js:917 -#.TRANS: generate a progressive sequence of pitches -msgid "pitch staircase" -msgstr "Kunka siqachina" +#: js/utils/musicutils.js:1153 +#: js/utils/synthutils.js:184 +#.TRANS: sound effect +#.TRANS: botella +msgid "bottle" +msgstr "wutilla" -#: js/WidgetBlocks.js:982 -msgid "The Rhythm Maker block opens a tool to create drum machines." -msgstr "" +#: js/utils/musicutils.js:1154 +#: js/utils/synthutils.js:186 +#.TRANS: sound effect +#.TRANS: palmada +msgid "clap" +msgstr "T’aklla" -#: js/WidgetBlocks.js:1036 -msgid "G major scale" -msgstr "Kuraq G wichachina" +#: js/utils/musicutils.js:1155 +#: js/utils/synthutils.js:188 +#.TRANS: sound effect +#.TRANS: bofetada +msgid "slap" +msgstr "ch’aqllay" + +#: js/utils/musicutils.js:1156 +#: js/utils/synthutils.js:190 +#.TRANS: sound effect +#.TRANS: salpicadura +msgid "splash" +msgstr "ch’iqiy" + +#: js/utils/musicutils.js:1157 +#: js/utils/synthutils.js:192 +#.TRANS: sound effect +#.TRANS: burbujas +msgid "bubbles" +msgstr "phullpu" + +#: js/utils/musicutils.js:1158 +#: js/utils/synthutils.js:194 +#.TRANS: sound effect +#.TRANS: gota de agua +msgid "raindrop" +msgstr " unu sut’u" -#: js/WidgetBlocks.js:1064 -msgid "C major scale" -msgstr "Kuraq C wichachina" +#: js/utils/musicutils.js:1159 +#: js/utils/synthutils.js:196 +#.TRANS: animal sound effect +#.TRANS: gato +msgid "cat" +msgstr "Misi" -#: js/WidgetBlocks.js:1097 -msgid "The Phrase Maker block opens a tool to create musical phrases." -msgstr "" +#: js/utils/musicutils.js:1160 +#: js/utils/synthutils.js:198 +#.TRANS: animal sound effect +#.TRANS: grillo +msgid "cricket" +msgstr "ch’illiku" -#: js/WidgetBlocks.js:1104 -#.TRANS: assigns pitch to a sequence of beats to generate a melody -msgid "phrase maker" -msgstr "Kunka pachapi paqarichiq " +#: js/utils/musicutils.js:1161 +#: js/utils/synthutils.js:200 +#.TRANS: animal sound effect +#.TRANS: perro +msgid "dog" +msgstr "Allqu" -#: js/WidgetBlocks.js:1168 -msgid "You must have at least one pitch block and one rhythm block in the matrix." +#: js/utils/musicutils.js:1163 +#: js/utils/synthutils.js:102 +#.TRANS: musical instrument +#.TRANS: banjo +msgid "banjo" msgstr "" -#: js/WidgetBlocks.js:1220 -msgid "The Status block opens a tool for inspecting the status of Music Blocks as it is running." +#: js/utils/musicutils.js:1164 +#: js/utils/synthutils.js:104 +#.TRANS: musical instrument +#.TRANS: koto +msgid "koto" msgstr "" -#: js/IntervalsBlocks.js:45 -msgid "set temperament" -msgstr "q’uñipi k’askachiy" +#: js/utils/musicutils.js:1165 +#: js/utils/synthutils.js:106 +#.TRANS: musical instrument +#.TRANS: dulcimer +msgid "dulcimer" +msgstr "" -#: js/IntervalsBlocks.js:63 -#: js/MediaBlocks.js:746 -#: js/PitchBlocks.js:657 -#: js/PitchBlocks.js:933 -#: js/PitchBlocks.js:972 -#: js/PitchBlocks.js:1005 -#: js/PitchBlocks.js:1166 -#: js/PitchBlocks.js:1679 -#: js/PitchBlocks.js:1720 -#: js/PitchBlocks.js:1827 -#: js/ToneBlocks.js:1025 -#.TRANS: adjusts the shift up or down by one octave (twelve half-steps in the interval between two notes, one having twice or half the frequency in Hz of the other.) -msgid "octave" -msgstr "pusaq pata" +#: js/utils/musicutils.js:1166 +#: js/utils/synthutils.js:108 +#.TRANS: musical instrument +#.TRANS: guitarra electrica +msgid "electric guitar" +msgstr "tawtinku phinchikilla" -#: js/IntervalsBlocks.js:99 -msgid "The Temperament name block is used to select a tuning method." +#: js/utils/musicutils.js:1167 +#: js/utils/synthutils.js:110 +#.TRANS: musical instrument +#.TRANS: fagot +msgid "bassoon" msgstr "" -#: js/IntervalsBlocks.js:161 -msgid "doubly" -msgstr "iskaycha" +#: js/utils/musicutils.js:1168 +#: js/utils/synthutils.js:112 +#.TRANS: musical instrument +#.TRANS: celeste +msgid "celeste" +msgstr "yuraq anqhas" -#: js/IntervalsBlocks.js:166 -msgid "The Doubly block will double the size of an interval." -msgstr "iskaycha t’aqata iskaychanqa sayayninta unaymanta" +#: js/utils/musicutils.js:1170 +#: js/widgets/temperament.js:787 +#.TRANS: musical temperament +#.TRANS: igual +msgid "equal" +msgstr "igual" -#: js/IntervalsBlocks.js:262 -msgid "interval number" +#: js/utils/musicutils.js:1172 +#.TRANS: musical temperament +#.TRANS: Pitagórico +msgid "Pythagorean" msgstr "" -#: js/IntervalsBlocks.js:330 -#.TRANS: measure the distance between two pitches in semi-tones -msgid "semi-tone interval measure" -msgstr "tupuy unaymanta kuskan kunka" +#: js/utils/musicutils.js:1174 +#.TRANS: musical temperament +#.TRANS: solo entonación +msgid "just intonation" +msgstr "solo entonación" -#: js/IntervalsBlocks.js:397 -#: js/IntervalsBlocks.js:513 -msgid "You must use two pitch blocks when measuring an interval." +#: js/utils/musicutils.js:1176 +#.TRANS: musical temperament +#.TRANS: +msgid "meantone" msgstr "" -#: js/IntervalsBlocks.js:439 -msgid "The Scalar interval block measures the distance between two notes in the current key and mode." +#: js/utils/musicutils.js:1193 +#.TRANS: 7mo mayor +msgid "major 7th" msgstr "" -#: js/IntervalsBlocks.js:445 -#.TRANS: measure the distance between two pitches in steps of musical scale -msgid "scalar interval measure" -msgstr "tupuy unaymanta siqaq" - -#: js/IntervalsBlocks.js:592 -#: js/musicutils.js:637 -#: js/musicutils.js:908 -#.TRANS: perfect is a music term related to intervals -msgid "perfect" -msgstr "allinpuni" - -#: js/IntervalsBlocks.js:621 -msgid "In the figure, we add sol# to sol." -msgstr "En la figura, agregamos sol# a sol." - -#: js/IntervalsBlocks.js:627 -#: js/OrnamentBlocks.js:220 -#.TRANS: calculate a relative step between notes based on semi-tones -msgid "semi-tone interval" -msgstr "intervalo semitono" - -#: js/IntervalsBlocks.js:676 -msgid "The output of the example is: do, mi, sol, sol, ti, mi" +#: js/utils/musicutils.js:1194 +#.TRANS: 7mo menor +msgid "minor 7th" msgstr "" -#: js/IntervalsBlocks.js:735 -msgid "The Chord block calculates common chords." +#: js/utils/musicutils.js:1195 +#.TRANS: 7ma dominante +msgid "dominant 7th" msgstr "" -#: js/IntervalsBlocks.js:737 -msgid "In the figure, we generate a C-major chord." +#: js/utils/musicutils.js:1196 +#.TRANS: 7mo menor-mayor +msgid "minor-major 7th" msgstr "" -#: js/IntervalsBlocks.js:742 -msgid "chord" -msgstr "tinkuq kunka" - -#: js/IntervalsBlocks.js:794 -msgid "The Ratio Interval block calculates an interval based on a ratio." +#: js/utils/musicutils.js:1197 +#.TRANS: 7º completamente disminuido +msgid "fully-diminished 7th" msgstr "" -#: js/IntervalsBlocks.js:799 -msgid "ratio interval" +#: js/utils/musicutils.js:1198 +#.TRANS: 7º medio disminuido +msgid "half-diminished 7th" msgstr "" -#: js/IntervalsBlocks.js:868 -msgid "In the figure, we add la to sol." -msgstr "En la figura, sumamos la a sol." +#: js/utils/musicutils.js:1557 +#: js/utils/musicutils.js:1569 +#.TRANS: Igual (12EDO) +msgid "Equal (12EDO)" +msgstr "" -#: js/IntervalsBlocks.js:924 -#.TRANS: define a custom mode -msgid "define mode" -msgstr "definir el modo" +#: js/utils/musicutils.js:1558 +#: js/utils/musicutils.js:1570 +#.TRANS: 5-Límite de entonación justa +msgid "5-limit Just Intonation" +msgstr "" -#: js/IntervalsBlocks.js:977 -msgid "movable Do" -msgstr "movible Do" +#: js/utils/musicutils.js:1559 +#: js/utils/musicutils.js:1571 +#.TRANS: Pythagorean (3-limite EJ) +msgid "Pythagorean (3-limit JI)" +msgstr "" -#: js/IntervalsBlocks.js:1028 -#.TRANS: mode length is the number of notes in the mode, e.g., 7 for major and minor scales; 12 for chromatic scales -msgid "mode length" -msgstr "Hina kay sunin" +#: js/utils/musicutils.js:1560 +#: js/utils/musicutils.js:1561 +#: js/utils/musicutils.js:1572 +#: js/utils/musicutils.js:1573 +#.TRANS: +msgid "Meantone" +msgstr "" -#: js/IntervalsBlocks.js:1037 -msgid "The Mode length block is the number of notes in the current scale." +#: js/utils/musicutils.js:1574 +#.TRANS: Personalizado +msgid "Custom" msgstr "" -#: js/IntervalsBlocks.js:1039 -msgid "Most Western scales have 7 notes." -msgstr "La mayoría de las escalas occidentales tienen 7 notas." +#: js/utils/musicutils.js:5387 +#: js/utils/musicutils.js:5430 +#.TRANS: actuales +msgid "current" +msgstr "actuales" -#: js/IntervalsBlocks.js:1088 -#.TRANS: the mode in music is 'major', 'minor', etc. -msgid "current mode" -msgstr "Chaynalla kunka" +#: js/utils/musicutils.js:5390 +#: js/utils/musicutils.js:5421 +#.TRANS: próximo +msgid "next" +msgstr "próximo" -#: js/IntervalsBlocks.js:1141 -#.TRANS: the key is a group of pitches with which a music composition is created -msgid "current key" -msgstr "kunan kichaq" +#: js/utils/musicutils.js:5393 +#: js/utils/musicutils.js:5426 +#.TRANS: anterior +msgid "previous" +msgstr "anterior" -#: js/IntervalsBlocks.js:1193 -#: js/IntervalsBlocks.js:1238 -#.TRANS: set the key and mode, e.g. C Major -msgid "set key" -msgstr "kichananta takyachiy" +#: js/utils/synthutils.js:120 +#.TRANS: simple monotone synthesizer +#.TRANS: simple-2 +msgid "simple-2" +msgstr "qasi-2" -#: js/IntervalsBlocks.js:1247 -#: js/IntervalsBlocks.js:1253 -msgid "The Set key block is used to set the key and mode," -msgstr "El bloque Fijar tecla se usa para configurar la tecla y el modo." +#: js/utils/synthutils.js:122 +#.TRANS: simple monotone synthesizer +#.TRANS: simple-3 +msgid "simple-3" +msgstr "qasi-3" -#: js/IntervalsBlocks.js:1253 -msgid "eg C Major" -msgstr "C kuraq" +#: js/utils/synthutils.js:124 +#.TRANS: simple monotone synthesizer +#.TRANS: simple-4 +msgid "simple-4" +msgstr "qasi-4" -#: js/IntervalsBlocks.js:1266 -#: js/DictBlocks.js:215 -#: js/DictBlocks.js:216 -#: js/DictBlocks.js:289 -#: js/DictBlocks.js:290 -#: js/DictBlocks.js:357 -#: js/DictBlocks.js:430 -#: js/DictBlocks.js:431 -#.TRANS: key, e.g., C in C Major -msgid "key" -msgstr "kichanapaq" +#: js/utils/synthutils.js:162 +#.TRANS: musical instrument +#.TRANS: taiko +msgid "taiko" +msgstr "chakiyuq wankar" -#: js/ActionBlocks.js:58 +#: js/blocks/ActionBlocks.js:58 +#.TRANS: El bloque Volver (Return) devolverá un valor de una acción. msgid "The Return block will return a value from an action." msgstr "Kutiq Saya, kutichinqa huk rurayta " -#: js/ActionBlocks.js:75 +#: js/blocks/ActionBlocks.js:75 +#.TRANS: retorno msgid "return" msgstr "kuti" -#: js/ActionBlocks.js:128 +#: js/blocks/ActionBlocks.js:128 +#.TRANS: El bloque Volver a URL devolverá un valor a una página web. msgid "The Return to URL block will return a value to a webpage." msgstr "Kutichiq Saya URLman qupunqa huk chaninta web qhawanaman" -#: js/ActionBlocks.js:145 +#: js/blocks/ActionBlocks.js:145 +#.TRANS: retorno a URL msgid "return to URL" msgstr "Kutichimuy URLman" -#: js/ActionBlocks.js:233 -#: js/ActionBlocks.js:290 -#: js/ActionBlocks.js:501 -#: js/ActionBlocks.js:688 +#: js/blocks/ActionBlocks.js:233 +#: js/blocks/ActionBlocks.js:290 +#: js/blocks/ActionBlocks.js:501 +#: js/blocks/ActionBlocks.js:688 +#.TRANS: El bloque Calcular devuelve un valor calculado por una acción. msgid "The Calculate block returns a value calculated by an action." msgstr "" -#: js/ActionBlocks.js:251 -#: js/ActionBlocks.js:517 -#: js/ActionBlocks.js:707 +#: js/blocks/ActionBlocks.js:251 +#: js/blocks/ActionBlocks.js:517 +#: js/blocks/ActionBlocks.js:707 +#.TRANS: calcular msgid "calculate" msgstr "Yuyakukuy" -#: js/ActionBlocks.js:376 -#: js/ActionBlocks.js:593 -#: js/ActionBlocks.js:942 -#: js/ActionBlocks.js:1389 +#: js/blocks/ActionBlocks.js:376 +#: js/blocks/ActionBlocks.js:593 +#: js/blocks/ActionBlocks.js:942 +#: js/blocks/ActionBlocks.js:1389 #.TRANS: do is the do something or take an action. +#.TRANS: El bloque Hacer se utiliza para iniciar una acción. msgid "The Do block is used to initiate an action." msgstr "El bloque Hacer se utiliza para iniciar una acción." -#: js/ActionBlocks.js:390 -#: js/ActionBlocks.js:610 -#: js/ActionBlocks.js:959 -#: js/ActionBlocks.js:1048 -#: js/MeterBlocks.js:769 +#: js/blocks/ActionBlocks.js:390 +#: js/blocks/ActionBlocks.js:610 +#: js/blocks/ActionBlocks.js:959 +#: js/blocks/ActionBlocks.js:1048 +#: js/blocks/MeterBlocks.js:769 +#.TRANS: do msgid "do1" msgstr "" -#: js/ActionBlocks.js:390 -#: js/ActionBlocks.js:610 -#: js/ActionBlocks.js:959 -#: js/ActionBlocks.js:1048 -#: js/FlowBlocks.js:742 -#: js/FlowBlocks.js:822 -#: js/MeterBlocks.js:769 +#: js/blocks/ActionBlocks.js:390 +#: js/blocks/ActionBlocks.js:610 +#: js/blocks/ActionBlocks.js:959 +#: js/blocks/ActionBlocks.js:1048 +#: js/blocks/FlowBlocks.js:742 +#: js/blocks/FlowBlocks.js:822 +#: js/blocks/MeterBlocks.js:769 +#.TRANS: hacer msgid "do" msgstr "Ruray" -#: js/ActionBlocks.js:791 -#: js/ActionBlocks.js:865 +#: js/blocks/ActionBlocks.js:791 +#: js/blocks/ActionBlocks.js:865 +#.TRANS: El bloque Arg contiene el valor de un argumento pasado a una acción. msgid "The Arg block contains the value of an argument passed to an action." msgstr "" -#: js/ActionBlocks.js:806 -#: js/ActionBlocks.js:878 +#: js/blocks/ActionBlocks.js:806 +#: js/blocks/ActionBlocks.js:878 +#.TRANS: arg msgid "arg" msgstr "ruray" -#: js/ActionBlocks.js:836 -#: js/ActionBlocks.js:900 -#: js/ActionBlocks.js:908 +#: js/blocks/ActionBlocks.js:836 +#: js/blocks/ActionBlocks.js:900 +#: js/blocks/ActionBlocks.js:908 +#.TRANS: argumento no válido msgid "Invalid argument" msgstr "Mana chaninniyuq rimay" -#: js/ActionBlocks.js:944 +#: js/blocks/ActionBlocks.js:944 +#.TRANS: En el ejemplo, se usa con el bloque Uno para elegir una fase aleatoria. msgid "In the example, it is used with the One of block to choose a random phase." msgstr "" -#: js/ActionBlocks.js:1019 -#: js/ActionBlocks.js:1026 -msgid "The Listen block is used to listen for an event such as a mouse click." +#: js/blocks/ActionBlocks.js:1019 +#: js/blocks/ActionBlocks.js:1026 +#.TRANS: El bloque de escucha se usa para escuchar un evento como un clic del ratón. +msgid "The Listen block is used to listen for an event such as a mouse click." +msgstr "" + +#: js/blocks/ActionBlocks.js:1028 +#.TRANS: Cuando ocurre el evento, se realiza una acción. +msgid "When the event happens, an action is taken." +msgstr "Sichus kanqa ruray, chayqa kuyukachay kanqa" + +#: js/blocks/ActionBlocks.js:1045 +#.TRANS: cuando +msgid "on" +msgstr "hayk’aq" + +#: js/blocks/ActionBlocks.js:1048 +#: js/blocks/ActionBlocks.js:1049 +#: js/blocks/ActionBlocks.js:1153 +#.TRANS: señal +msgid "event" +msgstr "riqsichi" + +#: js/blocks/ActionBlocks.js:1133 +#.TRANS: El bloque Emitir se utiliza para desencadenar un evento. +msgid "The Broadcast block is used to trigger an event." +msgstr "El bloque Emitir se utiliza para desencadenar un evento." + +#: js/blocks/ActionBlocks.js:1151 +#.TRANS: emitir +msgid "broadcast" +msgstr "lluqsichiy" + +#: js/blocks/ActionBlocks.js:1208 +#.TRANS: Cada bloque de inicio es una voz separada. +msgid "Each Start block is a separate voice." +msgstr "Cada bloque de inicio es una voz separada." + +#: js/blocks/ActionBlocks.js:1304 +#.TRANS: A menudo se utiliza para almacenar una frase de música que se repite. +msgid "It is often used for storing a phrase of music that is repeated." +msgstr "" + +#: js/blocks/ActionBlocks.js:1495 +#.TRANS: definir el temperamento +msgid "define temperament" +msgstr "akllay" + +#: js/blocks/BooleanBlocks.js:44 +#.TRANS: El bloque No es el operador lógico no. +msgid "The Not block is the logical not operator." +msgstr "El bloque No es el operador lógico no." + +#: js/blocks/BooleanBlocks.js:62 +#.TRANS: no +msgid "not" +msgstr "mana" + +#: js/blocks/BooleanBlocks.js:134 +#.TRANS: El bloque Y es el lógico y el operador. +msgid "The And block is the logical and operator." +msgstr "El bloque Y es el lógico y el operador." + +#: js/blocks/BooleanBlocks.js:152 +#.TRANS: y +msgid "and" +msgstr "hinallataq" + +#: js/blocks/BooleanBlocks.js:218 +#.TRANS: El bloque O es el lógico o el operador. +msgid "The Or block is the logical or operator." +msgstr "El bloque O es el lógico o el operador." + +#: js/blocks/BooleanBlocks.js:236 +#.TRANS: o +msgid "or" +msgstr "utaq" + +#: js/blocks/BooleanBlocks.js:302 +#.TRANS: El bloque XOR es el lógico XOR el operador. +msgid "The XOR block is the logical XOR operator." +msgstr "El bloque XOR es el lógico XOR el operador." + +#: js/blocks/BooleanBlocks.js:320 +#.TRANS: xor +msgid "xor" +msgstr "" + +#: js/blocks/BooleanBlocks.js:808 +#.TRANS: El bloque Igual devuelve verdadero si los dos números son iguales. +msgid "The Equal block returns True if the two numbers are equal." +msgstr "El bloque Igual devuelve verdadero si los dos números son iguales." + +#: js/blocks/BooleanBlocks.js:909 +#.TRANS: El bloque No igual a devuelve Verdadero si los dos números no son iguales entre sí. +msgid "The Not-equal-to block returns True if the two numbers are not equal to each other." +msgstr "" + +#: js/blocks/BooleanBlocks.js:1008 +#.TRANS: El bloque Booleano se utiliza para especificar verdadero o falso. +msgid "The Boolean block is used to specify true or false." +msgstr "El bloque Booleano se utiliza para especificar verdadero o falso." + +#: js/blocks/BoxesBlocks.js:53 +#: js/blocks/BoxesBlocks.js:59 +#.TRANS: El bloque Agregar a se usa para agregar al valor almacenado en un cuadro. +msgid "The Add-to block is used to add to the value stored in a box." +msgstr "" + +#: js/blocks/BoxesBlocks.js:61 +#.TRANS: También se puede utilizar con otros bloques, como el color, el tamaño de la pluma. +msgid "It can also be used with other blocks such as Color and Pen size." +msgstr "" + +#: js/blocks/BoxesBlocks.js:73 +#.TRANS: sumar +msgid "add" +msgstr "yapay" + +#: js/blocks/BoxesBlocks.js:75 +#: js/widgets/temperament.js:857 +#.TRANS: para +msgid "to" +msgstr "sayay" + +#: js/blocks/BoxesBlocks.js:75 +#: js/blocks/BoxesBlocks.js:595 +#: js/blocks/HeapBlocks.js:544 +#.TRANS: valor +msgid "value1" +msgstr "chanin" + +#: js/blocks/BoxesBlocks.js:118 +#.TRANS: Bloque no soporta incremento. +msgid "Block does not support incrementing." +msgstr "" + +#: js/blocks/BoxesBlocks.js:152 +#.TRANS: El bloque Sumar-1-a agrega uno al valor almacenado en un cuadro. +msgid "The Add-1-to block adds one to the value stored in a box." +msgstr "Yapay-1 t’aqa hukta tawa k’uchu wayqaychasqaman yapan" + +#: js/blocks/BoxesBlocks.js:163 +#.TRANS: sumar 1 a +msgid "add 1 to" +msgstr "1 yapay" "hukta yapay" + +#: js/blocks/BoxesBlocks.js:211 +#.TRANS: El bloque restar-1-de resta uno al valor almacenado en un cuadro. +msgid "The Subtract-1-from block subtracts one from the value stored in a box." +msgstr "El bloque restar-1-de resta uno al valor almacenado en un cuadro." + +#: js/blocks/BoxesBlocks.js:222 +#.TRANS: restar 1 de +msgid "subtract 1 from" +msgstr "1 qichuy" "hukta qichuy" + +#: js/blocks/BoxesBlocks.js:270 +#: js/blocks/BoxesBlocks.js:387 +#.TRANS: El bloque Caja devuelve el valor almacenado en una caja . +msgid "The Box block returns the value stored in a box." +msgstr "El bloque Caja devuelve el valor almacenado en una caja." + +#: js/blocks/BoxesBlocks.js:500 +#: js/blocks/BoxesBlocks.js:576 +#.TRANS: El bloque Guardar en caja se utiliza para almacenar un valor en una caja. +msgid "The Store in block will store a value in a box." +msgstr "El bloque Guardar en caja se utiliza para almacenar un valor en una caja." + +#: js/blocks/BoxesBlocks.js:595 +#: js/blocks/EnsembleBlocks.js:391 +#: js/blocks/EnsembleBlocks.js:402 +#.TRANS: nombre +msgid "name1" +msgstr "Suti" + +#: js/blocks/BoxesBlocks.js:652 +#.TRANS: El bloque Caja 2 devuelve el valor almacenado en caja 2. +msgid "The Box2 block returns the value stored in Box2." +msgstr "El bloque Caja 2 devuelve el valor almacenado en caja 2." + +#: js/blocks/BoxesBlocks.js:703 +#.TRANS: El bloque Guardar en caja2 se utiliza para almacenar un valor en caja2. +msgid "The Store in Box2 block is used to store a value in Box2." +msgstr "" + +#: js/blocks/BoxesBlocks.js:715 +#.TRANS: guardar en caja 2 +msgid "store in box2" +msgstr "2 tawa k’uchupi waqaychay" + +#: js/blocks/BoxesBlocks.js:761 +#.TRANS: El bloque Caja 1 devuelve el valor almacenado en caja 1. +msgid "The Box1 block returns the value stored in Box1." +msgstr "El bloque Caja 1 devuelve el valor almacenado en caja 1." + +#: js/blocks/BoxesBlocks.js:812 +#.TRANS: El bloque Guardar en caja1 se utiliza para almacenar un valor en caja1. +msgid "The Store in Box1 block is used to store a value in Box1." +msgstr "" + +#: js/blocks/BoxesBlocks.js:826 +#.TRANS: guardar en caja 1 +msgid "store in box1" +msgstr "1 tawa k’uchupi waqaychay" + +#: js/blocks/DictBlocks.js:77 +#.TRANS: mostrar diccionario +msgid "show dictionary" msgstr "" -#: js/ActionBlocks.js:1028 -msgid "When the event happens, an action is taken." -msgstr "Sichus kanqa ruray, chayqa kuyukachay kanqa" +#: js/blocks/DictBlocks.js:80 +#: js/blocks/DictBlocks.js:145 +#: js/blocks/DictBlocks.js:216 +#: js/blocks/DictBlocks.js:290 +#: js/blocks/ProgramBlocks.js:396 +#: js/blocks/ProgramBlocks.js:501 +#: js/blocks/ProgramBlocks.js:664 +#.TRANS: mi diccionario +msgid "My Dictionary" +msgstr "" -#: js/ActionBlocks.js:1045 -msgid "on" -msgstr "hayk’aq" +#: js/blocks/DictBlocks.js:129 +#.TRANS: El bloque Diccionario devuelve un diccionario. +msgid "The Dictionary block returns a dictionary." +msgstr "" -#: js/ActionBlocks.js:1048 -#: js/ActionBlocks.js:1049 -#: js/ActionBlocks.js:1153 -msgid "event" -msgstr "riqsichi" +#: js/blocks/DictBlocks.js:197 +#: js/blocks/DictBlocks.js:339 +#.TRANS: El bloque obtener-valor devuelve un valor en el diccionario para una clave especificada. +msgid "The Get-dict block returns a value in the dictionary for a specified key." +msgstr "" -#: js/ActionBlocks.js:1133 -msgid "The Broadcast block is used to trigger an event." -msgstr "El bloque Emitir se utiliza para desencadenar un evento." +#: js/blocks/DictBlocks.js:212 +#: js/blocks/DictBlocks.js:354 +#.TRANS: retrieve a value from the dictionary with a given key +#.TRANS: obtener valor +msgid "get value" +msgstr "" -#: js/ActionBlocks.js:1151 -msgid "broadcast" -msgstr "lluqsichiy" +#: js/blocks/DictBlocks.js:215 +#: js/blocks/DictBlocks.js:216 +#: js/blocks/DictBlocks.js:289 +#: js/blocks/DictBlocks.js:290 +#: js/blocks/DictBlocks.js:357 +#: js/blocks/DictBlocks.js:430 +#: js/blocks/DictBlocks.js:431 +#.TRANS: clave +msgid "key2" +msgstr "" -#: js/ActionBlocks.js:1208 -msgid "Each Start block is a separate voice." -msgstr "Cada bloque de inicio es una voz separada." +#: js/blocks/DictBlocks.js:215 +#: js/blocks/DictBlocks.js:216 +#: js/blocks/DictBlocks.js:289 +#: js/blocks/DictBlocks.js:290 +#: js/blocks/DictBlocks.js:357 +#: js/blocks/DictBlocks.js:430 +#: js/blocks/DictBlocks.js:431 +#: js/blocks/IntervalsBlocks.js:1462 +#.TRANS: key, e.g., C in C Major +#.TRANS: clave +msgid "key" +msgstr "kichanapaq" -#: js/ActionBlocks.js:1304 -msgid "It is often used for storing a phrase of music that is repeated." +#: js/blocks/DictBlocks.js:271 +#: js/blocks/DictBlocks.js:411 +#.TRANS: El bloque valor-adjusto establece un valor en el diccionario para una clave específica. +msgid "The Set-dict block sets a value in the dictionary for a specified key." msgstr "" -#: js/ActionBlocks.js:1495 -msgid "define temperament" -msgstr "akllay" +#: js/blocks/DictBlocks.js:286 +#: js/blocks/DictBlocks.js:427 +#.TRANS: set a value in the dictionary for a given key +#.TRANS: valor ajustado +msgid "set value" +msgstr "" -#: js/EnsembleBlocks.js:66 +#: js/blocks/EnsembleBlocks.js:66 +#.TRANS: valor en la pila de ratón msgid "mouse index heap" msgstr "Huk’ucha /qillqa purichina" -#: js/EnsembleBlocks.js:68 +#: js/blocks/EnsembleBlocks.js:68 +#.TRANS: El bloque de valor en la pila de ratón devuelve un valor en el almacenamiento dinámico en una ubicación específica para un mouse específico. msgid "The Mouse index heap block returns a value in the heap at a specified location for a specified mouse." msgstr "" -#: js/EnsembleBlocks.js:77 -#: js/EnsembleBlocks.js:1080 +#: js/blocks/EnsembleBlocks.js:77 +#: js/blocks/EnsembleBlocks.js:1080 +#.TRANS: renombrar ratón msgid "mouse name" msgstr "Sutichay huk’uchata" -#: js/EnsembleBlocks.js:77 -#: js/EnsembleBlocks.js:92 -#: js/HeapBlocks.js:544 +#: js/blocks/EnsembleBlocks.js:77 +#: js/blocks/EnsembleBlocks.js:92 +#: js/blocks/HeapBlocks.js:544 #.TRANS: value1 is a numeric value (JAPANESE ONLY) +#.TRANS: posición en la pila msgid "index" msgstr "posición" -#: js/EnsembleBlocks.js:80 +#: js/blocks/EnsembleBlocks.js:80 +#.TRANS: valor en la pila de tortuga msgid "turtle index heap" msgstr "" -#: js/EnsembleBlocks.js:82 +#: js/blocks/EnsembleBlocks.js:82 +#.TRANS: El bloque de valor en la pila de tortuga devuelve un valor en el almacenamiento dinámico en una ubicación específica para un mouse específico. msgid "The Turtle index heap block returns a value in the heap at a specified location for a specified turtle." msgstr "" -#: js/EnsembleBlocks.js:90 -#: js/EnsembleBlocks.js:167 -#: js/EnsembleBlocks.js:230 -#: js/EnsembleBlocks.js:316 -#: js/EnsembleBlocks.js:362 -#: js/EnsembleBlocks.js:400 -#: js/EnsembleBlocks.js:454 -#: js/EnsembleBlocks.js:504 -#: js/EnsembleBlocks.js:550 -#: js/EnsembleBlocks.js:597 -#: js/EnsembleBlocks.js:651 -#: js/EnsembleBlocks.js:763 -#: js/EnsembleBlocks.js:854 -#: js/EnsembleBlocks.js:915 -#: js/EnsembleBlocks.js:955 -#: js/EnsembleBlocks.js:1219 -#: js/EnsembleBlocks.js:1293 +#: js/blocks/EnsembleBlocks.js:90 +#: js/blocks/EnsembleBlocks.js:167 +#: js/blocks/EnsembleBlocks.js:230 +#: js/blocks/EnsembleBlocks.js:316 +#: js/blocks/EnsembleBlocks.js:362 +#: js/blocks/EnsembleBlocks.js:400 +#: js/blocks/EnsembleBlocks.js:454 +#: js/blocks/EnsembleBlocks.js:504 +#: js/blocks/EnsembleBlocks.js:550 +#: js/blocks/EnsembleBlocks.js:597 +#: js/blocks/EnsembleBlocks.js:651 +#: js/blocks/EnsembleBlocks.js:763 +#: js/blocks/EnsembleBlocks.js:854 +#: js/blocks/EnsembleBlocks.js:915 +#: js/blocks/EnsembleBlocks.js:955 +#: js/blocks/EnsembleBlocks.js:1219 +#: js/blocks/EnsembleBlocks.js:1293 #.TRANS: Yertle is the name of a turtle. +#.TRANS: msgid "Yertle" msgstr "" -#: js/EnsembleBlocks.js:92 -#: js/EnsembleBlocks.js:1089 +#: js/blocks/EnsembleBlocks.js:92 +#: js/blocks/EnsembleBlocks.js:1089 +#.TRANS: renombrar tortuga msgid "turtle name" msgstr "renombrar tortuga" -#: js/EnsembleBlocks.js:122 -#: js/EnsembleBlocks.js:1197 -#: js/HeapBlocks.js:474 -#: js/HeapBlocks.js:572 +#: js/blocks/EnsembleBlocks.js:122 +#: js/blocks/EnsembleBlocks.js:1197 +#: js/blocks/HeapBlocks.js:474 +#: js/blocks/HeapBlocks.js:572 +#.TRANS: El índice debe ser > 0. msgid "Index must be > 0." msgstr "El índice debe ser > 0." -#: js/EnsembleBlocks.js:127 -#: js/HeapBlocks.js:479 -#: js/HeapBlocks.js:577 +#: js/blocks/EnsembleBlocks.js:127 +#: js/blocks/HeapBlocks.js:479 +#: js/blocks/HeapBlocks.js:577 +#.TRANS: El tamaño máximo de pilas es 1000. msgid "Maximum heap size is 1000." msgstr "El tamaño máximo de pilas es 1000." -#: js/EnsembleBlocks.js:145 +#: js/blocks/EnsembleBlocks.js:145 +#.TRANS: parar ratón msgid "stop mouse" msgstr "parar ratón" -#: js/EnsembleBlocks.js:147 +#: js/blocks/EnsembleBlocks.js:147 +#.TRANS: El bloque parar ratón parar el ratón especificado. msgid "The Stop mouse block stops the specified mouse." msgstr "El bloque parar ratón parar el ratón especificado." -#: js/EnsembleBlocks.js:158 +#: js/blocks/EnsembleBlocks.js:158 +#.TRANS: detener tortuga msgid "stop turtle" msgstr "detener tortuga" -#: js/EnsembleBlocks.js:160 +#: js/blocks/EnsembleBlocks.js:160 +#.TRANS: El bloque parar tortuga parar el ratón especificado. msgid "The Stop turtle block stops the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:184 -#: js/EnsembleBlocks.js:247 -#: js/EnsembleBlocks.js:413 -#: js/EnsembleBlocks.js:468 -#: js/EnsembleBlocks.js:706 -#: js/EnsembleBlocks.js:808 -#: js/EnsembleBlocks.js:870 -#: js/EnsembleBlocks.js:1190 -#: js/EnsembleBlocks.js:1253 +#: js/blocks/EnsembleBlocks.js:184 +#: js/blocks/EnsembleBlocks.js:247 +#: js/blocks/EnsembleBlocks.js:413 +#: js/blocks/EnsembleBlocks.js:468 +#: js/blocks/EnsembleBlocks.js:706 +#: js/blocks/EnsembleBlocks.js:808 +#: js/blocks/EnsembleBlocks.js:870 +#: js/blocks/EnsembleBlocks.js:1190 +#: js/blocks/EnsembleBlocks.js:1253 +#.TRANS: No se puede encontrar ratón msgid "Cannot find mouse" msgstr "Manan huk’uchata tarikunchu" -#: js/EnsembleBlocks.js:186 -#: js/EnsembleBlocks.js:249 -#: js/EnsembleBlocks.js:415 -#: js/EnsembleBlocks.js:470 -#: js/EnsembleBlocks.js:708 -#: js/EnsembleBlocks.js:810 -#: js/EnsembleBlocks.js:872 -#: js/EnsembleBlocks.js:1192 -#: js/EnsembleBlocks.js:1255 +#: js/blocks/EnsembleBlocks.js:186 +#: js/blocks/EnsembleBlocks.js:249 +#: js/blocks/EnsembleBlocks.js:415 +#: js/blocks/EnsembleBlocks.js:470 +#: js/blocks/EnsembleBlocks.js:708 +#: js/blocks/EnsembleBlocks.js:810 +#: js/blocks/EnsembleBlocks.js:872 +#: js/blocks/EnsembleBlocks.js:1192 +#: js/blocks/EnsembleBlocks.js:1255 +#.TRANS: No se puede encontrar tortuga. msgid "Cannot find turtle" msgstr "No se puede encontrar tortuga." -#: js/EnsembleBlocks.js:206 +#: js/blocks/EnsembleBlocks.js:206 +#.TRANS: comenzar ratón msgid "start mouse" msgstr "comenzar ratón" -#: js/EnsembleBlocks.js:209 +#: js/blocks/EnsembleBlocks.js:209 +#.TRANS: El bloque comenzar ratón inicia el ratón especificado. msgid "The Start mouse block starts the specified mouse." msgstr "El bloque comenzar ratón inicia el ratón especificado." -#: js/EnsembleBlocks.js:220 +#: js/blocks/EnsembleBlocks.js:220 +#.TRANS: iniciar tortuga msgid "start turtle" msgstr "iniciar tortuga" -#: js/EnsembleBlocks.js:223 +#: js/blocks/EnsembleBlocks.js:223 +#.TRANS: El bloque comenzar tortuga inicia el ratón especificado. msgid "The Start turtle block starts the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:256 +#: js/blocks/EnsembleBlocks.js:256 +#.TRANS: Ratón ya ha comenzado. msgid "Mouse is already running." msgstr "Huk’ucha qallarinña" -#: js/EnsembleBlocks.js:258 +#: js/blocks/EnsembleBlocks.js:258 +#.TRANS: Tortuga ya ha comenzado. msgid "Turtle is already running." msgstr "Tortuga ya ha comenzado." -#: js/EnsembleBlocks.js:282 +#: js/blocks/EnsembleBlocks.js:282 +#.TRANS: No se puede encontrar el bloque de inicar. msgid "Cannot find start block" msgstr "Manan qallariq saya tarikunchu" -#: js/EnsembleBlocks.js:292 +#: js/blocks/EnsembleBlocks.js:292 #.TRANS: pen color for this mouse +#.TRANS: color de ratón msgid "mouse color" msgstr "Llimp’iyniyuq huk’ucha" -#: js/EnsembleBlocks.js:294 +#: js/blocks/EnsembleBlocks.js:294 +#.TRANS: El bloque de color del ratón devuelve el color del lápiz del ratón especificado. msgid "The Mouse color block returns the pen color of the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:306 +#: js/blocks/EnsembleBlocks.js:306 #.TRANS: pen color for this turtle +#.TRANS: color de tortuga msgid "turtle color" msgstr "" -#: js/EnsembleBlocks.js:308 +#: js/blocks/EnsembleBlocks.js:308 +#.TRANS: El bloque de color de la tortuga devuelve el color del lápiz de la tortuga especificado. msgid "The Turtle color block returns the pen color of the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:338 +#: js/blocks/EnsembleBlocks.js:338 #.TRANS: heading (compass direction) for this mouse +#.TRANS: rumbo de ratón msgid "mouse heading" msgstr "rumbo de ratón" -#: js/EnsembleBlocks.js:340 +#: js/blocks/EnsembleBlocks.js:340 +#.TRANS: El bloque de rumbo del ratón devuelve el rumbo del lápiz del ratón especificado. msgid "The Mouse heading block returns the heading of the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:352 +#: js/blocks/EnsembleBlocks.js:352 #.TRANS: heading (compass direction) for this turtle +#.TRANS: rumbo de tortuga msgid "turtle heading" msgstr "" -#: js/EnsembleBlocks.js:354 +#: js/blocks/EnsembleBlocks.js:354 +#.TRANS: El bloque de rumbo de la tortuga devuelve el rumbo del lápiz de la tortuga especificado. msgid "The Turtle heading block returns the heading of the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:384 -#: js/EnsembleBlocks.js:439 +#: js/blocks/EnsembleBlocks.js:384 +#: js/blocks/EnsembleBlocks.js:439 #.TRANS: set xy position for this mouse +#.TRANS: fijar ratón msgid "set mouse" msgstr "fijar ratón" -#: js/EnsembleBlocks.js:391 -#: js/EnsembleBlocks.js:402 -#: js/BoxesBlocks.js:595 -msgid "name1" -msgstr "Suti" - -#: js/EnsembleBlocks.js:391 -#: js/EnsembleBlocks.js:402 -#: js/ProgramBlocks.js:881 -#: js/GraphicsBlocks.js:235 -#: js/GraphicsBlocks.js:313 -#: js/GraphicsBlocks.js:436 -#: js/GraphicsBlocks.js:487 -#: js/GraphicsBlocks.js:534 -#: js/GraphicsBlocks.js:750 +#: js/blocks/EnsembleBlocks.js:391 +#: js/blocks/EnsembleBlocks.js:402 +#: js/blocks/GraphicsBlocks.js:235 +#: js/blocks/GraphicsBlocks.js:313 +#: js/blocks/GraphicsBlocks.js:436 +#: js/blocks/GraphicsBlocks.js:487 +#: js/blocks/GraphicsBlocks.js:534 +#: js/blocks/GraphicsBlocks.js:750 +#: js/blocks/ProgramBlocks.js:881 +#.TRANS: x msgid "x" msgstr "x" -#: js/EnsembleBlocks.js:391 -#: js/EnsembleBlocks.js:402 -#: js/ProgramBlocks.js:881 -#: js/GraphicsBlocks.js:149 -#: js/GraphicsBlocks.js:313 -#: js/GraphicsBlocks.js:436 -#: js/GraphicsBlocks.js:487 -#: js/GraphicsBlocks.js:534 -#: js/GraphicsBlocks.js:750 +#: js/blocks/EnsembleBlocks.js:391 +#: js/blocks/EnsembleBlocks.js:402 +#: js/blocks/GraphicsBlocks.js:149 +#: js/blocks/GraphicsBlocks.js:313 +#: js/blocks/GraphicsBlocks.js:436 +#: js/blocks/GraphicsBlocks.js:487 +#: js/blocks/GraphicsBlocks.js:534 +#: js/blocks/GraphicsBlocks.js:750 +#: js/blocks/ProgramBlocks.js:881 +#.TRANS: y msgid "y" msgstr "y" -#: js/EnsembleBlocks.js:395 -#: js/EnsembleBlocks.js:452 +#: js/blocks/EnsembleBlocks.js:395 +#: js/blocks/EnsembleBlocks.js:452 #.TRANS: set xy position for this turtle +#.TRANS: fijar tortuga msgid "set turtle" msgstr "" -#: js/EnsembleBlocks.js:433 +#: js/blocks/EnsembleBlocks.js:433 +#.TRANS: El bloque de ratón establecer envía una pila de bloques para que los ejecute el ratón especificado. msgid "The Set mouse block sends a stack of blocks to be run by the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:446 +#: js/blocks/EnsembleBlocks.js:446 +#.TRANS: El bloque de tortuga establecer envía una pila de bloques para que los ejecute el tortuga especificado. msgid "The Set turtle block sends a stack of blocks to be run by the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:480 +#: js/blocks/EnsembleBlocks.js:480 #.TRANS: y position for this mouse +#.TRANS: ratón y msgid "mouse y" msgstr "puripaq Y" -#: js/EnsembleBlocks.js:482 +#: js/blocks/EnsembleBlocks.js:482 +#.TRANS: El bloque del ratón Y devuelve la posición Y del ratón especificado. msgid "The Y mouse block returns the Y position of the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:494 +#: js/blocks/EnsembleBlocks.js:494 #.TRANS: y position for this turtle +#.TRANS: tortuga y msgid "turtle y" msgstr "tortuga y" -#: js/EnsembleBlocks.js:496 +#: js/blocks/EnsembleBlocks.js:496 +#.TRANS: El bloque de la tortuga Y devuelve la posición Y de la tortuga especificado. msgid "The Y turtle block returns the Y position of the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:526 +#: js/blocks/EnsembleBlocks.js:526 #.TRANS: x position for this mouse +#.TRANS: ratón x msgid "mouse x" msgstr "puripaq X" -#: js/EnsembleBlocks.js:528 +#: js/blocks/EnsembleBlocks.js:528 +#.TRANS: El bloque del ratón X devuelve la posición X del ratón especificado. msgid "The X mouse block returns the X position of the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:540 +#: js/blocks/EnsembleBlocks.js:540 #.TRANS: x position for this turtle +#.TRANS: tortuga x msgid "turtle x" msgstr "tortuga x" -#: js/EnsembleBlocks.js:542 +#: js/blocks/EnsembleBlocks.js:542 +#.TRANS: El bloque de la tortuga X devuelve la posición X de la tortuga especificado. msgid "The X turtle block returns the X position of the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:573 +#: js/blocks/EnsembleBlocks.js:573 #.TRANS: notes played by this mouse +#.TRANS: notas jugadas de ratón msgid "mouse notes played" msgstr "notas jugadas de ratón" -#: js/EnsembleBlocks.js:575 +#: js/blocks/EnsembleBlocks.js:575 +#.TRANS: El bloque de notas jugadas del ratón devuelve el número de notas tocadas por el ratón especificado. msgid "The Mouse elapse notes block returns the number of notes played by the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:587 +#: js/blocks/EnsembleBlocks.js:587 #.TRANS: notes played by this turtle +#.TRANS: notas jugadas de tortuga msgid "turtle notes played" msgstr "" -#: js/EnsembleBlocks.js:589 +#: js/blocks/EnsembleBlocks.js:589 +#.TRANS: El bloque de notas jugadas de la tortuga devuelve el número de notas tocadas por la tortuga especificado. msgid "The Turtle elapse notes block returns the number of notes played by the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:627 +#: js/blocks/EnsembleBlocks.js:627 #.TRANS: convert current note for this turtle to piano key (1-88) +#.TRANS: número de tono de ratón msgid "mouse pitch number" msgstr "número de tono de ratón" -#: js/EnsembleBlocks.js:629 +#: js/blocks/EnsembleBlocks.js:629 +#.TRANS: El bloque de tono del ratón devuelve el número de tono actual que está reproduciendo el ratón especificado. msgid "The Mouse pitch block returns the current pitch number being played by the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:641 +#: js/blocks/EnsembleBlocks.js:641 #.TRANS: convert current note for this turtle to piano key (1-88) +#.TRANS: número de tono de tortuga msgid "turtle pitch number" msgstr "" -#: js/EnsembleBlocks.js:643 -msgid "The Turrle pitch block returns the current pitch number being played by the specified turtle." +#: js/blocks/EnsembleBlocks.js:643 +#.TRANS: El bloque de tono de tortuga devuelve el número de tono actual que está tocando la tortuga especificada. +msgid "The Turtle pitch block returns the current pitch number being played by the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:747 -#: js/EnsembleBlocks.js:819 +#: js/blocks/EnsembleBlocks.js:747 +#: js/blocks/EnsembleBlocks.js:819 #.TRANS: note value is the duration of the note played by this mouse +#.TRANS: valor de la nota del ratón msgid "mouse note value" msgstr "valor de la nota del ratón" -#: js/EnsembleBlocks.js:757 +#: js/blocks/EnsembleBlocks.js:757 #.TRANS: note value is the duration of the note played by this turtle +#.TRANS: valor de la nota de la tortuga msgid "turtle note value" msgstr "" -#: js/EnsembleBlocks.js:830 +#: js/blocks/EnsembleBlocks.js:830 #.TRANS: sync is short for synchronization +#.TRANS: sincronizar msgid "mouse sync" msgstr "sincronizar" -#: js/EnsembleBlocks.js:832 +#: js/blocks/EnsembleBlocks.js:832 +#.TRANS: El bloque sincronizar alinea el conteo de latidos entre ratones. msgid "The Mouse sync block aligns the beat count between mice." msgstr "El bloque sincronizar alinea el conteo de latidos entre ratones." -#: js/EnsembleBlocks.js:844 +#: js/blocks/EnsembleBlocks.js:844 #.TRANS: sync is short for synchronization +#.TRANS: sincronizar msgid "turtle sync" msgstr "" -#: js/EnsembleBlocks.js:846 +#: js/blocks/EnsembleBlocks.js:846 +#.TRANS: El bloque sincronizar alinea el conteo de latidos entre tortugas. msgid "The Turtle sync block aligns the beat count between turtles." msgstr "" -#: js/EnsembleBlocks.js:887 +#: js/blocks/EnsembleBlocks.js:887 +#.TRANS: El bloque de ratón encontrado devolverá verdadero si se puede encontrar el ratón especificado. msgid "The Found mouse block will return true if the specified mouse can be found." msgstr "" -#: js/EnsembleBlocks.js:893 +#: js/blocks/EnsembleBlocks.js:893 +#.TRANS: encontré el raton msgid "found mouse" msgstr "Huk’uchata tarini" -#: js/EnsembleBlocks.js:903 +#: js/blocks/EnsembleBlocks.js:903 +#.TRANS: El bloque de tortuga encontrado devolverá verdadero si se puede encontrar el tortuga especificado. msgid "The Found turtle block will return true if the specified turtle can be found." msgstr "" -#: js/EnsembleBlocks.js:909 +#: js/blocks/EnsembleBlocks.js:909 +#.TRANS: encontré la tortuga msgid "found turtle" msgstr "" -#: js/EnsembleBlocks.js:932 +#: js/blocks/EnsembleBlocks.js:932 +#.TRANS: nuevo ratón msgid "new mouse" msgstr "Musuq huk’ucha" -#: js/EnsembleBlocks.js:934 +#: js/blocks/EnsembleBlocks.js:934 +#.TRANS: El bloque nuevo ratón crea un nuevo ratón. msgid "The New mouse block will create a new mouse." msgstr "El bloque nuevo ratón crea un nuevo ratón." -#: js/EnsembleBlocks.js:945 +#: js/blocks/EnsembleBlocks.js:945 +#.TRANS: nuevo tortuga msgid "new turtle" msgstr "" -#: js/EnsembleBlocks.js:947 +#: js/blocks/EnsembleBlocks.js:947 +#.TRANS: El bloque nuevo ratón crea un nuevo tortuga. msgid "The New turtle block will create a new turtle." msgstr "" -#: js/EnsembleBlocks.js:1011 +#: js/blocks/EnsembleBlocks.js:1011 +#.TRANS: fijar color del ratón msgid "set mouse color" msgstr "" -#: js/EnsembleBlocks.js:1014 +#: js/blocks/EnsembleBlocks.js:1014 +#.TRANS: El bloque fijar color del ratón se usa para fijar el color de un ratón. msgid "The Set-mouse-color block is used to set the color of a mouse." msgstr "" -#: js/EnsembleBlocks.js:1020 +#: js/blocks/EnsembleBlocks.js:1020 +#.TRANS: fijar color de la tortuga msgid "set turtle color" msgstr "" -#: js/EnsembleBlocks.js:1023 +#: js/blocks/EnsembleBlocks.js:1023 +#.TRANS: El bloque fijar color de la tortuga se usa para fijar el color de una tortuga. msgid "The Set-turtle-color block is used to set the color of a turtle." msgstr "" -#: js/EnsembleBlocks.js:1083 +#: js/blocks/EnsembleBlocks.js:1083 +#.TRANS: El bloque Nombre del ratón devuelve el nombre de un ratón. msgid "The Mouse-name block returns the name of a mouse." msgstr "Huk’uha sayaq kutichin huk’ucha sutiman" -#: js/EnsembleBlocks.js:1092 +#: js/blocks/EnsembleBlocks.js:1092 +#.TRANS: El bloque Nombre de la tortuga devuelve el nombre de una tortuga. msgid "The Turtle-name block returns the name of a turtle." msgstr "" -#: js/EnsembleBlocks.js:1115 +#: js/blocks/EnsembleBlocks.js:1115 +#.TRANS: recuento de ratones msgid "mouse count" msgstr "recuento de ratones" -#: js/EnsembleBlocks.js:1118 +#: js/blocks/EnsembleBlocks.js:1118 +#.TRANS: El bloque recuento de ratones devuelve el número de ratones. msgid "The Mouse-count block returns the number of mice." msgstr "El bloque recuento de ratones devuelve el número de ratones." -#: js/EnsembleBlocks.js:1124 +#: js/blocks/EnsembleBlocks.js:1124 +#.TRANS: recuento de tortuga msgid "turtle count" msgstr "" -#: js/EnsembleBlocks.js:1127 +#: js/blocks/EnsembleBlocks.js:1127 +#.TRANS: El bloque recuento de tortugas devuelve el número de tortugas. msgid "The Turtle-count block returns the number of turtles." msgstr "" -#: js/EnsembleBlocks.js:1149 +#: js/blocks/EnsembleBlocks.js:1149 +#.TRANS: nombre de nth ratón msgid "nth mouse name" msgstr "nombre de nth ratón" -#: js/EnsembleBlocks.js:1152 +#: js/blocks/EnsembleBlocks.js:1152 +#.TRANS: El bloque de nombre Nth-ratón devuelve el nombre del enésimo ratón. msgid "The Nth-Mouse name block returns the name of the nth mouse." msgstr "" -#: js/EnsembleBlocks.js:1158 +#: js/blocks/EnsembleBlocks.js:1158 +#.TRANS: nombre de nth tortuga msgid "nth turtle name" msgstr "" -#: js/EnsembleBlocks.js:1161 +#: js/blocks/EnsembleBlocks.js:1161 +#.TRANS: El bloque de nombre Nth-tortuga devuelve el nombre del enésimo tortuga. msgid "The Nth-Turtle name block returns the name of the nth turtle." msgstr "" -#: js/EnsembleBlocks.js:1205 -#: js/EnsembleBlocks.js:1265 +#: js/blocks/EnsembleBlocks.js:1205 +#: js/blocks/EnsembleBlocks.js:1265 +#.TRANS: fijar nombre msgid "set name" msgstr "Sutita tahachik" -#: js/EnsembleBlocks.js:1214 -#: js/EnsembleBlocks.js:1221 +#: js/blocks/EnsembleBlocks.js:1214 +#: js/blocks/EnsembleBlocks.js:1221 +#.TRANS: origen msgid "source" msgstr "paqarina" -#: js/EnsembleBlocks.js:1214 -#: js/EnsembleBlocks.js:1221 +#: js/blocks/EnsembleBlocks.js:1214 +#: js/blocks/EnsembleBlocks.js:1221 +#.TRANS: destino msgid "target" msgstr "chayana" -#: js/EnsembleBlocks.js:1271 +#: js/blocks/EnsembleBlocks.js:1271 +#.TRANS: El bloque Fijar nombre se usa para nombrar un ratón. msgid "The Set-name block is used to name a mouse." msgstr "El bloque Fijar nombre se usa para nombrar un ratón." -#: js/EnsembleBlocks.js:1284 +#: js/blocks/EnsembleBlocks.js:1284 +#.TRANS: El bloque Fijar nombre se usa para nombrar una tortuga. msgid "The Set-name block is used to name a turtle." msgstr "" -#: js/BooleanBlocks.js:44 -msgid "The Not block is the logical not operator." -msgstr "El bloque No es el operador lógico no." - -#: js/BooleanBlocks.js:62 -msgid "not" -msgstr "mana" - -#: js/BooleanBlocks.js:134 -msgid "The And block is the logical and operator." -msgstr "El bloque Y es el lógico y el operador." - -#: js/BooleanBlocks.js:152 -msgid "and" -msgstr "hinallataq" - -#: js/BooleanBlocks.js:218 -msgid "The Or block is the logical or operator." -msgstr "El bloque O es el lógico o el operador." - -#: js/BooleanBlocks.js:236 -msgid "or" -msgstr "utaq" - -#: js/BooleanBlocks.js:302 -msgid "The XOR block is the logical XOR operator." -msgstr "El bloque XOR es el lógico XOR el operador." - -#: js/BooleanBlocks.js:320 -msgid "xor" -msgstr "" - -#: js/BooleanBlocks.js:808 -msgid "The Equal block returns True if the two numbers are equal." -msgstr "El bloque Igual devuelve verdadero si los dos números son iguales." - -#: js/BooleanBlocks.js:909 -msgid "The Not-equal-to block returns True if the two numbers are not equal to each other." -msgstr "" - -#: js/BooleanBlocks.js:1008 -msgid "The Boolean block is used to specify true or false." -msgstr "El bloque Booleano se utiliza para especificar verdadero o falso." - -#: js/MediaBlocks.js:35 -#.TRANS: right side of the screen -msgid "right (screen)" -msgstr "pantallapa pañanpi" - -#: js/MediaBlocks.js:45 -#: js/MediaBlocks.js:56 -msgid "The Right block returns the position of the right of the canvas." -msgstr "" - -#: js/MediaBlocks.js:97 -#.TRANS: left side of the screen -msgid "left (screen)" -msgstr "pantallapa lluq’ínpi" - -#: js/MediaBlocks.js:107 -#: js/MediaBlocks.js:118 -msgid "The Left block returns the position of the left of the canvas." -msgstr "" - -#: js/MediaBlocks.js:158 -msgid "top (screen)" -msgstr "hanan" - -#: js/MediaBlocks.js:168 -#: js/MediaBlocks.js:179 -msgid "The Top block returns the position of the top of the canvas." -msgstr "" - -#: js/MediaBlocks.js:219 -msgid "bottom (screen)" -msgstr "uran" - -#: js/MediaBlocks.js:229 -#: js/MediaBlocks.js:240 -msgid "The Bottom block returns the position of the bottom of the canvas." -msgstr "" - -#: js/MediaBlocks.js:282 -msgid "width" -msgstr "chutariynin" - -#: js/MediaBlocks.js:291 -msgid "The Width block returns the width of the canvas." -msgstr "chutariynin chiqasqa qillqana llikapa chutariyninta kutichin" - -#: js/MediaBlocks.js:325 -msgid "height" -msgstr "sayaynin" - -#: js/MediaBlocks.js:334 -msgid "The Height block returns the height of the canvas." -msgstr "sayaynin chiqasqa qillqana llikapa sayayninta kutichin" - -#: js/MediaBlocks.js:369 -#.TRANS: stops playback of an audio recording -msgid "stop play" -msgstr "sayachiy" - -#: js/MediaBlocks.js:404 -#.TRANS: Erases the images and text -msgid "erase media" -msgstr "" - -#: js/MediaBlocks.js:409 -msgid "The Erase Media block erases text and images." -msgstr "" - -#: js/MediaBlocks.js:439 -#.TRANS: play an audio recording -msgid "play back" -msgstr "puririchiy" +#: js/blocks/ExtrasBlocks.js:33 +#.TRANS: fracción +msgid "fraction" +msgstr "phatmi" -#: js/MediaBlocks.js:487 -msgid "speak" -msgstr "rimay" +#: js/blocks/ExtrasBlocks.js:36 +#.TRANS: convertir un número racional en fracción +msgid "Convert a float to a fraction" +msgstr "convertir un número racional en fracción"" -#: js/MediaBlocks.js:495 -msgid "The Speak block outputs to the text-to-speech synthesizer" -msgstr "Rimay chiqasqa kunkawan rimasqa pisiyachisqanmanta riman " +#: js/blocks/ExtrasBlocks.js:93 +#.TRANS: guardar como ABC +msgid "save as ABC" +msgstr "ABC hinaman waqaychay" -#: js/MediaBlocks.js:546 -msgid "camera" -msgstr "" +#: js/blocks/ExtrasBlocks.js:96 +#: js/blocks/ExtrasBlocks.js:132 +#: js/blocks/ExtrasBlocks.js:168 +#.TRANS: título +msgid "title" +msgstr "umalliq suti" -#: js/MediaBlocks.js:551 -msgid "The Camera block connects a webcam to the Show block." -msgstr "Cámarata webman hap’ichiy" +#: js/blocks/ExtrasBlocks.js:129 +#.TRANS: guardar como Lilypond +msgid "save as Lilypond" +msgstr "Lilypondtahina waqaychay" -#: js/MediaBlocks.js:574 -msgid "video" -msgstr "" +#: js/blocks/ExtrasBlocks.js:165 +#.TRANS: guardar como SVG +msgid "save as SVG" +msgstr "SVGtahina waqaychay" -#: js/MediaBlocks.js:579 -msgid "The Video block selects video for use with the Show block." -msgstr "El bloque video selecciona video para al bloque mostrar." +#: js/blocks/ExtrasBlocks.js:216 +#.TRANS: sin fondo +msgid "no background" +msgstr "Mana imayuq" -#: js/MediaBlocks.js:607 -msgid "The Open file block opens a file for use with the Show block." +#: js/blocks/ExtrasBlocks.js:219 +#.TRANS: El bloque Sin fondo elimina el fondo de la salida SVG guardada. +msgid "The No background block eliminates the background from the saved SVG output." msgstr "" -#: js/MediaBlocks.js:645 -msgid "stop media" -msgstr "ruranakunata sayachiy" - -#: js/MediaBlocks.js:650 -msgid "The Stop media block stops audio or video playback." -msgstr "El bloque detener medios detiene la reproducción de audio o video." - -#: js/MediaBlocks.js:679 -#: js/PitchBlocks.js:1539 -#: js/phrasemaker.js:822 -#: js/musickeyboard.js:1654 -#.TRANS: a measure of frequency: one cycle per second -msgid "hertz" -msgstr "hertz" +#: js/blocks/ExtrasBlocks.js:247 +#.TRANS: mostrar bloques +msgid "show blocks" +msgstr " chiqaskunata qhawachiy" -#: js/MediaBlocks.js:692 -msgid "duration (ms)" -msgstr "kawsapakuy" +#: js/blocks/ExtrasBlocks.js:249 +#.TRANS: El bloque mostrar bloques muestra los bloques. +msgid "The Show blocks block shows the blocks." +msgstr "El bloque mostrar bloques muestra los bloques." -#: js/MediaBlocks.js:728 -#.TRANS: translate a note into hertz, e.g., A4 -> 440HZ -msgid "note to frequency" -msgstr "kuti kuti ruranaman huch’uy willakuy" +#: js/blocks/ExtrasBlocks.js:274 +#.TRANS: ocultar bloques +msgid "hide blocks" +msgstr "chiqaskunata pakay" -#: js/MediaBlocks.js:736 -msgid "The To frequency block converts a pitch name and octave to Hertz." -msgstr "" +#: js/blocks/ExtrasBlocks.js:276 +#.TRANS: El bloque ocultar esconde los bloques. +msgid "The Hide blocks block hides the blocks." +msgstr "El bloque ocultar esconde los bloques." -#: js/MediaBlocks.js:746 -#: js/PitchBlocks.js:656 -#: js/PitchBlocks.js:932 -#: js/PitchBlocks.js:1827 -#.TRANS: name2 is name as in name of pitch (JAPANESE ONLY) -msgid "name2" -msgstr "suti" +#: js/blocks/ExtrasBlocks.js:305 +#: js/blocks/ExtrasBlocks.js:338 +#.TRANS: El bloque Espacio se utiliza para agregar espacio entre bloques. +msgid "The Space block is used to add space between blocks." +msgstr " Qaylla chiqasqa chiqaspurakuna qayllayuq kanankupaq yapaq yapanapaq" -#: js/MediaBlocks.js:812 -msgid "The Avatar block is used to change the appearance of the mouse." -msgstr "" +#: js/blocks/ExtrasBlocks.js:376 +#.TRANS: esperar +msgid "wait" +msgstr "suyay" -#: js/MediaBlocks.js:819 -msgid "The Avatar block is used to change the appearance of the turtle." +#: js/blocks/ExtrasBlocks.js:379 +#.TRANS: El bloque Espera detiene el programa durante un número específico de segundos. +msgid "The Wait block pauses the program for a specified number of seconds." msgstr "" -#: js/MediaBlocks.js:831 -#: js/MediaBlocks.js:891 -#.TRANS: a media object -msgid "size" -msgstr "sayay" - -#: js/MediaBlocks.js:831 -msgid "image" -msgstr "rikch’aynin" +#: js/blocks/ExtrasBlocks.js:433 +#: plugins/facebook.rtp:30 +#.TRANS: comentar +msgid "comment" +msgstr "rimariy" -#: js/MediaBlocks.js:880 -msgid "The Show block is used to display text or images on the canvas." -msgstr "" +#: js/blocks/ExtrasBlocks.js:469 +#.TRANS: imprimir +msgid "print" +msgstr "ñit'iy" -#: js/MediaBlocks.js:888 -#.TRANS: show1 is show as in display an image or text on the screen. -msgid "show1" -msgstr "qhawachiy" +#: js/blocks/ExtrasBlocks.js:476 +#.TRANS: El bloque Imprimir muestra texto en la parte superior de la pantalla. +msgid "The Print block displays text at the top of the screen." +msgstr "Nit’iy chiqasqa pantallapa hawanpi qillqata qhawachikun" -#: js/MediaBlocks.js:891 -msgid "obj" -msgstr "ima" +#: js/blocks/ExtrasBlocks.js:582 +#.TRANS: mostrar cuadrícula +msgid "display grid" +msgstr "mostrar cuadrícula" -#: js/MediaBlocks.js:938 -msgid "The Media block is used to import an image." -msgstr "Kaqkuna chiqastaqa llimp’ita apamunapaq hap’ikun" +#: js/blocks/ExtrasBlocks.js:587 +#.TRANS: Mostrar el bloque de cuadrícula cambia el tipo de cuadrícula +msgid "The Display Grid Block changes the grid type" +msgstr "Mostrar el bloque de cuadrícula cambia el tipo de cuadrícula" -#: js/MediaBlocks.js:973 -msgid "The Text block holds a text string." -msgstr "Qillqa t’aqaqa watuchasqa qillqakuna kaqniyuqmi" +#: js/blocks/ExtrasBlocks.js:689 +#: js/blocks/ExtrasBlocks.js:708 +#: js/blocks/ExtrasBlocks.js:731 +#: js/blocks/ExtrasBlocks.js:754 +#: js/blocks/ExtrasBlocks.js:772 +#: js/blocks/ExtrasBlocks.js:791 +#: js/blocks/ExtrasBlocks.js:810 +#: js/blocks/ExtrasBlocks.js:829 +#.TRANS: desconocido +msgid "unknown" +msgstr "Mana riqsisqa" -#: js/ProgramBlocks.js:33 -msgid "The Load-heap-from-app block loads the heap from a web page." +#: js/blocks/FlowBlocks.js:41 +#.TRANS: El bloque Atrás ejecuta el código en orden inverso (retrógrado en la música). +msgid "The Backward block runs code in reverse order (Musical retrograde)." msgstr "" -#: js/ProgramBlocks.js:44 -#.TRANS: load the heap contents from a URL -msgid "load heap from App" -msgstr "cargar pila desde aplicación" - -#: js/ProgramBlocks.js:95 -msgid "Error parsing JSON data:" -msgstr "Error de análisis de datos JSON." - -#: js/ProgramBlocks.js:100 -msgid "404: Page not found" -msgstr "mana tarisqa p’anqa" - -#: js/ProgramBlocks.js:133 -msgid "The Save-heap-to-app block saves the heap to a web page." -msgstr "El bloque Guardar-pila-en-app guarda la pila en una página web." - -#: js/ProgramBlocks.js:144 -#.TRANS: save the heap contents to a URL -msgid "save heap to App" -msgstr "Llapanta kay qutupi waqaychana" - -#: js/ProgramBlocks.js:189 -msgid "Cannot find a valid heap for" -msgstr "Manam llapan qutupi tarikunchu" - -#: js/ProgramBlocks.js:206 -msgid "The Load-heap block loads the heap from a file." -msgstr "El bloque Cargar pila carga la pila de un archivo." - -#: js/ProgramBlocks.js:217 -#.TRANS: load the heap from a file -msgid "load heap" -msgstr "Qututa apachiy" +#: js/blocks/FlowBlocks.js:48 +#.TRANS: hacia atrás +msgid "backward" +msgstr "Qhipaman" -#: js/ProgramBlocks.js:270 -msgid "The file you selected does not contain a valid heap." -msgstr "El archivo seleccionado no contiene un pila válida." +#: js/blocks/FlowBlocks.js:124 +#.TRANS: El bloque Duplicado ejecutará cada bloque varias veces. +msgid "The Duplicate block will run each block multiple times." +msgstr "Iskay kikinyachiq sayaq, ruranqa sapanka sayaqta achka kutita" -#: js/ProgramBlocks.js:275 -msgid "The loadHeap block needs a loadFile block." -msgstr "El bloque Pila de carga necesita un bloque de archivo de carga." +#: js/blocks/FlowBlocks.js:136 +#.TRANS: duplicar +msgid "duplicate" +msgstr "iskay kikiyachiy" -#: js/ProgramBlocks.js:291 -msgid "The Set-heap block loads the heap." +#: js/blocks/FlowBlocks.js:334 +#.TRANS: El bloque predeterminado se usa dentro de un bloque de switch para definir la acción predeterminada. +msgid "The Default block is used inside of a Switch to define the default action." msgstr "" -#: js/ProgramBlocks.js:299 -#: js/HeapBlocks.js:539 -#.TRANS: load the heap from a JSON encoding -msgid "set heap" -msgstr "Qutu kutichiy" +#: js/blocks/FlowBlocks.js:342 +#.TRANS: el caso de forma predeterminada +msgid "default" +msgstr "Chhaynapaq rurasqa" -#: js/ProgramBlocks.js:340 -msgid "The block you selected does not contain a valid heap." -msgstr "" +#: js/blocks/FlowBlocks.js:361 +#: js/blocks/FlowBlocks.js:418 +#.TRANS: El bloque Caso debe utilizarse dentro de un bloque de switch. +msgid "The Case Block must be used inside of a Switch Block." +msgstr "El bloque Caso debe utilizarse dentro de un bloque de switch." -#: js/ProgramBlocks.js:343 -msgid "The Set heap block needs a heap." +#: js/blocks/FlowBlocks.js:389 +#.TRANS: El bloque Caso se utiliza dentro de un interruptor para definir coincidencias. +msgid "The Case block is used inside of a Switch to define matches." msgstr "" -#: js/ProgramBlocks.js:360 -msgid "The Load-dictionary block loads a dictionary from a file." -msgstr "" +#: js/blocks/FlowBlocks.js:397 +#.TRANS: caso +msgid "case" +msgstr "caso" -#: js/ProgramBlocks.js:372 -#.TRANS: load a dictionary from a file -msgid "load dictionary" -msgstr "" +#: js/blocks/FlowBlocks.js:446 +#.TRANS: El bloque Switch ejecutará el código en el caso correspondiente. +msgid "The Switch block will run the code in the matching Case." +msgstr "El bloque Switch ejecutará el código en el caso correspondiente." -#: js/ProgramBlocks.js:390 -#: js/ProgramBlocks.js:658 -#: js/ToneBlocks.js:1025 -msgid "file" -msgstr "" +#: js/blocks/FlowBlocks.js:454 +#.TRANS: switch +msgid "switch" +msgstr "tinkuchiy" -#: js/ProgramBlocks.js:396 -#: js/ProgramBlocks.js:501 -#: js/ProgramBlocks.js:664 -#: js/DictBlocks.js:80 -#: js/DictBlocks.js:145 -#: js/DictBlocks.js:216 -#: js/DictBlocks.js:290 -msgid "My Dictionary" -msgstr "" +#: js/blocks/FlowBlocks.js:595 +#.TRANS: El bloque Parar detendrá un bucle. +msgid "The Stop block will stop a loop" +msgstr "El bloque Parar detendrá un bucle." -#: js/ProgramBlocks.js:444 -msgid "The file you selected does not contain a valid dictionary." -msgstr "" +#: js/blocks/FlowBlocks.js:597 +#.TRANS: Por siempre, Repetir, Mientras o Hasta. +msgid "Forever, Repeat, While, or Until." +msgstr "Por siempre, Repetir, Mientras o Hasta." -#: js/ProgramBlocks.js:449 -msgid "The load dictionary block needs a load file block." -msgstr "" +#: js/blocks/FlowBlocks.js:604 +#: js/widgets/timbre.js:417 +#: js/widgets/timbre.js:419 +#: js/widgets/musickeyboard.js:819 +#: js/widgets/musickeyboard.js:821 +#: js/widgets/phrasemaker.js:4202 +#: plugins/rodi.rtp:29 +#: plugins/rodi.rtp:73 +#: plugins/rodi.rtp:413 +#.TRANS: detener +msgid "stop" +msgstr "sayachiy" -#: js/ProgramBlocks.js:466 -msgid "The Set-dictionary block loads a dictionary." -msgstr "" +#: js/blocks/FlowBlocks.js:653 +#.TRANS: El bloque Esperar esperará hasta que la condición sea verdadera. +msgid "The Waitfor block will wait until the condition is true." +msgstr "El bloque Esperar esperará hasta que la condición sea verdadera." -#: js/ProgramBlocks.js:477 -#.TRANS: load a dictionary from a JSON -msgid "set dictionary" -msgstr "" +#: js/blocks/FlowBlocks.js:661 +#.TRANS: esperar hasta +msgid "wait for" +msgstr "esperar hasta" -#: js/ProgramBlocks.js:546 -msgid "The block you selected does not contain a valid dictionary." -msgstr "" +#: js/blocks/FlowBlocks.js:732 +#.TRANS: El bloque Hasta se repetirá hasta que la condición sea verdadera. +msgid "The Until block will repeat until the condition is true." +msgstr "El bloque Hasta se repetirá hasta que la condición sea verdadera." -#: js/ProgramBlocks.js:550 -msgid "The set dictionary block needs a dictionary." -msgstr "" +#: js/blocks/FlowBlocks.js:740 +#.TRANS: hasta +msgid "until" +msgstr "kay kama" -#: js/ProgramBlocks.js:567 -msgid "The Save-heap block saves the heap to a file." -msgstr "El bloque Guardar pila guarda la pila en un archivo." +#: js/blocks/FlowBlocks.js:742 +#: js/blocks/FlowBlocks.js:822 +#.TRANS: hacer +msgid "do2" +msgstr "ruray" -#: js/ProgramBlocks.js:578 -#.TRANS: save the heap to a file -msgid "save heap" -msgstr "Qutupi waqaychay" +#: js/blocks/FlowBlocks.js:812 +#.TRANS: El bloque Mientras se repetirá mientras la condición sea verdadera. +msgid "The While block will repeat while the condition is true." +msgstr "El bloque Mientras se repetirá mientras la condición sea verdadera." -#: js/ProgramBlocks.js:629 -msgid "The Save-dictionary block saves a dictionary to a file." -msgstr "" +#: js/blocks/FlowBlocks.js:820 +#.TRANS: mientras +msgid "while" +msgstr "chaykamataq" -#: js/ProgramBlocks.js:640 -#.TRANS: save a dictionary to a file -msgid "save dictionary" +#: js/blocks/FlowBlocks.js:903 +#: js/blocks/FlowBlocks.js:968 +#: js/blocks/FlowBlocks.js:979 +#.TRANS: En este ejemplo, si se presiona el botón del mouse, se reproducirá una caja. +msgid "In this example if the mouse button is pressed a snare drum will play." msgstr "" -#: js/ProgramBlocks.js:720 -msgid "The Open palette block opens a palette." -msgstr "El bloque abrir la paleta abre una paleta"" +#: js/blocks/FlowBlocks.js:925 +#: js/blocks/FlowBlocks.js:988 +#.TRANS: si +msgid "if" +msgstr "arí" -#: js/ProgramBlocks.js:727 -msgid "open palette" -msgstr "llimp’ipa taqinta kichay" +#: js/blocks/FlowBlocks.js:927 +#: js/blocks/FlowBlocks.js:990 +#.TRANS: entonces +msgid "then" +msgstr "chaynaqa" -#: js/ProgramBlocks.js:785 -msgid "The Delete block block removes a block." -msgstr "El bloque eliminar bloque elimina un bloque" +#: js/blocks/FlowBlocks.js:927 +#.TRANS: sino +msgid "else" +msgstr "mana chayqa" -#: js/ProgramBlocks.js:797 -#.TRANS: Move this block to the trash. -msgid "delete block" -msgstr "kay chiqasta chanqapuy" +#: js/blocks/FlowBlocks.js:1025 +#.TRANS: El bloque Por siempre repetirá los bloques contenidos para siempre. +msgid "The Forever block will repeat the contained blocks forever." +msgstr "" -#: js/ProgramBlocks.js:861 -msgid "The Move block block moves a block." -msgstr "El bloque mover bloque mueve un bloque." +#: js/blocks/FlowBlocks.js:1037 +#.TRANS: por siempre +msgid "forever" +msgstr "wiñaypaq" -#: js/ProgramBlocks.js:869 -#.TRANS: Move the position of a block on the screen. -msgid "move block" -msgstr "kay chiqasta kuyuchiy" +#: js/blocks/FlowBlocks.js:1073 +#.TRANS: El bloque Repetir repetirá los bloques contenidos. +msgid "The Repeat block will repeat the contained blocks." +msgstr "El bloque Repetir repetirá los bloques contenidos." -#: js/ProgramBlocks.js:881 -#: js/ProgramBlocks.js:1048 -msgid "block number" -msgstr "kay chiqaspa payupaynin" +#: js/blocks/FlowBlocks.js:1075 +#.TRANS: En este ejemplo la nota se tocará 4 veces. +msgid "In this example the note will be played 4 times." +msgstr "En este ejemplo la nota se tocará 4 veces." -#: js/ProgramBlocks.js:935 -#.TRANS: Run program beginning at this block. -msgid "run block" -msgstr "kay chiqasta ruray" +#: js/blocks/FlowBlocks.js:1083 +#.TRANS: repetir +msgid "repeat" +msgstr "huktawan" -#: js/ProgramBlocks.js:1025 -msgid "The Dock block block connections two blocks." -msgstr "El bloque connectar conecta dos bloques" +#: js/blocks/FlowBlocks.js:1123 +#.TRANS: duplicar factor +msgid "duplicate factor" +msgstr "factor de duplicar" -#: js/ProgramBlocks.js:1036 -#.TRANS: We can connect a block to another block. -msgid "connect blocks" -msgstr "chiqasta hap’ichiy" +#: js/blocks/HeapBlocks.js:49 +#.TRANS: El bloque Pila devuelve la pila. +msgid "The Heap block returns the heap." +msgstr "" -#: js/ProgramBlocks.js:1048 -msgid "target block" -msgstr "mayman chiqas riq " +#: js/blocks/HeapBlocks.js:133 +#.TRANS: mostrar pila +msgid "show heap" +msgstr "qutu rikuchiy" -#: js/ProgramBlocks.js:1048 -msgid "connection number" -msgstr "hap’ichiypa yupaynin"" +#: js/blocks/HeapBlocks.js:181 +#.TRANS: El bloque Longitud de la pila devuelve la longitud de la pila. +msgid "The Heap-length block returns the length of the heap." +msgstr "El bloque Longitud de la pila devuelve la longitud de la pila." -#: js/ProgramBlocks.js:1140 -msgid "The Make block block creates a new block." -msgstr "El bloque crear bloque crea un bloque." +#: js/blocks/HeapBlocks.js:195 +#.TRANS: tamaño de la pila +msgid "heap length" +msgstr "qutuq sunin" -#: js/ProgramBlocks.js:1152 -#.TRANS: Create a new block -msgid "make block" -msgstr " chiqasta paqarichiy" +#: js/blocks/HeapBlocks.js:254 +#.TRANS: El bloque Pila-vacío? devuelve verdadero si la pila está vacío. +msgid "The Heap-empty? block returns true if the heap is empty." +msgstr "El bloque Pila-vacío? devuelve verdadero si la pila está vacío." -#: js/ProgramBlocks.js:1186 -#: js/ProgramBlocks.js:1227 -#: js/RhythmBlocks.js:1128 -#: js/PitchBlocks.js:972 -#: js/PitchBlocks.js:1005 -#: js/temperament.js:340 -#: js/temperament.js:362 -#: js/temperament.js:372 -#: js/temperament.js:484 -#: js/status.js:190 -#: plugins/rodi.rtp:192 -#.TRANS: a musical note consisting of pitch and duration -msgid "note" -msgstr "kunka" +#: js/blocks/HeapBlocks.js:268 +#.TRANS: Is the heap empty? +#.TRANS: ¿pila vacía? +msgid "heap empty?" +msgstr "Llapan qutupi mana kanchu?" -#: js/ProgramBlocks.js:1285 -msgid "Cannot find block" -msgstr "Manam chiqas tarikunchu" +#: js/blocks/HeapBlocks.js:317 +#.TRANS: El bloque Vacío pila vacía la pila. +msgid "The Empty-heap block empties the heap." +msgstr "El bloque Vacío pila vacía la pila." -#: js/ProgramBlocks.js:1304 -#: js/ProgramBlocks.js:1313 -msgid "Warning: block argument type mismatch" -msgstr "" +#: js/blocks/HeapBlocks.js:327 +#: js/blocks/HeapBlocks.js:647 +#.TRANS: empty the heap +#.TRANS: vaciar pila +msgid "empty heap" +msgstr "ch’usaq qutu" -#: js/ProgramBlocks.js:1347 -msgid "The Open project block is used to open a project from a web page." -msgstr "" +#: js/blocks/HeapBlocks.js:371 +#.TRANS: El bloque Pila inversa invierte el orden de la pila. +msgid "The Reverse-heap block reverses the order of the heap." +msgstr "El bloque Pila inversa invierte el orden de la pila." -#: js/ProgramBlocks.js:1357 -msgid "open project" -msgstr "rurana kichasqa" +#: js/blocks/HeapBlocks.js:384 +#.TRANS: reverse the order of the heap +#.TRANS: revertir la pila +msgid "reverse heap" +msgstr "Qutu tikray" -#: js/ProgramBlocks.js:1410 -msgid "Please enter a valid URL." -msgstr "Ama hina waliq URLta haykuchiy" +#: js/blocks/HeapBlocks.js:428 +#.TRANS: El bloque Índice de pila devuelve un valor en la pila en una ubicación especificada. +msgid "The Index-heap block returns a value in the heap at a specified location." +msgstr "" -#: js/DrumBlocks.js:59 -msgid "The Noise name block is used to select a noise synthesizer." +#: js/blocks/HeapBlocks.js:443 +#.TRANS: retrieve a value from the heap at index position in the heap +#.TRANS: valor en la pila +msgid "index heap" +msgstr "valor en la pila" + +#: js/blocks/HeapBlocks.js:523 +#.TRANS: El bloque Fijar entrada de pila establece un valor en la pila en la ubicación especificada. +msgid "The Set-heap entry block sets a value in he heap at the specified location." msgstr "" -#: js/DrumBlocks.js:102 -msgid "The Drum name block is used to select a drum." -msgstr "Tambor sayaq sutinqa, tambor akllanapaqmi" +#: js/blocks/HeapBlocks.js:539 +#: js/blocks/ProgramBlocks.js:299 +#.TRANS: load the heap from a JSON encoding +#.TRANS: fijar pila +msgid "set heap" +msgstr "Qutu kutichiy" -#: js/DrumBlocks.js:146 -msgid "The Effects name block is used to select a sound effect." -msgstr "Pantanchina Sayaqa, pantachina akllanapaqmi " +#: js/blocks/HeapBlocks.js:619 +#.TRANS: El bloque Pop elimina el valor en la parte superior del pila. +msgid "The Pop block removes the value at the top of the heap." +msgstr "El bloque Pop elimina el valor en la parte superior del pila." -#: js/DrumBlocks.js:163 -msgid "noise" -msgstr "rakhaqaqaq" +#: js/blocks/HeapBlocks.js:633 +#.TRANS: pop a value off the top of the heap +#.TRANS: sacar +msgid "pop" +msgstr "hurquy" -#: js/DrumBlocks.js:177 -msgid "The Play noise block will generate white, pink, or brown noise." -msgstr "" +#: js/blocks/HeapBlocks.js:680 +#.TRANS: El bloque Push agrega un valor a la parte superior del pila. +msgid "The Push block adds a value to the top of the heap." +msgstr "El bloque Push agrega un valor a la parte superior del pila." -#: js/DrumBlocks.js:191 -#: js/musicutils.js:752 -#: js/synthutils.js:47 -#.TRANS: white noise synthesizer -msgid "white noise" -msgstr "Yuraq rakhaqaqaq" +#: js/blocks/HeapBlocks.js:696 +#.TRANS: push a value onto the top of the heap +#.TRANS: apilar +msgid "push" +msgstr "tawqay" -#: js/DrumBlocks.js:326 -msgid "Replace every instance of a pitch with a drum sound." -msgstr "Reemplace cada instancia de un tono con un sonido de tambor." +#: js/blocks/IntervalsBlocks.js:45 +#.TRANS: fijar temperamento +msgid "set temperament" +msgstr "q’uñipi k’askachiy" -#: js/DrumBlocks.js:337 -#.TRANS: map a pitch to a drum sound -msgid "map pitch to drum" -msgstr "saywa" +#: js/blocks/IntervalsBlocks.js:63 +#: js/blocks/MediaBlocks.js:746 +#: js/blocks/PitchBlocks.js:657 +#: js/blocks/PitchBlocks.js:935 +#: js/blocks/PitchBlocks.js:974 +#: js/blocks/PitchBlocks.js:1007 +#: js/blocks/PitchBlocks.js:1194 +#: js/blocks/PitchBlocks.js:1717 +#: js/blocks/PitchBlocks.js:1758 +#: js/blocks/PitchBlocks.js:1866 +#: js/blocks/ToneBlocks.js:1025 +#: js/turtleactions/IntervalsActions.js:114 +#.TRANS: adjusts the shift up or down by one octave (twelve half-steps in the interval between two notes, one having twice or half the frequency in Hz of the other.) +#.TRANS: octava +msgid "octave" +msgstr "pusaq pata" -#: js/DrumBlocks.js:404 -msgid "In the example above, a kick drum sound will be played instead of sol." +#: js/blocks/IntervalsBlocks.js:99 +#.TRANS: El bloque Nombre Temperamento se utiliza para seleccionar un método de ajuste. +msgid "The Temperament name block is used to select a tuning method." msgstr "" -#: js/DrumBlocks.js:416 -#.TRANS: set the current drum sound for playback -msgid "set drum" -msgstr "tankar takyachiy" - -#: js/DrumBlocks.js:460 -msgid "sound effect" -msgstr "t’uqyaq pantachiq" +#: js/blocks/IntervalsBlocks.js:161 +#.TRANS: doble +msgid "doubly" +msgstr "iskaycha" -#: js/DrumBlocks.js:498 -msgid "You can use multiple Drum blocks within a Note block." -msgstr "Sayaq uhpi atiwaqmi achka kunkakunaq takaykunanpi" +#: js/blocks/IntervalsBlocks.js:166 +#.TRANS: El bloque doble duplicará el tamaño de un intervalo. +msgid "The Doubly block will double the size of an interval." +msgstr "iskaycha t’aqata iskaychanqa sayayninta unaymanta" -#: js/RhythmBlocks.js:182 -#: js/RhythmBlocks.js:1086 -#: js/RhythmBlocks.js:1162 -msgid "Note value must be greater than 0." +#: js/blocks/IntervalsBlocks.js:262 +#.TRANS: número de intervalo +msgid "interval number" msgstr "" -#: js/RhythmBlocks.js:215 -#: js/RhythmBlocks.js:278 -#: js/RhythmBlocks.js:350 -#.TRANS: swing is a rhythmic variation that emphasises the offbeat -msgid "swing" +#: js/blocks/IntervalsBlocks.js:317 +#.TRANS: intervalo actua +msgid "current interval" msgstr "" -#: js/RhythmBlocks.js:355 -#.TRANS: the amount to shift to the offbeat note -msgid "swing value" -msgstr "valor de swing" - -#: js/RhythmBlocks.js:419 -msgid "The Skip notes block will cause notes to be skipped." -msgstr "El bloque Omitir notas hará que las notas se omitan." - -#: js/RhythmBlocks.js:427 -#.TRANS: substitute rests on notes being skipped -msgid "skip notes" -msgstr "kunkakuna p’itay" +#: js/blocks/IntervalsBlocks.js:387 +#.TRANS: measure the distance between two pitches in semi-tones +#.TRANS: medida de intervalo semitono +msgid "semi-tone interval measure" +msgstr "tupuy unaymanta kuskan kunka" -#: js/RhythmBlocks.js:489 -#.TRANS: speed up note duration by some factor, e.g. convert 1/4 to 1/8 notes by using a factor of 2 -msgid "multiply note value" -msgstr "Muyuq miracchiq" +#: js/blocks/IntervalsBlocks.js:454 +#: js/blocks/IntervalsBlocks.js:570 +#.TRANS: Debe usar dos bloques de tono cuando mida un intervalo. +msgid "You must use two pitch blocks when measuring an interval." +msgstr "" -#: js/RhythmBlocks.js:542 -msgid "The Tie block works on pairs of notes, combining them into one note." +#: js/blocks/IntervalsBlocks.js:496 +#.TRANS: El bloque Intervalo escalar mide la distancia entre dos notas en la clave y el modo actuales. +msgid "The Scalar interval block measures the distance between two notes in the current key and mode." msgstr "" -#: js/RhythmBlocks.js:550 -#.TRANS: tie notes together into one longer note -msgid "tie" -msgstr "Watay" +#: js/blocks/IntervalsBlocks.js:502 +#.TRANS: measure the distance between two pitches in steps of musical scale +#.TRANS: medida de intervalo escalar +msgid "scalar interval measure" +msgstr "tupuy unaymanta siqaq" + +#: js/blocks/IntervalsBlocks.js:678 +#.TRANS: En la figura, agregamos sol# a sol. +msgid "In the figure, we add sol# to sol." +msgstr "En la figura, agregamos sol# a sol." -#: js/RhythmBlocks.js:591 -#: js/RhythmBlocks.js:671 -#.TRANS: a dotted note is played for 1.5x its value, e.g., 1/8. --> 3/16 -msgid "dot" -msgstr "Ch’iku)" +#: js/blocks/IntervalsBlocks.js:684 +#: js/blocks/OrnamentBlocks.js:220 +#.TRANS: calculate a relative step between notes based on semi-tones +#.TRANS: intervalo semitono +msgid "semi-tone interval" +msgstr "intervalo semitono" -#: js/RhythmBlocks.js:619 -#: js/RhythmActions.js:221 -msgid "An argument of -1 results in a note value of 0." +#: js/blocks/IntervalsBlocks.js:733 +#.TRANS: La salida del ejemplo es: do, mi, sol, sol, ti, mi +msgid "The output of the example is: do, mi, sol, sol, ti, mi" msgstr "" -#: js/RhythmBlocks.js:661 -msgid "The Dot block extends the duration of a note by 50%." -msgstr "El bloque Punto extiende la duración de una nota en un 50%." +#: js/blocks/IntervalsBlocks.js:740 +#: js/blocks/WidgetBlocks.js:768 +#.TRANS: arpegio +msgid "arpeggio" +msgstr "" -#: js/RhythmBlocks.js:663 -msgid "Eg a dotted quarter note will play for 3/8 (1/4 + 1/8) of a beat." +#: js/blocks/IntervalsBlocks.js:931 +#.TRANS: El bloque Acordes calcula acordes comunes. +msgid "The Chord block calculates common chords." msgstr "" -#: js/RhythmBlocks.js:765 -#.TRANS: Japanese only: note value block for drum -msgid "note value drum" -msgstr "Valor de nota tambor" +#: js/blocks/IntervalsBlocks.js:933 +#.TRANS: En la figura generamos un acorde de C-mayor. +msgid "In the figure, we generate a C-major chord." +msgstr "" -#: js/RhythmBlocks.js:829 -msgid "392 hertz" -msgstr "392 kaparina" +#: js/blocks/IntervalsBlocks.js:938 +#.TRANS: acorde +msgid "chord" +msgstr "tinkuq kunka" -#: js/RhythmBlocks.js:1119 -msgid "The Note block is a container for one or more Pitch blocks." +#: js/blocks/IntervalsBlocks.js:990 +#.TRANS: El bloque intervalo de razón calcula un intervalo basado en una razón +msgid "The Ratio Interval block calculates an interval based on a ratio." msgstr "" -#: js/RhythmBlocks.js:1121 -msgid "The Note block specifies the duration (note value) of its contents." +#: js/blocks/IntervalsBlocks.js:995 +#.TRANS: intervalo de razón +msgid "ratio interval" msgstr "" -#: js/RhythmBlocks.js:1130 -msgid "value2" -msgstr "tupu" +#: js/blocks/IntervalsBlocks.js:1064 +#.TRANS: En la figura, sumamos la a sol. +msgid "In the figure, we add la to sol." +msgstr "En la figura, sumamos la a sol." -#: js/RhythmBlocks.js:1200 -msgid "define frequency" -msgstr "definir frecuencia" +#: js/blocks/IntervalsBlocks.js:1120 +#.TRANS: define a custom mode +#.TRANS: definir el modo +msgid "define mode" +msgstr "definir el modo" -#: js/RhythmBlocks.js:1218 -#: js/temperament.js:650 -#: js/temperament.js:1421 -msgid "octave space" -msgstr "pusaqpa pachan" +#: js/blocks/IntervalsBlocks.js:1173 +#.TRANS: movible Do +msgid "movable Do" +msgstr "movible Do" -#: js/NumberBlocks.js:28 -msgid "The Int block returns an integer." -msgstr "El bloque Int devuelve un entero." +#: js/blocks/IntervalsBlocks.js:1224 +#.TRANS: mode length is the number of notes in the mode, e.g., 7 for major and minor scales; 12 for chromatic scales +#.TRANS: longitud de modo +msgid "mode length" +msgstr "Hina kay sunin" -#: js/NumberBlocks.js:34 -msgid "int" +#: js/blocks/IntervalsBlocks.js:1233 +#.TRANS: El bloque Longitud de modo es el número de notas en la escala actual. +msgid "The Mode length block is the number of notes in the current scale." msgstr "" -#: js/NumberBlocks.js:73 -msgid "The Mod block returns the remainder from a division." -msgstr "El bloque Mod devuelve el resto de una división." +#: js/blocks/IntervalsBlocks.js:1235 +#.TRANS: La mayoría de las escalas occidentales tienen 7 notas. +msgid "Most Western scales have 7 notes." +msgstr "La mayoría de las escalas occidentales tienen 7 notas." -#: js/NumberBlocks.js:79 -msgid "mod" -msgstr "kunka tupachiy" +#: js/blocks/IntervalsBlocks.js:1284 +#.TRANS: the mode in music is 'major', 'minor', etc. +#.TRANS: modo actual +msgid "current mode" +msgstr "Chaynalla kunka" -#: js/NumberBlocks.js:123 -msgid "The Power block calculates a power function." -msgstr "El bloque de potencia calcula una función de potencia." +#: js/blocks/IntervalsBlocks.js:1337 +#.TRANS: the key is a group of pitches with which a music composition is created +#.TRANS: clave actual +msgid "current key" +msgstr "kunan kichaq" -#: js/NumberBlocks.js:178 -msgid "The Sqrt block returns the square root." -msgstr "El bloque Sqrt devuelve la raíz cuadrada." +#: js/blocks/IntervalsBlocks.js:1389 +#: js/blocks/IntervalsBlocks.js:1434 +#.TRANS: set the key and mode, e.g. C Major +#.TRANS: fijar clave +msgid "set key" +msgstr "kichananta takyachiy" -#: js/NumberBlocks.js:184 -msgid "sqrt" -msgstr "saphi" +#: js/blocks/IntervalsBlocks.js:1443 +#: js/blocks/IntervalsBlocks.js:1449 +#.TRANS: El bloque Fijar tecla se usa para configurar la tecla y el modo, +msgid "The Set key block is used to set the key and mode," +msgstr "El bloque Fijar tecla se usa para configurar la tecla y el modo." -#: js/NumberBlocks.js:230 -msgid "The Abs block returns the absolute value." -msgstr "El bloque Abs devuelve el valor absoluto." +#: js/blocks/IntervalsBlocks.js:1449 +#.TRANS: por ejemplo, C Mayor +msgid "eg C Major" +msgstr "C kuraq" -#: js/NumberBlocks.js:236 -msgid "abs" +#: js/blocks/MediaBlocks.js:35 +#.TRANS: right side of the screen +#.TRANS: derecha +msgid "right (screen)" +msgstr "pantallapa pañanpi" + +#: js/blocks/MediaBlocks.js:45 +#: js/blocks/MediaBlocks.js:56 +#.TRANS: El bloque Derecha devuelve la posición de la derecha del lienzo. +msgid "The Right block returns the position of the right of the canvas." msgstr "" -#: js/NumberBlocks.js:277 -msgid "The Distance block returns the distance between two points. For example, between the mouse and the center of the screen." +#: js/blocks/MediaBlocks.js:97 +#.TRANS: left side of the screen +#.TRANS: izquierdo +msgid "left (screen)" +msgstr "pantallapa lluq’ínpi" + +#: js/blocks/MediaBlocks.js:107 +#: js/blocks/MediaBlocks.js:118 +#.TRANS: El bloque Izquierdo devuelve la posición de la izquierda del lienzo. +msgid "The Left block returns the position of the left of the canvas." msgstr "" -#: js/NumberBlocks.js:283 -#: plugins/rodi.rtp:310 -msgid "distance" -msgstr "karukay" +#: js/blocks/MediaBlocks.js:158 +#.TRANS: superior +msgid "top (screen)" +msgstr "hanan" -#: js/NumberBlocks.js:343 -msgid "The Divide block is used to divide." -msgstr "rakiy t’aqaqa rakinapaq apaykachakun" +#: js/blocks/MediaBlocks.js:168 +#: js/blocks/MediaBlocks.js:179 +#.TRANS: El bloque superior devuelve la posición de la parte superior del lienzo. +msgid "The Top block returns the position of the top of the canvas." +msgstr "" -#: js/NumberBlocks.js:411 -msgid "The Multiply block is used to multiply." -msgstr "Mirachiy t’aqaqa mirachinapaq apaykachay" +#: js/blocks/MediaBlocks.js:219 +#.TRANS: inferior +msgid "bottom (screen)" +msgstr "uran" -#: js/NumberBlocks.js:554 -msgid "The Minus block is used to subtract." -msgstr "Qichuy/minus t’aqaqa qichunapaq apaykachakun" +#: js/blocks/MediaBlocks.js:229 +#: js/blocks/MediaBlocks.js:240 +#.TRANS: El bloque Inferior devuelve la posición de la parte inferior del lienzo. +msgid "The Bottom block returns the position of the bottom of the canvas." +msgstr "" -#: js/NumberBlocks.js:647 -msgid "The Plus block is used to add." -msgstr "Plus t’aqaqa yapanapaq apaykachakun" +#: js/blocks/MediaBlocks.js:282 +#.TRANS: anchura +msgid "width" +msgstr "chutariynin" -#: js/NumberBlocks.js:773 -msgid "The One-of block returns one of two choices." -msgstr "El bloque Uno de estos devuelve una de dos opciones." +#: js/blocks/MediaBlocks.js:291 +#.TRANS: El bloque ancho devuelve el ancho del lienzo. +msgid "The Width block returns the width of the canvas." +msgstr "chutariynin chiqasqa qillqana llikapa chutariyninta kutichin" -#: js/NumberBlocks.js:780 -#: js/PitchBlocks.js:616 -msgid "one of" -msgstr "huk kaykunamanta" +#: js/blocks/MediaBlocks.js:325 +#.TRANS: altura +msgid "height" +msgstr "sayaynin" -#: js/NumberBlocks.js:782 -msgid "this" -msgstr "kay" +#: js/blocks/MediaBlocks.js:334 +#.TRANS: El bloque altura devuelve la altura del lienzo. +msgid "The Height block returns the height of the canvas." +msgstr "sayaynin chiqasqa qillqana llikapa sayayninta kutichin" -#: js/NumberBlocks.js:782 -msgid "that" -msgstr "chay" +#: js/blocks/MediaBlocks.js:369 +#.TRANS: stops playback of an audio recording +#.TRANS: detener +msgid "stop play" +msgstr "sayachiy" -#: js/NumberBlocks.js:837 -msgid "The Random block returns a random number." -msgstr "El bloque Aleatorio devuelve un número aleatorio." +#: js/blocks/MediaBlocks.js:404 +#.TRANS: Erases the images and text +#.TRANS: borrar medios +msgid "erase media" +msgstr "" -#: js/NumberBlocks.js:844 -msgid "random" -msgstr "chaqrusqa" +#: js/blocks/MediaBlocks.js:409 +#.TRANS: El bloque Erase Media borra texto e imágenes. +msgid "The Erase Media block erases text and images." +msgstr "" -#: js/NumberBlocks.js:846 -msgid "min" -msgstr "pisi" +#: js/blocks/MediaBlocks.js:439 +#.TRANS: play an audio recording +#.TRANS: reproducir +msgid "play back" +msgstr "puririchiy" -#: js/NumberBlocks.js:846 -msgid "max" -msgstr "achkha" +#: js/blocks/MediaBlocks.js:487 +#.TRANS: hablar +msgid "speak" +msgstr "rimay" -#: js/NumberBlocks.js:910 -msgid "The Number block holds a number." -msgstr "Yupay t’aqaqa huk yupayniyuq" +#: js/blocks/MediaBlocks.js:495 +#.TRANS: El bloque Habla emite al sintetizador de texto a voz. +msgid "The Speak block outputs to the text-to-speech synthesizer" +msgstr "Rimay chiqasqa kunkawan rimasqa pisiyachisqanmanta riman " -#: js/BoxesBlocks.js:53 -#: js/BoxesBlocks.js:59 -msgid "The Add-to block is used to add to the value stored in a box." +#: js/blocks/MediaBlocks.js:546 +#.TRANS: +msgid "camera" msgstr "" -#: js/BoxesBlocks.js:61 -msgid "It can also be used with other blocks such as Color and Pen size." +#: js/blocks/MediaBlocks.js:551 +#.TRANS: El bloque cámara conecta una cámara web al bloque mostrar. +msgid "The Camera block connects a webcam to the Show block." +msgstr "Cámarata webman hap’ichiy" + +#: js/blocks/MediaBlocks.js:574 +#.TRANS: +msgid "video" msgstr "" -#: js/BoxesBlocks.js:73 -msgid "add" -msgstr "yapay" +#: js/blocks/MediaBlocks.js:579 +#.TRANS: El bloque video selecciona video para al bloque mostrar. +msgid "The Video block selects video for use with the Show block." +msgstr "El bloque video selecciona video para al bloque mostrar." -#: js/BoxesBlocks.js:75 -#: js/temperament.js:716 -msgid "to" -msgstr "sayay" +#: js/blocks/MediaBlocks.js:607 +#.TRANS: El bloque Abrir archivo abre un archivo para usar con el bloque Mostrar. +msgid "The Open file block opens a file for use with the Show block." +msgstr "" -#: js/BoxesBlocks.js:75 -#: js/BoxesBlocks.js:595 -#: js/HeapBlocks.js:544 -msgid "value1" -msgstr "chanin" +#: js/blocks/MediaBlocks.js:645 +#.TRANS: detener medios +msgid "stop media" +msgstr "ruranakunata sayachiy" -#: js/BoxesBlocks.js:118 -msgid "Block does not support incrementing." -msgstr "" +#: js/blocks/MediaBlocks.js:650 +#.TRANS: El bloque detener medios detiene la reproducción de audio o video. +msgid "The Stop media block stops audio or video playback." +msgstr "El bloque detener medios detiene la reproducción de audio o video." -#: js/BoxesBlocks.js:152 -msgid "The Add-1-to block adds one to the value stored in a box." -msgstr "Yapay-1 t’aqa hukta tawa k’uchu wayqaychasqaman yapan" +#: js/blocks/MediaBlocks.js:679 +#: js/blocks/PitchBlocks.js:1577 +#: js/widgets/musickeyboard.js:1936 +#: js/widgets/phrasemaker.js:1037 +#.TRANS: a measure of frequency: one cycle per second +#.TRANS: hertz +msgid "hertz" +msgstr "hertz" -#: js/BoxesBlocks.js:163 -msgid "add 1 to" -msgstr "1 yapay" "hukta yapay" +#: js/blocks/MediaBlocks.js:692 +#: js/blocks/WidgetBlocks.js:182 +#: js/widgets/temperament.js:506 +#: js/widgets/temperament.js:546 +#: js/widgets/temperament.js:610 +#: js/widgets/temperament.js:618 +#: js/widgets/temperament.js:1505 +#: js/widgets/timbre.js:1842 +#.TRANS: frecuencia +msgid "frequency" +msgstr "Kutipayaq" -#: js/BoxesBlocks.js:211 -msgid "The Subtract-1-from block subtracts one from the value stored in a box." -msgstr "El bloque restar-1-de resta uno al valor almacenado en un cuadro." +#: js/blocks/MediaBlocks.js:692 +#.TRANS: duración (ms) +msgid "duration (ms)" +msgstr "kawsapakuy" -#: js/BoxesBlocks.js:222 -msgid "subtract 1 from" -msgstr "1 qichuy" "hukta qichuy" +#: js/blocks/MediaBlocks.js:728 +#.TRANS: translate a note into hertz, e.g., A4 -> 440HZ +#.TRANS: nota a frecuencia +msgid "note to frequency" +msgstr "kuti kuti ruranaman huch’uy willakuy" -#: js/BoxesBlocks.js:270 -#: js/BoxesBlocks.js:387 -msgid "The Box block returns the value stored in a box." -msgstr "El bloque Caja devuelve el valor almacenado en una caja." +#: js/blocks/MediaBlocks.js:736 +#.TRANS: El bloque A frecuencia convierte un nombre de tono y una octava a Hertz. +msgid "The To frequency block converts a pitch name and octave to Hertz." +msgstr "" -#: js/BoxesBlocks.js:500 -#: js/BoxesBlocks.js:576 -msgid "The Store in block will store a value in a box." -msgstr "El bloque Guardar en caja se utiliza para almacenar un valor en una caja." +#: js/blocks/MediaBlocks.js:746 +#: js/blocks/PitchBlocks.js:656 +#: js/blocks/PitchBlocks.js:934 +#: js/blocks/PitchBlocks.js:1866 +#.TRANS: name2 is name as in name of pitch (JAPANESE ONLY) +#.TRANS: nombre +msgid "name2" +msgstr "suti" -#: js/BoxesBlocks.js:652 -msgid "The Box2 block returns the value stored in Box2." -msgstr "El bloque Caja 2 devuelve el valor almacenado en caja 2." +#: js/blocks/MediaBlocks.js:812 +#.TRANS: El bloque Avatar se usa para cambiar la apariencia del ratón. +msgid "The Avatar block is used to change the appearance of the mouse." +msgstr "" -#: js/BoxesBlocks.js:703 -msgid "The Store in Box2 block is used to store a value in Box2." +#: js/blocks/MediaBlocks.js:819 +#.TRANS: El bloque Avatar se usa para cambiar la apariencia de la tortuga. +msgid "The Avatar block is used to change the appearance of the turtle." msgstr "" -#: js/BoxesBlocks.js:715 -msgid "store in box2" -msgstr "2 tawa k’uchupi waqaychay" +#: js/blocks/MediaBlocks.js:831 +#: js/blocks/MediaBlocks.js:891 +#.TRANS: a media object +#.TRANS: tamaño +msgid "size" +msgstr "sayay" -#: js/BoxesBlocks.js:761 -msgid "The Box1 block returns the value stored in Box1." -msgstr "El bloque Caja 1 devuelve el valor almacenado en caja 1." +#: js/blocks/MediaBlocks.js:831 +#.TRANS: imagen +msgid "image" +msgstr "rikch’aynin" -#: js/BoxesBlocks.js:812 -msgid "The Store in Box1 block is used to store a value in Box1." +#: js/blocks/MediaBlocks.js:880 +#.TRANS: El bloque Mostrar se utiliza para mostrar texto o imágenes en el lienzo. +msgid "The Show block is used to display text or images on the canvas." msgstr "" -#: js/BoxesBlocks.js:826 -msgid "store in box1" -msgstr "1 tawa k’uchupi waqaychay" +#: js/blocks/MediaBlocks.js:888 +#.TRANS: show1 is show as in display an image or text on the screen. +#.TRANS: mostrar +msgid "show1" +msgstr "qhawachiy" -#: js/HeapBlocks.js:49 -msgid "The Heap block returns the heap." -msgstr "" +#: js/blocks/MediaBlocks.js:891 +#.TRANS: objeto +msgid "obj" +msgstr "ima" -#: js/HeapBlocks.js:133 -msgid "show heap" -msgstr "qutu rikuchiy" +#: js/blocks/MediaBlocks.js:938 +#.TRANS: El bloque Medios se utiliza para importar una imagen. +msgid "The Media block is used to import an image." +msgstr "Kaqkuna chiqastaqa llimp’ita apamunapaq hap’ikun" -#: js/HeapBlocks.js:181 -msgid "The Heap-length block returns the length of the heap." -msgstr "El bloque Longitud de la pila devuelve la longitud de la pila." +#: js/blocks/MediaBlocks.js:973 +#.TRANS: El bloque Texto contiene una cadena de texto. +msgid "The Text block holds a text string." +msgstr "Qillqa t’aqaqa watuchasqa qillqakuna kaqniyuqmi" -#: js/HeapBlocks.js:195 -msgid "heap length" -msgstr "qutuq sunin" +#: js/blocks/MeterBlocks.js:34 +#.TRANS: musical meter (time signature), e.g., 4:4 +#.TRANS: meter actuale +msgid "current meter" +msgstr "actualita haykuchiy" -#: js/HeapBlocks.js:254 -msgid "The Heap-empty? block returns true if the heap is empty." -msgstr "El bloque Pila-vacío? devuelve verdadero si la pila está vacío." +#: js/blocks/MeterBlocks.js:85 +#.TRANS: number of beats per minute +#.TRANS: factor de ritmo +msgid "beat factor" +msgstr "p’ullpuqiy" -#: js/HeapBlocks.js:268 -#.TRANS: Is the heap empty? -msgid "heap empty?" -msgstr "Llapan qutupi mana kanchu?" +#: js/blocks/MeterBlocks.js:161 +#.TRANS: El bloque de latidos por minuto devuelve los latidos actuales por minuto. +msgid "The Beats per minute block returns the current beats per minute." +msgstr "" -#: js/HeapBlocks.js:317 -msgid "The Empty-heap block empties the heap." -msgstr "El bloque Vacío pila vacía la pila." +#: js/blocks/MeterBlocks.js:169 +#: js/widgets/status.js:152 +#.TRANS: number of beats played per minute +#.TRANS: pulsaciones por minuto +msgid "beats per minute2" +msgstr "minutupi p’ullpuqiy" -#: js/HeapBlocks.js:327 -#: js/HeapBlocks.js:647 -#.TRANS: empty the heap -msgid "empty heap" -msgstr "ch’usaq qutu" +#: js/blocks/MeterBlocks.js:169 +#: js/blocks/MeterBlocks.js:1056 +#: js/blocks/MeterBlocks.js:1133 +#: js/blocks/MeterBlocks.js:1211 +#.TRANS: sets tempo by defining a beat and beats per minute +#.TRANS: pulsaciones por minuto +msgid "beats per minute" +msgstr "minutupi p’ullpuqiy" -#: js/HeapBlocks.js:371 -msgid "The Reverse-heap block reverses the order of the heap." -msgstr "El bloque Pila inversa invierte el orden de la pila." +#: js/blocks/MeterBlocks.js:233 +#.TRANS: count of current musical measure in meter +#.TRANS: cuenta de medidas +msgid "measure count" +msgstr "tupusqakunapa yupaynin" -#: js/HeapBlocks.js:384 -#.TRANS: reverse the order of the heap -msgid "reverse heap" -msgstr "Qutu tikray" +#: js/blocks/MeterBlocks.js:241 +#.TRANS: El bloque de conteo de medidas devuelve la medida actual. +msgid "The Measure count block returns the current measure." +msgstr "tupunakuna yupay chiqasqa kunan tupunata kutichipun" -#: js/HeapBlocks.js:428 -msgid "The Index-heap block returns a value in the heap at a specified location." +#: js/blocks/MeterBlocks.js:290 +#.TRANS: count of current beat in the meter +#.TRANS: cuenta de latidos +msgid "beat count" +msgstr "p’ullpuqiyta yupay" + +#: js/blocks/MeterBlocks.js:300 +#: js/blocks/MeterBlocks.js:311 +#: js/blocks/MeterBlocks.js:565 +#: js/blocks/MeterBlocks.js:576 +#.TRANS: El bloque Conteo de tiempos es el número del tiempo actual, +msgid "The Beat count block is the number of the current beat," msgstr "" -#: js/HeapBlocks.js:443 -#.TRANS: retrieve a value from the heap at index position in the heap -msgid "index heap" -msgstr "valor en la pila" +#: js/blocks/MeterBlocks.js:313 +#: js/blocks/MeterBlocks.js:578 +#.TRANS: por ejemplo, 1, 2, 3, o 4. +msgid "eg 1, 2, 3, or 4." +msgstr "kanman huk, iskay, kimsa, kallanmantaq tawa" -#: js/HeapBlocks.js:523 -msgid "The Set-heap entry block sets a value in he heap at the specified location." +#: js/blocks/MeterBlocks.js:368 +#.TRANS: count the number of notes +#.TRANS: cuenta las notas +msgid "sum note values" +msgstr "nota yupay" + +#: js/blocks/MeterBlocks.js:376 +#: js/blocks/MeterBlocks.js:440 +#.TRANS: El bloque Contador de notas se puede usar para contar el número de notas contenidas. +msgid "The Note counter block can be used to count the number of contained notes." msgstr "" -#: js/HeapBlocks.js:619 -msgid "The Pop block removes the value at the top of the heap." -msgstr "El bloque Pop elimina el valor en la parte superior del pila." +#: js/blocks/MeterBlocks.js:432 +#.TRANS: count the number of notes +#.TRANS: cuenta las notas +msgid "note counter" +msgstr "" -#: js/HeapBlocks.js:633 -#.TRANS: pop a value off the top of the heap -msgid "pop" -msgstr "hurquy" +#: js/blocks/MeterBlocks.js:496 +#.TRANS: number of whole notes that have been played +#.TRANS: notas completa jugadas +msgid "whole notes played" +msgstr "hunt’asqa nota pukllasqakuna" -#: js/HeapBlocks.js:680 -msgid "The Push block adds a value to the top of the heap." -msgstr "El bloque Push agrega un valor a la parte superior del pila." +#: js/blocks/MeterBlocks.js:505 +#.TRANS: El bloque Nota completa reproducidas devuelve el número total de notas completas reproducidas. +msgid "The Whole notes played block returns the total number of whole notes played." +msgstr "" -#: js/HeapBlocks.js:696 -#.TRANS: push a value onto the top of the heap -msgid "push" -msgstr "tawqay" +#: js/blocks/MeterBlocks.js:555 +#: js/turtleactions/DictActions.js:83 +#.TRANS: number of notes that have been played +#.TRANS: notas jugadas +msgid "notes played" +msgstr "notakuna pukllasqakuna" -#: js/FlowBlocks.js:41 -msgid "The Backward block runs code in reverse order (Musical retrograde)." +#: js/blocks/MeterBlocks.js:653 +#.TRANS: El bloque Sin reloj desacopla las notas del reloj maestro. +msgid "The No clock block decouples the notes from the master clock." msgstr "" -#: js/FlowBlocks.js:48 -msgid "backward" -msgstr "Qhipaman" +#: js/blocks/MeterBlocks.js:661 +#.TRANS: don't lock notes to master clock +#.TRANS: sin reloj +msgid "no clock" +msgstr "mana intiwatanayuq" -#: js/FlowBlocks.js:124 -msgid "The Duplicate block will run each block multiple times." -msgstr "Iskay kikinyachiq sayaq, ruranqa sapanka sayaqta achka kutita" +#: js/blocks/MeterBlocks.js:700 +#.TRANS: en latido débil hacer +msgid "on weak beat do" +msgstr "mana kallpayuq p’ullpuqiypi rurana" -#: js/FlowBlocks.js:136 -msgid "duplicate" -msgstr "iskay kikiyachiy" +#: js/blocks/MeterBlocks.js:705 +#.TRANS: El bloque En-latido-débil-hacer te permite especificar acciones a realizar en latido débiles. +msgid "The On-weak-beat block lets you specify actions to take on weak (off) beats." +msgstr "" -#: js/FlowBlocks.js:334 -msgid "The Default block is used inside of a Switch to define the default action." +#: js/blocks/MeterBlocks.js:750 +#.TRANS: en latido fuerte hacer +msgid "on strong beat" +msgstr "kallpayuq p’ullpuqiypi rurana" + +#: js/blocks/MeterBlocks.js:758 +#.TRANS: El bloque En-latido-fuerte-hacer le permite especificar acciones a realizar en latido específicos. +msgid "The On-strong-beat block lets you specify actions to take on specified beats." msgstr "" -#: js/FlowBlocks.js:342 -msgid "default" -msgstr "Chhaynapaq rurasqa" +#: js/blocks/MeterBlocks.js:769 +#.TRANS: latidos +msgid "beat" +msgstr "p’ullpuqiy" -#: js/FlowBlocks.js:361 -#: js/FlowBlocks.js:418 -msgid "The Case Block must be used inside of a Switch Block." -msgstr "El bloque Caso debe utilizarse dentro de un bloque de switch." +#: js/blocks/MeterBlocks.js:813 +#.TRANS: en cado latodo hacer +msgid "on every beat do" +msgstr "en cada latodo hacer" -#: js/FlowBlocks.js:389 -msgid "The Case block is used inside of a Switch to define matches." +#: js/blocks/MeterBlocks.js:821 +#.TRANS: El bloque En-cado-latido-hacer le permite especificar acciones a realizar en cado latado. +msgid "The On-every-beat block lets you specify actions to take on every beat." msgstr "" -#: js/FlowBlocks.js:397 -msgid "case" -msgstr "caso" +#: js/blocks/MeterBlocks.js:874 +#.TRANS: en cada nota hacer +msgid "on every note do" +msgstr "en cada nota hacer" -#: js/FlowBlocks.js:446 -msgid "The Switch block will run the code in the matching Case." -msgstr "El bloque Switch ejecutará el código en el caso correspondiente." +#: js/blocks/MeterBlocks.js:882 +#.TRANS: El bloque En-cada-nota-hacer le permite especificar acciones a realizar en cada nota. +msgid "The On-every-note block lets you specify actions to take on every note." +msgstr "" -#: js/FlowBlocks.js:454 -msgid "switch" -msgstr "tinkuchiy" +#: js/blocks/MeterBlocks.js:928 +#: js/blocks/MeterBlocks.js:999 +#.TRANS: sets tempo by defining a beat and beats per minute +#.TRANS: latidos por minuto de dominar +msgid "master beats per minute" +msgstr "minutupi p’ullpuqiy hap’iy" -#: js/FlowBlocks.js:595 -msgid "The Stop block will stop a loop" -msgstr "El bloque Parar detendrá un bucle." +#: js/blocks/MeterBlocks.js:952 +#: js/blocks/MeterBlocks.js:1078 +#: js/blocks/MeterBlocks.js:1135 +#.TRANS: lpm +msgid "bpm" +msgstr "bmp" -#: js/FlowBlocks.js:597 -msgid "Forever, Repeat, While, or Until." -msgstr "Por siempre, Repetir, Mientras o Hasta." +#: js/blocks/MeterBlocks.js:952 +#: js/blocks/MeterBlocks.js:1078 +#: js/blocks/MeterBlocks.js:1135 +#.TRANS: valor de latidos +msgid "beat value" +msgstr "p’ullpuqiypa kaqnin" -#: js/FlowBlocks.js:604 -#: js/phrasemaker.js:3799 -#: js/musickeyboard.js:629 -#: js/musickeyboard.js:631 -#: js/timbre.js:417 -#: js/timbre.js:419 -#: plugins/rodi.rtp:29 -#: plugins/rodi.rtp:73 -#: plugins/rodi.rtp:413 -msgid "stop" -msgstr "sayachiy" +#: js/blocks/MeterBlocks.js:1024 +#: js/blocks/MeterBlocks.js:1167 +#: js/blocks/MeterBlocks.js:1241 +#.TRANS: Latidos por minuto debe ser > 30. +msgid "Beats per minute must be > 30." +msgstr "minutupi p’ullpuqiyniqa 30 kurakmi kanan" -#: js/FlowBlocks.js:653 -msgid "The Waitfor block will wait until the condition is true." -msgstr "El bloque Esperar esperará hasta que la condición sea verdadera." +#: js/blocks/MeterBlocks.js:1027 +#: js/blocks/MeterBlocks.js:1170 +#: js/blocks/MeterBlocks.js:1244 +#.TRANS: Los latidos por minuto como máximo es de 1000. +msgid "Maximum beats per minute is 1000." +msgstr " minutupi p’ullpuqiyniqa may tukupunankamaqa waranqan (1000) kanan" -#: js/FlowBlocks.js:661 -msgid "wait for" -msgstr "esperar hasta" +#: js/blocks/MeterBlocks.js:1068 +#.TRANS: El bloque Pulsaciones por minuto establece el número de 1/4 notas por minuto. +msgid "The Beats per minute block sets the number of 1/4 notes per minute." +msgstr "" -#: js/FlowBlocks.js:732 -msgid "The Until block will repeat until the condition is true." -msgstr "El bloque Hasta se repetirá hasta que la condición sea verdadera." +#: js/blocks/MeterBlocks.js:1279 +#.TRANS: anacrusis +#.TRANS: +msgid "pickup" +msgstr "pallay" -#: js/FlowBlocks.js:740 -msgid "until" -msgstr "kay kama" +#: js/blocks/MeterBlocks.js:1367 +#.TRANS: número de latidos +msgid "number of beats" +msgstr "p’ullpuqiypa yupanan" -#: js/FlowBlocks.js:742 -#: js/FlowBlocks.js:822 -msgid "do2" -msgstr "ruray" +#: js/blocks/NumberBlocks.js:28 +#.TRANS: El bloque Int devuelve un entero. +msgid "The Int block returns an integer." +msgstr "El bloque Int devuelve un entero." -#: js/FlowBlocks.js:812 -msgid "The While block will repeat while the condition is true." -msgstr "El bloque Mientras se repetirá mientras la condición sea verdadera." +#: js/blocks/NumberBlocks.js:34 +#.TRANS: int +msgid "int" +msgstr "" -#: js/FlowBlocks.js:820 -msgid "while" -msgstr "chaykamataq" +#: js/blocks/NumberBlocks.js:73 +#.TRANS: El bloque Mod devuelve el resto de una división. +msgid "The Mod block returns the remainder from a division." +msgstr "El bloque Mod devuelve el resto de una división." -#: js/FlowBlocks.js:903 -#: js/FlowBlocks.js:968 -#: js/FlowBlocks.js:979 -msgid "In this example if the mouse button is pressed a snare drum will play." -msgstr "" +#: js/blocks/NumberBlocks.js:79 +#.TRANS: módulo +msgid "mod" +msgstr "kunka tupachiy" -#: js/FlowBlocks.js:925 -#: js/FlowBlocks.js:988 -msgid "if" -msgstr "arí" +#: js/blocks/NumberBlocks.js:141 +#.TRANS: El bloque de potencia calcula una función de potencia. +msgid "The Power block calculates a power function." +msgstr "El bloque de potencia calcula una función de potencia." -#: js/FlowBlocks.js:927 -#: js/FlowBlocks.js:990 -msgid "then" -msgstr "chaynaqa" +#: js/blocks/NumberBlocks.js:196 +#.TRANS: El bloque Sqrt devuelve la raíz cuadrada. +msgid "The Sqrt block returns the square root." +msgstr "El bloque Sqrt devuelve la raíz cuadrada." -#: js/FlowBlocks.js:927 -msgid "else" -msgstr "mana chayqa" +#: js/blocks/NumberBlocks.js:202 +#.TRANS: raíz +msgid "sqrt" +msgstr "saphi" -#: js/FlowBlocks.js:1025 -msgid "The Forever block will repeat the contained blocks forever." +#: js/blocks/NumberBlocks.js:248 +#.TRANS: El bloque Abs devuelve el valor absoluto. +msgid "The Abs block returns the absolute value." +msgstr "El bloque Abs devuelve el valor absoluto." + +#: js/blocks/NumberBlocks.js:254 +#.TRANS: abs +msgid "abs" msgstr "" -#: js/FlowBlocks.js:1037 -msgid "forever" -msgstr "wiñaypaq" +#: js/blocks/NumberBlocks.js:295 +#.TRANS: El bloque Distancia devuelve la distancia entre dos puntos. Por ejemplo, entre el ratón y el centro de la pantalla. +msgid "The Distance block returns the distance between two points. For example, between the mouse and the center of the screen." +msgstr "" -#: js/FlowBlocks.js:1073 -msgid "The Repeat block will repeat the contained blocks." -msgstr "El bloque Repetir repetirá los bloques contenidos." +#: js/blocks/NumberBlocks.js:301 +#: plugins/rodi.rtp:310 +#.TRANS: distancia +msgid "distance" +msgstr "karukay" -#: js/FlowBlocks.js:1075 -msgid "In this example the note will be played 4 times." -msgstr "En este ejemplo la nota se tocará 4 veces." +#: js/blocks/NumberBlocks.js:361 +#.TRANS: El bloque División se usa para dividir. +msgid "The Divide block is used to divide." +msgstr "rakiy t’aqaqa rakinapaq apaykachakun" -#: js/FlowBlocks.js:1083 -msgid "repeat" -msgstr "huktawan" +#: js/blocks/NumberBlocks.js:441 +#.TRANS: El bloque Multiplicar se usa para multiplicar. +msgid "The Multiply block is used to multiply." +msgstr "Mirachiy t’aqaqa mirachinapaq apaykachay" -#: js/FlowBlocks.js:1123 -msgid "duplicate factor" -msgstr "factor de duplicar" +#: js/blocks/NumberBlocks.js:612 +#.TRANS: El bloque Minus se usa para restar. +msgid "The Minus block is used to subtract." +msgstr "Qichuy/minus t’aqaqa qichunapaq apaykachakun" -#: js/PitchBlocks.js:39 -#: js/musicutils.js:722 -#: js/musicutils.js:1117 -#: js/synthutils.js:112 -#.TRANS: square wave -msgid "square" -msgstr "tawa k’uchu" +#: js/blocks/NumberBlocks.js:723 +#.TRANS: El bloque Plus se utiliza para agregar. +msgid "The Plus block is used to add." +msgstr "Plus t’aqaqa yapanapaq apaykachakun" -#: js/PitchBlocks.js:62 -#: js/ToneBlocks.js:39 -#: js/musicutils.js:723 -#: js/musicutils.js:1118 -#: js/synthutils.js:116 -#.TRANS: triangle wave -msgid "triangle" -msgstr "kimsa k’uchu" +#: js/blocks/NumberBlocks.js:849 +#.TRANS: El bloque Uno de estos devuelve una de dos opciones. +msgid "The One-of block returns one of two choices." +msgstr "El bloque Uno de estos devuelve una de dos opciones." -#: js/PitchBlocks.js:85 -#: js/musicutils.js:721 -#: js/musicutils.js:1116 -#: js/synthutils.js:110 -#.TRANS: sine wave -msgid "sine" -msgstr "" +#: js/blocks/NumberBlocks.js:856 +#: js/blocks/PitchBlocks.js:616 +#.TRANS: uno de estos +msgid "one of" +msgstr "huk kaykunamanta" -#: js/PitchBlocks.js:108 -#: js/musicutils.js:724 -#: js/musicutils.js:1119 -#: js/synthutils.js:114 -#.TRANS: sawtooth wave -msgid "sawtooth" -msgstr "" +#: js/blocks/NumberBlocks.js:858 +#.TRANS: éste +msgid "this" +msgstr "kay" -#: js/PitchBlocks.js:141 -#.TRANS: musical transposition (adjustment of pitch up or down) -msgid "transposition" -msgstr "haywapuynin" +#: js/blocks/NumberBlocks.js:858 +#.TRANS: ése +msgid "that" +msgstr "chay" -#: js/PitchBlocks.js:168 -#.TRANS: step down one note in current musical scale -msgid "scalar step down" -msgstr "wichay uraqay" +#: js/blocks/NumberBlocks.js:913 +#.TRANS: El bloque Aleatorio devuelve un número aleatorio. +msgid "The Random block returns a random number." +msgstr "El bloque Aleatorio devuelve un número aleatorio." -#: js/PitchBlocks.js:172 -msgid "The Scalar step down block returns the number of semi-tones down to the previous note in the current key and mode." -msgstr "" +#: js/blocks/NumberBlocks.js:920 +#.TRANS: aleatorio +msgid "random" +msgstr "chaqrusqa" -#: js/PitchBlocks.js:190 -#.TRANS: step up one note in current musical scale -msgid "scalar step up" -msgstr "wichay yapaykuy" +#: js/blocks/NumberBlocks.js:922 +#.TRANS: min +msgid "min" +msgstr "pisi" -#: js/PitchBlocks.js:194 -msgid "The Scalar step up block returns the number of semi-tones up to the next note in the current key and mode." -msgstr "" +#: js/blocks/NumberBlocks.js:922 +#.TRANS: max +msgid "max" +msgstr "achkha" -#: js/PitchBlocks.js:212 -#.TRANS: the change measured in half-steps between the current pitch and the previous pitch -msgid "change in pitch" -msgstr "kunkan t’ikrasqa" +#: js/blocks/NumberBlocks.js:986 +#.TRANS: El bloque Numérico contiene un número. +msgid "The Number block holds a number." +msgstr "Yupay t’aqaqa huk yupayniyuq" -#: js/PitchBlocks.js:216 -msgid "The Change in pitch block is the difference (in half steps) between the current pitch being played and the previous pitch played." -msgstr "" +#: js/blocks/OrnamentBlocks.js:32 +#.TRANS: factor de staccato +msgid "staccato factor" +msgstr "factor de staccato" -#: js/PitchBlocks.js:243 -#.TRANS: the change measured in scale-steps between the current pitch and the previous pitch -msgid "scalar change in pitch" -msgstr "cambio en tono escalar" +#: js/blocks/OrnamentBlocks.js:108 +#.TRANS: factor de legato +msgid "slur factor" +msgstr "factor de legato" -#: js/PitchBlocks.js:250 -#: js/PitchBlocks.js:432 -#: js/PitchBlocks.js:1629 -#: js/DictActions.js:89 -#: js/temperament.js:477 -#: js/temperament.js:481 -#: js/temperament.js:714 -#.TRANS: convert current note to piano key (1-88) -#.TRANS: a mapping of pitch to the 88 piano keys -msgid "pitch number" -msgstr "kunkapa yupaynin" +#: js/blocks/OrnamentBlocks.js:217 +#: js/blocks/OrnamentBlocks.js:309 +#.TRANS: the neighbor refers to a neighboring note, e.g., D is a neighbor of C +#.TRANS: vecino +msgid "neighbor" +msgstr "wasimasi" -#: js/PitchBlocks.js:256 -msgid "The Pitch number block is the value of the pitch of the note currently being played." +#: js/blocks/OrnamentBlocks.js:293 +#.TRANS: El bloque Vecino cambia rápidamente entre los tonos vecinos. +msgid "The Neighbor block rapidly switches between neighboring pitches." msgstr "" -#: js/PitchBlocks.js:329 -#: js/PitchBlocks.js:433 -#.TRANS: the current pitch expressed in Hertz -msgid "pitch in hertz" -msgstr "hertzpi kunkan" +#: js/blocks/OrnamentBlocks.js:364 +#.TRANS: deslizarse +msgid "glide" +msgstr "deslizarse" -#: js/PitchBlocks.js:334 -msgid "The Pitch in Hertz block is the value in Hertz of the pitch of the note currently being played." -msgstr "" +#: js/blocks/OrnamentBlocks.js:479 +#: js/blocks/OrnamentBlocks.js:643 +#.TRANS: legato +msgid "slur" +msgstr "legato" + +#: js/blocks/OrnamentBlocks.js:558 +#: js/blocks/OrnamentBlocks.js:710 +#.TRANS: play each note sharply detached from the others +#.TRANS: staccato +msgid "staccato" +msgstr "staccato" -#: js/PitchBlocks.js:367 -#: js/DictActions.js:87 -msgid "current pitch" +#: js/blocks/RhythmBlocks.js:182 +#: js/blocks/RhythmBlocks.js:1086 +#: js/blocks/RhythmBlocks.js:1162 +#.TRANS: Valor de la nota debe ser mayor que 0. +msgid "Note value must be greater than 0." msgstr "" -#: js/PitchBlocks.js:373 -msgid "The Current Pitch block is used with the Pitch Converter block. In the example above, current pitch, sol 4, is displayed as 392 hertz." +#: js/blocks/RhythmBlocks.js:215 +#: js/blocks/RhythmBlocks.js:278 +#: js/blocks/RhythmBlocks.js:350 +#.TRANS: swing is a rhythmic variation that emphasises the offbeat +#.TRANS: swing +msgid "swing" msgstr "" -#: js/PitchBlocks.js:410 -msgid "This block converts the pitch value of the last note played into different formats such as hertz, letter name, pitch number, et al." -msgstr "" +#: js/blocks/RhythmBlocks.js:355 +#.TRANS: the amount to shift to the offbeat note +#.TRANS: valor de swing +msgid "swing value" +msgstr "valor de swing" -#: js/PitchBlocks.js:434 -msgid "alphabet" -msgstr "" +#: js/blocks/RhythmBlocks.js:419 +#.TRANS: El bloque Omitir notas hará que las notas se omitan. +msgid "The Skip notes block will cause notes to be skipped." +msgstr "El bloque Omitir notas hará que las notas se omitan." -#: js/PitchBlocks.js:436 -#.TRANS: Translate as "alphabet class" -msgid "letter class" -msgstr "" +#: js/blocks/RhythmBlocks.js:427 +#.TRANS: substitute rests on notes being skipped +#.TRANS: saltar notas +msgid "skip notes" +msgstr "kunkakuna p’itay" -#: js/PitchBlocks.js:437 -msgid "solfege class" -msgstr "" +#: js/blocks/RhythmBlocks.js:489 +#.TRANS: speed up note duration by some factor, e.g. convert 1/4 to 1/8 notes by using a factor of 2 +#.TRANS: ritmo multiplican +msgid "multiply note value" +msgstr "Muyuq miracchiq" -#: js/PitchBlocks.js:438 -msgid "staff y" +#: js/blocks/RhythmBlocks.js:542 +#.TRANS: El bloque Atar funciona en pares de notas, combinándolas en una sola nota. +msgid "The Tie block works on pairs of notes, combining them into one note." msgstr "" -#: js/PitchBlocks.js:439 -msgid "solfege syllable" -msgstr "" +#: js/blocks/RhythmBlocks.js:550 +#.TRANS: tie notes together into one longer note +#.TRANS: atar +msgid "tie" +msgstr "Watay" -#: js/PitchBlocks.js:440 -msgid "pitch class" -msgstr "" +#: js/blocks/RhythmBlocks.js:591 +#: js/blocks/RhythmBlocks.js:671 +#.TRANS: a dotted note is played for 1.5x its value, e.g., 1/8. --> 3/16 +#.TRANS: punto +msgid "dot" +msgstr "Ch’iku)" -#: js/PitchBlocks.js:441 -msgid "scalar class" +#: js/blocks/RhythmBlocks.js:619 +#: js/turtleactions/RhythmActions.js:221 +#.TRANS: Un argumento de -1 da como resultado un valor de nota de 0. +msgid "An argument of -1 results in a note value of 0." msgstr "" -#: js/PitchBlocks.js:443 -msgid "nth degree" +#: js/blocks/RhythmBlocks.js:661 +#.TRANS: El bloque Punto extiende la duración de una nota en un 50%. +msgid "The Dot block extends the duration of a note by 50%." +msgstr "El bloque Punto extiende la duración de una nota en un 50%." + +#: js/blocks/RhythmBlocks.js:663 +#.TRANS: Por ejemplo, una nota de un cuarto de puntos se reproducirá a 3/8 (1/4 + 1/8) de un tiempo. +msgid "Eg a dotted quarter note will play for 3/8 (1/4 + 1/8) of a beat." msgstr "" -#: js/PitchBlocks.js:444 -msgid "pitch to shade" +#: js/blocks/RhythmBlocks.js:765 +#.TRANS: Japanese only: note value block for drum +#.TRANS: Valor de nota tambor +msgid "note value drum" +msgstr "Valor de nota tambor" + +#: js/blocks/RhythmBlocks.js:829 +#.TRANS: 392 hertz +msgid "392 hertz" +msgstr "392 kaparina" + +#: js/blocks/RhythmBlocks.js:1119 +#.TRANS: El bloque Nota es un contenedor para uno o más bloques de tono. +msgid "The Note block is a container for one or more Pitch blocks." msgstr "" -#: js/PitchBlocks.js:445 -msgid "pitch to color" +#: js/blocks/RhythmBlocks.js:1121 +#.TRANS: El bloque Notas especifica la duración (valor de la nota) de su contenido. +msgid "The Note block specifies the duration (note value) of its contents." msgstr "" -#: js/PitchBlocks.js:629 -#: js/musickeyboard.js:565 -#.TRANS: MIDI is a technical standard for electronic music -msgid "MIDI" -msgstr "MIDI" +#: js/blocks/RhythmBlocks.js:1128 +#: js/blocks/PitchBlocks.js:974 +#: js/blocks/PitchBlocks.js:1007 +#: js/blocks/ProgramBlocks.js:1186 +#: js/blocks/ProgramBlocks.js:1227 +#: js/widgets/status.js:190 +#: js/widgets/temperament.js:464 +#: js/widgets/temperament.js:486 +#: js/widgets/temperament.js:496 +#: js/widgets/temperament.js:617 +#: plugins/rodi.rtp:192 +#.TRANS: a musical note consisting of pitch and duration +#.TRANS: nota +msgid "note" +msgstr "kunka" -#: js/PitchBlocks.js:642 -#.TRANS: set an offset associated with the numeric piano keyboard mapping -msgid "set pitch number offset" -msgstr "kunkapa yupayninta watapuna " +#: js/blocks/RhythmBlocks.js:1130 +#.TRANS: valor +msgid "value2" +msgstr "tupu" -#: js/PitchBlocks.js:645 -msgid "The Set pitch number offset block is used to set the offset for mapping pitch numbers to pitch and octave." -msgstr "" +#: js/blocks/RhythmBlocks.js:1200 +#.TRANS: definir frecuencia +msgid "define frequency" +msgstr "definir frecuencia" -#: js/PitchBlocks.js:679 -#.TRANS: convert piano key number (1-88) to pitch -msgid "number to pitch" -msgstr "yupay kunkaman" +#: js/blocks/RhythmBlocks.js:1218 +#: js/widgets/temperament.js:787 +#: js/widgets/temperament.js:1587 +#.TRANS: espacio de octava +msgid "octave space" +msgstr "pusaqpa pachan" -#: js/PitchBlocks.js:682 -msgid "The Number to pitch block will convert a pitch number to a pich name." +#: js/blocks/SensorsBlocks.js:36 +#.TRANS: El bloque de entrada solicita la entrada del teclado. +msgid "The Input block prompts for keyboard input." msgstr "" -#: js/PitchBlocks.js:715 -#.TRANS: convert piano key number (1-88) to octave -msgid "number to octave" -msgstr "yupay pusaq pataman" +#: js/blocks/SensorsBlocks.js:46 +#.TRANS: el input +msgid "input" +msgstr "haykuna" -#: js/PitchBlocks.js:717 -msgid "The Number to octave block will convert a pitch number to an octave." -msgstr "" +#: js/blocks/SensorsBlocks.js:64 +#.TRANS: ingrese un valor +msgid "Input a value" +msgstr "ingrese un valor" -#: js/PitchBlocks.js:726 -msgid "y to pitch" -msgstr "" +#: js/blocks/SensorsBlocks.js:126 +#.TRANS: valor de entrada +msgid "input value" +msgstr "chaninchaqta haykuchiy" -#: js/PitchBlocks.js:729 -msgid "Y to pitch block will convert a staff y position to corresponding pitch notation." +#: js/blocks/SensorsBlocks.js:131 +#.TRANS: El bloque de valor de entrada almacena la entrada. +msgid "The Input-value block stores the input." msgstr "" -#: js/PitchBlocks.js:841 -msgid "accidental selector" -msgstr "" +#: js/blocks/SensorsBlocks.js:238 +#.TRANS: volumen +msgid "loudness" +msgstr "p’ulin" -#: js/PitchBlocks.js:844 -msgid "The Accidental selector block is used to choose between double-sharp, sharp, natural, flat, and double-flat." +#: js/blocks/SensorsBlocks.js:245 +#.TRANS: El bloque Volumen devuelve el volumen detectado por el micrófono. +msgid "The Loudness block returns the volume detected by the microphone." msgstr "" -#: js/PitchBlocks.js:858 -msgid "Pitch can be specified in terms of ni dha pa ma ga re sa." -msgstr "kunkaqa kay tukuykunapi ni dha pa ma ga re sa alayrichikun " +#: js/blocks/SensorsBlocks.js:300 +#.TRANS: click +msgid "click" +msgstr "liq" -#: js/PitchBlocks.js:872 -msgid "Pitch can be specified in terms of C D E F G A B." -msgstr " kunkaqa kay tukuykunapi C D E F G A B alayrichikun " +#: js/blocks/SensorsBlocks.js:306 +#.TRANS: El bloque Click activa un evento si se ha hecho clic en un ratón. +msgid "The Click block triggers an event if a mouse has been clicked." +msgstr "El bloque Click activa un evento si se ha hecho clic en un mouse." -#: js/PitchBlocks.js:883 -msgid "solfege" +#: js/blocks/SensorsBlocks.js:313 +#.TRANS: El bloque Click activa un evento si se ha hecho clic en una tortuga. +msgid "The Click block triggers an event if a turtle has been clicked." msgstr "" -#: js/PitchBlocks.js:886 -msgid "Pitch can be specified in terms of do re mi fa sol la ti." -msgstr " kunkaqa kay tukuykunapi do re mi fa sol la si alayrichikun " +#: js/blocks/SensorsBlocks.js:342 +#.TRANS: cursor sobre +msgid "cursor over" +msgstr "cursor sobre" -#: js/PitchBlocks.js:920 -msgid "The Invert block rotates any contained notes around a target note." -msgstr "" +#: js/blocks/SensorsBlocks.js:387 +#.TRANS: cursor fuera +msgid "cursor out" +msgstr "cursor fuera" -#: js/PitchBlocks.js:927 -#.TRANS: pitch inversion rotates a pitch around another pitch -msgid "invert" -msgstr "t’ikray" +#: js/blocks/SensorsBlocks.js:433 +#.TRANS: el botón presionado +msgid "cursor button down" +msgstr "el botón presionado" " -#: js/PitchBlocks.js:929 -#: js/PitchBlocks.js:935 -#: js/PitchActions.js:727 -#: js/musicutils.js:726 -#: js/musicutils.js:902 -#.TRANS: invert based on even or odd number or musical scale -#.TRANS: even numbers -msgid "even" -msgstr "masa" +#: js/blocks/SensorsBlocks.js:477 +#.TRANS: el botón arriba +msgid "cursor button up" +msgstr "el botón arriba" -#: js/PitchBlocks.js:935 -#: js/PitchActions.js:729 -#: js/musicutils.js:728 -#: js/musicutils.js:903 -#.TRANS: odd numbers -msgid "odd" -msgstr "sapallan" +#: js/blocks/SensorsBlocks.js:521 +#: js/blocks/PenBlocks.js:48 +#: plugins/rodi.rtp:219 +#.TRANS: azur +msgid "blue" +msgstr "Anqas" -#: js/PitchBlocks.js:935 -#: js/PitchActions.js:731 -#: js/musicutils.js:729 -#: js/musicutils.js:904 -msgid "scalar" -msgstr "siqay" +#: js/blocks/SensorsBlocks.js:577 +#: js/blocks/PenBlocks.js:64 +#: plugins/rodi.rtp:218 +#.TRANS: verde +msgid "green" +msgstr "Qunir" -#: js/PitchBlocks.js:966 -#.TRANS: pitch inversion rotates a pitch around another pitch (odd number) -msgid "invert (odd)" -msgstr "t’ikray (sapallan" +#: js/blocks/SensorsBlocks.js:633 +#: js/blocks/PenBlocks.js:112 +#: plugins/rodi.rtp:217 +#.TRANS: rojo +msgid "red" +msgstr "Puka" -#: js/PitchBlocks.js:999 -#.TRANS: pitch inversion rotates a pitch around another pitch (even number) -msgid "invert (even)" -msgstr "t’ikray (masantin)" +#: js/blocks/SensorsBlocks.js:638 +#.TRANS: El bloque Obtener rojo devuelve el componente rojo del píxel debajo del ratón. +msgid "The Get red block returns the red component of the pixel under the mouse." +msgstr "" -#: js/PitchBlocks.js:1020 -#.TRANS: register is the octave of the current pitch -msgid "register" -msgstr "waqaychasqa" +#: js/blocks/SensorsBlocks.js:644 +#.TRANS: El bloque Obtener rojo devuelve el componente rojo del píxel debajo de la tortuga. +msgid "The Get red block returns the red component of the pixel under the turtle." +msgstr "" -#: js/PitchBlocks.js:1024 -msgid "The Register block provides an easy way to modify the register (octave) of the notes that follow it." +#: js/blocks/SensorsBlocks.js:685 +#: plugins/rodi.rtp:216 +#.TRANS: color del pixel +msgid "pixel color" +msgstr " llimp’iy k’anchaypa phatmin" + +#: js/blocks/SensorsBlocks.js:690 +#.TRANS: El bloque Obtener píxel devuelve el color del píxel debajo del ratón. +msgid "The Get pixel block returns the color of the pixel under the mouse." msgstr "" -#: js/PitchBlocks.js:1074 -msgid "The Semi-tone transposition block will shift the pitches contained inside Note blocks up (or down) by half steps." +#: js/blocks/SensorsBlocks.js:696 +#.TRANS: El bloque Obtener píxel devuelve el color del píxel debajo de la tortuga. +msgid "The Get pixel block returns the color of the pixel under the turtle." msgstr "" -#: js/PitchBlocks.js:1076 -msgid "In the example shown above, sol is shifted up to sol#." -msgstr "wichaypi qhawachisqapi hina, solqa solkama purin" +#: js/blocks/SensorsBlocks.js:758 +#.TRANS: tiempo +msgid "time" +msgstr "pacha" -#: js/PitchBlocks.js:1082 -#.TRANS: adjust the amount of shift (up or down) of a pitch -msgid "semi-tone transpose" -msgstr "kuskan kunka Haywapuynin" +#: js/blocks/SensorsBlocks.js:804 +#.TRANS: cursor y +msgid "cursor y" +msgstr "y t’uqpina" -#: js/PitchBlocks.js:1115 -msgid "The Transpose by Ratio block will shift the pitches contained inside Note blocks up (or down) by a ratio" +#: js/blocks/SensorsBlocks.js:809 +#.TRANS: El bloque Cursor Y devuelve la posición vertical del cursor. +msgid "The Cursor Y block returns the vertical position of the mouse." msgstr "" -#: js/PitchBlocks.js:1121 -#.TRANS: adjust the amount of shift (up or down) of a pitch -msgid "transpose by ratio" +#: js/blocks/SensorsBlocks.js:845 +#.TRANS: cursor x +msgid "cursor x" +msgstr "t’uqpina" + +#: js/blocks/SensorsBlocks.js:850 +#.TRANS: El bloque Cursor X devuelve la posición horizontal del ratón. +msgid "The Cursor X block returns the horizontal position of the mouse." msgstr "" -#: js/PitchBlocks.js:1204 -#.TRANS: down sixth means the note is five scale degrees below current note -msgid "down sixth" -msgstr "uraypi suqta pata" +#: js/blocks/SensorsBlocks.js:886 +#.TRANS: botón del ratón +msgid "mouse button" +msgstr "Huk’uchapa ñup’unan" -#: js/PitchBlocks.js:1223 -#.TRANS: down third means the note is two scale degrees below current note -msgid "down third" -msgstr "uraypi kimsa pata" +#: js/blocks/SensorsBlocks.js:888 +#.TRANS: El bloque Botón del ratón devuelve Verdadero si se presiona el botón del ratón. +msgid "The Mouse-button block returns True if the mouse button is pressed." +msgstr "" -#: js/PitchBlocks.js:1242 -#.TRANS: seventh means the note is the six scale degrees above current note -msgid "seventh" -msgstr "qanchis pata" +#: js/blocks/SensorsBlocks.js:934 +#.TRANS: a ASCII +msgid "to ASCII" +msgstr "ASCIIman" -#: js/PitchBlocks.js:1261 -#.TRANS: sixth means the note is the five scale degrees above current note -msgid "sixth" -msgstr "suqta pata" +#: js/blocks/SensorsBlocks.js:938 +#.TRANS: El bloque a ASCII convierte números a letras. +msgid "The To ASCII block converts numbers to letters." +msgstr "El bloque a ASCII convierte números a letras." -#: js/PitchBlocks.js:1280 -#.TRANS: fifth means the note is the four scale degrees above current note -msgid "fifth" -msgstr "phichqa pata" +#: js/blocks/SensorsBlocks.js:1005 +#.TRANS: El bloque teclado devuelve entrada de teclado. +msgid "The Keyboard block returns computer keyboard input." +msgstr "El bloque teclado devuelve entrada de teclado." -#: js/PitchBlocks.js:1300 -#.TRANS: fourth means the note is three scale degrees above current note -msgid "fourth" -msgstr "tawa pata" +#: js/blocks/RhythmBlockPaletteBlocks.js:50 +#: js/blocks/RhythmBlockPaletteBlocks.js:233 +#.TRANS: rhythm block +#.TRANS: translate "rhythm1" as rhythm +#.TRANS: ritmo +msgid "rhythm1" +msgstr "taki muyuchik" -#: js/PitchBlocks.js:1319 -#.TRANS: third means the note is two scale degrees above current note -msgid "third" -msgstr "kimsa pata" +#: js/blocks/RhythmBlockPaletteBlocks.js:70 +#: js/blocks/RhythmBlockPaletteBlocks.js:252 +#: js/blocks/RhythmBlockPaletteBlocks.js:485 +#: js/blocks/RhythmBlockPaletteBlocks.js:554 +#: js/blocks/RhythmBlockPaletteBlocks.js:875 +#.TRANS: número de notas +msgid "number of notes" +msgstr "Yupay waqaykuna" -#: js/PitchBlocks.js:1338 -#.TRANS: second means the note is one scale degree above current note -msgid "second" -msgstr "iskay pata" +#: js/blocks/RhythmBlockPaletteBlocks.js:126 +#.TRANS: ritmo polifónico +msgid "polyphonic rhythm" +msgstr "Achka waqaykunap Munay muyuchik" -#: js/PitchBlocks.js:1379 -msgid "The Scalar transposition block will shift the pitches contained inside Note blocks up (or down) the scale." -msgstr "" +#: js/blocks/RhythmBlockPaletteBlocks.js:219 +#.TRANS: El bloque Ritmo se utiliza para generar patrones de ritmo. +msgid "The Rhythm block is used to generate rhythm patterns." +msgstr "Munay purichiqa kinkinman hina qatipaq" -#: js/PitchBlocks.js:1381 -msgid "In the example shown above, sol is shifted up to la." -msgstr "En el ejemplo que se muestra arriba, el sol se desplaza hacia arriba a la." +#: js/blocks/RhythmBlockPaletteBlocks.js:280 +#.TRANS: 1/64 nota +msgid "1/64 note" +msgstr "1/64 kunka" -#: js/PitchBlocks.js:1388 -#.TRANS: adjust the amount of shift (up or down) of a pitch by musical scale (scalar) steps -msgid "scalar transpose" -msgstr "sayayninta tupachiy haywapuynin" +#: js/blocks/RhythmBlockPaletteBlocks.js:304 +#.TRANS: 1/32 nota +msgid "1/32 note" +msgstr "Kunkaq tahasqan" -#: js/PitchBlocks.js:1423 -msgid "The Accidental block is used to create sharps and flats" -msgstr "Yanapaqnin chiqasqa chhukuna hinallataq saruna imakunapas paqarichiy llamk’anam" +#: js/blocks/RhythmBlockPaletteBlocks.js:332 +#.TRANS: 1/16 nota +msgid "1/16 note" +msgstr "1/6 kunka" -#: js/PitchBlocks.js:1430 -#.TRANS: An accidental is a modification to a pitch, e.g., sharp or flat. -msgid "accidental override" -msgstr "" +#: js/blocks/RhythmBlockPaletteBlocks.js:360 +#.TRANS: 1/8 nota +msgid "eighth note" +msgstr "1/8 kunka" -#: js/PitchBlocks.js:1543 -msgid "The Hertz block (in combination with a Number block) will play a sound at the specified frequency." +#: js/blocks/RhythmBlockPaletteBlocks.js:388 +#.TRANS: 1/4 nota +msgid "quarter note" +msgstr "1/4 kunka" + +#: js/blocks/RhythmBlockPaletteBlocks.js:416 +#.TRANS: 1/2 nota +msgid "half note" +msgstr "1/2 kunka" + +#: js/blocks/RhythmBlockPaletteBlocks.js:444 +#.TRANS: nota completa +msgid "whole note" +msgstr "hunt’asqa kunka" + +#: js/blocks/RhythmBlockPaletteBlocks.js:482 +#: js/blocks/RhythmBlockPaletteBlocks.js:551 +#: js/blocks/RhythmBlockPaletteBlocks.js:602 +#.TRANS: A tuplet is a note value divided into irregular time values. +#.TRANS: tuplet +msgid "tuplet" msgstr "" -#: js/PitchBlocks.js:1633 -msgid "The Pitch Number block will play a pitch associated by its number, e.g. 0 for C and 7 for G." -msgstr "" +#: js/blocks/RhythmBlockPaletteBlocks.js:768 +#.TRANS: septeto +msgid "septuplet" +msgstr "Qanchikmanta" -#: js/PitchBlocks.js:1665 -#: js/PitchBlocks.js:1707 -#.TRANS: a numeric mapping of the notes in an octave based on the musical mode -#.TRANS: a numeric mapping of the notes in an octave based on the musical mode -msgid "nth modal pitch" -msgstr "nth tono modal" +#: js/blocks/RhythmBlockPaletteBlocks.js:796 +#.TRANS: quinteto +msgid "quintuplet" +msgstr "Phisqamanta" -#: js/PitchBlocks.js:1668 -msgid "n^th Modal Pitch takes the pattern of pitches in semitones for a mode and makes each point a degree of the mode," +#: js/blocks/RhythmBlockPaletteBlocks.js:824 +#.TRANS: trillizo +msgid "triplet" msgstr "" -#: js/PitchBlocks.js:1670 -msgid "starting from 1 and regardless of tonal framework (i.e. not always 8 notes in the octave)" -msgstr "" +#: js/blocks/RhythmBlockPaletteBlocks.js:851 +#.TRANS: tuplet simple +msgid "simple tuplet" +msgstr "tuplet simple" -#: js/PitchBlocks.js:1711 -msgid "N^th Modal Pitch takes a number as an input as the n^th degree for the given mode. 0 is the first position, 1 is the second, -1 is the note before the first etc." +#: js/blocks/RhythmBlockPaletteBlocks.js:861 +#.TRANS: Tuplets son una colección de notas que se escalan a una duración específica. +msgid "Tuplets are a collection of notes that get scaled to a specific duration." msgstr "" -#: js/PitchBlocks.js:1713 -msgid "The pitches change according to the mode specified without any need for respellings." +#: js/blocks/DrumBlocks.js:59 +#.TRANS: El bloque Nombre de ruido se utiliza para seleccionar un sintetizador de ruido. +msgid "The Noise name block is used to select a noise synthesizer." msgstr "" -#: js/PitchBlocks.js:1752 -msgid "Scale Degree is a common convention in music. Scale Degree offers seven possible positions in the scale (1-7) and can be modified via accidentals." -msgstr "" +#: js/blocks/DrumBlocks.js:102 +#.TRANS: El bloque nombre del tambor se utiliza para seleccionar un tambor. +msgid "The Drum name block is used to select a drum." +msgstr "Tambor sayaq sutinqa, tambor akllanapaqmi" -#: js/PitchBlocks.js:1754 -msgid "Scale Degree 1 is always the first pitch in a given scale, regardless of octave." -msgstr "" +#: js/blocks/DrumBlocks.js:146 +#.TRANS: El bloque nombre de efectos se utiliza para seleccionar un efecto de sonido. +msgid "The Effects name block is used to select a sound effect." +msgstr "Pantanchina Sayaqa, pantachina akllanapaqmi " -#: js/PitchBlocks.js:1776 -#.TRANS: step some number of notes in current musical scale -msgid "scalar step" -msgstr "wichayman challqa" +#: js/blocks/DrumBlocks.js:163 +#.TRANS: ruido +msgid "noise" +msgstr "rakhaqaqaq" -#: js/PitchBlocks.js:1781 -msgid "The Scalar Step block (in combination with a Number block) will play the next pitch in a scale," +#: js/blocks/DrumBlocks.js:177 +#.TRANS: El bloque Ruido de reproducción generará ruido blanco, rosa o marrón. +msgid "The Play noise block will generate white, pink, or brown noise." msgstr "" -#: js/PitchBlocks.js:1783 -msgid "eg if the last note played was sol, Scalar Step 1 will play la." -msgstr "" +#: js/blocks/DrumBlocks.js:317 +#.TRANS: Reemplace cada instancia de un tono con un sonido de tambor. +msgid "Replace every instance of a pitch with a drum sound." +msgstr "Reemplace cada instancia de un tono con un sonido de tambor." -#: js/PitchBlocks.js:1818 -msgid "The Pitch block specifies the pitch name and octave of a note that together determine the frequency of the note." +#: js/blocks/DrumBlocks.js:328 +#.TRANS: map a pitch to a drum sound +#.TRANS: mapa de tono al tambor +msgid "map pitch to drum" +msgstr "saywa" + +#: js/blocks/DrumBlocks.js:395 +#.TRANS: En el ejemplo anterior, se reproducirá un sonido de bombo en lugar de sol. +msgid "In the example above, a kick drum sound will be played instead of sol." msgstr "" -#: js/GraphicsBlocks.js:46 -#: js/DictActions.js:77 -#: js/DictActions.js:155 -#: js/DictActions.js:189 +#: js/blocks/DrumBlocks.js:407 +#.TRANS: set the current drum sound for playback +#.TRANS: fijar tambor +msgid "set drum" +msgstr "tankar takyachiy" + +#: js/blocks/DrumBlocks.js:451 +#.TRANS: efecto de sonido +msgid "sound effect" +msgstr "t’uqyaq pantachiq" + +#: js/blocks/DrumBlocks.js:489 +#.TRANS: Puede utilizar varios bloques de percusión dentro de un bloque de notas. +msgid "You can use multiple Drum blocks within a Note block." +msgstr "Sayaq uhpi atiwaqmi achka kunkakunaq takaykunanpi" + +#: js/blocks/GraphicsBlocks.js:46 +#: js/turtleactions/DictActions.js:77 +#: js/turtleactions/DictActions.js:144 +#: js/turtleactions/DictActions.js:173 +#.TRANS: rumbo msgid "heading" msgstr "mayman" -#: js/GraphicsBlocks.js:56 +#: js/blocks/GraphicsBlocks.js:56 +#.TRANS: El bloque rumbo devuelve la orientación del ratón. msgid "The Heading block returns the orientation of the mouse." msgstr "El bloque rumbo devuelve la orientación del ratón." -#: js/GraphicsBlocks.js:62 +#: js/blocks/GraphicsBlocks.js:62 +#.TRANS: El bloque rumbo devuelve la orientación de la tortuga. msgid "The Heading block returns the orientation of the turtle." msgstr "" -#: js/GraphicsBlocks.js:133 +#: js/blocks/GraphicsBlocks.js:133 +#.TRANS: El bloque Y devuelve la posición horizontal del ratón. msgid "The Y block returns the vertical position of the mouse." msgstr "chiqasqa huk’ucha pampallanpi kasqanta kutichipun" -#: js/GraphicsBlocks.js:140 +#: js/blocks/GraphicsBlocks.js:140 +#.TRANS: El bloque Y devuelve la posición horizontal de la tortuga. msgid "The Y block returns the vertical position of the turtle." msgstr "" -#: js/GraphicsBlocks.js:149 +#: js/blocks/GraphicsBlocks.js:149 +#.TRANS: y msgid "y3" msgstr "y3" -#: js/GraphicsBlocks.js:219 +#: js/blocks/GraphicsBlocks.js:219 +#.TRANS: El bloque X devuelve la posición horizontal del ratón. msgid "The X block returns the horizontal position of the mouse." msgstr "X chiqasqa huk’ucha pampallanpi kasqanta kutichipun" -#: js/GraphicsBlocks.js:226 +#: js/blocks/GraphicsBlocks.js:226 +#.TRANS: El bloque X devuelve la posición horizontal de la tortuga. msgid "The X block returns the horizontal position of the turtle." msgstr "" -#: js/GraphicsBlocks.js:235 +#: js/blocks/GraphicsBlocks.js:235 +#.TRANS: x msgid "x3" msgstr "x3" -#: js/GraphicsBlocks.js:295 +#: js/blocks/GraphicsBlocks.js:295 +#.TRANS: desplazar xy msgid "scroll xy" msgstr "xy purichiy" -#: js/GraphicsBlocks.js:303 +#: js/blocks/GraphicsBlocks.js:303 +#.TRANS: El bloque Desplazar XY mueve el lienzo. msgid "The Scroll XY block moves the canvas." msgstr "Purichiy chiqasqa XY llikata kuyuchin" -#: js/GraphicsBlocks.js:313 +#: js/blocks/GraphicsBlocks.js:313 +#.TRANS: x msgid "x2" msgstr "x2" -#: js/GraphicsBlocks.js:313 +#: js/blocks/GraphicsBlocks.js:313 +#.TRANS: y msgid "y2" msgstr "y2" -#: js/GraphicsBlocks.js:373 -#: js/temperament.js:213 -#: js/temperament.js:241 +#: js/blocks/GraphicsBlocks.js:373 +#: js/widgets/temperament.js:319 +#: js/widgets/temperament.js:347 +#.TRANS: limpiar msgid "clear" msgstr "pichay" -#: js/GraphicsBlocks.js:426 +#: js/blocks/GraphicsBlocks.js:426 +#.TRANS: El bloque Control-point 2 establece el segundo punto de control para la curva Bezier. msgid "The Control-point 2 block sets the second control point for the Bezier curve." msgstr "" -#: js/GraphicsBlocks.js:433 +#: js/blocks/GraphicsBlocks.js:433 +#.TRANS: punto de control 2 msgid "control point 2" msgstr "arariwaq 2" -#: js/GraphicsBlocks.js:436 -#: js/GraphicsBlocks.js:487 -#: js/GraphicsBlocks.js:534 -#: js/GraphicsBlocks.js:750 +#: js/blocks/GraphicsBlocks.js:436 +#: js/blocks/GraphicsBlocks.js:487 +#: js/blocks/GraphicsBlocks.js:534 +#: js/blocks/GraphicsBlocks.js:750 +#.TRANS: x msgid "x1" msgstr "x1" -#: js/GraphicsBlocks.js:436 -#: js/GraphicsBlocks.js:487 -#: js/GraphicsBlocks.js:534 -#: js/GraphicsBlocks.js:750 +#: js/blocks/GraphicsBlocks.js:436 +#: js/blocks/GraphicsBlocks.js:487 +#: js/blocks/GraphicsBlocks.js:534 +#: js/blocks/GraphicsBlocks.js:750 +#.TRANS: y msgid "y1" msgstr "y1" -#: js/GraphicsBlocks.js:477 +#: js/blocks/GraphicsBlocks.js:477 +#.TRANS: El bloque Control-point 1 establece el segundo punto de control para la curva Bezier. msgid "The Control-point 1 block sets the first control point for the Bezier curve." msgstr "" -#: js/GraphicsBlocks.js:484 +#: js/blocks/GraphicsBlocks.js:484 +#.TRANS: punto de control 1 msgid "control point 1" msgstr "arariwaq 1" -#: js/GraphicsBlocks.js:527 +#: js/blocks/GraphicsBlocks.js:527 +#.TRANS: El bloque bezier dibuja una curva bezier. msgid "The Bezier block draws a Bezier curve." msgstr "El bloque bezier dibuja una curva bezier." -#: js/GraphicsBlocks.js:531 +#: js/blocks/GraphicsBlocks.js:531 +#.TRANS: bezier msgid "bezier" msgstr "" -#: js/GraphicsBlocks.js:592 +#: js/blocks/GraphicsBlocks.js:592 +#.TRANS: El bloque Arco mueve la tortuga en un arco. msgid "The Arc block moves the turtle in an arc." msgstr "" -#: js/GraphicsBlocks.js:600 +#: js/blocks/GraphicsBlocks.js:600 +#.TRANS: arco msgid "arc" msgstr "k’umu" -#: js/GraphicsBlocks.js:603 +#: js/blocks/GraphicsBlocks.js:603 +#.TRANS: ángulo msgid "angle" msgstr "k'uchu" -#: js/GraphicsBlocks.js:603 +#: js/blocks/GraphicsBlocks.js:603 +#.TRANS: radio msgid "radius" msgstr "illwa" -#: js/GraphicsBlocks.js:620 -#: js/GraphicsBlocks.js:767 -#: js/GraphicsBlocks.js:1010 -#: js/GraphicsBlocks.js:1093 +#: js/blocks/GraphicsBlocks.js:620 +#: js/blocks/GraphicsBlocks.js:767 +#: js/blocks/GraphicsBlocks.js:1010 +#: js/blocks/GraphicsBlocks.js:1093 +#.TRANS: El valor debe estar entre -5000 y 5000 cuando el modo Wrap está desactivado. msgid "Value must be within -5000 to 5000 when Wrap Mode is off." msgstr "" -#: js/GraphicsBlocks.js:622 -#: js/GraphicsBlocks.js:769 -#: js/GraphicsBlocks.js:1012 -#: js/GraphicsBlocks.js:1095 +#: js/blocks/GraphicsBlocks.js:622 +#: js/blocks/GraphicsBlocks.js:769 +#: js/blocks/GraphicsBlocks.js:1012 +#: js/blocks/GraphicsBlocks.js:1095 +#.TRANS: El valor debe estar entre -20000 y 20000 cuando el modo Wrap está activado. msgid "Value must be within -20000 to 20000 when Wrap Mode is on." msgstr "" -#: js/GraphicsBlocks.js:660 +#: js/blocks/GraphicsBlocks.js:660 +#.TRANS: fijar rumbo msgid "set heading" msgstr "mayman rinantam churay" -#: js/GraphicsBlocks.js:673 +#: js/blocks/GraphicsBlocks.js:673 +#.TRANS: El bloque fijar rumbo establece el rumbo de la tortuga. msgid "The Set heading block sets the heading of the turtle." msgstr "" -#: js/GraphicsBlocks.js:733 +#: js/blocks/GraphicsBlocks.js:733 +#.TRANS: El bloque Fijar XY mueve el ratón a una posición específica en la pantalla. msgid "The Set XY block moves the mouse to a specific position on the screen." msgstr "" -#: js/GraphicsBlocks.js:739 +#: js/blocks/GraphicsBlocks.js:739 +#.TRANS: El bloque Fijar XY mueve la tortuga a una posición específica en la pantalla. msgid "The Set XY block moves the turtle to a specific position on the screen." msgstr "" -#: js/GraphicsBlocks.js:747 +#: js/blocks/GraphicsBlocks.js:747 +#.TRANS: fijar xy msgid "set xy" msgstr "xy nisqata churay" "xy k’askachiy" -#: js/GraphicsBlocks.js:819 +#: js/blocks/GraphicsBlocks.js:819 +#.TRANS: El bloque Derecha gira el ratón hacia la derecha. msgid "The Right block turns the mouse to the right." msgstr "El bloque Derecha gira el ratón hacia la derecha." -#: js/GraphicsBlocks.js:826 +#: js/blocks/GraphicsBlocks.js:826 +#.TRANS: El bloque Derecha gira la tortuga hacia la derecha. msgid "The Right block turns the turtle to the right." msgstr "" -#: js/GraphicsBlocks.js:835 +#: js/blocks/GraphicsBlocks.js:835 +#.TRANS: derecha msgid "right1" msgstr "paña" -#: js/GraphicsBlocks.js:835 +#: js/blocks/GraphicsBlocks.js:835 #: plugins/rodi.rtp:77 #: plugins/rodi.rtp:340 #: plugins/rodi.rtp:375 +#.TRANS: derecha msgid "right" msgstr "paña" -#: js/GraphicsBlocks.js:899 +#: js/blocks/GraphicsBlocks.js:899 +#.TRANS: El bloque izquierdo gira el ratón hacia la izquierda. msgid "The Left block turns the mouse to the left." msgstr "lluq’i t’aqa huk’uchawan lluq’iman muyun" -#: js/GraphicsBlocks.js:906 +#: js/blocks/GraphicsBlocks.js:906 +#.TRANS: El bloque izquierdo gira la tortuga hacia la izquierda. msgid "The Left block turns the turtle to the left." msgstr "" -#: js/GraphicsBlocks.js:915 +#: js/blocks/GraphicsBlocks.js:915 +#.TRANS: izquierda msgid "left1" msgstr "lluq’i" -#: js/GraphicsBlocks.js:915 +#: js/blocks/GraphicsBlocks.js:915 #: plugins/rodi.rtp:79 #: plugins/rodi.rtp:339 #: plugins/rodi.rtp:362 +#.TRANS: izquierda msgid "left" msgstr "lluq’i" -#: js/GraphicsBlocks.js:967 -#: js/temperament.js:734 -#: js/temperament.js:933 +#: js/blocks/GraphicsBlocks.js:967 +#: js/widgets/temperament.js:875 +#: js/widgets/temperament.js:1078 #: plugins/rodi.rtp:69 #: plugins/rodi.rtp:387 +#.TRANS: atrás msgid "back" msgstr "qhipa" -#: js/GraphicsBlocks.js:976 +#: js/blocks/GraphicsBlocks.js:976 +#.TRANS: El bloque Atrás mueve el ratón hacia atrás. msgid "The Back block moves the mouse backward." msgstr "qhipa t’aqa huk’uchawan qhipaman muyun" -#: js/GraphicsBlocks.js:983 +#: js/blocks/GraphicsBlocks.js:983 +#.TRANS: El bloque Atrás mueve la tortuga hacia atrás. msgid "The Back block moves the turtle backward." msgstr "" -#: js/GraphicsBlocks.js:1050 +#: js/blocks/GraphicsBlocks.js:1050 #: plugins/rodi.rtp:71 #: plugins/rodi.rtp:400 +#.TRANS: adelante msgid "forward" msgstr "ñawpaq" -#: js/GraphicsBlocks.js:1059 +#: js/blocks/GraphicsBlocks.js:1059 +#.TRANS: El bloque Adelante mueve el ratón hacia adelante. msgid "The Forward block moves the mouse forward." msgstr "ñawpaq t’aqa huk’uchawan ñawpaqman muyun" -#: js/GraphicsBlocks.js:1066 +#: js/blocks/GraphicsBlocks.js:1066 +#.TRANS: El bloque Adelante mueve la tortuga hacia adelante. msgid "The Forward block moves the turtle forward." msgstr "" -#: js/GraphicsBlocks.js:1154 -#: js/GraphicsBlocks.js:1172 +#: js/blocks/GraphicsBlocks.js:1154 +#: js/blocks/GraphicsBlocks.js:1172 +#.TRANS: envolver msgid "wrap" msgstr "" -#: js/OrnamentBlocks.js:32 -msgid "staccato factor" -msgstr "factor de staccato" - -#: js/OrnamentBlocks.js:108 -msgid "slur factor" -msgstr "factor de legato" - -#: js/OrnamentBlocks.js:217 -#: js/OrnamentBlocks.js:309 -#.TRANS: the neighbor refers to a neighboring note, e.g., D is a neighbor of C -msgid "neighbor" -msgstr "wasimasi" - -#: js/OrnamentBlocks.js:293 -msgid "The Neighbor block rapidly switches between neighboring pitches." -msgstr "" - -#: js/OrnamentBlocks.js:364 -msgid "glide" -msgstr "deslizarse" - -#: js/OrnamentBlocks.js:479 -#: js/OrnamentBlocks.js:643 -msgid "slur" -msgstr "legato" - -#: js/OrnamentBlocks.js:558 -#: js/OrnamentBlocks.js:710 -#.TRANS: play each note sharply detached from the others -msgid "staccato" -msgstr "staccato" - -#: js/PenBlocks.js:24 +#: js/blocks/PenBlocks.js:30 +#.TRANS: morado msgid "purple" msgstr "Kulli" -#: js/PenBlocks.js:37 -#: js/SensorsBlocks.js:521 -#: plugins/rodi.rtp:219 -msgid "blue" -msgstr "Anqas" - -#: js/PenBlocks.js:50 -#: js/SensorsBlocks.js:577 -#: plugins/rodi.rtp:218 -msgid "green" -msgstr "Qunir" - -#: js/PenBlocks.js:63 +#: js/blocks/PenBlocks.js:80 +#.TRANS: amarillo msgid "yellow" msgstr "Q’illu" -#: js/PenBlocks.js:76 +#: js/blocks/PenBlocks.js:96 #: plugins/nutrition.rtp:164 +#.TRANS: naranja msgid "orange" msgstr "q'illmu" -#: js/PenBlocks.js:89 -#: js/SensorsBlocks.js:633 -#: plugins/rodi.rtp:217 -msgid "red" -msgstr "Puka" - -#: js/PenBlocks.js:102 +#: js/blocks/PenBlocks.js:128 +#.TRANS: blanco msgid "white" msgstr "Yuraq" -#: js/PenBlocks.js:115 +#: js/blocks/PenBlocks.js:144 +#.TRANS: negro msgid "black" msgstr "Yana" -#: js/PenBlocks.js:128 +#: js/blocks/PenBlocks.js:163 +#.TRANS: iniciar relleno msgid "begin fill" msgstr "Hunt’achiyta qallariy" -#: js/PenBlocks.js:143 +#: js/blocks/PenBlocks.js:190 +#.TRANS: Cargar proyecto desde archivo msgid "end fill" msgstr "pusariqta waqaychanamanta hunt’achimuy" -#: js/PenBlocks.js:159 -#: js/PenBlocks.js:386 +#: js/blocks/PenBlocks.js:212 +#: js/blocks/PenBlocks.js:560 #.TRANS: set the background color +#.TRANS: rellenar pantalla msgid "background" msgstr " qhawanata hunt’achiy" -#: js/PenBlocks.js:206 -#: js/DictActions.js:71 -#: js/DictActions.js:149 -#: js/DictActions.js:186 +#: js/blocks/PenBlocks.js:274 +#: js/turtleactions/DictActions.js:71 +#: js/turtleactions/DictActions.js:138 +#: js/turtleactions/DictActions.js:170 +#.TRANS: gris msgid "grey" msgstr "uqi" -#: js/PenBlocks.js:210 +#: js/blocks/PenBlocks.js:282 +#.TRANS: El bloque gris devuelve el valor gris actual de la pluma. msgid "The Grey block returns the current pen grey value." msgstr "El bloque gris devuelve el valor gris actual de la pluma." -#: js/PenBlocks.js:243 -#: js/DictActions.js:69 -#: js/DictActions.js:147 -#: js/DictActions.js:185 +#: js/blocks/PenBlocks.js:340 +#: js/turtleactions/DictActions.js:69 +#: js/turtleactions/DictActions.js:136 +#: js/turtleactions/DictActions.js:169 +#.TRANS: sombra msgid "shade" msgstr "llanthu" -#: js/PenBlocks.js:247 +#: js/blocks/PenBlocks.js:347 +#.TRANS: El bloque sombra devuelve la sombra actual de la pluma. msgid "The Shade block returns the current pen shade value." msgstr "El bloque sombra devuelve la sombra actual de la pluma." -#: js/PenBlocks.js:280 -#: js/DictActions.js:67 -#: js/DictActions.js:145 -#: js/DictActions.js:184 +#: js/blocks/PenBlocks.js:405 +#: js/turtleactions/DictActions.js:67 +#: js/turtleactions/DictActions.js:134 +#: js/turtleactions/DictActions.js:168 +#.TRANS: color msgid "color" msgstr "llimp'i" -#: js/PenBlocks.js:285 +#: js/blocks/PenBlocks.js:415 +#.TRANS: El bloque color devuelve el color actual de la pluma. msgid "The Color block returns the current pen color." msgstr "sayaq llimp’i kutichin llimp’ita kunan llimp’qman" -#: js/PenBlocks.js:318 -#: js/DictActions.js:73 -#: js/DictActions.js:151 -#: js/DictActions.js:187 +#: js/blocks/PenBlocks.js:470 +#: js/turtleactions/DictActions.js:73 +#: js/turtleactions/DictActions.js:140 +#: js/turtleactions/DictActions.js:171 +#.TRANS: tamaño de la pluma msgid "pen size" msgstr "Qillqanq sayayanin" -#: js/PenBlocks.js:322 +#: js/blocks/PenBlocks.js:474 +#.TRANS: El bloque tamaño de la pluma devuelve el tamaño actual de la pluma. msgid "The Pen size block returns the current pen size value." msgstr "El bloque tamaño de la pluma devuelve el tamaño actual de la pluma." -#: js/PenBlocks.js:355 +#: js/blocks/PenBlocks.js:513 +#.TRANS: fijar font msgid "set font" msgstr "tahachiy font" -#: js/PenBlocks.js:358 +#: js/blocks/PenBlocks.js:518 +#.TRANS: El bloque fijar font establece el font utilizada por el bloque mostrar. msgid "The Set font block sets the font used by the Show block." msgstr "El bloque fijar font establece el font utilizada por el bloque mostrar." -#: js/PenBlocks.js:391 +#: js/blocks/PenBlocks.js:567 +#.TRANS: El bloque Fondo establece el color de fondo de la ventana. msgid "The Background block sets the window background color." msgstr "El bloque Fondo establece el color de fondo de la ventana." -#: js/PenBlocks.js:408 +#: js/blocks/PenBlocks.js:598 +#.TRANS: El bloque de línea sin relleno crea una línea con un centro hueco. msgid "The Hollow line block creates a line with a hollow center." msgstr "El bloque de línea sin relleno crea una línea con un centro hueco." -#: js/PenBlocks.js:415 +#: js/blocks/PenBlocks.js:606 #.TRANS: draw a line logo has a hollow space down its center +#.TRANS: linea sin relleno msgid "hollow line" msgstr "Hunt’achina siq’i" -#: js/PenBlocks.js:462 +#: js/blocks/PenBlocks.js:675 +#.TRANS: El bloque relleno rellena una forma con un color. msgid "The Fill block fills in a shape with a color." msgstr "El bloque relleno rellena una forma con un color." -#: js/PenBlocks.js:470 +#: js/blocks/PenBlocks.js:684 #.TRANS: fill in as a solid color +#.TRANS: relleno msgid "fill" msgstr "Hunt’achina" -#: js/PenBlocks.js:527 +#: js/blocks/PenBlocks.js:761 #.TRANS: raise up the pen so logo it does not draw when it is moved +#.TRANS: subir pluma msgid "pen up" msgstr "qillqanata uqariy" -#: js/PenBlocks.js:532 +#: js/blocks/PenBlocks.js:768 +#.TRANS: El bloque Subir pluma levanta la pluma para que no dibuje. msgid "The Pen-up block raises the pen so that it does not draw." msgstr "Sayaqpi, qillqanata uqariy mana siq’inanpaq" -#: js/PenBlocks.js:552 +#: js/blocks/PenBlocks.js:802 #.TRANS: put down the pen so logo it draws when it is moved +#.TRANS: bajar pluma msgid "pen down" msgstr "qillqanata urayachiy" -#: js/PenBlocks.js:557 +#: js/blocks/PenBlocks.js:810 +#.TRANS: El bloque de Haciar pluma abajo baja la pluma para que dibuje. msgid "The Pen-down block lowers the pen so that it draws." msgstr "El bloque Subir pluma levanta la pluma para que no dibuje." -#: js/PenBlocks.js:577 +#: js/blocks/PenBlocks.js:844 #.TRANS: set the width of the line drawn by the pen +#.TRANS: fijar pluma msgid "set pen size" msgstr "Qillqanata tahachiy" -#: js/PenBlocks.js:583 +#: js/blocks/PenBlocks.js:854 +#.TRANS: El bloque Fijar tamaño de la pluma de ajuste cambia el tamaño de la pluma. msgid "The Set-pen-size block changes the size of the pen." msgstr "Sayaq, qillqanaq tahachinanmi kutichin qillqaqa rakhuyanata, ñañuyachinata" -#: js/PenBlocks.js:623 +#: js/blocks/PenBlocks.js:913 #.TRANS: set degree of translucence of the pen color +#.TRANS: fijar translucidez msgid "set translucency" msgstr "K’anchayninta tahachiy " -#: js/PenBlocks.js:627 +#: js/blocks/PenBlocks.js:921 +#.TRANS: El bloque fijar translucidez cambia la opacidad de la pluma. msgid "The Set translucency block changes the opacity of the pen." msgstr "El bloque fijar translucidez cambia la opacidad de la pluma." -#: js/PenBlocks.js:668 +#: js/blocks/PenBlocks.js:981 +#.TRANS: fijar matiz msgid "set hue" msgstr "Llimp’inta tahachiy " -#: js/PenBlocks.js:672 +#: js/blocks/PenBlocks.js:989 +#.TRANS: El bloque fijar matiz cambia la color de la pluma. msgid "The Set hue block changes the color of the pen." msgstr "El bloque fijar matiz cambia la color de la pluma." -#: js/PenBlocks.js:711 +#: js/blocks/PenBlocks.js:1047 +#.TRANS: fijar sombra msgid "set shade" msgstr "Llanthunta tahachiy " -#: js/PenBlocks.js:717 +#: js/blocks/PenBlocks.js:1057 +#.TRANS: El bloque Fijar sombra cambia el color de la pluma de oscuro a claro. msgid "The Set-shade block changes the pen color from dark to light." msgstr "" -#: js/PenBlocks.js:757 +#: js/blocks/PenBlocks.js:1111 #.TRANS: set the level of vividness of the pen color +#.TRANS: fijar gris msgid "set grey" msgstr "Uqinta tahachiy " -#: js/PenBlocks.js:761 +#: js/blocks/PenBlocks.js:1119 +#.TRANS: El bloque fijar gris cambia la intensidad de la pluma. msgid "The Set grey block changes the vividness of the pen color." msgstr "El bloque fijar gris cambia la intensidad de la pluma." -#: js/PenBlocks.js:800 +#: js/blocks/PenBlocks.js:1172 +#.TRANS: fijar color msgid "set color" msgstr "Llinpinta tahachiy" -#: js/PenBlocks.js:806 +#: js/blocks/PenBlocks.js:1182 +#.TRANS: El bloque fijar color cambia el color de la pluma. msgid "The Set-color block changes the pen color." msgstr "Sayaq, tahachiy llmp’iyta qillqanaq llimp’iynita kutichin" -#: js/VolumeBlocks.js:35 -msgid "synth volume" -msgstr "volumen del sintetizador" - -#: js/VolumeBlocks.js:39 -msgid "The Synth volume block returns the current volume of the current synthesizer." -msgstr "" - -#: js/VolumeBlocks.js:47 -#: js/musicutils.js:730 -#: js/synthutils.js:56 -#.TRANS: musical instrument -msgid "piano" -msgstr "" - -#: js/VolumeBlocks.js:105 -msgid "master volume" -msgstr "t’uqya kamay" - -#: js/VolumeBlocks.js:109 -msgid "The Master volume block returns the master volume." -msgstr "El bloque volumen maestro devuelve nivel de volumen maestro." - -#: js/VolumeBlocks.js:355 -#: js/VolumeBlocks.js:524 -msgid "set synth volume" -msgstr "fijar volumen del sintetizador" - -#: js/VolumeBlocks.js:362 -#: js/VolumeBlocks.js:545 -msgid "synth" -msgstr "sintetizador" - -#: js/VolumeBlocks.js:403 -#: js/VolumeBlocks.js:577 -#: js/VolumeBlocks.js:740 -#: js/VolumeActions.js:173 -msgid "Setting volume to 0." -msgstr "Ajuste el volumen a 0" - -#: js/VolumeBlocks.js:440 -msgid "Synth not found" -msgstr "No se encuentra el sintetizador." - -#: js/VolumeBlocks.js:494 -msgid "set drum volume" -msgstr "filar volumen del tambor" - -#: js/VolumeBlocks.js:530 -msgid "The Set synth volume block will change the volume of a particular synth," -msgstr "" - -#: js/VolumeBlocks.js:532 -msgid "eg guitar violin snare drum etc." -msgstr "por ejemplo, guitarra, violín, tambor" - -#: js/VolumeBlocks.js:534 -msgid "The default volume is 50." -msgstr "El volumen predeterminado es 50." - -#: js/VolumeBlocks.js:536 -msgid "The range is 0 for silence to 100 for full volume." -msgstr "El rango es de 0 para el silencio a 100 para el volumen completo." - -#: js/VolumeBlocks.js:597 -msgid "set panning" -msgstr "" - -#: js/VolumeBlocks.js:603 -msgid "The Set Panning block sets the panning for all synthesizers." -msgstr "" - -#: js/VolumeBlocks.js:625 -msgid "Warning: Sound is coming out from only the left or right side." -msgstr "" - -#: js/VolumeBlocks.js:647 -#: js/VolumeBlocks.js:695 -msgid "set master volume" -msgstr "qispichiq p’ulinta takyachiy" - -#: js/VolumeBlocks.js:653 -msgid "The Set master volume block sets the volume for all synthesizers." -msgstr "" - -#: js/VolumeBlocks.js:784 -msgid "The Set relative volume block changes the volume of the contained notes." -msgstr "" - -#: js/VolumeBlocks.js:791 -msgid "set relative volume" -msgstr "t’inkisqa p’ulinta takyachiy" - -#: js/VolumeBlocks.js:857 -msgid "decrescendo" -msgstr "" - -#: js/VolumeBlocks.js:921 -msgid "crescendo" -msgstr "wiñachkan" - -#: js/ToneBlocks.js:34 -msgid "oscillator" -msgstr "maymikuynin" - -#: js/ToneBlocks.js:44 -#: js/timbre.js:1562 -#.TRANS: Partials refers to the number of sine waves combined into the sound. -msgid "partials" -msgstr "chawakuna" - -#: js/ToneBlocks.js:76 -msgid "You are adding multiple oscillator blocks." -msgstr "maymikuqmanmi achka chiqasta yapachkan" - -#: js/ToneBlocks.js:144 -#: js/timbre.js:1225 -#.TRANS: a duo synthesizer combines a synth with a sequencer -msgid "duo synth" -msgstr "iskayman pisiyachiqnin" - -#: js/ToneBlocks.js:149 -msgid "The Duo synth block is a duo-frequency modulator used to define a timbre." -msgstr "" - -#: js/ToneBlocks.js:157 -#: js/timbre.js:1476 -msgid "vibrato rate" -msgstr "vibratupa usqhachiq" - -#: js/ToneBlocks.js:157 -msgid "vibrato intensity" -msgstr "vibratupa kallpachaynin" - -#: js/ToneBlocks.js:185 -#: js/timbre.js:1221 -#.TRANS: AM (amplitude modulation) synthesizer -msgid "AM synth" -msgstr "AM pisiyachiqnin" - -#: js/ToneBlocks.js:189 -msgid "The AM synth block is an amplitude modulator used to define a timbre." -msgstr "" - -#: js/ToneBlocks.js:224 -#: js/timbre.js:1223 -#.TRANS: FM (frequency modulation) synthesizer -msgid "FM synth" -msgstr "FM pisiyachiqnin " - -#: js/ToneBlocks.js:228 -msgid "The FM synth block is a frequency modulator used to define a timbre." -msgstr "" - -#: js/ToneBlocks.js:262 -msgid "partial" -msgstr "chawa" - -#: js/ToneBlocks.js:265 -msgid "The Partial block is used to specify a weight for a specific partial harmonic." -msgstr "" - -#: js/ToneBlocks.js:284 -#.TRANS: partials are weighted components in a harmonic series -msgid "Partial weight must be between 0 and 1." -msgstr "chawapa llasayninqa chúsaqpi hinallataq huk chawpipin kanan" - -#: js/ToneBlocks.js:297 -#.TRANS: partials are weighted components in a harmonic series -msgid "Partial block should be used inside of a Weighted-partials block." -msgstr "" +#: js/blocks/PitchBlocks.js:141 +#.TRANS: musical transposition (adjustment of pitch up or down) +#.TRANS: transposición +msgid "transposition" +msgstr "haywapuynin" -#: js/ToneBlocks.js:325 -#.TRANS: partials are weighted components in a harmonic series -msgid "weighted partials" -msgstr "chawa chaninchasqa" +#: js/blocks/PitchBlocks.js:168 +#.TRANS: step down one note in current musical scale +#.TRANS: escalar bajar +msgid "scalar step down" +msgstr "wichay uraqay" -#: js/ToneBlocks.js:383 -msgid "The Harmonic block will add harmonics to the contained notes." +#: js/blocks/PitchBlocks.js:172 +#.TRANS: El bloque Escalar bajar devuelve el número de semitonos a la nota anterior en la tecla y modo actuales. +msgid "The Scalar step down block returns the number of semi-tones down to the previous note in the current key and mode." msgstr "" -#: js/ToneBlocks.js:390 -#.TRANS: A harmonic is an overtone. -msgid "harmonic" -msgstr "armónico" - -#: js/ToneBlocks.js:431 -msgid "The Distortion block adds distortion to the pitch." -msgstr "q’iwiy chiqasqa kunkaman q’iwiyninta yapam" - -#: js/ToneBlocks.js:438 -#: js/timbre.js:2100 -#.TRANS: distortion is an alteration in the sound -msgid "distortion" -msgstr "q’íwiy" - -#: js/ToneBlocks.js:487 -msgid "The Tremolo block adds a wavering effect." -msgstr "Thalay chiqasqa iskayananpaq yapaykun" - -#: js/ToneBlocks.js:495 -#: js/timbre.js:2092 -#.TRANS: a wavering effect in a musical tone -msgid "tremolo" -msgstr "Thalay" - -#: js/ToneBlocks.js:500 -#: js/ToneBlocks.js:569 -#: js/ToneBlocks.js:630 -#: js/ToneBlocks.js:689 -#: js/timbre.js:2134 -#: js/timbre.js:2222 -#: js/timbre.js:2317 -#: js/timbre.js:2419 -#.TRANS: rate at which tremolo wavers -msgid "rate" -msgstr "utqay" - -#: js/ToneBlocks.js:502 -#: js/ToneBlocks.js:630 -#: js/timbre.js:2137 -#: js/timbre.js:2328 -#.TRANS: amplitude of tremolo waver -msgid "depth" -msgstr "kallpa" - -#: js/ToneBlocks.js:559 -msgid "The Phaser block adds a sweeping sound." -msgstr "Phaser chiqasqa pichana kunkatan yapan" +#: js/blocks/PitchBlocks.js:190 +#.TRANS: step up one note in current musical scale +#.TRANS: escalar aumentar +msgid "scalar step up" +msgstr "wichay yapaykuy" -#: js/ToneBlocks.js:566 -#: js/timbre.js:2098 -#.TRANS: alter the phase of the sound -msgid "phaser" -msgstr "phaser" +#: js/blocks/PitchBlocks.js:194 +#.TRANS: El bloque Escalar aumentar devuelve el número de semitonos hasta la siguiente nota en la tecla y modo actuales. +msgid "The Scalar step up block returns the number of semi-tones up to the next note in the current key and mode." +msgstr "" -#: js/ToneBlocks.js:569 -#: js/timbre.js:2422 -msgid "octaves" -msgstr "pusaq patakuna" +#: js/blocks/PitchBlocks.js:212 +#.TRANS: the change measured in half-steps between the current pitch and the previous pitch +#.TRANS: cambio en tono +msgid "change in pitch" +msgstr "kunkan t’ikrasqa" -#: js/ToneBlocks.js:569 -#: js/timbre.js:2425 -msgid "base frequency" -msgstr "tiyananpi sapakuti ruranan " +#: js/blocks/PitchBlocks.js:216 +#.TRANS: El cambio en el bloque de tono es la diferencia (en medio pasos) entre el tono actual que se está reproduciendo y el tono anterior. +msgid "The Change in pitch block is the difference (in half steps) between the current pitch being played and the previous pitch played." +msgstr "" -#: js/ToneBlocks.js:619 -msgid "The Chorus block adds a chorus effect." -msgstr "takich’unku chiqasqa takich’unku kayninta yapan" +#: js/blocks/PitchBlocks.js:243 +#.TRANS: the change measured in scale-steps between the current pitch and the previous pitch +#.TRANS: cambio en tono escalar +msgid "scalar change in pitch" +msgstr "cambio en tono escalar" -#: js/ToneBlocks.js:627 -#: js/timbre.js:2096 -#.TRANS: musical effect to simulate a choral sound -msgid "chorus" -msgstr "takich’unku" +#: js/blocks/PitchBlocks.js:250 +#: js/blocks/PitchBlocks.js:432 +#: js/blocks/PitchBlocks.js:1667 +#: js/turtleactions/DictActions.js:89 +#: js/widgets/temperament.js:610 +#: js/widgets/temperament.js:614 +#: js/widgets/temperament.js:855 +#.TRANS: convert current note to piano key (1-88) +#.TRANS: a mapping of pitch to the 88 piano keys +#.TRANS: número de tono +msgid "pitch number" +msgstr "kunkapa yupaynin" -#: js/ToneBlocks.js:630 -msgid "delay" -msgstr "qhipay" +#: js/blocks/PitchBlocks.js:256 +#.TRANS: El bloque Número de tono es el valor del tono de la nota que se está reproduciendo actualmente. +msgid "The Pitch number block is the value of the pitch of the note currently being played." +msgstr "" -#: js/ToneBlocks.js:678 -msgid "The Vibrato block adds a rapid, slight variation in pitch." -msgstr "Khatatay chiqasqa utqay chaninchayninta hinallataq pisi kunkanta yapan" +#: js/blocks/PitchBlocks.js:329 +#: js/blocks/PitchBlocks.js:433 +#.TRANS: the current pitch expressed in Hertz +#.TRANS: tono en hertz +msgid "pitch in hertz" +msgstr "hertzpi kunkan" -#: js/ToneBlocks.js:686 -#: js/timbre.js:2094 -#.TRANS: a rapid, slight variation in pitch -msgid "vibrato" -msgstr "khatatay" +#: js/blocks/PitchBlocks.js:334 +#.TRANS: El bloque Tono en Hertz es el valor en hercios del tono de la nota que se está reproduciendo actualmente. +msgid "The Pitch in Hertz block is the value in Hertz of the pitch of the note currently being played." +msgstr "" -#: js/ToneBlocks.js:689 -#: js/timbre.js:2221 -msgid "intensity" -msgstr "kallpa" +#: js/blocks/PitchBlocks.js:367 +#: js/turtleactions/DictActions.js:87 +#.TRANS: tono actual +msgid "current pitch" +msgstr "" -#: js/ToneBlocks.js:733 -#.TRANS: select synthesizer -msgid "set synth" -msgstr "synth watay" +#: js/blocks/PitchBlocks.js:373 +#.TRANS: El bloque de tono actual se utiliza con el bloque convertidor de tono. En el ejemplo anterior, el tono actual, sol 4, se muestra como 392 hercios. +msgid "The Current Pitch block is used with the Pitch Converter block. In the example above, current pitch, sol 4, is displayed as 392 hertz." +msgstr "" -#: js/ToneBlocks.js:804 -msgid "synth name" -msgstr " pisiyachiqninpa sutin" +#: js/blocks/PitchBlocks.js:410 +#.TRANS: Este bloque convierte el valor de tono de la última nota tocada en diferentes formatos como hertz, nombre de letra, número de tono, etc. +msgid "This block converts the pitch value of the last note played into different formats such as hertz, letter name, pitch number, et al." +msgstr "" -#: js/ToneBlocks.js:842 -msgid "set default instrument" +#: js/blocks/PitchBlocks.js:434 +#.TRANS: alfabeto +msgid "alphabet" msgstr "" -#: js/ToneBlocks.js:895 -#: js/ToneBlocks.js:943 -#.TRANS: set the characteristics of a custom instrument -msgid "set instrument" -msgstr "ruk’awita churana" +#: js/blocks/PitchBlocks.js:436 +#.TRANS: Translate as "alphabet class" +#.TRANS: clase de alfabeto +msgid "letter class" +msgstr "" -#: js/ToneBlocks.js:898 -#: js/ToneBlocks.js:926 -#: js/ToneBlocks.js:932 -msgid "The Set instrument block selects a voice for the synthesizer," +#: js/blocks/PitchBlocks.js:437 +#.TRANS: clase de solfege +msgid "solfege class" msgstr "" -#: js/ToneBlocks.js:900 -#: js/ToneBlocks.js:934 -msgid "eg guitar piano violin or cello." -msgstr "kitara, piyanu, wiyulin kallamanta wiyula hina" +#: js/blocks/PitchBlocks.js:438 +#.TRANS: musical y +msgid "staff y" +msgstr "" -#: js/ToneBlocks.js:1015 -msgid "Import a sound file to use as an instrument and set its pitch center." +#: js/blocks/PitchBlocks.js:439 +#.TRANS: sílaba solfege +msgid "solfege syllable" msgstr "" -#: js/ToneBlocks.js:1110 -msgid "Upload a sound file to connect with the sample block." +#: js/blocks/PitchBlocks.js:440 +#.TRANS: clase de tono +msgid "pitch class" msgstr "" -#: js/MeterBlocks.js:34 -#.TRANS: musical meter (time signature), e.g., 4:4 -msgid "current meter" -msgstr "actualita haykuchiy" +#: js/blocks/PitchBlocks.js:441 +#.TRANS: clase de escala +msgid "scalar class" +msgstr "" -#: js/MeterBlocks.js:85 -#.TRANS: number of beats per minute -msgid "beat factor" -msgstr "p’ullpuqiy" +#: js/blocks/PitchBlocks.js:443 +#.TRANS: nth grado +msgid "nth degree" +msgstr "" -#: js/MeterBlocks.js:161 -msgid "The Beats per minute block returns the current beats per minute." +#: js/blocks/PitchBlocks.js:444 +#.TRANS: tono a la sombra +msgid "pitch to shade" msgstr "" -#: js/MeterBlocks.js:169 -#: js/status.js:152 -#.TRANS: number of beats played per minute -msgid "beats per minute2" -msgstr "minutupi p’ullpuqiy" +#: js/blocks/PitchBlocks.js:445 +#.TRANS: tono a color +msgid "pitch to color" +msgstr "" -#: js/MeterBlocks.js:169 -#: js/MeterBlocks.js:1056 -#: js/MeterBlocks.js:1133 -#: js/MeterBlocks.js:1211 -#.TRANS: sets tempo by defining a beat and beats per minute -msgid "beats per minute" -msgstr "minutupi p’ullpuqiy" +#: js/blocks/PitchBlocks.js:629 +#: js/widgets/musickeyboard.js:735 +#.TRANS: MIDI is a technical standard for electronic music +#.TRANS: MIDI +msgid "MIDI" +msgstr "MIDI" -#: js/MeterBlocks.js:233 -#.TRANS: count of current musical measure in meter -msgid "measure count" -msgstr "tupusqakunapa yupaynin" +#: js/blocks/PitchBlocks.js:642 +#.TRANS: set an offset associated with the numeric piano keyboard mapping +#.TRANS: fijar offset del número de tono +msgid "set pitch number offset" +msgstr "kunkapa yupayninta watapuna " -#: js/MeterBlocks.js:241 -msgid "The Measure count block returns the current measure." -msgstr "tupunakuna yupay chiqasqa kunan tupunata kutichipun" +#: js/blocks/PitchBlocks.js:645 +#.TRANS: El bloque Fijar del número de tono establecido se usa para establecer el desplazamiento para asignar números de tono a tono y octava. +msgid "The Set pitch number offset block is used to set the offset for mapping pitch numbers to pitch and octave." +msgstr "" -#: js/MeterBlocks.js:290 -#.TRANS: count of current beat in the meter -msgid "beat count" -msgstr "p’ullpuqiyta yupay" +#: js/blocks/PitchBlocks.js:679 +#.TRANS: convert piano key number (1-88) to pitch +#.TRANS: número a tono +msgid "number to pitch" +msgstr "yupay kunkaman" -#: js/MeterBlocks.js:300 -#: js/MeterBlocks.js:311 -#: js/MeterBlocks.js:565 -#: js/MeterBlocks.js:576 -msgid "The Beat count block is the number of the current beat," +#: js/blocks/PitchBlocks.js:682 +#.TRANS: El bloque Número a tono convertirá un número de tono en un nombre pich. +msgid "The Number to pitch block will convert a pitch number to a pich name." msgstr "" -#: js/MeterBlocks.js:313 -#: js/MeterBlocks.js:578 -msgid "eg 1, 2, 3, or 4." -msgstr "kanman huk, iskay, kimsa, kallanmantaq tawa" +#: js/blocks/PitchBlocks.js:715 +#.TRANS: convert piano key number (1-88) to octave +#.TRANS: número a octava +msgid "number to octave" +msgstr "yupay pusaq pataman" -#: js/MeterBlocks.js:368 -#.TRANS: count the number of notes -msgid "sum note values" -msgstr "nota yupay" +#: js/blocks/PitchBlocks.js:717 +#.TRANS: El bloque Número a octava convertirá un número de tono en una octava. +msgid "The Number to octave block will convert a pitch number to an octave." +msgstr "" -#: js/MeterBlocks.js:376 -#: js/MeterBlocks.js:440 -msgid "The Note counter block can be used to count the number of contained notes." +#: js/blocks/PitchBlocks.js:726 +#.TRANS: y para tono +msgid "y to pitch" msgstr "" -#: js/MeterBlocks.js:432 -#.TRANS: count the number of notes -msgid "note counter" +#: js/blocks/PitchBlocks.js:729 +#.TRANS: El bloque Y a tono convertirá una posición de pentagrama y a la notación de tono correspondiente. +msgid "Y to pitch block will convert a staff y position to corresponding pitch notation." msgstr "" -#: js/MeterBlocks.js:496 -#.TRANS: number of whole notes that have been played -msgid "whole notes played" -msgstr "hunt’asqa nota pukllasqakuna" +#: js/blocks/PitchBlocks.js:841 +#.TRANS: selector accidental +msgid "accidental selector" +msgstr "" -#: js/MeterBlocks.js:505 -msgid "The Whole notes played block returns the total number of whole notes played." +#: js/blocks/PitchBlocks.js:844 +#.TRANS: El bloque Selector de accidental se usa para elegir entre doble filo, agudo, natural, plano y doble plano. +msgid "The Accidental selector block is used to choose between double-sharp, sharp, natural, flat, and double-flat." msgstr "" -#: js/MeterBlocks.js:555 -#: js/DictActions.js:83 -#.TRANS: number of notes that have been played -msgid "notes played" -msgstr "notakuna pukllasqakuna" +#: js/blocks/PitchBlocks.js:858 +#.TRANS: El tono puede especificarse en términos de ni dha pa ma ga re sa. +msgid "Pitch can be specified in terms of ni dha pa ma ga re sa." +msgstr "kunkaqa kay tukuykunapi ni dha pa ma ga re sa alayrichikun " -#: js/MeterBlocks.js:653 -msgid "The No clock block decouples the notes from the master clock." +#: js/blocks/PitchBlocks.js:872 +#.TRANS: El tono puede especificarse en términos de C D E F G A B. +msgid "Pitch can be specified in terms of C D E F G A B." +msgstr " kunkaqa kay tukuykunapi C D E F G A B alayrichikun " + +#: js/blocks/PitchBlocks.js:884 +#.TRANS: +msgid "solfege" msgstr "" -#: js/MeterBlocks.js:661 -#.TRANS: don't lock notes to master clock -msgid "no clock" -msgstr "mana intiwatanayuq" +#: js/blocks/PitchBlocks.js:887 +#.TRANS: El tono puede especificarse en términos de do re mi fa sol la si. +msgid "Pitch can be specified in terms of do re mi fa sol la ti." +msgstr " kunkaqa kay tukuykunapi do re mi fa sol la si alayrichikun " -#: js/MeterBlocks.js:700 -msgid "on weak beat do" -msgstr "mana kallpayuq p’ullpuqiypi rurana" +#: js/blocks/PitchBlocks.js:922 +#.TRANS: El bloque Invertir gira cualquier nota contenida alrededor de una nota de destino. +msgid "The Invert block rotates any contained notes around a target note." +msgstr "" -#: js/MeterBlocks.js:705 -msgid "The On-weak-beat block lets you specify actions to take on weak (off) beats." +#: js/blocks/PitchBlocks.js:929 +#.TRANS: pitch inversion rotates a pitch around another pitch +#.TRANS: invertir +msgid "invert" +msgstr "t’ikray" + +#: js/blocks/PitchBlocks.js:968 +#.TRANS: pitch inversion rotates a pitch around another pitch (odd number) +#.TRANS: invertir (impar) +msgid "invert (odd)" +msgstr "t’ikray (sapallan" + +#: js/blocks/PitchBlocks.js:1001 +#.TRANS: pitch inversion rotates a pitch around another pitch (even number) +#.TRANS: invertir (par) +msgid "invert (even)" +msgstr "t’ikray (masantin)" + +#: js/blocks/PitchBlocks.js:1022 +#.TRANS: register is the octave of the current pitch +#.TRANS: registro +msgid "register" +msgstr "waqaychasqa" + +#: js/blocks/PitchBlocks.js:1026 +#.TRANS: El bloque Registro proporciona una manera fácil de modificar el registro (octava) de las notas que lo siguen. +msgid "The Register block provides an easy way to modify the register (octave) of the notes that follow it." msgstr "" -#: js/MeterBlocks.js:750 -msgid "on strong beat" -msgstr "kallpayuq p’ullpuqiypi rurana" +#: js/blocks/PitchBlocks.js:1047 +#.TRANS: cents are units used to specify the ratio between pitches. There are 100 cents between successive notes. +#.TRANS: +msgid "50 cents" +msgstr "" -#: js/MeterBlocks.js:758 -msgid "The On-strong-beat block lets you specify actions to take on specified beats." +#: js/blocks/PitchBlocks.js:1102 +#.TRANS: El bloque de transposición de semitono desplazará los pasos contenidos dentro de los bloques de notas hacia arriba (o hacia abajo) medio pasos. +msgid "The Semi-tone transposition block will shift the pitches contained inside Note blocks up (or down) by half steps." msgstr "" -#: js/MeterBlocks.js:769 -msgid "beat" -msgstr "p’ullpuqiy" +#: js/blocks/PitchBlocks.js:1104 +#.TRANS: En el ejemplo que se muestra arriba, sol se desplaza hasta sol#. +msgid "In the example shown above, sol is shifted up to sol#." +msgstr "wichaypi qhawachisqapi hina, solqa solkama purin" -#: js/MeterBlocks.js:813 -msgid "on every beat do" -msgstr "en cada latodo hacer" +#: js/blocks/PitchBlocks.js:1110 +#.TRANS: adjust the amount of shift (up or down) of a pitch +#.TRANS: transposición semitono +msgid "semi-tone transpose" +msgstr "kuskan kunka Haywapuynin" -#: js/MeterBlocks.js:821 -msgid "The On-every-beat block lets you specify actions to take on every beat." +#: js/blocks/PitchBlocks.js:1143 +#.TRANS: El bloque transponer por razón cambiará los tonos contenidos dentro de los bloques de notas hacia arriba (o hacia abajo) en una proporción +msgid "The Transpose by Ratio block will shift the pitches contained inside Note blocks up (or down) by a ratio" msgstr "" -#: js/MeterBlocks.js:874 -msgid "on every note do" -msgstr "en cada nota hacer" - -#: js/MeterBlocks.js:882 -msgid "The On-every-note block lets you specify actions to take on every note." +#: js/blocks/PitchBlocks.js:1149 +#.TRANS: adjust the amount of shift (up or down) of a pitch +#.TRANS: transponer por razón +msgid "transpose by ratio" msgstr "" -#: js/MeterBlocks.js:928 -#: js/MeterBlocks.js:999 -#.TRANS: sets tempo by defining a beat and beats per minute -msgid "master beats per minute" -msgstr "minutupi p’ullpuqiy hap’iy" +#: js/blocks/PitchBlocks.js:1232 +#.TRANS: down sixth means the note is five scale degrees below current note +#.TRANS: sexto abajo +msgid "down sixth" +msgstr "uraypi suqta pata" -#: js/MeterBlocks.js:952 -#: js/MeterBlocks.js:1078 -#: js/MeterBlocks.js:1135 -msgid "bpm" -msgstr "bmp" +#: js/blocks/PitchBlocks.js:1251 +#.TRANS: down third means the note is two scale degrees below current note +#.TRANS: tercero abajo +msgid "down third" +msgstr "uraypi kimsa pata" -#: js/MeterBlocks.js:952 -#: js/MeterBlocks.js:1078 -#: js/MeterBlocks.js:1135 -msgid "beat value" -msgstr "p’ullpuqiypa kaqnin" +#: js/blocks/PitchBlocks.js:1270 +#.TRANS: seventh means the note is the six scale degrees above current note +#.TRANS: séptimo +msgid "seventh" +msgstr "qanchis pata" -#: js/MeterBlocks.js:1024 -#: js/MeterBlocks.js:1167 -#: js/MeterBlocks.js:1241 -msgid "Beats per minute must be > 30." -msgstr "minutupi p’ullpuqiyniqa 30 kurakmi kanan" +#: js/blocks/PitchBlocks.js:1289 +#.TRANS: sixth means the note is the five scale degrees above current note +#.TRANS: sexto +msgid "sixth" +msgstr "suqta pata" -#: js/MeterBlocks.js:1027 -#: js/MeterBlocks.js:1170 -#: js/MeterBlocks.js:1244 -msgid "Maximum beats per minute is 1000." -msgstr " minutupi p’ullpuqiyniqa may tukupunankamaqa waranqan (1000) kanan" +#: js/blocks/PitchBlocks.js:1308 +#.TRANS: fifth means the note is the four scale degrees above current note +#.TRANS: quinto +msgid "fifth" +msgstr "phichqa pata" -#: js/MeterBlocks.js:1068 -msgid "The Beats per minute block sets the number of 1/4 notes per minute." +#: js/blocks/PitchBlocks.js:1328 +#.TRANS: fourth means the note is three scale degrees above current note +#.TRANS: cuarto +msgid "fourth" +msgstr "tawa pata" + +#: js/blocks/PitchBlocks.js:1347 +#.TRANS: third means the note is two scale degrees above current note +#.TRANS: tercio +msgid "third" +msgstr "kimsa pata" + +#: js/blocks/PitchBlocks.js:1366 +#.TRANS: second means the note is one scale degree above current note +#.TRANS: segundo +msgid "second" +msgstr "iskay pata" + +#: js/blocks/PitchBlocks.js:1407 +#.TRANS: El bloque Transposición escalar desplazará los tonos contenidos dentro de los bloques de notas hacia arriba (o hacia abajo) de la escala. +msgid "The Scalar transposition block will shift the pitches contained inside Note blocks up (or down) the scale." msgstr "" -#: js/MeterBlocks.js:1279 -#.TRANS: anacrusis -msgid "pickup" -msgstr "pallay" +#: js/blocks/PitchBlocks.js:1409 +#.TRANS: En el ejemplo que se muestra arriba, el sol se desplaza hacia arriba a la. +msgid "In the example shown above, sol is shifted up to la." +msgstr "En el ejemplo que se muestra arriba, el sol se desplaza hacia arriba a la." -#: js/MeterBlocks.js:1367 -msgid "number of beats" -msgstr "p’ullpuqiypa yupanan" +#: js/blocks/PitchBlocks.js:1416 +#.TRANS: adjust the amount of shift (up or down) of a pitch by musical scale (scalar) steps +#.TRANS: transposición escalar +msgid "scalar transpose" +msgstr "sayayninta tupachiy haywapuynin" -#: js/DictBlocks.js:77 -msgid "show dictionary" +#: js/blocks/PitchBlocks.js:1451 +#.TRANS: El bloque Accidental se utiliza para crear objetos punzantes y pisos. +msgid "The Accidental block is used to create sharps and flats" +msgstr "Yanapaqnin chiqasqa chhukuna hinallataq saruna imakunapas paqarichiy llamk’anam" + +#: js/blocks/PitchBlocks.js:1458 +#.TRANS: An accidental is a modification to a pitch, e.g., sharp or flat. +#.TRANS: anular accidental +msgid "accidental override" +msgstr "" + +#: js/blocks/PitchBlocks.js:1581 +#.TRANS: El bloque Hertz (en combinación con un bloque numérico) reproducirá un sonido a la frecuencia especificada. +msgid "The Hertz block (in combination with a Number block) will play a sound at the specified frequency." msgstr "" -#: js/DictBlocks.js:129 -msgid "The Dictionary block returns a dictionary." +#: js/blocks/PitchBlocks.js:1671 +#.TRANS: El bloque de número de tono reproducirá un tono asociado por su número, p. 0 para C y 7 para G. +msgid "The Pitch Number block will play a pitch associated by its number, e.g. 0 for C and 7 for G." +msgstr "" + +#: js/blocks/PitchBlocks.js:1703 +#: js/blocks/PitchBlocks.js:1745 +#.TRANS: a numeric mapping of the notes in an octave based on the musical mode +#.TRANS: a numeric mapping of the notes in an octave based on the musical mode +#.TRANS: nth tono modal +msgid "nth modal pitch" +msgstr "nth tono modal" + +#: js/blocks/PitchBlocks.js:1706 +#.TRANS: Nth Modal Pitch toma el patrón de tonos en semitonos para un modo y hace que cada punto sea un grado del modo, +msgid "n^th Modal Pitch takes the pattern of pitches in semitones for a mode and makes each point a degree of the mode," msgstr "" -#: js/DictBlocks.js:197 -#: js/DictBlocks.js:339 -msgid "The Get-dict block returns a value in the dictionary for a specified key." +#: js/blocks/PitchBlocks.js:1708 +#.TRANS: comenzando desde 1 e independientemente del marco tonal (es decir, no siempre 8 notas en la octava) +msgid "starting from 1 and regardless of tonal framework (i.e. not always 8 notes in the octave)" msgstr "" -#: js/DictBlocks.js:212 -#: js/DictBlocks.js:354 -#.TRANS: retrieve a value from the dictionary with a given key -msgid "get value" +#: js/blocks/PitchBlocks.js:1749 +#.TRANS: Nth modal tono un número como entrada como el nth grado para el modo dado. 0 es la primera posición, 1 es la segunda, -1 es la nota anterior a la primera, etc. +msgid "N^th Modal Pitch takes a number as an input as the n^th degree for the given mode. 0 is the first position, 1 is the second, -1 is the note before the first etc." msgstr "" -#: js/DictBlocks.js:215 -#: js/DictBlocks.js:216 -#: js/DictBlocks.js:289 -#: js/DictBlocks.js:290 -#: js/DictBlocks.js:357 -#: js/DictBlocks.js:430 -#: js/DictBlocks.js:431 -msgid "key2" +#: js/blocks/PitchBlocks.js:1751 +#.TRANS: Los tonos cambian según el modo especificado sin necesidad de grafías. +msgid "The pitches change according to the mode specified without any need for respellings." msgstr "" -#: js/DictBlocks.js:271 -#: js/DictBlocks.js:411 -msgid "The Set-dict block sets a value in the dictionary for a specified key." +#: js/blocks/PitchBlocks.js:1790 +#.TRANS: El grado de escala es una convención común en la música. El grado de ecala ofrece siete posiciones posibles en la escala (1-7) y puede modificarse mediante alteraciones. +msgid "Scale Degree is a common convention in music. Scale Degree offers seven possible positions in the scale (1-7) and can be modified via accidentals." msgstr "" -#: js/DictBlocks.js:286 -#: js/DictBlocks.js:427 -#.TRANS: set a value in the dictionary for a given key -msgid "set value" +#: js/blocks/PitchBlocks.js:1792 +#.TRANS: El grado de la escala de 1 es siempre el primer tono de una escala determinada, independientemente de la octava. +msgid "Scale Degree 1 is always the first pitch in a given scale, regardless of octave." msgstr "" -#: js/ExtrasBlocks.js:33 -msgid "fraction" -msgstr "phatmi" - -#: js/ExtrasBlocks.js:36 -msgid "Convert a float to a fraction" -msgstr "convertir un número racional en fracción"" - -#: js/ExtrasBlocks.js:93 -msgid "save as ABC" -msgstr "ABC hinaman waqaychay" - -#: js/ExtrasBlocks.js:96 -#: js/ExtrasBlocks.js:132 -#: js/ExtrasBlocks.js:168 -msgid "title" -msgstr "umalliq suti" - -#: js/ExtrasBlocks.js:129 -msgid "save as Lilypond" -msgstr "Lilypondtahina waqaychay" - -#: js/ExtrasBlocks.js:165 -msgid "save as SVG" -msgstr "SVGtahina waqaychay" - -#: js/ExtrasBlocks.js:216 -msgid "no background" -msgstr "Mana imayuq" +#: js/blocks/PitchBlocks.js:1814 +#.TRANS: step some number of notes in current musical scale +#.TRANS: paso escalar +msgid "scalar step" +msgstr "wichayman challqa" -#: js/ExtrasBlocks.js:219 -msgid "The No background block eliminates the background from the saved SVG output." +#: js/blocks/PitchBlocks.js:1819 +#.TRANS: El bloque Paso escalar (en combinación con un bloque numérico) reproducirá el siguiente tono en una escala, +msgid "The Scalar Step block (in combination with a Number block) will play the next pitch in a scale," msgstr "" -#: js/ExtrasBlocks.js:247 -msgid "show blocks" -msgstr " chiqaskunata qhawachiy" +#: js/blocks/PitchBlocks.js:1821 +#.TRANS: por ejemplo, si la última nota tocada fue sol, el paso escalar 1 tocará la. +msgid "eg if the last note played was sol, Scalar Step 1 will play la." +msgstr "" -#: js/ExtrasBlocks.js:249 -msgid "The Show blocks block shows the blocks." -msgstr "El bloque mostrar bloques muestra los bloques." +#: js/blocks/PitchBlocks.js:1857 +#.TRANS: The Pitch block specifies the pitch name and octave of a note that together determine the frequency of the note. +msgid "The Pitch block specifies the pitch name and octave of a note that together determine the frequency of the note." +msgstr "" -#: js/ExtrasBlocks.js:274 -msgid "hide blocks" -msgstr "chiqaskunata pakay" +#: js/blocks/ProgramBlocks.js:33 +#.TRANS: El bloque Cargar-pila-en-app carga la pila en una página web. +msgid "The Load-heap-from-app block loads the heap from a web page." +msgstr "" -#: js/ExtrasBlocks.js:276 -msgid "The Hide blocks block hides the blocks." -msgstr "El bloque ocultar esconde los bloques." +#: js/blocks/ProgramBlocks.js:44 +#.TRANS: load the heap contents from a URL +#.TRANS: cargar pila desde aplicación +msgid "load heap from App" +msgstr "cargar pila desde aplicación" -#: js/ExtrasBlocks.js:305 -#: js/ExtrasBlocks.js:335 -msgid "The Space block is used to add space between blocks." -msgstr " Qaylla chiqasqa chiqaspurakuna qayllayuq kanankupaq yapaq yapanapaq" +#: js/blocks/ProgramBlocks.js:95 +#.TRANS: Error de análisis de datos JSON. +msgid "Error parsing JSON data:" +msgstr "Error de análisis de datos JSON." -#: js/ExtrasBlocks.js:373 -msgid "wait" -msgstr "suyay" +#: js/blocks/ProgramBlocks.js:100 +#.TRANS: 404: Página no encontrada. +msgid "404: Page not found" +msgstr "mana tarisqa p’anqa" -#: js/ExtrasBlocks.js:376 -msgid "The Wait block pauses the program for a specified number of seconds." -msgstr "" +#: js/blocks/ProgramBlocks.js:133 +#.TRANS: El bloque Guardar-pila-en-app guarda la pila en una página web. +msgid "The Save-heap-to-app block saves the heap to a web page." +msgstr "El bloque Guardar-pila-en-app guarda la pila en una página web." -#: js/ExtrasBlocks.js:430 -#: plugins/facebook.rtp:30 -msgid "comment" -msgstr "rimariy" +#: js/blocks/ProgramBlocks.js:144 +#.TRANS: save the heap contents to a URL +#.TRANS: guardar pila a aplicación +msgid "save heap to App" +msgstr "Llapanta kay qutupi waqaychana" -#: js/ExtrasBlocks.js:466 -msgid "print" -msgstr "ñit'iy" +#: js/blocks/ProgramBlocks.js:189 +#.TRANS: Pilas tortuga no contiene un montón válida para +msgid "Cannot find a valid heap for" +msgstr "Manam llapan qutupi tarikunchu" -#: js/ExtrasBlocks.js:473 -msgid "The Print block displays text at the top of the screen." -msgstr "Nit’iy chiqasqa pantallapa hawanpi qillqata qhawachikun" +#: js/blocks/ProgramBlocks.js:206 +#.TRANS: El bloque Cargar pila carga la pila de un archivo. +msgid "The Load-heap block loads the heap from a file." +msgstr "El bloque Cargar pila carga la pila de un archivo." -#: js/ExtrasBlocks.js:579 -msgid "display grid" -msgstr "mostrar cuadrícula" +#: js/blocks/ProgramBlocks.js:217 +#.TRANS: load the heap from a file +#.TRANS: cargar pila +msgid "load heap" +msgstr "Qututa apachiy" -#: js/ExtrasBlocks.js:584 -msgid "The Display Grid Block changes the grid type" -msgstr "Mostrar el bloque de cuadrícula cambia el tipo de cuadrícula" +#: js/blocks/ProgramBlocks.js:270 +#.TRANS: El archivo seleccionado no contiene un pila válida. +msgid "The file you selected does not contain a valid heap." +msgstr "El archivo seleccionado no contiene un pila válida." -#: js/ExtrasBlocks.js:686 -#: js/ExtrasBlocks.js:705 -#: js/ExtrasBlocks.js:728 -#: js/ExtrasBlocks.js:751 -#: js/ExtrasBlocks.js:769 -#: js/ExtrasBlocks.js:788 -#: js/ExtrasBlocks.js:807 -#: js/ExtrasBlocks.js:826 -msgid "unknown" -msgstr "Mana riqsisqa" +#: js/blocks/ProgramBlocks.js:275 +#.TRANS: El bloque Pila de carga necesita un bloque de archivo de carga. +msgid "The loadHeap block needs a loadFile block." +msgstr "El bloque Pila de carga necesita un bloque de archivo de carga." -#: js/SensorsBlocks.js:36 -msgid "The Input block prompts for keyboard input." +#: js/blocks/ProgramBlocks.js:291 +#.TRANS: El bloque fijar pila carga la pila. +msgid "The Set-heap block loads the heap." msgstr "" -#: js/SensorsBlocks.js:46 -msgid "input" -msgstr "haykuna" +#: js/blocks/ProgramBlocks.js:340 +#.TRANS: El bloque que seleccionó no contiene una pila válido. +msgid "The block you selected does not contain a valid heap." +msgstr "" -#: js/SensorsBlocks.js:64 -msgid "Input a value" -msgstr "ingrese un valor" +#: js/blocks/ProgramBlocks.js:343 +#.TRANS: El bloque fija pila necesita una pila. +msgid "The Set heap block needs a heap." +msgstr "" -#: js/SensorsBlocks.js:126 -msgid "input value" -msgstr "chaninchaqta haykuchiy" +#: js/blocks/ProgramBlocks.js:360 +#.TRANS: El bloque Carga-diccionario carga un diccionario desde un archivo. +msgid "The Load-dictionary block loads a dictionary from a file." +msgstr "" -#: js/SensorsBlocks.js:131 -msgid "The Input-value block stores the input." +#: js/blocks/ProgramBlocks.js:372 +#.TRANS: load a dictionary from a file +#.TRANS: carga diccionario +msgid "load dictionary" msgstr "" -#: js/SensorsBlocks.js:238 -msgid "loudness" -msgstr "p’ulin" +#: js/blocks/ProgramBlocks.js:390 +#: js/blocks/ProgramBlocks.js:658 +#: js/blocks/ToneBlocks.js:1025 +#.TRANS: archivo +msgid "file" +msgstr "" -#: js/SensorsBlocks.js:245 -msgid "The Loudness block returns the volume detected by the microphone." +#: js/blocks/ProgramBlocks.js:444 +#.TRANS: El archivo que seleccionó no contiene un diccionario válido. +msgid "The file you selected does not contain a valid dictionary." msgstr "" -#: js/SensorsBlocks.js:300 -msgid "click" -msgstr "liq" +#: js/blocks/ProgramBlocks.js:449 +#.TRANS: El bloque de diccionario de carga necesita un bloque de archivo +msgid "The load dictionary block needs a load file block." +msgstr "" -#: js/SensorsBlocks.js:306 -msgid "The Click block triggers an event if a mouse has been clicked." -msgstr "El bloque Click activa un evento si se ha hecho clic en un mouse." +#: js/blocks/ProgramBlocks.js:466 +#.TRANS: El bloque fijar diccionario carga un diccionario. +msgid "The Set-dictionary block loads a dictionary." +msgstr "" -#: js/SensorsBlocks.js:313 -msgid "The Click block triggers an event if a turtle has been clicked." +#: js/blocks/ProgramBlocks.js:477 +#.TRANS: load a dictionary from a JSON +#.TRANS: fijar diccionario +msgid "set dictionary" msgstr "" -#: js/SensorsBlocks.js:342 -msgid "cursor over" -msgstr "cursor sobre" +#: js/blocks/ProgramBlocks.js:546 +#.TRANS: El bloque que seleccionó no contiene un diccionario válido. +msgid "The block you selected does not contain a valid dictionary." +msgstr "" -#: js/SensorsBlocks.js:387 -msgid "cursor out" -msgstr "cursor fuera" +#: js/blocks/ProgramBlocks.js:550 +#.TRANS: El bloque Fijar dictionario necesita un diccionario. +msgid "The set dictionary block needs a dictionary." +msgstr "" -#: js/SensorsBlocks.js:433 -msgid "cursor button down" -msgstr "el botón presionado" " +#: js/blocks/ProgramBlocks.js:567 +#.TRANS: El bloque Guardar pila guarda la pila en un archivo. +msgid "The Save-heap block saves the heap to a file." +msgstr "El bloque Guardar pila guarda la pila en un archivo." -#: js/SensorsBlocks.js:477 -msgid "cursor button up" -msgstr "el botón arriba" +#: js/blocks/ProgramBlocks.js:578 +#.TRANS: save the heap to a file +#.TRANS: guardar pila +msgid "save heap" +msgstr "Qutupi waqaychay" -#: js/SensorsBlocks.js:638 -msgid "The Get red block returns the red component of the pixel under the mouse." +#: js/blocks/ProgramBlocks.js:629 +#.TRANS: El bloque Guardar diccionario guarda el diccionario en un archivo +msgid "The Save-dictionary block saves a dictionary to a file." msgstr "" -#: js/SensorsBlocks.js:644 -msgid "The Get red block returns the red component of the pixel under the turtle." +#: js/blocks/ProgramBlocks.js:640 +#.TRANS: save a dictionary to a file +#.TRANS: guardar diccionario +msgid "save dictionary" msgstr "" -#: js/SensorsBlocks.js:685 -#: plugins/rodi.rtp:216 -msgid "pixel color" -msgstr " llimp’iy k’anchaypa phatmin" - -#: js/SensorsBlocks.js:690 -msgid "The Get pixel block returns the color of the pixel under the mouse." -msgstr "" +#: js/blocks/ProgramBlocks.js:720 +#.TRANS: El bloque abrir la paleta abre una paleta +msgid "The Open palette block opens a palette." +msgstr "El bloque abrir la paleta abre una paleta"" -#: js/SensorsBlocks.js:696 -msgid "The Get pixel block returns the color of the pixel under the turtle." -msgstr "" +#: js/blocks/ProgramBlocks.js:727 +#.TRANS: abrir la paleta +msgid "open palette" +msgstr "llimp’ipa taqinta kichay" -#: js/SensorsBlocks.js:758 -msgid "time" -msgstr "pacha" +#: js/blocks/ProgramBlocks.js:785 +#.TRANS: El bloque eliminar bloque elimina un bloque +msgid "The Delete block block removes a block." +msgstr "El bloque eliminar bloque elimina un bloque" -#: js/SensorsBlocks.js:804 -msgid "cursor y" -msgstr "y t’uqpina" +#: js/blocks/ProgramBlocks.js:797 +#.TRANS: Move this block to the trash. +#.TRANS: eliminar bloque +msgid "delete block" +msgstr "kay chiqasta chanqapuy" -#: js/SensorsBlocks.js:809 -msgid "The Cursor Y block returns the vertical position of the mouse." -msgstr "" +#: js/blocks/ProgramBlocks.js:861 +#.TRANS: El bloque mover bloque mueve un bloque. +msgid "The Move block block moves a block." +msgstr "El bloque mover bloque mueve un bloque." -#: js/SensorsBlocks.js:845 -msgid "cursor x" -msgstr "t’uqpina" +#: js/blocks/ProgramBlocks.js:869 +#.TRANS: Move the position of a block on the screen. +#.TRANS: mover bloque +msgid "move block" +msgstr "kay chiqasta kuyuchiy" -#: js/SensorsBlocks.js:850 -msgid "The Cursor X block returns the horizontal position of the mouse." -msgstr "" +#: js/blocks/ProgramBlocks.js:881 +#: js/blocks/ProgramBlocks.js:1048 +#.TRANS: número de bloque +msgid "block number" +msgstr "kay chiqaspa payupaynin" -#: js/SensorsBlocks.js:886 -msgid "mouse button" -msgstr "Huk’uchapa ñup’unan" +#: js/blocks/ProgramBlocks.js:935 +#.TRANS: Run program beginning at this block. +#.TRANS: ejecutar bloque +msgid "run block" +msgstr "kay chiqasta ruray" -#: js/SensorsBlocks.js:888 -msgid "The Mouse-button block returns True if the mouse button is pressed." -msgstr "" +#: js/blocks/ProgramBlocks.js:1025 +#.TRANS: El bloque connectar conecta dos bloques +msgid "The Dock block block connections two blocks." +msgstr "El bloque connectar conecta dos bloques" -#: js/SensorsBlocks.js:934 -msgid "to ASCII" -msgstr "ASCIIman" +#: js/blocks/ProgramBlocks.js:1036 +#.TRANS: We can connect a block to another block. +#.TRANS: connectar block +msgid "connect blocks" +msgstr "chiqasta hap’ichiy" -#: js/SensorsBlocks.js:938 -msgid "The To ASCII block converts numbers to letters." -msgstr "El bloque a ASCII convierte números a letras." +#: js/blocks/ProgramBlocks.js:1048 +#.TRANS: bloque de destino +msgid "target block" +msgstr "mayman chiqas riq " -#: js/SensorsBlocks.js:1005 -msgid "The Keyboard block returns computer keyboard input." -msgstr "El bloque teclado devuelve entrada de teclado." +#: js/blocks/ProgramBlocks.js:1048 +#.TRANS: número de conexion +msgid "connection number" +msgstr "hap’ichiypa yupaynin"" -#: js/IntervalsActions.js:216 -msgid "Adding missing pitch number 0." -msgstr "Agregar el número de tono que falta 0." +#: js/blocks/ProgramBlocks.js:1140 +#.TRANS: El bloque crear bloque crea un bloque. +msgid "The Make block block creates a new block." +msgstr "El bloque crear bloque crea un bloque." -#: js/IntervalsActions.js:224 -msgid "Ignoring pitch numbers less than zero or greater than eleven." -msgstr "" +#: js/blocks/ProgramBlocks.js:1152 +#.TRANS: Create a new block +#.TRANS: crear bloque +msgid "make block" +msgstr " chiqasta paqarichiy" -#: js/IntervalsActions.js:230 -msgid "Ignoring duplicate pitch numbers." -msgstr "Ignorando números de tono duplicados." +#: js/blocks/ProgramBlocks.js:1285 +#.TRANS: No se puede encontrar el bloque. +msgid "Cannot find block" +msgstr "Manam chiqas tarikunchu" -#: js/PitchActions.js:88 -msgid "The Scalar Step Block must be used inside of a Note Block." +#: js/blocks/ProgramBlocks.js:1304 +#: js/blocks/ProgramBlocks.js:1313 +#.TRANS: Advertencia: el tipo de argumento de bloque no coincide +msgid "Warning: block argument type mismatch" msgstr "" -#: js/PitchActions.js:107 -msgid "The Scalar Step Block must be preceded by a Pitch Block." +#: js/blocks/ProgramBlocks.js:1347 +#.TRANS: El bloque Abrir proyecto se utiliza para abrir un proyecto desde una página web. +msgid "The Open project block is used to open a project from a web page." msgstr "" -#: js/DrumActions.js:231 -msgid "Noise Block: Did you mean to use a Note block?" -msgstr "Bloque de ruido: Quizás quiso decir utilizar un bloque de nota?" +#: js/blocks/ProgramBlocks.js:1357 +#.TRANS: abierto proyecto +msgid "open project" +msgstr "rurana kichasqa" -#: js/MeterActions.js:101 -#: js/MeterActions.js:139 -msgid "beats per minute must be greater than" -msgstr "minutupi p’ullpuqiyqa kurak kanan" +#: js/blocks/ProgramBlocks.js:1410 +#.TRANS: Por favor introduzca un URL válido. +msgid "Please enter a valid URL." +msgstr "Ama hina waliq URLta haykuchiy" -#: js/MeterActions.js:111 -#: js/MeterActions.js:149 -msgid "maximum" -msgstr "tukupunankama" +#: js/blocks/ToneBlocks.js:34 +#.TRANS: oscilador +msgid "oscillator" +msgstr "maymikuynin" -#: js/MeterActions.js:117 -#: js/MeterActions.js:155 -msgid "beats per minute is" -msgstr "minutupi p’ullpuqiyninqa" +#: js/blocks/ToneBlocks.js:42 +#: js/blocks/WidgetBlocks.js:179 +#: js/widgets/timbre.js:1558 +#: js/widgets/timbre.js:1808 +#.TRANS: there are different types (sine, triangle, square...) of oscillators. +#.TRANS: type of filter, e.g., lowpass, highpass, etc. +#.TRANS: typo +msgid "type" +msgstr "typo" + +#: js/blocks/ToneBlocks.js:44 +#: js/widgets/timbre.js:1562 +#.TRANS: Partials refers to the number of sine waves combined into the sound. +#.TRANS: parciales +msgid "partials" +msgstr "chawakuna" + +#: js/blocks/ToneBlocks.js:76 +#.TRANS: Está agregando varios bloques de oscilador. +msgid "You are adding multiple oscillator blocks." +msgstr "maymikuqmanmi achka chiqasta yapachkan" + +#: js/blocks/ToneBlocks.js:144 +#: js/widgets/timbre.js:1225 +#.TRANS: a duo synthesizer combines a synth with a sequencer +#.TRANS: duo sintetizador +msgid "duo synth" +msgstr "iskayman pisiyachiqnin" + +#: js/blocks/ToneBlocks.js:149 +#.TRANS: El bloque Sintetizador Duo es un modulador de frecuencia doble usado para definir un timbre. +msgid "The Duo synth block is a duo-frequency modulator used to define a timbre." +msgstr "" -#: js/ToneActions.js:134 -msgid "Vibrato intensity must be between 1 and 100." -msgstr " khatataypa kallpanqa huk hinallataq pachakpi kachkanan" +#: js/blocks/ToneBlocks.js:157 +#: js/widgets/timbre.js:1476 +#.TRANS: velocidad del vibrato +msgid "vibrato rate" +msgstr "vibratupa usqhachiq" -#: js/ToneActions.js:139 -msgid "Vibrato rate must be greater than 0." -msgstr " khatataypa utqayninqa ch’usaqpa kurakninmi kanan" +#: js/blocks/ToneBlocks.js:157 +#.TRANS: intensidad de vibrato +msgid "vibrato intensity" +msgstr "vibratupa kallpachaynin" -#: js/ToneActions.js:192 -#: js/ToneActions.js:265 -#.TRANS: Depth is the intesity of the tremolo or chorus effect. -msgid "Depth is out of range." -msgstr "ukhunchasqa chaninninqa manam t’aqanpichu kachkan" +#: js/blocks/ToneBlocks.js:185 +#: js/widgets/timbre.js:1221 +#.TRANS: AM (amplitude modulation) synthesizer +#.TRANS: AM sintetizador +msgid "AM synth" +msgstr "AM pisiyachiqnin" -#: js/ToneActions.js:301 -msgid "Distortion must be from 0 to 100." -msgstr "q’iwisqapa chaninninqa ch’usaqmanta pachakkama kanan" +#: js/blocks/ToneBlocks.js:189 +#.TRANS: El bloque Sintetizador AM es un modulador de amplitud usado para definir un timbre. +msgid "The AM synth block is an amplitude modulator used to define a timbre." +msgstr "" -#: js/ToneActions.js:332 -#.TRANS: partials components in a harmonic series -msgid "Partial must be greater than or equal to 0." -msgstr "chawaqa ch’usaqamanta kurakpas kikinpas kanan" +#: js/blocks/ToneBlocks.js:224 +#: js/widgets/timbre.js:1223 +#.TRANS: FM (frequency modulation) synthesizer +#.TRANS: FM sintetizador +msgid "FM synth" +msgstr "FM pisiyachiqnin " -#: js/ToneActions.js:378 -#: js/ToneActions.js:417 -#: js/ToneActions.js:456 -#: js/timbre.js:782 -msgid "Unable to use synth due to existing oscillator" -msgstr "Manam pisiyachiqta hap’ikunmanchu imaraykuchus maymikuq hark’asqa kaptin" +#: js/blocks/ToneBlocks.js:228 +#.TRANS: El bloque Sintetizador de FM es un modulador de frecuencia utilizado para definir un timbre. +msgid "The FM synth block is a frequency modulator used to define a timbre." +msgstr "" -#: js/ToneActions.js:388 -#: js/ToneActions.js:427 -msgid "The input cannot be negative." -msgstr "haykunanqa manam manaqa kanmanchu" +#: js/blocks/ToneBlocks.js:262 +#.TRANS: parcial +msgid "partial" +msgstr "chawa" -#: js/DictActions.js:75 -#: js/DictActions.js:153 -#: js/DictActions.js:188 -msgid "font" +#: js/blocks/ToneBlocks.js:265 +#.TRANS: El bloque Parcial se utiliza para especificar un peso para un armónico parcial específico. +msgid "The Partial block is used to specify a weight for a specific partial harmonic." msgstr "" -#: js/musicutils.js:363 -#: js/musicutils.js:471 -#: js/pitchdrummatrix.js:151 -#: js/musickeyboard.js:2563 -msgid "rest" -msgstr "samay" +#: js/blocks/ToneBlocks.js:284 +#.TRANS: partials are weighted components in a harmonic series +#.TRANS: El peso parcial debe estar entre 0 y 1. +msgid "Partial weight must be between 0 and 1." +msgstr "chawapa llasayninqa chúsaqpi hinallataq huk chawpipin kanan" -#: js/musicutils.js:565 -#.TRANS: ordinal number. Please keep exactly one space between each number. -msgid "1st 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th" -msgstr "1ñ (huk ñiqi) 2ñ (iskay ñiqi) 3ñ (kimsa ñiqi) 4ñ(kimsa ñiqi) 5ñ (phisqa ñiqi)6ñ (suqta ñiqi) 7ñ qanchik ñiqi) 8ñ (pusaq ñiqi)9ñ (isqun ñiqi) 10ñ (chunka ñiqi) 11ñ (chunka hukniyuq ñuqi) 12ñ (chunka iskayniyuq ñiqi" +#: js/blocks/ToneBlocks.js:297 +#.TRANS: partials are weighted components in a harmonic series +#.TRANS: El bloque Parcial debe usarse dentro de un bloque de parciales ponderados. +msgid "Partial block should be used inside of a Weighted-partials block." +msgstr "" -#: js/musicutils.js:629 -#: js/musicutils.js:812 -#: js/musicutils.js:911 -#.TRANS: augmented is a music term related to intervals -msgid "augmented" -msgstr "yapaspa" +#: js/blocks/ToneBlocks.js:325 +#.TRANS: partials are weighted components in a harmonic series +#.TRANS: parcial ponderada +msgid "weighted partials" +msgstr "chawa chaninchasqa" -#: js/musicutils.js:631 -#: js/musicutils.js:813 -#: js/musicutils.js:910 -#.TRANS: diminished is a music term related to intervals and mode -msgid "diminished" -msgstr "pisiyachiy" +#: js/blocks/ToneBlocks.js:383 +#.TRANS: El bloque Armónicos agregará armónicos a las notas contenidas. +msgid "The Harmonic block will add harmonics to the contained notes." +msgstr "" -#: js/musicutils.js:639 -#.TRANS: twelve semi-tone scale for music -msgid "chromatic" -msgstr "llimp’I sapa" +#: js/blocks/ToneBlocks.js:390 +#.TRANS: A harmonic is an overtone. +#.TRANS: armónico +msgid "harmonic" +msgstr "armónico" -#: js/musicutils.js:640 -msgid "algerian" -msgstr "alhiriyan" +#: js/blocks/ToneBlocks.js:431 +#.TRANS: El bloque Distorsión agrega distorsión al tono. +msgid "The Distortion block adds distortion to the pitch." +msgstr "q’iwiy chiqasqa kunkaman q’iwiyninta yapam" -#: js/musicutils.js:641 -msgid "spanish" -msgstr "ispañul" +#: js/blocks/ToneBlocks.js:438 +#: js/widgets/timbre.js:2100 +#.TRANS: distortion is an alteration in the sound +#.TRANS: distorsión +msgid "distortion" +msgstr "q’íwiy" -#: js/musicutils.js:643 -#.TRANS: modal scale in music -msgid "octatonic" -msgstr "" +#: js/blocks/ToneBlocks.js:487 +#.TRANS: El bloque Tremolo añade un efecto de vacilación. +msgid "The Tremolo block adds a wavering effect." +msgstr "Thalay chiqasqa iskayananpaq yapaykun" -#: js/musicutils.js:645 -#.TRANS: harmonic major scale in music -msgid "harmonic major" -msgstr "kuraq muyurichiq" +#: js/blocks/ToneBlocks.js:495 +#: js/widgets/timbre.js:2092 +#.TRANS: a wavering effect in a musical tone +#.TRANS: tremolo +msgid "tremolo" +msgstr "Thalay" -#: js/musicutils.js:647 -#.TRANS: natural minor scales in music -msgid "natural minor" -msgstr "sullk’a kikin" +#: js/blocks/ToneBlocks.js:500 +#: js/blocks/ToneBlocks.js:569 +#: js/blocks/ToneBlocks.js:630 +#: js/blocks/ToneBlocks.js:689 +#: js/widgets/timbre.js:2134 +#: js/widgets/timbre.js:2222 +#: js/widgets/timbre.js:2317 +#: js/widgets/timbre.js:2419 +#.TRANS: rate at which tremolo wavers +#.TRANS: velocidad +msgid "rate" +msgstr "utqay" -#: js/musicutils.js:649 -#.TRANS: harmonic minor scale in music -msgid "harmonic minor" -msgstr "Sullk’a muyurichiq" +#: js/blocks/ToneBlocks.js:502 +#: js/blocks/ToneBlocks.js:630 +#: js/widgets/timbre.js:2137 +#: js/widgets/timbre.js:2328 +#.TRANS: amplitude of tremolo waver +#.TRANS: intensidad +msgid "depth" +msgstr "kallpa" -#: js/musicutils.js:651 -#.TRANS: melodic minor scale in music -msgid "melodic minor" -msgstr "sullk’a sumaq kunka " +#: js/blocks/ToneBlocks.js:559 +#.TRANS: El bloque Phaser añade un sonido de barrido. +msgid "The Phaser block adds a sweeping sound." +msgstr "Phaser chiqasqa pichana kunkatan yapan" -#: js/musicutils.js:655 -#.TRANS: modal scale for music -msgid "dorian" -msgstr "" +#: js/blocks/ToneBlocks.js:566 +#: js/widgets/timbre.js:2098 +#.TRANS: alter the phase of the sound +#.TRANS: phaser +msgid "phaser" +msgstr "phaser" -#: js/musicutils.js:657 -#.TRANS: modal scale for music -msgid "phrygian" -msgstr "" +#: js/blocks/ToneBlocks.js:569 +#: js/turtleactions/IntervalsActions.js:114 +#: js/widgets/timbre.js:2422 +#.TRANS: octavas +msgid "octaves" +msgstr "pusaq patakuna" -#: js/musicutils.js:659 -#.TRANS: modal scale for music -msgid "lydian" -msgstr "" +#: js/blocks/ToneBlocks.js:569 +#: js/widgets/timbre.js:2425 +#.TRANS: frecuencia de base +msgid "base frequency" +msgstr "tiyananpi sapakuti ruranan " -#: js/musicutils.js:661 -#.TRANS: modal scale for music -msgid "mixolydian" -msgstr "" +#: js/blocks/ToneBlocks.js:619 +#.TRANS: El bloque Chorus añade un efecto chorus. +msgid "The Chorus block adds a chorus effect." +msgstr "takich’unku chiqasqa takich’unku kayninta yapan" -#: js/musicutils.js:665 -#.TRANS: modal scale for music -msgid "locrian" -msgstr "" +#: js/blocks/ToneBlocks.js:627 +#: js/widgets/timbre.js:2096 +#.TRANS: musical effect to simulate a choral sound +#.TRANS: coro +msgid "chorus" +msgstr "takich’unku" -#: js/musicutils.js:667 -#.TRANS: minor jazz scale for music -msgid "jazz minor" -msgstr "jazz menor" +#: js/blocks/ToneBlocks.js:630 +#.TRANS: retraso +msgid "delay" +msgstr "qhipay" -#: js/musicutils.js:669 -#.TRANS: bebop scale for music -msgid "bebop" -msgstr "" +#: js/blocks/ToneBlocks.js:678 +#.TRANS: El bloque Vibrato agrega una variación rápida y leve en el tono. +msgid "The Vibrato block adds a rapid, slight variation in pitch." +msgstr "Khatatay chiqasqa utqay chaninchayninta hinallataq pisi kunkanta yapan" -#: js/musicutils.js:670 -msgid "arabic" -msgstr "arábica" +#: js/blocks/ToneBlocks.js:686 +#: js/widgets/timbre.js:2094 +#.TRANS: a rapid, slight variation in pitch +#.TRANS: vibrato +msgid "vibrato" +msgstr "khatatay" -#: js/musicutils.js:671 -msgid "byzantine" -msgstr "bizantino" +#: js/blocks/ToneBlocks.js:689 +#: js/widgets/timbre.js:2221 +#.TRANS: intensidad +msgid "intensity" +msgstr "kallpa" -#: js/musicutils.js:673 -#.TRANS: musical scale for music by Verdi -msgid "enigmatic" -msgstr "mana riqsichikuq" +#: js/blocks/ToneBlocks.js:733 +#.TRANS: select synthesizer +#.TRANS: fijar synth +msgid "set synth" +msgstr "synth watay" -#: js/musicutils.js:674 -msgid "ethiopian" -msgstr "etíope" +#: js/blocks/ToneBlocks.js:804 +#.TRANS: nombre del sintetizador +msgid "synth name" +msgstr " pisiyachiqninpa sutin" -#: js/musicutils.js:676 -#.TRANS: Ethiopic scale for music -msgid "geez" +#: js/blocks/ToneBlocks.js:842 +#.TRANS: fijar instrumento predeterminado +msgid "set default instrument" msgstr "" -#: js/musicutils.js:677 -msgid "hindu" -msgstr "hindú" - -#: js/musicutils.js:678 -msgid "hungarian" -msgstr "húngaro" +#: js/blocks/ToneBlocks.js:895 +#: js/blocks/ToneBlocks.js:943 +#.TRANS: set the characteristics of a custom instrument +#.TRANS: fijar instrumento +msgid "set instrument" +msgstr "ruk’awita churana" -#: js/musicutils.js:680 -#.TRANS: minor Romanian scale for music -msgid "romanian minor" -msgstr "sullqa romanian" +#: js/blocks/ToneBlocks.js:898 +#: js/blocks/ToneBlocks.js:926 +#: js/blocks/ToneBlocks.js:932 +#.TRANS: El bloque Fijar Instrumentos selecciona una voz para el sintetizador, +msgid "The Set instrument block selects a voice for the synthesizer," +msgstr "" -#: js/musicutils.js:681 -msgid "spanish gypsy" -msgstr "ispaña guitarra" +#: js/blocks/ToneBlocks.js:900 +#: js/blocks/ToneBlocks.js:934 +#.TRANS: Por ejemplo, guitarra, piano, violín o cello +msgid "eg guitar piano violin or cello." +msgstr "kitara, piyanu, wiyulin kallamanta wiyula hina" -#: js/musicutils.js:683 -#.TRANS: musical scale for Mid-Eastern music -msgid "maqam" +#: js/blocks/ToneBlocks.js:1015 +#.TRANS: Importe un archivo de sonido para usarlo como instrumento y establezca su centro de tono. +msgid "Import a sound file to use as an instrument and set its pitch center." msgstr "" -#: js/musicutils.js:685 -#.TRANS: minor blues scale for music -msgid "minor blues" -msgstr "Sullqa anqaskuna" +#: js/blocks/ToneBlocks.js:1110 +#.TRANS: Cargue un archivo de sonido para conectarlo con el bloque de muestra. +msgid "Upload a sound file to connect with the sample block." +msgstr "" -#: js/musicutils.js:687 -#.TRANS: major blues scale for music -msgid "major blues" -msgstr "kuraq anqas" +#: js/blocks/VolumeBlocks.js:35 +#.TRANS: volumen del sintetizador +msgid "synth volume" +msgstr "volumen del sintetizador" -#: js/musicutils.js:688 -msgid "whole tone" -msgstr "tono completo" +#: js/blocks/VolumeBlocks.js:39 +#.TRANS: El bloque de volumen sintetizador devuelve el volumen actual del sintetizador actual. +msgid "The Synth volume block returns the current volume of the current synthesizer." +msgstr "" -#: js/musicutils.js:690 -#.TRANS: pentatonic is a general term that means "five note scale". This scale is typically known as "minor pentatonic" -msgid "minor pentatonic" -msgstr "pentatonic minor" +#: js/blocks/VolumeBlocks.js:105 +#.TRANS: volumen maestro +msgid "master volume" +msgstr "t’uqya kamay" -#: js/musicutils.js:692 -#.TRANS: pentatonic is a general term that means "five note scale". This scale is typically known as "major pentatonic" -msgid "major pentatonic" -msgstr "pentatonic mayor" +#: js/blocks/VolumeBlocks.js:109 +#.TRANS: El bloque volumen maestro devuelve nivel de volumen maestro. +msgid "The Master volume block returns the master volume." +msgstr "El bloque volumen maestro devuelve nivel de volumen maestro." -#: js/musicutils.js:693 -msgid "chinese" -msgstr "chino" +#: js/blocks/VolumeBlocks.js:355 +#: js/blocks/VolumeBlocks.js:524 +#.TRANS: fijar volumen del sintetizador +msgid "set synth volume" +msgstr "fijar volumen del sintetizador" -#: js/musicutils.js:694 -msgid "egyptian" -msgstr "egipcio" +#: js/blocks/VolumeBlocks.js:362 +#: js/blocks/VolumeBlocks.js:545 +#.TRANS: sintetizador +msgid "synth" +msgstr "sintetizador" -#: js/musicutils.js:696 -#.TRANS: https://en.wikipedia.org/wiki/Hirajoshi_scale NOTE: There are three different versions of this scale -msgid "hirajoshi" -msgstr "" +#: js/blocks/VolumeBlocks.js:403 +#: js/blocks/VolumeBlocks.js:577 +#: js/blocks/VolumeBlocks.js:740 +#: js/turtleactions/VolumeActions.js:173 +#.TRANS: Ajuste el volumen a 0 +msgid "Setting volume to 0." +msgstr "Ajuste el volumen a 0" -#: js/musicutils.js:697 -msgid "Japan" -msgstr "Japón" +#: js/blocks/VolumeBlocks.js:440 +#.TRANS: No se encuentra el sintetizador. +msgid "Synth not found" +msgstr "No se encuentra el sintetizador." -#: js/musicutils.js:699 -#.TRANS: https://en.wikipedia.org/wiki/In_scale and https://en.wikipedia.org/wiki/Sakura_Sakura -msgid "in" -msgstr "" +#: js/blocks/VolumeBlocks.js:494 +#.TRANS: filar volumen del tambor +msgid "set drum volume" +msgstr "filar volumen del tambor" -#: js/musicutils.js:701 -#.TRANS: https://en.wikipedia.org/wiki/Miny%C5%8D_scale -msgid "minyo" +#: js/blocks/VolumeBlocks.js:530 +#.TRANS: El bloque Ajuste volumen del sintetizador cambiará el volumen de un sintetizador particular, +msgid "The Set synth volume block will change the volume of a particular synth," msgstr "" -#: js/musicutils.js:703 -#.TRANS: Italian mathematician -msgid "fibonacci" -msgstr "" +#: js/blocks/VolumeBlocks.js:532 +#.TRANS: por ejemplo, guitarra, violín, tambor +msgid "eg guitar violin snare drum etc." +msgstr "por ejemplo, guitarra, violín, tambor" -#: js/musicutils.js:708 -#: js/musicutils.js:1106 -#.TRANS: lowpass filter -msgid "lowpass" -msgstr "" +#: js/blocks/VolumeBlocks.js:534 +#.TRANS: El volumen predeterminado es 50. +msgid "The default volume is 50." +msgstr "El volumen predeterminado es 50." -#: js/musicutils.js:710 -#: js/musicutils.js:1107 -#.TRANS: bandpass filter -msgid "bandpass" -msgstr "" +#: js/blocks/VolumeBlocks.js:536 +#.TRANS: El rango es de 0 para el silencio a 100 para el volumen completo. +msgid "The range is 0 for silence to 100 for full volume." +msgstr "El rango es de 0 para el silencio a 100 para el volumen completo." -#: js/musicutils.js:712 -#: js/musicutils.js:1108 -#.TRANS: high-shelf filter -msgid "highshelf" +#: js/blocks/VolumeBlocks.js:597 +#.TRANS: establecer panorámica +msgid "set panning" msgstr "" -#: js/musicutils.js:714 -#: js/musicutils.js:1109 -#.TRANS: low-shelf filter -msgid "lowshelf" +#: js/blocks/VolumeBlocks.js:603 +#.TRANS: El bloque Establecer Panorámica establece el panorama para todos los sintetizadores. +msgid "The Set Panning block sets the panning for all synthesizers." msgstr "" -#: js/musicutils.js:716 -#: js/musicutils.js:1110 -#.TRANS: notch-shelf filter -msgid "notch" +#: js/blocks/VolumeBlocks.js:625 +#.TRANS: Advertencia: El sonido sale solo del lado izquierdo o derecho. +msgid "Warning: Sound is coming out from only the left or right side." msgstr "" -#: js/musicutils.js:718 -#: js/musicutils.js:1111 -#.TRANS: all-pass filter -msgid "allpass" -msgstr "" +#: js/blocks/VolumeBlocks.js:647 +#: js/blocks/VolumeBlocks.js:695 +#.TRANS: filar volumen maestro +msgid "set master volume" +msgstr "qispichiq p’ulinta takyachiy" -#: js/musicutils.js:720 -#: js/musicutils.js:1112 -#.TRANS: peaking filter -msgid "peaking" +#: js/blocks/VolumeBlocks.js:653 +#.TRANS: El bloque Ajuste volumen maestro establece el volumen para todos los sintetizadores. +msgid "The Set master volume block sets the volume for all synthesizers." msgstr "" -#: js/musicutils.js:731 -#: js/synthutils.js:58 -#.TRANS: musical instrument -msgid "violin" -msgstr "violin" +#: js/blocks/VolumeBlocks.js:784 +#.TRANS: El bloque Fijar volumen relativo cambia el volumen de las notas contenidas. +msgid "The Set relative volume block changes the volume of the contained notes." +msgstr "" -#: js/musicutils.js:732 -#: js/synthutils.js:60 -#.TRANS: viola musical instrument -msgid "viola" -msgstr "viola" +#: js/blocks/VolumeBlocks.js:791 +#.TRANS: fijar volumen relativo +msgid "set relative volume" +msgstr "t’inkisqa p’ulinta takyachiy" -#: js/musicutils.js:733 -#: js/synthutils.js:98 -#.TRANS: xylophone musical instrument -msgid "xylophone" +#: js/blocks/VolumeBlocks.js:857 +#.TRANS: decrescendo +msgid "decrescendo" msgstr "" -#: js/musicutils.js:734 -#: js/synthutils.js:120 -#.TRANS: vibraphone musical instrument -msgid "vibraphone" -msgstr "" +#: js/blocks/VolumeBlocks.js:921 +#.TRANS: crescendo +msgid "crescendo" +msgstr "wiñachkan" -#: js/musicutils.js:735 -#: js/synthutils.js:62 -#.TRANS: musical instrument -msgid "cello" -msgstr "violonchelo" +#: js/blocks/WidgetBlocks.js:81 +#.TRANS: sound envelope (ADSR) +#.TRANS: envolventes +msgid "envelope" +msgstr "envolventes" -#: js/musicutils.js:737 -#: js/synthutils.js:66 -#.TRANS: viola musical instrument -msgid "double bass" -msgstr "Viola takina waqachina" +#: js/blocks/WidgetBlocks.js:89 +#.TRANS: Attack time is the time taken for initial run-up of level from nil to peak, beginning when the key is first pressed. +#.TRANS: atacar +msgid "attack" +msgstr "atacar" -#: js/musicutils.js:738 -#: js/synthutils.js:68 -#: js/rhythmruler.js:2119 -#.TRANS: musical instrument -msgid "guitar" -msgstr "guitarra" +#: js/blocks/WidgetBlocks.js:91 +#.TRANS: Decay time is the time taken for the subsequent run down from the attack level to the designated sustain level. +#.TRANS: decaer +msgid "decay" +msgstr "Pisipayay" -#: js/musicutils.js:739 -#: js/synthutils.js:70 -#.TRANS: musical instrument -msgid "acoustic guitar" -msgstr "aswan kunkayuq guitarra" +#: js/blocks/WidgetBlocks.js:93 +#.TRANS: Sustain level is the level during the main sequence of the sound's duration, until the key is released. +#.TRANS: sostener +msgid "sustain" +msgstr "hap’ipay" -#: js/musicutils.js:740 -#: js/synthutils.js:72 -#.TRANS: musical instrument -msgid "flute" -msgstr "flauta" +#: js/blocks/WidgetBlocks.js:95 +#.TRANS: Release time is the time taken for the level to decay from the sustain level to zero after the key is released. +#.TRANS: liberar +msgid "release" +msgstr "waqmanta ñawinchay" -#: js/musicutils.js:741 -#: js/synthutils.js:74 -#.TRANS: musical instrument -msgid "clarinet" -msgstr "clarinete" +#: js/blocks/WidgetBlocks.js:113 +#.TRANS: El valor de atacar debe estar entre 0 y 100. +msgid "Attack value should be from 0 to 100." +msgstr "El valor de atacar debe estar entre 0 y 100." -#: js/musicutils.js:742 -#: js/synthutils.js:76 -#.TRANS: musical instrument -msgid "saxophone" -msgstr "saxofón" +#: js/blocks/WidgetBlocks.js:116 +#.TRANS: El valor de decaer debe estar entre 0 y 100. +msgid "Decay value should be from 0 to 100." +msgstr "Pisipayachiyqa 0 – 100 kaman kanan" -#: js/musicutils.js:743 -#: js/synthutils.js:78 -#.TRANS: musical instrument -msgid "tuba" -msgstr "tuba" +#: js/blocks/WidgetBlocks.js:119 +#.TRANS: El valor de sostener debe estar entre 0 y 100. +msgid "Sustain value should be from 0 to 100." +msgstr "Hap’paypa tupuynin ch’usaqmanta pachaqkamann kanan" -#: js/musicutils.js:744 -#: js/synthutils.js:80 -#.TRANS: musical instrument -msgid "trumpet" -msgstr "trompeta" +#: js/blocks/WidgetBlocks.js:122 +#.TRANS: El valor de liberar debe estar entre 0 y 100. +msgid "Release value should be from 0-100." +msgstr "Kachariya tupun kanan 0 – 100 kama" -#: js/musicutils.js:745 -#: js/synthutils.js:82 -#.TRANS: musical instrument -msgid "oboe" -msgstr "" +#: js/blocks/WidgetBlocks.js:140 +#.TRANS: Está agregando varios bloques de envolvente. +msgid "You are adding multiple envelope blocks." +msgstr "Está agregando varios bloques de envolvente." -#: js/musicutils.js:746 -#: js/synthutils.js:84 -#.TRANS: musical instrument -msgid "trombone" -msgstr "trombón" +#: js/blocks/WidgetBlocks.js:171 +#.TRANS: a filter removes some unwanted components from a signal +#.TRANS: filtrar +msgid "filter" +msgstr "suysuy" -#: js/musicutils.js:747 -#: js/synthutils.js:100 -#.TRANS: polytone synthesizer -msgid "electronic synth" -msgstr "sintetizador electronico" +#: js/blocks/WidgetBlocks.js:181 +#: js/widgets/timbre.js:1818 +#.TRANS: rolloff is the steepness of a change in frequency. +#.TRANS: rodar +msgid "rolloff" +msgstr "" -#: js/musicutils.js:748 -#: js/synthutils.js:102 -#.TRANS: simple monotone synthesizer -msgid "simple 1" -msgstr "qasi-1" +#: js/blocks/WidgetBlocks.js:213 +#.TRANS: rolloff is the steepness of a change in frequency. +#.TRANS: Roll off valor debe ser -12, -24, -48, o -96 decibelios. +msgid "Rolloff value should be either -12, -24, -48, or -96 decibels/octave." +msgstr "" -#: js/musicutils.js:749 -msgid "simple 2" +#: js/blocks/WidgetBlocks.js:252 +#.TRANS: La Herramienta temperamento se utiliza para definir la afinación personalizada. +msgid "The Temperament tool is used to define custom tuning." +msgstr "La Herramienta temperamento se utiliza para definir la afinación personalizada." + +#: js/blocks/WidgetBlocks.js:332 +#: js/blocks/WidgetBlocks.js:1573 +#: js/widgets/sampler.js:547 +#.TRANS: Sube una muestra de audio y ajusta su centro de tono. +msgid "Upload a sample and adjust its pitch center." msgstr "" -#: js/musicutils.js:750 -msgid "simple 3" +#: js/blocks/WidgetBlocks.js:339 +#.TRANS: the speed at music is should be played. +#.TRANS: muestreador de audio +msgid "sampler" msgstr "" -#: js/musicutils.js:751 -msgid "simple 4" +#: js/blocks/WidgetBlocks.js:517 +#.TRANS: El bloque Meter abre una herramienta para seleccionar golpes fuertes para el metro. +msgid "The Meter block opens a tool to select strong beats for the meter." msgstr "" -#: js/musicutils.js:753 -#: js/synthutils.js:49 -#.TRANS: brown noise synthesizer -msgid "brown noise" -msgstr "ch’umpi chanraray" +#: js/blocks/WidgetBlocks.js:573 +#.TRANS: El bloque del osciloscopio abre una herramienta para visualizar formas de onda. +msgid "The oscilloscope block opens a tool to visualize waveforms." +msgstr "" -#: js/musicutils.js:754 -#: js/synthutils.js:51 -#.TRANS: pink noise synthesizer -msgid "pink noise" -msgstr "rosa chanraray" +#: js/blocks/WidgetBlocks.js:578 +#.TRANS: osciloscopio +msgid "oscilloscope" +msgstr "" -#: js/musicutils.js:756 -#: js/synthutils.js:127 -#: js/rhythmruler.js:1670 -#: js/rhythmruler.js:1928 -#.TRANS: musical instrument -msgid "snare drum" -msgstr "wankar" +#: js/blocks/WidgetBlocks.js:645 +#.TRANS: El bloque Modo personalizado abre una herramienta para explorar el modo musical (el espaciado de las notas en una escala). +msgid "The Custom mode block opens a tool to explore musical mode (the spacing of the notes in a scale)." +msgstr "" -#: js/musicutils.js:757 -#: js/synthutils.js:129 -#.TRANS: musical instrument -msgid "kick drum" -msgstr "Hayt’ana wankar" +#: js/blocks/WidgetBlocks.js:651 +#.TRANS: musical mode is the pattern of half-steps in an octave, e.g., Major or Minor modes +#.TRANS: modo personalizado +msgid "custom mode" +msgstr "huk hinayuq runachasqa" -#: js/musicutils.js:758 -#: js/synthutils.js:131 -#.TRANS: musical instrument -msgid "tom tom" -msgstr "tum tum" +#: js/blocks/WidgetBlocks.js:700 +#.TRANS: El bloque Tempo abre un metrónomo para visualizar el ritmo. +msgid "The Tempo block opens a metronome to visualize the beat." +msgstr "El bloque Tempo abre un metrónomo para visualizar el ritmo." -#: js/musicutils.js:759 -#: js/synthutils.js:133 -#.TRANS: musical instrument -msgid "floor tom" +#: js/blocks/WidgetBlocks.js:762 +#.TRANS: El Arpegio Widget se usa para componer secuencias de acordes. +msgid "The Arpeggio Widget is used to compose chord sequences." msgstr "" -#: js/musicutils.js:760 -#: js/synthutils.js:135 -#.TRANS: musical instrument -msgid "bass drum" +#: js/blocks/WidgetBlocks.js:837 +#.TRANS: La Matriz de percusión de tono se utiliza para asignar tonos a los sonidos de tambor. +msgid "The Pitch drum matrix is used to map pitches to drum sounds." msgstr "" -#: js/musicutils.js:761 -#: js/synthutils.js:137 -#.TRANS: a drum made from an inverted cup -msgid "cup drum" -msgstr "qiru wankar" - -#: js/musicutils.js:762 -#: js/synthutils.js:139 -#.TRANS: musical instrument -msgid "darbuka drum" -msgstr "wankar darbuka" +#: js/blocks/WidgetBlocks.js:842 +#.TRANS: makes a mapping between pitches and drum sounds +#.TRANS: matriz de tono en tambor +msgid "pitch-drum mapper" +msgstr "taki purihiq" -#: js/musicutils.js:763 -#: js/synthutils.js:143 -#.TRANS: musical instrument -msgid "hi hat" +#: js/blocks/WidgetBlocks.js:891 +#.TRANS: Debe tener al menos un bloque de tono y un bloque de tambor en la matriz. +msgid "You must have at least one pitch block and one drum block in the matrix." msgstr "" -#: js/musicutils.js:764 -#: js/synthutils.js:145 -#.TRANS: a small metal bell -msgid "ride bell" -msgstr "puriq kampana/kalanka" +#: js/blocks/WidgetBlocks.js:920 +#.TRANS: La Herramienta de control deslizante tono se utiliza para generar tonos en las frecuencias seleccionadas. +msgid "The Pitch slider tool to is used to generate pitches at selected frequencies." +msgstr "" -#: js/musicutils.js:765 -#: js/synthutils.js:147 -#.TRANS: musical instrument -msgid "cow bell" -msgstr "waka kampana/kalanka" +#: js/blocks/WidgetBlocks.js:925 +#.TRANS: widget to generate pitches using a slider +#.TRANS: deslizante de tono +msgid "pitch slider" +msgstr "Kunka lluskhachik" -#: js/musicutils.js:766 -msgid "japanese drum" -msgstr "tambor japonés" +#: js/blocks/WidgetBlocks.js:977 +#.TRANS: teclado cromático +msgid "chromatic keyboard" +msgstr "" -#: js/musicutils.js:767 -#: js/synthutils.js:153 -#.TRANS: musical instrument -msgid "japanese bell" -msgstr "campana japonesa" +#: js/blocks/WidgetBlocks.js:1011 +#: js/blocks/WidgetBlocks.js:1077 +#.TRANS: widget to generate pitches using a slider +#.TRANS: teclado musical +msgid "music keyboard" +msgstr "taki t’upuna" -#: js/musicutils.js:768 -#: js/synthutils.js:149 -#.TRANS: musical instrument -msgid "triangle bell" -msgstr "kimsa k’uchu kampana/kalanka" +#: js/blocks/WidgetBlocks.js:1062 +#: js/blocks/WidgetBlocks.js:1069 +#.TRANS: El bloque Teclado de música abre un teclado de piano que puede usarse para crear notas. +msgid "The Music keyboard block opens a piano keyboard that can be used to create notes." +msgstr "" -#: js/musicutils.js:769 -#: js/synthutils.js:151 -#.TRANS: musical instrument -msgid "finger cymbals" -msgstr "kastañuylas" +#: js/blocks/WidgetBlocks.js:1128 +#.TRANS: La Herramienta escalera de tono se utiliza para generar tonos a partir de una relación dada. +msgid "The Pitch staircase tool to is used to generate pitches from a given ratio." +msgstr "" -#: js/musicutils.js:770 -#: js/synthutils.js:155 -#.TRANS: a musically tuned set of bells -msgid "chime" -msgstr "campaneo" +#: js/blocks/WidgetBlocks.js:1135 +#.TRANS: generate a progressive sequence of pitches +#.TRANS: escalera de tono +msgid "pitch staircase" +msgstr "Kunka siqachina" -#: js/musicutils.js:771 -#: js/synthutils.js:157 -#.TRANS: a musical instrument -msgid "gong" -msgstr "" " +#: js/blocks/WidgetBlocks.js:1222 +#.TRANS: El bloque Hacer un ritmo abre una herramienta para crear cajas de ritmos. +msgid "The Rhythm Maker block opens a tool to create drum machines." +msgstr "" -#: js/musicutils.js:772 -#: js/synthutils.js:159 -#.TRANS: sound effect -msgid "clang" -msgstr "raqhaqaqay" +#: js/blocks/WidgetBlocks.js:1291 +#.TRANS: escala mayor G +msgid "G major scale" +msgstr "Kuraq G wichachina" -#: js/musicutils.js:773 -#: js/synthutils.js:161 -#.TRANS: sound effect -msgid "crash" -msgstr "Takanakuy" +#: js/blocks/WidgetBlocks.js:1326 +#.TRANS: escala mayor C +msgid "C major scale" +msgstr "Kuraq C wichachina" -#: js/musicutils.js:774 -#: js/synthutils.js:163 -#.TRANS: sound effect -msgid "bottle" -msgstr "wutilla" +#: js/blocks/WidgetBlocks.js:1366 +#.TRANS: El bloque Matriz de tono y tiempo abre una herramienta para crear frases musicales. +msgid "The Phrase Maker block opens a tool to create musical phrases." +msgstr "" -#: js/musicutils.js:775 -#: js/synthutils.js:165 -#.TRANS: sound effect -msgid "clap" -msgstr "T’aklla" +#: js/blocks/WidgetBlocks.js:1373 +#.TRANS: assigns pitch to a sequence of beats to generate a melody +#.TRANS: matriz de tono en tiempo +msgid "phrase maker" +msgstr "Kunka pachapi paqarichiq " -#: js/musicutils.js:776 -#: js/synthutils.js:167 -#.TRANS: sound effect -msgid "slap" -msgstr "ch’aqllay" +#: js/blocks/WidgetBlocks.js:1444 +#.TRANS: Debe tener al menos un bloque de tono y un bloque de ritmo en la matriz. +msgid "You must have at least one pitch block and one rhythm block in the matrix." +msgstr "" -#: js/musicutils.js:777 -#: js/synthutils.js:169 -#.TRANS: sound effect -msgid "splash" -msgstr "ch’iqiy" +#: js/blocks/WidgetBlocks.js:1503 +#.TRANS: El bloque Estado abre una herramienta para inspeccionar el estado de Bloques de Música mientras se ejecuta. +msgid "The Status block opens a tool for inspecting the status of Music Blocks as it is running." +msgstr "" -#: js/musicutils.js:778 -#: js/synthutils.js:171 -#.TRANS: sound effect -msgid "bubbles" -msgstr "phullpu" +#: js/blocks/WidgetBlocks.js:1580 +#.TRANS: AI-generated music +#.TRANS: música ia +msgid "aimusic" +msgstr "" -#: js/musicutils.js:779 -#: js/synthutils.js:173 -#.TRANS: sound effect -msgid "raindrop" -msgstr " unu sut’u" +#: js/turtleactions/MeterActions.js:101 +#: js/turtleactions/MeterActions.js:139 +#.TRANS: latidos por minuto deben ser mayores que +msgid "beats per minute must be greater than" +msgstr "minutupi p’ullpuqiyqa kurak kanan" -#: js/musicutils.js:780 -#: js/synthutils.js:175 -#.TRANS: animal sound effect -msgid "cat" -msgstr "Misi" +#: js/turtleactions/MeterActions.js:111 +#: js/turtleactions/MeterActions.js:149 +#.TRANS: máximo +msgid "maximum" +msgstr "tukupunankama" -#: js/musicutils.js:781 -#: js/synthutils.js:177 -#.TRANS: animal sound effect -msgid "cricket" -msgstr "ch’illiku" +#: js/turtleactions/MeterActions.js:117 +#: js/turtleactions/MeterActions.js:155 +#.TRANS: latidos por minuto es +msgid "beats per minute is" +msgstr "minutupi p’ullpuqiyninqa" -#: js/musicutils.js:782 -#: js/synthutils.js:179 -#.TRANS: animal sound effect -msgid "dog" -msgstr "Allqu" +#: js/turtleactions/DictActions.js:75 +#: js/turtleactions/DictActions.js:142 +#: js/turtleactions/DictActions.js:172 +#.TRANS: fuente +msgid "font" +msgstr "" -#: js/musicutils.js:784 -#: js/synthutils.js:86 -#.TRANS: musical instrument -msgid "banjo" +#: js/turtleactions/DictActions.js:255 +#.TRANS: No existe diccionario con este nombre +msgid "Dictionary with this name does not exist" msgstr "" -#: js/musicutils.js:785 -#: js/synthutils.js:88 -#.TRANS: musical instrument -msgid "koto" +#: js/turtleactions/DictActions.js:259 +#.TRANS: La clave con este nombre no existe en +msgid "Key with this name does not exist in " msgstr "" -#: js/musicutils.js:786 -#: js/synthutils.js:90 -#.TRANS: musical instrument -msgid "dulcimer" +#: js/turtleactions/DrumActions.js:227 +#.TRANS: Bloque de ruido: Quizás quiso decir utilizar un bloque de nota? +msgid "Noise Block: Did you mean to use a Note block?" +msgstr "Bloque de ruido: Quizás quiso decir utilizar un bloque de nota?" + +#: js/turtleactions/IntervalsActions.js:113 +#.TRANS: uno +msgid "one" +msgstr "" + +#: js/turtleactions/IntervalsActions.js:113 +#.TRANS: dos +msgid "two" msgstr "" -#: js/musicutils.js:787 -#: js/synthutils.js:92 -#.TRANS: musical instrument -msgid "electric guitar" -msgstr "tawtinku phinchikilla" +#: js/turtleactions/IntervalsActions.js:113 +#.TRANS: tres +msgid "three" +msgstr "" -#: js/musicutils.js:788 -#: js/synthutils.js:94 -#.TRANS: musical instrument -msgid "bassoon" +#: js/turtleactions/IntervalsActions.js:113 +#.TRANS: cuatro +msgid "four" msgstr "" -#: js/musicutils.js:789 -#: js/synthutils.js:96 -#.TRANS: musical instrument -msgid "celeste" -msgstr "yuraq anqhas" +#: js/turtleactions/IntervalsActions.js:113 +#.TRANS: cinco +msgid "five" +msgstr "" -#: js/musicutils.js:791 -#: js/musicutils.js:1123 -#: js/musicutils.js:1131 -#: js/temperament.js:650 -#.TRANS: musical temperament -msgid "equal" -msgstr "igual" +#: js/turtleactions/IntervalsActions.js:113 +#.TRANS: seis +msgid "six" +msgstr "" -#: js/musicutils.js:793 -#: js/musicutils.js:1125 -#: js/musicutils.js:1133 -#.TRANS: musical temperament -msgid "Pythagorean" +#: js/turtleactions/IntervalsActions.js:113 +#.TRANS: siete +msgid "seven" msgstr "" -#: js/musicutils.js:795 -#: js/musicutils.js:1124 -#: js/musicutils.js:1132 -#.TRANS: musical temperament -msgid "just intonation" -msgstr "solo entonación" +#: js/turtleactions/IntervalsActions.js:113 +#.TRANS: ocho +msgid "eight" +msgstr "" -#: js/musicutils.js:797 -#: js/musicutils.js:1126 -#: js/musicutils.js:1127 -#: js/musicutils.js:1134 -#: js/musicutils.js:1135 -#.TRANS: musical temperament -msgid "meantone" +#: js/turtleactions/IntervalsActions.js:113 +#.TRANS: nueve +msgid "nine" msgstr "" -#: js/musicutils.js:814 -msgid "major 7th" +#: js/turtleactions/IntervalsActions.js:119 +#.TRANS: +msgid "a" msgstr "" -#: js/musicutils.js:815 -msgid "minor 7th" +#: js/turtleactions/IntervalsActions.js:120 +#.TRANS: abajo +msgid "below" msgstr "" -#: js/musicutils.js:816 -msgid "dominant 7th" +#: js/turtleactions/IntervalsActions.js:124 +#.TRANS: arriba +msgid "above" msgstr "" -#: js/musicutils.js:817 -msgid "minor-major 7th" +#: js/turtleactions/IntervalsActions.js:131 +#.TRANS: más +msgid "plus" msgstr "" -#: js/musicutils.js:818 -msgid "fully-diminished 7th" +#: js/turtleactions/IntervalsActions.js:139 +#.TRANS: abajo +msgid " below" msgstr "" -#: js/musicutils.js:819 -msgid "half-diminished 7th" +#: js/turtleactions/IntervalsActions.js:257 +#.TRANS: Agregar el número de tono que falta 0. +msgid "Adding missing pitch number 0." +msgstr "Agregar el número de tono que falta 0." + +#: js/turtleactions/IntervalsActions.js:265 +#.TRANS: Ignorando los números de tono menos de cero o más de once. +msgid "Ignoring pitch numbers less than zero or greater than eleven." msgstr "" -#: js/musicutils.js:4379 -#: js/musicutils.js:4416 -msgid "current" -msgstr "actuales" +#: js/turtleactions/IntervalsActions.js:271 +#.TRANS: Ignorando números de tono duplicados. +msgid "Ignoring duplicate pitch numbers." +msgstr "Ignorando números de tono duplicados." -#: js/musicutils.js:4382 -#: js/musicutils.js:4407 -msgid "next" -msgstr "próximo" +#: js/turtleactions/ToneActions.js:134 +#.TRANS: La intensidad del vibrato debe estar entre 1 y 100. +msgid "Vibrato intensity must be between 1 and 100." +msgstr " khatataypa kallpanqa huk hinallataq pachakpi kachkanan" -#: js/musicutils.js:4385 -#: js/musicutils.js:4412 -msgid "previous" -msgstr "anterior" +#: js/turtleactions/ToneActions.js:139 +#.TRANS: La velocidad del vibrato debe ser mayor que 0. +msgid "Vibrato rate must be greater than 0." +msgstr " khatataypa utqayninqa ch’usaqpa kurakninmi kanan" -#: js/synthutils.js:104 -#.TRANS: simple monotone synthesizer -msgid "simple-2" -msgstr "qasi-2" +#: js/turtleactions/ToneActions.js:192 +#: js/turtleactions/ToneActions.js:265 +#.TRANS: Depth is the intesity of the tremolo or chorus effect. +#.TRANS: El valor de profundidad está fuera de rango. +msgid "Depth is out of range." +msgstr "ukhunchasqa chaninninqa manam t’aqanpichu kachkan" -#: js/synthutils.js:106 -#.TRANS: simple monotone synthesizer -msgid "simple-3" -msgstr "qasi-3" +#: js/turtleactions/ToneActions.js:301 +#.TRANS: El valor de distorsión debe ser de 0 a 100. +msgid "Distortion must be from 0 to 100." +msgstr "q’iwisqapa chaninninqa ch’usaqmanta pachakkama kanan" -#: js/synthutils.js:108 -#.TRANS: simple monotone synthesizer -msgid "simple-4" -msgstr "qasi-4" +#: js/turtleactions/ToneActions.js:332 +#.TRANS: partials components in a harmonic series +#.TRANS: Parcial debe ser mayor o igual a 0. +msgid "Partial must be greater than or equal to 0." +msgstr "chawaqa ch’usaqamanta kurakpas kikinpas kanan" -#: js/synthutils.js:141 -#.TRANS: musical instrument -msgid "taiko" -msgstr "chakiyuq wankar" +#: js/turtleactions/ToneActions.js:378 +#: js/turtleactions/ToneActions.js:417 +#: js/turtleactions/ToneActions.js:456 +#: js/widgets/timbre.js:782 +#.TRANS: No se puede usar el sintetizador debido al bloqueo del oscilador. +msgid "Unable to use synth due to existing oscillator" +msgstr "Manam pisiyachiqta hap’ikunmanchu imaraykuchus maymikuq hark’asqa kaptin" + +#: js/turtleactions/ToneActions.js:388 +#: js/turtleactions/ToneActions.js:427 +#.TRANS: La entrada no puede ser negativa. +msgid "The input cannot be negative." +msgstr "haykunanqa manam manaqa kanmanchu" -#: js/modewidget.js:86 -#: js/modewidget.js:88 -#: js/modewidget.js:642 -#: js/modewidget.js:644 -#: js/modewidget.js:712 -#: js/modewidget.js:714 -#: js/temperament.js:2078 -#: js/rhythmruler.js:189 -#: js/rhythmruler.js:1410 -#: js/rhythmruler.js:1412 -#: js/rhythmruler.js:1435 -#: js/rhythmruler.js:1437 -#: js/meterwidget.js:89 -#: js/meterwidget.js:91 +#: js/widgets/modewidget.js:86 +#: js/widgets/modewidget.js:88 +#: js/widgets/modewidget.js:642 +#: js/widgets/modewidget.js:644 +#: js/widgets/modewidget.js:712 +#: js/widgets/modewidget.js:714 +#: js/widgets/meterwidget.js:194 +#: js/widgets/meterwidget.js:196 +#: js/widgets/temperament.js:2236 +#: js/widgets/rhythmruler.js:457 +#: js/widgets/rhythmruler.js:1790 +#: js/widgets/rhythmruler.js:1792 +#: js/widgets/rhythmruler.js:1816 +#: js/widgets/rhythmruler.js:1818 +#.TRANS: Jugar todo msgid "Play all" msgstr "llapanta pukllay" -#: js/modewidget.js:115 -#: js/pitchstaircase.js:641 -#: js/phrasemaker.js:339 -#: js/pitchdrummatrix.js:94 -#: js/pitchslider.js:125 -#: js/temperament.js:2083 -#: js/musickeyboard.js:530 -#: js/timbre.js:756 -#: js/meterwidget.js:124 -#: js/arpeggio.js:103 +#: js/widgets/modewidget.js:115 +#: js/widgets/meterwidget.js:229 +#: js/widgets/pitchdrummatrix.js:166 +#: js/widgets/pitchslider.js:125 +#: js/widgets/pitchstaircase.js:641 +#: js/widgets/temperament.js:2244 +#: js/widgets/timbre.js:756 +#: js/widgets/arpeggio.js:103 +#: js/widgets/musickeyboard.js:688 +#: js/widgets/phrasemaker.js:550 +#.TRANS: Guardar msgid "Save" msgstr "waqaychay" -#: js/modewidget.js:121 -#: js/pitchstaircase.js:686 -#: js/phrasemaker.js:356 -#: js/pitchdrummatrix.js:109 -#: js/musickeyboard.js:534 -#: js/rhythmruler.js:269 -#: js/arpeggio.js:118 +#: js/widgets/modewidget.js:121 +#: js/widgets/pitchdrummatrix.js:181 +#: js/widgets/pitchstaircase.js:686 +#: js/widgets/arpeggio.js:118 +#: js/widgets/musickeyboard.js:696 +#: js/widgets/phrasemaker.js:567 +#: js/widgets/rhythmruler.js:601 #.TRANS: clear all subdivisions from the ruler. +#.TRANS: Borrar msgid "Clear" msgstr "pichay" -#: js/modewidget.js:127 +#: js/widgets/modewidget.js:127 +#.TRANS: Girar en sentido antihorario msgid "Rotate counter clockwise" msgstr "Girar en sentido antihorario" -#: js/modewidget.js:133 +#: js/widgets/modewidget.js:133 +#.TRANS: Girar en sentido horario msgid "Rotate clockwise" msgstr "lluq’iman muyuy" -#: js/modewidget.js:139 +#: js/widgets/modewidget.js:139 +#.TRANS: Invertir msgid "Invert" msgstr "Tikray" -#: js/modewidget.js:145 -#: js/pitchstaircase.js:678 -#: js/rhythmruler.js:258 -#: js/timbre.js:963 +#: js/widgets/modewidget.js:145 +#: js/widgets/pitchstaircase.js:678 +#: js/widgets/timbre.js:963 +#: js/widgets/rhythmruler.js:578 +#.TRANS: Deshacer msgid "Undo" msgstr "paskay" -#: js/modewidget.js:163 +#: js/widgets/modewidget.js:163 #.TRANS: A circle of notes represents the musical mode. +#.TRANS: Haga clic en el círculo para seleccionar notas para el modo. msgid "Click in the circle to select notes for the mode." msgstr "Haga clic en el círculo para seleccionar notas para el modo." -#: js/modewidget.js:1017 -#: js/pitchstaircase.js:580 -#: js/phrasemaker.js:4855 -#: js/temperament.js:1754 -#: js/rhythmruler.js:1865 -#: js/rhythmruler.js:2081 -#: js/tempo.js:414 +#: js/widgets/modewidget.js:1017 +#: js/widgets/pitchstaircase.js:580 +#: js/widgets/temperament.js:1929 +#: js/widgets/tempo.js:414 +#: js/widgets/phrasemaker.js:5356 +#: js/widgets/rhythmruler.js:2254 +#: js/widgets/rhythmruler.js:2472 +#.TRANS: Nuevo bloque de acción creado! msgid "New action block generated!" msgstr "Nuevo bloque de acción creado!" -#: js/oscilloscope.js:79 +#: js/widgets/meterwidget.js:275 +#.TRANS: Reiniciar +msgid "Reset" +msgstr "" + +#: js/widgets/meterwidget.js:301 +#.TRANS: Haga clic en el círculo para seleccionar ritmos fuertes para el medidor. +msgid "Click in the circle to select strong beats for the meter." +msgstr "Haga clic en el círculo para seleccionar ritmos fuertes para el medidor." + +#: js/widgets/oscilloscope.js:79 +#.TRANS: Hacer zoom msgid "Zoom In" msgstr "" -#: js/oscilloscope.js:88 +#: js/widgets/oscilloscope.js:88 +#.TRANS: Alejar msgid "Zoom Out" msgstr "" -#: js/pitchstaircase.js:624 -msgid "Play chord" -msgstr "Tocar un acorde" - -#: js/pitchstaircase.js:632 -msgid "Play scale" -msgstr "Tocar una escala" - -#: js/pitchstaircase.js:696 -msgid "Click on a note to create a new step." -msgstr "Haga clic en una nota para crear un nuevo paso." - -#: js/phrasemaker.js:363 -msgid "Export" -msgstr "hurquy" - -#: js/phrasemaker.js:370 -msgid "Sort" -msgstr "ñiq’ichay" - -#: js/phrasemaker.js:373 -#: js/musickeyboard.js:559 -msgid "Add note" -msgstr "Agrega una nota" - -#: js/phrasemaker.js:764 -msgid "Click on the table to add notes." -msgstr "Haga clic en la tabla para agregar notas." - -#: js/phrasemaker.js:2414 -#: js/phrasemaker.js:2543 -msgid "tuplet value" -msgstr "valor del tuplet" - -#: js/pitchdrummatrix.js:270 -#: js/pitchdrummatrix.js:639 +#: js/widgets/pitchdrummatrix.js:356 +#: js/widgets/pitchdrummatrix.js:752 +#.TRANS: Haga clic en la cuadrícula para asignar notas a sonidos de tambors msgid "Click in the grid to map notes to drums." msgstr "Haga clic en la cuadrícula para asignar notas a sonidos de tambors" -#: js/pitchslider.js:103 +#: js/widgets/pitchslider.js:103 +#.TRANS: Ascender msgid "Move up" msgstr "wichay" -#: js/pitchslider.js:114 +#: js/widgets/pitchslider.js:114 +#.TRANS: Descender msgid "Move down" msgstr "uraqay" -#: js/pitchslider.js:136 +#: js/widgets/pitchslider.js:136 +#.TRANS: Haga clic en el control deslizante para crear un bloque de notas. msgid "Click on the slider to create a note block." msgstr "Haga clic en el control deslizante para crear un bloque de notas." -#: js/temperament.js:215 +#: js/widgets/pitchstaircase.js:624 +#.TRANS: Tocar un acorde +msgid "Play chord" +msgstr "Tocar un acorde" + +#: js/widgets/pitchstaircase.js:632 +#.TRANS: Tocar una escala +msgid "Play scale" +msgstr "Tocar una escala" + +#: js/widgets/pitchstaircase.js:696 +#.TRANS: Haga clic en una nota para crear un nuevo paso. +msgid "Click on a note to create a new step." +msgstr "Haga clic en una nota para crear un nuevo paso." + +#: js/widgets/temperament.js:321 +#.TRANS: volver al espacio de octava 2: 1 msgid "back to 2:1 octave space" msgstr "" -#: js/temperament.js:323 +#: js/widgets/temperament.js:447 +#.TRANS: editar msgid "edit" msgstr "" -#: js/temperament.js:330 -#: js/temperament.js:332 -#: js/temperament.js:1336 -#: js/temperament.js:1338 +#: js/widgets/temperament.js:454 +#: js/widgets/temperament.js:456 +#: js/widgets/temperament.js:1493 +#: js/widgets/temperament.js:1495 +#.TRANS: cerrar msgid "close" msgstr "wisq’ay" -#: js/temperament.js:423 -#: js/temperament.js:736 -#: js/temperament.js:743 -#: js/temperament.js:845 -#: js/temperament.js:935 -#: js/temperament.js:942 -#: js/temperament.js:1015 -#: js/temperament.js:1284 -#: js/temperament.js:1354 -#: js/temperament.js:1430 +#: js/widgets/temperament.js:552 +#: js/widgets/temperament.js:877 +#: js/widgets/temperament.js:884 +#: js/widgets/temperament.js:986 +#: js/widgets/temperament.js:1080 +#: js/widgets/temperament.js:1087 +#: js/widgets/temperament.js:1160 +#: js/widgets/temperament.js:1433 +#: js/widgets/temperament.js:1511 +#: js/widgets/temperament.js:1596 +#.TRANS: terminado msgid "done" msgstr "" -#: js/temperament.js:477 -#: js/temperament.js:482 -#: js/temperament.js:918 +#: js/widgets/temperament.js:610 +#: js/widgets/temperament.js:615 +#: js/widgets/temperament.js:1063 +#.TRANS: proporción msgid "ratio" msgstr "" -#: js/temperament.js:483 +#: js/widgets/temperament.js:616 +#.TRANS: intervalo msgid "interval" msgstr "" -#: js/temperament.js:611 +#: js/widgets/temperament.js:744 +#.TRANS: no escalar msgid "non scalar" msgstr "" -#: js/temperament.js:650 +#: js/widgets/temperament.js:787 +#.TRANS: proporcións msgid "ratios" msgstr "" -#: js/temperament.js:650 +#: js/widgets/temperament.js:787 +#.TRANS: arbitrario msgid "arbitrary" msgstr "" -#: js/temperament.js:719 +#: js/widgets/temperament.js:860 +#.TRANS: número de divisiones msgid "number of divisions" msgstr "" -#: js/temperament.js:741 -#: js/temperament.js:858 -#: js/temperament.js:940 -#: js/temperament.js:1033 +#: js/widgets/temperament.js:882 +#: js/widgets/temperament.js:999 +#: js/widgets/temperament.js:1085 +#: js/widgets/temperament.js:1178 +#.TRANS: preestreno msgid "preview" msgstr "" -#: js/temperament.js:788 +#: js/widgets/temperament.js:929 +#.TRANS: El número de divisiones es demasiado grande. msgid "The Number of divisions is too large." msgstr "" -#: js/temperament.js:921 +#: js/widgets/temperament.js:1066 +#.TRANS: recursividad msgid "recursion" msgstr "" -#: js/temperament.js:1450 +#: js/widgets/temperament.js:1616 +#.TRANS: La proporción de octavas ha cambiado. Esto cambia el temperamento de manera significativa. msgid "The octave ratio has changed. This changes temperament significantly." msgstr "" -#: js/temperament.js:2087 +#: js/widgets/temperament.js:2248 +#.TRANS: Tabla msgid "Table" msgstr "tawla" -#: js/temperament.js:2185 +#: js/widgets/temperament.js:2356 +#.TRANS: añadir tonos msgid "Add pitches" msgstr "kunkakuna yapay" -#: js/musickeyboard.js:570 -msgid "Metronome" -msgstr "" - -#: js/musickeyboard.js:1296 -#: plugins/rodi.rtp:193 -msgid "duration" -msgstr "unaykachiy" - -#: js/musickeyboard.js:2840 -msgid "New action blocks generated!" -msgstr "" - -#: js/musickeyboard.js:2841 -msgid "New action block generated" -msgstr "" - -#: js/musickeyboard.js:2984 -#: js/musickeyboard.js:2992 -msgid "MIDI device present." -msgstr "" - -#: js/musickeyboard.js:2995 -msgid "No MIDI device found." -msgstr "" - -#: js/musickeyboard.js:3000 -msgid "Failed to get MIDI access in browser." -msgstr "" - -#: js/rhythmruler.js:202 -msgid "Save rhythms" -msgstr "T’impuchisqata waqaychay" - -#: js/rhythmruler.js:222 -msgid "Save drum machine" -msgstr "tawa k’uchu t’impumusqakuna waqaychana" - -#: js/rhythmruler.js:263 -#.TRANS: user can tap out a rhythm by clicking on a ruler. -msgid "Tap a rhythm" -msgstr "Toca un ritmo" - -#: js/rhythmruler.js:342 -#: js/rhythmruler.js:344 -#: js/rhythmruler.js:1481 -#: js/rhythmruler.js:1483 -#: js/sampler.js:110 -#: js/sampler.js:112 -#: js/tempo.js:78 -#: js/tempo.js:97 -#: js/tempo.js:99 +#: js/widgets/tempo.js:78 +#: js/widgets/tempo.js:97 +#: js/widgets/tempo.js:99 +#: js/widgets/aiwidget.js:134 +#: js/widgets/aiwidget.js:136 +#: js/widgets/rhythmruler.js:681 +#: js/widgets/rhythmruler.js:683 +#: js/widgets/rhythmruler.js:1864 +#: js/widgets/rhythmruler.js:1866 +#: js/widgets/sampler.js:180 +#: js/widgets/sampler.js:182 +#.TRANS: Pausa msgid "Pause" msgstr "sayay" -#: js/rhythmruler.js:478 -msgid "Click on the ruler to divide it." -msgstr "Haga clic en la regla para dividirla." - -#: js/rhythmruler.js:603 -#: js/rhythmruler.js:605 -#: js/rhythmruler.js:804 -#: js/rhythmruler.js:806 -#: js/rhythmruler.js:1386 -#: js/rhythmruler.js:1388 -msgid "tap a rhythm" -msgstr "tocar un ritmo" - -#: js/rhythmruler.js:1084 -msgid "Maximum value of 256 has been exceeded." -msgstr "Se ha superado el valor máximo de 256." - -#: js/sampler.js:137 -msgid "Warning: Sample is bigger than 1MB." -msgstr "" - -#: js/sampler.js:142 -msgid "Upload failed: Sample is not a .wav file." -msgstr "" - -#: js/sampler.js:164 -msgid "A new sample block was generated." -msgstr "" - -#: js/sampler.js:255 -msgid "Upload sample" -msgstr "" - -#: js/sampler.js:306 -msgid "Save sample" -msgstr "" - -#: js/sampler.js:697 -#.TRANS: The reference tone is a sound used for comparison. -msgid "reference tone" -msgstr "" - -#: js/tempo.js:113 +#: js/widgets/tempo.js:113 +#.TRANS: Guardar tempo msgid "Save tempo" msgstr "Pacha waqaychay" -#: js/tempo.js:144 +#: js/widgets/tempo.js:144 +#.TRANS: acelerar msgid "speed up" msgstr "utqhaychay" -#: js/tempo.js:150 +#: js/widgets/tempo.js:150 +#.TRANS: retardar msgid "slow down" msgstr "qhipariy" -#: js/tempo.js:194 +#: js/widgets/tempo.js:194 +#.TRANS: Ajusta el tempo con los botones. msgid "Adjust the tempo with the buttons." msgstr "Ajusta el tempo con los botones." -#: js/tempo.js:261 +#: js/widgets/tempo.js:261 +#.TRANS: Por favor, introduzca un número entre 30 y 1000. msgid "Please enter a number between 30 and 1000" msgstr "" -#: js/tempo.js:268 -#: js/tempo.js:271 +#: js/widgets/tempo.js:268 +#: js/widgets/tempo.js:271 +#.TRANS: Los latidos por minuto deben estar entre 30 y 1000. msgid "The beats per minute must be between 30 and 1000." msgstr "Los latidos por minuto deben estar entre 30 y 1000." -#: js/tempo.js:287 +#: js/widgets/tempo.js:287 +#.TRANS: Los latidos por minuto deben estar por debajo de 1000. msgid "The beats per minute must be below 1000." msgstr "" -#: js/tempo.js:303 +#: js/widgets/tempo.js:303 +#.TRANS: Los latidos por minuto deben ser superiores a 30. msgid "The beats per minute must be above 30" msgstr "" -#: js/timbre.js:766 +#: js/widgets/timbre.js:766 +#.TRANS: Sintetizador msgid "Synthesizer" msgstr "Huch’uyachispa tikraq" -#: js/timbre.js:789 +#: js/widgets/timbre.js:789 +#.TRANS: Oscilador msgid "Oscillator" msgstr "Tikraq" -#: js/timbre.js:840 +#: js/widgets/timbre.js:840 +#.TRANS: Envolvente msgid "Envelope" msgstr "patapi" -#: js/timbre.js:886 -#: js/GlobalTag.js:50 +#: js/widgets/timbre.js:886 +#: planet/js/GlobalTag.js:50 #.TRANS: On the Planet, we use labels to tag projects. +#.TRANS: Efectos msgid "Effects" msgstr "Tikrasqa kunka" -#: js/timbre.js:904 +#: js/widgets/timbre.js:904 +#.TRANS: Filtrar msgid "Filter" msgstr "ch’uyay" -#: js/timbre.js:946 +#: js/widgets/timbre.js:946 +#.TRANS: Agregar un filtro msgid "Add filter" msgstr "Ch’uyaqta churay" -#: js/timbre.js:987 +#: js/widgets/timbre.js:987 +#.TRANS: Haga clic en los botones para abrir las herramientas de diseño de timbre. msgid "Click on buttons to open the timbre design tools." msgstr "Haga clic en los botones para abrir las herramientas de diseño de timbre." -#: js/timbre.js:1273 +#: js/widgets/timbre.js:1273 +#.TRANS: armonía msgid "harmonicity" msgstr "tupasqa" -#: js/timbre.js:1340 -#: js/timbre.js:1406 +#: js/widgets/timbre.js:1340 +#: js/widgets/timbre.js:1406 +#.TRANS: índice de modulación msgid "modulation index" msgstr "imanas kunka tupasqa" -#: js/timbre.js:1484 +#: js/widgets/timbre.js:1484 +#.TRANS: cantidad de vibrato msgid "vibrato amount" msgstr "kunkachasqa" -#: js/timbre.js:1919 +#: js/widgets/timbre.js:1919 +#.TRANS: filtro ya presente msgid "Filter already present." msgstr "filtro ya presente" -#: js/timbre.js:2322 +#: js/widgets/timbre.js:2322 +#.TRANS: retraso (MS) msgid "delay (MS)" msgstr "qhipariy" -#: js/timbre.js:2507 +#: js/widgets/timbre.js:2507 +#.TRANS: cantidad de distorsión msgid "distortion amount" msgstr "cantidad de distorsión" -#: js/meterwidget.js:170 -msgid "Reset" +#: js/widgets/aiwidget.js:180 +#: js/widgets/sampler.js:227 +#.TRANS: Advertencia: la muestra es más grande que 1 MB. +msgid "Warning: Sample is bigger than 1MB." msgstr "" -#: js/meterwidget.js:196 -msgid "Click in the circle to select strong beats for the meter." -msgstr "Haga clic en el círculo para seleccionar ritmos fuertes para el medidor." +#: js/widgets/aiwidget.js:539 +#.TRANS: Nuevo bloque de inicio generado +msgid "New start block generated" +msgstr "" + +#: js/widgets/aiwidget.js:541 +#.TRANS: Carga MIDI. Esto puede tardar un tiempo dependiendo de la cantidad de notas en la pista. +msgid "MIDI loading. This may take some time depending upon the number of notes in the track" +msgstr "" -#: js/arpeggio.js:239 +#: js/widgets/aiwidget.js:551 +#: js/widgets/sampler.js:254 +#.TRANS: Error en la carga: la muestra no es un archivo .WAV. +msgid "Upload failed: Sample is not a .wav file." +msgstr "" + +#: js/widgets/aiwidget.js:679 +#: js/widgets/sampler.js:432 +#.TRANS: Guardar muestra de audio +msgid "Save sample" +msgstr "" + +#: js/widgets/aiwidget.js:701 +#.TRANS: Música de IA +msgid "AI Music" +msgstr "" + +#: js/widgets/arpeggio.js:239 +#.TRANS: Haga clic en la cuadrícula para agregar pasos al arpegio. msgid "Click in the grid to add steps to the arpeggio." msgstr "" -#: js/ProjectStorage.js:243 -msgid "anonymous" -msgstr "mana sutiyuq" +#: js/widgets/help.js:95 +#: js/widgets/help.js:125 +#: js/widgets/help.js:146 +#: js/widgets/help.js:158 +#: js/widgets/help.js:376 +#: js/widgets/help.js:391 +#.TRANS: Hacer un recorrido +msgid "Take a tour" +msgstr "pusay" -#: js/GlobalCard.js:68 -msgid "Share" -msgstr "rakinakuy" +#: js/widgets/musickeyboard.js:725 +#: js/widgets/phrasemaker.js:584 +#.TRANS: Agrega una nota +msgid "Add note" +msgstr "Agrega una nota" -#: js/GlobalCard.js:74 -msgid "Flags" -msgstr "wiphalakuna" +#: js/widgets/musickeyboard.js:744 +#.TRANS: Metrónomo +msgid "Metronome" +msgstr "" -#: js/LocalCard.js:36 -msgid "View published project" -msgstr "Ver proyecto publicado" +#: js/widgets/musickeyboard.js:1549 +#: plugins/rodi.rtp:193 +#.TRANS: duración +msgid "duration" +msgstr "unaykachiy" -#: js/LocalCard.js:42 -msgid "Publish project" -msgstr "Publicar proyecto" +#: js/widgets/musickeyboard.js:3179 +#.TRANS: Nuevo bloques de acción creado +msgid "New action blocks generated" +msgstr "" -#: js/LocalCard.js:51 -msgid "Edit project" -msgstr "Editar proyecto" +#: js/widgets/musickeyboard.js:3180 +#.TRANS: Nuevo bloque de acción creado +msgid "New action block generated" +msgstr "" + +#: js/widgets/musickeyboard.js:3365 +#: js/widgets/musickeyboard.js:3373 +#.TRANS: Dispositivo MIDI presente. +msgid "MIDI device present." +msgstr "" + +#: js/widgets/musickeyboard.js:3376 +#.TRANS: No se encontró ningún dispositivo MIDI. +msgid "No MIDI device found." +msgstr "" + +#: js/widgets/musickeyboard.js:3386 +#.TRANS: Error al obtener acceso MIDI en el navegador. +msgid "Failed to get MIDI access in browser." +msgstr "" + +#: js/widgets/phrasemaker.js:574 +#.TRANS: Exportar +msgid "Export" +msgstr "hurquy" + +#: js/widgets/phrasemaker.js:581 +#.TRANS: Ordenar +msgid "Sort" +msgstr "ñiq’ichay" + +#: js/widgets/phrasemaker.js:975 +#.TRANS: Haga clic en la tabla para agregar notas. +msgid "Click on the table to add notes." +msgstr "Haga clic en la tabla para agregar notas." + +#: js/widgets/phrasemaker.js:2677 +#: js/widgets/phrasemaker.js:2819 +#.TRANS: valor del tuplet +msgid "tuplet value" +msgstr "valor del tuplet" + +#: js/widgets/rhythmruler.js:486 +#.TRANS: Guardar ritmos +msgid "Save rhythms" +msgstr "T’impuchisqata waqaychay" + +#: js/widgets/rhythmruler.js:512 +#.TRANS: Guardar la caja de ritmos +msgid "Save drum machine" +msgstr "tawa k’uchu t’impumusqakuna waqaychana" + +#: js/widgets/rhythmruler.js:589 +#.TRANS: user can tap out a rhythm by clicking on a ruler. +#.TRANS: Toca un ritmo +msgid "Tap a rhythm" +msgstr "Toca un ritmo" + +#: js/widgets/rhythmruler.js:817 +#.TRANS: Haga clic en la regla para dividirla. +msgid "Click on the ruler to divide it." +msgstr "Haga clic en la regla para dividirla." + +#: js/widgets/rhythmruler.js:950 +#: js/widgets/rhythmruler.js:952 +#: js/widgets/rhythmruler.js:1152 +#: js/widgets/rhythmruler.js:1154 +#: js/widgets/rhythmruler.js:1765 +#: js/widgets/rhythmruler.js:1767 +#.TRANS: tocar un ritmo +msgid "tap a rhythm" +msgstr "tocar un ritmo" + +#: js/widgets/rhythmruler.js:1459 +#.TRANS: Se ha superado el valor máximo de 256. +msgid "Maximum value of 256 has been exceeded." +msgstr "Se ha superado el valor máximo de 256." + +#: js/widgets/sampler.js:237 +#.TRANS: Grabación comenzó... +msgid "Recording started..." +msgstr "" + +#: js/widgets/sampler.js:245 +#.TRANS: Grabación completa... +msgid "Recording complete..." +msgstr "" + +#: js/widgets/sampler.js:283 +#.TRANS: Se generó un nuevo bloque de muestra de audio. +msgid "A new sample block was generated." +msgstr "" + +#: js/widgets/sampler.js:378 +#.TRANS: Subir muestra de audio +msgid "Upload sample" +msgstr "" -#: js/LocalCard.js:52 -msgid "Delete project" -msgstr "Borrar proyecto" +#: js/widgets/sampler.js:399 +#.TRANS: Advertencia: Su muestra no se puede cargar porque es >1 MB. +msgid "Warning: Your sample cannot be loaded because it is >1MB." +msgstr "" -#: js/LocalCard.js:53 -msgid "Download project" -msgstr "Descargar proyecto" +#: js/widgets/sampler.js:448 +#.TRANS: Alternar el micrófono +msgid "Toggle Mic" +msgstr "" -#: js/LocalCard.js:55 -msgid "Duplicate project" -msgstr "Duplucar proyecto" +#: js/widgets/sampler.js:458 +#.TRANS: Reproducir +msgid "Playback" +msgstr "" + +#: js/widgets/sampler.js:979 +#.TRANS: The reference tone is a sound used for comparison. +#.TRANS: tono de referencia +msgid "reference tone" +msgstr "" -#: js/GlobalTag.js:28 +#: planet/js/GlobalTag.js:28 #.TRANS: On the Planet, we use labels to tag projects. +#.TRANS: todos los proyectos msgid "All Projects" msgstr "llapam hatun llamk’anakuna" -#: js/GlobalTag.js:30 -#: js/StringHelper.js:37 +#: planet/js/GlobalTag.js:30 +#: planet/js/StringHelper.js:37 #.TRANS: On the Planet, we use labels to tag projects. +#.TRANS: Mis proyectos msgid "My Projects" msgstr "Mis proyectos" -#: js/GlobalTag.js:32 +#: planet/js/GlobalTag.js:32 #.TRANS: On the Planet, we use labels to tag projects. +#.TRANS: ejemplos msgid "Examples" msgstr "ahinakuna" -#: js/GlobalTag.js:34 +#: planet/js/GlobalTag.js:34 #.TRANS: On the Planet, we use labels to tag projects. +#.TRANS: música msgid "Music" msgstr "taki" -#: js/GlobalTag.js:36 +#: planet/js/GlobalTag.js:36 #.TRANS: On the Planet, we use labels to tag projects. +#.TRANS: arte msgid "Art" msgstr "imapas t’ikray" -#: js/GlobalTag.js:38 +#: planet/js/GlobalTag.js:38 #.TRANS: On the Planet, we use labels to tag projects. +#.TRANS: mates msgid "Math" msgstr "mati" -#: js/GlobalTag.js:40 +#: planet/js/GlobalTag.js:40 #.TRANS: On the Planet, we use labels to tag projects. +#.TRANS: interactivo msgid "Interactive" msgstr "llapam llamk’aq" -#: js/GlobalTag.js:42 +#: planet/js/GlobalTag.js:42 #.TRANS: On the Planet, we use labels to tag projects. +#.TRANS: diseño msgid "Design" msgstr "diseño" -#: js/GlobalTag.js:44 +#: planet/js/GlobalTag.js:44 #.TRANS: On the Planet, we use labels to tag projects. +#.TRANS: juego msgid "Game" msgstr "pukllay" -#: js/GlobalTag.js:46 +#: planet/js/GlobalTag.js:46 #.TRANS: On the Planet, we use labels to tag projects. +#.TRANS: medios msgid "Media" msgstr "imayna llamk’anapaq" -#: js/GlobalTag.js:48 +#: planet/js/GlobalTag.js:48 #.TRANS: On the Planet, we use labels to tag projects. +#.TRANS: sensores msgid "Sensors" msgstr "musyapakuq" -#: js/GlobalTag.js:52 +#: planet/js/GlobalTag.js:52 #.TRANS: On the Planet, we use labels to tag projects. +#.TRANS: fragmento de código msgid "Code Snippet" msgstr "" -#: js/helper.js:149 -#: js/StringHelper.js:49 -msgid "Show more tags" -msgstr "Mostrar más etiquetas" +#: planet/js/LocalCard.js:36 +#.TRANS: Ver proyecto publicado +msgid "View published project" +msgstr "Ver proyecto publicado" -#: js/helper.js:150 -msgid "Show fewer tags" -msgstr "pisi sutichasqakuna qhawachiy " +#: planet/js/LocalCard.js:42 +#.TRANS: Publicar proyecto +msgid "Publish project" +msgstr "Publicar proyecto" + +#: planet/js/LocalCard.js:51 +#.TRANS: Editar proyecto +msgid "Edit project" +msgstr "Editar proyecto" + +#: planet/js/LocalCard.js:52 +#.TRANS: Borrar proyecto +msgid "Delete project" +msgstr "Borrar proyecto" + +#: planet/js/LocalCard.js:53 +#.TRANS: Descargar proyecto +msgid "Download project" +msgstr "Descargar proyecto" + +#: planet/js/LocalCard.js:55 +#.TRANS: Duplucar proyecto +msgid "Duplicate project" +msgstr "Duplucar proyecto" + +#: planet/js/ProjectStorage.js:243 +#.TRANS: anónimo +msgid "anonymous" +msgstr "mana sutiyuq" + +#: planet/js/SaveInterface.js:34 +#.TRANS: Abrir en Bloques de Música +msgid "Open in Music Blocks" +msgstr "Taki chiqaspi kichay" + +#: planet/js/SaveInterface.js:35 +#.TRANS: Abierto en TortuBloques +msgid "Open in Turtle Blocks" +msgstr "" + +#: planet/js/GlobalCard.js:68 +#.TRANS: Compartir +msgid "Share" +msgstr "rakinakuy" + +#: planet/js/GlobalCard.js:74 +#.TRANS: Banderas +msgid "Flags" +msgstr "wiphalakuna" -#: js/ProjectViewer.js:30 +#: planet/js/GlobalPlanet.js:35 +#.TRANS: No se han encontrado resultados. +msgid "No results found." +msgstr "No se han encontrado resultados." + +#: planet/js/GlobalPlanet.js:51 +#.TRANS: Remix de +msgid "Remix of" +msgstr "Remix de" + +#: planet/js/GlobalPlanet.js:509 +#.TRANS: No es posible conectar con el servidor. +msgid "Cannot connect to server" +msgstr "No es posible conectar con el servidor." + +#: planet/js/ProjectViewer.js:30 +#.TRANS: Error: No se pudo enviar el informe. Inténtalo de nuevo más tarde. msgid "Error: Report could not be submitted. Try again later." msgstr "pantay: manam willakuy apachiy atikunchu. Wakmanta ch’isiyaykuyman atipayay" -#: js/ProjectViewer.js:31 +#: planet/js/ProjectViewer.js:31 +#.TRANS: Gracias por reportar este proyecto. Un moderador revisará el proyecto en breve para verificar la violación del Código de conducta de Sugar Labs. msgid "Thank you for reporting this project. A moderator will review the project shortly, to verify violation of the Sugar Labs Code of Conduct." msgstr "Añay kay hatun llamk’aymanta willawasqaykimanta. Pisillamantan huk allipunaq hatun llamk’anata qhawanqa, Sugar labspa riqsichinanta qhillichasqanta qhawananpaq" -#: js/ProjectViewer.js:32 -#: js/StringHelper.js:62 -#: js/StringHelper.js:64 -#: js/StringHelper.js:68 +#: planet/js/ProjectViewer.js:32 +#: planet/js/StringHelper.js:62 +#: planet/js/StringHelper.js:64 +#: planet/js/StringHelper.js:68 +#.TRANS: Informe de proyecto msgid "Report Project" msgstr "hatun llamk’aymanta willakuy" -#: js/ProjectViewer.js:33 -#: js/StringHelper.js:63 +#: planet/js/ProjectViewer.js:33 +#: planet/js/StringHelper.js:63 +#.TRANS: Proyecto informado msgid "Project Reported" msgstr "hatun llamk’asqa willasqa" -#: js/ProjectViewer.js:34 +#: planet/js/ProjectViewer.js:34 +#.TRANS: Descripción requerida msgid "Report description required" msgstr "willakusqa mañay" -#: js/ProjectViewer.js:35 +#: planet/js/ProjectViewer.js:35 +#.TRANS: La descripción es demasiado larga. msgid "Report description too long" msgstr "willakuyqa sinchi chutasqa" -#: js/StringHelper.js:30 +#: planet/js/Publisher.js:30 +#.TRANS: Característica no disponible: no se puede conectar al servidor. Vuelve a cargar Bloques de Música para intentarlo de nuevo. +msgid "Feature unavailable - cannot connect to server. Reload Music Blocks to try again." +msgstr " manan imayna kasqan kanchu: manam qarakuqman hap’ichiy atikunchu " + +#: planet/js/Publisher.js:220 +#: planet/js/Publisher.js:237 +#.TRANS: Este campo es requerido. +msgid "This field is required" +msgstr "kay chiqasqa mañasqa" + +#: planet/js/Publisher.js:227 +#.TRANS: Título es demasiado largo. +msgid "Title too long" +msgstr "Sutinqa sinchi hatun" + +#: planet/js/Publisher.js:244 +#.TRANS: La descripción es demasiado largo. +msgid "Description too long" +msgstr "riqsichikuyqa sinchi hatun" + +#: planet/js/Publisher.js:341 +#.TRANS: Error del Servidor +msgid "Server Error" +msgstr "qarakuqpa pantasqan" + +#: planet/js/Publisher.js:341 +#.TRANS: Inténtalo de nuevo +msgid "Try Again" +msgstr "wakmanta rurapakuy" + +#: planet/js/StringHelper.js:30 +#.TRANS: Planeta msgid "Planet" msgstr "Planeta" -#: js/StringHelper.js:31 +#: planet/js/StringHelper.js:31 +#.TRANS: Cerrar Planeta msgid "Close Planet" msgstr "Cerrar Planeta" -#: js/StringHelper.js:32 +#: planet/js/StringHelper.js:32 +#.TRANS: Abrir proyecto desde archivo msgid "Open project from file" msgstr "Abrir proyecto desde archivo" -#: js/StringHelper.js:34 +#: planet/js/StringHelper.js:34 +#.TRANS: Local msgid "Local" msgstr "" -#: js/StringHelper.js:35 +#: planet/js/StringHelper.js:35 +#.TRANS: Global msgid "Global" msgstr "" -#: js/StringHelper.js:36 +#: planet/js/StringHelper.js:36 +#.TRANS: Buscar un proyecto msgid "Search for a project" msgstr "Buscar un proyecto" -#: js/StringHelper.js:38 +#: planet/js/StringHelper.js:38 +#.TRANS: Publicar el proyecto msgid "Publish Project" msgstr "Publicar el proyecto" -#: js/StringHelper.js:40 +#: planet/js/StringHelper.js:40 +#.TRANS: Etiquetas (max 5) msgid "Tags (max 5)" msgstr "Etiquetas (max 5)" -#: js/StringHelper.js:41 -#: js/StringHelper.js:61 +#: planet/js/StringHelper.js:41 +#: planet/js/StringHelper.js:61 +#.TRANS: Descripción msgid "Description" msgstr "Descripción" -#: js/StringHelper.js:42 -#: js/StringHelper.js:67 +#: planet/js/StringHelper.js:42 +#: planet/js/StringHelper.js:67 +#.TRANS: Presentar msgid "Submit" msgstr "Presentar" -#: js/StringHelper.js:43 -#: js/StringHelper.js:47 +#: planet/js/StringHelper.js:43 +#: planet/js/StringHelper.js:47 +#.TRANS: Cancelar msgid "Cancel" msgstr "Cancelar" -#: js/StringHelper.js:44 +#: planet/js/StringHelper.js:44 +#.TRANS: Borrar \\"\\"? msgid "Delete \\"\\"?" msgstr "Borrar \\"\\"?" -#: js/StringHelper.js:45 +#: planet/js/StringHelper.js:45 +#.TRANS: Eliminar permanentemente el proyecto \\"\\"? msgid "Permanently delete project \\"\\"?" msgstr "Eliminar permanentemente el proyecto \\"\\"?" -#: js/StringHelper.js:48 +#: planet/js/StringHelper.js:48 +#.TRANS: Explorar proyectos msgid "Explore Projects" msgstr "Explorar proyectos" -#: js/StringHelper.js:50 +#: planet/js/StringHelper.js:49 +#: planet/js/helper.js:149 +#.TRANS: Mostrar más etiquetas +msgid "Show more tags" +msgstr "Mostrar más etiquetas" + +#: planet/js/StringHelper.js:50 +#.TRANS: Más reciente msgid "Most recent" msgstr "Más reciente" -#: js/StringHelper.js:51 +#: planet/js/StringHelper.js:51 +#.TRANS: Más gustado msgid "Most liked" msgstr "Más gustado" -#: js/StringHelper.js:52 +#: planet/js/StringHelper.js:52 +#.TRANS: Más descargados msgid "Most downloaded" msgstr "achka apaqasqakuna" -#: js/StringHelper.js:53 +#: planet/js/StringHelper.js:53 +#.TRANS: A-Z msgid "A-Z" msgstr "" -#: js/StringHelper.js:54 +#: planet/js/StringHelper.js:54 +#.TRANS: Ordenar por msgid "Sort by" msgstr "kamachisqa" -#: js/StringHelper.js:55 +#: planet/js/StringHelper.js:55 +#.TRANS: Cargar más proyectos msgid "Load More Projects" msgstr "astawan hatun llamk’aykunata q’ipichay" -#: js/StringHelper.js:56 +#: planet/js/StringHelper.js:56 +#.TRANS: Última actualización msgid "Last Updated" msgstr "qhipa kunanchay" -#: js/StringHelper.js:57 +#: planet/js/StringHelper.js:57 +#.TRANS: Fecha de creación msgid "Creation Date" msgstr "paqarichisqa p’unchaw" -#: js/StringHelper.js:58 +#: planet/js/StringHelper.js:58 +#.TRANS: Numero de descargas: msgid "Number of Downloads:" msgstr "apaqasqa yupay" -#: js/StringHelper.js:59 +#: planet/js/StringHelper.js:59 +#.TRANS: Número de me gusta: msgid "Number of Likes:" msgstr "munasqay yupay" -#: js/StringHelper.js:60 +#: planet/js/StringHelper.js:60 +#.TRANS: Etiquetas: msgid "Tags:" msgstr "sutichasqakuna" -#: js/StringHelper.js:65 +#: planet/js/StringHelper.js:65 +#.TRANS: Reportar proyectos que violen el código de conducta de Sugar Labs. msgid "Report projects which violate the Sugar Labs Code of Conduct." msgstr " hatun llamk’aymanta willakuy may llik'iy" -#: js/StringHelper.js:66 +#: planet/js/StringHelper.js:66 +#.TRANS: Razón para informar el proyecto msgid "Reason for reporting project" msgstr "Ima rayku hatun llamk’anamanta willakuy" -#: js/StringHelper.js:70 +#: planet/js/StringHelper.js:70 +#.TRANS: Descargar como archivo msgid "Download as File" msgstr "waqaychasqatahina apaqana" -#: js/GlobalPlanet.js:35 -msgid "No results found." -msgstr "No se han encontrado resultados." - -#: js/GlobalPlanet.js:51 -msgid "Remix of" -msgstr "Remix de" - -#: js/GlobalPlanet.js:509 -msgid "Cannot connect to server" -msgstr "No es posible conectar con el servidor." - -#: js/Publisher.js:30 -msgid "Feature unavailable - cannot connect to server. Reload Music Blocks to try again." -msgstr " manan imayna kasqan kanchu: manam qarakuqman hap’ichiy atikunchu " - -#: js/Publisher.js:218 -#: js/Publisher.js:235 -msgid "This field is required" -msgstr "kay chiqasqa mañasqa" +#: planet/js/helper.js:150 +#.TRANS: Mostrar menos etiquetas +msgid "Show fewer tags" +msgstr "pisi sutichasqakuna qhawachiy " -#: js/Publisher.js:225 -msgid "Title too long" -msgstr "Sutinqa sinchi hatun" +#: plugins/accelerometer.rtp:48 +#.TRANS: x del acelerómetro +msgid "motion x" +msgstr "x del acelerómetro" -#: js/Publisher.js:242 -msgid "Description too long" -msgstr "riqsichikuyqa sinchi hatun" +#: plugins/accelerometer.rtp:56 +#.TRANS: y del acelerómetro +msgid "motion y" +msgstr "y del acelerómetro" -#: js/Publisher.js:339 -msgid "Server Error" -msgstr "qarakuqpa pantasqan" +#: plugins/accelerometer.rtp:64 +#.TRANS: z del acelerómetro +msgid "motion z" +msgstr "z del acelerómetro" -#: js/Publisher.js:339 -msgid "Try Again" -msgstr "wakmanta rurapakuy" +#: plugins/facebook.rtp:27 +#.TRANS: publicar +msgid "publish" +msgstr "publicar" -#: js/SaveInterface.js:34 -msgid "Open in Music Blocks" -msgstr "Taki chiqaspi kichay" +#: plugins/maths.rtp:62 +#.TRANS: poder +msgid "power" +msgstr "poder" -#: js/SaveInterface.js:35 -msgid "Open in Turtle Blocks" +#: plugins/maths.rtp:62 +#.TRANS: base +msgid "base" msgstr "" -#: plugins/weather.rtp:68 -#: plugins/weather.rtp:97 -msgid "Days ahead must be in the range of -1 to 5." -msgstr "Los días siguientes deben estar en el rango de -1 a 5." - -#: plugins/weather.rtp:122 -msgid "forecast" -msgstr "pronóstico" +#: plugins/maths.rtp:62 +#.TRANS: exp +msgid "exp" +msgstr "" -#: plugins/weather.rtp:123 -#: plugins/weather.rtp:137 -#: plugins/weather.rtp:150 -msgid "city" -msgstr "ciudad" +#: plugins/maths.rtp:99 +#.TRANS: piso +msgid "floor" +msgstr "piso" -#: plugins/weather.rtp:124 -#: plugins/weather.rtp:138 -#: plugins/weather.rtp:151 -msgid "day" -msgstr "día" +#: plugins/maths.rtp:104 +#.TRANS: techo +msgid "ceiling" +msgstr "techo" -#: plugins/weather.rtp:136 -msgid "high" -msgstr "alta" +#: plugins/maths.rtp:109 +#.TRANS: a grados +msgid "to degrees" +msgstr "a grados" -#: plugins/weather.rtp:149 -msgid "low" -msgstr "baja" +#: plugins/maths.rtp:114 +#.TRANS: a radianes +msgid "to radians" +msgstr "a radianes" #: plugins/nutrition.rtp:104 +#.TRANS: obtener calorías msgid "get calories" msgstr "obtener calorías" #: plugins/nutrition.rtp:107 +#.TRANS: obtener proteínas msgid "get protein" msgstr "obtener proteínas" #: plugins/nutrition.rtp:110 +#.TRANS: obtener carbohidratos msgid "get carbs" msgstr "obtener carbohidratos" #: plugins/nutrition.rtp:113 +#.TRANS: obtener fibra msgid "get fiber" msgstr "obtener fibra" #: plugins/nutrition.rtp:116 +#.TRANS: obtener grasas msgid "get fat" msgstr "obtener grasas" #: plugins/nutrition.rtp:119 +#.TRANS: obtener nombre msgid "get name" msgstr "obtener nombre" #: plugins/nutrition.rtp:122 +#.TRANS: calorías msgid "calories" msgstr "calorías" #: plugins/nutrition.rtp:128 +#.TRANS: proteína msgid "protein" msgstr "proteína" #: plugins/nutrition.rtp:134 +#.TRANS: carbohidratos msgid "carbs" msgstr "carbohidratos" #: plugins/nutrition.rtp:140 +#.TRANS: fibra msgid "fiber" msgstr "fibra" #: plugins/nutrition.rtp:146 +#.TRANS: grasa msgid "fat" msgstr "grasa" #: plugins/nutrition.rtp:152 +#.TRANS: comer msgid "eat" msgstr "comer" #: plugins/nutrition.rtp:155 +#.TRANS: digerir msgid "digest meal" msgstr "digerir" #: plugins/nutrition.rtp:158 +#.TRANS: manzana msgid "apple" msgstr "manzana" #: plugins/nutrition.rtp:161 +#.TRANS: banana msgid "banana" msgstr "" #: plugins/nutrition.rtp:167 +#.TRANS: pan msgid "wheat bread" msgstr "pan" #: plugins/nutrition.rtp:170 +#.TRANS: maíz msgid "corn" msgstr "maíz" #: plugins/nutrition.rtp:173 +#.TRANS: papa msgid "potato" msgstr "papa" #: plugins/nutrition.rtp:176 +#.TRANS: boñato msgid "sweet potato" msgstr "boñato" #: plugins/nutrition.rtp:179 +#.TRANS: tomate msgid "tomato" msgstr "tomate" #: plugins/nutrition.rtp:182 +#.TRANS: brócoli msgid "broccoli" msgstr "brócoli" #: plugins/nutrition.rtp:185 +#.TRANS: arroz y frijoles msgid "rice and beans" msgstr "arroz y frijoles" #: plugins/nutrition.rtp:188 +#.TRANS: tamal msgid "tamale" msgstr "tamal" #: plugins/nutrition.rtp:191 +#.TRANS: queso msgid "cheese" msgstr "queso" #: plugins/nutrition.rtp:194 +#.TRANS: pollo msgid "chicken" msgstr "pollo" #: plugins/nutrition.rtp:197 +#.TRANS: pescado msgid "fish" msgstr "pescado" #: plugins/nutrition.rtp:200 +#.TRANS: carne de res msgid "beef" msgstr "carne de res" #: plugins/nutrition.rtp:203 +#.TRANS: pastel msgid "cake" msgstr "pastel" #: plugins/nutrition.rtp:206 +#.TRANS: galleta msgid "cookie" msgstr "galleta" #: plugins/nutrition.rtp:209 +#.TRANS: agua msgid "water" msgstr "agua" -#: plugins/maths.rtp:62 -#: plugins/examples.rtp:93 -msgid "power" -msgstr "poder" - -#: plugins/maths.rtp:62 -#: plugins/examples.rtp:93 -msgid "base" -msgstr "" - -#: plugins/maths.rtp:62 -#: plugins/examples.rtp:93 -msgid "exp" -msgstr "" - -#: plugins/maths.rtp:99 -#: plugins/examples.rtp:130 -msgid "floor" -msgstr "piso" - -#: plugins/maths.rtp:104 -#: plugins/examples.rtp:135 -msgid "ceiling" -msgstr "techo" - -#: plugins/maths.rtp:109 -#: plugins/examples.rtp:140 -msgid "to degrees" -msgstr "a grados" - -#: plugins/maths.rtp:114 -#: plugins/examples.rtp:145 -msgid "to radians" -msgstr "a radianes" - -#: plugins/facebook.rtp:27 -msgid "publish" -msgstr "publicar" - #: plugins/rodi.rtp:172 +#.TRANS: parpadear msgid "blink" msgstr "parpadear" #: plugins/rodi.rtp:191 +#.TRANS: tocar msgid "play" msgstr "tocar" #: plugins/rodi.rtp:246 +#.TRANS: LED msgid "led" msgstr "" #: plugins/rodi.rtp:265 +#.TRANS: intensidad de luz msgid "light intensity" msgstr "intensidad de luz" #: plugins/rodi.rtp:282 +#.TRANS: luz infrarroja (izquierda) msgid "infrared light (left)" msgstr "luz infrarroja (izquierda)" #: plugins/rodi.rtp:296 +#.TRANS: luz infrarroja (derecha) msgid "infrared light (right)" msgstr "luz infrarroja (derecha)" #: plugins/rodi.rtp:338 +#.TRANS: mover msgid "move" msgstr "mover" -#: plugins/accelerometer.rtp:48 -msgid "motion x" -msgstr "x del acelerómetro" +#: plugins/weather.rtp:68 +#: plugins/weather.rtp:97 +#.TRANS: Los días siguientes deben estar en el rango de -1 a 5. +msgid "Days ahead must be in the range of -1 to 5." +msgstr "Los días siguientes deben estar en el rango de -1 a 5." -#: plugins/accelerometer.rtp:56 -msgid "motion y" -msgstr "y del acelerómetro" +#: plugins/weather.rtp:122 +#.TRANS: pronóstico +msgid "forecast" +msgstr "pronóstico" -#: plugins/accelerometer.rtp:64 -msgid "motion z" -msgstr "z del acelerómetro" +#: plugins/weather.rtp:123 +#: plugins/weather.rtp:137 +#: plugins/weather.rtp:150 +#.TRANS: ciudad +msgid "city" +msgstr "ciudad" + +#: plugins/weather.rtp:124 +#: plugins/weather.rtp:138 +#: plugins/weather.rtp:151 +#.TRANS: día +msgid "day" +msgstr "día" + +#: plugins/weather.rtp:136 +#.TRANS: alta +msgid "high" +msgstr "alta" + +#: plugins/weather.rtp:149 +#.TRANS: baja +msgid "low" +msgstr "baja" + +#: js/toolbar.js:70 + +#: js/toolbar.js:130 + +#: js/toolbar.js:194 + +#: js/toolbar.js:249 + +#~msgid "Toggle JavaScript Editor" +#~msgstr "" + +#: js/EnsembleBlocks.js:643 + +#~msgid "The Turrle pitch block returns the current pitch number being played by the specified turtle." +#~msgstr "" + +#: js/PitchActions.js:88 + +#~msgid "The Scalar Step Block must be used inside of a Note Block." +#~msgstr "" + +#: js/PitchActions.js:107 + +#~msgid "The Scalar Step Block must be preceded by a Pitch Block." +#~msgstr "" + +#: js/musickeyboard.js:2840 + +#~msgid "New action blocks generated!" +#~msgstr "" #: js/toolbar.js:110 @@ -8166,11 +10116,6 @@ msgstr "z del acelerómetro" #~msgid "The Time block returns the number of seconds that the program has been running." #~msgstr "" -#: js/help.js:95 - -#~msgid "Take a tour" -#~msgstr "pusay" - #: js/GlobalCard.js:48 #~msgid "More Details" diff --git a/po/ro.po b/po/ro.po index a63582b489..77a95ed508 100644 --- a/po/ro.po +++ b/po/ro.po @@ -2130,276 +2130,131 @@ #: js/planetInterface.js:104 #: js/planetInterface.js:104 #: js/planetInterface.js:104 -msgid "project undefined" -msgstr "" - -#: js/logo.js:61 -msgid "Not a valid pitch name" -msgstr "" - -#: js/logo.js:507 -#: js/ProgramBlocks.js:258 -#: js/ProgramBlocks.js:427 -msgid "You must select a file." -msgstr "" - -#: js/logo.js:1184 -#: js/turtles.js:118 -#: js/turtle-painter.js:1192 -#: js/turtle-painter.js:1193 -#: js/block.js:1463 -#: js/lilypond.js:757 -#: js/lilypond.js:921 -#: js/lilypond.js:959 -#: js/ActionBlocks.js:1223 -#: js/ProgramBlocks.js:1267 -msgid "start" -msgstr "" - -#: js/logo.js:1696 -msgid "Playback is ready." -msgstr "" - -#: js/blocks.js:1011 -#: js/blocks.js:3427 -#: js/blocks.js:3428 -#: js/blocks.js:3653 -#: js/blocks.js:4012 -#: js/blocks.js:4205 -#: js/blocks.js:5343 -#: js/blocks.js:6474 -#: js/palette.js:527 -#: js/palette.js:536 -#: js/palette.js:545 -#: js/palette.js:554 -#: js/palette.js:1131 -#: js/palette.js:1142 -#: js/palette.js:1153 -#: js/palette.js:1164 -#: js/palette.js:1183 -#: js/rubrics.js:529 -#: js/macros.js:170 -#: js/macros.js:266 -#: js/macros.js:267 -#: js/macros.js:276 -#: js/macros.js:828 -#: js/block.js:1449 -#: js/block.js:4164 -#: js/block.js:4182 -#: js/block.js:4193 -#: js/turtledefs.js:128 -#: js/turtledefs.js:230 -#: js/ActionBlocks.js:254 -#: js/ActionBlocks.js:307 -#: js/ActionBlocks.js:617 -#: js/ActionBlocks.js:716 -#: js/ActionBlocks.js:961 -#: js/ActionBlocks.js:1049 -#: js/ActionBlocks.js:1322 -#: js/ActionBlocks.js:1325 -#: js/ActionBlocks.js:1337 -#: js/ActionBlocks.js:1404 -#: js/MeterBlocks.js:715 -#: js/MeterBlocks.js:768 -#: js/MeterBlocks.js:831 -#: js/MeterBlocks.js:892 -#: js/phrasemaker.js:4412 -#: js/musickeyboard.js:2647 -#: js/rhythmruler.js:1928 -#: js/rhythmruler.js:1935 -#: js/rhythmruler.js:2119 -#: js/rhythmruler.js:2126 -msgid "action" -msgstr "" - -#: js/blocks.js:1205 -#: js/blocks.js:3380 -#: js/blocks.js:3770 -#: js/blocks.js:3801 -#: js/blocks.js:3850 -#: js/blocks.js:3885 -#: js/blocks.js:6497 -#: js/palette.js:509 -#: js/palette.js:638 -#: js/palette.js:1107 -#: js/BoxesBlocks.js:282 -#: js/BoxesBlocks.js:285 -#: js/BoxesBlocks.js:405 -#: js/BoxesBlocks.js:594 -msgid "box" -msgstr "" - -#: js/blocks.js:1680 -msgid "Consider breaking this stack into parts." +#: js/SaveInterface.js:59 +#: js/SaveInterface.js:61 +#: js/SaveInterface.js:93 +msgid "Music Blocks Project" msgstr "" -#: js/blocks.js:2408 -#: js/palette.js:653 -#: js/MediaBlocks.js:602 -msgid "open file" +#: js/SaveInterface.js:63 +msgid "This project was created in Music Blocks" msgstr "" -#: js/blocks.js:2415 -#: js/blocks.js:2423 -#: js/activity.js:1875 -msgid "audio file" +#: js/SaveInterface.js:67 +msgid "Music Blocks is a Free/Libre Software application." msgstr "" -#: js/blocks.js:2536 -#: js/blocks.js:3147 -#: js/block.js:3543 -msgid "on2" +#: js/SaveInterface.js:69 +msgid "The source code can be accessed at" msgstr "" -#: js/blocks.js:2538 -#: js/blocks.js:3149 -#: js/block.js:3545 -msgid "off" +#: js/SaveInterface.js:72 +msgid "For more information, please consult the" msgstr "" -#: js/blocks.js:2543 -#: js/blocks.js:3154 -#: js/palette.js:618 -#: js/block.js:3466 -#: js/BooleanBlocks.js:77 -#: js/BooleanBlocks.js:167 -#: js/BooleanBlocks.js:251 -#: js/BooleanBlocks.js:335 -#: js/BooleanBlocks.js:433 -#: js/BooleanBlocks.js:539 -#: js/BooleanBlocks.js:640 -#: js/BooleanBlocks.js:741 -#: js/BooleanBlocks.js:847 -#: js/BooleanBlocks.js:948 -#: js/BooleanBlocks.js:1033 -#: js/SensorsBlocks.js:910 -msgid "true" +#: js/SaveInterface.js:76 +#: js/turtledefs.js:795 +msgid "Music Blocks Guide" msgstr "" -#: js/blocks.js:2545 -#: js/blocks.js:3156 -#: js/block.js:3466 -#: js/BooleanBlocks.js:79 -#: js/BooleanBlocks.js:169 -#: js/BooleanBlocks.js:253 -#: js/BooleanBlocks.js:337 -#: js/BooleanBlocks.js:435 -#: js/BooleanBlocks.js:541 -#: js/BooleanBlocks.js:642 -#: js/BooleanBlocks.js:743 -#: js/BooleanBlocks.js:849 -#: js/BooleanBlocks.js:950 -#: js/SensorsBlocks.js:912 -msgid "false" +#: js/SaveInterface.js:83 +msgid "Alternatively, open the file in Music Blocks using the Load project button." msgstr "" -#: js/blocks.js:3183 -#: js/palette.js:574 -#: js/MediaBlocks.js:892 -#: js/MediaBlocks.js:963 -msgid "text" +#: js/SaveInterface.js:85 +msgid "Project Code" msgstr "" -#: js/blocks.js:3379 -#: js/palette.js:641 -#: js/palette.js:642 -#: js/BoxesBlocks.js:514 -msgid "store in box" +#: js/SaveInterface.js:87 +msgid "This code stores data about the blocks in a project." msgstr "" -#: js/blocks.js:3384 -#: js/blocks.js:3824 -#: js/blocks.js:3859 -#: js/blocks.js:3894 -#: js/blocks.js:5773 -#: js/blocks.js:5794 -#: js/BoxesBlocks.js:772 -msgid "box1" +#: js/SaveInterface.js:89 +msgid "Show" msgstr "" -#: js/blocks.js:3386 -#: js/blocks.js:3826 -#: js/blocks.js:3861 -#: js/blocks.js:3896 -#: js/blocks.js:5775 -#: js/blocks.js:5796 -#: js/BoxesBlocks.js:663 -msgid "box2" +#: js/SaveInterface.js:91 +msgid "Hide" msgstr "" -#: js/blocks.js:4058 -#: js/palette.js:639 -#: js/palette.js:644 -#: js/palette.js:1043 -#: js/BoxesBlocks.js:591 -msgid "store in" +#: js/SaveInterface.js:131 +#: js/SaveInterface.js:204 +#: js/SaveInterface.js:262 +#: js/SaveInterface.js:389 +#: js/SaveInterface.js:417 +#: js/activity.js:4884 +#: planet/js/ProjectStorage.js:27 +#: planet/js/GlobalPlanet.js:467 +#: planet/js/GlobalPlanet.js:469 +#: planet/js/GlobalPlanet.js:495 +#.TRANS: default project title when saving as Lilypond +msgid "My Project" msgstr "" -#: js/blocks.js:4058 -#: js/EnsembleBlocks.js:391 -#: js/EnsembleBlocks.js:402 -#: js/MediaBlocks.js:746 -#: js/ProgramBlocks.js:390 -#: js/ProgramBlocks.js:495 -#: js/ProgramBlocks.js:658 -#: js/BoxesBlocks.js:595 -#: js/PitchBlocks.js:656 -#: js/PitchBlocks.js:932 -#: js/PitchBlocks.js:1827 -#: js/ToneBlocks.js:1025 -#: js/DictBlocks.js:215 -#: js/DictBlocks.js:289 -msgid "name" +#: js/SaveInterface.js:197 +#: planet/js/SaveInterface.js:58 +msgid "No description provided" msgstr "" -#: js/blocks.js:4058 -#: js/RhythmBlocks.js:1130 -#: js/BoxesBlocks.js:75 -#: js/BoxesBlocks.js:595 -#: js/HeapBlocks.js:544 -#: js/DictBlocks.js:289 -#: js/DictBlocks.js:430 -msgid "value" +#: js/SaveInterface.js:332 +msgid "Your recording is in progress." msgstr "" -#: js/blocks.js:4907 -msgid "There is no block selected." +#: js/SaveInterface.js:401 +#.TRANS: File name prompt for save as Lilypond +msgid "File name" msgstr "" -#: js/blocks.js:5002 -#: js/MediaBlocks.js:888 -msgid "show" +#: js/SaveInterface.js:403 +#: planet/js/StringHelper.js:39 +#.TRANS: Project title prompt for save as Lilypond +msgid "Project title" msgstr "" -#: js/blocks.js:5005 -#: js/MediaBlocks.js:803 -#.TRANS: Avatar is the image used to determine the appearance of the mouse. -msgid "avatar" +#: js/SaveInterface.js:405 +#.TRANS: Project title prompt for save as Lilypond +msgid "Project author" msgstr "" -#: js/blocks.js:5008 -#: js/ToneBlocks.js:1010 -#: js/sampler.js:693 -#.TRANS: The sound sample that the user uploads. -msgid "sample" +#: js/SaveInterface.js:407 +#.TRANS: MIDI prompt for save as Lilypond +msgid "Include MIDI output?" msgstr "" -#: js/turtles.js:874 -msgid "Grid" +#: js/SaveInterface.js:409 +#.TRANS: Guitar prompt for save as Lilypond +msgid "Include guitar tablature output?" msgstr "" -#: js/turtles.js:891 -#: js/turtledefs.js:626 -msgid "Clean" +#: js/SaveInterface.js:411 +#.TRANS: Lilypond is a scripting language for generating sheet music +msgid "Save as Lilypond" msgstr "" -#: js/turtles.js:912 -#: js/turtledefs.js:632 -msgid "Collapse" +#: js/SaveInterface.js:426 +#: js/blocks/EnsembleBlocks.js:75 +#: js/blocks/EnsembleBlocks.js:154 +#: js/blocks/EnsembleBlocks.js:216 +#: js/blocks/EnsembleBlocks.js:302 +#: js/blocks/EnsembleBlocks.js:348 +#: js/blocks/EnsembleBlocks.js:389 +#: js/blocks/EnsembleBlocks.js:441 +#: js/blocks/EnsembleBlocks.js:490 +#: js/blocks/EnsembleBlocks.js:536 +#: js/blocks/EnsembleBlocks.js:583 +#: js/blocks/EnsembleBlocks.js:637 +#: js/blocks/EnsembleBlocks.js:753 +#: js/blocks/EnsembleBlocks.js:840 +#: js/blocks/EnsembleBlocks.js:899 +#: js/blocks/EnsembleBlocks.js:942 +#: js/blocks/EnsembleBlocks.js:1212 +#: js/blocks/EnsembleBlocks.js:1280 +#.TRANS: default project author when saving as Lilypond +msgid "Mr. Mouse" msgstr "" -#: js/turtles.js:940 -msgid "Expand" +#: js/SaveInterface.js:573 +msgid "The Lilypond code is copied to clipboard. You can paste it here: " msgstr "" #: js/languagebox.js:198 @@ -2410,6933 +2265,7487 @@ msgstr "" msgid "Music Blocks is already set to this language." msgstr "" -#: js/piemenus.js:200 -#: js/musicutils.js:808 -#: js/musicutils.js:824 -#: js/phrasemaker.js:1672 -#: js/musickeyboard.js:2041 -#: js/sampler.js:544 -#.TRANS: double sharp is a music term related to pitch -msgid "double sharp" +#: js/planetInterface.js:131 +msgid "project undefined" msgstr "" -#: js/piemenus.js:201 -#: js/PitchBlocks.js:1510 -#: js/PitchActions.js:580 -#: js/musicutils.js:806 -#: js/musicutils.js:825 -#: js/phrasemaker.js:1673 -#: js/musickeyboard.js:2042 -#: js/sampler.js:545 -#.TRANS: sharp is a half-step up in pitch -#.TRANS: sharp is a music term related to pitch -msgid "sharp" +#: js/rubrics.js:523 +#: js/turtledefs.js:119 +#: js/turtledefs.js:221 +#: js/blocks/RhythmBlockPaletteBlocks.js:52 +#: js/blocks/RhythmBlockPaletteBlocks.js:234 +#: js/blocks/ProgramBlocks.js:745 +#: js/widgets/rhythmruler.js:2057 +#: js/widgets/rhythmruler.js:2064 +#: js/widgets/rhythmruler.js:2133 +#: js/widgets/rhythmruler.js:2140 +#: js/widgets/rhythmruler.js:2219 +#.TRANS: an arrangement of notes based on duration +msgid "rhythm" msgstr "" -#: js/piemenus.js:202 -#: js/musicutils.js:804 -#: js/musicutils.js:826 -#: js/phrasemaker.js:1674 -#: js/musickeyboard.js:2043 -#: js/sampler.js:546 -#.TRANS: natural is a music term related to pitch -msgid "natural" +#: js/rubrics.js:524 +#: js/turtledefs.js:121 +#: js/turtledefs.js:223 +#: js/block-verbose.js:2622 +#: js/block.js:2550 +#: js/blocks/IntervalsBlocks.js:63 +#: js/blocks/SensorsBlocks.js:178 +#: js/blocks/PitchBlocks.js:1839 +#: js/blocks/PitchBlocks.js:1853 +#: js/widgets/musickeyboard.js:1935 +#: js/widgets/phrasemaker.js:1036 +#.TRANS: pitch number +#.TRANS: pitch number +#.TRANS: we specify pitch in terms of a name and an octave. The name can be CDEFGAB or Do Re Mi Fa Sol La Ti. Octave is a number between 1 and 8. +msgid "pitch" msgstr "" -#: js/piemenus.js:203 -#: js/PitchBlocks.js:1469 -#: js/PitchActions.js:583 -#: js/musicutils.js:802 -#: js/musicutils.js:827 -#: js/phrasemaker.js:1675 -#: js/musickeyboard.js:2044 -#: js/sampler.js:547 -#.TRANS: flat is a half-step down in pitch -#.TRANS: flat is a music term related to pitch -msgid "flat" +#: js/rubrics.js:525 +#: js/turtledefs.js:123 +#: js/turtledefs.js:225 +msgid "tone" msgstr "" -#: js/piemenus.js:204 -#: js/musicutils.js:800 -#: js/musicutils.js:828 -#: js/phrasemaker.js:1676 -#: js/musickeyboard.js:2045 -#: js/sampler.js:548 -#.TRANS: double flat is a music term related to pitch -msgid "double flat" +#: js/rubrics.js:526 +#: js/lilypond.js:605 +#: js/lilypond.js:904 +#: js/lilypond.js:910 +#: js/lilypond.js:948 +msgid "mouse" msgstr "" -#: js/piemenus.js:2861 -#: js/PitchBlocks.js:1357 -#: js/musicutils.js:627 -#.TRANS: unison means the note is the same as the current note -#.TRANS: unison is a music term related to intervals -msgid "unison" +#: js/rubrics.js:527 +#: js/turtledefs.js:132 +#: js/turtledefs.js:234 +#: js/widgets/phrasemaker.js:1040 +msgid "pen" msgstr "" -#: js/piemenus.js:3015 -#: js/piemenus.js:3088 -#: js/musicutils.js:635 -#: js/musicutils.js:810 -#: js/musicutils.js:912 -#.TRANS: major is a music term related to intervals and mode -msgid "major" +#: js/rubrics.js:528 +#: js/turtledefs.js:133 +#: js/turtledefs.js:235 +#: js/blocks/NumberBlocks.js:981 +#: js/blocks/PitchBlocks.js:1717 +#: js/blocks/PitchBlocks.js:1758 +msgid "number" msgstr "" -#: js/piemenus.js:3015 -#: js/piemenus.js:3088 -#: js/musicutils.js:653 -#.TRANS: modal scale for music -msgid "ionian" +#: js/rubrics.js:529 +#: js/turtledefs.js:127 +#: js/turtledefs.js:229 +msgid "flow" msgstr "" -#: js/piemenus.js:3017 -#: js/piemenus.js:3092 -#: js/musicutils.js:633 -#: js/musicutils.js:811 -#: js/musicutils.js:909 -#.TRANS: minor is a music term related to intervals and mode -msgid "minor" +#: js/rubrics.js:530 +#: js/turtledefs.js:128 +#: js/turtledefs.js:230 +#: js/block-verbose.js:1609 +#: js/block-verbose.js:4559 +#: js/block-verbose.js:4577 +#: js/block-verbose.js:4588 +#: js/block.js:1573 +#: js/block.js:4483 +#: js/block.js:4501 +#: js/block.js:4512 +#: js/blocks.js:1018 +#: js/blocks.js:3491 +#: js/blocks.js:3492 +#: js/blocks.js:3717 +#: js/blocks.js:4076 +#: js/blocks.js:4269 +#: js/blocks.js:5432 +#: js/blocks.js:6563 +#: js/macros.js:170 +#: js/macros.js:266 +#: js/macros.js:267 +#: js/macros.js:276 +#: js/macros.js:828 +#: js/palette.js:527 +#: js/palette.js:536 +#: js/palette.js:545 +#: js/palette.js:554 +#: js/palette.js:1129 +#: js/palette.js:1140 +#: js/palette.js:1151 +#: js/palette.js:1162 +#: js/palette.js:1181 +#: js/blocks/ActionBlocks.js:254 +#: js/blocks/ActionBlocks.js:307 +#: js/blocks/ActionBlocks.js:617 +#: js/blocks/ActionBlocks.js:716 +#: js/blocks/ActionBlocks.js:961 +#: js/blocks/ActionBlocks.js:1049 +#: js/blocks/ActionBlocks.js:1322 +#: js/blocks/ActionBlocks.js:1325 +#: js/blocks/ActionBlocks.js:1337 +#: js/blocks/ActionBlocks.js:1404 +#: js/blocks/MeterBlocks.js:715 +#: js/blocks/MeterBlocks.js:768 +#: js/blocks/MeterBlocks.js:831 +#: js/blocks/MeterBlocks.js:892 +#: js/widgets/musickeyboard.js:2986 +#: js/widgets/phrasemaker.js:4913 +#: js/widgets/rhythmruler.js:2319 +#: js/widgets/rhythmruler.js:2326 +#: js/widgets/rhythmruler.js:2511 +#: js/widgets/rhythmruler.js:2518 +msgid "action" msgstr "" -#: js/piemenus.js:3017 -#: js/piemenus.js:3092 -#: js/musicutils.js:663 -#.TRANS: modal scale for music -msgid "aeolian" +#: js/rubrics.js:531 +#: js/turtledefs.js:136 +#: js/turtledefs.js:238 +msgid "sensors" msgstr "" -#: js/piemenus.js:3407 -msgid "Duplicate" +#: js/rubrics.js:532 +#: js/turtledefs.js:135 +#: js/turtledefs.js:237 +#: js/blocks/MediaBlocks.js:930 +msgid "media" msgstr "" -#: js/piemenus.js:3408 -#: js/turtledefs.js:534 -msgid "Extract" +#: js/rubrics.js:533 +msgid "mice" msgstr "" -#: js/piemenus.js:3409 -msgid "Move to trash" +#: js/toolbar.js:48 +#: js/toolbar.js:109 +msgid "About Music Blocks" msgstr "" -#: js/piemenus.js:3410 -#: js/timbre.js:968 -#: js/StringHelper.js:69 -msgid "Close" +#: js/toolbar.js:49 +#: js/toolbar.js:110 +#: js/toolbar.js:175 +#: js/toolbar.js:231 +#: js/turtledefs.js:445 +#: js/turtledefs.js:482 +#: js/activity.js:2660 +#: js/activity.js:2671 +#: js/activity.js:2902 +#: js/widgets/modewidget.js:77 +#: js/widgets/meterwidget.js:185 +#: js/widgets/pitchdrummatrix.js:147 +#: js/widgets/pitchdrummatrix.js:687 +#: js/widgets/pitchdrummatrix.js:689 +#: js/widgets/pitchdrummatrix.js:741 +#: js/widgets/pitchdrummatrix.js:743 +#: js/widgets/pitchdrummatrix.js:758 +#: js/widgets/pitchdrummatrix.js:760 +#: js/widgets/pitchdrummatrix.js:789 +#: js/widgets/pitchdrummatrix.js:791 +#: js/widgets/pitchstaircase.js:121 +#: js/widgets/temperament.js:610 +#: js/widgets/temperament.js:613 +#: js/widgets/temperament.js:673 +#: js/widgets/temperament.js:675 +#: js/widgets/temperament.js:2017 +#: js/widgets/temperament.js:2019 +#: js/widgets/tempo.js:84 +#: js/widgets/tempo.js:86 +#: js/widgets/timbre.js:432 +#: js/widgets/timbre.js:434 +#: js/widgets/timbre.js:465 +#: js/widgets/timbre.js:467 +#: js/widgets/timbre.js:746 +#: js/widgets/aiwidget.js:647 +#: js/widgets/aiwidget.js:654 +#: js/widgets/aiwidget.js:656 +#: js/widgets/arpeggio.js:90 +#: js/widgets/arpeggio.js:547 +#: js/widgets/arpeggio.js:549 +#: js/widgets/arpeggio.js:644 +#: js/widgets/arpeggio.js:646 +#: js/widgets/musickeyboard.js:676 +#: js/widgets/musickeyboard.js:872 +#: js/widgets/musickeyboard.js:874 +#: js/widgets/musickeyboard.js:953 +#: js/widgets/musickeyboard.js:955 +#: js/widgets/phrasemaker.js:513 +#: js/widgets/phrasemaker.js:523 +#: js/widgets/phrasemaker.js:525 +#: js/widgets/phrasemaker.js:4304 +#: js/widgets/phrasemaker.js:4528 +#: js/widgets/phrasemaker.js:4533 +#: js/widgets/phrasemaker.js:4535 +#: js/widgets/phrasemaker.js:4650 +#: js/widgets/rhythmruler.js:637 +#: js/widgets/rhythmruler.js:639 +#: js/widgets/rhythmruler.js:653 +#: js/widgets/rhythmruler.js:655 +#: js/widgets/sampler.js:162 +#: js/widgets/sampler.js:164 +#: js/widgets/sampler.js:363 +msgid "Play" msgstr "" -#: js/piemenus.js:3416 -msgid "Save stack" +#: js/toolbar.js:50 +#: js/toolbar.js:111 +#: js/toolbar.js:176 +#: js/toolbar.js:232 +#: js/turtledefs.js:451 +#: js/turtledefs.js:488 +#: js/activity.js:2679 +#: js/widgets/modewidget.js:99 +#: js/widgets/modewidget.js:101 +#: js/widgets/meterwidget.js:206 +#: js/widgets/meterwidget.js:208 +#: js/widgets/pitchdrummatrix.js:674 +#: js/widgets/pitchdrummatrix.js:676 +#: js/widgets/temperament.js:2002 +#: js/widgets/temperament.js:2004 +#: js/widgets/arpeggio.js:534 +#: js/widgets/arpeggio.js:536 +#: js/widgets/phrasemaker.js:534 +#: js/widgets/phrasemaker.js:536 +msgid "Stop" msgstr "" -#: js/piemenus.js:3420 -#: js/toolbar.js:60 -#: js/toolbar.js:120 -#: js/toolbar.js:185 -#: js/toolbar.js:240 -#: js/turtledefs.js:752 -msgid "Help" +#: js/toolbar.js:51 +#: js/toolbar.js:112 +#: js/toolbar.js:177 +#: js/toolbar.js:233 +#: js/turtledefs.js:498 +msgid "Record" msgstr "" -#: js/piemenus.js:3762 -msgid "You have chosen key " +#: js/toolbar.js:52 +#: js/toolbar.js:53 +msgid "Full screen" msgstr "" -#: js/piemenus.js:3766 -msgid " for your pitch preview." +#: js/toolbar.js:54 +#: js/toolbar.js:115 +#: js/toolbar.js:180 +#: js/toolbar.js:236 +#: js/turtledefs.js:504 +msgid "Toggle Fullscreen" +msgstr "" + +#: js/toolbar.js:55 +#: js/toolbar.js:116 +#: js/toolbar.js:181 +#: js/toolbar.js:237 +#: js/turtledefs.js:510 +#: planet/js/StringHelper.js:33 +msgid "New project" +msgstr "" + +#: js/toolbar.js:56 +#: js/toolbar.js:117 +#: js/toolbar.js:182 +#: js/toolbar.js:238 +#: js/turtledefs.js:516 +msgid "Load project from file" +msgstr "" + +#: js/toolbar.js:57 +#: js/toolbar.js:118 +#: js/toolbar.js:119 +#: js/toolbar.js:183 +#: js/toolbar.js:239 +#: js/turtledefs.js:541 +#: js/turtledefs.js:550 +#: js/turtledefs.js:571 +msgid "Save project" +msgstr "" + +#: js/toolbar.js:58 +#: js/toolbar.js:77 +#: js/toolbar.js:79 +#: js/toolbar.js:138 +#: js/toolbar.js:147 +#: js/toolbar.js:149 +#: js/toolbar.js:184 +#: js/toolbar.js:202 +#: js/toolbar.js:204 +#: js/toolbar.js:240 +#: js/toolbar.js:258 +#: js/toolbar.js:260 +msgid "Save project as HTML" +msgstr "" + +#: js/toolbar.js:59 +#: js/toolbar.js:120 +#: js/toolbar.js:185 +#: js/toolbar.js:241 +msgid "Find and share projects" +msgstr "" + +#: js/toolbar.js:60 +#: js/toolbar.js:121 +#: js/toolbar.js:186 +#: js/toolbar.js:242 +msgid "Offline. Sharing is unavailable" +msgstr "" + +#: js/toolbar.js:61 +#: js/toolbar.js:122 +#: js/toolbar.js:187 +#: js/toolbar.js:243 +msgid "Auxiliary menu" +msgstr "" + +#: js/toolbar.js:62 +#: js/toolbar.js:123 +#: js/toolbar.js:188 +#: js/toolbar.js:244 +#: js/turtledefs.js:752 +#: js/piemenus.js:3423 +msgid "Help" +msgstr "" + +#: js/toolbar.js:63 +#: js/toolbar.js:124 +#: js/toolbar.js:189 +#: js/toolbar.js:245 +msgid "Run slowly" +msgstr "" + +#: js/toolbar.js:64 +#: js/toolbar.js:125 +#: js/toolbar.js:190 +#: js/toolbar.js:246 +#: js/turtledefs.js:682 +msgid "Run step by step" +msgstr "" + +#: js/toolbar.js:65 +#: js/toolbar.js:126 +#: js/toolbar.js:191 +#: js/toolbar.js:247 +#: js/turtledefs.js:689 +msgid "Display statistics" +msgstr "" + +#: js/toolbar.js:66 +#: js/toolbar.js:127 +#: js/toolbar.js:192 +#: js/toolbar.js:248 +msgid "Load plugin" +msgstr "" + +#: js/toolbar.js:67 +#: js/toolbar.js:128 +#: js/toolbar.js:193 +#: js/toolbar.js:249 +#: js/turtledefs.js:696 +msgid "Delete plugin" +msgstr "" + +#: js/toolbar.js:68 +#: js/toolbar.js:129 +#: js/toolbar.js:194 +#: js/toolbar.js:250 +msgid "Enable horizontal scrolling" +msgstr "" + +#: js/toolbar.js:69 +#: js/toolbar.js:130 +#: js/toolbar.js:195 +#: js/toolbar.js:251 +msgid "Disable horizontal scrolling" +msgstr "" + +#: js/toolbar.js:70 +#: js/toolbar.js:131 +#: js/toolbar.js:196 +#: js/toolbar.js:252 +#: planet/js/LocalCard.js:54 +#: planet/js/StringHelper.js:71 +msgid "Merge with current project" +msgstr "" + +#: js/toolbar.js:71 +#: js/toolbar.js:132 +msgid "Set Pitch Preview" +msgstr "" + +#: js/toolbar.js:72 +#: js/toolbar.js:133 +#: js/toolbar.js:197 +#: js/toolbar.js:253 +msgid "JavaScript Editor" +msgstr "" + +#: js/toolbar.js:73 +#: js/toolbar.js:134 +#: js/toolbar.js:198 +#: js/toolbar.js:254 +#: js/turtledefs.js:724 +msgid "Restore" +msgstr "" + +#: js/toolbar.js:74 +#: js/toolbar.js:135 +#: js/toolbar.js:199 +#: js/toolbar.js:255 +msgid "Switch to beginner mode" +msgstr "" + +#: js/toolbar.js:75 +#: js/toolbar.js:136 +#: js/toolbar.js:200 +#: js/toolbar.js:256 +msgid "Switch to advanced mode" +msgstr "" + +#: js/toolbar.js:76 +#: js/toolbar.js:137 +#: js/toolbar.js:146 +#: js/toolbar.js:201 +#: js/toolbar.js:257 +#: js/turtledefs.js:738 +msgid "Select language" +msgstr "" + +#: js/toolbar.js:78 +#: js/toolbar.js:81 +#: js/toolbar.js:140 +#: js/turtledefs.js:579 +msgid "Save mouse artwork as PNG" +msgstr "" + +#: js/toolbar.js:80 +#: js/toolbar.js:139 +#: js/turtledefs.js:575 +msgid "Save mouse artwork as SVG" +msgstr "" + +#: js/toolbar.js:82 +#: js/toolbar.js:141 +#: js/turtledefs.js:583 +msgid "Save music as WAV" +msgstr "" + +#: js/toolbar.js:83 +#: js/toolbar.js:142 +#: js/turtledefs.js:587 +msgid "Save sheet music as ABC" +msgstr "" + +#: js/toolbar.js:84 +#: js/toolbar.js:143 +#: js/turtledefs.js:591 +msgid "Save sheet music as Lilypond" +msgstr "" + +#: js/toolbar.js:85 +msgid "Save sheet music as MusicXML" +msgstr "" + +#: js/toolbar.js:86 +#: js/toolbar.js:144 +#: js/toolbar.js:152 +#: js/toolbar.js:207 +#: js/toolbar.js:263 +#: js/turtledefs.js:562 +#: js/turtledefs.js:595 +msgid "Save block artwork as SVG" +msgstr "" + +#: js/toolbar.js:87 +#: js/toolbar.js:145 +#: js/toolbar.js:153 +#: js/toolbar.js:208 +#: js/toolbar.js:264 +#: js/turtles.js:911 +msgid "Confirm" +msgstr "" + +#: js/toolbar.js:88 +#: js/toolbar.js:154 +#: js/toolbar.js:209 +#: js/toolbar.js:265 +msgid "English (United States)" +msgstr "" + +#: js/toolbar.js:89 +#: js/toolbar.js:155 +#: js/toolbar.js:210 +#: js/toolbar.js:266 +msgid "English (United Kingdom)" +msgstr "" + +#: js/toolbar.js:90 +#: js/toolbar.js:156 +#: js/toolbar.js:211 +#: js/toolbar.js:267 +msgid "日本語" +msgstr "" + +#: js/toolbar.js:91 +msgid "한국어" +msgstr "" + +#: js/toolbar.js:92 +#: js/toolbar.js:158 +#: js/toolbar.js:213 +#: js/toolbar.js:269 +msgid "español" +msgstr "" + +#: js/toolbar.js:93 +#: js/toolbar.js:159 +#: js/toolbar.js:214 +#: js/toolbar.js:270 +msgid "português" +msgstr "" + +#: js/toolbar.js:94 +#: js/toolbar.js:160 +#: js/toolbar.js:215 +#: js/toolbar.js:271 +msgid "にほんご" +msgstr "" + +#: js/toolbar.js:95 +#: js/toolbar.js:161 +#: js/toolbar.js:216 +#: js/toolbar.js:272 +msgid "中文" +msgstr "" + +#: js/toolbar.js:96 +#: js/toolbar.js:162 +#: js/toolbar.js:217 +#: js/toolbar.js:273 +msgid "ภาษาไทย" +msgstr "" + +#: js/toolbar.js:97 +#: js/toolbar.js:163 +#: js/toolbar.js:218 +#: js/toolbar.js:274 +msgid "aymara" +msgstr "" + +#: js/toolbar.js:98 +#: js/toolbar.js:164 +#: js/toolbar.js:219 +#: js/toolbar.js:275 +msgid "quechua" +msgstr "" + +#: js/toolbar.js:99 +#: js/toolbar.js:165 +#: js/toolbar.js:220 +#: js/toolbar.js:276 +msgid "guarani" +msgstr "" + +#: js/toolbar.js:100 +#: js/toolbar.js:166 +#: js/toolbar.js:221 +#: js/toolbar.js:277 +msgid "हिंदी" +msgstr "" + +#: js/toolbar.js:101 +#: js/toolbar.js:168 +#: js/toolbar.js:222 +#: js/toolbar.js:279 +msgid "igbo" +msgstr "" + +#: js/toolbar.js:102 +#: js/toolbar.js:169 +#: js/toolbar.js:223 +#: js/toolbar.js:280 +msgid "عربى" +msgstr "" + +#: js/toolbar.js:103 +#: js/toolbar.js:167 +#: js/toolbar.js:224 +#: js/toolbar.js:278 +msgid "తెలుగు" +msgstr "" + +#: js/toolbar.js:104 +#: js/toolbar.js:170 +#: js/toolbar.js:225 +#: js/toolbar.js:281 +msgid "עִברִית" +msgstr "" + +#: js/toolbar.js:113 +#: js/toolbar.js:114 +#: js/toolbar.js:178 +#: js/toolbar.js:179 +#: js/toolbar.js:234 +#: js/toolbar.js:235 +msgid "Full Screen" +msgstr "" + +#: js/toolbar.js:148 +#: js/toolbar.js:151 +#: js/toolbar.js:203 +#: js/toolbar.js:206 +#: js/toolbar.js:259 +#: js/toolbar.js:262 +#: js/turtledefs.js:558 +msgid "Save turtle artwork as PNG" +msgstr "" + +#: js/toolbar.js:150 +#: js/toolbar.js:205 +#: js/toolbar.js:261 +#: js/turtledefs.js:554 +msgid "Save turtle artwork as SVG" +msgstr "" + +#: js/toolbar.js:157 +#: js/toolbar.js:212 +#: js/toolbar.js:268 +msgid "한국인" +msgstr "" + +#: js/toolbar.js:174 +#: js/toolbar.js:230 +msgid "About Turtle Blocks" +msgstr "" + +#: js/toolbar.js:446 +#: js/toolbar.js:457 +#: js/toolbar.js:497 +msgid "Turtle Wrap Off" +msgstr "" + +#: js/toolbar.js:466 +#: js/toolbar.js:506 +msgid "Turtle Wrap On" +msgstr "" + +#: js/turtle-painter.js:1192 +#: js/turtle-painter.js:1193 +#: js/turtles.js:118 +#: js/block-verbose.js:1623 +#: js/block.js:1587 +#: js/lilypond.js:749 +#: js/lilypond.js:913 +#: js/lilypond.js:951 +#: js/logo.js:1184 +#: js/blocks/ActionBlocks.js:1223 +#: js/blocks/ProgramBlocks.js:1267 +msgid "start" +msgstr "" + +#: js/turtledefs.js:40 +#.TRANS: put the URL to the guide here, e.g., https://github.com/sugarlabs/turtleblocksjs/tree/master/guide/README.md +msgid "guide url" +msgstr "" + +#: js/turtledefs.js:85 +#: js/turtledefs.js:437 +msgid "Turtle Blocks is a Logo-inspired turtle that draws colorful pictures with snap-together visual-programming blocks." +msgstr "" + +#: js/turtledefs.js:118 +#: js/turtledefs.js:220 +msgid "search" +msgstr "" + +#: js/turtledefs.js:120 +#: js/turtledefs.js:222 +#: js/blocks/MeterBlocks.js:1343 +#: js/blocks/WidgetBlocks.js:522 +#.TRANS: musical meter (time signature), e.g., 4:4 +msgid "meter" +msgstr "" + +#: js/turtledefs.js:122 +#: js/turtledefs.js:224 +msgid "intervals" +msgstr "" + +#: js/turtledefs.js:124 +#: js/turtledefs.js:226 +msgid "ornament" +msgstr "" + +#: js/turtledefs.js:125 +#: js/turtledefs.js:227 +#: js/blocks/VolumeBlocks.js:362 +#: js/blocks/VolumeBlocks.js:502 +#: js/blocks/VolumeBlocks.js:545 +msgid "volume" +msgstr "" + +#: js/turtledefs.js:126 +#: js/turtledefs.js:228 +#: js/block-verbose.js:1700 +#: js/block-verbose.js:2626 +#: js/block.js:1664 +#: js/block.js:2554 +#: js/lilypond.js:732 +#: js/lilypond.js:897 +#: js/lilypond.js:941 +#: js/palette.js:577 +#: js/blocks/RhythmBlocks.js:766 +#: js/blocks/DrumBlocks.js:477 +#: js/blocks/VolumeBlocks.js:502 +#: js/widgets/phrasemaker.js:1038 +msgid "drum" +msgstr "" + +#: js/turtledefs.js:129 +#: js/turtledefs.js:231 +msgid "boxes" +msgstr "" + +#: js/turtledefs.js:130 +#: js/turtledefs.js:232 +msgid "widgets" +msgstr "" + +#: js/turtledefs.js:131 +#: js/turtledefs.js:233 +#: js/widgets/phrasemaker.js:1039 +msgid "graphics" +msgstr "" + +#: js/turtledefs.js:134 +#: js/turtledefs.js:236 +msgid "boolean" +msgstr "" + +#: js/turtledefs.js:137 +#: js/turtledefs.js:239 +#: js/blocks/HeapBlocks.js:59 +#: js/widgets/status.js:147 +msgid "heap" +msgstr "" + +#: js/turtledefs.js:138 +#: js/turtledefs.js:240 +#: js/blocks/DictBlocks.js:142 +#: js/blocks/ProgramBlocks.js:495 +msgid "dictionary" +msgstr "" + +#: js/turtledefs.js:139 +#: js/turtledefs.js:241 +msgid "ensemble" +msgstr "" + +#: js/turtledefs.js:140 +#: js/turtledefs.js:242 +msgid "extras" +msgstr "" + +#: js/turtledefs.js:142 +#: js/turtledefs.js:244 +#.TRANS: program as in computer program +#.TRANS: program as in computer program +msgid "program" +msgstr "" + +#: js/turtledefs.js:143 +#: js/turtledefs.js:245 +msgid "my blocks" +msgstr "" + +#: js/turtledefs.js:185 +#: js/turtledefs.js:281 +msgid "artwork" +msgstr "" + +#: js/turtledefs.js:185 +#: js/turtledefs.js:281 +msgid "logic" +msgstr "" + +#: js/turtledefs.js:185 +#: js/turtledefs.js:281 +msgid "music" +msgstr "" + +#: js/turtledefs.js:187 +#: js/turtledefs.js:463 +msgid "Music Blocks is a collection of tools for exploring fundamental musical concepts in a fun way." +msgstr "" + +#: js/turtledefs.js:436 +msgid "Welcome to Turtle Blocks" +msgstr "" + +#: js/turtledefs.js:438 +#: js/turtledefs.js:465 +#: js/turtledefs.js:774 +#: js/turtledefs.js:805 +msgid "The current version is" +msgstr "" + +#: js/turtledefs.js:446 +#: js/turtledefs.js:483 +msgid "Click the run button to run the project in fast mode." +msgstr "" + +#: js/turtledefs.js:452 +msgid "Stop the turtle." +msgstr "" + +#: js/turtledefs.js:454 +#: js/turtledefs.js:491 +msgid "You can also type Alt-S to stop." +msgstr "" + +#: js/turtledefs.js:462 +#: js/widgets/help.js:333 +msgid "Welcome to Music Blocks" +msgstr "" + +#: js/turtledefs.js:472 +#: js/widgets/help.js:334 +msgid "Meet Mr. Mouse!" +msgstr "" + +#: js/turtledefs.js:473 +msgid "Mr Mouse is our Music Blocks conductor." +msgstr "" + +#: js/turtledefs.js:475 +msgid "Mr Mouse encourages you to explore Music Blocks." +msgstr "" + +#: js/turtledefs.js:477 +msgid "Let us start our tour!" +msgstr "" + +#: js/turtledefs.js:489 +msgid "Stop the music (and the mice)." +msgstr "" + +#: js/turtledefs.js:499 +msgid "Record your project as video." +msgstr "" + +#: js/turtledefs.js:505 +msgid "Toggle Fullscreen mode." +msgstr "" + +#: js/turtledefs.js:511 +msgid "Initialize a new project." +msgstr "" + +#: js/turtledefs.js:517 +msgid "You can also load projects from the file system." +msgstr "" + +#: js/turtledefs.js:522 +#: planet/js/StringHelper.js:46 +msgid "Delete" +msgstr "" + +#: js/turtledefs.js:523 +msgid "To delete a block, just right-click on it, then you will be able to see the delete option" +msgstr "" + +#: js/turtledefs.js:528 +#: js/activity.js:2649 +#: planet/js/LocalCard.js:31 +msgid "Copy" +msgstr "" + +#: js/turtledefs.js:529 +msgid "To copy a block, just right-click on it, then you will be able to see the copy option" +msgstr "" + +#: js/turtledefs.js:534 +#: js/piemenus.js:3411 +msgid "Extract" +msgstr "" + +#: js/turtledefs.js:535 +msgid "To extract a block, just right-click on it, then you will be able to see the extract option" +msgstr "" + +#: js/turtledefs.js:542 +#: js/turtledefs.js:552 +#: js/turtledefs.js:573 +msgid "Save your project to a file." +msgstr "" + +#: js/turtledefs.js:549 +#: js/turtledefs.js:570 +msgid "save" +msgstr "" + +#: js/turtledefs.js:556 +#: js/turtledefs.js:577 +msgid "Save graphics from your project to as SVG." +msgstr "" + +#: js/turtledefs.js:560 +#: js/turtledefs.js:581 +msgid "Save graphics from your project as PNG." +msgstr "" + +#: js/turtledefs.js:564 +#: js/turtledefs.js:597 +msgid "Save block artwork as an SVG file." +msgstr "" + +#: js/turtledefs.js:585 +msgid "Save audio from your project as WAV." +msgstr "" + +#: js/turtledefs.js:589 +msgid "Save your project to as an ABC file." +msgstr "" + +#: js/turtledefs.js:593 +msgid "Save your project to as a Lilypond file." +msgstr "" + +#: js/turtledefs.js:604 +msgid "Load samples from server" +msgstr "" + +#: js/turtledefs.js:605 +msgid "This button opens a viewer for loading example projects." +msgstr "" + +#: js/turtledefs.js:611 +msgid "Palette buttons" +msgstr "" + +#: js/turtledefs.js:612 +msgid "This toolbar contains the palette buttons including Rhythm Pitch Tone Action and more." +msgstr "" + +#: js/turtledefs.js:614 +msgid "Click to show the palettes of blocks and drag blocks from the palettes onto the canvas to use them." +msgstr "" + +#: js/turtledefs.js:620 +msgid "Cartesian/Polar" +msgstr "" + +#: js/turtledefs.js:621 +msgid "Show or hide a coordinate grid." +msgstr "" + +#: js/turtledefs.js:626 +#: js/turtles.js:902 +msgid "Clean" +msgstr "" + +#: js/turtledefs.js:627 +msgid "Clear the screen and return the mice to their initial positions." +msgstr "" + +#: js/turtledefs.js:632 +#: js/turtles.js:955 +msgid "Collapse" +msgstr "" + +#: js/turtledefs.js:633 +msgid "Collapse the graphics window." msgstr "" -#: js/palette.js:571 -msgid "grid" +#: js/turtledefs.js:638 +#: js/activity.js:5684 +msgid "Home" msgstr "" -#: js/palette.js:577 -#: js/block.js:1540 -#: js/block.js:2343 -#: js/turtledefs.js:126 -#: js/turtledefs.js:228 -#: js/lilypond.js:740 -#: js/lilypond.js:905 -#: js/lilypond.js:949 -#: js/DrumBlocks.js:486 -#: js/RhythmBlocks.js:766 -#: js/VolumeBlocks.js:502 -#: js/phrasemaker.js:823 -msgid "drum" +#: js/turtledefs.js:639 +msgid "Return all blocks to the center of the screen." msgstr "" -#: js/palette.js:580 -msgid "effect" +#: js/turtledefs.js:644 +msgid "Show/hide blocks" msgstr "" -#: js/palette.js:586 -msgid "sargam" +#: js/turtledefs.js:645 +msgid "Hide or show the blocks and the palettes." msgstr "" -#: js/palette.js:589 -#: js/activity.js:1833 -#: js/RhythmBlocks.js:923 -#: js/PitchBlocks.js:442 -#: js/PitchBlocks.js:1748 -#.TRANS: a numeric mapping of the notes in an octave based on the musical mode -msgid "scale degree" +#: js/turtledefs.js:650 +msgid "Expand/collapse collapsable blocks" msgstr "" -#: js/palette.js:592 -#: js/activity.js:1860 -msgid "mode name" +#: js/turtledefs.js:651 +msgid "Expand or collapse start and action stacks." msgstr "" -#: js/palette.js:595 -#: js/activity.js:1839 -msgid "invert mode" +#: js/turtledefs.js:658 +#: js/activity.js:5704 +msgid "Decrease block size" msgstr "" -#: js/palette.js:598 -#: js/activity.js:1836 -msgid "voice name" +#: js/turtledefs.js:659 +msgid "Decrease the size of the blocks." msgstr "" -#: js/palette.js:601 -#: js/PitchBlocks.js:1181 -msgid "custom pitch" +#: js/turtledefs.js:664 +#: js/activity.js:5710 +msgid "Increase block size" msgstr "" -#: js/palette.js:605 -#: js/block.js:1456 -#: js/block.js:1575 -#: js/WidgetBlocks.js:218 -#: js/IntervalsBlocks.js:63 -msgid "temperament" +#: js/turtledefs.js:665 +msgid "Increase the size of the blocks." msgstr "" -#: js/palette.js:609 -msgid "accidental" +#: js/turtledefs.js:670 +msgid "Expand/collapse option toolbar" msgstr "" -#: js/palette.js:615 -#: js/activity.js:1866 -msgid "interval name" +#: js/turtledefs.js:671 +msgid "Click this button to expand or collapse the auxillary toolbar." msgstr "" -#: js/palette.js:633 -#: js/PitchBlocks.js:405 -msgid "pitch converter" +#: js/turtledefs.js:676 +msgid "Run slow" msgstr "" -#: js/rubrics.js:522 -#: js/turtledefs.js:119 -#: js/turtledefs.js:221 -#: js/RhythmBlockPaletteBlocks.js:52 -#: js/RhythmBlockPaletteBlocks.js:233 -#: js/ProgramBlocks.js:745 -#: js/rhythmruler.js:1670 -#: js/rhythmruler.js:1677 -#: js/rhythmruler.js:1745 -#: js/rhythmruler.js:1752 -#: js/rhythmruler.js:1830 -#.TRANS: an arrangement of notes based on duration -msgid "rhythm" +#: js/turtledefs.js:677 +msgid "Click to run the project in slow mode." msgstr "" -#: js/rubrics.js:523 -#: js/block.js:2339 -#: js/turtledefs.js:121 -#: js/turtledefs.js:223 -#: js/IntervalsBlocks.js:63 -#: js/PitchBlocks.js:1801 -#: js/PitchBlocks.js:1814 -#: js/SensorsBlocks.js:178 -#: js/phrasemaker.js:821 -#: js/musickeyboard.js:1653 -#.TRANS: pitch number -#.TRANS: we specify pitch in terms of a name and an octave. The name can be CDEFGAB or Do Re Mi Fa Sol La Ti. Octave is a number between 1 and 8. -msgid "pitch" +#: js/turtledefs.js:683 +msgid "Click to run the project step by step." msgstr "" -#: js/rubrics.js:524 -#: js/turtledefs.js:123 -#: js/turtledefs.js:225 -msgid "tone" +#: js/turtledefs.js:690 +msgid "Display statistics about your Music project." msgstr "" -#: js/rubrics.js:525 -#: js/lilypond.js:613 -#: js/lilypond.js:912 -#: js/lilypond.js:918 -#: js/lilypond.js:956 -msgid "mouse" +#: js/turtledefs.js:697 +msgid "Delete a selected plugin." msgstr "" -#: js/rubrics.js:526 -#: js/turtledefs.js:132 -#: js/turtledefs.js:234 -#: js/phrasemaker.js:825 -msgid "pen" +#: js/turtledefs.js:704 +msgid "Enable scrolling" msgstr "" -#: js/rubrics.js:527 -#: js/turtledefs.js:133 -#: js/turtledefs.js:235 -#: js/NumberBlocks.js:905 -#: js/PitchBlocks.js:1679 -#: js/PitchBlocks.js:1720 -msgid "number" +#: js/turtledefs.js:705 +msgid "You can scroll the blocks on the canvas." msgstr "" -#: js/rubrics.js:528 -#: js/turtledefs.js:127 -#: js/turtledefs.js:229 -msgid "flow" +#: js/turtledefs.js:714 +msgid "Wrap Turtle" msgstr "" -#: js/rubrics.js:530 -#: js/turtledefs.js:136 -#: js/turtledefs.js:238 -msgid "sensors" +#: js/turtledefs.js:715 +msgid "Turn Turtle wrapping On or Off." msgstr "" -#: js/rubrics.js:531 -#: js/turtledefs.js:135 -#: js/turtledefs.js:237 -#: js/MediaBlocks.js:930 -msgid "media" +#: js/turtledefs.js:725 +msgid "Restore blocks from the trash." msgstr "" -#: js/rubrics.js:532 -msgid "mice" +#: js/turtledefs.js:732 +msgid "Switch mode" msgstr "" -#: js/macros.js:711 -#: js/musicutils.js:783 -#: js/synthutils.js:181 -#.TRANS: animal sound effect -msgid "duck" +#: js/turtledefs.js:733 +msgid "Switch between beginner and advance modes." msgstr "" -#: js/toolbar.js:46 -#: js/toolbar.js:107 -msgid "About Music Blocks" +#: js/turtledefs.js:739 +msgid "Select your language preference." msgstr "" -#: js/toolbar.js:47 -#: js/toolbar.js:108 -#: js/toolbar.js:172 -#: js/toolbar.js:228 -#: js/turtledefs.js:445 -#: js/turtledefs.js:482 -#: js/activity.js:2281 -#: js/activity.js:2289 -#: js/activity.js:2520 -#: js/modewidget.js:77 -#: js/pitchstaircase.js:121 -#: js/phrasemaker.js:302 -#: js/phrasemaker.js:312 -#: js/phrasemaker.js:314 -#: js/phrasemaker.js:3901 -#: js/phrasemaker.js:4061 -#: js/phrasemaker.js:4066 -#: js/phrasemaker.js:4068 -#: js/phrasemaker.js:4183 -#: js/pitchdrummatrix.js:81 -#: js/pitchdrummatrix.js:574 -#: js/pitchdrummatrix.js:576 -#: js/pitchdrummatrix.js:628 -#: js/pitchdrummatrix.js:630 -#: js/pitchdrummatrix.js:645 -#: js/pitchdrummatrix.js:647 -#: js/pitchdrummatrix.js:674 -#: js/pitchdrummatrix.js:676 -#: js/temperament.js:477 -#: js/temperament.js:480 -#: js/temperament.js:540 -#: js/temperament.js:542 -#: js/temperament.js:1835 -#: js/temperament.js:1837 -#: js/temperament.js:1986 -#: js/temperament.js:1988 -#: js/musickeyboard.js:522 -#: js/musickeyboard.js:682 -#: js/musickeyboard.js:684 -#: js/musickeyboard.js:756 -#: js/musickeyboard.js:758 -#: js/rhythmruler.js:298 -#: js/rhythmruler.js:300 -#: js/rhythmruler.js:314 -#: js/rhythmruler.js:316 -#: js/sampler.js:96 -#: js/sampler.js:98 -#: js/sampler.js:229 -#: js/sampler.js:235 -#: js/sampler.js:237 -#: js/tempo.js:84 -#: js/tempo.js:86 -#: js/timbre.js:432 -#: js/timbre.js:434 -#: js/timbre.js:465 -#: js/timbre.js:467 -#: js/timbre.js:746 -#: js/meterwidget.js:80 -#: js/arpeggio.js:90 -#: js/arpeggio.js:547 -#: js/arpeggio.js:549 -#: js/arpeggio.js:644 -#: js/arpeggio.js:646 -msgid "Play" +#: js/turtledefs.js:745 +msgid "Keyboard shortcuts" msgstr "" -#: js/toolbar.js:48 -#: js/toolbar.js:109 -#: js/toolbar.js:173 -#: js/toolbar.js:229 -#: js/turtledefs.js:451 -#: js/turtledefs.js:488 -#: js/activity.js:2297 -#: js/modewidget.js:99 -#: js/modewidget.js:101 -#: js/phrasemaker.js:323 -#: js/phrasemaker.js:325 -#: js/pitchdrummatrix.js:561 -#: js/pitchdrummatrix.js:563 -#: js/temperament.js:1820 -#: js/temperament.js:1822 -#: js/meterwidget.js:101 -#: js/meterwidget.js:103 -#: js/arpeggio.js:534 -#: js/arpeggio.js:536 -msgid "Stop" +#: js/turtledefs.js:746 +msgid "You can type d to create a do block and r to create a re block etc." msgstr "" -#: js/toolbar.js:49 -#: js/toolbar.js:110 -#: js/toolbar.js:174 -#: js/toolbar.js:230 -#: js/turtledefs.js:498 -msgid "Record" +#: js/turtledefs.js:753 +msgid "Show these messages." msgstr "" -#: js/toolbar.js:50 -#: js/toolbar.js:51 -msgid "Full screen" +#: js/turtledefs.js:759 +#: js/turtledefs.js:790 +#: js/widgets/help.js:335 +msgid "Guide" msgstr "" -#: js/toolbar.js:52 -#: js/toolbar.js:112 -#: js/toolbar.js:177 -#: js/toolbar.js:232 -#: js/turtledefs.js:504 -msgid "Toggle Fullscreen" +#: js/turtledefs.js:760 +msgid "A detailed guide to Turtle Blocks is available." msgstr "" -#: js/toolbar.js:53 -#: js/toolbar.js:113 -#: js/toolbar.js:178 -#: js/toolbar.js:233 -#: js/turtledefs.js:510 -#: js/StringHelper.js:33 -msgid "New project" +#: js/turtledefs.js:764 +msgid "Turtle Blocks Guide" msgstr "" -#: js/toolbar.js:54 -#: js/toolbar.js:114 -#: js/toolbar.js:179 -#: js/toolbar.js:234 -#: js/turtledefs.js:516 -msgid "Load project from file" +#: js/turtledefs.js:767 +#: js/turtledefs.js:798 +#: js/widgets/help.js:336 +msgid "About" msgstr "" -#: js/toolbar.js:55 -#: js/toolbar.js:115 -#: js/toolbar.js:116 -#: js/toolbar.js:180 -#: js/toolbar.js:235 -#: js/turtledefs.js:541 -#: js/turtledefs.js:550 -#: js/turtledefs.js:571 -msgid "Save project" +#: js/turtledefs.js:768 +msgid "Turtle Blocks is an open source collection of tools for exploring musical concepts." msgstr "" -#: js/toolbar.js:56 -#: js/toolbar.js:75 -#: js/toolbar.js:77 -#: js/toolbar.js:135 -#: js/toolbar.js:144 -#: js/toolbar.js:146 -#: js/toolbar.js:181 -#: js/toolbar.js:199 -#: js/toolbar.js:201 -#: js/toolbar.js:236 -#: js/toolbar.js:254 -#: js/toolbar.js:256 -msgid "Save project as HTML" +#: js/turtledefs.js:770 +msgid "A full list of contributors can be found in the Turtle Blocks GitHub repository." +msgstr "" + +#: js/turtledefs.js:772 +msgid "Turtle Blocks is licensed under the AGPL." +msgstr "" + +#: js/turtledefs.js:780 +msgid "Turtle Blocks GitHub repository" +msgstr "" + +#: js/turtledefs.js:783 +#: js/turtledefs.js:814 +#: js/widgets/help.js:337 +#: js/widgets/help.js:359 +msgid "Congratulations." +msgstr "" + +#: js/turtledefs.js:784 +msgid "You have finished the tour. Please enjoy Turtle Blocks!" +msgstr "" + +#: js/turtledefs.js:791 +msgid "A detailed guide to Music Blocks is available." +msgstr "" + +#: js/turtledefs.js:799 +msgid "Music Blocks is an open source collection of tools for exploring musical concepts." +msgstr "" + +#: js/turtledefs.js:801 +msgid "A full list of contributors can be found in the Music Blocks GitHub repository." +msgstr "" + +#: js/turtledefs.js:803 +msgid "Music Blocks is licensed under the AGPL." +msgstr "" + +#: js/turtledefs.js:811 +msgid "Music Blocks GitHub repository" +msgstr "" + +#: js/turtledefs.js:815 +msgid "You have finished the tour. Please enjoy Music Blocks!" +msgstr "" + +#: js/turtles.js:882 +msgid "Grid" +msgstr "" + +#: js/turtles.js:1024 +msgid "Expand" +msgstr "" + +#: js/block-verbose.js:1616 +#: js/block-verbose.js:1735 +#: js/block.js:1580 +#: js/block.js:1699 +#: js/palette.js:605 +#: js/blocks/IntervalsBlocks.js:63 +#: js/blocks/WidgetBlocks.js:259 +msgid "temperament" +msgstr "" + +#: js/block-verbose.js:1630 +#: js/block.js:1594 +msgid "matrix" msgstr "" -#: js/toolbar.js:57 -#: js/toolbar.js:117 -#: js/toolbar.js:182 -#: js/toolbar.js:237 -msgid "Find and share projects" +#: js/block-verbose.js:1637 +#: js/block.js:1601 +#: js/blocks/WidgetBlocks.js:1509 +#: plugins/rodi.rtp:324 +msgid "status" msgstr "" -#: js/toolbar.js:58 -#: js/toolbar.js:118 -#: js/toolbar.js:183 -#: js/toolbar.js:238 -msgid "Offline. Sharing is unavailable" +#: js/block-verbose.js:1644 +#: js/block.js:1608 +msgid "drum mapper" msgstr "" -#: js/toolbar.js:59 -#: js/toolbar.js:119 -#: js/toolbar.js:184 -#: js/toolbar.js:239 -msgid "Auxiliary menu" +#: js/block-verbose.js:1651 +#: js/block.js:1615 +msgid "ruler" msgstr "" -#: js/toolbar.js:61 -#: js/toolbar.js:121 -#: js/toolbar.js:186 -#: js/toolbar.js:241 -msgid "Run slowly" +#: js/block-verbose.js:1658 +#: js/block.js:1622 +#: js/blocks/WidgetBlocks.js:397 +#.TRANS: timbre is the character or quality of a musical sound +msgid "timbre" msgstr "" -#: js/toolbar.js:62 -#: js/toolbar.js:122 -#: js/toolbar.js:187 -#: js/toolbar.js:242 -#: js/turtledefs.js:682 -msgid "Run step by step" +#: js/block-verbose.js:1665 +#: js/block.js:1629 +msgid "stair" msgstr "" -#: js/toolbar.js:63 -#: js/toolbar.js:123 -#: js/toolbar.js:188 -#: js/toolbar.js:243 -#: js/turtledefs.js:689 -msgid "Display statistics" +#: js/block-verbose.js:1672 +#: js/block.js:1636 +#: js/blocks/WidgetBlocks.js:707 +#.TRANS: the speed at music is should be played. +msgid "tempo" msgstr "" -#: js/toolbar.js:64 -#: js/toolbar.js:124 -#: js/toolbar.js:189 -#: js/toolbar.js:244 -msgid "Load plugin" +#: js/block-verbose.js:1679 +#: js/block-verbose.js:1742 +#: js/block.js:1643 +#: js/block.js:1706 +#: js/blocks/IntervalsBlocks.js:1464 +#.TRANS: mode, e.g., Major in C Major +msgid "mode" msgstr "" -#: js/toolbar.js:65 -#: js/toolbar.js:125 -#: js/toolbar.js:190 -#: js/toolbar.js:245 -#: js/turtledefs.js:696 -msgid "Delete plugin" +#: js/block-verbose.js:1686 +#: js/block.js:1650 +msgid "slider" msgstr "" -#: js/toolbar.js:66 -#: js/toolbar.js:126 -#: js/toolbar.js:191 -#: js/toolbar.js:246 -msgid "Enable horizontal scrolling" +#: js/block-verbose.js:1693 +#: js/block.js:1657 +#: js/blocks/SensorsBlocks.js:1001 +msgid "keyboard" msgstr "" -#: js/toolbar.js:67 -#: js/toolbar.js:127 -#: js/toolbar.js:192 -#: js/toolbar.js:247 -msgid "Disable horizontal scrolling" +#: js/block-verbose.js:1707 +#: js/block.js:1671 +#: js/blocks/WidgetBlocks.js:1190 +#: js/blocks/WidgetBlocks.js:1228 +#.TRANS: widget for subdividing a measure into distinct rhythmic elements +msgid "rhythm maker" msgstr "" -#: js/toolbar.js:68 -#: js/toolbar.js:128 -#: js/toolbar.js:193 -#: js/toolbar.js:248 -#: js/LocalCard.js:54 -#: js/StringHelper.js:71 -msgid "Merge with current project" +#: js/block-verbose.js:1714 +#: js/block-verbose.js:2457 +#: js/block-verbose.js:2514 +#: js/block.js:1678 +#: js/block.js:2385 +#: js/block.js:2442 +#: js/blocks/MeterBlocks.js:1367 +#: js/blocks/OrnamentBlocks.js:220 +#: js/blocks/OrnamentBlocks.js:312 +#: js/blocks/RhythmBlocks.js:33 +#: js/blocks/RhythmBlocks.js:356 +#: js/blocks/RhythmBlocks.js:766 +#: js/blocks/RhythmBlocks.js:806 +#: js/blocks/RhythmBlockPaletteBlocks.js:70 +#: js/blocks/RhythmBlockPaletteBlocks.js:252 +#: js/blocks/RhythmBlockPaletteBlocks.js:485 +#: js/blocks/RhythmBlockPaletteBlocks.js:554 +#: js/blocks/RhythmBlockPaletteBlocks.js:605 +#: js/blocks/RhythmBlockPaletteBlocks.js:875 +#: js/turtleactions/DictActions.js:85 +#: js/widgets/phrasemaker.js:942 +#: js/widgets/phrasemaker.js:2656 +#: js/widgets/phrasemaker.js:2699 +#: js/widgets/phrasemaker.js:2810 +#.TRANS: the value (e.g., 1/4 note) of the note being played. +msgid "note value" msgstr "" -#: js/toolbar.js:69 -#: js/toolbar.js:129 -msgid "Set Pitch Preview" +#: js/block-verbose.js:1721 +#: js/block-verbose.js:2382 +#: js/block-verbose.js:2405 +#: js/block.js:1685 +#: js/block.js:2310 +#: js/block.js:2333 +#: js/blocks/IntervalsBlocks.js:1071 +#: js/blocks/OrnamentBlocks.js:312 +#.TRANS: calculate a relative step between notes based on semi-tones +msgid "scalar interval" msgstr "" -#: js/toolbar.js:70 -#: js/toolbar.js:130 -#: js/toolbar.js:194 -#: js/toolbar.js:249 -msgid "Toggle JavaScript Editor" +#: js/block-verbose.js:1728 +#: js/block.js:1692 +#: js/blocks/RhythmBlocks.js:148 +msgid "milliseconds" msgstr "" -#: js/toolbar.js:71 -#: js/toolbar.js:131 -#: js/toolbar.js:195 -#: js/toolbar.js:250 -#: js/turtledefs.js:724 -msgid "Restore" +#: js/block-verbose.js:2455 +#: js/block-verbose.js:2459 +#: js/block-verbose.js:2512 +#: js/block-verbose.js:2628 +#: js/block.js:2383 +#: js/block.js:2387 +#: js/block.js:2440 +#: js/block.js:2556 +#: js/blocks/RhythmBlocks.js:712 +#: js/blocks/ProgramBlocks.js:1273 +#: js/widgets/rhythmruler.js:1183 +#: js/widgets/rhythmruler.js:1329 +msgid "silence" msgstr "" -#: js/toolbar.js:72 -#: js/toolbar.js:132 -#: js/toolbar.js:196 -#: js/toolbar.js:251 -msgid "Switch to beginner mode" +#: js/block-verbose.js:2548 +#: js/block-verbose.js:3492 +#: js/block-verbose.js:3509 +#: js/activity.js:2718 +#: js/activity.js:2769 +#: js/block.js:2476 +#: js/block.js:3416 +#: js/block.js:3433 +#: js/utils/musicutils.js:3780 +#: js/utils/musicutils.js:5273 +#.TRANS: the note names must be separated by single spaces +#.TRANS: the note names must be separated by single spaces +#.TRANS: the note names must be separated by single spaces +msgid "ti la sol fa mi re do" msgstr "" -#: js/toolbar.js:73 -#: js/toolbar.js:133 -#: js/toolbar.js:197 -#: js/toolbar.js:252 -msgid "Switch to advanced mode" +#: js/block-verbose.js:2616 +#: js/block.js:2544 +#.TRANS: scalar step +#.TRANS: scalar step +msgid "down" msgstr "" -#: js/toolbar.js:74 -#: js/toolbar.js:134 -#: js/toolbar.js:143 -#: js/toolbar.js:198 -#: js/toolbar.js:253 -#: js/turtledefs.js:738 -msgid "Select language" +#: js/block-verbose.js:2617 +#: js/block.js:2545 +msgid "up" msgstr "" -#: js/toolbar.js:76 -#: js/toolbar.js:79 -#: js/toolbar.js:137 -#: js/turtledefs.js:579 -msgid "Save mouse artwork as PNG" +#: js/block-verbose.js:3026 +#: js/block.js:2950 +msgid "Silence block cannot be removed." msgstr "" -#: js/toolbar.js:78 -#: js/toolbar.js:136 -#: js/turtledefs.js:575 -msgid "Save mouse artwork as SVG" +#: js/block-verbose.js:3824 +#: js/block.js:3748 +#: js/blocks.js:2607 +#: js/blocks.js:3218 +#: js/palette.js:618 +#: js/blocks/BooleanBlocks.js:77 +#: js/blocks/BooleanBlocks.js:167 +#: js/blocks/BooleanBlocks.js:251 +#: js/blocks/BooleanBlocks.js:335 +#: js/blocks/BooleanBlocks.js:433 +#: js/blocks/BooleanBlocks.js:539 +#: js/blocks/BooleanBlocks.js:640 +#: js/blocks/BooleanBlocks.js:741 +#: js/blocks/BooleanBlocks.js:847 +#: js/blocks/BooleanBlocks.js:948 +#: js/blocks/BooleanBlocks.js:1033 +#: js/blocks/SensorsBlocks.js:910 +msgid "true" msgstr "" -#: js/toolbar.js:80 -#: js/toolbar.js:138 -#: js/turtledefs.js:583 -msgid "Save music as WAV" +#: js/block-verbose.js:3824 +#: js/block.js:3748 +#: js/blocks.js:2609 +#: js/blocks.js:3220 +#: js/blocks/BooleanBlocks.js:79 +#: js/blocks/BooleanBlocks.js:169 +#: js/blocks/BooleanBlocks.js:253 +#: js/blocks/BooleanBlocks.js:337 +#: js/blocks/BooleanBlocks.js:435 +#: js/blocks/BooleanBlocks.js:541 +#: js/blocks/BooleanBlocks.js:642 +#: js/blocks/BooleanBlocks.js:743 +#: js/blocks/BooleanBlocks.js:849 +#: js/blocks/BooleanBlocks.js:950 +#: js/blocks/SensorsBlocks.js:912 +msgid "false" msgstr "" -#: js/toolbar.js:81 -#: js/toolbar.js:139 -#: js/turtledefs.js:587 -msgid "Save sheet music as ABC" +#: js/block-verbose.js:3835 +#: js/block-verbose.js:3848 +#: js/block.js:3759 +#: js/block.js:3772 +#: js/blocks/ExtrasBlocks.js:615 +msgid "Cartesian" msgstr "" -#: js/toolbar.js:82 -#: js/toolbar.js:140 -#: js/turtledefs.js:591 -msgid "Save sheet music as Lilypond" +#: js/block-verbose.js:3836 +#: js/block-verbose.js:3849 +#: js/block.js:3760 +#: js/block.js:3773 +#: js/blocks/ExtrasBlocks.js:619 +msgid "polar" msgstr "" -#: js/toolbar.js:83 -msgid "Save sheet music as MusicXML" +#: js/block-verbose.js:3837 +#: js/block-verbose.js:3850 +#: js/block.js:3761 +#: js/block.js:3774 +#: js/blocks/ExtrasBlocks.js:623 +msgid "Cartesian+polar" msgstr "" -#: js/toolbar.js:84 -#: js/toolbar.js:141 -#: js/toolbar.js:149 -#: js/toolbar.js:204 -#: js/toolbar.js:259 -#: js/turtledefs.js:562 -#: js/turtledefs.js:595 -msgid "Save block artwork as SVG" +#: js/block-verbose.js:3838 +#: js/block-verbose.js:3857 +#: js/block.js:3762 +#: js/block.js:3781 +#: js/blocks/ExtrasBlocks.js:652 +msgid "none" msgstr "" -#: js/toolbar.js:85 -#: js/toolbar.js:142 -#: js/toolbar.js:150 -#: js/toolbar.js:205 -#: js/toolbar.js:260 -msgid "Confirm" +#: js/block-verbose.js:3851 +#: js/block.js:3775 +#: js/blocks/ExtrasBlocks.js:628 +msgid "treble" msgstr "" -#: js/toolbar.js:86 -#: js/toolbar.js:151 -#: js/toolbar.js:206 -#: js/toolbar.js:261 -msgid "English (United States)" +#: js/block-verbose.js:3852 +#: js/block.js:3776 +#: js/blocks/ExtrasBlocks.js:632 +msgid "grand staff" msgstr "" -#: js/toolbar.js:87 -#: js/toolbar.js:152 -#: js/toolbar.js:207 -#: js/toolbar.js:262 -msgid "English (United Kingdom)" +#: js/block-verbose.js:3853 +#: js/block.js:3777 +#: js/blocks/ExtrasBlocks.js:636 +msgid "mezzo-soprano" msgstr "" -#: js/toolbar.js:88 -#: js/toolbar.js:153 -#: js/toolbar.js:208 -#: js/toolbar.js:263 -msgid "日本語" +#: js/block-verbose.js:3854 +#: js/block.js:3778 +#: js/blocks/ExtrasBlocks.js:640 +msgid "alto" msgstr "" -#: js/toolbar.js:89 -msgid "한국어" +#: js/block-verbose.js:3855 +#: js/block.js:3779 +#: js/blocks/ExtrasBlocks.js:644 +msgid "tenor" msgstr "" -#: js/toolbar.js:90 -#: js/toolbar.js:155 -#: js/toolbar.js:210 -#: js/toolbar.js:265 -msgid "español" +#: js/block-verbose.js:3856 +#: js/block.js:3780 +#: js/utils/musicutils.js:1115 +#: js/utils/synthutils.js:80 +#: js/blocks/ExtrasBlocks.js:648 +#.TRANS: musical instrument +msgid "bass" msgstr "" -#: js/toolbar.js:91 -#: js/toolbar.js:156 -#: js/toolbar.js:211 -#: js/toolbar.js:266 -msgid "português" +#: js/block-verbose.js:3901 +#: js/block.js:3825 +#: js/blocks.js:2600 +#: js/blocks.js:3211 +msgid "on2" msgstr "" -#: js/toolbar.js:92 -#: js/toolbar.js:157 -#: js/toolbar.js:212 -#: js/toolbar.js:267 -msgid "にほんご" +#: js/block-verbose.js:3903 +#: js/block.js:3827 +#: js/blocks.js:2602 +#: js/blocks.js:3213 +msgid "off" msgstr "" -#: js/toolbar.js:93 -#: js/toolbar.js:158 -#: js/toolbar.js:213 -#: js/toolbar.js:268 -msgid "中文" +#: js/block-verbose.js:4470 +#: js/block.js:4394 +msgid "Not a number" msgstr "" -#: js/toolbar.js:94 -#: js/toolbar.js:159 -#: js/toolbar.js:214 -#: js/toolbar.js:269 -msgid "ภาษาไทย" +#: js/block-verbose.js:4477 +#: js/block.js:4401 +msgid "Octave value must be between 1 and 10." msgstr "" -#: js/toolbar.js:95 -#: js/toolbar.js:160 -#: js/toolbar.js:215 -#: js/toolbar.js:270 -msgid "aymara" +#: js/block-verbose.js:4485 +#: js/block.js:4409 +msgid "Numbers can have at most 10 digits." msgstr "" -#: js/toolbar.js:96 -#: js/toolbar.js:161 -#: js/toolbar.js:216 -#: js/toolbar.js:271 -msgid "quechua" +#: js/activity.js:390 +#: js/activity.js:395 +msgid "Search for blocks" msgstr "" -#: js/toolbar.js:97 -#: js/toolbar.js:162 -#: js/toolbar.js:217 -#: js/toolbar.js:272 -msgid "guarani" +#: js/activity.js:1413 +msgid "Refresh your browser to change to advanced mode." msgstr "" -#: js/toolbar.js:98 -#: js/toolbar.js:163 -#: js/toolbar.js:218 -#: js/toolbar.js:273 -msgid "हिंदी" +#: js/activity.js:1418 +msgid "Refresh your browser to change to beginner mode." msgstr "" -#: js/toolbar.js:99 -#: js/toolbar.js:165 -#: js/toolbar.js:219 -#: js/toolbar.js:275 -msgid "igbo" +#: js/activity.js:1477 +msgid "Catching mice" +msgstr "" + +#: js/activity.js:1478 +msgid "Cleaning the instruments" +msgstr "" + +#: js/activity.js:1479 +msgid "Testing key pieces" +msgstr "" + +#: js/activity.js:1480 +msgid "Sight-reading" +msgstr "" + +#: js/activity.js:1481 +msgid "Combining math and music" msgstr "" -#: js/toolbar.js:100 -#: js/toolbar.js:166 -#: js/toolbar.js:220 -#: js/toolbar.js:276 -msgid "عربى" +#: js/activity.js:1482 +msgid "Generating more blocks" msgstr "" -#: js/toolbar.js:101 -#: js/toolbar.js:164 -#: js/toolbar.js:221 -#: js/toolbar.js:274 -msgid "తెలుగు" +#: js/activity.js:1483 +msgid "Do Re Mi Fa Sol La Ti Do" msgstr "" -#: js/toolbar.js:102 -#: js/toolbar.js:167 -#: js/toolbar.js:222 -#: js/toolbar.js:277 -msgid "עִברִית" +#: js/activity.js:1484 +msgid "Tuning string instruments" msgstr "" -#: js/toolbar.js:111 -#: js/toolbar.js:175 -#: js/toolbar.js:176 -#: js/toolbar.js:231 -msgid "Full Screen" +#: js/activity.js:1485 +msgid "Pressing random keys" msgstr "" -#: js/toolbar.js:145 -#: js/toolbar.js:148 -#: js/toolbar.js:200 -#: js/toolbar.js:203 -#: js/toolbar.js:255 -#: js/toolbar.js:258 -#: js/turtledefs.js:558 -msgid "Save turtle artwork as PNG" +#: js/activity.js:1663 +msgid "plugins will be removed upon restart." msgstr "" -#: js/toolbar.js:147 -#: js/toolbar.js:202 -#: js/toolbar.js:257 -#: js/turtledefs.js:554 -msgid "Save turtle artwork as SVG" +#: js/activity.js:1672 +msgid "show Cartesian" msgstr "" -#: js/toolbar.js:154 -#: js/toolbar.js:209 -#: js/toolbar.js:264 -msgid "한국인" +#: js/activity.js:2211 +#: js/palette.js:589 +#: js/blocks/RhythmBlocks.js:923 +#: js/blocks/PitchBlocks.js:442 +#: js/blocks/PitchBlocks.js:1786 +#.TRANS: a numeric mapping of the notes in an octave based on the musical mode +msgid "scale degree" msgstr "" -#: js/toolbar.js:171 -#: js/toolbar.js:227 -msgid "About Turtle Blocks" +#: js/activity.js:2214 +#: js/palette.js:598 +msgid "voice name" msgstr "" -#: js/toolbar.js:429 -#: js/toolbar.js:440 -msgid "Turtle Wrap Off" +#: js/activity.js:2217 +#: js/palette.js:595 +msgid "invert mode" msgstr "" -#: js/toolbar.js:442 -msgid "Turtle Wrap On" +#: js/activity.js:2220 +msgid "output tools" msgstr "" -#: js/block.js:1470 -msgid "matrix" +#: js/activity.js:2223 +msgid "custom note" msgstr "" -#: js/block.js:1477 -#: js/WidgetBlocks.js:1226 -#: plugins/rodi.rtp:324 -msgid "status" +#: js/activity.js:2226 +msgid "accidental name" msgstr "" -#: js/block.js:1484 -msgid "drum mapper" +#: js/activity.js:2229 +#: js/blocks/PitchBlocks.js:855 +msgid "east indian solfege" msgstr "" -#: js/block.js:1491 -msgid "ruler" +#: js/activity.js:2232 +#: js/blocks/PitchBlocks.js:869 +msgid "note name" msgstr "" -#: js/block.js:1498 -#: js/WidgetBlocks.js:327 -#.TRANS: timbre is the character or quality of a musical sound -msgid "timbre" +#: js/activity.js:2235 +#: js/blocks/IntervalsBlocks.js:94 +msgid "temperament name" msgstr "" -#: js/block.js:1505 -msgid "stair" +#: js/activity.js:2238 +#: js/palette.js:592 +msgid "mode name" msgstr "" -#: js/block.js:1512 -#: js/WidgetBlocks.js:577 -#.TRANS: the speed at music is should be played. -msgid "tempo" +#: js/activity.js:2241 +msgid "chord name" msgstr "" -#: js/block.js:1519 -#: js/block.js:1582 -#: js/IntervalsBlocks.js:1268 -#.TRANS: mode, e.g., Major in C Major -msgid "mode" +#: js/activity.js:2244 +#: js/palette.js:615 +msgid "interval name" msgstr "" -#: js/block.js:1526 -msgid "slider" +#: js/activity.js:2247 +msgid "filter type" msgstr "" -#: js/block.js:1533 -#: js/SensorsBlocks.js:1001 -msgid "keyboard" +#: js/activity.js:2250 +msgid "oscillator type" msgstr "" -#: js/block.js:1547 -#: js/WidgetBlocks.js:957 -#: js/WidgetBlocks.js:988 -#.TRANS: widget for subdividing a measure into distinct rhythmic elements -msgid "rhythm maker" +#: js/activity.js:2253 +#: js/blocks.js:2479 +#: js/blocks.js:2487 +msgid "audio file" msgstr "" -#: js/block.js:1554 -#: js/block.js:2182 -#: js/block.js:2236 -#: js/RhythmBlockPaletteBlocks.js:70 -#: js/RhythmBlockPaletteBlocks.js:251 -#: js/RhythmBlockPaletteBlocks.js:484 -#: js/RhythmBlockPaletteBlocks.js:553 -#: js/RhythmBlockPaletteBlocks.js:604 -#: js/RhythmBlockPaletteBlocks.js:874 -#: js/RhythmBlocks.js:33 -#: js/RhythmBlocks.js:356 -#: js/RhythmBlocks.js:766 -#: js/RhythmBlocks.js:806 -#: js/OrnamentBlocks.js:220 -#: js/OrnamentBlocks.js:312 -#: js/MeterBlocks.js:1367 -#: js/DictActions.js:85 -#: js/phrasemaker.js:731 -#: js/phrasemaker.js:2393 -#: js/phrasemaker.js:2436 -#: js/phrasemaker.js:2534 -#.TRANS: the value (e.g., 1/4 note) of the note being played. -msgid "note value" +#: js/activity.js:2256 +#: js/blocks/DrumBlocks.js:32 +msgid "noise name" msgstr "" -#: js/block.js:1561 -#: js/block.js:2110 -#: js/block.js:2133 -#: js/IntervalsBlocks.js:875 -#: js/OrnamentBlocks.js:312 -#.TRANS: calculate a relative step between notes based on semi-tones -msgid "scalar interval" +#: js/activity.js:2259 +#: js/blocks/DrumBlocks.js:75 +msgid "drum name" msgstr "" -#: js/block.js:1568 -#: js/RhythmBlocks.js:148 -msgid "milliseconds" +#: js/activity.js:2262 +#: js/blocks/DrumBlocks.js:119 +msgid "effects name" msgstr "" -#: js/block.js:2180 -#: js/block.js:2184 -#: js/block.js:2234 -#: js/block.js:2345 -#: js/ProgramBlocks.js:1273 -#: js/RhythmBlocks.js:712 -#: js/rhythmruler.js:834 -#: js/rhythmruler.js:961 -msgid "silence" +#: js/activity.js:2265 +msgid "wrap mode" msgstr "" -#: js/block.js:2265 -#: js/block.js:3134 -#: js/block.js:3151 -#: js/activity.js:2336 -#: js/activity.js:2387 -#: js/musicutils.js:2932 -#: js/musicutils.js:4287 -#.TRANS: the note names must be separated by single spaces -#.TRANS: the note names must be separated by single spaces -msgid "ti la sol fa mi re do" +#: js/activity.js:2268 +msgid "load file" msgstr "" -#: js/block.js:2333 -#.TRANS: scalar step -msgid "down" +#: js/activity.js:2435 +#: js/activity.js:5851 +msgid "This block is deprecated." msgstr "" -#: js/block.js:2334 -msgid "up" +#: js/activity.js:2437 +#: js/activity.js:5853 +msgid "Block cannot be found." msgstr "" -#: js/block.js:3477 -#: js/block.js:3490 -#: js/ExtrasBlocks.js:612 -msgid "Cartesian" +#: js/activity.js:2645 +msgid "Saving block artwork" msgstr "" -#: js/block.js:3478 -#: js/block.js:3491 -#: js/ExtrasBlocks.js:616 -msgid "polar" +#: js/activity.js:2656 +msgid "Erase" msgstr "" -#: js/block.js:3479 -#: js/block.js:3492 -#: js/ExtrasBlocks.js:620 -msgid "Cartesian+polar" +#: js/activity.js:2683 +#: js/activity.js:2705 +msgid "Paste" msgstr "" -#: js/block.js:3480 -#: js/block.js:3499 -#: js/ExtrasBlocks.js:649 -msgid "none" +#: js/activity.js:2687 +msgid "Save block help" msgstr "" -#: js/block.js:3493 -#: js/ExtrasBlocks.js:625 -msgid "treble" +#: js/activity.js:2772 +msgid "Jumping to the bottom of the page." msgstr "" -#: js/block.js:3494 -#: js/ExtrasBlocks.js:629 -msgid "grand staff" +#: js/activity.js:2778 +msgid "Scrolling up." msgstr "" -#: js/block.js:3495 -#: js/ExtrasBlocks.js:633 -msgid "mezzo-soprano" +#: js/activity.js:2783 +msgid "Scrolling down." msgstr "" -#: js/block.js:3496 -#: js/ExtrasBlocks.js:637 -msgid "alto" +#: js/activity.js:2788 +msgid "Extracting block" msgstr "" -#: js/block.js:3497 -#: js/ExtrasBlocks.js:641 -msgid "tenor" +#: js/activity.js:2796 +msgid "Moving block up." msgstr "" -#: js/block.js:3498 -#: js/ExtrasBlocks.js:645 -#: js/musicutils.js:736 -#: js/synthutils.js:64 -#.TRANS: musical instrument -msgid "bass" +#: js/activity.js:2817 +msgid "Moving block down." msgstr "" -#: js/block.js:4075 -msgid "Not a number" +#: js/activity.js:2838 +msgid "Moving block left." msgstr "" -#: js/block.js:4082 -msgid "Octave value must be between 1 and 10." +#: js/activity.js:2855 +msgid "Moving block right." msgstr "" -#: js/block.js:4090 -msgid "Numbers can have at most 10 digits." +#: js/activity.js:2870 +msgid "Jump to home position." msgstr "" -#: js/notation.js:353 -msgid "Lilypond cannot process pickup of " +#: js/activity.js:2897 +msgid "Hide blocks" msgstr "" -#: js/turtledefs.js:40 -#.TRANS: put the URL to the guide here, e.g., https://github.com/sugarlabs/turtleblocksjs/tree/master/guide/README.md -msgid "guide url" +#: js/activity.js:4500 +msgid "Click the run button to run the project." msgstr "" -#: js/turtledefs.js:85 -#: js/turtledefs.js:437 -msgid "Turtle Blocks is a Logo-inspired turtle that draws colorful pictures with snap-together visual-programming blocks." +#: js/activity.js:5692 +msgid "Show/hide block" msgstr "" -#: js/turtledefs.js:118 -#: js/turtledefs.js:220 -msgid "search" +#: js/activity.js:5698 +msgid "Expand/collapse blocks" msgstr "" -#: js/turtledefs.js:120 -#: js/turtledefs.js:222 -#: js/WidgetBlocks.js:437 -#: js/MeterBlocks.js:1343 -#.TRANS: musical meter (time signature), e.g., 4:4 -msgid "meter" +#: js/activity.js:5976 +msgid "Could not parse JSON input." msgstr "" -#: js/turtledefs.js:122 -#: js/turtledefs.js:224 -msgid "intervals" +#: js/activity.js:6475 +#: js/activity.js:6580 +#: js/activity.js:6631 +msgid "Cannot load project from the file. Please check the file type." msgstr "" -#: js/turtledefs.js:124 -#: js/turtledefs.js:226 -msgid "ornament" +#: js/activity.js:6917 +msgid "Invalid parameters" msgstr "" -#: js/turtledefs.js:125 -#: js/turtledefs.js:227 -#: js/VolumeBlocks.js:362 -#: js/VolumeBlocks.js:502 -#: js/VolumeBlocks.js:545 -msgid "volume" +#: js/blocks.js:1212 +#: js/blocks.js:3444 +#: js/blocks.js:3834 +#: js/blocks.js:3865 +#: js/blocks.js:3914 +#: js/blocks.js:3949 +#: js/blocks.js:6586 +#: js/palette.js:509 +#: js/palette.js:638 +#: js/palette.js:1105 +#: js/blocks/BoxesBlocks.js:282 +#: js/blocks/BoxesBlocks.js:285 +#: js/blocks/BoxesBlocks.js:405 +#: js/blocks/BoxesBlocks.js:594 +msgid "box" msgstr "" -#: js/turtledefs.js:129 -#: js/turtledefs.js:231 -msgid "boxes" +#: js/blocks.js:1713 +msgid "Consider breaking this stack into parts." msgstr "" -#: js/turtledefs.js:130 -#: js/turtledefs.js:232 -msgid "widgets" +#: js/blocks.js:2472 +#: js/palette.js:653 +#: js/blocks/MediaBlocks.js:602 +msgid "open file" msgstr "" -#: js/turtledefs.js:131 -#: js/turtledefs.js:233 -#: js/phrasemaker.js:824 -msgid "graphics" +#: js/blocks.js:3247 +#: js/palette.js:574 +#: js/blocks/MediaBlocks.js:892 +#: js/blocks/MediaBlocks.js:963 +msgid "text" msgstr "" -#: js/turtledefs.js:134 -#: js/turtledefs.js:236 -msgid "boolean" +#: js/blocks.js:3443 +#: js/palette.js:641 +#: js/palette.js:642 +#: js/blocks/BoxesBlocks.js:514 +msgid "store in box" msgstr "" -#: js/turtledefs.js:137 -#: js/turtledefs.js:239 -#: js/HeapBlocks.js:59 -#: js/status.js:147 -msgid "heap" +#: js/blocks.js:3448 +#: js/blocks.js:3888 +#: js/blocks.js:3923 +#: js/blocks.js:3958 +#: js/blocks.js:5862 +#: js/blocks.js:5883 +#: js/blocks/BoxesBlocks.js:772 +msgid "box1" msgstr "" -#: js/turtledefs.js:138 -#: js/turtledefs.js:240 -#: js/ProgramBlocks.js:495 -#: js/DictBlocks.js:142 -msgid "dictionary" +#: js/blocks.js:3450 +#: js/blocks.js:3890 +#: js/blocks.js:3925 +#: js/blocks.js:3960 +#: js/blocks.js:5864 +#: js/blocks.js:5885 +#: js/blocks/BoxesBlocks.js:663 +msgid "box2" msgstr "" -#: js/turtledefs.js:139 -#: js/turtledefs.js:241 -msgid "ensemble" +#: js/blocks.js:4122 +#: js/palette.js:639 +#: js/palette.js:644 +#: js/palette.js:1041 +#: js/blocks/BoxesBlocks.js:591 +msgid "store in" msgstr "" -#: js/turtledefs.js:140 -#: js/turtledefs.js:242 -msgid "extras" +#: js/blocks.js:4122 +#: js/blocks/BoxesBlocks.js:595 +#: js/blocks/DictBlocks.js:215 +#: js/blocks/DictBlocks.js:289 +#: js/blocks/EnsembleBlocks.js:391 +#: js/blocks/EnsembleBlocks.js:402 +#: js/blocks/MediaBlocks.js:746 +#: js/blocks/PitchBlocks.js:656 +#: js/blocks/PitchBlocks.js:934 +#: js/blocks/PitchBlocks.js:1866 +#: js/blocks/ProgramBlocks.js:390 +#: js/blocks/ProgramBlocks.js:495 +#: js/blocks/ProgramBlocks.js:658 +#: js/blocks/ToneBlocks.js:1025 +msgid "name" msgstr "" -#: js/turtledefs.js:142 -#: js/turtledefs.js:244 -#.TRANS: program as in computer program -#.TRANS: program as in computer program -msgid "program" +#: js/blocks.js:4122 +#: js/blocks/BoxesBlocks.js:75 +#: js/blocks/BoxesBlocks.js:595 +#: js/blocks/DictBlocks.js:289 +#: js/blocks/DictBlocks.js:430 +#: js/blocks/HeapBlocks.js:544 +#: js/blocks/RhythmBlocks.js:1130 +msgid "value" msgstr "" -#: js/turtledefs.js:143 -#: js/turtledefs.js:245 -msgid "my blocks" +#: js/blocks.js:4465 +msgid "Forever loop detected inside a note value block. Unexpected things may happen." msgstr "" -#: js/turtledefs.js:185 -#: js/turtledefs.js:281 -msgid "artwork" +#: js/blocks.js:4988 +msgid "There is no block selected." msgstr "" -#: js/turtledefs.js:185 -#: js/turtledefs.js:281 -msgid "logic" +#: js/blocks.js:5091 +#: js/blocks/MediaBlocks.js:888 +msgid "show" msgstr "" -#: js/turtledefs.js:185 -#: js/turtledefs.js:281 -msgid "music" +#: js/blocks.js:5094 +#: js/blocks/MediaBlocks.js:803 +#.TRANS: Avatar is the image used to determine the appearance of the mouse. +msgid "avatar" msgstr "" -#: js/turtledefs.js:187 -#: js/turtledefs.js:463 -msgid "Music Blocks is a collection of tools for exploring fundamental musical concepts in a fun way." +#: js/blocks.js:5097 +#: js/blocks/ToneBlocks.js:1010 +#: js/widgets/sampler.js:975 +#.TRANS: The sound sample that the user uploads. +msgid "sample" msgstr "" -#: js/turtledefs.js:436 -msgid "Welcome to Turtle Blocks" +#: js/lilypond.js:606 +msgid "brown rat" msgstr "" -#: js/turtledefs.js:438 -#: js/turtledefs.js:465 -#: js/turtledefs.js:774 -#: js/turtledefs.js:805 -msgid "The current version is" +#: js/lilypond.js:607 +msgid "mole" msgstr "" -#: js/turtledefs.js:446 -#: js/turtledefs.js:483 -msgid "Click the run button to run the project in fast mode." +#: js/lilypond.js:608 +msgid "chipmunk" msgstr "" -#: js/turtledefs.js:452 -msgid "Stop the turtle." +#: js/lilypond.js:609 +msgid "red squirrel" msgstr "" -#: js/turtledefs.js:454 -#: js/turtledefs.js:491 -msgid "You can also type Alt-S to stop." +#: js/lilypond.js:610 +msgid "guinea pig" +msgstr "" + +#: js/lilypond.js:611 +msgid "capybara" msgstr "" -#: js/turtledefs.js:462 -#: js/help.js:333 -msgid "Welcome to Music Blocks" +#: js/lilypond.js:612 +msgid "coypu" msgstr "" -#: js/turtledefs.js:472 -#: js/help.js:334 -msgid "Meet Mr. Mouse!" +#: js/lilypond.js:613 +msgid "black rat" msgstr "" -#: js/turtledefs.js:473 -msgid "Mr Mouse is our Music Blocks conductor." +#: js/lilypond.js:614 +msgid "grey squirrel" msgstr "" -#: js/turtledefs.js:475 -msgid "Mr Mouse encourages you to explore Music Blocks." +#: js/lilypond.js:615 +msgid "flying squirrel" msgstr "" -#: js/turtledefs.js:477 -msgid "Let us start our tour!" +#: js/lilypond.js:616 +msgid "bat" msgstr "" -#: js/turtledefs.js:489 -msgid "Stop the music (and the mice)." +#: js/lilypond.js:749 +#: js/lilypond.js:913 +#: js/lilypond.js:951 +#: js/blocks/ActionBlocks.js:1256 +#: js/blocks/ExtrasBlocks.js:556 +msgid "start drum" msgstr "" -#: js/turtledefs.js:499 -msgid "Record your project as video." +#: js/logo.js:61 +msgid "Not a valid pitch name" msgstr "" -#: js/turtledefs.js:505 -msgid "Toggle Fullscreen mode." +#: js/logo.js:507 +#: js/blocks/ProgramBlocks.js:258 +#: js/blocks/ProgramBlocks.js:427 +msgid "You must select a file." msgstr "" -#: js/turtledefs.js:511 -msgid "Initialize a new project." +#: js/logo.js:1696 +msgid "Playback is ready." msgstr "" -#: js/turtledefs.js:517 -msgid "You can also load projects from the file system." +#: js/macros.js:711 +#: js/utils/musicutils.js:1162 +#: js/utils/synthutils.js:202 +#.TRANS: animal sound effect +msgid "duck" msgstr "" -#: js/turtledefs.js:522 -#: js/StringHelper.js:46 -msgid "Delete" +#: js/notation.js:353 +msgid "Lilypond cannot process pickup of " msgstr "" -#: js/turtledefs.js:523 -msgid "To delete a block, just right-click on it, then you will be able to see the delete option" +#: js/palette.js:571 +msgid "grid" msgstr "" -#: js/turtledefs.js:528 -#: js/activity.js:2270 -#: js/LocalCard.js:31 -msgid "Copy" +#: js/palette.js:580 +msgid "effect" msgstr "" -#: js/turtledefs.js:529 -msgid "To copy a block, just right-click on it, then you will be able to see the copy option" +#: js/palette.js:586 +msgid "sargam" msgstr "" -#: js/turtledefs.js:535 -msgid "To extract a block, just right-click on it, then you will be able to see the extract option" +#: js/palette.js:601 +#: js/blocks/PitchBlocks.js:1209 +msgid "custom pitch" msgstr "" -#: js/turtledefs.js:542 -#: js/turtledefs.js:552 -#: js/turtledefs.js:573 -msgid "Save your project to a file." +#: js/palette.js:609 +msgid "accidental" msgstr "" -#: js/turtledefs.js:549 -#: js/turtledefs.js:570 -msgid "save" +#: js/palette.js:633 +#: js/blocks/PitchBlocks.js:405 +msgid "pitch converter" msgstr "" -#: js/turtledefs.js:556 -#: js/turtledefs.js:577 -msgid "Save graphics from your project to as SVG." +#: js/piemenus.js:200 +#: js/utils/musicutils.js:1187 +#: js/utils/musicutils.js:1207 +#: js/widgets/musickeyboard.js:2341 +#: js/widgets/phrasemaker.js:1908 +#: js/widgets/sampler.js:810 +#.TRANS: double sharp is a music term related to pitch +msgid "double sharp" msgstr "" -#: js/turtledefs.js:560 -#: js/turtledefs.js:581 -msgid "Save graphics from your project as PNG." +#: js/piemenus.js:201 +#: js/utils/musicutils.js:1185 +#: js/utils/musicutils.js:1208 +#: js/blocks/PitchBlocks.js:1539 +#: js/turtleactions/PitchActions.js:323 +#: js/widgets/musickeyboard.js:2342 +#: js/widgets/phrasemaker.js:1909 +#: js/widgets/sampler.js:811 +#.TRANS: sharp is a music term related to pitch +#.TRANS: sharp is a half-step up in pitch +msgid "sharp" msgstr "" -#: js/turtledefs.js:564 -#: js/turtledefs.js:597 -msgid "Save block artwork as an SVG file." +#: js/piemenus.js:202 +#: js/utils/musicutils.js:1183 +#: js/utils/musicutils.js:1209 +#: js/widgets/musickeyboard.js:2343 +#: js/widgets/phrasemaker.js:1910 +#: js/widgets/sampler.js:812 +#.TRANS: natural is a music term related to pitch +msgid "natural" msgstr "" -#: js/turtledefs.js:585 -msgid "Save audio from your project as WAV." +#: js/piemenus.js:203 +#: js/utils/musicutils.js:1181 +#: js/utils/musicutils.js:1210 +#: js/blocks/PitchBlocks.js:1498 +#: js/turtleactions/PitchActions.js:326 +#: js/widgets/musickeyboard.js:2344 +#: js/widgets/phrasemaker.js:1911 +#: js/widgets/sampler.js:813 +#.TRANS: flat is a music term related to pitch +#.TRANS: flat is a half-step down in pitch +msgid "flat" msgstr "" -#: js/turtledefs.js:589 -msgid "Save your project to as an ABC file." +#: js/piemenus.js:204 +#: js/utils/musicutils.js:1179 +#: js/utils/musicutils.js:1211 +#: js/widgets/musickeyboard.js:2345 +#: js/widgets/phrasemaker.js:1912 +#: js/widgets/sampler.js:814 +#.TRANS: double flat is a music term related to pitch +msgid "double flat" msgstr "" -#: js/turtledefs.js:593 -msgid "Save your project to as a Lilypond file." +#: js/piemenus.js:2864 +#: js/utils/musicutils.js:1006 +#: js/blocks/PitchBlocks.js:1385 +#.TRANS: unison is a music term related to intervals +#.TRANS: unison means the note is the same as the current note +msgid "unison" msgstr "" -#: js/turtledefs.js:604 -msgid "Load samples from server" +#: js/piemenus.js:3018 +#: js/piemenus.js:3091 +#: js/utils/musicutils.js:1014 +#: js/utils/musicutils.js:1189 +#: js/utils/musicutils.js:1326 +#.TRANS: major is a music term related to intervals and mode +msgid "major" msgstr "" -#: js/turtledefs.js:605 -msgid "This button opens a viewer for loading example projects." +#: js/piemenus.js:3018 +#: js/piemenus.js:3091 +#: js/utils/musicutils.js:1032 +#.TRANS: modal scale for music +msgid "ionian" msgstr "" -#: js/turtledefs.js:611 -msgid "Palette buttons" +#: js/piemenus.js:3020 +#: js/piemenus.js:3095 +#: js/utils/musicutils.js:1012 +#: js/utils/musicutils.js:1190 +#: js/utils/musicutils.js:1323 +#.TRANS: minor is a music term related to intervals and mode +msgid "minor" msgstr "" -#: js/turtledefs.js:612 -msgid "This toolbar contains the palette buttons including Rhythm Pitch Tone Action and more." +#: js/piemenus.js:3020 +#: js/piemenus.js:3095 +#: js/utils/musicutils.js:1042 +#.TRANS: modal scale for music +msgid "aeolian" msgstr "" -#: js/turtledefs.js:614 -msgid "Click to show the palettes of blocks and drag blocks from the palettes onto the canvas to use them." +#: js/piemenus.js:3410 +msgid "Duplicate" msgstr "" -#: js/turtledefs.js:620 -msgid "Cartesian/Polar" +#: js/piemenus.js:3412 +msgid "Move to trash" msgstr "" -#: js/turtledefs.js:621 -msgid "Show or hide a coordinate grid." +#: js/piemenus.js:3413 +#: js/widgets/timbre.js:968 +#: planet/js/StringHelper.js:69 +msgid "Close" msgstr "" -#: js/turtledefs.js:627 -msgid "Clear the screen and return the mice to their initial positions." +#: js/piemenus.js:3419 +msgid "Save stack" msgstr "" -#: js/turtledefs.js:633 -msgid "Collapse the graphics window." +#: js/piemenus.js:3449 +msgid "In order to copy a sample, you must reload the widget, import the sample again, and export it." msgstr "" -#: js/turtledefs.js:638 -#: js/activity.js:4256 -#: js/activity.js:4256 -msgid "Home" +#: js/piemenus.js:3812 +msgid "You have chosen key " msgstr "" -#: js/turtledefs.js:639 -msgid "Return all blocks to the center of the screen." +#: js/piemenus.js:3816 +msgid " for your pitch preview." msgstr "" -#: js/turtledefs.js:644 -msgid "Show/hide blocks" +#: js/turtle-singer.js:1363 +#.TRANS: partials are weighted components in a harmonic series +msgid "You must have at least one Partial block inside of a Weighted-partial block" msgstr "" -#: js/turtledefs.js:645 -msgid "Hide or show the blocks and the palettes." +#: js/turtle-singer.js:2077 +msgid "synth cannot play chords." msgstr "" -#: js/turtledefs.js:650 -msgid "Expand/collapse collapsable blocks" +#: js/utils/musicutils.js:505 +#: js/utils/musicutils.js:645 +#: js/widgets/pitchdrummatrix.js:228 +#: js/widgets/musickeyboard.js:2885 +msgid "rest" msgstr "" -#: js/turtledefs.js:651 -msgid "Expand or collapse start and action stacks." +#: js/utils/musicutils.js:689 +msgid "Perfect unison" msgstr "" -#: js/turtledefs.js:658 -#: js/activity.js:4265 -msgid "Decrease block size" +#: js/utils/musicutils.js:689 +msgid "Diminished second" msgstr "" -#: js/turtledefs.js:659 -msgid "Decrease the size of the blocks." +#: js/utils/musicutils.js:690 +msgid "Minor second" msgstr "" -#: js/turtledefs.js:664 -#: js/activity.js:4267 -msgid "Increase block size" +#: js/utils/musicutils.js:690 +msgid "Augmented unison" msgstr "" -#: js/turtledefs.js:665 -msgid "Increase the size of the blocks." +#: js/utils/musicutils.js:691 +msgid "Major second" msgstr "" -#: js/turtledefs.js:670 -msgid "Expand/collapse option toolbar" +#: js/utils/musicutils.js:691 +msgid "Diminished third" msgstr "" -#: js/turtledefs.js:671 -msgid "Click this button to expand or collapse the auxillary toolbar." +#: js/utils/musicutils.js:692 +msgid "Minor third" msgstr "" -#: js/turtledefs.js:676 -msgid "Run slow" +#: js/utils/musicutils.js:692 +msgid "Augmented second" msgstr "" -#: js/turtledefs.js:677 -msgid "Click to run the project in slow mode." +#: js/utils/musicutils.js:693 +msgid "Major third" msgstr "" -#: js/turtledefs.js:683 -msgid "Click to run the project step by step." +#: js/utils/musicutils.js:693 +msgid "Diminished fourth" msgstr "" -#: js/turtledefs.js:690 -msgid "Display statistics about your Music project." +#: js/utils/musicutils.js:694 +msgid "Perfect fourth" msgstr "" -#: js/turtledefs.js:697 -msgid "Delete a selected plugin." +#: js/utils/musicutils.js:694 +msgid "Augmented third" msgstr "" -#: js/turtledefs.js:704 -msgid "Enable scrolling" +#: js/utils/musicutils.js:695 +msgid "Diminished fifth" msgstr "" -#: js/turtledefs.js:705 -msgid "You can scroll the blocks on the canvas." +#: js/utils/musicutils.js:695 +msgid "Augmented fourth" msgstr "" -#: js/turtledefs.js:714 -msgid "Wrap Turtle" +#: js/utils/musicutils.js:696 +msgid "Perfect fifth" msgstr "" -#: js/turtledefs.js:715 -msgid "Turn Turtle wrapping On or Off." +#: js/utils/musicutils.js:696 +msgid "Diminished sixth" msgstr "" -#: js/turtledefs.js:725 -msgid "Restore blocks from the trash." +#: js/utils/musicutils.js:697 +msgid "Minor sixth" msgstr "" -#: js/turtledefs.js:732 -msgid "Switch mode" +#: js/utils/musicutils.js:697 +msgid "Augmented fifth" msgstr "" -#: js/turtledefs.js:733 -msgid "Switch between beginner and advance modes." +#: js/utils/musicutils.js:698 +msgid "Major sixth" msgstr "" -#: js/turtledefs.js:739 -msgid "Select your language preference." +#: js/utils/musicutils.js:698 +msgid "Diminished seventh" msgstr "" -#: js/turtledefs.js:745 -msgid "Keyboard shortcuts" +#: js/utils/musicutils.js:699 +msgid "Minor seventh" msgstr "" -#: js/turtledefs.js:746 -msgid "You can type d to create a do block and r to create a re block etc." +#: js/utils/musicutils.js:699 +msgid "Augmented sixth" msgstr "" -#: js/turtledefs.js:753 -msgid "Show these messages." +#: js/utils/musicutils.js:700 +msgid "Major seventh" msgstr "" -#: js/turtledefs.js:759 -#: js/turtledefs.js:790 -#: js/help.js:335 -msgid "Guide" +#: js/utils/musicutils.js:700 +msgid "Diminished octave" msgstr "" -#: js/turtledefs.js:760 -msgid "A detailed guide to Turtle Blocks is available." +#: js/utils/musicutils.js:701 +msgid "Perfect octave" msgstr "" -#: js/turtledefs.js:764 -msgid "Turtle Blocks Guide" +#: js/utils/musicutils.js:701 +msgid "Augmented seventh" msgstr "" -#: js/turtledefs.js:767 -#: js/turtledefs.js:798 -#: js/help.js:336 -msgid "About" +#: js/utils/musicutils.js:702 +msgid "Minor ninth" msgstr "" -#: js/turtledefs.js:768 -msgid "Turtle Blocks is an open source collection of tools for exploring musical concepts." +#: js/utils/musicutils.js:702 +msgid "Augmented octave" msgstr "" -#: js/turtledefs.js:770 -msgid "A full list of contributors can be found in the Turtle Blocks GitHub repository." +#: js/utils/musicutils.js:703 +msgid "Major ninth" msgstr "" -#: js/turtledefs.js:772 -msgid "Turtle Blocks is licensed under the AGPL." +#: js/utils/musicutils.js:703 +msgid "Diminished tenth" msgstr "" -#: js/turtledefs.js:780 -msgid "Turtle Blocks GitHub repository" +#: js/utils/musicutils.js:704 +msgid "Minor tenth" msgstr "" -#: js/turtledefs.js:783 -#: js/turtledefs.js:814 -#: js/help.js:337 -#: js/help.js:359 -msgid "Congratulations." +#: js/utils/musicutils.js:704 +msgid "Augmented ninth" msgstr "" -#: js/turtledefs.js:784 -msgid "You have finished the tour. Please enjoy Turtle Blocks!" +#: js/utils/musicutils.js:705 +msgid "Major tenth" msgstr "" -#: js/turtledefs.js:791 -msgid "A detailed guide to Music Blocks is available." +#: js/utils/musicutils.js:705 +msgid "Diminished eleventh" msgstr "" -#: js/turtledefs.js:795 -#: js/SaveInterface.js:76 -msgid "Music Blocks Guide" +#: js/utils/musicutils.js:706 +msgid "Perfect eleventh" msgstr "" -#: js/turtledefs.js:799 -msgid "Music Blocks is an open source collection of tools for exploring musical concepts." +#: js/utils/musicutils.js:706 +msgid "Augmented tenth" msgstr "" -#: js/turtledefs.js:801 -msgid "A full list of contributors can be found in the Music Blocks GitHub repository." +#: js/utils/musicutils.js:707 +msgid "Diminished twelfth" msgstr "" -#: js/turtledefs.js:803 -msgid "Music Blocks is licensed under the AGPL." +#: js/utils/musicutils.js:707 +msgid "Augmented eleventh" msgstr "" -#: js/turtledefs.js:811 -msgid "Music Blocks GitHub repository" +#: js/utils/musicutils.js:708 +msgid "Perfect twelfth" msgstr "" -#: js/turtledefs.js:815 -msgid "You have finished the tour. Please enjoy Music Blocks!" +#: js/utils/musicutils.js:708 +msgid "Diminished thirteenth" msgstr "" -#: js/activity.js:369 -msgid "Search for blocks" +#: js/utils/musicutils.js:709 +msgid "Minor thirteenth" msgstr "" -#: js/activity.js:1145 -msgid "Refresh your browser to change to advanced mode." +#: js/utils/musicutils.js:709 +msgid "Augmented fifth, plus an octave" msgstr "" -#: js/activity.js:1150 -msgid "Refresh your browser to change to beginner mode." +#: js/utils/musicutils.js:710 +msgid "Major thirteenth" msgstr "" -#: js/activity.js:1184 -msgid "Catching mice" +#: js/utils/musicutils.js:710 +msgid "Diminished seventh, plus an octave" msgstr "" -#: js/activity.js:1185 -msgid "Cleaning the instruments" +#: js/utils/musicutils.js:838 +#.TRANS: ordinal number. Please keep exactly one space between each number. +msgid "1st 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th" msgstr "" -#: js/activity.js:1186 -msgid "Testing key pieces" +#: js/utils/musicutils.js:1008 +#: js/utils/musicutils.js:1191 +#: js/utils/musicutils.js:1325 +#.TRANS: augmented is a music term related to intervals +msgid "augmented" msgstr "" -#: js/activity.js:1187 -msgid "Sight-reading" +#: js/utils/musicutils.js:1010 +#: js/utils/musicutils.js:1192 +#: js/utils/musicutils.js:1324 +#.TRANS: diminished is a music term related to intervals and mode +msgid "diminished" msgstr "" -#: js/activity.js:1188 -msgid "Combining math and music" +#: js/utils/musicutils.js:1016 +#: js/utils/musicutils.js:1322 +#: js/blocks/IntervalsBlocks.js:649 +#: js/turtleactions/IntervalsActions.js:120 +#: js/turtleactions/IntervalsActions.js:124 +#.TRANS: perfect is a music term related to intervals +msgid "perfect" +msgstr "" + +#: js/utils/musicutils.js:1018 +#.TRANS: twelve semi-tone scale for music +msgid "chromatic" msgstr "" -#: js/activity.js:1189 -msgid "Generating more blocks" +#: js/utils/musicutils.js:1019 +msgid "algerian" msgstr "" -#: js/activity.js:1190 -msgid "Do Re Mi Fa Sol La Ti Do" +#: js/utils/musicutils.js:1020 +msgid "spanish" msgstr "" -#: js/activity.js:1191 -msgid "Tuning string instruments" +#: js/utils/musicutils.js:1022 +#.TRANS: modal scale in music +msgid "octatonic" msgstr "" -#: js/activity.js:1192 -msgid "Pressing random keys" +#: js/utils/musicutils.js:1024 +#.TRANS: harmonic major scale in music +msgid "harmonic major" msgstr "" -#: js/activity.js:1351 -msgid "plugins will be removed upon restart." +#: js/utils/musicutils.js:1026 +#.TRANS: natural minor scales in music +msgid "natural minor" msgstr "" -#: js/activity.js:1360 -msgid "show Cartesian" +#: js/utils/musicutils.js:1028 +#.TRANS: harmonic minor scale in music +msgid "harmonic minor" msgstr "" -#: js/activity.js:1842 -msgid "output tools" +#: js/utils/musicutils.js:1030 +#.TRANS: melodic minor scale in music +msgid "melodic minor" msgstr "" -#: js/activity.js:1845 -msgid "custom note" +#: js/utils/musicutils.js:1034 +#.TRANS: modal scale for music +msgid "dorian" msgstr "" -#: js/activity.js:1848 -msgid "accidental name" +#: js/utils/musicutils.js:1036 +#.TRANS: modal scale for music +msgid "phrygian" msgstr "" -#: js/activity.js:1851 -#: js/PitchBlocks.js:855 -msgid "east indian solfege" +#: js/utils/musicutils.js:1038 +#.TRANS: modal scale for music +msgid "lydian" msgstr "" -#: js/activity.js:1854 -#: js/PitchBlocks.js:869 -msgid "note name" +#: js/utils/musicutils.js:1040 +#.TRANS: modal scale for music +msgid "mixolydian" msgstr "" -#: js/activity.js:1857 -#: js/IntervalsBlocks.js:94 -msgid "temperament name" +#: js/utils/musicutils.js:1044 +#.TRANS: modal scale for music +msgid "locrian" msgstr "" -#: js/activity.js:1863 -msgid "chord name" +#: js/utils/musicutils.js:1046 +#.TRANS: minor jazz scale for music +msgid "jazz minor" msgstr "" -#: js/activity.js:1869 -msgid "filter type" +#: js/utils/musicutils.js:1048 +#.TRANS: bebop scale for music +msgid "bebop" msgstr "" -#: js/activity.js:1872 -msgid "oscillator type" +#: js/utils/musicutils.js:1049 +msgid "arabic" msgstr "" -#: js/activity.js:1878 -#: js/DrumBlocks.js:32 -msgid "noise name" +#: js/utils/musicutils.js:1050 +msgid "byzantine" msgstr "" -#: js/activity.js:1881 -#: js/DrumBlocks.js:75 -msgid "drum name" +#: js/utils/musicutils.js:1052 +#.TRANS: musical scale for music by Verdi +msgid "enigmatic" msgstr "" -#: js/activity.js:1884 -#: js/DrumBlocks.js:119 -msgid "effects name" +#: js/utils/musicutils.js:1053 +msgid "ethiopian" msgstr "" -#: js/activity.js:1887 -msgid "wrap mode" +#: js/utils/musicutils.js:1055 +#.TRANS: Ethiopic scale for music +msgid "geez" msgstr "" -#: js/activity.js:1890 -msgid "load file" +#: js/utils/musicutils.js:1056 +msgid "hindu" msgstr "" -#: js/activity.js:2056 -msgid "This block is deprecated." +#: js/utils/musicutils.js:1057 +msgid "hungarian" msgstr "" -#: js/activity.js:2058 -msgid "Block cannot be found." +#: js/utils/musicutils.js:1059 +#.TRANS: minor Romanian scale for music +msgid "romanian minor" msgstr "" -#: js/activity.js:2266 -msgid "Saving block artwork" +#: js/utils/musicutils.js:1060 +msgid "spanish gypsy" msgstr "" -#: js/activity.js:2277 -msgid "Erase" +#: js/utils/musicutils.js:1062 +#.TRANS: musical scale for Mid-Eastern music +msgid "maqam" msgstr "" -#: js/activity.js:2301 -#: js/activity.js:2323 -msgid "Paste" +#: js/utils/musicutils.js:1064 +#.TRANS: minor blues scale for music +msgid "minor blues" msgstr "" -#: js/activity.js:2305 -msgid "Save block help" +#: js/utils/musicutils.js:1066 +#.TRANS: major blues scale for music +msgid "major blues" msgstr "" -#: js/activity.js:2390 -msgid "Jumping to the bottom of the page." +#: js/utils/musicutils.js:1067 +msgid "whole tone" msgstr "" -#: js/activity.js:2396 -msgid "Scrolling up." +#: js/utils/musicutils.js:1069 +#.TRANS: pentatonic is a general term that means "five note scale". This scale is typically known as "minor pentatonic" +msgid "minor pentatonic" msgstr "" -#: js/activity.js:2401 -msgid "Scrolling down." +#: js/utils/musicutils.js:1071 +#.TRANS: pentatonic is a general term that means "five note scale". This scale is typically known as "major pentatonic" +msgid "major pentatonic" msgstr "" -#: js/activity.js:2406 -msgid "Extracting block" +#: js/utils/musicutils.js:1072 +msgid "chinese" msgstr "" -#: js/activity.js:2414 -msgid "Moving block up." +#: js/utils/musicutils.js:1073 +msgid "egyptian" msgstr "" -#: js/activity.js:2435 -msgid "Moving block down." +#: js/utils/musicutils.js:1075 +#.TRANS: https://en.wikipedia.org/wiki/Hirajoshi_scale NOTE: There are three different versions of this scale +msgid "hirajoshi" msgstr "" -#: js/activity.js:2456 -msgid "Moving block left." +#: js/utils/musicutils.js:1076 +msgid "Japan" msgstr "" -#: js/activity.js:2473 -msgid "Moving block right." +#: js/utils/musicutils.js:1078 +#.TRANS: https://en.wikipedia.org/wiki/In_scale and https://en.wikipedia.org/wiki/Sakura_Sakura +msgid "in" msgstr "" -#: js/activity.js:2488 -msgid "Jump to home position." +#: js/utils/musicutils.js:1080 +#.TRANS: https://en.wikipedia.org/wiki/Miny%C5%8D_scale +msgid "minyo" msgstr "" -#: js/activity.js:2515 -msgid "Hide blocks" +#: js/utils/musicutils.js:1082 +#.TRANS: Italian mathematician +msgid "fibonacci" msgstr "" -#: js/activity.js:3389 -msgid "Click the run button to run the project." +#: js/utils/musicutils.js:1083 +#: js/utils/musicutils.js:1134 +#: js/utils/musicutils.js:1177 +#: js/utils/musicutils.js:1199 +#: js/utils/synthutils.js:134 +#: js/blocks/IntervalsBlocks.js:1124 +#: js/blocks/ToneBlocks.js:946 +#: js/blocks/VolumeBlocks.js:411 +#: js/blocks/WidgetBlocks.js:399 +#: js/blocks/WidgetBlocks.js:404 +#: js/turtleactions/VolumeActions.js:218 +#: js/widgets/modewidget.js:919 +#.TRANS: customize voice +msgid "custom" msgstr "" -#: js/activity.js:3456 -#: js/SaveInterface.js:131 -#: js/SaveInterface.js:204 -#: js/SaveInterface.js:262 -#: js/SaveInterface.js:389 -#: js/SaveInterface.js:417 -#: js/ProjectStorage.js:27 -#: js/GlobalPlanet.js:467 -#: js/GlobalPlanet.js:469 -#: js/GlobalPlanet.js:495 -#.TRANS: default project title when saving as Lilypond -msgid "My Project" +#: js/utils/musicutils.js:1085 +#: js/utils/musicutils.js:1531 +#: js/blocks/WidgetBlocks.js:176 +#.TRANS: highpass filter +msgid "highpass" msgstr "" -#: js/activity.js:4261 -msgid "Show/hide block" +#: js/utils/musicutils.js:1087 +#: js/utils/musicutils.js:1532 +#.TRANS: lowpass filter +msgid "lowpass" msgstr "" -#: js/activity.js:4263 -msgid "Expand/collapse blocks" +#: js/utils/musicutils.js:1089 +#: js/utils/musicutils.js:1533 +#.TRANS: bandpass filter +msgid "bandpass" msgstr "" -#: js/activity.js:4381 -msgid "Could not parse JSON input." +#: js/utils/musicutils.js:1091 +#: js/utils/musicutils.js:1534 +#.TRANS: high-shelf filter +msgid "highshelf" msgstr "" -#: js/activity.js:4684 -#: js/activity.js:4771 -#: js/activity.js:4821 -msgid "Cannot load project from the file. Please check the file type." +#: js/utils/musicutils.js:1093 +#: js/utils/musicutils.js:1535 +#.TRANS: low-shelf filter +msgid "lowshelf" msgstr "" -#: js/activity.js:5051 -msgid "Invalid parameters" +#: js/utils/musicutils.js:1095 +#: js/utils/musicutils.js:1536 +#.TRANS: notch-shelf filter +msgid "notch" msgstr "" -#: js/turtle-singer.js:1334 -#.TRANS: partials are weighted components in a harmonic series -msgid "You must have at least one Partial block inside of a Weighted-partial block" +#: js/utils/musicutils.js:1097 +#: js/utils/musicutils.js:1537 +#.TRANS: all-pass filter +msgid "allpass" msgstr "" -#: js/turtle-singer.js:2048 -msgid "synth cannot play chords." +#: js/utils/musicutils.js:1099 +#: js/utils/musicutils.js:1538 +#.TRANS: peaking filter +msgid "peaking" msgstr "" -#: js/lilypond.js:614 -msgid "brown rat" +#: js/utils/musicutils.js:1100 +#: js/utils/musicutils.js:1546 +#: js/utils/synthutils.js:126 +#: js/blocks/PitchBlocks.js:85 +#.TRANS: sine wave +msgid "sine" msgstr "" -#: js/lilypond.js:615 -msgid "mole" +#: js/utils/musicutils.js:1101 +#: js/utils/musicutils.js:1547 +#: js/utils/synthutils.js:128 +#: js/blocks/PitchBlocks.js:39 +#.TRANS: square wave +msgid "square" msgstr "" -#: js/lilypond.js:616 -msgid "chipmunk" +#: js/utils/musicutils.js:1102 +#: js/utils/musicutils.js:1548 +#: js/utils/synthutils.js:132 +#: js/blocks/PitchBlocks.js:62 +#: js/blocks/ToneBlocks.js:39 +#.TRANS: triangle wave +msgid "triangle" msgstr "" -#: js/lilypond.js:617 -msgid "red squirrel" +#: js/utils/musicutils.js:1103 +#: js/utils/musicutils.js:1549 +#: js/utils/synthutils.js:130 +#: js/blocks/PitchBlocks.js:108 +#.TRANS: sawtooth wave +msgid "sawtooth" msgstr "" -#: js/lilypond.js:618 -msgid "guinea pig" +#: js/utils/musicutils.js:1105 +#: js/utils/musicutils.js:1312 +#: js/blocks/PitchBlocks.js:931 +#: js/blocks/PitchBlocks.js:937 +#: js/turtleactions/PitchActions.js:469 +#.TRANS: even numbers +#.TRANS: invert based on even or odd number or musical scale +msgid "even" msgstr "" -#: js/lilypond.js:619 -msgid "capybara" +#: js/utils/musicutils.js:1107 +#: js/utils/musicutils.js:1313 +#: js/blocks/PitchBlocks.js:937 +#: js/turtleactions/PitchActions.js:471 +#.TRANS: odd numbers +msgid "odd" msgstr "" -#: js/lilypond.js:620 -msgid "coypu" +#: js/utils/musicutils.js:1108 +#: js/utils/musicutils.js:1314 +#: js/blocks/PitchBlocks.js:937 +#: js/turtleactions/PitchActions.js:473 +msgid "scalar" msgstr "" -#: js/lilypond.js:621 -msgid "black rat" +#: js/utils/musicutils.js:1109 +#: js/utils/synthutils.js:72 +#: js/blocks/VolumeBlocks.js:47 +#.TRANS: musical instrument +msgid "piano" msgstr "" -#: js/lilypond.js:622 -msgid "grey squirrel" +#: js/utils/musicutils.js:1110 +#: js/utils/synthutils.js:74 +#.TRANS: musical instrument +msgid "violin" msgstr "" -#: js/lilypond.js:623 -msgid "flying squirrel" +#: js/utils/musicutils.js:1111 +#: js/utils/synthutils.js:76 +#.TRANS: viola musical instrument +msgid "viola" msgstr "" -#: js/lilypond.js:624 -msgid "bat" +#: js/utils/musicutils.js:1112 +#: js/utils/synthutils.js:114 +#.TRANS: xylophone musical instrument +msgid "xylophone" msgstr "" -#: js/lilypond.js:757 -#: js/lilypond.js:921 -#: js/lilypond.js:959 -#: js/ActionBlocks.js:1256 -#: js/ExtrasBlocks.js:553 -msgid "start drum" +#: js/utils/musicutils.js:1113 +#: js/utils/synthutils.js:136 +#.TRANS: vibraphone musical instrument +msgid "vibraphone" msgstr "" -#: js/SaveInterface.js:59 -#: js/SaveInterface.js:61 -#: js/SaveInterface.js:93 -msgid "Music Blocks Project" +#: js/utils/musicutils.js:1114 +#: js/utils/synthutils.js:78 +#.TRANS: musical instrument +msgid "cello" msgstr "" -#: js/SaveInterface.js:63 -msgid "This project was created in Music Blocks" +#: js/utils/musicutils.js:1116 +#: js/utils/synthutils.js:82 +#.TRANS: viola musical instrument +msgid "double bass" msgstr "" -#: js/SaveInterface.js:67 -msgid "Music Blocks is a Free/Libre Software application." +#: js/utils/musicutils.js:1117 +#: js/utils/synthutils.js:84 +#: js/widgets/rhythmruler.js:2511 +#.TRANS: musical instrument +msgid "guitar" msgstr "" -#: js/SaveInterface.js:69 -msgid "The source code can be accessed at" +#: js/utils/musicutils.js:1118 +#: js/utils/synthutils.js:86 +#.TRANS: musical instrument +msgid "acoustic guitar" msgstr "" -#: js/SaveInterface.js:72 -msgid "For more information, please consult the" +#: js/utils/musicutils.js:1119 +#: js/utils/synthutils.js:88 +#.TRANS: musical instrument +msgid "flute" msgstr "" -#: js/SaveInterface.js:83 -msgid "Alternatively, open the file in Music Blocks using the Load project button." +#: js/utils/musicutils.js:1120 +#: js/utils/synthutils.js:90 +#.TRANS: musical instrument +msgid "clarinet" msgstr "" -#: js/SaveInterface.js:85 -msgid "Project Code" +#: js/utils/musicutils.js:1121 +#: js/utils/synthutils.js:92 +#.TRANS: musical instrument +msgid "saxophone" msgstr "" -#: js/SaveInterface.js:87 -msgid "This code stores data about the blocks in a project." +#: js/utils/musicutils.js:1122 +#: js/utils/synthutils.js:94 +#.TRANS: musical instrument +msgid "tuba" msgstr "" -#: js/SaveInterface.js:89 -msgid "Show" +#: js/utils/musicutils.js:1123 +#: js/utils/synthutils.js:96 +#.TRANS: musical instrument +msgid "trumpet" msgstr "" -#: js/SaveInterface.js:91 -msgid "Hide" +#: js/utils/musicutils.js:1124 +#: js/utils/synthutils.js:98 +#.TRANS: musical instrument +msgid "oboe" msgstr "" -#: js/SaveInterface.js:197 -#: js/SaveInterface.js:58 -msgid "No description provided" +#: js/utils/musicutils.js:1125 +#: js/utils/synthutils.js:100 +#.TRANS: musical instrument +msgid "trombone" msgstr "" -#: js/SaveInterface.js:332 -msgid "Your recording is in progress." +#: js/utils/musicutils.js:1126 +#: js/utils/synthutils.js:116 +#.TRANS: polytone synthesizer +msgid "electronic synth" msgstr "" -#: js/SaveInterface.js:401 -#.TRANS: File name prompt for save as Lilypond -msgid "File name" +#: js/utils/musicutils.js:1127 +#: js/utils/synthutils.js:118 +#.TRANS: simple monotone synthesizer +msgid "simple 1" msgstr "" -#: js/SaveInterface.js:403 -#: js/StringHelper.js:39 -#.TRANS: Project title prompt for save as Lilypond -msgid "Project title" +#: js/utils/musicutils.js:1128 +msgid "simple 2" msgstr "" -#: js/SaveInterface.js:405 -#.TRANS: Project title prompt for save as Lilypond -msgid "Project author" +#: js/utils/musicutils.js:1129 +msgid "simple 3" msgstr "" -#: js/SaveInterface.js:407 -#.TRANS: MIDI prompt for save as Lilypond -msgid "Include MIDI output?" +#: js/utils/musicutils.js:1130 +msgid "simple 4" msgstr "" -#: js/SaveInterface.js:409 -#.TRANS: Guitar prompt for save as Lilypond -msgid "Include guitar tablature output?" +#: js/utils/musicutils.js:1131 +#: js/utils/synthutils.js:58 +#: js/blocks/DrumBlocks.js:191 +#.TRANS: white noise synthesizer +msgid "white noise" msgstr "" -#: js/SaveInterface.js:411 -#.TRANS: Lilypond is a scripting language for generating sheet music -msgid "Save as Lilypond" +#: js/utils/musicutils.js:1132 +#: js/utils/synthutils.js:60 +#.TRANS: brown noise synthesizer +msgid "brown noise" msgstr "" -#: js/SaveInterface.js:426 -#: js/EnsembleBlocks.js:75 -#: js/EnsembleBlocks.js:154 -#: js/EnsembleBlocks.js:216 -#: js/EnsembleBlocks.js:302 -#: js/EnsembleBlocks.js:348 -#: js/EnsembleBlocks.js:389 -#: js/EnsembleBlocks.js:441 -#: js/EnsembleBlocks.js:490 -#: js/EnsembleBlocks.js:536 -#: js/EnsembleBlocks.js:583 -#: js/EnsembleBlocks.js:637 -#: js/EnsembleBlocks.js:753 -#: js/EnsembleBlocks.js:840 -#: js/EnsembleBlocks.js:899 -#: js/EnsembleBlocks.js:942 -#: js/EnsembleBlocks.js:1212 -#: js/EnsembleBlocks.js:1280 -#.TRANS: default project author when saving as Lilypond -msgid "Mr. Mouse" +#: js/utils/musicutils.js:1133 +#: js/utils/synthutils.js:62 +#.TRANS: pink noise synthesizer +msgid "pink noise" msgstr "" -#: js/SaveInterface.js:573 -msgid "The Lilypond code is copied to clipboard. You can paste it here: " +#: js/utils/musicutils.js:1135 +#: js/utils/synthutils.js:148 +#: js/widgets/rhythmruler.js:2057 +#: js/widgets/rhythmruler.js:2319 +#.TRANS: musical instrument +msgid "snare drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:50 -#: js/RhythmBlockPaletteBlocks.js:232 -#.TRANS: rhythm block -#.TRANS: translate "rhythm1" as rhythm -msgid "rhythm1" +#: js/utils/musicutils.js:1136 +#: js/utils/synthutils.js:150 +#.TRANS: musical instrument +msgid "kick drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:70 -#: js/RhythmBlockPaletteBlocks.js:251 -#: js/RhythmBlockPaletteBlocks.js:484 -#: js/RhythmBlockPaletteBlocks.js:553 -#: js/RhythmBlockPaletteBlocks.js:874 -msgid "number of notes" +#: js/utils/musicutils.js:1137 +#: js/utils/synthutils.js:152 +#.TRANS: musical instrument +msgid "tom tom" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:126 -msgid "polyphonic rhythm" +#: js/utils/musicutils.js:1138 +#: js/utils/synthutils.js:154 +#.TRANS: musical instrument +msgid "floor tom" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:218 -msgid "The Rhythm block is used to generate rhythm patterns." +#: js/utils/musicutils.js:1139 +#: js/utils/synthutils.js:156 +#.TRANS: musical instrument +msgid "bass drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:279 -msgid "1/64 note" +#: js/utils/musicutils.js:1140 +#: js/utils/synthutils.js:158 +#.TRANS: a drum made from an inverted cup +msgid "cup drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:303 -msgid "1/32 note" +#: js/utils/musicutils.js:1141 +#: js/utils/synthutils.js:160 +#.TRANS: musical instrument +msgid "darbuka drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:331 -msgid "1/16 note" +#: js/utils/musicutils.js:1142 +#: js/utils/synthutils.js:164 +#.TRANS: musical instrument +msgid "hi hat" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:359 -msgid "eighth note" +#: js/utils/musicutils.js:1143 +#: js/utils/synthutils.js:166 +#.TRANS: a small metal bell +msgid "ride bell" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:387 -msgid "quarter note" +#: js/utils/musicutils.js:1144 +#: js/utils/synthutils.js:168 +#.TRANS: musical instrument +msgid "cow bell" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:415 -msgid "half note" +#: js/utils/musicutils.js:1145 +msgid "japanese drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:443 -msgid "whole note" +#: js/utils/musicutils.js:1146 +#: js/utils/synthutils.js:174 +#.TRANS: musical instrument +msgid "japanese bell" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:481 -#: js/RhythmBlockPaletteBlocks.js:550 -#: js/RhythmBlockPaletteBlocks.js:601 -#.TRANS: A tuplet is a note value divided into irregular time values. -msgid "tuplet" +#: js/utils/musicutils.js:1147 +#: js/utils/synthutils.js:170 +#.TRANS: musical instrument +msgid "triangle bell" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:767 -msgid "septuplet" +#: js/utils/musicutils.js:1148 +#: js/utils/synthutils.js:172 +#.TRANS: musical instrument +msgid "finger cymbals" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:795 -msgid "quintuplet" +#: js/utils/musicutils.js:1149 +#: js/utils/synthutils.js:176 +#.TRANS: a musically tuned set of bells +msgid "chime" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:823 -msgid "triplet" +#: js/utils/musicutils.js:1150 +#: js/utils/synthutils.js:178 +#.TRANS: a musical instrument +msgid "gong" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:850 -msgid "simple tuplet" +#: js/utils/musicutils.js:1151 +#: js/utils/synthutils.js:180 +#.TRANS: sound effect +msgid "clang" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:860 -msgid "Tuplets are a collection of notes that get scaled to a specific duration." +#: js/utils/musicutils.js:1152 +#: js/utils/synthutils.js:182 +#.TRANS: sound effect +msgid "crash" msgstr "" -#: js/WidgetBlocks.js:71 -#.TRANS: sound envelope (ADSR) -msgid "envelope" +#: js/utils/musicutils.js:1153 +#: js/utils/synthutils.js:184 +#.TRANS: sound effect +msgid "bottle" msgstr "" -#: js/WidgetBlocks.js:79 -#.TRANS: Attack time is the time taken for initial run-up of level from nil to peak, beginning when the key is first pressed. -msgid "attack" +#: js/utils/musicutils.js:1154 +#: js/utils/synthutils.js:186 +#.TRANS: sound effect +msgid "clap" msgstr "" -#: js/WidgetBlocks.js:81 -#.TRANS: Decay time is the time taken for the subsequent run down from the attack level to the designated sustain level. -msgid "decay" +#: js/utils/musicutils.js:1155 +#: js/utils/synthutils.js:188 +#.TRANS: sound effect +msgid "slap" msgstr "" -#: js/WidgetBlocks.js:83 -#.TRANS: Sustain level is the level during the main sequence of the sound's duration, until the key is released. -msgid "sustain" +#: js/utils/musicutils.js:1156 +#: js/utils/synthutils.js:190 +#.TRANS: sound effect +msgid "splash" msgstr "" -#: js/WidgetBlocks.js:85 -#.TRANS: Release time is the time taken for the level to decay from the sustain level to zero after the key is released. -msgid "release" +#: js/utils/musicutils.js:1157 +#: js/utils/synthutils.js:192 +#.TRANS: sound effect +msgid "bubbles" msgstr "" -#: js/WidgetBlocks.js:96 -msgid "Attack value should be from 0 to 100." +#: js/utils/musicutils.js:1158 +#: js/utils/synthutils.js:194 +#.TRANS: sound effect +msgid "raindrop" msgstr "" -#: js/WidgetBlocks.js:99 -msgid "Decay value should be from 0 to 100." +#: js/utils/musicutils.js:1159 +#: js/utils/synthutils.js:196 +#.TRANS: animal sound effect +msgid "cat" msgstr "" -#: js/WidgetBlocks.js:102 -msgid "Sustain value should be from 0 to 100." +#: js/utils/musicutils.js:1160 +#: js/utils/synthutils.js:198 +#.TRANS: animal sound effect +msgid "cricket" msgstr "" -#: js/WidgetBlocks.js:105 -msgid "Release value should be from 0-100." +#: js/utils/musicutils.js:1161 +#: js/utils/synthutils.js:200 +#.TRANS: animal sound effect +msgid "dog" msgstr "" -#: js/WidgetBlocks.js:121 -msgid "You are adding multiple envelope blocks." +#: js/utils/musicutils.js:1163 +#: js/utils/synthutils.js:102 +#.TRANS: musical instrument +msgid "banjo" msgstr "" -#: js/WidgetBlocks.js:144 -#.TRANS: a filter removes some unwanted components from a signal -msgid "filter" +#: js/utils/musicutils.js:1164 +#: js/utils/synthutils.js:104 +#.TRANS: musical instrument +msgid "koto" msgstr "" -#: js/WidgetBlocks.js:149 -#: js/musicutils.js:706 -#: js/musicutils.js:1105 -#.TRANS: highpass filter -msgid "highpass" +#: js/utils/musicutils.js:1165 +#: js/utils/synthutils.js:106 +#.TRANS: musical instrument +msgid "dulcimer" msgstr "" -#: js/WidgetBlocks.js:152 -#: js/ToneBlocks.js:42 -#: js/timbre.js:1558 -#: js/timbre.js:1808 -#.TRANS: type of filter, e.g., lowpass, highpass, etc. -#.TRANS: there are different types (sine, triangle, square...) of oscillators. -msgid "type" +#: js/utils/musicutils.js:1166 +#: js/utils/synthutils.js:108 +#.TRANS: musical instrument +msgid "electric guitar" msgstr "" -#: js/WidgetBlocks.js:154 -#: js/timbre.js:1818 -#.TRANS: rolloff is the steepness of a change in frequency. -msgid "rolloff" +#: js/utils/musicutils.js:1167 +#: js/utils/synthutils.js:110 +#.TRANS: musical instrument +msgid "bassoon" msgstr "" -#: js/WidgetBlocks.js:155 -#: js/MediaBlocks.js:692 -#: js/temperament.js:382 -#: js/temperament.js:417 -#: js/temperament.js:477 -#: js/temperament.js:485 -#: js/temperament.js:1348 -#: js/timbre.js:1842 -msgid "frequency" +#: js/utils/musicutils.js:1168 +#: js/utils/synthutils.js:112 +#.TRANS: musical instrument +msgid "celeste" msgstr "" -#: js/WidgetBlocks.js:179 -#.TRANS: rolloff is the steepness of a change in frequency. -msgid "Rolloff value should be either -12, -24, -48, or -96 decibels/octave." +#: js/utils/musicutils.js:1170 +#: js/widgets/temperament.js:787 +#.TRANS: musical temperament +msgid "equal" msgstr "" -#: js/WidgetBlocks.js:211 -msgid "The Temperament tool is used to define custom tuning." +#: js/utils/musicutils.js:1172 +#.TRANS: musical temperament +msgid "Pythagorean" msgstr "" -#: js/WidgetBlocks.js:277 -#: js/sampler.js:329 -msgid "Upload a sample and adjust its pitch center." +#: js/utils/musicutils.js:1174 +#.TRANS: musical temperament +msgid "just intonation" msgstr "" -#: js/WidgetBlocks.js:284 -#.TRANS: the speed at music is should be played. -msgid "sampler" +#: js/utils/musicutils.js:1176 +#.TRANS: musical temperament +msgid "meantone" msgstr "" -#: js/WidgetBlocks.js:329 -#: js/WidgetBlocks.js:334 -#: js/IntervalsBlocks.js:928 -#: js/VolumeBlocks.js:411 -#: js/ToneBlocks.js:946 -#: js/VolumeActions.js:218 -#: js/musicutils.js:704 -#: js/musicutils.js:755 -#: js/musicutils.js:798 -#: js/musicutils.js:820 -#: js/musicutils.js:1136 -#: js/synthutils.js:118 -#: js/modewidget.js:919 -#.TRANS: customize voice -msgid "custom" +#: js/utils/musicutils.js:1193 +msgid "major 7th" msgstr "" -#: js/WidgetBlocks.js:432 -msgid "The Meter block opens a tool to select strong beats for the meter." +#: js/utils/musicutils.js:1194 +msgid "minor 7th" msgstr "" -#: js/WidgetBlocks.js:473 -msgid "The oscilloscope block opens a tool to visualize waveforms." +#: js/utils/musicutils.js:1195 +msgid "dominant 7th" msgstr "" -#: js/WidgetBlocks.js:478 -msgid "oscilloscope" +#: js/utils/musicutils.js:1196 +msgid "minor-major 7th" msgstr "" -#: js/WidgetBlocks.js:530 -msgid "The Custom mode block opens a tool to explore musical mode (the spacing of the notes in a scale)." +#: js/utils/musicutils.js:1197 +msgid "fully-diminished 7th" msgstr "" -#: js/WidgetBlocks.js:536 -#.TRANS: musical mode is the pattern of half-steps in an octave, e.g., Major or Minor modes -msgid "custom mode" +#: js/utils/musicutils.js:1198 +msgid "half-diminished 7th" msgstr "" -#: js/WidgetBlocks.js:570 -msgid "The Tempo block opens a metronome to visualize the beat." +#: js/utils/musicutils.js:1557 +#: js/utils/musicutils.js:1569 +msgid "Equal (12EDO)" msgstr "" -#: js/WidgetBlocks.js:617 -msgid "The Arpeggio Widget is used to compose chord sequences." +#: js/utils/musicutils.js:1558 +#: js/utils/musicutils.js:1570 +msgid "5-limit Just Intonation" msgstr "" -#: js/WidgetBlocks.js:623 -#: js/IntervalsBlocks.js:683 -msgid "arpeggio" +#: js/utils/musicutils.js:1559 +#: js/utils/musicutils.js:1571 +msgid "Pythagorean (3-limit JI)" msgstr "" -#: js/WidgetBlocks.js:677 -msgid "The Pitch drum matrix is used to map pitches to drum sounds." +#: js/utils/musicutils.js:1560 +#: js/utils/musicutils.js:1561 +#: js/utils/musicutils.js:1572 +#: js/utils/musicutils.js:1573 +msgid "Meantone" msgstr "" -#: js/WidgetBlocks.js:682 -#.TRANS: makes a mapping between pitches and drum sounds -msgid "pitch-drum mapper" +#: js/utils/musicutils.js:1574 +msgid "Custom" msgstr "" -#: js/WidgetBlocks.js:724 -msgid "You must have at least one pitch block and one drum block in the matrix." +#: js/utils/musicutils.js:5387 +#: js/utils/musicutils.js:5430 +msgid "current" msgstr "" -#: js/WidgetBlocks.js:746 -msgid "The Pitch slider tool to is used to generate pitches at selected frequencies." +#: js/utils/musicutils.js:5390 +#: js/utils/musicutils.js:5421 +msgid "next" msgstr "" -#: js/WidgetBlocks.js:751 -#.TRANS: widget to generate pitches using a slider -msgid "pitch slider" +#: js/utils/musicutils.js:5393 +#: js/utils/musicutils.js:5426 +msgid "previous" msgstr "" -#: js/WidgetBlocks.js:788 -msgid "chromatic keyboard" +#: js/utils/synthutils.js:120 +#.TRANS: simple monotone synthesizer +msgid "simple-2" msgstr "" -#: js/WidgetBlocks.js:815 -#: js/WidgetBlocks.js:874 -#.TRANS: widget to generate pitches using a slider -msgid "music keyboard" +#: js/utils/synthutils.js:122 +#.TRANS: simple monotone synthesizer +msgid "simple-3" msgstr "" -#: js/WidgetBlocks.js:859 -#: js/WidgetBlocks.js:866 -msgid "The Music keyboard block opens a piano keyboard that can be used to create notes." +#: js/utils/synthutils.js:124 +#.TRANS: simple monotone synthesizer +msgid "simple-4" msgstr "" -#: js/WidgetBlocks.js:910 -msgid "The Pitch staircase tool to is used to generate pitches from a given ratio." +#: js/utils/synthutils.js:162 +#.TRANS: musical instrument +msgid "taiko" msgstr "" -#: js/WidgetBlocks.js:917 -#.TRANS: generate a progressive sequence of pitches -msgid "pitch staircase" +#: js/blocks/ActionBlocks.js:58 +msgid "The Return block will return a value from an action." msgstr "" -#: js/WidgetBlocks.js:982 -msgid "The Rhythm Maker block opens a tool to create drum machines." +#: js/blocks/ActionBlocks.js:75 +msgid "return" msgstr "" -#: js/WidgetBlocks.js:1036 -msgid "G major scale" +#: js/blocks/ActionBlocks.js:128 +msgid "The Return to URL block will return a value to a webpage." msgstr "" -#: js/WidgetBlocks.js:1064 -msgid "C major scale" +#: js/blocks/ActionBlocks.js:145 +msgid "return to URL" msgstr "" -#: js/WidgetBlocks.js:1097 -msgid "The Phrase Maker block opens a tool to create musical phrases." +#: js/blocks/ActionBlocks.js:233 +#: js/blocks/ActionBlocks.js:290 +#: js/blocks/ActionBlocks.js:501 +#: js/blocks/ActionBlocks.js:688 +msgid "The Calculate block returns a value calculated by an action." msgstr "" -#: js/WidgetBlocks.js:1104 -#.TRANS: assigns pitch to a sequence of beats to generate a melody -msgid "phrase maker" +#: js/blocks/ActionBlocks.js:251 +#: js/blocks/ActionBlocks.js:517 +#: js/blocks/ActionBlocks.js:707 +msgid "calculate" msgstr "" -#: js/WidgetBlocks.js:1168 -msgid "You must have at least one pitch block and one rhythm block in the matrix." +#: js/blocks/ActionBlocks.js:376 +#: js/blocks/ActionBlocks.js:593 +#: js/blocks/ActionBlocks.js:942 +#: js/blocks/ActionBlocks.js:1389 +#.TRANS: do is the do something or take an action. +msgid "The Do block is used to initiate an action." msgstr "" -#: js/WidgetBlocks.js:1220 -msgid "The Status block opens a tool for inspecting the status of Music Blocks as it is running." +#: js/blocks/ActionBlocks.js:390 +#: js/blocks/ActionBlocks.js:610 +#: js/blocks/ActionBlocks.js:959 +#: js/blocks/ActionBlocks.js:1048 +#: js/blocks/MeterBlocks.js:769 +msgid "do1" msgstr "" -#: js/IntervalsBlocks.js:45 -msgid "set temperament" +#: js/blocks/ActionBlocks.js:390 +#: js/blocks/ActionBlocks.js:610 +#: js/blocks/ActionBlocks.js:959 +#: js/blocks/ActionBlocks.js:1048 +#: js/blocks/FlowBlocks.js:742 +#: js/blocks/FlowBlocks.js:822 +#: js/blocks/MeterBlocks.js:769 +msgid "do" msgstr "" -#: js/IntervalsBlocks.js:63 -#: js/MediaBlocks.js:746 -#: js/PitchBlocks.js:657 -#: js/PitchBlocks.js:933 -#: js/PitchBlocks.js:972 -#: js/PitchBlocks.js:1005 -#: js/PitchBlocks.js:1166 -#: js/PitchBlocks.js:1679 -#: js/PitchBlocks.js:1720 -#: js/PitchBlocks.js:1827 -#: js/ToneBlocks.js:1025 -#.TRANS: adjusts the shift up or down by one octave (twelve half-steps in the interval between two notes, one having twice or half the frequency in Hz of the other.) -msgid "octave" +#: js/blocks/ActionBlocks.js:791 +#: js/blocks/ActionBlocks.js:865 +msgid "The Arg block contains the value of an argument passed to an action." msgstr "" -#: js/IntervalsBlocks.js:99 -msgid "The Temperament name block is used to select a tuning method." +#: js/blocks/ActionBlocks.js:806 +#: js/blocks/ActionBlocks.js:878 +msgid "arg" msgstr "" -#: js/IntervalsBlocks.js:161 -msgid "doubly" +#: js/blocks/ActionBlocks.js:836 +#: js/blocks/ActionBlocks.js:900 +#: js/blocks/ActionBlocks.js:908 +msgid "Invalid argument" msgstr "" -#: js/IntervalsBlocks.js:166 -msgid "The Doubly block will double the size of an interval." +#: js/blocks/ActionBlocks.js:944 +msgid "In the example, it is used with the One of block to choose a random phase." msgstr "" -#: js/IntervalsBlocks.js:262 -msgid "interval number" +#: js/blocks/ActionBlocks.js:1019 +#: js/blocks/ActionBlocks.js:1026 +msgid "The Listen block is used to listen for an event such as a mouse click." msgstr "" -#: js/IntervalsBlocks.js:330 -#.TRANS: measure the distance between two pitches in semi-tones -msgid "semi-tone interval measure" +#: js/blocks/ActionBlocks.js:1028 +msgid "When the event happens, an action is taken." msgstr "" -#: js/IntervalsBlocks.js:397 -#: js/IntervalsBlocks.js:513 -msgid "You must use two pitch blocks when measuring an interval." +#: js/blocks/ActionBlocks.js:1045 +msgid "on" msgstr "" -#: js/IntervalsBlocks.js:439 -msgid "The Scalar interval block measures the distance between two notes in the current key and mode." +#: js/blocks/ActionBlocks.js:1048 +#: js/blocks/ActionBlocks.js:1049 +#: js/blocks/ActionBlocks.js:1153 +msgid "event" msgstr "" -#: js/IntervalsBlocks.js:445 -#.TRANS: measure the distance between two pitches in steps of musical scale -msgid "scalar interval measure" +#: js/blocks/ActionBlocks.js:1133 +msgid "The Broadcast block is used to trigger an event." msgstr "" -#: js/IntervalsBlocks.js:592 -#: js/musicutils.js:637 -#: js/musicutils.js:908 -#.TRANS: perfect is a music term related to intervals -msgid "perfect" +#: js/blocks/ActionBlocks.js:1151 +msgid "broadcast" msgstr "" -#: js/IntervalsBlocks.js:621 -msgid "In the figure, we add sol# to sol." +#: js/blocks/ActionBlocks.js:1208 +msgid "Each Start block is a separate voice." msgstr "" -#: js/IntervalsBlocks.js:627 -#: js/OrnamentBlocks.js:220 -#.TRANS: calculate a relative step between notes based on semi-tones -msgid "semi-tone interval" +#: js/blocks/ActionBlocks.js:1304 +msgid "It is often used for storing a phrase of music that is repeated." msgstr "" -#: js/IntervalsBlocks.js:676 -msgid "The output of the example is: do, mi, sol, sol, ti, mi" +#: js/blocks/ActionBlocks.js:1495 +msgid "define temperament" msgstr "" -#: js/IntervalsBlocks.js:735 -msgid "The Chord block calculates common chords." +#: js/blocks/BooleanBlocks.js:44 +msgid "The Not block is the logical not operator." msgstr "" -#: js/IntervalsBlocks.js:737 -msgid "In the figure, we generate a C-major chord." +#: js/blocks/BooleanBlocks.js:62 +msgid "not" msgstr "" -#: js/IntervalsBlocks.js:742 -msgid "chord" +#: js/blocks/BooleanBlocks.js:134 +msgid "The And block is the logical and operator." msgstr "" -#: js/IntervalsBlocks.js:794 -msgid "The Ratio Interval block calculates an interval based on a ratio." +#: js/blocks/BooleanBlocks.js:152 +msgid "and" msgstr "" -#: js/IntervalsBlocks.js:799 -msgid "ratio interval" +#: js/blocks/BooleanBlocks.js:218 +msgid "The Or block is the logical or operator." msgstr "" -#: js/IntervalsBlocks.js:868 -msgid "In the figure, we add la to sol." +#: js/blocks/BooleanBlocks.js:236 +msgid "or" msgstr "" -#: js/IntervalsBlocks.js:924 -#.TRANS: define a custom mode -msgid "define mode" +#: js/blocks/BooleanBlocks.js:302 +msgid "The XOR block is the logical XOR operator." msgstr "" -#: js/IntervalsBlocks.js:977 -msgid "movable Do" +#: js/blocks/BooleanBlocks.js:320 +msgid "xor" msgstr "" -#: js/IntervalsBlocks.js:1028 -#.TRANS: mode length is the number of notes in the mode, e.g., 7 for major and minor scales; 12 for chromatic scales -msgid "mode length" +#: js/blocks/BooleanBlocks.js:808 +msgid "The Equal block returns True if the two numbers are equal." msgstr "" -#: js/IntervalsBlocks.js:1037 -msgid "The Mode length block is the number of notes in the current scale." +#: js/blocks/BooleanBlocks.js:909 +msgid "The Not-equal-to block returns True if the two numbers are not equal to each other." msgstr "" -#: js/IntervalsBlocks.js:1039 -msgid "Most Western scales have 7 notes." +#: js/blocks/BooleanBlocks.js:1008 +msgid "The Boolean block is used to specify true or false." msgstr "" -#: js/IntervalsBlocks.js:1088 -#.TRANS: the mode in music is 'major', 'minor', etc. -msgid "current mode" +#: js/blocks/BoxesBlocks.js:53 +#: js/blocks/BoxesBlocks.js:59 +msgid "The Add-to block is used to add to the value stored in a box." msgstr "" -#: js/IntervalsBlocks.js:1141 -#.TRANS: the key is a group of pitches with which a music composition is created -msgid "current key" +#: js/blocks/BoxesBlocks.js:61 +msgid "It can also be used with other blocks such as Color and Pen size." msgstr "" -#: js/IntervalsBlocks.js:1193 -#: js/IntervalsBlocks.js:1238 -#.TRANS: set the key and mode, e.g. C Major -msgid "set key" +#: js/blocks/BoxesBlocks.js:73 +msgid "add" msgstr "" -#: js/IntervalsBlocks.js:1247 -#: js/IntervalsBlocks.js:1253 -msgid "The Set key block is used to set the key and mode," +#: js/blocks/BoxesBlocks.js:75 +#: js/widgets/temperament.js:857 +msgid "to" msgstr "" -#: js/IntervalsBlocks.js:1253 -msgid "eg C Major" +#: js/blocks/BoxesBlocks.js:75 +#: js/blocks/BoxesBlocks.js:595 +#: js/blocks/HeapBlocks.js:544 +msgid "value1" msgstr "" -#: js/IntervalsBlocks.js:1266 -#: js/DictBlocks.js:215 -#: js/DictBlocks.js:216 -#: js/DictBlocks.js:289 -#: js/DictBlocks.js:290 -#: js/DictBlocks.js:357 -#: js/DictBlocks.js:430 -#: js/DictBlocks.js:431 -#.TRANS: key, e.g., C in C Major -msgid "key" +#: js/blocks/BoxesBlocks.js:118 +msgid "Block does not support incrementing." msgstr "" -#: js/ActionBlocks.js:58 -msgid "The Return block will return a value from an action." +#: js/blocks/BoxesBlocks.js:152 +msgid "The Add-1-to block adds one to the value stored in a box." msgstr "" -#: js/ActionBlocks.js:75 -msgid "return" +#: js/blocks/BoxesBlocks.js:163 +msgid "add 1 to" msgstr "" -#: js/ActionBlocks.js:128 -msgid "The Return to URL block will return a value to a webpage." +#: js/blocks/BoxesBlocks.js:211 +msgid "The Subtract-1-from block subtracts one from the value stored in a box." msgstr "" -#: js/ActionBlocks.js:145 -msgid "return to URL" +#: js/blocks/BoxesBlocks.js:222 +msgid "subtract 1 from" msgstr "" -#: js/ActionBlocks.js:233 -#: js/ActionBlocks.js:290 -#: js/ActionBlocks.js:501 -#: js/ActionBlocks.js:688 -msgid "The Calculate block returns a value calculated by an action." +#: js/blocks/BoxesBlocks.js:270 +#: js/blocks/BoxesBlocks.js:387 +msgid "The Box block returns the value stored in a box." msgstr "" -#: js/ActionBlocks.js:251 -#: js/ActionBlocks.js:517 -#: js/ActionBlocks.js:707 -msgid "calculate" +#: js/blocks/BoxesBlocks.js:500 +#: js/blocks/BoxesBlocks.js:576 +msgid "The Store in block will store a value in a box." msgstr "" -#: js/ActionBlocks.js:376 -#: js/ActionBlocks.js:593 -#: js/ActionBlocks.js:942 -#: js/ActionBlocks.js:1389 -#.TRANS: do is the do something or take an action. -msgid "The Do block is used to initiate an action." +#: js/blocks/BoxesBlocks.js:595 +#: js/blocks/EnsembleBlocks.js:391 +#: js/blocks/EnsembleBlocks.js:402 +msgid "name1" msgstr "" -#: js/ActionBlocks.js:390 -#: js/ActionBlocks.js:610 -#: js/ActionBlocks.js:959 -#: js/ActionBlocks.js:1048 -#: js/MeterBlocks.js:769 -msgid "do1" +#: js/blocks/BoxesBlocks.js:652 +msgid "The Box2 block returns the value stored in Box2." msgstr "" -#: js/ActionBlocks.js:390 -#: js/ActionBlocks.js:610 -#: js/ActionBlocks.js:959 -#: js/ActionBlocks.js:1048 -#: js/FlowBlocks.js:742 -#: js/FlowBlocks.js:822 -#: js/MeterBlocks.js:769 -msgid "do" +#: js/blocks/BoxesBlocks.js:703 +msgid "The Store in Box2 block is used to store a value in Box2." msgstr "" -#: js/ActionBlocks.js:791 -#: js/ActionBlocks.js:865 -msgid "The Arg block contains the value of an argument passed to an action." +#: js/blocks/BoxesBlocks.js:715 +msgid "store in box2" msgstr "" -#: js/ActionBlocks.js:806 -#: js/ActionBlocks.js:878 -msgid "arg" +#: js/blocks/BoxesBlocks.js:761 +msgid "The Box1 block returns the value stored in Box1." msgstr "" -#: js/ActionBlocks.js:836 -#: js/ActionBlocks.js:900 -#: js/ActionBlocks.js:908 -msgid "Invalid argument" +#: js/blocks/BoxesBlocks.js:812 +msgid "The Store in Box1 block is used to store a value in Box1." msgstr "" -#: js/ActionBlocks.js:944 -msgid "In the example, it is used with the One of block to choose a random phase." +#: js/blocks/BoxesBlocks.js:826 +msgid "store in box1" msgstr "" -#: js/ActionBlocks.js:1019 -#: js/ActionBlocks.js:1026 -msgid "The Listen block is used to listen for an event such as a mouse click." +#: js/blocks/DictBlocks.js:77 +msgid "show dictionary" msgstr "" -#: js/ActionBlocks.js:1028 -msgid "When the event happens, an action is taken." +#: js/blocks/DictBlocks.js:80 +#: js/blocks/DictBlocks.js:145 +#: js/blocks/DictBlocks.js:216 +#: js/blocks/DictBlocks.js:290 +#: js/blocks/ProgramBlocks.js:396 +#: js/blocks/ProgramBlocks.js:501 +#: js/blocks/ProgramBlocks.js:664 +msgid "My Dictionary" msgstr "" -#: js/ActionBlocks.js:1045 -msgid "on" +#: js/blocks/DictBlocks.js:129 +msgid "The Dictionary block returns a dictionary." msgstr "" -#: js/ActionBlocks.js:1048 -#: js/ActionBlocks.js:1049 -#: js/ActionBlocks.js:1153 -msgid "event" +#: js/blocks/DictBlocks.js:197 +#: js/blocks/DictBlocks.js:339 +msgid "The Get-dict block returns a value in the dictionary for a specified key." msgstr "" -#: js/ActionBlocks.js:1133 -msgid "The Broadcast block is used to trigger an event." +#: js/blocks/DictBlocks.js:212 +#: js/blocks/DictBlocks.js:354 +#.TRANS: retrieve a value from the dictionary with a given key +msgid "get value" msgstr "" -#: js/ActionBlocks.js:1151 -msgid "broadcast" +#: js/blocks/DictBlocks.js:215 +#: js/blocks/DictBlocks.js:216 +#: js/blocks/DictBlocks.js:289 +#: js/blocks/DictBlocks.js:290 +#: js/blocks/DictBlocks.js:357 +#: js/blocks/DictBlocks.js:430 +#: js/blocks/DictBlocks.js:431 +msgid "key2" msgstr "" -#: js/ActionBlocks.js:1208 -msgid "Each Start block is a separate voice." +#: js/blocks/DictBlocks.js:215 +#: js/blocks/DictBlocks.js:216 +#: js/blocks/DictBlocks.js:289 +#: js/blocks/DictBlocks.js:290 +#: js/blocks/DictBlocks.js:357 +#: js/blocks/DictBlocks.js:430 +#: js/blocks/DictBlocks.js:431 +#: js/blocks/IntervalsBlocks.js:1462 +#.TRANS: key, e.g., C in C Major +msgid "key" msgstr "" -#: js/ActionBlocks.js:1304 -msgid "It is often used for storing a phrase of music that is repeated." +#: js/blocks/DictBlocks.js:271 +#: js/blocks/DictBlocks.js:411 +msgid "The Set-dict block sets a value in the dictionary for a specified key." msgstr "" -#: js/ActionBlocks.js:1495 -msgid "define temperament" +#: js/blocks/DictBlocks.js:286 +#: js/blocks/DictBlocks.js:427 +#.TRANS: set a value in the dictionary for a given key +msgid "set value" msgstr "" -#: js/EnsembleBlocks.js:66 +#: js/blocks/EnsembleBlocks.js:66 msgid "mouse index heap" msgstr "" -#: js/EnsembleBlocks.js:68 +#: js/blocks/EnsembleBlocks.js:68 msgid "The Mouse index heap block returns a value in the heap at a specified location for a specified mouse." msgstr "" -#: js/EnsembleBlocks.js:77 -#: js/EnsembleBlocks.js:1080 +#: js/blocks/EnsembleBlocks.js:77 +#: js/blocks/EnsembleBlocks.js:1080 msgid "mouse name" msgstr "" -#: js/EnsembleBlocks.js:77 -#: js/EnsembleBlocks.js:92 -#: js/HeapBlocks.js:544 +#: js/blocks/EnsembleBlocks.js:77 +#: js/blocks/EnsembleBlocks.js:92 +#: js/blocks/HeapBlocks.js:544 #.TRANS: value1 is a numeric value (JAPANESE ONLY) msgid "index" msgstr "" -#: js/EnsembleBlocks.js:80 +#: js/blocks/EnsembleBlocks.js:80 msgid "turtle index heap" msgstr "" -#: js/EnsembleBlocks.js:82 +#: js/blocks/EnsembleBlocks.js:82 msgid "The Turtle index heap block returns a value in the heap at a specified location for a specified turtle." msgstr "" -#: js/EnsembleBlocks.js:90 -#: js/EnsembleBlocks.js:167 -#: js/EnsembleBlocks.js:230 -#: js/EnsembleBlocks.js:316 -#: js/EnsembleBlocks.js:362 -#: js/EnsembleBlocks.js:400 -#: js/EnsembleBlocks.js:454 -#: js/EnsembleBlocks.js:504 -#: js/EnsembleBlocks.js:550 -#: js/EnsembleBlocks.js:597 -#: js/EnsembleBlocks.js:651 -#: js/EnsembleBlocks.js:763 -#: js/EnsembleBlocks.js:854 -#: js/EnsembleBlocks.js:915 -#: js/EnsembleBlocks.js:955 -#: js/EnsembleBlocks.js:1219 -#: js/EnsembleBlocks.js:1293 +#: js/blocks/EnsembleBlocks.js:90 +#: js/blocks/EnsembleBlocks.js:167 +#: js/blocks/EnsembleBlocks.js:230 +#: js/blocks/EnsembleBlocks.js:316 +#: js/blocks/EnsembleBlocks.js:362 +#: js/blocks/EnsembleBlocks.js:400 +#: js/blocks/EnsembleBlocks.js:454 +#: js/blocks/EnsembleBlocks.js:504 +#: js/blocks/EnsembleBlocks.js:550 +#: js/blocks/EnsembleBlocks.js:597 +#: js/blocks/EnsembleBlocks.js:651 +#: js/blocks/EnsembleBlocks.js:763 +#: js/blocks/EnsembleBlocks.js:854 +#: js/blocks/EnsembleBlocks.js:915 +#: js/blocks/EnsembleBlocks.js:955 +#: js/blocks/EnsembleBlocks.js:1219 +#: js/blocks/EnsembleBlocks.js:1293 #.TRANS: Yertle is the name of a turtle. msgid "Yertle" msgstr "" -#: js/EnsembleBlocks.js:92 -#: js/EnsembleBlocks.js:1089 +#: js/blocks/EnsembleBlocks.js:92 +#: js/blocks/EnsembleBlocks.js:1089 msgid "turtle name" msgstr "" -#: js/EnsembleBlocks.js:122 -#: js/EnsembleBlocks.js:1197 -#: js/HeapBlocks.js:474 -#: js/HeapBlocks.js:572 +#: js/blocks/EnsembleBlocks.js:122 +#: js/blocks/EnsembleBlocks.js:1197 +#: js/blocks/HeapBlocks.js:474 +#: js/blocks/HeapBlocks.js:572 msgid "Index must be > 0." msgstr "" -#: js/EnsembleBlocks.js:127 -#: js/HeapBlocks.js:479 -#: js/HeapBlocks.js:577 +#: js/blocks/EnsembleBlocks.js:127 +#: js/blocks/HeapBlocks.js:479 +#: js/blocks/HeapBlocks.js:577 msgid "Maximum heap size is 1000." msgstr "" -#: js/EnsembleBlocks.js:145 +#: js/blocks/EnsembleBlocks.js:145 msgid "stop mouse" msgstr "" -#: js/EnsembleBlocks.js:147 +#: js/blocks/EnsembleBlocks.js:147 msgid "The Stop mouse block stops the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:158 +#: js/blocks/EnsembleBlocks.js:158 msgid "stop turtle" msgstr "" -#: js/EnsembleBlocks.js:160 +#: js/blocks/EnsembleBlocks.js:160 msgid "The Stop turtle block stops the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:184 -#: js/EnsembleBlocks.js:247 -#: js/EnsembleBlocks.js:413 -#: js/EnsembleBlocks.js:468 -#: js/EnsembleBlocks.js:706 -#: js/EnsembleBlocks.js:808 -#: js/EnsembleBlocks.js:870 -#: js/EnsembleBlocks.js:1190 -#: js/EnsembleBlocks.js:1253 +#: js/blocks/EnsembleBlocks.js:184 +#: js/blocks/EnsembleBlocks.js:247 +#: js/blocks/EnsembleBlocks.js:413 +#: js/blocks/EnsembleBlocks.js:468 +#: js/blocks/EnsembleBlocks.js:706 +#: js/blocks/EnsembleBlocks.js:808 +#: js/blocks/EnsembleBlocks.js:870 +#: js/blocks/EnsembleBlocks.js:1190 +#: js/blocks/EnsembleBlocks.js:1253 msgid "Cannot find mouse" msgstr "" -#: js/EnsembleBlocks.js:186 -#: js/EnsembleBlocks.js:249 -#: js/EnsembleBlocks.js:415 -#: js/EnsembleBlocks.js:470 -#: js/EnsembleBlocks.js:708 -#: js/EnsembleBlocks.js:810 -#: js/EnsembleBlocks.js:872 -#: js/EnsembleBlocks.js:1192 -#: js/EnsembleBlocks.js:1255 +#: js/blocks/EnsembleBlocks.js:186 +#: js/blocks/EnsembleBlocks.js:249 +#: js/blocks/EnsembleBlocks.js:415 +#: js/blocks/EnsembleBlocks.js:470 +#: js/blocks/EnsembleBlocks.js:708 +#: js/blocks/EnsembleBlocks.js:810 +#: js/blocks/EnsembleBlocks.js:872 +#: js/blocks/EnsembleBlocks.js:1192 +#: js/blocks/EnsembleBlocks.js:1255 msgid "Cannot find turtle" msgstr "" -#: js/EnsembleBlocks.js:206 +#: js/blocks/EnsembleBlocks.js:206 msgid "start mouse" msgstr "" -#: js/EnsembleBlocks.js:209 +#: js/blocks/EnsembleBlocks.js:209 msgid "The Start mouse block starts the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:220 +#: js/blocks/EnsembleBlocks.js:220 msgid "start turtle" msgstr "" -#: js/EnsembleBlocks.js:223 +#: js/blocks/EnsembleBlocks.js:223 msgid "The Start turtle block starts the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:256 +#: js/blocks/EnsembleBlocks.js:256 msgid "Mouse is already running." msgstr "" -#: js/EnsembleBlocks.js:258 +#: js/blocks/EnsembleBlocks.js:258 msgid "Turtle is already running." msgstr "" -#: js/EnsembleBlocks.js:282 +#: js/blocks/EnsembleBlocks.js:282 msgid "Cannot find start block" msgstr "" -#: js/EnsembleBlocks.js:292 +#: js/blocks/EnsembleBlocks.js:292 #.TRANS: pen color for this mouse msgid "mouse color" msgstr "" -#: js/EnsembleBlocks.js:294 +#: js/blocks/EnsembleBlocks.js:294 msgid "The Mouse color block returns the pen color of the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:306 +#: js/blocks/EnsembleBlocks.js:306 #.TRANS: pen color for this turtle msgid "turtle color" msgstr "" -#: js/EnsembleBlocks.js:308 +#: js/blocks/EnsembleBlocks.js:308 msgid "The Turtle color block returns the pen color of the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:338 +#: js/blocks/EnsembleBlocks.js:338 #.TRANS: heading (compass direction) for this mouse msgid "mouse heading" msgstr "" -#: js/EnsembleBlocks.js:340 +#: js/blocks/EnsembleBlocks.js:340 msgid "The Mouse heading block returns the heading of the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:352 +#: js/blocks/EnsembleBlocks.js:352 #.TRANS: heading (compass direction) for this turtle msgid "turtle heading" msgstr "" -#: js/EnsembleBlocks.js:354 +#: js/blocks/EnsembleBlocks.js:354 msgid "The Turtle heading block returns the heading of the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:384 -#: js/EnsembleBlocks.js:439 +#: js/blocks/EnsembleBlocks.js:384 +#: js/blocks/EnsembleBlocks.js:439 #.TRANS: set xy position for this mouse msgid "set mouse" msgstr "" -#: js/EnsembleBlocks.js:391 -#: js/EnsembleBlocks.js:402 -#: js/BoxesBlocks.js:595 -msgid "name1" -msgstr "" - -#: js/EnsembleBlocks.js:391 -#: js/EnsembleBlocks.js:402 -#: js/ProgramBlocks.js:881 -#: js/GraphicsBlocks.js:235 -#: js/GraphicsBlocks.js:313 -#: js/GraphicsBlocks.js:436 -#: js/GraphicsBlocks.js:487 -#: js/GraphicsBlocks.js:534 -#: js/GraphicsBlocks.js:750 +#: js/blocks/EnsembleBlocks.js:391 +#: js/blocks/EnsembleBlocks.js:402 +#: js/blocks/GraphicsBlocks.js:235 +#: js/blocks/GraphicsBlocks.js:313 +#: js/blocks/GraphicsBlocks.js:436 +#: js/blocks/GraphicsBlocks.js:487 +#: js/blocks/GraphicsBlocks.js:534 +#: js/blocks/GraphicsBlocks.js:750 +#: js/blocks/ProgramBlocks.js:881 msgid "x" msgstr "" -#: js/EnsembleBlocks.js:391 -#: js/EnsembleBlocks.js:402 -#: js/ProgramBlocks.js:881 -#: js/GraphicsBlocks.js:149 -#: js/GraphicsBlocks.js:313 -#: js/GraphicsBlocks.js:436 -#: js/GraphicsBlocks.js:487 -#: js/GraphicsBlocks.js:534 -#: js/GraphicsBlocks.js:750 +#: js/blocks/EnsembleBlocks.js:391 +#: js/blocks/EnsembleBlocks.js:402 +#: js/blocks/GraphicsBlocks.js:149 +#: js/blocks/GraphicsBlocks.js:313 +#: js/blocks/GraphicsBlocks.js:436 +#: js/blocks/GraphicsBlocks.js:487 +#: js/blocks/GraphicsBlocks.js:534 +#: js/blocks/GraphicsBlocks.js:750 +#: js/blocks/ProgramBlocks.js:881 msgid "y" msgstr "" -#: js/EnsembleBlocks.js:395 -#: js/EnsembleBlocks.js:452 +#: js/blocks/EnsembleBlocks.js:395 +#: js/blocks/EnsembleBlocks.js:452 #.TRANS: set xy position for this turtle msgid "set turtle" msgstr "" -#: js/EnsembleBlocks.js:433 +#: js/blocks/EnsembleBlocks.js:433 msgid "The Set mouse block sends a stack of blocks to be run by the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:446 +#: js/blocks/EnsembleBlocks.js:446 msgid "The Set turtle block sends a stack of blocks to be run by the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:480 +#: js/blocks/EnsembleBlocks.js:480 #.TRANS: y position for this mouse msgid "mouse y" msgstr "" -#: js/EnsembleBlocks.js:482 +#: js/blocks/EnsembleBlocks.js:482 msgid "The Y mouse block returns the Y position of the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:494 +#: js/blocks/EnsembleBlocks.js:494 #.TRANS: y position for this turtle msgid "turtle y" msgstr "" -#: js/EnsembleBlocks.js:496 +#: js/blocks/EnsembleBlocks.js:496 msgid "The Y turtle block returns the Y position of the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:526 +#: js/blocks/EnsembleBlocks.js:526 #.TRANS: x position for this mouse msgid "mouse x" msgstr "" -#: js/EnsembleBlocks.js:528 +#: js/blocks/EnsembleBlocks.js:528 msgid "The X mouse block returns the X position of the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:540 +#: js/blocks/EnsembleBlocks.js:540 #.TRANS: x position for this turtle msgid "turtle x" msgstr "" -#: js/EnsembleBlocks.js:542 +#: js/blocks/EnsembleBlocks.js:542 msgid "The X turtle block returns the X position of the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:573 +#: js/blocks/EnsembleBlocks.js:573 #.TRANS: notes played by this mouse msgid "mouse notes played" msgstr "" -#: js/EnsembleBlocks.js:575 +#: js/blocks/EnsembleBlocks.js:575 msgid "The Mouse elapse notes block returns the number of notes played by the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:587 +#: js/blocks/EnsembleBlocks.js:587 #.TRANS: notes played by this turtle msgid "turtle notes played" msgstr "" -#: js/EnsembleBlocks.js:589 +#: js/blocks/EnsembleBlocks.js:589 msgid "The Turtle elapse notes block returns the number of notes played by the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:627 +#: js/blocks/EnsembleBlocks.js:627 #.TRANS: convert current note for this turtle to piano key (1-88) msgid "mouse pitch number" msgstr "" -#: js/EnsembleBlocks.js:629 +#: js/blocks/EnsembleBlocks.js:629 msgid "The Mouse pitch block returns the current pitch number being played by the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:641 +#: js/blocks/EnsembleBlocks.js:641 #.TRANS: convert current note for this turtle to piano key (1-88) msgid "turtle pitch number" msgstr "" -#: js/EnsembleBlocks.js:643 -msgid "The Turrle pitch block returns the current pitch number being played by the specified turtle." +#: js/blocks/EnsembleBlocks.js:643 +msgid "The Turtle pitch block returns the current pitch number being played by the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:747 -#: js/EnsembleBlocks.js:819 +#: js/blocks/EnsembleBlocks.js:747 +#: js/blocks/EnsembleBlocks.js:819 #.TRANS: note value is the duration of the note played by this mouse msgid "mouse note value" msgstr "" -#: js/EnsembleBlocks.js:757 +#: js/blocks/EnsembleBlocks.js:757 #.TRANS: note value is the duration of the note played by this turtle msgid "turtle note value" msgstr "" -#: js/EnsembleBlocks.js:830 +#: js/blocks/EnsembleBlocks.js:830 #.TRANS: sync is short for synchronization msgid "mouse sync" msgstr "" -#: js/EnsembleBlocks.js:832 +#: js/blocks/EnsembleBlocks.js:832 msgid "The Mouse sync block aligns the beat count between mice." msgstr "" -#: js/EnsembleBlocks.js:844 +#: js/blocks/EnsembleBlocks.js:844 #.TRANS: sync is short for synchronization msgid "turtle sync" msgstr "" -#: js/EnsembleBlocks.js:846 +#: js/blocks/EnsembleBlocks.js:846 msgid "The Turtle sync block aligns the beat count between turtles." msgstr "" -#: js/EnsembleBlocks.js:887 +#: js/blocks/EnsembleBlocks.js:887 msgid "The Found mouse block will return true if the specified mouse can be found." msgstr "" -#: js/EnsembleBlocks.js:893 +#: js/blocks/EnsembleBlocks.js:893 msgid "found mouse" msgstr "" -#: js/EnsembleBlocks.js:903 +#: js/blocks/EnsembleBlocks.js:903 msgid "The Found turtle block will return true if the specified turtle can be found." msgstr "" -#: js/EnsembleBlocks.js:909 +#: js/blocks/EnsembleBlocks.js:909 msgid "found turtle" msgstr "" -#: js/EnsembleBlocks.js:932 +#: js/blocks/EnsembleBlocks.js:932 msgid "new mouse" msgstr "" -#: js/EnsembleBlocks.js:934 +#: js/blocks/EnsembleBlocks.js:934 msgid "The New mouse block will create a new mouse." msgstr "" -#: js/EnsembleBlocks.js:945 +#: js/blocks/EnsembleBlocks.js:945 msgid "new turtle" msgstr "" -#: js/EnsembleBlocks.js:947 +#: js/blocks/EnsembleBlocks.js:947 msgid "The New turtle block will create a new turtle." msgstr "" -#: js/EnsembleBlocks.js:1011 +#: js/blocks/EnsembleBlocks.js:1011 msgid "set mouse color" msgstr "" -#: js/EnsembleBlocks.js:1014 +#: js/blocks/EnsembleBlocks.js:1014 msgid "The Set-mouse-color block is used to set the color of a mouse." msgstr "" -#: js/EnsembleBlocks.js:1020 +#: js/blocks/EnsembleBlocks.js:1020 msgid "set turtle color" msgstr "" -#: js/EnsembleBlocks.js:1023 +#: js/blocks/EnsembleBlocks.js:1023 msgid "The Set-turtle-color block is used to set the color of a turtle." msgstr "" -#: js/EnsembleBlocks.js:1083 +#: js/blocks/EnsembleBlocks.js:1083 msgid "The Mouse-name block returns the name of a mouse." msgstr "" -#: js/EnsembleBlocks.js:1092 +#: js/blocks/EnsembleBlocks.js:1092 msgid "The Turtle-name block returns the name of a turtle." msgstr "" -#: js/EnsembleBlocks.js:1115 +#: js/blocks/EnsembleBlocks.js:1115 msgid "mouse count" msgstr "" -#: js/EnsembleBlocks.js:1118 +#: js/blocks/EnsembleBlocks.js:1118 msgid "The Mouse-count block returns the number of mice." msgstr "" -#: js/EnsembleBlocks.js:1124 +#: js/blocks/EnsembleBlocks.js:1124 msgid "turtle count" msgstr "" -#: js/EnsembleBlocks.js:1127 +#: js/blocks/EnsembleBlocks.js:1127 msgid "The Turtle-count block returns the number of turtles." msgstr "" -#: js/EnsembleBlocks.js:1149 +#: js/blocks/EnsembleBlocks.js:1149 msgid "nth mouse name" msgstr "" -#: js/EnsembleBlocks.js:1152 +#: js/blocks/EnsembleBlocks.js:1152 msgid "The Nth-Mouse name block returns the name of the nth mouse." msgstr "" -#: js/EnsembleBlocks.js:1158 +#: js/blocks/EnsembleBlocks.js:1158 msgid "nth turtle name" msgstr "" -#: js/EnsembleBlocks.js:1161 +#: js/blocks/EnsembleBlocks.js:1161 msgid "The Nth-Turtle name block returns the name of the nth turtle." msgstr "" -#: js/EnsembleBlocks.js:1205 -#: js/EnsembleBlocks.js:1265 +#: js/blocks/EnsembleBlocks.js:1205 +#: js/blocks/EnsembleBlocks.js:1265 msgid "set name" msgstr "" -#: js/EnsembleBlocks.js:1214 -#: js/EnsembleBlocks.js:1221 +#: js/blocks/EnsembleBlocks.js:1214 +#: js/blocks/EnsembleBlocks.js:1221 msgid "source" msgstr "" -#: js/EnsembleBlocks.js:1214 -#: js/EnsembleBlocks.js:1221 +#: js/blocks/EnsembleBlocks.js:1214 +#: js/blocks/EnsembleBlocks.js:1221 msgid "target" msgstr "" -#: js/EnsembleBlocks.js:1271 +#: js/blocks/EnsembleBlocks.js:1271 msgid "The Set-name block is used to name a mouse." msgstr "" -#: js/EnsembleBlocks.js:1284 +#: js/blocks/EnsembleBlocks.js:1284 msgid "The Set-name block is used to name a turtle." msgstr "" -#: js/BooleanBlocks.js:44 -msgid "The Not block is the logical not operator." -msgstr "" - -#: js/BooleanBlocks.js:62 -msgid "not" -msgstr "" - -#: js/BooleanBlocks.js:134 -msgid "The And block is the logical and operator." -msgstr "" - -#: js/BooleanBlocks.js:152 -msgid "and" -msgstr "" - -#: js/BooleanBlocks.js:218 -msgid "The Or block is the logical or operator." -msgstr "" - -#: js/BooleanBlocks.js:236 -msgid "or" -msgstr "" - -#: js/BooleanBlocks.js:302 -msgid "The XOR block is the logical XOR operator." -msgstr "" - -#: js/BooleanBlocks.js:320 -msgid "xor" -msgstr "" - -#: js/BooleanBlocks.js:808 -msgid "The Equal block returns True if the two numbers are equal." -msgstr "" - -#: js/BooleanBlocks.js:909 -msgid "The Not-equal-to block returns True if the two numbers are not equal to each other." -msgstr "" - -#: js/BooleanBlocks.js:1008 -msgid "The Boolean block is used to specify true or false." -msgstr "" - -#: js/MediaBlocks.js:35 -#.TRANS: right side of the screen -msgid "right (screen)" -msgstr "" - -#: js/MediaBlocks.js:45 -#: js/MediaBlocks.js:56 -msgid "The Right block returns the position of the right of the canvas." -msgstr "" - -#: js/MediaBlocks.js:97 -#.TRANS: left side of the screen -msgid "left (screen)" -msgstr "" - -#: js/MediaBlocks.js:107 -#: js/MediaBlocks.js:118 -msgid "The Left block returns the position of the left of the canvas." -msgstr "" - -#: js/MediaBlocks.js:158 -msgid "top (screen)" -msgstr "" - -#: js/MediaBlocks.js:168 -#: js/MediaBlocks.js:179 -msgid "The Top block returns the position of the top of the canvas." -msgstr "" - -#: js/MediaBlocks.js:219 -msgid "bottom (screen)" +#: js/blocks/ExtrasBlocks.js:33 +msgid "fraction" msgstr "" -#: js/MediaBlocks.js:229 -#: js/MediaBlocks.js:240 -msgid "The Bottom block returns the position of the bottom of the canvas." +#: js/blocks/ExtrasBlocks.js:36 +msgid "Convert a float to a fraction" msgstr "" -#: js/MediaBlocks.js:282 -msgid "width" +#: js/blocks/ExtrasBlocks.js:93 +msgid "save as ABC" msgstr "" -#: js/MediaBlocks.js:291 -msgid "The Width block returns the width of the canvas." +#: js/blocks/ExtrasBlocks.js:96 +#: js/blocks/ExtrasBlocks.js:132 +#: js/blocks/ExtrasBlocks.js:168 +msgid "title" msgstr "" -#: js/MediaBlocks.js:325 -msgid "height" +#: js/blocks/ExtrasBlocks.js:129 +msgid "save as Lilypond" msgstr "" -#: js/MediaBlocks.js:334 -msgid "The Height block returns the height of the canvas." +#: js/blocks/ExtrasBlocks.js:165 +msgid "save as SVG" msgstr "" -#: js/MediaBlocks.js:369 -#.TRANS: stops playback of an audio recording -msgid "stop play" +#: js/blocks/ExtrasBlocks.js:216 +msgid "no background" msgstr "" -#: js/MediaBlocks.js:404 -#.TRANS: Erases the images and text -msgid "erase media" +#: js/blocks/ExtrasBlocks.js:219 +msgid "The No background block eliminates the background from the saved SVG output." msgstr "" -#: js/MediaBlocks.js:409 -msgid "The Erase Media block erases text and images." +#: js/blocks/ExtrasBlocks.js:247 +msgid "show blocks" msgstr "" -#: js/MediaBlocks.js:439 -#.TRANS: play an audio recording -msgid "play back" +#: js/blocks/ExtrasBlocks.js:249 +msgid "The Show blocks block shows the blocks." msgstr "" -#: js/MediaBlocks.js:487 -msgid "speak" +#: js/blocks/ExtrasBlocks.js:274 +msgid "hide blocks" msgstr "" -#: js/MediaBlocks.js:495 -msgid "The Speak block outputs to the text-to-speech synthesizer" +#: js/blocks/ExtrasBlocks.js:276 +msgid "The Hide blocks block hides the blocks." msgstr "" -#: js/MediaBlocks.js:546 -msgid "camera" +#: js/blocks/ExtrasBlocks.js:305 +#: js/blocks/ExtrasBlocks.js:338 +msgid "The Space block is used to add space between blocks." msgstr "" -#: js/MediaBlocks.js:551 -msgid "The Camera block connects a webcam to the Show block." +#: js/blocks/ExtrasBlocks.js:376 +msgid "wait" msgstr "" -#: js/MediaBlocks.js:574 -msgid "video" +#: js/blocks/ExtrasBlocks.js:379 +msgid "The Wait block pauses the program for a specified number of seconds." msgstr "" -#: js/MediaBlocks.js:579 -msgid "The Video block selects video for use with the Show block." +#: js/blocks/ExtrasBlocks.js:433 +#: plugins/facebook.rtp:30 +msgid "comment" msgstr "" -#: js/MediaBlocks.js:607 -msgid "The Open file block opens a file for use with the Show block." +#: js/blocks/ExtrasBlocks.js:469 +msgid "print" msgstr "" -#: js/MediaBlocks.js:645 -msgid "stop media" +#: js/blocks/ExtrasBlocks.js:476 +msgid "The Print block displays text at the top of the screen." msgstr "" -#: js/MediaBlocks.js:650 -msgid "The Stop media block stops audio or video playback." +#: js/blocks/ExtrasBlocks.js:582 +msgid "display grid" msgstr "" -#: js/MediaBlocks.js:679 -#: js/PitchBlocks.js:1539 -#: js/phrasemaker.js:822 -#: js/musickeyboard.js:1654 -#.TRANS: a measure of frequency: one cycle per second -msgid "hertz" +#: js/blocks/ExtrasBlocks.js:587 +msgid "The Display Grid Block changes the grid type" msgstr "" -#: js/MediaBlocks.js:692 -msgid "duration (ms)" +#: js/blocks/ExtrasBlocks.js:689 +#: js/blocks/ExtrasBlocks.js:708 +#: js/blocks/ExtrasBlocks.js:731 +#: js/blocks/ExtrasBlocks.js:754 +#: js/blocks/ExtrasBlocks.js:772 +#: js/blocks/ExtrasBlocks.js:791 +#: js/blocks/ExtrasBlocks.js:810 +#: js/blocks/ExtrasBlocks.js:829 +msgid "unknown" msgstr "" -#: js/MediaBlocks.js:728 -#.TRANS: translate a note into hertz, e.g., A4 -> 440HZ -msgid "note to frequency" +#: js/blocks/FlowBlocks.js:41 +msgid "The Backward block runs code in reverse order (Musical retrograde)." msgstr "" -#: js/MediaBlocks.js:736 -msgid "The To frequency block converts a pitch name and octave to Hertz." +#: js/blocks/FlowBlocks.js:48 +msgid "backward" msgstr "" -#: js/MediaBlocks.js:746 -#: js/PitchBlocks.js:656 -#: js/PitchBlocks.js:932 -#: js/PitchBlocks.js:1827 -#.TRANS: name2 is name as in name of pitch (JAPANESE ONLY) -msgid "name2" +#: js/blocks/FlowBlocks.js:124 +msgid "The Duplicate block will run each block multiple times." msgstr "" -#: js/MediaBlocks.js:812 -msgid "The Avatar block is used to change the appearance of the mouse." +#: js/blocks/FlowBlocks.js:136 +msgid "duplicate" msgstr "" -#: js/MediaBlocks.js:819 -msgid "The Avatar block is used to change the appearance of the turtle." +#: js/blocks/FlowBlocks.js:334 +msgid "The Default block is used inside of a Switch to define the default action." msgstr "" -#: js/MediaBlocks.js:831 -#: js/MediaBlocks.js:891 -#.TRANS: a media object -msgid "size" +#: js/blocks/FlowBlocks.js:342 +msgid "default" msgstr "" -#: js/MediaBlocks.js:831 -msgid "image" +#: js/blocks/FlowBlocks.js:361 +#: js/blocks/FlowBlocks.js:418 +msgid "The Case Block must be used inside of a Switch Block." msgstr "" -#: js/MediaBlocks.js:880 -msgid "The Show block is used to display text or images on the canvas." +#: js/blocks/FlowBlocks.js:389 +msgid "The Case block is used inside of a Switch to define matches." msgstr "" -#: js/MediaBlocks.js:888 -#.TRANS: show1 is show as in display an image or text on the screen. -msgid "show1" +#: js/blocks/FlowBlocks.js:397 +msgid "case" msgstr "" -#: js/MediaBlocks.js:891 -msgid "obj" +#: js/blocks/FlowBlocks.js:446 +msgid "The Switch block will run the code in the matching Case." msgstr "" -#: js/MediaBlocks.js:938 -msgid "The Media block is used to import an image." +#: js/blocks/FlowBlocks.js:454 +msgid "switch" msgstr "" -#: js/MediaBlocks.js:973 -msgid "The Text block holds a text string." +#: js/blocks/FlowBlocks.js:595 +msgid "The Stop block will stop a loop" msgstr "" -#: js/ProgramBlocks.js:33 -msgid "The Load-heap-from-app block loads the heap from a web page." +#: js/blocks/FlowBlocks.js:597 +msgid "Forever, Repeat, While, or Until." msgstr "" -#: js/ProgramBlocks.js:44 -#.TRANS: load the heap contents from a URL -msgid "load heap from App" +#: js/blocks/FlowBlocks.js:604 +#: js/widgets/timbre.js:417 +#: js/widgets/timbre.js:419 +#: js/widgets/musickeyboard.js:819 +#: js/widgets/musickeyboard.js:821 +#: js/widgets/phrasemaker.js:4202 +#: plugins/rodi.rtp:29 +#: plugins/rodi.rtp:73 +#: plugins/rodi.rtp:413 +msgid "stop" msgstr "" -#: js/ProgramBlocks.js:95 -msgid "Error parsing JSON data:" +#: js/blocks/FlowBlocks.js:653 +msgid "The Waitfor block will wait until the condition is true." msgstr "" -#: js/ProgramBlocks.js:100 -msgid "404: Page not found" +#: js/blocks/FlowBlocks.js:661 +msgid "wait for" msgstr "" -#: js/ProgramBlocks.js:133 -msgid "The Save-heap-to-app block saves the heap to a web page." +#: js/blocks/FlowBlocks.js:732 +msgid "The Until block will repeat until the condition is true." msgstr "" -#: js/ProgramBlocks.js:144 -#.TRANS: save the heap contents to a URL -msgid "save heap to App" +#: js/blocks/FlowBlocks.js:740 +msgid "until" msgstr "" -#: js/ProgramBlocks.js:189 -msgid "Cannot find a valid heap for" +#: js/blocks/FlowBlocks.js:742 +#: js/blocks/FlowBlocks.js:822 +msgid "do2" msgstr "" -#: js/ProgramBlocks.js:206 -msgid "The Load-heap block loads the heap from a file." +#: js/blocks/FlowBlocks.js:812 +msgid "The While block will repeat while the condition is true." msgstr "" -#: js/ProgramBlocks.js:217 -#.TRANS: load the heap from a file -msgid "load heap" +#: js/blocks/FlowBlocks.js:820 +msgid "while" msgstr "" -#: js/ProgramBlocks.js:270 -msgid "The file you selected does not contain a valid heap." +#: js/blocks/FlowBlocks.js:903 +#: js/blocks/FlowBlocks.js:968 +#: js/blocks/FlowBlocks.js:979 +msgid "In this example if the mouse button is pressed a snare drum will play." msgstr "" -#: js/ProgramBlocks.js:275 -msgid "The loadHeap block needs a loadFile block." +#: js/blocks/FlowBlocks.js:925 +#: js/blocks/FlowBlocks.js:988 +msgid "if" msgstr "" -#: js/ProgramBlocks.js:291 -msgid "The Set-heap block loads the heap." +#: js/blocks/FlowBlocks.js:927 +#: js/blocks/FlowBlocks.js:990 +msgid "then" msgstr "" -#: js/ProgramBlocks.js:299 -#: js/HeapBlocks.js:539 -#.TRANS: load the heap from a JSON encoding -msgid "set heap" +#: js/blocks/FlowBlocks.js:927 +msgid "else" msgstr "" -#: js/ProgramBlocks.js:340 -msgid "The block you selected does not contain a valid heap." +#: js/blocks/FlowBlocks.js:1025 +msgid "The Forever block will repeat the contained blocks forever." msgstr "" -#: js/ProgramBlocks.js:343 -msgid "The Set heap block needs a heap." +#: js/blocks/FlowBlocks.js:1037 +msgid "forever" msgstr "" -#: js/ProgramBlocks.js:360 -msgid "The Load-dictionary block loads a dictionary from a file." +#: js/blocks/FlowBlocks.js:1073 +msgid "The Repeat block will repeat the contained blocks." msgstr "" -#: js/ProgramBlocks.js:372 -#.TRANS: load a dictionary from a file -msgid "load dictionary" +#: js/blocks/FlowBlocks.js:1075 +msgid "In this example the note will be played 4 times." msgstr "" -#: js/ProgramBlocks.js:390 -#: js/ProgramBlocks.js:658 -#: js/ToneBlocks.js:1025 -msgid "file" +#: js/blocks/FlowBlocks.js:1083 +msgid "repeat" msgstr "" -#: js/ProgramBlocks.js:396 -#: js/ProgramBlocks.js:501 -#: js/ProgramBlocks.js:664 -#: js/DictBlocks.js:80 -#: js/DictBlocks.js:145 -#: js/DictBlocks.js:216 -#: js/DictBlocks.js:290 -msgid "My Dictionary" +#: js/blocks/FlowBlocks.js:1123 +msgid "duplicate factor" msgstr "" -#: js/ProgramBlocks.js:444 -msgid "The file you selected does not contain a valid dictionary." +#: js/blocks/HeapBlocks.js:49 +msgid "The Heap block returns the heap." msgstr "" -#: js/ProgramBlocks.js:449 -msgid "The load dictionary block needs a load file block." +#: js/blocks/HeapBlocks.js:133 +msgid "show heap" msgstr "" -#: js/ProgramBlocks.js:466 -msgid "The Set-dictionary block loads a dictionary." +#: js/blocks/HeapBlocks.js:181 +msgid "The Heap-length block returns the length of the heap." msgstr "" -#: js/ProgramBlocks.js:477 -#.TRANS: load a dictionary from a JSON -msgid "set dictionary" +#: js/blocks/HeapBlocks.js:195 +msgid "heap length" msgstr "" -#: js/ProgramBlocks.js:546 -msgid "The block you selected does not contain a valid dictionary." +#: js/blocks/HeapBlocks.js:254 +msgid "The Heap-empty? block returns true if the heap is empty." msgstr "" -#: js/ProgramBlocks.js:550 -msgid "The set dictionary block needs a dictionary." +#: js/blocks/HeapBlocks.js:268 +#.TRANS: Is the heap empty? +msgid "heap empty?" msgstr "" -#: js/ProgramBlocks.js:567 -msgid "The Save-heap block saves the heap to a file." +#: js/blocks/HeapBlocks.js:317 +msgid "The Empty-heap block empties the heap." msgstr "" -#: js/ProgramBlocks.js:578 -#.TRANS: save the heap to a file -msgid "save heap" +#: js/blocks/HeapBlocks.js:327 +#: js/blocks/HeapBlocks.js:647 +#.TRANS: empty the heap +msgid "empty heap" msgstr "" -#: js/ProgramBlocks.js:629 -msgid "The Save-dictionary block saves a dictionary to a file." +#: js/blocks/HeapBlocks.js:371 +msgid "The Reverse-heap block reverses the order of the heap." msgstr "" -#: js/ProgramBlocks.js:640 -#.TRANS: save a dictionary to a file -msgid "save dictionary" +#: js/blocks/HeapBlocks.js:384 +#.TRANS: reverse the order of the heap +msgid "reverse heap" msgstr "" -#: js/ProgramBlocks.js:720 -msgid "The Open palette block opens a palette." +#: js/blocks/HeapBlocks.js:428 +msgid "The Index-heap block returns a value in the heap at a specified location." msgstr "" -#: js/ProgramBlocks.js:727 -msgid "open palette" +#: js/blocks/HeapBlocks.js:443 +#.TRANS: retrieve a value from the heap at index position in the heap +msgid "index heap" msgstr "" -#: js/ProgramBlocks.js:785 -msgid "The Delete block block removes a block." +#: js/blocks/HeapBlocks.js:523 +msgid "The Set-heap entry block sets a value in he heap at the specified location." msgstr "" -#: js/ProgramBlocks.js:797 -#.TRANS: Move this block to the trash. -msgid "delete block" +#: js/blocks/HeapBlocks.js:539 +#: js/blocks/ProgramBlocks.js:299 +#.TRANS: load the heap from a JSON encoding +msgid "set heap" msgstr "" -#: js/ProgramBlocks.js:861 -msgid "The Move block block moves a block." +#: js/blocks/HeapBlocks.js:619 +msgid "The Pop block removes the value at the top of the heap." msgstr "" -#: js/ProgramBlocks.js:869 -#.TRANS: Move the position of a block on the screen. -msgid "move block" +#: js/blocks/HeapBlocks.js:633 +#.TRANS: pop a value off the top of the heap +msgid "pop" msgstr "" -#: js/ProgramBlocks.js:881 -#: js/ProgramBlocks.js:1048 -msgid "block number" +#: js/blocks/HeapBlocks.js:680 +msgid "The Push block adds a value to the top of the heap." msgstr "" -#: js/ProgramBlocks.js:935 -#.TRANS: Run program beginning at this block. -msgid "run block" +#: js/blocks/HeapBlocks.js:696 +#.TRANS: push a value onto the top of the heap +msgid "push" msgstr "" -#: js/ProgramBlocks.js:1025 -msgid "The Dock block block connections two blocks." +#: js/blocks/IntervalsBlocks.js:45 +msgid "set temperament" msgstr "" -#: js/ProgramBlocks.js:1036 -#.TRANS: We can connect a block to another block. -msgid "connect blocks" +#: js/blocks/IntervalsBlocks.js:63 +#: js/blocks/MediaBlocks.js:746 +#: js/blocks/PitchBlocks.js:657 +#: js/blocks/PitchBlocks.js:935 +#: js/blocks/PitchBlocks.js:974 +#: js/blocks/PitchBlocks.js:1007 +#: js/blocks/PitchBlocks.js:1194 +#: js/blocks/PitchBlocks.js:1717 +#: js/blocks/PitchBlocks.js:1758 +#: js/blocks/PitchBlocks.js:1866 +#: js/blocks/ToneBlocks.js:1025 +#: js/turtleactions/IntervalsActions.js:114 +#.TRANS: adjusts the shift up or down by one octave (twelve half-steps in the interval between two notes, one having twice or half the frequency in Hz of the other.) +msgid "octave" msgstr "" -#: js/ProgramBlocks.js:1048 -msgid "target block" +#: js/blocks/IntervalsBlocks.js:99 +msgid "The Temperament name block is used to select a tuning method." msgstr "" -#: js/ProgramBlocks.js:1048 -msgid "connection number" +#: js/blocks/IntervalsBlocks.js:161 +msgid "doubly" msgstr "" -#: js/ProgramBlocks.js:1140 -msgid "The Make block block creates a new block." +#: js/blocks/IntervalsBlocks.js:166 +msgid "The Doubly block will double the size of an interval." msgstr "" -#: js/ProgramBlocks.js:1152 -#.TRANS: Create a new block -msgid "make block" +#: js/blocks/IntervalsBlocks.js:262 +msgid "interval number" msgstr "" -#: js/ProgramBlocks.js:1186 -#: js/ProgramBlocks.js:1227 -#: js/RhythmBlocks.js:1128 -#: js/PitchBlocks.js:972 -#: js/PitchBlocks.js:1005 -#: js/temperament.js:340 -#: js/temperament.js:362 -#: js/temperament.js:372 -#: js/temperament.js:484 -#: js/status.js:190 -#: plugins/rodi.rtp:192 -#.TRANS: a musical note consisting of pitch and duration -msgid "note" +#: js/blocks/IntervalsBlocks.js:317 +msgid "current interval" msgstr "" -#: js/ProgramBlocks.js:1285 -msgid "Cannot find block" +#: js/blocks/IntervalsBlocks.js:387 +#.TRANS: measure the distance between two pitches in semi-tones +msgid "semi-tone interval measure" msgstr "" -#: js/ProgramBlocks.js:1304 -#: js/ProgramBlocks.js:1313 -msgid "Warning: block argument type mismatch" +#: js/blocks/IntervalsBlocks.js:454 +#: js/blocks/IntervalsBlocks.js:570 +msgid "You must use two pitch blocks when measuring an interval." msgstr "" -#: js/ProgramBlocks.js:1347 -msgid "The Open project block is used to open a project from a web page." +#: js/blocks/IntervalsBlocks.js:496 +msgid "The Scalar interval block measures the distance between two notes in the current key and mode." msgstr "" -#: js/ProgramBlocks.js:1357 -msgid "open project" +#: js/blocks/IntervalsBlocks.js:502 +#.TRANS: measure the distance between two pitches in steps of musical scale +msgid "scalar interval measure" msgstr "" -#: js/ProgramBlocks.js:1410 -msgid "Please enter a valid URL." +#: js/blocks/IntervalsBlocks.js:678 +msgid "In the figure, we add sol# to sol." msgstr "" -#: js/DrumBlocks.js:59 -msgid "The Noise name block is used to select a noise synthesizer." +#: js/blocks/IntervalsBlocks.js:684 +#: js/blocks/OrnamentBlocks.js:220 +#.TRANS: calculate a relative step between notes based on semi-tones +msgid "semi-tone interval" msgstr "" -#: js/DrumBlocks.js:102 -msgid "The Drum name block is used to select a drum." +#: js/blocks/IntervalsBlocks.js:733 +msgid "The output of the example is: do, mi, sol, sol, ti, mi" msgstr "" -#: js/DrumBlocks.js:146 -msgid "The Effects name block is used to select a sound effect." +#: js/blocks/IntervalsBlocks.js:740 +#: js/blocks/WidgetBlocks.js:768 +msgid "arpeggio" msgstr "" -#: js/DrumBlocks.js:163 -msgid "noise" +#: js/blocks/IntervalsBlocks.js:931 +msgid "The Chord block calculates common chords." msgstr "" -#: js/DrumBlocks.js:177 -msgid "The Play noise block will generate white, pink, or brown noise." +#: js/blocks/IntervalsBlocks.js:933 +msgid "In the figure, we generate a C-major chord." msgstr "" -#: js/DrumBlocks.js:191 -#: js/musicutils.js:752 -#: js/synthutils.js:47 -#.TRANS: white noise synthesizer -msgid "white noise" +#: js/blocks/IntervalsBlocks.js:938 +msgid "chord" msgstr "" -#: js/DrumBlocks.js:326 -msgid "Replace every instance of a pitch with a drum sound." +#: js/blocks/IntervalsBlocks.js:990 +msgid "The Ratio Interval block calculates an interval based on a ratio." msgstr "" -#: js/DrumBlocks.js:337 -#.TRANS: map a pitch to a drum sound -msgid "map pitch to drum" +#: js/blocks/IntervalsBlocks.js:995 +msgid "ratio interval" msgstr "" -#: js/DrumBlocks.js:404 -msgid "In the example above, a kick drum sound will be played instead of sol." +#: js/blocks/IntervalsBlocks.js:1064 +msgid "In the figure, we add la to sol." msgstr "" -#: js/DrumBlocks.js:416 -#.TRANS: set the current drum sound for playback -msgid "set drum" +#: js/blocks/IntervalsBlocks.js:1120 +#.TRANS: define a custom mode +msgid "define mode" msgstr "" -#: js/DrumBlocks.js:460 -msgid "sound effect" +#: js/blocks/IntervalsBlocks.js:1173 +msgid "movable Do" msgstr "" -#: js/DrumBlocks.js:498 -msgid "You can use multiple Drum blocks within a Note block." +#: js/blocks/IntervalsBlocks.js:1224 +#.TRANS: mode length is the number of notes in the mode, e.g., 7 for major and minor scales; 12 for chromatic scales +msgid "mode length" msgstr "" -#: js/RhythmBlocks.js:182 -#: js/RhythmBlocks.js:1086 -#: js/RhythmBlocks.js:1162 -msgid "Note value must be greater than 0." +#: js/blocks/IntervalsBlocks.js:1233 +msgid "The Mode length block is the number of notes in the current scale." msgstr "" -#: js/RhythmBlocks.js:215 -#: js/RhythmBlocks.js:278 -#: js/RhythmBlocks.js:350 -#.TRANS: swing is a rhythmic variation that emphasises the offbeat -msgid "swing" +#: js/blocks/IntervalsBlocks.js:1235 +msgid "Most Western scales have 7 notes." msgstr "" -#: js/RhythmBlocks.js:355 -#.TRANS: the amount to shift to the offbeat note -msgid "swing value" +#: js/blocks/IntervalsBlocks.js:1284 +#.TRANS: the mode in music is 'major', 'minor', etc. +msgid "current mode" msgstr "" -#: js/RhythmBlocks.js:419 -msgid "The Skip notes block will cause notes to be skipped." +#: js/blocks/IntervalsBlocks.js:1337 +#.TRANS: the key is a group of pitches with which a music composition is created +msgid "current key" msgstr "" -#: js/RhythmBlocks.js:427 -#.TRANS: substitute rests on notes being skipped -msgid "skip notes" +#: js/blocks/IntervalsBlocks.js:1389 +#: js/blocks/IntervalsBlocks.js:1434 +#.TRANS: set the key and mode, e.g. C Major +msgid "set key" msgstr "" -#: js/RhythmBlocks.js:489 -#.TRANS: speed up note duration by some factor, e.g. convert 1/4 to 1/8 notes by using a factor of 2 -msgid "multiply note value" +#: js/blocks/IntervalsBlocks.js:1443 +#: js/blocks/IntervalsBlocks.js:1449 +msgid "The Set key block is used to set the key and mode," msgstr "" -#: js/RhythmBlocks.js:542 -msgid "The Tie block works on pairs of notes, combining them into one note." +#: js/blocks/IntervalsBlocks.js:1449 +msgid "eg C Major" msgstr "" -#: js/RhythmBlocks.js:550 -#.TRANS: tie notes together into one longer note -msgid "tie" +#: js/blocks/MediaBlocks.js:35 +#.TRANS: right side of the screen +msgid "right (screen)" msgstr "" -#: js/RhythmBlocks.js:591 -#: js/RhythmBlocks.js:671 -#.TRANS: a dotted note is played for 1.5x its value, e.g., 1/8. --> 3/16 -msgid "dot" +#: js/blocks/MediaBlocks.js:45 +#: js/blocks/MediaBlocks.js:56 +msgid "The Right block returns the position of the right of the canvas." msgstr "" -#: js/RhythmBlocks.js:619 -#: js/RhythmActions.js:221 -msgid "An argument of -1 results in a note value of 0." +#: js/blocks/MediaBlocks.js:97 +#.TRANS: left side of the screen +msgid "left (screen)" msgstr "" -#: js/RhythmBlocks.js:661 -msgid "The Dot block extends the duration of a note by 50%." +#: js/blocks/MediaBlocks.js:107 +#: js/blocks/MediaBlocks.js:118 +msgid "The Left block returns the position of the left of the canvas." msgstr "" -#: js/RhythmBlocks.js:663 -msgid "Eg a dotted quarter note will play for 3/8 (1/4 + 1/8) of a beat." +#: js/blocks/MediaBlocks.js:158 +msgid "top (screen)" msgstr "" -#: js/RhythmBlocks.js:765 -#.TRANS: Japanese only: note value block for drum -msgid "note value drum" +#: js/blocks/MediaBlocks.js:168 +#: js/blocks/MediaBlocks.js:179 +msgid "The Top block returns the position of the top of the canvas." msgstr "" -#: js/RhythmBlocks.js:829 -msgid "392 hertz" +#: js/blocks/MediaBlocks.js:219 +msgid "bottom (screen)" msgstr "" -#: js/RhythmBlocks.js:1119 -msgid "The Note block is a container for one or more Pitch blocks." +#: js/blocks/MediaBlocks.js:229 +#: js/blocks/MediaBlocks.js:240 +msgid "The Bottom block returns the position of the bottom of the canvas." msgstr "" -#: js/RhythmBlocks.js:1121 -msgid "The Note block specifies the duration (note value) of its contents." +#: js/blocks/MediaBlocks.js:282 +msgid "width" msgstr "" -#: js/RhythmBlocks.js:1130 -msgid "value2" +#: js/blocks/MediaBlocks.js:291 +msgid "The Width block returns the width of the canvas." msgstr "" -#: js/RhythmBlocks.js:1200 -msgid "define frequency" +#: js/blocks/MediaBlocks.js:325 +msgid "height" msgstr "" -#: js/RhythmBlocks.js:1218 -#: js/temperament.js:650 -#: js/temperament.js:1421 -msgid "octave space" +#: js/blocks/MediaBlocks.js:334 +msgid "The Height block returns the height of the canvas." msgstr "" -#: js/NumberBlocks.js:28 -msgid "The Int block returns an integer." +#: js/blocks/MediaBlocks.js:369 +#.TRANS: stops playback of an audio recording +msgid "stop play" msgstr "" -#: js/NumberBlocks.js:34 -msgid "int" +#: js/blocks/MediaBlocks.js:404 +#.TRANS: Erases the images and text +msgid "erase media" msgstr "" -#: js/NumberBlocks.js:73 -msgid "The Mod block returns the remainder from a division." +#: js/blocks/MediaBlocks.js:409 +msgid "The Erase Media block erases text and images." msgstr "" -#: js/NumberBlocks.js:79 -msgid "mod" +#: js/blocks/MediaBlocks.js:439 +#.TRANS: play an audio recording +msgid "play back" msgstr "" -#: js/NumberBlocks.js:123 -msgid "The Power block calculates a power function." +#: js/blocks/MediaBlocks.js:487 +msgid "speak" msgstr "" -#: js/NumberBlocks.js:178 -msgid "The Sqrt block returns the square root." +#: js/blocks/MediaBlocks.js:495 +msgid "The Speak block outputs to the text-to-speech synthesizer" msgstr "" -#: js/NumberBlocks.js:184 -msgid "sqrt" +#: js/blocks/MediaBlocks.js:546 +msgid "camera" msgstr "" -#: js/NumberBlocks.js:230 -msgid "The Abs block returns the absolute value." +#: js/blocks/MediaBlocks.js:551 +msgid "The Camera block connects a webcam to the Show block." msgstr "" -#: js/NumberBlocks.js:236 -msgid "abs" +#: js/blocks/MediaBlocks.js:574 +msgid "video" msgstr "" -#: js/NumberBlocks.js:277 -msgid "The Distance block returns the distance between two points. For example, between the mouse and the center of the screen." +#: js/blocks/MediaBlocks.js:579 +msgid "The Video block selects video for use with the Show block." msgstr "" -#: js/NumberBlocks.js:283 -#: plugins/rodi.rtp:310 -msgid "distance" +#: js/blocks/MediaBlocks.js:607 +msgid "The Open file block opens a file for use with the Show block." msgstr "" -#: js/NumberBlocks.js:343 -msgid "The Divide block is used to divide." +#: js/blocks/MediaBlocks.js:645 +msgid "stop media" msgstr "" -#: js/NumberBlocks.js:411 -msgid "The Multiply block is used to multiply." +#: js/blocks/MediaBlocks.js:650 +msgid "The Stop media block stops audio or video playback." msgstr "" -#: js/NumberBlocks.js:554 -msgid "The Minus block is used to subtract." +#: js/blocks/MediaBlocks.js:679 +#: js/blocks/PitchBlocks.js:1577 +#: js/widgets/musickeyboard.js:1936 +#: js/widgets/phrasemaker.js:1037 +#.TRANS: a measure of frequency: one cycle per second +msgid "hertz" msgstr "" -#: js/NumberBlocks.js:647 -msgid "The Plus block is used to add." +#: js/blocks/MediaBlocks.js:692 +#: js/blocks/WidgetBlocks.js:182 +#: js/widgets/temperament.js:506 +#: js/widgets/temperament.js:546 +#: js/widgets/temperament.js:610 +#: js/widgets/temperament.js:618 +#: js/widgets/temperament.js:1505 +#: js/widgets/timbre.js:1842 +msgid "frequency" msgstr "" -#: js/NumberBlocks.js:773 -msgid "The One-of block returns one of two choices." +#: js/blocks/MediaBlocks.js:692 +msgid "duration (ms)" msgstr "" -#: js/NumberBlocks.js:780 -#: js/PitchBlocks.js:616 -msgid "one of" +#: js/blocks/MediaBlocks.js:728 +#.TRANS: translate a note into hertz, e.g., A4 -> 440HZ +msgid "note to frequency" msgstr "" -#: js/NumberBlocks.js:782 -msgid "this" +#: js/blocks/MediaBlocks.js:736 +msgid "The To frequency block converts a pitch name and octave to Hertz." msgstr "" -#: js/NumberBlocks.js:782 -msgid "that" +#: js/blocks/MediaBlocks.js:746 +#: js/blocks/PitchBlocks.js:656 +#: js/blocks/PitchBlocks.js:934 +#: js/blocks/PitchBlocks.js:1866 +#.TRANS: name2 is name as in name of pitch (JAPANESE ONLY) +msgid "name2" msgstr "" -#: js/NumberBlocks.js:837 -msgid "The Random block returns a random number." +#: js/blocks/MediaBlocks.js:812 +msgid "The Avatar block is used to change the appearance of the mouse." msgstr "" -#: js/NumberBlocks.js:844 -msgid "random" +#: js/blocks/MediaBlocks.js:819 +msgid "The Avatar block is used to change the appearance of the turtle." msgstr "" -#: js/NumberBlocks.js:846 -msgid "min" +#: js/blocks/MediaBlocks.js:831 +#: js/blocks/MediaBlocks.js:891 +#.TRANS: a media object +msgid "size" msgstr "" -#: js/NumberBlocks.js:846 -msgid "max" +#: js/blocks/MediaBlocks.js:831 +msgid "image" msgstr "" -#: js/NumberBlocks.js:910 -msgid "The Number block holds a number." +#: js/blocks/MediaBlocks.js:880 +msgid "The Show block is used to display text or images on the canvas." msgstr "" -#: js/BoxesBlocks.js:53 -#: js/BoxesBlocks.js:59 -msgid "The Add-to block is used to add to the value stored in a box." +#: js/blocks/MediaBlocks.js:888 +#.TRANS: show1 is show as in display an image or text on the screen. +msgid "show1" msgstr "" -#: js/BoxesBlocks.js:61 -msgid "It can also be used with other blocks such as Color and Pen size." +#: js/blocks/MediaBlocks.js:891 +msgid "obj" msgstr "" -#: js/BoxesBlocks.js:73 -msgid "add" +#: js/blocks/MediaBlocks.js:938 +msgid "The Media block is used to import an image." msgstr "" -#: js/BoxesBlocks.js:75 -#: js/temperament.js:716 -msgid "to" +#: js/blocks/MediaBlocks.js:973 +msgid "The Text block holds a text string." msgstr "" -#: js/BoxesBlocks.js:75 -#: js/BoxesBlocks.js:595 -#: js/HeapBlocks.js:544 -msgid "value1" +#: js/blocks/MeterBlocks.js:34 +#.TRANS: musical meter (time signature), e.g., 4:4 +msgid "current meter" msgstr "" -#: js/BoxesBlocks.js:118 -msgid "Block does not support incrementing." +#: js/blocks/MeterBlocks.js:85 +#.TRANS: number of beats per minute +msgid "beat factor" msgstr "" -#: js/BoxesBlocks.js:152 -msgid "The Add-1-to block adds one to the value stored in a box." +#: js/blocks/MeterBlocks.js:161 +msgid "The Beats per minute block returns the current beats per minute." msgstr "" -#: js/BoxesBlocks.js:163 -msgid "add 1 to" +#: js/blocks/MeterBlocks.js:169 +#: js/widgets/status.js:152 +#.TRANS: number of beats played per minute +msgid "beats per minute2" msgstr "" -#: js/BoxesBlocks.js:211 -msgid "The Subtract-1-from block subtracts one from the value stored in a box." +#: js/blocks/MeterBlocks.js:169 +#: js/blocks/MeterBlocks.js:1056 +#: js/blocks/MeterBlocks.js:1133 +#: js/blocks/MeterBlocks.js:1211 +#.TRANS: sets tempo by defining a beat and beats per minute +msgid "beats per minute" msgstr "" -#: js/BoxesBlocks.js:222 -msgid "subtract 1 from" +#: js/blocks/MeterBlocks.js:233 +#.TRANS: count of current musical measure in meter +msgid "measure count" msgstr "" -#: js/BoxesBlocks.js:270 -#: js/BoxesBlocks.js:387 -msgid "The Box block returns the value stored in a box." +#: js/blocks/MeterBlocks.js:241 +msgid "The Measure count block returns the current measure." msgstr "" -#: js/BoxesBlocks.js:500 -#: js/BoxesBlocks.js:576 -msgid "The Store in block will store a value in a box." +#: js/blocks/MeterBlocks.js:290 +#.TRANS: count of current beat in the meter +msgid "beat count" msgstr "" -#: js/BoxesBlocks.js:652 -msgid "The Box2 block returns the value stored in Box2." +#: js/blocks/MeterBlocks.js:300 +#: js/blocks/MeterBlocks.js:311 +#: js/blocks/MeterBlocks.js:565 +#: js/blocks/MeterBlocks.js:576 +msgid "The Beat count block is the number of the current beat," msgstr "" -#: js/BoxesBlocks.js:703 -msgid "The Store in Box2 block is used to store a value in Box2." +#: js/blocks/MeterBlocks.js:313 +#: js/blocks/MeterBlocks.js:578 +msgid "eg 1, 2, 3, or 4." msgstr "" -#: js/BoxesBlocks.js:715 -msgid "store in box2" +#: js/blocks/MeterBlocks.js:368 +#.TRANS: count the number of notes +msgid "sum note values" msgstr "" -#: js/BoxesBlocks.js:761 -msgid "The Box1 block returns the value stored in Box1." +#: js/blocks/MeterBlocks.js:376 +#: js/blocks/MeterBlocks.js:440 +msgid "The Note counter block can be used to count the number of contained notes." msgstr "" -#: js/BoxesBlocks.js:812 -msgid "The Store in Box1 block is used to store a value in Box1." +#: js/blocks/MeterBlocks.js:432 +#.TRANS: count the number of notes +msgid "note counter" msgstr "" -#: js/BoxesBlocks.js:826 -msgid "store in box1" +#: js/blocks/MeterBlocks.js:496 +#.TRANS: number of whole notes that have been played +msgid "whole notes played" msgstr "" -#: js/HeapBlocks.js:49 -msgid "The Heap block returns the heap." +#: js/blocks/MeterBlocks.js:505 +msgid "The Whole notes played block returns the total number of whole notes played." msgstr "" -#: js/HeapBlocks.js:133 -msgid "show heap" +#: js/blocks/MeterBlocks.js:555 +#: js/turtleactions/DictActions.js:83 +#.TRANS: number of notes that have been played +msgid "notes played" msgstr "" -#: js/HeapBlocks.js:181 -msgid "The Heap-length block returns the length of the heap." +#: js/blocks/MeterBlocks.js:653 +msgid "The No clock block decouples the notes from the master clock." msgstr "" -#: js/HeapBlocks.js:195 -msgid "heap length" +#: js/blocks/MeterBlocks.js:661 +#.TRANS: don't lock notes to master clock +msgid "no clock" msgstr "" -#: js/HeapBlocks.js:254 -msgid "The Heap-empty? block returns true if the heap is empty." +#: js/blocks/MeterBlocks.js:700 +msgid "on weak beat do" msgstr "" -#: js/HeapBlocks.js:268 -#.TRANS: Is the heap empty? -msgid "heap empty?" +#: js/blocks/MeterBlocks.js:705 +msgid "The On-weak-beat block lets you specify actions to take on weak (off) beats." msgstr "" -#: js/HeapBlocks.js:317 -msgid "The Empty-heap block empties the heap." +#: js/blocks/MeterBlocks.js:750 +msgid "on strong beat" msgstr "" -#: js/HeapBlocks.js:327 -#: js/HeapBlocks.js:647 -#.TRANS: empty the heap -msgid "empty heap" +#: js/blocks/MeterBlocks.js:758 +msgid "The On-strong-beat block lets you specify actions to take on specified beats." msgstr "" -#: js/HeapBlocks.js:371 -msgid "The Reverse-heap block reverses the order of the heap." +#: js/blocks/MeterBlocks.js:769 +msgid "beat" msgstr "" -#: js/HeapBlocks.js:384 -#.TRANS: reverse the order of the heap -msgid "reverse heap" +#: js/blocks/MeterBlocks.js:813 +msgid "on every beat do" msgstr "" -#: js/HeapBlocks.js:428 -msgid "The Index-heap block returns a value in the heap at a specified location." +#: js/blocks/MeterBlocks.js:821 +msgid "The On-every-beat block lets you specify actions to take on every beat." msgstr "" -#: js/HeapBlocks.js:443 -#.TRANS: retrieve a value from the heap at index position in the heap -msgid "index heap" +#: js/blocks/MeterBlocks.js:874 +msgid "on every note do" msgstr "" -#: js/HeapBlocks.js:523 -msgid "The Set-heap entry block sets a value in he heap at the specified location." +#: js/blocks/MeterBlocks.js:882 +msgid "The On-every-note block lets you specify actions to take on every note." msgstr "" -#: js/HeapBlocks.js:619 -msgid "The Pop block removes the value at the top of the heap." +#: js/blocks/MeterBlocks.js:928 +#: js/blocks/MeterBlocks.js:999 +#.TRANS: sets tempo by defining a beat and beats per minute +msgid "master beats per minute" msgstr "" -#: js/HeapBlocks.js:633 -#.TRANS: pop a value off the top of the heap -msgid "pop" +#: js/blocks/MeterBlocks.js:952 +#: js/blocks/MeterBlocks.js:1078 +#: js/blocks/MeterBlocks.js:1135 +msgid "bpm" msgstr "" -#: js/HeapBlocks.js:680 -msgid "The Push block adds a value to the top of the heap." +#: js/blocks/MeterBlocks.js:952 +#: js/blocks/MeterBlocks.js:1078 +#: js/blocks/MeterBlocks.js:1135 +msgid "beat value" msgstr "" -#: js/HeapBlocks.js:696 -#.TRANS: push a value onto the top of the heap -msgid "push" +#: js/blocks/MeterBlocks.js:1024 +#: js/blocks/MeterBlocks.js:1167 +#: js/blocks/MeterBlocks.js:1241 +msgid "Beats per minute must be > 30." msgstr "" -#: js/FlowBlocks.js:41 -msgid "The Backward block runs code in reverse order (Musical retrograde)." +#: js/blocks/MeterBlocks.js:1027 +#: js/blocks/MeterBlocks.js:1170 +#: js/blocks/MeterBlocks.js:1244 +msgid "Maximum beats per minute is 1000." msgstr "" -#: js/FlowBlocks.js:48 -msgid "backward" +#: js/blocks/MeterBlocks.js:1068 +msgid "The Beats per minute block sets the number of 1/4 notes per minute." msgstr "" -#: js/FlowBlocks.js:124 -msgid "The Duplicate block will run each block multiple times." +#: js/blocks/MeterBlocks.js:1279 +#.TRANS: anacrusis +msgid "pickup" msgstr "" -#: js/FlowBlocks.js:136 -msgid "duplicate" +#: js/blocks/MeterBlocks.js:1367 +msgid "number of beats" msgstr "" -#: js/FlowBlocks.js:334 -msgid "The Default block is used inside of a Switch to define the default action." +#: js/blocks/NumberBlocks.js:28 +msgid "The Int block returns an integer." msgstr "" -#: js/FlowBlocks.js:342 -msgid "default" +#: js/blocks/NumberBlocks.js:34 +msgid "int" msgstr "" -#: js/FlowBlocks.js:361 -#: js/FlowBlocks.js:418 -msgid "The Case Block must be used inside of a Switch Block." +#: js/blocks/NumberBlocks.js:73 +msgid "The Mod block returns the remainder from a division." msgstr "" -#: js/FlowBlocks.js:389 -msgid "The Case block is used inside of a Switch to define matches." +#: js/blocks/NumberBlocks.js:79 +msgid "mod" msgstr "" -#: js/FlowBlocks.js:397 -msgid "case" +#: js/blocks/NumberBlocks.js:141 +msgid "The Power block calculates a power function." msgstr "" -#: js/FlowBlocks.js:446 -msgid "The Switch block will run the code in the matching Case." +#: js/blocks/NumberBlocks.js:196 +msgid "The Sqrt block returns the square root." msgstr "" -#: js/FlowBlocks.js:454 -msgid "switch" +#: js/blocks/NumberBlocks.js:202 +msgid "sqrt" msgstr "" -#: js/FlowBlocks.js:595 -msgid "The Stop block will stop a loop" +#: js/blocks/NumberBlocks.js:248 +msgid "The Abs block returns the absolute value." msgstr "" -#: js/FlowBlocks.js:597 -msgid "Forever, Repeat, While, or Until." +#: js/blocks/NumberBlocks.js:254 +msgid "abs" msgstr "" -#: js/FlowBlocks.js:604 -#: js/phrasemaker.js:3799 -#: js/musickeyboard.js:629 -#: js/musickeyboard.js:631 -#: js/timbre.js:417 -#: js/timbre.js:419 -#: plugins/rodi.rtp:29 -#: plugins/rodi.rtp:73 -#: plugins/rodi.rtp:413 -msgid "stop" +#: js/blocks/NumberBlocks.js:295 +msgid "The Distance block returns the distance between two points. For example, between the mouse and the center of the screen." msgstr "" -#: js/FlowBlocks.js:653 -msgid "The Waitfor block will wait until the condition is true." +#: js/blocks/NumberBlocks.js:301 +#: plugins/rodi.rtp:310 +msgid "distance" msgstr "" -#: js/FlowBlocks.js:661 -msgid "wait for" +#: js/blocks/NumberBlocks.js:361 +msgid "The Divide block is used to divide." msgstr "" -#: js/FlowBlocks.js:732 -msgid "The Until block will repeat until the condition is true." +#: js/blocks/NumberBlocks.js:441 +msgid "The Multiply block is used to multiply." msgstr "" -#: js/FlowBlocks.js:740 -msgid "until" +#: js/blocks/NumberBlocks.js:612 +msgid "The Minus block is used to subtract." msgstr "" -#: js/FlowBlocks.js:742 -#: js/FlowBlocks.js:822 -msgid "do2" +#: js/blocks/NumberBlocks.js:723 +msgid "The Plus block is used to add." msgstr "" -#: js/FlowBlocks.js:812 -msgid "The While block will repeat while the condition is true." +#: js/blocks/NumberBlocks.js:849 +msgid "The One-of block returns one of two choices." msgstr "" -#: js/FlowBlocks.js:820 -msgid "while" +#: js/blocks/NumberBlocks.js:856 +#: js/blocks/PitchBlocks.js:616 +msgid "one of" msgstr "" -#: js/FlowBlocks.js:903 -#: js/FlowBlocks.js:968 -#: js/FlowBlocks.js:979 -msgid "In this example if the mouse button is pressed a snare drum will play." +#: js/blocks/NumberBlocks.js:858 +msgid "this" msgstr "" -#: js/FlowBlocks.js:925 -#: js/FlowBlocks.js:988 -msgid "if" +#: js/blocks/NumberBlocks.js:858 +msgid "that" msgstr "" -#: js/FlowBlocks.js:927 -#: js/FlowBlocks.js:990 -msgid "then" +#: js/blocks/NumberBlocks.js:913 +msgid "The Random block returns a random number." msgstr "" -#: js/FlowBlocks.js:927 -msgid "else" +#: js/blocks/NumberBlocks.js:920 +msgid "random" msgstr "" -#: js/FlowBlocks.js:1025 -msgid "The Forever block will repeat the contained blocks forever." +#: js/blocks/NumberBlocks.js:922 +msgid "min" msgstr "" -#: js/FlowBlocks.js:1037 -msgid "forever" +#: js/blocks/NumberBlocks.js:922 +msgid "max" msgstr "" -#: js/FlowBlocks.js:1073 -msgid "The Repeat block will repeat the contained blocks." +#: js/blocks/NumberBlocks.js:986 +msgid "The Number block holds a number." msgstr "" -#: js/FlowBlocks.js:1075 -msgid "In this example the note will be played 4 times." +#: js/blocks/OrnamentBlocks.js:32 +msgid "staccato factor" msgstr "" -#: js/FlowBlocks.js:1083 -msgid "repeat" +#: js/blocks/OrnamentBlocks.js:108 +msgid "slur factor" msgstr "" -#: js/FlowBlocks.js:1123 -msgid "duplicate factor" +#: js/blocks/OrnamentBlocks.js:217 +#: js/blocks/OrnamentBlocks.js:309 +#.TRANS: the neighbor refers to a neighboring note, e.g., D is a neighbor of C +msgid "neighbor" msgstr "" -#: js/PitchBlocks.js:39 -#: js/musicutils.js:722 -#: js/musicutils.js:1117 -#: js/synthutils.js:112 -#.TRANS: square wave -msgid "square" +#: js/blocks/OrnamentBlocks.js:293 +msgid "The Neighbor block rapidly switches between neighboring pitches." msgstr "" -#: js/PitchBlocks.js:62 -#: js/ToneBlocks.js:39 -#: js/musicutils.js:723 -#: js/musicutils.js:1118 -#: js/synthutils.js:116 -#.TRANS: triangle wave -msgid "triangle" +#: js/blocks/OrnamentBlocks.js:364 +msgid "glide" msgstr "" -#: js/PitchBlocks.js:85 -#: js/musicutils.js:721 -#: js/musicutils.js:1116 -#: js/synthutils.js:110 -#.TRANS: sine wave -msgid "sine" +#: js/blocks/OrnamentBlocks.js:479 +#: js/blocks/OrnamentBlocks.js:643 +msgid "slur" msgstr "" -#: js/PitchBlocks.js:108 -#: js/musicutils.js:724 -#: js/musicutils.js:1119 -#: js/synthutils.js:114 -#.TRANS: sawtooth wave -msgid "sawtooth" +#: js/blocks/OrnamentBlocks.js:558 +#: js/blocks/OrnamentBlocks.js:710 +#.TRANS: play each note sharply detached from the others +msgid "staccato" msgstr "" -#: js/PitchBlocks.js:141 -#.TRANS: musical transposition (adjustment of pitch up or down) -msgid "transposition" +#: js/blocks/RhythmBlocks.js:182 +#: js/blocks/RhythmBlocks.js:1086 +#: js/blocks/RhythmBlocks.js:1162 +msgid "Note value must be greater than 0." msgstr "" -#: js/PitchBlocks.js:168 -#.TRANS: step down one note in current musical scale -msgid "scalar step down" +#: js/blocks/RhythmBlocks.js:215 +#: js/blocks/RhythmBlocks.js:278 +#: js/blocks/RhythmBlocks.js:350 +#.TRANS: swing is a rhythmic variation that emphasises the offbeat +msgid "swing" msgstr "" -#: js/PitchBlocks.js:172 -msgid "The Scalar step down block returns the number of semi-tones down to the previous note in the current key and mode." +#: js/blocks/RhythmBlocks.js:355 +#.TRANS: the amount to shift to the offbeat note +msgid "swing value" msgstr "" -#: js/PitchBlocks.js:190 -#.TRANS: step up one note in current musical scale -msgid "scalar step up" +#: js/blocks/RhythmBlocks.js:419 +msgid "The Skip notes block will cause notes to be skipped." msgstr "" -#: js/PitchBlocks.js:194 -msgid "The Scalar step up block returns the number of semi-tones up to the next note in the current key and mode." +#: js/blocks/RhythmBlocks.js:427 +#.TRANS: substitute rests on notes being skipped +msgid "skip notes" msgstr "" -#: js/PitchBlocks.js:212 -#.TRANS: the change measured in half-steps between the current pitch and the previous pitch -msgid "change in pitch" +#: js/blocks/RhythmBlocks.js:489 +#.TRANS: speed up note duration by some factor, e.g. convert 1/4 to 1/8 notes by using a factor of 2 +msgid "multiply note value" msgstr "" -#: js/PitchBlocks.js:216 -msgid "The Change in pitch block is the difference (in half steps) between the current pitch being played and the previous pitch played." +#: js/blocks/RhythmBlocks.js:542 +msgid "The Tie block works on pairs of notes, combining them into one note." msgstr "" -#: js/PitchBlocks.js:243 -#.TRANS: the change measured in scale-steps between the current pitch and the previous pitch -msgid "scalar change in pitch" +#: js/blocks/RhythmBlocks.js:550 +#.TRANS: tie notes together into one longer note +msgid "tie" msgstr "" -#: js/PitchBlocks.js:250 -#: js/PitchBlocks.js:432 -#: js/PitchBlocks.js:1629 -#: js/DictActions.js:89 -#: js/temperament.js:477 -#: js/temperament.js:481 -#: js/temperament.js:714 -#.TRANS: convert current note to piano key (1-88) -#.TRANS: a mapping of pitch to the 88 piano keys -msgid "pitch number" +#: js/blocks/RhythmBlocks.js:591 +#: js/blocks/RhythmBlocks.js:671 +#.TRANS: a dotted note is played for 1.5x its value, e.g., 1/8. --> 3/16 +msgid "dot" msgstr "" -#: js/PitchBlocks.js:256 -msgid "The Pitch number block is the value of the pitch of the note currently being played." +#: js/blocks/RhythmBlocks.js:619 +#: js/turtleactions/RhythmActions.js:221 +msgid "An argument of -1 results in a note value of 0." msgstr "" -#: js/PitchBlocks.js:329 -#: js/PitchBlocks.js:433 -#.TRANS: the current pitch expressed in Hertz -msgid "pitch in hertz" +#: js/blocks/RhythmBlocks.js:661 +msgid "The Dot block extends the duration of a note by 50%." msgstr "" -#: js/PitchBlocks.js:334 -msgid "The Pitch in Hertz block is the value in Hertz of the pitch of the note currently being played." +#: js/blocks/RhythmBlocks.js:663 +msgid "Eg a dotted quarter note will play for 3/8 (1/4 + 1/8) of a beat." msgstr "" -#: js/PitchBlocks.js:367 -#: js/DictActions.js:87 -msgid "current pitch" +#: js/blocks/RhythmBlocks.js:765 +#.TRANS: Japanese only: note value block for drum +msgid "note value drum" msgstr "" -#: js/PitchBlocks.js:373 -msgid "The Current Pitch block is used with the Pitch Converter block. In the example above, current pitch, sol 4, is displayed as 392 hertz." +#: js/blocks/RhythmBlocks.js:829 +msgid "392 hertz" msgstr "" -#: js/PitchBlocks.js:410 -msgid "This block converts the pitch value of the last note played into different formats such as hertz, letter name, pitch number, et al." +#: js/blocks/RhythmBlocks.js:1119 +msgid "The Note block is a container for one or more Pitch blocks." msgstr "" -#: js/PitchBlocks.js:434 -msgid "alphabet" +#: js/blocks/RhythmBlocks.js:1121 +msgid "The Note block specifies the duration (note value) of its contents." msgstr "" -#: js/PitchBlocks.js:436 -#.TRANS: Translate as "alphabet class" -msgid "letter class" +#: js/blocks/RhythmBlocks.js:1128 +#: js/blocks/PitchBlocks.js:974 +#: js/blocks/PitchBlocks.js:1007 +#: js/blocks/ProgramBlocks.js:1186 +#: js/blocks/ProgramBlocks.js:1227 +#: js/widgets/status.js:190 +#: js/widgets/temperament.js:464 +#: js/widgets/temperament.js:486 +#: js/widgets/temperament.js:496 +#: js/widgets/temperament.js:617 +#: plugins/rodi.rtp:192 +#.TRANS: a musical note consisting of pitch and duration +msgid "note" msgstr "" -#: js/PitchBlocks.js:437 -msgid "solfege class" +#: js/blocks/RhythmBlocks.js:1130 +msgid "value2" msgstr "" -#: js/PitchBlocks.js:438 -msgid "staff y" +#: js/blocks/RhythmBlocks.js:1200 +msgid "define frequency" msgstr "" -#: js/PitchBlocks.js:439 -msgid "solfege syllable" +#: js/blocks/RhythmBlocks.js:1218 +#: js/widgets/temperament.js:787 +#: js/widgets/temperament.js:1587 +msgid "octave space" msgstr "" -#: js/PitchBlocks.js:440 -msgid "pitch class" +#: js/blocks/SensorsBlocks.js:36 +msgid "The Input block prompts for keyboard input." msgstr "" -#: js/PitchBlocks.js:441 -msgid "scalar class" +#: js/blocks/SensorsBlocks.js:46 +msgid "input" msgstr "" -#: js/PitchBlocks.js:443 -msgid "nth degree" +#: js/blocks/SensorsBlocks.js:64 +msgid "Input a value" msgstr "" -#: js/PitchBlocks.js:444 -msgid "pitch to shade" +#: js/blocks/SensorsBlocks.js:126 +msgid "input value" msgstr "" -#: js/PitchBlocks.js:445 -msgid "pitch to color" +#: js/blocks/SensorsBlocks.js:131 +msgid "The Input-value block stores the input." msgstr "" -#: js/PitchBlocks.js:629 -#: js/musickeyboard.js:565 -#.TRANS: MIDI is a technical standard for electronic music -msgid "MIDI" +#: js/blocks/SensorsBlocks.js:238 +msgid "loudness" msgstr "" -#: js/PitchBlocks.js:642 -#.TRANS: set an offset associated with the numeric piano keyboard mapping -msgid "set pitch number offset" +#: js/blocks/SensorsBlocks.js:245 +msgid "The Loudness block returns the volume detected by the microphone." msgstr "" -#: js/PitchBlocks.js:645 -msgid "The Set pitch number offset block is used to set the offset for mapping pitch numbers to pitch and octave." +#: js/blocks/SensorsBlocks.js:300 +msgid "click" msgstr "" -#: js/PitchBlocks.js:679 -#.TRANS: convert piano key number (1-88) to pitch -msgid "number to pitch" +#: js/blocks/SensorsBlocks.js:306 +msgid "The Click block triggers an event if a mouse has been clicked." msgstr "" -#: js/PitchBlocks.js:682 -msgid "The Number to pitch block will convert a pitch number to a pich name." +#: js/blocks/SensorsBlocks.js:313 +msgid "The Click block triggers an event if a turtle has been clicked." msgstr "" -#: js/PitchBlocks.js:715 -#.TRANS: convert piano key number (1-88) to octave -msgid "number to octave" +#: js/blocks/SensorsBlocks.js:342 +msgid "cursor over" msgstr "" -#: js/PitchBlocks.js:717 -msgid "The Number to octave block will convert a pitch number to an octave." +#: js/blocks/SensorsBlocks.js:387 +msgid "cursor out" msgstr "" -#: js/PitchBlocks.js:726 -msgid "y to pitch" +#: js/blocks/SensorsBlocks.js:433 +msgid "cursor button down" msgstr "" -#: js/PitchBlocks.js:729 -msgid "Y to pitch block will convert a staff y position to corresponding pitch notation." +#: js/blocks/SensorsBlocks.js:477 +msgid "cursor button up" msgstr "" -#: js/PitchBlocks.js:841 -msgid "accidental selector" +#: js/blocks/SensorsBlocks.js:521 +#: js/blocks/PenBlocks.js:48 +#: plugins/rodi.rtp:219 +msgid "blue" msgstr "" -#: js/PitchBlocks.js:844 -msgid "The Accidental selector block is used to choose between double-sharp, sharp, natural, flat, and double-flat." +#: js/blocks/SensorsBlocks.js:577 +#: js/blocks/PenBlocks.js:64 +#: plugins/rodi.rtp:218 +msgid "green" msgstr "" -#: js/PitchBlocks.js:858 -msgid "Pitch can be specified in terms of ni dha pa ma ga re sa." +#: js/blocks/SensorsBlocks.js:633 +#: js/blocks/PenBlocks.js:112 +#: plugins/rodi.rtp:217 +msgid "red" msgstr "" -#: js/PitchBlocks.js:872 -msgid "Pitch can be specified in terms of C D E F G A B." +#: js/blocks/SensorsBlocks.js:638 +msgid "The Get red block returns the red component of the pixel under the mouse." msgstr "" -#: js/PitchBlocks.js:883 -msgid "solfege" +#: js/blocks/SensorsBlocks.js:644 +msgid "The Get red block returns the red component of the pixel under the turtle." msgstr "" -#: js/PitchBlocks.js:886 -msgid "Pitch can be specified in terms of do re mi fa sol la ti." +#: js/blocks/SensorsBlocks.js:685 +#: plugins/rodi.rtp:216 +msgid "pixel color" msgstr "" -#: js/PitchBlocks.js:920 -msgid "The Invert block rotates any contained notes around a target note." +#: js/blocks/SensorsBlocks.js:690 +msgid "The Get pixel block returns the color of the pixel under the mouse." msgstr "" -#: js/PitchBlocks.js:927 -#.TRANS: pitch inversion rotates a pitch around another pitch -msgid "invert" +#: js/blocks/SensorsBlocks.js:696 +msgid "The Get pixel block returns the color of the pixel under the turtle." msgstr "" -#: js/PitchBlocks.js:929 -#: js/PitchBlocks.js:935 -#: js/PitchActions.js:727 -#: js/musicutils.js:726 -#: js/musicutils.js:902 -#.TRANS: invert based on even or odd number or musical scale -#.TRANS: even numbers -msgid "even" +#: js/blocks/SensorsBlocks.js:758 +msgid "time" msgstr "" -#: js/PitchBlocks.js:935 -#: js/PitchActions.js:729 -#: js/musicutils.js:728 -#: js/musicutils.js:903 -#.TRANS: odd numbers -msgid "odd" +#: js/blocks/SensorsBlocks.js:804 +msgid "cursor y" msgstr "" -#: js/PitchBlocks.js:935 -#: js/PitchActions.js:731 -#: js/musicutils.js:729 -#: js/musicutils.js:904 -msgid "scalar" +#: js/blocks/SensorsBlocks.js:809 +msgid "The Cursor Y block returns the vertical position of the mouse." msgstr "" -#: js/PitchBlocks.js:966 -#.TRANS: pitch inversion rotates a pitch around another pitch (odd number) -msgid "invert (odd)" +#: js/blocks/SensorsBlocks.js:845 +msgid "cursor x" msgstr "" -#: js/PitchBlocks.js:999 -#.TRANS: pitch inversion rotates a pitch around another pitch (even number) -msgid "invert (even)" +#: js/blocks/SensorsBlocks.js:850 +msgid "The Cursor X block returns the horizontal position of the mouse." msgstr "" -#: js/PitchBlocks.js:1020 -#.TRANS: register is the octave of the current pitch -msgid "register" +#: js/blocks/SensorsBlocks.js:886 +msgid "mouse button" msgstr "" -#: js/PitchBlocks.js:1024 -msgid "The Register block provides an easy way to modify the register (octave) of the notes that follow it." +#: js/blocks/SensorsBlocks.js:888 +msgid "The Mouse-button block returns True if the mouse button is pressed." msgstr "" -#: js/PitchBlocks.js:1074 -msgid "The Semi-tone transposition block will shift the pitches contained inside Note blocks up (or down) by half steps." +#: js/blocks/SensorsBlocks.js:934 +msgid "to ASCII" msgstr "" -#: js/PitchBlocks.js:1076 -msgid "In the example shown above, sol is shifted up to sol#." +#: js/blocks/SensorsBlocks.js:938 +msgid "The To ASCII block converts numbers to letters." msgstr "" -#: js/PitchBlocks.js:1082 -#.TRANS: adjust the amount of shift (up or down) of a pitch -msgid "semi-tone transpose" +#: js/blocks/SensorsBlocks.js:1005 +msgid "The Keyboard block returns computer keyboard input." msgstr "" -#: js/PitchBlocks.js:1115 -msgid "The Transpose by Ratio block will shift the pitches contained inside Note blocks up (or down) by a ratio" +#: js/blocks/RhythmBlockPaletteBlocks.js:50 +#: js/blocks/RhythmBlockPaletteBlocks.js:233 +#.TRANS: rhythm block +#.TRANS: translate "rhythm1" as rhythm +msgid "rhythm1" msgstr "" -#: js/PitchBlocks.js:1121 -#.TRANS: adjust the amount of shift (up or down) of a pitch -msgid "transpose by ratio" +#: js/blocks/RhythmBlockPaletteBlocks.js:70 +#: js/blocks/RhythmBlockPaletteBlocks.js:252 +#: js/blocks/RhythmBlockPaletteBlocks.js:485 +#: js/blocks/RhythmBlockPaletteBlocks.js:554 +#: js/blocks/RhythmBlockPaletteBlocks.js:875 +msgid "number of notes" msgstr "" -#: js/PitchBlocks.js:1204 -#.TRANS: down sixth means the note is five scale degrees below current note -msgid "down sixth" +#: js/blocks/RhythmBlockPaletteBlocks.js:126 +msgid "polyphonic rhythm" msgstr "" -#: js/PitchBlocks.js:1223 -#.TRANS: down third means the note is two scale degrees below current note -msgid "down third" +#: js/blocks/RhythmBlockPaletteBlocks.js:219 +msgid "The Rhythm block is used to generate rhythm patterns." msgstr "" -#: js/PitchBlocks.js:1242 -#.TRANS: seventh means the note is the six scale degrees above current note -msgid "seventh" +#: js/blocks/RhythmBlockPaletteBlocks.js:280 +msgid "1/64 note" msgstr "" -#: js/PitchBlocks.js:1261 -#.TRANS: sixth means the note is the five scale degrees above current note -msgid "sixth" +#: js/blocks/RhythmBlockPaletteBlocks.js:304 +msgid "1/32 note" msgstr "" -#: js/PitchBlocks.js:1280 -#.TRANS: fifth means the note is the four scale degrees above current note -msgid "fifth" +#: js/blocks/RhythmBlockPaletteBlocks.js:332 +msgid "1/16 note" msgstr "" -#: js/PitchBlocks.js:1300 -#.TRANS: fourth means the note is three scale degrees above current note -msgid "fourth" +#: js/blocks/RhythmBlockPaletteBlocks.js:360 +msgid "eighth note" msgstr "" -#: js/PitchBlocks.js:1319 -#.TRANS: third means the note is two scale degrees above current note -msgid "third" +#: js/blocks/RhythmBlockPaletteBlocks.js:388 +msgid "quarter note" msgstr "" -#: js/PitchBlocks.js:1338 -#.TRANS: second means the note is one scale degree above current note -msgid "second" +#: js/blocks/RhythmBlockPaletteBlocks.js:416 +msgid "half note" msgstr "" -#: js/PitchBlocks.js:1379 -msgid "The Scalar transposition block will shift the pitches contained inside Note blocks up (or down) the scale." +#: js/blocks/RhythmBlockPaletteBlocks.js:444 +msgid "whole note" msgstr "" -#: js/PitchBlocks.js:1381 -msgid "In the example shown above, sol is shifted up to la." +#: js/blocks/RhythmBlockPaletteBlocks.js:482 +#: js/blocks/RhythmBlockPaletteBlocks.js:551 +#: js/blocks/RhythmBlockPaletteBlocks.js:602 +#.TRANS: A tuplet is a note value divided into irregular time values. +msgid "tuplet" msgstr "" -#: js/PitchBlocks.js:1388 -#.TRANS: adjust the amount of shift (up or down) of a pitch by musical scale (scalar) steps -msgid "scalar transpose" +#: js/blocks/RhythmBlockPaletteBlocks.js:768 +msgid "septuplet" msgstr "" -#: js/PitchBlocks.js:1423 -msgid "The Accidental block is used to create sharps and flats" +#: js/blocks/RhythmBlockPaletteBlocks.js:796 +msgid "quintuplet" msgstr "" -#: js/PitchBlocks.js:1430 -#.TRANS: An accidental is a modification to a pitch, e.g., sharp or flat. -msgid "accidental override" +#: js/blocks/RhythmBlockPaletteBlocks.js:824 +msgid "triplet" msgstr "" -#: js/PitchBlocks.js:1543 -msgid "The Hertz block (in combination with a Number block) will play a sound at the specified frequency." +#: js/blocks/RhythmBlockPaletteBlocks.js:851 +msgid "simple tuplet" msgstr "" -#: js/PitchBlocks.js:1633 -msgid "The Pitch Number block will play a pitch associated by its number, e.g. 0 for C and 7 for G." +#: js/blocks/RhythmBlockPaletteBlocks.js:861 +msgid "Tuplets are a collection of notes that get scaled to a specific duration." msgstr "" -#: js/PitchBlocks.js:1665 -#: js/PitchBlocks.js:1707 -#.TRANS: a numeric mapping of the notes in an octave based on the musical mode -#.TRANS: a numeric mapping of the notes in an octave based on the musical mode -msgid "nth modal pitch" +#: js/blocks/DrumBlocks.js:59 +msgid "The Noise name block is used to select a noise synthesizer." msgstr "" -#: js/PitchBlocks.js:1668 -msgid "n^th Modal Pitch takes the pattern of pitches in semitones for a mode and makes each point a degree of the mode," +#: js/blocks/DrumBlocks.js:102 +msgid "The Drum name block is used to select a drum." msgstr "" -#: js/PitchBlocks.js:1670 -msgid "starting from 1 and regardless of tonal framework (i.e. not always 8 notes in the octave)" +#: js/blocks/DrumBlocks.js:146 +msgid "The Effects name block is used to select a sound effect." msgstr "" -#: js/PitchBlocks.js:1711 -msgid "N^th Modal Pitch takes a number as an input as the n^th degree for the given mode. 0 is the first position, 1 is the second, -1 is the note before the first etc." +#: js/blocks/DrumBlocks.js:163 +msgid "noise" msgstr "" -#: js/PitchBlocks.js:1713 -msgid "The pitches change according to the mode specified without any need for respellings." +#: js/blocks/DrumBlocks.js:177 +msgid "The Play noise block will generate white, pink, or brown noise." msgstr "" -#: js/PitchBlocks.js:1752 -msgid "Scale Degree is a common convention in music. Scale Degree offers seven possible positions in the scale (1-7) and can be modified via accidentals." +#: js/blocks/DrumBlocks.js:317 +msgid "Replace every instance of a pitch with a drum sound." msgstr "" -#: js/PitchBlocks.js:1754 -msgid "Scale Degree 1 is always the first pitch in a given scale, regardless of octave." +#: js/blocks/DrumBlocks.js:328 +#.TRANS: map a pitch to a drum sound +msgid "map pitch to drum" msgstr "" -#: js/PitchBlocks.js:1776 -#.TRANS: step some number of notes in current musical scale -msgid "scalar step" +#: js/blocks/DrumBlocks.js:395 +msgid "In the example above, a kick drum sound will be played instead of sol." msgstr "" -#: js/PitchBlocks.js:1781 -msgid "The Scalar Step block (in combination with a Number block) will play the next pitch in a scale," +#: js/blocks/DrumBlocks.js:407 +#.TRANS: set the current drum sound for playback +msgid "set drum" msgstr "" -#: js/PitchBlocks.js:1783 -msgid "eg if the last note played was sol, Scalar Step 1 will play la." +#: js/blocks/DrumBlocks.js:451 +msgid "sound effect" msgstr "" -#: js/PitchBlocks.js:1818 -msgid "The Pitch block specifies the pitch name and octave of a note that together determine the frequency of the note." +#: js/blocks/DrumBlocks.js:489 +msgid "You can use multiple Drum blocks within a Note block." msgstr "" -#: js/GraphicsBlocks.js:46 -#: js/DictActions.js:77 -#: js/DictActions.js:155 -#: js/DictActions.js:189 +#: js/blocks/GraphicsBlocks.js:46 +#: js/turtleactions/DictActions.js:77 +#: js/turtleactions/DictActions.js:144 +#: js/turtleactions/DictActions.js:173 msgid "heading" msgstr "" -#: js/GraphicsBlocks.js:56 +#: js/blocks/GraphicsBlocks.js:56 msgid "The Heading block returns the orientation of the mouse." msgstr "" -#: js/GraphicsBlocks.js:62 +#: js/blocks/GraphicsBlocks.js:62 msgid "The Heading block returns the orientation of the turtle." msgstr "" -#: js/GraphicsBlocks.js:133 +#: js/blocks/GraphicsBlocks.js:133 msgid "The Y block returns the vertical position of the mouse." msgstr "" -#: js/GraphicsBlocks.js:140 +#: js/blocks/GraphicsBlocks.js:140 msgid "The Y block returns the vertical position of the turtle." msgstr "" -#: js/GraphicsBlocks.js:149 +#: js/blocks/GraphicsBlocks.js:149 msgid "y3" msgstr "" -#: js/GraphicsBlocks.js:219 +#: js/blocks/GraphicsBlocks.js:219 msgid "The X block returns the horizontal position of the mouse." msgstr "" -#: js/GraphicsBlocks.js:226 +#: js/blocks/GraphicsBlocks.js:226 msgid "The X block returns the horizontal position of the turtle." msgstr "" -#: js/GraphicsBlocks.js:235 +#: js/blocks/GraphicsBlocks.js:235 msgid "x3" msgstr "" -#: js/GraphicsBlocks.js:295 +#: js/blocks/GraphicsBlocks.js:295 msgid "scroll xy" msgstr "" -#: js/GraphicsBlocks.js:303 +#: js/blocks/GraphicsBlocks.js:303 msgid "The Scroll XY block moves the canvas." msgstr "" -#: js/GraphicsBlocks.js:313 +#: js/blocks/GraphicsBlocks.js:313 msgid "x2" msgstr "" -#: js/GraphicsBlocks.js:313 +#: js/blocks/GraphicsBlocks.js:313 msgid "y2" msgstr "" -#: js/GraphicsBlocks.js:373 -#: js/temperament.js:213 -#: js/temperament.js:241 +#: js/blocks/GraphicsBlocks.js:373 +#: js/widgets/temperament.js:319 +#: js/widgets/temperament.js:347 msgid "clear" msgstr "" -#: js/GraphicsBlocks.js:426 +#: js/blocks/GraphicsBlocks.js:426 msgid "The Control-point 2 block sets the second control point for the Bezier curve." msgstr "" -#: js/GraphicsBlocks.js:433 +#: js/blocks/GraphicsBlocks.js:433 msgid "control point 2" msgstr "" -#: js/GraphicsBlocks.js:436 -#: js/GraphicsBlocks.js:487 -#: js/GraphicsBlocks.js:534 -#: js/GraphicsBlocks.js:750 +#: js/blocks/GraphicsBlocks.js:436 +#: js/blocks/GraphicsBlocks.js:487 +#: js/blocks/GraphicsBlocks.js:534 +#: js/blocks/GraphicsBlocks.js:750 msgid "x1" msgstr "" -#: js/GraphicsBlocks.js:436 -#: js/GraphicsBlocks.js:487 -#: js/GraphicsBlocks.js:534 -#: js/GraphicsBlocks.js:750 +#: js/blocks/GraphicsBlocks.js:436 +#: js/blocks/GraphicsBlocks.js:487 +#: js/blocks/GraphicsBlocks.js:534 +#: js/blocks/GraphicsBlocks.js:750 msgid "y1" msgstr "" -#: js/GraphicsBlocks.js:477 +#: js/blocks/GraphicsBlocks.js:477 msgid "The Control-point 1 block sets the first control point for the Bezier curve." msgstr "" -#: js/GraphicsBlocks.js:484 +#: js/blocks/GraphicsBlocks.js:484 msgid "control point 1" msgstr "" -#: js/GraphicsBlocks.js:527 +#: js/blocks/GraphicsBlocks.js:527 msgid "The Bezier block draws a Bezier curve." msgstr "" -#: js/GraphicsBlocks.js:531 +#: js/blocks/GraphicsBlocks.js:531 msgid "bezier" msgstr "" -#: js/GraphicsBlocks.js:592 +#: js/blocks/GraphicsBlocks.js:592 msgid "The Arc block moves the turtle in an arc." msgstr "" -#: js/GraphicsBlocks.js:600 +#: js/blocks/GraphicsBlocks.js:600 msgid "arc" msgstr "" -#: js/GraphicsBlocks.js:603 +#: js/blocks/GraphicsBlocks.js:603 msgid "angle" msgstr "" -#: js/GraphicsBlocks.js:603 +#: js/blocks/GraphicsBlocks.js:603 msgid "radius" msgstr "" -#: js/GraphicsBlocks.js:620 -#: js/GraphicsBlocks.js:767 -#: js/GraphicsBlocks.js:1010 -#: js/GraphicsBlocks.js:1093 +#: js/blocks/GraphicsBlocks.js:620 +#: js/blocks/GraphicsBlocks.js:767 +#: js/blocks/GraphicsBlocks.js:1010 +#: js/blocks/GraphicsBlocks.js:1093 msgid "Value must be within -5000 to 5000 when Wrap Mode is off." msgstr "" -#: js/GraphicsBlocks.js:622 -#: js/GraphicsBlocks.js:769 -#: js/GraphicsBlocks.js:1012 -#: js/GraphicsBlocks.js:1095 +#: js/blocks/GraphicsBlocks.js:622 +#: js/blocks/GraphicsBlocks.js:769 +#: js/blocks/GraphicsBlocks.js:1012 +#: js/blocks/GraphicsBlocks.js:1095 msgid "Value must be within -20000 to 20000 when Wrap Mode is on." msgstr "" -#: js/GraphicsBlocks.js:660 +#: js/blocks/GraphicsBlocks.js:660 msgid "set heading" msgstr "seth" -#: js/GraphicsBlocks.js:673 +#: js/blocks/GraphicsBlocks.js:673 msgid "The Set heading block sets the heading of the turtle." msgstr "" -#: js/GraphicsBlocks.js:733 +#: js/blocks/GraphicsBlocks.js:733 msgid "The Set XY block moves the mouse to a specific position on the screen." msgstr "" -#: js/GraphicsBlocks.js:739 +#: js/blocks/GraphicsBlocks.js:739 msgid "The Set XY block moves the turtle to a specific position on the screen." msgstr "" -#: js/GraphicsBlocks.js:747 +#: js/blocks/GraphicsBlocks.js:747 msgid "set xy" msgstr "" -#: js/GraphicsBlocks.js:819 +#: js/blocks/GraphicsBlocks.js:819 msgid "The Right block turns the mouse to the right." msgstr "" -#: js/GraphicsBlocks.js:826 +#: js/blocks/GraphicsBlocks.js:826 msgid "The Right block turns the turtle to the right." msgstr "" -#: js/GraphicsBlocks.js:835 +#: js/blocks/GraphicsBlocks.js:835 msgid "right1" msgstr "" -#: js/GraphicsBlocks.js:835 +#: js/blocks/GraphicsBlocks.js:835 #: plugins/rodi.rtp:77 #: plugins/rodi.rtp:340 #: plugins/rodi.rtp:375 msgid "right" msgstr "" -#: js/GraphicsBlocks.js:899 +#: js/blocks/GraphicsBlocks.js:899 msgid "The Left block turns the mouse to the left." msgstr "" -#: js/GraphicsBlocks.js:906 +#: js/blocks/GraphicsBlocks.js:906 msgid "The Left block turns the turtle to the left." msgstr "" -#: js/GraphicsBlocks.js:915 +#: js/blocks/GraphicsBlocks.js:915 msgid "left1" msgstr "" -#: js/GraphicsBlocks.js:915 +#: js/blocks/GraphicsBlocks.js:915 #: plugins/rodi.rtp:79 #: plugins/rodi.rtp:339 #: plugins/rodi.rtp:362 msgid "left" msgstr "" -#: js/GraphicsBlocks.js:967 -#: js/temperament.js:734 -#: js/temperament.js:933 +#: js/blocks/GraphicsBlocks.js:967 +#: js/widgets/temperament.js:875 +#: js/widgets/temperament.js:1078 #: plugins/rodi.rtp:69 #: plugins/rodi.rtp:387 msgid "back" msgstr "" -#: js/GraphicsBlocks.js:976 +#: js/blocks/GraphicsBlocks.js:976 msgid "The Back block moves the mouse backward." msgstr "" -#: js/GraphicsBlocks.js:983 +#: js/blocks/GraphicsBlocks.js:983 msgid "The Back block moves the turtle backward." msgstr "" -#: js/GraphicsBlocks.js:1050 +#: js/blocks/GraphicsBlocks.js:1050 #: plugins/rodi.rtp:71 #: plugins/rodi.rtp:400 msgid "forward" msgstr "" -#: js/GraphicsBlocks.js:1059 +#: js/blocks/GraphicsBlocks.js:1059 msgid "The Forward block moves the mouse forward." msgstr "" -#: js/GraphicsBlocks.js:1066 +#: js/blocks/GraphicsBlocks.js:1066 msgid "The Forward block moves the turtle forward." msgstr "" -#: js/GraphicsBlocks.js:1154 -#: js/GraphicsBlocks.js:1172 +#: js/blocks/GraphicsBlocks.js:1154 +#: js/blocks/GraphicsBlocks.js:1172 msgid "wrap" msgstr "" -#: js/OrnamentBlocks.js:32 -msgid "staccato factor" -msgstr "" - -#: js/OrnamentBlocks.js:108 -msgid "slur factor" -msgstr "" - -#: js/OrnamentBlocks.js:217 -#: js/OrnamentBlocks.js:309 -#.TRANS: the neighbor refers to a neighboring note, e.g., D is a neighbor of C -msgid "neighbor" -msgstr "" - -#: js/OrnamentBlocks.js:293 -msgid "The Neighbor block rapidly switches between neighboring pitches." -msgstr "" - -#: js/OrnamentBlocks.js:364 -msgid "glide" -msgstr "" - -#: js/OrnamentBlocks.js:479 -#: js/OrnamentBlocks.js:643 -msgid "slur" -msgstr "" - -#: js/OrnamentBlocks.js:558 -#: js/OrnamentBlocks.js:710 -#.TRANS: play each note sharply detached from the others -msgid "staccato" -msgstr "" - -#: js/PenBlocks.js:24 +#: js/blocks/PenBlocks.js:30 msgid "purple" msgstr "" -#: js/PenBlocks.js:37 -#: js/SensorsBlocks.js:521 -#: plugins/rodi.rtp:219 -msgid "blue" -msgstr "" - -#: js/PenBlocks.js:50 -#: js/SensorsBlocks.js:577 -#: plugins/rodi.rtp:218 -msgid "green" -msgstr "" - -#: js/PenBlocks.js:63 +#: js/blocks/PenBlocks.js:80 msgid "yellow" msgstr "" -#: js/PenBlocks.js:76 +#: js/blocks/PenBlocks.js:96 #: plugins/nutrition.rtp:164 msgid "orange" msgstr "" -#: js/PenBlocks.js:89 -#: js/SensorsBlocks.js:633 -#: plugins/rodi.rtp:217 -msgid "red" -msgstr "" - -#: js/PenBlocks.js:102 +#: js/blocks/PenBlocks.js:128 msgid "white" msgstr "" -#: js/PenBlocks.js:115 +#: js/blocks/PenBlocks.js:144 msgid "black" msgstr "" -#: js/PenBlocks.js:128 +#: js/blocks/PenBlocks.js:163 msgid "begin fill" msgstr "" -#: js/PenBlocks.js:143 +#: js/blocks/PenBlocks.js:190 msgid "end fill" msgstr "" -#: js/PenBlocks.js:159 -#: js/PenBlocks.js:386 +#: js/blocks/PenBlocks.js:212 +#: js/blocks/PenBlocks.js:560 #.TRANS: set the background color msgid "background" msgstr "" -#: js/PenBlocks.js:206 -#: js/DictActions.js:71 -#: js/DictActions.js:149 -#: js/DictActions.js:186 +#: js/blocks/PenBlocks.js:274 +#: js/turtleactions/DictActions.js:71 +#: js/turtleactions/DictActions.js:138 +#: js/turtleactions/DictActions.js:170 msgid "grey" msgstr "" -#: js/PenBlocks.js:210 +#: js/blocks/PenBlocks.js:282 msgid "The Grey block returns the current pen grey value." msgstr "" -#: js/PenBlocks.js:243 -#: js/DictActions.js:69 -#: js/DictActions.js:147 -#: js/DictActions.js:185 +#: js/blocks/PenBlocks.js:340 +#: js/turtleactions/DictActions.js:69 +#: js/turtleactions/DictActions.js:136 +#: js/turtleactions/DictActions.js:169 msgid "shade" msgstr "" -#: js/PenBlocks.js:247 +#: js/blocks/PenBlocks.js:347 msgid "The Shade block returns the current pen shade value." msgstr "" -#: js/PenBlocks.js:280 -#: js/DictActions.js:67 -#: js/DictActions.js:145 -#: js/DictActions.js:184 +#: js/blocks/PenBlocks.js:405 +#: js/turtleactions/DictActions.js:67 +#: js/turtleactions/DictActions.js:134 +#: js/turtleactions/DictActions.js:168 msgid "color" msgstr "" -#: js/PenBlocks.js:285 +#: js/blocks/PenBlocks.js:415 msgid "The Color block returns the current pen color." msgstr "" -#: js/PenBlocks.js:318 -#: js/DictActions.js:73 -#: js/DictActions.js:151 -#: js/DictActions.js:187 +#: js/blocks/PenBlocks.js:470 +#: js/turtleactions/DictActions.js:73 +#: js/turtleactions/DictActions.js:140 +#: js/turtleactions/DictActions.js:171 msgid "pen size" msgstr "" -#: js/PenBlocks.js:322 +#: js/blocks/PenBlocks.js:474 msgid "The Pen size block returns the current pen size value." msgstr "" -#: js/PenBlocks.js:355 +#: js/blocks/PenBlocks.js:513 msgid "set font" msgstr "" -#: js/PenBlocks.js:358 +#: js/blocks/PenBlocks.js:518 msgid "The Set font block sets the font used by the Show block." msgstr "" -#: js/PenBlocks.js:391 +#: js/blocks/PenBlocks.js:567 msgid "The Background block sets the window background color." msgstr "" -#: js/PenBlocks.js:408 +#: js/blocks/PenBlocks.js:598 msgid "The Hollow line block creates a line with a hollow center." msgstr "" -#: js/PenBlocks.js:415 +#: js/blocks/PenBlocks.js:606 #.TRANS: draw a line logo has a hollow space down its center msgid "hollow line" msgstr "" -#: js/PenBlocks.js:462 +#: js/blocks/PenBlocks.js:675 msgid "The Fill block fills in a shape with a color." msgstr "" -#: js/PenBlocks.js:470 +#: js/blocks/PenBlocks.js:684 #.TRANS: fill in as a solid color msgid "fill" msgstr "" -#: js/PenBlocks.js:527 +#: js/blocks/PenBlocks.js:761 #.TRANS: raise up the pen so logo it does not draw when it is moved msgid "pen up" msgstr "" -#: js/PenBlocks.js:532 +#: js/blocks/PenBlocks.js:768 msgid "The Pen-up block raises the pen so that it does not draw." msgstr "" -#: js/PenBlocks.js:552 +#: js/blocks/PenBlocks.js:802 #.TRANS: put down the pen so logo it draws when it is moved msgid "pen down" msgstr "" -#: js/PenBlocks.js:557 +#: js/blocks/PenBlocks.js:810 msgid "The Pen-down block lowers the pen so that it draws." msgstr "" -#: js/PenBlocks.js:577 +#: js/blocks/PenBlocks.js:844 #.TRANS: set the width of the line drawn by the pen msgid "set pen size" msgstr "" -#: js/PenBlocks.js:583 +#: js/blocks/PenBlocks.js:854 msgid "The Set-pen-size block changes the size of the pen." msgstr "" -#: js/PenBlocks.js:623 +#: js/blocks/PenBlocks.js:913 #.TRANS: set degree of translucence of the pen color msgid "set translucency" msgstr "" -#: js/PenBlocks.js:627 +#: js/blocks/PenBlocks.js:921 msgid "The Set translucency block changes the opacity of the pen." msgstr "" -#: js/PenBlocks.js:668 +#: js/blocks/PenBlocks.js:981 msgid "set hue" msgstr "" -#: js/PenBlocks.js:672 +#: js/blocks/PenBlocks.js:989 msgid "The Set hue block changes the color of the pen." msgstr "" -#: js/PenBlocks.js:711 +#: js/blocks/PenBlocks.js:1047 msgid "set shade" msgstr "" -#: js/PenBlocks.js:717 +#: js/blocks/PenBlocks.js:1057 msgid "The Set-shade block changes the pen color from dark to light." msgstr "" -#: js/PenBlocks.js:757 +#: js/blocks/PenBlocks.js:1111 #.TRANS: set the level of vividness of the pen color msgid "set grey" msgstr "" -#: js/PenBlocks.js:761 +#: js/blocks/PenBlocks.js:1119 msgid "The Set grey block changes the vividness of the pen color." msgstr "" -#: js/PenBlocks.js:800 +#: js/blocks/PenBlocks.js:1172 msgid "set color" msgstr "" -#: js/PenBlocks.js:806 +#: js/blocks/PenBlocks.js:1182 msgid "The Set-color block changes the pen color." msgstr "" -#: js/VolumeBlocks.js:35 -msgid "synth volume" -msgstr "" - -#: js/VolumeBlocks.js:39 -msgid "The Synth volume block returns the current volume of the current synthesizer." -msgstr "" - -#: js/VolumeBlocks.js:47 -#: js/musicutils.js:730 -#: js/synthutils.js:56 -#.TRANS: musical instrument -msgid "piano" -msgstr "" - -#: js/VolumeBlocks.js:105 -msgid "master volume" -msgstr "" - -#: js/VolumeBlocks.js:109 -msgid "The Master volume block returns the master volume." -msgstr "" - -#: js/VolumeBlocks.js:355 -#: js/VolumeBlocks.js:524 -msgid "set synth volume" -msgstr "" - -#: js/VolumeBlocks.js:362 -#: js/VolumeBlocks.js:545 -msgid "synth" -msgstr "" - -#: js/VolumeBlocks.js:403 -#: js/VolumeBlocks.js:577 -#: js/VolumeBlocks.js:740 -#: js/VolumeActions.js:173 -msgid "Setting volume to 0." -msgstr "" - -#: js/VolumeBlocks.js:440 -msgid "Synth not found" -msgstr "" - -#: js/VolumeBlocks.js:494 -msgid "set drum volume" -msgstr "" - -#: js/VolumeBlocks.js:530 -msgid "The Set synth volume block will change the volume of a particular synth," -msgstr "" - -#: js/VolumeBlocks.js:532 -msgid "eg guitar violin snare drum etc." -msgstr "" - -#: js/VolumeBlocks.js:534 -msgid "The default volume is 50." -msgstr "" - -#: js/VolumeBlocks.js:536 -msgid "The range is 0 for silence to 100 for full volume." -msgstr "" - -#: js/VolumeBlocks.js:597 -msgid "set panning" -msgstr "" - -#: js/VolumeBlocks.js:603 -msgid "The Set Panning block sets the panning for all synthesizers." -msgstr "" - -#: js/VolumeBlocks.js:625 -msgid "Warning: Sound is coming out from only the left or right side." -msgstr "" - -#: js/VolumeBlocks.js:647 -#: js/VolumeBlocks.js:695 -msgid "set master volume" -msgstr "" - -#: js/VolumeBlocks.js:653 -msgid "The Set master volume block sets the volume for all synthesizers." -msgstr "" - -#: js/VolumeBlocks.js:784 -msgid "The Set relative volume block changes the volume of the contained notes." -msgstr "" - -#: js/VolumeBlocks.js:791 -msgid "set relative volume" -msgstr "" - -#: js/VolumeBlocks.js:857 -msgid "decrescendo" -msgstr "" - -#: js/VolumeBlocks.js:921 -msgid "crescendo" -msgstr "" - -#: js/ToneBlocks.js:34 -msgid "oscillator" -msgstr "" - -#: js/ToneBlocks.js:44 -#: js/timbre.js:1562 -#.TRANS: Partials refers to the number of sine waves combined into the sound. -msgid "partials" -msgstr "" - -#: js/ToneBlocks.js:76 -msgid "You are adding multiple oscillator blocks." -msgstr "" - -#: js/ToneBlocks.js:144 -#: js/timbre.js:1225 -#.TRANS: a duo synthesizer combines a synth with a sequencer -msgid "duo synth" -msgstr "" - -#: js/ToneBlocks.js:149 -msgid "The Duo synth block is a duo-frequency modulator used to define a timbre." -msgstr "" - -#: js/ToneBlocks.js:157 -#: js/timbre.js:1476 -msgid "vibrato rate" -msgstr "" - -#: js/ToneBlocks.js:157 -msgid "vibrato intensity" -msgstr "" - -#: js/ToneBlocks.js:185 -#: js/timbre.js:1221 -#.TRANS: AM (amplitude modulation) synthesizer -msgid "AM synth" -msgstr "" - -#: js/ToneBlocks.js:189 -msgid "The AM synth block is an amplitude modulator used to define a timbre." -msgstr "" - -#: js/ToneBlocks.js:224 -#: js/timbre.js:1223 -#.TRANS: FM (frequency modulation) synthesizer -msgid "FM synth" -msgstr "" - -#: js/ToneBlocks.js:228 -msgid "The FM synth block is a frequency modulator used to define a timbre." +#: js/blocks/PitchBlocks.js:141 +#.TRANS: musical transposition (adjustment of pitch up or down) +msgid "transposition" msgstr "" -#: js/ToneBlocks.js:262 -msgid "partial" +#: js/blocks/PitchBlocks.js:168 +#.TRANS: step down one note in current musical scale +msgid "scalar step down" msgstr "" -#: js/ToneBlocks.js:265 -msgid "The Partial block is used to specify a weight for a specific partial harmonic." +#: js/blocks/PitchBlocks.js:172 +msgid "The Scalar step down block returns the number of semi-tones down to the previous note in the current key and mode." msgstr "" -#: js/ToneBlocks.js:284 -#.TRANS: partials are weighted components in a harmonic series -msgid "Partial weight must be between 0 and 1." +#: js/blocks/PitchBlocks.js:190 +#.TRANS: step up one note in current musical scale +msgid "scalar step up" msgstr "" -#: js/ToneBlocks.js:297 -#.TRANS: partials are weighted components in a harmonic series -msgid "Partial block should be used inside of a Weighted-partials block." +#: js/blocks/PitchBlocks.js:194 +msgid "The Scalar step up block returns the number of semi-tones up to the next note in the current key and mode." msgstr "" -#: js/ToneBlocks.js:325 -#.TRANS: partials are weighted components in a harmonic series -msgid "weighted partials" +#: js/blocks/PitchBlocks.js:212 +#.TRANS: the change measured in half-steps between the current pitch and the previous pitch +msgid "change in pitch" msgstr "" -#: js/ToneBlocks.js:383 -msgid "The Harmonic block will add harmonics to the contained notes." +#: js/blocks/PitchBlocks.js:216 +msgid "The Change in pitch block is the difference (in half steps) between the current pitch being played and the previous pitch played." msgstr "" -#: js/ToneBlocks.js:390 -#.TRANS: A harmonic is an overtone. -msgid "harmonic" +#: js/blocks/PitchBlocks.js:243 +#.TRANS: the change measured in scale-steps between the current pitch and the previous pitch +msgid "scalar change in pitch" msgstr "" -#: js/ToneBlocks.js:431 -msgid "The Distortion block adds distortion to the pitch." +#: js/blocks/PitchBlocks.js:250 +#: js/blocks/PitchBlocks.js:432 +#: js/blocks/PitchBlocks.js:1667 +#: js/turtleactions/DictActions.js:89 +#: js/widgets/temperament.js:610 +#: js/widgets/temperament.js:614 +#: js/widgets/temperament.js:855 +#.TRANS: convert current note to piano key (1-88) +#.TRANS: a mapping of pitch to the 88 piano keys +msgid "pitch number" msgstr "" -#: js/ToneBlocks.js:438 -#: js/timbre.js:2100 -#.TRANS: distortion is an alteration in the sound -msgid "distortion" +#: js/blocks/PitchBlocks.js:256 +msgid "The Pitch number block is the value of the pitch of the note currently being played." msgstr "" -#: js/ToneBlocks.js:487 -msgid "The Tremolo block adds a wavering effect." +#: js/blocks/PitchBlocks.js:329 +#: js/blocks/PitchBlocks.js:433 +#.TRANS: the current pitch expressed in Hertz +msgid "pitch in hertz" msgstr "" -#: js/ToneBlocks.js:495 -#: js/timbre.js:2092 -#.TRANS: a wavering effect in a musical tone -msgid "tremolo" +#: js/blocks/PitchBlocks.js:334 +msgid "The Pitch in Hertz block is the value in Hertz of the pitch of the note currently being played." msgstr "" -#: js/ToneBlocks.js:500 -#: js/ToneBlocks.js:569 -#: js/ToneBlocks.js:630 -#: js/ToneBlocks.js:689 -#: js/timbre.js:2134 -#: js/timbre.js:2222 -#: js/timbre.js:2317 -#: js/timbre.js:2419 -#.TRANS: rate at which tremolo wavers -msgid "rate" +#: js/blocks/PitchBlocks.js:367 +#: js/turtleactions/DictActions.js:87 +msgid "current pitch" msgstr "" -#: js/ToneBlocks.js:502 -#: js/ToneBlocks.js:630 -#: js/timbre.js:2137 -#: js/timbre.js:2328 -#.TRANS: amplitude of tremolo waver -msgid "depth" +#: js/blocks/PitchBlocks.js:373 +msgid "The Current Pitch block is used with the Pitch Converter block. In the example above, current pitch, sol 4, is displayed as 392 hertz." msgstr "" -#: js/ToneBlocks.js:559 -msgid "The Phaser block adds a sweeping sound." +#: js/blocks/PitchBlocks.js:410 +msgid "This block converts the pitch value of the last note played into different formats such as hertz, letter name, pitch number, et al." msgstr "" -#: js/ToneBlocks.js:566 -#: js/timbre.js:2098 -#.TRANS: alter the phase of the sound -msgid "phaser" +#: js/blocks/PitchBlocks.js:434 +msgid "alphabet" msgstr "" -#: js/ToneBlocks.js:569 -#: js/timbre.js:2422 -msgid "octaves" +#: js/blocks/PitchBlocks.js:436 +#.TRANS: Translate as "alphabet class" +msgid "letter class" msgstr "" -#: js/ToneBlocks.js:569 -#: js/timbre.js:2425 -msgid "base frequency" +#: js/blocks/PitchBlocks.js:437 +msgid "solfege class" msgstr "" -#: js/ToneBlocks.js:619 -msgid "The Chorus block adds a chorus effect." +#: js/blocks/PitchBlocks.js:438 +msgid "staff y" msgstr "" -#: js/ToneBlocks.js:627 -#: js/timbre.js:2096 -#.TRANS: musical effect to simulate a choral sound -msgid "chorus" +#: js/blocks/PitchBlocks.js:439 +msgid "solfege syllable" msgstr "" -#: js/ToneBlocks.js:630 -msgid "delay" +#: js/blocks/PitchBlocks.js:440 +msgid "pitch class" msgstr "" -#: js/ToneBlocks.js:678 -msgid "The Vibrato block adds a rapid, slight variation in pitch." +#: js/blocks/PitchBlocks.js:441 +msgid "scalar class" msgstr "" -#: js/ToneBlocks.js:686 -#: js/timbre.js:2094 -#.TRANS: a rapid, slight variation in pitch -msgid "vibrato" +#: js/blocks/PitchBlocks.js:443 +msgid "nth degree" msgstr "" -#: js/ToneBlocks.js:689 -#: js/timbre.js:2221 -msgid "intensity" +#: js/blocks/PitchBlocks.js:444 +msgid "pitch to shade" msgstr "" -#: js/ToneBlocks.js:733 -#.TRANS: select synthesizer -msgid "set synth" +#: js/blocks/PitchBlocks.js:445 +msgid "pitch to color" msgstr "" -#: js/ToneBlocks.js:804 -msgid "synth name" +#: js/blocks/PitchBlocks.js:629 +#: js/widgets/musickeyboard.js:735 +#.TRANS: MIDI is a technical standard for electronic music +msgid "MIDI" msgstr "" -#: js/ToneBlocks.js:842 -msgid "set default instrument" +#: js/blocks/PitchBlocks.js:642 +#.TRANS: set an offset associated with the numeric piano keyboard mapping +msgid "set pitch number offset" msgstr "" -#: js/ToneBlocks.js:895 -#: js/ToneBlocks.js:943 -#.TRANS: set the characteristics of a custom instrument -msgid "set instrument" +#: js/blocks/PitchBlocks.js:645 +msgid "The Set pitch number offset block is used to set the offset for mapping pitch numbers to pitch and octave." msgstr "" -#: js/ToneBlocks.js:898 -#: js/ToneBlocks.js:926 -#: js/ToneBlocks.js:932 -msgid "The Set instrument block selects a voice for the synthesizer," +#: js/blocks/PitchBlocks.js:679 +#.TRANS: convert piano key number (1-88) to pitch +msgid "number to pitch" msgstr "" -#: js/ToneBlocks.js:900 -#: js/ToneBlocks.js:934 -msgid "eg guitar piano violin or cello." +#: js/blocks/PitchBlocks.js:682 +msgid "The Number to pitch block will convert a pitch number to a pich name." msgstr "" -#: js/ToneBlocks.js:1015 -msgid "Import a sound file to use as an instrument and set its pitch center." +#: js/blocks/PitchBlocks.js:715 +#.TRANS: convert piano key number (1-88) to octave +msgid "number to octave" msgstr "" -#: js/ToneBlocks.js:1110 -msgid "Upload a sound file to connect with the sample block." +#: js/blocks/PitchBlocks.js:717 +msgid "The Number to octave block will convert a pitch number to an octave." msgstr "" -#: js/MeterBlocks.js:34 -#.TRANS: musical meter (time signature), e.g., 4:4 -msgid "current meter" +#: js/blocks/PitchBlocks.js:726 +msgid "y to pitch" msgstr "" -#: js/MeterBlocks.js:85 -#.TRANS: number of beats per minute -msgid "beat factor" +#: js/blocks/PitchBlocks.js:729 +msgid "Y to pitch block will convert a staff y position to corresponding pitch notation." msgstr "" -#: js/MeterBlocks.js:161 -msgid "The Beats per minute block returns the current beats per minute." +#: js/blocks/PitchBlocks.js:841 +msgid "accidental selector" msgstr "" -#: js/MeterBlocks.js:169 -#: js/status.js:152 -#.TRANS: number of beats played per minute -msgid "beats per minute2" +#: js/blocks/PitchBlocks.js:844 +msgid "The Accidental selector block is used to choose between double-sharp, sharp, natural, flat, and double-flat." msgstr "" -#: js/MeterBlocks.js:169 -#: js/MeterBlocks.js:1056 -#: js/MeterBlocks.js:1133 -#: js/MeterBlocks.js:1211 -#.TRANS: sets tempo by defining a beat and beats per minute -msgid "beats per minute" +#: js/blocks/PitchBlocks.js:858 +msgid "Pitch can be specified in terms of ni dha pa ma ga re sa." msgstr "" -#: js/MeterBlocks.js:233 -#.TRANS: count of current musical measure in meter -msgid "measure count" +#: js/blocks/PitchBlocks.js:872 +msgid "Pitch can be specified in terms of C D E F G A B." msgstr "" -#: js/MeterBlocks.js:241 -msgid "The Measure count block returns the current measure." +#: js/blocks/PitchBlocks.js:884 +msgid "solfege" msgstr "" -#: js/MeterBlocks.js:290 -#.TRANS: count of current beat in the meter -msgid "beat count" +#: js/blocks/PitchBlocks.js:887 +msgid "Pitch can be specified in terms of do re mi fa sol la ti." msgstr "" -#: js/MeterBlocks.js:300 -#: js/MeterBlocks.js:311 -#: js/MeterBlocks.js:565 -#: js/MeterBlocks.js:576 -msgid "The Beat count block is the number of the current beat," +#: js/blocks/PitchBlocks.js:922 +msgid "The Invert block rotates any contained notes around a target note." msgstr "" -#: js/MeterBlocks.js:313 -#: js/MeterBlocks.js:578 -msgid "eg 1, 2, 3, or 4." +#: js/blocks/PitchBlocks.js:929 +#.TRANS: pitch inversion rotates a pitch around another pitch +msgid "invert" msgstr "" -#: js/MeterBlocks.js:368 -#.TRANS: count the number of notes -msgid "sum note values" +#: js/blocks/PitchBlocks.js:968 +#.TRANS: pitch inversion rotates a pitch around another pitch (odd number) +msgid "invert (odd)" msgstr "" -#: js/MeterBlocks.js:376 -#: js/MeterBlocks.js:440 -msgid "The Note counter block can be used to count the number of contained notes." +#: js/blocks/PitchBlocks.js:1001 +#.TRANS: pitch inversion rotates a pitch around another pitch (even number) +msgid "invert (even)" msgstr "" -#: js/MeterBlocks.js:432 -#.TRANS: count the number of notes -msgid "note counter" +#: js/blocks/PitchBlocks.js:1022 +#.TRANS: register is the octave of the current pitch +msgid "register" msgstr "" -#: js/MeterBlocks.js:496 -#.TRANS: number of whole notes that have been played -msgid "whole notes played" +#: js/blocks/PitchBlocks.js:1026 +msgid "The Register block provides an easy way to modify the register (octave) of the notes that follow it." msgstr "" -#: js/MeterBlocks.js:505 -msgid "The Whole notes played block returns the total number of whole notes played." +#: js/blocks/PitchBlocks.js:1047 +#.TRANS: cents are units used to specify the ratio between pitches. There are 100 cents between successive notes. +msgid "50 cents" msgstr "" -#: js/MeterBlocks.js:555 -#: js/DictActions.js:83 -#.TRANS: number of notes that have been played -msgid "notes played" +#: js/blocks/PitchBlocks.js:1102 +msgid "The Semi-tone transposition block will shift the pitches contained inside Note blocks up (or down) by half steps." msgstr "" -#: js/MeterBlocks.js:653 -msgid "The No clock block decouples the notes from the master clock." +#: js/blocks/PitchBlocks.js:1104 +msgid "In the example shown above, sol is shifted up to sol#." msgstr "" -#: js/MeterBlocks.js:661 -#.TRANS: don't lock notes to master clock -msgid "no clock" +#: js/blocks/PitchBlocks.js:1110 +#.TRANS: adjust the amount of shift (up or down) of a pitch +msgid "semi-tone transpose" msgstr "" -#: js/MeterBlocks.js:700 -msgid "on weak beat do" +#: js/blocks/PitchBlocks.js:1143 +msgid "The Transpose by Ratio block will shift the pitches contained inside Note blocks up (or down) by a ratio" msgstr "" -#: js/MeterBlocks.js:705 -msgid "The On-weak-beat block lets you specify actions to take on weak (off) beats." +#: js/blocks/PitchBlocks.js:1149 +#.TRANS: adjust the amount of shift (up or down) of a pitch +msgid "transpose by ratio" msgstr "" -#: js/MeterBlocks.js:750 -msgid "on strong beat" +#: js/blocks/PitchBlocks.js:1232 +#.TRANS: down sixth means the note is five scale degrees below current note +msgid "down sixth" msgstr "" -#: js/MeterBlocks.js:758 -msgid "The On-strong-beat block lets you specify actions to take on specified beats." +#: js/blocks/PitchBlocks.js:1251 +#.TRANS: down third means the note is two scale degrees below current note +msgid "down third" msgstr "" -#: js/MeterBlocks.js:769 -msgid "beat" +#: js/blocks/PitchBlocks.js:1270 +#.TRANS: seventh means the note is the six scale degrees above current note +msgid "seventh" msgstr "" -#: js/MeterBlocks.js:813 -msgid "on every beat do" +#: js/blocks/PitchBlocks.js:1289 +#.TRANS: sixth means the note is the five scale degrees above current note +msgid "sixth" msgstr "" -#: js/MeterBlocks.js:821 -msgid "The On-every-beat block lets you specify actions to take on every beat." +#: js/blocks/PitchBlocks.js:1308 +#.TRANS: fifth means the note is the four scale degrees above current note +msgid "fifth" msgstr "" -#: js/MeterBlocks.js:874 -msgid "on every note do" +#: js/blocks/PitchBlocks.js:1328 +#.TRANS: fourth means the note is three scale degrees above current note +msgid "fourth" msgstr "" -#: js/MeterBlocks.js:882 -msgid "The On-every-note block lets you specify actions to take on every note." +#: js/blocks/PitchBlocks.js:1347 +#.TRANS: third means the note is two scale degrees above current note +msgid "third" msgstr "" -#: js/MeterBlocks.js:928 -#: js/MeterBlocks.js:999 -#.TRANS: sets tempo by defining a beat and beats per minute -msgid "master beats per minute" +#: js/blocks/PitchBlocks.js:1366 +#.TRANS: second means the note is one scale degree above current note +msgid "second" msgstr "" -#: js/MeterBlocks.js:952 -#: js/MeterBlocks.js:1078 -#: js/MeterBlocks.js:1135 -msgid "bpm" +#: js/blocks/PitchBlocks.js:1407 +msgid "The Scalar transposition block will shift the pitches contained inside Note blocks up (or down) the scale." msgstr "" -#: js/MeterBlocks.js:952 -#: js/MeterBlocks.js:1078 -#: js/MeterBlocks.js:1135 -msgid "beat value" +#: js/blocks/PitchBlocks.js:1409 +msgid "In the example shown above, sol is shifted up to la." msgstr "" -#: js/MeterBlocks.js:1024 -#: js/MeterBlocks.js:1167 -#: js/MeterBlocks.js:1241 -msgid "Beats per minute must be > 30." +#: js/blocks/PitchBlocks.js:1416 +#.TRANS: adjust the amount of shift (up or down) of a pitch by musical scale (scalar) steps +msgid "scalar transpose" msgstr "" -#: js/MeterBlocks.js:1027 -#: js/MeterBlocks.js:1170 -#: js/MeterBlocks.js:1244 -msgid "Maximum beats per minute is 1000." +#: js/blocks/PitchBlocks.js:1451 +msgid "The Accidental block is used to create sharps and flats" msgstr "" -#: js/MeterBlocks.js:1068 -msgid "The Beats per minute block sets the number of 1/4 notes per minute." +#: js/blocks/PitchBlocks.js:1458 +#.TRANS: An accidental is a modification to a pitch, e.g., sharp or flat. +msgid "accidental override" msgstr "" -#: js/MeterBlocks.js:1279 -#.TRANS: anacrusis -msgid "pickup" +#: js/blocks/PitchBlocks.js:1581 +msgid "The Hertz block (in combination with a Number block) will play a sound at the specified frequency." msgstr "" -#: js/MeterBlocks.js:1367 -msgid "number of beats" +#: js/blocks/PitchBlocks.js:1671 +msgid "The Pitch Number block will play a pitch associated by its number, e.g. 0 for C and 7 for G." msgstr "" -#: js/DictBlocks.js:77 -msgid "show dictionary" +#: js/blocks/PitchBlocks.js:1703 +#: js/blocks/PitchBlocks.js:1745 +#.TRANS: a numeric mapping of the notes in an octave based on the musical mode +#.TRANS: a numeric mapping of the notes in an octave based on the musical mode +msgid "nth modal pitch" msgstr "" -#: js/DictBlocks.js:129 -msgid "The Dictionary block returns a dictionary." +#: js/blocks/PitchBlocks.js:1706 +msgid "n^th Modal Pitch takes the pattern of pitches in semitones for a mode and makes each point a degree of the mode," msgstr "" -#: js/DictBlocks.js:197 -#: js/DictBlocks.js:339 -msgid "The Get-dict block returns a value in the dictionary for a specified key." +#: js/blocks/PitchBlocks.js:1708 +msgid "starting from 1 and regardless of tonal framework (i.e. not always 8 notes in the octave)" msgstr "" -#: js/DictBlocks.js:212 -#: js/DictBlocks.js:354 -#.TRANS: retrieve a value from the dictionary with a given key -msgid "get value" +#: js/blocks/PitchBlocks.js:1749 +msgid "N^th Modal Pitch takes a number as an input as the n^th degree for the given mode. 0 is the first position, 1 is the second, -1 is the note before the first etc." msgstr "" -#: js/DictBlocks.js:215 -#: js/DictBlocks.js:216 -#: js/DictBlocks.js:289 -#: js/DictBlocks.js:290 -#: js/DictBlocks.js:357 -#: js/DictBlocks.js:430 -#: js/DictBlocks.js:431 -msgid "key2" +#: js/blocks/PitchBlocks.js:1751 +msgid "The pitches change according to the mode specified without any need for respellings." msgstr "" -#: js/DictBlocks.js:271 -#: js/DictBlocks.js:411 -msgid "The Set-dict block sets a value in the dictionary for a specified key." +#: js/blocks/PitchBlocks.js:1790 +msgid "Scale Degree is a common convention in music. Scale Degree offers seven possible positions in the scale (1-7) and can be modified via accidentals." msgstr "" -#: js/DictBlocks.js:286 -#: js/DictBlocks.js:427 -#.TRANS: set a value in the dictionary for a given key -msgid "set value" +#: js/blocks/PitchBlocks.js:1792 +msgid "Scale Degree 1 is always the first pitch in a given scale, regardless of octave." msgstr "" -#: js/ExtrasBlocks.js:33 -msgid "fraction" +#: js/blocks/PitchBlocks.js:1814 +#.TRANS: step some number of notes in current musical scale +msgid "scalar step" msgstr "" -#: js/ExtrasBlocks.js:36 -msgid "Convert a float to a fraction" +#: js/blocks/PitchBlocks.js:1819 +msgid "The Scalar Step block (in combination with a Number block) will play the next pitch in a scale," msgstr "" -#: js/ExtrasBlocks.js:93 -msgid "save as ABC" +#: js/blocks/PitchBlocks.js:1821 +msgid "eg if the last note played was sol, Scalar Step 1 will play la." msgstr "" -#: js/ExtrasBlocks.js:96 -#: js/ExtrasBlocks.js:132 -#: js/ExtrasBlocks.js:168 -msgid "title" +#: js/blocks/PitchBlocks.js:1857 +msgid "The Pitch block specifies the pitch name and octave of a note that together determine the frequency of the note." msgstr "" -#: js/ExtrasBlocks.js:129 -msgid "save as Lilypond" +#: js/blocks/ProgramBlocks.js:33 +msgid "The Load-heap-from-app block loads the heap from a web page." msgstr "" -#: js/ExtrasBlocks.js:165 -msgid "save as SVG" +#: js/blocks/ProgramBlocks.js:44 +#.TRANS: load the heap contents from a URL +msgid "load heap from App" msgstr "" -#: js/ExtrasBlocks.js:216 -msgid "no background" +#: js/blocks/ProgramBlocks.js:95 +msgid "Error parsing JSON data:" msgstr "" -#: js/ExtrasBlocks.js:219 -msgid "The No background block eliminates the background from the saved SVG output." +#: js/blocks/ProgramBlocks.js:100 +msgid "404: Page not found" msgstr "" -#: js/ExtrasBlocks.js:247 -msgid "show blocks" +#: js/blocks/ProgramBlocks.js:133 +msgid "The Save-heap-to-app block saves the heap to a web page." msgstr "" -#: js/ExtrasBlocks.js:249 -msgid "The Show blocks block shows the blocks." +#: js/blocks/ProgramBlocks.js:144 +#.TRANS: save the heap contents to a URL +msgid "save heap to App" msgstr "" -#: js/ExtrasBlocks.js:274 -msgid "hide blocks" +#: js/blocks/ProgramBlocks.js:189 +msgid "Cannot find a valid heap for" msgstr "" -#: js/ExtrasBlocks.js:276 -msgid "The Hide blocks block hides the blocks." +#: js/blocks/ProgramBlocks.js:206 +msgid "The Load-heap block loads the heap from a file." msgstr "" -#: js/ExtrasBlocks.js:305 -#: js/ExtrasBlocks.js:335 -msgid "The Space block is used to add space between blocks." +#: js/blocks/ProgramBlocks.js:217 +#.TRANS: load the heap from a file +msgid "load heap" msgstr "" -#: js/ExtrasBlocks.js:373 -msgid "wait" +#: js/blocks/ProgramBlocks.js:270 +msgid "The file you selected does not contain a valid heap." msgstr "" -#: js/ExtrasBlocks.js:376 -msgid "The Wait block pauses the program for a specified number of seconds." +#: js/blocks/ProgramBlocks.js:275 +msgid "The loadHeap block needs a loadFile block." msgstr "" -#: js/ExtrasBlocks.js:430 -#: plugins/facebook.rtp:30 -msgid "comment" +#: js/blocks/ProgramBlocks.js:291 +msgid "The Set-heap block loads the heap." msgstr "" -#: js/ExtrasBlocks.js:466 -msgid "print" +#: js/blocks/ProgramBlocks.js:340 +msgid "The block you selected does not contain a valid heap." msgstr "" -#: js/ExtrasBlocks.js:473 -msgid "The Print block displays text at the top of the screen." +#: js/blocks/ProgramBlocks.js:343 +msgid "The Set heap block needs a heap." msgstr "" -#: js/ExtrasBlocks.js:579 -msgid "display grid" +#: js/blocks/ProgramBlocks.js:360 +msgid "The Load-dictionary block loads a dictionary from a file." msgstr "" -#: js/ExtrasBlocks.js:584 -msgid "The Display Grid Block changes the grid type" +#: js/blocks/ProgramBlocks.js:372 +#.TRANS: load a dictionary from a file +msgid "load dictionary" msgstr "" -#: js/ExtrasBlocks.js:686 -#: js/ExtrasBlocks.js:705 -#: js/ExtrasBlocks.js:728 -#: js/ExtrasBlocks.js:751 -#: js/ExtrasBlocks.js:769 -#: js/ExtrasBlocks.js:788 -#: js/ExtrasBlocks.js:807 -#: js/ExtrasBlocks.js:826 -msgid "unknown" +#: js/blocks/ProgramBlocks.js:390 +#: js/blocks/ProgramBlocks.js:658 +#: js/blocks/ToneBlocks.js:1025 +msgid "file" msgstr "" -#: js/SensorsBlocks.js:36 -msgid "The Input block prompts for keyboard input." +#: js/blocks/ProgramBlocks.js:444 +msgid "The file you selected does not contain a valid dictionary." msgstr "" -#: js/SensorsBlocks.js:46 -msgid "input" +#: js/blocks/ProgramBlocks.js:449 +msgid "The load dictionary block needs a load file block." msgstr "" -#: js/SensorsBlocks.js:64 -msgid "Input a value" +#: js/blocks/ProgramBlocks.js:466 +msgid "The Set-dictionary block loads a dictionary." msgstr "" -#: js/SensorsBlocks.js:126 -msgid "input value" +#: js/blocks/ProgramBlocks.js:477 +#.TRANS: load a dictionary from a JSON +msgid "set dictionary" msgstr "" -#: js/SensorsBlocks.js:131 -msgid "The Input-value block stores the input." +#: js/blocks/ProgramBlocks.js:546 +msgid "The block you selected does not contain a valid dictionary." msgstr "" -#: js/SensorsBlocks.js:238 -msgid "loudness" +#: js/blocks/ProgramBlocks.js:550 +msgid "The set dictionary block needs a dictionary." msgstr "" -#: js/SensorsBlocks.js:245 -msgid "The Loudness block returns the volume detected by the microphone." +#: js/blocks/ProgramBlocks.js:567 +msgid "The Save-heap block saves the heap to a file." msgstr "" -#: js/SensorsBlocks.js:300 -msgid "click" +#: js/blocks/ProgramBlocks.js:578 +#.TRANS: save the heap to a file +msgid "save heap" msgstr "" -#: js/SensorsBlocks.js:306 -msgid "The Click block triggers an event if a mouse has been clicked." +#: js/blocks/ProgramBlocks.js:629 +msgid "The Save-dictionary block saves a dictionary to a file." msgstr "" -#: js/SensorsBlocks.js:313 -msgid "The Click block triggers an event if a turtle has been clicked." +#: js/blocks/ProgramBlocks.js:640 +#.TRANS: save a dictionary to a file +msgid "save dictionary" msgstr "" -#: js/SensorsBlocks.js:342 -msgid "cursor over" +#: js/blocks/ProgramBlocks.js:720 +msgid "The Open palette block opens a palette." msgstr "" -#: js/SensorsBlocks.js:387 -msgid "cursor out" +#: js/blocks/ProgramBlocks.js:727 +msgid "open palette" msgstr "" -#: js/SensorsBlocks.js:433 -msgid "cursor button down" +#: js/blocks/ProgramBlocks.js:785 +msgid "The Delete block block removes a block." msgstr "" -#: js/SensorsBlocks.js:477 -msgid "cursor button up" +#: js/blocks/ProgramBlocks.js:797 +#.TRANS: Move this block to the trash. +msgid "delete block" msgstr "" -#: js/SensorsBlocks.js:638 -msgid "The Get red block returns the red component of the pixel under the mouse." +#: js/blocks/ProgramBlocks.js:861 +msgid "The Move block block moves a block." msgstr "" -#: js/SensorsBlocks.js:644 -msgid "The Get red block returns the red component of the pixel under the turtle." +#: js/blocks/ProgramBlocks.js:869 +#.TRANS: Move the position of a block on the screen. +msgid "move block" msgstr "" -#: js/SensorsBlocks.js:685 -#: plugins/rodi.rtp:216 -msgid "pixel color" +#: js/blocks/ProgramBlocks.js:881 +#: js/blocks/ProgramBlocks.js:1048 +msgid "block number" msgstr "" -#: js/SensorsBlocks.js:690 -msgid "The Get pixel block returns the color of the pixel under the mouse." +#: js/blocks/ProgramBlocks.js:935 +#.TRANS: Run program beginning at this block. +msgid "run block" msgstr "" -#: js/SensorsBlocks.js:696 -msgid "The Get pixel block returns the color of the pixel under the turtle." +#: js/blocks/ProgramBlocks.js:1025 +msgid "The Dock block block connections two blocks." msgstr "" -#: js/SensorsBlocks.js:758 -msgid "time" +#: js/blocks/ProgramBlocks.js:1036 +#.TRANS: We can connect a block to another block. +msgid "connect blocks" msgstr "" -#: js/SensorsBlocks.js:804 -msgid "cursor y" +#: js/blocks/ProgramBlocks.js:1048 +msgid "target block" msgstr "" -#: js/SensorsBlocks.js:809 -msgid "The Cursor Y block returns the vertical position of the mouse." +#: js/blocks/ProgramBlocks.js:1048 +msgid "connection number" msgstr "" -#: js/SensorsBlocks.js:845 -msgid "cursor x" +#: js/blocks/ProgramBlocks.js:1140 +msgid "The Make block block creates a new block." msgstr "" -#: js/SensorsBlocks.js:850 -msgid "The Cursor X block returns the horizontal position of the mouse." +#: js/blocks/ProgramBlocks.js:1152 +#.TRANS: Create a new block +msgid "make block" msgstr "" -#: js/SensorsBlocks.js:886 -msgid "mouse button" +#: js/blocks/ProgramBlocks.js:1285 +msgid "Cannot find block" msgstr "" -#: js/SensorsBlocks.js:888 -msgid "The Mouse-button block returns True if the mouse button is pressed." +#: js/blocks/ProgramBlocks.js:1304 +#: js/blocks/ProgramBlocks.js:1313 +msgid "Warning: block argument type mismatch" msgstr "" -#: js/SensorsBlocks.js:934 -msgid "to ASCII" +#: js/blocks/ProgramBlocks.js:1347 +msgid "The Open project block is used to open a project from a web page." msgstr "" -#: js/SensorsBlocks.js:938 -msgid "The To ASCII block converts numbers to letters." +#: js/blocks/ProgramBlocks.js:1357 +msgid "open project" msgstr "" -#: js/SensorsBlocks.js:1005 -msgid "The Keyboard block returns computer keyboard input." +#: js/blocks/ProgramBlocks.js:1410 +msgid "Please enter a valid URL." msgstr "" -#: js/IntervalsActions.js:216 -msgid "Adding missing pitch number 0." +#: js/blocks/ToneBlocks.js:34 +msgid "oscillator" msgstr "" -#: js/IntervalsActions.js:224 -msgid "Ignoring pitch numbers less than zero or greater than eleven." +#: js/blocks/ToneBlocks.js:42 +#: js/blocks/WidgetBlocks.js:179 +#: js/widgets/timbre.js:1558 +#: js/widgets/timbre.js:1808 +#.TRANS: there are different types (sine, triangle, square...) of oscillators. +#.TRANS: type of filter, e.g., lowpass, highpass, etc. +msgid "type" msgstr "" -#: js/IntervalsActions.js:230 -msgid "Ignoring duplicate pitch numbers." +#: js/blocks/ToneBlocks.js:44 +#: js/widgets/timbre.js:1562 +#.TRANS: Partials refers to the number of sine waves combined into the sound. +msgid "partials" msgstr "" -#: js/PitchActions.js:88 -msgid "The Scalar Step Block must be used inside of a Note Block." +#: js/blocks/ToneBlocks.js:76 +msgid "You are adding multiple oscillator blocks." msgstr "" -#: js/PitchActions.js:107 -msgid "The Scalar Step Block must be preceded by a Pitch Block." +#: js/blocks/ToneBlocks.js:144 +#: js/widgets/timbre.js:1225 +#.TRANS: a duo synthesizer combines a synth with a sequencer +msgid "duo synth" msgstr "" -#: js/DrumActions.js:231 -msgid "Noise Block: Did you mean to use a Note block?" +#: js/blocks/ToneBlocks.js:149 +msgid "The Duo synth block is a duo-frequency modulator used to define a timbre." msgstr "" -#: js/MeterActions.js:101 -#: js/MeterActions.js:139 -msgid "beats per minute must be greater than" +#: js/blocks/ToneBlocks.js:157 +#: js/widgets/timbre.js:1476 +msgid "vibrato rate" msgstr "" -#: js/MeterActions.js:111 -#: js/MeterActions.js:149 -msgid "maximum" +#: js/blocks/ToneBlocks.js:157 +msgid "vibrato intensity" msgstr "" -#: js/MeterActions.js:117 -#: js/MeterActions.js:155 -msgid "beats per minute is" +#: js/blocks/ToneBlocks.js:185 +#: js/widgets/timbre.js:1221 +#.TRANS: AM (amplitude modulation) synthesizer +msgid "AM synth" msgstr "" -#: js/ToneActions.js:134 -msgid "Vibrato intensity must be between 1 and 100." +#: js/blocks/ToneBlocks.js:189 +msgid "The AM synth block is an amplitude modulator used to define a timbre." msgstr "" -#: js/ToneActions.js:139 -msgid "Vibrato rate must be greater than 0." +#: js/blocks/ToneBlocks.js:224 +#: js/widgets/timbre.js:1223 +#.TRANS: FM (frequency modulation) synthesizer +msgid "FM synth" msgstr "" -#: js/ToneActions.js:192 -#: js/ToneActions.js:265 -#.TRANS: Depth is the intesity of the tremolo or chorus effect. -msgid "Depth is out of range." +#: js/blocks/ToneBlocks.js:228 +msgid "The FM synth block is a frequency modulator used to define a timbre." msgstr "" -#: js/ToneActions.js:301 -msgid "Distortion must be from 0 to 100." +#: js/blocks/ToneBlocks.js:262 +msgid "partial" msgstr "" -#: js/ToneActions.js:332 -#.TRANS: partials components in a harmonic series -msgid "Partial must be greater than or equal to 0." +#: js/blocks/ToneBlocks.js:265 +msgid "The Partial block is used to specify a weight for a specific partial harmonic." msgstr "" -#: js/ToneActions.js:378 -#: js/ToneActions.js:417 -#: js/ToneActions.js:456 -#: js/timbre.js:782 -msgid "Unable to use synth due to existing oscillator" +#: js/blocks/ToneBlocks.js:284 +#.TRANS: partials are weighted components in a harmonic series +msgid "Partial weight must be between 0 and 1." msgstr "" -#: js/ToneActions.js:388 -#: js/ToneActions.js:427 -msgid "The input cannot be negative." +#: js/blocks/ToneBlocks.js:297 +#.TRANS: partials are weighted components in a harmonic series +msgid "Partial block should be used inside of a Weighted-partials block." msgstr "" -#: js/DictActions.js:75 -#: js/DictActions.js:153 -#: js/DictActions.js:188 -msgid "font" +#: js/blocks/ToneBlocks.js:325 +#.TRANS: partials are weighted components in a harmonic series +msgid "weighted partials" msgstr "" -#: js/musicutils.js:363 -#: js/musicutils.js:471 -#: js/pitchdrummatrix.js:151 -#: js/musickeyboard.js:2563 -msgid "rest" +#: js/blocks/ToneBlocks.js:383 +msgid "The Harmonic block will add harmonics to the contained notes." msgstr "" -#: js/musicutils.js:565 -#.TRANS: ordinal number. Please keep exactly one space between each number. -msgid "1st 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th" +#: js/blocks/ToneBlocks.js:390 +#.TRANS: A harmonic is an overtone. +msgid "harmonic" msgstr "" -#: js/musicutils.js:629 -#: js/musicutils.js:812 -#: js/musicutils.js:911 -#.TRANS: augmented is a music term related to intervals -msgid "augmented" +#: js/blocks/ToneBlocks.js:431 +msgid "The Distortion block adds distortion to the pitch." msgstr "" -#: js/musicutils.js:631 -#: js/musicutils.js:813 -#: js/musicutils.js:910 -#.TRANS: diminished is a music term related to intervals and mode -msgid "diminished" +#: js/blocks/ToneBlocks.js:438 +#: js/widgets/timbre.js:2100 +#.TRANS: distortion is an alteration in the sound +msgid "distortion" msgstr "" -#: js/musicutils.js:639 -#.TRANS: twelve semi-tone scale for music -msgid "chromatic" +#: js/blocks/ToneBlocks.js:487 +msgid "The Tremolo block adds a wavering effect." msgstr "" -#: js/musicutils.js:640 -msgid "algerian" +#: js/blocks/ToneBlocks.js:495 +#: js/widgets/timbre.js:2092 +#.TRANS: a wavering effect in a musical tone +msgid "tremolo" msgstr "" -#: js/musicutils.js:641 -msgid "spanish" +#: js/blocks/ToneBlocks.js:500 +#: js/blocks/ToneBlocks.js:569 +#: js/blocks/ToneBlocks.js:630 +#: js/blocks/ToneBlocks.js:689 +#: js/widgets/timbre.js:2134 +#: js/widgets/timbre.js:2222 +#: js/widgets/timbre.js:2317 +#: js/widgets/timbre.js:2419 +#.TRANS: rate at which tremolo wavers +msgid "rate" msgstr "" -#: js/musicutils.js:643 -#.TRANS: modal scale in music -msgid "octatonic" +#: js/blocks/ToneBlocks.js:502 +#: js/blocks/ToneBlocks.js:630 +#: js/widgets/timbre.js:2137 +#: js/widgets/timbre.js:2328 +#.TRANS: amplitude of tremolo waver +msgid "depth" msgstr "" -#: js/musicutils.js:645 -#.TRANS: harmonic major scale in music -msgid "harmonic major" +#: js/blocks/ToneBlocks.js:559 +msgid "The Phaser block adds a sweeping sound." msgstr "" -#: js/musicutils.js:647 -#.TRANS: natural minor scales in music -msgid "natural minor" +#: js/blocks/ToneBlocks.js:566 +#: js/widgets/timbre.js:2098 +#.TRANS: alter the phase of the sound +msgid "phaser" msgstr "" -#: js/musicutils.js:649 -#.TRANS: harmonic minor scale in music -msgid "harmonic minor" +#: js/blocks/ToneBlocks.js:569 +#: js/turtleactions/IntervalsActions.js:114 +#: js/widgets/timbre.js:2422 +msgid "octaves" msgstr "" -#: js/musicutils.js:651 -#.TRANS: melodic minor scale in music -msgid "melodic minor" +#: js/blocks/ToneBlocks.js:569 +#: js/widgets/timbre.js:2425 +msgid "base frequency" msgstr "" -#: js/musicutils.js:655 -#.TRANS: modal scale for music -msgid "dorian" +#: js/blocks/ToneBlocks.js:619 +msgid "The Chorus block adds a chorus effect." msgstr "" -#: js/musicutils.js:657 -#.TRANS: modal scale for music -msgid "phrygian" +#: js/blocks/ToneBlocks.js:627 +#: js/widgets/timbre.js:2096 +#.TRANS: musical effect to simulate a choral sound +msgid "chorus" msgstr "" -#: js/musicutils.js:659 -#.TRANS: modal scale for music -msgid "lydian" +#: js/blocks/ToneBlocks.js:630 +msgid "delay" msgstr "" -#: js/musicutils.js:661 -#.TRANS: modal scale for music -msgid "mixolydian" +#: js/blocks/ToneBlocks.js:678 +msgid "The Vibrato block adds a rapid, slight variation in pitch." msgstr "" -#: js/musicutils.js:665 -#.TRANS: modal scale for music -msgid "locrian" +#: js/blocks/ToneBlocks.js:686 +#: js/widgets/timbre.js:2094 +#.TRANS: a rapid, slight variation in pitch +msgid "vibrato" msgstr "" -#: js/musicutils.js:667 -#.TRANS: minor jazz scale for music -msgid "jazz minor" +#: js/blocks/ToneBlocks.js:689 +#: js/widgets/timbre.js:2221 +msgid "intensity" msgstr "" -#: js/musicutils.js:669 -#.TRANS: bebop scale for music -msgid "bebop" +#: js/blocks/ToneBlocks.js:733 +#.TRANS: select synthesizer +msgid "set synth" msgstr "" -#: js/musicutils.js:670 -msgid "arabic" +#: js/blocks/ToneBlocks.js:804 +msgid "synth name" msgstr "" -#: js/musicutils.js:671 -msgid "byzantine" +#: js/blocks/ToneBlocks.js:842 +msgid "set default instrument" msgstr "" -#: js/musicutils.js:673 -#.TRANS: musical scale for music by Verdi -msgid "enigmatic" +#: js/blocks/ToneBlocks.js:895 +#: js/blocks/ToneBlocks.js:943 +#.TRANS: set the characteristics of a custom instrument +msgid "set instrument" msgstr "" -#: js/musicutils.js:674 -msgid "ethiopian" +#: js/blocks/ToneBlocks.js:898 +#: js/blocks/ToneBlocks.js:926 +#: js/blocks/ToneBlocks.js:932 +msgid "The Set instrument block selects a voice for the synthesizer," msgstr "" -#: js/musicutils.js:676 -#.TRANS: Ethiopic scale for music -msgid "geez" +#: js/blocks/ToneBlocks.js:900 +#: js/blocks/ToneBlocks.js:934 +msgid "eg guitar piano violin or cello." msgstr "" -#: js/musicutils.js:677 -msgid "hindu" +#: js/blocks/ToneBlocks.js:1015 +msgid "Import a sound file to use as an instrument and set its pitch center." msgstr "" -#: js/musicutils.js:678 -msgid "hungarian" +#: js/blocks/ToneBlocks.js:1110 +msgid "Upload a sound file to connect with the sample block." msgstr "" -#: js/musicutils.js:680 -#.TRANS: minor Romanian scale for music -msgid "romanian minor" +#: js/blocks/VolumeBlocks.js:35 +msgid "synth volume" msgstr "" -#: js/musicutils.js:681 -msgid "spanish gypsy" +#: js/blocks/VolumeBlocks.js:39 +msgid "The Synth volume block returns the current volume of the current synthesizer." msgstr "" -#: js/musicutils.js:683 -#.TRANS: musical scale for Mid-Eastern music -msgid "maqam" +#: js/blocks/VolumeBlocks.js:105 +msgid "master volume" msgstr "" -#: js/musicutils.js:685 -#.TRANS: minor blues scale for music -msgid "minor blues" +#: js/blocks/VolumeBlocks.js:109 +msgid "The Master volume block returns the master volume." msgstr "" -#: js/musicutils.js:687 -#.TRANS: major blues scale for music -msgid "major blues" +#: js/blocks/VolumeBlocks.js:355 +#: js/blocks/VolumeBlocks.js:524 +msgid "set synth volume" msgstr "" -#: js/musicutils.js:688 -msgid "whole tone" +#: js/blocks/VolumeBlocks.js:362 +#: js/blocks/VolumeBlocks.js:545 +msgid "synth" msgstr "" -#: js/musicutils.js:690 -#.TRANS: pentatonic is a general term that means "five note scale". This scale is typically known as "minor pentatonic" -msgid "minor pentatonic" +#: js/blocks/VolumeBlocks.js:403 +#: js/blocks/VolumeBlocks.js:577 +#: js/blocks/VolumeBlocks.js:740 +#: js/turtleactions/VolumeActions.js:173 +msgid "Setting volume to 0." msgstr "" -#: js/musicutils.js:692 -#.TRANS: pentatonic is a general term that means "five note scale". This scale is typically known as "major pentatonic" -msgid "major pentatonic" +#: js/blocks/VolumeBlocks.js:440 +msgid "Synth not found" msgstr "" -#: js/musicutils.js:693 -msgid "chinese" +#: js/blocks/VolumeBlocks.js:494 +msgid "set drum volume" msgstr "" -#: js/musicutils.js:694 -msgid "egyptian" +#: js/blocks/VolumeBlocks.js:530 +msgid "The Set synth volume block will change the volume of a particular synth," msgstr "" -#: js/musicutils.js:696 -#.TRANS: https://en.wikipedia.org/wiki/Hirajoshi_scale NOTE: There are three different versions of this scale -msgid "hirajoshi" +#: js/blocks/VolumeBlocks.js:532 +msgid "eg guitar violin snare drum etc." msgstr "" -#: js/musicutils.js:697 -msgid "Japan" +#: js/blocks/VolumeBlocks.js:534 +msgid "The default volume is 50." msgstr "" -#: js/musicutils.js:699 -#.TRANS: https://en.wikipedia.org/wiki/In_scale and https://en.wikipedia.org/wiki/Sakura_Sakura -msgid "in" +#: js/blocks/VolumeBlocks.js:536 +msgid "The range is 0 for silence to 100 for full volume." msgstr "" -#: js/musicutils.js:701 -#.TRANS: https://en.wikipedia.org/wiki/Miny%C5%8D_scale -msgid "minyo" +#: js/blocks/VolumeBlocks.js:597 +msgid "set panning" msgstr "" -#: js/musicutils.js:703 -#.TRANS: Italian mathematician -msgid "fibonacci" +#: js/blocks/VolumeBlocks.js:603 +msgid "The Set Panning block sets the panning for all synthesizers." msgstr "" -#: js/musicutils.js:708 -#: js/musicutils.js:1106 -#.TRANS: lowpass filter -msgid "lowpass" +#: js/blocks/VolumeBlocks.js:625 +msgid "Warning: Sound is coming out from only the left or right side." msgstr "" -#: js/musicutils.js:710 -#: js/musicutils.js:1107 -#.TRANS: bandpass filter -msgid "bandpass" +#: js/blocks/VolumeBlocks.js:647 +#: js/blocks/VolumeBlocks.js:695 +msgid "set master volume" msgstr "" -#: js/musicutils.js:712 -#: js/musicutils.js:1108 -#.TRANS: high-shelf filter -msgid "highshelf" +#: js/blocks/VolumeBlocks.js:653 +msgid "The Set master volume block sets the volume for all synthesizers." msgstr "" -#: js/musicutils.js:714 -#: js/musicutils.js:1109 -#.TRANS: low-shelf filter -msgid "lowshelf" +#: js/blocks/VolumeBlocks.js:784 +msgid "The Set relative volume block changes the volume of the contained notes." msgstr "" -#: js/musicutils.js:716 -#: js/musicutils.js:1110 -#.TRANS: notch-shelf filter -msgid "notch" +#: js/blocks/VolumeBlocks.js:791 +msgid "set relative volume" msgstr "" -#: js/musicutils.js:718 -#: js/musicutils.js:1111 -#.TRANS: all-pass filter -msgid "allpass" +#: js/blocks/VolumeBlocks.js:857 +msgid "decrescendo" msgstr "" -#: js/musicutils.js:720 -#: js/musicutils.js:1112 -#.TRANS: peaking filter -msgid "peaking" +#: js/blocks/VolumeBlocks.js:921 +msgid "crescendo" msgstr "" -#: js/musicutils.js:731 -#: js/synthutils.js:58 -#.TRANS: musical instrument -msgid "violin" +#: js/blocks/WidgetBlocks.js:81 +#.TRANS: sound envelope (ADSR) +msgid "envelope" msgstr "" -#: js/musicutils.js:732 -#: js/synthutils.js:60 -#.TRANS: viola musical instrument -msgid "viola" +#: js/blocks/WidgetBlocks.js:89 +#.TRANS: Attack time is the time taken for initial run-up of level from nil to peak, beginning when the key is first pressed. +msgid "attack" msgstr "" -#: js/musicutils.js:733 -#: js/synthutils.js:98 -#.TRANS: xylophone musical instrument -msgid "xylophone" +#: js/blocks/WidgetBlocks.js:91 +#.TRANS: Decay time is the time taken for the subsequent run down from the attack level to the designated sustain level. +msgid "decay" msgstr "" -#: js/musicutils.js:734 -#: js/synthutils.js:120 -#.TRANS: vibraphone musical instrument -msgid "vibraphone" +#: js/blocks/WidgetBlocks.js:93 +#.TRANS: Sustain level is the level during the main sequence of the sound's duration, until the key is released. +msgid "sustain" msgstr "" -#: js/musicutils.js:735 -#: js/synthutils.js:62 -#.TRANS: musical instrument -msgid "cello" +#: js/blocks/WidgetBlocks.js:95 +#.TRANS: Release time is the time taken for the level to decay from the sustain level to zero after the key is released. +msgid "release" msgstr "" -#: js/musicutils.js:737 -#: js/synthutils.js:66 -#.TRANS: viola musical instrument -msgid "double bass" +#: js/blocks/WidgetBlocks.js:113 +msgid "Attack value should be from 0 to 100." msgstr "" -#: js/musicutils.js:738 -#: js/synthutils.js:68 -#: js/rhythmruler.js:2119 -#.TRANS: musical instrument -msgid "guitar" +#: js/blocks/WidgetBlocks.js:116 +msgid "Decay value should be from 0 to 100." msgstr "" -#: js/musicutils.js:739 -#: js/synthutils.js:70 -#.TRANS: musical instrument -msgid "acoustic guitar" +#: js/blocks/WidgetBlocks.js:119 +msgid "Sustain value should be from 0 to 100." msgstr "" -#: js/musicutils.js:740 -#: js/synthutils.js:72 -#.TRANS: musical instrument -msgid "flute" +#: js/blocks/WidgetBlocks.js:122 +msgid "Release value should be from 0-100." msgstr "" -#: js/musicutils.js:741 -#: js/synthutils.js:74 -#.TRANS: musical instrument -msgid "clarinet" +#: js/blocks/WidgetBlocks.js:140 +msgid "You are adding multiple envelope blocks." msgstr "" -#: js/musicutils.js:742 -#: js/synthutils.js:76 -#.TRANS: musical instrument -msgid "saxophone" +#: js/blocks/WidgetBlocks.js:171 +#.TRANS: a filter removes some unwanted components from a signal +msgid "filter" msgstr "" -#: js/musicutils.js:743 -#: js/synthutils.js:78 -#.TRANS: musical instrument -msgid "tuba" +#: js/blocks/WidgetBlocks.js:181 +#: js/widgets/timbre.js:1818 +#.TRANS: rolloff is the steepness of a change in frequency. +msgid "rolloff" msgstr "" -#: js/musicutils.js:744 -#: js/synthutils.js:80 -#.TRANS: musical instrument -msgid "trumpet" +#: js/blocks/WidgetBlocks.js:213 +#.TRANS: rolloff is the steepness of a change in frequency. +msgid "Rolloff value should be either -12, -24, -48, or -96 decibels/octave." msgstr "" -#: js/musicutils.js:745 -#: js/synthutils.js:82 -#.TRANS: musical instrument -msgid "oboe" +#: js/blocks/WidgetBlocks.js:252 +msgid "The Temperament tool is used to define custom tuning." msgstr "" -#: js/musicutils.js:746 -#: js/synthutils.js:84 -#.TRANS: musical instrument -msgid "trombone" +#: js/blocks/WidgetBlocks.js:332 +#: js/blocks/WidgetBlocks.js:1573 +#: js/widgets/sampler.js:547 +msgid "Upload a sample and adjust its pitch center." msgstr "" -#: js/musicutils.js:747 -#: js/synthutils.js:100 -#.TRANS: polytone synthesizer -msgid "electronic synth" +#: js/blocks/WidgetBlocks.js:339 +#.TRANS: the speed at music is should be played. +msgid "sampler" msgstr "" -#: js/musicutils.js:748 -#: js/synthutils.js:102 -#.TRANS: simple monotone synthesizer -msgid "simple 1" +#: js/blocks/WidgetBlocks.js:517 +msgid "The Meter block opens a tool to select strong beats for the meter." msgstr "" -#: js/musicutils.js:749 -msgid "simple 2" +#: js/blocks/WidgetBlocks.js:573 +msgid "The oscilloscope block opens a tool to visualize waveforms." msgstr "" -#: js/musicutils.js:750 -msgid "simple 3" +#: js/blocks/WidgetBlocks.js:578 +msgid "oscilloscope" msgstr "" -#: js/musicutils.js:751 -msgid "simple 4" +#: js/blocks/WidgetBlocks.js:645 +msgid "The Custom mode block opens a tool to explore musical mode (the spacing of the notes in a scale)." msgstr "" -#: js/musicutils.js:753 -#: js/synthutils.js:49 -#.TRANS: brown noise synthesizer -msgid "brown noise" +#: js/blocks/WidgetBlocks.js:651 +#.TRANS: musical mode is the pattern of half-steps in an octave, e.g., Major or Minor modes +msgid "custom mode" msgstr "" -#: js/musicutils.js:754 -#: js/synthutils.js:51 -#.TRANS: pink noise synthesizer -msgid "pink noise" +#: js/blocks/WidgetBlocks.js:700 +msgid "The Tempo block opens a metronome to visualize the beat." msgstr "" -#: js/musicutils.js:756 -#: js/synthutils.js:127 -#: js/rhythmruler.js:1670 -#: js/rhythmruler.js:1928 -#.TRANS: musical instrument -msgid "snare drum" +#: js/blocks/WidgetBlocks.js:762 +msgid "The Arpeggio Widget is used to compose chord sequences." msgstr "" -#: js/musicutils.js:757 -#: js/synthutils.js:129 -#.TRANS: musical instrument -msgid "kick drum" +#: js/blocks/WidgetBlocks.js:837 +msgid "The Pitch drum matrix is used to map pitches to drum sounds." msgstr "" -#: js/musicutils.js:758 -#: js/synthutils.js:131 -#.TRANS: musical instrument -msgid "tom tom" +#: js/blocks/WidgetBlocks.js:842 +#.TRANS: makes a mapping between pitches and drum sounds +msgid "pitch-drum mapper" msgstr "" -#: js/musicutils.js:759 -#: js/synthutils.js:133 -#.TRANS: musical instrument -msgid "floor tom" +#: js/blocks/WidgetBlocks.js:891 +msgid "You must have at least one pitch block and one drum block in the matrix." msgstr "" -#: js/musicutils.js:760 -#: js/synthutils.js:135 -#.TRANS: musical instrument -msgid "bass drum" +#: js/blocks/WidgetBlocks.js:920 +msgid "The Pitch slider tool to is used to generate pitches at selected frequencies." msgstr "" -#: js/musicutils.js:761 -#: js/synthutils.js:137 -#.TRANS: a drum made from an inverted cup -msgid "cup drum" +#: js/blocks/WidgetBlocks.js:925 +#.TRANS: widget to generate pitches using a slider +msgid "pitch slider" msgstr "" -#: js/musicutils.js:762 -#: js/synthutils.js:139 -#.TRANS: musical instrument -msgid "darbuka drum" +#: js/blocks/WidgetBlocks.js:977 +msgid "chromatic keyboard" msgstr "" -#: js/musicutils.js:763 -#: js/synthutils.js:143 -#.TRANS: musical instrument -msgid "hi hat" +#: js/blocks/WidgetBlocks.js:1011 +#: js/blocks/WidgetBlocks.js:1077 +#.TRANS: widget to generate pitches using a slider +msgid "music keyboard" msgstr "" -#: js/musicutils.js:764 -#: js/synthutils.js:145 -#.TRANS: a small metal bell -msgid "ride bell" +#: js/blocks/WidgetBlocks.js:1062 +#: js/blocks/WidgetBlocks.js:1069 +msgid "The Music keyboard block opens a piano keyboard that can be used to create notes." msgstr "" -#: js/musicutils.js:765 -#: js/synthutils.js:147 -#.TRANS: musical instrument -msgid "cow bell" +#: js/blocks/WidgetBlocks.js:1128 +msgid "The Pitch staircase tool to is used to generate pitches from a given ratio." msgstr "" -#: js/musicutils.js:766 -msgid "japanese drum" +#: js/blocks/WidgetBlocks.js:1135 +#.TRANS: generate a progressive sequence of pitches +msgid "pitch staircase" msgstr "" -#: js/musicutils.js:767 -#: js/synthutils.js:153 -#.TRANS: musical instrument -msgid "japanese bell" +#: js/blocks/WidgetBlocks.js:1222 +msgid "The Rhythm Maker block opens a tool to create drum machines." msgstr "" -#: js/musicutils.js:768 -#: js/synthutils.js:149 -#.TRANS: musical instrument -msgid "triangle bell" +#: js/blocks/WidgetBlocks.js:1291 +msgid "G major scale" msgstr "" -#: js/musicutils.js:769 -#: js/synthutils.js:151 -#.TRANS: musical instrument -msgid "finger cymbals" +#: js/blocks/WidgetBlocks.js:1326 +msgid "C major scale" msgstr "" -#: js/musicutils.js:770 -#: js/synthutils.js:155 -#.TRANS: a musically tuned set of bells -msgid "chime" +#: js/blocks/WidgetBlocks.js:1366 +msgid "The Phrase Maker block opens a tool to create musical phrases." msgstr "" -#: js/musicutils.js:771 -#: js/synthutils.js:157 -#.TRANS: a musical instrument -msgid "gong" +#: js/blocks/WidgetBlocks.js:1373 +#.TRANS: assigns pitch to a sequence of beats to generate a melody +msgid "phrase maker" msgstr "" -#: js/musicutils.js:772 -#: js/synthutils.js:159 -#.TRANS: sound effect -msgid "clang" +#: js/blocks/WidgetBlocks.js:1444 +msgid "You must have at least one pitch block and one rhythm block in the matrix." msgstr "" -#: js/musicutils.js:773 -#: js/synthutils.js:161 -#.TRANS: sound effect -msgid "crash" +#: js/blocks/WidgetBlocks.js:1503 +msgid "The Status block opens a tool for inspecting the status of Music Blocks as it is running." msgstr "" -#: js/musicutils.js:774 -#: js/synthutils.js:163 -#.TRANS: sound effect -msgid "bottle" +#: js/blocks/WidgetBlocks.js:1580 +#.TRANS: AI-generated music +msgid "aimusic" msgstr "" -#: js/musicutils.js:775 -#: js/synthutils.js:165 -#.TRANS: sound effect -msgid "clap" +#: js/turtleactions/MeterActions.js:101 +#: js/turtleactions/MeterActions.js:139 +msgid "beats per minute must be greater than" msgstr "" -#: js/musicutils.js:776 -#: js/synthutils.js:167 -#.TRANS: sound effect -msgid "slap" +#: js/turtleactions/MeterActions.js:111 +#: js/turtleactions/MeterActions.js:149 +msgid "maximum" msgstr "" -#: js/musicutils.js:777 -#: js/synthutils.js:169 -#.TRANS: sound effect -msgid "splash" +#: js/turtleactions/MeterActions.js:117 +#: js/turtleactions/MeterActions.js:155 +msgid "beats per minute is" msgstr "" -#: js/musicutils.js:778 -#: js/synthutils.js:171 -#.TRANS: sound effect -msgid "bubbles" +#: js/turtleactions/DictActions.js:75 +#: js/turtleactions/DictActions.js:142 +#: js/turtleactions/DictActions.js:172 +msgid "font" msgstr "" -#: js/musicutils.js:779 -#: js/synthutils.js:173 -#.TRANS: sound effect -msgid "raindrop" +#: js/turtleactions/DictActions.js:255 +msgid "Dictionary with this name does not exist" msgstr "" -#: js/musicutils.js:780 -#: js/synthutils.js:175 -#.TRANS: animal sound effect -msgid "cat" +#: js/turtleactions/DictActions.js:259 +msgid "Key with this name does not exist in " msgstr "" -#: js/musicutils.js:781 -#: js/synthutils.js:177 -#.TRANS: animal sound effect -msgid "cricket" +#: js/turtleactions/DrumActions.js:227 +msgid "Noise Block: Did you mean to use a Note block?" msgstr "" -#: js/musicutils.js:782 -#: js/synthutils.js:179 -#.TRANS: animal sound effect -msgid "dog" +#: js/turtleactions/IntervalsActions.js:113 +msgid "one" msgstr "" -#: js/musicutils.js:784 -#: js/synthutils.js:86 -#.TRANS: musical instrument -msgid "banjo" +#: js/turtleactions/IntervalsActions.js:113 +msgid "two" msgstr "" -#: js/musicutils.js:785 -#: js/synthutils.js:88 -#.TRANS: musical instrument -msgid "koto" +#: js/turtleactions/IntervalsActions.js:113 +msgid "three" msgstr "" -#: js/musicutils.js:786 -#: js/synthutils.js:90 -#.TRANS: musical instrument -msgid "dulcimer" +#: js/turtleactions/IntervalsActions.js:113 +msgid "four" msgstr "" -#: js/musicutils.js:787 -#: js/synthutils.js:92 -#.TRANS: musical instrument -msgid "electric guitar" +#: js/turtleactions/IntervalsActions.js:113 +msgid "five" msgstr "" -#: js/musicutils.js:788 -#: js/synthutils.js:94 -#.TRANS: musical instrument -msgid "bassoon" +#: js/turtleactions/IntervalsActions.js:113 +msgid "six" msgstr "" -#: js/musicutils.js:789 -#: js/synthutils.js:96 -#.TRANS: musical instrument -msgid "celeste" +#: js/turtleactions/IntervalsActions.js:113 +msgid "seven" msgstr "" -#: js/musicutils.js:791 -#: js/musicutils.js:1123 -#: js/musicutils.js:1131 -#: js/temperament.js:650 -#.TRANS: musical temperament -msgid "equal" +#: js/turtleactions/IntervalsActions.js:113 +msgid "eight" msgstr "" -#: js/musicutils.js:793 -#: js/musicutils.js:1125 -#: js/musicutils.js:1133 -#.TRANS: musical temperament -msgid "Pythagorean" +#: js/turtleactions/IntervalsActions.js:113 +msgid "nine" msgstr "" -#: js/musicutils.js:795 -#: js/musicutils.js:1124 -#: js/musicutils.js:1132 -#.TRANS: musical temperament -msgid "just intonation" +#: js/turtleactions/IntervalsActions.js:119 +msgid "a" msgstr "" -#: js/musicutils.js:797 -#: js/musicutils.js:1126 -#: js/musicutils.js:1127 -#: js/musicutils.js:1134 -#: js/musicutils.js:1135 -#.TRANS: musical temperament -msgid "meantone" +#: js/turtleactions/IntervalsActions.js:120 +msgid "below" msgstr "" -#: js/musicutils.js:814 -msgid "major 7th" +#: js/turtleactions/IntervalsActions.js:124 +msgid "above" msgstr "" -#: js/musicutils.js:815 -msgid "minor 7th" +#: js/turtleactions/IntervalsActions.js:131 +msgid "plus" msgstr "" -#: js/musicutils.js:816 -msgid "dominant 7th" +#: js/turtleactions/IntervalsActions.js:139 +msgid " below" msgstr "" -#: js/musicutils.js:817 -msgid "minor-major 7th" +#: js/turtleactions/IntervalsActions.js:257 +msgid "Adding missing pitch number 0." msgstr "" -#: js/musicutils.js:818 -msgid "fully-diminished 7th" +#: js/turtleactions/IntervalsActions.js:265 +msgid "Ignoring pitch numbers less than zero or greater than eleven." msgstr "" -#: js/musicutils.js:819 -msgid "half-diminished 7th" +#: js/turtleactions/IntervalsActions.js:271 +msgid "Ignoring duplicate pitch numbers." msgstr "" -#: js/musicutils.js:4379 -#: js/musicutils.js:4416 -msgid "current" +#: js/turtleactions/ToneActions.js:134 +msgid "Vibrato intensity must be between 1 and 100." msgstr "" -#: js/musicutils.js:4382 -#: js/musicutils.js:4407 -msgid "next" +#: js/turtleactions/ToneActions.js:139 +msgid "Vibrato rate must be greater than 0." msgstr "" -#: js/musicutils.js:4385 -#: js/musicutils.js:4412 -msgid "previous" +#: js/turtleactions/ToneActions.js:192 +#: js/turtleactions/ToneActions.js:265 +#.TRANS: Depth is the intesity of the tremolo or chorus effect. +msgid "Depth is out of range." msgstr "" -#: js/synthutils.js:104 -#.TRANS: simple monotone synthesizer -msgid "simple-2" +#: js/turtleactions/ToneActions.js:301 +msgid "Distortion must be from 0 to 100." msgstr "" -#: js/synthutils.js:106 -#.TRANS: simple monotone synthesizer -msgid "simple-3" +#: js/turtleactions/ToneActions.js:332 +#.TRANS: partials components in a harmonic series +msgid "Partial must be greater than or equal to 0." msgstr "" -#: js/synthutils.js:108 -#.TRANS: simple monotone synthesizer -msgid "simple-4" +#: js/turtleactions/ToneActions.js:378 +#: js/turtleactions/ToneActions.js:417 +#: js/turtleactions/ToneActions.js:456 +#: js/widgets/timbre.js:782 +msgid "Unable to use synth due to existing oscillator" msgstr "" -#: js/synthutils.js:141 -#.TRANS: musical instrument -msgid "taiko" +#: js/turtleactions/ToneActions.js:388 +#: js/turtleactions/ToneActions.js:427 +msgid "The input cannot be negative." msgstr "" -#: js/modewidget.js:86 -#: js/modewidget.js:88 -#: js/modewidget.js:642 -#: js/modewidget.js:644 -#: js/modewidget.js:712 -#: js/modewidget.js:714 -#: js/temperament.js:2078 -#: js/rhythmruler.js:189 -#: js/rhythmruler.js:1410 -#: js/rhythmruler.js:1412 -#: js/rhythmruler.js:1435 -#: js/rhythmruler.js:1437 -#: js/meterwidget.js:89 -#: js/meterwidget.js:91 +#: js/widgets/modewidget.js:86 +#: js/widgets/modewidget.js:88 +#: js/widgets/modewidget.js:642 +#: js/widgets/modewidget.js:644 +#: js/widgets/modewidget.js:712 +#: js/widgets/modewidget.js:714 +#: js/widgets/meterwidget.js:194 +#: js/widgets/meterwidget.js:196 +#: js/widgets/temperament.js:2236 +#: js/widgets/rhythmruler.js:457 +#: js/widgets/rhythmruler.js:1790 +#: js/widgets/rhythmruler.js:1792 +#: js/widgets/rhythmruler.js:1816 +#: js/widgets/rhythmruler.js:1818 msgid "Play all" msgstr "" -#: js/modewidget.js:115 -#: js/pitchstaircase.js:641 -#: js/phrasemaker.js:339 -#: js/pitchdrummatrix.js:94 -#: js/pitchslider.js:125 -#: js/temperament.js:2083 -#: js/musickeyboard.js:530 -#: js/timbre.js:756 -#: js/meterwidget.js:124 -#: js/arpeggio.js:103 +#: js/widgets/modewidget.js:115 +#: js/widgets/meterwidget.js:229 +#: js/widgets/pitchdrummatrix.js:166 +#: js/widgets/pitchslider.js:125 +#: js/widgets/pitchstaircase.js:641 +#: js/widgets/temperament.js:2244 +#: js/widgets/timbre.js:756 +#: js/widgets/arpeggio.js:103 +#: js/widgets/musickeyboard.js:688 +#: js/widgets/phrasemaker.js:550 msgid "Save" msgstr "" -#: js/modewidget.js:121 -#: js/pitchstaircase.js:686 -#: js/phrasemaker.js:356 -#: js/pitchdrummatrix.js:109 -#: js/musickeyboard.js:534 -#: js/rhythmruler.js:269 -#: js/arpeggio.js:118 +#: js/widgets/modewidget.js:121 +#: js/widgets/pitchdrummatrix.js:181 +#: js/widgets/pitchstaircase.js:686 +#: js/widgets/arpeggio.js:118 +#: js/widgets/musickeyboard.js:696 +#: js/widgets/phrasemaker.js:567 +#: js/widgets/rhythmruler.js:601 #.TRANS: clear all subdivisions from the ruler. msgid "Clear" msgstr "" -#: js/modewidget.js:127 +#: js/widgets/modewidget.js:127 msgid "Rotate counter clockwise" msgstr "" -#: js/modewidget.js:133 +#: js/widgets/modewidget.js:133 msgid "Rotate clockwise" msgstr "" -#: js/modewidget.js:139 +#: js/widgets/modewidget.js:139 msgid "Invert" msgstr "" -#: js/modewidget.js:145 -#: js/pitchstaircase.js:678 -#: js/rhythmruler.js:258 -#: js/timbre.js:963 +#: js/widgets/modewidget.js:145 +#: js/widgets/pitchstaircase.js:678 +#: js/widgets/timbre.js:963 +#: js/widgets/rhythmruler.js:578 msgid "Undo" msgstr "" -#: js/modewidget.js:163 +#: js/widgets/modewidget.js:163 #.TRANS: A circle of notes represents the musical mode. msgid "Click in the circle to select notes for the mode." msgstr "" -#: js/modewidget.js:1017 -#: js/pitchstaircase.js:580 -#: js/phrasemaker.js:4855 -#: js/temperament.js:1754 -#: js/rhythmruler.js:1865 -#: js/rhythmruler.js:2081 -#: js/tempo.js:414 +#: js/widgets/modewidget.js:1017 +#: js/widgets/pitchstaircase.js:580 +#: js/widgets/temperament.js:1929 +#: js/widgets/tempo.js:414 +#: js/widgets/phrasemaker.js:5356 +#: js/widgets/rhythmruler.js:2254 +#: js/widgets/rhythmruler.js:2472 msgid "New action block generated!" msgstr "" -#: js/oscilloscope.js:79 -msgid "Zoom In" -msgstr "" - -#: js/oscilloscope.js:88 -msgid "Zoom Out" -msgstr "" - -#: js/pitchstaircase.js:624 -msgid "Play chord" -msgstr "" - -#: js/pitchstaircase.js:632 -msgid "Play scale" +#: js/widgets/meterwidget.js:275 +msgid "Reset" msgstr "" -#: js/pitchstaircase.js:696 -msgid "Click on a note to create a new step." +#: js/widgets/meterwidget.js:301 +msgid "Click in the circle to select strong beats for the meter." msgstr "" -#: js/phrasemaker.js:363 -msgid "Export" +#: js/widgets/oscilloscope.js:79 +msgid "Zoom In" msgstr "" -#: js/phrasemaker.js:370 -msgid "Sort" +#: js/widgets/oscilloscope.js:88 +msgid "Zoom Out" msgstr "" -#: js/phrasemaker.js:373 -#: js/musickeyboard.js:559 -msgid "Add note" +#: js/widgets/pitchdrummatrix.js:356 +#: js/widgets/pitchdrummatrix.js:752 +msgid "Click in the grid to map notes to drums." msgstr "" -#: js/phrasemaker.js:764 -msgid "Click on the table to add notes." +#: js/widgets/pitchslider.js:103 +msgid "Move up" msgstr "" -#: js/phrasemaker.js:2414 -#: js/phrasemaker.js:2543 -msgid "tuplet value" +#: js/widgets/pitchslider.js:114 +msgid "Move down" msgstr "" -#: js/pitchdrummatrix.js:270 -#: js/pitchdrummatrix.js:639 -msgid "Click in the grid to map notes to drums." +#: js/widgets/pitchslider.js:136 +msgid "Click on the slider to create a note block." msgstr "" -#: js/pitchslider.js:103 -msgid "Move up" +#: js/widgets/pitchstaircase.js:624 +msgid "Play chord" msgstr "" -#: js/pitchslider.js:114 -msgid "Move down" +#: js/widgets/pitchstaircase.js:632 +msgid "Play scale" msgstr "" -#: js/pitchslider.js:136 -msgid "Click on the slider to create a note block." +#: js/widgets/pitchstaircase.js:696 +msgid "Click on a note to create a new step." msgstr "" -#: js/temperament.js:215 +#: js/widgets/temperament.js:321 msgid "back to 2:1 octave space" msgstr "" -#: js/temperament.js:323 +#: js/widgets/temperament.js:447 msgid "edit" msgstr "" -#: js/temperament.js:330 -#: js/temperament.js:332 -#: js/temperament.js:1336 -#: js/temperament.js:1338 +#: js/widgets/temperament.js:454 +#: js/widgets/temperament.js:456 +#: js/widgets/temperament.js:1493 +#: js/widgets/temperament.js:1495 msgid "close" msgstr "" -#: js/temperament.js:423 -#: js/temperament.js:736 -#: js/temperament.js:743 -#: js/temperament.js:845 -#: js/temperament.js:935 -#: js/temperament.js:942 -#: js/temperament.js:1015 -#: js/temperament.js:1284 -#: js/temperament.js:1354 -#: js/temperament.js:1430 +#: js/widgets/temperament.js:552 +#: js/widgets/temperament.js:877 +#: js/widgets/temperament.js:884 +#: js/widgets/temperament.js:986 +#: js/widgets/temperament.js:1080 +#: js/widgets/temperament.js:1087 +#: js/widgets/temperament.js:1160 +#: js/widgets/temperament.js:1433 +#: js/widgets/temperament.js:1511 +#: js/widgets/temperament.js:1596 msgid "done" msgstr "" -#: js/temperament.js:477 -#: js/temperament.js:482 -#: js/temperament.js:918 +#: js/widgets/temperament.js:610 +#: js/widgets/temperament.js:615 +#: js/widgets/temperament.js:1063 msgid "ratio" msgstr "" -#: js/temperament.js:483 +#: js/widgets/temperament.js:616 msgid "interval" msgstr "" -#: js/temperament.js:611 +#: js/widgets/temperament.js:744 msgid "non scalar" msgstr "" -#: js/temperament.js:650 +#: js/widgets/temperament.js:787 msgid "ratios" msgstr "" -#: js/temperament.js:650 +#: js/widgets/temperament.js:787 msgid "arbitrary" msgstr "" -#: js/temperament.js:719 +#: js/widgets/temperament.js:860 msgid "number of divisions" msgstr "" -#: js/temperament.js:741 -#: js/temperament.js:858 -#: js/temperament.js:940 -#: js/temperament.js:1033 +#: js/widgets/temperament.js:882 +#: js/widgets/temperament.js:999 +#: js/widgets/temperament.js:1085 +#: js/widgets/temperament.js:1178 msgid "preview" msgstr "" -#: js/temperament.js:788 +#: js/widgets/temperament.js:929 msgid "The Number of divisions is too large." msgstr "" -#: js/temperament.js:921 +#: js/widgets/temperament.js:1066 msgid "recursion" msgstr "" -#: js/temperament.js:1450 +#: js/widgets/temperament.js:1616 msgid "The octave ratio has changed. This changes temperament significantly." msgstr "" -#: js/temperament.js:2087 +#: js/widgets/temperament.js:2248 msgid "Table" msgstr "" -#: js/temperament.js:2185 +#: js/widgets/temperament.js:2356 msgid "Add pitches" msgstr "" -#: js/musickeyboard.js:570 -msgid "Metronome" +#: js/widgets/tempo.js:78 +#: js/widgets/tempo.js:97 +#: js/widgets/tempo.js:99 +#: js/widgets/aiwidget.js:134 +#: js/widgets/aiwidget.js:136 +#: js/widgets/rhythmruler.js:681 +#: js/widgets/rhythmruler.js:683 +#: js/widgets/rhythmruler.js:1864 +#: js/widgets/rhythmruler.js:1866 +#: js/widgets/sampler.js:180 +#: js/widgets/sampler.js:182 +msgid "Pause" msgstr "" -#: js/musickeyboard.js:1296 -#: plugins/rodi.rtp:193 -msgid "duration" +#: js/widgets/tempo.js:113 +msgid "Save tempo" msgstr "" -#: js/musickeyboard.js:2840 -msgid "New action blocks generated!" +#: js/widgets/tempo.js:144 +msgid "speed up" msgstr "" -#: js/musickeyboard.js:2841 -msgid "New action block generated" +#: js/widgets/tempo.js:150 +msgid "slow down" msgstr "" -#: js/musickeyboard.js:2984 -#: js/musickeyboard.js:2992 -msgid "MIDI device present." +#: js/widgets/tempo.js:194 +msgid "Adjust the tempo with the buttons." msgstr "" -#: js/musickeyboard.js:2995 -msgid "No MIDI device found." +#: js/widgets/tempo.js:261 +msgid "Please enter a number between 30 and 1000" msgstr "" -#: js/musickeyboard.js:3000 -msgid "Failed to get MIDI access in browser." +#: js/widgets/tempo.js:268 +#: js/widgets/tempo.js:271 +msgid "The beats per minute must be between 30 and 1000." msgstr "" -#: js/rhythmruler.js:202 -msgid "Save rhythms" +#: js/widgets/tempo.js:287 +msgid "The beats per minute must be below 1000." msgstr "" -#: js/rhythmruler.js:222 -msgid "Save drum machine" +#: js/widgets/tempo.js:303 +msgid "The beats per minute must be above 30" msgstr "" -#: js/rhythmruler.js:263 -#.TRANS: user can tap out a rhythm by clicking on a ruler. -msgid "Tap a rhythm" +#: js/widgets/timbre.js:766 +msgid "Synthesizer" msgstr "" -#: js/rhythmruler.js:342 -#: js/rhythmruler.js:344 -#: js/rhythmruler.js:1481 -#: js/rhythmruler.js:1483 -#: js/sampler.js:110 -#: js/sampler.js:112 -#: js/tempo.js:78 -#: js/tempo.js:97 -#: js/tempo.js:99 -msgid "Pause" +#: js/widgets/timbre.js:789 +msgid "Oscillator" msgstr "" -#: js/rhythmruler.js:478 -msgid "Click on the ruler to divide it." +#: js/widgets/timbre.js:840 +msgid "Envelope" msgstr "" -#: js/rhythmruler.js:603 -#: js/rhythmruler.js:605 -#: js/rhythmruler.js:804 -#: js/rhythmruler.js:806 -#: js/rhythmruler.js:1386 -#: js/rhythmruler.js:1388 -msgid "tap a rhythm" +#: js/widgets/timbre.js:886 +#: planet/js/GlobalTag.js:50 +#.TRANS: On the Planet, we use labels to tag projects. +msgid "Effects" msgstr "" -#: js/rhythmruler.js:1084 -msgid "Maximum value of 256 has been exceeded." +#: js/widgets/timbre.js:904 +msgid "Filter" msgstr "" -#: js/sampler.js:137 -msgid "Warning: Sample is bigger than 1MB." +#: js/widgets/timbre.js:946 +msgid "Add filter" msgstr "" -#: js/sampler.js:142 -msgid "Upload failed: Sample is not a .wav file." +#: js/widgets/timbre.js:987 +msgid "Click on buttons to open the timbre design tools." msgstr "" -#: js/sampler.js:164 -msgid "A new sample block was generated." +#: js/widgets/timbre.js:1273 +msgid "harmonicity" msgstr "" -#: js/sampler.js:255 -msgid "Upload sample" +#: js/widgets/timbre.js:1340 +#: js/widgets/timbre.js:1406 +msgid "modulation index" msgstr "" -#: js/sampler.js:306 -msgid "Save sample" +#: js/widgets/timbre.js:1484 +msgid "vibrato amount" msgstr "" -#: js/sampler.js:697 -#.TRANS: The reference tone is a sound used for comparison. -msgid "reference tone" +#: js/widgets/timbre.js:1919 +msgid "Filter already present." msgstr "" -#: js/tempo.js:113 -msgid "Save tempo" +#: js/widgets/timbre.js:2322 +msgid "delay (MS)" msgstr "" -#: js/tempo.js:144 -msgid "speed up" +#: js/widgets/timbre.js:2507 +msgid "distortion amount" msgstr "" -#: js/tempo.js:150 -msgid "slow down" +#: js/widgets/aiwidget.js:180 +#: js/widgets/sampler.js:227 +msgid "Warning: Sample is bigger than 1MB." msgstr "" -#: js/tempo.js:194 -msgid "Adjust the tempo with the buttons." +#: js/widgets/aiwidget.js:539 +msgid "New start block generated" msgstr "" -#: js/tempo.js:261 -msgid "Please enter a number between 30 and 1000" +#: js/widgets/aiwidget.js:541 +msgid "MIDI loading. This may take some time depending upon the number of notes in the track" msgstr "" -#: js/tempo.js:268 -#: js/tempo.js:271 -msgid "The beats per minute must be between 30 and 1000." +#: js/widgets/aiwidget.js:551 +#: js/widgets/sampler.js:254 +msgid "Upload failed: Sample is not a .wav file." msgstr "" -#: js/tempo.js:287 -msgid "The beats per minute must be below 1000." +#: js/widgets/aiwidget.js:679 +#: js/widgets/sampler.js:432 +msgid "Save sample" msgstr "" -#: js/tempo.js:303 -msgid "The beats per minute must be above 30" +#: js/widgets/aiwidget.js:701 +msgid "AI Music" msgstr "" -#: js/timbre.js:766 -msgid "Synthesizer" +#: js/widgets/arpeggio.js:239 +msgid "Click in the grid to add steps to the arpeggio." msgstr "" -#: js/timbre.js:789 -msgid "Oscillator" +#: js/widgets/help.js:95 +#: js/widgets/help.js:125 +#: js/widgets/help.js:146 +#: js/widgets/help.js:158 +#: js/widgets/help.js:376 +#: js/widgets/help.js:391 +msgid "Take a tour" msgstr "" -#: js/timbre.js:840 -msgid "Envelope" +#: js/widgets/musickeyboard.js:725 +#: js/widgets/phrasemaker.js:584 +msgid "Add note" msgstr "" -#: js/timbre.js:886 -#: js/GlobalTag.js:50 -#.TRANS: On the Planet, we use labels to tag projects. -msgid "Effects" +#: js/widgets/musickeyboard.js:744 +msgid "Metronome" +msgstr "" + +#: js/widgets/musickeyboard.js:1549 +#: plugins/rodi.rtp:193 +msgid "duration" +msgstr "" + +#: js/widgets/musickeyboard.js:3179 +msgid "New action blocks generated" +msgstr "" + +#: js/widgets/musickeyboard.js:3180 +msgid "New action block generated" msgstr "" -#: js/timbre.js:904 -msgid "Filter" +#: js/widgets/musickeyboard.js:3365 +#: js/widgets/musickeyboard.js:3373 +msgid "MIDI device present." msgstr "" -#: js/timbre.js:946 -msgid "Add filter" +#: js/widgets/musickeyboard.js:3376 +msgid "No MIDI device found." msgstr "" -#: js/timbre.js:987 -msgid "Click on buttons to open the timbre design tools." +#: js/widgets/musickeyboard.js:3386 +msgid "Failed to get MIDI access in browser." msgstr "" -#: js/timbre.js:1273 -msgid "harmonicity" +#: js/widgets/phrasemaker.js:574 +msgid "Export" msgstr "" -#: js/timbre.js:1340 -#: js/timbre.js:1406 -msgid "modulation index" +#: js/widgets/phrasemaker.js:581 +msgid "Sort" msgstr "" -#: js/timbre.js:1484 -msgid "vibrato amount" +#: js/widgets/phrasemaker.js:975 +msgid "Click on the table to add notes." msgstr "" -#: js/timbre.js:1919 -msgid "Filter already present." +#: js/widgets/phrasemaker.js:2677 +#: js/widgets/phrasemaker.js:2819 +msgid "tuplet value" msgstr "" -#: js/timbre.js:2322 -msgid "delay (MS)" +#: js/widgets/rhythmruler.js:486 +msgid "Save rhythms" msgstr "" -#: js/timbre.js:2507 -msgid "distortion amount" +#: js/widgets/rhythmruler.js:512 +msgid "Save drum machine" msgstr "" -#: js/meterwidget.js:170 -msgid "Reset" +#: js/widgets/rhythmruler.js:589 +#.TRANS: user can tap out a rhythm by clicking on a ruler. +msgid "Tap a rhythm" msgstr "" -#: js/meterwidget.js:196 -msgid "Click in the circle to select strong beats for the meter." +#: js/widgets/rhythmruler.js:817 +msgid "Click on the ruler to divide it." msgstr "" -#: js/arpeggio.js:239 -msgid "Click in the grid to add steps to the arpeggio." +#: js/widgets/rhythmruler.js:950 +#: js/widgets/rhythmruler.js:952 +#: js/widgets/rhythmruler.js:1152 +#: js/widgets/rhythmruler.js:1154 +#: js/widgets/rhythmruler.js:1765 +#: js/widgets/rhythmruler.js:1767 +msgid "tap a rhythm" msgstr "" -#: js/ProjectStorage.js:243 -msgid "anonymous" +#: js/widgets/rhythmruler.js:1459 +msgid "Maximum value of 256 has been exceeded." msgstr "" -#: js/GlobalCard.js:68 -msgid "Share" +#: js/widgets/sampler.js:237 +msgid "Recording started..." msgstr "" -#: js/GlobalCard.js:74 -msgid "Flags" +#: js/widgets/sampler.js:245 +msgid "Recording complete..." msgstr "" -#: js/LocalCard.js:36 -msgid "View published project" +#: js/widgets/sampler.js:283 +msgid "A new sample block was generated." msgstr "" -#: js/LocalCard.js:42 -msgid "Publish project" +#: js/widgets/sampler.js:378 +msgid "Upload sample" msgstr "" -#: js/LocalCard.js:51 -msgid "Edit project" +#: js/widgets/sampler.js:399 +msgid "Warning: Your sample cannot be loaded because it is >1MB." msgstr "" -#: js/LocalCard.js:52 -msgid "Delete project" +#: js/widgets/sampler.js:448 +msgid "Toggle Mic" msgstr "" -#: js/LocalCard.js:53 -msgid "Download project" +#: js/widgets/sampler.js:458 +msgid "Playback" msgstr "" -#: js/LocalCard.js:55 -msgid "Duplicate project" +#: js/widgets/sampler.js:979 +#.TRANS: The reference tone is a sound used for comparison. +msgid "reference tone" msgstr "" -#: js/GlobalTag.js:28 +#: planet/js/GlobalTag.js:28 #.TRANS: On the Planet, we use labels to tag projects. msgid "All Projects" msgstr "" -#: js/GlobalTag.js:30 -#: js/StringHelper.js:37 +#: planet/js/GlobalTag.js:30 +#: planet/js/StringHelper.js:37 #.TRANS: On the Planet, we use labels to tag projects. msgid "My Projects" msgstr "" -#: js/GlobalTag.js:32 +#: planet/js/GlobalTag.js:32 #.TRANS: On the Planet, we use labels to tag projects. msgid "Examples" msgstr "" -#: js/GlobalTag.js:34 +#: planet/js/GlobalTag.js:34 #.TRANS: On the Planet, we use labels to tag projects. msgid "Music" msgstr "" -#: js/GlobalTag.js:36 +#: planet/js/GlobalTag.js:36 #.TRANS: On the Planet, we use labels to tag projects. msgid "Art" msgstr "" -#: js/GlobalTag.js:38 +#: planet/js/GlobalTag.js:38 #.TRANS: On the Planet, we use labels to tag projects. msgid "Math" msgstr "" -#: js/GlobalTag.js:40 +#: planet/js/GlobalTag.js:40 #.TRANS: On the Planet, we use labels to tag projects. msgid "Interactive" msgstr "" -#: js/GlobalTag.js:42 +#: planet/js/GlobalTag.js:42 #.TRANS: On the Planet, we use labels to tag projects. msgid "Design" msgstr "" -#: js/GlobalTag.js:44 +#: planet/js/GlobalTag.js:44 #.TRANS: On the Planet, we use labels to tag projects. msgid "Game" msgstr "" -#: js/GlobalTag.js:46 +#: planet/js/GlobalTag.js:46 #.TRANS: On the Planet, we use labels to tag projects. msgid "Media" msgstr "" -#: js/GlobalTag.js:48 +#: planet/js/GlobalTag.js:48 #.TRANS: On the Planet, we use labels to tag projects. msgid "Sensors" msgstr "" -#: js/GlobalTag.js:52 +#: planet/js/GlobalTag.js:52 #.TRANS: On the Planet, we use labels to tag projects. msgid "Code Snippet" msgstr "" -#: js/helper.js:149 -#: js/StringHelper.js:49 -msgid "Show more tags" +#: planet/js/LocalCard.js:36 +msgid "View published project" msgstr "" -#: js/helper.js:150 -msgid "Show fewer tags" +#: planet/js/LocalCard.js:42 +msgid "Publish project" +msgstr "" + +#: planet/js/LocalCard.js:51 +msgid "Edit project" +msgstr "" + +#: planet/js/LocalCard.js:52 +msgid "Delete project" +msgstr "" + +#: planet/js/LocalCard.js:53 +msgid "Download project" +msgstr "" + +#: planet/js/LocalCard.js:55 +msgid "Duplicate project" +msgstr "" + +#: planet/js/ProjectStorage.js:243 +msgid "anonymous" +msgstr "" + +#: planet/js/SaveInterface.js:34 +msgid "Open in Music Blocks" +msgstr "" + +#: planet/js/SaveInterface.js:35 +msgid "Open in Turtle Blocks" +msgstr "" + +#: planet/js/GlobalCard.js:68 +msgid "Share" +msgstr "" + +#: planet/js/GlobalCard.js:74 +msgid "Flags" +msgstr "" + +#: planet/js/GlobalPlanet.js:35 +msgid "No results found." +msgstr "" + +#: planet/js/GlobalPlanet.js:51 +msgid "Remix of" +msgstr "" + +#: planet/js/GlobalPlanet.js:509 +msgid "Cannot connect to server" msgstr "" -#: js/ProjectViewer.js:30 +#: planet/js/ProjectViewer.js:30 msgid "Error: Report could not be submitted. Try again later." msgstr "" -#: js/ProjectViewer.js:31 +#: planet/js/ProjectViewer.js:31 msgid "Thank you for reporting this project. A moderator will review the project shortly, to verify violation of the Sugar Labs Code of Conduct." msgstr "" -#: js/ProjectViewer.js:32 -#: js/StringHelper.js:62 -#: js/StringHelper.js:64 -#: js/StringHelper.js:68 +#: planet/js/ProjectViewer.js:32 +#: planet/js/StringHelper.js:62 +#: planet/js/StringHelper.js:64 +#: planet/js/StringHelper.js:68 msgid "Report Project" msgstr "" -#: js/ProjectViewer.js:33 -#: js/StringHelper.js:63 +#: planet/js/ProjectViewer.js:33 +#: planet/js/StringHelper.js:63 msgid "Project Reported" msgstr "" -#: js/ProjectViewer.js:34 +#: planet/js/ProjectViewer.js:34 msgid "Report description required" msgstr "" -#: js/ProjectViewer.js:35 +#: planet/js/ProjectViewer.js:35 msgid "Report description too long" msgstr "" -#: js/StringHelper.js:30 +#: planet/js/Publisher.js:30 +msgid "Feature unavailable - cannot connect to server. Reload Music Blocks to try again." +msgstr "" + +#: planet/js/Publisher.js:220 +#: planet/js/Publisher.js:237 +msgid "This field is required" +msgstr "" + +#: planet/js/Publisher.js:227 +msgid "Title too long" +msgstr "" + +#: planet/js/Publisher.js:244 +msgid "Description too long" +msgstr "" + +#: planet/js/Publisher.js:341 +msgid "Server Error" +msgstr "" + +#: planet/js/Publisher.js:341 +msgid "Try Again" +msgstr "" + +#: planet/js/StringHelper.js:30 msgid "Planet" msgstr "" -#: js/StringHelper.js:31 +#: planet/js/StringHelper.js:31 msgid "Close Planet" msgstr "" -#: js/StringHelper.js:32 +#: planet/js/StringHelper.js:32 msgid "Open project from file" msgstr "" -#: js/StringHelper.js:34 +#: planet/js/StringHelper.js:34 msgid "Local" msgstr "" -#: js/StringHelper.js:35 +#: planet/js/StringHelper.js:35 msgid "Global" msgstr "" -#: js/StringHelper.js:36 +#: planet/js/StringHelper.js:36 msgid "Search for a project" msgstr "" -#: js/StringHelper.js:38 +#: planet/js/StringHelper.js:38 msgid "Publish Project" msgstr "" -#: js/StringHelper.js:40 +#: planet/js/StringHelper.js:40 msgid "Tags (max 5)" msgstr "" -#: js/StringHelper.js:41 -#: js/StringHelper.js:61 +#: planet/js/StringHelper.js:41 +#: planet/js/StringHelper.js:61 msgid "Description" msgstr "" -#: js/StringHelper.js:42 -#: js/StringHelper.js:67 +#: planet/js/StringHelper.js:42 +#: planet/js/StringHelper.js:67 msgid "Submit" msgstr "" -#: js/StringHelper.js:43 -#: js/StringHelper.js:47 +#: planet/js/StringHelper.js:43 +#: planet/js/StringHelper.js:47 msgid "Cancel" msgstr "" -#: js/StringHelper.js:44 +#: planet/js/StringHelper.js:44 msgid "Delete \\"\\"?" msgstr "" -#: js/StringHelper.js:45 +#: planet/js/StringHelper.js:45 msgid "Permanently delete project \\"\\"?" msgstr "" -#: js/StringHelper.js:48 +#: planet/js/StringHelper.js:48 msgid "Explore Projects" msgstr "" -#: js/StringHelper.js:50 +#: planet/js/StringHelper.js:49 +#: planet/js/helper.js:149 +msgid "Show more tags" +msgstr "" + +#: planet/js/StringHelper.js:50 msgid "Most recent" msgstr "" -#: js/StringHelper.js:51 +#: planet/js/StringHelper.js:51 msgid "Most liked" msgstr "" -#: js/StringHelper.js:52 +#: planet/js/StringHelper.js:52 msgid "Most downloaded" msgstr "" -#: js/StringHelper.js:53 +#: planet/js/StringHelper.js:53 msgid "A-Z" msgstr "" -#: js/StringHelper.js:54 +#: planet/js/StringHelper.js:54 msgid "Sort by" msgstr "" -#: js/StringHelper.js:55 +#: planet/js/StringHelper.js:55 msgid "Load More Projects" msgstr "" -#: js/StringHelper.js:56 +#: planet/js/StringHelper.js:56 msgid "Last Updated" msgstr "" -#: js/StringHelper.js:57 +#: planet/js/StringHelper.js:57 msgid "Creation Date" msgstr "" -#: js/StringHelper.js:58 +#: planet/js/StringHelper.js:58 msgid "Number of Downloads:" msgstr "" -#: js/StringHelper.js:59 +#: planet/js/StringHelper.js:59 msgid "Number of Likes:" msgstr "" -#: js/StringHelper.js:60 +#: planet/js/StringHelper.js:60 msgid "Tags:" msgstr "" -#: js/StringHelper.js:65 +#: planet/js/StringHelper.js:65 msgid "Report projects which violate the Sugar Labs Code of Conduct." msgstr "" -#: js/StringHelper.js:66 +#: planet/js/StringHelper.js:66 msgid "Reason for reporting project" msgstr "" -#: js/StringHelper.js:70 +#: planet/js/StringHelper.js:70 msgid "Download as File" msgstr "" -#: js/GlobalPlanet.js:35 -msgid "No results found." -msgstr "" - -#: js/GlobalPlanet.js:51 -msgid "Remix of" -msgstr "" - -#: js/GlobalPlanet.js:509 -msgid "Cannot connect to server" -msgstr "" - -#: js/Publisher.js:30 -msgid "Feature unavailable - cannot connect to server. Reload Music Blocks to try again." -msgstr "" - -#: js/Publisher.js:218 -#: js/Publisher.js:235 -msgid "This field is required" -msgstr "" - -#: js/Publisher.js:225 -msgid "Title too long" +#: planet/js/helper.js:150 +msgid "Show fewer tags" msgstr "" -#: js/Publisher.js:242 -msgid "Description too long" +#: plugins/accelerometer.rtp:48 +msgid "motion x" msgstr "" -#: js/Publisher.js:339 -msgid "Server Error" +#: plugins/accelerometer.rtp:56 +msgid "motion y" msgstr "" -#: js/Publisher.js:339 -msgid "Try Again" +#: plugins/accelerometer.rtp:64 +msgid "motion z" msgstr "" -#: js/SaveInterface.js:34 -msgid "Open in Music Blocks" +#: plugins/facebook.rtp:27 +msgid "publish" msgstr "" -#: js/SaveInterface.js:35 -msgid "Open in Turtle Blocks" +#: plugins/maths.rtp:62 +msgid "power" msgstr "" -#: plugins/weather.rtp:68 -#: plugins/weather.rtp:97 -msgid "Days ahead must be in the range of -1 to 5." +#: plugins/maths.rtp:62 +msgid "base" msgstr "" -#: plugins/weather.rtp:122 -msgid "forecast" +#: plugins/maths.rtp:62 +msgid "exp" msgstr "" -#: plugins/weather.rtp:123 -#: plugins/weather.rtp:137 -#: plugins/weather.rtp:150 -msgid "city" +#: plugins/maths.rtp:99 +msgid "floor" msgstr "" -#: plugins/weather.rtp:124 -#: plugins/weather.rtp:138 -#: plugins/weather.rtp:151 -msgid "day" +#: plugins/maths.rtp:104 +msgid "ceiling" msgstr "" -#: plugins/weather.rtp:136 -msgid "high" +#: plugins/maths.rtp:109 +msgid "to degrees" msgstr "" -#: plugins/weather.rtp:149 -msgid "low" +#: plugins/maths.rtp:114 +msgid "to radians" msgstr "" #: plugins/nutrition.rtp:104 @@ -9459,45 +9868,6 @@ msgstr "" msgid "water" msgstr "" -#: plugins/maths.rtp:62 -#: plugins/examples.rtp:93 -msgid "power" -msgstr "" - -#: plugins/maths.rtp:62 -#: plugins/examples.rtp:93 -msgid "base" -msgstr "" - -#: plugins/maths.rtp:62 -#: plugins/examples.rtp:93 -msgid "exp" -msgstr "" - -#: plugins/maths.rtp:99 -#: plugins/examples.rtp:130 -msgid "floor" -msgstr "" - -#: plugins/maths.rtp:104 -#: plugins/examples.rtp:135 -msgid "ceiling" -msgstr "" - -#: plugins/maths.rtp:109 -#: plugins/examples.rtp:140 -msgid "to degrees" -msgstr "" - -#: plugins/maths.rtp:114 -#: plugins/examples.rtp:145 -msgid "to radians" -msgstr "" - -#: plugins/facebook.rtp:27 -msgid "publish" -msgstr "" - #: plugins/rodi.rtp:172 msgid "blink" msgstr "" @@ -9526,18 +9896,66 @@ msgstr "" msgid "move" msgstr "" -#: plugins/accelerometer.rtp:48 -msgid "motion x" +#: plugins/weather.rtp:68 +#: plugins/weather.rtp:97 +msgid "Days ahead must be in the range of -1 to 5." msgstr "" -#: plugins/accelerometer.rtp:56 -msgid "motion y" +#: plugins/weather.rtp:122 +msgid "forecast" msgstr "" -#: plugins/accelerometer.rtp:64 -msgid "motion z" +#: plugins/weather.rtp:123 +#: plugins/weather.rtp:137 +#: plugins/weather.rtp:150 +msgid "city" +msgstr "" + +#: plugins/weather.rtp:124 +#: plugins/weather.rtp:138 +#: plugins/weather.rtp:151 +msgid "day" +msgstr "" + +#: plugins/weather.rtp:136 +msgid "high" +msgstr "" + +#: plugins/weather.rtp:149 +msgid "low" msgstr "" +#: js/toolbar.js:70 + +#: js/toolbar.js:130 + +#: js/toolbar.js:194 + +#: js/toolbar.js:249 + +#~msgid "Toggle JavaScript Editor" +#~msgstr "" + +#: js/EnsembleBlocks.js:643 + +#~msgid "The Turrle pitch block returns the current pitch number being played by the specified turtle." +#~msgstr "" + +#: js/PitchActions.js:88 + +#~msgid "The Scalar Step Block must be used inside of a Note Block." +#~msgstr "" + +#: js/PitchActions.js:107 + +#~msgid "The Scalar Step Block must be preceded by a Pitch Block." +#~msgstr "" + +#: js/musickeyboard.js:2840 + +#~msgid "New action blocks generated!" +#~msgstr "" + #: js/toolbar.js:110 #: js/toolbar.js:204 @@ -9878,11 +10296,6 @@ msgstr "" #~msgid "The Time block returns the number of seconds that the program has been running." #~msgstr "" -#: js/help.js:95 - -#~msgid "Take a tour" -#~msgstr "" - #: js/GlobalCard.js:48 #~msgid "More Details" @@ -12781,11 +13194,6 @@ msgstr "" #~msgid "The save-stack button saves a stack onto a custom palette. It appears after a \"long press\" on a stack." #~msgstr "" -#: js/musicutils.js:254 - -#~msgid "Custom" -#~msgstr "" - #: js/basicblocks.js:4785 #~msgid "Rhythm" diff --git a/po/ru.po b/po/ru.po index f53edcf8ac..243659e4fd 100644 --- a/po/ru.po +++ b/po/ru.po @@ -2130,276 +2130,131 @@ #: js/planetInterface.js:104 #: js/planetInterface.js:104 #: js/planetInterface.js:104 -msgid "project undefined" +#: js/SaveInterface.js:59 +#: js/SaveInterface.js:61 +#: js/SaveInterface.js:93 +msgid "Music Blocks Project" msgstr "" -#: js/logo.js:61 -msgid "Not a valid pitch name" +#: js/SaveInterface.js:63 +msgid "This project was created in Music Blocks" msgstr "" -#: js/logo.js:507 -#: js/ProgramBlocks.js:258 -#: js/ProgramBlocks.js:427 -msgid "You must select a file." +#: js/SaveInterface.js:67 +msgid "Music Blocks is a Free/Libre Software application." msgstr "" -#: js/logo.js:1184 -#: js/turtles.js:118 -#: js/turtle-painter.js:1192 -#: js/turtle-painter.js:1193 -#: js/block.js:1463 -#: js/lilypond.js:757 -#: js/lilypond.js:921 -#: js/lilypond.js:959 -#: js/ActionBlocks.js:1223 -#: js/ProgramBlocks.js:1267 -msgid "start" -msgstr "старт" - -#: js/logo.js:1696 -msgid "Playback is ready." +#: js/SaveInterface.js:69 +msgid "The source code can be accessed at" msgstr "" -#: js/blocks.js:1011 -#: js/blocks.js:3427 -#: js/blocks.js:3428 -#: js/blocks.js:3653 -#: js/blocks.js:4012 -#: js/blocks.js:4205 -#: js/blocks.js:5343 -#: js/blocks.js:6474 -#: js/palette.js:527 -#: js/palette.js:536 -#: js/palette.js:545 -#: js/palette.js:554 -#: js/palette.js:1131 -#: js/palette.js:1142 -#: js/palette.js:1153 -#: js/palette.js:1164 -#: js/palette.js:1183 -#: js/rubrics.js:529 -#: js/macros.js:170 -#: js/macros.js:266 -#: js/macros.js:267 -#: js/macros.js:276 -#: js/macros.js:828 -#: js/block.js:1449 -#: js/block.js:4164 -#: js/block.js:4182 -#: js/block.js:4193 -#: js/turtledefs.js:128 -#: js/turtledefs.js:230 -#: js/ActionBlocks.js:254 -#: js/ActionBlocks.js:307 -#: js/ActionBlocks.js:617 -#: js/ActionBlocks.js:716 -#: js/ActionBlocks.js:961 -#: js/ActionBlocks.js:1049 -#: js/ActionBlocks.js:1322 -#: js/ActionBlocks.js:1325 -#: js/ActionBlocks.js:1337 -#: js/ActionBlocks.js:1404 -#: js/MeterBlocks.js:715 -#: js/MeterBlocks.js:768 -#: js/MeterBlocks.js:831 -#: js/MeterBlocks.js:892 -#: js/phrasemaker.js:4412 -#: js/musickeyboard.js:2647 -#: js/rhythmruler.js:1928 -#: js/rhythmruler.js:1935 -#: js/rhythmruler.js:2119 -#: js/rhythmruler.js:2126 -msgid "action" -msgstr "действие" - -#: js/blocks.js:1205 -#: js/blocks.js:3380 -#: js/blocks.js:3770 -#: js/blocks.js:3801 -#: js/blocks.js:3850 -#: js/blocks.js:3885 -#: js/blocks.js:6497 -#: js/palette.js:509 -#: js/palette.js:638 -#: js/palette.js:1107 -#: js/BoxesBlocks.js:282 -#: js/BoxesBlocks.js:285 -#: js/BoxesBlocks.js:405 -#: js/BoxesBlocks.js:594 -msgid "box" -msgstr "блок" - -#: js/blocks.js:1680 -msgid "Consider breaking this stack into parts." +#: js/SaveInterface.js:72 +msgid "For more information, please consult the" msgstr "" -#: js/blocks.js:2408 -#: js/palette.js:653 -#: js/MediaBlocks.js:602 -msgid "open file" +#: js/SaveInterface.js:76 +#: js/turtledefs.js:795 +msgid "Music Blocks Guide" msgstr "" -#: js/blocks.js:2415 -#: js/blocks.js:2423 -#: js/activity.js:1875 -msgid "audio file" +#: js/SaveInterface.js:83 +msgid "Alternatively, open the file in Music Blocks using the Load project button." msgstr "" -#: js/blocks.js:2536 -#: js/blocks.js:3147 -#: js/block.js:3543 -msgid "on2" +#: js/SaveInterface.js:85 +msgid "Project Code" msgstr "" -#: js/blocks.js:2538 -#: js/blocks.js:3149 -#: js/block.js:3545 -msgid "off" +#: js/SaveInterface.js:87 +msgid "This code stores data about the blocks in a project." msgstr "" -#: js/blocks.js:2543 -#: js/blocks.js:3154 -#: js/palette.js:618 -#: js/block.js:3466 -#: js/BooleanBlocks.js:77 -#: js/BooleanBlocks.js:167 -#: js/BooleanBlocks.js:251 -#: js/BooleanBlocks.js:335 -#: js/BooleanBlocks.js:433 -#: js/BooleanBlocks.js:539 -#: js/BooleanBlocks.js:640 -#: js/BooleanBlocks.js:741 -#: js/BooleanBlocks.js:847 -#: js/BooleanBlocks.js:948 -#: js/BooleanBlocks.js:1033 -#: js/SensorsBlocks.js:910 -msgid "true" +#: js/SaveInterface.js:89 +msgid "Show" msgstr "" -#: js/blocks.js:2545 -#: js/blocks.js:3156 -#: js/block.js:3466 -#: js/BooleanBlocks.js:79 -#: js/BooleanBlocks.js:169 -#: js/BooleanBlocks.js:253 -#: js/BooleanBlocks.js:337 -#: js/BooleanBlocks.js:435 -#: js/BooleanBlocks.js:541 -#: js/BooleanBlocks.js:642 -#: js/BooleanBlocks.js:743 -#: js/BooleanBlocks.js:849 -#: js/BooleanBlocks.js:950 -#: js/SensorsBlocks.js:912 -msgid "false" +#: js/SaveInterface.js:91 +msgid "Hide" msgstr "" -#: js/blocks.js:3183 -#: js/palette.js:574 -#: js/MediaBlocks.js:892 -#: js/MediaBlocks.js:963 -msgid "text" -msgstr "текст" - -#: js/blocks.js:3379 -#: js/palette.js:641 -#: js/palette.js:642 -#: js/BoxesBlocks.js:514 -msgid "store in box" +#: js/SaveInterface.js:131 +#: js/SaveInterface.js:204 +#: js/SaveInterface.js:262 +#: js/SaveInterface.js:389 +#: js/SaveInterface.js:417 +#: js/activity.js:4884 +#: planet/js/ProjectStorage.js:27 +#: planet/js/GlobalPlanet.js:467 +#: planet/js/GlobalPlanet.js:469 +#: planet/js/GlobalPlanet.js:495 +#.TRANS: default project title when saving as Lilypond +msgid "My Project" msgstr "" -#: js/blocks.js:3384 -#: js/blocks.js:3824 -#: js/blocks.js:3859 -#: js/blocks.js:3894 -#: js/blocks.js:5773 -#: js/blocks.js:5794 -#: js/BoxesBlocks.js:772 -msgid "box1" +#: js/SaveInterface.js:197 +#: planet/js/SaveInterface.js:58 +msgid "No description provided" msgstr "" -#: js/blocks.js:3386 -#: js/blocks.js:3826 -#: js/blocks.js:3861 -#: js/blocks.js:3896 -#: js/blocks.js:5775 -#: js/blocks.js:5796 -#: js/BoxesBlocks.js:663 -msgid "box2" +#: js/SaveInterface.js:332 +msgid "Your recording is in progress." msgstr "" -#: js/blocks.js:4058 -#: js/palette.js:639 -#: js/palette.js:644 -#: js/palette.js:1043 -#: js/BoxesBlocks.js:591 -msgid "store in" -msgstr "записать в" - -#: js/blocks.js:4058 -#: js/EnsembleBlocks.js:391 -#: js/EnsembleBlocks.js:402 -#: js/MediaBlocks.js:746 -#: js/ProgramBlocks.js:390 -#: js/ProgramBlocks.js:495 -#: js/ProgramBlocks.js:658 -#: js/BoxesBlocks.js:595 -#: js/PitchBlocks.js:656 -#: js/PitchBlocks.js:932 -#: js/PitchBlocks.js:1827 -#: js/ToneBlocks.js:1025 -#: js/DictBlocks.js:215 -#: js/DictBlocks.js:289 -msgid "name" +#: js/SaveInterface.js:401 +#.TRANS: File name prompt for save as Lilypond +msgid "File name" msgstr "" -#: js/blocks.js:4058 -#: js/RhythmBlocks.js:1130 -#: js/BoxesBlocks.js:75 -#: js/BoxesBlocks.js:595 -#: js/HeapBlocks.js:544 -#: js/DictBlocks.js:289 -#: js/DictBlocks.js:430 -msgid "value" -msgstr "значение" - -#: js/blocks.js:4907 -msgid "There is no block selected." +#: js/SaveInterface.js:403 +#: planet/js/StringHelper.js:39 +#.TRANS: Project title prompt for save as Lilypond +msgid "Project title" msgstr "" -#: js/blocks.js:5002 -#: js/MediaBlocks.js:888 -msgid "show" -msgstr "показать" - -#: js/blocks.js:5005 -#: js/MediaBlocks.js:803 -#.TRANS: Avatar is the image used to determine the appearance of the mouse. -msgid "avatar" +#: js/SaveInterface.js:405 +#.TRANS: Project title prompt for save as Lilypond +msgid "Project author" msgstr "" -#: js/blocks.js:5008 -#: js/ToneBlocks.js:1010 -#: js/sampler.js:693 -#.TRANS: The sound sample that the user uploads. -msgid "sample" +#: js/SaveInterface.js:407 +#.TRANS: MIDI prompt for save as Lilypond +msgid "Include MIDI output?" msgstr "" -#: js/turtles.js:874 -msgid "Grid" +#: js/SaveInterface.js:409 +#.TRANS: Guitar prompt for save as Lilypond +msgid "Include guitar tablature output?" msgstr "" -#: js/turtles.js:891 -#: js/turtledefs.js:626 -msgid "Clean" -msgstr "Очистить" +#: js/SaveInterface.js:411 +#.TRANS: Lilypond is a scripting language for generating sheet music +msgid "Save as Lilypond" +msgstr "" -#: js/turtles.js:912 -#: js/turtledefs.js:632 -msgid "Collapse" +#: js/SaveInterface.js:426 +#: js/blocks/EnsembleBlocks.js:75 +#: js/blocks/EnsembleBlocks.js:154 +#: js/blocks/EnsembleBlocks.js:216 +#: js/blocks/EnsembleBlocks.js:302 +#: js/blocks/EnsembleBlocks.js:348 +#: js/blocks/EnsembleBlocks.js:389 +#: js/blocks/EnsembleBlocks.js:441 +#: js/blocks/EnsembleBlocks.js:490 +#: js/blocks/EnsembleBlocks.js:536 +#: js/blocks/EnsembleBlocks.js:583 +#: js/blocks/EnsembleBlocks.js:637 +#: js/blocks/EnsembleBlocks.js:753 +#: js/blocks/EnsembleBlocks.js:840 +#: js/blocks/EnsembleBlocks.js:899 +#: js/blocks/EnsembleBlocks.js:942 +#: js/blocks/EnsembleBlocks.js:1212 +#: js/blocks/EnsembleBlocks.js:1280 +#.TRANS: default project author when saving as Lilypond +msgid "Mr. Mouse" msgstr "" -#: js/turtles.js:940 -msgid "Expand" +#: js/SaveInterface.js:573 +msgid "The Lilypond code is copied to clipboard. You can paste it here: " msgstr "" #: js/languagebox.js:198 @@ -2410,6933 +2265,7487 @@ msgstr "" msgid "Music Blocks is already set to this language." msgstr "" -#: js/piemenus.js:200 -#: js/musicutils.js:808 -#: js/musicutils.js:824 -#: js/phrasemaker.js:1672 -#: js/musickeyboard.js:2041 -#: js/sampler.js:544 -#.TRANS: double sharp is a music term related to pitch -msgid "double sharp" +#: js/planetInterface.js:131 +msgid "project undefined" msgstr "" -#: js/piemenus.js:201 -#: js/PitchBlocks.js:1510 -#: js/PitchActions.js:580 -#: js/musicutils.js:806 -#: js/musicutils.js:825 -#: js/phrasemaker.js:1673 -#: js/musickeyboard.js:2042 -#: js/sampler.js:545 -#.TRANS: sharp is a half-step up in pitch -#.TRANS: sharp is a music term related to pitch -msgid "sharp" +#: js/rubrics.js:523 +#: js/turtledefs.js:119 +#: js/turtledefs.js:221 +#: js/blocks/RhythmBlockPaletteBlocks.js:52 +#: js/blocks/RhythmBlockPaletteBlocks.js:234 +#: js/blocks/ProgramBlocks.js:745 +#: js/widgets/rhythmruler.js:2057 +#: js/widgets/rhythmruler.js:2064 +#: js/widgets/rhythmruler.js:2133 +#: js/widgets/rhythmruler.js:2140 +#: js/widgets/rhythmruler.js:2219 +#.TRANS: an arrangement of notes based on duration +msgid "rhythm" msgstr "" -#: js/piemenus.js:202 -#: js/musicutils.js:804 -#: js/musicutils.js:826 -#: js/phrasemaker.js:1674 -#: js/musickeyboard.js:2043 -#: js/sampler.js:546 -#.TRANS: natural is a music term related to pitch -msgid "natural" +#: js/rubrics.js:524 +#: js/turtledefs.js:121 +#: js/turtledefs.js:223 +#: js/block-verbose.js:2622 +#: js/block.js:2550 +#: js/blocks/IntervalsBlocks.js:63 +#: js/blocks/SensorsBlocks.js:178 +#: js/blocks/PitchBlocks.js:1839 +#: js/blocks/PitchBlocks.js:1853 +#: js/widgets/musickeyboard.js:1935 +#: js/widgets/phrasemaker.js:1036 +#.TRANS: pitch number +#.TRANS: pitch number +#.TRANS: we specify pitch in terms of a name and an octave. The name can be CDEFGAB or Do Re Mi Fa Sol La Ti. Octave is a number between 1 and 8. +msgid "pitch" msgstr "" -#: js/piemenus.js:203 -#: js/PitchBlocks.js:1469 -#: js/PitchActions.js:583 -#: js/musicutils.js:802 -#: js/musicutils.js:827 -#: js/phrasemaker.js:1675 -#: js/musickeyboard.js:2044 -#: js/sampler.js:547 -#.TRANS: flat is a half-step down in pitch -#.TRANS: flat is a music term related to pitch -msgid "flat" +#: js/rubrics.js:525 +#: js/turtledefs.js:123 +#: js/turtledefs.js:225 +msgid "tone" msgstr "" -#: js/piemenus.js:204 -#: js/musicutils.js:800 -#: js/musicutils.js:828 -#: js/phrasemaker.js:1676 -#: js/musickeyboard.js:2045 -#: js/sampler.js:548 -#.TRANS: double flat is a music term related to pitch -msgid "double flat" +#: js/rubrics.js:526 +#: js/lilypond.js:605 +#: js/lilypond.js:904 +#: js/lilypond.js:910 +#: js/lilypond.js:948 +msgid "mouse" msgstr "" -#: js/piemenus.js:2861 -#: js/PitchBlocks.js:1357 -#: js/musicutils.js:627 -#.TRANS: unison means the note is the same as the current note -#.TRANS: unison is a music term related to intervals -msgid "unison" +#: js/rubrics.js:527 +#: js/turtledefs.js:132 +#: js/turtledefs.js:234 +#: js/widgets/phrasemaker.js:1040 +msgid "pen" msgstr "" -#: js/piemenus.js:3015 -#: js/piemenus.js:3088 -#: js/musicutils.js:635 -#: js/musicutils.js:810 -#: js/musicutils.js:912 -#.TRANS: major is a music term related to intervals and mode -msgid "major" -msgstr "" +#: js/rubrics.js:528 +#: js/turtledefs.js:133 +#: js/turtledefs.js:235 +#: js/blocks/NumberBlocks.js:981 +#: js/blocks/PitchBlocks.js:1717 +#: js/blocks/PitchBlocks.js:1758 +msgid "number" +msgstr "число" -#: js/piemenus.js:3015 -#: js/piemenus.js:3088 -#: js/musicutils.js:653 -#.TRANS: modal scale for music -msgid "ionian" +#: js/rubrics.js:529 +#: js/turtledefs.js:127 +#: js/turtledefs.js:229 +msgid "flow" msgstr "" -#: js/piemenus.js:3017 -#: js/piemenus.js:3092 -#: js/musicutils.js:633 -#: js/musicutils.js:811 -#: js/musicutils.js:909 -#.TRANS: minor is a music term related to intervals and mode -msgid "minor" -msgstr "" +#: js/rubrics.js:530 +#: js/turtledefs.js:128 +#: js/turtledefs.js:230 +#: js/block-verbose.js:1609 +#: js/block-verbose.js:4559 +#: js/block-verbose.js:4577 +#: js/block-verbose.js:4588 +#: js/block.js:1573 +#: js/block.js:4483 +#: js/block.js:4501 +#: js/block.js:4512 +#: js/blocks.js:1018 +#: js/blocks.js:3491 +#: js/blocks.js:3492 +#: js/blocks.js:3717 +#: js/blocks.js:4076 +#: js/blocks.js:4269 +#: js/blocks.js:5432 +#: js/blocks.js:6563 +#: js/macros.js:170 +#: js/macros.js:266 +#: js/macros.js:267 +#: js/macros.js:276 +#: js/macros.js:828 +#: js/palette.js:527 +#: js/palette.js:536 +#: js/palette.js:545 +#: js/palette.js:554 +#: js/palette.js:1129 +#: js/palette.js:1140 +#: js/palette.js:1151 +#: js/palette.js:1162 +#: js/palette.js:1181 +#: js/blocks/ActionBlocks.js:254 +#: js/blocks/ActionBlocks.js:307 +#: js/blocks/ActionBlocks.js:617 +#: js/blocks/ActionBlocks.js:716 +#: js/blocks/ActionBlocks.js:961 +#: js/blocks/ActionBlocks.js:1049 +#: js/blocks/ActionBlocks.js:1322 +#: js/blocks/ActionBlocks.js:1325 +#: js/blocks/ActionBlocks.js:1337 +#: js/blocks/ActionBlocks.js:1404 +#: js/blocks/MeterBlocks.js:715 +#: js/blocks/MeterBlocks.js:768 +#: js/blocks/MeterBlocks.js:831 +#: js/blocks/MeterBlocks.js:892 +#: js/widgets/musickeyboard.js:2986 +#: js/widgets/phrasemaker.js:4913 +#: js/widgets/rhythmruler.js:2319 +#: js/widgets/rhythmruler.js:2326 +#: js/widgets/rhythmruler.js:2511 +#: js/widgets/rhythmruler.js:2518 +msgid "action" +msgstr "действие" -#: js/piemenus.js:3017 -#: js/piemenus.js:3092 -#: js/musicutils.js:663 -#.TRANS: modal scale for music -msgid "aeolian" +#: js/rubrics.js:531 +#: js/turtledefs.js:136 +#: js/turtledefs.js:238 +msgid "sensors" msgstr "" -#: js/piemenus.js:3407 -msgid "Duplicate" +#: js/rubrics.js:532 +#: js/turtledefs.js:135 +#: js/turtledefs.js:237 +#: js/blocks/MediaBlocks.js:930 +msgid "media" msgstr "" -#: js/piemenus.js:3408 -#: js/turtledefs.js:534 -msgid "Extract" +#: js/rubrics.js:533 +msgid "mice" msgstr "" -#: js/piemenus.js:3409 -msgid "Move to trash" +#: js/toolbar.js:48 +#: js/toolbar.js:109 +msgid "About Music Blocks" msgstr "" -#: js/piemenus.js:3410 -#: js/timbre.js:968 -#: js/StringHelper.js:69 -msgid "Close" +#: js/toolbar.js:49 +#: js/toolbar.js:110 +#: js/toolbar.js:175 +#: js/toolbar.js:231 +#: js/turtledefs.js:445 +#: js/turtledefs.js:482 +#: js/activity.js:2660 +#: js/activity.js:2671 +#: js/activity.js:2902 +#: js/widgets/modewidget.js:77 +#: js/widgets/meterwidget.js:185 +#: js/widgets/pitchdrummatrix.js:147 +#: js/widgets/pitchdrummatrix.js:687 +#: js/widgets/pitchdrummatrix.js:689 +#: js/widgets/pitchdrummatrix.js:741 +#: js/widgets/pitchdrummatrix.js:743 +#: js/widgets/pitchdrummatrix.js:758 +#: js/widgets/pitchdrummatrix.js:760 +#: js/widgets/pitchdrummatrix.js:789 +#: js/widgets/pitchdrummatrix.js:791 +#: js/widgets/pitchstaircase.js:121 +#: js/widgets/temperament.js:610 +#: js/widgets/temperament.js:613 +#: js/widgets/temperament.js:673 +#: js/widgets/temperament.js:675 +#: js/widgets/temperament.js:2017 +#: js/widgets/temperament.js:2019 +#: js/widgets/tempo.js:84 +#: js/widgets/tempo.js:86 +#: js/widgets/timbre.js:432 +#: js/widgets/timbre.js:434 +#: js/widgets/timbre.js:465 +#: js/widgets/timbre.js:467 +#: js/widgets/timbre.js:746 +#: js/widgets/aiwidget.js:647 +#: js/widgets/aiwidget.js:654 +#: js/widgets/aiwidget.js:656 +#: js/widgets/arpeggio.js:90 +#: js/widgets/arpeggio.js:547 +#: js/widgets/arpeggio.js:549 +#: js/widgets/arpeggio.js:644 +#: js/widgets/arpeggio.js:646 +#: js/widgets/musickeyboard.js:676 +#: js/widgets/musickeyboard.js:872 +#: js/widgets/musickeyboard.js:874 +#: js/widgets/musickeyboard.js:953 +#: js/widgets/musickeyboard.js:955 +#: js/widgets/phrasemaker.js:513 +#: js/widgets/phrasemaker.js:523 +#: js/widgets/phrasemaker.js:525 +#: js/widgets/phrasemaker.js:4304 +#: js/widgets/phrasemaker.js:4528 +#: js/widgets/phrasemaker.js:4533 +#: js/widgets/phrasemaker.js:4535 +#: js/widgets/phrasemaker.js:4650 +#: js/widgets/rhythmruler.js:637 +#: js/widgets/rhythmruler.js:639 +#: js/widgets/rhythmruler.js:653 +#: js/widgets/rhythmruler.js:655 +#: js/widgets/sampler.js:162 +#: js/widgets/sampler.js:164 +#: js/widgets/sampler.js:363 +msgid "Play" msgstr "" -#: js/piemenus.js:3416 -msgid "Save stack" +#: js/toolbar.js:50 +#: js/toolbar.js:111 +#: js/toolbar.js:176 +#: js/toolbar.js:232 +#: js/turtledefs.js:451 +#: js/turtledefs.js:488 +#: js/activity.js:2679 +#: js/widgets/modewidget.js:99 +#: js/widgets/modewidget.js:101 +#: js/widgets/meterwidget.js:206 +#: js/widgets/meterwidget.js:208 +#: js/widgets/pitchdrummatrix.js:674 +#: js/widgets/pitchdrummatrix.js:676 +#: js/widgets/temperament.js:2002 +#: js/widgets/temperament.js:2004 +#: js/widgets/arpeggio.js:534 +#: js/widgets/arpeggio.js:536 +#: js/widgets/phrasemaker.js:534 +#: js/widgets/phrasemaker.js:536 +msgid "Stop" +msgstr "Стоп" + +#: js/toolbar.js:51 +#: js/toolbar.js:112 +#: js/toolbar.js:177 +#: js/toolbar.js:233 +#: js/turtledefs.js:498 +msgid "Record" msgstr "" -#: js/piemenus.js:3420 -#: js/toolbar.js:60 -#: js/toolbar.js:120 -#: js/toolbar.js:185 +#: js/toolbar.js:52 +#: js/toolbar.js:53 +msgid "Full screen" +msgstr "" + +#: js/toolbar.js:54 +#: js/toolbar.js:115 +#: js/toolbar.js:180 +#: js/toolbar.js:236 +#: js/turtledefs.js:504 +msgid "Toggle Fullscreen" +msgstr "" + +#: js/toolbar.js:55 +#: js/toolbar.js:116 +#: js/toolbar.js:181 +#: js/toolbar.js:237 +#: js/turtledefs.js:510 +#: planet/js/StringHelper.js:33 +msgid "New project" +msgstr "" + +#: js/toolbar.js:56 +#: js/toolbar.js:117 +#: js/toolbar.js:182 +#: js/toolbar.js:238 +#: js/turtledefs.js:516 +msgid "Load project from file" +msgstr "" + +#: js/toolbar.js:57 +#: js/toolbar.js:118 +#: js/toolbar.js:119 +#: js/toolbar.js:183 +#: js/toolbar.js:239 +#: js/turtledefs.js:541 +#: js/turtledefs.js:550 +#: js/turtledefs.js:571 +msgid "Save project" +msgstr "" + +#: js/toolbar.js:58 +#: js/toolbar.js:77 +#: js/toolbar.js:79 +#: js/toolbar.js:138 +#: js/toolbar.js:147 +#: js/toolbar.js:149 +#: js/toolbar.js:184 +#: js/toolbar.js:202 +#: js/toolbar.js:204 #: js/toolbar.js:240 +#: js/toolbar.js:258 +#: js/toolbar.js:260 +msgid "Save project as HTML" +msgstr "" + +#: js/toolbar.js:59 +#: js/toolbar.js:120 +#: js/toolbar.js:185 +#: js/toolbar.js:241 +msgid "Find and share projects" +msgstr "" + +#: js/toolbar.js:60 +#: js/toolbar.js:121 +#: js/toolbar.js:186 +#: js/toolbar.js:242 +msgid "Offline. Sharing is unavailable" +msgstr "" + +#: js/toolbar.js:61 +#: js/toolbar.js:122 +#: js/toolbar.js:187 +#: js/toolbar.js:243 +msgid "Auxiliary menu" +msgstr "" + +#: js/toolbar.js:62 +#: js/toolbar.js:123 +#: js/toolbar.js:188 +#: js/toolbar.js:244 #: js/turtledefs.js:752 +#: js/piemenus.js:3423 msgid "Help" msgstr "Помощь" -#: js/piemenus.js:3762 -msgid "You have chosen key " +#: js/toolbar.js:63 +#: js/toolbar.js:124 +#: js/toolbar.js:189 +#: js/toolbar.js:245 +msgid "Run slowly" +msgstr "" + +#: js/toolbar.js:64 +#: js/toolbar.js:125 +#: js/toolbar.js:190 +#: js/toolbar.js:246 +#: js/turtledefs.js:682 +msgid "Run step by step" +msgstr "" + +#: js/toolbar.js:65 +#: js/toolbar.js:126 +#: js/toolbar.js:191 +#: js/toolbar.js:247 +#: js/turtledefs.js:689 +msgid "Display statistics" +msgstr "" + +#: js/toolbar.js:66 +#: js/toolbar.js:127 +#: js/toolbar.js:192 +#: js/toolbar.js:248 +msgid "Load plugin" +msgstr "" + +#: js/toolbar.js:67 +#: js/toolbar.js:128 +#: js/toolbar.js:193 +#: js/toolbar.js:249 +#: js/turtledefs.js:696 +msgid "Delete plugin" +msgstr "" + +#: js/toolbar.js:68 +#: js/toolbar.js:129 +#: js/toolbar.js:194 +#: js/toolbar.js:250 +msgid "Enable horizontal scrolling" +msgstr "" + +#: js/toolbar.js:69 +#: js/toolbar.js:130 +#: js/toolbar.js:195 +#: js/toolbar.js:251 +msgid "Disable horizontal scrolling" +msgstr "" + +#: js/toolbar.js:70 +#: js/toolbar.js:131 +#: js/toolbar.js:196 +#: js/toolbar.js:252 +#: planet/js/LocalCard.js:54 +#: planet/js/StringHelper.js:71 +msgid "Merge with current project" +msgstr "" + +#: js/toolbar.js:71 +#: js/toolbar.js:132 +msgid "Set Pitch Preview" +msgstr "" + +#: js/toolbar.js:72 +#: js/toolbar.js:133 +#: js/toolbar.js:197 +#: js/toolbar.js:253 +msgid "JavaScript Editor" +msgstr "" + +#: js/toolbar.js:73 +#: js/toolbar.js:134 +#: js/toolbar.js:198 +#: js/toolbar.js:254 +#: js/turtledefs.js:724 +msgid "Restore" +msgstr "" + +#: js/toolbar.js:74 +#: js/toolbar.js:135 +#: js/toolbar.js:199 +#: js/toolbar.js:255 +msgid "Switch to beginner mode" +msgstr "" + +#: js/toolbar.js:75 +#: js/toolbar.js:136 +#: js/toolbar.js:200 +#: js/toolbar.js:256 +msgid "Switch to advanced mode" +msgstr "" + +#: js/toolbar.js:76 +#: js/toolbar.js:137 +#: js/toolbar.js:146 +#: js/toolbar.js:201 +#: js/toolbar.js:257 +#: js/turtledefs.js:738 +msgid "Select language" +msgstr "" + +#: js/toolbar.js:78 +#: js/toolbar.js:81 +#: js/toolbar.js:140 +#: js/turtledefs.js:579 +msgid "Save mouse artwork as PNG" +msgstr "" + +#: js/toolbar.js:80 +#: js/toolbar.js:139 +#: js/turtledefs.js:575 +msgid "Save mouse artwork as SVG" +msgstr "" + +#: js/toolbar.js:82 +#: js/toolbar.js:141 +#: js/turtledefs.js:583 +msgid "Save music as WAV" +msgstr "" + +#: js/toolbar.js:83 +#: js/toolbar.js:142 +#: js/turtledefs.js:587 +msgid "Save sheet music as ABC" +msgstr "" + +#: js/toolbar.js:84 +#: js/toolbar.js:143 +#: js/turtledefs.js:591 +msgid "Save sheet music as Lilypond" +msgstr "" + +#: js/toolbar.js:85 +msgid "Save sheet music as MusicXML" +msgstr "" + +#: js/toolbar.js:86 +#: js/toolbar.js:144 +#: js/toolbar.js:152 +#: js/toolbar.js:207 +#: js/toolbar.js:263 +#: js/turtledefs.js:562 +#: js/turtledefs.js:595 +msgid "Save block artwork as SVG" +msgstr "" + +#: js/toolbar.js:87 +#: js/toolbar.js:145 +#: js/toolbar.js:153 +#: js/toolbar.js:208 +#: js/toolbar.js:264 +#: js/turtles.js:911 +msgid "Confirm" +msgstr "" + +#: js/toolbar.js:88 +#: js/toolbar.js:154 +#: js/toolbar.js:209 +#: js/toolbar.js:265 +msgid "English (United States)" +msgstr "" + +#: js/toolbar.js:89 +#: js/toolbar.js:155 +#: js/toolbar.js:210 +#: js/toolbar.js:266 +msgid "English (United Kingdom)" +msgstr "" + +#: js/toolbar.js:90 +#: js/toolbar.js:156 +#: js/toolbar.js:211 +#: js/toolbar.js:267 +msgid "日本語" +msgstr "" + +#: js/toolbar.js:91 +msgid "한국어" +msgstr "" + +#: js/toolbar.js:92 +#: js/toolbar.js:158 +#: js/toolbar.js:213 +#: js/toolbar.js:269 +msgid "español" +msgstr "" + +#: js/toolbar.js:93 +#: js/toolbar.js:159 +#: js/toolbar.js:214 +#: js/toolbar.js:270 +msgid "português" +msgstr "" + +#: js/toolbar.js:94 +#: js/toolbar.js:160 +#: js/toolbar.js:215 +#: js/toolbar.js:271 +msgid "にほんご" +msgstr "" + +#: js/toolbar.js:95 +#: js/toolbar.js:161 +#: js/toolbar.js:216 +#: js/toolbar.js:272 +msgid "中文" +msgstr "" + +#: js/toolbar.js:96 +#: js/toolbar.js:162 +#: js/toolbar.js:217 +#: js/toolbar.js:273 +msgid "ภาษาไทย" +msgstr "" + +#: js/toolbar.js:97 +#: js/toolbar.js:163 +#: js/toolbar.js:218 +#: js/toolbar.js:274 +msgid "aymara" +msgstr "" + +#: js/toolbar.js:98 +#: js/toolbar.js:164 +#: js/toolbar.js:219 +#: js/toolbar.js:275 +msgid "quechua" +msgstr "" + +#: js/toolbar.js:99 +#: js/toolbar.js:165 +#: js/toolbar.js:220 +#: js/toolbar.js:276 +msgid "guarani" +msgstr "" + +#: js/toolbar.js:100 +#: js/toolbar.js:166 +#: js/toolbar.js:221 +#: js/toolbar.js:277 +msgid "हिंदी" +msgstr "" + +#: js/toolbar.js:101 +#: js/toolbar.js:168 +#: js/toolbar.js:222 +#: js/toolbar.js:279 +msgid "igbo" +msgstr "" + +#: js/toolbar.js:102 +#: js/toolbar.js:169 +#: js/toolbar.js:223 +#: js/toolbar.js:280 +msgid "عربى" +msgstr "" + +#: js/toolbar.js:103 +#: js/toolbar.js:167 +#: js/toolbar.js:224 +#: js/toolbar.js:278 +msgid "తెలుగు" +msgstr "" + +#: js/toolbar.js:104 +#: js/toolbar.js:170 +#: js/toolbar.js:225 +#: js/toolbar.js:281 +msgid "עִברִית" +msgstr "" + +#: js/toolbar.js:113 +#: js/toolbar.js:114 +#: js/toolbar.js:178 +#: js/toolbar.js:179 +#: js/toolbar.js:234 +#: js/toolbar.js:235 +msgid "Full Screen" +msgstr "" + +#: js/toolbar.js:148 +#: js/toolbar.js:151 +#: js/toolbar.js:203 +#: js/toolbar.js:206 +#: js/toolbar.js:259 +#: js/toolbar.js:262 +#: js/turtledefs.js:558 +msgid "Save turtle artwork as PNG" +msgstr "" + +#: js/toolbar.js:150 +#: js/toolbar.js:205 +#: js/toolbar.js:261 +#: js/turtledefs.js:554 +msgid "Save turtle artwork as SVG" +msgstr "" + +#: js/toolbar.js:157 +#: js/toolbar.js:212 +#: js/toolbar.js:268 +msgid "한국인" +msgstr "" + +#: js/toolbar.js:174 +#: js/toolbar.js:230 +msgid "About Turtle Blocks" +msgstr "" + +#: js/toolbar.js:446 +#: js/toolbar.js:457 +#: js/toolbar.js:497 +msgid "Turtle Wrap Off" +msgstr "" + +#: js/toolbar.js:466 +#: js/toolbar.js:506 +msgid "Turtle Wrap On" +msgstr "" + +#: js/turtle-painter.js:1192 +#: js/turtle-painter.js:1193 +#: js/turtles.js:118 +#: js/block-verbose.js:1623 +#: js/block.js:1587 +#: js/lilypond.js:749 +#: js/lilypond.js:913 +#: js/lilypond.js:951 +#: js/logo.js:1184 +#: js/blocks/ActionBlocks.js:1223 +#: js/blocks/ProgramBlocks.js:1267 +msgid "start" +msgstr "старт" + +#: js/turtledefs.js:40 +#.TRANS: put the URL to the guide here, e.g., https://github.com/sugarlabs/turtleblocksjs/tree/master/guide/README.md +msgid "guide url" +msgstr "" + +#: js/turtledefs.js:85 +#: js/turtledefs.js:437 +msgid "Turtle Blocks is a Logo-inspired turtle that draws colorful pictures with snap-together visual-programming blocks." +msgstr "" + +#: js/turtledefs.js:118 +#: js/turtledefs.js:220 +msgid "search" +msgstr "" + +#: js/turtledefs.js:120 +#: js/turtledefs.js:222 +#: js/blocks/MeterBlocks.js:1343 +#: js/blocks/WidgetBlocks.js:522 +#.TRANS: musical meter (time signature), e.g., 4:4 +msgid "meter" +msgstr "" + +#: js/turtledefs.js:122 +#: js/turtledefs.js:224 +msgid "intervals" +msgstr "" + +#: js/turtledefs.js:124 +#: js/turtledefs.js:226 +msgid "ornament" +msgstr "" + +#: js/turtledefs.js:125 +#: js/turtledefs.js:227 +#: js/blocks/VolumeBlocks.js:362 +#: js/blocks/VolumeBlocks.js:502 +#: js/blocks/VolumeBlocks.js:545 +msgid "volume" +msgstr "" + +#: js/turtledefs.js:126 +#: js/turtledefs.js:228 +#: js/block-verbose.js:1700 +#: js/block-verbose.js:2626 +#: js/block.js:1664 +#: js/block.js:2554 +#: js/lilypond.js:732 +#: js/lilypond.js:897 +#: js/lilypond.js:941 +#: js/palette.js:577 +#: js/blocks/RhythmBlocks.js:766 +#: js/blocks/DrumBlocks.js:477 +#: js/blocks/VolumeBlocks.js:502 +#: js/widgets/phrasemaker.js:1038 +msgid "drum" +msgstr "" + +#: js/turtledefs.js:129 +#: js/turtledefs.js:231 +msgid "boxes" +msgstr "" + +#: js/turtledefs.js:130 +#: js/turtledefs.js:232 +msgid "widgets" +msgstr "" + +#: js/turtledefs.js:131 +#: js/turtledefs.js:233 +#: js/widgets/phrasemaker.js:1039 +msgid "graphics" +msgstr "" + +#: js/turtledefs.js:134 +#: js/turtledefs.js:236 +msgid "boolean" +msgstr "" + +#: js/turtledefs.js:137 +#: js/turtledefs.js:239 +#: js/blocks/HeapBlocks.js:59 +#: js/widgets/status.js:147 +msgid "heap" +msgstr "" + +#: js/turtledefs.js:138 +#: js/turtledefs.js:240 +#: js/blocks/DictBlocks.js:142 +#: js/blocks/ProgramBlocks.js:495 +msgid "dictionary" +msgstr "" + +#: js/turtledefs.js:139 +#: js/turtledefs.js:241 +msgid "ensemble" +msgstr "" + +#: js/turtledefs.js:140 +#: js/turtledefs.js:242 +msgid "extras" +msgstr "" + +#: js/turtledefs.js:142 +#: js/turtledefs.js:244 +#.TRANS: program as in computer program +#.TRANS: program as in computer program +msgid "program" +msgstr "" + +#: js/turtledefs.js:143 +#: js/turtledefs.js:245 +msgid "my blocks" +msgstr "" + +#: js/turtledefs.js:185 +#: js/turtledefs.js:281 +msgid "artwork" +msgstr "" + +#: js/turtledefs.js:185 +#: js/turtledefs.js:281 +msgid "logic" msgstr "" -#: js/piemenus.js:3766 -msgid " for your pitch preview." +#: js/turtledefs.js:185 +#: js/turtledefs.js:281 +msgid "music" msgstr "" -#: js/palette.js:571 -msgid "grid" +#: js/turtledefs.js:187 +#: js/turtledefs.js:463 +msgid "Music Blocks is a collection of tools for exploring fundamental musical concepts in a fun way." msgstr "" -#: js/palette.js:577 -#: js/block.js:1540 -#: js/block.js:2343 -#: js/turtledefs.js:126 -#: js/turtledefs.js:228 -#: js/lilypond.js:740 -#: js/lilypond.js:905 -#: js/lilypond.js:949 -#: js/DrumBlocks.js:486 -#: js/RhythmBlocks.js:766 -#: js/VolumeBlocks.js:502 -#: js/phrasemaker.js:823 -msgid "drum" +#: js/turtledefs.js:436 +msgid "Welcome to Turtle Blocks" msgstr "" -#: js/palette.js:580 -msgid "effect" +#: js/turtledefs.js:438 +#: js/turtledefs.js:465 +#: js/turtledefs.js:774 +#: js/turtledefs.js:805 +msgid "The current version is" msgstr "" -#: js/palette.js:586 -msgid "sargam" +#: js/turtledefs.js:446 +#: js/turtledefs.js:483 +msgid "Click the run button to run the project in fast mode." msgstr "" -#: js/palette.js:589 -#: js/activity.js:1833 -#: js/RhythmBlocks.js:923 -#: js/PitchBlocks.js:442 -#: js/PitchBlocks.js:1748 -#.TRANS: a numeric mapping of the notes in an octave based on the musical mode -msgid "scale degree" +#: js/turtledefs.js:452 +msgid "Stop the turtle." msgstr "" -#: js/palette.js:592 -#: js/activity.js:1860 -msgid "mode name" +#: js/turtledefs.js:454 +#: js/turtledefs.js:491 +msgid "You can also type Alt-S to stop." msgstr "" -#: js/palette.js:595 -#: js/activity.js:1839 -msgid "invert mode" +#: js/turtledefs.js:462 +#: js/widgets/help.js:333 +msgid "Welcome to Music Blocks" msgstr "" -#: js/palette.js:598 -#: js/activity.js:1836 -msgid "voice name" +#: js/turtledefs.js:472 +#: js/widgets/help.js:334 +msgid "Meet Mr. Mouse!" msgstr "" -#: js/palette.js:601 -#: js/PitchBlocks.js:1181 -msgid "custom pitch" +#: js/turtledefs.js:473 +msgid "Mr Mouse is our Music Blocks conductor." msgstr "" -#: js/palette.js:605 -#: js/block.js:1456 -#: js/block.js:1575 -#: js/WidgetBlocks.js:218 -#: js/IntervalsBlocks.js:63 -msgid "temperament" +#: js/turtledefs.js:475 +msgid "Mr Mouse encourages you to explore Music Blocks." msgstr "" -#: js/palette.js:609 -msgid "accidental" +#: js/turtledefs.js:477 +msgid "Let us start our tour!" msgstr "" -#: js/palette.js:615 -#: js/activity.js:1866 -msgid "interval name" +#: js/turtledefs.js:489 +msgid "Stop the music (and the mice)." msgstr "" -#: js/palette.js:633 -#: js/PitchBlocks.js:405 -msgid "pitch converter" +#: js/turtledefs.js:499 +msgid "Record your project as video." msgstr "" -#: js/rubrics.js:522 -#: js/turtledefs.js:119 -#: js/turtledefs.js:221 -#: js/RhythmBlockPaletteBlocks.js:52 -#: js/RhythmBlockPaletteBlocks.js:233 -#: js/ProgramBlocks.js:745 -#: js/rhythmruler.js:1670 -#: js/rhythmruler.js:1677 -#: js/rhythmruler.js:1745 -#: js/rhythmruler.js:1752 -#: js/rhythmruler.js:1830 -#.TRANS: an arrangement of notes based on duration -msgid "rhythm" +#: js/turtledefs.js:505 +msgid "Toggle Fullscreen mode." msgstr "" -#: js/rubrics.js:523 -#: js/block.js:2339 -#: js/turtledefs.js:121 -#: js/turtledefs.js:223 -#: js/IntervalsBlocks.js:63 -#: js/PitchBlocks.js:1801 -#: js/PitchBlocks.js:1814 -#: js/SensorsBlocks.js:178 -#: js/phrasemaker.js:821 -#: js/musickeyboard.js:1653 -#.TRANS: pitch number -#.TRANS: we specify pitch in terms of a name and an octave. The name can be CDEFGAB or Do Re Mi Fa Sol La Ti. Octave is a number between 1 and 8. -msgid "pitch" +#: js/turtledefs.js:511 +msgid "Initialize a new project." msgstr "" -#: js/rubrics.js:524 -#: js/turtledefs.js:123 -#: js/turtledefs.js:225 -msgid "tone" +#: js/turtledefs.js:517 +msgid "You can also load projects from the file system." msgstr "" -#: js/rubrics.js:525 -#: js/lilypond.js:613 -#: js/lilypond.js:912 -#: js/lilypond.js:918 -#: js/lilypond.js:956 -msgid "mouse" +#: js/turtledefs.js:522 +#: planet/js/StringHelper.js:46 +msgid "Delete" msgstr "" -#: js/rubrics.js:526 -#: js/turtledefs.js:132 -#: js/turtledefs.js:234 -#: js/phrasemaker.js:825 -msgid "pen" +#: js/turtledefs.js:523 +msgid "To delete a block, just right-click on it, then you will be able to see the delete option" msgstr "" -#: js/rubrics.js:527 -#: js/turtledefs.js:133 -#: js/turtledefs.js:235 -#: js/NumberBlocks.js:905 -#: js/PitchBlocks.js:1679 -#: js/PitchBlocks.js:1720 -msgid "number" -msgstr "число" +#: js/turtledefs.js:528 +#: js/activity.js:2649 +#: planet/js/LocalCard.js:31 +msgid "Copy" +msgstr "Копировать" -#: js/rubrics.js:528 -#: js/turtledefs.js:127 -#: js/turtledefs.js:229 -msgid "flow" +#: js/turtledefs.js:529 +msgid "To copy a block, just right-click on it, then you will be able to see the copy option" msgstr "" -#: js/rubrics.js:530 -#: js/turtledefs.js:136 -#: js/turtledefs.js:238 -msgid "sensors" +#: js/turtledefs.js:534 +#: js/piemenus.js:3411 +msgid "Extract" msgstr "" -#: js/rubrics.js:531 -#: js/turtledefs.js:135 -#: js/turtledefs.js:237 -#: js/MediaBlocks.js:930 -msgid "media" +#: js/turtledefs.js:535 +msgid "To extract a block, just right-click on it, then you will be able to see the extract option" msgstr "" -#: js/rubrics.js:532 -msgid "mice" +#: js/turtledefs.js:542 +#: js/turtledefs.js:552 +#: js/turtledefs.js:573 +msgid "Save your project to a file." msgstr "" -#: js/macros.js:711 -#: js/musicutils.js:783 -#: js/synthutils.js:181 -#.TRANS: animal sound effect -msgid "duck" +#: js/turtledefs.js:549 +#: js/turtledefs.js:570 +msgid "save" msgstr "" -#: js/toolbar.js:46 -#: js/toolbar.js:107 -msgid "About Music Blocks" +#: js/turtledefs.js:556 +#: js/turtledefs.js:577 +msgid "Save graphics from your project to as SVG." msgstr "" -#: js/toolbar.js:47 -#: js/toolbar.js:108 -#: js/toolbar.js:172 -#: js/toolbar.js:228 -#: js/turtledefs.js:445 -#: js/turtledefs.js:482 -#: js/activity.js:2281 -#: js/activity.js:2289 -#: js/activity.js:2520 -#: js/modewidget.js:77 -#: js/pitchstaircase.js:121 -#: js/phrasemaker.js:302 -#: js/phrasemaker.js:312 -#: js/phrasemaker.js:314 -#: js/phrasemaker.js:3901 -#: js/phrasemaker.js:4061 -#: js/phrasemaker.js:4066 -#: js/phrasemaker.js:4068 -#: js/phrasemaker.js:4183 -#: js/pitchdrummatrix.js:81 -#: js/pitchdrummatrix.js:574 -#: js/pitchdrummatrix.js:576 -#: js/pitchdrummatrix.js:628 -#: js/pitchdrummatrix.js:630 -#: js/pitchdrummatrix.js:645 -#: js/pitchdrummatrix.js:647 -#: js/pitchdrummatrix.js:674 -#: js/pitchdrummatrix.js:676 -#: js/temperament.js:477 -#: js/temperament.js:480 -#: js/temperament.js:540 -#: js/temperament.js:542 -#: js/temperament.js:1835 -#: js/temperament.js:1837 -#: js/temperament.js:1986 -#: js/temperament.js:1988 -#: js/musickeyboard.js:522 -#: js/musickeyboard.js:682 -#: js/musickeyboard.js:684 -#: js/musickeyboard.js:756 -#: js/musickeyboard.js:758 -#: js/rhythmruler.js:298 -#: js/rhythmruler.js:300 -#: js/rhythmruler.js:314 -#: js/rhythmruler.js:316 -#: js/sampler.js:96 -#: js/sampler.js:98 -#: js/sampler.js:229 -#: js/sampler.js:235 -#: js/sampler.js:237 -#: js/tempo.js:84 -#: js/tempo.js:86 -#: js/timbre.js:432 -#: js/timbre.js:434 -#: js/timbre.js:465 -#: js/timbre.js:467 -#: js/timbre.js:746 -#: js/meterwidget.js:80 -#: js/arpeggio.js:90 -#: js/arpeggio.js:547 -#: js/arpeggio.js:549 -#: js/arpeggio.js:644 -#: js/arpeggio.js:646 -msgid "Play" +#: js/turtledefs.js:560 +#: js/turtledefs.js:581 +msgid "Save graphics from your project as PNG." msgstr "" -#: js/toolbar.js:48 -#: js/toolbar.js:109 -#: js/toolbar.js:173 -#: js/toolbar.js:229 -#: js/turtledefs.js:451 -#: js/turtledefs.js:488 -#: js/activity.js:2297 -#: js/modewidget.js:99 -#: js/modewidget.js:101 -#: js/phrasemaker.js:323 -#: js/phrasemaker.js:325 -#: js/pitchdrummatrix.js:561 -#: js/pitchdrummatrix.js:563 -#: js/temperament.js:1820 -#: js/temperament.js:1822 -#: js/meterwidget.js:101 -#: js/meterwidget.js:103 -#: js/arpeggio.js:534 -#: js/arpeggio.js:536 -msgid "Stop" -msgstr "Стоп" +#: js/turtledefs.js:564 +#: js/turtledefs.js:597 +msgid "Save block artwork as an SVG file." +msgstr "" -#: js/toolbar.js:49 -#: js/toolbar.js:110 -#: js/toolbar.js:174 -#: js/toolbar.js:230 -#: js/turtledefs.js:498 -msgid "Record" +#: js/turtledefs.js:585 +msgid "Save audio from your project as WAV." msgstr "" -#: js/toolbar.js:50 -#: js/toolbar.js:51 -msgid "Full screen" +#: js/turtledefs.js:589 +msgid "Save your project to as an ABC file." msgstr "" -#: js/toolbar.js:52 -#: js/toolbar.js:112 -#: js/toolbar.js:177 -#: js/toolbar.js:232 -#: js/turtledefs.js:504 -msgid "Toggle Fullscreen" +#: js/turtledefs.js:593 +msgid "Save your project to as a Lilypond file." msgstr "" -#: js/toolbar.js:53 -#: js/toolbar.js:113 -#: js/toolbar.js:178 -#: js/toolbar.js:233 -#: js/turtledefs.js:510 -#: js/StringHelper.js:33 -msgid "New project" +#: js/turtledefs.js:604 +msgid "Load samples from server" msgstr "" -#: js/toolbar.js:54 -#: js/toolbar.js:114 -#: js/toolbar.js:179 -#: js/toolbar.js:234 -#: js/turtledefs.js:516 -msgid "Load project from file" +#: js/turtledefs.js:605 +msgid "This button opens a viewer for loading example projects." msgstr "" -#: js/toolbar.js:55 -#: js/toolbar.js:115 -#: js/toolbar.js:116 -#: js/toolbar.js:180 -#: js/toolbar.js:235 -#: js/turtledefs.js:541 -#: js/turtledefs.js:550 -#: js/turtledefs.js:571 -msgid "Save project" +#: js/turtledefs.js:611 +msgid "Palette buttons" msgstr "" -#: js/toolbar.js:56 -#: js/toolbar.js:75 -#: js/toolbar.js:77 -#: js/toolbar.js:135 -#: js/toolbar.js:144 -#: js/toolbar.js:146 -#: js/toolbar.js:181 -#: js/toolbar.js:199 -#: js/toolbar.js:201 -#: js/toolbar.js:236 -#: js/toolbar.js:254 -#: js/toolbar.js:256 -msgid "Save project as HTML" +#: js/turtledefs.js:612 +msgid "This toolbar contains the palette buttons including Rhythm Pitch Tone Action and more." msgstr "" -#: js/toolbar.js:57 -#: js/toolbar.js:117 -#: js/toolbar.js:182 -#: js/toolbar.js:237 -msgid "Find and share projects" +#: js/turtledefs.js:614 +msgid "Click to show the palettes of blocks and drag blocks from the palettes onto the canvas to use them." msgstr "" -#: js/toolbar.js:58 -#: js/toolbar.js:118 -#: js/toolbar.js:183 -#: js/toolbar.js:238 -msgid "Offline. Sharing is unavailable" +#: js/turtledefs.js:620 +msgid "Cartesian/Polar" msgstr "" -#: js/toolbar.js:59 -#: js/toolbar.js:119 -#: js/toolbar.js:184 -#: js/toolbar.js:239 -msgid "Auxiliary menu" +#: js/turtledefs.js:621 +msgid "Show or hide a coordinate grid." +msgstr "" + +#: js/turtledefs.js:626 +#: js/turtles.js:902 +msgid "Clean" +msgstr "Очистить" + +#: js/turtledefs.js:627 +msgid "Clear the screen and return the mice to their initial positions." +msgstr "" + +#: js/turtledefs.js:632 +#: js/turtles.js:955 +msgid "Collapse" msgstr "" -#: js/toolbar.js:61 -#: js/toolbar.js:121 -#: js/toolbar.js:186 -#: js/toolbar.js:241 -msgid "Run slowly" +#: js/turtledefs.js:633 +msgid "Collapse the graphics window." msgstr "" -#: js/toolbar.js:62 -#: js/toolbar.js:122 -#: js/toolbar.js:187 -#: js/toolbar.js:242 -#: js/turtledefs.js:682 -msgid "Run step by step" +#: js/turtledefs.js:638 +#: js/activity.js:5684 +msgid "Home" msgstr "" -#: js/toolbar.js:63 -#: js/toolbar.js:123 -#: js/toolbar.js:188 -#: js/toolbar.js:243 -#: js/turtledefs.js:689 -msgid "Display statistics" +#: js/turtledefs.js:639 +msgid "Return all blocks to the center of the screen." msgstr "" -#: js/toolbar.js:64 -#: js/toolbar.js:124 -#: js/toolbar.js:189 -#: js/toolbar.js:244 -msgid "Load plugin" +#: js/turtledefs.js:644 +msgid "Show/hide blocks" +msgstr "Показать/скрыть блоки" + +#: js/turtledefs.js:645 +msgid "Hide or show the blocks and the palettes." msgstr "" -#: js/toolbar.js:65 -#: js/toolbar.js:125 -#: js/toolbar.js:190 -#: js/toolbar.js:245 -#: js/turtledefs.js:696 -msgid "Delete plugin" +#: js/turtledefs.js:650 +msgid "Expand/collapse collapsable blocks" msgstr "" -#: js/toolbar.js:66 -#: js/toolbar.js:126 -#: js/toolbar.js:191 -#: js/toolbar.js:246 -msgid "Enable horizontal scrolling" +#: js/turtledefs.js:651 +msgid "Expand or collapse start and action stacks." msgstr "" -#: js/toolbar.js:67 -#: js/toolbar.js:127 -#: js/toolbar.js:192 -#: js/toolbar.js:247 -msgid "Disable horizontal scrolling" +#: js/turtledefs.js:658 +#: js/activity.js:5704 +msgid "Decrease block size" msgstr "" -#: js/toolbar.js:68 -#: js/toolbar.js:128 -#: js/toolbar.js:193 -#: js/toolbar.js:248 -#: js/LocalCard.js:54 -#: js/StringHelper.js:71 -msgid "Merge with current project" +#: js/turtledefs.js:659 +msgid "Decrease the size of the blocks." msgstr "" -#: js/toolbar.js:69 -#: js/toolbar.js:129 -msgid "Set Pitch Preview" +#: js/turtledefs.js:664 +#: js/activity.js:5710 +msgid "Increase block size" msgstr "" -#: js/toolbar.js:70 -#: js/toolbar.js:130 -#: js/toolbar.js:194 -#: js/toolbar.js:249 -msgid "Toggle JavaScript Editor" +#: js/turtledefs.js:665 +msgid "Increase the size of the blocks." msgstr "" -#: js/toolbar.js:71 -#: js/toolbar.js:131 -#: js/toolbar.js:195 -#: js/toolbar.js:250 -#: js/turtledefs.js:724 -msgid "Restore" +#: js/turtledefs.js:670 +msgid "Expand/collapse option toolbar" msgstr "" -#: js/toolbar.js:72 -#: js/toolbar.js:132 -#: js/toolbar.js:196 -#: js/toolbar.js:251 -msgid "Switch to beginner mode" +#: js/turtledefs.js:671 +msgid "Click this button to expand or collapse the auxillary toolbar." msgstr "" -#: js/toolbar.js:73 -#: js/toolbar.js:133 -#: js/toolbar.js:197 -#: js/toolbar.js:252 -msgid "Switch to advanced mode" +#: js/turtledefs.js:676 +msgid "Run slow" msgstr "" -#: js/toolbar.js:74 -#: js/toolbar.js:134 -#: js/toolbar.js:143 -#: js/toolbar.js:198 -#: js/toolbar.js:253 -#: js/turtledefs.js:738 -msgid "Select language" +#: js/turtledefs.js:677 +msgid "Click to run the project in slow mode." msgstr "" -#: js/toolbar.js:76 -#: js/toolbar.js:79 -#: js/toolbar.js:137 -#: js/turtledefs.js:579 -msgid "Save mouse artwork as PNG" +#: js/turtledefs.js:683 +msgid "Click to run the project step by step." msgstr "" -#: js/toolbar.js:78 -#: js/toolbar.js:136 -#: js/turtledefs.js:575 -msgid "Save mouse artwork as SVG" +#: js/turtledefs.js:690 +msgid "Display statistics about your Music project." msgstr "" -#: js/toolbar.js:80 -#: js/toolbar.js:138 -#: js/turtledefs.js:583 -msgid "Save music as WAV" +#: js/turtledefs.js:697 +msgid "Delete a selected plugin." msgstr "" -#: js/toolbar.js:81 -#: js/toolbar.js:139 -#: js/turtledefs.js:587 -msgid "Save sheet music as ABC" +#: js/turtledefs.js:704 +msgid "Enable scrolling" msgstr "" -#: js/toolbar.js:82 -#: js/toolbar.js:140 -#: js/turtledefs.js:591 -msgid "Save sheet music as Lilypond" +#: js/turtledefs.js:705 +msgid "You can scroll the blocks on the canvas." msgstr "" -#: js/toolbar.js:83 -msgid "Save sheet music as MusicXML" +#: js/turtledefs.js:714 +msgid "Wrap Turtle" msgstr "" -#: js/toolbar.js:84 -#: js/toolbar.js:141 -#: js/toolbar.js:149 -#: js/toolbar.js:204 -#: js/toolbar.js:259 -#: js/turtledefs.js:562 -#: js/turtledefs.js:595 -msgid "Save block artwork as SVG" +#: js/turtledefs.js:715 +msgid "Turn Turtle wrapping On or Off." msgstr "" -#: js/toolbar.js:85 -#: js/toolbar.js:142 -#: js/toolbar.js:150 -#: js/toolbar.js:205 -#: js/toolbar.js:260 -msgid "Confirm" +#: js/turtledefs.js:725 +msgid "Restore blocks from the trash." msgstr "" -#: js/toolbar.js:86 -#: js/toolbar.js:151 -#: js/toolbar.js:206 -#: js/toolbar.js:261 -msgid "English (United States)" +#: js/turtledefs.js:732 +msgid "Switch mode" msgstr "" -#: js/toolbar.js:87 -#: js/toolbar.js:152 -#: js/toolbar.js:207 -#: js/toolbar.js:262 -msgid "English (United Kingdom)" +#: js/turtledefs.js:733 +msgid "Switch between beginner and advance modes." msgstr "" -#: js/toolbar.js:88 -#: js/toolbar.js:153 -#: js/toolbar.js:208 -#: js/toolbar.js:263 -msgid "日本語" +#: js/turtledefs.js:739 +msgid "Select your language preference." msgstr "" -#: js/toolbar.js:89 -msgid "한국어" +#: js/turtledefs.js:745 +msgid "Keyboard shortcuts" msgstr "" -#: js/toolbar.js:90 -#: js/toolbar.js:155 -#: js/toolbar.js:210 -#: js/toolbar.js:265 -msgid "español" +#: js/turtledefs.js:746 +msgid "You can type d to create a do block and r to create a re block etc." msgstr "" -#: js/toolbar.js:91 -#: js/toolbar.js:156 -#: js/toolbar.js:211 -#: js/toolbar.js:266 -msgid "português" +#: js/turtledefs.js:753 +msgid "Show these messages." msgstr "" -#: js/toolbar.js:92 -#: js/toolbar.js:157 -#: js/toolbar.js:212 -#: js/toolbar.js:267 -msgid "にほんご" +#: js/turtledefs.js:759 +#: js/turtledefs.js:790 +#: js/widgets/help.js:335 +msgid "Guide" msgstr "" -#: js/toolbar.js:93 -#: js/toolbar.js:158 -#: js/toolbar.js:213 -#: js/toolbar.js:268 -msgid "中文" +#: js/turtledefs.js:760 +msgid "A detailed guide to Turtle Blocks is available." msgstr "" -#: js/toolbar.js:94 -#: js/toolbar.js:159 -#: js/toolbar.js:214 -#: js/toolbar.js:269 -msgid "ภาษาไทย" +#: js/turtledefs.js:764 +msgid "Turtle Blocks Guide" msgstr "" -#: js/toolbar.js:95 -#: js/toolbar.js:160 -#: js/toolbar.js:215 -#: js/toolbar.js:270 -msgid "aymara" +#: js/turtledefs.js:767 +#: js/turtledefs.js:798 +#: js/widgets/help.js:336 +msgid "About" msgstr "" -#: js/toolbar.js:96 -#: js/toolbar.js:161 -#: js/toolbar.js:216 -#: js/toolbar.js:271 -msgid "quechua" +#: js/turtledefs.js:768 +msgid "Turtle Blocks is an open source collection of tools for exploring musical concepts." msgstr "" -#: js/toolbar.js:97 -#: js/toolbar.js:162 -#: js/toolbar.js:217 -#: js/toolbar.js:272 -msgid "guarani" +#: js/turtledefs.js:770 +msgid "A full list of contributors can be found in the Turtle Blocks GitHub repository." msgstr "" -#: js/toolbar.js:98 -#: js/toolbar.js:163 -#: js/toolbar.js:218 -#: js/toolbar.js:273 -msgid "हिंदी" +#: js/turtledefs.js:772 +msgid "Turtle Blocks is licensed under the AGPL." msgstr "" -#: js/toolbar.js:99 -#: js/toolbar.js:165 -#: js/toolbar.js:219 -#: js/toolbar.js:275 -msgid "igbo" +#: js/turtledefs.js:780 +msgid "Turtle Blocks GitHub repository" msgstr "" -#: js/toolbar.js:100 -#: js/toolbar.js:166 -#: js/toolbar.js:220 -#: js/toolbar.js:276 -msgid "عربى" +#: js/turtledefs.js:783 +#: js/turtledefs.js:814 +#: js/widgets/help.js:337 +#: js/widgets/help.js:359 +msgid "Congratulations." msgstr "" -#: js/toolbar.js:101 -#: js/toolbar.js:164 -#: js/toolbar.js:221 -#: js/toolbar.js:274 -msgid "తెలుగు" +#: js/turtledefs.js:784 +msgid "You have finished the tour. Please enjoy Turtle Blocks!" msgstr "" -#: js/toolbar.js:102 -#: js/toolbar.js:167 -#: js/toolbar.js:222 -#: js/toolbar.js:277 -msgid "עִברִית" +#: js/turtledefs.js:791 +msgid "A detailed guide to Music Blocks is available." msgstr "" -#: js/toolbar.js:111 -#: js/toolbar.js:175 -#: js/toolbar.js:176 -#: js/toolbar.js:231 -msgid "Full Screen" +#: js/turtledefs.js:799 +msgid "Music Blocks is an open source collection of tools for exploring musical concepts." msgstr "" -#: js/toolbar.js:145 -#: js/toolbar.js:148 -#: js/toolbar.js:200 -#: js/toolbar.js:203 -#: js/toolbar.js:255 -#: js/toolbar.js:258 -#: js/turtledefs.js:558 -msgid "Save turtle artwork as PNG" +#: js/turtledefs.js:801 +msgid "A full list of contributors can be found in the Music Blocks GitHub repository." msgstr "" -#: js/toolbar.js:147 -#: js/toolbar.js:202 -#: js/toolbar.js:257 -#: js/turtledefs.js:554 -msgid "Save turtle artwork as SVG" +#: js/turtledefs.js:803 +msgid "Music Blocks is licensed under the AGPL." msgstr "" -#: js/toolbar.js:154 -#: js/toolbar.js:209 -#: js/toolbar.js:264 -msgid "한국인" +#: js/turtledefs.js:811 +msgid "Music Blocks GitHub repository" msgstr "" -#: js/toolbar.js:171 -#: js/toolbar.js:227 -msgid "About Turtle Blocks" +#: js/turtledefs.js:815 +msgid "You have finished the tour. Please enjoy Music Blocks!" msgstr "" -#: js/toolbar.js:429 -#: js/toolbar.js:440 -msgid "Turtle Wrap Off" +#: js/turtles.js:882 +msgid "Grid" msgstr "" -#: js/toolbar.js:442 -msgid "Turtle Wrap On" +#: js/turtles.js:1024 +msgid "Expand" +msgstr "" + +#: js/block-verbose.js:1616 +#: js/block-verbose.js:1735 +#: js/block.js:1580 +#: js/block.js:1699 +#: js/palette.js:605 +#: js/blocks/IntervalsBlocks.js:63 +#: js/blocks/WidgetBlocks.js:259 +msgid "temperament" msgstr "" -#: js/block.js:1470 +#: js/block-verbose.js:1630 +#: js/block.js:1594 msgid "matrix" msgstr "" -#: js/block.js:1477 -#: js/WidgetBlocks.js:1226 +#: js/block-verbose.js:1637 +#: js/block.js:1601 +#: js/blocks/WidgetBlocks.js:1509 #: plugins/rodi.rtp:324 msgid "status" msgstr "" -#: js/block.js:1484 +#: js/block-verbose.js:1644 +#: js/block.js:1608 msgid "drum mapper" msgstr "" -#: js/block.js:1491 +#: js/block-verbose.js:1651 +#: js/block.js:1615 msgid "ruler" msgstr "" -#: js/block.js:1498 -#: js/WidgetBlocks.js:327 +#: js/block-verbose.js:1658 +#: js/block.js:1622 +#: js/blocks/WidgetBlocks.js:397 #.TRANS: timbre is the character or quality of a musical sound msgid "timbre" msgstr "" -#: js/block.js:1505 +#: js/block-verbose.js:1665 +#: js/block.js:1629 msgid "stair" msgstr "" -#: js/block.js:1512 -#: js/WidgetBlocks.js:577 +#: js/block-verbose.js:1672 +#: js/block.js:1636 +#: js/blocks/WidgetBlocks.js:707 #.TRANS: the speed at music is should be played. msgid "tempo" msgstr "" -#: js/block.js:1519 -#: js/block.js:1582 -#: js/IntervalsBlocks.js:1268 +#: js/block-verbose.js:1679 +#: js/block-verbose.js:1742 +#: js/block.js:1643 +#: js/block.js:1706 +#: js/blocks/IntervalsBlocks.js:1464 #.TRANS: mode, e.g., Major in C Major msgid "mode" msgstr "" -#: js/block.js:1526 +#: js/block-verbose.js:1686 +#: js/block.js:1650 msgid "slider" msgstr "" -#: js/block.js:1533 -#: js/SensorsBlocks.js:1001 +#: js/block-verbose.js:1693 +#: js/block.js:1657 +#: js/blocks/SensorsBlocks.js:1001 msgid "keyboard" msgstr "клавиатура" -#: js/block.js:1547 -#: js/WidgetBlocks.js:957 -#: js/WidgetBlocks.js:988 +#: js/block-verbose.js:1707 +#: js/block.js:1671 +#: js/blocks/WidgetBlocks.js:1190 +#: js/blocks/WidgetBlocks.js:1228 #.TRANS: widget for subdividing a measure into distinct rhythmic elements msgid "rhythm maker" msgstr "" -#: js/block.js:1554 -#: js/block.js:2182 -#: js/block.js:2236 -#: js/RhythmBlockPaletteBlocks.js:70 -#: js/RhythmBlockPaletteBlocks.js:251 -#: js/RhythmBlockPaletteBlocks.js:484 -#: js/RhythmBlockPaletteBlocks.js:553 -#: js/RhythmBlockPaletteBlocks.js:604 -#: js/RhythmBlockPaletteBlocks.js:874 -#: js/RhythmBlocks.js:33 -#: js/RhythmBlocks.js:356 -#: js/RhythmBlocks.js:766 -#: js/RhythmBlocks.js:806 -#: js/OrnamentBlocks.js:220 -#: js/OrnamentBlocks.js:312 -#: js/MeterBlocks.js:1367 -#: js/DictActions.js:85 -#: js/phrasemaker.js:731 -#: js/phrasemaker.js:2393 -#: js/phrasemaker.js:2436 -#: js/phrasemaker.js:2534 +#: js/block-verbose.js:1714 +#: js/block-verbose.js:2457 +#: js/block-verbose.js:2514 +#: js/block.js:1678 +#: js/block.js:2385 +#: js/block.js:2442 +#: js/blocks/MeterBlocks.js:1367 +#: js/blocks/OrnamentBlocks.js:220 +#: js/blocks/OrnamentBlocks.js:312 +#: js/blocks/RhythmBlocks.js:33 +#: js/blocks/RhythmBlocks.js:356 +#: js/blocks/RhythmBlocks.js:766 +#: js/blocks/RhythmBlocks.js:806 +#: js/blocks/RhythmBlockPaletteBlocks.js:70 +#: js/blocks/RhythmBlockPaletteBlocks.js:252 +#: js/blocks/RhythmBlockPaletteBlocks.js:485 +#: js/blocks/RhythmBlockPaletteBlocks.js:554 +#: js/blocks/RhythmBlockPaletteBlocks.js:605 +#: js/blocks/RhythmBlockPaletteBlocks.js:875 +#: js/turtleactions/DictActions.js:85 +#: js/widgets/phrasemaker.js:942 +#: js/widgets/phrasemaker.js:2656 +#: js/widgets/phrasemaker.js:2699 +#: js/widgets/phrasemaker.js:2810 #.TRANS: the value (e.g., 1/4 note) of the note being played. msgid "note value" msgstr "" -#: js/block.js:1561 -#: js/block.js:2110 -#: js/block.js:2133 -#: js/IntervalsBlocks.js:875 -#: js/OrnamentBlocks.js:312 +#: js/block-verbose.js:1721 +#: js/block-verbose.js:2382 +#: js/block-verbose.js:2405 +#: js/block.js:1685 +#: js/block.js:2310 +#: js/block.js:2333 +#: js/blocks/IntervalsBlocks.js:1071 +#: js/blocks/OrnamentBlocks.js:312 #.TRANS: calculate a relative step between notes based on semi-tones msgid "scalar interval" msgstr "" -#: js/block.js:1568 -#: js/RhythmBlocks.js:148 +#: js/block-verbose.js:1728 +#: js/block.js:1692 +#: js/blocks/RhythmBlocks.js:148 msgid "milliseconds" msgstr "" -#: js/block.js:2180 -#: js/block.js:2184 -#: js/block.js:2234 -#: js/block.js:2345 -#: js/ProgramBlocks.js:1273 -#: js/RhythmBlocks.js:712 -#: js/rhythmruler.js:834 -#: js/rhythmruler.js:961 +#: js/block-verbose.js:2455 +#: js/block-verbose.js:2459 +#: js/block-verbose.js:2512 +#: js/block-verbose.js:2628 +#: js/block.js:2383 +#: js/block.js:2387 +#: js/block.js:2440 +#: js/block.js:2556 +#: js/blocks/RhythmBlocks.js:712 +#: js/blocks/ProgramBlocks.js:1273 +#: js/widgets/rhythmruler.js:1183 +#: js/widgets/rhythmruler.js:1329 msgid "silence" msgstr "" -#: js/block.js:2265 -#: js/block.js:3134 -#: js/block.js:3151 -#: js/activity.js:2336 -#: js/activity.js:2387 -#: js/musicutils.js:2932 -#: js/musicutils.js:4287 +#: js/block-verbose.js:2548 +#: js/block-verbose.js:3492 +#: js/block-verbose.js:3509 +#: js/activity.js:2718 +#: js/activity.js:2769 +#: js/block.js:2476 +#: js/block.js:3416 +#: js/block.js:3433 +#: js/utils/musicutils.js:3780 +#: js/utils/musicutils.js:5273 +#.TRANS: the note names must be separated by single spaces #.TRANS: the note names must be separated by single spaces #.TRANS: the note names must be separated by single spaces msgid "ti la sol fa mi re do" msgstr "" -#: js/block.js:2333 +#: js/block-verbose.js:2616 +#: js/block.js:2544 +#.TRANS: scalar step #.TRANS: scalar step msgid "down" msgstr "" -#: js/block.js:2334 +#: js/block-verbose.js:2617 +#: js/block.js:2545 msgid "up" msgstr "" -#: js/block.js:3477 -#: js/block.js:3490 -#: js/ExtrasBlocks.js:612 +#: js/block-verbose.js:3026 +#: js/block.js:2950 +msgid "Silence block cannot be removed." +msgstr "" + +#: js/block-verbose.js:3824 +#: js/block.js:3748 +#: js/blocks.js:2607 +#: js/blocks.js:3218 +#: js/palette.js:618 +#: js/blocks/BooleanBlocks.js:77 +#: js/blocks/BooleanBlocks.js:167 +#: js/blocks/BooleanBlocks.js:251 +#: js/blocks/BooleanBlocks.js:335 +#: js/blocks/BooleanBlocks.js:433 +#: js/blocks/BooleanBlocks.js:539 +#: js/blocks/BooleanBlocks.js:640 +#: js/blocks/BooleanBlocks.js:741 +#: js/blocks/BooleanBlocks.js:847 +#: js/blocks/BooleanBlocks.js:948 +#: js/blocks/BooleanBlocks.js:1033 +#: js/blocks/SensorsBlocks.js:910 +msgid "true" +msgstr "" + +#: js/block-verbose.js:3824 +#: js/block.js:3748 +#: js/blocks.js:2609 +#: js/blocks.js:3220 +#: js/blocks/BooleanBlocks.js:79 +#: js/blocks/BooleanBlocks.js:169 +#: js/blocks/BooleanBlocks.js:253 +#: js/blocks/BooleanBlocks.js:337 +#: js/blocks/BooleanBlocks.js:435 +#: js/blocks/BooleanBlocks.js:541 +#: js/blocks/BooleanBlocks.js:642 +#: js/blocks/BooleanBlocks.js:743 +#: js/blocks/BooleanBlocks.js:849 +#: js/blocks/BooleanBlocks.js:950 +#: js/blocks/SensorsBlocks.js:912 +msgid "false" +msgstr "" + +#: js/block-verbose.js:3835 +#: js/block-verbose.js:3848 +#: js/block.js:3759 +#: js/block.js:3772 +#: js/blocks/ExtrasBlocks.js:615 msgid "Cartesian" msgstr "Декартова" -#: js/block.js:3478 -#: js/block.js:3491 -#: js/ExtrasBlocks.js:616 +#: js/block-verbose.js:3836 +#: js/block-verbose.js:3849 +#: js/block.js:3760 +#: js/block.js:3773 +#: js/blocks/ExtrasBlocks.js:619 msgid "polar" msgstr "" -#: js/block.js:3479 -#: js/block.js:3492 -#: js/ExtrasBlocks.js:620 +#: js/block-verbose.js:3837 +#: js/block-verbose.js:3850 +#: js/block.js:3761 +#: js/block.js:3774 +#: js/blocks/ExtrasBlocks.js:623 msgid "Cartesian+polar" msgstr "" -#: js/block.js:3480 -#: js/block.js:3499 -#: js/ExtrasBlocks.js:649 +#: js/block-verbose.js:3838 +#: js/block-verbose.js:3857 +#: js/block.js:3762 +#: js/block.js:3781 +#: js/blocks/ExtrasBlocks.js:652 msgid "none" msgstr "" -#: js/block.js:3493 -#: js/ExtrasBlocks.js:625 +#: js/block-verbose.js:3851 +#: js/block.js:3775 +#: js/blocks/ExtrasBlocks.js:628 msgid "treble" msgstr "" -#: js/block.js:3494 -#: js/ExtrasBlocks.js:629 +#: js/block-verbose.js:3852 +#: js/block.js:3776 +#: js/blocks/ExtrasBlocks.js:632 msgid "grand staff" msgstr "" -#: js/block.js:3495 -#: js/ExtrasBlocks.js:633 +#: js/block-verbose.js:3853 +#: js/block.js:3777 +#: js/blocks/ExtrasBlocks.js:636 msgid "mezzo-soprano" msgstr "" -#: js/block.js:3496 -#: js/ExtrasBlocks.js:637 +#: js/block-verbose.js:3854 +#: js/block.js:3778 +#: js/blocks/ExtrasBlocks.js:640 msgid "alto" msgstr "" -#: js/block.js:3497 -#: js/ExtrasBlocks.js:641 +#: js/block-verbose.js:3855 +#: js/block.js:3779 +#: js/blocks/ExtrasBlocks.js:644 msgid "tenor" msgstr "" -#: js/block.js:3498 -#: js/ExtrasBlocks.js:645 -#: js/musicutils.js:736 -#: js/synthutils.js:64 +#: js/block-verbose.js:3856 +#: js/block.js:3780 +#: js/utils/musicutils.js:1115 +#: js/utils/synthutils.js:80 +#: js/blocks/ExtrasBlocks.js:648 #.TRANS: musical instrument msgid "bass" msgstr "" -#: js/block.js:4075 +#: js/block-verbose.js:3901 +#: js/block.js:3825 +#: js/blocks.js:2600 +#: js/blocks.js:3211 +msgid "on2" +msgstr "" + +#: js/block-verbose.js:3903 +#: js/block.js:3827 +#: js/blocks.js:2602 +#: js/blocks.js:3213 +msgid "off" +msgstr "" + +#: js/block-verbose.js:4470 +#: js/block.js:4394 msgid "Not a number" msgstr "" -#: js/block.js:4082 +#: js/block-verbose.js:4477 +#: js/block.js:4401 msgid "Octave value must be between 1 and 10." msgstr "" -#: js/block.js:4090 +#: js/block-verbose.js:4485 +#: js/block.js:4409 msgid "Numbers can have at most 10 digits." msgstr "" -#: js/notation.js:353 -msgid "Lilypond cannot process pickup of " +#: js/activity.js:390 +#: js/activity.js:395 +msgid "Search for blocks" msgstr "" -#: js/turtledefs.js:40 -#.TRANS: put the URL to the guide here, e.g., https://github.com/sugarlabs/turtleblocksjs/tree/master/guide/README.md -msgid "guide url" +#: js/activity.js:1413 +msgid "Refresh your browser to change to advanced mode." msgstr "" -#: js/turtledefs.js:85 -#: js/turtledefs.js:437 -msgid "Turtle Blocks is a Logo-inspired turtle that draws colorful pictures with snap-together visual-programming blocks." +#: js/activity.js:1418 +msgid "Refresh your browser to change to beginner mode." msgstr "" -#: js/turtledefs.js:118 -#: js/turtledefs.js:220 -msgid "search" +#: js/activity.js:1477 +msgid "Catching mice" msgstr "" -#: js/turtledefs.js:120 -#: js/turtledefs.js:222 -#: js/WidgetBlocks.js:437 -#: js/MeterBlocks.js:1343 -#.TRANS: musical meter (time signature), e.g., 4:4 -msgid "meter" +#: js/activity.js:1478 +msgid "Cleaning the instruments" msgstr "" -#: js/turtledefs.js:122 -#: js/turtledefs.js:224 -msgid "intervals" +#: js/activity.js:1479 +msgid "Testing key pieces" msgstr "" -#: js/turtledefs.js:124 -#: js/turtledefs.js:226 -msgid "ornament" +#: js/activity.js:1480 +msgid "Sight-reading" msgstr "" -#: js/turtledefs.js:125 -#: js/turtledefs.js:227 -#: js/VolumeBlocks.js:362 -#: js/VolumeBlocks.js:502 -#: js/VolumeBlocks.js:545 -msgid "volume" +#: js/activity.js:1481 +msgid "Combining math and music" msgstr "" -#: js/turtledefs.js:129 -#: js/turtledefs.js:231 -msgid "boxes" +#: js/activity.js:1482 +msgid "Generating more blocks" +msgstr "" + +#: js/activity.js:1483 +msgid "Do Re Mi Fa Sol La Ti Do" +msgstr "" + +#: js/activity.js:1484 +msgid "Tuning string instruments" +msgstr "" + +#: js/activity.js:1485 +msgid "Pressing random keys" +msgstr "" + +#: js/activity.js:1663 +msgid "plugins will be removed upon restart." +msgstr "" + +#: js/activity.js:1672 +msgid "show Cartesian" +msgstr "" + +#: js/activity.js:2211 +#: js/palette.js:589 +#: js/blocks/RhythmBlocks.js:923 +#: js/blocks/PitchBlocks.js:442 +#: js/blocks/PitchBlocks.js:1786 +#.TRANS: a numeric mapping of the notes in an octave based on the musical mode +msgid "scale degree" +msgstr "" + +#: js/activity.js:2214 +#: js/palette.js:598 +msgid "voice name" +msgstr "" + +#: js/activity.js:2217 +#: js/palette.js:595 +msgid "invert mode" +msgstr "" + +#: js/activity.js:2220 +msgid "output tools" +msgstr "" + +#: js/activity.js:2223 +msgid "custom note" +msgstr "" + +#: js/activity.js:2226 +msgid "accidental name" +msgstr "" + +#: js/activity.js:2229 +#: js/blocks/PitchBlocks.js:855 +msgid "east indian solfege" +msgstr "" + +#: js/activity.js:2232 +#: js/blocks/PitchBlocks.js:869 +msgid "note name" +msgstr "" + +#: js/activity.js:2235 +#: js/blocks/IntervalsBlocks.js:94 +msgid "temperament name" +msgstr "" + +#: js/activity.js:2238 +#: js/palette.js:592 +msgid "mode name" +msgstr "" + +#: js/activity.js:2241 +msgid "chord name" +msgstr "" + +#: js/activity.js:2244 +#: js/palette.js:615 +msgid "interval name" +msgstr "" + +#: js/activity.js:2247 +msgid "filter type" +msgstr "" + +#: js/activity.js:2250 +msgid "oscillator type" +msgstr "" + +#: js/activity.js:2253 +#: js/blocks.js:2479 +#: js/blocks.js:2487 +msgid "audio file" +msgstr "" + +#: js/activity.js:2256 +#: js/blocks/DrumBlocks.js:32 +msgid "noise name" +msgstr "" + +#: js/activity.js:2259 +#: js/blocks/DrumBlocks.js:75 +msgid "drum name" +msgstr "" + +#: js/activity.js:2262 +#: js/blocks/DrumBlocks.js:119 +msgid "effects name" +msgstr "" + +#: js/activity.js:2265 +msgid "wrap mode" +msgstr "" + +#: js/activity.js:2268 +msgid "load file" +msgstr "" + +#: js/activity.js:2435 +#: js/activity.js:5851 +msgid "This block is deprecated." +msgstr "" + +#: js/activity.js:2437 +#: js/activity.js:5853 +msgid "Block cannot be found." +msgstr "" + +#: js/activity.js:2645 +msgid "Saving block artwork" +msgstr "" + +#: js/activity.js:2656 +msgid "Erase" +msgstr "" + +#: js/activity.js:2683 +#: js/activity.js:2705 +msgid "Paste" +msgstr "Вставить" + +#: js/activity.js:2687 +msgid "Save block help" +msgstr "" + +#: js/activity.js:2772 +msgid "Jumping to the bottom of the page." +msgstr "" + +#: js/activity.js:2778 +msgid "Scrolling up." +msgstr "" + +#: js/activity.js:2783 +msgid "Scrolling down." +msgstr "" + +#: js/activity.js:2788 +msgid "Extracting block" +msgstr "" + +#: js/activity.js:2796 +msgid "Moving block up." +msgstr "" + +#: js/activity.js:2817 +msgid "Moving block down." +msgstr "" + +#: js/activity.js:2838 +msgid "Moving block left." +msgstr "" + +#: js/activity.js:2855 +msgid "Moving block right." +msgstr "" + +#: js/activity.js:2870 +msgid "Jump to home position." +msgstr "" + +#: js/activity.js:2897 +msgid "Hide blocks" +msgstr "" + +#: js/activity.js:4500 +msgid "Click the run button to run the project." +msgstr "" + +#: js/activity.js:5692 +msgid "Show/hide block" msgstr "" -#: js/turtledefs.js:130 -#: js/turtledefs.js:232 -msgid "widgets" +#: js/activity.js:5698 +msgid "Expand/collapse blocks" msgstr "" -#: js/turtledefs.js:131 -#: js/turtledefs.js:233 -#: js/phrasemaker.js:824 -msgid "graphics" +#: js/activity.js:5976 +msgid "Could not parse JSON input." msgstr "" -#: js/turtledefs.js:134 -#: js/turtledefs.js:236 -msgid "boolean" +#: js/activity.js:6475 +#: js/activity.js:6580 +#: js/activity.js:6631 +msgid "Cannot load project from the file. Please check the file type." msgstr "" -#: js/turtledefs.js:137 -#: js/turtledefs.js:239 -#: js/HeapBlocks.js:59 -#: js/status.js:147 -msgid "heap" +#: js/activity.js:6917 +msgid "Invalid parameters" msgstr "" -#: js/turtledefs.js:138 -#: js/turtledefs.js:240 -#: js/ProgramBlocks.js:495 -#: js/DictBlocks.js:142 -msgid "dictionary" +#: js/blocks.js:1212 +#: js/blocks.js:3444 +#: js/blocks.js:3834 +#: js/blocks.js:3865 +#: js/blocks.js:3914 +#: js/blocks.js:3949 +#: js/blocks.js:6586 +#: js/palette.js:509 +#: js/palette.js:638 +#: js/palette.js:1105 +#: js/blocks/BoxesBlocks.js:282 +#: js/blocks/BoxesBlocks.js:285 +#: js/blocks/BoxesBlocks.js:405 +#: js/blocks/BoxesBlocks.js:594 +msgid "box" +msgstr "блок" + +#: js/blocks.js:1713 +msgid "Consider breaking this stack into parts." msgstr "" -#: js/turtledefs.js:139 -#: js/turtledefs.js:241 -msgid "ensemble" +#: js/blocks.js:2472 +#: js/palette.js:653 +#: js/blocks/MediaBlocks.js:602 +msgid "open file" msgstr "" -#: js/turtledefs.js:140 -#: js/turtledefs.js:242 -msgid "extras" +#: js/blocks.js:3247 +#: js/palette.js:574 +#: js/blocks/MediaBlocks.js:892 +#: js/blocks/MediaBlocks.js:963 +msgid "text" +msgstr "текст" + +#: js/blocks.js:3443 +#: js/palette.js:641 +#: js/palette.js:642 +#: js/blocks/BoxesBlocks.js:514 +msgid "store in box" msgstr "" -#: js/turtledefs.js:142 -#: js/turtledefs.js:244 -#.TRANS: program as in computer program -#.TRANS: program as in computer program -msgid "program" +#: js/blocks.js:3448 +#: js/blocks.js:3888 +#: js/blocks.js:3923 +#: js/blocks.js:3958 +#: js/blocks.js:5862 +#: js/blocks.js:5883 +#: js/blocks/BoxesBlocks.js:772 +msgid "box1" msgstr "" -#: js/turtledefs.js:143 -#: js/turtledefs.js:245 -msgid "my blocks" +#: js/blocks.js:3450 +#: js/blocks.js:3890 +#: js/blocks.js:3925 +#: js/blocks.js:3960 +#: js/blocks.js:5864 +#: js/blocks.js:5885 +#: js/blocks/BoxesBlocks.js:663 +msgid "box2" msgstr "" -#: js/turtledefs.js:185 -#: js/turtledefs.js:281 -msgid "artwork" +#: js/blocks.js:4122 +#: js/palette.js:639 +#: js/palette.js:644 +#: js/palette.js:1041 +#: js/blocks/BoxesBlocks.js:591 +msgid "store in" +msgstr "записать в" + +#: js/blocks.js:4122 +#: js/blocks/BoxesBlocks.js:595 +#: js/blocks/DictBlocks.js:215 +#: js/blocks/DictBlocks.js:289 +#: js/blocks/EnsembleBlocks.js:391 +#: js/blocks/EnsembleBlocks.js:402 +#: js/blocks/MediaBlocks.js:746 +#: js/blocks/PitchBlocks.js:656 +#: js/blocks/PitchBlocks.js:934 +#: js/blocks/PitchBlocks.js:1866 +#: js/blocks/ProgramBlocks.js:390 +#: js/blocks/ProgramBlocks.js:495 +#: js/blocks/ProgramBlocks.js:658 +#: js/blocks/ToneBlocks.js:1025 +msgid "name" msgstr "" -#: js/turtledefs.js:185 -#: js/turtledefs.js:281 -msgid "logic" +#: js/blocks.js:4122 +#: js/blocks/BoxesBlocks.js:75 +#: js/blocks/BoxesBlocks.js:595 +#: js/blocks/DictBlocks.js:289 +#: js/blocks/DictBlocks.js:430 +#: js/blocks/HeapBlocks.js:544 +#: js/blocks/RhythmBlocks.js:1130 +msgid "value" +msgstr "значение" + +#: js/blocks.js:4465 +msgid "Forever loop detected inside a note value block. Unexpected things may happen." msgstr "" -#: js/turtledefs.js:185 -#: js/turtledefs.js:281 -msgid "music" +#: js/blocks.js:4988 +msgid "There is no block selected." msgstr "" -#: js/turtledefs.js:187 -#: js/turtledefs.js:463 -msgid "Music Blocks is a collection of tools for exploring fundamental musical concepts in a fun way." +#: js/blocks.js:5091 +#: js/blocks/MediaBlocks.js:888 +msgid "show" +msgstr "показать" + +#: js/blocks.js:5094 +#: js/blocks/MediaBlocks.js:803 +#.TRANS: Avatar is the image used to determine the appearance of the mouse. +msgid "avatar" msgstr "" -#: js/turtledefs.js:436 -msgid "Welcome to Turtle Blocks" +#: js/blocks.js:5097 +#: js/blocks/ToneBlocks.js:1010 +#: js/widgets/sampler.js:975 +#.TRANS: The sound sample that the user uploads. +msgid "sample" msgstr "" -#: js/turtledefs.js:438 -#: js/turtledefs.js:465 -#: js/turtledefs.js:774 -#: js/turtledefs.js:805 -msgid "The current version is" +#: js/lilypond.js:606 +msgid "brown rat" msgstr "" -#: js/turtledefs.js:446 -#: js/turtledefs.js:483 -msgid "Click the run button to run the project in fast mode." +#: js/lilypond.js:607 +msgid "mole" msgstr "" -#: js/turtledefs.js:452 -msgid "Stop the turtle." +#: js/lilypond.js:608 +msgid "chipmunk" msgstr "" -#: js/turtledefs.js:454 -#: js/turtledefs.js:491 -msgid "You can also type Alt-S to stop." +#: js/lilypond.js:609 +msgid "red squirrel" msgstr "" -#: js/turtledefs.js:462 -#: js/help.js:333 -msgid "Welcome to Music Blocks" +#: js/lilypond.js:610 +msgid "guinea pig" msgstr "" -#: js/turtledefs.js:472 -#: js/help.js:334 -msgid "Meet Mr. Mouse!" +#: js/lilypond.js:611 +msgid "capybara" msgstr "" -#: js/turtledefs.js:473 -msgid "Mr Mouse is our Music Blocks conductor." +#: js/lilypond.js:612 +msgid "coypu" msgstr "" -#: js/turtledefs.js:475 -msgid "Mr Mouse encourages you to explore Music Blocks." +#: js/lilypond.js:613 +msgid "black rat" msgstr "" -#: js/turtledefs.js:477 -msgid "Let us start our tour!" +#: js/lilypond.js:614 +msgid "grey squirrel" msgstr "" -#: js/turtledefs.js:489 -msgid "Stop the music (and the mice)." +#: js/lilypond.js:615 +msgid "flying squirrel" msgstr "" -#: js/turtledefs.js:499 -msgid "Record your project as video." +#: js/lilypond.js:616 +msgid "bat" msgstr "" -#: js/turtledefs.js:505 -msgid "Toggle Fullscreen mode." +#: js/lilypond.js:749 +#: js/lilypond.js:913 +#: js/lilypond.js:951 +#: js/blocks/ActionBlocks.js:1256 +#: js/blocks/ExtrasBlocks.js:556 +msgid "start drum" msgstr "" -#: js/turtledefs.js:511 -msgid "Initialize a new project." +#: js/logo.js:61 +msgid "Not a valid pitch name" msgstr "" -#: js/turtledefs.js:517 -msgid "You can also load projects from the file system." +#: js/logo.js:507 +#: js/blocks/ProgramBlocks.js:258 +#: js/blocks/ProgramBlocks.js:427 +msgid "You must select a file." msgstr "" -#: js/turtledefs.js:522 -#: js/StringHelper.js:46 -msgid "Delete" +#: js/logo.js:1696 +msgid "Playback is ready." msgstr "" -#: js/turtledefs.js:523 -msgid "To delete a block, just right-click on it, then you will be able to see the delete option" +#: js/macros.js:711 +#: js/utils/musicutils.js:1162 +#: js/utils/synthutils.js:202 +#.TRANS: animal sound effect +msgid "duck" msgstr "" -#: js/turtledefs.js:528 -#: js/activity.js:2270 -#: js/LocalCard.js:31 -msgid "Copy" -msgstr "Копировать" +#: js/notation.js:353 +msgid "Lilypond cannot process pickup of " +msgstr "" -#: js/turtledefs.js:529 -msgid "To copy a block, just right-click on it, then you will be able to see the copy option" +#: js/palette.js:571 +msgid "grid" msgstr "" -#: js/turtledefs.js:535 -msgid "To extract a block, just right-click on it, then you will be able to see the extract option" +#: js/palette.js:580 +msgid "effect" msgstr "" -#: js/turtledefs.js:542 -#: js/turtledefs.js:552 -#: js/turtledefs.js:573 -msgid "Save your project to a file." +#: js/palette.js:586 +msgid "sargam" msgstr "" -#: js/turtledefs.js:549 -#: js/turtledefs.js:570 -msgid "save" +#: js/palette.js:601 +#: js/blocks/PitchBlocks.js:1209 +msgid "custom pitch" msgstr "" -#: js/turtledefs.js:556 -#: js/turtledefs.js:577 -msgid "Save graphics from your project to as SVG." +#: js/palette.js:609 +msgid "accidental" msgstr "" -#: js/turtledefs.js:560 -#: js/turtledefs.js:581 -msgid "Save graphics from your project as PNG." +#: js/palette.js:633 +#: js/blocks/PitchBlocks.js:405 +msgid "pitch converter" msgstr "" -#: js/turtledefs.js:564 -#: js/turtledefs.js:597 -msgid "Save block artwork as an SVG file." +#: js/piemenus.js:200 +#: js/utils/musicutils.js:1187 +#: js/utils/musicutils.js:1207 +#: js/widgets/musickeyboard.js:2341 +#: js/widgets/phrasemaker.js:1908 +#: js/widgets/sampler.js:810 +#.TRANS: double sharp is a music term related to pitch +msgid "double sharp" msgstr "" -#: js/turtledefs.js:585 -msgid "Save audio from your project as WAV." +#: js/piemenus.js:201 +#: js/utils/musicutils.js:1185 +#: js/utils/musicutils.js:1208 +#: js/blocks/PitchBlocks.js:1539 +#: js/turtleactions/PitchActions.js:323 +#: js/widgets/musickeyboard.js:2342 +#: js/widgets/phrasemaker.js:1909 +#: js/widgets/sampler.js:811 +#.TRANS: sharp is a music term related to pitch +#.TRANS: sharp is a half-step up in pitch +msgid "sharp" msgstr "" -#: js/turtledefs.js:589 -msgid "Save your project to as an ABC file." +#: js/piemenus.js:202 +#: js/utils/musicutils.js:1183 +#: js/utils/musicutils.js:1209 +#: js/widgets/musickeyboard.js:2343 +#: js/widgets/phrasemaker.js:1910 +#: js/widgets/sampler.js:812 +#.TRANS: natural is a music term related to pitch +msgid "natural" msgstr "" -#: js/turtledefs.js:593 -msgid "Save your project to as a Lilypond file." +#: js/piemenus.js:203 +#: js/utils/musicutils.js:1181 +#: js/utils/musicutils.js:1210 +#: js/blocks/PitchBlocks.js:1498 +#: js/turtleactions/PitchActions.js:326 +#: js/widgets/musickeyboard.js:2344 +#: js/widgets/phrasemaker.js:1911 +#: js/widgets/sampler.js:813 +#.TRANS: flat is a music term related to pitch +#.TRANS: flat is a half-step down in pitch +msgid "flat" msgstr "" -#: js/turtledefs.js:604 -msgid "Load samples from server" +#: js/piemenus.js:204 +#: js/utils/musicutils.js:1179 +#: js/utils/musicutils.js:1211 +#: js/widgets/musickeyboard.js:2345 +#: js/widgets/phrasemaker.js:1912 +#: js/widgets/sampler.js:814 +#.TRANS: double flat is a music term related to pitch +msgid "double flat" msgstr "" -#: js/turtledefs.js:605 -msgid "This button opens a viewer for loading example projects." +#: js/piemenus.js:2864 +#: js/utils/musicutils.js:1006 +#: js/blocks/PitchBlocks.js:1385 +#.TRANS: unison is a music term related to intervals +#.TRANS: unison means the note is the same as the current note +msgid "unison" msgstr "" -#: js/turtledefs.js:611 -msgid "Palette buttons" +#: js/piemenus.js:3018 +#: js/piemenus.js:3091 +#: js/utils/musicutils.js:1014 +#: js/utils/musicutils.js:1189 +#: js/utils/musicutils.js:1326 +#.TRANS: major is a music term related to intervals and mode +msgid "major" msgstr "" -#: js/turtledefs.js:612 -msgid "This toolbar contains the palette buttons including Rhythm Pitch Tone Action and more." +#: js/piemenus.js:3018 +#: js/piemenus.js:3091 +#: js/utils/musicutils.js:1032 +#.TRANS: modal scale for music +msgid "ionian" msgstr "" -#: js/turtledefs.js:614 -msgid "Click to show the palettes of blocks and drag blocks from the palettes onto the canvas to use them." +#: js/piemenus.js:3020 +#: js/piemenus.js:3095 +#: js/utils/musicutils.js:1012 +#: js/utils/musicutils.js:1190 +#: js/utils/musicutils.js:1323 +#.TRANS: minor is a music term related to intervals and mode +msgid "minor" msgstr "" -#: js/turtledefs.js:620 -msgid "Cartesian/Polar" +#: js/piemenus.js:3020 +#: js/piemenus.js:3095 +#: js/utils/musicutils.js:1042 +#.TRANS: modal scale for music +msgid "aeolian" msgstr "" -#: js/turtledefs.js:621 -msgid "Show or hide a coordinate grid." +#: js/piemenus.js:3410 +msgid "Duplicate" msgstr "" -#: js/turtledefs.js:627 -msgid "Clear the screen and return the mice to their initial positions." +#: js/piemenus.js:3412 +msgid "Move to trash" msgstr "" -#: js/turtledefs.js:633 -msgid "Collapse the graphics window." +#: js/piemenus.js:3413 +#: js/widgets/timbre.js:968 +#: planet/js/StringHelper.js:69 +msgid "Close" msgstr "" -#: js/turtledefs.js:638 -#: js/activity.js:4256 -#: js/activity.js:4256 -msgid "Home" +#: js/piemenus.js:3419 +msgid "Save stack" msgstr "" -#: js/turtledefs.js:639 -msgid "Return all blocks to the center of the screen." +#: js/piemenus.js:3449 +msgid "In order to copy a sample, you must reload the widget, import the sample again, and export it." msgstr "" -#: js/turtledefs.js:644 -msgid "Show/hide blocks" -msgstr "Показать/скрыть блоки" +#: js/piemenus.js:3812 +msgid "You have chosen key " +msgstr "" -#: js/turtledefs.js:645 -msgid "Hide or show the blocks and the palettes." +#: js/piemenus.js:3816 +msgid " for your pitch preview." msgstr "" -#: js/turtledefs.js:650 -msgid "Expand/collapse collapsable blocks" +#: js/turtle-singer.js:1363 +#.TRANS: partials are weighted components in a harmonic series +msgid "You must have at least one Partial block inside of a Weighted-partial block" msgstr "" -#: js/turtledefs.js:651 -msgid "Expand or collapse start and action stacks." +#: js/turtle-singer.js:2077 +msgid "synth cannot play chords." msgstr "" -#: js/turtledefs.js:658 -#: js/activity.js:4265 -msgid "Decrease block size" +#: js/utils/musicutils.js:505 +#: js/utils/musicutils.js:645 +#: js/widgets/pitchdrummatrix.js:228 +#: js/widgets/musickeyboard.js:2885 +msgid "rest" msgstr "" -#: js/turtledefs.js:659 -msgid "Decrease the size of the blocks." +#: js/utils/musicutils.js:689 +msgid "Perfect unison" msgstr "" -#: js/turtledefs.js:664 -#: js/activity.js:4267 -msgid "Increase block size" +#: js/utils/musicutils.js:689 +msgid "Diminished second" msgstr "" -#: js/turtledefs.js:665 -msgid "Increase the size of the blocks." +#: js/utils/musicutils.js:690 +msgid "Minor second" msgstr "" -#: js/turtledefs.js:670 -msgid "Expand/collapse option toolbar" +#: js/utils/musicutils.js:690 +msgid "Augmented unison" msgstr "" -#: js/turtledefs.js:671 -msgid "Click this button to expand or collapse the auxillary toolbar." +#: js/utils/musicutils.js:691 +msgid "Major second" msgstr "" -#: js/turtledefs.js:676 -msgid "Run slow" +#: js/utils/musicutils.js:691 +msgid "Diminished third" msgstr "" -#: js/turtledefs.js:677 -msgid "Click to run the project in slow mode." +#: js/utils/musicutils.js:692 +msgid "Minor third" msgstr "" -#: js/turtledefs.js:683 -msgid "Click to run the project step by step." +#: js/utils/musicutils.js:692 +msgid "Augmented second" msgstr "" -#: js/turtledefs.js:690 -msgid "Display statistics about your Music project." +#: js/utils/musicutils.js:693 +msgid "Major third" msgstr "" -#: js/turtledefs.js:697 -msgid "Delete a selected plugin." +#: js/utils/musicutils.js:693 +msgid "Diminished fourth" msgstr "" -#: js/turtledefs.js:704 -msgid "Enable scrolling" +#: js/utils/musicutils.js:694 +msgid "Perfect fourth" msgstr "" -#: js/turtledefs.js:705 -msgid "You can scroll the blocks on the canvas." +#: js/utils/musicutils.js:694 +msgid "Augmented third" msgstr "" -#: js/turtledefs.js:714 -msgid "Wrap Turtle" +#: js/utils/musicutils.js:695 +msgid "Diminished fifth" msgstr "" -#: js/turtledefs.js:715 -msgid "Turn Turtle wrapping On or Off." +#: js/utils/musicutils.js:695 +msgid "Augmented fourth" msgstr "" -#: js/turtledefs.js:725 -msgid "Restore blocks from the trash." +#: js/utils/musicutils.js:696 +msgid "Perfect fifth" msgstr "" -#: js/turtledefs.js:732 -msgid "Switch mode" +#: js/utils/musicutils.js:696 +msgid "Diminished sixth" msgstr "" -#: js/turtledefs.js:733 -msgid "Switch between beginner and advance modes." +#: js/utils/musicutils.js:697 +msgid "Minor sixth" msgstr "" -#: js/turtledefs.js:739 -msgid "Select your language preference." +#: js/utils/musicutils.js:697 +msgid "Augmented fifth" msgstr "" -#: js/turtledefs.js:745 -msgid "Keyboard shortcuts" +#: js/utils/musicutils.js:698 +msgid "Major sixth" msgstr "" -#: js/turtledefs.js:746 -msgid "You can type d to create a do block and r to create a re block etc." +#: js/utils/musicutils.js:698 +msgid "Diminished seventh" msgstr "" -#: js/turtledefs.js:753 -msgid "Show these messages." +#: js/utils/musicutils.js:699 +msgid "Minor seventh" msgstr "" -#: js/turtledefs.js:759 -#: js/turtledefs.js:790 -#: js/help.js:335 -msgid "Guide" +#: js/utils/musicutils.js:699 +msgid "Augmented sixth" msgstr "" -#: js/turtledefs.js:760 -msgid "A detailed guide to Turtle Blocks is available." +#: js/utils/musicutils.js:700 +msgid "Major seventh" msgstr "" -#: js/turtledefs.js:764 -msgid "Turtle Blocks Guide" +#: js/utils/musicutils.js:700 +msgid "Diminished octave" msgstr "" -#: js/turtledefs.js:767 -#: js/turtledefs.js:798 -#: js/help.js:336 -msgid "About" +#: js/utils/musicutils.js:701 +msgid "Perfect octave" msgstr "" -#: js/turtledefs.js:768 -msgid "Turtle Blocks is an open source collection of tools for exploring musical concepts." +#: js/utils/musicutils.js:701 +msgid "Augmented seventh" msgstr "" -#: js/turtledefs.js:770 -msgid "A full list of contributors can be found in the Turtle Blocks GitHub repository." +#: js/utils/musicutils.js:702 +msgid "Minor ninth" msgstr "" -#: js/turtledefs.js:772 -msgid "Turtle Blocks is licensed under the AGPL." +#: js/utils/musicutils.js:702 +msgid "Augmented octave" msgstr "" -#: js/turtledefs.js:780 -msgid "Turtle Blocks GitHub repository" +#: js/utils/musicutils.js:703 +msgid "Major ninth" msgstr "" -#: js/turtledefs.js:783 -#: js/turtledefs.js:814 -#: js/help.js:337 -#: js/help.js:359 -msgid "Congratulations." +#: js/utils/musicutils.js:703 +msgid "Diminished tenth" msgstr "" -#: js/turtledefs.js:784 -msgid "You have finished the tour. Please enjoy Turtle Blocks!" +#: js/utils/musicutils.js:704 +msgid "Minor tenth" msgstr "" -#: js/turtledefs.js:791 -msgid "A detailed guide to Music Blocks is available." +#: js/utils/musicutils.js:704 +msgid "Augmented ninth" msgstr "" -#: js/turtledefs.js:795 -#: js/SaveInterface.js:76 -msgid "Music Blocks Guide" +#: js/utils/musicutils.js:705 +msgid "Major tenth" msgstr "" -#: js/turtledefs.js:799 -msgid "Music Blocks is an open source collection of tools for exploring musical concepts." +#: js/utils/musicutils.js:705 +msgid "Diminished eleventh" msgstr "" -#: js/turtledefs.js:801 -msgid "A full list of contributors can be found in the Music Blocks GitHub repository." +#: js/utils/musicutils.js:706 +msgid "Perfect eleventh" msgstr "" -#: js/turtledefs.js:803 -msgid "Music Blocks is licensed under the AGPL." +#: js/utils/musicutils.js:706 +msgid "Augmented tenth" msgstr "" -#: js/turtledefs.js:811 -msgid "Music Blocks GitHub repository" +#: js/utils/musicutils.js:707 +msgid "Diminished twelfth" msgstr "" -#: js/turtledefs.js:815 -msgid "You have finished the tour. Please enjoy Music Blocks!" +#: js/utils/musicutils.js:707 +msgid "Augmented eleventh" msgstr "" -#: js/activity.js:369 -msgid "Search for blocks" +#: js/utils/musicutils.js:708 +msgid "Perfect twelfth" msgstr "" -#: js/activity.js:1145 -msgid "Refresh your browser to change to advanced mode." +#: js/utils/musicutils.js:708 +msgid "Diminished thirteenth" msgstr "" -#: js/activity.js:1150 -msgid "Refresh your browser to change to beginner mode." +#: js/utils/musicutils.js:709 +msgid "Minor thirteenth" msgstr "" -#: js/activity.js:1184 -msgid "Catching mice" +#: js/utils/musicutils.js:709 +msgid "Augmented fifth, plus an octave" msgstr "" -#: js/activity.js:1185 -msgid "Cleaning the instruments" +#: js/utils/musicutils.js:710 +msgid "Major thirteenth" msgstr "" -#: js/activity.js:1186 -msgid "Testing key pieces" +#: js/utils/musicutils.js:710 +msgid "Diminished seventh, plus an octave" msgstr "" -#: js/activity.js:1187 -msgid "Sight-reading" +#: js/utils/musicutils.js:838 +#.TRANS: ordinal number. Please keep exactly one space between each number. +msgid "1st 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th" msgstr "" -#: js/activity.js:1188 -msgid "Combining math and music" +#: js/utils/musicutils.js:1008 +#: js/utils/musicutils.js:1191 +#: js/utils/musicutils.js:1325 +#.TRANS: augmented is a music term related to intervals +msgid "augmented" msgstr "" -#: js/activity.js:1189 -msgid "Generating more blocks" +#: js/utils/musicutils.js:1010 +#: js/utils/musicutils.js:1192 +#: js/utils/musicutils.js:1324 +#.TRANS: diminished is a music term related to intervals and mode +msgid "diminished" msgstr "" -#: js/activity.js:1190 -msgid "Do Re Mi Fa Sol La Ti Do" +#: js/utils/musicutils.js:1016 +#: js/utils/musicutils.js:1322 +#: js/blocks/IntervalsBlocks.js:649 +#: js/turtleactions/IntervalsActions.js:120 +#: js/turtleactions/IntervalsActions.js:124 +#.TRANS: perfect is a music term related to intervals +msgid "perfect" msgstr "" -#: js/activity.js:1191 -msgid "Tuning string instruments" +#: js/utils/musicutils.js:1018 +#.TRANS: twelve semi-tone scale for music +msgid "chromatic" msgstr "" -#: js/activity.js:1192 -msgid "Pressing random keys" +#: js/utils/musicutils.js:1019 +msgid "algerian" msgstr "" -#: js/activity.js:1351 -msgid "plugins will be removed upon restart." +#: js/utils/musicutils.js:1020 +msgid "spanish" msgstr "" -#: js/activity.js:1360 -msgid "show Cartesian" +#: js/utils/musicutils.js:1022 +#.TRANS: modal scale in music +msgid "octatonic" msgstr "" -#: js/activity.js:1842 -msgid "output tools" +#: js/utils/musicutils.js:1024 +#.TRANS: harmonic major scale in music +msgid "harmonic major" msgstr "" -#: js/activity.js:1845 -msgid "custom note" +#: js/utils/musicutils.js:1026 +#.TRANS: natural minor scales in music +msgid "natural minor" msgstr "" -#: js/activity.js:1848 -msgid "accidental name" +#: js/utils/musicutils.js:1028 +#.TRANS: harmonic minor scale in music +msgid "harmonic minor" msgstr "" -#: js/activity.js:1851 -#: js/PitchBlocks.js:855 -msgid "east indian solfege" +#: js/utils/musicutils.js:1030 +#.TRANS: melodic minor scale in music +msgid "melodic minor" msgstr "" -#: js/activity.js:1854 -#: js/PitchBlocks.js:869 -msgid "note name" +#: js/utils/musicutils.js:1034 +#.TRANS: modal scale for music +msgid "dorian" msgstr "" -#: js/activity.js:1857 -#: js/IntervalsBlocks.js:94 -msgid "temperament name" +#: js/utils/musicutils.js:1036 +#.TRANS: modal scale for music +msgid "phrygian" msgstr "" -#: js/activity.js:1863 -msgid "chord name" +#: js/utils/musicutils.js:1038 +#.TRANS: modal scale for music +msgid "lydian" msgstr "" -#: js/activity.js:1869 -msgid "filter type" +#: js/utils/musicutils.js:1040 +#.TRANS: modal scale for music +msgid "mixolydian" msgstr "" -#: js/activity.js:1872 -msgid "oscillator type" +#: js/utils/musicutils.js:1044 +#.TRANS: modal scale for music +msgid "locrian" msgstr "" -#: js/activity.js:1878 -#: js/DrumBlocks.js:32 -msgid "noise name" +#: js/utils/musicutils.js:1046 +#.TRANS: minor jazz scale for music +msgid "jazz minor" msgstr "" -#: js/activity.js:1881 -#: js/DrumBlocks.js:75 -msgid "drum name" +#: js/utils/musicutils.js:1048 +#.TRANS: bebop scale for music +msgid "bebop" msgstr "" -#: js/activity.js:1884 -#: js/DrumBlocks.js:119 -msgid "effects name" +#: js/utils/musicutils.js:1049 +msgid "arabic" msgstr "" -#: js/activity.js:1887 -msgid "wrap mode" +#: js/utils/musicutils.js:1050 +msgid "byzantine" msgstr "" -#: js/activity.js:1890 -msgid "load file" +#: js/utils/musicutils.js:1052 +#.TRANS: musical scale for music by Verdi +msgid "enigmatic" msgstr "" -#: js/activity.js:2056 -msgid "This block is deprecated." +#: js/utils/musicutils.js:1053 +msgid "ethiopian" msgstr "" -#: js/activity.js:2058 -msgid "Block cannot be found." +#: js/utils/musicutils.js:1055 +#.TRANS: Ethiopic scale for music +msgid "geez" msgstr "" -#: js/activity.js:2266 -msgid "Saving block artwork" +#: js/utils/musicutils.js:1056 +msgid "hindu" msgstr "" -#: js/activity.js:2277 -msgid "Erase" +#: js/utils/musicutils.js:1057 +msgid "hungarian" msgstr "" -#: js/activity.js:2301 -#: js/activity.js:2323 -msgid "Paste" -msgstr "Вставить" +#: js/utils/musicutils.js:1059 +#.TRANS: minor Romanian scale for music +msgid "romanian minor" +msgstr "" -#: js/activity.js:2305 -msgid "Save block help" +#: js/utils/musicutils.js:1060 +msgid "spanish gypsy" msgstr "" -#: js/activity.js:2390 -msgid "Jumping to the bottom of the page." +#: js/utils/musicutils.js:1062 +#.TRANS: musical scale for Mid-Eastern music +msgid "maqam" msgstr "" -#: js/activity.js:2396 -msgid "Scrolling up." +#: js/utils/musicutils.js:1064 +#.TRANS: minor blues scale for music +msgid "minor blues" msgstr "" -#: js/activity.js:2401 -msgid "Scrolling down." +#: js/utils/musicutils.js:1066 +#.TRANS: major blues scale for music +msgid "major blues" msgstr "" -#: js/activity.js:2406 -msgid "Extracting block" +#: js/utils/musicutils.js:1067 +msgid "whole tone" msgstr "" -#: js/activity.js:2414 -msgid "Moving block up." +#: js/utils/musicutils.js:1069 +#.TRANS: pentatonic is a general term that means "five note scale". This scale is typically known as "minor pentatonic" +msgid "minor pentatonic" msgstr "" -#: js/activity.js:2435 -msgid "Moving block down." +#: js/utils/musicutils.js:1071 +#.TRANS: pentatonic is a general term that means "five note scale". This scale is typically known as "major pentatonic" +msgid "major pentatonic" msgstr "" -#: js/activity.js:2456 -msgid "Moving block left." +#: js/utils/musicutils.js:1072 +msgid "chinese" msgstr "" -#: js/activity.js:2473 -msgid "Moving block right." +#: js/utils/musicutils.js:1073 +msgid "egyptian" msgstr "" -#: js/activity.js:2488 -msgid "Jump to home position." +#: js/utils/musicutils.js:1075 +#.TRANS: https://en.wikipedia.org/wiki/Hirajoshi_scale NOTE: There are three different versions of this scale +msgid "hirajoshi" msgstr "" -#: js/activity.js:2515 -msgid "Hide blocks" +#: js/utils/musicutils.js:1076 +msgid "Japan" msgstr "" -#: js/activity.js:3389 -msgid "Click the run button to run the project." +#: js/utils/musicutils.js:1078 +#.TRANS: https://en.wikipedia.org/wiki/In_scale and https://en.wikipedia.org/wiki/Sakura_Sakura +msgid "in" msgstr "" -#: js/activity.js:3456 -#: js/SaveInterface.js:131 -#: js/SaveInterface.js:204 -#: js/SaveInterface.js:262 -#: js/SaveInterface.js:389 -#: js/SaveInterface.js:417 -#: js/ProjectStorage.js:27 -#: js/GlobalPlanet.js:467 -#: js/GlobalPlanet.js:469 -#: js/GlobalPlanet.js:495 -#.TRANS: default project title when saving as Lilypond -msgid "My Project" +#: js/utils/musicutils.js:1080 +#.TRANS: https://en.wikipedia.org/wiki/Miny%C5%8D_scale +msgid "minyo" msgstr "" -#: js/activity.js:4261 -msgid "Show/hide block" +#: js/utils/musicutils.js:1082 +#.TRANS: Italian mathematician +msgid "fibonacci" msgstr "" -#: js/activity.js:4263 -msgid "Expand/collapse blocks" +#: js/utils/musicutils.js:1083 +#: js/utils/musicutils.js:1134 +#: js/utils/musicutils.js:1177 +#: js/utils/musicutils.js:1199 +#: js/utils/synthutils.js:134 +#: js/blocks/IntervalsBlocks.js:1124 +#: js/blocks/ToneBlocks.js:946 +#: js/blocks/VolumeBlocks.js:411 +#: js/blocks/WidgetBlocks.js:399 +#: js/blocks/WidgetBlocks.js:404 +#: js/turtleactions/VolumeActions.js:218 +#: js/widgets/modewidget.js:919 +#.TRANS: customize voice +msgid "custom" msgstr "" -#: js/activity.js:4381 -msgid "Could not parse JSON input." +#: js/utils/musicutils.js:1085 +#: js/utils/musicutils.js:1531 +#: js/blocks/WidgetBlocks.js:176 +#.TRANS: highpass filter +msgid "highpass" msgstr "" -#: js/activity.js:4684 -#: js/activity.js:4771 -#: js/activity.js:4821 -msgid "Cannot load project from the file. Please check the file type." +#: js/utils/musicutils.js:1087 +#: js/utils/musicutils.js:1532 +#.TRANS: lowpass filter +msgid "lowpass" msgstr "" -#: js/activity.js:5051 -msgid "Invalid parameters" +#: js/utils/musicutils.js:1089 +#: js/utils/musicutils.js:1533 +#.TRANS: bandpass filter +msgid "bandpass" msgstr "" -#: js/turtle-singer.js:1334 -#.TRANS: partials are weighted components in a harmonic series -msgid "You must have at least one Partial block inside of a Weighted-partial block" +#: js/utils/musicutils.js:1091 +#: js/utils/musicutils.js:1534 +#.TRANS: high-shelf filter +msgid "highshelf" msgstr "" -#: js/turtle-singer.js:2048 -msgid "synth cannot play chords." +#: js/utils/musicutils.js:1093 +#: js/utils/musicutils.js:1535 +#.TRANS: low-shelf filter +msgid "lowshelf" msgstr "" -#: js/lilypond.js:614 -msgid "brown rat" +#: js/utils/musicutils.js:1095 +#: js/utils/musicutils.js:1536 +#.TRANS: notch-shelf filter +msgid "notch" msgstr "" -#: js/lilypond.js:615 -msgid "mole" +#: js/utils/musicutils.js:1097 +#: js/utils/musicutils.js:1537 +#.TRANS: all-pass filter +msgid "allpass" msgstr "" -#: js/lilypond.js:616 -msgid "chipmunk" +#: js/utils/musicutils.js:1099 +#: js/utils/musicutils.js:1538 +#.TRANS: peaking filter +msgid "peaking" msgstr "" -#: js/lilypond.js:617 -msgid "red squirrel" +#: js/utils/musicutils.js:1100 +#: js/utils/musicutils.js:1546 +#: js/utils/synthutils.js:126 +#: js/blocks/PitchBlocks.js:85 +#.TRANS: sine wave +msgid "sine" msgstr "" -#: js/lilypond.js:618 -msgid "guinea pig" +#: js/utils/musicutils.js:1101 +#: js/utils/musicutils.js:1547 +#: js/utils/synthutils.js:128 +#: js/blocks/PitchBlocks.js:39 +#.TRANS: square wave +msgid "square" msgstr "" -#: js/lilypond.js:619 -msgid "capybara" +#: js/utils/musicutils.js:1102 +#: js/utils/musicutils.js:1548 +#: js/utils/synthutils.js:132 +#: js/blocks/PitchBlocks.js:62 +#: js/blocks/ToneBlocks.js:39 +#.TRANS: triangle wave +msgid "triangle" msgstr "" -#: js/lilypond.js:620 -msgid "coypu" +#: js/utils/musicutils.js:1103 +#: js/utils/musicutils.js:1549 +#: js/utils/synthutils.js:130 +#: js/blocks/PitchBlocks.js:108 +#.TRANS: sawtooth wave +msgid "sawtooth" msgstr "" -#: js/lilypond.js:621 -msgid "black rat" +#: js/utils/musicutils.js:1105 +#: js/utils/musicutils.js:1312 +#: js/blocks/PitchBlocks.js:931 +#: js/blocks/PitchBlocks.js:937 +#: js/turtleactions/PitchActions.js:469 +#.TRANS: even numbers +#.TRANS: invert based on even or odd number or musical scale +msgid "even" msgstr "" -#: js/lilypond.js:622 -msgid "grey squirrel" +#: js/utils/musicutils.js:1107 +#: js/utils/musicutils.js:1313 +#: js/blocks/PitchBlocks.js:937 +#: js/turtleactions/PitchActions.js:471 +#.TRANS: odd numbers +msgid "odd" msgstr "" -#: js/lilypond.js:623 -msgid "flying squirrel" +#: js/utils/musicutils.js:1108 +#: js/utils/musicutils.js:1314 +#: js/blocks/PitchBlocks.js:937 +#: js/turtleactions/PitchActions.js:473 +msgid "scalar" msgstr "" -#: js/lilypond.js:624 -msgid "bat" +#: js/utils/musicutils.js:1109 +#: js/utils/synthutils.js:72 +#: js/blocks/VolumeBlocks.js:47 +#.TRANS: musical instrument +msgid "piano" msgstr "" -#: js/lilypond.js:757 -#: js/lilypond.js:921 -#: js/lilypond.js:959 -#: js/ActionBlocks.js:1256 -#: js/ExtrasBlocks.js:553 -msgid "start drum" +#: js/utils/musicutils.js:1110 +#: js/utils/synthutils.js:74 +#.TRANS: musical instrument +msgid "violin" msgstr "" -#: js/SaveInterface.js:59 -#: js/SaveInterface.js:61 -#: js/SaveInterface.js:93 -msgid "Music Blocks Project" +#: js/utils/musicutils.js:1111 +#: js/utils/synthutils.js:76 +#.TRANS: viola musical instrument +msgid "viola" msgstr "" -#: js/SaveInterface.js:63 -msgid "This project was created in Music Blocks" +#: js/utils/musicutils.js:1112 +#: js/utils/synthutils.js:114 +#.TRANS: xylophone musical instrument +msgid "xylophone" msgstr "" -#: js/SaveInterface.js:67 -msgid "Music Blocks is a Free/Libre Software application." +#: js/utils/musicutils.js:1113 +#: js/utils/synthutils.js:136 +#.TRANS: vibraphone musical instrument +msgid "vibraphone" msgstr "" -#: js/SaveInterface.js:69 -msgid "The source code can be accessed at" +#: js/utils/musicutils.js:1114 +#: js/utils/synthutils.js:78 +#.TRANS: musical instrument +msgid "cello" msgstr "" -#: js/SaveInterface.js:72 -msgid "For more information, please consult the" +#: js/utils/musicutils.js:1116 +#: js/utils/synthutils.js:82 +#.TRANS: viola musical instrument +msgid "double bass" msgstr "" -#: js/SaveInterface.js:83 -msgid "Alternatively, open the file in Music Blocks using the Load project button." +#: js/utils/musicutils.js:1117 +#: js/utils/synthutils.js:84 +#: js/widgets/rhythmruler.js:2511 +#.TRANS: musical instrument +msgid "guitar" msgstr "" -#: js/SaveInterface.js:85 -msgid "Project Code" +#: js/utils/musicutils.js:1118 +#: js/utils/synthutils.js:86 +#.TRANS: musical instrument +msgid "acoustic guitar" msgstr "" -#: js/SaveInterface.js:87 -msgid "This code stores data about the blocks in a project." +#: js/utils/musicutils.js:1119 +#: js/utils/synthutils.js:88 +#.TRANS: musical instrument +msgid "flute" msgstr "" -#: js/SaveInterface.js:89 -msgid "Show" +#: js/utils/musicutils.js:1120 +#: js/utils/synthutils.js:90 +#.TRANS: musical instrument +msgid "clarinet" msgstr "" -#: js/SaveInterface.js:91 -msgid "Hide" +#: js/utils/musicutils.js:1121 +#: js/utils/synthutils.js:92 +#.TRANS: musical instrument +msgid "saxophone" msgstr "" -#: js/SaveInterface.js:197 -#: js/SaveInterface.js:58 -msgid "No description provided" +#: js/utils/musicutils.js:1122 +#: js/utils/synthutils.js:94 +#.TRANS: musical instrument +msgid "tuba" msgstr "" -#: js/SaveInterface.js:332 -msgid "Your recording is in progress." +#: js/utils/musicutils.js:1123 +#: js/utils/synthutils.js:96 +#.TRANS: musical instrument +msgid "trumpet" msgstr "" -#: js/SaveInterface.js:401 -#.TRANS: File name prompt for save as Lilypond -msgid "File name" +#: js/utils/musicutils.js:1124 +#: js/utils/synthutils.js:98 +#.TRANS: musical instrument +msgid "oboe" msgstr "" -#: js/SaveInterface.js:403 -#: js/StringHelper.js:39 -#.TRANS: Project title prompt for save as Lilypond -msgid "Project title" +#: js/utils/musicutils.js:1125 +#: js/utils/synthutils.js:100 +#.TRANS: musical instrument +msgid "trombone" msgstr "" -#: js/SaveInterface.js:405 -#.TRANS: Project title prompt for save as Lilypond -msgid "Project author" +#: js/utils/musicutils.js:1126 +#: js/utils/synthutils.js:116 +#.TRANS: polytone synthesizer +msgid "electronic synth" msgstr "" -#: js/SaveInterface.js:407 -#.TRANS: MIDI prompt for save as Lilypond -msgid "Include MIDI output?" +#: js/utils/musicutils.js:1127 +#: js/utils/synthutils.js:118 +#.TRANS: simple monotone synthesizer +msgid "simple 1" msgstr "" -#: js/SaveInterface.js:409 -#.TRANS: Guitar prompt for save as Lilypond -msgid "Include guitar tablature output?" +#: js/utils/musicutils.js:1128 +msgid "simple 2" msgstr "" -#: js/SaveInterface.js:411 -#.TRANS: Lilypond is a scripting language for generating sheet music -msgid "Save as Lilypond" +#: js/utils/musicutils.js:1129 +msgid "simple 3" msgstr "" -#: js/SaveInterface.js:426 -#: js/EnsembleBlocks.js:75 -#: js/EnsembleBlocks.js:154 -#: js/EnsembleBlocks.js:216 -#: js/EnsembleBlocks.js:302 -#: js/EnsembleBlocks.js:348 -#: js/EnsembleBlocks.js:389 -#: js/EnsembleBlocks.js:441 -#: js/EnsembleBlocks.js:490 -#: js/EnsembleBlocks.js:536 -#: js/EnsembleBlocks.js:583 -#: js/EnsembleBlocks.js:637 -#: js/EnsembleBlocks.js:753 -#: js/EnsembleBlocks.js:840 -#: js/EnsembleBlocks.js:899 -#: js/EnsembleBlocks.js:942 -#: js/EnsembleBlocks.js:1212 -#: js/EnsembleBlocks.js:1280 -#.TRANS: default project author when saving as Lilypond -msgid "Mr. Mouse" +#: js/utils/musicutils.js:1130 +msgid "simple 4" msgstr "" -#: js/SaveInterface.js:573 -msgid "The Lilypond code is copied to clipboard. You can paste it here: " +#: js/utils/musicutils.js:1131 +#: js/utils/synthutils.js:58 +#: js/blocks/DrumBlocks.js:191 +#.TRANS: white noise synthesizer +msgid "white noise" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:50 -#: js/RhythmBlockPaletteBlocks.js:232 -#.TRANS: rhythm block -#.TRANS: translate "rhythm1" as rhythm -msgid "rhythm1" +#: js/utils/musicutils.js:1132 +#: js/utils/synthutils.js:60 +#.TRANS: brown noise synthesizer +msgid "brown noise" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:70 -#: js/RhythmBlockPaletteBlocks.js:251 -#: js/RhythmBlockPaletteBlocks.js:484 -#: js/RhythmBlockPaletteBlocks.js:553 -#: js/RhythmBlockPaletteBlocks.js:874 -msgid "number of notes" +#: js/utils/musicutils.js:1133 +#: js/utils/synthutils.js:62 +#.TRANS: pink noise synthesizer +msgid "pink noise" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:126 -msgid "polyphonic rhythm" +#: js/utils/musicutils.js:1135 +#: js/utils/synthutils.js:148 +#: js/widgets/rhythmruler.js:2057 +#: js/widgets/rhythmruler.js:2319 +#.TRANS: musical instrument +msgid "snare drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:218 -msgid "The Rhythm block is used to generate rhythm patterns." +#: js/utils/musicutils.js:1136 +#: js/utils/synthutils.js:150 +#.TRANS: musical instrument +msgid "kick drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:279 -msgid "1/64 note" +#: js/utils/musicutils.js:1137 +#: js/utils/synthutils.js:152 +#.TRANS: musical instrument +msgid "tom tom" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:303 -msgid "1/32 note" +#: js/utils/musicutils.js:1138 +#: js/utils/synthutils.js:154 +#.TRANS: musical instrument +msgid "floor tom" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:331 -msgid "1/16 note" +#: js/utils/musicutils.js:1139 +#: js/utils/synthutils.js:156 +#.TRANS: musical instrument +msgid "bass drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:359 -msgid "eighth note" +#: js/utils/musicutils.js:1140 +#: js/utils/synthutils.js:158 +#.TRANS: a drum made from an inverted cup +msgid "cup drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:387 -msgid "quarter note" +#: js/utils/musicutils.js:1141 +#: js/utils/synthutils.js:160 +#.TRANS: musical instrument +msgid "darbuka drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:415 -msgid "half note" +#: js/utils/musicutils.js:1142 +#: js/utils/synthutils.js:164 +#.TRANS: musical instrument +msgid "hi hat" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:443 -msgid "whole note" +#: js/utils/musicutils.js:1143 +#: js/utils/synthutils.js:166 +#.TRANS: a small metal bell +msgid "ride bell" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:481 -#: js/RhythmBlockPaletteBlocks.js:550 -#: js/RhythmBlockPaletteBlocks.js:601 -#.TRANS: A tuplet is a note value divided into irregular time values. -msgid "tuplet" +#: js/utils/musicutils.js:1144 +#: js/utils/synthutils.js:168 +#.TRANS: musical instrument +msgid "cow bell" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:767 -msgid "septuplet" +#: js/utils/musicutils.js:1145 +msgid "japanese drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:795 -msgid "quintuplet" +#: js/utils/musicutils.js:1146 +#: js/utils/synthutils.js:174 +#.TRANS: musical instrument +msgid "japanese bell" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:823 -msgid "triplet" +#: js/utils/musicutils.js:1147 +#: js/utils/synthutils.js:170 +#.TRANS: musical instrument +msgid "triangle bell" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:850 -msgid "simple tuplet" +#: js/utils/musicutils.js:1148 +#: js/utils/synthutils.js:172 +#.TRANS: musical instrument +msgid "finger cymbals" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:860 -msgid "Tuplets are a collection of notes that get scaled to a specific duration." +#: js/utils/musicutils.js:1149 +#: js/utils/synthutils.js:176 +#.TRANS: a musically tuned set of bells +msgid "chime" msgstr "" -#: js/WidgetBlocks.js:71 -#.TRANS: sound envelope (ADSR) -msgid "envelope" +#: js/utils/musicutils.js:1150 +#: js/utils/synthutils.js:178 +#.TRANS: a musical instrument +msgid "gong" msgstr "" -#: js/WidgetBlocks.js:79 -#.TRANS: Attack time is the time taken for initial run-up of level from nil to peak, beginning when the key is first pressed. -msgid "attack" +#: js/utils/musicutils.js:1151 +#: js/utils/synthutils.js:180 +#.TRANS: sound effect +msgid "clang" msgstr "" -#: js/WidgetBlocks.js:81 -#.TRANS: Decay time is the time taken for the subsequent run down from the attack level to the designated sustain level. -msgid "decay" +#: js/utils/musicutils.js:1152 +#: js/utils/synthutils.js:182 +#.TRANS: sound effect +msgid "crash" msgstr "" -#: js/WidgetBlocks.js:83 -#.TRANS: Sustain level is the level during the main sequence of the sound's duration, until the key is released. -msgid "sustain" +#: js/utils/musicutils.js:1153 +#: js/utils/synthutils.js:184 +#.TRANS: sound effect +msgid "bottle" msgstr "" -#: js/WidgetBlocks.js:85 -#.TRANS: Release time is the time taken for the level to decay from the sustain level to zero after the key is released. -msgid "release" +#: js/utils/musicutils.js:1154 +#: js/utils/synthutils.js:186 +#.TRANS: sound effect +msgid "clap" msgstr "" -#: js/WidgetBlocks.js:96 -msgid "Attack value should be from 0 to 100." +#: js/utils/musicutils.js:1155 +#: js/utils/synthutils.js:188 +#.TRANS: sound effect +msgid "slap" msgstr "" -#: js/WidgetBlocks.js:99 -msgid "Decay value should be from 0 to 100." +#: js/utils/musicutils.js:1156 +#: js/utils/synthutils.js:190 +#.TRANS: sound effect +msgid "splash" msgstr "" -#: js/WidgetBlocks.js:102 -msgid "Sustain value should be from 0 to 100." +#: js/utils/musicutils.js:1157 +#: js/utils/synthutils.js:192 +#.TRANS: sound effect +msgid "bubbles" msgstr "" -#: js/WidgetBlocks.js:105 -msgid "Release value should be from 0-100." +#: js/utils/musicutils.js:1158 +#: js/utils/synthutils.js:194 +#.TRANS: sound effect +msgid "raindrop" msgstr "" -#: js/WidgetBlocks.js:121 -msgid "You are adding multiple envelope blocks." +#: js/utils/musicutils.js:1159 +#: js/utils/synthutils.js:196 +#.TRANS: animal sound effect +msgid "cat" msgstr "" -#: js/WidgetBlocks.js:144 -#.TRANS: a filter removes some unwanted components from a signal -msgid "filter" +#: js/utils/musicutils.js:1160 +#: js/utils/synthutils.js:198 +#.TRANS: animal sound effect +msgid "cricket" msgstr "" -#: js/WidgetBlocks.js:149 -#: js/musicutils.js:706 -#: js/musicutils.js:1105 -#.TRANS: highpass filter -msgid "highpass" +#: js/utils/musicutils.js:1161 +#: js/utils/synthutils.js:200 +#.TRANS: animal sound effect +msgid "dog" msgstr "" -#: js/WidgetBlocks.js:152 -#: js/ToneBlocks.js:42 -#: js/timbre.js:1558 -#: js/timbre.js:1808 -#.TRANS: type of filter, e.g., lowpass, highpass, etc. -#.TRANS: there are different types (sine, triangle, square...) of oscillators. -msgid "type" +#: js/utils/musicutils.js:1163 +#: js/utils/synthutils.js:102 +#.TRANS: musical instrument +msgid "banjo" msgstr "" -#: js/WidgetBlocks.js:154 -#: js/timbre.js:1818 -#.TRANS: rolloff is the steepness of a change in frequency. -msgid "rolloff" +#: js/utils/musicutils.js:1164 +#: js/utils/synthutils.js:104 +#.TRANS: musical instrument +msgid "koto" msgstr "" -#: js/WidgetBlocks.js:155 -#: js/MediaBlocks.js:692 -#: js/temperament.js:382 -#: js/temperament.js:417 -#: js/temperament.js:477 -#: js/temperament.js:485 -#: js/temperament.js:1348 -#: js/timbre.js:1842 -msgid "frequency" +#: js/utils/musicutils.js:1165 +#: js/utils/synthutils.js:106 +#.TRANS: musical instrument +msgid "dulcimer" msgstr "" -#: js/WidgetBlocks.js:179 -#.TRANS: rolloff is the steepness of a change in frequency. -msgid "Rolloff value should be either -12, -24, -48, or -96 decibels/octave." +#: js/utils/musicutils.js:1166 +#: js/utils/synthutils.js:108 +#.TRANS: musical instrument +msgid "electric guitar" msgstr "" -#: js/WidgetBlocks.js:211 -msgid "The Temperament tool is used to define custom tuning." +#: js/utils/musicutils.js:1167 +#: js/utils/synthutils.js:110 +#.TRANS: musical instrument +msgid "bassoon" msgstr "" -#: js/WidgetBlocks.js:277 -#: js/sampler.js:329 -msgid "Upload a sample and adjust its pitch center." +#: js/utils/musicutils.js:1168 +#: js/utils/synthutils.js:112 +#.TRANS: musical instrument +msgid "celeste" msgstr "" -#: js/WidgetBlocks.js:284 -#.TRANS: the speed at music is should be played. -msgid "sampler" +#: js/utils/musicutils.js:1170 +#: js/widgets/temperament.js:787 +#.TRANS: musical temperament +msgid "equal" msgstr "" -#: js/WidgetBlocks.js:329 -#: js/WidgetBlocks.js:334 -#: js/IntervalsBlocks.js:928 -#: js/VolumeBlocks.js:411 -#: js/ToneBlocks.js:946 -#: js/VolumeActions.js:218 -#: js/musicutils.js:704 -#: js/musicutils.js:755 -#: js/musicutils.js:798 -#: js/musicutils.js:820 -#: js/musicutils.js:1136 -#: js/synthutils.js:118 -#: js/modewidget.js:919 -#.TRANS: customize voice -msgid "custom" +#: js/utils/musicutils.js:1172 +#.TRANS: musical temperament +msgid "Pythagorean" msgstr "" -#: js/WidgetBlocks.js:432 -msgid "The Meter block opens a tool to select strong beats for the meter." +#: js/utils/musicutils.js:1174 +#.TRANS: musical temperament +msgid "just intonation" msgstr "" -#: js/WidgetBlocks.js:473 -msgid "The oscilloscope block opens a tool to visualize waveforms." +#: js/utils/musicutils.js:1176 +#.TRANS: musical temperament +msgid "meantone" msgstr "" -#: js/WidgetBlocks.js:478 -msgid "oscilloscope" +#: js/utils/musicutils.js:1193 +msgid "major 7th" msgstr "" -#: js/WidgetBlocks.js:530 -msgid "The Custom mode block opens a tool to explore musical mode (the spacing of the notes in a scale)." +#: js/utils/musicutils.js:1194 +msgid "minor 7th" msgstr "" -#: js/WidgetBlocks.js:536 -#.TRANS: musical mode is the pattern of half-steps in an octave, e.g., Major or Minor modes -msgid "custom mode" +#: js/utils/musicutils.js:1195 +msgid "dominant 7th" msgstr "" -#: js/WidgetBlocks.js:570 -msgid "The Tempo block opens a metronome to visualize the beat." +#: js/utils/musicutils.js:1196 +msgid "minor-major 7th" msgstr "" -#: js/WidgetBlocks.js:617 -msgid "The Arpeggio Widget is used to compose chord sequences." +#: js/utils/musicutils.js:1197 +msgid "fully-diminished 7th" msgstr "" -#: js/WidgetBlocks.js:623 -#: js/IntervalsBlocks.js:683 -msgid "arpeggio" +#: js/utils/musicutils.js:1198 +msgid "half-diminished 7th" msgstr "" -#: js/WidgetBlocks.js:677 -msgid "The Pitch drum matrix is used to map pitches to drum sounds." +#: js/utils/musicutils.js:1557 +#: js/utils/musicutils.js:1569 +msgid "Equal (12EDO)" msgstr "" -#: js/WidgetBlocks.js:682 -#.TRANS: makes a mapping between pitches and drum sounds -msgid "pitch-drum mapper" +#: js/utils/musicutils.js:1558 +#: js/utils/musicutils.js:1570 +msgid "5-limit Just Intonation" msgstr "" -#: js/WidgetBlocks.js:724 -msgid "You must have at least one pitch block and one drum block in the matrix." +#: js/utils/musicutils.js:1559 +#: js/utils/musicutils.js:1571 +msgid "Pythagorean (3-limit JI)" msgstr "" -#: js/WidgetBlocks.js:746 -msgid "The Pitch slider tool to is used to generate pitches at selected frequencies." +#: js/utils/musicutils.js:1560 +#: js/utils/musicutils.js:1561 +#: js/utils/musicutils.js:1572 +#: js/utils/musicutils.js:1573 +msgid "Meantone" msgstr "" -#: js/WidgetBlocks.js:751 -#.TRANS: widget to generate pitches using a slider -msgid "pitch slider" +#: js/utils/musicutils.js:1574 +msgid "Custom" msgstr "" -#: js/WidgetBlocks.js:788 -msgid "chromatic keyboard" +#: js/utils/musicutils.js:5387 +#: js/utils/musicutils.js:5430 +msgid "current" msgstr "" -#: js/WidgetBlocks.js:815 -#: js/WidgetBlocks.js:874 -#.TRANS: widget to generate pitches using a slider -msgid "music keyboard" +#: js/utils/musicutils.js:5390 +#: js/utils/musicutils.js:5421 +msgid "next" msgstr "" -#: js/WidgetBlocks.js:859 -#: js/WidgetBlocks.js:866 -msgid "The Music keyboard block opens a piano keyboard that can be used to create notes." +#: js/utils/musicutils.js:5393 +#: js/utils/musicutils.js:5426 +msgid "previous" msgstr "" -#: js/WidgetBlocks.js:910 -msgid "The Pitch staircase tool to is used to generate pitches from a given ratio." +#: js/utils/synthutils.js:120 +#.TRANS: simple monotone synthesizer +msgid "simple-2" msgstr "" -#: js/WidgetBlocks.js:917 -#.TRANS: generate a progressive sequence of pitches -msgid "pitch staircase" +#: js/utils/synthutils.js:122 +#.TRANS: simple monotone synthesizer +msgid "simple-3" msgstr "" -#: js/WidgetBlocks.js:982 -msgid "The Rhythm Maker block opens a tool to create drum machines." +#: js/utils/synthutils.js:124 +#.TRANS: simple monotone synthesizer +msgid "simple-4" msgstr "" -#: js/WidgetBlocks.js:1036 -msgid "G major scale" +#: js/utils/synthutils.js:162 +#.TRANS: musical instrument +msgid "taiko" msgstr "" -#: js/WidgetBlocks.js:1064 -msgid "C major scale" +#: js/blocks/ActionBlocks.js:58 +msgid "The Return block will return a value from an action." msgstr "" -#: js/WidgetBlocks.js:1097 -msgid "The Phrase Maker block opens a tool to create musical phrases." +#: js/blocks/ActionBlocks.js:75 +msgid "return" msgstr "" -#: js/WidgetBlocks.js:1104 -#.TRANS: assigns pitch to a sequence of beats to generate a melody -msgid "phrase maker" +#: js/blocks/ActionBlocks.js:128 +msgid "The Return to URL block will return a value to a webpage." msgstr "" -#: js/WidgetBlocks.js:1168 -msgid "You must have at least one pitch block and one rhythm block in the matrix." +#: js/blocks/ActionBlocks.js:145 +msgid "return to URL" msgstr "" -#: js/WidgetBlocks.js:1220 -msgid "The Status block opens a tool for inspecting the status of Music Blocks as it is running." +#: js/blocks/ActionBlocks.js:233 +#: js/blocks/ActionBlocks.js:290 +#: js/blocks/ActionBlocks.js:501 +#: js/blocks/ActionBlocks.js:688 +msgid "The Calculate block returns a value calculated by an action." msgstr "" -#: js/IntervalsBlocks.js:45 -msgid "set temperament" +#: js/blocks/ActionBlocks.js:251 +#: js/blocks/ActionBlocks.js:517 +#: js/blocks/ActionBlocks.js:707 +msgid "calculate" msgstr "" -#: js/IntervalsBlocks.js:63 -#: js/MediaBlocks.js:746 -#: js/PitchBlocks.js:657 -#: js/PitchBlocks.js:933 -#: js/PitchBlocks.js:972 -#: js/PitchBlocks.js:1005 -#: js/PitchBlocks.js:1166 -#: js/PitchBlocks.js:1679 -#: js/PitchBlocks.js:1720 -#: js/PitchBlocks.js:1827 -#: js/ToneBlocks.js:1025 -#.TRANS: adjusts the shift up or down by one octave (twelve half-steps in the interval between two notes, one having twice or half the frequency in Hz of the other.) -msgid "octave" +#: js/blocks/ActionBlocks.js:376 +#: js/blocks/ActionBlocks.js:593 +#: js/blocks/ActionBlocks.js:942 +#: js/blocks/ActionBlocks.js:1389 +#.TRANS: do is the do something or take an action. +msgid "The Do block is used to initiate an action." msgstr "" -#: js/IntervalsBlocks.js:99 -msgid "The Temperament name block is used to select a tuning method." +#: js/blocks/ActionBlocks.js:390 +#: js/blocks/ActionBlocks.js:610 +#: js/blocks/ActionBlocks.js:959 +#: js/blocks/ActionBlocks.js:1048 +#: js/blocks/MeterBlocks.js:769 +msgid "do1" msgstr "" -#: js/IntervalsBlocks.js:161 -msgid "doubly" +#: js/blocks/ActionBlocks.js:390 +#: js/blocks/ActionBlocks.js:610 +#: js/blocks/ActionBlocks.js:959 +#: js/blocks/ActionBlocks.js:1048 +#: js/blocks/FlowBlocks.js:742 +#: js/blocks/FlowBlocks.js:822 +#: js/blocks/MeterBlocks.js:769 +msgid "do" msgstr "" -#: js/IntervalsBlocks.js:166 -msgid "The Doubly block will double the size of an interval." +#: js/blocks/ActionBlocks.js:791 +#: js/blocks/ActionBlocks.js:865 +msgid "The Arg block contains the value of an argument passed to an action." msgstr "" -#: js/IntervalsBlocks.js:262 -msgid "interval number" +#: js/blocks/ActionBlocks.js:806 +#: js/blocks/ActionBlocks.js:878 +msgid "arg" msgstr "" -#: js/IntervalsBlocks.js:330 -#.TRANS: measure the distance between two pitches in semi-tones -msgid "semi-tone interval measure" +#: js/blocks/ActionBlocks.js:836 +#: js/blocks/ActionBlocks.js:900 +#: js/blocks/ActionBlocks.js:908 +msgid "Invalid argument" msgstr "" -#: js/IntervalsBlocks.js:397 -#: js/IntervalsBlocks.js:513 -msgid "You must use two pitch blocks when measuring an interval." +#: js/blocks/ActionBlocks.js:944 +msgid "In the example, it is used with the One of block to choose a random phase." msgstr "" -#: js/IntervalsBlocks.js:439 -msgid "The Scalar interval block measures the distance between two notes in the current key and mode." +#: js/blocks/ActionBlocks.js:1019 +#: js/blocks/ActionBlocks.js:1026 +msgid "The Listen block is used to listen for an event such as a mouse click." msgstr "" -#: js/IntervalsBlocks.js:445 -#.TRANS: measure the distance between two pitches in steps of musical scale -msgid "scalar interval measure" +#: js/blocks/ActionBlocks.js:1028 +msgid "When the event happens, an action is taken." msgstr "" -#: js/IntervalsBlocks.js:592 -#: js/musicutils.js:637 -#: js/musicutils.js:908 -#.TRANS: perfect is a music term related to intervals -msgid "perfect" +#: js/blocks/ActionBlocks.js:1045 +msgid "on" msgstr "" -#: js/IntervalsBlocks.js:621 -msgid "In the figure, we add sol# to sol." +#: js/blocks/ActionBlocks.js:1048 +#: js/blocks/ActionBlocks.js:1049 +#: js/blocks/ActionBlocks.js:1153 +msgid "event" msgstr "" -#: js/IntervalsBlocks.js:627 -#: js/OrnamentBlocks.js:220 -#.TRANS: calculate a relative step between notes based on semi-tones -msgid "semi-tone interval" +#: js/blocks/ActionBlocks.js:1133 +msgid "The Broadcast block is used to trigger an event." msgstr "" -#: js/IntervalsBlocks.js:676 -msgid "The output of the example is: do, mi, sol, sol, ti, mi" +#: js/blocks/ActionBlocks.js:1151 +msgid "broadcast" msgstr "" -#: js/IntervalsBlocks.js:735 -msgid "The Chord block calculates common chords." +#: js/blocks/ActionBlocks.js:1208 +msgid "Each Start block is a separate voice." msgstr "" -#: js/IntervalsBlocks.js:737 -msgid "In the figure, we generate a C-major chord." +#: js/blocks/ActionBlocks.js:1304 +msgid "It is often used for storing a phrase of music that is repeated." msgstr "" -#: js/IntervalsBlocks.js:742 -msgid "chord" +#: js/blocks/ActionBlocks.js:1495 +msgid "define temperament" msgstr "" -#: js/IntervalsBlocks.js:794 -msgid "The Ratio Interval block calculates an interval based on a ratio." +#: js/blocks/BooleanBlocks.js:44 +msgid "The Not block is the logical not operator." msgstr "" -#: js/IntervalsBlocks.js:799 -msgid "ratio interval" +#: js/blocks/BooleanBlocks.js:62 +msgid "not" +msgstr "не" + +#: js/blocks/BooleanBlocks.js:134 +msgid "The And block is the logical and operator." msgstr "" -#: js/IntervalsBlocks.js:868 -msgid "In the figure, we add la to sol." +#: js/blocks/BooleanBlocks.js:152 +msgid "and" +msgstr "и" + +#: js/blocks/BooleanBlocks.js:218 +msgid "The Or block is the logical or operator." msgstr "" -#: js/IntervalsBlocks.js:924 -#.TRANS: define a custom mode -msgid "define mode" +#: js/blocks/BooleanBlocks.js:236 +msgid "or" +msgstr "или" + +#: js/blocks/BooleanBlocks.js:302 +msgid "The XOR block is the logical XOR operator." msgstr "" -#: js/IntervalsBlocks.js:977 -msgid "movable Do" +#: js/blocks/BooleanBlocks.js:320 +msgid "xor" msgstr "" -#: js/IntervalsBlocks.js:1028 -#.TRANS: mode length is the number of notes in the mode, e.g., 7 for major and minor scales; 12 for chromatic scales -msgid "mode length" +#: js/blocks/BooleanBlocks.js:808 +msgid "The Equal block returns True if the two numbers are equal." msgstr "" -#: js/IntervalsBlocks.js:1037 -msgid "The Mode length block is the number of notes in the current scale." +#: js/blocks/BooleanBlocks.js:909 +msgid "The Not-equal-to block returns True if the two numbers are not equal to each other." msgstr "" -#: js/IntervalsBlocks.js:1039 -msgid "Most Western scales have 7 notes." +#: js/blocks/BooleanBlocks.js:1008 +msgid "The Boolean block is used to specify true or false." msgstr "" -#: js/IntervalsBlocks.js:1088 -#.TRANS: the mode in music is 'major', 'minor', etc. -msgid "current mode" +#: js/blocks/BoxesBlocks.js:53 +#: js/blocks/BoxesBlocks.js:59 +msgid "The Add-to block is used to add to the value stored in a box." msgstr "" -#: js/IntervalsBlocks.js:1141 -#.TRANS: the key is a group of pitches with which a music composition is created -msgid "current key" +#: js/blocks/BoxesBlocks.js:61 +msgid "It can also be used with other blocks such as Color and Pen size." msgstr "" -#: js/IntervalsBlocks.js:1193 -#: js/IntervalsBlocks.js:1238 -#.TRANS: set the key and mode, e.g. C Major -msgid "set key" +#: js/blocks/BoxesBlocks.js:73 +msgid "add" msgstr "" -#: js/IntervalsBlocks.js:1247 -#: js/IntervalsBlocks.js:1253 -msgid "The Set key block is used to set the key and mode," +#: js/blocks/BoxesBlocks.js:75 +#: js/widgets/temperament.js:857 +msgid "to" msgstr "" -#: js/IntervalsBlocks.js:1253 -msgid "eg C Major" +#: js/blocks/BoxesBlocks.js:75 +#: js/blocks/BoxesBlocks.js:595 +#: js/blocks/HeapBlocks.js:544 +msgid "value1" msgstr "" -#: js/IntervalsBlocks.js:1266 -#: js/DictBlocks.js:215 -#: js/DictBlocks.js:216 -#: js/DictBlocks.js:289 -#: js/DictBlocks.js:290 -#: js/DictBlocks.js:357 -#: js/DictBlocks.js:430 -#: js/DictBlocks.js:431 -#.TRANS: key, e.g., C in C Major -msgid "key" +#: js/blocks/BoxesBlocks.js:118 +msgid "Block does not support incrementing." msgstr "" -#: js/ActionBlocks.js:58 -msgid "The Return block will return a value from an action." +#: js/blocks/BoxesBlocks.js:152 +msgid "The Add-1-to block adds one to the value stored in a box." msgstr "" -#: js/ActionBlocks.js:75 -msgid "return" +#: js/blocks/BoxesBlocks.js:163 +msgid "add 1 to" msgstr "" -#: js/ActionBlocks.js:128 -msgid "The Return to URL block will return a value to a webpage." +#: js/blocks/BoxesBlocks.js:211 +msgid "The Subtract-1-from block subtracts one from the value stored in a box." msgstr "" -#: js/ActionBlocks.js:145 -msgid "return to URL" +#: js/blocks/BoxesBlocks.js:222 +msgid "subtract 1 from" msgstr "" -#: js/ActionBlocks.js:233 -#: js/ActionBlocks.js:290 -#: js/ActionBlocks.js:501 -#: js/ActionBlocks.js:688 -msgid "The Calculate block returns a value calculated by an action." +#: js/blocks/BoxesBlocks.js:270 +#: js/blocks/BoxesBlocks.js:387 +msgid "The Box block returns the value stored in a box." msgstr "" -#: js/ActionBlocks.js:251 -#: js/ActionBlocks.js:517 -#: js/ActionBlocks.js:707 -msgid "calculate" +#: js/blocks/BoxesBlocks.js:500 +#: js/blocks/BoxesBlocks.js:576 +msgid "The Store in block will store a value in a box." msgstr "" -#: js/ActionBlocks.js:376 -#: js/ActionBlocks.js:593 -#: js/ActionBlocks.js:942 -#: js/ActionBlocks.js:1389 -#.TRANS: do is the do something or take an action. -msgid "The Do block is used to initiate an action." +#: js/blocks/BoxesBlocks.js:595 +#: js/blocks/EnsembleBlocks.js:391 +#: js/blocks/EnsembleBlocks.js:402 +msgid "name1" msgstr "" -#: js/ActionBlocks.js:390 -#: js/ActionBlocks.js:610 -#: js/ActionBlocks.js:959 -#: js/ActionBlocks.js:1048 -#: js/MeterBlocks.js:769 -msgid "do1" +#: js/blocks/BoxesBlocks.js:652 +msgid "The Box2 block returns the value stored in Box2." msgstr "" -#: js/ActionBlocks.js:390 -#: js/ActionBlocks.js:610 -#: js/ActionBlocks.js:959 -#: js/ActionBlocks.js:1048 -#: js/FlowBlocks.js:742 -#: js/FlowBlocks.js:822 -#: js/MeterBlocks.js:769 -msgid "do" +#: js/blocks/BoxesBlocks.js:703 +msgid "The Store in Box2 block is used to store a value in Box2." msgstr "" -#: js/ActionBlocks.js:791 -#: js/ActionBlocks.js:865 -msgid "The Arg block contains the value of an argument passed to an action." +#: js/blocks/BoxesBlocks.js:715 +msgid "store in box2" msgstr "" -#: js/ActionBlocks.js:806 -#: js/ActionBlocks.js:878 -msgid "arg" +#: js/blocks/BoxesBlocks.js:761 +msgid "The Box1 block returns the value stored in Box1." msgstr "" -#: js/ActionBlocks.js:836 -#: js/ActionBlocks.js:900 -#: js/ActionBlocks.js:908 -msgid "Invalid argument" +#: js/blocks/BoxesBlocks.js:812 +msgid "The Store in Box1 block is used to store a value in Box1." msgstr "" -#: js/ActionBlocks.js:944 -msgid "In the example, it is used with the One of block to choose a random phase." +#: js/blocks/BoxesBlocks.js:826 +msgid "store in box1" msgstr "" -#: js/ActionBlocks.js:1019 -#: js/ActionBlocks.js:1026 -msgid "The Listen block is used to listen for an event such as a mouse click." +#: js/blocks/DictBlocks.js:77 +msgid "show dictionary" msgstr "" -#: js/ActionBlocks.js:1028 -msgid "When the event happens, an action is taken." +#: js/blocks/DictBlocks.js:80 +#: js/blocks/DictBlocks.js:145 +#: js/blocks/DictBlocks.js:216 +#: js/blocks/DictBlocks.js:290 +#: js/blocks/ProgramBlocks.js:396 +#: js/blocks/ProgramBlocks.js:501 +#: js/blocks/ProgramBlocks.js:664 +msgid "My Dictionary" msgstr "" -#: js/ActionBlocks.js:1045 -msgid "on" +#: js/blocks/DictBlocks.js:129 +msgid "The Dictionary block returns a dictionary." msgstr "" -#: js/ActionBlocks.js:1048 -#: js/ActionBlocks.js:1049 -#: js/ActionBlocks.js:1153 -msgid "event" +#: js/blocks/DictBlocks.js:197 +#: js/blocks/DictBlocks.js:339 +msgid "The Get-dict block returns a value in the dictionary for a specified key." msgstr "" -#: js/ActionBlocks.js:1133 -msgid "The Broadcast block is used to trigger an event." +#: js/blocks/DictBlocks.js:212 +#: js/blocks/DictBlocks.js:354 +#.TRANS: retrieve a value from the dictionary with a given key +msgid "get value" msgstr "" -#: js/ActionBlocks.js:1151 -msgid "broadcast" +#: js/blocks/DictBlocks.js:215 +#: js/blocks/DictBlocks.js:216 +#: js/blocks/DictBlocks.js:289 +#: js/blocks/DictBlocks.js:290 +#: js/blocks/DictBlocks.js:357 +#: js/blocks/DictBlocks.js:430 +#: js/blocks/DictBlocks.js:431 +msgid "key2" msgstr "" -#: js/ActionBlocks.js:1208 -msgid "Each Start block is a separate voice." +#: js/blocks/DictBlocks.js:215 +#: js/blocks/DictBlocks.js:216 +#: js/blocks/DictBlocks.js:289 +#: js/blocks/DictBlocks.js:290 +#: js/blocks/DictBlocks.js:357 +#: js/blocks/DictBlocks.js:430 +#: js/blocks/DictBlocks.js:431 +#: js/blocks/IntervalsBlocks.js:1462 +#.TRANS: key, e.g., C in C Major +msgid "key" msgstr "" -#: js/ActionBlocks.js:1304 -msgid "It is often used for storing a phrase of music that is repeated." +#: js/blocks/DictBlocks.js:271 +#: js/blocks/DictBlocks.js:411 +msgid "The Set-dict block sets a value in the dictionary for a specified key." msgstr "" -#: js/ActionBlocks.js:1495 -msgid "define temperament" +#: js/blocks/DictBlocks.js:286 +#: js/blocks/DictBlocks.js:427 +#.TRANS: set a value in the dictionary for a given key +msgid "set value" msgstr "" -#: js/EnsembleBlocks.js:66 +#: js/blocks/EnsembleBlocks.js:66 msgid "mouse index heap" msgstr "" -#: js/EnsembleBlocks.js:68 +#: js/blocks/EnsembleBlocks.js:68 msgid "The Mouse index heap block returns a value in the heap at a specified location for a specified mouse." msgstr "" -#: js/EnsembleBlocks.js:77 -#: js/EnsembleBlocks.js:1080 +#: js/blocks/EnsembleBlocks.js:77 +#: js/blocks/EnsembleBlocks.js:1080 msgid "mouse name" msgstr "" -#: js/EnsembleBlocks.js:77 -#: js/EnsembleBlocks.js:92 -#: js/HeapBlocks.js:544 +#: js/blocks/EnsembleBlocks.js:77 +#: js/blocks/EnsembleBlocks.js:92 +#: js/blocks/HeapBlocks.js:544 #.TRANS: value1 is a numeric value (JAPANESE ONLY) msgid "index" msgstr "" -#: js/EnsembleBlocks.js:80 +#: js/blocks/EnsembleBlocks.js:80 msgid "turtle index heap" msgstr "" -#: js/EnsembleBlocks.js:82 +#: js/blocks/EnsembleBlocks.js:82 msgid "The Turtle index heap block returns a value in the heap at a specified location for a specified turtle." msgstr "" -#: js/EnsembleBlocks.js:90 -#: js/EnsembleBlocks.js:167 -#: js/EnsembleBlocks.js:230 -#: js/EnsembleBlocks.js:316 -#: js/EnsembleBlocks.js:362 -#: js/EnsembleBlocks.js:400 -#: js/EnsembleBlocks.js:454 -#: js/EnsembleBlocks.js:504 -#: js/EnsembleBlocks.js:550 -#: js/EnsembleBlocks.js:597 -#: js/EnsembleBlocks.js:651 -#: js/EnsembleBlocks.js:763 -#: js/EnsembleBlocks.js:854 -#: js/EnsembleBlocks.js:915 -#: js/EnsembleBlocks.js:955 -#: js/EnsembleBlocks.js:1219 -#: js/EnsembleBlocks.js:1293 +#: js/blocks/EnsembleBlocks.js:90 +#: js/blocks/EnsembleBlocks.js:167 +#: js/blocks/EnsembleBlocks.js:230 +#: js/blocks/EnsembleBlocks.js:316 +#: js/blocks/EnsembleBlocks.js:362 +#: js/blocks/EnsembleBlocks.js:400 +#: js/blocks/EnsembleBlocks.js:454 +#: js/blocks/EnsembleBlocks.js:504 +#: js/blocks/EnsembleBlocks.js:550 +#: js/blocks/EnsembleBlocks.js:597 +#: js/blocks/EnsembleBlocks.js:651 +#: js/blocks/EnsembleBlocks.js:763 +#: js/blocks/EnsembleBlocks.js:854 +#: js/blocks/EnsembleBlocks.js:915 +#: js/blocks/EnsembleBlocks.js:955 +#: js/blocks/EnsembleBlocks.js:1219 +#: js/blocks/EnsembleBlocks.js:1293 #.TRANS: Yertle is the name of a turtle. msgid "Yertle" msgstr "" -#: js/EnsembleBlocks.js:92 -#: js/EnsembleBlocks.js:1089 +#: js/blocks/EnsembleBlocks.js:92 +#: js/blocks/EnsembleBlocks.js:1089 msgid "turtle name" msgstr "" -#: js/EnsembleBlocks.js:122 -#: js/EnsembleBlocks.js:1197 -#: js/HeapBlocks.js:474 -#: js/HeapBlocks.js:572 +#: js/blocks/EnsembleBlocks.js:122 +#: js/blocks/EnsembleBlocks.js:1197 +#: js/blocks/HeapBlocks.js:474 +#: js/blocks/HeapBlocks.js:572 msgid "Index must be > 0." msgstr "" -#: js/EnsembleBlocks.js:127 -#: js/HeapBlocks.js:479 -#: js/HeapBlocks.js:577 +#: js/blocks/EnsembleBlocks.js:127 +#: js/blocks/HeapBlocks.js:479 +#: js/blocks/HeapBlocks.js:577 msgid "Maximum heap size is 1000." msgstr "" -#: js/EnsembleBlocks.js:145 +#: js/blocks/EnsembleBlocks.js:145 msgid "stop mouse" msgstr "" -#: js/EnsembleBlocks.js:147 +#: js/blocks/EnsembleBlocks.js:147 msgid "The Stop mouse block stops the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:158 +#: js/blocks/EnsembleBlocks.js:158 msgid "stop turtle" msgstr "" -#: js/EnsembleBlocks.js:160 +#: js/blocks/EnsembleBlocks.js:160 msgid "The Stop turtle block stops the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:184 -#: js/EnsembleBlocks.js:247 -#: js/EnsembleBlocks.js:413 -#: js/EnsembleBlocks.js:468 -#: js/EnsembleBlocks.js:706 -#: js/EnsembleBlocks.js:808 -#: js/EnsembleBlocks.js:870 -#: js/EnsembleBlocks.js:1190 -#: js/EnsembleBlocks.js:1253 +#: js/blocks/EnsembleBlocks.js:184 +#: js/blocks/EnsembleBlocks.js:247 +#: js/blocks/EnsembleBlocks.js:413 +#: js/blocks/EnsembleBlocks.js:468 +#: js/blocks/EnsembleBlocks.js:706 +#: js/blocks/EnsembleBlocks.js:808 +#: js/blocks/EnsembleBlocks.js:870 +#: js/blocks/EnsembleBlocks.js:1190 +#: js/blocks/EnsembleBlocks.js:1253 msgid "Cannot find mouse" msgstr "" -#: js/EnsembleBlocks.js:186 -#: js/EnsembleBlocks.js:249 -#: js/EnsembleBlocks.js:415 -#: js/EnsembleBlocks.js:470 -#: js/EnsembleBlocks.js:708 -#: js/EnsembleBlocks.js:810 -#: js/EnsembleBlocks.js:872 -#: js/EnsembleBlocks.js:1192 -#: js/EnsembleBlocks.js:1255 +#: js/blocks/EnsembleBlocks.js:186 +#: js/blocks/EnsembleBlocks.js:249 +#: js/blocks/EnsembleBlocks.js:415 +#: js/blocks/EnsembleBlocks.js:470 +#: js/blocks/EnsembleBlocks.js:708 +#: js/blocks/EnsembleBlocks.js:810 +#: js/blocks/EnsembleBlocks.js:872 +#: js/blocks/EnsembleBlocks.js:1192 +#: js/blocks/EnsembleBlocks.js:1255 msgid "Cannot find turtle" msgstr "" -#: js/EnsembleBlocks.js:206 +#: js/blocks/EnsembleBlocks.js:206 msgid "start mouse" msgstr "" -#: js/EnsembleBlocks.js:209 +#: js/blocks/EnsembleBlocks.js:209 msgid "The Start mouse block starts the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:220 +#: js/blocks/EnsembleBlocks.js:220 msgid "start turtle" msgstr "" -#: js/EnsembleBlocks.js:223 +#: js/blocks/EnsembleBlocks.js:223 msgid "The Start turtle block starts the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:256 +#: js/blocks/EnsembleBlocks.js:256 msgid "Mouse is already running." msgstr "" -#: js/EnsembleBlocks.js:258 +#: js/blocks/EnsembleBlocks.js:258 msgid "Turtle is already running." msgstr "" -#: js/EnsembleBlocks.js:282 +#: js/blocks/EnsembleBlocks.js:282 msgid "Cannot find start block" msgstr "" -#: js/EnsembleBlocks.js:292 +#: js/blocks/EnsembleBlocks.js:292 #.TRANS: pen color for this mouse msgid "mouse color" msgstr "" -#: js/EnsembleBlocks.js:294 +#: js/blocks/EnsembleBlocks.js:294 msgid "The Mouse color block returns the pen color of the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:306 +#: js/blocks/EnsembleBlocks.js:306 #.TRANS: pen color for this turtle msgid "turtle color" msgstr "" -#: js/EnsembleBlocks.js:308 +#: js/blocks/EnsembleBlocks.js:308 msgid "The Turtle color block returns the pen color of the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:338 +#: js/blocks/EnsembleBlocks.js:338 #.TRANS: heading (compass direction) for this mouse msgid "mouse heading" msgstr "" -#: js/EnsembleBlocks.js:340 +#: js/blocks/EnsembleBlocks.js:340 msgid "The Mouse heading block returns the heading of the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:352 +#: js/blocks/EnsembleBlocks.js:352 #.TRANS: heading (compass direction) for this turtle msgid "turtle heading" msgstr "" -#: js/EnsembleBlocks.js:354 +#: js/blocks/EnsembleBlocks.js:354 msgid "The Turtle heading block returns the heading of the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:384 -#: js/EnsembleBlocks.js:439 +#: js/blocks/EnsembleBlocks.js:384 +#: js/blocks/EnsembleBlocks.js:439 #.TRANS: set xy position for this mouse msgid "set mouse" msgstr "" -#: js/EnsembleBlocks.js:391 -#: js/EnsembleBlocks.js:402 -#: js/BoxesBlocks.js:595 -msgid "name1" -msgstr "" - -#: js/EnsembleBlocks.js:391 -#: js/EnsembleBlocks.js:402 -#: js/ProgramBlocks.js:881 -#: js/GraphicsBlocks.js:235 -#: js/GraphicsBlocks.js:313 -#: js/GraphicsBlocks.js:436 -#: js/GraphicsBlocks.js:487 -#: js/GraphicsBlocks.js:534 -#: js/GraphicsBlocks.js:750 +#: js/blocks/EnsembleBlocks.js:391 +#: js/blocks/EnsembleBlocks.js:402 +#: js/blocks/GraphicsBlocks.js:235 +#: js/blocks/GraphicsBlocks.js:313 +#: js/blocks/GraphicsBlocks.js:436 +#: js/blocks/GraphicsBlocks.js:487 +#: js/blocks/GraphicsBlocks.js:534 +#: js/blocks/GraphicsBlocks.js:750 +#: js/blocks/ProgramBlocks.js:881 msgid "x" msgstr "x" -#: js/EnsembleBlocks.js:391 -#: js/EnsembleBlocks.js:402 -#: js/ProgramBlocks.js:881 -#: js/GraphicsBlocks.js:149 -#: js/GraphicsBlocks.js:313 -#: js/GraphicsBlocks.js:436 -#: js/GraphicsBlocks.js:487 -#: js/GraphicsBlocks.js:534 -#: js/GraphicsBlocks.js:750 +#: js/blocks/EnsembleBlocks.js:391 +#: js/blocks/EnsembleBlocks.js:402 +#: js/blocks/GraphicsBlocks.js:149 +#: js/blocks/GraphicsBlocks.js:313 +#: js/blocks/GraphicsBlocks.js:436 +#: js/blocks/GraphicsBlocks.js:487 +#: js/blocks/GraphicsBlocks.js:534 +#: js/blocks/GraphicsBlocks.js:750 +#: js/blocks/ProgramBlocks.js:881 msgid "y" msgstr "y" -#: js/EnsembleBlocks.js:395 -#: js/EnsembleBlocks.js:452 +#: js/blocks/EnsembleBlocks.js:395 +#: js/blocks/EnsembleBlocks.js:452 #.TRANS: set xy position for this turtle msgid "set turtle" msgstr "" -#: js/EnsembleBlocks.js:433 +#: js/blocks/EnsembleBlocks.js:433 msgid "The Set mouse block sends a stack of blocks to be run by the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:446 +#: js/blocks/EnsembleBlocks.js:446 msgid "The Set turtle block sends a stack of blocks to be run by the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:480 +#: js/blocks/EnsembleBlocks.js:480 #.TRANS: y position for this mouse msgid "mouse y" msgstr "" -#: js/EnsembleBlocks.js:482 +#: js/blocks/EnsembleBlocks.js:482 msgid "The Y mouse block returns the Y position of the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:494 +#: js/blocks/EnsembleBlocks.js:494 #.TRANS: y position for this turtle msgid "turtle y" msgstr "" -#: js/EnsembleBlocks.js:496 +#: js/blocks/EnsembleBlocks.js:496 msgid "The Y turtle block returns the Y position of the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:526 +#: js/blocks/EnsembleBlocks.js:526 #.TRANS: x position for this mouse msgid "mouse x" msgstr "" -#: js/EnsembleBlocks.js:528 +#: js/blocks/EnsembleBlocks.js:528 msgid "The X mouse block returns the X position of the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:540 +#: js/blocks/EnsembleBlocks.js:540 #.TRANS: x position for this turtle msgid "turtle x" msgstr "" -#: js/EnsembleBlocks.js:542 +#: js/blocks/EnsembleBlocks.js:542 msgid "The X turtle block returns the X position of the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:573 +#: js/blocks/EnsembleBlocks.js:573 #.TRANS: notes played by this mouse msgid "mouse notes played" msgstr "" -#: js/EnsembleBlocks.js:575 +#: js/blocks/EnsembleBlocks.js:575 msgid "The Mouse elapse notes block returns the number of notes played by the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:587 +#: js/blocks/EnsembleBlocks.js:587 #.TRANS: notes played by this turtle msgid "turtle notes played" msgstr "" -#: js/EnsembleBlocks.js:589 +#: js/blocks/EnsembleBlocks.js:589 msgid "The Turtle elapse notes block returns the number of notes played by the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:627 +#: js/blocks/EnsembleBlocks.js:627 #.TRANS: convert current note for this turtle to piano key (1-88) msgid "mouse pitch number" msgstr "" -#: js/EnsembleBlocks.js:629 +#: js/blocks/EnsembleBlocks.js:629 msgid "The Mouse pitch block returns the current pitch number being played by the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:641 +#: js/blocks/EnsembleBlocks.js:641 #.TRANS: convert current note for this turtle to piano key (1-88) msgid "turtle pitch number" msgstr "" -#: js/EnsembleBlocks.js:643 -msgid "The Turrle pitch block returns the current pitch number being played by the specified turtle." +#: js/blocks/EnsembleBlocks.js:643 +msgid "The Turtle pitch block returns the current pitch number being played by the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:747 -#: js/EnsembleBlocks.js:819 +#: js/blocks/EnsembleBlocks.js:747 +#: js/blocks/EnsembleBlocks.js:819 #.TRANS: note value is the duration of the note played by this mouse msgid "mouse note value" msgstr "" -#: js/EnsembleBlocks.js:757 +#: js/blocks/EnsembleBlocks.js:757 #.TRANS: note value is the duration of the note played by this turtle msgid "turtle note value" msgstr "" -#: js/EnsembleBlocks.js:830 +#: js/blocks/EnsembleBlocks.js:830 #.TRANS: sync is short for synchronization msgid "mouse sync" msgstr "" -#: js/EnsembleBlocks.js:832 +#: js/blocks/EnsembleBlocks.js:832 msgid "The Mouse sync block aligns the beat count between mice." msgstr "" -#: js/EnsembleBlocks.js:844 +#: js/blocks/EnsembleBlocks.js:844 #.TRANS: sync is short for synchronization msgid "turtle sync" msgstr "" -#: js/EnsembleBlocks.js:846 +#: js/blocks/EnsembleBlocks.js:846 msgid "The Turtle sync block aligns the beat count between turtles." msgstr "" -#: js/EnsembleBlocks.js:887 +#: js/blocks/EnsembleBlocks.js:887 msgid "The Found mouse block will return true if the specified mouse can be found." msgstr "" -#: js/EnsembleBlocks.js:893 +#: js/blocks/EnsembleBlocks.js:893 msgid "found mouse" msgstr "" -#: js/EnsembleBlocks.js:903 +#: js/blocks/EnsembleBlocks.js:903 msgid "The Found turtle block will return true if the specified turtle can be found." msgstr "" -#: js/EnsembleBlocks.js:909 +#: js/blocks/EnsembleBlocks.js:909 msgid "found turtle" msgstr "" -#: js/EnsembleBlocks.js:932 +#: js/blocks/EnsembleBlocks.js:932 msgid "new mouse" msgstr "" -#: js/EnsembleBlocks.js:934 +#: js/blocks/EnsembleBlocks.js:934 msgid "The New mouse block will create a new mouse." msgstr "" -#: js/EnsembleBlocks.js:945 +#: js/blocks/EnsembleBlocks.js:945 msgid "new turtle" msgstr "" -#: js/EnsembleBlocks.js:947 +#: js/blocks/EnsembleBlocks.js:947 msgid "The New turtle block will create a new turtle." msgstr "" -#: js/EnsembleBlocks.js:1011 +#: js/blocks/EnsembleBlocks.js:1011 msgid "set mouse color" msgstr "" -#: js/EnsembleBlocks.js:1014 -msgid "The Set-mouse-color block is used to set the color of a mouse." -msgstr "" - -#: js/EnsembleBlocks.js:1020 -msgid "set turtle color" -msgstr "" - -#: js/EnsembleBlocks.js:1023 -msgid "The Set-turtle-color block is used to set the color of a turtle." -msgstr "" - -#: js/EnsembleBlocks.js:1083 -msgid "The Mouse-name block returns the name of a mouse." -msgstr "" - -#: js/EnsembleBlocks.js:1092 -msgid "The Turtle-name block returns the name of a turtle." -msgstr "" - -#: js/EnsembleBlocks.js:1115 -msgid "mouse count" -msgstr "" - -#: js/EnsembleBlocks.js:1118 -msgid "The Mouse-count block returns the number of mice." -msgstr "" - -#: js/EnsembleBlocks.js:1124 -msgid "turtle count" -msgstr "" - -#: js/EnsembleBlocks.js:1127 -msgid "The Turtle-count block returns the number of turtles." -msgstr "" - -#: js/EnsembleBlocks.js:1149 -msgid "nth mouse name" -msgstr "" - -#: js/EnsembleBlocks.js:1152 -msgid "The Nth-Mouse name block returns the name of the nth mouse." -msgstr "" - -#: js/EnsembleBlocks.js:1158 -msgid "nth turtle name" -msgstr "" - -#: js/EnsembleBlocks.js:1161 -msgid "The Nth-Turtle name block returns the name of the nth turtle." -msgstr "" - -#: js/EnsembleBlocks.js:1205 -#: js/EnsembleBlocks.js:1265 -msgid "set name" -msgstr "" - -#: js/EnsembleBlocks.js:1214 -#: js/EnsembleBlocks.js:1221 -msgid "source" -msgstr "" - -#: js/EnsembleBlocks.js:1214 -#: js/EnsembleBlocks.js:1221 -msgid "target" -msgstr "" - -#: js/EnsembleBlocks.js:1271 -msgid "The Set-name block is used to name a mouse." -msgstr "" - -#: js/EnsembleBlocks.js:1284 -msgid "The Set-name block is used to name a turtle." -msgstr "" - -#: js/BooleanBlocks.js:44 -msgid "The Not block is the logical not operator." -msgstr "" - -#: js/BooleanBlocks.js:62 -msgid "not" -msgstr "не" - -#: js/BooleanBlocks.js:134 -msgid "The And block is the logical and operator." -msgstr "" - -#: js/BooleanBlocks.js:152 -msgid "and" -msgstr "и" - -#: js/BooleanBlocks.js:218 -msgid "The Or block is the logical or operator." -msgstr "" - -#: js/BooleanBlocks.js:236 -msgid "or" -msgstr "или" - -#: js/BooleanBlocks.js:302 -msgid "The XOR block is the logical XOR operator." -msgstr "" - -#: js/BooleanBlocks.js:320 -msgid "xor" -msgstr "" - -#: js/BooleanBlocks.js:808 -msgid "The Equal block returns True if the two numbers are equal." -msgstr "" - -#: js/BooleanBlocks.js:909 -msgid "The Not-equal-to block returns True if the two numbers are not equal to each other." -msgstr "" - -#: js/BooleanBlocks.js:1008 -msgid "The Boolean block is used to specify true or false." -msgstr "" - -#: js/MediaBlocks.js:35 -#.TRANS: right side of the screen -msgid "right (screen)" -msgstr "" - -#: js/MediaBlocks.js:45 -#: js/MediaBlocks.js:56 -msgid "The Right block returns the position of the right of the canvas." +#: js/blocks/EnsembleBlocks.js:1014 +msgid "The Set-mouse-color block is used to set the color of a mouse." msgstr "" -#: js/MediaBlocks.js:97 -#.TRANS: left side of the screen -msgid "left (screen)" +#: js/blocks/EnsembleBlocks.js:1020 +msgid "set turtle color" msgstr "" -#: js/MediaBlocks.js:107 -#: js/MediaBlocks.js:118 -msgid "The Left block returns the position of the left of the canvas." +#: js/blocks/EnsembleBlocks.js:1023 +msgid "The Set-turtle-color block is used to set the color of a turtle." msgstr "" -#: js/MediaBlocks.js:158 -msgid "top (screen)" +#: js/blocks/EnsembleBlocks.js:1083 +msgid "The Mouse-name block returns the name of a mouse." msgstr "" -#: js/MediaBlocks.js:168 -#: js/MediaBlocks.js:179 -msgid "The Top block returns the position of the top of the canvas." +#: js/blocks/EnsembleBlocks.js:1092 +msgid "The Turtle-name block returns the name of a turtle." msgstr "" -#: js/MediaBlocks.js:219 -msgid "bottom (screen)" +#: js/blocks/EnsembleBlocks.js:1115 +msgid "mouse count" msgstr "" -#: js/MediaBlocks.js:229 -#: js/MediaBlocks.js:240 -msgid "The Bottom block returns the position of the bottom of the canvas." +#: js/blocks/EnsembleBlocks.js:1118 +msgid "The Mouse-count block returns the number of mice." msgstr "" -#: js/MediaBlocks.js:282 -msgid "width" +#: js/blocks/EnsembleBlocks.js:1124 +msgid "turtle count" msgstr "" -#: js/MediaBlocks.js:291 -msgid "The Width block returns the width of the canvas." +#: js/blocks/EnsembleBlocks.js:1127 +msgid "The Turtle-count block returns the number of turtles." msgstr "" -#: js/MediaBlocks.js:325 -msgid "height" +#: js/blocks/EnsembleBlocks.js:1149 +msgid "nth mouse name" msgstr "" -#: js/MediaBlocks.js:334 -msgid "The Height block returns the height of the canvas." +#: js/blocks/EnsembleBlocks.js:1152 +msgid "The Nth-Mouse name block returns the name of the nth mouse." msgstr "" -#: js/MediaBlocks.js:369 -#.TRANS: stops playback of an audio recording -msgid "stop play" +#: js/blocks/EnsembleBlocks.js:1158 +msgid "nth turtle name" msgstr "" -#: js/MediaBlocks.js:404 -#.TRANS: Erases the images and text -msgid "erase media" +#: js/blocks/EnsembleBlocks.js:1161 +msgid "The Nth-Turtle name block returns the name of the nth turtle." msgstr "" -#: js/MediaBlocks.js:409 -msgid "The Erase Media block erases text and images." +#: js/blocks/EnsembleBlocks.js:1205 +#: js/blocks/EnsembleBlocks.js:1265 +msgid "set name" msgstr "" -#: js/MediaBlocks.js:439 -#.TRANS: play an audio recording -msgid "play back" +#: js/blocks/EnsembleBlocks.js:1214 +#: js/blocks/EnsembleBlocks.js:1221 +msgid "source" msgstr "" -#: js/MediaBlocks.js:487 -msgid "speak" +#: js/blocks/EnsembleBlocks.js:1214 +#: js/blocks/EnsembleBlocks.js:1221 +msgid "target" msgstr "" -#: js/MediaBlocks.js:495 -msgid "The Speak block outputs to the text-to-speech synthesizer" +#: js/blocks/EnsembleBlocks.js:1271 +msgid "The Set-name block is used to name a mouse." msgstr "" -#: js/MediaBlocks.js:546 -msgid "camera" +#: js/blocks/EnsembleBlocks.js:1284 +msgid "The Set-name block is used to name a turtle." msgstr "" -#: js/MediaBlocks.js:551 -msgid "The Camera block connects a webcam to the Show block." +#: js/blocks/ExtrasBlocks.js:33 +msgid "fraction" msgstr "" -#: js/MediaBlocks.js:574 -msgid "video" +#: js/blocks/ExtrasBlocks.js:36 +msgid "Convert a float to a fraction" msgstr "" -#: js/MediaBlocks.js:579 -msgid "The Video block selects video for use with the Show block." +#: js/blocks/ExtrasBlocks.js:93 +msgid "save as ABC" msgstr "" -#: js/MediaBlocks.js:607 -msgid "The Open file block opens a file for use with the Show block." +#: js/blocks/ExtrasBlocks.js:96 +#: js/blocks/ExtrasBlocks.js:132 +#: js/blocks/ExtrasBlocks.js:168 +msgid "title" msgstr "" -#: js/MediaBlocks.js:645 -msgid "stop media" +#: js/blocks/ExtrasBlocks.js:129 +msgid "save as Lilypond" msgstr "" -#: js/MediaBlocks.js:650 -msgid "The Stop media block stops audio or video playback." +#: js/blocks/ExtrasBlocks.js:165 +msgid "save as SVG" msgstr "" -#: js/MediaBlocks.js:679 -#: js/PitchBlocks.js:1539 -#: js/phrasemaker.js:822 -#: js/musickeyboard.js:1654 -#.TRANS: a measure of frequency: one cycle per second -msgid "hertz" +#: js/blocks/ExtrasBlocks.js:216 +msgid "no background" msgstr "" -#: js/MediaBlocks.js:692 -msgid "duration (ms)" +#: js/blocks/ExtrasBlocks.js:219 +msgid "The No background block eliminates the background from the saved SVG output." msgstr "" -#: js/MediaBlocks.js:728 -#.TRANS: translate a note into hertz, e.g., A4 -> 440HZ -msgid "note to frequency" -msgstr "" +#: js/blocks/ExtrasBlocks.js:247 +msgid "show blocks" +msgstr "показать блоки" -#: js/MediaBlocks.js:736 -msgid "The To frequency block converts a pitch name and octave to Hertz." +#: js/blocks/ExtrasBlocks.js:249 +msgid "The Show blocks block shows the blocks." msgstr "" -#: js/MediaBlocks.js:746 -#: js/PitchBlocks.js:656 -#: js/PitchBlocks.js:932 -#: js/PitchBlocks.js:1827 -#.TRANS: name2 is name as in name of pitch (JAPANESE ONLY) -msgid "name2" +#: js/blocks/ExtrasBlocks.js:274 +msgid "hide blocks" +msgstr "скрыть блоки" + +#: js/blocks/ExtrasBlocks.js:276 +msgid "The Hide blocks block hides the blocks." msgstr "" -#: js/MediaBlocks.js:812 -msgid "The Avatar block is used to change the appearance of the mouse." +#: js/blocks/ExtrasBlocks.js:305 +#: js/blocks/ExtrasBlocks.js:338 +msgid "The Space block is used to add space between blocks." msgstr "" -#: js/MediaBlocks.js:819 -msgid "The Avatar block is used to change the appearance of the turtle." +#: js/blocks/ExtrasBlocks.js:376 +msgid "wait" +msgstr "ждать" + +#: js/blocks/ExtrasBlocks.js:379 +msgid "The Wait block pauses the program for a specified number of seconds." msgstr "" -#: js/MediaBlocks.js:831 -#: js/MediaBlocks.js:891 -#.TRANS: a media object -msgid "size" +#: js/blocks/ExtrasBlocks.js:433 +#: plugins/facebook.rtp:30 +msgid "comment" +msgstr "комментарий" + +#: js/blocks/ExtrasBlocks.js:469 +msgid "print" +msgstr "печать" + +#: js/blocks/ExtrasBlocks.js:476 +msgid "The Print block displays text at the top of the screen." msgstr "" -#: js/MediaBlocks.js:831 -msgid "image" -msgstr "картинка" +#: js/blocks/ExtrasBlocks.js:582 +msgid "display grid" +msgstr "" -#: js/MediaBlocks.js:880 -msgid "The Show block is used to display text or images on the canvas." +#: js/blocks/ExtrasBlocks.js:587 +msgid "The Display Grid Block changes the grid type" msgstr "" -#: js/MediaBlocks.js:888 -#.TRANS: show1 is show as in display an image or text on the screen. -msgid "show1" +#: js/blocks/ExtrasBlocks.js:689 +#: js/blocks/ExtrasBlocks.js:708 +#: js/blocks/ExtrasBlocks.js:731 +#: js/blocks/ExtrasBlocks.js:754 +#: js/blocks/ExtrasBlocks.js:772 +#: js/blocks/ExtrasBlocks.js:791 +#: js/blocks/ExtrasBlocks.js:810 +#: js/blocks/ExtrasBlocks.js:829 +msgid "unknown" msgstr "" -#: js/MediaBlocks.js:891 -msgid "obj" +#: js/blocks/FlowBlocks.js:41 +msgid "The Backward block runs code in reverse order (Musical retrograde)." msgstr "" -#: js/MediaBlocks.js:938 -msgid "The Media block is used to import an image." +#: js/blocks/FlowBlocks.js:48 +msgid "backward" msgstr "" -#: js/MediaBlocks.js:973 -msgid "The Text block holds a text string." +#: js/blocks/FlowBlocks.js:124 +msgid "The Duplicate block will run each block multiple times." msgstr "" -#: js/ProgramBlocks.js:33 -msgid "The Load-heap-from-app block loads the heap from a web page." +#: js/blocks/FlowBlocks.js:136 +msgid "duplicate" msgstr "" -#: js/ProgramBlocks.js:44 -#.TRANS: load the heap contents from a URL -msgid "load heap from App" +#: js/blocks/FlowBlocks.js:334 +msgid "The Default block is used inside of a Switch to define the default action." msgstr "" -#: js/ProgramBlocks.js:95 -msgid "Error parsing JSON data:" +#: js/blocks/FlowBlocks.js:342 +msgid "default" msgstr "" -#: js/ProgramBlocks.js:100 -msgid "404: Page not found" +#: js/blocks/FlowBlocks.js:361 +#: js/blocks/FlowBlocks.js:418 +msgid "The Case Block must be used inside of a Switch Block." msgstr "" -#: js/ProgramBlocks.js:133 -msgid "The Save-heap-to-app block saves the heap to a web page." +#: js/blocks/FlowBlocks.js:389 +msgid "The Case block is used inside of a Switch to define matches." msgstr "" -#: js/ProgramBlocks.js:144 -#.TRANS: save the heap contents to a URL -msgid "save heap to App" +#: js/blocks/FlowBlocks.js:397 +msgid "case" msgstr "" -#: js/ProgramBlocks.js:189 -msgid "Cannot find a valid heap for" +#: js/blocks/FlowBlocks.js:446 +msgid "The Switch block will run the code in the matching Case." msgstr "" -#: js/ProgramBlocks.js:206 -msgid "The Load-heap block loads the heap from a file." +#: js/blocks/FlowBlocks.js:454 +msgid "switch" msgstr "" -#: js/ProgramBlocks.js:217 -#.TRANS: load the heap from a file -msgid "load heap" +#: js/blocks/FlowBlocks.js:595 +msgid "The Stop block will stop a loop" msgstr "" -#: js/ProgramBlocks.js:270 -msgid "The file you selected does not contain a valid heap." +#: js/blocks/FlowBlocks.js:597 +msgid "Forever, Repeat, While, or Until." msgstr "" -#: js/ProgramBlocks.js:275 -msgid "The loadHeap block needs a loadFile block." +#: js/blocks/FlowBlocks.js:604 +#: js/widgets/timbre.js:417 +#: js/widgets/timbre.js:419 +#: js/widgets/musickeyboard.js:819 +#: js/widgets/musickeyboard.js:821 +#: js/widgets/phrasemaker.js:4202 +#: plugins/rodi.rtp:29 +#: plugins/rodi.rtp:73 +#: plugins/rodi.rtp:413 +msgid "stop" +msgstr "Стоп" + +#: js/blocks/FlowBlocks.js:653 +msgid "The Waitfor block will wait until the condition is true." msgstr "" -#: js/ProgramBlocks.js:291 -msgid "The Set-heap block loads the heap." +#: js/blocks/FlowBlocks.js:661 +msgid "wait for" msgstr "" -#: js/ProgramBlocks.js:299 -#: js/HeapBlocks.js:539 -#.TRANS: load the heap from a JSON encoding -msgid "set heap" +#: js/blocks/FlowBlocks.js:732 +msgid "The Until block will repeat until the condition is true." msgstr "" -#: js/ProgramBlocks.js:340 -msgid "The block you selected does not contain a valid heap." +#: js/blocks/FlowBlocks.js:740 +msgid "until" +msgstr "пока" + +#: js/blocks/FlowBlocks.js:742 +#: js/blocks/FlowBlocks.js:822 +msgid "do2" msgstr "" -#: js/ProgramBlocks.js:343 -msgid "The Set heap block needs a heap." +#: js/blocks/FlowBlocks.js:812 +msgid "The While block will repeat while the condition is true." msgstr "" -#: js/ProgramBlocks.js:360 -msgid "The Load-dictionary block loads a dictionary from a file." +#: js/blocks/FlowBlocks.js:820 +msgid "while" +msgstr "в то время, как" + +#: js/blocks/FlowBlocks.js:903 +#: js/blocks/FlowBlocks.js:968 +#: js/blocks/FlowBlocks.js:979 +msgid "In this example if the mouse button is pressed a snare drum will play." msgstr "" -#: js/ProgramBlocks.js:372 -#.TRANS: load a dictionary from a file -msgid "load dictionary" +#: js/blocks/FlowBlocks.js:925 +#: js/blocks/FlowBlocks.js:988 +msgid "if" +msgstr "если" + +#: js/blocks/FlowBlocks.js:927 +#: js/blocks/FlowBlocks.js:990 +msgid "then" +msgstr "тогда" + +#: js/blocks/FlowBlocks.js:927 +msgid "else" +msgstr "иначе" + +#: js/blocks/FlowBlocks.js:1025 +msgid "The Forever block will repeat the contained blocks forever." msgstr "" -#: js/ProgramBlocks.js:390 -#: js/ProgramBlocks.js:658 -#: js/ToneBlocks.js:1025 -msgid "file" +#: js/blocks/FlowBlocks.js:1037 +msgid "forever" +msgstr "всегда" + +#: js/blocks/FlowBlocks.js:1073 +msgid "The Repeat block will repeat the contained blocks." msgstr "" -#: js/ProgramBlocks.js:396 -#: js/ProgramBlocks.js:501 -#: js/ProgramBlocks.js:664 -#: js/DictBlocks.js:80 -#: js/DictBlocks.js:145 -#: js/DictBlocks.js:216 -#: js/DictBlocks.js:290 -msgid "My Dictionary" +#: js/blocks/FlowBlocks.js:1075 +msgid "In this example the note will be played 4 times." msgstr "" -#: js/ProgramBlocks.js:444 -msgid "The file you selected does not contain a valid dictionary." +#: js/blocks/FlowBlocks.js:1083 +msgid "repeat" +msgstr "повтор" + +#: js/blocks/FlowBlocks.js:1123 +msgid "duplicate factor" msgstr "" -#: js/ProgramBlocks.js:449 -msgid "The load dictionary block needs a load file block." +#: js/blocks/HeapBlocks.js:49 +msgid "The Heap block returns the heap." msgstr "" -#: js/ProgramBlocks.js:466 -msgid "The Set-dictionary block loads a dictionary." +#: js/blocks/HeapBlocks.js:133 +msgid "show heap" +msgstr "показать голову" + +#: js/blocks/HeapBlocks.js:181 +msgid "The Heap-length block returns the length of the heap." msgstr "" -#: js/ProgramBlocks.js:477 -#.TRANS: load a dictionary from a JSON -msgid "set dictionary" +#: js/blocks/HeapBlocks.js:195 +msgid "heap length" msgstr "" -#: js/ProgramBlocks.js:546 -msgid "The block you selected does not contain a valid dictionary." +#: js/blocks/HeapBlocks.js:254 +msgid "The Heap-empty? block returns true if the heap is empty." msgstr "" -#: js/ProgramBlocks.js:550 -msgid "The set dictionary block needs a dictionary." +#: js/blocks/HeapBlocks.js:268 +#.TRANS: Is the heap empty? +msgid "heap empty?" msgstr "" -#: js/ProgramBlocks.js:567 -msgid "The Save-heap block saves the heap to a file." +#: js/blocks/HeapBlocks.js:317 +msgid "The Empty-heap block empties the heap." msgstr "" -#: js/ProgramBlocks.js:578 -#.TRANS: save the heap to a file -msgid "save heap" +#: js/blocks/HeapBlocks.js:327 +#: js/blocks/HeapBlocks.js:647 +#.TRANS: empty the heap +msgid "empty heap" +msgstr "пустая голова" + +#: js/blocks/HeapBlocks.js:371 +msgid "The Reverse-heap block reverses the order of the heap." msgstr "" -#: js/ProgramBlocks.js:629 -msgid "The Save-dictionary block saves a dictionary to a file." +#: js/blocks/HeapBlocks.js:384 +#.TRANS: reverse the order of the heap +msgid "reverse heap" msgstr "" -#: js/ProgramBlocks.js:640 -#.TRANS: save a dictionary to a file -msgid "save dictionary" +#: js/blocks/HeapBlocks.js:428 +msgid "The Index-heap block returns a value in the heap at a specified location." msgstr "" -#: js/ProgramBlocks.js:720 -msgid "The Open palette block opens a palette." +#: js/blocks/HeapBlocks.js:443 +#.TRANS: retrieve a value from the heap at index position in the heap +msgid "index heap" msgstr "" -#: js/ProgramBlocks.js:727 -msgid "open palette" +#: js/blocks/HeapBlocks.js:523 +msgid "The Set-heap entry block sets a value in he heap at the specified location." msgstr "" -#: js/ProgramBlocks.js:785 -msgid "The Delete block block removes a block." +#: js/blocks/HeapBlocks.js:539 +#: js/blocks/ProgramBlocks.js:299 +#.TRANS: load the heap from a JSON encoding +msgid "set heap" msgstr "" -#: js/ProgramBlocks.js:797 -#.TRANS: Move this block to the trash. -msgid "delete block" +#: js/blocks/HeapBlocks.js:619 +msgid "The Pop block removes the value at the top of the heap." msgstr "" -#: js/ProgramBlocks.js:861 -msgid "The Move block block moves a block." +#: js/blocks/HeapBlocks.js:633 +#.TRANS: pop a value off the top of the heap +msgid "pop" +msgstr "вытолкнуть" + +#: js/blocks/HeapBlocks.js:680 +msgid "The Push block adds a value to the top of the heap." msgstr "" -#: js/ProgramBlocks.js:869 -#.TRANS: Move the position of a block on the screen. -msgid "move block" +#: js/blocks/HeapBlocks.js:696 +#.TRANS: push a value onto the top of the heap +msgid "push" +msgstr "затолкнуть" + +#: js/blocks/IntervalsBlocks.js:45 +msgid "set temperament" msgstr "" -#: js/ProgramBlocks.js:881 -#: js/ProgramBlocks.js:1048 -msgid "block number" +#: js/blocks/IntervalsBlocks.js:63 +#: js/blocks/MediaBlocks.js:746 +#: js/blocks/PitchBlocks.js:657 +#: js/blocks/PitchBlocks.js:935 +#: js/blocks/PitchBlocks.js:974 +#: js/blocks/PitchBlocks.js:1007 +#: js/blocks/PitchBlocks.js:1194 +#: js/blocks/PitchBlocks.js:1717 +#: js/blocks/PitchBlocks.js:1758 +#: js/blocks/PitchBlocks.js:1866 +#: js/blocks/ToneBlocks.js:1025 +#: js/turtleactions/IntervalsActions.js:114 +#.TRANS: adjusts the shift up or down by one octave (twelve half-steps in the interval between two notes, one having twice or half the frequency in Hz of the other.) +msgid "octave" msgstr "" -#: js/ProgramBlocks.js:935 -#.TRANS: Run program beginning at this block. -msgid "run block" +#: js/blocks/IntervalsBlocks.js:99 +msgid "The Temperament name block is used to select a tuning method." msgstr "" -#: js/ProgramBlocks.js:1025 -msgid "The Dock block block connections two blocks." +#: js/blocks/IntervalsBlocks.js:161 +msgid "doubly" msgstr "" -#: js/ProgramBlocks.js:1036 -#.TRANS: We can connect a block to another block. -msgid "connect blocks" +#: js/blocks/IntervalsBlocks.js:166 +msgid "The Doubly block will double the size of an interval." msgstr "" -#: js/ProgramBlocks.js:1048 -msgid "target block" +#: js/blocks/IntervalsBlocks.js:262 +msgid "interval number" msgstr "" -#: js/ProgramBlocks.js:1048 -msgid "connection number" +#: js/blocks/IntervalsBlocks.js:317 +msgid "current interval" msgstr "" -#: js/ProgramBlocks.js:1140 -msgid "The Make block block creates a new block." +#: js/blocks/IntervalsBlocks.js:387 +#.TRANS: measure the distance between two pitches in semi-tones +msgid "semi-tone interval measure" msgstr "" -#: js/ProgramBlocks.js:1152 -#.TRANS: Create a new block -msgid "make block" +#: js/blocks/IntervalsBlocks.js:454 +#: js/blocks/IntervalsBlocks.js:570 +msgid "You must use two pitch blocks when measuring an interval." msgstr "" -#: js/ProgramBlocks.js:1186 -#: js/ProgramBlocks.js:1227 -#: js/RhythmBlocks.js:1128 -#: js/PitchBlocks.js:972 -#: js/PitchBlocks.js:1005 -#: js/temperament.js:340 -#: js/temperament.js:362 -#: js/temperament.js:372 -#: js/temperament.js:484 -#: js/status.js:190 -#: plugins/rodi.rtp:192 -#.TRANS: a musical note consisting of pitch and duration -msgid "note" +#: js/blocks/IntervalsBlocks.js:496 +msgid "The Scalar interval block measures the distance between two notes in the current key and mode." msgstr "" -#: js/ProgramBlocks.js:1285 -msgid "Cannot find block" +#: js/blocks/IntervalsBlocks.js:502 +#.TRANS: measure the distance between two pitches in steps of musical scale +msgid "scalar interval measure" msgstr "" -#: js/ProgramBlocks.js:1304 -#: js/ProgramBlocks.js:1313 -msgid "Warning: block argument type mismatch" +#: js/blocks/IntervalsBlocks.js:678 +msgid "In the figure, we add sol# to sol." msgstr "" -#: js/ProgramBlocks.js:1347 -msgid "The Open project block is used to open a project from a web page." +#: js/blocks/IntervalsBlocks.js:684 +#: js/blocks/OrnamentBlocks.js:220 +#.TRANS: calculate a relative step between notes based on semi-tones +msgid "semi-tone interval" msgstr "" -#: js/ProgramBlocks.js:1357 -msgid "open project" +#: js/blocks/IntervalsBlocks.js:733 +msgid "The output of the example is: do, mi, sol, sol, ti, mi" msgstr "" -#: js/ProgramBlocks.js:1410 -msgid "Please enter a valid URL." +#: js/blocks/IntervalsBlocks.js:740 +#: js/blocks/WidgetBlocks.js:768 +msgid "arpeggio" msgstr "" -#: js/DrumBlocks.js:59 -msgid "The Noise name block is used to select a noise synthesizer." +#: js/blocks/IntervalsBlocks.js:931 +msgid "The Chord block calculates common chords." msgstr "" -#: js/DrumBlocks.js:102 -msgid "The Drum name block is used to select a drum." +#: js/blocks/IntervalsBlocks.js:933 +msgid "In the figure, we generate a C-major chord." msgstr "" -#: js/DrumBlocks.js:146 -msgid "The Effects name block is used to select a sound effect." +#: js/blocks/IntervalsBlocks.js:938 +msgid "chord" msgstr "" -#: js/DrumBlocks.js:163 -msgid "noise" +#: js/blocks/IntervalsBlocks.js:990 +msgid "The Ratio Interval block calculates an interval based on a ratio." msgstr "" -#: js/DrumBlocks.js:177 -msgid "The Play noise block will generate white, pink, or brown noise." +#: js/blocks/IntervalsBlocks.js:995 +msgid "ratio interval" msgstr "" -#: js/DrumBlocks.js:191 -#: js/musicutils.js:752 -#: js/synthutils.js:47 -#.TRANS: white noise synthesizer -msgid "white noise" +#: js/blocks/IntervalsBlocks.js:1064 +msgid "In the figure, we add la to sol." msgstr "" -#: js/DrumBlocks.js:326 -msgid "Replace every instance of a pitch with a drum sound." +#: js/blocks/IntervalsBlocks.js:1120 +#.TRANS: define a custom mode +msgid "define mode" msgstr "" -#: js/DrumBlocks.js:337 -#.TRANS: map a pitch to a drum sound -msgid "map pitch to drum" +#: js/blocks/IntervalsBlocks.js:1173 +msgid "movable Do" msgstr "" -#: js/DrumBlocks.js:404 -msgid "In the example above, a kick drum sound will be played instead of sol." +#: js/blocks/IntervalsBlocks.js:1224 +#.TRANS: mode length is the number of notes in the mode, e.g., 7 for major and minor scales; 12 for chromatic scales +msgid "mode length" msgstr "" -#: js/DrumBlocks.js:416 -#.TRANS: set the current drum sound for playback -msgid "set drum" +#: js/blocks/IntervalsBlocks.js:1233 +msgid "The Mode length block is the number of notes in the current scale." msgstr "" -#: js/DrumBlocks.js:460 -msgid "sound effect" +#: js/blocks/IntervalsBlocks.js:1235 +msgid "Most Western scales have 7 notes." msgstr "" -#: js/DrumBlocks.js:498 -msgid "You can use multiple Drum blocks within a Note block." +#: js/blocks/IntervalsBlocks.js:1284 +#.TRANS: the mode in music is 'major', 'minor', etc. +msgid "current mode" msgstr "" -#: js/RhythmBlocks.js:182 -#: js/RhythmBlocks.js:1086 -#: js/RhythmBlocks.js:1162 -msgid "Note value must be greater than 0." +#: js/blocks/IntervalsBlocks.js:1337 +#.TRANS: the key is a group of pitches with which a music composition is created +msgid "current key" msgstr "" -#: js/RhythmBlocks.js:215 -#: js/RhythmBlocks.js:278 -#: js/RhythmBlocks.js:350 -#.TRANS: swing is a rhythmic variation that emphasises the offbeat -msgid "swing" +#: js/blocks/IntervalsBlocks.js:1389 +#: js/blocks/IntervalsBlocks.js:1434 +#.TRANS: set the key and mode, e.g. C Major +msgid "set key" msgstr "" -#: js/RhythmBlocks.js:355 -#.TRANS: the amount to shift to the offbeat note -msgid "swing value" +#: js/blocks/IntervalsBlocks.js:1443 +#: js/blocks/IntervalsBlocks.js:1449 +msgid "The Set key block is used to set the key and mode," msgstr "" -#: js/RhythmBlocks.js:419 -msgid "The Skip notes block will cause notes to be skipped." +#: js/blocks/IntervalsBlocks.js:1449 +msgid "eg C Major" msgstr "" -#: js/RhythmBlocks.js:427 -#.TRANS: substitute rests on notes being skipped -msgid "skip notes" +#: js/blocks/MediaBlocks.js:35 +#.TRANS: right side of the screen +msgid "right (screen)" msgstr "" -#: js/RhythmBlocks.js:489 -#.TRANS: speed up note duration by some factor, e.g. convert 1/4 to 1/8 notes by using a factor of 2 -msgid "multiply note value" +#: js/blocks/MediaBlocks.js:45 +#: js/blocks/MediaBlocks.js:56 +msgid "The Right block returns the position of the right of the canvas." msgstr "" -#: js/RhythmBlocks.js:542 -msgid "The Tie block works on pairs of notes, combining them into one note." +#: js/blocks/MediaBlocks.js:97 +#.TRANS: left side of the screen +msgid "left (screen)" msgstr "" -#: js/RhythmBlocks.js:550 -#.TRANS: tie notes together into one longer note -msgid "tie" +#: js/blocks/MediaBlocks.js:107 +#: js/blocks/MediaBlocks.js:118 +msgid "The Left block returns the position of the left of the canvas." msgstr "" -#: js/RhythmBlocks.js:591 -#: js/RhythmBlocks.js:671 -#.TRANS: a dotted note is played for 1.5x its value, e.g., 1/8. --> 3/16 -msgid "dot" +#: js/blocks/MediaBlocks.js:158 +msgid "top (screen)" msgstr "" -#: js/RhythmBlocks.js:619 -#: js/RhythmActions.js:221 -msgid "An argument of -1 results in a note value of 0." +#: js/blocks/MediaBlocks.js:168 +#: js/blocks/MediaBlocks.js:179 +msgid "The Top block returns the position of the top of the canvas." msgstr "" -#: js/RhythmBlocks.js:661 -msgid "The Dot block extends the duration of a note by 50%." +#: js/blocks/MediaBlocks.js:219 +msgid "bottom (screen)" msgstr "" -#: js/RhythmBlocks.js:663 -msgid "Eg a dotted quarter note will play for 3/8 (1/4 + 1/8) of a beat." +#: js/blocks/MediaBlocks.js:229 +#: js/blocks/MediaBlocks.js:240 +msgid "The Bottom block returns the position of the bottom of the canvas." msgstr "" -#: js/RhythmBlocks.js:765 -#.TRANS: Japanese only: note value block for drum -msgid "note value drum" +#: js/blocks/MediaBlocks.js:282 +msgid "width" msgstr "" -#: js/RhythmBlocks.js:829 -msgid "392 hertz" +#: js/blocks/MediaBlocks.js:291 +msgid "The Width block returns the width of the canvas." msgstr "" -#: js/RhythmBlocks.js:1119 -msgid "The Note block is a container for one or more Pitch blocks." +#: js/blocks/MediaBlocks.js:325 +msgid "height" msgstr "" -#: js/RhythmBlocks.js:1121 -msgid "The Note block specifies the duration (note value) of its contents." +#: js/blocks/MediaBlocks.js:334 +msgid "The Height block returns the height of the canvas." msgstr "" -#: js/RhythmBlocks.js:1130 -msgid "value2" +#: js/blocks/MediaBlocks.js:369 +#.TRANS: stops playback of an audio recording +msgid "stop play" msgstr "" -#: js/RhythmBlocks.js:1200 -msgid "define frequency" +#: js/blocks/MediaBlocks.js:404 +#.TRANS: Erases the images and text +msgid "erase media" msgstr "" -#: js/RhythmBlocks.js:1218 -#: js/temperament.js:650 -#: js/temperament.js:1421 -msgid "octave space" +#: js/blocks/MediaBlocks.js:409 +msgid "The Erase Media block erases text and images." msgstr "" -#: js/NumberBlocks.js:28 -msgid "The Int block returns an integer." +#: js/blocks/MediaBlocks.js:439 +#.TRANS: play an audio recording +msgid "play back" msgstr "" -#: js/NumberBlocks.js:34 -msgid "int" +#: js/blocks/MediaBlocks.js:487 +msgid "speak" msgstr "" -#: js/NumberBlocks.js:73 -msgid "The Mod block returns the remainder from a division." +#: js/blocks/MediaBlocks.js:495 +msgid "The Speak block outputs to the text-to-speech synthesizer" msgstr "" -#: js/NumberBlocks.js:79 -msgid "mod" -msgstr "модуль" - -#: js/NumberBlocks.js:123 -msgid "The Power block calculates a power function." +#: js/blocks/MediaBlocks.js:546 +msgid "camera" msgstr "" -#: js/NumberBlocks.js:178 -msgid "The Sqrt block returns the square root." +#: js/blocks/MediaBlocks.js:551 +msgid "The Camera block connects a webcam to the Show block." msgstr "" -#: js/NumberBlocks.js:184 -msgid "sqrt" +#: js/blocks/MediaBlocks.js:574 +msgid "video" msgstr "" -#: js/NumberBlocks.js:230 -msgid "The Abs block returns the absolute value." +#: js/blocks/MediaBlocks.js:579 +msgid "The Video block selects video for use with the Show block." msgstr "" -#: js/NumberBlocks.js:236 -msgid "abs" +#: js/blocks/MediaBlocks.js:607 +msgid "The Open file block opens a file for use with the Show block." msgstr "" -#: js/NumberBlocks.js:277 -msgid "The Distance block returns the distance between two points. For example, between the mouse and the center of the screen." +#: js/blocks/MediaBlocks.js:645 +msgid "stop media" msgstr "" -#: js/NumberBlocks.js:283 -#: plugins/rodi.rtp:310 -msgid "distance" +#: js/blocks/MediaBlocks.js:650 +msgid "The Stop media block stops audio or video playback." msgstr "" -#: js/NumberBlocks.js:343 -msgid "The Divide block is used to divide." +#: js/blocks/MediaBlocks.js:679 +#: js/blocks/PitchBlocks.js:1577 +#: js/widgets/musickeyboard.js:1936 +#: js/widgets/phrasemaker.js:1037 +#.TRANS: a measure of frequency: one cycle per second +msgid "hertz" msgstr "" -#: js/NumberBlocks.js:411 -msgid "The Multiply block is used to multiply." +#: js/blocks/MediaBlocks.js:692 +#: js/blocks/WidgetBlocks.js:182 +#: js/widgets/temperament.js:506 +#: js/widgets/temperament.js:546 +#: js/widgets/temperament.js:610 +#: js/widgets/temperament.js:618 +#: js/widgets/temperament.js:1505 +#: js/widgets/timbre.js:1842 +msgid "frequency" msgstr "" -#: js/NumberBlocks.js:554 -msgid "The Minus block is used to subtract." +#: js/blocks/MediaBlocks.js:692 +msgid "duration (ms)" msgstr "" -#: js/NumberBlocks.js:647 -msgid "The Plus block is used to add." +#: js/blocks/MediaBlocks.js:728 +#.TRANS: translate a note into hertz, e.g., A4 -> 440HZ +msgid "note to frequency" msgstr "" -#: js/NumberBlocks.js:773 -msgid "The One-of block returns one of two choices." +#: js/blocks/MediaBlocks.js:736 +msgid "The To frequency block converts a pitch name and octave to Hertz." msgstr "" -#: js/NumberBlocks.js:780 -#: js/PitchBlocks.js:616 -msgid "one of" +#: js/blocks/MediaBlocks.js:746 +#: js/blocks/PitchBlocks.js:656 +#: js/blocks/PitchBlocks.js:934 +#: js/blocks/PitchBlocks.js:1866 +#.TRANS: name2 is name as in name of pitch (JAPANESE ONLY) +msgid "name2" msgstr "" -#: js/NumberBlocks.js:782 -msgid "this" +#: js/blocks/MediaBlocks.js:812 +msgid "The Avatar block is used to change the appearance of the mouse." msgstr "" -#: js/NumberBlocks.js:782 -msgid "that" +#: js/blocks/MediaBlocks.js:819 +msgid "The Avatar block is used to change the appearance of the turtle." msgstr "" -#: js/NumberBlocks.js:837 -msgid "The Random block returns a random number." +#: js/blocks/MediaBlocks.js:831 +#: js/blocks/MediaBlocks.js:891 +#.TRANS: a media object +msgid "size" msgstr "" -#: js/NumberBlocks.js:844 -msgid "random" -msgstr "случайно" +#: js/blocks/MediaBlocks.js:831 +msgid "image" +msgstr "картинка" -#: js/NumberBlocks.js:846 -msgid "min" -msgstr "минимум" +#: js/blocks/MediaBlocks.js:880 +msgid "The Show block is used to display text or images on the canvas." +msgstr "" -#: js/NumberBlocks.js:846 -msgid "max" -msgstr "максимум" +#: js/blocks/MediaBlocks.js:888 +#.TRANS: show1 is show as in display an image or text on the screen. +msgid "show1" +msgstr "" -#: js/NumberBlocks.js:910 -msgid "The Number block holds a number." +#: js/blocks/MediaBlocks.js:891 +msgid "obj" msgstr "" -#: js/BoxesBlocks.js:53 -#: js/BoxesBlocks.js:59 -msgid "The Add-to block is used to add to the value stored in a box." +#: js/blocks/MediaBlocks.js:938 +msgid "The Media block is used to import an image." msgstr "" -#: js/BoxesBlocks.js:61 -msgid "It can also be used with other blocks such as Color and Pen size." +#: js/blocks/MediaBlocks.js:973 +msgid "The Text block holds a text string." msgstr "" -#: js/BoxesBlocks.js:73 -msgid "add" +#: js/blocks/MeterBlocks.js:34 +#.TRANS: musical meter (time signature), e.g., 4:4 +msgid "current meter" msgstr "" -#: js/BoxesBlocks.js:75 -#: js/temperament.js:716 -msgid "to" +#: js/blocks/MeterBlocks.js:85 +#.TRANS: number of beats per minute +msgid "beat factor" msgstr "" -#: js/BoxesBlocks.js:75 -#: js/BoxesBlocks.js:595 -#: js/HeapBlocks.js:544 -msgid "value1" +#: js/blocks/MeterBlocks.js:161 +msgid "The Beats per minute block returns the current beats per minute." msgstr "" -#: js/BoxesBlocks.js:118 -msgid "Block does not support incrementing." +#: js/blocks/MeterBlocks.js:169 +#: js/widgets/status.js:152 +#.TRANS: number of beats played per minute +msgid "beats per minute2" msgstr "" -#: js/BoxesBlocks.js:152 -msgid "The Add-1-to block adds one to the value stored in a box." +#: js/blocks/MeterBlocks.js:169 +#: js/blocks/MeterBlocks.js:1056 +#: js/blocks/MeterBlocks.js:1133 +#: js/blocks/MeterBlocks.js:1211 +#.TRANS: sets tempo by defining a beat and beats per minute +msgid "beats per minute" msgstr "" -#: js/BoxesBlocks.js:163 -msgid "add 1 to" +#: js/blocks/MeterBlocks.js:233 +#.TRANS: count of current musical measure in meter +msgid "measure count" msgstr "" -#: js/BoxesBlocks.js:211 -msgid "The Subtract-1-from block subtracts one from the value stored in a box." +#: js/blocks/MeterBlocks.js:241 +msgid "The Measure count block returns the current measure." msgstr "" -#: js/BoxesBlocks.js:222 -msgid "subtract 1 from" +#: js/blocks/MeterBlocks.js:290 +#.TRANS: count of current beat in the meter +msgid "beat count" msgstr "" -#: js/BoxesBlocks.js:270 -#: js/BoxesBlocks.js:387 -msgid "The Box block returns the value stored in a box." +#: js/blocks/MeterBlocks.js:300 +#: js/blocks/MeterBlocks.js:311 +#: js/blocks/MeterBlocks.js:565 +#: js/blocks/MeterBlocks.js:576 +msgid "The Beat count block is the number of the current beat," msgstr "" -#: js/BoxesBlocks.js:500 -#: js/BoxesBlocks.js:576 -msgid "The Store in block will store a value in a box." +#: js/blocks/MeterBlocks.js:313 +#: js/blocks/MeterBlocks.js:578 +msgid "eg 1, 2, 3, or 4." msgstr "" -#: js/BoxesBlocks.js:652 -msgid "The Box2 block returns the value stored in Box2." +#: js/blocks/MeterBlocks.js:368 +#.TRANS: count the number of notes +msgid "sum note values" msgstr "" -#: js/BoxesBlocks.js:703 -msgid "The Store in Box2 block is used to store a value in Box2." +#: js/blocks/MeterBlocks.js:376 +#: js/blocks/MeterBlocks.js:440 +msgid "The Note counter block can be used to count the number of contained notes." msgstr "" -#: js/BoxesBlocks.js:715 -msgid "store in box2" +#: js/blocks/MeterBlocks.js:432 +#.TRANS: count the number of notes +msgid "note counter" msgstr "" -#: js/BoxesBlocks.js:761 -msgid "The Box1 block returns the value stored in Box1." +#: js/blocks/MeterBlocks.js:496 +#.TRANS: number of whole notes that have been played +msgid "whole notes played" msgstr "" -#: js/BoxesBlocks.js:812 -msgid "The Store in Box1 block is used to store a value in Box1." +#: js/blocks/MeterBlocks.js:505 +msgid "The Whole notes played block returns the total number of whole notes played." msgstr "" -#: js/BoxesBlocks.js:826 -msgid "store in box1" +#: js/blocks/MeterBlocks.js:555 +#: js/turtleactions/DictActions.js:83 +#.TRANS: number of notes that have been played +msgid "notes played" msgstr "" -#: js/HeapBlocks.js:49 -msgid "The Heap block returns the heap." +#: js/blocks/MeterBlocks.js:653 +msgid "The No clock block decouples the notes from the master clock." msgstr "" -#: js/HeapBlocks.js:133 -msgid "show heap" -msgstr "показать голову" +#: js/blocks/MeterBlocks.js:661 +#.TRANS: don't lock notes to master clock +msgid "no clock" +msgstr "" -#: js/HeapBlocks.js:181 -msgid "The Heap-length block returns the length of the heap." +#: js/blocks/MeterBlocks.js:700 +msgid "on weak beat do" msgstr "" -#: js/HeapBlocks.js:195 -msgid "heap length" +#: js/blocks/MeterBlocks.js:705 +msgid "The On-weak-beat block lets you specify actions to take on weak (off) beats." msgstr "" -#: js/HeapBlocks.js:254 -msgid "The Heap-empty? block returns true if the heap is empty." +#: js/blocks/MeterBlocks.js:750 +msgid "on strong beat" msgstr "" -#: js/HeapBlocks.js:268 -#.TRANS: Is the heap empty? -msgid "heap empty?" +#: js/blocks/MeterBlocks.js:758 +msgid "The On-strong-beat block lets you specify actions to take on specified beats." msgstr "" -#: js/HeapBlocks.js:317 -msgid "The Empty-heap block empties the heap." +#: js/blocks/MeterBlocks.js:769 +msgid "beat" msgstr "" -#: js/HeapBlocks.js:327 -#: js/HeapBlocks.js:647 -#.TRANS: empty the heap -msgid "empty heap" -msgstr "пустая голова" +#: js/blocks/MeterBlocks.js:813 +msgid "on every beat do" +msgstr "" -#: js/HeapBlocks.js:371 -msgid "The Reverse-heap block reverses the order of the heap." +#: js/blocks/MeterBlocks.js:821 +msgid "The On-every-beat block lets you specify actions to take on every beat." msgstr "" -#: js/HeapBlocks.js:384 -#.TRANS: reverse the order of the heap -msgid "reverse heap" +#: js/blocks/MeterBlocks.js:874 +msgid "on every note do" msgstr "" -#: js/HeapBlocks.js:428 -msgid "The Index-heap block returns a value in the heap at a specified location." +#: js/blocks/MeterBlocks.js:882 +msgid "The On-every-note block lets you specify actions to take on every note." msgstr "" -#: js/HeapBlocks.js:443 -#.TRANS: retrieve a value from the heap at index position in the heap -msgid "index heap" +#: js/blocks/MeterBlocks.js:928 +#: js/blocks/MeterBlocks.js:999 +#.TRANS: sets tempo by defining a beat and beats per minute +msgid "master beats per minute" msgstr "" -#: js/HeapBlocks.js:523 -msgid "The Set-heap entry block sets a value in he heap at the specified location." +#: js/blocks/MeterBlocks.js:952 +#: js/blocks/MeterBlocks.js:1078 +#: js/blocks/MeterBlocks.js:1135 +msgid "bpm" msgstr "" -#: js/HeapBlocks.js:619 -msgid "The Pop block removes the value at the top of the heap." +#: js/blocks/MeterBlocks.js:952 +#: js/blocks/MeterBlocks.js:1078 +#: js/blocks/MeterBlocks.js:1135 +msgid "beat value" msgstr "" -#: js/HeapBlocks.js:633 -#.TRANS: pop a value off the top of the heap -msgid "pop" -msgstr "вытолкнуть" +#: js/blocks/MeterBlocks.js:1024 +#: js/blocks/MeterBlocks.js:1167 +#: js/blocks/MeterBlocks.js:1241 +msgid "Beats per minute must be > 30." +msgstr "" -#: js/HeapBlocks.js:680 -msgid "The Push block adds a value to the top of the heap." +#: js/blocks/MeterBlocks.js:1027 +#: js/blocks/MeterBlocks.js:1170 +#: js/blocks/MeterBlocks.js:1244 +msgid "Maximum beats per minute is 1000." msgstr "" -#: js/HeapBlocks.js:696 -#.TRANS: push a value onto the top of the heap -msgid "push" -msgstr "затолкнуть" +#: js/blocks/MeterBlocks.js:1068 +msgid "The Beats per minute block sets the number of 1/4 notes per minute." +msgstr "" -#: js/FlowBlocks.js:41 -msgid "The Backward block runs code in reverse order (Musical retrograde)." +#: js/blocks/MeterBlocks.js:1279 +#.TRANS: anacrusis +msgid "pickup" msgstr "" -#: js/FlowBlocks.js:48 -msgid "backward" +#: js/blocks/MeterBlocks.js:1367 +msgid "number of beats" msgstr "" -#: js/FlowBlocks.js:124 -msgid "The Duplicate block will run each block multiple times." +#: js/blocks/NumberBlocks.js:28 +msgid "The Int block returns an integer." msgstr "" -#: js/FlowBlocks.js:136 -msgid "duplicate" +#: js/blocks/NumberBlocks.js:34 +msgid "int" msgstr "" -#: js/FlowBlocks.js:334 -msgid "The Default block is used inside of a Switch to define the default action." +#: js/blocks/NumberBlocks.js:73 +msgid "The Mod block returns the remainder from a division." msgstr "" -#: js/FlowBlocks.js:342 -msgid "default" -msgstr "" +#: js/blocks/NumberBlocks.js:79 +msgid "mod" +msgstr "модуль" -#: js/FlowBlocks.js:361 -#: js/FlowBlocks.js:418 -msgid "The Case Block must be used inside of a Switch Block." +#: js/blocks/NumberBlocks.js:141 +msgid "The Power block calculates a power function." msgstr "" -#: js/FlowBlocks.js:389 -msgid "The Case block is used inside of a Switch to define matches." +#: js/blocks/NumberBlocks.js:196 +msgid "The Sqrt block returns the square root." msgstr "" -#: js/FlowBlocks.js:397 -msgid "case" +#: js/blocks/NumberBlocks.js:202 +msgid "sqrt" msgstr "" -#: js/FlowBlocks.js:446 -msgid "The Switch block will run the code in the matching Case." +#: js/blocks/NumberBlocks.js:248 +msgid "The Abs block returns the absolute value." msgstr "" -#: js/FlowBlocks.js:454 -msgid "switch" +#: js/blocks/NumberBlocks.js:254 +msgid "abs" msgstr "" -#: js/FlowBlocks.js:595 -msgid "The Stop block will stop a loop" +#: js/blocks/NumberBlocks.js:295 +msgid "The Distance block returns the distance between two points. For example, between the mouse and the center of the screen." msgstr "" -#: js/FlowBlocks.js:597 -msgid "Forever, Repeat, While, or Until." +#: js/blocks/NumberBlocks.js:301 +#: plugins/rodi.rtp:310 +msgid "distance" msgstr "" -#: js/FlowBlocks.js:604 -#: js/phrasemaker.js:3799 -#: js/musickeyboard.js:629 -#: js/musickeyboard.js:631 -#: js/timbre.js:417 -#: js/timbre.js:419 -#: plugins/rodi.rtp:29 -#: plugins/rodi.rtp:73 -#: plugins/rodi.rtp:413 -msgid "stop" -msgstr "Стоп" +#: js/blocks/NumberBlocks.js:361 +msgid "The Divide block is used to divide." +msgstr "" -#: js/FlowBlocks.js:653 -msgid "The Waitfor block will wait until the condition is true." +#: js/blocks/NumberBlocks.js:441 +msgid "The Multiply block is used to multiply." msgstr "" -#: js/FlowBlocks.js:661 -msgid "wait for" +#: js/blocks/NumberBlocks.js:612 +msgid "The Minus block is used to subtract." msgstr "" -#: js/FlowBlocks.js:732 -msgid "The Until block will repeat until the condition is true." +#: js/blocks/NumberBlocks.js:723 +msgid "The Plus block is used to add." msgstr "" -#: js/FlowBlocks.js:740 -msgid "until" -msgstr "пока" +#: js/blocks/NumberBlocks.js:849 +msgid "The One-of block returns one of two choices." +msgstr "" -#: js/FlowBlocks.js:742 -#: js/FlowBlocks.js:822 -msgid "do2" +#: js/blocks/NumberBlocks.js:856 +#: js/blocks/PitchBlocks.js:616 +msgid "one of" msgstr "" -#: js/FlowBlocks.js:812 -msgid "The While block will repeat while the condition is true." +#: js/blocks/NumberBlocks.js:858 +msgid "this" msgstr "" -#: js/FlowBlocks.js:820 -msgid "while" -msgstr "в то время, как" +#: js/blocks/NumberBlocks.js:858 +msgid "that" +msgstr "" -#: js/FlowBlocks.js:903 -#: js/FlowBlocks.js:968 -#: js/FlowBlocks.js:979 -msgid "In this example if the mouse button is pressed a snare drum will play." +#: js/blocks/NumberBlocks.js:913 +msgid "The Random block returns a random number." msgstr "" -#: js/FlowBlocks.js:925 -#: js/FlowBlocks.js:988 -msgid "if" -msgstr "если" +#: js/blocks/NumberBlocks.js:920 +msgid "random" +msgstr "случайно" -#: js/FlowBlocks.js:927 -#: js/FlowBlocks.js:990 -msgid "then" -msgstr "тогда" +#: js/blocks/NumberBlocks.js:922 +msgid "min" +msgstr "минимум" -#: js/FlowBlocks.js:927 -msgid "else" -msgstr "иначе" +#: js/blocks/NumberBlocks.js:922 +msgid "max" +msgstr "максимум" -#: js/FlowBlocks.js:1025 -msgid "The Forever block will repeat the contained blocks forever." +#: js/blocks/NumberBlocks.js:986 +msgid "The Number block holds a number." msgstr "" -#: js/FlowBlocks.js:1037 -msgid "forever" -msgstr "всегда" - -#: js/FlowBlocks.js:1073 -msgid "The Repeat block will repeat the contained blocks." +#: js/blocks/OrnamentBlocks.js:32 +msgid "staccato factor" msgstr "" -#: js/FlowBlocks.js:1075 -msgid "In this example the note will be played 4 times." +#: js/blocks/OrnamentBlocks.js:108 +msgid "slur factor" msgstr "" -#: js/FlowBlocks.js:1083 -msgid "repeat" -msgstr "повтор" - -#: js/FlowBlocks.js:1123 -msgid "duplicate factor" +#: js/blocks/OrnamentBlocks.js:217 +#: js/blocks/OrnamentBlocks.js:309 +#.TRANS: the neighbor refers to a neighboring note, e.g., D is a neighbor of C +msgid "neighbor" msgstr "" -#: js/PitchBlocks.js:39 -#: js/musicutils.js:722 -#: js/musicutils.js:1117 -#: js/synthutils.js:112 -#.TRANS: square wave -msgid "square" +#: js/blocks/OrnamentBlocks.js:293 +msgid "The Neighbor block rapidly switches between neighboring pitches." msgstr "" -#: js/PitchBlocks.js:62 -#: js/ToneBlocks.js:39 -#: js/musicutils.js:723 -#: js/musicutils.js:1118 -#: js/synthutils.js:116 -#.TRANS: triangle wave -msgid "triangle" +#: js/blocks/OrnamentBlocks.js:364 +msgid "glide" msgstr "" -#: js/PitchBlocks.js:85 -#: js/musicutils.js:721 -#: js/musicutils.js:1116 -#: js/synthutils.js:110 -#.TRANS: sine wave -msgid "sine" +#: js/blocks/OrnamentBlocks.js:479 +#: js/blocks/OrnamentBlocks.js:643 +msgid "slur" msgstr "" -#: js/PitchBlocks.js:108 -#: js/musicutils.js:724 -#: js/musicutils.js:1119 -#: js/synthutils.js:114 -#.TRANS: sawtooth wave -msgid "sawtooth" +#: js/blocks/OrnamentBlocks.js:558 +#: js/blocks/OrnamentBlocks.js:710 +#.TRANS: play each note sharply detached from the others +msgid "staccato" msgstr "" -#: js/PitchBlocks.js:141 -#.TRANS: musical transposition (adjustment of pitch up or down) -msgid "transposition" +#: js/blocks/RhythmBlocks.js:182 +#: js/blocks/RhythmBlocks.js:1086 +#: js/blocks/RhythmBlocks.js:1162 +msgid "Note value must be greater than 0." msgstr "" -#: js/PitchBlocks.js:168 -#.TRANS: step down one note in current musical scale -msgid "scalar step down" +#: js/blocks/RhythmBlocks.js:215 +#: js/blocks/RhythmBlocks.js:278 +#: js/blocks/RhythmBlocks.js:350 +#.TRANS: swing is a rhythmic variation that emphasises the offbeat +msgid "swing" msgstr "" -#: js/PitchBlocks.js:172 -msgid "The Scalar step down block returns the number of semi-tones down to the previous note in the current key and mode." +#: js/blocks/RhythmBlocks.js:355 +#.TRANS: the amount to shift to the offbeat note +msgid "swing value" msgstr "" -#: js/PitchBlocks.js:190 -#.TRANS: step up one note in current musical scale -msgid "scalar step up" +#: js/blocks/RhythmBlocks.js:419 +msgid "The Skip notes block will cause notes to be skipped." msgstr "" -#: js/PitchBlocks.js:194 -msgid "The Scalar step up block returns the number of semi-tones up to the next note in the current key and mode." +#: js/blocks/RhythmBlocks.js:427 +#.TRANS: substitute rests on notes being skipped +msgid "skip notes" msgstr "" -#: js/PitchBlocks.js:212 -#.TRANS: the change measured in half-steps between the current pitch and the previous pitch -msgid "change in pitch" +#: js/blocks/RhythmBlocks.js:489 +#.TRANS: speed up note duration by some factor, e.g. convert 1/4 to 1/8 notes by using a factor of 2 +msgid "multiply note value" msgstr "" -#: js/PitchBlocks.js:216 -msgid "The Change in pitch block is the difference (in half steps) between the current pitch being played and the previous pitch played." +#: js/blocks/RhythmBlocks.js:542 +msgid "The Tie block works on pairs of notes, combining them into one note." msgstr "" -#: js/PitchBlocks.js:243 -#.TRANS: the change measured in scale-steps between the current pitch and the previous pitch -msgid "scalar change in pitch" +#: js/blocks/RhythmBlocks.js:550 +#.TRANS: tie notes together into one longer note +msgid "tie" msgstr "" -#: js/PitchBlocks.js:250 -#: js/PitchBlocks.js:432 -#: js/PitchBlocks.js:1629 -#: js/DictActions.js:89 -#: js/temperament.js:477 -#: js/temperament.js:481 -#: js/temperament.js:714 -#.TRANS: convert current note to piano key (1-88) -#.TRANS: a mapping of pitch to the 88 piano keys -msgid "pitch number" +#: js/blocks/RhythmBlocks.js:591 +#: js/blocks/RhythmBlocks.js:671 +#.TRANS: a dotted note is played for 1.5x its value, e.g., 1/8. --> 3/16 +msgid "dot" msgstr "" -#: js/PitchBlocks.js:256 -msgid "The Pitch number block is the value of the pitch of the note currently being played." +#: js/blocks/RhythmBlocks.js:619 +#: js/turtleactions/RhythmActions.js:221 +msgid "An argument of -1 results in a note value of 0." msgstr "" -#: js/PitchBlocks.js:329 -#: js/PitchBlocks.js:433 -#.TRANS: the current pitch expressed in Hertz -msgid "pitch in hertz" +#: js/blocks/RhythmBlocks.js:661 +msgid "The Dot block extends the duration of a note by 50%." msgstr "" -#: js/PitchBlocks.js:334 -msgid "The Pitch in Hertz block is the value in Hertz of the pitch of the note currently being played." +#: js/blocks/RhythmBlocks.js:663 +msgid "Eg a dotted quarter note will play for 3/8 (1/4 + 1/8) of a beat." msgstr "" -#: js/PitchBlocks.js:367 -#: js/DictActions.js:87 -msgid "current pitch" +#: js/blocks/RhythmBlocks.js:765 +#.TRANS: Japanese only: note value block for drum +msgid "note value drum" msgstr "" -#: js/PitchBlocks.js:373 -msgid "The Current Pitch block is used with the Pitch Converter block. In the example above, current pitch, sol 4, is displayed as 392 hertz." +#: js/blocks/RhythmBlocks.js:829 +msgid "392 hertz" msgstr "" -#: js/PitchBlocks.js:410 -msgid "This block converts the pitch value of the last note played into different formats such as hertz, letter name, pitch number, et al." +#: js/blocks/RhythmBlocks.js:1119 +msgid "The Note block is a container for one or more Pitch blocks." msgstr "" -#: js/PitchBlocks.js:434 -msgid "alphabet" +#: js/blocks/RhythmBlocks.js:1121 +msgid "The Note block specifies the duration (note value) of its contents." msgstr "" -#: js/PitchBlocks.js:436 -#.TRANS: Translate as "alphabet class" -msgid "letter class" +#: js/blocks/RhythmBlocks.js:1128 +#: js/blocks/PitchBlocks.js:974 +#: js/blocks/PitchBlocks.js:1007 +#: js/blocks/ProgramBlocks.js:1186 +#: js/blocks/ProgramBlocks.js:1227 +#: js/widgets/status.js:190 +#: js/widgets/temperament.js:464 +#: js/widgets/temperament.js:486 +#: js/widgets/temperament.js:496 +#: js/widgets/temperament.js:617 +#: plugins/rodi.rtp:192 +#.TRANS: a musical note consisting of pitch and duration +msgid "note" msgstr "" -#: js/PitchBlocks.js:437 -msgid "solfege class" +#: js/blocks/RhythmBlocks.js:1130 +msgid "value2" msgstr "" -#: js/PitchBlocks.js:438 -msgid "staff y" +#: js/blocks/RhythmBlocks.js:1200 +msgid "define frequency" msgstr "" -#: js/PitchBlocks.js:439 -msgid "solfege syllable" +#: js/blocks/RhythmBlocks.js:1218 +#: js/widgets/temperament.js:787 +#: js/widgets/temperament.js:1587 +msgid "octave space" msgstr "" -#: js/PitchBlocks.js:440 -msgid "pitch class" +#: js/blocks/SensorsBlocks.js:36 +msgid "The Input block prompts for keyboard input." msgstr "" -#: js/PitchBlocks.js:441 -msgid "scalar class" +#: js/blocks/SensorsBlocks.js:46 +msgid "input" msgstr "" -#: js/PitchBlocks.js:443 -msgid "nth degree" +#: js/blocks/SensorsBlocks.js:64 +msgid "Input a value" msgstr "" -#: js/PitchBlocks.js:444 -msgid "pitch to shade" +#: js/blocks/SensorsBlocks.js:126 +msgid "input value" msgstr "" -#: js/PitchBlocks.js:445 -msgid "pitch to color" +#: js/blocks/SensorsBlocks.js:131 +msgid "The Input-value block stores the input." msgstr "" -#: js/PitchBlocks.js:629 -#: js/musickeyboard.js:565 -#.TRANS: MIDI is a technical standard for electronic music -msgid "MIDI" +#: js/blocks/SensorsBlocks.js:238 +msgid "loudness" msgstr "" -#: js/PitchBlocks.js:642 -#.TRANS: set an offset associated with the numeric piano keyboard mapping -msgid "set pitch number offset" +#: js/blocks/SensorsBlocks.js:245 +msgid "The Loudness block returns the volume detected by the microphone." msgstr "" -#: js/PitchBlocks.js:645 -msgid "The Set pitch number offset block is used to set the offset for mapping pitch numbers to pitch and octave." +#: js/blocks/SensorsBlocks.js:300 +msgid "click" msgstr "" -#: js/PitchBlocks.js:679 -#.TRANS: convert piano key number (1-88) to pitch -msgid "number to pitch" +#: js/blocks/SensorsBlocks.js:306 +msgid "The Click block triggers an event if a mouse has been clicked." msgstr "" -#: js/PitchBlocks.js:682 -msgid "The Number to pitch block will convert a pitch number to a pich name." +#: js/blocks/SensorsBlocks.js:313 +msgid "The Click block triggers an event if a turtle has been clicked." msgstr "" -#: js/PitchBlocks.js:715 -#.TRANS: convert piano key number (1-88) to octave -msgid "number to octave" +#: js/blocks/SensorsBlocks.js:342 +msgid "cursor over" msgstr "" -#: js/PitchBlocks.js:717 -msgid "The Number to octave block will convert a pitch number to an octave." +#: js/blocks/SensorsBlocks.js:387 +msgid "cursor out" msgstr "" -#: js/PitchBlocks.js:726 -msgid "y to pitch" +#: js/blocks/SensorsBlocks.js:433 +msgid "cursor button down" msgstr "" -#: js/PitchBlocks.js:729 -msgid "Y to pitch block will convert a staff y position to corresponding pitch notation." +#: js/blocks/SensorsBlocks.js:477 +msgid "cursor button up" msgstr "" -#: js/PitchBlocks.js:841 -msgid "accidental selector" +#: js/blocks/SensorsBlocks.js:521 +#: js/blocks/PenBlocks.js:48 +#: plugins/rodi.rtp:219 +msgid "blue" msgstr "" -#: js/PitchBlocks.js:844 -msgid "The Accidental selector block is used to choose between double-sharp, sharp, natural, flat, and double-flat." +#: js/blocks/SensorsBlocks.js:577 +#: js/blocks/PenBlocks.js:64 +#: plugins/rodi.rtp:218 +msgid "green" msgstr "" -#: js/PitchBlocks.js:858 -msgid "Pitch can be specified in terms of ni dha pa ma ga re sa." +#: js/blocks/SensorsBlocks.js:633 +#: js/blocks/PenBlocks.js:112 +#: plugins/rodi.rtp:217 +msgid "red" msgstr "" -#: js/PitchBlocks.js:872 -msgid "Pitch can be specified in terms of C D E F G A B." +#: js/blocks/SensorsBlocks.js:638 +msgid "The Get red block returns the red component of the pixel under the mouse." msgstr "" -#: js/PitchBlocks.js:883 -msgid "solfege" +#: js/blocks/SensorsBlocks.js:644 +msgid "The Get red block returns the red component of the pixel under the turtle." msgstr "" -#: js/PitchBlocks.js:886 -msgid "Pitch can be specified in terms of do re mi fa sol la ti." +#: js/blocks/SensorsBlocks.js:685 +#: plugins/rodi.rtp:216 +msgid "pixel color" msgstr "" -#: js/PitchBlocks.js:920 -msgid "The Invert block rotates any contained notes around a target note." +#: js/blocks/SensorsBlocks.js:690 +msgid "The Get pixel block returns the color of the pixel under the mouse." msgstr "" -#: js/PitchBlocks.js:927 -#.TRANS: pitch inversion rotates a pitch around another pitch -msgid "invert" +#: js/blocks/SensorsBlocks.js:696 +msgid "The Get pixel block returns the color of the pixel under the turtle." msgstr "" -#: js/PitchBlocks.js:929 -#: js/PitchBlocks.js:935 -#: js/PitchActions.js:727 -#: js/musicutils.js:726 -#: js/musicutils.js:902 -#.TRANS: invert based on even or odd number or musical scale -#.TRANS: even numbers -msgid "even" +#: js/blocks/SensorsBlocks.js:758 +msgid "time" msgstr "" -#: js/PitchBlocks.js:935 -#: js/PitchActions.js:729 -#: js/musicutils.js:728 -#: js/musicutils.js:903 -#.TRANS: odd numbers -msgid "odd" +#: js/blocks/SensorsBlocks.js:804 +msgid "cursor y" msgstr "" -#: js/PitchBlocks.js:935 -#: js/PitchActions.js:731 -#: js/musicutils.js:729 -#: js/musicutils.js:904 -msgid "scalar" +#: js/blocks/SensorsBlocks.js:809 +msgid "The Cursor Y block returns the vertical position of the mouse." msgstr "" -#: js/PitchBlocks.js:966 -#.TRANS: pitch inversion rotates a pitch around another pitch (odd number) -msgid "invert (odd)" +#: js/blocks/SensorsBlocks.js:845 +msgid "cursor x" msgstr "" -#: js/PitchBlocks.js:999 -#.TRANS: pitch inversion rotates a pitch around another pitch (even number) -msgid "invert (even)" +#: js/blocks/SensorsBlocks.js:850 +msgid "The Cursor X block returns the horizontal position of the mouse." msgstr "" -#: js/PitchBlocks.js:1020 -#.TRANS: register is the octave of the current pitch -msgid "register" +#: js/blocks/SensorsBlocks.js:886 +msgid "mouse button" msgstr "" -#: js/PitchBlocks.js:1024 -msgid "The Register block provides an easy way to modify the register (octave) of the notes that follow it." +#: js/blocks/SensorsBlocks.js:888 +msgid "The Mouse-button block returns True if the mouse button is pressed." msgstr "" -#: js/PitchBlocks.js:1074 -msgid "The Semi-tone transposition block will shift the pitches contained inside Note blocks up (or down) by half steps." +#: js/blocks/SensorsBlocks.js:934 +msgid "to ASCII" msgstr "" -#: js/PitchBlocks.js:1076 -msgid "In the example shown above, sol is shifted up to sol#." +#: js/blocks/SensorsBlocks.js:938 +msgid "The To ASCII block converts numbers to letters." msgstr "" -#: js/PitchBlocks.js:1082 -#.TRANS: adjust the amount of shift (up or down) of a pitch -msgid "semi-tone transpose" +#: js/blocks/SensorsBlocks.js:1005 +msgid "The Keyboard block returns computer keyboard input." msgstr "" -#: js/PitchBlocks.js:1115 -msgid "The Transpose by Ratio block will shift the pitches contained inside Note blocks up (or down) by a ratio" +#: js/blocks/RhythmBlockPaletteBlocks.js:50 +#: js/blocks/RhythmBlockPaletteBlocks.js:233 +#.TRANS: rhythm block +#.TRANS: translate "rhythm1" as rhythm +msgid "rhythm1" msgstr "" -#: js/PitchBlocks.js:1121 -#.TRANS: adjust the amount of shift (up or down) of a pitch -msgid "transpose by ratio" +#: js/blocks/RhythmBlockPaletteBlocks.js:70 +#: js/blocks/RhythmBlockPaletteBlocks.js:252 +#: js/blocks/RhythmBlockPaletteBlocks.js:485 +#: js/blocks/RhythmBlockPaletteBlocks.js:554 +#: js/blocks/RhythmBlockPaletteBlocks.js:875 +msgid "number of notes" msgstr "" -#: js/PitchBlocks.js:1204 -#.TRANS: down sixth means the note is five scale degrees below current note -msgid "down sixth" +#: js/blocks/RhythmBlockPaletteBlocks.js:126 +msgid "polyphonic rhythm" msgstr "" -#: js/PitchBlocks.js:1223 -#.TRANS: down third means the note is two scale degrees below current note -msgid "down third" +#: js/blocks/RhythmBlockPaletteBlocks.js:219 +msgid "The Rhythm block is used to generate rhythm patterns." msgstr "" -#: js/PitchBlocks.js:1242 -#.TRANS: seventh means the note is the six scale degrees above current note -msgid "seventh" +#: js/blocks/RhythmBlockPaletteBlocks.js:280 +msgid "1/64 note" msgstr "" -#: js/PitchBlocks.js:1261 -#.TRANS: sixth means the note is the five scale degrees above current note -msgid "sixth" +#: js/blocks/RhythmBlockPaletteBlocks.js:304 +msgid "1/32 note" msgstr "" -#: js/PitchBlocks.js:1280 -#.TRANS: fifth means the note is the four scale degrees above current note -msgid "fifth" +#: js/blocks/RhythmBlockPaletteBlocks.js:332 +msgid "1/16 note" msgstr "" -#: js/PitchBlocks.js:1300 -#.TRANS: fourth means the note is three scale degrees above current note -msgid "fourth" +#: js/blocks/RhythmBlockPaletteBlocks.js:360 +msgid "eighth note" msgstr "" - -#: js/PitchBlocks.js:1319 -#.TRANS: third means the note is two scale degrees above current note -msgid "third" + +#: js/blocks/RhythmBlockPaletteBlocks.js:388 +msgid "quarter note" msgstr "" -#: js/PitchBlocks.js:1338 -#.TRANS: second means the note is one scale degree above current note -msgid "second" +#: js/blocks/RhythmBlockPaletteBlocks.js:416 +msgid "half note" msgstr "" -#: js/PitchBlocks.js:1379 -msgid "The Scalar transposition block will shift the pitches contained inside Note blocks up (or down) the scale." +#: js/blocks/RhythmBlockPaletteBlocks.js:444 +msgid "whole note" msgstr "" -#: js/PitchBlocks.js:1381 -msgid "In the example shown above, sol is shifted up to la." +#: js/blocks/RhythmBlockPaletteBlocks.js:482 +#: js/blocks/RhythmBlockPaletteBlocks.js:551 +#: js/blocks/RhythmBlockPaletteBlocks.js:602 +#.TRANS: A tuplet is a note value divided into irregular time values. +msgid "tuplet" msgstr "" -#: js/PitchBlocks.js:1388 -#.TRANS: adjust the amount of shift (up or down) of a pitch by musical scale (scalar) steps -msgid "scalar transpose" +#: js/blocks/RhythmBlockPaletteBlocks.js:768 +msgid "septuplet" msgstr "" -#: js/PitchBlocks.js:1423 -msgid "The Accidental block is used to create sharps and flats" +#: js/blocks/RhythmBlockPaletteBlocks.js:796 +msgid "quintuplet" msgstr "" -#: js/PitchBlocks.js:1430 -#.TRANS: An accidental is a modification to a pitch, e.g., sharp or flat. -msgid "accidental override" +#: js/blocks/RhythmBlockPaletteBlocks.js:824 +msgid "triplet" msgstr "" -#: js/PitchBlocks.js:1543 -msgid "The Hertz block (in combination with a Number block) will play a sound at the specified frequency." +#: js/blocks/RhythmBlockPaletteBlocks.js:851 +msgid "simple tuplet" msgstr "" -#: js/PitchBlocks.js:1633 -msgid "The Pitch Number block will play a pitch associated by its number, e.g. 0 for C and 7 for G." +#: js/blocks/RhythmBlockPaletteBlocks.js:861 +msgid "Tuplets are a collection of notes that get scaled to a specific duration." msgstr "" -#: js/PitchBlocks.js:1665 -#: js/PitchBlocks.js:1707 -#.TRANS: a numeric mapping of the notes in an octave based on the musical mode -#.TRANS: a numeric mapping of the notes in an octave based on the musical mode -msgid "nth modal pitch" +#: js/blocks/DrumBlocks.js:59 +msgid "The Noise name block is used to select a noise synthesizer." msgstr "" -#: js/PitchBlocks.js:1668 -msgid "n^th Modal Pitch takes the pattern of pitches in semitones for a mode and makes each point a degree of the mode," +#: js/blocks/DrumBlocks.js:102 +msgid "The Drum name block is used to select a drum." msgstr "" -#: js/PitchBlocks.js:1670 -msgid "starting from 1 and regardless of tonal framework (i.e. not always 8 notes in the octave)" +#: js/blocks/DrumBlocks.js:146 +msgid "The Effects name block is used to select a sound effect." msgstr "" -#: js/PitchBlocks.js:1711 -msgid "N^th Modal Pitch takes a number as an input as the n^th degree for the given mode. 0 is the first position, 1 is the second, -1 is the note before the first etc." +#: js/blocks/DrumBlocks.js:163 +msgid "noise" msgstr "" -#: js/PitchBlocks.js:1713 -msgid "The pitches change according to the mode specified without any need for respellings." +#: js/blocks/DrumBlocks.js:177 +msgid "The Play noise block will generate white, pink, or brown noise." msgstr "" -#: js/PitchBlocks.js:1752 -msgid "Scale Degree is a common convention in music. Scale Degree offers seven possible positions in the scale (1-7) and can be modified via accidentals." +#: js/blocks/DrumBlocks.js:317 +msgid "Replace every instance of a pitch with a drum sound." msgstr "" -#: js/PitchBlocks.js:1754 -msgid "Scale Degree 1 is always the first pitch in a given scale, regardless of octave." +#: js/blocks/DrumBlocks.js:328 +#.TRANS: map a pitch to a drum sound +msgid "map pitch to drum" msgstr "" -#: js/PitchBlocks.js:1776 -#.TRANS: step some number of notes in current musical scale -msgid "scalar step" +#: js/blocks/DrumBlocks.js:395 +msgid "In the example above, a kick drum sound will be played instead of sol." msgstr "" -#: js/PitchBlocks.js:1781 -msgid "The Scalar Step block (in combination with a Number block) will play the next pitch in a scale," +#: js/blocks/DrumBlocks.js:407 +#.TRANS: set the current drum sound for playback +msgid "set drum" msgstr "" -#: js/PitchBlocks.js:1783 -msgid "eg if the last note played was sol, Scalar Step 1 will play la." +#: js/blocks/DrumBlocks.js:451 +msgid "sound effect" msgstr "" -#: js/PitchBlocks.js:1818 -msgid "The Pitch block specifies the pitch name and octave of a note that together determine the frequency of the note." +#: js/blocks/DrumBlocks.js:489 +msgid "You can use multiple Drum blocks within a Note block." msgstr "" -#: js/GraphicsBlocks.js:46 -#: js/DictActions.js:77 -#: js/DictActions.js:155 -#: js/DictActions.js:189 +#: js/blocks/GraphicsBlocks.js:46 +#: js/turtleactions/DictActions.js:77 +#: js/turtleactions/DictActions.js:144 +#: js/turtleactions/DictActions.js:173 msgid "heading" msgstr "направление" -#: js/GraphicsBlocks.js:56 +#: js/blocks/GraphicsBlocks.js:56 msgid "The Heading block returns the orientation of the mouse." msgstr "" -#: js/GraphicsBlocks.js:62 +#: js/blocks/GraphicsBlocks.js:62 msgid "The Heading block returns the orientation of the turtle." msgstr "" -#: js/GraphicsBlocks.js:133 +#: js/blocks/GraphicsBlocks.js:133 msgid "The Y block returns the vertical position of the mouse." msgstr "" -#: js/GraphicsBlocks.js:140 +#: js/blocks/GraphicsBlocks.js:140 msgid "The Y block returns the vertical position of the turtle." msgstr "" -#: js/GraphicsBlocks.js:149 +#: js/blocks/GraphicsBlocks.js:149 msgid "y3" msgstr "" -#: js/GraphicsBlocks.js:219 +#: js/blocks/GraphicsBlocks.js:219 msgid "The X block returns the horizontal position of the mouse." msgstr "" -#: js/GraphicsBlocks.js:226 +#: js/blocks/GraphicsBlocks.js:226 msgid "The X block returns the horizontal position of the turtle." msgstr "" -#: js/GraphicsBlocks.js:235 +#: js/blocks/GraphicsBlocks.js:235 msgid "x3" msgstr "" -#: js/GraphicsBlocks.js:295 +#: js/blocks/GraphicsBlocks.js:295 msgid "scroll xy" msgstr "" -#: js/GraphicsBlocks.js:303 +#: js/blocks/GraphicsBlocks.js:303 msgid "The Scroll XY block moves the canvas." msgstr "" -#: js/GraphicsBlocks.js:313 +#: js/blocks/GraphicsBlocks.js:313 msgid "x2" msgstr "" -#: js/GraphicsBlocks.js:313 +#: js/blocks/GraphicsBlocks.js:313 msgid "y2" msgstr "" -#: js/GraphicsBlocks.js:373 -#: js/temperament.js:213 -#: js/temperament.js:241 +#: js/blocks/GraphicsBlocks.js:373 +#: js/widgets/temperament.js:319 +#: js/widgets/temperament.js:347 msgid "clear" msgstr "" -#: js/GraphicsBlocks.js:426 +#: js/blocks/GraphicsBlocks.js:426 msgid "The Control-point 2 block sets the second control point for the Bezier curve." msgstr "" -#: js/GraphicsBlocks.js:433 +#: js/blocks/GraphicsBlocks.js:433 msgid "control point 2" msgstr "" -#: js/GraphicsBlocks.js:436 -#: js/GraphicsBlocks.js:487 -#: js/GraphicsBlocks.js:534 -#: js/GraphicsBlocks.js:750 +#: js/blocks/GraphicsBlocks.js:436 +#: js/blocks/GraphicsBlocks.js:487 +#: js/blocks/GraphicsBlocks.js:534 +#: js/blocks/GraphicsBlocks.js:750 msgid "x1" msgstr "" -#: js/GraphicsBlocks.js:436 -#: js/GraphicsBlocks.js:487 -#: js/GraphicsBlocks.js:534 -#: js/GraphicsBlocks.js:750 +#: js/blocks/GraphicsBlocks.js:436 +#: js/blocks/GraphicsBlocks.js:487 +#: js/blocks/GraphicsBlocks.js:534 +#: js/blocks/GraphicsBlocks.js:750 msgid "y1" msgstr "" -#: js/GraphicsBlocks.js:477 +#: js/blocks/GraphicsBlocks.js:477 msgid "The Control-point 1 block sets the first control point for the Bezier curve." msgstr "" -#: js/GraphicsBlocks.js:484 +#: js/blocks/GraphicsBlocks.js:484 msgid "control point 1" msgstr "" -#: js/GraphicsBlocks.js:527 +#: js/blocks/GraphicsBlocks.js:527 msgid "The Bezier block draws a Bezier curve." msgstr "" -#: js/GraphicsBlocks.js:531 +#: js/blocks/GraphicsBlocks.js:531 msgid "bezier" msgstr "" -#: js/GraphicsBlocks.js:592 +#: js/blocks/GraphicsBlocks.js:592 msgid "The Arc block moves the turtle in an arc." msgstr "" -#: js/GraphicsBlocks.js:600 +#: js/blocks/GraphicsBlocks.js:600 msgid "arc" msgstr "круг" -#: js/GraphicsBlocks.js:603 +#: js/blocks/GraphicsBlocks.js:603 msgid "angle" msgstr "угол" -#: js/GraphicsBlocks.js:603 +#: js/blocks/GraphicsBlocks.js:603 msgid "radius" msgstr "радиус" -#: js/GraphicsBlocks.js:620 -#: js/GraphicsBlocks.js:767 -#: js/GraphicsBlocks.js:1010 -#: js/GraphicsBlocks.js:1093 +#: js/blocks/GraphicsBlocks.js:620 +#: js/blocks/GraphicsBlocks.js:767 +#: js/blocks/GraphicsBlocks.js:1010 +#: js/blocks/GraphicsBlocks.js:1093 msgid "Value must be within -5000 to 5000 when Wrap Mode is off." msgstr "" -#: js/GraphicsBlocks.js:622 -#: js/GraphicsBlocks.js:769 -#: js/GraphicsBlocks.js:1012 -#: js/GraphicsBlocks.js:1095 +#: js/blocks/GraphicsBlocks.js:622 +#: js/blocks/GraphicsBlocks.js:769 +#: js/blocks/GraphicsBlocks.js:1012 +#: js/blocks/GraphicsBlocks.js:1095 msgid "Value must be within -20000 to 20000 when Wrap Mode is on." msgstr "" -#: js/GraphicsBlocks.js:660 +#: js/blocks/GraphicsBlocks.js:660 msgid "set heading" msgstr "направление" -#: js/GraphicsBlocks.js:673 +#: js/blocks/GraphicsBlocks.js:673 msgid "The Set heading block sets the heading of the turtle." msgstr "" -#: js/GraphicsBlocks.js:733 +#: js/blocks/GraphicsBlocks.js:733 msgid "The Set XY block moves the mouse to a specific position on the screen." msgstr "" -#: js/GraphicsBlocks.js:739 +#: js/blocks/GraphicsBlocks.js:739 msgid "The Set XY block moves the turtle to a specific position on the screen." msgstr "" -#: js/GraphicsBlocks.js:747 +#: js/blocks/GraphicsBlocks.js:747 msgid "set xy" msgstr "координаты" -#: js/GraphicsBlocks.js:819 +#: js/blocks/GraphicsBlocks.js:819 msgid "The Right block turns the mouse to the right." msgstr "" -#: js/GraphicsBlocks.js:826 +#: js/blocks/GraphicsBlocks.js:826 msgid "The Right block turns the turtle to the right." msgstr "" -#: js/GraphicsBlocks.js:835 +#: js/blocks/GraphicsBlocks.js:835 msgid "right1" msgstr "" -#: js/GraphicsBlocks.js:835 +#: js/blocks/GraphicsBlocks.js:835 #: plugins/rodi.rtp:77 #: plugins/rodi.rtp:340 #: plugins/rodi.rtp:375 msgid "right" msgstr "вправо" -#: js/GraphicsBlocks.js:899 +#: js/blocks/GraphicsBlocks.js:899 msgid "The Left block turns the mouse to the left." msgstr "" -#: js/GraphicsBlocks.js:906 +#: js/blocks/GraphicsBlocks.js:906 msgid "The Left block turns the turtle to the left." msgstr "" -#: js/GraphicsBlocks.js:915 +#: js/blocks/GraphicsBlocks.js:915 msgid "left1" msgstr "" -#: js/GraphicsBlocks.js:915 +#: js/blocks/GraphicsBlocks.js:915 #: plugins/rodi.rtp:79 #: plugins/rodi.rtp:339 #: plugins/rodi.rtp:362 msgid "left" msgstr "влево" -#: js/GraphicsBlocks.js:967 -#: js/temperament.js:734 -#: js/temperament.js:933 +#: js/blocks/GraphicsBlocks.js:967 +#: js/widgets/temperament.js:875 +#: js/widgets/temperament.js:1078 #: plugins/rodi.rtp:69 #: plugins/rodi.rtp:387 msgid "back" msgstr "назад" -#: js/GraphicsBlocks.js:976 +#: js/blocks/GraphicsBlocks.js:976 msgid "The Back block moves the mouse backward." msgstr "" -#: js/GraphicsBlocks.js:983 +#: js/blocks/GraphicsBlocks.js:983 msgid "The Back block moves the turtle backward." msgstr "" -#: js/GraphicsBlocks.js:1050 +#: js/blocks/GraphicsBlocks.js:1050 #: plugins/rodi.rtp:71 #: plugins/rodi.rtp:400 msgid "forward" msgstr "вперёд" -#: js/GraphicsBlocks.js:1059 +#: js/blocks/GraphicsBlocks.js:1059 msgid "The Forward block moves the mouse forward." msgstr "" -#: js/GraphicsBlocks.js:1066 +#: js/blocks/GraphicsBlocks.js:1066 msgid "The Forward block moves the turtle forward." msgstr "" -#: js/GraphicsBlocks.js:1154 -#: js/GraphicsBlocks.js:1172 +#: js/blocks/GraphicsBlocks.js:1154 +#: js/blocks/GraphicsBlocks.js:1172 msgid "wrap" msgstr "" -#: js/OrnamentBlocks.js:32 -msgid "staccato factor" -msgstr "" - -#: js/OrnamentBlocks.js:108 -msgid "slur factor" -msgstr "" - -#: js/OrnamentBlocks.js:217 -#: js/OrnamentBlocks.js:309 -#.TRANS: the neighbor refers to a neighboring note, e.g., D is a neighbor of C -msgid "neighbor" -msgstr "" - -#: js/OrnamentBlocks.js:293 -msgid "The Neighbor block rapidly switches between neighboring pitches." -msgstr "" - -#: js/OrnamentBlocks.js:364 -msgid "glide" -msgstr "" - -#: js/OrnamentBlocks.js:479 -#: js/OrnamentBlocks.js:643 -msgid "slur" -msgstr "" - -#: js/OrnamentBlocks.js:558 -#: js/OrnamentBlocks.js:710 -#.TRANS: play each note sharply detached from the others -msgid "staccato" -msgstr "" - -#: js/PenBlocks.js:24 +#: js/blocks/PenBlocks.js:30 msgid "purple" msgstr "" -#: js/PenBlocks.js:37 -#: js/SensorsBlocks.js:521 -#: plugins/rodi.rtp:219 -msgid "blue" -msgstr "" - -#: js/PenBlocks.js:50 -#: js/SensorsBlocks.js:577 -#: plugins/rodi.rtp:218 -msgid "green" -msgstr "" - -#: js/PenBlocks.js:63 +#: js/blocks/PenBlocks.js:80 msgid "yellow" msgstr "" -#: js/PenBlocks.js:76 +#: js/blocks/PenBlocks.js:96 #: plugins/nutrition.rtp:164 msgid "orange" msgstr "оранжевый" -#: js/PenBlocks.js:89 -#: js/SensorsBlocks.js:633 -#: plugins/rodi.rtp:217 -msgid "red" -msgstr "" - -#: js/PenBlocks.js:102 +#: js/blocks/PenBlocks.js:128 msgid "white" msgstr "" -#: js/PenBlocks.js:115 +#: js/blocks/PenBlocks.js:144 msgid "black" msgstr "" -#: js/PenBlocks.js:128 +#: js/blocks/PenBlocks.js:163 msgid "begin fill" msgstr "" -#: js/PenBlocks.js:143 +#: js/blocks/PenBlocks.js:190 msgid "end fill" msgstr "" -#: js/PenBlocks.js:159 -#: js/PenBlocks.js:386 +#: js/blocks/PenBlocks.js:212 +#: js/blocks/PenBlocks.js:560 #.TRANS: set the background color msgid "background" msgstr "" -#: js/PenBlocks.js:206 -#: js/DictActions.js:71 -#: js/DictActions.js:149 -#: js/DictActions.js:186 +#: js/blocks/PenBlocks.js:274 +#: js/turtleactions/DictActions.js:71 +#: js/turtleactions/DictActions.js:138 +#: js/turtleactions/DictActions.js:170 msgid "grey" msgstr "" -#: js/PenBlocks.js:210 +#: js/blocks/PenBlocks.js:282 msgid "The Grey block returns the current pen grey value." msgstr "" -#: js/PenBlocks.js:243 -#: js/DictActions.js:69 -#: js/DictActions.js:147 -#: js/DictActions.js:185 +#: js/blocks/PenBlocks.js:340 +#: js/turtleactions/DictActions.js:69 +#: js/turtleactions/DictActions.js:136 +#: js/turtleactions/DictActions.js:169 msgid "shade" msgstr "затенение" -#: js/PenBlocks.js:247 +#: js/blocks/PenBlocks.js:347 msgid "The Shade block returns the current pen shade value." msgstr "" -#: js/PenBlocks.js:280 -#: js/DictActions.js:67 -#: js/DictActions.js:145 -#: js/DictActions.js:184 +#: js/blocks/PenBlocks.js:405 +#: js/turtleactions/DictActions.js:67 +#: js/turtleactions/DictActions.js:134 +#: js/turtleactions/DictActions.js:168 msgid "color" msgstr "цвет" -#: js/PenBlocks.js:285 +#: js/blocks/PenBlocks.js:415 msgid "The Color block returns the current pen color." msgstr "" -#: js/PenBlocks.js:318 -#: js/DictActions.js:73 -#: js/DictActions.js:151 -#: js/DictActions.js:187 +#: js/blocks/PenBlocks.js:470 +#: js/turtleactions/DictActions.js:73 +#: js/turtleactions/DictActions.js:140 +#: js/turtleactions/DictActions.js:171 msgid "pen size" msgstr "размер пера" -#: js/PenBlocks.js:322 +#: js/blocks/PenBlocks.js:474 msgid "The Pen size block returns the current pen size value." msgstr "" -#: js/PenBlocks.js:355 +#: js/blocks/PenBlocks.js:513 msgid "set font" msgstr "" -#: js/PenBlocks.js:358 +#: js/blocks/PenBlocks.js:518 msgid "The Set font block sets the font used by the Show block." msgstr "" -#: js/PenBlocks.js:391 +#: js/blocks/PenBlocks.js:567 msgid "The Background block sets the window background color." msgstr "" -#: js/PenBlocks.js:408 +#: js/blocks/PenBlocks.js:598 msgid "The Hollow line block creates a line with a hollow center." msgstr "" -#: js/PenBlocks.js:415 +#: js/blocks/PenBlocks.js:606 #.TRANS: draw a line logo has a hollow space down its center msgid "hollow line" msgstr "" -#: js/PenBlocks.js:462 +#: js/blocks/PenBlocks.js:675 msgid "The Fill block fills in a shape with a color." msgstr "" -#: js/PenBlocks.js:470 +#: js/blocks/PenBlocks.js:684 #.TRANS: fill in as a solid color msgid "fill" msgstr "" -#: js/PenBlocks.js:527 +#: js/blocks/PenBlocks.js:761 #.TRANS: raise up the pen so logo it does not draw when it is moved msgid "pen up" msgstr "поднять перо" -#: js/PenBlocks.js:532 +#: js/blocks/PenBlocks.js:768 msgid "The Pen-up block raises the pen so that it does not draw." msgstr "" -#: js/PenBlocks.js:552 +#: js/blocks/PenBlocks.js:802 #.TRANS: put down the pen so logo it draws when it is moved msgid "pen down" msgstr "опустить перо" -#: js/PenBlocks.js:557 +#: js/blocks/PenBlocks.js:810 msgid "The Pen-down block lowers the pen so that it draws." msgstr "" -#: js/PenBlocks.js:577 +#: js/blocks/PenBlocks.js:844 #.TRANS: set the width of the line drawn by the pen msgid "set pen size" msgstr "размер пера" -#: js/PenBlocks.js:583 +#: js/blocks/PenBlocks.js:854 msgid "The Set-pen-size block changes the size of the pen." msgstr "" -#: js/PenBlocks.js:623 +#: js/blocks/PenBlocks.js:913 #.TRANS: set degree of translucence of the pen color msgid "set translucency" msgstr "" -#: js/PenBlocks.js:627 +#: js/blocks/PenBlocks.js:921 msgid "The Set translucency block changes the opacity of the pen." msgstr "" -#: js/PenBlocks.js:668 +#: js/blocks/PenBlocks.js:981 msgid "set hue" msgstr "" -#: js/PenBlocks.js:672 +#: js/blocks/PenBlocks.js:989 msgid "The Set hue block changes the color of the pen." msgstr "" -#: js/PenBlocks.js:711 +#: js/blocks/PenBlocks.js:1047 msgid "set shade" msgstr "затенение" -#: js/PenBlocks.js:717 +#: js/blocks/PenBlocks.js:1057 msgid "The Set-shade block changes the pen color from dark to light." msgstr "" -#: js/PenBlocks.js:757 +#: js/blocks/PenBlocks.js:1111 #.TRANS: set the level of vividness of the pen color msgid "set grey" msgstr "" -#: js/PenBlocks.js:761 +#: js/blocks/PenBlocks.js:1119 msgid "The Set grey block changes the vividness of the pen color." msgstr "" -#: js/PenBlocks.js:800 +#: js/blocks/PenBlocks.js:1172 msgid "set color" msgstr "цвет" -#: js/PenBlocks.js:806 +#: js/blocks/PenBlocks.js:1182 msgid "The Set-color block changes the pen color." msgstr "" -#: js/VolumeBlocks.js:35 -msgid "synth volume" -msgstr "" - -#: js/VolumeBlocks.js:39 -msgid "The Synth volume block returns the current volume of the current synthesizer." -msgstr "" - -#: js/VolumeBlocks.js:47 -#: js/musicutils.js:730 -#: js/synthutils.js:56 -#.TRANS: musical instrument -msgid "piano" -msgstr "" - -#: js/VolumeBlocks.js:105 -msgid "master volume" -msgstr "" - -#: js/VolumeBlocks.js:109 -msgid "The Master volume block returns the master volume." -msgstr "" - -#: js/VolumeBlocks.js:355 -#: js/VolumeBlocks.js:524 -msgid "set synth volume" -msgstr "" - -#: js/VolumeBlocks.js:362 -#: js/VolumeBlocks.js:545 -msgid "synth" -msgstr "" - -#: js/VolumeBlocks.js:403 -#: js/VolumeBlocks.js:577 -#: js/VolumeBlocks.js:740 -#: js/VolumeActions.js:173 -msgid "Setting volume to 0." -msgstr "" - -#: js/VolumeBlocks.js:440 -msgid "Synth not found" -msgstr "" - -#: js/VolumeBlocks.js:494 -msgid "set drum volume" -msgstr "" - -#: js/VolumeBlocks.js:530 -msgid "The Set synth volume block will change the volume of a particular synth," -msgstr "" - -#: js/VolumeBlocks.js:532 -msgid "eg guitar violin snare drum etc." -msgstr "" - -#: js/VolumeBlocks.js:534 -msgid "The default volume is 50." -msgstr "" - -#: js/VolumeBlocks.js:536 -msgid "The range is 0 for silence to 100 for full volume." -msgstr "" - -#: js/VolumeBlocks.js:597 -msgid "set panning" -msgstr "" - -#: js/VolumeBlocks.js:603 -msgid "The Set Panning block sets the panning for all synthesizers." -msgstr "" - -#: js/VolumeBlocks.js:625 -msgid "Warning: Sound is coming out from only the left or right side." -msgstr "" - -#: js/VolumeBlocks.js:647 -#: js/VolumeBlocks.js:695 -msgid "set master volume" -msgstr "" - -#: js/VolumeBlocks.js:653 -msgid "The Set master volume block sets the volume for all synthesizers." -msgstr "" - -#: js/VolumeBlocks.js:784 -msgid "The Set relative volume block changes the volume of the contained notes." -msgstr "" - -#: js/VolumeBlocks.js:791 -msgid "set relative volume" -msgstr "" - -#: js/VolumeBlocks.js:857 -msgid "decrescendo" -msgstr "" - -#: js/VolumeBlocks.js:921 -msgid "crescendo" -msgstr "" - -#: js/ToneBlocks.js:34 -msgid "oscillator" -msgstr "" - -#: js/ToneBlocks.js:44 -#: js/timbre.js:1562 -#.TRANS: Partials refers to the number of sine waves combined into the sound. -msgid "partials" -msgstr "" - -#: js/ToneBlocks.js:76 -msgid "You are adding multiple oscillator blocks." -msgstr "" - -#: js/ToneBlocks.js:144 -#: js/timbre.js:1225 -#.TRANS: a duo synthesizer combines a synth with a sequencer -msgid "duo synth" -msgstr "" - -#: js/ToneBlocks.js:149 -msgid "The Duo synth block is a duo-frequency modulator used to define a timbre." -msgstr "" - -#: js/ToneBlocks.js:157 -#: js/timbre.js:1476 -msgid "vibrato rate" -msgstr "" - -#: js/ToneBlocks.js:157 -msgid "vibrato intensity" -msgstr "" - -#: js/ToneBlocks.js:185 -#: js/timbre.js:1221 -#.TRANS: AM (amplitude modulation) synthesizer -msgid "AM synth" -msgstr "" - -#: js/ToneBlocks.js:189 -msgid "The AM synth block is an amplitude modulator used to define a timbre." -msgstr "" - -#: js/ToneBlocks.js:224 -#: js/timbre.js:1223 -#.TRANS: FM (frequency modulation) synthesizer -msgid "FM synth" -msgstr "" - -#: js/ToneBlocks.js:228 -msgid "The FM synth block is a frequency modulator used to define a timbre." +#: js/blocks/PitchBlocks.js:141 +#.TRANS: musical transposition (adjustment of pitch up or down) +msgid "transposition" msgstr "" -#: js/ToneBlocks.js:262 -msgid "partial" +#: js/blocks/PitchBlocks.js:168 +#.TRANS: step down one note in current musical scale +msgid "scalar step down" msgstr "" -#: js/ToneBlocks.js:265 -msgid "The Partial block is used to specify a weight for a specific partial harmonic." +#: js/blocks/PitchBlocks.js:172 +msgid "The Scalar step down block returns the number of semi-tones down to the previous note in the current key and mode." msgstr "" -#: js/ToneBlocks.js:284 -#.TRANS: partials are weighted components in a harmonic series -msgid "Partial weight must be between 0 and 1." +#: js/blocks/PitchBlocks.js:190 +#.TRANS: step up one note in current musical scale +msgid "scalar step up" msgstr "" -#: js/ToneBlocks.js:297 -#.TRANS: partials are weighted components in a harmonic series -msgid "Partial block should be used inside of a Weighted-partials block." +#: js/blocks/PitchBlocks.js:194 +msgid "The Scalar step up block returns the number of semi-tones up to the next note in the current key and mode." msgstr "" -#: js/ToneBlocks.js:325 -#.TRANS: partials are weighted components in a harmonic series -msgid "weighted partials" +#: js/blocks/PitchBlocks.js:212 +#.TRANS: the change measured in half-steps between the current pitch and the previous pitch +msgid "change in pitch" msgstr "" -#: js/ToneBlocks.js:383 -msgid "The Harmonic block will add harmonics to the contained notes." +#: js/blocks/PitchBlocks.js:216 +msgid "The Change in pitch block is the difference (in half steps) between the current pitch being played and the previous pitch played." msgstr "" -#: js/ToneBlocks.js:390 -#.TRANS: A harmonic is an overtone. -msgid "harmonic" +#: js/blocks/PitchBlocks.js:243 +#.TRANS: the change measured in scale-steps between the current pitch and the previous pitch +msgid "scalar change in pitch" msgstr "" -#: js/ToneBlocks.js:431 -msgid "The Distortion block adds distortion to the pitch." +#: js/blocks/PitchBlocks.js:250 +#: js/blocks/PitchBlocks.js:432 +#: js/blocks/PitchBlocks.js:1667 +#: js/turtleactions/DictActions.js:89 +#: js/widgets/temperament.js:610 +#: js/widgets/temperament.js:614 +#: js/widgets/temperament.js:855 +#.TRANS: convert current note to piano key (1-88) +#.TRANS: a mapping of pitch to the 88 piano keys +msgid "pitch number" msgstr "" -#: js/ToneBlocks.js:438 -#: js/timbre.js:2100 -#.TRANS: distortion is an alteration in the sound -msgid "distortion" +#: js/blocks/PitchBlocks.js:256 +msgid "The Pitch number block is the value of the pitch of the note currently being played." msgstr "" -#: js/ToneBlocks.js:487 -msgid "The Tremolo block adds a wavering effect." +#: js/blocks/PitchBlocks.js:329 +#: js/blocks/PitchBlocks.js:433 +#.TRANS: the current pitch expressed in Hertz +msgid "pitch in hertz" msgstr "" -#: js/ToneBlocks.js:495 -#: js/timbre.js:2092 -#.TRANS: a wavering effect in a musical tone -msgid "tremolo" +#: js/blocks/PitchBlocks.js:334 +msgid "The Pitch in Hertz block is the value in Hertz of the pitch of the note currently being played." msgstr "" -#: js/ToneBlocks.js:500 -#: js/ToneBlocks.js:569 -#: js/ToneBlocks.js:630 -#: js/ToneBlocks.js:689 -#: js/timbre.js:2134 -#: js/timbre.js:2222 -#: js/timbre.js:2317 -#: js/timbre.js:2419 -#.TRANS: rate at which tremolo wavers -msgid "rate" +#: js/blocks/PitchBlocks.js:367 +#: js/turtleactions/DictActions.js:87 +msgid "current pitch" msgstr "" -#: js/ToneBlocks.js:502 -#: js/ToneBlocks.js:630 -#: js/timbre.js:2137 -#: js/timbre.js:2328 -#.TRANS: amplitude of tremolo waver -msgid "depth" +#: js/blocks/PitchBlocks.js:373 +msgid "The Current Pitch block is used with the Pitch Converter block. In the example above, current pitch, sol 4, is displayed as 392 hertz." msgstr "" -#: js/ToneBlocks.js:559 -msgid "The Phaser block adds a sweeping sound." +#: js/blocks/PitchBlocks.js:410 +msgid "This block converts the pitch value of the last note played into different formats such as hertz, letter name, pitch number, et al." msgstr "" -#: js/ToneBlocks.js:566 -#: js/timbre.js:2098 -#.TRANS: alter the phase of the sound -msgid "phaser" +#: js/blocks/PitchBlocks.js:434 +msgid "alphabet" msgstr "" -#: js/ToneBlocks.js:569 -#: js/timbre.js:2422 -msgid "octaves" +#: js/blocks/PitchBlocks.js:436 +#.TRANS: Translate as "alphabet class" +msgid "letter class" msgstr "" -#: js/ToneBlocks.js:569 -#: js/timbre.js:2425 -msgid "base frequency" +#: js/blocks/PitchBlocks.js:437 +msgid "solfege class" msgstr "" -#: js/ToneBlocks.js:619 -msgid "The Chorus block adds a chorus effect." +#: js/blocks/PitchBlocks.js:438 +msgid "staff y" msgstr "" -#: js/ToneBlocks.js:627 -#: js/timbre.js:2096 -#.TRANS: musical effect to simulate a choral sound -msgid "chorus" +#: js/blocks/PitchBlocks.js:439 +msgid "solfege syllable" msgstr "" -#: js/ToneBlocks.js:630 -msgid "delay" +#: js/blocks/PitchBlocks.js:440 +msgid "pitch class" msgstr "" -#: js/ToneBlocks.js:678 -msgid "The Vibrato block adds a rapid, slight variation in pitch." +#: js/blocks/PitchBlocks.js:441 +msgid "scalar class" msgstr "" -#: js/ToneBlocks.js:686 -#: js/timbre.js:2094 -#.TRANS: a rapid, slight variation in pitch -msgid "vibrato" +#: js/blocks/PitchBlocks.js:443 +msgid "nth degree" msgstr "" -#: js/ToneBlocks.js:689 -#: js/timbre.js:2221 -msgid "intensity" +#: js/blocks/PitchBlocks.js:444 +msgid "pitch to shade" msgstr "" -#: js/ToneBlocks.js:733 -#.TRANS: select synthesizer -msgid "set synth" +#: js/blocks/PitchBlocks.js:445 +msgid "pitch to color" msgstr "" -#: js/ToneBlocks.js:804 -msgid "synth name" +#: js/blocks/PitchBlocks.js:629 +#: js/widgets/musickeyboard.js:735 +#.TRANS: MIDI is a technical standard for electronic music +msgid "MIDI" msgstr "" -#: js/ToneBlocks.js:842 -msgid "set default instrument" +#: js/blocks/PitchBlocks.js:642 +#.TRANS: set an offset associated with the numeric piano keyboard mapping +msgid "set pitch number offset" msgstr "" -#: js/ToneBlocks.js:895 -#: js/ToneBlocks.js:943 -#.TRANS: set the characteristics of a custom instrument -msgid "set instrument" +#: js/blocks/PitchBlocks.js:645 +msgid "The Set pitch number offset block is used to set the offset for mapping pitch numbers to pitch and octave." msgstr "" -#: js/ToneBlocks.js:898 -#: js/ToneBlocks.js:926 -#: js/ToneBlocks.js:932 -msgid "The Set instrument block selects a voice for the synthesizer," +#: js/blocks/PitchBlocks.js:679 +#.TRANS: convert piano key number (1-88) to pitch +msgid "number to pitch" msgstr "" -#: js/ToneBlocks.js:900 -#: js/ToneBlocks.js:934 -msgid "eg guitar piano violin or cello." +#: js/blocks/PitchBlocks.js:682 +msgid "The Number to pitch block will convert a pitch number to a pich name." msgstr "" -#: js/ToneBlocks.js:1015 -msgid "Import a sound file to use as an instrument and set its pitch center." +#: js/blocks/PitchBlocks.js:715 +#.TRANS: convert piano key number (1-88) to octave +msgid "number to octave" msgstr "" -#: js/ToneBlocks.js:1110 -msgid "Upload a sound file to connect with the sample block." +#: js/blocks/PitchBlocks.js:717 +msgid "The Number to octave block will convert a pitch number to an octave." msgstr "" -#: js/MeterBlocks.js:34 -#.TRANS: musical meter (time signature), e.g., 4:4 -msgid "current meter" +#: js/blocks/PitchBlocks.js:726 +msgid "y to pitch" msgstr "" -#: js/MeterBlocks.js:85 -#.TRANS: number of beats per minute -msgid "beat factor" +#: js/blocks/PitchBlocks.js:729 +msgid "Y to pitch block will convert a staff y position to corresponding pitch notation." msgstr "" -#: js/MeterBlocks.js:161 -msgid "The Beats per minute block returns the current beats per minute." +#: js/blocks/PitchBlocks.js:841 +msgid "accidental selector" msgstr "" -#: js/MeterBlocks.js:169 -#: js/status.js:152 -#.TRANS: number of beats played per minute -msgid "beats per minute2" +#: js/blocks/PitchBlocks.js:844 +msgid "The Accidental selector block is used to choose between double-sharp, sharp, natural, flat, and double-flat." msgstr "" -#: js/MeterBlocks.js:169 -#: js/MeterBlocks.js:1056 -#: js/MeterBlocks.js:1133 -#: js/MeterBlocks.js:1211 -#.TRANS: sets tempo by defining a beat and beats per minute -msgid "beats per minute" +#: js/blocks/PitchBlocks.js:858 +msgid "Pitch can be specified in terms of ni dha pa ma ga re sa." msgstr "" -#: js/MeterBlocks.js:233 -#.TRANS: count of current musical measure in meter -msgid "measure count" +#: js/blocks/PitchBlocks.js:872 +msgid "Pitch can be specified in terms of C D E F G A B." msgstr "" -#: js/MeterBlocks.js:241 -msgid "The Measure count block returns the current measure." +#: js/blocks/PitchBlocks.js:884 +msgid "solfege" msgstr "" -#: js/MeterBlocks.js:290 -#.TRANS: count of current beat in the meter -msgid "beat count" +#: js/blocks/PitchBlocks.js:887 +msgid "Pitch can be specified in terms of do re mi fa sol la ti." msgstr "" -#: js/MeterBlocks.js:300 -#: js/MeterBlocks.js:311 -#: js/MeterBlocks.js:565 -#: js/MeterBlocks.js:576 -msgid "The Beat count block is the number of the current beat," +#: js/blocks/PitchBlocks.js:922 +msgid "The Invert block rotates any contained notes around a target note." msgstr "" -#: js/MeterBlocks.js:313 -#: js/MeterBlocks.js:578 -msgid "eg 1, 2, 3, or 4." +#: js/blocks/PitchBlocks.js:929 +#.TRANS: pitch inversion rotates a pitch around another pitch +msgid "invert" msgstr "" -#: js/MeterBlocks.js:368 -#.TRANS: count the number of notes -msgid "sum note values" +#: js/blocks/PitchBlocks.js:968 +#.TRANS: pitch inversion rotates a pitch around another pitch (odd number) +msgid "invert (odd)" msgstr "" -#: js/MeterBlocks.js:376 -#: js/MeterBlocks.js:440 -msgid "The Note counter block can be used to count the number of contained notes." +#: js/blocks/PitchBlocks.js:1001 +#.TRANS: pitch inversion rotates a pitch around another pitch (even number) +msgid "invert (even)" msgstr "" -#: js/MeterBlocks.js:432 -#.TRANS: count the number of notes -msgid "note counter" +#: js/blocks/PitchBlocks.js:1022 +#.TRANS: register is the octave of the current pitch +msgid "register" msgstr "" -#: js/MeterBlocks.js:496 -#.TRANS: number of whole notes that have been played -msgid "whole notes played" +#: js/blocks/PitchBlocks.js:1026 +msgid "The Register block provides an easy way to modify the register (octave) of the notes that follow it." msgstr "" -#: js/MeterBlocks.js:505 -msgid "The Whole notes played block returns the total number of whole notes played." +#: js/blocks/PitchBlocks.js:1047 +#.TRANS: cents are units used to specify the ratio between pitches. There are 100 cents between successive notes. +msgid "50 cents" msgstr "" -#: js/MeterBlocks.js:555 -#: js/DictActions.js:83 -#.TRANS: number of notes that have been played -msgid "notes played" +#: js/blocks/PitchBlocks.js:1102 +msgid "The Semi-tone transposition block will shift the pitches contained inside Note blocks up (or down) by half steps." msgstr "" -#: js/MeterBlocks.js:653 -msgid "The No clock block decouples the notes from the master clock." +#: js/blocks/PitchBlocks.js:1104 +msgid "In the example shown above, sol is shifted up to sol#." msgstr "" -#: js/MeterBlocks.js:661 -#.TRANS: don't lock notes to master clock -msgid "no clock" +#: js/blocks/PitchBlocks.js:1110 +#.TRANS: adjust the amount of shift (up or down) of a pitch +msgid "semi-tone transpose" msgstr "" -#: js/MeterBlocks.js:700 -msgid "on weak beat do" +#: js/blocks/PitchBlocks.js:1143 +msgid "The Transpose by Ratio block will shift the pitches contained inside Note blocks up (or down) by a ratio" msgstr "" -#: js/MeterBlocks.js:705 -msgid "The On-weak-beat block lets you specify actions to take on weak (off) beats." +#: js/blocks/PitchBlocks.js:1149 +#.TRANS: adjust the amount of shift (up or down) of a pitch +msgid "transpose by ratio" msgstr "" -#: js/MeterBlocks.js:750 -msgid "on strong beat" +#: js/blocks/PitchBlocks.js:1232 +#.TRANS: down sixth means the note is five scale degrees below current note +msgid "down sixth" msgstr "" -#: js/MeterBlocks.js:758 -msgid "The On-strong-beat block lets you specify actions to take on specified beats." +#: js/blocks/PitchBlocks.js:1251 +#.TRANS: down third means the note is two scale degrees below current note +msgid "down third" msgstr "" -#: js/MeterBlocks.js:769 -msgid "beat" +#: js/blocks/PitchBlocks.js:1270 +#.TRANS: seventh means the note is the six scale degrees above current note +msgid "seventh" msgstr "" -#: js/MeterBlocks.js:813 -msgid "on every beat do" +#: js/blocks/PitchBlocks.js:1289 +#.TRANS: sixth means the note is the five scale degrees above current note +msgid "sixth" msgstr "" -#: js/MeterBlocks.js:821 -msgid "The On-every-beat block lets you specify actions to take on every beat." +#: js/blocks/PitchBlocks.js:1308 +#.TRANS: fifth means the note is the four scale degrees above current note +msgid "fifth" msgstr "" -#: js/MeterBlocks.js:874 -msgid "on every note do" +#: js/blocks/PitchBlocks.js:1328 +#.TRANS: fourth means the note is three scale degrees above current note +msgid "fourth" msgstr "" -#: js/MeterBlocks.js:882 -msgid "The On-every-note block lets you specify actions to take on every note." +#: js/blocks/PitchBlocks.js:1347 +#.TRANS: third means the note is two scale degrees above current note +msgid "third" msgstr "" -#: js/MeterBlocks.js:928 -#: js/MeterBlocks.js:999 -#.TRANS: sets tempo by defining a beat and beats per minute -msgid "master beats per minute" +#: js/blocks/PitchBlocks.js:1366 +#.TRANS: second means the note is one scale degree above current note +msgid "second" msgstr "" -#: js/MeterBlocks.js:952 -#: js/MeterBlocks.js:1078 -#: js/MeterBlocks.js:1135 -msgid "bpm" +#: js/blocks/PitchBlocks.js:1407 +msgid "The Scalar transposition block will shift the pitches contained inside Note blocks up (or down) the scale." msgstr "" -#: js/MeterBlocks.js:952 -#: js/MeterBlocks.js:1078 -#: js/MeterBlocks.js:1135 -msgid "beat value" +#: js/blocks/PitchBlocks.js:1409 +msgid "In the example shown above, sol is shifted up to la." msgstr "" -#: js/MeterBlocks.js:1024 -#: js/MeterBlocks.js:1167 -#: js/MeterBlocks.js:1241 -msgid "Beats per minute must be > 30." +#: js/blocks/PitchBlocks.js:1416 +#.TRANS: adjust the amount of shift (up or down) of a pitch by musical scale (scalar) steps +msgid "scalar transpose" msgstr "" -#: js/MeterBlocks.js:1027 -#: js/MeterBlocks.js:1170 -#: js/MeterBlocks.js:1244 -msgid "Maximum beats per minute is 1000." +#: js/blocks/PitchBlocks.js:1451 +msgid "The Accidental block is used to create sharps and flats" msgstr "" -#: js/MeterBlocks.js:1068 -msgid "The Beats per minute block sets the number of 1/4 notes per minute." +#: js/blocks/PitchBlocks.js:1458 +#.TRANS: An accidental is a modification to a pitch, e.g., sharp or flat. +msgid "accidental override" msgstr "" -#: js/MeterBlocks.js:1279 -#.TRANS: anacrusis -msgid "pickup" +#: js/blocks/PitchBlocks.js:1581 +msgid "The Hertz block (in combination with a Number block) will play a sound at the specified frequency." msgstr "" -#: js/MeterBlocks.js:1367 -msgid "number of beats" +#: js/blocks/PitchBlocks.js:1671 +msgid "The Pitch Number block will play a pitch associated by its number, e.g. 0 for C and 7 for G." msgstr "" -#: js/DictBlocks.js:77 -msgid "show dictionary" +#: js/blocks/PitchBlocks.js:1703 +#: js/blocks/PitchBlocks.js:1745 +#.TRANS: a numeric mapping of the notes in an octave based on the musical mode +#.TRANS: a numeric mapping of the notes in an octave based on the musical mode +msgid "nth modal pitch" msgstr "" -#: js/DictBlocks.js:129 -msgid "The Dictionary block returns a dictionary." +#: js/blocks/PitchBlocks.js:1706 +msgid "n^th Modal Pitch takes the pattern of pitches in semitones for a mode and makes each point a degree of the mode," msgstr "" -#: js/DictBlocks.js:197 -#: js/DictBlocks.js:339 -msgid "The Get-dict block returns a value in the dictionary for a specified key." +#: js/blocks/PitchBlocks.js:1708 +msgid "starting from 1 and regardless of tonal framework (i.e. not always 8 notes in the octave)" msgstr "" -#: js/DictBlocks.js:212 -#: js/DictBlocks.js:354 -#.TRANS: retrieve a value from the dictionary with a given key -msgid "get value" +#: js/blocks/PitchBlocks.js:1749 +msgid "N^th Modal Pitch takes a number as an input as the n^th degree for the given mode. 0 is the first position, 1 is the second, -1 is the note before the first etc." msgstr "" -#: js/DictBlocks.js:215 -#: js/DictBlocks.js:216 -#: js/DictBlocks.js:289 -#: js/DictBlocks.js:290 -#: js/DictBlocks.js:357 -#: js/DictBlocks.js:430 -#: js/DictBlocks.js:431 -msgid "key2" +#: js/blocks/PitchBlocks.js:1751 +msgid "The pitches change according to the mode specified without any need for respellings." msgstr "" -#: js/DictBlocks.js:271 -#: js/DictBlocks.js:411 -msgid "The Set-dict block sets a value in the dictionary for a specified key." +#: js/blocks/PitchBlocks.js:1790 +msgid "Scale Degree is a common convention in music. Scale Degree offers seven possible positions in the scale (1-7) and can be modified via accidentals." msgstr "" -#: js/DictBlocks.js:286 -#: js/DictBlocks.js:427 -#.TRANS: set a value in the dictionary for a given key -msgid "set value" +#: js/blocks/PitchBlocks.js:1792 +msgid "Scale Degree 1 is always the first pitch in a given scale, regardless of octave." msgstr "" -#: js/ExtrasBlocks.js:33 -msgid "fraction" +#: js/blocks/PitchBlocks.js:1814 +#.TRANS: step some number of notes in current musical scale +msgid "scalar step" msgstr "" -#: js/ExtrasBlocks.js:36 -msgid "Convert a float to a fraction" +#: js/blocks/PitchBlocks.js:1819 +msgid "The Scalar Step block (in combination with a Number block) will play the next pitch in a scale," msgstr "" -#: js/ExtrasBlocks.js:93 -msgid "save as ABC" +#: js/blocks/PitchBlocks.js:1821 +msgid "eg if the last note played was sol, Scalar Step 1 will play la." msgstr "" -#: js/ExtrasBlocks.js:96 -#: js/ExtrasBlocks.js:132 -#: js/ExtrasBlocks.js:168 -msgid "title" +#: js/blocks/PitchBlocks.js:1857 +msgid "The Pitch block specifies the pitch name and octave of a note that together determine the frequency of the note." msgstr "" -#: js/ExtrasBlocks.js:129 -msgid "save as Lilypond" +#: js/blocks/ProgramBlocks.js:33 +msgid "The Load-heap-from-app block loads the heap from a web page." msgstr "" -#: js/ExtrasBlocks.js:165 -msgid "save as SVG" +#: js/blocks/ProgramBlocks.js:44 +#.TRANS: load the heap contents from a URL +msgid "load heap from App" msgstr "" -#: js/ExtrasBlocks.js:216 -msgid "no background" +#: js/blocks/ProgramBlocks.js:95 +msgid "Error parsing JSON data:" msgstr "" -#: js/ExtrasBlocks.js:219 -msgid "The No background block eliminates the background from the saved SVG output." +#: js/blocks/ProgramBlocks.js:100 +msgid "404: Page not found" msgstr "" -#: js/ExtrasBlocks.js:247 -msgid "show blocks" -msgstr "показать блоки" +#: js/blocks/ProgramBlocks.js:133 +msgid "The Save-heap-to-app block saves the heap to a web page." +msgstr "" -#: js/ExtrasBlocks.js:249 -msgid "The Show blocks block shows the blocks." +#: js/blocks/ProgramBlocks.js:144 +#.TRANS: save the heap contents to a URL +msgid "save heap to App" msgstr "" -#: js/ExtrasBlocks.js:274 -msgid "hide blocks" -msgstr "скрыть блоки" +#: js/blocks/ProgramBlocks.js:189 +msgid "Cannot find a valid heap for" +msgstr "" -#: js/ExtrasBlocks.js:276 -msgid "The Hide blocks block hides the blocks." +#: js/blocks/ProgramBlocks.js:206 +msgid "The Load-heap block loads the heap from a file." msgstr "" -#: js/ExtrasBlocks.js:305 -#: js/ExtrasBlocks.js:335 -msgid "The Space block is used to add space between blocks." +#: js/blocks/ProgramBlocks.js:217 +#.TRANS: load the heap from a file +msgid "load heap" msgstr "" -#: js/ExtrasBlocks.js:373 -msgid "wait" -msgstr "ждать" +#: js/blocks/ProgramBlocks.js:270 +msgid "The file you selected does not contain a valid heap." +msgstr "" -#: js/ExtrasBlocks.js:376 -msgid "The Wait block pauses the program for a specified number of seconds." +#: js/blocks/ProgramBlocks.js:275 +msgid "The loadHeap block needs a loadFile block." msgstr "" -#: js/ExtrasBlocks.js:430 -#: plugins/facebook.rtp:30 -msgid "comment" -msgstr "комментарий" +#: js/blocks/ProgramBlocks.js:291 +msgid "The Set-heap block loads the heap." +msgstr "" -#: js/ExtrasBlocks.js:466 -msgid "print" -msgstr "печать" +#: js/blocks/ProgramBlocks.js:340 +msgid "The block you selected does not contain a valid heap." +msgstr "" -#: js/ExtrasBlocks.js:473 -msgid "The Print block displays text at the top of the screen." +#: js/blocks/ProgramBlocks.js:343 +msgid "The Set heap block needs a heap." msgstr "" -#: js/ExtrasBlocks.js:579 -msgid "display grid" +#: js/blocks/ProgramBlocks.js:360 +msgid "The Load-dictionary block loads a dictionary from a file." msgstr "" -#: js/ExtrasBlocks.js:584 -msgid "The Display Grid Block changes the grid type" +#: js/blocks/ProgramBlocks.js:372 +#.TRANS: load a dictionary from a file +msgid "load dictionary" msgstr "" -#: js/ExtrasBlocks.js:686 -#: js/ExtrasBlocks.js:705 -#: js/ExtrasBlocks.js:728 -#: js/ExtrasBlocks.js:751 -#: js/ExtrasBlocks.js:769 -#: js/ExtrasBlocks.js:788 -#: js/ExtrasBlocks.js:807 -#: js/ExtrasBlocks.js:826 -msgid "unknown" +#: js/blocks/ProgramBlocks.js:390 +#: js/blocks/ProgramBlocks.js:658 +#: js/blocks/ToneBlocks.js:1025 +msgid "file" msgstr "" -#: js/SensorsBlocks.js:36 -msgid "The Input block prompts for keyboard input." +#: js/blocks/ProgramBlocks.js:444 +msgid "The file you selected does not contain a valid dictionary." msgstr "" -#: js/SensorsBlocks.js:46 -msgid "input" +#: js/blocks/ProgramBlocks.js:449 +msgid "The load dictionary block needs a load file block." msgstr "" -#: js/SensorsBlocks.js:64 -msgid "Input a value" +#: js/blocks/ProgramBlocks.js:466 +msgid "The Set-dictionary block loads a dictionary." msgstr "" -#: js/SensorsBlocks.js:126 -msgid "input value" +#: js/blocks/ProgramBlocks.js:477 +#.TRANS: load a dictionary from a JSON +msgid "set dictionary" msgstr "" -#: js/SensorsBlocks.js:131 -msgid "The Input-value block stores the input." +#: js/blocks/ProgramBlocks.js:546 +msgid "The block you selected does not contain a valid dictionary." msgstr "" -#: js/SensorsBlocks.js:238 -msgid "loudness" +#: js/blocks/ProgramBlocks.js:550 +msgid "The set dictionary block needs a dictionary." msgstr "" -#: js/SensorsBlocks.js:245 -msgid "The Loudness block returns the volume detected by the microphone." +#: js/blocks/ProgramBlocks.js:567 +msgid "The Save-heap block saves the heap to a file." msgstr "" -#: js/SensorsBlocks.js:300 -msgid "click" +#: js/blocks/ProgramBlocks.js:578 +#.TRANS: save the heap to a file +msgid "save heap" msgstr "" -#: js/SensorsBlocks.js:306 -msgid "The Click block triggers an event if a mouse has been clicked." +#: js/blocks/ProgramBlocks.js:629 +msgid "The Save-dictionary block saves a dictionary to a file." msgstr "" -#: js/SensorsBlocks.js:313 -msgid "The Click block triggers an event if a turtle has been clicked." +#: js/blocks/ProgramBlocks.js:640 +#.TRANS: save a dictionary to a file +msgid "save dictionary" msgstr "" -#: js/SensorsBlocks.js:342 -msgid "cursor over" +#: js/blocks/ProgramBlocks.js:720 +msgid "The Open palette block opens a palette." msgstr "" -#: js/SensorsBlocks.js:387 -msgid "cursor out" +#: js/blocks/ProgramBlocks.js:727 +msgid "open palette" msgstr "" -#: js/SensorsBlocks.js:433 -msgid "cursor button down" +#: js/blocks/ProgramBlocks.js:785 +msgid "The Delete block block removes a block." msgstr "" -#: js/SensorsBlocks.js:477 -msgid "cursor button up" +#: js/blocks/ProgramBlocks.js:797 +#.TRANS: Move this block to the trash. +msgid "delete block" msgstr "" -#: js/SensorsBlocks.js:638 -msgid "The Get red block returns the red component of the pixel under the mouse." +#: js/blocks/ProgramBlocks.js:861 +msgid "The Move block block moves a block." msgstr "" -#: js/SensorsBlocks.js:644 -msgid "The Get red block returns the red component of the pixel under the turtle." +#: js/blocks/ProgramBlocks.js:869 +#.TRANS: Move the position of a block on the screen. +msgid "move block" msgstr "" -#: js/SensorsBlocks.js:685 -#: plugins/rodi.rtp:216 -msgid "pixel color" +#: js/blocks/ProgramBlocks.js:881 +#: js/blocks/ProgramBlocks.js:1048 +msgid "block number" msgstr "" -#: js/SensorsBlocks.js:690 -msgid "The Get pixel block returns the color of the pixel under the mouse." +#: js/blocks/ProgramBlocks.js:935 +#.TRANS: Run program beginning at this block. +msgid "run block" msgstr "" -#: js/SensorsBlocks.js:696 -msgid "The Get pixel block returns the color of the pixel under the turtle." +#: js/blocks/ProgramBlocks.js:1025 +msgid "The Dock block block connections two blocks." msgstr "" -#: js/SensorsBlocks.js:758 -msgid "time" +#: js/blocks/ProgramBlocks.js:1036 +#.TRANS: We can connect a block to another block. +msgid "connect blocks" msgstr "" -#: js/SensorsBlocks.js:804 -msgid "cursor y" +#: js/blocks/ProgramBlocks.js:1048 +msgid "target block" msgstr "" -#: js/SensorsBlocks.js:809 -msgid "The Cursor Y block returns the vertical position of the mouse." +#: js/blocks/ProgramBlocks.js:1048 +msgid "connection number" msgstr "" -#: js/SensorsBlocks.js:845 -msgid "cursor x" +#: js/blocks/ProgramBlocks.js:1140 +msgid "The Make block block creates a new block." msgstr "" -#: js/SensorsBlocks.js:850 -msgid "The Cursor X block returns the horizontal position of the mouse." +#: js/blocks/ProgramBlocks.js:1152 +#.TRANS: Create a new block +msgid "make block" msgstr "" -#: js/SensorsBlocks.js:886 -msgid "mouse button" +#: js/blocks/ProgramBlocks.js:1285 +msgid "Cannot find block" msgstr "" -#: js/SensorsBlocks.js:888 -msgid "The Mouse-button block returns True if the mouse button is pressed." +#: js/blocks/ProgramBlocks.js:1304 +#: js/blocks/ProgramBlocks.js:1313 +msgid "Warning: block argument type mismatch" msgstr "" -#: js/SensorsBlocks.js:934 -msgid "to ASCII" +#: js/blocks/ProgramBlocks.js:1347 +msgid "The Open project block is used to open a project from a web page." msgstr "" -#: js/SensorsBlocks.js:938 -msgid "The To ASCII block converts numbers to letters." +#: js/blocks/ProgramBlocks.js:1357 +msgid "open project" msgstr "" -#: js/SensorsBlocks.js:1005 -msgid "The Keyboard block returns computer keyboard input." +#: js/blocks/ProgramBlocks.js:1410 +msgid "Please enter a valid URL." msgstr "" -#: js/IntervalsActions.js:216 -msgid "Adding missing pitch number 0." +#: js/blocks/ToneBlocks.js:34 +msgid "oscillator" msgstr "" -#: js/IntervalsActions.js:224 -msgid "Ignoring pitch numbers less than zero or greater than eleven." +#: js/blocks/ToneBlocks.js:42 +#: js/blocks/WidgetBlocks.js:179 +#: js/widgets/timbre.js:1558 +#: js/widgets/timbre.js:1808 +#.TRANS: there are different types (sine, triangle, square...) of oscillators. +#.TRANS: type of filter, e.g., lowpass, highpass, etc. +msgid "type" msgstr "" -#: js/IntervalsActions.js:230 -msgid "Ignoring duplicate pitch numbers." +#: js/blocks/ToneBlocks.js:44 +#: js/widgets/timbre.js:1562 +#.TRANS: Partials refers to the number of sine waves combined into the sound. +msgid "partials" msgstr "" -#: js/PitchActions.js:88 -msgid "The Scalar Step Block must be used inside of a Note Block." +#: js/blocks/ToneBlocks.js:76 +msgid "You are adding multiple oscillator blocks." msgstr "" -#: js/PitchActions.js:107 -msgid "The Scalar Step Block must be preceded by a Pitch Block." +#: js/blocks/ToneBlocks.js:144 +#: js/widgets/timbre.js:1225 +#.TRANS: a duo synthesizer combines a synth with a sequencer +msgid "duo synth" msgstr "" -#: js/DrumActions.js:231 -msgid "Noise Block: Did you mean to use a Note block?" +#: js/blocks/ToneBlocks.js:149 +msgid "The Duo synth block is a duo-frequency modulator used to define a timbre." msgstr "" -#: js/MeterActions.js:101 -#: js/MeterActions.js:139 -msgid "beats per minute must be greater than" +#: js/blocks/ToneBlocks.js:157 +#: js/widgets/timbre.js:1476 +msgid "vibrato rate" msgstr "" -#: js/MeterActions.js:111 -#: js/MeterActions.js:149 -msgid "maximum" +#: js/blocks/ToneBlocks.js:157 +msgid "vibrato intensity" msgstr "" -#: js/MeterActions.js:117 -#: js/MeterActions.js:155 -msgid "beats per minute is" +#: js/blocks/ToneBlocks.js:185 +#: js/widgets/timbre.js:1221 +#.TRANS: AM (amplitude modulation) synthesizer +msgid "AM synth" msgstr "" -#: js/ToneActions.js:134 -msgid "Vibrato intensity must be between 1 and 100." +#: js/blocks/ToneBlocks.js:189 +msgid "The AM synth block is an amplitude modulator used to define a timbre." msgstr "" -#: js/ToneActions.js:139 -msgid "Vibrato rate must be greater than 0." +#: js/blocks/ToneBlocks.js:224 +#: js/widgets/timbre.js:1223 +#.TRANS: FM (frequency modulation) synthesizer +msgid "FM synth" msgstr "" -#: js/ToneActions.js:192 -#: js/ToneActions.js:265 -#.TRANS: Depth is the intesity of the tremolo or chorus effect. -msgid "Depth is out of range." +#: js/blocks/ToneBlocks.js:228 +msgid "The FM synth block is a frequency modulator used to define a timbre." msgstr "" -#: js/ToneActions.js:301 -msgid "Distortion must be from 0 to 100." +#: js/blocks/ToneBlocks.js:262 +msgid "partial" msgstr "" -#: js/ToneActions.js:332 -#.TRANS: partials components in a harmonic series -msgid "Partial must be greater than or equal to 0." +#: js/blocks/ToneBlocks.js:265 +msgid "The Partial block is used to specify a weight for a specific partial harmonic." msgstr "" -#: js/ToneActions.js:378 -#: js/ToneActions.js:417 -#: js/ToneActions.js:456 -#: js/timbre.js:782 -msgid "Unable to use synth due to existing oscillator" +#: js/blocks/ToneBlocks.js:284 +#.TRANS: partials are weighted components in a harmonic series +msgid "Partial weight must be between 0 and 1." msgstr "" -#: js/ToneActions.js:388 -#: js/ToneActions.js:427 -msgid "The input cannot be negative." +#: js/blocks/ToneBlocks.js:297 +#.TRANS: partials are weighted components in a harmonic series +msgid "Partial block should be used inside of a Weighted-partials block." msgstr "" -#: js/DictActions.js:75 -#: js/DictActions.js:153 -#: js/DictActions.js:188 -msgid "font" +#: js/blocks/ToneBlocks.js:325 +#.TRANS: partials are weighted components in a harmonic series +msgid "weighted partials" msgstr "" -#: js/musicutils.js:363 -#: js/musicutils.js:471 -#: js/pitchdrummatrix.js:151 -#: js/musickeyboard.js:2563 -msgid "rest" +#: js/blocks/ToneBlocks.js:383 +msgid "The Harmonic block will add harmonics to the contained notes." msgstr "" -#: js/musicutils.js:565 -#.TRANS: ordinal number. Please keep exactly one space between each number. -msgid "1st 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th" +#: js/blocks/ToneBlocks.js:390 +#.TRANS: A harmonic is an overtone. +msgid "harmonic" msgstr "" -#: js/musicutils.js:629 -#: js/musicutils.js:812 -#: js/musicutils.js:911 -#.TRANS: augmented is a music term related to intervals -msgid "augmented" +#: js/blocks/ToneBlocks.js:431 +msgid "The Distortion block adds distortion to the pitch." msgstr "" -#: js/musicutils.js:631 -#: js/musicutils.js:813 -#: js/musicutils.js:910 -#.TRANS: diminished is a music term related to intervals and mode -msgid "diminished" +#: js/blocks/ToneBlocks.js:438 +#: js/widgets/timbre.js:2100 +#.TRANS: distortion is an alteration in the sound +msgid "distortion" msgstr "" -#: js/musicutils.js:639 -#.TRANS: twelve semi-tone scale for music -msgid "chromatic" +#: js/blocks/ToneBlocks.js:487 +msgid "The Tremolo block adds a wavering effect." msgstr "" -#: js/musicutils.js:640 -msgid "algerian" +#: js/blocks/ToneBlocks.js:495 +#: js/widgets/timbre.js:2092 +#.TRANS: a wavering effect in a musical tone +msgid "tremolo" msgstr "" -#: js/musicutils.js:641 -msgid "spanish" +#: js/blocks/ToneBlocks.js:500 +#: js/blocks/ToneBlocks.js:569 +#: js/blocks/ToneBlocks.js:630 +#: js/blocks/ToneBlocks.js:689 +#: js/widgets/timbre.js:2134 +#: js/widgets/timbre.js:2222 +#: js/widgets/timbre.js:2317 +#: js/widgets/timbre.js:2419 +#.TRANS: rate at which tremolo wavers +msgid "rate" msgstr "" -#: js/musicutils.js:643 -#.TRANS: modal scale in music -msgid "octatonic" +#: js/blocks/ToneBlocks.js:502 +#: js/blocks/ToneBlocks.js:630 +#: js/widgets/timbre.js:2137 +#: js/widgets/timbre.js:2328 +#.TRANS: amplitude of tremolo waver +msgid "depth" msgstr "" -#: js/musicutils.js:645 -#.TRANS: harmonic major scale in music -msgid "harmonic major" +#: js/blocks/ToneBlocks.js:559 +msgid "The Phaser block adds a sweeping sound." msgstr "" -#: js/musicutils.js:647 -#.TRANS: natural minor scales in music -msgid "natural minor" +#: js/blocks/ToneBlocks.js:566 +#: js/widgets/timbre.js:2098 +#.TRANS: alter the phase of the sound +msgid "phaser" msgstr "" -#: js/musicutils.js:649 -#.TRANS: harmonic minor scale in music -msgid "harmonic minor" +#: js/blocks/ToneBlocks.js:569 +#: js/turtleactions/IntervalsActions.js:114 +#: js/widgets/timbre.js:2422 +msgid "octaves" msgstr "" -#: js/musicutils.js:651 -#.TRANS: melodic minor scale in music -msgid "melodic minor" +#: js/blocks/ToneBlocks.js:569 +#: js/widgets/timbre.js:2425 +msgid "base frequency" msgstr "" -#: js/musicutils.js:655 -#.TRANS: modal scale for music -msgid "dorian" +#: js/blocks/ToneBlocks.js:619 +msgid "The Chorus block adds a chorus effect." msgstr "" -#: js/musicutils.js:657 -#.TRANS: modal scale for music -msgid "phrygian" +#: js/blocks/ToneBlocks.js:627 +#: js/widgets/timbre.js:2096 +#.TRANS: musical effect to simulate a choral sound +msgid "chorus" msgstr "" -#: js/musicutils.js:659 -#.TRANS: modal scale for music -msgid "lydian" +#: js/blocks/ToneBlocks.js:630 +msgid "delay" msgstr "" -#: js/musicutils.js:661 -#.TRANS: modal scale for music -msgid "mixolydian" +#: js/blocks/ToneBlocks.js:678 +msgid "The Vibrato block adds a rapid, slight variation in pitch." msgstr "" -#: js/musicutils.js:665 -#.TRANS: modal scale for music -msgid "locrian" +#: js/blocks/ToneBlocks.js:686 +#: js/widgets/timbre.js:2094 +#.TRANS: a rapid, slight variation in pitch +msgid "vibrato" msgstr "" -#: js/musicutils.js:667 -#.TRANS: minor jazz scale for music -msgid "jazz minor" +#: js/blocks/ToneBlocks.js:689 +#: js/widgets/timbre.js:2221 +msgid "intensity" msgstr "" -#: js/musicutils.js:669 -#.TRANS: bebop scale for music -msgid "bebop" +#: js/blocks/ToneBlocks.js:733 +#.TRANS: select synthesizer +msgid "set synth" msgstr "" -#: js/musicutils.js:670 -msgid "arabic" +#: js/blocks/ToneBlocks.js:804 +msgid "synth name" msgstr "" -#: js/musicutils.js:671 -msgid "byzantine" +#: js/blocks/ToneBlocks.js:842 +msgid "set default instrument" msgstr "" -#: js/musicutils.js:673 -#.TRANS: musical scale for music by Verdi -msgid "enigmatic" +#: js/blocks/ToneBlocks.js:895 +#: js/blocks/ToneBlocks.js:943 +#.TRANS: set the characteristics of a custom instrument +msgid "set instrument" msgstr "" -#: js/musicutils.js:674 -msgid "ethiopian" +#: js/blocks/ToneBlocks.js:898 +#: js/blocks/ToneBlocks.js:926 +#: js/blocks/ToneBlocks.js:932 +msgid "The Set instrument block selects a voice for the synthesizer," msgstr "" -#: js/musicutils.js:676 -#.TRANS: Ethiopic scale for music -msgid "geez" +#: js/blocks/ToneBlocks.js:900 +#: js/blocks/ToneBlocks.js:934 +msgid "eg guitar piano violin or cello." msgstr "" -#: js/musicutils.js:677 -msgid "hindu" +#: js/blocks/ToneBlocks.js:1015 +msgid "Import a sound file to use as an instrument and set its pitch center." msgstr "" -#: js/musicutils.js:678 -msgid "hungarian" +#: js/blocks/ToneBlocks.js:1110 +msgid "Upload a sound file to connect with the sample block." msgstr "" -#: js/musicutils.js:680 -#.TRANS: minor Romanian scale for music -msgid "romanian minor" +#: js/blocks/VolumeBlocks.js:35 +msgid "synth volume" msgstr "" -#: js/musicutils.js:681 -msgid "spanish gypsy" +#: js/blocks/VolumeBlocks.js:39 +msgid "The Synth volume block returns the current volume of the current synthesizer." msgstr "" -#: js/musicutils.js:683 -#.TRANS: musical scale for Mid-Eastern music -msgid "maqam" +#: js/blocks/VolumeBlocks.js:105 +msgid "master volume" msgstr "" -#: js/musicutils.js:685 -#.TRANS: minor blues scale for music -msgid "minor blues" +#: js/blocks/VolumeBlocks.js:109 +msgid "The Master volume block returns the master volume." msgstr "" -#: js/musicutils.js:687 -#.TRANS: major blues scale for music -msgid "major blues" +#: js/blocks/VolumeBlocks.js:355 +#: js/blocks/VolumeBlocks.js:524 +msgid "set synth volume" msgstr "" -#: js/musicutils.js:688 -msgid "whole tone" +#: js/blocks/VolumeBlocks.js:362 +#: js/blocks/VolumeBlocks.js:545 +msgid "synth" msgstr "" -#: js/musicutils.js:690 -#.TRANS: pentatonic is a general term that means "five note scale". This scale is typically known as "minor pentatonic" -msgid "minor pentatonic" +#: js/blocks/VolumeBlocks.js:403 +#: js/blocks/VolumeBlocks.js:577 +#: js/blocks/VolumeBlocks.js:740 +#: js/turtleactions/VolumeActions.js:173 +msgid "Setting volume to 0." msgstr "" -#: js/musicutils.js:692 -#.TRANS: pentatonic is a general term that means "five note scale". This scale is typically known as "major pentatonic" -msgid "major pentatonic" +#: js/blocks/VolumeBlocks.js:440 +msgid "Synth not found" msgstr "" -#: js/musicutils.js:693 -msgid "chinese" +#: js/blocks/VolumeBlocks.js:494 +msgid "set drum volume" msgstr "" -#: js/musicutils.js:694 -msgid "egyptian" +#: js/blocks/VolumeBlocks.js:530 +msgid "The Set synth volume block will change the volume of a particular synth," msgstr "" -#: js/musicutils.js:696 -#.TRANS: https://en.wikipedia.org/wiki/Hirajoshi_scale NOTE: There are three different versions of this scale -msgid "hirajoshi" +#: js/blocks/VolumeBlocks.js:532 +msgid "eg guitar violin snare drum etc." msgstr "" -#: js/musicutils.js:697 -msgid "Japan" +#: js/blocks/VolumeBlocks.js:534 +msgid "The default volume is 50." msgstr "" -#: js/musicutils.js:699 -#.TRANS: https://en.wikipedia.org/wiki/In_scale and https://en.wikipedia.org/wiki/Sakura_Sakura -msgid "in" +#: js/blocks/VolumeBlocks.js:536 +msgid "The range is 0 for silence to 100 for full volume." msgstr "" -#: js/musicutils.js:701 -#.TRANS: https://en.wikipedia.org/wiki/Miny%C5%8D_scale -msgid "minyo" +#: js/blocks/VolumeBlocks.js:597 +msgid "set panning" msgstr "" -#: js/musicutils.js:703 -#.TRANS: Italian mathematician -msgid "fibonacci" +#: js/blocks/VolumeBlocks.js:603 +msgid "The Set Panning block sets the panning for all synthesizers." msgstr "" -#: js/musicutils.js:708 -#: js/musicutils.js:1106 -#.TRANS: lowpass filter -msgid "lowpass" +#: js/blocks/VolumeBlocks.js:625 +msgid "Warning: Sound is coming out from only the left or right side." msgstr "" -#: js/musicutils.js:710 -#: js/musicutils.js:1107 -#.TRANS: bandpass filter -msgid "bandpass" +#: js/blocks/VolumeBlocks.js:647 +#: js/blocks/VolumeBlocks.js:695 +msgid "set master volume" msgstr "" -#: js/musicutils.js:712 -#: js/musicutils.js:1108 -#.TRANS: high-shelf filter -msgid "highshelf" +#: js/blocks/VolumeBlocks.js:653 +msgid "The Set master volume block sets the volume for all synthesizers." msgstr "" -#: js/musicutils.js:714 -#: js/musicutils.js:1109 -#.TRANS: low-shelf filter -msgid "lowshelf" +#: js/blocks/VolumeBlocks.js:784 +msgid "The Set relative volume block changes the volume of the contained notes." msgstr "" -#: js/musicutils.js:716 -#: js/musicutils.js:1110 -#.TRANS: notch-shelf filter -msgid "notch" +#: js/blocks/VolumeBlocks.js:791 +msgid "set relative volume" msgstr "" -#: js/musicutils.js:718 -#: js/musicutils.js:1111 -#.TRANS: all-pass filter -msgid "allpass" +#: js/blocks/VolumeBlocks.js:857 +msgid "decrescendo" msgstr "" -#: js/musicutils.js:720 -#: js/musicutils.js:1112 -#.TRANS: peaking filter -msgid "peaking" +#: js/blocks/VolumeBlocks.js:921 +msgid "crescendo" msgstr "" -#: js/musicutils.js:731 -#: js/synthutils.js:58 -#.TRANS: musical instrument -msgid "violin" +#: js/blocks/WidgetBlocks.js:81 +#.TRANS: sound envelope (ADSR) +msgid "envelope" msgstr "" -#: js/musicutils.js:732 -#: js/synthutils.js:60 -#.TRANS: viola musical instrument -msgid "viola" +#: js/blocks/WidgetBlocks.js:89 +#.TRANS: Attack time is the time taken for initial run-up of level from nil to peak, beginning when the key is first pressed. +msgid "attack" msgstr "" -#: js/musicutils.js:733 -#: js/synthutils.js:98 -#.TRANS: xylophone musical instrument -msgid "xylophone" +#: js/blocks/WidgetBlocks.js:91 +#.TRANS: Decay time is the time taken for the subsequent run down from the attack level to the designated sustain level. +msgid "decay" msgstr "" -#: js/musicutils.js:734 -#: js/synthutils.js:120 -#.TRANS: vibraphone musical instrument -msgid "vibraphone" +#: js/blocks/WidgetBlocks.js:93 +#.TRANS: Sustain level is the level during the main sequence of the sound's duration, until the key is released. +msgid "sustain" msgstr "" -#: js/musicutils.js:735 -#: js/synthutils.js:62 -#.TRANS: musical instrument -msgid "cello" +#: js/blocks/WidgetBlocks.js:95 +#.TRANS: Release time is the time taken for the level to decay from the sustain level to zero after the key is released. +msgid "release" msgstr "" -#: js/musicutils.js:737 -#: js/synthutils.js:66 -#.TRANS: viola musical instrument -msgid "double bass" +#: js/blocks/WidgetBlocks.js:113 +msgid "Attack value should be from 0 to 100." msgstr "" -#: js/musicutils.js:738 -#: js/synthutils.js:68 -#: js/rhythmruler.js:2119 -#.TRANS: musical instrument -msgid "guitar" +#: js/blocks/WidgetBlocks.js:116 +msgid "Decay value should be from 0 to 100." msgstr "" -#: js/musicutils.js:739 -#: js/synthutils.js:70 -#.TRANS: musical instrument -msgid "acoustic guitar" +#: js/blocks/WidgetBlocks.js:119 +msgid "Sustain value should be from 0 to 100." msgstr "" -#: js/musicutils.js:740 -#: js/synthutils.js:72 -#.TRANS: musical instrument -msgid "flute" +#: js/blocks/WidgetBlocks.js:122 +msgid "Release value should be from 0-100." msgstr "" -#: js/musicutils.js:741 -#: js/synthutils.js:74 -#.TRANS: musical instrument -msgid "clarinet" +#: js/blocks/WidgetBlocks.js:140 +msgid "You are adding multiple envelope blocks." msgstr "" -#: js/musicutils.js:742 -#: js/synthutils.js:76 -#.TRANS: musical instrument -msgid "saxophone" +#: js/blocks/WidgetBlocks.js:171 +#.TRANS: a filter removes some unwanted components from a signal +msgid "filter" msgstr "" -#: js/musicutils.js:743 -#: js/synthutils.js:78 -#.TRANS: musical instrument -msgid "tuba" +#: js/blocks/WidgetBlocks.js:181 +#: js/widgets/timbre.js:1818 +#.TRANS: rolloff is the steepness of a change in frequency. +msgid "rolloff" msgstr "" -#: js/musicutils.js:744 -#: js/synthutils.js:80 -#.TRANS: musical instrument -msgid "trumpet" +#: js/blocks/WidgetBlocks.js:213 +#.TRANS: rolloff is the steepness of a change in frequency. +msgid "Rolloff value should be either -12, -24, -48, or -96 decibels/octave." msgstr "" -#: js/musicutils.js:745 -#: js/synthutils.js:82 -#.TRANS: musical instrument -msgid "oboe" +#: js/blocks/WidgetBlocks.js:252 +msgid "The Temperament tool is used to define custom tuning." msgstr "" -#: js/musicutils.js:746 -#: js/synthutils.js:84 -#.TRANS: musical instrument -msgid "trombone" +#: js/blocks/WidgetBlocks.js:332 +#: js/blocks/WidgetBlocks.js:1573 +#: js/widgets/sampler.js:547 +msgid "Upload a sample and adjust its pitch center." msgstr "" -#: js/musicutils.js:747 -#: js/synthutils.js:100 -#.TRANS: polytone synthesizer -msgid "electronic synth" +#: js/blocks/WidgetBlocks.js:339 +#.TRANS: the speed at music is should be played. +msgid "sampler" msgstr "" -#: js/musicutils.js:748 -#: js/synthutils.js:102 -#.TRANS: simple monotone synthesizer -msgid "simple 1" +#: js/blocks/WidgetBlocks.js:517 +msgid "The Meter block opens a tool to select strong beats for the meter." msgstr "" -#: js/musicutils.js:749 -msgid "simple 2" +#: js/blocks/WidgetBlocks.js:573 +msgid "The oscilloscope block opens a tool to visualize waveforms." msgstr "" -#: js/musicutils.js:750 -msgid "simple 3" +#: js/blocks/WidgetBlocks.js:578 +msgid "oscilloscope" msgstr "" -#: js/musicutils.js:751 -msgid "simple 4" +#: js/blocks/WidgetBlocks.js:645 +msgid "The Custom mode block opens a tool to explore musical mode (the spacing of the notes in a scale)." msgstr "" -#: js/musicutils.js:753 -#: js/synthutils.js:49 -#.TRANS: brown noise synthesizer -msgid "brown noise" +#: js/blocks/WidgetBlocks.js:651 +#.TRANS: musical mode is the pattern of half-steps in an octave, e.g., Major or Minor modes +msgid "custom mode" msgstr "" -#: js/musicutils.js:754 -#: js/synthutils.js:51 -#.TRANS: pink noise synthesizer -msgid "pink noise" +#: js/blocks/WidgetBlocks.js:700 +msgid "The Tempo block opens a metronome to visualize the beat." msgstr "" -#: js/musicutils.js:756 -#: js/synthutils.js:127 -#: js/rhythmruler.js:1670 -#: js/rhythmruler.js:1928 -#.TRANS: musical instrument -msgid "snare drum" +#: js/blocks/WidgetBlocks.js:762 +msgid "The Arpeggio Widget is used to compose chord sequences." msgstr "" -#: js/musicutils.js:757 -#: js/synthutils.js:129 -#.TRANS: musical instrument -msgid "kick drum" +#: js/blocks/WidgetBlocks.js:837 +msgid "The Pitch drum matrix is used to map pitches to drum sounds." msgstr "" -#: js/musicutils.js:758 -#: js/synthutils.js:131 -#.TRANS: musical instrument -msgid "tom tom" +#: js/blocks/WidgetBlocks.js:842 +#.TRANS: makes a mapping between pitches and drum sounds +msgid "pitch-drum mapper" msgstr "" -#: js/musicutils.js:759 -#: js/synthutils.js:133 -#.TRANS: musical instrument -msgid "floor tom" +#: js/blocks/WidgetBlocks.js:891 +msgid "You must have at least one pitch block and one drum block in the matrix." msgstr "" -#: js/musicutils.js:760 -#: js/synthutils.js:135 -#.TRANS: musical instrument -msgid "bass drum" +#: js/blocks/WidgetBlocks.js:920 +msgid "The Pitch slider tool to is used to generate pitches at selected frequencies." msgstr "" -#: js/musicutils.js:761 -#: js/synthutils.js:137 -#.TRANS: a drum made from an inverted cup -msgid "cup drum" +#: js/blocks/WidgetBlocks.js:925 +#.TRANS: widget to generate pitches using a slider +msgid "pitch slider" msgstr "" -#: js/musicutils.js:762 -#: js/synthutils.js:139 -#.TRANS: musical instrument -msgid "darbuka drum" +#: js/blocks/WidgetBlocks.js:977 +msgid "chromatic keyboard" msgstr "" -#: js/musicutils.js:763 -#: js/synthutils.js:143 -#.TRANS: musical instrument -msgid "hi hat" +#: js/blocks/WidgetBlocks.js:1011 +#: js/blocks/WidgetBlocks.js:1077 +#.TRANS: widget to generate pitches using a slider +msgid "music keyboard" msgstr "" -#: js/musicutils.js:764 -#: js/synthutils.js:145 -#.TRANS: a small metal bell -msgid "ride bell" +#: js/blocks/WidgetBlocks.js:1062 +#: js/blocks/WidgetBlocks.js:1069 +msgid "The Music keyboard block opens a piano keyboard that can be used to create notes." msgstr "" -#: js/musicutils.js:765 -#: js/synthutils.js:147 -#.TRANS: musical instrument -msgid "cow bell" +#: js/blocks/WidgetBlocks.js:1128 +msgid "The Pitch staircase tool to is used to generate pitches from a given ratio." msgstr "" -#: js/musicutils.js:766 -msgid "japanese drum" +#: js/blocks/WidgetBlocks.js:1135 +#.TRANS: generate a progressive sequence of pitches +msgid "pitch staircase" msgstr "" -#: js/musicutils.js:767 -#: js/synthutils.js:153 -#.TRANS: musical instrument -msgid "japanese bell" +#: js/blocks/WidgetBlocks.js:1222 +msgid "The Rhythm Maker block opens a tool to create drum machines." msgstr "" -#: js/musicutils.js:768 -#: js/synthutils.js:149 -#.TRANS: musical instrument -msgid "triangle bell" +#: js/blocks/WidgetBlocks.js:1291 +msgid "G major scale" msgstr "" -#: js/musicutils.js:769 -#: js/synthutils.js:151 -#.TRANS: musical instrument -msgid "finger cymbals" +#: js/blocks/WidgetBlocks.js:1326 +msgid "C major scale" msgstr "" -#: js/musicutils.js:770 -#: js/synthutils.js:155 -#.TRANS: a musically tuned set of bells -msgid "chime" +#: js/blocks/WidgetBlocks.js:1366 +msgid "The Phrase Maker block opens a tool to create musical phrases." msgstr "" -#: js/musicutils.js:771 -#: js/synthutils.js:157 -#.TRANS: a musical instrument -msgid "gong" +#: js/blocks/WidgetBlocks.js:1373 +#.TRANS: assigns pitch to a sequence of beats to generate a melody +msgid "phrase maker" msgstr "" -#: js/musicutils.js:772 -#: js/synthutils.js:159 -#.TRANS: sound effect -msgid "clang" +#: js/blocks/WidgetBlocks.js:1444 +msgid "You must have at least one pitch block and one rhythm block in the matrix." msgstr "" -#: js/musicutils.js:773 -#: js/synthutils.js:161 -#.TRANS: sound effect -msgid "crash" +#: js/blocks/WidgetBlocks.js:1503 +msgid "The Status block opens a tool for inspecting the status of Music Blocks as it is running." msgstr "" -#: js/musicutils.js:774 -#: js/synthutils.js:163 -#.TRANS: sound effect -msgid "bottle" +#: js/blocks/WidgetBlocks.js:1580 +#.TRANS: AI-generated music +msgid "aimusic" msgstr "" -#: js/musicutils.js:775 -#: js/synthutils.js:165 -#.TRANS: sound effect -msgid "clap" +#: js/turtleactions/MeterActions.js:101 +#: js/turtleactions/MeterActions.js:139 +msgid "beats per minute must be greater than" msgstr "" -#: js/musicutils.js:776 -#: js/synthutils.js:167 -#.TRANS: sound effect -msgid "slap" +#: js/turtleactions/MeterActions.js:111 +#: js/turtleactions/MeterActions.js:149 +msgid "maximum" msgstr "" -#: js/musicutils.js:777 -#: js/synthutils.js:169 -#.TRANS: sound effect -msgid "splash" +#: js/turtleactions/MeterActions.js:117 +#: js/turtleactions/MeterActions.js:155 +msgid "beats per minute is" msgstr "" -#: js/musicutils.js:778 -#: js/synthutils.js:171 -#.TRANS: sound effect -msgid "bubbles" +#: js/turtleactions/DictActions.js:75 +#: js/turtleactions/DictActions.js:142 +#: js/turtleactions/DictActions.js:172 +msgid "font" msgstr "" -#: js/musicutils.js:779 -#: js/synthutils.js:173 -#.TRANS: sound effect -msgid "raindrop" +#: js/turtleactions/DictActions.js:255 +msgid "Dictionary with this name does not exist" msgstr "" -#: js/musicutils.js:780 -#: js/synthutils.js:175 -#.TRANS: animal sound effect -msgid "cat" +#: js/turtleactions/DictActions.js:259 +msgid "Key with this name does not exist in " msgstr "" -#: js/musicutils.js:781 -#: js/synthutils.js:177 -#.TRANS: animal sound effect -msgid "cricket" +#: js/turtleactions/DrumActions.js:227 +msgid "Noise Block: Did you mean to use a Note block?" msgstr "" -#: js/musicutils.js:782 -#: js/synthutils.js:179 -#.TRANS: animal sound effect -msgid "dog" +#: js/turtleactions/IntervalsActions.js:113 +msgid "one" msgstr "" -#: js/musicutils.js:784 -#: js/synthutils.js:86 -#.TRANS: musical instrument -msgid "banjo" +#: js/turtleactions/IntervalsActions.js:113 +msgid "two" msgstr "" -#: js/musicutils.js:785 -#: js/synthutils.js:88 -#.TRANS: musical instrument -msgid "koto" +#: js/turtleactions/IntervalsActions.js:113 +msgid "three" msgstr "" -#: js/musicutils.js:786 -#: js/synthutils.js:90 -#.TRANS: musical instrument -msgid "dulcimer" +#: js/turtleactions/IntervalsActions.js:113 +msgid "four" msgstr "" -#: js/musicutils.js:787 -#: js/synthutils.js:92 -#.TRANS: musical instrument -msgid "electric guitar" +#: js/turtleactions/IntervalsActions.js:113 +msgid "five" msgstr "" -#: js/musicutils.js:788 -#: js/synthutils.js:94 -#.TRANS: musical instrument -msgid "bassoon" +#: js/turtleactions/IntervalsActions.js:113 +msgid "six" msgstr "" -#: js/musicutils.js:789 -#: js/synthutils.js:96 -#.TRANS: musical instrument -msgid "celeste" +#: js/turtleactions/IntervalsActions.js:113 +msgid "seven" msgstr "" -#: js/musicutils.js:791 -#: js/musicutils.js:1123 -#: js/musicutils.js:1131 -#: js/temperament.js:650 -#.TRANS: musical temperament -msgid "equal" +#: js/turtleactions/IntervalsActions.js:113 +msgid "eight" msgstr "" -#: js/musicutils.js:793 -#: js/musicutils.js:1125 -#: js/musicutils.js:1133 -#.TRANS: musical temperament -msgid "Pythagorean" +#: js/turtleactions/IntervalsActions.js:113 +msgid "nine" msgstr "" -#: js/musicutils.js:795 -#: js/musicutils.js:1124 -#: js/musicutils.js:1132 -#.TRANS: musical temperament -msgid "just intonation" +#: js/turtleactions/IntervalsActions.js:119 +msgid "a" msgstr "" -#: js/musicutils.js:797 -#: js/musicutils.js:1126 -#: js/musicutils.js:1127 -#: js/musicutils.js:1134 -#: js/musicutils.js:1135 -#.TRANS: musical temperament -msgid "meantone" +#: js/turtleactions/IntervalsActions.js:120 +msgid "below" msgstr "" -#: js/musicutils.js:814 -msgid "major 7th" +#: js/turtleactions/IntervalsActions.js:124 +msgid "above" msgstr "" -#: js/musicutils.js:815 -msgid "minor 7th" +#: js/turtleactions/IntervalsActions.js:131 +msgid "plus" msgstr "" -#: js/musicutils.js:816 -msgid "dominant 7th" +#: js/turtleactions/IntervalsActions.js:139 +msgid " below" msgstr "" -#: js/musicutils.js:817 -msgid "minor-major 7th" +#: js/turtleactions/IntervalsActions.js:257 +msgid "Adding missing pitch number 0." msgstr "" -#: js/musicutils.js:818 -msgid "fully-diminished 7th" +#: js/turtleactions/IntervalsActions.js:265 +msgid "Ignoring pitch numbers less than zero or greater than eleven." msgstr "" -#: js/musicutils.js:819 -msgid "half-diminished 7th" +#: js/turtleactions/IntervalsActions.js:271 +msgid "Ignoring duplicate pitch numbers." msgstr "" -#: js/musicutils.js:4379 -#: js/musicutils.js:4416 -msgid "current" +#: js/turtleactions/ToneActions.js:134 +msgid "Vibrato intensity must be between 1 and 100." msgstr "" -#: js/musicutils.js:4382 -#: js/musicutils.js:4407 -msgid "next" +#: js/turtleactions/ToneActions.js:139 +msgid "Vibrato rate must be greater than 0." msgstr "" -#: js/musicutils.js:4385 -#: js/musicutils.js:4412 -msgid "previous" +#: js/turtleactions/ToneActions.js:192 +#: js/turtleactions/ToneActions.js:265 +#.TRANS: Depth is the intesity of the tremolo or chorus effect. +msgid "Depth is out of range." msgstr "" -#: js/synthutils.js:104 -#.TRANS: simple monotone synthesizer -msgid "simple-2" +#: js/turtleactions/ToneActions.js:301 +msgid "Distortion must be from 0 to 100." msgstr "" -#: js/synthutils.js:106 -#.TRANS: simple monotone synthesizer -msgid "simple-3" +#: js/turtleactions/ToneActions.js:332 +#.TRANS: partials components in a harmonic series +msgid "Partial must be greater than or equal to 0." msgstr "" -#: js/synthutils.js:108 -#.TRANS: simple monotone synthesizer -msgid "simple-4" +#: js/turtleactions/ToneActions.js:378 +#: js/turtleactions/ToneActions.js:417 +#: js/turtleactions/ToneActions.js:456 +#: js/widgets/timbre.js:782 +msgid "Unable to use synth due to existing oscillator" msgstr "" -#: js/synthutils.js:141 -#.TRANS: musical instrument -msgid "taiko" +#: js/turtleactions/ToneActions.js:388 +#: js/turtleactions/ToneActions.js:427 +msgid "The input cannot be negative." msgstr "" -#: js/modewidget.js:86 -#: js/modewidget.js:88 -#: js/modewidget.js:642 -#: js/modewidget.js:644 -#: js/modewidget.js:712 -#: js/modewidget.js:714 -#: js/temperament.js:2078 -#: js/rhythmruler.js:189 -#: js/rhythmruler.js:1410 -#: js/rhythmruler.js:1412 -#: js/rhythmruler.js:1435 -#: js/rhythmruler.js:1437 -#: js/meterwidget.js:89 -#: js/meterwidget.js:91 +#: js/widgets/modewidget.js:86 +#: js/widgets/modewidget.js:88 +#: js/widgets/modewidget.js:642 +#: js/widgets/modewidget.js:644 +#: js/widgets/modewidget.js:712 +#: js/widgets/modewidget.js:714 +#: js/widgets/meterwidget.js:194 +#: js/widgets/meterwidget.js:196 +#: js/widgets/temperament.js:2236 +#: js/widgets/rhythmruler.js:457 +#: js/widgets/rhythmruler.js:1790 +#: js/widgets/rhythmruler.js:1792 +#: js/widgets/rhythmruler.js:1816 +#: js/widgets/rhythmruler.js:1818 msgid "Play all" msgstr "" -#: js/modewidget.js:115 -#: js/pitchstaircase.js:641 -#: js/phrasemaker.js:339 -#: js/pitchdrummatrix.js:94 -#: js/pitchslider.js:125 -#: js/temperament.js:2083 -#: js/musickeyboard.js:530 -#: js/timbre.js:756 -#: js/meterwidget.js:124 -#: js/arpeggio.js:103 +#: js/widgets/modewidget.js:115 +#: js/widgets/meterwidget.js:229 +#: js/widgets/pitchdrummatrix.js:166 +#: js/widgets/pitchslider.js:125 +#: js/widgets/pitchstaircase.js:641 +#: js/widgets/temperament.js:2244 +#: js/widgets/timbre.js:756 +#: js/widgets/arpeggio.js:103 +#: js/widgets/musickeyboard.js:688 +#: js/widgets/phrasemaker.js:550 msgid "Save" msgstr "" -#: js/modewidget.js:121 -#: js/pitchstaircase.js:686 -#: js/phrasemaker.js:356 -#: js/pitchdrummatrix.js:109 -#: js/musickeyboard.js:534 -#: js/rhythmruler.js:269 -#: js/arpeggio.js:118 +#: js/widgets/modewidget.js:121 +#: js/widgets/pitchdrummatrix.js:181 +#: js/widgets/pitchstaircase.js:686 +#: js/widgets/arpeggio.js:118 +#: js/widgets/musickeyboard.js:696 +#: js/widgets/phrasemaker.js:567 +#: js/widgets/rhythmruler.js:601 #.TRANS: clear all subdivisions from the ruler. msgid "Clear" msgstr "" -#: js/modewidget.js:127 +#: js/widgets/modewidget.js:127 msgid "Rotate counter clockwise" msgstr "" -#: js/modewidget.js:133 +#: js/widgets/modewidget.js:133 msgid "Rotate clockwise" msgstr "" -#: js/modewidget.js:139 +#: js/widgets/modewidget.js:139 msgid "Invert" msgstr "" -#: js/modewidget.js:145 -#: js/pitchstaircase.js:678 -#: js/rhythmruler.js:258 -#: js/timbre.js:963 +#: js/widgets/modewidget.js:145 +#: js/widgets/pitchstaircase.js:678 +#: js/widgets/timbre.js:963 +#: js/widgets/rhythmruler.js:578 msgid "Undo" msgstr "" -#: js/modewidget.js:163 +#: js/widgets/modewidget.js:163 #.TRANS: A circle of notes represents the musical mode. msgid "Click in the circle to select notes for the mode." msgstr "" -#: js/modewidget.js:1017 -#: js/pitchstaircase.js:580 -#: js/phrasemaker.js:4855 -#: js/temperament.js:1754 -#: js/rhythmruler.js:1865 -#: js/rhythmruler.js:2081 -#: js/tempo.js:414 +#: js/widgets/modewidget.js:1017 +#: js/widgets/pitchstaircase.js:580 +#: js/widgets/temperament.js:1929 +#: js/widgets/tempo.js:414 +#: js/widgets/phrasemaker.js:5356 +#: js/widgets/rhythmruler.js:2254 +#: js/widgets/rhythmruler.js:2472 msgid "New action block generated!" msgstr "" -#: js/oscilloscope.js:79 -msgid "Zoom In" -msgstr "" - -#: js/oscilloscope.js:88 -msgid "Zoom Out" -msgstr "" - -#: js/pitchstaircase.js:624 -msgid "Play chord" -msgstr "" - -#: js/pitchstaircase.js:632 -msgid "Play scale" +#: js/widgets/meterwidget.js:275 +msgid "Reset" msgstr "" -#: js/pitchstaircase.js:696 -msgid "Click on a note to create a new step." +#: js/widgets/meterwidget.js:301 +msgid "Click in the circle to select strong beats for the meter." msgstr "" -#: js/phrasemaker.js:363 -msgid "Export" +#: js/widgets/oscilloscope.js:79 +msgid "Zoom In" msgstr "" -#: js/phrasemaker.js:370 -msgid "Sort" +#: js/widgets/oscilloscope.js:88 +msgid "Zoom Out" msgstr "" -#: js/phrasemaker.js:373 -#: js/musickeyboard.js:559 -msgid "Add note" +#: js/widgets/pitchdrummatrix.js:356 +#: js/widgets/pitchdrummatrix.js:752 +msgid "Click in the grid to map notes to drums." msgstr "" -#: js/phrasemaker.js:764 -msgid "Click on the table to add notes." +#: js/widgets/pitchslider.js:103 +msgid "Move up" msgstr "" -#: js/phrasemaker.js:2414 -#: js/phrasemaker.js:2543 -msgid "tuplet value" +#: js/widgets/pitchslider.js:114 +msgid "Move down" msgstr "" -#: js/pitchdrummatrix.js:270 -#: js/pitchdrummatrix.js:639 -msgid "Click in the grid to map notes to drums." +#: js/widgets/pitchslider.js:136 +msgid "Click on the slider to create a note block." msgstr "" -#: js/pitchslider.js:103 -msgid "Move up" +#: js/widgets/pitchstaircase.js:624 +msgid "Play chord" msgstr "" -#: js/pitchslider.js:114 -msgid "Move down" +#: js/widgets/pitchstaircase.js:632 +msgid "Play scale" msgstr "" -#: js/pitchslider.js:136 -msgid "Click on the slider to create a note block." +#: js/widgets/pitchstaircase.js:696 +msgid "Click on a note to create a new step." msgstr "" -#: js/temperament.js:215 +#: js/widgets/temperament.js:321 msgid "back to 2:1 octave space" msgstr "" -#: js/temperament.js:323 +#: js/widgets/temperament.js:447 msgid "edit" msgstr "" -#: js/temperament.js:330 -#: js/temperament.js:332 -#: js/temperament.js:1336 -#: js/temperament.js:1338 +#: js/widgets/temperament.js:454 +#: js/widgets/temperament.js:456 +#: js/widgets/temperament.js:1493 +#: js/widgets/temperament.js:1495 msgid "close" msgstr "" -#: js/temperament.js:423 -#: js/temperament.js:736 -#: js/temperament.js:743 -#: js/temperament.js:845 -#: js/temperament.js:935 -#: js/temperament.js:942 -#: js/temperament.js:1015 -#: js/temperament.js:1284 -#: js/temperament.js:1354 -#: js/temperament.js:1430 +#: js/widgets/temperament.js:552 +#: js/widgets/temperament.js:877 +#: js/widgets/temperament.js:884 +#: js/widgets/temperament.js:986 +#: js/widgets/temperament.js:1080 +#: js/widgets/temperament.js:1087 +#: js/widgets/temperament.js:1160 +#: js/widgets/temperament.js:1433 +#: js/widgets/temperament.js:1511 +#: js/widgets/temperament.js:1596 msgid "done" msgstr "" -#: js/temperament.js:477 -#: js/temperament.js:482 -#: js/temperament.js:918 +#: js/widgets/temperament.js:610 +#: js/widgets/temperament.js:615 +#: js/widgets/temperament.js:1063 msgid "ratio" msgstr "" -#: js/temperament.js:483 +#: js/widgets/temperament.js:616 msgid "interval" msgstr "" -#: js/temperament.js:611 +#: js/widgets/temperament.js:744 msgid "non scalar" msgstr "" -#: js/temperament.js:650 +#: js/widgets/temperament.js:787 msgid "ratios" msgstr "" -#: js/temperament.js:650 +#: js/widgets/temperament.js:787 msgid "arbitrary" msgstr "" -#: js/temperament.js:719 +#: js/widgets/temperament.js:860 msgid "number of divisions" msgstr "" -#: js/temperament.js:741 -#: js/temperament.js:858 -#: js/temperament.js:940 -#: js/temperament.js:1033 +#: js/widgets/temperament.js:882 +#: js/widgets/temperament.js:999 +#: js/widgets/temperament.js:1085 +#: js/widgets/temperament.js:1178 msgid "preview" msgstr "" -#: js/temperament.js:788 +#: js/widgets/temperament.js:929 msgid "The Number of divisions is too large." msgstr "" -#: js/temperament.js:921 +#: js/widgets/temperament.js:1066 msgid "recursion" msgstr "" -#: js/temperament.js:1450 +#: js/widgets/temperament.js:1616 msgid "The octave ratio has changed. This changes temperament significantly." msgstr "" -#: js/temperament.js:2087 +#: js/widgets/temperament.js:2248 msgid "Table" msgstr "" -#: js/temperament.js:2185 +#: js/widgets/temperament.js:2356 msgid "Add pitches" msgstr "" -#: js/musickeyboard.js:570 -msgid "Metronome" +#: js/widgets/tempo.js:78 +#: js/widgets/tempo.js:97 +#: js/widgets/tempo.js:99 +#: js/widgets/aiwidget.js:134 +#: js/widgets/aiwidget.js:136 +#: js/widgets/rhythmruler.js:681 +#: js/widgets/rhythmruler.js:683 +#: js/widgets/rhythmruler.js:1864 +#: js/widgets/rhythmruler.js:1866 +#: js/widgets/sampler.js:180 +#: js/widgets/sampler.js:182 +msgid "Pause" msgstr "" -#: js/musickeyboard.js:1296 -#: plugins/rodi.rtp:193 -msgid "duration" +#: js/widgets/tempo.js:113 +msgid "Save tempo" msgstr "" -#: js/musickeyboard.js:2840 -msgid "New action blocks generated!" +#: js/widgets/tempo.js:144 +msgid "speed up" msgstr "" -#: js/musickeyboard.js:2841 -msgid "New action block generated" +#: js/widgets/tempo.js:150 +msgid "slow down" msgstr "" -#: js/musickeyboard.js:2984 -#: js/musickeyboard.js:2992 -msgid "MIDI device present." +#: js/widgets/tempo.js:194 +msgid "Adjust the tempo with the buttons." msgstr "" -#: js/musickeyboard.js:2995 -msgid "No MIDI device found." +#: js/widgets/tempo.js:261 +msgid "Please enter a number between 30 and 1000" msgstr "" -#: js/musickeyboard.js:3000 -msgid "Failed to get MIDI access in browser." +#: js/widgets/tempo.js:268 +#: js/widgets/tempo.js:271 +msgid "The beats per minute must be between 30 and 1000." msgstr "" -#: js/rhythmruler.js:202 -msgid "Save rhythms" +#: js/widgets/tempo.js:287 +msgid "The beats per minute must be below 1000." msgstr "" -#: js/rhythmruler.js:222 -msgid "Save drum machine" +#: js/widgets/tempo.js:303 +msgid "The beats per minute must be above 30" msgstr "" -#: js/rhythmruler.js:263 -#.TRANS: user can tap out a rhythm by clicking on a ruler. -msgid "Tap a rhythm" +#: js/widgets/timbre.js:766 +msgid "Synthesizer" msgstr "" -#: js/rhythmruler.js:342 -#: js/rhythmruler.js:344 -#: js/rhythmruler.js:1481 -#: js/rhythmruler.js:1483 -#: js/sampler.js:110 -#: js/sampler.js:112 -#: js/tempo.js:78 -#: js/tempo.js:97 -#: js/tempo.js:99 -msgid "Pause" +#: js/widgets/timbre.js:789 +msgid "Oscillator" msgstr "" -#: js/rhythmruler.js:478 -msgid "Click on the ruler to divide it." +#: js/widgets/timbre.js:840 +msgid "Envelope" msgstr "" -#: js/rhythmruler.js:603 -#: js/rhythmruler.js:605 -#: js/rhythmruler.js:804 -#: js/rhythmruler.js:806 -#: js/rhythmruler.js:1386 -#: js/rhythmruler.js:1388 -msgid "tap a rhythm" +#: js/widgets/timbre.js:886 +#: planet/js/GlobalTag.js:50 +#.TRANS: On the Planet, we use labels to tag projects. +msgid "Effects" msgstr "" -#: js/rhythmruler.js:1084 -msgid "Maximum value of 256 has been exceeded." +#: js/widgets/timbre.js:904 +msgid "Filter" msgstr "" -#: js/sampler.js:137 -msgid "Warning: Sample is bigger than 1MB." +#: js/widgets/timbre.js:946 +msgid "Add filter" msgstr "" -#: js/sampler.js:142 -msgid "Upload failed: Sample is not a .wav file." +#: js/widgets/timbre.js:987 +msgid "Click on buttons to open the timbre design tools." msgstr "" -#: js/sampler.js:164 -msgid "A new sample block was generated." +#: js/widgets/timbre.js:1273 +msgid "harmonicity" msgstr "" -#: js/sampler.js:255 -msgid "Upload sample" +#: js/widgets/timbre.js:1340 +#: js/widgets/timbre.js:1406 +msgid "modulation index" msgstr "" -#: js/sampler.js:306 -msgid "Save sample" +#: js/widgets/timbre.js:1484 +msgid "vibrato amount" msgstr "" -#: js/sampler.js:697 -#.TRANS: The reference tone is a sound used for comparison. -msgid "reference tone" +#: js/widgets/timbre.js:1919 +msgid "Filter already present." msgstr "" -#: js/tempo.js:113 -msgid "Save tempo" +#: js/widgets/timbre.js:2322 +msgid "delay (MS)" msgstr "" -#: js/tempo.js:144 -msgid "speed up" +#: js/widgets/timbre.js:2507 +msgid "distortion amount" msgstr "" -#: js/tempo.js:150 -msgid "slow down" +#: js/widgets/aiwidget.js:180 +#: js/widgets/sampler.js:227 +msgid "Warning: Sample is bigger than 1MB." msgstr "" -#: js/tempo.js:194 -msgid "Adjust the tempo with the buttons." +#: js/widgets/aiwidget.js:539 +msgid "New start block generated" msgstr "" -#: js/tempo.js:261 -msgid "Please enter a number between 30 and 1000" +#: js/widgets/aiwidget.js:541 +msgid "MIDI loading. This may take some time depending upon the number of notes in the track" msgstr "" -#: js/tempo.js:268 -#: js/tempo.js:271 -msgid "The beats per minute must be between 30 and 1000." +#: js/widgets/aiwidget.js:551 +#: js/widgets/sampler.js:254 +msgid "Upload failed: Sample is not a .wav file." msgstr "" -#: js/tempo.js:287 -msgid "The beats per minute must be below 1000." +#: js/widgets/aiwidget.js:679 +#: js/widgets/sampler.js:432 +msgid "Save sample" msgstr "" -#: js/tempo.js:303 -msgid "The beats per minute must be above 30" +#: js/widgets/aiwidget.js:701 +msgid "AI Music" msgstr "" -#: js/timbre.js:766 -msgid "Synthesizer" +#: js/widgets/arpeggio.js:239 +msgid "Click in the grid to add steps to the arpeggio." msgstr "" -#: js/timbre.js:789 -msgid "Oscillator" +#: js/widgets/help.js:95 +#: js/widgets/help.js:125 +#: js/widgets/help.js:146 +#: js/widgets/help.js:158 +#: js/widgets/help.js:376 +#: js/widgets/help.js:391 +msgid "Take a tour" msgstr "" -#: js/timbre.js:840 -msgid "Envelope" +#: js/widgets/musickeyboard.js:725 +#: js/widgets/phrasemaker.js:584 +msgid "Add note" msgstr "" -#: js/timbre.js:886 -#: js/GlobalTag.js:50 -#.TRANS: On the Planet, we use labels to tag projects. -msgid "Effects" +#: js/widgets/musickeyboard.js:744 +msgid "Metronome" +msgstr "" + +#: js/widgets/musickeyboard.js:1549 +#: plugins/rodi.rtp:193 +msgid "duration" +msgstr "" + +#: js/widgets/musickeyboard.js:3179 +msgid "New action blocks generated" +msgstr "" + +#: js/widgets/musickeyboard.js:3180 +msgid "New action block generated" msgstr "" -#: js/timbre.js:904 -msgid "Filter" +#: js/widgets/musickeyboard.js:3365 +#: js/widgets/musickeyboard.js:3373 +msgid "MIDI device present." msgstr "" -#: js/timbre.js:946 -msgid "Add filter" +#: js/widgets/musickeyboard.js:3376 +msgid "No MIDI device found." msgstr "" -#: js/timbre.js:987 -msgid "Click on buttons to open the timbre design tools." +#: js/widgets/musickeyboard.js:3386 +msgid "Failed to get MIDI access in browser." msgstr "" -#: js/timbre.js:1273 -msgid "harmonicity" +#: js/widgets/phrasemaker.js:574 +msgid "Export" msgstr "" -#: js/timbre.js:1340 -#: js/timbre.js:1406 -msgid "modulation index" +#: js/widgets/phrasemaker.js:581 +msgid "Sort" msgstr "" -#: js/timbre.js:1484 -msgid "vibrato amount" +#: js/widgets/phrasemaker.js:975 +msgid "Click on the table to add notes." msgstr "" -#: js/timbre.js:1919 -msgid "Filter already present." +#: js/widgets/phrasemaker.js:2677 +#: js/widgets/phrasemaker.js:2819 +msgid "tuplet value" msgstr "" -#: js/timbre.js:2322 -msgid "delay (MS)" +#: js/widgets/rhythmruler.js:486 +msgid "Save rhythms" msgstr "" -#: js/timbre.js:2507 -msgid "distortion amount" +#: js/widgets/rhythmruler.js:512 +msgid "Save drum machine" msgstr "" -#: js/meterwidget.js:170 -msgid "Reset" +#: js/widgets/rhythmruler.js:589 +#.TRANS: user can tap out a rhythm by clicking on a ruler. +msgid "Tap a rhythm" msgstr "" -#: js/meterwidget.js:196 -msgid "Click in the circle to select strong beats for the meter." +#: js/widgets/rhythmruler.js:817 +msgid "Click on the ruler to divide it." msgstr "" -#: js/arpeggio.js:239 -msgid "Click in the grid to add steps to the arpeggio." +#: js/widgets/rhythmruler.js:950 +#: js/widgets/rhythmruler.js:952 +#: js/widgets/rhythmruler.js:1152 +#: js/widgets/rhythmruler.js:1154 +#: js/widgets/rhythmruler.js:1765 +#: js/widgets/rhythmruler.js:1767 +msgid "tap a rhythm" msgstr "" -#: js/ProjectStorage.js:243 -msgid "anonymous" +#: js/widgets/rhythmruler.js:1459 +msgid "Maximum value of 256 has been exceeded." msgstr "" -#: js/GlobalCard.js:68 -msgid "Share" +#: js/widgets/sampler.js:237 +msgid "Recording started..." msgstr "" -#: js/GlobalCard.js:74 -msgid "Flags" +#: js/widgets/sampler.js:245 +msgid "Recording complete..." msgstr "" -#: js/LocalCard.js:36 -msgid "View published project" +#: js/widgets/sampler.js:283 +msgid "A new sample block was generated." msgstr "" -#: js/LocalCard.js:42 -msgid "Publish project" +#: js/widgets/sampler.js:378 +msgid "Upload sample" msgstr "" -#: js/LocalCard.js:51 -msgid "Edit project" +#: js/widgets/sampler.js:399 +msgid "Warning: Your sample cannot be loaded because it is >1MB." msgstr "" -#: js/LocalCard.js:52 -msgid "Delete project" +#: js/widgets/sampler.js:448 +msgid "Toggle Mic" msgstr "" -#: js/LocalCard.js:53 -msgid "Download project" +#: js/widgets/sampler.js:458 +msgid "Playback" msgstr "" -#: js/LocalCard.js:55 -msgid "Duplicate project" +#: js/widgets/sampler.js:979 +#.TRANS: The reference tone is a sound used for comparison. +msgid "reference tone" msgstr "" -#: js/GlobalTag.js:28 +#: planet/js/GlobalTag.js:28 #.TRANS: On the Planet, we use labels to tag projects. msgid "All Projects" msgstr "" -#: js/GlobalTag.js:30 -#: js/StringHelper.js:37 +#: planet/js/GlobalTag.js:30 +#: planet/js/StringHelper.js:37 #.TRANS: On the Planet, we use labels to tag projects. msgid "My Projects" msgstr "" -#: js/GlobalTag.js:32 +#: planet/js/GlobalTag.js:32 #.TRANS: On the Planet, we use labels to tag projects. msgid "Examples" msgstr "" -#: js/GlobalTag.js:34 +#: planet/js/GlobalTag.js:34 #.TRANS: On the Planet, we use labels to tag projects. msgid "Music" msgstr "" -#: js/GlobalTag.js:36 +#: planet/js/GlobalTag.js:36 #.TRANS: On the Planet, we use labels to tag projects. msgid "Art" msgstr "" -#: js/GlobalTag.js:38 +#: planet/js/GlobalTag.js:38 #.TRANS: On the Planet, we use labels to tag projects. msgid "Math" msgstr "" -#: js/GlobalTag.js:40 +#: planet/js/GlobalTag.js:40 #.TRANS: On the Planet, we use labels to tag projects. msgid "Interactive" msgstr "" -#: js/GlobalTag.js:42 +#: planet/js/GlobalTag.js:42 #.TRANS: On the Planet, we use labels to tag projects. msgid "Design" msgstr "" -#: js/GlobalTag.js:44 +#: planet/js/GlobalTag.js:44 #.TRANS: On the Planet, we use labels to tag projects. msgid "Game" msgstr "" -#: js/GlobalTag.js:46 +#: planet/js/GlobalTag.js:46 #.TRANS: On the Planet, we use labels to tag projects. msgid "Media" msgstr "" -#: js/GlobalTag.js:48 +#: planet/js/GlobalTag.js:48 #.TRANS: On the Planet, we use labels to tag projects. msgid "Sensors" msgstr "" -#: js/GlobalTag.js:52 +#: planet/js/GlobalTag.js:52 #.TRANS: On the Planet, we use labels to tag projects. msgid "Code Snippet" msgstr "" -#: js/helper.js:149 -#: js/StringHelper.js:49 -msgid "Show more tags" +#: planet/js/LocalCard.js:36 +msgid "View published project" msgstr "" -#: js/helper.js:150 -msgid "Show fewer tags" +#: planet/js/LocalCard.js:42 +msgid "Publish project" +msgstr "" + +#: planet/js/LocalCard.js:51 +msgid "Edit project" +msgstr "" + +#: planet/js/LocalCard.js:52 +msgid "Delete project" +msgstr "" + +#: planet/js/LocalCard.js:53 +msgid "Download project" +msgstr "" + +#: planet/js/LocalCard.js:55 +msgid "Duplicate project" +msgstr "" + +#: planet/js/ProjectStorage.js:243 +msgid "anonymous" +msgstr "" + +#: planet/js/SaveInterface.js:34 +msgid "Open in Music Blocks" +msgstr "" + +#: planet/js/SaveInterface.js:35 +msgid "Open in Turtle Blocks" +msgstr "" + +#: planet/js/GlobalCard.js:68 +msgid "Share" +msgstr "" + +#: planet/js/GlobalCard.js:74 +msgid "Flags" +msgstr "" + +#: planet/js/GlobalPlanet.js:35 +msgid "No results found." +msgstr "" + +#: planet/js/GlobalPlanet.js:51 +msgid "Remix of" +msgstr "" + +#: planet/js/GlobalPlanet.js:509 +msgid "Cannot connect to server" msgstr "" -#: js/ProjectViewer.js:30 +#: planet/js/ProjectViewer.js:30 msgid "Error: Report could not be submitted. Try again later." msgstr "" -#: js/ProjectViewer.js:31 +#: planet/js/ProjectViewer.js:31 msgid "Thank you for reporting this project. A moderator will review the project shortly, to verify violation of the Sugar Labs Code of Conduct." msgstr "" -#: js/ProjectViewer.js:32 -#: js/StringHelper.js:62 -#: js/StringHelper.js:64 -#: js/StringHelper.js:68 +#: planet/js/ProjectViewer.js:32 +#: planet/js/StringHelper.js:62 +#: planet/js/StringHelper.js:64 +#: planet/js/StringHelper.js:68 msgid "Report Project" msgstr "" -#: js/ProjectViewer.js:33 -#: js/StringHelper.js:63 +#: planet/js/ProjectViewer.js:33 +#: planet/js/StringHelper.js:63 msgid "Project Reported" msgstr "" -#: js/ProjectViewer.js:34 +#: planet/js/ProjectViewer.js:34 msgid "Report description required" msgstr "" -#: js/ProjectViewer.js:35 +#: planet/js/ProjectViewer.js:35 msgid "Report description too long" msgstr "" -#: js/StringHelper.js:30 +#: planet/js/Publisher.js:30 +msgid "Feature unavailable - cannot connect to server. Reload Music Blocks to try again." +msgstr "" + +#: planet/js/Publisher.js:220 +#: planet/js/Publisher.js:237 +msgid "This field is required" +msgstr "" + +#: planet/js/Publisher.js:227 +msgid "Title too long" +msgstr "" + +#: planet/js/Publisher.js:244 +msgid "Description too long" +msgstr "" + +#: planet/js/Publisher.js:341 +msgid "Server Error" +msgstr "" + +#: planet/js/Publisher.js:341 +msgid "Try Again" +msgstr "" + +#: planet/js/StringHelper.js:30 msgid "Planet" msgstr "" -#: js/StringHelper.js:31 +#: planet/js/StringHelper.js:31 msgid "Close Planet" msgstr "" -#: js/StringHelper.js:32 +#: planet/js/StringHelper.js:32 msgid "Open project from file" msgstr "" -#: js/StringHelper.js:34 +#: planet/js/StringHelper.js:34 msgid "Local" msgstr "" -#: js/StringHelper.js:35 +#: planet/js/StringHelper.js:35 msgid "Global" msgstr "" -#: js/StringHelper.js:36 +#: planet/js/StringHelper.js:36 msgid "Search for a project" msgstr "" -#: js/StringHelper.js:38 +#: planet/js/StringHelper.js:38 msgid "Publish Project" msgstr "" -#: js/StringHelper.js:40 +#: planet/js/StringHelper.js:40 msgid "Tags (max 5)" msgstr "" -#: js/StringHelper.js:41 -#: js/StringHelper.js:61 +#: planet/js/StringHelper.js:41 +#: planet/js/StringHelper.js:61 msgid "Description" msgstr "" -#: js/StringHelper.js:42 -#: js/StringHelper.js:67 +#: planet/js/StringHelper.js:42 +#: planet/js/StringHelper.js:67 msgid "Submit" msgstr "" -#: js/StringHelper.js:43 -#: js/StringHelper.js:47 +#: planet/js/StringHelper.js:43 +#: planet/js/StringHelper.js:47 msgid "Cancel" msgstr "" -#: js/StringHelper.js:44 +#: planet/js/StringHelper.js:44 msgid "Delete \\"\\"?" msgstr "" -#: js/StringHelper.js:45 +#: planet/js/StringHelper.js:45 msgid "Permanently delete project \\"\\"?" msgstr "" -#: js/StringHelper.js:48 +#: planet/js/StringHelper.js:48 msgid "Explore Projects" msgstr "" -#: js/StringHelper.js:50 +#: planet/js/StringHelper.js:49 +#: planet/js/helper.js:149 +msgid "Show more tags" +msgstr "" + +#: planet/js/StringHelper.js:50 msgid "Most recent" msgstr "" -#: js/StringHelper.js:51 +#: planet/js/StringHelper.js:51 msgid "Most liked" msgstr "" -#: js/StringHelper.js:52 +#: planet/js/StringHelper.js:52 msgid "Most downloaded" msgstr "" -#: js/StringHelper.js:53 +#: planet/js/StringHelper.js:53 msgid "A-Z" msgstr "" -#: js/StringHelper.js:54 +#: planet/js/StringHelper.js:54 msgid "Sort by" msgstr "" -#: js/StringHelper.js:55 +#: planet/js/StringHelper.js:55 msgid "Load More Projects" msgstr "" -#: js/StringHelper.js:56 +#: planet/js/StringHelper.js:56 msgid "Last Updated" msgstr "" -#: js/StringHelper.js:57 +#: planet/js/StringHelper.js:57 msgid "Creation Date" msgstr "" -#: js/StringHelper.js:58 +#: planet/js/StringHelper.js:58 msgid "Number of Downloads:" msgstr "" -#: js/StringHelper.js:59 +#: planet/js/StringHelper.js:59 msgid "Number of Likes:" msgstr "" -#: js/StringHelper.js:60 +#: planet/js/StringHelper.js:60 msgid "Tags:" msgstr "" -#: js/StringHelper.js:65 +#: planet/js/StringHelper.js:65 msgid "Report projects which violate the Sugar Labs Code of Conduct." msgstr "" -#: js/StringHelper.js:66 +#: planet/js/StringHelper.js:66 msgid "Reason for reporting project" msgstr "" -#: js/StringHelper.js:70 +#: planet/js/StringHelper.js:70 msgid "Download as File" msgstr "" -#: js/GlobalPlanet.js:35 -msgid "No results found." -msgstr "" - -#: js/GlobalPlanet.js:51 -msgid "Remix of" -msgstr "" - -#: js/GlobalPlanet.js:509 -msgid "Cannot connect to server" -msgstr "" - -#: js/Publisher.js:30 -msgid "Feature unavailable - cannot connect to server. Reload Music Blocks to try again." -msgstr "" - -#: js/Publisher.js:218 -#: js/Publisher.js:235 -msgid "This field is required" -msgstr "" - -#: js/Publisher.js:225 -msgid "Title too long" +#: planet/js/helper.js:150 +msgid "Show fewer tags" msgstr "" -#: js/Publisher.js:242 -msgid "Description too long" +#: plugins/accelerometer.rtp:48 +msgid "motion x" msgstr "" -#: js/Publisher.js:339 -msgid "Server Error" +#: plugins/accelerometer.rtp:56 +msgid "motion y" msgstr "" -#: js/Publisher.js:339 -msgid "Try Again" +#: plugins/accelerometer.rtp:64 +msgid "motion z" msgstr "" -#: js/SaveInterface.js:34 -msgid "Open in Music Blocks" +#: plugins/facebook.rtp:27 +msgid "publish" msgstr "" -#: js/SaveInterface.js:35 -msgid "Open in Turtle Blocks" +#: plugins/maths.rtp:62 +msgid "power" msgstr "" -#: plugins/weather.rtp:68 -#: plugins/weather.rtp:97 -msgid "Days ahead must be in the range of -1 to 5." +#: plugins/maths.rtp:62 +msgid "base" msgstr "" -#: plugins/weather.rtp:122 -msgid "forecast" +#: plugins/maths.rtp:62 +msgid "exp" msgstr "" -#: plugins/weather.rtp:123 -#: plugins/weather.rtp:137 -#: plugins/weather.rtp:150 -msgid "city" +#: plugins/maths.rtp:99 +msgid "floor" msgstr "" -#: plugins/weather.rtp:124 -#: plugins/weather.rtp:138 -#: plugins/weather.rtp:151 -msgid "day" +#: plugins/maths.rtp:104 +msgid "ceiling" msgstr "" -#: plugins/weather.rtp:136 -msgid "high" +#: plugins/maths.rtp:109 +msgid "to degrees" msgstr "" -#: plugins/weather.rtp:149 -msgid "low" +#: plugins/maths.rtp:114 +msgid "to radians" msgstr "" #: plugins/nutrition.rtp:104 @@ -9459,45 +9868,6 @@ msgstr "" msgid "water" msgstr "" -#: plugins/maths.rtp:62 -#: plugins/examples.rtp:93 -msgid "power" -msgstr "" - -#: plugins/maths.rtp:62 -#: plugins/examples.rtp:93 -msgid "base" -msgstr "" - -#: plugins/maths.rtp:62 -#: plugins/examples.rtp:93 -msgid "exp" -msgstr "" - -#: plugins/maths.rtp:99 -#: plugins/examples.rtp:130 -msgid "floor" -msgstr "" - -#: plugins/maths.rtp:104 -#: plugins/examples.rtp:135 -msgid "ceiling" -msgstr "" - -#: plugins/maths.rtp:109 -#: plugins/examples.rtp:140 -msgid "to degrees" -msgstr "" - -#: plugins/maths.rtp:114 -#: plugins/examples.rtp:145 -msgid "to radians" -msgstr "" - -#: plugins/facebook.rtp:27 -msgid "publish" -msgstr "" - #: plugins/rodi.rtp:172 msgid "blink" msgstr "" @@ -9526,18 +9896,66 @@ msgstr "" msgid "move" msgstr "" -#: plugins/accelerometer.rtp:48 -msgid "motion x" +#: plugins/weather.rtp:68 +#: plugins/weather.rtp:97 +msgid "Days ahead must be in the range of -1 to 5." msgstr "" -#: plugins/accelerometer.rtp:56 -msgid "motion y" +#: plugins/weather.rtp:122 +msgid "forecast" msgstr "" -#: plugins/accelerometer.rtp:64 -msgid "motion z" +#: plugins/weather.rtp:123 +#: plugins/weather.rtp:137 +#: plugins/weather.rtp:150 +msgid "city" +msgstr "" + +#: plugins/weather.rtp:124 +#: plugins/weather.rtp:138 +#: plugins/weather.rtp:151 +msgid "day" +msgstr "" + +#: plugins/weather.rtp:136 +msgid "high" +msgstr "" + +#: plugins/weather.rtp:149 +msgid "low" msgstr "" +#: js/toolbar.js:70 + +#: js/toolbar.js:130 + +#: js/toolbar.js:194 + +#: js/toolbar.js:249 + +#~msgid "Toggle JavaScript Editor" +#~msgstr "" + +#: js/EnsembleBlocks.js:643 + +#~msgid "The Turrle pitch block returns the current pitch number being played by the specified turtle." +#~msgstr "" + +#: js/PitchActions.js:88 + +#~msgid "The Scalar Step Block must be used inside of a Note Block." +#~msgstr "" + +#: js/PitchActions.js:107 + +#~msgid "The Scalar Step Block must be preceded by a Pitch Block." +#~msgstr "" + +#: js/musickeyboard.js:2840 + +#~msgid "New action blocks generated!" +#~msgstr "" + #: js/toolbar.js:110 #: js/toolbar.js:204 @@ -9878,11 +10296,6 @@ msgstr "" #~msgid "The Time block returns the number of seconds that the program has been running." #~msgstr "" -#: js/help.js:95 - -#~msgid "Take a tour" -#~msgstr "" - #: js/GlobalCard.js:48 #~msgid "More Details" @@ -12781,11 +13194,6 @@ msgstr "" #~msgid "The save-stack button saves a stack onto a custom palette. It appears after a \"long press\" on a stack." #~msgstr "" -#: js/musicutils.js:254 - -#~msgid "Custom" -#~msgstr "" - #: js/basicblocks.js:4785 #~msgid "Rhythm" diff --git a/po/rw.po b/po/rw.po index 49a7960091..0b7daf79fc 100644 --- a/po/rw.po +++ b/po/rw.po @@ -2129,276 +2129,131 @@ #: js/planetInterface.js:104 #: js/planetInterface.js:104 #: js/planetInterface.js:104 -msgid "project undefined" +#: js/SaveInterface.js:59 +#: js/SaveInterface.js:61 +#: js/SaveInterface.js:93 +msgid "Music Blocks Project" msgstr "" -#: js/logo.js:61 -msgid "Not a valid pitch name" +#: js/SaveInterface.js:63 +msgid "This project was created in Music Blocks" msgstr "" -#: js/logo.js:507 -#: js/ProgramBlocks.js:258 -#: js/ProgramBlocks.js:427 -msgid "You must select a file." +#: js/SaveInterface.js:67 +msgid "Music Blocks is a Free/Libre Software application." msgstr "" -#: js/logo.js:1184 -#: js/turtles.js:118 -#: js/turtle-painter.js:1192 -#: js/turtle-painter.js:1193 -#: js/block.js:1463 -#: js/lilypond.js:757 -#: js/lilypond.js:921 -#: js/lilypond.js:959 -#: js/ActionBlocks.js:1223 -#: js/ProgramBlocks.js:1267 -msgid "start" -msgstr "tangira" - -#: js/logo.js:1696 -msgid "Playback is ready." +#: js/SaveInterface.js:69 +msgid "The source code can be accessed at" msgstr "" -#: js/blocks.js:1011 -#: js/blocks.js:3427 -#: js/blocks.js:3428 -#: js/blocks.js:3653 -#: js/blocks.js:4012 -#: js/blocks.js:4205 -#: js/blocks.js:5343 -#: js/blocks.js:6474 -#: js/palette.js:527 -#: js/palette.js:536 -#: js/palette.js:545 -#: js/palette.js:554 -#: js/palette.js:1131 -#: js/palette.js:1142 -#: js/palette.js:1153 -#: js/palette.js:1164 -#: js/palette.js:1183 -#: js/rubrics.js:529 -#: js/macros.js:170 -#: js/macros.js:266 -#: js/macros.js:267 -#: js/macros.js:276 -#: js/macros.js:828 -#: js/block.js:1449 -#: js/block.js:4164 -#: js/block.js:4182 -#: js/block.js:4193 -#: js/turtledefs.js:128 -#: js/turtledefs.js:230 -#: js/ActionBlocks.js:254 -#: js/ActionBlocks.js:307 -#: js/ActionBlocks.js:617 -#: js/ActionBlocks.js:716 -#: js/ActionBlocks.js:961 -#: js/ActionBlocks.js:1049 -#: js/ActionBlocks.js:1322 -#: js/ActionBlocks.js:1325 -#: js/ActionBlocks.js:1337 -#: js/ActionBlocks.js:1404 -#: js/MeterBlocks.js:715 -#: js/MeterBlocks.js:768 -#: js/MeterBlocks.js:831 -#: js/MeterBlocks.js:892 -#: js/phrasemaker.js:4412 -#: js/musickeyboard.js:2647 -#: js/rhythmruler.js:1928 -#: js/rhythmruler.js:1935 -#: js/rhythmruler.js:2119 -#: js/rhythmruler.js:2126 -msgid "action" -msgstr "igikorwa" - -#: js/blocks.js:1205 -#: js/blocks.js:3380 -#: js/blocks.js:3770 -#: js/blocks.js:3801 -#: js/blocks.js:3850 -#: js/blocks.js:3885 -#: js/blocks.js:6497 -#: js/palette.js:509 -#: js/palette.js:638 -#: js/palette.js:1107 -#: js/BoxesBlocks.js:282 -#: js/BoxesBlocks.js:285 -#: js/BoxesBlocks.js:405 -#: js/BoxesBlocks.js:594 -msgid "box" -msgstr "ikarito" - -#: js/blocks.js:1680 -msgid "Consider breaking this stack into parts." +#: js/SaveInterface.js:72 +msgid "For more information, please consult the" msgstr "" -#: js/blocks.js:2408 -#: js/palette.js:653 -#: js/MediaBlocks.js:602 -msgid "open file" +#: js/SaveInterface.js:76 +#: js/turtledefs.js:795 +msgid "Music Blocks Guide" msgstr "" -#: js/blocks.js:2415 -#: js/blocks.js:2423 -#: js/activity.js:1875 -msgid "audio file" +#: js/SaveInterface.js:83 +msgid "Alternatively, open the file in Music Blocks using the Load project button." msgstr "" -#: js/blocks.js:2536 -#: js/blocks.js:3147 -#: js/block.js:3543 -msgid "on2" +#: js/SaveInterface.js:85 +msgid "Project Code" msgstr "" -#: js/blocks.js:2538 -#: js/blocks.js:3149 -#: js/block.js:3545 -msgid "off" +#: js/SaveInterface.js:87 +msgid "This code stores data about the blocks in a project." msgstr "" -#: js/blocks.js:2543 -#: js/blocks.js:3154 -#: js/palette.js:618 -#: js/block.js:3466 -#: js/BooleanBlocks.js:77 -#: js/BooleanBlocks.js:167 -#: js/BooleanBlocks.js:251 -#: js/BooleanBlocks.js:335 -#: js/BooleanBlocks.js:433 -#: js/BooleanBlocks.js:539 -#: js/BooleanBlocks.js:640 -#: js/BooleanBlocks.js:741 -#: js/BooleanBlocks.js:847 -#: js/BooleanBlocks.js:948 -#: js/BooleanBlocks.js:1033 -#: js/SensorsBlocks.js:910 -msgid "true" +#: js/SaveInterface.js:89 +msgid "Show" msgstr "" -#: js/blocks.js:2545 -#: js/blocks.js:3156 -#: js/block.js:3466 -#: js/BooleanBlocks.js:79 -#: js/BooleanBlocks.js:169 -#: js/BooleanBlocks.js:253 -#: js/BooleanBlocks.js:337 -#: js/BooleanBlocks.js:435 -#: js/BooleanBlocks.js:541 -#: js/BooleanBlocks.js:642 -#: js/BooleanBlocks.js:743 -#: js/BooleanBlocks.js:849 -#: js/BooleanBlocks.js:950 -#: js/SensorsBlocks.js:912 -msgid "false" +#: js/SaveInterface.js:91 +msgid "Hide" msgstr "" -#: js/blocks.js:3183 -#: js/palette.js:574 -#: js/MediaBlocks.js:892 -#: js/MediaBlocks.js:963 -msgid "text" -msgstr "inyandiko" - -#: js/blocks.js:3379 -#: js/palette.js:641 -#: js/palette.js:642 -#: js/BoxesBlocks.js:514 -msgid "store in box" +#: js/SaveInterface.js:131 +#: js/SaveInterface.js:204 +#: js/SaveInterface.js:262 +#: js/SaveInterface.js:389 +#: js/SaveInterface.js:417 +#: js/activity.js:4884 +#: planet/js/ProjectStorage.js:27 +#: planet/js/GlobalPlanet.js:467 +#: planet/js/GlobalPlanet.js:469 +#: planet/js/GlobalPlanet.js:495 +#.TRANS: default project title when saving as Lilypond +msgid "My Project" msgstr "" -#: js/blocks.js:3384 -#: js/blocks.js:3824 -#: js/blocks.js:3859 -#: js/blocks.js:3894 -#: js/blocks.js:5773 -#: js/blocks.js:5794 -#: js/BoxesBlocks.js:772 -msgid "box1" +#: js/SaveInterface.js:197 +#: planet/js/SaveInterface.js:58 +msgid "No description provided" msgstr "" -#: js/blocks.js:3386 -#: js/blocks.js:3826 -#: js/blocks.js:3861 -#: js/blocks.js:3896 -#: js/blocks.js:5775 -#: js/blocks.js:5796 -#: js/BoxesBlocks.js:663 -msgid "box2" +#: js/SaveInterface.js:332 +msgid "Your recording is in progress." msgstr "" -#: js/blocks.js:4058 -#: js/palette.js:639 -#: js/palette.js:644 -#: js/palette.js:1043 -#: js/BoxesBlocks.js:591 -msgid "store in" -msgstr "bika mu" - -#: js/blocks.js:4058 -#: js/EnsembleBlocks.js:391 -#: js/EnsembleBlocks.js:402 -#: js/MediaBlocks.js:746 -#: js/ProgramBlocks.js:390 -#: js/ProgramBlocks.js:495 -#: js/ProgramBlocks.js:658 -#: js/BoxesBlocks.js:595 -#: js/PitchBlocks.js:656 -#: js/PitchBlocks.js:932 -#: js/PitchBlocks.js:1827 -#: js/ToneBlocks.js:1025 -#: js/DictBlocks.js:215 -#: js/DictBlocks.js:289 -msgid "name" +#: js/SaveInterface.js:401 +#.TRANS: File name prompt for save as Lilypond +msgid "File name" msgstr "" -#: js/blocks.js:4058 -#: js/RhythmBlocks.js:1130 -#: js/BoxesBlocks.js:75 -#: js/BoxesBlocks.js:595 -#: js/HeapBlocks.js:544 -#: js/DictBlocks.js:289 -#: js/DictBlocks.js:430 -msgid "value" -msgstr "agaciro" - -#: js/blocks.js:4907 -msgid "There is no block selected." +#: js/SaveInterface.js:403 +#: planet/js/StringHelper.js:39 +#.TRANS: Project title prompt for save as Lilypond +msgid "Project title" msgstr "" -#: js/blocks.js:5002 -#: js/MediaBlocks.js:888 -msgid "show" -msgstr "erekana" - -#: js/blocks.js:5005 -#: js/MediaBlocks.js:803 -#.TRANS: Avatar is the image used to determine the appearance of the mouse. -msgid "avatar" +#: js/SaveInterface.js:405 +#.TRANS: Project title prompt for save as Lilypond +msgid "Project author" msgstr "" -#: js/blocks.js:5008 -#: js/ToneBlocks.js:1010 -#: js/sampler.js:693 -#.TRANS: The sound sample that the user uploads. -msgid "sample" +#: js/SaveInterface.js:407 +#.TRANS: MIDI prompt for save as Lilypond +msgid "Include MIDI output?" msgstr "" -#: js/turtles.js:874 -msgid "Grid" +#: js/SaveInterface.js:409 +#.TRANS: Guitar prompt for save as Lilypond +msgid "Include guitar tablature output?" msgstr "" -#: js/turtles.js:891 -#: js/turtledefs.js:626 -msgid "Clean" -msgstr "Sukura" +#: js/SaveInterface.js:411 +#.TRANS: Lilypond is a scripting language for generating sheet music +msgid "Save as Lilypond" +msgstr "" -#: js/turtles.js:912 -#: js/turtledefs.js:632 -msgid "Collapse" +#: js/SaveInterface.js:426 +#: js/blocks/EnsembleBlocks.js:75 +#: js/blocks/EnsembleBlocks.js:154 +#: js/blocks/EnsembleBlocks.js:216 +#: js/blocks/EnsembleBlocks.js:302 +#: js/blocks/EnsembleBlocks.js:348 +#: js/blocks/EnsembleBlocks.js:389 +#: js/blocks/EnsembleBlocks.js:441 +#: js/blocks/EnsembleBlocks.js:490 +#: js/blocks/EnsembleBlocks.js:536 +#: js/blocks/EnsembleBlocks.js:583 +#: js/blocks/EnsembleBlocks.js:637 +#: js/blocks/EnsembleBlocks.js:753 +#: js/blocks/EnsembleBlocks.js:840 +#: js/blocks/EnsembleBlocks.js:899 +#: js/blocks/EnsembleBlocks.js:942 +#: js/blocks/EnsembleBlocks.js:1212 +#: js/blocks/EnsembleBlocks.js:1280 +#.TRANS: default project author when saving as Lilypond +msgid "Mr. Mouse" msgstr "" -#: js/turtles.js:940 -msgid "Expand" +#: js/SaveInterface.js:573 +msgid "The Lilypond code is copied to clipboard. You can paste it here: " msgstr "" #: js/languagebox.js:198 @@ -2409,6933 +2264,7487 @@ msgstr "" msgid "Music Blocks is already set to this language." msgstr "" -#: js/piemenus.js:200 -#: js/musicutils.js:808 -#: js/musicutils.js:824 -#: js/phrasemaker.js:1672 -#: js/musickeyboard.js:2041 -#: js/sampler.js:544 -#.TRANS: double sharp is a music term related to pitch -msgid "double sharp" +#: js/planetInterface.js:131 +msgid "project undefined" msgstr "" -#: js/piemenus.js:201 -#: js/PitchBlocks.js:1510 -#: js/PitchActions.js:580 -#: js/musicutils.js:806 -#: js/musicutils.js:825 -#: js/phrasemaker.js:1673 -#: js/musickeyboard.js:2042 -#: js/sampler.js:545 -#.TRANS: sharp is a half-step up in pitch -#.TRANS: sharp is a music term related to pitch -msgid "sharp" +#: js/rubrics.js:523 +#: js/turtledefs.js:119 +#: js/turtledefs.js:221 +#: js/blocks/RhythmBlockPaletteBlocks.js:52 +#: js/blocks/RhythmBlockPaletteBlocks.js:234 +#: js/blocks/ProgramBlocks.js:745 +#: js/widgets/rhythmruler.js:2057 +#: js/widgets/rhythmruler.js:2064 +#: js/widgets/rhythmruler.js:2133 +#: js/widgets/rhythmruler.js:2140 +#: js/widgets/rhythmruler.js:2219 +#.TRANS: an arrangement of notes based on duration +msgid "rhythm" msgstr "" -#: js/piemenus.js:202 -#: js/musicutils.js:804 -#: js/musicutils.js:826 -#: js/phrasemaker.js:1674 -#: js/musickeyboard.js:2043 -#: js/sampler.js:546 -#.TRANS: natural is a music term related to pitch -msgid "natural" +#: js/rubrics.js:524 +#: js/turtledefs.js:121 +#: js/turtledefs.js:223 +#: js/block-verbose.js:2622 +#: js/block.js:2550 +#: js/blocks/IntervalsBlocks.js:63 +#: js/blocks/SensorsBlocks.js:178 +#: js/blocks/PitchBlocks.js:1839 +#: js/blocks/PitchBlocks.js:1853 +#: js/widgets/musickeyboard.js:1935 +#: js/widgets/phrasemaker.js:1036 +#.TRANS: pitch number +#.TRANS: pitch number +#.TRANS: we specify pitch in terms of a name and an octave. The name can be CDEFGAB or Do Re Mi Fa Sol La Ti. Octave is a number between 1 and 8. +msgid "pitch" msgstr "" -#: js/piemenus.js:203 -#: js/PitchBlocks.js:1469 -#: js/PitchActions.js:583 -#: js/musicutils.js:802 -#: js/musicutils.js:827 -#: js/phrasemaker.js:1675 -#: js/musickeyboard.js:2044 -#: js/sampler.js:547 -#.TRANS: flat is a half-step down in pitch -#.TRANS: flat is a music term related to pitch -msgid "flat" +#: js/rubrics.js:525 +#: js/turtledefs.js:123 +#: js/turtledefs.js:225 +msgid "tone" msgstr "" -#: js/piemenus.js:204 -#: js/musicutils.js:800 -#: js/musicutils.js:828 -#: js/phrasemaker.js:1676 -#: js/musickeyboard.js:2045 -#: js/sampler.js:548 -#.TRANS: double flat is a music term related to pitch -msgid "double flat" +#: js/rubrics.js:526 +#: js/lilypond.js:605 +#: js/lilypond.js:904 +#: js/lilypond.js:910 +#: js/lilypond.js:948 +msgid "mouse" msgstr "" -#: js/piemenus.js:2861 -#: js/PitchBlocks.js:1357 -#: js/musicutils.js:627 -#.TRANS: unison means the note is the same as the current note -#.TRANS: unison is a music term related to intervals -msgid "unison" +#: js/rubrics.js:527 +#: js/turtledefs.js:132 +#: js/turtledefs.js:234 +#: js/widgets/phrasemaker.js:1040 +msgid "pen" msgstr "" -#: js/piemenus.js:3015 -#: js/piemenus.js:3088 -#: js/musicutils.js:635 -#: js/musicutils.js:810 -#: js/musicutils.js:912 -#.TRANS: major is a music term related to intervals and mode -msgid "major" -msgstr "" +#: js/rubrics.js:528 +#: js/turtledefs.js:133 +#: js/turtledefs.js:235 +#: js/blocks/NumberBlocks.js:981 +#: js/blocks/PitchBlocks.js:1717 +#: js/blocks/PitchBlocks.js:1758 +msgid "number" +msgstr "umubare" -#: js/piemenus.js:3015 -#: js/piemenus.js:3088 -#: js/musicutils.js:653 -#.TRANS: modal scale for music -msgid "ionian" +#: js/rubrics.js:529 +#: js/turtledefs.js:127 +#: js/turtledefs.js:229 +msgid "flow" msgstr "" -#: js/piemenus.js:3017 -#: js/piemenus.js:3092 -#: js/musicutils.js:633 -#: js/musicutils.js:811 -#: js/musicutils.js:909 -#.TRANS: minor is a music term related to intervals and mode -msgid "minor" -msgstr "" +#: js/rubrics.js:530 +#: js/turtledefs.js:128 +#: js/turtledefs.js:230 +#: js/block-verbose.js:1609 +#: js/block-verbose.js:4559 +#: js/block-verbose.js:4577 +#: js/block-verbose.js:4588 +#: js/block.js:1573 +#: js/block.js:4483 +#: js/block.js:4501 +#: js/block.js:4512 +#: js/blocks.js:1018 +#: js/blocks.js:3491 +#: js/blocks.js:3492 +#: js/blocks.js:3717 +#: js/blocks.js:4076 +#: js/blocks.js:4269 +#: js/blocks.js:5432 +#: js/blocks.js:6563 +#: js/macros.js:170 +#: js/macros.js:266 +#: js/macros.js:267 +#: js/macros.js:276 +#: js/macros.js:828 +#: js/palette.js:527 +#: js/palette.js:536 +#: js/palette.js:545 +#: js/palette.js:554 +#: js/palette.js:1129 +#: js/palette.js:1140 +#: js/palette.js:1151 +#: js/palette.js:1162 +#: js/palette.js:1181 +#: js/blocks/ActionBlocks.js:254 +#: js/blocks/ActionBlocks.js:307 +#: js/blocks/ActionBlocks.js:617 +#: js/blocks/ActionBlocks.js:716 +#: js/blocks/ActionBlocks.js:961 +#: js/blocks/ActionBlocks.js:1049 +#: js/blocks/ActionBlocks.js:1322 +#: js/blocks/ActionBlocks.js:1325 +#: js/blocks/ActionBlocks.js:1337 +#: js/blocks/ActionBlocks.js:1404 +#: js/blocks/MeterBlocks.js:715 +#: js/blocks/MeterBlocks.js:768 +#: js/blocks/MeterBlocks.js:831 +#: js/blocks/MeterBlocks.js:892 +#: js/widgets/musickeyboard.js:2986 +#: js/widgets/phrasemaker.js:4913 +#: js/widgets/rhythmruler.js:2319 +#: js/widgets/rhythmruler.js:2326 +#: js/widgets/rhythmruler.js:2511 +#: js/widgets/rhythmruler.js:2518 +msgid "action" +msgstr "igikorwa" -#: js/piemenus.js:3017 -#: js/piemenus.js:3092 -#: js/musicutils.js:663 -#.TRANS: modal scale for music -msgid "aeolian" +#: js/rubrics.js:531 +#: js/turtledefs.js:136 +#: js/turtledefs.js:238 +msgid "sensors" msgstr "" -#: js/piemenus.js:3407 -msgid "Duplicate" +#: js/rubrics.js:532 +#: js/turtledefs.js:135 +#: js/turtledefs.js:237 +#: js/blocks/MediaBlocks.js:930 +msgid "media" msgstr "" -#: js/piemenus.js:3408 -#: js/turtledefs.js:534 -msgid "Extract" +#: js/rubrics.js:533 +msgid "mice" msgstr "" -#: js/piemenus.js:3409 -msgid "Move to trash" +#: js/toolbar.js:48 +#: js/toolbar.js:109 +msgid "About Music Blocks" msgstr "" -#: js/piemenus.js:3410 -#: js/timbre.js:968 -#: js/StringHelper.js:69 -msgid "Close" +#: js/toolbar.js:49 +#: js/toolbar.js:110 +#: js/toolbar.js:175 +#: js/toolbar.js:231 +#: js/turtledefs.js:445 +#: js/turtledefs.js:482 +#: js/activity.js:2660 +#: js/activity.js:2671 +#: js/activity.js:2902 +#: js/widgets/modewidget.js:77 +#: js/widgets/meterwidget.js:185 +#: js/widgets/pitchdrummatrix.js:147 +#: js/widgets/pitchdrummatrix.js:687 +#: js/widgets/pitchdrummatrix.js:689 +#: js/widgets/pitchdrummatrix.js:741 +#: js/widgets/pitchdrummatrix.js:743 +#: js/widgets/pitchdrummatrix.js:758 +#: js/widgets/pitchdrummatrix.js:760 +#: js/widgets/pitchdrummatrix.js:789 +#: js/widgets/pitchdrummatrix.js:791 +#: js/widgets/pitchstaircase.js:121 +#: js/widgets/temperament.js:610 +#: js/widgets/temperament.js:613 +#: js/widgets/temperament.js:673 +#: js/widgets/temperament.js:675 +#: js/widgets/temperament.js:2017 +#: js/widgets/temperament.js:2019 +#: js/widgets/tempo.js:84 +#: js/widgets/tempo.js:86 +#: js/widgets/timbre.js:432 +#: js/widgets/timbre.js:434 +#: js/widgets/timbre.js:465 +#: js/widgets/timbre.js:467 +#: js/widgets/timbre.js:746 +#: js/widgets/aiwidget.js:647 +#: js/widgets/aiwidget.js:654 +#: js/widgets/aiwidget.js:656 +#: js/widgets/arpeggio.js:90 +#: js/widgets/arpeggio.js:547 +#: js/widgets/arpeggio.js:549 +#: js/widgets/arpeggio.js:644 +#: js/widgets/arpeggio.js:646 +#: js/widgets/musickeyboard.js:676 +#: js/widgets/musickeyboard.js:872 +#: js/widgets/musickeyboard.js:874 +#: js/widgets/musickeyboard.js:953 +#: js/widgets/musickeyboard.js:955 +#: js/widgets/phrasemaker.js:513 +#: js/widgets/phrasemaker.js:523 +#: js/widgets/phrasemaker.js:525 +#: js/widgets/phrasemaker.js:4304 +#: js/widgets/phrasemaker.js:4528 +#: js/widgets/phrasemaker.js:4533 +#: js/widgets/phrasemaker.js:4535 +#: js/widgets/phrasemaker.js:4650 +#: js/widgets/rhythmruler.js:637 +#: js/widgets/rhythmruler.js:639 +#: js/widgets/rhythmruler.js:653 +#: js/widgets/rhythmruler.js:655 +#: js/widgets/sampler.js:162 +#: js/widgets/sampler.js:164 +#: js/widgets/sampler.js:363 +msgid "Play" msgstr "" -#: js/piemenus.js:3416 -msgid "Save stack" +#: js/toolbar.js:50 +#: js/toolbar.js:111 +#: js/toolbar.js:176 +#: js/toolbar.js:232 +#: js/turtledefs.js:451 +#: js/turtledefs.js:488 +#: js/activity.js:2679 +#: js/widgets/modewidget.js:99 +#: js/widgets/modewidget.js:101 +#: js/widgets/meterwidget.js:206 +#: js/widgets/meterwidget.js:208 +#: js/widgets/pitchdrummatrix.js:674 +#: js/widgets/pitchdrummatrix.js:676 +#: js/widgets/temperament.js:2002 +#: js/widgets/temperament.js:2004 +#: js/widgets/arpeggio.js:534 +#: js/widgets/arpeggio.js:536 +#: js/widgets/phrasemaker.js:534 +#: js/widgets/phrasemaker.js:536 +msgid "Stop" +msgstr "Hagarika" + +#: js/toolbar.js:51 +#: js/toolbar.js:112 +#: js/toolbar.js:177 +#: js/toolbar.js:233 +#: js/turtledefs.js:498 +msgid "Record" msgstr "" -#: js/piemenus.js:3420 -#: js/toolbar.js:60 -#: js/toolbar.js:120 -#: js/toolbar.js:185 +#: js/toolbar.js:52 +#: js/toolbar.js:53 +msgid "Full screen" +msgstr "" + +#: js/toolbar.js:54 +#: js/toolbar.js:115 +#: js/toolbar.js:180 +#: js/toolbar.js:236 +#: js/turtledefs.js:504 +msgid "Toggle Fullscreen" +msgstr "" + +#: js/toolbar.js:55 +#: js/toolbar.js:116 +#: js/toolbar.js:181 +#: js/toolbar.js:237 +#: js/turtledefs.js:510 +#: planet/js/StringHelper.js:33 +msgid "New project" +msgstr "" + +#: js/toolbar.js:56 +#: js/toolbar.js:117 +#: js/toolbar.js:182 +#: js/toolbar.js:238 +#: js/turtledefs.js:516 +msgid "Load project from file" +msgstr "" + +#: js/toolbar.js:57 +#: js/toolbar.js:118 +#: js/toolbar.js:119 +#: js/toolbar.js:183 +#: js/toolbar.js:239 +#: js/turtledefs.js:541 +#: js/turtledefs.js:550 +#: js/turtledefs.js:571 +msgid "Save project" +msgstr "" + +#: js/toolbar.js:58 +#: js/toolbar.js:77 +#: js/toolbar.js:79 +#: js/toolbar.js:138 +#: js/toolbar.js:147 +#: js/toolbar.js:149 +#: js/toolbar.js:184 +#: js/toolbar.js:202 +#: js/toolbar.js:204 #: js/toolbar.js:240 +#: js/toolbar.js:258 +#: js/toolbar.js:260 +msgid "Save project as HTML" +msgstr "" + +#: js/toolbar.js:59 +#: js/toolbar.js:120 +#: js/toolbar.js:185 +#: js/toolbar.js:241 +msgid "Find and share projects" +msgstr "" + +#: js/toolbar.js:60 +#: js/toolbar.js:121 +#: js/toolbar.js:186 +#: js/toolbar.js:242 +msgid "Offline. Sharing is unavailable" +msgstr "" + +#: js/toolbar.js:61 +#: js/toolbar.js:122 +#: js/toolbar.js:187 +#: js/toolbar.js:243 +msgid "Auxiliary menu" +msgstr "" + +#: js/toolbar.js:62 +#: js/toolbar.js:123 +#: js/toolbar.js:188 +#: js/toolbar.js:244 #: js/turtledefs.js:752 +#: js/piemenus.js:3423 msgid "Help" msgstr "Gufasha" -#: js/piemenus.js:3762 -msgid "You have chosen key " +#: js/toolbar.js:63 +#: js/toolbar.js:124 +#: js/toolbar.js:189 +#: js/toolbar.js:245 +msgid "Run slowly" +msgstr "" + +#: js/toolbar.js:64 +#: js/toolbar.js:125 +#: js/toolbar.js:190 +#: js/toolbar.js:246 +#: js/turtledefs.js:682 +msgid "Run step by step" +msgstr "" + +#: js/toolbar.js:65 +#: js/toolbar.js:126 +#: js/toolbar.js:191 +#: js/toolbar.js:247 +#: js/turtledefs.js:689 +msgid "Display statistics" +msgstr "" + +#: js/toolbar.js:66 +#: js/toolbar.js:127 +#: js/toolbar.js:192 +#: js/toolbar.js:248 +msgid "Load plugin" +msgstr "" + +#: js/toolbar.js:67 +#: js/toolbar.js:128 +#: js/toolbar.js:193 +#: js/toolbar.js:249 +#: js/turtledefs.js:696 +msgid "Delete plugin" +msgstr "" + +#: js/toolbar.js:68 +#: js/toolbar.js:129 +#: js/toolbar.js:194 +#: js/toolbar.js:250 +msgid "Enable horizontal scrolling" +msgstr "" + +#: js/toolbar.js:69 +#: js/toolbar.js:130 +#: js/toolbar.js:195 +#: js/toolbar.js:251 +msgid "Disable horizontal scrolling" +msgstr "" + +#: js/toolbar.js:70 +#: js/toolbar.js:131 +#: js/toolbar.js:196 +#: js/toolbar.js:252 +#: planet/js/LocalCard.js:54 +#: planet/js/StringHelper.js:71 +msgid "Merge with current project" +msgstr "" + +#: js/toolbar.js:71 +#: js/toolbar.js:132 +msgid "Set Pitch Preview" +msgstr "" + +#: js/toolbar.js:72 +#: js/toolbar.js:133 +#: js/toolbar.js:197 +#: js/toolbar.js:253 +msgid "JavaScript Editor" +msgstr "" + +#: js/toolbar.js:73 +#: js/toolbar.js:134 +#: js/toolbar.js:198 +#: js/toolbar.js:254 +#: js/turtledefs.js:724 +msgid "Restore" +msgstr "" + +#: js/toolbar.js:74 +#: js/toolbar.js:135 +#: js/toolbar.js:199 +#: js/toolbar.js:255 +msgid "Switch to beginner mode" +msgstr "" + +#: js/toolbar.js:75 +#: js/toolbar.js:136 +#: js/toolbar.js:200 +#: js/toolbar.js:256 +msgid "Switch to advanced mode" +msgstr "" + +#: js/toolbar.js:76 +#: js/toolbar.js:137 +#: js/toolbar.js:146 +#: js/toolbar.js:201 +#: js/toolbar.js:257 +#: js/turtledefs.js:738 +msgid "Select language" +msgstr "" + +#: js/toolbar.js:78 +#: js/toolbar.js:81 +#: js/toolbar.js:140 +#: js/turtledefs.js:579 +msgid "Save mouse artwork as PNG" +msgstr "" + +#: js/toolbar.js:80 +#: js/toolbar.js:139 +#: js/turtledefs.js:575 +msgid "Save mouse artwork as SVG" +msgstr "" + +#: js/toolbar.js:82 +#: js/toolbar.js:141 +#: js/turtledefs.js:583 +msgid "Save music as WAV" +msgstr "" + +#: js/toolbar.js:83 +#: js/toolbar.js:142 +#: js/turtledefs.js:587 +msgid "Save sheet music as ABC" +msgstr "" + +#: js/toolbar.js:84 +#: js/toolbar.js:143 +#: js/turtledefs.js:591 +msgid "Save sheet music as Lilypond" +msgstr "" + +#: js/toolbar.js:85 +msgid "Save sheet music as MusicXML" +msgstr "" + +#: js/toolbar.js:86 +#: js/toolbar.js:144 +#: js/toolbar.js:152 +#: js/toolbar.js:207 +#: js/toolbar.js:263 +#: js/turtledefs.js:562 +#: js/turtledefs.js:595 +msgid "Save block artwork as SVG" +msgstr "" + +#: js/toolbar.js:87 +#: js/toolbar.js:145 +#: js/toolbar.js:153 +#: js/toolbar.js:208 +#: js/toolbar.js:264 +#: js/turtles.js:911 +msgid "Confirm" +msgstr "" + +#: js/toolbar.js:88 +#: js/toolbar.js:154 +#: js/toolbar.js:209 +#: js/toolbar.js:265 +msgid "English (United States)" +msgstr "" + +#: js/toolbar.js:89 +#: js/toolbar.js:155 +#: js/toolbar.js:210 +#: js/toolbar.js:266 +msgid "English (United Kingdom)" +msgstr "" + +#: js/toolbar.js:90 +#: js/toolbar.js:156 +#: js/toolbar.js:211 +#: js/toolbar.js:267 +msgid "日本語" +msgstr "" + +#: js/toolbar.js:91 +msgid "한국어" +msgstr "" + +#: js/toolbar.js:92 +#: js/toolbar.js:158 +#: js/toolbar.js:213 +#: js/toolbar.js:269 +msgid "español" +msgstr "" + +#: js/toolbar.js:93 +#: js/toolbar.js:159 +#: js/toolbar.js:214 +#: js/toolbar.js:270 +msgid "português" +msgstr "" + +#: js/toolbar.js:94 +#: js/toolbar.js:160 +#: js/toolbar.js:215 +#: js/toolbar.js:271 +msgid "にほんご" +msgstr "" + +#: js/toolbar.js:95 +#: js/toolbar.js:161 +#: js/toolbar.js:216 +#: js/toolbar.js:272 +msgid "中文" +msgstr "" + +#: js/toolbar.js:96 +#: js/toolbar.js:162 +#: js/toolbar.js:217 +#: js/toolbar.js:273 +msgid "ภาษาไทย" +msgstr "" + +#: js/toolbar.js:97 +#: js/toolbar.js:163 +#: js/toolbar.js:218 +#: js/toolbar.js:274 +msgid "aymara" +msgstr "" + +#: js/toolbar.js:98 +#: js/toolbar.js:164 +#: js/toolbar.js:219 +#: js/toolbar.js:275 +msgid "quechua" +msgstr "" + +#: js/toolbar.js:99 +#: js/toolbar.js:165 +#: js/toolbar.js:220 +#: js/toolbar.js:276 +msgid "guarani" +msgstr "" + +#: js/toolbar.js:100 +#: js/toolbar.js:166 +#: js/toolbar.js:221 +#: js/toolbar.js:277 +msgid "हिंदी" +msgstr "" + +#: js/toolbar.js:101 +#: js/toolbar.js:168 +#: js/toolbar.js:222 +#: js/toolbar.js:279 +msgid "igbo" +msgstr "" + +#: js/toolbar.js:102 +#: js/toolbar.js:169 +#: js/toolbar.js:223 +#: js/toolbar.js:280 +msgid "عربى" +msgstr "" + +#: js/toolbar.js:103 +#: js/toolbar.js:167 +#: js/toolbar.js:224 +#: js/toolbar.js:278 +msgid "తెలుగు" +msgstr "" + +#: js/toolbar.js:104 +#: js/toolbar.js:170 +#: js/toolbar.js:225 +#: js/toolbar.js:281 +msgid "עִברִית" +msgstr "" + +#: js/toolbar.js:113 +#: js/toolbar.js:114 +#: js/toolbar.js:178 +#: js/toolbar.js:179 +#: js/toolbar.js:234 +#: js/toolbar.js:235 +msgid "Full Screen" +msgstr "" + +#: js/toolbar.js:148 +#: js/toolbar.js:151 +#: js/toolbar.js:203 +#: js/toolbar.js:206 +#: js/toolbar.js:259 +#: js/toolbar.js:262 +#: js/turtledefs.js:558 +msgid "Save turtle artwork as PNG" +msgstr "" + +#: js/toolbar.js:150 +#: js/toolbar.js:205 +#: js/toolbar.js:261 +#: js/turtledefs.js:554 +msgid "Save turtle artwork as SVG" +msgstr "" + +#: js/toolbar.js:157 +#: js/toolbar.js:212 +#: js/toolbar.js:268 +msgid "한국인" +msgstr "" + +#: js/toolbar.js:174 +#: js/toolbar.js:230 +msgid "About Turtle Blocks" +msgstr "" + +#: js/toolbar.js:446 +#: js/toolbar.js:457 +#: js/toolbar.js:497 +msgid "Turtle Wrap Off" +msgstr "" + +#: js/toolbar.js:466 +#: js/toolbar.js:506 +msgid "Turtle Wrap On" +msgstr "" + +#: js/turtle-painter.js:1192 +#: js/turtle-painter.js:1193 +#: js/turtles.js:118 +#: js/block-verbose.js:1623 +#: js/block.js:1587 +#: js/lilypond.js:749 +#: js/lilypond.js:913 +#: js/lilypond.js:951 +#: js/logo.js:1184 +#: js/blocks/ActionBlocks.js:1223 +#: js/blocks/ProgramBlocks.js:1267 +msgid "start" +msgstr "tangira" + +#: js/turtledefs.js:40 +#.TRANS: put the URL to the guide here, e.g., https://github.com/sugarlabs/turtleblocksjs/tree/master/guide/README.md +msgid "guide url" +msgstr "" + +#: js/turtledefs.js:85 +#: js/turtledefs.js:437 +msgid "Turtle Blocks is a Logo-inspired turtle that draws colorful pictures with snap-together visual-programming blocks." +msgstr "" + +#: js/turtledefs.js:118 +#: js/turtledefs.js:220 +msgid "search" +msgstr "" + +#: js/turtledefs.js:120 +#: js/turtledefs.js:222 +#: js/blocks/MeterBlocks.js:1343 +#: js/blocks/WidgetBlocks.js:522 +#.TRANS: musical meter (time signature), e.g., 4:4 +msgid "meter" +msgstr "" + +#: js/turtledefs.js:122 +#: js/turtledefs.js:224 +msgid "intervals" +msgstr "" + +#: js/turtledefs.js:124 +#: js/turtledefs.js:226 +msgid "ornament" +msgstr "" + +#: js/turtledefs.js:125 +#: js/turtledefs.js:227 +#: js/blocks/VolumeBlocks.js:362 +#: js/blocks/VolumeBlocks.js:502 +#: js/blocks/VolumeBlocks.js:545 +msgid "volume" +msgstr "" + +#: js/turtledefs.js:126 +#: js/turtledefs.js:228 +#: js/block-verbose.js:1700 +#: js/block-verbose.js:2626 +#: js/block.js:1664 +#: js/block.js:2554 +#: js/lilypond.js:732 +#: js/lilypond.js:897 +#: js/lilypond.js:941 +#: js/palette.js:577 +#: js/blocks/RhythmBlocks.js:766 +#: js/blocks/DrumBlocks.js:477 +#: js/blocks/VolumeBlocks.js:502 +#: js/widgets/phrasemaker.js:1038 +msgid "drum" +msgstr "" + +#: js/turtledefs.js:129 +#: js/turtledefs.js:231 +msgid "boxes" +msgstr "" + +#: js/turtledefs.js:130 +#: js/turtledefs.js:232 +msgid "widgets" +msgstr "" + +#: js/turtledefs.js:131 +#: js/turtledefs.js:233 +#: js/widgets/phrasemaker.js:1039 +msgid "graphics" +msgstr "" + +#: js/turtledefs.js:134 +#: js/turtledefs.js:236 +msgid "boolean" +msgstr "" + +#: js/turtledefs.js:137 +#: js/turtledefs.js:239 +#: js/blocks/HeapBlocks.js:59 +#: js/widgets/status.js:147 +msgid "heap" +msgstr "" + +#: js/turtledefs.js:138 +#: js/turtledefs.js:240 +#: js/blocks/DictBlocks.js:142 +#: js/blocks/ProgramBlocks.js:495 +msgid "dictionary" +msgstr "" + +#: js/turtledefs.js:139 +#: js/turtledefs.js:241 +msgid "ensemble" +msgstr "" + +#: js/turtledefs.js:140 +#: js/turtledefs.js:242 +msgid "extras" +msgstr "" + +#: js/turtledefs.js:142 +#: js/turtledefs.js:244 +#.TRANS: program as in computer program +#.TRANS: program as in computer program +msgid "program" +msgstr "" + +#: js/turtledefs.js:143 +#: js/turtledefs.js:245 +msgid "my blocks" +msgstr "" + +#: js/turtledefs.js:185 +#: js/turtledefs.js:281 +msgid "artwork" msgstr "" -#: js/piemenus.js:3766 -msgid " for your pitch preview." +#: js/turtledefs.js:185 +#: js/turtledefs.js:281 +msgid "logic" msgstr "" -#: js/palette.js:571 -msgid "grid" +#: js/turtledefs.js:185 +#: js/turtledefs.js:281 +msgid "music" msgstr "" -#: js/palette.js:577 -#: js/block.js:1540 -#: js/block.js:2343 -#: js/turtledefs.js:126 -#: js/turtledefs.js:228 -#: js/lilypond.js:740 -#: js/lilypond.js:905 -#: js/lilypond.js:949 -#: js/DrumBlocks.js:486 -#: js/RhythmBlocks.js:766 -#: js/VolumeBlocks.js:502 -#: js/phrasemaker.js:823 -msgid "drum" +#: js/turtledefs.js:187 +#: js/turtledefs.js:463 +msgid "Music Blocks is a collection of tools for exploring fundamental musical concepts in a fun way." msgstr "" -#: js/palette.js:580 -msgid "effect" +#: js/turtledefs.js:436 +msgid "Welcome to Turtle Blocks" msgstr "" -#: js/palette.js:586 -msgid "sargam" +#: js/turtledefs.js:438 +#: js/turtledefs.js:465 +#: js/turtledefs.js:774 +#: js/turtledefs.js:805 +msgid "The current version is" msgstr "" -#: js/palette.js:589 -#: js/activity.js:1833 -#: js/RhythmBlocks.js:923 -#: js/PitchBlocks.js:442 -#: js/PitchBlocks.js:1748 -#.TRANS: a numeric mapping of the notes in an octave based on the musical mode -msgid "scale degree" +#: js/turtledefs.js:446 +#: js/turtledefs.js:483 +msgid "Click the run button to run the project in fast mode." msgstr "" -#: js/palette.js:592 -#: js/activity.js:1860 -msgid "mode name" +#: js/turtledefs.js:452 +msgid "Stop the turtle." msgstr "" -#: js/palette.js:595 -#: js/activity.js:1839 -msgid "invert mode" +#: js/turtledefs.js:454 +#: js/turtledefs.js:491 +msgid "You can also type Alt-S to stop." msgstr "" -#: js/palette.js:598 -#: js/activity.js:1836 -msgid "voice name" +#: js/turtledefs.js:462 +#: js/widgets/help.js:333 +msgid "Welcome to Music Blocks" msgstr "" -#: js/palette.js:601 -#: js/PitchBlocks.js:1181 -msgid "custom pitch" +#: js/turtledefs.js:472 +#: js/widgets/help.js:334 +msgid "Meet Mr. Mouse!" msgstr "" -#: js/palette.js:605 -#: js/block.js:1456 -#: js/block.js:1575 -#: js/WidgetBlocks.js:218 -#: js/IntervalsBlocks.js:63 -msgid "temperament" +#: js/turtledefs.js:473 +msgid "Mr Mouse is our Music Blocks conductor." msgstr "" -#: js/palette.js:609 -msgid "accidental" +#: js/turtledefs.js:475 +msgid "Mr Mouse encourages you to explore Music Blocks." msgstr "" -#: js/palette.js:615 -#: js/activity.js:1866 -msgid "interval name" +#: js/turtledefs.js:477 +msgid "Let us start our tour!" msgstr "" -#: js/palette.js:633 -#: js/PitchBlocks.js:405 -msgid "pitch converter" +#: js/turtledefs.js:489 +msgid "Stop the music (and the mice)." msgstr "" -#: js/rubrics.js:522 -#: js/turtledefs.js:119 -#: js/turtledefs.js:221 -#: js/RhythmBlockPaletteBlocks.js:52 -#: js/RhythmBlockPaletteBlocks.js:233 -#: js/ProgramBlocks.js:745 -#: js/rhythmruler.js:1670 -#: js/rhythmruler.js:1677 -#: js/rhythmruler.js:1745 -#: js/rhythmruler.js:1752 -#: js/rhythmruler.js:1830 -#.TRANS: an arrangement of notes based on duration -msgid "rhythm" +#: js/turtledefs.js:499 +msgid "Record your project as video." msgstr "" -#: js/rubrics.js:523 -#: js/block.js:2339 -#: js/turtledefs.js:121 -#: js/turtledefs.js:223 -#: js/IntervalsBlocks.js:63 -#: js/PitchBlocks.js:1801 -#: js/PitchBlocks.js:1814 -#: js/SensorsBlocks.js:178 -#: js/phrasemaker.js:821 -#: js/musickeyboard.js:1653 -#.TRANS: pitch number -#.TRANS: we specify pitch in terms of a name and an octave. The name can be CDEFGAB or Do Re Mi Fa Sol La Ti. Octave is a number between 1 and 8. -msgid "pitch" +#: js/turtledefs.js:505 +msgid "Toggle Fullscreen mode." msgstr "" -#: js/rubrics.js:524 -#: js/turtledefs.js:123 -#: js/turtledefs.js:225 -msgid "tone" +#: js/turtledefs.js:511 +msgid "Initialize a new project." msgstr "" -#: js/rubrics.js:525 -#: js/lilypond.js:613 -#: js/lilypond.js:912 -#: js/lilypond.js:918 -#: js/lilypond.js:956 -msgid "mouse" +#: js/turtledefs.js:517 +msgid "You can also load projects from the file system." msgstr "" -#: js/rubrics.js:526 -#: js/turtledefs.js:132 -#: js/turtledefs.js:234 -#: js/phrasemaker.js:825 -msgid "pen" +#: js/turtledefs.js:522 +#: planet/js/StringHelper.js:46 +msgid "Delete" msgstr "" -#: js/rubrics.js:527 -#: js/turtledefs.js:133 -#: js/turtledefs.js:235 -#: js/NumberBlocks.js:905 -#: js/PitchBlocks.js:1679 -#: js/PitchBlocks.js:1720 -msgid "number" -msgstr "umubare" +#: js/turtledefs.js:523 +msgid "To delete a block, just right-click on it, then you will be able to see the delete option" +msgstr "" -#: js/rubrics.js:528 -#: js/turtledefs.js:127 -#: js/turtledefs.js:229 -msgid "flow" +#: js/turtledefs.js:528 +#: js/activity.js:2649 +#: planet/js/LocalCard.js:31 +msgid "Copy" +msgstr "Koporora" + +#: js/turtledefs.js:529 +msgid "To copy a block, just right-click on it, then you will be able to see the copy option" msgstr "" -#: js/rubrics.js:530 -#: js/turtledefs.js:136 -#: js/turtledefs.js:238 -msgid "sensors" +#: js/turtledefs.js:534 +#: js/piemenus.js:3411 +msgid "Extract" msgstr "" -#: js/rubrics.js:531 -#: js/turtledefs.js:135 -#: js/turtledefs.js:237 -#: js/MediaBlocks.js:930 -msgid "media" +#: js/turtledefs.js:535 +msgid "To extract a block, just right-click on it, then you will be able to see the extract option" msgstr "" -#: js/rubrics.js:532 -msgid "mice" +#: js/turtledefs.js:542 +#: js/turtledefs.js:552 +#: js/turtledefs.js:573 +msgid "Save your project to a file." msgstr "" -#: js/macros.js:711 -#: js/musicutils.js:783 -#: js/synthutils.js:181 -#.TRANS: animal sound effect -msgid "duck" +#: js/turtledefs.js:549 +#: js/turtledefs.js:570 +msgid "save" msgstr "" -#: js/toolbar.js:46 -#: js/toolbar.js:107 -msgid "About Music Blocks" +#: js/turtledefs.js:556 +#: js/turtledefs.js:577 +msgid "Save graphics from your project to as SVG." msgstr "" -#: js/toolbar.js:47 -#: js/toolbar.js:108 -#: js/toolbar.js:172 -#: js/toolbar.js:228 -#: js/turtledefs.js:445 -#: js/turtledefs.js:482 -#: js/activity.js:2281 -#: js/activity.js:2289 -#: js/activity.js:2520 -#: js/modewidget.js:77 -#: js/pitchstaircase.js:121 -#: js/phrasemaker.js:302 -#: js/phrasemaker.js:312 -#: js/phrasemaker.js:314 -#: js/phrasemaker.js:3901 -#: js/phrasemaker.js:4061 -#: js/phrasemaker.js:4066 -#: js/phrasemaker.js:4068 -#: js/phrasemaker.js:4183 -#: js/pitchdrummatrix.js:81 -#: js/pitchdrummatrix.js:574 -#: js/pitchdrummatrix.js:576 -#: js/pitchdrummatrix.js:628 -#: js/pitchdrummatrix.js:630 -#: js/pitchdrummatrix.js:645 -#: js/pitchdrummatrix.js:647 -#: js/pitchdrummatrix.js:674 -#: js/pitchdrummatrix.js:676 -#: js/temperament.js:477 -#: js/temperament.js:480 -#: js/temperament.js:540 -#: js/temperament.js:542 -#: js/temperament.js:1835 -#: js/temperament.js:1837 -#: js/temperament.js:1986 -#: js/temperament.js:1988 -#: js/musickeyboard.js:522 -#: js/musickeyboard.js:682 -#: js/musickeyboard.js:684 -#: js/musickeyboard.js:756 -#: js/musickeyboard.js:758 -#: js/rhythmruler.js:298 -#: js/rhythmruler.js:300 -#: js/rhythmruler.js:314 -#: js/rhythmruler.js:316 -#: js/sampler.js:96 -#: js/sampler.js:98 -#: js/sampler.js:229 -#: js/sampler.js:235 -#: js/sampler.js:237 -#: js/tempo.js:84 -#: js/tempo.js:86 -#: js/timbre.js:432 -#: js/timbre.js:434 -#: js/timbre.js:465 -#: js/timbre.js:467 -#: js/timbre.js:746 -#: js/meterwidget.js:80 -#: js/arpeggio.js:90 -#: js/arpeggio.js:547 -#: js/arpeggio.js:549 -#: js/arpeggio.js:644 -#: js/arpeggio.js:646 -msgid "Play" +#: js/turtledefs.js:560 +#: js/turtledefs.js:581 +msgid "Save graphics from your project as PNG." msgstr "" -#: js/toolbar.js:48 -#: js/toolbar.js:109 -#: js/toolbar.js:173 -#: js/toolbar.js:229 -#: js/turtledefs.js:451 -#: js/turtledefs.js:488 -#: js/activity.js:2297 -#: js/modewidget.js:99 -#: js/modewidget.js:101 -#: js/phrasemaker.js:323 -#: js/phrasemaker.js:325 -#: js/pitchdrummatrix.js:561 -#: js/pitchdrummatrix.js:563 -#: js/temperament.js:1820 -#: js/temperament.js:1822 -#: js/meterwidget.js:101 -#: js/meterwidget.js:103 -#: js/arpeggio.js:534 -#: js/arpeggio.js:536 -msgid "Stop" -msgstr "Hagarika" +#: js/turtledefs.js:564 +#: js/turtledefs.js:597 +msgid "Save block artwork as an SVG file." +msgstr "" -#: js/toolbar.js:49 -#: js/toolbar.js:110 -#: js/toolbar.js:174 -#: js/toolbar.js:230 -#: js/turtledefs.js:498 -msgid "Record" +#: js/turtledefs.js:585 +msgid "Save audio from your project as WAV." msgstr "" -#: js/toolbar.js:50 -#: js/toolbar.js:51 -msgid "Full screen" +#: js/turtledefs.js:589 +msgid "Save your project to as an ABC file." msgstr "" -#: js/toolbar.js:52 -#: js/toolbar.js:112 -#: js/toolbar.js:177 -#: js/toolbar.js:232 -#: js/turtledefs.js:504 -msgid "Toggle Fullscreen" +#: js/turtledefs.js:593 +msgid "Save your project to as a Lilypond file." msgstr "" -#: js/toolbar.js:53 -#: js/toolbar.js:113 -#: js/toolbar.js:178 -#: js/toolbar.js:233 -#: js/turtledefs.js:510 -#: js/StringHelper.js:33 -msgid "New project" +#: js/turtledefs.js:604 +msgid "Load samples from server" msgstr "" -#: js/toolbar.js:54 -#: js/toolbar.js:114 -#: js/toolbar.js:179 -#: js/toolbar.js:234 -#: js/turtledefs.js:516 -msgid "Load project from file" +#: js/turtledefs.js:605 +msgid "This button opens a viewer for loading example projects." msgstr "" -#: js/toolbar.js:55 -#: js/toolbar.js:115 -#: js/toolbar.js:116 -#: js/toolbar.js:180 -#: js/toolbar.js:235 -#: js/turtledefs.js:541 -#: js/turtledefs.js:550 -#: js/turtledefs.js:571 -msgid "Save project" +#: js/turtledefs.js:611 +msgid "Palette buttons" msgstr "" -#: js/toolbar.js:56 -#: js/toolbar.js:75 -#: js/toolbar.js:77 -#: js/toolbar.js:135 -#: js/toolbar.js:144 -#: js/toolbar.js:146 -#: js/toolbar.js:181 -#: js/toolbar.js:199 -#: js/toolbar.js:201 -#: js/toolbar.js:236 -#: js/toolbar.js:254 -#: js/toolbar.js:256 -msgid "Save project as HTML" +#: js/turtledefs.js:612 +msgid "This toolbar contains the palette buttons including Rhythm Pitch Tone Action and more." msgstr "" -#: js/toolbar.js:57 -#: js/toolbar.js:117 -#: js/toolbar.js:182 -#: js/toolbar.js:237 -msgid "Find and share projects" +#: js/turtledefs.js:614 +msgid "Click to show the palettes of blocks and drag blocks from the palettes onto the canvas to use them." msgstr "" -#: js/toolbar.js:58 -#: js/toolbar.js:118 -#: js/toolbar.js:183 -#: js/toolbar.js:238 -msgid "Offline. Sharing is unavailable" +#: js/turtledefs.js:620 +msgid "Cartesian/Polar" +msgstr "" + +#: js/turtledefs.js:621 +msgid "Show or hide a coordinate grid." +msgstr "" + +#: js/turtledefs.js:626 +#: js/turtles.js:902 +msgid "Clean" +msgstr "Sukura" + +#: js/turtledefs.js:627 +msgid "Clear the screen and return the mice to their initial positions." msgstr "" -#: js/toolbar.js:59 -#: js/toolbar.js:119 -#: js/toolbar.js:184 -#: js/toolbar.js:239 -msgid "Auxiliary menu" +#: js/turtledefs.js:632 +#: js/turtles.js:955 +msgid "Collapse" msgstr "" -#: js/toolbar.js:61 -#: js/toolbar.js:121 -#: js/toolbar.js:186 -#: js/toolbar.js:241 -msgid "Run slowly" +#: js/turtledefs.js:633 +msgid "Collapse the graphics window." msgstr "" -#: js/toolbar.js:62 -#: js/toolbar.js:122 -#: js/toolbar.js:187 -#: js/toolbar.js:242 -#: js/turtledefs.js:682 -msgid "Run step by step" +#: js/turtledefs.js:638 +#: js/activity.js:5684 +msgid "Home" msgstr "" -#: js/toolbar.js:63 -#: js/toolbar.js:123 -#: js/toolbar.js:188 -#: js/toolbar.js:243 -#: js/turtledefs.js:689 -msgid "Display statistics" +#: js/turtledefs.js:639 +msgid "Return all blocks to the center of the screen." msgstr "" -#: js/toolbar.js:64 -#: js/toolbar.js:124 -#: js/toolbar.js:189 -#: js/toolbar.js:244 -msgid "Load plugin" +#: js/turtledefs.js:644 +msgid "Show/hide blocks" msgstr "" -#: js/toolbar.js:65 -#: js/toolbar.js:125 -#: js/toolbar.js:190 -#: js/toolbar.js:245 -#: js/turtledefs.js:696 -msgid "Delete plugin" +#: js/turtledefs.js:645 +msgid "Hide or show the blocks and the palettes." msgstr "" -#: js/toolbar.js:66 -#: js/toolbar.js:126 -#: js/toolbar.js:191 -#: js/toolbar.js:246 -msgid "Enable horizontal scrolling" +#: js/turtledefs.js:650 +msgid "Expand/collapse collapsable blocks" msgstr "" -#: js/toolbar.js:67 -#: js/toolbar.js:127 -#: js/toolbar.js:192 -#: js/toolbar.js:247 -msgid "Disable horizontal scrolling" +#: js/turtledefs.js:651 +msgid "Expand or collapse start and action stacks." msgstr "" -#: js/toolbar.js:68 -#: js/toolbar.js:128 -#: js/toolbar.js:193 -#: js/toolbar.js:248 -#: js/LocalCard.js:54 -#: js/StringHelper.js:71 -msgid "Merge with current project" +#: js/turtledefs.js:658 +#: js/activity.js:5704 +msgid "Decrease block size" msgstr "" -#: js/toolbar.js:69 -#: js/toolbar.js:129 -msgid "Set Pitch Preview" +#: js/turtledefs.js:659 +msgid "Decrease the size of the blocks." msgstr "" -#: js/toolbar.js:70 -#: js/toolbar.js:130 -#: js/toolbar.js:194 -#: js/toolbar.js:249 -msgid "Toggle JavaScript Editor" +#: js/turtledefs.js:664 +#: js/activity.js:5710 +msgid "Increase block size" msgstr "" -#: js/toolbar.js:71 -#: js/toolbar.js:131 -#: js/toolbar.js:195 -#: js/toolbar.js:250 -#: js/turtledefs.js:724 -msgid "Restore" +#: js/turtledefs.js:665 +msgid "Increase the size of the blocks." msgstr "" -#: js/toolbar.js:72 -#: js/toolbar.js:132 -#: js/toolbar.js:196 -#: js/toolbar.js:251 -msgid "Switch to beginner mode" +#: js/turtledefs.js:670 +msgid "Expand/collapse option toolbar" msgstr "" -#: js/toolbar.js:73 -#: js/toolbar.js:133 -#: js/toolbar.js:197 -#: js/toolbar.js:252 -msgid "Switch to advanced mode" +#: js/turtledefs.js:671 +msgid "Click this button to expand or collapse the auxillary toolbar." msgstr "" -#: js/toolbar.js:74 -#: js/toolbar.js:134 -#: js/toolbar.js:143 -#: js/toolbar.js:198 -#: js/toolbar.js:253 -#: js/turtledefs.js:738 -msgid "Select language" +#: js/turtledefs.js:676 +msgid "Run slow" msgstr "" -#: js/toolbar.js:76 -#: js/toolbar.js:79 -#: js/toolbar.js:137 -#: js/turtledefs.js:579 -msgid "Save mouse artwork as PNG" +#: js/turtledefs.js:677 +msgid "Click to run the project in slow mode." msgstr "" -#: js/toolbar.js:78 -#: js/toolbar.js:136 -#: js/turtledefs.js:575 -msgid "Save mouse artwork as SVG" +#: js/turtledefs.js:683 +msgid "Click to run the project step by step." msgstr "" -#: js/toolbar.js:80 -#: js/toolbar.js:138 -#: js/turtledefs.js:583 -msgid "Save music as WAV" +#: js/turtledefs.js:690 +msgid "Display statistics about your Music project." msgstr "" -#: js/toolbar.js:81 -#: js/toolbar.js:139 -#: js/turtledefs.js:587 -msgid "Save sheet music as ABC" +#: js/turtledefs.js:697 +msgid "Delete a selected plugin." msgstr "" -#: js/toolbar.js:82 -#: js/toolbar.js:140 -#: js/turtledefs.js:591 -msgid "Save sheet music as Lilypond" +#: js/turtledefs.js:704 +msgid "Enable scrolling" msgstr "" -#: js/toolbar.js:83 -msgid "Save sheet music as MusicXML" +#: js/turtledefs.js:705 +msgid "You can scroll the blocks on the canvas." msgstr "" -#: js/toolbar.js:84 -#: js/toolbar.js:141 -#: js/toolbar.js:149 -#: js/toolbar.js:204 -#: js/toolbar.js:259 -#: js/turtledefs.js:562 -#: js/turtledefs.js:595 -msgid "Save block artwork as SVG" +#: js/turtledefs.js:714 +msgid "Wrap Turtle" msgstr "" -#: js/toolbar.js:85 -#: js/toolbar.js:142 -#: js/toolbar.js:150 -#: js/toolbar.js:205 -#: js/toolbar.js:260 -msgid "Confirm" +#: js/turtledefs.js:715 +msgid "Turn Turtle wrapping On or Off." msgstr "" -#: js/toolbar.js:86 -#: js/toolbar.js:151 -#: js/toolbar.js:206 -#: js/toolbar.js:261 -msgid "English (United States)" +#: js/turtledefs.js:725 +msgid "Restore blocks from the trash." msgstr "" -#: js/toolbar.js:87 -#: js/toolbar.js:152 -#: js/toolbar.js:207 -#: js/toolbar.js:262 -msgid "English (United Kingdom)" +#: js/turtledefs.js:732 +msgid "Switch mode" msgstr "" -#: js/toolbar.js:88 -#: js/toolbar.js:153 -#: js/toolbar.js:208 -#: js/toolbar.js:263 -msgid "日本語" +#: js/turtledefs.js:733 +msgid "Switch between beginner and advance modes." msgstr "" -#: js/toolbar.js:89 -msgid "한국어" +#: js/turtledefs.js:739 +msgid "Select your language preference." msgstr "" -#: js/toolbar.js:90 -#: js/toolbar.js:155 -#: js/toolbar.js:210 -#: js/toolbar.js:265 -msgid "español" +#: js/turtledefs.js:745 +msgid "Keyboard shortcuts" msgstr "" -#: js/toolbar.js:91 -#: js/toolbar.js:156 -#: js/toolbar.js:211 -#: js/toolbar.js:266 -msgid "português" +#: js/turtledefs.js:746 +msgid "You can type d to create a do block and r to create a re block etc." msgstr "" -#: js/toolbar.js:92 -#: js/toolbar.js:157 -#: js/toolbar.js:212 -#: js/toolbar.js:267 -msgid "にほんご" +#: js/turtledefs.js:753 +msgid "Show these messages." msgstr "" -#: js/toolbar.js:93 -#: js/toolbar.js:158 -#: js/toolbar.js:213 -#: js/toolbar.js:268 -msgid "中文" +#: js/turtledefs.js:759 +#: js/turtledefs.js:790 +#: js/widgets/help.js:335 +msgid "Guide" msgstr "" -#: js/toolbar.js:94 -#: js/toolbar.js:159 -#: js/toolbar.js:214 -#: js/toolbar.js:269 -msgid "ภาษาไทย" +#: js/turtledefs.js:760 +msgid "A detailed guide to Turtle Blocks is available." msgstr "" -#: js/toolbar.js:95 -#: js/toolbar.js:160 -#: js/toolbar.js:215 -#: js/toolbar.js:270 -msgid "aymara" +#: js/turtledefs.js:764 +msgid "Turtle Blocks Guide" msgstr "" -#: js/toolbar.js:96 -#: js/toolbar.js:161 -#: js/toolbar.js:216 -#: js/toolbar.js:271 -msgid "quechua" +#: js/turtledefs.js:767 +#: js/turtledefs.js:798 +#: js/widgets/help.js:336 +msgid "About" msgstr "" -#: js/toolbar.js:97 -#: js/toolbar.js:162 -#: js/toolbar.js:217 -#: js/toolbar.js:272 -msgid "guarani" +#: js/turtledefs.js:768 +msgid "Turtle Blocks is an open source collection of tools for exploring musical concepts." msgstr "" -#: js/toolbar.js:98 -#: js/toolbar.js:163 -#: js/toolbar.js:218 -#: js/toolbar.js:273 -msgid "हिंदी" +#: js/turtledefs.js:770 +msgid "A full list of contributors can be found in the Turtle Blocks GitHub repository." +msgstr "" + +#: js/turtledefs.js:772 +msgid "Turtle Blocks is licensed under the AGPL." msgstr "" -#: js/toolbar.js:99 -#: js/toolbar.js:165 -#: js/toolbar.js:219 -#: js/toolbar.js:275 -msgid "igbo" +#: js/turtledefs.js:780 +msgid "Turtle Blocks GitHub repository" msgstr "" -#: js/toolbar.js:100 -#: js/toolbar.js:166 -#: js/toolbar.js:220 -#: js/toolbar.js:276 -msgid "عربى" +#: js/turtledefs.js:783 +#: js/turtledefs.js:814 +#: js/widgets/help.js:337 +#: js/widgets/help.js:359 +msgid "Congratulations." msgstr "" -#: js/toolbar.js:101 -#: js/toolbar.js:164 -#: js/toolbar.js:221 -#: js/toolbar.js:274 -msgid "తెలుగు" +#: js/turtledefs.js:784 +msgid "You have finished the tour. Please enjoy Turtle Blocks!" msgstr "" -#: js/toolbar.js:102 -#: js/toolbar.js:167 -#: js/toolbar.js:222 -#: js/toolbar.js:277 -msgid "עִברִית" +#: js/turtledefs.js:791 +msgid "A detailed guide to Music Blocks is available." msgstr "" -#: js/toolbar.js:111 -#: js/toolbar.js:175 -#: js/toolbar.js:176 -#: js/toolbar.js:231 -msgid "Full Screen" +#: js/turtledefs.js:799 +msgid "Music Blocks is an open source collection of tools for exploring musical concepts." msgstr "" -#: js/toolbar.js:145 -#: js/toolbar.js:148 -#: js/toolbar.js:200 -#: js/toolbar.js:203 -#: js/toolbar.js:255 -#: js/toolbar.js:258 -#: js/turtledefs.js:558 -msgid "Save turtle artwork as PNG" +#: js/turtledefs.js:801 +msgid "A full list of contributors can be found in the Music Blocks GitHub repository." msgstr "" -#: js/toolbar.js:147 -#: js/toolbar.js:202 -#: js/toolbar.js:257 -#: js/turtledefs.js:554 -msgid "Save turtle artwork as SVG" +#: js/turtledefs.js:803 +msgid "Music Blocks is licensed under the AGPL." msgstr "" -#: js/toolbar.js:154 -#: js/toolbar.js:209 -#: js/toolbar.js:264 -msgid "한국인" +#: js/turtledefs.js:811 +msgid "Music Blocks GitHub repository" msgstr "" -#: js/toolbar.js:171 -#: js/toolbar.js:227 -msgid "About Turtle Blocks" +#: js/turtledefs.js:815 +msgid "You have finished the tour. Please enjoy Music Blocks!" msgstr "" -#: js/toolbar.js:429 -#: js/toolbar.js:440 -msgid "Turtle Wrap Off" +#: js/turtles.js:882 +msgid "Grid" msgstr "" -#: js/toolbar.js:442 -msgid "Turtle Wrap On" +#: js/turtles.js:1024 +msgid "Expand" +msgstr "" + +#: js/block-verbose.js:1616 +#: js/block-verbose.js:1735 +#: js/block.js:1580 +#: js/block.js:1699 +#: js/palette.js:605 +#: js/blocks/IntervalsBlocks.js:63 +#: js/blocks/WidgetBlocks.js:259 +msgid "temperament" msgstr "" -#: js/block.js:1470 +#: js/block-verbose.js:1630 +#: js/block.js:1594 msgid "matrix" msgstr "" -#: js/block.js:1477 -#: js/WidgetBlocks.js:1226 +#: js/block-verbose.js:1637 +#: js/block.js:1601 +#: js/blocks/WidgetBlocks.js:1509 #: plugins/rodi.rtp:324 msgid "status" msgstr "" -#: js/block.js:1484 +#: js/block-verbose.js:1644 +#: js/block.js:1608 msgid "drum mapper" msgstr "" -#: js/block.js:1491 +#: js/block-verbose.js:1651 +#: js/block.js:1615 msgid "ruler" msgstr "" -#: js/block.js:1498 -#: js/WidgetBlocks.js:327 +#: js/block-verbose.js:1658 +#: js/block.js:1622 +#: js/blocks/WidgetBlocks.js:397 #.TRANS: timbre is the character or quality of a musical sound msgid "timbre" msgstr "" -#: js/block.js:1505 +#: js/block-verbose.js:1665 +#: js/block.js:1629 msgid "stair" msgstr "" -#: js/block.js:1512 -#: js/WidgetBlocks.js:577 +#: js/block-verbose.js:1672 +#: js/block.js:1636 +#: js/blocks/WidgetBlocks.js:707 #.TRANS: the speed at music is should be played. msgid "tempo" msgstr "" -#: js/block.js:1519 -#: js/block.js:1582 -#: js/IntervalsBlocks.js:1268 +#: js/block-verbose.js:1679 +#: js/block-verbose.js:1742 +#: js/block.js:1643 +#: js/block.js:1706 +#: js/blocks/IntervalsBlocks.js:1464 #.TRANS: mode, e.g., Major in C Major msgid "mode" msgstr "" -#: js/block.js:1526 +#: js/block-verbose.js:1686 +#: js/block.js:1650 msgid "slider" msgstr "" -#: js/block.js:1533 -#: js/SensorsBlocks.js:1001 +#: js/block-verbose.js:1693 +#: js/block.js:1657 +#: js/blocks/SensorsBlocks.js:1001 msgid "keyboard" msgstr "mwandikisho" -#: js/block.js:1547 -#: js/WidgetBlocks.js:957 -#: js/WidgetBlocks.js:988 +#: js/block-verbose.js:1707 +#: js/block.js:1671 +#: js/blocks/WidgetBlocks.js:1190 +#: js/blocks/WidgetBlocks.js:1228 #.TRANS: widget for subdividing a measure into distinct rhythmic elements msgid "rhythm maker" msgstr "" -#: js/block.js:1554 -#: js/block.js:2182 -#: js/block.js:2236 -#: js/RhythmBlockPaletteBlocks.js:70 -#: js/RhythmBlockPaletteBlocks.js:251 -#: js/RhythmBlockPaletteBlocks.js:484 -#: js/RhythmBlockPaletteBlocks.js:553 -#: js/RhythmBlockPaletteBlocks.js:604 -#: js/RhythmBlockPaletteBlocks.js:874 -#: js/RhythmBlocks.js:33 -#: js/RhythmBlocks.js:356 -#: js/RhythmBlocks.js:766 -#: js/RhythmBlocks.js:806 -#: js/OrnamentBlocks.js:220 -#: js/OrnamentBlocks.js:312 -#: js/MeterBlocks.js:1367 -#: js/DictActions.js:85 -#: js/phrasemaker.js:731 -#: js/phrasemaker.js:2393 -#: js/phrasemaker.js:2436 -#: js/phrasemaker.js:2534 +#: js/block-verbose.js:1714 +#: js/block-verbose.js:2457 +#: js/block-verbose.js:2514 +#: js/block.js:1678 +#: js/block.js:2385 +#: js/block.js:2442 +#: js/blocks/MeterBlocks.js:1367 +#: js/blocks/OrnamentBlocks.js:220 +#: js/blocks/OrnamentBlocks.js:312 +#: js/blocks/RhythmBlocks.js:33 +#: js/blocks/RhythmBlocks.js:356 +#: js/blocks/RhythmBlocks.js:766 +#: js/blocks/RhythmBlocks.js:806 +#: js/blocks/RhythmBlockPaletteBlocks.js:70 +#: js/blocks/RhythmBlockPaletteBlocks.js:252 +#: js/blocks/RhythmBlockPaletteBlocks.js:485 +#: js/blocks/RhythmBlockPaletteBlocks.js:554 +#: js/blocks/RhythmBlockPaletteBlocks.js:605 +#: js/blocks/RhythmBlockPaletteBlocks.js:875 +#: js/turtleactions/DictActions.js:85 +#: js/widgets/phrasemaker.js:942 +#: js/widgets/phrasemaker.js:2656 +#: js/widgets/phrasemaker.js:2699 +#: js/widgets/phrasemaker.js:2810 #.TRANS: the value (e.g., 1/4 note) of the note being played. msgid "note value" msgstr "" -#: js/block.js:1561 -#: js/block.js:2110 -#: js/block.js:2133 -#: js/IntervalsBlocks.js:875 -#: js/OrnamentBlocks.js:312 +#: js/block-verbose.js:1721 +#: js/block-verbose.js:2382 +#: js/block-verbose.js:2405 +#: js/block.js:1685 +#: js/block.js:2310 +#: js/block.js:2333 +#: js/blocks/IntervalsBlocks.js:1071 +#: js/blocks/OrnamentBlocks.js:312 #.TRANS: calculate a relative step between notes based on semi-tones msgid "scalar interval" msgstr "" -#: js/block.js:1568 -#: js/RhythmBlocks.js:148 +#: js/block-verbose.js:1728 +#: js/block.js:1692 +#: js/blocks/RhythmBlocks.js:148 msgid "milliseconds" msgstr "" -#: js/block.js:2180 -#: js/block.js:2184 -#: js/block.js:2234 -#: js/block.js:2345 -#: js/ProgramBlocks.js:1273 -#: js/RhythmBlocks.js:712 -#: js/rhythmruler.js:834 -#: js/rhythmruler.js:961 +#: js/block-verbose.js:2455 +#: js/block-verbose.js:2459 +#: js/block-verbose.js:2512 +#: js/block-verbose.js:2628 +#: js/block.js:2383 +#: js/block.js:2387 +#: js/block.js:2440 +#: js/block.js:2556 +#: js/blocks/RhythmBlocks.js:712 +#: js/blocks/ProgramBlocks.js:1273 +#: js/widgets/rhythmruler.js:1183 +#: js/widgets/rhythmruler.js:1329 msgid "silence" msgstr "" -#: js/block.js:2265 -#: js/block.js:3134 -#: js/block.js:3151 -#: js/activity.js:2336 -#: js/activity.js:2387 -#: js/musicutils.js:2932 -#: js/musicutils.js:4287 +#: js/block-verbose.js:2548 +#: js/block-verbose.js:3492 +#: js/block-verbose.js:3509 +#: js/activity.js:2718 +#: js/activity.js:2769 +#: js/block.js:2476 +#: js/block.js:3416 +#: js/block.js:3433 +#: js/utils/musicutils.js:3780 +#: js/utils/musicutils.js:5273 +#.TRANS: the note names must be separated by single spaces #.TRANS: the note names must be separated by single spaces #.TRANS: the note names must be separated by single spaces msgid "ti la sol fa mi re do" msgstr "" -#: js/block.js:2333 +#: js/block-verbose.js:2616 +#: js/block.js:2544 +#.TRANS: scalar step #.TRANS: scalar step msgid "down" msgstr "" -#: js/block.js:2334 +#: js/block-verbose.js:2617 +#: js/block.js:2545 msgid "up" msgstr "" -#: js/block.js:3477 -#: js/block.js:3490 -#: js/ExtrasBlocks.js:612 +#: js/block-verbose.js:3026 +#: js/block.js:2950 +msgid "Silence block cannot be removed." +msgstr "" + +#: js/block-verbose.js:3824 +#: js/block.js:3748 +#: js/blocks.js:2607 +#: js/blocks.js:3218 +#: js/palette.js:618 +#: js/blocks/BooleanBlocks.js:77 +#: js/blocks/BooleanBlocks.js:167 +#: js/blocks/BooleanBlocks.js:251 +#: js/blocks/BooleanBlocks.js:335 +#: js/blocks/BooleanBlocks.js:433 +#: js/blocks/BooleanBlocks.js:539 +#: js/blocks/BooleanBlocks.js:640 +#: js/blocks/BooleanBlocks.js:741 +#: js/blocks/BooleanBlocks.js:847 +#: js/blocks/BooleanBlocks.js:948 +#: js/blocks/BooleanBlocks.js:1033 +#: js/blocks/SensorsBlocks.js:910 +msgid "true" +msgstr "" + +#: js/block-verbose.js:3824 +#: js/block.js:3748 +#: js/blocks.js:2609 +#: js/blocks.js:3220 +#: js/blocks/BooleanBlocks.js:79 +#: js/blocks/BooleanBlocks.js:169 +#: js/blocks/BooleanBlocks.js:253 +#: js/blocks/BooleanBlocks.js:337 +#: js/blocks/BooleanBlocks.js:435 +#: js/blocks/BooleanBlocks.js:541 +#: js/blocks/BooleanBlocks.js:642 +#: js/blocks/BooleanBlocks.js:743 +#: js/blocks/BooleanBlocks.js:849 +#: js/blocks/BooleanBlocks.js:950 +#: js/blocks/SensorsBlocks.js:912 +msgid "false" +msgstr "" + +#: js/block-verbose.js:3835 +#: js/block-verbose.js:3848 +#: js/block.js:3759 +#: js/block.js:3772 +#: js/blocks/ExtrasBlocks.js:615 msgid "Cartesian" msgstr "" -#: js/block.js:3478 -#: js/block.js:3491 -#: js/ExtrasBlocks.js:616 +#: js/block-verbose.js:3836 +#: js/block-verbose.js:3849 +#: js/block.js:3760 +#: js/block.js:3773 +#: js/blocks/ExtrasBlocks.js:619 msgid "polar" msgstr "" -#: js/block.js:3479 -#: js/block.js:3492 -#: js/ExtrasBlocks.js:620 +#: js/block-verbose.js:3837 +#: js/block-verbose.js:3850 +#: js/block.js:3761 +#: js/block.js:3774 +#: js/blocks/ExtrasBlocks.js:623 msgid "Cartesian+polar" msgstr "" -#: js/block.js:3480 -#: js/block.js:3499 -#: js/ExtrasBlocks.js:649 +#: js/block-verbose.js:3838 +#: js/block-verbose.js:3857 +#: js/block.js:3762 +#: js/block.js:3781 +#: js/blocks/ExtrasBlocks.js:652 msgid "none" msgstr "" -#: js/block.js:3493 -#: js/ExtrasBlocks.js:625 +#: js/block-verbose.js:3851 +#: js/block.js:3775 +#: js/blocks/ExtrasBlocks.js:628 msgid "treble" msgstr "" -#: js/block.js:3494 -#: js/ExtrasBlocks.js:629 +#: js/block-verbose.js:3852 +#: js/block.js:3776 +#: js/blocks/ExtrasBlocks.js:632 msgid "grand staff" msgstr "" -#: js/block.js:3495 -#: js/ExtrasBlocks.js:633 +#: js/block-verbose.js:3853 +#: js/block.js:3777 +#: js/blocks/ExtrasBlocks.js:636 msgid "mezzo-soprano" msgstr "" -#: js/block.js:3496 -#: js/ExtrasBlocks.js:637 +#: js/block-verbose.js:3854 +#: js/block.js:3778 +#: js/blocks/ExtrasBlocks.js:640 msgid "alto" msgstr "" -#: js/block.js:3497 -#: js/ExtrasBlocks.js:641 +#: js/block-verbose.js:3855 +#: js/block.js:3779 +#: js/blocks/ExtrasBlocks.js:644 msgid "tenor" msgstr "" -#: js/block.js:3498 -#: js/ExtrasBlocks.js:645 -#: js/musicutils.js:736 -#: js/synthutils.js:64 +#: js/block-verbose.js:3856 +#: js/block.js:3780 +#: js/utils/musicutils.js:1115 +#: js/utils/synthutils.js:80 +#: js/blocks/ExtrasBlocks.js:648 #.TRANS: musical instrument msgid "bass" msgstr "" -#: js/block.js:4075 +#: js/block-verbose.js:3901 +#: js/block.js:3825 +#: js/blocks.js:2600 +#: js/blocks.js:3211 +msgid "on2" +msgstr "" + +#: js/block-verbose.js:3903 +#: js/block.js:3827 +#: js/blocks.js:2602 +#: js/blocks.js:3213 +msgid "off" +msgstr "" + +#: js/block-verbose.js:4470 +#: js/block.js:4394 msgid "Not a number" msgstr "" -#: js/block.js:4082 +#: js/block-verbose.js:4477 +#: js/block.js:4401 msgid "Octave value must be between 1 and 10." msgstr "" -#: js/block.js:4090 +#: js/block-verbose.js:4485 +#: js/block.js:4409 msgid "Numbers can have at most 10 digits." msgstr "" -#: js/notation.js:353 -msgid "Lilypond cannot process pickup of " +#: js/activity.js:390 +#: js/activity.js:395 +msgid "Search for blocks" msgstr "" -#: js/turtledefs.js:40 -#.TRANS: put the URL to the guide here, e.g., https://github.com/sugarlabs/turtleblocksjs/tree/master/guide/README.md -msgid "guide url" +#: js/activity.js:1413 +msgid "Refresh your browser to change to advanced mode." msgstr "" -#: js/turtledefs.js:85 -#: js/turtledefs.js:437 -msgid "Turtle Blocks is a Logo-inspired turtle that draws colorful pictures with snap-together visual-programming blocks." +#: js/activity.js:1418 +msgid "Refresh your browser to change to beginner mode." msgstr "" -#: js/turtledefs.js:118 -#: js/turtledefs.js:220 -msgid "search" +#: js/activity.js:1477 +msgid "Catching mice" msgstr "" -#: js/turtledefs.js:120 -#: js/turtledefs.js:222 -#: js/WidgetBlocks.js:437 -#: js/MeterBlocks.js:1343 -#.TRANS: musical meter (time signature), e.g., 4:4 -msgid "meter" +#: js/activity.js:1478 +msgid "Cleaning the instruments" msgstr "" -#: js/turtledefs.js:122 -#: js/turtledefs.js:224 -msgid "intervals" +#: js/activity.js:1479 +msgid "Testing key pieces" msgstr "" -#: js/turtledefs.js:124 -#: js/turtledefs.js:226 -msgid "ornament" +#: js/activity.js:1480 +msgid "Sight-reading" +msgstr "" + +#: js/activity.js:1481 +msgid "Combining math and music" +msgstr "" + +#: js/activity.js:1482 +msgid "Generating more blocks" +msgstr "" + +#: js/activity.js:1483 +msgid "Do Re Mi Fa Sol La Ti Do" +msgstr "" + +#: js/activity.js:1484 +msgid "Tuning string instruments" +msgstr "" + +#: js/activity.js:1485 +msgid "Pressing random keys" +msgstr "" + +#: js/activity.js:1663 +msgid "plugins will be removed upon restart." +msgstr "" + +#: js/activity.js:1672 +msgid "show Cartesian" +msgstr "" + +#: js/activity.js:2211 +#: js/palette.js:589 +#: js/blocks/RhythmBlocks.js:923 +#: js/blocks/PitchBlocks.js:442 +#: js/blocks/PitchBlocks.js:1786 +#.TRANS: a numeric mapping of the notes in an octave based on the musical mode +msgid "scale degree" +msgstr "" + +#: js/activity.js:2214 +#: js/palette.js:598 +msgid "voice name" +msgstr "" + +#: js/activity.js:2217 +#: js/palette.js:595 +msgid "invert mode" +msgstr "" + +#: js/activity.js:2220 +msgid "output tools" +msgstr "" + +#: js/activity.js:2223 +msgid "custom note" +msgstr "" + +#: js/activity.js:2226 +msgid "accidental name" +msgstr "" + +#: js/activity.js:2229 +#: js/blocks/PitchBlocks.js:855 +msgid "east indian solfege" +msgstr "" + +#: js/activity.js:2232 +#: js/blocks/PitchBlocks.js:869 +msgid "note name" +msgstr "" + +#: js/activity.js:2235 +#: js/blocks/IntervalsBlocks.js:94 +msgid "temperament name" +msgstr "" + +#: js/activity.js:2238 +#: js/palette.js:592 +msgid "mode name" +msgstr "" + +#: js/activity.js:2241 +msgid "chord name" +msgstr "" + +#: js/activity.js:2244 +#: js/palette.js:615 +msgid "interval name" +msgstr "" + +#: js/activity.js:2247 +msgid "filter type" +msgstr "" + +#: js/activity.js:2250 +msgid "oscillator type" +msgstr "" + +#: js/activity.js:2253 +#: js/blocks.js:2479 +#: js/blocks.js:2487 +msgid "audio file" +msgstr "" + +#: js/activity.js:2256 +#: js/blocks/DrumBlocks.js:32 +msgid "noise name" +msgstr "" + +#: js/activity.js:2259 +#: js/blocks/DrumBlocks.js:75 +msgid "drum name" +msgstr "" + +#: js/activity.js:2262 +#: js/blocks/DrumBlocks.js:119 +msgid "effects name" +msgstr "" + +#: js/activity.js:2265 +msgid "wrap mode" +msgstr "" + +#: js/activity.js:2268 +msgid "load file" +msgstr "" + +#: js/activity.js:2435 +#: js/activity.js:5851 +msgid "This block is deprecated." +msgstr "" + +#: js/activity.js:2437 +#: js/activity.js:5853 +msgid "Block cannot be found." +msgstr "" + +#: js/activity.js:2645 +msgid "Saving block artwork" +msgstr "" + +#: js/activity.js:2656 +msgid "Erase" +msgstr "" + +#: js/activity.js:2683 +#: js/activity.js:2705 +msgid "Paste" +msgstr "Komeka" + +#: js/activity.js:2687 +msgid "Save block help" +msgstr "" + +#: js/activity.js:2772 +msgid "Jumping to the bottom of the page." +msgstr "" + +#: js/activity.js:2778 +msgid "Scrolling up." +msgstr "" + +#: js/activity.js:2783 +msgid "Scrolling down." +msgstr "" + +#: js/activity.js:2788 +msgid "Extracting block" +msgstr "" + +#: js/activity.js:2796 +msgid "Moving block up." +msgstr "" + +#: js/activity.js:2817 +msgid "Moving block down." +msgstr "" + +#: js/activity.js:2838 +msgid "Moving block left." +msgstr "" + +#: js/activity.js:2855 +msgid "Moving block right." +msgstr "" + +#: js/activity.js:2870 +msgid "Jump to home position." +msgstr "" + +#: js/activity.js:2897 +msgid "Hide blocks" msgstr "" -#: js/turtledefs.js:125 -#: js/turtledefs.js:227 -#: js/VolumeBlocks.js:362 -#: js/VolumeBlocks.js:502 -#: js/VolumeBlocks.js:545 -msgid "volume" +#: js/activity.js:4500 +msgid "Click the run button to run the project." msgstr "" -#: js/turtledefs.js:129 -#: js/turtledefs.js:231 -msgid "boxes" +#: js/activity.js:5692 +msgid "Show/hide block" msgstr "" -#: js/turtledefs.js:130 -#: js/turtledefs.js:232 -msgid "widgets" +#: js/activity.js:5698 +msgid "Expand/collapse blocks" msgstr "" -#: js/turtledefs.js:131 -#: js/turtledefs.js:233 -#: js/phrasemaker.js:824 -msgid "graphics" +#: js/activity.js:5976 +msgid "Could not parse JSON input." msgstr "" -#: js/turtledefs.js:134 -#: js/turtledefs.js:236 -msgid "boolean" +#: js/activity.js:6475 +#: js/activity.js:6580 +#: js/activity.js:6631 +msgid "Cannot load project from the file. Please check the file type." msgstr "" -#: js/turtledefs.js:137 -#: js/turtledefs.js:239 -#: js/HeapBlocks.js:59 -#: js/status.js:147 -msgid "heap" +#: js/activity.js:6917 +msgid "Invalid parameters" msgstr "" -#: js/turtledefs.js:138 -#: js/turtledefs.js:240 -#: js/ProgramBlocks.js:495 -#: js/DictBlocks.js:142 -msgid "dictionary" +#: js/blocks.js:1212 +#: js/blocks.js:3444 +#: js/blocks.js:3834 +#: js/blocks.js:3865 +#: js/blocks.js:3914 +#: js/blocks.js:3949 +#: js/blocks.js:6586 +#: js/palette.js:509 +#: js/palette.js:638 +#: js/palette.js:1105 +#: js/blocks/BoxesBlocks.js:282 +#: js/blocks/BoxesBlocks.js:285 +#: js/blocks/BoxesBlocks.js:405 +#: js/blocks/BoxesBlocks.js:594 +msgid "box" +msgstr "ikarito" + +#: js/blocks.js:1713 +msgid "Consider breaking this stack into parts." msgstr "" -#: js/turtledefs.js:139 -#: js/turtledefs.js:241 -msgid "ensemble" +#: js/blocks.js:2472 +#: js/palette.js:653 +#: js/blocks/MediaBlocks.js:602 +msgid "open file" msgstr "" -#: js/turtledefs.js:140 -#: js/turtledefs.js:242 -msgid "extras" +#: js/blocks.js:3247 +#: js/palette.js:574 +#: js/blocks/MediaBlocks.js:892 +#: js/blocks/MediaBlocks.js:963 +msgid "text" +msgstr "inyandiko" + +#: js/blocks.js:3443 +#: js/palette.js:641 +#: js/palette.js:642 +#: js/blocks/BoxesBlocks.js:514 +msgid "store in box" msgstr "" -#: js/turtledefs.js:142 -#: js/turtledefs.js:244 -#.TRANS: program as in computer program -#.TRANS: program as in computer program -msgid "program" +#: js/blocks.js:3448 +#: js/blocks.js:3888 +#: js/blocks.js:3923 +#: js/blocks.js:3958 +#: js/blocks.js:5862 +#: js/blocks.js:5883 +#: js/blocks/BoxesBlocks.js:772 +msgid "box1" msgstr "" -#: js/turtledefs.js:143 -#: js/turtledefs.js:245 -msgid "my blocks" +#: js/blocks.js:3450 +#: js/blocks.js:3890 +#: js/blocks.js:3925 +#: js/blocks.js:3960 +#: js/blocks.js:5864 +#: js/blocks.js:5885 +#: js/blocks/BoxesBlocks.js:663 +msgid "box2" msgstr "" -#: js/turtledefs.js:185 -#: js/turtledefs.js:281 -msgid "artwork" +#: js/blocks.js:4122 +#: js/palette.js:639 +#: js/palette.js:644 +#: js/palette.js:1041 +#: js/blocks/BoxesBlocks.js:591 +msgid "store in" +msgstr "bika mu" + +#: js/blocks.js:4122 +#: js/blocks/BoxesBlocks.js:595 +#: js/blocks/DictBlocks.js:215 +#: js/blocks/DictBlocks.js:289 +#: js/blocks/EnsembleBlocks.js:391 +#: js/blocks/EnsembleBlocks.js:402 +#: js/blocks/MediaBlocks.js:746 +#: js/blocks/PitchBlocks.js:656 +#: js/blocks/PitchBlocks.js:934 +#: js/blocks/PitchBlocks.js:1866 +#: js/blocks/ProgramBlocks.js:390 +#: js/blocks/ProgramBlocks.js:495 +#: js/blocks/ProgramBlocks.js:658 +#: js/blocks/ToneBlocks.js:1025 +msgid "name" msgstr "" -#: js/turtledefs.js:185 -#: js/turtledefs.js:281 -msgid "logic" +#: js/blocks.js:4122 +#: js/blocks/BoxesBlocks.js:75 +#: js/blocks/BoxesBlocks.js:595 +#: js/blocks/DictBlocks.js:289 +#: js/blocks/DictBlocks.js:430 +#: js/blocks/HeapBlocks.js:544 +#: js/blocks/RhythmBlocks.js:1130 +msgid "value" +msgstr "agaciro" + +#: js/blocks.js:4465 +msgid "Forever loop detected inside a note value block. Unexpected things may happen." msgstr "" -#: js/turtledefs.js:185 -#: js/turtledefs.js:281 -msgid "music" +#: js/blocks.js:4988 +msgid "There is no block selected." msgstr "" -#: js/turtledefs.js:187 -#: js/turtledefs.js:463 -msgid "Music Blocks is a collection of tools for exploring fundamental musical concepts in a fun way." +#: js/blocks.js:5091 +#: js/blocks/MediaBlocks.js:888 +msgid "show" +msgstr "erekana" + +#: js/blocks.js:5094 +#: js/blocks/MediaBlocks.js:803 +#.TRANS: Avatar is the image used to determine the appearance of the mouse. +msgid "avatar" msgstr "" -#: js/turtledefs.js:436 -msgid "Welcome to Turtle Blocks" +#: js/blocks.js:5097 +#: js/blocks/ToneBlocks.js:1010 +#: js/widgets/sampler.js:975 +#.TRANS: The sound sample that the user uploads. +msgid "sample" msgstr "" -#: js/turtledefs.js:438 -#: js/turtledefs.js:465 -#: js/turtledefs.js:774 -#: js/turtledefs.js:805 -msgid "The current version is" +#: js/lilypond.js:606 +msgid "brown rat" msgstr "" -#: js/turtledefs.js:446 -#: js/turtledefs.js:483 -msgid "Click the run button to run the project in fast mode." +#: js/lilypond.js:607 +msgid "mole" msgstr "" -#: js/turtledefs.js:452 -msgid "Stop the turtle." +#: js/lilypond.js:608 +msgid "chipmunk" msgstr "" -#: js/turtledefs.js:454 -#: js/turtledefs.js:491 -msgid "You can also type Alt-S to stop." +#: js/lilypond.js:609 +msgid "red squirrel" msgstr "" -#: js/turtledefs.js:462 -#: js/help.js:333 -msgid "Welcome to Music Blocks" +#: js/lilypond.js:610 +msgid "guinea pig" msgstr "" -#: js/turtledefs.js:472 -#: js/help.js:334 -msgid "Meet Mr. Mouse!" +#: js/lilypond.js:611 +msgid "capybara" msgstr "" -#: js/turtledefs.js:473 -msgid "Mr Mouse is our Music Blocks conductor." +#: js/lilypond.js:612 +msgid "coypu" msgstr "" -#: js/turtledefs.js:475 -msgid "Mr Mouse encourages you to explore Music Blocks." +#: js/lilypond.js:613 +msgid "black rat" msgstr "" -#: js/turtledefs.js:477 -msgid "Let us start our tour!" +#: js/lilypond.js:614 +msgid "grey squirrel" msgstr "" -#: js/turtledefs.js:489 -msgid "Stop the music (and the mice)." +#: js/lilypond.js:615 +msgid "flying squirrel" msgstr "" -#: js/turtledefs.js:499 -msgid "Record your project as video." +#: js/lilypond.js:616 +msgid "bat" msgstr "" -#: js/turtledefs.js:505 -msgid "Toggle Fullscreen mode." +#: js/lilypond.js:749 +#: js/lilypond.js:913 +#: js/lilypond.js:951 +#: js/blocks/ActionBlocks.js:1256 +#: js/blocks/ExtrasBlocks.js:556 +msgid "start drum" msgstr "" -#: js/turtledefs.js:511 -msgid "Initialize a new project." +#: js/logo.js:61 +msgid "Not a valid pitch name" msgstr "" -#: js/turtledefs.js:517 -msgid "You can also load projects from the file system." +#: js/logo.js:507 +#: js/blocks/ProgramBlocks.js:258 +#: js/blocks/ProgramBlocks.js:427 +msgid "You must select a file." msgstr "" -#: js/turtledefs.js:522 -#: js/StringHelper.js:46 -msgid "Delete" +#: js/logo.js:1696 +msgid "Playback is ready." msgstr "" -#: js/turtledefs.js:523 -msgid "To delete a block, just right-click on it, then you will be able to see the delete option" +#: js/macros.js:711 +#: js/utils/musicutils.js:1162 +#: js/utils/synthutils.js:202 +#.TRANS: animal sound effect +msgid "duck" msgstr "" -#: js/turtledefs.js:528 -#: js/activity.js:2270 -#: js/LocalCard.js:31 -msgid "Copy" -msgstr "Koporora" +#: js/notation.js:353 +msgid "Lilypond cannot process pickup of " +msgstr "" -#: js/turtledefs.js:529 -msgid "To copy a block, just right-click on it, then you will be able to see the copy option" +#: js/palette.js:571 +msgid "grid" msgstr "" -#: js/turtledefs.js:535 -msgid "To extract a block, just right-click on it, then you will be able to see the extract option" +#: js/palette.js:580 +msgid "effect" msgstr "" -#: js/turtledefs.js:542 -#: js/turtledefs.js:552 -#: js/turtledefs.js:573 -msgid "Save your project to a file." +#: js/palette.js:586 +msgid "sargam" msgstr "" -#: js/turtledefs.js:549 -#: js/turtledefs.js:570 -msgid "save" +#: js/palette.js:601 +#: js/blocks/PitchBlocks.js:1209 +msgid "custom pitch" msgstr "" -#: js/turtledefs.js:556 -#: js/turtledefs.js:577 -msgid "Save graphics from your project to as SVG." +#: js/palette.js:609 +msgid "accidental" msgstr "" -#: js/turtledefs.js:560 -#: js/turtledefs.js:581 -msgid "Save graphics from your project as PNG." +#: js/palette.js:633 +#: js/blocks/PitchBlocks.js:405 +msgid "pitch converter" msgstr "" -#: js/turtledefs.js:564 -#: js/turtledefs.js:597 -msgid "Save block artwork as an SVG file." +#: js/piemenus.js:200 +#: js/utils/musicutils.js:1187 +#: js/utils/musicutils.js:1207 +#: js/widgets/musickeyboard.js:2341 +#: js/widgets/phrasemaker.js:1908 +#: js/widgets/sampler.js:810 +#.TRANS: double sharp is a music term related to pitch +msgid "double sharp" msgstr "" -#: js/turtledefs.js:585 -msgid "Save audio from your project as WAV." +#: js/piemenus.js:201 +#: js/utils/musicutils.js:1185 +#: js/utils/musicutils.js:1208 +#: js/blocks/PitchBlocks.js:1539 +#: js/turtleactions/PitchActions.js:323 +#: js/widgets/musickeyboard.js:2342 +#: js/widgets/phrasemaker.js:1909 +#: js/widgets/sampler.js:811 +#.TRANS: sharp is a music term related to pitch +#.TRANS: sharp is a half-step up in pitch +msgid "sharp" msgstr "" -#: js/turtledefs.js:589 -msgid "Save your project to as an ABC file." +#: js/piemenus.js:202 +#: js/utils/musicutils.js:1183 +#: js/utils/musicutils.js:1209 +#: js/widgets/musickeyboard.js:2343 +#: js/widgets/phrasemaker.js:1910 +#: js/widgets/sampler.js:812 +#.TRANS: natural is a music term related to pitch +msgid "natural" msgstr "" -#: js/turtledefs.js:593 -msgid "Save your project to as a Lilypond file." +#: js/piemenus.js:203 +#: js/utils/musicutils.js:1181 +#: js/utils/musicutils.js:1210 +#: js/blocks/PitchBlocks.js:1498 +#: js/turtleactions/PitchActions.js:326 +#: js/widgets/musickeyboard.js:2344 +#: js/widgets/phrasemaker.js:1911 +#: js/widgets/sampler.js:813 +#.TRANS: flat is a music term related to pitch +#.TRANS: flat is a half-step down in pitch +msgid "flat" msgstr "" -#: js/turtledefs.js:604 -msgid "Load samples from server" +#: js/piemenus.js:204 +#: js/utils/musicutils.js:1179 +#: js/utils/musicutils.js:1211 +#: js/widgets/musickeyboard.js:2345 +#: js/widgets/phrasemaker.js:1912 +#: js/widgets/sampler.js:814 +#.TRANS: double flat is a music term related to pitch +msgid "double flat" msgstr "" -#: js/turtledefs.js:605 -msgid "This button opens a viewer for loading example projects." +#: js/piemenus.js:2864 +#: js/utils/musicutils.js:1006 +#: js/blocks/PitchBlocks.js:1385 +#.TRANS: unison is a music term related to intervals +#.TRANS: unison means the note is the same as the current note +msgid "unison" msgstr "" -#: js/turtledefs.js:611 -msgid "Palette buttons" +#: js/piemenus.js:3018 +#: js/piemenus.js:3091 +#: js/utils/musicutils.js:1014 +#: js/utils/musicutils.js:1189 +#: js/utils/musicutils.js:1326 +#.TRANS: major is a music term related to intervals and mode +msgid "major" msgstr "" -#: js/turtledefs.js:612 -msgid "This toolbar contains the palette buttons including Rhythm Pitch Tone Action and more." +#: js/piemenus.js:3018 +#: js/piemenus.js:3091 +#: js/utils/musicutils.js:1032 +#.TRANS: modal scale for music +msgid "ionian" msgstr "" -#: js/turtledefs.js:614 -msgid "Click to show the palettes of blocks and drag blocks from the palettes onto the canvas to use them." +#: js/piemenus.js:3020 +#: js/piemenus.js:3095 +#: js/utils/musicutils.js:1012 +#: js/utils/musicutils.js:1190 +#: js/utils/musicutils.js:1323 +#.TRANS: minor is a music term related to intervals and mode +msgid "minor" msgstr "" -#: js/turtledefs.js:620 -msgid "Cartesian/Polar" +#: js/piemenus.js:3020 +#: js/piemenus.js:3095 +#: js/utils/musicutils.js:1042 +#.TRANS: modal scale for music +msgid "aeolian" msgstr "" -#: js/turtledefs.js:621 -msgid "Show or hide a coordinate grid." +#: js/piemenus.js:3410 +msgid "Duplicate" msgstr "" -#: js/turtledefs.js:627 -msgid "Clear the screen and return the mice to their initial positions." +#: js/piemenus.js:3412 +msgid "Move to trash" msgstr "" -#: js/turtledefs.js:633 -msgid "Collapse the graphics window." +#: js/piemenus.js:3413 +#: js/widgets/timbre.js:968 +#: planet/js/StringHelper.js:69 +msgid "Close" msgstr "" -#: js/turtledefs.js:638 -#: js/activity.js:4256 -#: js/activity.js:4256 -msgid "Home" +#: js/piemenus.js:3419 +msgid "Save stack" msgstr "" -#: js/turtledefs.js:639 -msgid "Return all blocks to the center of the screen." +#: js/piemenus.js:3449 +msgid "In order to copy a sample, you must reload the widget, import the sample again, and export it." msgstr "" -#: js/turtledefs.js:644 -msgid "Show/hide blocks" +#: js/piemenus.js:3812 +msgid "You have chosen key " msgstr "" -#: js/turtledefs.js:645 -msgid "Hide or show the blocks and the palettes." +#: js/piemenus.js:3816 +msgid " for your pitch preview." msgstr "" -#: js/turtledefs.js:650 -msgid "Expand/collapse collapsable blocks" +#: js/turtle-singer.js:1363 +#.TRANS: partials are weighted components in a harmonic series +msgid "You must have at least one Partial block inside of a Weighted-partial block" msgstr "" -#: js/turtledefs.js:651 -msgid "Expand or collapse start and action stacks." +#: js/turtle-singer.js:2077 +msgid "synth cannot play chords." msgstr "" -#: js/turtledefs.js:658 -#: js/activity.js:4265 -msgid "Decrease block size" +#: js/utils/musicutils.js:505 +#: js/utils/musicutils.js:645 +#: js/widgets/pitchdrummatrix.js:228 +#: js/widgets/musickeyboard.js:2885 +msgid "rest" msgstr "" -#: js/turtledefs.js:659 -msgid "Decrease the size of the blocks." +#: js/utils/musicutils.js:689 +msgid "Perfect unison" msgstr "" -#: js/turtledefs.js:664 -#: js/activity.js:4267 -msgid "Increase block size" +#: js/utils/musicutils.js:689 +msgid "Diminished second" msgstr "" -#: js/turtledefs.js:665 -msgid "Increase the size of the blocks." +#: js/utils/musicutils.js:690 +msgid "Minor second" msgstr "" -#: js/turtledefs.js:670 -msgid "Expand/collapse option toolbar" +#: js/utils/musicutils.js:690 +msgid "Augmented unison" msgstr "" -#: js/turtledefs.js:671 -msgid "Click this button to expand or collapse the auxillary toolbar." +#: js/utils/musicutils.js:691 +msgid "Major second" msgstr "" -#: js/turtledefs.js:676 -msgid "Run slow" +#: js/utils/musicutils.js:691 +msgid "Diminished third" msgstr "" -#: js/turtledefs.js:677 -msgid "Click to run the project in slow mode." +#: js/utils/musicutils.js:692 +msgid "Minor third" msgstr "" -#: js/turtledefs.js:683 -msgid "Click to run the project step by step." +#: js/utils/musicutils.js:692 +msgid "Augmented second" msgstr "" -#: js/turtledefs.js:690 -msgid "Display statistics about your Music project." +#: js/utils/musicutils.js:693 +msgid "Major third" msgstr "" -#: js/turtledefs.js:697 -msgid "Delete a selected plugin." +#: js/utils/musicutils.js:693 +msgid "Diminished fourth" msgstr "" -#: js/turtledefs.js:704 -msgid "Enable scrolling" +#: js/utils/musicutils.js:694 +msgid "Perfect fourth" msgstr "" -#: js/turtledefs.js:705 -msgid "You can scroll the blocks on the canvas." +#: js/utils/musicutils.js:694 +msgid "Augmented third" msgstr "" -#: js/turtledefs.js:714 -msgid "Wrap Turtle" +#: js/utils/musicutils.js:695 +msgid "Diminished fifth" msgstr "" -#: js/turtledefs.js:715 -msgid "Turn Turtle wrapping On or Off." +#: js/utils/musicutils.js:695 +msgid "Augmented fourth" msgstr "" -#: js/turtledefs.js:725 -msgid "Restore blocks from the trash." +#: js/utils/musicutils.js:696 +msgid "Perfect fifth" msgstr "" -#: js/turtledefs.js:732 -msgid "Switch mode" +#: js/utils/musicutils.js:696 +msgid "Diminished sixth" msgstr "" -#: js/turtledefs.js:733 -msgid "Switch between beginner and advance modes." +#: js/utils/musicutils.js:697 +msgid "Minor sixth" msgstr "" -#: js/turtledefs.js:739 -msgid "Select your language preference." +#: js/utils/musicutils.js:697 +msgid "Augmented fifth" msgstr "" -#: js/turtledefs.js:745 -msgid "Keyboard shortcuts" +#: js/utils/musicutils.js:698 +msgid "Major sixth" msgstr "" -#: js/turtledefs.js:746 -msgid "You can type d to create a do block and r to create a re block etc." +#: js/utils/musicutils.js:698 +msgid "Diminished seventh" msgstr "" -#: js/turtledefs.js:753 -msgid "Show these messages." +#: js/utils/musicutils.js:699 +msgid "Minor seventh" msgstr "" -#: js/turtledefs.js:759 -#: js/turtledefs.js:790 -#: js/help.js:335 -msgid "Guide" +#: js/utils/musicutils.js:699 +msgid "Augmented sixth" msgstr "" -#: js/turtledefs.js:760 -msgid "A detailed guide to Turtle Blocks is available." +#: js/utils/musicutils.js:700 +msgid "Major seventh" msgstr "" -#: js/turtledefs.js:764 -msgid "Turtle Blocks Guide" +#: js/utils/musicutils.js:700 +msgid "Diminished octave" msgstr "" -#: js/turtledefs.js:767 -#: js/turtledefs.js:798 -#: js/help.js:336 -msgid "About" +#: js/utils/musicutils.js:701 +msgid "Perfect octave" msgstr "" -#: js/turtledefs.js:768 -msgid "Turtle Blocks is an open source collection of tools for exploring musical concepts." +#: js/utils/musicutils.js:701 +msgid "Augmented seventh" msgstr "" -#: js/turtledefs.js:770 -msgid "A full list of contributors can be found in the Turtle Blocks GitHub repository." +#: js/utils/musicutils.js:702 +msgid "Minor ninth" msgstr "" -#: js/turtledefs.js:772 -msgid "Turtle Blocks is licensed under the AGPL." +#: js/utils/musicutils.js:702 +msgid "Augmented octave" msgstr "" -#: js/turtledefs.js:780 -msgid "Turtle Blocks GitHub repository" +#: js/utils/musicutils.js:703 +msgid "Major ninth" msgstr "" -#: js/turtledefs.js:783 -#: js/turtledefs.js:814 -#: js/help.js:337 -#: js/help.js:359 -msgid "Congratulations." +#: js/utils/musicutils.js:703 +msgid "Diminished tenth" msgstr "" -#: js/turtledefs.js:784 -msgid "You have finished the tour. Please enjoy Turtle Blocks!" +#: js/utils/musicutils.js:704 +msgid "Minor tenth" msgstr "" -#: js/turtledefs.js:791 -msgid "A detailed guide to Music Blocks is available." +#: js/utils/musicutils.js:704 +msgid "Augmented ninth" msgstr "" -#: js/turtledefs.js:795 -#: js/SaveInterface.js:76 -msgid "Music Blocks Guide" +#: js/utils/musicutils.js:705 +msgid "Major tenth" msgstr "" -#: js/turtledefs.js:799 -msgid "Music Blocks is an open source collection of tools for exploring musical concepts." +#: js/utils/musicutils.js:705 +msgid "Diminished eleventh" msgstr "" -#: js/turtledefs.js:801 -msgid "A full list of contributors can be found in the Music Blocks GitHub repository." +#: js/utils/musicutils.js:706 +msgid "Perfect eleventh" msgstr "" -#: js/turtledefs.js:803 -msgid "Music Blocks is licensed under the AGPL." +#: js/utils/musicutils.js:706 +msgid "Augmented tenth" msgstr "" -#: js/turtledefs.js:811 -msgid "Music Blocks GitHub repository" +#: js/utils/musicutils.js:707 +msgid "Diminished twelfth" msgstr "" -#: js/turtledefs.js:815 -msgid "You have finished the tour. Please enjoy Music Blocks!" +#: js/utils/musicutils.js:707 +msgid "Augmented eleventh" msgstr "" -#: js/activity.js:369 -msgid "Search for blocks" +#: js/utils/musicutils.js:708 +msgid "Perfect twelfth" msgstr "" -#: js/activity.js:1145 -msgid "Refresh your browser to change to advanced mode." +#: js/utils/musicutils.js:708 +msgid "Diminished thirteenth" msgstr "" -#: js/activity.js:1150 -msgid "Refresh your browser to change to beginner mode." +#: js/utils/musicutils.js:709 +msgid "Minor thirteenth" msgstr "" -#: js/activity.js:1184 -msgid "Catching mice" +#: js/utils/musicutils.js:709 +msgid "Augmented fifth, plus an octave" msgstr "" -#: js/activity.js:1185 -msgid "Cleaning the instruments" +#: js/utils/musicutils.js:710 +msgid "Major thirteenth" msgstr "" -#: js/activity.js:1186 -msgid "Testing key pieces" +#: js/utils/musicutils.js:710 +msgid "Diminished seventh, plus an octave" msgstr "" -#: js/activity.js:1187 -msgid "Sight-reading" +#: js/utils/musicutils.js:838 +#.TRANS: ordinal number. Please keep exactly one space between each number. +msgid "1st 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th" msgstr "" -#: js/activity.js:1188 -msgid "Combining math and music" +#: js/utils/musicutils.js:1008 +#: js/utils/musicutils.js:1191 +#: js/utils/musicutils.js:1325 +#.TRANS: augmented is a music term related to intervals +msgid "augmented" msgstr "" -#: js/activity.js:1189 -msgid "Generating more blocks" +#: js/utils/musicutils.js:1010 +#: js/utils/musicutils.js:1192 +#: js/utils/musicutils.js:1324 +#.TRANS: diminished is a music term related to intervals and mode +msgid "diminished" msgstr "" -#: js/activity.js:1190 -msgid "Do Re Mi Fa Sol La Ti Do" +#: js/utils/musicutils.js:1016 +#: js/utils/musicutils.js:1322 +#: js/blocks/IntervalsBlocks.js:649 +#: js/turtleactions/IntervalsActions.js:120 +#: js/turtleactions/IntervalsActions.js:124 +#.TRANS: perfect is a music term related to intervals +msgid "perfect" msgstr "" -#: js/activity.js:1191 -msgid "Tuning string instruments" +#: js/utils/musicutils.js:1018 +#.TRANS: twelve semi-tone scale for music +msgid "chromatic" msgstr "" -#: js/activity.js:1192 -msgid "Pressing random keys" +#: js/utils/musicutils.js:1019 +msgid "algerian" msgstr "" -#: js/activity.js:1351 -msgid "plugins will be removed upon restart." +#: js/utils/musicutils.js:1020 +msgid "spanish" msgstr "" -#: js/activity.js:1360 -msgid "show Cartesian" +#: js/utils/musicutils.js:1022 +#.TRANS: modal scale in music +msgid "octatonic" msgstr "" -#: js/activity.js:1842 -msgid "output tools" +#: js/utils/musicutils.js:1024 +#.TRANS: harmonic major scale in music +msgid "harmonic major" msgstr "" -#: js/activity.js:1845 -msgid "custom note" +#: js/utils/musicutils.js:1026 +#.TRANS: natural minor scales in music +msgid "natural minor" msgstr "" -#: js/activity.js:1848 -msgid "accidental name" +#: js/utils/musicutils.js:1028 +#.TRANS: harmonic minor scale in music +msgid "harmonic minor" msgstr "" -#: js/activity.js:1851 -#: js/PitchBlocks.js:855 -msgid "east indian solfege" +#: js/utils/musicutils.js:1030 +#.TRANS: melodic minor scale in music +msgid "melodic minor" msgstr "" -#: js/activity.js:1854 -#: js/PitchBlocks.js:869 -msgid "note name" +#: js/utils/musicutils.js:1034 +#.TRANS: modal scale for music +msgid "dorian" msgstr "" -#: js/activity.js:1857 -#: js/IntervalsBlocks.js:94 -msgid "temperament name" +#: js/utils/musicutils.js:1036 +#.TRANS: modal scale for music +msgid "phrygian" msgstr "" -#: js/activity.js:1863 -msgid "chord name" +#: js/utils/musicutils.js:1038 +#.TRANS: modal scale for music +msgid "lydian" msgstr "" -#: js/activity.js:1869 -msgid "filter type" +#: js/utils/musicutils.js:1040 +#.TRANS: modal scale for music +msgid "mixolydian" msgstr "" -#: js/activity.js:1872 -msgid "oscillator type" +#: js/utils/musicutils.js:1044 +#.TRANS: modal scale for music +msgid "locrian" msgstr "" -#: js/activity.js:1878 -#: js/DrumBlocks.js:32 -msgid "noise name" +#: js/utils/musicutils.js:1046 +#.TRANS: minor jazz scale for music +msgid "jazz minor" msgstr "" -#: js/activity.js:1881 -#: js/DrumBlocks.js:75 -msgid "drum name" +#: js/utils/musicutils.js:1048 +#.TRANS: bebop scale for music +msgid "bebop" msgstr "" -#: js/activity.js:1884 -#: js/DrumBlocks.js:119 -msgid "effects name" +#: js/utils/musicutils.js:1049 +msgid "arabic" msgstr "" -#: js/activity.js:1887 -msgid "wrap mode" +#: js/utils/musicutils.js:1050 +msgid "byzantine" msgstr "" -#: js/activity.js:1890 -msgid "load file" +#: js/utils/musicutils.js:1052 +#.TRANS: musical scale for music by Verdi +msgid "enigmatic" msgstr "" -#: js/activity.js:2056 -msgid "This block is deprecated." +#: js/utils/musicutils.js:1053 +msgid "ethiopian" msgstr "" -#: js/activity.js:2058 -msgid "Block cannot be found." +#: js/utils/musicutils.js:1055 +#.TRANS: Ethiopic scale for music +msgid "geez" msgstr "" -#: js/activity.js:2266 -msgid "Saving block artwork" +#: js/utils/musicutils.js:1056 +msgid "hindu" msgstr "" -#: js/activity.js:2277 -msgid "Erase" +#: js/utils/musicutils.js:1057 +msgid "hungarian" msgstr "" -#: js/activity.js:2301 -#: js/activity.js:2323 -msgid "Paste" -msgstr "Komeka" +#: js/utils/musicutils.js:1059 +#.TRANS: minor Romanian scale for music +msgid "romanian minor" +msgstr "" -#: js/activity.js:2305 -msgid "Save block help" +#: js/utils/musicutils.js:1060 +msgid "spanish gypsy" msgstr "" -#: js/activity.js:2390 -msgid "Jumping to the bottom of the page." +#: js/utils/musicutils.js:1062 +#.TRANS: musical scale for Mid-Eastern music +msgid "maqam" msgstr "" -#: js/activity.js:2396 -msgid "Scrolling up." +#: js/utils/musicutils.js:1064 +#.TRANS: minor blues scale for music +msgid "minor blues" msgstr "" -#: js/activity.js:2401 -msgid "Scrolling down." +#: js/utils/musicutils.js:1066 +#.TRANS: major blues scale for music +msgid "major blues" msgstr "" -#: js/activity.js:2406 -msgid "Extracting block" +#: js/utils/musicutils.js:1067 +msgid "whole tone" msgstr "" -#: js/activity.js:2414 -msgid "Moving block up." +#: js/utils/musicutils.js:1069 +#.TRANS: pentatonic is a general term that means "five note scale". This scale is typically known as "minor pentatonic" +msgid "minor pentatonic" msgstr "" -#: js/activity.js:2435 -msgid "Moving block down." +#: js/utils/musicutils.js:1071 +#.TRANS: pentatonic is a general term that means "five note scale". This scale is typically known as "major pentatonic" +msgid "major pentatonic" msgstr "" -#: js/activity.js:2456 -msgid "Moving block left." +#: js/utils/musicutils.js:1072 +msgid "chinese" msgstr "" -#: js/activity.js:2473 -msgid "Moving block right." +#: js/utils/musicutils.js:1073 +msgid "egyptian" msgstr "" -#: js/activity.js:2488 -msgid "Jump to home position." +#: js/utils/musicutils.js:1075 +#.TRANS: https://en.wikipedia.org/wiki/Hirajoshi_scale NOTE: There are three different versions of this scale +msgid "hirajoshi" msgstr "" -#: js/activity.js:2515 -msgid "Hide blocks" +#: js/utils/musicutils.js:1076 +msgid "Japan" msgstr "" -#: js/activity.js:3389 -msgid "Click the run button to run the project." +#: js/utils/musicutils.js:1078 +#.TRANS: https://en.wikipedia.org/wiki/In_scale and https://en.wikipedia.org/wiki/Sakura_Sakura +msgid "in" msgstr "" -#: js/activity.js:3456 -#: js/SaveInterface.js:131 -#: js/SaveInterface.js:204 -#: js/SaveInterface.js:262 -#: js/SaveInterface.js:389 -#: js/SaveInterface.js:417 -#: js/ProjectStorage.js:27 -#: js/GlobalPlanet.js:467 -#: js/GlobalPlanet.js:469 -#: js/GlobalPlanet.js:495 -#.TRANS: default project title when saving as Lilypond -msgid "My Project" +#: js/utils/musicutils.js:1080 +#.TRANS: https://en.wikipedia.org/wiki/Miny%C5%8D_scale +msgid "minyo" msgstr "" -#: js/activity.js:4261 -msgid "Show/hide block" +#: js/utils/musicutils.js:1082 +#.TRANS: Italian mathematician +msgid "fibonacci" msgstr "" -#: js/activity.js:4263 -msgid "Expand/collapse blocks" +#: js/utils/musicutils.js:1083 +#: js/utils/musicutils.js:1134 +#: js/utils/musicutils.js:1177 +#: js/utils/musicutils.js:1199 +#: js/utils/synthutils.js:134 +#: js/blocks/IntervalsBlocks.js:1124 +#: js/blocks/ToneBlocks.js:946 +#: js/blocks/VolumeBlocks.js:411 +#: js/blocks/WidgetBlocks.js:399 +#: js/blocks/WidgetBlocks.js:404 +#: js/turtleactions/VolumeActions.js:218 +#: js/widgets/modewidget.js:919 +#.TRANS: customize voice +msgid "custom" msgstr "" -#: js/activity.js:4381 -msgid "Could not parse JSON input." +#: js/utils/musicutils.js:1085 +#: js/utils/musicutils.js:1531 +#: js/blocks/WidgetBlocks.js:176 +#.TRANS: highpass filter +msgid "highpass" msgstr "" -#: js/activity.js:4684 -#: js/activity.js:4771 -#: js/activity.js:4821 -msgid "Cannot load project from the file. Please check the file type." +#: js/utils/musicutils.js:1087 +#: js/utils/musicutils.js:1532 +#.TRANS: lowpass filter +msgid "lowpass" msgstr "" -#: js/activity.js:5051 -msgid "Invalid parameters" +#: js/utils/musicutils.js:1089 +#: js/utils/musicutils.js:1533 +#.TRANS: bandpass filter +msgid "bandpass" msgstr "" -#: js/turtle-singer.js:1334 -#.TRANS: partials are weighted components in a harmonic series -msgid "You must have at least one Partial block inside of a Weighted-partial block" +#: js/utils/musicutils.js:1091 +#: js/utils/musicutils.js:1534 +#.TRANS: high-shelf filter +msgid "highshelf" msgstr "" -#: js/turtle-singer.js:2048 -msgid "synth cannot play chords." +#: js/utils/musicutils.js:1093 +#: js/utils/musicutils.js:1535 +#.TRANS: low-shelf filter +msgid "lowshelf" msgstr "" -#: js/lilypond.js:614 -msgid "brown rat" +#: js/utils/musicutils.js:1095 +#: js/utils/musicutils.js:1536 +#.TRANS: notch-shelf filter +msgid "notch" msgstr "" -#: js/lilypond.js:615 -msgid "mole" +#: js/utils/musicutils.js:1097 +#: js/utils/musicutils.js:1537 +#.TRANS: all-pass filter +msgid "allpass" msgstr "" -#: js/lilypond.js:616 -msgid "chipmunk" +#: js/utils/musicutils.js:1099 +#: js/utils/musicutils.js:1538 +#.TRANS: peaking filter +msgid "peaking" msgstr "" -#: js/lilypond.js:617 -msgid "red squirrel" +#: js/utils/musicutils.js:1100 +#: js/utils/musicutils.js:1546 +#: js/utils/synthutils.js:126 +#: js/blocks/PitchBlocks.js:85 +#.TRANS: sine wave +msgid "sine" msgstr "" -#: js/lilypond.js:618 -msgid "guinea pig" +#: js/utils/musicutils.js:1101 +#: js/utils/musicutils.js:1547 +#: js/utils/synthutils.js:128 +#: js/blocks/PitchBlocks.js:39 +#.TRANS: square wave +msgid "square" msgstr "" -#: js/lilypond.js:619 -msgid "capybara" +#: js/utils/musicutils.js:1102 +#: js/utils/musicutils.js:1548 +#: js/utils/synthutils.js:132 +#: js/blocks/PitchBlocks.js:62 +#: js/blocks/ToneBlocks.js:39 +#.TRANS: triangle wave +msgid "triangle" msgstr "" -#: js/lilypond.js:620 -msgid "coypu" +#: js/utils/musicutils.js:1103 +#: js/utils/musicutils.js:1549 +#: js/utils/synthutils.js:130 +#: js/blocks/PitchBlocks.js:108 +#.TRANS: sawtooth wave +msgid "sawtooth" msgstr "" -#: js/lilypond.js:621 -msgid "black rat" +#: js/utils/musicutils.js:1105 +#: js/utils/musicutils.js:1312 +#: js/blocks/PitchBlocks.js:931 +#: js/blocks/PitchBlocks.js:937 +#: js/turtleactions/PitchActions.js:469 +#.TRANS: even numbers +#.TRANS: invert based on even or odd number or musical scale +msgid "even" msgstr "" -#: js/lilypond.js:622 -msgid "grey squirrel" +#: js/utils/musicutils.js:1107 +#: js/utils/musicutils.js:1313 +#: js/blocks/PitchBlocks.js:937 +#: js/turtleactions/PitchActions.js:471 +#.TRANS: odd numbers +msgid "odd" msgstr "" -#: js/lilypond.js:623 -msgid "flying squirrel" +#: js/utils/musicutils.js:1108 +#: js/utils/musicutils.js:1314 +#: js/blocks/PitchBlocks.js:937 +#: js/turtleactions/PitchActions.js:473 +msgid "scalar" msgstr "" -#: js/lilypond.js:624 -msgid "bat" +#: js/utils/musicutils.js:1109 +#: js/utils/synthutils.js:72 +#: js/blocks/VolumeBlocks.js:47 +#.TRANS: musical instrument +msgid "piano" msgstr "" -#: js/lilypond.js:757 -#: js/lilypond.js:921 -#: js/lilypond.js:959 -#: js/ActionBlocks.js:1256 -#: js/ExtrasBlocks.js:553 -msgid "start drum" +#: js/utils/musicutils.js:1110 +#: js/utils/synthutils.js:74 +#.TRANS: musical instrument +msgid "violin" msgstr "" -#: js/SaveInterface.js:59 -#: js/SaveInterface.js:61 -#: js/SaveInterface.js:93 -msgid "Music Blocks Project" +#: js/utils/musicutils.js:1111 +#: js/utils/synthutils.js:76 +#.TRANS: viola musical instrument +msgid "viola" msgstr "" -#: js/SaveInterface.js:63 -msgid "This project was created in Music Blocks" +#: js/utils/musicutils.js:1112 +#: js/utils/synthutils.js:114 +#.TRANS: xylophone musical instrument +msgid "xylophone" msgstr "" -#: js/SaveInterface.js:67 -msgid "Music Blocks is a Free/Libre Software application." +#: js/utils/musicutils.js:1113 +#: js/utils/synthutils.js:136 +#.TRANS: vibraphone musical instrument +msgid "vibraphone" msgstr "" -#: js/SaveInterface.js:69 -msgid "The source code can be accessed at" +#: js/utils/musicutils.js:1114 +#: js/utils/synthutils.js:78 +#.TRANS: musical instrument +msgid "cello" msgstr "" -#: js/SaveInterface.js:72 -msgid "For more information, please consult the" +#: js/utils/musicutils.js:1116 +#: js/utils/synthutils.js:82 +#.TRANS: viola musical instrument +msgid "double bass" msgstr "" -#: js/SaveInterface.js:83 -msgid "Alternatively, open the file in Music Blocks using the Load project button." +#: js/utils/musicutils.js:1117 +#: js/utils/synthutils.js:84 +#: js/widgets/rhythmruler.js:2511 +#.TRANS: musical instrument +msgid "guitar" msgstr "" -#: js/SaveInterface.js:85 -msgid "Project Code" +#: js/utils/musicutils.js:1118 +#: js/utils/synthutils.js:86 +#.TRANS: musical instrument +msgid "acoustic guitar" msgstr "" -#: js/SaveInterface.js:87 -msgid "This code stores data about the blocks in a project." +#: js/utils/musicutils.js:1119 +#: js/utils/synthutils.js:88 +#.TRANS: musical instrument +msgid "flute" msgstr "" -#: js/SaveInterface.js:89 -msgid "Show" +#: js/utils/musicutils.js:1120 +#: js/utils/synthutils.js:90 +#.TRANS: musical instrument +msgid "clarinet" msgstr "" -#: js/SaveInterface.js:91 -msgid "Hide" +#: js/utils/musicutils.js:1121 +#: js/utils/synthutils.js:92 +#.TRANS: musical instrument +msgid "saxophone" msgstr "" -#: js/SaveInterface.js:197 -#: js/SaveInterface.js:58 -msgid "No description provided" +#: js/utils/musicutils.js:1122 +#: js/utils/synthutils.js:94 +#.TRANS: musical instrument +msgid "tuba" msgstr "" -#: js/SaveInterface.js:332 -msgid "Your recording is in progress." +#: js/utils/musicutils.js:1123 +#: js/utils/synthutils.js:96 +#.TRANS: musical instrument +msgid "trumpet" msgstr "" -#: js/SaveInterface.js:401 -#.TRANS: File name prompt for save as Lilypond -msgid "File name" +#: js/utils/musicutils.js:1124 +#: js/utils/synthutils.js:98 +#.TRANS: musical instrument +msgid "oboe" msgstr "" -#: js/SaveInterface.js:403 -#: js/StringHelper.js:39 -#.TRANS: Project title prompt for save as Lilypond -msgid "Project title" +#: js/utils/musicutils.js:1125 +#: js/utils/synthutils.js:100 +#.TRANS: musical instrument +msgid "trombone" msgstr "" -#: js/SaveInterface.js:405 -#.TRANS: Project title prompt for save as Lilypond -msgid "Project author" +#: js/utils/musicutils.js:1126 +#: js/utils/synthutils.js:116 +#.TRANS: polytone synthesizer +msgid "electronic synth" msgstr "" -#: js/SaveInterface.js:407 -#.TRANS: MIDI prompt for save as Lilypond -msgid "Include MIDI output?" +#: js/utils/musicutils.js:1127 +#: js/utils/synthutils.js:118 +#.TRANS: simple monotone synthesizer +msgid "simple 1" msgstr "" -#: js/SaveInterface.js:409 -#.TRANS: Guitar prompt for save as Lilypond -msgid "Include guitar tablature output?" +#: js/utils/musicutils.js:1128 +msgid "simple 2" msgstr "" -#: js/SaveInterface.js:411 -#.TRANS: Lilypond is a scripting language for generating sheet music -msgid "Save as Lilypond" +#: js/utils/musicutils.js:1129 +msgid "simple 3" msgstr "" -#: js/SaveInterface.js:426 -#: js/EnsembleBlocks.js:75 -#: js/EnsembleBlocks.js:154 -#: js/EnsembleBlocks.js:216 -#: js/EnsembleBlocks.js:302 -#: js/EnsembleBlocks.js:348 -#: js/EnsembleBlocks.js:389 -#: js/EnsembleBlocks.js:441 -#: js/EnsembleBlocks.js:490 -#: js/EnsembleBlocks.js:536 -#: js/EnsembleBlocks.js:583 -#: js/EnsembleBlocks.js:637 -#: js/EnsembleBlocks.js:753 -#: js/EnsembleBlocks.js:840 -#: js/EnsembleBlocks.js:899 -#: js/EnsembleBlocks.js:942 -#: js/EnsembleBlocks.js:1212 -#: js/EnsembleBlocks.js:1280 -#.TRANS: default project author when saving as Lilypond -msgid "Mr. Mouse" +#: js/utils/musicutils.js:1130 +msgid "simple 4" msgstr "" -#: js/SaveInterface.js:573 -msgid "The Lilypond code is copied to clipboard. You can paste it here: " +#: js/utils/musicutils.js:1131 +#: js/utils/synthutils.js:58 +#: js/blocks/DrumBlocks.js:191 +#.TRANS: white noise synthesizer +msgid "white noise" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:50 -#: js/RhythmBlockPaletteBlocks.js:232 -#.TRANS: rhythm block -#.TRANS: translate "rhythm1" as rhythm -msgid "rhythm1" +#: js/utils/musicutils.js:1132 +#: js/utils/synthutils.js:60 +#.TRANS: brown noise synthesizer +msgid "brown noise" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:70 -#: js/RhythmBlockPaletteBlocks.js:251 -#: js/RhythmBlockPaletteBlocks.js:484 -#: js/RhythmBlockPaletteBlocks.js:553 -#: js/RhythmBlockPaletteBlocks.js:874 -msgid "number of notes" +#: js/utils/musicutils.js:1133 +#: js/utils/synthutils.js:62 +#.TRANS: pink noise synthesizer +msgid "pink noise" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:126 -msgid "polyphonic rhythm" +#: js/utils/musicutils.js:1135 +#: js/utils/synthutils.js:148 +#: js/widgets/rhythmruler.js:2057 +#: js/widgets/rhythmruler.js:2319 +#.TRANS: musical instrument +msgid "snare drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:218 -msgid "The Rhythm block is used to generate rhythm patterns." +#: js/utils/musicutils.js:1136 +#: js/utils/synthutils.js:150 +#.TRANS: musical instrument +msgid "kick drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:279 -msgid "1/64 note" +#: js/utils/musicutils.js:1137 +#: js/utils/synthutils.js:152 +#.TRANS: musical instrument +msgid "tom tom" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:303 -msgid "1/32 note" +#: js/utils/musicutils.js:1138 +#: js/utils/synthutils.js:154 +#.TRANS: musical instrument +msgid "floor tom" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:331 -msgid "1/16 note" +#: js/utils/musicutils.js:1139 +#: js/utils/synthutils.js:156 +#.TRANS: musical instrument +msgid "bass drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:359 -msgid "eighth note" +#: js/utils/musicutils.js:1140 +#: js/utils/synthutils.js:158 +#.TRANS: a drum made from an inverted cup +msgid "cup drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:387 -msgid "quarter note" +#: js/utils/musicutils.js:1141 +#: js/utils/synthutils.js:160 +#.TRANS: musical instrument +msgid "darbuka drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:415 -msgid "half note" +#: js/utils/musicutils.js:1142 +#: js/utils/synthutils.js:164 +#.TRANS: musical instrument +msgid "hi hat" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:443 -msgid "whole note" +#: js/utils/musicutils.js:1143 +#: js/utils/synthutils.js:166 +#.TRANS: a small metal bell +msgid "ride bell" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:481 -#: js/RhythmBlockPaletteBlocks.js:550 -#: js/RhythmBlockPaletteBlocks.js:601 -#.TRANS: A tuplet is a note value divided into irregular time values. -msgid "tuplet" +#: js/utils/musicutils.js:1144 +#: js/utils/synthutils.js:168 +#.TRANS: musical instrument +msgid "cow bell" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:767 -msgid "septuplet" +#: js/utils/musicutils.js:1145 +msgid "japanese drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:795 -msgid "quintuplet" +#: js/utils/musicutils.js:1146 +#: js/utils/synthutils.js:174 +#.TRANS: musical instrument +msgid "japanese bell" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:823 -msgid "triplet" +#: js/utils/musicutils.js:1147 +#: js/utils/synthutils.js:170 +#.TRANS: musical instrument +msgid "triangle bell" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:850 -msgid "simple tuplet" +#: js/utils/musicutils.js:1148 +#: js/utils/synthutils.js:172 +#.TRANS: musical instrument +msgid "finger cymbals" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:860 -msgid "Tuplets are a collection of notes that get scaled to a specific duration." +#: js/utils/musicutils.js:1149 +#: js/utils/synthutils.js:176 +#.TRANS: a musically tuned set of bells +msgid "chime" msgstr "" -#: js/WidgetBlocks.js:71 -#.TRANS: sound envelope (ADSR) -msgid "envelope" +#: js/utils/musicutils.js:1150 +#: js/utils/synthutils.js:178 +#.TRANS: a musical instrument +msgid "gong" msgstr "" -#: js/WidgetBlocks.js:79 -#.TRANS: Attack time is the time taken for initial run-up of level from nil to peak, beginning when the key is first pressed. -msgid "attack" +#: js/utils/musicutils.js:1151 +#: js/utils/synthutils.js:180 +#.TRANS: sound effect +msgid "clang" msgstr "" -#: js/WidgetBlocks.js:81 -#.TRANS: Decay time is the time taken for the subsequent run down from the attack level to the designated sustain level. -msgid "decay" +#: js/utils/musicutils.js:1152 +#: js/utils/synthutils.js:182 +#.TRANS: sound effect +msgid "crash" msgstr "" -#: js/WidgetBlocks.js:83 -#.TRANS: Sustain level is the level during the main sequence of the sound's duration, until the key is released. -msgid "sustain" +#: js/utils/musicutils.js:1153 +#: js/utils/synthutils.js:184 +#.TRANS: sound effect +msgid "bottle" msgstr "" -#: js/WidgetBlocks.js:85 -#.TRANS: Release time is the time taken for the level to decay from the sustain level to zero after the key is released. -msgid "release" +#: js/utils/musicutils.js:1154 +#: js/utils/synthutils.js:186 +#.TRANS: sound effect +msgid "clap" msgstr "" -#: js/WidgetBlocks.js:96 -msgid "Attack value should be from 0 to 100." +#: js/utils/musicutils.js:1155 +#: js/utils/synthutils.js:188 +#.TRANS: sound effect +msgid "slap" msgstr "" -#: js/WidgetBlocks.js:99 -msgid "Decay value should be from 0 to 100." +#: js/utils/musicutils.js:1156 +#: js/utils/synthutils.js:190 +#.TRANS: sound effect +msgid "splash" msgstr "" -#: js/WidgetBlocks.js:102 -msgid "Sustain value should be from 0 to 100." +#: js/utils/musicutils.js:1157 +#: js/utils/synthutils.js:192 +#.TRANS: sound effect +msgid "bubbles" msgstr "" -#: js/WidgetBlocks.js:105 -msgid "Release value should be from 0-100." +#: js/utils/musicutils.js:1158 +#: js/utils/synthutils.js:194 +#.TRANS: sound effect +msgid "raindrop" msgstr "" -#: js/WidgetBlocks.js:121 -msgid "You are adding multiple envelope blocks." +#: js/utils/musicutils.js:1159 +#: js/utils/synthutils.js:196 +#.TRANS: animal sound effect +msgid "cat" msgstr "" -#: js/WidgetBlocks.js:144 -#.TRANS: a filter removes some unwanted components from a signal -msgid "filter" +#: js/utils/musicutils.js:1160 +#: js/utils/synthutils.js:198 +#.TRANS: animal sound effect +msgid "cricket" msgstr "" -#: js/WidgetBlocks.js:149 -#: js/musicutils.js:706 -#: js/musicutils.js:1105 -#.TRANS: highpass filter -msgid "highpass" +#: js/utils/musicutils.js:1161 +#: js/utils/synthutils.js:200 +#.TRANS: animal sound effect +msgid "dog" msgstr "" -#: js/WidgetBlocks.js:152 -#: js/ToneBlocks.js:42 -#: js/timbre.js:1558 -#: js/timbre.js:1808 -#.TRANS: type of filter, e.g., lowpass, highpass, etc. -#.TRANS: there are different types (sine, triangle, square...) of oscillators. -msgid "type" +#: js/utils/musicutils.js:1163 +#: js/utils/synthutils.js:102 +#.TRANS: musical instrument +msgid "banjo" msgstr "" -#: js/WidgetBlocks.js:154 -#: js/timbre.js:1818 -#.TRANS: rolloff is the steepness of a change in frequency. -msgid "rolloff" +#: js/utils/musicutils.js:1164 +#: js/utils/synthutils.js:104 +#.TRANS: musical instrument +msgid "koto" msgstr "" -#: js/WidgetBlocks.js:155 -#: js/MediaBlocks.js:692 -#: js/temperament.js:382 -#: js/temperament.js:417 -#: js/temperament.js:477 -#: js/temperament.js:485 -#: js/temperament.js:1348 -#: js/timbre.js:1842 -msgid "frequency" +#: js/utils/musicutils.js:1165 +#: js/utils/synthutils.js:106 +#.TRANS: musical instrument +msgid "dulcimer" msgstr "" -#: js/WidgetBlocks.js:179 -#.TRANS: rolloff is the steepness of a change in frequency. -msgid "Rolloff value should be either -12, -24, -48, or -96 decibels/octave." +#: js/utils/musicutils.js:1166 +#: js/utils/synthutils.js:108 +#.TRANS: musical instrument +msgid "electric guitar" msgstr "" -#: js/WidgetBlocks.js:211 -msgid "The Temperament tool is used to define custom tuning." +#: js/utils/musicutils.js:1167 +#: js/utils/synthutils.js:110 +#.TRANS: musical instrument +msgid "bassoon" msgstr "" -#: js/WidgetBlocks.js:277 -#: js/sampler.js:329 -msgid "Upload a sample and adjust its pitch center." +#: js/utils/musicutils.js:1168 +#: js/utils/synthutils.js:112 +#.TRANS: musical instrument +msgid "celeste" msgstr "" -#: js/WidgetBlocks.js:284 -#.TRANS: the speed at music is should be played. -msgid "sampler" +#: js/utils/musicutils.js:1170 +#: js/widgets/temperament.js:787 +#.TRANS: musical temperament +msgid "equal" msgstr "" -#: js/WidgetBlocks.js:329 -#: js/WidgetBlocks.js:334 -#: js/IntervalsBlocks.js:928 -#: js/VolumeBlocks.js:411 -#: js/ToneBlocks.js:946 -#: js/VolumeActions.js:218 -#: js/musicutils.js:704 -#: js/musicutils.js:755 -#: js/musicutils.js:798 -#: js/musicutils.js:820 -#: js/musicutils.js:1136 -#: js/synthutils.js:118 -#: js/modewidget.js:919 -#.TRANS: customize voice -msgid "custom" +#: js/utils/musicutils.js:1172 +#.TRANS: musical temperament +msgid "Pythagorean" msgstr "" -#: js/WidgetBlocks.js:432 -msgid "The Meter block opens a tool to select strong beats for the meter." +#: js/utils/musicutils.js:1174 +#.TRANS: musical temperament +msgid "just intonation" msgstr "" -#: js/WidgetBlocks.js:473 -msgid "The oscilloscope block opens a tool to visualize waveforms." +#: js/utils/musicutils.js:1176 +#.TRANS: musical temperament +msgid "meantone" msgstr "" -#: js/WidgetBlocks.js:478 -msgid "oscilloscope" +#: js/utils/musicutils.js:1193 +msgid "major 7th" msgstr "" -#: js/WidgetBlocks.js:530 -msgid "The Custom mode block opens a tool to explore musical mode (the spacing of the notes in a scale)." +#: js/utils/musicutils.js:1194 +msgid "minor 7th" msgstr "" -#: js/WidgetBlocks.js:536 -#.TRANS: musical mode is the pattern of half-steps in an octave, e.g., Major or Minor modes -msgid "custom mode" +#: js/utils/musicutils.js:1195 +msgid "dominant 7th" msgstr "" -#: js/WidgetBlocks.js:570 -msgid "The Tempo block opens a metronome to visualize the beat." +#: js/utils/musicutils.js:1196 +msgid "minor-major 7th" msgstr "" -#: js/WidgetBlocks.js:617 -msgid "The Arpeggio Widget is used to compose chord sequences." +#: js/utils/musicutils.js:1197 +msgid "fully-diminished 7th" msgstr "" -#: js/WidgetBlocks.js:623 -#: js/IntervalsBlocks.js:683 -msgid "arpeggio" +#: js/utils/musicutils.js:1198 +msgid "half-diminished 7th" msgstr "" -#: js/WidgetBlocks.js:677 -msgid "The Pitch drum matrix is used to map pitches to drum sounds." +#: js/utils/musicutils.js:1557 +#: js/utils/musicutils.js:1569 +msgid "Equal (12EDO)" msgstr "" -#: js/WidgetBlocks.js:682 -#.TRANS: makes a mapping between pitches and drum sounds -msgid "pitch-drum mapper" +#: js/utils/musicutils.js:1558 +#: js/utils/musicutils.js:1570 +msgid "5-limit Just Intonation" msgstr "" -#: js/WidgetBlocks.js:724 -msgid "You must have at least one pitch block and one drum block in the matrix." +#: js/utils/musicutils.js:1559 +#: js/utils/musicutils.js:1571 +msgid "Pythagorean (3-limit JI)" msgstr "" -#: js/WidgetBlocks.js:746 -msgid "The Pitch slider tool to is used to generate pitches at selected frequencies." +#: js/utils/musicutils.js:1560 +#: js/utils/musicutils.js:1561 +#: js/utils/musicutils.js:1572 +#: js/utils/musicutils.js:1573 +msgid "Meantone" msgstr "" -#: js/WidgetBlocks.js:751 -#.TRANS: widget to generate pitches using a slider -msgid "pitch slider" +#: js/utils/musicutils.js:1574 +msgid "Custom" msgstr "" -#: js/WidgetBlocks.js:788 -msgid "chromatic keyboard" +#: js/utils/musicutils.js:5387 +#: js/utils/musicutils.js:5430 +msgid "current" msgstr "" -#: js/WidgetBlocks.js:815 -#: js/WidgetBlocks.js:874 -#.TRANS: widget to generate pitches using a slider -msgid "music keyboard" +#: js/utils/musicutils.js:5390 +#: js/utils/musicutils.js:5421 +msgid "next" msgstr "" -#: js/WidgetBlocks.js:859 -#: js/WidgetBlocks.js:866 -msgid "The Music keyboard block opens a piano keyboard that can be used to create notes." +#: js/utils/musicutils.js:5393 +#: js/utils/musicutils.js:5426 +msgid "previous" msgstr "" -#: js/WidgetBlocks.js:910 -msgid "The Pitch staircase tool to is used to generate pitches from a given ratio." +#: js/utils/synthutils.js:120 +#.TRANS: simple monotone synthesizer +msgid "simple-2" msgstr "" -#: js/WidgetBlocks.js:917 -#.TRANS: generate a progressive sequence of pitches -msgid "pitch staircase" +#: js/utils/synthutils.js:122 +#.TRANS: simple monotone synthesizer +msgid "simple-3" msgstr "" -#: js/WidgetBlocks.js:982 -msgid "The Rhythm Maker block opens a tool to create drum machines." +#: js/utils/synthutils.js:124 +#.TRANS: simple monotone synthesizer +msgid "simple-4" msgstr "" -#: js/WidgetBlocks.js:1036 -msgid "G major scale" +#: js/utils/synthutils.js:162 +#.TRANS: musical instrument +msgid "taiko" msgstr "" -#: js/WidgetBlocks.js:1064 -msgid "C major scale" +#: js/blocks/ActionBlocks.js:58 +msgid "The Return block will return a value from an action." msgstr "" -#: js/WidgetBlocks.js:1097 -msgid "The Phrase Maker block opens a tool to create musical phrases." +#: js/blocks/ActionBlocks.js:75 +msgid "return" msgstr "" -#: js/WidgetBlocks.js:1104 -#.TRANS: assigns pitch to a sequence of beats to generate a melody -msgid "phrase maker" +#: js/blocks/ActionBlocks.js:128 +msgid "The Return to URL block will return a value to a webpage." msgstr "" -#: js/WidgetBlocks.js:1168 -msgid "You must have at least one pitch block and one rhythm block in the matrix." +#: js/blocks/ActionBlocks.js:145 +msgid "return to URL" msgstr "" -#: js/WidgetBlocks.js:1220 -msgid "The Status block opens a tool for inspecting the status of Music Blocks as it is running." +#: js/blocks/ActionBlocks.js:233 +#: js/blocks/ActionBlocks.js:290 +#: js/blocks/ActionBlocks.js:501 +#: js/blocks/ActionBlocks.js:688 +msgid "The Calculate block returns a value calculated by an action." msgstr "" -#: js/IntervalsBlocks.js:45 -msgid "set temperament" +#: js/blocks/ActionBlocks.js:251 +#: js/blocks/ActionBlocks.js:517 +#: js/blocks/ActionBlocks.js:707 +msgid "calculate" msgstr "" -#: js/IntervalsBlocks.js:63 -#: js/MediaBlocks.js:746 -#: js/PitchBlocks.js:657 -#: js/PitchBlocks.js:933 -#: js/PitchBlocks.js:972 -#: js/PitchBlocks.js:1005 -#: js/PitchBlocks.js:1166 -#: js/PitchBlocks.js:1679 -#: js/PitchBlocks.js:1720 -#: js/PitchBlocks.js:1827 -#: js/ToneBlocks.js:1025 -#.TRANS: adjusts the shift up or down by one octave (twelve half-steps in the interval between two notes, one having twice or half the frequency in Hz of the other.) -msgid "octave" +#: js/blocks/ActionBlocks.js:376 +#: js/blocks/ActionBlocks.js:593 +#: js/blocks/ActionBlocks.js:942 +#: js/blocks/ActionBlocks.js:1389 +#.TRANS: do is the do something or take an action. +msgid "The Do block is used to initiate an action." msgstr "" -#: js/IntervalsBlocks.js:99 -msgid "The Temperament name block is used to select a tuning method." +#: js/blocks/ActionBlocks.js:390 +#: js/blocks/ActionBlocks.js:610 +#: js/blocks/ActionBlocks.js:959 +#: js/blocks/ActionBlocks.js:1048 +#: js/blocks/MeterBlocks.js:769 +msgid "do1" msgstr "" -#: js/IntervalsBlocks.js:161 -msgid "doubly" +#: js/blocks/ActionBlocks.js:390 +#: js/blocks/ActionBlocks.js:610 +#: js/blocks/ActionBlocks.js:959 +#: js/blocks/ActionBlocks.js:1048 +#: js/blocks/FlowBlocks.js:742 +#: js/blocks/FlowBlocks.js:822 +#: js/blocks/MeterBlocks.js:769 +msgid "do" msgstr "" -#: js/IntervalsBlocks.js:166 -msgid "The Doubly block will double the size of an interval." +#: js/blocks/ActionBlocks.js:791 +#: js/blocks/ActionBlocks.js:865 +msgid "The Arg block contains the value of an argument passed to an action." msgstr "" -#: js/IntervalsBlocks.js:262 -msgid "interval number" +#: js/blocks/ActionBlocks.js:806 +#: js/blocks/ActionBlocks.js:878 +msgid "arg" msgstr "" -#: js/IntervalsBlocks.js:330 -#.TRANS: measure the distance between two pitches in semi-tones -msgid "semi-tone interval measure" +#: js/blocks/ActionBlocks.js:836 +#: js/blocks/ActionBlocks.js:900 +#: js/blocks/ActionBlocks.js:908 +msgid "Invalid argument" msgstr "" -#: js/IntervalsBlocks.js:397 -#: js/IntervalsBlocks.js:513 -msgid "You must use two pitch blocks when measuring an interval." +#: js/blocks/ActionBlocks.js:944 +msgid "In the example, it is used with the One of block to choose a random phase." msgstr "" -#: js/IntervalsBlocks.js:439 -msgid "The Scalar interval block measures the distance between two notes in the current key and mode." +#: js/blocks/ActionBlocks.js:1019 +#: js/blocks/ActionBlocks.js:1026 +msgid "The Listen block is used to listen for an event such as a mouse click." msgstr "" -#: js/IntervalsBlocks.js:445 -#.TRANS: measure the distance between two pitches in steps of musical scale -msgid "scalar interval measure" +#: js/blocks/ActionBlocks.js:1028 +msgid "When the event happens, an action is taken." msgstr "" -#: js/IntervalsBlocks.js:592 -#: js/musicutils.js:637 -#: js/musicutils.js:908 -#.TRANS: perfect is a music term related to intervals -msgid "perfect" +#: js/blocks/ActionBlocks.js:1045 +msgid "on" msgstr "" -#: js/IntervalsBlocks.js:621 -msgid "In the figure, we add sol# to sol." +#: js/blocks/ActionBlocks.js:1048 +#: js/blocks/ActionBlocks.js:1049 +#: js/blocks/ActionBlocks.js:1153 +msgid "event" msgstr "" -#: js/IntervalsBlocks.js:627 -#: js/OrnamentBlocks.js:220 -#.TRANS: calculate a relative step between notes based on semi-tones -msgid "semi-tone interval" +#: js/blocks/ActionBlocks.js:1133 +msgid "The Broadcast block is used to trigger an event." msgstr "" -#: js/IntervalsBlocks.js:676 -msgid "The output of the example is: do, mi, sol, sol, ti, mi" +#: js/blocks/ActionBlocks.js:1151 +msgid "broadcast" msgstr "" -#: js/IntervalsBlocks.js:735 -msgid "The Chord block calculates common chords." +#: js/blocks/ActionBlocks.js:1208 +msgid "Each Start block is a separate voice." msgstr "" -#: js/IntervalsBlocks.js:737 -msgid "In the figure, we generate a C-major chord." +#: js/blocks/ActionBlocks.js:1304 +msgid "It is often used for storing a phrase of music that is repeated." msgstr "" -#: js/IntervalsBlocks.js:742 -msgid "chord" +#: js/blocks/ActionBlocks.js:1495 +msgid "define temperament" msgstr "" -#: js/IntervalsBlocks.js:794 -msgid "The Ratio Interval block calculates an interval based on a ratio." +#: js/blocks/BooleanBlocks.js:44 +msgid "The Not block is the logical not operator." msgstr "" -#: js/IntervalsBlocks.js:799 -msgid "ratio interval" +#: js/blocks/BooleanBlocks.js:62 +msgid "not" +msgstr "si" + +#: js/blocks/BooleanBlocks.js:134 +msgid "The And block is the logical and operator." msgstr "" -#: js/IntervalsBlocks.js:868 -msgid "In the figure, we add la to sol." +#: js/blocks/BooleanBlocks.js:152 +msgid "and" +msgstr "na" + +#: js/blocks/BooleanBlocks.js:218 +msgid "The Or block is the logical or operator." msgstr "" -#: js/IntervalsBlocks.js:924 -#.TRANS: define a custom mode -msgid "define mode" +#: js/blocks/BooleanBlocks.js:236 +msgid "or" +msgstr "cyangwa" + +#: js/blocks/BooleanBlocks.js:302 +msgid "The XOR block is the logical XOR operator." msgstr "" -#: js/IntervalsBlocks.js:977 -msgid "movable Do" +#: js/blocks/BooleanBlocks.js:320 +msgid "xor" msgstr "" -#: js/IntervalsBlocks.js:1028 -#.TRANS: mode length is the number of notes in the mode, e.g., 7 for major and minor scales; 12 for chromatic scales -msgid "mode length" +#: js/blocks/BooleanBlocks.js:808 +msgid "The Equal block returns True if the two numbers are equal." msgstr "" -#: js/IntervalsBlocks.js:1037 -msgid "The Mode length block is the number of notes in the current scale." +#: js/blocks/BooleanBlocks.js:909 +msgid "The Not-equal-to block returns True if the two numbers are not equal to each other." msgstr "" -#: js/IntervalsBlocks.js:1039 -msgid "Most Western scales have 7 notes." +#: js/blocks/BooleanBlocks.js:1008 +msgid "The Boolean block is used to specify true or false." msgstr "" -#: js/IntervalsBlocks.js:1088 -#.TRANS: the mode in music is 'major', 'minor', etc. -msgid "current mode" +#: js/blocks/BoxesBlocks.js:53 +#: js/blocks/BoxesBlocks.js:59 +msgid "The Add-to block is used to add to the value stored in a box." msgstr "" -#: js/IntervalsBlocks.js:1141 -#.TRANS: the key is a group of pitches with which a music composition is created -msgid "current key" +#: js/blocks/BoxesBlocks.js:61 +msgid "It can also be used with other blocks such as Color and Pen size." msgstr "" -#: js/IntervalsBlocks.js:1193 -#: js/IntervalsBlocks.js:1238 -#.TRANS: set the key and mode, e.g. C Major -msgid "set key" +#: js/blocks/BoxesBlocks.js:73 +msgid "add" msgstr "" -#: js/IntervalsBlocks.js:1247 -#: js/IntervalsBlocks.js:1253 -msgid "The Set key block is used to set the key and mode," +#: js/blocks/BoxesBlocks.js:75 +#: js/widgets/temperament.js:857 +msgid "to" msgstr "" -#: js/IntervalsBlocks.js:1253 -msgid "eg C Major" +#: js/blocks/BoxesBlocks.js:75 +#: js/blocks/BoxesBlocks.js:595 +#: js/blocks/HeapBlocks.js:544 +msgid "value1" msgstr "" -#: js/IntervalsBlocks.js:1266 -#: js/DictBlocks.js:215 -#: js/DictBlocks.js:216 -#: js/DictBlocks.js:289 -#: js/DictBlocks.js:290 -#: js/DictBlocks.js:357 -#: js/DictBlocks.js:430 -#: js/DictBlocks.js:431 -#.TRANS: key, e.g., C in C Major -msgid "key" +#: js/blocks/BoxesBlocks.js:118 +msgid "Block does not support incrementing." msgstr "" -#: js/ActionBlocks.js:58 -msgid "The Return block will return a value from an action." +#: js/blocks/BoxesBlocks.js:152 +msgid "The Add-1-to block adds one to the value stored in a box." msgstr "" -#: js/ActionBlocks.js:75 -msgid "return" +#: js/blocks/BoxesBlocks.js:163 +msgid "add 1 to" msgstr "" -#: js/ActionBlocks.js:128 -msgid "The Return to URL block will return a value to a webpage." +#: js/blocks/BoxesBlocks.js:211 +msgid "The Subtract-1-from block subtracts one from the value stored in a box." msgstr "" -#: js/ActionBlocks.js:145 -msgid "return to URL" +#: js/blocks/BoxesBlocks.js:222 +msgid "subtract 1 from" msgstr "" -#: js/ActionBlocks.js:233 -#: js/ActionBlocks.js:290 -#: js/ActionBlocks.js:501 -#: js/ActionBlocks.js:688 -msgid "The Calculate block returns a value calculated by an action." +#: js/blocks/BoxesBlocks.js:270 +#: js/blocks/BoxesBlocks.js:387 +msgid "The Box block returns the value stored in a box." msgstr "" -#: js/ActionBlocks.js:251 -#: js/ActionBlocks.js:517 -#: js/ActionBlocks.js:707 -msgid "calculate" +#: js/blocks/BoxesBlocks.js:500 +#: js/blocks/BoxesBlocks.js:576 +msgid "The Store in block will store a value in a box." msgstr "" -#: js/ActionBlocks.js:376 -#: js/ActionBlocks.js:593 -#: js/ActionBlocks.js:942 -#: js/ActionBlocks.js:1389 -#.TRANS: do is the do something or take an action. -msgid "The Do block is used to initiate an action." +#: js/blocks/BoxesBlocks.js:595 +#: js/blocks/EnsembleBlocks.js:391 +#: js/blocks/EnsembleBlocks.js:402 +msgid "name1" msgstr "" -#: js/ActionBlocks.js:390 -#: js/ActionBlocks.js:610 -#: js/ActionBlocks.js:959 -#: js/ActionBlocks.js:1048 -#: js/MeterBlocks.js:769 -msgid "do1" +#: js/blocks/BoxesBlocks.js:652 +msgid "The Box2 block returns the value stored in Box2." msgstr "" -#: js/ActionBlocks.js:390 -#: js/ActionBlocks.js:610 -#: js/ActionBlocks.js:959 -#: js/ActionBlocks.js:1048 -#: js/FlowBlocks.js:742 -#: js/FlowBlocks.js:822 -#: js/MeterBlocks.js:769 -msgid "do" +#: js/blocks/BoxesBlocks.js:703 +msgid "The Store in Box2 block is used to store a value in Box2." msgstr "" -#: js/ActionBlocks.js:791 -#: js/ActionBlocks.js:865 -msgid "The Arg block contains the value of an argument passed to an action." +#: js/blocks/BoxesBlocks.js:715 +msgid "store in box2" msgstr "" -#: js/ActionBlocks.js:806 -#: js/ActionBlocks.js:878 -msgid "arg" +#: js/blocks/BoxesBlocks.js:761 +msgid "The Box1 block returns the value stored in Box1." msgstr "" -#: js/ActionBlocks.js:836 -#: js/ActionBlocks.js:900 -#: js/ActionBlocks.js:908 -msgid "Invalid argument" +#: js/blocks/BoxesBlocks.js:812 +msgid "The Store in Box1 block is used to store a value in Box1." msgstr "" -#: js/ActionBlocks.js:944 -msgid "In the example, it is used with the One of block to choose a random phase." +#: js/blocks/BoxesBlocks.js:826 +msgid "store in box1" msgstr "" -#: js/ActionBlocks.js:1019 -#: js/ActionBlocks.js:1026 -msgid "The Listen block is used to listen for an event such as a mouse click." +#: js/blocks/DictBlocks.js:77 +msgid "show dictionary" msgstr "" -#: js/ActionBlocks.js:1028 -msgid "When the event happens, an action is taken." +#: js/blocks/DictBlocks.js:80 +#: js/blocks/DictBlocks.js:145 +#: js/blocks/DictBlocks.js:216 +#: js/blocks/DictBlocks.js:290 +#: js/blocks/ProgramBlocks.js:396 +#: js/blocks/ProgramBlocks.js:501 +#: js/blocks/ProgramBlocks.js:664 +msgid "My Dictionary" msgstr "" -#: js/ActionBlocks.js:1045 -msgid "on" +#: js/blocks/DictBlocks.js:129 +msgid "The Dictionary block returns a dictionary." msgstr "" -#: js/ActionBlocks.js:1048 -#: js/ActionBlocks.js:1049 -#: js/ActionBlocks.js:1153 -msgid "event" +#: js/blocks/DictBlocks.js:197 +#: js/blocks/DictBlocks.js:339 +msgid "The Get-dict block returns a value in the dictionary for a specified key." msgstr "" -#: js/ActionBlocks.js:1133 -msgid "The Broadcast block is used to trigger an event." +#: js/blocks/DictBlocks.js:212 +#: js/blocks/DictBlocks.js:354 +#.TRANS: retrieve a value from the dictionary with a given key +msgid "get value" msgstr "" -#: js/ActionBlocks.js:1151 -msgid "broadcast" +#: js/blocks/DictBlocks.js:215 +#: js/blocks/DictBlocks.js:216 +#: js/blocks/DictBlocks.js:289 +#: js/blocks/DictBlocks.js:290 +#: js/blocks/DictBlocks.js:357 +#: js/blocks/DictBlocks.js:430 +#: js/blocks/DictBlocks.js:431 +msgid "key2" msgstr "" -#: js/ActionBlocks.js:1208 -msgid "Each Start block is a separate voice." +#: js/blocks/DictBlocks.js:215 +#: js/blocks/DictBlocks.js:216 +#: js/blocks/DictBlocks.js:289 +#: js/blocks/DictBlocks.js:290 +#: js/blocks/DictBlocks.js:357 +#: js/blocks/DictBlocks.js:430 +#: js/blocks/DictBlocks.js:431 +#: js/blocks/IntervalsBlocks.js:1462 +#.TRANS: key, e.g., C in C Major +msgid "key" msgstr "" -#: js/ActionBlocks.js:1304 -msgid "It is often used for storing a phrase of music that is repeated." +#: js/blocks/DictBlocks.js:271 +#: js/blocks/DictBlocks.js:411 +msgid "The Set-dict block sets a value in the dictionary for a specified key." msgstr "" -#: js/ActionBlocks.js:1495 -msgid "define temperament" +#: js/blocks/DictBlocks.js:286 +#: js/blocks/DictBlocks.js:427 +#.TRANS: set a value in the dictionary for a given key +msgid "set value" msgstr "" -#: js/EnsembleBlocks.js:66 +#: js/blocks/EnsembleBlocks.js:66 msgid "mouse index heap" msgstr "" -#: js/EnsembleBlocks.js:68 +#: js/blocks/EnsembleBlocks.js:68 msgid "The Mouse index heap block returns a value in the heap at a specified location for a specified mouse." msgstr "" -#: js/EnsembleBlocks.js:77 -#: js/EnsembleBlocks.js:1080 +#: js/blocks/EnsembleBlocks.js:77 +#: js/blocks/EnsembleBlocks.js:1080 msgid "mouse name" msgstr "" -#: js/EnsembleBlocks.js:77 -#: js/EnsembleBlocks.js:92 -#: js/HeapBlocks.js:544 +#: js/blocks/EnsembleBlocks.js:77 +#: js/blocks/EnsembleBlocks.js:92 +#: js/blocks/HeapBlocks.js:544 #.TRANS: value1 is a numeric value (JAPANESE ONLY) msgid "index" msgstr "" -#: js/EnsembleBlocks.js:80 +#: js/blocks/EnsembleBlocks.js:80 msgid "turtle index heap" msgstr "" -#: js/EnsembleBlocks.js:82 +#: js/blocks/EnsembleBlocks.js:82 msgid "The Turtle index heap block returns a value in the heap at a specified location for a specified turtle." msgstr "" -#: js/EnsembleBlocks.js:90 -#: js/EnsembleBlocks.js:167 -#: js/EnsembleBlocks.js:230 -#: js/EnsembleBlocks.js:316 -#: js/EnsembleBlocks.js:362 -#: js/EnsembleBlocks.js:400 -#: js/EnsembleBlocks.js:454 -#: js/EnsembleBlocks.js:504 -#: js/EnsembleBlocks.js:550 -#: js/EnsembleBlocks.js:597 -#: js/EnsembleBlocks.js:651 -#: js/EnsembleBlocks.js:763 -#: js/EnsembleBlocks.js:854 -#: js/EnsembleBlocks.js:915 -#: js/EnsembleBlocks.js:955 -#: js/EnsembleBlocks.js:1219 -#: js/EnsembleBlocks.js:1293 +#: js/blocks/EnsembleBlocks.js:90 +#: js/blocks/EnsembleBlocks.js:167 +#: js/blocks/EnsembleBlocks.js:230 +#: js/blocks/EnsembleBlocks.js:316 +#: js/blocks/EnsembleBlocks.js:362 +#: js/blocks/EnsembleBlocks.js:400 +#: js/blocks/EnsembleBlocks.js:454 +#: js/blocks/EnsembleBlocks.js:504 +#: js/blocks/EnsembleBlocks.js:550 +#: js/blocks/EnsembleBlocks.js:597 +#: js/blocks/EnsembleBlocks.js:651 +#: js/blocks/EnsembleBlocks.js:763 +#: js/blocks/EnsembleBlocks.js:854 +#: js/blocks/EnsembleBlocks.js:915 +#: js/blocks/EnsembleBlocks.js:955 +#: js/blocks/EnsembleBlocks.js:1219 +#: js/blocks/EnsembleBlocks.js:1293 #.TRANS: Yertle is the name of a turtle. msgid "Yertle" msgstr "" -#: js/EnsembleBlocks.js:92 -#: js/EnsembleBlocks.js:1089 +#: js/blocks/EnsembleBlocks.js:92 +#: js/blocks/EnsembleBlocks.js:1089 msgid "turtle name" msgstr "" -#: js/EnsembleBlocks.js:122 -#: js/EnsembleBlocks.js:1197 -#: js/HeapBlocks.js:474 -#: js/HeapBlocks.js:572 +#: js/blocks/EnsembleBlocks.js:122 +#: js/blocks/EnsembleBlocks.js:1197 +#: js/blocks/HeapBlocks.js:474 +#: js/blocks/HeapBlocks.js:572 msgid "Index must be > 0." msgstr "" -#: js/EnsembleBlocks.js:127 -#: js/HeapBlocks.js:479 -#: js/HeapBlocks.js:577 +#: js/blocks/EnsembleBlocks.js:127 +#: js/blocks/HeapBlocks.js:479 +#: js/blocks/HeapBlocks.js:577 msgid "Maximum heap size is 1000." msgstr "" -#: js/EnsembleBlocks.js:145 +#: js/blocks/EnsembleBlocks.js:145 msgid "stop mouse" msgstr "" -#: js/EnsembleBlocks.js:147 +#: js/blocks/EnsembleBlocks.js:147 msgid "The Stop mouse block stops the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:158 +#: js/blocks/EnsembleBlocks.js:158 msgid "stop turtle" msgstr "" -#: js/EnsembleBlocks.js:160 +#: js/blocks/EnsembleBlocks.js:160 msgid "The Stop turtle block stops the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:184 -#: js/EnsembleBlocks.js:247 -#: js/EnsembleBlocks.js:413 -#: js/EnsembleBlocks.js:468 -#: js/EnsembleBlocks.js:706 -#: js/EnsembleBlocks.js:808 -#: js/EnsembleBlocks.js:870 -#: js/EnsembleBlocks.js:1190 -#: js/EnsembleBlocks.js:1253 +#: js/blocks/EnsembleBlocks.js:184 +#: js/blocks/EnsembleBlocks.js:247 +#: js/blocks/EnsembleBlocks.js:413 +#: js/blocks/EnsembleBlocks.js:468 +#: js/blocks/EnsembleBlocks.js:706 +#: js/blocks/EnsembleBlocks.js:808 +#: js/blocks/EnsembleBlocks.js:870 +#: js/blocks/EnsembleBlocks.js:1190 +#: js/blocks/EnsembleBlocks.js:1253 msgid "Cannot find mouse" msgstr "" -#: js/EnsembleBlocks.js:186 -#: js/EnsembleBlocks.js:249 -#: js/EnsembleBlocks.js:415 -#: js/EnsembleBlocks.js:470 -#: js/EnsembleBlocks.js:708 -#: js/EnsembleBlocks.js:810 -#: js/EnsembleBlocks.js:872 -#: js/EnsembleBlocks.js:1192 -#: js/EnsembleBlocks.js:1255 +#: js/blocks/EnsembleBlocks.js:186 +#: js/blocks/EnsembleBlocks.js:249 +#: js/blocks/EnsembleBlocks.js:415 +#: js/blocks/EnsembleBlocks.js:470 +#: js/blocks/EnsembleBlocks.js:708 +#: js/blocks/EnsembleBlocks.js:810 +#: js/blocks/EnsembleBlocks.js:872 +#: js/blocks/EnsembleBlocks.js:1192 +#: js/blocks/EnsembleBlocks.js:1255 msgid "Cannot find turtle" msgstr "" -#: js/EnsembleBlocks.js:206 +#: js/blocks/EnsembleBlocks.js:206 msgid "start mouse" msgstr "" -#: js/EnsembleBlocks.js:209 +#: js/blocks/EnsembleBlocks.js:209 msgid "The Start mouse block starts the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:220 +#: js/blocks/EnsembleBlocks.js:220 msgid "start turtle" msgstr "" -#: js/EnsembleBlocks.js:223 +#: js/blocks/EnsembleBlocks.js:223 msgid "The Start turtle block starts the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:256 +#: js/blocks/EnsembleBlocks.js:256 msgid "Mouse is already running." msgstr "" -#: js/EnsembleBlocks.js:258 +#: js/blocks/EnsembleBlocks.js:258 msgid "Turtle is already running." msgstr "" -#: js/EnsembleBlocks.js:282 +#: js/blocks/EnsembleBlocks.js:282 msgid "Cannot find start block" msgstr "" -#: js/EnsembleBlocks.js:292 +#: js/blocks/EnsembleBlocks.js:292 #.TRANS: pen color for this mouse msgid "mouse color" msgstr "" -#: js/EnsembleBlocks.js:294 +#: js/blocks/EnsembleBlocks.js:294 msgid "The Mouse color block returns the pen color of the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:306 +#: js/blocks/EnsembleBlocks.js:306 #.TRANS: pen color for this turtle msgid "turtle color" msgstr "" -#: js/EnsembleBlocks.js:308 +#: js/blocks/EnsembleBlocks.js:308 msgid "The Turtle color block returns the pen color of the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:338 +#: js/blocks/EnsembleBlocks.js:338 #.TRANS: heading (compass direction) for this mouse msgid "mouse heading" msgstr "" -#: js/EnsembleBlocks.js:340 +#: js/blocks/EnsembleBlocks.js:340 msgid "The Mouse heading block returns the heading of the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:352 +#: js/blocks/EnsembleBlocks.js:352 #.TRANS: heading (compass direction) for this turtle msgid "turtle heading" msgstr "" -#: js/EnsembleBlocks.js:354 +#: js/blocks/EnsembleBlocks.js:354 msgid "The Turtle heading block returns the heading of the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:384 -#: js/EnsembleBlocks.js:439 +#: js/blocks/EnsembleBlocks.js:384 +#: js/blocks/EnsembleBlocks.js:439 #.TRANS: set xy position for this mouse msgid "set mouse" msgstr "" -#: js/EnsembleBlocks.js:391 -#: js/EnsembleBlocks.js:402 -#: js/BoxesBlocks.js:595 -msgid "name1" -msgstr "" - -#: js/EnsembleBlocks.js:391 -#: js/EnsembleBlocks.js:402 -#: js/ProgramBlocks.js:881 -#: js/GraphicsBlocks.js:235 -#: js/GraphicsBlocks.js:313 -#: js/GraphicsBlocks.js:436 -#: js/GraphicsBlocks.js:487 -#: js/GraphicsBlocks.js:534 -#: js/GraphicsBlocks.js:750 +#: js/blocks/EnsembleBlocks.js:391 +#: js/blocks/EnsembleBlocks.js:402 +#: js/blocks/GraphicsBlocks.js:235 +#: js/blocks/GraphicsBlocks.js:313 +#: js/blocks/GraphicsBlocks.js:436 +#: js/blocks/GraphicsBlocks.js:487 +#: js/blocks/GraphicsBlocks.js:534 +#: js/blocks/GraphicsBlocks.js:750 +#: js/blocks/ProgramBlocks.js:881 msgid "x" msgstr "x" -#: js/EnsembleBlocks.js:391 -#: js/EnsembleBlocks.js:402 -#: js/ProgramBlocks.js:881 -#: js/GraphicsBlocks.js:149 -#: js/GraphicsBlocks.js:313 -#: js/GraphicsBlocks.js:436 -#: js/GraphicsBlocks.js:487 -#: js/GraphicsBlocks.js:534 -#: js/GraphicsBlocks.js:750 +#: js/blocks/EnsembleBlocks.js:391 +#: js/blocks/EnsembleBlocks.js:402 +#: js/blocks/GraphicsBlocks.js:149 +#: js/blocks/GraphicsBlocks.js:313 +#: js/blocks/GraphicsBlocks.js:436 +#: js/blocks/GraphicsBlocks.js:487 +#: js/blocks/GraphicsBlocks.js:534 +#: js/blocks/GraphicsBlocks.js:750 +#: js/blocks/ProgramBlocks.js:881 msgid "y" msgstr "y" -#: js/EnsembleBlocks.js:395 -#: js/EnsembleBlocks.js:452 +#: js/blocks/EnsembleBlocks.js:395 +#: js/blocks/EnsembleBlocks.js:452 #.TRANS: set xy position for this turtle msgid "set turtle" msgstr "" -#: js/EnsembleBlocks.js:433 +#: js/blocks/EnsembleBlocks.js:433 msgid "The Set mouse block sends a stack of blocks to be run by the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:446 +#: js/blocks/EnsembleBlocks.js:446 msgid "The Set turtle block sends a stack of blocks to be run by the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:480 +#: js/blocks/EnsembleBlocks.js:480 #.TRANS: y position for this mouse msgid "mouse y" msgstr "akanyerezo y" -#: js/EnsembleBlocks.js:482 +#: js/blocks/EnsembleBlocks.js:482 msgid "The Y mouse block returns the Y position of the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:494 +#: js/blocks/EnsembleBlocks.js:494 #.TRANS: y position for this turtle msgid "turtle y" msgstr "" -#: js/EnsembleBlocks.js:496 +#: js/blocks/EnsembleBlocks.js:496 msgid "The Y turtle block returns the Y position of the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:526 +#: js/blocks/EnsembleBlocks.js:526 #.TRANS: x position for this mouse msgid "mouse x" msgstr "akanyerezo x" -#: js/EnsembleBlocks.js:528 +#: js/blocks/EnsembleBlocks.js:528 msgid "The X mouse block returns the X position of the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:540 +#: js/blocks/EnsembleBlocks.js:540 #.TRANS: x position for this turtle msgid "turtle x" msgstr "" -#: js/EnsembleBlocks.js:542 +#: js/blocks/EnsembleBlocks.js:542 msgid "The X turtle block returns the X position of the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:573 +#: js/blocks/EnsembleBlocks.js:573 #.TRANS: notes played by this mouse msgid "mouse notes played" msgstr "" -#: js/EnsembleBlocks.js:575 +#: js/blocks/EnsembleBlocks.js:575 msgid "The Mouse elapse notes block returns the number of notes played by the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:587 +#: js/blocks/EnsembleBlocks.js:587 #.TRANS: notes played by this turtle msgid "turtle notes played" msgstr "" -#: js/EnsembleBlocks.js:589 +#: js/blocks/EnsembleBlocks.js:589 msgid "The Turtle elapse notes block returns the number of notes played by the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:627 +#: js/blocks/EnsembleBlocks.js:627 #.TRANS: convert current note for this turtle to piano key (1-88) msgid "mouse pitch number" msgstr "" -#: js/EnsembleBlocks.js:629 +#: js/blocks/EnsembleBlocks.js:629 msgid "The Mouse pitch block returns the current pitch number being played by the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:641 +#: js/blocks/EnsembleBlocks.js:641 #.TRANS: convert current note for this turtle to piano key (1-88) msgid "turtle pitch number" msgstr "" -#: js/EnsembleBlocks.js:643 -msgid "The Turrle pitch block returns the current pitch number being played by the specified turtle." +#: js/blocks/EnsembleBlocks.js:643 +msgid "The Turtle pitch block returns the current pitch number being played by the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:747 -#: js/EnsembleBlocks.js:819 +#: js/blocks/EnsembleBlocks.js:747 +#: js/blocks/EnsembleBlocks.js:819 #.TRANS: note value is the duration of the note played by this mouse msgid "mouse note value" msgstr "" -#: js/EnsembleBlocks.js:757 +#: js/blocks/EnsembleBlocks.js:757 #.TRANS: note value is the duration of the note played by this turtle msgid "turtle note value" msgstr "" -#: js/EnsembleBlocks.js:830 +#: js/blocks/EnsembleBlocks.js:830 #.TRANS: sync is short for synchronization msgid "mouse sync" msgstr "" -#: js/EnsembleBlocks.js:832 +#: js/blocks/EnsembleBlocks.js:832 msgid "The Mouse sync block aligns the beat count between mice." msgstr "" -#: js/EnsembleBlocks.js:844 +#: js/blocks/EnsembleBlocks.js:844 #.TRANS: sync is short for synchronization msgid "turtle sync" msgstr "" -#: js/EnsembleBlocks.js:846 +#: js/blocks/EnsembleBlocks.js:846 msgid "The Turtle sync block aligns the beat count between turtles." msgstr "" -#: js/EnsembleBlocks.js:887 +#: js/blocks/EnsembleBlocks.js:887 msgid "The Found mouse block will return true if the specified mouse can be found." msgstr "" -#: js/EnsembleBlocks.js:893 +#: js/blocks/EnsembleBlocks.js:893 msgid "found mouse" msgstr "" -#: js/EnsembleBlocks.js:903 +#: js/blocks/EnsembleBlocks.js:903 msgid "The Found turtle block will return true if the specified turtle can be found." msgstr "" -#: js/EnsembleBlocks.js:909 -msgid "found turtle" -msgstr "" - -#: js/EnsembleBlocks.js:932 -msgid "new mouse" -msgstr "" - -#: js/EnsembleBlocks.js:934 -msgid "The New mouse block will create a new mouse." -msgstr "" - -#: js/EnsembleBlocks.js:945 -msgid "new turtle" -msgstr "" - -#: js/EnsembleBlocks.js:947 -msgid "The New turtle block will create a new turtle." -msgstr "" - -#: js/EnsembleBlocks.js:1011 -msgid "set mouse color" -msgstr "" - -#: js/EnsembleBlocks.js:1014 -msgid "The Set-mouse-color block is used to set the color of a mouse." -msgstr "" - -#: js/EnsembleBlocks.js:1020 -msgid "set turtle color" -msgstr "" - -#: js/EnsembleBlocks.js:1023 -msgid "The Set-turtle-color block is used to set the color of a turtle." -msgstr "" - -#: js/EnsembleBlocks.js:1083 -msgid "The Mouse-name block returns the name of a mouse." -msgstr "" - -#: js/EnsembleBlocks.js:1092 -msgid "The Turtle-name block returns the name of a turtle." -msgstr "" - -#: js/EnsembleBlocks.js:1115 -msgid "mouse count" -msgstr "" - -#: js/EnsembleBlocks.js:1118 -msgid "The Mouse-count block returns the number of mice." -msgstr "" - -#: js/EnsembleBlocks.js:1124 -msgid "turtle count" -msgstr "" - -#: js/EnsembleBlocks.js:1127 -msgid "The Turtle-count block returns the number of turtles." -msgstr "" - -#: js/EnsembleBlocks.js:1149 -msgid "nth mouse name" -msgstr "" - -#: js/EnsembleBlocks.js:1152 -msgid "The Nth-Mouse name block returns the name of the nth mouse." -msgstr "" - -#: js/EnsembleBlocks.js:1158 -msgid "nth turtle name" -msgstr "" - -#: js/EnsembleBlocks.js:1161 -msgid "The Nth-Turtle name block returns the name of the nth turtle." -msgstr "" - -#: js/EnsembleBlocks.js:1205 -#: js/EnsembleBlocks.js:1265 -msgid "set name" -msgstr "" - -#: js/EnsembleBlocks.js:1214 -#: js/EnsembleBlocks.js:1221 -msgid "source" -msgstr "" - -#: js/EnsembleBlocks.js:1214 -#: js/EnsembleBlocks.js:1221 -msgid "target" -msgstr "" - -#: js/EnsembleBlocks.js:1271 -msgid "The Set-name block is used to name a mouse." -msgstr "" - -#: js/EnsembleBlocks.js:1284 -msgid "The Set-name block is used to name a turtle." -msgstr "" - -#: js/BooleanBlocks.js:44 -msgid "The Not block is the logical not operator." -msgstr "" - -#: js/BooleanBlocks.js:62 -msgid "not" -msgstr "si" - -#: js/BooleanBlocks.js:134 -msgid "The And block is the logical and operator." -msgstr "" - -#: js/BooleanBlocks.js:152 -msgid "and" -msgstr "na" - -#: js/BooleanBlocks.js:218 -msgid "The Or block is the logical or operator." -msgstr "" - -#: js/BooleanBlocks.js:236 -msgid "or" -msgstr "cyangwa" +#: js/blocks/EnsembleBlocks.js:909 +msgid "found turtle" +msgstr "" -#: js/BooleanBlocks.js:302 -msgid "The XOR block is the logical XOR operator." +#: js/blocks/EnsembleBlocks.js:932 +msgid "new mouse" msgstr "" -#: js/BooleanBlocks.js:320 -msgid "xor" +#: js/blocks/EnsembleBlocks.js:934 +msgid "The New mouse block will create a new mouse." msgstr "" -#: js/BooleanBlocks.js:808 -msgid "The Equal block returns True if the two numbers are equal." +#: js/blocks/EnsembleBlocks.js:945 +msgid "new turtle" msgstr "" -#: js/BooleanBlocks.js:909 -msgid "The Not-equal-to block returns True if the two numbers are not equal to each other." +#: js/blocks/EnsembleBlocks.js:947 +msgid "The New turtle block will create a new turtle." msgstr "" -#: js/BooleanBlocks.js:1008 -msgid "The Boolean block is used to specify true or false." +#: js/blocks/EnsembleBlocks.js:1011 +msgid "set mouse color" msgstr "" -#: js/MediaBlocks.js:35 -#.TRANS: right side of the screen -msgid "right (screen)" +#: js/blocks/EnsembleBlocks.js:1014 +msgid "The Set-mouse-color block is used to set the color of a mouse." msgstr "" -#: js/MediaBlocks.js:45 -#: js/MediaBlocks.js:56 -msgid "The Right block returns the position of the right of the canvas." +#: js/blocks/EnsembleBlocks.js:1020 +msgid "set turtle color" msgstr "" -#: js/MediaBlocks.js:97 -#.TRANS: left side of the screen -msgid "left (screen)" +#: js/blocks/EnsembleBlocks.js:1023 +msgid "The Set-turtle-color block is used to set the color of a turtle." msgstr "" -#: js/MediaBlocks.js:107 -#: js/MediaBlocks.js:118 -msgid "The Left block returns the position of the left of the canvas." +#: js/blocks/EnsembleBlocks.js:1083 +msgid "The Mouse-name block returns the name of a mouse." msgstr "" -#: js/MediaBlocks.js:158 -msgid "top (screen)" +#: js/blocks/EnsembleBlocks.js:1092 +msgid "The Turtle-name block returns the name of a turtle." msgstr "" -#: js/MediaBlocks.js:168 -#: js/MediaBlocks.js:179 -msgid "The Top block returns the position of the top of the canvas." +#: js/blocks/EnsembleBlocks.js:1115 +msgid "mouse count" msgstr "" -#: js/MediaBlocks.js:219 -msgid "bottom (screen)" +#: js/blocks/EnsembleBlocks.js:1118 +msgid "The Mouse-count block returns the number of mice." msgstr "" -#: js/MediaBlocks.js:229 -#: js/MediaBlocks.js:240 -msgid "The Bottom block returns the position of the bottom of the canvas." +#: js/blocks/EnsembleBlocks.js:1124 +msgid "turtle count" msgstr "" -#: js/MediaBlocks.js:282 -msgid "width" +#: js/blocks/EnsembleBlocks.js:1127 +msgid "The Turtle-count block returns the number of turtles." msgstr "" -#: js/MediaBlocks.js:291 -msgid "The Width block returns the width of the canvas." +#: js/blocks/EnsembleBlocks.js:1149 +msgid "nth mouse name" msgstr "" -#: js/MediaBlocks.js:325 -msgid "height" +#: js/blocks/EnsembleBlocks.js:1152 +msgid "The Nth-Mouse name block returns the name of the nth mouse." msgstr "" -#: js/MediaBlocks.js:334 -msgid "The Height block returns the height of the canvas." +#: js/blocks/EnsembleBlocks.js:1158 +msgid "nth turtle name" msgstr "" -#: js/MediaBlocks.js:369 -#.TRANS: stops playback of an audio recording -msgid "stop play" +#: js/blocks/EnsembleBlocks.js:1161 +msgid "The Nth-Turtle name block returns the name of the nth turtle." msgstr "" -#: js/MediaBlocks.js:404 -#.TRANS: Erases the images and text -msgid "erase media" +#: js/blocks/EnsembleBlocks.js:1205 +#: js/blocks/EnsembleBlocks.js:1265 +msgid "set name" msgstr "" -#: js/MediaBlocks.js:409 -msgid "The Erase Media block erases text and images." +#: js/blocks/EnsembleBlocks.js:1214 +#: js/blocks/EnsembleBlocks.js:1221 +msgid "source" msgstr "" -#: js/MediaBlocks.js:439 -#.TRANS: play an audio recording -msgid "play back" +#: js/blocks/EnsembleBlocks.js:1214 +#: js/blocks/EnsembleBlocks.js:1221 +msgid "target" msgstr "" -#: js/MediaBlocks.js:487 -msgid "speak" -msgstr "vuga" +#: js/blocks/EnsembleBlocks.js:1271 +msgid "The Set-name block is used to name a mouse." +msgstr "" -#: js/MediaBlocks.js:495 -msgid "The Speak block outputs to the text-to-speech synthesizer" +#: js/blocks/EnsembleBlocks.js:1284 +msgid "The Set-name block is used to name a turtle." msgstr "" -#: js/MediaBlocks.js:546 -msgid "camera" +#: js/blocks/ExtrasBlocks.js:33 +msgid "fraction" msgstr "" -#: js/MediaBlocks.js:551 -msgid "The Camera block connects a webcam to the Show block." +#: js/blocks/ExtrasBlocks.js:36 +msgid "Convert a float to a fraction" msgstr "" -#: js/MediaBlocks.js:574 -msgid "video" +#: js/blocks/ExtrasBlocks.js:93 +msgid "save as ABC" msgstr "" -#: js/MediaBlocks.js:579 -msgid "The Video block selects video for use with the Show block." +#: js/blocks/ExtrasBlocks.js:96 +#: js/blocks/ExtrasBlocks.js:132 +#: js/blocks/ExtrasBlocks.js:168 +msgid "title" msgstr "" -#: js/MediaBlocks.js:607 -msgid "The Open file block opens a file for use with the Show block." +#: js/blocks/ExtrasBlocks.js:129 +msgid "save as Lilypond" msgstr "" -#: js/MediaBlocks.js:645 -msgid "stop media" +#: js/blocks/ExtrasBlocks.js:165 +msgid "save as SVG" msgstr "" -#: js/MediaBlocks.js:650 -msgid "The Stop media block stops audio or video playback." +#: js/blocks/ExtrasBlocks.js:216 +msgid "no background" msgstr "" -#: js/MediaBlocks.js:679 -#: js/PitchBlocks.js:1539 -#: js/phrasemaker.js:822 -#: js/musickeyboard.js:1654 -#.TRANS: a measure of frequency: one cycle per second -msgid "hertz" +#: js/blocks/ExtrasBlocks.js:219 +msgid "The No background block eliminates the background from the saved SVG output." msgstr "" -#: js/MediaBlocks.js:692 -msgid "duration (ms)" +#: js/blocks/ExtrasBlocks.js:247 +msgid "show blocks" +msgstr "erekana amablock" + +#: js/blocks/ExtrasBlocks.js:249 +msgid "The Show blocks block shows the blocks." msgstr "" -#: js/MediaBlocks.js:728 -#.TRANS: translate a note into hertz, e.g., A4 -> 440HZ -msgid "note to frequency" +#: js/blocks/ExtrasBlocks.js:274 +msgid "hide blocks" +msgstr "Hisha amablock" + +#: js/blocks/ExtrasBlocks.js:276 +msgid "The Hide blocks block hides the blocks." msgstr "" -#: js/MediaBlocks.js:736 -msgid "The To frequency block converts a pitch name and octave to Hertz." +#: js/blocks/ExtrasBlocks.js:305 +#: js/blocks/ExtrasBlocks.js:338 +msgid "The Space block is used to add space between blocks." msgstr "" -#: js/MediaBlocks.js:746 -#: js/PitchBlocks.js:656 -#: js/PitchBlocks.js:932 -#: js/PitchBlocks.js:1827 -#.TRANS: name2 is name as in name of pitch (JAPANESE ONLY) -msgid "name2" +#: js/blocks/ExtrasBlocks.js:376 +msgid "wait" +msgstr "tegereza" + +#: js/blocks/ExtrasBlocks.js:379 +msgid "The Wait block pauses the program for a specified number of seconds." msgstr "" -#: js/MediaBlocks.js:812 -msgid "The Avatar block is used to change the appearance of the mouse." +#: js/blocks/ExtrasBlocks.js:433 +#: plugins/facebook.rtp:30 +msgid "comment" +msgstr "ibivugwaho" + +#: js/blocks/ExtrasBlocks.js:469 +msgid "print" +msgstr "gucapa" + +#: js/blocks/ExtrasBlocks.js:476 +msgid "The Print block displays text at the top of the screen." msgstr "" -#: js/MediaBlocks.js:819 -msgid "The Avatar block is used to change the appearance of the turtle." +#: js/blocks/ExtrasBlocks.js:582 +msgid "display grid" msgstr "" -#: js/MediaBlocks.js:831 -#: js/MediaBlocks.js:891 -#.TRANS: a media object -msgid "size" +#: js/blocks/ExtrasBlocks.js:587 +msgid "The Display Grid Block changes the grid type" msgstr "" -#: js/MediaBlocks.js:831 -msgid "image" -msgstr "ishusho" +#: js/blocks/ExtrasBlocks.js:689 +#: js/blocks/ExtrasBlocks.js:708 +#: js/blocks/ExtrasBlocks.js:731 +#: js/blocks/ExtrasBlocks.js:754 +#: js/blocks/ExtrasBlocks.js:772 +#: js/blocks/ExtrasBlocks.js:791 +#: js/blocks/ExtrasBlocks.js:810 +#: js/blocks/ExtrasBlocks.js:829 +msgid "unknown" +msgstr "" -#: js/MediaBlocks.js:880 -msgid "The Show block is used to display text or images on the canvas." +#: js/blocks/FlowBlocks.js:41 +msgid "The Backward block runs code in reverse order (Musical retrograde)." msgstr "" -#: js/MediaBlocks.js:888 -#.TRANS: show1 is show as in display an image or text on the screen. -msgid "show1" +#: js/blocks/FlowBlocks.js:48 +msgid "backward" msgstr "" -#: js/MediaBlocks.js:891 -msgid "obj" +#: js/blocks/FlowBlocks.js:124 +msgid "The Duplicate block will run each block multiple times." msgstr "" -#: js/MediaBlocks.js:938 -msgid "The Media block is used to import an image." +#: js/blocks/FlowBlocks.js:136 +msgid "duplicate" msgstr "" -#: js/MediaBlocks.js:973 -msgid "The Text block holds a text string." +#: js/blocks/FlowBlocks.js:334 +msgid "The Default block is used inside of a Switch to define the default action." msgstr "" -#: js/ProgramBlocks.js:33 -msgid "The Load-heap-from-app block loads the heap from a web page." +#: js/blocks/FlowBlocks.js:342 +msgid "default" msgstr "" -#: js/ProgramBlocks.js:44 -#.TRANS: load the heap contents from a URL -msgid "load heap from App" +#: js/blocks/FlowBlocks.js:361 +#: js/blocks/FlowBlocks.js:418 +msgid "The Case Block must be used inside of a Switch Block." msgstr "" -#: js/ProgramBlocks.js:95 -msgid "Error parsing JSON data:" +#: js/blocks/FlowBlocks.js:389 +msgid "The Case block is used inside of a Switch to define matches." msgstr "" -#: js/ProgramBlocks.js:100 -msgid "404: Page not found" +#: js/blocks/FlowBlocks.js:397 +msgid "case" msgstr "" -#: js/ProgramBlocks.js:133 -msgid "The Save-heap-to-app block saves the heap to a web page." +#: js/blocks/FlowBlocks.js:446 +msgid "The Switch block will run the code in the matching Case." msgstr "" -#: js/ProgramBlocks.js:144 -#.TRANS: save the heap contents to a URL -msgid "save heap to App" +#: js/blocks/FlowBlocks.js:454 +msgid "switch" msgstr "" -#: js/ProgramBlocks.js:189 -msgid "Cannot find a valid heap for" +#: js/blocks/FlowBlocks.js:595 +msgid "The Stop block will stop a loop" msgstr "" -#: js/ProgramBlocks.js:206 -msgid "The Load-heap block loads the heap from a file." +#: js/blocks/FlowBlocks.js:597 +msgid "Forever, Repeat, While, or Until." msgstr "" -#: js/ProgramBlocks.js:217 -#.TRANS: load the heap from a file -msgid "load heap" +#: js/blocks/FlowBlocks.js:604 +#: js/widgets/timbre.js:417 +#: js/widgets/timbre.js:419 +#: js/widgets/musickeyboard.js:819 +#: js/widgets/musickeyboard.js:821 +#: js/widgets/phrasemaker.js:4202 +#: plugins/rodi.rtp:29 +#: plugins/rodi.rtp:73 +#: plugins/rodi.rtp:413 +msgid "stop" +msgstr "hejuru" + +#: js/blocks/FlowBlocks.js:653 +msgid "The Waitfor block will wait until the condition is true." msgstr "" -#: js/ProgramBlocks.js:270 -msgid "The file you selected does not contain a valid heap." +#: js/blocks/FlowBlocks.js:661 +msgid "wait for" msgstr "" -#: js/ProgramBlocks.js:275 -msgid "The loadHeap block needs a loadFile block." +#: js/blocks/FlowBlocks.js:732 +msgid "The Until block will repeat until the condition is true." msgstr "" -#: js/ProgramBlocks.js:291 -msgid "The Set-heap block loads the heap." +#: js/blocks/FlowBlocks.js:740 +msgid "until" +msgstr "kugeza" + +#: js/blocks/FlowBlocks.js:742 +#: js/blocks/FlowBlocks.js:822 +msgid "do2" msgstr "" -#: js/ProgramBlocks.js:299 -#: js/HeapBlocks.js:539 -#.TRANS: load the heap from a JSON encoding -msgid "set heap" +#: js/blocks/FlowBlocks.js:812 +msgid "The While block will repeat while the condition is true." msgstr "" -#: js/ProgramBlocks.js:340 -msgid "The block you selected does not contain a valid heap." +#: js/blocks/FlowBlocks.js:820 +msgid "while" +msgstr "umweru" + +#: js/blocks/FlowBlocks.js:903 +#: js/blocks/FlowBlocks.js:968 +#: js/blocks/FlowBlocks.js:979 +msgid "In this example if the mouse button is pressed a snare drum will play." msgstr "" -#: js/ProgramBlocks.js:343 -msgid "The Set heap block needs a heap." +#: js/blocks/FlowBlocks.js:925 +#: js/blocks/FlowBlocks.js:988 +msgid "if" +msgstr "niba" + +#: js/blocks/FlowBlocks.js:927 +#: js/blocks/FlowBlocks.js:990 +msgid "then" +msgstr "hanyuma" + +#: js/blocks/FlowBlocks.js:927 +msgid "else" msgstr "" -#: js/ProgramBlocks.js:360 -msgid "The Load-dictionary block loads a dictionary from a file." +#: js/blocks/FlowBlocks.js:1025 +msgid "The Forever block will repeat the contained blocks forever." msgstr "" -#: js/ProgramBlocks.js:372 -#.TRANS: load a dictionary from a file -msgid "load dictionary" +#: js/blocks/FlowBlocks.js:1037 +msgid "forever" +msgstr "igihe cyose" + +#: js/blocks/FlowBlocks.js:1073 +msgid "The Repeat block will repeat the contained blocks." msgstr "" -#: js/ProgramBlocks.js:390 -#: js/ProgramBlocks.js:658 -#: js/ToneBlocks.js:1025 -msgid "file" +#: js/blocks/FlowBlocks.js:1075 +msgid "In this example the note will be played 4 times." msgstr "" -#: js/ProgramBlocks.js:396 -#: js/ProgramBlocks.js:501 -#: js/ProgramBlocks.js:664 -#: js/DictBlocks.js:80 -#: js/DictBlocks.js:145 -#: js/DictBlocks.js:216 -#: js/DictBlocks.js:290 -msgid "My Dictionary" +#: js/blocks/FlowBlocks.js:1083 +msgid "repeat" +msgstr "subiramo" + +#: js/blocks/FlowBlocks.js:1123 +msgid "duplicate factor" msgstr "" -#: js/ProgramBlocks.js:444 -msgid "The file you selected does not contain a valid dictionary." +#: js/blocks/HeapBlocks.js:49 +msgid "The Heap block returns the heap." msgstr "" -#: js/ProgramBlocks.js:449 -msgid "The load dictionary block needs a load file block." +#: js/blocks/HeapBlocks.js:133 +msgid "show heap" msgstr "" -#: js/ProgramBlocks.js:466 -msgid "The Set-dictionary block loads a dictionary." +#: js/blocks/HeapBlocks.js:181 +msgid "The Heap-length block returns the length of the heap." msgstr "" -#: js/ProgramBlocks.js:477 -#.TRANS: load a dictionary from a JSON -msgid "set dictionary" +#: js/blocks/HeapBlocks.js:195 +msgid "heap length" msgstr "" -#: js/ProgramBlocks.js:546 -msgid "The block you selected does not contain a valid dictionary." +#: js/blocks/HeapBlocks.js:254 +msgid "The Heap-empty? block returns true if the heap is empty." msgstr "" -#: js/ProgramBlocks.js:550 -msgid "The set dictionary block needs a dictionary." +#: js/blocks/HeapBlocks.js:268 +#.TRANS: Is the heap empty? +msgid "heap empty?" msgstr "" -#: js/ProgramBlocks.js:567 -msgid "The Save-heap block saves the heap to a file." +#: js/blocks/HeapBlocks.js:317 +msgid "The Empty-heap block empties the heap." msgstr "" -#: js/ProgramBlocks.js:578 -#.TRANS: save the heap to a file -msgid "save heap" +#: js/blocks/HeapBlocks.js:327 +#: js/blocks/HeapBlocks.js:647 +#.TRANS: empty the heap +msgid "empty heap" msgstr "" -#: js/ProgramBlocks.js:629 -msgid "The Save-dictionary block saves a dictionary to a file." +#: js/blocks/HeapBlocks.js:371 +msgid "The Reverse-heap block reverses the order of the heap." msgstr "" -#: js/ProgramBlocks.js:640 -#.TRANS: save a dictionary to a file -msgid "save dictionary" +#: js/blocks/HeapBlocks.js:384 +#.TRANS: reverse the order of the heap +msgid "reverse heap" msgstr "" -#: js/ProgramBlocks.js:720 -msgid "The Open palette block opens a palette." +#: js/blocks/HeapBlocks.js:428 +msgid "The Index-heap block returns a value in the heap at a specified location." msgstr "" -#: js/ProgramBlocks.js:727 -msgid "open palette" +#: js/blocks/HeapBlocks.js:443 +#.TRANS: retrieve a value from the heap at index position in the heap +msgid "index heap" msgstr "" -#: js/ProgramBlocks.js:785 -msgid "The Delete block block removes a block." +#: js/blocks/HeapBlocks.js:523 +msgid "The Set-heap entry block sets a value in he heap at the specified location." msgstr "" -#: js/ProgramBlocks.js:797 -#.TRANS: Move this block to the trash. -msgid "delete block" +#: js/blocks/HeapBlocks.js:539 +#: js/blocks/ProgramBlocks.js:299 +#.TRANS: load the heap from a JSON encoding +msgid "set heap" msgstr "" -#: js/ProgramBlocks.js:861 -msgid "The Move block block moves a block." +#: js/blocks/HeapBlocks.js:619 +msgid "The Pop block removes the value at the top of the heap." msgstr "" -#: js/ProgramBlocks.js:869 -#.TRANS: Move the position of a block on the screen. -msgid "move block" +#: js/blocks/HeapBlocks.js:633 +#.TRANS: pop a value off the top of the heap +msgid "pop" msgstr "" -#: js/ProgramBlocks.js:881 -#: js/ProgramBlocks.js:1048 -msgid "block number" +#: js/blocks/HeapBlocks.js:680 +msgid "The Push block adds a value to the top of the heap." msgstr "" -#: js/ProgramBlocks.js:935 -#.TRANS: Run program beginning at this block. -msgid "run block" +#: js/blocks/HeapBlocks.js:696 +#.TRANS: push a value onto the top of the heap +msgid "push" +msgstr "sunika" + +#: js/blocks/IntervalsBlocks.js:45 +msgid "set temperament" msgstr "" -#: js/ProgramBlocks.js:1025 -msgid "The Dock block block connections two blocks." +#: js/blocks/IntervalsBlocks.js:63 +#: js/blocks/MediaBlocks.js:746 +#: js/blocks/PitchBlocks.js:657 +#: js/blocks/PitchBlocks.js:935 +#: js/blocks/PitchBlocks.js:974 +#: js/blocks/PitchBlocks.js:1007 +#: js/blocks/PitchBlocks.js:1194 +#: js/blocks/PitchBlocks.js:1717 +#: js/blocks/PitchBlocks.js:1758 +#: js/blocks/PitchBlocks.js:1866 +#: js/blocks/ToneBlocks.js:1025 +#: js/turtleactions/IntervalsActions.js:114 +#.TRANS: adjusts the shift up or down by one octave (twelve half-steps in the interval between two notes, one having twice or half the frequency in Hz of the other.) +msgid "octave" msgstr "" -#: js/ProgramBlocks.js:1036 -#.TRANS: We can connect a block to another block. -msgid "connect blocks" +#: js/blocks/IntervalsBlocks.js:99 +msgid "The Temperament name block is used to select a tuning method." msgstr "" -#: js/ProgramBlocks.js:1048 -msgid "target block" +#: js/blocks/IntervalsBlocks.js:161 +msgid "doubly" msgstr "" -#: js/ProgramBlocks.js:1048 -msgid "connection number" +#: js/blocks/IntervalsBlocks.js:166 +msgid "The Doubly block will double the size of an interval." msgstr "" -#: js/ProgramBlocks.js:1140 -msgid "The Make block block creates a new block." +#: js/blocks/IntervalsBlocks.js:262 +msgid "interval number" msgstr "" -#: js/ProgramBlocks.js:1152 -#.TRANS: Create a new block -msgid "make block" +#: js/blocks/IntervalsBlocks.js:317 +msgid "current interval" msgstr "" -#: js/ProgramBlocks.js:1186 -#: js/ProgramBlocks.js:1227 -#: js/RhythmBlocks.js:1128 -#: js/PitchBlocks.js:972 -#: js/PitchBlocks.js:1005 -#: js/temperament.js:340 -#: js/temperament.js:362 -#: js/temperament.js:372 -#: js/temperament.js:484 -#: js/status.js:190 -#: plugins/rodi.rtp:192 -#.TRANS: a musical note consisting of pitch and duration -msgid "note" +#: js/blocks/IntervalsBlocks.js:387 +#.TRANS: measure the distance between two pitches in semi-tones +msgid "semi-tone interval measure" msgstr "" -#: js/ProgramBlocks.js:1285 -msgid "Cannot find block" +#: js/blocks/IntervalsBlocks.js:454 +#: js/blocks/IntervalsBlocks.js:570 +msgid "You must use two pitch blocks when measuring an interval." msgstr "" -#: js/ProgramBlocks.js:1304 -#: js/ProgramBlocks.js:1313 -msgid "Warning: block argument type mismatch" +#: js/blocks/IntervalsBlocks.js:496 +msgid "The Scalar interval block measures the distance between two notes in the current key and mode." msgstr "" -#: js/ProgramBlocks.js:1347 -msgid "The Open project block is used to open a project from a web page." +#: js/blocks/IntervalsBlocks.js:502 +#.TRANS: measure the distance between two pitches in steps of musical scale +msgid "scalar interval measure" msgstr "" -#: js/ProgramBlocks.js:1357 -msgid "open project" +#: js/blocks/IntervalsBlocks.js:678 +msgid "In the figure, we add sol# to sol." msgstr "" -#: js/ProgramBlocks.js:1410 -msgid "Please enter a valid URL." +#: js/blocks/IntervalsBlocks.js:684 +#: js/blocks/OrnamentBlocks.js:220 +#.TRANS: calculate a relative step between notes based on semi-tones +msgid "semi-tone interval" msgstr "" -#: js/DrumBlocks.js:59 -msgid "The Noise name block is used to select a noise synthesizer." +#: js/blocks/IntervalsBlocks.js:733 +msgid "The output of the example is: do, mi, sol, sol, ti, mi" msgstr "" -#: js/DrumBlocks.js:102 -msgid "The Drum name block is used to select a drum." +#: js/blocks/IntervalsBlocks.js:740 +#: js/blocks/WidgetBlocks.js:768 +msgid "arpeggio" msgstr "" -#: js/DrumBlocks.js:146 -msgid "The Effects name block is used to select a sound effect." +#: js/blocks/IntervalsBlocks.js:931 +msgid "The Chord block calculates common chords." msgstr "" -#: js/DrumBlocks.js:163 -msgid "noise" +#: js/blocks/IntervalsBlocks.js:933 +msgid "In the figure, we generate a C-major chord." msgstr "" -#: js/DrumBlocks.js:177 -msgid "The Play noise block will generate white, pink, or brown noise." +#: js/blocks/IntervalsBlocks.js:938 +msgid "chord" msgstr "" -#: js/DrumBlocks.js:191 -#: js/musicutils.js:752 -#: js/synthutils.js:47 -#.TRANS: white noise synthesizer -msgid "white noise" +#: js/blocks/IntervalsBlocks.js:990 +msgid "The Ratio Interval block calculates an interval based on a ratio." msgstr "" -#: js/DrumBlocks.js:326 -msgid "Replace every instance of a pitch with a drum sound." +#: js/blocks/IntervalsBlocks.js:995 +msgid "ratio interval" msgstr "" -#: js/DrumBlocks.js:337 -#.TRANS: map a pitch to a drum sound -msgid "map pitch to drum" +#: js/blocks/IntervalsBlocks.js:1064 +msgid "In the figure, we add la to sol." msgstr "" -#: js/DrumBlocks.js:404 -msgid "In the example above, a kick drum sound will be played instead of sol." +#: js/blocks/IntervalsBlocks.js:1120 +#.TRANS: define a custom mode +msgid "define mode" msgstr "" -#: js/DrumBlocks.js:416 -#.TRANS: set the current drum sound for playback -msgid "set drum" +#: js/blocks/IntervalsBlocks.js:1173 +msgid "movable Do" msgstr "" -#: js/DrumBlocks.js:460 -msgid "sound effect" +#: js/blocks/IntervalsBlocks.js:1224 +#.TRANS: mode length is the number of notes in the mode, e.g., 7 for major and minor scales; 12 for chromatic scales +msgid "mode length" msgstr "" -#: js/DrumBlocks.js:498 -msgid "You can use multiple Drum blocks within a Note block." +#: js/blocks/IntervalsBlocks.js:1233 +msgid "The Mode length block is the number of notes in the current scale." msgstr "" -#: js/RhythmBlocks.js:182 -#: js/RhythmBlocks.js:1086 -#: js/RhythmBlocks.js:1162 -msgid "Note value must be greater than 0." +#: js/blocks/IntervalsBlocks.js:1235 +msgid "Most Western scales have 7 notes." msgstr "" -#: js/RhythmBlocks.js:215 -#: js/RhythmBlocks.js:278 -#: js/RhythmBlocks.js:350 -#.TRANS: swing is a rhythmic variation that emphasises the offbeat -msgid "swing" +#: js/blocks/IntervalsBlocks.js:1284 +#.TRANS: the mode in music is 'major', 'minor', etc. +msgid "current mode" msgstr "" -#: js/RhythmBlocks.js:355 -#.TRANS: the amount to shift to the offbeat note -msgid "swing value" +#: js/blocks/IntervalsBlocks.js:1337 +#.TRANS: the key is a group of pitches with which a music composition is created +msgid "current key" msgstr "" -#: js/RhythmBlocks.js:419 -msgid "The Skip notes block will cause notes to be skipped." +#: js/blocks/IntervalsBlocks.js:1389 +#: js/blocks/IntervalsBlocks.js:1434 +#.TRANS: set the key and mode, e.g. C Major +msgid "set key" msgstr "" -#: js/RhythmBlocks.js:427 -#.TRANS: substitute rests on notes being skipped -msgid "skip notes" +#: js/blocks/IntervalsBlocks.js:1443 +#: js/blocks/IntervalsBlocks.js:1449 +msgid "The Set key block is used to set the key and mode," msgstr "" -#: js/RhythmBlocks.js:489 -#.TRANS: speed up note duration by some factor, e.g. convert 1/4 to 1/8 notes by using a factor of 2 -msgid "multiply note value" +#: js/blocks/IntervalsBlocks.js:1449 +msgid "eg C Major" msgstr "" -#: js/RhythmBlocks.js:542 -msgid "The Tie block works on pairs of notes, combining them into one note." +#: js/blocks/MediaBlocks.js:35 +#.TRANS: right side of the screen +msgid "right (screen)" msgstr "" -#: js/RhythmBlocks.js:550 -#.TRANS: tie notes together into one longer note -msgid "tie" +#: js/blocks/MediaBlocks.js:45 +#: js/blocks/MediaBlocks.js:56 +msgid "The Right block returns the position of the right of the canvas." msgstr "" -#: js/RhythmBlocks.js:591 -#: js/RhythmBlocks.js:671 -#.TRANS: a dotted note is played for 1.5x its value, e.g., 1/8. --> 3/16 -msgid "dot" +#: js/blocks/MediaBlocks.js:97 +#.TRANS: left side of the screen +msgid "left (screen)" msgstr "" -#: js/RhythmBlocks.js:619 -#: js/RhythmActions.js:221 -msgid "An argument of -1 results in a note value of 0." +#: js/blocks/MediaBlocks.js:107 +#: js/blocks/MediaBlocks.js:118 +msgid "The Left block returns the position of the left of the canvas." msgstr "" -#: js/RhythmBlocks.js:661 -msgid "The Dot block extends the duration of a note by 50%." +#: js/blocks/MediaBlocks.js:158 +msgid "top (screen)" msgstr "" -#: js/RhythmBlocks.js:663 -msgid "Eg a dotted quarter note will play for 3/8 (1/4 + 1/8) of a beat." +#: js/blocks/MediaBlocks.js:168 +#: js/blocks/MediaBlocks.js:179 +msgid "The Top block returns the position of the top of the canvas." msgstr "" -#: js/RhythmBlocks.js:765 -#.TRANS: Japanese only: note value block for drum -msgid "note value drum" +#: js/blocks/MediaBlocks.js:219 +msgid "bottom (screen)" msgstr "" -#: js/RhythmBlocks.js:829 -msgid "392 hertz" +#: js/blocks/MediaBlocks.js:229 +#: js/blocks/MediaBlocks.js:240 +msgid "The Bottom block returns the position of the bottom of the canvas." msgstr "" -#: js/RhythmBlocks.js:1119 -msgid "The Note block is a container for one or more Pitch blocks." +#: js/blocks/MediaBlocks.js:282 +msgid "width" msgstr "" -#: js/RhythmBlocks.js:1121 -msgid "The Note block specifies the duration (note value) of its contents." +#: js/blocks/MediaBlocks.js:291 +msgid "The Width block returns the width of the canvas." msgstr "" -#: js/RhythmBlocks.js:1130 -msgid "value2" +#: js/blocks/MediaBlocks.js:325 +msgid "height" msgstr "" -#: js/RhythmBlocks.js:1200 -msgid "define frequency" +#: js/blocks/MediaBlocks.js:334 +msgid "The Height block returns the height of the canvas." msgstr "" -#: js/RhythmBlocks.js:1218 -#: js/temperament.js:650 -#: js/temperament.js:1421 -msgid "octave space" +#: js/blocks/MediaBlocks.js:369 +#.TRANS: stops playback of an audio recording +msgid "stop play" msgstr "" -#: js/NumberBlocks.js:28 -msgid "The Int block returns an integer." +#: js/blocks/MediaBlocks.js:404 +#.TRANS: Erases the images and text +msgid "erase media" msgstr "" -#: js/NumberBlocks.js:34 -msgid "int" +#: js/blocks/MediaBlocks.js:409 +msgid "The Erase Media block erases text and images." msgstr "" -#: js/NumberBlocks.js:73 -msgid "The Mod block returns the remainder from a division." +#: js/blocks/MediaBlocks.js:439 +#.TRANS: play an audio recording +msgid "play back" msgstr "" -#: js/NumberBlocks.js:79 -msgid "mod" +#: js/blocks/MediaBlocks.js:487 +msgid "speak" +msgstr "vuga" + +#: js/blocks/MediaBlocks.js:495 +msgid "The Speak block outputs to the text-to-speech synthesizer" msgstr "" -#: js/NumberBlocks.js:123 -msgid "The Power block calculates a power function." +#: js/blocks/MediaBlocks.js:546 +msgid "camera" msgstr "" -#: js/NumberBlocks.js:178 -msgid "The Sqrt block returns the square root." +#: js/blocks/MediaBlocks.js:551 +msgid "The Camera block connects a webcam to the Show block." msgstr "" -#: js/NumberBlocks.js:184 -msgid "sqrt" +#: js/blocks/MediaBlocks.js:574 +msgid "video" msgstr "" -#: js/NumberBlocks.js:230 -msgid "The Abs block returns the absolute value." +#: js/blocks/MediaBlocks.js:579 +msgid "The Video block selects video for use with the Show block." msgstr "" -#: js/NumberBlocks.js:236 -msgid "abs" +#: js/blocks/MediaBlocks.js:607 +msgid "The Open file block opens a file for use with the Show block." msgstr "" -#: js/NumberBlocks.js:277 -msgid "The Distance block returns the distance between two points. For example, between the mouse and the center of the screen." +#: js/blocks/MediaBlocks.js:645 +msgid "stop media" msgstr "" -#: js/NumberBlocks.js:283 -#: plugins/rodi.rtp:310 -msgid "distance" +#: js/blocks/MediaBlocks.js:650 +msgid "The Stop media block stops audio or video playback." msgstr "" -#: js/NumberBlocks.js:343 -msgid "The Divide block is used to divide." +#: js/blocks/MediaBlocks.js:679 +#: js/blocks/PitchBlocks.js:1577 +#: js/widgets/musickeyboard.js:1936 +#: js/widgets/phrasemaker.js:1037 +#.TRANS: a measure of frequency: one cycle per second +msgid "hertz" msgstr "" -#: js/NumberBlocks.js:411 -msgid "The Multiply block is used to multiply." +#: js/blocks/MediaBlocks.js:692 +#: js/blocks/WidgetBlocks.js:182 +#: js/widgets/temperament.js:506 +#: js/widgets/temperament.js:546 +#: js/widgets/temperament.js:610 +#: js/widgets/temperament.js:618 +#: js/widgets/temperament.js:1505 +#: js/widgets/timbre.js:1842 +msgid "frequency" msgstr "" -#: js/NumberBlocks.js:554 -msgid "The Minus block is used to subtract." +#: js/blocks/MediaBlocks.js:692 +msgid "duration (ms)" msgstr "" -#: js/NumberBlocks.js:647 -msgid "The Plus block is used to add." +#: js/blocks/MediaBlocks.js:728 +#.TRANS: translate a note into hertz, e.g., A4 -> 440HZ +msgid "note to frequency" msgstr "" -#: js/NumberBlocks.js:773 -msgid "The One-of block returns one of two choices." +#: js/blocks/MediaBlocks.js:736 +msgid "The To frequency block converts a pitch name and octave to Hertz." msgstr "" -#: js/NumberBlocks.js:780 -#: js/PitchBlocks.js:616 -msgid "one of" +#: js/blocks/MediaBlocks.js:746 +#: js/blocks/PitchBlocks.js:656 +#: js/blocks/PitchBlocks.js:934 +#: js/blocks/PitchBlocks.js:1866 +#.TRANS: name2 is name as in name of pitch (JAPANESE ONLY) +msgid "name2" msgstr "" -#: js/NumberBlocks.js:782 -msgid "this" +#: js/blocks/MediaBlocks.js:812 +msgid "The Avatar block is used to change the appearance of the mouse." msgstr "" -#: js/NumberBlocks.js:782 -msgid "that" +#: js/blocks/MediaBlocks.js:819 +msgid "The Avatar block is used to change the appearance of the turtle." msgstr "" -#: js/NumberBlocks.js:837 -msgid "The Random block returns a random number." +#: js/blocks/MediaBlocks.js:831 +#: js/blocks/MediaBlocks.js:891 +#.TRANS: a media object +msgid "size" msgstr "" -#: js/NumberBlocks.js:844 -msgid "random" -msgstr "binyuranye" +#: js/blocks/MediaBlocks.js:831 +msgid "image" +msgstr "ishusho" -#: js/NumberBlocks.js:846 -msgid "min" -msgstr "min" +#: js/blocks/MediaBlocks.js:880 +msgid "The Show block is used to display text or images on the canvas." +msgstr "" -#: js/NumberBlocks.js:846 -msgid "max" -msgstr "max" +#: js/blocks/MediaBlocks.js:888 +#.TRANS: show1 is show as in display an image or text on the screen. +msgid "show1" +msgstr "" -#: js/NumberBlocks.js:910 -msgid "The Number block holds a number." +#: js/blocks/MediaBlocks.js:891 +msgid "obj" msgstr "" -#: js/BoxesBlocks.js:53 -#: js/BoxesBlocks.js:59 -msgid "The Add-to block is used to add to the value stored in a box." +#: js/blocks/MediaBlocks.js:938 +msgid "The Media block is used to import an image." msgstr "" -#: js/BoxesBlocks.js:61 -msgid "It can also be used with other blocks such as Color and Pen size." +#: js/blocks/MediaBlocks.js:973 +msgid "The Text block holds a text string." msgstr "" -#: js/BoxesBlocks.js:73 -msgid "add" +#: js/blocks/MeterBlocks.js:34 +#.TRANS: musical meter (time signature), e.g., 4:4 +msgid "current meter" msgstr "" -#: js/BoxesBlocks.js:75 -#: js/temperament.js:716 -msgid "to" +#: js/blocks/MeterBlocks.js:85 +#.TRANS: number of beats per minute +msgid "beat factor" msgstr "" -#: js/BoxesBlocks.js:75 -#: js/BoxesBlocks.js:595 -#: js/HeapBlocks.js:544 -msgid "value1" +#: js/blocks/MeterBlocks.js:161 +msgid "The Beats per minute block returns the current beats per minute." msgstr "" -#: js/BoxesBlocks.js:118 -msgid "Block does not support incrementing." +#: js/blocks/MeterBlocks.js:169 +#: js/widgets/status.js:152 +#.TRANS: number of beats played per minute +msgid "beats per minute2" msgstr "" -#: js/BoxesBlocks.js:152 -msgid "The Add-1-to block adds one to the value stored in a box." +#: js/blocks/MeterBlocks.js:169 +#: js/blocks/MeterBlocks.js:1056 +#: js/blocks/MeterBlocks.js:1133 +#: js/blocks/MeterBlocks.js:1211 +#.TRANS: sets tempo by defining a beat and beats per minute +msgid "beats per minute" msgstr "" -#: js/BoxesBlocks.js:163 -msgid "add 1 to" +#: js/blocks/MeterBlocks.js:233 +#.TRANS: count of current musical measure in meter +msgid "measure count" msgstr "" -#: js/BoxesBlocks.js:211 -msgid "The Subtract-1-from block subtracts one from the value stored in a box." +#: js/blocks/MeterBlocks.js:241 +msgid "The Measure count block returns the current measure." msgstr "" -#: js/BoxesBlocks.js:222 -msgid "subtract 1 from" +#: js/blocks/MeterBlocks.js:290 +#.TRANS: count of current beat in the meter +msgid "beat count" msgstr "" -#: js/BoxesBlocks.js:270 -#: js/BoxesBlocks.js:387 -msgid "The Box block returns the value stored in a box." +#: js/blocks/MeterBlocks.js:300 +#: js/blocks/MeterBlocks.js:311 +#: js/blocks/MeterBlocks.js:565 +#: js/blocks/MeterBlocks.js:576 +msgid "The Beat count block is the number of the current beat," msgstr "" -#: js/BoxesBlocks.js:500 -#: js/BoxesBlocks.js:576 -msgid "The Store in block will store a value in a box." +#: js/blocks/MeterBlocks.js:313 +#: js/blocks/MeterBlocks.js:578 +msgid "eg 1, 2, 3, or 4." msgstr "" -#: js/BoxesBlocks.js:652 -msgid "The Box2 block returns the value stored in Box2." +#: js/blocks/MeterBlocks.js:368 +#.TRANS: count the number of notes +msgid "sum note values" msgstr "" -#: js/BoxesBlocks.js:703 -msgid "The Store in Box2 block is used to store a value in Box2." +#: js/blocks/MeterBlocks.js:376 +#: js/blocks/MeterBlocks.js:440 +msgid "The Note counter block can be used to count the number of contained notes." msgstr "" -#: js/BoxesBlocks.js:715 -msgid "store in box2" +#: js/blocks/MeterBlocks.js:432 +#.TRANS: count the number of notes +msgid "note counter" msgstr "" -#: js/BoxesBlocks.js:761 -msgid "The Box1 block returns the value stored in Box1." +#: js/blocks/MeterBlocks.js:496 +#.TRANS: number of whole notes that have been played +msgid "whole notes played" msgstr "" -#: js/BoxesBlocks.js:812 -msgid "The Store in Box1 block is used to store a value in Box1." +#: js/blocks/MeterBlocks.js:505 +msgid "The Whole notes played block returns the total number of whole notes played." msgstr "" -#: js/BoxesBlocks.js:826 -msgid "store in box1" +#: js/blocks/MeterBlocks.js:555 +#: js/turtleactions/DictActions.js:83 +#.TRANS: number of notes that have been played +msgid "notes played" msgstr "" -#: js/HeapBlocks.js:49 -msgid "The Heap block returns the heap." +#: js/blocks/MeterBlocks.js:653 +msgid "The No clock block decouples the notes from the master clock." msgstr "" -#: js/HeapBlocks.js:133 -msgid "show heap" +#: js/blocks/MeterBlocks.js:661 +#.TRANS: don't lock notes to master clock +msgid "no clock" msgstr "" -#: js/HeapBlocks.js:181 -msgid "The Heap-length block returns the length of the heap." +#: js/blocks/MeterBlocks.js:700 +msgid "on weak beat do" msgstr "" -#: js/HeapBlocks.js:195 -msgid "heap length" +#: js/blocks/MeterBlocks.js:705 +msgid "The On-weak-beat block lets you specify actions to take on weak (off) beats." msgstr "" -#: js/HeapBlocks.js:254 -msgid "The Heap-empty? block returns true if the heap is empty." +#: js/blocks/MeterBlocks.js:750 +msgid "on strong beat" msgstr "" -#: js/HeapBlocks.js:268 -#.TRANS: Is the heap empty? -msgid "heap empty?" +#: js/blocks/MeterBlocks.js:758 +msgid "The On-strong-beat block lets you specify actions to take on specified beats." msgstr "" -#: js/HeapBlocks.js:317 -msgid "The Empty-heap block empties the heap." +#: js/blocks/MeterBlocks.js:769 +msgid "beat" msgstr "" -#: js/HeapBlocks.js:327 -#: js/HeapBlocks.js:647 -#.TRANS: empty the heap -msgid "empty heap" +#: js/blocks/MeterBlocks.js:813 +msgid "on every beat do" msgstr "" -#: js/HeapBlocks.js:371 -msgid "The Reverse-heap block reverses the order of the heap." +#: js/blocks/MeterBlocks.js:821 +msgid "The On-every-beat block lets you specify actions to take on every beat." msgstr "" -#: js/HeapBlocks.js:384 -#.TRANS: reverse the order of the heap -msgid "reverse heap" +#: js/blocks/MeterBlocks.js:874 +msgid "on every note do" msgstr "" -#: js/HeapBlocks.js:428 -msgid "The Index-heap block returns a value in the heap at a specified location." +#: js/blocks/MeterBlocks.js:882 +msgid "The On-every-note block lets you specify actions to take on every note." msgstr "" -#: js/HeapBlocks.js:443 -#.TRANS: retrieve a value from the heap at index position in the heap -msgid "index heap" +#: js/blocks/MeterBlocks.js:928 +#: js/blocks/MeterBlocks.js:999 +#.TRANS: sets tempo by defining a beat and beats per minute +msgid "master beats per minute" msgstr "" -#: js/HeapBlocks.js:523 -msgid "The Set-heap entry block sets a value in he heap at the specified location." +#: js/blocks/MeterBlocks.js:952 +#: js/blocks/MeterBlocks.js:1078 +#: js/blocks/MeterBlocks.js:1135 +msgid "bpm" msgstr "" -#: js/HeapBlocks.js:619 -msgid "The Pop block removes the value at the top of the heap." +#: js/blocks/MeterBlocks.js:952 +#: js/blocks/MeterBlocks.js:1078 +#: js/blocks/MeterBlocks.js:1135 +msgid "beat value" msgstr "" -#: js/HeapBlocks.js:633 -#.TRANS: pop a value off the top of the heap -msgid "pop" +#: js/blocks/MeterBlocks.js:1024 +#: js/blocks/MeterBlocks.js:1167 +#: js/blocks/MeterBlocks.js:1241 +msgid "Beats per minute must be > 30." msgstr "" -#: js/HeapBlocks.js:680 -msgid "The Push block adds a value to the top of the heap." +#: js/blocks/MeterBlocks.js:1027 +#: js/blocks/MeterBlocks.js:1170 +#: js/blocks/MeterBlocks.js:1244 +msgid "Maximum beats per minute is 1000." msgstr "" -#: js/HeapBlocks.js:696 -#.TRANS: push a value onto the top of the heap -msgid "push" -msgstr "sunika" +#: js/blocks/MeterBlocks.js:1068 +msgid "The Beats per minute block sets the number of 1/4 notes per minute." +msgstr "" -#: js/FlowBlocks.js:41 -msgid "The Backward block runs code in reverse order (Musical retrograde)." +#: js/blocks/MeterBlocks.js:1279 +#.TRANS: anacrusis +msgid "pickup" msgstr "" -#: js/FlowBlocks.js:48 -msgid "backward" +#: js/blocks/MeterBlocks.js:1367 +msgid "number of beats" msgstr "" -#: js/FlowBlocks.js:124 -msgid "The Duplicate block will run each block multiple times." +#: js/blocks/NumberBlocks.js:28 +msgid "The Int block returns an integer." msgstr "" -#: js/FlowBlocks.js:136 -msgid "duplicate" +#: js/blocks/NumberBlocks.js:34 +msgid "int" msgstr "" -#: js/FlowBlocks.js:334 -msgid "The Default block is used inside of a Switch to define the default action." +#: js/blocks/NumberBlocks.js:73 +msgid "The Mod block returns the remainder from a division." msgstr "" -#: js/FlowBlocks.js:342 -msgid "default" +#: js/blocks/NumberBlocks.js:79 +msgid "mod" msgstr "" -#: js/FlowBlocks.js:361 -#: js/FlowBlocks.js:418 -msgid "The Case Block must be used inside of a Switch Block." +#: js/blocks/NumberBlocks.js:141 +msgid "The Power block calculates a power function." msgstr "" -#: js/FlowBlocks.js:389 -msgid "The Case block is used inside of a Switch to define matches." +#: js/blocks/NumberBlocks.js:196 +msgid "The Sqrt block returns the square root." msgstr "" -#: js/FlowBlocks.js:397 -msgid "case" +#: js/blocks/NumberBlocks.js:202 +msgid "sqrt" msgstr "" -#: js/FlowBlocks.js:446 -msgid "The Switch block will run the code in the matching Case." +#: js/blocks/NumberBlocks.js:248 +msgid "The Abs block returns the absolute value." msgstr "" -#: js/FlowBlocks.js:454 -msgid "switch" +#: js/blocks/NumberBlocks.js:254 +msgid "abs" msgstr "" -#: js/FlowBlocks.js:595 -msgid "The Stop block will stop a loop" +#: js/blocks/NumberBlocks.js:295 +msgid "The Distance block returns the distance between two points. For example, between the mouse and the center of the screen." msgstr "" -#: js/FlowBlocks.js:597 -msgid "Forever, Repeat, While, or Until." +#: js/blocks/NumberBlocks.js:301 +#: plugins/rodi.rtp:310 +msgid "distance" msgstr "" -#: js/FlowBlocks.js:604 -#: js/phrasemaker.js:3799 -#: js/musickeyboard.js:629 -#: js/musickeyboard.js:631 -#: js/timbre.js:417 -#: js/timbre.js:419 -#: plugins/rodi.rtp:29 -#: plugins/rodi.rtp:73 -#: plugins/rodi.rtp:413 -msgid "stop" -msgstr "hejuru" +#: js/blocks/NumberBlocks.js:361 +msgid "The Divide block is used to divide." +msgstr "" -#: js/FlowBlocks.js:653 -msgid "The Waitfor block will wait until the condition is true." +#: js/blocks/NumberBlocks.js:441 +msgid "The Multiply block is used to multiply." msgstr "" -#: js/FlowBlocks.js:661 -msgid "wait for" +#: js/blocks/NumberBlocks.js:612 +msgid "The Minus block is used to subtract." msgstr "" -#: js/FlowBlocks.js:732 -msgid "The Until block will repeat until the condition is true." +#: js/blocks/NumberBlocks.js:723 +msgid "The Plus block is used to add." msgstr "" -#: js/FlowBlocks.js:740 -msgid "until" -msgstr "kugeza" +#: js/blocks/NumberBlocks.js:849 +msgid "The One-of block returns one of two choices." +msgstr "" -#: js/FlowBlocks.js:742 -#: js/FlowBlocks.js:822 -msgid "do2" +#: js/blocks/NumberBlocks.js:856 +#: js/blocks/PitchBlocks.js:616 +msgid "one of" msgstr "" -#: js/FlowBlocks.js:812 -msgid "The While block will repeat while the condition is true." +#: js/blocks/NumberBlocks.js:858 +msgid "this" msgstr "" -#: js/FlowBlocks.js:820 -msgid "while" -msgstr "umweru" +#: js/blocks/NumberBlocks.js:858 +msgid "that" +msgstr "" -#: js/FlowBlocks.js:903 -#: js/FlowBlocks.js:968 -#: js/FlowBlocks.js:979 -msgid "In this example if the mouse button is pressed a snare drum will play." +#: js/blocks/NumberBlocks.js:913 +msgid "The Random block returns a random number." msgstr "" -#: js/FlowBlocks.js:925 -#: js/FlowBlocks.js:988 -msgid "if" -msgstr "niba" +#: js/blocks/NumberBlocks.js:920 +msgid "random" +msgstr "binyuranye" -#: js/FlowBlocks.js:927 -#: js/FlowBlocks.js:990 -msgid "then" -msgstr "hanyuma" +#: js/blocks/NumberBlocks.js:922 +msgid "min" +msgstr "min" -#: js/FlowBlocks.js:927 -msgid "else" -msgstr "" +#: js/blocks/NumberBlocks.js:922 +msgid "max" +msgstr "max" -#: js/FlowBlocks.js:1025 -msgid "The Forever block will repeat the contained blocks forever." +#: js/blocks/NumberBlocks.js:986 +msgid "The Number block holds a number." msgstr "" -#: js/FlowBlocks.js:1037 -msgid "forever" -msgstr "igihe cyose" - -#: js/FlowBlocks.js:1073 -msgid "The Repeat block will repeat the contained blocks." +#: js/blocks/OrnamentBlocks.js:32 +msgid "staccato factor" msgstr "" -#: js/FlowBlocks.js:1075 -msgid "In this example the note will be played 4 times." +#: js/blocks/OrnamentBlocks.js:108 +msgid "slur factor" msgstr "" -#: js/FlowBlocks.js:1083 -msgid "repeat" -msgstr "subiramo" - -#: js/FlowBlocks.js:1123 -msgid "duplicate factor" +#: js/blocks/OrnamentBlocks.js:217 +#: js/blocks/OrnamentBlocks.js:309 +#.TRANS: the neighbor refers to a neighboring note, e.g., D is a neighbor of C +msgid "neighbor" msgstr "" -#: js/PitchBlocks.js:39 -#: js/musicutils.js:722 -#: js/musicutils.js:1117 -#: js/synthutils.js:112 -#.TRANS: square wave -msgid "square" +#: js/blocks/OrnamentBlocks.js:293 +msgid "The Neighbor block rapidly switches between neighboring pitches." msgstr "" -#: js/PitchBlocks.js:62 -#: js/ToneBlocks.js:39 -#: js/musicutils.js:723 -#: js/musicutils.js:1118 -#: js/synthutils.js:116 -#.TRANS: triangle wave -msgid "triangle" +#: js/blocks/OrnamentBlocks.js:364 +msgid "glide" msgstr "" -#: js/PitchBlocks.js:85 -#: js/musicutils.js:721 -#: js/musicutils.js:1116 -#: js/synthutils.js:110 -#.TRANS: sine wave -msgid "sine" +#: js/blocks/OrnamentBlocks.js:479 +#: js/blocks/OrnamentBlocks.js:643 +msgid "slur" msgstr "" -#: js/PitchBlocks.js:108 -#: js/musicutils.js:724 -#: js/musicutils.js:1119 -#: js/synthutils.js:114 -#.TRANS: sawtooth wave -msgid "sawtooth" +#: js/blocks/OrnamentBlocks.js:558 +#: js/blocks/OrnamentBlocks.js:710 +#.TRANS: play each note sharply detached from the others +msgid "staccato" msgstr "" -#: js/PitchBlocks.js:141 -#.TRANS: musical transposition (adjustment of pitch up or down) -msgid "transposition" +#: js/blocks/RhythmBlocks.js:182 +#: js/blocks/RhythmBlocks.js:1086 +#: js/blocks/RhythmBlocks.js:1162 +msgid "Note value must be greater than 0." msgstr "" -#: js/PitchBlocks.js:168 -#.TRANS: step down one note in current musical scale -msgid "scalar step down" +#: js/blocks/RhythmBlocks.js:215 +#: js/blocks/RhythmBlocks.js:278 +#: js/blocks/RhythmBlocks.js:350 +#.TRANS: swing is a rhythmic variation that emphasises the offbeat +msgid "swing" msgstr "" -#: js/PitchBlocks.js:172 -msgid "The Scalar step down block returns the number of semi-tones down to the previous note in the current key and mode." +#: js/blocks/RhythmBlocks.js:355 +#.TRANS: the amount to shift to the offbeat note +msgid "swing value" msgstr "" -#: js/PitchBlocks.js:190 -#.TRANS: step up one note in current musical scale -msgid "scalar step up" +#: js/blocks/RhythmBlocks.js:419 +msgid "The Skip notes block will cause notes to be skipped." msgstr "" -#: js/PitchBlocks.js:194 -msgid "The Scalar step up block returns the number of semi-tones up to the next note in the current key and mode." +#: js/blocks/RhythmBlocks.js:427 +#.TRANS: substitute rests on notes being skipped +msgid "skip notes" msgstr "" -#: js/PitchBlocks.js:212 -#.TRANS: the change measured in half-steps between the current pitch and the previous pitch -msgid "change in pitch" +#: js/blocks/RhythmBlocks.js:489 +#.TRANS: speed up note duration by some factor, e.g. convert 1/4 to 1/8 notes by using a factor of 2 +msgid "multiply note value" msgstr "" -#: js/PitchBlocks.js:216 -msgid "The Change in pitch block is the difference (in half steps) between the current pitch being played and the previous pitch played." +#: js/blocks/RhythmBlocks.js:542 +msgid "The Tie block works on pairs of notes, combining them into one note." msgstr "" -#: js/PitchBlocks.js:243 -#.TRANS: the change measured in scale-steps between the current pitch and the previous pitch -msgid "scalar change in pitch" +#: js/blocks/RhythmBlocks.js:550 +#.TRANS: tie notes together into one longer note +msgid "tie" msgstr "" -#: js/PitchBlocks.js:250 -#: js/PitchBlocks.js:432 -#: js/PitchBlocks.js:1629 -#: js/DictActions.js:89 -#: js/temperament.js:477 -#: js/temperament.js:481 -#: js/temperament.js:714 -#.TRANS: convert current note to piano key (1-88) -#.TRANS: a mapping of pitch to the 88 piano keys -msgid "pitch number" +#: js/blocks/RhythmBlocks.js:591 +#: js/blocks/RhythmBlocks.js:671 +#.TRANS: a dotted note is played for 1.5x its value, e.g., 1/8. --> 3/16 +msgid "dot" msgstr "" -#: js/PitchBlocks.js:256 -msgid "The Pitch number block is the value of the pitch of the note currently being played." +#: js/blocks/RhythmBlocks.js:619 +#: js/turtleactions/RhythmActions.js:221 +msgid "An argument of -1 results in a note value of 0." msgstr "" -#: js/PitchBlocks.js:329 -#: js/PitchBlocks.js:433 -#.TRANS: the current pitch expressed in Hertz -msgid "pitch in hertz" +#: js/blocks/RhythmBlocks.js:661 +msgid "The Dot block extends the duration of a note by 50%." msgstr "" -#: js/PitchBlocks.js:334 -msgid "The Pitch in Hertz block is the value in Hertz of the pitch of the note currently being played." +#: js/blocks/RhythmBlocks.js:663 +msgid "Eg a dotted quarter note will play for 3/8 (1/4 + 1/8) of a beat." msgstr "" -#: js/PitchBlocks.js:367 -#: js/DictActions.js:87 -msgid "current pitch" +#: js/blocks/RhythmBlocks.js:765 +#.TRANS: Japanese only: note value block for drum +msgid "note value drum" msgstr "" -#: js/PitchBlocks.js:373 -msgid "The Current Pitch block is used with the Pitch Converter block. In the example above, current pitch, sol 4, is displayed as 392 hertz." +#: js/blocks/RhythmBlocks.js:829 +msgid "392 hertz" msgstr "" -#: js/PitchBlocks.js:410 -msgid "This block converts the pitch value of the last note played into different formats such as hertz, letter name, pitch number, et al." +#: js/blocks/RhythmBlocks.js:1119 +msgid "The Note block is a container for one or more Pitch blocks." msgstr "" -#: js/PitchBlocks.js:434 -msgid "alphabet" +#: js/blocks/RhythmBlocks.js:1121 +msgid "The Note block specifies the duration (note value) of its contents." msgstr "" -#: js/PitchBlocks.js:436 -#.TRANS: Translate as "alphabet class" -msgid "letter class" +#: js/blocks/RhythmBlocks.js:1128 +#: js/blocks/PitchBlocks.js:974 +#: js/blocks/PitchBlocks.js:1007 +#: js/blocks/ProgramBlocks.js:1186 +#: js/blocks/ProgramBlocks.js:1227 +#: js/widgets/status.js:190 +#: js/widgets/temperament.js:464 +#: js/widgets/temperament.js:486 +#: js/widgets/temperament.js:496 +#: js/widgets/temperament.js:617 +#: plugins/rodi.rtp:192 +#.TRANS: a musical note consisting of pitch and duration +msgid "note" msgstr "" -#: js/PitchBlocks.js:437 -msgid "solfege class" +#: js/blocks/RhythmBlocks.js:1130 +msgid "value2" msgstr "" -#: js/PitchBlocks.js:438 -msgid "staff y" +#: js/blocks/RhythmBlocks.js:1200 +msgid "define frequency" msgstr "" -#: js/PitchBlocks.js:439 -msgid "solfege syllable" +#: js/blocks/RhythmBlocks.js:1218 +#: js/widgets/temperament.js:787 +#: js/widgets/temperament.js:1587 +msgid "octave space" msgstr "" -#: js/PitchBlocks.js:440 -msgid "pitch class" +#: js/blocks/SensorsBlocks.js:36 +msgid "The Input block prompts for keyboard input." msgstr "" -#: js/PitchBlocks.js:441 -msgid "scalar class" +#: js/blocks/SensorsBlocks.js:46 +msgid "input" msgstr "" -#: js/PitchBlocks.js:443 -msgid "nth degree" +#: js/blocks/SensorsBlocks.js:64 +msgid "Input a value" msgstr "" -#: js/PitchBlocks.js:444 -msgid "pitch to shade" +#: js/blocks/SensorsBlocks.js:126 +msgid "input value" msgstr "" -#: js/PitchBlocks.js:445 -msgid "pitch to color" +#: js/blocks/SensorsBlocks.js:131 +msgid "The Input-value block stores the input." msgstr "" -#: js/PitchBlocks.js:629 -#: js/musickeyboard.js:565 -#.TRANS: MIDI is a technical standard for electronic music -msgid "MIDI" -msgstr "" +#: js/blocks/SensorsBlocks.js:238 +msgid "loudness" +msgstr "imisakurize" -#: js/PitchBlocks.js:642 -#.TRANS: set an offset associated with the numeric piano keyboard mapping -msgid "set pitch number offset" +#: js/blocks/SensorsBlocks.js:245 +msgid "The Loudness block returns the volume detected by the microphone." msgstr "" -#: js/PitchBlocks.js:645 -msgid "The Set pitch number offset block is used to set the offset for mapping pitch numbers to pitch and octave." +#: js/blocks/SensorsBlocks.js:300 +msgid "click" msgstr "" -#: js/PitchBlocks.js:679 -#.TRANS: convert piano key number (1-88) to pitch -msgid "number to pitch" +#: js/blocks/SensorsBlocks.js:306 +msgid "The Click block triggers an event if a mouse has been clicked." msgstr "" -#: js/PitchBlocks.js:682 -msgid "The Number to pitch block will convert a pitch number to a pich name." +#: js/blocks/SensorsBlocks.js:313 +msgid "The Click block triggers an event if a turtle has been clicked." msgstr "" -#: js/PitchBlocks.js:715 -#.TRANS: convert piano key number (1-88) to octave -msgid "number to octave" +#: js/blocks/SensorsBlocks.js:342 +msgid "cursor over" msgstr "" -#: js/PitchBlocks.js:717 -msgid "The Number to octave block will convert a pitch number to an octave." +#: js/blocks/SensorsBlocks.js:387 +msgid "cursor out" msgstr "" -#: js/PitchBlocks.js:726 -msgid "y to pitch" +#: js/blocks/SensorsBlocks.js:433 +msgid "cursor button down" msgstr "" -#: js/PitchBlocks.js:729 -msgid "Y to pitch block will convert a staff y position to corresponding pitch notation." +#: js/blocks/SensorsBlocks.js:477 +msgid "cursor button up" msgstr "" -#: js/PitchBlocks.js:841 -msgid "accidental selector" +#: js/blocks/SensorsBlocks.js:521 +#: js/blocks/PenBlocks.js:48 +#: plugins/rodi.rtp:219 +msgid "blue" msgstr "" -#: js/PitchBlocks.js:844 -msgid "The Accidental selector block is used to choose between double-sharp, sharp, natural, flat, and double-flat." +#: js/blocks/SensorsBlocks.js:577 +#: js/blocks/PenBlocks.js:64 +#: plugins/rodi.rtp:218 +msgid "green" msgstr "" -#: js/PitchBlocks.js:858 -msgid "Pitch can be specified in terms of ni dha pa ma ga re sa." +#: js/blocks/SensorsBlocks.js:633 +#: js/blocks/PenBlocks.js:112 +#: plugins/rodi.rtp:217 +msgid "red" msgstr "" -#: js/PitchBlocks.js:872 -msgid "Pitch can be specified in terms of C D E F G A B." +#: js/blocks/SensorsBlocks.js:638 +msgid "The Get red block returns the red component of the pixel under the mouse." msgstr "" -#: js/PitchBlocks.js:883 -msgid "solfege" +#: js/blocks/SensorsBlocks.js:644 +msgid "The Get red block returns the red component of the pixel under the turtle." msgstr "" -#: js/PitchBlocks.js:886 -msgid "Pitch can be specified in terms of do re mi fa sol la ti." +#: js/blocks/SensorsBlocks.js:685 +#: plugins/rodi.rtp:216 +msgid "pixel color" msgstr "" -#: js/PitchBlocks.js:920 -msgid "The Invert block rotates any contained notes around a target note." +#: js/blocks/SensorsBlocks.js:690 +msgid "The Get pixel block returns the color of the pixel under the mouse." msgstr "" -#: js/PitchBlocks.js:927 -#.TRANS: pitch inversion rotates a pitch around another pitch -msgid "invert" +#: js/blocks/SensorsBlocks.js:696 +msgid "The Get pixel block returns the color of the pixel under the turtle." msgstr "" -#: js/PitchBlocks.js:929 -#: js/PitchBlocks.js:935 -#: js/PitchActions.js:727 -#: js/musicutils.js:726 -#: js/musicutils.js:902 -#.TRANS: invert based on even or odd number or musical scale -#.TRANS: even numbers -msgid "even" -msgstr "" +#: js/blocks/SensorsBlocks.js:758 +msgid "time" +msgstr "igihe" -#: js/PitchBlocks.js:935 -#: js/PitchActions.js:729 -#: js/musicutils.js:728 -#: js/musicutils.js:903 -#.TRANS: odd numbers -msgid "odd" +#: js/blocks/SensorsBlocks.js:804 +msgid "cursor y" msgstr "" -#: js/PitchBlocks.js:935 -#: js/PitchActions.js:731 -#: js/musicutils.js:729 -#: js/musicutils.js:904 -msgid "scalar" +#: js/blocks/SensorsBlocks.js:809 +msgid "The Cursor Y block returns the vertical position of the mouse." msgstr "" -#: js/PitchBlocks.js:966 -#.TRANS: pitch inversion rotates a pitch around another pitch (odd number) -msgid "invert (odd)" +#: js/blocks/SensorsBlocks.js:845 +msgid "cursor x" msgstr "" -#: js/PitchBlocks.js:999 -#.TRANS: pitch inversion rotates a pitch around another pitch (even number) -msgid "invert (even)" +#: js/blocks/SensorsBlocks.js:850 +msgid "The Cursor X block returns the horizontal position of the mouse." msgstr "" -#: js/PitchBlocks.js:1020 -#.TRANS: register is the octave of the current pitch -msgid "register" +#: js/blocks/SensorsBlocks.js:886 +msgid "mouse button" msgstr "" -#: js/PitchBlocks.js:1024 -msgid "The Register block provides an easy way to modify the register (octave) of the notes that follow it." +#: js/blocks/SensorsBlocks.js:888 +msgid "The Mouse-button block returns True if the mouse button is pressed." msgstr "" -#: js/PitchBlocks.js:1074 -msgid "The Semi-tone transposition block will shift the pitches contained inside Note blocks up (or down) by half steps." +#: js/blocks/SensorsBlocks.js:934 +msgid "to ASCII" msgstr "" -#: js/PitchBlocks.js:1076 -msgid "In the example shown above, sol is shifted up to sol#." +#: js/blocks/SensorsBlocks.js:938 +msgid "The To ASCII block converts numbers to letters." msgstr "" -#: js/PitchBlocks.js:1082 -#.TRANS: adjust the amount of shift (up or down) of a pitch -msgid "semi-tone transpose" +#: js/blocks/SensorsBlocks.js:1005 +msgid "The Keyboard block returns computer keyboard input." msgstr "" -#: js/PitchBlocks.js:1115 -msgid "The Transpose by Ratio block will shift the pitches contained inside Note blocks up (or down) by a ratio" +#: js/blocks/RhythmBlockPaletteBlocks.js:50 +#: js/blocks/RhythmBlockPaletteBlocks.js:233 +#.TRANS: rhythm block +#.TRANS: translate "rhythm1" as rhythm +msgid "rhythm1" msgstr "" -#: js/PitchBlocks.js:1121 -#.TRANS: adjust the amount of shift (up or down) of a pitch -msgid "transpose by ratio" +#: js/blocks/RhythmBlockPaletteBlocks.js:70 +#: js/blocks/RhythmBlockPaletteBlocks.js:252 +#: js/blocks/RhythmBlockPaletteBlocks.js:485 +#: js/blocks/RhythmBlockPaletteBlocks.js:554 +#: js/blocks/RhythmBlockPaletteBlocks.js:875 +msgid "number of notes" msgstr "" -#: js/PitchBlocks.js:1204 -#.TRANS: down sixth means the note is five scale degrees below current note -msgid "down sixth" +#: js/blocks/RhythmBlockPaletteBlocks.js:126 +msgid "polyphonic rhythm" msgstr "" -#: js/PitchBlocks.js:1223 -#.TRANS: down third means the note is two scale degrees below current note -msgid "down third" +#: js/blocks/RhythmBlockPaletteBlocks.js:219 +msgid "The Rhythm block is used to generate rhythm patterns." msgstr "" -#: js/PitchBlocks.js:1242 -#.TRANS: seventh means the note is the six scale degrees above current note -msgid "seventh" +#: js/blocks/RhythmBlockPaletteBlocks.js:280 +msgid "1/64 note" msgstr "" -#: js/PitchBlocks.js:1261 -#.TRANS: sixth means the note is the five scale degrees above current note -msgid "sixth" +#: js/blocks/RhythmBlockPaletteBlocks.js:304 +msgid "1/32 note" msgstr "" -#: js/PitchBlocks.js:1280 -#.TRANS: fifth means the note is the four scale degrees above current note -msgid "fifth" +#: js/blocks/RhythmBlockPaletteBlocks.js:332 +msgid "1/16 note" msgstr "" -#: js/PitchBlocks.js:1300 -#.TRANS: fourth means the note is three scale degrees above current note -msgid "fourth" +#: js/blocks/RhythmBlockPaletteBlocks.js:360 +msgid "eighth note" msgstr "" -#: js/PitchBlocks.js:1319 -#.TRANS: third means the note is two scale degrees above current note -msgid "third" +#: js/blocks/RhythmBlockPaletteBlocks.js:388 +msgid "quarter note" msgstr "" -#: js/PitchBlocks.js:1338 -#.TRANS: second means the note is one scale degree above current note -msgid "second" +#: js/blocks/RhythmBlockPaletteBlocks.js:416 +msgid "half note" msgstr "" -#: js/PitchBlocks.js:1379 -msgid "The Scalar transposition block will shift the pitches contained inside Note blocks up (or down) the scale." +#: js/blocks/RhythmBlockPaletteBlocks.js:444 +msgid "whole note" msgstr "" -#: js/PitchBlocks.js:1381 -msgid "In the example shown above, sol is shifted up to la." +#: js/blocks/RhythmBlockPaletteBlocks.js:482 +#: js/blocks/RhythmBlockPaletteBlocks.js:551 +#: js/blocks/RhythmBlockPaletteBlocks.js:602 +#.TRANS: A tuplet is a note value divided into irregular time values. +msgid "tuplet" msgstr "" -#: js/PitchBlocks.js:1388 -#.TRANS: adjust the amount of shift (up or down) of a pitch by musical scale (scalar) steps -msgid "scalar transpose" +#: js/blocks/RhythmBlockPaletteBlocks.js:768 +msgid "septuplet" msgstr "" -#: js/PitchBlocks.js:1423 -msgid "The Accidental block is used to create sharps and flats" +#: js/blocks/RhythmBlockPaletteBlocks.js:796 +msgid "quintuplet" msgstr "" -#: js/PitchBlocks.js:1430 -#.TRANS: An accidental is a modification to a pitch, e.g., sharp or flat. -msgid "accidental override" +#: js/blocks/RhythmBlockPaletteBlocks.js:824 +msgid "triplet" msgstr "" -#: js/PitchBlocks.js:1543 -msgid "The Hertz block (in combination with a Number block) will play a sound at the specified frequency." +#: js/blocks/RhythmBlockPaletteBlocks.js:851 +msgid "simple tuplet" msgstr "" -#: js/PitchBlocks.js:1633 -msgid "The Pitch Number block will play a pitch associated by its number, e.g. 0 for C and 7 for G." +#: js/blocks/RhythmBlockPaletteBlocks.js:861 +msgid "Tuplets are a collection of notes that get scaled to a specific duration." msgstr "" -#: js/PitchBlocks.js:1665 -#: js/PitchBlocks.js:1707 -#.TRANS: a numeric mapping of the notes in an octave based on the musical mode -#.TRANS: a numeric mapping of the notes in an octave based on the musical mode -msgid "nth modal pitch" +#: js/blocks/DrumBlocks.js:59 +msgid "The Noise name block is used to select a noise synthesizer." msgstr "" -#: js/PitchBlocks.js:1668 -msgid "n^th Modal Pitch takes the pattern of pitches in semitones for a mode and makes each point a degree of the mode," +#: js/blocks/DrumBlocks.js:102 +msgid "The Drum name block is used to select a drum." msgstr "" -#: js/PitchBlocks.js:1670 -msgid "starting from 1 and regardless of tonal framework (i.e. not always 8 notes in the octave)" +#: js/blocks/DrumBlocks.js:146 +msgid "The Effects name block is used to select a sound effect." msgstr "" -#: js/PitchBlocks.js:1711 -msgid "N^th Modal Pitch takes a number as an input as the n^th degree for the given mode. 0 is the first position, 1 is the second, -1 is the note before the first etc." +#: js/blocks/DrumBlocks.js:163 +msgid "noise" msgstr "" -#: js/PitchBlocks.js:1713 -msgid "The pitches change according to the mode specified without any need for respellings." +#: js/blocks/DrumBlocks.js:177 +msgid "The Play noise block will generate white, pink, or brown noise." msgstr "" -#: js/PitchBlocks.js:1752 -msgid "Scale Degree is a common convention in music. Scale Degree offers seven possible positions in the scale (1-7) and can be modified via accidentals." +#: js/blocks/DrumBlocks.js:317 +msgid "Replace every instance of a pitch with a drum sound." msgstr "" -#: js/PitchBlocks.js:1754 -msgid "Scale Degree 1 is always the first pitch in a given scale, regardless of octave." +#: js/blocks/DrumBlocks.js:328 +#.TRANS: map a pitch to a drum sound +msgid "map pitch to drum" msgstr "" -#: js/PitchBlocks.js:1776 -#.TRANS: step some number of notes in current musical scale -msgid "scalar step" +#: js/blocks/DrumBlocks.js:395 +msgid "In the example above, a kick drum sound will be played instead of sol." msgstr "" -#: js/PitchBlocks.js:1781 -msgid "The Scalar Step block (in combination with a Number block) will play the next pitch in a scale," +#: js/blocks/DrumBlocks.js:407 +#.TRANS: set the current drum sound for playback +msgid "set drum" msgstr "" -#: js/PitchBlocks.js:1783 -msgid "eg if the last note played was sol, Scalar Step 1 will play la." +#: js/blocks/DrumBlocks.js:451 +msgid "sound effect" msgstr "" -#: js/PitchBlocks.js:1818 -msgid "The Pitch block specifies the pitch name and octave of a note that together determine the frequency of the note." +#: js/blocks/DrumBlocks.js:489 +msgid "You can use multiple Drum blocks within a Note block." msgstr "" -#: js/GraphicsBlocks.js:46 -#: js/DictActions.js:77 -#: js/DictActions.js:155 -#: js/DictActions.js:189 +#: js/blocks/GraphicsBlocks.js:46 +#: js/turtleactions/DictActions.js:77 +#: js/turtleactions/DictActions.js:144 +#: js/turtleactions/DictActions.js:173 msgid "heading" msgstr "umutwempangano" -#: js/GraphicsBlocks.js:56 +#: js/blocks/GraphicsBlocks.js:56 msgid "The Heading block returns the orientation of the mouse." msgstr "" -#: js/GraphicsBlocks.js:62 +#: js/blocks/GraphicsBlocks.js:62 msgid "The Heading block returns the orientation of the turtle." msgstr "" -#: js/GraphicsBlocks.js:133 +#: js/blocks/GraphicsBlocks.js:133 msgid "The Y block returns the vertical position of the mouse." msgstr "" -#: js/GraphicsBlocks.js:140 +#: js/blocks/GraphicsBlocks.js:140 msgid "The Y block returns the vertical position of the turtle." msgstr "" -#: js/GraphicsBlocks.js:149 +#: js/blocks/GraphicsBlocks.js:149 msgid "y3" msgstr "" -#: js/GraphicsBlocks.js:219 +#: js/blocks/GraphicsBlocks.js:219 msgid "The X block returns the horizontal position of the mouse." msgstr "" -#: js/GraphicsBlocks.js:226 +#: js/blocks/GraphicsBlocks.js:226 msgid "The X block returns the horizontal position of the turtle." msgstr "" -#: js/GraphicsBlocks.js:235 +#: js/blocks/GraphicsBlocks.js:235 msgid "x3" msgstr "" -#: js/GraphicsBlocks.js:295 +#: js/blocks/GraphicsBlocks.js:295 msgid "scroll xy" msgstr "" -#: js/GraphicsBlocks.js:303 +#: js/blocks/GraphicsBlocks.js:303 msgid "The Scroll XY block moves the canvas." msgstr "" -#: js/GraphicsBlocks.js:313 +#: js/blocks/GraphicsBlocks.js:313 msgid "x2" msgstr "" -#: js/GraphicsBlocks.js:313 +#: js/blocks/GraphicsBlocks.js:313 msgid "y2" msgstr "" -#: js/GraphicsBlocks.js:373 -#: js/temperament.js:213 -#: js/temperament.js:241 +#: js/blocks/GraphicsBlocks.js:373 +#: js/widgets/temperament.js:319 +#: js/widgets/temperament.js:347 msgid "clear" msgstr "" -#: js/GraphicsBlocks.js:426 +#: js/blocks/GraphicsBlocks.js:426 msgid "The Control-point 2 block sets the second control point for the Bezier curve." msgstr "" -#: js/GraphicsBlocks.js:433 +#: js/blocks/GraphicsBlocks.js:433 msgid "control point 2" msgstr "" -#: js/GraphicsBlocks.js:436 -#: js/GraphicsBlocks.js:487 -#: js/GraphicsBlocks.js:534 -#: js/GraphicsBlocks.js:750 +#: js/blocks/GraphicsBlocks.js:436 +#: js/blocks/GraphicsBlocks.js:487 +#: js/blocks/GraphicsBlocks.js:534 +#: js/blocks/GraphicsBlocks.js:750 msgid "x1" msgstr "" -#: js/GraphicsBlocks.js:436 -#: js/GraphicsBlocks.js:487 -#: js/GraphicsBlocks.js:534 -#: js/GraphicsBlocks.js:750 +#: js/blocks/GraphicsBlocks.js:436 +#: js/blocks/GraphicsBlocks.js:487 +#: js/blocks/GraphicsBlocks.js:534 +#: js/blocks/GraphicsBlocks.js:750 msgid "y1" msgstr "" -#: js/GraphicsBlocks.js:477 +#: js/blocks/GraphicsBlocks.js:477 msgid "The Control-point 1 block sets the first control point for the Bezier curve." msgstr "" -#: js/GraphicsBlocks.js:484 +#: js/blocks/GraphicsBlocks.js:484 msgid "control point 1" msgstr "" -#: js/GraphicsBlocks.js:527 +#: js/blocks/GraphicsBlocks.js:527 msgid "The Bezier block draws a Bezier curve." msgstr "" -#: js/GraphicsBlocks.js:531 +#: js/blocks/GraphicsBlocks.js:531 msgid "bezier" msgstr "" -#: js/GraphicsBlocks.js:592 +#: js/blocks/GraphicsBlocks.js:592 msgid "The Arc block moves the turtle in an arc." msgstr "" -#: js/GraphicsBlocks.js:600 +#: js/blocks/GraphicsBlocks.js:600 msgid "arc" msgstr "agaheto" -#: js/GraphicsBlocks.js:603 +#: js/blocks/GraphicsBlocks.js:603 msgid "angle" msgstr "imfuruka" -#: js/GraphicsBlocks.js:603 +#: js/blocks/GraphicsBlocks.js:603 msgid "radius" msgstr "akarambararo" -#: js/GraphicsBlocks.js:620 -#: js/GraphicsBlocks.js:767 -#: js/GraphicsBlocks.js:1010 -#: js/GraphicsBlocks.js:1093 +#: js/blocks/GraphicsBlocks.js:620 +#: js/blocks/GraphicsBlocks.js:767 +#: js/blocks/GraphicsBlocks.js:1010 +#: js/blocks/GraphicsBlocks.js:1093 msgid "Value must be within -5000 to 5000 when Wrap Mode is off." msgstr "" -#: js/GraphicsBlocks.js:622 -#: js/GraphicsBlocks.js:769 -#: js/GraphicsBlocks.js:1012 -#: js/GraphicsBlocks.js:1095 +#: js/blocks/GraphicsBlocks.js:622 +#: js/blocks/GraphicsBlocks.js:769 +#: js/blocks/GraphicsBlocks.js:1012 +#: js/blocks/GraphicsBlocks.js:1095 msgid "Value must be within -20000 to 20000 when Wrap Mode is on." msgstr "" -#: js/GraphicsBlocks.js:660 +#: js/blocks/GraphicsBlocks.js:660 msgid "set heading" msgstr "shyiraho umtwe" -#: js/GraphicsBlocks.js:673 +#: js/blocks/GraphicsBlocks.js:673 msgid "The Set heading block sets the heading of the turtle." msgstr "" -#: js/GraphicsBlocks.js:733 +#: js/blocks/GraphicsBlocks.js:733 msgid "The Set XY block moves the mouse to a specific position on the screen." msgstr "" -#: js/GraphicsBlocks.js:739 +#: js/blocks/GraphicsBlocks.js:739 msgid "The Set XY block moves the turtle to a specific position on the screen." msgstr "" -#: js/GraphicsBlocks.js:747 +#: js/blocks/GraphicsBlocks.js:747 msgid "set xy" msgstr "" -#: js/GraphicsBlocks.js:819 +#: js/blocks/GraphicsBlocks.js:819 msgid "The Right block turns the mouse to the right." msgstr "" -#: js/GraphicsBlocks.js:826 +#: js/blocks/GraphicsBlocks.js:826 msgid "The Right block turns the turtle to the right." msgstr "" -#: js/GraphicsBlocks.js:835 +#: js/blocks/GraphicsBlocks.js:835 msgid "right1" msgstr "" -#: js/GraphicsBlocks.js:835 +#: js/blocks/GraphicsBlocks.js:835 #: plugins/rodi.rtp:77 #: plugins/rodi.rtp:340 #: plugins/rodi.rtp:375 msgid "right" msgstr "iburyo" -#: js/GraphicsBlocks.js:899 +#: js/blocks/GraphicsBlocks.js:899 msgid "The Left block turns the mouse to the left." msgstr "" -#: js/GraphicsBlocks.js:906 +#: js/blocks/GraphicsBlocks.js:906 msgid "The Left block turns the turtle to the left." msgstr "" -#: js/GraphicsBlocks.js:915 +#: js/blocks/GraphicsBlocks.js:915 msgid "left1" msgstr "" -#: js/GraphicsBlocks.js:915 +#: js/blocks/GraphicsBlocks.js:915 #: plugins/rodi.rtp:79 #: plugins/rodi.rtp:339 #: plugins/rodi.rtp:362 msgid "left" msgstr "ibumoso" -#: js/GraphicsBlocks.js:967 -#: js/temperament.js:734 -#: js/temperament.js:933 +#: js/blocks/GraphicsBlocks.js:967 +#: js/widgets/temperament.js:875 +#: js/widgets/temperament.js:1078 #: plugins/rodi.rtp:69 #: plugins/rodi.rtp:387 msgid "back" msgstr "inyuma" -#: js/GraphicsBlocks.js:976 +#: js/blocks/GraphicsBlocks.js:976 msgid "The Back block moves the mouse backward." msgstr "" -#: js/GraphicsBlocks.js:983 +#: js/blocks/GraphicsBlocks.js:983 msgid "The Back block moves the turtle backward." msgstr "" -#: js/GraphicsBlocks.js:1050 +#: js/blocks/GraphicsBlocks.js:1050 #: plugins/rodi.rtp:71 #: plugins/rodi.rtp:400 msgid "forward" msgstr "oherereza" -#: js/GraphicsBlocks.js:1059 +#: js/blocks/GraphicsBlocks.js:1059 msgid "The Forward block moves the mouse forward." msgstr "" -#: js/GraphicsBlocks.js:1066 +#: js/blocks/GraphicsBlocks.js:1066 msgid "The Forward block moves the turtle forward." msgstr "" -#: js/GraphicsBlocks.js:1154 -#: js/GraphicsBlocks.js:1172 +#: js/blocks/GraphicsBlocks.js:1154 +#: js/blocks/GraphicsBlocks.js:1172 msgid "wrap" msgstr "" -#: js/OrnamentBlocks.js:32 -msgid "staccato factor" -msgstr "" - -#: js/OrnamentBlocks.js:108 -msgid "slur factor" -msgstr "" - -#: js/OrnamentBlocks.js:217 -#: js/OrnamentBlocks.js:309 -#.TRANS: the neighbor refers to a neighboring note, e.g., D is a neighbor of C -msgid "neighbor" -msgstr "" - -#: js/OrnamentBlocks.js:293 -msgid "The Neighbor block rapidly switches between neighboring pitches." -msgstr "" - -#: js/OrnamentBlocks.js:364 -msgid "glide" -msgstr "" - -#: js/OrnamentBlocks.js:479 -#: js/OrnamentBlocks.js:643 -msgid "slur" -msgstr "" - -#: js/OrnamentBlocks.js:558 -#: js/OrnamentBlocks.js:710 -#.TRANS: play each note sharply detached from the others -msgid "staccato" -msgstr "" - -#: js/PenBlocks.js:24 +#: js/blocks/PenBlocks.js:30 msgid "purple" msgstr "" -#: js/PenBlocks.js:37 -#: js/SensorsBlocks.js:521 -#: plugins/rodi.rtp:219 -msgid "blue" -msgstr "" - -#: js/PenBlocks.js:50 -#: js/SensorsBlocks.js:577 -#: plugins/rodi.rtp:218 -msgid "green" -msgstr "" - -#: js/PenBlocks.js:63 +#: js/blocks/PenBlocks.js:80 msgid "yellow" msgstr "" -#: js/PenBlocks.js:76 +#: js/blocks/PenBlocks.js:96 #: plugins/nutrition.rtp:164 msgid "orange" msgstr "oranje" -#: js/PenBlocks.js:89 -#: js/SensorsBlocks.js:633 -#: plugins/rodi.rtp:217 -msgid "red" -msgstr "" - -#: js/PenBlocks.js:102 +#: js/blocks/PenBlocks.js:128 msgid "white" msgstr "" -#: js/PenBlocks.js:115 +#: js/blocks/PenBlocks.js:144 msgid "black" msgstr "" -#: js/PenBlocks.js:128 +#: js/blocks/PenBlocks.js:163 msgid "begin fill" msgstr "" -#: js/PenBlocks.js:143 +#: js/blocks/PenBlocks.js:190 msgid "end fill" msgstr "soza kuzuza" -#: js/PenBlocks.js:159 -#: js/PenBlocks.js:386 +#: js/blocks/PenBlocks.js:212 +#: js/blocks/PenBlocks.js:560 #.TRANS: set the background color msgid "background" msgstr "" -#: js/PenBlocks.js:206 -#: js/DictActions.js:71 -#: js/DictActions.js:149 -#: js/DictActions.js:186 +#: js/blocks/PenBlocks.js:274 +#: js/turtleactions/DictActions.js:71 +#: js/turtleactions/DictActions.js:138 +#: js/turtleactions/DictActions.js:170 msgid "grey" msgstr "" -#: js/PenBlocks.js:210 +#: js/blocks/PenBlocks.js:282 msgid "The Grey block returns the current pen grey value." msgstr "" -#: js/PenBlocks.js:243 -#: js/DictActions.js:69 -#: js/DictActions.js:147 -#: js/DictActions.js:185 +#: js/blocks/PenBlocks.js:340 +#: js/turtleactions/DictActions.js:69 +#: js/turtleactions/DictActions.js:136 +#: js/turtleactions/DictActions.js:169 msgid "shade" msgstr "ubwijime" -#: js/PenBlocks.js:247 +#: js/blocks/PenBlocks.js:347 msgid "The Shade block returns the current pen shade value." msgstr "" -#: js/PenBlocks.js:280 -#: js/DictActions.js:67 -#: js/DictActions.js:145 -#: js/DictActions.js:184 +#: js/blocks/PenBlocks.js:405 +#: js/turtleactions/DictActions.js:67 +#: js/turtleactions/DictActions.js:134 +#: js/turtleactions/DictActions.js:168 msgid "color" msgstr "ibara" -#: js/PenBlocks.js:285 +#: js/blocks/PenBlocks.js:415 msgid "The Color block returns the current pen color." msgstr "" -#: js/PenBlocks.js:318 -#: js/DictActions.js:73 -#: js/DictActions.js:151 -#: js/DictActions.js:187 +#: js/blocks/PenBlocks.js:470 +#: js/turtleactions/DictActions.js:73 +#: js/turtleactions/DictActions.js:140 +#: js/turtleactions/DictActions.js:171 msgid "pen size" msgstr "ingano y'ikaramu" -#: js/PenBlocks.js:322 +#: js/blocks/PenBlocks.js:474 msgid "The Pen size block returns the current pen size value." msgstr "" -#: js/PenBlocks.js:355 +#: js/blocks/PenBlocks.js:513 msgid "set font" msgstr "" -#: js/PenBlocks.js:358 +#: js/blocks/PenBlocks.js:518 msgid "The Set font block sets the font used by the Show block." msgstr "" -#: js/PenBlocks.js:391 +#: js/blocks/PenBlocks.js:567 msgid "The Background block sets the window background color." msgstr "" -#: js/PenBlocks.js:408 +#: js/blocks/PenBlocks.js:598 msgid "The Hollow line block creates a line with a hollow center." msgstr "" -#: js/PenBlocks.js:415 +#: js/blocks/PenBlocks.js:606 #.TRANS: draw a line logo has a hollow space down its center msgid "hollow line" msgstr "" -#: js/PenBlocks.js:462 +#: js/blocks/PenBlocks.js:675 msgid "The Fill block fills in a shape with a color." msgstr "" -#: js/PenBlocks.js:470 +#: js/blocks/PenBlocks.js:684 #.TRANS: fill in as a solid color msgid "fill" msgstr "" -#: js/PenBlocks.js:527 +#: js/blocks/PenBlocks.js:761 #.TRANS: raise up the pen so logo it does not draw when it is moved msgid "pen up" msgstr "ikaramu hejuru" -#: js/PenBlocks.js:532 +#: js/blocks/PenBlocks.js:768 msgid "The Pen-up block raises the pen so that it does not draw." msgstr "" -#: js/PenBlocks.js:552 +#: js/blocks/PenBlocks.js:802 #.TRANS: put down the pen so logo it draws when it is moved msgid "pen down" msgstr "ikaramu hasi" -#: js/PenBlocks.js:557 +#: js/blocks/PenBlocks.js:810 msgid "The Pen-down block lowers the pen so that it draws." msgstr "" -#: js/PenBlocks.js:577 +#: js/blocks/PenBlocks.js:844 #.TRANS: set the width of the line drawn by the pen msgid "set pen size" msgstr "tunganya ingano y'ikaramu" -#: js/PenBlocks.js:583 +#: js/blocks/PenBlocks.js:854 msgid "The Set-pen-size block changes the size of the pen." msgstr "" -#: js/PenBlocks.js:623 +#: js/blocks/PenBlocks.js:913 #.TRANS: set degree of translucence of the pen color msgid "set translucency" msgstr "" -#: js/PenBlocks.js:627 +#: js/blocks/PenBlocks.js:921 msgid "The Set translucency block changes the opacity of the pen." msgstr "" -#: js/PenBlocks.js:668 +#: js/blocks/PenBlocks.js:981 msgid "set hue" msgstr "" -#: js/PenBlocks.js:672 +#: js/blocks/PenBlocks.js:989 msgid "The Set hue block changes the color of the pen." msgstr "" -#: js/PenBlocks.js:711 +#: js/blocks/PenBlocks.js:1047 msgid "set shade" msgstr "shyiramo igipimo" -#: js/PenBlocks.js:717 +#: js/blocks/PenBlocks.js:1057 msgid "The Set-shade block changes the pen color from dark to light." msgstr "" -#: js/PenBlocks.js:757 +#: js/blocks/PenBlocks.js:1111 #.TRANS: set the level of vividness of the pen color msgid "set grey" msgstr "" -#: js/PenBlocks.js:761 +#: js/blocks/PenBlocks.js:1119 msgid "The Set grey block changes the vividness of the pen color." msgstr "" -#: js/PenBlocks.js:800 +#: js/blocks/PenBlocks.js:1172 msgid "set color" msgstr "tunganya ibara" -#: js/PenBlocks.js:806 +#: js/blocks/PenBlocks.js:1182 msgid "The Set-color block changes the pen color." msgstr "" -#: js/VolumeBlocks.js:35 -msgid "synth volume" -msgstr "" - -#: js/VolumeBlocks.js:39 -msgid "The Synth volume block returns the current volume of the current synthesizer." -msgstr "" - -#: js/VolumeBlocks.js:47 -#: js/musicutils.js:730 -#: js/synthutils.js:56 -#.TRANS: musical instrument -msgid "piano" -msgstr "" - -#: js/VolumeBlocks.js:105 -msgid "master volume" -msgstr "" - -#: js/VolumeBlocks.js:109 -msgid "The Master volume block returns the master volume." -msgstr "" - -#: js/VolumeBlocks.js:355 -#: js/VolumeBlocks.js:524 -msgid "set synth volume" -msgstr "" - -#: js/VolumeBlocks.js:362 -#: js/VolumeBlocks.js:545 -msgid "synth" -msgstr "" - -#: js/VolumeBlocks.js:403 -#: js/VolumeBlocks.js:577 -#: js/VolumeBlocks.js:740 -#: js/VolumeActions.js:173 -msgid "Setting volume to 0." -msgstr "" - -#: js/VolumeBlocks.js:440 -msgid "Synth not found" -msgstr "" - -#: js/VolumeBlocks.js:494 -msgid "set drum volume" -msgstr "" - -#: js/VolumeBlocks.js:530 -msgid "The Set synth volume block will change the volume of a particular synth," -msgstr "" - -#: js/VolumeBlocks.js:532 -msgid "eg guitar violin snare drum etc." -msgstr "" - -#: js/VolumeBlocks.js:534 -msgid "The default volume is 50." -msgstr "" - -#: js/VolumeBlocks.js:536 -msgid "The range is 0 for silence to 100 for full volume." -msgstr "" - -#: js/VolumeBlocks.js:597 -msgid "set panning" -msgstr "" - -#: js/VolumeBlocks.js:603 -msgid "The Set Panning block sets the panning for all synthesizers." -msgstr "" - -#: js/VolumeBlocks.js:625 -msgid "Warning: Sound is coming out from only the left or right side." -msgstr "" - -#: js/VolumeBlocks.js:647 -#: js/VolumeBlocks.js:695 -msgid "set master volume" -msgstr "" - -#: js/VolumeBlocks.js:653 -msgid "The Set master volume block sets the volume for all synthesizers." -msgstr "" - -#: js/VolumeBlocks.js:784 -msgid "The Set relative volume block changes the volume of the contained notes." -msgstr "" - -#: js/VolumeBlocks.js:791 -msgid "set relative volume" -msgstr "" - -#: js/VolumeBlocks.js:857 -msgid "decrescendo" -msgstr "" - -#: js/VolumeBlocks.js:921 -msgid "crescendo" -msgstr "" - -#: js/ToneBlocks.js:34 -msgid "oscillator" -msgstr "" - -#: js/ToneBlocks.js:44 -#: js/timbre.js:1562 -#.TRANS: Partials refers to the number of sine waves combined into the sound. -msgid "partials" -msgstr "" - -#: js/ToneBlocks.js:76 -msgid "You are adding multiple oscillator blocks." -msgstr "" - -#: js/ToneBlocks.js:144 -#: js/timbre.js:1225 -#.TRANS: a duo synthesizer combines a synth with a sequencer -msgid "duo synth" -msgstr "" - -#: js/ToneBlocks.js:149 -msgid "The Duo synth block is a duo-frequency modulator used to define a timbre." -msgstr "" - -#: js/ToneBlocks.js:157 -#: js/timbre.js:1476 -msgid "vibrato rate" -msgstr "" - -#: js/ToneBlocks.js:157 -msgid "vibrato intensity" +#: js/blocks/PitchBlocks.js:141 +#.TRANS: musical transposition (adjustment of pitch up or down) +msgid "transposition" msgstr "" -#: js/ToneBlocks.js:185 -#: js/timbre.js:1221 -#.TRANS: AM (amplitude modulation) synthesizer -msgid "AM synth" +#: js/blocks/PitchBlocks.js:168 +#.TRANS: step down one note in current musical scale +msgid "scalar step down" msgstr "" -#: js/ToneBlocks.js:189 -msgid "The AM synth block is an amplitude modulator used to define a timbre." +#: js/blocks/PitchBlocks.js:172 +msgid "The Scalar step down block returns the number of semi-tones down to the previous note in the current key and mode." msgstr "" -#: js/ToneBlocks.js:224 -#: js/timbre.js:1223 -#.TRANS: FM (frequency modulation) synthesizer -msgid "FM synth" +#: js/blocks/PitchBlocks.js:190 +#.TRANS: step up one note in current musical scale +msgid "scalar step up" msgstr "" -#: js/ToneBlocks.js:228 -msgid "The FM synth block is a frequency modulator used to define a timbre." +#: js/blocks/PitchBlocks.js:194 +msgid "The Scalar step up block returns the number of semi-tones up to the next note in the current key and mode." msgstr "" -#: js/ToneBlocks.js:262 -msgid "partial" +#: js/blocks/PitchBlocks.js:212 +#.TRANS: the change measured in half-steps between the current pitch and the previous pitch +msgid "change in pitch" msgstr "" -#: js/ToneBlocks.js:265 -msgid "The Partial block is used to specify a weight for a specific partial harmonic." +#: js/blocks/PitchBlocks.js:216 +msgid "The Change in pitch block is the difference (in half steps) between the current pitch being played and the previous pitch played." msgstr "" -#: js/ToneBlocks.js:284 -#.TRANS: partials are weighted components in a harmonic series -msgid "Partial weight must be between 0 and 1." +#: js/blocks/PitchBlocks.js:243 +#.TRANS: the change measured in scale-steps between the current pitch and the previous pitch +msgid "scalar change in pitch" msgstr "" -#: js/ToneBlocks.js:297 -#.TRANS: partials are weighted components in a harmonic series -msgid "Partial block should be used inside of a Weighted-partials block." +#: js/blocks/PitchBlocks.js:250 +#: js/blocks/PitchBlocks.js:432 +#: js/blocks/PitchBlocks.js:1667 +#: js/turtleactions/DictActions.js:89 +#: js/widgets/temperament.js:610 +#: js/widgets/temperament.js:614 +#: js/widgets/temperament.js:855 +#.TRANS: convert current note to piano key (1-88) +#.TRANS: a mapping of pitch to the 88 piano keys +msgid "pitch number" msgstr "" -#: js/ToneBlocks.js:325 -#.TRANS: partials are weighted components in a harmonic series -msgid "weighted partials" +#: js/blocks/PitchBlocks.js:256 +msgid "The Pitch number block is the value of the pitch of the note currently being played." msgstr "" -#: js/ToneBlocks.js:383 -msgid "The Harmonic block will add harmonics to the contained notes." +#: js/blocks/PitchBlocks.js:329 +#: js/blocks/PitchBlocks.js:433 +#.TRANS: the current pitch expressed in Hertz +msgid "pitch in hertz" msgstr "" -#: js/ToneBlocks.js:390 -#.TRANS: A harmonic is an overtone. -msgid "harmonic" +#: js/blocks/PitchBlocks.js:334 +msgid "The Pitch in Hertz block is the value in Hertz of the pitch of the note currently being played." msgstr "" -#: js/ToneBlocks.js:431 -msgid "The Distortion block adds distortion to the pitch." +#: js/blocks/PitchBlocks.js:367 +#: js/turtleactions/DictActions.js:87 +msgid "current pitch" msgstr "" -#: js/ToneBlocks.js:438 -#: js/timbre.js:2100 -#.TRANS: distortion is an alteration in the sound -msgid "distortion" +#: js/blocks/PitchBlocks.js:373 +msgid "The Current Pitch block is used with the Pitch Converter block. In the example above, current pitch, sol 4, is displayed as 392 hertz." msgstr "" -#: js/ToneBlocks.js:487 -msgid "The Tremolo block adds a wavering effect." +#: js/blocks/PitchBlocks.js:410 +msgid "This block converts the pitch value of the last note played into different formats such as hertz, letter name, pitch number, et al." msgstr "" -#: js/ToneBlocks.js:495 -#: js/timbre.js:2092 -#.TRANS: a wavering effect in a musical tone -msgid "tremolo" +#: js/blocks/PitchBlocks.js:434 +msgid "alphabet" msgstr "" -#: js/ToneBlocks.js:500 -#: js/ToneBlocks.js:569 -#: js/ToneBlocks.js:630 -#: js/ToneBlocks.js:689 -#: js/timbre.js:2134 -#: js/timbre.js:2222 -#: js/timbre.js:2317 -#: js/timbre.js:2419 -#.TRANS: rate at which tremolo wavers -msgid "rate" +#: js/blocks/PitchBlocks.js:436 +#.TRANS: Translate as "alphabet class" +msgid "letter class" msgstr "" -#: js/ToneBlocks.js:502 -#: js/ToneBlocks.js:630 -#: js/timbre.js:2137 -#: js/timbre.js:2328 -#.TRANS: amplitude of tremolo waver -msgid "depth" +#: js/blocks/PitchBlocks.js:437 +msgid "solfege class" msgstr "" -#: js/ToneBlocks.js:559 -msgid "The Phaser block adds a sweeping sound." +#: js/blocks/PitchBlocks.js:438 +msgid "staff y" msgstr "" -#: js/ToneBlocks.js:566 -#: js/timbre.js:2098 -#.TRANS: alter the phase of the sound -msgid "phaser" +#: js/blocks/PitchBlocks.js:439 +msgid "solfege syllable" msgstr "" -#: js/ToneBlocks.js:569 -#: js/timbre.js:2422 -msgid "octaves" +#: js/blocks/PitchBlocks.js:440 +msgid "pitch class" msgstr "" -#: js/ToneBlocks.js:569 -#: js/timbre.js:2425 -msgid "base frequency" +#: js/blocks/PitchBlocks.js:441 +msgid "scalar class" msgstr "" -#: js/ToneBlocks.js:619 -msgid "The Chorus block adds a chorus effect." +#: js/blocks/PitchBlocks.js:443 +msgid "nth degree" msgstr "" -#: js/ToneBlocks.js:627 -#: js/timbre.js:2096 -#.TRANS: musical effect to simulate a choral sound -msgid "chorus" +#: js/blocks/PitchBlocks.js:444 +msgid "pitch to shade" msgstr "" -#: js/ToneBlocks.js:630 -msgid "delay" +#: js/blocks/PitchBlocks.js:445 +msgid "pitch to color" msgstr "" -#: js/ToneBlocks.js:678 -msgid "The Vibrato block adds a rapid, slight variation in pitch." +#: js/blocks/PitchBlocks.js:629 +#: js/widgets/musickeyboard.js:735 +#.TRANS: MIDI is a technical standard for electronic music +msgid "MIDI" msgstr "" -#: js/ToneBlocks.js:686 -#: js/timbre.js:2094 -#.TRANS: a rapid, slight variation in pitch -msgid "vibrato" +#: js/blocks/PitchBlocks.js:642 +#.TRANS: set an offset associated with the numeric piano keyboard mapping +msgid "set pitch number offset" msgstr "" -#: js/ToneBlocks.js:689 -#: js/timbre.js:2221 -msgid "intensity" +#: js/blocks/PitchBlocks.js:645 +msgid "The Set pitch number offset block is used to set the offset for mapping pitch numbers to pitch and octave." msgstr "" -#: js/ToneBlocks.js:733 -#.TRANS: select synthesizer -msgid "set synth" +#: js/blocks/PitchBlocks.js:679 +#.TRANS: convert piano key number (1-88) to pitch +msgid "number to pitch" msgstr "" -#: js/ToneBlocks.js:804 -msgid "synth name" +#: js/blocks/PitchBlocks.js:682 +msgid "The Number to pitch block will convert a pitch number to a pich name." msgstr "" -#: js/ToneBlocks.js:842 -msgid "set default instrument" +#: js/blocks/PitchBlocks.js:715 +#.TRANS: convert piano key number (1-88) to octave +msgid "number to octave" msgstr "" -#: js/ToneBlocks.js:895 -#: js/ToneBlocks.js:943 -#.TRANS: set the characteristics of a custom instrument -msgid "set instrument" +#: js/blocks/PitchBlocks.js:717 +msgid "The Number to octave block will convert a pitch number to an octave." msgstr "" -#: js/ToneBlocks.js:898 -#: js/ToneBlocks.js:926 -#: js/ToneBlocks.js:932 -msgid "The Set instrument block selects a voice for the synthesizer," +#: js/blocks/PitchBlocks.js:726 +msgid "y to pitch" msgstr "" -#: js/ToneBlocks.js:900 -#: js/ToneBlocks.js:934 -msgid "eg guitar piano violin or cello." +#: js/blocks/PitchBlocks.js:729 +msgid "Y to pitch block will convert a staff y position to corresponding pitch notation." msgstr "" -#: js/ToneBlocks.js:1015 -msgid "Import a sound file to use as an instrument and set its pitch center." +#: js/blocks/PitchBlocks.js:841 +msgid "accidental selector" msgstr "" -#: js/ToneBlocks.js:1110 -msgid "Upload a sound file to connect with the sample block." +#: js/blocks/PitchBlocks.js:844 +msgid "The Accidental selector block is used to choose between double-sharp, sharp, natural, flat, and double-flat." msgstr "" -#: js/MeterBlocks.js:34 -#.TRANS: musical meter (time signature), e.g., 4:4 -msgid "current meter" +#: js/blocks/PitchBlocks.js:858 +msgid "Pitch can be specified in terms of ni dha pa ma ga re sa." msgstr "" -#: js/MeterBlocks.js:85 -#.TRANS: number of beats per minute -msgid "beat factor" +#: js/blocks/PitchBlocks.js:872 +msgid "Pitch can be specified in terms of C D E F G A B." msgstr "" -#: js/MeterBlocks.js:161 -msgid "The Beats per minute block returns the current beats per minute." +#: js/blocks/PitchBlocks.js:884 +msgid "solfege" msgstr "" -#: js/MeterBlocks.js:169 -#: js/status.js:152 -#.TRANS: number of beats played per minute -msgid "beats per minute2" +#: js/blocks/PitchBlocks.js:887 +msgid "Pitch can be specified in terms of do re mi fa sol la ti." msgstr "" -#: js/MeterBlocks.js:169 -#: js/MeterBlocks.js:1056 -#: js/MeterBlocks.js:1133 -#: js/MeterBlocks.js:1211 -#.TRANS: sets tempo by defining a beat and beats per minute -msgid "beats per minute" +#: js/blocks/PitchBlocks.js:922 +msgid "The Invert block rotates any contained notes around a target note." msgstr "" -#: js/MeterBlocks.js:233 -#.TRANS: count of current musical measure in meter -msgid "measure count" +#: js/blocks/PitchBlocks.js:929 +#.TRANS: pitch inversion rotates a pitch around another pitch +msgid "invert" msgstr "" -#: js/MeterBlocks.js:241 -msgid "The Measure count block returns the current measure." +#: js/blocks/PitchBlocks.js:968 +#.TRANS: pitch inversion rotates a pitch around another pitch (odd number) +msgid "invert (odd)" msgstr "" -#: js/MeterBlocks.js:290 -#.TRANS: count of current beat in the meter -msgid "beat count" +#: js/blocks/PitchBlocks.js:1001 +#.TRANS: pitch inversion rotates a pitch around another pitch (even number) +msgid "invert (even)" msgstr "" -#: js/MeterBlocks.js:300 -#: js/MeterBlocks.js:311 -#: js/MeterBlocks.js:565 -#: js/MeterBlocks.js:576 -msgid "The Beat count block is the number of the current beat," +#: js/blocks/PitchBlocks.js:1022 +#.TRANS: register is the octave of the current pitch +msgid "register" msgstr "" -#: js/MeterBlocks.js:313 -#: js/MeterBlocks.js:578 -msgid "eg 1, 2, 3, or 4." +#: js/blocks/PitchBlocks.js:1026 +msgid "The Register block provides an easy way to modify the register (octave) of the notes that follow it." msgstr "" -#: js/MeterBlocks.js:368 -#.TRANS: count the number of notes -msgid "sum note values" +#: js/blocks/PitchBlocks.js:1047 +#.TRANS: cents are units used to specify the ratio between pitches. There are 100 cents between successive notes. +msgid "50 cents" msgstr "" -#: js/MeterBlocks.js:376 -#: js/MeterBlocks.js:440 -msgid "The Note counter block can be used to count the number of contained notes." +#: js/blocks/PitchBlocks.js:1102 +msgid "The Semi-tone transposition block will shift the pitches contained inside Note blocks up (or down) by half steps." msgstr "" -#: js/MeterBlocks.js:432 -#.TRANS: count the number of notes -msgid "note counter" +#: js/blocks/PitchBlocks.js:1104 +msgid "In the example shown above, sol is shifted up to sol#." msgstr "" -#: js/MeterBlocks.js:496 -#.TRANS: number of whole notes that have been played -msgid "whole notes played" +#: js/blocks/PitchBlocks.js:1110 +#.TRANS: adjust the amount of shift (up or down) of a pitch +msgid "semi-tone transpose" msgstr "" -#: js/MeterBlocks.js:505 -msgid "The Whole notes played block returns the total number of whole notes played." +#: js/blocks/PitchBlocks.js:1143 +msgid "The Transpose by Ratio block will shift the pitches contained inside Note blocks up (or down) by a ratio" msgstr "" -#: js/MeterBlocks.js:555 -#: js/DictActions.js:83 -#.TRANS: number of notes that have been played -msgid "notes played" +#: js/blocks/PitchBlocks.js:1149 +#.TRANS: adjust the amount of shift (up or down) of a pitch +msgid "transpose by ratio" msgstr "" -#: js/MeterBlocks.js:653 -msgid "The No clock block decouples the notes from the master clock." +#: js/blocks/PitchBlocks.js:1232 +#.TRANS: down sixth means the note is five scale degrees below current note +msgid "down sixth" msgstr "" -#: js/MeterBlocks.js:661 -#.TRANS: don't lock notes to master clock -msgid "no clock" +#: js/blocks/PitchBlocks.js:1251 +#.TRANS: down third means the note is two scale degrees below current note +msgid "down third" msgstr "" -#: js/MeterBlocks.js:700 -msgid "on weak beat do" +#: js/blocks/PitchBlocks.js:1270 +#.TRANS: seventh means the note is the six scale degrees above current note +msgid "seventh" msgstr "" -#: js/MeterBlocks.js:705 -msgid "The On-weak-beat block lets you specify actions to take on weak (off) beats." +#: js/blocks/PitchBlocks.js:1289 +#.TRANS: sixth means the note is the five scale degrees above current note +msgid "sixth" msgstr "" -#: js/MeterBlocks.js:750 -msgid "on strong beat" +#: js/blocks/PitchBlocks.js:1308 +#.TRANS: fifth means the note is the four scale degrees above current note +msgid "fifth" msgstr "" -#: js/MeterBlocks.js:758 -msgid "The On-strong-beat block lets you specify actions to take on specified beats." +#: js/blocks/PitchBlocks.js:1328 +#.TRANS: fourth means the note is three scale degrees above current note +msgid "fourth" msgstr "" -#: js/MeterBlocks.js:769 -msgid "beat" +#: js/blocks/PitchBlocks.js:1347 +#.TRANS: third means the note is two scale degrees above current note +msgid "third" msgstr "" -#: js/MeterBlocks.js:813 -msgid "on every beat do" +#: js/blocks/PitchBlocks.js:1366 +#.TRANS: second means the note is one scale degree above current note +msgid "second" msgstr "" -#: js/MeterBlocks.js:821 -msgid "The On-every-beat block lets you specify actions to take on every beat." +#: js/blocks/PitchBlocks.js:1407 +msgid "The Scalar transposition block will shift the pitches contained inside Note blocks up (or down) the scale." msgstr "" -#: js/MeterBlocks.js:874 -msgid "on every note do" +#: js/blocks/PitchBlocks.js:1409 +msgid "In the example shown above, sol is shifted up to la." msgstr "" -#: js/MeterBlocks.js:882 -msgid "The On-every-note block lets you specify actions to take on every note." +#: js/blocks/PitchBlocks.js:1416 +#.TRANS: adjust the amount of shift (up or down) of a pitch by musical scale (scalar) steps +msgid "scalar transpose" msgstr "" -#: js/MeterBlocks.js:928 -#: js/MeterBlocks.js:999 -#.TRANS: sets tempo by defining a beat and beats per minute -msgid "master beats per minute" +#: js/blocks/PitchBlocks.js:1451 +msgid "The Accidental block is used to create sharps and flats" msgstr "" -#: js/MeterBlocks.js:952 -#: js/MeterBlocks.js:1078 -#: js/MeterBlocks.js:1135 -msgid "bpm" +#: js/blocks/PitchBlocks.js:1458 +#.TRANS: An accidental is a modification to a pitch, e.g., sharp or flat. +msgid "accidental override" msgstr "" -#: js/MeterBlocks.js:952 -#: js/MeterBlocks.js:1078 -#: js/MeterBlocks.js:1135 -msgid "beat value" +#: js/blocks/PitchBlocks.js:1581 +msgid "The Hertz block (in combination with a Number block) will play a sound at the specified frequency." msgstr "" -#: js/MeterBlocks.js:1024 -#: js/MeterBlocks.js:1167 -#: js/MeterBlocks.js:1241 -msgid "Beats per minute must be > 30." +#: js/blocks/PitchBlocks.js:1671 +msgid "The Pitch Number block will play a pitch associated by its number, e.g. 0 for C and 7 for G." msgstr "" -#: js/MeterBlocks.js:1027 -#: js/MeterBlocks.js:1170 -#: js/MeterBlocks.js:1244 -msgid "Maximum beats per minute is 1000." +#: js/blocks/PitchBlocks.js:1703 +#: js/blocks/PitchBlocks.js:1745 +#.TRANS: a numeric mapping of the notes in an octave based on the musical mode +#.TRANS: a numeric mapping of the notes in an octave based on the musical mode +msgid "nth modal pitch" msgstr "" -#: js/MeterBlocks.js:1068 -msgid "The Beats per minute block sets the number of 1/4 notes per minute." +#: js/blocks/PitchBlocks.js:1706 +msgid "n^th Modal Pitch takes the pattern of pitches in semitones for a mode and makes each point a degree of the mode," msgstr "" -#: js/MeterBlocks.js:1279 -#.TRANS: anacrusis -msgid "pickup" +#: js/blocks/PitchBlocks.js:1708 +msgid "starting from 1 and regardless of tonal framework (i.e. not always 8 notes in the octave)" msgstr "" -#: js/MeterBlocks.js:1367 -msgid "number of beats" +#: js/blocks/PitchBlocks.js:1749 +msgid "N^th Modal Pitch takes a number as an input as the n^th degree for the given mode. 0 is the first position, 1 is the second, -1 is the note before the first etc." msgstr "" -#: js/DictBlocks.js:77 -msgid "show dictionary" +#: js/blocks/PitchBlocks.js:1751 +msgid "The pitches change according to the mode specified without any need for respellings." msgstr "" -#: js/DictBlocks.js:129 -msgid "The Dictionary block returns a dictionary." +#: js/blocks/PitchBlocks.js:1790 +msgid "Scale Degree is a common convention in music. Scale Degree offers seven possible positions in the scale (1-7) and can be modified via accidentals." msgstr "" -#: js/DictBlocks.js:197 -#: js/DictBlocks.js:339 -msgid "The Get-dict block returns a value in the dictionary for a specified key." +#: js/blocks/PitchBlocks.js:1792 +msgid "Scale Degree 1 is always the first pitch in a given scale, regardless of octave." msgstr "" -#: js/DictBlocks.js:212 -#: js/DictBlocks.js:354 -#.TRANS: retrieve a value from the dictionary with a given key -msgid "get value" +#: js/blocks/PitchBlocks.js:1814 +#.TRANS: step some number of notes in current musical scale +msgid "scalar step" msgstr "" -#: js/DictBlocks.js:215 -#: js/DictBlocks.js:216 -#: js/DictBlocks.js:289 -#: js/DictBlocks.js:290 -#: js/DictBlocks.js:357 -#: js/DictBlocks.js:430 -#: js/DictBlocks.js:431 -msgid "key2" +#: js/blocks/PitchBlocks.js:1819 +msgid "The Scalar Step block (in combination with a Number block) will play the next pitch in a scale," msgstr "" -#: js/DictBlocks.js:271 -#: js/DictBlocks.js:411 -msgid "The Set-dict block sets a value in the dictionary for a specified key." +#: js/blocks/PitchBlocks.js:1821 +msgid "eg if the last note played was sol, Scalar Step 1 will play la." msgstr "" -#: js/DictBlocks.js:286 -#: js/DictBlocks.js:427 -#.TRANS: set a value in the dictionary for a given key -msgid "set value" +#: js/blocks/PitchBlocks.js:1857 +msgid "The Pitch block specifies the pitch name and octave of a note that together determine the frequency of the note." msgstr "" -#: js/ExtrasBlocks.js:33 -msgid "fraction" +#: js/blocks/ProgramBlocks.js:33 +msgid "The Load-heap-from-app block loads the heap from a web page." msgstr "" -#: js/ExtrasBlocks.js:36 -msgid "Convert a float to a fraction" +#: js/blocks/ProgramBlocks.js:44 +#.TRANS: load the heap contents from a URL +msgid "load heap from App" msgstr "" -#: js/ExtrasBlocks.js:93 -msgid "save as ABC" +#: js/blocks/ProgramBlocks.js:95 +msgid "Error parsing JSON data:" msgstr "" -#: js/ExtrasBlocks.js:96 -#: js/ExtrasBlocks.js:132 -#: js/ExtrasBlocks.js:168 -msgid "title" +#: js/blocks/ProgramBlocks.js:100 +msgid "404: Page not found" msgstr "" -#: js/ExtrasBlocks.js:129 -msgid "save as Lilypond" +#: js/blocks/ProgramBlocks.js:133 +msgid "The Save-heap-to-app block saves the heap to a web page." msgstr "" -#: js/ExtrasBlocks.js:165 -msgid "save as SVG" +#: js/blocks/ProgramBlocks.js:144 +#.TRANS: save the heap contents to a URL +msgid "save heap to App" msgstr "" -#: js/ExtrasBlocks.js:216 -msgid "no background" +#: js/blocks/ProgramBlocks.js:189 +msgid "Cannot find a valid heap for" msgstr "" -#: js/ExtrasBlocks.js:219 -msgid "The No background block eliminates the background from the saved SVG output." +#: js/blocks/ProgramBlocks.js:206 +msgid "The Load-heap block loads the heap from a file." msgstr "" -#: js/ExtrasBlocks.js:247 -msgid "show blocks" -msgstr "erekana amablock" - -#: js/ExtrasBlocks.js:249 -msgid "The Show blocks block shows the blocks." +#: js/blocks/ProgramBlocks.js:217 +#.TRANS: load the heap from a file +msgid "load heap" msgstr "" -#: js/ExtrasBlocks.js:274 -msgid "hide blocks" -msgstr "Hisha amablock" - -#: js/ExtrasBlocks.js:276 -msgid "The Hide blocks block hides the blocks." +#: js/blocks/ProgramBlocks.js:270 +msgid "The file you selected does not contain a valid heap." msgstr "" -#: js/ExtrasBlocks.js:305 -#: js/ExtrasBlocks.js:335 -msgid "The Space block is used to add space between blocks." +#: js/blocks/ProgramBlocks.js:275 +msgid "The loadHeap block needs a loadFile block." msgstr "" -#: js/ExtrasBlocks.js:373 -msgid "wait" -msgstr "tegereza" - -#: js/ExtrasBlocks.js:376 -msgid "The Wait block pauses the program for a specified number of seconds." +#: js/blocks/ProgramBlocks.js:291 +msgid "The Set-heap block loads the heap." msgstr "" -#: js/ExtrasBlocks.js:430 -#: plugins/facebook.rtp:30 -msgid "comment" -msgstr "ibivugwaho" - -#: js/ExtrasBlocks.js:466 -msgid "print" -msgstr "gucapa" +#: js/blocks/ProgramBlocks.js:340 +msgid "The block you selected does not contain a valid heap." +msgstr "" -#: js/ExtrasBlocks.js:473 -msgid "The Print block displays text at the top of the screen." +#: js/blocks/ProgramBlocks.js:343 +msgid "The Set heap block needs a heap." msgstr "" -#: js/ExtrasBlocks.js:579 -msgid "display grid" +#: js/blocks/ProgramBlocks.js:360 +msgid "The Load-dictionary block loads a dictionary from a file." msgstr "" -#: js/ExtrasBlocks.js:584 -msgid "The Display Grid Block changes the grid type" +#: js/blocks/ProgramBlocks.js:372 +#.TRANS: load a dictionary from a file +msgid "load dictionary" msgstr "" -#: js/ExtrasBlocks.js:686 -#: js/ExtrasBlocks.js:705 -#: js/ExtrasBlocks.js:728 -#: js/ExtrasBlocks.js:751 -#: js/ExtrasBlocks.js:769 -#: js/ExtrasBlocks.js:788 -#: js/ExtrasBlocks.js:807 -#: js/ExtrasBlocks.js:826 -msgid "unknown" +#: js/blocks/ProgramBlocks.js:390 +#: js/blocks/ProgramBlocks.js:658 +#: js/blocks/ToneBlocks.js:1025 +msgid "file" msgstr "" -#: js/SensorsBlocks.js:36 -msgid "The Input block prompts for keyboard input." +#: js/blocks/ProgramBlocks.js:444 +msgid "The file you selected does not contain a valid dictionary." msgstr "" -#: js/SensorsBlocks.js:46 -msgid "input" +#: js/blocks/ProgramBlocks.js:449 +msgid "The load dictionary block needs a load file block." msgstr "" -#: js/SensorsBlocks.js:64 -msgid "Input a value" +#: js/blocks/ProgramBlocks.js:466 +msgid "The Set-dictionary block loads a dictionary." msgstr "" -#: js/SensorsBlocks.js:126 -msgid "input value" +#: js/blocks/ProgramBlocks.js:477 +#.TRANS: load a dictionary from a JSON +msgid "set dictionary" msgstr "" -#: js/SensorsBlocks.js:131 -msgid "The Input-value block stores the input." +#: js/blocks/ProgramBlocks.js:546 +msgid "The block you selected does not contain a valid dictionary." msgstr "" -#: js/SensorsBlocks.js:238 -msgid "loudness" -msgstr "imisakurize" +#: js/blocks/ProgramBlocks.js:550 +msgid "The set dictionary block needs a dictionary." +msgstr "" -#: js/SensorsBlocks.js:245 -msgid "The Loudness block returns the volume detected by the microphone." +#: js/blocks/ProgramBlocks.js:567 +msgid "The Save-heap block saves the heap to a file." msgstr "" -#: js/SensorsBlocks.js:300 -msgid "click" +#: js/blocks/ProgramBlocks.js:578 +#.TRANS: save the heap to a file +msgid "save heap" msgstr "" -#: js/SensorsBlocks.js:306 -msgid "The Click block triggers an event if a mouse has been clicked." +#: js/blocks/ProgramBlocks.js:629 +msgid "The Save-dictionary block saves a dictionary to a file." msgstr "" -#: js/SensorsBlocks.js:313 -msgid "The Click block triggers an event if a turtle has been clicked." +#: js/blocks/ProgramBlocks.js:640 +#.TRANS: save a dictionary to a file +msgid "save dictionary" msgstr "" -#: js/SensorsBlocks.js:342 -msgid "cursor over" +#: js/blocks/ProgramBlocks.js:720 +msgid "The Open palette block opens a palette." msgstr "" -#: js/SensorsBlocks.js:387 -msgid "cursor out" +#: js/blocks/ProgramBlocks.js:727 +msgid "open palette" msgstr "" -#: js/SensorsBlocks.js:433 -msgid "cursor button down" +#: js/blocks/ProgramBlocks.js:785 +msgid "The Delete block block removes a block." msgstr "" -#: js/SensorsBlocks.js:477 -msgid "cursor button up" +#: js/blocks/ProgramBlocks.js:797 +#.TRANS: Move this block to the trash. +msgid "delete block" msgstr "" -#: js/SensorsBlocks.js:638 -msgid "The Get red block returns the red component of the pixel under the mouse." +#: js/blocks/ProgramBlocks.js:861 +msgid "The Move block block moves a block." msgstr "" -#: js/SensorsBlocks.js:644 -msgid "The Get red block returns the red component of the pixel under the turtle." +#: js/blocks/ProgramBlocks.js:869 +#.TRANS: Move the position of a block on the screen. +msgid "move block" msgstr "" -#: js/SensorsBlocks.js:685 -#: plugins/rodi.rtp:216 -msgid "pixel color" +#: js/blocks/ProgramBlocks.js:881 +#: js/blocks/ProgramBlocks.js:1048 +msgid "block number" msgstr "" -#: js/SensorsBlocks.js:690 -msgid "The Get pixel block returns the color of the pixel under the mouse." +#: js/blocks/ProgramBlocks.js:935 +#.TRANS: Run program beginning at this block. +msgid "run block" msgstr "" -#: js/SensorsBlocks.js:696 -msgid "The Get pixel block returns the color of the pixel under the turtle." +#: js/blocks/ProgramBlocks.js:1025 +msgid "The Dock block block connections two blocks." msgstr "" -#: js/SensorsBlocks.js:758 -msgid "time" -msgstr "igihe" +#: js/blocks/ProgramBlocks.js:1036 +#.TRANS: We can connect a block to another block. +msgid "connect blocks" +msgstr "" -#: js/SensorsBlocks.js:804 -msgid "cursor y" +#: js/blocks/ProgramBlocks.js:1048 +msgid "target block" msgstr "" -#: js/SensorsBlocks.js:809 -msgid "The Cursor Y block returns the vertical position of the mouse." +#: js/blocks/ProgramBlocks.js:1048 +msgid "connection number" msgstr "" -#: js/SensorsBlocks.js:845 -msgid "cursor x" +#: js/blocks/ProgramBlocks.js:1140 +msgid "The Make block block creates a new block." msgstr "" -#: js/SensorsBlocks.js:850 -msgid "The Cursor X block returns the horizontal position of the mouse." +#: js/blocks/ProgramBlocks.js:1152 +#.TRANS: Create a new block +msgid "make block" msgstr "" -#: js/SensorsBlocks.js:886 -msgid "mouse button" +#: js/blocks/ProgramBlocks.js:1285 +msgid "Cannot find block" msgstr "" -#: js/SensorsBlocks.js:888 -msgid "The Mouse-button block returns True if the mouse button is pressed." +#: js/blocks/ProgramBlocks.js:1304 +#: js/blocks/ProgramBlocks.js:1313 +msgid "Warning: block argument type mismatch" msgstr "" -#: js/SensorsBlocks.js:934 -msgid "to ASCII" +#: js/blocks/ProgramBlocks.js:1347 +msgid "The Open project block is used to open a project from a web page." msgstr "" -#: js/SensorsBlocks.js:938 -msgid "The To ASCII block converts numbers to letters." +#: js/blocks/ProgramBlocks.js:1357 +msgid "open project" msgstr "" -#: js/SensorsBlocks.js:1005 -msgid "The Keyboard block returns computer keyboard input." +#: js/blocks/ProgramBlocks.js:1410 +msgid "Please enter a valid URL." msgstr "" -#: js/IntervalsActions.js:216 -msgid "Adding missing pitch number 0." +#: js/blocks/ToneBlocks.js:34 +msgid "oscillator" msgstr "" -#: js/IntervalsActions.js:224 -msgid "Ignoring pitch numbers less than zero or greater than eleven." +#: js/blocks/ToneBlocks.js:42 +#: js/blocks/WidgetBlocks.js:179 +#: js/widgets/timbre.js:1558 +#: js/widgets/timbre.js:1808 +#.TRANS: there are different types (sine, triangle, square...) of oscillators. +#.TRANS: type of filter, e.g., lowpass, highpass, etc. +msgid "type" msgstr "" -#: js/IntervalsActions.js:230 -msgid "Ignoring duplicate pitch numbers." +#: js/blocks/ToneBlocks.js:44 +#: js/widgets/timbre.js:1562 +#.TRANS: Partials refers to the number of sine waves combined into the sound. +msgid "partials" msgstr "" -#: js/PitchActions.js:88 -msgid "The Scalar Step Block must be used inside of a Note Block." +#: js/blocks/ToneBlocks.js:76 +msgid "You are adding multiple oscillator blocks." msgstr "" -#: js/PitchActions.js:107 -msgid "The Scalar Step Block must be preceded by a Pitch Block." +#: js/blocks/ToneBlocks.js:144 +#: js/widgets/timbre.js:1225 +#.TRANS: a duo synthesizer combines a synth with a sequencer +msgid "duo synth" msgstr "" -#: js/DrumActions.js:231 -msgid "Noise Block: Did you mean to use a Note block?" +#: js/blocks/ToneBlocks.js:149 +msgid "The Duo synth block is a duo-frequency modulator used to define a timbre." msgstr "" -#: js/MeterActions.js:101 -#: js/MeterActions.js:139 -msgid "beats per minute must be greater than" +#: js/blocks/ToneBlocks.js:157 +#: js/widgets/timbre.js:1476 +msgid "vibrato rate" msgstr "" -#: js/MeterActions.js:111 -#: js/MeterActions.js:149 -msgid "maximum" +#: js/blocks/ToneBlocks.js:157 +msgid "vibrato intensity" msgstr "" -#: js/MeterActions.js:117 -#: js/MeterActions.js:155 -msgid "beats per minute is" +#: js/blocks/ToneBlocks.js:185 +#: js/widgets/timbre.js:1221 +#.TRANS: AM (amplitude modulation) synthesizer +msgid "AM synth" msgstr "" -#: js/ToneActions.js:134 -msgid "Vibrato intensity must be between 1 and 100." +#: js/blocks/ToneBlocks.js:189 +msgid "The AM synth block is an amplitude modulator used to define a timbre." msgstr "" -#: js/ToneActions.js:139 -msgid "Vibrato rate must be greater than 0." +#: js/blocks/ToneBlocks.js:224 +#: js/widgets/timbre.js:1223 +#.TRANS: FM (frequency modulation) synthesizer +msgid "FM synth" msgstr "" -#: js/ToneActions.js:192 -#: js/ToneActions.js:265 -#.TRANS: Depth is the intesity of the tremolo or chorus effect. -msgid "Depth is out of range." +#: js/blocks/ToneBlocks.js:228 +msgid "The FM synth block is a frequency modulator used to define a timbre." msgstr "" -#: js/ToneActions.js:301 -msgid "Distortion must be from 0 to 100." +#: js/blocks/ToneBlocks.js:262 +msgid "partial" msgstr "" -#: js/ToneActions.js:332 -#.TRANS: partials components in a harmonic series -msgid "Partial must be greater than or equal to 0." +#: js/blocks/ToneBlocks.js:265 +msgid "The Partial block is used to specify a weight for a specific partial harmonic." msgstr "" -#: js/ToneActions.js:378 -#: js/ToneActions.js:417 -#: js/ToneActions.js:456 -#: js/timbre.js:782 -msgid "Unable to use synth due to existing oscillator" +#: js/blocks/ToneBlocks.js:284 +#.TRANS: partials are weighted components in a harmonic series +msgid "Partial weight must be between 0 and 1." msgstr "" -#: js/ToneActions.js:388 -#: js/ToneActions.js:427 -msgid "The input cannot be negative." +#: js/blocks/ToneBlocks.js:297 +#.TRANS: partials are weighted components in a harmonic series +msgid "Partial block should be used inside of a Weighted-partials block." msgstr "" -#: js/DictActions.js:75 -#: js/DictActions.js:153 -#: js/DictActions.js:188 -msgid "font" +#: js/blocks/ToneBlocks.js:325 +#.TRANS: partials are weighted components in a harmonic series +msgid "weighted partials" msgstr "" -#: js/musicutils.js:363 -#: js/musicutils.js:471 -#: js/pitchdrummatrix.js:151 -#: js/musickeyboard.js:2563 -msgid "rest" +#: js/blocks/ToneBlocks.js:383 +msgid "The Harmonic block will add harmonics to the contained notes." msgstr "" -#: js/musicutils.js:565 -#.TRANS: ordinal number. Please keep exactly one space between each number. -msgid "1st 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th" +#: js/blocks/ToneBlocks.js:390 +#.TRANS: A harmonic is an overtone. +msgid "harmonic" msgstr "" -#: js/musicutils.js:629 -#: js/musicutils.js:812 -#: js/musicutils.js:911 -#.TRANS: augmented is a music term related to intervals -msgid "augmented" +#: js/blocks/ToneBlocks.js:431 +msgid "The Distortion block adds distortion to the pitch." msgstr "" -#: js/musicutils.js:631 -#: js/musicutils.js:813 -#: js/musicutils.js:910 -#.TRANS: diminished is a music term related to intervals and mode -msgid "diminished" +#: js/blocks/ToneBlocks.js:438 +#: js/widgets/timbre.js:2100 +#.TRANS: distortion is an alteration in the sound +msgid "distortion" msgstr "" -#: js/musicutils.js:639 -#.TRANS: twelve semi-tone scale for music -msgid "chromatic" +#: js/blocks/ToneBlocks.js:487 +msgid "The Tremolo block adds a wavering effect." msgstr "" -#: js/musicutils.js:640 -msgid "algerian" +#: js/blocks/ToneBlocks.js:495 +#: js/widgets/timbre.js:2092 +#.TRANS: a wavering effect in a musical tone +msgid "tremolo" msgstr "" -#: js/musicutils.js:641 -msgid "spanish" +#: js/blocks/ToneBlocks.js:500 +#: js/blocks/ToneBlocks.js:569 +#: js/blocks/ToneBlocks.js:630 +#: js/blocks/ToneBlocks.js:689 +#: js/widgets/timbre.js:2134 +#: js/widgets/timbre.js:2222 +#: js/widgets/timbre.js:2317 +#: js/widgets/timbre.js:2419 +#.TRANS: rate at which tremolo wavers +msgid "rate" msgstr "" -#: js/musicutils.js:643 -#.TRANS: modal scale in music -msgid "octatonic" +#: js/blocks/ToneBlocks.js:502 +#: js/blocks/ToneBlocks.js:630 +#: js/widgets/timbre.js:2137 +#: js/widgets/timbre.js:2328 +#.TRANS: amplitude of tremolo waver +msgid "depth" msgstr "" -#: js/musicutils.js:645 -#.TRANS: harmonic major scale in music -msgid "harmonic major" +#: js/blocks/ToneBlocks.js:559 +msgid "The Phaser block adds a sweeping sound." msgstr "" -#: js/musicutils.js:647 -#.TRANS: natural minor scales in music -msgid "natural minor" +#: js/blocks/ToneBlocks.js:566 +#: js/widgets/timbre.js:2098 +#.TRANS: alter the phase of the sound +msgid "phaser" msgstr "" -#: js/musicutils.js:649 -#.TRANS: harmonic minor scale in music -msgid "harmonic minor" +#: js/blocks/ToneBlocks.js:569 +#: js/turtleactions/IntervalsActions.js:114 +#: js/widgets/timbre.js:2422 +msgid "octaves" msgstr "" -#: js/musicutils.js:651 -#.TRANS: melodic minor scale in music -msgid "melodic minor" +#: js/blocks/ToneBlocks.js:569 +#: js/widgets/timbre.js:2425 +msgid "base frequency" msgstr "" -#: js/musicutils.js:655 -#.TRANS: modal scale for music -msgid "dorian" +#: js/blocks/ToneBlocks.js:619 +msgid "The Chorus block adds a chorus effect." msgstr "" -#: js/musicutils.js:657 -#.TRANS: modal scale for music -msgid "phrygian" +#: js/blocks/ToneBlocks.js:627 +#: js/widgets/timbre.js:2096 +#.TRANS: musical effect to simulate a choral sound +msgid "chorus" msgstr "" -#: js/musicutils.js:659 -#.TRANS: modal scale for music -msgid "lydian" +#: js/blocks/ToneBlocks.js:630 +msgid "delay" msgstr "" -#: js/musicutils.js:661 -#.TRANS: modal scale for music -msgid "mixolydian" +#: js/blocks/ToneBlocks.js:678 +msgid "The Vibrato block adds a rapid, slight variation in pitch." msgstr "" -#: js/musicutils.js:665 -#.TRANS: modal scale for music -msgid "locrian" +#: js/blocks/ToneBlocks.js:686 +#: js/widgets/timbre.js:2094 +#.TRANS: a rapid, slight variation in pitch +msgid "vibrato" msgstr "" -#: js/musicutils.js:667 -#.TRANS: minor jazz scale for music -msgid "jazz minor" +#: js/blocks/ToneBlocks.js:689 +#: js/widgets/timbre.js:2221 +msgid "intensity" msgstr "" -#: js/musicutils.js:669 -#.TRANS: bebop scale for music -msgid "bebop" +#: js/blocks/ToneBlocks.js:733 +#.TRANS: select synthesizer +msgid "set synth" msgstr "" -#: js/musicutils.js:670 -msgid "arabic" +#: js/blocks/ToneBlocks.js:804 +msgid "synth name" msgstr "" -#: js/musicutils.js:671 -msgid "byzantine" +#: js/blocks/ToneBlocks.js:842 +msgid "set default instrument" msgstr "" -#: js/musicutils.js:673 -#.TRANS: musical scale for music by Verdi -msgid "enigmatic" +#: js/blocks/ToneBlocks.js:895 +#: js/blocks/ToneBlocks.js:943 +#.TRANS: set the characteristics of a custom instrument +msgid "set instrument" msgstr "" -#: js/musicutils.js:674 -msgid "ethiopian" +#: js/blocks/ToneBlocks.js:898 +#: js/blocks/ToneBlocks.js:926 +#: js/blocks/ToneBlocks.js:932 +msgid "The Set instrument block selects a voice for the synthesizer," msgstr "" -#: js/musicutils.js:676 -#.TRANS: Ethiopic scale for music -msgid "geez" +#: js/blocks/ToneBlocks.js:900 +#: js/blocks/ToneBlocks.js:934 +msgid "eg guitar piano violin or cello." msgstr "" -#: js/musicutils.js:677 -msgid "hindu" +#: js/blocks/ToneBlocks.js:1015 +msgid "Import a sound file to use as an instrument and set its pitch center." msgstr "" -#: js/musicutils.js:678 -msgid "hungarian" +#: js/blocks/ToneBlocks.js:1110 +msgid "Upload a sound file to connect with the sample block." msgstr "" -#: js/musicutils.js:680 -#.TRANS: minor Romanian scale for music -msgid "romanian minor" +#: js/blocks/VolumeBlocks.js:35 +msgid "synth volume" msgstr "" -#: js/musicutils.js:681 -msgid "spanish gypsy" +#: js/blocks/VolumeBlocks.js:39 +msgid "The Synth volume block returns the current volume of the current synthesizer." msgstr "" -#: js/musicutils.js:683 -#.TRANS: musical scale for Mid-Eastern music -msgid "maqam" +#: js/blocks/VolumeBlocks.js:105 +msgid "master volume" msgstr "" -#: js/musicutils.js:685 -#.TRANS: minor blues scale for music -msgid "minor blues" +#: js/blocks/VolumeBlocks.js:109 +msgid "The Master volume block returns the master volume." msgstr "" -#: js/musicutils.js:687 -#.TRANS: major blues scale for music -msgid "major blues" +#: js/blocks/VolumeBlocks.js:355 +#: js/blocks/VolumeBlocks.js:524 +msgid "set synth volume" msgstr "" -#: js/musicutils.js:688 -msgid "whole tone" +#: js/blocks/VolumeBlocks.js:362 +#: js/blocks/VolumeBlocks.js:545 +msgid "synth" msgstr "" -#: js/musicutils.js:690 -#.TRANS: pentatonic is a general term that means "five note scale". This scale is typically known as "minor pentatonic" -msgid "minor pentatonic" +#: js/blocks/VolumeBlocks.js:403 +#: js/blocks/VolumeBlocks.js:577 +#: js/blocks/VolumeBlocks.js:740 +#: js/turtleactions/VolumeActions.js:173 +msgid "Setting volume to 0." msgstr "" -#: js/musicutils.js:692 -#.TRANS: pentatonic is a general term that means "five note scale". This scale is typically known as "major pentatonic" -msgid "major pentatonic" +#: js/blocks/VolumeBlocks.js:440 +msgid "Synth not found" msgstr "" -#: js/musicutils.js:693 -msgid "chinese" +#: js/blocks/VolumeBlocks.js:494 +msgid "set drum volume" msgstr "" -#: js/musicutils.js:694 -msgid "egyptian" +#: js/blocks/VolumeBlocks.js:530 +msgid "The Set synth volume block will change the volume of a particular synth," msgstr "" -#: js/musicutils.js:696 -#.TRANS: https://en.wikipedia.org/wiki/Hirajoshi_scale NOTE: There are three different versions of this scale -msgid "hirajoshi" +#: js/blocks/VolumeBlocks.js:532 +msgid "eg guitar violin snare drum etc." msgstr "" -#: js/musicutils.js:697 -msgid "Japan" +#: js/blocks/VolumeBlocks.js:534 +msgid "The default volume is 50." msgstr "" -#: js/musicutils.js:699 -#.TRANS: https://en.wikipedia.org/wiki/In_scale and https://en.wikipedia.org/wiki/Sakura_Sakura -msgid "in" +#: js/blocks/VolumeBlocks.js:536 +msgid "The range is 0 for silence to 100 for full volume." msgstr "" -#: js/musicutils.js:701 -#.TRANS: https://en.wikipedia.org/wiki/Miny%C5%8D_scale -msgid "minyo" +#: js/blocks/VolumeBlocks.js:597 +msgid "set panning" msgstr "" -#: js/musicutils.js:703 -#.TRANS: Italian mathematician -msgid "fibonacci" +#: js/blocks/VolumeBlocks.js:603 +msgid "The Set Panning block sets the panning for all synthesizers." msgstr "" -#: js/musicutils.js:708 -#: js/musicutils.js:1106 -#.TRANS: lowpass filter -msgid "lowpass" +#: js/blocks/VolumeBlocks.js:625 +msgid "Warning: Sound is coming out from only the left or right side." msgstr "" -#: js/musicutils.js:710 -#: js/musicutils.js:1107 -#.TRANS: bandpass filter -msgid "bandpass" +#: js/blocks/VolumeBlocks.js:647 +#: js/blocks/VolumeBlocks.js:695 +msgid "set master volume" msgstr "" -#: js/musicutils.js:712 -#: js/musicutils.js:1108 -#.TRANS: high-shelf filter -msgid "highshelf" +#: js/blocks/VolumeBlocks.js:653 +msgid "The Set master volume block sets the volume for all synthesizers." msgstr "" -#: js/musicutils.js:714 -#: js/musicutils.js:1109 -#.TRANS: low-shelf filter -msgid "lowshelf" +#: js/blocks/VolumeBlocks.js:784 +msgid "The Set relative volume block changes the volume of the contained notes." msgstr "" -#: js/musicutils.js:716 -#: js/musicutils.js:1110 -#.TRANS: notch-shelf filter -msgid "notch" +#: js/blocks/VolumeBlocks.js:791 +msgid "set relative volume" msgstr "" -#: js/musicutils.js:718 -#: js/musicutils.js:1111 -#.TRANS: all-pass filter -msgid "allpass" +#: js/blocks/VolumeBlocks.js:857 +msgid "decrescendo" msgstr "" -#: js/musicutils.js:720 -#: js/musicutils.js:1112 -#.TRANS: peaking filter -msgid "peaking" +#: js/blocks/VolumeBlocks.js:921 +msgid "crescendo" msgstr "" -#: js/musicutils.js:731 -#: js/synthutils.js:58 -#.TRANS: musical instrument -msgid "violin" +#: js/blocks/WidgetBlocks.js:81 +#.TRANS: sound envelope (ADSR) +msgid "envelope" msgstr "" -#: js/musicutils.js:732 -#: js/synthutils.js:60 -#.TRANS: viola musical instrument -msgid "viola" +#: js/blocks/WidgetBlocks.js:89 +#.TRANS: Attack time is the time taken for initial run-up of level from nil to peak, beginning when the key is first pressed. +msgid "attack" msgstr "" -#: js/musicutils.js:733 -#: js/synthutils.js:98 -#.TRANS: xylophone musical instrument -msgid "xylophone" +#: js/blocks/WidgetBlocks.js:91 +#.TRANS: Decay time is the time taken for the subsequent run down from the attack level to the designated sustain level. +msgid "decay" msgstr "" -#: js/musicutils.js:734 -#: js/synthutils.js:120 -#.TRANS: vibraphone musical instrument -msgid "vibraphone" +#: js/blocks/WidgetBlocks.js:93 +#.TRANS: Sustain level is the level during the main sequence of the sound's duration, until the key is released. +msgid "sustain" msgstr "" -#: js/musicutils.js:735 -#: js/synthutils.js:62 -#.TRANS: musical instrument -msgid "cello" +#: js/blocks/WidgetBlocks.js:95 +#.TRANS: Release time is the time taken for the level to decay from the sustain level to zero after the key is released. +msgid "release" msgstr "" -#: js/musicutils.js:737 -#: js/synthutils.js:66 -#.TRANS: viola musical instrument -msgid "double bass" +#: js/blocks/WidgetBlocks.js:113 +msgid "Attack value should be from 0 to 100." msgstr "" -#: js/musicutils.js:738 -#: js/synthutils.js:68 -#: js/rhythmruler.js:2119 -#.TRANS: musical instrument -msgid "guitar" +#: js/blocks/WidgetBlocks.js:116 +msgid "Decay value should be from 0 to 100." msgstr "" -#: js/musicutils.js:739 -#: js/synthutils.js:70 -#.TRANS: musical instrument -msgid "acoustic guitar" +#: js/blocks/WidgetBlocks.js:119 +msgid "Sustain value should be from 0 to 100." msgstr "" -#: js/musicutils.js:740 -#: js/synthutils.js:72 -#.TRANS: musical instrument -msgid "flute" +#: js/blocks/WidgetBlocks.js:122 +msgid "Release value should be from 0-100." msgstr "" -#: js/musicutils.js:741 -#: js/synthutils.js:74 -#.TRANS: musical instrument -msgid "clarinet" +#: js/blocks/WidgetBlocks.js:140 +msgid "You are adding multiple envelope blocks." msgstr "" -#: js/musicutils.js:742 -#: js/synthutils.js:76 -#.TRANS: musical instrument -msgid "saxophone" +#: js/blocks/WidgetBlocks.js:171 +#.TRANS: a filter removes some unwanted components from a signal +msgid "filter" msgstr "" -#: js/musicutils.js:743 -#: js/synthutils.js:78 -#.TRANS: musical instrument -msgid "tuba" +#: js/blocks/WidgetBlocks.js:181 +#: js/widgets/timbre.js:1818 +#.TRANS: rolloff is the steepness of a change in frequency. +msgid "rolloff" msgstr "" -#: js/musicutils.js:744 -#: js/synthutils.js:80 -#.TRANS: musical instrument -msgid "trumpet" +#: js/blocks/WidgetBlocks.js:213 +#.TRANS: rolloff is the steepness of a change in frequency. +msgid "Rolloff value should be either -12, -24, -48, or -96 decibels/octave." msgstr "" -#: js/musicutils.js:745 -#: js/synthutils.js:82 -#.TRANS: musical instrument -msgid "oboe" +#: js/blocks/WidgetBlocks.js:252 +msgid "The Temperament tool is used to define custom tuning." msgstr "" -#: js/musicutils.js:746 -#: js/synthutils.js:84 -#.TRANS: musical instrument -msgid "trombone" +#: js/blocks/WidgetBlocks.js:332 +#: js/blocks/WidgetBlocks.js:1573 +#: js/widgets/sampler.js:547 +msgid "Upload a sample and adjust its pitch center." msgstr "" -#: js/musicutils.js:747 -#: js/synthutils.js:100 -#.TRANS: polytone synthesizer -msgid "electronic synth" +#: js/blocks/WidgetBlocks.js:339 +#.TRANS: the speed at music is should be played. +msgid "sampler" msgstr "" -#: js/musicutils.js:748 -#: js/synthutils.js:102 -#.TRANS: simple monotone synthesizer -msgid "simple 1" +#: js/blocks/WidgetBlocks.js:517 +msgid "The Meter block opens a tool to select strong beats for the meter." msgstr "" -#: js/musicutils.js:749 -msgid "simple 2" +#: js/blocks/WidgetBlocks.js:573 +msgid "The oscilloscope block opens a tool to visualize waveforms." msgstr "" -#: js/musicutils.js:750 -msgid "simple 3" +#: js/blocks/WidgetBlocks.js:578 +msgid "oscilloscope" msgstr "" -#: js/musicutils.js:751 -msgid "simple 4" +#: js/blocks/WidgetBlocks.js:645 +msgid "The Custom mode block opens a tool to explore musical mode (the spacing of the notes in a scale)." msgstr "" -#: js/musicutils.js:753 -#: js/synthutils.js:49 -#.TRANS: brown noise synthesizer -msgid "brown noise" +#: js/blocks/WidgetBlocks.js:651 +#.TRANS: musical mode is the pattern of half-steps in an octave, e.g., Major or Minor modes +msgid "custom mode" msgstr "" -#: js/musicutils.js:754 -#: js/synthutils.js:51 -#.TRANS: pink noise synthesizer -msgid "pink noise" +#: js/blocks/WidgetBlocks.js:700 +msgid "The Tempo block opens a metronome to visualize the beat." msgstr "" -#: js/musicutils.js:756 -#: js/synthutils.js:127 -#: js/rhythmruler.js:1670 -#: js/rhythmruler.js:1928 -#.TRANS: musical instrument -msgid "snare drum" +#: js/blocks/WidgetBlocks.js:762 +msgid "The Arpeggio Widget is used to compose chord sequences." msgstr "" -#: js/musicutils.js:757 -#: js/synthutils.js:129 -#.TRANS: musical instrument -msgid "kick drum" +#: js/blocks/WidgetBlocks.js:837 +msgid "The Pitch drum matrix is used to map pitches to drum sounds." msgstr "" -#: js/musicutils.js:758 -#: js/synthutils.js:131 -#.TRANS: musical instrument -msgid "tom tom" +#: js/blocks/WidgetBlocks.js:842 +#.TRANS: makes a mapping between pitches and drum sounds +msgid "pitch-drum mapper" msgstr "" -#: js/musicutils.js:759 -#: js/synthutils.js:133 -#.TRANS: musical instrument -msgid "floor tom" +#: js/blocks/WidgetBlocks.js:891 +msgid "You must have at least one pitch block and one drum block in the matrix." msgstr "" -#: js/musicutils.js:760 -#: js/synthutils.js:135 -#.TRANS: musical instrument -msgid "bass drum" +#: js/blocks/WidgetBlocks.js:920 +msgid "The Pitch slider tool to is used to generate pitches at selected frequencies." msgstr "" -#: js/musicutils.js:761 -#: js/synthutils.js:137 -#.TRANS: a drum made from an inverted cup -msgid "cup drum" +#: js/blocks/WidgetBlocks.js:925 +#.TRANS: widget to generate pitches using a slider +msgid "pitch slider" msgstr "" -#: js/musicutils.js:762 -#: js/synthutils.js:139 -#.TRANS: musical instrument -msgid "darbuka drum" +#: js/blocks/WidgetBlocks.js:977 +msgid "chromatic keyboard" msgstr "" -#: js/musicutils.js:763 -#: js/synthutils.js:143 -#.TRANS: musical instrument -msgid "hi hat" +#: js/blocks/WidgetBlocks.js:1011 +#: js/blocks/WidgetBlocks.js:1077 +#.TRANS: widget to generate pitches using a slider +msgid "music keyboard" msgstr "" -#: js/musicutils.js:764 -#: js/synthutils.js:145 -#.TRANS: a small metal bell -msgid "ride bell" +#: js/blocks/WidgetBlocks.js:1062 +#: js/blocks/WidgetBlocks.js:1069 +msgid "The Music keyboard block opens a piano keyboard that can be used to create notes." msgstr "" -#: js/musicutils.js:765 -#: js/synthutils.js:147 -#.TRANS: musical instrument -msgid "cow bell" +#: js/blocks/WidgetBlocks.js:1128 +msgid "The Pitch staircase tool to is used to generate pitches from a given ratio." msgstr "" -#: js/musicutils.js:766 -msgid "japanese drum" +#: js/blocks/WidgetBlocks.js:1135 +#.TRANS: generate a progressive sequence of pitches +msgid "pitch staircase" msgstr "" -#: js/musicutils.js:767 -#: js/synthutils.js:153 -#.TRANS: musical instrument -msgid "japanese bell" +#: js/blocks/WidgetBlocks.js:1222 +msgid "The Rhythm Maker block opens a tool to create drum machines." msgstr "" -#: js/musicutils.js:768 -#: js/synthutils.js:149 -#.TRANS: musical instrument -msgid "triangle bell" +#: js/blocks/WidgetBlocks.js:1291 +msgid "G major scale" msgstr "" -#: js/musicutils.js:769 -#: js/synthutils.js:151 -#.TRANS: musical instrument -msgid "finger cymbals" +#: js/blocks/WidgetBlocks.js:1326 +msgid "C major scale" msgstr "" -#: js/musicutils.js:770 -#: js/synthutils.js:155 -#.TRANS: a musically tuned set of bells -msgid "chime" +#: js/blocks/WidgetBlocks.js:1366 +msgid "The Phrase Maker block opens a tool to create musical phrases." msgstr "" -#: js/musicutils.js:771 -#: js/synthutils.js:157 -#.TRANS: a musical instrument -msgid "gong" +#: js/blocks/WidgetBlocks.js:1373 +#.TRANS: assigns pitch to a sequence of beats to generate a melody +msgid "phrase maker" msgstr "" -#: js/musicutils.js:772 -#: js/synthutils.js:159 -#.TRANS: sound effect -msgid "clang" +#: js/blocks/WidgetBlocks.js:1444 +msgid "You must have at least one pitch block and one rhythm block in the matrix." msgstr "" -#: js/musicutils.js:773 -#: js/synthutils.js:161 -#.TRANS: sound effect -msgid "crash" +#: js/blocks/WidgetBlocks.js:1503 +msgid "The Status block opens a tool for inspecting the status of Music Blocks as it is running." msgstr "" -#: js/musicutils.js:774 -#: js/synthutils.js:163 -#.TRANS: sound effect -msgid "bottle" +#: js/blocks/WidgetBlocks.js:1580 +#.TRANS: AI-generated music +msgid "aimusic" msgstr "" -#: js/musicutils.js:775 -#: js/synthutils.js:165 -#.TRANS: sound effect -msgid "clap" +#: js/turtleactions/MeterActions.js:101 +#: js/turtleactions/MeterActions.js:139 +msgid "beats per minute must be greater than" msgstr "" -#: js/musicutils.js:776 -#: js/synthutils.js:167 -#.TRANS: sound effect -msgid "slap" +#: js/turtleactions/MeterActions.js:111 +#: js/turtleactions/MeterActions.js:149 +msgid "maximum" msgstr "" -#: js/musicutils.js:777 -#: js/synthutils.js:169 -#.TRANS: sound effect -msgid "splash" +#: js/turtleactions/MeterActions.js:117 +#: js/turtleactions/MeterActions.js:155 +msgid "beats per minute is" msgstr "" -#: js/musicutils.js:778 -#: js/synthutils.js:171 -#.TRANS: sound effect -msgid "bubbles" +#: js/turtleactions/DictActions.js:75 +#: js/turtleactions/DictActions.js:142 +#: js/turtleactions/DictActions.js:172 +msgid "font" msgstr "" -#: js/musicutils.js:779 -#: js/synthutils.js:173 -#.TRANS: sound effect -msgid "raindrop" +#: js/turtleactions/DictActions.js:255 +msgid "Dictionary with this name does not exist" msgstr "" -#: js/musicutils.js:780 -#: js/synthutils.js:175 -#.TRANS: animal sound effect -msgid "cat" +#: js/turtleactions/DictActions.js:259 +msgid "Key with this name does not exist in " msgstr "" -#: js/musicutils.js:781 -#: js/synthutils.js:177 -#.TRANS: animal sound effect -msgid "cricket" +#: js/turtleactions/DrumActions.js:227 +msgid "Noise Block: Did you mean to use a Note block?" msgstr "" -#: js/musicutils.js:782 -#: js/synthutils.js:179 -#.TRANS: animal sound effect -msgid "dog" +#: js/turtleactions/IntervalsActions.js:113 +msgid "one" msgstr "" -#: js/musicutils.js:784 -#: js/synthutils.js:86 -#.TRANS: musical instrument -msgid "banjo" +#: js/turtleactions/IntervalsActions.js:113 +msgid "two" msgstr "" -#: js/musicutils.js:785 -#: js/synthutils.js:88 -#.TRANS: musical instrument -msgid "koto" +#: js/turtleactions/IntervalsActions.js:113 +msgid "three" msgstr "" -#: js/musicutils.js:786 -#: js/synthutils.js:90 -#.TRANS: musical instrument -msgid "dulcimer" +#: js/turtleactions/IntervalsActions.js:113 +msgid "four" msgstr "" -#: js/musicutils.js:787 -#: js/synthutils.js:92 -#.TRANS: musical instrument -msgid "electric guitar" +#: js/turtleactions/IntervalsActions.js:113 +msgid "five" msgstr "" -#: js/musicutils.js:788 -#: js/synthutils.js:94 -#.TRANS: musical instrument -msgid "bassoon" +#: js/turtleactions/IntervalsActions.js:113 +msgid "six" msgstr "" -#: js/musicutils.js:789 -#: js/synthutils.js:96 -#.TRANS: musical instrument -msgid "celeste" +#: js/turtleactions/IntervalsActions.js:113 +msgid "seven" msgstr "" -#: js/musicutils.js:791 -#: js/musicutils.js:1123 -#: js/musicutils.js:1131 -#: js/temperament.js:650 -#.TRANS: musical temperament -msgid "equal" +#: js/turtleactions/IntervalsActions.js:113 +msgid "eight" msgstr "" -#: js/musicutils.js:793 -#: js/musicutils.js:1125 -#: js/musicutils.js:1133 -#.TRANS: musical temperament -msgid "Pythagorean" +#: js/turtleactions/IntervalsActions.js:113 +msgid "nine" msgstr "" -#: js/musicutils.js:795 -#: js/musicutils.js:1124 -#: js/musicutils.js:1132 -#.TRANS: musical temperament -msgid "just intonation" +#: js/turtleactions/IntervalsActions.js:119 +msgid "a" msgstr "" -#: js/musicutils.js:797 -#: js/musicutils.js:1126 -#: js/musicutils.js:1127 -#: js/musicutils.js:1134 -#: js/musicutils.js:1135 -#.TRANS: musical temperament -msgid "meantone" +#: js/turtleactions/IntervalsActions.js:120 +msgid "below" msgstr "" -#: js/musicutils.js:814 -msgid "major 7th" +#: js/turtleactions/IntervalsActions.js:124 +msgid "above" msgstr "" -#: js/musicutils.js:815 -msgid "minor 7th" +#: js/turtleactions/IntervalsActions.js:131 +msgid "plus" msgstr "" -#: js/musicutils.js:816 -msgid "dominant 7th" +#: js/turtleactions/IntervalsActions.js:139 +msgid " below" msgstr "" -#: js/musicutils.js:817 -msgid "minor-major 7th" +#: js/turtleactions/IntervalsActions.js:257 +msgid "Adding missing pitch number 0." msgstr "" -#: js/musicutils.js:818 -msgid "fully-diminished 7th" +#: js/turtleactions/IntervalsActions.js:265 +msgid "Ignoring pitch numbers less than zero or greater than eleven." msgstr "" -#: js/musicutils.js:819 -msgid "half-diminished 7th" +#: js/turtleactions/IntervalsActions.js:271 +msgid "Ignoring duplicate pitch numbers." msgstr "" -#: js/musicutils.js:4379 -#: js/musicutils.js:4416 -msgid "current" +#: js/turtleactions/ToneActions.js:134 +msgid "Vibrato intensity must be between 1 and 100." msgstr "" -#: js/musicutils.js:4382 -#: js/musicutils.js:4407 -msgid "next" +#: js/turtleactions/ToneActions.js:139 +msgid "Vibrato rate must be greater than 0." msgstr "" -#: js/musicutils.js:4385 -#: js/musicutils.js:4412 -msgid "previous" +#: js/turtleactions/ToneActions.js:192 +#: js/turtleactions/ToneActions.js:265 +#.TRANS: Depth is the intesity of the tremolo or chorus effect. +msgid "Depth is out of range." msgstr "" -#: js/synthutils.js:104 -#.TRANS: simple monotone synthesizer -msgid "simple-2" +#: js/turtleactions/ToneActions.js:301 +msgid "Distortion must be from 0 to 100." msgstr "" -#: js/synthutils.js:106 -#.TRANS: simple monotone synthesizer -msgid "simple-3" +#: js/turtleactions/ToneActions.js:332 +#.TRANS: partials components in a harmonic series +msgid "Partial must be greater than or equal to 0." msgstr "" -#: js/synthutils.js:108 -#.TRANS: simple monotone synthesizer -msgid "simple-4" +#: js/turtleactions/ToneActions.js:378 +#: js/turtleactions/ToneActions.js:417 +#: js/turtleactions/ToneActions.js:456 +#: js/widgets/timbre.js:782 +msgid "Unable to use synth due to existing oscillator" msgstr "" -#: js/synthutils.js:141 -#.TRANS: musical instrument -msgid "taiko" +#: js/turtleactions/ToneActions.js:388 +#: js/turtleactions/ToneActions.js:427 +msgid "The input cannot be negative." msgstr "" -#: js/modewidget.js:86 -#: js/modewidget.js:88 -#: js/modewidget.js:642 -#: js/modewidget.js:644 -#: js/modewidget.js:712 -#: js/modewidget.js:714 -#: js/temperament.js:2078 -#: js/rhythmruler.js:189 -#: js/rhythmruler.js:1410 -#: js/rhythmruler.js:1412 -#: js/rhythmruler.js:1435 -#: js/rhythmruler.js:1437 -#: js/meterwidget.js:89 -#: js/meterwidget.js:91 +#: js/widgets/modewidget.js:86 +#: js/widgets/modewidget.js:88 +#: js/widgets/modewidget.js:642 +#: js/widgets/modewidget.js:644 +#: js/widgets/modewidget.js:712 +#: js/widgets/modewidget.js:714 +#: js/widgets/meterwidget.js:194 +#: js/widgets/meterwidget.js:196 +#: js/widgets/temperament.js:2236 +#: js/widgets/rhythmruler.js:457 +#: js/widgets/rhythmruler.js:1790 +#: js/widgets/rhythmruler.js:1792 +#: js/widgets/rhythmruler.js:1816 +#: js/widgets/rhythmruler.js:1818 msgid "Play all" msgstr "" -#: js/modewidget.js:115 -#: js/pitchstaircase.js:641 -#: js/phrasemaker.js:339 -#: js/pitchdrummatrix.js:94 -#: js/pitchslider.js:125 -#: js/temperament.js:2083 -#: js/musickeyboard.js:530 -#: js/timbre.js:756 -#: js/meterwidget.js:124 -#: js/arpeggio.js:103 +#: js/widgets/modewidget.js:115 +#: js/widgets/meterwidget.js:229 +#: js/widgets/pitchdrummatrix.js:166 +#: js/widgets/pitchslider.js:125 +#: js/widgets/pitchstaircase.js:641 +#: js/widgets/temperament.js:2244 +#: js/widgets/timbre.js:756 +#: js/widgets/arpeggio.js:103 +#: js/widgets/musickeyboard.js:688 +#: js/widgets/phrasemaker.js:550 msgid "Save" msgstr "" -#: js/modewidget.js:121 -#: js/pitchstaircase.js:686 -#: js/phrasemaker.js:356 -#: js/pitchdrummatrix.js:109 -#: js/musickeyboard.js:534 -#: js/rhythmruler.js:269 -#: js/arpeggio.js:118 +#: js/widgets/modewidget.js:121 +#: js/widgets/pitchdrummatrix.js:181 +#: js/widgets/pitchstaircase.js:686 +#: js/widgets/arpeggio.js:118 +#: js/widgets/musickeyboard.js:696 +#: js/widgets/phrasemaker.js:567 +#: js/widgets/rhythmruler.js:601 #.TRANS: clear all subdivisions from the ruler. msgid "Clear" msgstr "" -#: js/modewidget.js:127 +#: js/widgets/modewidget.js:127 msgid "Rotate counter clockwise" msgstr "" -#: js/modewidget.js:133 +#: js/widgets/modewidget.js:133 msgid "Rotate clockwise" msgstr "" -#: js/modewidget.js:139 +#: js/widgets/modewidget.js:139 msgid "Invert" msgstr "" -#: js/modewidget.js:145 -#: js/pitchstaircase.js:678 -#: js/rhythmruler.js:258 -#: js/timbre.js:963 +#: js/widgets/modewidget.js:145 +#: js/widgets/pitchstaircase.js:678 +#: js/widgets/timbre.js:963 +#: js/widgets/rhythmruler.js:578 msgid "Undo" msgstr "" -#: js/modewidget.js:163 +#: js/widgets/modewidget.js:163 #.TRANS: A circle of notes represents the musical mode. msgid "Click in the circle to select notes for the mode." msgstr "" -#: js/modewidget.js:1017 -#: js/pitchstaircase.js:580 -#: js/phrasemaker.js:4855 -#: js/temperament.js:1754 -#: js/rhythmruler.js:1865 -#: js/rhythmruler.js:2081 -#: js/tempo.js:414 +#: js/widgets/modewidget.js:1017 +#: js/widgets/pitchstaircase.js:580 +#: js/widgets/temperament.js:1929 +#: js/widgets/tempo.js:414 +#: js/widgets/phrasemaker.js:5356 +#: js/widgets/rhythmruler.js:2254 +#: js/widgets/rhythmruler.js:2472 msgid "New action block generated!" msgstr "" -#: js/oscilloscope.js:79 -msgid "Zoom In" -msgstr "" - -#: js/oscilloscope.js:88 -msgid "Zoom Out" -msgstr "" - -#: js/pitchstaircase.js:624 -msgid "Play chord" -msgstr "" - -#: js/pitchstaircase.js:632 -msgid "Play scale" +#: js/widgets/meterwidget.js:275 +msgid "Reset" msgstr "" -#: js/pitchstaircase.js:696 -msgid "Click on a note to create a new step." +#: js/widgets/meterwidget.js:301 +msgid "Click in the circle to select strong beats for the meter." msgstr "" -#: js/phrasemaker.js:363 -msgid "Export" +#: js/widgets/oscilloscope.js:79 +msgid "Zoom In" msgstr "" -#: js/phrasemaker.js:370 -msgid "Sort" +#: js/widgets/oscilloscope.js:88 +msgid "Zoom Out" msgstr "" -#: js/phrasemaker.js:373 -#: js/musickeyboard.js:559 -msgid "Add note" +#: js/widgets/pitchdrummatrix.js:356 +#: js/widgets/pitchdrummatrix.js:752 +msgid "Click in the grid to map notes to drums." msgstr "" -#: js/phrasemaker.js:764 -msgid "Click on the table to add notes." +#: js/widgets/pitchslider.js:103 +msgid "Move up" msgstr "" -#: js/phrasemaker.js:2414 -#: js/phrasemaker.js:2543 -msgid "tuplet value" +#: js/widgets/pitchslider.js:114 +msgid "Move down" msgstr "" -#: js/pitchdrummatrix.js:270 -#: js/pitchdrummatrix.js:639 -msgid "Click in the grid to map notes to drums." +#: js/widgets/pitchslider.js:136 +msgid "Click on the slider to create a note block." msgstr "" -#: js/pitchslider.js:103 -msgid "Move up" +#: js/widgets/pitchstaircase.js:624 +msgid "Play chord" msgstr "" -#: js/pitchslider.js:114 -msgid "Move down" +#: js/widgets/pitchstaircase.js:632 +msgid "Play scale" msgstr "" -#: js/pitchslider.js:136 -msgid "Click on the slider to create a note block." +#: js/widgets/pitchstaircase.js:696 +msgid "Click on a note to create a new step." msgstr "" -#: js/temperament.js:215 +#: js/widgets/temperament.js:321 msgid "back to 2:1 octave space" msgstr "" -#: js/temperament.js:323 +#: js/widgets/temperament.js:447 msgid "edit" msgstr "" -#: js/temperament.js:330 -#: js/temperament.js:332 -#: js/temperament.js:1336 -#: js/temperament.js:1338 +#: js/widgets/temperament.js:454 +#: js/widgets/temperament.js:456 +#: js/widgets/temperament.js:1493 +#: js/widgets/temperament.js:1495 msgid "close" msgstr "" -#: js/temperament.js:423 -#: js/temperament.js:736 -#: js/temperament.js:743 -#: js/temperament.js:845 -#: js/temperament.js:935 -#: js/temperament.js:942 -#: js/temperament.js:1015 -#: js/temperament.js:1284 -#: js/temperament.js:1354 -#: js/temperament.js:1430 +#: js/widgets/temperament.js:552 +#: js/widgets/temperament.js:877 +#: js/widgets/temperament.js:884 +#: js/widgets/temperament.js:986 +#: js/widgets/temperament.js:1080 +#: js/widgets/temperament.js:1087 +#: js/widgets/temperament.js:1160 +#: js/widgets/temperament.js:1433 +#: js/widgets/temperament.js:1511 +#: js/widgets/temperament.js:1596 msgid "done" msgstr "" -#: js/temperament.js:477 -#: js/temperament.js:482 -#: js/temperament.js:918 +#: js/widgets/temperament.js:610 +#: js/widgets/temperament.js:615 +#: js/widgets/temperament.js:1063 msgid "ratio" msgstr "" -#: js/temperament.js:483 +#: js/widgets/temperament.js:616 msgid "interval" msgstr "" -#: js/temperament.js:611 +#: js/widgets/temperament.js:744 msgid "non scalar" msgstr "" -#: js/temperament.js:650 +#: js/widgets/temperament.js:787 msgid "ratios" msgstr "" -#: js/temperament.js:650 +#: js/widgets/temperament.js:787 msgid "arbitrary" msgstr "" -#: js/temperament.js:719 +#: js/widgets/temperament.js:860 msgid "number of divisions" msgstr "" -#: js/temperament.js:741 -#: js/temperament.js:858 -#: js/temperament.js:940 -#: js/temperament.js:1033 +#: js/widgets/temperament.js:882 +#: js/widgets/temperament.js:999 +#: js/widgets/temperament.js:1085 +#: js/widgets/temperament.js:1178 msgid "preview" msgstr "" -#: js/temperament.js:788 +#: js/widgets/temperament.js:929 msgid "The Number of divisions is too large." msgstr "" -#: js/temperament.js:921 +#: js/widgets/temperament.js:1066 msgid "recursion" msgstr "" -#: js/temperament.js:1450 +#: js/widgets/temperament.js:1616 msgid "The octave ratio has changed. This changes temperament significantly." msgstr "" -#: js/temperament.js:2087 +#: js/widgets/temperament.js:2248 msgid "Table" msgstr "" -#: js/temperament.js:2185 +#: js/widgets/temperament.js:2356 msgid "Add pitches" msgstr "" -#: js/musickeyboard.js:570 -msgid "Metronome" +#: js/widgets/tempo.js:78 +#: js/widgets/tempo.js:97 +#: js/widgets/tempo.js:99 +#: js/widgets/aiwidget.js:134 +#: js/widgets/aiwidget.js:136 +#: js/widgets/rhythmruler.js:681 +#: js/widgets/rhythmruler.js:683 +#: js/widgets/rhythmruler.js:1864 +#: js/widgets/rhythmruler.js:1866 +#: js/widgets/sampler.js:180 +#: js/widgets/sampler.js:182 +msgid "Pause" msgstr "" -#: js/musickeyboard.js:1296 -#: plugins/rodi.rtp:193 -msgid "duration" +#: js/widgets/tempo.js:113 +msgid "Save tempo" msgstr "" -#: js/musickeyboard.js:2840 -msgid "New action blocks generated!" +#: js/widgets/tempo.js:144 +msgid "speed up" msgstr "" -#: js/musickeyboard.js:2841 -msgid "New action block generated" +#: js/widgets/tempo.js:150 +msgid "slow down" msgstr "" -#: js/musickeyboard.js:2984 -#: js/musickeyboard.js:2992 -msgid "MIDI device present." +#: js/widgets/tempo.js:194 +msgid "Adjust the tempo with the buttons." msgstr "" -#: js/musickeyboard.js:2995 -msgid "No MIDI device found." +#: js/widgets/tempo.js:261 +msgid "Please enter a number between 30 and 1000" msgstr "" -#: js/musickeyboard.js:3000 -msgid "Failed to get MIDI access in browser." +#: js/widgets/tempo.js:268 +#: js/widgets/tempo.js:271 +msgid "The beats per minute must be between 30 and 1000." msgstr "" -#: js/rhythmruler.js:202 -msgid "Save rhythms" +#: js/widgets/tempo.js:287 +msgid "The beats per minute must be below 1000." msgstr "" -#: js/rhythmruler.js:222 -msgid "Save drum machine" +#: js/widgets/tempo.js:303 +msgid "The beats per minute must be above 30" msgstr "" -#: js/rhythmruler.js:263 -#.TRANS: user can tap out a rhythm by clicking on a ruler. -msgid "Tap a rhythm" +#: js/widgets/timbre.js:766 +msgid "Synthesizer" msgstr "" -#: js/rhythmruler.js:342 -#: js/rhythmruler.js:344 -#: js/rhythmruler.js:1481 -#: js/rhythmruler.js:1483 -#: js/sampler.js:110 -#: js/sampler.js:112 -#: js/tempo.js:78 -#: js/tempo.js:97 -#: js/tempo.js:99 -msgid "Pause" +#: js/widgets/timbre.js:789 +msgid "Oscillator" msgstr "" -#: js/rhythmruler.js:478 -msgid "Click on the ruler to divide it." +#: js/widgets/timbre.js:840 +msgid "Envelope" msgstr "" -#: js/rhythmruler.js:603 -#: js/rhythmruler.js:605 -#: js/rhythmruler.js:804 -#: js/rhythmruler.js:806 -#: js/rhythmruler.js:1386 -#: js/rhythmruler.js:1388 -msgid "tap a rhythm" +#: js/widgets/timbre.js:886 +#: planet/js/GlobalTag.js:50 +#.TRANS: On the Planet, we use labels to tag projects. +msgid "Effects" msgstr "" -#: js/rhythmruler.js:1084 -msgid "Maximum value of 256 has been exceeded." +#: js/widgets/timbre.js:904 +msgid "Filter" msgstr "" -#: js/sampler.js:137 -msgid "Warning: Sample is bigger than 1MB." +#: js/widgets/timbre.js:946 +msgid "Add filter" msgstr "" -#: js/sampler.js:142 -msgid "Upload failed: Sample is not a .wav file." +#: js/widgets/timbre.js:987 +msgid "Click on buttons to open the timbre design tools." msgstr "" -#: js/sampler.js:164 -msgid "A new sample block was generated." +#: js/widgets/timbre.js:1273 +msgid "harmonicity" msgstr "" -#: js/sampler.js:255 -msgid "Upload sample" +#: js/widgets/timbre.js:1340 +#: js/widgets/timbre.js:1406 +msgid "modulation index" msgstr "" -#: js/sampler.js:306 -msgid "Save sample" +#: js/widgets/timbre.js:1484 +msgid "vibrato amount" msgstr "" -#: js/sampler.js:697 -#.TRANS: The reference tone is a sound used for comparison. -msgid "reference tone" +#: js/widgets/timbre.js:1919 +msgid "Filter already present." msgstr "" -#: js/tempo.js:113 -msgid "Save tempo" +#: js/widgets/timbre.js:2322 +msgid "delay (MS)" msgstr "" -#: js/tempo.js:144 -msgid "speed up" +#: js/widgets/timbre.js:2507 +msgid "distortion amount" msgstr "" -#: js/tempo.js:150 -msgid "slow down" +#: js/widgets/aiwidget.js:180 +#: js/widgets/sampler.js:227 +msgid "Warning: Sample is bigger than 1MB." msgstr "" -#: js/tempo.js:194 -msgid "Adjust the tempo with the buttons." +#: js/widgets/aiwidget.js:539 +msgid "New start block generated" msgstr "" -#: js/tempo.js:261 -msgid "Please enter a number between 30 and 1000" +#: js/widgets/aiwidget.js:541 +msgid "MIDI loading. This may take some time depending upon the number of notes in the track" msgstr "" -#: js/tempo.js:268 -#: js/tempo.js:271 -msgid "The beats per minute must be between 30 and 1000." +#: js/widgets/aiwidget.js:551 +#: js/widgets/sampler.js:254 +msgid "Upload failed: Sample is not a .wav file." msgstr "" -#: js/tempo.js:287 -msgid "The beats per minute must be below 1000." +#: js/widgets/aiwidget.js:679 +#: js/widgets/sampler.js:432 +msgid "Save sample" msgstr "" -#: js/tempo.js:303 -msgid "The beats per minute must be above 30" +#: js/widgets/aiwidget.js:701 +msgid "AI Music" msgstr "" -#: js/timbre.js:766 -msgid "Synthesizer" +#: js/widgets/arpeggio.js:239 +msgid "Click in the grid to add steps to the arpeggio." msgstr "" -#: js/timbre.js:789 -msgid "Oscillator" +#: js/widgets/help.js:95 +#: js/widgets/help.js:125 +#: js/widgets/help.js:146 +#: js/widgets/help.js:158 +#: js/widgets/help.js:376 +#: js/widgets/help.js:391 +msgid "Take a tour" msgstr "" -#: js/timbre.js:840 -msgid "Envelope" +#: js/widgets/musickeyboard.js:725 +#: js/widgets/phrasemaker.js:584 +msgid "Add note" msgstr "" -#: js/timbre.js:886 -#: js/GlobalTag.js:50 -#.TRANS: On the Planet, we use labels to tag projects. -msgid "Effects" +#: js/widgets/musickeyboard.js:744 +msgid "Metronome" +msgstr "" + +#: js/widgets/musickeyboard.js:1549 +#: plugins/rodi.rtp:193 +msgid "duration" +msgstr "" + +#: js/widgets/musickeyboard.js:3179 +msgid "New action blocks generated" +msgstr "" + +#: js/widgets/musickeyboard.js:3180 +msgid "New action block generated" msgstr "" -#: js/timbre.js:904 -msgid "Filter" +#: js/widgets/musickeyboard.js:3365 +#: js/widgets/musickeyboard.js:3373 +msgid "MIDI device present." msgstr "" -#: js/timbre.js:946 -msgid "Add filter" +#: js/widgets/musickeyboard.js:3376 +msgid "No MIDI device found." msgstr "" -#: js/timbre.js:987 -msgid "Click on buttons to open the timbre design tools." +#: js/widgets/musickeyboard.js:3386 +msgid "Failed to get MIDI access in browser." msgstr "" -#: js/timbre.js:1273 -msgid "harmonicity" +#: js/widgets/phrasemaker.js:574 +msgid "Export" msgstr "" -#: js/timbre.js:1340 -#: js/timbre.js:1406 -msgid "modulation index" +#: js/widgets/phrasemaker.js:581 +msgid "Sort" msgstr "" -#: js/timbre.js:1484 -msgid "vibrato amount" +#: js/widgets/phrasemaker.js:975 +msgid "Click on the table to add notes." msgstr "" -#: js/timbre.js:1919 -msgid "Filter already present." +#: js/widgets/phrasemaker.js:2677 +#: js/widgets/phrasemaker.js:2819 +msgid "tuplet value" msgstr "" -#: js/timbre.js:2322 -msgid "delay (MS)" +#: js/widgets/rhythmruler.js:486 +msgid "Save rhythms" msgstr "" -#: js/timbre.js:2507 -msgid "distortion amount" +#: js/widgets/rhythmruler.js:512 +msgid "Save drum machine" msgstr "" -#: js/meterwidget.js:170 -msgid "Reset" +#: js/widgets/rhythmruler.js:589 +#.TRANS: user can tap out a rhythm by clicking on a ruler. +msgid "Tap a rhythm" msgstr "" -#: js/meterwidget.js:196 -msgid "Click in the circle to select strong beats for the meter." +#: js/widgets/rhythmruler.js:817 +msgid "Click on the ruler to divide it." msgstr "" -#: js/arpeggio.js:239 -msgid "Click in the grid to add steps to the arpeggio." +#: js/widgets/rhythmruler.js:950 +#: js/widgets/rhythmruler.js:952 +#: js/widgets/rhythmruler.js:1152 +#: js/widgets/rhythmruler.js:1154 +#: js/widgets/rhythmruler.js:1765 +#: js/widgets/rhythmruler.js:1767 +msgid "tap a rhythm" msgstr "" -#: js/ProjectStorage.js:243 -msgid "anonymous" +#: js/widgets/rhythmruler.js:1459 +msgid "Maximum value of 256 has been exceeded." msgstr "" -#: js/GlobalCard.js:68 -msgid "Share" +#: js/widgets/sampler.js:237 +msgid "Recording started..." msgstr "" -#: js/GlobalCard.js:74 -msgid "Flags" +#: js/widgets/sampler.js:245 +msgid "Recording complete..." msgstr "" -#: js/LocalCard.js:36 -msgid "View published project" +#: js/widgets/sampler.js:283 +msgid "A new sample block was generated." msgstr "" -#: js/LocalCard.js:42 -msgid "Publish project" +#: js/widgets/sampler.js:378 +msgid "Upload sample" msgstr "" -#: js/LocalCard.js:51 -msgid "Edit project" +#: js/widgets/sampler.js:399 +msgid "Warning: Your sample cannot be loaded because it is >1MB." msgstr "" -#: js/LocalCard.js:52 -msgid "Delete project" +#: js/widgets/sampler.js:448 +msgid "Toggle Mic" msgstr "" -#: js/LocalCard.js:53 -msgid "Download project" +#: js/widgets/sampler.js:458 +msgid "Playback" msgstr "" -#: js/LocalCard.js:55 -msgid "Duplicate project" +#: js/widgets/sampler.js:979 +#.TRANS: The reference tone is a sound used for comparison. +msgid "reference tone" msgstr "" -#: js/GlobalTag.js:28 +#: planet/js/GlobalTag.js:28 #.TRANS: On the Planet, we use labels to tag projects. msgid "All Projects" msgstr "" -#: js/GlobalTag.js:30 -#: js/StringHelper.js:37 +#: planet/js/GlobalTag.js:30 +#: planet/js/StringHelper.js:37 #.TRANS: On the Planet, we use labels to tag projects. msgid "My Projects" msgstr "" -#: js/GlobalTag.js:32 +#: planet/js/GlobalTag.js:32 #.TRANS: On the Planet, we use labels to tag projects. msgid "Examples" msgstr "" -#: js/GlobalTag.js:34 +#: planet/js/GlobalTag.js:34 #.TRANS: On the Planet, we use labels to tag projects. msgid "Music" msgstr "" -#: js/GlobalTag.js:36 +#: planet/js/GlobalTag.js:36 #.TRANS: On the Planet, we use labels to tag projects. msgid "Art" msgstr "" -#: js/GlobalTag.js:38 +#: planet/js/GlobalTag.js:38 #.TRANS: On the Planet, we use labels to tag projects. msgid "Math" msgstr "" -#: js/GlobalTag.js:40 +#: planet/js/GlobalTag.js:40 #.TRANS: On the Planet, we use labels to tag projects. msgid "Interactive" msgstr "" -#: js/GlobalTag.js:42 +#: planet/js/GlobalTag.js:42 #.TRANS: On the Planet, we use labels to tag projects. msgid "Design" msgstr "" -#: js/GlobalTag.js:44 +#: planet/js/GlobalTag.js:44 #.TRANS: On the Planet, we use labels to tag projects. msgid "Game" msgstr "" -#: js/GlobalTag.js:46 +#: planet/js/GlobalTag.js:46 #.TRANS: On the Planet, we use labels to tag projects. msgid "Media" msgstr "" -#: js/GlobalTag.js:48 +#: planet/js/GlobalTag.js:48 #.TRANS: On the Planet, we use labels to tag projects. msgid "Sensors" msgstr "" -#: js/GlobalTag.js:52 +#: planet/js/GlobalTag.js:52 #.TRANS: On the Planet, we use labels to tag projects. msgid "Code Snippet" msgstr "" -#: js/helper.js:149 -#: js/StringHelper.js:49 -msgid "Show more tags" +#: planet/js/LocalCard.js:36 +msgid "View published project" msgstr "" -#: js/helper.js:150 -msgid "Show fewer tags" +#: planet/js/LocalCard.js:42 +msgid "Publish project" +msgstr "" + +#: planet/js/LocalCard.js:51 +msgid "Edit project" +msgstr "" + +#: planet/js/LocalCard.js:52 +msgid "Delete project" +msgstr "" + +#: planet/js/LocalCard.js:53 +msgid "Download project" +msgstr "" + +#: planet/js/LocalCard.js:55 +msgid "Duplicate project" +msgstr "" + +#: planet/js/ProjectStorage.js:243 +msgid "anonymous" +msgstr "" + +#: planet/js/SaveInterface.js:34 +msgid "Open in Music Blocks" +msgstr "" + +#: planet/js/SaveInterface.js:35 +msgid "Open in Turtle Blocks" +msgstr "" + +#: planet/js/GlobalCard.js:68 +msgid "Share" +msgstr "" + +#: planet/js/GlobalCard.js:74 +msgid "Flags" +msgstr "" + +#: planet/js/GlobalPlanet.js:35 +msgid "No results found." +msgstr "" + +#: planet/js/GlobalPlanet.js:51 +msgid "Remix of" +msgstr "" + +#: planet/js/GlobalPlanet.js:509 +msgid "Cannot connect to server" msgstr "" -#: js/ProjectViewer.js:30 +#: planet/js/ProjectViewer.js:30 msgid "Error: Report could not be submitted. Try again later." msgstr "" -#: js/ProjectViewer.js:31 +#: planet/js/ProjectViewer.js:31 msgid "Thank you for reporting this project. A moderator will review the project shortly, to verify violation of the Sugar Labs Code of Conduct." msgstr "" -#: js/ProjectViewer.js:32 -#: js/StringHelper.js:62 -#: js/StringHelper.js:64 -#: js/StringHelper.js:68 +#: planet/js/ProjectViewer.js:32 +#: planet/js/StringHelper.js:62 +#: planet/js/StringHelper.js:64 +#: planet/js/StringHelper.js:68 msgid "Report Project" msgstr "" -#: js/ProjectViewer.js:33 -#: js/StringHelper.js:63 +#: planet/js/ProjectViewer.js:33 +#: planet/js/StringHelper.js:63 msgid "Project Reported" msgstr "" -#: js/ProjectViewer.js:34 +#: planet/js/ProjectViewer.js:34 msgid "Report description required" msgstr "" -#: js/ProjectViewer.js:35 +#: planet/js/ProjectViewer.js:35 msgid "Report description too long" msgstr "" -#: js/StringHelper.js:30 +#: planet/js/Publisher.js:30 +msgid "Feature unavailable - cannot connect to server. Reload Music Blocks to try again." +msgstr "" + +#: planet/js/Publisher.js:220 +#: planet/js/Publisher.js:237 +msgid "This field is required" +msgstr "" + +#: planet/js/Publisher.js:227 +msgid "Title too long" +msgstr "" + +#: planet/js/Publisher.js:244 +msgid "Description too long" +msgstr "" + +#: planet/js/Publisher.js:341 +msgid "Server Error" +msgstr "" + +#: planet/js/Publisher.js:341 +msgid "Try Again" +msgstr "" + +#: planet/js/StringHelper.js:30 msgid "Planet" msgstr "" -#: js/StringHelper.js:31 +#: planet/js/StringHelper.js:31 msgid "Close Planet" msgstr "" -#: js/StringHelper.js:32 +#: planet/js/StringHelper.js:32 msgid "Open project from file" msgstr "" -#: js/StringHelper.js:34 +#: planet/js/StringHelper.js:34 msgid "Local" msgstr "" -#: js/StringHelper.js:35 +#: planet/js/StringHelper.js:35 msgid "Global" msgstr "" -#: js/StringHelper.js:36 +#: planet/js/StringHelper.js:36 msgid "Search for a project" msgstr "" -#: js/StringHelper.js:38 +#: planet/js/StringHelper.js:38 msgid "Publish Project" msgstr "" -#: js/StringHelper.js:40 +#: planet/js/StringHelper.js:40 msgid "Tags (max 5)" msgstr "" -#: js/StringHelper.js:41 -#: js/StringHelper.js:61 +#: planet/js/StringHelper.js:41 +#: planet/js/StringHelper.js:61 msgid "Description" msgstr "" -#: js/StringHelper.js:42 -#: js/StringHelper.js:67 +#: planet/js/StringHelper.js:42 +#: planet/js/StringHelper.js:67 msgid "Submit" msgstr "" -#: js/StringHelper.js:43 -#: js/StringHelper.js:47 +#: planet/js/StringHelper.js:43 +#: planet/js/StringHelper.js:47 msgid "Cancel" msgstr "" -#: js/StringHelper.js:44 +#: planet/js/StringHelper.js:44 msgid "Delete \\"\\"?" msgstr "" -#: js/StringHelper.js:45 +#: planet/js/StringHelper.js:45 msgid "Permanently delete project \\"\\"?" msgstr "" -#: js/StringHelper.js:48 +#: planet/js/StringHelper.js:48 msgid "Explore Projects" msgstr "" -#: js/StringHelper.js:50 +#: planet/js/StringHelper.js:49 +#: planet/js/helper.js:149 +msgid "Show more tags" +msgstr "" + +#: planet/js/StringHelper.js:50 msgid "Most recent" msgstr "" -#: js/StringHelper.js:51 +#: planet/js/StringHelper.js:51 msgid "Most liked" msgstr "" -#: js/StringHelper.js:52 +#: planet/js/StringHelper.js:52 msgid "Most downloaded" msgstr "" -#: js/StringHelper.js:53 +#: planet/js/StringHelper.js:53 msgid "A-Z" msgstr "" -#: js/StringHelper.js:54 +#: planet/js/StringHelper.js:54 msgid "Sort by" msgstr "" -#: js/StringHelper.js:55 +#: planet/js/StringHelper.js:55 msgid "Load More Projects" msgstr "" -#: js/StringHelper.js:56 +#: planet/js/StringHelper.js:56 msgid "Last Updated" msgstr "" -#: js/StringHelper.js:57 +#: planet/js/StringHelper.js:57 msgid "Creation Date" msgstr "" -#: js/StringHelper.js:58 +#: planet/js/StringHelper.js:58 msgid "Number of Downloads:" msgstr "" -#: js/StringHelper.js:59 +#: planet/js/StringHelper.js:59 msgid "Number of Likes:" msgstr "" -#: js/StringHelper.js:60 +#: planet/js/StringHelper.js:60 msgid "Tags:" msgstr "" -#: js/StringHelper.js:65 +#: planet/js/StringHelper.js:65 msgid "Report projects which violate the Sugar Labs Code of Conduct." msgstr "" -#: js/StringHelper.js:66 +#: planet/js/StringHelper.js:66 msgid "Reason for reporting project" msgstr "" -#: js/StringHelper.js:70 +#: planet/js/StringHelper.js:70 msgid "Download as File" msgstr "" -#: js/GlobalPlanet.js:35 -msgid "No results found." -msgstr "" - -#: js/GlobalPlanet.js:51 -msgid "Remix of" -msgstr "" - -#: js/GlobalPlanet.js:509 -msgid "Cannot connect to server" -msgstr "" - -#: js/Publisher.js:30 -msgid "Feature unavailable - cannot connect to server. Reload Music Blocks to try again." -msgstr "" - -#: js/Publisher.js:218 -#: js/Publisher.js:235 -msgid "This field is required" -msgstr "" - -#: js/Publisher.js:225 -msgid "Title too long" +#: planet/js/helper.js:150 +msgid "Show fewer tags" msgstr "" -#: js/Publisher.js:242 -msgid "Description too long" +#: plugins/accelerometer.rtp:48 +msgid "motion x" msgstr "" -#: js/Publisher.js:339 -msgid "Server Error" +#: plugins/accelerometer.rtp:56 +msgid "motion y" msgstr "" -#: js/Publisher.js:339 -msgid "Try Again" +#: plugins/accelerometer.rtp:64 +msgid "motion z" msgstr "" -#: js/SaveInterface.js:34 -msgid "Open in Music Blocks" +#: plugins/facebook.rtp:27 +msgid "publish" msgstr "" -#: js/SaveInterface.js:35 -msgid "Open in Turtle Blocks" +#: plugins/maths.rtp:62 +msgid "power" msgstr "" -#: plugins/weather.rtp:68 -#: plugins/weather.rtp:97 -msgid "Days ahead must be in the range of -1 to 5." +#: plugins/maths.rtp:62 +msgid "base" msgstr "" -#: plugins/weather.rtp:122 -msgid "forecast" +#: plugins/maths.rtp:62 +msgid "exp" msgstr "" -#: plugins/weather.rtp:123 -#: plugins/weather.rtp:137 -#: plugins/weather.rtp:150 -msgid "city" +#: plugins/maths.rtp:99 +msgid "floor" msgstr "" -#: plugins/weather.rtp:124 -#: plugins/weather.rtp:138 -#: plugins/weather.rtp:151 -msgid "day" +#: plugins/maths.rtp:104 +msgid "ceiling" msgstr "" -#: plugins/weather.rtp:136 -msgid "high" +#: plugins/maths.rtp:109 +msgid "to degrees" msgstr "" -#: plugins/weather.rtp:149 -msgid "low" +#: plugins/maths.rtp:114 +msgid "to radians" msgstr "" #: plugins/nutrition.rtp:104 @@ -9458,45 +9867,6 @@ msgstr "" msgid "water" msgstr "" -#: plugins/maths.rtp:62 -#: plugins/examples.rtp:93 -msgid "power" -msgstr "" - -#: plugins/maths.rtp:62 -#: plugins/examples.rtp:93 -msgid "base" -msgstr "" - -#: plugins/maths.rtp:62 -#: plugins/examples.rtp:93 -msgid "exp" -msgstr "" - -#: plugins/maths.rtp:99 -#: plugins/examples.rtp:130 -msgid "floor" -msgstr "" - -#: plugins/maths.rtp:104 -#: plugins/examples.rtp:135 -msgid "ceiling" -msgstr "" - -#: plugins/maths.rtp:109 -#: plugins/examples.rtp:140 -msgid "to degrees" -msgstr "" - -#: plugins/maths.rtp:114 -#: plugins/examples.rtp:145 -msgid "to radians" -msgstr "" - -#: plugins/facebook.rtp:27 -msgid "publish" -msgstr "" - #: plugins/rodi.rtp:172 msgid "blink" msgstr "" @@ -9525,18 +9895,66 @@ msgstr "" msgid "move" msgstr "" -#: plugins/accelerometer.rtp:48 -msgid "motion x" +#: plugins/weather.rtp:68 +#: plugins/weather.rtp:97 +msgid "Days ahead must be in the range of -1 to 5." msgstr "" -#: plugins/accelerometer.rtp:56 -msgid "motion y" +#: plugins/weather.rtp:122 +msgid "forecast" msgstr "" -#: plugins/accelerometer.rtp:64 -msgid "motion z" +#: plugins/weather.rtp:123 +#: plugins/weather.rtp:137 +#: plugins/weather.rtp:150 +msgid "city" +msgstr "" + +#: plugins/weather.rtp:124 +#: plugins/weather.rtp:138 +#: plugins/weather.rtp:151 +msgid "day" +msgstr "" + +#: plugins/weather.rtp:136 +msgid "high" +msgstr "" + +#: plugins/weather.rtp:149 +msgid "low" msgstr "" +#: js/toolbar.js:70 + +#: js/toolbar.js:130 + +#: js/toolbar.js:194 + +#: js/toolbar.js:249 + +#~msgid "Toggle JavaScript Editor" +#~msgstr "" + +#: js/EnsembleBlocks.js:643 + +#~msgid "The Turrle pitch block returns the current pitch number being played by the specified turtle." +#~msgstr "" + +#: js/PitchActions.js:88 + +#~msgid "The Scalar Step Block must be used inside of a Note Block." +#~msgstr "" + +#: js/PitchActions.js:107 + +#~msgid "The Scalar Step Block must be preceded by a Pitch Block." +#~msgstr "" + +#: js/musickeyboard.js:2840 + +#~msgid "New action blocks generated!" +#~msgstr "" + #: js/toolbar.js:110 #: js/toolbar.js:204 @@ -9877,11 +10295,6 @@ msgstr "" #~msgid "The Time block returns the number of seconds that the program has been running." #~msgstr "" -#: js/help.js:95 - -#~msgid "Take a tour" -#~msgstr "" - #: js/GlobalCard.js:48 #~msgid "More Details" @@ -12780,11 +13193,6 @@ msgstr "" #~msgid "The save-stack button saves a stack onto a custom palette. It appears after a \"long press\" on a stack." #~msgstr "" -#: js/musicutils.js:254 - -#~msgid "Custom" -#~msgstr "" - #: js/basicblocks.js:4785 #~msgid "Rhythm" diff --git a/po/sd.po b/po/sd.po index b14f5b7f59..9326e012e3 100644 --- a/po/sd.po +++ b/po/sd.po @@ -2129,276 +2129,131 @@ #: js/planetInterface.js:104 #: js/planetInterface.js:104 #: js/planetInterface.js:104 -msgid "project undefined" -msgstr "" - -#: js/logo.js:61 -msgid "Not a valid pitch name" -msgstr "" - -#: js/logo.js:507 -#: js/ProgramBlocks.js:258 -#: js/ProgramBlocks.js:427 -msgid "You must select a file." -msgstr "" - -#: js/logo.js:1184 -#: js/turtles.js:118 -#: js/turtle-painter.js:1192 -#: js/turtle-painter.js:1193 -#: js/block.js:1463 -#: js/lilypond.js:757 -#: js/lilypond.js:921 -#: js/lilypond.js:959 -#: js/ActionBlocks.js:1223 -#: js/ProgramBlocks.js:1267 -msgid "start" -msgstr "" - -#: js/logo.js:1696 -msgid "Playback is ready." -msgstr "" - -#: js/blocks.js:1011 -#: js/blocks.js:3427 -#: js/blocks.js:3428 -#: js/blocks.js:3653 -#: js/blocks.js:4012 -#: js/blocks.js:4205 -#: js/blocks.js:5343 -#: js/blocks.js:6474 -#: js/palette.js:527 -#: js/palette.js:536 -#: js/palette.js:545 -#: js/palette.js:554 -#: js/palette.js:1131 -#: js/palette.js:1142 -#: js/palette.js:1153 -#: js/palette.js:1164 -#: js/palette.js:1183 -#: js/rubrics.js:529 -#: js/macros.js:170 -#: js/macros.js:266 -#: js/macros.js:267 -#: js/macros.js:276 -#: js/macros.js:828 -#: js/block.js:1449 -#: js/block.js:4164 -#: js/block.js:4182 -#: js/block.js:4193 -#: js/turtledefs.js:128 -#: js/turtledefs.js:230 -#: js/ActionBlocks.js:254 -#: js/ActionBlocks.js:307 -#: js/ActionBlocks.js:617 -#: js/ActionBlocks.js:716 -#: js/ActionBlocks.js:961 -#: js/ActionBlocks.js:1049 -#: js/ActionBlocks.js:1322 -#: js/ActionBlocks.js:1325 -#: js/ActionBlocks.js:1337 -#: js/ActionBlocks.js:1404 -#: js/MeterBlocks.js:715 -#: js/MeterBlocks.js:768 -#: js/MeterBlocks.js:831 -#: js/MeterBlocks.js:892 -#: js/phrasemaker.js:4412 -#: js/musickeyboard.js:2647 -#: js/rhythmruler.js:1928 -#: js/rhythmruler.js:1935 -#: js/rhythmruler.js:2119 -#: js/rhythmruler.js:2126 -msgid "action" -msgstr "" - -#: js/blocks.js:1205 -#: js/blocks.js:3380 -#: js/blocks.js:3770 -#: js/blocks.js:3801 -#: js/blocks.js:3850 -#: js/blocks.js:3885 -#: js/blocks.js:6497 -#: js/palette.js:509 -#: js/palette.js:638 -#: js/palette.js:1107 -#: js/BoxesBlocks.js:282 -#: js/BoxesBlocks.js:285 -#: js/BoxesBlocks.js:405 -#: js/BoxesBlocks.js:594 -msgid "box" -msgstr "" - -#: js/blocks.js:1680 -msgid "Consider breaking this stack into parts." +#: js/SaveInterface.js:59 +#: js/SaveInterface.js:61 +#: js/SaveInterface.js:93 +msgid "Music Blocks Project" msgstr "" -#: js/blocks.js:2408 -#: js/palette.js:653 -#: js/MediaBlocks.js:602 -msgid "open file" +#: js/SaveInterface.js:63 +msgid "This project was created in Music Blocks" msgstr "" -#: js/blocks.js:2415 -#: js/blocks.js:2423 -#: js/activity.js:1875 -msgid "audio file" +#: js/SaveInterface.js:67 +msgid "Music Blocks is a Free/Libre Software application." msgstr "" -#: js/blocks.js:2536 -#: js/blocks.js:3147 -#: js/block.js:3543 -msgid "on2" +#: js/SaveInterface.js:69 +msgid "The source code can be accessed at" msgstr "" -#: js/blocks.js:2538 -#: js/blocks.js:3149 -#: js/block.js:3545 -msgid "off" +#: js/SaveInterface.js:72 +msgid "For more information, please consult the" msgstr "" -#: js/blocks.js:2543 -#: js/blocks.js:3154 -#: js/palette.js:618 -#: js/block.js:3466 -#: js/BooleanBlocks.js:77 -#: js/BooleanBlocks.js:167 -#: js/BooleanBlocks.js:251 -#: js/BooleanBlocks.js:335 -#: js/BooleanBlocks.js:433 -#: js/BooleanBlocks.js:539 -#: js/BooleanBlocks.js:640 -#: js/BooleanBlocks.js:741 -#: js/BooleanBlocks.js:847 -#: js/BooleanBlocks.js:948 -#: js/BooleanBlocks.js:1033 -#: js/SensorsBlocks.js:910 -msgid "true" +#: js/SaveInterface.js:76 +#: js/turtledefs.js:795 +msgid "Music Blocks Guide" msgstr "" -#: js/blocks.js:2545 -#: js/blocks.js:3156 -#: js/block.js:3466 -#: js/BooleanBlocks.js:79 -#: js/BooleanBlocks.js:169 -#: js/BooleanBlocks.js:253 -#: js/BooleanBlocks.js:337 -#: js/BooleanBlocks.js:435 -#: js/BooleanBlocks.js:541 -#: js/BooleanBlocks.js:642 -#: js/BooleanBlocks.js:743 -#: js/BooleanBlocks.js:849 -#: js/BooleanBlocks.js:950 -#: js/SensorsBlocks.js:912 -msgid "false" +#: js/SaveInterface.js:83 +msgid "Alternatively, open the file in Music Blocks using the Load project button." msgstr "" -#: js/blocks.js:3183 -#: js/palette.js:574 -#: js/MediaBlocks.js:892 -#: js/MediaBlocks.js:963 -msgid "text" +#: js/SaveInterface.js:85 +msgid "Project Code" msgstr "" -#: js/blocks.js:3379 -#: js/palette.js:641 -#: js/palette.js:642 -#: js/BoxesBlocks.js:514 -msgid "store in box" +#: js/SaveInterface.js:87 +msgid "This code stores data about the blocks in a project." msgstr "" -#: js/blocks.js:3384 -#: js/blocks.js:3824 -#: js/blocks.js:3859 -#: js/blocks.js:3894 -#: js/blocks.js:5773 -#: js/blocks.js:5794 -#: js/BoxesBlocks.js:772 -msgid "box1" +#: js/SaveInterface.js:89 +msgid "Show" msgstr "" -#: js/blocks.js:3386 -#: js/blocks.js:3826 -#: js/blocks.js:3861 -#: js/blocks.js:3896 -#: js/blocks.js:5775 -#: js/blocks.js:5796 -#: js/BoxesBlocks.js:663 -msgid "box2" +#: js/SaveInterface.js:91 +msgid "Hide" msgstr "" -#: js/blocks.js:4058 -#: js/palette.js:639 -#: js/palette.js:644 -#: js/palette.js:1043 -#: js/BoxesBlocks.js:591 -msgid "store in" +#: js/SaveInterface.js:131 +#: js/SaveInterface.js:204 +#: js/SaveInterface.js:262 +#: js/SaveInterface.js:389 +#: js/SaveInterface.js:417 +#: js/activity.js:4884 +#: planet/js/ProjectStorage.js:27 +#: planet/js/GlobalPlanet.js:467 +#: planet/js/GlobalPlanet.js:469 +#: planet/js/GlobalPlanet.js:495 +#.TRANS: default project title when saving as Lilypond +msgid "My Project" msgstr "" -#: js/blocks.js:4058 -#: js/EnsembleBlocks.js:391 -#: js/EnsembleBlocks.js:402 -#: js/MediaBlocks.js:746 -#: js/ProgramBlocks.js:390 -#: js/ProgramBlocks.js:495 -#: js/ProgramBlocks.js:658 -#: js/BoxesBlocks.js:595 -#: js/PitchBlocks.js:656 -#: js/PitchBlocks.js:932 -#: js/PitchBlocks.js:1827 -#: js/ToneBlocks.js:1025 -#: js/DictBlocks.js:215 -#: js/DictBlocks.js:289 -msgid "name" +#: js/SaveInterface.js:197 +#: planet/js/SaveInterface.js:58 +msgid "No description provided" msgstr "" -#: js/blocks.js:4058 -#: js/RhythmBlocks.js:1130 -#: js/BoxesBlocks.js:75 -#: js/BoxesBlocks.js:595 -#: js/HeapBlocks.js:544 -#: js/DictBlocks.js:289 -#: js/DictBlocks.js:430 -msgid "value" +#: js/SaveInterface.js:332 +msgid "Your recording is in progress." msgstr "" -#: js/blocks.js:4907 -msgid "There is no block selected." +#: js/SaveInterface.js:401 +#.TRANS: File name prompt for save as Lilypond +msgid "File name" msgstr "" -#: js/blocks.js:5002 -#: js/MediaBlocks.js:888 -msgid "show" +#: js/SaveInterface.js:403 +#: planet/js/StringHelper.js:39 +#.TRANS: Project title prompt for save as Lilypond +msgid "Project title" msgstr "" -#: js/blocks.js:5005 -#: js/MediaBlocks.js:803 -#.TRANS: Avatar is the image used to determine the appearance of the mouse. -msgid "avatar" +#: js/SaveInterface.js:405 +#.TRANS: Project title prompt for save as Lilypond +msgid "Project author" msgstr "" -#: js/blocks.js:5008 -#: js/ToneBlocks.js:1010 -#: js/sampler.js:693 -#.TRANS: The sound sample that the user uploads. -msgid "sample" +#: js/SaveInterface.js:407 +#.TRANS: MIDI prompt for save as Lilypond +msgid "Include MIDI output?" msgstr "" -#: js/turtles.js:874 -msgid "Grid" +#: js/SaveInterface.js:409 +#.TRANS: Guitar prompt for save as Lilypond +msgid "Include guitar tablature output?" msgstr "" -#: js/turtles.js:891 -#: js/turtledefs.js:626 -msgid "Clean" +#: js/SaveInterface.js:411 +#.TRANS: Lilypond is a scripting language for generating sheet music +msgid "Save as Lilypond" msgstr "" -#: js/turtles.js:912 -#: js/turtledefs.js:632 -msgid "Collapse" +#: js/SaveInterface.js:426 +#: js/blocks/EnsembleBlocks.js:75 +#: js/blocks/EnsembleBlocks.js:154 +#: js/blocks/EnsembleBlocks.js:216 +#: js/blocks/EnsembleBlocks.js:302 +#: js/blocks/EnsembleBlocks.js:348 +#: js/blocks/EnsembleBlocks.js:389 +#: js/blocks/EnsembleBlocks.js:441 +#: js/blocks/EnsembleBlocks.js:490 +#: js/blocks/EnsembleBlocks.js:536 +#: js/blocks/EnsembleBlocks.js:583 +#: js/blocks/EnsembleBlocks.js:637 +#: js/blocks/EnsembleBlocks.js:753 +#: js/blocks/EnsembleBlocks.js:840 +#: js/blocks/EnsembleBlocks.js:899 +#: js/blocks/EnsembleBlocks.js:942 +#: js/blocks/EnsembleBlocks.js:1212 +#: js/blocks/EnsembleBlocks.js:1280 +#.TRANS: default project author when saving as Lilypond +msgid "Mr. Mouse" msgstr "" -#: js/turtles.js:940 -msgid "Expand" +#: js/SaveInterface.js:573 +msgid "The Lilypond code is copied to clipboard. You can paste it here: " msgstr "" #: js/languagebox.js:198 @@ -2409,6933 +2264,7487 @@ msgstr "" msgid "Music Blocks is already set to this language." msgstr "" -#: js/piemenus.js:200 -#: js/musicutils.js:808 -#: js/musicutils.js:824 -#: js/phrasemaker.js:1672 -#: js/musickeyboard.js:2041 -#: js/sampler.js:544 -#.TRANS: double sharp is a music term related to pitch -msgid "double sharp" +#: js/planetInterface.js:131 +msgid "project undefined" msgstr "" -#: js/piemenus.js:201 -#: js/PitchBlocks.js:1510 -#: js/PitchActions.js:580 -#: js/musicutils.js:806 -#: js/musicutils.js:825 -#: js/phrasemaker.js:1673 -#: js/musickeyboard.js:2042 -#: js/sampler.js:545 -#.TRANS: sharp is a half-step up in pitch -#.TRANS: sharp is a music term related to pitch -msgid "sharp" +#: js/rubrics.js:523 +#: js/turtledefs.js:119 +#: js/turtledefs.js:221 +#: js/blocks/RhythmBlockPaletteBlocks.js:52 +#: js/blocks/RhythmBlockPaletteBlocks.js:234 +#: js/blocks/ProgramBlocks.js:745 +#: js/widgets/rhythmruler.js:2057 +#: js/widgets/rhythmruler.js:2064 +#: js/widgets/rhythmruler.js:2133 +#: js/widgets/rhythmruler.js:2140 +#: js/widgets/rhythmruler.js:2219 +#.TRANS: an arrangement of notes based on duration +msgid "rhythm" msgstr "" -#: js/piemenus.js:202 -#: js/musicutils.js:804 -#: js/musicutils.js:826 -#: js/phrasemaker.js:1674 -#: js/musickeyboard.js:2043 -#: js/sampler.js:546 -#.TRANS: natural is a music term related to pitch -msgid "natural" +#: js/rubrics.js:524 +#: js/turtledefs.js:121 +#: js/turtledefs.js:223 +#: js/block-verbose.js:2622 +#: js/block.js:2550 +#: js/blocks/IntervalsBlocks.js:63 +#: js/blocks/SensorsBlocks.js:178 +#: js/blocks/PitchBlocks.js:1839 +#: js/blocks/PitchBlocks.js:1853 +#: js/widgets/musickeyboard.js:1935 +#: js/widgets/phrasemaker.js:1036 +#.TRANS: pitch number +#.TRANS: pitch number +#.TRANS: we specify pitch in terms of a name and an octave. The name can be CDEFGAB or Do Re Mi Fa Sol La Ti. Octave is a number between 1 and 8. +msgid "pitch" msgstr "" -#: js/piemenus.js:203 -#: js/PitchBlocks.js:1469 -#: js/PitchActions.js:583 -#: js/musicutils.js:802 -#: js/musicutils.js:827 -#: js/phrasemaker.js:1675 -#: js/musickeyboard.js:2044 -#: js/sampler.js:547 -#.TRANS: flat is a half-step down in pitch -#.TRANS: flat is a music term related to pitch -msgid "flat" +#: js/rubrics.js:525 +#: js/turtledefs.js:123 +#: js/turtledefs.js:225 +msgid "tone" msgstr "" -#: js/piemenus.js:204 -#: js/musicutils.js:800 -#: js/musicutils.js:828 -#: js/phrasemaker.js:1676 -#: js/musickeyboard.js:2045 -#: js/sampler.js:548 -#.TRANS: double flat is a music term related to pitch -msgid "double flat" +#: js/rubrics.js:526 +#: js/lilypond.js:605 +#: js/lilypond.js:904 +#: js/lilypond.js:910 +#: js/lilypond.js:948 +msgid "mouse" msgstr "" -#: js/piemenus.js:2861 -#: js/PitchBlocks.js:1357 -#: js/musicutils.js:627 -#.TRANS: unison means the note is the same as the current note -#.TRANS: unison is a music term related to intervals -msgid "unison" +#: js/rubrics.js:527 +#: js/turtledefs.js:132 +#: js/turtledefs.js:234 +#: js/widgets/phrasemaker.js:1040 +msgid "pen" msgstr "" -#: js/piemenus.js:3015 -#: js/piemenus.js:3088 -#: js/musicutils.js:635 -#: js/musicutils.js:810 -#: js/musicutils.js:912 -#.TRANS: major is a music term related to intervals and mode -msgid "major" +#: js/rubrics.js:528 +#: js/turtledefs.js:133 +#: js/turtledefs.js:235 +#: js/blocks/NumberBlocks.js:981 +#: js/blocks/PitchBlocks.js:1717 +#: js/blocks/PitchBlocks.js:1758 +msgid "number" msgstr "" -#: js/piemenus.js:3015 -#: js/piemenus.js:3088 -#: js/musicutils.js:653 -#.TRANS: modal scale for music -msgid "ionian" +#: js/rubrics.js:529 +#: js/turtledefs.js:127 +#: js/turtledefs.js:229 +msgid "flow" msgstr "" -#: js/piemenus.js:3017 -#: js/piemenus.js:3092 -#: js/musicutils.js:633 -#: js/musicutils.js:811 -#: js/musicutils.js:909 -#.TRANS: minor is a music term related to intervals and mode -msgid "minor" +#: js/rubrics.js:530 +#: js/turtledefs.js:128 +#: js/turtledefs.js:230 +#: js/block-verbose.js:1609 +#: js/block-verbose.js:4559 +#: js/block-verbose.js:4577 +#: js/block-verbose.js:4588 +#: js/block.js:1573 +#: js/block.js:4483 +#: js/block.js:4501 +#: js/block.js:4512 +#: js/blocks.js:1018 +#: js/blocks.js:3491 +#: js/blocks.js:3492 +#: js/blocks.js:3717 +#: js/blocks.js:4076 +#: js/blocks.js:4269 +#: js/blocks.js:5432 +#: js/blocks.js:6563 +#: js/macros.js:170 +#: js/macros.js:266 +#: js/macros.js:267 +#: js/macros.js:276 +#: js/macros.js:828 +#: js/palette.js:527 +#: js/palette.js:536 +#: js/palette.js:545 +#: js/palette.js:554 +#: js/palette.js:1129 +#: js/palette.js:1140 +#: js/palette.js:1151 +#: js/palette.js:1162 +#: js/palette.js:1181 +#: js/blocks/ActionBlocks.js:254 +#: js/blocks/ActionBlocks.js:307 +#: js/blocks/ActionBlocks.js:617 +#: js/blocks/ActionBlocks.js:716 +#: js/blocks/ActionBlocks.js:961 +#: js/blocks/ActionBlocks.js:1049 +#: js/blocks/ActionBlocks.js:1322 +#: js/blocks/ActionBlocks.js:1325 +#: js/blocks/ActionBlocks.js:1337 +#: js/blocks/ActionBlocks.js:1404 +#: js/blocks/MeterBlocks.js:715 +#: js/blocks/MeterBlocks.js:768 +#: js/blocks/MeterBlocks.js:831 +#: js/blocks/MeterBlocks.js:892 +#: js/widgets/musickeyboard.js:2986 +#: js/widgets/phrasemaker.js:4913 +#: js/widgets/rhythmruler.js:2319 +#: js/widgets/rhythmruler.js:2326 +#: js/widgets/rhythmruler.js:2511 +#: js/widgets/rhythmruler.js:2518 +msgid "action" msgstr "" -#: js/piemenus.js:3017 -#: js/piemenus.js:3092 -#: js/musicutils.js:663 -#.TRANS: modal scale for music -msgid "aeolian" +#: js/rubrics.js:531 +#: js/turtledefs.js:136 +#: js/turtledefs.js:238 +msgid "sensors" msgstr "" -#: js/piemenus.js:3407 -msgid "Duplicate" +#: js/rubrics.js:532 +#: js/turtledefs.js:135 +#: js/turtledefs.js:237 +#: js/blocks/MediaBlocks.js:930 +msgid "media" msgstr "" -#: js/piemenus.js:3408 -#: js/turtledefs.js:534 -msgid "Extract" +#: js/rubrics.js:533 +msgid "mice" msgstr "" -#: js/piemenus.js:3409 -msgid "Move to trash" +#: js/toolbar.js:48 +#: js/toolbar.js:109 +msgid "About Music Blocks" msgstr "" -#: js/piemenus.js:3410 -#: js/timbre.js:968 -#: js/StringHelper.js:69 -msgid "Close" +#: js/toolbar.js:49 +#: js/toolbar.js:110 +#: js/toolbar.js:175 +#: js/toolbar.js:231 +#: js/turtledefs.js:445 +#: js/turtledefs.js:482 +#: js/activity.js:2660 +#: js/activity.js:2671 +#: js/activity.js:2902 +#: js/widgets/modewidget.js:77 +#: js/widgets/meterwidget.js:185 +#: js/widgets/pitchdrummatrix.js:147 +#: js/widgets/pitchdrummatrix.js:687 +#: js/widgets/pitchdrummatrix.js:689 +#: js/widgets/pitchdrummatrix.js:741 +#: js/widgets/pitchdrummatrix.js:743 +#: js/widgets/pitchdrummatrix.js:758 +#: js/widgets/pitchdrummatrix.js:760 +#: js/widgets/pitchdrummatrix.js:789 +#: js/widgets/pitchdrummatrix.js:791 +#: js/widgets/pitchstaircase.js:121 +#: js/widgets/temperament.js:610 +#: js/widgets/temperament.js:613 +#: js/widgets/temperament.js:673 +#: js/widgets/temperament.js:675 +#: js/widgets/temperament.js:2017 +#: js/widgets/temperament.js:2019 +#: js/widgets/tempo.js:84 +#: js/widgets/tempo.js:86 +#: js/widgets/timbre.js:432 +#: js/widgets/timbre.js:434 +#: js/widgets/timbre.js:465 +#: js/widgets/timbre.js:467 +#: js/widgets/timbre.js:746 +#: js/widgets/aiwidget.js:647 +#: js/widgets/aiwidget.js:654 +#: js/widgets/aiwidget.js:656 +#: js/widgets/arpeggio.js:90 +#: js/widgets/arpeggio.js:547 +#: js/widgets/arpeggio.js:549 +#: js/widgets/arpeggio.js:644 +#: js/widgets/arpeggio.js:646 +#: js/widgets/musickeyboard.js:676 +#: js/widgets/musickeyboard.js:872 +#: js/widgets/musickeyboard.js:874 +#: js/widgets/musickeyboard.js:953 +#: js/widgets/musickeyboard.js:955 +#: js/widgets/phrasemaker.js:513 +#: js/widgets/phrasemaker.js:523 +#: js/widgets/phrasemaker.js:525 +#: js/widgets/phrasemaker.js:4304 +#: js/widgets/phrasemaker.js:4528 +#: js/widgets/phrasemaker.js:4533 +#: js/widgets/phrasemaker.js:4535 +#: js/widgets/phrasemaker.js:4650 +#: js/widgets/rhythmruler.js:637 +#: js/widgets/rhythmruler.js:639 +#: js/widgets/rhythmruler.js:653 +#: js/widgets/rhythmruler.js:655 +#: js/widgets/sampler.js:162 +#: js/widgets/sampler.js:164 +#: js/widgets/sampler.js:363 +msgid "Play" msgstr "" -#: js/piemenus.js:3416 -msgid "Save stack" +#: js/toolbar.js:50 +#: js/toolbar.js:111 +#: js/toolbar.js:176 +#: js/toolbar.js:232 +#: js/turtledefs.js:451 +#: js/turtledefs.js:488 +#: js/activity.js:2679 +#: js/widgets/modewidget.js:99 +#: js/widgets/modewidget.js:101 +#: js/widgets/meterwidget.js:206 +#: js/widgets/meterwidget.js:208 +#: js/widgets/pitchdrummatrix.js:674 +#: js/widgets/pitchdrummatrix.js:676 +#: js/widgets/temperament.js:2002 +#: js/widgets/temperament.js:2004 +#: js/widgets/arpeggio.js:534 +#: js/widgets/arpeggio.js:536 +#: js/widgets/phrasemaker.js:534 +#: js/widgets/phrasemaker.js:536 +msgid "Stop" msgstr "" -#: js/piemenus.js:3420 -#: js/toolbar.js:60 -#: js/toolbar.js:120 -#: js/toolbar.js:185 -#: js/toolbar.js:240 -#: js/turtledefs.js:752 -msgid "Help" +#: js/toolbar.js:51 +#: js/toolbar.js:112 +#: js/toolbar.js:177 +#: js/toolbar.js:233 +#: js/turtledefs.js:498 +msgid "Record" msgstr "" -#: js/piemenus.js:3762 -msgid "You have chosen key " +#: js/toolbar.js:52 +#: js/toolbar.js:53 +msgid "Full screen" msgstr "" -#: js/piemenus.js:3766 -msgid " for your pitch preview." +#: js/toolbar.js:54 +#: js/toolbar.js:115 +#: js/toolbar.js:180 +#: js/toolbar.js:236 +#: js/turtledefs.js:504 +msgid "Toggle Fullscreen" +msgstr "" + +#: js/toolbar.js:55 +#: js/toolbar.js:116 +#: js/toolbar.js:181 +#: js/toolbar.js:237 +#: js/turtledefs.js:510 +#: planet/js/StringHelper.js:33 +msgid "New project" +msgstr "" + +#: js/toolbar.js:56 +#: js/toolbar.js:117 +#: js/toolbar.js:182 +#: js/toolbar.js:238 +#: js/turtledefs.js:516 +msgid "Load project from file" +msgstr "" + +#: js/toolbar.js:57 +#: js/toolbar.js:118 +#: js/toolbar.js:119 +#: js/toolbar.js:183 +#: js/toolbar.js:239 +#: js/turtledefs.js:541 +#: js/turtledefs.js:550 +#: js/turtledefs.js:571 +msgid "Save project" +msgstr "" + +#: js/toolbar.js:58 +#: js/toolbar.js:77 +#: js/toolbar.js:79 +#: js/toolbar.js:138 +#: js/toolbar.js:147 +#: js/toolbar.js:149 +#: js/toolbar.js:184 +#: js/toolbar.js:202 +#: js/toolbar.js:204 +#: js/toolbar.js:240 +#: js/toolbar.js:258 +#: js/toolbar.js:260 +msgid "Save project as HTML" +msgstr "" + +#: js/toolbar.js:59 +#: js/toolbar.js:120 +#: js/toolbar.js:185 +#: js/toolbar.js:241 +msgid "Find and share projects" +msgstr "" + +#: js/toolbar.js:60 +#: js/toolbar.js:121 +#: js/toolbar.js:186 +#: js/toolbar.js:242 +msgid "Offline. Sharing is unavailable" +msgstr "" + +#: js/toolbar.js:61 +#: js/toolbar.js:122 +#: js/toolbar.js:187 +#: js/toolbar.js:243 +msgid "Auxiliary menu" +msgstr "" + +#: js/toolbar.js:62 +#: js/toolbar.js:123 +#: js/toolbar.js:188 +#: js/toolbar.js:244 +#: js/turtledefs.js:752 +#: js/piemenus.js:3423 +msgid "Help" +msgstr "" + +#: js/toolbar.js:63 +#: js/toolbar.js:124 +#: js/toolbar.js:189 +#: js/toolbar.js:245 +msgid "Run slowly" +msgstr "" + +#: js/toolbar.js:64 +#: js/toolbar.js:125 +#: js/toolbar.js:190 +#: js/toolbar.js:246 +#: js/turtledefs.js:682 +msgid "Run step by step" +msgstr "" + +#: js/toolbar.js:65 +#: js/toolbar.js:126 +#: js/toolbar.js:191 +#: js/toolbar.js:247 +#: js/turtledefs.js:689 +msgid "Display statistics" +msgstr "" + +#: js/toolbar.js:66 +#: js/toolbar.js:127 +#: js/toolbar.js:192 +#: js/toolbar.js:248 +msgid "Load plugin" +msgstr "" + +#: js/toolbar.js:67 +#: js/toolbar.js:128 +#: js/toolbar.js:193 +#: js/toolbar.js:249 +#: js/turtledefs.js:696 +msgid "Delete plugin" +msgstr "" + +#: js/toolbar.js:68 +#: js/toolbar.js:129 +#: js/toolbar.js:194 +#: js/toolbar.js:250 +msgid "Enable horizontal scrolling" +msgstr "" + +#: js/toolbar.js:69 +#: js/toolbar.js:130 +#: js/toolbar.js:195 +#: js/toolbar.js:251 +msgid "Disable horizontal scrolling" +msgstr "" + +#: js/toolbar.js:70 +#: js/toolbar.js:131 +#: js/toolbar.js:196 +#: js/toolbar.js:252 +#: planet/js/LocalCard.js:54 +#: planet/js/StringHelper.js:71 +msgid "Merge with current project" +msgstr "" + +#: js/toolbar.js:71 +#: js/toolbar.js:132 +msgid "Set Pitch Preview" +msgstr "" + +#: js/toolbar.js:72 +#: js/toolbar.js:133 +#: js/toolbar.js:197 +#: js/toolbar.js:253 +msgid "JavaScript Editor" +msgstr "" + +#: js/toolbar.js:73 +#: js/toolbar.js:134 +#: js/toolbar.js:198 +#: js/toolbar.js:254 +#: js/turtledefs.js:724 +msgid "Restore" +msgstr "" + +#: js/toolbar.js:74 +#: js/toolbar.js:135 +#: js/toolbar.js:199 +#: js/toolbar.js:255 +msgid "Switch to beginner mode" +msgstr "" + +#: js/toolbar.js:75 +#: js/toolbar.js:136 +#: js/toolbar.js:200 +#: js/toolbar.js:256 +msgid "Switch to advanced mode" +msgstr "" + +#: js/toolbar.js:76 +#: js/toolbar.js:137 +#: js/toolbar.js:146 +#: js/toolbar.js:201 +#: js/toolbar.js:257 +#: js/turtledefs.js:738 +msgid "Select language" +msgstr "" + +#: js/toolbar.js:78 +#: js/toolbar.js:81 +#: js/toolbar.js:140 +#: js/turtledefs.js:579 +msgid "Save mouse artwork as PNG" +msgstr "" + +#: js/toolbar.js:80 +#: js/toolbar.js:139 +#: js/turtledefs.js:575 +msgid "Save mouse artwork as SVG" +msgstr "" + +#: js/toolbar.js:82 +#: js/toolbar.js:141 +#: js/turtledefs.js:583 +msgid "Save music as WAV" +msgstr "" + +#: js/toolbar.js:83 +#: js/toolbar.js:142 +#: js/turtledefs.js:587 +msgid "Save sheet music as ABC" +msgstr "" + +#: js/toolbar.js:84 +#: js/toolbar.js:143 +#: js/turtledefs.js:591 +msgid "Save sheet music as Lilypond" +msgstr "" + +#: js/toolbar.js:85 +msgid "Save sheet music as MusicXML" +msgstr "" + +#: js/toolbar.js:86 +#: js/toolbar.js:144 +#: js/toolbar.js:152 +#: js/toolbar.js:207 +#: js/toolbar.js:263 +#: js/turtledefs.js:562 +#: js/turtledefs.js:595 +msgid "Save block artwork as SVG" +msgstr "" + +#: js/toolbar.js:87 +#: js/toolbar.js:145 +#: js/toolbar.js:153 +#: js/toolbar.js:208 +#: js/toolbar.js:264 +#: js/turtles.js:911 +msgid "Confirm" +msgstr "" + +#: js/toolbar.js:88 +#: js/toolbar.js:154 +#: js/toolbar.js:209 +#: js/toolbar.js:265 +msgid "English (United States)" +msgstr "" + +#: js/toolbar.js:89 +#: js/toolbar.js:155 +#: js/toolbar.js:210 +#: js/toolbar.js:266 +msgid "English (United Kingdom)" +msgstr "" + +#: js/toolbar.js:90 +#: js/toolbar.js:156 +#: js/toolbar.js:211 +#: js/toolbar.js:267 +msgid "日本語" +msgstr "" + +#: js/toolbar.js:91 +msgid "한국어" +msgstr "" + +#: js/toolbar.js:92 +#: js/toolbar.js:158 +#: js/toolbar.js:213 +#: js/toolbar.js:269 +msgid "español" +msgstr "" + +#: js/toolbar.js:93 +#: js/toolbar.js:159 +#: js/toolbar.js:214 +#: js/toolbar.js:270 +msgid "português" +msgstr "" + +#: js/toolbar.js:94 +#: js/toolbar.js:160 +#: js/toolbar.js:215 +#: js/toolbar.js:271 +msgid "にほんご" +msgstr "" + +#: js/toolbar.js:95 +#: js/toolbar.js:161 +#: js/toolbar.js:216 +#: js/toolbar.js:272 +msgid "中文" +msgstr "" + +#: js/toolbar.js:96 +#: js/toolbar.js:162 +#: js/toolbar.js:217 +#: js/toolbar.js:273 +msgid "ภาษาไทย" +msgstr "" + +#: js/toolbar.js:97 +#: js/toolbar.js:163 +#: js/toolbar.js:218 +#: js/toolbar.js:274 +msgid "aymara" +msgstr "" + +#: js/toolbar.js:98 +#: js/toolbar.js:164 +#: js/toolbar.js:219 +#: js/toolbar.js:275 +msgid "quechua" +msgstr "" + +#: js/toolbar.js:99 +#: js/toolbar.js:165 +#: js/toolbar.js:220 +#: js/toolbar.js:276 +msgid "guarani" +msgstr "" + +#: js/toolbar.js:100 +#: js/toolbar.js:166 +#: js/toolbar.js:221 +#: js/toolbar.js:277 +msgid "हिंदी" +msgstr "" + +#: js/toolbar.js:101 +#: js/toolbar.js:168 +#: js/toolbar.js:222 +#: js/toolbar.js:279 +msgid "igbo" +msgstr "" + +#: js/toolbar.js:102 +#: js/toolbar.js:169 +#: js/toolbar.js:223 +#: js/toolbar.js:280 +msgid "عربى" +msgstr "" + +#: js/toolbar.js:103 +#: js/toolbar.js:167 +#: js/toolbar.js:224 +#: js/toolbar.js:278 +msgid "తెలుగు" +msgstr "" + +#: js/toolbar.js:104 +#: js/toolbar.js:170 +#: js/toolbar.js:225 +#: js/toolbar.js:281 +msgid "עִברִית" +msgstr "" + +#: js/toolbar.js:113 +#: js/toolbar.js:114 +#: js/toolbar.js:178 +#: js/toolbar.js:179 +#: js/toolbar.js:234 +#: js/toolbar.js:235 +msgid "Full Screen" +msgstr "" + +#: js/toolbar.js:148 +#: js/toolbar.js:151 +#: js/toolbar.js:203 +#: js/toolbar.js:206 +#: js/toolbar.js:259 +#: js/toolbar.js:262 +#: js/turtledefs.js:558 +msgid "Save turtle artwork as PNG" +msgstr "" + +#: js/toolbar.js:150 +#: js/toolbar.js:205 +#: js/toolbar.js:261 +#: js/turtledefs.js:554 +msgid "Save turtle artwork as SVG" +msgstr "" + +#: js/toolbar.js:157 +#: js/toolbar.js:212 +#: js/toolbar.js:268 +msgid "한국인" +msgstr "" + +#: js/toolbar.js:174 +#: js/toolbar.js:230 +msgid "About Turtle Blocks" +msgstr "" + +#: js/toolbar.js:446 +#: js/toolbar.js:457 +#: js/toolbar.js:497 +msgid "Turtle Wrap Off" +msgstr "" + +#: js/toolbar.js:466 +#: js/toolbar.js:506 +msgid "Turtle Wrap On" +msgstr "" + +#: js/turtle-painter.js:1192 +#: js/turtle-painter.js:1193 +#: js/turtles.js:118 +#: js/block-verbose.js:1623 +#: js/block.js:1587 +#: js/lilypond.js:749 +#: js/lilypond.js:913 +#: js/lilypond.js:951 +#: js/logo.js:1184 +#: js/blocks/ActionBlocks.js:1223 +#: js/blocks/ProgramBlocks.js:1267 +msgid "start" +msgstr "" + +#: js/turtledefs.js:40 +#.TRANS: put the URL to the guide here, e.g., https://github.com/sugarlabs/turtleblocksjs/tree/master/guide/README.md +msgid "guide url" +msgstr "" + +#: js/turtledefs.js:85 +#: js/turtledefs.js:437 +msgid "Turtle Blocks is a Logo-inspired turtle that draws colorful pictures with snap-together visual-programming blocks." +msgstr "" + +#: js/turtledefs.js:118 +#: js/turtledefs.js:220 +msgid "search" +msgstr "" + +#: js/turtledefs.js:120 +#: js/turtledefs.js:222 +#: js/blocks/MeterBlocks.js:1343 +#: js/blocks/WidgetBlocks.js:522 +#.TRANS: musical meter (time signature), e.g., 4:4 +msgid "meter" +msgstr "" + +#: js/turtledefs.js:122 +#: js/turtledefs.js:224 +msgid "intervals" +msgstr "" + +#: js/turtledefs.js:124 +#: js/turtledefs.js:226 +msgid "ornament" +msgstr "" + +#: js/turtledefs.js:125 +#: js/turtledefs.js:227 +#: js/blocks/VolumeBlocks.js:362 +#: js/blocks/VolumeBlocks.js:502 +#: js/blocks/VolumeBlocks.js:545 +msgid "volume" +msgstr "" + +#: js/turtledefs.js:126 +#: js/turtledefs.js:228 +#: js/block-verbose.js:1700 +#: js/block-verbose.js:2626 +#: js/block.js:1664 +#: js/block.js:2554 +#: js/lilypond.js:732 +#: js/lilypond.js:897 +#: js/lilypond.js:941 +#: js/palette.js:577 +#: js/blocks/RhythmBlocks.js:766 +#: js/blocks/DrumBlocks.js:477 +#: js/blocks/VolumeBlocks.js:502 +#: js/widgets/phrasemaker.js:1038 +msgid "drum" +msgstr "" + +#: js/turtledefs.js:129 +#: js/turtledefs.js:231 +msgid "boxes" +msgstr "" + +#: js/turtledefs.js:130 +#: js/turtledefs.js:232 +msgid "widgets" +msgstr "" + +#: js/turtledefs.js:131 +#: js/turtledefs.js:233 +#: js/widgets/phrasemaker.js:1039 +msgid "graphics" +msgstr "" + +#: js/turtledefs.js:134 +#: js/turtledefs.js:236 +msgid "boolean" +msgstr "" + +#: js/turtledefs.js:137 +#: js/turtledefs.js:239 +#: js/blocks/HeapBlocks.js:59 +#: js/widgets/status.js:147 +msgid "heap" +msgstr "" + +#: js/turtledefs.js:138 +#: js/turtledefs.js:240 +#: js/blocks/DictBlocks.js:142 +#: js/blocks/ProgramBlocks.js:495 +msgid "dictionary" +msgstr "" + +#: js/turtledefs.js:139 +#: js/turtledefs.js:241 +msgid "ensemble" +msgstr "" + +#: js/turtledefs.js:140 +#: js/turtledefs.js:242 +msgid "extras" +msgstr "" + +#: js/turtledefs.js:142 +#: js/turtledefs.js:244 +#.TRANS: program as in computer program +#.TRANS: program as in computer program +msgid "program" +msgstr "" + +#: js/turtledefs.js:143 +#: js/turtledefs.js:245 +msgid "my blocks" +msgstr "" + +#: js/turtledefs.js:185 +#: js/turtledefs.js:281 +msgid "artwork" +msgstr "" + +#: js/turtledefs.js:185 +#: js/turtledefs.js:281 +msgid "logic" +msgstr "" + +#: js/turtledefs.js:185 +#: js/turtledefs.js:281 +msgid "music" +msgstr "" + +#: js/turtledefs.js:187 +#: js/turtledefs.js:463 +msgid "Music Blocks is a collection of tools for exploring fundamental musical concepts in a fun way." +msgstr "" + +#: js/turtledefs.js:436 +msgid "Welcome to Turtle Blocks" +msgstr "" + +#: js/turtledefs.js:438 +#: js/turtledefs.js:465 +#: js/turtledefs.js:774 +#: js/turtledefs.js:805 +msgid "The current version is" +msgstr "" + +#: js/turtledefs.js:446 +#: js/turtledefs.js:483 +msgid "Click the run button to run the project in fast mode." +msgstr "" + +#: js/turtledefs.js:452 +msgid "Stop the turtle." +msgstr "" + +#: js/turtledefs.js:454 +#: js/turtledefs.js:491 +msgid "You can also type Alt-S to stop." +msgstr "" + +#: js/turtledefs.js:462 +#: js/widgets/help.js:333 +msgid "Welcome to Music Blocks" +msgstr "" + +#: js/turtledefs.js:472 +#: js/widgets/help.js:334 +msgid "Meet Mr. Mouse!" +msgstr "" + +#: js/turtledefs.js:473 +msgid "Mr Mouse is our Music Blocks conductor." +msgstr "" + +#: js/turtledefs.js:475 +msgid "Mr Mouse encourages you to explore Music Blocks." +msgstr "" + +#: js/turtledefs.js:477 +msgid "Let us start our tour!" +msgstr "" + +#: js/turtledefs.js:489 +msgid "Stop the music (and the mice)." +msgstr "" + +#: js/turtledefs.js:499 +msgid "Record your project as video." +msgstr "" + +#: js/turtledefs.js:505 +msgid "Toggle Fullscreen mode." +msgstr "" + +#: js/turtledefs.js:511 +msgid "Initialize a new project." +msgstr "" + +#: js/turtledefs.js:517 +msgid "You can also load projects from the file system." +msgstr "" + +#: js/turtledefs.js:522 +#: planet/js/StringHelper.js:46 +msgid "Delete" +msgstr "" + +#: js/turtledefs.js:523 +msgid "To delete a block, just right-click on it, then you will be able to see the delete option" +msgstr "" + +#: js/turtledefs.js:528 +#: js/activity.js:2649 +#: planet/js/LocalCard.js:31 +msgid "Copy" +msgstr "" + +#: js/turtledefs.js:529 +msgid "To copy a block, just right-click on it, then you will be able to see the copy option" +msgstr "" + +#: js/turtledefs.js:534 +#: js/piemenus.js:3411 +msgid "Extract" +msgstr "" + +#: js/turtledefs.js:535 +msgid "To extract a block, just right-click on it, then you will be able to see the extract option" +msgstr "" + +#: js/turtledefs.js:542 +#: js/turtledefs.js:552 +#: js/turtledefs.js:573 +msgid "Save your project to a file." +msgstr "" + +#: js/turtledefs.js:549 +#: js/turtledefs.js:570 +msgid "save" +msgstr "" + +#: js/turtledefs.js:556 +#: js/turtledefs.js:577 +msgid "Save graphics from your project to as SVG." +msgstr "" + +#: js/turtledefs.js:560 +#: js/turtledefs.js:581 +msgid "Save graphics from your project as PNG." +msgstr "" + +#: js/turtledefs.js:564 +#: js/turtledefs.js:597 +msgid "Save block artwork as an SVG file." +msgstr "" + +#: js/turtledefs.js:585 +msgid "Save audio from your project as WAV." +msgstr "" + +#: js/turtledefs.js:589 +msgid "Save your project to as an ABC file." +msgstr "" + +#: js/turtledefs.js:593 +msgid "Save your project to as a Lilypond file." +msgstr "" + +#: js/turtledefs.js:604 +msgid "Load samples from server" +msgstr "" + +#: js/turtledefs.js:605 +msgid "This button opens a viewer for loading example projects." +msgstr "" + +#: js/turtledefs.js:611 +msgid "Palette buttons" +msgstr "" + +#: js/turtledefs.js:612 +msgid "This toolbar contains the palette buttons including Rhythm Pitch Tone Action and more." +msgstr "" + +#: js/turtledefs.js:614 +msgid "Click to show the palettes of blocks and drag blocks from the palettes onto the canvas to use them." +msgstr "" + +#: js/turtledefs.js:620 +msgid "Cartesian/Polar" +msgstr "" + +#: js/turtledefs.js:621 +msgid "Show or hide a coordinate grid." +msgstr "" + +#: js/turtledefs.js:626 +#: js/turtles.js:902 +msgid "Clean" +msgstr "" + +#: js/turtledefs.js:627 +msgid "Clear the screen and return the mice to their initial positions." +msgstr "" + +#: js/turtledefs.js:632 +#: js/turtles.js:955 +msgid "Collapse" +msgstr "" + +#: js/turtledefs.js:633 +msgid "Collapse the graphics window." msgstr "" -#: js/palette.js:571 -msgid "grid" +#: js/turtledefs.js:638 +#: js/activity.js:5684 +msgid "Home" msgstr "" -#: js/palette.js:577 -#: js/block.js:1540 -#: js/block.js:2343 -#: js/turtledefs.js:126 -#: js/turtledefs.js:228 -#: js/lilypond.js:740 -#: js/lilypond.js:905 -#: js/lilypond.js:949 -#: js/DrumBlocks.js:486 -#: js/RhythmBlocks.js:766 -#: js/VolumeBlocks.js:502 -#: js/phrasemaker.js:823 -msgid "drum" +#: js/turtledefs.js:639 +msgid "Return all blocks to the center of the screen." msgstr "" -#: js/palette.js:580 -msgid "effect" +#: js/turtledefs.js:644 +msgid "Show/hide blocks" msgstr "" -#: js/palette.js:586 -msgid "sargam" +#: js/turtledefs.js:645 +msgid "Hide or show the blocks and the palettes." msgstr "" -#: js/palette.js:589 -#: js/activity.js:1833 -#: js/RhythmBlocks.js:923 -#: js/PitchBlocks.js:442 -#: js/PitchBlocks.js:1748 -#.TRANS: a numeric mapping of the notes in an octave based on the musical mode -msgid "scale degree" +#: js/turtledefs.js:650 +msgid "Expand/collapse collapsable blocks" msgstr "" -#: js/palette.js:592 -#: js/activity.js:1860 -msgid "mode name" +#: js/turtledefs.js:651 +msgid "Expand or collapse start and action stacks." msgstr "" -#: js/palette.js:595 -#: js/activity.js:1839 -msgid "invert mode" +#: js/turtledefs.js:658 +#: js/activity.js:5704 +msgid "Decrease block size" msgstr "" -#: js/palette.js:598 -#: js/activity.js:1836 -msgid "voice name" +#: js/turtledefs.js:659 +msgid "Decrease the size of the blocks." msgstr "" -#: js/palette.js:601 -#: js/PitchBlocks.js:1181 -msgid "custom pitch" +#: js/turtledefs.js:664 +#: js/activity.js:5710 +msgid "Increase block size" msgstr "" -#: js/palette.js:605 -#: js/block.js:1456 -#: js/block.js:1575 -#: js/WidgetBlocks.js:218 -#: js/IntervalsBlocks.js:63 -msgid "temperament" +#: js/turtledefs.js:665 +msgid "Increase the size of the blocks." msgstr "" -#: js/palette.js:609 -msgid "accidental" +#: js/turtledefs.js:670 +msgid "Expand/collapse option toolbar" msgstr "" -#: js/palette.js:615 -#: js/activity.js:1866 -msgid "interval name" +#: js/turtledefs.js:671 +msgid "Click this button to expand or collapse the auxillary toolbar." msgstr "" -#: js/palette.js:633 -#: js/PitchBlocks.js:405 -msgid "pitch converter" +#: js/turtledefs.js:676 +msgid "Run slow" msgstr "" -#: js/rubrics.js:522 -#: js/turtledefs.js:119 -#: js/turtledefs.js:221 -#: js/RhythmBlockPaletteBlocks.js:52 -#: js/RhythmBlockPaletteBlocks.js:233 -#: js/ProgramBlocks.js:745 -#: js/rhythmruler.js:1670 -#: js/rhythmruler.js:1677 -#: js/rhythmruler.js:1745 -#: js/rhythmruler.js:1752 -#: js/rhythmruler.js:1830 -#.TRANS: an arrangement of notes based on duration -msgid "rhythm" +#: js/turtledefs.js:677 +msgid "Click to run the project in slow mode." msgstr "" -#: js/rubrics.js:523 -#: js/block.js:2339 -#: js/turtledefs.js:121 -#: js/turtledefs.js:223 -#: js/IntervalsBlocks.js:63 -#: js/PitchBlocks.js:1801 -#: js/PitchBlocks.js:1814 -#: js/SensorsBlocks.js:178 -#: js/phrasemaker.js:821 -#: js/musickeyboard.js:1653 -#.TRANS: pitch number -#.TRANS: we specify pitch in terms of a name and an octave. The name can be CDEFGAB or Do Re Mi Fa Sol La Ti. Octave is a number between 1 and 8. -msgid "pitch" +#: js/turtledefs.js:683 +msgid "Click to run the project step by step." msgstr "" -#: js/rubrics.js:524 -#: js/turtledefs.js:123 -#: js/turtledefs.js:225 -msgid "tone" +#: js/turtledefs.js:690 +msgid "Display statistics about your Music project." msgstr "" -#: js/rubrics.js:525 -#: js/lilypond.js:613 -#: js/lilypond.js:912 -#: js/lilypond.js:918 -#: js/lilypond.js:956 -msgid "mouse" +#: js/turtledefs.js:697 +msgid "Delete a selected plugin." msgstr "" -#: js/rubrics.js:526 -#: js/turtledefs.js:132 -#: js/turtledefs.js:234 -#: js/phrasemaker.js:825 -msgid "pen" +#: js/turtledefs.js:704 +msgid "Enable scrolling" msgstr "" -#: js/rubrics.js:527 -#: js/turtledefs.js:133 -#: js/turtledefs.js:235 -#: js/NumberBlocks.js:905 -#: js/PitchBlocks.js:1679 -#: js/PitchBlocks.js:1720 -msgid "number" +#: js/turtledefs.js:705 +msgid "You can scroll the blocks on the canvas." msgstr "" -#: js/rubrics.js:528 -#: js/turtledefs.js:127 -#: js/turtledefs.js:229 -msgid "flow" +#: js/turtledefs.js:714 +msgid "Wrap Turtle" msgstr "" -#: js/rubrics.js:530 -#: js/turtledefs.js:136 -#: js/turtledefs.js:238 -msgid "sensors" +#: js/turtledefs.js:715 +msgid "Turn Turtle wrapping On or Off." msgstr "" -#: js/rubrics.js:531 -#: js/turtledefs.js:135 -#: js/turtledefs.js:237 -#: js/MediaBlocks.js:930 -msgid "media" +#: js/turtledefs.js:725 +msgid "Restore blocks from the trash." msgstr "" -#: js/rubrics.js:532 -msgid "mice" +#: js/turtledefs.js:732 +msgid "Switch mode" msgstr "" -#: js/macros.js:711 -#: js/musicutils.js:783 -#: js/synthutils.js:181 -#.TRANS: animal sound effect -msgid "duck" +#: js/turtledefs.js:733 +msgid "Switch between beginner and advance modes." msgstr "" -#: js/toolbar.js:46 -#: js/toolbar.js:107 -msgid "About Music Blocks" +#: js/turtledefs.js:739 +msgid "Select your language preference." msgstr "" -#: js/toolbar.js:47 -#: js/toolbar.js:108 -#: js/toolbar.js:172 -#: js/toolbar.js:228 -#: js/turtledefs.js:445 -#: js/turtledefs.js:482 -#: js/activity.js:2281 -#: js/activity.js:2289 -#: js/activity.js:2520 -#: js/modewidget.js:77 -#: js/pitchstaircase.js:121 -#: js/phrasemaker.js:302 -#: js/phrasemaker.js:312 -#: js/phrasemaker.js:314 -#: js/phrasemaker.js:3901 -#: js/phrasemaker.js:4061 -#: js/phrasemaker.js:4066 -#: js/phrasemaker.js:4068 -#: js/phrasemaker.js:4183 -#: js/pitchdrummatrix.js:81 -#: js/pitchdrummatrix.js:574 -#: js/pitchdrummatrix.js:576 -#: js/pitchdrummatrix.js:628 -#: js/pitchdrummatrix.js:630 -#: js/pitchdrummatrix.js:645 -#: js/pitchdrummatrix.js:647 -#: js/pitchdrummatrix.js:674 -#: js/pitchdrummatrix.js:676 -#: js/temperament.js:477 -#: js/temperament.js:480 -#: js/temperament.js:540 -#: js/temperament.js:542 -#: js/temperament.js:1835 -#: js/temperament.js:1837 -#: js/temperament.js:1986 -#: js/temperament.js:1988 -#: js/musickeyboard.js:522 -#: js/musickeyboard.js:682 -#: js/musickeyboard.js:684 -#: js/musickeyboard.js:756 -#: js/musickeyboard.js:758 -#: js/rhythmruler.js:298 -#: js/rhythmruler.js:300 -#: js/rhythmruler.js:314 -#: js/rhythmruler.js:316 -#: js/sampler.js:96 -#: js/sampler.js:98 -#: js/sampler.js:229 -#: js/sampler.js:235 -#: js/sampler.js:237 -#: js/tempo.js:84 -#: js/tempo.js:86 -#: js/timbre.js:432 -#: js/timbre.js:434 -#: js/timbre.js:465 -#: js/timbre.js:467 -#: js/timbre.js:746 -#: js/meterwidget.js:80 -#: js/arpeggio.js:90 -#: js/arpeggio.js:547 -#: js/arpeggio.js:549 -#: js/arpeggio.js:644 -#: js/arpeggio.js:646 -msgid "Play" +#: js/turtledefs.js:745 +msgid "Keyboard shortcuts" msgstr "" -#: js/toolbar.js:48 -#: js/toolbar.js:109 -#: js/toolbar.js:173 -#: js/toolbar.js:229 -#: js/turtledefs.js:451 -#: js/turtledefs.js:488 -#: js/activity.js:2297 -#: js/modewidget.js:99 -#: js/modewidget.js:101 -#: js/phrasemaker.js:323 -#: js/phrasemaker.js:325 -#: js/pitchdrummatrix.js:561 -#: js/pitchdrummatrix.js:563 -#: js/temperament.js:1820 -#: js/temperament.js:1822 -#: js/meterwidget.js:101 -#: js/meterwidget.js:103 -#: js/arpeggio.js:534 -#: js/arpeggio.js:536 -msgid "Stop" +#: js/turtledefs.js:746 +msgid "You can type d to create a do block and r to create a re block etc." msgstr "" -#: js/toolbar.js:49 -#: js/toolbar.js:110 -#: js/toolbar.js:174 -#: js/toolbar.js:230 -#: js/turtledefs.js:498 -msgid "Record" +#: js/turtledefs.js:753 +msgid "Show these messages." msgstr "" -#: js/toolbar.js:50 -#: js/toolbar.js:51 -msgid "Full screen" +#: js/turtledefs.js:759 +#: js/turtledefs.js:790 +#: js/widgets/help.js:335 +msgid "Guide" msgstr "" -#: js/toolbar.js:52 -#: js/toolbar.js:112 -#: js/toolbar.js:177 -#: js/toolbar.js:232 -#: js/turtledefs.js:504 -msgid "Toggle Fullscreen" +#: js/turtledefs.js:760 +msgid "A detailed guide to Turtle Blocks is available." msgstr "" -#: js/toolbar.js:53 -#: js/toolbar.js:113 -#: js/toolbar.js:178 -#: js/toolbar.js:233 -#: js/turtledefs.js:510 -#: js/StringHelper.js:33 -msgid "New project" +#: js/turtledefs.js:764 +msgid "Turtle Blocks Guide" msgstr "" -#: js/toolbar.js:54 -#: js/toolbar.js:114 -#: js/toolbar.js:179 -#: js/toolbar.js:234 -#: js/turtledefs.js:516 -msgid "Load project from file" +#: js/turtledefs.js:767 +#: js/turtledefs.js:798 +#: js/widgets/help.js:336 +msgid "About" msgstr "" -#: js/toolbar.js:55 -#: js/toolbar.js:115 -#: js/toolbar.js:116 -#: js/toolbar.js:180 -#: js/toolbar.js:235 -#: js/turtledefs.js:541 -#: js/turtledefs.js:550 -#: js/turtledefs.js:571 -msgid "Save project" +#: js/turtledefs.js:768 +msgid "Turtle Blocks is an open source collection of tools for exploring musical concepts." msgstr "" -#: js/toolbar.js:56 -#: js/toolbar.js:75 -#: js/toolbar.js:77 -#: js/toolbar.js:135 -#: js/toolbar.js:144 -#: js/toolbar.js:146 -#: js/toolbar.js:181 -#: js/toolbar.js:199 -#: js/toolbar.js:201 -#: js/toolbar.js:236 -#: js/toolbar.js:254 -#: js/toolbar.js:256 -msgid "Save project as HTML" +#: js/turtledefs.js:770 +msgid "A full list of contributors can be found in the Turtle Blocks GitHub repository." +msgstr "" + +#: js/turtledefs.js:772 +msgid "Turtle Blocks is licensed under the AGPL." +msgstr "" + +#: js/turtledefs.js:780 +msgid "Turtle Blocks GitHub repository" +msgstr "" + +#: js/turtledefs.js:783 +#: js/turtledefs.js:814 +#: js/widgets/help.js:337 +#: js/widgets/help.js:359 +msgid "Congratulations." +msgstr "" + +#: js/turtledefs.js:784 +msgid "You have finished the tour. Please enjoy Turtle Blocks!" +msgstr "" + +#: js/turtledefs.js:791 +msgid "A detailed guide to Music Blocks is available." +msgstr "" + +#: js/turtledefs.js:799 +msgid "Music Blocks is an open source collection of tools for exploring musical concepts." +msgstr "" + +#: js/turtledefs.js:801 +msgid "A full list of contributors can be found in the Music Blocks GitHub repository." +msgstr "" + +#: js/turtledefs.js:803 +msgid "Music Blocks is licensed under the AGPL." +msgstr "" + +#: js/turtledefs.js:811 +msgid "Music Blocks GitHub repository" +msgstr "" + +#: js/turtledefs.js:815 +msgid "You have finished the tour. Please enjoy Music Blocks!" +msgstr "" + +#: js/turtles.js:882 +msgid "Grid" +msgstr "" + +#: js/turtles.js:1024 +msgid "Expand" +msgstr "" + +#: js/block-verbose.js:1616 +#: js/block-verbose.js:1735 +#: js/block.js:1580 +#: js/block.js:1699 +#: js/palette.js:605 +#: js/blocks/IntervalsBlocks.js:63 +#: js/blocks/WidgetBlocks.js:259 +msgid "temperament" +msgstr "" + +#: js/block-verbose.js:1630 +#: js/block.js:1594 +msgid "matrix" msgstr "" -#: js/toolbar.js:57 -#: js/toolbar.js:117 -#: js/toolbar.js:182 -#: js/toolbar.js:237 -msgid "Find and share projects" +#: js/block-verbose.js:1637 +#: js/block.js:1601 +#: js/blocks/WidgetBlocks.js:1509 +#: plugins/rodi.rtp:324 +msgid "status" msgstr "" -#: js/toolbar.js:58 -#: js/toolbar.js:118 -#: js/toolbar.js:183 -#: js/toolbar.js:238 -msgid "Offline. Sharing is unavailable" +#: js/block-verbose.js:1644 +#: js/block.js:1608 +msgid "drum mapper" msgstr "" -#: js/toolbar.js:59 -#: js/toolbar.js:119 -#: js/toolbar.js:184 -#: js/toolbar.js:239 -msgid "Auxiliary menu" +#: js/block-verbose.js:1651 +#: js/block.js:1615 +msgid "ruler" msgstr "" -#: js/toolbar.js:61 -#: js/toolbar.js:121 -#: js/toolbar.js:186 -#: js/toolbar.js:241 -msgid "Run slowly" +#: js/block-verbose.js:1658 +#: js/block.js:1622 +#: js/blocks/WidgetBlocks.js:397 +#.TRANS: timbre is the character or quality of a musical sound +msgid "timbre" msgstr "" -#: js/toolbar.js:62 -#: js/toolbar.js:122 -#: js/toolbar.js:187 -#: js/toolbar.js:242 -#: js/turtledefs.js:682 -msgid "Run step by step" +#: js/block-verbose.js:1665 +#: js/block.js:1629 +msgid "stair" msgstr "" -#: js/toolbar.js:63 -#: js/toolbar.js:123 -#: js/toolbar.js:188 -#: js/toolbar.js:243 -#: js/turtledefs.js:689 -msgid "Display statistics" +#: js/block-verbose.js:1672 +#: js/block.js:1636 +#: js/blocks/WidgetBlocks.js:707 +#.TRANS: the speed at music is should be played. +msgid "tempo" msgstr "" -#: js/toolbar.js:64 -#: js/toolbar.js:124 -#: js/toolbar.js:189 -#: js/toolbar.js:244 -msgid "Load plugin" +#: js/block-verbose.js:1679 +#: js/block-verbose.js:1742 +#: js/block.js:1643 +#: js/block.js:1706 +#: js/blocks/IntervalsBlocks.js:1464 +#.TRANS: mode, e.g., Major in C Major +msgid "mode" msgstr "" -#: js/toolbar.js:65 -#: js/toolbar.js:125 -#: js/toolbar.js:190 -#: js/toolbar.js:245 -#: js/turtledefs.js:696 -msgid "Delete plugin" +#: js/block-verbose.js:1686 +#: js/block.js:1650 +msgid "slider" msgstr "" -#: js/toolbar.js:66 -#: js/toolbar.js:126 -#: js/toolbar.js:191 -#: js/toolbar.js:246 -msgid "Enable horizontal scrolling" +#: js/block-verbose.js:1693 +#: js/block.js:1657 +#: js/blocks/SensorsBlocks.js:1001 +msgid "keyboard" msgstr "" -#: js/toolbar.js:67 -#: js/toolbar.js:127 -#: js/toolbar.js:192 -#: js/toolbar.js:247 -msgid "Disable horizontal scrolling" +#: js/block-verbose.js:1707 +#: js/block.js:1671 +#: js/blocks/WidgetBlocks.js:1190 +#: js/blocks/WidgetBlocks.js:1228 +#.TRANS: widget for subdividing a measure into distinct rhythmic elements +msgid "rhythm maker" msgstr "" -#: js/toolbar.js:68 -#: js/toolbar.js:128 -#: js/toolbar.js:193 -#: js/toolbar.js:248 -#: js/LocalCard.js:54 -#: js/StringHelper.js:71 -msgid "Merge with current project" +#: js/block-verbose.js:1714 +#: js/block-verbose.js:2457 +#: js/block-verbose.js:2514 +#: js/block.js:1678 +#: js/block.js:2385 +#: js/block.js:2442 +#: js/blocks/MeterBlocks.js:1367 +#: js/blocks/OrnamentBlocks.js:220 +#: js/blocks/OrnamentBlocks.js:312 +#: js/blocks/RhythmBlocks.js:33 +#: js/blocks/RhythmBlocks.js:356 +#: js/blocks/RhythmBlocks.js:766 +#: js/blocks/RhythmBlocks.js:806 +#: js/blocks/RhythmBlockPaletteBlocks.js:70 +#: js/blocks/RhythmBlockPaletteBlocks.js:252 +#: js/blocks/RhythmBlockPaletteBlocks.js:485 +#: js/blocks/RhythmBlockPaletteBlocks.js:554 +#: js/blocks/RhythmBlockPaletteBlocks.js:605 +#: js/blocks/RhythmBlockPaletteBlocks.js:875 +#: js/turtleactions/DictActions.js:85 +#: js/widgets/phrasemaker.js:942 +#: js/widgets/phrasemaker.js:2656 +#: js/widgets/phrasemaker.js:2699 +#: js/widgets/phrasemaker.js:2810 +#.TRANS: the value (e.g., 1/4 note) of the note being played. +msgid "note value" msgstr "" -#: js/toolbar.js:69 -#: js/toolbar.js:129 -msgid "Set Pitch Preview" +#: js/block-verbose.js:1721 +#: js/block-verbose.js:2382 +#: js/block-verbose.js:2405 +#: js/block.js:1685 +#: js/block.js:2310 +#: js/block.js:2333 +#: js/blocks/IntervalsBlocks.js:1071 +#: js/blocks/OrnamentBlocks.js:312 +#.TRANS: calculate a relative step between notes based on semi-tones +msgid "scalar interval" msgstr "" -#: js/toolbar.js:70 -#: js/toolbar.js:130 -#: js/toolbar.js:194 -#: js/toolbar.js:249 -msgid "Toggle JavaScript Editor" +#: js/block-verbose.js:1728 +#: js/block.js:1692 +#: js/blocks/RhythmBlocks.js:148 +msgid "milliseconds" msgstr "" -#: js/toolbar.js:71 -#: js/toolbar.js:131 -#: js/toolbar.js:195 -#: js/toolbar.js:250 -#: js/turtledefs.js:724 -msgid "Restore" +#: js/block-verbose.js:2455 +#: js/block-verbose.js:2459 +#: js/block-verbose.js:2512 +#: js/block-verbose.js:2628 +#: js/block.js:2383 +#: js/block.js:2387 +#: js/block.js:2440 +#: js/block.js:2556 +#: js/blocks/RhythmBlocks.js:712 +#: js/blocks/ProgramBlocks.js:1273 +#: js/widgets/rhythmruler.js:1183 +#: js/widgets/rhythmruler.js:1329 +msgid "silence" msgstr "" -#: js/toolbar.js:72 -#: js/toolbar.js:132 -#: js/toolbar.js:196 -#: js/toolbar.js:251 -msgid "Switch to beginner mode" +#: js/block-verbose.js:2548 +#: js/block-verbose.js:3492 +#: js/block-verbose.js:3509 +#: js/activity.js:2718 +#: js/activity.js:2769 +#: js/block.js:2476 +#: js/block.js:3416 +#: js/block.js:3433 +#: js/utils/musicutils.js:3780 +#: js/utils/musicutils.js:5273 +#.TRANS: the note names must be separated by single spaces +#.TRANS: the note names must be separated by single spaces +#.TRANS: the note names must be separated by single spaces +msgid "ti la sol fa mi re do" msgstr "" -#: js/toolbar.js:73 -#: js/toolbar.js:133 -#: js/toolbar.js:197 -#: js/toolbar.js:252 -msgid "Switch to advanced mode" +#: js/block-verbose.js:2616 +#: js/block.js:2544 +#.TRANS: scalar step +#.TRANS: scalar step +msgid "down" msgstr "" -#: js/toolbar.js:74 -#: js/toolbar.js:134 -#: js/toolbar.js:143 -#: js/toolbar.js:198 -#: js/toolbar.js:253 -#: js/turtledefs.js:738 -msgid "Select language" +#: js/block-verbose.js:2617 +#: js/block.js:2545 +msgid "up" msgstr "" -#: js/toolbar.js:76 -#: js/toolbar.js:79 -#: js/toolbar.js:137 -#: js/turtledefs.js:579 -msgid "Save mouse artwork as PNG" +#: js/block-verbose.js:3026 +#: js/block.js:2950 +msgid "Silence block cannot be removed." msgstr "" -#: js/toolbar.js:78 -#: js/toolbar.js:136 -#: js/turtledefs.js:575 -msgid "Save mouse artwork as SVG" +#: js/block-verbose.js:3824 +#: js/block.js:3748 +#: js/blocks.js:2607 +#: js/blocks.js:3218 +#: js/palette.js:618 +#: js/blocks/BooleanBlocks.js:77 +#: js/blocks/BooleanBlocks.js:167 +#: js/blocks/BooleanBlocks.js:251 +#: js/blocks/BooleanBlocks.js:335 +#: js/blocks/BooleanBlocks.js:433 +#: js/blocks/BooleanBlocks.js:539 +#: js/blocks/BooleanBlocks.js:640 +#: js/blocks/BooleanBlocks.js:741 +#: js/blocks/BooleanBlocks.js:847 +#: js/blocks/BooleanBlocks.js:948 +#: js/blocks/BooleanBlocks.js:1033 +#: js/blocks/SensorsBlocks.js:910 +msgid "true" msgstr "" -#: js/toolbar.js:80 -#: js/toolbar.js:138 -#: js/turtledefs.js:583 -msgid "Save music as WAV" +#: js/block-verbose.js:3824 +#: js/block.js:3748 +#: js/blocks.js:2609 +#: js/blocks.js:3220 +#: js/blocks/BooleanBlocks.js:79 +#: js/blocks/BooleanBlocks.js:169 +#: js/blocks/BooleanBlocks.js:253 +#: js/blocks/BooleanBlocks.js:337 +#: js/blocks/BooleanBlocks.js:435 +#: js/blocks/BooleanBlocks.js:541 +#: js/blocks/BooleanBlocks.js:642 +#: js/blocks/BooleanBlocks.js:743 +#: js/blocks/BooleanBlocks.js:849 +#: js/blocks/BooleanBlocks.js:950 +#: js/blocks/SensorsBlocks.js:912 +msgid "false" msgstr "" -#: js/toolbar.js:81 -#: js/toolbar.js:139 -#: js/turtledefs.js:587 -msgid "Save sheet music as ABC" +#: js/block-verbose.js:3835 +#: js/block-verbose.js:3848 +#: js/block.js:3759 +#: js/block.js:3772 +#: js/blocks/ExtrasBlocks.js:615 +msgid "Cartesian" msgstr "" -#: js/toolbar.js:82 -#: js/toolbar.js:140 -#: js/turtledefs.js:591 -msgid "Save sheet music as Lilypond" +#: js/block-verbose.js:3836 +#: js/block-verbose.js:3849 +#: js/block.js:3760 +#: js/block.js:3773 +#: js/blocks/ExtrasBlocks.js:619 +msgid "polar" msgstr "" -#: js/toolbar.js:83 -msgid "Save sheet music as MusicXML" +#: js/block-verbose.js:3837 +#: js/block-verbose.js:3850 +#: js/block.js:3761 +#: js/block.js:3774 +#: js/blocks/ExtrasBlocks.js:623 +msgid "Cartesian+polar" msgstr "" -#: js/toolbar.js:84 -#: js/toolbar.js:141 -#: js/toolbar.js:149 -#: js/toolbar.js:204 -#: js/toolbar.js:259 -#: js/turtledefs.js:562 -#: js/turtledefs.js:595 -msgid "Save block artwork as SVG" +#: js/block-verbose.js:3838 +#: js/block-verbose.js:3857 +#: js/block.js:3762 +#: js/block.js:3781 +#: js/blocks/ExtrasBlocks.js:652 +msgid "none" msgstr "" -#: js/toolbar.js:85 -#: js/toolbar.js:142 -#: js/toolbar.js:150 -#: js/toolbar.js:205 -#: js/toolbar.js:260 -msgid "Confirm" +#: js/block-verbose.js:3851 +#: js/block.js:3775 +#: js/blocks/ExtrasBlocks.js:628 +msgid "treble" msgstr "" -#: js/toolbar.js:86 -#: js/toolbar.js:151 -#: js/toolbar.js:206 -#: js/toolbar.js:261 -msgid "English (United States)" +#: js/block-verbose.js:3852 +#: js/block.js:3776 +#: js/blocks/ExtrasBlocks.js:632 +msgid "grand staff" msgstr "" -#: js/toolbar.js:87 -#: js/toolbar.js:152 -#: js/toolbar.js:207 -#: js/toolbar.js:262 -msgid "English (United Kingdom)" +#: js/block-verbose.js:3853 +#: js/block.js:3777 +#: js/blocks/ExtrasBlocks.js:636 +msgid "mezzo-soprano" msgstr "" -#: js/toolbar.js:88 -#: js/toolbar.js:153 -#: js/toolbar.js:208 -#: js/toolbar.js:263 -msgid "日本語" +#: js/block-verbose.js:3854 +#: js/block.js:3778 +#: js/blocks/ExtrasBlocks.js:640 +msgid "alto" msgstr "" -#: js/toolbar.js:89 -msgid "한국어" +#: js/block-verbose.js:3855 +#: js/block.js:3779 +#: js/blocks/ExtrasBlocks.js:644 +msgid "tenor" msgstr "" -#: js/toolbar.js:90 -#: js/toolbar.js:155 -#: js/toolbar.js:210 -#: js/toolbar.js:265 -msgid "español" +#: js/block-verbose.js:3856 +#: js/block.js:3780 +#: js/utils/musicutils.js:1115 +#: js/utils/synthutils.js:80 +#: js/blocks/ExtrasBlocks.js:648 +#.TRANS: musical instrument +msgid "bass" msgstr "" -#: js/toolbar.js:91 -#: js/toolbar.js:156 -#: js/toolbar.js:211 -#: js/toolbar.js:266 -msgid "português" +#: js/block-verbose.js:3901 +#: js/block.js:3825 +#: js/blocks.js:2600 +#: js/blocks.js:3211 +msgid "on2" msgstr "" -#: js/toolbar.js:92 -#: js/toolbar.js:157 -#: js/toolbar.js:212 -#: js/toolbar.js:267 -msgid "にほんご" +#: js/block-verbose.js:3903 +#: js/block.js:3827 +#: js/blocks.js:2602 +#: js/blocks.js:3213 +msgid "off" msgstr "" -#: js/toolbar.js:93 -#: js/toolbar.js:158 -#: js/toolbar.js:213 -#: js/toolbar.js:268 -msgid "中文" +#: js/block-verbose.js:4470 +#: js/block.js:4394 +msgid "Not a number" msgstr "" -#: js/toolbar.js:94 -#: js/toolbar.js:159 -#: js/toolbar.js:214 -#: js/toolbar.js:269 -msgid "ภาษาไทย" +#: js/block-verbose.js:4477 +#: js/block.js:4401 +msgid "Octave value must be between 1 and 10." msgstr "" -#: js/toolbar.js:95 -#: js/toolbar.js:160 -#: js/toolbar.js:215 -#: js/toolbar.js:270 -msgid "aymara" +#: js/block-verbose.js:4485 +#: js/block.js:4409 +msgid "Numbers can have at most 10 digits." msgstr "" -#: js/toolbar.js:96 -#: js/toolbar.js:161 -#: js/toolbar.js:216 -#: js/toolbar.js:271 -msgid "quechua" +#: js/activity.js:390 +#: js/activity.js:395 +msgid "Search for blocks" msgstr "" -#: js/toolbar.js:97 -#: js/toolbar.js:162 -#: js/toolbar.js:217 -#: js/toolbar.js:272 -msgid "guarani" +#: js/activity.js:1413 +msgid "Refresh your browser to change to advanced mode." msgstr "" -#: js/toolbar.js:98 -#: js/toolbar.js:163 -#: js/toolbar.js:218 -#: js/toolbar.js:273 -msgid "हिंदी" +#: js/activity.js:1418 +msgid "Refresh your browser to change to beginner mode." msgstr "" -#: js/toolbar.js:99 -#: js/toolbar.js:165 -#: js/toolbar.js:219 -#: js/toolbar.js:275 -msgid "igbo" +#: js/activity.js:1477 +msgid "Catching mice" +msgstr "" + +#: js/activity.js:1478 +msgid "Cleaning the instruments" +msgstr "" + +#: js/activity.js:1479 +msgid "Testing key pieces" +msgstr "" + +#: js/activity.js:1480 +msgid "Sight-reading" +msgstr "" + +#: js/activity.js:1481 +msgid "Combining math and music" msgstr "" -#: js/toolbar.js:100 -#: js/toolbar.js:166 -#: js/toolbar.js:220 -#: js/toolbar.js:276 -msgid "عربى" +#: js/activity.js:1482 +msgid "Generating more blocks" msgstr "" -#: js/toolbar.js:101 -#: js/toolbar.js:164 -#: js/toolbar.js:221 -#: js/toolbar.js:274 -msgid "తెలుగు" +#: js/activity.js:1483 +msgid "Do Re Mi Fa Sol La Ti Do" msgstr "" -#: js/toolbar.js:102 -#: js/toolbar.js:167 -#: js/toolbar.js:222 -#: js/toolbar.js:277 -msgid "עִברִית" +#: js/activity.js:1484 +msgid "Tuning string instruments" msgstr "" -#: js/toolbar.js:111 -#: js/toolbar.js:175 -#: js/toolbar.js:176 -#: js/toolbar.js:231 -msgid "Full Screen" +#: js/activity.js:1485 +msgid "Pressing random keys" msgstr "" -#: js/toolbar.js:145 -#: js/toolbar.js:148 -#: js/toolbar.js:200 -#: js/toolbar.js:203 -#: js/toolbar.js:255 -#: js/toolbar.js:258 -#: js/turtledefs.js:558 -msgid "Save turtle artwork as PNG" +#: js/activity.js:1663 +msgid "plugins will be removed upon restart." msgstr "" -#: js/toolbar.js:147 -#: js/toolbar.js:202 -#: js/toolbar.js:257 -#: js/turtledefs.js:554 -msgid "Save turtle artwork as SVG" +#: js/activity.js:1672 +msgid "show Cartesian" msgstr "" -#: js/toolbar.js:154 -#: js/toolbar.js:209 -#: js/toolbar.js:264 -msgid "한국인" +#: js/activity.js:2211 +#: js/palette.js:589 +#: js/blocks/RhythmBlocks.js:923 +#: js/blocks/PitchBlocks.js:442 +#: js/blocks/PitchBlocks.js:1786 +#.TRANS: a numeric mapping of the notes in an octave based on the musical mode +msgid "scale degree" msgstr "" -#: js/toolbar.js:171 -#: js/toolbar.js:227 -msgid "About Turtle Blocks" +#: js/activity.js:2214 +#: js/palette.js:598 +msgid "voice name" msgstr "" -#: js/toolbar.js:429 -#: js/toolbar.js:440 -msgid "Turtle Wrap Off" +#: js/activity.js:2217 +#: js/palette.js:595 +msgid "invert mode" msgstr "" -#: js/toolbar.js:442 -msgid "Turtle Wrap On" +#: js/activity.js:2220 +msgid "output tools" msgstr "" -#: js/block.js:1470 -msgid "matrix" +#: js/activity.js:2223 +msgid "custom note" msgstr "" -#: js/block.js:1477 -#: js/WidgetBlocks.js:1226 -#: plugins/rodi.rtp:324 -msgid "status" +#: js/activity.js:2226 +msgid "accidental name" msgstr "" -#: js/block.js:1484 -msgid "drum mapper" +#: js/activity.js:2229 +#: js/blocks/PitchBlocks.js:855 +msgid "east indian solfege" msgstr "" -#: js/block.js:1491 -msgid "ruler" +#: js/activity.js:2232 +#: js/blocks/PitchBlocks.js:869 +msgid "note name" msgstr "" -#: js/block.js:1498 -#: js/WidgetBlocks.js:327 -#.TRANS: timbre is the character or quality of a musical sound -msgid "timbre" +#: js/activity.js:2235 +#: js/blocks/IntervalsBlocks.js:94 +msgid "temperament name" msgstr "" -#: js/block.js:1505 -msgid "stair" +#: js/activity.js:2238 +#: js/palette.js:592 +msgid "mode name" msgstr "" -#: js/block.js:1512 -#: js/WidgetBlocks.js:577 -#.TRANS: the speed at music is should be played. -msgid "tempo" +#: js/activity.js:2241 +msgid "chord name" msgstr "" -#: js/block.js:1519 -#: js/block.js:1582 -#: js/IntervalsBlocks.js:1268 -#.TRANS: mode, e.g., Major in C Major -msgid "mode" +#: js/activity.js:2244 +#: js/palette.js:615 +msgid "interval name" msgstr "" -#: js/block.js:1526 -msgid "slider" +#: js/activity.js:2247 +msgid "filter type" msgstr "" -#: js/block.js:1533 -#: js/SensorsBlocks.js:1001 -msgid "keyboard" +#: js/activity.js:2250 +msgid "oscillator type" msgstr "" -#: js/block.js:1547 -#: js/WidgetBlocks.js:957 -#: js/WidgetBlocks.js:988 -#.TRANS: widget for subdividing a measure into distinct rhythmic elements -msgid "rhythm maker" +#: js/activity.js:2253 +#: js/blocks.js:2479 +#: js/blocks.js:2487 +msgid "audio file" msgstr "" -#: js/block.js:1554 -#: js/block.js:2182 -#: js/block.js:2236 -#: js/RhythmBlockPaletteBlocks.js:70 -#: js/RhythmBlockPaletteBlocks.js:251 -#: js/RhythmBlockPaletteBlocks.js:484 -#: js/RhythmBlockPaletteBlocks.js:553 -#: js/RhythmBlockPaletteBlocks.js:604 -#: js/RhythmBlockPaletteBlocks.js:874 -#: js/RhythmBlocks.js:33 -#: js/RhythmBlocks.js:356 -#: js/RhythmBlocks.js:766 -#: js/RhythmBlocks.js:806 -#: js/OrnamentBlocks.js:220 -#: js/OrnamentBlocks.js:312 -#: js/MeterBlocks.js:1367 -#: js/DictActions.js:85 -#: js/phrasemaker.js:731 -#: js/phrasemaker.js:2393 -#: js/phrasemaker.js:2436 -#: js/phrasemaker.js:2534 -#.TRANS: the value (e.g., 1/4 note) of the note being played. -msgid "note value" +#: js/activity.js:2256 +#: js/blocks/DrumBlocks.js:32 +msgid "noise name" msgstr "" -#: js/block.js:1561 -#: js/block.js:2110 -#: js/block.js:2133 -#: js/IntervalsBlocks.js:875 -#: js/OrnamentBlocks.js:312 -#.TRANS: calculate a relative step between notes based on semi-tones -msgid "scalar interval" +#: js/activity.js:2259 +#: js/blocks/DrumBlocks.js:75 +msgid "drum name" msgstr "" -#: js/block.js:1568 -#: js/RhythmBlocks.js:148 -msgid "milliseconds" +#: js/activity.js:2262 +#: js/blocks/DrumBlocks.js:119 +msgid "effects name" msgstr "" -#: js/block.js:2180 -#: js/block.js:2184 -#: js/block.js:2234 -#: js/block.js:2345 -#: js/ProgramBlocks.js:1273 -#: js/RhythmBlocks.js:712 -#: js/rhythmruler.js:834 -#: js/rhythmruler.js:961 -msgid "silence" +#: js/activity.js:2265 +msgid "wrap mode" msgstr "" -#: js/block.js:2265 -#: js/block.js:3134 -#: js/block.js:3151 -#: js/activity.js:2336 -#: js/activity.js:2387 -#: js/musicutils.js:2932 -#: js/musicutils.js:4287 -#.TRANS: the note names must be separated by single spaces -#.TRANS: the note names must be separated by single spaces -msgid "ti la sol fa mi re do" +#: js/activity.js:2268 +msgid "load file" msgstr "" -#: js/block.js:2333 -#.TRANS: scalar step -msgid "down" +#: js/activity.js:2435 +#: js/activity.js:5851 +msgid "This block is deprecated." msgstr "" -#: js/block.js:2334 -msgid "up" +#: js/activity.js:2437 +#: js/activity.js:5853 +msgid "Block cannot be found." msgstr "" -#: js/block.js:3477 -#: js/block.js:3490 -#: js/ExtrasBlocks.js:612 -msgid "Cartesian" +#: js/activity.js:2645 +msgid "Saving block artwork" msgstr "" -#: js/block.js:3478 -#: js/block.js:3491 -#: js/ExtrasBlocks.js:616 -msgid "polar" +#: js/activity.js:2656 +msgid "Erase" msgstr "" -#: js/block.js:3479 -#: js/block.js:3492 -#: js/ExtrasBlocks.js:620 -msgid "Cartesian+polar" +#: js/activity.js:2683 +#: js/activity.js:2705 +msgid "Paste" msgstr "" -#: js/block.js:3480 -#: js/block.js:3499 -#: js/ExtrasBlocks.js:649 -msgid "none" +#: js/activity.js:2687 +msgid "Save block help" msgstr "" -#: js/block.js:3493 -#: js/ExtrasBlocks.js:625 -msgid "treble" +#: js/activity.js:2772 +msgid "Jumping to the bottom of the page." msgstr "" -#: js/block.js:3494 -#: js/ExtrasBlocks.js:629 -msgid "grand staff" +#: js/activity.js:2778 +msgid "Scrolling up." msgstr "" -#: js/block.js:3495 -#: js/ExtrasBlocks.js:633 -msgid "mezzo-soprano" +#: js/activity.js:2783 +msgid "Scrolling down." msgstr "" -#: js/block.js:3496 -#: js/ExtrasBlocks.js:637 -msgid "alto" +#: js/activity.js:2788 +msgid "Extracting block" msgstr "" -#: js/block.js:3497 -#: js/ExtrasBlocks.js:641 -msgid "tenor" +#: js/activity.js:2796 +msgid "Moving block up." msgstr "" -#: js/block.js:3498 -#: js/ExtrasBlocks.js:645 -#: js/musicutils.js:736 -#: js/synthutils.js:64 -#.TRANS: musical instrument -msgid "bass" +#: js/activity.js:2817 +msgid "Moving block down." msgstr "" -#: js/block.js:4075 -msgid "Not a number" +#: js/activity.js:2838 +msgid "Moving block left." msgstr "" -#: js/block.js:4082 -msgid "Octave value must be between 1 and 10." +#: js/activity.js:2855 +msgid "Moving block right." msgstr "" -#: js/block.js:4090 -msgid "Numbers can have at most 10 digits." +#: js/activity.js:2870 +msgid "Jump to home position." msgstr "" -#: js/notation.js:353 -msgid "Lilypond cannot process pickup of " +#: js/activity.js:2897 +msgid "Hide blocks" msgstr "" -#: js/turtledefs.js:40 -#.TRANS: put the URL to the guide here, e.g., https://github.com/sugarlabs/turtleblocksjs/tree/master/guide/README.md -msgid "guide url" +#: js/activity.js:4500 +msgid "Click the run button to run the project." msgstr "" -#: js/turtledefs.js:85 -#: js/turtledefs.js:437 -msgid "Turtle Blocks is a Logo-inspired turtle that draws colorful pictures with snap-together visual-programming blocks." +#: js/activity.js:5692 +msgid "Show/hide block" msgstr "" -#: js/turtledefs.js:118 -#: js/turtledefs.js:220 -msgid "search" +#: js/activity.js:5698 +msgid "Expand/collapse blocks" msgstr "" -#: js/turtledefs.js:120 -#: js/turtledefs.js:222 -#: js/WidgetBlocks.js:437 -#: js/MeterBlocks.js:1343 -#.TRANS: musical meter (time signature), e.g., 4:4 -msgid "meter" +#: js/activity.js:5976 +msgid "Could not parse JSON input." msgstr "" -#: js/turtledefs.js:122 -#: js/turtledefs.js:224 -msgid "intervals" +#: js/activity.js:6475 +#: js/activity.js:6580 +#: js/activity.js:6631 +msgid "Cannot load project from the file. Please check the file type." msgstr "" -#: js/turtledefs.js:124 -#: js/turtledefs.js:226 -msgid "ornament" +#: js/activity.js:6917 +msgid "Invalid parameters" msgstr "" -#: js/turtledefs.js:125 -#: js/turtledefs.js:227 -#: js/VolumeBlocks.js:362 -#: js/VolumeBlocks.js:502 -#: js/VolumeBlocks.js:545 -msgid "volume" +#: js/blocks.js:1212 +#: js/blocks.js:3444 +#: js/blocks.js:3834 +#: js/blocks.js:3865 +#: js/blocks.js:3914 +#: js/blocks.js:3949 +#: js/blocks.js:6586 +#: js/palette.js:509 +#: js/palette.js:638 +#: js/palette.js:1105 +#: js/blocks/BoxesBlocks.js:282 +#: js/blocks/BoxesBlocks.js:285 +#: js/blocks/BoxesBlocks.js:405 +#: js/blocks/BoxesBlocks.js:594 +msgid "box" msgstr "" -#: js/turtledefs.js:129 -#: js/turtledefs.js:231 -msgid "boxes" +#: js/blocks.js:1713 +msgid "Consider breaking this stack into parts." msgstr "" -#: js/turtledefs.js:130 -#: js/turtledefs.js:232 -msgid "widgets" +#: js/blocks.js:2472 +#: js/palette.js:653 +#: js/blocks/MediaBlocks.js:602 +msgid "open file" msgstr "" -#: js/turtledefs.js:131 -#: js/turtledefs.js:233 -#: js/phrasemaker.js:824 -msgid "graphics" +#: js/blocks.js:3247 +#: js/palette.js:574 +#: js/blocks/MediaBlocks.js:892 +#: js/blocks/MediaBlocks.js:963 +msgid "text" msgstr "" -#: js/turtledefs.js:134 -#: js/turtledefs.js:236 -msgid "boolean" +#: js/blocks.js:3443 +#: js/palette.js:641 +#: js/palette.js:642 +#: js/blocks/BoxesBlocks.js:514 +msgid "store in box" msgstr "" -#: js/turtledefs.js:137 -#: js/turtledefs.js:239 -#: js/HeapBlocks.js:59 -#: js/status.js:147 -msgid "heap" +#: js/blocks.js:3448 +#: js/blocks.js:3888 +#: js/blocks.js:3923 +#: js/blocks.js:3958 +#: js/blocks.js:5862 +#: js/blocks.js:5883 +#: js/blocks/BoxesBlocks.js:772 +msgid "box1" msgstr "" -#: js/turtledefs.js:138 -#: js/turtledefs.js:240 -#: js/ProgramBlocks.js:495 -#: js/DictBlocks.js:142 -msgid "dictionary" +#: js/blocks.js:3450 +#: js/blocks.js:3890 +#: js/blocks.js:3925 +#: js/blocks.js:3960 +#: js/blocks.js:5864 +#: js/blocks.js:5885 +#: js/blocks/BoxesBlocks.js:663 +msgid "box2" msgstr "" -#: js/turtledefs.js:139 -#: js/turtledefs.js:241 -msgid "ensemble" +#: js/blocks.js:4122 +#: js/palette.js:639 +#: js/palette.js:644 +#: js/palette.js:1041 +#: js/blocks/BoxesBlocks.js:591 +msgid "store in" msgstr "" -#: js/turtledefs.js:140 -#: js/turtledefs.js:242 -msgid "extras" +#: js/blocks.js:4122 +#: js/blocks/BoxesBlocks.js:595 +#: js/blocks/DictBlocks.js:215 +#: js/blocks/DictBlocks.js:289 +#: js/blocks/EnsembleBlocks.js:391 +#: js/blocks/EnsembleBlocks.js:402 +#: js/blocks/MediaBlocks.js:746 +#: js/blocks/PitchBlocks.js:656 +#: js/blocks/PitchBlocks.js:934 +#: js/blocks/PitchBlocks.js:1866 +#: js/blocks/ProgramBlocks.js:390 +#: js/blocks/ProgramBlocks.js:495 +#: js/blocks/ProgramBlocks.js:658 +#: js/blocks/ToneBlocks.js:1025 +msgid "name" msgstr "" -#: js/turtledefs.js:142 -#: js/turtledefs.js:244 -#.TRANS: program as in computer program -#.TRANS: program as in computer program -msgid "program" +#: js/blocks.js:4122 +#: js/blocks/BoxesBlocks.js:75 +#: js/blocks/BoxesBlocks.js:595 +#: js/blocks/DictBlocks.js:289 +#: js/blocks/DictBlocks.js:430 +#: js/blocks/HeapBlocks.js:544 +#: js/blocks/RhythmBlocks.js:1130 +msgid "value" msgstr "" -#: js/turtledefs.js:143 -#: js/turtledefs.js:245 -msgid "my blocks" +#: js/blocks.js:4465 +msgid "Forever loop detected inside a note value block. Unexpected things may happen." msgstr "" -#: js/turtledefs.js:185 -#: js/turtledefs.js:281 -msgid "artwork" +#: js/blocks.js:4988 +msgid "There is no block selected." msgstr "" -#: js/turtledefs.js:185 -#: js/turtledefs.js:281 -msgid "logic" +#: js/blocks.js:5091 +#: js/blocks/MediaBlocks.js:888 +msgid "show" msgstr "" -#: js/turtledefs.js:185 -#: js/turtledefs.js:281 -msgid "music" +#: js/blocks.js:5094 +#: js/blocks/MediaBlocks.js:803 +#.TRANS: Avatar is the image used to determine the appearance of the mouse. +msgid "avatar" msgstr "" -#: js/turtledefs.js:187 -#: js/turtledefs.js:463 -msgid "Music Blocks is a collection of tools for exploring fundamental musical concepts in a fun way." +#: js/blocks.js:5097 +#: js/blocks/ToneBlocks.js:1010 +#: js/widgets/sampler.js:975 +#.TRANS: The sound sample that the user uploads. +msgid "sample" msgstr "" -#: js/turtledefs.js:436 -msgid "Welcome to Turtle Blocks" +#: js/lilypond.js:606 +msgid "brown rat" msgstr "" -#: js/turtledefs.js:438 -#: js/turtledefs.js:465 -#: js/turtledefs.js:774 -#: js/turtledefs.js:805 -msgid "The current version is" +#: js/lilypond.js:607 +msgid "mole" msgstr "" -#: js/turtledefs.js:446 -#: js/turtledefs.js:483 -msgid "Click the run button to run the project in fast mode." +#: js/lilypond.js:608 +msgid "chipmunk" msgstr "" -#: js/turtledefs.js:452 -msgid "Stop the turtle." +#: js/lilypond.js:609 +msgid "red squirrel" msgstr "" -#: js/turtledefs.js:454 -#: js/turtledefs.js:491 -msgid "You can also type Alt-S to stop." +#: js/lilypond.js:610 +msgid "guinea pig" +msgstr "" + +#: js/lilypond.js:611 +msgid "capybara" msgstr "" -#: js/turtledefs.js:462 -#: js/help.js:333 -msgid "Welcome to Music Blocks" +#: js/lilypond.js:612 +msgid "coypu" msgstr "" -#: js/turtledefs.js:472 -#: js/help.js:334 -msgid "Meet Mr. Mouse!" +#: js/lilypond.js:613 +msgid "black rat" msgstr "" -#: js/turtledefs.js:473 -msgid "Mr Mouse is our Music Blocks conductor." +#: js/lilypond.js:614 +msgid "grey squirrel" msgstr "" -#: js/turtledefs.js:475 -msgid "Mr Mouse encourages you to explore Music Blocks." +#: js/lilypond.js:615 +msgid "flying squirrel" msgstr "" -#: js/turtledefs.js:477 -msgid "Let us start our tour!" +#: js/lilypond.js:616 +msgid "bat" msgstr "" -#: js/turtledefs.js:489 -msgid "Stop the music (and the mice)." +#: js/lilypond.js:749 +#: js/lilypond.js:913 +#: js/lilypond.js:951 +#: js/blocks/ActionBlocks.js:1256 +#: js/blocks/ExtrasBlocks.js:556 +msgid "start drum" msgstr "" -#: js/turtledefs.js:499 -msgid "Record your project as video." +#: js/logo.js:61 +msgid "Not a valid pitch name" msgstr "" -#: js/turtledefs.js:505 -msgid "Toggle Fullscreen mode." +#: js/logo.js:507 +#: js/blocks/ProgramBlocks.js:258 +#: js/blocks/ProgramBlocks.js:427 +msgid "You must select a file." msgstr "" -#: js/turtledefs.js:511 -msgid "Initialize a new project." +#: js/logo.js:1696 +msgid "Playback is ready." msgstr "" -#: js/turtledefs.js:517 -msgid "You can also load projects from the file system." +#: js/macros.js:711 +#: js/utils/musicutils.js:1162 +#: js/utils/synthutils.js:202 +#.TRANS: animal sound effect +msgid "duck" msgstr "" -#: js/turtledefs.js:522 -#: js/StringHelper.js:46 -msgid "Delete" +#: js/notation.js:353 +msgid "Lilypond cannot process pickup of " msgstr "" -#: js/turtledefs.js:523 -msgid "To delete a block, just right-click on it, then you will be able to see the delete option" +#: js/palette.js:571 +msgid "grid" msgstr "" -#: js/turtledefs.js:528 -#: js/activity.js:2270 -#: js/LocalCard.js:31 -msgid "Copy" +#: js/palette.js:580 +msgid "effect" msgstr "" -#: js/turtledefs.js:529 -msgid "To copy a block, just right-click on it, then you will be able to see the copy option" +#: js/palette.js:586 +msgid "sargam" msgstr "" -#: js/turtledefs.js:535 -msgid "To extract a block, just right-click on it, then you will be able to see the extract option" +#: js/palette.js:601 +#: js/blocks/PitchBlocks.js:1209 +msgid "custom pitch" msgstr "" -#: js/turtledefs.js:542 -#: js/turtledefs.js:552 -#: js/turtledefs.js:573 -msgid "Save your project to a file." +#: js/palette.js:609 +msgid "accidental" msgstr "" -#: js/turtledefs.js:549 -#: js/turtledefs.js:570 -msgid "save" +#: js/palette.js:633 +#: js/blocks/PitchBlocks.js:405 +msgid "pitch converter" msgstr "" -#: js/turtledefs.js:556 -#: js/turtledefs.js:577 -msgid "Save graphics from your project to as SVG." +#: js/piemenus.js:200 +#: js/utils/musicutils.js:1187 +#: js/utils/musicutils.js:1207 +#: js/widgets/musickeyboard.js:2341 +#: js/widgets/phrasemaker.js:1908 +#: js/widgets/sampler.js:810 +#.TRANS: double sharp is a music term related to pitch +msgid "double sharp" msgstr "" -#: js/turtledefs.js:560 -#: js/turtledefs.js:581 -msgid "Save graphics from your project as PNG." +#: js/piemenus.js:201 +#: js/utils/musicutils.js:1185 +#: js/utils/musicutils.js:1208 +#: js/blocks/PitchBlocks.js:1539 +#: js/turtleactions/PitchActions.js:323 +#: js/widgets/musickeyboard.js:2342 +#: js/widgets/phrasemaker.js:1909 +#: js/widgets/sampler.js:811 +#.TRANS: sharp is a music term related to pitch +#.TRANS: sharp is a half-step up in pitch +msgid "sharp" msgstr "" -#: js/turtledefs.js:564 -#: js/turtledefs.js:597 -msgid "Save block artwork as an SVG file." +#: js/piemenus.js:202 +#: js/utils/musicutils.js:1183 +#: js/utils/musicutils.js:1209 +#: js/widgets/musickeyboard.js:2343 +#: js/widgets/phrasemaker.js:1910 +#: js/widgets/sampler.js:812 +#.TRANS: natural is a music term related to pitch +msgid "natural" msgstr "" -#: js/turtledefs.js:585 -msgid "Save audio from your project as WAV." +#: js/piemenus.js:203 +#: js/utils/musicutils.js:1181 +#: js/utils/musicutils.js:1210 +#: js/blocks/PitchBlocks.js:1498 +#: js/turtleactions/PitchActions.js:326 +#: js/widgets/musickeyboard.js:2344 +#: js/widgets/phrasemaker.js:1911 +#: js/widgets/sampler.js:813 +#.TRANS: flat is a music term related to pitch +#.TRANS: flat is a half-step down in pitch +msgid "flat" msgstr "" -#: js/turtledefs.js:589 -msgid "Save your project to as an ABC file." +#: js/piemenus.js:204 +#: js/utils/musicutils.js:1179 +#: js/utils/musicutils.js:1211 +#: js/widgets/musickeyboard.js:2345 +#: js/widgets/phrasemaker.js:1912 +#: js/widgets/sampler.js:814 +#.TRANS: double flat is a music term related to pitch +msgid "double flat" msgstr "" -#: js/turtledefs.js:593 -msgid "Save your project to as a Lilypond file." +#: js/piemenus.js:2864 +#: js/utils/musicutils.js:1006 +#: js/blocks/PitchBlocks.js:1385 +#.TRANS: unison is a music term related to intervals +#.TRANS: unison means the note is the same as the current note +msgid "unison" msgstr "" -#: js/turtledefs.js:604 -msgid "Load samples from server" +#: js/piemenus.js:3018 +#: js/piemenus.js:3091 +#: js/utils/musicutils.js:1014 +#: js/utils/musicutils.js:1189 +#: js/utils/musicutils.js:1326 +#.TRANS: major is a music term related to intervals and mode +msgid "major" msgstr "" -#: js/turtledefs.js:605 -msgid "This button opens a viewer for loading example projects." +#: js/piemenus.js:3018 +#: js/piemenus.js:3091 +#: js/utils/musicutils.js:1032 +#.TRANS: modal scale for music +msgid "ionian" msgstr "" -#: js/turtledefs.js:611 -msgid "Palette buttons" +#: js/piemenus.js:3020 +#: js/piemenus.js:3095 +#: js/utils/musicutils.js:1012 +#: js/utils/musicutils.js:1190 +#: js/utils/musicutils.js:1323 +#.TRANS: minor is a music term related to intervals and mode +msgid "minor" msgstr "" -#: js/turtledefs.js:612 -msgid "This toolbar contains the palette buttons including Rhythm Pitch Tone Action and more." +#: js/piemenus.js:3020 +#: js/piemenus.js:3095 +#: js/utils/musicutils.js:1042 +#.TRANS: modal scale for music +msgid "aeolian" msgstr "" -#: js/turtledefs.js:614 -msgid "Click to show the palettes of blocks and drag blocks from the palettes onto the canvas to use them." +#: js/piemenus.js:3410 +msgid "Duplicate" msgstr "" -#: js/turtledefs.js:620 -msgid "Cartesian/Polar" +#: js/piemenus.js:3412 +msgid "Move to trash" msgstr "" -#: js/turtledefs.js:621 -msgid "Show or hide a coordinate grid." +#: js/piemenus.js:3413 +#: js/widgets/timbre.js:968 +#: planet/js/StringHelper.js:69 +msgid "Close" msgstr "" -#: js/turtledefs.js:627 -msgid "Clear the screen and return the mice to their initial positions." +#: js/piemenus.js:3419 +msgid "Save stack" msgstr "" -#: js/turtledefs.js:633 -msgid "Collapse the graphics window." +#: js/piemenus.js:3449 +msgid "In order to copy a sample, you must reload the widget, import the sample again, and export it." msgstr "" -#: js/turtledefs.js:638 -#: js/activity.js:4256 -#: js/activity.js:4256 -msgid "Home" +#: js/piemenus.js:3812 +msgid "You have chosen key " msgstr "" -#: js/turtledefs.js:639 -msgid "Return all blocks to the center of the screen." +#: js/piemenus.js:3816 +msgid " for your pitch preview." msgstr "" -#: js/turtledefs.js:644 -msgid "Show/hide blocks" +#: js/turtle-singer.js:1363 +#.TRANS: partials are weighted components in a harmonic series +msgid "You must have at least one Partial block inside of a Weighted-partial block" msgstr "" -#: js/turtledefs.js:645 -msgid "Hide or show the blocks and the palettes." +#: js/turtle-singer.js:2077 +msgid "synth cannot play chords." msgstr "" -#: js/turtledefs.js:650 -msgid "Expand/collapse collapsable blocks" +#: js/utils/musicutils.js:505 +#: js/utils/musicutils.js:645 +#: js/widgets/pitchdrummatrix.js:228 +#: js/widgets/musickeyboard.js:2885 +msgid "rest" msgstr "" -#: js/turtledefs.js:651 -msgid "Expand or collapse start and action stacks." +#: js/utils/musicutils.js:689 +msgid "Perfect unison" msgstr "" -#: js/turtledefs.js:658 -#: js/activity.js:4265 -msgid "Decrease block size" +#: js/utils/musicutils.js:689 +msgid "Diminished second" msgstr "" -#: js/turtledefs.js:659 -msgid "Decrease the size of the blocks." +#: js/utils/musicutils.js:690 +msgid "Minor second" msgstr "" -#: js/turtledefs.js:664 -#: js/activity.js:4267 -msgid "Increase block size" +#: js/utils/musicutils.js:690 +msgid "Augmented unison" msgstr "" -#: js/turtledefs.js:665 -msgid "Increase the size of the blocks." +#: js/utils/musicutils.js:691 +msgid "Major second" msgstr "" -#: js/turtledefs.js:670 -msgid "Expand/collapse option toolbar" +#: js/utils/musicutils.js:691 +msgid "Diminished third" msgstr "" -#: js/turtledefs.js:671 -msgid "Click this button to expand or collapse the auxillary toolbar." +#: js/utils/musicutils.js:692 +msgid "Minor third" msgstr "" -#: js/turtledefs.js:676 -msgid "Run slow" +#: js/utils/musicutils.js:692 +msgid "Augmented second" msgstr "" -#: js/turtledefs.js:677 -msgid "Click to run the project in slow mode." +#: js/utils/musicutils.js:693 +msgid "Major third" msgstr "" -#: js/turtledefs.js:683 -msgid "Click to run the project step by step." +#: js/utils/musicutils.js:693 +msgid "Diminished fourth" msgstr "" -#: js/turtledefs.js:690 -msgid "Display statistics about your Music project." +#: js/utils/musicutils.js:694 +msgid "Perfect fourth" msgstr "" -#: js/turtledefs.js:697 -msgid "Delete a selected plugin." +#: js/utils/musicutils.js:694 +msgid "Augmented third" msgstr "" -#: js/turtledefs.js:704 -msgid "Enable scrolling" +#: js/utils/musicutils.js:695 +msgid "Diminished fifth" msgstr "" -#: js/turtledefs.js:705 -msgid "You can scroll the blocks on the canvas." +#: js/utils/musicutils.js:695 +msgid "Augmented fourth" msgstr "" -#: js/turtledefs.js:714 -msgid "Wrap Turtle" +#: js/utils/musicutils.js:696 +msgid "Perfect fifth" msgstr "" -#: js/turtledefs.js:715 -msgid "Turn Turtle wrapping On or Off." +#: js/utils/musicutils.js:696 +msgid "Diminished sixth" msgstr "" -#: js/turtledefs.js:725 -msgid "Restore blocks from the trash." +#: js/utils/musicutils.js:697 +msgid "Minor sixth" msgstr "" -#: js/turtledefs.js:732 -msgid "Switch mode" +#: js/utils/musicutils.js:697 +msgid "Augmented fifth" msgstr "" -#: js/turtledefs.js:733 -msgid "Switch between beginner and advance modes." +#: js/utils/musicutils.js:698 +msgid "Major sixth" msgstr "" -#: js/turtledefs.js:739 -msgid "Select your language preference." +#: js/utils/musicutils.js:698 +msgid "Diminished seventh" msgstr "" -#: js/turtledefs.js:745 -msgid "Keyboard shortcuts" +#: js/utils/musicutils.js:699 +msgid "Minor seventh" msgstr "" -#: js/turtledefs.js:746 -msgid "You can type d to create a do block and r to create a re block etc." +#: js/utils/musicutils.js:699 +msgid "Augmented sixth" msgstr "" -#: js/turtledefs.js:753 -msgid "Show these messages." +#: js/utils/musicutils.js:700 +msgid "Major seventh" msgstr "" -#: js/turtledefs.js:759 -#: js/turtledefs.js:790 -#: js/help.js:335 -msgid "Guide" +#: js/utils/musicutils.js:700 +msgid "Diminished octave" msgstr "" -#: js/turtledefs.js:760 -msgid "A detailed guide to Turtle Blocks is available." +#: js/utils/musicutils.js:701 +msgid "Perfect octave" msgstr "" -#: js/turtledefs.js:764 -msgid "Turtle Blocks Guide" +#: js/utils/musicutils.js:701 +msgid "Augmented seventh" msgstr "" -#: js/turtledefs.js:767 -#: js/turtledefs.js:798 -#: js/help.js:336 -msgid "About" +#: js/utils/musicutils.js:702 +msgid "Minor ninth" msgstr "" -#: js/turtledefs.js:768 -msgid "Turtle Blocks is an open source collection of tools for exploring musical concepts." +#: js/utils/musicutils.js:702 +msgid "Augmented octave" msgstr "" -#: js/turtledefs.js:770 -msgid "A full list of contributors can be found in the Turtle Blocks GitHub repository." +#: js/utils/musicutils.js:703 +msgid "Major ninth" msgstr "" -#: js/turtledefs.js:772 -msgid "Turtle Blocks is licensed under the AGPL." +#: js/utils/musicutils.js:703 +msgid "Diminished tenth" msgstr "" -#: js/turtledefs.js:780 -msgid "Turtle Blocks GitHub repository" +#: js/utils/musicutils.js:704 +msgid "Minor tenth" msgstr "" -#: js/turtledefs.js:783 -#: js/turtledefs.js:814 -#: js/help.js:337 -#: js/help.js:359 -msgid "Congratulations." +#: js/utils/musicutils.js:704 +msgid "Augmented ninth" msgstr "" -#: js/turtledefs.js:784 -msgid "You have finished the tour. Please enjoy Turtle Blocks!" +#: js/utils/musicutils.js:705 +msgid "Major tenth" msgstr "" -#: js/turtledefs.js:791 -msgid "A detailed guide to Music Blocks is available." +#: js/utils/musicutils.js:705 +msgid "Diminished eleventh" msgstr "" -#: js/turtledefs.js:795 -#: js/SaveInterface.js:76 -msgid "Music Blocks Guide" +#: js/utils/musicutils.js:706 +msgid "Perfect eleventh" msgstr "" -#: js/turtledefs.js:799 -msgid "Music Blocks is an open source collection of tools for exploring musical concepts." +#: js/utils/musicutils.js:706 +msgid "Augmented tenth" msgstr "" -#: js/turtledefs.js:801 -msgid "A full list of contributors can be found in the Music Blocks GitHub repository." +#: js/utils/musicutils.js:707 +msgid "Diminished twelfth" msgstr "" -#: js/turtledefs.js:803 -msgid "Music Blocks is licensed under the AGPL." +#: js/utils/musicutils.js:707 +msgid "Augmented eleventh" msgstr "" -#: js/turtledefs.js:811 -msgid "Music Blocks GitHub repository" +#: js/utils/musicutils.js:708 +msgid "Perfect twelfth" msgstr "" -#: js/turtledefs.js:815 -msgid "You have finished the tour. Please enjoy Music Blocks!" +#: js/utils/musicutils.js:708 +msgid "Diminished thirteenth" msgstr "" -#: js/activity.js:369 -msgid "Search for blocks" +#: js/utils/musicutils.js:709 +msgid "Minor thirteenth" msgstr "" -#: js/activity.js:1145 -msgid "Refresh your browser to change to advanced mode." +#: js/utils/musicutils.js:709 +msgid "Augmented fifth, plus an octave" msgstr "" -#: js/activity.js:1150 -msgid "Refresh your browser to change to beginner mode." +#: js/utils/musicutils.js:710 +msgid "Major thirteenth" msgstr "" -#: js/activity.js:1184 -msgid "Catching mice" +#: js/utils/musicutils.js:710 +msgid "Diminished seventh, plus an octave" msgstr "" -#: js/activity.js:1185 -msgid "Cleaning the instruments" +#: js/utils/musicutils.js:838 +#.TRANS: ordinal number. Please keep exactly one space between each number. +msgid "1st 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th" msgstr "" -#: js/activity.js:1186 -msgid "Testing key pieces" +#: js/utils/musicutils.js:1008 +#: js/utils/musicutils.js:1191 +#: js/utils/musicutils.js:1325 +#.TRANS: augmented is a music term related to intervals +msgid "augmented" msgstr "" -#: js/activity.js:1187 -msgid "Sight-reading" +#: js/utils/musicutils.js:1010 +#: js/utils/musicutils.js:1192 +#: js/utils/musicutils.js:1324 +#.TRANS: diminished is a music term related to intervals and mode +msgid "diminished" msgstr "" -#: js/activity.js:1188 -msgid "Combining math and music" +#: js/utils/musicutils.js:1016 +#: js/utils/musicutils.js:1322 +#: js/blocks/IntervalsBlocks.js:649 +#: js/turtleactions/IntervalsActions.js:120 +#: js/turtleactions/IntervalsActions.js:124 +#.TRANS: perfect is a music term related to intervals +msgid "perfect" +msgstr "" + +#: js/utils/musicutils.js:1018 +#.TRANS: twelve semi-tone scale for music +msgid "chromatic" msgstr "" -#: js/activity.js:1189 -msgid "Generating more blocks" +#: js/utils/musicutils.js:1019 +msgid "algerian" msgstr "" -#: js/activity.js:1190 -msgid "Do Re Mi Fa Sol La Ti Do" +#: js/utils/musicutils.js:1020 +msgid "spanish" msgstr "" -#: js/activity.js:1191 -msgid "Tuning string instruments" +#: js/utils/musicutils.js:1022 +#.TRANS: modal scale in music +msgid "octatonic" msgstr "" -#: js/activity.js:1192 -msgid "Pressing random keys" +#: js/utils/musicutils.js:1024 +#.TRANS: harmonic major scale in music +msgid "harmonic major" msgstr "" -#: js/activity.js:1351 -msgid "plugins will be removed upon restart." +#: js/utils/musicutils.js:1026 +#.TRANS: natural minor scales in music +msgid "natural minor" msgstr "" -#: js/activity.js:1360 -msgid "show Cartesian" +#: js/utils/musicutils.js:1028 +#.TRANS: harmonic minor scale in music +msgid "harmonic minor" msgstr "" -#: js/activity.js:1842 -msgid "output tools" +#: js/utils/musicutils.js:1030 +#.TRANS: melodic minor scale in music +msgid "melodic minor" msgstr "" -#: js/activity.js:1845 -msgid "custom note" +#: js/utils/musicutils.js:1034 +#.TRANS: modal scale for music +msgid "dorian" msgstr "" -#: js/activity.js:1848 -msgid "accidental name" +#: js/utils/musicutils.js:1036 +#.TRANS: modal scale for music +msgid "phrygian" msgstr "" -#: js/activity.js:1851 -#: js/PitchBlocks.js:855 -msgid "east indian solfege" +#: js/utils/musicutils.js:1038 +#.TRANS: modal scale for music +msgid "lydian" msgstr "" -#: js/activity.js:1854 -#: js/PitchBlocks.js:869 -msgid "note name" +#: js/utils/musicutils.js:1040 +#.TRANS: modal scale for music +msgid "mixolydian" msgstr "" -#: js/activity.js:1857 -#: js/IntervalsBlocks.js:94 -msgid "temperament name" +#: js/utils/musicutils.js:1044 +#.TRANS: modal scale for music +msgid "locrian" msgstr "" -#: js/activity.js:1863 -msgid "chord name" +#: js/utils/musicutils.js:1046 +#.TRANS: minor jazz scale for music +msgid "jazz minor" msgstr "" -#: js/activity.js:1869 -msgid "filter type" +#: js/utils/musicutils.js:1048 +#.TRANS: bebop scale for music +msgid "bebop" msgstr "" -#: js/activity.js:1872 -msgid "oscillator type" +#: js/utils/musicutils.js:1049 +msgid "arabic" msgstr "" -#: js/activity.js:1878 -#: js/DrumBlocks.js:32 -msgid "noise name" +#: js/utils/musicutils.js:1050 +msgid "byzantine" msgstr "" -#: js/activity.js:1881 -#: js/DrumBlocks.js:75 -msgid "drum name" +#: js/utils/musicutils.js:1052 +#.TRANS: musical scale for music by Verdi +msgid "enigmatic" msgstr "" -#: js/activity.js:1884 -#: js/DrumBlocks.js:119 -msgid "effects name" +#: js/utils/musicutils.js:1053 +msgid "ethiopian" msgstr "" -#: js/activity.js:1887 -msgid "wrap mode" +#: js/utils/musicutils.js:1055 +#.TRANS: Ethiopic scale for music +msgid "geez" msgstr "" -#: js/activity.js:1890 -msgid "load file" +#: js/utils/musicutils.js:1056 +msgid "hindu" msgstr "" -#: js/activity.js:2056 -msgid "This block is deprecated." +#: js/utils/musicutils.js:1057 +msgid "hungarian" msgstr "" -#: js/activity.js:2058 -msgid "Block cannot be found." +#: js/utils/musicutils.js:1059 +#.TRANS: minor Romanian scale for music +msgid "romanian minor" msgstr "" -#: js/activity.js:2266 -msgid "Saving block artwork" +#: js/utils/musicutils.js:1060 +msgid "spanish gypsy" msgstr "" -#: js/activity.js:2277 -msgid "Erase" +#: js/utils/musicutils.js:1062 +#.TRANS: musical scale for Mid-Eastern music +msgid "maqam" msgstr "" -#: js/activity.js:2301 -#: js/activity.js:2323 -msgid "Paste" +#: js/utils/musicutils.js:1064 +#.TRANS: minor blues scale for music +msgid "minor blues" msgstr "" -#: js/activity.js:2305 -msgid "Save block help" +#: js/utils/musicutils.js:1066 +#.TRANS: major blues scale for music +msgid "major blues" msgstr "" -#: js/activity.js:2390 -msgid "Jumping to the bottom of the page." +#: js/utils/musicutils.js:1067 +msgid "whole tone" msgstr "" -#: js/activity.js:2396 -msgid "Scrolling up." +#: js/utils/musicutils.js:1069 +#.TRANS: pentatonic is a general term that means "five note scale". This scale is typically known as "minor pentatonic" +msgid "minor pentatonic" msgstr "" -#: js/activity.js:2401 -msgid "Scrolling down." +#: js/utils/musicutils.js:1071 +#.TRANS: pentatonic is a general term that means "five note scale". This scale is typically known as "major pentatonic" +msgid "major pentatonic" msgstr "" -#: js/activity.js:2406 -msgid "Extracting block" +#: js/utils/musicutils.js:1072 +msgid "chinese" msgstr "" -#: js/activity.js:2414 -msgid "Moving block up." +#: js/utils/musicutils.js:1073 +msgid "egyptian" msgstr "" -#: js/activity.js:2435 -msgid "Moving block down." +#: js/utils/musicutils.js:1075 +#.TRANS: https://en.wikipedia.org/wiki/Hirajoshi_scale NOTE: There are three different versions of this scale +msgid "hirajoshi" msgstr "" -#: js/activity.js:2456 -msgid "Moving block left." +#: js/utils/musicutils.js:1076 +msgid "Japan" msgstr "" -#: js/activity.js:2473 -msgid "Moving block right." +#: js/utils/musicutils.js:1078 +#.TRANS: https://en.wikipedia.org/wiki/In_scale and https://en.wikipedia.org/wiki/Sakura_Sakura +msgid "in" msgstr "" -#: js/activity.js:2488 -msgid "Jump to home position." +#: js/utils/musicutils.js:1080 +#.TRANS: https://en.wikipedia.org/wiki/Miny%C5%8D_scale +msgid "minyo" msgstr "" -#: js/activity.js:2515 -msgid "Hide blocks" +#: js/utils/musicutils.js:1082 +#.TRANS: Italian mathematician +msgid "fibonacci" msgstr "" -#: js/activity.js:3389 -msgid "Click the run button to run the project." +#: js/utils/musicutils.js:1083 +#: js/utils/musicutils.js:1134 +#: js/utils/musicutils.js:1177 +#: js/utils/musicutils.js:1199 +#: js/utils/synthutils.js:134 +#: js/blocks/IntervalsBlocks.js:1124 +#: js/blocks/ToneBlocks.js:946 +#: js/blocks/VolumeBlocks.js:411 +#: js/blocks/WidgetBlocks.js:399 +#: js/blocks/WidgetBlocks.js:404 +#: js/turtleactions/VolumeActions.js:218 +#: js/widgets/modewidget.js:919 +#.TRANS: customize voice +msgid "custom" msgstr "" -#: js/activity.js:3456 -#: js/SaveInterface.js:131 -#: js/SaveInterface.js:204 -#: js/SaveInterface.js:262 -#: js/SaveInterface.js:389 -#: js/SaveInterface.js:417 -#: js/ProjectStorage.js:27 -#: js/GlobalPlanet.js:467 -#: js/GlobalPlanet.js:469 -#: js/GlobalPlanet.js:495 -#.TRANS: default project title when saving as Lilypond -msgid "My Project" +#: js/utils/musicutils.js:1085 +#: js/utils/musicutils.js:1531 +#: js/blocks/WidgetBlocks.js:176 +#.TRANS: highpass filter +msgid "highpass" msgstr "" -#: js/activity.js:4261 -msgid "Show/hide block" +#: js/utils/musicutils.js:1087 +#: js/utils/musicutils.js:1532 +#.TRANS: lowpass filter +msgid "lowpass" msgstr "" -#: js/activity.js:4263 -msgid "Expand/collapse blocks" +#: js/utils/musicutils.js:1089 +#: js/utils/musicutils.js:1533 +#.TRANS: bandpass filter +msgid "bandpass" msgstr "" -#: js/activity.js:4381 -msgid "Could not parse JSON input." +#: js/utils/musicutils.js:1091 +#: js/utils/musicutils.js:1534 +#.TRANS: high-shelf filter +msgid "highshelf" msgstr "" -#: js/activity.js:4684 -#: js/activity.js:4771 -#: js/activity.js:4821 -msgid "Cannot load project from the file. Please check the file type." +#: js/utils/musicutils.js:1093 +#: js/utils/musicutils.js:1535 +#.TRANS: low-shelf filter +msgid "lowshelf" msgstr "" -#: js/activity.js:5051 -msgid "Invalid parameters" +#: js/utils/musicutils.js:1095 +#: js/utils/musicutils.js:1536 +#.TRANS: notch-shelf filter +msgid "notch" msgstr "" -#: js/turtle-singer.js:1334 -#.TRANS: partials are weighted components in a harmonic series -msgid "You must have at least one Partial block inside of a Weighted-partial block" +#: js/utils/musicutils.js:1097 +#: js/utils/musicutils.js:1537 +#.TRANS: all-pass filter +msgid "allpass" msgstr "" -#: js/turtle-singer.js:2048 -msgid "synth cannot play chords." +#: js/utils/musicutils.js:1099 +#: js/utils/musicutils.js:1538 +#.TRANS: peaking filter +msgid "peaking" msgstr "" -#: js/lilypond.js:614 -msgid "brown rat" +#: js/utils/musicutils.js:1100 +#: js/utils/musicutils.js:1546 +#: js/utils/synthutils.js:126 +#: js/blocks/PitchBlocks.js:85 +#.TRANS: sine wave +msgid "sine" msgstr "" -#: js/lilypond.js:615 -msgid "mole" +#: js/utils/musicutils.js:1101 +#: js/utils/musicutils.js:1547 +#: js/utils/synthutils.js:128 +#: js/blocks/PitchBlocks.js:39 +#.TRANS: square wave +msgid "square" msgstr "" -#: js/lilypond.js:616 -msgid "chipmunk" +#: js/utils/musicutils.js:1102 +#: js/utils/musicutils.js:1548 +#: js/utils/synthutils.js:132 +#: js/blocks/PitchBlocks.js:62 +#: js/blocks/ToneBlocks.js:39 +#.TRANS: triangle wave +msgid "triangle" msgstr "" -#: js/lilypond.js:617 -msgid "red squirrel" +#: js/utils/musicutils.js:1103 +#: js/utils/musicutils.js:1549 +#: js/utils/synthutils.js:130 +#: js/blocks/PitchBlocks.js:108 +#.TRANS: sawtooth wave +msgid "sawtooth" msgstr "" -#: js/lilypond.js:618 -msgid "guinea pig" +#: js/utils/musicutils.js:1105 +#: js/utils/musicutils.js:1312 +#: js/blocks/PitchBlocks.js:931 +#: js/blocks/PitchBlocks.js:937 +#: js/turtleactions/PitchActions.js:469 +#.TRANS: even numbers +#.TRANS: invert based on even or odd number or musical scale +msgid "even" msgstr "" -#: js/lilypond.js:619 -msgid "capybara" +#: js/utils/musicutils.js:1107 +#: js/utils/musicutils.js:1313 +#: js/blocks/PitchBlocks.js:937 +#: js/turtleactions/PitchActions.js:471 +#.TRANS: odd numbers +msgid "odd" msgstr "" -#: js/lilypond.js:620 -msgid "coypu" +#: js/utils/musicutils.js:1108 +#: js/utils/musicutils.js:1314 +#: js/blocks/PitchBlocks.js:937 +#: js/turtleactions/PitchActions.js:473 +msgid "scalar" msgstr "" -#: js/lilypond.js:621 -msgid "black rat" +#: js/utils/musicutils.js:1109 +#: js/utils/synthutils.js:72 +#: js/blocks/VolumeBlocks.js:47 +#.TRANS: musical instrument +msgid "piano" msgstr "" -#: js/lilypond.js:622 -msgid "grey squirrel" +#: js/utils/musicutils.js:1110 +#: js/utils/synthutils.js:74 +#.TRANS: musical instrument +msgid "violin" msgstr "" -#: js/lilypond.js:623 -msgid "flying squirrel" +#: js/utils/musicutils.js:1111 +#: js/utils/synthutils.js:76 +#.TRANS: viola musical instrument +msgid "viola" msgstr "" -#: js/lilypond.js:624 -msgid "bat" +#: js/utils/musicutils.js:1112 +#: js/utils/synthutils.js:114 +#.TRANS: xylophone musical instrument +msgid "xylophone" msgstr "" -#: js/lilypond.js:757 -#: js/lilypond.js:921 -#: js/lilypond.js:959 -#: js/ActionBlocks.js:1256 -#: js/ExtrasBlocks.js:553 -msgid "start drum" +#: js/utils/musicutils.js:1113 +#: js/utils/synthutils.js:136 +#.TRANS: vibraphone musical instrument +msgid "vibraphone" msgstr "" -#: js/SaveInterface.js:59 -#: js/SaveInterface.js:61 -#: js/SaveInterface.js:93 -msgid "Music Blocks Project" +#: js/utils/musicutils.js:1114 +#: js/utils/synthutils.js:78 +#.TRANS: musical instrument +msgid "cello" msgstr "" -#: js/SaveInterface.js:63 -msgid "This project was created in Music Blocks" +#: js/utils/musicutils.js:1116 +#: js/utils/synthutils.js:82 +#.TRANS: viola musical instrument +msgid "double bass" msgstr "" -#: js/SaveInterface.js:67 -msgid "Music Blocks is a Free/Libre Software application." +#: js/utils/musicutils.js:1117 +#: js/utils/synthutils.js:84 +#: js/widgets/rhythmruler.js:2511 +#.TRANS: musical instrument +msgid "guitar" msgstr "" -#: js/SaveInterface.js:69 -msgid "The source code can be accessed at" +#: js/utils/musicutils.js:1118 +#: js/utils/synthutils.js:86 +#.TRANS: musical instrument +msgid "acoustic guitar" msgstr "" -#: js/SaveInterface.js:72 -msgid "For more information, please consult the" +#: js/utils/musicutils.js:1119 +#: js/utils/synthutils.js:88 +#.TRANS: musical instrument +msgid "flute" msgstr "" -#: js/SaveInterface.js:83 -msgid "Alternatively, open the file in Music Blocks using the Load project button." +#: js/utils/musicutils.js:1120 +#: js/utils/synthutils.js:90 +#.TRANS: musical instrument +msgid "clarinet" msgstr "" -#: js/SaveInterface.js:85 -msgid "Project Code" +#: js/utils/musicutils.js:1121 +#: js/utils/synthutils.js:92 +#.TRANS: musical instrument +msgid "saxophone" msgstr "" -#: js/SaveInterface.js:87 -msgid "This code stores data about the blocks in a project." +#: js/utils/musicutils.js:1122 +#: js/utils/synthutils.js:94 +#.TRANS: musical instrument +msgid "tuba" msgstr "" -#: js/SaveInterface.js:89 -msgid "Show" +#: js/utils/musicutils.js:1123 +#: js/utils/synthutils.js:96 +#.TRANS: musical instrument +msgid "trumpet" msgstr "" -#: js/SaveInterface.js:91 -msgid "Hide" +#: js/utils/musicutils.js:1124 +#: js/utils/synthutils.js:98 +#.TRANS: musical instrument +msgid "oboe" msgstr "" -#: js/SaveInterface.js:197 -#: js/SaveInterface.js:58 -msgid "No description provided" +#: js/utils/musicutils.js:1125 +#: js/utils/synthutils.js:100 +#.TRANS: musical instrument +msgid "trombone" msgstr "" -#: js/SaveInterface.js:332 -msgid "Your recording is in progress." +#: js/utils/musicutils.js:1126 +#: js/utils/synthutils.js:116 +#.TRANS: polytone synthesizer +msgid "electronic synth" msgstr "" -#: js/SaveInterface.js:401 -#.TRANS: File name prompt for save as Lilypond -msgid "File name" +#: js/utils/musicutils.js:1127 +#: js/utils/synthutils.js:118 +#.TRANS: simple monotone synthesizer +msgid "simple 1" msgstr "" -#: js/SaveInterface.js:403 -#: js/StringHelper.js:39 -#.TRANS: Project title prompt for save as Lilypond -msgid "Project title" +#: js/utils/musicutils.js:1128 +msgid "simple 2" msgstr "" -#: js/SaveInterface.js:405 -#.TRANS: Project title prompt for save as Lilypond -msgid "Project author" +#: js/utils/musicutils.js:1129 +msgid "simple 3" msgstr "" -#: js/SaveInterface.js:407 -#.TRANS: MIDI prompt for save as Lilypond -msgid "Include MIDI output?" +#: js/utils/musicutils.js:1130 +msgid "simple 4" msgstr "" -#: js/SaveInterface.js:409 -#.TRANS: Guitar prompt for save as Lilypond -msgid "Include guitar tablature output?" +#: js/utils/musicutils.js:1131 +#: js/utils/synthutils.js:58 +#: js/blocks/DrumBlocks.js:191 +#.TRANS: white noise synthesizer +msgid "white noise" msgstr "" -#: js/SaveInterface.js:411 -#.TRANS: Lilypond is a scripting language for generating sheet music -msgid "Save as Lilypond" +#: js/utils/musicutils.js:1132 +#: js/utils/synthutils.js:60 +#.TRANS: brown noise synthesizer +msgid "brown noise" msgstr "" -#: js/SaveInterface.js:426 -#: js/EnsembleBlocks.js:75 -#: js/EnsembleBlocks.js:154 -#: js/EnsembleBlocks.js:216 -#: js/EnsembleBlocks.js:302 -#: js/EnsembleBlocks.js:348 -#: js/EnsembleBlocks.js:389 -#: js/EnsembleBlocks.js:441 -#: js/EnsembleBlocks.js:490 -#: js/EnsembleBlocks.js:536 -#: js/EnsembleBlocks.js:583 -#: js/EnsembleBlocks.js:637 -#: js/EnsembleBlocks.js:753 -#: js/EnsembleBlocks.js:840 -#: js/EnsembleBlocks.js:899 -#: js/EnsembleBlocks.js:942 -#: js/EnsembleBlocks.js:1212 -#: js/EnsembleBlocks.js:1280 -#.TRANS: default project author when saving as Lilypond -msgid "Mr. Mouse" +#: js/utils/musicutils.js:1133 +#: js/utils/synthutils.js:62 +#.TRANS: pink noise synthesizer +msgid "pink noise" msgstr "" -#: js/SaveInterface.js:573 -msgid "The Lilypond code is copied to clipboard. You can paste it here: " +#: js/utils/musicutils.js:1135 +#: js/utils/synthutils.js:148 +#: js/widgets/rhythmruler.js:2057 +#: js/widgets/rhythmruler.js:2319 +#.TRANS: musical instrument +msgid "snare drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:50 -#: js/RhythmBlockPaletteBlocks.js:232 -#.TRANS: rhythm block -#.TRANS: translate "rhythm1" as rhythm -msgid "rhythm1" +#: js/utils/musicutils.js:1136 +#: js/utils/synthutils.js:150 +#.TRANS: musical instrument +msgid "kick drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:70 -#: js/RhythmBlockPaletteBlocks.js:251 -#: js/RhythmBlockPaletteBlocks.js:484 -#: js/RhythmBlockPaletteBlocks.js:553 -#: js/RhythmBlockPaletteBlocks.js:874 -msgid "number of notes" +#: js/utils/musicutils.js:1137 +#: js/utils/synthutils.js:152 +#.TRANS: musical instrument +msgid "tom tom" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:126 -msgid "polyphonic rhythm" +#: js/utils/musicutils.js:1138 +#: js/utils/synthutils.js:154 +#.TRANS: musical instrument +msgid "floor tom" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:218 -msgid "The Rhythm block is used to generate rhythm patterns." +#: js/utils/musicutils.js:1139 +#: js/utils/synthutils.js:156 +#.TRANS: musical instrument +msgid "bass drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:279 -msgid "1/64 note" +#: js/utils/musicutils.js:1140 +#: js/utils/synthutils.js:158 +#.TRANS: a drum made from an inverted cup +msgid "cup drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:303 -msgid "1/32 note" +#: js/utils/musicutils.js:1141 +#: js/utils/synthutils.js:160 +#.TRANS: musical instrument +msgid "darbuka drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:331 -msgid "1/16 note" +#: js/utils/musicutils.js:1142 +#: js/utils/synthutils.js:164 +#.TRANS: musical instrument +msgid "hi hat" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:359 -msgid "eighth note" +#: js/utils/musicutils.js:1143 +#: js/utils/synthutils.js:166 +#.TRANS: a small metal bell +msgid "ride bell" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:387 -msgid "quarter note" +#: js/utils/musicutils.js:1144 +#: js/utils/synthutils.js:168 +#.TRANS: musical instrument +msgid "cow bell" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:415 -msgid "half note" +#: js/utils/musicutils.js:1145 +msgid "japanese drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:443 -msgid "whole note" +#: js/utils/musicutils.js:1146 +#: js/utils/synthutils.js:174 +#.TRANS: musical instrument +msgid "japanese bell" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:481 -#: js/RhythmBlockPaletteBlocks.js:550 -#: js/RhythmBlockPaletteBlocks.js:601 -#.TRANS: A tuplet is a note value divided into irregular time values. -msgid "tuplet" +#: js/utils/musicutils.js:1147 +#: js/utils/synthutils.js:170 +#.TRANS: musical instrument +msgid "triangle bell" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:767 -msgid "septuplet" +#: js/utils/musicutils.js:1148 +#: js/utils/synthutils.js:172 +#.TRANS: musical instrument +msgid "finger cymbals" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:795 -msgid "quintuplet" +#: js/utils/musicutils.js:1149 +#: js/utils/synthutils.js:176 +#.TRANS: a musically tuned set of bells +msgid "chime" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:823 -msgid "triplet" +#: js/utils/musicutils.js:1150 +#: js/utils/synthutils.js:178 +#.TRANS: a musical instrument +msgid "gong" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:850 -msgid "simple tuplet" +#: js/utils/musicutils.js:1151 +#: js/utils/synthutils.js:180 +#.TRANS: sound effect +msgid "clang" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:860 -msgid "Tuplets are a collection of notes that get scaled to a specific duration." +#: js/utils/musicutils.js:1152 +#: js/utils/synthutils.js:182 +#.TRANS: sound effect +msgid "crash" msgstr "" -#: js/WidgetBlocks.js:71 -#.TRANS: sound envelope (ADSR) -msgid "envelope" +#: js/utils/musicutils.js:1153 +#: js/utils/synthutils.js:184 +#.TRANS: sound effect +msgid "bottle" msgstr "" -#: js/WidgetBlocks.js:79 -#.TRANS: Attack time is the time taken for initial run-up of level from nil to peak, beginning when the key is first pressed. -msgid "attack" +#: js/utils/musicutils.js:1154 +#: js/utils/synthutils.js:186 +#.TRANS: sound effect +msgid "clap" msgstr "" -#: js/WidgetBlocks.js:81 -#.TRANS: Decay time is the time taken for the subsequent run down from the attack level to the designated sustain level. -msgid "decay" +#: js/utils/musicutils.js:1155 +#: js/utils/synthutils.js:188 +#.TRANS: sound effect +msgid "slap" msgstr "" -#: js/WidgetBlocks.js:83 -#.TRANS: Sustain level is the level during the main sequence of the sound's duration, until the key is released. -msgid "sustain" +#: js/utils/musicutils.js:1156 +#: js/utils/synthutils.js:190 +#.TRANS: sound effect +msgid "splash" msgstr "" -#: js/WidgetBlocks.js:85 -#.TRANS: Release time is the time taken for the level to decay from the sustain level to zero after the key is released. -msgid "release" +#: js/utils/musicutils.js:1157 +#: js/utils/synthutils.js:192 +#.TRANS: sound effect +msgid "bubbles" msgstr "" -#: js/WidgetBlocks.js:96 -msgid "Attack value should be from 0 to 100." +#: js/utils/musicutils.js:1158 +#: js/utils/synthutils.js:194 +#.TRANS: sound effect +msgid "raindrop" msgstr "" -#: js/WidgetBlocks.js:99 -msgid "Decay value should be from 0 to 100." +#: js/utils/musicutils.js:1159 +#: js/utils/synthutils.js:196 +#.TRANS: animal sound effect +msgid "cat" msgstr "" -#: js/WidgetBlocks.js:102 -msgid "Sustain value should be from 0 to 100." +#: js/utils/musicutils.js:1160 +#: js/utils/synthutils.js:198 +#.TRANS: animal sound effect +msgid "cricket" msgstr "" -#: js/WidgetBlocks.js:105 -msgid "Release value should be from 0-100." +#: js/utils/musicutils.js:1161 +#: js/utils/synthutils.js:200 +#.TRANS: animal sound effect +msgid "dog" msgstr "" -#: js/WidgetBlocks.js:121 -msgid "You are adding multiple envelope blocks." +#: js/utils/musicutils.js:1163 +#: js/utils/synthutils.js:102 +#.TRANS: musical instrument +msgid "banjo" msgstr "" -#: js/WidgetBlocks.js:144 -#.TRANS: a filter removes some unwanted components from a signal -msgid "filter" +#: js/utils/musicutils.js:1164 +#: js/utils/synthutils.js:104 +#.TRANS: musical instrument +msgid "koto" msgstr "" -#: js/WidgetBlocks.js:149 -#: js/musicutils.js:706 -#: js/musicutils.js:1105 -#.TRANS: highpass filter -msgid "highpass" +#: js/utils/musicutils.js:1165 +#: js/utils/synthutils.js:106 +#.TRANS: musical instrument +msgid "dulcimer" msgstr "" -#: js/WidgetBlocks.js:152 -#: js/ToneBlocks.js:42 -#: js/timbre.js:1558 -#: js/timbre.js:1808 -#.TRANS: type of filter, e.g., lowpass, highpass, etc. -#.TRANS: there are different types (sine, triangle, square...) of oscillators. -msgid "type" +#: js/utils/musicutils.js:1166 +#: js/utils/synthutils.js:108 +#.TRANS: musical instrument +msgid "electric guitar" msgstr "" -#: js/WidgetBlocks.js:154 -#: js/timbre.js:1818 -#.TRANS: rolloff is the steepness of a change in frequency. -msgid "rolloff" +#: js/utils/musicutils.js:1167 +#: js/utils/synthutils.js:110 +#.TRANS: musical instrument +msgid "bassoon" msgstr "" -#: js/WidgetBlocks.js:155 -#: js/MediaBlocks.js:692 -#: js/temperament.js:382 -#: js/temperament.js:417 -#: js/temperament.js:477 -#: js/temperament.js:485 -#: js/temperament.js:1348 -#: js/timbre.js:1842 -msgid "frequency" +#: js/utils/musicutils.js:1168 +#: js/utils/synthutils.js:112 +#.TRANS: musical instrument +msgid "celeste" msgstr "" -#: js/WidgetBlocks.js:179 -#.TRANS: rolloff is the steepness of a change in frequency. -msgid "Rolloff value should be either -12, -24, -48, or -96 decibels/octave." +#: js/utils/musicutils.js:1170 +#: js/widgets/temperament.js:787 +#.TRANS: musical temperament +msgid "equal" msgstr "" -#: js/WidgetBlocks.js:211 -msgid "The Temperament tool is used to define custom tuning." +#: js/utils/musicutils.js:1172 +#.TRANS: musical temperament +msgid "Pythagorean" msgstr "" -#: js/WidgetBlocks.js:277 -#: js/sampler.js:329 -msgid "Upload a sample and adjust its pitch center." +#: js/utils/musicutils.js:1174 +#.TRANS: musical temperament +msgid "just intonation" msgstr "" -#: js/WidgetBlocks.js:284 -#.TRANS: the speed at music is should be played. -msgid "sampler" +#: js/utils/musicutils.js:1176 +#.TRANS: musical temperament +msgid "meantone" msgstr "" -#: js/WidgetBlocks.js:329 -#: js/WidgetBlocks.js:334 -#: js/IntervalsBlocks.js:928 -#: js/VolumeBlocks.js:411 -#: js/ToneBlocks.js:946 -#: js/VolumeActions.js:218 -#: js/musicutils.js:704 -#: js/musicutils.js:755 -#: js/musicutils.js:798 -#: js/musicutils.js:820 -#: js/musicutils.js:1136 -#: js/synthutils.js:118 -#: js/modewidget.js:919 -#.TRANS: customize voice -msgid "custom" +#: js/utils/musicutils.js:1193 +msgid "major 7th" msgstr "" -#: js/WidgetBlocks.js:432 -msgid "The Meter block opens a tool to select strong beats for the meter." +#: js/utils/musicutils.js:1194 +msgid "minor 7th" msgstr "" -#: js/WidgetBlocks.js:473 -msgid "The oscilloscope block opens a tool to visualize waveforms." +#: js/utils/musicutils.js:1195 +msgid "dominant 7th" msgstr "" -#: js/WidgetBlocks.js:478 -msgid "oscilloscope" +#: js/utils/musicutils.js:1196 +msgid "minor-major 7th" msgstr "" -#: js/WidgetBlocks.js:530 -msgid "The Custom mode block opens a tool to explore musical mode (the spacing of the notes in a scale)." +#: js/utils/musicutils.js:1197 +msgid "fully-diminished 7th" msgstr "" -#: js/WidgetBlocks.js:536 -#.TRANS: musical mode is the pattern of half-steps in an octave, e.g., Major or Minor modes -msgid "custom mode" +#: js/utils/musicutils.js:1198 +msgid "half-diminished 7th" msgstr "" -#: js/WidgetBlocks.js:570 -msgid "The Tempo block opens a metronome to visualize the beat." +#: js/utils/musicutils.js:1557 +#: js/utils/musicutils.js:1569 +msgid "Equal (12EDO)" msgstr "" -#: js/WidgetBlocks.js:617 -msgid "The Arpeggio Widget is used to compose chord sequences." +#: js/utils/musicutils.js:1558 +#: js/utils/musicutils.js:1570 +msgid "5-limit Just Intonation" msgstr "" -#: js/WidgetBlocks.js:623 -#: js/IntervalsBlocks.js:683 -msgid "arpeggio" +#: js/utils/musicutils.js:1559 +#: js/utils/musicutils.js:1571 +msgid "Pythagorean (3-limit JI)" msgstr "" -#: js/WidgetBlocks.js:677 -msgid "The Pitch drum matrix is used to map pitches to drum sounds." +#: js/utils/musicutils.js:1560 +#: js/utils/musicutils.js:1561 +#: js/utils/musicutils.js:1572 +#: js/utils/musicutils.js:1573 +msgid "Meantone" msgstr "" -#: js/WidgetBlocks.js:682 -#.TRANS: makes a mapping between pitches and drum sounds -msgid "pitch-drum mapper" +#: js/utils/musicutils.js:1574 +msgid "Custom" msgstr "" -#: js/WidgetBlocks.js:724 -msgid "You must have at least one pitch block and one drum block in the matrix." +#: js/utils/musicutils.js:5387 +#: js/utils/musicutils.js:5430 +msgid "current" msgstr "" -#: js/WidgetBlocks.js:746 -msgid "The Pitch slider tool to is used to generate pitches at selected frequencies." +#: js/utils/musicutils.js:5390 +#: js/utils/musicutils.js:5421 +msgid "next" msgstr "" -#: js/WidgetBlocks.js:751 -#.TRANS: widget to generate pitches using a slider -msgid "pitch slider" +#: js/utils/musicutils.js:5393 +#: js/utils/musicutils.js:5426 +msgid "previous" msgstr "" -#: js/WidgetBlocks.js:788 -msgid "chromatic keyboard" +#: js/utils/synthutils.js:120 +#.TRANS: simple monotone synthesizer +msgid "simple-2" msgstr "" -#: js/WidgetBlocks.js:815 -#: js/WidgetBlocks.js:874 -#.TRANS: widget to generate pitches using a slider -msgid "music keyboard" +#: js/utils/synthutils.js:122 +#.TRANS: simple monotone synthesizer +msgid "simple-3" msgstr "" -#: js/WidgetBlocks.js:859 -#: js/WidgetBlocks.js:866 -msgid "The Music keyboard block opens a piano keyboard that can be used to create notes." +#: js/utils/synthutils.js:124 +#.TRANS: simple monotone synthesizer +msgid "simple-4" msgstr "" -#: js/WidgetBlocks.js:910 -msgid "The Pitch staircase tool to is used to generate pitches from a given ratio." +#: js/utils/synthutils.js:162 +#.TRANS: musical instrument +msgid "taiko" msgstr "" -#: js/WidgetBlocks.js:917 -#.TRANS: generate a progressive sequence of pitches -msgid "pitch staircase" +#: js/blocks/ActionBlocks.js:58 +msgid "The Return block will return a value from an action." msgstr "" -#: js/WidgetBlocks.js:982 -msgid "The Rhythm Maker block opens a tool to create drum machines." +#: js/blocks/ActionBlocks.js:75 +msgid "return" msgstr "" -#: js/WidgetBlocks.js:1036 -msgid "G major scale" +#: js/blocks/ActionBlocks.js:128 +msgid "The Return to URL block will return a value to a webpage." msgstr "" -#: js/WidgetBlocks.js:1064 -msgid "C major scale" +#: js/blocks/ActionBlocks.js:145 +msgid "return to URL" msgstr "" -#: js/WidgetBlocks.js:1097 -msgid "The Phrase Maker block opens a tool to create musical phrases." +#: js/blocks/ActionBlocks.js:233 +#: js/blocks/ActionBlocks.js:290 +#: js/blocks/ActionBlocks.js:501 +#: js/blocks/ActionBlocks.js:688 +msgid "The Calculate block returns a value calculated by an action." msgstr "" -#: js/WidgetBlocks.js:1104 -#.TRANS: assigns pitch to a sequence of beats to generate a melody -msgid "phrase maker" +#: js/blocks/ActionBlocks.js:251 +#: js/blocks/ActionBlocks.js:517 +#: js/blocks/ActionBlocks.js:707 +msgid "calculate" msgstr "" -#: js/WidgetBlocks.js:1168 -msgid "You must have at least one pitch block and one rhythm block in the matrix." +#: js/blocks/ActionBlocks.js:376 +#: js/blocks/ActionBlocks.js:593 +#: js/blocks/ActionBlocks.js:942 +#: js/blocks/ActionBlocks.js:1389 +#.TRANS: do is the do something or take an action. +msgid "The Do block is used to initiate an action." msgstr "" -#: js/WidgetBlocks.js:1220 -msgid "The Status block opens a tool for inspecting the status of Music Blocks as it is running." +#: js/blocks/ActionBlocks.js:390 +#: js/blocks/ActionBlocks.js:610 +#: js/blocks/ActionBlocks.js:959 +#: js/blocks/ActionBlocks.js:1048 +#: js/blocks/MeterBlocks.js:769 +msgid "do1" msgstr "" -#: js/IntervalsBlocks.js:45 -msgid "set temperament" +#: js/blocks/ActionBlocks.js:390 +#: js/blocks/ActionBlocks.js:610 +#: js/blocks/ActionBlocks.js:959 +#: js/blocks/ActionBlocks.js:1048 +#: js/blocks/FlowBlocks.js:742 +#: js/blocks/FlowBlocks.js:822 +#: js/blocks/MeterBlocks.js:769 +msgid "do" msgstr "" -#: js/IntervalsBlocks.js:63 -#: js/MediaBlocks.js:746 -#: js/PitchBlocks.js:657 -#: js/PitchBlocks.js:933 -#: js/PitchBlocks.js:972 -#: js/PitchBlocks.js:1005 -#: js/PitchBlocks.js:1166 -#: js/PitchBlocks.js:1679 -#: js/PitchBlocks.js:1720 -#: js/PitchBlocks.js:1827 -#: js/ToneBlocks.js:1025 -#.TRANS: adjusts the shift up or down by one octave (twelve half-steps in the interval between two notes, one having twice or half the frequency in Hz of the other.) -msgid "octave" +#: js/blocks/ActionBlocks.js:791 +#: js/blocks/ActionBlocks.js:865 +msgid "The Arg block contains the value of an argument passed to an action." msgstr "" -#: js/IntervalsBlocks.js:99 -msgid "The Temperament name block is used to select a tuning method." +#: js/blocks/ActionBlocks.js:806 +#: js/blocks/ActionBlocks.js:878 +msgid "arg" msgstr "" -#: js/IntervalsBlocks.js:161 -msgid "doubly" +#: js/blocks/ActionBlocks.js:836 +#: js/blocks/ActionBlocks.js:900 +#: js/blocks/ActionBlocks.js:908 +msgid "Invalid argument" msgstr "" -#: js/IntervalsBlocks.js:166 -msgid "The Doubly block will double the size of an interval." +#: js/blocks/ActionBlocks.js:944 +msgid "In the example, it is used with the One of block to choose a random phase." msgstr "" -#: js/IntervalsBlocks.js:262 -msgid "interval number" +#: js/blocks/ActionBlocks.js:1019 +#: js/blocks/ActionBlocks.js:1026 +msgid "The Listen block is used to listen for an event such as a mouse click." msgstr "" -#: js/IntervalsBlocks.js:330 -#.TRANS: measure the distance between two pitches in semi-tones -msgid "semi-tone interval measure" +#: js/blocks/ActionBlocks.js:1028 +msgid "When the event happens, an action is taken." msgstr "" -#: js/IntervalsBlocks.js:397 -#: js/IntervalsBlocks.js:513 -msgid "You must use two pitch blocks when measuring an interval." +#: js/blocks/ActionBlocks.js:1045 +msgid "on" msgstr "" -#: js/IntervalsBlocks.js:439 -msgid "The Scalar interval block measures the distance between two notes in the current key and mode." +#: js/blocks/ActionBlocks.js:1048 +#: js/blocks/ActionBlocks.js:1049 +#: js/blocks/ActionBlocks.js:1153 +msgid "event" msgstr "" -#: js/IntervalsBlocks.js:445 -#.TRANS: measure the distance between two pitches in steps of musical scale -msgid "scalar interval measure" +#: js/blocks/ActionBlocks.js:1133 +msgid "The Broadcast block is used to trigger an event." msgstr "" -#: js/IntervalsBlocks.js:592 -#: js/musicutils.js:637 -#: js/musicutils.js:908 -#.TRANS: perfect is a music term related to intervals -msgid "perfect" +#: js/blocks/ActionBlocks.js:1151 +msgid "broadcast" msgstr "" -#: js/IntervalsBlocks.js:621 -msgid "In the figure, we add sol# to sol." +#: js/blocks/ActionBlocks.js:1208 +msgid "Each Start block is a separate voice." msgstr "" -#: js/IntervalsBlocks.js:627 -#: js/OrnamentBlocks.js:220 -#.TRANS: calculate a relative step between notes based on semi-tones -msgid "semi-tone interval" +#: js/blocks/ActionBlocks.js:1304 +msgid "It is often used for storing a phrase of music that is repeated." msgstr "" -#: js/IntervalsBlocks.js:676 -msgid "The output of the example is: do, mi, sol, sol, ti, mi" +#: js/blocks/ActionBlocks.js:1495 +msgid "define temperament" msgstr "" -#: js/IntervalsBlocks.js:735 -msgid "The Chord block calculates common chords." +#: js/blocks/BooleanBlocks.js:44 +msgid "The Not block is the logical not operator." msgstr "" -#: js/IntervalsBlocks.js:737 -msgid "In the figure, we generate a C-major chord." +#: js/blocks/BooleanBlocks.js:62 +msgid "not" msgstr "" -#: js/IntervalsBlocks.js:742 -msgid "chord" +#: js/blocks/BooleanBlocks.js:134 +msgid "The And block is the logical and operator." msgstr "" -#: js/IntervalsBlocks.js:794 -msgid "The Ratio Interval block calculates an interval based on a ratio." +#: js/blocks/BooleanBlocks.js:152 +msgid "and" msgstr "" -#: js/IntervalsBlocks.js:799 -msgid "ratio interval" +#: js/blocks/BooleanBlocks.js:218 +msgid "The Or block is the logical or operator." msgstr "" -#: js/IntervalsBlocks.js:868 -msgid "In the figure, we add la to sol." +#: js/blocks/BooleanBlocks.js:236 +msgid "or" msgstr "" -#: js/IntervalsBlocks.js:924 -#.TRANS: define a custom mode -msgid "define mode" +#: js/blocks/BooleanBlocks.js:302 +msgid "The XOR block is the logical XOR operator." msgstr "" -#: js/IntervalsBlocks.js:977 -msgid "movable Do" +#: js/blocks/BooleanBlocks.js:320 +msgid "xor" msgstr "" -#: js/IntervalsBlocks.js:1028 -#.TRANS: mode length is the number of notes in the mode, e.g., 7 for major and minor scales; 12 for chromatic scales -msgid "mode length" +#: js/blocks/BooleanBlocks.js:808 +msgid "The Equal block returns True if the two numbers are equal." msgstr "" -#: js/IntervalsBlocks.js:1037 -msgid "The Mode length block is the number of notes in the current scale." +#: js/blocks/BooleanBlocks.js:909 +msgid "The Not-equal-to block returns True if the two numbers are not equal to each other." msgstr "" -#: js/IntervalsBlocks.js:1039 -msgid "Most Western scales have 7 notes." +#: js/blocks/BooleanBlocks.js:1008 +msgid "The Boolean block is used to specify true or false." msgstr "" -#: js/IntervalsBlocks.js:1088 -#.TRANS: the mode in music is 'major', 'minor', etc. -msgid "current mode" +#: js/blocks/BoxesBlocks.js:53 +#: js/blocks/BoxesBlocks.js:59 +msgid "The Add-to block is used to add to the value stored in a box." msgstr "" -#: js/IntervalsBlocks.js:1141 -#.TRANS: the key is a group of pitches with which a music composition is created -msgid "current key" +#: js/blocks/BoxesBlocks.js:61 +msgid "It can also be used with other blocks such as Color and Pen size." msgstr "" -#: js/IntervalsBlocks.js:1193 -#: js/IntervalsBlocks.js:1238 -#.TRANS: set the key and mode, e.g. C Major -msgid "set key" +#: js/blocks/BoxesBlocks.js:73 +msgid "add" msgstr "" -#: js/IntervalsBlocks.js:1247 -#: js/IntervalsBlocks.js:1253 -msgid "The Set key block is used to set the key and mode," +#: js/blocks/BoxesBlocks.js:75 +#: js/widgets/temperament.js:857 +msgid "to" msgstr "" -#: js/IntervalsBlocks.js:1253 -msgid "eg C Major" +#: js/blocks/BoxesBlocks.js:75 +#: js/blocks/BoxesBlocks.js:595 +#: js/blocks/HeapBlocks.js:544 +msgid "value1" msgstr "" -#: js/IntervalsBlocks.js:1266 -#: js/DictBlocks.js:215 -#: js/DictBlocks.js:216 -#: js/DictBlocks.js:289 -#: js/DictBlocks.js:290 -#: js/DictBlocks.js:357 -#: js/DictBlocks.js:430 -#: js/DictBlocks.js:431 -#.TRANS: key, e.g., C in C Major -msgid "key" +#: js/blocks/BoxesBlocks.js:118 +msgid "Block does not support incrementing." msgstr "" -#: js/ActionBlocks.js:58 -msgid "The Return block will return a value from an action." +#: js/blocks/BoxesBlocks.js:152 +msgid "The Add-1-to block adds one to the value stored in a box." msgstr "" -#: js/ActionBlocks.js:75 -msgid "return" +#: js/blocks/BoxesBlocks.js:163 +msgid "add 1 to" msgstr "" -#: js/ActionBlocks.js:128 -msgid "The Return to URL block will return a value to a webpage." +#: js/blocks/BoxesBlocks.js:211 +msgid "The Subtract-1-from block subtracts one from the value stored in a box." msgstr "" -#: js/ActionBlocks.js:145 -msgid "return to URL" +#: js/blocks/BoxesBlocks.js:222 +msgid "subtract 1 from" msgstr "" -#: js/ActionBlocks.js:233 -#: js/ActionBlocks.js:290 -#: js/ActionBlocks.js:501 -#: js/ActionBlocks.js:688 -msgid "The Calculate block returns a value calculated by an action." +#: js/blocks/BoxesBlocks.js:270 +#: js/blocks/BoxesBlocks.js:387 +msgid "The Box block returns the value stored in a box." msgstr "" -#: js/ActionBlocks.js:251 -#: js/ActionBlocks.js:517 -#: js/ActionBlocks.js:707 -msgid "calculate" +#: js/blocks/BoxesBlocks.js:500 +#: js/blocks/BoxesBlocks.js:576 +msgid "The Store in block will store a value in a box." msgstr "" -#: js/ActionBlocks.js:376 -#: js/ActionBlocks.js:593 -#: js/ActionBlocks.js:942 -#: js/ActionBlocks.js:1389 -#.TRANS: do is the do something or take an action. -msgid "The Do block is used to initiate an action." +#: js/blocks/BoxesBlocks.js:595 +#: js/blocks/EnsembleBlocks.js:391 +#: js/blocks/EnsembleBlocks.js:402 +msgid "name1" msgstr "" -#: js/ActionBlocks.js:390 -#: js/ActionBlocks.js:610 -#: js/ActionBlocks.js:959 -#: js/ActionBlocks.js:1048 -#: js/MeterBlocks.js:769 -msgid "do1" +#: js/blocks/BoxesBlocks.js:652 +msgid "The Box2 block returns the value stored in Box2." msgstr "" -#: js/ActionBlocks.js:390 -#: js/ActionBlocks.js:610 -#: js/ActionBlocks.js:959 -#: js/ActionBlocks.js:1048 -#: js/FlowBlocks.js:742 -#: js/FlowBlocks.js:822 -#: js/MeterBlocks.js:769 -msgid "do" +#: js/blocks/BoxesBlocks.js:703 +msgid "The Store in Box2 block is used to store a value in Box2." msgstr "" -#: js/ActionBlocks.js:791 -#: js/ActionBlocks.js:865 -msgid "The Arg block contains the value of an argument passed to an action." +#: js/blocks/BoxesBlocks.js:715 +msgid "store in box2" msgstr "" -#: js/ActionBlocks.js:806 -#: js/ActionBlocks.js:878 -msgid "arg" +#: js/blocks/BoxesBlocks.js:761 +msgid "The Box1 block returns the value stored in Box1." msgstr "" -#: js/ActionBlocks.js:836 -#: js/ActionBlocks.js:900 -#: js/ActionBlocks.js:908 -msgid "Invalid argument" +#: js/blocks/BoxesBlocks.js:812 +msgid "The Store in Box1 block is used to store a value in Box1." msgstr "" -#: js/ActionBlocks.js:944 -msgid "In the example, it is used with the One of block to choose a random phase." +#: js/blocks/BoxesBlocks.js:826 +msgid "store in box1" msgstr "" -#: js/ActionBlocks.js:1019 -#: js/ActionBlocks.js:1026 -msgid "The Listen block is used to listen for an event such as a mouse click." +#: js/blocks/DictBlocks.js:77 +msgid "show dictionary" msgstr "" -#: js/ActionBlocks.js:1028 -msgid "When the event happens, an action is taken." +#: js/blocks/DictBlocks.js:80 +#: js/blocks/DictBlocks.js:145 +#: js/blocks/DictBlocks.js:216 +#: js/blocks/DictBlocks.js:290 +#: js/blocks/ProgramBlocks.js:396 +#: js/blocks/ProgramBlocks.js:501 +#: js/blocks/ProgramBlocks.js:664 +msgid "My Dictionary" msgstr "" -#: js/ActionBlocks.js:1045 -msgid "on" +#: js/blocks/DictBlocks.js:129 +msgid "The Dictionary block returns a dictionary." msgstr "" -#: js/ActionBlocks.js:1048 -#: js/ActionBlocks.js:1049 -#: js/ActionBlocks.js:1153 -msgid "event" +#: js/blocks/DictBlocks.js:197 +#: js/blocks/DictBlocks.js:339 +msgid "The Get-dict block returns a value in the dictionary for a specified key." msgstr "" -#: js/ActionBlocks.js:1133 -msgid "The Broadcast block is used to trigger an event." +#: js/blocks/DictBlocks.js:212 +#: js/blocks/DictBlocks.js:354 +#.TRANS: retrieve a value from the dictionary with a given key +msgid "get value" msgstr "" -#: js/ActionBlocks.js:1151 -msgid "broadcast" +#: js/blocks/DictBlocks.js:215 +#: js/blocks/DictBlocks.js:216 +#: js/blocks/DictBlocks.js:289 +#: js/blocks/DictBlocks.js:290 +#: js/blocks/DictBlocks.js:357 +#: js/blocks/DictBlocks.js:430 +#: js/blocks/DictBlocks.js:431 +msgid "key2" msgstr "" -#: js/ActionBlocks.js:1208 -msgid "Each Start block is a separate voice." +#: js/blocks/DictBlocks.js:215 +#: js/blocks/DictBlocks.js:216 +#: js/blocks/DictBlocks.js:289 +#: js/blocks/DictBlocks.js:290 +#: js/blocks/DictBlocks.js:357 +#: js/blocks/DictBlocks.js:430 +#: js/blocks/DictBlocks.js:431 +#: js/blocks/IntervalsBlocks.js:1462 +#.TRANS: key, e.g., C in C Major +msgid "key" msgstr "" -#: js/ActionBlocks.js:1304 -msgid "It is often used for storing a phrase of music that is repeated." +#: js/blocks/DictBlocks.js:271 +#: js/blocks/DictBlocks.js:411 +msgid "The Set-dict block sets a value in the dictionary for a specified key." msgstr "" -#: js/ActionBlocks.js:1495 -msgid "define temperament" +#: js/blocks/DictBlocks.js:286 +#: js/blocks/DictBlocks.js:427 +#.TRANS: set a value in the dictionary for a given key +msgid "set value" msgstr "" -#: js/EnsembleBlocks.js:66 +#: js/blocks/EnsembleBlocks.js:66 msgid "mouse index heap" msgstr "" -#: js/EnsembleBlocks.js:68 +#: js/blocks/EnsembleBlocks.js:68 msgid "The Mouse index heap block returns a value in the heap at a specified location for a specified mouse." msgstr "" -#: js/EnsembleBlocks.js:77 -#: js/EnsembleBlocks.js:1080 +#: js/blocks/EnsembleBlocks.js:77 +#: js/blocks/EnsembleBlocks.js:1080 msgid "mouse name" msgstr "" -#: js/EnsembleBlocks.js:77 -#: js/EnsembleBlocks.js:92 -#: js/HeapBlocks.js:544 +#: js/blocks/EnsembleBlocks.js:77 +#: js/blocks/EnsembleBlocks.js:92 +#: js/blocks/HeapBlocks.js:544 #.TRANS: value1 is a numeric value (JAPANESE ONLY) msgid "index" msgstr "" -#: js/EnsembleBlocks.js:80 +#: js/blocks/EnsembleBlocks.js:80 msgid "turtle index heap" msgstr "" -#: js/EnsembleBlocks.js:82 +#: js/blocks/EnsembleBlocks.js:82 msgid "The Turtle index heap block returns a value in the heap at a specified location for a specified turtle." msgstr "" -#: js/EnsembleBlocks.js:90 -#: js/EnsembleBlocks.js:167 -#: js/EnsembleBlocks.js:230 -#: js/EnsembleBlocks.js:316 -#: js/EnsembleBlocks.js:362 -#: js/EnsembleBlocks.js:400 -#: js/EnsembleBlocks.js:454 -#: js/EnsembleBlocks.js:504 -#: js/EnsembleBlocks.js:550 -#: js/EnsembleBlocks.js:597 -#: js/EnsembleBlocks.js:651 -#: js/EnsembleBlocks.js:763 -#: js/EnsembleBlocks.js:854 -#: js/EnsembleBlocks.js:915 -#: js/EnsembleBlocks.js:955 -#: js/EnsembleBlocks.js:1219 -#: js/EnsembleBlocks.js:1293 +#: js/blocks/EnsembleBlocks.js:90 +#: js/blocks/EnsembleBlocks.js:167 +#: js/blocks/EnsembleBlocks.js:230 +#: js/blocks/EnsembleBlocks.js:316 +#: js/blocks/EnsembleBlocks.js:362 +#: js/blocks/EnsembleBlocks.js:400 +#: js/blocks/EnsembleBlocks.js:454 +#: js/blocks/EnsembleBlocks.js:504 +#: js/blocks/EnsembleBlocks.js:550 +#: js/blocks/EnsembleBlocks.js:597 +#: js/blocks/EnsembleBlocks.js:651 +#: js/blocks/EnsembleBlocks.js:763 +#: js/blocks/EnsembleBlocks.js:854 +#: js/blocks/EnsembleBlocks.js:915 +#: js/blocks/EnsembleBlocks.js:955 +#: js/blocks/EnsembleBlocks.js:1219 +#: js/blocks/EnsembleBlocks.js:1293 #.TRANS: Yertle is the name of a turtle. msgid "Yertle" msgstr "" -#: js/EnsembleBlocks.js:92 -#: js/EnsembleBlocks.js:1089 +#: js/blocks/EnsembleBlocks.js:92 +#: js/blocks/EnsembleBlocks.js:1089 msgid "turtle name" msgstr "" -#: js/EnsembleBlocks.js:122 -#: js/EnsembleBlocks.js:1197 -#: js/HeapBlocks.js:474 -#: js/HeapBlocks.js:572 +#: js/blocks/EnsembleBlocks.js:122 +#: js/blocks/EnsembleBlocks.js:1197 +#: js/blocks/HeapBlocks.js:474 +#: js/blocks/HeapBlocks.js:572 msgid "Index must be > 0." msgstr "" -#: js/EnsembleBlocks.js:127 -#: js/HeapBlocks.js:479 -#: js/HeapBlocks.js:577 +#: js/blocks/EnsembleBlocks.js:127 +#: js/blocks/HeapBlocks.js:479 +#: js/blocks/HeapBlocks.js:577 msgid "Maximum heap size is 1000." msgstr "" -#: js/EnsembleBlocks.js:145 +#: js/blocks/EnsembleBlocks.js:145 msgid "stop mouse" msgstr "" -#: js/EnsembleBlocks.js:147 +#: js/blocks/EnsembleBlocks.js:147 msgid "The Stop mouse block stops the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:158 +#: js/blocks/EnsembleBlocks.js:158 msgid "stop turtle" msgstr "" -#: js/EnsembleBlocks.js:160 +#: js/blocks/EnsembleBlocks.js:160 msgid "The Stop turtle block stops the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:184 -#: js/EnsembleBlocks.js:247 -#: js/EnsembleBlocks.js:413 -#: js/EnsembleBlocks.js:468 -#: js/EnsembleBlocks.js:706 -#: js/EnsembleBlocks.js:808 -#: js/EnsembleBlocks.js:870 -#: js/EnsembleBlocks.js:1190 -#: js/EnsembleBlocks.js:1253 +#: js/blocks/EnsembleBlocks.js:184 +#: js/blocks/EnsembleBlocks.js:247 +#: js/blocks/EnsembleBlocks.js:413 +#: js/blocks/EnsembleBlocks.js:468 +#: js/blocks/EnsembleBlocks.js:706 +#: js/blocks/EnsembleBlocks.js:808 +#: js/blocks/EnsembleBlocks.js:870 +#: js/blocks/EnsembleBlocks.js:1190 +#: js/blocks/EnsembleBlocks.js:1253 msgid "Cannot find mouse" msgstr "" -#: js/EnsembleBlocks.js:186 -#: js/EnsembleBlocks.js:249 -#: js/EnsembleBlocks.js:415 -#: js/EnsembleBlocks.js:470 -#: js/EnsembleBlocks.js:708 -#: js/EnsembleBlocks.js:810 -#: js/EnsembleBlocks.js:872 -#: js/EnsembleBlocks.js:1192 -#: js/EnsembleBlocks.js:1255 +#: js/blocks/EnsembleBlocks.js:186 +#: js/blocks/EnsembleBlocks.js:249 +#: js/blocks/EnsembleBlocks.js:415 +#: js/blocks/EnsembleBlocks.js:470 +#: js/blocks/EnsembleBlocks.js:708 +#: js/blocks/EnsembleBlocks.js:810 +#: js/blocks/EnsembleBlocks.js:872 +#: js/blocks/EnsembleBlocks.js:1192 +#: js/blocks/EnsembleBlocks.js:1255 msgid "Cannot find turtle" msgstr "" -#: js/EnsembleBlocks.js:206 +#: js/blocks/EnsembleBlocks.js:206 msgid "start mouse" msgstr "" -#: js/EnsembleBlocks.js:209 +#: js/blocks/EnsembleBlocks.js:209 msgid "The Start mouse block starts the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:220 +#: js/blocks/EnsembleBlocks.js:220 msgid "start turtle" msgstr "" -#: js/EnsembleBlocks.js:223 +#: js/blocks/EnsembleBlocks.js:223 msgid "The Start turtle block starts the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:256 +#: js/blocks/EnsembleBlocks.js:256 msgid "Mouse is already running." msgstr "" -#: js/EnsembleBlocks.js:258 +#: js/blocks/EnsembleBlocks.js:258 msgid "Turtle is already running." msgstr "" -#: js/EnsembleBlocks.js:282 +#: js/blocks/EnsembleBlocks.js:282 msgid "Cannot find start block" msgstr "" -#: js/EnsembleBlocks.js:292 +#: js/blocks/EnsembleBlocks.js:292 #.TRANS: pen color for this mouse msgid "mouse color" msgstr "" -#: js/EnsembleBlocks.js:294 +#: js/blocks/EnsembleBlocks.js:294 msgid "The Mouse color block returns the pen color of the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:306 +#: js/blocks/EnsembleBlocks.js:306 #.TRANS: pen color for this turtle msgid "turtle color" msgstr "" -#: js/EnsembleBlocks.js:308 +#: js/blocks/EnsembleBlocks.js:308 msgid "The Turtle color block returns the pen color of the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:338 +#: js/blocks/EnsembleBlocks.js:338 #.TRANS: heading (compass direction) for this mouse msgid "mouse heading" msgstr "" -#: js/EnsembleBlocks.js:340 +#: js/blocks/EnsembleBlocks.js:340 msgid "The Mouse heading block returns the heading of the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:352 +#: js/blocks/EnsembleBlocks.js:352 #.TRANS: heading (compass direction) for this turtle msgid "turtle heading" msgstr "" -#: js/EnsembleBlocks.js:354 +#: js/blocks/EnsembleBlocks.js:354 msgid "The Turtle heading block returns the heading of the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:384 -#: js/EnsembleBlocks.js:439 +#: js/blocks/EnsembleBlocks.js:384 +#: js/blocks/EnsembleBlocks.js:439 #.TRANS: set xy position for this mouse msgid "set mouse" msgstr "" -#: js/EnsembleBlocks.js:391 -#: js/EnsembleBlocks.js:402 -#: js/BoxesBlocks.js:595 -msgid "name1" -msgstr "" - -#: js/EnsembleBlocks.js:391 -#: js/EnsembleBlocks.js:402 -#: js/ProgramBlocks.js:881 -#: js/GraphicsBlocks.js:235 -#: js/GraphicsBlocks.js:313 -#: js/GraphicsBlocks.js:436 -#: js/GraphicsBlocks.js:487 -#: js/GraphicsBlocks.js:534 -#: js/GraphicsBlocks.js:750 +#: js/blocks/EnsembleBlocks.js:391 +#: js/blocks/EnsembleBlocks.js:402 +#: js/blocks/GraphicsBlocks.js:235 +#: js/blocks/GraphicsBlocks.js:313 +#: js/blocks/GraphicsBlocks.js:436 +#: js/blocks/GraphicsBlocks.js:487 +#: js/blocks/GraphicsBlocks.js:534 +#: js/blocks/GraphicsBlocks.js:750 +#: js/blocks/ProgramBlocks.js:881 msgid "x" msgstr "" -#: js/EnsembleBlocks.js:391 -#: js/EnsembleBlocks.js:402 -#: js/ProgramBlocks.js:881 -#: js/GraphicsBlocks.js:149 -#: js/GraphicsBlocks.js:313 -#: js/GraphicsBlocks.js:436 -#: js/GraphicsBlocks.js:487 -#: js/GraphicsBlocks.js:534 -#: js/GraphicsBlocks.js:750 +#: js/blocks/EnsembleBlocks.js:391 +#: js/blocks/EnsembleBlocks.js:402 +#: js/blocks/GraphicsBlocks.js:149 +#: js/blocks/GraphicsBlocks.js:313 +#: js/blocks/GraphicsBlocks.js:436 +#: js/blocks/GraphicsBlocks.js:487 +#: js/blocks/GraphicsBlocks.js:534 +#: js/blocks/GraphicsBlocks.js:750 +#: js/blocks/ProgramBlocks.js:881 msgid "y" msgstr "" -#: js/EnsembleBlocks.js:395 -#: js/EnsembleBlocks.js:452 +#: js/blocks/EnsembleBlocks.js:395 +#: js/blocks/EnsembleBlocks.js:452 #.TRANS: set xy position for this turtle msgid "set turtle" msgstr "" -#: js/EnsembleBlocks.js:433 +#: js/blocks/EnsembleBlocks.js:433 msgid "The Set mouse block sends a stack of blocks to be run by the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:446 +#: js/blocks/EnsembleBlocks.js:446 msgid "The Set turtle block sends a stack of blocks to be run by the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:480 +#: js/blocks/EnsembleBlocks.js:480 #.TRANS: y position for this mouse msgid "mouse y" msgstr "" -#: js/EnsembleBlocks.js:482 +#: js/blocks/EnsembleBlocks.js:482 msgid "The Y mouse block returns the Y position of the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:494 +#: js/blocks/EnsembleBlocks.js:494 #.TRANS: y position for this turtle msgid "turtle y" msgstr "" -#: js/EnsembleBlocks.js:496 +#: js/blocks/EnsembleBlocks.js:496 msgid "The Y turtle block returns the Y position of the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:526 +#: js/blocks/EnsembleBlocks.js:526 #.TRANS: x position for this mouse msgid "mouse x" msgstr "" -#: js/EnsembleBlocks.js:528 +#: js/blocks/EnsembleBlocks.js:528 msgid "The X mouse block returns the X position of the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:540 +#: js/blocks/EnsembleBlocks.js:540 #.TRANS: x position for this turtle msgid "turtle x" msgstr "" -#: js/EnsembleBlocks.js:542 +#: js/blocks/EnsembleBlocks.js:542 msgid "The X turtle block returns the X position of the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:573 +#: js/blocks/EnsembleBlocks.js:573 #.TRANS: notes played by this mouse msgid "mouse notes played" msgstr "" -#: js/EnsembleBlocks.js:575 +#: js/blocks/EnsembleBlocks.js:575 msgid "The Mouse elapse notes block returns the number of notes played by the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:587 +#: js/blocks/EnsembleBlocks.js:587 #.TRANS: notes played by this turtle msgid "turtle notes played" msgstr "" -#: js/EnsembleBlocks.js:589 +#: js/blocks/EnsembleBlocks.js:589 msgid "The Turtle elapse notes block returns the number of notes played by the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:627 +#: js/blocks/EnsembleBlocks.js:627 #.TRANS: convert current note for this turtle to piano key (1-88) msgid "mouse pitch number" msgstr "" -#: js/EnsembleBlocks.js:629 +#: js/blocks/EnsembleBlocks.js:629 msgid "The Mouse pitch block returns the current pitch number being played by the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:641 +#: js/blocks/EnsembleBlocks.js:641 #.TRANS: convert current note for this turtle to piano key (1-88) msgid "turtle pitch number" msgstr "" -#: js/EnsembleBlocks.js:643 -msgid "The Turrle pitch block returns the current pitch number being played by the specified turtle." +#: js/blocks/EnsembleBlocks.js:643 +msgid "The Turtle pitch block returns the current pitch number being played by the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:747 -#: js/EnsembleBlocks.js:819 +#: js/blocks/EnsembleBlocks.js:747 +#: js/blocks/EnsembleBlocks.js:819 #.TRANS: note value is the duration of the note played by this mouse msgid "mouse note value" msgstr "" -#: js/EnsembleBlocks.js:757 +#: js/blocks/EnsembleBlocks.js:757 #.TRANS: note value is the duration of the note played by this turtle msgid "turtle note value" msgstr "" -#: js/EnsembleBlocks.js:830 +#: js/blocks/EnsembleBlocks.js:830 #.TRANS: sync is short for synchronization msgid "mouse sync" msgstr "" -#: js/EnsembleBlocks.js:832 +#: js/blocks/EnsembleBlocks.js:832 msgid "The Mouse sync block aligns the beat count between mice." msgstr "" -#: js/EnsembleBlocks.js:844 +#: js/blocks/EnsembleBlocks.js:844 #.TRANS: sync is short for synchronization msgid "turtle sync" msgstr "" -#: js/EnsembleBlocks.js:846 +#: js/blocks/EnsembleBlocks.js:846 msgid "The Turtle sync block aligns the beat count between turtles." msgstr "" -#: js/EnsembleBlocks.js:887 +#: js/blocks/EnsembleBlocks.js:887 msgid "The Found mouse block will return true if the specified mouse can be found." msgstr "" -#: js/EnsembleBlocks.js:893 +#: js/blocks/EnsembleBlocks.js:893 msgid "found mouse" msgstr "" -#: js/EnsembleBlocks.js:903 +#: js/blocks/EnsembleBlocks.js:903 msgid "The Found turtle block will return true if the specified turtle can be found." msgstr "" -#: js/EnsembleBlocks.js:909 +#: js/blocks/EnsembleBlocks.js:909 msgid "found turtle" msgstr "" -#: js/EnsembleBlocks.js:932 +#: js/blocks/EnsembleBlocks.js:932 msgid "new mouse" msgstr "" -#: js/EnsembleBlocks.js:934 +#: js/blocks/EnsembleBlocks.js:934 msgid "The New mouse block will create a new mouse." msgstr "" -#: js/EnsembleBlocks.js:945 +#: js/blocks/EnsembleBlocks.js:945 msgid "new turtle" msgstr "" -#: js/EnsembleBlocks.js:947 +#: js/blocks/EnsembleBlocks.js:947 msgid "The New turtle block will create a new turtle." msgstr "" -#: js/EnsembleBlocks.js:1011 +#: js/blocks/EnsembleBlocks.js:1011 msgid "set mouse color" msgstr "" -#: js/EnsembleBlocks.js:1014 +#: js/blocks/EnsembleBlocks.js:1014 msgid "The Set-mouse-color block is used to set the color of a mouse." msgstr "" -#: js/EnsembleBlocks.js:1020 +#: js/blocks/EnsembleBlocks.js:1020 msgid "set turtle color" msgstr "" -#: js/EnsembleBlocks.js:1023 +#: js/blocks/EnsembleBlocks.js:1023 msgid "The Set-turtle-color block is used to set the color of a turtle." msgstr "" -#: js/EnsembleBlocks.js:1083 +#: js/blocks/EnsembleBlocks.js:1083 msgid "The Mouse-name block returns the name of a mouse." msgstr "" -#: js/EnsembleBlocks.js:1092 +#: js/blocks/EnsembleBlocks.js:1092 msgid "The Turtle-name block returns the name of a turtle." msgstr "" -#: js/EnsembleBlocks.js:1115 +#: js/blocks/EnsembleBlocks.js:1115 msgid "mouse count" msgstr "" -#: js/EnsembleBlocks.js:1118 +#: js/blocks/EnsembleBlocks.js:1118 msgid "The Mouse-count block returns the number of mice." msgstr "" -#: js/EnsembleBlocks.js:1124 +#: js/blocks/EnsembleBlocks.js:1124 msgid "turtle count" msgstr "" -#: js/EnsembleBlocks.js:1127 +#: js/blocks/EnsembleBlocks.js:1127 msgid "The Turtle-count block returns the number of turtles." msgstr "" -#: js/EnsembleBlocks.js:1149 +#: js/blocks/EnsembleBlocks.js:1149 msgid "nth mouse name" msgstr "" -#: js/EnsembleBlocks.js:1152 +#: js/blocks/EnsembleBlocks.js:1152 msgid "The Nth-Mouse name block returns the name of the nth mouse." msgstr "" -#: js/EnsembleBlocks.js:1158 +#: js/blocks/EnsembleBlocks.js:1158 msgid "nth turtle name" msgstr "" -#: js/EnsembleBlocks.js:1161 +#: js/blocks/EnsembleBlocks.js:1161 msgid "The Nth-Turtle name block returns the name of the nth turtle." msgstr "" -#: js/EnsembleBlocks.js:1205 -#: js/EnsembleBlocks.js:1265 +#: js/blocks/EnsembleBlocks.js:1205 +#: js/blocks/EnsembleBlocks.js:1265 msgid "set name" msgstr "" -#: js/EnsembleBlocks.js:1214 -#: js/EnsembleBlocks.js:1221 +#: js/blocks/EnsembleBlocks.js:1214 +#: js/blocks/EnsembleBlocks.js:1221 msgid "source" msgstr "" -#: js/EnsembleBlocks.js:1214 -#: js/EnsembleBlocks.js:1221 +#: js/blocks/EnsembleBlocks.js:1214 +#: js/blocks/EnsembleBlocks.js:1221 msgid "target" msgstr "" -#: js/EnsembleBlocks.js:1271 +#: js/blocks/EnsembleBlocks.js:1271 msgid "The Set-name block is used to name a mouse." msgstr "" -#: js/EnsembleBlocks.js:1284 +#: js/blocks/EnsembleBlocks.js:1284 msgid "The Set-name block is used to name a turtle." msgstr "" -#: js/BooleanBlocks.js:44 -msgid "The Not block is the logical not operator." -msgstr "" - -#: js/BooleanBlocks.js:62 -msgid "not" -msgstr "" - -#: js/BooleanBlocks.js:134 -msgid "The And block is the logical and operator." -msgstr "" - -#: js/BooleanBlocks.js:152 -msgid "and" -msgstr "" - -#: js/BooleanBlocks.js:218 -msgid "The Or block is the logical or operator." -msgstr "" - -#: js/BooleanBlocks.js:236 -msgid "or" -msgstr "" - -#: js/BooleanBlocks.js:302 -msgid "The XOR block is the logical XOR operator." -msgstr "" - -#: js/BooleanBlocks.js:320 -msgid "xor" -msgstr "" - -#: js/BooleanBlocks.js:808 -msgid "The Equal block returns True if the two numbers are equal." -msgstr "" - -#: js/BooleanBlocks.js:909 -msgid "The Not-equal-to block returns True if the two numbers are not equal to each other." -msgstr "" - -#: js/BooleanBlocks.js:1008 -msgid "The Boolean block is used to specify true or false." -msgstr "" - -#: js/MediaBlocks.js:35 -#.TRANS: right side of the screen -msgid "right (screen)" -msgstr "" - -#: js/MediaBlocks.js:45 -#: js/MediaBlocks.js:56 -msgid "The Right block returns the position of the right of the canvas." -msgstr "" - -#: js/MediaBlocks.js:97 -#.TRANS: left side of the screen -msgid "left (screen)" -msgstr "" - -#: js/MediaBlocks.js:107 -#: js/MediaBlocks.js:118 -msgid "The Left block returns the position of the left of the canvas." -msgstr "" - -#: js/MediaBlocks.js:158 -msgid "top (screen)" -msgstr "" - -#: js/MediaBlocks.js:168 -#: js/MediaBlocks.js:179 -msgid "The Top block returns the position of the top of the canvas." -msgstr "" - -#: js/MediaBlocks.js:219 -msgid "bottom (screen)" +#: js/blocks/ExtrasBlocks.js:33 +msgid "fraction" msgstr "" -#: js/MediaBlocks.js:229 -#: js/MediaBlocks.js:240 -msgid "The Bottom block returns the position of the bottom of the canvas." +#: js/blocks/ExtrasBlocks.js:36 +msgid "Convert a float to a fraction" msgstr "" -#: js/MediaBlocks.js:282 -msgid "width" +#: js/blocks/ExtrasBlocks.js:93 +msgid "save as ABC" msgstr "" -#: js/MediaBlocks.js:291 -msgid "The Width block returns the width of the canvas." +#: js/blocks/ExtrasBlocks.js:96 +#: js/blocks/ExtrasBlocks.js:132 +#: js/blocks/ExtrasBlocks.js:168 +msgid "title" msgstr "" -#: js/MediaBlocks.js:325 -msgid "height" +#: js/blocks/ExtrasBlocks.js:129 +msgid "save as Lilypond" msgstr "" -#: js/MediaBlocks.js:334 -msgid "The Height block returns the height of the canvas." +#: js/blocks/ExtrasBlocks.js:165 +msgid "save as SVG" msgstr "" -#: js/MediaBlocks.js:369 -#.TRANS: stops playback of an audio recording -msgid "stop play" +#: js/blocks/ExtrasBlocks.js:216 +msgid "no background" msgstr "" -#: js/MediaBlocks.js:404 -#.TRANS: Erases the images and text -msgid "erase media" +#: js/blocks/ExtrasBlocks.js:219 +msgid "The No background block eliminates the background from the saved SVG output." msgstr "" -#: js/MediaBlocks.js:409 -msgid "The Erase Media block erases text and images." +#: js/blocks/ExtrasBlocks.js:247 +msgid "show blocks" msgstr "" -#: js/MediaBlocks.js:439 -#.TRANS: play an audio recording -msgid "play back" +#: js/blocks/ExtrasBlocks.js:249 +msgid "The Show blocks block shows the blocks." msgstr "" -#: js/MediaBlocks.js:487 -msgid "speak" +#: js/blocks/ExtrasBlocks.js:274 +msgid "hide blocks" msgstr "" -#: js/MediaBlocks.js:495 -msgid "The Speak block outputs to the text-to-speech synthesizer" +#: js/blocks/ExtrasBlocks.js:276 +msgid "The Hide blocks block hides the blocks." msgstr "" -#: js/MediaBlocks.js:546 -msgid "camera" +#: js/blocks/ExtrasBlocks.js:305 +#: js/blocks/ExtrasBlocks.js:338 +msgid "The Space block is used to add space between blocks." msgstr "" -#: js/MediaBlocks.js:551 -msgid "The Camera block connects a webcam to the Show block." +#: js/blocks/ExtrasBlocks.js:376 +msgid "wait" msgstr "" -#: js/MediaBlocks.js:574 -msgid "video" +#: js/blocks/ExtrasBlocks.js:379 +msgid "The Wait block pauses the program for a specified number of seconds." msgstr "" -#: js/MediaBlocks.js:579 -msgid "The Video block selects video for use with the Show block." +#: js/blocks/ExtrasBlocks.js:433 +#: plugins/facebook.rtp:30 +msgid "comment" msgstr "" -#: js/MediaBlocks.js:607 -msgid "The Open file block opens a file for use with the Show block." +#: js/blocks/ExtrasBlocks.js:469 +msgid "print" msgstr "" -#: js/MediaBlocks.js:645 -msgid "stop media" +#: js/blocks/ExtrasBlocks.js:476 +msgid "The Print block displays text at the top of the screen." msgstr "" -#: js/MediaBlocks.js:650 -msgid "The Stop media block stops audio or video playback." +#: js/blocks/ExtrasBlocks.js:582 +msgid "display grid" msgstr "" -#: js/MediaBlocks.js:679 -#: js/PitchBlocks.js:1539 -#: js/phrasemaker.js:822 -#: js/musickeyboard.js:1654 -#.TRANS: a measure of frequency: one cycle per second -msgid "hertz" +#: js/blocks/ExtrasBlocks.js:587 +msgid "The Display Grid Block changes the grid type" msgstr "" -#: js/MediaBlocks.js:692 -msgid "duration (ms)" +#: js/blocks/ExtrasBlocks.js:689 +#: js/blocks/ExtrasBlocks.js:708 +#: js/blocks/ExtrasBlocks.js:731 +#: js/blocks/ExtrasBlocks.js:754 +#: js/blocks/ExtrasBlocks.js:772 +#: js/blocks/ExtrasBlocks.js:791 +#: js/blocks/ExtrasBlocks.js:810 +#: js/blocks/ExtrasBlocks.js:829 +msgid "unknown" msgstr "" -#: js/MediaBlocks.js:728 -#.TRANS: translate a note into hertz, e.g., A4 -> 440HZ -msgid "note to frequency" +#: js/blocks/FlowBlocks.js:41 +msgid "The Backward block runs code in reverse order (Musical retrograde)." msgstr "" -#: js/MediaBlocks.js:736 -msgid "The To frequency block converts a pitch name and octave to Hertz." +#: js/blocks/FlowBlocks.js:48 +msgid "backward" msgstr "" -#: js/MediaBlocks.js:746 -#: js/PitchBlocks.js:656 -#: js/PitchBlocks.js:932 -#: js/PitchBlocks.js:1827 -#.TRANS: name2 is name as in name of pitch (JAPANESE ONLY) -msgid "name2" +#: js/blocks/FlowBlocks.js:124 +msgid "The Duplicate block will run each block multiple times." msgstr "" -#: js/MediaBlocks.js:812 -msgid "The Avatar block is used to change the appearance of the mouse." +#: js/blocks/FlowBlocks.js:136 +msgid "duplicate" msgstr "" -#: js/MediaBlocks.js:819 -msgid "The Avatar block is used to change the appearance of the turtle." +#: js/blocks/FlowBlocks.js:334 +msgid "The Default block is used inside of a Switch to define the default action." msgstr "" -#: js/MediaBlocks.js:831 -#: js/MediaBlocks.js:891 -#.TRANS: a media object -msgid "size" +#: js/blocks/FlowBlocks.js:342 +msgid "default" msgstr "" -#: js/MediaBlocks.js:831 -msgid "image" +#: js/blocks/FlowBlocks.js:361 +#: js/blocks/FlowBlocks.js:418 +msgid "The Case Block must be used inside of a Switch Block." msgstr "" -#: js/MediaBlocks.js:880 -msgid "The Show block is used to display text or images on the canvas." +#: js/blocks/FlowBlocks.js:389 +msgid "The Case block is used inside of a Switch to define matches." msgstr "" -#: js/MediaBlocks.js:888 -#.TRANS: show1 is show as in display an image or text on the screen. -msgid "show1" +#: js/blocks/FlowBlocks.js:397 +msgid "case" msgstr "" -#: js/MediaBlocks.js:891 -msgid "obj" +#: js/blocks/FlowBlocks.js:446 +msgid "The Switch block will run the code in the matching Case." msgstr "" -#: js/MediaBlocks.js:938 -msgid "The Media block is used to import an image." +#: js/blocks/FlowBlocks.js:454 +msgid "switch" msgstr "" -#: js/MediaBlocks.js:973 -msgid "The Text block holds a text string." +#: js/blocks/FlowBlocks.js:595 +msgid "The Stop block will stop a loop" msgstr "" -#: js/ProgramBlocks.js:33 -msgid "The Load-heap-from-app block loads the heap from a web page." +#: js/blocks/FlowBlocks.js:597 +msgid "Forever, Repeat, While, or Until." msgstr "" -#: js/ProgramBlocks.js:44 -#.TRANS: load the heap contents from a URL -msgid "load heap from App" +#: js/blocks/FlowBlocks.js:604 +#: js/widgets/timbre.js:417 +#: js/widgets/timbre.js:419 +#: js/widgets/musickeyboard.js:819 +#: js/widgets/musickeyboard.js:821 +#: js/widgets/phrasemaker.js:4202 +#: plugins/rodi.rtp:29 +#: plugins/rodi.rtp:73 +#: plugins/rodi.rtp:413 +msgid "stop" msgstr "" -#: js/ProgramBlocks.js:95 -msgid "Error parsing JSON data:" +#: js/blocks/FlowBlocks.js:653 +msgid "The Waitfor block will wait until the condition is true." msgstr "" -#: js/ProgramBlocks.js:100 -msgid "404: Page not found" +#: js/blocks/FlowBlocks.js:661 +msgid "wait for" msgstr "" -#: js/ProgramBlocks.js:133 -msgid "The Save-heap-to-app block saves the heap to a web page." +#: js/blocks/FlowBlocks.js:732 +msgid "The Until block will repeat until the condition is true." msgstr "" -#: js/ProgramBlocks.js:144 -#.TRANS: save the heap contents to a URL -msgid "save heap to App" +#: js/blocks/FlowBlocks.js:740 +msgid "until" msgstr "" -#: js/ProgramBlocks.js:189 -msgid "Cannot find a valid heap for" +#: js/blocks/FlowBlocks.js:742 +#: js/blocks/FlowBlocks.js:822 +msgid "do2" msgstr "" -#: js/ProgramBlocks.js:206 -msgid "The Load-heap block loads the heap from a file." +#: js/blocks/FlowBlocks.js:812 +msgid "The While block will repeat while the condition is true." msgstr "" -#: js/ProgramBlocks.js:217 -#.TRANS: load the heap from a file -msgid "load heap" +#: js/blocks/FlowBlocks.js:820 +msgid "while" msgstr "" -#: js/ProgramBlocks.js:270 -msgid "The file you selected does not contain a valid heap." +#: js/blocks/FlowBlocks.js:903 +#: js/blocks/FlowBlocks.js:968 +#: js/blocks/FlowBlocks.js:979 +msgid "In this example if the mouse button is pressed a snare drum will play." msgstr "" -#: js/ProgramBlocks.js:275 -msgid "The loadHeap block needs a loadFile block." +#: js/blocks/FlowBlocks.js:925 +#: js/blocks/FlowBlocks.js:988 +msgid "if" msgstr "" -#: js/ProgramBlocks.js:291 -msgid "The Set-heap block loads the heap." +#: js/blocks/FlowBlocks.js:927 +#: js/blocks/FlowBlocks.js:990 +msgid "then" msgstr "" -#: js/ProgramBlocks.js:299 -#: js/HeapBlocks.js:539 -#.TRANS: load the heap from a JSON encoding -msgid "set heap" +#: js/blocks/FlowBlocks.js:927 +msgid "else" msgstr "" -#: js/ProgramBlocks.js:340 -msgid "The block you selected does not contain a valid heap." +#: js/blocks/FlowBlocks.js:1025 +msgid "The Forever block will repeat the contained blocks forever." msgstr "" -#: js/ProgramBlocks.js:343 -msgid "The Set heap block needs a heap." +#: js/blocks/FlowBlocks.js:1037 +msgid "forever" msgstr "" -#: js/ProgramBlocks.js:360 -msgid "The Load-dictionary block loads a dictionary from a file." +#: js/blocks/FlowBlocks.js:1073 +msgid "The Repeat block will repeat the contained blocks." msgstr "" -#: js/ProgramBlocks.js:372 -#.TRANS: load a dictionary from a file -msgid "load dictionary" +#: js/blocks/FlowBlocks.js:1075 +msgid "In this example the note will be played 4 times." msgstr "" -#: js/ProgramBlocks.js:390 -#: js/ProgramBlocks.js:658 -#: js/ToneBlocks.js:1025 -msgid "file" +#: js/blocks/FlowBlocks.js:1083 +msgid "repeat" msgstr "" -#: js/ProgramBlocks.js:396 -#: js/ProgramBlocks.js:501 -#: js/ProgramBlocks.js:664 -#: js/DictBlocks.js:80 -#: js/DictBlocks.js:145 -#: js/DictBlocks.js:216 -#: js/DictBlocks.js:290 -msgid "My Dictionary" +#: js/blocks/FlowBlocks.js:1123 +msgid "duplicate factor" msgstr "" -#: js/ProgramBlocks.js:444 -msgid "The file you selected does not contain a valid dictionary." +#: js/blocks/HeapBlocks.js:49 +msgid "The Heap block returns the heap." msgstr "" -#: js/ProgramBlocks.js:449 -msgid "The load dictionary block needs a load file block." +#: js/blocks/HeapBlocks.js:133 +msgid "show heap" msgstr "" -#: js/ProgramBlocks.js:466 -msgid "The Set-dictionary block loads a dictionary." +#: js/blocks/HeapBlocks.js:181 +msgid "The Heap-length block returns the length of the heap." msgstr "" -#: js/ProgramBlocks.js:477 -#.TRANS: load a dictionary from a JSON -msgid "set dictionary" +#: js/blocks/HeapBlocks.js:195 +msgid "heap length" msgstr "" -#: js/ProgramBlocks.js:546 -msgid "The block you selected does not contain a valid dictionary." +#: js/blocks/HeapBlocks.js:254 +msgid "The Heap-empty? block returns true if the heap is empty." msgstr "" -#: js/ProgramBlocks.js:550 -msgid "The set dictionary block needs a dictionary." +#: js/blocks/HeapBlocks.js:268 +#.TRANS: Is the heap empty? +msgid "heap empty?" msgstr "" -#: js/ProgramBlocks.js:567 -msgid "The Save-heap block saves the heap to a file." +#: js/blocks/HeapBlocks.js:317 +msgid "The Empty-heap block empties the heap." msgstr "" -#: js/ProgramBlocks.js:578 -#.TRANS: save the heap to a file -msgid "save heap" +#: js/blocks/HeapBlocks.js:327 +#: js/blocks/HeapBlocks.js:647 +#.TRANS: empty the heap +msgid "empty heap" msgstr "" -#: js/ProgramBlocks.js:629 -msgid "The Save-dictionary block saves a dictionary to a file." +#: js/blocks/HeapBlocks.js:371 +msgid "The Reverse-heap block reverses the order of the heap." msgstr "" -#: js/ProgramBlocks.js:640 -#.TRANS: save a dictionary to a file -msgid "save dictionary" +#: js/blocks/HeapBlocks.js:384 +#.TRANS: reverse the order of the heap +msgid "reverse heap" msgstr "" -#: js/ProgramBlocks.js:720 -msgid "The Open palette block opens a palette." +#: js/blocks/HeapBlocks.js:428 +msgid "The Index-heap block returns a value in the heap at a specified location." msgstr "" -#: js/ProgramBlocks.js:727 -msgid "open palette" +#: js/blocks/HeapBlocks.js:443 +#.TRANS: retrieve a value from the heap at index position in the heap +msgid "index heap" msgstr "" -#: js/ProgramBlocks.js:785 -msgid "The Delete block block removes a block." +#: js/blocks/HeapBlocks.js:523 +msgid "The Set-heap entry block sets a value in he heap at the specified location." msgstr "" -#: js/ProgramBlocks.js:797 -#.TRANS: Move this block to the trash. -msgid "delete block" +#: js/blocks/HeapBlocks.js:539 +#: js/blocks/ProgramBlocks.js:299 +#.TRANS: load the heap from a JSON encoding +msgid "set heap" msgstr "" -#: js/ProgramBlocks.js:861 -msgid "The Move block block moves a block." +#: js/blocks/HeapBlocks.js:619 +msgid "The Pop block removes the value at the top of the heap." msgstr "" -#: js/ProgramBlocks.js:869 -#.TRANS: Move the position of a block on the screen. -msgid "move block" +#: js/blocks/HeapBlocks.js:633 +#.TRANS: pop a value off the top of the heap +msgid "pop" msgstr "" -#: js/ProgramBlocks.js:881 -#: js/ProgramBlocks.js:1048 -msgid "block number" +#: js/blocks/HeapBlocks.js:680 +msgid "The Push block adds a value to the top of the heap." msgstr "" -#: js/ProgramBlocks.js:935 -#.TRANS: Run program beginning at this block. -msgid "run block" +#: js/blocks/HeapBlocks.js:696 +#.TRANS: push a value onto the top of the heap +msgid "push" msgstr "" -#: js/ProgramBlocks.js:1025 -msgid "The Dock block block connections two blocks." +#: js/blocks/IntervalsBlocks.js:45 +msgid "set temperament" msgstr "" -#: js/ProgramBlocks.js:1036 -#.TRANS: We can connect a block to another block. -msgid "connect blocks" +#: js/blocks/IntervalsBlocks.js:63 +#: js/blocks/MediaBlocks.js:746 +#: js/blocks/PitchBlocks.js:657 +#: js/blocks/PitchBlocks.js:935 +#: js/blocks/PitchBlocks.js:974 +#: js/blocks/PitchBlocks.js:1007 +#: js/blocks/PitchBlocks.js:1194 +#: js/blocks/PitchBlocks.js:1717 +#: js/blocks/PitchBlocks.js:1758 +#: js/blocks/PitchBlocks.js:1866 +#: js/blocks/ToneBlocks.js:1025 +#: js/turtleactions/IntervalsActions.js:114 +#.TRANS: adjusts the shift up or down by one octave (twelve half-steps in the interval between two notes, one having twice or half the frequency in Hz of the other.) +msgid "octave" msgstr "" -#: js/ProgramBlocks.js:1048 -msgid "target block" +#: js/blocks/IntervalsBlocks.js:99 +msgid "The Temperament name block is used to select a tuning method." msgstr "" -#: js/ProgramBlocks.js:1048 -msgid "connection number" +#: js/blocks/IntervalsBlocks.js:161 +msgid "doubly" msgstr "" -#: js/ProgramBlocks.js:1140 -msgid "The Make block block creates a new block." +#: js/blocks/IntervalsBlocks.js:166 +msgid "The Doubly block will double the size of an interval." msgstr "" -#: js/ProgramBlocks.js:1152 -#.TRANS: Create a new block -msgid "make block" +#: js/blocks/IntervalsBlocks.js:262 +msgid "interval number" msgstr "" -#: js/ProgramBlocks.js:1186 -#: js/ProgramBlocks.js:1227 -#: js/RhythmBlocks.js:1128 -#: js/PitchBlocks.js:972 -#: js/PitchBlocks.js:1005 -#: js/temperament.js:340 -#: js/temperament.js:362 -#: js/temperament.js:372 -#: js/temperament.js:484 -#: js/status.js:190 -#: plugins/rodi.rtp:192 -#.TRANS: a musical note consisting of pitch and duration -msgid "note" +#: js/blocks/IntervalsBlocks.js:317 +msgid "current interval" msgstr "" -#: js/ProgramBlocks.js:1285 -msgid "Cannot find block" +#: js/blocks/IntervalsBlocks.js:387 +#.TRANS: measure the distance between two pitches in semi-tones +msgid "semi-tone interval measure" msgstr "" -#: js/ProgramBlocks.js:1304 -#: js/ProgramBlocks.js:1313 -msgid "Warning: block argument type mismatch" +#: js/blocks/IntervalsBlocks.js:454 +#: js/blocks/IntervalsBlocks.js:570 +msgid "You must use two pitch blocks when measuring an interval." msgstr "" -#: js/ProgramBlocks.js:1347 -msgid "The Open project block is used to open a project from a web page." +#: js/blocks/IntervalsBlocks.js:496 +msgid "The Scalar interval block measures the distance between two notes in the current key and mode." msgstr "" -#: js/ProgramBlocks.js:1357 -msgid "open project" +#: js/blocks/IntervalsBlocks.js:502 +#.TRANS: measure the distance between two pitches in steps of musical scale +msgid "scalar interval measure" msgstr "" -#: js/ProgramBlocks.js:1410 -msgid "Please enter a valid URL." +#: js/blocks/IntervalsBlocks.js:678 +msgid "In the figure, we add sol# to sol." msgstr "" -#: js/DrumBlocks.js:59 -msgid "The Noise name block is used to select a noise synthesizer." +#: js/blocks/IntervalsBlocks.js:684 +#: js/blocks/OrnamentBlocks.js:220 +#.TRANS: calculate a relative step between notes based on semi-tones +msgid "semi-tone interval" msgstr "" -#: js/DrumBlocks.js:102 -msgid "The Drum name block is used to select a drum." +#: js/blocks/IntervalsBlocks.js:733 +msgid "The output of the example is: do, mi, sol, sol, ti, mi" msgstr "" -#: js/DrumBlocks.js:146 -msgid "The Effects name block is used to select a sound effect." +#: js/blocks/IntervalsBlocks.js:740 +#: js/blocks/WidgetBlocks.js:768 +msgid "arpeggio" msgstr "" -#: js/DrumBlocks.js:163 -msgid "noise" +#: js/blocks/IntervalsBlocks.js:931 +msgid "The Chord block calculates common chords." msgstr "" -#: js/DrumBlocks.js:177 -msgid "The Play noise block will generate white, pink, or brown noise." +#: js/blocks/IntervalsBlocks.js:933 +msgid "In the figure, we generate a C-major chord." msgstr "" -#: js/DrumBlocks.js:191 -#: js/musicutils.js:752 -#: js/synthutils.js:47 -#.TRANS: white noise synthesizer -msgid "white noise" +#: js/blocks/IntervalsBlocks.js:938 +msgid "chord" msgstr "" -#: js/DrumBlocks.js:326 -msgid "Replace every instance of a pitch with a drum sound." +#: js/blocks/IntervalsBlocks.js:990 +msgid "The Ratio Interval block calculates an interval based on a ratio." msgstr "" -#: js/DrumBlocks.js:337 -#.TRANS: map a pitch to a drum sound -msgid "map pitch to drum" +#: js/blocks/IntervalsBlocks.js:995 +msgid "ratio interval" msgstr "" -#: js/DrumBlocks.js:404 -msgid "In the example above, a kick drum sound will be played instead of sol." +#: js/blocks/IntervalsBlocks.js:1064 +msgid "In the figure, we add la to sol." msgstr "" -#: js/DrumBlocks.js:416 -#.TRANS: set the current drum sound for playback -msgid "set drum" +#: js/blocks/IntervalsBlocks.js:1120 +#.TRANS: define a custom mode +msgid "define mode" msgstr "" -#: js/DrumBlocks.js:460 -msgid "sound effect" +#: js/blocks/IntervalsBlocks.js:1173 +msgid "movable Do" msgstr "" -#: js/DrumBlocks.js:498 -msgid "You can use multiple Drum blocks within a Note block." +#: js/blocks/IntervalsBlocks.js:1224 +#.TRANS: mode length is the number of notes in the mode, e.g., 7 for major and minor scales; 12 for chromatic scales +msgid "mode length" msgstr "" -#: js/RhythmBlocks.js:182 -#: js/RhythmBlocks.js:1086 -#: js/RhythmBlocks.js:1162 -msgid "Note value must be greater than 0." +#: js/blocks/IntervalsBlocks.js:1233 +msgid "The Mode length block is the number of notes in the current scale." msgstr "" -#: js/RhythmBlocks.js:215 -#: js/RhythmBlocks.js:278 -#: js/RhythmBlocks.js:350 -#.TRANS: swing is a rhythmic variation that emphasises the offbeat -msgid "swing" +#: js/blocks/IntervalsBlocks.js:1235 +msgid "Most Western scales have 7 notes." msgstr "" -#: js/RhythmBlocks.js:355 -#.TRANS: the amount to shift to the offbeat note -msgid "swing value" +#: js/blocks/IntervalsBlocks.js:1284 +#.TRANS: the mode in music is 'major', 'minor', etc. +msgid "current mode" msgstr "" -#: js/RhythmBlocks.js:419 -msgid "The Skip notes block will cause notes to be skipped." +#: js/blocks/IntervalsBlocks.js:1337 +#.TRANS: the key is a group of pitches with which a music composition is created +msgid "current key" msgstr "" -#: js/RhythmBlocks.js:427 -#.TRANS: substitute rests on notes being skipped -msgid "skip notes" +#: js/blocks/IntervalsBlocks.js:1389 +#: js/blocks/IntervalsBlocks.js:1434 +#.TRANS: set the key and mode, e.g. C Major +msgid "set key" msgstr "" -#: js/RhythmBlocks.js:489 -#.TRANS: speed up note duration by some factor, e.g. convert 1/4 to 1/8 notes by using a factor of 2 -msgid "multiply note value" +#: js/blocks/IntervalsBlocks.js:1443 +#: js/blocks/IntervalsBlocks.js:1449 +msgid "The Set key block is used to set the key and mode," msgstr "" -#: js/RhythmBlocks.js:542 -msgid "The Tie block works on pairs of notes, combining them into one note." +#: js/blocks/IntervalsBlocks.js:1449 +msgid "eg C Major" msgstr "" -#: js/RhythmBlocks.js:550 -#.TRANS: tie notes together into one longer note -msgid "tie" +#: js/blocks/MediaBlocks.js:35 +#.TRANS: right side of the screen +msgid "right (screen)" msgstr "" -#: js/RhythmBlocks.js:591 -#: js/RhythmBlocks.js:671 -#.TRANS: a dotted note is played for 1.5x its value, e.g., 1/8. --> 3/16 -msgid "dot" +#: js/blocks/MediaBlocks.js:45 +#: js/blocks/MediaBlocks.js:56 +msgid "The Right block returns the position of the right of the canvas." msgstr "" -#: js/RhythmBlocks.js:619 -#: js/RhythmActions.js:221 -msgid "An argument of -1 results in a note value of 0." +#: js/blocks/MediaBlocks.js:97 +#.TRANS: left side of the screen +msgid "left (screen)" msgstr "" -#: js/RhythmBlocks.js:661 -msgid "The Dot block extends the duration of a note by 50%." +#: js/blocks/MediaBlocks.js:107 +#: js/blocks/MediaBlocks.js:118 +msgid "The Left block returns the position of the left of the canvas." msgstr "" -#: js/RhythmBlocks.js:663 -msgid "Eg a dotted quarter note will play for 3/8 (1/4 + 1/8) of a beat." +#: js/blocks/MediaBlocks.js:158 +msgid "top (screen)" msgstr "" -#: js/RhythmBlocks.js:765 -#.TRANS: Japanese only: note value block for drum -msgid "note value drum" +#: js/blocks/MediaBlocks.js:168 +#: js/blocks/MediaBlocks.js:179 +msgid "The Top block returns the position of the top of the canvas." msgstr "" -#: js/RhythmBlocks.js:829 -msgid "392 hertz" +#: js/blocks/MediaBlocks.js:219 +msgid "bottom (screen)" msgstr "" -#: js/RhythmBlocks.js:1119 -msgid "The Note block is a container for one or more Pitch blocks." +#: js/blocks/MediaBlocks.js:229 +#: js/blocks/MediaBlocks.js:240 +msgid "The Bottom block returns the position of the bottom of the canvas." msgstr "" -#: js/RhythmBlocks.js:1121 -msgid "The Note block specifies the duration (note value) of its contents." +#: js/blocks/MediaBlocks.js:282 +msgid "width" msgstr "" -#: js/RhythmBlocks.js:1130 -msgid "value2" +#: js/blocks/MediaBlocks.js:291 +msgid "The Width block returns the width of the canvas." msgstr "" -#: js/RhythmBlocks.js:1200 -msgid "define frequency" +#: js/blocks/MediaBlocks.js:325 +msgid "height" msgstr "" -#: js/RhythmBlocks.js:1218 -#: js/temperament.js:650 -#: js/temperament.js:1421 -msgid "octave space" +#: js/blocks/MediaBlocks.js:334 +msgid "The Height block returns the height of the canvas." msgstr "" -#: js/NumberBlocks.js:28 -msgid "The Int block returns an integer." +#: js/blocks/MediaBlocks.js:369 +#.TRANS: stops playback of an audio recording +msgid "stop play" msgstr "" -#: js/NumberBlocks.js:34 -msgid "int" +#: js/blocks/MediaBlocks.js:404 +#.TRANS: Erases the images and text +msgid "erase media" msgstr "" -#: js/NumberBlocks.js:73 -msgid "The Mod block returns the remainder from a division." +#: js/blocks/MediaBlocks.js:409 +msgid "The Erase Media block erases text and images." msgstr "" -#: js/NumberBlocks.js:79 -msgid "mod" +#: js/blocks/MediaBlocks.js:439 +#.TRANS: play an audio recording +msgid "play back" msgstr "" -#: js/NumberBlocks.js:123 -msgid "The Power block calculates a power function." +#: js/blocks/MediaBlocks.js:487 +msgid "speak" msgstr "" -#: js/NumberBlocks.js:178 -msgid "The Sqrt block returns the square root." +#: js/blocks/MediaBlocks.js:495 +msgid "The Speak block outputs to the text-to-speech synthesizer" msgstr "" -#: js/NumberBlocks.js:184 -msgid "sqrt" +#: js/blocks/MediaBlocks.js:546 +msgid "camera" msgstr "" -#: js/NumberBlocks.js:230 -msgid "The Abs block returns the absolute value." +#: js/blocks/MediaBlocks.js:551 +msgid "The Camera block connects a webcam to the Show block." msgstr "" -#: js/NumberBlocks.js:236 -msgid "abs" +#: js/blocks/MediaBlocks.js:574 +msgid "video" msgstr "" -#: js/NumberBlocks.js:277 -msgid "The Distance block returns the distance between two points. For example, between the mouse and the center of the screen." +#: js/blocks/MediaBlocks.js:579 +msgid "The Video block selects video for use with the Show block." msgstr "" -#: js/NumberBlocks.js:283 -#: plugins/rodi.rtp:310 -msgid "distance" +#: js/blocks/MediaBlocks.js:607 +msgid "The Open file block opens a file for use with the Show block." msgstr "" -#: js/NumberBlocks.js:343 -msgid "The Divide block is used to divide." +#: js/blocks/MediaBlocks.js:645 +msgid "stop media" msgstr "" -#: js/NumberBlocks.js:411 -msgid "The Multiply block is used to multiply." +#: js/blocks/MediaBlocks.js:650 +msgid "The Stop media block stops audio or video playback." msgstr "" -#: js/NumberBlocks.js:554 -msgid "The Minus block is used to subtract." +#: js/blocks/MediaBlocks.js:679 +#: js/blocks/PitchBlocks.js:1577 +#: js/widgets/musickeyboard.js:1936 +#: js/widgets/phrasemaker.js:1037 +#.TRANS: a measure of frequency: one cycle per second +msgid "hertz" msgstr "" -#: js/NumberBlocks.js:647 -msgid "The Plus block is used to add." +#: js/blocks/MediaBlocks.js:692 +#: js/blocks/WidgetBlocks.js:182 +#: js/widgets/temperament.js:506 +#: js/widgets/temperament.js:546 +#: js/widgets/temperament.js:610 +#: js/widgets/temperament.js:618 +#: js/widgets/temperament.js:1505 +#: js/widgets/timbre.js:1842 +msgid "frequency" msgstr "" -#: js/NumberBlocks.js:773 -msgid "The One-of block returns one of two choices." +#: js/blocks/MediaBlocks.js:692 +msgid "duration (ms)" msgstr "" -#: js/NumberBlocks.js:780 -#: js/PitchBlocks.js:616 -msgid "one of" +#: js/blocks/MediaBlocks.js:728 +#.TRANS: translate a note into hertz, e.g., A4 -> 440HZ +msgid "note to frequency" msgstr "" -#: js/NumberBlocks.js:782 -msgid "this" +#: js/blocks/MediaBlocks.js:736 +msgid "The To frequency block converts a pitch name and octave to Hertz." msgstr "" -#: js/NumberBlocks.js:782 -msgid "that" +#: js/blocks/MediaBlocks.js:746 +#: js/blocks/PitchBlocks.js:656 +#: js/blocks/PitchBlocks.js:934 +#: js/blocks/PitchBlocks.js:1866 +#.TRANS: name2 is name as in name of pitch (JAPANESE ONLY) +msgid "name2" msgstr "" -#: js/NumberBlocks.js:837 -msgid "The Random block returns a random number." +#: js/blocks/MediaBlocks.js:812 +msgid "The Avatar block is used to change the appearance of the mouse." msgstr "" -#: js/NumberBlocks.js:844 -msgid "random" +#: js/blocks/MediaBlocks.js:819 +msgid "The Avatar block is used to change the appearance of the turtle." msgstr "" -#: js/NumberBlocks.js:846 -msgid "min" +#: js/blocks/MediaBlocks.js:831 +#: js/blocks/MediaBlocks.js:891 +#.TRANS: a media object +msgid "size" msgstr "" -#: js/NumberBlocks.js:846 -msgid "max" +#: js/blocks/MediaBlocks.js:831 +msgid "image" msgstr "" -#: js/NumberBlocks.js:910 -msgid "The Number block holds a number." +#: js/blocks/MediaBlocks.js:880 +msgid "The Show block is used to display text or images on the canvas." msgstr "" -#: js/BoxesBlocks.js:53 -#: js/BoxesBlocks.js:59 -msgid "The Add-to block is used to add to the value stored in a box." +#: js/blocks/MediaBlocks.js:888 +#.TRANS: show1 is show as in display an image or text on the screen. +msgid "show1" msgstr "" -#: js/BoxesBlocks.js:61 -msgid "It can also be used with other blocks such as Color and Pen size." +#: js/blocks/MediaBlocks.js:891 +msgid "obj" msgstr "" -#: js/BoxesBlocks.js:73 -msgid "add" +#: js/blocks/MediaBlocks.js:938 +msgid "The Media block is used to import an image." msgstr "" -#: js/BoxesBlocks.js:75 -#: js/temperament.js:716 -msgid "to" +#: js/blocks/MediaBlocks.js:973 +msgid "The Text block holds a text string." msgstr "" -#: js/BoxesBlocks.js:75 -#: js/BoxesBlocks.js:595 -#: js/HeapBlocks.js:544 -msgid "value1" +#: js/blocks/MeterBlocks.js:34 +#.TRANS: musical meter (time signature), e.g., 4:4 +msgid "current meter" msgstr "" -#: js/BoxesBlocks.js:118 -msgid "Block does not support incrementing." +#: js/blocks/MeterBlocks.js:85 +#.TRANS: number of beats per minute +msgid "beat factor" msgstr "" -#: js/BoxesBlocks.js:152 -msgid "The Add-1-to block adds one to the value stored in a box." +#: js/blocks/MeterBlocks.js:161 +msgid "The Beats per minute block returns the current beats per minute." msgstr "" -#: js/BoxesBlocks.js:163 -msgid "add 1 to" +#: js/blocks/MeterBlocks.js:169 +#: js/widgets/status.js:152 +#.TRANS: number of beats played per minute +msgid "beats per minute2" msgstr "" -#: js/BoxesBlocks.js:211 -msgid "The Subtract-1-from block subtracts one from the value stored in a box." +#: js/blocks/MeterBlocks.js:169 +#: js/blocks/MeterBlocks.js:1056 +#: js/blocks/MeterBlocks.js:1133 +#: js/blocks/MeterBlocks.js:1211 +#.TRANS: sets tempo by defining a beat and beats per minute +msgid "beats per minute" msgstr "" -#: js/BoxesBlocks.js:222 -msgid "subtract 1 from" +#: js/blocks/MeterBlocks.js:233 +#.TRANS: count of current musical measure in meter +msgid "measure count" msgstr "" -#: js/BoxesBlocks.js:270 -#: js/BoxesBlocks.js:387 -msgid "The Box block returns the value stored in a box." +#: js/blocks/MeterBlocks.js:241 +msgid "The Measure count block returns the current measure." msgstr "" -#: js/BoxesBlocks.js:500 -#: js/BoxesBlocks.js:576 -msgid "The Store in block will store a value in a box." +#: js/blocks/MeterBlocks.js:290 +#.TRANS: count of current beat in the meter +msgid "beat count" msgstr "" -#: js/BoxesBlocks.js:652 -msgid "The Box2 block returns the value stored in Box2." +#: js/blocks/MeterBlocks.js:300 +#: js/blocks/MeterBlocks.js:311 +#: js/blocks/MeterBlocks.js:565 +#: js/blocks/MeterBlocks.js:576 +msgid "The Beat count block is the number of the current beat," msgstr "" -#: js/BoxesBlocks.js:703 -msgid "The Store in Box2 block is used to store a value in Box2." +#: js/blocks/MeterBlocks.js:313 +#: js/blocks/MeterBlocks.js:578 +msgid "eg 1, 2, 3, or 4." msgstr "" -#: js/BoxesBlocks.js:715 -msgid "store in box2" +#: js/blocks/MeterBlocks.js:368 +#.TRANS: count the number of notes +msgid "sum note values" msgstr "" -#: js/BoxesBlocks.js:761 -msgid "The Box1 block returns the value stored in Box1." +#: js/blocks/MeterBlocks.js:376 +#: js/blocks/MeterBlocks.js:440 +msgid "The Note counter block can be used to count the number of contained notes." msgstr "" -#: js/BoxesBlocks.js:812 -msgid "The Store in Box1 block is used to store a value in Box1." +#: js/blocks/MeterBlocks.js:432 +#.TRANS: count the number of notes +msgid "note counter" msgstr "" -#: js/BoxesBlocks.js:826 -msgid "store in box1" +#: js/blocks/MeterBlocks.js:496 +#.TRANS: number of whole notes that have been played +msgid "whole notes played" msgstr "" -#: js/HeapBlocks.js:49 -msgid "The Heap block returns the heap." +#: js/blocks/MeterBlocks.js:505 +msgid "The Whole notes played block returns the total number of whole notes played." msgstr "" -#: js/HeapBlocks.js:133 -msgid "show heap" +#: js/blocks/MeterBlocks.js:555 +#: js/turtleactions/DictActions.js:83 +#.TRANS: number of notes that have been played +msgid "notes played" msgstr "" -#: js/HeapBlocks.js:181 -msgid "The Heap-length block returns the length of the heap." +#: js/blocks/MeterBlocks.js:653 +msgid "The No clock block decouples the notes from the master clock." msgstr "" -#: js/HeapBlocks.js:195 -msgid "heap length" +#: js/blocks/MeterBlocks.js:661 +#.TRANS: don't lock notes to master clock +msgid "no clock" msgstr "" -#: js/HeapBlocks.js:254 -msgid "The Heap-empty? block returns true if the heap is empty." +#: js/blocks/MeterBlocks.js:700 +msgid "on weak beat do" msgstr "" -#: js/HeapBlocks.js:268 -#.TRANS: Is the heap empty? -msgid "heap empty?" +#: js/blocks/MeterBlocks.js:705 +msgid "The On-weak-beat block lets you specify actions to take on weak (off) beats." msgstr "" -#: js/HeapBlocks.js:317 -msgid "The Empty-heap block empties the heap." +#: js/blocks/MeterBlocks.js:750 +msgid "on strong beat" msgstr "" -#: js/HeapBlocks.js:327 -#: js/HeapBlocks.js:647 -#.TRANS: empty the heap -msgid "empty heap" +#: js/blocks/MeterBlocks.js:758 +msgid "The On-strong-beat block lets you specify actions to take on specified beats." msgstr "" -#: js/HeapBlocks.js:371 -msgid "The Reverse-heap block reverses the order of the heap." +#: js/blocks/MeterBlocks.js:769 +msgid "beat" msgstr "" -#: js/HeapBlocks.js:384 -#.TRANS: reverse the order of the heap -msgid "reverse heap" +#: js/blocks/MeterBlocks.js:813 +msgid "on every beat do" msgstr "" -#: js/HeapBlocks.js:428 -msgid "The Index-heap block returns a value in the heap at a specified location." +#: js/blocks/MeterBlocks.js:821 +msgid "The On-every-beat block lets you specify actions to take on every beat." msgstr "" -#: js/HeapBlocks.js:443 -#.TRANS: retrieve a value from the heap at index position in the heap -msgid "index heap" +#: js/blocks/MeterBlocks.js:874 +msgid "on every note do" msgstr "" -#: js/HeapBlocks.js:523 -msgid "The Set-heap entry block sets a value in he heap at the specified location." +#: js/blocks/MeterBlocks.js:882 +msgid "The On-every-note block lets you specify actions to take on every note." msgstr "" -#: js/HeapBlocks.js:619 -msgid "The Pop block removes the value at the top of the heap." +#: js/blocks/MeterBlocks.js:928 +#: js/blocks/MeterBlocks.js:999 +#.TRANS: sets tempo by defining a beat and beats per minute +msgid "master beats per minute" msgstr "" -#: js/HeapBlocks.js:633 -#.TRANS: pop a value off the top of the heap -msgid "pop" +#: js/blocks/MeterBlocks.js:952 +#: js/blocks/MeterBlocks.js:1078 +#: js/blocks/MeterBlocks.js:1135 +msgid "bpm" msgstr "" -#: js/HeapBlocks.js:680 -msgid "The Push block adds a value to the top of the heap." +#: js/blocks/MeterBlocks.js:952 +#: js/blocks/MeterBlocks.js:1078 +#: js/blocks/MeterBlocks.js:1135 +msgid "beat value" msgstr "" -#: js/HeapBlocks.js:696 -#.TRANS: push a value onto the top of the heap -msgid "push" +#: js/blocks/MeterBlocks.js:1024 +#: js/blocks/MeterBlocks.js:1167 +#: js/blocks/MeterBlocks.js:1241 +msgid "Beats per minute must be > 30." msgstr "" -#: js/FlowBlocks.js:41 -msgid "The Backward block runs code in reverse order (Musical retrograde)." +#: js/blocks/MeterBlocks.js:1027 +#: js/blocks/MeterBlocks.js:1170 +#: js/blocks/MeterBlocks.js:1244 +msgid "Maximum beats per minute is 1000." msgstr "" -#: js/FlowBlocks.js:48 -msgid "backward" +#: js/blocks/MeterBlocks.js:1068 +msgid "The Beats per minute block sets the number of 1/4 notes per minute." msgstr "" -#: js/FlowBlocks.js:124 -msgid "The Duplicate block will run each block multiple times." +#: js/blocks/MeterBlocks.js:1279 +#.TRANS: anacrusis +msgid "pickup" msgstr "" -#: js/FlowBlocks.js:136 -msgid "duplicate" +#: js/blocks/MeterBlocks.js:1367 +msgid "number of beats" msgstr "" -#: js/FlowBlocks.js:334 -msgid "The Default block is used inside of a Switch to define the default action." +#: js/blocks/NumberBlocks.js:28 +msgid "The Int block returns an integer." msgstr "" -#: js/FlowBlocks.js:342 -msgid "default" +#: js/blocks/NumberBlocks.js:34 +msgid "int" msgstr "" -#: js/FlowBlocks.js:361 -#: js/FlowBlocks.js:418 -msgid "The Case Block must be used inside of a Switch Block." +#: js/blocks/NumberBlocks.js:73 +msgid "The Mod block returns the remainder from a division." msgstr "" -#: js/FlowBlocks.js:389 -msgid "The Case block is used inside of a Switch to define matches." +#: js/blocks/NumberBlocks.js:79 +msgid "mod" msgstr "" -#: js/FlowBlocks.js:397 -msgid "case" +#: js/blocks/NumberBlocks.js:141 +msgid "The Power block calculates a power function." msgstr "" -#: js/FlowBlocks.js:446 -msgid "The Switch block will run the code in the matching Case." +#: js/blocks/NumberBlocks.js:196 +msgid "The Sqrt block returns the square root." msgstr "" -#: js/FlowBlocks.js:454 -msgid "switch" +#: js/blocks/NumberBlocks.js:202 +msgid "sqrt" msgstr "" -#: js/FlowBlocks.js:595 -msgid "The Stop block will stop a loop" +#: js/blocks/NumberBlocks.js:248 +msgid "The Abs block returns the absolute value." msgstr "" -#: js/FlowBlocks.js:597 -msgid "Forever, Repeat, While, or Until." +#: js/blocks/NumberBlocks.js:254 +msgid "abs" msgstr "" -#: js/FlowBlocks.js:604 -#: js/phrasemaker.js:3799 -#: js/musickeyboard.js:629 -#: js/musickeyboard.js:631 -#: js/timbre.js:417 -#: js/timbre.js:419 -#: plugins/rodi.rtp:29 -#: plugins/rodi.rtp:73 -#: plugins/rodi.rtp:413 -msgid "stop" +#: js/blocks/NumberBlocks.js:295 +msgid "The Distance block returns the distance between two points. For example, between the mouse and the center of the screen." msgstr "" -#: js/FlowBlocks.js:653 -msgid "The Waitfor block will wait until the condition is true." +#: js/blocks/NumberBlocks.js:301 +#: plugins/rodi.rtp:310 +msgid "distance" msgstr "" -#: js/FlowBlocks.js:661 -msgid "wait for" +#: js/blocks/NumberBlocks.js:361 +msgid "The Divide block is used to divide." msgstr "" -#: js/FlowBlocks.js:732 -msgid "The Until block will repeat until the condition is true." +#: js/blocks/NumberBlocks.js:441 +msgid "The Multiply block is used to multiply." msgstr "" -#: js/FlowBlocks.js:740 -msgid "until" +#: js/blocks/NumberBlocks.js:612 +msgid "The Minus block is used to subtract." msgstr "" -#: js/FlowBlocks.js:742 -#: js/FlowBlocks.js:822 -msgid "do2" +#: js/blocks/NumberBlocks.js:723 +msgid "The Plus block is used to add." msgstr "" -#: js/FlowBlocks.js:812 -msgid "The While block will repeat while the condition is true." +#: js/blocks/NumberBlocks.js:849 +msgid "The One-of block returns one of two choices." msgstr "" -#: js/FlowBlocks.js:820 -msgid "while" +#: js/blocks/NumberBlocks.js:856 +#: js/blocks/PitchBlocks.js:616 +msgid "one of" msgstr "" -#: js/FlowBlocks.js:903 -#: js/FlowBlocks.js:968 -#: js/FlowBlocks.js:979 -msgid "In this example if the mouse button is pressed a snare drum will play." +#: js/blocks/NumberBlocks.js:858 +msgid "this" msgstr "" -#: js/FlowBlocks.js:925 -#: js/FlowBlocks.js:988 -msgid "if" +#: js/blocks/NumberBlocks.js:858 +msgid "that" msgstr "" -#: js/FlowBlocks.js:927 -#: js/FlowBlocks.js:990 -msgid "then" +#: js/blocks/NumberBlocks.js:913 +msgid "The Random block returns a random number." msgstr "" -#: js/FlowBlocks.js:927 -msgid "else" +#: js/blocks/NumberBlocks.js:920 +msgid "random" msgstr "" -#: js/FlowBlocks.js:1025 -msgid "The Forever block will repeat the contained blocks forever." +#: js/blocks/NumberBlocks.js:922 +msgid "min" msgstr "" -#: js/FlowBlocks.js:1037 -msgid "forever" +#: js/blocks/NumberBlocks.js:922 +msgid "max" msgstr "" -#: js/FlowBlocks.js:1073 -msgid "The Repeat block will repeat the contained blocks." +#: js/blocks/NumberBlocks.js:986 +msgid "The Number block holds a number." msgstr "" -#: js/FlowBlocks.js:1075 -msgid "In this example the note will be played 4 times." +#: js/blocks/OrnamentBlocks.js:32 +msgid "staccato factor" msgstr "" -#: js/FlowBlocks.js:1083 -msgid "repeat" +#: js/blocks/OrnamentBlocks.js:108 +msgid "slur factor" msgstr "" -#: js/FlowBlocks.js:1123 -msgid "duplicate factor" +#: js/blocks/OrnamentBlocks.js:217 +#: js/blocks/OrnamentBlocks.js:309 +#.TRANS: the neighbor refers to a neighboring note, e.g., D is a neighbor of C +msgid "neighbor" msgstr "" -#: js/PitchBlocks.js:39 -#: js/musicutils.js:722 -#: js/musicutils.js:1117 -#: js/synthutils.js:112 -#.TRANS: square wave -msgid "square" +#: js/blocks/OrnamentBlocks.js:293 +msgid "The Neighbor block rapidly switches between neighboring pitches." msgstr "" -#: js/PitchBlocks.js:62 -#: js/ToneBlocks.js:39 -#: js/musicutils.js:723 -#: js/musicutils.js:1118 -#: js/synthutils.js:116 -#.TRANS: triangle wave -msgid "triangle" +#: js/blocks/OrnamentBlocks.js:364 +msgid "glide" msgstr "" -#: js/PitchBlocks.js:85 -#: js/musicutils.js:721 -#: js/musicutils.js:1116 -#: js/synthutils.js:110 -#.TRANS: sine wave -msgid "sine" +#: js/blocks/OrnamentBlocks.js:479 +#: js/blocks/OrnamentBlocks.js:643 +msgid "slur" msgstr "" -#: js/PitchBlocks.js:108 -#: js/musicutils.js:724 -#: js/musicutils.js:1119 -#: js/synthutils.js:114 -#.TRANS: sawtooth wave -msgid "sawtooth" +#: js/blocks/OrnamentBlocks.js:558 +#: js/blocks/OrnamentBlocks.js:710 +#.TRANS: play each note sharply detached from the others +msgid "staccato" msgstr "" -#: js/PitchBlocks.js:141 -#.TRANS: musical transposition (adjustment of pitch up or down) -msgid "transposition" +#: js/blocks/RhythmBlocks.js:182 +#: js/blocks/RhythmBlocks.js:1086 +#: js/blocks/RhythmBlocks.js:1162 +msgid "Note value must be greater than 0." msgstr "" -#: js/PitchBlocks.js:168 -#.TRANS: step down one note in current musical scale -msgid "scalar step down" +#: js/blocks/RhythmBlocks.js:215 +#: js/blocks/RhythmBlocks.js:278 +#: js/blocks/RhythmBlocks.js:350 +#.TRANS: swing is a rhythmic variation that emphasises the offbeat +msgid "swing" msgstr "" -#: js/PitchBlocks.js:172 -msgid "The Scalar step down block returns the number of semi-tones down to the previous note in the current key and mode." +#: js/blocks/RhythmBlocks.js:355 +#.TRANS: the amount to shift to the offbeat note +msgid "swing value" msgstr "" -#: js/PitchBlocks.js:190 -#.TRANS: step up one note in current musical scale -msgid "scalar step up" +#: js/blocks/RhythmBlocks.js:419 +msgid "The Skip notes block will cause notes to be skipped." msgstr "" -#: js/PitchBlocks.js:194 -msgid "The Scalar step up block returns the number of semi-tones up to the next note in the current key and mode." +#: js/blocks/RhythmBlocks.js:427 +#.TRANS: substitute rests on notes being skipped +msgid "skip notes" msgstr "" -#: js/PitchBlocks.js:212 -#.TRANS: the change measured in half-steps between the current pitch and the previous pitch -msgid "change in pitch" +#: js/blocks/RhythmBlocks.js:489 +#.TRANS: speed up note duration by some factor, e.g. convert 1/4 to 1/8 notes by using a factor of 2 +msgid "multiply note value" msgstr "" -#: js/PitchBlocks.js:216 -msgid "The Change in pitch block is the difference (in half steps) between the current pitch being played and the previous pitch played." +#: js/blocks/RhythmBlocks.js:542 +msgid "The Tie block works on pairs of notes, combining them into one note." msgstr "" -#: js/PitchBlocks.js:243 -#.TRANS: the change measured in scale-steps between the current pitch and the previous pitch -msgid "scalar change in pitch" +#: js/blocks/RhythmBlocks.js:550 +#.TRANS: tie notes together into one longer note +msgid "tie" msgstr "" -#: js/PitchBlocks.js:250 -#: js/PitchBlocks.js:432 -#: js/PitchBlocks.js:1629 -#: js/DictActions.js:89 -#: js/temperament.js:477 -#: js/temperament.js:481 -#: js/temperament.js:714 -#.TRANS: convert current note to piano key (1-88) -#.TRANS: a mapping of pitch to the 88 piano keys -msgid "pitch number" +#: js/blocks/RhythmBlocks.js:591 +#: js/blocks/RhythmBlocks.js:671 +#.TRANS: a dotted note is played for 1.5x its value, e.g., 1/8. --> 3/16 +msgid "dot" msgstr "" -#: js/PitchBlocks.js:256 -msgid "The Pitch number block is the value of the pitch of the note currently being played." +#: js/blocks/RhythmBlocks.js:619 +#: js/turtleactions/RhythmActions.js:221 +msgid "An argument of -1 results in a note value of 0." msgstr "" -#: js/PitchBlocks.js:329 -#: js/PitchBlocks.js:433 -#.TRANS: the current pitch expressed in Hertz -msgid "pitch in hertz" +#: js/blocks/RhythmBlocks.js:661 +msgid "The Dot block extends the duration of a note by 50%." msgstr "" -#: js/PitchBlocks.js:334 -msgid "The Pitch in Hertz block is the value in Hertz of the pitch of the note currently being played." +#: js/blocks/RhythmBlocks.js:663 +msgid "Eg a dotted quarter note will play for 3/8 (1/4 + 1/8) of a beat." msgstr "" -#: js/PitchBlocks.js:367 -#: js/DictActions.js:87 -msgid "current pitch" +#: js/blocks/RhythmBlocks.js:765 +#.TRANS: Japanese only: note value block for drum +msgid "note value drum" msgstr "" -#: js/PitchBlocks.js:373 -msgid "The Current Pitch block is used with the Pitch Converter block. In the example above, current pitch, sol 4, is displayed as 392 hertz." +#: js/blocks/RhythmBlocks.js:829 +msgid "392 hertz" msgstr "" -#: js/PitchBlocks.js:410 -msgid "This block converts the pitch value of the last note played into different formats such as hertz, letter name, pitch number, et al." +#: js/blocks/RhythmBlocks.js:1119 +msgid "The Note block is a container for one or more Pitch blocks." msgstr "" -#: js/PitchBlocks.js:434 -msgid "alphabet" +#: js/blocks/RhythmBlocks.js:1121 +msgid "The Note block specifies the duration (note value) of its contents." msgstr "" -#: js/PitchBlocks.js:436 -#.TRANS: Translate as "alphabet class" -msgid "letter class" +#: js/blocks/RhythmBlocks.js:1128 +#: js/blocks/PitchBlocks.js:974 +#: js/blocks/PitchBlocks.js:1007 +#: js/blocks/ProgramBlocks.js:1186 +#: js/blocks/ProgramBlocks.js:1227 +#: js/widgets/status.js:190 +#: js/widgets/temperament.js:464 +#: js/widgets/temperament.js:486 +#: js/widgets/temperament.js:496 +#: js/widgets/temperament.js:617 +#: plugins/rodi.rtp:192 +#.TRANS: a musical note consisting of pitch and duration +msgid "note" msgstr "" -#: js/PitchBlocks.js:437 -msgid "solfege class" +#: js/blocks/RhythmBlocks.js:1130 +msgid "value2" msgstr "" -#: js/PitchBlocks.js:438 -msgid "staff y" +#: js/blocks/RhythmBlocks.js:1200 +msgid "define frequency" msgstr "" -#: js/PitchBlocks.js:439 -msgid "solfege syllable" +#: js/blocks/RhythmBlocks.js:1218 +#: js/widgets/temperament.js:787 +#: js/widgets/temperament.js:1587 +msgid "octave space" msgstr "" -#: js/PitchBlocks.js:440 -msgid "pitch class" +#: js/blocks/SensorsBlocks.js:36 +msgid "The Input block prompts for keyboard input." msgstr "" -#: js/PitchBlocks.js:441 -msgid "scalar class" +#: js/blocks/SensorsBlocks.js:46 +msgid "input" msgstr "" -#: js/PitchBlocks.js:443 -msgid "nth degree" +#: js/blocks/SensorsBlocks.js:64 +msgid "Input a value" msgstr "" -#: js/PitchBlocks.js:444 -msgid "pitch to shade" +#: js/blocks/SensorsBlocks.js:126 +msgid "input value" msgstr "" -#: js/PitchBlocks.js:445 -msgid "pitch to color" +#: js/blocks/SensorsBlocks.js:131 +msgid "The Input-value block stores the input." msgstr "" -#: js/PitchBlocks.js:629 -#: js/musickeyboard.js:565 -#.TRANS: MIDI is a technical standard for electronic music -msgid "MIDI" +#: js/blocks/SensorsBlocks.js:238 +msgid "loudness" msgstr "" -#: js/PitchBlocks.js:642 -#.TRANS: set an offset associated with the numeric piano keyboard mapping -msgid "set pitch number offset" +#: js/blocks/SensorsBlocks.js:245 +msgid "The Loudness block returns the volume detected by the microphone." msgstr "" -#: js/PitchBlocks.js:645 -msgid "The Set pitch number offset block is used to set the offset for mapping pitch numbers to pitch and octave." +#: js/blocks/SensorsBlocks.js:300 +msgid "click" msgstr "" -#: js/PitchBlocks.js:679 -#.TRANS: convert piano key number (1-88) to pitch -msgid "number to pitch" +#: js/blocks/SensorsBlocks.js:306 +msgid "The Click block triggers an event if a mouse has been clicked." msgstr "" -#: js/PitchBlocks.js:682 -msgid "The Number to pitch block will convert a pitch number to a pich name." +#: js/blocks/SensorsBlocks.js:313 +msgid "The Click block triggers an event if a turtle has been clicked." msgstr "" -#: js/PitchBlocks.js:715 -#.TRANS: convert piano key number (1-88) to octave -msgid "number to octave" +#: js/blocks/SensorsBlocks.js:342 +msgid "cursor over" msgstr "" -#: js/PitchBlocks.js:717 -msgid "The Number to octave block will convert a pitch number to an octave." +#: js/blocks/SensorsBlocks.js:387 +msgid "cursor out" msgstr "" -#: js/PitchBlocks.js:726 -msgid "y to pitch" +#: js/blocks/SensorsBlocks.js:433 +msgid "cursor button down" msgstr "" -#: js/PitchBlocks.js:729 -msgid "Y to pitch block will convert a staff y position to corresponding pitch notation." +#: js/blocks/SensorsBlocks.js:477 +msgid "cursor button up" msgstr "" -#: js/PitchBlocks.js:841 -msgid "accidental selector" +#: js/blocks/SensorsBlocks.js:521 +#: js/blocks/PenBlocks.js:48 +#: plugins/rodi.rtp:219 +msgid "blue" msgstr "" -#: js/PitchBlocks.js:844 -msgid "The Accidental selector block is used to choose between double-sharp, sharp, natural, flat, and double-flat." +#: js/blocks/SensorsBlocks.js:577 +#: js/blocks/PenBlocks.js:64 +#: plugins/rodi.rtp:218 +msgid "green" msgstr "" -#: js/PitchBlocks.js:858 -msgid "Pitch can be specified in terms of ni dha pa ma ga re sa." +#: js/blocks/SensorsBlocks.js:633 +#: js/blocks/PenBlocks.js:112 +#: plugins/rodi.rtp:217 +msgid "red" msgstr "" -#: js/PitchBlocks.js:872 -msgid "Pitch can be specified in terms of C D E F G A B." +#: js/blocks/SensorsBlocks.js:638 +msgid "The Get red block returns the red component of the pixel under the mouse." msgstr "" -#: js/PitchBlocks.js:883 -msgid "solfege" +#: js/blocks/SensorsBlocks.js:644 +msgid "The Get red block returns the red component of the pixel under the turtle." msgstr "" -#: js/PitchBlocks.js:886 -msgid "Pitch can be specified in terms of do re mi fa sol la ti." +#: js/blocks/SensorsBlocks.js:685 +#: plugins/rodi.rtp:216 +msgid "pixel color" msgstr "" -#: js/PitchBlocks.js:920 -msgid "The Invert block rotates any contained notes around a target note." +#: js/blocks/SensorsBlocks.js:690 +msgid "The Get pixel block returns the color of the pixel under the mouse." msgstr "" -#: js/PitchBlocks.js:927 -#.TRANS: pitch inversion rotates a pitch around another pitch -msgid "invert" +#: js/blocks/SensorsBlocks.js:696 +msgid "The Get pixel block returns the color of the pixel under the turtle." msgstr "" -#: js/PitchBlocks.js:929 -#: js/PitchBlocks.js:935 -#: js/PitchActions.js:727 -#: js/musicutils.js:726 -#: js/musicutils.js:902 -#.TRANS: invert based on even or odd number or musical scale -#.TRANS: even numbers -msgid "even" +#: js/blocks/SensorsBlocks.js:758 +msgid "time" msgstr "" -#: js/PitchBlocks.js:935 -#: js/PitchActions.js:729 -#: js/musicutils.js:728 -#: js/musicutils.js:903 -#.TRANS: odd numbers -msgid "odd" +#: js/blocks/SensorsBlocks.js:804 +msgid "cursor y" msgstr "" -#: js/PitchBlocks.js:935 -#: js/PitchActions.js:731 -#: js/musicutils.js:729 -#: js/musicutils.js:904 -msgid "scalar" +#: js/blocks/SensorsBlocks.js:809 +msgid "The Cursor Y block returns the vertical position of the mouse." msgstr "" -#: js/PitchBlocks.js:966 -#.TRANS: pitch inversion rotates a pitch around another pitch (odd number) -msgid "invert (odd)" +#: js/blocks/SensorsBlocks.js:845 +msgid "cursor x" msgstr "" -#: js/PitchBlocks.js:999 -#.TRANS: pitch inversion rotates a pitch around another pitch (even number) -msgid "invert (even)" +#: js/blocks/SensorsBlocks.js:850 +msgid "The Cursor X block returns the horizontal position of the mouse." msgstr "" -#: js/PitchBlocks.js:1020 -#.TRANS: register is the octave of the current pitch -msgid "register" +#: js/blocks/SensorsBlocks.js:886 +msgid "mouse button" msgstr "" -#: js/PitchBlocks.js:1024 -msgid "The Register block provides an easy way to modify the register (octave) of the notes that follow it." +#: js/blocks/SensorsBlocks.js:888 +msgid "The Mouse-button block returns True if the mouse button is pressed." msgstr "" -#: js/PitchBlocks.js:1074 -msgid "The Semi-tone transposition block will shift the pitches contained inside Note blocks up (or down) by half steps." +#: js/blocks/SensorsBlocks.js:934 +msgid "to ASCII" msgstr "" -#: js/PitchBlocks.js:1076 -msgid "In the example shown above, sol is shifted up to sol#." +#: js/blocks/SensorsBlocks.js:938 +msgid "The To ASCII block converts numbers to letters." msgstr "" -#: js/PitchBlocks.js:1082 -#.TRANS: adjust the amount of shift (up or down) of a pitch -msgid "semi-tone transpose" +#: js/blocks/SensorsBlocks.js:1005 +msgid "The Keyboard block returns computer keyboard input." msgstr "" -#: js/PitchBlocks.js:1115 -msgid "The Transpose by Ratio block will shift the pitches contained inside Note blocks up (or down) by a ratio" +#: js/blocks/RhythmBlockPaletteBlocks.js:50 +#: js/blocks/RhythmBlockPaletteBlocks.js:233 +#.TRANS: rhythm block +#.TRANS: translate "rhythm1" as rhythm +msgid "rhythm1" msgstr "" -#: js/PitchBlocks.js:1121 -#.TRANS: adjust the amount of shift (up or down) of a pitch -msgid "transpose by ratio" +#: js/blocks/RhythmBlockPaletteBlocks.js:70 +#: js/blocks/RhythmBlockPaletteBlocks.js:252 +#: js/blocks/RhythmBlockPaletteBlocks.js:485 +#: js/blocks/RhythmBlockPaletteBlocks.js:554 +#: js/blocks/RhythmBlockPaletteBlocks.js:875 +msgid "number of notes" msgstr "" -#: js/PitchBlocks.js:1204 -#.TRANS: down sixth means the note is five scale degrees below current note -msgid "down sixth" +#: js/blocks/RhythmBlockPaletteBlocks.js:126 +msgid "polyphonic rhythm" msgstr "" -#: js/PitchBlocks.js:1223 -#.TRANS: down third means the note is two scale degrees below current note -msgid "down third" +#: js/blocks/RhythmBlockPaletteBlocks.js:219 +msgid "The Rhythm block is used to generate rhythm patterns." msgstr "" -#: js/PitchBlocks.js:1242 -#.TRANS: seventh means the note is the six scale degrees above current note -msgid "seventh" +#: js/blocks/RhythmBlockPaletteBlocks.js:280 +msgid "1/64 note" msgstr "" -#: js/PitchBlocks.js:1261 -#.TRANS: sixth means the note is the five scale degrees above current note -msgid "sixth" +#: js/blocks/RhythmBlockPaletteBlocks.js:304 +msgid "1/32 note" msgstr "" -#: js/PitchBlocks.js:1280 -#.TRANS: fifth means the note is the four scale degrees above current note -msgid "fifth" +#: js/blocks/RhythmBlockPaletteBlocks.js:332 +msgid "1/16 note" msgstr "" -#: js/PitchBlocks.js:1300 -#.TRANS: fourth means the note is three scale degrees above current note -msgid "fourth" +#: js/blocks/RhythmBlockPaletteBlocks.js:360 +msgid "eighth note" msgstr "" -#: js/PitchBlocks.js:1319 -#.TRANS: third means the note is two scale degrees above current note -msgid "third" +#: js/blocks/RhythmBlockPaletteBlocks.js:388 +msgid "quarter note" msgstr "" -#: js/PitchBlocks.js:1338 -#.TRANS: second means the note is one scale degree above current note -msgid "second" +#: js/blocks/RhythmBlockPaletteBlocks.js:416 +msgid "half note" msgstr "" -#: js/PitchBlocks.js:1379 -msgid "The Scalar transposition block will shift the pitches contained inside Note blocks up (or down) the scale." +#: js/blocks/RhythmBlockPaletteBlocks.js:444 +msgid "whole note" msgstr "" -#: js/PitchBlocks.js:1381 -msgid "In the example shown above, sol is shifted up to la." +#: js/blocks/RhythmBlockPaletteBlocks.js:482 +#: js/blocks/RhythmBlockPaletteBlocks.js:551 +#: js/blocks/RhythmBlockPaletteBlocks.js:602 +#.TRANS: A tuplet is a note value divided into irregular time values. +msgid "tuplet" msgstr "" -#: js/PitchBlocks.js:1388 -#.TRANS: adjust the amount of shift (up or down) of a pitch by musical scale (scalar) steps -msgid "scalar transpose" +#: js/blocks/RhythmBlockPaletteBlocks.js:768 +msgid "septuplet" msgstr "" -#: js/PitchBlocks.js:1423 -msgid "The Accidental block is used to create sharps and flats" +#: js/blocks/RhythmBlockPaletteBlocks.js:796 +msgid "quintuplet" msgstr "" -#: js/PitchBlocks.js:1430 -#.TRANS: An accidental is a modification to a pitch, e.g., sharp or flat. -msgid "accidental override" +#: js/blocks/RhythmBlockPaletteBlocks.js:824 +msgid "triplet" msgstr "" -#: js/PitchBlocks.js:1543 -msgid "The Hertz block (in combination with a Number block) will play a sound at the specified frequency." +#: js/blocks/RhythmBlockPaletteBlocks.js:851 +msgid "simple tuplet" msgstr "" -#: js/PitchBlocks.js:1633 -msgid "The Pitch Number block will play a pitch associated by its number, e.g. 0 for C and 7 for G." +#: js/blocks/RhythmBlockPaletteBlocks.js:861 +msgid "Tuplets are a collection of notes that get scaled to a specific duration." msgstr "" -#: js/PitchBlocks.js:1665 -#: js/PitchBlocks.js:1707 -#.TRANS: a numeric mapping of the notes in an octave based on the musical mode -#.TRANS: a numeric mapping of the notes in an octave based on the musical mode -msgid "nth modal pitch" +#: js/blocks/DrumBlocks.js:59 +msgid "The Noise name block is used to select a noise synthesizer." msgstr "" -#: js/PitchBlocks.js:1668 -msgid "n^th Modal Pitch takes the pattern of pitches in semitones for a mode and makes each point a degree of the mode," +#: js/blocks/DrumBlocks.js:102 +msgid "The Drum name block is used to select a drum." msgstr "" -#: js/PitchBlocks.js:1670 -msgid "starting from 1 and regardless of tonal framework (i.e. not always 8 notes in the octave)" +#: js/blocks/DrumBlocks.js:146 +msgid "The Effects name block is used to select a sound effect." msgstr "" -#: js/PitchBlocks.js:1711 -msgid "N^th Modal Pitch takes a number as an input as the n^th degree for the given mode. 0 is the first position, 1 is the second, -1 is the note before the first etc." +#: js/blocks/DrumBlocks.js:163 +msgid "noise" msgstr "" -#: js/PitchBlocks.js:1713 -msgid "The pitches change according to the mode specified without any need for respellings." +#: js/blocks/DrumBlocks.js:177 +msgid "The Play noise block will generate white, pink, or brown noise." msgstr "" -#: js/PitchBlocks.js:1752 -msgid "Scale Degree is a common convention in music. Scale Degree offers seven possible positions in the scale (1-7) and can be modified via accidentals." +#: js/blocks/DrumBlocks.js:317 +msgid "Replace every instance of a pitch with a drum sound." msgstr "" -#: js/PitchBlocks.js:1754 -msgid "Scale Degree 1 is always the first pitch in a given scale, regardless of octave." +#: js/blocks/DrumBlocks.js:328 +#.TRANS: map a pitch to a drum sound +msgid "map pitch to drum" msgstr "" -#: js/PitchBlocks.js:1776 -#.TRANS: step some number of notes in current musical scale -msgid "scalar step" +#: js/blocks/DrumBlocks.js:395 +msgid "In the example above, a kick drum sound will be played instead of sol." msgstr "" -#: js/PitchBlocks.js:1781 -msgid "The Scalar Step block (in combination with a Number block) will play the next pitch in a scale," +#: js/blocks/DrumBlocks.js:407 +#.TRANS: set the current drum sound for playback +msgid "set drum" msgstr "" -#: js/PitchBlocks.js:1783 -msgid "eg if the last note played was sol, Scalar Step 1 will play la." +#: js/blocks/DrumBlocks.js:451 +msgid "sound effect" msgstr "" -#: js/PitchBlocks.js:1818 -msgid "The Pitch block specifies the pitch name and octave of a note that together determine the frequency of the note." +#: js/blocks/DrumBlocks.js:489 +msgid "You can use multiple Drum blocks within a Note block." msgstr "" -#: js/GraphicsBlocks.js:46 -#: js/DictActions.js:77 -#: js/DictActions.js:155 -#: js/DictActions.js:189 +#: js/blocks/GraphicsBlocks.js:46 +#: js/turtleactions/DictActions.js:77 +#: js/turtleactions/DictActions.js:144 +#: js/turtleactions/DictActions.js:173 msgid "heading" msgstr "" -#: js/GraphicsBlocks.js:56 +#: js/blocks/GraphicsBlocks.js:56 msgid "The Heading block returns the orientation of the mouse." msgstr "" -#: js/GraphicsBlocks.js:62 +#: js/blocks/GraphicsBlocks.js:62 msgid "The Heading block returns the orientation of the turtle." msgstr "" -#: js/GraphicsBlocks.js:133 +#: js/blocks/GraphicsBlocks.js:133 msgid "The Y block returns the vertical position of the mouse." msgstr "" -#: js/GraphicsBlocks.js:140 +#: js/blocks/GraphicsBlocks.js:140 msgid "The Y block returns the vertical position of the turtle." msgstr "" -#: js/GraphicsBlocks.js:149 +#: js/blocks/GraphicsBlocks.js:149 msgid "y3" msgstr "" -#: js/GraphicsBlocks.js:219 +#: js/blocks/GraphicsBlocks.js:219 msgid "The X block returns the horizontal position of the mouse." msgstr "" -#: js/GraphicsBlocks.js:226 +#: js/blocks/GraphicsBlocks.js:226 msgid "The X block returns the horizontal position of the turtle." msgstr "" -#: js/GraphicsBlocks.js:235 +#: js/blocks/GraphicsBlocks.js:235 msgid "x3" msgstr "" -#: js/GraphicsBlocks.js:295 +#: js/blocks/GraphicsBlocks.js:295 msgid "scroll xy" msgstr "" -#: js/GraphicsBlocks.js:303 +#: js/blocks/GraphicsBlocks.js:303 msgid "The Scroll XY block moves the canvas." msgstr "" -#: js/GraphicsBlocks.js:313 +#: js/blocks/GraphicsBlocks.js:313 msgid "x2" msgstr "" -#: js/GraphicsBlocks.js:313 +#: js/blocks/GraphicsBlocks.js:313 msgid "y2" msgstr "" -#: js/GraphicsBlocks.js:373 -#: js/temperament.js:213 -#: js/temperament.js:241 +#: js/blocks/GraphicsBlocks.js:373 +#: js/widgets/temperament.js:319 +#: js/widgets/temperament.js:347 msgid "clear" msgstr "" -#: js/GraphicsBlocks.js:426 +#: js/blocks/GraphicsBlocks.js:426 msgid "The Control-point 2 block sets the second control point for the Bezier curve." msgstr "" -#: js/GraphicsBlocks.js:433 +#: js/blocks/GraphicsBlocks.js:433 msgid "control point 2" msgstr "" -#: js/GraphicsBlocks.js:436 -#: js/GraphicsBlocks.js:487 -#: js/GraphicsBlocks.js:534 -#: js/GraphicsBlocks.js:750 +#: js/blocks/GraphicsBlocks.js:436 +#: js/blocks/GraphicsBlocks.js:487 +#: js/blocks/GraphicsBlocks.js:534 +#: js/blocks/GraphicsBlocks.js:750 msgid "x1" msgstr "" -#: js/GraphicsBlocks.js:436 -#: js/GraphicsBlocks.js:487 -#: js/GraphicsBlocks.js:534 -#: js/GraphicsBlocks.js:750 +#: js/blocks/GraphicsBlocks.js:436 +#: js/blocks/GraphicsBlocks.js:487 +#: js/blocks/GraphicsBlocks.js:534 +#: js/blocks/GraphicsBlocks.js:750 msgid "y1" msgstr "" -#: js/GraphicsBlocks.js:477 +#: js/blocks/GraphicsBlocks.js:477 msgid "The Control-point 1 block sets the first control point for the Bezier curve." msgstr "" -#: js/GraphicsBlocks.js:484 +#: js/blocks/GraphicsBlocks.js:484 msgid "control point 1" msgstr "" -#: js/GraphicsBlocks.js:527 +#: js/blocks/GraphicsBlocks.js:527 msgid "The Bezier block draws a Bezier curve." msgstr "" -#: js/GraphicsBlocks.js:531 +#: js/blocks/GraphicsBlocks.js:531 msgid "bezier" msgstr "" -#: js/GraphicsBlocks.js:592 +#: js/blocks/GraphicsBlocks.js:592 msgid "The Arc block moves the turtle in an arc." msgstr "" -#: js/GraphicsBlocks.js:600 +#: js/blocks/GraphicsBlocks.js:600 msgid "arc" msgstr "" -#: js/GraphicsBlocks.js:603 +#: js/blocks/GraphicsBlocks.js:603 msgid "angle" msgstr "" -#: js/GraphicsBlocks.js:603 +#: js/blocks/GraphicsBlocks.js:603 msgid "radius" msgstr "" -#: js/GraphicsBlocks.js:620 -#: js/GraphicsBlocks.js:767 -#: js/GraphicsBlocks.js:1010 -#: js/GraphicsBlocks.js:1093 +#: js/blocks/GraphicsBlocks.js:620 +#: js/blocks/GraphicsBlocks.js:767 +#: js/blocks/GraphicsBlocks.js:1010 +#: js/blocks/GraphicsBlocks.js:1093 msgid "Value must be within -5000 to 5000 when Wrap Mode is off." msgstr "" -#: js/GraphicsBlocks.js:622 -#: js/GraphicsBlocks.js:769 -#: js/GraphicsBlocks.js:1012 -#: js/GraphicsBlocks.js:1095 +#: js/blocks/GraphicsBlocks.js:622 +#: js/blocks/GraphicsBlocks.js:769 +#: js/blocks/GraphicsBlocks.js:1012 +#: js/blocks/GraphicsBlocks.js:1095 msgid "Value must be within -20000 to 20000 when Wrap Mode is on." msgstr "" -#: js/GraphicsBlocks.js:660 +#: js/blocks/GraphicsBlocks.js:660 msgid "set heading" msgstr "seth" -#: js/GraphicsBlocks.js:673 +#: js/blocks/GraphicsBlocks.js:673 msgid "The Set heading block sets the heading of the turtle." msgstr "" -#: js/GraphicsBlocks.js:733 +#: js/blocks/GraphicsBlocks.js:733 msgid "The Set XY block moves the mouse to a specific position on the screen." msgstr "" -#: js/GraphicsBlocks.js:739 +#: js/blocks/GraphicsBlocks.js:739 msgid "The Set XY block moves the turtle to a specific position on the screen." msgstr "" -#: js/GraphicsBlocks.js:747 +#: js/blocks/GraphicsBlocks.js:747 msgid "set xy" msgstr "" -#: js/GraphicsBlocks.js:819 +#: js/blocks/GraphicsBlocks.js:819 msgid "The Right block turns the mouse to the right." msgstr "" -#: js/GraphicsBlocks.js:826 +#: js/blocks/GraphicsBlocks.js:826 msgid "The Right block turns the turtle to the right." msgstr "" -#: js/GraphicsBlocks.js:835 +#: js/blocks/GraphicsBlocks.js:835 msgid "right1" msgstr "" -#: js/GraphicsBlocks.js:835 +#: js/blocks/GraphicsBlocks.js:835 #: plugins/rodi.rtp:77 #: plugins/rodi.rtp:340 #: plugins/rodi.rtp:375 msgid "right" msgstr "" -#: js/GraphicsBlocks.js:899 +#: js/blocks/GraphicsBlocks.js:899 msgid "The Left block turns the mouse to the left." msgstr "" -#: js/GraphicsBlocks.js:906 +#: js/blocks/GraphicsBlocks.js:906 msgid "The Left block turns the turtle to the left." msgstr "" -#: js/GraphicsBlocks.js:915 +#: js/blocks/GraphicsBlocks.js:915 msgid "left1" msgstr "" -#: js/GraphicsBlocks.js:915 +#: js/blocks/GraphicsBlocks.js:915 #: plugins/rodi.rtp:79 #: plugins/rodi.rtp:339 #: plugins/rodi.rtp:362 msgid "left" msgstr "" -#: js/GraphicsBlocks.js:967 -#: js/temperament.js:734 -#: js/temperament.js:933 +#: js/blocks/GraphicsBlocks.js:967 +#: js/widgets/temperament.js:875 +#: js/widgets/temperament.js:1078 #: plugins/rodi.rtp:69 #: plugins/rodi.rtp:387 msgid "back" msgstr "" -#: js/GraphicsBlocks.js:976 +#: js/blocks/GraphicsBlocks.js:976 msgid "The Back block moves the mouse backward." msgstr "" -#: js/GraphicsBlocks.js:983 +#: js/blocks/GraphicsBlocks.js:983 msgid "The Back block moves the turtle backward." msgstr "" -#: js/GraphicsBlocks.js:1050 +#: js/blocks/GraphicsBlocks.js:1050 #: plugins/rodi.rtp:71 #: plugins/rodi.rtp:400 msgid "forward" msgstr "" -#: js/GraphicsBlocks.js:1059 +#: js/blocks/GraphicsBlocks.js:1059 msgid "The Forward block moves the mouse forward." msgstr "" -#: js/GraphicsBlocks.js:1066 +#: js/blocks/GraphicsBlocks.js:1066 msgid "The Forward block moves the turtle forward." msgstr "" -#: js/GraphicsBlocks.js:1154 -#: js/GraphicsBlocks.js:1172 +#: js/blocks/GraphicsBlocks.js:1154 +#: js/blocks/GraphicsBlocks.js:1172 msgid "wrap" msgstr "" -#: js/OrnamentBlocks.js:32 -msgid "staccato factor" -msgstr "" - -#: js/OrnamentBlocks.js:108 -msgid "slur factor" -msgstr "" - -#: js/OrnamentBlocks.js:217 -#: js/OrnamentBlocks.js:309 -#.TRANS: the neighbor refers to a neighboring note, e.g., D is a neighbor of C -msgid "neighbor" -msgstr "" - -#: js/OrnamentBlocks.js:293 -msgid "The Neighbor block rapidly switches between neighboring pitches." -msgstr "" - -#: js/OrnamentBlocks.js:364 -msgid "glide" -msgstr "" - -#: js/OrnamentBlocks.js:479 -#: js/OrnamentBlocks.js:643 -msgid "slur" -msgstr "" - -#: js/OrnamentBlocks.js:558 -#: js/OrnamentBlocks.js:710 -#.TRANS: play each note sharply detached from the others -msgid "staccato" -msgstr "" - -#: js/PenBlocks.js:24 +#: js/blocks/PenBlocks.js:30 msgid "purple" msgstr "" -#: js/PenBlocks.js:37 -#: js/SensorsBlocks.js:521 -#: plugins/rodi.rtp:219 -msgid "blue" -msgstr "" - -#: js/PenBlocks.js:50 -#: js/SensorsBlocks.js:577 -#: plugins/rodi.rtp:218 -msgid "green" -msgstr "" - -#: js/PenBlocks.js:63 +#: js/blocks/PenBlocks.js:80 msgid "yellow" msgstr "" -#: js/PenBlocks.js:76 +#: js/blocks/PenBlocks.js:96 #: plugins/nutrition.rtp:164 msgid "orange" msgstr "" -#: js/PenBlocks.js:89 -#: js/SensorsBlocks.js:633 -#: plugins/rodi.rtp:217 -msgid "red" -msgstr "" - -#: js/PenBlocks.js:102 +#: js/blocks/PenBlocks.js:128 msgid "white" msgstr "" -#: js/PenBlocks.js:115 +#: js/blocks/PenBlocks.js:144 msgid "black" msgstr "" -#: js/PenBlocks.js:128 +#: js/blocks/PenBlocks.js:163 msgid "begin fill" msgstr "" -#: js/PenBlocks.js:143 +#: js/blocks/PenBlocks.js:190 msgid "end fill" msgstr "" -#: js/PenBlocks.js:159 -#: js/PenBlocks.js:386 +#: js/blocks/PenBlocks.js:212 +#: js/blocks/PenBlocks.js:560 #.TRANS: set the background color msgid "background" msgstr "" -#: js/PenBlocks.js:206 -#: js/DictActions.js:71 -#: js/DictActions.js:149 -#: js/DictActions.js:186 +#: js/blocks/PenBlocks.js:274 +#: js/turtleactions/DictActions.js:71 +#: js/turtleactions/DictActions.js:138 +#: js/turtleactions/DictActions.js:170 msgid "grey" msgstr "" -#: js/PenBlocks.js:210 +#: js/blocks/PenBlocks.js:282 msgid "The Grey block returns the current pen grey value." msgstr "" -#: js/PenBlocks.js:243 -#: js/DictActions.js:69 -#: js/DictActions.js:147 -#: js/DictActions.js:185 +#: js/blocks/PenBlocks.js:340 +#: js/turtleactions/DictActions.js:69 +#: js/turtleactions/DictActions.js:136 +#: js/turtleactions/DictActions.js:169 msgid "shade" msgstr "" -#: js/PenBlocks.js:247 +#: js/blocks/PenBlocks.js:347 msgid "The Shade block returns the current pen shade value." msgstr "" -#: js/PenBlocks.js:280 -#: js/DictActions.js:67 -#: js/DictActions.js:145 -#: js/DictActions.js:184 +#: js/blocks/PenBlocks.js:405 +#: js/turtleactions/DictActions.js:67 +#: js/turtleactions/DictActions.js:134 +#: js/turtleactions/DictActions.js:168 msgid "color" msgstr "" -#: js/PenBlocks.js:285 +#: js/blocks/PenBlocks.js:415 msgid "The Color block returns the current pen color." msgstr "" -#: js/PenBlocks.js:318 -#: js/DictActions.js:73 -#: js/DictActions.js:151 -#: js/DictActions.js:187 +#: js/blocks/PenBlocks.js:470 +#: js/turtleactions/DictActions.js:73 +#: js/turtleactions/DictActions.js:140 +#: js/turtleactions/DictActions.js:171 msgid "pen size" msgstr "" -#: js/PenBlocks.js:322 +#: js/blocks/PenBlocks.js:474 msgid "The Pen size block returns the current pen size value." msgstr "" -#: js/PenBlocks.js:355 +#: js/blocks/PenBlocks.js:513 msgid "set font" msgstr "" -#: js/PenBlocks.js:358 +#: js/blocks/PenBlocks.js:518 msgid "The Set font block sets the font used by the Show block." msgstr "" -#: js/PenBlocks.js:391 +#: js/blocks/PenBlocks.js:567 msgid "The Background block sets the window background color." msgstr "" -#: js/PenBlocks.js:408 +#: js/blocks/PenBlocks.js:598 msgid "The Hollow line block creates a line with a hollow center." msgstr "" -#: js/PenBlocks.js:415 +#: js/blocks/PenBlocks.js:606 #.TRANS: draw a line logo has a hollow space down its center msgid "hollow line" msgstr "" -#: js/PenBlocks.js:462 +#: js/blocks/PenBlocks.js:675 msgid "The Fill block fills in a shape with a color." msgstr "" -#: js/PenBlocks.js:470 +#: js/blocks/PenBlocks.js:684 #.TRANS: fill in as a solid color msgid "fill" msgstr "" -#: js/PenBlocks.js:527 +#: js/blocks/PenBlocks.js:761 #.TRANS: raise up the pen so logo it does not draw when it is moved msgid "pen up" msgstr "" -#: js/PenBlocks.js:532 +#: js/blocks/PenBlocks.js:768 msgid "The Pen-up block raises the pen so that it does not draw." msgstr "" -#: js/PenBlocks.js:552 +#: js/blocks/PenBlocks.js:802 #.TRANS: put down the pen so logo it draws when it is moved msgid "pen down" msgstr "" -#: js/PenBlocks.js:557 +#: js/blocks/PenBlocks.js:810 msgid "The Pen-down block lowers the pen so that it draws." msgstr "" -#: js/PenBlocks.js:577 +#: js/blocks/PenBlocks.js:844 #.TRANS: set the width of the line drawn by the pen msgid "set pen size" msgstr "" -#: js/PenBlocks.js:583 +#: js/blocks/PenBlocks.js:854 msgid "The Set-pen-size block changes the size of the pen." msgstr "" -#: js/PenBlocks.js:623 +#: js/blocks/PenBlocks.js:913 #.TRANS: set degree of translucence of the pen color msgid "set translucency" msgstr "" -#: js/PenBlocks.js:627 +#: js/blocks/PenBlocks.js:921 msgid "The Set translucency block changes the opacity of the pen." msgstr "" -#: js/PenBlocks.js:668 +#: js/blocks/PenBlocks.js:981 msgid "set hue" msgstr "" -#: js/PenBlocks.js:672 +#: js/blocks/PenBlocks.js:989 msgid "The Set hue block changes the color of the pen." msgstr "" -#: js/PenBlocks.js:711 +#: js/blocks/PenBlocks.js:1047 msgid "set shade" msgstr "" -#: js/PenBlocks.js:717 +#: js/blocks/PenBlocks.js:1057 msgid "The Set-shade block changes the pen color from dark to light." msgstr "" -#: js/PenBlocks.js:757 +#: js/blocks/PenBlocks.js:1111 #.TRANS: set the level of vividness of the pen color msgid "set grey" msgstr "" -#: js/PenBlocks.js:761 +#: js/blocks/PenBlocks.js:1119 msgid "The Set grey block changes the vividness of the pen color." msgstr "" -#: js/PenBlocks.js:800 +#: js/blocks/PenBlocks.js:1172 msgid "set color" msgstr "" -#: js/PenBlocks.js:806 +#: js/blocks/PenBlocks.js:1182 msgid "The Set-color block changes the pen color." msgstr "" -#: js/VolumeBlocks.js:35 -msgid "synth volume" -msgstr "" - -#: js/VolumeBlocks.js:39 -msgid "The Synth volume block returns the current volume of the current synthesizer." -msgstr "" - -#: js/VolumeBlocks.js:47 -#: js/musicutils.js:730 -#: js/synthutils.js:56 -#.TRANS: musical instrument -msgid "piano" -msgstr "" - -#: js/VolumeBlocks.js:105 -msgid "master volume" -msgstr "" - -#: js/VolumeBlocks.js:109 -msgid "The Master volume block returns the master volume." -msgstr "" - -#: js/VolumeBlocks.js:355 -#: js/VolumeBlocks.js:524 -msgid "set synth volume" -msgstr "" - -#: js/VolumeBlocks.js:362 -#: js/VolumeBlocks.js:545 -msgid "synth" -msgstr "" - -#: js/VolumeBlocks.js:403 -#: js/VolumeBlocks.js:577 -#: js/VolumeBlocks.js:740 -#: js/VolumeActions.js:173 -msgid "Setting volume to 0." -msgstr "" - -#: js/VolumeBlocks.js:440 -msgid "Synth not found" -msgstr "" - -#: js/VolumeBlocks.js:494 -msgid "set drum volume" -msgstr "" - -#: js/VolumeBlocks.js:530 -msgid "The Set synth volume block will change the volume of a particular synth," -msgstr "" - -#: js/VolumeBlocks.js:532 -msgid "eg guitar violin snare drum etc." -msgstr "" - -#: js/VolumeBlocks.js:534 -msgid "The default volume is 50." -msgstr "" - -#: js/VolumeBlocks.js:536 -msgid "The range is 0 for silence to 100 for full volume." -msgstr "" - -#: js/VolumeBlocks.js:597 -msgid "set panning" -msgstr "" - -#: js/VolumeBlocks.js:603 -msgid "The Set Panning block sets the panning for all synthesizers." -msgstr "" - -#: js/VolumeBlocks.js:625 -msgid "Warning: Sound is coming out from only the left or right side." -msgstr "" - -#: js/VolumeBlocks.js:647 -#: js/VolumeBlocks.js:695 -msgid "set master volume" -msgstr "" - -#: js/VolumeBlocks.js:653 -msgid "The Set master volume block sets the volume for all synthesizers." -msgstr "" - -#: js/VolumeBlocks.js:784 -msgid "The Set relative volume block changes the volume of the contained notes." -msgstr "" - -#: js/VolumeBlocks.js:791 -msgid "set relative volume" -msgstr "" - -#: js/VolumeBlocks.js:857 -msgid "decrescendo" -msgstr "" - -#: js/VolumeBlocks.js:921 -msgid "crescendo" -msgstr "" - -#: js/ToneBlocks.js:34 -msgid "oscillator" -msgstr "" - -#: js/ToneBlocks.js:44 -#: js/timbre.js:1562 -#.TRANS: Partials refers to the number of sine waves combined into the sound. -msgid "partials" -msgstr "" - -#: js/ToneBlocks.js:76 -msgid "You are adding multiple oscillator blocks." -msgstr "" - -#: js/ToneBlocks.js:144 -#: js/timbre.js:1225 -#.TRANS: a duo synthesizer combines a synth with a sequencer -msgid "duo synth" -msgstr "" - -#: js/ToneBlocks.js:149 -msgid "The Duo synth block is a duo-frequency modulator used to define a timbre." -msgstr "" - -#: js/ToneBlocks.js:157 -#: js/timbre.js:1476 -msgid "vibrato rate" -msgstr "" - -#: js/ToneBlocks.js:157 -msgid "vibrato intensity" -msgstr "" - -#: js/ToneBlocks.js:185 -#: js/timbre.js:1221 -#.TRANS: AM (amplitude modulation) synthesizer -msgid "AM synth" -msgstr "" - -#: js/ToneBlocks.js:189 -msgid "The AM synth block is an amplitude modulator used to define a timbre." -msgstr "" - -#: js/ToneBlocks.js:224 -#: js/timbre.js:1223 -#.TRANS: FM (frequency modulation) synthesizer -msgid "FM synth" -msgstr "" - -#: js/ToneBlocks.js:228 -msgid "The FM synth block is a frequency modulator used to define a timbre." +#: js/blocks/PitchBlocks.js:141 +#.TRANS: musical transposition (adjustment of pitch up or down) +msgid "transposition" msgstr "" -#: js/ToneBlocks.js:262 -msgid "partial" +#: js/blocks/PitchBlocks.js:168 +#.TRANS: step down one note in current musical scale +msgid "scalar step down" msgstr "" -#: js/ToneBlocks.js:265 -msgid "The Partial block is used to specify a weight for a specific partial harmonic." +#: js/blocks/PitchBlocks.js:172 +msgid "The Scalar step down block returns the number of semi-tones down to the previous note in the current key and mode." msgstr "" -#: js/ToneBlocks.js:284 -#.TRANS: partials are weighted components in a harmonic series -msgid "Partial weight must be between 0 and 1." +#: js/blocks/PitchBlocks.js:190 +#.TRANS: step up one note in current musical scale +msgid "scalar step up" msgstr "" -#: js/ToneBlocks.js:297 -#.TRANS: partials are weighted components in a harmonic series -msgid "Partial block should be used inside of a Weighted-partials block." +#: js/blocks/PitchBlocks.js:194 +msgid "The Scalar step up block returns the number of semi-tones up to the next note in the current key and mode." msgstr "" -#: js/ToneBlocks.js:325 -#.TRANS: partials are weighted components in a harmonic series -msgid "weighted partials" +#: js/blocks/PitchBlocks.js:212 +#.TRANS: the change measured in half-steps between the current pitch and the previous pitch +msgid "change in pitch" msgstr "" -#: js/ToneBlocks.js:383 -msgid "The Harmonic block will add harmonics to the contained notes." +#: js/blocks/PitchBlocks.js:216 +msgid "The Change in pitch block is the difference (in half steps) between the current pitch being played and the previous pitch played." msgstr "" -#: js/ToneBlocks.js:390 -#.TRANS: A harmonic is an overtone. -msgid "harmonic" +#: js/blocks/PitchBlocks.js:243 +#.TRANS: the change measured in scale-steps between the current pitch and the previous pitch +msgid "scalar change in pitch" msgstr "" -#: js/ToneBlocks.js:431 -msgid "The Distortion block adds distortion to the pitch." +#: js/blocks/PitchBlocks.js:250 +#: js/blocks/PitchBlocks.js:432 +#: js/blocks/PitchBlocks.js:1667 +#: js/turtleactions/DictActions.js:89 +#: js/widgets/temperament.js:610 +#: js/widgets/temperament.js:614 +#: js/widgets/temperament.js:855 +#.TRANS: convert current note to piano key (1-88) +#.TRANS: a mapping of pitch to the 88 piano keys +msgid "pitch number" msgstr "" -#: js/ToneBlocks.js:438 -#: js/timbre.js:2100 -#.TRANS: distortion is an alteration in the sound -msgid "distortion" +#: js/blocks/PitchBlocks.js:256 +msgid "The Pitch number block is the value of the pitch of the note currently being played." msgstr "" -#: js/ToneBlocks.js:487 -msgid "The Tremolo block adds a wavering effect." +#: js/blocks/PitchBlocks.js:329 +#: js/blocks/PitchBlocks.js:433 +#.TRANS: the current pitch expressed in Hertz +msgid "pitch in hertz" msgstr "" -#: js/ToneBlocks.js:495 -#: js/timbre.js:2092 -#.TRANS: a wavering effect in a musical tone -msgid "tremolo" +#: js/blocks/PitchBlocks.js:334 +msgid "The Pitch in Hertz block is the value in Hertz of the pitch of the note currently being played." msgstr "" -#: js/ToneBlocks.js:500 -#: js/ToneBlocks.js:569 -#: js/ToneBlocks.js:630 -#: js/ToneBlocks.js:689 -#: js/timbre.js:2134 -#: js/timbre.js:2222 -#: js/timbre.js:2317 -#: js/timbre.js:2419 -#.TRANS: rate at which tremolo wavers -msgid "rate" +#: js/blocks/PitchBlocks.js:367 +#: js/turtleactions/DictActions.js:87 +msgid "current pitch" msgstr "" -#: js/ToneBlocks.js:502 -#: js/ToneBlocks.js:630 -#: js/timbre.js:2137 -#: js/timbre.js:2328 -#.TRANS: amplitude of tremolo waver -msgid "depth" +#: js/blocks/PitchBlocks.js:373 +msgid "The Current Pitch block is used with the Pitch Converter block. In the example above, current pitch, sol 4, is displayed as 392 hertz." msgstr "" -#: js/ToneBlocks.js:559 -msgid "The Phaser block adds a sweeping sound." +#: js/blocks/PitchBlocks.js:410 +msgid "This block converts the pitch value of the last note played into different formats such as hertz, letter name, pitch number, et al." msgstr "" -#: js/ToneBlocks.js:566 -#: js/timbre.js:2098 -#.TRANS: alter the phase of the sound -msgid "phaser" +#: js/blocks/PitchBlocks.js:434 +msgid "alphabet" msgstr "" -#: js/ToneBlocks.js:569 -#: js/timbre.js:2422 -msgid "octaves" +#: js/blocks/PitchBlocks.js:436 +#.TRANS: Translate as "alphabet class" +msgid "letter class" msgstr "" -#: js/ToneBlocks.js:569 -#: js/timbre.js:2425 -msgid "base frequency" +#: js/blocks/PitchBlocks.js:437 +msgid "solfege class" msgstr "" -#: js/ToneBlocks.js:619 -msgid "The Chorus block adds a chorus effect." +#: js/blocks/PitchBlocks.js:438 +msgid "staff y" msgstr "" -#: js/ToneBlocks.js:627 -#: js/timbre.js:2096 -#.TRANS: musical effect to simulate a choral sound -msgid "chorus" +#: js/blocks/PitchBlocks.js:439 +msgid "solfege syllable" msgstr "" -#: js/ToneBlocks.js:630 -msgid "delay" +#: js/blocks/PitchBlocks.js:440 +msgid "pitch class" msgstr "" -#: js/ToneBlocks.js:678 -msgid "The Vibrato block adds a rapid, slight variation in pitch." +#: js/blocks/PitchBlocks.js:441 +msgid "scalar class" msgstr "" -#: js/ToneBlocks.js:686 -#: js/timbre.js:2094 -#.TRANS: a rapid, slight variation in pitch -msgid "vibrato" +#: js/blocks/PitchBlocks.js:443 +msgid "nth degree" msgstr "" -#: js/ToneBlocks.js:689 -#: js/timbre.js:2221 -msgid "intensity" +#: js/blocks/PitchBlocks.js:444 +msgid "pitch to shade" msgstr "" -#: js/ToneBlocks.js:733 -#.TRANS: select synthesizer -msgid "set synth" +#: js/blocks/PitchBlocks.js:445 +msgid "pitch to color" msgstr "" -#: js/ToneBlocks.js:804 -msgid "synth name" +#: js/blocks/PitchBlocks.js:629 +#: js/widgets/musickeyboard.js:735 +#.TRANS: MIDI is a technical standard for electronic music +msgid "MIDI" msgstr "" -#: js/ToneBlocks.js:842 -msgid "set default instrument" +#: js/blocks/PitchBlocks.js:642 +#.TRANS: set an offset associated with the numeric piano keyboard mapping +msgid "set pitch number offset" msgstr "" -#: js/ToneBlocks.js:895 -#: js/ToneBlocks.js:943 -#.TRANS: set the characteristics of a custom instrument -msgid "set instrument" +#: js/blocks/PitchBlocks.js:645 +msgid "The Set pitch number offset block is used to set the offset for mapping pitch numbers to pitch and octave." msgstr "" -#: js/ToneBlocks.js:898 -#: js/ToneBlocks.js:926 -#: js/ToneBlocks.js:932 -msgid "The Set instrument block selects a voice for the synthesizer," +#: js/blocks/PitchBlocks.js:679 +#.TRANS: convert piano key number (1-88) to pitch +msgid "number to pitch" msgstr "" -#: js/ToneBlocks.js:900 -#: js/ToneBlocks.js:934 -msgid "eg guitar piano violin or cello." +#: js/blocks/PitchBlocks.js:682 +msgid "The Number to pitch block will convert a pitch number to a pich name." msgstr "" -#: js/ToneBlocks.js:1015 -msgid "Import a sound file to use as an instrument and set its pitch center." +#: js/blocks/PitchBlocks.js:715 +#.TRANS: convert piano key number (1-88) to octave +msgid "number to octave" msgstr "" -#: js/ToneBlocks.js:1110 -msgid "Upload a sound file to connect with the sample block." +#: js/blocks/PitchBlocks.js:717 +msgid "The Number to octave block will convert a pitch number to an octave." msgstr "" -#: js/MeterBlocks.js:34 -#.TRANS: musical meter (time signature), e.g., 4:4 -msgid "current meter" +#: js/blocks/PitchBlocks.js:726 +msgid "y to pitch" msgstr "" -#: js/MeterBlocks.js:85 -#.TRANS: number of beats per minute -msgid "beat factor" +#: js/blocks/PitchBlocks.js:729 +msgid "Y to pitch block will convert a staff y position to corresponding pitch notation." msgstr "" -#: js/MeterBlocks.js:161 -msgid "The Beats per minute block returns the current beats per minute." +#: js/blocks/PitchBlocks.js:841 +msgid "accidental selector" msgstr "" -#: js/MeterBlocks.js:169 -#: js/status.js:152 -#.TRANS: number of beats played per minute -msgid "beats per minute2" +#: js/blocks/PitchBlocks.js:844 +msgid "The Accidental selector block is used to choose between double-sharp, sharp, natural, flat, and double-flat." msgstr "" -#: js/MeterBlocks.js:169 -#: js/MeterBlocks.js:1056 -#: js/MeterBlocks.js:1133 -#: js/MeterBlocks.js:1211 -#.TRANS: sets tempo by defining a beat and beats per minute -msgid "beats per minute" +#: js/blocks/PitchBlocks.js:858 +msgid "Pitch can be specified in terms of ni dha pa ma ga re sa." msgstr "" -#: js/MeterBlocks.js:233 -#.TRANS: count of current musical measure in meter -msgid "measure count" +#: js/blocks/PitchBlocks.js:872 +msgid "Pitch can be specified in terms of C D E F G A B." msgstr "" -#: js/MeterBlocks.js:241 -msgid "The Measure count block returns the current measure." +#: js/blocks/PitchBlocks.js:884 +msgid "solfege" msgstr "" -#: js/MeterBlocks.js:290 -#.TRANS: count of current beat in the meter -msgid "beat count" +#: js/blocks/PitchBlocks.js:887 +msgid "Pitch can be specified in terms of do re mi fa sol la ti." msgstr "" -#: js/MeterBlocks.js:300 -#: js/MeterBlocks.js:311 -#: js/MeterBlocks.js:565 -#: js/MeterBlocks.js:576 -msgid "The Beat count block is the number of the current beat," +#: js/blocks/PitchBlocks.js:922 +msgid "The Invert block rotates any contained notes around a target note." msgstr "" -#: js/MeterBlocks.js:313 -#: js/MeterBlocks.js:578 -msgid "eg 1, 2, 3, or 4." +#: js/blocks/PitchBlocks.js:929 +#.TRANS: pitch inversion rotates a pitch around another pitch +msgid "invert" msgstr "" -#: js/MeterBlocks.js:368 -#.TRANS: count the number of notes -msgid "sum note values" +#: js/blocks/PitchBlocks.js:968 +#.TRANS: pitch inversion rotates a pitch around another pitch (odd number) +msgid "invert (odd)" msgstr "" -#: js/MeterBlocks.js:376 -#: js/MeterBlocks.js:440 -msgid "The Note counter block can be used to count the number of contained notes." +#: js/blocks/PitchBlocks.js:1001 +#.TRANS: pitch inversion rotates a pitch around another pitch (even number) +msgid "invert (even)" msgstr "" -#: js/MeterBlocks.js:432 -#.TRANS: count the number of notes -msgid "note counter" +#: js/blocks/PitchBlocks.js:1022 +#.TRANS: register is the octave of the current pitch +msgid "register" msgstr "" -#: js/MeterBlocks.js:496 -#.TRANS: number of whole notes that have been played -msgid "whole notes played" +#: js/blocks/PitchBlocks.js:1026 +msgid "The Register block provides an easy way to modify the register (octave) of the notes that follow it." msgstr "" -#: js/MeterBlocks.js:505 -msgid "The Whole notes played block returns the total number of whole notes played." +#: js/blocks/PitchBlocks.js:1047 +#.TRANS: cents are units used to specify the ratio between pitches. There are 100 cents between successive notes. +msgid "50 cents" msgstr "" -#: js/MeterBlocks.js:555 -#: js/DictActions.js:83 -#.TRANS: number of notes that have been played -msgid "notes played" +#: js/blocks/PitchBlocks.js:1102 +msgid "The Semi-tone transposition block will shift the pitches contained inside Note blocks up (or down) by half steps." msgstr "" -#: js/MeterBlocks.js:653 -msgid "The No clock block decouples the notes from the master clock." +#: js/blocks/PitchBlocks.js:1104 +msgid "In the example shown above, sol is shifted up to sol#." msgstr "" -#: js/MeterBlocks.js:661 -#.TRANS: don't lock notes to master clock -msgid "no clock" +#: js/blocks/PitchBlocks.js:1110 +#.TRANS: adjust the amount of shift (up or down) of a pitch +msgid "semi-tone transpose" msgstr "" -#: js/MeterBlocks.js:700 -msgid "on weak beat do" +#: js/blocks/PitchBlocks.js:1143 +msgid "The Transpose by Ratio block will shift the pitches contained inside Note blocks up (or down) by a ratio" msgstr "" -#: js/MeterBlocks.js:705 -msgid "The On-weak-beat block lets you specify actions to take on weak (off) beats." +#: js/blocks/PitchBlocks.js:1149 +#.TRANS: adjust the amount of shift (up or down) of a pitch +msgid "transpose by ratio" msgstr "" -#: js/MeterBlocks.js:750 -msgid "on strong beat" +#: js/blocks/PitchBlocks.js:1232 +#.TRANS: down sixth means the note is five scale degrees below current note +msgid "down sixth" msgstr "" -#: js/MeterBlocks.js:758 -msgid "The On-strong-beat block lets you specify actions to take on specified beats." +#: js/blocks/PitchBlocks.js:1251 +#.TRANS: down third means the note is two scale degrees below current note +msgid "down third" msgstr "" -#: js/MeterBlocks.js:769 -msgid "beat" +#: js/blocks/PitchBlocks.js:1270 +#.TRANS: seventh means the note is the six scale degrees above current note +msgid "seventh" msgstr "" -#: js/MeterBlocks.js:813 -msgid "on every beat do" +#: js/blocks/PitchBlocks.js:1289 +#.TRANS: sixth means the note is the five scale degrees above current note +msgid "sixth" msgstr "" -#: js/MeterBlocks.js:821 -msgid "The On-every-beat block lets you specify actions to take on every beat." +#: js/blocks/PitchBlocks.js:1308 +#.TRANS: fifth means the note is the four scale degrees above current note +msgid "fifth" msgstr "" -#: js/MeterBlocks.js:874 -msgid "on every note do" +#: js/blocks/PitchBlocks.js:1328 +#.TRANS: fourth means the note is three scale degrees above current note +msgid "fourth" msgstr "" -#: js/MeterBlocks.js:882 -msgid "The On-every-note block lets you specify actions to take on every note." +#: js/blocks/PitchBlocks.js:1347 +#.TRANS: third means the note is two scale degrees above current note +msgid "third" msgstr "" -#: js/MeterBlocks.js:928 -#: js/MeterBlocks.js:999 -#.TRANS: sets tempo by defining a beat and beats per minute -msgid "master beats per minute" +#: js/blocks/PitchBlocks.js:1366 +#.TRANS: second means the note is one scale degree above current note +msgid "second" msgstr "" -#: js/MeterBlocks.js:952 -#: js/MeterBlocks.js:1078 -#: js/MeterBlocks.js:1135 -msgid "bpm" +#: js/blocks/PitchBlocks.js:1407 +msgid "The Scalar transposition block will shift the pitches contained inside Note blocks up (or down) the scale." msgstr "" -#: js/MeterBlocks.js:952 -#: js/MeterBlocks.js:1078 -#: js/MeterBlocks.js:1135 -msgid "beat value" +#: js/blocks/PitchBlocks.js:1409 +msgid "In the example shown above, sol is shifted up to la." msgstr "" -#: js/MeterBlocks.js:1024 -#: js/MeterBlocks.js:1167 -#: js/MeterBlocks.js:1241 -msgid "Beats per minute must be > 30." +#: js/blocks/PitchBlocks.js:1416 +#.TRANS: adjust the amount of shift (up or down) of a pitch by musical scale (scalar) steps +msgid "scalar transpose" msgstr "" -#: js/MeterBlocks.js:1027 -#: js/MeterBlocks.js:1170 -#: js/MeterBlocks.js:1244 -msgid "Maximum beats per minute is 1000." +#: js/blocks/PitchBlocks.js:1451 +msgid "The Accidental block is used to create sharps and flats" msgstr "" -#: js/MeterBlocks.js:1068 -msgid "The Beats per minute block sets the number of 1/4 notes per minute." +#: js/blocks/PitchBlocks.js:1458 +#.TRANS: An accidental is a modification to a pitch, e.g., sharp or flat. +msgid "accidental override" msgstr "" -#: js/MeterBlocks.js:1279 -#.TRANS: anacrusis -msgid "pickup" +#: js/blocks/PitchBlocks.js:1581 +msgid "The Hertz block (in combination with a Number block) will play a sound at the specified frequency." msgstr "" -#: js/MeterBlocks.js:1367 -msgid "number of beats" +#: js/blocks/PitchBlocks.js:1671 +msgid "The Pitch Number block will play a pitch associated by its number, e.g. 0 for C and 7 for G." msgstr "" -#: js/DictBlocks.js:77 -msgid "show dictionary" +#: js/blocks/PitchBlocks.js:1703 +#: js/blocks/PitchBlocks.js:1745 +#.TRANS: a numeric mapping of the notes in an octave based on the musical mode +#.TRANS: a numeric mapping of the notes in an octave based on the musical mode +msgid "nth modal pitch" msgstr "" -#: js/DictBlocks.js:129 -msgid "The Dictionary block returns a dictionary." +#: js/blocks/PitchBlocks.js:1706 +msgid "n^th Modal Pitch takes the pattern of pitches in semitones for a mode and makes each point a degree of the mode," msgstr "" -#: js/DictBlocks.js:197 -#: js/DictBlocks.js:339 -msgid "The Get-dict block returns a value in the dictionary for a specified key." +#: js/blocks/PitchBlocks.js:1708 +msgid "starting from 1 and regardless of tonal framework (i.e. not always 8 notes in the octave)" msgstr "" -#: js/DictBlocks.js:212 -#: js/DictBlocks.js:354 -#.TRANS: retrieve a value from the dictionary with a given key -msgid "get value" +#: js/blocks/PitchBlocks.js:1749 +msgid "N^th Modal Pitch takes a number as an input as the n^th degree for the given mode. 0 is the first position, 1 is the second, -1 is the note before the first etc." msgstr "" -#: js/DictBlocks.js:215 -#: js/DictBlocks.js:216 -#: js/DictBlocks.js:289 -#: js/DictBlocks.js:290 -#: js/DictBlocks.js:357 -#: js/DictBlocks.js:430 -#: js/DictBlocks.js:431 -msgid "key2" +#: js/blocks/PitchBlocks.js:1751 +msgid "The pitches change according to the mode specified without any need for respellings." msgstr "" -#: js/DictBlocks.js:271 -#: js/DictBlocks.js:411 -msgid "The Set-dict block sets a value in the dictionary for a specified key." +#: js/blocks/PitchBlocks.js:1790 +msgid "Scale Degree is a common convention in music. Scale Degree offers seven possible positions in the scale (1-7) and can be modified via accidentals." msgstr "" -#: js/DictBlocks.js:286 -#: js/DictBlocks.js:427 -#.TRANS: set a value in the dictionary for a given key -msgid "set value" +#: js/blocks/PitchBlocks.js:1792 +msgid "Scale Degree 1 is always the first pitch in a given scale, regardless of octave." msgstr "" -#: js/ExtrasBlocks.js:33 -msgid "fraction" +#: js/blocks/PitchBlocks.js:1814 +#.TRANS: step some number of notes in current musical scale +msgid "scalar step" msgstr "" -#: js/ExtrasBlocks.js:36 -msgid "Convert a float to a fraction" +#: js/blocks/PitchBlocks.js:1819 +msgid "The Scalar Step block (in combination with a Number block) will play the next pitch in a scale," msgstr "" -#: js/ExtrasBlocks.js:93 -msgid "save as ABC" +#: js/blocks/PitchBlocks.js:1821 +msgid "eg if the last note played was sol, Scalar Step 1 will play la." msgstr "" -#: js/ExtrasBlocks.js:96 -#: js/ExtrasBlocks.js:132 -#: js/ExtrasBlocks.js:168 -msgid "title" +#: js/blocks/PitchBlocks.js:1857 +msgid "The Pitch block specifies the pitch name and octave of a note that together determine the frequency of the note." msgstr "" -#: js/ExtrasBlocks.js:129 -msgid "save as Lilypond" +#: js/blocks/ProgramBlocks.js:33 +msgid "The Load-heap-from-app block loads the heap from a web page." msgstr "" -#: js/ExtrasBlocks.js:165 -msgid "save as SVG" +#: js/blocks/ProgramBlocks.js:44 +#.TRANS: load the heap contents from a URL +msgid "load heap from App" msgstr "" -#: js/ExtrasBlocks.js:216 -msgid "no background" +#: js/blocks/ProgramBlocks.js:95 +msgid "Error parsing JSON data:" msgstr "" -#: js/ExtrasBlocks.js:219 -msgid "The No background block eliminates the background from the saved SVG output." +#: js/blocks/ProgramBlocks.js:100 +msgid "404: Page not found" msgstr "" -#: js/ExtrasBlocks.js:247 -msgid "show blocks" +#: js/blocks/ProgramBlocks.js:133 +msgid "The Save-heap-to-app block saves the heap to a web page." msgstr "" -#: js/ExtrasBlocks.js:249 -msgid "The Show blocks block shows the blocks." +#: js/blocks/ProgramBlocks.js:144 +#.TRANS: save the heap contents to a URL +msgid "save heap to App" msgstr "" -#: js/ExtrasBlocks.js:274 -msgid "hide blocks" +#: js/blocks/ProgramBlocks.js:189 +msgid "Cannot find a valid heap for" msgstr "" -#: js/ExtrasBlocks.js:276 -msgid "The Hide blocks block hides the blocks." +#: js/blocks/ProgramBlocks.js:206 +msgid "The Load-heap block loads the heap from a file." msgstr "" -#: js/ExtrasBlocks.js:305 -#: js/ExtrasBlocks.js:335 -msgid "The Space block is used to add space between blocks." +#: js/blocks/ProgramBlocks.js:217 +#.TRANS: load the heap from a file +msgid "load heap" msgstr "" -#: js/ExtrasBlocks.js:373 -msgid "wait" +#: js/blocks/ProgramBlocks.js:270 +msgid "The file you selected does not contain a valid heap." msgstr "" -#: js/ExtrasBlocks.js:376 -msgid "The Wait block pauses the program for a specified number of seconds." +#: js/blocks/ProgramBlocks.js:275 +msgid "The loadHeap block needs a loadFile block." msgstr "" -#: js/ExtrasBlocks.js:430 -#: plugins/facebook.rtp:30 -msgid "comment" +#: js/blocks/ProgramBlocks.js:291 +msgid "The Set-heap block loads the heap." msgstr "" -#: js/ExtrasBlocks.js:466 -msgid "print" +#: js/blocks/ProgramBlocks.js:340 +msgid "The block you selected does not contain a valid heap." msgstr "" -#: js/ExtrasBlocks.js:473 -msgid "The Print block displays text at the top of the screen." +#: js/blocks/ProgramBlocks.js:343 +msgid "The Set heap block needs a heap." msgstr "" -#: js/ExtrasBlocks.js:579 -msgid "display grid" +#: js/blocks/ProgramBlocks.js:360 +msgid "The Load-dictionary block loads a dictionary from a file." msgstr "" -#: js/ExtrasBlocks.js:584 -msgid "The Display Grid Block changes the grid type" +#: js/blocks/ProgramBlocks.js:372 +#.TRANS: load a dictionary from a file +msgid "load dictionary" msgstr "" -#: js/ExtrasBlocks.js:686 -#: js/ExtrasBlocks.js:705 -#: js/ExtrasBlocks.js:728 -#: js/ExtrasBlocks.js:751 -#: js/ExtrasBlocks.js:769 -#: js/ExtrasBlocks.js:788 -#: js/ExtrasBlocks.js:807 -#: js/ExtrasBlocks.js:826 -msgid "unknown" +#: js/blocks/ProgramBlocks.js:390 +#: js/blocks/ProgramBlocks.js:658 +#: js/blocks/ToneBlocks.js:1025 +msgid "file" msgstr "" -#: js/SensorsBlocks.js:36 -msgid "The Input block prompts for keyboard input." +#: js/blocks/ProgramBlocks.js:444 +msgid "The file you selected does not contain a valid dictionary." msgstr "" -#: js/SensorsBlocks.js:46 -msgid "input" +#: js/blocks/ProgramBlocks.js:449 +msgid "The load dictionary block needs a load file block." msgstr "" -#: js/SensorsBlocks.js:64 -msgid "Input a value" +#: js/blocks/ProgramBlocks.js:466 +msgid "The Set-dictionary block loads a dictionary." msgstr "" -#: js/SensorsBlocks.js:126 -msgid "input value" +#: js/blocks/ProgramBlocks.js:477 +#.TRANS: load a dictionary from a JSON +msgid "set dictionary" msgstr "" -#: js/SensorsBlocks.js:131 -msgid "The Input-value block stores the input." +#: js/blocks/ProgramBlocks.js:546 +msgid "The block you selected does not contain a valid dictionary." msgstr "" -#: js/SensorsBlocks.js:238 -msgid "loudness" +#: js/blocks/ProgramBlocks.js:550 +msgid "The set dictionary block needs a dictionary." msgstr "" -#: js/SensorsBlocks.js:245 -msgid "The Loudness block returns the volume detected by the microphone." +#: js/blocks/ProgramBlocks.js:567 +msgid "The Save-heap block saves the heap to a file." msgstr "" -#: js/SensorsBlocks.js:300 -msgid "click" +#: js/blocks/ProgramBlocks.js:578 +#.TRANS: save the heap to a file +msgid "save heap" msgstr "" -#: js/SensorsBlocks.js:306 -msgid "The Click block triggers an event if a mouse has been clicked." +#: js/blocks/ProgramBlocks.js:629 +msgid "The Save-dictionary block saves a dictionary to a file." msgstr "" -#: js/SensorsBlocks.js:313 -msgid "The Click block triggers an event if a turtle has been clicked." +#: js/blocks/ProgramBlocks.js:640 +#.TRANS: save a dictionary to a file +msgid "save dictionary" msgstr "" -#: js/SensorsBlocks.js:342 -msgid "cursor over" +#: js/blocks/ProgramBlocks.js:720 +msgid "The Open palette block opens a palette." msgstr "" -#: js/SensorsBlocks.js:387 -msgid "cursor out" +#: js/blocks/ProgramBlocks.js:727 +msgid "open palette" msgstr "" -#: js/SensorsBlocks.js:433 -msgid "cursor button down" +#: js/blocks/ProgramBlocks.js:785 +msgid "The Delete block block removes a block." msgstr "" -#: js/SensorsBlocks.js:477 -msgid "cursor button up" +#: js/blocks/ProgramBlocks.js:797 +#.TRANS: Move this block to the trash. +msgid "delete block" msgstr "" -#: js/SensorsBlocks.js:638 -msgid "The Get red block returns the red component of the pixel under the mouse." +#: js/blocks/ProgramBlocks.js:861 +msgid "The Move block block moves a block." msgstr "" -#: js/SensorsBlocks.js:644 -msgid "The Get red block returns the red component of the pixel under the turtle." +#: js/blocks/ProgramBlocks.js:869 +#.TRANS: Move the position of a block on the screen. +msgid "move block" msgstr "" -#: js/SensorsBlocks.js:685 -#: plugins/rodi.rtp:216 -msgid "pixel color" +#: js/blocks/ProgramBlocks.js:881 +#: js/blocks/ProgramBlocks.js:1048 +msgid "block number" msgstr "" -#: js/SensorsBlocks.js:690 -msgid "The Get pixel block returns the color of the pixel under the mouse." +#: js/blocks/ProgramBlocks.js:935 +#.TRANS: Run program beginning at this block. +msgid "run block" msgstr "" -#: js/SensorsBlocks.js:696 -msgid "The Get pixel block returns the color of the pixel under the turtle." +#: js/blocks/ProgramBlocks.js:1025 +msgid "The Dock block block connections two blocks." msgstr "" -#: js/SensorsBlocks.js:758 -msgid "time" +#: js/blocks/ProgramBlocks.js:1036 +#.TRANS: We can connect a block to another block. +msgid "connect blocks" msgstr "" -#: js/SensorsBlocks.js:804 -msgid "cursor y" +#: js/blocks/ProgramBlocks.js:1048 +msgid "target block" msgstr "" -#: js/SensorsBlocks.js:809 -msgid "The Cursor Y block returns the vertical position of the mouse." +#: js/blocks/ProgramBlocks.js:1048 +msgid "connection number" msgstr "" -#: js/SensorsBlocks.js:845 -msgid "cursor x" +#: js/blocks/ProgramBlocks.js:1140 +msgid "The Make block block creates a new block." msgstr "" -#: js/SensorsBlocks.js:850 -msgid "The Cursor X block returns the horizontal position of the mouse." +#: js/blocks/ProgramBlocks.js:1152 +#.TRANS: Create a new block +msgid "make block" msgstr "" -#: js/SensorsBlocks.js:886 -msgid "mouse button" +#: js/blocks/ProgramBlocks.js:1285 +msgid "Cannot find block" msgstr "" -#: js/SensorsBlocks.js:888 -msgid "The Mouse-button block returns True if the mouse button is pressed." +#: js/blocks/ProgramBlocks.js:1304 +#: js/blocks/ProgramBlocks.js:1313 +msgid "Warning: block argument type mismatch" msgstr "" -#: js/SensorsBlocks.js:934 -msgid "to ASCII" +#: js/blocks/ProgramBlocks.js:1347 +msgid "The Open project block is used to open a project from a web page." msgstr "" -#: js/SensorsBlocks.js:938 -msgid "The To ASCII block converts numbers to letters." +#: js/blocks/ProgramBlocks.js:1357 +msgid "open project" msgstr "" -#: js/SensorsBlocks.js:1005 -msgid "The Keyboard block returns computer keyboard input." +#: js/blocks/ProgramBlocks.js:1410 +msgid "Please enter a valid URL." msgstr "" -#: js/IntervalsActions.js:216 -msgid "Adding missing pitch number 0." +#: js/blocks/ToneBlocks.js:34 +msgid "oscillator" msgstr "" -#: js/IntervalsActions.js:224 -msgid "Ignoring pitch numbers less than zero or greater than eleven." +#: js/blocks/ToneBlocks.js:42 +#: js/blocks/WidgetBlocks.js:179 +#: js/widgets/timbre.js:1558 +#: js/widgets/timbre.js:1808 +#.TRANS: there are different types (sine, triangle, square...) of oscillators. +#.TRANS: type of filter, e.g., lowpass, highpass, etc. +msgid "type" msgstr "" -#: js/IntervalsActions.js:230 -msgid "Ignoring duplicate pitch numbers." +#: js/blocks/ToneBlocks.js:44 +#: js/widgets/timbre.js:1562 +#.TRANS: Partials refers to the number of sine waves combined into the sound. +msgid "partials" msgstr "" -#: js/PitchActions.js:88 -msgid "The Scalar Step Block must be used inside of a Note Block." +#: js/blocks/ToneBlocks.js:76 +msgid "You are adding multiple oscillator blocks." msgstr "" -#: js/PitchActions.js:107 -msgid "The Scalar Step Block must be preceded by a Pitch Block." +#: js/blocks/ToneBlocks.js:144 +#: js/widgets/timbre.js:1225 +#.TRANS: a duo synthesizer combines a synth with a sequencer +msgid "duo synth" msgstr "" -#: js/DrumActions.js:231 -msgid "Noise Block: Did you mean to use a Note block?" +#: js/blocks/ToneBlocks.js:149 +msgid "The Duo synth block is a duo-frequency modulator used to define a timbre." msgstr "" -#: js/MeterActions.js:101 -#: js/MeterActions.js:139 -msgid "beats per minute must be greater than" +#: js/blocks/ToneBlocks.js:157 +#: js/widgets/timbre.js:1476 +msgid "vibrato rate" msgstr "" -#: js/MeterActions.js:111 -#: js/MeterActions.js:149 -msgid "maximum" +#: js/blocks/ToneBlocks.js:157 +msgid "vibrato intensity" msgstr "" -#: js/MeterActions.js:117 -#: js/MeterActions.js:155 -msgid "beats per minute is" +#: js/blocks/ToneBlocks.js:185 +#: js/widgets/timbre.js:1221 +#.TRANS: AM (amplitude modulation) synthesizer +msgid "AM synth" msgstr "" -#: js/ToneActions.js:134 -msgid "Vibrato intensity must be between 1 and 100." +#: js/blocks/ToneBlocks.js:189 +msgid "The AM synth block is an amplitude modulator used to define a timbre." msgstr "" -#: js/ToneActions.js:139 -msgid "Vibrato rate must be greater than 0." +#: js/blocks/ToneBlocks.js:224 +#: js/widgets/timbre.js:1223 +#.TRANS: FM (frequency modulation) synthesizer +msgid "FM synth" msgstr "" -#: js/ToneActions.js:192 -#: js/ToneActions.js:265 -#.TRANS: Depth is the intesity of the tremolo or chorus effect. -msgid "Depth is out of range." +#: js/blocks/ToneBlocks.js:228 +msgid "The FM synth block is a frequency modulator used to define a timbre." msgstr "" -#: js/ToneActions.js:301 -msgid "Distortion must be from 0 to 100." +#: js/blocks/ToneBlocks.js:262 +msgid "partial" msgstr "" -#: js/ToneActions.js:332 -#.TRANS: partials components in a harmonic series -msgid "Partial must be greater than or equal to 0." +#: js/blocks/ToneBlocks.js:265 +msgid "The Partial block is used to specify a weight for a specific partial harmonic." msgstr "" -#: js/ToneActions.js:378 -#: js/ToneActions.js:417 -#: js/ToneActions.js:456 -#: js/timbre.js:782 -msgid "Unable to use synth due to existing oscillator" +#: js/blocks/ToneBlocks.js:284 +#.TRANS: partials are weighted components in a harmonic series +msgid "Partial weight must be between 0 and 1." msgstr "" -#: js/ToneActions.js:388 -#: js/ToneActions.js:427 -msgid "The input cannot be negative." +#: js/blocks/ToneBlocks.js:297 +#.TRANS: partials are weighted components in a harmonic series +msgid "Partial block should be used inside of a Weighted-partials block." msgstr "" -#: js/DictActions.js:75 -#: js/DictActions.js:153 -#: js/DictActions.js:188 -msgid "font" +#: js/blocks/ToneBlocks.js:325 +#.TRANS: partials are weighted components in a harmonic series +msgid "weighted partials" msgstr "" -#: js/musicutils.js:363 -#: js/musicutils.js:471 -#: js/pitchdrummatrix.js:151 -#: js/musickeyboard.js:2563 -msgid "rest" +#: js/blocks/ToneBlocks.js:383 +msgid "The Harmonic block will add harmonics to the contained notes." msgstr "" -#: js/musicutils.js:565 -#.TRANS: ordinal number. Please keep exactly one space between each number. -msgid "1st 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th" +#: js/blocks/ToneBlocks.js:390 +#.TRANS: A harmonic is an overtone. +msgid "harmonic" msgstr "" -#: js/musicutils.js:629 -#: js/musicutils.js:812 -#: js/musicutils.js:911 -#.TRANS: augmented is a music term related to intervals -msgid "augmented" +#: js/blocks/ToneBlocks.js:431 +msgid "The Distortion block adds distortion to the pitch." msgstr "" -#: js/musicutils.js:631 -#: js/musicutils.js:813 -#: js/musicutils.js:910 -#.TRANS: diminished is a music term related to intervals and mode -msgid "diminished" +#: js/blocks/ToneBlocks.js:438 +#: js/widgets/timbre.js:2100 +#.TRANS: distortion is an alteration in the sound +msgid "distortion" msgstr "" -#: js/musicutils.js:639 -#.TRANS: twelve semi-tone scale for music -msgid "chromatic" +#: js/blocks/ToneBlocks.js:487 +msgid "The Tremolo block adds a wavering effect." msgstr "" -#: js/musicutils.js:640 -msgid "algerian" +#: js/blocks/ToneBlocks.js:495 +#: js/widgets/timbre.js:2092 +#.TRANS: a wavering effect in a musical tone +msgid "tremolo" msgstr "" -#: js/musicutils.js:641 -msgid "spanish" +#: js/blocks/ToneBlocks.js:500 +#: js/blocks/ToneBlocks.js:569 +#: js/blocks/ToneBlocks.js:630 +#: js/blocks/ToneBlocks.js:689 +#: js/widgets/timbre.js:2134 +#: js/widgets/timbre.js:2222 +#: js/widgets/timbre.js:2317 +#: js/widgets/timbre.js:2419 +#.TRANS: rate at which tremolo wavers +msgid "rate" msgstr "" -#: js/musicutils.js:643 -#.TRANS: modal scale in music -msgid "octatonic" +#: js/blocks/ToneBlocks.js:502 +#: js/blocks/ToneBlocks.js:630 +#: js/widgets/timbre.js:2137 +#: js/widgets/timbre.js:2328 +#.TRANS: amplitude of tremolo waver +msgid "depth" msgstr "" -#: js/musicutils.js:645 -#.TRANS: harmonic major scale in music -msgid "harmonic major" +#: js/blocks/ToneBlocks.js:559 +msgid "The Phaser block adds a sweeping sound." msgstr "" -#: js/musicutils.js:647 -#.TRANS: natural minor scales in music -msgid "natural minor" +#: js/blocks/ToneBlocks.js:566 +#: js/widgets/timbre.js:2098 +#.TRANS: alter the phase of the sound +msgid "phaser" msgstr "" -#: js/musicutils.js:649 -#.TRANS: harmonic minor scale in music -msgid "harmonic minor" +#: js/blocks/ToneBlocks.js:569 +#: js/turtleactions/IntervalsActions.js:114 +#: js/widgets/timbre.js:2422 +msgid "octaves" msgstr "" -#: js/musicutils.js:651 -#.TRANS: melodic minor scale in music -msgid "melodic minor" +#: js/blocks/ToneBlocks.js:569 +#: js/widgets/timbre.js:2425 +msgid "base frequency" msgstr "" -#: js/musicutils.js:655 -#.TRANS: modal scale for music -msgid "dorian" +#: js/blocks/ToneBlocks.js:619 +msgid "The Chorus block adds a chorus effect." msgstr "" -#: js/musicutils.js:657 -#.TRANS: modal scale for music -msgid "phrygian" +#: js/blocks/ToneBlocks.js:627 +#: js/widgets/timbre.js:2096 +#.TRANS: musical effect to simulate a choral sound +msgid "chorus" msgstr "" -#: js/musicutils.js:659 -#.TRANS: modal scale for music -msgid "lydian" +#: js/blocks/ToneBlocks.js:630 +msgid "delay" msgstr "" -#: js/musicutils.js:661 -#.TRANS: modal scale for music -msgid "mixolydian" +#: js/blocks/ToneBlocks.js:678 +msgid "The Vibrato block adds a rapid, slight variation in pitch." msgstr "" -#: js/musicutils.js:665 -#.TRANS: modal scale for music -msgid "locrian" +#: js/blocks/ToneBlocks.js:686 +#: js/widgets/timbre.js:2094 +#.TRANS: a rapid, slight variation in pitch +msgid "vibrato" msgstr "" -#: js/musicutils.js:667 -#.TRANS: minor jazz scale for music -msgid "jazz minor" +#: js/blocks/ToneBlocks.js:689 +#: js/widgets/timbre.js:2221 +msgid "intensity" msgstr "" -#: js/musicutils.js:669 -#.TRANS: bebop scale for music -msgid "bebop" +#: js/blocks/ToneBlocks.js:733 +#.TRANS: select synthesizer +msgid "set synth" msgstr "" -#: js/musicutils.js:670 -msgid "arabic" +#: js/blocks/ToneBlocks.js:804 +msgid "synth name" msgstr "" -#: js/musicutils.js:671 -msgid "byzantine" +#: js/blocks/ToneBlocks.js:842 +msgid "set default instrument" msgstr "" -#: js/musicutils.js:673 -#.TRANS: musical scale for music by Verdi -msgid "enigmatic" +#: js/blocks/ToneBlocks.js:895 +#: js/blocks/ToneBlocks.js:943 +#.TRANS: set the characteristics of a custom instrument +msgid "set instrument" msgstr "" -#: js/musicutils.js:674 -msgid "ethiopian" +#: js/blocks/ToneBlocks.js:898 +#: js/blocks/ToneBlocks.js:926 +#: js/blocks/ToneBlocks.js:932 +msgid "The Set instrument block selects a voice for the synthesizer," msgstr "" -#: js/musicutils.js:676 -#.TRANS: Ethiopic scale for music -msgid "geez" +#: js/blocks/ToneBlocks.js:900 +#: js/blocks/ToneBlocks.js:934 +msgid "eg guitar piano violin or cello." msgstr "" -#: js/musicutils.js:677 -msgid "hindu" +#: js/blocks/ToneBlocks.js:1015 +msgid "Import a sound file to use as an instrument and set its pitch center." msgstr "" -#: js/musicutils.js:678 -msgid "hungarian" +#: js/blocks/ToneBlocks.js:1110 +msgid "Upload a sound file to connect with the sample block." msgstr "" -#: js/musicutils.js:680 -#.TRANS: minor Romanian scale for music -msgid "romanian minor" +#: js/blocks/VolumeBlocks.js:35 +msgid "synth volume" msgstr "" -#: js/musicutils.js:681 -msgid "spanish gypsy" +#: js/blocks/VolumeBlocks.js:39 +msgid "The Synth volume block returns the current volume of the current synthesizer." msgstr "" -#: js/musicutils.js:683 -#.TRANS: musical scale for Mid-Eastern music -msgid "maqam" +#: js/blocks/VolumeBlocks.js:105 +msgid "master volume" msgstr "" -#: js/musicutils.js:685 -#.TRANS: minor blues scale for music -msgid "minor blues" +#: js/blocks/VolumeBlocks.js:109 +msgid "The Master volume block returns the master volume." msgstr "" -#: js/musicutils.js:687 -#.TRANS: major blues scale for music -msgid "major blues" +#: js/blocks/VolumeBlocks.js:355 +#: js/blocks/VolumeBlocks.js:524 +msgid "set synth volume" msgstr "" -#: js/musicutils.js:688 -msgid "whole tone" +#: js/blocks/VolumeBlocks.js:362 +#: js/blocks/VolumeBlocks.js:545 +msgid "synth" msgstr "" -#: js/musicutils.js:690 -#.TRANS: pentatonic is a general term that means "five note scale". This scale is typically known as "minor pentatonic" -msgid "minor pentatonic" +#: js/blocks/VolumeBlocks.js:403 +#: js/blocks/VolumeBlocks.js:577 +#: js/blocks/VolumeBlocks.js:740 +#: js/turtleactions/VolumeActions.js:173 +msgid "Setting volume to 0." msgstr "" -#: js/musicutils.js:692 -#.TRANS: pentatonic is a general term that means "five note scale". This scale is typically known as "major pentatonic" -msgid "major pentatonic" +#: js/blocks/VolumeBlocks.js:440 +msgid "Synth not found" msgstr "" -#: js/musicutils.js:693 -msgid "chinese" +#: js/blocks/VolumeBlocks.js:494 +msgid "set drum volume" msgstr "" -#: js/musicutils.js:694 -msgid "egyptian" +#: js/blocks/VolumeBlocks.js:530 +msgid "The Set synth volume block will change the volume of a particular synth," msgstr "" -#: js/musicutils.js:696 -#.TRANS: https://en.wikipedia.org/wiki/Hirajoshi_scale NOTE: There are three different versions of this scale -msgid "hirajoshi" +#: js/blocks/VolumeBlocks.js:532 +msgid "eg guitar violin snare drum etc." msgstr "" -#: js/musicutils.js:697 -msgid "Japan" +#: js/blocks/VolumeBlocks.js:534 +msgid "The default volume is 50." msgstr "" -#: js/musicutils.js:699 -#.TRANS: https://en.wikipedia.org/wiki/In_scale and https://en.wikipedia.org/wiki/Sakura_Sakura -msgid "in" +#: js/blocks/VolumeBlocks.js:536 +msgid "The range is 0 for silence to 100 for full volume." msgstr "" -#: js/musicutils.js:701 -#.TRANS: https://en.wikipedia.org/wiki/Miny%C5%8D_scale -msgid "minyo" +#: js/blocks/VolumeBlocks.js:597 +msgid "set panning" msgstr "" -#: js/musicutils.js:703 -#.TRANS: Italian mathematician -msgid "fibonacci" +#: js/blocks/VolumeBlocks.js:603 +msgid "The Set Panning block sets the panning for all synthesizers." msgstr "" -#: js/musicutils.js:708 -#: js/musicutils.js:1106 -#.TRANS: lowpass filter -msgid "lowpass" +#: js/blocks/VolumeBlocks.js:625 +msgid "Warning: Sound is coming out from only the left or right side." msgstr "" -#: js/musicutils.js:710 -#: js/musicutils.js:1107 -#.TRANS: bandpass filter -msgid "bandpass" +#: js/blocks/VolumeBlocks.js:647 +#: js/blocks/VolumeBlocks.js:695 +msgid "set master volume" msgstr "" -#: js/musicutils.js:712 -#: js/musicutils.js:1108 -#.TRANS: high-shelf filter -msgid "highshelf" +#: js/blocks/VolumeBlocks.js:653 +msgid "The Set master volume block sets the volume for all synthesizers." msgstr "" -#: js/musicutils.js:714 -#: js/musicutils.js:1109 -#.TRANS: low-shelf filter -msgid "lowshelf" +#: js/blocks/VolumeBlocks.js:784 +msgid "The Set relative volume block changes the volume of the contained notes." msgstr "" -#: js/musicutils.js:716 -#: js/musicutils.js:1110 -#.TRANS: notch-shelf filter -msgid "notch" +#: js/blocks/VolumeBlocks.js:791 +msgid "set relative volume" msgstr "" -#: js/musicutils.js:718 -#: js/musicutils.js:1111 -#.TRANS: all-pass filter -msgid "allpass" +#: js/blocks/VolumeBlocks.js:857 +msgid "decrescendo" msgstr "" -#: js/musicutils.js:720 -#: js/musicutils.js:1112 -#.TRANS: peaking filter -msgid "peaking" +#: js/blocks/VolumeBlocks.js:921 +msgid "crescendo" msgstr "" -#: js/musicutils.js:731 -#: js/synthutils.js:58 -#.TRANS: musical instrument -msgid "violin" +#: js/blocks/WidgetBlocks.js:81 +#.TRANS: sound envelope (ADSR) +msgid "envelope" msgstr "" -#: js/musicutils.js:732 -#: js/synthutils.js:60 -#.TRANS: viola musical instrument -msgid "viola" +#: js/blocks/WidgetBlocks.js:89 +#.TRANS: Attack time is the time taken for initial run-up of level from nil to peak, beginning when the key is first pressed. +msgid "attack" msgstr "" -#: js/musicutils.js:733 -#: js/synthutils.js:98 -#.TRANS: xylophone musical instrument -msgid "xylophone" +#: js/blocks/WidgetBlocks.js:91 +#.TRANS: Decay time is the time taken for the subsequent run down from the attack level to the designated sustain level. +msgid "decay" msgstr "" -#: js/musicutils.js:734 -#: js/synthutils.js:120 -#.TRANS: vibraphone musical instrument -msgid "vibraphone" +#: js/blocks/WidgetBlocks.js:93 +#.TRANS: Sustain level is the level during the main sequence of the sound's duration, until the key is released. +msgid "sustain" msgstr "" -#: js/musicutils.js:735 -#: js/synthutils.js:62 -#.TRANS: musical instrument -msgid "cello" +#: js/blocks/WidgetBlocks.js:95 +#.TRANS: Release time is the time taken for the level to decay from the sustain level to zero after the key is released. +msgid "release" msgstr "" -#: js/musicutils.js:737 -#: js/synthutils.js:66 -#.TRANS: viola musical instrument -msgid "double bass" +#: js/blocks/WidgetBlocks.js:113 +msgid "Attack value should be from 0 to 100." msgstr "" -#: js/musicutils.js:738 -#: js/synthutils.js:68 -#: js/rhythmruler.js:2119 -#.TRANS: musical instrument -msgid "guitar" +#: js/blocks/WidgetBlocks.js:116 +msgid "Decay value should be from 0 to 100." msgstr "" -#: js/musicutils.js:739 -#: js/synthutils.js:70 -#.TRANS: musical instrument -msgid "acoustic guitar" +#: js/blocks/WidgetBlocks.js:119 +msgid "Sustain value should be from 0 to 100." msgstr "" -#: js/musicutils.js:740 -#: js/synthutils.js:72 -#.TRANS: musical instrument -msgid "flute" +#: js/blocks/WidgetBlocks.js:122 +msgid "Release value should be from 0-100." msgstr "" -#: js/musicutils.js:741 -#: js/synthutils.js:74 -#.TRANS: musical instrument -msgid "clarinet" +#: js/blocks/WidgetBlocks.js:140 +msgid "You are adding multiple envelope blocks." msgstr "" -#: js/musicutils.js:742 -#: js/synthutils.js:76 -#.TRANS: musical instrument -msgid "saxophone" +#: js/blocks/WidgetBlocks.js:171 +#.TRANS: a filter removes some unwanted components from a signal +msgid "filter" msgstr "" -#: js/musicutils.js:743 -#: js/synthutils.js:78 -#.TRANS: musical instrument -msgid "tuba" +#: js/blocks/WidgetBlocks.js:181 +#: js/widgets/timbre.js:1818 +#.TRANS: rolloff is the steepness of a change in frequency. +msgid "rolloff" msgstr "" -#: js/musicutils.js:744 -#: js/synthutils.js:80 -#.TRANS: musical instrument -msgid "trumpet" +#: js/blocks/WidgetBlocks.js:213 +#.TRANS: rolloff is the steepness of a change in frequency. +msgid "Rolloff value should be either -12, -24, -48, or -96 decibels/octave." msgstr "" -#: js/musicutils.js:745 -#: js/synthutils.js:82 -#.TRANS: musical instrument -msgid "oboe" +#: js/blocks/WidgetBlocks.js:252 +msgid "The Temperament tool is used to define custom tuning." msgstr "" -#: js/musicutils.js:746 -#: js/synthutils.js:84 -#.TRANS: musical instrument -msgid "trombone" +#: js/blocks/WidgetBlocks.js:332 +#: js/blocks/WidgetBlocks.js:1573 +#: js/widgets/sampler.js:547 +msgid "Upload a sample and adjust its pitch center." msgstr "" -#: js/musicutils.js:747 -#: js/synthutils.js:100 -#.TRANS: polytone synthesizer -msgid "electronic synth" +#: js/blocks/WidgetBlocks.js:339 +#.TRANS: the speed at music is should be played. +msgid "sampler" msgstr "" -#: js/musicutils.js:748 -#: js/synthutils.js:102 -#.TRANS: simple monotone synthesizer -msgid "simple 1" +#: js/blocks/WidgetBlocks.js:517 +msgid "The Meter block opens a tool to select strong beats for the meter." msgstr "" -#: js/musicutils.js:749 -msgid "simple 2" +#: js/blocks/WidgetBlocks.js:573 +msgid "The oscilloscope block opens a tool to visualize waveforms." msgstr "" -#: js/musicutils.js:750 -msgid "simple 3" +#: js/blocks/WidgetBlocks.js:578 +msgid "oscilloscope" msgstr "" -#: js/musicutils.js:751 -msgid "simple 4" +#: js/blocks/WidgetBlocks.js:645 +msgid "The Custom mode block opens a tool to explore musical mode (the spacing of the notes in a scale)." msgstr "" -#: js/musicutils.js:753 -#: js/synthutils.js:49 -#.TRANS: brown noise synthesizer -msgid "brown noise" +#: js/blocks/WidgetBlocks.js:651 +#.TRANS: musical mode is the pattern of half-steps in an octave, e.g., Major or Minor modes +msgid "custom mode" msgstr "" -#: js/musicutils.js:754 -#: js/synthutils.js:51 -#.TRANS: pink noise synthesizer -msgid "pink noise" +#: js/blocks/WidgetBlocks.js:700 +msgid "The Tempo block opens a metronome to visualize the beat." msgstr "" -#: js/musicutils.js:756 -#: js/synthutils.js:127 -#: js/rhythmruler.js:1670 -#: js/rhythmruler.js:1928 -#.TRANS: musical instrument -msgid "snare drum" +#: js/blocks/WidgetBlocks.js:762 +msgid "The Arpeggio Widget is used to compose chord sequences." msgstr "" -#: js/musicutils.js:757 -#: js/synthutils.js:129 -#.TRANS: musical instrument -msgid "kick drum" +#: js/blocks/WidgetBlocks.js:837 +msgid "The Pitch drum matrix is used to map pitches to drum sounds." msgstr "" -#: js/musicutils.js:758 -#: js/synthutils.js:131 -#.TRANS: musical instrument -msgid "tom tom" +#: js/blocks/WidgetBlocks.js:842 +#.TRANS: makes a mapping between pitches and drum sounds +msgid "pitch-drum mapper" msgstr "" -#: js/musicutils.js:759 -#: js/synthutils.js:133 -#.TRANS: musical instrument -msgid "floor tom" +#: js/blocks/WidgetBlocks.js:891 +msgid "You must have at least one pitch block and one drum block in the matrix." msgstr "" -#: js/musicutils.js:760 -#: js/synthutils.js:135 -#.TRANS: musical instrument -msgid "bass drum" +#: js/blocks/WidgetBlocks.js:920 +msgid "The Pitch slider tool to is used to generate pitches at selected frequencies." msgstr "" -#: js/musicutils.js:761 -#: js/synthutils.js:137 -#.TRANS: a drum made from an inverted cup -msgid "cup drum" +#: js/blocks/WidgetBlocks.js:925 +#.TRANS: widget to generate pitches using a slider +msgid "pitch slider" msgstr "" -#: js/musicutils.js:762 -#: js/synthutils.js:139 -#.TRANS: musical instrument -msgid "darbuka drum" +#: js/blocks/WidgetBlocks.js:977 +msgid "chromatic keyboard" msgstr "" -#: js/musicutils.js:763 -#: js/synthutils.js:143 -#.TRANS: musical instrument -msgid "hi hat" +#: js/blocks/WidgetBlocks.js:1011 +#: js/blocks/WidgetBlocks.js:1077 +#.TRANS: widget to generate pitches using a slider +msgid "music keyboard" msgstr "" -#: js/musicutils.js:764 -#: js/synthutils.js:145 -#.TRANS: a small metal bell -msgid "ride bell" +#: js/blocks/WidgetBlocks.js:1062 +#: js/blocks/WidgetBlocks.js:1069 +msgid "The Music keyboard block opens a piano keyboard that can be used to create notes." msgstr "" -#: js/musicutils.js:765 -#: js/synthutils.js:147 -#.TRANS: musical instrument -msgid "cow bell" +#: js/blocks/WidgetBlocks.js:1128 +msgid "The Pitch staircase tool to is used to generate pitches from a given ratio." msgstr "" -#: js/musicutils.js:766 -msgid "japanese drum" +#: js/blocks/WidgetBlocks.js:1135 +#.TRANS: generate a progressive sequence of pitches +msgid "pitch staircase" msgstr "" -#: js/musicutils.js:767 -#: js/synthutils.js:153 -#.TRANS: musical instrument -msgid "japanese bell" +#: js/blocks/WidgetBlocks.js:1222 +msgid "The Rhythm Maker block opens a tool to create drum machines." msgstr "" -#: js/musicutils.js:768 -#: js/synthutils.js:149 -#.TRANS: musical instrument -msgid "triangle bell" +#: js/blocks/WidgetBlocks.js:1291 +msgid "G major scale" msgstr "" -#: js/musicutils.js:769 -#: js/synthutils.js:151 -#.TRANS: musical instrument -msgid "finger cymbals" +#: js/blocks/WidgetBlocks.js:1326 +msgid "C major scale" msgstr "" -#: js/musicutils.js:770 -#: js/synthutils.js:155 -#.TRANS: a musically tuned set of bells -msgid "chime" +#: js/blocks/WidgetBlocks.js:1366 +msgid "The Phrase Maker block opens a tool to create musical phrases." msgstr "" -#: js/musicutils.js:771 -#: js/synthutils.js:157 -#.TRANS: a musical instrument -msgid "gong" +#: js/blocks/WidgetBlocks.js:1373 +#.TRANS: assigns pitch to a sequence of beats to generate a melody +msgid "phrase maker" msgstr "" -#: js/musicutils.js:772 -#: js/synthutils.js:159 -#.TRANS: sound effect -msgid "clang" +#: js/blocks/WidgetBlocks.js:1444 +msgid "You must have at least one pitch block and one rhythm block in the matrix." msgstr "" -#: js/musicutils.js:773 -#: js/synthutils.js:161 -#.TRANS: sound effect -msgid "crash" +#: js/blocks/WidgetBlocks.js:1503 +msgid "The Status block opens a tool for inspecting the status of Music Blocks as it is running." msgstr "" -#: js/musicutils.js:774 -#: js/synthutils.js:163 -#.TRANS: sound effect -msgid "bottle" +#: js/blocks/WidgetBlocks.js:1580 +#.TRANS: AI-generated music +msgid "aimusic" msgstr "" -#: js/musicutils.js:775 -#: js/synthutils.js:165 -#.TRANS: sound effect -msgid "clap" +#: js/turtleactions/MeterActions.js:101 +#: js/turtleactions/MeterActions.js:139 +msgid "beats per minute must be greater than" msgstr "" -#: js/musicutils.js:776 -#: js/synthutils.js:167 -#.TRANS: sound effect -msgid "slap" +#: js/turtleactions/MeterActions.js:111 +#: js/turtleactions/MeterActions.js:149 +msgid "maximum" msgstr "" -#: js/musicutils.js:777 -#: js/synthutils.js:169 -#.TRANS: sound effect -msgid "splash" +#: js/turtleactions/MeterActions.js:117 +#: js/turtleactions/MeterActions.js:155 +msgid "beats per minute is" msgstr "" -#: js/musicutils.js:778 -#: js/synthutils.js:171 -#.TRANS: sound effect -msgid "bubbles" +#: js/turtleactions/DictActions.js:75 +#: js/turtleactions/DictActions.js:142 +#: js/turtleactions/DictActions.js:172 +msgid "font" msgstr "" -#: js/musicutils.js:779 -#: js/synthutils.js:173 -#.TRANS: sound effect -msgid "raindrop" +#: js/turtleactions/DictActions.js:255 +msgid "Dictionary with this name does not exist" msgstr "" -#: js/musicutils.js:780 -#: js/synthutils.js:175 -#.TRANS: animal sound effect -msgid "cat" +#: js/turtleactions/DictActions.js:259 +msgid "Key with this name does not exist in " msgstr "" -#: js/musicutils.js:781 -#: js/synthutils.js:177 -#.TRANS: animal sound effect -msgid "cricket" +#: js/turtleactions/DrumActions.js:227 +msgid "Noise Block: Did you mean to use a Note block?" msgstr "" -#: js/musicutils.js:782 -#: js/synthutils.js:179 -#.TRANS: animal sound effect -msgid "dog" +#: js/turtleactions/IntervalsActions.js:113 +msgid "one" msgstr "" -#: js/musicutils.js:784 -#: js/synthutils.js:86 -#.TRANS: musical instrument -msgid "banjo" +#: js/turtleactions/IntervalsActions.js:113 +msgid "two" msgstr "" -#: js/musicutils.js:785 -#: js/synthutils.js:88 -#.TRANS: musical instrument -msgid "koto" +#: js/turtleactions/IntervalsActions.js:113 +msgid "three" msgstr "" -#: js/musicutils.js:786 -#: js/synthutils.js:90 -#.TRANS: musical instrument -msgid "dulcimer" +#: js/turtleactions/IntervalsActions.js:113 +msgid "four" msgstr "" -#: js/musicutils.js:787 -#: js/synthutils.js:92 -#.TRANS: musical instrument -msgid "electric guitar" +#: js/turtleactions/IntervalsActions.js:113 +msgid "five" msgstr "" -#: js/musicutils.js:788 -#: js/synthutils.js:94 -#.TRANS: musical instrument -msgid "bassoon" +#: js/turtleactions/IntervalsActions.js:113 +msgid "six" msgstr "" -#: js/musicutils.js:789 -#: js/synthutils.js:96 -#.TRANS: musical instrument -msgid "celeste" +#: js/turtleactions/IntervalsActions.js:113 +msgid "seven" msgstr "" -#: js/musicutils.js:791 -#: js/musicutils.js:1123 -#: js/musicutils.js:1131 -#: js/temperament.js:650 -#.TRANS: musical temperament -msgid "equal" +#: js/turtleactions/IntervalsActions.js:113 +msgid "eight" msgstr "" -#: js/musicutils.js:793 -#: js/musicutils.js:1125 -#: js/musicutils.js:1133 -#.TRANS: musical temperament -msgid "Pythagorean" +#: js/turtleactions/IntervalsActions.js:113 +msgid "nine" msgstr "" -#: js/musicutils.js:795 -#: js/musicutils.js:1124 -#: js/musicutils.js:1132 -#.TRANS: musical temperament -msgid "just intonation" +#: js/turtleactions/IntervalsActions.js:119 +msgid "a" msgstr "" -#: js/musicutils.js:797 -#: js/musicutils.js:1126 -#: js/musicutils.js:1127 -#: js/musicutils.js:1134 -#: js/musicutils.js:1135 -#.TRANS: musical temperament -msgid "meantone" +#: js/turtleactions/IntervalsActions.js:120 +msgid "below" msgstr "" -#: js/musicutils.js:814 -msgid "major 7th" +#: js/turtleactions/IntervalsActions.js:124 +msgid "above" msgstr "" -#: js/musicutils.js:815 -msgid "minor 7th" +#: js/turtleactions/IntervalsActions.js:131 +msgid "plus" msgstr "" -#: js/musicutils.js:816 -msgid "dominant 7th" +#: js/turtleactions/IntervalsActions.js:139 +msgid " below" msgstr "" -#: js/musicutils.js:817 -msgid "minor-major 7th" +#: js/turtleactions/IntervalsActions.js:257 +msgid "Adding missing pitch number 0." msgstr "" -#: js/musicutils.js:818 -msgid "fully-diminished 7th" +#: js/turtleactions/IntervalsActions.js:265 +msgid "Ignoring pitch numbers less than zero or greater than eleven." msgstr "" -#: js/musicutils.js:819 -msgid "half-diminished 7th" +#: js/turtleactions/IntervalsActions.js:271 +msgid "Ignoring duplicate pitch numbers." msgstr "" -#: js/musicutils.js:4379 -#: js/musicutils.js:4416 -msgid "current" +#: js/turtleactions/ToneActions.js:134 +msgid "Vibrato intensity must be between 1 and 100." msgstr "" -#: js/musicutils.js:4382 -#: js/musicutils.js:4407 -msgid "next" +#: js/turtleactions/ToneActions.js:139 +msgid "Vibrato rate must be greater than 0." msgstr "" -#: js/musicutils.js:4385 -#: js/musicutils.js:4412 -msgid "previous" +#: js/turtleactions/ToneActions.js:192 +#: js/turtleactions/ToneActions.js:265 +#.TRANS: Depth is the intesity of the tremolo or chorus effect. +msgid "Depth is out of range." msgstr "" -#: js/synthutils.js:104 -#.TRANS: simple monotone synthesizer -msgid "simple-2" +#: js/turtleactions/ToneActions.js:301 +msgid "Distortion must be from 0 to 100." msgstr "" -#: js/synthutils.js:106 -#.TRANS: simple monotone synthesizer -msgid "simple-3" +#: js/turtleactions/ToneActions.js:332 +#.TRANS: partials components in a harmonic series +msgid "Partial must be greater than or equal to 0." msgstr "" -#: js/synthutils.js:108 -#.TRANS: simple monotone synthesizer -msgid "simple-4" +#: js/turtleactions/ToneActions.js:378 +#: js/turtleactions/ToneActions.js:417 +#: js/turtleactions/ToneActions.js:456 +#: js/widgets/timbre.js:782 +msgid "Unable to use synth due to existing oscillator" msgstr "" -#: js/synthutils.js:141 -#.TRANS: musical instrument -msgid "taiko" +#: js/turtleactions/ToneActions.js:388 +#: js/turtleactions/ToneActions.js:427 +msgid "The input cannot be negative." msgstr "" -#: js/modewidget.js:86 -#: js/modewidget.js:88 -#: js/modewidget.js:642 -#: js/modewidget.js:644 -#: js/modewidget.js:712 -#: js/modewidget.js:714 -#: js/temperament.js:2078 -#: js/rhythmruler.js:189 -#: js/rhythmruler.js:1410 -#: js/rhythmruler.js:1412 -#: js/rhythmruler.js:1435 -#: js/rhythmruler.js:1437 -#: js/meterwidget.js:89 -#: js/meterwidget.js:91 +#: js/widgets/modewidget.js:86 +#: js/widgets/modewidget.js:88 +#: js/widgets/modewidget.js:642 +#: js/widgets/modewidget.js:644 +#: js/widgets/modewidget.js:712 +#: js/widgets/modewidget.js:714 +#: js/widgets/meterwidget.js:194 +#: js/widgets/meterwidget.js:196 +#: js/widgets/temperament.js:2236 +#: js/widgets/rhythmruler.js:457 +#: js/widgets/rhythmruler.js:1790 +#: js/widgets/rhythmruler.js:1792 +#: js/widgets/rhythmruler.js:1816 +#: js/widgets/rhythmruler.js:1818 msgid "Play all" msgstr "" -#: js/modewidget.js:115 -#: js/pitchstaircase.js:641 -#: js/phrasemaker.js:339 -#: js/pitchdrummatrix.js:94 -#: js/pitchslider.js:125 -#: js/temperament.js:2083 -#: js/musickeyboard.js:530 -#: js/timbre.js:756 -#: js/meterwidget.js:124 -#: js/arpeggio.js:103 +#: js/widgets/modewidget.js:115 +#: js/widgets/meterwidget.js:229 +#: js/widgets/pitchdrummatrix.js:166 +#: js/widgets/pitchslider.js:125 +#: js/widgets/pitchstaircase.js:641 +#: js/widgets/temperament.js:2244 +#: js/widgets/timbre.js:756 +#: js/widgets/arpeggio.js:103 +#: js/widgets/musickeyboard.js:688 +#: js/widgets/phrasemaker.js:550 msgid "Save" msgstr "" -#: js/modewidget.js:121 -#: js/pitchstaircase.js:686 -#: js/phrasemaker.js:356 -#: js/pitchdrummatrix.js:109 -#: js/musickeyboard.js:534 -#: js/rhythmruler.js:269 -#: js/arpeggio.js:118 +#: js/widgets/modewidget.js:121 +#: js/widgets/pitchdrummatrix.js:181 +#: js/widgets/pitchstaircase.js:686 +#: js/widgets/arpeggio.js:118 +#: js/widgets/musickeyboard.js:696 +#: js/widgets/phrasemaker.js:567 +#: js/widgets/rhythmruler.js:601 #.TRANS: clear all subdivisions from the ruler. msgid "Clear" msgstr "" -#: js/modewidget.js:127 +#: js/widgets/modewidget.js:127 msgid "Rotate counter clockwise" msgstr "" -#: js/modewidget.js:133 +#: js/widgets/modewidget.js:133 msgid "Rotate clockwise" msgstr "" -#: js/modewidget.js:139 +#: js/widgets/modewidget.js:139 msgid "Invert" msgstr "" -#: js/modewidget.js:145 -#: js/pitchstaircase.js:678 -#: js/rhythmruler.js:258 -#: js/timbre.js:963 +#: js/widgets/modewidget.js:145 +#: js/widgets/pitchstaircase.js:678 +#: js/widgets/timbre.js:963 +#: js/widgets/rhythmruler.js:578 msgid "Undo" msgstr "" -#: js/modewidget.js:163 +#: js/widgets/modewidget.js:163 #.TRANS: A circle of notes represents the musical mode. msgid "Click in the circle to select notes for the mode." msgstr "" -#: js/modewidget.js:1017 -#: js/pitchstaircase.js:580 -#: js/phrasemaker.js:4855 -#: js/temperament.js:1754 -#: js/rhythmruler.js:1865 -#: js/rhythmruler.js:2081 -#: js/tempo.js:414 +#: js/widgets/modewidget.js:1017 +#: js/widgets/pitchstaircase.js:580 +#: js/widgets/temperament.js:1929 +#: js/widgets/tempo.js:414 +#: js/widgets/phrasemaker.js:5356 +#: js/widgets/rhythmruler.js:2254 +#: js/widgets/rhythmruler.js:2472 msgid "New action block generated!" msgstr "" -#: js/oscilloscope.js:79 -msgid "Zoom In" -msgstr "" - -#: js/oscilloscope.js:88 -msgid "Zoom Out" -msgstr "" - -#: js/pitchstaircase.js:624 -msgid "Play chord" -msgstr "" - -#: js/pitchstaircase.js:632 -msgid "Play scale" +#: js/widgets/meterwidget.js:275 +msgid "Reset" msgstr "" -#: js/pitchstaircase.js:696 -msgid "Click on a note to create a new step." +#: js/widgets/meterwidget.js:301 +msgid "Click in the circle to select strong beats for the meter." msgstr "" -#: js/phrasemaker.js:363 -msgid "Export" +#: js/widgets/oscilloscope.js:79 +msgid "Zoom In" msgstr "" -#: js/phrasemaker.js:370 -msgid "Sort" +#: js/widgets/oscilloscope.js:88 +msgid "Zoom Out" msgstr "" -#: js/phrasemaker.js:373 -#: js/musickeyboard.js:559 -msgid "Add note" +#: js/widgets/pitchdrummatrix.js:356 +#: js/widgets/pitchdrummatrix.js:752 +msgid "Click in the grid to map notes to drums." msgstr "" -#: js/phrasemaker.js:764 -msgid "Click on the table to add notes." +#: js/widgets/pitchslider.js:103 +msgid "Move up" msgstr "" -#: js/phrasemaker.js:2414 -#: js/phrasemaker.js:2543 -msgid "tuplet value" +#: js/widgets/pitchslider.js:114 +msgid "Move down" msgstr "" -#: js/pitchdrummatrix.js:270 -#: js/pitchdrummatrix.js:639 -msgid "Click in the grid to map notes to drums." +#: js/widgets/pitchslider.js:136 +msgid "Click on the slider to create a note block." msgstr "" -#: js/pitchslider.js:103 -msgid "Move up" +#: js/widgets/pitchstaircase.js:624 +msgid "Play chord" msgstr "" -#: js/pitchslider.js:114 -msgid "Move down" +#: js/widgets/pitchstaircase.js:632 +msgid "Play scale" msgstr "" -#: js/pitchslider.js:136 -msgid "Click on the slider to create a note block." +#: js/widgets/pitchstaircase.js:696 +msgid "Click on a note to create a new step." msgstr "" -#: js/temperament.js:215 +#: js/widgets/temperament.js:321 msgid "back to 2:1 octave space" msgstr "" -#: js/temperament.js:323 +#: js/widgets/temperament.js:447 msgid "edit" msgstr "" -#: js/temperament.js:330 -#: js/temperament.js:332 -#: js/temperament.js:1336 -#: js/temperament.js:1338 +#: js/widgets/temperament.js:454 +#: js/widgets/temperament.js:456 +#: js/widgets/temperament.js:1493 +#: js/widgets/temperament.js:1495 msgid "close" msgstr "" -#: js/temperament.js:423 -#: js/temperament.js:736 -#: js/temperament.js:743 -#: js/temperament.js:845 -#: js/temperament.js:935 -#: js/temperament.js:942 -#: js/temperament.js:1015 -#: js/temperament.js:1284 -#: js/temperament.js:1354 -#: js/temperament.js:1430 +#: js/widgets/temperament.js:552 +#: js/widgets/temperament.js:877 +#: js/widgets/temperament.js:884 +#: js/widgets/temperament.js:986 +#: js/widgets/temperament.js:1080 +#: js/widgets/temperament.js:1087 +#: js/widgets/temperament.js:1160 +#: js/widgets/temperament.js:1433 +#: js/widgets/temperament.js:1511 +#: js/widgets/temperament.js:1596 msgid "done" msgstr "" -#: js/temperament.js:477 -#: js/temperament.js:482 -#: js/temperament.js:918 +#: js/widgets/temperament.js:610 +#: js/widgets/temperament.js:615 +#: js/widgets/temperament.js:1063 msgid "ratio" msgstr "" -#: js/temperament.js:483 +#: js/widgets/temperament.js:616 msgid "interval" msgstr "" -#: js/temperament.js:611 +#: js/widgets/temperament.js:744 msgid "non scalar" msgstr "" -#: js/temperament.js:650 +#: js/widgets/temperament.js:787 msgid "ratios" msgstr "" -#: js/temperament.js:650 +#: js/widgets/temperament.js:787 msgid "arbitrary" msgstr "" -#: js/temperament.js:719 +#: js/widgets/temperament.js:860 msgid "number of divisions" msgstr "" -#: js/temperament.js:741 -#: js/temperament.js:858 -#: js/temperament.js:940 -#: js/temperament.js:1033 +#: js/widgets/temperament.js:882 +#: js/widgets/temperament.js:999 +#: js/widgets/temperament.js:1085 +#: js/widgets/temperament.js:1178 msgid "preview" msgstr "" -#: js/temperament.js:788 +#: js/widgets/temperament.js:929 msgid "The Number of divisions is too large." msgstr "" -#: js/temperament.js:921 +#: js/widgets/temperament.js:1066 msgid "recursion" msgstr "" -#: js/temperament.js:1450 +#: js/widgets/temperament.js:1616 msgid "The octave ratio has changed. This changes temperament significantly." msgstr "" -#: js/temperament.js:2087 +#: js/widgets/temperament.js:2248 msgid "Table" msgstr "" -#: js/temperament.js:2185 +#: js/widgets/temperament.js:2356 msgid "Add pitches" msgstr "" -#: js/musickeyboard.js:570 -msgid "Metronome" +#: js/widgets/tempo.js:78 +#: js/widgets/tempo.js:97 +#: js/widgets/tempo.js:99 +#: js/widgets/aiwidget.js:134 +#: js/widgets/aiwidget.js:136 +#: js/widgets/rhythmruler.js:681 +#: js/widgets/rhythmruler.js:683 +#: js/widgets/rhythmruler.js:1864 +#: js/widgets/rhythmruler.js:1866 +#: js/widgets/sampler.js:180 +#: js/widgets/sampler.js:182 +msgid "Pause" msgstr "" -#: js/musickeyboard.js:1296 -#: plugins/rodi.rtp:193 -msgid "duration" +#: js/widgets/tempo.js:113 +msgid "Save tempo" msgstr "" -#: js/musickeyboard.js:2840 -msgid "New action blocks generated!" +#: js/widgets/tempo.js:144 +msgid "speed up" msgstr "" -#: js/musickeyboard.js:2841 -msgid "New action block generated" +#: js/widgets/tempo.js:150 +msgid "slow down" msgstr "" -#: js/musickeyboard.js:2984 -#: js/musickeyboard.js:2992 -msgid "MIDI device present." +#: js/widgets/tempo.js:194 +msgid "Adjust the tempo with the buttons." msgstr "" -#: js/musickeyboard.js:2995 -msgid "No MIDI device found." +#: js/widgets/tempo.js:261 +msgid "Please enter a number between 30 and 1000" msgstr "" -#: js/musickeyboard.js:3000 -msgid "Failed to get MIDI access in browser." +#: js/widgets/tempo.js:268 +#: js/widgets/tempo.js:271 +msgid "The beats per minute must be between 30 and 1000." msgstr "" -#: js/rhythmruler.js:202 -msgid "Save rhythms" +#: js/widgets/tempo.js:287 +msgid "The beats per minute must be below 1000." msgstr "" -#: js/rhythmruler.js:222 -msgid "Save drum machine" +#: js/widgets/tempo.js:303 +msgid "The beats per minute must be above 30" msgstr "" -#: js/rhythmruler.js:263 -#.TRANS: user can tap out a rhythm by clicking on a ruler. -msgid "Tap a rhythm" +#: js/widgets/timbre.js:766 +msgid "Synthesizer" msgstr "" -#: js/rhythmruler.js:342 -#: js/rhythmruler.js:344 -#: js/rhythmruler.js:1481 -#: js/rhythmruler.js:1483 -#: js/sampler.js:110 -#: js/sampler.js:112 -#: js/tempo.js:78 -#: js/tempo.js:97 -#: js/tempo.js:99 -msgid "Pause" +#: js/widgets/timbre.js:789 +msgid "Oscillator" msgstr "" -#: js/rhythmruler.js:478 -msgid "Click on the ruler to divide it." +#: js/widgets/timbre.js:840 +msgid "Envelope" msgstr "" -#: js/rhythmruler.js:603 -#: js/rhythmruler.js:605 -#: js/rhythmruler.js:804 -#: js/rhythmruler.js:806 -#: js/rhythmruler.js:1386 -#: js/rhythmruler.js:1388 -msgid "tap a rhythm" +#: js/widgets/timbre.js:886 +#: planet/js/GlobalTag.js:50 +#.TRANS: On the Planet, we use labels to tag projects. +msgid "Effects" msgstr "" -#: js/rhythmruler.js:1084 -msgid "Maximum value of 256 has been exceeded." +#: js/widgets/timbre.js:904 +msgid "Filter" msgstr "" -#: js/sampler.js:137 -msgid "Warning: Sample is bigger than 1MB." +#: js/widgets/timbre.js:946 +msgid "Add filter" msgstr "" -#: js/sampler.js:142 -msgid "Upload failed: Sample is not a .wav file." +#: js/widgets/timbre.js:987 +msgid "Click on buttons to open the timbre design tools." msgstr "" -#: js/sampler.js:164 -msgid "A new sample block was generated." +#: js/widgets/timbre.js:1273 +msgid "harmonicity" msgstr "" -#: js/sampler.js:255 -msgid "Upload sample" +#: js/widgets/timbre.js:1340 +#: js/widgets/timbre.js:1406 +msgid "modulation index" msgstr "" -#: js/sampler.js:306 -msgid "Save sample" +#: js/widgets/timbre.js:1484 +msgid "vibrato amount" msgstr "" -#: js/sampler.js:697 -#.TRANS: The reference tone is a sound used for comparison. -msgid "reference tone" +#: js/widgets/timbre.js:1919 +msgid "Filter already present." msgstr "" -#: js/tempo.js:113 -msgid "Save tempo" +#: js/widgets/timbre.js:2322 +msgid "delay (MS)" msgstr "" -#: js/tempo.js:144 -msgid "speed up" +#: js/widgets/timbre.js:2507 +msgid "distortion amount" msgstr "" -#: js/tempo.js:150 -msgid "slow down" +#: js/widgets/aiwidget.js:180 +#: js/widgets/sampler.js:227 +msgid "Warning: Sample is bigger than 1MB." msgstr "" -#: js/tempo.js:194 -msgid "Adjust the tempo with the buttons." +#: js/widgets/aiwidget.js:539 +msgid "New start block generated" msgstr "" -#: js/tempo.js:261 -msgid "Please enter a number between 30 and 1000" +#: js/widgets/aiwidget.js:541 +msgid "MIDI loading. This may take some time depending upon the number of notes in the track" msgstr "" -#: js/tempo.js:268 -#: js/tempo.js:271 -msgid "The beats per minute must be between 30 and 1000." +#: js/widgets/aiwidget.js:551 +#: js/widgets/sampler.js:254 +msgid "Upload failed: Sample is not a .wav file." msgstr "" -#: js/tempo.js:287 -msgid "The beats per minute must be below 1000." +#: js/widgets/aiwidget.js:679 +#: js/widgets/sampler.js:432 +msgid "Save sample" msgstr "" -#: js/tempo.js:303 -msgid "The beats per minute must be above 30" +#: js/widgets/aiwidget.js:701 +msgid "AI Music" msgstr "" -#: js/timbre.js:766 -msgid "Synthesizer" +#: js/widgets/arpeggio.js:239 +msgid "Click in the grid to add steps to the arpeggio." msgstr "" -#: js/timbre.js:789 -msgid "Oscillator" +#: js/widgets/help.js:95 +#: js/widgets/help.js:125 +#: js/widgets/help.js:146 +#: js/widgets/help.js:158 +#: js/widgets/help.js:376 +#: js/widgets/help.js:391 +msgid "Take a tour" msgstr "" -#: js/timbre.js:840 -msgid "Envelope" +#: js/widgets/musickeyboard.js:725 +#: js/widgets/phrasemaker.js:584 +msgid "Add note" msgstr "" -#: js/timbre.js:886 -#: js/GlobalTag.js:50 -#.TRANS: On the Planet, we use labels to tag projects. -msgid "Effects" +#: js/widgets/musickeyboard.js:744 +msgid "Metronome" +msgstr "" + +#: js/widgets/musickeyboard.js:1549 +#: plugins/rodi.rtp:193 +msgid "duration" +msgstr "" + +#: js/widgets/musickeyboard.js:3179 +msgid "New action blocks generated" +msgstr "" + +#: js/widgets/musickeyboard.js:3180 +msgid "New action block generated" msgstr "" -#: js/timbre.js:904 -msgid "Filter" +#: js/widgets/musickeyboard.js:3365 +#: js/widgets/musickeyboard.js:3373 +msgid "MIDI device present." msgstr "" -#: js/timbre.js:946 -msgid "Add filter" +#: js/widgets/musickeyboard.js:3376 +msgid "No MIDI device found." msgstr "" -#: js/timbre.js:987 -msgid "Click on buttons to open the timbre design tools." +#: js/widgets/musickeyboard.js:3386 +msgid "Failed to get MIDI access in browser." msgstr "" -#: js/timbre.js:1273 -msgid "harmonicity" +#: js/widgets/phrasemaker.js:574 +msgid "Export" msgstr "" -#: js/timbre.js:1340 -#: js/timbre.js:1406 -msgid "modulation index" +#: js/widgets/phrasemaker.js:581 +msgid "Sort" msgstr "" -#: js/timbre.js:1484 -msgid "vibrato amount" +#: js/widgets/phrasemaker.js:975 +msgid "Click on the table to add notes." msgstr "" -#: js/timbre.js:1919 -msgid "Filter already present." +#: js/widgets/phrasemaker.js:2677 +#: js/widgets/phrasemaker.js:2819 +msgid "tuplet value" msgstr "" -#: js/timbre.js:2322 -msgid "delay (MS)" +#: js/widgets/rhythmruler.js:486 +msgid "Save rhythms" msgstr "" -#: js/timbre.js:2507 -msgid "distortion amount" +#: js/widgets/rhythmruler.js:512 +msgid "Save drum machine" msgstr "" -#: js/meterwidget.js:170 -msgid "Reset" +#: js/widgets/rhythmruler.js:589 +#.TRANS: user can tap out a rhythm by clicking on a ruler. +msgid "Tap a rhythm" msgstr "" -#: js/meterwidget.js:196 -msgid "Click in the circle to select strong beats for the meter." +#: js/widgets/rhythmruler.js:817 +msgid "Click on the ruler to divide it." msgstr "" -#: js/arpeggio.js:239 -msgid "Click in the grid to add steps to the arpeggio." +#: js/widgets/rhythmruler.js:950 +#: js/widgets/rhythmruler.js:952 +#: js/widgets/rhythmruler.js:1152 +#: js/widgets/rhythmruler.js:1154 +#: js/widgets/rhythmruler.js:1765 +#: js/widgets/rhythmruler.js:1767 +msgid "tap a rhythm" msgstr "" -#: js/ProjectStorage.js:243 -msgid "anonymous" +#: js/widgets/rhythmruler.js:1459 +msgid "Maximum value of 256 has been exceeded." msgstr "" -#: js/GlobalCard.js:68 -msgid "Share" +#: js/widgets/sampler.js:237 +msgid "Recording started..." msgstr "" -#: js/GlobalCard.js:74 -msgid "Flags" +#: js/widgets/sampler.js:245 +msgid "Recording complete..." msgstr "" -#: js/LocalCard.js:36 -msgid "View published project" +#: js/widgets/sampler.js:283 +msgid "A new sample block was generated." msgstr "" -#: js/LocalCard.js:42 -msgid "Publish project" +#: js/widgets/sampler.js:378 +msgid "Upload sample" msgstr "" -#: js/LocalCard.js:51 -msgid "Edit project" +#: js/widgets/sampler.js:399 +msgid "Warning: Your sample cannot be loaded because it is >1MB." msgstr "" -#: js/LocalCard.js:52 -msgid "Delete project" +#: js/widgets/sampler.js:448 +msgid "Toggle Mic" msgstr "" -#: js/LocalCard.js:53 -msgid "Download project" +#: js/widgets/sampler.js:458 +msgid "Playback" msgstr "" -#: js/LocalCard.js:55 -msgid "Duplicate project" +#: js/widgets/sampler.js:979 +#.TRANS: The reference tone is a sound used for comparison. +msgid "reference tone" msgstr "" -#: js/GlobalTag.js:28 +#: planet/js/GlobalTag.js:28 #.TRANS: On the Planet, we use labels to tag projects. msgid "All Projects" msgstr "" -#: js/GlobalTag.js:30 -#: js/StringHelper.js:37 +#: planet/js/GlobalTag.js:30 +#: planet/js/StringHelper.js:37 #.TRANS: On the Planet, we use labels to tag projects. msgid "My Projects" msgstr "" -#: js/GlobalTag.js:32 +#: planet/js/GlobalTag.js:32 #.TRANS: On the Planet, we use labels to tag projects. msgid "Examples" msgstr "" -#: js/GlobalTag.js:34 +#: planet/js/GlobalTag.js:34 #.TRANS: On the Planet, we use labels to tag projects. msgid "Music" msgstr "" -#: js/GlobalTag.js:36 +#: planet/js/GlobalTag.js:36 #.TRANS: On the Planet, we use labels to tag projects. msgid "Art" msgstr "" -#: js/GlobalTag.js:38 +#: planet/js/GlobalTag.js:38 #.TRANS: On the Planet, we use labels to tag projects. msgid "Math" msgstr "" -#: js/GlobalTag.js:40 +#: planet/js/GlobalTag.js:40 #.TRANS: On the Planet, we use labels to tag projects. msgid "Interactive" msgstr "" -#: js/GlobalTag.js:42 +#: planet/js/GlobalTag.js:42 #.TRANS: On the Planet, we use labels to tag projects. msgid "Design" msgstr "" -#: js/GlobalTag.js:44 +#: planet/js/GlobalTag.js:44 #.TRANS: On the Planet, we use labels to tag projects. msgid "Game" msgstr "" -#: js/GlobalTag.js:46 +#: planet/js/GlobalTag.js:46 #.TRANS: On the Planet, we use labels to tag projects. msgid "Media" msgstr "" -#: js/GlobalTag.js:48 +#: planet/js/GlobalTag.js:48 #.TRANS: On the Planet, we use labels to tag projects. msgid "Sensors" msgstr "" -#: js/GlobalTag.js:52 +#: planet/js/GlobalTag.js:52 #.TRANS: On the Planet, we use labels to tag projects. msgid "Code Snippet" msgstr "" -#: js/helper.js:149 -#: js/StringHelper.js:49 -msgid "Show more tags" +#: planet/js/LocalCard.js:36 +msgid "View published project" msgstr "" -#: js/helper.js:150 -msgid "Show fewer tags" +#: planet/js/LocalCard.js:42 +msgid "Publish project" +msgstr "" + +#: planet/js/LocalCard.js:51 +msgid "Edit project" +msgstr "" + +#: planet/js/LocalCard.js:52 +msgid "Delete project" +msgstr "" + +#: planet/js/LocalCard.js:53 +msgid "Download project" +msgstr "" + +#: planet/js/LocalCard.js:55 +msgid "Duplicate project" +msgstr "" + +#: planet/js/ProjectStorage.js:243 +msgid "anonymous" +msgstr "" + +#: planet/js/SaveInterface.js:34 +msgid "Open in Music Blocks" +msgstr "" + +#: planet/js/SaveInterface.js:35 +msgid "Open in Turtle Blocks" +msgstr "" + +#: planet/js/GlobalCard.js:68 +msgid "Share" +msgstr "" + +#: planet/js/GlobalCard.js:74 +msgid "Flags" +msgstr "" + +#: planet/js/GlobalPlanet.js:35 +msgid "No results found." +msgstr "" + +#: planet/js/GlobalPlanet.js:51 +msgid "Remix of" +msgstr "" + +#: planet/js/GlobalPlanet.js:509 +msgid "Cannot connect to server" msgstr "" -#: js/ProjectViewer.js:30 +#: planet/js/ProjectViewer.js:30 msgid "Error: Report could not be submitted. Try again later." msgstr "" -#: js/ProjectViewer.js:31 +#: planet/js/ProjectViewer.js:31 msgid "Thank you for reporting this project. A moderator will review the project shortly, to verify violation of the Sugar Labs Code of Conduct." msgstr "" -#: js/ProjectViewer.js:32 -#: js/StringHelper.js:62 -#: js/StringHelper.js:64 -#: js/StringHelper.js:68 +#: planet/js/ProjectViewer.js:32 +#: planet/js/StringHelper.js:62 +#: planet/js/StringHelper.js:64 +#: planet/js/StringHelper.js:68 msgid "Report Project" msgstr "" -#: js/ProjectViewer.js:33 -#: js/StringHelper.js:63 +#: planet/js/ProjectViewer.js:33 +#: planet/js/StringHelper.js:63 msgid "Project Reported" msgstr "" -#: js/ProjectViewer.js:34 +#: planet/js/ProjectViewer.js:34 msgid "Report description required" msgstr "" -#: js/ProjectViewer.js:35 +#: planet/js/ProjectViewer.js:35 msgid "Report description too long" msgstr "" -#: js/StringHelper.js:30 +#: planet/js/Publisher.js:30 +msgid "Feature unavailable - cannot connect to server. Reload Music Blocks to try again." +msgstr "" + +#: planet/js/Publisher.js:220 +#: planet/js/Publisher.js:237 +msgid "This field is required" +msgstr "" + +#: planet/js/Publisher.js:227 +msgid "Title too long" +msgstr "" + +#: planet/js/Publisher.js:244 +msgid "Description too long" +msgstr "" + +#: planet/js/Publisher.js:341 +msgid "Server Error" +msgstr "" + +#: planet/js/Publisher.js:341 +msgid "Try Again" +msgstr "" + +#: planet/js/StringHelper.js:30 msgid "Planet" msgstr "" -#: js/StringHelper.js:31 +#: planet/js/StringHelper.js:31 msgid "Close Planet" msgstr "" -#: js/StringHelper.js:32 +#: planet/js/StringHelper.js:32 msgid "Open project from file" msgstr "" -#: js/StringHelper.js:34 +#: planet/js/StringHelper.js:34 msgid "Local" msgstr "" -#: js/StringHelper.js:35 +#: planet/js/StringHelper.js:35 msgid "Global" msgstr "" -#: js/StringHelper.js:36 +#: planet/js/StringHelper.js:36 msgid "Search for a project" msgstr "" -#: js/StringHelper.js:38 +#: planet/js/StringHelper.js:38 msgid "Publish Project" msgstr "" -#: js/StringHelper.js:40 +#: planet/js/StringHelper.js:40 msgid "Tags (max 5)" msgstr "" -#: js/StringHelper.js:41 -#: js/StringHelper.js:61 +#: planet/js/StringHelper.js:41 +#: planet/js/StringHelper.js:61 msgid "Description" msgstr "" -#: js/StringHelper.js:42 -#: js/StringHelper.js:67 +#: planet/js/StringHelper.js:42 +#: planet/js/StringHelper.js:67 msgid "Submit" msgstr "" -#: js/StringHelper.js:43 -#: js/StringHelper.js:47 +#: planet/js/StringHelper.js:43 +#: planet/js/StringHelper.js:47 msgid "Cancel" msgstr "" -#: js/StringHelper.js:44 +#: planet/js/StringHelper.js:44 msgid "Delete \\"\\"?" msgstr "" -#: js/StringHelper.js:45 +#: planet/js/StringHelper.js:45 msgid "Permanently delete project \\"\\"?" msgstr "" -#: js/StringHelper.js:48 +#: planet/js/StringHelper.js:48 msgid "Explore Projects" msgstr "" -#: js/StringHelper.js:50 +#: planet/js/StringHelper.js:49 +#: planet/js/helper.js:149 +msgid "Show more tags" +msgstr "" + +#: planet/js/StringHelper.js:50 msgid "Most recent" msgstr "" -#: js/StringHelper.js:51 +#: planet/js/StringHelper.js:51 msgid "Most liked" msgstr "" -#: js/StringHelper.js:52 +#: planet/js/StringHelper.js:52 msgid "Most downloaded" msgstr "" -#: js/StringHelper.js:53 +#: planet/js/StringHelper.js:53 msgid "A-Z" msgstr "" -#: js/StringHelper.js:54 +#: planet/js/StringHelper.js:54 msgid "Sort by" msgstr "" -#: js/StringHelper.js:55 +#: planet/js/StringHelper.js:55 msgid "Load More Projects" msgstr "" -#: js/StringHelper.js:56 +#: planet/js/StringHelper.js:56 msgid "Last Updated" msgstr "" -#: js/StringHelper.js:57 +#: planet/js/StringHelper.js:57 msgid "Creation Date" msgstr "" -#: js/StringHelper.js:58 +#: planet/js/StringHelper.js:58 msgid "Number of Downloads:" msgstr "" -#: js/StringHelper.js:59 +#: planet/js/StringHelper.js:59 msgid "Number of Likes:" msgstr "" -#: js/StringHelper.js:60 +#: planet/js/StringHelper.js:60 msgid "Tags:" msgstr "" -#: js/StringHelper.js:65 +#: planet/js/StringHelper.js:65 msgid "Report projects which violate the Sugar Labs Code of Conduct." msgstr "" -#: js/StringHelper.js:66 +#: planet/js/StringHelper.js:66 msgid "Reason for reporting project" msgstr "" -#: js/StringHelper.js:70 +#: planet/js/StringHelper.js:70 msgid "Download as File" msgstr "" -#: js/GlobalPlanet.js:35 -msgid "No results found." -msgstr "" - -#: js/GlobalPlanet.js:51 -msgid "Remix of" -msgstr "" - -#: js/GlobalPlanet.js:509 -msgid "Cannot connect to server" -msgstr "" - -#: js/Publisher.js:30 -msgid "Feature unavailable - cannot connect to server. Reload Music Blocks to try again." -msgstr "" - -#: js/Publisher.js:218 -#: js/Publisher.js:235 -msgid "This field is required" -msgstr "" - -#: js/Publisher.js:225 -msgid "Title too long" +#: planet/js/helper.js:150 +msgid "Show fewer tags" msgstr "" -#: js/Publisher.js:242 -msgid "Description too long" +#: plugins/accelerometer.rtp:48 +msgid "motion x" msgstr "" -#: js/Publisher.js:339 -msgid "Server Error" +#: plugins/accelerometer.rtp:56 +msgid "motion y" msgstr "" -#: js/Publisher.js:339 -msgid "Try Again" +#: plugins/accelerometer.rtp:64 +msgid "motion z" msgstr "" -#: js/SaveInterface.js:34 -msgid "Open in Music Blocks" +#: plugins/facebook.rtp:27 +msgid "publish" msgstr "" -#: js/SaveInterface.js:35 -msgid "Open in Turtle Blocks" +#: plugins/maths.rtp:62 +msgid "power" msgstr "" -#: plugins/weather.rtp:68 -#: plugins/weather.rtp:97 -msgid "Days ahead must be in the range of -1 to 5." +#: plugins/maths.rtp:62 +msgid "base" msgstr "" -#: plugins/weather.rtp:122 -msgid "forecast" +#: plugins/maths.rtp:62 +msgid "exp" msgstr "" -#: plugins/weather.rtp:123 -#: plugins/weather.rtp:137 -#: plugins/weather.rtp:150 -msgid "city" +#: plugins/maths.rtp:99 +msgid "floor" msgstr "" -#: plugins/weather.rtp:124 -#: plugins/weather.rtp:138 -#: plugins/weather.rtp:151 -msgid "day" +#: plugins/maths.rtp:104 +msgid "ceiling" msgstr "" -#: plugins/weather.rtp:136 -msgid "high" +#: plugins/maths.rtp:109 +msgid "to degrees" msgstr "" -#: plugins/weather.rtp:149 -msgid "low" +#: plugins/maths.rtp:114 +msgid "to radians" msgstr "" #: plugins/nutrition.rtp:104 @@ -9458,45 +9867,6 @@ msgstr "" msgid "water" msgstr "" -#: plugins/maths.rtp:62 -#: plugins/examples.rtp:93 -msgid "power" -msgstr "" - -#: plugins/maths.rtp:62 -#: plugins/examples.rtp:93 -msgid "base" -msgstr "" - -#: plugins/maths.rtp:62 -#: plugins/examples.rtp:93 -msgid "exp" -msgstr "" - -#: plugins/maths.rtp:99 -#: plugins/examples.rtp:130 -msgid "floor" -msgstr "" - -#: plugins/maths.rtp:104 -#: plugins/examples.rtp:135 -msgid "ceiling" -msgstr "" - -#: plugins/maths.rtp:109 -#: plugins/examples.rtp:140 -msgid "to degrees" -msgstr "" - -#: plugins/maths.rtp:114 -#: plugins/examples.rtp:145 -msgid "to radians" -msgstr "" - -#: plugins/facebook.rtp:27 -msgid "publish" -msgstr "" - #: plugins/rodi.rtp:172 msgid "blink" msgstr "" @@ -9525,18 +9895,66 @@ msgstr "" msgid "move" msgstr "" -#: plugins/accelerometer.rtp:48 -msgid "motion x" +#: plugins/weather.rtp:68 +#: plugins/weather.rtp:97 +msgid "Days ahead must be in the range of -1 to 5." msgstr "" -#: plugins/accelerometer.rtp:56 -msgid "motion y" +#: plugins/weather.rtp:122 +msgid "forecast" msgstr "" -#: plugins/accelerometer.rtp:64 -msgid "motion z" +#: plugins/weather.rtp:123 +#: plugins/weather.rtp:137 +#: plugins/weather.rtp:150 +msgid "city" +msgstr "" + +#: plugins/weather.rtp:124 +#: plugins/weather.rtp:138 +#: plugins/weather.rtp:151 +msgid "day" +msgstr "" + +#: plugins/weather.rtp:136 +msgid "high" +msgstr "" + +#: plugins/weather.rtp:149 +msgid "low" msgstr "" +#: js/toolbar.js:70 + +#: js/toolbar.js:130 + +#: js/toolbar.js:194 + +#: js/toolbar.js:249 + +#~msgid "Toggle JavaScript Editor" +#~msgstr "" + +#: js/EnsembleBlocks.js:643 + +#~msgid "The Turrle pitch block returns the current pitch number being played by the specified turtle." +#~msgstr "" + +#: js/PitchActions.js:88 + +#~msgid "The Scalar Step Block must be used inside of a Note Block." +#~msgstr "" + +#: js/PitchActions.js:107 + +#~msgid "The Scalar Step Block must be preceded by a Pitch Block." +#~msgstr "" + +#: js/musickeyboard.js:2840 + +#~msgid "New action blocks generated!" +#~msgstr "" + #: js/toolbar.js:110 #: js/toolbar.js:204 @@ -9877,11 +10295,6 @@ msgstr "" #~msgid "The Time block returns the number of seconds that the program has been running." #~msgstr "" -#: js/help.js:95 - -#~msgid "Take a tour" -#~msgstr "" - #: js/GlobalCard.js:48 #~msgid "More Details" @@ -12780,11 +13193,6 @@ msgstr "" #~msgid "The save-stack button saves a stack onto a custom palette. It appears after a \"long press\" on a stack." #~msgstr "" -#: js/musicutils.js:254 - -#~msgid "Custom" -#~msgstr "" - #: js/basicblocks.js:4785 #~msgid "Rhythm" diff --git a/po/si.po b/po/si.po index 3ae5397d36..9768d6cae9 100644 --- a/po/si.po +++ b/po/si.po @@ -2132,276 +2132,131 @@ #: js/planetInterface.js:104 #: js/planetInterface.js:104 #: js/planetInterface.js:104 -msgid "project undefined" +#: js/SaveInterface.js:59 +#: js/SaveInterface.js:61 +#: js/SaveInterface.js:93 +msgid "Music Blocks Project" msgstr "" -#: js/logo.js:61 -msgid "Not a valid pitch name" +#: js/SaveInterface.js:63 +msgid "This project was created in Music Blocks" msgstr "" -#: js/logo.js:507 -#: js/ProgramBlocks.js:258 -#: js/ProgramBlocks.js:427 -msgid "You must select a file." +#: js/SaveInterface.js:67 +msgid "Music Blocks is a Free/Libre Software application." msgstr "" -#: js/logo.js:1184 -#: js/turtles.js:118 -#: js/turtle-painter.js:1192 -#: js/turtle-painter.js:1193 -#: js/block.js:1463 -#: js/lilypond.js:757 -#: js/lilypond.js:921 -#: js/lilypond.js:959 -#: js/ActionBlocks.js:1223 -#: js/ProgramBlocks.js:1267 -msgid "start" -msgstr "ආරම්භය" - -#: js/logo.js:1696 -msgid "Playback is ready." +#: js/SaveInterface.js:69 +msgid "The source code can be accessed at" msgstr "" -#: js/blocks.js:1011 -#: js/blocks.js:3427 -#: js/blocks.js:3428 -#: js/blocks.js:3653 -#: js/blocks.js:4012 -#: js/blocks.js:4205 -#: js/blocks.js:5343 -#: js/blocks.js:6474 -#: js/palette.js:527 -#: js/palette.js:536 -#: js/palette.js:545 -#: js/palette.js:554 -#: js/palette.js:1131 -#: js/palette.js:1142 -#: js/palette.js:1153 -#: js/palette.js:1164 -#: js/palette.js:1183 -#: js/rubrics.js:529 -#: js/macros.js:170 -#: js/macros.js:266 -#: js/macros.js:267 -#: js/macros.js:276 -#: js/macros.js:828 -#: js/block.js:1449 -#: js/block.js:4164 -#: js/block.js:4182 -#: js/block.js:4193 -#: js/turtledefs.js:128 -#: js/turtledefs.js:230 -#: js/ActionBlocks.js:254 -#: js/ActionBlocks.js:307 -#: js/ActionBlocks.js:617 -#: js/ActionBlocks.js:716 -#: js/ActionBlocks.js:961 -#: js/ActionBlocks.js:1049 -#: js/ActionBlocks.js:1322 -#: js/ActionBlocks.js:1325 -#: js/ActionBlocks.js:1337 -#: js/ActionBlocks.js:1404 -#: js/MeterBlocks.js:715 -#: js/MeterBlocks.js:768 -#: js/MeterBlocks.js:831 -#: js/MeterBlocks.js:892 -#: js/phrasemaker.js:4412 -#: js/musickeyboard.js:2647 -#: js/rhythmruler.js:1928 -#: js/rhythmruler.js:1935 -#: js/rhythmruler.js:2119 -#: js/rhythmruler.js:2126 -msgid "action" -msgstr "ක්‍රියාව" - -#: js/blocks.js:1205 -#: js/blocks.js:3380 -#: js/blocks.js:3770 -#: js/blocks.js:3801 -#: js/blocks.js:3850 -#: js/blocks.js:3885 -#: js/blocks.js:6497 -#: js/palette.js:509 -#: js/palette.js:638 -#: js/palette.js:1107 -#: js/BoxesBlocks.js:282 -#: js/BoxesBlocks.js:285 -#: js/BoxesBlocks.js:405 -#: js/BoxesBlocks.js:594 -msgid "box" -msgstr "පෙට්ටිය" - -#: js/blocks.js:1680 -msgid "Consider breaking this stack into parts." +#: js/SaveInterface.js:72 +msgid "For more information, please consult the" msgstr "" -#: js/blocks.js:2408 -#: js/palette.js:653 -#: js/MediaBlocks.js:602 -msgid "open file" +#: js/SaveInterface.js:76 +#: js/turtledefs.js:795 +msgid "Music Blocks Guide" msgstr "" -#: js/blocks.js:2415 -#: js/blocks.js:2423 -#: js/activity.js:1875 -msgid "audio file" +#: js/SaveInterface.js:83 +msgid "Alternatively, open the file in Music Blocks using the Load project button." msgstr "" -#: js/blocks.js:2536 -#: js/blocks.js:3147 -#: js/block.js:3543 -msgid "on2" +#: js/SaveInterface.js:85 +msgid "Project Code" msgstr "" -#: js/blocks.js:2538 -#: js/blocks.js:3149 -#: js/block.js:3545 -msgid "off" +#: js/SaveInterface.js:87 +msgid "This code stores data about the blocks in a project." msgstr "" -#: js/blocks.js:2543 -#: js/blocks.js:3154 -#: js/palette.js:618 -#: js/block.js:3466 -#: js/BooleanBlocks.js:77 -#: js/BooleanBlocks.js:167 -#: js/BooleanBlocks.js:251 -#: js/BooleanBlocks.js:335 -#: js/BooleanBlocks.js:433 -#: js/BooleanBlocks.js:539 -#: js/BooleanBlocks.js:640 -#: js/BooleanBlocks.js:741 -#: js/BooleanBlocks.js:847 -#: js/BooleanBlocks.js:948 -#: js/BooleanBlocks.js:1033 -#: js/SensorsBlocks.js:910 -msgid "true" +#: js/SaveInterface.js:89 +msgid "Show" msgstr "" -#: js/blocks.js:2545 -#: js/blocks.js:3156 -#: js/block.js:3466 -#: js/BooleanBlocks.js:79 -#: js/BooleanBlocks.js:169 -#: js/BooleanBlocks.js:253 -#: js/BooleanBlocks.js:337 -#: js/BooleanBlocks.js:435 -#: js/BooleanBlocks.js:541 -#: js/BooleanBlocks.js:642 -#: js/BooleanBlocks.js:743 -#: js/BooleanBlocks.js:849 -#: js/BooleanBlocks.js:950 -#: js/SensorsBlocks.js:912 -msgid "false" +#: js/SaveInterface.js:91 +msgid "Hide" msgstr "" -#: js/blocks.js:3183 -#: js/palette.js:574 -#: js/MediaBlocks.js:892 -#: js/MediaBlocks.js:963 -msgid "text" -msgstr "පෙළ" - -#: js/blocks.js:3379 -#: js/palette.js:641 -#: js/palette.js:642 -#: js/BoxesBlocks.js:514 -msgid "store in box" +#: js/SaveInterface.js:131 +#: js/SaveInterface.js:204 +#: js/SaveInterface.js:262 +#: js/SaveInterface.js:389 +#: js/SaveInterface.js:417 +#: js/activity.js:4884 +#: planet/js/ProjectStorage.js:27 +#: planet/js/GlobalPlanet.js:467 +#: planet/js/GlobalPlanet.js:469 +#: planet/js/GlobalPlanet.js:495 +#.TRANS: default project title when saving as Lilypond +msgid "My Project" msgstr "" -#: js/blocks.js:3384 -#: js/blocks.js:3824 -#: js/blocks.js:3859 -#: js/blocks.js:3894 -#: js/blocks.js:5773 -#: js/blocks.js:5794 -#: js/BoxesBlocks.js:772 -msgid "box1" +#: js/SaveInterface.js:197 +#: planet/js/SaveInterface.js:58 +msgid "No description provided" msgstr "" -#: js/blocks.js:3386 -#: js/blocks.js:3826 -#: js/blocks.js:3861 -#: js/blocks.js:3896 -#: js/blocks.js:5775 -#: js/blocks.js:5796 -#: js/BoxesBlocks.js:663 -msgid "box2" +#: js/SaveInterface.js:332 +msgid "Your recording is in progress." msgstr "" -#: js/blocks.js:4058 -#: js/palette.js:639 -#: js/palette.js:644 -#: js/palette.js:1043 -#: js/BoxesBlocks.js:591 -msgid "store in" -msgstr "මෙහි ගබඩා කරන්න" - -#: js/blocks.js:4058 -#: js/EnsembleBlocks.js:391 -#: js/EnsembleBlocks.js:402 -#: js/MediaBlocks.js:746 -#: js/ProgramBlocks.js:390 -#: js/ProgramBlocks.js:495 -#: js/ProgramBlocks.js:658 -#: js/BoxesBlocks.js:595 -#: js/PitchBlocks.js:656 -#: js/PitchBlocks.js:932 -#: js/PitchBlocks.js:1827 -#: js/ToneBlocks.js:1025 -#: js/DictBlocks.js:215 -#: js/DictBlocks.js:289 -msgid "name" +#: js/SaveInterface.js:401 +#.TRANS: File name prompt for save as Lilypond +msgid "File name" msgstr "" -#: js/blocks.js:4058 -#: js/RhythmBlocks.js:1130 -#: js/BoxesBlocks.js:75 -#: js/BoxesBlocks.js:595 -#: js/HeapBlocks.js:544 -#: js/DictBlocks.js:289 -#: js/DictBlocks.js:430 -msgid "value" -msgstr "අග" - -#: js/blocks.js:4907 -msgid "There is no block selected." +#: js/SaveInterface.js:403 +#: planet/js/StringHelper.js:39 +#.TRANS: Project title prompt for save as Lilypond +msgid "Project title" msgstr "" -#: js/blocks.js:5002 -#: js/MediaBlocks.js:888 -msgid "show" -msgstr "පෙන්වන්න" - -#: js/blocks.js:5005 -#: js/MediaBlocks.js:803 -#.TRANS: Avatar is the image used to determine the appearance of the mouse. -msgid "avatar" +#: js/SaveInterface.js:405 +#.TRANS: Project title prompt for save as Lilypond +msgid "Project author" msgstr "" -#: js/blocks.js:5008 -#: js/ToneBlocks.js:1010 -#: js/sampler.js:693 -#.TRANS: The sound sample that the user uploads. -msgid "sample" +#: js/SaveInterface.js:407 +#.TRANS: MIDI prompt for save as Lilypond +msgid "Include MIDI output?" msgstr "" -#: js/turtles.js:874 -msgid "Grid" +#: js/SaveInterface.js:409 +#.TRANS: Guitar prompt for save as Lilypond +msgid "Include guitar tablature output?" msgstr "" -#: js/turtles.js:891 -#: js/turtledefs.js:626 -msgid "Clean" -msgstr "පැහැදිලි කරන්න" +#: js/SaveInterface.js:411 +#.TRANS: Lilypond is a scripting language for generating sheet music +msgid "Save as Lilypond" +msgstr "" -#: js/turtles.js:912 -#: js/turtledefs.js:632 -msgid "Collapse" +#: js/SaveInterface.js:426 +#: js/blocks/EnsembleBlocks.js:75 +#: js/blocks/EnsembleBlocks.js:154 +#: js/blocks/EnsembleBlocks.js:216 +#: js/blocks/EnsembleBlocks.js:302 +#: js/blocks/EnsembleBlocks.js:348 +#: js/blocks/EnsembleBlocks.js:389 +#: js/blocks/EnsembleBlocks.js:441 +#: js/blocks/EnsembleBlocks.js:490 +#: js/blocks/EnsembleBlocks.js:536 +#: js/blocks/EnsembleBlocks.js:583 +#: js/blocks/EnsembleBlocks.js:637 +#: js/blocks/EnsembleBlocks.js:753 +#: js/blocks/EnsembleBlocks.js:840 +#: js/blocks/EnsembleBlocks.js:899 +#: js/blocks/EnsembleBlocks.js:942 +#: js/blocks/EnsembleBlocks.js:1212 +#: js/blocks/EnsembleBlocks.js:1280 +#.TRANS: default project author when saving as Lilypond +msgid "Mr. Mouse" msgstr "" -#: js/turtles.js:940 -msgid "Expand" +#: js/SaveInterface.js:573 +msgid "The Lilypond code is copied to clipboard. You can paste it here: " msgstr "" #: js/languagebox.js:198 @@ -2412,6933 +2267,7487 @@ msgstr "" msgid "Music Blocks is already set to this language." msgstr "" -#: js/piemenus.js:200 -#: js/musicutils.js:808 -#: js/musicutils.js:824 -#: js/phrasemaker.js:1672 -#: js/musickeyboard.js:2041 -#: js/sampler.js:544 -#.TRANS: double sharp is a music term related to pitch -msgid "double sharp" +#: js/planetInterface.js:131 +msgid "project undefined" msgstr "" -#: js/piemenus.js:201 -#: js/PitchBlocks.js:1510 -#: js/PitchActions.js:580 -#: js/musicutils.js:806 -#: js/musicutils.js:825 -#: js/phrasemaker.js:1673 -#: js/musickeyboard.js:2042 -#: js/sampler.js:545 -#.TRANS: sharp is a half-step up in pitch -#.TRANS: sharp is a music term related to pitch -msgid "sharp" +#: js/rubrics.js:523 +#: js/turtledefs.js:119 +#: js/turtledefs.js:221 +#: js/blocks/RhythmBlockPaletteBlocks.js:52 +#: js/blocks/RhythmBlockPaletteBlocks.js:234 +#: js/blocks/ProgramBlocks.js:745 +#: js/widgets/rhythmruler.js:2057 +#: js/widgets/rhythmruler.js:2064 +#: js/widgets/rhythmruler.js:2133 +#: js/widgets/rhythmruler.js:2140 +#: js/widgets/rhythmruler.js:2219 +#.TRANS: an arrangement of notes based on duration +msgid "rhythm" msgstr "" -#: js/piemenus.js:202 -#: js/musicutils.js:804 -#: js/musicutils.js:826 -#: js/phrasemaker.js:1674 -#: js/musickeyboard.js:2043 -#: js/sampler.js:546 -#.TRANS: natural is a music term related to pitch -msgid "natural" +#: js/rubrics.js:524 +#: js/turtledefs.js:121 +#: js/turtledefs.js:223 +#: js/block-verbose.js:2622 +#: js/block.js:2550 +#: js/blocks/IntervalsBlocks.js:63 +#: js/blocks/SensorsBlocks.js:178 +#: js/blocks/PitchBlocks.js:1839 +#: js/blocks/PitchBlocks.js:1853 +#: js/widgets/musickeyboard.js:1935 +#: js/widgets/phrasemaker.js:1036 +#.TRANS: pitch number +#.TRANS: pitch number +#.TRANS: we specify pitch in terms of a name and an octave. The name can be CDEFGAB or Do Re Mi Fa Sol La Ti. Octave is a number between 1 and 8. +msgid "pitch" msgstr "" -#: js/piemenus.js:203 -#: js/PitchBlocks.js:1469 -#: js/PitchActions.js:583 -#: js/musicutils.js:802 -#: js/musicutils.js:827 -#: js/phrasemaker.js:1675 -#: js/musickeyboard.js:2044 -#: js/sampler.js:547 -#.TRANS: flat is a half-step down in pitch -#.TRANS: flat is a music term related to pitch -msgid "flat" +#: js/rubrics.js:525 +#: js/turtledefs.js:123 +#: js/turtledefs.js:225 +msgid "tone" msgstr "" -#: js/piemenus.js:204 -#: js/musicutils.js:800 -#: js/musicutils.js:828 -#: js/phrasemaker.js:1676 -#: js/musickeyboard.js:2045 -#: js/sampler.js:548 -#.TRANS: double flat is a music term related to pitch -msgid "double flat" +#: js/rubrics.js:526 +#: js/lilypond.js:605 +#: js/lilypond.js:904 +#: js/lilypond.js:910 +#: js/lilypond.js:948 +msgid "mouse" msgstr "" -#: js/piemenus.js:2861 -#: js/PitchBlocks.js:1357 -#: js/musicutils.js:627 -#.TRANS: unison means the note is the same as the current note -#.TRANS: unison is a music term related to intervals -msgid "unison" -msgstr "" +#: js/rubrics.js:527 +#: js/turtledefs.js:132 +#: js/turtledefs.js:234 +#: js/widgets/phrasemaker.js:1040 +msgid "pen" +msgstr "විවෘත කරන්න" -#: js/piemenus.js:3015 -#: js/piemenus.js:3088 -#: js/musicutils.js:635 -#: js/musicutils.js:810 -#: js/musicutils.js:912 -#.TRANS: major is a music term related to intervals and mode -msgid "major" -msgstr "" +#: js/rubrics.js:528 +#: js/turtledefs.js:133 +#: js/turtledefs.js:235 +#: js/blocks/NumberBlocks.js:981 +#: js/blocks/PitchBlocks.js:1717 +#: js/blocks/PitchBlocks.js:1758 +msgid "number" +msgstr "අංකය" -#: js/piemenus.js:3015 -#: js/piemenus.js:3088 -#: js/musicutils.js:653 -#.TRANS: modal scale for music -msgid "ionian" -msgstr "" +#: js/rubrics.js:529 +#: js/turtledefs.js:127 +#: js/turtledefs.js:229 +msgid "flow" +msgstr "ගලනවා" -#: js/piemenus.js:3017 -#: js/piemenus.js:3092 -#: js/musicutils.js:633 -#: js/musicutils.js:811 -#: js/musicutils.js:909 -#.TRANS: minor is a music term related to intervals and mode -msgid "minor" -msgstr "" +#: js/rubrics.js:530 +#: js/turtledefs.js:128 +#: js/turtledefs.js:230 +#: js/block-verbose.js:1609 +#: js/block-verbose.js:4559 +#: js/block-verbose.js:4577 +#: js/block-verbose.js:4588 +#: js/block.js:1573 +#: js/block.js:4483 +#: js/block.js:4501 +#: js/block.js:4512 +#: js/blocks.js:1018 +#: js/blocks.js:3491 +#: js/blocks.js:3492 +#: js/blocks.js:3717 +#: js/blocks.js:4076 +#: js/blocks.js:4269 +#: js/blocks.js:5432 +#: js/blocks.js:6563 +#: js/macros.js:170 +#: js/macros.js:266 +#: js/macros.js:267 +#: js/macros.js:276 +#: js/macros.js:828 +#: js/palette.js:527 +#: js/palette.js:536 +#: js/palette.js:545 +#: js/palette.js:554 +#: js/palette.js:1129 +#: js/palette.js:1140 +#: js/palette.js:1151 +#: js/palette.js:1162 +#: js/palette.js:1181 +#: js/blocks/ActionBlocks.js:254 +#: js/blocks/ActionBlocks.js:307 +#: js/blocks/ActionBlocks.js:617 +#: js/blocks/ActionBlocks.js:716 +#: js/blocks/ActionBlocks.js:961 +#: js/blocks/ActionBlocks.js:1049 +#: js/blocks/ActionBlocks.js:1322 +#: js/blocks/ActionBlocks.js:1325 +#: js/blocks/ActionBlocks.js:1337 +#: js/blocks/ActionBlocks.js:1404 +#: js/blocks/MeterBlocks.js:715 +#: js/blocks/MeterBlocks.js:768 +#: js/blocks/MeterBlocks.js:831 +#: js/blocks/MeterBlocks.js:892 +#: js/widgets/musickeyboard.js:2986 +#: js/widgets/phrasemaker.js:4913 +#: js/widgets/rhythmruler.js:2319 +#: js/widgets/rhythmruler.js:2326 +#: js/widgets/rhythmruler.js:2511 +#: js/widgets/rhythmruler.js:2518 +msgid "action" +msgstr "ක්‍රියාව" -#: js/piemenus.js:3017 -#: js/piemenus.js:3092 -#: js/musicutils.js:663 -#.TRANS: modal scale for music -msgid "aeolian" +#: js/rubrics.js:531 +#: js/turtledefs.js:136 +#: js/turtledefs.js:238 +msgid "sensors" msgstr "" -#: js/piemenus.js:3407 -msgid "Duplicate" +#: js/rubrics.js:532 +#: js/turtledefs.js:135 +#: js/turtledefs.js:237 +#: js/blocks/MediaBlocks.js:930 +msgid "media" msgstr "" -#: js/piemenus.js:3408 -#: js/turtledefs.js:534 -msgid "Extract" +#: js/rubrics.js:533 +msgid "mice" msgstr "" -#: js/piemenus.js:3409 -msgid "Move to trash" +#: js/toolbar.js:48 +#: js/toolbar.js:109 +msgid "About Music Blocks" msgstr "" -#: js/piemenus.js:3410 -#: js/timbre.js:968 -#: js/StringHelper.js:69 -msgid "Close" +#: js/toolbar.js:49 +#: js/toolbar.js:110 +#: js/toolbar.js:175 +#: js/toolbar.js:231 +#: js/turtledefs.js:445 +#: js/turtledefs.js:482 +#: js/activity.js:2660 +#: js/activity.js:2671 +#: js/activity.js:2902 +#: js/widgets/modewidget.js:77 +#: js/widgets/meterwidget.js:185 +#: js/widgets/pitchdrummatrix.js:147 +#: js/widgets/pitchdrummatrix.js:687 +#: js/widgets/pitchdrummatrix.js:689 +#: js/widgets/pitchdrummatrix.js:741 +#: js/widgets/pitchdrummatrix.js:743 +#: js/widgets/pitchdrummatrix.js:758 +#: js/widgets/pitchdrummatrix.js:760 +#: js/widgets/pitchdrummatrix.js:789 +#: js/widgets/pitchdrummatrix.js:791 +#: js/widgets/pitchstaircase.js:121 +#: js/widgets/temperament.js:610 +#: js/widgets/temperament.js:613 +#: js/widgets/temperament.js:673 +#: js/widgets/temperament.js:675 +#: js/widgets/temperament.js:2017 +#: js/widgets/temperament.js:2019 +#: js/widgets/tempo.js:84 +#: js/widgets/tempo.js:86 +#: js/widgets/timbre.js:432 +#: js/widgets/timbre.js:434 +#: js/widgets/timbre.js:465 +#: js/widgets/timbre.js:467 +#: js/widgets/timbre.js:746 +#: js/widgets/aiwidget.js:647 +#: js/widgets/aiwidget.js:654 +#: js/widgets/aiwidget.js:656 +#: js/widgets/arpeggio.js:90 +#: js/widgets/arpeggio.js:547 +#: js/widgets/arpeggio.js:549 +#: js/widgets/arpeggio.js:644 +#: js/widgets/arpeggio.js:646 +#: js/widgets/musickeyboard.js:676 +#: js/widgets/musickeyboard.js:872 +#: js/widgets/musickeyboard.js:874 +#: js/widgets/musickeyboard.js:953 +#: js/widgets/musickeyboard.js:955 +#: js/widgets/phrasemaker.js:513 +#: js/widgets/phrasemaker.js:523 +#: js/widgets/phrasemaker.js:525 +#: js/widgets/phrasemaker.js:4304 +#: js/widgets/phrasemaker.js:4528 +#: js/widgets/phrasemaker.js:4533 +#: js/widgets/phrasemaker.js:4535 +#: js/widgets/phrasemaker.js:4650 +#: js/widgets/rhythmruler.js:637 +#: js/widgets/rhythmruler.js:639 +#: js/widgets/rhythmruler.js:653 +#: js/widgets/rhythmruler.js:655 +#: js/widgets/sampler.js:162 +#: js/widgets/sampler.js:164 +#: js/widgets/sampler.js:363 +msgid "Play" msgstr "" -#: js/piemenus.js:3416 -msgid "Save stack" -msgstr "" +#: js/toolbar.js:50 +#: js/toolbar.js:111 +#: js/toolbar.js:176 +#: js/toolbar.js:232 +#: js/turtledefs.js:451 +#: js/turtledefs.js:488 +#: js/activity.js:2679 +#: js/widgets/modewidget.js:99 +#: js/widgets/modewidget.js:101 +#: js/widgets/meterwidget.js:206 +#: js/widgets/meterwidget.js:208 +#: js/widgets/pitchdrummatrix.js:674 +#: js/widgets/pitchdrummatrix.js:676 +#: js/widgets/temperament.js:2002 +#: js/widgets/temperament.js:2004 +#: js/widgets/arpeggio.js:534 +#: js/widgets/arpeggio.js:536 +#: js/widgets/phrasemaker.js:534 +#: js/widgets/phrasemaker.js:536 +msgid "Stop" +msgstr "පියවර" -#: js/piemenus.js:3420 -#: js/toolbar.js:60 -#: js/toolbar.js:120 -#: js/toolbar.js:185 -#: js/toolbar.js:240 +#: js/toolbar.js:51 +#: js/toolbar.js:112 +#: js/toolbar.js:177 +#: js/toolbar.js:233 +#: js/turtledefs.js:498 +msgid "Record" +msgstr "" + +#: js/toolbar.js:52 +#: js/toolbar.js:53 +msgid "Full screen" +msgstr "" + +#: js/toolbar.js:54 +#: js/toolbar.js:115 +#: js/toolbar.js:180 +#: js/toolbar.js:236 +#: js/turtledefs.js:504 +msgid "Toggle Fullscreen" +msgstr "" + +#: js/toolbar.js:55 +#: js/toolbar.js:116 +#: js/toolbar.js:181 +#: js/toolbar.js:237 +#: js/turtledefs.js:510 +#: planet/js/StringHelper.js:33 +msgid "New project" +msgstr "" + +#: js/toolbar.js:56 +#: js/toolbar.js:117 +#: js/toolbar.js:182 +#: js/toolbar.js:238 +#: js/turtledefs.js:516 +msgid "Load project from file" +msgstr "" + +#: js/toolbar.js:57 +#: js/toolbar.js:118 +#: js/toolbar.js:119 +#: js/toolbar.js:183 +#: js/toolbar.js:239 +#: js/turtledefs.js:541 +#: js/turtledefs.js:550 +#: js/turtledefs.js:571 +msgid "Save project" +msgstr "" + +#: js/toolbar.js:58 +#: js/toolbar.js:77 +#: js/toolbar.js:79 +#: js/toolbar.js:138 +#: js/toolbar.js:147 +#: js/toolbar.js:149 +#: js/toolbar.js:184 +#: js/toolbar.js:202 +#: js/toolbar.js:204 +#: js/toolbar.js:240 +#: js/toolbar.js:258 +#: js/toolbar.js:260 +msgid "Save project as HTML" +msgstr "" + +#: js/toolbar.js:59 +#: js/toolbar.js:120 +#: js/toolbar.js:185 +#: js/toolbar.js:241 +msgid "Find and share projects" +msgstr "" + +#: js/toolbar.js:60 +#: js/toolbar.js:121 +#: js/toolbar.js:186 +#: js/toolbar.js:242 +msgid "Offline. Sharing is unavailable" +msgstr "" + +#: js/toolbar.js:61 +#: js/toolbar.js:122 +#: js/toolbar.js:187 +#: js/toolbar.js:243 +msgid "Auxiliary menu" +msgstr "" + +#: js/toolbar.js:62 +#: js/toolbar.js:123 +#: js/toolbar.js:188 +#: js/toolbar.js:244 #: js/turtledefs.js:752 +#: js/piemenus.js:3423 msgid "Help" msgstr "උදව්" -#: js/piemenus.js:3762 -msgid "You have chosen key " +#: js/toolbar.js:63 +#: js/toolbar.js:124 +#: js/toolbar.js:189 +#: js/toolbar.js:245 +msgid "Run slowly" +msgstr "" + +#: js/toolbar.js:64 +#: js/toolbar.js:125 +#: js/toolbar.js:190 +#: js/toolbar.js:246 +#: js/turtledefs.js:682 +msgid "Run step by step" +msgstr "" + +#: js/toolbar.js:65 +#: js/toolbar.js:126 +#: js/toolbar.js:191 +#: js/toolbar.js:247 +#: js/turtledefs.js:689 +msgid "Display statistics" +msgstr "" + +#: js/toolbar.js:66 +#: js/toolbar.js:127 +#: js/toolbar.js:192 +#: js/toolbar.js:248 +msgid "Load plugin" +msgstr "" + +#: js/toolbar.js:67 +#: js/toolbar.js:128 +#: js/toolbar.js:193 +#: js/toolbar.js:249 +#: js/turtledefs.js:696 +msgid "Delete plugin" +msgstr "" + +#: js/toolbar.js:68 +#: js/toolbar.js:129 +#: js/toolbar.js:194 +#: js/toolbar.js:250 +msgid "Enable horizontal scrolling" +msgstr "" + +#: js/toolbar.js:69 +#: js/toolbar.js:130 +#: js/toolbar.js:195 +#: js/toolbar.js:251 +msgid "Disable horizontal scrolling" +msgstr "" + +#: js/toolbar.js:70 +#: js/toolbar.js:131 +#: js/toolbar.js:196 +#: js/toolbar.js:252 +#: planet/js/LocalCard.js:54 +#: planet/js/StringHelper.js:71 +msgid "Merge with current project" +msgstr "" + +#: js/toolbar.js:71 +#: js/toolbar.js:132 +msgid "Set Pitch Preview" +msgstr "" + +#: js/toolbar.js:72 +#: js/toolbar.js:133 +#: js/toolbar.js:197 +#: js/toolbar.js:253 +msgid "JavaScript Editor" +msgstr "" + +#: js/toolbar.js:73 +#: js/toolbar.js:134 +#: js/toolbar.js:198 +#: js/toolbar.js:254 +#: js/turtledefs.js:724 +msgid "Restore" +msgstr "" + +#: js/toolbar.js:74 +#: js/toolbar.js:135 +#: js/toolbar.js:199 +#: js/toolbar.js:255 +msgid "Switch to beginner mode" +msgstr "" + +#: js/toolbar.js:75 +#: js/toolbar.js:136 +#: js/toolbar.js:200 +#: js/toolbar.js:256 +msgid "Switch to advanced mode" +msgstr "" + +#: js/toolbar.js:76 +#: js/toolbar.js:137 +#: js/toolbar.js:146 +#: js/toolbar.js:201 +#: js/toolbar.js:257 +#: js/turtledefs.js:738 +msgid "Select language" +msgstr "" + +#: js/toolbar.js:78 +#: js/toolbar.js:81 +#: js/toolbar.js:140 +#: js/turtledefs.js:579 +msgid "Save mouse artwork as PNG" +msgstr "" + +#: js/toolbar.js:80 +#: js/toolbar.js:139 +#: js/turtledefs.js:575 +msgid "Save mouse artwork as SVG" +msgstr "" + +#: js/toolbar.js:82 +#: js/toolbar.js:141 +#: js/turtledefs.js:583 +msgid "Save music as WAV" +msgstr "" + +#: js/toolbar.js:83 +#: js/toolbar.js:142 +#: js/turtledefs.js:587 +msgid "Save sheet music as ABC" +msgstr "" + +#: js/toolbar.js:84 +#: js/toolbar.js:143 +#: js/turtledefs.js:591 +msgid "Save sheet music as Lilypond" +msgstr "" + +#: js/toolbar.js:85 +msgid "Save sheet music as MusicXML" +msgstr "" + +#: js/toolbar.js:86 +#: js/toolbar.js:144 +#: js/toolbar.js:152 +#: js/toolbar.js:207 +#: js/toolbar.js:263 +#: js/turtledefs.js:562 +#: js/turtledefs.js:595 +msgid "Save block artwork as SVG" +msgstr "" + +#: js/toolbar.js:87 +#: js/toolbar.js:145 +#: js/toolbar.js:153 +#: js/toolbar.js:208 +#: js/toolbar.js:264 +#: js/turtles.js:911 +msgid "Confirm" +msgstr "" + +#: js/toolbar.js:88 +#: js/toolbar.js:154 +#: js/toolbar.js:209 +#: js/toolbar.js:265 +msgid "English (United States)" +msgstr "" + +#: js/toolbar.js:89 +#: js/toolbar.js:155 +#: js/toolbar.js:210 +#: js/toolbar.js:266 +msgid "English (United Kingdom)" +msgstr "" + +#: js/toolbar.js:90 +#: js/toolbar.js:156 +#: js/toolbar.js:211 +#: js/toolbar.js:267 +msgid "日本語" +msgstr "" + +#: js/toolbar.js:91 +msgid "한국어" +msgstr "" + +#: js/toolbar.js:92 +#: js/toolbar.js:158 +#: js/toolbar.js:213 +#: js/toolbar.js:269 +msgid "español" +msgstr "" + +#: js/toolbar.js:93 +#: js/toolbar.js:159 +#: js/toolbar.js:214 +#: js/toolbar.js:270 +msgid "português" +msgstr "" + +#: js/toolbar.js:94 +#: js/toolbar.js:160 +#: js/toolbar.js:215 +#: js/toolbar.js:271 +msgid "にほんご" +msgstr "" + +#: js/toolbar.js:95 +#: js/toolbar.js:161 +#: js/toolbar.js:216 +#: js/toolbar.js:272 +msgid "中文" +msgstr "" + +#: js/toolbar.js:96 +#: js/toolbar.js:162 +#: js/toolbar.js:217 +#: js/toolbar.js:273 +msgid "ภาษาไทย" +msgstr "" + +#: js/toolbar.js:97 +#: js/toolbar.js:163 +#: js/toolbar.js:218 +#: js/toolbar.js:274 +msgid "aymara" +msgstr "" + +#: js/toolbar.js:98 +#: js/toolbar.js:164 +#: js/toolbar.js:219 +#: js/toolbar.js:275 +msgid "quechua" +msgstr "" + +#: js/toolbar.js:99 +#: js/toolbar.js:165 +#: js/toolbar.js:220 +#: js/toolbar.js:276 +msgid "guarani" +msgstr "" + +#: js/toolbar.js:100 +#: js/toolbar.js:166 +#: js/toolbar.js:221 +#: js/toolbar.js:277 +msgid "हिंदी" +msgstr "" + +#: js/toolbar.js:101 +#: js/toolbar.js:168 +#: js/toolbar.js:222 +#: js/toolbar.js:279 +msgid "igbo" +msgstr "" + +#: js/toolbar.js:102 +#: js/toolbar.js:169 +#: js/toolbar.js:223 +#: js/toolbar.js:280 +msgid "عربى" +msgstr "" + +#: js/toolbar.js:103 +#: js/toolbar.js:167 +#: js/toolbar.js:224 +#: js/toolbar.js:278 +msgid "తెలుగు" +msgstr "" + +#: js/toolbar.js:104 +#: js/toolbar.js:170 +#: js/toolbar.js:225 +#: js/toolbar.js:281 +msgid "עִברִית" +msgstr "" + +#: js/toolbar.js:113 +#: js/toolbar.js:114 +#: js/toolbar.js:178 +#: js/toolbar.js:179 +#: js/toolbar.js:234 +#: js/toolbar.js:235 +msgid "Full Screen" +msgstr "" + +#: js/toolbar.js:148 +#: js/toolbar.js:151 +#: js/toolbar.js:203 +#: js/toolbar.js:206 +#: js/toolbar.js:259 +#: js/toolbar.js:262 +#: js/turtledefs.js:558 +msgid "Save turtle artwork as PNG" +msgstr "" + +#: js/toolbar.js:150 +#: js/toolbar.js:205 +#: js/toolbar.js:261 +#: js/turtledefs.js:554 +msgid "Save turtle artwork as SVG" +msgstr "" + +#: js/toolbar.js:157 +#: js/toolbar.js:212 +#: js/toolbar.js:268 +msgid "한국인" +msgstr "" + +#: js/toolbar.js:174 +#: js/toolbar.js:230 +msgid "About Turtle Blocks" +msgstr "" + +#: js/toolbar.js:446 +#: js/toolbar.js:457 +#: js/toolbar.js:497 +msgid "Turtle Wrap Off" +msgstr "" + +#: js/toolbar.js:466 +#: js/toolbar.js:506 +msgid "Turtle Wrap On" +msgstr "" + +#: js/turtle-painter.js:1192 +#: js/turtle-painter.js:1193 +#: js/turtles.js:118 +#: js/block-verbose.js:1623 +#: js/block.js:1587 +#: js/lilypond.js:749 +#: js/lilypond.js:913 +#: js/lilypond.js:951 +#: js/logo.js:1184 +#: js/blocks/ActionBlocks.js:1223 +#: js/blocks/ProgramBlocks.js:1267 +msgid "start" +msgstr "ආරම්භය" + +#: js/turtledefs.js:40 +#.TRANS: put the URL to the guide here, e.g., https://github.com/sugarlabs/turtleblocksjs/tree/master/guide/README.md +msgid "guide url" +msgstr "" + +#: js/turtledefs.js:85 +#: js/turtledefs.js:437 +msgid "Turtle Blocks is a Logo-inspired turtle that draws colorful pictures with snap-together visual-programming blocks." +msgstr "" + +#: js/turtledefs.js:118 +#: js/turtledefs.js:220 +msgid "search" +msgstr "" + +#: js/turtledefs.js:120 +#: js/turtledefs.js:222 +#: js/blocks/MeterBlocks.js:1343 +#: js/blocks/WidgetBlocks.js:522 +#.TRANS: musical meter (time signature), e.g., 4:4 +msgid "meter" +msgstr "" + +#: js/turtledefs.js:122 +#: js/turtledefs.js:224 +msgid "intervals" +msgstr "" + +#: js/turtledefs.js:124 +#: js/turtledefs.js:226 +msgid "ornament" +msgstr "" + +#: js/turtledefs.js:125 +#: js/turtledefs.js:227 +#: js/blocks/VolumeBlocks.js:362 +#: js/blocks/VolumeBlocks.js:502 +#: js/blocks/VolumeBlocks.js:545 +msgid "volume" +msgstr "" + +#: js/turtledefs.js:126 +#: js/turtledefs.js:228 +#: js/block-verbose.js:1700 +#: js/block-verbose.js:2626 +#: js/block.js:1664 +#: js/block.js:2554 +#: js/lilypond.js:732 +#: js/lilypond.js:897 +#: js/lilypond.js:941 +#: js/palette.js:577 +#: js/blocks/RhythmBlocks.js:766 +#: js/blocks/DrumBlocks.js:477 +#: js/blocks/VolumeBlocks.js:502 +#: js/widgets/phrasemaker.js:1038 +msgid "drum" +msgstr "" + +#: js/turtledefs.js:129 +#: js/turtledefs.js:231 +msgid "boxes" +msgstr "" + +#: js/turtledefs.js:130 +#: js/turtledefs.js:232 +msgid "widgets" +msgstr "" + +#: js/turtledefs.js:131 +#: js/turtledefs.js:233 +#: js/widgets/phrasemaker.js:1039 +msgid "graphics" +msgstr "" + +#: js/turtledefs.js:134 +#: js/turtledefs.js:236 +msgid "boolean" +msgstr "" + +#: js/turtledefs.js:137 +#: js/turtledefs.js:239 +#: js/blocks/HeapBlocks.js:59 +#: js/widgets/status.js:147 +msgid "heap" +msgstr "" + +#: js/turtledefs.js:138 +#: js/turtledefs.js:240 +#: js/blocks/DictBlocks.js:142 +#: js/blocks/ProgramBlocks.js:495 +msgid "dictionary" +msgstr "" + +#: js/turtledefs.js:139 +#: js/turtledefs.js:241 +msgid "ensemble" +msgstr "" + +#: js/turtledefs.js:140 +#: js/turtledefs.js:242 +msgid "extras" +msgstr "" + +#: js/turtledefs.js:142 +#: js/turtledefs.js:244 +#.TRANS: program as in computer program +#.TRANS: program as in computer program +msgid "program" +msgstr "" + +#: js/turtledefs.js:143 +#: js/turtledefs.js:245 +msgid "my blocks" +msgstr "" + +#: js/turtledefs.js:185 +#: js/turtledefs.js:281 +msgid "artwork" +msgstr "" + +#: js/turtledefs.js:185 +#: js/turtledefs.js:281 +msgid "logic" +msgstr "" + +#: js/turtledefs.js:185 +#: js/turtledefs.js:281 +msgid "music" msgstr "" -#: js/piemenus.js:3766 -msgid " for your pitch preview." +#: js/turtledefs.js:187 +#: js/turtledefs.js:463 +msgid "Music Blocks is a collection of tools for exploring fundamental musical concepts in a fun way." msgstr "" -#: js/palette.js:571 -msgid "grid" +#: js/turtledefs.js:436 +msgid "Welcome to Turtle Blocks" msgstr "" -#: js/palette.js:577 -#: js/block.js:1540 -#: js/block.js:2343 -#: js/turtledefs.js:126 -#: js/turtledefs.js:228 -#: js/lilypond.js:740 -#: js/lilypond.js:905 -#: js/lilypond.js:949 -#: js/DrumBlocks.js:486 -#: js/RhythmBlocks.js:766 -#: js/VolumeBlocks.js:502 -#: js/phrasemaker.js:823 -msgid "drum" +#: js/turtledefs.js:438 +#: js/turtledefs.js:465 +#: js/turtledefs.js:774 +#: js/turtledefs.js:805 +msgid "The current version is" msgstr "" -#: js/palette.js:580 -msgid "effect" +#: js/turtledefs.js:446 +#: js/turtledefs.js:483 +msgid "Click the run button to run the project in fast mode." msgstr "" -#: js/palette.js:586 -msgid "sargam" +#: js/turtledefs.js:452 +msgid "Stop the turtle." msgstr "" -#: js/palette.js:589 -#: js/activity.js:1833 -#: js/RhythmBlocks.js:923 -#: js/PitchBlocks.js:442 -#: js/PitchBlocks.js:1748 -#.TRANS: a numeric mapping of the notes in an octave based on the musical mode -msgid "scale degree" +#: js/turtledefs.js:454 +#: js/turtledefs.js:491 +msgid "You can also type Alt-S to stop." msgstr "" -#: js/palette.js:592 -#: js/activity.js:1860 -msgid "mode name" +#: js/turtledefs.js:462 +#: js/widgets/help.js:333 +msgid "Welcome to Music Blocks" msgstr "" -#: js/palette.js:595 -#: js/activity.js:1839 -msgid "invert mode" +#: js/turtledefs.js:472 +#: js/widgets/help.js:334 +msgid "Meet Mr. Mouse!" msgstr "" -#: js/palette.js:598 -#: js/activity.js:1836 -msgid "voice name" +#: js/turtledefs.js:473 +msgid "Mr Mouse is our Music Blocks conductor." msgstr "" -#: js/palette.js:601 -#: js/PitchBlocks.js:1181 -msgid "custom pitch" +#: js/turtledefs.js:475 +msgid "Mr Mouse encourages you to explore Music Blocks." msgstr "" -#: js/palette.js:605 -#: js/block.js:1456 -#: js/block.js:1575 -#: js/WidgetBlocks.js:218 -#: js/IntervalsBlocks.js:63 -msgid "temperament" +#: js/turtledefs.js:477 +msgid "Let us start our tour!" msgstr "" -#: js/palette.js:609 -msgid "accidental" +#: js/turtledefs.js:489 +msgid "Stop the music (and the mice)." msgstr "" -#: js/palette.js:615 -#: js/activity.js:1866 -msgid "interval name" +#: js/turtledefs.js:499 +msgid "Record your project as video." msgstr "" -#: js/palette.js:633 -#: js/PitchBlocks.js:405 -msgid "pitch converter" +#: js/turtledefs.js:505 +msgid "Toggle Fullscreen mode." msgstr "" -#: js/rubrics.js:522 -#: js/turtledefs.js:119 -#: js/turtledefs.js:221 -#: js/RhythmBlockPaletteBlocks.js:52 -#: js/RhythmBlockPaletteBlocks.js:233 -#: js/ProgramBlocks.js:745 -#: js/rhythmruler.js:1670 -#: js/rhythmruler.js:1677 -#: js/rhythmruler.js:1745 -#: js/rhythmruler.js:1752 -#: js/rhythmruler.js:1830 -#.TRANS: an arrangement of notes based on duration -msgid "rhythm" +#: js/turtledefs.js:511 +msgid "Initialize a new project." msgstr "" -#: js/rubrics.js:523 -#: js/block.js:2339 -#: js/turtledefs.js:121 -#: js/turtledefs.js:223 -#: js/IntervalsBlocks.js:63 -#: js/PitchBlocks.js:1801 -#: js/PitchBlocks.js:1814 -#: js/SensorsBlocks.js:178 -#: js/phrasemaker.js:821 -#: js/musickeyboard.js:1653 -#.TRANS: pitch number -#.TRANS: we specify pitch in terms of a name and an octave. The name can be CDEFGAB or Do Re Mi Fa Sol La Ti. Octave is a number between 1 and 8. -msgid "pitch" +#: js/turtledefs.js:517 +msgid "You can also load projects from the file system." msgstr "" -#: js/rubrics.js:524 -#: js/turtledefs.js:123 -#: js/turtledefs.js:225 -msgid "tone" +#: js/turtledefs.js:522 +#: planet/js/StringHelper.js:46 +msgid "Delete" msgstr "" -#: js/rubrics.js:525 -#: js/lilypond.js:613 -#: js/lilypond.js:912 -#: js/lilypond.js:918 -#: js/lilypond.js:956 -msgid "mouse" +#: js/turtledefs.js:523 +msgid "To delete a block, just right-click on it, then you will be able to see the delete option" msgstr "" -#: js/rubrics.js:526 -#: js/turtledefs.js:132 -#: js/turtledefs.js:234 -#: js/phrasemaker.js:825 -msgid "pen" -msgstr "විවෘත කරන්න" +#: js/turtledefs.js:528 +#: js/activity.js:2649 +#: planet/js/LocalCard.js:31 +msgid "Copy" +msgstr "පිටපත් කරන්න" -#: js/rubrics.js:527 -#: js/turtledefs.js:133 -#: js/turtledefs.js:235 -#: js/NumberBlocks.js:905 -#: js/PitchBlocks.js:1679 -#: js/PitchBlocks.js:1720 -msgid "number" -msgstr "අංකය" +#: js/turtledefs.js:529 +msgid "To copy a block, just right-click on it, then you will be able to see the copy option" +msgstr "" -#: js/rubrics.js:528 -#: js/turtledefs.js:127 -#: js/turtledefs.js:229 -msgid "flow" -msgstr "ගලනවා" +#: js/turtledefs.js:534 +#: js/piemenus.js:3411 +msgid "Extract" +msgstr "" -#: js/rubrics.js:530 -#: js/turtledefs.js:136 -#: js/turtledefs.js:238 -msgid "sensors" +#: js/turtledefs.js:535 +msgid "To extract a block, just right-click on it, then you will be able to see the extract option" msgstr "" -#: js/rubrics.js:531 -#: js/turtledefs.js:135 -#: js/turtledefs.js:237 -#: js/MediaBlocks.js:930 -msgid "media" +#: js/turtledefs.js:542 +#: js/turtledefs.js:552 +#: js/turtledefs.js:573 +msgid "Save your project to a file." msgstr "" -#: js/rubrics.js:532 -msgid "mice" +#: js/turtledefs.js:549 +#: js/turtledefs.js:570 +msgid "save" msgstr "" -#: js/macros.js:711 -#: js/musicutils.js:783 -#: js/synthutils.js:181 -#.TRANS: animal sound effect -msgid "duck" +#: js/turtledefs.js:556 +#: js/turtledefs.js:577 +msgid "Save graphics from your project to as SVG." msgstr "" -#: js/toolbar.js:46 -#: js/toolbar.js:107 -msgid "About Music Blocks" +#: js/turtledefs.js:560 +#: js/turtledefs.js:581 +msgid "Save graphics from your project as PNG." msgstr "" -#: js/toolbar.js:47 -#: js/toolbar.js:108 -#: js/toolbar.js:172 -#: js/toolbar.js:228 -#: js/turtledefs.js:445 -#: js/turtledefs.js:482 -#: js/activity.js:2281 -#: js/activity.js:2289 -#: js/activity.js:2520 -#: js/modewidget.js:77 -#: js/pitchstaircase.js:121 -#: js/phrasemaker.js:302 -#: js/phrasemaker.js:312 -#: js/phrasemaker.js:314 -#: js/phrasemaker.js:3901 -#: js/phrasemaker.js:4061 -#: js/phrasemaker.js:4066 -#: js/phrasemaker.js:4068 -#: js/phrasemaker.js:4183 -#: js/pitchdrummatrix.js:81 -#: js/pitchdrummatrix.js:574 -#: js/pitchdrummatrix.js:576 -#: js/pitchdrummatrix.js:628 -#: js/pitchdrummatrix.js:630 -#: js/pitchdrummatrix.js:645 -#: js/pitchdrummatrix.js:647 -#: js/pitchdrummatrix.js:674 -#: js/pitchdrummatrix.js:676 -#: js/temperament.js:477 -#: js/temperament.js:480 -#: js/temperament.js:540 -#: js/temperament.js:542 -#: js/temperament.js:1835 -#: js/temperament.js:1837 -#: js/temperament.js:1986 -#: js/temperament.js:1988 -#: js/musickeyboard.js:522 -#: js/musickeyboard.js:682 -#: js/musickeyboard.js:684 -#: js/musickeyboard.js:756 -#: js/musickeyboard.js:758 -#: js/rhythmruler.js:298 -#: js/rhythmruler.js:300 -#: js/rhythmruler.js:314 -#: js/rhythmruler.js:316 -#: js/sampler.js:96 -#: js/sampler.js:98 -#: js/sampler.js:229 -#: js/sampler.js:235 -#: js/sampler.js:237 -#: js/tempo.js:84 -#: js/tempo.js:86 -#: js/timbre.js:432 -#: js/timbre.js:434 -#: js/timbre.js:465 -#: js/timbre.js:467 -#: js/timbre.js:746 -#: js/meterwidget.js:80 -#: js/arpeggio.js:90 -#: js/arpeggio.js:547 -#: js/arpeggio.js:549 -#: js/arpeggio.js:644 -#: js/arpeggio.js:646 -msgid "Play" +#: js/turtledefs.js:564 +#: js/turtledefs.js:597 +msgid "Save block artwork as an SVG file." msgstr "" -#: js/toolbar.js:48 -#: js/toolbar.js:109 -#: js/toolbar.js:173 -#: js/toolbar.js:229 -#: js/turtledefs.js:451 -#: js/turtledefs.js:488 -#: js/activity.js:2297 -#: js/modewidget.js:99 -#: js/modewidget.js:101 -#: js/phrasemaker.js:323 -#: js/phrasemaker.js:325 -#: js/pitchdrummatrix.js:561 -#: js/pitchdrummatrix.js:563 -#: js/temperament.js:1820 -#: js/temperament.js:1822 -#: js/meterwidget.js:101 -#: js/meterwidget.js:103 -#: js/arpeggio.js:534 -#: js/arpeggio.js:536 -msgid "Stop" -msgstr "පියවර" +#: js/turtledefs.js:585 +msgid "Save audio from your project as WAV." +msgstr "" -#: js/toolbar.js:49 -#: js/toolbar.js:110 -#: js/toolbar.js:174 -#: js/toolbar.js:230 -#: js/turtledefs.js:498 -msgid "Record" +#: js/turtledefs.js:589 +msgid "Save your project to as an ABC file." msgstr "" -#: js/toolbar.js:50 -#: js/toolbar.js:51 -msgid "Full screen" +#: js/turtledefs.js:593 +msgid "Save your project to as a Lilypond file." msgstr "" -#: js/toolbar.js:52 -#: js/toolbar.js:112 -#: js/toolbar.js:177 -#: js/toolbar.js:232 -#: js/turtledefs.js:504 -msgid "Toggle Fullscreen" +#: js/turtledefs.js:604 +msgid "Load samples from server" msgstr "" -#: js/toolbar.js:53 -#: js/toolbar.js:113 -#: js/toolbar.js:178 -#: js/toolbar.js:233 -#: js/turtledefs.js:510 -#: js/StringHelper.js:33 -msgid "New project" +#: js/turtledefs.js:605 +msgid "This button opens a viewer for loading example projects." msgstr "" -#: js/toolbar.js:54 -#: js/toolbar.js:114 -#: js/toolbar.js:179 -#: js/toolbar.js:234 -#: js/turtledefs.js:516 -msgid "Load project from file" +#: js/turtledefs.js:611 +msgid "Palette buttons" msgstr "" -#: js/toolbar.js:55 -#: js/toolbar.js:115 -#: js/toolbar.js:116 -#: js/toolbar.js:180 -#: js/toolbar.js:235 -#: js/turtledefs.js:541 -#: js/turtledefs.js:550 -#: js/turtledefs.js:571 -msgid "Save project" +#: js/turtledefs.js:612 +msgid "This toolbar contains the palette buttons including Rhythm Pitch Tone Action and more." msgstr "" -#: js/toolbar.js:56 -#: js/toolbar.js:75 -#: js/toolbar.js:77 -#: js/toolbar.js:135 -#: js/toolbar.js:144 -#: js/toolbar.js:146 -#: js/toolbar.js:181 -#: js/toolbar.js:199 -#: js/toolbar.js:201 -#: js/toolbar.js:236 -#: js/toolbar.js:254 -#: js/toolbar.js:256 -msgid "Save project as HTML" +#: js/turtledefs.js:614 +msgid "Click to show the palettes of blocks and drag blocks from the palettes onto the canvas to use them." msgstr "" -#: js/toolbar.js:57 -#: js/toolbar.js:117 -#: js/toolbar.js:182 -#: js/toolbar.js:237 -msgid "Find and share projects" +#: js/turtledefs.js:620 +msgid "Cartesian/Polar" msgstr "" -#: js/toolbar.js:58 -#: js/toolbar.js:118 -#: js/toolbar.js:183 -#: js/toolbar.js:238 -msgid "Offline. Sharing is unavailable" +#: js/turtledefs.js:621 +msgid "Show or hide a coordinate grid." msgstr "" -#: js/toolbar.js:59 -#: js/toolbar.js:119 -#: js/toolbar.js:184 -#: js/toolbar.js:239 -msgid "Auxiliary menu" +#: js/turtledefs.js:626 +#: js/turtles.js:902 +msgid "Clean" +msgstr "පැහැදිලි කරන්න" + +#: js/turtledefs.js:627 +msgid "Clear the screen and return the mice to their initial positions." +msgstr "" + +#: js/turtledefs.js:632 +#: js/turtles.js:955 +msgid "Collapse" msgstr "" -#: js/toolbar.js:61 -#: js/toolbar.js:121 -#: js/toolbar.js:186 -#: js/toolbar.js:241 -msgid "Run slowly" +#: js/turtledefs.js:633 +msgid "Collapse the graphics window." msgstr "" -#: js/toolbar.js:62 -#: js/toolbar.js:122 -#: js/toolbar.js:187 -#: js/toolbar.js:242 -#: js/turtledefs.js:682 -msgid "Run step by step" +#: js/turtledefs.js:638 +#: js/activity.js:5684 +msgid "Home" msgstr "" -#: js/toolbar.js:63 -#: js/toolbar.js:123 -#: js/toolbar.js:188 -#: js/toolbar.js:243 -#: js/turtledefs.js:689 -msgid "Display statistics" +#: js/turtledefs.js:639 +msgid "Return all blocks to the center of the screen." msgstr "" -#: js/toolbar.js:64 -#: js/toolbar.js:124 -#: js/toolbar.js:189 -#: js/toolbar.js:244 -msgid "Load plugin" +#: js/turtledefs.js:644 +msgid "Show/hide blocks" +msgstr "කුට්ටි පෙන්වන්න/සඟවන්න" + +#: js/turtledefs.js:645 +msgid "Hide or show the blocks and the palettes." msgstr "" -#: js/toolbar.js:65 -#: js/toolbar.js:125 -#: js/toolbar.js:190 -#: js/toolbar.js:245 -#: js/turtledefs.js:696 -msgid "Delete plugin" +#: js/turtledefs.js:650 +msgid "Expand/collapse collapsable blocks" msgstr "" -#: js/toolbar.js:66 -#: js/toolbar.js:126 -#: js/toolbar.js:191 -#: js/toolbar.js:246 -msgid "Enable horizontal scrolling" +#: js/turtledefs.js:651 +msgid "Expand or collapse start and action stacks." msgstr "" -#: js/toolbar.js:67 -#: js/toolbar.js:127 -#: js/toolbar.js:192 -#: js/toolbar.js:247 -msgid "Disable horizontal scrolling" +#: js/turtledefs.js:658 +#: js/activity.js:5704 +msgid "Decrease block size" msgstr "" -#: js/toolbar.js:68 -#: js/toolbar.js:128 -#: js/toolbar.js:193 -#: js/toolbar.js:248 -#: js/LocalCard.js:54 -#: js/StringHelper.js:71 -msgid "Merge with current project" +#: js/turtledefs.js:659 +msgid "Decrease the size of the blocks." msgstr "" -#: js/toolbar.js:69 -#: js/toolbar.js:129 -msgid "Set Pitch Preview" +#: js/turtledefs.js:664 +#: js/activity.js:5710 +msgid "Increase block size" msgstr "" -#: js/toolbar.js:70 -#: js/toolbar.js:130 -#: js/toolbar.js:194 -#: js/toolbar.js:249 -msgid "Toggle JavaScript Editor" +#: js/turtledefs.js:665 +msgid "Increase the size of the blocks." msgstr "" -#: js/toolbar.js:71 -#: js/toolbar.js:131 -#: js/toolbar.js:195 -#: js/toolbar.js:250 -#: js/turtledefs.js:724 -msgid "Restore" +#: js/turtledefs.js:670 +msgid "Expand/collapse option toolbar" msgstr "" -#: js/toolbar.js:72 -#: js/toolbar.js:132 -#: js/toolbar.js:196 -#: js/toolbar.js:251 -msgid "Switch to beginner mode" +#: js/turtledefs.js:671 +msgid "Click this button to expand or collapse the auxillary toolbar." msgstr "" -#: js/toolbar.js:73 -#: js/toolbar.js:133 -#: js/toolbar.js:197 -#: js/toolbar.js:252 -msgid "Switch to advanced mode" +#: js/turtledefs.js:676 +msgid "Run slow" msgstr "" -#: js/toolbar.js:74 -#: js/toolbar.js:134 -#: js/toolbar.js:143 -#: js/toolbar.js:198 -#: js/toolbar.js:253 -#: js/turtledefs.js:738 -msgid "Select language" +#: js/turtledefs.js:677 +msgid "Click to run the project in slow mode." msgstr "" -#: js/toolbar.js:76 -#: js/toolbar.js:79 -#: js/toolbar.js:137 -#: js/turtledefs.js:579 -msgid "Save mouse artwork as PNG" +#: js/turtledefs.js:683 +msgid "Click to run the project step by step." msgstr "" -#: js/toolbar.js:78 -#: js/toolbar.js:136 -#: js/turtledefs.js:575 -msgid "Save mouse artwork as SVG" +#: js/turtledefs.js:690 +msgid "Display statistics about your Music project." msgstr "" -#: js/toolbar.js:80 -#: js/toolbar.js:138 -#: js/turtledefs.js:583 -msgid "Save music as WAV" +#: js/turtledefs.js:697 +msgid "Delete a selected plugin." msgstr "" -#: js/toolbar.js:81 -#: js/toolbar.js:139 -#: js/turtledefs.js:587 -msgid "Save sheet music as ABC" +#: js/turtledefs.js:704 +msgid "Enable scrolling" msgstr "" -#: js/toolbar.js:82 -#: js/toolbar.js:140 -#: js/turtledefs.js:591 -msgid "Save sheet music as Lilypond" +#: js/turtledefs.js:705 +msgid "You can scroll the blocks on the canvas." msgstr "" -#: js/toolbar.js:83 -msgid "Save sheet music as MusicXML" +#: js/turtledefs.js:714 +msgid "Wrap Turtle" msgstr "" -#: js/toolbar.js:84 -#: js/toolbar.js:141 -#: js/toolbar.js:149 -#: js/toolbar.js:204 -#: js/toolbar.js:259 -#: js/turtledefs.js:562 -#: js/turtledefs.js:595 -msgid "Save block artwork as SVG" +#: js/turtledefs.js:715 +msgid "Turn Turtle wrapping On or Off." msgstr "" -#: js/toolbar.js:85 -#: js/toolbar.js:142 -#: js/toolbar.js:150 -#: js/toolbar.js:205 -#: js/toolbar.js:260 -msgid "Confirm" +#: js/turtledefs.js:725 +msgid "Restore blocks from the trash." msgstr "" -#: js/toolbar.js:86 -#: js/toolbar.js:151 -#: js/toolbar.js:206 -#: js/toolbar.js:261 -msgid "English (United States)" +#: js/turtledefs.js:732 +msgid "Switch mode" msgstr "" -#: js/toolbar.js:87 -#: js/toolbar.js:152 -#: js/toolbar.js:207 -#: js/toolbar.js:262 -msgid "English (United Kingdom)" +#: js/turtledefs.js:733 +msgid "Switch between beginner and advance modes." msgstr "" -#: js/toolbar.js:88 -#: js/toolbar.js:153 -#: js/toolbar.js:208 -#: js/toolbar.js:263 -msgid "日本語" +#: js/turtledefs.js:739 +msgid "Select your language preference." msgstr "" -#: js/toolbar.js:89 -msgid "한국어" +#: js/turtledefs.js:745 +msgid "Keyboard shortcuts" msgstr "" -#: js/toolbar.js:90 -#: js/toolbar.js:155 -#: js/toolbar.js:210 -#: js/toolbar.js:265 -msgid "español" +#: js/turtledefs.js:746 +msgid "You can type d to create a do block and r to create a re block etc." msgstr "" -#: js/toolbar.js:91 -#: js/toolbar.js:156 -#: js/toolbar.js:211 -#: js/toolbar.js:266 -msgid "português" +#: js/turtledefs.js:753 +msgid "Show these messages." msgstr "" -#: js/toolbar.js:92 -#: js/toolbar.js:157 -#: js/toolbar.js:212 -#: js/toolbar.js:267 -msgid "にほんご" +#: js/turtledefs.js:759 +#: js/turtledefs.js:790 +#: js/widgets/help.js:335 +msgid "Guide" msgstr "" -#: js/toolbar.js:93 -#: js/toolbar.js:158 -#: js/toolbar.js:213 -#: js/toolbar.js:268 -msgid "中文" +#: js/turtledefs.js:760 +msgid "A detailed guide to Turtle Blocks is available." msgstr "" -#: js/toolbar.js:94 -#: js/toolbar.js:159 -#: js/toolbar.js:214 -#: js/toolbar.js:269 -msgid "ภาษาไทย" +#: js/turtledefs.js:764 +msgid "Turtle Blocks Guide" msgstr "" -#: js/toolbar.js:95 -#: js/toolbar.js:160 -#: js/toolbar.js:215 -#: js/toolbar.js:270 -msgid "aymara" +#: js/turtledefs.js:767 +#: js/turtledefs.js:798 +#: js/widgets/help.js:336 +msgid "About" msgstr "" -#: js/toolbar.js:96 -#: js/toolbar.js:161 -#: js/toolbar.js:216 -#: js/toolbar.js:271 -msgid "quechua" +#: js/turtledefs.js:768 +msgid "Turtle Blocks is an open source collection of tools for exploring musical concepts." msgstr "" -#: js/toolbar.js:97 -#: js/toolbar.js:162 -#: js/toolbar.js:217 -#: js/toolbar.js:272 -msgid "guarani" +#: js/turtledefs.js:770 +msgid "A full list of contributors can be found in the Turtle Blocks GitHub repository." msgstr "" -#: js/toolbar.js:98 -#: js/toolbar.js:163 -#: js/toolbar.js:218 -#: js/toolbar.js:273 -msgid "हिंदी" +#: js/turtledefs.js:772 +msgid "Turtle Blocks is licensed under the AGPL." msgstr "" -#: js/toolbar.js:99 -#: js/toolbar.js:165 -#: js/toolbar.js:219 -#: js/toolbar.js:275 -msgid "igbo" +#: js/turtledefs.js:780 +msgid "Turtle Blocks GitHub repository" msgstr "" -#: js/toolbar.js:100 -#: js/toolbar.js:166 -#: js/toolbar.js:220 -#: js/toolbar.js:276 -msgid "عربى" +#: js/turtledefs.js:783 +#: js/turtledefs.js:814 +#: js/widgets/help.js:337 +#: js/widgets/help.js:359 +msgid "Congratulations." msgstr "" -#: js/toolbar.js:101 -#: js/toolbar.js:164 -#: js/toolbar.js:221 -#: js/toolbar.js:274 -msgid "తెలుగు" +#: js/turtledefs.js:784 +msgid "You have finished the tour. Please enjoy Turtle Blocks!" msgstr "" -#: js/toolbar.js:102 -#: js/toolbar.js:167 -#: js/toolbar.js:222 -#: js/toolbar.js:277 -msgid "עִברִית" +#: js/turtledefs.js:791 +msgid "A detailed guide to Music Blocks is available." msgstr "" -#: js/toolbar.js:111 -#: js/toolbar.js:175 -#: js/toolbar.js:176 -#: js/toolbar.js:231 -msgid "Full Screen" +#: js/turtledefs.js:799 +msgid "Music Blocks is an open source collection of tools for exploring musical concepts." msgstr "" -#: js/toolbar.js:145 -#: js/toolbar.js:148 -#: js/toolbar.js:200 -#: js/toolbar.js:203 -#: js/toolbar.js:255 -#: js/toolbar.js:258 -#: js/turtledefs.js:558 -msgid "Save turtle artwork as PNG" +#: js/turtledefs.js:801 +msgid "A full list of contributors can be found in the Music Blocks GitHub repository." msgstr "" -#: js/toolbar.js:147 -#: js/toolbar.js:202 -#: js/toolbar.js:257 -#: js/turtledefs.js:554 -msgid "Save turtle artwork as SVG" +#: js/turtledefs.js:803 +msgid "Music Blocks is licensed under the AGPL." msgstr "" -#: js/toolbar.js:154 -#: js/toolbar.js:209 -#: js/toolbar.js:264 -msgid "한국인" +#: js/turtledefs.js:811 +msgid "Music Blocks GitHub repository" msgstr "" -#: js/toolbar.js:171 -#: js/toolbar.js:227 -msgid "About Turtle Blocks" +#: js/turtledefs.js:815 +msgid "You have finished the tour. Please enjoy Music Blocks!" msgstr "" -#: js/toolbar.js:429 -#: js/toolbar.js:440 -msgid "Turtle Wrap Off" +#: js/turtles.js:882 +msgid "Grid" msgstr "" -#: js/toolbar.js:442 -msgid "Turtle Wrap On" +#: js/turtles.js:1024 +msgid "Expand" +msgstr "" + +#: js/block-verbose.js:1616 +#: js/block-verbose.js:1735 +#: js/block.js:1580 +#: js/block.js:1699 +#: js/palette.js:605 +#: js/blocks/IntervalsBlocks.js:63 +#: js/blocks/WidgetBlocks.js:259 +msgid "temperament" msgstr "" -#: js/block.js:1470 +#: js/block-verbose.js:1630 +#: js/block.js:1594 msgid "matrix" msgstr "" -#: js/block.js:1477 -#: js/WidgetBlocks.js:1226 +#: js/block-verbose.js:1637 +#: js/block.js:1601 +#: js/blocks/WidgetBlocks.js:1509 #: plugins/rodi.rtp:324 msgid "status" msgstr "" -#: js/block.js:1484 +#: js/block-verbose.js:1644 +#: js/block.js:1608 msgid "drum mapper" msgstr "" -#: js/block.js:1491 +#: js/block-verbose.js:1651 +#: js/block.js:1615 msgid "ruler" msgstr "" -#: js/block.js:1498 -#: js/WidgetBlocks.js:327 +#: js/block-verbose.js:1658 +#: js/block.js:1622 +#: js/blocks/WidgetBlocks.js:397 #.TRANS: timbre is the character or quality of a musical sound msgid "timbre" msgstr "" -#: js/block.js:1505 +#: js/block-verbose.js:1665 +#: js/block.js:1629 msgid "stair" msgstr "" -#: js/block.js:1512 -#: js/WidgetBlocks.js:577 +#: js/block-verbose.js:1672 +#: js/block.js:1636 +#: js/blocks/WidgetBlocks.js:707 #.TRANS: the speed at music is should be played. msgid "tempo" msgstr "" -#: js/block.js:1519 -#: js/block.js:1582 -#: js/IntervalsBlocks.js:1268 +#: js/block-verbose.js:1679 +#: js/block-verbose.js:1742 +#: js/block.js:1643 +#: js/block.js:1706 +#: js/blocks/IntervalsBlocks.js:1464 #.TRANS: mode, e.g., Major in C Major msgid "mode" msgstr "" -#: js/block.js:1526 +#: js/block-verbose.js:1686 +#: js/block.js:1650 msgid "slider" msgstr "" -#: js/block.js:1533 -#: js/SensorsBlocks.js:1001 +#: js/block-verbose.js:1693 +#: js/block.js:1657 +#: js/blocks/SensorsBlocks.js:1001 msgid "keyboard" msgstr "යතුරු පුවරුව" -#: js/block.js:1547 -#: js/WidgetBlocks.js:957 -#: js/WidgetBlocks.js:988 +#: js/block-verbose.js:1707 +#: js/block.js:1671 +#: js/blocks/WidgetBlocks.js:1190 +#: js/blocks/WidgetBlocks.js:1228 #.TRANS: widget for subdividing a measure into distinct rhythmic elements msgid "rhythm maker" msgstr "" -#: js/block.js:1554 -#: js/block.js:2182 -#: js/block.js:2236 -#: js/RhythmBlockPaletteBlocks.js:70 -#: js/RhythmBlockPaletteBlocks.js:251 -#: js/RhythmBlockPaletteBlocks.js:484 -#: js/RhythmBlockPaletteBlocks.js:553 -#: js/RhythmBlockPaletteBlocks.js:604 -#: js/RhythmBlockPaletteBlocks.js:874 -#: js/RhythmBlocks.js:33 -#: js/RhythmBlocks.js:356 -#: js/RhythmBlocks.js:766 -#: js/RhythmBlocks.js:806 -#: js/OrnamentBlocks.js:220 -#: js/OrnamentBlocks.js:312 -#: js/MeterBlocks.js:1367 -#: js/DictActions.js:85 -#: js/phrasemaker.js:731 -#: js/phrasemaker.js:2393 -#: js/phrasemaker.js:2436 -#: js/phrasemaker.js:2534 +#: js/block-verbose.js:1714 +#: js/block-verbose.js:2457 +#: js/block-verbose.js:2514 +#: js/block.js:1678 +#: js/block.js:2385 +#: js/block.js:2442 +#: js/blocks/MeterBlocks.js:1367 +#: js/blocks/OrnamentBlocks.js:220 +#: js/blocks/OrnamentBlocks.js:312 +#: js/blocks/RhythmBlocks.js:33 +#: js/blocks/RhythmBlocks.js:356 +#: js/blocks/RhythmBlocks.js:766 +#: js/blocks/RhythmBlocks.js:806 +#: js/blocks/RhythmBlockPaletteBlocks.js:70 +#: js/blocks/RhythmBlockPaletteBlocks.js:252 +#: js/blocks/RhythmBlockPaletteBlocks.js:485 +#: js/blocks/RhythmBlockPaletteBlocks.js:554 +#: js/blocks/RhythmBlockPaletteBlocks.js:605 +#: js/blocks/RhythmBlockPaletteBlocks.js:875 +#: js/turtleactions/DictActions.js:85 +#: js/widgets/phrasemaker.js:942 +#: js/widgets/phrasemaker.js:2656 +#: js/widgets/phrasemaker.js:2699 +#: js/widgets/phrasemaker.js:2810 #.TRANS: the value (e.g., 1/4 note) of the note being played. msgid "note value" msgstr "" -#: js/block.js:1561 -#: js/block.js:2110 -#: js/block.js:2133 -#: js/IntervalsBlocks.js:875 -#: js/OrnamentBlocks.js:312 +#: js/block-verbose.js:1721 +#: js/block-verbose.js:2382 +#: js/block-verbose.js:2405 +#: js/block.js:1685 +#: js/block.js:2310 +#: js/block.js:2333 +#: js/blocks/IntervalsBlocks.js:1071 +#: js/blocks/OrnamentBlocks.js:312 #.TRANS: calculate a relative step between notes based on semi-tones msgid "scalar interval" msgstr "" -#: js/block.js:1568 -#: js/RhythmBlocks.js:148 +#: js/block-verbose.js:1728 +#: js/block.js:1692 +#: js/blocks/RhythmBlocks.js:148 msgid "milliseconds" msgstr "" -#: js/block.js:2180 -#: js/block.js:2184 -#: js/block.js:2234 -#: js/block.js:2345 -#: js/ProgramBlocks.js:1273 -#: js/RhythmBlocks.js:712 -#: js/rhythmruler.js:834 -#: js/rhythmruler.js:961 +#: js/block-verbose.js:2455 +#: js/block-verbose.js:2459 +#: js/block-verbose.js:2512 +#: js/block-verbose.js:2628 +#: js/block.js:2383 +#: js/block.js:2387 +#: js/block.js:2440 +#: js/block.js:2556 +#: js/blocks/RhythmBlocks.js:712 +#: js/blocks/ProgramBlocks.js:1273 +#: js/widgets/rhythmruler.js:1183 +#: js/widgets/rhythmruler.js:1329 msgid "silence" msgstr "" -#: js/block.js:2265 -#: js/block.js:3134 -#: js/block.js:3151 -#: js/activity.js:2336 -#: js/activity.js:2387 -#: js/musicutils.js:2932 -#: js/musicutils.js:4287 +#: js/block-verbose.js:2548 +#: js/block-verbose.js:3492 +#: js/block-verbose.js:3509 +#: js/activity.js:2718 +#: js/activity.js:2769 +#: js/block.js:2476 +#: js/block.js:3416 +#: js/block.js:3433 +#: js/utils/musicutils.js:3780 +#: js/utils/musicutils.js:5273 +#.TRANS: the note names must be separated by single spaces #.TRANS: the note names must be separated by single spaces #.TRANS: the note names must be separated by single spaces msgid "ti la sol fa mi re do" msgstr "" -#: js/block.js:2333 +#: js/block-verbose.js:2616 +#: js/block.js:2544 +#.TRANS: scalar step #.TRANS: scalar step msgid "down" msgstr "" -#: js/block.js:2334 +#: js/block-verbose.js:2617 +#: js/block.js:2545 msgid "up" msgstr "" -#: js/block.js:3477 -#: js/block.js:3490 -#: js/ExtrasBlocks.js:612 +#: js/block-verbose.js:3026 +#: js/block.js:2950 +msgid "Silence block cannot be removed." +msgstr "" + +#: js/block-verbose.js:3824 +#: js/block.js:3748 +#: js/blocks.js:2607 +#: js/blocks.js:3218 +#: js/palette.js:618 +#: js/blocks/BooleanBlocks.js:77 +#: js/blocks/BooleanBlocks.js:167 +#: js/blocks/BooleanBlocks.js:251 +#: js/blocks/BooleanBlocks.js:335 +#: js/blocks/BooleanBlocks.js:433 +#: js/blocks/BooleanBlocks.js:539 +#: js/blocks/BooleanBlocks.js:640 +#: js/blocks/BooleanBlocks.js:741 +#: js/blocks/BooleanBlocks.js:847 +#: js/blocks/BooleanBlocks.js:948 +#: js/blocks/BooleanBlocks.js:1033 +#: js/blocks/SensorsBlocks.js:910 +msgid "true" +msgstr "" + +#: js/block-verbose.js:3824 +#: js/block.js:3748 +#: js/blocks.js:2609 +#: js/blocks.js:3220 +#: js/blocks/BooleanBlocks.js:79 +#: js/blocks/BooleanBlocks.js:169 +#: js/blocks/BooleanBlocks.js:253 +#: js/blocks/BooleanBlocks.js:337 +#: js/blocks/BooleanBlocks.js:435 +#: js/blocks/BooleanBlocks.js:541 +#: js/blocks/BooleanBlocks.js:642 +#: js/blocks/BooleanBlocks.js:743 +#: js/blocks/BooleanBlocks.js:849 +#: js/blocks/BooleanBlocks.js:950 +#: js/blocks/SensorsBlocks.js:912 +msgid "false" +msgstr "" + +#: js/block-verbose.js:3835 +#: js/block-verbose.js:3848 +#: js/block.js:3759 +#: js/block.js:3772 +#: js/blocks/ExtrasBlocks.js:615 msgid "Cartesian" msgstr "" -#: js/block.js:3478 -#: js/block.js:3491 -#: js/ExtrasBlocks.js:616 +#: js/block-verbose.js:3836 +#: js/block-verbose.js:3849 +#: js/block.js:3760 +#: js/block.js:3773 +#: js/blocks/ExtrasBlocks.js:619 msgid "polar" msgstr "" -#: js/block.js:3479 -#: js/block.js:3492 -#: js/ExtrasBlocks.js:620 +#: js/block-verbose.js:3837 +#: js/block-verbose.js:3850 +#: js/block.js:3761 +#: js/block.js:3774 +#: js/blocks/ExtrasBlocks.js:623 msgid "Cartesian+polar" msgstr "" -#: js/block.js:3480 -#: js/block.js:3499 -#: js/ExtrasBlocks.js:649 +#: js/block-verbose.js:3838 +#: js/block-verbose.js:3857 +#: js/block.js:3762 +#: js/block.js:3781 +#: js/blocks/ExtrasBlocks.js:652 msgid "none" msgstr "" -#: js/block.js:3493 -#: js/ExtrasBlocks.js:625 +#: js/block-verbose.js:3851 +#: js/block.js:3775 +#: js/blocks/ExtrasBlocks.js:628 msgid "treble" msgstr "" -#: js/block.js:3494 -#: js/ExtrasBlocks.js:629 +#: js/block-verbose.js:3852 +#: js/block.js:3776 +#: js/blocks/ExtrasBlocks.js:632 msgid "grand staff" msgstr "" -#: js/block.js:3495 -#: js/ExtrasBlocks.js:633 +#: js/block-verbose.js:3853 +#: js/block.js:3777 +#: js/blocks/ExtrasBlocks.js:636 msgid "mezzo-soprano" msgstr "" -#: js/block.js:3496 -#: js/ExtrasBlocks.js:637 +#: js/block-verbose.js:3854 +#: js/block.js:3778 +#: js/blocks/ExtrasBlocks.js:640 msgid "alto" msgstr "" -#: js/block.js:3497 -#: js/ExtrasBlocks.js:641 +#: js/block-verbose.js:3855 +#: js/block.js:3779 +#: js/blocks/ExtrasBlocks.js:644 msgid "tenor" msgstr "" -#: js/block.js:3498 -#: js/ExtrasBlocks.js:645 -#: js/musicutils.js:736 -#: js/synthutils.js:64 +#: js/block-verbose.js:3856 +#: js/block.js:3780 +#: js/utils/musicutils.js:1115 +#: js/utils/synthutils.js:80 +#: js/blocks/ExtrasBlocks.js:648 #.TRANS: musical instrument msgid "bass" msgstr "" -#: js/block.js:4075 +#: js/block-verbose.js:3901 +#: js/block.js:3825 +#: js/blocks.js:2600 +#: js/blocks.js:3211 +msgid "on2" +msgstr "" + +#: js/block-verbose.js:3903 +#: js/block.js:3827 +#: js/blocks.js:2602 +#: js/blocks.js:3213 +msgid "off" +msgstr "" + +#: js/block-verbose.js:4470 +#: js/block.js:4394 msgid "Not a number" msgstr "" -#: js/block.js:4082 +#: js/block-verbose.js:4477 +#: js/block.js:4401 msgid "Octave value must be between 1 and 10." msgstr "" -#: js/block.js:4090 +#: js/block-verbose.js:4485 +#: js/block.js:4409 msgid "Numbers can have at most 10 digits." msgstr "" -#: js/notation.js:353 -msgid "Lilypond cannot process pickup of " +#: js/activity.js:390 +#: js/activity.js:395 +msgid "Search for blocks" msgstr "" -#: js/turtledefs.js:40 -#.TRANS: put the URL to the guide here, e.g., https://github.com/sugarlabs/turtleblocksjs/tree/master/guide/README.md -msgid "guide url" +#: js/activity.js:1413 +msgid "Refresh your browser to change to advanced mode." msgstr "" -#: js/turtledefs.js:85 -#: js/turtledefs.js:437 -msgid "Turtle Blocks is a Logo-inspired turtle that draws colorful pictures with snap-together visual-programming blocks." +#: js/activity.js:1418 +msgid "Refresh your browser to change to beginner mode." msgstr "" -#: js/turtledefs.js:118 -#: js/turtledefs.js:220 -msgid "search" +#: js/activity.js:1477 +msgid "Catching mice" msgstr "" -#: js/turtledefs.js:120 -#: js/turtledefs.js:222 -#: js/WidgetBlocks.js:437 -#: js/MeterBlocks.js:1343 -#.TRANS: musical meter (time signature), e.g., 4:4 -msgid "meter" +#: js/activity.js:1478 +msgid "Cleaning the instruments" msgstr "" -#: js/turtledefs.js:122 -#: js/turtledefs.js:224 -msgid "intervals" +#: js/activity.js:1479 +msgid "Testing key pieces" msgstr "" -#: js/turtledefs.js:124 -#: js/turtledefs.js:226 -msgid "ornament" +#: js/activity.js:1480 +msgid "Sight-reading" msgstr "" -#: js/turtledefs.js:125 -#: js/turtledefs.js:227 -#: js/VolumeBlocks.js:362 -#: js/VolumeBlocks.js:502 -#: js/VolumeBlocks.js:545 -msgid "volume" +#: js/activity.js:1481 +msgid "Combining math and music" msgstr "" -#: js/turtledefs.js:129 -#: js/turtledefs.js:231 -msgid "boxes" +#: js/activity.js:1482 +msgid "Generating more blocks" +msgstr "" + +#: js/activity.js:1483 +msgid "Do Re Mi Fa Sol La Ti Do" +msgstr "" + +#: js/activity.js:1484 +msgid "Tuning string instruments" +msgstr "" + +#: js/activity.js:1485 +msgid "Pressing random keys" +msgstr "" + +#: js/activity.js:1663 +msgid "plugins will be removed upon restart." +msgstr "" + +#: js/activity.js:1672 +msgid "show Cartesian" +msgstr "" + +#: js/activity.js:2211 +#: js/palette.js:589 +#: js/blocks/RhythmBlocks.js:923 +#: js/blocks/PitchBlocks.js:442 +#: js/blocks/PitchBlocks.js:1786 +#.TRANS: a numeric mapping of the notes in an octave based on the musical mode +msgid "scale degree" +msgstr "" + +#: js/activity.js:2214 +#: js/palette.js:598 +msgid "voice name" +msgstr "" + +#: js/activity.js:2217 +#: js/palette.js:595 +msgid "invert mode" +msgstr "" + +#: js/activity.js:2220 +msgid "output tools" +msgstr "" + +#: js/activity.js:2223 +msgid "custom note" +msgstr "" + +#: js/activity.js:2226 +msgid "accidental name" +msgstr "" + +#: js/activity.js:2229 +#: js/blocks/PitchBlocks.js:855 +msgid "east indian solfege" +msgstr "" + +#: js/activity.js:2232 +#: js/blocks/PitchBlocks.js:869 +msgid "note name" +msgstr "" + +#: js/activity.js:2235 +#: js/blocks/IntervalsBlocks.js:94 +msgid "temperament name" +msgstr "" + +#: js/activity.js:2238 +#: js/palette.js:592 +msgid "mode name" +msgstr "" + +#: js/activity.js:2241 +msgid "chord name" +msgstr "" + +#: js/activity.js:2244 +#: js/palette.js:615 +msgid "interval name" +msgstr "" + +#: js/activity.js:2247 +msgid "filter type" +msgstr "" + +#: js/activity.js:2250 +msgid "oscillator type" +msgstr "" + +#: js/activity.js:2253 +#: js/blocks.js:2479 +#: js/blocks.js:2487 +msgid "audio file" +msgstr "" + +#: js/activity.js:2256 +#: js/blocks/DrumBlocks.js:32 +msgid "noise name" +msgstr "" + +#: js/activity.js:2259 +#: js/blocks/DrumBlocks.js:75 +msgid "drum name" +msgstr "" + +#: js/activity.js:2262 +#: js/blocks/DrumBlocks.js:119 +msgid "effects name" +msgstr "" + +#: js/activity.js:2265 +msgid "wrap mode" +msgstr "" + +#: js/activity.js:2268 +msgid "load file" +msgstr "" + +#: js/activity.js:2435 +#: js/activity.js:5851 +msgid "This block is deprecated." +msgstr "" + +#: js/activity.js:2437 +#: js/activity.js:5853 +msgid "Block cannot be found." +msgstr "" + +#: js/activity.js:2645 +msgid "Saving block artwork" +msgstr "" + +#: js/activity.js:2656 +msgid "Erase" +msgstr "" + +#: js/activity.js:2683 +#: js/activity.js:2705 +msgid "Paste" +msgstr "අලවන්න" + +#: js/activity.js:2687 +msgid "Save block help" +msgstr "" + +#: js/activity.js:2772 +msgid "Jumping to the bottom of the page." +msgstr "" + +#: js/activity.js:2778 +msgid "Scrolling up." +msgstr "" + +#: js/activity.js:2783 +msgid "Scrolling down." +msgstr "" + +#: js/activity.js:2788 +msgid "Extracting block" +msgstr "" + +#: js/activity.js:2796 +msgid "Moving block up." +msgstr "" + +#: js/activity.js:2817 +msgid "Moving block down." +msgstr "" + +#: js/activity.js:2838 +msgid "Moving block left." +msgstr "" + +#: js/activity.js:2855 +msgid "Moving block right." +msgstr "" + +#: js/activity.js:2870 +msgid "Jump to home position." +msgstr "" + +#: js/activity.js:2897 +msgid "Hide blocks" +msgstr "" + +#: js/activity.js:4500 +msgid "Click the run button to run the project." +msgstr "" + +#: js/activity.js:5692 +msgid "Show/hide block" msgstr "" -#: js/turtledefs.js:130 -#: js/turtledefs.js:232 -msgid "widgets" +#: js/activity.js:5698 +msgid "Expand/collapse blocks" msgstr "" -#: js/turtledefs.js:131 -#: js/turtledefs.js:233 -#: js/phrasemaker.js:824 -msgid "graphics" +#: js/activity.js:5976 +msgid "Could not parse JSON input." msgstr "" -#: js/turtledefs.js:134 -#: js/turtledefs.js:236 -msgid "boolean" +#: js/activity.js:6475 +#: js/activity.js:6580 +#: js/activity.js:6631 +msgid "Cannot load project from the file. Please check the file type." msgstr "" -#: js/turtledefs.js:137 -#: js/turtledefs.js:239 -#: js/HeapBlocks.js:59 -#: js/status.js:147 -msgid "heap" +#: js/activity.js:6917 +msgid "Invalid parameters" msgstr "" -#: js/turtledefs.js:138 -#: js/turtledefs.js:240 -#: js/ProgramBlocks.js:495 -#: js/DictBlocks.js:142 -msgid "dictionary" +#: js/blocks.js:1212 +#: js/blocks.js:3444 +#: js/blocks.js:3834 +#: js/blocks.js:3865 +#: js/blocks.js:3914 +#: js/blocks.js:3949 +#: js/blocks.js:6586 +#: js/palette.js:509 +#: js/palette.js:638 +#: js/palette.js:1105 +#: js/blocks/BoxesBlocks.js:282 +#: js/blocks/BoxesBlocks.js:285 +#: js/blocks/BoxesBlocks.js:405 +#: js/blocks/BoxesBlocks.js:594 +msgid "box" +msgstr "පෙට්ටිය" + +#: js/blocks.js:1713 +msgid "Consider breaking this stack into parts." msgstr "" -#: js/turtledefs.js:139 -#: js/turtledefs.js:241 -msgid "ensemble" +#: js/blocks.js:2472 +#: js/palette.js:653 +#: js/blocks/MediaBlocks.js:602 +msgid "open file" msgstr "" -#: js/turtledefs.js:140 -#: js/turtledefs.js:242 -msgid "extras" +#: js/blocks.js:3247 +#: js/palette.js:574 +#: js/blocks/MediaBlocks.js:892 +#: js/blocks/MediaBlocks.js:963 +msgid "text" +msgstr "පෙළ" + +#: js/blocks.js:3443 +#: js/palette.js:641 +#: js/palette.js:642 +#: js/blocks/BoxesBlocks.js:514 +msgid "store in box" msgstr "" -#: js/turtledefs.js:142 -#: js/turtledefs.js:244 -#.TRANS: program as in computer program -#.TRANS: program as in computer program -msgid "program" +#: js/blocks.js:3448 +#: js/blocks.js:3888 +#: js/blocks.js:3923 +#: js/blocks.js:3958 +#: js/blocks.js:5862 +#: js/blocks.js:5883 +#: js/blocks/BoxesBlocks.js:772 +msgid "box1" msgstr "" -#: js/turtledefs.js:143 -#: js/turtledefs.js:245 -msgid "my blocks" +#: js/blocks.js:3450 +#: js/blocks.js:3890 +#: js/blocks.js:3925 +#: js/blocks.js:3960 +#: js/blocks.js:5864 +#: js/blocks.js:5885 +#: js/blocks/BoxesBlocks.js:663 +msgid "box2" msgstr "" -#: js/turtledefs.js:185 -#: js/turtledefs.js:281 -msgid "artwork" +#: js/blocks.js:4122 +#: js/palette.js:639 +#: js/palette.js:644 +#: js/palette.js:1041 +#: js/blocks/BoxesBlocks.js:591 +msgid "store in" +msgstr "මෙහි ගබඩා කරන්න" + +#: js/blocks.js:4122 +#: js/blocks/BoxesBlocks.js:595 +#: js/blocks/DictBlocks.js:215 +#: js/blocks/DictBlocks.js:289 +#: js/blocks/EnsembleBlocks.js:391 +#: js/blocks/EnsembleBlocks.js:402 +#: js/blocks/MediaBlocks.js:746 +#: js/blocks/PitchBlocks.js:656 +#: js/blocks/PitchBlocks.js:934 +#: js/blocks/PitchBlocks.js:1866 +#: js/blocks/ProgramBlocks.js:390 +#: js/blocks/ProgramBlocks.js:495 +#: js/blocks/ProgramBlocks.js:658 +#: js/blocks/ToneBlocks.js:1025 +msgid "name" msgstr "" -#: js/turtledefs.js:185 -#: js/turtledefs.js:281 -msgid "logic" +#: js/blocks.js:4122 +#: js/blocks/BoxesBlocks.js:75 +#: js/blocks/BoxesBlocks.js:595 +#: js/blocks/DictBlocks.js:289 +#: js/blocks/DictBlocks.js:430 +#: js/blocks/HeapBlocks.js:544 +#: js/blocks/RhythmBlocks.js:1130 +msgid "value" +msgstr "අග" + +#: js/blocks.js:4465 +msgid "Forever loop detected inside a note value block. Unexpected things may happen." msgstr "" -#: js/turtledefs.js:185 -#: js/turtledefs.js:281 -msgid "music" +#: js/blocks.js:4988 +msgid "There is no block selected." msgstr "" -#: js/turtledefs.js:187 -#: js/turtledefs.js:463 -msgid "Music Blocks is a collection of tools for exploring fundamental musical concepts in a fun way." +#: js/blocks.js:5091 +#: js/blocks/MediaBlocks.js:888 +msgid "show" +msgstr "පෙන්වන්න" + +#: js/blocks.js:5094 +#: js/blocks/MediaBlocks.js:803 +#.TRANS: Avatar is the image used to determine the appearance of the mouse. +msgid "avatar" msgstr "" -#: js/turtledefs.js:436 -msgid "Welcome to Turtle Blocks" +#: js/blocks.js:5097 +#: js/blocks/ToneBlocks.js:1010 +#: js/widgets/sampler.js:975 +#.TRANS: The sound sample that the user uploads. +msgid "sample" msgstr "" -#: js/turtledefs.js:438 -#: js/turtledefs.js:465 -#: js/turtledefs.js:774 -#: js/turtledefs.js:805 -msgid "The current version is" +#: js/lilypond.js:606 +msgid "brown rat" msgstr "" -#: js/turtledefs.js:446 -#: js/turtledefs.js:483 -msgid "Click the run button to run the project in fast mode." +#: js/lilypond.js:607 +msgid "mole" msgstr "" -#: js/turtledefs.js:452 -msgid "Stop the turtle." +#: js/lilypond.js:608 +msgid "chipmunk" msgstr "" -#: js/turtledefs.js:454 -#: js/turtledefs.js:491 -msgid "You can also type Alt-S to stop." +#: js/lilypond.js:609 +msgid "red squirrel" msgstr "" -#: js/turtledefs.js:462 -#: js/help.js:333 -msgid "Welcome to Music Blocks" +#: js/lilypond.js:610 +msgid "guinea pig" msgstr "" -#: js/turtledefs.js:472 -#: js/help.js:334 -msgid "Meet Mr. Mouse!" +#: js/lilypond.js:611 +msgid "capybara" msgstr "" -#: js/turtledefs.js:473 -msgid "Mr Mouse is our Music Blocks conductor." +#: js/lilypond.js:612 +msgid "coypu" msgstr "" -#: js/turtledefs.js:475 -msgid "Mr Mouse encourages you to explore Music Blocks." +#: js/lilypond.js:613 +msgid "black rat" msgstr "" -#: js/turtledefs.js:477 -msgid "Let us start our tour!" +#: js/lilypond.js:614 +msgid "grey squirrel" msgstr "" -#: js/turtledefs.js:489 -msgid "Stop the music (and the mice)." +#: js/lilypond.js:615 +msgid "flying squirrel" msgstr "" -#: js/turtledefs.js:499 -msgid "Record your project as video." +#: js/lilypond.js:616 +msgid "bat" msgstr "" -#: js/turtledefs.js:505 -msgid "Toggle Fullscreen mode." +#: js/lilypond.js:749 +#: js/lilypond.js:913 +#: js/lilypond.js:951 +#: js/blocks/ActionBlocks.js:1256 +#: js/blocks/ExtrasBlocks.js:556 +msgid "start drum" msgstr "" -#: js/turtledefs.js:511 -msgid "Initialize a new project." +#: js/logo.js:61 +msgid "Not a valid pitch name" msgstr "" -#: js/turtledefs.js:517 -msgid "You can also load projects from the file system." +#: js/logo.js:507 +#: js/blocks/ProgramBlocks.js:258 +#: js/blocks/ProgramBlocks.js:427 +msgid "You must select a file." msgstr "" -#: js/turtledefs.js:522 -#: js/StringHelper.js:46 -msgid "Delete" +#: js/logo.js:1696 +msgid "Playback is ready." msgstr "" -#: js/turtledefs.js:523 -msgid "To delete a block, just right-click on it, then you will be able to see the delete option" +#: js/macros.js:711 +#: js/utils/musicutils.js:1162 +#: js/utils/synthutils.js:202 +#.TRANS: animal sound effect +msgid "duck" msgstr "" -#: js/turtledefs.js:528 -#: js/activity.js:2270 -#: js/LocalCard.js:31 -msgid "Copy" -msgstr "පිටපත් කරන්න" +#: js/notation.js:353 +msgid "Lilypond cannot process pickup of " +msgstr "" -#: js/turtledefs.js:529 -msgid "To copy a block, just right-click on it, then you will be able to see the copy option" +#: js/palette.js:571 +msgid "grid" msgstr "" -#: js/turtledefs.js:535 -msgid "To extract a block, just right-click on it, then you will be able to see the extract option" +#: js/palette.js:580 +msgid "effect" msgstr "" -#: js/turtledefs.js:542 -#: js/turtledefs.js:552 -#: js/turtledefs.js:573 -msgid "Save your project to a file." +#: js/palette.js:586 +msgid "sargam" msgstr "" -#: js/turtledefs.js:549 -#: js/turtledefs.js:570 -msgid "save" +#: js/palette.js:601 +#: js/blocks/PitchBlocks.js:1209 +msgid "custom pitch" msgstr "" -#: js/turtledefs.js:556 -#: js/turtledefs.js:577 -msgid "Save graphics from your project to as SVG." +#: js/palette.js:609 +msgid "accidental" msgstr "" -#: js/turtledefs.js:560 -#: js/turtledefs.js:581 -msgid "Save graphics from your project as PNG." +#: js/palette.js:633 +#: js/blocks/PitchBlocks.js:405 +msgid "pitch converter" msgstr "" -#: js/turtledefs.js:564 -#: js/turtledefs.js:597 -msgid "Save block artwork as an SVG file." +#: js/piemenus.js:200 +#: js/utils/musicutils.js:1187 +#: js/utils/musicutils.js:1207 +#: js/widgets/musickeyboard.js:2341 +#: js/widgets/phrasemaker.js:1908 +#: js/widgets/sampler.js:810 +#.TRANS: double sharp is a music term related to pitch +msgid "double sharp" msgstr "" -#: js/turtledefs.js:585 -msgid "Save audio from your project as WAV." +#: js/piemenus.js:201 +#: js/utils/musicutils.js:1185 +#: js/utils/musicutils.js:1208 +#: js/blocks/PitchBlocks.js:1539 +#: js/turtleactions/PitchActions.js:323 +#: js/widgets/musickeyboard.js:2342 +#: js/widgets/phrasemaker.js:1909 +#: js/widgets/sampler.js:811 +#.TRANS: sharp is a music term related to pitch +#.TRANS: sharp is a half-step up in pitch +msgid "sharp" msgstr "" -#: js/turtledefs.js:589 -msgid "Save your project to as an ABC file." +#: js/piemenus.js:202 +#: js/utils/musicutils.js:1183 +#: js/utils/musicutils.js:1209 +#: js/widgets/musickeyboard.js:2343 +#: js/widgets/phrasemaker.js:1910 +#: js/widgets/sampler.js:812 +#.TRANS: natural is a music term related to pitch +msgid "natural" msgstr "" -#: js/turtledefs.js:593 -msgid "Save your project to as a Lilypond file." +#: js/piemenus.js:203 +#: js/utils/musicutils.js:1181 +#: js/utils/musicutils.js:1210 +#: js/blocks/PitchBlocks.js:1498 +#: js/turtleactions/PitchActions.js:326 +#: js/widgets/musickeyboard.js:2344 +#: js/widgets/phrasemaker.js:1911 +#: js/widgets/sampler.js:813 +#.TRANS: flat is a music term related to pitch +#.TRANS: flat is a half-step down in pitch +msgid "flat" msgstr "" -#: js/turtledefs.js:604 -msgid "Load samples from server" +#: js/piemenus.js:204 +#: js/utils/musicutils.js:1179 +#: js/utils/musicutils.js:1211 +#: js/widgets/musickeyboard.js:2345 +#: js/widgets/phrasemaker.js:1912 +#: js/widgets/sampler.js:814 +#.TRANS: double flat is a music term related to pitch +msgid "double flat" msgstr "" -#: js/turtledefs.js:605 -msgid "This button opens a viewer for loading example projects." +#: js/piemenus.js:2864 +#: js/utils/musicutils.js:1006 +#: js/blocks/PitchBlocks.js:1385 +#.TRANS: unison is a music term related to intervals +#.TRANS: unison means the note is the same as the current note +msgid "unison" msgstr "" -#: js/turtledefs.js:611 -msgid "Palette buttons" +#: js/piemenus.js:3018 +#: js/piemenus.js:3091 +#: js/utils/musicutils.js:1014 +#: js/utils/musicutils.js:1189 +#: js/utils/musicutils.js:1326 +#.TRANS: major is a music term related to intervals and mode +msgid "major" msgstr "" -#: js/turtledefs.js:612 -msgid "This toolbar contains the palette buttons including Rhythm Pitch Tone Action and more." +#: js/piemenus.js:3018 +#: js/piemenus.js:3091 +#: js/utils/musicutils.js:1032 +#.TRANS: modal scale for music +msgid "ionian" msgstr "" -#: js/turtledefs.js:614 -msgid "Click to show the palettes of blocks and drag blocks from the palettes onto the canvas to use them." +#: js/piemenus.js:3020 +#: js/piemenus.js:3095 +#: js/utils/musicutils.js:1012 +#: js/utils/musicutils.js:1190 +#: js/utils/musicutils.js:1323 +#.TRANS: minor is a music term related to intervals and mode +msgid "minor" msgstr "" -#: js/turtledefs.js:620 -msgid "Cartesian/Polar" +#: js/piemenus.js:3020 +#: js/piemenus.js:3095 +#: js/utils/musicutils.js:1042 +#.TRANS: modal scale for music +msgid "aeolian" msgstr "" -#: js/turtledefs.js:621 -msgid "Show or hide a coordinate grid." +#: js/piemenus.js:3410 +msgid "Duplicate" msgstr "" -#: js/turtledefs.js:627 -msgid "Clear the screen and return the mice to their initial positions." +#: js/piemenus.js:3412 +msgid "Move to trash" msgstr "" -#: js/turtledefs.js:633 -msgid "Collapse the graphics window." +#: js/piemenus.js:3413 +#: js/widgets/timbre.js:968 +#: planet/js/StringHelper.js:69 +msgid "Close" msgstr "" -#: js/turtledefs.js:638 -#: js/activity.js:4256 -#: js/activity.js:4256 -msgid "Home" +#: js/piemenus.js:3419 +msgid "Save stack" msgstr "" -#: js/turtledefs.js:639 -msgid "Return all blocks to the center of the screen." +#: js/piemenus.js:3449 +msgid "In order to copy a sample, you must reload the widget, import the sample again, and export it." msgstr "" -#: js/turtledefs.js:644 -msgid "Show/hide blocks" -msgstr "කුට්ටි පෙන්වන්න/සඟවන්න" +#: js/piemenus.js:3812 +msgid "You have chosen key " +msgstr "" -#: js/turtledefs.js:645 -msgid "Hide or show the blocks and the palettes." +#: js/piemenus.js:3816 +msgid " for your pitch preview." msgstr "" -#: js/turtledefs.js:650 -msgid "Expand/collapse collapsable blocks" +#: js/turtle-singer.js:1363 +#.TRANS: partials are weighted components in a harmonic series +msgid "You must have at least one Partial block inside of a Weighted-partial block" msgstr "" -#: js/turtledefs.js:651 -msgid "Expand or collapse start and action stacks." +#: js/turtle-singer.js:2077 +msgid "synth cannot play chords." msgstr "" -#: js/turtledefs.js:658 -#: js/activity.js:4265 -msgid "Decrease block size" +#: js/utils/musicutils.js:505 +#: js/utils/musicutils.js:645 +#: js/widgets/pitchdrummatrix.js:228 +#: js/widgets/musickeyboard.js:2885 +msgid "rest" msgstr "" -#: js/turtledefs.js:659 -msgid "Decrease the size of the blocks." +#: js/utils/musicutils.js:689 +msgid "Perfect unison" msgstr "" -#: js/turtledefs.js:664 -#: js/activity.js:4267 -msgid "Increase block size" +#: js/utils/musicutils.js:689 +msgid "Diminished second" msgstr "" -#: js/turtledefs.js:665 -msgid "Increase the size of the blocks." +#: js/utils/musicutils.js:690 +msgid "Minor second" msgstr "" -#: js/turtledefs.js:670 -msgid "Expand/collapse option toolbar" +#: js/utils/musicutils.js:690 +msgid "Augmented unison" msgstr "" -#: js/turtledefs.js:671 -msgid "Click this button to expand or collapse the auxillary toolbar." +#: js/utils/musicutils.js:691 +msgid "Major second" msgstr "" -#: js/turtledefs.js:676 -msgid "Run slow" +#: js/utils/musicutils.js:691 +msgid "Diminished third" msgstr "" -#: js/turtledefs.js:677 -msgid "Click to run the project in slow mode." +#: js/utils/musicutils.js:692 +msgid "Minor third" msgstr "" -#: js/turtledefs.js:683 -msgid "Click to run the project step by step." +#: js/utils/musicutils.js:692 +msgid "Augmented second" msgstr "" -#: js/turtledefs.js:690 -msgid "Display statistics about your Music project." +#: js/utils/musicutils.js:693 +msgid "Major third" msgstr "" -#: js/turtledefs.js:697 -msgid "Delete a selected plugin." +#: js/utils/musicutils.js:693 +msgid "Diminished fourth" msgstr "" -#: js/turtledefs.js:704 -msgid "Enable scrolling" +#: js/utils/musicutils.js:694 +msgid "Perfect fourth" msgstr "" -#: js/turtledefs.js:705 -msgid "You can scroll the blocks on the canvas." +#: js/utils/musicutils.js:694 +msgid "Augmented third" msgstr "" -#: js/turtledefs.js:714 -msgid "Wrap Turtle" +#: js/utils/musicutils.js:695 +msgid "Diminished fifth" msgstr "" -#: js/turtledefs.js:715 -msgid "Turn Turtle wrapping On or Off." +#: js/utils/musicutils.js:695 +msgid "Augmented fourth" msgstr "" -#: js/turtledefs.js:725 -msgid "Restore blocks from the trash." +#: js/utils/musicutils.js:696 +msgid "Perfect fifth" msgstr "" -#: js/turtledefs.js:732 -msgid "Switch mode" +#: js/utils/musicutils.js:696 +msgid "Diminished sixth" msgstr "" -#: js/turtledefs.js:733 -msgid "Switch between beginner and advance modes." +#: js/utils/musicutils.js:697 +msgid "Minor sixth" msgstr "" -#: js/turtledefs.js:739 -msgid "Select your language preference." +#: js/utils/musicutils.js:697 +msgid "Augmented fifth" msgstr "" -#: js/turtledefs.js:745 -msgid "Keyboard shortcuts" +#: js/utils/musicutils.js:698 +msgid "Major sixth" msgstr "" -#: js/turtledefs.js:746 -msgid "You can type d to create a do block and r to create a re block etc." +#: js/utils/musicutils.js:698 +msgid "Diminished seventh" msgstr "" -#: js/turtledefs.js:753 -msgid "Show these messages." +#: js/utils/musicutils.js:699 +msgid "Minor seventh" msgstr "" -#: js/turtledefs.js:759 -#: js/turtledefs.js:790 -#: js/help.js:335 -msgid "Guide" +#: js/utils/musicutils.js:699 +msgid "Augmented sixth" msgstr "" -#: js/turtledefs.js:760 -msgid "A detailed guide to Turtle Blocks is available." +#: js/utils/musicutils.js:700 +msgid "Major seventh" msgstr "" -#: js/turtledefs.js:764 -msgid "Turtle Blocks Guide" +#: js/utils/musicutils.js:700 +msgid "Diminished octave" msgstr "" -#: js/turtledefs.js:767 -#: js/turtledefs.js:798 -#: js/help.js:336 -msgid "About" +#: js/utils/musicutils.js:701 +msgid "Perfect octave" msgstr "" -#: js/turtledefs.js:768 -msgid "Turtle Blocks is an open source collection of tools for exploring musical concepts." +#: js/utils/musicutils.js:701 +msgid "Augmented seventh" msgstr "" -#: js/turtledefs.js:770 -msgid "A full list of contributors can be found in the Turtle Blocks GitHub repository." +#: js/utils/musicutils.js:702 +msgid "Minor ninth" msgstr "" -#: js/turtledefs.js:772 -msgid "Turtle Blocks is licensed under the AGPL." +#: js/utils/musicutils.js:702 +msgid "Augmented octave" msgstr "" -#: js/turtledefs.js:780 -msgid "Turtle Blocks GitHub repository" +#: js/utils/musicutils.js:703 +msgid "Major ninth" msgstr "" -#: js/turtledefs.js:783 -#: js/turtledefs.js:814 -#: js/help.js:337 -#: js/help.js:359 -msgid "Congratulations." +#: js/utils/musicutils.js:703 +msgid "Diminished tenth" msgstr "" -#: js/turtledefs.js:784 -msgid "You have finished the tour. Please enjoy Turtle Blocks!" +#: js/utils/musicutils.js:704 +msgid "Minor tenth" msgstr "" -#: js/turtledefs.js:791 -msgid "A detailed guide to Music Blocks is available." +#: js/utils/musicutils.js:704 +msgid "Augmented ninth" msgstr "" -#: js/turtledefs.js:795 -#: js/SaveInterface.js:76 -msgid "Music Blocks Guide" +#: js/utils/musicutils.js:705 +msgid "Major tenth" msgstr "" -#: js/turtledefs.js:799 -msgid "Music Blocks is an open source collection of tools for exploring musical concepts." +#: js/utils/musicutils.js:705 +msgid "Diminished eleventh" msgstr "" -#: js/turtledefs.js:801 -msgid "A full list of contributors can be found in the Music Blocks GitHub repository." +#: js/utils/musicutils.js:706 +msgid "Perfect eleventh" msgstr "" -#: js/turtledefs.js:803 -msgid "Music Blocks is licensed under the AGPL." +#: js/utils/musicutils.js:706 +msgid "Augmented tenth" msgstr "" -#: js/turtledefs.js:811 -msgid "Music Blocks GitHub repository" +#: js/utils/musicutils.js:707 +msgid "Diminished twelfth" msgstr "" -#: js/turtledefs.js:815 -msgid "You have finished the tour. Please enjoy Music Blocks!" +#: js/utils/musicutils.js:707 +msgid "Augmented eleventh" msgstr "" -#: js/activity.js:369 -msgid "Search for blocks" +#: js/utils/musicutils.js:708 +msgid "Perfect twelfth" msgstr "" -#: js/activity.js:1145 -msgid "Refresh your browser to change to advanced mode." +#: js/utils/musicutils.js:708 +msgid "Diminished thirteenth" msgstr "" -#: js/activity.js:1150 -msgid "Refresh your browser to change to beginner mode." +#: js/utils/musicutils.js:709 +msgid "Minor thirteenth" msgstr "" -#: js/activity.js:1184 -msgid "Catching mice" +#: js/utils/musicutils.js:709 +msgid "Augmented fifth, plus an octave" msgstr "" -#: js/activity.js:1185 -msgid "Cleaning the instruments" +#: js/utils/musicutils.js:710 +msgid "Major thirteenth" msgstr "" -#: js/activity.js:1186 -msgid "Testing key pieces" +#: js/utils/musicutils.js:710 +msgid "Diminished seventh, plus an octave" msgstr "" -#: js/activity.js:1187 -msgid "Sight-reading" +#: js/utils/musicutils.js:838 +#.TRANS: ordinal number. Please keep exactly one space between each number. +msgid "1st 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th" msgstr "" -#: js/activity.js:1188 -msgid "Combining math and music" +#: js/utils/musicutils.js:1008 +#: js/utils/musicutils.js:1191 +#: js/utils/musicutils.js:1325 +#.TRANS: augmented is a music term related to intervals +msgid "augmented" msgstr "" -#: js/activity.js:1189 -msgid "Generating more blocks" +#: js/utils/musicutils.js:1010 +#: js/utils/musicutils.js:1192 +#: js/utils/musicutils.js:1324 +#.TRANS: diminished is a music term related to intervals and mode +msgid "diminished" msgstr "" -#: js/activity.js:1190 -msgid "Do Re Mi Fa Sol La Ti Do" +#: js/utils/musicutils.js:1016 +#: js/utils/musicutils.js:1322 +#: js/blocks/IntervalsBlocks.js:649 +#: js/turtleactions/IntervalsActions.js:120 +#: js/turtleactions/IntervalsActions.js:124 +#.TRANS: perfect is a music term related to intervals +msgid "perfect" msgstr "" -#: js/activity.js:1191 -msgid "Tuning string instruments" +#: js/utils/musicutils.js:1018 +#.TRANS: twelve semi-tone scale for music +msgid "chromatic" msgstr "" -#: js/activity.js:1192 -msgid "Pressing random keys" +#: js/utils/musicutils.js:1019 +msgid "algerian" msgstr "" -#: js/activity.js:1351 -msgid "plugins will be removed upon restart." +#: js/utils/musicutils.js:1020 +msgid "spanish" msgstr "" -#: js/activity.js:1360 -msgid "show Cartesian" +#: js/utils/musicutils.js:1022 +#.TRANS: modal scale in music +msgid "octatonic" msgstr "" -#: js/activity.js:1842 -msgid "output tools" +#: js/utils/musicutils.js:1024 +#.TRANS: harmonic major scale in music +msgid "harmonic major" msgstr "" -#: js/activity.js:1845 -msgid "custom note" +#: js/utils/musicutils.js:1026 +#.TRANS: natural minor scales in music +msgid "natural minor" msgstr "" -#: js/activity.js:1848 -msgid "accidental name" +#: js/utils/musicutils.js:1028 +#.TRANS: harmonic minor scale in music +msgid "harmonic minor" msgstr "" -#: js/activity.js:1851 -#: js/PitchBlocks.js:855 -msgid "east indian solfege" +#: js/utils/musicutils.js:1030 +#.TRANS: melodic minor scale in music +msgid "melodic minor" msgstr "" -#: js/activity.js:1854 -#: js/PitchBlocks.js:869 -msgid "note name" +#: js/utils/musicutils.js:1034 +#.TRANS: modal scale for music +msgid "dorian" msgstr "" -#: js/activity.js:1857 -#: js/IntervalsBlocks.js:94 -msgid "temperament name" +#: js/utils/musicutils.js:1036 +#.TRANS: modal scale for music +msgid "phrygian" msgstr "" -#: js/activity.js:1863 -msgid "chord name" +#: js/utils/musicutils.js:1038 +#.TRANS: modal scale for music +msgid "lydian" msgstr "" -#: js/activity.js:1869 -msgid "filter type" +#: js/utils/musicutils.js:1040 +#.TRANS: modal scale for music +msgid "mixolydian" msgstr "" -#: js/activity.js:1872 -msgid "oscillator type" +#: js/utils/musicutils.js:1044 +#.TRANS: modal scale for music +msgid "locrian" msgstr "" -#: js/activity.js:1878 -#: js/DrumBlocks.js:32 -msgid "noise name" +#: js/utils/musicutils.js:1046 +#.TRANS: minor jazz scale for music +msgid "jazz minor" msgstr "" -#: js/activity.js:1881 -#: js/DrumBlocks.js:75 -msgid "drum name" +#: js/utils/musicutils.js:1048 +#.TRANS: bebop scale for music +msgid "bebop" msgstr "" -#: js/activity.js:1884 -#: js/DrumBlocks.js:119 -msgid "effects name" +#: js/utils/musicutils.js:1049 +msgid "arabic" msgstr "" -#: js/activity.js:1887 -msgid "wrap mode" +#: js/utils/musicutils.js:1050 +msgid "byzantine" msgstr "" -#: js/activity.js:1890 -msgid "load file" +#: js/utils/musicutils.js:1052 +#.TRANS: musical scale for music by Verdi +msgid "enigmatic" msgstr "" -#: js/activity.js:2056 -msgid "This block is deprecated." +#: js/utils/musicutils.js:1053 +msgid "ethiopian" msgstr "" -#: js/activity.js:2058 -msgid "Block cannot be found." +#: js/utils/musicutils.js:1055 +#.TRANS: Ethiopic scale for music +msgid "geez" msgstr "" -#: js/activity.js:2266 -msgid "Saving block artwork" +#: js/utils/musicutils.js:1056 +msgid "hindu" msgstr "" -#: js/activity.js:2277 -msgid "Erase" +#: js/utils/musicutils.js:1057 +msgid "hungarian" msgstr "" -#: js/activity.js:2301 -#: js/activity.js:2323 -msgid "Paste" -msgstr "අලවන්න" +#: js/utils/musicutils.js:1059 +#.TRANS: minor Romanian scale for music +msgid "romanian minor" +msgstr "" -#: js/activity.js:2305 -msgid "Save block help" +#: js/utils/musicutils.js:1060 +msgid "spanish gypsy" msgstr "" -#: js/activity.js:2390 -msgid "Jumping to the bottom of the page." +#: js/utils/musicutils.js:1062 +#.TRANS: musical scale for Mid-Eastern music +msgid "maqam" msgstr "" -#: js/activity.js:2396 -msgid "Scrolling up." +#: js/utils/musicutils.js:1064 +#.TRANS: minor blues scale for music +msgid "minor blues" msgstr "" -#: js/activity.js:2401 -msgid "Scrolling down." +#: js/utils/musicutils.js:1066 +#.TRANS: major blues scale for music +msgid "major blues" msgstr "" -#: js/activity.js:2406 -msgid "Extracting block" +#: js/utils/musicutils.js:1067 +msgid "whole tone" msgstr "" -#: js/activity.js:2414 -msgid "Moving block up." +#: js/utils/musicutils.js:1069 +#.TRANS: pentatonic is a general term that means "five note scale". This scale is typically known as "minor pentatonic" +msgid "minor pentatonic" msgstr "" -#: js/activity.js:2435 -msgid "Moving block down." +#: js/utils/musicutils.js:1071 +#.TRANS: pentatonic is a general term that means "five note scale". This scale is typically known as "major pentatonic" +msgid "major pentatonic" msgstr "" -#: js/activity.js:2456 -msgid "Moving block left." +#: js/utils/musicutils.js:1072 +msgid "chinese" msgstr "" -#: js/activity.js:2473 -msgid "Moving block right." +#: js/utils/musicutils.js:1073 +msgid "egyptian" msgstr "" -#: js/activity.js:2488 -msgid "Jump to home position." +#: js/utils/musicutils.js:1075 +#.TRANS: https://en.wikipedia.org/wiki/Hirajoshi_scale NOTE: There are three different versions of this scale +msgid "hirajoshi" msgstr "" -#: js/activity.js:2515 -msgid "Hide blocks" +#: js/utils/musicutils.js:1076 +msgid "Japan" msgstr "" -#: js/activity.js:3389 -msgid "Click the run button to run the project." +#: js/utils/musicutils.js:1078 +#.TRANS: https://en.wikipedia.org/wiki/In_scale and https://en.wikipedia.org/wiki/Sakura_Sakura +msgid "in" msgstr "" -#: js/activity.js:3456 -#: js/SaveInterface.js:131 -#: js/SaveInterface.js:204 -#: js/SaveInterface.js:262 -#: js/SaveInterface.js:389 -#: js/SaveInterface.js:417 -#: js/ProjectStorage.js:27 -#: js/GlobalPlanet.js:467 -#: js/GlobalPlanet.js:469 -#: js/GlobalPlanet.js:495 -#.TRANS: default project title when saving as Lilypond -msgid "My Project" +#: js/utils/musicutils.js:1080 +#.TRANS: https://en.wikipedia.org/wiki/Miny%C5%8D_scale +msgid "minyo" msgstr "" -#: js/activity.js:4261 -msgid "Show/hide block" +#: js/utils/musicutils.js:1082 +#.TRANS: Italian mathematician +msgid "fibonacci" msgstr "" -#: js/activity.js:4263 -msgid "Expand/collapse blocks" +#: js/utils/musicutils.js:1083 +#: js/utils/musicutils.js:1134 +#: js/utils/musicutils.js:1177 +#: js/utils/musicutils.js:1199 +#: js/utils/synthutils.js:134 +#: js/blocks/IntervalsBlocks.js:1124 +#: js/blocks/ToneBlocks.js:946 +#: js/blocks/VolumeBlocks.js:411 +#: js/blocks/WidgetBlocks.js:399 +#: js/blocks/WidgetBlocks.js:404 +#: js/turtleactions/VolumeActions.js:218 +#: js/widgets/modewidget.js:919 +#.TRANS: customize voice +msgid "custom" msgstr "" -#: js/activity.js:4381 -msgid "Could not parse JSON input." +#: js/utils/musicutils.js:1085 +#: js/utils/musicutils.js:1531 +#: js/blocks/WidgetBlocks.js:176 +#.TRANS: highpass filter +msgid "highpass" msgstr "" -#: js/activity.js:4684 -#: js/activity.js:4771 -#: js/activity.js:4821 -msgid "Cannot load project from the file. Please check the file type." +#: js/utils/musicutils.js:1087 +#: js/utils/musicutils.js:1532 +#.TRANS: lowpass filter +msgid "lowpass" msgstr "" -#: js/activity.js:5051 -msgid "Invalid parameters" +#: js/utils/musicutils.js:1089 +#: js/utils/musicutils.js:1533 +#.TRANS: bandpass filter +msgid "bandpass" msgstr "" -#: js/turtle-singer.js:1334 -#.TRANS: partials are weighted components in a harmonic series -msgid "You must have at least one Partial block inside of a Weighted-partial block" +#: js/utils/musicutils.js:1091 +#: js/utils/musicutils.js:1534 +#.TRANS: high-shelf filter +msgid "highshelf" msgstr "" -#: js/turtle-singer.js:2048 -msgid "synth cannot play chords." +#: js/utils/musicutils.js:1093 +#: js/utils/musicutils.js:1535 +#.TRANS: low-shelf filter +msgid "lowshelf" msgstr "" -#: js/lilypond.js:614 -msgid "brown rat" +#: js/utils/musicutils.js:1095 +#: js/utils/musicutils.js:1536 +#.TRANS: notch-shelf filter +msgid "notch" msgstr "" -#: js/lilypond.js:615 -msgid "mole" +#: js/utils/musicutils.js:1097 +#: js/utils/musicutils.js:1537 +#.TRANS: all-pass filter +msgid "allpass" msgstr "" -#: js/lilypond.js:616 -msgid "chipmunk" +#: js/utils/musicutils.js:1099 +#: js/utils/musicutils.js:1538 +#.TRANS: peaking filter +msgid "peaking" msgstr "" -#: js/lilypond.js:617 -msgid "red squirrel" +#: js/utils/musicutils.js:1100 +#: js/utils/musicutils.js:1546 +#: js/utils/synthutils.js:126 +#: js/blocks/PitchBlocks.js:85 +#.TRANS: sine wave +msgid "sine" msgstr "" -#: js/lilypond.js:618 -msgid "guinea pig" +#: js/utils/musicutils.js:1101 +#: js/utils/musicutils.js:1547 +#: js/utils/synthutils.js:128 +#: js/blocks/PitchBlocks.js:39 +#.TRANS: square wave +msgid "square" msgstr "" -#: js/lilypond.js:619 -msgid "capybara" +#: js/utils/musicutils.js:1102 +#: js/utils/musicutils.js:1548 +#: js/utils/synthutils.js:132 +#: js/blocks/PitchBlocks.js:62 +#: js/blocks/ToneBlocks.js:39 +#.TRANS: triangle wave +msgid "triangle" msgstr "" -#: js/lilypond.js:620 -msgid "coypu" +#: js/utils/musicutils.js:1103 +#: js/utils/musicutils.js:1549 +#: js/utils/synthutils.js:130 +#: js/blocks/PitchBlocks.js:108 +#.TRANS: sawtooth wave +msgid "sawtooth" msgstr "" -#: js/lilypond.js:621 -msgid "black rat" +#: js/utils/musicutils.js:1105 +#: js/utils/musicutils.js:1312 +#: js/blocks/PitchBlocks.js:931 +#: js/blocks/PitchBlocks.js:937 +#: js/turtleactions/PitchActions.js:469 +#.TRANS: even numbers +#.TRANS: invert based on even or odd number or musical scale +msgid "even" msgstr "" -#: js/lilypond.js:622 -msgid "grey squirrel" +#: js/utils/musicutils.js:1107 +#: js/utils/musicutils.js:1313 +#: js/blocks/PitchBlocks.js:937 +#: js/turtleactions/PitchActions.js:471 +#.TRANS: odd numbers +msgid "odd" msgstr "" -#: js/lilypond.js:623 -msgid "flying squirrel" +#: js/utils/musicutils.js:1108 +#: js/utils/musicutils.js:1314 +#: js/blocks/PitchBlocks.js:937 +#: js/turtleactions/PitchActions.js:473 +msgid "scalar" msgstr "" -#: js/lilypond.js:624 -msgid "bat" +#: js/utils/musicutils.js:1109 +#: js/utils/synthutils.js:72 +#: js/blocks/VolumeBlocks.js:47 +#.TRANS: musical instrument +msgid "piano" msgstr "" -#: js/lilypond.js:757 -#: js/lilypond.js:921 -#: js/lilypond.js:959 -#: js/ActionBlocks.js:1256 -#: js/ExtrasBlocks.js:553 -msgid "start drum" +#: js/utils/musicutils.js:1110 +#: js/utils/synthutils.js:74 +#.TRANS: musical instrument +msgid "violin" msgstr "" -#: js/SaveInterface.js:59 -#: js/SaveInterface.js:61 -#: js/SaveInterface.js:93 -msgid "Music Blocks Project" +#: js/utils/musicutils.js:1111 +#: js/utils/synthutils.js:76 +#.TRANS: viola musical instrument +msgid "viola" msgstr "" -#: js/SaveInterface.js:63 -msgid "This project was created in Music Blocks" +#: js/utils/musicutils.js:1112 +#: js/utils/synthutils.js:114 +#.TRANS: xylophone musical instrument +msgid "xylophone" msgstr "" -#: js/SaveInterface.js:67 -msgid "Music Blocks is a Free/Libre Software application." +#: js/utils/musicutils.js:1113 +#: js/utils/synthutils.js:136 +#.TRANS: vibraphone musical instrument +msgid "vibraphone" msgstr "" -#: js/SaveInterface.js:69 -msgid "The source code can be accessed at" +#: js/utils/musicutils.js:1114 +#: js/utils/synthutils.js:78 +#.TRANS: musical instrument +msgid "cello" msgstr "" -#: js/SaveInterface.js:72 -msgid "For more information, please consult the" +#: js/utils/musicutils.js:1116 +#: js/utils/synthutils.js:82 +#.TRANS: viola musical instrument +msgid "double bass" msgstr "" -#: js/SaveInterface.js:83 -msgid "Alternatively, open the file in Music Blocks using the Load project button." +#: js/utils/musicutils.js:1117 +#: js/utils/synthutils.js:84 +#: js/widgets/rhythmruler.js:2511 +#.TRANS: musical instrument +msgid "guitar" msgstr "" -#: js/SaveInterface.js:85 -msgid "Project Code" +#: js/utils/musicutils.js:1118 +#: js/utils/synthutils.js:86 +#.TRANS: musical instrument +msgid "acoustic guitar" msgstr "" -#: js/SaveInterface.js:87 -msgid "This code stores data about the blocks in a project." +#: js/utils/musicutils.js:1119 +#: js/utils/synthutils.js:88 +#.TRANS: musical instrument +msgid "flute" msgstr "" -#: js/SaveInterface.js:89 -msgid "Show" +#: js/utils/musicutils.js:1120 +#: js/utils/synthutils.js:90 +#.TRANS: musical instrument +msgid "clarinet" msgstr "" -#: js/SaveInterface.js:91 -msgid "Hide" +#: js/utils/musicutils.js:1121 +#: js/utils/synthutils.js:92 +#.TRANS: musical instrument +msgid "saxophone" msgstr "" -#: js/SaveInterface.js:197 -#: js/SaveInterface.js:58 -msgid "No description provided" +#: js/utils/musicutils.js:1122 +#: js/utils/synthutils.js:94 +#.TRANS: musical instrument +msgid "tuba" msgstr "" -#: js/SaveInterface.js:332 -msgid "Your recording is in progress." +#: js/utils/musicutils.js:1123 +#: js/utils/synthutils.js:96 +#.TRANS: musical instrument +msgid "trumpet" msgstr "" -#: js/SaveInterface.js:401 -#.TRANS: File name prompt for save as Lilypond -msgid "File name" +#: js/utils/musicutils.js:1124 +#: js/utils/synthutils.js:98 +#.TRANS: musical instrument +msgid "oboe" msgstr "" -#: js/SaveInterface.js:403 -#: js/StringHelper.js:39 -#.TRANS: Project title prompt for save as Lilypond -msgid "Project title" +#: js/utils/musicutils.js:1125 +#: js/utils/synthutils.js:100 +#.TRANS: musical instrument +msgid "trombone" msgstr "" -#: js/SaveInterface.js:405 -#.TRANS: Project title prompt for save as Lilypond -msgid "Project author" +#: js/utils/musicutils.js:1126 +#: js/utils/synthutils.js:116 +#.TRANS: polytone synthesizer +msgid "electronic synth" msgstr "" -#: js/SaveInterface.js:407 -#.TRANS: MIDI prompt for save as Lilypond -msgid "Include MIDI output?" +#: js/utils/musicutils.js:1127 +#: js/utils/synthutils.js:118 +#.TRANS: simple monotone synthesizer +msgid "simple 1" msgstr "" -#: js/SaveInterface.js:409 -#.TRANS: Guitar prompt for save as Lilypond -msgid "Include guitar tablature output?" +#: js/utils/musicutils.js:1128 +msgid "simple 2" msgstr "" -#: js/SaveInterface.js:411 -#.TRANS: Lilypond is a scripting language for generating sheet music -msgid "Save as Lilypond" +#: js/utils/musicutils.js:1129 +msgid "simple 3" msgstr "" -#: js/SaveInterface.js:426 -#: js/EnsembleBlocks.js:75 -#: js/EnsembleBlocks.js:154 -#: js/EnsembleBlocks.js:216 -#: js/EnsembleBlocks.js:302 -#: js/EnsembleBlocks.js:348 -#: js/EnsembleBlocks.js:389 -#: js/EnsembleBlocks.js:441 -#: js/EnsembleBlocks.js:490 -#: js/EnsembleBlocks.js:536 -#: js/EnsembleBlocks.js:583 -#: js/EnsembleBlocks.js:637 -#: js/EnsembleBlocks.js:753 -#: js/EnsembleBlocks.js:840 -#: js/EnsembleBlocks.js:899 -#: js/EnsembleBlocks.js:942 -#: js/EnsembleBlocks.js:1212 -#: js/EnsembleBlocks.js:1280 -#.TRANS: default project author when saving as Lilypond -msgid "Mr. Mouse" +#: js/utils/musicutils.js:1130 +msgid "simple 4" msgstr "" -#: js/SaveInterface.js:573 -msgid "The Lilypond code is copied to clipboard. You can paste it here: " +#: js/utils/musicutils.js:1131 +#: js/utils/synthutils.js:58 +#: js/blocks/DrumBlocks.js:191 +#.TRANS: white noise synthesizer +msgid "white noise" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:50 -#: js/RhythmBlockPaletteBlocks.js:232 -#.TRANS: rhythm block -#.TRANS: translate "rhythm1" as rhythm -msgid "rhythm1" +#: js/utils/musicutils.js:1132 +#: js/utils/synthutils.js:60 +#.TRANS: brown noise synthesizer +msgid "brown noise" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:70 -#: js/RhythmBlockPaletteBlocks.js:251 -#: js/RhythmBlockPaletteBlocks.js:484 -#: js/RhythmBlockPaletteBlocks.js:553 -#: js/RhythmBlockPaletteBlocks.js:874 -msgid "number of notes" +#: js/utils/musicutils.js:1133 +#: js/utils/synthutils.js:62 +#.TRANS: pink noise synthesizer +msgid "pink noise" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:126 -msgid "polyphonic rhythm" +#: js/utils/musicutils.js:1135 +#: js/utils/synthutils.js:148 +#: js/widgets/rhythmruler.js:2057 +#: js/widgets/rhythmruler.js:2319 +#.TRANS: musical instrument +msgid "snare drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:218 -msgid "The Rhythm block is used to generate rhythm patterns." +#: js/utils/musicutils.js:1136 +#: js/utils/synthutils.js:150 +#.TRANS: musical instrument +msgid "kick drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:279 -msgid "1/64 note" +#: js/utils/musicutils.js:1137 +#: js/utils/synthutils.js:152 +#.TRANS: musical instrument +msgid "tom tom" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:303 -msgid "1/32 note" +#: js/utils/musicutils.js:1138 +#: js/utils/synthutils.js:154 +#.TRANS: musical instrument +msgid "floor tom" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:331 -msgid "1/16 note" +#: js/utils/musicutils.js:1139 +#: js/utils/synthutils.js:156 +#.TRANS: musical instrument +msgid "bass drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:359 -msgid "eighth note" +#: js/utils/musicutils.js:1140 +#: js/utils/synthutils.js:158 +#.TRANS: a drum made from an inverted cup +msgid "cup drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:387 -msgid "quarter note" +#: js/utils/musicutils.js:1141 +#: js/utils/synthutils.js:160 +#.TRANS: musical instrument +msgid "darbuka drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:415 -msgid "half note" +#: js/utils/musicutils.js:1142 +#: js/utils/synthutils.js:164 +#.TRANS: musical instrument +msgid "hi hat" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:443 -msgid "whole note" +#: js/utils/musicutils.js:1143 +#: js/utils/synthutils.js:166 +#.TRANS: a small metal bell +msgid "ride bell" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:481 -#: js/RhythmBlockPaletteBlocks.js:550 -#: js/RhythmBlockPaletteBlocks.js:601 -#.TRANS: A tuplet is a note value divided into irregular time values. -msgid "tuplet" +#: js/utils/musicutils.js:1144 +#: js/utils/synthutils.js:168 +#.TRANS: musical instrument +msgid "cow bell" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:767 -msgid "septuplet" +#: js/utils/musicutils.js:1145 +msgid "japanese drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:795 -msgid "quintuplet" +#: js/utils/musicutils.js:1146 +#: js/utils/synthutils.js:174 +#.TRANS: musical instrument +msgid "japanese bell" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:823 -msgid "triplet" +#: js/utils/musicutils.js:1147 +#: js/utils/synthutils.js:170 +#.TRANS: musical instrument +msgid "triangle bell" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:850 -msgid "simple tuplet" +#: js/utils/musicutils.js:1148 +#: js/utils/synthutils.js:172 +#.TRANS: musical instrument +msgid "finger cymbals" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:860 -msgid "Tuplets are a collection of notes that get scaled to a specific duration." +#: js/utils/musicutils.js:1149 +#: js/utils/synthutils.js:176 +#.TRANS: a musically tuned set of bells +msgid "chime" msgstr "" -#: js/WidgetBlocks.js:71 -#.TRANS: sound envelope (ADSR) -msgid "envelope" +#: js/utils/musicutils.js:1150 +#: js/utils/synthutils.js:178 +#.TRANS: a musical instrument +msgid "gong" msgstr "" -#: js/WidgetBlocks.js:79 -#.TRANS: Attack time is the time taken for initial run-up of level from nil to peak, beginning when the key is first pressed. -msgid "attack" +#: js/utils/musicutils.js:1151 +#: js/utils/synthutils.js:180 +#.TRANS: sound effect +msgid "clang" msgstr "" -#: js/WidgetBlocks.js:81 -#.TRANS: Decay time is the time taken for the subsequent run down from the attack level to the designated sustain level. -msgid "decay" +#: js/utils/musicutils.js:1152 +#: js/utils/synthutils.js:182 +#.TRANS: sound effect +msgid "crash" msgstr "" -#: js/WidgetBlocks.js:83 -#.TRANS: Sustain level is the level during the main sequence of the sound's duration, until the key is released. -msgid "sustain" +#: js/utils/musicutils.js:1153 +#: js/utils/synthutils.js:184 +#.TRANS: sound effect +msgid "bottle" msgstr "" -#: js/WidgetBlocks.js:85 -#.TRANS: Release time is the time taken for the level to decay from the sustain level to zero after the key is released. -msgid "release" +#: js/utils/musicutils.js:1154 +#: js/utils/synthutils.js:186 +#.TRANS: sound effect +msgid "clap" msgstr "" -#: js/WidgetBlocks.js:96 -msgid "Attack value should be from 0 to 100." +#: js/utils/musicutils.js:1155 +#: js/utils/synthutils.js:188 +#.TRANS: sound effect +msgid "slap" msgstr "" -#: js/WidgetBlocks.js:99 -msgid "Decay value should be from 0 to 100." +#: js/utils/musicutils.js:1156 +#: js/utils/synthutils.js:190 +#.TRANS: sound effect +msgid "splash" msgstr "" -#: js/WidgetBlocks.js:102 -msgid "Sustain value should be from 0 to 100." +#: js/utils/musicutils.js:1157 +#: js/utils/synthutils.js:192 +#.TRANS: sound effect +msgid "bubbles" msgstr "" -#: js/WidgetBlocks.js:105 -msgid "Release value should be from 0-100." +#: js/utils/musicutils.js:1158 +#: js/utils/synthutils.js:194 +#.TRANS: sound effect +msgid "raindrop" msgstr "" -#: js/WidgetBlocks.js:121 -msgid "You are adding multiple envelope blocks." +#: js/utils/musicutils.js:1159 +#: js/utils/synthutils.js:196 +#.TRANS: animal sound effect +msgid "cat" msgstr "" -#: js/WidgetBlocks.js:144 -#.TRANS: a filter removes some unwanted components from a signal -msgid "filter" +#: js/utils/musicutils.js:1160 +#: js/utils/synthutils.js:198 +#.TRANS: animal sound effect +msgid "cricket" msgstr "" -#: js/WidgetBlocks.js:149 -#: js/musicutils.js:706 -#: js/musicutils.js:1105 -#.TRANS: highpass filter -msgid "highpass" +#: js/utils/musicutils.js:1161 +#: js/utils/synthutils.js:200 +#.TRANS: animal sound effect +msgid "dog" msgstr "" -#: js/WidgetBlocks.js:152 -#: js/ToneBlocks.js:42 -#: js/timbre.js:1558 -#: js/timbre.js:1808 -#.TRANS: type of filter, e.g., lowpass, highpass, etc. -#.TRANS: there are different types (sine, triangle, square...) of oscillators. -msgid "type" +#: js/utils/musicutils.js:1163 +#: js/utils/synthutils.js:102 +#.TRANS: musical instrument +msgid "banjo" msgstr "" -#: js/WidgetBlocks.js:154 -#: js/timbre.js:1818 -#.TRANS: rolloff is the steepness of a change in frequency. -msgid "rolloff" +#: js/utils/musicutils.js:1164 +#: js/utils/synthutils.js:104 +#.TRANS: musical instrument +msgid "koto" msgstr "" -#: js/WidgetBlocks.js:155 -#: js/MediaBlocks.js:692 -#: js/temperament.js:382 -#: js/temperament.js:417 -#: js/temperament.js:477 -#: js/temperament.js:485 -#: js/temperament.js:1348 -#: js/timbre.js:1842 -msgid "frequency" +#: js/utils/musicutils.js:1165 +#: js/utils/synthutils.js:106 +#.TRANS: musical instrument +msgid "dulcimer" msgstr "" -#: js/WidgetBlocks.js:179 -#.TRANS: rolloff is the steepness of a change in frequency. -msgid "Rolloff value should be either -12, -24, -48, or -96 decibels/octave." +#: js/utils/musicutils.js:1166 +#: js/utils/synthutils.js:108 +#.TRANS: musical instrument +msgid "electric guitar" msgstr "" -#: js/WidgetBlocks.js:211 -msgid "The Temperament tool is used to define custom tuning." +#: js/utils/musicutils.js:1167 +#: js/utils/synthutils.js:110 +#.TRANS: musical instrument +msgid "bassoon" msgstr "" -#: js/WidgetBlocks.js:277 -#: js/sampler.js:329 -msgid "Upload a sample and adjust its pitch center." +#: js/utils/musicutils.js:1168 +#: js/utils/synthutils.js:112 +#.TRANS: musical instrument +msgid "celeste" msgstr "" -#: js/WidgetBlocks.js:284 -#.TRANS: the speed at music is should be played. -msgid "sampler" +#: js/utils/musicutils.js:1170 +#: js/widgets/temperament.js:787 +#.TRANS: musical temperament +msgid "equal" msgstr "" -#: js/WidgetBlocks.js:329 -#: js/WidgetBlocks.js:334 -#: js/IntervalsBlocks.js:928 -#: js/VolumeBlocks.js:411 -#: js/ToneBlocks.js:946 -#: js/VolumeActions.js:218 -#: js/musicutils.js:704 -#: js/musicutils.js:755 -#: js/musicutils.js:798 -#: js/musicutils.js:820 -#: js/musicutils.js:1136 -#: js/synthutils.js:118 -#: js/modewidget.js:919 -#.TRANS: customize voice -msgid "custom" +#: js/utils/musicutils.js:1172 +#.TRANS: musical temperament +msgid "Pythagorean" msgstr "" -#: js/WidgetBlocks.js:432 -msgid "The Meter block opens a tool to select strong beats for the meter." +#: js/utils/musicutils.js:1174 +#.TRANS: musical temperament +msgid "just intonation" msgstr "" -#: js/WidgetBlocks.js:473 -msgid "The oscilloscope block opens a tool to visualize waveforms." +#: js/utils/musicutils.js:1176 +#.TRANS: musical temperament +msgid "meantone" msgstr "" -#: js/WidgetBlocks.js:478 -msgid "oscilloscope" +#: js/utils/musicutils.js:1193 +msgid "major 7th" msgstr "" -#: js/WidgetBlocks.js:530 -msgid "The Custom mode block opens a tool to explore musical mode (the spacing of the notes in a scale)." +#: js/utils/musicutils.js:1194 +msgid "minor 7th" msgstr "" -#: js/WidgetBlocks.js:536 -#.TRANS: musical mode is the pattern of half-steps in an octave, e.g., Major or Minor modes -msgid "custom mode" +#: js/utils/musicutils.js:1195 +msgid "dominant 7th" msgstr "" -#: js/WidgetBlocks.js:570 -msgid "The Tempo block opens a metronome to visualize the beat." +#: js/utils/musicutils.js:1196 +msgid "minor-major 7th" msgstr "" -#: js/WidgetBlocks.js:617 -msgid "The Arpeggio Widget is used to compose chord sequences." +#: js/utils/musicutils.js:1197 +msgid "fully-diminished 7th" msgstr "" -#: js/WidgetBlocks.js:623 -#: js/IntervalsBlocks.js:683 -msgid "arpeggio" +#: js/utils/musicutils.js:1198 +msgid "half-diminished 7th" msgstr "" -#: js/WidgetBlocks.js:677 -msgid "The Pitch drum matrix is used to map pitches to drum sounds." +#: js/utils/musicutils.js:1557 +#: js/utils/musicutils.js:1569 +msgid "Equal (12EDO)" msgstr "" -#: js/WidgetBlocks.js:682 -#.TRANS: makes a mapping between pitches and drum sounds -msgid "pitch-drum mapper" +#: js/utils/musicutils.js:1558 +#: js/utils/musicutils.js:1570 +msgid "5-limit Just Intonation" msgstr "" -#: js/WidgetBlocks.js:724 -msgid "You must have at least one pitch block and one drum block in the matrix." +#: js/utils/musicutils.js:1559 +#: js/utils/musicutils.js:1571 +msgid "Pythagorean (3-limit JI)" msgstr "" -#: js/WidgetBlocks.js:746 -msgid "The Pitch slider tool to is used to generate pitches at selected frequencies." +#: js/utils/musicutils.js:1560 +#: js/utils/musicutils.js:1561 +#: js/utils/musicutils.js:1572 +#: js/utils/musicutils.js:1573 +msgid "Meantone" msgstr "" -#: js/WidgetBlocks.js:751 -#.TRANS: widget to generate pitches using a slider -msgid "pitch slider" +#: js/utils/musicutils.js:1574 +msgid "Custom" msgstr "" -#: js/WidgetBlocks.js:788 -msgid "chromatic keyboard" +#: js/utils/musicutils.js:5387 +#: js/utils/musicutils.js:5430 +msgid "current" msgstr "" -#: js/WidgetBlocks.js:815 -#: js/WidgetBlocks.js:874 -#.TRANS: widget to generate pitches using a slider -msgid "music keyboard" +#: js/utils/musicutils.js:5390 +#: js/utils/musicutils.js:5421 +msgid "next" msgstr "" -#: js/WidgetBlocks.js:859 -#: js/WidgetBlocks.js:866 -msgid "The Music keyboard block opens a piano keyboard that can be used to create notes." +#: js/utils/musicutils.js:5393 +#: js/utils/musicutils.js:5426 +msgid "previous" msgstr "" -#: js/WidgetBlocks.js:910 -msgid "The Pitch staircase tool to is used to generate pitches from a given ratio." +#: js/utils/synthutils.js:120 +#.TRANS: simple monotone synthesizer +msgid "simple-2" msgstr "" -#: js/WidgetBlocks.js:917 -#.TRANS: generate a progressive sequence of pitches -msgid "pitch staircase" +#: js/utils/synthutils.js:122 +#.TRANS: simple monotone synthesizer +msgid "simple-3" msgstr "" -#: js/WidgetBlocks.js:982 -msgid "The Rhythm Maker block opens a tool to create drum machines." +#: js/utils/synthutils.js:124 +#.TRANS: simple monotone synthesizer +msgid "simple-4" msgstr "" -#: js/WidgetBlocks.js:1036 -msgid "G major scale" +#: js/utils/synthutils.js:162 +#.TRANS: musical instrument +msgid "taiko" msgstr "" -#: js/WidgetBlocks.js:1064 -msgid "C major scale" +#: js/blocks/ActionBlocks.js:58 +msgid "The Return block will return a value from an action." msgstr "" -#: js/WidgetBlocks.js:1097 -msgid "The Phrase Maker block opens a tool to create musical phrases." +#: js/blocks/ActionBlocks.js:75 +msgid "return" msgstr "" -#: js/WidgetBlocks.js:1104 -#.TRANS: assigns pitch to a sequence of beats to generate a melody -msgid "phrase maker" +#: js/blocks/ActionBlocks.js:128 +msgid "The Return to URL block will return a value to a webpage." msgstr "" -#: js/WidgetBlocks.js:1168 -msgid "You must have at least one pitch block and one rhythm block in the matrix." +#: js/blocks/ActionBlocks.js:145 +msgid "return to URL" msgstr "" -#: js/WidgetBlocks.js:1220 -msgid "The Status block opens a tool for inspecting the status of Music Blocks as it is running." +#: js/blocks/ActionBlocks.js:233 +#: js/blocks/ActionBlocks.js:290 +#: js/blocks/ActionBlocks.js:501 +#: js/blocks/ActionBlocks.js:688 +msgid "The Calculate block returns a value calculated by an action." msgstr "" -#: js/IntervalsBlocks.js:45 -msgid "set temperament" +#: js/blocks/ActionBlocks.js:251 +#: js/blocks/ActionBlocks.js:517 +#: js/blocks/ActionBlocks.js:707 +msgid "calculate" msgstr "" -#: js/IntervalsBlocks.js:63 -#: js/MediaBlocks.js:746 -#: js/PitchBlocks.js:657 -#: js/PitchBlocks.js:933 -#: js/PitchBlocks.js:972 -#: js/PitchBlocks.js:1005 -#: js/PitchBlocks.js:1166 -#: js/PitchBlocks.js:1679 -#: js/PitchBlocks.js:1720 -#: js/PitchBlocks.js:1827 -#: js/ToneBlocks.js:1025 -#.TRANS: adjusts the shift up or down by one octave (twelve half-steps in the interval between two notes, one having twice or half the frequency in Hz of the other.) -msgid "octave" +#: js/blocks/ActionBlocks.js:376 +#: js/blocks/ActionBlocks.js:593 +#: js/blocks/ActionBlocks.js:942 +#: js/blocks/ActionBlocks.js:1389 +#.TRANS: do is the do something or take an action. +msgid "The Do block is used to initiate an action." msgstr "" -#: js/IntervalsBlocks.js:99 -msgid "The Temperament name block is used to select a tuning method." +#: js/blocks/ActionBlocks.js:390 +#: js/blocks/ActionBlocks.js:610 +#: js/blocks/ActionBlocks.js:959 +#: js/blocks/ActionBlocks.js:1048 +#: js/blocks/MeterBlocks.js:769 +msgid "do1" msgstr "" -#: js/IntervalsBlocks.js:161 -msgid "doubly" +#: js/blocks/ActionBlocks.js:390 +#: js/blocks/ActionBlocks.js:610 +#: js/blocks/ActionBlocks.js:959 +#: js/blocks/ActionBlocks.js:1048 +#: js/blocks/FlowBlocks.js:742 +#: js/blocks/FlowBlocks.js:822 +#: js/blocks/MeterBlocks.js:769 +msgid "do" msgstr "" -#: js/IntervalsBlocks.js:166 -msgid "The Doubly block will double the size of an interval." +#: js/blocks/ActionBlocks.js:791 +#: js/blocks/ActionBlocks.js:865 +msgid "The Arg block contains the value of an argument passed to an action." msgstr "" -#: js/IntervalsBlocks.js:262 -msgid "interval number" +#: js/blocks/ActionBlocks.js:806 +#: js/blocks/ActionBlocks.js:878 +msgid "arg" msgstr "" -#: js/IntervalsBlocks.js:330 -#.TRANS: measure the distance between two pitches in semi-tones -msgid "semi-tone interval measure" +#: js/blocks/ActionBlocks.js:836 +#: js/blocks/ActionBlocks.js:900 +#: js/blocks/ActionBlocks.js:908 +msgid "Invalid argument" msgstr "" -#: js/IntervalsBlocks.js:397 -#: js/IntervalsBlocks.js:513 -msgid "You must use two pitch blocks when measuring an interval." +#: js/blocks/ActionBlocks.js:944 +msgid "In the example, it is used with the One of block to choose a random phase." msgstr "" -#: js/IntervalsBlocks.js:439 -msgid "The Scalar interval block measures the distance between two notes in the current key and mode." +#: js/blocks/ActionBlocks.js:1019 +#: js/blocks/ActionBlocks.js:1026 +msgid "The Listen block is used to listen for an event such as a mouse click." msgstr "" -#: js/IntervalsBlocks.js:445 -#.TRANS: measure the distance between two pitches in steps of musical scale -msgid "scalar interval measure" +#: js/blocks/ActionBlocks.js:1028 +msgid "When the event happens, an action is taken." msgstr "" -#: js/IntervalsBlocks.js:592 -#: js/musicutils.js:637 -#: js/musicutils.js:908 -#.TRANS: perfect is a music term related to intervals -msgid "perfect" +#: js/blocks/ActionBlocks.js:1045 +msgid "on" msgstr "" -#: js/IntervalsBlocks.js:621 -msgid "In the figure, we add sol# to sol." +#: js/blocks/ActionBlocks.js:1048 +#: js/blocks/ActionBlocks.js:1049 +#: js/blocks/ActionBlocks.js:1153 +msgid "event" msgstr "" -#: js/IntervalsBlocks.js:627 -#: js/OrnamentBlocks.js:220 -#.TRANS: calculate a relative step between notes based on semi-tones -msgid "semi-tone interval" +#: js/blocks/ActionBlocks.js:1133 +msgid "The Broadcast block is used to trigger an event." msgstr "" -#: js/IntervalsBlocks.js:676 -msgid "The output of the example is: do, mi, sol, sol, ti, mi" +#: js/blocks/ActionBlocks.js:1151 +msgid "broadcast" msgstr "" -#: js/IntervalsBlocks.js:735 -msgid "The Chord block calculates common chords." +#: js/blocks/ActionBlocks.js:1208 +msgid "Each Start block is a separate voice." msgstr "" -#: js/IntervalsBlocks.js:737 -msgid "In the figure, we generate a C-major chord." +#: js/blocks/ActionBlocks.js:1304 +msgid "It is often used for storing a phrase of music that is repeated." msgstr "" -#: js/IntervalsBlocks.js:742 -msgid "chord" +#: js/blocks/ActionBlocks.js:1495 +msgid "define temperament" msgstr "" -#: js/IntervalsBlocks.js:794 -msgid "The Ratio Interval block calculates an interval based on a ratio." +#: js/blocks/BooleanBlocks.js:44 +msgid "The Not block is the logical not operator." msgstr "" -#: js/IntervalsBlocks.js:799 -msgid "ratio interval" +#: js/blocks/BooleanBlocks.js:62 +msgid "not" +msgstr "නැති" + +#: js/blocks/BooleanBlocks.js:134 +msgid "The And block is the logical and operator." msgstr "" -#: js/IntervalsBlocks.js:868 -msgid "In the figure, we add la to sol." +#: js/blocks/BooleanBlocks.js:152 +msgid "and" +msgstr "සහ" + +#: js/blocks/BooleanBlocks.js:218 +msgid "The Or block is the logical or operator." msgstr "" -#: js/IntervalsBlocks.js:924 -#.TRANS: define a custom mode -msgid "define mode" +#: js/blocks/BooleanBlocks.js:236 +msgid "or" +msgstr "හෝ" + +#: js/blocks/BooleanBlocks.js:302 +msgid "The XOR block is the logical XOR operator." msgstr "" -#: js/IntervalsBlocks.js:977 -msgid "movable Do" +#: js/blocks/BooleanBlocks.js:320 +msgid "xor" msgstr "" -#: js/IntervalsBlocks.js:1028 -#.TRANS: mode length is the number of notes in the mode, e.g., 7 for major and minor scales; 12 for chromatic scales -msgid "mode length" +#: js/blocks/BooleanBlocks.js:808 +msgid "The Equal block returns True if the two numbers are equal." msgstr "" -#: js/IntervalsBlocks.js:1037 -msgid "The Mode length block is the number of notes in the current scale." +#: js/blocks/BooleanBlocks.js:909 +msgid "The Not-equal-to block returns True if the two numbers are not equal to each other." msgstr "" -#: js/IntervalsBlocks.js:1039 -msgid "Most Western scales have 7 notes." +#: js/blocks/BooleanBlocks.js:1008 +msgid "The Boolean block is used to specify true or false." msgstr "" -#: js/IntervalsBlocks.js:1088 -#.TRANS: the mode in music is 'major', 'minor', etc. -msgid "current mode" +#: js/blocks/BoxesBlocks.js:53 +#: js/blocks/BoxesBlocks.js:59 +msgid "The Add-to block is used to add to the value stored in a box." msgstr "" -#: js/IntervalsBlocks.js:1141 -#.TRANS: the key is a group of pitches with which a music composition is created -msgid "current key" +#: js/blocks/BoxesBlocks.js:61 +msgid "It can also be used with other blocks such as Color and Pen size." msgstr "" -#: js/IntervalsBlocks.js:1193 -#: js/IntervalsBlocks.js:1238 -#.TRANS: set the key and mode, e.g. C Major -msgid "set key" +#: js/blocks/BoxesBlocks.js:73 +msgid "add" msgstr "" -#: js/IntervalsBlocks.js:1247 -#: js/IntervalsBlocks.js:1253 -msgid "The Set key block is used to set the key and mode," +#: js/blocks/BoxesBlocks.js:75 +#: js/widgets/temperament.js:857 +msgid "to" msgstr "" -#: js/IntervalsBlocks.js:1253 -msgid "eg C Major" +#: js/blocks/BoxesBlocks.js:75 +#: js/blocks/BoxesBlocks.js:595 +#: js/blocks/HeapBlocks.js:544 +msgid "value1" msgstr "" -#: js/IntervalsBlocks.js:1266 -#: js/DictBlocks.js:215 -#: js/DictBlocks.js:216 -#: js/DictBlocks.js:289 -#: js/DictBlocks.js:290 -#: js/DictBlocks.js:357 -#: js/DictBlocks.js:430 -#: js/DictBlocks.js:431 -#.TRANS: key, e.g., C in C Major -msgid "key" +#: js/blocks/BoxesBlocks.js:118 +msgid "Block does not support incrementing." msgstr "" -#: js/ActionBlocks.js:58 -msgid "The Return block will return a value from an action." +#: js/blocks/BoxesBlocks.js:152 +msgid "The Add-1-to block adds one to the value stored in a box." msgstr "" -#: js/ActionBlocks.js:75 -msgid "return" +#: js/blocks/BoxesBlocks.js:163 +msgid "add 1 to" msgstr "" -#: js/ActionBlocks.js:128 -msgid "The Return to URL block will return a value to a webpage." +#: js/blocks/BoxesBlocks.js:211 +msgid "The Subtract-1-from block subtracts one from the value stored in a box." msgstr "" -#: js/ActionBlocks.js:145 -msgid "return to URL" +#: js/blocks/BoxesBlocks.js:222 +msgid "subtract 1 from" msgstr "" -#: js/ActionBlocks.js:233 -#: js/ActionBlocks.js:290 -#: js/ActionBlocks.js:501 -#: js/ActionBlocks.js:688 -msgid "The Calculate block returns a value calculated by an action." +#: js/blocks/BoxesBlocks.js:270 +#: js/blocks/BoxesBlocks.js:387 +msgid "The Box block returns the value stored in a box." msgstr "" -#: js/ActionBlocks.js:251 -#: js/ActionBlocks.js:517 -#: js/ActionBlocks.js:707 -msgid "calculate" +#: js/blocks/BoxesBlocks.js:500 +#: js/blocks/BoxesBlocks.js:576 +msgid "The Store in block will store a value in a box." msgstr "" -#: js/ActionBlocks.js:376 -#: js/ActionBlocks.js:593 -#: js/ActionBlocks.js:942 -#: js/ActionBlocks.js:1389 -#.TRANS: do is the do something or take an action. -msgid "The Do block is used to initiate an action." +#: js/blocks/BoxesBlocks.js:595 +#: js/blocks/EnsembleBlocks.js:391 +#: js/blocks/EnsembleBlocks.js:402 +msgid "name1" msgstr "" -#: js/ActionBlocks.js:390 -#: js/ActionBlocks.js:610 -#: js/ActionBlocks.js:959 -#: js/ActionBlocks.js:1048 -#: js/MeterBlocks.js:769 -msgid "do1" +#: js/blocks/BoxesBlocks.js:652 +msgid "The Box2 block returns the value stored in Box2." msgstr "" -#: js/ActionBlocks.js:390 -#: js/ActionBlocks.js:610 -#: js/ActionBlocks.js:959 -#: js/ActionBlocks.js:1048 -#: js/FlowBlocks.js:742 -#: js/FlowBlocks.js:822 -#: js/MeterBlocks.js:769 -msgid "do" +#: js/blocks/BoxesBlocks.js:703 +msgid "The Store in Box2 block is used to store a value in Box2." msgstr "" -#: js/ActionBlocks.js:791 -#: js/ActionBlocks.js:865 -msgid "The Arg block contains the value of an argument passed to an action." +#: js/blocks/BoxesBlocks.js:715 +msgid "store in box2" msgstr "" -#: js/ActionBlocks.js:806 -#: js/ActionBlocks.js:878 -msgid "arg" +#: js/blocks/BoxesBlocks.js:761 +msgid "The Box1 block returns the value stored in Box1." msgstr "" -#: js/ActionBlocks.js:836 -#: js/ActionBlocks.js:900 -#: js/ActionBlocks.js:908 -msgid "Invalid argument" +#: js/blocks/BoxesBlocks.js:812 +msgid "The Store in Box1 block is used to store a value in Box1." msgstr "" -#: js/ActionBlocks.js:944 -msgid "In the example, it is used with the One of block to choose a random phase." +#: js/blocks/BoxesBlocks.js:826 +msgid "store in box1" msgstr "" -#: js/ActionBlocks.js:1019 -#: js/ActionBlocks.js:1026 -msgid "The Listen block is used to listen for an event such as a mouse click." +#: js/blocks/DictBlocks.js:77 +msgid "show dictionary" msgstr "" -#: js/ActionBlocks.js:1028 -msgid "When the event happens, an action is taken." +#: js/blocks/DictBlocks.js:80 +#: js/blocks/DictBlocks.js:145 +#: js/blocks/DictBlocks.js:216 +#: js/blocks/DictBlocks.js:290 +#: js/blocks/ProgramBlocks.js:396 +#: js/blocks/ProgramBlocks.js:501 +#: js/blocks/ProgramBlocks.js:664 +msgid "My Dictionary" msgstr "" -#: js/ActionBlocks.js:1045 -msgid "on" +#: js/blocks/DictBlocks.js:129 +msgid "The Dictionary block returns a dictionary." msgstr "" -#: js/ActionBlocks.js:1048 -#: js/ActionBlocks.js:1049 -#: js/ActionBlocks.js:1153 -msgid "event" +#: js/blocks/DictBlocks.js:197 +#: js/blocks/DictBlocks.js:339 +msgid "The Get-dict block returns a value in the dictionary for a specified key." msgstr "" -#: js/ActionBlocks.js:1133 -msgid "The Broadcast block is used to trigger an event." +#: js/blocks/DictBlocks.js:212 +#: js/blocks/DictBlocks.js:354 +#.TRANS: retrieve a value from the dictionary with a given key +msgid "get value" msgstr "" -#: js/ActionBlocks.js:1151 -msgid "broadcast" +#: js/blocks/DictBlocks.js:215 +#: js/blocks/DictBlocks.js:216 +#: js/blocks/DictBlocks.js:289 +#: js/blocks/DictBlocks.js:290 +#: js/blocks/DictBlocks.js:357 +#: js/blocks/DictBlocks.js:430 +#: js/blocks/DictBlocks.js:431 +msgid "key2" msgstr "" -#: js/ActionBlocks.js:1208 -msgid "Each Start block is a separate voice." +#: js/blocks/DictBlocks.js:215 +#: js/blocks/DictBlocks.js:216 +#: js/blocks/DictBlocks.js:289 +#: js/blocks/DictBlocks.js:290 +#: js/blocks/DictBlocks.js:357 +#: js/blocks/DictBlocks.js:430 +#: js/blocks/DictBlocks.js:431 +#: js/blocks/IntervalsBlocks.js:1462 +#.TRANS: key, e.g., C in C Major +msgid "key" msgstr "" -#: js/ActionBlocks.js:1304 -msgid "It is often used for storing a phrase of music that is repeated." +#: js/blocks/DictBlocks.js:271 +#: js/blocks/DictBlocks.js:411 +msgid "The Set-dict block sets a value in the dictionary for a specified key." msgstr "" -#: js/ActionBlocks.js:1495 -msgid "define temperament" +#: js/blocks/DictBlocks.js:286 +#: js/blocks/DictBlocks.js:427 +#.TRANS: set a value in the dictionary for a given key +msgid "set value" msgstr "" -#: js/EnsembleBlocks.js:66 +#: js/blocks/EnsembleBlocks.js:66 msgid "mouse index heap" msgstr "" -#: js/EnsembleBlocks.js:68 +#: js/blocks/EnsembleBlocks.js:68 msgid "The Mouse index heap block returns a value in the heap at a specified location for a specified mouse." msgstr "" -#: js/EnsembleBlocks.js:77 -#: js/EnsembleBlocks.js:1080 +#: js/blocks/EnsembleBlocks.js:77 +#: js/blocks/EnsembleBlocks.js:1080 msgid "mouse name" msgstr "" -#: js/EnsembleBlocks.js:77 -#: js/EnsembleBlocks.js:92 -#: js/HeapBlocks.js:544 +#: js/blocks/EnsembleBlocks.js:77 +#: js/blocks/EnsembleBlocks.js:92 +#: js/blocks/HeapBlocks.js:544 #.TRANS: value1 is a numeric value (JAPANESE ONLY) msgid "index" msgstr "" -#: js/EnsembleBlocks.js:80 +#: js/blocks/EnsembleBlocks.js:80 msgid "turtle index heap" msgstr "" -#: js/EnsembleBlocks.js:82 +#: js/blocks/EnsembleBlocks.js:82 msgid "The Turtle index heap block returns a value in the heap at a specified location for a specified turtle." msgstr "" -#: js/EnsembleBlocks.js:90 -#: js/EnsembleBlocks.js:167 -#: js/EnsembleBlocks.js:230 -#: js/EnsembleBlocks.js:316 -#: js/EnsembleBlocks.js:362 -#: js/EnsembleBlocks.js:400 -#: js/EnsembleBlocks.js:454 -#: js/EnsembleBlocks.js:504 -#: js/EnsembleBlocks.js:550 -#: js/EnsembleBlocks.js:597 -#: js/EnsembleBlocks.js:651 -#: js/EnsembleBlocks.js:763 -#: js/EnsembleBlocks.js:854 -#: js/EnsembleBlocks.js:915 -#: js/EnsembleBlocks.js:955 -#: js/EnsembleBlocks.js:1219 -#: js/EnsembleBlocks.js:1293 +#: js/blocks/EnsembleBlocks.js:90 +#: js/blocks/EnsembleBlocks.js:167 +#: js/blocks/EnsembleBlocks.js:230 +#: js/blocks/EnsembleBlocks.js:316 +#: js/blocks/EnsembleBlocks.js:362 +#: js/blocks/EnsembleBlocks.js:400 +#: js/blocks/EnsembleBlocks.js:454 +#: js/blocks/EnsembleBlocks.js:504 +#: js/blocks/EnsembleBlocks.js:550 +#: js/blocks/EnsembleBlocks.js:597 +#: js/blocks/EnsembleBlocks.js:651 +#: js/blocks/EnsembleBlocks.js:763 +#: js/blocks/EnsembleBlocks.js:854 +#: js/blocks/EnsembleBlocks.js:915 +#: js/blocks/EnsembleBlocks.js:955 +#: js/blocks/EnsembleBlocks.js:1219 +#: js/blocks/EnsembleBlocks.js:1293 #.TRANS: Yertle is the name of a turtle. msgid "Yertle" msgstr "" -#: js/EnsembleBlocks.js:92 -#: js/EnsembleBlocks.js:1089 +#: js/blocks/EnsembleBlocks.js:92 +#: js/blocks/EnsembleBlocks.js:1089 msgid "turtle name" msgstr "" -#: js/EnsembleBlocks.js:122 -#: js/EnsembleBlocks.js:1197 -#: js/HeapBlocks.js:474 -#: js/HeapBlocks.js:572 +#: js/blocks/EnsembleBlocks.js:122 +#: js/blocks/EnsembleBlocks.js:1197 +#: js/blocks/HeapBlocks.js:474 +#: js/blocks/HeapBlocks.js:572 msgid "Index must be > 0." msgstr "" -#: js/EnsembleBlocks.js:127 -#: js/HeapBlocks.js:479 -#: js/HeapBlocks.js:577 +#: js/blocks/EnsembleBlocks.js:127 +#: js/blocks/HeapBlocks.js:479 +#: js/blocks/HeapBlocks.js:577 msgid "Maximum heap size is 1000." msgstr "" -#: js/EnsembleBlocks.js:145 +#: js/blocks/EnsembleBlocks.js:145 msgid "stop mouse" msgstr "" -#: js/EnsembleBlocks.js:147 +#: js/blocks/EnsembleBlocks.js:147 msgid "The Stop mouse block stops the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:158 +#: js/blocks/EnsembleBlocks.js:158 msgid "stop turtle" msgstr "" -#: js/EnsembleBlocks.js:160 +#: js/blocks/EnsembleBlocks.js:160 msgid "The Stop turtle block stops the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:184 -#: js/EnsembleBlocks.js:247 -#: js/EnsembleBlocks.js:413 -#: js/EnsembleBlocks.js:468 -#: js/EnsembleBlocks.js:706 -#: js/EnsembleBlocks.js:808 -#: js/EnsembleBlocks.js:870 -#: js/EnsembleBlocks.js:1190 -#: js/EnsembleBlocks.js:1253 +#: js/blocks/EnsembleBlocks.js:184 +#: js/blocks/EnsembleBlocks.js:247 +#: js/blocks/EnsembleBlocks.js:413 +#: js/blocks/EnsembleBlocks.js:468 +#: js/blocks/EnsembleBlocks.js:706 +#: js/blocks/EnsembleBlocks.js:808 +#: js/blocks/EnsembleBlocks.js:870 +#: js/blocks/EnsembleBlocks.js:1190 +#: js/blocks/EnsembleBlocks.js:1253 msgid "Cannot find mouse" msgstr "" -#: js/EnsembleBlocks.js:186 -#: js/EnsembleBlocks.js:249 -#: js/EnsembleBlocks.js:415 -#: js/EnsembleBlocks.js:470 -#: js/EnsembleBlocks.js:708 -#: js/EnsembleBlocks.js:810 -#: js/EnsembleBlocks.js:872 -#: js/EnsembleBlocks.js:1192 -#: js/EnsembleBlocks.js:1255 +#: js/blocks/EnsembleBlocks.js:186 +#: js/blocks/EnsembleBlocks.js:249 +#: js/blocks/EnsembleBlocks.js:415 +#: js/blocks/EnsembleBlocks.js:470 +#: js/blocks/EnsembleBlocks.js:708 +#: js/blocks/EnsembleBlocks.js:810 +#: js/blocks/EnsembleBlocks.js:872 +#: js/blocks/EnsembleBlocks.js:1192 +#: js/blocks/EnsembleBlocks.js:1255 msgid "Cannot find turtle" msgstr "" -#: js/EnsembleBlocks.js:206 +#: js/blocks/EnsembleBlocks.js:206 msgid "start mouse" msgstr "" -#: js/EnsembleBlocks.js:209 +#: js/blocks/EnsembleBlocks.js:209 msgid "The Start mouse block starts the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:220 +#: js/blocks/EnsembleBlocks.js:220 msgid "start turtle" msgstr "" -#: js/EnsembleBlocks.js:223 +#: js/blocks/EnsembleBlocks.js:223 msgid "The Start turtle block starts the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:256 +#: js/blocks/EnsembleBlocks.js:256 msgid "Mouse is already running." msgstr "" -#: js/EnsembleBlocks.js:258 +#: js/blocks/EnsembleBlocks.js:258 msgid "Turtle is already running." msgstr "" -#: js/EnsembleBlocks.js:282 +#: js/blocks/EnsembleBlocks.js:282 msgid "Cannot find start block" msgstr "" -#: js/EnsembleBlocks.js:292 +#: js/blocks/EnsembleBlocks.js:292 #.TRANS: pen color for this mouse msgid "mouse color" msgstr "" -#: js/EnsembleBlocks.js:294 +#: js/blocks/EnsembleBlocks.js:294 msgid "The Mouse color block returns the pen color of the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:306 +#: js/blocks/EnsembleBlocks.js:306 #.TRANS: pen color for this turtle msgid "turtle color" msgstr "" -#: js/EnsembleBlocks.js:308 +#: js/blocks/EnsembleBlocks.js:308 msgid "The Turtle color block returns the pen color of the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:338 +#: js/blocks/EnsembleBlocks.js:338 #.TRANS: heading (compass direction) for this mouse msgid "mouse heading" msgstr "" -#: js/EnsembleBlocks.js:340 +#: js/blocks/EnsembleBlocks.js:340 msgid "The Mouse heading block returns the heading of the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:352 +#: js/blocks/EnsembleBlocks.js:352 #.TRANS: heading (compass direction) for this turtle msgid "turtle heading" msgstr "" -#: js/EnsembleBlocks.js:354 +#: js/blocks/EnsembleBlocks.js:354 msgid "The Turtle heading block returns the heading of the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:384 -#: js/EnsembleBlocks.js:439 +#: js/blocks/EnsembleBlocks.js:384 +#: js/blocks/EnsembleBlocks.js:439 #.TRANS: set xy position for this mouse msgid "set mouse" msgstr "" -#: js/EnsembleBlocks.js:391 -#: js/EnsembleBlocks.js:402 -#: js/BoxesBlocks.js:595 -msgid "name1" -msgstr "" - -#: js/EnsembleBlocks.js:391 -#: js/EnsembleBlocks.js:402 -#: js/ProgramBlocks.js:881 -#: js/GraphicsBlocks.js:235 -#: js/GraphicsBlocks.js:313 -#: js/GraphicsBlocks.js:436 -#: js/GraphicsBlocks.js:487 -#: js/GraphicsBlocks.js:534 -#: js/GraphicsBlocks.js:750 +#: js/blocks/EnsembleBlocks.js:391 +#: js/blocks/EnsembleBlocks.js:402 +#: js/blocks/GraphicsBlocks.js:235 +#: js/blocks/GraphicsBlocks.js:313 +#: js/blocks/GraphicsBlocks.js:436 +#: js/blocks/GraphicsBlocks.js:487 +#: js/blocks/GraphicsBlocks.js:534 +#: js/blocks/GraphicsBlocks.js:750 +#: js/blocks/ProgramBlocks.js:881 msgid "x" msgstr "x" -#: js/EnsembleBlocks.js:391 -#: js/EnsembleBlocks.js:402 -#: js/ProgramBlocks.js:881 -#: js/GraphicsBlocks.js:149 -#: js/GraphicsBlocks.js:313 -#: js/GraphicsBlocks.js:436 -#: js/GraphicsBlocks.js:487 -#: js/GraphicsBlocks.js:534 -#: js/GraphicsBlocks.js:750 +#: js/blocks/EnsembleBlocks.js:391 +#: js/blocks/EnsembleBlocks.js:402 +#: js/blocks/GraphicsBlocks.js:149 +#: js/blocks/GraphicsBlocks.js:313 +#: js/blocks/GraphicsBlocks.js:436 +#: js/blocks/GraphicsBlocks.js:487 +#: js/blocks/GraphicsBlocks.js:534 +#: js/blocks/GraphicsBlocks.js:750 +#: js/blocks/ProgramBlocks.js:881 msgid "y" msgstr "y" -#: js/EnsembleBlocks.js:395 -#: js/EnsembleBlocks.js:452 +#: js/blocks/EnsembleBlocks.js:395 +#: js/blocks/EnsembleBlocks.js:452 #.TRANS: set xy position for this turtle msgid "set turtle" msgstr "" -#: js/EnsembleBlocks.js:433 +#: js/blocks/EnsembleBlocks.js:433 msgid "The Set mouse block sends a stack of blocks to be run by the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:446 +#: js/blocks/EnsembleBlocks.js:446 msgid "The Set turtle block sends a stack of blocks to be run by the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:480 +#: js/blocks/EnsembleBlocks.js:480 #.TRANS: y position for this mouse msgid "mouse y" msgstr "" -#: js/EnsembleBlocks.js:482 +#: js/blocks/EnsembleBlocks.js:482 msgid "The Y mouse block returns the Y position of the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:494 +#: js/blocks/EnsembleBlocks.js:494 #.TRANS: y position for this turtle msgid "turtle y" msgstr "කැස්බෑවා" -#: js/EnsembleBlocks.js:496 +#: js/blocks/EnsembleBlocks.js:496 msgid "The Y turtle block returns the Y position of the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:526 +#: js/blocks/EnsembleBlocks.js:526 #.TRANS: x position for this mouse msgid "mouse x" msgstr "" -#: js/EnsembleBlocks.js:528 +#: js/blocks/EnsembleBlocks.js:528 msgid "The X mouse block returns the X position of the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:540 +#: js/blocks/EnsembleBlocks.js:540 #.TRANS: x position for this turtle msgid "turtle x" msgstr "කැස්බෑවා" -#: js/EnsembleBlocks.js:542 +#: js/blocks/EnsembleBlocks.js:542 msgid "The X turtle block returns the X position of the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:573 +#: js/blocks/EnsembleBlocks.js:573 #.TRANS: notes played by this mouse msgid "mouse notes played" msgstr "" -#: js/EnsembleBlocks.js:575 +#: js/blocks/EnsembleBlocks.js:575 msgid "The Mouse elapse notes block returns the number of notes played by the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:587 +#: js/blocks/EnsembleBlocks.js:587 #.TRANS: notes played by this turtle msgid "turtle notes played" msgstr "" -#: js/EnsembleBlocks.js:589 +#: js/blocks/EnsembleBlocks.js:589 msgid "The Turtle elapse notes block returns the number of notes played by the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:627 +#: js/blocks/EnsembleBlocks.js:627 #.TRANS: convert current note for this turtle to piano key (1-88) msgid "mouse pitch number" msgstr "" -#: js/EnsembleBlocks.js:629 +#: js/blocks/EnsembleBlocks.js:629 msgid "The Mouse pitch block returns the current pitch number being played by the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:641 +#: js/blocks/EnsembleBlocks.js:641 #.TRANS: convert current note for this turtle to piano key (1-88) msgid "turtle pitch number" msgstr "" -#: js/EnsembleBlocks.js:643 -msgid "The Turrle pitch block returns the current pitch number being played by the specified turtle." +#: js/blocks/EnsembleBlocks.js:643 +msgid "The Turtle pitch block returns the current pitch number being played by the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:747 -#: js/EnsembleBlocks.js:819 +#: js/blocks/EnsembleBlocks.js:747 +#: js/blocks/EnsembleBlocks.js:819 #.TRANS: note value is the duration of the note played by this mouse msgid "mouse note value" msgstr "" -#: js/EnsembleBlocks.js:757 +#: js/blocks/EnsembleBlocks.js:757 #.TRANS: note value is the duration of the note played by this turtle msgid "turtle note value" msgstr "" -#: js/EnsembleBlocks.js:830 +#: js/blocks/EnsembleBlocks.js:830 #.TRANS: sync is short for synchronization msgid "mouse sync" msgstr "" -#: js/EnsembleBlocks.js:832 +#: js/blocks/EnsembleBlocks.js:832 msgid "The Mouse sync block aligns the beat count between mice." msgstr "" -#: js/EnsembleBlocks.js:844 +#: js/blocks/EnsembleBlocks.js:844 #.TRANS: sync is short for synchronization msgid "turtle sync" msgstr "" -#: js/EnsembleBlocks.js:846 +#: js/blocks/EnsembleBlocks.js:846 msgid "The Turtle sync block aligns the beat count between turtles." msgstr "" -#: js/EnsembleBlocks.js:887 +#: js/blocks/EnsembleBlocks.js:887 msgid "The Found mouse block will return true if the specified mouse can be found." msgstr "" -#: js/EnsembleBlocks.js:893 +#: js/blocks/EnsembleBlocks.js:893 msgid "found mouse" msgstr "" -#: js/EnsembleBlocks.js:903 +#: js/blocks/EnsembleBlocks.js:903 msgid "The Found turtle block will return true if the specified turtle can be found." msgstr "" -#: js/EnsembleBlocks.js:909 +#: js/blocks/EnsembleBlocks.js:909 msgid "found turtle" msgstr "" -#: js/EnsembleBlocks.js:932 +#: js/blocks/EnsembleBlocks.js:932 msgid "new mouse" msgstr "" -#: js/EnsembleBlocks.js:934 +#: js/blocks/EnsembleBlocks.js:934 msgid "The New mouse block will create a new mouse." msgstr "" -#: js/EnsembleBlocks.js:945 +#: js/blocks/EnsembleBlocks.js:945 msgid "new turtle" msgstr "" -#: js/EnsembleBlocks.js:947 +#: js/blocks/EnsembleBlocks.js:947 msgid "The New turtle block will create a new turtle." msgstr "" -#: js/EnsembleBlocks.js:1011 +#: js/blocks/EnsembleBlocks.js:1011 msgid "set mouse color" msgstr "" -#: js/EnsembleBlocks.js:1014 -msgid "The Set-mouse-color block is used to set the color of a mouse." -msgstr "" - -#: js/EnsembleBlocks.js:1020 -msgid "set turtle color" -msgstr "" - -#: js/EnsembleBlocks.js:1023 -msgid "The Set-turtle-color block is used to set the color of a turtle." -msgstr "" - -#: js/EnsembleBlocks.js:1083 -msgid "The Mouse-name block returns the name of a mouse." -msgstr "" - -#: js/EnsembleBlocks.js:1092 -msgid "The Turtle-name block returns the name of a turtle." -msgstr "" - -#: js/EnsembleBlocks.js:1115 -msgid "mouse count" -msgstr "" - -#: js/EnsembleBlocks.js:1118 -msgid "The Mouse-count block returns the number of mice." -msgstr "" - -#: js/EnsembleBlocks.js:1124 -msgid "turtle count" -msgstr "" - -#: js/EnsembleBlocks.js:1127 -msgid "The Turtle-count block returns the number of turtles." -msgstr "" - -#: js/EnsembleBlocks.js:1149 -msgid "nth mouse name" -msgstr "" - -#: js/EnsembleBlocks.js:1152 -msgid "The Nth-Mouse name block returns the name of the nth mouse." -msgstr "" - -#: js/EnsembleBlocks.js:1158 -msgid "nth turtle name" -msgstr "" - -#: js/EnsembleBlocks.js:1161 -msgid "The Nth-Turtle name block returns the name of the nth turtle." -msgstr "" - -#: js/EnsembleBlocks.js:1205 -#: js/EnsembleBlocks.js:1265 -msgid "set name" -msgstr "" - -#: js/EnsembleBlocks.js:1214 -#: js/EnsembleBlocks.js:1221 -msgid "source" -msgstr "" - -#: js/EnsembleBlocks.js:1214 -#: js/EnsembleBlocks.js:1221 -msgid "target" -msgstr "" - -#: js/EnsembleBlocks.js:1271 -msgid "The Set-name block is used to name a mouse." -msgstr "" - -#: js/EnsembleBlocks.js:1284 -msgid "The Set-name block is used to name a turtle." -msgstr "" - -#: js/BooleanBlocks.js:44 -msgid "The Not block is the logical not operator." -msgstr "" - -#: js/BooleanBlocks.js:62 -msgid "not" -msgstr "නැති" - -#: js/BooleanBlocks.js:134 -msgid "The And block is the logical and operator." -msgstr "" - -#: js/BooleanBlocks.js:152 -msgid "and" -msgstr "සහ" - -#: js/BooleanBlocks.js:218 -msgid "The Or block is the logical or operator." -msgstr "" - -#: js/BooleanBlocks.js:236 -msgid "or" -msgstr "හෝ" - -#: js/BooleanBlocks.js:302 -msgid "The XOR block is the logical XOR operator." -msgstr "" - -#: js/BooleanBlocks.js:320 -msgid "xor" -msgstr "" - -#: js/BooleanBlocks.js:808 -msgid "The Equal block returns True if the two numbers are equal." -msgstr "" - -#: js/BooleanBlocks.js:909 -msgid "The Not-equal-to block returns True if the two numbers are not equal to each other." -msgstr "" - -#: js/BooleanBlocks.js:1008 -msgid "The Boolean block is used to specify true or false." -msgstr "" - -#: js/MediaBlocks.js:35 -#.TRANS: right side of the screen -msgid "right (screen)" -msgstr "" - -#: js/MediaBlocks.js:45 -#: js/MediaBlocks.js:56 -msgid "The Right block returns the position of the right of the canvas." +#: js/blocks/EnsembleBlocks.js:1014 +msgid "The Set-mouse-color block is used to set the color of a mouse." msgstr "" -#: js/MediaBlocks.js:97 -#.TRANS: left side of the screen -msgid "left (screen)" +#: js/blocks/EnsembleBlocks.js:1020 +msgid "set turtle color" msgstr "" -#: js/MediaBlocks.js:107 -#: js/MediaBlocks.js:118 -msgid "The Left block returns the position of the left of the canvas." +#: js/blocks/EnsembleBlocks.js:1023 +msgid "The Set-turtle-color block is used to set the color of a turtle." msgstr "" -#: js/MediaBlocks.js:158 -msgid "top (screen)" +#: js/blocks/EnsembleBlocks.js:1083 +msgid "The Mouse-name block returns the name of a mouse." msgstr "" -#: js/MediaBlocks.js:168 -#: js/MediaBlocks.js:179 -msgid "The Top block returns the position of the top of the canvas." +#: js/blocks/EnsembleBlocks.js:1092 +msgid "The Turtle-name block returns the name of a turtle." msgstr "" -#: js/MediaBlocks.js:219 -msgid "bottom (screen)" +#: js/blocks/EnsembleBlocks.js:1115 +msgid "mouse count" msgstr "" -#: js/MediaBlocks.js:229 -#: js/MediaBlocks.js:240 -msgid "The Bottom block returns the position of the bottom of the canvas." +#: js/blocks/EnsembleBlocks.js:1118 +msgid "The Mouse-count block returns the number of mice." msgstr "" -#: js/MediaBlocks.js:282 -msgid "width" +#: js/blocks/EnsembleBlocks.js:1124 +msgid "turtle count" msgstr "" -#: js/MediaBlocks.js:291 -msgid "The Width block returns the width of the canvas." +#: js/blocks/EnsembleBlocks.js:1127 +msgid "The Turtle-count block returns the number of turtles." msgstr "" -#: js/MediaBlocks.js:325 -msgid "height" +#: js/blocks/EnsembleBlocks.js:1149 +msgid "nth mouse name" msgstr "" -#: js/MediaBlocks.js:334 -msgid "The Height block returns the height of the canvas." +#: js/blocks/EnsembleBlocks.js:1152 +msgid "The Nth-Mouse name block returns the name of the nth mouse." msgstr "" -#: js/MediaBlocks.js:369 -#.TRANS: stops playback of an audio recording -msgid "stop play" +#: js/blocks/EnsembleBlocks.js:1158 +msgid "nth turtle name" msgstr "" -#: js/MediaBlocks.js:404 -#.TRANS: Erases the images and text -msgid "erase media" +#: js/blocks/EnsembleBlocks.js:1161 +msgid "The Nth-Turtle name block returns the name of the nth turtle." msgstr "" -#: js/MediaBlocks.js:409 -msgid "The Erase Media block erases text and images." +#: js/blocks/EnsembleBlocks.js:1205 +#: js/blocks/EnsembleBlocks.js:1265 +msgid "set name" msgstr "" -#: js/MediaBlocks.js:439 -#.TRANS: play an audio recording -msgid "play back" +#: js/blocks/EnsembleBlocks.js:1214 +#: js/blocks/EnsembleBlocks.js:1221 +msgid "source" msgstr "" -#: js/MediaBlocks.js:487 -msgid "speak" +#: js/blocks/EnsembleBlocks.js:1214 +#: js/blocks/EnsembleBlocks.js:1221 +msgid "target" msgstr "" -#: js/MediaBlocks.js:495 -msgid "The Speak block outputs to the text-to-speech synthesizer" +#: js/blocks/EnsembleBlocks.js:1271 +msgid "The Set-name block is used to name a mouse." msgstr "" -#: js/MediaBlocks.js:546 -msgid "camera" +#: js/blocks/EnsembleBlocks.js:1284 +msgid "The Set-name block is used to name a turtle." msgstr "" -#: js/MediaBlocks.js:551 -msgid "The Camera block connects a webcam to the Show block." +#: js/blocks/ExtrasBlocks.js:33 +msgid "fraction" msgstr "" -#: js/MediaBlocks.js:574 -msgid "video" +#: js/blocks/ExtrasBlocks.js:36 +msgid "Convert a float to a fraction" msgstr "" -#: js/MediaBlocks.js:579 -msgid "The Video block selects video for use with the Show block." +#: js/blocks/ExtrasBlocks.js:93 +msgid "save as ABC" msgstr "" -#: js/MediaBlocks.js:607 -msgid "The Open file block opens a file for use with the Show block." +#: js/blocks/ExtrasBlocks.js:96 +#: js/blocks/ExtrasBlocks.js:132 +#: js/blocks/ExtrasBlocks.js:168 +msgid "title" msgstr "" -#: js/MediaBlocks.js:645 -msgid "stop media" +#: js/blocks/ExtrasBlocks.js:129 +msgid "save as Lilypond" msgstr "" -#: js/MediaBlocks.js:650 -msgid "The Stop media block stops audio or video playback." +#: js/blocks/ExtrasBlocks.js:165 +msgid "save as SVG" msgstr "" -#: js/MediaBlocks.js:679 -#: js/PitchBlocks.js:1539 -#: js/phrasemaker.js:822 -#: js/musickeyboard.js:1654 -#.TRANS: a measure of frequency: one cycle per second -msgid "hertz" +#: js/blocks/ExtrasBlocks.js:216 +msgid "no background" msgstr "" -#: js/MediaBlocks.js:692 -msgid "duration (ms)" +#: js/blocks/ExtrasBlocks.js:219 +msgid "The No background block eliminates the background from the saved SVG output." msgstr "" -#: js/MediaBlocks.js:728 -#.TRANS: translate a note into hertz, e.g., A4 -> 440HZ -msgid "note to frequency" +#: js/blocks/ExtrasBlocks.js:247 +msgid "show blocks" +msgstr "කොටස් පෙන්වන්න" + +#: js/blocks/ExtrasBlocks.js:249 +msgid "The Show blocks block shows the blocks." msgstr "" -#: js/MediaBlocks.js:736 -msgid "The To frequency block converts a pitch name and octave to Hertz." +#: js/blocks/ExtrasBlocks.js:274 +msgid "hide blocks" +msgstr "කොටස් සගවන්න" + +#: js/blocks/ExtrasBlocks.js:276 +msgid "The Hide blocks block hides the blocks." msgstr "" -#: js/MediaBlocks.js:746 -#: js/PitchBlocks.js:656 -#: js/PitchBlocks.js:932 -#: js/PitchBlocks.js:1827 -#.TRANS: name2 is name as in name of pitch (JAPANESE ONLY) -msgid "name2" +#: js/blocks/ExtrasBlocks.js:305 +#: js/blocks/ExtrasBlocks.js:338 +msgid "The Space block is used to add space between blocks." msgstr "" -#: js/MediaBlocks.js:812 -msgid "The Avatar block is used to change the appearance of the mouse." +#: js/blocks/ExtrasBlocks.js:376 +msgid "wait" +msgstr "රැඳීසිටින්න" + +#: js/blocks/ExtrasBlocks.js:379 +msgid "The Wait block pauses the program for a specified number of seconds." msgstr "" -#: js/MediaBlocks.js:819 -msgid "The Avatar block is used to change the appearance of the turtle." +#: js/blocks/ExtrasBlocks.js:433 +#: plugins/facebook.rtp:30 +msgid "comment" msgstr "" -#: js/MediaBlocks.js:831 -#: js/MediaBlocks.js:891 -#.TRANS: a media object -msgid "size" +#: js/blocks/ExtrasBlocks.js:469 +msgid "print" +msgstr "මුද්‍රණය" + +#: js/blocks/ExtrasBlocks.js:476 +msgid "The Print block displays text at the top of the screen." msgstr "" -#: js/MediaBlocks.js:831 -msgid "image" -msgstr "පින්තූරය" +#: js/blocks/ExtrasBlocks.js:582 +msgid "display grid" +msgstr "" -#: js/MediaBlocks.js:880 -msgid "The Show block is used to display text or images on the canvas." +#: js/blocks/ExtrasBlocks.js:587 +msgid "The Display Grid Block changes the grid type" msgstr "" -#: js/MediaBlocks.js:888 -#.TRANS: show1 is show as in display an image or text on the screen. -msgid "show1" +#: js/blocks/ExtrasBlocks.js:689 +#: js/blocks/ExtrasBlocks.js:708 +#: js/blocks/ExtrasBlocks.js:731 +#: js/blocks/ExtrasBlocks.js:754 +#: js/blocks/ExtrasBlocks.js:772 +#: js/blocks/ExtrasBlocks.js:791 +#: js/blocks/ExtrasBlocks.js:810 +#: js/blocks/ExtrasBlocks.js:829 +msgid "unknown" msgstr "" -#: js/MediaBlocks.js:891 -msgid "obj" +#: js/blocks/FlowBlocks.js:41 +msgid "The Backward block runs code in reverse order (Musical retrograde)." msgstr "" -#: js/MediaBlocks.js:938 -msgid "The Media block is used to import an image." +#: js/blocks/FlowBlocks.js:48 +msgid "backward" msgstr "" -#: js/MediaBlocks.js:973 -msgid "The Text block holds a text string." +#: js/blocks/FlowBlocks.js:124 +msgid "The Duplicate block will run each block multiple times." msgstr "" -#: js/ProgramBlocks.js:33 -msgid "The Load-heap-from-app block loads the heap from a web page." +#: js/blocks/FlowBlocks.js:136 +msgid "duplicate" msgstr "" -#: js/ProgramBlocks.js:44 -#.TRANS: load the heap contents from a URL -msgid "load heap from App" +#: js/blocks/FlowBlocks.js:334 +msgid "The Default block is used inside of a Switch to define the default action." msgstr "" -#: js/ProgramBlocks.js:95 -msgid "Error parsing JSON data:" +#: js/blocks/FlowBlocks.js:342 +msgid "default" msgstr "" -#: js/ProgramBlocks.js:100 -msgid "404: Page not found" +#: js/blocks/FlowBlocks.js:361 +#: js/blocks/FlowBlocks.js:418 +msgid "The Case Block must be used inside of a Switch Block." msgstr "" -#: js/ProgramBlocks.js:133 -msgid "The Save-heap-to-app block saves the heap to a web page." +#: js/blocks/FlowBlocks.js:389 +msgid "The Case block is used inside of a Switch to define matches." msgstr "" -#: js/ProgramBlocks.js:144 -#.TRANS: save the heap contents to a URL -msgid "save heap to App" +#: js/blocks/FlowBlocks.js:397 +msgid "case" msgstr "" -#: js/ProgramBlocks.js:189 -msgid "Cannot find a valid heap for" +#: js/blocks/FlowBlocks.js:446 +msgid "The Switch block will run the code in the matching Case." msgstr "" -#: js/ProgramBlocks.js:206 -msgid "The Load-heap block loads the heap from a file." +#: js/blocks/FlowBlocks.js:454 +msgid "switch" msgstr "" -#: js/ProgramBlocks.js:217 -#.TRANS: load the heap from a file -msgid "load heap" +#: js/blocks/FlowBlocks.js:595 +msgid "The Stop block will stop a loop" msgstr "" -#: js/ProgramBlocks.js:270 -msgid "The file you selected does not contain a valid heap." +#: js/blocks/FlowBlocks.js:597 +msgid "Forever, Repeat, While, or Until." msgstr "" -#: js/ProgramBlocks.js:275 -msgid "The loadHeap block needs a loadFile block." +#: js/blocks/FlowBlocks.js:604 +#: js/widgets/timbre.js:417 +#: js/widgets/timbre.js:419 +#: js/widgets/musickeyboard.js:819 +#: js/widgets/musickeyboard.js:821 +#: js/widgets/phrasemaker.js:4202 +#: plugins/rodi.rtp:29 +#: plugins/rodi.rtp:73 +#: plugins/rodi.rtp:413 +msgid "stop" +msgstr "නවත්වන්න" + +#: js/blocks/FlowBlocks.js:653 +msgid "The Waitfor block will wait until the condition is true." msgstr "" -#: js/ProgramBlocks.js:291 -msgid "The Set-heap block loads the heap." +#: js/blocks/FlowBlocks.js:661 +msgid "wait for" msgstr "" -#: js/ProgramBlocks.js:299 -#: js/HeapBlocks.js:539 -#.TRANS: load the heap from a JSON encoding -msgid "set heap" +#: js/blocks/FlowBlocks.js:732 +msgid "The Until block will repeat until the condition is true." msgstr "" -#: js/ProgramBlocks.js:340 -msgid "The block you selected does not contain a valid heap." +#: js/blocks/FlowBlocks.js:740 +msgid "until" +msgstr "දක්වා" + +#: js/blocks/FlowBlocks.js:742 +#: js/blocks/FlowBlocks.js:822 +msgid "do2" msgstr "" -#: js/ProgramBlocks.js:343 -msgid "The Set heap block needs a heap." +#: js/blocks/FlowBlocks.js:812 +msgid "The While block will repeat while the condition is true." msgstr "" -#: js/ProgramBlocks.js:360 -msgid "The Load-dictionary block loads a dictionary from a file." +#: js/blocks/FlowBlocks.js:820 +msgid "while" +msgstr "අතරතුර" + +#: js/blocks/FlowBlocks.js:903 +#: js/blocks/FlowBlocks.js:968 +#: js/blocks/FlowBlocks.js:979 +msgid "In this example if the mouse button is pressed a snare drum will play." msgstr "" -#: js/ProgramBlocks.js:372 -#.TRANS: load a dictionary from a file -msgid "load dictionary" +#: js/blocks/FlowBlocks.js:925 +#: js/blocks/FlowBlocks.js:988 +msgid "if" +msgstr "නම්" + +#: js/blocks/FlowBlocks.js:927 +#: js/blocks/FlowBlocks.js:990 +msgid "then" +msgstr "ඊළගට" + +#: js/blocks/FlowBlocks.js:927 +msgid "else" +msgstr "else" + +#: js/blocks/FlowBlocks.js:1025 +msgid "The Forever block will repeat the contained blocks forever." msgstr "" -#: js/ProgramBlocks.js:390 -#: js/ProgramBlocks.js:658 -#: js/ToneBlocks.js:1025 -msgid "file" +#: js/blocks/FlowBlocks.js:1037 +msgid "forever" +msgstr "සෑමවිටම" + +#: js/blocks/FlowBlocks.js:1073 +msgid "The Repeat block will repeat the contained blocks." msgstr "" -#: js/ProgramBlocks.js:396 -#: js/ProgramBlocks.js:501 -#: js/ProgramBlocks.js:664 -#: js/DictBlocks.js:80 -#: js/DictBlocks.js:145 -#: js/DictBlocks.js:216 -#: js/DictBlocks.js:290 -msgid "My Dictionary" +#: js/blocks/FlowBlocks.js:1075 +msgid "In this example the note will be played 4 times." msgstr "" -#: js/ProgramBlocks.js:444 -msgid "The file you selected does not contain a valid dictionary." +#: js/blocks/FlowBlocks.js:1083 +msgid "repeat" +msgstr "නැවත කරන්න" + +#: js/blocks/FlowBlocks.js:1123 +msgid "duplicate factor" msgstr "" -#: js/ProgramBlocks.js:449 -msgid "The load dictionary block needs a load file block." +#: js/blocks/HeapBlocks.js:49 +msgid "The Heap block returns the heap." msgstr "" -#: js/ProgramBlocks.js:466 -msgid "The Set-dictionary block loads a dictionary." +#: js/blocks/HeapBlocks.js:133 +msgid "show heap" +msgstr "සංචිතය දක්වන්න" + +#: js/blocks/HeapBlocks.js:181 +msgid "The Heap-length block returns the length of the heap." msgstr "" -#: js/ProgramBlocks.js:477 -#.TRANS: load a dictionary from a JSON -msgid "set dictionary" +#: js/blocks/HeapBlocks.js:195 +msgid "heap length" msgstr "" -#: js/ProgramBlocks.js:546 -msgid "The block you selected does not contain a valid dictionary." +#: js/blocks/HeapBlocks.js:254 +msgid "The Heap-empty? block returns true if the heap is empty." msgstr "" -#: js/ProgramBlocks.js:550 -msgid "The set dictionary block needs a dictionary." +#: js/blocks/HeapBlocks.js:268 +#.TRANS: Is the heap empty? +msgid "heap empty?" msgstr "" -#: js/ProgramBlocks.js:567 -msgid "The Save-heap block saves the heap to a file." +#: js/blocks/HeapBlocks.js:317 +msgid "The Empty-heap block empties the heap." msgstr "" -#: js/ProgramBlocks.js:578 -#.TRANS: save the heap to a file -msgid "save heap" +#: js/blocks/HeapBlocks.js:327 +#: js/blocks/HeapBlocks.js:647 +#.TRANS: empty the heap +msgid "empty heap" +msgstr "හිස් මතක කොටස" + +#: js/blocks/HeapBlocks.js:371 +msgid "The Reverse-heap block reverses the order of the heap." msgstr "" -#: js/ProgramBlocks.js:629 -msgid "The Save-dictionary block saves a dictionary to a file." +#: js/blocks/HeapBlocks.js:384 +#.TRANS: reverse the order of the heap +msgid "reverse heap" msgstr "" -#: js/ProgramBlocks.js:640 -#.TRANS: save a dictionary to a file -msgid "save dictionary" +#: js/blocks/HeapBlocks.js:428 +msgid "The Index-heap block returns a value in the heap at a specified location." msgstr "" -#: js/ProgramBlocks.js:720 -msgid "The Open palette block opens a palette." +#: js/blocks/HeapBlocks.js:443 +#.TRANS: retrieve a value from the heap at index position in the heap +msgid "index heap" msgstr "" -#: js/ProgramBlocks.js:727 -msgid "open palette" +#: js/blocks/HeapBlocks.js:523 +msgid "The Set-heap entry block sets a value in he heap at the specified location." msgstr "" -#: js/ProgramBlocks.js:785 -msgid "The Delete block block removes a block." +#: js/blocks/HeapBlocks.js:539 +#: js/blocks/ProgramBlocks.js:299 +#.TRANS: load the heap from a JSON encoding +msgid "set heap" msgstr "" -#: js/ProgramBlocks.js:797 -#.TRANS: Move this block to the trash. -msgid "delete block" +#: js/blocks/HeapBlocks.js:619 +msgid "The Pop block removes the value at the top of the heap." msgstr "" -#: js/ProgramBlocks.js:861 -msgid "The Move block block moves a block." +#: js/blocks/HeapBlocks.js:633 +#.TRANS: pop a value off the top of the heap +msgid "pop" +msgstr "පොප්" + +#: js/blocks/HeapBlocks.js:680 +msgid "The Push block adds a value to the top of the heap." msgstr "" -#: js/ProgramBlocks.js:869 -#.TRANS: Move the position of a block on the screen. -msgid "move block" +#: js/blocks/HeapBlocks.js:696 +#.TRANS: push a value onto the top of the heap +msgid "push" +msgstr "ඔබන්න" + +#: js/blocks/IntervalsBlocks.js:45 +msgid "set temperament" msgstr "" -#: js/ProgramBlocks.js:881 -#: js/ProgramBlocks.js:1048 -msgid "block number" +#: js/blocks/IntervalsBlocks.js:63 +#: js/blocks/MediaBlocks.js:746 +#: js/blocks/PitchBlocks.js:657 +#: js/blocks/PitchBlocks.js:935 +#: js/blocks/PitchBlocks.js:974 +#: js/blocks/PitchBlocks.js:1007 +#: js/blocks/PitchBlocks.js:1194 +#: js/blocks/PitchBlocks.js:1717 +#: js/blocks/PitchBlocks.js:1758 +#: js/blocks/PitchBlocks.js:1866 +#: js/blocks/ToneBlocks.js:1025 +#: js/turtleactions/IntervalsActions.js:114 +#.TRANS: adjusts the shift up or down by one octave (twelve half-steps in the interval between two notes, one having twice or half the frequency in Hz of the other.) +msgid "octave" msgstr "" -#: js/ProgramBlocks.js:935 -#.TRANS: Run program beginning at this block. -msgid "run block" +#: js/blocks/IntervalsBlocks.js:99 +msgid "The Temperament name block is used to select a tuning method." msgstr "" -#: js/ProgramBlocks.js:1025 -msgid "The Dock block block connections two blocks." +#: js/blocks/IntervalsBlocks.js:161 +msgid "doubly" msgstr "" -#: js/ProgramBlocks.js:1036 -#.TRANS: We can connect a block to another block. -msgid "connect blocks" +#: js/blocks/IntervalsBlocks.js:166 +msgid "The Doubly block will double the size of an interval." msgstr "" -#: js/ProgramBlocks.js:1048 -msgid "target block" +#: js/blocks/IntervalsBlocks.js:262 +msgid "interval number" msgstr "" -#: js/ProgramBlocks.js:1048 -msgid "connection number" +#: js/blocks/IntervalsBlocks.js:317 +msgid "current interval" msgstr "" -#: js/ProgramBlocks.js:1140 -msgid "The Make block block creates a new block." +#: js/blocks/IntervalsBlocks.js:387 +#.TRANS: measure the distance between two pitches in semi-tones +msgid "semi-tone interval measure" msgstr "" -#: js/ProgramBlocks.js:1152 -#.TRANS: Create a new block -msgid "make block" +#: js/blocks/IntervalsBlocks.js:454 +#: js/blocks/IntervalsBlocks.js:570 +msgid "You must use two pitch blocks when measuring an interval." msgstr "" -#: js/ProgramBlocks.js:1186 -#: js/ProgramBlocks.js:1227 -#: js/RhythmBlocks.js:1128 -#: js/PitchBlocks.js:972 -#: js/PitchBlocks.js:1005 -#: js/temperament.js:340 -#: js/temperament.js:362 -#: js/temperament.js:372 -#: js/temperament.js:484 -#: js/status.js:190 -#: plugins/rodi.rtp:192 -#.TRANS: a musical note consisting of pitch and duration -msgid "note" +#: js/blocks/IntervalsBlocks.js:496 +msgid "The Scalar interval block measures the distance between two notes in the current key and mode." msgstr "" -#: js/ProgramBlocks.js:1285 -msgid "Cannot find block" +#: js/blocks/IntervalsBlocks.js:502 +#.TRANS: measure the distance between two pitches in steps of musical scale +msgid "scalar interval measure" msgstr "" -#: js/ProgramBlocks.js:1304 -#: js/ProgramBlocks.js:1313 -msgid "Warning: block argument type mismatch" +#: js/blocks/IntervalsBlocks.js:678 +msgid "In the figure, we add sol# to sol." msgstr "" -#: js/ProgramBlocks.js:1347 -msgid "The Open project block is used to open a project from a web page." +#: js/blocks/IntervalsBlocks.js:684 +#: js/blocks/OrnamentBlocks.js:220 +#.TRANS: calculate a relative step between notes based on semi-tones +msgid "semi-tone interval" msgstr "" -#: js/ProgramBlocks.js:1357 -msgid "open project" +#: js/blocks/IntervalsBlocks.js:733 +msgid "The output of the example is: do, mi, sol, sol, ti, mi" msgstr "" -#: js/ProgramBlocks.js:1410 -msgid "Please enter a valid URL." +#: js/blocks/IntervalsBlocks.js:740 +#: js/blocks/WidgetBlocks.js:768 +msgid "arpeggio" msgstr "" -#: js/DrumBlocks.js:59 -msgid "The Noise name block is used to select a noise synthesizer." +#: js/blocks/IntervalsBlocks.js:931 +msgid "The Chord block calculates common chords." msgstr "" -#: js/DrumBlocks.js:102 -msgid "The Drum name block is used to select a drum." +#: js/blocks/IntervalsBlocks.js:933 +msgid "In the figure, we generate a C-major chord." msgstr "" -#: js/DrumBlocks.js:146 -msgid "The Effects name block is used to select a sound effect." +#: js/blocks/IntervalsBlocks.js:938 +msgid "chord" msgstr "" -#: js/DrumBlocks.js:163 -msgid "noise" +#: js/blocks/IntervalsBlocks.js:990 +msgid "The Ratio Interval block calculates an interval based on a ratio." msgstr "" -#: js/DrumBlocks.js:177 -msgid "The Play noise block will generate white, pink, or brown noise." +#: js/blocks/IntervalsBlocks.js:995 +msgid "ratio interval" msgstr "" -#: js/DrumBlocks.js:191 -#: js/musicutils.js:752 -#: js/synthutils.js:47 -#.TRANS: white noise synthesizer -msgid "white noise" +#: js/blocks/IntervalsBlocks.js:1064 +msgid "In the figure, we add la to sol." msgstr "" -#: js/DrumBlocks.js:326 -msgid "Replace every instance of a pitch with a drum sound." +#: js/blocks/IntervalsBlocks.js:1120 +#.TRANS: define a custom mode +msgid "define mode" msgstr "" -#: js/DrumBlocks.js:337 -#.TRANS: map a pitch to a drum sound -msgid "map pitch to drum" +#: js/blocks/IntervalsBlocks.js:1173 +msgid "movable Do" msgstr "" -#: js/DrumBlocks.js:404 -msgid "In the example above, a kick drum sound will be played instead of sol." +#: js/blocks/IntervalsBlocks.js:1224 +#.TRANS: mode length is the number of notes in the mode, e.g., 7 for major and minor scales; 12 for chromatic scales +msgid "mode length" msgstr "" -#: js/DrumBlocks.js:416 -#.TRANS: set the current drum sound for playback -msgid "set drum" +#: js/blocks/IntervalsBlocks.js:1233 +msgid "The Mode length block is the number of notes in the current scale." msgstr "" -#: js/DrumBlocks.js:460 -msgid "sound effect" +#: js/blocks/IntervalsBlocks.js:1235 +msgid "Most Western scales have 7 notes." msgstr "" -#: js/DrumBlocks.js:498 -msgid "You can use multiple Drum blocks within a Note block." +#: js/blocks/IntervalsBlocks.js:1284 +#.TRANS: the mode in music is 'major', 'minor', etc. +msgid "current mode" msgstr "" -#: js/RhythmBlocks.js:182 -#: js/RhythmBlocks.js:1086 -#: js/RhythmBlocks.js:1162 -msgid "Note value must be greater than 0." +#: js/blocks/IntervalsBlocks.js:1337 +#.TRANS: the key is a group of pitches with which a music composition is created +msgid "current key" msgstr "" -#: js/RhythmBlocks.js:215 -#: js/RhythmBlocks.js:278 -#: js/RhythmBlocks.js:350 -#.TRANS: swing is a rhythmic variation that emphasises the offbeat -msgid "swing" +#: js/blocks/IntervalsBlocks.js:1389 +#: js/blocks/IntervalsBlocks.js:1434 +#.TRANS: set the key and mode, e.g. C Major +msgid "set key" msgstr "" -#: js/RhythmBlocks.js:355 -#.TRANS: the amount to shift to the offbeat note -msgid "swing value" +#: js/blocks/IntervalsBlocks.js:1443 +#: js/blocks/IntervalsBlocks.js:1449 +msgid "The Set key block is used to set the key and mode," msgstr "" -#: js/RhythmBlocks.js:419 -msgid "The Skip notes block will cause notes to be skipped." +#: js/blocks/IntervalsBlocks.js:1449 +msgid "eg C Major" msgstr "" -#: js/RhythmBlocks.js:427 -#.TRANS: substitute rests on notes being skipped -msgid "skip notes" +#: js/blocks/MediaBlocks.js:35 +#.TRANS: right side of the screen +msgid "right (screen)" msgstr "" -#: js/RhythmBlocks.js:489 -#.TRANS: speed up note duration by some factor, e.g. convert 1/4 to 1/8 notes by using a factor of 2 -msgid "multiply note value" +#: js/blocks/MediaBlocks.js:45 +#: js/blocks/MediaBlocks.js:56 +msgid "The Right block returns the position of the right of the canvas." msgstr "" -#: js/RhythmBlocks.js:542 -msgid "The Tie block works on pairs of notes, combining them into one note." +#: js/blocks/MediaBlocks.js:97 +#.TRANS: left side of the screen +msgid "left (screen)" msgstr "" -#: js/RhythmBlocks.js:550 -#.TRANS: tie notes together into one longer note -msgid "tie" +#: js/blocks/MediaBlocks.js:107 +#: js/blocks/MediaBlocks.js:118 +msgid "The Left block returns the position of the left of the canvas." msgstr "" -#: js/RhythmBlocks.js:591 -#: js/RhythmBlocks.js:671 -#.TRANS: a dotted note is played for 1.5x its value, e.g., 1/8. --> 3/16 -msgid "dot" +#: js/blocks/MediaBlocks.js:158 +msgid "top (screen)" msgstr "" -#: js/RhythmBlocks.js:619 -#: js/RhythmActions.js:221 -msgid "An argument of -1 results in a note value of 0." +#: js/blocks/MediaBlocks.js:168 +#: js/blocks/MediaBlocks.js:179 +msgid "The Top block returns the position of the top of the canvas." msgstr "" -#: js/RhythmBlocks.js:661 -msgid "The Dot block extends the duration of a note by 50%." +#: js/blocks/MediaBlocks.js:219 +msgid "bottom (screen)" msgstr "" -#: js/RhythmBlocks.js:663 -msgid "Eg a dotted quarter note will play for 3/8 (1/4 + 1/8) of a beat." +#: js/blocks/MediaBlocks.js:229 +#: js/blocks/MediaBlocks.js:240 +msgid "The Bottom block returns the position of the bottom of the canvas." msgstr "" -#: js/RhythmBlocks.js:765 -#.TRANS: Japanese only: note value block for drum -msgid "note value drum" +#: js/blocks/MediaBlocks.js:282 +msgid "width" msgstr "" -#: js/RhythmBlocks.js:829 -msgid "392 hertz" +#: js/blocks/MediaBlocks.js:291 +msgid "The Width block returns the width of the canvas." msgstr "" -#: js/RhythmBlocks.js:1119 -msgid "The Note block is a container for one or more Pitch blocks." +#: js/blocks/MediaBlocks.js:325 +msgid "height" msgstr "" -#: js/RhythmBlocks.js:1121 -msgid "The Note block specifies the duration (note value) of its contents." +#: js/blocks/MediaBlocks.js:334 +msgid "The Height block returns the height of the canvas." msgstr "" -#: js/RhythmBlocks.js:1130 -msgid "value2" +#: js/blocks/MediaBlocks.js:369 +#.TRANS: stops playback of an audio recording +msgid "stop play" msgstr "" -#: js/RhythmBlocks.js:1200 -msgid "define frequency" +#: js/blocks/MediaBlocks.js:404 +#.TRANS: Erases the images and text +msgid "erase media" msgstr "" -#: js/RhythmBlocks.js:1218 -#: js/temperament.js:650 -#: js/temperament.js:1421 -msgid "octave space" +#: js/blocks/MediaBlocks.js:409 +msgid "The Erase Media block erases text and images." msgstr "" -#: js/NumberBlocks.js:28 -msgid "The Int block returns an integer." +#: js/blocks/MediaBlocks.js:439 +#.TRANS: play an audio recording +msgid "play back" msgstr "" -#: js/NumberBlocks.js:34 -msgid "int" +#: js/blocks/MediaBlocks.js:487 +msgid "speak" msgstr "" -#: js/NumberBlocks.js:73 -msgid "The Mod block returns the remainder from a division." +#: js/blocks/MediaBlocks.js:495 +msgid "The Speak block outputs to the text-to-speech synthesizer" msgstr "" -#: js/NumberBlocks.js:79 -msgid "mod" -msgstr "ඉතිරි" - -#: js/NumberBlocks.js:123 -msgid "The Power block calculates a power function." +#: js/blocks/MediaBlocks.js:546 +msgid "camera" msgstr "" -#: js/NumberBlocks.js:178 -msgid "The Sqrt block returns the square root." +#: js/blocks/MediaBlocks.js:551 +msgid "The Camera block connects a webcam to the Show block." msgstr "" -#: js/NumberBlocks.js:184 -msgid "sqrt" +#: js/blocks/MediaBlocks.js:574 +msgid "video" msgstr "" -#: js/NumberBlocks.js:230 -msgid "The Abs block returns the absolute value." +#: js/blocks/MediaBlocks.js:579 +msgid "The Video block selects video for use with the Show block." msgstr "" -#: js/NumberBlocks.js:236 -msgid "abs" +#: js/blocks/MediaBlocks.js:607 +msgid "The Open file block opens a file for use with the Show block." msgstr "" -#: js/NumberBlocks.js:277 -msgid "The Distance block returns the distance between two points. For example, between the mouse and the center of the screen." +#: js/blocks/MediaBlocks.js:645 +msgid "stop media" msgstr "" -#: js/NumberBlocks.js:283 -#: plugins/rodi.rtp:310 -msgid "distance" +#: js/blocks/MediaBlocks.js:650 +msgid "The Stop media block stops audio or video playback." msgstr "" -#: js/NumberBlocks.js:343 -msgid "The Divide block is used to divide." +#: js/blocks/MediaBlocks.js:679 +#: js/blocks/PitchBlocks.js:1577 +#: js/widgets/musickeyboard.js:1936 +#: js/widgets/phrasemaker.js:1037 +#.TRANS: a measure of frequency: one cycle per second +msgid "hertz" msgstr "" -#: js/NumberBlocks.js:411 -msgid "The Multiply block is used to multiply." +#: js/blocks/MediaBlocks.js:692 +#: js/blocks/WidgetBlocks.js:182 +#: js/widgets/temperament.js:506 +#: js/widgets/temperament.js:546 +#: js/widgets/temperament.js:610 +#: js/widgets/temperament.js:618 +#: js/widgets/temperament.js:1505 +#: js/widgets/timbre.js:1842 +msgid "frequency" msgstr "" -#: js/NumberBlocks.js:554 -msgid "The Minus block is used to subtract." +#: js/blocks/MediaBlocks.js:692 +msgid "duration (ms)" msgstr "" -#: js/NumberBlocks.js:647 -msgid "The Plus block is used to add." +#: js/blocks/MediaBlocks.js:728 +#.TRANS: translate a note into hertz, e.g., A4 -> 440HZ +msgid "note to frequency" msgstr "" -#: js/NumberBlocks.js:773 -msgid "The One-of block returns one of two choices." +#: js/blocks/MediaBlocks.js:736 +msgid "The To frequency block converts a pitch name and octave to Hertz." msgstr "" -#: js/NumberBlocks.js:780 -#: js/PitchBlocks.js:616 -msgid "one of" +#: js/blocks/MediaBlocks.js:746 +#: js/blocks/PitchBlocks.js:656 +#: js/blocks/PitchBlocks.js:934 +#: js/blocks/PitchBlocks.js:1866 +#.TRANS: name2 is name as in name of pitch (JAPANESE ONLY) +msgid "name2" msgstr "" -#: js/NumberBlocks.js:782 -msgid "this" +#: js/blocks/MediaBlocks.js:812 +msgid "The Avatar block is used to change the appearance of the mouse." msgstr "" -#: js/NumberBlocks.js:782 -msgid "that" +#: js/blocks/MediaBlocks.js:819 +msgid "The Avatar block is used to change the appearance of the turtle." msgstr "" -#: js/NumberBlocks.js:837 -msgid "The Random block returns a random number." +#: js/blocks/MediaBlocks.js:831 +#: js/blocks/MediaBlocks.js:891 +#.TRANS: a media object +msgid "size" msgstr "" -#: js/NumberBlocks.js:844 -msgid "random" -msgstr "අහඹු" +#: js/blocks/MediaBlocks.js:831 +msgid "image" +msgstr "පින්තූරය" -#: js/NumberBlocks.js:846 -msgid "min" -msgstr "අවම" +#: js/blocks/MediaBlocks.js:880 +msgid "The Show block is used to display text or images on the canvas." +msgstr "" -#: js/NumberBlocks.js:846 -msgid "max" -msgstr "උපරිම" +#: js/blocks/MediaBlocks.js:888 +#.TRANS: show1 is show as in display an image or text on the screen. +msgid "show1" +msgstr "" -#: js/NumberBlocks.js:910 -msgid "The Number block holds a number." +#: js/blocks/MediaBlocks.js:891 +msgid "obj" msgstr "" -#: js/BoxesBlocks.js:53 -#: js/BoxesBlocks.js:59 -msgid "The Add-to block is used to add to the value stored in a box." +#: js/blocks/MediaBlocks.js:938 +msgid "The Media block is used to import an image." msgstr "" -#: js/BoxesBlocks.js:61 -msgid "It can also be used with other blocks such as Color and Pen size." +#: js/blocks/MediaBlocks.js:973 +msgid "The Text block holds a text string." msgstr "" -#: js/BoxesBlocks.js:73 -msgid "add" +#: js/blocks/MeterBlocks.js:34 +#.TRANS: musical meter (time signature), e.g., 4:4 +msgid "current meter" msgstr "" -#: js/BoxesBlocks.js:75 -#: js/temperament.js:716 -msgid "to" +#: js/blocks/MeterBlocks.js:85 +#.TRANS: number of beats per minute +msgid "beat factor" msgstr "" -#: js/BoxesBlocks.js:75 -#: js/BoxesBlocks.js:595 -#: js/HeapBlocks.js:544 -msgid "value1" +#: js/blocks/MeterBlocks.js:161 +msgid "The Beats per minute block returns the current beats per minute." msgstr "" -#: js/BoxesBlocks.js:118 -msgid "Block does not support incrementing." +#: js/blocks/MeterBlocks.js:169 +#: js/widgets/status.js:152 +#.TRANS: number of beats played per minute +msgid "beats per minute2" msgstr "" -#: js/BoxesBlocks.js:152 -msgid "The Add-1-to block adds one to the value stored in a box." +#: js/blocks/MeterBlocks.js:169 +#: js/blocks/MeterBlocks.js:1056 +#: js/blocks/MeterBlocks.js:1133 +#: js/blocks/MeterBlocks.js:1211 +#.TRANS: sets tempo by defining a beat and beats per minute +msgid "beats per minute" msgstr "" -#: js/BoxesBlocks.js:163 -msgid "add 1 to" +#: js/blocks/MeterBlocks.js:233 +#.TRANS: count of current musical measure in meter +msgid "measure count" msgstr "" -#: js/BoxesBlocks.js:211 -msgid "The Subtract-1-from block subtracts one from the value stored in a box." +#: js/blocks/MeterBlocks.js:241 +msgid "The Measure count block returns the current measure." msgstr "" -#: js/BoxesBlocks.js:222 -msgid "subtract 1 from" +#: js/blocks/MeterBlocks.js:290 +#.TRANS: count of current beat in the meter +msgid "beat count" msgstr "" -#: js/BoxesBlocks.js:270 -#: js/BoxesBlocks.js:387 -msgid "The Box block returns the value stored in a box." +#: js/blocks/MeterBlocks.js:300 +#: js/blocks/MeterBlocks.js:311 +#: js/blocks/MeterBlocks.js:565 +#: js/blocks/MeterBlocks.js:576 +msgid "The Beat count block is the number of the current beat," msgstr "" -#: js/BoxesBlocks.js:500 -#: js/BoxesBlocks.js:576 -msgid "The Store in block will store a value in a box." +#: js/blocks/MeterBlocks.js:313 +#: js/blocks/MeterBlocks.js:578 +msgid "eg 1, 2, 3, or 4." msgstr "" -#: js/BoxesBlocks.js:652 -msgid "The Box2 block returns the value stored in Box2." +#: js/blocks/MeterBlocks.js:368 +#.TRANS: count the number of notes +msgid "sum note values" msgstr "" -#: js/BoxesBlocks.js:703 -msgid "The Store in Box2 block is used to store a value in Box2." +#: js/blocks/MeterBlocks.js:376 +#: js/blocks/MeterBlocks.js:440 +msgid "The Note counter block can be used to count the number of contained notes." msgstr "" -#: js/BoxesBlocks.js:715 -msgid "store in box2" +#: js/blocks/MeterBlocks.js:432 +#.TRANS: count the number of notes +msgid "note counter" msgstr "" -#: js/BoxesBlocks.js:761 -msgid "The Box1 block returns the value stored in Box1." +#: js/blocks/MeterBlocks.js:496 +#.TRANS: number of whole notes that have been played +msgid "whole notes played" msgstr "" -#: js/BoxesBlocks.js:812 -msgid "The Store in Box1 block is used to store a value in Box1." +#: js/blocks/MeterBlocks.js:505 +msgid "The Whole notes played block returns the total number of whole notes played." msgstr "" -#: js/BoxesBlocks.js:826 -msgid "store in box1" +#: js/blocks/MeterBlocks.js:555 +#: js/turtleactions/DictActions.js:83 +#.TRANS: number of notes that have been played +msgid "notes played" msgstr "" -#: js/HeapBlocks.js:49 -msgid "The Heap block returns the heap." +#: js/blocks/MeterBlocks.js:653 +msgid "The No clock block decouples the notes from the master clock." msgstr "" -#: js/HeapBlocks.js:133 -msgid "show heap" -msgstr "සංචිතය දක්වන්න" +#: js/blocks/MeterBlocks.js:661 +#.TRANS: don't lock notes to master clock +msgid "no clock" +msgstr "" -#: js/HeapBlocks.js:181 -msgid "The Heap-length block returns the length of the heap." +#: js/blocks/MeterBlocks.js:700 +msgid "on weak beat do" msgstr "" -#: js/HeapBlocks.js:195 -msgid "heap length" +#: js/blocks/MeterBlocks.js:705 +msgid "The On-weak-beat block lets you specify actions to take on weak (off) beats." msgstr "" -#: js/HeapBlocks.js:254 -msgid "The Heap-empty? block returns true if the heap is empty." +#: js/blocks/MeterBlocks.js:750 +msgid "on strong beat" msgstr "" -#: js/HeapBlocks.js:268 -#.TRANS: Is the heap empty? -msgid "heap empty?" +#: js/blocks/MeterBlocks.js:758 +msgid "The On-strong-beat block lets you specify actions to take on specified beats." msgstr "" -#: js/HeapBlocks.js:317 -msgid "The Empty-heap block empties the heap." +#: js/blocks/MeterBlocks.js:769 +msgid "beat" msgstr "" -#: js/HeapBlocks.js:327 -#: js/HeapBlocks.js:647 -#.TRANS: empty the heap -msgid "empty heap" -msgstr "හිස් මතක කොටස" +#: js/blocks/MeterBlocks.js:813 +msgid "on every beat do" +msgstr "" -#: js/HeapBlocks.js:371 -msgid "The Reverse-heap block reverses the order of the heap." +#: js/blocks/MeterBlocks.js:821 +msgid "The On-every-beat block lets you specify actions to take on every beat." msgstr "" -#: js/HeapBlocks.js:384 -#.TRANS: reverse the order of the heap -msgid "reverse heap" +#: js/blocks/MeterBlocks.js:874 +msgid "on every note do" msgstr "" -#: js/HeapBlocks.js:428 -msgid "The Index-heap block returns a value in the heap at a specified location." +#: js/blocks/MeterBlocks.js:882 +msgid "The On-every-note block lets you specify actions to take on every note." msgstr "" -#: js/HeapBlocks.js:443 -#.TRANS: retrieve a value from the heap at index position in the heap -msgid "index heap" +#: js/blocks/MeterBlocks.js:928 +#: js/blocks/MeterBlocks.js:999 +#.TRANS: sets tempo by defining a beat and beats per minute +msgid "master beats per minute" msgstr "" -#: js/HeapBlocks.js:523 -msgid "The Set-heap entry block sets a value in he heap at the specified location." +#: js/blocks/MeterBlocks.js:952 +#: js/blocks/MeterBlocks.js:1078 +#: js/blocks/MeterBlocks.js:1135 +msgid "bpm" msgstr "" -#: js/HeapBlocks.js:619 -msgid "The Pop block removes the value at the top of the heap." +#: js/blocks/MeterBlocks.js:952 +#: js/blocks/MeterBlocks.js:1078 +#: js/blocks/MeterBlocks.js:1135 +msgid "beat value" msgstr "" -#: js/HeapBlocks.js:633 -#.TRANS: pop a value off the top of the heap -msgid "pop" -msgstr "පොප්" +#: js/blocks/MeterBlocks.js:1024 +#: js/blocks/MeterBlocks.js:1167 +#: js/blocks/MeterBlocks.js:1241 +msgid "Beats per minute must be > 30." +msgstr "" -#: js/HeapBlocks.js:680 -msgid "The Push block adds a value to the top of the heap." +#: js/blocks/MeterBlocks.js:1027 +#: js/blocks/MeterBlocks.js:1170 +#: js/blocks/MeterBlocks.js:1244 +msgid "Maximum beats per minute is 1000." msgstr "" -#: js/HeapBlocks.js:696 -#.TRANS: push a value onto the top of the heap -msgid "push" -msgstr "ඔබන්න" +#: js/blocks/MeterBlocks.js:1068 +msgid "The Beats per minute block sets the number of 1/4 notes per minute." +msgstr "" -#: js/FlowBlocks.js:41 -msgid "The Backward block runs code in reverse order (Musical retrograde)." +#: js/blocks/MeterBlocks.js:1279 +#.TRANS: anacrusis +msgid "pickup" msgstr "" -#: js/FlowBlocks.js:48 -msgid "backward" +#: js/blocks/MeterBlocks.js:1367 +msgid "number of beats" msgstr "" -#: js/FlowBlocks.js:124 -msgid "The Duplicate block will run each block multiple times." +#: js/blocks/NumberBlocks.js:28 +msgid "The Int block returns an integer." msgstr "" -#: js/FlowBlocks.js:136 -msgid "duplicate" +#: js/blocks/NumberBlocks.js:34 +msgid "int" msgstr "" -#: js/FlowBlocks.js:334 -msgid "The Default block is used inside of a Switch to define the default action." +#: js/blocks/NumberBlocks.js:73 +msgid "The Mod block returns the remainder from a division." msgstr "" -#: js/FlowBlocks.js:342 -msgid "default" -msgstr "" +#: js/blocks/NumberBlocks.js:79 +msgid "mod" +msgstr "ඉතිරි" -#: js/FlowBlocks.js:361 -#: js/FlowBlocks.js:418 -msgid "The Case Block must be used inside of a Switch Block." +#: js/blocks/NumberBlocks.js:141 +msgid "The Power block calculates a power function." msgstr "" -#: js/FlowBlocks.js:389 -msgid "The Case block is used inside of a Switch to define matches." +#: js/blocks/NumberBlocks.js:196 +msgid "The Sqrt block returns the square root." msgstr "" -#: js/FlowBlocks.js:397 -msgid "case" +#: js/blocks/NumberBlocks.js:202 +msgid "sqrt" msgstr "" -#: js/FlowBlocks.js:446 -msgid "The Switch block will run the code in the matching Case." +#: js/blocks/NumberBlocks.js:248 +msgid "The Abs block returns the absolute value." msgstr "" -#: js/FlowBlocks.js:454 -msgid "switch" +#: js/blocks/NumberBlocks.js:254 +msgid "abs" msgstr "" -#: js/FlowBlocks.js:595 -msgid "The Stop block will stop a loop" +#: js/blocks/NumberBlocks.js:295 +msgid "The Distance block returns the distance between two points. For example, between the mouse and the center of the screen." msgstr "" -#: js/FlowBlocks.js:597 -msgid "Forever, Repeat, While, or Until." +#: js/blocks/NumberBlocks.js:301 +#: plugins/rodi.rtp:310 +msgid "distance" msgstr "" -#: js/FlowBlocks.js:604 -#: js/phrasemaker.js:3799 -#: js/musickeyboard.js:629 -#: js/musickeyboard.js:631 -#: js/timbre.js:417 -#: js/timbre.js:419 -#: plugins/rodi.rtp:29 -#: plugins/rodi.rtp:73 -#: plugins/rodi.rtp:413 -msgid "stop" -msgstr "නවත්වන්න" +#: js/blocks/NumberBlocks.js:361 +msgid "The Divide block is used to divide." +msgstr "" -#: js/FlowBlocks.js:653 -msgid "The Waitfor block will wait until the condition is true." +#: js/blocks/NumberBlocks.js:441 +msgid "The Multiply block is used to multiply." msgstr "" -#: js/FlowBlocks.js:661 -msgid "wait for" +#: js/blocks/NumberBlocks.js:612 +msgid "The Minus block is used to subtract." msgstr "" -#: js/FlowBlocks.js:732 -msgid "The Until block will repeat until the condition is true." +#: js/blocks/NumberBlocks.js:723 +msgid "The Plus block is used to add." msgstr "" -#: js/FlowBlocks.js:740 -msgid "until" -msgstr "දක්වා" +#: js/blocks/NumberBlocks.js:849 +msgid "The One-of block returns one of two choices." +msgstr "" -#: js/FlowBlocks.js:742 -#: js/FlowBlocks.js:822 -msgid "do2" +#: js/blocks/NumberBlocks.js:856 +#: js/blocks/PitchBlocks.js:616 +msgid "one of" msgstr "" -#: js/FlowBlocks.js:812 -msgid "The While block will repeat while the condition is true." +#: js/blocks/NumberBlocks.js:858 +msgid "this" msgstr "" -#: js/FlowBlocks.js:820 -msgid "while" -msgstr "අතරතුර" +#: js/blocks/NumberBlocks.js:858 +msgid "that" +msgstr "" -#: js/FlowBlocks.js:903 -#: js/FlowBlocks.js:968 -#: js/FlowBlocks.js:979 -msgid "In this example if the mouse button is pressed a snare drum will play." +#: js/blocks/NumberBlocks.js:913 +msgid "The Random block returns a random number." msgstr "" -#: js/FlowBlocks.js:925 -#: js/FlowBlocks.js:988 -msgid "if" -msgstr "නම්" +#: js/blocks/NumberBlocks.js:920 +msgid "random" +msgstr "අහඹු" -#: js/FlowBlocks.js:927 -#: js/FlowBlocks.js:990 -msgid "then" -msgstr "ඊළගට" +#: js/blocks/NumberBlocks.js:922 +msgid "min" +msgstr "අවම" -#: js/FlowBlocks.js:927 -msgid "else" -msgstr "else" +#: js/blocks/NumberBlocks.js:922 +msgid "max" +msgstr "උපරිම" -#: js/FlowBlocks.js:1025 -msgid "The Forever block will repeat the contained blocks forever." +#: js/blocks/NumberBlocks.js:986 +msgid "The Number block holds a number." msgstr "" -#: js/FlowBlocks.js:1037 -msgid "forever" -msgstr "සෑමවිටම" - -#: js/FlowBlocks.js:1073 -msgid "The Repeat block will repeat the contained blocks." +#: js/blocks/OrnamentBlocks.js:32 +msgid "staccato factor" msgstr "" -#: js/FlowBlocks.js:1075 -msgid "In this example the note will be played 4 times." +#: js/blocks/OrnamentBlocks.js:108 +msgid "slur factor" msgstr "" -#: js/FlowBlocks.js:1083 -msgid "repeat" -msgstr "නැවත කරන්න" - -#: js/FlowBlocks.js:1123 -msgid "duplicate factor" +#: js/blocks/OrnamentBlocks.js:217 +#: js/blocks/OrnamentBlocks.js:309 +#.TRANS: the neighbor refers to a neighboring note, e.g., D is a neighbor of C +msgid "neighbor" msgstr "" -#: js/PitchBlocks.js:39 -#: js/musicutils.js:722 -#: js/musicutils.js:1117 -#: js/synthutils.js:112 -#.TRANS: square wave -msgid "square" +#: js/blocks/OrnamentBlocks.js:293 +msgid "The Neighbor block rapidly switches between neighboring pitches." msgstr "" -#: js/PitchBlocks.js:62 -#: js/ToneBlocks.js:39 -#: js/musicutils.js:723 -#: js/musicutils.js:1118 -#: js/synthutils.js:116 -#.TRANS: triangle wave -msgid "triangle" +#: js/blocks/OrnamentBlocks.js:364 +msgid "glide" msgstr "" -#: js/PitchBlocks.js:85 -#: js/musicutils.js:721 -#: js/musicutils.js:1116 -#: js/synthutils.js:110 -#.TRANS: sine wave -msgid "sine" +#: js/blocks/OrnamentBlocks.js:479 +#: js/blocks/OrnamentBlocks.js:643 +msgid "slur" msgstr "" -#: js/PitchBlocks.js:108 -#: js/musicutils.js:724 -#: js/musicutils.js:1119 -#: js/synthutils.js:114 -#.TRANS: sawtooth wave -msgid "sawtooth" +#: js/blocks/OrnamentBlocks.js:558 +#: js/blocks/OrnamentBlocks.js:710 +#.TRANS: play each note sharply detached from the others +msgid "staccato" msgstr "" -#: js/PitchBlocks.js:141 -#.TRANS: musical transposition (adjustment of pitch up or down) -msgid "transposition" +#: js/blocks/RhythmBlocks.js:182 +#: js/blocks/RhythmBlocks.js:1086 +#: js/blocks/RhythmBlocks.js:1162 +msgid "Note value must be greater than 0." msgstr "" -#: js/PitchBlocks.js:168 -#.TRANS: step down one note in current musical scale -msgid "scalar step down" +#: js/blocks/RhythmBlocks.js:215 +#: js/blocks/RhythmBlocks.js:278 +#: js/blocks/RhythmBlocks.js:350 +#.TRANS: swing is a rhythmic variation that emphasises the offbeat +msgid "swing" msgstr "" -#: js/PitchBlocks.js:172 -msgid "The Scalar step down block returns the number of semi-tones down to the previous note in the current key and mode." +#: js/blocks/RhythmBlocks.js:355 +#.TRANS: the amount to shift to the offbeat note +msgid "swing value" msgstr "" -#: js/PitchBlocks.js:190 -#.TRANS: step up one note in current musical scale -msgid "scalar step up" +#: js/blocks/RhythmBlocks.js:419 +msgid "The Skip notes block will cause notes to be skipped." msgstr "" -#: js/PitchBlocks.js:194 -msgid "The Scalar step up block returns the number of semi-tones up to the next note in the current key and mode." +#: js/blocks/RhythmBlocks.js:427 +#.TRANS: substitute rests on notes being skipped +msgid "skip notes" msgstr "" -#: js/PitchBlocks.js:212 -#.TRANS: the change measured in half-steps between the current pitch and the previous pitch -msgid "change in pitch" +#: js/blocks/RhythmBlocks.js:489 +#.TRANS: speed up note duration by some factor, e.g. convert 1/4 to 1/8 notes by using a factor of 2 +msgid "multiply note value" msgstr "" -#: js/PitchBlocks.js:216 -msgid "The Change in pitch block is the difference (in half steps) between the current pitch being played and the previous pitch played." +#: js/blocks/RhythmBlocks.js:542 +msgid "The Tie block works on pairs of notes, combining them into one note." msgstr "" -#: js/PitchBlocks.js:243 -#.TRANS: the change measured in scale-steps between the current pitch and the previous pitch -msgid "scalar change in pitch" +#: js/blocks/RhythmBlocks.js:550 +#.TRANS: tie notes together into one longer note +msgid "tie" msgstr "" -#: js/PitchBlocks.js:250 -#: js/PitchBlocks.js:432 -#: js/PitchBlocks.js:1629 -#: js/DictActions.js:89 -#: js/temperament.js:477 -#: js/temperament.js:481 -#: js/temperament.js:714 -#.TRANS: convert current note to piano key (1-88) -#.TRANS: a mapping of pitch to the 88 piano keys -msgid "pitch number" +#: js/blocks/RhythmBlocks.js:591 +#: js/blocks/RhythmBlocks.js:671 +#.TRANS: a dotted note is played for 1.5x its value, e.g., 1/8. --> 3/16 +msgid "dot" msgstr "" -#: js/PitchBlocks.js:256 -msgid "The Pitch number block is the value of the pitch of the note currently being played." +#: js/blocks/RhythmBlocks.js:619 +#: js/turtleactions/RhythmActions.js:221 +msgid "An argument of -1 results in a note value of 0." msgstr "" -#: js/PitchBlocks.js:329 -#: js/PitchBlocks.js:433 -#.TRANS: the current pitch expressed in Hertz -msgid "pitch in hertz" +#: js/blocks/RhythmBlocks.js:661 +msgid "The Dot block extends the duration of a note by 50%." msgstr "" -#: js/PitchBlocks.js:334 -msgid "The Pitch in Hertz block is the value in Hertz of the pitch of the note currently being played." +#: js/blocks/RhythmBlocks.js:663 +msgid "Eg a dotted quarter note will play for 3/8 (1/4 + 1/8) of a beat." msgstr "" -#: js/PitchBlocks.js:367 -#: js/DictActions.js:87 -msgid "current pitch" +#: js/blocks/RhythmBlocks.js:765 +#.TRANS: Japanese only: note value block for drum +msgid "note value drum" msgstr "" -#: js/PitchBlocks.js:373 -msgid "The Current Pitch block is used with the Pitch Converter block. In the example above, current pitch, sol 4, is displayed as 392 hertz." +#: js/blocks/RhythmBlocks.js:829 +msgid "392 hertz" msgstr "" -#: js/PitchBlocks.js:410 -msgid "This block converts the pitch value of the last note played into different formats such as hertz, letter name, pitch number, et al." +#: js/blocks/RhythmBlocks.js:1119 +msgid "The Note block is a container for one or more Pitch blocks." msgstr "" -#: js/PitchBlocks.js:434 -msgid "alphabet" +#: js/blocks/RhythmBlocks.js:1121 +msgid "The Note block specifies the duration (note value) of its contents." msgstr "" -#: js/PitchBlocks.js:436 -#.TRANS: Translate as "alphabet class" -msgid "letter class" +#: js/blocks/RhythmBlocks.js:1128 +#: js/blocks/PitchBlocks.js:974 +#: js/blocks/PitchBlocks.js:1007 +#: js/blocks/ProgramBlocks.js:1186 +#: js/blocks/ProgramBlocks.js:1227 +#: js/widgets/status.js:190 +#: js/widgets/temperament.js:464 +#: js/widgets/temperament.js:486 +#: js/widgets/temperament.js:496 +#: js/widgets/temperament.js:617 +#: plugins/rodi.rtp:192 +#.TRANS: a musical note consisting of pitch and duration +msgid "note" msgstr "" -#: js/PitchBlocks.js:437 -msgid "solfege class" +#: js/blocks/RhythmBlocks.js:1130 +msgid "value2" msgstr "" -#: js/PitchBlocks.js:438 -msgid "staff y" +#: js/blocks/RhythmBlocks.js:1200 +msgid "define frequency" msgstr "" -#: js/PitchBlocks.js:439 -msgid "solfege syllable" +#: js/blocks/RhythmBlocks.js:1218 +#: js/widgets/temperament.js:787 +#: js/widgets/temperament.js:1587 +msgid "octave space" msgstr "" -#: js/PitchBlocks.js:440 -msgid "pitch class" +#: js/blocks/SensorsBlocks.js:36 +msgid "The Input block prompts for keyboard input." msgstr "" -#: js/PitchBlocks.js:441 -msgid "scalar class" +#: js/blocks/SensorsBlocks.js:46 +msgid "input" msgstr "" -#: js/PitchBlocks.js:443 -msgid "nth degree" +#: js/blocks/SensorsBlocks.js:64 +msgid "Input a value" msgstr "" -#: js/PitchBlocks.js:444 -msgid "pitch to shade" +#: js/blocks/SensorsBlocks.js:126 +msgid "input value" msgstr "" -#: js/PitchBlocks.js:445 -msgid "pitch to color" +#: js/blocks/SensorsBlocks.js:131 +msgid "The Input-value block stores the input." msgstr "" -#: js/PitchBlocks.js:629 -#: js/musickeyboard.js:565 -#.TRANS: MIDI is a technical standard for electronic music -msgid "MIDI" +#: js/blocks/SensorsBlocks.js:238 +msgid "loudness" msgstr "" -#: js/PitchBlocks.js:642 -#.TRANS: set an offset associated with the numeric piano keyboard mapping -msgid "set pitch number offset" +#: js/blocks/SensorsBlocks.js:245 +msgid "The Loudness block returns the volume detected by the microphone." msgstr "" -#: js/PitchBlocks.js:645 -msgid "The Set pitch number offset block is used to set the offset for mapping pitch numbers to pitch and octave." +#: js/blocks/SensorsBlocks.js:300 +msgid "click" msgstr "" -#: js/PitchBlocks.js:679 -#.TRANS: convert piano key number (1-88) to pitch -msgid "number to pitch" +#: js/blocks/SensorsBlocks.js:306 +msgid "The Click block triggers an event if a mouse has been clicked." msgstr "" -#: js/PitchBlocks.js:682 -msgid "The Number to pitch block will convert a pitch number to a pich name." +#: js/blocks/SensorsBlocks.js:313 +msgid "The Click block triggers an event if a turtle has been clicked." msgstr "" -#: js/PitchBlocks.js:715 -#.TRANS: convert piano key number (1-88) to octave -msgid "number to octave" +#: js/blocks/SensorsBlocks.js:342 +msgid "cursor over" msgstr "" -#: js/PitchBlocks.js:717 -msgid "The Number to octave block will convert a pitch number to an octave." +#: js/blocks/SensorsBlocks.js:387 +msgid "cursor out" msgstr "" -#: js/PitchBlocks.js:726 -msgid "y to pitch" +#: js/blocks/SensorsBlocks.js:433 +msgid "cursor button down" msgstr "" -#: js/PitchBlocks.js:729 -msgid "Y to pitch block will convert a staff y position to corresponding pitch notation." +#: js/blocks/SensorsBlocks.js:477 +msgid "cursor button up" msgstr "" -#: js/PitchBlocks.js:841 -msgid "accidental selector" +#: js/blocks/SensorsBlocks.js:521 +#: js/blocks/PenBlocks.js:48 +#: plugins/rodi.rtp:219 +msgid "blue" msgstr "" -#: js/PitchBlocks.js:844 -msgid "The Accidental selector block is used to choose between double-sharp, sharp, natural, flat, and double-flat." +#: js/blocks/SensorsBlocks.js:577 +#: js/blocks/PenBlocks.js:64 +#: plugins/rodi.rtp:218 +msgid "green" msgstr "" -#: js/PitchBlocks.js:858 -msgid "Pitch can be specified in terms of ni dha pa ma ga re sa." +#: js/blocks/SensorsBlocks.js:633 +#: js/blocks/PenBlocks.js:112 +#: plugins/rodi.rtp:217 +msgid "red" msgstr "" -#: js/PitchBlocks.js:872 -msgid "Pitch can be specified in terms of C D E F G A B." +#: js/blocks/SensorsBlocks.js:638 +msgid "The Get red block returns the red component of the pixel under the mouse." msgstr "" -#: js/PitchBlocks.js:883 -msgid "solfege" +#: js/blocks/SensorsBlocks.js:644 +msgid "The Get red block returns the red component of the pixel under the turtle." msgstr "" -#: js/PitchBlocks.js:886 -msgid "Pitch can be specified in terms of do re mi fa sol la ti." +#: js/blocks/SensorsBlocks.js:685 +#: plugins/rodi.rtp:216 +msgid "pixel color" msgstr "" -#: js/PitchBlocks.js:920 -msgid "The Invert block rotates any contained notes around a target note." +#: js/blocks/SensorsBlocks.js:690 +msgid "The Get pixel block returns the color of the pixel under the mouse." msgstr "" -#: js/PitchBlocks.js:927 -#.TRANS: pitch inversion rotates a pitch around another pitch -msgid "invert" +#: js/blocks/SensorsBlocks.js:696 +msgid "The Get pixel block returns the color of the pixel under the turtle." msgstr "" -#: js/PitchBlocks.js:929 -#: js/PitchBlocks.js:935 -#: js/PitchActions.js:727 -#: js/musicutils.js:726 -#: js/musicutils.js:902 -#.TRANS: invert based on even or odd number or musical scale -#.TRANS: even numbers -msgid "even" -msgstr "" +#: js/blocks/SensorsBlocks.js:758 +msgid "time" +msgstr "කාලය" -#: js/PitchBlocks.js:935 -#: js/PitchActions.js:729 -#: js/musicutils.js:728 -#: js/musicutils.js:903 -#.TRANS: odd numbers -msgid "odd" +#: js/blocks/SensorsBlocks.js:804 +msgid "cursor y" msgstr "" -#: js/PitchBlocks.js:935 -#: js/PitchActions.js:731 -#: js/musicutils.js:729 -#: js/musicutils.js:904 -msgid "scalar" +#: js/blocks/SensorsBlocks.js:809 +msgid "The Cursor Y block returns the vertical position of the mouse." msgstr "" -#: js/PitchBlocks.js:966 -#.TRANS: pitch inversion rotates a pitch around another pitch (odd number) -msgid "invert (odd)" +#: js/blocks/SensorsBlocks.js:845 +msgid "cursor x" msgstr "" -#: js/PitchBlocks.js:999 -#.TRANS: pitch inversion rotates a pitch around another pitch (even number) -msgid "invert (even)" +#: js/blocks/SensorsBlocks.js:850 +msgid "The Cursor X block returns the horizontal position of the mouse." msgstr "" -#: js/PitchBlocks.js:1020 -#.TRANS: register is the octave of the current pitch -msgid "register" +#: js/blocks/SensorsBlocks.js:886 +msgid "mouse button" msgstr "" -#: js/PitchBlocks.js:1024 -msgid "The Register block provides an easy way to modify the register (octave) of the notes that follow it." +#: js/blocks/SensorsBlocks.js:888 +msgid "The Mouse-button block returns True if the mouse button is pressed." msgstr "" -#: js/PitchBlocks.js:1074 -msgid "The Semi-tone transposition block will shift the pitches contained inside Note blocks up (or down) by half steps." +#: js/blocks/SensorsBlocks.js:934 +msgid "to ASCII" msgstr "" -#: js/PitchBlocks.js:1076 -msgid "In the example shown above, sol is shifted up to sol#." +#: js/blocks/SensorsBlocks.js:938 +msgid "The To ASCII block converts numbers to letters." msgstr "" -#: js/PitchBlocks.js:1082 -#.TRANS: adjust the amount of shift (up or down) of a pitch -msgid "semi-tone transpose" +#: js/blocks/SensorsBlocks.js:1005 +msgid "The Keyboard block returns computer keyboard input." msgstr "" -#: js/PitchBlocks.js:1115 -msgid "The Transpose by Ratio block will shift the pitches contained inside Note blocks up (or down) by a ratio" +#: js/blocks/RhythmBlockPaletteBlocks.js:50 +#: js/blocks/RhythmBlockPaletteBlocks.js:233 +#.TRANS: rhythm block +#.TRANS: translate "rhythm1" as rhythm +msgid "rhythm1" msgstr "" -#: js/PitchBlocks.js:1121 -#.TRANS: adjust the amount of shift (up or down) of a pitch -msgid "transpose by ratio" +#: js/blocks/RhythmBlockPaletteBlocks.js:70 +#: js/blocks/RhythmBlockPaletteBlocks.js:252 +#: js/blocks/RhythmBlockPaletteBlocks.js:485 +#: js/blocks/RhythmBlockPaletteBlocks.js:554 +#: js/blocks/RhythmBlockPaletteBlocks.js:875 +msgid "number of notes" msgstr "" -#: js/PitchBlocks.js:1204 -#.TRANS: down sixth means the note is five scale degrees below current note -msgid "down sixth" +#: js/blocks/RhythmBlockPaletteBlocks.js:126 +msgid "polyphonic rhythm" msgstr "" -#: js/PitchBlocks.js:1223 -#.TRANS: down third means the note is two scale degrees below current note -msgid "down third" +#: js/blocks/RhythmBlockPaletteBlocks.js:219 +msgid "The Rhythm block is used to generate rhythm patterns." msgstr "" -#: js/PitchBlocks.js:1242 -#.TRANS: seventh means the note is the six scale degrees above current note -msgid "seventh" +#: js/blocks/RhythmBlockPaletteBlocks.js:280 +msgid "1/64 note" msgstr "" -#: js/PitchBlocks.js:1261 -#.TRANS: sixth means the note is the five scale degrees above current note -msgid "sixth" +#: js/blocks/RhythmBlockPaletteBlocks.js:304 +msgid "1/32 note" msgstr "" -#: js/PitchBlocks.js:1280 -#.TRANS: fifth means the note is the four scale degrees above current note -msgid "fifth" +#: js/blocks/RhythmBlockPaletteBlocks.js:332 +msgid "1/16 note" msgstr "" -#: js/PitchBlocks.js:1300 -#.TRANS: fourth means the note is three scale degrees above current note -msgid "fourth" +#: js/blocks/RhythmBlockPaletteBlocks.js:360 +msgid "eighth note" msgstr "" - -#: js/PitchBlocks.js:1319 -#.TRANS: third means the note is two scale degrees above current note -msgid "third" + +#: js/blocks/RhythmBlockPaletteBlocks.js:388 +msgid "quarter note" msgstr "" -#: js/PitchBlocks.js:1338 -#.TRANS: second means the note is one scale degree above current note -msgid "second" +#: js/blocks/RhythmBlockPaletteBlocks.js:416 +msgid "half note" msgstr "" -#: js/PitchBlocks.js:1379 -msgid "The Scalar transposition block will shift the pitches contained inside Note blocks up (or down) the scale." +#: js/blocks/RhythmBlockPaletteBlocks.js:444 +msgid "whole note" msgstr "" -#: js/PitchBlocks.js:1381 -msgid "In the example shown above, sol is shifted up to la." +#: js/blocks/RhythmBlockPaletteBlocks.js:482 +#: js/blocks/RhythmBlockPaletteBlocks.js:551 +#: js/blocks/RhythmBlockPaletteBlocks.js:602 +#.TRANS: A tuplet is a note value divided into irregular time values. +msgid "tuplet" msgstr "" -#: js/PitchBlocks.js:1388 -#.TRANS: adjust the amount of shift (up or down) of a pitch by musical scale (scalar) steps -msgid "scalar transpose" +#: js/blocks/RhythmBlockPaletteBlocks.js:768 +msgid "septuplet" msgstr "" -#: js/PitchBlocks.js:1423 -msgid "The Accidental block is used to create sharps and flats" +#: js/blocks/RhythmBlockPaletteBlocks.js:796 +msgid "quintuplet" msgstr "" -#: js/PitchBlocks.js:1430 -#.TRANS: An accidental is a modification to a pitch, e.g., sharp or flat. -msgid "accidental override" +#: js/blocks/RhythmBlockPaletteBlocks.js:824 +msgid "triplet" msgstr "" -#: js/PitchBlocks.js:1543 -msgid "The Hertz block (in combination with a Number block) will play a sound at the specified frequency." +#: js/blocks/RhythmBlockPaletteBlocks.js:851 +msgid "simple tuplet" msgstr "" -#: js/PitchBlocks.js:1633 -msgid "The Pitch Number block will play a pitch associated by its number, e.g. 0 for C and 7 for G." +#: js/blocks/RhythmBlockPaletteBlocks.js:861 +msgid "Tuplets are a collection of notes that get scaled to a specific duration." msgstr "" -#: js/PitchBlocks.js:1665 -#: js/PitchBlocks.js:1707 -#.TRANS: a numeric mapping of the notes in an octave based on the musical mode -#.TRANS: a numeric mapping of the notes in an octave based on the musical mode -msgid "nth modal pitch" +#: js/blocks/DrumBlocks.js:59 +msgid "The Noise name block is used to select a noise synthesizer." msgstr "" -#: js/PitchBlocks.js:1668 -msgid "n^th Modal Pitch takes the pattern of pitches in semitones for a mode and makes each point a degree of the mode," +#: js/blocks/DrumBlocks.js:102 +msgid "The Drum name block is used to select a drum." msgstr "" -#: js/PitchBlocks.js:1670 -msgid "starting from 1 and regardless of tonal framework (i.e. not always 8 notes in the octave)" +#: js/blocks/DrumBlocks.js:146 +msgid "The Effects name block is used to select a sound effect." msgstr "" -#: js/PitchBlocks.js:1711 -msgid "N^th Modal Pitch takes a number as an input as the n^th degree for the given mode. 0 is the first position, 1 is the second, -1 is the note before the first etc." +#: js/blocks/DrumBlocks.js:163 +msgid "noise" msgstr "" -#: js/PitchBlocks.js:1713 -msgid "The pitches change according to the mode specified without any need for respellings." +#: js/blocks/DrumBlocks.js:177 +msgid "The Play noise block will generate white, pink, or brown noise." msgstr "" -#: js/PitchBlocks.js:1752 -msgid "Scale Degree is a common convention in music. Scale Degree offers seven possible positions in the scale (1-7) and can be modified via accidentals." +#: js/blocks/DrumBlocks.js:317 +msgid "Replace every instance of a pitch with a drum sound." msgstr "" -#: js/PitchBlocks.js:1754 -msgid "Scale Degree 1 is always the first pitch in a given scale, regardless of octave." +#: js/blocks/DrumBlocks.js:328 +#.TRANS: map a pitch to a drum sound +msgid "map pitch to drum" msgstr "" -#: js/PitchBlocks.js:1776 -#.TRANS: step some number of notes in current musical scale -msgid "scalar step" +#: js/blocks/DrumBlocks.js:395 +msgid "In the example above, a kick drum sound will be played instead of sol." msgstr "" -#: js/PitchBlocks.js:1781 -msgid "The Scalar Step block (in combination with a Number block) will play the next pitch in a scale," +#: js/blocks/DrumBlocks.js:407 +#.TRANS: set the current drum sound for playback +msgid "set drum" msgstr "" -#: js/PitchBlocks.js:1783 -msgid "eg if the last note played was sol, Scalar Step 1 will play la." +#: js/blocks/DrumBlocks.js:451 +msgid "sound effect" msgstr "" -#: js/PitchBlocks.js:1818 -msgid "The Pitch block specifies the pitch name and octave of a note that together determine the frequency of the note." +#: js/blocks/DrumBlocks.js:489 +msgid "You can use multiple Drum blocks within a Note block." msgstr "" -#: js/GraphicsBlocks.js:46 -#: js/DictActions.js:77 -#: js/DictActions.js:155 -#: js/DictActions.js:189 +#: js/blocks/GraphicsBlocks.js:46 +#: js/turtleactions/DictActions.js:77 +#: js/turtleactions/DictActions.js:144 +#: js/turtleactions/DictActions.js:173 msgid "heading" msgstr "ශීර්ෂකය" -#: js/GraphicsBlocks.js:56 +#: js/blocks/GraphicsBlocks.js:56 msgid "The Heading block returns the orientation of the mouse." msgstr "" -#: js/GraphicsBlocks.js:62 +#: js/blocks/GraphicsBlocks.js:62 msgid "The Heading block returns the orientation of the turtle." msgstr "" -#: js/GraphicsBlocks.js:133 +#: js/blocks/GraphicsBlocks.js:133 msgid "The Y block returns the vertical position of the mouse." msgstr "" -#: js/GraphicsBlocks.js:140 +#: js/blocks/GraphicsBlocks.js:140 msgid "The Y block returns the vertical position of the turtle." msgstr "" -#: js/GraphicsBlocks.js:149 +#: js/blocks/GraphicsBlocks.js:149 msgid "y3" msgstr "" -#: js/GraphicsBlocks.js:219 +#: js/blocks/GraphicsBlocks.js:219 msgid "The X block returns the horizontal position of the mouse." msgstr "" -#: js/GraphicsBlocks.js:226 +#: js/blocks/GraphicsBlocks.js:226 msgid "The X block returns the horizontal position of the turtle." msgstr "" -#: js/GraphicsBlocks.js:235 +#: js/blocks/GraphicsBlocks.js:235 msgid "x3" msgstr "" -#: js/GraphicsBlocks.js:295 +#: js/blocks/GraphicsBlocks.js:295 msgid "scroll xy" msgstr "" -#: js/GraphicsBlocks.js:303 +#: js/blocks/GraphicsBlocks.js:303 msgid "The Scroll XY block moves the canvas." msgstr "" -#: js/GraphicsBlocks.js:313 +#: js/blocks/GraphicsBlocks.js:313 msgid "x2" msgstr "" -#: js/GraphicsBlocks.js:313 +#: js/blocks/GraphicsBlocks.js:313 msgid "y2" msgstr "" -#: js/GraphicsBlocks.js:373 -#: js/temperament.js:213 -#: js/temperament.js:241 +#: js/blocks/GraphicsBlocks.js:373 +#: js/widgets/temperament.js:319 +#: js/widgets/temperament.js:347 msgid "clear" msgstr "" -#: js/GraphicsBlocks.js:426 +#: js/blocks/GraphicsBlocks.js:426 msgid "The Control-point 2 block sets the second control point for the Bezier curve." msgstr "" -#: js/GraphicsBlocks.js:433 +#: js/blocks/GraphicsBlocks.js:433 msgid "control point 2" msgstr "" -#: js/GraphicsBlocks.js:436 -#: js/GraphicsBlocks.js:487 -#: js/GraphicsBlocks.js:534 -#: js/GraphicsBlocks.js:750 +#: js/blocks/GraphicsBlocks.js:436 +#: js/blocks/GraphicsBlocks.js:487 +#: js/blocks/GraphicsBlocks.js:534 +#: js/blocks/GraphicsBlocks.js:750 msgid "x1" msgstr "" -#: js/GraphicsBlocks.js:436 -#: js/GraphicsBlocks.js:487 -#: js/GraphicsBlocks.js:534 -#: js/GraphicsBlocks.js:750 +#: js/blocks/GraphicsBlocks.js:436 +#: js/blocks/GraphicsBlocks.js:487 +#: js/blocks/GraphicsBlocks.js:534 +#: js/blocks/GraphicsBlocks.js:750 msgid "y1" msgstr "" -#: js/GraphicsBlocks.js:477 +#: js/blocks/GraphicsBlocks.js:477 msgid "The Control-point 1 block sets the first control point for the Bezier curve." msgstr "" -#: js/GraphicsBlocks.js:484 +#: js/blocks/GraphicsBlocks.js:484 msgid "control point 1" msgstr "" -#: js/GraphicsBlocks.js:527 +#: js/blocks/GraphicsBlocks.js:527 msgid "The Bezier block draws a Bezier curve." msgstr "" -#: js/GraphicsBlocks.js:531 +#: js/blocks/GraphicsBlocks.js:531 msgid "bezier" msgstr "" -#: js/GraphicsBlocks.js:592 +#: js/blocks/GraphicsBlocks.js:592 msgid "The Arc block moves the turtle in an arc." msgstr "" -#: js/GraphicsBlocks.js:600 +#: js/blocks/GraphicsBlocks.js:600 msgid "arc" msgstr "arc" -#: js/GraphicsBlocks.js:603 +#: js/blocks/GraphicsBlocks.js:603 msgid "angle" msgstr "ඇලය" -#: js/GraphicsBlocks.js:603 +#: js/blocks/GraphicsBlocks.js:603 msgid "radius" msgstr "අරය" -#: js/GraphicsBlocks.js:620 -#: js/GraphicsBlocks.js:767 -#: js/GraphicsBlocks.js:1010 -#: js/GraphicsBlocks.js:1093 +#: js/blocks/GraphicsBlocks.js:620 +#: js/blocks/GraphicsBlocks.js:767 +#: js/blocks/GraphicsBlocks.js:1010 +#: js/blocks/GraphicsBlocks.js:1093 msgid "Value must be within -5000 to 5000 when Wrap Mode is off." msgstr "" -#: js/GraphicsBlocks.js:622 -#: js/GraphicsBlocks.js:769 -#: js/GraphicsBlocks.js:1012 -#: js/GraphicsBlocks.js:1095 +#: js/blocks/GraphicsBlocks.js:622 +#: js/blocks/GraphicsBlocks.js:769 +#: js/blocks/GraphicsBlocks.js:1012 +#: js/blocks/GraphicsBlocks.js:1095 msgid "Value must be within -20000 to 20000 when Wrap Mode is on." msgstr "" -#: js/GraphicsBlocks.js:660 +#: js/blocks/GraphicsBlocks.js:660 msgid "set heading" msgstr "seth" -#: js/GraphicsBlocks.js:673 +#: js/blocks/GraphicsBlocks.js:673 msgid "The Set heading block sets the heading of the turtle." msgstr "" -#: js/GraphicsBlocks.js:733 +#: js/blocks/GraphicsBlocks.js:733 msgid "The Set XY block moves the mouse to a specific position on the screen." msgstr "" -#: js/GraphicsBlocks.js:739 +#: js/blocks/GraphicsBlocks.js:739 msgid "The Set XY block moves the turtle to a specific position on the screen." msgstr "" -#: js/GraphicsBlocks.js:747 +#: js/blocks/GraphicsBlocks.js:747 msgid "set xy" msgstr "xy සකසන්න" -#: js/GraphicsBlocks.js:819 +#: js/blocks/GraphicsBlocks.js:819 msgid "The Right block turns the mouse to the right." msgstr "" -#: js/GraphicsBlocks.js:826 +#: js/blocks/GraphicsBlocks.js:826 msgid "The Right block turns the turtle to the right." msgstr "" -#: js/GraphicsBlocks.js:835 +#: js/blocks/GraphicsBlocks.js:835 msgid "right1" msgstr "" -#: js/GraphicsBlocks.js:835 +#: js/blocks/GraphicsBlocks.js:835 #: plugins/rodi.rtp:77 #: plugins/rodi.rtp:340 #: plugins/rodi.rtp:375 msgid "right" msgstr "දකුණ" -#: js/GraphicsBlocks.js:899 +#: js/blocks/GraphicsBlocks.js:899 msgid "The Left block turns the mouse to the left." msgstr "" -#: js/GraphicsBlocks.js:906 +#: js/blocks/GraphicsBlocks.js:906 msgid "The Left block turns the turtle to the left." msgstr "" -#: js/GraphicsBlocks.js:915 +#: js/blocks/GraphicsBlocks.js:915 msgid "left1" msgstr "" -#: js/GraphicsBlocks.js:915 +#: js/blocks/GraphicsBlocks.js:915 #: plugins/rodi.rtp:79 #: plugins/rodi.rtp:339 #: plugins/rodi.rtp:362 msgid "left" msgstr "වම" -#: js/GraphicsBlocks.js:967 -#: js/temperament.js:734 -#: js/temperament.js:933 +#: js/blocks/GraphicsBlocks.js:967 +#: js/widgets/temperament.js:875 +#: js/widgets/temperament.js:1078 #: plugins/rodi.rtp:69 #: plugins/rodi.rtp:387 msgid "back" msgstr "පසුපසට" -#: js/GraphicsBlocks.js:976 +#: js/blocks/GraphicsBlocks.js:976 msgid "The Back block moves the mouse backward." msgstr "" -#: js/GraphicsBlocks.js:983 +#: js/blocks/GraphicsBlocks.js:983 msgid "The Back block moves the turtle backward." msgstr "" -#: js/GraphicsBlocks.js:1050 +#: js/blocks/GraphicsBlocks.js:1050 #: plugins/rodi.rtp:71 #: plugins/rodi.rtp:400 msgid "forward" msgstr "ඉදිරියට" -#: js/GraphicsBlocks.js:1059 +#: js/blocks/GraphicsBlocks.js:1059 msgid "The Forward block moves the mouse forward." msgstr "" -#: js/GraphicsBlocks.js:1066 +#: js/blocks/GraphicsBlocks.js:1066 msgid "The Forward block moves the turtle forward." msgstr "" -#: js/GraphicsBlocks.js:1154 -#: js/GraphicsBlocks.js:1172 +#: js/blocks/GraphicsBlocks.js:1154 +#: js/blocks/GraphicsBlocks.js:1172 msgid "wrap" msgstr "" -#: js/OrnamentBlocks.js:32 -msgid "staccato factor" -msgstr "" - -#: js/OrnamentBlocks.js:108 -msgid "slur factor" -msgstr "" - -#: js/OrnamentBlocks.js:217 -#: js/OrnamentBlocks.js:309 -#.TRANS: the neighbor refers to a neighboring note, e.g., D is a neighbor of C -msgid "neighbor" -msgstr "" - -#: js/OrnamentBlocks.js:293 -msgid "The Neighbor block rapidly switches between neighboring pitches." -msgstr "" - -#: js/OrnamentBlocks.js:364 -msgid "glide" -msgstr "" - -#: js/OrnamentBlocks.js:479 -#: js/OrnamentBlocks.js:643 -msgid "slur" -msgstr "" - -#: js/OrnamentBlocks.js:558 -#: js/OrnamentBlocks.js:710 -#.TRANS: play each note sharply detached from the others -msgid "staccato" -msgstr "" - -#: js/PenBlocks.js:24 +#: js/blocks/PenBlocks.js:30 msgid "purple" msgstr "" -#: js/PenBlocks.js:37 -#: js/SensorsBlocks.js:521 -#: plugins/rodi.rtp:219 -msgid "blue" -msgstr "" - -#: js/PenBlocks.js:50 -#: js/SensorsBlocks.js:577 -#: plugins/rodi.rtp:218 -msgid "green" -msgstr "" - -#: js/PenBlocks.js:63 +#: js/blocks/PenBlocks.js:80 msgid "yellow" msgstr "" -#: js/PenBlocks.js:76 +#: js/blocks/PenBlocks.js:96 #: plugins/nutrition.rtp:164 msgid "orange" msgstr "" -#: js/PenBlocks.js:89 -#: js/SensorsBlocks.js:633 -#: plugins/rodi.rtp:217 -msgid "red" -msgstr "" - -#: js/PenBlocks.js:102 +#: js/blocks/PenBlocks.js:128 msgid "white" msgstr "" -#: js/PenBlocks.js:115 +#: js/blocks/PenBlocks.js:144 msgid "black" msgstr "" -#: js/PenBlocks.js:128 +#: js/blocks/PenBlocks.js:163 msgid "begin fill" msgstr "" -#: js/PenBlocks.js:143 +#: js/blocks/PenBlocks.js:190 msgid "end fill" msgstr "පිරවීම අවසාන කරන්න" -#: js/PenBlocks.js:159 -#: js/PenBlocks.js:386 +#: js/blocks/PenBlocks.js:212 +#: js/blocks/PenBlocks.js:560 #.TRANS: set the background color msgid "background" msgstr "" -#: js/PenBlocks.js:206 -#: js/DictActions.js:71 -#: js/DictActions.js:149 -#: js/DictActions.js:186 +#: js/blocks/PenBlocks.js:274 +#: js/turtleactions/DictActions.js:71 +#: js/turtleactions/DictActions.js:138 +#: js/turtleactions/DictActions.js:170 msgid "grey" msgstr "" -#: js/PenBlocks.js:210 +#: js/blocks/PenBlocks.js:282 msgid "The Grey block returns the current pen grey value." msgstr "" -#: js/PenBlocks.js:243 -#: js/DictActions.js:69 -#: js/DictActions.js:147 -#: js/DictActions.js:185 +#: js/blocks/PenBlocks.js:340 +#: js/turtleactions/DictActions.js:69 +#: js/turtleactions/DictActions.js:136 +#: js/turtleactions/DictActions.js:169 msgid "shade" msgstr "අඳුරු කරන්න" -#: js/PenBlocks.js:247 +#: js/blocks/PenBlocks.js:347 msgid "The Shade block returns the current pen shade value." msgstr "" -#: js/PenBlocks.js:280 -#: js/DictActions.js:67 -#: js/DictActions.js:145 -#: js/DictActions.js:184 +#: js/blocks/PenBlocks.js:405 +#: js/turtleactions/DictActions.js:67 +#: js/turtleactions/DictActions.js:134 +#: js/turtleactions/DictActions.js:168 msgid "color" msgstr "වර්ණ" -#: js/PenBlocks.js:285 +#: js/blocks/PenBlocks.js:415 msgid "The Color block returns the current pen color." msgstr "" -#: js/PenBlocks.js:318 -#: js/DictActions.js:73 -#: js/DictActions.js:151 -#: js/DictActions.js:187 +#: js/blocks/PenBlocks.js:470 +#: js/turtleactions/DictActions.js:73 +#: js/turtleactions/DictActions.js:140 +#: js/turtleactions/DictActions.js:171 msgid "pen size" msgstr "පෑනේ විශාලත්වය" -#: js/PenBlocks.js:322 +#: js/blocks/PenBlocks.js:474 msgid "The Pen size block returns the current pen size value." msgstr "" -#: js/PenBlocks.js:355 +#: js/blocks/PenBlocks.js:513 msgid "set font" msgstr "" -#: js/PenBlocks.js:358 +#: js/blocks/PenBlocks.js:518 msgid "The Set font block sets the font used by the Show block." msgstr "" -#: js/PenBlocks.js:391 +#: js/blocks/PenBlocks.js:567 msgid "The Background block sets the window background color." msgstr "" -#: js/PenBlocks.js:408 +#: js/blocks/PenBlocks.js:598 msgid "The Hollow line block creates a line with a hollow center." msgstr "" -#: js/PenBlocks.js:415 +#: js/blocks/PenBlocks.js:606 #.TRANS: draw a line logo has a hollow space down its center msgid "hollow line" msgstr "" -#: js/PenBlocks.js:462 +#: js/blocks/PenBlocks.js:675 msgid "The Fill block fills in a shape with a color." msgstr "" -#: js/PenBlocks.js:470 +#: js/blocks/PenBlocks.js:684 #.TRANS: fill in as a solid color msgid "fill" msgstr "" -#: js/PenBlocks.js:527 +#: js/blocks/PenBlocks.js:761 #.TRANS: raise up the pen so logo it does not draw when it is moved msgid "pen up" msgstr "පෑන ඔසවන්න" -#: js/PenBlocks.js:532 +#: js/blocks/PenBlocks.js:768 msgid "The Pen-up block raises the pen so that it does not draw." msgstr "" -#: js/PenBlocks.js:552 +#: js/blocks/PenBlocks.js:802 #.TRANS: put down the pen so logo it draws when it is moved msgid "pen down" msgstr "පැන් පහර පහළට" -#: js/PenBlocks.js:557 +#: js/blocks/PenBlocks.js:810 msgid "The Pen-down block lowers the pen so that it draws." msgstr "" -#: js/PenBlocks.js:577 +#: js/blocks/PenBlocks.js:844 #.TRANS: set the width of the line drawn by the pen msgid "set pen size" msgstr "පෑනේ විශාලත්වය සකසන්න" -#: js/PenBlocks.js:583 +#: js/blocks/PenBlocks.js:854 msgid "The Set-pen-size block changes the size of the pen." msgstr "" -#: js/PenBlocks.js:623 +#: js/blocks/PenBlocks.js:913 #.TRANS: set degree of translucence of the pen color msgid "set translucency" msgstr "" -#: js/PenBlocks.js:627 +#: js/blocks/PenBlocks.js:921 msgid "The Set translucency block changes the opacity of the pen." msgstr "" -#: js/PenBlocks.js:668 +#: js/blocks/PenBlocks.js:981 msgid "set hue" msgstr "" -#: js/PenBlocks.js:672 +#: js/blocks/PenBlocks.js:989 msgid "The Set hue block changes the color of the pen." msgstr "" -#: js/PenBlocks.js:711 +#: js/blocks/PenBlocks.js:1047 msgid "set shade" msgstr "අඳුරුකිරීම් සකසන්න" -#: js/PenBlocks.js:717 +#: js/blocks/PenBlocks.js:1057 msgid "The Set-shade block changes the pen color from dark to light." msgstr "" -#: js/PenBlocks.js:757 +#: js/blocks/PenBlocks.js:1111 #.TRANS: set the level of vividness of the pen color msgid "set grey" msgstr "" -#: js/PenBlocks.js:761 +#: js/blocks/PenBlocks.js:1119 msgid "The Set grey block changes the vividness of the pen color." msgstr "" -#: js/PenBlocks.js:800 +#: js/blocks/PenBlocks.js:1172 msgid "set color" msgstr "වර්ණය සකසන්න" -#: js/PenBlocks.js:806 +#: js/blocks/PenBlocks.js:1182 msgid "The Set-color block changes the pen color." msgstr "" -#: js/VolumeBlocks.js:35 -msgid "synth volume" -msgstr "" - -#: js/VolumeBlocks.js:39 -msgid "The Synth volume block returns the current volume of the current synthesizer." -msgstr "" - -#: js/VolumeBlocks.js:47 -#: js/musicutils.js:730 -#: js/synthutils.js:56 -#.TRANS: musical instrument -msgid "piano" -msgstr "" - -#: js/VolumeBlocks.js:105 -msgid "master volume" -msgstr "" - -#: js/VolumeBlocks.js:109 -msgid "The Master volume block returns the master volume." -msgstr "" - -#: js/VolumeBlocks.js:355 -#: js/VolumeBlocks.js:524 -msgid "set synth volume" -msgstr "" - -#: js/VolumeBlocks.js:362 -#: js/VolumeBlocks.js:545 -msgid "synth" -msgstr "" - -#: js/VolumeBlocks.js:403 -#: js/VolumeBlocks.js:577 -#: js/VolumeBlocks.js:740 -#: js/VolumeActions.js:173 -msgid "Setting volume to 0." -msgstr "" - -#: js/VolumeBlocks.js:440 -msgid "Synth not found" -msgstr "" - -#: js/VolumeBlocks.js:494 -msgid "set drum volume" -msgstr "" - -#: js/VolumeBlocks.js:530 -msgid "The Set synth volume block will change the volume of a particular synth," -msgstr "" - -#: js/VolumeBlocks.js:532 -msgid "eg guitar violin snare drum etc." -msgstr "" - -#: js/VolumeBlocks.js:534 -msgid "The default volume is 50." -msgstr "" - -#: js/VolumeBlocks.js:536 -msgid "The range is 0 for silence to 100 for full volume." -msgstr "" - -#: js/VolumeBlocks.js:597 -msgid "set panning" -msgstr "" - -#: js/VolumeBlocks.js:603 -msgid "The Set Panning block sets the panning for all synthesizers." -msgstr "" - -#: js/VolumeBlocks.js:625 -msgid "Warning: Sound is coming out from only the left or right side." -msgstr "" - -#: js/VolumeBlocks.js:647 -#: js/VolumeBlocks.js:695 -msgid "set master volume" -msgstr "" - -#: js/VolumeBlocks.js:653 -msgid "The Set master volume block sets the volume for all synthesizers." -msgstr "" - -#: js/VolumeBlocks.js:784 -msgid "The Set relative volume block changes the volume of the contained notes." -msgstr "" - -#: js/VolumeBlocks.js:791 -msgid "set relative volume" -msgstr "" - -#: js/VolumeBlocks.js:857 -msgid "decrescendo" -msgstr "" - -#: js/VolumeBlocks.js:921 -msgid "crescendo" -msgstr "" - -#: js/ToneBlocks.js:34 -msgid "oscillator" -msgstr "" - -#: js/ToneBlocks.js:44 -#: js/timbre.js:1562 -#.TRANS: Partials refers to the number of sine waves combined into the sound. -msgid "partials" -msgstr "" - -#: js/ToneBlocks.js:76 -msgid "You are adding multiple oscillator blocks." -msgstr "" - -#: js/ToneBlocks.js:144 -#: js/timbre.js:1225 -#.TRANS: a duo synthesizer combines a synth with a sequencer -msgid "duo synth" -msgstr "" - -#: js/ToneBlocks.js:149 -msgid "The Duo synth block is a duo-frequency modulator used to define a timbre." -msgstr "" - -#: js/ToneBlocks.js:157 -#: js/timbre.js:1476 -msgid "vibrato rate" -msgstr "" - -#: js/ToneBlocks.js:157 -msgid "vibrato intensity" -msgstr "" - -#: js/ToneBlocks.js:185 -#: js/timbre.js:1221 -#.TRANS: AM (amplitude modulation) synthesizer -msgid "AM synth" -msgstr "" - -#: js/ToneBlocks.js:189 -msgid "The AM synth block is an amplitude modulator used to define a timbre." -msgstr "" - -#: js/ToneBlocks.js:224 -#: js/timbre.js:1223 -#.TRANS: FM (frequency modulation) synthesizer -msgid "FM synth" -msgstr "" - -#: js/ToneBlocks.js:228 -msgid "The FM synth block is a frequency modulator used to define a timbre." +#: js/blocks/PitchBlocks.js:141 +#.TRANS: musical transposition (adjustment of pitch up or down) +msgid "transposition" msgstr "" -#: js/ToneBlocks.js:262 -msgid "partial" +#: js/blocks/PitchBlocks.js:168 +#.TRANS: step down one note in current musical scale +msgid "scalar step down" msgstr "" -#: js/ToneBlocks.js:265 -msgid "The Partial block is used to specify a weight for a specific partial harmonic." +#: js/blocks/PitchBlocks.js:172 +msgid "The Scalar step down block returns the number of semi-tones down to the previous note in the current key and mode." msgstr "" -#: js/ToneBlocks.js:284 -#.TRANS: partials are weighted components in a harmonic series -msgid "Partial weight must be between 0 and 1." +#: js/blocks/PitchBlocks.js:190 +#.TRANS: step up one note in current musical scale +msgid "scalar step up" msgstr "" -#: js/ToneBlocks.js:297 -#.TRANS: partials are weighted components in a harmonic series -msgid "Partial block should be used inside of a Weighted-partials block." +#: js/blocks/PitchBlocks.js:194 +msgid "The Scalar step up block returns the number of semi-tones up to the next note in the current key and mode." msgstr "" -#: js/ToneBlocks.js:325 -#.TRANS: partials are weighted components in a harmonic series -msgid "weighted partials" +#: js/blocks/PitchBlocks.js:212 +#.TRANS: the change measured in half-steps between the current pitch and the previous pitch +msgid "change in pitch" msgstr "" -#: js/ToneBlocks.js:383 -msgid "The Harmonic block will add harmonics to the contained notes." +#: js/blocks/PitchBlocks.js:216 +msgid "The Change in pitch block is the difference (in half steps) between the current pitch being played and the previous pitch played." msgstr "" -#: js/ToneBlocks.js:390 -#.TRANS: A harmonic is an overtone. -msgid "harmonic" +#: js/blocks/PitchBlocks.js:243 +#.TRANS: the change measured in scale-steps between the current pitch and the previous pitch +msgid "scalar change in pitch" msgstr "" -#: js/ToneBlocks.js:431 -msgid "The Distortion block adds distortion to the pitch." +#: js/blocks/PitchBlocks.js:250 +#: js/blocks/PitchBlocks.js:432 +#: js/blocks/PitchBlocks.js:1667 +#: js/turtleactions/DictActions.js:89 +#: js/widgets/temperament.js:610 +#: js/widgets/temperament.js:614 +#: js/widgets/temperament.js:855 +#.TRANS: convert current note to piano key (1-88) +#.TRANS: a mapping of pitch to the 88 piano keys +msgid "pitch number" msgstr "" -#: js/ToneBlocks.js:438 -#: js/timbre.js:2100 -#.TRANS: distortion is an alteration in the sound -msgid "distortion" +#: js/blocks/PitchBlocks.js:256 +msgid "The Pitch number block is the value of the pitch of the note currently being played." msgstr "" -#: js/ToneBlocks.js:487 -msgid "The Tremolo block adds a wavering effect." +#: js/blocks/PitchBlocks.js:329 +#: js/blocks/PitchBlocks.js:433 +#.TRANS: the current pitch expressed in Hertz +msgid "pitch in hertz" msgstr "" -#: js/ToneBlocks.js:495 -#: js/timbre.js:2092 -#.TRANS: a wavering effect in a musical tone -msgid "tremolo" +#: js/blocks/PitchBlocks.js:334 +msgid "The Pitch in Hertz block is the value in Hertz of the pitch of the note currently being played." msgstr "" -#: js/ToneBlocks.js:500 -#: js/ToneBlocks.js:569 -#: js/ToneBlocks.js:630 -#: js/ToneBlocks.js:689 -#: js/timbre.js:2134 -#: js/timbre.js:2222 -#: js/timbre.js:2317 -#: js/timbre.js:2419 -#.TRANS: rate at which tremolo wavers -msgid "rate" +#: js/blocks/PitchBlocks.js:367 +#: js/turtleactions/DictActions.js:87 +msgid "current pitch" msgstr "" -#: js/ToneBlocks.js:502 -#: js/ToneBlocks.js:630 -#: js/timbre.js:2137 -#: js/timbre.js:2328 -#.TRANS: amplitude of tremolo waver -msgid "depth" +#: js/blocks/PitchBlocks.js:373 +msgid "The Current Pitch block is used with the Pitch Converter block. In the example above, current pitch, sol 4, is displayed as 392 hertz." msgstr "" -#: js/ToneBlocks.js:559 -msgid "The Phaser block adds a sweeping sound." +#: js/blocks/PitchBlocks.js:410 +msgid "This block converts the pitch value of the last note played into different formats such as hertz, letter name, pitch number, et al." msgstr "" -#: js/ToneBlocks.js:566 -#: js/timbre.js:2098 -#.TRANS: alter the phase of the sound -msgid "phaser" +#: js/blocks/PitchBlocks.js:434 +msgid "alphabet" msgstr "" -#: js/ToneBlocks.js:569 -#: js/timbre.js:2422 -msgid "octaves" +#: js/blocks/PitchBlocks.js:436 +#.TRANS: Translate as "alphabet class" +msgid "letter class" msgstr "" -#: js/ToneBlocks.js:569 -#: js/timbre.js:2425 -msgid "base frequency" +#: js/blocks/PitchBlocks.js:437 +msgid "solfege class" msgstr "" -#: js/ToneBlocks.js:619 -msgid "The Chorus block adds a chorus effect." +#: js/blocks/PitchBlocks.js:438 +msgid "staff y" msgstr "" -#: js/ToneBlocks.js:627 -#: js/timbre.js:2096 -#.TRANS: musical effect to simulate a choral sound -msgid "chorus" +#: js/blocks/PitchBlocks.js:439 +msgid "solfege syllable" msgstr "" -#: js/ToneBlocks.js:630 -msgid "delay" +#: js/blocks/PitchBlocks.js:440 +msgid "pitch class" msgstr "" -#: js/ToneBlocks.js:678 -msgid "The Vibrato block adds a rapid, slight variation in pitch." +#: js/blocks/PitchBlocks.js:441 +msgid "scalar class" msgstr "" -#: js/ToneBlocks.js:686 -#: js/timbre.js:2094 -#.TRANS: a rapid, slight variation in pitch -msgid "vibrato" +#: js/blocks/PitchBlocks.js:443 +msgid "nth degree" msgstr "" -#: js/ToneBlocks.js:689 -#: js/timbre.js:2221 -msgid "intensity" +#: js/blocks/PitchBlocks.js:444 +msgid "pitch to shade" msgstr "" -#: js/ToneBlocks.js:733 -#.TRANS: select synthesizer -msgid "set synth" +#: js/blocks/PitchBlocks.js:445 +msgid "pitch to color" msgstr "" -#: js/ToneBlocks.js:804 -msgid "synth name" +#: js/blocks/PitchBlocks.js:629 +#: js/widgets/musickeyboard.js:735 +#.TRANS: MIDI is a technical standard for electronic music +msgid "MIDI" msgstr "" -#: js/ToneBlocks.js:842 -msgid "set default instrument" +#: js/blocks/PitchBlocks.js:642 +#.TRANS: set an offset associated with the numeric piano keyboard mapping +msgid "set pitch number offset" msgstr "" -#: js/ToneBlocks.js:895 -#: js/ToneBlocks.js:943 -#.TRANS: set the characteristics of a custom instrument -msgid "set instrument" +#: js/blocks/PitchBlocks.js:645 +msgid "The Set pitch number offset block is used to set the offset for mapping pitch numbers to pitch and octave." msgstr "" -#: js/ToneBlocks.js:898 -#: js/ToneBlocks.js:926 -#: js/ToneBlocks.js:932 -msgid "The Set instrument block selects a voice for the synthesizer," +#: js/blocks/PitchBlocks.js:679 +#.TRANS: convert piano key number (1-88) to pitch +msgid "number to pitch" msgstr "" -#: js/ToneBlocks.js:900 -#: js/ToneBlocks.js:934 -msgid "eg guitar piano violin or cello." +#: js/blocks/PitchBlocks.js:682 +msgid "The Number to pitch block will convert a pitch number to a pich name." msgstr "" -#: js/ToneBlocks.js:1015 -msgid "Import a sound file to use as an instrument and set its pitch center." +#: js/blocks/PitchBlocks.js:715 +#.TRANS: convert piano key number (1-88) to octave +msgid "number to octave" msgstr "" -#: js/ToneBlocks.js:1110 -msgid "Upload a sound file to connect with the sample block." +#: js/blocks/PitchBlocks.js:717 +msgid "The Number to octave block will convert a pitch number to an octave." msgstr "" -#: js/MeterBlocks.js:34 -#.TRANS: musical meter (time signature), e.g., 4:4 -msgid "current meter" +#: js/blocks/PitchBlocks.js:726 +msgid "y to pitch" msgstr "" -#: js/MeterBlocks.js:85 -#.TRANS: number of beats per minute -msgid "beat factor" +#: js/blocks/PitchBlocks.js:729 +msgid "Y to pitch block will convert a staff y position to corresponding pitch notation." msgstr "" -#: js/MeterBlocks.js:161 -msgid "The Beats per minute block returns the current beats per minute." +#: js/blocks/PitchBlocks.js:841 +msgid "accidental selector" msgstr "" -#: js/MeterBlocks.js:169 -#: js/status.js:152 -#.TRANS: number of beats played per minute -msgid "beats per minute2" +#: js/blocks/PitchBlocks.js:844 +msgid "The Accidental selector block is used to choose between double-sharp, sharp, natural, flat, and double-flat." msgstr "" -#: js/MeterBlocks.js:169 -#: js/MeterBlocks.js:1056 -#: js/MeterBlocks.js:1133 -#: js/MeterBlocks.js:1211 -#.TRANS: sets tempo by defining a beat and beats per minute -msgid "beats per minute" +#: js/blocks/PitchBlocks.js:858 +msgid "Pitch can be specified in terms of ni dha pa ma ga re sa." msgstr "" -#: js/MeterBlocks.js:233 -#.TRANS: count of current musical measure in meter -msgid "measure count" +#: js/blocks/PitchBlocks.js:872 +msgid "Pitch can be specified in terms of C D E F G A B." msgstr "" -#: js/MeterBlocks.js:241 -msgid "The Measure count block returns the current measure." +#: js/blocks/PitchBlocks.js:884 +msgid "solfege" msgstr "" -#: js/MeterBlocks.js:290 -#.TRANS: count of current beat in the meter -msgid "beat count" +#: js/blocks/PitchBlocks.js:887 +msgid "Pitch can be specified in terms of do re mi fa sol la ti." msgstr "" -#: js/MeterBlocks.js:300 -#: js/MeterBlocks.js:311 -#: js/MeterBlocks.js:565 -#: js/MeterBlocks.js:576 -msgid "The Beat count block is the number of the current beat," +#: js/blocks/PitchBlocks.js:922 +msgid "The Invert block rotates any contained notes around a target note." msgstr "" -#: js/MeterBlocks.js:313 -#: js/MeterBlocks.js:578 -msgid "eg 1, 2, 3, or 4." +#: js/blocks/PitchBlocks.js:929 +#.TRANS: pitch inversion rotates a pitch around another pitch +msgid "invert" msgstr "" -#: js/MeterBlocks.js:368 -#.TRANS: count the number of notes -msgid "sum note values" +#: js/blocks/PitchBlocks.js:968 +#.TRANS: pitch inversion rotates a pitch around another pitch (odd number) +msgid "invert (odd)" msgstr "" -#: js/MeterBlocks.js:376 -#: js/MeterBlocks.js:440 -msgid "The Note counter block can be used to count the number of contained notes." +#: js/blocks/PitchBlocks.js:1001 +#.TRANS: pitch inversion rotates a pitch around another pitch (even number) +msgid "invert (even)" msgstr "" -#: js/MeterBlocks.js:432 -#.TRANS: count the number of notes -msgid "note counter" +#: js/blocks/PitchBlocks.js:1022 +#.TRANS: register is the octave of the current pitch +msgid "register" msgstr "" -#: js/MeterBlocks.js:496 -#.TRANS: number of whole notes that have been played -msgid "whole notes played" +#: js/blocks/PitchBlocks.js:1026 +msgid "The Register block provides an easy way to modify the register (octave) of the notes that follow it." msgstr "" -#: js/MeterBlocks.js:505 -msgid "The Whole notes played block returns the total number of whole notes played." +#: js/blocks/PitchBlocks.js:1047 +#.TRANS: cents are units used to specify the ratio between pitches. There are 100 cents between successive notes. +msgid "50 cents" msgstr "" -#: js/MeterBlocks.js:555 -#: js/DictActions.js:83 -#.TRANS: number of notes that have been played -msgid "notes played" +#: js/blocks/PitchBlocks.js:1102 +msgid "The Semi-tone transposition block will shift the pitches contained inside Note blocks up (or down) by half steps." msgstr "" -#: js/MeterBlocks.js:653 -msgid "The No clock block decouples the notes from the master clock." +#: js/blocks/PitchBlocks.js:1104 +msgid "In the example shown above, sol is shifted up to sol#." msgstr "" -#: js/MeterBlocks.js:661 -#.TRANS: don't lock notes to master clock -msgid "no clock" +#: js/blocks/PitchBlocks.js:1110 +#.TRANS: adjust the amount of shift (up or down) of a pitch +msgid "semi-tone transpose" msgstr "" -#: js/MeterBlocks.js:700 -msgid "on weak beat do" +#: js/blocks/PitchBlocks.js:1143 +msgid "The Transpose by Ratio block will shift the pitches contained inside Note blocks up (or down) by a ratio" msgstr "" -#: js/MeterBlocks.js:705 -msgid "The On-weak-beat block lets you specify actions to take on weak (off) beats." +#: js/blocks/PitchBlocks.js:1149 +#.TRANS: adjust the amount of shift (up or down) of a pitch +msgid "transpose by ratio" msgstr "" -#: js/MeterBlocks.js:750 -msgid "on strong beat" +#: js/blocks/PitchBlocks.js:1232 +#.TRANS: down sixth means the note is five scale degrees below current note +msgid "down sixth" msgstr "" -#: js/MeterBlocks.js:758 -msgid "The On-strong-beat block lets you specify actions to take on specified beats." +#: js/blocks/PitchBlocks.js:1251 +#.TRANS: down third means the note is two scale degrees below current note +msgid "down third" msgstr "" -#: js/MeterBlocks.js:769 -msgid "beat" +#: js/blocks/PitchBlocks.js:1270 +#.TRANS: seventh means the note is the six scale degrees above current note +msgid "seventh" msgstr "" -#: js/MeterBlocks.js:813 -msgid "on every beat do" +#: js/blocks/PitchBlocks.js:1289 +#.TRANS: sixth means the note is the five scale degrees above current note +msgid "sixth" msgstr "" -#: js/MeterBlocks.js:821 -msgid "The On-every-beat block lets you specify actions to take on every beat." +#: js/blocks/PitchBlocks.js:1308 +#.TRANS: fifth means the note is the four scale degrees above current note +msgid "fifth" msgstr "" -#: js/MeterBlocks.js:874 -msgid "on every note do" +#: js/blocks/PitchBlocks.js:1328 +#.TRANS: fourth means the note is three scale degrees above current note +msgid "fourth" msgstr "" -#: js/MeterBlocks.js:882 -msgid "The On-every-note block lets you specify actions to take on every note." +#: js/blocks/PitchBlocks.js:1347 +#.TRANS: third means the note is two scale degrees above current note +msgid "third" msgstr "" -#: js/MeterBlocks.js:928 -#: js/MeterBlocks.js:999 -#.TRANS: sets tempo by defining a beat and beats per minute -msgid "master beats per minute" +#: js/blocks/PitchBlocks.js:1366 +#.TRANS: second means the note is one scale degree above current note +msgid "second" msgstr "" -#: js/MeterBlocks.js:952 -#: js/MeterBlocks.js:1078 -#: js/MeterBlocks.js:1135 -msgid "bpm" +#: js/blocks/PitchBlocks.js:1407 +msgid "The Scalar transposition block will shift the pitches contained inside Note blocks up (or down) the scale." msgstr "" -#: js/MeterBlocks.js:952 -#: js/MeterBlocks.js:1078 -#: js/MeterBlocks.js:1135 -msgid "beat value" +#: js/blocks/PitchBlocks.js:1409 +msgid "In the example shown above, sol is shifted up to la." msgstr "" -#: js/MeterBlocks.js:1024 -#: js/MeterBlocks.js:1167 -#: js/MeterBlocks.js:1241 -msgid "Beats per minute must be > 30." +#: js/blocks/PitchBlocks.js:1416 +#.TRANS: adjust the amount of shift (up or down) of a pitch by musical scale (scalar) steps +msgid "scalar transpose" msgstr "" -#: js/MeterBlocks.js:1027 -#: js/MeterBlocks.js:1170 -#: js/MeterBlocks.js:1244 -msgid "Maximum beats per minute is 1000." +#: js/blocks/PitchBlocks.js:1451 +msgid "The Accidental block is used to create sharps and flats" msgstr "" -#: js/MeterBlocks.js:1068 -msgid "The Beats per minute block sets the number of 1/4 notes per minute." +#: js/blocks/PitchBlocks.js:1458 +#.TRANS: An accidental is a modification to a pitch, e.g., sharp or flat. +msgid "accidental override" msgstr "" -#: js/MeterBlocks.js:1279 -#.TRANS: anacrusis -msgid "pickup" +#: js/blocks/PitchBlocks.js:1581 +msgid "The Hertz block (in combination with a Number block) will play a sound at the specified frequency." msgstr "" -#: js/MeterBlocks.js:1367 -msgid "number of beats" +#: js/blocks/PitchBlocks.js:1671 +msgid "The Pitch Number block will play a pitch associated by its number, e.g. 0 for C and 7 for G." msgstr "" -#: js/DictBlocks.js:77 -msgid "show dictionary" +#: js/blocks/PitchBlocks.js:1703 +#: js/blocks/PitchBlocks.js:1745 +#.TRANS: a numeric mapping of the notes in an octave based on the musical mode +#.TRANS: a numeric mapping of the notes in an octave based on the musical mode +msgid "nth modal pitch" msgstr "" -#: js/DictBlocks.js:129 -msgid "The Dictionary block returns a dictionary." +#: js/blocks/PitchBlocks.js:1706 +msgid "n^th Modal Pitch takes the pattern of pitches in semitones for a mode and makes each point a degree of the mode," msgstr "" -#: js/DictBlocks.js:197 -#: js/DictBlocks.js:339 -msgid "The Get-dict block returns a value in the dictionary for a specified key." +#: js/blocks/PitchBlocks.js:1708 +msgid "starting from 1 and regardless of tonal framework (i.e. not always 8 notes in the octave)" msgstr "" -#: js/DictBlocks.js:212 -#: js/DictBlocks.js:354 -#.TRANS: retrieve a value from the dictionary with a given key -msgid "get value" +#: js/blocks/PitchBlocks.js:1749 +msgid "N^th Modal Pitch takes a number as an input as the n^th degree for the given mode. 0 is the first position, 1 is the second, -1 is the note before the first etc." msgstr "" -#: js/DictBlocks.js:215 -#: js/DictBlocks.js:216 -#: js/DictBlocks.js:289 -#: js/DictBlocks.js:290 -#: js/DictBlocks.js:357 -#: js/DictBlocks.js:430 -#: js/DictBlocks.js:431 -msgid "key2" +#: js/blocks/PitchBlocks.js:1751 +msgid "The pitches change according to the mode specified without any need for respellings." msgstr "" -#: js/DictBlocks.js:271 -#: js/DictBlocks.js:411 -msgid "The Set-dict block sets a value in the dictionary for a specified key." +#: js/blocks/PitchBlocks.js:1790 +msgid "Scale Degree is a common convention in music. Scale Degree offers seven possible positions in the scale (1-7) and can be modified via accidentals." msgstr "" -#: js/DictBlocks.js:286 -#: js/DictBlocks.js:427 -#.TRANS: set a value in the dictionary for a given key -msgid "set value" +#: js/blocks/PitchBlocks.js:1792 +msgid "Scale Degree 1 is always the first pitch in a given scale, regardless of octave." msgstr "" -#: js/ExtrasBlocks.js:33 -msgid "fraction" +#: js/blocks/PitchBlocks.js:1814 +#.TRANS: step some number of notes in current musical scale +msgid "scalar step" msgstr "" -#: js/ExtrasBlocks.js:36 -msgid "Convert a float to a fraction" +#: js/blocks/PitchBlocks.js:1819 +msgid "The Scalar Step block (in combination with a Number block) will play the next pitch in a scale," msgstr "" -#: js/ExtrasBlocks.js:93 -msgid "save as ABC" +#: js/blocks/PitchBlocks.js:1821 +msgid "eg if the last note played was sol, Scalar Step 1 will play la." msgstr "" -#: js/ExtrasBlocks.js:96 -#: js/ExtrasBlocks.js:132 -#: js/ExtrasBlocks.js:168 -msgid "title" +#: js/blocks/PitchBlocks.js:1857 +msgid "The Pitch block specifies the pitch name and octave of a note that together determine the frequency of the note." msgstr "" -#: js/ExtrasBlocks.js:129 -msgid "save as Lilypond" +#: js/blocks/ProgramBlocks.js:33 +msgid "The Load-heap-from-app block loads the heap from a web page." msgstr "" -#: js/ExtrasBlocks.js:165 -msgid "save as SVG" +#: js/blocks/ProgramBlocks.js:44 +#.TRANS: load the heap contents from a URL +msgid "load heap from App" msgstr "" -#: js/ExtrasBlocks.js:216 -msgid "no background" +#: js/blocks/ProgramBlocks.js:95 +msgid "Error parsing JSON data:" msgstr "" -#: js/ExtrasBlocks.js:219 -msgid "The No background block eliminates the background from the saved SVG output." +#: js/blocks/ProgramBlocks.js:100 +msgid "404: Page not found" msgstr "" -#: js/ExtrasBlocks.js:247 -msgid "show blocks" -msgstr "කොටස් පෙන්වන්න" +#: js/blocks/ProgramBlocks.js:133 +msgid "The Save-heap-to-app block saves the heap to a web page." +msgstr "" -#: js/ExtrasBlocks.js:249 -msgid "The Show blocks block shows the blocks." +#: js/blocks/ProgramBlocks.js:144 +#.TRANS: save the heap contents to a URL +msgid "save heap to App" msgstr "" -#: js/ExtrasBlocks.js:274 -msgid "hide blocks" -msgstr "කොටස් සගවන්න" +#: js/blocks/ProgramBlocks.js:189 +msgid "Cannot find a valid heap for" +msgstr "" -#: js/ExtrasBlocks.js:276 -msgid "The Hide blocks block hides the blocks." +#: js/blocks/ProgramBlocks.js:206 +msgid "The Load-heap block loads the heap from a file." msgstr "" -#: js/ExtrasBlocks.js:305 -#: js/ExtrasBlocks.js:335 -msgid "The Space block is used to add space between blocks." +#: js/blocks/ProgramBlocks.js:217 +#.TRANS: load the heap from a file +msgid "load heap" msgstr "" -#: js/ExtrasBlocks.js:373 -msgid "wait" -msgstr "රැඳීසිටින්න" +#: js/blocks/ProgramBlocks.js:270 +msgid "The file you selected does not contain a valid heap." +msgstr "" -#: js/ExtrasBlocks.js:376 -msgid "The Wait block pauses the program for a specified number of seconds." +#: js/blocks/ProgramBlocks.js:275 +msgid "The loadHeap block needs a loadFile block." msgstr "" -#: js/ExtrasBlocks.js:430 -#: plugins/facebook.rtp:30 -msgid "comment" +#: js/blocks/ProgramBlocks.js:291 +msgid "The Set-heap block loads the heap." msgstr "" -#: js/ExtrasBlocks.js:466 -msgid "print" -msgstr "මුද්‍රණය" +#: js/blocks/ProgramBlocks.js:340 +msgid "The block you selected does not contain a valid heap." +msgstr "" -#: js/ExtrasBlocks.js:473 -msgid "The Print block displays text at the top of the screen." +#: js/blocks/ProgramBlocks.js:343 +msgid "The Set heap block needs a heap." msgstr "" -#: js/ExtrasBlocks.js:579 -msgid "display grid" +#: js/blocks/ProgramBlocks.js:360 +msgid "The Load-dictionary block loads a dictionary from a file." msgstr "" -#: js/ExtrasBlocks.js:584 -msgid "The Display Grid Block changes the grid type" +#: js/blocks/ProgramBlocks.js:372 +#.TRANS: load a dictionary from a file +msgid "load dictionary" msgstr "" -#: js/ExtrasBlocks.js:686 -#: js/ExtrasBlocks.js:705 -#: js/ExtrasBlocks.js:728 -#: js/ExtrasBlocks.js:751 -#: js/ExtrasBlocks.js:769 -#: js/ExtrasBlocks.js:788 -#: js/ExtrasBlocks.js:807 -#: js/ExtrasBlocks.js:826 -msgid "unknown" +#: js/blocks/ProgramBlocks.js:390 +#: js/blocks/ProgramBlocks.js:658 +#: js/blocks/ToneBlocks.js:1025 +msgid "file" msgstr "" -#: js/SensorsBlocks.js:36 -msgid "The Input block prompts for keyboard input." +#: js/blocks/ProgramBlocks.js:444 +msgid "The file you selected does not contain a valid dictionary." msgstr "" -#: js/SensorsBlocks.js:46 -msgid "input" +#: js/blocks/ProgramBlocks.js:449 +msgid "The load dictionary block needs a load file block." msgstr "" -#: js/SensorsBlocks.js:64 -msgid "Input a value" +#: js/blocks/ProgramBlocks.js:466 +msgid "The Set-dictionary block loads a dictionary." msgstr "" -#: js/SensorsBlocks.js:126 -msgid "input value" +#: js/blocks/ProgramBlocks.js:477 +#.TRANS: load a dictionary from a JSON +msgid "set dictionary" msgstr "" -#: js/SensorsBlocks.js:131 -msgid "The Input-value block stores the input." +#: js/blocks/ProgramBlocks.js:546 +msgid "The block you selected does not contain a valid dictionary." msgstr "" -#: js/SensorsBlocks.js:238 -msgid "loudness" +#: js/blocks/ProgramBlocks.js:550 +msgid "The set dictionary block needs a dictionary." msgstr "" -#: js/SensorsBlocks.js:245 -msgid "The Loudness block returns the volume detected by the microphone." +#: js/blocks/ProgramBlocks.js:567 +msgid "The Save-heap block saves the heap to a file." msgstr "" -#: js/SensorsBlocks.js:300 -msgid "click" +#: js/blocks/ProgramBlocks.js:578 +#.TRANS: save the heap to a file +msgid "save heap" msgstr "" -#: js/SensorsBlocks.js:306 -msgid "The Click block triggers an event if a mouse has been clicked." +#: js/blocks/ProgramBlocks.js:629 +msgid "The Save-dictionary block saves a dictionary to a file." msgstr "" -#: js/SensorsBlocks.js:313 -msgid "The Click block triggers an event if a turtle has been clicked." +#: js/blocks/ProgramBlocks.js:640 +#.TRANS: save a dictionary to a file +msgid "save dictionary" msgstr "" -#: js/SensorsBlocks.js:342 -msgid "cursor over" +#: js/blocks/ProgramBlocks.js:720 +msgid "The Open palette block opens a palette." msgstr "" -#: js/SensorsBlocks.js:387 -msgid "cursor out" +#: js/blocks/ProgramBlocks.js:727 +msgid "open palette" msgstr "" -#: js/SensorsBlocks.js:433 -msgid "cursor button down" +#: js/blocks/ProgramBlocks.js:785 +msgid "The Delete block block removes a block." msgstr "" -#: js/SensorsBlocks.js:477 -msgid "cursor button up" +#: js/blocks/ProgramBlocks.js:797 +#.TRANS: Move this block to the trash. +msgid "delete block" msgstr "" -#: js/SensorsBlocks.js:638 -msgid "The Get red block returns the red component of the pixel under the mouse." +#: js/blocks/ProgramBlocks.js:861 +msgid "The Move block block moves a block." msgstr "" -#: js/SensorsBlocks.js:644 -msgid "The Get red block returns the red component of the pixel under the turtle." +#: js/blocks/ProgramBlocks.js:869 +#.TRANS: Move the position of a block on the screen. +msgid "move block" msgstr "" -#: js/SensorsBlocks.js:685 -#: plugins/rodi.rtp:216 -msgid "pixel color" +#: js/blocks/ProgramBlocks.js:881 +#: js/blocks/ProgramBlocks.js:1048 +msgid "block number" msgstr "" -#: js/SensorsBlocks.js:690 -msgid "The Get pixel block returns the color of the pixel under the mouse." +#: js/blocks/ProgramBlocks.js:935 +#.TRANS: Run program beginning at this block. +msgid "run block" msgstr "" -#: js/SensorsBlocks.js:696 -msgid "The Get pixel block returns the color of the pixel under the turtle." +#: js/blocks/ProgramBlocks.js:1025 +msgid "The Dock block block connections two blocks." msgstr "" -#: js/SensorsBlocks.js:758 -msgid "time" -msgstr "කාලය" +#: js/blocks/ProgramBlocks.js:1036 +#.TRANS: We can connect a block to another block. +msgid "connect blocks" +msgstr "" -#: js/SensorsBlocks.js:804 -msgid "cursor y" +#: js/blocks/ProgramBlocks.js:1048 +msgid "target block" msgstr "" -#: js/SensorsBlocks.js:809 -msgid "The Cursor Y block returns the vertical position of the mouse." +#: js/blocks/ProgramBlocks.js:1048 +msgid "connection number" msgstr "" -#: js/SensorsBlocks.js:845 -msgid "cursor x" +#: js/blocks/ProgramBlocks.js:1140 +msgid "The Make block block creates a new block." msgstr "" -#: js/SensorsBlocks.js:850 -msgid "The Cursor X block returns the horizontal position of the mouse." +#: js/blocks/ProgramBlocks.js:1152 +#.TRANS: Create a new block +msgid "make block" msgstr "" -#: js/SensorsBlocks.js:886 -msgid "mouse button" +#: js/blocks/ProgramBlocks.js:1285 +msgid "Cannot find block" msgstr "" -#: js/SensorsBlocks.js:888 -msgid "The Mouse-button block returns True if the mouse button is pressed." +#: js/blocks/ProgramBlocks.js:1304 +#: js/blocks/ProgramBlocks.js:1313 +msgid "Warning: block argument type mismatch" msgstr "" -#: js/SensorsBlocks.js:934 -msgid "to ASCII" +#: js/blocks/ProgramBlocks.js:1347 +msgid "The Open project block is used to open a project from a web page." msgstr "" -#: js/SensorsBlocks.js:938 -msgid "The To ASCII block converts numbers to letters." +#: js/blocks/ProgramBlocks.js:1357 +msgid "open project" msgstr "" -#: js/SensorsBlocks.js:1005 -msgid "The Keyboard block returns computer keyboard input." +#: js/blocks/ProgramBlocks.js:1410 +msgid "Please enter a valid URL." msgstr "" -#: js/IntervalsActions.js:216 -msgid "Adding missing pitch number 0." +#: js/blocks/ToneBlocks.js:34 +msgid "oscillator" msgstr "" -#: js/IntervalsActions.js:224 -msgid "Ignoring pitch numbers less than zero or greater than eleven." +#: js/blocks/ToneBlocks.js:42 +#: js/blocks/WidgetBlocks.js:179 +#: js/widgets/timbre.js:1558 +#: js/widgets/timbre.js:1808 +#.TRANS: there are different types (sine, triangle, square...) of oscillators. +#.TRANS: type of filter, e.g., lowpass, highpass, etc. +msgid "type" msgstr "" -#: js/IntervalsActions.js:230 -msgid "Ignoring duplicate pitch numbers." +#: js/blocks/ToneBlocks.js:44 +#: js/widgets/timbre.js:1562 +#.TRANS: Partials refers to the number of sine waves combined into the sound. +msgid "partials" msgstr "" -#: js/PitchActions.js:88 -msgid "The Scalar Step Block must be used inside of a Note Block." +#: js/blocks/ToneBlocks.js:76 +msgid "You are adding multiple oscillator blocks." msgstr "" -#: js/PitchActions.js:107 -msgid "The Scalar Step Block must be preceded by a Pitch Block." +#: js/blocks/ToneBlocks.js:144 +#: js/widgets/timbre.js:1225 +#.TRANS: a duo synthesizer combines a synth with a sequencer +msgid "duo synth" msgstr "" -#: js/DrumActions.js:231 -msgid "Noise Block: Did you mean to use a Note block?" +#: js/blocks/ToneBlocks.js:149 +msgid "The Duo synth block is a duo-frequency modulator used to define a timbre." msgstr "" -#: js/MeterActions.js:101 -#: js/MeterActions.js:139 -msgid "beats per minute must be greater than" +#: js/blocks/ToneBlocks.js:157 +#: js/widgets/timbre.js:1476 +msgid "vibrato rate" msgstr "" -#: js/MeterActions.js:111 -#: js/MeterActions.js:149 -msgid "maximum" +#: js/blocks/ToneBlocks.js:157 +msgid "vibrato intensity" msgstr "" -#: js/MeterActions.js:117 -#: js/MeterActions.js:155 -msgid "beats per minute is" +#: js/blocks/ToneBlocks.js:185 +#: js/widgets/timbre.js:1221 +#.TRANS: AM (amplitude modulation) synthesizer +msgid "AM synth" msgstr "" -#: js/ToneActions.js:134 -msgid "Vibrato intensity must be between 1 and 100." +#: js/blocks/ToneBlocks.js:189 +msgid "The AM synth block is an amplitude modulator used to define a timbre." msgstr "" -#: js/ToneActions.js:139 -msgid "Vibrato rate must be greater than 0." +#: js/blocks/ToneBlocks.js:224 +#: js/widgets/timbre.js:1223 +#.TRANS: FM (frequency modulation) synthesizer +msgid "FM synth" msgstr "" -#: js/ToneActions.js:192 -#: js/ToneActions.js:265 -#.TRANS: Depth is the intesity of the tremolo or chorus effect. -msgid "Depth is out of range." +#: js/blocks/ToneBlocks.js:228 +msgid "The FM synth block is a frequency modulator used to define a timbre." msgstr "" -#: js/ToneActions.js:301 -msgid "Distortion must be from 0 to 100." +#: js/blocks/ToneBlocks.js:262 +msgid "partial" msgstr "" -#: js/ToneActions.js:332 -#.TRANS: partials components in a harmonic series -msgid "Partial must be greater than or equal to 0." +#: js/blocks/ToneBlocks.js:265 +msgid "The Partial block is used to specify a weight for a specific partial harmonic." msgstr "" -#: js/ToneActions.js:378 -#: js/ToneActions.js:417 -#: js/ToneActions.js:456 -#: js/timbre.js:782 -msgid "Unable to use synth due to existing oscillator" +#: js/blocks/ToneBlocks.js:284 +#.TRANS: partials are weighted components in a harmonic series +msgid "Partial weight must be between 0 and 1." msgstr "" -#: js/ToneActions.js:388 -#: js/ToneActions.js:427 -msgid "The input cannot be negative." +#: js/blocks/ToneBlocks.js:297 +#.TRANS: partials are weighted components in a harmonic series +msgid "Partial block should be used inside of a Weighted-partials block." msgstr "" -#: js/DictActions.js:75 -#: js/DictActions.js:153 -#: js/DictActions.js:188 -msgid "font" +#: js/blocks/ToneBlocks.js:325 +#.TRANS: partials are weighted components in a harmonic series +msgid "weighted partials" msgstr "" -#: js/musicutils.js:363 -#: js/musicutils.js:471 -#: js/pitchdrummatrix.js:151 -#: js/musickeyboard.js:2563 -msgid "rest" +#: js/blocks/ToneBlocks.js:383 +msgid "The Harmonic block will add harmonics to the contained notes." msgstr "" -#: js/musicutils.js:565 -#.TRANS: ordinal number. Please keep exactly one space between each number. -msgid "1st 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th" +#: js/blocks/ToneBlocks.js:390 +#.TRANS: A harmonic is an overtone. +msgid "harmonic" msgstr "" -#: js/musicutils.js:629 -#: js/musicutils.js:812 -#: js/musicutils.js:911 -#.TRANS: augmented is a music term related to intervals -msgid "augmented" +#: js/blocks/ToneBlocks.js:431 +msgid "The Distortion block adds distortion to the pitch." msgstr "" -#: js/musicutils.js:631 -#: js/musicutils.js:813 -#: js/musicutils.js:910 -#.TRANS: diminished is a music term related to intervals and mode -msgid "diminished" +#: js/blocks/ToneBlocks.js:438 +#: js/widgets/timbre.js:2100 +#.TRANS: distortion is an alteration in the sound +msgid "distortion" msgstr "" -#: js/musicutils.js:639 -#.TRANS: twelve semi-tone scale for music -msgid "chromatic" +#: js/blocks/ToneBlocks.js:487 +msgid "The Tremolo block adds a wavering effect." msgstr "" -#: js/musicutils.js:640 -msgid "algerian" +#: js/blocks/ToneBlocks.js:495 +#: js/widgets/timbre.js:2092 +#.TRANS: a wavering effect in a musical tone +msgid "tremolo" msgstr "" -#: js/musicutils.js:641 -msgid "spanish" +#: js/blocks/ToneBlocks.js:500 +#: js/blocks/ToneBlocks.js:569 +#: js/blocks/ToneBlocks.js:630 +#: js/blocks/ToneBlocks.js:689 +#: js/widgets/timbre.js:2134 +#: js/widgets/timbre.js:2222 +#: js/widgets/timbre.js:2317 +#: js/widgets/timbre.js:2419 +#.TRANS: rate at which tremolo wavers +msgid "rate" msgstr "" -#: js/musicutils.js:643 -#.TRANS: modal scale in music -msgid "octatonic" +#: js/blocks/ToneBlocks.js:502 +#: js/blocks/ToneBlocks.js:630 +#: js/widgets/timbre.js:2137 +#: js/widgets/timbre.js:2328 +#.TRANS: amplitude of tremolo waver +msgid "depth" msgstr "" -#: js/musicutils.js:645 -#.TRANS: harmonic major scale in music -msgid "harmonic major" +#: js/blocks/ToneBlocks.js:559 +msgid "The Phaser block adds a sweeping sound." msgstr "" -#: js/musicutils.js:647 -#.TRANS: natural minor scales in music -msgid "natural minor" +#: js/blocks/ToneBlocks.js:566 +#: js/widgets/timbre.js:2098 +#.TRANS: alter the phase of the sound +msgid "phaser" msgstr "" -#: js/musicutils.js:649 -#.TRANS: harmonic minor scale in music -msgid "harmonic minor" +#: js/blocks/ToneBlocks.js:569 +#: js/turtleactions/IntervalsActions.js:114 +#: js/widgets/timbre.js:2422 +msgid "octaves" msgstr "" -#: js/musicutils.js:651 -#.TRANS: melodic minor scale in music -msgid "melodic minor" +#: js/blocks/ToneBlocks.js:569 +#: js/widgets/timbre.js:2425 +msgid "base frequency" msgstr "" -#: js/musicutils.js:655 -#.TRANS: modal scale for music -msgid "dorian" +#: js/blocks/ToneBlocks.js:619 +msgid "The Chorus block adds a chorus effect." msgstr "" -#: js/musicutils.js:657 -#.TRANS: modal scale for music -msgid "phrygian" +#: js/blocks/ToneBlocks.js:627 +#: js/widgets/timbre.js:2096 +#.TRANS: musical effect to simulate a choral sound +msgid "chorus" msgstr "" -#: js/musicutils.js:659 -#.TRANS: modal scale for music -msgid "lydian" +#: js/blocks/ToneBlocks.js:630 +msgid "delay" msgstr "" -#: js/musicutils.js:661 -#.TRANS: modal scale for music -msgid "mixolydian" +#: js/blocks/ToneBlocks.js:678 +msgid "The Vibrato block adds a rapid, slight variation in pitch." msgstr "" -#: js/musicutils.js:665 -#.TRANS: modal scale for music -msgid "locrian" +#: js/blocks/ToneBlocks.js:686 +#: js/widgets/timbre.js:2094 +#.TRANS: a rapid, slight variation in pitch +msgid "vibrato" msgstr "" -#: js/musicutils.js:667 -#.TRANS: minor jazz scale for music -msgid "jazz minor" +#: js/blocks/ToneBlocks.js:689 +#: js/widgets/timbre.js:2221 +msgid "intensity" msgstr "" -#: js/musicutils.js:669 -#.TRANS: bebop scale for music -msgid "bebop" +#: js/blocks/ToneBlocks.js:733 +#.TRANS: select synthesizer +msgid "set synth" msgstr "" -#: js/musicutils.js:670 -msgid "arabic" +#: js/blocks/ToneBlocks.js:804 +msgid "synth name" msgstr "" -#: js/musicutils.js:671 -msgid "byzantine" +#: js/blocks/ToneBlocks.js:842 +msgid "set default instrument" msgstr "" -#: js/musicutils.js:673 -#.TRANS: musical scale for music by Verdi -msgid "enigmatic" +#: js/blocks/ToneBlocks.js:895 +#: js/blocks/ToneBlocks.js:943 +#.TRANS: set the characteristics of a custom instrument +msgid "set instrument" msgstr "" -#: js/musicutils.js:674 -msgid "ethiopian" +#: js/blocks/ToneBlocks.js:898 +#: js/blocks/ToneBlocks.js:926 +#: js/blocks/ToneBlocks.js:932 +msgid "The Set instrument block selects a voice for the synthesizer," msgstr "" -#: js/musicutils.js:676 -#.TRANS: Ethiopic scale for music -msgid "geez" +#: js/blocks/ToneBlocks.js:900 +#: js/blocks/ToneBlocks.js:934 +msgid "eg guitar piano violin or cello." msgstr "" -#: js/musicutils.js:677 -msgid "hindu" +#: js/blocks/ToneBlocks.js:1015 +msgid "Import a sound file to use as an instrument and set its pitch center." msgstr "" -#: js/musicutils.js:678 -msgid "hungarian" +#: js/blocks/ToneBlocks.js:1110 +msgid "Upload a sound file to connect with the sample block." msgstr "" -#: js/musicutils.js:680 -#.TRANS: minor Romanian scale for music -msgid "romanian minor" +#: js/blocks/VolumeBlocks.js:35 +msgid "synth volume" msgstr "" -#: js/musicutils.js:681 -msgid "spanish gypsy" +#: js/blocks/VolumeBlocks.js:39 +msgid "The Synth volume block returns the current volume of the current synthesizer." msgstr "" -#: js/musicutils.js:683 -#.TRANS: musical scale for Mid-Eastern music -msgid "maqam" +#: js/blocks/VolumeBlocks.js:105 +msgid "master volume" msgstr "" -#: js/musicutils.js:685 -#.TRANS: minor blues scale for music -msgid "minor blues" +#: js/blocks/VolumeBlocks.js:109 +msgid "The Master volume block returns the master volume." msgstr "" -#: js/musicutils.js:687 -#.TRANS: major blues scale for music -msgid "major blues" +#: js/blocks/VolumeBlocks.js:355 +#: js/blocks/VolumeBlocks.js:524 +msgid "set synth volume" msgstr "" -#: js/musicutils.js:688 -msgid "whole tone" +#: js/blocks/VolumeBlocks.js:362 +#: js/blocks/VolumeBlocks.js:545 +msgid "synth" msgstr "" -#: js/musicutils.js:690 -#.TRANS: pentatonic is a general term that means "five note scale". This scale is typically known as "minor pentatonic" -msgid "minor pentatonic" +#: js/blocks/VolumeBlocks.js:403 +#: js/blocks/VolumeBlocks.js:577 +#: js/blocks/VolumeBlocks.js:740 +#: js/turtleactions/VolumeActions.js:173 +msgid "Setting volume to 0." msgstr "" -#: js/musicutils.js:692 -#.TRANS: pentatonic is a general term that means "five note scale". This scale is typically known as "major pentatonic" -msgid "major pentatonic" +#: js/blocks/VolumeBlocks.js:440 +msgid "Synth not found" msgstr "" -#: js/musicutils.js:693 -msgid "chinese" +#: js/blocks/VolumeBlocks.js:494 +msgid "set drum volume" msgstr "" -#: js/musicutils.js:694 -msgid "egyptian" +#: js/blocks/VolumeBlocks.js:530 +msgid "The Set synth volume block will change the volume of a particular synth," msgstr "" -#: js/musicutils.js:696 -#.TRANS: https://en.wikipedia.org/wiki/Hirajoshi_scale NOTE: There are three different versions of this scale -msgid "hirajoshi" +#: js/blocks/VolumeBlocks.js:532 +msgid "eg guitar violin snare drum etc." msgstr "" -#: js/musicutils.js:697 -msgid "Japan" +#: js/blocks/VolumeBlocks.js:534 +msgid "The default volume is 50." msgstr "" -#: js/musicutils.js:699 -#.TRANS: https://en.wikipedia.org/wiki/In_scale and https://en.wikipedia.org/wiki/Sakura_Sakura -msgid "in" +#: js/blocks/VolumeBlocks.js:536 +msgid "The range is 0 for silence to 100 for full volume." msgstr "" -#: js/musicutils.js:701 -#.TRANS: https://en.wikipedia.org/wiki/Miny%C5%8D_scale -msgid "minyo" +#: js/blocks/VolumeBlocks.js:597 +msgid "set panning" msgstr "" -#: js/musicutils.js:703 -#.TRANS: Italian mathematician -msgid "fibonacci" +#: js/blocks/VolumeBlocks.js:603 +msgid "The Set Panning block sets the panning for all synthesizers." msgstr "" -#: js/musicutils.js:708 -#: js/musicutils.js:1106 -#.TRANS: lowpass filter -msgid "lowpass" +#: js/blocks/VolumeBlocks.js:625 +msgid "Warning: Sound is coming out from only the left or right side." msgstr "" -#: js/musicutils.js:710 -#: js/musicutils.js:1107 -#.TRANS: bandpass filter -msgid "bandpass" +#: js/blocks/VolumeBlocks.js:647 +#: js/blocks/VolumeBlocks.js:695 +msgid "set master volume" msgstr "" -#: js/musicutils.js:712 -#: js/musicutils.js:1108 -#.TRANS: high-shelf filter -msgid "highshelf" +#: js/blocks/VolumeBlocks.js:653 +msgid "The Set master volume block sets the volume for all synthesizers." msgstr "" -#: js/musicutils.js:714 -#: js/musicutils.js:1109 -#.TRANS: low-shelf filter -msgid "lowshelf" +#: js/blocks/VolumeBlocks.js:784 +msgid "The Set relative volume block changes the volume of the contained notes." msgstr "" -#: js/musicutils.js:716 -#: js/musicutils.js:1110 -#.TRANS: notch-shelf filter -msgid "notch" +#: js/blocks/VolumeBlocks.js:791 +msgid "set relative volume" msgstr "" -#: js/musicutils.js:718 -#: js/musicutils.js:1111 -#.TRANS: all-pass filter -msgid "allpass" +#: js/blocks/VolumeBlocks.js:857 +msgid "decrescendo" msgstr "" -#: js/musicutils.js:720 -#: js/musicutils.js:1112 -#.TRANS: peaking filter -msgid "peaking" +#: js/blocks/VolumeBlocks.js:921 +msgid "crescendo" msgstr "" -#: js/musicutils.js:731 -#: js/synthutils.js:58 -#.TRANS: musical instrument -msgid "violin" +#: js/blocks/WidgetBlocks.js:81 +#.TRANS: sound envelope (ADSR) +msgid "envelope" msgstr "" -#: js/musicutils.js:732 -#: js/synthutils.js:60 -#.TRANS: viola musical instrument -msgid "viola" +#: js/blocks/WidgetBlocks.js:89 +#.TRANS: Attack time is the time taken for initial run-up of level from nil to peak, beginning when the key is first pressed. +msgid "attack" msgstr "" -#: js/musicutils.js:733 -#: js/synthutils.js:98 -#.TRANS: xylophone musical instrument -msgid "xylophone" +#: js/blocks/WidgetBlocks.js:91 +#.TRANS: Decay time is the time taken for the subsequent run down from the attack level to the designated sustain level. +msgid "decay" msgstr "" -#: js/musicutils.js:734 -#: js/synthutils.js:120 -#.TRANS: vibraphone musical instrument -msgid "vibraphone" +#: js/blocks/WidgetBlocks.js:93 +#.TRANS: Sustain level is the level during the main sequence of the sound's duration, until the key is released. +msgid "sustain" msgstr "" -#: js/musicutils.js:735 -#: js/synthutils.js:62 -#.TRANS: musical instrument -msgid "cello" +#: js/blocks/WidgetBlocks.js:95 +#.TRANS: Release time is the time taken for the level to decay from the sustain level to zero after the key is released. +msgid "release" msgstr "" -#: js/musicutils.js:737 -#: js/synthutils.js:66 -#.TRANS: viola musical instrument -msgid "double bass" +#: js/blocks/WidgetBlocks.js:113 +msgid "Attack value should be from 0 to 100." msgstr "" -#: js/musicutils.js:738 -#: js/synthutils.js:68 -#: js/rhythmruler.js:2119 -#.TRANS: musical instrument -msgid "guitar" +#: js/blocks/WidgetBlocks.js:116 +msgid "Decay value should be from 0 to 100." msgstr "" -#: js/musicutils.js:739 -#: js/synthutils.js:70 -#.TRANS: musical instrument -msgid "acoustic guitar" +#: js/blocks/WidgetBlocks.js:119 +msgid "Sustain value should be from 0 to 100." msgstr "" -#: js/musicutils.js:740 -#: js/synthutils.js:72 -#.TRANS: musical instrument -msgid "flute" +#: js/blocks/WidgetBlocks.js:122 +msgid "Release value should be from 0-100." msgstr "" -#: js/musicutils.js:741 -#: js/synthutils.js:74 -#.TRANS: musical instrument -msgid "clarinet" +#: js/blocks/WidgetBlocks.js:140 +msgid "You are adding multiple envelope blocks." msgstr "" -#: js/musicutils.js:742 -#: js/synthutils.js:76 -#.TRANS: musical instrument -msgid "saxophone" +#: js/blocks/WidgetBlocks.js:171 +#.TRANS: a filter removes some unwanted components from a signal +msgid "filter" msgstr "" -#: js/musicutils.js:743 -#: js/synthutils.js:78 -#.TRANS: musical instrument -msgid "tuba" +#: js/blocks/WidgetBlocks.js:181 +#: js/widgets/timbre.js:1818 +#.TRANS: rolloff is the steepness of a change in frequency. +msgid "rolloff" msgstr "" -#: js/musicutils.js:744 -#: js/synthutils.js:80 -#.TRANS: musical instrument -msgid "trumpet" +#: js/blocks/WidgetBlocks.js:213 +#.TRANS: rolloff is the steepness of a change in frequency. +msgid "Rolloff value should be either -12, -24, -48, or -96 decibels/octave." msgstr "" -#: js/musicutils.js:745 -#: js/synthutils.js:82 -#.TRANS: musical instrument -msgid "oboe" +#: js/blocks/WidgetBlocks.js:252 +msgid "The Temperament tool is used to define custom tuning." msgstr "" -#: js/musicutils.js:746 -#: js/synthutils.js:84 -#.TRANS: musical instrument -msgid "trombone" +#: js/blocks/WidgetBlocks.js:332 +#: js/blocks/WidgetBlocks.js:1573 +#: js/widgets/sampler.js:547 +msgid "Upload a sample and adjust its pitch center." msgstr "" -#: js/musicutils.js:747 -#: js/synthutils.js:100 -#.TRANS: polytone synthesizer -msgid "electronic synth" +#: js/blocks/WidgetBlocks.js:339 +#.TRANS: the speed at music is should be played. +msgid "sampler" msgstr "" -#: js/musicutils.js:748 -#: js/synthutils.js:102 -#.TRANS: simple monotone synthesizer -msgid "simple 1" +#: js/blocks/WidgetBlocks.js:517 +msgid "The Meter block opens a tool to select strong beats for the meter." msgstr "" -#: js/musicutils.js:749 -msgid "simple 2" +#: js/blocks/WidgetBlocks.js:573 +msgid "The oscilloscope block opens a tool to visualize waveforms." msgstr "" -#: js/musicutils.js:750 -msgid "simple 3" +#: js/blocks/WidgetBlocks.js:578 +msgid "oscilloscope" msgstr "" -#: js/musicutils.js:751 -msgid "simple 4" +#: js/blocks/WidgetBlocks.js:645 +msgid "The Custom mode block opens a tool to explore musical mode (the spacing of the notes in a scale)." msgstr "" -#: js/musicutils.js:753 -#: js/synthutils.js:49 -#.TRANS: brown noise synthesizer -msgid "brown noise" +#: js/blocks/WidgetBlocks.js:651 +#.TRANS: musical mode is the pattern of half-steps in an octave, e.g., Major or Minor modes +msgid "custom mode" msgstr "" -#: js/musicutils.js:754 -#: js/synthutils.js:51 -#.TRANS: pink noise synthesizer -msgid "pink noise" +#: js/blocks/WidgetBlocks.js:700 +msgid "The Tempo block opens a metronome to visualize the beat." msgstr "" -#: js/musicutils.js:756 -#: js/synthutils.js:127 -#: js/rhythmruler.js:1670 -#: js/rhythmruler.js:1928 -#.TRANS: musical instrument -msgid "snare drum" +#: js/blocks/WidgetBlocks.js:762 +msgid "The Arpeggio Widget is used to compose chord sequences." msgstr "" -#: js/musicutils.js:757 -#: js/synthutils.js:129 -#.TRANS: musical instrument -msgid "kick drum" +#: js/blocks/WidgetBlocks.js:837 +msgid "The Pitch drum matrix is used to map pitches to drum sounds." msgstr "" -#: js/musicutils.js:758 -#: js/synthutils.js:131 -#.TRANS: musical instrument -msgid "tom tom" +#: js/blocks/WidgetBlocks.js:842 +#.TRANS: makes a mapping between pitches and drum sounds +msgid "pitch-drum mapper" msgstr "" -#: js/musicutils.js:759 -#: js/synthutils.js:133 -#.TRANS: musical instrument -msgid "floor tom" +#: js/blocks/WidgetBlocks.js:891 +msgid "You must have at least one pitch block and one drum block in the matrix." msgstr "" -#: js/musicutils.js:760 -#: js/synthutils.js:135 -#.TRANS: musical instrument -msgid "bass drum" +#: js/blocks/WidgetBlocks.js:920 +msgid "The Pitch slider tool to is used to generate pitches at selected frequencies." msgstr "" -#: js/musicutils.js:761 -#: js/synthutils.js:137 -#.TRANS: a drum made from an inverted cup -msgid "cup drum" +#: js/blocks/WidgetBlocks.js:925 +#.TRANS: widget to generate pitches using a slider +msgid "pitch slider" msgstr "" -#: js/musicutils.js:762 -#: js/synthutils.js:139 -#.TRANS: musical instrument -msgid "darbuka drum" +#: js/blocks/WidgetBlocks.js:977 +msgid "chromatic keyboard" msgstr "" -#: js/musicutils.js:763 -#: js/synthutils.js:143 -#.TRANS: musical instrument -msgid "hi hat" +#: js/blocks/WidgetBlocks.js:1011 +#: js/blocks/WidgetBlocks.js:1077 +#.TRANS: widget to generate pitches using a slider +msgid "music keyboard" msgstr "" -#: js/musicutils.js:764 -#: js/synthutils.js:145 -#.TRANS: a small metal bell -msgid "ride bell" +#: js/blocks/WidgetBlocks.js:1062 +#: js/blocks/WidgetBlocks.js:1069 +msgid "The Music keyboard block opens a piano keyboard that can be used to create notes." msgstr "" -#: js/musicutils.js:765 -#: js/synthutils.js:147 -#.TRANS: musical instrument -msgid "cow bell" +#: js/blocks/WidgetBlocks.js:1128 +msgid "The Pitch staircase tool to is used to generate pitches from a given ratio." msgstr "" -#: js/musicutils.js:766 -msgid "japanese drum" +#: js/blocks/WidgetBlocks.js:1135 +#.TRANS: generate a progressive sequence of pitches +msgid "pitch staircase" msgstr "" -#: js/musicutils.js:767 -#: js/synthutils.js:153 -#.TRANS: musical instrument -msgid "japanese bell" +#: js/blocks/WidgetBlocks.js:1222 +msgid "The Rhythm Maker block opens a tool to create drum machines." msgstr "" -#: js/musicutils.js:768 -#: js/synthutils.js:149 -#.TRANS: musical instrument -msgid "triangle bell" +#: js/blocks/WidgetBlocks.js:1291 +msgid "G major scale" msgstr "" -#: js/musicutils.js:769 -#: js/synthutils.js:151 -#.TRANS: musical instrument -msgid "finger cymbals" +#: js/blocks/WidgetBlocks.js:1326 +msgid "C major scale" msgstr "" -#: js/musicutils.js:770 -#: js/synthutils.js:155 -#.TRANS: a musically tuned set of bells -msgid "chime" +#: js/blocks/WidgetBlocks.js:1366 +msgid "The Phrase Maker block opens a tool to create musical phrases." msgstr "" -#: js/musicutils.js:771 -#: js/synthutils.js:157 -#.TRANS: a musical instrument -msgid "gong" +#: js/blocks/WidgetBlocks.js:1373 +#.TRANS: assigns pitch to a sequence of beats to generate a melody +msgid "phrase maker" msgstr "" -#: js/musicutils.js:772 -#: js/synthutils.js:159 -#.TRANS: sound effect -msgid "clang" +#: js/blocks/WidgetBlocks.js:1444 +msgid "You must have at least one pitch block and one rhythm block in the matrix." msgstr "" -#: js/musicutils.js:773 -#: js/synthutils.js:161 -#.TRANS: sound effect -msgid "crash" +#: js/blocks/WidgetBlocks.js:1503 +msgid "The Status block opens a tool for inspecting the status of Music Blocks as it is running." msgstr "" -#: js/musicutils.js:774 -#: js/synthutils.js:163 -#.TRANS: sound effect -msgid "bottle" +#: js/blocks/WidgetBlocks.js:1580 +#.TRANS: AI-generated music +msgid "aimusic" msgstr "" -#: js/musicutils.js:775 -#: js/synthutils.js:165 -#.TRANS: sound effect -msgid "clap" +#: js/turtleactions/MeterActions.js:101 +#: js/turtleactions/MeterActions.js:139 +msgid "beats per minute must be greater than" msgstr "" -#: js/musicutils.js:776 -#: js/synthutils.js:167 -#.TRANS: sound effect -msgid "slap" +#: js/turtleactions/MeterActions.js:111 +#: js/turtleactions/MeterActions.js:149 +msgid "maximum" msgstr "" -#: js/musicutils.js:777 -#: js/synthutils.js:169 -#.TRANS: sound effect -msgid "splash" +#: js/turtleactions/MeterActions.js:117 +#: js/turtleactions/MeterActions.js:155 +msgid "beats per minute is" msgstr "" -#: js/musicutils.js:778 -#: js/synthutils.js:171 -#.TRANS: sound effect -msgid "bubbles" +#: js/turtleactions/DictActions.js:75 +#: js/turtleactions/DictActions.js:142 +#: js/turtleactions/DictActions.js:172 +msgid "font" msgstr "" -#: js/musicutils.js:779 -#: js/synthutils.js:173 -#.TRANS: sound effect -msgid "raindrop" +#: js/turtleactions/DictActions.js:255 +msgid "Dictionary with this name does not exist" msgstr "" -#: js/musicutils.js:780 -#: js/synthutils.js:175 -#.TRANS: animal sound effect -msgid "cat" +#: js/turtleactions/DictActions.js:259 +msgid "Key with this name does not exist in " msgstr "" -#: js/musicutils.js:781 -#: js/synthutils.js:177 -#.TRANS: animal sound effect -msgid "cricket" +#: js/turtleactions/DrumActions.js:227 +msgid "Noise Block: Did you mean to use a Note block?" msgstr "" -#: js/musicutils.js:782 -#: js/synthutils.js:179 -#.TRANS: animal sound effect -msgid "dog" +#: js/turtleactions/IntervalsActions.js:113 +msgid "one" msgstr "" -#: js/musicutils.js:784 -#: js/synthutils.js:86 -#.TRANS: musical instrument -msgid "banjo" +#: js/turtleactions/IntervalsActions.js:113 +msgid "two" msgstr "" -#: js/musicutils.js:785 -#: js/synthutils.js:88 -#.TRANS: musical instrument -msgid "koto" +#: js/turtleactions/IntervalsActions.js:113 +msgid "three" msgstr "" -#: js/musicutils.js:786 -#: js/synthutils.js:90 -#.TRANS: musical instrument -msgid "dulcimer" +#: js/turtleactions/IntervalsActions.js:113 +msgid "four" msgstr "" -#: js/musicutils.js:787 -#: js/synthutils.js:92 -#.TRANS: musical instrument -msgid "electric guitar" +#: js/turtleactions/IntervalsActions.js:113 +msgid "five" msgstr "" -#: js/musicutils.js:788 -#: js/synthutils.js:94 -#.TRANS: musical instrument -msgid "bassoon" +#: js/turtleactions/IntervalsActions.js:113 +msgid "six" msgstr "" -#: js/musicutils.js:789 -#: js/synthutils.js:96 -#.TRANS: musical instrument -msgid "celeste" +#: js/turtleactions/IntervalsActions.js:113 +msgid "seven" msgstr "" -#: js/musicutils.js:791 -#: js/musicutils.js:1123 -#: js/musicutils.js:1131 -#: js/temperament.js:650 -#.TRANS: musical temperament -msgid "equal" +#: js/turtleactions/IntervalsActions.js:113 +msgid "eight" msgstr "" -#: js/musicutils.js:793 -#: js/musicutils.js:1125 -#: js/musicutils.js:1133 -#.TRANS: musical temperament -msgid "Pythagorean" +#: js/turtleactions/IntervalsActions.js:113 +msgid "nine" msgstr "" -#: js/musicutils.js:795 -#: js/musicutils.js:1124 -#: js/musicutils.js:1132 -#.TRANS: musical temperament -msgid "just intonation" +#: js/turtleactions/IntervalsActions.js:119 +msgid "a" msgstr "" -#: js/musicutils.js:797 -#: js/musicutils.js:1126 -#: js/musicutils.js:1127 -#: js/musicutils.js:1134 -#: js/musicutils.js:1135 -#.TRANS: musical temperament -msgid "meantone" +#: js/turtleactions/IntervalsActions.js:120 +msgid "below" msgstr "" -#: js/musicutils.js:814 -msgid "major 7th" +#: js/turtleactions/IntervalsActions.js:124 +msgid "above" msgstr "" -#: js/musicutils.js:815 -msgid "minor 7th" +#: js/turtleactions/IntervalsActions.js:131 +msgid "plus" msgstr "" -#: js/musicutils.js:816 -msgid "dominant 7th" +#: js/turtleactions/IntervalsActions.js:139 +msgid " below" msgstr "" -#: js/musicutils.js:817 -msgid "minor-major 7th" +#: js/turtleactions/IntervalsActions.js:257 +msgid "Adding missing pitch number 0." msgstr "" -#: js/musicutils.js:818 -msgid "fully-diminished 7th" +#: js/turtleactions/IntervalsActions.js:265 +msgid "Ignoring pitch numbers less than zero or greater than eleven." msgstr "" -#: js/musicutils.js:819 -msgid "half-diminished 7th" +#: js/turtleactions/IntervalsActions.js:271 +msgid "Ignoring duplicate pitch numbers." msgstr "" -#: js/musicutils.js:4379 -#: js/musicutils.js:4416 -msgid "current" +#: js/turtleactions/ToneActions.js:134 +msgid "Vibrato intensity must be between 1 and 100." msgstr "" -#: js/musicutils.js:4382 -#: js/musicutils.js:4407 -msgid "next" +#: js/turtleactions/ToneActions.js:139 +msgid "Vibrato rate must be greater than 0." msgstr "" -#: js/musicutils.js:4385 -#: js/musicutils.js:4412 -msgid "previous" +#: js/turtleactions/ToneActions.js:192 +#: js/turtleactions/ToneActions.js:265 +#.TRANS: Depth is the intesity of the tremolo or chorus effect. +msgid "Depth is out of range." msgstr "" -#: js/synthutils.js:104 -#.TRANS: simple monotone synthesizer -msgid "simple-2" +#: js/turtleactions/ToneActions.js:301 +msgid "Distortion must be from 0 to 100." msgstr "" -#: js/synthutils.js:106 -#.TRANS: simple monotone synthesizer -msgid "simple-3" +#: js/turtleactions/ToneActions.js:332 +#.TRANS: partials components in a harmonic series +msgid "Partial must be greater than or equal to 0." msgstr "" -#: js/synthutils.js:108 -#.TRANS: simple monotone synthesizer -msgid "simple-4" +#: js/turtleactions/ToneActions.js:378 +#: js/turtleactions/ToneActions.js:417 +#: js/turtleactions/ToneActions.js:456 +#: js/widgets/timbre.js:782 +msgid "Unable to use synth due to existing oscillator" msgstr "" -#: js/synthutils.js:141 -#.TRANS: musical instrument -msgid "taiko" +#: js/turtleactions/ToneActions.js:388 +#: js/turtleactions/ToneActions.js:427 +msgid "The input cannot be negative." msgstr "" -#: js/modewidget.js:86 -#: js/modewidget.js:88 -#: js/modewidget.js:642 -#: js/modewidget.js:644 -#: js/modewidget.js:712 -#: js/modewidget.js:714 -#: js/temperament.js:2078 -#: js/rhythmruler.js:189 -#: js/rhythmruler.js:1410 -#: js/rhythmruler.js:1412 -#: js/rhythmruler.js:1435 -#: js/rhythmruler.js:1437 -#: js/meterwidget.js:89 -#: js/meterwidget.js:91 +#: js/widgets/modewidget.js:86 +#: js/widgets/modewidget.js:88 +#: js/widgets/modewidget.js:642 +#: js/widgets/modewidget.js:644 +#: js/widgets/modewidget.js:712 +#: js/widgets/modewidget.js:714 +#: js/widgets/meterwidget.js:194 +#: js/widgets/meterwidget.js:196 +#: js/widgets/temperament.js:2236 +#: js/widgets/rhythmruler.js:457 +#: js/widgets/rhythmruler.js:1790 +#: js/widgets/rhythmruler.js:1792 +#: js/widgets/rhythmruler.js:1816 +#: js/widgets/rhythmruler.js:1818 msgid "Play all" msgstr "" -#: js/modewidget.js:115 -#: js/pitchstaircase.js:641 -#: js/phrasemaker.js:339 -#: js/pitchdrummatrix.js:94 -#: js/pitchslider.js:125 -#: js/temperament.js:2083 -#: js/musickeyboard.js:530 -#: js/timbre.js:756 -#: js/meterwidget.js:124 -#: js/arpeggio.js:103 +#: js/widgets/modewidget.js:115 +#: js/widgets/meterwidget.js:229 +#: js/widgets/pitchdrummatrix.js:166 +#: js/widgets/pitchslider.js:125 +#: js/widgets/pitchstaircase.js:641 +#: js/widgets/temperament.js:2244 +#: js/widgets/timbre.js:756 +#: js/widgets/arpeggio.js:103 +#: js/widgets/musickeyboard.js:688 +#: js/widgets/phrasemaker.js:550 msgid "Save" msgstr "" -#: js/modewidget.js:121 -#: js/pitchstaircase.js:686 -#: js/phrasemaker.js:356 -#: js/pitchdrummatrix.js:109 -#: js/musickeyboard.js:534 -#: js/rhythmruler.js:269 -#: js/arpeggio.js:118 +#: js/widgets/modewidget.js:121 +#: js/widgets/pitchdrummatrix.js:181 +#: js/widgets/pitchstaircase.js:686 +#: js/widgets/arpeggio.js:118 +#: js/widgets/musickeyboard.js:696 +#: js/widgets/phrasemaker.js:567 +#: js/widgets/rhythmruler.js:601 #.TRANS: clear all subdivisions from the ruler. msgid "Clear" msgstr "" -#: js/modewidget.js:127 +#: js/widgets/modewidget.js:127 msgid "Rotate counter clockwise" msgstr "" -#: js/modewidget.js:133 +#: js/widgets/modewidget.js:133 msgid "Rotate clockwise" msgstr "" -#: js/modewidget.js:139 +#: js/widgets/modewidget.js:139 msgid "Invert" msgstr "" -#: js/modewidget.js:145 -#: js/pitchstaircase.js:678 -#: js/rhythmruler.js:258 -#: js/timbre.js:963 +#: js/widgets/modewidget.js:145 +#: js/widgets/pitchstaircase.js:678 +#: js/widgets/timbre.js:963 +#: js/widgets/rhythmruler.js:578 msgid "Undo" msgstr "" -#: js/modewidget.js:163 +#: js/widgets/modewidget.js:163 #.TRANS: A circle of notes represents the musical mode. msgid "Click in the circle to select notes for the mode." msgstr "" -#: js/modewidget.js:1017 -#: js/pitchstaircase.js:580 -#: js/phrasemaker.js:4855 -#: js/temperament.js:1754 -#: js/rhythmruler.js:1865 -#: js/rhythmruler.js:2081 -#: js/tempo.js:414 +#: js/widgets/modewidget.js:1017 +#: js/widgets/pitchstaircase.js:580 +#: js/widgets/temperament.js:1929 +#: js/widgets/tempo.js:414 +#: js/widgets/phrasemaker.js:5356 +#: js/widgets/rhythmruler.js:2254 +#: js/widgets/rhythmruler.js:2472 msgid "New action block generated!" msgstr "" -#: js/oscilloscope.js:79 -msgid "Zoom In" -msgstr "" - -#: js/oscilloscope.js:88 -msgid "Zoom Out" -msgstr "" - -#: js/pitchstaircase.js:624 -msgid "Play chord" -msgstr "" - -#: js/pitchstaircase.js:632 -msgid "Play scale" +#: js/widgets/meterwidget.js:275 +msgid "Reset" msgstr "" -#: js/pitchstaircase.js:696 -msgid "Click on a note to create a new step." +#: js/widgets/meterwidget.js:301 +msgid "Click in the circle to select strong beats for the meter." msgstr "" -#: js/phrasemaker.js:363 -msgid "Export" +#: js/widgets/oscilloscope.js:79 +msgid "Zoom In" msgstr "" -#: js/phrasemaker.js:370 -msgid "Sort" +#: js/widgets/oscilloscope.js:88 +msgid "Zoom Out" msgstr "" -#: js/phrasemaker.js:373 -#: js/musickeyboard.js:559 -msgid "Add note" +#: js/widgets/pitchdrummatrix.js:356 +#: js/widgets/pitchdrummatrix.js:752 +msgid "Click in the grid to map notes to drums." msgstr "" -#: js/phrasemaker.js:764 -msgid "Click on the table to add notes." +#: js/widgets/pitchslider.js:103 +msgid "Move up" msgstr "" -#: js/phrasemaker.js:2414 -#: js/phrasemaker.js:2543 -msgid "tuplet value" +#: js/widgets/pitchslider.js:114 +msgid "Move down" msgstr "" -#: js/pitchdrummatrix.js:270 -#: js/pitchdrummatrix.js:639 -msgid "Click in the grid to map notes to drums." +#: js/widgets/pitchslider.js:136 +msgid "Click on the slider to create a note block." msgstr "" -#: js/pitchslider.js:103 -msgid "Move up" +#: js/widgets/pitchstaircase.js:624 +msgid "Play chord" msgstr "" -#: js/pitchslider.js:114 -msgid "Move down" +#: js/widgets/pitchstaircase.js:632 +msgid "Play scale" msgstr "" -#: js/pitchslider.js:136 -msgid "Click on the slider to create a note block." +#: js/widgets/pitchstaircase.js:696 +msgid "Click on a note to create a new step." msgstr "" -#: js/temperament.js:215 +#: js/widgets/temperament.js:321 msgid "back to 2:1 octave space" msgstr "" -#: js/temperament.js:323 +#: js/widgets/temperament.js:447 msgid "edit" msgstr "" -#: js/temperament.js:330 -#: js/temperament.js:332 -#: js/temperament.js:1336 -#: js/temperament.js:1338 +#: js/widgets/temperament.js:454 +#: js/widgets/temperament.js:456 +#: js/widgets/temperament.js:1493 +#: js/widgets/temperament.js:1495 msgid "close" msgstr "" -#: js/temperament.js:423 -#: js/temperament.js:736 -#: js/temperament.js:743 -#: js/temperament.js:845 -#: js/temperament.js:935 -#: js/temperament.js:942 -#: js/temperament.js:1015 -#: js/temperament.js:1284 -#: js/temperament.js:1354 -#: js/temperament.js:1430 +#: js/widgets/temperament.js:552 +#: js/widgets/temperament.js:877 +#: js/widgets/temperament.js:884 +#: js/widgets/temperament.js:986 +#: js/widgets/temperament.js:1080 +#: js/widgets/temperament.js:1087 +#: js/widgets/temperament.js:1160 +#: js/widgets/temperament.js:1433 +#: js/widgets/temperament.js:1511 +#: js/widgets/temperament.js:1596 msgid "done" msgstr "" -#: js/temperament.js:477 -#: js/temperament.js:482 -#: js/temperament.js:918 +#: js/widgets/temperament.js:610 +#: js/widgets/temperament.js:615 +#: js/widgets/temperament.js:1063 msgid "ratio" msgstr "" -#: js/temperament.js:483 +#: js/widgets/temperament.js:616 msgid "interval" msgstr "" -#: js/temperament.js:611 +#: js/widgets/temperament.js:744 msgid "non scalar" msgstr "" -#: js/temperament.js:650 +#: js/widgets/temperament.js:787 msgid "ratios" msgstr "" -#: js/temperament.js:650 +#: js/widgets/temperament.js:787 msgid "arbitrary" msgstr "" -#: js/temperament.js:719 +#: js/widgets/temperament.js:860 msgid "number of divisions" msgstr "" -#: js/temperament.js:741 -#: js/temperament.js:858 -#: js/temperament.js:940 -#: js/temperament.js:1033 +#: js/widgets/temperament.js:882 +#: js/widgets/temperament.js:999 +#: js/widgets/temperament.js:1085 +#: js/widgets/temperament.js:1178 msgid "preview" msgstr "" -#: js/temperament.js:788 +#: js/widgets/temperament.js:929 msgid "The Number of divisions is too large." msgstr "" -#: js/temperament.js:921 +#: js/widgets/temperament.js:1066 msgid "recursion" msgstr "" -#: js/temperament.js:1450 +#: js/widgets/temperament.js:1616 msgid "The octave ratio has changed. This changes temperament significantly." msgstr "" -#: js/temperament.js:2087 +#: js/widgets/temperament.js:2248 msgid "Table" msgstr "" -#: js/temperament.js:2185 +#: js/widgets/temperament.js:2356 msgid "Add pitches" msgstr "" -#: js/musickeyboard.js:570 -msgid "Metronome" +#: js/widgets/tempo.js:78 +#: js/widgets/tempo.js:97 +#: js/widgets/tempo.js:99 +#: js/widgets/aiwidget.js:134 +#: js/widgets/aiwidget.js:136 +#: js/widgets/rhythmruler.js:681 +#: js/widgets/rhythmruler.js:683 +#: js/widgets/rhythmruler.js:1864 +#: js/widgets/rhythmruler.js:1866 +#: js/widgets/sampler.js:180 +#: js/widgets/sampler.js:182 +msgid "Pause" msgstr "" -#: js/musickeyboard.js:1296 -#: plugins/rodi.rtp:193 -msgid "duration" +#: js/widgets/tempo.js:113 +msgid "Save tempo" msgstr "" -#: js/musickeyboard.js:2840 -msgid "New action blocks generated!" +#: js/widgets/tempo.js:144 +msgid "speed up" msgstr "" -#: js/musickeyboard.js:2841 -msgid "New action block generated" +#: js/widgets/tempo.js:150 +msgid "slow down" msgstr "" -#: js/musickeyboard.js:2984 -#: js/musickeyboard.js:2992 -msgid "MIDI device present." +#: js/widgets/tempo.js:194 +msgid "Adjust the tempo with the buttons." msgstr "" -#: js/musickeyboard.js:2995 -msgid "No MIDI device found." +#: js/widgets/tempo.js:261 +msgid "Please enter a number between 30 and 1000" msgstr "" -#: js/musickeyboard.js:3000 -msgid "Failed to get MIDI access in browser." +#: js/widgets/tempo.js:268 +#: js/widgets/tempo.js:271 +msgid "The beats per minute must be between 30 and 1000." msgstr "" -#: js/rhythmruler.js:202 -msgid "Save rhythms" +#: js/widgets/tempo.js:287 +msgid "The beats per minute must be below 1000." msgstr "" -#: js/rhythmruler.js:222 -msgid "Save drum machine" +#: js/widgets/tempo.js:303 +msgid "The beats per minute must be above 30" msgstr "" -#: js/rhythmruler.js:263 -#.TRANS: user can tap out a rhythm by clicking on a ruler. -msgid "Tap a rhythm" +#: js/widgets/timbre.js:766 +msgid "Synthesizer" msgstr "" -#: js/rhythmruler.js:342 -#: js/rhythmruler.js:344 -#: js/rhythmruler.js:1481 -#: js/rhythmruler.js:1483 -#: js/sampler.js:110 -#: js/sampler.js:112 -#: js/tempo.js:78 -#: js/tempo.js:97 -#: js/tempo.js:99 -msgid "Pause" +#: js/widgets/timbre.js:789 +msgid "Oscillator" msgstr "" -#: js/rhythmruler.js:478 -msgid "Click on the ruler to divide it." +#: js/widgets/timbre.js:840 +msgid "Envelope" msgstr "" -#: js/rhythmruler.js:603 -#: js/rhythmruler.js:605 -#: js/rhythmruler.js:804 -#: js/rhythmruler.js:806 -#: js/rhythmruler.js:1386 -#: js/rhythmruler.js:1388 -msgid "tap a rhythm" +#: js/widgets/timbre.js:886 +#: planet/js/GlobalTag.js:50 +#.TRANS: On the Planet, we use labels to tag projects. +msgid "Effects" msgstr "" -#: js/rhythmruler.js:1084 -msgid "Maximum value of 256 has been exceeded." +#: js/widgets/timbre.js:904 +msgid "Filter" msgstr "" -#: js/sampler.js:137 -msgid "Warning: Sample is bigger than 1MB." +#: js/widgets/timbre.js:946 +msgid "Add filter" msgstr "" -#: js/sampler.js:142 -msgid "Upload failed: Sample is not a .wav file." +#: js/widgets/timbre.js:987 +msgid "Click on buttons to open the timbre design tools." msgstr "" -#: js/sampler.js:164 -msgid "A new sample block was generated." +#: js/widgets/timbre.js:1273 +msgid "harmonicity" msgstr "" -#: js/sampler.js:255 -msgid "Upload sample" +#: js/widgets/timbre.js:1340 +#: js/widgets/timbre.js:1406 +msgid "modulation index" msgstr "" -#: js/sampler.js:306 -msgid "Save sample" +#: js/widgets/timbre.js:1484 +msgid "vibrato amount" msgstr "" -#: js/sampler.js:697 -#.TRANS: The reference tone is a sound used for comparison. -msgid "reference tone" +#: js/widgets/timbre.js:1919 +msgid "Filter already present." msgstr "" -#: js/tempo.js:113 -msgid "Save tempo" +#: js/widgets/timbre.js:2322 +msgid "delay (MS)" msgstr "" -#: js/tempo.js:144 -msgid "speed up" +#: js/widgets/timbre.js:2507 +msgid "distortion amount" msgstr "" -#: js/tempo.js:150 -msgid "slow down" +#: js/widgets/aiwidget.js:180 +#: js/widgets/sampler.js:227 +msgid "Warning: Sample is bigger than 1MB." msgstr "" -#: js/tempo.js:194 -msgid "Adjust the tempo with the buttons." +#: js/widgets/aiwidget.js:539 +msgid "New start block generated" msgstr "" -#: js/tempo.js:261 -msgid "Please enter a number between 30 and 1000" +#: js/widgets/aiwidget.js:541 +msgid "MIDI loading. This may take some time depending upon the number of notes in the track" msgstr "" -#: js/tempo.js:268 -#: js/tempo.js:271 -msgid "The beats per minute must be between 30 and 1000." +#: js/widgets/aiwidget.js:551 +#: js/widgets/sampler.js:254 +msgid "Upload failed: Sample is not a .wav file." msgstr "" -#: js/tempo.js:287 -msgid "The beats per minute must be below 1000." +#: js/widgets/aiwidget.js:679 +#: js/widgets/sampler.js:432 +msgid "Save sample" msgstr "" -#: js/tempo.js:303 -msgid "The beats per minute must be above 30" +#: js/widgets/aiwidget.js:701 +msgid "AI Music" msgstr "" -#: js/timbre.js:766 -msgid "Synthesizer" +#: js/widgets/arpeggio.js:239 +msgid "Click in the grid to add steps to the arpeggio." msgstr "" -#: js/timbre.js:789 -msgid "Oscillator" +#: js/widgets/help.js:95 +#: js/widgets/help.js:125 +#: js/widgets/help.js:146 +#: js/widgets/help.js:158 +#: js/widgets/help.js:376 +#: js/widgets/help.js:391 +msgid "Take a tour" msgstr "" -#: js/timbre.js:840 -msgid "Envelope" +#: js/widgets/musickeyboard.js:725 +#: js/widgets/phrasemaker.js:584 +msgid "Add note" msgstr "" -#: js/timbre.js:886 -#: js/GlobalTag.js:50 -#.TRANS: On the Planet, we use labels to tag projects. -msgid "Effects" +#: js/widgets/musickeyboard.js:744 +msgid "Metronome" +msgstr "" + +#: js/widgets/musickeyboard.js:1549 +#: plugins/rodi.rtp:193 +msgid "duration" +msgstr "" + +#: js/widgets/musickeyboard.js:3179 +msgid "New action blocks generated" +msgstr "" + +#: js/widgets/musickeyboard.js:3180 +msgid "New action block generated" msgstr "" -#: js/timbre.js:904 -msgid "Filter" +#: js/widgets/musickeyboard.js:3365 +#: js/widgets/musickeyboard.js:3373 +msgid "MIDI device present." msgstr "" -#: js/timbre.js:946 -msgid "Add filter" +#: js/widgets/musickeyboard.js:3376 +msgid "No MIDI device found." msgstr "" -#: js/timbre.js:987 -msgid "Click on buttons to open the timbre design tools." +#: js/widgets/musickeyboard.js:3386 +msgid "Failed to get MIDI access in browser." msgstr "" -#: js/timbre.js:1273 -msgid "harmonicity" +#: js/widgets/phrasemaker.js:574 +msgid "Export" msgstr "" -#: js/timbre.js:1340 -#: js/timbre.js:1406 -msgid "modulation index" +#: js/widgets/phrasemaker.js:581 +msgid "Sort" msgstr "" -#: js/timbre.js:1484 -msgid "vibrato amount" +#: js/widgets/phrasemaker.js:975 +msgid "Click on the table to add notes." msgstr "" -#: js/timbre.js:1919 -msgid "Filter already present." +#: js/widgets/phrasemaker.js:2677 +#: js/widgets/phrasemaker.js:2819 +msgid "tuplet value" msgstr "" -#: js/timbre.js:2322 -msgid "delay (MS)" +#: js/widgets/rhythmruler.js:486 +msgid "Save rhythms" msgstr "" -#: js/timbre.js:2507 -msgid "distortion amount" +#: js/widgets/rhythmruler.js:512 +msgid "Save drum machine" msgstr "" -#: js/meterwidget.js:170 -msgid "Reset" +#: js/widgets/rhythmruler.js:589 +#.TRANS: user can tap out a rhythm by clicking on a ruler. +msgid "Tap a rhythm" msgstr "" -#: js/meterwidget.js:196 -msgid "Click in the circle to select strong beats for the meter." +#: js/widgets/rhythmruler.js:817 +msgid "Click on the ruler to divide it." msgstr "" -#: js/arpeggio.js:239 -msgid "Click in the grid to add steps to the arpeggio." +#: js/widgets/rhythmruler.js:950 +#: js/widgets/rhythmruler.js:952 +#: js/widgets/rhythmruler.js:1152 +#: js/widgets/rhythmruler.js:1154 +#: js/widgets/rhythmruler.js:1765 +#: js/widgets/rhythmruler.js:1767 +msgid "tap a rhythm" msgstr "" -#: js/ProjectStorage.js:243 -msgid "anonymous" +#: js/widgets/rhythmruler.js:1459 +msgid "Maximum value of 256 has been exceeded." msgstr "" -#: js/GlobalCard.js:68 -msgid "Share" +#: js/widgets/sampler.js:237 +msgid "Recording started..." msgstr "" -#: js/GlobalCard.js:74 -msgid "Flags" +#: js/widgets/sampler.js:245 +msgid "Recording complete..." msgstr "" -#: js/LocalCard.js:36 -msgid "View published project" +#: js/widgets/sampler.js:283 +msgid "A new sample block was generated." msgstr "" -#: js/LocalCard.js:42 -msgid "Publish project" +#: js/widgets/sampler.js:378 +msgid "Upload sample" msgstr "" -#: js/LocalCard.js:51 -msgid "Edit project" +#: js/widgets/sampler.js:399 +msgid "Warning: Your sample cannot be loaded because it is >1MB." msgstr "" -#: js/LocalCard.js:52 -msgid "Delete project" +#: js/widgets/sampler.js:448 +msgid "Toggle Mic" msgstr "" -#: js/LocalCard.js:53 -msgid "Download project" +#: js/widgets/sampler.js:458 +msgid "Playback" msgstr "" -#: js/LocalCard.js:55 -msgid "Duplicate project" +#: js/widgets/sampler.js:979 +#.TRANS: The reference tone is a sound used for comparison. +msgid "reference tone" msgstr "" -#: js/GlobalTag.js:28 +#: planet/js/GlobalTag.js:28 #.TRANS: On the Planet, we use labels to tag projects. msgid "All Projects" msgstr "" -#: js/GlobalTag.js:30 -#: js/StringHelper.js:37 +#: planet/js/GlobalTag.js:30 +#: planet/js/StringHelper.js:37 #.TRANS: On the Planet, we use labels to tag projects. msgid "My Projects" msgstr "" -#: js/GlobalTag.js:32 +#: planet/js/GlobalTag.js:32 #.TRANS: On the Planet, we use labels to tag projects. msgid "Examples" msgstr "" -#: js/GlobalTag.js:34 +#: planet/js/GlobalTag.js:34 #.TRANS: On the Planet, we use labels to tag projects. msgid "Music" msgstr "" -#: js/GlobalTag.js:36 +#: planet/js/GlobalTag.js:36 #.TRANS: On the Planet, we use labels to tag projects. msgid "Art" msgstr "" -#: js/GlobalTag.js:38 +#: planet/js/GlobalTag.js:38 #.TRANS: On the Planet, we use labels to tag projects. msgid "Math" msgstr "" -#: js/GlobalTag.js:40 +#: planet/js/GlobalTag.js:40 #.TRANS: On the Planet, we use labels to tag projects. msgid "Interactive" msgstr "" -#: js/GlobalTag.js:42 +#: planet/js/GlobalTag.js:42 #.TRANS: On the Planet, we use labels to tag projects. msgid "Design" msgstr "" -#: js/GlobalTag.js:44 +#: planet/js/GlobalTag.js:44 #.TRANS: On the Planet, we use labels to tag projects. msgid "Game" msgstr "" -#: js/GlobalTag.js:46 +#: planet/js/GlobalTag.js:46 #.TRANS: On the Planet, we use labels to tag projects. msgid "Media" msgstr "" -#: js/GlobalTag.js:48 +#: planet/js/GlobalTag.js:48 #.TRANS: On the Planet, we use labels to tag projects. msgid "Sensors" msgstr "" -#: js/GlobalTag.js:52 +#: planet/js/GlobalTag.js:52 #.TRANS: On the Planet, we use labels to tag projects. msgid "Code Snippet" msgstr "" -#: js/helper.js:149 -#: js/StringHelper.js:49 -msgid "Show more tags" +#: planet/js/LocalCard.js:36 +msgid "View published project" msgstr "" -#: js/helper.js:150 -msgid "Show fewer tags" +#: planet/js/LocalCard.js:42 +msgid "Publish project" +msgstr "" + +#: planet/js/LocalCard.js:51 +msgid "Edit project" +msgstr "" + +#: planet/js/LocalCard.js:52 +msgid "Delete project" +msgstr "" + +#: planet/js/LocalCard.js:53 +msgid "Download project" +msgstr "" + +#: planet/js/LocalCard.js:55 +msgid "Duplicate project" +msgstr "" + +#: planet/js/ProjectStorage.js:243 +msgid "anonymous" +msgstr "" + +#: planet/js/SaveInterface.js:34 +msgid "Open in Music Blocks" +msgstr "" + +#: planet/js/SaveInterface.js:35 +msgid "Open in Turtle Blocks" +msgstr "" + +#: planet/js/GlobalCard.js:68 +msgid "Share" +msgstr "" + +#: planet/js/GlobalCard.js:74 +msgid "Flags" +msgstr "" + +#: planet/js/GlobalPlanet.js:35 +msgid "No results found." +msgstr "" + +#: planet/js/GlobalPlanet.js:51 +msgid "Remix of" +msgstr "" + +#: planet/js/GlobalPlanet.js:509 +msgid "Cannot connect to server" msgstr "" -#: js/ProjectViewer.js:30 +#: planet/js/ProjectViewer.js:30 msgid "Error: Report could not be submitted. Try again later." msgstr "" -#: js/ProjectViewer.js:31 +#: planet/js/ProjectViewer.js:31 msgid "Thank you for reporting this project. A moderator will review the project shortly, to verify violation of the Sugar Labs Code of Conduct." msgstr "" -#: js/ProjectViewer.js:32 -#: js/StringHelper.js:62 -#: js/StringHelper.js:64 -#: js/StringHelper.js:68 +#: planet/js/ProjectViewer.js:32 +#: planet/js/StringHelper.js:62 +#: planet/js/StringHelper.js:64 +#: planet/js/StringHelper.js:68 msgid "Report Project" msgstr "" -#: js/ProjectViewer.js:33 -#: js/StringHelper.js:63 +#: planet/js/ProjectViewer.js:33 +#: planet/js/StringHelper.js:63 msgid "Project Reported" msgstr "" -#: js/ProjectViewer.js:34 +#: planet/js/ProjectViewer.js:34 msgid "Report description required" msgstr "" -#: js/ProjectViewer.js:35 +#: planet/js/ProjectViewer.js:35 msgid "Report description too long" msgstr "" -#: js/StringHelper.js:30 +#: planet/js/Publisher.js:30 +msgid "Feature unavailable - cannot connect to server. Reload Music Blocks to try again." +msgstr "" + +#: planet/js/Publisher.js:220 +#: planet/js/Publisher.js:237 +msgid "This field is required" +msgstr "" + +#: planet/js/Publisher.js:227 +msgid "Title too long" +msgstr "" + +#: planet/js/Publisher.js:244 +msgid "Description too long" +msgstr "" + +#: planet/js/Publisher.js:341 +msgid "Server Error" +msgstr "" + +#: planet/js/Publisher.js:341 +msgid "Try Again" +msgstr "" + +#: planet/js/StringHelper.js:30 msgid "Planet" msgstr "" -#: js/StringHelper.js:31 +#: planet/js/StringHelper.js:31 msgid "Close Planet" msgstr "" -#: js/StringHelper.js:32 +#: planet/js/StringHelper.js:32 msgid "Open project from file" msgstr "" -#: js/StringHelper.js:34 +#: planet/js/StringHelper.js:34 msgid "Local" msgstr "" -#: js/StringHelper.js:35 +#: planet/js/StringHelper.js:35 msgid "Global" msgstr "" -#: js/StringHelper.js:36 +#: planet/js/StringHelper.js:36 msgid "Search for a project" msgstr "" -#: js/StringHelper.js:38 +#: planet/js/StringHelper.js:38 msgid "Publish Project" msgstr "" -#: js/StringHelper.js:40 +#: planet/js/StringHelper.js:40 msgid "Tags (max 5)" msgstr "" -#: js/StringHelper.js:41 -#: js/StringHelper.js:61 +#: planet/js/StringHelper.js:41 +#: planet/js/StringHelper.js:61 msgid "Description" msgstr "" -#: js/StringHelper.js:42 -#: js/StringHelper.js:67 +#: planet/js/StringHelper.js:42 +#: planet/js/StringHelper.js:67 msgid "Submit" msgstr "" -#: js/StringHelper.js:43 -#: js/StringHelper.js:47 +#: planet/js/StringHelper.js:43 +#: planet/js/StringHelper.js:47 msgid "Cancel" msgstr "" -#: js/StringHelper.js:44 +#: planet/js/StringHelper.js:44 msgid "Delete \\"\\"?" msgstr "" -#: js/StringHelper.js:45 +#: planet/js/StringHelper.js:45 msgid "Permanently delete project \\"\\"?" msgstr "" -#: js/StringHelper.js:48 +#: planet/js/StringHelper.js:48 msgid "Explore Projects" msgstr "" -#: js/StringHelper.js:50 +#: planet/js/StringHelper.js:49 +#: planet/js/helper.js:149 +msgid "Show more tags" +msgstr "" + +#: planet/js/StringHelper.js:50 msgid "Most recent" msgstr "" -#: js/StringHelper.js:51 +#: planet/js/StringHelper.js:51 msgid "Most liked" msgstr "" -#: js/StringHelper.js:52 +#: planet/js/StringHelper.js:52 msgid "Most downloaded" msgstr "" -#: js/StringHelper.js:53 +#: planet/js/StringHelper.js:53 msgid "A-Z" msgstr "" -#: js/StringHelper.js:54 +#: planet/js/StringHelper.js:54 msgid "Sort by" msgstr "" -#: js/StringHelper.js:55 +#: planet/js/StringHelper.js:55 msgid "Load More Projects" msgstr "" -#: js/StringHelper.js:56 +#: planet/js/StringHelper.js:56 msgid "Last Updated" msgstr "" -#: js/StringHelper.js:57 +#: planet/js/StringHelper.js:57 msgid "Creation Date" msgstr "" -#: js/StringHelper.js:58 +#: planet/js/StringHelper.js:58 msgid "Number of Downloads:" msgstr "" -#: js/StringHelper.js:59 +#: planet/js/StringHelper.js:59 msgid "Number of Likes:" msgstr "" -#: js/StringHelper.js:60 +#: planet/js/StringHelper.js:60 msgid "Tags:" msgstr "" -#: js/StringHelper.js:65 +#: planet/js/StringHelper.js:65 msgid "Report projects which violate the Sugar Labs Code of Conduct." msgstr "" -#: js/StringHelper.js:66 +#: planet/js/StringHelper.js:66 msgid "Reason for reporting project" msgstr "" -#: js/StringHelper.js:70 +#: planet/js/StringHelper.js:70 msgid "Download as File" msgstr "" -#: js/GlobalPlanet.js:35 -msgid "No results found." -msgstr "" - -#: js/GlobalPlanet.js:51 -msgid "Remix of" -msgstr "" - -#: js/GlobalPlanet.js:509 -msgid "Cannot connect to server" -msgstr "" - -#: js/Publisher.js:30 -msgid "Feature unavailable - cannot connect to server. Reload Music Blocks to try again." -msgstr "" - -#: js/Publisher.js:218 -#: js/Publisher.js:235 -msgid "This field is required" -msgstr "" - -#: js/Publisher.js:225 -msgid "Title too long" +#: planet/js/helper.js:150 +msgid "Show fewer tags" msgstr "" -#: js/Publisher.js:242 -msgid "Description too long" +#: plugins/accelerometer.rtp:48 +msgid "motion x" msgstr "" -#: js/Publisher.js:339 -msgid "Server Error" +#: plugins/accelerometer.rtp:56 +msgid "motion y" msgstr "" -#: js/Publisher.js:339 -msgid "Try Again" +#: plugins/accelerometer.rtp:64 +msgid "motion z" msgstr "" -#: js/SaveInterface.js:34 -msgid "Open in Music Blocks" +#: plugins/facebook.rtp:27 +msgid "publish" msgstr "" -#: js/SaveInterface.js:35 -msgid "Open in Turtle Blocks" +#: plugins/maths.rtp:62 +msgid "power" msgstr "" -#: plugins/weather.rtp:68 -#: plugins/weather.rtp:97 -msgid "Days ahead must be in the range of -1 to 5." +#: plugins/maths.rtp:62 +msgid "base" msgstr "" -#: plugins/weather.rtp:122 -msgid "forecast" +#: plugins/maths.rtp:62 +msgid "exp" msgstr "" -#: plugins/weather.rtp:123 -#: plugins/weather.rtp:137 -#: plugins/weather.rtp:150 -msgid "city" +#: plugins/maths.rtp:99 +msgid "floor" msgstr "" -#: plugins/weather.rtp:124 -#: plugins/weather.rtp:138 -#: plugins/weather.rtp:151 -msgid "day" +#: plugins/maths.rtp:104 +msgid "ceiling" msgstr "" -#: plugins/weather.rtp:136 -msgid "high" +#: plugins/maths.rtp:109 +msgid "to degrees" msgstr "" -#: plugins/weather.rtp:149 -msgid "low" +#: plugins/maths.rtp:114 +msgid "to radians" msgstr "" #: plugins/nutrition.rtp:104 @@ -9461,45 +9870,6 @@ msgstr "" msgid "water" msgstr "" -#: plugins/maths.rtp:62 -#: plugins/examples.rtp:93 -msgid "power" -msgstr "" - -#: plugins/maths.rtp:62 -#: plugins/examples.rtp:93 -msgid "base" -msgstr "" - -#: plugins/maths.rtp:62 -#: plugins/examples.rtp:93 -msgid "exp" -msgstr "" - -#: plugins/maths.rtp:99 -#: plugins/examples.rtp:130 -msgid "floor" -msgstr "" - -#: plugins/maths.rtp:104 -#: plugins/examples.rtp:135 -msgid "ceiling" -msgstr "" - -#: plugins/maths.rtp:109 -#: plugins/examples.rtp:140 -msgid "to degrees" -msgstr "" - -#: plugins/maths.rtp:114 -#: plugins/examples.rtp:145 -msgid "to radians" -msgstr "" - -#: plugins/facebook.rtp:27 -msgid "publish" -msgstr "" - #: plugins/rodi.rtp:172 msgid "blink" msgstr "" @@ -9528,18 +9898,66 @@ msgstr "" msgid "move" msgstr "" -#: plugins/accelerometer.rtp:48 -msgid "motion x" +#: plugins/weather.rtp:68 +#: plugins/weather.rtp:97 +msgid "Days ahead must be in the range of -1 to 5." msgstr "" -#: plugins/accelerometer.rtp:56 -msgid "motion y" +#: plugins/weather.rtp:122 +msgid "forecast" msgstr "" -#: plugins/accelerometer.rtp:64 -msgid "motion z" +#: plugins/weather.rtp:123 +#: plugins/weather.rtp:137 +#: plugins/weather.rtp:150 +msgid "city" +msgstr "" + +#: plugins/weather.rtp:124 +#: plugins/weather.rtp:138 +#: plugins/weather.rtp:151 +msgid "day" +msgstr "" + +#: plugins/weather.rtp:136 +msgid "high" +msgstr "" + +#: plugins/weather.rtp:149 +msgid "low" msgstr "" +#: js/toolbar.js:70 + +#: js/toolbar.js:130 + +#: js/toolbar.js:194 + +#: js/toolbar.js:249 + +#~msgid "Toggle JavaScript Editor" +#~msgstr "" + +#: js/EnsembleBlocks.js:643 + +#~msgid "The Turrle pitch block returns the current pitch number being played by the specified turtle." +#~msgstr "" + +#: js/PitchActions.js:88 + +#~msgid "The Scalar Step Block must be used inside of a Note Block." +#~msgstr "" + +#: js/PitchActions.js:107 + +#~msgid "The Scalar Step Block must be preceded by a Pitch Block." +#~msgstr "" + +#: js/musickeyboard.js:2840 + +#~msgid "New action blocks generated!" +#~msgstr "" + #: js/toolbar.js:110 #: js/toolbar.js:204 @@ -9880,11 +10298,6 @@ msgstr "" #~msgid "The Time block returns the number of seconds that the program has been running." #~msgstr "" -#: js/help.js:95 - -#~msgid "Take a tour" -#~msgstr "" - #: js/GlobalCard.js:48 #~msgid "More Details" @@ -12783,11 +13196,6 @@ msgstr "" #~msgid "The save-stack button saves a stack onto a custom palette. It appears after a \"long press\" on a stack." #~msgstr "" -#: js/musicutils.js:254 - -#~msgid "Custom" -#~msgstr "" - #: js/basicblocks.js:4785 #~msgid "Rhythm" diff --git a/po/sk.po b/po/sk.po index 8478b10b4b..fd0651080d 100644 --- a/po/sk.po +++ b/po/sk.po @@ -2129,276 +2129,131 @@ #: js/planetInterface.js:104 #: js/planetInterface.js:104 #: js/planetInterface.js:104 -msgid "project undefined" -msgstr "" - -#: js/logo.js:61 -msgid "Not a valid pitch name" -msgstr "" - -#: js/logo.js:507 -#: js/ProgramBlocks.js:258 -#: js/ProgramBlocks.js:427 -msgid "You must select a file." -msgstr "" - -#: js/logo.js:1184 -#: js/turtles.js:118 -#: js/turtle-painter.js:1192 -#: js/turtle-painter.js:1193 -#: js/block.js:1463 -#: js/lilypond.js:757 -#: js/lilypond.js:921 -#: js/lilypond.js:959 -#: js/ActionBlocks.js:1223 -#: js/ProgramBlocks.js:1267 -msgid "start" -msgstr "" - -#: js/logo.js:1696 -msgid "Playback is ready." -msgstr "" - -#: js/blocks.js:1011 -#: js/blocks.js:3427 -#: js/blocks.js:3428 -#: js/blocks.js:3653 -#: js/blocks.js:4012 -#: js/blocks.js:4205 -#: js/blocks.js:5343 -#: js/blocks.js:6474 -#: js/palette.js:527 -#: js/palette.js:536 -#: js/palette.js:545 -#: js/palette.js:554 -#: js/palette.js:1131 -#: js/palette.js:1142 -#: js/palette.js:1153 -#: js/palette.js:1164 -#: js/palette.js:1183 -#: js/rubrics.js:529 -#: js/macros.js:170 -#: js/macros.js:266 -#: js/macros.js:267 -#: js/macros.js:276 -#: js/macros.js:828 -#: js/block.js:1449 -#: js/block.js:4164 -#: js/block.js:4182 -#: js/block.js:4193 -#: js/turtledefs.js:128 -#: js/turtledefs.js:230 -#: js/ActionBlocks.js:254 -#: js/ActionBlocks.js:307 -#: js/ActionBlocks.js:617 -#: js/ActionBlocks.js:716 -#: js/ActionBlocks.js:961 -#: js/ActionBlocks.js:1049 -#: js/ActionBlocks.js:1322 -#: js/ActionBlocks.js:1325 -#: js/ActionBlocks.js:1337 -#: js/ActionBlocks.js:1404 -#: js/MeterBlocks.js:715 -#: js/MeterBlocks.js:768 -#: js/MeterBlocks.js:831 -#: js/MeterBlocks.js:892 -#: js/phrasemaker.js:4412 -#: js/musickeyboard.js:2647 -#: js/rhythmruler.js:1928 -#: js/rhythmruler.js:1935 -#: js/rhythmruler.js:2119 -#: js/rhythmruler.js:2126 -msgid "action" -msgstr "" - -#: js/blocks.js:1205 -#: js/blocks.js:3380 -#: js/blocks.js:3770 -#: js/blocks.js:3801 -#: js/blocks.js:3850 -#: js/blocks.js:3885 -#: js/blocks.js:6497 -#: js/palette.js:509 -#: js/palette.js:638 -#: js/palette.js:1107 -#: js/BoxesBlocks.js:282 -#: js/BoxesBlocks.js:285 -#: js/BoxesBlocks.js:405 -#: js/BoxesBlocks.js:594 -msgid "box" -msgstr "" - -#: js/blocks.js:1680 -msgid "Consider breaking this stack into parts." +#: js/SaveInterface.js:59 +#: js/SaveInterface.js:61 +#: js/SaveInterface.js:93 +msgid "Music Blocks Project" msgstr "" -#: js/blocks.js:2408 -#: js/palette.js:653 -#: js/MediaBlocks.js:602 -msgid "open file" +#: js/SaveInterface.js:63 +msgid "This project was created in Music Blocks" msgstr "" -#: js/blocks.js:2415 -#: js/blocks.js:2423 -#: js/activity.js:1875 -msgid "audio file" +#: js/SaveInterface.js:67 +msgid "Music Blocks is a Free/Libre Software application." msgstr "" -#: js/blocks.js:2536 -#: js/blocks.js:3147 -#: js/block.js:3543 -msgid "on2" +#: js/SaveInterface.js:69 +msgid "The source code can be accessed at" msgstr "" -#: js/blocks.js:2538 -#: js/blocks.js:3149 -#: js/block.js:3545 -msgid "off" +#: js/SaveInterface.js:72 +msgid "For more information, please consult the" msgstr "" -#: js/blocks.js:2543 -#: js/blocks.js:3154 -#: js/palette.js:618 -#: js/block.js:3466 -#: js/BooleanBlocks.js:77 -#: js/BooleanBlocks.js:167 -#: js/BooleanBlocks.js:251 -#: js/BooleanBlocks.js:335 -#: js/BooleanBlocks.js:433 -#: js/BooleanBlocks.js:539 -#: js/BooleanBlocks.js:640 -#: js/BooleanBlocks.js:741 -#: js/BooleanBlocks.js:847 -#: js/BooleanBlocks.js:948 -#: js/BooleanBlocks.js:1033 -#: js/SensorsBlocks.js:910 -msgid "true" +#: js/SaveInterface.js:76 +#: js/turtledefs.js:795 +msgid "Music Blocks Guide" msgstr "" -#: js/blocks.js:2545 -#: js/blocks.js:3156 -#: js/block.js:3466 -#: js/BooleanBlocks.js:79 -#: js/BooleanBlocks.js:169 -#: js/BooleanBlocks.js:253 -#: js/BooleanBlocks.js:337 -#: js/BooleanBlocks.js:435 -#: js/BooleanBlocks.js:541 -#: js/BooleanBlocks.js:642 -#: js/BooleanBlocks.js:743 -#: js/BooleanBlocks.js:849 -#: js/BooleanBlocks.js:950 -#: js/SensorsBlocks.js:912 -msgid "false" +#: js/SaveInterface.js:83 +msgid "Alternatively, open the file in Music Blocks using the Load project button." msgstr "" -#: js/blocks.js:3183 -#: js/palette.js:574 -#: js/MediaBlocks.js:892 -#: js/MediaBlocks.js:963 -msgid "text" +#: js/SaveInterface.js:85 +msgid "Project Code" msgstr "" -#: js/blocks.js:3379 -#: js/palette.js:641 -#: js/palette.js:642 -#: js/BoxesBlocks.js:514 -msgid "store in box" +#: js/SaveInterface.js:87 +msgid "This code stores data about the blocks in a project." msgstr "" -#: js/blocks.js:3384 -#: js/blocks.js:3824 -#: js/blocks.js:3859 -#: js/blocks.js:3894 -#: js/blocks.js:5773 -#: js/blocks.js:5794 -#: js/BoxesBlocks.js:772 -msgid "box1" +#: js/SaveInterface.js:89 +msgid "Show" msgstr "" -#: js/blocks.js:3386 -#: js/blocks.js:3826 -#: js/blocks.js:3861 -#: js/blocks.js:3896 -#: js/blocks.js:5775 -#: js/blocks.js:5796 -#: js/BoxesBlocks.js:663 -msgid "box2" +#: js/SaveInterface.js:91 +msgid "Hide" msgstr "" -#: js/blocks.js:4058 -#: js/palette.js:639 -#: js/palette.js:644 -#: js/palette.js:1043 -#: js/BoxesBlocks.js:591 -msgid "store in" +#: js/SaveInterface.js:131 +#: js/SaveInterface.js:204 +#: js/SaveInterface.js:262 +#: js/SaveInterface.js:389 +#: js/SaveInterface.js:417 +#: js/activity.js:4884 +#: planet/js/ProjectStorage.js:27 +#: planet/js/GlobalPlanet.js:467 +#: planet/js/GlobalPlanet.js:469 +#: planet/js/GlobalPlanet.js:495 +#.TRANS: default project title when saving as Lilypond +msgid "My Project" msgstr "" -#: js/blocks.js:4058 -#: js/EnsembleBlocks.js:391 -#: js/EnsembleBlocks.js:402 -#: js/MediaBlocks.js:746 -#: js/ProgramBlocks.js:390 -#: js/ProgramBlocks.js:495 -#: js/ProgramBlocks.js:658 -#: js/BoxesBlocks.js:595 -#: js/PitchBlocks.js:656 -#: js/PitchBlocks.js:932 -#: js/PitchBlocks.js:1827 -#: js/ToneBlocks.js:1025 -#: js/DictBlocks.js:215 -#: js/DictBlocks.js:289 -msgid "name" +#: js/SaveInterface.js:197 +#: planet/js/SaveInterface.js:58 +msgid "No description provided" msgstr "" -#: js/blocks.js:4058 -#: js/RhythmBlocks.js:1130 -#: js/BoxesBlocks.js:75 -#: js/BoxesBlocks.js:595 -#: js/HeapBlocks.js:544 -#: js/DictBlocks.js:289 -#: js/DictBlocks.js:430 -msgid "value" +#: js/SaveInterface.js:332 +msgid "Your recording is in progress." msgstr "" -#: js/blocks.js:4907 -msgid "There is no block selected." +#: js/SaveInterface.js:401 +#.TRANS: File name prompt for save as Lilypond +msgid "File name" msgstr "" -#: js/blocks.js:5002 -#: js/MediaBlocks.js:888 -msgid "show" +#: js/SaveInterface.js:403 +#: planet/js/StringHelper.js:39 +#.TRANS: Project title prompt for save as Lilypond +msgid "Project title" msgstr "" -#: js/blocks.js:5005 -#: js/MediaBlocks.js:803 -#.TRANS: Avatar is the image used to determine the appearance of the mouse. -msgid "avatar" +#: js/SaveInterface.js:405 +#.TRANS: Project title prompt for save as Lilypond +msgid "Project author" msgstr "" -#: js/blocks.js:5008 -#: js/ToneBlocks.js:1010 -#: js/sampler.js:693 -#.TRANS: The sound sample that the user uploads. -msgid "sample" +#: js/SaveInterface.js:407 +#.TRANS: MIDI prompt for save as Lilypond +msgid "Include MIDI output?" msgstr "" -#: js/turtles.js:874 -msgid "Grid" +#: js/SaveInterface.js:409 +#.TRANS: Guitar prompt for save as Lilypond +msgid "Include guitar tablature output?" msgstr "" -#: js/turtles.js:891 -#: js/turtledefs.js:626 -msgid "Clean" +#: js/SaveInterface.js:411 +#.TRANS: Lilypond is a scripting language for generating sheet music +msgid "Save as Lilypond" msgstr "" -#: js/turtles.js:912 -#: js/turtledefs.js:632 -msgid "Collapse" +#: js/SaveInterface.js:426 +#: js/blocks/EnsembleBlocks.js:75 +#: js/blocks/EnsembleBlocks.js:154 +#: js/blocks/EnsembleBlocks.js:216 +#: js/blocks/EnsembleBlocks.js:302 +#: js/blocks/EnsembleBlocks.js:348 +#: js/blocks/EnsembleBlocks.js:389 +#: js/blocks/EnsembleBlocks.js:441 +#: js/blocks/EnsembleBlocks.js:490 +#: js/blocks/EnsembleBlocks.js:536 +#: js/blocks/EnsembleBlocks.js:583 +#: js/blocks/EnsembleBlocks.js:637 +#: js/blocks/EnsembleBlocks.js:753 +#: js/blocks/EnsembleBlocks.js:840 +#: js/blocks/EnsembleBlocks.js:899 +#: js/blocks/EnsembleBlocks.js:942 +#: js/blocks/EnsembleBlocks.js:1212 +#: js/blocks/EnsembleBlocks.js:1280 +#.TRANS: default project author when saving as Lilypond +msgid "Mr. Mouse" msgstr "" -#: js/turtles.js:940 -msgid "Expand" +#: js/SaveInterface.js:573 +msgid "The Lilypond code is copied to clipboard. You can paste it here: " msgstr "" #: js/languagebox.js:198 @@ -2409,6933 +2264,7487 @@ msgstr "" msgid "Music Blocks is already set to this language." msgstr "" -#: js/piemenus.js:200 -#: js/musicutils.js:808 -#: js/musicutils.js:824 -#: js/phrasemaker.js:1672 -#: js/musickeyboard.js:2041 -#: js/sampler.js:544 -#.TRANS: double sharp is a music term related to pitch -msgid "double sharp" +#: js/planetInterface.js:131 +msgid "project undefined" msgstr "" -#: js/piemenus.js:201 -#: js/PitchBlocks.js:1510 -#: js/PitchActions.js:580 -#: js/musicutils.js:806 -#: js/musicutils.js:825 -#: js/phrasemaker.js:1673 -#: js/musickeyboard.js:2042 -#: js/sampler.js:545 -#.TRANS: sharp is a half-step up in pitch -#.TRANS: sharp is a music term related to pitch -msgid "sharp" +#: js/rubrics.js:523 +#: js/turtledefs.js:119 +#: js/turtledefs.js:221 +#: js/blocks/RhythmBlockPaletteBlocks.js:52 +#: js/blocks/RhythmBlockPaletteBlocks.js:234 +#: js/blocks/ProgramBlocks.js:745 +#: js/widgets/rhythmruler.js:2057 +#: js/widgets/rhythmruler.js:2064 +#: js/widgets/rhythmruler.js:2133 +#: js/widgets/rhythmruler.js:2140 +#: js/widgets/rhythmruler.js:2219 +#.TRANS: an arrangement of notes based on duration +msgid "rhythm" msgstr "" -#: js/piemenus.js:202 -#: js/musicutils.js:804 -#: js/musicutils.js:826 -#: js/phrasemaker.js:1674 -#: js/musickeyboard.js:2043 -#: js/sampler.js:546 -#.TRANS: natural is a music term related to pitch -msgid "natural" +#: js/rubrics.js:524 +#: js/turtledefs.js:121 +#: js/turtledefs.js:223 +#: js/block-verbose.js:2622 +#: js/block.js:2550 +#: js/blocks/IntervalsBlocks.js:63 +#: js/blocks/SensorsBlocks.js:178 +#: js/blocks/PitchBlocks.js:1839 +#: js/blocks/PitchBlocks.js:1853 +#: js/widgets/musickeyboard.js:1935 +#: js/widgets/phrasemaker.js:1036 +#.TRANS: pitch number +#.TRANS: pitch number +#.TRANS: we specify pitch in terms of a name and an octave. The name can be CDEFGAB or Do Re Mi Fa Sol La Ti. Octave is a number between 1 and 8. +msgid "pitch" msgstr "" -#: js/piemenus.js:203 -#: js/PitchBlocks.js:1469 -#: js/PitchActions.js:583 -#: js/musicutils.js:802 -#: js/musicutils.js:827 -#: js/phrasemaker.js:1675 -#: js/musickeyboard.js:2044 -#: js/sampler.js:547 -#.TRANS: flat is a half-step down in pitch -#.TRANS: flat is a music term related to pitch -msgid "flat" +#: js/rubrics.js:525 +#: js/turtledefs.js:123 +#: js/turtledefs.js:225 +msgid "tone" msgstr "" -#: js/piemenus.js:204 -#: js/musicutils.js:800 -#: js/musicutils.js:828 -#: js/phrasemaker.js:1676 -#: js/musickeyboard.js:2045 -#: js/sampler.js:548 -#.TRANS: double flat is a music term related to pitch -msgid "double flat" +#: js/rubrics.js:526 +#: js/lilypond.js:605 +#: js/lilypond.js:904 +#: js/lilypond.js:910 +#: js/lilypond.js:948 +msgid "mouse" msgstr "" -#: js/piemenus.js:2861 -#: js/PitchBlocks.js:1357 -#: js/musicutils.js:627 -#.TRANS: unison means the note is the same as the current note -#.TRANS: unison is a music term related to intervals -msgid "unison" +#: js/rubrics.js:527 +#: js/turtledefs.js:132 +#: js/turtledefs.js:234 +#: js/widgets/phrasemaker.js:1040 +msgid "pen" msgstr "" -#: js/piemenus.js:3015 -#: js/piemenus.js:3088 -#: js/musicutils.js:635 -#: js/musicutils.js:810 -#: js/musicutils.js:912 -#.TRANS: major is a music term related to intervals and mode -msgid "major" +#: js/rubrics.js:528 +#: js/turtledefs.js:133 +#: js/turtledefs.js:235 +#: js/blocks/NumberBlocks.js:981 +#: js/blocks/PitchBlocks.js:1717 +#: js/blocks/PitchBlocks.js:1758 +msgid "number" msgstr "" -#: js/piemenus.js:3015 -#: js/piemenus.js:3088 -#: js/musicutils.js:653 -#.TRANS: modal scale for music -msgid "ionian" +#: js/rubrics.js:529 +#: js/turtledefs.js:127 +#: js/turtledefs.js:229 +msgid "flow" msgstr "" -#: js/piemenus.js:3017 -#: js/piemenus.js:3092 -#: js/musicutils.js:633 -#: js/musicutils.js:811 -#: js/musicutils.js:909 -#.TRANS: minor is a music term related to intervals and mode -msgid "minor" +#: js/rubrics.js:530 +#: js/turtledefs.js:128 +#: js/turtledefs.js:230 +#: js/block-verbose.js:1609 +#: js/block-verbose.js:4559 +#: js/block-verbose.js:4577 +#: js/block-verbose.js:4588 +#: js/block.js:1573 +#: js/block.js:4483 +#: js/block.js:4501 +#: js/block.js:4512 +#: js/blocks.js:1018 +#: js/blocks.js:3491 +#: js/blocks.js:3492 +#: js/blocks.js:3717 +#: js/blocks.js:4076 +#: js/blocks.js:4269 +#: js/blocks.js:5432 +#: js/blocks.js:6563 +#: js/macros.js:170 +#: js/macros.js:266 +#: js/macros.js:267 +#: js/macros.js:276 +#: js/macros.js:828 +#: js/palette.js:527 +#: js/palette.js:536 +#: js/palette.js:545 +#: js/palette.js:554 +#: js/palette.js:1129 +#: js/palette.js:1140 +#: js/palette.js:1151 +#: js/palette.js:1162 +#: js/palette.js:1181 +#: js/blocks/ActionBlocks.js:254 +#: js/blocks/ActionBlocks.js:307 +#: js/blocks/ActionBlocks.js:617 +#: js/blocks/ActionBlocks.js:716 +#: js/blocks/ActionBlocks.js:961 +#: js/blocks/ActionBlocks.js:1049 +#: js/blocks/ActionBlocks.js:1322 +#: js/blocks/ActionBlocks.js:1325 +#: js/blocks/ActionBlocks.js:1337 +#: js/blocks/ActionBlocks.js:1404 +#: js/blocks/MeterBlocks.js:715 +#: js/blocks/MeterBlocks.js:768 +#: js/blocks/MeterBlocks.js:831 +#: js/blocks/MeterBlocks.js:892 +#: js/widgets/musickeyboard.js:2986 +#: js/widgets/phrasemaker.js:4913 +#: js/widgets/rhythmruler.js:2319 +#: js/widgets/rhythmruler.js:2326 +#: js/widgets/rhythmruler.js:2511 +#: js/widgets/rhythmruler.js:2518 +msgid "action" msgstr "" -#: js/piemenus.js:3017 -#: js/piemenus.js:3092 -#: js/musicutils.js:663 -#.TRANS: modal scale for music -msgid "aeolian" +#: js/rubrics.js:531 +#: js/turtledefs.js:136 +#: js/turtledefs.js:238 +msgid "sensors" msgstr "" -#: js/piemenus.js:3407 -msgid "Duplicate" +#: js/rubrics.js:532 +#: js/turtledefs.js:135 +#: js/turtledefs.js:237 +#: js/blocks/MediaBlocks.js:930 +msgid "media" msgstr "" -#: js/piemenus.js:3408 -#: js/turtledefs.js:534 -msgid "Extract" +#: js/rubrics.js:533 +msgid "mice" msgstr "" -#: js/piemenus.js:3409 -msgid "Move to trash" +#: js/toolbar.js:48 +#: js/toolbar.js:109 +msgid "About Music Blocks" msgstr "" -#: js/piemenus.js:3410 -#: js/timbre.js:968 -#: js/StringHelper.js:69 -msgid "Close" +#: js/toolbar.js:49 +#: js/toolbar.js:110 +#: js/toolbar.js:175 +#: js/toolbar.js:231 +#: js/turtledefs.js:445 +#: js/turtledefs.js:482 +#: js/activity.js:2660 +#: js/activity.js:2671 +#: js/activity.js:2902 +#: js/widgets/modewidget.js:77 +#: js/widgets/meterwidget.js:185 +#: js/widgets/pitchdrummatrix.js:147 +#: js/widgets/pitchdrummatrix.js:687 +#: js/widgets/pitchdrummatrix.js:689 +#: js/widgets/pitchdrummatrix.js:741 +#: js/widgets/pitchdrummatrix.js:743 +#: js/widgets/pitchdrummatrix.js:758 +#: js/widgets/pitchdrummatrix.js:760 +#: js/widgets/pitchdrummatrix.js:789 +#: js/widgets/pitchdrummatrix.js:791 +#: js/widgets/pitchstaircase.js:121 +#: js/widgets/temperament.js:610 +#: js/widgets/temperament.js:613 +#: js/widgets/temperament.js:673 +#: js/widgets/temperament.js:675 +#: js/widgets/temperament.js:2017 +#: js/widgets/temperament.js:2019 +#: js/widgets/tempo.js:84 +#: js/widgets/tempo.js:86 +#: js/widgets/timbre.js:432 +#: js/widgets/timbre.js:434 +#: js/widgets/timbre.js:465 +#: js/widgets/timbre.js:467 +#: js/widgets/timbre.js:746 +#: js/widgets/aiwidget.js:647 +#: js/widgets/aiwidget.js:654 +#: js/widgets/aiwidget.js:656 +#: js/widgets/arpeggio.js:90 +#: js/widgets/arpeggio.js:547 +#: js/widgets/arpeggio.js:549 +#: js/widgets/arpeggio.js:644 +#: js/widgets/arpeggio.js:646 +#: js/widgets/musickeyboard.js:676 +#: js/widgets/musickeyboard.js:872 +#: js/widgets/musickeyboard.js:874 +#: js/widgets/musickeyboard.js:953 +#: js/widgets/musickeyboard.js:955 +#: js/widgets/phrasemaker.js:513 +#: js/widgets/phrasemaker.js:523 +#: js/widgets/phrasemaker.js:525 +#: js/widgets/phrasemaker.js:4304 +#: js/widgets/phrasemaker.js:4528 +#: js/widgets/phrasemaker.js:4533 +#: js/widgets/phrasemaker.js:4535 +#: js/widgets/phrasemaker.js:4650 +#: js/widgets/rhythmruler.js:637 +#: js/widgets/rhythmruler.js:639 +#: js/widgets/rhythmruler.js:653 +#: js/widgets/rhythmruler.js:655 +#: js/widgets/sampler.js:162 +#: js/widgets/sampler.js:164 +#: js/widgets/sampler.js:363 +msgid "Play" msgstr "" -#: js/piemenus.js:3416 -msgid "Save stack" +#: js/toolbar.js:50 +#: js/toolbar.js:111 +#: js/toolbar.js:176 +#: js/toolbar.js:232 +#: js/turtledefs.js:451 +#: js/turtledefs.js:488 +#: js/activity.js:2679 +#: js/widgets/modewidget.js:99 +#: js/widgets/modewidget.js:101 +#: js/widgets/meterwidget.js:206 +#: js/widgets/meterwidget.js:208 +#: js/widgets/pitchdrummatrix.js:674 +#: js/widgets/pitchdrummatrix.js:676 +#: js/widgets/temperament.js:2002 +#: js/widgets/temperament.js:2004 +#: js/widgets/arpeggio.js:534 +#: js/widgets/arpeggio.js:536 +#: js/widgets/phrasemaker.js:534 +#: js/widgets/phrasemaker.js:536 +msgid "Stop" msgstr "" -#: js/piemenus.js:3420 -#: js/toolbar.js:60 -#: js/toolbar.js:120 -#: js/toolbar.js:185 -#: js/toolbar.js:240 -#: js/turtledefs.js:752 -msgid "Help" +#: js/toolbar.js:51 +#: js/toolbar.js:112 +#: js/toolbar.js:177 +#: js/toolbar.js:233 +#: js/turtledefs.js:498 +msgid "Record" msgstr "" -#: js/piemenus.js:3762 -msgid "You have chosen key " +#: js/toolbar.js:52 +#: js/toolbar.js:53 +msgid "Full screen" msgstr "" -#: js/piemenus.js:3766 -msgid " for your pitch preview." +#: js/toolbar.js:54 +#: js/toolbar.js:115 +#: js/toolbar.js:180 +#: js/toolbar.js:236 +#: js/turtledefs.js:504 +msgid "Toggle Fullscreen" +msgstr "" + +#: js/toolbar.js:55 +#: js/toolbar.js:116 +#: js/toolbar.js:181 +#: js/toolbar.js:237 +#: js/turtledefs.js:510 +#: planet/js/StringHelper.js:33 +msgid "New project" +msgstr "" + +#: js/toolbar.js:56 +#: js/toolbar.js:117 +#: js/toolbar.js:182 +#: js/toolbar.js:238 +#: js/turtledefs.js:516 +msgid "Load project from file" +msgstr "" + +#: js/toolbar.js:57 +#: js/toolbar.js:118 +#: js/toolbar.js:119 +#: js/toolbar.js:183 +#: js/toolbar.js:239 +#: js/turtledefs.js:541 +#: js/turtledefs.js:550 +#: js/turtledefs.js:571 +msgid "Save project" +msgstr "" + +#: js/toolbar.js:58 +#: js/toolbar.js:77 +#: js/toolbar.js:79 +#: js/toolbar.js:138 +#: js/toolbar.js:147 +#: js/toolbar.js:149 +#: js/toolbar.js:184 +#: js/toolbar.js:202 +#: js/toolbar.js:204 +#: js/toolbar.js:240 +#: js/toolbar.js:258 +#: js/toolbar.js:260 +msgid "Save project as HTML" +msgstr "" + +#: js/toolbar.js:59 +#: js/toolbar.js:120 +#: js/toolbar.js:185 +#: js/toolbar.js:241 +msgid "Find and share projects" +msgstr "" + +#: js/toolbar.js:60 +#: js/toolbar.js:121 +#: js/toolbar.js:186 +#: js/toolbar.js:242 +msgid "Offline. Sharing is unavailable" +msgstr "" + +#: js/toolbar.js:61 +#: js/toolbar.js:122 +#: js/toolbar.js:187 +#: js/toolbar.js:243 +msgid "Auxiliary menu" +msgstr "" + +#: js/toolbar.js:62 +#: js/toolbar.js:123 +#: js/toolbar.js:188 +#: js/toolbar.js:244 +#: js/turtledefs.js:752 +#: js/piemenus.js:3423 +msgid "Help" +msgstr "" + +#: js/toolbar.js:63 +#: js/toolbar.js:124 +#: js/toolbar.js:189 +#: js/toolbar.js:245 +msgid "Run slowly" +msgstr "" + +#: js/toolbar.js:64 +#: js/toolbar.js:125 +#: js/toolbar.js:190 +#: js/toolbar.js:246 +#: js/turtledefs.js:682 +msgid "Run step by step" +msgstr "" + +#: js/toolbar.js:65 +#: js/toolbar.js:126 +#: js/toolbar.js:191 +#: js/toolbar.js:247 +#: js/turtledefs.js:689 +msgid "Display statistics" +msgstr "" + +#: js/toolbar.js:66 +#: js/toolbar.js:127 +#: js/toolbar.js:192 +#: js/toolbar.js:248 +msgid "Load plugin" +msgstr "" + +#: js/toolbar.js:67 +#: js/toolbar.js:128 +#: js/toolbar.js:193 +#: js/toolbar.js:249 +#: js/turtledefs.js:696 +msgid "Delete plugin" +msgstr "" + +#: js/toolbar.js:68 +#: js/toolbar.js:129 +#: js/toolbar.js:194 +#: js/toolbar.js:250 +msgid "Enable horizontal scrolling" +msgstr "" + +#: js/toolbar.js:69 +#: js/toolbar.js:130 +#: js/toolbar.js:195 +#: js/toolbar.js:251 +msgid "Disable horizontal scrolling" +msgstr "" + +#: js/toolbar.js:70 +#: js/toolbar.js:131 +#: js/toolbar.js:196 +#: js/toolbar.js:252 +#: planet/js/LocalCard.js:54 +#: planet/js/StringHelper.js:71 +msgid "Merge with current project" +msgstr "" + +#: js/toolbar.js:71 +#: js/toolbar.js:132 +msgid "Set Pitch Preview" +msgstr "" + +#: js/toolbar.js:72 +#: js/toolbar.js:133 +#: js/toolbar.js:197 +#: js/toolbar.js:253 +msgid "JavaScript Editor" +msgstr "" + +#: js/toolbar.js:73 +#: js/toolbar.js:134 +#: js/toolbar.js:198 +#: js/toolbar.js:254 +#: js/turtledefs.js:724 +msgid "Restore" +msgstr "" + +#: js/toolbar.js:74 +#: js/toolbar.js:135 +#: js/toolbar.js:199 +#: js/toolbar.js:255 +msgid "Switch to beginner mode" +msgstr "" + +#: js/toolbar.js:75 +#: js/toolbar.js:136 +#: js/toolbar.js:200 +#: js/toolbar.js:256 +msgid "Switch to advanced mode" +msgstr "" + +#: js/toolbar.js:76 +#: js/toolbar.js:137 +#: js/toolbar.js:146 +#: js/toolbar.js:201 +#: js/toolbar.js:257 +#: js/turtledefs.js:738 +msgid "Select language" +msgstr "" + +#: js/toolbar.js:78 +#: js/toolbar.js:81 +#: js/toolbar.js:140 +#: js/turtledefs.js:579 +msgid "Save mouse artwork as PNG" +msgstr "" + +#: js/toolbar.js:80 +#: js/toolbar.js:139 +#: js/turtledefs.js:575 +msgid "Save mouse artwork as SVG" +msgstr "" + +#: js/toolbar.js:82 +#: js/toolbar.js:141 +#: js/turtledefs.js:583 +msgid "Save music as WAV" +msgstr "" + +#: js/toolbar.js:83 +#: js/toolbar.js:142 +#: js/turtledefs.js:587 +msgid "Save sheet music as ABC" +msgstr "" + +#: js/toolbar.js:84 +#: js/toolbar.js:143 +#: js/turtledefs.js:591 +msgid "Save sheet music as Lilypond" +msgstr "" + +#: js/toolbar.js:85 +msgid "Save sheet music as MusicXML" +msgstr "" + +#: js/toolbar.js:86 +#: js/toolbar.js:144 +#: js/toolbar.js:152 +#: js/toolbar.js:207 +#: js/toolbar.js:263 +#: js/turtledefs.js:562 +#: js/turtledefs.js:595 +msgid "Save block artwork as SVG" +msgstr "" + +#: js/toolbar.js:87 +#: js/toolbar.js:145 +#: js/toolbar.js:153 +#: js/toolbar.js:208 +#: js/toolbar.js:264 +#: js/turtles.js:911 +msgid "Confirm" +msgstr "" + +#: js/toolbar.js:88 +#: js/toolbar.js:154 +#: js/toolbar.js:209 +#: js/toolbar.js:265 +msgid "English (United States)" +msgstr "" + +#: js/toolbar.js:89 +#: js/toolbar.js:155 +#: js/toolbar.js:210 +#: js/toolbar.js:266 +msgid "English (United Kingdom)" +msgstr "" + +#: js/toolbar.js:90 +#: js/toolbar.js:156 +#: js/toolbar.js:211 +#: js/toolbar.js:267 +msgid "日本語" +msgstr "" + +#: js/toolbar.js:91 +msgid "한국어" +msgstr "" + +#: js/toolbar.js:92 +#: js/toolbar.js:158 +#: js/toolbar.js:213 +#: js/toolbar.js:269 +msgid "español" +msgstr "" + +#: js/toolbar.js:93 +#: js/toolbar.js:159 +#: js/toolbar.js:214 +#: js/toolbar.js:270 +msgid "português" +msgstr "" + +#: js/toolbar.js:94 +#: js/toolbar.js:160 +#: js/toolbar.js:215 +#: js/toolbar.js:271 +msgid "にほんご" +msgstr "" + +#: js/toolbar.js:95 +#: js/toolbar.js:161 +#: js/toolbar.js:216 +#: js/toolbar.js:272 +msgid "中文" +msgstr "" + +#: js/toolbar.js:96 +#: js/toolbar.js:162 +#: js/toolbar.js:217 +#: js/toolbar.js:273 +msgid "ภาษาไทย" +msgstr "" + +#: js/toolbar.js:97 +#: js/toolbar.js:163 +#: js/toolbar.js:218 +#: js/toolbar.js:274 +msgid "aymara" +msgstr "" + +#: js/toolbar.js:98 +#: js/toolbar.js:164 +#: js/toolbar.js:219 +#: js/toolbar.js:275 +msgid "quechua" +msgstr "" + +#: js/toolbar.js:99 +#: js/toolbar.js:165 +#: js/toolbar.js:220 +#: js/toolbar.js:276 +msgid "guarani" +msgstr "" + +#: js/toolbar.js:100 +#: js/toolbar.js:166 +#: js/toolbar.js:221 +#: js/toolbar.js:277 +msgid "हिंदी" +msgstr "" + +#: js/toolbar.js:101 +#: js/toolbar.js:168 +#: js/toolbar.js:222 +#: js/toolbar.js:279 +msgid "igbo" +msgstr "" + +#: js/toolbar.js:102 +#: js/toolbar.js:169 +#: js/toolbar.js:223 +#: js/toolbar.js:280 +msgid "عربى" +msgstr "" + +#: js/toolbar.js:103 +#: js/toolbar.js:167 +#: js/toolbar.js:224 +#: js/toolbar.js:278 +msgid "తెలుగు" +msgstr "" + +#: js/toolbar.js:104 +#: js/toolbar.js:170 +#: js/toolbar.js:225 +#: js/toolbar.js:281 +msgid "עִברִית" +msgstr "" + +#: js/toolbar.js:113 +#: js/toolbar.js:114 +#: js/toolbar.js:178 +#: js/toolbar.js:179 +#: js/toolbar.js:234 +#: js/toolbar.js:235 +msgid "Full Screen" +msgstr "" + +#: js/toolbar.js:148 +#: js/toolbar.js:151 +#: js/toolbar.js:203 +#: js/toolbar.js:206 +#: js/toolbar.js:259 +#: js/toolbar.js:262 +#: js/turtledefs.js:558 +msgid "Save turtle artwork as PNG" +msgstr "" + +#: js/toolbar.js:150 +#: js/toolbar.js:205 +#: js/toolbar.js:261 +#: js/turtledefs.js:554 +msgid "Save turtle artwork as SVG" +msgstr "" + +#: js/toolbar.js:157 +#: js/toolbar.js:212 +#: js/toolbar.js:268 +msgid "한국인" +msgstr "" + +#: js/toolbar.js:174 +#: js/toolbar.js:230 +msgid "About Turtle Blocks" +msgstr "" + +#: js/toolbar.js:446 +#: js/toolbar.js:457 +#: js/toolbar.js:497 +msgid "Turtle Wrap Off" +msgstr "" + +#: js/toolbar.js:466 +#: js/toolbar.js:506 +msgid "Turtle Wrap On" +msgstr "" + +#: js/turtle-painter.js:1192 +#: js/turtle-painter.js:1193 +#: js/turtles.js:118 +#: js/block-verbose.js:1623 +#: js/block.js:1587 +#: js/lilypond.js:749 +#: js/lilypond.js:913 +#: js/lilypond.js:951 +#: js/logo.js:1184 +#: js/blocks/ActionBlocks.js:1223 +#: js/blocks/ProgramBlocks.js:1267 +msgid "start" +msgstr "" + +#: js/turtledefs.js:40 +#.TRANS: put the URL to the guide here, e.g., https://github.com/sugarlabs/turtleblocksjs/tree/master/guide/README.md +msgid "guide url" +msgstr "" + +#: js/turtledefs.js:85 +#: js/turtledefs.js:437 +msgid "Turtle Blocks is a Logo-inspired turtle that draws colorful pictures with snap-together visual-programming blocks." +msgstr "" + +#: js/turtledefs.js:118 +#: js/turtledefs.js:220 +msgid "search" +msgstr "" + +#: js/turtledefs.js:120 +#: js/turtledefs.js:222 +#: js/blocks/MeterBlocks.js:1343 +#: js/blocks/WidgetBlocks.js:522 +#.TRANS: musical meter (time signature), e.g., 4:4 +msgid "meter" +msgstr "" + +#: js/turtledefs.js:122 +#: js/turtledefs.js:224 +msgid "intervals" +msgstr "" + +#: js/turtledefs.js:124 +#: js/turtledefs.js:226 +msgid "ornament" +msgstr "" + +#: js/turtledefs.js:125 +#: js/turtledefs.js:227 +#: js/blocks/VolumeBlocks.js:362 +#: js/blocks/VolumeBlocks.js:502 +#: js/blocks/VolumeBlocks.js:545 +msgid "volume" +msgstr "" + +#: js/turtledefs.js:126 +#: js/turtledefs.js:228 +#: js/block-verbose.js:1700 +#: js/block-verbose.js:2626 +#: js/block.js:1664 +#: js/block.js:2554 +#: js/lilypond.js:732 +#: js/lilypond.js:897 +#: js/lilypond.js:941 +#: js/palette.js:577 +#: js/blocks/RhythmBlocks.js:766 +#: js/blocks/DrumBlocks.js:477 +#: js/blocks/VolumeBlocks.js:502 +#: js/widgets/phrasemaker.js:1038 +msgid "drum" +msgstr "" + +#: js/turtledefs.js:129 +#: js/turtledefs.js:231 +msgid "boxes" +msgstr "" + +#: js/turtledefs.js:130 +#: js/turtledefs.js:232 +msgid "widgets" +msgstr "" + +#: js/turtledefs.js:131 +#: js/turtledefs.js:233 +#: js/widgets/phrasemaker.js:1039 +msgid "graphics" +msgstr "" + +#: js/turtledefs.js:134 +#: js/turtledefs.js:236 +msgid "boolean" +msgstr "" + +#: js/turtledefs.js:137 +#: js/turtledefs.js:239 +#: js/blocks/HeapBlocks.js:59 +#: js/widgets/status.js:147 +msgid "heap" +msgstr "" + +#: js/turtledefs.js:138 +#: js/turtledefs.js:240 +#: js/blocks/DictBlocks.js:142 +#: js/blocks/ProgramBlocks.js:495 +msgid "dictionary" +msgstr "" + +#: js/turtledefs.js:139 +#: js/turtledefs.js:241 +msgid "ensemble" +msgstr "" + +#: js/turtledefs.js:140 +#: js/turtledefs.js:242 +msgid "extras" +msgstr "" + +#: js/turtledefs.js:142 +#: js/turtledefs.js:244 +#.TRANS: program as in computer program +#.TRANS: program as in computer program +msgid "program" +msgstr "" + +#: js/turtledefs.js:143 +#: js/turtledefs.js:245 +msgid "my blocks" +msgstr "" + +#: js/turtledefs.js:185 +#: js/turtledefs.js:281 +msgid "artwork" +msgstr "" + +#: js/turtledefs.js:185 +#: js/turtledefs.js:281 +msgid "logic" +msgstr "" + +#: js/turtledefs.js:185 +#: js/turtledefs.js:281 +msgid "music" +msgstr "" + +#: js/turtledefs.js:187 +#: js/turtledefs.js:463 +msgid "Music Blocks is a collection of tools for exploring fundamental musical concepts in a fun way." +msgstr "" + +#: js/turtledefs.js:436 +msgid "Welcome to Turtle Blocks" +msgstr "" + +#: js/turtledefs.js:438 +#: js/turtledefs.js:465 +#: js/turtledefs.js:774 +#: js/turtledefs.js:805 +msgid "The current version is" +msgstr "" + +#: js/turtledefs.js:446 +#: js/turtledefs.js:483 +msgid "Click the run button to run the project in fast mode." +msgstr "" + +#: js/turtledefs.js:452 +msgid "Stop the turtle." +msgstr "" + +#: js/turtledefs.js:454 +#: js/turtledefs.js:491 +msgid "You can also type Alt-S to stop." +msgstr "" + +#: js/turtledefs.js:462 +#: js/widgets/help.js:333 +msgid "Welcome to Music Blocks" +msgstr "" + +#: js/turtledefs.js:472 +#: js/widgets/help.js:334 +msgid "Meet Mr. Mouse!" +msgstr "" + +#: js/turtledefs.js:473 +msgid "Mr Mouse is our Music Blocks conductor." +msgstr "" + +#: js/turtledefs.js:475 +msgid "Mr Mouse encourages you to explore Music Blocks." +msgstr "" + +#: js/turtledefs.js:477 +msgid "Let us start our tour!" +msgstr "" + +#: js/turtledefs.js:489 +msgid "Stop the music (and the mice)." +msgstr "" + +#: js/turtledefs.js:499 +msgid "Record your project as video." +msgstr "" + +#: js/turtledefs.js:505 +msgid "Toggle Fullscreen mode." +msgstr "" + +#: js/turtledefs.js:511 +msgid "Initialize a new project." +msgstr "" + +#: js/turtledefs.js:517 +msgid "You can also load projects from the file system." +msgstr "" + +#: js/turtledefs.js:522 +#: planet/js/StringHelper.js:46 +msgid "Delete" +msgstr "" + +#: js/turtledefs.js:523 +msgid "To delete a block, just right-click on it, then you will be able to see the delete option" +msgstr "" + +#: js/turtledefs.js:528 +#: js/activity.js:2649 +#: planet/js/LocalCard.js:31 +msgid "Copy" +msgstr "" + +#: js/turtledefs.js:529 +msgid "To copy a block, just right-click on it, then you will be able to see the copy option" +msgstr "" + +#: js/turtledefs.js:534 +#: js/piemenus.js:3411 +msgid "Extract" +msgstr "" + +#: js/turtledefs.js:535 +msgid "To extract a block, just right-click on it, then you will be able to see the extract option" +msgstr "" + +#: js/turtledefs.js:542 +#: js/turtledefs.js:552 +#: js/turtledefs.js:573 +msgid "Save your project to a file." +msgstr "" + +#: js/turtledefs.js:549 +#: js/turtledefs.js:570 +msgid "save" +msgstr "" + +#: js/turtledefs.js:556 +#: js/turtledefs.js:577 +msgid "Save graphics from your project to as SVG." +msgstr "" + +#: js/turtledefs.js:560 +#: js/turtledefs.js:581 +msgid "Save graphics from your project as PNG." +msgstr "" + +#: js/turtledefs.js:564 +#: js/turtledefs.js:597 +msgid "Save block artwork as an SVG file." +msgstr "" + +#: js/turtledefs.js:585 +msgid "Save audio from your project as WAV." +msgstr "" + +#: js/turtledefs.js:589 +msgid "Save your project to as an ABC file." +msgstr "" + +#: js/turtledefs.js:593 +msgid "Save your project to as a Lilypond file." +msgstr "" + +#: js/turtledefs.js:604 +msgid "Load samples from server" +msgstr "" + +#: js/turtledefs.js:605 +msgid "This button opens a viewer for loading example projects." +msgstr "" + +#: js/turtledefs.js:611 +msgid "Palette buttons" +msgstr "" + +#: js/turtledefs.js:612 +msgid "This toolbar contains the palette buttons including Rhythm Pitch Tone Action and more." +msgstr "" + +#: js/turtledefs.js:614 +msgid "Click to show the palettes of blocks and drag blocks from the palettes onto the canvas to use them." +msgstr "" + +#: js/turtledefs.js:620 +msgid "Cartesian/Polar" +msgstr "" + +#: js/turtledefs.js:621 +msgid "Show or hide a coordinate grid." +msgstr "" + +#: js/turtledefs.js:626 +#: js/turtles.js:902 +msgid "Clean" +msgstr "" + +#: js/turtledefs.js:627 +msgid "Clear the screen and return the mice to their initial positions." +msgstr "" + +#: js/turtledefs.js:632 +#: js/turtles.js:955 +msgid "Collapse" +msgstr "" + +#: js/turtledefs.js:633 +msgid "Collapse the graphics window." msgstr "" -#: js/palette.js:571 -msgid "grid" +#: js/turtledefs.js:638 +#: js/activity.js:5684 +msgid "Home" msgstr "" -#: js/palette.js:577 -#: js/block.js:1540 -#: js/block.js:2343 -#: js/turtledefs.js:126 -#: js/turtledefs.js:228 -#: js/lilypond.js:740 -#: js/lilypond.js:905 -#: js/lilypond.js:949 -#: js/DrumBlocks.js:486 -#: js/RhythmBlocks.js:766 -#: js/VolumeBlocks.js:502 -#: js/phrasemaker.js:823 -msgid "drum" +#: js/turtledefs.js:639 +msgid "Return all blocks to the center of the screen." msgstr "" -#: js/palette.js:580 -msgid "effect" +#: js/turtledefs.js:644 +msgid "Show/hide blocks" msgstr "" -#: js/palette.js:586 -msgid "sargam" +#: js/turtledefs.js:645 +msgid "Hide or show the blocks and the palettes." msgstr "" -#: js/palette.js:589 -#: js/activity.js:1833 -#: js/RhythmBlocks.js:923 -#: js/PitchBlocks.js:442 -#: js/PitchBlocks.js:1748 -#.TRANS: a numeric mapping of the notes in an octave based on the musical mode -msgid "scale degree" +#: js/turtledefs.js:650 +msgid "Expand/collapse collapsable blocks" msgstr "" -#: js/palette.js:592 -#: js/activity.js:1860 -msgid "mode name" +#: js/turtledefs.js:651 +msgid "Expand or collapse start and action stacks." msgstr "" -#: js/palette.js:595 -#: js/activity.js:1839 -msgid "invert mode" +#: js/turtledefs.js:658 +#: js/activity.js:5704 +msgid "Decrease block size" msgstr "" -#: js/palette.js:598 -#: js/activity.js:1836 -msgid "voice name" +#: js/turtledefs.js:659 +msgid "Decrease the size of the blocks." msgstr "" -#: js/palette.js:601 -#: js/PitchBlocks.js:1181 -msgid "custom pitch" +#: js/turtledefs.js:664 +#: js/activity.js:5710 +msgid "Increase block size" msgstr "" -#: js/palette.js:605 -#: js/block.js:1456 -#: js/block.js:1575 -#: js/WidgetBlocks.js:218 -#: js/IntervalsBlocks.js:63 -msgid "temperament" +#: js/turtledefs.js:665 +msgid "Increase the size of the blocks." msgstr "" -#: js/palette.js:609 -msgid "accidental" +#: js/turtledefs.js:670 +msgid "Expand/collapse option toolbar" msgstr "" -#: js/palette.js:615 -#: js/activity.js:1866 -msgid "interval name" +#: js/turtledefs.js:671 +msgid "Click this button to expand or collapse the auxillary toolbar." msgstr "" -#: js/palette.js:633 -#: js/PitchBlocks.js:405 -msgid "pitch converter" +#: js/turtledefs.js:676 +msgid "Run slow" msgstr "" -#: js/rubrics.js:522 -#: js/turtledefs.js:119 -#: js/turtledefs.js:221 -#: js/RhythmBlockPaletteBlocks.js:52 -#: js/RhythmBlockPaletteBlocks.js:233 -#: js/ProgramBlocks.js:745 -#: js/rhythmruler.js:1670 -#: js/rhythmruler.js:1677 -#: js/rhythmruler.js:1745 -#: js/rhythmruler.js:1752 -#: js/rhythmruler.js:1830 -#.TRANS: an arrangement of notes based on duration -msgid "rhythm" +#: js/turtledefs.js:677 +msgid "Click to run the project in slow mode." msgstr "" -#: js/rubrics.js:523 -#: js/block.js:2339 -#: js/turtledefs.js:121 -#: js/turtledefs.js:223 -#: js/IntervalsBlocks.js:63 -#: js/PitchBlocks.js:1801 -#: js/PitchBlocks.js:1814 -#: js/SensorsBlocks.js:178 -#: js/phrasemaker.js:821 -#: js/musickeyboard.js:1653 -#.TRANS: pitch number -#.TRANS: we specify pitch in terms of a name and an octave. The name can be CDEFGAB or Do Re Mi Fa Sol La Ti. Octave is a number between 1 and 8. -msgid "pitch" +#: js/turtledefs.js:683 +msgid "Click to run the project step by step." msgstr "" -#: js/rubrics.js:524 -#: js/turtledefs.js:123 -#: js/turtledefs.js:225 -msgid "tone" +#: js/turtledefs.js:690 +msgid "Display statistics about your Music project." msgstr "" -#: js/rubrics.js:525 -#: js/lilypond.js:613 -#: js/lilypond.js:912 -#: js/lilypond.js:918 -#: js/lilypond.js:956 -msgid "mouse" +#: js/turtledefs.js:697 +msgid "Delete a selected plugin." msgstr "" -#: js/rubrics.js:526 -#: js/turtledefs.js:132 -#: js/turtledefs.js:234 -#: js/phrasemaker.js:825 -msgid "pen" +#: js/turtledefs.js:704 +msgid "Enable scrolling" msgstr "" -#: js/rubrics.js:527 -#: js/turtledefs.js:133 -#: js/turtledefs.js:235 -#: js/NumberBlocks.js:905 -#: js/PitchBlocks.js:1679 -#: js/PitchBlocks.js:1720 -msgid "number" +#: js/turtledefs.js:705 +msgid "You can scroll the blocks on the canvas." msgstr "" -#: js/rubrics.js:528 -#: js/turtledefs.js:127 -#: js/turtledefs.js:229 -msgid "flow" +#: js/turtledefs.js:714 +msgid "Wrap Turtle" msgstr "" -#: js/rubrics.js:530 -#: js/turtledefs.js:136 -#: js/turtledefs.js:238 -msgid "sensors" +#: js/turtledefs.js:715 +msgid "Turn Turtle wrapping On or Off." msgstr "" -#: js/rubrics.js:531 -#: js/turtledefs.js:135 -#: js/turtledefs.js:237 -#: js/MediaBlocks.js:930 -msgid "media" +#: js/turtledefs.js:725 +msgid "Restore blocks from the trash." msgstr "" -#: js/rubrics.js:532 -msgid "mice" +#: js/turtledefs.js:732 +msgid "Switch mode" msgstr "" -#: js/macros.js:711 -#: js/musicutils.js:783 -#: js/synthutils.js:181 -#.TRANS: animal sound effect -msgid "duck" +#: js/turtledefs.js:733 +msgid "Switch between beginner and advance modes." msgstr "" -#: js/toolbar.js:46 -#: js/toolbar.js:107 -msgid "About Music Blocks" +#: js/turtledefs.js:739 +msgid "Select your language preference." msgstr "" -#: js/toolbar.js:47 -#: js/toolbar.js:108 -#: js/toolbar.js:172 -#: js/toolbar.js:228 -#: js/turtledefs.js:445 -#: js/turtledefs.js:482 -#: js/activity.js:2281 -#: js/activity.js:2289 -#: js/activity.js:2520 -#: js/modewidget.js:77 -#: js/pitchstaircase.js:121 -#: js/phrasemaker.js:302 -#: js/phrasemaker.js:312 -#: js/phrasemaker.js:314 -#: js/phrasemaker.js:3901 -#: js/phrasemaker.js:4061 -#: js/phrasemaker.js:4066 -#: js/phrasemaker.js:4068 -#: js/phrasemaker.js:4183 -#: js/pitchdrummatrix.js:81 -#: js/pitchdrummatrix.js:574 -#: js/pitchdrummatrix.js:576 -#: js/pitchdrummatrix.js:628 -#: js/pitchdrummatrix.js:630 -#: js/pitchdrummatrix.js:645 -#: js/pitchdrummatrix.js:647 -#: js/pitchdrummatrix.js:674 -#: js/pitchdrummatrix.js:676 -#: js/temperament.js:477 -#: js/temperament.js:480 -#: js/temperament.js:540 -#: js/temperament.js:542 -#: js/temperament.js:1835 -#: js/temperament.js:1837 -#: js/temperament.js:1986 -#: js/temperament.js:1988 -#: js/musickeyboard.js:522 -#: js/musickeyboard.js:682 -#: js/musickeyboard.js:684 -#: js/musickeyboard.js:756 -#: js/musickeyboard.js:758 -#: js/rhythmruler.js:298 -#: js/rhythmruler.js:300 -#: js/rhythmruler.js:314 -#: js/rhythmruler.js:316 -#: js/sampler.js:96 -#: js/sampler.js:98 -#: js/sampler.js:229 -#: js/sampler.js:235 -#: js/sampler.js:237 -#: js/tempo.js:84 -#: js/tempo.js:86 -#: js/timbre.js:432 -#: js/timbre.js:434 -#: js/timbre.js:465 -#: js/timbre.js:467 -#: js/timbre.js:746 -#: js/meterwidget.js:80 -#: js/arpeggio.js:90 -#: js/arpeggio.js:547 -#: js/arpeggio.js:549 -#: js/arpeggio.js:644 -#: js/arpeggio.js:646 -msgid "Play" +#: js/turtledefs.js:745 +msgid "Keyboard shortcuts" msgstr "" -#: js/toolbar.js:48 -#: js/toolbar.js:109 -#: js/toolbar.js:173 -#: js/toolbar.js:229 -#: js/turtledefs.js:451 -#: js/turtledefs.js:488 -#: js/activity.js:2297 -#: js/modewidget.js:99 -#: js/modewidget.js:101 -#: js/phrasemaker.js:323 -#: js/phrasemaker.js:325 -#: js/pitchdrummatrix.js:561 -#: js/pitchdrummatrix.js:563 -#: js/temperament.js:1820 -#: js/temperament.js:1822 -#: js/meterwidget.js:101 -#: js/meterwidget.js:103 -#: js/arpeggio.js:534 -#: js/arpeggio.js:536 -msgid "Stop" +#: js/turtledefs.js:746 +msgid "You can type d to create a do block and r to create a re block etc." msgstr "" -#: js/toolbar.js:49 -#: js/toolbar.js:110 -#: js/toolbar.js:174 -#: js/toolbar.js:230 -#: js/turtledefs.js:498 -msgid "Record" +#: js/turtledefs.js:753 +msgid "Show these messages." msgstr "" -#: js/toolbar.js:50 -#: js/toolbar.js:51 -msgid "Full screen" +#: js/turtledefs.js:759 +#: js/turtledefs.js:790 +#: js/widgets/help.js:335 +msgid "Guide" msgstr "" -#: js/toolbar.js:52 -#: js/toolbar.js:112 -#: js/toolbar.js:177 -#: js/toolbar.js:232 -#: js/turtledefs.js:504 -msgid "Toggle Fullscreen" +#: js/turtledefs.js:760 +msgid "A detailed guide to Turtle Blocks is available." msgstr "" -#: js/toolbar.js:53 -#: js/toolbar.js:113 -#: js/toolbar.js:178 -#: js/toolbar.js:233 -#: js/turtledefs.js:510 -#: js/StringHelper.js:33 -msgid "New project" +#: js/turtledefs.js:764 +msgid "Turtle Blocks Guide" msgstr "" -#: js/toolbar.js:54 -#: js/toolbar.js:114 -#: js/toolbar.js:179 -#: js/toolbar.js:234 -#: js/turtledefs.js:516 -msgid "Load project from file" +#: js/turtledefs.js:767 +#: js/turtledefs.js:798 +#: js/widgets/help.js:336 +msgid "About" msgstr "" -#: js/toolbar.js:55 -#: js/toolbar.js:115 -#: js/toolbar.js:116 -#: js/toolbar.js:180 -#: js/toolbar.js:235 -#: js/turtledefs.js:541 -#: js/turtledefs.js:550 -#: js/turtledefs.js:571 -msgid "Save project" +#: js/turtledefs.js:768 +msgid "Turtle Blocks is an open source collection of tools for exploring musical concepts." msgstr "" -#: js/toolbar.js:56 -#: js/toolbar.js:75 -#: js/toolbar.js:77 -#: js/toolbar.js:135 -#: js/toolbar.js:144 -#: js/toolbar.js:146 -#: js/toolbar.js:181 -#: js/toolbar.js:199 -#: js/toolbar.js:201 -#: js/toolbar.js:236 -#: js/toolbar.js:254 -#: js/toolbar.js:256 -msgid "Save project as HTML" +#: js/turtledefs.js:770 +msgid "A full list of contributors can be found in the Turtle Blocks GitHub repository." +msgstr "" + +#: js/turtledefs.js:772 +msgid "Turtle Blocks is licensed under the AGPL." +msgstr "" + +#: js/turtledefs.js:780 +msgid "Turtle Blocks GitHub repository" +msgstr "" + +#: js/turtledefs.js:783 +#: js/turtledefs.js:814 +#: js/widgets/help.js:337 +#: js/widgets/help.js:359 +msgid "Congratulations." +msgstr "" + +#: js/turtledefs.js:784 +msgid "You have finished the tour. Please enjoy Turtle Blocks!" +msgstr "" + +#: js/turtledefs.js:791 +msgid "A detailed guide to Music Blocks is available." +msgstr "" + +#: js/turtledefs.js:799 +msgid "Music Blocks is an open source collection of tools for exploring musical concepts." +msgstr "" + +#: js/turtledefs.js:801 +msgid "A full list of contributors can be found in the Music Blocks GitHub repository." +msgstr "" + +#: js/turtledefs.js:803 +msgid "Music Blocks is licensed under the AGPL." +msgstr "" + +#: js/turtledefs.js:811 +msgid "Music Blocks GitHub repository" +msgstr "" + +#: js/turtledefs.js:815 +msgid "You have finished the tour. Please enjoy Music Blocks!" +msgstr "" + +#: js/turtles.js:882 +msgid "Grid" +msgstr "" + +#: js/turtles.js:1024 +msgid "Expand" +msgstr "" + +#: js/block-verbose.js:1616 +#: js/block-verbose.js:1735 +#: js/block.js:1580 +#: js/block.js:1699 +#: js/palette.js:605 +#: js/blocks/IntervalsBlocks.js:63 +#: js/blocks/WidgetBlocks.js:259 +msgid "temperament" +msgstr "" + +#: js/block-verbose.js:1630 +#: js/block.js:1594 +msgid "matrix" msgstr "" -#: js/toolbar.js:57 -#: js/toolbar.js:117 -#: js/toolbar.js:182 -#: js/toolbar.js:237 -msgid "Find and share projects" +#: js/block-verbose.js:1637 +#: js/block.js:1601 +#: js/blocks/WidgetBlocks.js:1509 +#: plugins/rodi.rtp:324 +msgid "status" msgstr "" -#: js/toolbar.js:58 -#: js/toolbar.js:118 -#: js/toolbar.js:183 -#: js/toolbar.js:238 -msgid "Offline. Sharing is unavailable" +#: js/block-verbose.js:1644 +#: js/block.js:1608 +msgid "drum mapper" msgstr "" -#: js/toolbar.js:59 -#: js/toolbar.js:119 -#: js/toolbar.js:184 -#: js/toolbar.js:239 -msgid "Auxiliary menu" +#: js/block-verbose.js:1651 +#: js/block.js:1615 +msgid "ruler" msgstr "" -#: js/toolbar.js:61 -#: js/toolbar.js:121 -#: js/toolbar.js:186 -#: js/toolbar.js:241 -msgid "Run slowly" +#: js/block-verbose.js:1658 +#: js/block.js:1622 +#: js/blocks/WidgetBlocks.js:397 +#.TRANS: timbre is the character or quality of a musical sound +msgid "timbre" msgstr "" -#: js/toolbar.js:62 -#: js/toolbar.js:122 -#: js/toolbar.js:187 -#: js/toolbar.js:242 -#: js/turtledefs.js:682 -msgid "Run step by step" +#: js/block-verbose.js:1665 +#: js/block.js:1629 +msgid "stair" msgstr "" -#: js/toolbar.js:63 -#: js/toolbar.js:123 -#: js/toolbar.js:188 -#: js/toolbar.js:243 -#: js/turtledefs.js:689 -msgid "Display statistics" +#: js/block-verbose.js:1672 +#: js/block.js:1636 +#: js/blocks/WidgetBlocks.js:707 +#.TRANS: the speed at music is should be played. +msgid "tempo" msgstr "" -#: js/toolbar.js:64 -#: js/toolbar.js:124 -#: js/toolbar.js:189 -#: js/toolbar.js:244 -msgid "Load plugin" +#: js/block-verbose.js:1679 +#: js/block-verbose.js:1742 +#: js/block.js:1643 +#: js/block.js:1706 +#: js/blocks/IntervalsBlocks.js:1464 +#.TRANS: mode, e.g., Major in C Major +msgid "mode" msgstr "" -#: js/toolbar.js:65 -#: js/toolbar.js:125 -#: js/toolbar.js:190 -#: js/toolbar.js:245 -#: js/turtledefs.js:696 -msgid "Delete plugin" +#: js/block-verbose.js:1686 +#: js/block.js:1650 +msgid "slider" msgstr "" -#: js/toolbar.js:66 -#: js/toolbar.js:126 -#: js/toolbar.js:191 -#: js/toolbar.js:246 -msgid "Enable horizontal scrolling" +#: js/block-verbose.js:1693 +#: js/block.js:1657 +#: js/blocks/SensorsBlocks.js:1001 +msgid "keyboard" msgstr "" -#: js/toolbar.js:67 -#: js/toolbar.js:127 -#: js/toolbar.js:192 -#: js/toolbar.js:247 -msgid "Disable horizontal scrolling" +#: js/block-verbose.js:1707 +#: js/block.js:1671 +#: js/blocks/WidgetBlocks.js:1190 +#: js/blocks/WidgetBlocks.js:1228 +#.TRANS: widget for subdividing a measure into distinct rhythmic elements +msgid "rhythm maker" msgstr "" -#: js/toolbar.js:68 -#: js/toolbar.js:128 -#: js/toolbar.js:193 -#: js/toolbar.js:248 -#: js/LocalCard.js:54 -#: js/StringHelper.js:71 -msgid "Merge with current project" +#: js/block-verbose.js:1714 +#: js/block-verbose.js:2457 +#: js/block-verbose.js:2514 +#: js/block.js:1678 +#: js/block.js:2385 +#: js/block.js:2442 +#: js/blocks/MeterBlocks.js:1367 +#: js/blocks/OrnamentBlocks.js:220 +#: js/blocks/OrnamentBlocks.js:312 +#: js/blocks/RhythmBlocks.js:33 +#: js/blocks/RhythmBlocks.js:356 +#: js/blocks/RhythmBlocks.js:766 +#: js/blocks/RhythmBlocks.js:806 +#: js/blocks/RhythmBlockPaletteBlocks.js:70 +#: js/blocks/RhythmBlockPaletteBlocks.js:252 +#: js/blocks/RhythmBlockPaletteBlocks.js:485 +#: js/blocks/RhythmBlockPaletteBlocks.js:554 +#: js/blocks/RhythmBlockPaletteBlocks.js:605 +#: js/blocks/RhythmBlockPaletteBlocks.js:875 +#: js/turtleactions/DictActions.js:85 +#: js/widgets/phrasemaker.js:942 +#: js/widgets/phrasemaker.js:2656 +#: js/widgets/phrasemaker.js:2699 +#: js/widgets/phrasemaker.js:2810 +#.TRANS: the value (e.g., 1/4 note) of the note being played. +msgid "note value" msgstr "" -#: js/toolbar.js:69 -#: js/toolbar.js:129 -msgid "Set Pitch Preview" +#: js/block-verbose.js:1721 +#: js/block-verbose.js:2382 +#: js/block-verbose.js:2405 +#: js/block.js:1685 +#: js/block.js:2310 +#: js/block.js:2333 +#: js/blocks/IntervalsBlocks.js:1071 +#: js/blocks/OrnamentBlocks.js:312 +#.TRANS: calculate a relative step between notes based on semi-tones +msgid "scalar interval" msgstr "" -#: js/toolbar.js:70 -#: js/toolbar.js:130 -#: js/toolbar.js:194 -#: js/toolbar.js:249 -msgid "Toggle JavaScript Editor" +#: js/block-verbose.js:1728 +#: js/block.js:1692 +#: js/blocks/RhythmBlocks.js:148 +msgid "milliseconds" msgstr "" -#: js/toolbar.js:71 -#: js/toolbar.js:131 -#: js/toolbar.js:195 -#: js/toolbar.js:250 -#: js/turtledefs.js:724 -msgid "Restore" +#: js/block-verbose.js:2455 +#: js/block-verbose.js:2459 +#: js/block-verbose.js:2512 +#: js/block-verbose.js:2628 +#: js/block.js:2383 +#: js/block.js:2387 +#: js/block.js:2440 +#: js/block.js:2556 +#: js/blocks/RhythmBlocks.js:712 +#: js/blocks/ProgramBlocks.js:1273 +#: js/widgets/rhythmruler.js:1183 +#: js/widgets/rhythmruler.js:1329 +msgid "silence" msgstr "" -#: js/toolbar.js:72 -#: js/toolbar.js:132 -#: js/toolbar.js:196 -#: js/toolbar.js:251 -msgid "Switch to beginner mode" +#: js/block-verbose.js:2548 +#: js/block-verbose.js:3492 +#: js/block-verbose.js:3509 +#: js/activity.js:2718 +#: js/activity.js:2769 +#: js/block.js:2476 +#: js/block.js:3416 +#: js/block.js:3433 +#: js/utils/musicutils.js:3780 +#: js/utils/musicutils.js:5273 +#.TRANS: the note names must be separated by single spaces +#.TRANS: the note names must be separated by single spaces +#.TRANS: the note names must be separated by single spaces +msgid "ti la sol fa mi re do" msgstr "" -#: js/toolbar.js:73 -#: js/toolbar.js:133 -#: js/toolbar.js:197 -#: js/toolbar.js:252 -msgid "Switch to advanced mode" +#: js/block-verbose.js:2616 +#: js/block.js:2544 +#.TRANS: scalar step +#.TRANS: scalar step +msgid "down" msgstr "" -#: js/toolbar.js:74 -#: js/toolbar.js:134 -#: js/toolbar.js:143 -#: js/toolbar.js:198 -#: js/toolbar.js:253 -#: js/turtledefs.js:738 -msgid "Select language" +#: js/block-verbose.js:2617 +#: js/block.js:2545 +msgid "up" msgstr "" -#: js/toolbar.js:76 -#: js/toolbar.js:79 -#: js/toolbar.js:137 -#: js/turtledefs.js:579 -msgid "Save mouse artwork as PNG" +#: js/block-verbose.js:3026 +#: js/block.js:2950 +msgid "Silence block cannot be removed." msgstr "" -#: js/toolbar.js:78 -#: js/toolbar.js:136 -#: js/turtledefs.js:575 -msgid "Save mouse artwork as SVG" +#: js/block-verbose.js:3824 +#: js/block.js:3748 +#: js/blocks.js:2607 +#: js/blocks.js:3218 +#: js/palette.js:618 +#: js/blocks/BooleanBlocks.js:77 +#: js/blocks/BooleanBlocks.js:167 +#: js/blocks/BooleanBlocks.js:251 +#: js/blocks/BooleanBlocks.js:335 +#: js/blocks/BooleanBlocks.js:433 +#: js/blocks/BooleanBlocks.js:539 +#: js/blocks/BooleanBlocks.js:640 +#: js/blocks/BooleanBlocks.js:741 +#: js/blocks/BooleanBlocks.js:847 +#: js/blocks/BooleanBlocks.js:948 +#: js/blocks/BooleanBlocks.js:1033 +#: js/blocks/SensorsBlocks.js:910 +msgid "true" msgstr "" -#: js/toolbar.js:80 -#: js/toolbar.js:138 -#: js/turtledefs.js:583 -msgid "Save music as WAV" +#: js/block-verbose.js:3824 +#: js/block.js:3748 +#: js/blocks.js:2609 +#: js/blocks.js:3220 +#: js/blocks/BooleanBlocks.js:79 +#: js/blocks/BooleanBlocks.js:169 +#: js/blocks/BooleanBlocks.js:253 +#: js/blocks/BooleanBlocks.js:337 +#: js/blocks/BooleanBlocks.js:435 +#: js/blocks/BooleanBlocks.js:541 +#: js/blocks/BooleanBlocks.js:642 +#: js/blocks/BooleanBlocks.js:743 +#: js/blocks/BooleanBlocks.js:849 +#: js/blocks/BooleanBlocks.js:950 +#: js/blocks/SensorsBlocks.js:912 +msgid "false" msgstr "" -#: js/toolbar.js:81 -#: js/toolbar.js:139 -#: js/turtledefs.js:587 -msgid "Save sheet music as ABC" +#: js/block-verbose.js:3835 +#: js/block-verbose.js:3848 +#: js/block.js:3759 +#: js/block.js:3772 +#: js/blocks/ExtrasBlocks.js:615 +msgid "Cartesian" msgstr "" -#: js/toolbar.js:82 -#: js/toolbar.js:140 -#: js/turtledefs.js:591 -msgid "Save sheet music as Lilypond" +#: js/block-verbose.js:3836 +#: js/block-verbose.js:3849 +#: js/block.js:3760 +#: js/block.js:3773 +#: js/blocks/ExtrasBlocks.js:619 +msgid "polar" msgstr "" -#: js/toolbar.js:83 -msgid "Save sheet music as MusicXML" +#: js/block-verbose.js:3837 +#: js/block-verbose.js:3850 +#: js/block.js:3761 +#: js/block.js:3774 +#: js/blocks/ExtrasBlocks.js:623 +msgid "Cartesian+polar" msgstr "" -#: js/toolbar.js:84 -#: js/toolbar.js:141 -#: js/toolbar.js:149 -#: js/toolbar.js:204 -#: js/toolbar.js:259 -#: js/turtledefs.js:562 -#: js/turtledefs.js:595 -msgid "Save block artwork as SVG" +#: js/block-verbose.js:3838 +#: js/block-verbose.js:3857 +#: js/block.js:3762 +#: js/block.js:3781 +#: js/blocks/ExtrasBlocks.js:652 +msgid "none" msgstr "" -#: js/toolbar.js:85 -#: js/toolbar.js:142 -#: js/toolbar.js:150 -#: js/toolbar.js:205 -#: js/toolbar.js:260 -msgid "Confirm" +#: js/block-verbose.js:3851 +#: js/block.js:3775 +#: js/blocks/ExtrasBlocks.js:628 +msgid "treble" msgstr "" -#: js/toolbar.js:86 -#: js/toolbar.js:151 -#: js/toolbar.js:206 -#: js/toolbar.js:261 -msgid "English (United States)" +#: js/block-verbose.js:3852 +#: js/block.js:3776 +#: js/blocks/ExtrasBlocks.js:632 +msgid "grand staff" msgstr "" -#: js/toolbar.js:87 -#: js/toolbar.js:152 -#: js/toolbar.js:207 -#: js/toolbar.js:262 -msgid "English (United Kingdom)" +#: js/block-verbose.js:3853 +#: js/block.js:3777 +#: js/blocks/ExtrasBlocks.js:636 +msgid "mezzo-soprano" msgstr "" -#: js/toolbar.js:88 -#: js/toolbar.js:153 -#: js/toolbar.js:208 -#: js/toolbar.js:263 -msgid "日本語" +#: js/block-verbose.js:3854 +#: js/block.js:3778 +#: js/blocks/ExtrasBlocks.js:640 +msgid "alto" msgstr "" -#: js/toolbar.js:89 -msgid "한국어" +#: js/block-verbose.js:3855 +#: js/block.js:3779 +#: js/blocks/ExtrasBlocks.js:644 +msgid "tenor" msgstr "" -#: js/toolbar.js:90 -#: js/toolbar.js:155 -#: js/toolbar.js:210 -#: js/toolbar.js:265 -msgid "español" +#: js/block-verbose.js:3856 +#: js/block.js:3780 +#: js/utils/musicutils.js:1115 +#: js/utils/synthutils.js:80 +#: js/blocks/ExtrasBlocks.js:648 +#.TRANS: musical instrument +msgid "bass" msgstr "" -#: js/toolbar.js:91 -#: js/toolbar.js:156 -#: js/toolbar.js:211 -#: js/toolbar.js:266 -msgid "português" +#: js/block-verbose.js:3901 +#: js/block.js:3825 +#: js/blocks.js:2600 +#: js/blocks.js:3211 +msgid "on2" msgstr "" -#: js/toolbar.js:92 -#: js/toolbar.js:157 -#: js/toolbar.js:212 -#: js/toolbar.js:267 -msgid "にほんご" +#: js/block-verbose.js:3903 +#: js/block.js:3827 +#: js/blocks.js:2602 +#: js/blocks.js:3213 +msgid "off" msgstr "" -#: js/toolbar.js:93 -#: js/toolbar.js:158 -#: js/toolbar.js:213 -#: js/toolbar.js:268 -msgid "中文" +#: js/block-verbose.js:4470 +#: js/block.js:4394 +msgid "Not a number" msgstr "" -#: js/toolbar.js:94 -#: js/toolbar.js:159 -#: js/toolbar.js:214 -#: js/toolbar.js:269 -msgid "ภาษาไทย" +#: js/block-verbose.js:4477 +#: js/block.js:4401 +msgid "Octave value must be between 1 and 10." msgstr "" -#: js/toolbar.js:95 -#: js/toolbar.js:160 -#: js/toolbar.js:215 -#: js/toolbar.js:270 -msgid "aymara" +#: js/block-verbose.js:4485 +#: js/block.js:4409 +msgid "Numbers can have at most 10 digits." msgstr "" -#: js/toolbar.js:96 -#: js/toolbar.js:161 -#: js/toolbar.js:216 -#: js/toolbar.js:271 -msgid "quechua" +#: js/activity.js:390 +#: js/activity.js:395 +msgid "Search for blocks" msgstr "" -#: js/toolbar.js:97 -#: js/toolbar.js:162 -#: js/toolbar.js:217 -#: js/toolbar.js:272 -msgid "guarani" +#: js/activity.js:1413 +msgid "Refresh your browser to change to advanced mode." msgstr "" -#: js/toolbar.js:98 -#: js/toolbar.js:163 -#: js/toolbar.js:218 -#: js/toolbar.js:273 -msgid "हिंदी" +#: js/activity.js:1418 +msgid "Refresh your browser to change to beginner mode." msgstr "" -#: js/toolbar.js:99 -#: js/toolbar.js:165 -#: js/toolbar.js:219 -#: js/toolbar.js:275 -msgid "igbo" +#: js/activity.js:1477 +msgid "Catching mice" +msgstr "" + +#: js/activity.js:1478 +msgid "Cleaning the instruments" +msgstr "" + +#: js/activity.js:1479 +msgid "Testing key pieces" +msgstr "" + +#: js/activity.js:1480 +msgid "Sight-reading" +msgstr "" + +#: js/activity.js:1481 +msgid "Combining math and music" msgstr "" -#: js/toolbar.js:100 -#: js/toolbar.js:166 -#: js/toolbar.js:220 -#: js/toolbar.js:276 -msgid "عربى" +#: js/activity.js:1482 +msgid "Generating more blocks" msgstr "" -#: js/toolbar.js:101 -#: js/toolbar.js:164 -#: js/toolbar.js:221 -#: js/toolbar.js:274 -msgid "తెలుగు" +#: js/activity.js:1483 +msgid "Do Re Mi Fa Sol La Ti Do" msgstr "" -#: js/toolbar.js:102 -#: js/toolbar.js:167 -#: js/toolbar.js:222 -#: js/toolbar.js:277 -msgid "עִברִית" +#: js/activity.js:1484 +msgid "Tuning string instruments" msgstr "" -#: js/toolbar.js:111 -#: js/toolbar.js:175 -#: js/toolbar.js:176 -#: js/toolbar.js:231 -msgid "Full Screen" +#: js/activity.js:1485 +msgid "Pressing random keys" msgstr "" -#: js/toolbar.js:145 -#: js/toolbar.js:148 -#: js/toolbar.js:200 -#: js/toolbar.js:203 -#: js/toolbar.js:255 -#: js/toolbar.js:258 -#: js/turtledefs.js:558 -msgid "Save turtle artwork as PNG" +#: js/activity.js:1663 +msgid "plugins will be removed upon restart." msgstr "" -#: js/toolbar.js:147 -#: js/toolbar.js:202 -#: js/toolbar.js:257 -#: js/turtledefs.js:554 -msgid "Save turtle artwork as SVG" +#: js/activity.js:1672 +msgid "show Cartesian" msgstr "" -#: js/toolbar.js:154 -#: js/toolbar.js:209 -#: js/toolbar.js:264 -msgid "한국인" +#: js/activity.js:2211 +#: js/palette.js:589 +#: js/blocks/RhythmBlocks.js:923 +#: js/blocks/PitchBlocks.js:442 +#: js/blocks/PitchBlocks.js:1786 +#.TRANS: a numeric mapping of the notes in an octave based on the musical mode +msgid "scale degree" msgstr "" -#: js/toolbar.js:171 -#: js/toolbar.js:227 -msgid "About Turtle Blocks" +#: js/activity.js:2214 +#: js/palette.js:598 +msgid "voice name" msgstr "" -#: js/toolbar.js:429 -#: js/toolbar.js:440 -msgid "Turtle Wrap Off" +#: js/activity.js:2217 +#: js/palette.js:595 +msgid "invert mode" msgstr "" -#: js/toolbar.js:442 -msgid "Turtle Wrap On" +#: js/activity.js:2220 +msgid "output tools" msgstr "" -#: js/block.js:1470 -msgid "matrix" +#: js/activity.js:2223 +msgid "custom note" msgstr "" -#: js/block.js:1477 -#: js/WidgetBlocks.js:1226 -#: plugins/rodi.rtp:324 -msgid "status" +#: js/activity.js:2226 +msgid "accidental name" msgstr "" -#: js/block.js:1484 -msgid "drum mapper" +#: js/activity.js:2229 +#: js/blocks/PitchBlocks.js:855 +msgid "east indian solfege" msgstr "" -#: js/block.js:1491 -msgid "ruler" +#: js/activity.js:2232 +#: js/blocks/PitchBlocks.js:869 +msgid "note name" msgstr "" -#: js/block.js:1498 -#: js/WidgetBlocks.js:327 -#.TRANS: timbre is the character or quality of a musical sound -msgid "timbre" +#: js/activity.js:2235 +#: js/blocks/IntervalsBlocks.js:94 +msgid "temperament name" msgstr "" -#: js/block.js:1505 -msgid "stair" +#: js/activity.js:2238 +#: js/palette.js:592 +msgid "mode name" msgstr "" -#: js/block.js:1512 -#: js/WidgetBlocks.js:577 -#.TRANS: the speed at music is should be played. -msgid "tempo" +#: js/activity.js:2241 +msgid "chord name" msgstr "" -#: js/block.js:1519 -#: js/block.js:1582 -#: js/IntervalsBlocks.js:1268 -#.TRANS: mode, e.g., Major in C Major -msgid "mode" +#: js/activity.js:2244 +#: js/palette.js:615 +msgid "interval name" msgstr "" -#: js/block.js:1526 -msgid "slider" +#: js/activity.js:2247 +msgid "filter type" msgstr "" -#: js/block.js:1533 -#: js/SensorsBlocks.js:1001 -msgid "keyboard" +#: js/activity.js:2250 +msgid "oscillator type" msgstr "" -#: js/block.js:1547 -#: js/WidgetBlocks.js:957 -#: js/WidgetBlocks.js:988 -#.TRANS: widget for subdividing a measure into distinct rhythmic elements -msgid "rhythm maker" +#: js/activity.js:2253 +#: js/blocks.js:2479 +#: js/blocks.js:2487 +msgid "audio file" msgstr "" -#: js/block.js:1554 -#: js/block.js:2182 -#: js/block.js:2236 -#: js/RhythmBlockPaletteBlocks.js:70 -#: js/RhythmBlockPaletteBlocks.js:251 -#: js/RhythmBlockPaletteBlocks.js:484 -#: js/RhythmBlockPaletteBlocks.js:553 -#: js/RhythmBlockPaletteBlocks.js:604 -#: js/RhythmBlockPaletteBlocks.js:874 -#: js/RhythmBlocks.js:33 -#: js/RhythmBlocks.js:356 -#: js/RhythmBlocks.js:766 -#: js/RhythmBlocks.js:806 -#: js/OrnamentBlocks.js:220 -#: js/OrnamentBlocks.js:312 -#: js/MeterBlocks.js:1367 -#: js/DictActions.js:85 -#: js/phrasemaker.js:731 -#: js/phrasemaker.js:2393 -#: js/phrasemaker.js:2436 -#: js/phrasemaker.js:2534 -#.TRANS: the value (e.g., 1/4 note) of the note being played. -msgid "note value" +#: js/activity.js:2256 +#: js/blocks/DrumBlocks.js:32 +msgid "noise name" msgstr "" -#: js/block.js:1561 -#: js/block.js:2110 -#: js/block.js:2133 -#: js/IntervalsBlocks.js:875 -#: js/OrnamentBlocks.js:312 -#.TRANS: calculate a relative step between notes based on semi-tones -msgid "scalar interval" +#: js/activity.js:2259 +#: js/blocks/DrumBlocks.js:75 +msgid "drum name" msgstr "" -#: js/block.js:1568 -#: js/RhythmBlocks.js:148 -msgid "milliseconds" +#: js/activity.js:2262 +#: js/blocks/DrumBlocks.js:119 +msgid "effects name" msgstr "" -#: js/block.js:2180 -#: js/block.js:2184 -#: js/block.js:2234 -#: js/block.js:2345 -#: js/ProgramBlocks.js:1273 -#: js/RhythmBlocks.js:712 -#: js/rhythmruler.js:834 -#: js/rhythmruler.js:961 -msgid "silence" +#: js/activity.js:2265 +msgid "wrap mode" msgstr "" -#: js/block.js:2265 -#: js/block.js:3134 -#: js/block.js:3151 -#: js/activity.js:2336 -#: js/activity.js:2387 -#: js/musicutils.js:2932 -#: js/musicutils.js:4287 -#.TRANS: the note names must be separated by single spaces -#.TRANS: the note names must be separated by single spaces -msgid "ti la sol fa mi re do" +#: js/activity.js:2268 +msgid "load file" msgstr "" -#: js/block.js:2333 -#.TRANS: scalar step -msgid "down" +#: js/activity.js:2435 +#: js/activity.js:5851 +msgid "This block is deprecated." msgstr "" -#: js/block.js:2334 -msgid "up" +#: js/activity.js:2437 +#: js/activity.js:5853 +msgid "Block cannot be found." msgstr "" -#: js/block.js:3477 -#: js/block.js:3490 -#: js/ExtrasBlocks.js:612 -msgid "Cartesian" +#: js/activity.js:2645 +msgid "Saving block artwork" msgstr "" -#: js/block.js:3478 -#: js/block.js:3491 -#: js/ExtrasBlocks.js:616 -msgid "polar" +#: js/activity.js:2656 +msgid "Erase" msgstr "" -#: js/block.js:3479 -#: js/block.js:3492 -#: js/ExtrasBlocks.js:620 -msgid "Cartesian+polar" +#: js/activity.js:2683 +#: js/activity.js:2705 +msgid "Paste" msgstr "" -#: js/block.js:3480 -#: js/block.js:3499 -#: js/ExtrasBlocks.js:649 -msgid "none" +#: js/activity.js:2687 +msgid "Save block help" msgstr "" -#: js/block.js:3493 -#: js/ExtrasBlocks.js:625 -msgid "treble" +#: js/activity.js:2772 +msgid "Jumping to the bottom of the page." msgstr "" -#: js/block.js:3494 -#: js/ExtrasBlocks.js:629 -msgid "grand staff" +#: js/activity.js:2778 +msgid "Scrolling up." msgstr "" -#: js/block.js:3495 -#: js/ExtrasBlocks.js:633 -msgid "mezzo-soprano" +#: js/activity.js:2783 +msgid "Scrolling down." msgstr "" -#: js/block.js:3496 -#: js/ExtrasBlocks.js:637 -msgid "alto" +#: js/activity.js:2788 +msgid "Extracting block" msgstr "" -#: js/block.js:3497 -#: js/ExtrasBlocks.js:641 -msgid "tenor" +#: js/activity.js:2796 +msgid "Moving block up." msgstr "" -#: js/block.js:3498 -#: js/ExtrasBlocks.js:645 -#: js/musicutils.js:736 -#: js/synthutils.js:64 -#.TRANS: musical instrument -msgid "bass" +#: js/activity.js:2817 +msgid "Moving block down." msgstr "" -#: js/block.js:4075 -msgid "Not a number" +#: js/activity.js:2838 +msgid "Moving block left." msgstr "" -#: js/block.js:4082 -msgid "Octave value must be between 1 and 10." +#: js/activity.js:2855 +msgid "Moving block right." msgstr "" -#: js/block.js:4090 -msgid "Numbers can have at most 10 digits." +#: js/activity.js:2870 +msgid "Jump to home position." msgstr "" -#: js/notation.js:353 -msgid "Lilypond cannot process pickup of " +#: js/activity.js:2897 +msgid "Hide blocks" msgstr "" -#: js/turtledefs.js:40 -#.TRANS: put the URL to the guide here, e.g., https://github.com/sugarlabs/turtleblocksjs/tree/master/guide/README.md -msgid "guide url" +#: js/activity.js:4500 +msgid "Click the run button to run the project." msgstr "" -#: js/turtledefs.js:85 -#: js/turtledefs.js:437 -msgid "Turtle Blocks is a Logo-inspired turtle that draws colorful pictures with snap-together visual-programming blocks." +#: js/activity.js:5692 +msgid "Show/hide block" msgstr "" -#: js/turtledefs.js:118 -#: js/turtledefs.js:220 -msgid "search" +#: js/activity.js:5698 +msgid "Expand/collapse blocks" msgstr "" -#: js/turtledefs.js:120 -#: js/turtledefs.js:222 -#: js/WidgetBlocks.js:437 -#: js/MeterBlocks.js:1343 -#.TRANS: musical meter (time signature), e.g., 4:4 -msgid "meter" +#: js/activity.js:5976 +msgid "Could not parse JSON input." msgstr "" -#: js/turtledefs.js:122 -#: js/turtledefs.js:224 -msgid "intervals" +#: js/activity.js:6475 +#: js/activity.js:6580 +#: js/activity.js:6631 +msgid "Cannot load project from the file. Please check the file type." msgstr "" -#: js/turtledefs.js:124 -#: js/turtledefs.js:226 -msgid "ornament" +#: js/activity.js:6917 +msgid "Invalid parameters" msgstr "" -#: js/turtledefs.js:125 -#: js/turtledefs.js:227 -#: js/VolumeBlocks.js:362 -#: js/VolumeBlocks.js:502 -#: js/VolumeBlocks.js:545 -msgid "volume" +#: js/blocks.js:1212 +#: js/blocks.js:3444 +#: js/blocks.js:3834 +#: js/blocks.js:3865 +#: js/blocks.js:3914 +#: js/blocks.js:3949 +#: js/blocks.js:6586 +#: js/palette.js:509 +#: js/palette.js:638 +#: js/palette.js:1105 +#: js/blocks/BoxesBlocks.js:282 +#: js/blocks/BoxesBlocks.js:285 +#: js/blocks/BoxesBlocks.js:405 +#: js/blocks/BoxesBlocks.js:594 +msgid "box" msgstr "" -#: js/turtledefs.js:129 -#: js/turtledefs.js:231 -msgid "boxes" +#: js/blocks.js:1713 +msgid "Consider breaking this stack into parts." msgstr "" -#: js/turtledefs.js:130 -#: js/turtledefs.js:232 -msgid "widgets" +#: js/blocks.js:2472 +#: js/palette.js:653 +#: js/blocks/MediaBlocks.js:602 +msgid "open file" msgstr "" -#: js/turtledefs.js:131 -#: js/turtledefs.js:233 -#: js/phrasemaker.js:824 -msgid "graphics" +#: js/blocks.js:3247 +#: js/palette.js:574 +#: js/blocks/MediaBlocks.js:892 +#: js/blocks/MediaBlocks.js:963 +msgid "text" msgstr "" -#: js/turtledefs.js:134 -#: js/turtledefs.js:236 -msgid "boolean" +#: js/blocks.js:3443 +#: js/palette.js:641 +#: js/palette.js:642 +#: js/blocks/BoxesBlocks.js:514 +msgid "store in box" msgstr "" -#: js/turtledefs.js:137 -#: js/turtledefs.js:239 -#: js/HeapBlocks.js:59 -#: js/status.js:147 -msgid "heap" +#: js/blocks.js:3448 +#: js/blocks.js:3888 +#: js/blocks.js:3923 +#: js/blocks.js:3958 +#: js/blocks.js:5862 +#: js/blocks.js:5883 +#: js/blocks/BoxesBlocks.js:772 +msgid "box1" msgstr "" -#: js/turtledefs.js:138 -#: js/turtledefs.js:240 -#: js/ProgramBlocks.js:495 -#: js/DictBlocks.js:142 -msgid "dictionary" +#: js/blocks.js:3450 +#: js/blocks.js:3890 +#: js/blocks.js:3925 +#: js/blocks.js:3960 +#: js/blocks.js:5864 +#: js/blocks.js:5885 +#: js/blocks/BoxesBlocks.js:663 +msgid "box2" msgstr "" -#: js/turtledefs.js:139 -#: js/turtledefs.js:241 -msgid "ensemble" +#: js/blocks.js:4122 +#: js/palette.js:639 +#: js/palette.js:644 +#: js/palette.js:1041 +#: js/blocks/BoxesBlocks.js:591 +msgid "store in" msgstr "" -#: js/turtledefs.js:140 -#: js/turtledefs.js:242 -msgid "extras" +#: js/blocks.js:4122 +#: js/blocks/BoxesBlocks.js:595 +#: js/blocks/DictBlocks.js:215 +#: js/blocks/DictBlocks.js:289 +#: js/blocks/EnsembleBlocks.js:391 +#: js/blocks/EnsembleBlocks.js:402 +#: js/blocks/MediaBlocks.js:746 +#: js/blocks/PitchBlocks.js:656 +#: js/blocks/PitchBlocks.js:934 +#: js/blocks/PitchBlocks.js:1866 +#: js/blocks/ProgramBlocks.js:390 +#: js/blocks/ProgramBlocks.js:495 +#: js/blocks/ProgramBlocks.js:658 +#: js/blocks/ToneBlocks.js:1025 +msgid "name" msgstr "" -#: js/turtledefs.js:142 -#: js/turtledefs.js:244 -#.TRANS: program as in computer program -#.TRANS: program as in computer program -msgid "program" +#: js/blocks.js:4122 +#: js/blocks/BoxesBlocks.js:75 +#: js/blocks/BoxesBlocks.js:595 +#: js/blocks/DictBlocks.js:289 +#: js/blocks/DictBlocks.js:430 +#: js/blocks/HeapBlocks.js:544 +#: js/blocks/RhythmBlocks.js:1130 +msgid "value" msgstr "" -#: js/turtledefs.js:143 -#: js/turtledefs.js:245 -msgid "my blocks" +#: js/blocks.js:4465 +msgid "Forever loop detected inside a note value block. Unexpected things may happen." msgstr "" -#: js/turtledefs.js:185 -#: js/turtledefs.js:281 -msgid "artwork" +#: js/blocks.js:4988 +msgid "There is no block selected." msgstr "" -#: js/turtledefs.js:185 -#: js/turtledefs.js:281 -msgid "logic" +#: js/blocks.js:5091 +#: js/blocks/MediaBlocks.js:888 +msgid "show" msgstr "" -#: js/turtledefs.js:185 -#: js/turtledefs.js:281 -msgid "music" +#: js/blocks.js:5094 +#: js/blocks/MediaBlocks.js:803 +#.TRANS: Avatar is the image used to determine the appearance of the mouse. +msgid "avatar" msgstr "" -#: js/turtledefs.js:187 -#: js/turtledefs.js:463 -msgid "Music Blocks is a collection of tools for exploring fundamental musical concepts in a fun way." +#: js/blocks.js:5097 +#: js/blocks/ToneBlocks.js:1010 +#: js/widgets/sampler.js:975 +#.TRANS: The sound sample that the user uploads. +msgid "sample" msgstr "" -#: js/turtledefs.js:436 -msgid "Welcome to Turtle Blocks" +#: js/lilypond.js:606 +msgid "brown rat" msgstr "" -#: js/turtledefs.js:438 -#: js/turtledefs.js:465 -#: js/turtledefs.js:774 -#: js/turtledefs.js:805 -msgid "The current version is" +#: js/lilypond.js:607 +msgid "mole" msgstr "" -#: js/turtledefs.js:446 -#: js/turtledefs.js:483 -msgid "Click the run button to run the project in fast mode." +#: js/lilypond.js:608 +msgid "chipmunk" msgstr "" -#: js/turtledefs.js:452 -msgid "Stop the turtle." +#: js/lilypond.js:609 +msgid "red squirrel" msgstr "" -#: js/turtledefs.js:454 -#: js/turtledefs.js:491 -msgid "You can also type Alt-S to stop." +#: js/lilypond.js:610 +msgid "guinea pig" +msgstr "" + +#: js/lilypond.js:611 +msgid "capybara" msgstr "" -#: js/turtledefs.js:462 -#: js/help.js:333 -msgid "Welcome to Music Blocks" +#: js/lilypond.js:612 +msgid "coypu" msgstr "" -#: js/turtledefs.js:472 -#: js/help.js:334 -msgid "Meet Mr. Mouse!" +#: js/lilypond.js:613 +msgid "black rat" msgstr "" -#: js/turtledefs.js:473 -msgid "Mr Mouse is our Music Blocks conductor." +#: js/lilypond.js:614 +msgid "grey squirrel" msgstr "" -#: js/turtledefs.js:475 -msgid "Mr Mouse encourages you to explore Music Blocks." +#: js/lilypond.js:615 +msgid "flying squirrel" msgstr "" -#: js/turtledefs.js:477 -msgid "Let us start our tour!" +#: js/lilypond.js:616 +msgid "bat" msgstr "" -#: js/turtledefs.js:489 -msgid "Stop the music (and the mice)." +#: js/lilypond.js:749 +#: js/lilypond.js:913 +#: js/lilypond.js:951 +#: js/blocks/ActionBlocks.js:1256 +#: js/blocks/ExtrasBlocks.js:556 +msgid "start drum" msgstr "" -#: js/turtledefs.js:499 -msgid "Record your project as video." +#: js/logo.js:61 +msgid "Not a valid pitch name" msgstr "" -#: js/turtledefs.js:505 -msgid "Toggle Fullscreen mode." +#: js/logo.js:507 +#: js/blocks/ProgramBlocks.js:258 +#: js/blocks/ProgramBlocks.js:427 +msgid "You must select a file." msgstr "" -#: js/turtledefs.js:511 -msgid "Initialize a new project." +#: js/logo.js:1696 +msgid "Playback is ready." msgstr "" -#: js/turtledefs.js:517 -msgid "You can also load projects from the file system." +#: js/macros.js:711 +#: js/utils/musicutils.js:1162 +#: js/utils/synthutils.js:202 +#.TRANS: animal sound effect +msgid "duck" msgstr "" -#: js/turtledefs.js:522 -#: js/StringHelper.js:46 -msgid "Delete" +#: js/notation.js:353 +msgid "Lilypond cannot process pickup of " msgstr "" -#: js/turtledefs.js:523 -msgid "To delete a block, just right-click on it, then you will be able to see the delete option" +#: js/palette.js:571 +msgid "grid" msgstr "" -#: js/turtledefs.js:528 -#: js/activity.js:2270 -#: js/LocalCard.js:31 -msgid "Copy" +#: js/palette.js:580 +msgid "effect" msgstr "" -#: js/turtledefs.js:529 -msgid "To copy a block, just right-click on it, then you will be able to see the copy option" +#: js/palette.js:586 +msgid "sargam" msgstr "" -#: js/turtledefs.js:535 -msgid "To extract a block, just right-click on it, then you will be able to see the extract option" +#: js/palette.js:601 +#: js/blocks/PitchBlocks.js:1209 +msgid "custom pitch" msgstr "" -#: js/turtledefs.js:542 -#: js/turtledefs.js:552 -#: js/turtledefs.js:573 -msgid "Save your project to a file." +#: js/palette.js:609 +msgid "accidental" msgstr "" -#: js/turtledefs.js:549 -#: js/turtledefs.js:570 -msgid "save" +#: js/palette.js:633 +#: js/blocks/PitchBlocks.js:405 +msgid "pitch converter" msgstr "" -#: js/turtledefs.js:556 -#: js/turtledefs.js:577 -msgid "Save graphics from your project to as SVG." +#: js/piemenus.js:200 +#: js/utils/musicutils.js:1187 +#: js/utils/musicutils.js:1207 +#: js/widgets/musickeyboard.js:2341 +#: js/widgets/phrasemaker.js:1908 +#: js/widgets/sampler.js:810 +#.TRANS: double sharp is a music term related to pitch +msgid "double sharp" msgstr "" -#: js/turtledefs.js:560 -#: js/turtledefs.js:581 -msgid "Save graphics from your project as PNG." +#: js/piemenus.js:201 +#: js/utils/musicutils.js:1185 +#: js/utils/musicutils.js:1208 +#: js/blocks/PitchBlocks.js:1539 +#: js/turtleactions/PitchActions.js:323 +#: js/widgets/musickeyboard.js:2342 +#: js/widgets/phrasemaker.js:1909 +#: js/widgets/sampler.js:811 +#.TRANS: sharp is a music term related to pitch +#.TRANS: sharp is a half-step up in pitch +msgid "sharp" msgstr "" -#: js/turtledefs.js:564 -#: js/turtledefs.js:597 -msgid "Save block artwork as an SVG file." +#: js/piemenus.js:202 +#: js/utils/musicutils.js:1183 +#: js/utils/musicutils.js:1209 +#: js/widgets/musickeyboard.js:2343 +#: js/widgets/phrasemaker.js:1910 +#: js/widgets/sampler.js:812 +#.TRANS: natural is a music term related to pitch +msgid "natural" msgstr "" -#: js/turtledefs.js:585 -msgid "Save audio from your project as WAV." +#: js/piemenus.js:203 +#: js/utils/musicutils.js:1181 +#: js/utils/musicutils.js:1210 +#: js/blocks/PitchBlocks.js:1498 +#: js/turtleactions/PitchActions.js:326 +#: js/widgets/musickeyboard.js:2344 +#: js/widgets/phrasemaker.js:1911 +#: js/widgets/sampler.js:813 +#.TRANS: flat is a music term related to pitch +#.TRANS: flat is a half-step down in pitch +msgid "flat" msgstr "" -#: js/turtledefs.js:589 -msgid "Save your project to as an ABC file." +#: js/piemenus.js:204 +#: js/utils/musicutils.js:1179 +#: js/utils/musicutils.js:1211 +#: js/widgets/musickeyboard.js:2345 +#: js/widgets/phrasemaker.js:1912 +#: js/widgets/sampler.js:814 +#.TRANS: double flat is a music term related to pitch +msgid "double flat" msgstr "" -#: js/turtledefs.js:593 -msgid "Save your project to as a Lilypond file." +#: js/piemenus.js:2864 +#: js/utils/musicutils.js:1006 +#: js/blocks/PitchBlocks.js:1385 +#.TRANS: unison is a music term related to intervals +#.TRANS: unison means the note is the same as the current note +msgid "unison" msgstr "" -#: js/turtledefs.js:604 -msgid "Load samples from server" +#: js/piemenus.js:3018 +#: js/piemenus.js:3091 +#: js/utils/musicutils.js:1014 +#: js/utils/musicutils.js:1189 +#: js/utils/musicutils.js:1326 +#.TRANS: major is a music term related to intervals and mode +msgid "major" msgstr "" -#: js/turtledefs.js:605 -msgid "This button opens a viewer for loading example projects." +#: js/piemenus.js:3018 +#: js/piemenus.js:3091 +#: js/utils/musicutils.js:1032 +#.TRANS: modal scale for music +msgid "ionian" msgstr "" -#: js/turtledefs.js:611 -msgid "Palette buttons" +#: js/piemenus.js:3020 +#: js/piemenus.js:3095 +#: js/utils/musicutils.js:1012 +#: js/utils/musicutils.js:1190 +#: js/utils/musicutils.js:1323 +#.TRANS: minor is a music term related to intervals and mode +msgid "minor" msgstr "" -#: js/turtledefs.js:612 -msgid "This toolbar contains the palette buttons including Rhythm Pitch Tone Action and more." +#: js/piemenus.js:3020 +#: js/piemenus.js:3095 +#: js/utils/musicutils.js:1042 +#.TRANS: modal scale for music +msgid "aeolian" msgstr "" -#: js/turtledefs.js:614 -msgid "Click to show the palettes of blocks and drag blocks from the palettes onto the canvas to use them." +#: js/piemenus.js:3410 +msgid "Duplicate" msgstr "" -#: js/turtledefs.js:620 -msgid "Cartesian/Polar" +#: js/piemenus.js:3412 +msgid "Move to trash" msgstr "" -#: js/turtledefs.js:621 -msgid "Show or hide a coordinate grid." +#: js/piemenus.js:3413 +#: js/widgets/timbre.js:968 +#: planet/js/StringHelper.js:69 +msgid "Close" msgstr "" -#: js/turtledefs.js:627 -msgid "Clear the screen and return the mice to their initial positions." +#: js/piemenus.js:3419 +msgid "Save stack" msgstr "" -#: js/turtledefs.js:633 -msgid "Collapse the graphics window." +#: js/piemenus.js:3449 +msgid "In order to copy a sample, you must reload the widget, import the sample again, and export it." msgstr "" -#: js/turtledefs.js:638 -#: js/activity.js:4256 -#: js/activity.js:4256 -msgid "Home" +#: js/piemenus.js:3812 +msgid "You have chosen key " msgstr "" -#: js/turtledefs.js:639 -msgid "Return all blocks to the center of the screen." +#: js/piemenus.js:3816 +msgid " for your pitch preview." msgstr "" -#: js/turtledefs.js:644 -msgid "Show/hide blocks" +#: js/turtle-singer.js:1363 +#.TRANS: partials are weighted components in a harmonic series +msgid "You must have at least one Partial block inside of a Weighted-partial block" msgstr "" -#: js/turtledefs.js:645 -msgid "Hide or show the blocks and the palettes." +#: js/turtle-singer.js:2077 +msgid "synth cannot play chords." msgstr "" -#: js/turtledefs.js:650 -msgid "Expand/collapse collapsable blocks" +#: js/utils/musicutils.js:505 +#: js/utils/musicutils.js:645 +#: js/widgets/pitchdrummatrix.js:228 +#: js/widgets/musickeyboard.js:2885 +msgid "rest" msgstr "" -#: js/turtledefs.js:651 -msgid "Expand or collapse start and action stacks." +#: js/utils/musicutils.js:689 +msgid "Perfect unison" msgstr "" -#: js/turtledefs.js:658 -#: js/activity.js:4265 -msgid "Decrease block size" +#: js/utils/musicutils.js:689 +msgid "Diminished second" msgstr "" -#: js/turtledefs.js:659 -msgid "Decrease the size of the blocks." +#: js/utils/musicutils.js:690 +msgid "Minor second" msgstr "" -#: js/turtledefs.js:664 -#: js/activity.js:4267 -msgid "Increase block size" +#: js/utils/musicutils.js:690 +msgid "Augmented unison" msgstr "" -#: js/turtledefs.js:665 -msgid "Increase the size of the blocks." +#: js/utils/musicutils.js:691 +msgid "Major second" msgstr "" -#: js/turtledefs.js:670 -msgid "Expand/collapse option toolbar" +#: js/utils/musicutils.js:691 +msgid "Diminished third" msgstr "" -#: js/turtledefs.js:671 -msgid "Click this button to expand or collapse the auxillary toolbar." +#: js/utils/musicutils.js:692 +msgid "Minor third" msgstr "" -#: js/turtledefs.js:676 -msgid "Run slow" +#: js/utils/musicutils.js:692 +msgid "Augmented second" msgstr "" -#: js/turtledefs.js:677 -msgid "Click to run the project in slow mode." +#: js/utils/musicutils.js:693 +msgid "Major third" msgstr "" -#: js/turtledefs.js:683 -msgid "Click to run the project step by step." +#: js/utils/musicutils.js:693 +msgid "Diminished fourth" msgstr "" -#: js/turtledefs.js:690 -msgid "Display statistics about your Music project." +#: js/utils/musicutils.js:694 +msgid "Perfect fourth" msgstr "" -#: js/turtledefs.js:697 -msgid "Delete a selected plugin." +#: js/utils/musicutils.js:694 +msgid "Augmented third" msgstr "" -#: js/turtledefs.js:704 -msgid "Enable scrolling" +#: js/utils/musicutils.js:695 +msgid "Diminished fifth" msgstr "" -#: js/turtledefs.js:705 -msgid "You can scroll the blocks on the canvas." +#: js/utils/musicutils.js:695 +msgid "Augmented fourth" msgstr "" -#: js/turtledefs.js:714 -msgid "Wrap Turtle" +#: js/utils/musicutils.js:696 +msgid "Perfect fifth" msgstr "" -#: js/turtledefs.js:715 -msgid "Turn Turtle wrapping On or Off." +#: js/utils/musicutils.js:696 +msgid "Diminished sixth" msgstr "" -#: js/turtledefs.js:725 -msgid "Restore blocks from the trash." +#: js/utils/musicutils.js:697 +msgid "Minor sixth" msgstr "" -#: js/turtledefs.js:732 -msgid "Switch mode" +#: js/utils/musicutils.js:697 +msgid "Augmented fifth" msgstr "" -#: js/turtledefs.js:733 -msgid "Switch between beginner and advance modes." +#: js/utils/musicutils.js:698 +msgid "Major sixth" msgstr "" -#: js/turtledefs.js:739 -msgid "Select your language preference." +#: js/utils/musicutils.js:698 +msgid "Diminished seventh" msgstr "" -#: js/turtledefs.js:745 -msgid "Keyboard shortcuts" +#: js/utils/musicutils.js:699 +msgid "Minor seventh" msgstr "" -#: js/turtledefs.js:746 -msgid "You can type d to create a do block and r to create a re block etc." +#: js/utils/musicutils.js:699 +msgid "Augmented sixth" msgstr "" -#: js/turtledefs.js:753 -msgid "Show these messages." +#: js/utils/musicutils.js:700 +msgid "Major seventh" msgstr "" -#: js/turtledefs.js:759 -#: js/turtledefs.js:790 -#: js/help.js:335 -msgid "Guide" +#: js/utils/musicutils.js:700 +msgid "Diminished octave" msgstr "" -#: js/turtledefs.js:760 -msgid "A detailed guide to Turtle Blocks is available." +#: js/utils/musicutils.js:701 +msgid "Perfect octave" msgstr "" -#: js/turtledefs.js:764 -msgid "Turtle Blocks Guide" +#: js/utils/musicutils.js:701 +msgid "Augmented seventh" msgstr "" -#: js/turtledefs.js:767 -#: js/turtledefs.js:798 -#: js/help.js:336 -msgid "About" +#: js/utils/musicutils.js:702 +msgid "Minor ninth" msgstr "" -#: js/turtledefs.js:768 -msgid "Turtle Blocks is an open source collection of tools for exploring musical concepts." +#: js/utils/musicutils.js:702 +msgid "Augmented octave" msgstr "" -#: js/turtledefs.js:770 -msgid "A full list of contributors can be found in the Turtle Blocks GitHub repository." +#: js/utils/musicutils.js:703 +msgid "Major ninth" msgstr "" -#: js/turtledefs.js:772 -msgid "Turtle Blocks is licensed under the AGPL." +#: js/utils/musicutils.js:703 +msgid "Diminished tenth" msgstr "" -#: js/turtledefs.js:780 -msgid "Turtle Blocks GitHub repository" +#: js/utils/musicutils.js:704 +msgid "Minor tenth" msgstr "" -#: js/turtledefs.js:783 -#: js/turtledefs.js:814 -#: js/help.js:337 -#: js/help.js:359 -msgid "Congratulations." +#: js/utils/musicutils.js:704 +msgid "Augmented ninth" msgstr "" -#: js/turtledefs.js:784 -msgid "You have finished the tour. Please enjoy Turtle Blocks!" +#: js/utils/musicutils.js:705 +msgid "Major tenth" msgstr "" -#: js/turtledefs.js:791 -msgid "A detailed guide to Music Blocks is available." +#: js/utils/musicutils.js:705 +msgid "Diminished eleventh" msgstr "" -#: js/turtledefs.js:795 -#: js/SaveInterface.js:76 -msgid "Music Blocks Guide" +#: js/utils/musicutils.js:706 +msgid "Perfect eleventh" msgstr "" -#: js/turtledefs.js:799 -msgid "Music Blocks is an open source collection of tools for exploring musical concepts." +#: js/utils/musicutils.js:706 +msgid "Augmented tenth" msgstr "" -#: js/turtledefs.js:801 -msgid "A full list of contributors can be found in the Music Blocks GitHub repository." +#: js/utils/musicutils.js:707 +msgid "Diminished twelfth" msgstr "" -#: js/turtledefs.js:803 -msgid "Music Blocks is licensed under the AGPL." +#: js/utils/musicutils.js:707 +msgid "Augmented eleventh" msgstr "" -#: js/turtledefs.js:811 -msgid "Music Blocks GitHub repository" +#: js/utils/musicutils.js:708 +msgid "Perfect twelfth" msgstr "" -#: js/turtledefs.js:815 -msgid "You have finished the tour. Please enjoy Music Blocks!" +#: js/utils/musicutils.js:708 +msgid "Diminished thirteenth" msgstr "" -#: js/activity.js:369 -msgid "Search for blocks" +#: js/utils/musicutils.js:709 +msgid "Minor thirteenth" msgstr "" -#: js/activity.js:1145 -msgid "Refresh your browser to change to advanced mode." +#: js/utils/musicutils.js:709 +msgid "Augmented fifth, plus an octave" msgstr "" -#: js/activity.js:1150 -msgid "Refresh your browser to change to beginner mode." +#: js/utils/musicutils.js:710 +msgid "Major thirteenth" msgstr "" -#: js/activity.js:1184 -msgid "Catching mice" +#: js/utils/musicutils.js:710 +msgid "Diminished seventh, plus an octave" msgstr "" -#: js/activity.js:1185 -msgid "Cleaning the instruments" +#: js/utils/musicutils.js:838 +#.TRANS: ordinal number. Please keep exactly one space between each number. +msgid "1st 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th" msgstr "" -#: js/activity.js:1186 -msgid "Testing key pieces" +#: js/utils/musicutils.js:1008 +#: js/utils/musicutils.js:1191 +#: js/utils/musicutils.js:1325 +#.TRANS: augmented is a music term related to intervals +msgid "augmented" msgstr "" -#: js/activity.js:1187 -msgid "Sight-reading" +#: js/utils/musicutils.js:1010 +#: js/utils/musicutils.js:1192 +#: js/utils/musicutils.js:1324 +#.TRANS: diminished is a music term related to intervals and mode +msgid "diminished" msgstr "" -#: js/activity.js:1188 -msgid "Combining math and music" +#: js/utils/musicutils.js:1016 +#: js/utils/musicutils.js:1322 +#: js/blocks/IntervalsBlocks.js:649 +#: js/turtleactions/IntervalsActions.js:120 +#: js/turtleactions/IntervalsActions.js:124 +#.TRANS: perfect is a music term related to intervals +msgid "perfect" +msgstr "" + +#: js/utils/musicutils.js:1018 +#.TRANS: twelve semi-tone scale for music +msgid "chromatic" msgstr "" -#: js/activity.js:1189 -msgid "Generating more blocks" +#: js/utils/musicutils.js:1019 +msgid "algerian" msgstr "" -#: js/activity.js:1190 -msgid "Do Re Mi Fa Sol La Ti Do" +#: js/utils/musicutils.js:1020 +msgid "spanish" msgstr "" -#: js/activity.js:1191 -msgid "Tuning string instruments" +#: js/utils/musicutils.js:1022 +#.TRANS: modal scale in music +msgid "octatonic" msgstr "" -#: js/activity.js:1192 -msgid "Pressing random keys" +#: js/utils/musicutils.js:1024 +#.TRANS: harmonic major scale in music +msgid "harmonic major" msgstr "" -#: js/activity.js:1351 -msgid "plugins will be removed upon restart." +#: js/utils/musicutils.js:1026 +#.TRANS: natural minor scales in music +msgid "natural minor" msgstr "" -#: js/activity.js:1360 -msgid "show Cartesian" +#: js/utils/musicutils.js:1028 +#.TRANS: harmonic minor scale in music +msgid "harmonic minor" msgstr "" -#: js/activity.js:1842 -msgid "output tools" +#: js/utils/musicutils.js:1030 +#.TRANS: melodic minor scale in music +msgid "melodic minor" msgstr "" -#: js/activity.js:1845 -msgid "custom note" +#: js/utils/musicutils.js:1034 +#.TRANS: modal scale for music +msgid "dorian" msgstr "" -#: js/activity.js:1848 -msgid "accidental name" +#: js/utils/musicutils.js:1036 +#.TRANS: modal scale for music +msgid "phrygian" msgstr "" -#: js/activity.js:1851 -#: js/PitchBlocks.js:855 -msgid "east indian solfege" +#: js/utils/musicutils.js:1038 +#.TRANS: modal scale for music +msgid "lydian" msgstr "" -#: js/activity.js:1854 -#: js/PitchBlocks.js:869 -msgid "note name" +#: js/utils/musicutils.js:1040 +#.TRANS: modal scale for music +msgid "mixolydian" msgstr "" -#: js/activity.js:1857 -#: js/IntervalsBlocks.js:94 -msgid "temperament name" +#: js/utils/musicutils.js:1044 +#.TRANS: modal scale for music +msgid "locrian" msgstr "" -#: js/activity.js:1863 -msgid "chord name" +#: js/utils/musicutils.js:1046 +#.TRANS: minor jazz scale for music +msgid "jazz minor" msgstr "" -#: js/activity.js:1869 -msgid "filter type" +#: js/utils/musicutils.js:1048 +#.TRANS: bebop scale for music +msgid "bebop" msgstr "" -#: js/activity.js:1872 -msgid "oscillator type" +#: js/utils/musicutils.js:1049 +msgid "arabic" msgstr "" -#: js/activity.js:1878 -#: js/DrumBlocks.js:32 -msgid "noise name" +#: js/utils/musicutils.js:1050 +msgid "byzantine" msgstr "" -#: js/activity.js:1881 -#: js/DrumBlocks.js:75 -msgid "drum name" +#: js/utils/musicutils.js:1052 +#.TRANS: musical scale for music by Verdi +msgid "enigmatic" msgstr "" -#: js/activity.js:1884 -#: js/DrumBlocks.js:119 -msgid "effects name" +#: js/utils/musicutils.js:1053 +msgid "ethiopian" msgstr "" -#: js/activity.js:1887 -msgid "wrap mode" +#: js/utils/musicutils.js:1055 +#.TRANS: Ethiopic scale for music +msgid "geez" msgstr "" -#: js/activity.js:1890 -msgid "load file" +#: js/utils/musicutils.js:1056 +msgid "hindu" msgstr "" -#: js/activity.js:2056 -msgid "This block is deprecated." +#: js/utils/musicutils.js:1057 +msgid "hungarian" msgstr "" -#: js/activity.js:2058 -msgid "Block cannot be found." +#: js/utils/musicutils.js:1059 +#.TRANS: minor Romanian scale for music +msgid "romanian minor" msgstr "" -#: js/activity.js:2266 -msgid "Saving block artwork" +#: js/utils/musicutils.js:1060 +msgid "spanish gypsy" msgstr "" -#: js/activity.js:2277 -msgid "Erase" +#: js/utils/musicutils.js:1062 +#.TRANS: musical scale for Mid-Eastern music +msgid "maqam" msgstr "" -#: js/activity.js:2301 -#: js/activity.js:2323 -msgid "Paste" +#: js/utils/musicutils.js:1064 +#.TRANS: minor blues scale for music +msgid "minor blues" msgstr "" -#: js/activity.js:2305 -msgid "Save block help" +#: js/utils/musicutils.js:1066 +#.TRANS: major blues scale for music +msgid "major blues" msgstr "" -#: js/activity.js:2390 -msgid "Jumping to the bottom of the page." +#: js/utils/musicutils.js:1067 +msgid "whole tone" msgstr "" -#: js/activity.js:2396 -msgid "Scrolling up." +#: js/utils/musicutils.js:1069 +#.TRANS: pentatonic is a general term that means "five note scale". This scale is typically known as "minor pentatonic" +msgid "minor pentatonic" msgstr "" -#: js/activity.js:2401 -msgid "Scrolling down." +#: js/utils/musicutils.js:1071 +#.TRANS: pentatonic is a general term that means "five note scale". This scale is typically known as "major pentatonic" +msgid "major pentatonic" msgstr "" -#: js/activity.js:2406 -msgid "Extracting block" +#: js/utils/musicutils.js:1072 +msgid "chinese" msgstr "" -#: js/activity.js:2414 -msgid "Moving block up." +#: js/utils/musicutils.js:1073 +msgid "egyptian" msgstr "" -#: js/activity.js:2435 -msgid "Moving block down." +#: js/utils/musicutils.js:1075 +#.TRANS: https://en.wikipedia.org/wiki/Hirajoshi_scale NOTE: There are three different versions of this scale +msgid "hirajoshi" msgstr "" -#: js/activity.js:2456 -msgid "Moving block left." +#: js/utils/musicutils.js:1076 +msgid "Japan" msgstr "" -#: js/activity.js:2473 -msgid "Moving block right." +#: js/utils/musicutils.js:1078 +#.TRANS: https://en.wikipedia.org/wiki/In_scale and https://en.wikipedia.org/wiki/Sakura_Sakura +msgid "in" msgstr "" -#: js/activity.js:2488 -msgid "Jump to home position." +#: js/utils/musicutils.js:1080 +#.TRANS: https://en.wikipedia.org/wiki/Miny%C5%8D_scale +msgid "minyo" msgstr "" -#: js/activity.js:2515 -msgid "Hide blocks" +#: js/utils/musicutils.js:1082 +#.TRANS: Italian mathematician +msgid "fibonacci" msgstr "" -#: js/activity.js:3389 -msgid "Click the run button to run the project." +#: js/utils/musicutils.js:1083 +#: js/utils/musicutils.js:1134 +#: js/utils/musicutils.js:1177 +#: js/utils/musicutils.js:1199 +#: js/utils/synthutils.js:134 +#: js/blocks/IntervalsBlocks.js:1124 +#: js/blocks/ToneBlocks.js:946 +#: js/blocks/VolumeBlocks.js:411 +#: js/blocks/WidgetBlocks.js:399 +#: js/blocks/WidgetBlocks.js:404 +#: js/turtleactions/VolumeActions.js:218 +#: js/widgets/modewidget.js:919 +#.TRANS: customize voice +msgid "custom" msgstr "" -#: js/activity.js:3456 -#: js/SaveInterface.js:131 -#: js/SaveInterface.js:204 -#: js/SaveInterface.js:262 -#: js/SaveInterface.js:389 -#: js/SaveInterface.js:417 -#: js/ProjectStorage.js:27 -#: js/GlobalPlanet.js:467 -#: js/GlobalPlanet.js:469 -#: js/GlobalPlanet.js:495 -#.TRANS: default project title when saving as Lilypond -msgid "My Project" +#: js/utils/musicutils.js:1085 +#: js/utils/musicutils.js:1531 +#: js/blocks/WidgetBlocks.js:176 +#.TRANS: highpass filter +msgid "highpass" msgstr "" -#: js/activity.js:4261 -msgid "Show/hide block" +#: js/utils/musicutils.js:1087 +#: js/utils/musicutils.js:1532 +#.TRANS: lowpass filter +msgid "lowpass" msgstr "" -#: js/activity.js:4263 -msgid "Expand/collapse blocks" +#: js/utils/musicutils.js:1089 +#: js/utils/musicutils.js:1533 +#.TRANS: bandpass filter +msgid "bandpass" msgstr "" -#: js/activity.js:4381 -msgid "Could not parse JSON input." +#: js/utils/musicutils.js:1091 +#: js/utils/musicutils.js:1534 +#.TRANS: high-shelf filter +msgid "highshelf" msgstr "" -#: js/activity.js:4684 -#: js/activity.js:4771 -#: js/activity.js:4821 -msgid "Cannot load project from the file. Please check the file type." +#: js/utils/musicutils.js:1093 +#: js/utils/musicutils.js:1535 +#.TRANS: low-shelf filter +msgid "lowshelf" msgstr "" -#: js/activity.js:5051 -msgid "Invalid parameters" +#: js/utils/musicutils.js:1095 +#: js/utils/musicutils.js:1536 +#.TRANS: notch-shelf filter +msgid "notch" msgstr "" -#: js/turtle-singer.js:1334 -#.TRANS: partials are weighted components in a harmonic series -msgid "You must have at least one Partial block inside of a Weighted-partial block" +#: js/utils/musicutils.js:1097 +#: js/utils/musicutils.js:1537 +#.TRANS: all-pass filter +msgid "allpass" msgstr "" -#: js/turtle-singer.js:2048 -msgid "synth cannot play chords." +#: js/utils/musicutils.js:1099 +#: js/utils/musicutils.js:1538 +#.TRANS: peaking filter +msgid "peaking" msgstr "" -#: js/lilypond.js:614 -msgid "brown rat" +#: js/utils/musicutils.js:1100 +#: js/utils/musicutils.js:1546 +#: js/utils/synthutils.js:126 +#: js/blocks/PitchBlocks.js:85 +#.TRANS: sine wave +msgid "sine" msgstr "" -#: js/lilypond.js:615 -msgid "mole" +#: js/utils/musicutils.js:1101 +#: js/utils/musicutils.js:1547 +#: js/utils/synthutils.js:128 +#: js/blocks/PitchBlocks.js:39 +#.TRANS: square wave +msgid "square" msgstr "" -#: js/lilypond.js:616 -msgid "chipmunk" +#: js/utils/musicutils.js:1102 +#: js/utils/musicutils.js:1548 +#: js/utils/synthutils.js:132 +#: js/blocks/PitchBlocks.js:62 +#: js/blocks/ToneBlocks.js:39 +#.TRANS: triangle wave +msgid "triangle" msgstr "" -#: js/lilypond.js:617 -msgid "red squirrel" +#: js/utils/musicutils.js:1103 +#: js/utils/musicutils.js:1549 +#: js/utils/synthutils.js:130 +#: js/blocks/PitchBlocks.js:108 +#.TRANS: sawtooth wave +msgid "sawtooth" msgstr "" -#: js/lilypond.js:618 -msgid "guinea pig" +#: js/utils/musicutils.js:1105 +#: js/utils/musicutils.js:1312 +#: js/blocks/PitchBlocks.js:931 +#: js/blocks/PitchBlocks.js:937 +#: js/turtleactions/PitchActions.js:469 +#.TRANS: even numbers +#.TRANS: invert based on even or odd number or musical scale +msgid "even" msgstr "" -#: js/lilypond.js:619 -msgid "capybara" +#: js/utils/musicutils.js:1107 +#: js/utils/musicutils.js:1313 +#: js/blocks/PitchBlocks.js:937 +#: js/turtleactions/PitchActions.js:471 +#.TRANS: odd numbers +msgid "odd" msgstr "" -#: js/lilypond.js:620 -msgid "coypu" +#: js/utils/musicutils.js:1108 +#: js/utils/musicutils.js:1314 +#: js/blocks/PitchBlocks.js:937 +#: js/turtleactions/PitchActions.js:473 +msgid "scalar" msgstr "" -#: js/lilypond.js:621 -msgid "black rat" +#: js/utils/musicutils.js:1109 +#: js/utils/synthutils.js:72 +#: js/blocks/VolumeBlocks.js:47 +#.TRANS: musical instrument +msgid "piano" msgstr "" -#: js/lilypond.js:622 -msgid "grey squirrel" +#: js/utils/musicutils.js:1110 +#: js/utils/synthutils.js:74 +#.TRANS: musical instrument +msgid "violin" msgstr "" -#: js/lilypond.js:623 -msgid "flying squirrel" +#: js/utils/musicutils.js:1111 +#: js/utils/synthutils.js:76 +#.TRANS: viola musical instrument +msgid "viola" msgstr "" -#: js/lilypond.js:624 -msgid "bat" +#: js/utils/musicutils.js:1112 +#: js/utils/synthutils.js:114 +#.TRANS: xylophone musical instrument +msgid "xylophone" msgstr "" -#: js/lilypond.js:757 -#: js/lilypond.js:921 -#: js/lilypond.js:959 -#: js/ActionBlocks.js:1256 -#: js/ExtrasBlocks.js:553 -msgid "start drum" +#: js/utils/musicutils.js:1113 +#: js/utils/synthutils.js:136 +#.TRANS: vibraphone musical instrument +msgid "vibraphone" msgstr "" -#: js/SaveInterface.js:59 -#: js/SaveInterface.js:61 -#: js/SaveInterface.js:93 -msgid "Music Blocks Project" +#: js/utils/musicutils.js:1114 +#: js/utils/synthutils.js:78 +#.TRANS: musical instrument +msgid "cello" msgstr "" -#: js/SaveInterface.js:63 -msgid "This project was created in Music Blocks" +#: js/utils/musicutils.js:1116 +#: js/utils/synthutils.js:82 +#.TRANS: viola musical instrument +msgid "double bass" msgstr "" -#: js/SaveInterface.js:67 -msgid "Music Blocks is a Free/Libre Software application." +#: js/utils/musicutils.js:1117 +#: js/utils/synthutils.js:84 +#: js/widgets/rhythmruler.js:2511 +#.TRANS: musical instrument +msgid "guitar" msgstr "" -#: js/SaveInterface.js:69 -msgid "The source code can be accessed at" +#: js/utils/musicutils.js:1118 +#: js/utils/synthutils.js:86 +#.TRANS: musical instrument +msgid "acoustic guitar" msgstr "" -#: js/SaveInterface.js:72 -msgid "For more information, please consult the" +#: js/utils/musicutils.js:1119 +#: js/utils/synthutils.js:88 +#.TRANS: musical instrument +msgid "flute" msgstr "" -#: js/SaveInterface.js:83 -msgid "Alternatively, open the file in Music Blocks using the Load project button." +#: js/utils/musicutils.js:1120 +#: js/utils/synthutils.js:90 +#.TRANS: musical instrument +msgid "clarinet" msgstr "" -#: js/SaveInterface.js:85 -msgid "Project Code" +#: js/utils/musicutils.js:1121 +#: js/utils/synthutils.js:92 +#.TRANS: musical instrument +msgid "saxophone" msgstr "" -#: js/SaveInterface.js:87 -msgid "This code stores data about the blocks in a project." +#: js/utils/musicutils.js:1122 +#: js/utils/synthutils.js:94 +#.TRANS: musical instrument +msgid "tuba" msgstr "" -#: js/SaveInterface.js:89 -msgid "Show" +#: js/utils/musicutils.js:1123 +#: js/utils/synthutils.js:96 +#.TRANS: musical instrument +msgid "trumpet" msgstr "" -#: js/SaveInterface.js:91 -msgid "Hide" +#: js/utils/musicutils.js:1124 +#: js/utils/synthutils.js:98 +#.TRANS: musical instrument +msgid "oboe" msgstr "" -#: js/SaveInterface.js:197 -#: js/SaveInterface.js:58 -msgid "No description provided" +#: js/utils/musicutils.js:1125 +#: js/utils/synthutils.js:100 +#.TRANS: musical instrument +msgid "trombone" msgstr "" -#: js/SaveInterface.js:332 -msgid "Your recording is in progress." +#: js/utils/musicutils.js:1126 +#: js/utils/synthutils.js:116 +#.TRANS: polytone synthesizer +msgid "electronic synth" msgstr "" -#: js/SaveInterface.js:401 -#.TRANS: File name prompt for save as Lilypond -msgid "File name" +#: js/utils/musicutils.js:1127 +#: js/utils/synthutils.js:118 +#.TRANS: simple monotone synthesizer +msgid "simple 1" msgstr "" -#: js/SaveInterface.js:403 -#: js/StringHelper.js:39 -#.TRANS: Project title prompt for save as Lilypond -msgid "Project title" +#: js/utils/musicutils.js:1128 +msgid "simple 2" msgstr "" -#: js/SaveInterface.js:405 -#.TRANS: Project title prompt for save as Lilypond -msgid "Project author" +#: js/utils/musicutils.js:1129 +msgid "simple 3" msgstr "" -#: js/SaveInterface.js:407 -#.TRANS: MIDI prompt for save as Lilypond -msgid "Include MIDI output?" +#: js/utils/musicutils.js:1130 +msgid "simple 4" msgstr "" -#: js/SaveInterface.js:409 -#.TRANS: Guitar prompt for save as Lilypond -msgid "Include guitar tablature output?" +#: js/utils/musicutils.js:1131 +#: js/utils/synthutils.js:58 +#: js/blocks/DrumBlocks.js:191 +#.TRANS: white noise synthesizer +msgid "white noise" msgstr "" -#: js/SaveInterface.js:411 -#.TRANS: Lilypond is a scripting language for generating sheet music -msgid "Save as Lilypond" +#: js/utils/musicutils.js:1132 +#: js/utils/synthutils.js:60 +#.TRANS: brown noise synthesizer +msgid "brown noise" msgstr "" -#: js/SaveInterface.js:426 -#: js/EnsembleBlocks.js:75 -#: js/EnsembleBlocks.js:154 -#: js/EnsembleBlocks.js:216 -#: js/EnsembleBlocks.js:302 -#: js/EnsembleBlocks.js:348 -#: js/EnsembleBlocks.js:389 -#: js/EnsembleBlocks.js:441 -#: js/EnsembleBlocks.js:490 -#: js/EnsembleBlocks.js:536 -#: js/EnsembleBlocks.js:583 -#: js/EnsembleBlocks.js:637 -#: js/EnsembleBlocks.js:753 -#: js/EnsembleBlocks.js:840 -#: js/EnsembleBlocks.js:899 -#: js/EnsembleBlocks.js:942 -#: js/EnsembleBlocks.js:1212 -#: js/EnsembleBlocks.js:1280 -#.TRANS: default project author when saving as Lilypond -msgid "Mr. Mouse" +#: js/utils/musicutils.js:1133 +#: js/utils/synthutils.js:62 +#.TRANS: pink noise synthesizer +msgid "pink noise" msgstr "" -#: js/SaveInterface.js:573 -msgid "The Lilypond code is copied to clipboard. You can paste it here: " +#: js/utils/musicutils.js:1135 +#: js/utils/synthutils.js:148 +#: js/widgets/rhythmruler.js:2057 +#: js/widgets/rhythmruler.js:2319 +#.TRANS: musical instrument +msgid "snare drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:50 -#: js/RhythmBlockPaletteBlocks.js:232 -#.TRANS: rhythm block -#.TRANS: translate "rhythm1" as rhythm -msgid "rhythm1" +#: js/utils/musicutils.js:1136 +#: js/utils/synthutils.js:150 +#.TRANS: musical instrument +msgid "kick drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:70 -#: js/RhythmBlockPaletteBlocks.js:251 -#: js/RhythmBlockPaletteBlocks.js:484 -#: js/RhythmBlockPaletteBlocks.js:553 -#: js/RhythmBlockPaletteBlocks.js:874 -msgid "number of notes" +#: js/utils/musicutils.js:1137 +#: js/utils/synthutils.js:152 +#.TRANS: musical instrument +msgid "tom tom" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:126 -msgid "polyphonic rhythm" +#: js/utils/musicutils.js:1138 +#: js/utils/synthutils.js:154 +#.TRANS: musical instrument +msgid "floor tom" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:218 -msgid "The Rhythm block is used to generate rhythm patterns." +#: js/utils/musicutils.js:1139 +#: js/utils/synthutils.js:156 +#.TRANS: musical instrument +msgid "bass drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:279 -msgid "1/64 note" +#: js/utils/musicutils.js:1140 +#: js/utils/synthutils.js:158 +#.TRANS: a drum made from an inverted cup +msgid "cup drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:303 -msgid "1/32 note" +#: js/utils/musicutils.js:1141 +#: js/utils/synthutils.js:160 +#.TRANS: musical instrument +msgid "darbuka drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:331 -msgid "1/16 note" +#: js/utils/musicutils.js:1142 +#: js/utils/synthutils.js:164 +#.TRANS: musical instrument +msgid "hi hat" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:359 -msgid "eighth note" +#: js/utils/musicutils.js:1143 +#: js/utils/synthutils.js:166 +#.TRANS: a small metal bell +msgid "ride bell" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:387 -msgid "quarter note" +#: js/utils/musicutils.js:1144 +#: js/utils/synthutils.js:168 +#.TRANS: musical instrument +msgid "cow bell" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:415 -msgid "half note" +#: js/utils/musicutils.js:1145 +msgid "japanese drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:443 -msgid "whole note" +#: js/utils/musicutils.js:1146 +#: js/utils/synthutils.js:174 +#.TRANS: musical instrument +msgid "japanese bell" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:481 -#: js/RhythmBlockPaletteBlocks.js:550 -#: js/RhythmBlockPaletteBlocks.js:601 -#.TRANS: A tuplet is a note value divided into irregular time values. -msgid "tuplet" +#: js/utils/musicutils.js:1147 +#: js/utils/synthutils.js:170 +#.TRANS: musical instrument +msgid "triangle bell" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:767 -msgid "septuplet" +#: js/utils/musicutils.js:1148 +#: js/utils/synthutils.js:172 +#.TRANS: musical instrument +msgid "finger cymbals" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:795 -msgid "quintuplet" +#: js/utils/musicutils.js:1149 +#: js/utils/synthutils.js:176 +#.TRANS: a musically tuned set of bells +msgid "chime" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:823 -msgid "triplet" +#: js/utils/musicutils.js:1150 +#: js/utils/synthutils.js:178 +#.TRANS: a musical instrument +msgid "gong" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:850 -msgid "simple tuplet" +#: js/utils/musicutils.js:1151 +#: js/utils/synthutils.js:180 +#.TRANS: sound effect +msgid "clang" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:860 -msgid "Tuplets are a collection of notes that get scaled to a specific duration." +#: js/utils/musicutils.js:1152 +#: js/utils/synthutils.js:182 +#.TRANS: sound effect +msgid "crash" msgstr "" -#: js/WidgetBlocks.js:71 -#.TRANS: sound envelope (ADSR) -msgid "envelope" +#: js/utils/musicutils.js:1153 +#: js/utils/synthutils.js:184 +#.TRANS: sound effect +msgid "bottle" msgstr "" -#: js/WidgetBlocks.js:79 -#.TRANS: Attack time is the time taken for initial run-up of level from nil to peak, beginning when the key is first pressed. -msgid "attack" +#: js/utils/musicutils.js:1154 +#: js/utils/synthutils.js:186 +#.TRANS: sound effect +msgid "clap" msgstr "" -#: js/WidgetBlocks.js:81 -#.TRANS: Decay time is the time taken for the subsequent run down from the attack level to the designated sustain level. -msgid "decay" +#: js/utils/musicutils.js:1155 +#: js/utils/synthutils.js:188 +#.TRANS: sound effect +msgid "slap" msgstr "" -#: js/WidgetBlocks.js:83 -#.TRANS: Sustain level is the level during the main sequence of the sound's duration, until the key is released. -msgid "sustain" +#: js/utils/musicutils.js:1156 +#: js/utils/synthutils.js:190 +#.TRANS: sound effect +msgid "splash" msgstr "" -#: js/WidgetBlocks.js:85 -#.TRANS: Release time is the time taken for the level to decay from the sustain level to zero after the key is released. -msgid "release" +#: js/utils/musicutils.js:1157 +#: js/utils/synthutils.js:192 +#.TRANS: sound effect +msgid "bubbles" msgstr "" -#: js/WidgetBlocks.js:96 -msgid "Attack value should be from 0 to 100." +#: js/utils/musicutils.js:1158 +#: js/utils/synthutils.js:194 +#.TRANS: sound effect +msgid "raindrop" msgstr "" -#: js/WidgetBlocks.js:99 -msgid "Decay value should be from 0 to 100." +#: js/utils/musicutils.js:1159 +#: js/utils/synthutils.js:196 +#.TRANS: animal sound effect +msgid "cat" msgstr "" -#: js/WidgetBlocks.js:102 -msgid "Sustain value should be from 0 to 100." +#: js/utils/musicutils.js:1160 +#: js/utils/synthutils.js:198 +#.TRANS: animal sound effect +msgid "cricket" msgstr "" -#: js/WidgetBlocks.js:105 -msgid "Release value should be from 0-100." +#: js/utils/musicutils.js:1161 +#: js/utils/synthutils.js:200 +#.TRANS: animal sound effect +msgid "dog" msgstr "" -#: js/WidgetBlocks.js:121 -msgid "You are adding multiple envelope blocks." +#: js/utils/musicutils.js:1163 +#: js/utils/synthutils.js:102 +#.TRANS: musical instrument +msgid "banjo" msgstr "" -#: js/WidgetBlocks.js:144 -#.TRANS: a filter removes some unwanted components from a signal -msgid "filter" +#: js/utils/musicutils.js:1164 +#: js/utils/synthutils.js:104 +#.TRANS: musical instrument +msgid "koto" msgstr "" -#: js/WidgetBlocks.js:149 -#: js/musicutils.js:706 -#: js/musicutils.js:1105 -#.TRANS: highpass filter -msgid "highpass" +#: js/utils/musicutils.js:1165 +#: js/utils/synthutils.js:106 +#.TRANS: musical instrument +msgid "dulcimer" msgstr "" -#: js/WidgetBlocks.js:152 -#: js/ToneBlocks.js:42 -#: js/timbre.js:1558 -#: js/timbre.js:1808 -#.TRANS: type of filter, e.g., lowpass, highpass, etc. -#.TRANS: there are different types (sine, triangle, square...) of oscillators. -msgid "type" +#: js/utils/musicutils.js:1166 +#: js/utils/synthutils.js:108 +#.TRANS: musical instrument +msgid "electric guitar" msgstr "" -#: js/WidgetBlocks.js:154 -#: js/timbre.js:1818 -#.TRANS: rolloff is the steepness of a change in frequency. -msgid "rolloff" +#: js/utils/musicutils.js:1167 +#: js/utils/synthutils.js:110 +#.TRANS: musical instrument +msgid "bassoon" msgstr "" -#: js/WidgetBlocks.js:155 -#: js/MediaBlocks.js:692 -#: js/temperament.js:382 -#: js/temperament.js:417 -#: js/temperament.js:477 -#: js/temperament.js:485 -#: js/temperament.js:1348 -#: js/timbre.js:1842 -msgid "frequency" +#: js/utils/musicutils.js:1168 +#: js/utils/synthutils.js:112 +#.TRANS: musical instrument +msgid "celeste" msgstr "" -#: js/WidgetBlocks.js:179 -#.TRANS: rolloff is the steepness of a change in frequency. -msgid "Rolloff value should be either -12, -24, -48, or -96 decibels/octave." +#: js/utils/musicutils.js:1170 +#: js/widgets/temperament.js:787 +#.TRANS: musical temperament +msgid "equal" msgstr "" -#: js/WidgetBlocks.js:211 -msgid "The Temperament tool is used to define custom tuning." +#: js/utils/musicutils.js:1172 +#.TRANS: musical temperament +msgid "Pythagorean" msgstr "" -#: js/WidgetBlocks.js:277 -#: js/sampler.js:329 -msgid "Upload a sample and adjust its pitch center." +#: js/utils/musicutils.js:1174 +#.TRANS: musical temperament +msgid "just intonation" msgstr "" -#: js/WidgetBlocks.js:284 -#.TRANS: the speed at music is should be played. -msgid "sampler" +#: js/utils/musicutils.js:1176 +#.TRANS: musical temperament +msgid "meantone" msgstr "" -#: js/WidgetBlocks.js:329 -#: js/WidgetBlocks.js:334 -#: js/IntervalsBlocks.js:928 -#: js/VolumeBlocks.js:411 -#: js/ToneBlocks.js:946 -#: js/VolumeActions.js:218 -#: js/musicutils.js:704 -#: js/musicutils.js:755 -#: js/musicutils.js:798 -#: js/musicutils.js:820 -#: js/musicutils.js:1136 -#: js/synthutils.js:118 -#: js/modewidget.js:919 -#.TRANS: customize voice -msgid "custom" +#: js/utils/musicutils.js:1193 +msgid "major 7th" msgstr "" -#: js/WidgetBlocks.js:432 -msgid "The Meter block opens a tool to select strong beats for the meter." +#: js/utils/musicutils.js:1194 +msgid "minor 7th" msgstr "" -#: js/WidgetBlocks.js:473 -msgid "The oscilloscope block opens a tool to visualize waveforms." +#: js/utils/musicutils.js:1195 +msgid "dominant 7th" msgstr "" -#: js/WidgetBlocks.js:478 -msgid "oscilloscope" +#: js/utils/musicutils.js:1196 +msgid "minor-major 7th" msgstr "" -#: js/WidgetBlocks.js:530 -msgid "The Custom mode block opens a tool to explore musical mode (the spacing of the notes in a scale)." +#: js/utils/musicutils.js:1197 +msgid "fully-diminished 7th" msgstr "" -#: js/WidgetBlocks.js:536 -#.TRANS: musical mode is the pattern of half-steps in an octave, e.g., Major or Minor modes -msgid "custom mode" +#: js/utils/musicutils.js:1198 +msgid "half-diminished 7th" msgstr "" -#: js/WidgetBlocks.js:570 -msgid "The Tempo block opens a metronome to visualize the beat." +#: js/utils/musicutils.js:1557 +#: js/utils/musicutils.js:1569 +msgid "Equal (12EDO)" msgstr "" -#: js/WidgetBlocks.js:617 -msgid "The Arpeggio Widget is used to compose chord sequences." +#: js/utils/musicutils.js:1558 +#: js/utils/musicutils.js:1570 +msgid "5-limit Just Intonation" msgstr "" -#: js/WidgetBlocks.js:623 -#: js/IntervalsBlocks.js:683 -msgid "arpeggio" +#: js/utils/musicutils.js:1559 +#: js/utils/musicutils.js:1571 +msgid "Pythagorean (3-limit JI)" msgstr "" -#: js/WidgetBlocks.js:677 -msgid "The Pitch drum matrix is used to map pitches to drum sounds." +#: js/utils/musicutils.js:1560 +#: js/utils/musicutils.js:1561 +#: js/utils/musicutils.js:1572 +#: js/utils/musicutils.js:1573 +msgid "Meantone" msgstr "" -#: js/WidgetBlocks.js:682 -#.TRANS: makes a mapping between pitches and drum sounds -msgid "pitch-drum mapper" +#: js/utils/musicutils.js:1574 +msgid "Custom" msgstr "" -#: js/WidgetBlocks.js:724 -msgid "You must have at least one pitch block and one drum block in the matrix." +#: js/utils/musicutils.js:5387 +#: js/utils/musicutils.js:5430 +msgid "current" msgstr "" -#: js/WidgetBlocks.js:746 -msgid "The Pitch slider tool to is used to generate pitches at selected frequencies." +#: js/utils/musicutils.js:5390 +#: js/utils/musicutils.js:5421 +msgid "next" msgstr "" -#: js/WidgetBlocks.js:751 -#.TRANS: widget to generate pitches using a slider -msgid "pitch slider" +#: js/utils/musicutils.js:5393 +#: js/utils/musicutils.js:5426 +msgid "previous" msgstr "" -#: js/WidgetBlocks.js:788 -msgid "chromatic keyboard" +#: js/utils/synthutils.js:120 +#.TRANS: simple monotone synthesizer +msgid "simple-2" msgstr "" -#: js/WidgetBlocks.js:815 -#: js/WidgetBlocks.js:874 -#.TRANS: widget to generate pitches using a slider -msgid "music keyboard" +#: js/utils/synthutils.js:122 +#.TRANS: simple monotone synthesizer +msgid "simple-3" msgstr "" -#: js/WidgetBlocks.js:859 -#: js/WidgetBlocks.js:866 -msgid "The Music keyboard block opens a piano keyboard that can be used to create notes." +#: js/utils/synthutils.js:124 +#.TRANS: simple monotone synthesizer +msgid "simple-4" msgstr "" -#: js/WidgetBlocks.js:910 -msgid "The Pitch staircase tool to is used to generate pitches from a given ratio." +#: js/utils/synthutils.js:162 +#.TRANS: musical instrument +msgid "taiko" msgstr "" -#: js/WidgetBlocks.js:917 -#.TRANS: generate a progressive sequence of pitches -msgid "pitch staircase" +#: js/blocks/ActionBlocks.js:58 +msgid "The Return block will return a value from an action." msgstr "" -#: js/WidgetBlocks.js:982 -msgid "The Rhythm Maker block opens a tool to create drum machines." +#: js/blocks/ActionBlocks.js:75 +msgid "return" msgstr "" -#: js/WidgetBlocks.js:1036 -msgid "G major scale" +#: js/blocks/ActionBlocks.js:128 +msgid "The Return to URL block will return a value to a webpage." msgstr "" -#: js/WidgetBlocks.js:1064 -msgid "C major scale" +#: js/blocks/ActionBlocks.js:145 +msgid "return to URL" msgstr "" -#: js/WidgetBlocks.js:1097 -msgid "The Phrase Maker block opens a tool to create musical phrases." +#: js/blocks/ActionBlocks.js:233 +#: js/blocks/ActionBlocks.js:290 +#: js/blocks/ActionBlocks.js:501 +#: js/blocks/ActionBlocks.js:688 +msgid "The Calculate block returns a value calculated by an action." msgstr "" -#: js/WidgetBlocks.js:1104 -#.TRANS: assigns pitch to a sequence of beats to generate a melody -msgid "phrase maker" +#: js/blocks/ActionBlocks.js:251 +#: js/blocks/ActionBlocks.js:517 +#: js/blocks/ActionBlocks.js:707 +msgid "calculate" msgstr "" -#: js/WidgetBlocks.js:1168 -msgid "You must have at least one pitch block and one rhythm block in the matrix." +#: js/blocks/ActionBlocks.js:376 +#: js/blocks/ActionBlocks.js:593 +#: js/blocks/ActionBlocks.js:942 +#: js/blocks/ActionBlocks.js:1389 +#.TRANS: do is the do something or take an action. +msgid "The Do block is used to initiate an action." msgstr "" -#: js/WidgetBlocks.js:1220 -msgid "The Status block opens a tool for inspecting the status of Music Blocks as it is running." +#: js/blocks/ActionBlocks.js:390 +#: js/blocks/ActionBlocks.js:610 +#: js/blocks/ActionBlocks.js:959 +#: js/blocks/ActionBlocks.js:1048 +#: js/blocks/MeterBlocks.js:769 +msgid "do1" msgstr "" -#: js/IntervalsBlocks.js:45 -msgid "set temperament" +#: js/blocks/ActionBlocks.js:390 +#: js/blocks/ActionBlocks.js:610 +#: js/blocks/ActionBlocks.js:959 +#: js/blocks/ActionBlocks.js:1048 +#: js/blocks/FlowBlocks.js:742 +#: js/blocks/FlowBlocks.js:822 +#: js/blocks/MeterBlocks.js:769 +msgid "do" msgstr "" -#: js/IntervalsBlocks.js:63 -#: js/MediaBlocks.js:746 -#: js/PitchBlocks.js:657 -#: js/PitchBlocks.js:933 -#: js/PitchBlocks.js:972 -#: js/PitchBlocks.js:1005 -#: js/PitchBlocks.js:1166 -#: js/PitchBlocks.js:1679 -#: js/PitchBlocks.js:1720 -#: js/PitchBlocks.js:1827 -#: js/ToneBlocks.js:1025 -#.TRANS: adjusts the shift up or down by one octave (twelve half-steps in the interval between two notes, one having twice or half the frequency in Hz of the other.) -msgid "octave" +#: js/blocks/ActionBlocks.js:791 +#: js/blocks/ActionBlocks.js:865 +msgid "The Arg block contains the value of an argument passed to an action." msgstr "" -#: js/IntervalsBlocks.js:99 -msgid "The Temperament name block is used to select a tuning method." +#: js/blocks/ActionBlocks.js:806 +#: js/blocks/ActionBlocks.js:878 +msgid "arg" msgstr "" -#: js/IntervalsBlocks.js:161 -msgid "doubly" +#: js/blocks/ActionBlocks.js:836 +#: js/blocks/ActionBlocks.js:900 +#: js/blocks/ActionBlocks.js:908 +msgid "Invalid argument" msgstr "" -#: js/IntervalsBlocks.js:166 -msgid "The Doubly block will double the size of an interval." +#: js/blocks/ActionBlocks.js:944 +msgid "In the example, it is used with the One of block to choose a random phase." msgstr "" -#: js/IntervalsBlocks.js:262 -msgid "interval number" +#: js/blocks/ActionBlocks.js:1019 +#: js/blocks/ActionBlocks.js:1026 +msgid "The Listen block is used to listen for an event such as a mouse click." msgstr "" -#: js/IntervalsBlocks.js:330 -#.TRANS: measure the distance between two pitches in semi-tones -msgid "semi-tone interval measure" +#: js/blocks/ActionBlocks.js:1028 +msgid "When the event happens, an action is taken." msgstr "" -#: js/IntervalsBlocks.js:397 -#: js/IntervalsBlocks.js:513 -msgid "You must use two pitch blocks when measuring an interval." +#: js/blocks/ActionBlocks.js:1045 +msgid "on" msgstr "" -#: js/IntervalsBlocks.js:439 -msgid "The Scalar interval block measures the distance between two notes in the current key and mode." +#: js/blocks/ActionBlocks.js:1048 +#: js/blocks/ActionBlocks.js:1049 +#: js/blocks/ActionBlocks.js:1153 +msgid "event" msgstr "" -#: js/IntervalsBlocks.js:445 -#.TRANS: measure the distance between two pitches in steps of musical scale -msgid "scalar interval measure" +#: js/blocks/ActionBlocks.js:1133 +msgid "The Broadcast block is used to trigger an event." msgstr "" -#: js/IntervalsBlocks.js:592 -#: js/musicutils.js:637 -#: js/musicutils.js:908 -#.TRANS: perfect is a music term related to intervals -msgid "perfect" +#: js/blocks/ActionBlocks.js:1151 +msgid "broadcast" msgstr "" -#: js/IntervalsBlocks.js:621 -msgid "In the figure, we add sol# to sol." +#: js/blocks/ActionBlocks.js:1208 +msgid "Each Start block is a separate voice." msgstr "" -#: js/IntervalsBlocks.js:627 -#: js/OrnamentBlocks.js:220 -#.TRANS: calculate a relative step between notes based on semi-tones -msgid "semi-tone interval" +#: js/blocks/ActionBlocks.js:1304 +msgid "It is often used for storing a phrase of music that is repeated." msgstr "" -#: js/IntervalsBlocks.js:676 -msgid "The output of the example is: do, mi, sol, sol, ti, mi" +#: js/blocks/ActionBlocks.js:1495 +msgid "define temperament" msgstr "" -#: js/IntervalsBlocks.js:735 -msgid "The Chord block calculates common chords." +#: js/blocks/BooleanBlocks.js:44 +msgid "The Not block is the logical not operator." msgstr "" -#: js/IntervalsBlocks.js:737 -msgid "In the figure, we generate a C-major chord." +#: js/blocks/BooleanBlocks.js:62 +msgid "not" msgstr "" -#: js/IntervalsBlocks.js:742 -msgid "chord" +#: js/blocks/BooleanBlocks.js:134 +msgid "The And block is the logical and operator." msgstr "" -#: js/IntervalsBlocks.js:794 -msgid "The Ratio Interval block calculates an interval based on a ratio." +#: js/blocks/BooleanBlocks.js:152 +msgid "and" msgstr "" -#: js/IntervalsBlocks.js:799 -msgid "ratio interval" +#: js/blocks/BooleanBlocks.js:218 +msgid "The Or block is the logical or operator." msgstr "" -#: js/IntervalsBlocks.js:868 -msgid "In the figure, we add la to sol." +#: js/blocks/BooleanBlocks.js:236 +msgid "or" msgstr "" -#: js/IntervalsBlocks.js:924 -#.TRANS: define a custom mode -msgid "define mode" +#: js/blocks/BooleanBlocks.js:302 +msgid "The XOR block is the logical XOR operator." msgstr "" -#: js/IntervalsBlocks.js:977 -msgid "movable Do" +#: js/blocks/BooleanBlocks.js:320 +msgid "xor" msgstr "" -#: js/IntervalsBlocks.js:1028 -#.TRANS: mode length is the number of notes in the mode, e.g., 7 for major and minor scales; 12 for chromatic scales -msgid "mode length" +#: js/blocks/BooleanBlocks.js:808 +msgid "The Equal block returns True if the two numbers are equal." msgstr "" -#: js/IntervalsBlocks.js:1037 -msgid "The Mode length block is the number of notes in the current scale." +#: js/blocks/BooleanBlocks.js:909 +msgid "The Not-equal-to block returns True if the two numbers are not equal to each other." msgstr "" -#: js/IntervalsBlocks.js:1039 -msgid "Most Western scales have 7 notes." +#: js/blocks/BooleanBlocks.js:1008 +msgid "The Boolean block is used to specify true or false." msgstr "" -#: js/IntervalsBlocks.js:1088 -#.TRANS: the mode in music is 'major', 'minor', etc. -msgid "current mode" +#: js/blocks/BoxesBlocks.js:53 +#: js/blocks/BoxesBlocks.js:59 +msgid "The Add-to block is used to add to the value stored in a box." msgstr "" -#: js/IntervalsBlocks.js:1141 -#.TRANS: the key is a group of pitches with which a music composition is created -msgid "current key" +#: js/blocks/BoxesBlocks.js:61 +msgid "It can also be used with other blocks such as Color and Pen size." msgstr "" -#: js/IntervalsBlocks.js:1193 -#: js/IntervalsBlocks.js:1238 -#.TRANS: set the key and mode, e.g. C Major -msgid "set key" +#: js/blocks/BoxesBlocks.js:73 +msgid "add" msgstr "" -#: js/IntervalsBlocks.js:1247 -#: js/IntervalsBlocks.js:1253 -msgid "The Set key block is used to set the key and mode," +#: js/blocks/BoxesBlocks.js:75 +#: js/widgets/temperament.js:857 +msgid "to" msgstr "" -#: js/IntervalsBlocks.js:1253 -msgid "eg C Major" +#: js/blocks/BoxesBlocks.js:75 +#: js/blocks/BoxesBlocks.js:595 +#: js/blocks/HeapBlocks.js:544 +msgid "value1" msgstr "" -#: js/IntervalsBlocks.js:1266 -#: js/DictBlocks.js:215 -#: js/DictBlocks.js:216 -#: js/DictBlocks.js:289 -#: js/DictBlocks.js:290 -#: js/DictBlocks.js:357 -#: js/DictBlocks.js:430 -#: js/DictBlocks.js:431 -#.TRANS: key, e.g., C in C Major -msgid "key" +#: js/blocks/BoxesBlocks.js:118 +msgid "Block does not support incrementing." msgstr "" -#: js/ActionBlocks.js:58 -msgid "The Return block will return a value from an action." +#: js/blocks/BoxesBlocks.js:152 +msgid "The Add-1-to block adds one to the value stored in a box." msgstr "" -#: js/ActionBlocks.js:75 -msgid "return" +#: js/blocks/BoxesBlocks.js:163 +msgid "add 1 to" msgstr "" -#: js/ActionBlocks.js:128 -msgid "The Return to URL block will return a value to a webpage." +#: js/blocks/BoxesBlocks.js:211 +msgid "The Subtract-1-from block subtracts one from the value stored in a box." msgstr "" -#: js/ActionBlocks.js:145 -msgid "return to URL" +#: js/blocks/BoxesBlocks.js:222 +msgid "subtract 1 from" msgstr "" -#: js/ActionBlocks.js:233 -#: js/ActionBlocks.js:290 -#: js/ActionBlocks.js:501 -#: js/ActionBlocks.js:688 -msgid "The Calculate block returns a value calculated by an action." +#: js/blocks/BoxesBlocks.js:270 +#: js/blocks/BoxesBlocks.js:387 +msgid "The Box block returns the value stored in a box." msgstr "" -#: js/ActionBlocks.js:251 -#: js/ActionBlocks.js:517 -#: js/ActionBlocks.js:707 -msgid "calculate" +#: js/blocks/BoxesBlocks.js:500 +#: js/blocks/BoxesBlocks.js:576 +msgid "The Store in block will store a value in a box." msgstr "" -#: js/ActionBlocks.js:376 -#: js/ActionBlocks.js:593 -#: js/ActionBlocks.js:942 -#: js/ActionBlocks.js:1389 -#.TRANS: do is the do something or take an action. -msgid "The Do block is used to initiate an action." +#: js/blocks/BoxesBlocks.js:595 +#: js/blocks/EnsembleBlocks.js:391 +#: js/blocks/EnsembleBlocks.js:402 +msgid "name1" msgstr "" -#: js/ActionBlocks.js:390 -#: js/ActionBlocks.js:610 -#: js/ActionBlocks.js:959 -#: js/ActionBlocks.js:1048 -#: js/MeterBlocks.js:769 -msgid "do1" +#: js/blocks/BoxesBlocks.js:652 +msgid "The Box2 block returns the value stored in Box2." msgstr "" -#: js/ActionBlocks.js:390 -#: js/ActionBlocks.js:610 -#: js/ActionBlocks.js:959 -#: js/ActionBlocks.js:1048 -#: js/FlowBlocks.js:742 -#: js/FlowBlocks.js:822 -#: js/MeterBlocks.js:769 -msgid "do" +#: js/blocks/BoxesBlocks.js:703 +msgid "The Store in Box2 block is used to store a value in Box2." msgstr "" -#: js/ActionBlocks.js:791 -#: js/ActionBlocks.js:865 -msgid "The Arg block contains the value of an argument passed to an action." +#: js/blocks/BoxesBlocks.js:715 +msgid "store in box2" msgstr "" -#: js/ActionBlocks.js:806 -#: js/ActionBlocks.js:878 -msgid "arg" +#: js/blocks/BoxesBlocks.js:761 +msgid "The Box1 block returns the value stored in Box1." msgstr "" -#: js/ActionBlocks.js:836 -#: js/ActionBlocks.js:900 -#: js/ActionBlocks.js:908 -msgid "Invalid argument" +#: js/blocks/BoxesBlocks.js:812 +msgid "The Store in Box1 block is used to store a value in Box1." msgstr "" -#: js/ActionBlocks.js:944 -msgid "In the example, it is used with the One of block to choose a random phase." +#: js/blocks/BoxesBlocks.js:826 +msgid "store in box1" msgstr "" -#: js/ActionBlocks.js:1019 -#: js/ActionBlocks.js:1026 -msgid "The Listen block is used to listen for an event such as a mouse click." +#: js/blocks/DictBlocks.js:77 +msgid "show dictionary" msgstr "" -#: js/ActionBlocks.js:1028 -msgid "When the event happens, an action is taken." +#: js/blocks/DictBlocks.js:80 +#: js/blocks/DictBlocks.js:145 +#: js/blocks/DictBlocks.js:216 +#: js/blocks/DictBlocks.js:290 +#: js/blocks/ProgramBlocks.js:396 +#: js/blocks/ProgramBlocks.js:501 +#: js/blocks/ProgramBlocks.js:664 +msgid "My Dictionary" msgstr "" -#: js/ActionBlocks.js:1045 -msgid "on" +#: js/blocks/DictBlocks.js:129 +msgid "The Dictionary block returns a dictionary." msgstr "" -#: js/ActionBlocks.js:1048 -#: js/ActionBlocks.js:1049 -#: js/ActionBlocks.js:1153 -msgid "event" +#: js/blocks/DictBlocks.js:197 +#: js/blocks/DictBlocks.js:339 +msgid "The Get-dict block returns a value in the dictionary for a specified key." msgstr "" -#: js/ActionBlocks.js:1133 -msgid "The Broadcast block is used to trigger an event." +#: js/blocks/DictBlocks.js:212 +#: js/blocks/DictBlocks.js:354 +#.TRANS: retrieve a value from the dictionary with a given key +msgid "get value" msgstr "" -#: js/ActionBlocks.js:1151 -msgid "broadcast" +#: js/blocks/DictBlocks.js:215 +#: js/blocks/DictBlocks.js:216 +#: js/blocks/DictBlocks.js:289 +#: js/blocks/DictBlocks.js:290 +#: js/blocks/DictBlocks.js:357 +#: js/blocks/DictBlocks.js:430 +#: js/blocks/DictBlocks.js:431 +msgid "key2" msgstr "" -#: js/ActionBlocks.js:1208 -msgid "Each Start block is a separate voice." +#: js/blocks/DictBlocks.js:215 +#: js/blocks/DictBlocks.js:216 +#: js/blocks/DictBlocks.js:289 +#: js/blocks/DictBlocks.js:290 +#: js/blocks/DictBlocks.js:357 +#: js/blocks/DictBlocks.js:430 +#: js/blocks/DictBlocks.js:431 +#: js/blocks/IntervalsBlocks.js:1462 +#.TRANS: key, e.g., C in C Major +msgid "key" msgstr "" -#: js/ActionBlocks.js:1304 -msgid "It is often used for storing a phrase of music that is repeated." +#: js/blocks/DictBlocks.js:271 +#: js/blocks/DictBlocks.js:411 +msgid "The Set-dict block sets a value in the dictionary for a specified key." msgstr "" -#: js/ActionBlocks.js:1495 -msgid "define temperament" +#: js/blocks/DictBlocks.js:286 +#: js/blocks/DictBlocks.js:427 +#.TRANS: set a value in the dictionary for a given key +msgid "set value" msgstr "" -#: js/EnsembleBlocks.js:66 +#: js/blocks/EnsembleBlocks.js:66 msgid "mouse index heap" msgstr "" -#: js/EnsembleBlocks.js:68 +#: js/blocks/EnsembleBlocks.js:68 msgid "The Mouse index heap block returns a value in the heap at a specified location for a specified mouse." msgstr "" -#: js/EnsembleBlocks.js:77 -#: js/EnsembleBlocks.js:1080 +#: js/blocks/EnsembleBlocks.js:77 +#: js/blocks/EnsembleBlocks.js:1080 msgid "mouse name" msgstr "" -#: js/EnsembleBlocks.js:77 -#: js/EnsembleBlocks.js:92 -#: js/HeapBlocks.js:544 +#: js/blocks/EnsembleBlocks.js:77 +#: js/blocks/EnsembleBlocks.js:92 +#: js/blocks/HeapBlocks.js:544 #.TRANS: value1 is a numeric value (JAPANESE ONLY) msgid "index" msgstr "" -#: js/EnsembleBlocks.js:80 +#: js/blocks/EnsembleBlocks.js:80 msgid "turtle index heap" msgstr "" -#: js/EnsembleBlocks.js:82 +#: js/blocks/EnsembleBlocks.js:82 msgid "The Turtle index heap block returns a value in the heap at a specified location for a specified turtle." msgstr "" -#: js/EnsembleBlocks.js:90 -#: js/EnsembleBlocks.js:167 -#: js/EnsembleBlocks.js:230 -#: js/EnsembleBlocks.js:316 -#: js/EnsembleBlocks.js:362 -#: js/EnsembleBlocks.js:400 -#: js/EnsembleBlocks.js:454 -#: js/EnsembleBlocks.js:504 -#: js/EnsembleBlocks.js:550 -#: js/EnsembleBlocks.js:597 -#: js/EnsembleBlocks.js:651 -#: js/EnsembleBlocks.js:763 -#: js/EnsembleBlocks.js:854 -#: js/EnsembleBlocks.js:915 -#: js/EnsembleBlocks.js:955 -#: js/EnsembleBlocks.js:1219 -#: js/EnsembleBlocks.js:1293 +#: js/blocks/EnsembleBlocks.js:90 +#: js/blocks/EnsembleBlocks.js:167 +#: js/blocks/EnsembleBlocks.js:230 +#: js/blocks/EnsembleBlocks.js:316 +#: js/blocks/EnsembleBlocks.js:362 +#: js/blocks/EnsembleBlocks.js:400 +#: js/blocks/EnsembleBlocks.js:454 +#: js/blocks/EnsembleBlocks.js:504 +#: js/blocks/EnsembleBlocks.js:550 +#: js/blocks/EnsembleBlocks.js:597 +#: js/blocks/EnsembleBlocks.js:651 +#: js/blocks/EnsembleBlocks.js:763 +#: js/blocks/EnsembleBlocks.js:854 +#: js/blocks/EnsembleBlocks.js:915 +#: js/blocks/EnsembleBlocks.js:955 +#: js/blocks/EnsembleBlocks.js:1219 +#: js/blocks/EnsembleBlocks.js:1293 #.TRANS: Yertle is the name of a turtle. msgid "Yertle" msgstr "" -#: js/EnsembleBlocks.js:92 -#: js/EnsembleBlocks.js:1089 +#: js/blocks/EnsembleBlocks.js:92 +#: js/blocks/EnsembleBlocks.js:1089 msgid "turtle name" msgstr "" -#: js/EnsembleBlocks.js:122 -#: js/EnsembleBlocks.js:1197 -#: js/HeapBlocks.js:474 -#: js/HeapBlocks.js:572 +#: js/blocks/EnsembleBlocks.js:122 +#: js/blocks/EnsembleBlocks.js:1197 +#: js/blocks/HeapBlocks.js:474 +#: js/blocks/HeapBlocks.js:572 msgid "Index must be > 0." msgstr "" -#: js/EnsembleBlocks.js:127 -#: js/HeapBlocks.js:479 -#: js/HeapBlocks.js:577 +#: js/blocks/EnsembleBlocks.js:127 +#: js/blocks/HeapBlocks.js:479 +#: js/blocks/HeapBlocks.js:577 msgid "Maximum heap size is 1000." msgstr "" -#: js/EnsembleBlocks.js:145 +#: js/blocks/EnsembleBlocks.js:145 msgid "stop mouse" msgstr "" -#: js/EnsembleBlocks.js:147 +#: js/blocks/EnsembleBlocks.js:147 msgid "The Stop mouse block stops the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:158 +#: js/blocks/EnsembleBlocks.js:158 msgid "stop turtle" msgstr "" -#: js/EnsembleBlocks.js:160 +#: js/blocks/EnsembleBlocks.js:160 msgid "The Stop turtle block stops the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:184 -#: js/EnsembleBlocks.js:247 -#: js/EnsembleBlocks.js:413 -#: js/EnsembleBlocks.js:468 -#: js/EnsembleBlocks.js:706 -#: js/EnsembleBlocks.js:808 -#: js/EnsembleBlocks.js:870 -#: js/EnsembleBlocks.js:1190 -#: js/EnsembleBlocks.js:1253 +#: js/blocks/EnsembleBlocks.js:184 +#: js/blocks/EnsembleBlocks.js:247 +#: js/blocks/EnsembleBlocks.js:413 +#: js/blocks/EnsembleBlocks.js:468 +#: js/blocks/EnsembleBlocks.js:706 +#: js/blocks/EnsembleBlocks.js:808 +#: js/blocks/EnsembleBlocks.js:870 +#: js/blocks/EnsembleBlocks.js:1190 +#: js/blocks/EnsembleBlocks.js:1253 msgid "Cannot find mouse" msgstr "" -#: js/EnsembleBlocks.js:186 -#: js/EnsembleBlocks.js:249 -#: js/EnsembleBlocks.js:415 -#: js/EnsembleBlocks.js:470 -#: js/EnsembleBlocks.js:708 -#: js/EnsembleBlocks.js:810 -#: js/EnsembleBlocks.js:872 -#: js/EnsembleBlocks.js:1192 -#: js/EnsembleBlocks.js:1255 +#: js/blocks/EnsembleBlocks.js:186 +#: js/blocks/EnsembleBlocks.js:249 +#: js/blocks/EnsembleBlocks.js:415 +#: js/blocks/EnsembleBlocks.js:470 +#: js/blocks/EnsembleBlocks.js:708 +#: js/blocks/EnsembleBlocks.js:810 +#: js/blocks/EnsembleBlocks.js:872 +#: js/blocks/EnsembleBlocks.js:1192 +#: js/blocks/EnsembleBlocks.js:1255 msgid "Cannot find turtle" msgstr "" -#: js/EnsembleBlocks.js:206 +#: js/blocks/EnsembleBlocks.js:206 msgid "start mouse" msgstr "" -#: js/EnsembleBlocks.js:209 +#: js/blocks/EnsembleBlocks.js:209 msgid "The Start mouse block starts the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:220 +#: js/blocks/EnsembleBlocks.js:220 msgid "start turtle" msgstr "" -#: js/EnsembleBlocks.js:223 +#: js/blocks/EnsembleBlocks.js:223 msgid "The Start turtle block starts the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:256 +#: js/blocks/EnsembleBlocks.js:256 msgid "Mouse is already running." msgstr "" -#: js/EnsembleBlocks.js:258 +#: js/blocks/EnsembleBlocks.js:258 msgid "Turtle is already running." msgstr "" -#: js/EnsembleBlocks.js:282 +#: js/blocks/EnsembleBlocks.js:282 msgid "Cannot find start block" msgstr "" -#: js/EnsembleBlocks.js:292 +#: js/blocks/EnsembleBlocks.js:292 #.TRANS: pen color for this mouse msgid "mouse color" msgstr "" -#: js/EnsembleBlocks.js:294 +#: js/blocks/EnsembleBlocks.js:294 msgid "The Mouse color block returns the pen color of the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:306 +#: js/blocks/EnsembleBlocks.js:306 #.TRANS: pen color for this turtle msgid "turtle color" msgstr "" -#: js/EnsembleBlocks.js:308 +#: js/blocks/EnsembleBlocks.js:308 msgid "The Turtle color block returns the pen color of the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:338 +#: js/blocks/EnsembleBlocks.js:338 #.TRANS: heading (compass direction) for this mouse msgid "mouse heading" msgstr "" -#: js/EnsembleBlocks.js:340 +#: js/blocks/EnsembleBlocks.js:340 msgid "The Mouse heading block returns the heading of the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:352 +#: js/blocks/EnsembleBlocks.js:352 #.TRANS: heading (compass direction) for this turtle msgid "turtle heading" msgstr "" -#: js/EnsembleBlocks.js:354 +#: js/blocks/EnsembleBlocks.js:354 msgid "The Turtle heading block returns the heading of the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:384 -#: js/EnsembleBlocks.js:439 +#: js/blocks/EnsembleBlocks.js:384 +#: js/blocks/EnsembleBlocks.js:439 #.TRANS: set xy position for this mouse msgid "set mouse" msgstr "" -#: js/EnsembleBlocks.js:391 -#: js/EnsembleBlocks.js:402 -#: js/BoxesBlocks.js:595 -msgid "name1" -msgstr "" - -#: js/EnsembleBlocks.js:391 -#: js/EnsembleBlocks.js:402 -#: js/ProgramBlocks.js:881 -#: js/GraphicsBlocks.js:235 -#: js/GraphicsBlocks.js:313 -#: js/GraphicsBlocks.js:436 -#: js/GraphicsBlocks.js:487 -#: js/GraphicsBlocks.js:534 -#: js/GraphicsBlocks.js:750 +#: js/blocks/EnsembleBlocks.js:391 +#: js/blocks/EnsembleBlocks.js:402 +#: js/blocks/GraphicsBlocks.js:235 +#: js/blocks/GraphicsBlocks.js:313 +#: js/blocks/GraphicsBlocks.js:436 +#: js/blocks/GraphicsBlocks.js:487 +#: js/blocks/GraphicsBlocks.js:534 +#: js/blocks/GraphicsBlocks.js:750 +#: js/blocks/ProgramBlocks.js:881 msgid "x" msgstr "" -#: js/EnsembleBlocks.js:391 -#: js/EnsembleBlocks.js:402 -#: js/ProgramBlocks.js:881 -#: js/GraphicsBlocks.js:149 -#: js/GraphicsBlocks.js:313 -#: js/GraphicsBlocks.js:436 -#: js/GraphicsBlocks.js:487 -#: js/GraphicsBlocks.js:534 -#: js/GraphicsBlocks.js:750 +#: js/blocks/EnsembleBlocks.js:391 +#: js/blocks/EnsembleBlocks.js:402 +#: js/blocks/GraphicsBlocks.js:149 +#: js/blocks/GraphicsBlocks.js:313 +#: js/blocks/GraphicsBlocks.js:436 +#: js/blocks/GraphicsBlocks.js:487 +#: js/blocks/GraphicsBlocks.js:534 +#: js/blocks/GraphicsBlocks.js:750 +#: js/blocks/ProgramBlocks.js:881 msgid "y" msgstr "" -#: js/EnsembleBlocks.js:395 -#: js/EnsembleBlocks.js:452 +#: js/blocks/EnsembleBlocks.js:395 +#: js/blocks/EnsembleBlocks.js:452 #.TRANS: set xy position for this turtle msgid "set turtle" msgstr "" -#: js/EnsembleBlocks.js:433 +#: js/blocks/EnsembleBlocks.js:433 msgid "The Set mouse block sends a stack of blocks to be run by the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:446 +#: js/blocks/EnsembleBlocks.js:446 msgid "The Set turtle block sends a stack of blocks to be run by the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:480 +#: js/blocks/EnsembleBlocks.js:480 #.TRANS: y position for this mouse msgid "mouse y" msgstr "" -#: js/EnsembleBlocks.js:482 +#: js/blocks/EnsembleBlocks.js:482 msgid "The Y mouse block returns the Y position of the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:494 +#: js/blocks/EnsembleBlocks.js:494 #.TRANS: y position for this turtle msgid "turtle y" msgstr "" -#: js/EnsembleBlocks.js:496 +#: js/blocks/EnsembleBlocks.js:496 msgid "The Y turtle block returns the Y position of the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:526 +#: js/blocks/EnsembleBlocks.js:526 #.TRANS: x position for this mouse msgid "mouse x" msgstr "" -#: js/EnsembleBlocks.js:528 +#: js/blocks/EnsembleBlocks.js:528 msgid "The X mouse block returns the X position of the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:540 +#: js/blocks/EnsembleBlocks.js:540 #.TRANS: x position for this turtle msgid "turtle x" msgstr "" -#: js/EnsembleBlocks.js:542 +#: js/blocks/EnsembleBlocks.js:542 msgid "The X turtle block returns the X position of the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:573 +#: js/blocks/EnsembleBlocks.js:573 #.TRANS: notes played by this mouse msgid "mouse notes played" msgstr "" -#: js/EnsembleBlocks.js:575 +#: js/blocks/EnsembleBlocks.js:575 msgid "The Mouse elapse notes block returns the number of notes played by the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:587 +#: js/blocks/EnsembleBlocks.js:587 #.TRANS: notes played by this turtle msgid "turtle notes played" msgstr "" -#: js/EnsembleBlocks.js:589 +#: js/blocks/EnsembleBlocks.js:589 msgid "The Turtle elapse notes block returns the number of notes played by the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:627 +#: js/blocks/EnsembleBlocks.js:627 #.TRANS: convert current note for this turtle to piano key (1-88) msgid "mouse pitch number" msgstr "" -#: js/EnsembleBlocks.js:629 +#: js/blocks/EnsembleBlocks.js:629 msgid "The Mouse pitch block returns the current pitch number being played by the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:641 +#: js/blocks/EnsembleBlocks.js:641 #.TRANS: convert current note for this turtle to piano key (1-88) msgid "turtle pitch number" msgstr "" -#: js/EnsembleBlocks.js:643 -msgid "The Turrle pitch block returns the current pitch number being played by the specified turtle." +#: js/blocks/EnsembleBlocks.js:643 +msgid "The Turtle pitch block returns the current pitch number being played by the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:747 -#: js/EnsembleBlocks.js:819 +#: js/blocks/EnsembleBlocks.js:747 +#: js/blocks/EnsembleBlocks.js:819 #.TRANS: note value is the duration of the note played by this mouse msgid "mouse note value" msgstr "" -#: js/EnsembleBlocks.js:757 +#: js/blocks/EnsembleBlocks.js:757 #.TRANS: note value is the duration of the note played by this turtle msgid "turtle note value" msgstr "" -#: js/EnsembleBlocks.js:830 +#: js/blocks/EnsembleBlocks.js:830 #.TRANS: sync is short for synchronization msgid "mouse sync" msgstr "" -#: js/EnsembleBlocks.js:832 +#: js/blocks/EnsembleBlocks.js:832 msgid "The Mouse sync block aligns the beat count between mice." msgstr "" -#: js/EnsembleBlocks.js:844 +#: js/blocks/EnsembleBlocks.js:844 #.TRANS: sync is short for synchronization msgid "turtle sync" msgstr "" -#: js/EnsembleBlocks.js:846 +#: js/blocks/EnsembleBlocks.js:846 msgid "The Turtle sync block aligns the beat count between turtles." msgstr "" -#: js/EnsembleBlocks.js:887 +#: js/blocks/EnsembleBlocks.js:887 msgid "The Found mouse block will return true if the specified mouse can be found." msgstr "" -#: js/EnsembleBlocks.js:893 +#: js/blocks/EnsembleBlocks.js:893 msgid "found mouse" msgstr "" -#: js/EnsembleBlocks.js:903 +#: js/blocks/EnsembleBlocks.js:903 msgid "The Found turtle block will return true if the specified turtle can be found." msgstr "" -#: js/EnsembleBlocks.js:909 +#: js/blocks/EnsembleBlocks.js:909 msgid "found turtle" msgstr "" -#: js/EnsembleBlocks.js:932 +#: js/blocks/EnsembleBlocks.js:932 msgid "new mouse" msgstr "" -#: js/EnsembleBlocks.js:934 +#: js/blocks/EnsembleBlocks.js:934 msgid "The New mouse block will create a new mouse." msgstr "" -#: js/EnsembleBlocks.js:945 +#: js/blocks/EnsembleBlocks.js:945 msgid "new turtle" msgstr "" -#: js/EnsembleBlocks.js:947 +#: js/blocks/EnsembleBlocks.js:947 msgid "The New turtle block will create a new turtle." msgstr "" -#: js/EnsembleBlocks.js:1011 +#: js/blocks/EnsembleBlocks.js:1011 msgid "set mouse color" msgstr "" -#: js/EnsembleBlocks.js:1014 +#: js/blocks/EnsembleBlocks.js:1014 msgid "The Set-mouse-color block is used to set the color of a mouse." msgstr "" -#: js/EnsembleBlocks.js:1020 +#: js/blocks/EnsembleBlocks.js:1020 msgid "set turtle color" msgstr "" -#: js/EnsembleBlocks.js:1023 +#: js/blocks/EnsembleBlocks.js:1023 msgid "The Set-turtle-color block is used to set the color of a turtle." msgstr "" -#: js/EnsembleBlocks.js:1083 +#: js/blocks/EnsembleBlocks.js:1083 msgid "The Mouse-name block returns the name of a mouse." msgstr "" -#: js/EnsembleBlocks.js:1092 +#: js/blocks/EnsembleBlocks.js:1092 msgid "The Turtle-name block returns the name of a turtle." msgstr "" -#: js/EnsembleBlocks.js:1115 +#: js/blocks/EnsembleBlocks.js:1115 msgid "mouse count" msgstr "" -#: js/EnsembleBlocks.js:1118 +#: js/blocks/EnsembleBlocks.js:1118 msgid "The Mouse-count block returns the number of mice." msgstr "" -#: js/EnsembleBlocks.js:1124 +#: js/blocks/EnsembleBlocks.js:1124 msgid "turtle count" msgstr "" -#: js/EnsembleBlocks.js:1127 +#: js/blocks/EnsembleBlocks.js:1127 msgid "The Turtle-count block returns the number of turtles." msgstr "" -#: js/EnsembleBlocks.js:1149 +#: js/blocks/EnsembleBlocks.js:1149 msgid "nth mouse name" msgstr "" -#: js/EnsembleBlocks.js:1152 +#: js/blocks/EnsembleBlocks.js:1152 msgid "The Nth-Mouse name block returns the name of the nth mouse." msgstr "" -#: js/EnsembleBlocks.js:1158 +#: js/blocks/EnsembleBlocks.js:1158 msgid "nth turtle name" msgstr "" -#: js/EnsembleBlocks.js:1161 +#: js/blocks/EnsembleBlocks.js:1161 msgid "The Nth-Turtle name block returns the name of the nth turtle." msgstr "" -#: js/EnsembleBlocks.js:1205 -#: js/EnsembleBlocks.js:1265 +#: js/blocks/EnsembleBlocks.js:1205 +#: js/blocks/EnsembleBlocks.js:1265 msgid "set name" msgstr "" -#: js/EnsembleBlocks.js:1214 -#: js/EnsembleBlocks.js:1221 +#: js/blocks/EnsembleBlocks.js:1214 +#: js/blocks/EnsembleBlocks.js:1221 msgid "source" msgstr "" -#: js/EnsembleBlocks.js:1214 -#: js/EnsembleBlocks.js:1221 +#: js/blocks/EnsembleBlocks.js:1214 +#: js/blocks/EnsembleBlocks.js:1221 msgid "target" msgstr "" -#: js/EnsembleBlocks.js:1271 +#: js/blocks/EnsembleBlocks.js:1271 msgid "The Set-name block is used to name a mouse." msgstr "" -#: js/EnsembleBlocks.js:1284 +#: js/blocks/EnsembleBlocks.js:1284 msgid "The Set-name block is used to name a turtle." msgstr "" -#: js/BooleanBlocks.js:44 -msgid "The Not block is the logical not operator." -msgstr "" - -#: js/BooleanBlocks.js:62 -msgid "not" -msgstr "" - -#: js/BooleanBlocks.js:134 -msgid "The And block is the logical and operator." -msgstr "" - -#: js/BooleanBlocks.js:152 -msgid "and" -msgstr "" - -#: js/BooleanBlocks.js:218 -msgid "The Or block is the logical or operator." -msgstr "" - -#: js/BooleanBlocks.js:236 -msgid "or" -msgstr "" - -#: js/BooleanBlocks.js:302 -msgid "The XOR block is the logical XOR operator." -msgstr "" - -#: js/BooleanBlocks.js:320 -msgid "xor" -msgstr "" - -#: js/BooleanBlocks.js:808 -msgid "The Equal block returns True if the two numbers are equal." -msgstr "" - -#: js/BooleanBlocks.js:909 -msgid "The Not-equal-to block returns True if the two numbers are not equal to each other." -msgstr "" - -#: js/BooleanBlocks.js:1008 -msgid "The Boolean block is used to specify true or false." -msgstr "" - -#: js/MediaBlocks.js:35 -#.TRANS: right side of the screen -msgid "right (screen)" -msgstr "" - -#: js/MediaBlocks.js:45 -#: js/MediaBlocks.js:56 -msgid "The Right block returns the position of the right of the canvas." -msgstr "" - -#: js/MediaBlocks.js:97 -#.TRANS: left side of the screen -msgid "left (screen)" -msgstr "" - -#: js/MediaBlocks.js:107 -#: js/MediaBlocks.js:118 -msgid "The Left block returns the position of the left of the canvas." -msgstr "" - -#: js/MediaBlocks.js:158 -msgid "top (screen)" -msgstr "" - -#: js/MediaBlocks.js:168 -#: js/MediaBlocks.js:179 -msgid "The Top block returns the position of the top of the canvas." -msgstr "" - -#: js/MediaBlocks.js:219 -msgid "bottom (screen)" +#: js/blocks/ExtrasBlocks.js:33 +msgid "fraction" msgstr "" -#: js/MediaBlocks.js:229 -#: js/MediaBlocks.js:240 -msgid "The Bottom block returns the position of the bottom of the canvas." +#: js/blocks/ExtrasBlocks.js:36 +msgid "Convert a float to a fraction" msgstr "" -#: js/MediaBlocks.js:282 -msgid "width" +#: js/blocks/ExtrasBlocks.js:93 +msgid "save as ABC" msgstr "" -#: js/MediaBlocks.js:291 -msgid "The Width block returns the width of the canvas." +#: js/blocks/ExtrasBlocks.js:96 +#: js/blocks/ExtrasBlocks.js:132 +#: js/blocks/ExtrasBlocks.js:168 +msgid "title" msgstr "" -#: js/MediaBlocks.js:325 -msgid "height" +#: js/blocks/ExtrasBlocks.js:129 +msgid "save as Lilypond" msgstr "" -#: js/MediaBlocks.js:334 -msgid "The Height block returns the height of the canvas." +#: js/blocks/ExtrasBlocks.js:165 +msgid "save as SVG" msgstr "" -#: js/MediaBlocks.js:369 -#.TRANS: stops playback of an audio recording -msgid "stop play" +#: js/blocks/ExtrasBlocks.js:216 +msgid "no background" msgstr "" -#: js/MediaBlocks.js:404 -#.TRANS: Erases the images and text -msgid "erase media" +#: js/blocks/ExtrasBlocks.js:219 +msgid "The No background block eliminates the background from the saved SVG output." msgstr "" -#: js/MediaBlocks.js:409 -msgid "The Erase Media block erases text and images." +#: js/blocks/ExtrasBlocks.js:247 +msgid "show blocks" msgstr "" -#: js/MediaBlocks.js:439 -#.TRANS: play an audio recording -msgid "play back" +#: js/blocks/ExtrasBlocks.js:249 +msgid "The Show blocks block shows the blocks." msgstr "" -#: js/MediaBlocks.js:487 -msgid "speak" +#: js/blocks/ExtrasBlocks.js:274 +msgid "hide blocks" msgstr "" -#: js/MediaBlocks.js:495 -msgid "The Speak block outputs to the text-to-speech synthesizer" +#: js/blocks/ExtrasBlocks.js:276 +msgid "The Hide blocks block hides the blocks." msgstr "" -#: js/MediaBlocks.js:546 -msgid "camera" +#: js/blocks/ExtrasBlocks.js:305 +#: js/blocks/ExtrasBlocks.js:338 +msgid "The Space block is used to add space between blocks." msgstr "" -#: js/MediaBlocks.js:551 -msgid "The Camera block connects a webcam to the Show block." +#: js/blocks/ExtrasBlocks.js:376 +msgid "wait" msgstr "" -#: js/MediaBlocks.js:574 -msgid "video" +#: js/blocks/ExtrasBlocks.js:379 +msgid "The Wait block pauses the program for a specified number of seconds." msgstr "" -#: js/MediaBlocks.js:579 -msgid "The Video block selects video for use with the Show block." +#: js/blocks/ExtrasBlocks.js:433 +#: plugins/facebook.rtp:30 +msgid "comment" msgstr "" -#: js/MediaBlocks.js:607 -msgid "The Open file block opens a file for use with the Show block." +#: js/blocks/ExtrasBlocks.js:469 +msgid "print" msgstr "" -#: js/MediaBlocks.js:645 -msgid "stop media" +#: js/blocks/ExtrasBlocks.js:476 +msgid "The Print block displays text at the top of the screen." msgstr "" -#: js/MediaBlocks.js:650 -msgid "The Stop media block stops audio or video playback." +#: js/blocks/ExtrasBlocks.js:582 +msgid "display grid" msgstr "" -#: js/MediaBlocks.js:679 -#: js/PitchBlocks.js:1539 -#: js/phrasemaker.js:822 -#: js/musickeyboard.js:1654 -#.TRANS: a measure of frequency: one cycle per second -msgid "hertz" +#: js/blocks/ExtrasBlocks.js:587 +msgid "The Display Grid Block changes the grid type" msgstr "" -#: js/MediaBlocks.js:692 -msgid "duration (ms)" +#: js/blocks/ExtrasBlocks.js:689 +#: js/blocks/ExtrasBlocks.js:708 +#: js/blocks/ExtrasBlocks.js:731 +#: js/blocks/ExtrasBlocks.js:754 +#: js/blocks/ExtrasBlocks.js:772 +#: js/blocks/ExtrasBlocks.js:791 +#: js/blocks/ExtrasBlocks.js:810 +#: js/blocks/ExtrasBlocks.js:829 +msgid "unknown" msgstr "" -#: js/MediaBlocks.js:728 -#.TRANS: translate a note into hertz, e.g., A4 -> 440HZ -msgid "note to frequency" +#: js/blocks/FlowBlocks.js:41 +msgid "The Backward block runs code in reverse order (Musical retrograde)." msgstr "" -#: js/MediaBlocks.js:736 -msgid "The To frequency block converts a pitch name and octave to Hertz." +#: js/blocks/FlowBlocks.js:48 +msgid "backward" msgstr "" -#: js/MediaBlocks.js:746 -#: js/PitchBlocks.js:656 -#: js/PitchBlocks.js:932 -#: js/PitchBlocks.js:1827 -#.TRANS: name2 is name as in name of pitch (JAPANESE ONLY) -msgid "name2" +#: js/blocks/FlowBlocks.js:124 +msgid "The Duplicate block will run each block multiple times." msgstr "" -#: js/MediaBlocks.js:812 -msgid "The Avatar block is used to change the appearance of the mouse." +#: js/blocks/FlowBlocks.js:136 +msgid "duplicate" msgstr "" -#: js/MediaBlocks.js:819 -msgid "The Avatar block is used to change the appearance of the turtle." +#: js/blocks/FlowBlocks.js:334 +msgid "The Default block is used inside of a Switch to define the default action." msgstr "" -#: js/MediaBlocks.js:831 -#: js/MediaBlocks.js:891 -#.TRANS: a media object -msgid "size" +#: js/blocks/FlowBlocks.js:342 +msgid "default" msgstr "" -#: js/MediaBlocks.js:831 -msgid "image" +#: js/blocks/FlowBlocks.js:361 +#: js/blocks/FlowBlocks.js:418 +msgid "The Case Block must be used inside of a Switch Block." msgstr "" -#: js/MediaBlocks.js:880 -msgid "The Show block is used to display text or images on the canvas." +#: js/blocks/FlowBlocks.js:389 +msgid "The Case block is used inside of a Switch to define matches." msgstr "" -#: js/MediaBlocks.js:888 -#.TRANS: show1 is show as in display an image or text on the screen. -msgid "show1" +#: js/blocks/FlowBlocks.js:397 +msgid "case" msgstr "" -#: js/MediaBlocks.js:891 -msgid "obj" +#: js/blocks/FlowBlocks.js:446 +msgid "The Switch block will run the code in the matching Case." msgstr "" -#: js/MediaBlocks.js:938 -msgid "The Media block is used to import an image." +#: js/blocks/FlowBlocks.js:454 +msgid "switch" msgstr "" -#: js/MediaBlocks.js:973 -msgid "The Text block holds a text string." +#: js/blocks/FlowBlocks.js:595 +msgid "The Stop block will stop a loop" msgstr "" -#: js/ProgramBlocks.js:33 -msgid "The Load-heap-from-app block loads the heap from a web page." +#: js/blocks/FlowBlocks.js:597 +msgid "Forever, Repeat, While, or Until." msgstr "" -#: js/ProgramBlocks.js:44 -#.TRANS: load the heap contents from a URL -msgid "load heap from App" +#: js/blocks/FlowBlocks.js:604 +#: js/widgets/timbre.js:417 +#: js/widgets/timbre.js:419 +#: js/widgets/musickeyboard.js:819 +#: js/widgets/musickeyboard.js:821 +#: js/widgets/phrasemaker.js:4202 +#: plugins/rodi.rtp:29 +#: plugins/rodi.rtp:73 +#: plugins/rodi.rtp:413 +msgid "stop" msgstr "" -#: js/ProgramBlocks.js:95 -msgid "Error parsing JSON data:" +#: js/blocks/FlowBlocks.js:653 +msgid "The Waitfor block will wait until the condition is true." msgstr "" -#: js/ProgramBlocks.js:100 -msgid "404: Page not found" +#: js/blocks/FlowBlocks.js:661 +msgid "wait for" msgstr "" -#: js/ProgramBlocks.js:133 -msgid "The Save-heap-to-app block saves the heap to a web page." +#: js/blocks/FlowBlocks.js:732 +msgid "The Until block will repeat until the condition is true." msgstr "" -#: js/ProgramBlocks.js:144 -#.TRANS: save the heap contents to a URL -msgid "save heap to App" +#: js/blocks/FlowBlocks.js:740 +msgid "until" msgstr "" -#: js/ProgramBlocks.js:189 -msgid "Cannot find a valid heap for" +#: js/blocks/FlowBlocks.js:742 +#: js/blocks/FlowBlocks.js:822 +msgid "do2" msgstr "" -#: js/ProgramBlocks.js:206 -msgid "The Load-heap block loads the heap from a file." +#: js/blocks/FlowBlocks.js:812 +msgid "The While block will repeat while the condition is true." msgstr "" -#: js/ProgramBlocks.js:217 -#.TRANS: load the heap from a file -msgid "load heap" +#: js/blocks/FlowBlocks.js:820 +msgid "while" msgstr "" -#: js/ProgramBlocks.js:270 -msgid "The file you selected does not contain a valid heap." +#: js/blocks/FlowBlocks.js:903 +#: js/blocks/FlowBlocks.js:968 +#: js/blocks/FlowBlocks.js:979 +msgid "In this example if the mouse button is pressed a snare drum will play." msgstr "" -#: js/ProgramBlocks.js:275 -msgid "The loadHeap block needs a loadFile block." +#: js/blocks/FlowBlocks.js:925 +#: js/blocks/FlowBlocks.js:988 +msgid "if" msgstr "" -#: js/ProgramBlocks.js:291 -msgid "The Set-heap block loads the heap." +#: js/blocks/FlowBlocks.js:927 +#: js/blocks/FlowBlocks.js:990 +msgid "then" msgstr "" -#: js/ProgramBlocks.js:299 -#: js/HeapBlocks.js:539 -#.TRANS: load the heap from a JSON encoding -msgid "set heap" +#: js/blocks/FlowBlocks.js:927 +msgid "else" msgstr "" -#: js/ProgramBlocks.js:340 -msgid "The block you selected does not contain a valid heap." +#: js/blocks/FlowBlocks.js:1025 +msgid "The Forever block will repeat the contained blocks forever." msgstr "" -#: js/ProgramBlocks.js:343 -msgid "The Set heap block needs a heap." +#: js/blocks/FlowBlocks.js:1037 +msgid "forever" msgstr "" -#: js/ProgramBlocks.js:360 -msgid "The Load-dictionary block loads a dictionary from a file." +#: js/blocks/FlowBlocks.js:1073 +msgid "The Repeat block will repeat the contained blocks." msgstr "" -#: js/ProgramBlocks.js:372 -#.TRANS: load a dictionary from a file -msgid "load dictionary" +#: js/blocks/FlowBlocks.js:1075 +msgid "In this example the note will be played 4 times." msgstr "" -#: js/ProgramBlocks.js:390 -#: js/ProgramBlocks.js:658 -#: js/ToneBlocks.js:1025 -msgid "file" +#: js/blocks/FlowBlocks.js:1083 +msgid "repeat" msgstr "" -#: js/ProgramBlocks.js:396 -#: js/ProgramBlocks.js:501 -#: js/ProgramBlocks.js:664 -#: js/DictBlocks.js:80 -#: js/DictBlocks.js:145 -#: js/DictBlocks.js:216 -#: js/DictBlocks.js:290 -msgid "My Dictionary" +#: js/blocks/FlowBlocks.js:1123 +msgid "duplicate factor" msgstr "" -#: js/ProgramBlocks.js:444 -msgid "The file you selected does not contain a valid dictionary." +#: js/blocks/HeapBlocks.js:49 +msgid "The Heap block returns the heap." msgstr "" -#: js/ProgramBlocks.js:449 -msgid "The load dictionary block needs a load file block." +#: js/blocks/HeapBlocks.js:133 +msgid "show heap" msgstr "" -#: js/ProgramBlocks.js:466 -msgid "The Set-dictionary block loads a dictionary." +#: js/blocks/HeapBlocks.js:181 +msgid "The Heap-length block returns the length of the heap." msgstr "" -#: js/ProgramBlocks.js:477 -#.TRANS: load a dictionary from a JSON -msgid "set dictionary" +#: js/blocks/HeapBlocks.js:195 +msgid "heap length" msgstr "" -#: js/ProgramBlocks.js:546 -msgid "The block you selected does not contain a valid dictionary." +#: js/blocks/HeapBlocks.js:254 +msgid "The Heap-empty? block returns true if the heap is empty." msgstr "" -#: js/ProgramBlocks.js:550 -msgid "The set dictionary block needs a dictionary." +#: js/blocks/HeapBlocks.js:268 +#.TRANS: Is the heap empty? +msgid "heap empty?" msgstr "" -#: js/ProgramBlocks.js:567 -msgid "The Save-heap block saves the heap to a file." +#: js/blocks/HeapBlocks.js:317 +msgid "The Empty-heap block empties the heap." msgstr "" -#: js/ProgramBlocks.js:578 -#.TRANS: save the heap to a file -msgid "save heap" +#: js/blocks/HeapBlocks.js:327 +#: js/blocks/HeapBlocks.js:647 +#.TRANS: empty the heap +msgid "empty heap" msgstr "" -#: js/ProgramBlocks.js:629 -msgid "The Save-dictionary block saves a dictionary to a file." +#: js/blocks/HeapBlocks.js:371 +msgid "The Reverse-heap block reverses the order of the heap." msgstr "" -#: js/ProgramBlocks.js:640 -#.TRANS: save a dictionary to a file -msgid "save dictionary" +#: js/blocks/HeapBlocks.js:384 +#.TRANS: reverse the order of the heap +msgid "reverse heap" msgstr "" -#: js/ProgramBlocks.js:720 -msgid "The Open palette block opens a palette." +#: js/blocks/HeapBlocks.js:428 +msgid "The Index-heap block returns a value in the heap at a specified location." msgstr "" -#: js/ProgramBlocks.js:727 -msgid "open palette" +#: js/blocks/HeapBlocks.js:443 +#.TRANS: retrieve a value from the heap at index position in the heap +msgid "index heap" msgstr "" -#: js/ProgramBlocks.js:785 -msgid "The Delete block block removes a block." +#: js/blocks/HeapBlocks.js:523 +msgid "The Set-heap entry block sets a value in he heap at the specified location." msgstr "" -#: js/ProgramBlocks.js:797 -#.TRANS: Move this block to the trash. -msgid "delete block" +#: js/blocks/HeapBlocks.js:539 +#: js/blocks/ProgramBlocks.js:299 +#.TRANS: load the heap from a JSON encoding +msgid "set heap" msgstr "" -#: js/ProgramBlocks.js:861 -msgid "The Move block block moves a block." +#: js/blocks/HeapBlocks.js:619 +msgid "The Pop block removes the value at the top of the heap." msgstr "" -#: js/ProgramBlocks.js:869 -#.TRANS: Move the position of a block on the screen. -msgid "move block" +#: js/blocks/HeapBlocks.js:633 +#.TRANS: pop a value off the top of the heap +msgid "pop" msgstr "" -#: js/ProgramBlocks.js:881 -#: js/ProgramBlocks.js:1048 -msgid "block number" +#: js/blocks/HeapBlocks.js:680 +msgid "The Push block adds a value to the top of the heap." msgstr "" -#: js/ProgramBlocks.js:935 -#.TRANS: Run program beginning at this block. -msgid "run block" +#: js/blocks/HeapBlocks.js:696 +#.TRANS: push a value onto the top of the heap +msgid "push" msgstr "" -#: js/ProgramBlocks.js:1025 -msgid "The Dock block block connections two blocks." +#: js/blocks/IntervalsBlocks.js:45 +msgid "set temperament" msgstr "" -#: js/ProgramBlocks.js:1036 -#.TRANS: We can connect a block to another block. -msgid "connect blocks" +#: js/blocks/IntervalsBlocks.js:63 +#: js/blocks/MediaBlocks.js:746 +#: js/blocks/PitchBlocks.js:657 +#: js/blocks/PitchBlocks.js:935 +#: js/blocks/PitchBlocks.js:974 +#: js/blocks/PitchBlocks.js:1007 +#: js/blocks/PitchBlocks.js:1194 +#: js/blocks/PitchBlocks.js:1717 +#: js/blocks/PitchBlocks.js:1758 +#: js/blocks/PitchBlocks.js:1866 +#: js/blocks/ToneBlocks.js:1025 +#: js/turtleactions/IntervalsActions.js:114 +#.TRANS: adjusts the shift up or down by one octave (twelve half-steps in the interval between two notes, one having twice or half the frequency in Hz of the other.) +msgid "octave" msgstr "" -#: js/ProgramBlocks.js:1048 -msgid "target block" +#: js/blocks/IntervalsBlocks.js:99 +msgid "The Temperament name block is used to select a tuning method." msgstr "" -#: js/ProgramBlocks.js:1048 -msgid "connection number" +#: js/blocks/IntervalsBlocks.js:161 +msgid "doubly" msgstr "" -#: js/ProgramBlocks.js:1140 -msgid "The Make block block creates a new block." +#: js/blocks/IntervalsBlocks.js:166 +msgid "The Doubly block will double the size of an interval." msgstr "" -#: js/ProgramBlocks.js:1152 -#.TRANS: Create a new block -msgid "make block" +#: js/blocks/IntervalsBlocks.js:262 +msgid "interval number" msgstr "" -#: js/ProgramBlocks.js:1186 -#: js/ProgramBlocks.js:1227 -#: js/RhythmBlocks.js:1128 -#: js/PitchBlocks.js:972 -#: js/PitchBlocks.js:1005 -#: js/temperament.js:340 -#: js/temperament.js:362 -#: js/temperament.js:372 -#: js/temperament.js:484 -#: js/status.js:190 -#: plugins/rodi.rtp:192 -#.TRANS: a musical note consisting of pitch and duration -msgid "note" +#: js/blocks/IntervalsBlocks.js:317 +msgid "current interval" msgstr "" -#: js/ProgramBlocks.js:1285 -msgid "Cannot find block" +#: js/blocks/IntervalsBlocks.js:387 +#.TRANS: measure the distance between two pitches in semi-tones +msgid "semi-tone interval measure" msgstr "" -#: js/ProgramBlocks.js:1304 -#: js/ProgramBlocks.js:1313 -msgid "Warning: block argument type mismatch" +#: js/blocks/IntervalsBlocks.js:454 +#: js/blocks/IntervalsBlocks.js:570 +msgid "You must use two pitch blocks when measuring an interval." msgstr "" -#: js/ProgramBlocks.js:1347 -msgid "The Open project block is used to open a project from a web page." +#: js/blocks/IntervalsBlocks.js:496 +msgid "The Scalar interval block measures the distance between two notes in the current key and mode." msgstr "" -#: js/ProgramBlocks.js:1357 -msgid "open project" +#: js/blocks/IntervalsBlocks.js:502 +#.TRANS: measure the distance between two pitches in steps of musical scale +msgid "scalar interval measure" msgstr "" -#: js/ProgramBlocks.js:1410 -msgid "Please enter a valid URL." +#: js/blocks/IntervalsBlocks.js:678 +msgid "In the figure, we add sol# to sol." msgstr "" -#: js/DrumBlocks.js:59 -msgid "The Noise name block is used to select a noise synthesizer." +#: js/blocks/IntervalsBlocks.js:684 +#: js/blocks/OrnamentBlocks.js:220 +#.TRANS: calculate a relative step between notes based on semi-tones +msgid "semi-tone interval" msgstr "" -#: js/DrumBlocks.js:102 -msgid "The Drum name block is used to select a drum." +#: js/blocks/IntervalsBlocks.js:733 +msgid "The output of the example is: do, mi, sol, sol, ti, mi" msgstr "" -#: js/DrumBlocks.js:146 -msgid "The Effects name block is used to select a sound effect." +#: js/blocks/IntervalsBlocks.js:740 +#: js/blocks/WidgetBlocks.js:768 +msgid "arpeggio" msgstr "" -#: js/DrumBlocks.js:163 -msgid "noise" +#: js/blocks/IntervalsBlocks.js:931 +msgid "The Chord block calculates common chords." msgstr "" -#: js/DrumBlocks.js:177 -msgid "The Play noise block will generate white, pink, or brown noise." +#: js/blocks/IntervalsBlocks.js:933 +msgid "In the figure, we generate a C-major chord." msgstr "" -#: js/DrumBlocks.js:191 -#: js/musicutils.js:752 -#: js/synthutils.js:47 -#.TRANS: white noise synthesizer -msgid "white noise" +#: js/blocks/IntervalsBlocks.js:938 +msgid "chord" msgstr "" -#: js/DrumBlocks.js:326 -msgid "Replace every instance of a pitch with a drum sound." +#: js/blocks/IntervalsBlocks.js:990 +msgid "The Ratio Interval block calculates an interval based on a ratio." msgstr "" -#: js/DrumBlocks.js:337 -#.TRANS: map a pitch to a drum sound -msgid "map pitch to drum" +#: js/blocks/IntervalsBlocks.js:995 +msgid "ratio interval" msgstr "" -#: js/DrumBlocks.js:404 -msgid "In the example above, a kick drum sound will be played instead of sol." +#: js/blocks/IntervalsBlocks.js:1064 +msgid "In the figure, we add la to sol." msgstr "" -#: js/DrumBlocks.js:416 -#.TRANS: set the current drum sound for playback -msgid "set drum" +#: js/blocks/IntervalsBlocks.js:1120 +#.TRANS: define a custom mode +msgid "define mode" msgstr "" -#: js/DrumBlocks.js:460 -msgid "sound effect" +#: js/blocks/IntervalsBlocks.js:1173 +msgid "movable Do" msgstr "" -#: js/DrumBlocks.js:498 -msgid "You can use multiple Drum blocks within a Note block." +#: js/blocks/IntervalsBlocks.js:1224 +#.TRANS: mode length is the number of notes in the mode, e.g., 7 for major and minor scales; 12 for chromatic scales +msgid "mode length" msgstr "" -#: js/RhythmBlocks.js:182 -#: js/RhythmBlocks.js:1086 -#: js/RhythmBlocks.js:1162 -msgid "Note value must be greater than 0." +#: js/blocks/IntervalsBlocks.js:1233 +msgid "The Mode length block is the number of notes in the current scale." msgstr "" -#: js/RhythmBlocks.js:215 -#: js/RhythmBlocks.js:278 -#: js/RhythmBlocks.js:350 -#.TRANS: swing is a rhythmic variation that emphasises the offbeat -msgid "swing" +#: js/blocks/IntervalsBlocks.js:1235 +msgid "Most Western scales have 7 notes." msgstr "" -#: js/RhythmBlocks.js:355 -#.TRANS: the amount to shift to the offbeat note -msgid "swing value" +#: js/blocks/IntervalsBlocks.js:1284 +#.TRANS: the mode in music is 'major', 'minor', etc. +msgid "current mode" msgstr "" -#: js/RhythmBlocks.js:419 -msgid "The Skip notes block will cause notes to be skipped." +#: js/blocks/IntervalsBlocks.js:1337 +#.TRANS: the key is a group of pitches with which a music composition is created +msgid "current key" msgstr "" -#: js/RhythmBlocks.js:427 -#.TRANS: substitute rests on notes being skipped -msgid "skip notes" +#: js/blocks/IntervalsBlocks.js:1389 +#: js/blocks/IntervalsBlocks.js:1434 +#.TRANS: set the key and mode, e.g. C Major +msgid "set key" msgstr "" -#: js/RhythmBlocks.js:489 -#.TRANS: speed up note duration by some factor, e.g. convert 1/4 to 1/8 notes by using a factor of 2 -msgid "multiply note value" +#: js/blocks/IntervalsBlocks.js:1443 +#: js/blocks/IntervalsBlocks.js:1449 +msgid "The Set key block is used to set the key and mode," msgstr "" -#: js/RhythmBlocks.js:542 -msgid "The Tie block works on pairs of notes, combining them into one note." +#: js/blocks/IntervalsBlocks.js:1449 +msgid "eg C Major" msgstr "" -#: js/RhythmBlocks.js:550 -#.TRANS: tie notes together into one longer note -msgid "tie" +#: js/blocks/MediaBlocks.js:35 +#.TRANS: right side of the screen +msgid "right (screen)" msgstr "" -#: js/RhythmBlocks.js:591 -#: js/RhythmBlocks.js:671 -#.TRANS: a dotted note is played for 1.5x its value, e.g., 1/8. --> 3/16 -msgid "dot" +#: js/blocks/MediaBlocks.js:45 +#: js/blocks/MediaBlocks.js:56 +msgid "The Right block returns the position of the right of the canvas." msgstr "" -#: js/RhythmBlocks.js:619 -#: js/RhythmActions.js:221 -msgid "An argument of -1 results in a note value of 0." +#: js/blocks/MediaBlocks.js:97 +#.TRANS: left side of the screen +msgid "left (screen)" msgstr "" -#: js/RhythmBlocks.js:661 -msgid "The Dot block extends the duration of a note by 50%." +#: js/blocks/MediaBlocks.js:107 +#: js/blocks/MediaBlocks.js:118 +msgid "The Left block returns the position of the left of the canvas." msgstr "" -#: js/RhythmBlocks.js:663 -msgid "Eg a dotted quarter note will play for 3/8 (1/4 + 1/8) of a beat." +#: js/blocks/MediaBlocks.js:158 +msgid "top (screen)" msgstr "" -#: js/RhythmBlocks.js:765 -#.TRANS: Japanese only: note value block for drum -msgid "note value drum" +#: js/blocks/MediaBlocks.js:168 +#: js/blocks/MediaBlocks.js:179 +msgid "The Top block returns the position of the top of the canvas." msgstr "" -#: js/RhythmBlocks.js:829 -msgid "392 hertz" +#: js/blocks/MediaBlocks.js:219 +msgid "bottom (screen)" msgstr "" -#: js/RhythmBlocks.js:1119 -msgid "The Note block is a container for one or more Pitch blocks." +#: js/blocks/MediaBlocks.js:229 +#: js/blocks/MediaBlocks.js:240 +msgid "The Bottom block returns the position of the bottom of the canvas." msgstr "" -#: js/RhythmBlocks.js:1121 -msgid "The Note block specifies the duration (note value) of its contents." +#: js/blocks/MediaBlocks.js:282 +msgid "width" msgstr "" -#: js/RhythmBlocks.js:1130 -msgid "value2" +#: js/blocks/MediaBlocks.js:291 +msgid "The Width block returns the width of the canvas." msgstr "" -#: js/RhythmBlocks.js:1200 -msgid "define frequency" +#: js/blocks/MediaBlocks.js:325 +msgid "height" msgstr "" -#: js/RhythmBlocks.js:1218 -#: js/temperament.js:650 -#: js/temperament.js:1421 -msgid "octave space" +#: js/blocks/MediaBlocks.js:334 +msgid "The Height block returns the height of the canvas." msgstr "" -#: js/NumberBlocks.js:28 -msgid "The Int block returns an integer." +#: js/blocks/MediaBlocks.js:369 +#.TRANS: stops playback of an audio recording +msgid "stop play" msgstr "" -#: js/NumberBlocks.js:34 -msgid "int" +#: js/blocks/MediaBlocks.js:404 +#.TRANS: Erases the images and text +msgid "erase media" msgstr "" -#: js/NumberBlocks.js:73 -msgid "The Mod block returns the remainder from a division." +#: js/blocks/MediaBlocks.js:409 +msgid "The Erase Media block erases text and images." msgstr "" -#: js/NumberBlocks.js:79 -msgid "mod" +#: js/blocks/MediaBlocks.js:439 +#.TRANS: play an audio recording +msgid "play back" msgstr "" -#: js/NumberBlocks.js:123 -msgid "The Power block calculates a power function." +#: js/blocks/MediaBlocks.js:487 +msgid "speak" msgstr "" -#: js/NumberBlocks.js:178 -msgid "The Sqrt block returns the square root." +#: js/blocks/MediaBlocks.js:495 +msgid "The Speak block outputs to the text-to-speech synthesizer" msgstr "" -#: js/NumberBlocks.js:184 -msgid "sqrt" +#: js/blocks/MediaBlocks.js:546 +msgid "camera" msgstr "" -#: js/NumberBlocks.js:230 -msgid "The Abs block returns the absolute value." +#: js/blocks/MediaBlocks.js:551 +msgid "The Camera block connects a webcam to the Show block." msgstr "" -#: js/NumberBlocks.js:236 -msgid "abs" +#: js/blocks/MediaBlocks.js:574 +msgid "video" msgstr "" -#: js/NumberBlocks.js:277 -msgid "The Distance block returns the distance between two points. For example, between the mouse and the center of the screen." +#: js/blocks/MediaBlocks.js:579 +msgid "The Video block selects video for use with the Show block." msgstr "" -#: js/NumberBlocks.js:283 -#: plugins/rodi.rtp:310 -msgid "distance" +#: js/blocks/MediaBlocks.js:607 +msgid "The Open file block opens a file for use with the Show block." msgstr "" -#: js/NumberBlocks.js:343 -msgid "The Divide block is used to divide." +#: js/blocks/MediaBlocks.js:645 +msgid "stop media" msgstr "" -#: js/NumberBlocks.js:411 -msgid "The Multiply block is used to multiply." +#: js/blocks/MediaBlocks.js:650 +msgid "The Stop media block stops audio or video playback." msgstr "" -#: js/NumberBlocks.js:554 -msgid "The Minus block is used to subtract." +#: js/blocks/MediaBlocks.js:679 +#: js/blocks/PitchBlocks.js:1577 +#: js/widgets/musickeyboard.js:1936 +#: js/widgets/phrasemaker.js:1037 +#.TRANS: a measure of frequency: one cycle per second +msgid "hertz" msgstr "" -#: js/NumberBlocks.js:647 -msgid "The Plus block is used to add." +#: js/blocks/MediaBlocks.js:692 +#: js/blocks/WidgetBlocks.js:182 +#: js/widgets/temperament.js:506 +#: js/widgets/temperament.js:546 +#: js/widgets/temperament.js:610 +#: js/widgets/temperament.js:618 +#: js/widgets/temperament.js:1505 +#: js/widgets/timbre.js:1842 +msgid "frequency" msgstr "" -#: js/NumberBlocks.js:773 -msgid "The One-of block returns one of two choices." +#: js/blocks/MediaBlocks.js:692 +msgid "duration (ms)" msgstr "" -#: js/NumberBlocks.js:780 -#: js/PitchBlocks.js:616 -msgid "one of" +#: js/blocks/MediaBlocks.js:728 +#.TRANS: translate a note into hertz, e.g., A4 -> 440HZ +msgid "note to frequency" msgstr "" -#: js/NumberBlocks.js:782 -msgid "this" +#: js/blocks/MediaBlocks.js:736 +msgid "The To frequency block converts a pitch name and octave to Hertz." msgstr "" -#: js/NumberBlocks.js:782 -msgid "that" +#: js/blocks/MediaBlocks.js:746 +#: js/blocks/PitchBlocks.js:656 +#: js/blocks/PitchBlocks.js:934 +#: js/blocks/PitchBlocks.js:1866 +#.TRANS: name2 is name as in name of pitch (JAPANESE ONLY) +msgid "name2" msgstr "" -#: js/NumberBlocks.js:837 -msgid "The Random block returns a random number." +#: js/blocks/MediaBlocks.js:812 +msgid "The Avatar block is used to change the appearance of the mouse." msgstr "" -#: js/NumberBlocks.js:844 -msgid "random" +#: js/blocks/MediaBlocks.js:819 +msgid "The Avatar block is used to change the appearance of the turtle." msgstr "" -#: js/NumberBlocks.js:846 -msgid "min" +#: js/blocks/MediaBlocks.js:831 +#: js/blocks/MediaBlocks.js:891 +#.TRANS: a media object +msgid "size" msgstr "" -#: js/NumberBlocks.js:846 -msgid "max" +#: js/blocks/MediaBlocks.js:831 +msgid "image" msgstr "" -#: js/NumberBlocks.js:910 -msgid "The Number block holds a number." +#: js/blocks/MediaBlocks.js:880 +msgid "The Show block is used to display text or images on the canvas." msgstr "" -#: js/BoxesBlocks.js:53 -#: js/BoxesBlocks.js:59 -msgid "The Add-to block is used to add to the value stored in a box." +#: js/blocks/MediaBlocks.js:888 +#.TRANS: show1 is show as in display an image or text on the screen. +msgid "show1" msgstr "" -#: js/BoxesBlocks.js:61 -msgid "It can also be used with other blocks such as Color and Pen size." +#: js/blocks/MediaBlocks.js:891 +msgid "obj" msgstr "" -#: js/BoxesBlocks.js:73 -msgid "add" +#: js/blocks/MediaBlocks.js:938 +msgid "The Media block is used to import an image." msgstr "" -#: js/BoxesBlocks.js:75 -#: js/temperament.js:716 -msgid "to" +#: js/blocks/MediaBlocks.js:973 +msgid "The Text block holds a text string." msgstr "" -#: js/BoxesBlocks.js:75 -#: js/BoxesBlocks.js:595 -#: js/HeapBlocks.js:544 -msgid "value1" +#: js/blocks/MeterBlocks.js:34 +#.TRANS: musical meter (time signature), e.g., 4:4 +msgid "current meter" msgstr "" -#: js/BoxesBlocks.js:118 -msgid "Block does not support incrementing." +#: js/blocks/MeterBlocks.js:85 +#.TRANS: number of beats per minute +msgid "beat factor" msgstr "" -#: js/BoxesBlocks.js:152 -msgid "The Add-1-to block adds one to the value stored in a box." +#: js/blocks/MeterBlocks.js:161 +msgid "The Beats per minute block returns the current beats per minute." msgstr "" -#: js/BoxesBlocks.js:163 -msgid "add 1 to" +#: js/blocks/MeterBlocks.js:169 +#: js/widgets/status.js:152 +#.TRANS: number of beats played per minute +msgid "beats per minute2" msgstr "" -#: js/BoxesBlocks.js:211 -msgid "The Subtract-1-from block subtracts one from the value stored in a box." +#: js/blocks/MeterBlocks.js:169 +#: js/blocks/MeterBlocks.js:1056 +#: js/blocks/MeterBlocks.js:1133 +#: js/blocks/MeterBlocks.js:1211 +#.TRANS: sets tempo by defining a beat and beats per minute +msgid "beats per minute" msgstr "" -#: js/BoxesBlocks.js:222 -msgid "subtract 1 from" +#: js/blocks/MeterBlocks.js:233 +#.TRANS: count of current musical measure in meter +msgid "measure count" msgstr "" -#: js/BoxesBlocks.js:270 -#: js/BoxesBlocks.js:387 -msgid "The Box block returns the value stored in a box." +#: js/blocks/MeterBlocks.js:241 +msgid "The Measure count block returns the current measure." msgstr "" -#: js/BoxesBlocks.js:500 -#: js/BoxesBlocks.js:576 -msgid "The Store in block will store a value in a box." +#: js/blocks/MeterBlocks.js:290 +#.TRANS: count of current beat in the meter +msgid "beat count" msgstr "" -#: js/BoxesBlocks.js:652 -msgid "The Box2 block returns the value stored in Box2." +#: js/blocks/MeterBlocks.js:300 +#: js/blocks/MeterBlocks.js:311 +#: js/blocks/MeterBlocks.js:565 +#: js/blocks/MeterBlocks.js:576 +msgid "The Beat count block is the number of the current beat," msgstr "" -#: js/BoxesBlocks.js:703 -msgid "The Store in Box2 block is used to store a value in Box2." +#: js/blocks/MeterBlocks.js:313 +#: js/blocks/MeterBlocks.js:578 +msgid "eg 1, 2, 3, or 4." msgstr "" -#: js/BoxesBlocks.js:715 -msgid "store in box2" +#: js/blocks/MeterBlocks.js:368 +#.TRANS: count the number of notes +msgid "sum note values" msgstr "" -#: js/BoxesBlocks.js:761 -msgid "The Box1 block returns the value stored in Box1." +#: js/blocks/MeterBlocks.js:376 +#: js/blocks/MeterBlocks.js:440 +msgid "The Note counter block can be used to count the number of contained notes." msgstr "" -#: js/BoxesBlocks.js:812 -msgid "The Store in Box1 block is used to store a value in Box1." +#: js/blocks/MeterBlocks.js:432 +#.TRANS: count the number of notes +msgid "note counter" msgstr "" -#: js/BoxesBlocks.js:826 -msgid "store in box1" +#: js/blocks/MeterBlocks.js:496 +#.TRANS: number of whole notes that have been played +msgid "whole notes played" msgstr "" -#: js/HeapBlocks.js:49 -msgid "The Heap block returns the heap." +#: js/blocks/MeterBlocks.js:505 +msgid "The Whole notes played block returns the total number of whole notes played." msgstr "" -#: js/HeapBlocks.js:133 -msgid "show heap" +#: js/blocks/MeterBlocks.js:555 +#: js/turtleactions/DictActions.js:83 +#.TRANS: number of notes that have been played +msgid "notes played" msgstr "" -#: js/HeapBlocks.js:181 -msgid "The Heap-length block returns the length of the heap." +#: js/blocks/MeterBlocks.js:653 +msgid "The No clock block decouples the notes from the master clock." msgstr "" -#: js/HeapBlocks.js:195 -msgid "heap length" +#: js/blocks/MeterBlocks.js:661 +#.TRANS: don't lock notes to master clock +msgid "no clock" msgstr "" -#: js/HeapBlocks.js:254 -msgid "The Heap-empty? block returns true if the heap is empty." +#: js/blocks/MeterBlocks.js:700 +msgid "on weak beat do" msgstr "" -#: js/HeapBlocks.js:268 -#.TRANS: Is the heap empty? -msgid "heap empty?" +#: js/blocks/MeterBlocks.js:705 +msgid "The On-weak-beat block lets you specify actions to take on weak (off) beats." msgstr "" -#: js/HeapBlocks.js:317 -msgid "The Empty-heap block empties the heap." +#: js/blocks/MeterBlocks.js:750 +msgid "on strong beat" msgstr "" -#: js/HeapBlocks.js:327 -#: js/HeapBlocks.js:647 -#.TRANS: empty the heap -msgid "empty heap" +#: js/blocks/MeterBlocks.js:758 +msgid "The On-strong-beat block lets you specify actions to take on specified beats." msgstr "" -#: js/HeapBlocks.js:371 -msgid "The Reverse-heap block reverses the order of the heap." +#: js/blocks/MeterBlocks.js:769 +msgid "beat" msgstr "" -#: js/HeapBlocks.js:384 -#.TRANS: reverse the order of the heap -msgid "reverse heap" +#: js/blocks/MeterBlocks.js:813 +msgid "on every beat do" msgstr "" -#: js/HeapBlocks.js:428 -msgid "The Index-heap block returns a value in the heap at a specified location." +#: js/blocks/MeterBlocks.js:821 +msgid "The On-every-beat block lets you specify actions to take on every beat." msgstr "" -#: js/HeapBlocks.js:443 -#.TRANS: retrieve a value from the heap at index position in the heap -msgid "index heap" +#: js/blocks/MeterBlocks.js:874 +msgid "on every note do" msgstr "" -#: js/HeapBlocks.js:523 -msgid "The Set-heap entry block sets a value in he heap at the specified location." +#: js/blocks/MeterBlocks.js:882 +msgid "The On-every-note block lets you specify actions to take on every note." msgstr "" -#: js/HeapBlocks.js:619 -msgid "The Pop block removes the value at the top of the heap." +#: js/blocks/MeterBlocks.js:928 +#: js/blocks/MeterBlocks.js:999 +#.TRANS: sets tempo by defining a beat and beats per minute +msgid "master beats per minute" msgstr "" -#: js/HeapBlocks.js:633 -#.TRANS: pop a value off the top of the heap -msgid "pop" +#: js/blocks/MeterBlocks.js:952 +#: js/blocks/MeterBlocks.js:1078 +#: js/blocks/MeterBlocks.js:1135 +msgid "bpm" msgstr "" -#: js/HeapBlocks.js:680 -msgid "The Push block adds a value to the top of the heap." +#: js/blocks/MeterBlocks.js:952 +#: js/blocks/MeterBlocks.js:1078 +#: js/blocks/MeterBlocks.js:1135 +msgid "beat value" msgstr "" -#: js/HeapBlocks.js:696 -#.TRANS: push a value onto the top of the heap -msgid "push" +#: js/blocks/MeterBlocks.js:1024 +#: js/blocks/MeterBlocks.js:1167 +#: js/blocks/MeterBlocks.js:1241 +msgid "Beats per minute must be > 30." msgstr "" -#: js/FlowBlocks.js:41 -msgid "The Backward block runs code in reverse order (Musical retrograde)." +#: js/blocks/MeterBlocks.js:1027 +#: js/blocks/MeterBlocks.js:1170 +#: js/blocks/MeterBlocks.js:1244 +msgid "Maximum beats per minute is 1000." msgstr "" -#: js/FlowBlocks.js:48 -msgid "backward" +#: js/blocks/MeterBlocks.js:1068 +msgid "The Beats per minute block sets the number of 1/4 notes per minute." msgstr "" -#: js/FlowBlocks.js:124 -msgid "The Duplicate block will run each block multiple times." +#: js/blocks/MeterBlocks.js:1279 +#.TRANS: anacrusis +msgid "pickup" msgstr "" -#: js/FlowBlocks.js:136 -msgid "duplicate" +#: js/blocks/MeterBlocks.js:1367 +msgid "number of beats" msgstr "" -#: js/FlowBlocks.js:334 -msgid "The Default block is used inside of a Switch to define the default action." +#: js/blocks/NumberBlocks.js:28 +msgid "The Int block returns an integer." msgstr "" -#: js/FlowBlocks.js:342 -msgid "default" +#: js/blocks/NumberBlocks.js:34 +msgid "int" msgstr "" -#: js/FlowBlocks.js:361 -#: js/FlowBlocks.js:418 -msgid "The Case Block must be used inside of a Switch Block." +#: js/blocks/NumberBlocks.js:73 +msgid "The Mod block returns the remainder from a division." msgstr "" -#: js/FlowBlocks.js:389 -msgid "The Case block is used inside of a Switch to define matches." +#: js/blocks/NumberBlocks.js:79 +msgid "mod" msgstr "" -#: js/FlowBlocks.js:397 -msgid "case" +#: js/blocks/NumberBlocks.js:141 +msgid "The Power block calculates a power function." msgstr "" -#: js/FlowBlocks.js:446 -msgid "The Switch block will run the code in the matching Case." +#: js/blocks/NumberBlocks.js:196 +msgid "The Sqrt block returns the square root." msgstr "" -#: js/FlowBlocks.js:454 -msgid "switch" +#: js/blocks/NumberBlocks.js:202 +msgid "sqrt" msgstr "" -#: js/FlowBlocks.js:595 -msgid "The Stop block will stop a loop" +#: js/blocks/NumberBlocks.js:248 +msgid "The Abs block returns the absolute value." msgstr "" -#: js/FlowBlocks.js:597 -msgid "Forever, Repeat, While, or Until." +#: js/blocks/NumberBlocks.js:254 +msgid "abs" msgstr "" -#: js/FlowBlocks.js:604 -#: js/phrasemaker.js:3799 -#: js/musickeyboard.js:629 -#: js/musickeyboard.js:631 -#: js/timbre.js:417 -#: js/timbre.js:419 -#: plugins/rodi.rtp:29 -#: plugins/rodi.rtp:73 -#: plugins/rodi.rtp:413 -msgid "stop" +#: js/blocks/NumberBlocks.js:295 +msgid "The Distance block returns the distance between two points. For example, between the mouse and the center of the screen." msgstr "" -#: js/FlowBlocks.js:653 -msgid "The Waitfor block will wait until the condition is true." +#: js/blocks/NumberBlocks.js:301 +#: plugins/rodi.rtp:310 +msgid "distance" msgstr "" -#: js/FlowBlocks.js:661 -msgid "wait for" +#: js/blocks/NumberBlocks.js:361 +msgid "The Divide block is used to divide." msgstr "" -#: js/FlowBlocks.js:732 -msgid "The Until block will repeat until the condition is true." +#: js/blocks/NumberBlocks.js:441 +msgid "The Multiply block is used to multiply." msgstr "" -#: js/FlowBlocks.js:740 -msgid "until" +#: js/blocks/NumberBlocks.js:612 +msgid "The Minus block is used to subtract." msgstr "" -#: js/FlowBlocks.js:742 -#: js/FlowBlocks.js:822 -msgid "do2" +#: js/blocks/NumberBlocks.js:723 +msgid "The Plus block is used to add." msgstr "" -#: js/FlowBlocks.js:812 -msgid "The While block will repeat while the condition is true." +#: js/blocks/NumberBlocks.js:849 +msgid "The One-of block returns one of two choices." msgstr "" -#: js/FlowBlocks.js:820 -msgid "while" +#: js/blocks/NumberBlocks.js:856 +#: js/blocks/PitchBlocks.js:616 +msgid "one of" msgstr "" -#: js/FlowBlocks.js:903 -#: js/FlowBlocks.js:968 -#: js/FlowBlocks.js:979 -msgid "In this example if the mouse button is pressed a snare drum will play." +#: js/blocks/NumberBlocks.js:858 +msgid "this" msgstr "" -#: js/FlowBlocks.js:925 -#: js/FlowBlocks.js:988 -msgid "if" +#: js/blocks/NumberBlocks.js:858 +msgid "that" msgstr "" -#: js/FlowBlocks.js:927 -#: js/FlowBlocks.js:990 -msgid "then" +#: js/blocks/NumberBlocks.js:913 +msgid "The Random block returns a random number." msgstr "" -#: js/FlowBlocks.js:927 -msgid "else" +#: js/blocks/NumberBlocks.js:920 +msgid "random" msgstr "" -#: js/FlowBlocks.js:1025 -msgid "The Forever block will repeat the contained blocks forever." +#: js/blocks/NumberBlocks.js:922 +msgid "min" msgstr "" -#: js/FlowBlocks.js:1037 -msgid "forever" +#: js/blocks/NumberBlocks.js:922 +msgid "max" msgstr "" -#: js/FlowBlocks.js:1073 -msgid "The Repeat block will repeat the contained blocks." +#: js/blocks/NumberBlocks.js:986 +msgid "The Number block holds a number." msgstr "" -#: js/FlowBlocks.js:1075 -msgid "In this example the note will be played 4 times." +#: js/blocks/OrnamentBlocks.js:32 +msgid "staccato factor" msgstr "" -#: js/FlowBlocks.js:1083 -msgid "repeat" +#: js/blocks/OrnamentBlocks.js:108 +msgid "slur factor" msgstr "" -#: js/FlowBlocks.js:1123 -msgid "duplicate factor" +#: js/blocks/OrnamentBlocks.js:217 +#: js/blocks/OrnamentBlocks.js:309 +#.TRANS: the neighbor refers to a neighboring note, e.g., D is a neighbor of C +msgid "neighbor" msgstr "" -#: js/PitchBlocks.js:39 -#: js/musicutils.js:722 -#: js/musicutils.js:1117 -#: js/synthutils.js:112 -#.TRANS: square wave -msgid "square" +#: js/blocks/OrnamentBlocks.js:293 +msgid "The Neighbor block rapidly switches between neighboring pitches." msgstr "" -#: js/PitchBlocks.js:62 -#: js/ToneBlocks.js:39 -#: js/musicutils.js:723 -#: js/musicutils.js:1118 -#: js/synthutils.js:116 -#.TRANS: triangle wave -msgid "triangle" +#: js/blocks/OrnamentBlocks.js:364 +msgid "glide" msgstr "" -#: js/PitchBlocks.js:85 -#: js/musicutils.js:721 -#: js/musicutils.js:1116 -#: js/synthutils.js:110 -#.TRANS: sine wave -msgid "sine" +#: js/blocks/OrnamentBlocks.js:479 +#: js/blocks/OrnamentBlocks.js:643 +msgid "slur" msgstr "" -#: js/PitchBlocks.js:108 -#: js/musicutils.js:724 -#: js/musicutils.js:1119 -#: js/synthutils.js:114 -#.TRANS: sawtooth wave -msgid "sawtooth" +#: js/blocks/OrnamentBlocks.js:558 +#: js/blocks/OrnamentBlocks.js:710 +#.TRANS: play each note sharply detached from the others +msgid "staccato" msgstr "" -#: js/PitchBlocks.js:141 -#.TRANS: musical transposition (adjustment of pitch up or down) -msgid "transposition" +#: js/blocks/RhythmBlocks.js:182 +#: js/blocks/RhythmBlocks.js:1086 +#: js/blocks/RhythmBlocks.js:1162 +msgid "Note value must be greater than 0." msgstr "" -#: js/PitchBlocks.js:168 -#.TRANS: step down one note in current musical scale -msgid "scalar step down" +#: js/blocks/RhythmBlocks.js:215 +#: js/blocks/RhythmBlocks.js:278 +#: js/blocks/RhythmBlocks.js:350 +#.TRANS: swing is a rhythmic variation that emphasises the offbeat +msgid "swing" msgstr "" -#: js/PitchBlocks.js:172 -msgid "The Scalar step down block returns the number of semi-tones down to the previous note in the current key and mode." +#: js/blocks/RhythmBlocks.js:355 +#.TRANS: the amount to shift to the offbeat note +msgid "swing value" msgstr "" -#: js/PitchBlocks.js:190 -#.TRANS: step up one note in current musical scale -msgid "scalar step up" +#: js/blocks/RhythmBlocks.js:419 +msgid "The Skip notes block will cause notes to be skipped." msgstr "" -#: js/PitchBlocks.js:194 -msgid "The Scalar step up block returns the number of semi-tones up to the next note in the current key and mode." +#: js/blocks/RhythmBlocks.js:427 +#.TRANS: substitute rests on notes being skipped +msgid "skip notes" msgstr "" -#: js/PitchBlocks.js:212 -#.TRANS: the change measured in half-steps between the current pitch and the previous pitch -msgid "change in pitch" +#: js/blocks/RhythmBlocks.js:489 +#.TRANS: speed up note duration by some factor, e.g. convert 1/4 to 1/8 notes by using a factor of 2 +msgid "multiply note value" msgstr "" -#: js/PitchBlocks.js:216 -msgid "The Change in pitch block is the difference (in half steps) between the current pitch being played and the previous pitch played." +#: js/blocks/RhythmBlocks.js:542 +msgid "The Tie block works on pairs of notes, combining them into one note." msgstr "" -#: js/PitchBlocks.js:243 -#.TRANS: the change measured in scale-steps between the current pitch and the previous pitch -msgid "scalar change in pitch" +#: js/blocks/RhythmBlocks.js:550 +#.TRANS: tie notes together into one longer note +msgid "tie" msgstr "" -#: js/PitchBlocks.js:250 -#: js/PitchBlocks.js:432 -#: js/PitchBlocks.js:1629 -#: js/DictActions.js:89 -#: js/temperament.js:477 -#: js/temperament.js:481 -#: js/temperament.js:714 -#.TRANS: convert current note to piano key (1-88) -#.TRANS: a mapping of pitch to the 88 piano keys -msgid "pitch number" +#: js/blocks/RhythmBlocks.js:591 +#: js/blocks/RhythmBlocks.js:671 +#.TRANS: a dotted note is played for 1.5x its value, e.g., 1/8. --> 3/16 +msgid "dot" msgstr "" -#: js/PitchBlocks.js:256 -msgid "The Pitch number block is the value of the pitch of the note currently being played." +#: js/blocks/RhythmBlocks.js:619 +#: js/turtleactions/RhythmActions.js:221 +msgid "An argument of -1 results in a note value of 0." msgstr "" -#: js/PitchBlocks.js:329 -#: js/PitchBlocks.js:433 -#.TRANS: the current pitch expressed in Hertz -msgid "pitch in hertz" +#: js/blocks/RhythmBlocks.js:661 +msgid "The Dot block extends the duration of a note by 50%." msgstr "" -#: js/PitchBlocks.js:334 -msgid "The Pitch in Hertz block is the value in Hertz of the pitch of the note currently being played." +#: js/blocks/RhythmBlocks.js:663 +msgid "Eg a dotted quarter note will play for 3/8 (1/4 + 1/8) of a beat." msgstr "" -#: js/PitchBlocks.js:367 -#: js/DictActions.js:87 -msgid "current pitch" +#: js/blocks/RhythmBlocks.js:765 +#.TRANS: Japanese only: note value block for drum +msgid "note value drum" msgstr "" -#: js/PitchBlocks.js:373 -msgid "The Current Pitch block is used with the Pitch Converter block. In the example above, current pitch, sol 4, is displayed as 392 hertz." +#: js/blocks/RhythmBlocks.js:829 +msgid "392 hertz" msgstr "" -#: js/PitchBlocks.js:410 -msgid "This block converts the pitch value of the last note played into different formats such as hertz, letter name, pitch number, et al." +#: js/blocks/RhythmBlocks.js:1119 +msgid "The Note block is a container for one or more Pitch blocks." msgstr "" -#: js/PitchBlocks.js:434 -msgid "alphabet" +#: js/blocks/RhythmBlocks.js:1121 +msgid "The Note block specifies the duration (note value) of its contents." msgstr "" -#: js/PitchBlocks.js:436 -#.TRANS: Translate as "alphabet class" -msgid "letter class" +#: js/blocks/RhythmBlocks.js:1128 +#: js/blocks/PitchBlocks.js:974 +#: js/blocks/PitchBlocks.js:1007 +#: js/blocks/ProgramBlocks.js:1186 +#: js/blocks/ProgramBlocks.js:1227 +#: js/widgets/status.js:190 +#: js/widgets/temperament.js:464 +#: js/widgets/temperament.js:486 +#: js/widgets/temperament.js:496 +#: js/widgets/temperament.js:617 +#: plugins/rodi.rtp:192 +#.TRANS: a musical note consisting of pitch and duration +msgid "note" msgstr "" -#: js/PitchBlocks.js:437 -msgid "solfege class" +#: js/blocks/RhythmBlocks.js:1130 +msgid "value2" msgstr "" -#: js/PitchBlocks.js:438 -msgid "staff y" +#: js/blocks/RhythmBlocks.js:1200 +msgid "define frequency" msgstr "" -#: js/PitchBlocks.js:439 -msgid "solfege syllable" +#: js/blocks/RhythmBlocks.js:1218 +#: js/widgets/temperament.js:787 +#: js/widgets/temperament.js:1587 +msgid "octave space" msgstr "" -#: js/PitchBlocks.js:440 -msgid "pitch class" +#: js/blocks/SensorsBlocks.js:36 +msgid "The Input block prompts for keyboard input." msgstr "" -#: js/PitchBlocks.js:441 -msgid "scalar class" +#: js/blocks/SensorsBlocks.js:46 +msgid "input" msgstr "" -#: js/PitchBlocks.js:443 -msgid "nth degree" +#: js/blocks/SensorsBlocks.js:64 +msgid "Input a value" msgstr "" -#: js/PitchBlocks.js:444 -msgid "pitch to shade" +#: js/blocks/SensorsBlocks.js:126 +msgid "input value" msgstr "" -#: js/PitchBlocks.js:445 -msgid "pitch to color" +#: js/blocks/SensorsBlocks.js:131 +msgid "The Input-value block stores the input." msgstr "" -#: js/PitchBlocks.js:629 -#: js/musickeyboard.js:565 -#.TRANS: MIDI is a technical standard for electronic music -msgid "MIDI" +#: js/blocks/SensorsBlocks.js:238 +msgid "loudness" msgstr "" -#: js/PitchBlocks.js:642 -#.TRANS: set an offset associated with the numeric piano keyboard mapping -msgid "set pitch number offset" +#: js/blocks/SensorsBlocks.js:245 +msgid "The Loudness block returns the volume detected by the microphone." msgstr "" -#: js/PitchBlocks.js:645 -msgid "The Set pitch number offset block is used to set the offset for mapping pitch numbers to pitch and octave." +#: js/blocks/SensorsBlocks.js:300 +msgid "click" msgstr "" -#: js/PitchBlocks.js:679 -#.TRANS: convert piano key number (1-88) to pitch -msgid "number to pitch" +#: js/blocks/SensorsBlocks.js:306 +msgid "The Click block triggers an event if a mouse has been clicked." msgstr "" -#: js/PitchBlocks.js:682 -msgid "The Number to pitch block will convert a pitch number to a pich name." +#: js/blocks/SensorsBlocks.js:313 +msgid "The Click block triggers an event if a turtle has been clicked." msgstr "" -#: js/PitchBlocks.js:715 -#.TRANS: convert piano key number (1-88) to octave -msgid "number to octave" +#: js/blocks/SensorsBlocks.js:342 +msgid "cursor over" msgstr "" -#: js/PitchBlocks.js:717 -msgid "The Number to octave block will convert a pitch number to an octave." +#: js/blocks/SensorsBlocks.js:387 +msgid "cursor out" msgstr "" -#: js/PitchBlocks.js:726 -msgid "y to pitch" +#: js/blocks/SensorsBlocks.js:433 +msgid "cursor button down" msgstr "" -#: js/PitchBlocks.js:729 -msgid "Y to pitch block will convert a staff y position to corresponding pitch notation." +#: js/blocks/SensorsBlocks.js:477 +msgid "cursor button up" msgstr "" -#: js/PitchBlocks.js:841 -msgid "accidental selector" +#: js/blocks/SensorsBlocks.js:521 +#: js/blocks/PenBlocks.js:48 +#: plugins/rodi.rtp:219 +msgid "blue" msgstr "" -#: js/PitchBlocks.js:844 -msgid "The Accidental selector block is used to choose between double-sharp, sharp, natural, flat, and double-flat." +#: js/blocks/SensorsBlocks.js:577 +#: js/blocks/PenBlocks.js:64 +#: plugins/rodi.rtp:218 +msgid "green" msgstr "" -#: js/PitchBlocks.js:858 -msgid "Pitch can be specified in terms of ni dha pa ma ga re sa." +#: js/blocks/SensorsBlocks.js:633 +#: js/blocks/PenBlocks.js:112 +#: plugins/rodi.rtp:217 +msgid "red" msgstr "" -#: js/PitchBlocks.js:872 -msgid "Pitch can be specified in terms of C D E F G A B." +#: js/blocks/SensorsBlocks.js:638 +msgid "The Get red block returns the red component of the pixel under the mouse." msgstr "" -#: js/PitchBlocks.js:883 -msgid "solfege" +#: js/blocks/SensorsBlocks.js:644 +msgid "The Get red block returns the red component of the pixel under the turtle." msgstr "" -#: js/PitchBlocks.js:886 -msgid "Pitch can be specified in terms of do re mi fa sol la ti." +#: js/blocks/SensorsBlocks.js:685 +#: plugins/rodi.rtp:216 +msgid "pixel color" msgstr "" -#: js/PitchBlocks.js:920 -msgid "The Invert block rotates any contained notes around a target note." +#: js/blocks/SensorsBlocks.js:690 +msgid "The Get pixel block returns the color of the pixel under the mouse." msgstr "" -#: js/PitchBlocks.js:927 -#.TRANS: pitch inversion rotates a pitch around another pitch -msgid "invert" +#: js/blocks/SensorsBlocks.js:696 +msgid "The Get pixel block returns the color of the pixel under the turtle." msgstr "" -#: js/PitchBlocks.js:929 -#: js/PitchBlocks.js:935 -#: js/PitchActions.js:727 -#: js/musicutils.js:726 -#: js/musicutils.js:902 -#.TRANS: invert based on even or odd number or musical scale -#.TRANS: even numbers -msgid "even" +#: js/blocks/SensorsBlocks.js:758 +msgid "time" msgstr "" -#: js/PitchBlocks.js:935 -#: js/PitchActions.js:729 -#: js/musicutils.js:728 -#: js/musicutils.js:903 -#.TRANS: odd numbers -msgid "odd" +#: js/blocks/SensorsBlocks.js:804 +msgid "cursor y" msgstr "" -#: js/PitchBlocks.js:935 -#: js/PitchActions.js:731 -#: js/musicutils.js:729 -#: js/musicutils.js:904 -msgid "scalar" +#: js/blocks/SensorsBlocks.js:809 +msgid "The Cursor Y block returns the vertical position of the mouse." msgstr "" -#: js/PitchBlocks.js:966 -#.TRANS: pitch inversion rotates a pitch around another pitch (odd number) -msgid "invert (odd)" +#: js/blocks/SensorsBlocks.js:845 +msgid "cursor x" msgstr "" -#: js/PitchBlocks.js:999 -#.TRANS: pitch inversion rotates a pitch around another pitch (even number) -msgid "invert (even)" +#: js/blocks/SensorsBlocks.js:850 +msgid "The Cursor X block returns the horizontal position of the mouse." msgstr "" -#: js/PitchBlocks.js:1020 -#.TRANS: register is the octave of the current pitch -msgid "register" +#: js/blocks/SensorsBlocks.js:886 +msgid "mouse button" msgstr "" -#: js/PitchBlocks.js:1024 -msgid "The Register block provides an easy way to modify the register (octave) of the notes that follow it." +#: js/blocks/SensorsBlocks.js:888 +msgid "The Mouse-button block returns True if the mouse button is pressed." msgstr "" -#: js/PitchBlocks.js:1074 -msgid "The Semi-tone transposition block will shift the pitches contained inside Note blocks up (or down) by half steps." +#: js/blocks/SensorsBlocks.js:934 +msgid "to ASCII" msgstr "" -#: js/PitchBlocks.js:1076 -msgid "In the example shown above, sol is shifted up to sol#." +#: js/blocks/SensorsBlocks.js:938 +msgid "The To ASCII block converts numbers to letters." msgstr "" -#: js/PitchBlocks.js:1082 -#.TRANS: adjust the amount of shift (up or down) of a pitch -msgid "semi-tone transpose" +#: js/blocks/SensorsBlocks.js:1005 +msgid "The Keyboard block returns computer keyboard input." msgstr "" -#: js/PitchBlocks.js:1115 -msgid "The Transpose by Ratio block will shift the pitches contained inside Note blocks up (or down) by a ratio" +#: js/blocks/RhythmBlockPaletteBlocks.js:50 +#: js/blocks/RhythmBlockPaletteBlocks.js:233 +#.TRANS: rhythm block +#.TRANS: translate "rhythm1" as rhythm +msgid "rhythm1" msgstr "" -#: js/PitchBlocks.js:1121 -#.TRANS: adjust the amount of shift (up or down) of a pitch -msgid "transpose by ratio" +#: js/blocks/RhythmBlockPaletteBlocks.js:70 +#: js/blocks/RhythmBlockPaletteBlocks.js:252 +#: js/blocks/RhythmBlockPaletteBlocks.js:485 +#: js/blocks/RhythmBlockPaletteBlocks.js:554 +#: js/blocks/RhythmBlockPaletteBlocks.js:875 +msgid "number of notes" msgstr "" -#: js/PitchBlocks.js:1204 -#.TRANS: down sixth means the note is five scale degrees below current note -msgid "down sixth" +#: js/blocks/RhythmBlockPaletteBlocks.js:126 +msgid "polyphonic rhythm" msgstr "" -#: js/PitchBlocks.js:1223 -#.TRANS: down third means the note is two scale degrees below current note -msgid "down third" +#: js/blocks/RhythmBlockPaletteBlocks.js:219 +msgid "The Rhythm block is used to generate rhythm patterns." msgstr "" -#: js/PitchBlocks.js:1242 -#.TRANS: seventh means the note is the six scale degrees above current note -msgid "seventh" +#: js/blocks/RhythmBlockPaletteBlocks.js:280 +msgid "1/64 note" msgstr "" -#: js/PitchBlocks.js:1261 -#.TRANS: sixth means the note is the five scale degrees above current note -msgid "sixth" +#: js/blocks/RhythmBlockPaletteBlocks.js:304 +msgid "1/32 note" msgstr "" -#: js/PitchBlocks.js:1280 -#.TRANS: fifth means the note is the four scale degrees above current note -msgid "fifth" +#: js/blocks/RhythmBlockPaletteBlocks.js:332 +msgid "1/16 note" msgstr "" -#: js/PitchBlocks.js:1300 -#.TRANS: fourth means the note is three scale degrees above current note -msgid "fourth" +#: js/blocks/RhythmBlockPaletteBlocks.js:360 +msgid "eighth note" msgstr "" -#: js/PitchBlocks.js:1319 -#.TRANS: third means the note is two scale degrees above current note -msgid "third" +#: js/blocks/RhythmBlockPaletteBlocks.js:388 +msgid "quarter note" msgstr "" -#: js/PitchBlocks.js:1338 -#.TRANS: second means the note is one scale degree above current note -msgid "second" +#: js/blocks/RhythmBlockPaletteBlocks.js:416 +msgid "half note" msgstr "" -#: js/PitchBlocks.js:1379 -msgid "The Scalar transposition block will shift the pitches contained inside Note blocks up (or down) the scale." +#: js/blocks/RhythmBlockPaletteBlocks.js:444 +msgid "whole note" msgstr "" -#: js/PitchBlocks.js:1381 -msgid "In the example shown above, sol is shifted up to la." +#: js/blocks/RhythmBlockPaletteBlocks.js:482 +#: js/blocks/RhythmBlockPaletteBlocks.js:551 +#: js/blocks/RhythmBlockPaletteBlocks.js:602 +#.TRANS: A tuplet is a note value divided into irregular time values. +msgid "tuplet" msgstr "" -#: js/PitchBlocks.js:1388 -#.TRANS: adjust the amount of shift (up or down) of a pitch by musical scale (scalar) steps -msgid "scalar transpose" +#: js/blocks/RhythmBlockPaletteBlocks.js:768 +msgid "septuplet" msgstr "" -#: js/PitchBlocks.js:1423 -msgid "The Accidental block is used to create sharps and flats" +#: js/blocks/RhythmBlockPaletteBlocks.js:796 +msgid "quintuplet" msgstr "" -#: js/PitchBlocks.js:1430 -#.TRANS: An accidental is a modification to a pitch, e.g., sharp or flat. -msgid "accidental override" +#: js/blocks/RhythmBlockPaletteBlocks.js:824 +msgid "triplet" msgstr "" -#: js/PitchBlocks.js:1543 -msgid "The Hertz block (in combination with a Number block) will play a sound at the specified frequency." +#: js/blocks/RhythmBlockPaletteBlocks.js:851 +msgid "simple tuplet" msgstr "" -#: js/PitchBlocks.js:1633 -msgid "The Pitch Number block will play a pitch associated by its number, e.g. 0 for C and 7 for G." +#: js/blocks/RhythmBlockPaletteBlocks.js:861 +msgid "Tuplets are a collection of notes that get scaled to a specific duration." msgstr "" -#: js/PitchBlocks.js:1665 -#: js/PitchBlocks.js:1707 -#.TRANS: a numeric mapping of the notes in an octave based on the musical mode -#.TRANS: a numeric mapping of the notes in an octave based on the musical mode -msgid "nth modal pitch" +#: js/blocks/DrumBlocks.js:59 +msgid "The Noise name block is used to select a noise synthesizer." msgstr "" -#: js/PitchBlocks.js:1668 -msgid "n^th Modal Pitch takes the pattern of pitches in semitones for a mode and makes each point a degree of the mode," +#: js/blocks/DrumBlocks.js:102 +msgid "The Drum name block is used to select a drum." msgstr "" -#: js/PitchBlocks.js:1670 -msgid "starting from 1 and regardless of tonal framework (i.e. not always 8 notes in the octave)" +#: js/blocks/DrumBlocks.js:146 +msgid "The Effects name block is used to select a sound effect." msgstr "" -#: js/PitchBlocks.js:1711 -msgid "N^th Modal Pitch takes a number as an input as the n^th degree for the given mode. 0 is the first position, 1 is the second, -1 is the note before the first etc." +#: js/blocks/DrumBlocks.js:163 +msgid "noise" msgstr "" -#: js/PitchBlocks.js:1713 -msgid "The pitches change according to the mode specified without any need for respellings." +#: js/blocks/DrumBlocks.js:177 +msgid "The Play noise block will generate white, pink, or brown noise." msgstr "" -#: js/PitchBlocks.js:1752 -msgid "Scale Degree is a common convention in music. Scale Degree offers seven possible positions in the scale (1-7) and can be modified via accidentals." +#: js/blocks/DrumBlocks.js:317 +msgid "Replace every instance of a pitch with a drum sound." msgstr "" -#: js/PitchBlocks.js:1754 -msgid "Scale Degree 1 is always the first pitch in a given scale, regardless of octave." +#: js/blocks/DrumBlocks.js:328 +#.TRANS: map a pitch to a drum sound +msgid "map pitch to drum" msgstr "" -#: js/PitchBlocks.js:1776 -#.TRANS: step some number of notes in current musical scale -msgid "scalar step" +#: js/blocks/DrumBlocks.js:395 +msgid "In the example above, a kick drum sound will be played instead of sol." msgstr "" -#: js/PitchBlocks.js:1781 -msgid "The Scalar Step block (in combination with a Number block) will play the next pitch in a scale," +#: js/blocks/DrumBlocks.js:407 +#.TRANS: set the current drum sound for playback +msgid "set drum" msgstr "" -#: js/PitchBlocks.js:1783 -msgid "eg if the last note played was sol, Scalar Step 1 will play la." +#: js/blocks/DrumBlocks.js:451 +msgid "sound effect" msgstr "" -#: js/PitchBlocks.js:1818 -msgid "The Pitch block specifies the pitch name and octave of a note that together determine the frequency of the note." +#: js/blocks/DrumBlocks.js:489 +msgid "You can use multiple Drum blocks within a Note block." msgstr "" -#: js/GraphicsBlocks.js:46 -#: js/DictActions.js:77 -#: js/DictActions.js:155 -#: js/DictActions.js:189 +#: js/blocks/GraphicsBlocks.js:46 +#: js/turtleactions/DictActions.js:77 +#: js/turtleactions/DictActions.js:144 +#: js/turtleactions/DictActions.js:173 msgid "heading" msgstr "" -#: js/GraphicsBlocks.js:56 +#: js/blocks/GraphicsBlocks.js:56 msgid "The Heading block returns the orientation of the mouse." msgstr "" -#: js/GraphicsBlocks.js:62 +#: js/blocks/GraphicsBlocks.js:62 msgid "The Heading block returns the orientation of the turtle." msgstr "" -#: js/GraphicsBlocks.js:133 +#: js/blocks/GraphicsBlocks.js:133 msgid "The Y block returns the vertical position of the mouse." msgstr "" -#: js/GraphicsBlocks.js:140 +#: js/blocks/GraphicsBlocks.js:140 msgid "The Y block returns the vertical position of the turtle." msgstr "" -#: js/GraphicsBlocks.js:149 +#: js/blocks/GraphicsBlocks.js:149 msgid "y3" msgstr "" -#: js/GraphicsBlocks.js:219 +#: js/blocks/GraphicsBlocks.js:219 msgid "The X block returns the horizontal position of the mouse." msgstr "" -#: js/GraphicsBlocks.js:226 +#: js/blocks/GraphicsBlocks.js:226 msgid "The X block returns the horizontal position of the turtle." msgstr "" -#: js/GraphicsBlocks.js:235 +#: js/blocks/GraphicsBlocks.js:235 msgid "x3" msgstr "" -#: js/GraphicsBlocks.js:295 +#: js/blocks/GraphicsBlocks.js:295 msgid "scroll xy" msgstr "" -#: js/GraphicsBlocks.js:303 +#: js/blocks/GraphicsBlocks.js:303 msgid "The Scroll XY block moves the canvas." msgstr "" -#: js/GraphicsBlocks.js:313 +#: js/blocks/GraphicsBlocks.js:313 msgid "x2" msgstr "" -#: js/GraphicsBlocks.js:313 +#: js/blocks/GraphicsBlocks.js:313 msgid "y2" msgstr "" -#: js/GraphicsBlocks.js:373 -#: js/temperament.js:213 -#: js/temperament.js:241 +#: js/blocks/GraphicsBlocks.js:373 +#: js/widgets/temperament.js:319 +#: js/widgets/temperament.js:347 msgid "clear" msgstr "" -#: js/GraphicsBlocks.js:426 +#: js/blocks/GraphicsBlocks.js:426 msgid "The Control-point 2 block sets the second control point for the Bezier curve." msgstr "" -#: js/GraphicsBlocks.js:433 +#: js/blocks/GraphicsBlocks.js:433 msgid "control point 2" msgstr "" -#: js/GraphicsBlocks.js:436 -#: js/GraphicsBlocks.js:487 -#: js/GraphicsBlocks.js:534 -#: js/GraphicsBlocks.js:750 +#: js/blocks/GraphicsBlocks.js:436 +#: js/blocks/GraphicsBlocks.js:487 +#: js/blocks/GraphicsBlocks.js:534 +#: js/blocks/GraphicsBlocks.js:750 msgid "x1" msgstr "" -#: js/GraphicsBlocks.js:436 -#: js/GraphicsBlocks.js:487 -#: js/GraphicsBlocks.js:534 -#: js/GraphicsBlocks.js:750 +#: js/blocks/GraphicsBlocks.js:436 +#: js/blocks/GraphicsBlocks.js:487 +#: js/blocks/GraphicsBlocks.js:534 +#: js/blocks/GraphicsBlocks.js:750 msgid "y1" msgstr "" -#: js/GraphicsBlocks.js:477 +#: js/blocks/GraphicsBlocks.js:477 msgid "The Control-point 1 block sets the first control point for the Bezier curve." msgstr "" -#: js/GraphicsBlocks.js:484 +#: js/blocks/GraphicsBlocks.js:484 msgid "control point 1" msgstr "" -#: js/GraphicsBlocks.js:527 +#: js/blocks/GraphicsBlocks.js:527 msgid "The Bezier block draws a Bezier curve." msgstr "" -#: js/GraphicsBlocks.js:531 +#: js/blocks/GraphicsBlocks.js:531 msgid "bezier" msgstr "" -#: js/GraphicsBlocks.js:592 +#: js/blocks/GraphicsBlocks.js:592 msgid "The Arc block moves the turtle in an arc." msgstr "" -#: js/GraphicsBlocks.js:600 +#: js/blocks/GraphicsBlocks.js:600 msgid "arc" msgstr "" -#: js/GraphicsBlocks.js:603 +#: js/blocks/GraphicsBlocks.js:603 msgid "angle" msgstr "" -#: js/GraphicsBlocks.js:603 +#: js/blocks/GraphicsBlocks.js:603 msgid "radius" msgstr "" -#: js/GraphicsBlocks.js:620 -#: js/GraphicsBlocks.js:767 -#: js/GraphicsBlocks.js:1010 -#: js/GraphicsBlocks.js:1093 +#: js/blocks/GraphicsBlocks.js:620 +#: js/blocks/GraphicsBlocks.js:767 +#: js/blocks/GraphicsBlocks.js:1010 +#: js/blocks/GraphicsBlocks.js:1093 msgid "Value must be within -5000 to 5000 when Wrap Mode is off." msgstr "" -#: js/GraphicsBlocks.js:622 -#: js/GraphicsBlocks.js:769 -#: js/GraphicsBlocks.js:1012 -#: js/GraphicsBlocks.js:1095 +#: js/blocks/GraphicsBlocks.js:622 +#: js/blocks/GraphicsBlocks.js:769 +#: js/blocks/GraphicsBlocks.js:1012 +#: js/blocks/GraphicsBlocks.js:1095 msgid "Value must be within -20000 to 20000 when Wrap Mode is on." msgstr "" -#: js/GraphicsBlocks.js:660 +#: js/blocks/GraphicsBlocks.js:660 msgid "set heading" msgstr "seth" -#: js/GraphicsBlocks.js:673 +#: js/blocks/GraphicsBlocks.js:673 msgid "The Set heading block sets the heading of the turtle." msgstr "" -#: js/GraphicsBlocks.js:733 +#: js/blocks/GraphicsBlocks.js:733 msgid "The Set XY block moves the mouse to a specific position on the screen." msgstr "" -#: js/GraphicsBlocks.js:739 +#: js/blocks/GraphicsBlocks.js:739 msgid "The Set XY block moves the turtle to a specific position on the screen." msgstr "" -#: js/GraphicsBlocks.js:747 +#: js/blocks/GraphicsBlocks.js:747 msgid "set xy" msgstr "" -#: js/GraphicsBlocks.js:819 +#: js/blocks/GraphicsBlocks.js:819 msgid "The Right block turns the mouse to the right." msgstr "" -#: js/GraphicsBlocks.js:826 +#: js/blocks/GraphicsBlocks.js:826 msgid "The Right block turns the turtle to the right." msgstr "" -#: js/GraphicsBlocks.js:835 +#: js/blocks/GraphicsBlocks.js:835 msgid "right1" msgstr "" -#: js/GraphicsBlocks.js:835 +#: js/blocks/GraphicsBlocks.js:835 #: plugins/rodi.rtp:77 #: plugins/rodi.rtp:340 #: plugins/rodi.rtp:375 msgid "right" msgstr "" -#: js/GraphicsBlocks.js:899 +#: js/blocks/GraphicsBlocks.js:899 msgid "The Left block turns the mouse to the left." msgstr "" -#: js/GraphicsBlocks.js:906 +#: js/blocks/GraphicsBlocks.js:906 msgid "The Left block turns the turtle to the left." msgstr "" -#: js/GraphicsBlocks.js:915 +#: js/blocks/GraphicsBlocks.js:915 msgid "left1" msgstr "" -#: js/GraphicsBlocks.js:915 +#: js/blocks/GraphicsBlocks.js:915 #: plugins/rodi.rtp:79 #: plugins/rodi.rtp:339 #: plugins/rodi.rtp:362 msgid "left" msgstr "" -#: js/GraphicsBlocks.js:967 -#: js/temperament.js:734 -#: js/temperament.js:933 +#: js/blocks/GraphicsBlocks.js:967 +#: js/widgets/temperament.js:875 +#: js/widgets/temperament.js:1078 #: plugins/rodi.rtp:69 #: plugins/rodi.rtp:387 msgid "back" msgstr "" -#: js/GraphicsBlocks.js:976 +#: js/blocks/GraphicsBlocks.js:976 msgid "The Back block moves the mouse backward." msgstr "" -#: js/GraphicsBlocks.js:983 +#: js/blocks/GraphicsBlocks.js:983 msgid "The Back block moves the turtle backward." msgstr "" -#: js/GraphicsBlocks.js:1050 +#: js/blocks/GraphicsBlocks.js:1050 #: plugins/rodi.rtp:71 #: plugins/rodi.rtp:400 msgid "forward" msgstr "" -#: js/GraphicsBlocks.js:1059 +#: js/blocks/GraphicsBlocks.js:1059 msgid "The Forward block moves the mouse forward." msgstr "" -#: js/GraphicsBlocks.js:1066 +#: js/blocks/GraphicsBlocks.js:1066 msgid "The Forward block moves the turtle forward." msgstr "" -#: js/GraphicsBlocks.js:1154 -#: js/GraphicsBlocks.js:1172 +#: js/blocks/GraphicsBlocks.js:1154 +#: js/blocks/GraphicsBlocks.js:1172 msgid "wrap" msgstr "" -#: js/OrnamentBlocks.js:32 -msgid "staccato factor" -msgstr "" - -#: js/OrnamentBlocks.js:108 -msgid "slur factor" -msgstr "" - -#: js/OrnamentBlocks.js:217 -#: js/OrnamentBlocks.js:309 -#.TRANS: the neighbor refers to a neighboring note, e.g., D is a neighbor of C -msgid "neighbor" -msgstr "" - -#: js/OrnamentBlocks.js:293 -msgid "The Neighbor block rapidly switches between neighboring pitches." -msgstr "" - -#: js/OrnamentBlocks.js:364 -msgid "glide" -msgstr "" - -#: js/OrnamentBlocks.js:479 -#: js/OrnamentBlocks.js:643 -msgid "slur" -msgstr "" - -#: js/OrnamentBlocks.js:558 -#: js/OrnamentBlocks.js:710 -#.TRANS: play each note sharply detached from the others -msgid "staccato" -msgstr "" - -#: js/PenBlocks.js:24 +#: js/blocks/PenBlocks.js:30 msgid "purple" msgstr "" -#: js/PenBlocks.js:37 -#: js/SensorsBlocks.js:521 -#: plugins/rodi.rtp:219 -msgid "blue" -msgstr "" - -#: js/PenBlocks.js:50 -#: js/SensorsBlocks.js:577 -#: plugins/rodi.rtp:218 -msgid "green" -msgstr "" - -#: js/PenBlocks.js:63 +#: js/blocks/PenBlocks.js:80 msgid "yellow" msgstr "" -#: js/PenBlocks.js:76 +#: js/blocks/PenBlocks.js:96 #: plugins/nutrition.rtp:164 msgid "orange" msgstr "" -#: js/PenBlocks.js:89 -#: js/SensorsBlocks.js:633 -#: plugins/rodi.rtp:217 -msgid "red" -msgstr "" - -#: js/PenBlocks.js:102 +#: js/blocks/PenBlocks.js:128 msgid "white" msgstr "" -#: js/PenBlocks.js:115 +#: js/blocks/PenBlocks.js:144 msgid "black" msgstr "" -#: js/PenBlocks.js:128 +#: js/blocks/PenBlocks.js:163 msgid "begin fill" msgstr "" -#: js/PenBlocks.js:143 +#: js/blocks/PenBlocks.js:190 msgid "end fill" msgstr "" -#: js/PenBlocks.js:159 -#: js/PenBlocks.js:386 +#: js/blocks/PenBlocks.js:212 +#: js/blocks/PenBlocks.js:560 #.TRANS: set the background color msgid "background" msgstr "" -#: js/PenBlocks.js:206 -#: js/DictActions.js:71 -#: js/DictActions.js:149 -#: js/DictActions.js:186 +#: js/blocks/PenBlocks.js:274 +#: js/turtleactions/DictActions.js:71 +#: js/turtleactions/DictActions.js:138 +#: js/turtleactions/DictActions.js:170 msgid "grey" msgstr "" -#: js/PenBlocks.js:210 +#: js/blocks/PenBlocks.js:282 msgid "The Grey block returns the current pen grey value." msgstr "" -#: js/PenBlocks.js:243 -#: js/DictActions.js:69 -#: js/DictActions.js:147 -#: js/DictActions.js:185 +#: js/blocks/PenBlocks.js:340 +#: js/turtleactions/DictActions.js:69 +#: js/turtleactions/DictActions.js:136 +#: js/turtleactions/DictActions.js:169 msgid "shade" msgstr "" -#: js/PenBlocks.js:247 +#: js/blocks/PenBlocks.js:347 msgid "The Shade block returns the current pen shade value." msgstr "" -#: js/PenBlocks.js:280 -#: js/DictActions.js:67 -#: js/DictActions.js:145 -#: js/DictActions.js:184 +#: js/blocks/PenBlocks.js:405 +#: js/turtleactions/DictActions.js:67 +#: js/turtleactions/DictActions.js:134 +#: js/turtleactions/DictActions.js:168 msgid "color" msgstr "" -#: js/PenBlocks.js:285 +#: js/blocks/PenBlocks.js:415 msgid "The Color block returns the current pen color." msgstr "" -#: js/PenBlocks.js:318 -#: js/DictActions.js:73 -#: js/DictActions.js:151 -#: js/DictActions.js:187 +#: js/blocks/PenBlocks.js:470 +#: js/turtleactions/DictActions.js:73 +#: js/turtleactions/DictActions.js:140 +#: js/turtleactions/DictActions.js:171 msgid "pen size" msgstr "" -#: js/PenBlocks.js:322 +#: js/blocks/PenBlocks.js:474 msgid "The Pen size block returns the current pen size value." msgstr "" -#: js/PenBlocks.js:355 +#: js/blocks/PenBlocks.js:513 msgid "set font" msgstr "" -#: js/PenBlocks.js:358 +#: js/blocks/PenBlocks.js:518 msgid "The Set font block sets the font used by the Show block." msgstr "" -#: js/PenBlocks.js:391 +#: js/blocks/PenBlocks.js:567 msgid "The Background block sets the window background color." msgstr "" -#: js/PenBlocks.js:408 +#: js/blocks/PenBlocks.js:598 msgid "The Hollow line block creates a line with a hollow center." msgstr "" -#: js/PenBlocks.js:415 +#: js/blocks/PenBlocks.js:606 #.TRANS: draw a line logo has a hollow space down its center msgid "hollow line" msgstr "" -#: js/PenBlocks.js:462 +#: js/blocks/PenBlocks.js:675 msgid "The Fill block fills in a shape with a color." msgstr "" -#: js/PenBlocks.js:470 +#: js/blocks/PenBlocks.js:684 #.TRANS: fill in as a solid color msgid "fill" msgstr "" -#: js/PenBlocks.js:527 +#: js/blocks/PenBlocks.js:761 #.TRANS: raise up the pen so logo it does not draw when it is moved msgid "pen up" msgstr "" -#: js/PenBlocks.js:532 +#: js/blocks/PenBlocks.js:768 msgid "The Pen-up block raises the pen so that it does not draw." msgstr "" -#: js/PenBlocks.js:552 +#: js/blocks/PenBlocks.js:802 #.TRANS: put down the pen so logo it draws when it is moved msgid "pen down" msgstr "pero dole" -#: js/PenBlocks.js:557 +#: js/blocks/PenBlocks.js:810 msgid "The Pen-down block lowers the pen so that it draws." msgstr "" -#: js/PenBlocks.js:577 +#: js/blocks/PenBlocks.js:844 #.TRANS: set the width of the line drawn by the pen msgid "set pen size" msgstr "" -#: js/PenBlocks.js:583 +#: js/blocks/PenBlocks.js:854 msgid "The Set-pen-size block changes the size of the pen." msgstr "" -#: js/PenBlocks.js:623 +#: js/blocks/PenBlocks.js:913 #.TRANS: set degree of translucence of the pen color msgid "set translucency" msgstr "" -#: js/PenBlocks.js:627 +#: js/blocks/PenBlocks.js:921 msgid "The Set translucency block changes the opacity of the pen." msgstr "" -#: js/PenBlocks.js:668 +#: js/blocks/PenBlocks.js:981 msgid "set hue" msgstr "" -#: js/PenBlocks.js:672 +#: js/blocks/PenBlocks.js:989 msgid "The Set hue block changes the color of the pen." msgstr "" -#: js/PenBlocks.js:711 +#: js/blocks/PenBlocks.js:1047 msgid "set shade" msgstr "" -#: js/PenBlocks.js:717 +#: js/blocks/PenBlocks.js:1057 msgid "The Set-shade block changes the pen color from dark to light." msgstr "" -#: js/PenBlocks.js:757 +#: js/blocks/PenBlocks.js:1111 #.TRANS: set the level of vividness of the pen color msgid "set grey" msgstr "" -#: js/PenBlocks.js:761 +#: js/blocks/PenBlocks.js:1119 msgid "The Set grey block changes the vividness of the pen color." msgstr "" -#: js/PenBlocks.js:800 +#: js/blocks/PenBlocks.js:1172 msgid "set color" msgstr "" -#: js/PenBlocks.js:806 +#: js/blocks/PenBlocks.js:1182 msgid "The Set-color block changes the pen color." msgstr "" -#: js/VolumeBlocks.js:35 -msgid "synth volume" -msgstr "" - -#: js/VolumeBlocks.js:39 -msgid "The Synth volume block returns the current volume of the current synthesizer." -msgstr "" - -#: js/VolumeBlocks.js:47 -#: js/musicutils.js:730 -#: js/synthutils.js:56 -#.TRANS: musical instrument -msgid "piano" -msgstr "" - -#: js/VolumeBlocks.js:105 -msgid "master volume" -msgstr "" - -#: js/VolumeBlocks.js:109 -msgid "The Master volume block returns the master volume." -msgstr "" - -#: js/VolumeBlocks.js:355 -#: js/VolumeBlocks.js:524 -msgid "set synth volume" -msgstr "" - -#: js/VolumeBlocks.js:362 -#: js/VolumeBlocks.js:545 -msgid "synth" -msgstr "" - -#: js/VolumeBlocks.js:403 -#: js/VolumeBlocks.js:577 -#: js/VolumeBlocks.js:740 -#: js/VolumeActions.js:173 -msgid "Setting volume to 0." -msgstr "" - -#: js/VolumeBlocks.js:440 -msgid "Synth not found" -msgstr "" - -#: js/VolumeBlocks.js:494 -msgid "set drum volume" -msgstr "" - -#: js/VolumeBlocks.js:530 -msgid "The Set synth volume block will change the volume of a particular synth," -msgstr "" - -#: js/VolumeBlocks.js:532 -msgid "eg guitar violin snare drum etc." -msgstr "" - -#: js/VolumeBlocks.js:534 -msgid "The default volume is 50." -msgstr "" - -#: js/VolumeBlocks.js:536 -msgid "The range is 0 for silence to 100 for full volume." -msgstr "" - -#: js/VolumeBlocks.js:597 -msgid "set panning" -msgstr "" - -#: js/VolumeBlocks.js:603 -msgid "The Set Panning block sets the panning for all synthesizers." -msgstr "" - -#: js/VolumeBlocks.js:625 -msgid "Warning: Sound is coming out from only the left or right side." -msgstr "" - -#: js/VolumeBlocks.js:647 -#: js/VolumeBlocks.js:695 -msgid "set master volume" -msgstr "" - -#: js/VolumeBlocks.js:653 -msgid "The Set master volume block sets the volume for all synthesizers." -msgstr "" - -#: js/VolumeBlocks.js:784 -msgid "The Set relative volume block changes the volume of the contained notes." -msgstr "" - -#: js/VolumeBlocks.js:791 -msgid "set relative volume" -msgstr "" - -#: js/VolumeBlocks.js:857 -msgid "decrescendo" -msgstr "" - -#: js/VolumeBlocks.js:921 -msgid "crescendo" -msgstr "" - -#: js/ToneBlocks.js:34 -msgid "oscillator" -msgstr "" - -#: js/ToneBlocks.js:44 -#: js/timbre.js:1562 -#.TRANS: Partials refers to the number of sine waves combined into the sound. -msgid "partials" -msgstr "" - -#: js/ToneBlocks.js:76 -msgid "You are adding multiple oscillator blocks." -msgstr "" - -#: js/ToneBlocks.js:144 -#: js/timbre.js:1225 -#.TRANS: a duo synthesizer combines a synth with a sequencer -msgid "duo synth" -msgstr "" - -#: js/ToneBlocks.js:149 -msgid "The Duo synth block is a duo-frequency modulator used to define a timbre." -msgstr "" - -#: js/ToneBlocks.js:157 -#: js/timbre.js:1476 -msgid "vibrato rate" -msgstr "" - -#: js/ToneBlocks.js:157 -msgid "vibrato intensity" -msgstr "" - -#: js/ToneBlocks.js:185 -#: js/timbre.js:1221 -#.TRANS: AM (amplitude modulation) synthesizer -msgid "AM synth" -msgstr "" - -#: js/ToneBlocks.js:189 -msgid "The AM synth block is an amplitude modulator used to define a timbre." -msgstr "" - -#: js/ToneBlocks.js:224 -#: js/timbre.js:1223 -#.TRANS: FM (frequency modulation) synthesizer -msgid "FM synth" -msgstr "" - -#: js/ToneBlocks.js:228 -msgid "The FM synth block is a frequency modulator used to define a timbre." +#: js/blocks/PitchBlocks.js:141 +#.TRANS: musical transposition (adjustment of pitch up or down) +msgid "transposition" msgstr "" -#: js/ToneBlocks.js:262 -msgid "partial" +#: js/blocks/PitchBlocks.js:168 +#.TRANS: step down one note in current musical scale +msgid "scalar step down" msgstr "" -#: js/ToneBlocks.js:265 -msgid "The Partial block is used to specify a weight for a specific partial harmonic." +#: js/blocks/PitchBlocks.js:172 +msgid "The Scalar step down block returns the number of semi-tones down to the previous note in the current key and mode." msgstr "" -#: js/ToneBlocks.js:284 -#.TRANS: partials are weighted components in a harmonic series -msgid "Partial weight must be between 0 and 1." +#: js/blocks/PitchBlocks.js:190 +#.TRANS: step up one note in current musical scale +msgid "scalar step up" msgstr "" -#: js/ToneBlocks.js:297 -#.TRANS: partials are weighted components in a harmonic series -msgid "Partial block should be used inside of a Weighted-partials block." +#: js/blocks/PitchBlocks.js:194 +msgid "The Scalar step up block returns the number of semi-tones up to the next note in the current key and mode." msgstr "" -#: js/ToneBlocks.js:325 -#.TRANS: partials are weighted components in a harmonic series -msgid "weighted partials" +#: js/blocks/PitchBlocks.js:212 +#.TRANS: the change measured in half-steps between the current pitch and the previous pitch +msgid "change in pitch" msgstr "" -#: js/ToneBlocks.js:383 -msgid "The Harmonic block will add harmonics to the contained notes." +#: js/blocks/PitchBlocks.js:216 +msgid "The Change in pitch block is the difference (in half steps) between the current pitch being played and the previous pitch played." msgstr "" -#: js/ToneBlocks.js:390 -#.TRANS: A harmonic is an overtone. -msgid "harmonic" +#: js/blocks/PitchBlocks.js:243 +#.TRANS: the change measured in scale-steps between the current pitch and the previous pitch +msgid "scalar change in pitch" msgstr "" -#: js/ToneBlocks.js:431 -msgid "The Distortion block adds distortion to the pitch." +#: js/blocks/PitchBlocks.js:250 +#: js/blocks/PitchBlocks.js:432 +#: js/blocks/PitchBlocks.js:1667 +#: js/turtleactions/DictActions.js:89 +#: js/widgets/temperament.js:610 +#: js/widgets/temperament.js:614 +#: js/widgets/temperament.js:855 +#.TRANS: convert current note to piano key (1-88) +#.TRANS: a mapping of pitch to the 88 piano keys +msgid "pitch number" msgstr "" -#: js/ToneBlocks.js:438 -#: js/timbre.js:2100 -#.TRANS: distortion is an alteration in the sound -msgid "distortion" +#: js/blocks/PitchBlocks.js:256 +msgid "The Pitch number block is the value of the pitch of the note currently being played." msgstr "" -#: js/ToneBlocks.js:487 -msgid "The Tremolo block adds a wavering effect." +#: js/blocks/PitchBlocks.js:329 +#: js/blocks/PitchBlocks.js:433 +#.TRANS: the current pitch expressed in Hertz +msgid "pitch in hertz" msgstr "" -#: js/ToneBlocks.js:495 -#: js/timbre.js:2092 -#.TRANS: a wavering effect in a musical tone -msgid "tremolo" +#: js/blocks/PitchBlocks.js:334 +msgid "The Pitch in Hertz block is the value in Hertz of the pitch of the note currently being played." msgstr "" -#: js/ToneBlocks.js:500 -#: js/ToneBlocks.js:569 -#: js/ToneBlocks.js:630 -#: js/ToneBlocks.js:689 -#: js/timbre.js:2134 -#: js/timbre.js:2222 -#: js/timbre.js:2317 -#: js/timbre.js:2419 -#.TRANS: rate at which tremolo wavers -msgid "rate" +#: js/blocks/PitchBlocks.js:367 +#: js/turtleactions/DictActions.js:87 +msgid "current pitch" msgstr "" -#: js/ToneBlocks.js:502 -#: js/ToneBlocks.js:630 -#: js/timbre.js:2137 -#: js/timbre.js:2328 -#.TRANS: amplitude of tremolo waver -msgid "depth" +#: js/blocks/PitchBlocks.js:373 +msgid "The Current Pitch block is used with the Pitch Converter block. In the example above, current pitch, sol 4, is displayed as 392 hertz." msgstr "" -#: js/ToneBlocks.js:559 -msgid "The Phaser block adds a sweeping sound." +#: js/blocks/PitchBlocks.js:410 +msgid "This block converts the pitch value of the last note played into different formats such as hertz, letter name, pitch number, et al." msgstr "" -#: js/ToneBlocks.js:566 -#: js/timbre.js:2098 -#.TRANS: alter the phase of the sound -msgid "phaser" +#: js/blocks/PitchBlocks.js:434 +msgid "alphabet" msgstr "" -#: js/ToneBlocks.js:569 -#: js/timbre.js:2422 -msgid "octaves" +#: js/blocks/PitchBlocks.js:436 +#.TRANS: Translate as "alphabet class" +msgid "letter class" msgstr "" -#: js/ToneBlocks.js:569 -#: js/timbre.js:2425 -msgid "base frequency" +#: js/blocks/PitchBlocks.js:437 +msgid "solfege class" msgstr "" -#: js/ToneBlocks.js:619 -msgid "The Chorus block adds a chorus effect." +#: js/blocks/PitchBlocks.js:438 +msgid "staff y" msgstr "" -#: js/ToneBlocks.js:627 -#: js/timbre.js:2096 -#.TRANS: musical effect to simulate a choral sound -msgid "chorus" +#: js/blocks/PitchBlocks.js:439 +msgid "solfege syllable" msgstr "" -#: js/ToneBlocks.js:630 -msgid "delay" +#: js/blocks/PitchBlocks.js:440 +msgid "pitch class" msgstr "" -#: js/ToneBlocks.js:678 -msgid "The Vibrato block adds a rapid, slight variation in pitch." +#: js/blocks/PitchBlocks.js:441 +msgid "scalar class" msgstr "" -#: js/ToneBlocks.js:686 -#: js/timbre.js:2094 -#.TRANS: a rapid, slight variation in pitch -msgid "vibrato" +#: js/blocks/PitchBlocks.js:443 +msgid "nth degree" msgstr "" -#: js/ToneBlocks.js:689 -#: js/timbre.js:2221 -msgid "intensity" +#: js/blocks/PitchBlocks.js:444 +msgid "pitch to shade" msgstr "" -#: js/ToneBlocks.js:733 -#.TRANS: select synthesizer -msgid "set synth" +#: js/blocks/PitchBlocks.js:445 +msgid "pitch to color" msgstr "" -#: js/ToneBlocks.js:804 -msgid "synth name" +#: js/blocks/PitchBlocks.js:629 +#: js/widgets/musickeyboard.js:735 +#.TRANS: MIDI is a technical standard for electronic music +msgid "MIDI" msgstr "" -#: js/ToneBlocks.js:842 -msgid "set default instrument" +#: js/blocks/PitchBlocks.js:642 +#.TRANS: set an offset associated with the numeric piano keyboard mapping +msgid "set pitch number offset" msgstr "" -#: js/ToneBlocks.js:895 -#: js/ToneBlocks.js:943 -#.TRANS: set the characteristics of a custom instrument -msgid "set instrument" +#: js/blocks/PitchBlocks.js:645 +msgid "The Set pitch number offset block is used to set the offset for mapping pitch numbers to pitch and octave." msgstr "" -#: js/ToneBlocks.js:898 -#: js/ToneBlocks.js:926 -#: js/ToneBlocks.js:932 -msgid "The Set instrument block selects a voice for the synthesizer," +#: js/blocks/PitchBlocks.js:679 +#.TRANS: convert piano key number (1-88) to pitch +msgid "number to pitch" msgstr "" -#: js/ToneBlocks.js:900 -#: js/ToneBlocks.js:934 -msgid "eg guitar piano violin or cello." +#: js/blocks/PitchBlocks.js:682 +msgid "The Number to pitch block will convert a pitch number to a pich name." msgstr "" -#: js/ToneBlocks.js:1015 -msgid "Import a sound file to use as an instrument and set its pitch center." +#: js/blocks/PitchBlocks.js:715 +#.TRANS: convert piano key number (1-88) to octave +msgid "number to octave" msgstr "" -#: js/ToneBlocks.js:1110 -msgid "Upload a sound file to connect with the sample block." +#: js/blocks/PitchBlocks.js:717 +msgid "The Number to octave block will convert a pitch number to an octave." msgstr "" -#: js/MeterBlocks.js:34 -#.TRANS: musical meter (time signature), e.g., 4:4 -msgid "current meter" +#: js/blocks/PitchBlocks.js:726 +msgid "y to pitch" msgstr "" -#: js/MeterBlocks.js:85 -#.TRANS: number of beats per minute -msgid "beat factor" +#: js/blocks/PitchBlocks.js:729 +msgid "Y to pitch block will convert a staff y position to corresponding pitch notation." msgstr "" -#: js/MeterBlocks.js:161 -msgid "The Beats per minute block returns the current beats per minute." +#: js/blocks/PitchBlocks.js:841 +msgid "accidental selector" msgstr "" -#: js/MeterBlocks.js:169 -#: js/status.js:152 -#.TRANS: number of beats played per minute -msgid "beats per minute2" +#: js/blocks/PitchBlocks.js:844 +msgid "The Accidental selector block is used to choose between double-sharp, sharp, natural, flat, and double-flat." msgstr "" -#: js/MeterBlocks.js:169 -#: js/MeterBlocks.js:1056 -#: js/MeterBlocks.js:1133 -#: js/MeterBlocks.js:1211 -#.TRANS: sets tempo by defining a beat and beats per minute -msgid "beats per minute" +#: js/blocks/PitchBlocks.js:858 +msgid "Pitch can be specified in terms of ni dha pa ma ga re sa." msgstr "" -#: js/MeterBlocks.js:233 -#.TRANS: count of current musical measure in meter -msgid "measure count" +#: js/blocks/PitchBlocks.js:872 +msgid "Pitch can be specified in terms of C D E F G A B." msgstr "" -#: js/MeterBlocks.js:241 -msgid "The Measure count block returns the current measure." +#: js/blocks/PitchBlocks.js:884 +msgid "solfege" msgstr "" -#: js/MeterBlocks.js:290 -#.TRANS: count of current beat in the meter -msgid "beat count" +#: js/blocks/PitchBlocks.js:887 +msgid "Pitch can be specified in terms of do re mi fa sol la ti." msgstr "" -#: js/MeterBlocks.js:300 -#: js/MeterBlocks.js:311 -#: js/MeterBlocks.js:565 -#: js/MeterBlocks.js:576 -msgid "The Beat count block is the number of the current beat," +#: js/blocks/PitchBlocks.js:922 +msgid "The Invert block rotates any contained notes around a target note." msgstr "" -#: js/MeterBlocks.js:313 -#: js/MeterBlocks.js:578 -msgid "eg 1, 2, 3, or 4." +#: js/blocks/PitchBlocks.js:929 +#.TRANS: pitch inversion rotates a pitch around another pitch +msgid "invert" msgstr "" -#: js/MeterBlocks.js:368 -#.TRANS: count the number of notes -msgid "sum note values" +#: js/blocks/PitchBlocks.js:968 +#.TRANS: pitch inversion rotates a pitch around another pitch (odd number) +msgid "invert (odd)" msgstr "" -#: js/MeterBlocks.js:376 -#: js/MeterBlocks.js:440 -msgid "The Note counter block can be used to count the number of contained notes." +#: js/blocks/PitchBlocks.js:1001 +#.TRANS: pitch inversion rotates a pitch around another pitch (even number) +msgid "invert (even)" msgstr "" -#: js/MeterBlocks.js:432 -#.TRANS: count the number of notes -msgid "note counter" +#: js/blocks/PitchBlocks.js:1022 +#.TRANS: register is the octave of the current pitch +msgid "register" msgstr "" -#: js/MeterBlocks.js:496 -#.TRANS: number of whole notes that have been played -msgid "whole notes played" +#: js/blocks/PitchBlocks.js:1026 +msgid "The Register block provides an easy way to modify the register (octave) of the notes that follow it." msgstr "" -#: js/MeterBlocks.js:505 -msgid "The Whole notes played block returns the total number of whole notes played." +#: js/blocks/PitchBlocks.js:1047 +#.TRANS: cents are units used to specify the ratio between pitches. There are 100 cents between successive notes. +msgid "50 cents" msgstr "" -#: js/MeterBlocks.js:555 -#: js/DictActions.js:83 -#.TRANS: number of notes that have been played -msgid "notes played" +#: js/blocks/PitchBlocks.js:1102 +msgid "The Semi-tone transposition block will shift the pitches contained inside Note blocks up (or down) by half steps." msgstr "" -#: js/MeterBlocks.js:653 -msgid "The No clock block decouples the notes from the master clock." +#: js/blocks/PitchBlocks.js:1104 +msgid "In the example shown above, sol is shifted up to sol#." msgstr "" -#: js/MeterBlocks.js:661 -#.TRANS: don't lock notes to master clock -msgid "no clock" +#: js/blocks/PitchBlocks.js:1110 +#.TRANS: adjust the amount of shift (up or down) of a pitch +msgid "semi-tone transpose" msgstr "" -#: js/MeterBlocks.js:700 -msgid "on weak beat do" +#: js/blocks/PitchBlocks.js:1143 +msgid "The Transpose by Ratio block will shift the pitches contained inside Note blocks up (or down) by a ratio" msgstr "" -#: js/MeterBlocks.js:705 -msgid "The On-weak-beat block lets you specify actions to take on weak (off) beats." +#: js/blocks/PitchBlocks.js:1149 +#.TRANS: adjust the amount of shift (up or down) of a pitch +msgid "transpose by ratio" msgstr "" -#: js/MeterBlocks.js:750 -msgid "on strong beat" +#: js/blocks/PitchBlocks.js:1232 +#.TRANS: down sixth means the note is five scale degrees below current note +msgid "down sixth" msgstr "" -#: js/MeterBlocks.js:758 -msgid "The On-strong-beat block lets you specify actions to take on specified beats." +#: js/blocks/PitchBlocks.js:1251 +#.TRANS: down third means the note is two scale degrees below current note +msgid "down third" msgstr "" -#: js/MeterBlocks.js:769 -msgid "beat" +#: js/blocks/PitchBlocks.js:1270 +#.TRANS: seventh means the note is the six scale degrees above current note +msgid "seventh" msgstr "" -#: js/MeterBlocks.js:813 -msgid "on every beat do" +#: js/blocks/PitchBlocks.js:1289 +#.TRANS: sixth means the note is the five scale degrees above current note +msgid "sixth" msgstr "" -#: js/MeterBlocks.js:821 -msgid "The On-every-beat block lets you specify actions to take on every beat." +#: js/blocks/PitchBlocks.js:1308 +#.TRANS: fifth means the note is the four scale degrees above current note +msgid "fifth" msgstr "" -#: js/MeterBlocks.js:874 -msgid "on every note do" +#: js/blocks/PitchBlocks.js:1328 +#.TRANS: fourth means the note is three scale degrees above current note +msgid "fourth" msgstr "" -#: js/MeterBlocks.js:882 -msgid "The On-every-note block lets you specify actions to take on every note." +#: js/blocks/PitchBlocks.js:1347 +#.TRANS: third means the note is two scale degrees above current note +msgid "third" msgstr "" -#: js/MeterBlocks.js:928 -#: js/MeterBlocks.js:999 -#.TRANS: sets tempo by defining a beat and beats per minute -msgid "master beats per minute" +#: js/blocks/PitchBlocks.js:1366 +#.TRANS: second means the note is one scale degree above current note +msgid "second" msgstr "" -#: js/MeterBlocks.js:952 -#: js/MeterBlocks.js:1078 -#: js/MeterBlocks.js:1135 -msgid "bpm" +#: js/blocks/PitchBlocks.js:1407 +msgid "The Scalar transposition block will shift the pitches contained inside Note blocks up (or down) the scale." msgstr "" -#: js/MeterBlocks.js:952 -#: js/MeterBlocks.js:1078 -#: js/MeterBlocks.js:1135 -msgid "beat value" +#: js/blocks/PitchBlocks.js:1409 +msgid "In the example shown above, sol is shifted up to la." msgstr "" -#: js/MeterBlocks.js:1024 -#: js/MeterBlocks.js:1167 -#: js/MeterBlocks.js:1241 -msgid "Beats per minute must be > 30." +#: js/blocks/PitchBlocks.js:1416 +#.TRANS: adjust the amount of shift (up or down) of a pitch by musical scale (scalar) steps +msgid "scalar transpose" msgstr "" -#: js/MeterBlocks.js:1027 -#: js/MeterBlocks.js:1170 -#: js/MeterBlocks.js:1244 -msgid "Maximum beats per minute is 1000." +#: js/blocks/PitchBlocks.js:1451 +msgid "The Accidental block is used to create sharps and flats" msgstr "" -#: js/MeterBlocks.js:1068 -msgid "The Beats per minute block sets the number of 1/4 notes per minute." +#: js/blocks/PitchBlocks.js:1458 +#.TRANS: An accidental is a modification to a pitch, e.g., sharp or flat. +msgid "accidental override" msgstr "" -#: js/MeterBlocks.js:1279 -#.TRANS: anacrusis -msgid "pickup" +#: js/blocks/PitchBlocks.js:1581 +msgid "The Hertz block (in combination with a Number block) will play a sound at the specified frequency." msgstr "" -#: js/MeterBlocks.js:1367 -msgid "number of beats" +#: js/blocks/PitchBlocks.js:1671 +msgid "The Pitch Number block will play a pitch associated by its number, e.g. 0 for C and 7 for G." msgstr "" -#: js/DictBlocks.js:77 -msgid "show dictionary" +#: js/blocks/PitchBlocks.js:1703 +#: js/blocks/PitchBlocks.js:1745 +#.TRANS: a numeric mapping of the notes in an octave based on the musical mode +#.TRANS: a numeric mapping of the notes in an octave based on the musical mode +msgid "nth modal pitch" msgstr "" -#: js/DictBlocks.js:129 -msgid "The Dictionary block returns a dictionary." +#: js/blocks/PitchBlocks.js:1706 +msgid "n^th Modal Pitch takes the pattern of pitches in semitones for a mode and makes each point a degree of the mode," msgstr "" -#: js/DictBlocks.js:197 -#: js/DictBlocks.js:339 -msgid "The Get-dict block returns a value in the dictionary for a specified key." +#: js/blocks/PitchBlocks.js:1708 +msgid "starting from 1 and regardless of tonal framework (i.e. not always 8 notes in the octave)" msgstr "" -#: js/DictBlocks.js:212 -#: js/DictBlocks.js:354 -#.TRANS: retrieve a value from the dictionary with a given key -msgid "get value" +#: js/blocks/PitchBlocks.js:1749 +msgid "N^th Modal Pitch takes a number as an input as the n^th degree for the given mode. 0 is the first position, 1 is the second, -1 is the note before the first etc." msgstr "" -#: js/DictBlocks.js:215 -#: js/DictBlocks.js:216 -#: js/DictBlocks.js:289 -#: js/DictBlocks.js:290 -#: js/DictBlocks.js:357 -#: js/DictBlocks.js:430 -#: js/DictBlocks.js:431 -msgid "key2" +#: js/blocks/PitchBlocks.js:1751 +msgid "The pitches change according to the mode specified without any need for respellings." msgstr "" -#: js/DictBlocks.js:271 -#: js/DictBlocks.js:411 -msgid "The Set-dict block sets a value in the dictionary for a specified key." +#: js/blocks/PitchBlocks.js:1790 +msgid "Scale Degree is a common convention in music. Scale Degree offers seven possible positions in the scale (1-7) and can be modified via accidentals." msgstr "" -#: js/DictBlocks.js:286 -#: js/DictBlocks.js:427 -#.TRANS: set a value in the dictionary for a given key -msgid "set value" +#: js/blocks/PitchBlocks.js:1792 +msgid "Scale Degree 1 is always the first pitch in a given scale, regardless of octave." msgstr "" -#: js/ExtrasBlocks.js:33 -msgid "fraction" +#: js/blocks/PitchBlocks.js:1814 +#.TRANS: step some number of notes in current musical scale +msgid "scalar step" msgstr "" -#: js/ExtrasBlocks.js:36 -msgid "Convert a float to a fraction" +#: js/blocks/PitchBlocks.js:1819 +msgid "The Scalar Step block (in combination with a Number block) will play the next pitch in a scale," msgstr "" -#: js/ExtrasBlocks.js:93 -msgid "save as ABC" +#: js/blocks/PitchBlocks.js:1821 +msgid "eg if the last note played was sol, Scalar Step 1 will play la." msgstr "" -#: js/ExtrasBlocks.js:96 -#: js/ExtrasBlocks.js:132 -#: js/ExtrasBlocks.js:168 -msgid "title" +#: js/blocks/PitchBlocks.js:1857 +msgid "The Pitch block specifies the pitch name and octave of a note that together determine the frequency of the note." msgstr "" -#: js/ExtrasBlocks.js:129 -msgid "save as Lilypond" +#: js/blocks/ProgramBlocks.js:33 +msgid "The Load-heap-from-app block loads the heap from a web page." msgstr "" -#: js/ExtrasBlocks.js:165 -msgid "save as SVG" +#: js/blocks/ProgramBlocks.js:44 +#.TRANS: load the heap contents from a URL +msgid "load heap from App" msgstr "" -#: js/ExtrasBlocks.js:216 -msgid "no background" +#: js/blocks/ProgramBlocks.js:95 +msgid "Error parsing JSON data:" msgstr "" -#: js/ExtrasBlocks.js:219 -msgid "The No background block eliminates the background from the saved SVG output." +#: js/blocks/ProgramBlocks.js:100 +msgid "404: Page not found" msgstr "" -#: js/ExtrasBlocks.js:247 -msgid "show blocks" +#: js/blocks/ProgramBlocks.js:133 +msgid "The Save-heap-to-app block saves the heap to a web page." msgstr "" -#: js/ExtrasBlocks.js:249 -msgid "The Show blocks block shows the blocks." +#: js/blocks/ProgramBlocks.js:144 +#.TRANS: save the heap contents to a URL +msgid "save heap to App" msgstr "" -#: js/ExtrasBlocks.js:274 -msgid "hide blocks" +#: js/blocks/ProgramBlocks.js:189 +msgid "Cannot find a valid heap for" msgstr "" -#: js/ExtrasBlocks.js:276 -msgid "The Hide blocks block hides the blocks." +#: js/blocks/ProgramBlocks.js:206 +msgid "The Load-heap block loads the heap from a file." msgstr "" -#: js/ExtrasBlocks.js:305 -#: js/ExtrasBlocks.js:335 -msgid "The Space block is used to add space between blocks." +#: js/blocks/ProgramBlocks.js:217 +#.TRANS: load the heap from a file +msgid "load heap" msgstr "" -#: js/ExtrasBlocks.js:373 -msgid "wait" +#: js/blocks/ProgramBlocks.js:270 +msgid "The file you selected does not contain a valid heap." msgstr "" -#: js/ExtrasBlocks.js:376 -msgid "The Wait block pauses the program for a specified number of seconds." +#: js/blocks/ProgramBlocks.js:275 +msgid "The loadHeap block needs a loadFile block." msgstr "" -#: js/ExtrasBlocks.js:430 -#: plugins/facebook.rtp:30 -msgid "comment" +#: js/blocks/ProgramBlocks.js:291 +msgid "The Set-heap block loads the heap." msgstr "" -#: js/ExtrasBlocks.js:466 -msgid "print" +#: js/blocks/ProgramBlocks.js:340 +msgid "The block you selected does not contain a valid heap." msgstr "" -#: js/ExtrasBlocks.js:473 -msgid "The Print block displays text at the top of the screen." +#: js/blocks/ProgramBlocks.js:343 +msgid "The Set heap block needs a heap." msgstr "" -#: js/ExtrasBlocks.js:579 -msgid "display grid" +#: js/blocks/ProgramBlocks.js:360 +msgid "The Load-dictionary block loads a dictionary from a file." msgstr "" -#: js/ExtrasBlocks.js:584 -msgid "The Display Grid Block changes the grid type" +#: js/blocks/ProgramBlocks.js:372 +#.TRANS: load a dictionary from a file +msgid "load dictionary" msgstr "" -#: js/ExtrasBlocks.js:686 -#: js/ExtrasBlocks.js:705 -#: js/ExtrasBlocks.js:728 -#: js/ExtrasBlocks.js:751 -#: js/ExtrasBlocks.js:769 -#: js/ExtrasBlocks.js:788 -#: js/ExtrasBlocks.js:807 -#: js/ExtrasBlocks.js:826 -msgid "unknown" +#: js/blocks/ProgramBlocks.js:390 +#: js/blocks/ProgramBlocks.js:658 +#: js/blocks/ToneBlocks.js:1025 +msgid "file" msgstr "" -#: js/SensorsBlocks.js:36 -msgid "The Input block prompts for keyboard input." +#: js/blocks/ProgramBlocks.js:444 +msgid "The file you selected does not contain a valid dictionary." msgstr "" -#: js/SensorsBlocks.js:46 -msgid "input" +#: js/blocks/ProgramBlocks.js:449 +msgid "The load dictionary block needs a load file block." msgstr "" -#: js/SensorsBlocks.js:64 -msgid "Input a value" +#: js/blocks/ProgramBlocks.js:466 +msgid "The Set-dictionary block loads a dictionary." msgstr "" -#: js/SensorsBlocks.js:126 -msgid "input value" +#: js/blocks/ProgramBlocks.js:477 +#.TRANS: load a dictionary from a JSON +msgid "set dictionary" msgstr "" -#: js/SensorsBlocks.js:131 -msgid "The Input-value block stores the input." +#: js/blocks/ProgramBlocks.js:546 +msgid "The block you selected does not contain a valid dictionary." msgstr "" -#: js/SensorsBlocks.js:238 -msgid "loudness" +#: js/blocks/ProgramBlocks.js:550 +msgid "The set dictionary block needs a dictionary." msgstr "" -#: js/SensorsBlocks.js:245 -msgid "The Loudness block returns the volume detected by the microphone." +#: js/blocks/ProgramBlocks.js:567 +msgid "The Save-heap block saves the heap to a file." msgstr "" -#: js/SensorsBlocks.js:300 -msgid "click" +#: js/blocks/ProgramBlocks.js:578 +#.TRANS: save the heap to a file +msgid "save heap" msgstr "" -#: js/SensorsBlocks.js:306 -msgid "The Click block triggers an event if a mouse has been clicked." +#: js/blocks/ProgramBlocks.js:629 +msgid "The Save-dictionary block saves a dictionary to a file." msgstr "" -#: js/SensorsBlocks.js:313 -msgid "The Click block triggers an event if a turtle has been clicked." +#: js/blocks/ProgramBlocks.js:640 +#.TRANS: save a dictionary to a file +msgid "save dictionary" msgstr "" -#: js/SensorsBlocks.js:342 -msgid "cursor over" +#: js/blocks/ProgramBlocks.js:720 +msgid "The Open palette block opens a palette." msgstr "" -#: js/SensorsBlocks.js:387 -msgid "cursor out" +#: js/blocks/ProgramBlocks.js:727 +msgid "open palette" msgstr "" -#: js/SensorsBlocks.js:433 -msgid "cursor button down" +#: js/blocks/ProgramBlocks.js:785 +msgid "The Delete block block removes a block." msgstr "" -#: js/SensorsBlocks.js:477 -msgid "cursor button up" +#: js/blocks/ProgramBlocks.js:797 +#.TRANS: Move this block to the trash. +msgid "delete block" msgstr "" -#: js/SensorsBlocks.js:638 -msgid "The Get red block returns the red component of the pixel under the mouse." +#: js/blocks/ProgramBlocks.js:861 +msgid "The Move block block moves a block." msgstr "" -#: js/SensorsBlocks.js:644 -msgid "The Get red block returns the red component of the pixel under the turtle." +#: js/blocks/ProgramBlocks.js:869 +#.TRANS: Move the position of a block on the screen. +msgid "move block" msgstr "" -#: js/SensorsBlocks.js:685 -#: plugins/rodi.rtp:216 -msgid "pixel color" +#: js/blocks/ProgramBlocks.js:881 +#: js/blocks/ProgramBlocks.js:1048 +msgid "block number" msgstr "" -#: js/SensorsBlocks.js:690 -msgid "The Get pixel block returns the color of the pixel under the mouse." +#: js/blocks/ProgramBlocks.js:935 +#.TRANS: Run program beginning at this block. +msgid "run block" msgstr "" -#: js/SensorsBlocks.js:696 -msgid "The Get pixel block returns the color of the pixel under the turtle." +#: js/blocks/ProgramBlocks.js:1025 +msgid "The Dock block block connections two blocks." msgstr "" -#: js/SensorsBlocks.js:758 -msgid "time" +#: js/blocks/ProgramBlocks.js:1036 +#.TRANS: We can connect a block to another block. +msgid "connect blocks" msgstr "" -#: js/SensorsBlocks.js:804 -msgid "cursor y" +#: js/blocks/ProgramBlocks.js:1048 +msgid "target block" msgstr "" -#: js/SensorsBlocks.js:809 -msgid "The Cursor Y block returns the vertical position of the mouse." +#: js/blocks/ProgramBlocks.js:1048 +msgid "connection number" msgstr "" -#: js/SensorsBlocks.js:845 -msgid "cursor x" +#: js/blocks/ProgramBlocks.js:1140 +msgid "The Make block block creates a new block." msgstr "" -#: js/SensorsBlocks.js:850 -msgid "The Cursor X block returns the horizontal position of the mouse." +#: js/blocks/ProgramBlocks.js:1152 +#.TRANS: Create a new block +msgid "make block" msgstr "" -#: js/SensorsBlocks.js:886 -msgid "mouse button" +#: js/blocks/ProgramBlocks.js:1285 +msgid "Cannot find block" msgstr "" -#: js/SensorsBlocks.js:888 -msgid "The Mouse-button block returns True if the mouse button is pressed." +#: js/blocks/ProgramBlocks.js:1304 +#: js/blocks/ProgramBlocks.js:1313 +msgid "Warning: block argument type mismatch" msgstr "" -#: js/SensorsBlocks.js:934 -msgid "to ASCII" +#: js/blocks/ProgramBlocks.js:1347 +msgid "The Open project block is used to open a project from a web page." msgstr "" -#: js/SensorsBlocks.js:938 -msgid "The To ASCII block converts numbers to letters." +#: js/blocks/ProgramBlocks.js:1357 +msgid "open project" msgstr "" -#: js/SensorsBlocks.js:1005 -msgid "The Keyboard block returns computer keyboard input." +#: js/blocks/ProgramBlocks.js:1410 +msgid "Please enter a valid URL." msgstr "" -#: js/IntervalsActions.js:216 -msgid "Adding missing pitch number 0." +#: js/blocks/ToneBlocks.js:34 +msgid "oscillator" msgstr "" -#: js/IntervalsActions.js:224 -msgid "Ignoring pitch numbers less than zero or greater than eleven." +#: js/blocks/ToneBlocks.js:42 +#: js/blocks/WidgetBlocks.js:179 +#: js/widgets/timbre.js:1558 +#: js/widgets/timbre.js:1808 +#.TRANS: there are different types (sine, triangle, square...) of oscillators. +#.TRANS: type of filter, e.g., lowpass, highpass, etc. +msgid "type" msgstr "" -#: js/IntervalsActions.js:230 -msgid "Ignoring duplicate pitch numbers." +#: js/blocks/ToneBlocks.js:44 +#: js/widgets/timbre.js:1562 +#.TRANS: Partials refers to the number of sine waves combined into the sound. +msgid "partials" msgstr "" -#: js/PitchActions.js:88 -msgid "The Scalar Step Block must be used inside of a Note Block." +#: js/blocks/ToneBlocks.js:76 +msgid "You are adding multiple oscillator blocks." msgstr "" -#: js/PitchActions.js:107 -msgid "The Scalar Step Block must be preceded by a Pitch Block." +#: js/blocks/ToneBlocks.js:144 +#: js/widgets/timbre.js:1225 +#.TRANS: a duo synthesizer combines a synth with a sequencer +msgid "duo synth" msgstr "" -#: js/DrumActions.js:231 -msgid "Noise Block: Did you mean to use a Note block?" +#: js/blocks/ToneBlocks.js:149 +msgid "The Duo synth block is a duo-frequency modulator used to define a timbre." msgstr "" -#: js/MeterActions.js:101 -#: js/MeterActions.js:139 -msgid "beats per minute must be greater than" +#: js/blocks/ToneBlocks.js:157 +#: js/widgets/timbre.js:1476 +msgid "vibrato rate" msgstr "" -#: js/MeterActions.js:111 -#: js/MeterActions.js:149 -msgid "maximum" +#: js/blocks/ToneBlocks.js:157 +msgid "vibrato intensity" msgstr "" -#: js/MeterActions.js:117 -#: js/MeterActions.js:155 -msgid "beats per minute is" +#: js/blocks/ToneBlocks.js:185 +#: js/widgets/timbre.js:1221 +#.TRANS: AM (amplitude modulation) synthesizer +msgid "AM synth" msgstr "" -#: js/ToneActions.js:134 -msgid "Vibrato intensity must be between 1 and 100." +#: js/blocks/ToneBlocks.js:189 +msgid "The AM synth block is an amplitude modulator used to define a timbre." msgstr "" -#: js/ToneActions.js:139 -msgid "Vibrato rate must be greater than 0." +#: js/blocks/ToneBlocks.js:224 +#: js/widgets/timbre.js:1223 +#.TRANS: FM (frequency modulation) synthesizer +msgid "FM synth" msgstr "" -#: js/ToneActions.js:192 -#: js/ToneActions.js:265 -#.TRANS: Depth is the intesity of the tremolo or chorus effect. -msgid "Depth is out of range." +#: js/blocks/ToneBlocks.js:228 +msgid "The FM synth block is a frequency modulator used to define a timbre." msgstr "" -#: js/ToneActions.js:301 -msgid "Distortion must be from 0 to 100." +#: js/blocks/ToneBlocks.js:262 +msgid "partial" msgstr "" -#: js/ToneActions.js:332 -#.TRANS: partials components in a harmonic series -msgid "Partial must be greater than or equal to 0." +#: js/blocks/ToneBlocks.js:265 +msgid "The Partial block is used to specify a weight for a specific partial harmonic." msgstr "" -#: js/ToneActions.js:378 -#: js/ToneActions.js:417 -#: js/ToneActions.js:456 -#: js/timbre.js:782 -msgid "Unable to use synth due to existing oscillator" +#: js/blocks/ToneBlocks.js:284 +#.TRANS: partials are weighted components in a harmonic series +msgid "Partial weight must be between 0 and 1." msgstr "" -#: js/ToneActions.js:388 -#: js/ToneActions.js:427 -msgid "The input cannot be negative." +#: js/blocks/ToneBlocks.js:297 +#.TRANS: partials are weighted components in a harmonic series +msgid "Partial block should be used inside of a Weighted-partials block." msgstr "" -#: js/DictActions.js:75 -#: js/DictActions.js:153 -#: js/DictActions.js:188 -msgid "font" +#: js/blocks/ToneBlocks.js:325 +#.TRANS: partials are weighted components in a harmonic series +msgid "weighted partials" msgstr "" -#: js/musicutils.js:363 -#: js/musicutils.js:471 -#: js/pitchdrummatrix.js:151 -#: js/musickeyboard.js:2563 -msgid "rest" +#: js/blocks/ToneBlocks.js:383 +msgid "The Harmonic block will add harmonics to the contained notes." msgstr "" -#: js/musicutils.js:565 -#.TRANS: ordinal number. Please keep exactly one space between each number. -msgid "1st 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th" +#: js/blocks/ToneBlocks.js:390 +#.TRANS: A harmonic is an overtone. +msgid "harmonic" msgstr "" -#: js/musicutils.js:629 -#: js/musicutils.js:812 -#: js/musicutils.js:911 -#.TRANS: augmented is a music term related to intervals -msgid "augmented" +#: js/blocks/ToneBlocks.js:431 +msgid "The Distortion block adds distortion to the pitch." msgstr "" -#: js/musicutils.js:631 -#: js/musicutils.js:813 -#: js/musicutils.js:910 -#.TRANS: diminished is a music term related to intervals and mode -msgid "diminished" +#: js/blocks/ToneBlocks.js:438 +#: js/widgets/timbre.js:2100 +#.TRANS: distortion is an alteration in the sound +msgid "distortion" msgstr "" -#: js/musicutils.js:639 -#.TRANS: twelve semi-tone scale for music -msgid "chromatic" +#: js/blocks/ToneBlocks.js:487 +msgid "The Tremolo block adds a wavering effect." msgstr "" -#: js/musicutils.js:640 -msgid "algerian" +#: js/blocks/ToneBlocks.js:495 +#: js/widgets/timbre.js:2092 +#.TRANS: a wavering effect in a musical tone +msgid "tremolo" msgstr "" -#: js/musicutils.js:641 -msgid "spanish" +#: js/blocks/ToneBlocks.js:500 +#: js/blocks/ToneBlocks.js:569 +#: js/blocks/ToneBlocks.js:630 +#: js/blocks/ToneBlocks.js:689 +#: js/widgets/timbre.js:2134 +#: js/widgets/timbre.js:2222 +#: js/widgets/timbre.js:2317 +#: js/widgets/timbre.js:2419 +#.TRANS: rate at which tremolo wavers +msgid "rate" msgstr "" -#: js/musicutils.js:643 -#.TRANS: modal scale in music -msgid "octatonic" +#: js/blocks/ToneBlocks.js:502 +#: js/blocks/ToneBlocks.js:630 +#: js/widgets/timbre.js:2137 +#: js/widgets/timbre.js:2328 +#.TRANS: amplitude of tremolo waver +msgid "depth" msgstr "" -#: js/musicutils.js:645 -#.TRANS: harmonic major scale in music -msgid "harmonic major" +#: js/blocks/ToneBlocks.js:559 +msgid "The Phaser block adds a sweeping sound." msgstr "" -#: js/musicutils.js:647 -#.TRANS: natural minor scales in music -msgid "natural minor" +#: js/blocks/ToneBlocks.js:566 +#: js/widgets/timbre.js:2098 +#.TRANS: alter the phase of the sound +msgid "phaser" msgstr "" -#: js/musicutils.js:649 -#.TRANS: harmonic minor scale in music -msgid "harmonic minor" +#: js/blocks/ToneBlocks.js:569 +#: js/turtleactions/IntervalsActions.js:114 +#: js/widgets/timbre.js:2422 +msgid "octaves" msgstr "" -#: js/musicutils.js:651 -#.TRANS: melodic minor scale in music -msgid "melodic minor" +#: js/blocks/ToneBlocks.js:569 +#: js/widgets/timbre.js:2425 +msgid "base frequency" msgstr "" -#: js/musicutils.js:655 -#.TRANS: modal scale for music -msgid "dorian" +#: js/blocks/ToneBlocks.js:619 +msgid "The Chorus block adds a chorus effect." msgstr "" -#: js/musicutils.js:657 -#.TRANS: modal scale for music -msgid "phrygian" +#: js/blocks/ToneBlocks.js:627 +#: js/widgets/timbre.js:2096 +#.TRANS: musical effect to simulate a choral sound +msgid "chorus" msgstr "" -#: js/musicutils.js:659 -#.TRANS: modal scale for music -msgid "lydian" +#: js/blocks/ToneBlocks.js:630 +msgid "delay" msgstr "" -#: js/musicutils.js:661 -#.TRANS: modal scale for music -msgid "mixolydian" +#: js/blocks/ToneBlocks.js:678 +msgid "The Vibrato block adds a rapid, slight variation in pitch." msgstr "" -#: js/musicutils.js:665 -#.TRANS: modal scale for music -msgid "locrian" +#: js/blocks/ToneBlocks.js:686 +#: js/widgets/timbre.js:2094 +#.TRANS: a rapid, slight variation in pitch +msgid "vibrato" msgstr "" -#: js/musicutils.js:667 -#.TRANS: minor jazz scale for music -msgid "jazz minor" +#: js/blocks/ToneBlocks.js:689 +#: js/widgets/timbre.js:2221 +msgid "intensity" msgstr "" -#: js/musicutils.js:669 -#.TRANS: bebop scale for music -msgid "bebop" +#: js/blocks/ToneBlocks.js:733 +#.TRANS: select synthesizer +msgid "set synth" msgstr "" -#: js/musicutils.js:670 -msgid "arabic" +#: js/blocks/ToneBlocks.js:804 +msgid "synth name" msgstr "" -#: js/musicutils.js:671 -msgid "byzantine" +#: js/blocks/ToneBlocks.js:842 +msgid "set default instrument" msgstr "" -#: js/musicutils.js:673 -#.TRANS: musical scale for music by Verdi -msgid "enigmatic" +#: js/blocks/ToneBlocks.js:895 +#: js/blocks/ToneBlocks.js:943 +#.TRANS: set the characteristics of a custom instrument +msgid "set instrument" msgstr "" -#: js/musicutils.js:674 -msgid "ethiopian" +#: js/blocks/ToneBlocks.js:898 +#: js/blocks/ToneBlocks.js:926 +#: js/blocks/ToneBlocks.js:932 +msgid "The Set instrument block selects a voice for the synthesizer," msgstr "" -#: js/musicutils.js:676 -#.TRANS: Ethiopic scale for music -msgid "geez" +#: js/blocks/ToneBlocks.js:900 +#: js/blocks/ToneBlocks.js:934 +msgid "eg guitar piano violin or cello." msgstr "" -#: js/musicutils.js:677 -msgid "hindu" +#: js/blocks/ToneBlocks.js:1015 +msgid "Import a sound file to use as an instrument and set its pitch center." msgstr "" -#: js/musicutils.js:678 -msgid "hungarian" +#: js/blocks/ToneBlocks.js:1110 +msgid "Upload a sound file to connect with the sample block." msgstr "" -#: js/musicutils.js:680 -#.TRANS: minor Romanian scale for music -msgid "romanian minor" +#: js/blocks/VolumeBlocks.js:35 +msgid "synth volume" msgstr "" -#: js/musicutils.js:681 -msgid "spanish gypsy" +#: js/blocks/VolumeBlocks.js:39 +msgid "The Synth volume block returns the current volume of the current synthesizer." msgstr "" -#: js/musicutils.js:683 -#.TRANS: musical scale for Mid-Eastern music -msgid "maqam" +#: js/blocks/VolumeBlocks.js:105 +msgid "master volume" msgstr "" -#: js/musicutils.js:685 -#.TRANS: minor blues scale for music -msgid "minor blues" +#: js/blocks/VolumeBlocks.js:109 +msgid "The Master volume block returns the master volume." msgstr "" -#: js/musicutils.js:687 -#.TRANS: major blues scale for music -msgid "major blues" +#: js/blocks/VolumeBlocks.js:355 +#: js/blocks/VolumeBlocks.js:524 +msgid "set synth volume" msgstr "" -#: js/musicutils.js:688 -msgid "whole tone" +#: js/blocks/VolumeBlocks.js:362 +#: js/blocks/VolumeBlocks.js:545 +msgid "synth" msgstr "" -#: js/musicutils.js:690 -#.TRANS: pentatonic is a general term that means "five note scale". This scale is typically known as "minor pentatonic" -msgid "minor pentatonic" +#: js/blocks/VolumeBlocks.js:403 +#: js/blocks/VolumeBlocks.js:577 +#: js/blocks/VolumeBlocks.js:740 +#: js/turtleactions/VolumeActions.js:173 +msgid "Setting volume to 0." msgstr "" -#: js/musicutils.js:692 -#.TRANS: pentatonic is a general term that means "five note scale". This scale is typically known as "major pentatonic" -msgid "major pentatonic" +#: js/blocks/VolumeBlocks.js:440 +msgid "Synth not found" msgstr "" -#: js/musicutils.js:693 -msgid "chinese" +#: js/blocks/VolumeBlocks.js:494 +msgid "set drum volume" msgstr "" -#: js/musicutils.js:694 -msgid "egyptian" +#: js/blocks/VolumeBlocks.js:530 +msgid "The Set synth volume block will change the volume of a particular synth," msgstr "" -#: js/musicutils.js:696 -#.TRANS: https://en.wikipedia.org/wiki/Hirajoshi_scale NOTE: There are three different versions of this scale -msgid "hirajoshi" +#: js/blocks/VolumeBlocks.js:532 +msgid "eg guitar violin snare drum etc." msgstr "" -#: js/musicutils.js:697 -msgid "Japan" +#: js/blocks/VolumeBlocks.js:534 +msgid "The default volume is 50." msgstr "" -#: js/musicutils.js:699 -#.TRANS: https://en.wikipedia.org/wiki/In_scale and https://en.wikipedia.org/wiki/Sakura_Sakura -msgid "in" +#: js/blocks/VolumeBlocks.js:536 +msgid "The range is 0 for silence to 100 for full volume." msgstr "" -#: js/musicutils.js:701 -#.TRANS: https://en.wikipedia.org/wiki/Miny%C5%8D_scale -msgid "minyo" +#: js/blocks/VolumeBlocks.js:597 +msgid "set panning" msgstr "" -#: js/musicutils.js:703 -#.TRANS: Italian mathematician -msgid "fibonacci" +#: js/blocks/VolumeBlocks.js:603 +msgid "The Set Panning block sets the panning for all synthesizers." msgstr "" -#: js/musicutils.js:708 -#: js/musicutils.js:1106 -#.TRANS: lowpass filter -msgid "lowpass" +#: js/blocks/VolumeBlocks.js:625 +msgid "Warning: Sound is coming out from only the left or right side." msgstr "" -#: js/musicutils.js:710 -#: js/musicutils.js:1107 -#.TRANS: bandpass filter -msgid "bandpass" +#: js/blocks/VolumeBlocks.js:647 +#: js/blocks/VolumeBlocks.js:695 +msgid "set master volume" msgstr "" -#: js/musicutils.js:712 -#: js/musicutils.js:1108 -#.TRANS: high-shelf filter -msgid "highshelf" +#: js/blocks/VolumeBlocks.js:653 +msgid "The Set master volume block sets the volume for all synthesizers." msgstr "" -#: js/musicutils.js:714 -#: js/musicutils.js:1109 -#.TRANS: low-shelf filter -msgid "lowshelf" +#: js/blocks/VolumeBlocks.js:784 +msgid "The Set relative volume block changes the volume of the contained notes." msgstr "" -#: js/musicutils.js:716 -#: js/musicutils.js:1110 -#.TRANS: notch-shelf filter -msgid "notch" +#: js/blocks/VolumeBlocks.js:791 +msgid "set relative volume" msgstr "" -#: js/musicutils.js:718 -#: js/musicutils.js:1111 -#.TRANS: all-pass filter -msgid "allpass" +#: js/blocks/VolumeBlocks.js:857 +msgid "decrescendo" msgstr "" -#: js/musicutils.js:720 -#: js/musicutils.js:1112 -#.TRANS: peaking filter -msgid "peaking" +#: js/blocks/VolumeBlocks.js:921 +msgid "crescendo" msgstr "" -#: js/musicutils.js:731 -#: js/synthutils.js:58 -#.TRANS: musical instrument -msgid "violin" +#: js/blocks/WidgetBlocks.js:81 +#.TRANS: sound envelope (ADSR) +msgid "envelope" msgstr "" -#: js/musicutils.js:732 -#: js/synthutils.js:60 -#.TRANS: viola musical instrument -msgid "viola" +#: js/blocks/WidgetBlocks.js:89 +#.TRANS: Attack time is the time taken for initial run-up of level from nil to peak, beginning when the key is first pressed. +msgid "attack" msgstr "" -#: js/musicutils.js:733 -#: js/synthutils.js:98 -#.TRANS: xylophone musical instrument -msgid "xylophone" +#: js/blocks/WidgetBlocks.js:91 +#.TRANS: Decay time is the time taken for the subsequent run down from the attack level to the designated sustain level. +msgid "decay" msgstr "" -#: js/musicutils.js:734 -#: js/synthutils.js:120 -#.TRANS: vibraphone musical instrument -msgid "vibraphone" +#: js/blocks/WidgetBlocks.js:93 +#.TRANS: Sustain level is the level during the main sequence of the sound's duration, until the key is released. +msgid "sustain" msgstr "" -#: js/musicutils.js:735 -#: js/synthutils.js:62 -#.TRANS: musical instrument -msgid "cello" +#: js/blocks/WidgetBlocks.js:95 +#.TRANS: Release time is the time taken for the level to decay from the sustain level to zero after the key is released. +msgid "release" msgstr "" -#: js/musicutils.js:737 -#: js/synthutils.js:66 -#.TRANS: viola musical instrument -msgid "double bass" +#: js/blocks/WidgetBlocks.js:113 +msgid "Attack value should be from 0 to 100." msgstr "" -#: js/musicutils.js:738 -#: js/synthutils.js:68 -#: js/rhythmruler.js:2119 -#.TRANS: musical instrument -msgid "guitar" +#: js/blocks/WidgetBlocks.js:116 +msgid "Decay value should be from 0 to 100." msgstr "" -#: js/musicutils.js:739 -#: js/synthutils.js:70 -#.TRANS: musical instrument -msgid "acoustic guitar" +#: js/blocks/WidgetBlocks.js:119 +msgid "Sustain value should be from 0 to 100." msgstr "" -#: js/musicutils.js:740 -#: js/synthutils.js:72 -#.TRANS: musical instrument -msgid "flute" +#: js/blocks/WidgetBlocks.js:122 +msgid "Release value should be from 0-100." msgstr "" -#: js/musicutils.js:741 -#: js/synthutils.js:74 -#.TRANS: musical instrument -msgid "clarinet" +#: js/blocks/WidgetBlocks.js:140 +msgid "You are adding multiple envelope blocks." msgstr "" -#: js/musicutils.js:742 -#: js/synthutils.js:76 -#.TRANS: musical instrument -msgid "saxophone" +#: js/blocks/WidgetBlocks.js:171 +#.TRANS: a filter removes some unwanted components from a signal +msgid "filter" msgstr "" -#: js/musicutils.js:743 -#: js/synthutils.js:78 -#.TRANS: musical instrument -msgid "tuba" +#: js/blocks/WidgetBlocks.js:181 +#: js/widgets/timbre.js:1818 +#.TRANS: rolloff is the steepness of a change in frequency. +msgid "rolloff" msgstr "" -#: js/musicutils.js:744 -#: js/synthutils.js:80 -#.TRANS: musical instrument -msgid "trumpet" +#: js/blocks/WidgetBlocks.js:213 +#.TRANS: rolloff is the steepness of a change in frequency. +msgid "Rolloff value should be either -12, -24, -48, or -96 decibels/octave." msgstr "" -#: js/musicutils.js:745 -#: js/synthutils.js:82 -#.TRANS: musical instrument -msgid "oboe" +#: js/blocks/WidgetBlocks.js:252 +msgid "The Temperament tool is used to define custom tuning." msgstr "" -#: js/musicutils.js:746 -#: js/synthutils.js:84 -#.TRANS: musical instrument -msgid "trombone" +#: js/blocks/WidgetBlocks.js:332 +#: js/blocks/WidgetBlocks.js:1573 +#: js/widgets/sampler.js:547 +msgid "Upload a sample and adjust its pitch center." msgstr "" -#: js/musicutils.js:747 -#: js/synthutils.js:100 -#.TRANS: polytone synthesizer -msgid "electronic synth" +#: js/blocks/WidgetBlocks.js:339 +#.TRANS: the speed at music is should be played. +msgid "sampler" msgstr "" -#: js/musicutils.js:748 -#: js/synthutils.js:102 -#.TRANS: simple monotone synthesizer -msgid "simple 1" +#: js/blocks/WidgetBlocks.js:517 +msgid "The Meter block opens a tool to select strong beats for the meter." msgstr "" -#: js/musicutils.js:749 -msgid "simple 2" +#: js/blocks/WidgetBlocks.js:573 +msgid "The oscilloscope block opens a tool to visualize waveforms." msgstr "" -#: js/musicutils.js:750 -msgid "simple 3" +#: js/blocks/WidgetBlocks.js:578 +msgid "oscilloscope" msgstr "" -#: js/musicutils.js:751 -msgid "simple 4" +#: js/blocks/WidgetBlocks.js:645 +msgid "The Custom mode block opens a tool to explore musical mode (the spacing of the notes in a scale)." msgstr "" -#: js/musicutils.js:753 -#: js/synthutils.js:49 -#.TRANS: brown noise synthesizer -msgid "brown noise" +#: js/blocks/WidgetBlocks.js:651 +#.TRANS: musical mode is the pattern of half-steps in an octave, e.g., Major or Minor modes +msgid "custom mode" msgstr "" -#: js/musicutils.js:754 -#: js/synthutils.js:51 -#.TRANS: pink noise synthesizer -msgid "pink noise" +#: js/blocks/WidgetBlocks.js:700 +msgid "The Tempo block opens a metronome to visualize the beat." msgstr "" -#: js/musicutils.js:756 -#: js/synthutils.js:127 -#: js/rhythmruler.js:1670 -#: js/rhythmruler.js:1928 -#.TRANS: musical instrument -msgid "snare drum" +#: js/blocks/WidgetBlocks.js:762 +msgid "The Arpeggio Widget is used to compose chord sequences." msgstr "" -#: js/musicutils.js:757 -#: js/synthutils.js:129 -#.TRANS: musical instrument -msgid "kick drum" +#: js/blocks/WidgetBlocks.js:837 +msgid "The Pitch drum matrix is used to map pitches to drum sounds." msgstr "" -#: js/musicutils.js:758 -#: js/synthutils.js:131 -#.TRANS: musical instrument -msgid "tom tom" +#: js/blocks/WidgetBlocks.js:842 +#.TRANS: makes a mapping between pitches and drum sounds +msgid "pitch-drum mapper" msgstr "" -#: js/musicutils.js:759 -#: js/synthutils.js:133 -#.TRANS: musical instrument -msgid "floor tom" +#: js/blocks/WidgetBlocks.js:891 +msgid "You must have at least one pitch block and one drum block in the matrix." msgstr "" -#: js/musicutils.js:760 -#: js/synthutils.js:135 -#.TRANS: musical instrument -msgid "bass drum" +#: js/blocks/WidgetBlocks.js:920 +msgid "The Pitch slider tool to is used to generate pitches at selected frequencies." msgstr "" -#: js/musicutils.js:761 -#: js/synthutils.js:137 -#.TRANS: a drum made from an inverted cup -msgid "cup drum" +#: js/blocks/WidgetBlocks.js:925 +#.TRANS: widget to generate pitches using a slider +msgid "pitch slider" msgstr "" -#: js/musicutils.js:762 -#: js/synthutils.js:139 -#.TRANS: musical instrument -msgid "darbuka drum" +#: js/blocks/WidgetBlocks.js:977 +msgid "chromatic keyboard" msgstr "" -#: js/musicutils.js:763 -#: js/synthutils.js:143 -#.TRANS: musical instrument -msgid "hi hat" +#: js/blocks/WidgetBlocks.js:1011 +#: js/blocks/WidgetBlocks.js:1077 +#.TRANS: widget to generate pitches using a slider +msgid "music keyboard" msgstr "" -#: js/musicutils.js:764 -#: js/synthutils.js:145 -#.TRANS: a small metal bell -msgid "ride bell" +#: js/blocks/WidgetBlocks.js:1062 +#: js/blocks/WidgetBlocks.js:1069 +msgid "The Music keyboard block opens a piano keyboard that can be used to create notes." msgstr "" -#: js/musicutils.js:765 -#: js/synthutils.js:147 -#.TRANS: musical instrument -msgid "cow bell" +#: js/blocks/WidgetBlocks.js:1128 +msgid "The Pitch staircase tool to is used to generate pitches from a given ratio." msgstr "" -#: js/musicutils.js:766 -msgid "japanese drum" +#: js/blocks/WidgetBlocks.js:1135 +#.TRANS: generate a progressive sequence of pitches +msgid "pitch staircase" msgstr "" -#: js/musicutils.js:767 -#: js/synthutils.js:153 -#.TRANS: musical instrument -msgid "japanese bell" +#: js/blocks/WidgetBlocks.js:1222 +msgid "The Rhythm Maker block opens a tool to create drum machines." msgstr "" -#: js/musicutils.js:768 -#: js/synthutils.js:149 -#.TRANS: musical instrument -msgid "triangle bell" +#: js/blocks/WidgetBlocks.js:1291 +msgid "G major scale" msgstr "" -#: js/musicutils.js:769 -#: js/synthutils.js:151 -#.TRANS: musical instrument -msgid "finger cymbals" +#: js/blocks/WidgetBlocks.js:1326 +msgid "C major scale" msgstr "" -#: js/musicutils.js:770 -#: js/synthutils.js:155 -#.TRANS: a musically tuned set of bells -msgid "chime" +#: js/blocks/WidgetBlocks.js:1366 +msgid "The Phrase Maker block opens a tool to create musical phrases." msgstr "" -#: js/musicutils.js:771 -#: js/synthutils.js:157 -#.TRANS: a musical instrument -msgid "gong" +#: js/blocks/WidgetBlocks.js:1373 +#.TRANS: assigns pitch to a sequence of beats to generate a melody +msgid "phrase maker" msgstr "" -#: js/musicutils.js:772 -#: js/synthutils.js:159 -#.TRANS: sound effect -msgid "clang" +#: js/blocks/WidgetBlocks.js:1444 +msgid "You must have at least one pitch block and one rhythm block in the matrix." msgstr "" -#: js/musicutils.js:773 -#: js/synthutils.js:161 -#.TRANS: sound effect -msgid "crash" +#: js/blocks/WidgetBlocks.js:1503 +msgid "The Status block opens a tool for inspecting the status of Music Blocks as it is running." msgstr "" -#: js/musicutils.js:774 -#: js/synthutils.js:163 -#.TRANS: sound effect -msgid "bottle" +#: js/blocks/WidgetBlocks.js:1580 +#.TRANS: AI-generated music +msgid "aimusic" msgstr "" -#: js/musicutils.js:775 -#: js/synthutils.js:165 -#.TRANS: sound effect -msgid "clap" +#: js/turtleactions/MeterActions.js:101 +#: js/turtleactions/MeterActions.js:139 +msgid "beats per minute must be greater than" msgstr "" -#: js/musicutils.js:776 -#: js/synthutils.js:167 -#.TRANS: sound effect -msgid "slap" +#: js/turtleactions/MeterActions.js:111 +#: js/turtleactions/MeterActions.js:149 +msgid "maximum" msgstr "" -#: js/musicutils.js:777 -#: js/synthutils.js:169 -#.TRANS: sound effect -msgid "splash" +#: js/turtleactions/MeterActions.js:117 +#: js/turtleactions/MeterActions.js:155 +msgid "beats per minute is" msgstr "" -#: js/musicutils.js:778 -#: js/synthutils.js:171 -#.TRANS: sound effect -msgid "bubbles" +#: js/turtleactions/DictActions.js:75 +#: js/turtleactions/DictActions.js:142 +#: js/turtleactions/DictActions.js:172 +msgid "font" msgstr "" -#: js/musicutils.js:779 -#: js/synthutils.js:173 -#.TRANS: sound effect -msgid "raindrop" +#: js/turtleactions/DictActions.js:255 +msgid "Dictionary with this name does not exist" msgstr "" -#: js/musicutils.js:780 -#: js/synthutils.js:175 -#.TRANS: animal sound effect -msgid "cat" +#: js/turtleactions/DictActions.js:259 +msgid "Key with this name does not exist in " msgstr "" -#: js/musicutils.js:781 -#: js/synthutils.js:177 -#.TRANS: animal sound effect -msgid "cricket" +#: js/turtleactions/DrumActions.js:227 +msgid "Noise Block: Did you mean to use a Note block?" msgstr "" -#: js/musicutils.js:782 -#: js/synthutils.js:179 -#.TRANS: animal sound effect -msgid "dog" +#: js/turtleactions/IntervalsActions.js:113 +msgid "one" msgstr "" -#: js/musicutils.js:784 -#: js/synthutils.js:86 -#.TRANS: musical instrument -msgid "banjo" +#: js/turtleactions/IntervalsActions.js:113 +msgid "two" msgstr "" -#: js/musicutils.js:785 -#: js/synthutils.js:88 -#.TRANS: musical instrument -msgid "koto" +#: js/turtleactions/IntervalsActions.js:113 +msgid "three" msgstr "" -#: js/musicutils.js:786 -#: js/synthutils.js:90 -#.TRANS: musical instrument -msgid "dulcimer" +#: js/turtleactions/IntervalsActions.js:113 +msgid "four" msgstr "" -#: js/musicutils.js:787 -#: js/synthutils.js:92 -#.TRANS: musical instrument -msgid "electric guitar" +#: js/turtleactions/IntervalsActions.js:113 +msgid "five" msgstr "" -#: js/musicutils.js:788 -#: js/synthutils.js:94 -#.TRANS: musical instrument -msgid "bassoon" +#: js/turtleactions/IntervalsActions.js:113 +msgid "six" msgstr "" -#: js/musicutils.js:789 -#: js/synthutils.js:96 -#.TRANS: musical instrument -msgid "celeste" +#: js/turtleactions/IntervalsActions.js:113 +msgid "seven" msgstr "" -#: js/musicutils.js:791 -#: js/musicutils.js:1123 -#: js/musicutils.js:1131 -#: js/temperament.js:650 -#.TRANS: musical temperament -msgid "equal" +#: js/turtleactions/IntervalsActions.js:113 +msgid "eight" msgstr "" -#: js/musicutils.js:793 -#: js/musicutils.js:1125 -#: js/musicutils.js:1133 -#.TRANS: musical temperament -msgid "Pythagorean" +#: js/turtleactions/IntervalsActions.js:113 +msgid "nine" msgstr "" -#: js/musicutils.js:795 -#: js/musicutils.js:1124 -#: js/musicutils.js:1132 -#.TRANS: musical temperament -msgid "just intonation" +#: js/turtleactions/IntervalsActions.js:119 +msgid "a" msgstr "" -#: js/musicutils.js:797 -#: js/musicutils.js:1126 -#: js/musicutils.js:1127 -#: js/musicutils.js:1134 -#: js/musicutils.js:1135 -#.TRANS: musical temperament -msgid "meantone" +#: js/turtleactions/IntervalsActions.js:120 +msgid "below" msgstr "" -#: js/musicutils.js:814 -msgid "major 7th" +#: js/turtleactions/IntervalsActions.js:124 +msgid "above" msgstr "" -#: js/musicutils.js:815 -msgid "minor 7th" +#: js/turtleactions/IntervalsActions.js:131 +msgid "plus" msgstr "" -#: js/musicutils.js:816 -msgid "dominant 7th" +#: js/turtleactions/IntervalsActions.js:139 +msgid " below" msgstr "" -#: js/musicutils.js:817 -msgid "minor-major 7th" +#: js/turtleactions/IntervalsActions.js:257 +msgid "Adding missing pitch number 0." msgstr "" -#: js/musicutils.js:818 -msgid "fully-diminished 7th" +#: js/turtleactions/IntervalsActions.js:265 +msgid "Ignoring pitch numbers less than zero or greater than eleven." msgstr "" -#: js/musicutils.js:819 -msgid "half-diminished 7th" +#: js/turtleactions/IntervalsActions.js:271 +msgid "Ignoring duplicate pitch numbers." msgstr "" -#: js/musicutils.js:4379 -#: js/musicutils.js:4416 -msgid "current" +#: js/turtleactions/ToneActions.js:134 +msgid "Vibrato intensity must be between 1 and 100." msgstr "" -#: js/musicutils.js:4382 -#: js/musicutils.js:4407 -msgid "next" +#: js/turtleactions/ToneActions.js:139 +msgid "Vibrato rate must be greater than 0." msgstr "" -#: js/musicutils.js:4385 -#: js/musicutils.js:4412 -msgid "previous" +#: js/turtleactions/ToneActions.js:192 +#: js/turtleactions/ToneActions.js:265 +#.TRANS: Depth is the intesity of the tremolo or chorus effect. +msgid "Depth is out of range." msgstr "" -#: js/synthutils.js:104 -#.TRANS: simple monotone synthesizer -msgid "simple-2" +#: js/turtleactions/ToneActions.js:301 +msgid "Distortion must be from 0 to 100." msgstr "" -#: js/synthutils.js:106 -#.TRANS: simple monotone synthesizer -msgid "simple-3" +#: js/turtleactions/ToneActions.js:332 +#.TRANS: partials components in a harmonic series +msgid "Partial must be greater than or equal to 0." msgstr "" -#: js/synthutils.js:108 -#.TRANS: simple monotone synthesizer -msgid "simple-4" +#: js/turtleactions/ToneActions.js:378 +#: js/turtleactions/ToneActions.js:417 +#: js/turtleactions/ToneActions.js:456 +#: js/widgets/timbre.js:782 +msgid "Unable to use synth due to existing oscillator" msgstr "" -#: js/synthutils.js:141 -#.TRANS: musical instrument -msgid "taiko" +#: js/turtleactions/ToneActions.js:388 +#: js/turtleactions/ToneActions.js:427 +msgid "The input cannot be negative." msgstr "" -#: js/modewidget.js:86 -#: js/modewidget.js:88 -#: js/modewidget.js:642 -#: js/modewidget.js:644 -#: js/modewidget.js:712 -#: js/modewidget.js:714 -#: js/temperament.js:2078 -#: js/rhythmruler.js:189 -#: js/rhythmruler.js:1410 -#: js/rhythmruler.js:1412 -#: js/rhythmruler.js:1435 -#: js/rhythmruler.js:1437 -#: js/meterwidget.js:89 -#: js/meterwidget.js:91 +#: js/widgets/modewidget.js:86 +#: js/widgets/modewidget.js:88 +#: js/widgets/modewidget.js:642 +#: js/widgets/modewidget.js:644 +#: js/widgets/modewidget.js:712 +#: js/widgets/modewidget.js:714 +#: js/widgets/meterwidget.js:194 +#: js/widgets/meterwidget.js:196 +#: js/widgets/temperament.js:2236 +#: js/widgets/rhythmruler.js:457 +#: js/widgets/rhythmruler.js:1790 +#: js/widgets/rhythmruler.js:1792 +#: js/widgets/rhythmruler.js:1816 +#: js/widgets/rhythmruler.js:1818 msgid "Play all" msgstr "" -#: js/modewidget.js:115 -#: js/pitchstaircase.js:641 -#: js/phrasemaker.js:339 -#: js/pitchdrummatrix.js:94 -#: js/pitchslider.js:125 -#: js/temperament.js:2083 -#: js/musickeyboard.js:530 -#: js/timbre.js:756 -#: js/meterwidget.js:124 -#: js/arpeggio.js:103 +#: js/widgets/modewidget.js:115 +#: js/widgets/meterwidget.js:229 +#: js/widgets/pitchdrummatrix.js:166 +#: js/widgets/pitchslider.js:125 +#: js/widgets/pitchstaircase.js:641 +#: js/widgets/temperament.js:2244 +#: js/widgets/timbre.js:756 +#: js/widgets/arpeggio.js:103 +#: js/widgets/musickeyboard.js:688 +#: js/widgets/phrasemaker.js:550 msgid "Save" msgstr "" -#: js/modewidget.js:121 -#: js/pitchstaircase.js:686 -#: js/phrasemaker.js:356 -#: js/pitchdrummatrix.js:109 -#: js/musickeyboard.js:534 -#: js/rhythmruler.js:269 -#: js/arpeggio.js:118 +#: js/widgets/modewidget.js:121 +#: js/widgets/pitchdrummatrix.js:181 +#: js/widgets/pitchstaircase.js:686 +#: js/widgets/arpeggio.js:118 +#: js/widgets/musickeyboard.js:696 +#: js/widgets/phrasemaker.js:567 +#: js/widgets/rhythmruler.js:601 #.TRANS: clear all subdivisions from the ruler. msgid "Clear" msgstr "" -#: js/modewidget.js:127 +#: js/widgets/modewidget.js:127 msgid "Rotate counter clockwise" msgstr "" -#: js/modewidget.js:133 +#: js/widgets/modewidget.js:133 msgid "Rotate clockwise" msgstr "" -#: js/modewidget.js:139 +#: js/widgets/modewidget.js:139 msgid "Invert" msgstr "" -#: js/modewidget.js:145 -#: js/pitchstaircase.js:678 -#: js/rhythmruler.js:258 -#: js/timbre.js:963 +#: js/widgets/modewidget.js:145 +#: js/widgets/pitchstaircase.js:678 +#: js/widgets/timbre.js:963 +#: js/widgets/rhythmruler.js:578 msgid "Undo" msgstr "" -#: js/modewidget.js:163 +#: js/widgets/modewidget.js:163 #.TRANS: A circle of notes represents the musical mode. msgid "Click in the circle to select notes for the mode." msgstr "" -#: js/modewidget.js:1017 -#: js/pitchstaircase.js:580 -#: js/phrasemaker.js:4855 -#: js/temperament.js:1754 -#: js/rhythmruler.js:1865 -#: js/rhythmruler.js:2081 -#: js/tempo.js:414 +#: js/widgets/modewidget.js:1017 +#: js/widgets/pitchstaircase.js:580 +#: js/widgets/temperament.js:1929 +#: js/widgets/tempo.js:414 +#: js/widgets/phrasemaker.js:5356 +#: js/widgets/rhythmruler.js:2254 +#: js/widgets/rhythmruler.js:2472 msgid "New action block generated!" msgstr "" -#: js/oscilloscope.js:79 -msgid "Zoom In" -msgstr "" - -#: js/oscilloscope.js:88 -msgid "Zoom Out" -msgstr "" - -#: js/pitchstaircase.js:624 -msgid "Play chord" -msgstr "" - -#: js/pitchstaircase.js:632 -msgid "Play scale" +#: js/widgets/meterwidget.js:275 +msgid "Reset" msgstr "" -#: js/pitchstaircase.js:696 -msgid "Click on a note to create a new step." +#: js/widgets/meterwidget.js:301 +msgid "Click in the circle to select strong beats for the meter." msgstr "" -#: js/phrasemaker.js:363 -msgid "Export" +#: js/widgets/oscilloscope.js:79 +msgid "Zoom In" msgstr "" -#: js/phrasemaker.js:370 -msgid "Sort" +#: js/widgets/oscilloscope.js:88 +msgid "Zoom Out" msgstr "" -#: js/phrasemaker.js:373 -#: js/musickeyboard.js:559 -msgid "Add note" +#: js/widgets/pitchdrummatrix.js:356 +#: js/widgets/pitchdrummatrix.js:752 +msgid "Click in the grid to map notes to drums." msgstr "" -#: js/phrasemaker.js:764 -msgid "Click on the table to add notes." +#: js/widgets/pitchslider.js:103 +msgid "Move up" msgstr "" -#: js/phrasemaker.js:2414 -#: js/phrasemaker.js:2543 -msgid "tuplet value" +#: js/widgets/pitchslider.js:114 +msgid "Move down" msgstr "" -#: js/pitchdrummatrix.js:270 -#: js/pitchdrummatrix.js:639 -msgid "Click in the grid to map notes to drums." +#: js/widgets/pitchslider.js:136 +msgid "Click on the slider to create a note block." msgstr "" -#: js/pitchslider.js:103 -msgid "Move up" +#: js/widgets/pitchstaircase.js:624 +msgid "Play chord" msgstr "" -#: js/pitchslider.js:114 -msgid "Move down" +#: js/widgets/pitchstaircase.js:632 +msgid "Play scale" msgstr "" -#: js/pitchslider.js:136 -msgid "Click on the slider to create a note block." +#: js/widgets/pitchstaircase.js:696 +msgid "Click on a note to create a new step." msgstr "" -#: js/temperament.js:215 +#: js/widgets/temperament.js:321 msgid "back to 2:1 octave space" msgstr "" -#: js/temperament.js:323 +#: js/widgets/temperament.js:447 msgid "edit" msgstr "" -#: js/temperament.js:330 -#: js/temperament.js:332 -#: js/temperament.js:1336 -#: js/temperament.js:1338 +#: js/widgets/temperament.js:454 +#: js/widgets/temperament.js:456 +#: js/widgets/temperament.js:1493 +#: js/widgets/temperament.js:1495 msgid "close" msgstr "" -#: js/temperament.js:423 -#: js/temperament.js:736 -#: js/temperament.js:743 -#: js/temperament.js:845 -#: js/temperament.js:935 -#: js/temperament.js:942 -#: js/temperament.js:1015 -#: js/temperament.js:1284 -#: js/temperament.js:1354 -#: js/temperament.js:1430 +#: js/widgets/temperament.js:552 +#: js/widgets/temperament.js:877 +#: js/widgets/temperament.js:884 +#: js/widgets/temperament.js:986 +#: js/widgets/temperament.js:1080 +#: js/widgets/temperament.js:1087 +#: js/widgets/temperament.js:1160 +#: js/widgets/temperament.js:1433 +#: js/widgets/temperament.js:1511 +#: js/widgets/temperament.js:1596 msgid "done" msgstr "" -#: js/temperament.js:477 -#: js/temperament.js:482 -#: js/temperament.js:918 +#: js/widgets/temperament.js:610 +#: js/widgets/temperament.js:615 +#: js/widgets/temperament.js:1063 msgid "ratio" msgstr "" -#: js/temperament.js:483 +#: js/widgets/temperament.js:616 msgid "interval" msgstr "" -#: js/temperament.js:611 +#: js/widgets/temperament.js:744 msgid "non scalar" msgstr "" -#: js/temperament.js:650 +#: js/widgets/temperament.js:787 msgid "ratios" msgstr "" -#: js/temperament.js:650 +#: js/widgets/temperament.js:787 msgid "arbitrary" msgstr "" -#: js/temperament.js:719 +#: js/widgets/temperament.js:860 msgid "number of divisions" msgstr "" -#: js/temperament.js:741 -#: js/temperament.js:858 -#: js/temperament.js:940 -#: js/temperament.js:1033 +#: js/widgets/temperament.js:882 +#: js/widgets/temperament.js:999 +#: js/widgets/temperament.js:1085 +#: js/widgets/temperament.js:1178 msgid "preview" msgstr "" -#: js/temperament.js:788 +#: js/widgets/temperament.js:929 msgid "The Number of divisions is too large." msgstr "" -#: js/temperament.js:921 +#: js/widgets/temperament.js:1066 msgid "recursion" msgstr "" -#: js/temperament.js:1450 +#: js/widgets/temperament.js:1616 msgid "The octave ratio has changed. This changes temperament significantly." msgstr "" -#: js/temperament.js:2087 +#: js/widgets/temperament.js:2248 msgid "Table" msgstr "" -#: js/temperament.js:2185 +#: js/widgets/temperament.js:2356 msgid "Add pitches" msgstr "" -#: js/musickeyboard.js:570 -msgid "Metronome" +#: js/widgets/tempo.js:78 +#: js/widgets/tempo.js:97 +#: js/widgets/tempo.js:99 +#: js/widgets/aiwidget.js:134 +#: js/widgets/aiwidget.js:136 +#: js/widgets/rhythmruler.js:681 +#: js/widgets/rhythmruler.js:683 +#: js/widgets/rhythmruler.js:1864 +#: js/widgets/rhythmruler.js:1866 +#: js/widgets/sampler.js:180 +#: js/widgets/sampler.js:182 +msgid "Pause" msgstr "" -#: js/musickeyboard.js:1296 -#: plugins/rodi.rtp:193 -msgid "duration" +#: js/widgets/tempo.js:113 +msgid "Save tempo" msgstr "" -#: js/musickeyboard.js:2840 -msgid "New action blocks generated!" +#: js/widgets/tempo.js:144 +msgid "speed up" msgstr "" -#: js/musickeyboard.js:2841 -msgid "New action block generated" +#: js/widgets/tempo.js:150 +msgid "slow down" msgstr "" -#: js/musickeyboard.js:2984 -#: js/musickeyboard.js:2992 -msgid "MIDI device present." +#: js/widgets/tempo.js:194 +msgid "Adjust the tempo with the buttons." msgstr "" -#: js/musickeyboard.js:2995 -msgid "No MIDI device found." +#: js/widgets/tempo.js:261 +msgid "Please enter a number between 30 and 1000" msgstr "" -#: js/musickeyboard.js:3000 -msgid "Failed to get MIDI access in browser." +#: js/widgets/tempo.js:268 +#: js/widgets/tempo.js:271 +msgid "The beats per minute must be between 30 and 1000." msgstr "" -#: js/rhythmruler.js:202 -msgid "Save rhythms" +#: js/widgets/tempo.js:287 +msgid "The beats per minute must be below 1000." msgstr "" -#: js/rhythmruler.js:222 -msgid "Save drum machine" +#: js/widgets/tempo.js:303 +msgid "The beats per minute must be above 30" msgstr "" -#: js/rhythmruler.js:263 -#.TRANS: user can tap out a rhythm by clicking on a ruler. -msgid "Tap a rhythm" +#: js/widgets/timbre.js:766 +msgid "Synthesizer" msgstr "" -#: js/rhythmruler.js:342 -#: js/rhythmruler.js:344 -#: js/rhythmruler.js:1481 -#: js/rhythmruler.js:1483 -#: js/sampler.js:110 -#: js/sampler.js:112 -#: js/tempo.js:78 -#: js/tempo.js:97 -#: js/tempo.js:99 -msgid "Pause" +#: js/widgets/timbre.js:789 +msgid "Oscillator" msgstr "" -#: js/rhythmruler.js:478 -msgid "Click on the ruler to divide it." +#: js/widgets/timbre.js:840 +msgid "Envelope" msgstr "" -#: js/rhythmruler.js:603 -#: js/rhythmruler.js:605 -#: js/rhythmruler.js:804 -#: js/rhythmruler.js:806 -#: js/rhythmruler.js:1386 -#: js/rhythmruler.js:1388 -msgid "tap a rhythm" +#: js/widgets/timbre.js:886 +#: planet/js/GlobalTag.js:50 +#.TRANS: On the Planet, we use labels to tag projects. +msgid "Effects" msgstr "" -#: js/rhythmruler.js:1084 -msgid "Maximum value of 256 has been exceeded." +#: js/widgets/timbre.js:904 +msgid "Filter" msgstr "" -#: js/sampler.js:137 -msgid "Warning: Sample is bigger than 1MB." +#: js/widgets/timbre.js:946 +msgid "Add filter" msgstr "" -#: js/sampler.js:142 -msgid "Upload failed: Sample is not a .wav file." +#: js/widgets/timbre.js:987 +msgid "Click on buttons to open the timbre design tools." msgstr "" -#: js/sampler.js:164 -msgid "A new sample block was generated." +#: js/widgets/timbre.js:1273 +msgid "harmonicity" msgstr "" -#: js/sampler.js:255 -msgid "Upload sample" +#: js/widgets/timbre.js:1340 +#: js/widgets/timbre.js:1406 +msgid "modulation index" msgstr "" -#: js/sampler.js:306 -msgid "Save sample" +#: js/widgets/timbre.js:1484 +msgid "vibrato amount" msgstr "" -#: js/sampler.js:697 -#.TRANS: The reference tone is a sound used for comparison. -msgid "reference tone" +#: js/widgets/timbre.js:1919 +msgid "Filter already present." msgstr "" -#: js/tempo.js:113 -msgid "Save tempo" +#: js/widgets/timbre.js:2322 +msgid "delay (MS)" msgstr "" -#: js/tempo.js:144 -msgid "speed up" +#: js/widgets/timbre.js:2507 +msgid "distortion amount" msgstr "" -#: js/tempo.js:150 -msgid "slow down" +#: js/widgets/aiwidget.js:180 +#: js/widgets/sampler.js:227 +msgid "Warning: Sample is bigger than 1MB." msgstr "" -#: js/tempo.js:194 -msgid "Adjust the tempo with the buttons." +#: js/widgets/aiwidget.js:539 +msgid "New start block generated" msgstr "" -#: js/tempo.js:261 -msgid "Please enter a number between 30 and 1000" +#: js/widgets/aiwidget.js:541 +msgid "MIDI loading. This may take some time depending upon the number of notes in the track" msgstr "" -#: js/tempo.js:268 -#: js/tempo.js:271 -msgid "The beats per minute must be between 30 and 1000." +#: js/widgets/aiwidget.js:551 +#: js/widgets/sampler.js:254 +msgid "Upload failed: Sample is not a .wav file." msgstr "" -#: js/tempo.js:287 -msgid "The beats per minute must be below 1000." +#: js/widgets/aiwidget.js:679 +#: js/widgets/sampler.js:432 +msgid "Save sample" msgstr "" -#: js/tempo.js:303 -msgid "The beats per minute must be above 30" +#: js/widgets/aiwidget.js:701 +msgid "AI Music" msgstr "" -#: js/timbre.js:766 -msgid "Synthesizer" +#: js/widgets/arpeggio.js:239 +msgid "Click in the grid to add steps to the arpeggio." msgstr "" -#: js/timbre.js:789 -msgid "Oscillator" +#: js/widgets/help.js:95 +#: js/widgets/help.js:125 +#: js/widgets/help.js:146 +#: js/widgets/help.js:158 +#: js/widgets/help.js:376 +#: js/widgets/help.js:391 +msgid "Take a tour" msgstr "" -#: js/timbre.js:840 -msgid "Envelope" +#: js/widgets/musickeyboard.js:725 +#: js/widgets/phrasemaker.js:584 +msgid "Add note" msgstr "" -#: js/timbre.js:886 -#: js/GlobalTag.js:50 -#.TRANS: On the Planet, we use labels to tag projects. -msgid "Effects" +#: js/widgets/musickeyboard.js:744 +msgid "Metronome" +msgstr "" + +#: js/widgets/musickeyboard.js:1549 +#: plugins/rodi.rtp:193 +msgid "duration" +msgstr "" + +#: js/widgets/musickeyboard.js:3179 +msgid "New action blocks generated" +msgstr "" + +#: js/widgets/musickeyboard.js:3180 +msgid "New action block generated" msgstr "" -#: js/timbre.js:904 -msgid "Filter" +#: js/widgets/musickeyboard.js:3365 +#: js/widgets/musickeyboard.js:3373 +msgid "MIDI device present." msgstr "" -#: js/timbre.js:946 -msgid "Add filter" +#: js/widgets/musickeyboard.js:3376 +msgid "No MIDI device found." msgstr "" -#: js/timbre.js:987 -msgid "Click on buttons to open the timbre design tools." +#: js/widgets/musickeyboard.js:3386 +msgid "Failed to get MIDI access in browser." msgstr "" -#: js/timbre.js:1273 -msgid "harmonicity" +#: js/widgets/phrasemaker.js:574 +msgid "Export" msgstr "" -#: js/timbre.js:1340 -#: js/timbre.js:1406 -msgid "modulation index" +#: js/widgets/phrasemaker.js:581 +msgid "Sort" msgstr "" -#: js/timbre.js:1484 -msgid "vibrato amount" +#: js/widgets/phrasemaker.js:975 +msgid "Click on the table to add notes." msgstr "" -#: js/timbre.js:1919 -msgid "Filter already present." +#: js/widgets/phrasemaker.js:2677 +#: js/widgets/phrasemaker.js:2819 +msgid "tuplet value" msgstr "" -#: js/timbre.js:2322 -msgid "delay (MS)" +#: js/widgets/rhythmruler.js:486 +msgid "Save rhythms" msgstr "" -#: js/timbre.js:2507 -msgid "distortion amount" +#: js/widgets/rhythmruler.js:512 +msgid "Save drum machine" msgstr "" -#: js/meterwidget.js:170 -msgid "Reset" +#: js/widgets/rhythmruler.js:589 +#.TRANS: user can tap out a rhythm by clicking on a ruler. +msgid "Tap a rhythm" msgstr "" -#: js/meterwidget.js:196 -msgid "Click in the circle to select strong beats for the meter." +#: js/widgets/rhythmruler.js:817 +msgid "Click on the ruler to divide it." msgstr "" -#: js/arpeggio.js:239 -msgid "Click in the grid to add steps to the arpeggio." +#: js/widgets/rhythmruler.js:950 +#: js/widgets/rhythmruler.js:952 +#: js/widgets/rhythmruler.js:1152 +#: js/widgets/rhythmruler.js:1154 +#: js/widgets/rhythmruler.js:1765 +#: js/widgets/rhythmruler.js:1767 +msgid "tap a rhythm" msgstr "" -#: js/ProjectStorage.js:243 -msgid "anonymous" +#: js/widgets/rhythmruler.js:1459 +msgid "Maximum value of 256 has been exceeded." msgstr "" -#: js/GlobalCard.js:68 -msgid "Share" +#: js/widgets/sampler.js:237 +msgid "Recording started..." msgstr "" -#: js/GlobalCard.js:74 -msgid "Flags" +#: js/widgets/sampler.js:245 +msgid "Recording complete..." msgstr "" -#: js/LocalCard.js:36 -msgid "View published project" +#: js/widgets/sampler.js:283 +msgid "A new sample block was generated." msgstr "" -#: js/LocalCard.js:42 -msgid "Publish project" +#: js/widgets/sampler.js:378 +msgid "Upload sample" msgstr "" -#: js/LocalCard.js:51 -msgid "Edit project" +#: js/widgets/sampler.js:399 +msgid "Warning: Your sample cannot be loaded because it is >1MB." msgstr "" -#: js/LocalCard.js:52 -msgid "Delete project" +#: js/widgets/sampler.js:448 +msgid "Toggle Mic" msgstr "" -#: js/LocalCard.js:53 -msgid "Download project" +#: js/widgets/sampler.js:458 +msgid "Playback" msgstr "" -#: js/LocalCard.js:55 -msgid "Duplicate project" +#: js/widgets/sampler.js:979 +#.TRANS: The reference tone is a sound used for comparison. +msgid "reference tone" msgstr "" -#: js/GlobalTag.js:28 +#: planet/js/GlobalTag.js:28 #.TRANS: On the Planet, we use labels to tag projects. msgid "All Projects" msgstr "" -#: js/GlobalTag.js:30 -#: js/StringHelper.js:37 +#: planet/js/GlobalTag.js:30 +#: planet/js/StringHelper.js:37 #.TRANS: On the Planet, we use labels to tag projects. msgid "My Projects" msgstr "" -#: js/GlobalTag.js:32 +#: planet/js/GlobalTag.js:32 #.TRANS: On the Planet, we use labels to tag projects. msgid "Examples" msgstr "" -#: js/GlobalTag.js:34 +#: planet/js/GlobalTag.js:34 #.TRANS: On the Planet, we use labels to tag projects. msgid "Music" msgstr "" -#: js/GlobalTag.js:36 +#: planet/js/GlobalTag.js:36 #.TRANS: On the Planet, we use labels to tag projects. msgid "Art" msgstr "" -#: js/GlobalTag.js:38 +#: planet/js/GlobalTag.js:38 #.TRANS: On the Planet, we use labels to tag projects. msgid "Math" msgstr "" -#: js/GlobalTag.js:40 +#: planet/js/GlobalTag.js:40 #.TRANS: On the Planet, we use labels to tag projects. msgid "Interactive" msgstr "" -#: js/GlobalTag.js:42 +#: planet/js/GlobalTag.js:42 #.TRANS: On the Planet, we use labels to tag projects. msgid "Design" msgstr "" -#: js/GlobalTag.js:44 +#: planet/js/GlobalTag.js:44 #.TRANS: On the Planet, we use labels to tag projects. msgid "Game" msgstr "" -#: js/GlobalTag.js:46 +#: planet/js/GlobalTag.js:46 #.TRANS: On the Planet, we use labels to tag projects. msgid "Media" msgstr "" -#: js/GlobalTag.js:48 +#: planet/js/GlobalTag.js:48 #.TRANS: On the Planet, we use labels to tag projects. msgid "Sensors" msgstr "" -#: js/GlobalTag.js:52 +#: planet/js/GlobalTag.js:52 #.TRANS: On the Planet, we use labels to tag projects. msgid "Code Snippet" msgstr "" -#: js/helper.js:149 -#: js/StringHelper.js:49 -msgid "Show more tags" +#: planet/js/LocalCard.js:36 +msgid "View published project" msgstr "" -#: js/helper.js:150 -msgid "Show fewer tags" +#: planet/js/LocalCard.js:42 +msgid "Publish project" +msgstr "" + +#: planet/js/LocalCard.js:51 +msgid "Edit project" +msgstr "" + +#: planet/js/LocalCard.js:52 +msgid "Delete project" +msgstr "" + +#: planet/js/LocalCard.js:53 +msgid "Download project" +msgstr "" + +#: planet/js/LocalCard.js:55 +msgid "Duplicate project" +msgstr "" + +#: planet/js/ProjectStorage.js:243 +msgid "anonymous" +msgstr "" + +#: planet/js/SaveInterface.js:34 +msgid "Open in Music Blocks" +msgstr "" + +#: planet/js/SaveInterface.js:35 +msgid "Open in Turtle Blocks" +msgstr "" + +#: planet/js/GlobalCard.js:68 +msgid "Share" +msgstr "" + +#: planet/js/GlobalCard.js:74 +msgid "Flags" +msgstr "" + +#: planet/js/GlobalPlanet.js:35 +msgid "No results found." +msgstr "" + +#: planet/js/GlobalPlanet.js:51 +msgid "Remix of" +msgstr "" + +#: planet/js/GlobalPlanet.js:509 +msgid "Cannot connect to server" msgstr "" -#: js/ProjectViewer.js:30 +#: planet/js/ProjectViewer.js:30 msgid "Error: Report could not be submitted. Try again later." msgstr "" -#: js/ProjectViewer.js:31 +#: planet/js/ProjectViewer.js:31 msgid "Thank you for reporting this project. A moderator will review the project shortly, to verify violation of the Sugar Labs Code of Conduct." msgstr "" -#: js/ProjectViewer.js:32 -#: js/StringHelper.js:62 -#: js/StringHelper.js:64 -#: js/StringHelper.js:68 +#: planet/js/ProjectViewer.js:32 +#: planet/js/StringHelper.js:62 +#: planet/js/StringHelper.js:64 +#: planet/js/StringHelper.js:68 msgid "Report Project" msgstr "" -#: js/ProjectViewer.js:33 -#: js/StringHelper.js:63 +#: planet/js/ProjectViewer.js:33 +#: planet/js/StringHelper.js:63 msgid "Project Reported" msgstr "" -#: js/ProjectViewer.js:34 +#: planet/js/ProjectViewer.js:34 msgid "Report description required" msgstr "" -#: js/ProjectViewer.js:35 +#: planet/js/ProjectViewer.js:35 msgid "Report description too long" msgstr "" -#: js/StringHelper.js:30 +#: planet/js/Publisher.js:30 +msgid "Feature unavailable - cannot connect to server. Reload Music Blocks to try again." +msgstr "" + +#: planet/js/Publisher.js:220 +#: planet/js/Publisher.js:237 +msgid "This field is required" +msgstr "" + +#: planet/js/Publisher.js:227 +msgid "Title too long" +msgstr "" + +#: planet/js/Publisher.js:244 +msgid "Description too long" +msgstr "" + +#: planet/js/Publisher.js:341 +msgid "Server Error" +msgstr "" + +#: planet/js/Publisher.js:341 +msgid "Try Again" +msgstr "" + +#: planet/js/StringHelper.js:30 msgid "Planet" msgstr "" -#: js/StringHelper.js:31 +#: planet/js/StringHelper.js:31 msgid "Close Planet" msgstr "" -#: js/StringHelper.js:32 +#: planet/js/StringHelper.js:32 msgid "Open project from file" msgstr "" -#: js/StringHelper.js:34 +#: planet/js/StringHelper.js:34 msgid "Local" msgstr "" -#: js/StringHelper.js:35 +#: planet/js/StringHelper.js:35 msgid "Global" msgstr "" -#: js/StringHelper.js:36 +#: planet/js/StringHelper.js:36 msgid "Search for a project" msgstr "" -#: js/StringHelper.js:38 +#: planet/js/StringHelper.js:38 msgid "Publish Project" msgstr "" -#: js/StringHelper.js:40 +#: planet/js/StringHelper.js:40 msgid "Tags (max 5)" msgstr "" -#: js/StringHelper.js:41 -#: js/StringHelper.js:61 +#: planet/js/StringHelper.js:41 +#: planet/js/StringHelper.js:61 msgid "Description" msgstr "" -#: js/StringHelper.js:42 -#: js/StringHelper.js:67 +#: planet/js/StringHelper.js:42 +#: planet/js/StringHelper.js:67 msgid "Submit" msgstr "" -#: js/StringHelper.js:43 -#: js/StringHelper.js:47 +#: planet/js/StringHelper.js:43 +#: planet/js/StringHelper.js:47 msgid "Cancel" msgstr "" -#: js/StringHelper.js:44 +#: planet/js/StringHelper.js:44 msgid "Delete \\"\\"?" msgstr "" -#: js/StringHelper.js:45 +#: planet/js/StringHelper.js:45 msgid "Permanently delete project \\"\\"?" msgstr "" -#: js/StringHelper.js:48 +#: planet/js/StringHelper.js:48 msgid "Explore Projects" msgstr "" -#: js/StringHelper.js:50 +#: planet/js/StringHelper.js:49 +#: planet/js/helper.js:149 +msgid "Show more tags" +msgstr "" + +#: planet/js/StringHelper.js:50 msgid "Most recent" msgstr "" -#: js/StringHelper.js:51 +#: planet/js/StringHelper.js:51 msgid "Most liked" msgstr "" -#: js/StringHelper.js:52 +#: planet/js/StringHelper.js:52 msgid "Most downloaded" msgstr "" -#: js/StringHelper.js:53 +#: planet/js/StringHelper.js:53 msgid "A-Z" msgstr "" -#: js/StringHelper.js:54 +#: planet/js/StringHelper.js:54 msgid "Sort by" msgstr "" -#: js/StringHelper.js:55 +#: planet/js/StringHelper.js:55 msgid "Load More Projects" msgstr "" -#: js/StringHelper.js:56 +#: planet/js/StringHelper.js:56 msgid "Last Updated" msgstr "" -#: js/StringHelper.js:57 +#: planet/js/StringHelper.js:57 msgid "Creation Date" msgstr "" -#: js/StringHelper.js:58 +#: planet/js/StringHelper.js:58 msgid "Number of Downloads:" msgstr "" -#: js/StringHelper.js:59 +#: planet/js/StringHelper.js:59 msgid "Number of Likes:" msgstr "" -#: js/StringHelper.js:60 +#: planet/js/StringHelper.js:60 msgid "Tags:" msgstr "" -#: js/StringHelper.js:65 +#: planet/js/StringHelper.js:65 msgid "Report projects which violate the Sugar Labs Code of Conduct." msgstr "" -#: js/StringHelper.js:66 +#: planet/js/StringHelper.js:66 msgid "Reason for reporting project" msgstr "" -#: js/StringHelper.js:70 +#: planet/js/StringHelper.js:70 msgid "Download as File" msgstr "" -#: js/GlobalPlanet.js:35 -msgid "No results found." -msgstr "" - -#: js/GlobalPlanet.js:51 -msgid "Remix of" -msgstr "" - -#: js/GlobalPlanet.js:509 -msgid "Cannot connect to server" -msgstr "" - -#: js/Publisher.js:30 -msgid "Feature unavailable - cannot connect to server. Reload Music Blocks to try again." -msgstr "" - -#: js/Publisher.js:218 -#: js/Publisher.js:235 -msgid "This field is required" -msgstr "" - -#: js/Publisher.js:225 -msgid "Title too long" +#: planet/js/helper.js:150 +msgid "Show fewer tags" msgstr "" -#: js/Publisher.js:242 -msgid "Description too long" +#: plugins/accelerometer.rtp:48 +msgid "motion x" msgstr "" -#: js/Publisher.js:339 -msgid "Server Error" +#: plugins/accelerometer.rtp:56 +msgid "motion y" msgstr "" -#: js/Publisher.js:339 -msgid "Try Again" +#: plugins/accelerometer.rtp:64 +msgid "motion z" msgstr "" -#: js/SaveInterface.js:34 -msgid "Open in Music Blocks" +#: plugins/facebook.rtp:27 +msgid "publish" msgstr "" -#: js/SaveInterface.js:35 -msgid "Open in Turtle Blocks" +#: plugins/maths.rtp:62 +msgid "power" msgstr "" -#: plugins/weather.rtp:68 -#: plugins/weather.rtp:97 -msgid "Days ahead must be in the range of -1 to 5." +#: plugins/maths.rtp:62 +msgid "base" msgstr "" -#: plugins/weather.rtp:122 -msgid "forecast" +#: plugins/maths.rtp:62 +msgid "exp" msgstr "" -#: plugins/weather.rtp:123 -#: plugins/weather.rtp:137 -#: plugins/weather.rtp:150 -msgid "city" +#: plugins/maths.rtp:99 +msgid "floor" msgstr "" -#: plugins/weather.rtp:124 -#: plugins/weather.rtp:138 -#: plugins/weather.rtp:151 -msgid "day" +#: plugins/maths.rtp:104 +msgid "ceiling" msgstr "" -#: plugins/weather.rtp:136 -msgid "high" +#: plugins/maths.rtp:109 +msgid "to degrees" msgstr "" -#: plugins/weather.rtp:149 -msgid "low" +#: plugins/maths.rtp:114 +msgid "to radians" msgstr "" #: plugins/nutrition.rtp:104 @@ -9458,45 +9867,6 @@ msgstr "" msgid "water" msgstr "" -#: plugins/maths.rtp:62 -#: plugins/examples.rtp:93 -msgid "power" -msgstr "" - -#: plugins/maths.rtp:62 -#: plugins/examples.rtp:93 -msgid "base" -msgstr "" - -#: plugins/maths.rtp:62 -#: plugins/examples.rtp:93 -msgid "exp" -msgstr "" - -#: plugins/maths.rtp:99 -#: plugins/examples.rtp:130 -msgid "floor" -msgstr "" - -#: plugins/maths.rtp:104 -#: plugins/examples.rtp:135 -msgid "ceiling" -msgstr "" - -#: plugins/maths.rtp:109 -#: plugins/examples.rtp:140 -msgid "to degrees" -msgstr "" - -#: plugins/maths.rtp:114 -#: plugins/examples.rtp:145 -msgid "to radians" -msgstr "" - -#: plugins/facebook.rtp:27 -msgid "publish" -msgstr "" - #: plugins/rodi.rtp:172 msgid "blink" msgstr "" @@ -9525,18 +9895,66 @@ msgstr "" msgid "move" msgstr "" -#: plugins/accelerometer.rtp:48 -msgid "motion x" +#: plugins/weather.rtp:68 +#: plugins/weather.rtp:97 +msgid "Days ahead must be in the range of -1 to 5." msgstr "" -#: plugins/accelerometer.rtp:56 -msgid "motion y" +#: plugins/weather.rtp:122 +msgid "forecast" msgstr "" -#: plugins/accelerometer.rtp:64 -msgid "motion z" +#: plugins/weather.rtp:123 +#: plugins/weather.rtp:137 +#: plugins/weather.rtp:150 +msgid "city" +msgstr "" + +#: plugins/weather.rtp:124 +#: plugins/weather.rtp:138 +#: plugins/weather.rtp:151 +msgid "day" +msgstr "" + +#: plugins/weather.rtp:136 +msgid "high" +msgstr "" + +#: plugins/weather.rtp:149 +msgid "low" msgstr "" +#: js/toolbar.js:70 + +#: js/toolbar.js:130 + +#: js/toolbar.js:194 + +#: js/toolbar.js:249 + +#~msgid "Toggle JavaScript Editor" +#~msgstr "" + +#: js/EnsembleBlocks.js:643 + +#~msgid "The Turrle pitch block returns the current pitch number being played by the specified turtle." +#~msgstr "" + +#: js/PitchActions.js:88 + +#~msgid "The Scalar Step Block must be used inside of a Note Block." +#~msgstr "" + +#: js/PitchActions.js:107 + +#~msgid "The Scalar Step Block must be preceded by a Pitch Block." +#~msgstr "" + +#: js/musickeyboard.js:2840 + +#~msgid "New action blocks generated!" +#~msgstr "" + #: js/toolbar.js:110 #: js/toolbar.js:204 @@ -9877,11 +10295,6 @@ msgstr "" #~msgid "The Time block returns the number of seconds that the program has been running." #~msgstr "" -#: js/help.js:95 - -#~msgid "Take a tour" -#~msgstr "" - #: js/GlobalCard.js:48 #~msgid "More Details" @@ -12780,11 +13193,6 @@ msgstr "" #~msgid "The save-stack button saves a stack onto a custom palette. It appears after a \"long press\" on a stack." #~msgstr "" -#: js/musicutils.js:254 - -#~msgid "Custom" -#~msgstr "" - #: js/basicblocks.js:4785 #~msgid "Rhythm" diff --git a/po/sl.po b/po/sl.po index 855dcba495..71accac671 100644 --- a/po/sl.po +++ b/po/sl.po @@ -2130,276 +2130,131 @@ #: js/planetInterface.js:104 #: js/planetInterface.js:104 #: js/planetInterface.js:104 -msgid "project undefined" -msgstr "" - -#: js/logo.js:61 -msgid "Not a valid pitch name" -msgstr "" - -#: js/logo.js:507 -#: js/ProgramBlocks.js:258 -#: js/ProgramBlocks.js:427 -msgid "You must select a file." -msgstr "" - -#: js/logo.js:1184 -#: js/turtles.js:118 -#: js/turtle-painter.js:1192 -#: js/turtle-painter.js:1193 -#: js/block.js:1463 -#: js/lilypond.js:757 -#: js/lilypond.js:921 -#: js/lilypond.js:959 -#: js/ActionBlocks.js:1223 -#: js/ProgramBlocks.js:1267 -msgid "start" -msgstr "" - -#: js/logo.js:1696 -msgid "Playback is ready." -msgstr "" - -#: js/blocks.js:1011 -#: js/blocks.js:3427 -#: js/blocks.js:3428 -#: js/blocks.js:3653 -#: js/blocks.js:4012 -#: js/blocks.js:4205 -#: js/blocks.js:5343 -#: js/blocks.js:6474 -#: js/palette.js:527 -#: js/palette.js:536 -#: js/palette.js:545 -#: js/palette.js:554 -#: js/palette.js:1131 -#: js/palette.js:1142 -#: js/palette.js:1153 -#: js/palette.js:1164 -#: js/palette.js:1183 -#: js/rubrics.js:529 -#: js/macros.js:170 -#: js/macros.js:266 -#: js/macros.js:267 -#: js/macros.js:276 -#: js/macros.js:828 -#: js/block.js:1449 -#: js/block.js:4164 -#: js/block.js:4182 -#: js/block.js:4193 -#: js/turtledefs.js:128 -#: js/turtledefs.js:230 -#: js/ActionBlocks.js:254 -#: js/ActionBlocks.js:307 -#: js/ActionBlocks.js:617 -#: js/ActionBlocks.js:716 -#: js/ActionBlocks.js:961 -#: js/ActionBlocks.js:1049 -#: js/ActionBlocks.js:1322 -#: js/ActionBlocks.js:1325 -#: js/ActionBlocks.js:1337 -#: js/ActionBlocks.js:1404 -#: js/MeterBlocks.js:715 -#: js/MeterBlocks.js:768 -#: js/MeterBlocks.js:831 -#: js/MeterBlocks.js:892 -#: js/phrasemaker.js:4412 -#: js/musickeyboard.js:2647 -#: js/rhythmruler.js:1928 -#: js/rhythmruler.js:1935 -#: js/rhythmruler.js:2119 -#: js/rhythmruler.js:2126 -msgid "action" -msgstr "" - -#: js/blocks.js:1205 -#: js/blocks.js:3380 -#: js/blocks.js:3770 -#: js/blocks.js:3801 -#: js/blocks.js:3850 -#: js/blocks.js:3885 -#: js/blocks.js:6497 -#: js/palette.js:509 -#: js/palette.js:638 -#: js/palette.js:1107 -#: js/BoxesBlocks.js:282 -#: js/BoxesBlocks.js:285 -#: js/BoxesBlocks.js:405 -#: js/BoxesBlocks.js:594 -msgid "box" +#: js/SaveInterface.js:59 +#: js/SaveInterface.js:61 +#: js/SaveInterface.js:93 +msgid "Music Blocks Project" msgstr "" -#: js/blocks.js:1680 -msgid "Consider breaking this stack into parts." +#: js/SaveInterface.js:63 +msgid "This project was created in Music Blocks" msgstr "" -#: js/blocks.js:2408 -#: js/palette.js:653 -#: js/MediaBlocks.js:602 -msgid "open file" +#: js/SaveInterface.js:67 +msgid "Music Blocks is a Free/Libre Software application." msgstr "" -#: js/blocks.js:2415 -#: js/blocks.js:2423 -#: js/activity.js:1875 -msgid "audio file" +#: js/SaveInterface.js:69 +msgid "The source code can be accessed at" msgstr "" -#: js/blocks.js:2536 -#: js/blocks.js:3147 -#: js/block.js:3543 -msgid "on2" +#: js/SaveInterface.js:72 +msgid "For more information, please consult the" msgstr "" -#: js/blocks.js:2538 -#: js/blocks.js:3149 -#: js/block.js:3545 -msgid "off" +#: js/SaveInterface.js:76 +#: js/turtledefs.js:795 +msgid "Music Blocks Guide" msgstr "" -#: js/blocks.js:2543 -#: js/blocks.js:3154 -#: js/palette.js:618 -#: js/block.js:3466 -#: js/BooleanBlocks.js:77 -#: js/BooleanBlocks.js:167 -#: js/BooleanBlocks.js:251 -#: js/BooleanBlocks.js:335 -#: js/BooleanBlocks.js:433 -#: js/BooleanBlocks.js:539 -#: js/BooleanBlocks.js:640 -#: js/BooleanBlocks.js:741 -#: js/BooleanBlocks.js:847 -#: js/BooleanBlocks.js:948 -#: js/BooleanBlocks.js:1033 -#: js/SensorsBlocks.js:910 -msgid "true" +#: js/SaveInterface.js:83 +msgid "Alternatively, open the file in Music Blocks using the Load project button." msgstr "" -#: js/blocks.js:2545 -#: js/blocks.js:3156 -#: js/block.js:3466 -#: js/BooleanBlocks.js:79 -#: js/BooleanBlocks.js:169 -#: js/BooleanBlocks.js:253 -#: js/BooleanBlocks.js:337 -#: js/BooleanBlocks.js:435 -#: js/BooleanBlocks.js:541 -#: js/BooleanBlocks.js:642 -#: js/BooleanBlocks.js:743 -#: js/BooleanBlocks.js:849 -#: js/BooleanBlocks.js:950 -#: js/SensorsBlocks.js:912 -msgid "false" +#: js/SaveInterface.js:85 +msgid "Project Code" msgstr "" -#: js/blocks.js:3183 -#: js/palette.js:574 -#: js/MediaBlocks.js:892 -#: js/MediaBlocks.js:963 -msgid "text" -msgstr "besedilo" - -#: js/blocks.js:3379 -#: js/palette.js:641 -#: js/palette.js:642 -#: js/BoxesBlocks.js:514 -msgid "store in box" +#: js/SaveInterface.js:87 +msgid "This code stores data about the blocks in a project." msgstr "" -#: js/blocks.js:3384 -#: js/blocks.js:3824 -#: js/blocks.js:3859 -#: js/blocks.js:3894 -#: js/blocks.js:5773 -#: js/blocks.js:5794 -#: js/BoxesBlocks.js:772 -msgid "box1" +#: js/SaveInterface.js:89 +msgid "Show" msgstr "" -#: js/blocks.js:3386 -#: js/blocks.js:3826 -#: js/blocks.js:3861 -#: js/blocks.js:3896 -#: js/blocks.js:5775 -#: js/blocks.js:5796 -#: js/BoxesBlocks.js:663 -msgid "box2" +#: js/SaveInterface.js:91 +msgid "Hide" msgstr "" -#: js/blocks.js:4058 -#: js/palette.js:639 -#: js/palette.js:644 -#: js/palette.js:1043 -#: js/BoxesBlocks.js:591 -msgid "store in" +#: js/SaveInterface.js:131 +#: js/SaveInterface.js:204 +#: js/SaveInterface.js:262 +#: js/SaveInterface.js:389 +#: js/SaveInterface.js:417 +#: js/activity.js:4884 +#: planet/js/ProjectStorage.js:27 +#: planet/js/GlobalPlanet.js:467 +#: planet/js/GlobalPlanet.js:469 +#: planet/js/GlobalPlanet.js:495 +#.TRANS: default project title when saving as Lilypond +msgid "My Project" msgstr "" -#: js/blocks.js:4058 -#: js/EnsembleBlocks.js:391 -#: js/EnsembleBlocks.js:402 -#: js/MediaBlocks.js:746 -#: js/ProgramBlocks.js:390 -#: js/ProgramBlocks.js:495 -#: js/ProgramBlocks.js:658 -#: js/BoxesBlocks.js:595 -#: js/PitchBlocks.js:656 -#: js/PitchBlocks.js:932 -#: js/PitchBlocks.js:1827 -#: js/ToneBlocks.js:1025 -#: js/DictBlocks.js:215 -#: js/DictBlocks.js:289 -msgid "name" +#: js/SaveInterface.js:197 +#: planet/js/SaveInterface.js:58 +msgid "No description provided" msgstr "" -#: js/blocks.js:4058 -#: js/RhythmBlocks.js:1130 -#: js/BoxesBlocks.js:75 -#: js/BoxesBlocks.js:595 -#: js/HeapBlocks.js:544 -#: js/DictBlocks.js:289 -#: js/DictBlocks.js:430 -msgid "value" +#: js/SaveInterface.js:332 +msgid "Your recording is in progress." msgstr "" -#: js/blocks.js:4907 -msgid "There is no block selected." +#: js/SaveInterface.js:401 +#.TRANS: File name prompt for save as Lilypond +msgid "File name" msgstr "" -#: js/blocks.js:5002 -#: js/MediaBlocks.js:888 -msgid "show" +#: js/SaveInterface.js:403 +#: planet/js/StringHelper.js:39 +#.TRANS: Project title prompt for save as Lilypond +msgid "Project title" msgstr "" -#: js/blocks.js:5005 -#: js/MediaBlocks.js:803 -#.TRANS: Avatar is the image used to determine the appearance of the mouse. -msgid "avatar" +#: js/SaveInterface.js:405 +#.TRANS: Project title prompt for save as Lilypond +msgid "Project author" msgstr "" -#: js/blocks.js:5008 -#: js/ToneBlocks.js:1010 -#: js/sampler.js:693 -#.TRANS: The sound sample that the user uploads. -msgid "sample" +#: js/SaveInterface.js:407 +#.TRANS: MIDI prompt for save as Lilypond +msgid "Include MIDI output?" msgstr "" -#: js/turtles.js:874 -msgid "Grid" +#: js/SaveInterface.js:409 +#.TRANS: Guitar prompt for save as Lilypond +msgid "Include guitar tablature output?" msgstr "" -#: js/turtles.js:891 -#: js/turtledefs.js:626 -msgid "Clean" +#: js/SaveInterface.js:411 +#.TRANS: Lilypond is a scripting language for generating sheet music +msgid "Save as Lilypond" msgstr "" -#: js/turtles.js:912 -#: js/turtledefs.js:632 -msgid "Collapse" +#: js/SaveInterface.js:426 +#: js/blocks/EnsembleBlocks.js:75 +#: js/blocks/EnsembleBlocks.js:154 +#: js/blocks/EnsembleBlocks.js:216 +#: js/blocks/EnsembleBlocks.js:302 +#: js/blocks/EnsembleBlocks.js:348 +#: js/blocks/EnsembleBlocks.js:389 +#: js/blocks/EnsembleBlocks.js:441 +#: js/blocks/EnsembleBlocks.js:490 +#: js/blocks/EnsembleBlocks.js:536 +#: js/blocks/EnsembleBlocks.js:583 +#: js/blocks/EnsembleBlocks.js:637 +#: js/blocks/EnsembleBlocks.js:753 +#: js/blocks/EnsembleBlocks.js:840 +#: js/blocks/EnsembleBlocks.js:899 +#: js/blocks/EnsembleBlocks.js:942 +#: js/blocks/EnsembleBlocks.js:1212 +#: js/blocks/EnsembleBlocks.js:1280 +#.TRANS: default project author when saving as Lilypond +msgid "Mr. Mouse" msgstr "" -#: js/turtles.js:940 -msgid "Expand" +#: js/SaveInterface.js:573 +msgid "The Lilypond code is copied to clipboard. You can paste it here: " msgstr "" #: js/languagebox.js:198 @@ -2410,6933 +2265,7487 @@ msgstr "" msgid "Music Blocks is already set to this language." msgstr "" -#: js/piemenus.js:200 -#: js/musicutils.js:808 -#: js/musicutils.js:824 -#: js/phrasemaker.js:1672 -#: js/musickeyboard.js:2041 -#: js/sampler.js:544 -#.TRANS: double sharp is a music term related to pitch -msgid "double sharp" +#: js/planetInterface.js:131 +msgid "project undefined" msgstr "" -#: js/piemenus.js:201 -#: js/PitchBlocks.js:1510 -#: js/PitchActions.js:580 -#: js/musicutils.js:806 -#: js/musicutils.js:825 -#: js/phrasemaker.js:1673 -#: js/musickeyboard.js:2042 -#: js/sampler.js:545 -#.TRANS: sharp is a half-step up in pitch -#.TRANS: sharp is a music term related to pitch -msgid "sharp" +#: js/rubrics.js:523 +#: js/turtledefs.js:119 +#: js/turtledefs.js:221 +#: js/blocks/RhythmBlockPaletteBlocks.js:52 +#: js/blocks/RhythmBlockPaletteBlocks.js:234 +#: js/blocks/ProgramBlocks.js:745 +#: js/widgets/rhythmruler.js:2057 +#: js/widgets/rhythmruler.js:2064 +#: js/widgets/rhythmruler.js:2133 +#: js/widgets/rhythmruler.js:2140 +#: js/widgets/rhythmruler.js:2219 +#.TRANS: an arrangement of notes based on duration +msgid "rhythm" msgstr "" -#: js/piemenus.js:202 -#: js/musicutils.js:804 -#: js/musicutils.js:826 -#: js/phrasemaker.js:1674 -#: js/musickeyboard.js:2043 -#: js/sampler.js:546 -#.TRANS: natural is a music term related to pitch -msgid "natural" +#: js/rubrics.js:524 +#: js/turtledefs.js:121 +#: js/turtledefs.js:223 +#: js/block-verbose.js:2622 +#: js/block.js:2550 +#: js/blocks/IntervalsBlocks.js:63 +#: js/blocks/SensorsBlocks.js:178 +#: js/blocks/PitchBlocks.js:1839 +#: js/blocks/PitchBlocks.js:1853 +#: js/widgets/musickeyboard.js:1935 +#: js/widgets/phrasemaker.js:1036 +#.TRANS: pitch number +#.TRANS: pitch number +#.TRANS: we specify pitch in terms of a name and an octave. The name can be CDEFGAB or Do Re Mi Fa Sol La Ti. Octave is a number between 1 and 8. +msgid "pitch" msgstr "" -#: js/piemenus.js:203 -#: js/PitchBlocks.js:1469 -#: js/PitchActions.js:583 -#: js/musicutils.js:802 -#: js/musicutils.js:827 -#: js/phrasemaker.js:1675 -#: js/musickeyboard.js:2044 -#: js/sampler.js:547 -#.TRANS: flat is a half-step down in pitch -#.TRANS: flat is a music term related to pitch -msgid "flat" +#: js/rubrics.js:525 +#: js/turtledefs.js:123 +#: js/turtledefs.js:225 +msgid "tone" msgstr "" -#: js/piemenus.js:204 -#: js/musicutils.js:800 -#: js/musicutils.js:828 -#: js/phrasemaker.js:1676 -#: js/musickeyboard.js:2045 -#: js/sampler.js:548 -#.TRANS: double flat is a music term related to pitch -msgid "double flat" +#: js/rubrics.js:526 +#: js/lilypond.js:605 +#: js/lilypond.js:904 +#: js/lilypond.js:910 +#: js/lilypond.js:948 +msgid "mouse" msgstr "" -#: js/piemenus.js:2861 -#: js/PitchBlocks.js:1357 -#: js/musicutils.js:627 -#.TRANS: unison means the note is the same as the current note -#.TRANS: unison is a music term related to intervals -msgid "unison" +#: js/rubrics.js:527 +#: js/turtledefs.js:132 +#: js/turtledefs.js:234 +#: js/widgets/phrasemaker.js:1040 +msgid "pen" msgstr "" -#: js/piemenus.js:3015 -#: js/piemenus.js:3088 -#: js/musicutils.js:635 -#: js/musicutils.js:810 -#: js/musicutils.js:912 -#.TRANS: major is a music term related to intervals and mode -msgid "major" +#: js/rubrics.js:528 +#: js/turtledefs.js:133 +#: js/turtledefs.js:235 +#: js/blocks/NumberBlocks.js:981 +#: js/blocks/PitchBlocks.js:1717 +#: js/blocks/PitchBlocks.js:1758 +msgid "number" msgstr "" -#: js/piemenus.js:3015 -#: js/piemenus.js:3088 -#: js/musicutils.js:653 -#.TRANS: modal scale for music -msgid "ionian" +#: js/rubrics.js:529 +#: js/turtledefs.js:127 +#: js/turtledefs.js:229 +msgid "flow" msgstr "" -#: js/piemenus.js:3017 -#: js/piemenus.js:3092 -#: js/musicutils.js:633 -#: js/musicutils.js:811 -#: js/musicutils.js:909 -#.TRANS: minor is a music term related to intervals and mode -msgid "minor" +#: js/rubrics.js:530 +#: js/turtledefs.js:128 +#: js/turtledefs.js:230 +#: js/block-verbose.js:1609 +#: js/block-verbose.js:4559 +#: js/block-verbose.js:4577 +#: js/block-verbose.js:4588 +#: js/block.js:1573 +#: js/block.js:4483 +#: js/block.js:4501 +#: js/block.js:4512 +#: js/blocks.js:1018 +#: js/blocks.js:3491 +#: js/blocks.js:3492 +#: js/blocks.js:3717 +#: js/blocks.js:4076 +#: js/blocks.js:4269 +#: js/blocks.js:5432 +#: js/blocks.js:6563 +#: js/macros.js:170 +#: js/macros.js:266 +#: js/macros.js:267 +#: js/macros.js:276 +#: js/macros.js:828 +#: js/palette.js:527 +#: js/palette.js:536 +#: js/palette.js:545 +#: js/palette.js:554 +#: js/palette.js:1129 +#: js/palette.js:1140 +#: js/palette.js:1151 +#: js/palette.js:1162 +#: js/palette.js:1181 +#: js/blocks/ActionBlocks.js:254 +#: js/blocks/ActionBlocks.js:307 +#: js/blocks/ActionBlocks.js:617 +#: js/blocks/ActionBlocks.js:716 +#: js/blocks/ActionBlocks.js:961 +#: js/blocks/ActionBlocks.js:1049 +#: js/blocks/ActionBlocks.js:1322 +#: js/blocks/ActionBlocks.js:1325 +#: js/blocks/ActionBlocks.js:1337 +#: js/blocks/ActionBlocks.js:1404 +#: js/blocks/MeterBlocks.js:715 +#: js/blocks/MeterBlocks.js:768 +#: js/blocks/MeterBlocks.js:831 +#: js/blocks/MeterBlocks.js:892 +#: js/widgets/musickeyboard.js:2986 +#: js/widgets/phrasemaker.js:4913 +#: js/widgets/rhythmruler.js:2319 +#: js/widgets/rhythmruler.js:2326 +#: js/widgets/rhythmruler.js:2511 +#: js/widgets/rhythmruler.js:2518 +msgid "action" msgstr "" -#: js/piemenus.js:3017 -#: js/piemenus.js:3092 -#: js/musicutils.js:663 -#.TRANS: modal scale for music -msgid "aeolian" +#: js/rubrics.js:531 +#: js/turtledefs.js:136 +#: js/turtledefs.js:238 +msgid "sensors" msgstr "" -#: js/piemenus.js:3407 -msgid "Duplicate" +#: js/rubrics.js:532 +#: js/turtledefs.js:135 +#: js/turtledefs.js:237 +#: js/blocks/MediaBlocks.js:930 +msgid "media" msgstr "" -#: js/piemenus.js:3408 -#: js/turtledefs.js:534 -msgid "Extract" +#: js/rubrics.js:533 +msgid "mice" msgstr "" -#: js/piemenus.js:3409 -msgid "Move to trash" +#: js/toolbar.js:48 +#: js/toolbar.js:109 +msgid "About Music Blocks" msgstr "" -#: js/piemenus.js:3410 -#: js/timbre.js:968 -#: js/StringHelper.js:69 -msgid "Close" +#: js/toolbar.js:49 +#: js/toolbar.js:110 +#: js/toolbar.js:175 +#: js/toolbar.js:231 +#: js/turtledefs.js:445 +#: js/turtledefs.js:482 +#: js/activity.js:2660 +#: js/activity.js:2671 +#: js/activity.js:2902 +#: js/widgets/modewidget.js:77 +#: js/widgets/meterwidget.js:185 +#: js/widgets/pitchdrummatrix.js:147 +#: js/widgets/pitchdrummatrix.js:687 +#: js/widgets/pitchdrummatrix.js:689 +#: js/widgets/pitchdrummatrix.js:741 +#: js/widgets/pitchdrummatrix.js:743 +#: js/widgets/pitchdrummatrix.js:758 +#: js/widgets/pitchdrummatrix.js:760 +#: js/widgets/pitchdrummatrix.js:789 +#: js/widgets/pitchdrummatrix.js:791 +#: js/widgets/pitchstaircase.js:121 +#: js/widgets/temperament.js:610 +#: js/widgets/temperament.js:613 +#: js/widgets/temperament.js:673 +#: js/widgets/temperament.js:675 +#: js/widgets/temperament.js:2017 +#: js/widgets/temperament.js:2019 +#: js/widgets/tempo.js:84 +#: js/widgets/tempo.js:86 +#: js/widgets/timbre.js:432 +#: js/widgets/timbre.js:434 +#: js/widgets/timbre.js:465 +#: js/widgets/timbre.js:467 +#: js/widgets/timbre.js:746 +#: js/widgets/aiwidget.js:647 +#: js/widgets/aiwidget.js:654 +#: js/widgets/aiwidget.js:656 +#: js/widgets/arpeggio.js:90 +#: js/widgets/arpeggio.js:547 +#: js/widgets/arpeggio.js:549 +#: js/widgets/arpeggio.js:644 +#: js/widgets/arpeggio.js:646 +#: js/widgets/musickeyboard.js:676 +#: js/widgets/musickeyboard.js:872 +#: js/widgets/musickeyboard.js:874 +#: js/widgets/musickeyboard.js:953 +#: js/widgets/musickeyboard.js:955 +#: js/widgets/phrasemaker.js:513 +#: js/widgets/phrasemaker.js:523 +#: js/widgets/phrasemaker.js:525 +#: js/widgets/phrasemaker.js:4304 +#: js/widgets/phrasemaker.js:4528 +#: js/widgets/phrasemaker.js:4533 +#: js/widgets/phrasemaker.js:4535 +#: js/widgets/phrasemaker.js:4650 +#: js/widgets/rhythmruler.js:637 +#: js/widgets/rhythmruler.js:639 +#: js/widgets/rhythmruler.js:653 +#: js/widgets/rhythmruler.js:655 +#: js/widgets/sampler.js:162 +#: js/widgets/sampler.js:164 +#: js/widgets/sampler.js:363 +msgid "Play" msgstr "" -#: js/piemenus.js:3416 -msgid "Save stack" +#: js/toolbar.js:50 +#: js/toolbar.js:111 +#: js/toolbar.js:176 +#: js/toolbar.js:232 +#: js/turtledefs.js:451 +#: js/turtledefs.js:488 +#: js/activity.js:2679 +#: js/widgets/modewidget.js:99 +#: js/widgets/modewidget.js:101 +#: js/widgets/meterwidget.js:206 +#: js/widgets/meterwidget.js:208 +#: js/widgets/pitchdrummatrix.js:674 +#: js/widgets/pitchdrummatrix.js:676 +#: js/widgets/temperament.js:2002 +#: js/widgets/temperament.js:2004 +#: js/widgets/arpeggio.js:534 +#: js/widgets/arpeggio.js:536 +#: js/widgets/phrasemaker.js:534 +#: js/widgets/phrasemaker.js:536 +msgid "Stop" msgstr "" -#: js/piemenus.js:3420 -#: js/toolbar.js:60 -#: js/toolbar.js:120 -#: js/toolbar.js:185 -#: js/toolbar.js:240 -#: js/turtledefs.js:752 -msgid "Help" +#: js/toolbar.js:51 +#: js/toolbar.js:112 +#: js/toolbar.js:177 +#: js/toolbar.js:233 +#: js/turtledefs.js:498 +msgid "Record" msgstr "" -#: js/piemenus.js:3762 -msgid "You have chosen key " +#: js/toolbar.js:52 +#: js/toolbar.js:53 +msgid "Full screen" msgstr "" -#: js/piemenus.js:3766 -msgid " for your pitch preview." +#: js/toolbar.js:54 +#: js/toolbar.js:115 +#: js/toolbar.js:180 +#: js/toolbar.js:236 +#: js/turtledefs.js:504 +msgid "Toggle Fullscreen" +msgstr "" + +#: js/toolbar.js:55 +#: js/toolbar.js:116 +#: js/toolbar.js:181 +#: js/toolbar.js:237 +#: js/turtledefs.js:510 +#: planet/js/StringHelper.js:33 +msgid "New project" +msgstr "" + +#: js/toolbar.js:56 +#: js/toolbar.js:117 +#: js/toolbar.js:182 +#: js/toolbar.js:238 +#: js/turtledefs.js:516 +msgid "Load project from file" +msgstr "" + +#: js/toolbar.js:57 +#: js/toolbar.js:118 +#: js/toolbar.js:119 +#: js/toolbar.js:183 +#: js/toolbar.js:239 +#: js/turtledefs.js:541 +#: js/turtledefs.js:550 +#: js/turtledefs.js:571 +msgid "Save project" +msgstr "" + +#: js/toolbar.js:58 +#: js/toolbar.js:77 +#: js/toolbar.js:79 +#: js/toolbar.js:138 +#: js/toolbar.js:147 +#: js/toolbar.js:149 +#: js/toolbar.js:184 +#: js/toolbar.js:202 +#: js/toolbar.js:204 +#: js/toolbar.js:240 +#: js/toolbar.js:258 +#: js/toolbar.js:260 +msgid "Save project as HTML" +msgstr "" + +#: js/toolbar.js:59 +#: js/toolbar.js:120 +#: js/toolbar.js:185 +#: js/toolbar.js:241 +msgid "Find and share projects" +msgstr "" + +#: js/toolbar.js:60 +#: js/toolbar.js:121 +#: js/toolbar.js:186 +#: js/toolbar.js:242 +msgid "Offline. Sharing is unavailable" +msgstr "" + +#: js/toolbar.js:61 +#: js/toolbar.js:122 +#: js/toolbar.js:187 +#: js/toolbar.js:243 +msgid "Auxiliary menu" +msgstr "" + +#: js/toolbar.js:62 +#: js/toolbar.js:123 +#: js/toolbar.js:188 +#: js/toolbar.js:244 +#: js/turtledefs.js:752 +#: js/piemenus.js:3423 +msgid "Help" +msgstr "" + +#: js/toolbar.js:63 +#: js/toolbar.js:124 +#: js/toolbar.js:189 +#: js/toolbar.js:245 +msgid "Run slowly" +msgstr "" + +#: js/toolbar.js:64 +#: js/toolbar.js:125 +#: js/toolbar.js:190 +#: js/toolbar.js:246 +#: js/turtledefs.js:682 +msgid "Run step by step" +msgstr "" + +#: js/toolbar.js:65 +#: js/toolbar.js:126 +#: js/toolbar.js:191 +#: js/toolbar.js:247 +#: js/turtledefs.js:689 +msgid "Display statistics" +msgstr "" + +#: js/toolbar.js:66 +#: js/toolbar.js:127 +#: js/toolbar.js:192 +#: js/toolbar.js:248 +msgid "Load plugin" +msgstr "" + +#: js/toolbar.js:67 +#: js/toolbar.js:128 +#: js/toolbar.js:193 +#: js/toolbar.js:249 +#: js/turtledefs.js:696 +msgid "Delete plugin" +msgstr "" + +#: js/toolbar.js:68 +#: js/toolbar.js:129 +#: js/toolbar.js:194 +#: js/toolbar.js:250 +msgid "Enable horizontal scrolling" +msgstr "" + +#: js/toolbar.js:69 +#: js/toolbar.js:130 +#: js/toolbar.js:195 +#: js/toolbar.js:251 +msgid "Disable horizontal scrolling" +msgstr "" + +#: js/toolbar.js:70 +#: js/toolbar.js:131 +#: js/toolbar.js:196 +#: js/toolbar.js:252 +#: planet/js/LocalCard.js:54 +#: planet/js/StringHelper.js:71 +msgid "Merge with current project" +msgstr "" + +#: js/toolbar.js:71 +#: js/toolbar.js:132 +msgid "Set Pitch Preview" +msgstr "" + +#: js/toolbar.js:72 +#: js/toolbar.js:133 +#: js/toolbar.js:197 +#: js/toolbar.js:253 +msgid "JavaScript Editor" +msgstr "" + +#: js/toolbar.js:73 +#: js/toolbar.js:134 +#: js/toolbar.js:198 +#: js/toolbar.js:254 +#: js/turtledefs.js:724 +msgid "Restore" +msgstr "" + +#: js/toolbar.js:74 +#: js/toolbar.js:135 +#: js/toolbar.js:199 +#: js/toolbar.js:255 +msgid "Switch to beginner mode" +msgstr "" + +#: js/toolbar.js:75 +#: js/toolbar.js:136 +#: js/toolbar.js:200 +#: js/toolbar.js:256 +msgid "Switch to advanced mode" +msgstr "" + +#: js/toolbar.js:76 +#: js/toolbar.js:137 +#: js/toolbar.js:146 +#: js/toolbar.js:201 +#: js/toolbar.js:257 +#: js/turtledefs.js:738 +msgid "Select language" +msgstr "" + +#: js/toolbar.js:78 +#: js/toolbar.js:81 +#: js/toolbar.js:140 +#: js/turtledefs.js:579 +msgid "Save mouse artwork as PNG" +msgstr "" + +#: js/toolbar.js:80 +#: js/toolbar.js:139 +#: js/turtledefs.js:575 +msgid "Save mouse artwork as SVG" +msgstr "" + +#: js/toolbar.js:82 +#: js/toolbar.js:141 +#: js/turtledefs.js:583 +msgid "Save music as WAV" +msgstr "" + +#: js/toolbar.js:83 +#: js/toolbar.js:142 +#: js/turtledefs.js:587 +msgid "Save sheet music as ABC" +msgstr "" + +#: js/toolbar.js:84 +#: js/toolbar.js:143 +#: js/turtledefs.js:591 +msgid "Save sheet music as Lilypond" +msgstr "" + +#: js/toolbar.js:85 +msgid "Save sheet music as MusicXML" +msgstr "" + +#: js/toolbar.js:86 +#: js/toolbar.js:144 +#: js/toolbar.js:152 +#: js/toolbar.js:207 +#: js/toolbar.js:263 +#: js/turtledefs.js:562 +#: js/turtledefs.js:595 +msgid "Save block artwork as SVG" +msgstr "" + +#: js/toolbar.js:87 +#: js/toolbar.js:145 +#: js/toolbar.js:153 +#: js/toolbar.js:208 +#: js/toolbar.js:264 +#: js/turtles.js:911 +msgid "Confirm" +msgstr "" + +#: js/toolbar.js:88 +#: js/toolbar.js:154 +#: js/toolbar.js:209 +#: js/toolbar.js:265 +msgid "English (United States)" +msgstr "" + +#: js/toolbar.js:89 +#: js/toolbar.js:155 +#: js/toolbar.js:210 +#: js/toolbar.js:266 +msgid "English (United Kingdom)" +msgstr "" + +#: js/toolbar.js:90 +#: js/toolbar.js:156 +#: js/toolbar.js:211 +#: js/toolbar.js:267 +msgid "日本語" +msgstr "" + +#: js/toolbar.js:91 +msgid "한국어" +msgstr "" + +#: js/toolbar.js:92 +#: js/toolbar.js:158 +#: js/toolbar.js:213 +#: js/toolbar.js:269 +msgid "español" +msgstr "" + +#: js/toolbar.js:93 +#: js/toolbar.js:159 +#: js/toolbar.js:214 +#: js/toolbar.js:270 +msgid "português" +msgstr "" + +#: js/toolbar.js:94 +#: js/toolbar.js:160 +#: js/toolbar.js:215 +#: js/toolbar.js:271 +msgid "にほんご" +msgstr "" + +#: js/toolbar.js:95 +#: js/toolbar.js:161 +#: js/toolbar.js:216 +#: js/toolbar.js:272 +msgid "中文" +msgstr "" + +#: js/toolbar.js:96 +#: js/toolbar.js:162 +#: js/toolbar.js:217 +#: js/toolbar.js:273 +msgid "ภาษาไทย" +msgstr "" + +#: js/toolbar.js:97 +#: js/toolbar.js:163 +#: js/toolbar.js:218 +#: js/toolbar.js:274 +msgid "aymara" +msgstr "" + +#: js/toolbar.js:98 +#: js/toolbar.js:164 +#: js/toolbar.js:219 +#: js/toolbar.js:275 +msgid "quechua" +msgstr "" + +#: js/toolbar.js:99 +#: js/toolbar.js:165 +#: js/toolbar.js:220 +#: js/toolbar.js:276 +msgid "guarani" +msgstr "" + +#: js/toolbar.js:100 +#: js/toolbar.js:166 +#: js/toolbar.js:221 +#: js/toolbar.js:277 +msgid "हिंदी" +msgstr "" + +#: js/toolbar.js:101 +#: js/toolbar.js:168 +#: js/toolbar.js:222 +#: js/toolbar.js:279 +msgid "igbo" +msgstr "" + +#: js/toolbar.js:102 +#: js/toolbar.js:169 +#: js/toolbar.js:223 +#: js/toolbar.js:280 +msgid "عربى" +msgstr "" + +#: js/toolbar.js:103 +#: js/toolbar.js:167 +#: js/toolbar.js:224 +#: js/toolbar.js:278 +msgid "తెలుగు" +msgstr "" + +#: js/toolbar.js:104 +#: js/toolbar.js:170 +#: js/toolbar.js:225 +#: js/toolbar.js:281 +msgid "עִברִית" +msgstr "" + +#: js/toolbar.js:113 +#: js/toolbar.js:114 +#: js/toolbar.js:178 +#: js/toolbar.js:179 +#: js/toolbar.js:234 +#: js/toolbar.js:235 +msgid "Full Screen" +msgstr "" + +#: js/toolbar.js:148 +#: js/toolbar.js:151 +#: js/toolbar.js:203 +#: js/toolbar.js:206 +#: js/toolbar.js:259 +#: js/toolbar.js:262 +#: js/turtledefs.js:558 +msgid "Save turtle artwork as PNG" +msgstr "" + +#: js/toolbar.js:150 +#: js/toolbar.js:205 +#: js/toolbar.js:261 +#: js/turtledefs.js:554 +msgid "Save turtle artwork as SVG" +msgstr "" + +#: js/toolbar.js:157 +#: js/toolbar.js:212 +#: js/toolbar.js:268 +msgid "한국인" +msgstr "" + +#: js/toolbar.js:174 +#: js/toolbar.js:230 +msgid "About Turtle Blocks" +msgstr "" + +#: js/toolbar.js:446 +#: js/toolbar.js:457 +#: js/toolbar.js:497 +msgid "Turtle Wrap Off" +msgstr "" + +#: js/toolbar.js:466 +#: js/toolbar.js:506 +msgid "Turtle Wrap On" +msgstr "" + +#: js/turtle-painter.js:1192 +#: js/turtle-painter.js:1193 +#: js/turtles.js:118 +#: js/block-verbose.js:1623 +#: js/block.js:1587 +#: js/lilypond.js:749 +#: js/lilypond.js:913 +#: js/lilypond.js:951 +#: js/logo.js:1184 +#: js/blocks/ActionBlocks.js:1223 +#: js/blocks/ProgramBlocks.js:1267 +msgid "start" +msgstr "" + +#: js/turtledefs.js:40 +#.TRANS: put the URL to the guide here, e.g., https://github.com/sugarlabs/turtleblocksjs/tree/master/guide/README.md +msgid "guide url" +msgstr "" + +#: js/turtledefs.js:85 +#: js/turtledefs.js:437 +msgid "Turtle Blocks is a Logo-inspired turtle that draws colorful pictures with snap-together visual-programming blocks." +msgstr "" + +#: js/turtledefs.js:118 +#: js/turtledefs.js:220 +msgid "search" +msgstr "" + +#: js/turtledefs.js:120 +#: js/turtledefs.js:222 +#: js/blocks/MeterBlocks.js:1343 +#: js/blocks/WidgetBlocks.js:522 +#.TRANS: musical meter (time signature), e.g., 4:4 +msgid "meter" +msgstr "" + +#: js/turtledefs.js:122 +#: js/turtledefs.js:224 +msgid "intervals" +msgstr "" + +#: js/turtledefs.js:124 +#: js/turtledefs.js:226 +msgid "ornament" +msgstr "" + +#: js/turtledefs.js:125 +#: js/turtledefs.js:227 +#: js/blocks/VolumeBlocks.js:362 +#: js/blocks/VolumeBlocks.js:502 +#: js/blocks/VolumeBlocks.js:545 +msgid "volume" +msgstr "" + +#: js/turtledefs.js:126 +#: js/turtledefs.js:228 +#: js/block-verbose.js:1700 +#: js/block-verbose.js:2626 +#: js/block.js:1664 +#: js/block.js:2554 +#: js/lilypond.js:732 +#: js/lilypond.js:897 +#: js/lilypond.js:941 +#: js/palette.js:577 +#: js/blocks/RhythmBlocks.js:766 +#: js/blocks/DrumBlocks.js:477 +#: js/blocks/VolumeBlocks.js:502 +#: js/widgets/phrasemaker.js:1038 +msgid "drum" +msgstr "" + +#: js/turtledefs.js:129 +#: js/turtledefs.js:231 +msgid "boxes" +msgstr "" + +#: js/turtledefs.js:130 +#: js/turtledefs.js:232 +msgid "widgets" +msgstr "" + +#: js/turtledefs.js:131 +#: js/turtledefs.js:233 +#: js/widgets/phrasemaker.js:1039 +msgid "graphics" +msgstr "" + +#: js/turtledefs.js:134 +#: js/turtledefs.js:236 +msgid "boolean" +msgstr "" + +#: js/turtledefs.js:137 +#: js/turtledefs.js:239 +#: js/blocks/HeapBlocks.js:59 +#: js/widgets/status.js:147 +msgid "heap" +msgstr "" + +#: js/turtledefs.js:138 +#: js/turtledefs.js:240 +#: js/blocks/DictBlocks.js:142 +#: js/blocks/ProgramBlocks.js:495 +msgid "dictionary" +msgstr "" + +#: js/turtledefs.js:139 +#: js/turtledefs.js:241 +msgid "ensemble" +msgstr "" + +#: js/turtledefs.js:140 +#: js/turtledefs.js:242 +msgid "extras" +msgstr "" + +#: js/turtledefs.js:142 +#: js/turtledefs.js:244 +#.TRANS: program as in computer program +#.TRANS: program as in computer program +msgid "program" +msgstr "" + +#: js/turtledefs.js:143 +#: js/turtledefs.js:245 +msgid "my blocks" +msgstr "" + +#: js/turtledefs.js:185 +#: js/turtledefs.js:281 +msgid "artwork" +msgstr "" + +#: js/turtledefs.js:185 +#: js/turtledefs.js:281 +msgid "logic" +msgstr "" + +#: js/turtledefs.js:185 +#: js/turtledefs.js:281 +msgid "music" +msgstr "" + +#: js/turtledefs.js:187 +#: js/turtledefs.js:463 +msgid "Music Blocks is a collection of tools for exploring fundamental musical concepts in a fun way." +msgstr "" + +#: js/turtledefs.js:436 +msgid "Welcome to Turtle Blocks" +msgstr "" + +#: js/turtledefs.js:438 +#: js/turtledefs.js:465 +#: js/turtledefs.js:774 +#: js/turtledefs.js:805 +msgid "The current version is" +msgstr "" + +#: js/turtledefs.js:446 +#: js/turtledefs.js:483 +msgid "Click the run button to run the project in fast mode." +msgstr "" + +#: js/turtledefs.js:452 +msgid "Stop the turtle." +msgstr "" + +#: js/turtledefs.js:454 +#: js/turtledefs.js:491 +msgid "You can also type Alt-S to stop." +msgstr "" + +#: js/turtledefs.js:462 +#: js/widgets/help.js:333 +msgid "Welcome to Music Blocks" +msgstr "" + +#: js/turtledefs.js:472 +#: js/widgets/help.js:334 +msgid "Meet Mr. Mouse!" +msgstr "" + +#: js/turtledefs.js:473 +msgid "Mr Mouse is our Music Blocks conductor." +msgstr "" + +#: js/turtledefs.js:475 +msgid "Mr Mouse encourages you to explore Music Blocks." +msgstr "" + +#: js/turtledefs.js:477 +msgid "Let us start our tour!" +msgstr "" + +#: js/turtledefs.js:489 +msgid "Stop the music (and the mice)." +msgstr "" + +#: js/turtledefs.js:499 +msgid "Record your project as video." +msgstr "" + +#: js/turtledefs.js:505 +msgid "Toggle Fullscreen mode." +msgstr "" + +#: js/turtledefs.js:511 +msgid "Initialize a new project." +msgstr "" + +#: js/turtledefs.js:517 +msgid "You can also load projects from the file system." +msgstr "" + +#: js/turtledefs.js:522 +#: planet/js/StringHelper.js:46 +msgid "Delete" +msgstr "" + +#: js/turtledefs.js:523 +msgid "To delete a block, just right-click on it, then you will be able to see the delete option" +msgstr "" + +#: js/turtledefs.js:528 +#: js/activity.js:2649 +#: planet/js/LocalCard.js:31 +msgid "Copy" +msgstr "" + +#: js/turtledefs.js:529 +msgid "To copy a block, just right-click on it, then you will be able to see the copy option" +msgstr "" + +#: js/turtledefs.js:534 +#: js/piemenus.js:3411 +msgid "Extract" +msgstr "" + +#: js/turtledefs.js:535 +msgid "To extract a block, just right-click on it, then you will be able to see the extract option" +msgstr "" + +#: js/turtledefs.js:542 +#: js/turtledefs.js:552 +#: js/turtledefs.js:573 +msgid "Save your project to a file." +msgstr "" + +#: js/turtledefs.js:549 +#: js/turtledefs.js:570 +msgid "save" +msgstr "" + +#: js/turtledefs.js:556 +#: js/turtledefs.js:577 +msgid "Save graphics from your project to as SVG." +msgstr "" + +#: js/turtledefs.js:560 +#: js/turtledefs.js:581 +msgid "Save graphics from your project as PNG." +msgstr "" + +#: js/turtledefs.js:564 +#: js/turtledefs.js:597 +msgid "Save block artwork as an SVG file." +msgstr "" + +#: js/turtledefs.js:585 +msgid "Save audio from your project as WAV." +msgstr "" + +#: js/turtledefs.js:589 +msgid "Save your project to as an ABC file." +msgstr "" + +#: js/turtledefs.js:593 +msgid "Save your project to as a Lilypond file." +msgstr "" + +#: js/turtledefs.js:604 +msgid "Load samples from server" +msgstr "" + +#: js/turtledefs.js:605 +msgid "This button opens a viewer for loading example projects." +msgstr "" + +#: js/turtledefs.js:611 +msgid "Palette buttons" +msgstr "" + +#: js/turtledefs.js:612 +msgid "This toolbar contains the palette buttons including Rhythm Pitch Tone Action and more." +msgstr "" + +#: js/turtledefs.js:614 +msgid "Click to show the palettes of blocks and drag blocks from the palettes onto the canvas to use them." +msgstr "" + +#: js/turtledefs.js:620 +msgid "Cartesian/Polar" +msgstr "" + +#: js/turtledefs.js:621 +msgid "Show or hide a coordinate grid." +msgstr "" + +#: js/turtledefs.js:626 +#: js/turtles.js:902 +msgid "Clean" +msgstr "" + +#: js/turtledefs.js:627 +msgid "Clear the screen and return the mice to their initial positions." +msgstr "" + +#: js/turtledefs.js:632 +#: js/turtles.js:955 +msgid "Collapse" +msgstr "" + +#: js/turtledefs.js:633 +msgid "Collapse the graphics window." msgstr "" -#: js/palette.js:571 -msgid "grid" +#: js/turtledefs.js:638 +#: js/activity.js:5684 +msgid "Home" msgstr "" -#: js/palette.js:577 -#: js/block.js:1540 -#: js/block.js:2343 -#: js/turtledefs.js:126 -#: js/turtledefs.js:228 -#: js/lilypond.js:740 -#: js/lilypond.js:905 -#: js/lilypond.js:949 -#: js/DrumBlocks.js:486 -#: js/RhythmBlocks.js:766 -#: js/VolumeBlocks.js:502 -#: js/phrasemaker.js:823 -msgid "drum" +#: js/turtledefs.js:639 +msgid "Return all blocks to the center of the screen." msgstr "" -#: js/palette.js:580 -msgid "effect" +#: js/turtledefs.js:644 +msgid "Show/hide blocks" msgstr "" -#: js/palette.js:586 -msgid "sargam" +#: js/turtledefs.js:645 +msgid "Hide or show the blocks and the palettes." msgstr "" -#: js/palette.js:589 -#: js/activity.js:1833 -#: js/RhythmBlocks.js:923 -#: js/PitchBlocks.js:442 -#: js/PitchBlocks.js:1748 -#.TRANS: a numeric mapping of the notes in an octave based on the musical mode -msgid "scale degree" +#: js/turtledefs.js:650 +msgid "Expand/collapse collapsable blocks" msgstr "" -#: js/palette.js:592 -#: js/activity.js:1860 -msgid "mode name" +#: js/turtledefs.js:651 +msgid "Expand or collapse start and action stacks." msgstr "" -#: js/palette.js:595 -#: js/activity.js:1839 -msgid "invert mode" +#: js/turtledefs.js:658 +#: js/activity.js:5704 +msgid "Decrease block size" msgstr "" -#: js/palette.js:598 -#: js/activity.js:1836 -msgid "voice name" +#: js/turtledefs.js:659 +msgid "Decrease the size of the blocks." msgstr "" -#: js/palette.js:601 -#: js/PitchBlocks.js:1181 -msgid "custom pitch" +#: js/turtledefs.js:664 +#: js/activity.js:5710 +msgid "Increase block size" msgstr "" -#: js/palette.js:605 -#: js/block.js:1456 -#: js/block.js:1575 -#: js/WidgetBlocks.js:218 -#: js/IntervalsBlocks.js:63 -msgid "temperament" +#: js/turtledefs.js:665 +msgid "Increase the size of the blocks." msgstr "" -#: js/palette.js:609 -msgid "accidental" +#: js/turtledefs.js:670 +msgid "Expand/collapse option toolbar" msgstr "" -#: js/palette.js:615 -#: js/activity.js:1866 -msgid "interval name" +#: js/turtledefs.js:671 +msgid "Click this button to expand or collapse the auxillary toolbar." msgstr "" -#: js/palette.js:633 -#: js/PitchBlocks.js:405 -msgid "pitch converter" +#: js/turtledefs.js:676 +msgid "Run slow" msgstr "" -#: js/rubrics.js:522 -#: js/turtledefs.js:119 -#: js/turtledefs.js:221 -#: js/RhythmBlockPaletteBlocks.js:52 -#: js/RhythmBlockPaletteBlocks.js:233 -#: js/ProgramBlocks.js:745 -#: js/rhythmruler.js:1670 -#: js/rhythmruler.js:1677 -#: js/rhythmruler.js:1745 -#: js/rhythmruler.js:1752 -#: js/rhythmruler.js:1830 -#.TRANS: an arrangement of notes based on duration -msgid "rhythm" +#: js/turtledefs.js:677 +msgid "Click to run the project in slow mode." msgstr "" -#: js/rubrics.js:523 -#: js/block.js:2339 -#: js/turtledefs.js:121 -#: js/turtledefs.js:223 -#: js/IntervalsBlocks.js:63 -#: js/PitchBlocks.js:1801 -#: js/PitchBlocks.js:1814 -#: js/SensorsBlocks.js:178 -#: js/phrasemaker.js:821 -#: js/musickeyboard.js:1653 -#.TRANS: pitch number -#.TRANS: we specify pitch in terms of a name and an octave. The name can be CDEFGAB or Do Re Mi Fa Sol La Ti. Octave is a number between 1 and 8. -msgid "pitch" +#: js/turtledefs.js:683 +msgid "Click to run the project step by step." msgstr "" -#: js/rubrics.js:524 -#: js/turtledefs.js:123 -#: js/turtledefs.js:225 -msgid "tone" +#: js/turtledefs.js:690 +msgid "Display statistics about your Music project." msgstr "" -#: js/rubrics.js:525 -#: js/lilypond.js:613 -#: js/lilypond.js:912 -#: js/lilypond.js:918 -#: js/lilypond.js:956 -msgid "mouse" +#: js/turtledefs.js:697 +msgid "Delete a selected plugin." msgstr "" -#: js/rubrics.js:526 -#: js/turtledefs.js:132 -#: js/turtledefs.js:234 -#: js/phrasemaker.js:825 -msgid "pen" +#: js/turtledefs.js:704 +msgid "Enable scrolling" msgstr "" -#: js/rubrics.js:527 -#: js/turtledefs.js:133 -#: js/turtledefs.js:235 -#: js/NumberBlocks.js:905 -#: js/PitchBlocks.js:1679 -#: js/PitchBlocks.js:1720 -msgid "number" +#: js/turtledefs.js:705 +msgid "You can scroll the blocks on the canvas." msgstr "" -#: js/rubrics.js:528 -#: js/turtledefs.js:127 -#: js/turtledefs.js:229 -msgid "flow" +#: js/turtledefs.js:714 +msgid "Wrap Turtle" msgstr "" -#: js/rubrics.js:530 -#: js/turtledefs.js:136 -#: js/turtledefs.js:238 -msgid "sensors" +#: js/turtledefs.js:715 +msgid "Turn Turtle wrapping On or Off." msgstr "" -#: js/rubrics.js:531 -#: js/turtledefs.js:135 -#: js/turtledefs.js:237 -#: js/MediaBlocks.js:930 -msgid "media" +#: js/turtledefs.js:725 +msgid "Restore blocks from the trash." msgstr "" -#: js/rubrics.js:532 -msgid "mice" +#: js/turtledefs.js:732 +msgid "Switch mode" msgstr "" -#: js/macros.js:711 -#: js/musicutils.js:783 -#: js/synthutils.js:181 -#.TRANS: animal sound effect -msgid "duck" +#: js/turtledefs.js:733 +msgid "Switch between beginner and advance modes." msgstr "" -#: js/toolbar.js:46 -#: js/toolbar.js:107 -msgid "About Music Blocks" +#: js/turtledefs.js:739 +msgid "Select your language preference." msgstr "" -#: js/toolbar.js:47 -#: js/toolbar.js:108 -#: js/toolbar.js:172 -#: js/toolbar.js:228 -#: js/turtledefs.js:445 -#: js/turtledefs.js:482 -#: js/activity.js:2281 -#: js/activity.js:2289 -#: js/activity.js:2520 -#: js/modewidget.js:77 -#: js/pitchstaircase.js:121 -#: js/phrasemaker.js:302 -#: js/phrasemaker.js:312 -#: js/phrasemaker.js:314 -#: js/phrasemaker.js:3901 -#: js/phrasemaker.js:4061 -#: js/phrasemaker.js:4066 -#: js/phrasemaker.js:4068 -#: js/phrasemaker.js:4183 -#: js/pitchdrummatrix.js:81 -#: js/pitchdrummatrix.js:574 -#: js/pitchdrummatrix.js:576 -#: js/pitchdrummatrix.js:628 -#: js/pitchdrummatrix.js:630 -#: js/pitchdrummatrix.js:645 -#: js/pitchdrummatrix.js:647 -#: js/pitchdrummatrix.js:674 -#: js/pitchdrummatrix.js:676 -#: js/temperament.js:477 -#: js/temperament.js:480 -#: js/temperament.js:540 -#: js/temperament.js:542 -#: js/temperament.js:1835 -#: js/temperament.js:1837 -#: js/temperament.js:1986 -#: js/temperament.js:1988 -#: js/musickeyboard.js:522 -#: js/musickeyboard.js:682 -#: js/musickeyboard.js:684 -#: js/musickeyboard.js:756 -#: js/musickeyboard.js:758 -#: js/rhythmruler.js:298 -#: js/rhythmruler.js:300 -#: js/rhythmruler.js:314 -#: js/rhythmruler.js:316 -#: js/sampler.js:96 -#: js/sampler.js:98 -#: js/sampler.js:229 -#: js/sampler.js:235 -#: js/sampler.js:237 -#: js/tempo.js:84 -#: js/tempo.js:86 -#: js/timbre.js:432 -#: js/timbre.js:434 -#: js/timbre.js:465 -#: js/timbre.js:467 -#: js/timbre.js:746 -#: js/meterwidget.js:80 -#: js/arpeggio.js:90 -#: js/arpeggio.js:547 -#: js/arpeggio.js:549 -#: js/arpeggio.js:644 -#: js/arpeggio.js:646 -msgid "Play" +#: js/turtledefs.js:745 +msgid "Keyboard shortcuts" msgstr "" -#: js/toolbar.js:48 -#: js/toolbar.js:109 -#: js/toolbar.js:173 -#: js/toolbar.js:229 -#: js/turtledefs.js:451 -#: js/turtledefs.js:488 -#: js/activity.js:2297 -#: js/modewidget.js:99 -#: js/modewidget.js:101 -#: js/phrasemaker.js:323 -#: js/phrasemaker.js:325 -#: js/pitchdrummatrix.js:561 -#: js/pitchdrummatrix.js:563 -#: js/temperament.js:1820 -#: js/temperament.js:1822 -#: js/meterwidget.js:101 -#: js/meterwidget.js:103 -#: js/arpeggio.js:534 -#: js/arpeggio.js:536 -msgid "Stop" +#: js/turtledefs.js:746 +msgid "You can type d to create a do block and r to create a re block etc." msgstr "" -#: js/toolbar.js:49 -#: js/toolbar.js:110 -#: js/toolbar.js:174 -#: js/toolbar.js:230 -#: js/turtledefs.js:498 -msgid "Record" +#: js/turtledefs.js:753 +msgid "Show these messages." msgstr "" -#: js/toolbar.js:50 -#: js/toolbar.js:51 -msgid "Full screen" +#: js/turtledefs.js:759 +#: js/turtledefs.js:790 +#: js/widgets/help.js:335 +msgid "Guide" msgstr "" -#: js/toolbar.js:52 -#: js/toolbar.js:112 -#: js/toolbar.js:177 -#: js/toolbar.js:232 -#: js/turtledefs.js:504 -msgid "Toggle Fullscreen" +#: js/turtledefs.js:760 +msgid "A detailed guide to Turtle Blocks is available." msgstr "" -#: js/toolbar.js:53 -#: js/toolbar.js:113 -#: js/toolbar.js:178 -#: js/toolbar.js:233 -#: js/turtledefs.js:510 -#: js/StringHelper.js:33 -msgid "New project" +#: js/turtledefs.js:764 +msgid "Turtle Blocks Guide" msgstr "" -#: js/toolbar.js:54 -#: js/toolbar.js:114 -#: js/toolbar.js:179 -#: js/toolbar.js:234 -#: js/turtledefs.js:516 -msgid "Load project from file" +#: js/turtledefs.js:767 +#: js/turtledefs.js:798 +#: js/widgets/help.js:336 +msgid "About" msgstr "" -#: js/toolbar.js:55 -#: js/toolbar.js:115 -#: js/toolbar.js:116 -#: js/toolbar.js:180 -#: js/toolbar.js:235 -#: js/turtledefs.js:541 -#: js/turtledefs.js:550 -#: js/turtledefs.js:571 -msgid "Save project" +#: js/turtledefs.js:768 +msgid "Turtle Blocks is an open source collection of tools for exploring musical concepts." msgstr "" -#: js/toolbar.js:56 -#: js/toolbar.js:75 -#: js/toolbar.js:77 -#: js/toolbar.js:135 -#: js/toolbar.js:144 -#: js/toolbar.js:146 -#: js/toolbar.js:181 -#: js/toolbar.js:199 -#: js/toolbar.js:201 -#: js/toolbar.js:236 -#: js/toolbar.js:254 -#: js/toolbar.js:256 -msgid "Save project as HTML" +#: js/turtledefs.js:770 +msgid "A full list of contributors can be found in the Turtle Blocks GitHub repository." +msgstr "" + +#: js/turtledefs.js:772 +msgid "Turtle Blocks is licensed under the AGPL." +msgstr "" + +#: js/turtledefs.js:780 +msgid "Turtle Blocks GitHub repository" +msgstr "" + +#: js/turtledefs.js:783 +#: js/turtledefs.js:814 +#: js/widgets/help.js:337 +#: js/widgets/help.js:359 +msgid "Congratulations." +msgstr "" + +#: js/turtledefs.js:784 +msgid "You have finished the tour. Please enjoy Turtle Blocks!" +msgstr "" + +#: js/turtledefs.js:791 +msgid "A detailed guide to Music Blocks is available." +msgstr "" + +#: js/turtledefs.js:799 +msgid "Music Blocks is an open source collection of tools for exploring musical concepts." +msgstr "" + +#: js/turtledefs.js:801 +msgid "A full list of contributors can be found in the Music Blocks GitHub repository." +msgstr "" + +#: js/turtledefs.js:803 +msgid "Music Blocks is licensed under the AGPL." +msgstr "" + +#: js/turtledefs.js:811 +msgid "Music Blocks GitHub repository" +msgstr "" + +#: js/turtledefs.js:815 +msgid "You have finished the tour. Please enjoy Music Blocks!" +msgstr "" + +#: js/turtles.js:882 +msgid "Grid" +msgstr "" + +#: js/turtles.js:1024 +msgid "Expand" +msgstr "" + +#: js/block-verbose.js:1616 +#: js/block-verbose.js:1735 +#: js/block.js:1580 +#: js/block.js:1699 +#: js/palette.js:605 +#: js/blocks/IntervalsBlocks.js:63 +#: js/blocks/WidgetBlocks.js:259 +msgid "temperament" +msgstr "" + +#: js/block-verbose.js:1630 +#: js/block.js:1594 +msgid "matrix" msgstr "" -#: js/toolbar.js:57 -#: js/toolbar.js:117 -#: js/toolbar.js:182 -#: js/toolbar.js:237 -msgid "Find and share projects" +#: js/block-verbose.js:1637 +#: js/block.js:1601 +#: js/blocks/WidgetBlocks.js:1509 +#: plugins/rodi.rtp:324 +msgid "status" msgstr "" -#: js/toolbar.js:58 -#: js/toolbar.js:118 -#: js/toolbar.js:183 -#: js/toolbar.js:238 -msgid "Offline. Sharing is unavailable" +#: js/block-verbose.js:1644 +#: js/block.js:1608 +msgid "drum mapper" msgstr "" -#: js/toolbar.js:59 -#: js/toolbar.js:119 -#: js/toolbar.js:184 -#: js/toolbar.js:239 -msgid "Auxiliary menu" +#: js/block-verbose.js:1651 +#: js/block.js:1615 +msgid "ruler" msgstr "" -#: js/toolbar.js:61 -#: js/toolbar.js:121 -#: js/toolbar.js:186 -#: js/toolbar.js:241 -msgid "Run slowly" +#: js/block-verbose.js:1658 +#: js/block.js:1622 +#: js/blocks/WidgetBlocks.js:397 +#.TRANS: timbre is the character or quality of a musical sound +msgid "timbre" msgstr "" -#: js/toolbar.js:62 -#: js/toolbar.js:122 -#: js/toolbar.js:187 -#: js/toolbar.js:242 -#: js/turtledefs.js:682 -msgid "Run step by step" +#: js/block-verbose.js:1665 +#: js/block.js:1629 +msgid "stair" msgstr "" -#: js/toolbar.js:63 -#: js/toolbar.js:123 -#: js/toolbar.js:188 -#: js/toolbar.js:243 -#: js/turtledefs.js:689 -msgid "Display statistics" +#: js/block-verbose.js:1672 +#: js/block.js:1636 +#: js/blocks/WidgetBlocks.js:707 +#.TRANS: the speed at music is should be played. +msgid "tempo" msgstr "" -#: js/toolbar.js:64 -#: js/toolbar.js:124 -#: js/toolbar.js:189 -#: js/toolbar.js:244 -msgid "Load plugin" +#: js/block-verbose.js:1679 +#: js/block-verbose.js:1742 +#: js/block.js:1643 +#: js/block.js:1706 +#: js/blocks/IntervalsBlocks.js:1464 +#.TRANS: mode, e.g., Major in C Major +msgid "mode" msgstr "" -#: js/toolbar.js:65 -#: js/toolbar.js:125 -#: js/toolbar.js:190 -#: js/toolbar.js:245 -#: js/turtledefs.js:696 -msgid "Delete plugin" +#: js/block-verbose.js:1686 +#: js/block.js:1650 +msgid "slider" msgstr "" -#: js/toolbar.js:66 -#: js/toolbar.js:126 -#: js/toolbar.js:191 -#: js/toolbar.js:246 -msgid "Enable horizontal scrolling" +#: js/block-verbose.js:1693 +#: js/block.js:1657 +#: js/blocks/SensorsBlocks.js:1001 +msgid "keyboard" msgstr "" -#: js/toolbar.js:67 -#: js/toolbar.js:127 -#: js/toolbar.js:192 -#: js/toolbar.js:247 -msgid "Disable horizontal scrolling" +#: js/block-verbose.js:1707 +#: js/block.js:1671 +#: js/blocks/WidgetBlocks.js:1190 +#: js/blocks/WidgetBlocks.js:1228 +#.TRANS: widget for subdividing a measure into distinct rhythmic elements +msgid "rhythm maker" msgstr "" -#: js/toolbar.js:68 -#: js/toolbar.js:128 -#: js/toolbar.js:193 -#: js/toolbar.js:248 -#: js/LocalCard.js:54 -#: js/StringHelper.js:71 -msgid "Merge with current project" +#: js/block-verbose.js:1714 +#: js/block-verbose.js:2457 +#: js/block-verbose.js:2514 +#: js/block.js:1678 +#: js/block.js:2385 +#: js/block.js:2442 +#: js/blocks/MeterBlocks.js:1367 +#: js/blocks/OrnamentBlocks.js:220 +#: js/blocks/OrnamentBlocks.js:312 +#: js/blocks/RhythmBlocks.js:33 +#: js/blocks/RhythmBlocks.js:356 +#: js/blocks/RhythmBlocks.js:766 +#: js/blocks/RhythmBlocks.js:806 +#: js/blocks/RhythmBlockPaletteBlocks.js:70 +#: js/blocks/RhythmBlockPaletteBlocks.js:252 +#: js/blocks/RhythmBlockPaletteBlocks.js:485 +#: js/blocks/RhythmBlockPaletteBlocks.js:554 +#: js/blocks/RhythmBlockPaletteBlocks.js:605 +#: js/blocks/RhythmBlockPaletteBlocks.js:875 +#: js/turtleactions/DictActions.js:85 +#: js/widgets/phrasemaker.js:942 +#: js/widgets/phrasemaker.js:2656 +#: js/widgets/phrasemaker.js:2699 +#: js/widgets/phrasemaker.js:2810 +#.TRANS: the value (e.g., 1/4 note) of the note being played. +msgid "note value" msgstr "" -#: js/toolbar.js:69 -#: js/toolbar.js:129 -msgid "Set Pitch Preview" +#: js/block-verbose.js:1721 +#: js/block-verbose.js:2382 +#: js/block-verbose.js:2405 +#: js/block.js:1685 +#: js/block.js:2310 +#: js/block.js:2333 +#: js/blocks/IntervalsBlocks.js:1071 +#: js/blocks/OrnamentBlocks.js:312 +#.TRANS: calculate a relative step between notes based on semi-tones +msgid "scalar interval" msgstr "" -#: js/toolbar.js:70 -#: js/toolbar.js:130 -#: js/toolbar.js:194 -#: js/toolbar.js:249 -msgid "Toggle JavaScript Editor" +#: js/block-verbose.js:1728 +#: js/block.js:1692 +#: js/blocks/RhythmBlocks.js:148 +msgid "milliseconds" msgstr "" -#: js/toolbar.js:71 -#: js/toolbar.js:131 -#: js/toolbar.js:195 -#: js/toolbar.js:250 -#: js/turtledefs.js:724 -msgid "Restore" +#: js/block-verbose.js:2455 +#: js/block-verbose.js:2459 +#: js/block-verbose.js:2512 +#: js/block-verbose.js:2628 +#: js/block.js:2383 +#: js/block.js:2387 +#: js/block.js:2440 +#: js/block.js:2556 +#: js/blocks/RhythmBlocks.js:712 +#: js/blocks/ProgramBlocks.js:1273 +#: js/widgets/rhythmruler.js:1183 +#: js/widgets/rhythmruler.js:1329 +msgid "silence" msgstr "" -#: js/toolbar.js:72 -#: js/toolbar.js:132 -#: js/toolbar.js:196 -#: js/toolbar.js:251 -msgid "Switch to beginner mode" +#: js/block-verbose.js:2548 +#: js/block-verbose.js:3492 +#: js/block-verbose.js:3509 +#: js/activity.js:2718 +#: js/activity.js:2769 +#: js/block.js:2476 +#: js/block.js:3416 +#: js/block.js:3433 +#: js/utils/musicutils.js:3780 +#: js/utils/musicutils.js:5273 +#.TRANS: the note names must be separated by single spaces +#.TRANS: the note names must be separated by single spaces +#.TRANS: the note names must be separated by single spaces +msgid "ti la sol fa mi re do" msgstr "" -#: js/toolbar.js:73 -#: js/toolbar.js:133 -#: js/toolbar.js:197 -#: js/toolbar.js:252 -msgid "Switch to advanced mode" +#: js/block-verbose.js:2616 +#: js/block.js:2544 +#.TRANS: scalar step +#.TRANS: scalar step +msgid "down" msgstr "" -#: js/toolbar.js:74 -#: js/toolbar.js:134 -#: js/toolbar.js:143 -#: js/toolbar.js:198 -#: js/toolbar.js:253 -#: js/turtledefs.js:738 -msgid "Select language" +#: js/block-verbose.js:2617 +#: js/block.js:2545 +msgid "up" msgstr "" -#: js/toolbar.js:76 -#: js/toolbar.js:79 -#: js/toolbar.js:137 -#: js/turtledefs.js:579 -msgid "Save mouse artwork as PNG" +#: js/block-verbose.js:3026 +#: js/block.js:2950 +msgid "Silence block cannot be removed." msgstr "" -#: js/toolbar.js:78 -#: js/toolbar.js:136 -#: js/turtledefs.js:575 -msgid "Save mouse artwork as SVG" +#: js/block-verbose.js:3824 +#: js/block.js:3748 +#: js/blocks.js:2607 +#: js/blocks.js:3218 +#: js/palette.js:618 +#: js/blocks/BooleanBlocks.js:77 +#: js/blocks/BooleanBlocks.js:167 +#: js/blocks/BooleanBlocks.js:251 +#: js/blocks/BooleanBlocks.js:335 +#: js/blocks/BooleanBlocks.js:433 +#: js/blocks/BooleanBlocks.js:539 +#: js/blocks/BooleanBlocks.js:640 +#: js/blocks/BooleanBlocks.js:741 +#: js/blocks/BooleanBlocks.js:847 +#: js/blocks/BooleanBlocks.js:948 +#: js/blocks/BooleanBlocks.js:1033 +#: js/blocks/SensorsBlocks.js:910 +msgid "true" msgstr "" -#: js/toolbar.js:80 -#: js/toolbar.js:138 -#: js/turtledefs.js:583 -msgid "Save music as WAV" +#: js/block-verbose.js:3824 +#: js/block.js:3748 +#: js/blocks.js:2609 +#: js/blocks.js:3220 +#: js/blocks/BooleanBlocks.js:79 +#: js/blocks/BooleanBlocks.js:169 +#: js/blocks/BooleanBlocks.js:253 +#: js/blocks/BooleanBlocks.js:337 +#: js/blocks/BooleanBlocks.js:435 +#: js/blocks/BooleanBlocks.js:541 +#: js/blocks/BooleanBlocks.js:642 +#: js/blocks/BooleanBlocks.js:743 +#: js/blocks/BooleanBlocks.js:849 +#: js/blocks/BooleanBlocks.js:950 +#: js/blocks/SensorsBlocks.js:912 +msgid "false" msgstr "" -#: js/toolbar.js:81 -#: js/toolbar.js:139 -#: js/turtledefs.js:587 -msgid "Save sheet music as ABC" +#: js/block-verbose.js:3835 +#: js/block-verbose.js:3848 +#: js/block.js:3759 +#: js/block.js:3772 +#: js/blocks/ExtrasBlocks.js:615 +msgid "Cartesian" msgstr "" -#: js/toolbar.js:82 -#: js/toolbar.js:140 -#: js/turtledefs.js:591 -msgid "Save sheet music as Lilypond" +#: js/block-verbose.js:3836 +#: js/block-verbose.js:3849 +#: js/block.js:3760 +#: js/block.js:3773 +#: js/blocks/ExtrasBlocks.js:619 +msgid "polar" msgstr "" -#: js/toolbar.js:83 -msgid "Save sheet music as MusicXML" +#: js/block-verbose.js:3837 +#: js/block-verbose.js:3850 +#: js/block.js:3761 +#: js/block.js:3774 +#: js/blocks/ExtrasBlocks.js:623 +msgid "Cartesian+polar" msgstr "" -#: js/toolbar.js:84 -#: js/toolbar.js:141 -#: js/toolbar.js:149 -#: js/toolbar.js:204 -#: js/toolbar.js:259 -#: js/turtledefs.js:562 -#: js/turtledefs.js:595 -msgid "Save block artwork as SVG" +#: js/block-verbose.js:3838 +#: js/block-verbose.js:3857 +#: js/block.js:3762 +#: js/block.js:3781 +#: js/blocks/ExtrasBlocks.js:652 +msgid "none" msgstr "" -#: js/toolbar.js:85 -#: js/toolbar.js:142 -#: js/toolbar.js:150 -#: js/toolbar.js:205 -#: js/toolbar.js:260 -msgid "Confirm" +#: js/block-verbose.js:3851 +#: js/block.js:3775 +#: js/blocks/ExtrasBlocks.js:628 +msgid "treble" msgstr "" -#: js/toolbar.js:86 -#: js/toolbar.js:151 -#: js/toolbar.js:206 -#: js/toolbar.js:261 -msgid "English (United States)" +#: js/block-verbose.js:3852 +#: js/block.js:3776 +#: js/blocks/ExtrasBlocks.js:632 +msgid "grand staff" msgstr "" -#: js/toolbar.js:87 -#: js/toolbar.js:152 -#: js/toolbar.js:207 -#: js/toolbar.js:262 -msgid "English (United Kingdom)" +#: js/block-verbose.js:3853 +#: js/block.js:3777 +#: js/blocks/ExtrasBlocks.js:636 +msgid "mezzo-soprano" msgstr "" -#: js/toolbar.js:88 -#: js/toolbar.js:153 -#: js/toolbar.js:208 -#: js/toolbar.js:263 -msgid "日本語" +#: js/block-verbose.js:3854 +#: js/block.js:3778 +#: js/blocks/ExtrasBlocks.js:640 +msgid "alto" msgstr "" -#: js/toolbar.js:89 -msgid "한국어" +#: js/block-verbose.js:3855 +#: js/block.js:3779 +#: js/blocks/ExtrasBlocks.js:644 +msgid "tenor" msgstr "" -#: js/toolbar.js:90 -#: js/toolbar.js:155 -#: js/toolbar.js:210 -#: js/toolbar.js:265 -msgid "español" +#: js/block-verbose.js:3856 +#: js/block.js:3780 +#: js/utils/musicutils.js:1115 +#: js/utils/synthutils.js:80 +#: js/blocks/ExtrasBlocks.js:648 +#.TRANS: musical instrument +msgid "bass" msgstr "" -#: js/toolbar.js:91 -#: js/toolbar.js:156 -#: js/toolbar.js:211 -#: js/toolbar.js:266 -msgid "português" +#: js/block-verbose.js:3901 +#: js/block.js:3825 +#: js/blocks.js:2600 +#: js/blocks.js:3211 +msgid "on2" msgstr "" -#: js/toolbar.js:92 -#: js/toolbar.js:157 -#: js/toolbar.js:212 -#: js/toolbar.js:267 -msgid "にほんご" +#: js/block-verbose.js:3903 +#: js/block.js:3827 +#: js/blocks.js:2602 +#: js/blocks.js:3213 +msgid "off" msgstr "" -#: js/toolbar.js:93 -#: js/toolbar.js:158 -#: js/toolbar.js:213 -#: js/toolbar.js:268 -msgid "中文" +#: js/block-verbose.js:4470 +#: js/block.js:4394 +msgid "Not a number" msgstr "" -#: js/toolbar.js:94 -#: js/toolbar.js:159 -#: js/toolbar.js:214 -#: js/toolbar.js:269 -msgid "ภาษาไทย" +#: js/block-verbose.js:4477 +#: js/block.js:4401 +msgid "Octave value must be between 1 and 10." msgstr "" -#: js/toolbar.js:95 -#: js/toolbar.js:160 -#: js/toolbar.js:215 -#: js/toolbar.js:270 -msgid "aymara" +#: js/block-verbose.js:4485 +#: js/block.js:4409 +msgid "Numbers can have at most 10 digits." msgstr "" -#: js/toolbar.js:96 -#: js/toolbar.js:161 -#: js/toolbar.js:216 -#: js/toolbar.js:271 -msgid "quechua" +#: js/activity.js:390 +#: js/activity.js:395 +msgid "Search for blocks" msgstr "" -#: js/toolbar.js:97 -#: js/toolbar.js:162 -#: js/toolbar.js:217 -#: js/toolbar.js:272 -msgid "guarani" +#: js/activity.js:1413 +msgid "Refresh your browser to change to advanced mode." msgstr "" -#: js/toolbar.js:98 -#: js/toolbar.js:163 -#: js/toolbar.js:218 -#: js/toolbar.js:273 -msgid "हिंदी" +#: js/activity.js:1418 +msgid "Refresh your browser to change to beginner mode." msgstr "" -#: js/toolbar.js:99 -#: js/toolbar.js:165 -#: js/toolbar.js:219 -#: js/toolbar.js:275 -msgid "igbo" +#: js/activity.js:1477 +msgid "Catching mice" +msgstr "" + +#: js/activity.js:1478 +msgid "Cleaning the instruments" +msgstr "" + +#: js/activity.js:1479 +msgid "Testing key pieces" +msgstr "" + +#: js/activity.js:1480 +msgid "Sight-reading" +msgstr "" + +#: js/activity.js:1481 +msgid "Combining math and music" msgstr "" -#: js/toolbar.js:100 -#: js/toolbar.js:166 -#: js/toolbar.js:220 -#: js/toolbar.js:276 -msgid "عربى" +#: js/activity.js:1482 +msgid "Generating more blocks" msgstr "" -#: js/toolbar.js:101 -#: js/toolbar.js:164 -#: js/toolbar.js:221 -#: js/toolbar.js:274 -msgid "తెలుగు" +#: js/activity.js:1483 +msgid "Do Re Mi Fa Sol La Ti Do" msgstr "" -#: js/toolbar.js:102 -#: js/toolbar.js:167 -#: js/toolbar.js:222 -#: js/toolbar.js:277 -msgid "עִברִית" +#: js/activity.js:1484 +msgid "Tuning string instruments" msgstr "" -#: js/toolbar.js:111 -#: js/toolbar.js:175 -#: js/toolbar.js:176 -#: js/toolbar.js:231 -msgid "Full Screen" +#: js/activity.js:1485 +msgid "Pressing random keys" msgstr "" -#: js/toolbar.js:145 -#: js/toolbar.js:148 -#: js/toolbar.js:200 -#: js/toolbar.js:203 -#: js/toolbar.js:255 -#: js/toolbar.js:258 -#: js/turtledefs.js:558 -msgid "Save turtle artwork as PNG" +#: js/activity.js:1663 +msgid "plugins will be removed upon restart." msgstr "" -#: js/toolbar.js:147 -#: js/toolbar.js:202 -#: js/toolbar.js:257 -#: js/turtledefs.js:554 -msgid "Save turtle artwork as SVG" +#: js/activity.js:1672 +msgid "show Cartesian" msgstr "" -#: js/toolbar.js:154 -#: js/toolbar.js:209 -#: js/toolbar.js:264 -msgid "한국인" +#: js/activity.js:2211 +#: js/palette.js:589 +#: js/blocks/RhythmBlocks.js:923 +#: js/blocks/PitchBlocks.js:442 +#: js/blocks/PitchBlocks.js:1786 +#.TRANS: a numeric mapping of the notes in an octave based on the musical mode +msgid "scale degree" msgstr "" -#: js/toolbar.js:171 -#: js/toolbar.js:227 -msgid "About Turtle Blocks" +#: js/activity.js:2214 +#: js/palette.js:598 +msgid "voice name" msgstr "" -#: js/toolbar.js:429 -#: js/toolbar.js:440 -msgid "Turtle Wrap Off" +#: js/activity.js:2217 +#: js/palette.js:595 +msgid "invert mode" msgstr "" -#: js/toolbar.js:442 -msgid "Turtle Wrap On" +#: js/activity.js:2220 +msgid "output tools" msgstr "" -#: js/block.js:1470 -msgid "matrix" +#: js/activity.js:2223 +msgid "custom note" msgstr "" -#: js/block.js:1477 -#: js/WidgetBlocks.js:1226 -#: plugins/rodi.rtp:324 -msgid "status" +#: js/activity.js:2226 +msgid "accidental name" msgstr "" -#: js/block.js:1484 -msgid "drum mapper" +#: js/activity.js:2229 +#: js/blocks/PitchBlocks.js:855 +msgid "east indian solfege" msgstr "" -#: js/block.js:1491 -msgid "ruler" +#: js/activity.js:2232 +#: js/blocks/PitchBlocks.js:869 +msgid "note name" msgstr "" -#: js/block.js:1498 -#: js/WidgetBlocks.js:327 -#.TRANS: timbre is the character or quality of a musical sound -msgid "timbre" +#: js/activity.js:2235 +#: js/blocks/IntervalsBlocks.js:94 +msgid "temperament name" msgstr "" -#: js/block.js:1505 -msgid "stair" +#: js/activity.js:2238 +#: js/palette.js:592 +msgid "mode name" msgstr "" -#: js/block.js:1512 -#: js/WidgetBlocks.js:577 -#.TRANS: the speed at music is should be played. -msgid "tempo" +#: js/activity.js:2241 +msgid "chord name" msgstr "" -#: js/block.js:1519 -#: js/block.js:1582 -#: js/IntervalsBlocks.js:1268 -#.TRANS: mode, e.g., Major in C Major -msgid "mode" +#: js/activity.js:2244 +#: js/palette.js:615 +msgid "interval name" msgstr "" -#: js/block.js:1526 -msgid "slider" +#: js/activity.js:2247 +msgid "filter type" msgstr "" -#: js/block.js:1533 -#: js/SensorsBlocks.js:1001 -msgid "keyboard" +#: js/activity.js:2250 +msgid "oscillator type" msgstr "" -#: js/block.js:1547 -#: js/WidgetBlocks.js:957 -#: js/WidgetBlocks.js:988 -#.TRANS: widget for subdividing a measure into distinct rhythmic elements -msgid "rhythm maker" +#: js/activity.js:2253 +#: js/blocks.js:2479 +#: js/blocks.js:2487 +msgid "audio file" msgstr "" -#: js/block.js:1554 -#: js/block.js:2182 -#: js/block.js:2236 -#: js/RhythmBlockPaletteBlocks.js:70 -#: js/RhythmBlockPaletteBlocks.js:251 -#: js/RhythmBlockPaletteBlocks.js:484 -#: js/RhythmBlockPaletteBlocks.js:553 -#: js/RhythmBlockPaletteBlocks.js:604 -#: js/RhythmBlockPaletteBlocks.js:874 -#: js/RhythmBlocks.js:33 -#: js/RhythmBlocks.js:356 -#: js/RhythmBlocks.js:766 -#: js/RhythmBlocks.js:806 -#: js/OrnamentBlocks.js:220 -#: js/OrnamentBlocks.js:312 -#: js/MeterBlocks.js:1367 -#: js/DictActions.js:85 -#: js/phrasemaker.js:731 -#: js/phrasemaker.js:2393 -#: js/phrasemaker.js:2436 -#: js/phrasemaker.js:2534 -#.TRANS: the value (e.g., 1/4 note) of the note being played. -msgid "note value" +#: js/activity.js:2256 +#: js/blocks/DrumBlocks.js:32 +msgid "noise name" msgstr "" -#: js/block.js:1561 -#: js/block.js:2110 -#: js/block.js:2133 -#: js/IntervalsBlocks.js:875 -#: js/OrnamentBlocks.js:312 -#.TRANS: calculate a relative step between notes based on semi-tones -msgid "scalar interval" +#: js/activity.js:2259 +#: js/blocks/DrumBlocks.js:75 +msgid "drum name" msgstr "" -#: js/block.js:1568 -#: js/RhythmBlocks.js:148 -msgid "milliseconds" +#: js/activity.js:2262 +#: js/blocks/DrumBlocks.js:119 +msgid "effects name" msgstr "" -#: js/block.js:2180 -#: js/block.js:2184 -#: js/block.js:2234 -#: js/block.js:2345 -#: js/ProgramBlocks.js:1273 -#: js/RhythmBlocks.js:712 -#: js/rhythmruler.js:834 -#: js/rhythmruler.js:961 -msgid "silence" +#: js/activity.js:2265 +msgid "wrap mode" msgstr "" -#: js/block.js:2265 -#: js/block.js:3134 -#: js/block.js:3151 -#: js/activity.js:2336 -#: js/activity.js:2387 -#: js/musicutils.js:2932 -#: js/musicutils.js:4287 -#.TRANS: the note names must be separated by single spaces -#.TRANS: the note names must be separated by single spaces -msgid "ti la sol fa mi re do" +#: js/activity.js:2268 +msgid "load file" msgstr "" -#: js/block.js:2333 -#.TRANS: scalar step -msgid "down" +#: js/activity.js:2435 +#: js/activity.js:5851 +msgid "This block is deprecated." msgstr "" -#: js/block.js:2334 -msgid "up" +#: js/activity.js:2437 +#: js/activity.js:5853 +msgid "Block cannot be found." msgstr "" -#: js/block.js:3477 -#: js/block.js:3490 -#: js/ExtrasBlocks.js:612 -msgid "Cartesian" +#: js/activity.js:2645 +msgid "Saving block artwork" msgstr "" -#: js/block.js:3478 -#: js/block.js:3491 -#: js/ExtrasBlocks.js:616 -msgid "polar" +#: js/activity.js:2656 +msgid "Erase" msgstr "" -#: js/block.js:3479 -#: js/block.js:3492 -#: js/ExtrasBlocks.js:620 -msgid "Cartesian+polar" +#: js/activity.js:2683 +#: js/activity.js:2705 +msgid "Paste" msgstr "" -#: js/block.js:3480 -#: js/block.js:3499 -#: js/ExtrasBlocks.js:649 -msgid "none" +#: js/activity.js:2687 +msgid "Save block help" msgstr "" -#: js/block.js:3493 -#: js/ExtrasBlocks.js:625 -msgid "treble" +#: js/activity.js:2772 +msgid "Jumping to the bottom of the page." msgstr "" -#: js/block.js:3494 -#: js/ExtrasBlocks.js:629 -msgid "grand staff" +#: js/activity.js:2778 +msgid "Scrolling up." msgstr "" -#: js/block.js:3495 -#: js/ExtrasBlocks.js:633 -msgid "mezzo-soprano" +#: js/activity.js:2783 +msgid "Scrolling down." msgstr "" -#: js/block.js:3496 -#: js/ExtrasBlocks.js:637 -msgid "alto" +#: js/activity.js:2788 +msgid "Extracting block" msgstr "" -#: js/block.js:3497 -#: js/ExtrasBlocks.js:641 -msgid "tenor" +#: js/activity.js:2796 +msgid "Moving block up." msgstr "" -#: js/block.js:3498 -#: js/ExtrasBlocks.js:645 -#: js/musicutils.js:736 -#: js/synthutils.js:64 -#.TRANS: musical instrument -msgid "bass" +#: js/activity.js:2817 +msgid "Moving block down." msgstr "" -#: js/block.js:4075 -msgid "Not a number" +#: js/activity.js:2838 +msgid "Moving block left." msgstr "" -#: js/block.js:4082 -msgid "Octave value must be between 1 and 10." +#: js/activity.js:2855 +msgid "Moving block right." msgstr "" -#: js/block.js:4090 -msgid "Numbers can have at most 10 digits." +#: js/activity.js:2870 +msgid "Jump to home position." msgstr "" -#: js/notation.js:353 -msgid "Lilypond cannot process pickup of " +#: js/activity.js:2897 +msgid "Hide blocks" msgstr "" -#: js/turtledefs.js:40 -#.TRANS: put the URL to the guide here, e.g., https://github.com/sugarlabs/turtleblocksjs/tree/master/guide/README.md -msgid "guide url" +#: js/activity.js:4500 +msgid "Click the run button to run the project." msgstr "" -#: js/turtledefs.js:85 -#: js/turtledefs.js:437 -msgid "Turtle Blocks is a Logo-inspired turtle that draws colorful pictures with snap-together visual-programming blocks." +#: js/activity.js:5692 +msgid "Show/hide block" msgstr "" -#: js/turtledefs.js:118 -#: js/turtledefs.js:220 -msgid "search" +#: js/activity.js:5698 +msgid "Expand/collapse blocks" msgstr "" -#: js/turtledefs.js:120 -#: js/turtledefs.js:222 -#: js/WidgetBlocks.js:437 -#: js/MeterBlocks.js:1343 -#.TRANS: musical meter (time signature), e.g., 4:4 -msgid "meter" +#: js/activity.js:5976 +msgid "Could not parse JSON input." msgstr "" -#: js/turtledefs.js:122 -#: js/turtledefs.js:224 -msgid "intervals" +#: js/activity.js:6475 +#: js/activity.js:6580 +#: js/activity.js:6631 +msgid "Cannot load project from the file. Please check the file type." msgstr "" -#: js/turtledefs.js:124 -#: js/turtledefs.js:226 -msgid "ornament" +#: js/activity.js:6917 +msgid "Invalid parameters" msgstr "" -#: js/turtledefs.js:125 -#: js/turtledefs.js:227 -#: js/VolumeBlocks.js:362 -#: js/VolumeBlocks.js:502 -#: js/VolumeBlocks.js:545 -msgid "volume" +#: js/blocks.js:1212 +#: js/blocks.js:3444 +#: js/blocks.js:3834 +#: js/blocks.js:3865 +#: js/blocks.js:3914 +#: js/blocks.js:3949 +#: js/blocks.js:6586 +#: js/palette.js:509 +#: js/palette.js:638 +#: js/palette.js:1105 +#: js/blocks/BoxesBlocks.js:282 +#: js/blocks/BoxesBlocks.js:285 +#: js/blocks/BoxesBlocks.js:405 +#: js/blocks/BoxesBlocks.js:594 +msgid "box" msgstr "" -#: js/turtledefs.js:129 -#: js/turtledefs.js:231 -msgid "boxes" +#: js/blocks.js:1713 +msgid "Consider breaking this stack into parts." msgstr "" -#: js/turtledefs.js:130 -#: js/turtledefs.js:232 -msgid "widgets" +#: js/blocks.js:2472 +#: js/palette.js:653 +#: js/blocks/MediaBlocks.js:602 +msgid "open file" msgstr "" -#: js/turtledefs.js:131 -#: js/turtledefs.js:233 -#: js/phrasemaker.js:824 -msgid "graphics" +#: js/blocks.js:3247 +#: js/palette.js:574 +#: js/blocks/MediaBlocks.js:892 +#: js/blocks/MediaBlocks.js:963 +msgid "text" +msgstr "besedilo" + +#: js/blocks.js:3443 +#: js/palette.js:641 +#: js/palette.js:642 +#: js/blocks/BoxesBlocks.js:514 +msgid "store in box" msgstr "" -#: js/turtledefs.js:134 -#: js/turtledefs.js:236 -msgid "boolean" +#: js/blocks.js:3448 +#: js/blocks.js:3888 +#: js/blocks.js:3923 +#: js/blocks.js:3958 +#: js/blocks.js:5862 +#: js/blocks.js:5883 +#: js/blocks/BoxesBlocks.js:772 +msgid "box1" msgstr "" -#: js/turtledefs.js:137 -#: js/turtledefs.js:239 -#: js/HeapBlocks.js:59 -#: js/status.js:147 -msgid "heap" +#: js/blocks.js:3450 +#: js/blocks.js:3890 +#: js/blocks.js:3925 +#: js/blocks.js:3960 +#: js/blocks.js:5864 +#: js/blocks.js:5885 +#: js/blocks/BoxesBlocks.js:663 +msgid "box2" msgstr "" -#: js/turtledefs.js:138 -#: js/turtledefs.js:240 -#: js/ProgramBlocks.js:495 -#: js/DictBlocks.js:142 -msgid "dictionary" +#: js/blocks.js:4122 +#: js/palette.js:639 +#: js/palette.js:644 +#: js/palette.js:1041 +#: js/blocks/BoxesBlocks.js:591 +msgid "store in" msgstr "" -#: js/turtledefs.js:139 -#: js/turtledefs.js:241 -msgid "ensemble" +#: js/blocks.js:4122 +#: js/blocks/BoxesBlocks.js:595 +#: js/blocks/DictBlocks.js:215 +#: js/blocks/DictBlocks.js:289 +#: js/blocks/EnsembleBlocks.js:391 +#: js/blocks/EnsembleBlocks.js:402 +#: js/blocks/MediaBlocks.js:746 +#: js/blocks/PitchBlocks.js:656 +#: js/blocks/PitchBlocks.js:934 +#: js/blocks/PitchBlocks.js:1866 +#: js/blocks/ProgramBlocks.js:390 +#: js/blocks/ProgramBlocks.js:495 +#: js/blocks/ProgramBlocks.js:658 +#: js/blocks/ToneBlocks.js:1025 +msgid "name" msgstr "" -#: js/turtledefs.js:140 -#: js/turtledefs.js:242 -msgid "extras" +#: js/blocks.js:4122 +#: js/blocks/BoxesBlocks.js:75 +#: js/blocks/BoxesBlocks.js:595 +#: js/blocks/DictBlocks.js:289 +#: js/blocks/DictBlocks.js:430 +#: js/blocks/HeapBlocks.js:544 +#: js/blocks/RhythmBlocks.js:1130 +msgid "value" msgstr "" -#: js/turtledefs.js:142 -#: js/turtledefs.js:244 -#.TRANS: program as in computer program -#.TRANS: program as in computer program -msgid "program" +#: js/blocks.js:4465 +msgid "Forever loop detected inside a note value block. Unexpected things may happen." msgstr "" -#: js/turtledefs.js:143 -#: js/turtledefs.js:245 -msgid "my blocks" +#: js/blocks.js:4988 +msgid "There is no block selected." msgstr "" -#: js/turtledefs.js:185 -#: js/turtledefs.js:281 -msgid "artwork" +#: js/blocks.js:5091 +#: js/blocks/MediaBlocks.js:888 +msgid "show" msgstr "" -#: js/turtledefs.js:185 -#: js/turtledefs.js:281 -msgid "logic" +#: js/blocks.js:5094 +#: js/blocks/MediaBlocks.js:803 +#.TRANS: Avatar is the image used to determine the appearance of the mouse. +msgid "avatar" msgstr "" -#: js/turtledefs.js:185 -#: js/turtledefs.js:281 -msgid "music" +#: js/blocks.js:5097 +#: js/blocks/ToneBlocks.js:1010 +#: js/widgets/sampler.js:975 +#.TRANS: The sound sample that the user uploads. +msgid "sample" msgstr "" -#: js/turtledefs.js:187 -#: js/turtledefs.js:463 -msgid "Music Blocks is a collection of tools for exploring fundamental musical concepts in a fun way." +#: js/lilypond.js:606 +msgid "brown rat" msgstr "" -#: js/turtledefs.js:436 -msgid "Welcome to Turtle Blocks" +#: js/lilypond.js:607 +msgid "mole" msgstr "" -#: js/turtledefs.js:438 -#: js/turtledefs.js:465 -#: js/turtledefs.js:774 -#: js/turtledefs.js:805 -msgid "The current version is" +#: js/lilypond.js:608 +msgid "chipmunk" msgstr "" -#: js/turtledefs.js:446 -#: js/turtledefs.js:483 -msgid "Click the run button to run the project in fast mode." +#: js/lilypond.js:609 +msgid "red squirrel" msgstr "" -#: js/turtledefs.js:452 -msgid "Stop the turtle." +#: js/lilypond.js:610 +msgid "guinea pig" msgstr "" -#: js/turtledefs.js:454 -#: js/turtledefs.js:491 -msgid "You can also type Alt-S to stop." +#: js/lilypond.js:611 +msgid "capybara" msgstr "" -#: js/turtledefs.js:462 -#: js/help.js:333 -msgid "Welcome to Music Blocks" +#: js/lilypond.js:612 +msgid "coypu" msgstr "" -#: js/turtledefs.js:472 -#: js/help.js:334 -msgid "Meet Mr. Mouse!" +#: js/lilypond.js:613 +msgid "black rat" msgstr "" -#: js/turtledefs.js:473 -msgid "Mr Mouse is our Music Blocks conductor." +#: js/lilypond.js:614 +msgid "grey squirrel" msgstr "" -#: js/turtledefs.js:475 -msgid "Mr Mouse encourages you to explore Music Blocks." +#: js/lilypond.js:615 +msgid "flying squirrel" msgstr "" -#: js/turtledefs.js:477 -msgid "Let us start our tour!" +#: js/lilypond.js:616 +msgid "bat" msgstr "" -#: js/turtledefs.js:489 -msgid "Stop the music (and the mice)." +#: js/lilypond.js:749 +#: js/lilypond.js:913 +#: js/lilypond.js:951 +#: js/blocks/ActionBlocks.js:1256 +#: js/blocks/ExtrasBlocks.js:556 +msgid "start drum" msgstr "" -#: js/turtledefs.js:499 -msgid "Record your project as video." +#: js/logo.js:61 +msgid "Not a valid pitch name" msgstr "" -#: js/turtledefs.js:505 -msgid "Toggle Fullscreen mode." +#: js/logo.js:507 +#: js/blocks/ProgramBlocks.js:258 +#: js/blocks/ProgramBlocks.js:427 +msgid "You must select a file." msgstr "" -#: js/turtledefs.js:511 -msgid "Initialize a new project." +#: js/logo.js:1696 +msgid "Playback is ready." msgstr "" -#: js/turtledefs.js:517 -msgid "You can also load projects from the file system." +#: js/macros.js:711 +#: js/utils/musicutils.js:1162 +#: js/utils/synthutils.js:202 +#.TRANS: animal sound effect +msgid "duck" msgstr "" -#: js/turtledefs.js:522 -#: js/StringHelper.js:46 -msgid "Delete" +#: js/notation.js:353 +msgid "Lilypond cannot process pickup of " msgstr "" -#: js/turtledefs.js:523 -msgid "To delete a block, just right-click on it, then you will be able to see the delete option" +#: js/palette.js:571 +msgid "grid" msgstr "" -#: js/turtledefs.js:528 -#: js/activity.js:2270 -#: js/LocalCard.js:31 -msgid "Copy" +#: js/palette.js:580 +msgid "effect" msgstr "" -#: js/turtledefs.js:529 -msgid "To copy a block, just right-click on it, then you will be able to see the copy option" +#: js/palette.js:586 +msgid "sargam" msgstr "" -#: js/turtledefs.js:535 -msgid "To extract a block, just right-click on it, then you will be able to see the extract option" +#: js/palette.js:601 +#: js/blocks/PitchBlocks.js:1209 +msgid "custom pitch" msgstr "" -#: js/turtledefs.js:542 -#: js/turtledefs.js:552 -#: js/turtledefs.js:573 -msgid "Save your project to a file." +#: js/palette.js:609 +msgid "accidental" msgstr "" -#: js/turtledefs.js:549 -#: js/turtledefs.js:570 -msgid "save" +#: js/palette.js:633 +#: js/blocks/PitchBlocks.js:405 +msgid "pitch converter" msgstr "" -#: js/turtledefs.js:556 -#: js/turtledefs.js:577 -msgid "Save graphics from your project to as SVG." +#: js/piemenus.js:200 +#: js/utils/musicutils.js:1187 +#: js/utils/musicutils.js:1207 +#: js/widgets/musickeyboard.js:2341 +#: js/widgets/phrasemaker.js:1908 +#: js/widgets/sampler.js:810 +#.TRANS: double sharp is a music term related to pitch +msgid "double sharp" msgstr "" -#: js/turtledefs.js:560 -#: js/turtledefs.js:581 -msgid "Save graphics from your project as PNG." +#: js/piemenus.js:201 +#: js/utils/musicutils.js:1185 +#: js/utils/musicutils.js:1208 +#: js/blocks/PitchBlocks.js:1539 +#: js/turtleactions/PitchActions.js:323 +#: js/widgets/musickeyboard.js:2342 +#: js/widgets/phrasemaker.js:1909 +#: js/widgets/sampler.js:811 +#.TRANS: sharp is a music term related to pitch +#.TRANS: sharp is a half-step up in pitch +msgid "sharp" msgstr "" -#: js/turtledefs.js:564 -#: js/turtledefs.js:597 -msgid "Save block artwork as an SVG file." +#: js/piemenus.js:202 +#: js/utils/musicutils.js:1183 +#: js/utils/musicutils.js:1209 +#: js/widgets/musickeyboard.js:2343 +#: js/widgets/phrasemaker.js:1910 +#: js/widgets/sampler.js:812 +#.TRANS: natural is a music term related to pitch +msgid "natural" msgstr "" -#: js/turtledefs.js:585 -msgid "Save audio from your project as WAV." +#: js/piemenus.js:203 +#: js/utils/musicutils.js:1181 +#: js/utils/musicutils.js:1210 +#: js/blocks/PitchBlocks.js:1498 +#: js/turtleactions/PitchActions.js:326 +#: js/widgets/musickeyboard.js:2344 +#: js/widgets/phrasemaker.js:1911 +#: js/widgets/sampler.js:813 +#.TRANS: flat is a music term related to pitch +#.TRANS: flat is a half-step down in pitch +msgid "flat" msgstr "" -#: js/turtledefs.js:589 -msgid "Save your project to as an ABC file." +#: js/piemenus.js:204 +#: js/utils/musicutils.js:1179 +#: js/utils/musicutils.js:1211 +#: js/widgets/musickeyboard.js:2345 +#: js/widgets/phrasemaker.js:1912 +#: js/widgets/sampler.js:814 +#.TRANS: double flat is a music term related to pitch +msgid "double flat" msgstr "" -#: js/turtledefs.js:593 -msgid "Save your project to as a Lilypond file." +#: js/piemenus.js:2864 +#: js/utils/musicutils.js:1006 +#: js/blocks/PitchBlocks.js:1385 +#.TRANS: unison is a music term related to intervals +#.TRANS: unison means the note is the same as the current note +msgid "unison" msgstr "" -#: js/turtledefs.js:604 -msgid "Load samples from server" +#: js/piemenus.js:3018 +#: js/piemenus.js:3091 +#: js/utils/musicutils.js:1014 +#: js/utils/musicutils.js:1189 +#: js/utils/musicutils.js:1326 +#.TRANS: major is a music term related to intervals and mode +msgid "major" msgstr "" -#: js/turtledefs.js:605 -msgid "This button opens a viewer for loading example projects." +#: js/piemenus.js:3018 +#: js/piemenus.js:3091 +#: js/utils/musicutils.js:1032 +#.TRANS: modal scale for music +msgid "ionian" msgstr "" -#: js/turtledefs.js:611 -msgid "Palette buttons" +#: js/piemenus.js:3020 +#: js/piemenus.js:3095 +#: js/utils/musicutils.js:1012 +#: js/utils/musicutils.js:1190 +#: js/utils/musicutils.js:1323 +#.TRANS: minor is a music term related to intervals and mode +msgid "minor" msgstr "" -#: js/turtledefs.js:612 -msgid "This toolbar contains the palette buttons including Rhythm Pitch Tone Action and more." +#: js/piemenus.js:3020 +#: js/piemenus.js:3095 +#: js/utils/musicutils.js:1042 +#.TRANS: modal scale for music +msgid "aeolian" msgstr "" -#: js/turtledefs.js:614 -msgid "Click to show the palettes of blocks and drag blocks from the palettes onto the canvas to use them." +#: js/piemenus.js:3410 +msgid "Duplicate" msgstr "" -#: js/turtledefs.js:620 -msgid "Cartesian/Polar" +#: js/piemenus.js:3412 +msgid "Move to trash" msgstr "" -#: js/turtledefs.js:621 -msgid "Show or hide a coordinate grid." +#: js/piemenus.js:3413 +#: js/widgets/timbre.js:968 +#: planet/js/StringHelper.js:69 +msgid "Close" msgstr "" -#: js/turtledefs.js:627 -msgid "Clear the screen and return the mice to their initial positions." +#: js/piemenus.js:3419 +msgid "Save stack" msgstr "" -#: js/turtledefs.js:633 -msgid "Collapse the graphics window." +#: js/piemenus.js:3449 +msgid "In order to copy a sample, you must reload the widget, import the sample again, and export it." msgstr "" -#: js/turtledefs.js:638 -#: js/activity.js:4256 -#: js/activity.js:4256 -msgid "Home" +#: js/piemenus.js:3812 +msgid "You have chosen key " msgstr "" -#: js/turtledefs.js:639 -msgid "Return all blocks to the center of the screen." +#: js/piemenus.js:3816 +msgid " for your pitch preview." msgstr "" -#: js/turtledefs.js:644 -msgid "Show/hide blocks" +#: js/turtle-singer.js:1363 +#.TRANS: partials are weighted components in a harmonic series +msgid "You must have at least one Partial block inside of a Weighted-partial block" msgstr "" -#: js/turtledefs.js:645 -msgid "Hide or show the blocks and the palettes." +#: js/turtle-singer.js:2077 +msgid "synth cannot play chords." msgstr "" -#: js/turtledefs.js:650 -msgid "Expand/collapse collapsable blocks" +#: js/utils/musicutils.js:505 +#: js/utils/musicutils.js:645 +#: js/widgets/pitchdrummatrix.js:228 +#: js/widgets/musickeyboard.js:2885 +msgid "rest" msgstr "" -#: js/turtledefs.js:651 -msgid "Expand or collapse start and action stacks." +#: js/utils/musicutils.js:689 +msgid "Perfect unison" msgstr "" -#: js/turtledefs.js:658 -#: js/activity.js:4265 -msgid "Decrease block size" +#: js/utils/musicutils.js:689 +msgid "Diminished second" msgstr "" -#: js/turtledefs.js:659 -msgid "Decrease the size of the blocks." +#: js/utils/musicutils.js:690 +msgid "Minor second" msgstr "" -#: js/turtledefs.js:664 -#: js/activity.js:4267 -msgid "Increase block size" +#: js/utils/musicutils.js:690 +msgid "Augmented unison" msgstr "" -#: js/turtledefs.js:665 -msgid "Increase the size of the blocks." +#: js/utils/musicutils.js:691 +msgid "Major second" msgstr "" -#: js/turtledefs.js:670 -msgid "Expand/collapse option toolbar" +#: js/utils/musicutils.js:691 +msgid "Diminished third" msgstr "" -#: js/turtledefs.js:671 -msgid "Click this button to expand or collapse the auxillary toolbar." +#: js/utils/musicutils.js:692 +msgid "Minor third" msgstr "" -#: js/turtledefs.js:676 -msgid "Run slow" +#: js/utils/musicutils.js:692 +msgid "Augmented second" msgstr "" -#: js/turtledefs.js:677 -msgid "Click to run the project in slow mode." +#: js/utils/musicutils.js:693 +msgid "Major third" msgstr "" -#: js/turtledefs.js:683 -msgid "Click to run the project step by step." +#: js/utils/musicutils.js:693 +msgid "Diminished fourth" msgstr "" -#: js/turtledefs.js:690 -msgid "Display statistics about your Music project." +#: js/utils/musicutils.js:694 +msgid "Perfect fourth" msgstr "" -#: js/turtledefs.js:697 -msgid "Delete a selected plugin." +#: js/utils/musicutils.js:694 +msgid "Augmented third" msgstr "" -#: js/turtledefs.js:704 -msgid "Enable scrolling" +#: js/utils/musicutils.js:695 +msgid "Diminished fifth" msgstr "" -#: js/turtledefs.js:705 -msgid "You can scroll the blocks on the canvas." +#: js/utils/musicutils.js:695 +msgid "Augmented fourth" msgstr "" -#: js/turtledefs.js:714 -msgid "Wrap Turtle" +#: js/utils/musicutils.js:696 +msgid "Perfect fifth" msgstr "" -#: js/turtledefs.js:715 -msgid "Turn Turtle wrapping On or Off." +#: js/utils/musicutils.js:696 +msgid "Diminished sixth" msgstr "" -#: js/turtledefs.js:725 -msgid "Restore blocks from the trash." +#: js/utils/musicutils.js:697 +msgid "Minor sixth" msgstr "" -#: js/turtledefs.js:732 -msgid "Switch mode" +#: js/utils/musicutils.js:697 +msgid "Augmented fifth" msgstr "" -#: js/turtledefs.js:733 -msgid "Switch between beginner and advance modes." +#: js/utils/musicutils.js:698 +msgid "Major sixth" msgstr "" -#: js/turtledefs.js:739 -msgid "Select your language preference." +#: js/utils/musicutils.js:698 +msgid "Diminished seventh" msgstr "" -#: js/turtledefs.js:745 -msgid "Keyboard shortcuts" +#: js/utils/musicutils.js:699 +msgid "Minor seventh" msgstr "" -#: js/turtledefs.js:746 -msgid "You can type d to create a do block and r to create a re block etc." +#: js/utils/musicutils.js:699 +msgid "Augmented sixth" msgstr "" -#: js/turtledefs.js:753 -msgid "Show these messages." +#: js/utils/musicutils.js:700 +msgid "Major seventh" msgstr "" -#: js/turtledefs.js:759 -#: js/turtledefs.js:790 -#: js/help.js:335 -msgid "Guide" +#: js/utils/musicutils.js:700 +msgid "Diminished octave" msgstr "" -#: js/turtledefs.js:760 -msgid "A detailed guide to Turtle Blocks is available." +#: js/utils/musicutils.js:701 +msgid "Perfect octave" msgstr "" -#: js/turtledefs.js:764 -msgid "Turtle Blocks Guide" +#: js/utils/musicutils.js:701 +msgid "Augmented seventh" msgstr "" -#: js/turtledefs.js:767 -#: js/turtledefs.js:798 -#: js/help.js:336 -msgid "About" +#: js/utils/musicutils.js:702 +msgid "Minor ninth" msgstr "" -#: js/turtledefs.js:768 -msgid "Turtle Blocks is an open source collection of tools for exploring musical concepts." +#: js/utils/musicutils.js:702 +msgid "Augmented octave" msgstr "" -#: js/turtledefs.js:770 -msgid "A full list of contributors can be found in the Turtle Blocks GitHub repository." +#: js/utils/musicutils.js:703 +msgid "Major ninth" msgstr "" -#: js/turtledefs.js:772 -msgid "Turtle Blocks is licensed under the AGPL." +#: js/utils/musicutils.js:703 +msgid "Diminished tenth" msgstr "" -#: js/turtledefs.js:780 -msgid "Turtle Blocks GitHub repository" +#: js/utils/musicutils.js:704 +msgid "Minor tenth" msgstr "" -#: js/turtledefs.js:783 -#: js/turtledefs.js:814 -#: js/help.js:337 -#: js/help.js:359 -msgid "Congratulations." +#: js/utils/musicutils.js:704 +msgid "Augmented ninth" msgstr "" -#: js/turtledefs.js:784 -msgid "You have finished the tour. Please enjoy Turtle Blocks!" +#: js/utils/musicutils.js:705 +msgid "Major tenth" msgstr "" -#: js/turtledefs.js:791 -msgid "A detailed guide to Music Blocks is available." +#: js/utils/musicutils.js:705 +msgid "Diminished eleventh" msgstr "" -#: js/turtledefs.js:795 -#: js/SaveInterface.js:76 -msgid "Music Blocks Guide" +#: js/utils/musicutils.js:706 +msgid "Perfect eleventh" msgstr "" -#: js/turtledefs.js:799 -msgid "Music Blocks is an open source collection of tools for exploring musical concepts." +#: js/utils/musicutils.js:706 +msgid "Augmented tenth" msgstr "" -#: js/turtledefs.js:801 -msgid "A full list of contributors can be found in the Music Blocks GitHub repository." +#: js/utils/musicutils.js:707 +msgid "Diminished twelfth" msgstr "" -#: js/turtledefs.js:803 -msgid "Music Blocks is licensed under the AGPL." +#: js/utils/musicutils.js:707 +msgid "Augmented eleventh" msgstr "" -#: js/turtledefs.js:811 -msgid "Music Blocks GitHub repository" +#: js/utils/musicutils.js:708 +msgid "Perfect twelfth" msgstr "" -#: js/turtledefs.js:815 -msgid "You have finished the tour. Please enjoy Music Blocks!" +#: js/utils/musicutils.js:708 +msgid "Diminished thirteenth" msgstr "" -#: js/activity.js:369 -msgid "Search for blocks" +#: js/utils/musicutils.js:709 +msgid "Minor thirteenth" msgstr "" -#: js/activity.js:1145 -msgid "Refresh your browser to change to advanced mode." +#: js/utils/musicutils.js:709 +msgid "Augmented fifth, plus an octave" msgstr "" -#: js/activity.js:1150 -msgid "Refresh your browser to change to beginner mode." +#: js/utils/musicutils.js:710 +msgid "Major thirteenth" msgstr "" -#: js/activity.js:1184 -msgid "Catching mice" +#: js/utils/musicutils.js:710 +msgid "Diminished seventh, plus an octave" msgstr "" -#: js/activity.js:1185 -msgid "Cleaning the instruments" +#: js/utils/musicutils.js:838 +#.TRANS: ordinal number. Please keep exactly one space between each number. +msgid "1st 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th" msgstr "" -#: js/activity.js:1186 -msgid "Testing key pieces" +#: js/utils/musicutils.js:1008 +#: js/utils/musicutils.js:1191 +#: js/utils/musicutils.js:1325 +#.TRANS: augmented is a music term related to intervals +msgid "augmented" msgstr "" -#: js/activity.js:1187 -msgid "Sight-reading" +#: js/utils/musicutils.js:1010 +#: js/utils/musicutils.js:1192 +#: js/utils/musicutils.js:1324 +#.TRANS: diminished is a music term related to intervals and mode +msgid "diminished" msgstr "" -#: js/activity.js:1188 -msgid "Combining math and music" +#: js/utils/musicutils.js:1016 +#: js/utils/musicutils.js:1322 +#: js/blocks/IntervalsBlocks.js:649 +#: js/turtleactions/IntervalsActions.js:120 +#: js/turtleactions/IntervalsActions.js:124 +#.TRANS: perfect is a music term related to intervals +msgid "perfect" +msgstr "" + +#: js/utils/musicutils.js:1018 +#.TRANS: twelve semi-tone scale for music +msgid "chromatic" msgstr "" -#: js/activity.js:1189 -msgid "Generating more blocks" +#: js/utils/musicutils.js:1019 +msgid "algerian" msgstr "" -#: js/activity.js:1190 -msgid "Do Re Mi Fa Sol La Ti Do" +#: js/utils/musicutils.js:1020 +msgid "spanish" msgstr "" -#: js/activity.js:1191 -msgid "Tuning string instruments" +#: js/utils/musicutils.js:1022 +#.TRANS: modal scale in music +msgid "octatonic" msgstr "" -#: js/activity.js:1192 -msgid "Pressing random keys" +#: js/utils/musicutils.js:1024 +#.TRANS: harmonic major scale in music +msgid "harmonic major" msgstr "" -#: js/activity.js:1351 -msgid "plugins will be removed upon restart." +#: js/utils/musicutils.js:1026 +#.TRANS: natural minor scales in music +msgid "natural minor" msgstr "" -#: js/activity.js:1360 -msgid "show Cartesian" +#: js/utils/musicutils.js:1028 +#.TRANS: harmonic minor scale in music +msgid "harmonic minor" msgstr "" -#: js/activity.js:1842 -msgid "output tools" +#: js/utils/musicutils.js:1030 +#.TRANS: melodic minor scale in music +msgid "melodic minor" msgstr "" -#: js/activity.js:1845 -msgid "custom note" +#: js/utils/musicutils.js:1034 +#.TRANS: modal scale for music +msgid "dorian" msgstr "" -#: js/activity.js:1848 -msgid "accidental name" +#: js/utils/musicutils.js:1036 +#.TRANS: modal scale for music +msgid "phrygian" msgstr "" -#: js/activity.js:1851 -#: js/PitchBlocks.js:855 -msgid "east indian solfege" +#: js/utils/musicutils.js:1038 +#.TRANS: modal scale for music +msgid "lydian" msgstr "" -#: js/activity.js:1854 -#: js/PitchBlocks.js:869 -msgid "note name" +#: js/utils/musicutils.js:1040 +#.TRANS: modal scale for music +msgid "mixolydian" msgstr "" -#: js/activity.js:1857 -#: js/IntervalsBlocks.js:94 -msgid "temperament name" +#: js/utils/musicutils.js:1044 +#.TRANS: modal scale for music +msgid "locrian" msgstr "" -#: js/activity.js:1863 -msgid "chord name" +#: js/utils/musicutils.js:1046 +#.TRANS: minor jazz scale for music +msgid "jazz minor" msgstr "" -#: js/activity.js:1869 -msgid "filter type" +#: js/utils/musicutils.js:1048 +#.TRANS: bebop scale for music +msgid "bebop" msgstr "" -#: js/activity.js:1872 -msgid "oscillator type" +#: js/utils/musicutils.js:1049 +msgid "arabic" msgstr "" -#: js/activity.js:1878 -#: js/DrumBlocks.js:32 -msgid "noise name" +#: js/utils/musicutils.js:1050 +msgid "byzantine" msgstr "" -#: js/activity.js:1881 -#: js/DrumBlocks.js:75 -msgid "drum name" +#: js/utils/musicutils.js:1052 +#.TRANS: musical scale for music by Verdi +msgid "enigmatic" msgstr "" -#: js/activity.js:1884 -#: js/DrumBlocks.js:119 -msgid "effects name" +#: js/utils/musicutils.js:1053 +msgid "ethiopian" msgstr "" -#: js/activity.js:1887 -msgid "wrap mode" +#: js/utils/musicutils.js:1055 +#.TRANS: Ethiopic scale for music +msgid "geez" msgstr "" -#: js/activity.js:1890 -msgid "load file" +#: js/utils/musicutils.js:1056 +msgid "hindu" msgstr "" -#: js/activity.js:2056 -msgid "This block is deprecated." +#: js/utils/musicutils.js:1057 +msgid "hungarian" msgstr "" -#: js/activity.js:2058 -msgid "Block cannot be found." +#: js/utils/musicutils.js:1059 +#.TRANS: minor Romanian scale for music +msgid "romanian minor" msgstr "" -#: js/activity.js:2266 -msgid "Saving block artwork" +#: js/utils/musicutils.js:1060 +msgid "spanish gypsy" msgstr "" -#: js/activity.js:2277 -msgid "Erase" +#: js/utils/musicutils.js:1062 +#.TRANS: musical scale for Mid-Eastern music +msgid "maqam" msgstr "" -#: js/activity.js:2301 -#: js/activity.js:2323 -msgid "Paste" +#: js/utils/musicutils.js:1064 +#.TRANS: minor blues scale for music +msgid "minor blues" msgstr "" -#: js/activity.js:2305 -msgid "Save block help" +#: js/utils/musicutils.js:1066 +#.TRANS: major blues scale for music +msgid "major blues" msgstr "" -#: js/activity.js:2390 -msgid "Jumping to the bottom of the page." +#: js/utils/musicutils.js:1067 +msgid "whole tone" msgstr "" -#: js/activity.js:2396 -msgid "Scrolling up." +#: js/utils/musicutils.js:1069 +#.TRANS: pentatonic is a general term that means "five note scale". This scale is typically known as "minor pentatonic" +msgid "minor pentatonic" msgstr "" -#: js/activity.js:2401 -msgid "Scrolling down." +#: js/utils/musicutils.js:1071 +#.TRANS: pentatonic is a general term that means "five note scale". This scale is typically known as "major pentatonic" +msgid "major pentatonic" msgstr "" -#: js/activity.js:2406 -msgid "Extracting block" +#: js/utils/musicutils.js:1072 +msgid "chinese" msgstr "" -#: js/activity.js:2414 -msgid "Moving block up." +#: js/utils/musicutils.js:1073 +msgid "egyptian" msgstr "" -#: js/activity.js:2435 -msgid "Moving block down." +#: js/utils/musicutils.js:1075 +#.TRANS: https://en.wikipedia.org/wiki/Hirajoshi_scale NOTE: There are three different versions of this scale +msgid "hirajoshi" msgstr "" -#: js/activity.js:2456 -msgid "Moving block left." +#: js/utils/musicutils.js:1076 +msgid "Japan" msgstr "" -#: js/activity.js:2473 -msgid "Moving block right." +#: js/utils/musicutils.js:1078 +#.TRANS: https://en.wikipedia.org/wiki/In_scale and https://en.wikipedia.org/wiki/Sakura_Sakura +msgid "in" msgstr "" -#: js/activity.js:2488 -msgid "Jump to home position." +#: js/utils/musicutils.js:1080 +#.TRANS: https://en.wikipedia.org/wiki/Miny%C5%8D_scale +msgid "minyo" msgstr "" -#: js/activity.js:2515 -msgid "Hide blocks" +#: js/utils/musicutils.js:1082 +#.TRANS: Italian mathematician +msgid "fibonacci" msgstr "" -#: js/activity.js:3389 -msgid "Click the run button to run the project." +#: js/utils/musicutils.js:1083 +#: js/utils/musicutils.js:1134 +#: js/utils/musicutils.js:1177 +#: js/utils/musicutils.js:1199 +#: js/utils/synthutils.js:134 +#: js/blocks/IntervalsBlocks.js:1124 +#: js/blocks/ToneBlocks.js:946 +#: js/blocks/VolumeBlocks.js:411 +#: js/blocks/WidgetBlocks.js:399 +#: js/blocks/WidgetBlocks.js:404 +#: js/turtleactions/VolumeActions.js:218 +#: js/widgets/modewidget.js:919 +#.TRANS: customize voice +msgid "custom" msgstr "" -#: js/activity.js:3456 -#: js/SaveInterface.js:131 -#: js/SaveInterface.js:204 -#: js/SaveInterface.js:262 -#: js/SaveInterface.js:389 -#: js/SaveInterface.js:417 -#: js/ProjectStorage.js:27 -#: js/GlobalPlanet.js:467 -#: js/GlobalPlanet.js:469 -#: js/GlobalPlanet.js:495 -#.TRANS: default project title when saving as Lilypond -msgid "My Project" +#: js/utils/musicutils.js:1085 +#: js/utils/musicutils.js:1531 +#: js/blocks/WidgetBlocks.js:176 +#.TRANS: highpass filter +msgid "highpass" msgstr "" -#: js/activity.js:4261 -msgid "Show/hide block" +#: js/utils/musicutils.js:1087 +#: js/utils/musicutils.js:1532 +#.TRANS: lowpass filter +msgid "lowpass" msgstr "" -#: js/activity.js:4263 -msgid "Expand/collapse blocks" +#: js/utils/musicutils.js:1089 +#: js/utils/musicutils.js:1533 +#.TRANS: bandpass filter +msgid "bandpass" msgstr "" -#: js/activity.js:4381 -msgid "Could not parse JSON input." +#: js/utils/musicutils.js:1091 +#: js/utils/musicutils.js:1534 +#.TRANS: high-shelf filter +msgid "highshelf" msgstr "" -#: js/activity.js:4684 -#: js/activity.js:4771 -#: js/activity.js:4821 -msgid "Cannot load project from the file. Please check the file type." +#: js/utils/musicutils.js:1093 +#: js/utils/musicutils.js:1535 +#.TRANS: low-shelf filter +msgid "lowshelf" msgstr "" -#: js/activity.js:5051 -msgid "Invalid parameters" +#: js/utils/musicutils.js:1095 +#: js/utils/musicutils.js:1536 +#.TRANS: notch-shelf filter +msgid "notch" msgstr "" -#: js/turtle-singer.js:1334 -#.TRANS: partials are weighted components in a harmonic series -msgid "You must have at least one Partial block inside of a Weighted-partial block" +#: js/utils/musicutils.js:1097 +#: js/utils/musicutils.js:1537 +#.TRANS: all-pass filter +msgid "allpass" msgstr "" -#: js/turtle-singer.js:2048 -msgid "synth cannot play chords." +#: js/utils/musicutils.js:1099 +#: js/utils/musicutils.js:1538 +#.TRANS: peaking filter +msgid "peaking" msgstr "" -#: js/lilypond.js:614 -msgid "brown rat" +#: js/utils/musicutils.js:1100 +#: js/utils/musicutils.js:1546 +#: js/utils/synthutils.js:126 +#: js/blocks/PitchBlocks.js:85 +#.TRANS: sine wave +msgid "sine" msgstr "" -#: js/lilypond.js:615 -msgid "mole" +#: js/utils/musicutils.js:1101 +#: js/utils/musicutils.js:1547 +#: js/utils/synthutils.js:128 +#: js/blocks/PitchBlocks.js:39 +#.TRANS: square wave +msgid "square" msgstr "" -#: js/lilypond.js:616 -msgid "chipmunk" +#: js/utils/musicutils.js:1102 +#: js/utils/musicutils.js:1548 +#: js/utils/synthutils.js:132 +#: js/blocks/PitchBlocks.js:62 +#: js/blocks/ToneBlocks.js:39 +#.TRANS: triangle wave +msgid "triangle" msgstr "" -#: js/lilypond.js:617 -msgid "red squirrel" +#: js/utils/musicutils.js:1103 +#: js/utils/musicutils.js:1549 +#: js/utils/synthutils.js:130 +#: js/blocks/PitchBlocks.js:108 +#.TRANS: sawtooth wave +msgid "sawtooth" msgstr "" -#: js/lilypond.js:618 -msgid "guinea pig" +#: js/utils/musicutils.js:1105 +#: js/utils/musicutils.js:1312 +#: js/blocks/PitchBlocks.js:931 +#: js/blocks/PitchBlocks.js:937 +#: js/turtleactions/PitchActions.js:469 +#.TRANS: even numbers +#.TRANS: invert based on even or odd number or musical scale +msgid "even" msgstr "" -#: js/lilypond.js:619 -msgid "capybara" +#: js/utils/musicutils.js:1107 +#: js/utils/musicutils.js:1313 +#: js/blocks/PitchBlocks.js:937 +#: js/turtleactions/PitchActions.js:471 +#.TRANS: odd numbers +msgid "odd" msgstr "" -#: js/lilypond.js:620 -msgid "coypu" +#: js/utils/musicutils.js:1108 +#: js/utils/musicutils.js:1314 +#: js/blocks/PitchBlocks.js:937 +#: js/turtleactions/PitchActions.js:473 +msgid "scalar" msgstr "" -#: js/lilypond.js:621 -msgid "black rat" +#: js/utils/musicutils.js:1109 +#: js/utils/synthutils.js:72 +#: js/blocks/VolumeBlocks.js:47 +#.TRANS: musical instrument +msgid "piano" msgstr "" -#: js/lilypond.js:622 -msgid "grey squirrel" +#: js/utils/musicutils.js:1110 +#: js/utils/synthutils.js:74 +#.TRANS: musical instrument +msgid "violin" msgstr "" -#: js/lilypond.js:623 -msgid "flying squirrel" +#: js/utils/musicutils.js:1111 +#: js/utils/synthutils.js:76 +#.TRANS: viola musical instrument +msgid "viola" msgstr "" -#: js/lilypond.js:624 -msgid "bat" +#: js/utils/musicutils.js:1112 +#: js/utils/synthutils.js:114 +#.TRANS: xylophone musical instrument +msgid "xylophone" msgstr "" -#: js/lilypond.js:757 -#: js/lilypond.js:921 -#: js/lilypond.js:959 -#: js/ActionBlocks.js:1256 -#: js/ExtrasBlocks.js:553 -msgid "start drum" +#: js/utils/musicutils.js:1113 +#: js/utils/synthutils.js:136 +#.TRANS: vibraphone musical instrument +msgid "vibraphone" msgstr "" -#: js/SaveInterface.js:59 -#: js/SaveInterface.js:61 -#: js/SaveInterface.js:93 -msgid "Music Blocks Project" +#: js/utils/musicutils.js:1114 +#: js/utils/synthutils.js:78 +#.TRANS: musical instrument +msgid "cello" msgstr "" -#: js/SaveInterface.js:63 -msgid "This project was created in Music Blocks" +#: js/utils/musicutils.js:1116 +#: js/utils/synthutils.js:82 +#.TRANS: viola musical instrument +msgid "double bass" msgstr "" -#: js/SaveInterface.js:67 -msgid "Music Blocks is a Free/Libre Software application." +#: js/utils/musicutils.js:1117 +#: js/utils/synthutils.js:84 +#: js/widgets/rhythmruler.js:2511 +#.TRANS: musical instrument +msgid "guitar" msgstr "" -#: js/SaveInterface.js:69 -msgid "The source code can be accessed at" +#: js/utils/musicutils.js:1118 +#: js/utils/synthutils.js:86 +#.TRANS: musical instrument +msgid "acoustic guitar" msgstr "" -#: js/SaveInterface.js:72 -msgid "For more information, please consult the" +#: js/utils/musicutils.js:1119 +#: js/utils/synthutils.js:88 +#.TRANS: musical instrument +msgid "flute" msgstr "" -#: js/SaveInterface.js:83 -msgid "Alternatively, open the file in Music Blocks using the Load project button." +#: js/utils/musicutils.js:1120 +#: js/utils/synthutils.js:90 +#.TRANS: musical instrument +msgid "clarinet" msgstr "" -#: js/SaveInterface.js:85 -msgid "Project Code" +#: js/utils/musicutils.js:1121 +#: js/utils/synthutils.js:92 +#.TRANS: musical instrument +msgid "saxophone" msgstr "" -#: js/SaveInterface.js:87 -msgid "This code stores data about the blocks in a project." +#: js/utils/musicutils.js:1122 +#: js/utils/synthutils.js:94 +#.TRANS: musical instrument +msgid "tuba" msgstr "" -#: js/SaveInterface.js:89 -msgid "Show" +#: js/utils/musicutils.js:1123 +#: js/utils/synthutils.js:96 +#.TRANS: musical instrument +msgid "trumpet" msgstr "" -#: js/SaveInterface.js:91 -msgid "Hide" +#: js/utils/musicutils.js:1124 +#: js/utils/synthutils.js:98 +#.TRANS: musical instrument +msgid "oboe" msgstr "" -#: js/SaveInterface.js:197 -#: js/SaveInterface.js:58 -msgid "No description provided" +#: js/utils/musicutils.js:1125 +#: js/utils/synthutils.js:100 +#.TRANS: musical instrument +msgid "trombone" msgstr "" -#: js/SaveInterface.js:332 -msgid "Your recording is in progress." +#: js/utils/musicutils.js:1126 +#: js/utils/synthutils.js:116 +#.TRANS: polytone synthesizer +msgid "electronic synth" msgstr "" -#: js/SaveInterface.js:401 -#.TRANS: File name prompt for save as Lilypond -msgid "File name" +#: js/utils/musicutils.js:1127 +#: js/utils/synthutils.js:118 +#.TRANS: simple monotone synthesizer +msgid "simple 1" msgstr "" -#: js/SaveInterface.js:403 -#: js/StringHelper.js:39 -#.TRANS: Project title prompt for save as Lilypond -msgid "Project title" +#: js/utils/musicutils.js:1128 +msgid "simple 2" msgstr "" -#: js/SaveInterface.js:405 -#.TRANS: Project title prompt for save as Lilypond -msgid "Project author" +#: js/utils/musicutils.js:1129 +msgid "simple 3" msgstr "" -#: js/SaveInterface.js:407 -#.TRANS: MIDI prompt for save as Lilypond -msgid "Include MIDI output?" +#: js/utils/musicutils.js:1130 +msgid "simple 4" msgstr "" -#: js/SaveInterface.js:409 -#.TRANS: Guitar prompt for save as Lilypond -msgid "Include guitar tablature output?" +#: js/utils/musicutils.js:1131 +#: js/utils/synthutils.js:58 +#: js/blocks/DrumBlocks.js:191 +#.TRANS: white noise synthesizer +msgid "white noise" msgstr "" -#: js/SaveInterface.js:411 -#.TRANS: Lilypond is a scripting language for generating sheet music -msgid "Save as Lilypond" +#: js/utils/musicutils.js:1132 +#: js/utils/synthutils.js:60 +#.TRANS: brown noise synthesizer +msgid "brown noise" msgstr "" -#: js/SaveInterface.js:426 -#: js/EnsembleBlocks.js:75 -#: js/EnsembleBlocks.js:154 -#: js/EnsembleBlocks.js:216 -#: js/EnsembleBlocks.js:302 -#: js/EnsembleBlocks.js:348 -#: js/EnsembleBlocks.js:389 -#: js/EnsembleBlocks.js:441 -#: js/EnsembleBlocks.js:490 -#: js/EnsembleBlocks.js:536 -#: js/EnsembleBlocks.js:583 -#: js/EnsembleBlocks.js:637 -#: js/EnsembleBlocks.js:753 -#: js/EnsembleBlocks.js:840 -#: js/EnsembleBlocks.js:899 -#: js/EnsembleBlocks.js:942 -#: js/EnsembleBlocks.js:1212 -#: js/EnsembleBlocks.js:1280 -#.TRANS: default project author when saving as Lilypond -msgid "Mr. Mouse" +#: js/utils/musicutils.js:1133 +#: js/utils/synthutils.js:62 +#.TRANS: pink noise synthesizer +msgid "pink noise" msgstr "" -#: js/SaveInterface.js:573 -msgid "The Lilypond code is copied to clipboard. You can paste it here: " +#: js/utils/musicutils.js:1135 +#: js/utils/synthutils.js:148 +#: js/widgets/rhythmruler.js:2057 +#: js/widgets/rhythmruler.js:2319 +#.TRANS: musical instrument +msgid "snare drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:50 -#: js/RhythmBlockPaletteBlocks.js:232 -#.TRANS: rhythm block -#.TRANS: translate "rhythm1" as rhythm -msgid "rhythm1" +#: js/utils/musicutils.js:1136 +#: js/utils/synthutils.js:150 +#.TRANS: musical instrument +msgid "kick drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:70 -#: js/RhythmBlockPaletteBlocks.js:251 -#: js/RhythmBlockPaletteBlocks.js:484 -#: js/RhythmBlockPaletteBlocks.js:553 -#: js/RhythmBlockPaletteBlocks.js:874 -msgid "number of notes" +#: js/utils/musicutils.js:1137 +#: js/utils/synthutils.js:152 +#.TRANS: musical instrument +msgid "tom tom" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:126 -msgid "polyphonic rhythm" +#: js/utils/musicutils.js:1138 +#: js/utils/synthutils.js:154 +#.TRANS: musical instrument +msgid "floor tom" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:218 -msgid "The Rhythm block is used to generate rhythm patterns." +#: js/utils/musicutils.js:1139 +#: js/utils/synthutils.js:156 +#.TRANS: musical instrument +msgid "bass drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:279 -msgid "1/64 note" +#: js/utils/musicutils.js:1140 +#: js/utils/synthutils.js:158 +#.TRANS: a drum made from an inverted cup +msgid "cup drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:303 -msgid "1/32 note" +#: js/utils/musicutils.js:1141 +#: js/utils/synthutils.js:160 +#.TRANS: musical instrument +msgid "darbuka drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:331 -msgid "1/16 note" +#: js/utils/musicutils.js:1142 +#: js/utils/synthutils.js:164 +#.TRANS: musical instrument +msgid "hi hat" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:359 -msgid "eighth note" +#: js/utils/musicutils.js:1143 +#: js/utils/synthutils.js:166 +#.TRANS: a small metal bell +msgid "ride bell" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:387 -msgid "quarter note" +#: js/utils/musicutils.js:1144 +#: js/utils/synthutils.js:168 +#.TRANS: musical instrument +msgid "cow bell" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:415 -msgid "half note" +#: js/utils/musicutils.js:1145 +msgid "japanese drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:443 -msgid "whole note" +#: js/utils/musicutils.js:1146 +#: js/utils/synthutils.js:174 +#.TRANS: musical instrument +msgid "japanese bell" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:481 -#: js/RhythmBlockPaletteBlocks.js:550 -#: js/RhythmBlockPaletteBlocks.js:601 -#.TRANS: A tuplet is a note value divided into irregular time values. -msgid "tuplet" +#: js/utils/musicutils.js:1147 +#: js/utils/synthutils.js:170 +#.TRANS: musical instrument +msgid "triangle bell" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:767 -msgid "septuplet" +#: js/utils/musicutils.js:1148 +#: js/utils/synthutils.js:172 +#.TRANS: musical instrument +msgid "finger cymbals" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:795 -msgid "quintuplet" +#: js/utils/musicutils.js:1149 +#: js/utils/synthutils.js:176 +#.TRANS: a musically tuned set of bells +msgid "chime" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:823 -msgid "triplet" +#: js/utils/musicutils.js:1150 +#: js/utils/synthutils.js:178 +#.TRANS: a musical instrument +msgid "gong" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:850 -msgid "simple tuplet" +#: js/utils/musicutils.js:1151 +#: js/utils/synthutils.js:180 +#.TRANS: sound effect +msgid "clang" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:860 -msgid "Tuplets are a collection of notes that get scaled to a specific duration." +#: js/utils/musicutils.js:1152 +#: js/utils/synthutils.js:182 +#.TRANS: sound effect +msgid "crash" msgstr "" -#: js/WidgetBlocks.js:71 -#.TRANS: sound envelope (ADSR) -msgid "envelope" +#: js/utils/musicutils.js:1153 +#: js/utils/synthutils.js:184 +#.TRANS: sound effect +msgid "bottle" msgstr "" -#: js/WidgetBlocks.js:79 -#.TRANS: Attack time is the time taken for initial run-up of level from nil to peak, beginning when the key is first pressed. -msgid "attack" +#: js/utils/musicutils.js:1154 +#: js/utils/synthutils.js:186 +#.TRANS: sound effect +msgid "clap" msgstr "" -#: js/WidgetBlocks.js:81 -#.TRANS: Decay time is the time taken for the subsequent run down from the attack level to the designated sustain level. -msgid "decay" +#: js/utils/musicutils.js:1155 +#: js/utils/synthutils.js:188 +#.TRANS: sound effect +msgid "slap" msgstr "" -#: js/WidgetBlocks.js:83 -#.TRANS: Sustain level is the level during the main sequence of the sound's duration, until the key is released. -msgid "sustain" +#: js/utils/musicutils.js:1156 +#: js/utils/synthutils.js:190 +#.TRANS: sound effect +msgid "splash" msgstr "" -#: js/WidgetBlocks.js:85 -#.TRANS: Release time is the time taken for the level to decay from the sustain level to zero after the key is released. -msgid "release" +#: js/utils/musicutils.js:1157 +#: js/utils/synthutils.js:192 +#.TRANS: sound effect +msgid "bubbles" msgstr "" -#: js/WidgetBlocks.js:96 -msgid "Attack value should be from 0 to 100." +#: js/utils/musicutils.js:1158 +#: js/utils/synthutils.js:194 +#.TRANS: sound effect +msgid "raindrop" msgstr "" -#: js/WidgetBlocks.js:99 -msgid "Decay value should be from 0 to 100." +#: js/utils/musicutils.js:1159 +#: js/utils/synthutils.js:196 +#.TRANS: animal sound effect +msgid "cat" msgstr "" -#: js/WidgetBlocks.js:102 -msgid "Sustain value should be from 0 to 100." +#: js/utils/musicutils.js:1160 +#: js/utils/synthutils.js:198 +#.TRANS: animal sound effect +msgid "cricket" msgstr "" -#: js/WidgetBlocks.js:105 -msgid "Release value should be from 0-100." +#: js/utils/musicutils.js:1161 +#: js/utils/synthutils.js:200 +#.TRANS: animal sound effect +msgid "dog" msgstr "" -#: js/WidgetBlocks.js:121 -msgid "You are adding multiple envelope blocks." +#: js/utils/musicutils.js:1163 +#: js/utils/synthutils.js:102 +#.TRANS: musical instrument +msgid "banjo" msgstr "" -#: js/WidgetBlocks.js:144 -#.TRANS: a filter removes some unwanted components from a signal -msgid "filter" +#: js/utils/musicutils.js:1164 +#: js/utils/synthutils.js:104 +#.TRANS: musical instrument +msgid "koto" msgstr "" -#: js/WidgetBlocks.js:149 -#: js/musicutils.js:706 -#: js/musicutils.js:1105 -#.TRANS: highpass filter -msgid "highpass" +#: js/utils/musicutils.js:1165 +#: js/utils/synthutils.js:106 +#.TRANS: musical instrument +msgid "dulcimer" msgstr "" -#: js/WidgetBlocks.js:152 -#: js/ToneBlocks.js:42 -#: js/timbre.js:1558 -#: js/timbre.js:1808 -#.TRANS: type of filter, e.g., lowpass, highpass, etc. -#.TRANS: there are different types (sine, triangle, square...) of oscillators. -msgid "type" +#: js/utils/musicutils.js:1166 +#: js/utils/synthutils.js:108 +#.TRANS: musical instrument +msgid "electric guitar" msgstr "" -#: js/WidgetBlocks.js:154 -#: js/timbre.js:1818 -#.TRANS: rolloff is the steepness of a change in frequency. -msgid "rolloff" +#: js/utils/musicutils.js:1167 +#: js/utils/synthutils.js:110 +#.TRANS: musical instrument +msgid "bassoon" msgstr "" -#: js/WidgetBlocks.js:155 -#: js/MediaBlocks.js:692 -#: js/temperament.js:382 -#: js/temperament.js:417 -#: js/temperament.js:477 -#: js/temperament.js:485 -#: js/temperament.js:1348 -#: js/timbre.js:1842 -msgid "frequency" +#: js/utils/musicutils.js:1168 +#: js/utils/synthutils.js:112 +#.TRANS: musical instrument +msgid "celeste" msgstr "" -#: js/WidgetBlocks.js:179 -#.TRANS: rolloff is the steepness of a change in frequency. -msgid "Rolloff value should be either -12, -24, -48, or -96 decibels/octave." +#: js/utils/musicutils.js:1170 +#: js/widgets/temperament.js:787 +#.TRANS: musical temperament +msgid "equal" msgstr "" -#: js/WidgetBlocks.js:211 -msgid "The Temperament tool is used to define custom tuning." +#: js/utils/musicutils.js:1172 +#.TRANS: musical temperament +msgid "Pythagorean" msgstr "" -#: js/WidgetBlocks.js:277 -#: js/sampler.js:329 -msgid "Upload a sample and adjust its pitch center." +#: js/utils/musicutils.js:1174 +#.TRANS: musical temperament +msgid "just intonation" msgstr "" -#: js/WidgetBlocks.js:284 -#.TRANS: the speed at music is should be played. -msgid "sampler" +#: js/utils/musicutils.js:1176 +#.TRANS: musical temperament +msgid "meantone" msgstr "" -#: js/WidgetBlocks.js:329 -#: js/WidgetBlocks.js:334 -#: js/IntervalsBlocks.js:928 -#: js/VolumeBlocks.js:411 -#: js/ToneBlocks.js:946 -#: js/VolumeActions.js:218 -#: js/musicutils.js:704 -#: js/musicutils.js:755 -#: js/musicutils.js:798 -#: js/musicutils.js:820 -#: js/musicutils.js:1136 -#: js/synthutils.js:118 -#: js/modewidget.js:919 -#.TRANS: customize voice -msgid "custom" +#: js/utils/musicutils.js:1193 +msgid "major 7th" msgstr "" -#: js/WidgetBlocks.js:432 -msgid "The Meter block opens a tool to select strong beats for the meter." +#: js/utils/musicutils.js:1194 +msgid "minor 7th" msgstr "" -#: js/WidgetBlocks.js:473 -msgid "The oscilloscope block opens a tool to visualize waveforms." +#: js/utils/musicutils.js:1195 +msgid "dominant 7th" msgstr "" -#: js/WidgetBlocks.js:478 -msgid "oscilloscope" +#: js/utils/musicutils.js:1196 +msgid "minor-major 7th" msgstr "" -#: js/WidgetBlocks.js:530 -msgid "The Custom mode block opens a tool to explore musical mode (the spacing of the notes in a scale)." +#: js/utils/musicutils.js:1197 +msgid "fully-diminished 7th" msgstr "" -#: js/WidgetBlocks.js:536 -#.TRANS: musical mode is the pattern of half-steps in an octave, e.g., Major or Minor modes -msgid "custom mode" +#: js/utils/musicutils.js:1198 +msgid "half-diminished 7th" msgstr "" -#: js/WidgetBlocks.js:570 -msgid "The Tempo block opens a metronome to visualize the beat." +#: js/utils/musicutils.js:1557 +#: js/utils/musicutils.js:1569 +msgid "Equal (12EDO)" msgstr "" -#: js/WidgetBlocks.js:617 -msgid "The Arpeggio Widget is used to compose chord sequences." +#: js/utils/musicutils.js:1558 +#: js/utils/musicutils.js:1570 +msgid "5-limit Just Intonation" msgstr "" -#: js/WidgetBlocks.js:623 -#: js/IntervalsBlocks.js:683 -msgid "arpeggio" +#: js/utils/musicutils.js:1559 +#: js/utils/musicutils.js:1571 +msgid "Pythagorean (3-limit JI)" msgstr "" -#: js/WidgetBlocks.js:677 -msgid "The Pitch drum matrix is used to map pitches to drum sounds." +#: js/utils/musicutils.js:1560 +#: js/utils/musicutils.js:1561 +#: js/utils/musicutils.js:1572 +#: js/utils/musicutils.js:1573 +msgid "Meantone" msgstr "" -#: js/WidgetBlocks.js:682 -#.TRANS: makes a mapping between pitches and drum sounds -msgid "pitch-drum mapper" +#: js/utils/musicutils.js:1574 +msgid "Custom" msgstr "" -#: js/WidgetBlocks.js:724 -msgid "You must have at least one pitch block and one drum block in the matrix." +#: js/utils/musicutils.js:5387 +#: js/utils/musicutils.js:5430 +msgid "current" msgstr "" -#: js/WidgetBlocks.js:746 -msgid "The Pitch slider tool to is used to generate pitches at selected frequencies." +#: js/utils/musicutils.js:5390 +#: js/utils/musicutils.js:5421 +msgid "next" msgstr "" -#: js/WidgetBlocks.js:751 -#.TRANS: widget to generate pitches using a slider -msgid "pitch slider" +#: js/utils/musicutils.js:5393 +#: js/utils/musicutils.js:5426 +msgid "previous" msgstr "" -#: js/WidgetBlocks.js:788 -msgid "chromatic keyboard" +#: js/utils/synthutils.js:120 +#.TRANS: simple monotone synthesizer +msgid "simple-2" msgstr "" -#: js/WidgetBlocks.js:815 -#: js/WidgetBlocks.js:874 -#.TRANS: widget to generate pitches using a slider -msgid "music keyboard" +#: js/utils/synthutils.js:122 +#.TRANS: simple monotone synthesizer +msgid "simple-3" msgstr "" -#: js/WidgetBlocks.js:859 -#: js/WidgetBlocks.js:866 -msgid "The Music keyboard block opens a piano keyboard that can be used to create notes." +#: js/utils/synthutils.js:124 +#.TRANS: simple monotone synthesizer +msgid "simple-4" msgstr "" -#: js/WidgetBlocks.js:910 -msgid "The Pitch staircase tool to is used to generate pitches from a given ratio." +#: js/utils/synthutils.js:162 +#.TRANS: musical instrument +msgid "taiko" msgstr "" -#: js/WidgetBlocks.js:917 -#.TRANS: generate a progressive sequence of pitches -msgid "pitch staircase" +#: js/blocks/ActionBlocks.js:58 +msgid "The Return block will return a value from an action." msgstr "" -#: js/WidgetBlocks.js:982 -msgid "The Rhythm Maker block opens a tool to create drum machines." +#: js/blocks/ActionBlocks.js:75 +msgid "return" msgstr "" -#: js/WidgetBlocks.js:1036 -msgid "G major scale" +#: js/blocks/ActionBlocks.js:128 +msgid "The Return to URL block will return a value to a webpage." msgstr "" -#: js/WidgetBlocks.js:1064 -msgid "C major scale" +#: js/blocks/ActionBlocks.js:145 +msgid "return to URL" msgstr "" -#: js/WidgetBlocks.js:1097 -msgid "The Phrase Maker block opens a tool to create musical phrases." +#: js/blocks/ActionBlocks.js:233 +#: js/blocks/ActionBlocks.js:290 +#: js/blocks/ActionBlocks.js:501 +#: js/blocks/ActionBlocks.js:688 +msgid "The Calculate block returns a value calculated by an action." msgstr "" -#: js/WidgetBlocks.js:1104 -#.TRANS: assigns pitch to a sequence of beats to generate a melody -msgid "phrase maker" +#: js/blocks/ActionBlocks.js:251 +#: js/blocks/ActionBlocks.js:517 +#: js/blocks/ActionBlocks.js:707 +msgid "calculate" msgstr "" -#: js/WidgetBlocks.js:1168 -msgid "You must have at least one pitch block and one rhythm block in the matrix." +#: js/blocks/ActionBlocks.js:376 +#: js/blocks/ActionBlocks.js:593 +#: js/blocks/ActionBlocks.js:942 +#: js/blocks/ActionBlocks.js:1389 +#.TRANS: do is the do something or take an action. +msgid "The Do block is used to initiate an action." msgstr "" -#: js/WidgetBlocks.js:1220 -msgid "The Status block opens a tool for inspecting the status of Music Blocks as it is running." +#: js/blocks/ActionBlocks.js:390 +#: js/blocks/ActionBlocks.js:610 +#: js/blocks/ActionBlocks.js:959 +#: js/blocks/ActionBlocks.js:1048 +#: js/blocks/MeterBlocks.js:769 +msgid "do1" msgstr "" -#: js/IntervalsBlocks.js:45 -msgid "set temperament" +#: js/blocks/ActionBlocks.js:390 +#: js/blocks/ActionBlocks.js:610 +#: js/blocks/ActionBlocks.js:959 +#: js/blocks/ActionBlocks.js:1048 +#: js/blocks/FlowBlocks.js:742 +#: js/blocks/FlowBlocks.js:822 +#: js/blocks/MeterBlocks.js:769 +msgid "do" msgstr "" -#: js/IntervalsBlocks.js:63 -#: js/MediaBlocks.js:746 -#: js/PitchBlocks.js:657 -#: js/PitchBlocks.js:933 -#: js/PitchBlocks.js:972 -#: js/PitchBlocks.js:1005 -#: js/PitchBlocks.js:1166 -#: js/PitchBlocks.js:1679 -#: js/PitchBlocks.js:1720 -#: js/PitchBlocks.js:1827 -#: js/ToneBlocks.js:1025 -#.TRANS: adjusts the shift up or down by one octave (twelve half-steps in the interval between two notes, one having twice or half the frequency in Hz of the other.) -msgid "octave" +#: js/blocks/ActionBlocks.js:791 +#: js/blocks/ActionBlocks.js:865 +msgid "The Arg block contains the value of an argument passed to an action." msgstr "" -#: js/IntervalsBlocks.js:99 -msgid "The Temperament name block is used to select a tuning method." +#: js/blocks/ActionBlocks.js:806 +#: js/blocks/ActionBlocks.js:878 +msgid "arg" msgstr "" -#: js/IntervalsBlocks.js:161 -msgid "doubly" +#: js/blocks/ActionBlocks.js:836 +#: js/blocks/ActionBlocks.js:900 +#: js/blocks/ActionBlocks.js:908 +msgid "Invalid argument" msgstr "" -#: js/IntervalsBlocks.js:166 -msgid "The Doubly block will double the size of an interval." +#: js/blocks/ActionBlocks.js:944 +msgid "In the example, it is used with the One of block to choose a random phase." msgstr "" -#: js/IntervalsBlocks.js:262 -msgid "interval number" +#: js/blocks/ActionBlocks.js:1019 +#: js/blocks/ActionBlocks.js:1026 +msgid "The Listen block is used to listen for an event such as a mouse click." msgstr "" -#: js/IntervalsBlocks.js:330 -#.TRANS: measure the distance between two pitches in semi-tones -msgid "semi-tone interval measure" +#: js/blocks/ActionBlocks.js:1028 +msgid "When the event happens, an action is taken." msgstr "" -#: js/IntervalsBlocks.js:397 -#: js/IntervalsBlocks.js:513 -msgid "You must use two pitch blocks when measuring an interval." +#: js/blocks/ActionBlocks.js:1045 +msgid "on" msgstr "" -#: js/IntervalsBlocks.js:439 -msgid "The Scalar interval block measures the distance between two notes in the current key and mode." +#: js/blocks/ActionBlocks.js:1048 +#: js/blocks/ActionBlocks.js:1049 +#: js/blocks/ActionBlocks.js:1153 +msgid "event" msgstr "" -#: js/IntervalsBlocks.js:445 -#.TRANS: measure the distance between two pitches in steps of musical scale -msgid "scalar interval measure" +#: js/blocks/ActionBlocks.js:1133 +msgid "The Broadcast block is used to trigger an event." msgstr "" -#: js/IntervalsBlocks.js:592 -#: js/musicutils.js:637 -#: js/musicutils.js:908 -#.TRANS: perfect is a music term related to intervals -msgid "perfect" +#: js/blocks/ActionBlocks.js:1151 +msgid "broadcast" msgstr "" -#: js/IntervalsBlocks.js:621 -msgid "In the figure, we add sol# to sol." +#: js/blocks/ActionBlocks.js:1208 +msgid "Each Start block is a separate voice." msgstr "" -#: js/IntervalsBlocks.js:627 -#: js/OrnamentBlocks.js:220 -#.TRANS: calculate a relative step between notes based on semi-tones -msgid "semi-tone interval" +#: js/blocks/ActionBlocks.js:1304 +msgid "It is often used for storing a phrase of music that is repeated." msgstr "" -#: js/IntervalsBlocks.js:676 -msgid "The output of the example is: do, mi, sol, sol, ti, mi" +#: js/blocks/ActionBlocks.js:1495 +msgid "define temperament" msgstr "" -#: js/IntervalsBlocks.js:735 -msgid "The Chord block calculates common chords." +#: js/blocks/BooleanBlocks.js:44 +msgid "The Not block is the logical not operator." msgstr "" -#: js/IntervalsBlocks.js:737 -msgid "In the figure, we generate a C-major chord." +#: js/blocks/BooleanBlocks.js:62 +msgid "not" msgstr "" -#: js/IntervalsBlocks.js:742 -msgid "chord" +#: js/blocks/BooleanBlocks.js:134 +msgid "The And block is the logical and operator." msgstr "" -#: js/IntervalsBlocks.js:794 -msgid "The Ratio Interval block calculates an interval based on a ratio." +#: js/blocks/BooleanBlocks.js:152 +msgid "and" msgstr "" -#: js/IntervalsBlocks.js:799 -msgid "ratio interval" +#: js/blocks/BooleanBlocks.js:218 +msgid "The Or block is the logical or operator." msgstr "" -#: js/IntervalsBlocks.js:868 -msgid "In the figure, we add la to sol." +#: js/blocks/BooleanBlocks.js:236 +msgid "or" msgstr "" -#: js/IntervalsBlocks.js:924 -#.TRANS: define a custom mode -msgid "define mode" +#: js/blocks/BooleanBlocks.js:302 +msgid "The XOR block is the logical XOR operator." msgstr "" -#: js/IntervalsBlocks.js:977 -msgid "movable Do" +#: js/blocks/BooleanBlocks.js:320 +msgid "xor" msgstr "" -#: js/IntervalsBlocks.js:1028 -#.TRANS: mode length is the number of notes in the mode, e.g., 7 for major and minor scales; 12 for chromatic scales -msgid "mode length" +#: js/blocks/BooleanBlocks.js:808 +msgid "The Equal block returns True if the two numbers are equal." msgstr "" -#: js/IntervalsBlocks.js:1037 -msgid "The Mode length block is the number of notes in the current scale." +#: js/blocks/BooleanBlocks.js:909 +msgid "The Not-equal-to block returns True if the two numbers are not equal to each other." msgstr "" -#: js/IntervalsBlocks.js:1039 -msgid "Most Western scales have 7 notes." +#: js/blocks/BooleanBlocks.js:1008 +msgid "The Boolean block is used to specify true or false." msgstr "" -#: js/IntervalsBlocks.js:1088 -#.TRANS: the mode in music is 'major', 'minor', etc. -msgid "current mode" +#: js/blocks/BoxesBlocks.js:53 +#: js/blocks/BoxesBlocks.js:59 +msgid "The Add-to block is used to add to the value stored in a box." msgstr "" -#: js/IntervalsBlocks.js:1141 -#.TRANS: the key is a group of pitches with which a music composition is created -msgid "current key" +#: js/blocks/BoxesBlocks.js:61 +msgid "It can also be used with other blocks such as Color and Pen size." msgstr "" -#: js/IntervalsBlocks.js:1193 -#: js/IntervalsBlocks.js:1238 -#.TRANS: set the key and mode, e.g. C Major -msgid "set key" +#: js/blocks/BoxesBlocks.js:73 +msgid "add" msgstr "" -#: js/IntervalsBlocks.js:1247 -#: js/IntervalsBlocks.js:1253 -msgid "The Set key block is used to set the key and mode," +#: js/blocks/BoxesBlocks.js:75 +#: js/widgets/temperament.js:857 +msgid "to" msgstr "" -#: js/IntervalsBlocks.js:1253 -msgid "eg C Major" +#: js/blocks/BoxesBlocks.js:75 +#: js/blocks/BoxesBlocks.js:595 +#: js/blocks/HeapBlocks.js:544 +msgid "value1" msgstr "" -#: js/IntervalsBlocks.js:1266 -#: js/DictBlocks.js:215 -#: js/DictBlocks.js:216 -#: js/DictBlocks.js:289 -#: js/DictBlocks.js:290 -#: js/DictBlocks.js:357 -#: js/DictBlocks.js:430 -#: js/DictBlocks.js:431 -#.TRANS: key, e.g., C in C Major -msgid "key" +#: js/blocks/BoxesBlocks.js:118 +msgid "Block does not support incrementing." msgstr "" -#: js/ActionBlocks.js:58 -msgid "The Return block will return a value from an action." +#: js/blocks/BoxesBlocks.js:152 +msgid "The Add-1-to block adds one to the value stored in a box." msgstr "" -#: js/ActionBlocks.js:75 -msgid "return" +#: js/blocks/BoxesBlocks.js:163 +msgid "add 1 to" msgstr "" -#: js/ActionBlocks.js:128 -msgid "The Return to URL block will return a value to a webpage." +#: js/blocks/BoxesBlocks.js:211 +msgid "The Subtract-1-from block subtracts one from the value stored in a box." msgstr "" -#: js/ActionBlocks.js:145 -msgid "return to URL" +#: js/blocks/BoxesBlocks.js:222 +msgid "subtract 1 from" msgstr "" -#: js/ActionBlocks.js:233 -#: js/ActionBlocks.js:290 -#: js/ActionBlocks.js:501 -#: js/ActionBlocks.js:688 -msgid "The Calculate block returns a value calculated by an action." +#: js/blocks/BoxesBlocks.js:270 +#: js/blocks/BoxesBlocks.js:387 +msgid "The Box block returns the value stored in a box." msgstr "" -#: js/ActionBlocks.js:251 -#: js/ActionBlocks.js:517 -#: js/ActionBlocks.js:707 -msgid "calculate" +#: js/blocks/BoxesBlocks.js:500 +#: js/blocks/BoxesBlocks.js:576 +msgid "The Store in block will store a value in a box." msgstr "" -#: js/ActionBlocks.js:376 -#: js/ActionBlocks.js:593 -#: js/ActionBlocks.js:942 -#: js/ActionBlocks.js:1389 -#.TRANS: do is the do something or take an action. -msgid "The Do block is used to initiate an action." +#: js/blocks/BoxesBlocks.js:595 +#: js/blocks/EnsembleBlocks.js:391 +#: js/blocks/EnsembleBlocks.js:402 +msgid "name1" msgstr "" -#: js/ActionBlocks.js:390 -#: js/ActionBlocks.js:610 -#: js/ActionBlocks.js:959 -#: js/ActionBlocks.js:1048 -#: js/MeterBlocks.js:769 -msgid "do1" +#: js/blocks/BoxesBlocks.js:652 +msgid "The Box2 block returns the value stored in Box2." msgstr "" -#: js/ActionBlocks.js:390 -#: js/ActionBlocks.js:610 -#: js/ActionBlocks.js:959 -#: js/ActionBlocks.js:1048 -#: js/FlowBlocks.js:742 -#: js/FlowBlocks.js:822 -#: js/MeterBlocks.js:769 -msgid "do" +#: js/blocks/BoxesBlocks.js:703 +msgid "The Store in Box2 block is used to store a value in Box2." msgstr "" -#: js/ActionBlocks.js:791 -#: js/ActionBlocks.js:865 -msgid "The Arg block contains the value of an argument passed to an action." +#: js/blocks/BoxesBlocks.js:715 +msgid "store in box2" msgstr "" -#: js/ActionBlocks.js:806 -#: js/ActionBlocks.js:878 -msgid "arg" +#: js/blocks/BoxesBlocks.js:761 +msgid "The Box1 block returns the value stored in Box1." msgstr "" -#: js/ActionBlocks.js:836 -#: js/ActionBlocks.js:900 -#: js/ActionBlocks.js:908 -msgid "Invalid argument" +#: js/blocks/BoxesBlocks.js:812 +msgid "The Store in Box1 block is used to store a value in Box1." msgstr "" -#: js/ActionBlocks.js:944 -msgid "In the example, it is used with the One of block to choose a random phase." +#: js/blocks/BoxesBlocks.js:826 +msgid "store in box1" msgstr "" -#: js/ActionBlocks.js:1019 -#: js/ActionBlocks.js:1026 -msgid "The Listen block is used to listen for an event such as a mouse click." +#: js/blocks/DictBlocks.js:77 +msgid "show dictionary" msgstr "" -#: js/ActionBlocks.js:1028 -msgid "When the event happens, an action is taken." +#: js/blocks/DictBlocks.js:80 +#: js/blocks/DictBlocks.js:145 +#: js/blocks/DictBlocks.js:216 +#: js/blocks/DictBlocks.js:290 +#: js/blocks/ProgramBlocks.js:396 +#: js/blocks/ProgramBlocks.js:501 +#: js/blocks/ProgramBlocks.js:664 +msgid "My Dictionary" msgstr "" -#: js/ActionBlocks.js:1045 -msgid "on" +#: js/blocks/DictBlocks.js:129 +msgid "The Dictionary block returns a dictionary." msgstr "" -#: js/ActionBlocks.js:1048 -#: js/ActionBlocks.js:1049 -#: js/ActionBlocks.js:1153 -msgid "event" +#: js/blocks/DictBlocks.js:197 +#: js/blocks/DictBlocks.js:339 +msgid "The Get-dict block returns a value in the dictionary for a specified key." msgstr "" -#: js/ActionBlocks.js:1133 -msgid "The Broadcast block is used to trigger an event." +#: js/blocks/DictBlocks.js:212 +#: js/blocks/DictBlocks.js:354 +#.TRANS: retrieve a value from the dictionary with a given key +msgid "get value" msgstr "" -#: js/ActionBlocks.js:1151 -msgid "broadcast" +#: js/blocks/DictBlocks.js:215 +#: js/blocks/DictBlocks.js:216 +#: js/blocks/DictBlocks.js:289 +#: js/blocks/DictBlocks.js:290 +#: js/blocks/DictBlocks.js:357 +#: js/blocks/DictBlocks.js:430 +#: js/blocks/DictBlocks.js:431 +msgid "key2" msgstr "" -#: js/ActionBlocks.js:1208 -msgid "Each Start block is a separate voice." +#: js/blocks/DictBlocks.js:215 +#: js/blocks/DictBlocks.js:216 +#: js/blocks/DictBlocks.js:289 +#: js/blocks/DictBlocks.js:290 +#: js/blocks/DictBlocks.js:357 +#: js/blocks/DictBlocks.js:430 +#: js/blocks/DictBlocks.js:431 +#: js/blocks/IntervalsBlocks.js:1462 +#.TRANS: key, e.g., C in C Major +msgid "key" msgstr "" -#: js/ActionBlocks.js:1304 -msgid "It is often used for storing a phrase of music that is repeated." +#: js/blocks/DictBlocks.js:271 +#: js/blocks/DictBlocks.js:411 +msgid "The Set-dict block sets a value in the dictionary for a specified key." msgstr "" -#: js/ActionBlocks.js:1495 -msgid "define temperament" +#: js/blocks/DictBlocks.js:286 +#: js/blocks/DictBlocks.js:427 +#.TRANS: set a value in the dictionary for a given key +msgid "set value" msgstr "" -#: js/EnsembleBlocks.js:66 +#: js/blocks/EnsembleBlocks.js:66 msgid "mouse index heap" msgstr "" -#: js/EnsembleBlocks.js:68 +#: js/blocks/EnsembleBlocks.js:68 msgid "The Mouse index heap block returns a value in the heap at a specified location for a specified mouse." msgstr "" -#: js/EnsembleBlocks.js:77 -#: js/EnsembleBlocks.js:1080 +#: js/blocks/EnsembleBlocks.js:77 +#: js/blocks/EnsembleBlocks.js:1080 msgid "mouse name" msgstr "" -#: js/EnsembleBlocks.js:77 -#: js/EnsembleBlocks.js:92 -#: js/HeapBlocks.js:544 +#: js/blocks/EnsembleBlocks.js:77 +#: js/blocks/EnsembleBlocks.js:92 +#: js/blocks/HeapBlocks.js:544 #.TRANS: value1 is a numeric value (JAPANESE ONLY) msgid "index" msgstr "" -#: js/EnsembleBlocks.js:80 +#: js/blocks/EnsembleBlocks.js:80 msgid "turtle index heap" msgstr "" -#: js/EnsembleBlocks.js:82 +#: js/blocks/EnsembleBlocks.js:82 msgid "The Turtle index heap block returns a value in the heap at a specified location for a specified turtle." msgstr "" -#: js/EnsembleBlocks.js:90 -#: js/EnsembleBlocks.js:167 -#: js/EnsembleBlocks.js:230 -#: js/EnsembleBlocks.js:316 -#: js/EnsembleBlocks.js:362 -#: js/EnsembleBlocks.js:400 -#: js/EnsembleBlocks.js:454 -#: js/EnsembleBlocks.js:504 -#: js/EnsembleBlocks.js:550 -#: js/EnsembleBlocks.js:597 -#: js/EnsembleBlocks.js:651 -#: js/EnsembleBlocks.js:763 -#: js/EnsembleBlocks.js:854 -#: js/EnsembleBlocks.js:915 -#: js/EnsembleBlocks.js:955 -#: js/EnsembleBlocks.js:1219 -#: js/EnsembleBlocks.js:1293 +#: js/blocks/EnsembleBlocks.js:90 +#: js/blocks/EnsembleBlocks.js:167 +#: js/blocks/EnsembleBlocks.js:230 +#: js/blocks/EnsembleBlocks.js:316 +#: js/blocks/EnsembleBlocks.js:362 +#: js/blocks/EnsembleBlocks.js:400 +#: js/blocks/EnsembleBlocks.js:454 +#: js/blocks/EnsembleBlocks.js:504 +#: js/blocks/EnsembleBlocks.js:550 +#: js/blocks/EnsembleBlocks.js:597 +#: js/blocks/EnsembleBlocks.js:651 +#: js/blocks/EnsembleBlocks.js:763 +#: js/blocks/EnsembleBlocks.js:854 +#: js/blocks/EnsembleBlocks.js:915 +#: js/blocks/EnsembleBlocks.js:955 +#: js/blocks/EnsembleBlocks.js:1219 +#: js/blocks/EnsembleBlocks.js:1293 #.TRANS: Yertle is the name of a turtle. msgid "Yertle" msgstr "" -#: js/EnsembleBlocks.js:92 -#: js/EnsembleBlocks.js:1089 +#: js/blocks/EnsembleBlocks.js:92 +#: js/blocks/EnsembleBlocks.js:1089 msgid "turtle name" msgstr "" -#: js/EnsembleBlocks.js:122 -#: js/EnsembleBlocks.js:1197 -#: js/HeapBlocks.js:474 -#: js/HeapBlocks.js:572 +#: js/blocks/EnsembleBlocks.js:122 +#: js/blocks/EnsembleBlocks.js:1197 +#: js/blocks/HeapBlocks.js:474 +#: js/blocks/HeapBlocks.js:572 msgid "Index must be > 0." msgstr "" -#: js/EnsembleBlocks.js:127 -#: js/HeapBlocks.js:479 -#: js/HeapBlocks.js:577 +#: js/blocks/EnsembleBlocks.js:127 +#: js/blocks/HeapBlocks.js:479 +#: js/blocks/HeapBlocks.js:577 msgid "Maximum heap size is 1000." msgstr "" -#: js/EnsembleBlocks.js:145 +#: js/blocks/EnsembleBlocks.js:145 msgid "stop mouse" msgstr "" -#: js/EnsembleBlocks.js:147 +#: js/blocks/EnsembleBlocks.js:147 msgid "The Stop mouse block stops the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:158 +#: js/blocks/EnsembleBlocks.js:158 msgid "stop turtle" msgstr "" -#: js/EnsembleBlocks.js:160 +#: js/blocks/EnsembleBlocks.js:160 msgid "The Stop turtle block stops the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:184 -#: js/EnsembleBlocks.js:247 -#: js/EnsembleBlocks.js:413 -#: js/EnsembleBlocks.js:468 -#: js/EnsembleBlocks.js:706 -#: js/EnsembleBlocks.js:808 -#: js/EnsembleBlocks.js:870 -#: js/EnsembleBlocks.js:1190 -#: js/EnsembleBlocks.js:1253 +#: js/blocks/EnsembleBlocks.js:184 +#: js/blocks/EnsembleBlocks.js:247 +#: js/blocks/EnsembleBlocks.js:413 +#: js/blocks/EnsembleBlocks.js:468 +#: js/blocks/EnsembleBlocks.js:706 +#: js/blocks/EnsembleBlocks.js:808 +#: js/blocks/EnsembleBlocks.js:870 +#: js/blocks/EnsembleBlocks.js:1190 +#: js/blocks/EnsembleBlocks.js:1253 msgid "Cannot find mouse" msgstr "" -#: js/EnsembleBlocks.js:186 -#: js/EnsembleBlocks.js:249 -#: js/EnsembleBlocks.js:415 -#: js/EnsembleBlocks.js:470 -#: js/EnsembleBlocks.js:708 -#: js/EnsembleBlocks.js:810 -#: js/EnsembleBlocks.js:872 -#: js/EnsembleBlocks.js:1192 -#: js/EnsembleBlocks.js:1255 +#: js/blocks/EnsembleBlocks.js:186 +#: js/blocks/EnsembleBlocks.js:249 +#: js/blocks/EnsembleBlocks.js:415 +#: js/blocks/EnsembleBlocks.js:470 +#: js/blocks/EnsembleBlocks.js:708 +#: js/blocks/EnsembleBlocks.js:810 +#: js/blocks/EnsembleBlocks.js:872 +#: js/blocks/EnsembleBlocks.js:1192 +#: js/blocks/EnsembleBlocks.js:1255 msgid "Cannot find turtle" msgstr "" -#: js/EnsembleBlocks.js:206 +#: js/blocks/EnsembleBlocks.js:206 msgid "start mouse" msgstr "" -#: js/EnsembleBlocks.js:209 +#: js/blocks/EnsembleBlocks.js:209 msgid "The Start mouse block starts the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:220 +#: js/blocks/EnsembleBlocks.js:220 msgid "start turtle" msgstr "" -#: js/EnsembleBlocks.js:223 +#: js/blocks/EnsembleBlocks.js:223 msgid "The Start turtle block starts the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:256 +#: js/blocks/EnsembleBlocks.js:256 msgid "Mouse is already running." msgstr "" -#: js/EnsembleBlocks.js:258 +#: js/blocks/EnsembleBlocks.js:258 msgid "Turtle is already running." msgstr "" -#: js/EnsembleBlocks.js:282 +#: js/blocks/EnsembleBlocks.js:282 msgid "Cannot find start block" msgstr "" -#: js/EnsembleBlocks.js:292 +#: js/blocks/EnsembleBlocks.js:292 #.TRANS: pen color for this mouse msgid "mouse color" msgstr "" -#: js/EnsembleBlocks.js:294 +#: js/blocks/EnsembleBlocks.js:294 msgid "The Mouse color block returns the pen color of the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:306 +#: js/blocks/EnsembleBlocks.js:306 #.TRANS: pen color for this turtle msgid "turtle color" msgstr "" -#: js/EnsembleBlocks.js:308 +#: js/blocks/EnsembleBlocks.js:308 msgid "The Turtle color block returns the pen color of the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:338 +#: js/blocks/EnsembleBlocks.js:338 #.TRANS: heading (compass direction) for this mouse msgid "mouse heading" msgstr "" -#: js/EnsembleBlocks.js:340 +#: js/blocks/EnsembleBlocks.js:340 msgid "The Mouse heading block returns the heading of the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:352 +#: js/blocks/EnsembleBlocks.js:352 #.TRANS: heading (compass direction) for this turtle msgid "turtle heading" msgstr "" -#: js/EnsembleBlocks.js:354 +#: js/blocks/EnsembleBlocks.js:354 msgid "The Turtle heading block returns the heading of the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:384 -#: js/EnsembleBlocks.js:439 +#: js/blocks/EnsembleBlocks.js:384 +#: js/blocks/EnsembleBlocks.js:439 #.TRANS: set xy position for this mouse msgid "set mouse" msgstr "" -#: js/EnsembleBlocks.js:391 -#: js/EnsembleBlocks.js:402 -#: js/BoxesBlocks.js:595 -msgid "name1" -msgstr "" - -#: js/EnsembleBlocks.js:391 -#: js/EnsembleBlocks.js:402 -#: js/ProgramBlocks.js:881 -#: js/GraphicsBlocks.js:235 -#: js/GraphicsBlocks.js:313 -#: js/GraphicsBlocks.js:436 -#: js/GraphicsBlocks.js:487 -#: js/GraphicsBlocks.js:534 -#: js/GraphicsBlocks.js:750 +#: js/blocks/EnsembleBlocks.js:391 +#: js/blocks/EnsembleBlocks.js:402 +#: js/blocks/GraphicsBlocks.js:235 +#: js/blocks/GraphicsBlocks.js:313 +#: js/blocks/GraphicsBlocks.js:436 +#: js/blocks/GraphicsBlocks.js:487 +#: js/blocks/GraphicsBlocks.js:534 +#: js/blocks/GraphicsBlocks.js:750 +#: js/blocks/ProgramBlocks.js:881 msgid "x" msgstr "x" -#: js/EnsembleBlocks.js:391 -#: js/EnsembleBlocks.js:402 -#: js/ProgramBlocks.js:881 -#: js/GraphicsBlocks.js:149 -#: js/GraphicsBlocks.js:313 -#: js/GraphicsBlocks.js:436 -#: js/GraphicsBlocks.js:487 -#: js/GraphicsBlocks.js:534 -#: js/GraphicsBlocks.js:750 +#: js/blocks/EnsembleBlocks.js:391 +#: js/blocks/EnsembleBlocks.js:402 +#: js/blocks/GraphicsBlocks.js:149 +#: js/blocks/GraphicsBlocks.js:313 +#: js/blocks/GraphicsBlocks.js:436 +#: js/blocks/GraphicsBlocks.js:487 +#: js/blocks/GraphicsBlocks.js:534 +#: js/blocks/GraphicsBlocks.js:750 +#: js/blocks/ProgramBlocks.js:881 msgid "y" msgstr "y" -#: js/EnsembleBlocks.js:395 -#: js/EnsembleBlocks.js:452 +#: js/blocks/EnsembleBlocks.js:395 +#: js/blocks/EnsembleBlocks.js:452 #.TRANS: set xy position for this turtle msgid "set turtle" msgstr "" -#: js/EnsembleBlocks.js:433 +#: js/blocks/EnsembleBlocks.js:433 msgid "The Set mouse block sends a stack of blocks to be run by the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:446 +#: js/blocks/EnsembleBlocks.js:446 msgid "The Set turtle block sends a stack of blocks to be run by the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:480 +#: js/blocks/EnsembleBlocks.js:480 #.TRANS: y position for this mouse msgid "mouse y" msgstr "" -#: js/EnsembleBlocks.js:482 +#: js/blocks/EnsembleBlocks.js:482 msgid "The Y mouse block returns the Y position of the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:494 +#: js/blocks/EnsembleBlocks.js:494 #.TRANS: y position for this turtle msgid "turtle y" msgstr "" -#: js/EnsembleBlocks.js:496 +#: js/blocks/EnsembleBlocks.js:496 msgid "The Y turtle block returns the Y position of the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:526 +#: js/blocks/EnsembleBlocks.js:526 #.TRANS: x position for this mouse msgid "mouse x" msgstr "" -#: js/EnsembleBlocks.js:528 +#: js/blocks/EnsembleBlocks.js:528 msgid "The X mouse block returns the X position of the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:540 +#: js/blocks/EnsembleBlocks.js:540 #.TRANS: x position for this turtle msgid "turtle x" msgstr "" -#: js/EnsembleBlocks.js:542 +#: js/blocks/EnsembleBlocks.js:542 msgid "The X turtle block returns the X position of the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:573 +#: js/blocks/EnsembleBlocks.js:573 #.TRANS: notes played by this mouse msgid "mouse notes played" msgstr "" -#: js/EnsembleBlocks.js:575 +#: js/blocks/EnsembleBlocks.js:575 msgid "The Mouse elapse notes block returns the number of notes played by the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:587 +#: js/blocks/EnsembleBlocks.js:587 #.TRANS: notes played by this turtle msgid "turtle notes played" msgstr "" -#: js/EnsembleBlocks.js:589 +#: js/blocks/EnsembleBlocks.js:589 msgid "The Turtle elapse notes block returns the number of notes played by the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:627 +#: js/blocks/EnsembleBlocks.js:627 #.TRANS: convert current note for this turtle to piano key (1-88) msgid "mouse pitch number" msgstr "" -#: js/EnsembleBlocks.js:629 +#: js/blocks/EnsembleBlocks.js:629 msgid "The Mouse pitch block returns the current pitch number being played by the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:641 +#: js/blocks/EnsembleBlocks.js:641 #.TRANS: convert current note for this turtle to piano key (1-88) msgid "turtle pitch number" msgstr "" -#: js/EnsembleBlocks.js:643 -msgid "The Turrle pitch block returns the current pitch number being played by the specified turtle." +#: js/blocks/EnsembleBlocks.js:643 +msgid "The Turtle pitch block returns the current pitch number being played by the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:747 -#: js/EnsembleBlocks.js:819 +#: js/blocks/EnsembleBlocks.js:747 +#: js/blocks/EnsembleBlocks.js:819 #.TRANS: note value is the duration of the note played by this mouse msgid "mouse note value" msgstr "" -#: js/EnsembleBlocks.js:757 +#: js/blocks/EnsembleBlocks.js:757 #.TRANS: note value is the duration of the note played by this turtle msgid "turtle note value" msgstr "" -#: js/EnsembleBlocks.js:830 +#: js/blocks/EnsembleBlocks.js:830 #.TRANS: sync is short for synchronization msgid "mouse sync" msgstr "" -#: js/EnsembleBlocks.js:832 +#: js/blocks/EnsembleBlocks.js:832 msgid "The Mouse sync block aligns the beat count between mice." msgstr "" -#: js/EnsembleBlocks.js:844 +#: js/blocks/EnsembleBlocks.js:844 #.TRANS: sync is short for synchronization msgid "turtle sync" msgstr "" -#: js/EnsembleBlocks.js:846 +#: js/blocks/EnsembleBlocks.js:846 msgid "The Turtle sync block aligns the beat count between turtles." msgstr "" -#: js/EnsembleBlocks.js:887 +#: js/blocks/EnsembleBlocks.js:887 msgid "The Found mouse block will return true if the specified mouse can be found." msgstr "" -#: js/EnsembleBlocks.js:893 +#: js/blocks/EnsembleBlocks.js:893 msgid "found mouse" msgstr "" -#: js/EnsembleBlocks.js:903 +#: js/blocks/EnsembleBlocks.js:903 msgid "The Found turtle block will return true if the specified turtle can be found." msgstr "" -#: js/EnsembleBlocks.js:909 +#: js/blocks/EnsembleBlocks.js:909 msgid "found turtle" msgstr "" -#: js/EnsembleBlocks.js:932 +#: js/blocks/EnsembleBlocks.js:932 msgid "new mouse" msgstr "" -#: js/EnsembleBlocks.js:934 +#: js/blocks/EnsembleBlocks.js:934 msgid "The New mouse block will create a new mouse." msgstr "" -#: js/EnsembleBlocks.js:945 +#: js/blocks/EnsembleBlocks.js:945 msgid "new turtle" msgstr "" -#: js/EnsembleBlocks.js:947 +#: js/blocks/EnsembleBlocks.js:947 msgid "The New turtle block will create a new turtle." msgstr "" -#: js/EnsembleBlocks.js:1011 +#: js/blocks/EnsembleBlocks.js:1011 msgid "set mouse color" msgstr "" -#: js/EnsembleBlocks.js:1014 +#: js/blocks/EnsembleBlocks.js:1014 msgid "The Set-mouse-color block is used to set the color of a mouse." msgstr "" -#: js/EnsembleBlocks.js:1020 +#: js/blocks/EnsembleBlocks.js:1020 msgid "set turtle color" msgstr "" -#: js/EnsembleBlocks.js:1023 +#: js/blocks/EnsembleBlocks.js:1023 msgid "The Set-turtle-color block is used to set the color of a turtle." msgstr "" -#: js/EnsembleBlocks.js:1083 +#: js/blocks/EnsembleBlocks.js:1083 msgid "The Mouse-name block returns the name of a mouse." msgstr "" -#: js/EnsembleBlocks.js:1092 +#: js/blocks/EnsembleBlocks.js:1092 msgid "The Turtle-name block returns the name of a turtle." msgstr "" -#: js/EnsembleBlocks.js:1115 +#: js/blocks/EnsembleBlocks.js:1115 msgid "mouse count" msgstr "" -#: js/EnsembleBlocks.js:1118 +#: js/blocks/EnsembleBlocks.js:1118 msgid "The Mouse-count block returns the number of mice." msgstr "" -#: js/EnsembleBlocks.js:1124 +#: js/blocks/EnsembleBlocks.js:1124 msgid "turtle count" msgstr "" -#: js/EnsembleBlocks.js:1127 +#: js/blocks/EnsembleBlocks.js:1127 msgid "The Turtle-count block returns the number of turtles." msgstr "" -#: js/EnsembleBlocks.js:1149 +#: js/blocks/EnsembleBlocks.js:1149 msgid "nth mouse name" msgstr "" -#: js/EnsembleBlocks.js:1152 +#: js/blocks/EnsembleBlocks.js:1152 msgid "The Nth-Mouse name block returns the name of the nth mouse." msgstr "" -#: js/EnsembleBlocks.js:1158 +#: js/blocks/EnsembleBlocks.js:1158 msgid "nth turtle name" msgstr "" -#: js/EnsembleBlocks.js:1161 +#: js/blocks/EnsembleBlocks.js:1161 msgid "The Nth-Turtle name block returns the name of the nth turtle." msgstr "" -#: js/EnsembleBlocks.js:1205 -#: js/EnsembleBlocks.js:1265 +#: js/blocks/EnsembleBlocks.js:1205 +#: js/blocks/EnsembleBlocks.js:1265 msgid "set name" msgstr "" -#: js/EnsembleBlocks.js:1214 -#: js/EnsembleBlocks.js:1221 +#: js/blocks/EnsembleBlocks.js:1214 +#: js/blocks/EnsembleBlocks.js:1221 msgid "source" msgstr "" -#: js/EnsembleBlocks.js:1214 -#: js/EnsembleBlocks.js:1221 +#: js/blocks/EnsembleBlocks.js:1214 +#: js/blocks/EnsembleBlocks.js:1221 msgid "target" msgstr "" -#: js/EnsembleBlocks.js:1271 +#: js/blocks/EnsembleBlocks.js:1271 msgid "The Set-name block is used to name a mouse." msgstr "" -#: js/EnsembleBlocks.js:1284 +#: js/blocks/EnsembleBlocks.js:1284 msgid "The Set-name block is used to name a turtle." msgstr "" -#: js/BooleanBlocks.js:44 -msgid "The Not block is the logical not operator." -msgstr "" - -#: js/BooleanBlocks.js:62 -msgid "not" -msgstr "" - -#: js/BooleanBlocks.js:134 -msgid "The And block is the logical and operator." -msgstr "" - -#: js/BooleanBlocks.js:152 -msgid "and" -msgstr "" - -#: js/BooleanBlocks.js:218 -msgid "The Or block is the logical or operator." -msgstr "" - -#: js/BooleanBlocks.js:236 -msgid "or" -msgstr "" - -#: js/BooleanBlocks.js:302 -msgid "The XOR block is the logical XOR operator." -msgstr "" - -#: js/BooleanBlocks.js:320 -msgid "xor" -msgstr "" - -#: js/BooleanBlocks.js:808 -msgid "The Equal block returns True if the two numbers are equal." -msgstr "" - -#: js/BooleanBlocks.js:909 -msgid "The Not-equal-to block returns True if the two numbers are not equal to each other." -msgstr "" - -#: js/BooleanBlocks.js:1008 -msgid "The Boolean block is used to specify true or false." -msgstr "" - -#: js/MediaBlocks.js:35 -#.TRANS: right side of the screen -msgid "right (screen)" -msgstr "" - -#: js/MediaBlocks.js:45 -#: js/MediaBlocks.js:56 -msgid "The Right block returns the position of the right of the canvas." -msgstr "" - -#: js/MediaBlocks.js:97 -#.TRANS: left side of the screen -msgid "left (screen)" -msgstr "" - -#: js/MediaBlocks.js:107 -#: js/MediaBlocks.js:118 -msgid "The Left block returns the position of the left of the canvas." -msgstr "" - -#: js/MediaBlocks.js:158 -msgid "top (screen)" -msgstr "" - -#: js/MediaBlocks.js:168 -#: js/MediaBlocks.js:179 -msgid "The Top block returns the position of the top of the canvas." -msgstr "" - -#: js/MediaBlocks.js:219 -msgid "bottom (screen)" +#: js/blocks/ExtrasBlocks.js:33 +msgid "fraction" msgstr "" -#: js/MediaBlocks.js:229 -#: js/MediaBlocks.js:240 -msgid "The Bottom block returns the position of the bottom of the canvas." +#: js/blocks/ExtrasBlocks.js:36 +msgid "Convert a float to a fraction" msgstr "" -#: js/MediaBlocks.js:282 -msgid "width" +#: js/blocks/ExtrasBlocks.js:93 +msgid "save as ABC" msgstr "" -#: js/MediaBlocks.js:291 -msgid "The Width block returns the width of the canvas." +#: js/blocks/ExtrasBlocks.js:96 +#: js/blocks/ExtrasBlocks.js:132 +#: js/blocks/ExtrasBlocks.js:168 +msgid "title" msgstr "" -#: js/MediaBlocks.js:325 -msgid "height" +#: js/blocks/ExtrasBlocks.js:129 +msgid "save as Lilypond" msgstr "" -#: js/MediaBlocks.js:334 -msgid "The Height block returns the height of the canvas." +#: js/blocks/ExtrasBlocks.js:165 +msgid "save as SVG" msgstr "" -#: js/MediaBlocks.js:369 -#.TRANS: stops playback of an audio recording -msgid "stop play" +#: js/blocks/ExtrasBlocks.js:216 +msgid "no background" msgstr "" -#: js/MediaBlocks.js:404 -#.TRANS: Erases the images and text -msgid "erase media" +#: js/blocks/ExtrasBlocks.js:219 +msgid "The No background block eliminates the background from the saved SVG output." msgstr "" -#: js/MediaBlocks.js:409 -msgid "The Erase Media block erases text and images." +#: js/blocks/ExtrasBlocks.js:247 +msgid "show blocks" msgstr "" -#: js/MediaBlocks.js:439 -#.TRANS: play an audio recording -msgid "play back" +#: js/blocks/ExtrasBlocks.js:249 +msgid "The Show blocks block shows the blocks." msgstr "" -#: js/MediaBlocks.js:487 -msgid "speak" +#: js/blocks/ExtrasBlocks.js:274 +msgid "hide blocks" msgstr "" -#: js/MediaBlocks.js:495 -msgid "The Speak block outputs to the text-to-speech synthesizer" +#: js/blocks/ExtrasBlocks.js:276 +msgid "The Hide blocks block hides the blocks." msgstr "" -#: js/MediaBlocks.js:546 -msgid "camera" +#: js/blocks/ExtrasBlocks.js:305 +#: js/blocks/ExtrasBlocks.js:338 +msgid "The Space block is used to add space between blocks." msgstr "" -#: js/MediaBlocks.js:551 -msgid "The Camera block connects a webcam to the Show block." +#: js/blocks/ExtrasBlocks.js:376 +msgid "wait" msgstr "" -#: js/MediaBlocks.js:574 -msgid "video" +#: js/blocks/ExtrasBlocks.js:379 +msgid "The Wait block pauses the program for a specified number of seconds." msgstr "" -#: js/MediaBlocks.js:579 -msgid "The Video block selects video for use with the Show block." +#: js/blocks/ExtrasBlocks.js:433 +#: plugins/facebook.rtp:30 +msgid "comment" msgstr "" -#: js/MediaBlocks.js:607 -msgid "The Open file block opens a file for use with the Show block." +#: js/blocks/ExtrasBlocks.js:469 +msgid "print" msgstr "" -#: js/MediaBlocks.js:645 -msgid "stop media" +#: js/blocks/ExtrasBlocks.js:476 +msgid "The Print block displays text at the top of the screen." msgstr "" -#: js/MediaBlocks.js:650 -msgid "The Stop media block stops audio or video playback." +#: js/blocks/ExtrasBlocks.js:582 +msgid "display grid" msgstr "" -#: js/MediaBlocks.js:679 -#: js/PitchBlocks.js:1539 -#: js/phrasemaker.js:822 -#: js/musickeyboard.js:1654 -#.TRANS: a measure of frequency: one cycle per second -msgid "hertz" +#: js/blocks/ExtrasBlocks.js:587 +msgid "The Display Grid Block changes the grid type" msgstr "" -#: js/MediaBlocks.js:692 -msgid "duration (ms)" +#: js/blocks/ExtrasBlocks.js:689 +#: js/blocks/ExtrasBlocks.js:708 +#: js/blocks/ExtrasBlocks.js:731 +#: js/blocks/ExtrasBlocks.js:754 +#: js/blocks/ExtrasBlocks.js:772 +#: js/blocks/ExtrasBlocks.js:791 +#: js/blocks/ExtrasBlocks.js:810 +#: js/blocks/ExtrasBlocks.js:829 +msgid "unknown" msgstr "" -#: js/MediaBlocks.js:728 -#.TRANS: translate a note into hertz, e.g., A4 -> 440HZ -msgid "note to frequency" +#: js/blocks/FlowBlocks.js:41 +msgid "The Backward block runs code in reverse order (Musical retrograde)." msgstr "" -#: js/MediaBlocks.js:736 -msgid "The To frequency block converts a pitch name and octave to Hertz." +#: js/blocks/FlowBlocks.js:48 +msgid "backward" msgstr "" -#: js/MediaBlocks.js:746 -#: js/PitchBlocks.js:656 -#: js/PitchBlocks.js:932 -#: js/PitchBlocks.js:1827 -#.TRANS: name2 is name as in name of pitch (JAPANESE ONLY) -msgid "name2" +#: js/blocks/FlowBlocks.js:124 +msgid "The Duplicate block will run each block multiple times." msgstr "" -#: js/MediaBlocks.js:812 -msgid "The Avatar block is used to change the appearance of the mouse." +#: js/blocks/FlowBlocks.js:136 +msgid "duplicate" msgstr "" -#: js/MediaBlocks.js:819 -msgid "The Avatar block is used to change the appearance of the turtle." +#: js/blocks/FlowBlocks.js:334 +msgid "The Default block is used inside of a Switch to define the default action." msgstr "" -#: js/MediaBlocks.js:831 -#: js/MediaBlocks.js:891 -#.TRANS: a media object -msgid "size" +#: js/blocks/FlowBlocks.js:342 +msgid "default" msgstr "" -#: js/MediaBlocks.js:831 -msgid "image" +#: js/blocks/FlowBlocks.js:361 +#: js/blocks/FlowBlocks.js:418 +msgid "The Case Block must be used inside of a Switch Block." msgstr "" -#: js/MediaBlocks.js:880 -msgid "The Show block is used to display text or images on the canvas." +#: js/blocks/FlowBlocks.js:389 +msgid "The Case block is used inside of a Switch to define matches." msgstr "" -#: js/MediaBlocks.js:888 -#.TRANS: show1 is show as in display an image or text on the screen. -msgid "show1" +#: js/blocks/FlowBlocks.js:397 +msgid "case" msgstr "" -#: js/MediaBlocks.js:891 -msgid "obj" +#: js/blocks/FlowBlocks.js:446 +msgid "The Switch block will run the code in the matching Case." msgstr "" -#: js/MediaBlocks.js:938 -msgid "The Media block is used to import an image." +#: js/blocks/FlowBlocks.js:454 +msgid "switch" msgstr "" -#: js/MediaBlocks.js:973 -msgid "The Text block holds a text string." +#: js/blocks/FlowBlocks.js:595 +msgid "The Stop block will stop a loop" msgstr "" -#: js/ProgramBlocks.js:33 -msgid "The Load-heap-from-app block loads the heap from a web page." +#: js/blocks/FlowBlocks.js:597 +msgid "Forever, Repeat, While, or Until." msgstr "" -#: js/ProgramBlocks.js:44 -#.TRANS: load the heap contents from a URL -msgid "load heap from App" +#: js/blocks/FlowBlocks.js:604 +#: js/widgets/timbre.js:417 +#: js/widgets/timbre.js:419 +#: js/widgets/musickeyboard.js:819 +#: js/widgets/musickeyboard.js:821 +#: js/widgets/phrasemaker.js:4202 +#: plugins/rodi.rtp:29 +#: plugins/rodi.rtp:73 +#: plugins/rodi.rtp:413 +msgid "stop" msgstr "" -#: js/ProgramBlocks.js:95 -msgid "Error parsing JSON data:" +#: js/blocks/FlowBlocks.js:653 +msgid "The Waitfor block will wait until the condition is true." msgstr "" -#: js/ProgramBlocks.js:100 -msgid "404: Page not found" +#: js/blocks/FlowBlocks.js:661 +msgid "wait for" msgstr "" -#: js/ProgramBlocks.js:133 -msgid "The Save-heap-to-app block saves the heap to a web page." +#: js/blocks/FlowBlocks.js:732 +msgid "The Until block will repeat until the condition is true." msgstr "" -#: js/ProgramBlocks.js:144 -#.TRANS: save the heap contents to a URL -msgid "save heap to App" +#: js/blocks/FlowBlocks.js:740 +msgid "until" msgstr "" -#: js/ProgramBlocks.js:189 -msgid "Cannot find a valid heap for" +#: js/blocks/FlowBlocks.js:742 +#: js/blocks/FlowBlocks.js:822 +msgid "do2" msgstr "" -#: js/ProgramBlocks.js:206 -msgid "The Load-heap block loads the heap from a file." +#: js/blocks/FlowBlocks.js:812 +msgid "The While block will repeat while the condition is true." msgstr "" -#: js/ProgramBlocks.js:217 -#.TRANS: load the heap from a file -msgid "load heap" +#: js/blocks/FlowBlocks.js:820 +msgid "while" msgstr "" -#: js/ProgramBlocks.js:270 -msgid "The file you selected does not contain a valid heap." +#: js/blocks/FlowBlocks.js:903 +#: js/blocks/FlowBlocks.js:968 +#: js/blocks/FlowBlocks.js:979 +msgid "In this example if the mouse button is pressed a snare drum will play." msgstr "" -#: js/ProgramBlocks.js:275 -msgid "The loadHeap block needs a loadFile block." +#: js/blocks/FlowBlocks.js:925 +#: js/blocks/FlowBlocks.js:988 +msgid "if" msgstr "" -#: js/ProgramBlocks.js:291 -msgid "The Set-heap block loads the heap." +#: js/blocks/FlowBlocks.js:927 +#: js/blocks/FlowBlocks.js:990 +msgid "then" msgstr "" -#: js/ProgramBlocks.js:299 -#: js/HeapBlocks.js:539 -#.TRANS: load the heap from a JSON encoding -msgid "set heap" +#: js/blocks/FlowBlocks.js:927 +msgid "else" msgstr "" -#: js/ProgramBlocks.js:340 -msgid "The block you selected does not contain a valid heap." +#: js/blocks/FlowBlocks.js:1025 +msgid "The Forever block will repeat the contained blocks forever." msgstr "" -#: js/ProgramBlocks.js:343 -msgid "The Set heap block needs a heap." +#: js/blocks/FlowBlocks.js:1037 +msgid "forever" msgstr "" -#: js/ProgramBlocks.js:360 -msgid "The Load-dictionary block loads a dictionary from a file." +#: js/blocks/FlowBlocks.js:1073 +msgid "The Repeat block will repeat the contained blocks." msgstr "" -#: js/ProgramBlocks.js:372 -#.TRANS: load a dictionary from a file -msgid "load dictionary" +#: js/blocks/FlowBlocks.js:1075 +msgid "In this example the note will be played 4 times." msgstr "" -#: js/ProgramBlocks.js:390 -#: js/ProgramBlocks.js:658 -#: js/ToneBlocks.js:1025 -msgid "file" +#: js/blocks/FlowBlocks.js:1083 +msgid "repeat" msgstr "" -#: js/ProgramBlocks.js:396 -#: js/ProgramBlocks.js:501 -#: js/ProgramBlocks.js:664 -#: js/DictBlocks.js:80 -#: js/DictBlocks.js:145 -#: js/DictBlocks.js:216 -#: js/DictBlocks.js:290 -msgid "My Dictionary" +#: js/blocks/FlowBlocks.js:1123 +msgid "duplicate factor" msgstr "" -#: js/ProgramBlocks.js:444 -msgid "The file you selected does not contain a valid dictionary." +#: js/blocks/HeapBlocks.js:49 +msgid "The Heap block returns the heap." msgstr "" -#: js/ProgramBlocks.js:449 -msgid "The load dictionary block needs a load file block." +#: js/blocks/HeapBlocks.js:133 +msgid "show heap" msgstr "" -#: js/ProgramBlocks.js:466 -msgid "The Set-dictionary block loads a dictionary." +#: js/blocks/HeapBlocks.js:181 +msgid "The Heap-length block returns the length of the heap." msgstr "" -#: js/ProgramBlocks.js:477 -#.TRANS: load a dictionary from a JSON -msgid "set dictionary" +#: js/blocks/HeapBlocks.js:195 +msgid "heap length" msgstr "" -#: js/ProgramBlocks.js:546 -msgid "The block you selected does not contain a valid dictionary." +#: js/blocks/HeapBlocks.js:254 +msgid "The Heap-empty? block returns true if the heap is empty." msgstr "" -#: js/ProgramBlocks.js:550 -msgid "The set dictionary block needs a dictionary." +#: js/blocks/HeapBlocks.js:268 +#.TRANS: Is the heap empty? +msgid "heap empty?" msgstr "" -#: js/ProgramBlocks.js:567 -msgid "The Save-heap block saves the heap to a file." +#: js/blocks/HeapBlocks.js:317 +msgid "The Empty-heap block empties the heap." msgstr "" -#: js/ProgramBlocks.js:578 -#.TRANS: save the heap to a file -msgid "save heap" +#: js/blocks/HeapBlocks.js:327 +#: js/blocks/HeapBlocks.js:647 +#.TRANS: empty the heap +msgid "empty heap" msgstr "" -#: js/ProgramBlocks.js:629 -msgid "The Save-dictionary block saves a dictionary to a file." +#: js/blocks/HeapBlocks.js:371 +msgid "The Reverse-heap block reverses the order of the heap." msgstr "" -#: js/ProgramBlocks.js:640 -#.TRANS: save a dictionary to a file -msgid "save dictionary" +#: js/blocks/HeapBlocks.js:384 +#.TRANS: reverse the order of the heap +msgid "reverse heap" msgstr "" -#: js/ProgramBlocks.js:720 -msgid "The Open palette block opens a palette." +#: js/blocks/HeapBlocks.js:428 +msgid "The Index-heap block returns a value in the heap at a specified location." msgstr "" -#: js/ProgramBlocks.js:727 -msgid "open palette" +#: js/blocks/HeapBlocks.js:443 +#.TRANS: retrieve a value from the heap at index position in the heap +msgid "index heap" msgstr "" -#: js/ProgramBlocks.js:785 -msgid "The Delete block block removes a block." +#: js/blocks/HeapBlocks.js:523 +msgid "The Set-heap entry block sets a value in he heap at the specified location." msgstr "" -#: js/ProgramBlocks.js:797 -#.TRANS: Move this block to the trash. -msgid "delete block" +#: js/blocks/HeapBlocks.js:539 +#: js/blocks/ProgramBlocks.js:299 +#.TRANS: load the heap from a JSON encoding +msgid "set heap" msgstr "" -#: js/ProgramBlocks.js:861 -msgid "The Move block block moves a block." +#: js/blocks/HeapBlocks.js:619 +msgid "The Pop block removes the value at the top of the heap." msgstr "" -#: js/ProgramBlocks.js:869 -#.TRANS: Move the position of a block on the screen. -msgid "move block" +#: js/blocks/HeapBlocks.js:633 +#.TRANS: pop a value off the top of the heap +msgid "pop" msgstr "" -#: js/ProgramBlocks.js:881 -#: js/ProgramBlocks.js:1048 -msgid "block number" +#: js/blocks/HeapBlocks.js:680 +msgid "The Push block adds a value to the top of the heap." msgstr "" -#: js/ProgramBlocks.js:935 -#.TRANS: Run program beginning at this block. -msgid "run block" +#: js/blocks/HeapBlocks.js:696 +#.TRANS: push a value onto the top of the heap +msgid "push" msgstr "" -#: js/ProgramBlocks.js:1025 -msgid "The Dock block block connections two blocks." +#: js/blocks/IntervalsBlocks.js:45 +msgid "set temperament" msgstr "" -#: js/ProgramBlocks.js:1036 -#.TRANS: We can connect a block to another block. -msgid "connect blocks" +#: js/blocks/IntervalsBlocks.js:63 +#: js/blocks/MediaBlocks.js:746 +#: js/blocks/PitchBlocks.js:657 +#: js/blocks/PitchBlocks.js:935 +#: js/blocks/PitchBlocks.js:974 +#: js/blocks/PitchBlocks.js:1007 +#: js/blocks/PitchBlocks.js:1194 +#: js/blocks/PitchBlocks.js:1717 +#: js/blocks/PitchBlocks.js:1758 +#: js/blocks/PitchBlocks.js:1866 +#: js/blocks/ToneBlocks.js:1025 +#: js/turtleactions/IntervalsActions.js:114 +#.TRANS: adjusts the shift up or down by one octave (twelve half-steps in the interval between two notes, one having twice or half the frequency in Hz of the other.) +msgid "octave" msgstr "" -#: js/ProgramBlocks.js:1048 -msgid "target block" +#: js/blocks/IntervalsBlocks.js:99 +msgid "The Temperament name block is used to select a tuning method." msgstr "" -#: js/ProgramBlocks.js:1048 -msgid "connection number" +#: js/blocks/IntervalsBlocks.js:161 +msgid "doubly" msgstr "" -#: js/ProgramBlocks.js:1140 -msgid "The Make block block creates a new block." +#: js/blocks/IntervalsBlocks.js:166 +msgid "The Doubly block will double the size of an interval." msgstr "" -#: js/ProgramBlocks.js:1152 -#.TRANS: Create a new block -msgid "make block" +#: js/blocks/IntervalsBlocks.js:262 +msgid "interval number" msgstr "" -#: js/ProgramBlocks.js:1186 -#: js/ProgramBlocks.js:1227 -#: js/RhythmBlocks.js:1128 -#: js/PitchBlocks.js:972 -#: js/PitchBlocks.js:1005 -#: js/temperament.js:340 -#: js/temperament.js:362 -#: js/temperament.js:372 -#: js/temperament.js:484 -#: js/status.js:190 -#: plugins/rodi.rtp:192 -#.TRANS: a musical note consisting of pitch and duration -msgid "note" +#: js/blocks/IntervalsBlocks.js:317 +msgid "current interval" msgstr "" -#: js/ProgramBlocks.js:1285 -msgid "Cannot find block" +#: js/blocks/IntervalsBlocks.js:387 +#.TRANS: measure the distance between two pitches in semi-tones +msgid "semi-tone interval measure" msgstr "" -#: js/ProgramBlocks.js:1304 -#: js/ProgramBlocks.js:1313 -msgid "Warning: block argument type mismatch" +#: js/blocks/IntervalsBlocks.js:454 +#: js/blocks/IntervalsBlocks.js:570 +msgid "You must use two pitch blocks when measuring an interval." msgstr "" -#: js/ProgramBlocks.js:1347 -msgid "The Open project block is used to open a project from a web page." +#: js/blocks/IntervalsBlocks.js:496 +msgid "The Scalar interval block measures the distance between two notes in the current key and mode." msgstr "" -#: js/ProgramBlocks.js:1357 -msgid "open project" +#: js/blocks/IntervalsBlocks.js:502 +#.TRANS: measure the distance between two pitches in steps of musical scale +msgid "scalar interval measure" msgstr "" -#: js/ProgramBlocks.js:1410 -msgid "Please enter a valid URL." +#: js/blocks/IntervalsBlocks.js:678 +msgid "In the figure, we add sol# to sol." msgstr "" -#: js/DrumBlocks.js:59 -msgid "The Noise name block is used to select a noise synthesizer." +#: js/blocks/IntervalsBlocks.js:684 +#: js/blocks/OrnamentBlocks.js:220 +#.TRANS: calculate a relative step between notes based on semi-tones +msgid "semi-tone interval" msgstr "" -#: js/DrumBlocks.js:102 -msgid "The Drum name block is used to select a drum." +#: js/blocks/IntervalsBlocks.js:733 +msgid "The output of the example is: do, mi, sol, sol, ti, mi" msgstr "" -#: js/DrumBlocks.js:146 -msgid "The Effects name block is used to select a sound effect." +#: js/blocks/IntervalsBlocks.js:740 +#: js/blocks/WidgetBlocks.js:768 +msgid "arpeggio" msgstr "" -#: js/DrumBlocks.js:163 -msgid "noise" +#: js/blocks/IntervalsBlocks.js:931 +msgid "The Chord block calculates common chords." msgstr "" -#: js/DrumBlocks.js:177 -msgid "The Play noise block will generate white, pink, or brown noise." +#: js/blocks/IntervalsBlocks.js:933 +msgid "In the figure, we generate a C-major chord." msgstr "" -#: js/DrumBlocks.js:191 -#: js/musicutils.js:752 -#: js/synthutils.js:47 -#.TRANS: white noise synthesizer -msgid "white noise" +#: js/blocks/IntervalsBlocks.js:938 +msgid "chord" msgstr "" -#: js/DrumBlocks.js:326 -msgid "Replace every instance of a pitch with a drum sound." +#: js/blocks/IntervalsBlocks.js:990 +msgid "The Ratio Interval block calculates an interval based on a ratio." msgstr "" -#: js/DrumBlocks.js:337 -#.TRANS: map a pitch to a drum sound -msgid "map pitch to drum" +#: js/blocks/IntervalsBlocks.js:995 +msgid "ratio interval" msgstr "" -#: js/DrumBlocks.js:404 -msgid "In the example above, a kick drum sound will be played instead of sol." +#: js/blocks/IntervalsBlocks.js:1064 +msgid "In the figure, we add la to sol." msgstr "" -#: js/DrumBlocks.js:416 -#.TRANS: set the current drum sound for playback -msgid "set drum" +#: js/blocks/IntervalsBlocks.js:1120 +#.TRANS: define a custom mode +msgid "define mode" msgstr "" -#: js/DrumBlocks.js:460 -msgid "sound effect" +#: js/blocks/IntervalsBlocks.js:1173 +msgid "movable Do" msgstr "" -#: js/DrumBlocks.js:498 -msgid "You can use multiple Drum blocks within a Note block." +#: js/blocks/IntervalsBlocks.js:1224 +#.TRANS: mode length is the number of notes in the mode, e.g., 7 for major and minor scales; 12 for chromatic scales +msgid "mode length" msgstr "" -#: js/RhythmBlocks.js:182 -#: js/RhythmBlocks.js:1086 -#: js/RhythmBlocks.js:1162 -msgid "Note value must be greater than 0." +#: js/blocks/IntervalsBlocks.js:1233 +msgid "The Mode length block is the number of notes in the current scale." msgstr "" -#: js/RhythmBlocks.js:215 -#: js/RhythmBlocks.js:278 -#: js/RhythmBlocks.js:350 -#.TRANS: swing is a rhythmic variation that emphasises the offbeat -msgid "swing" +#: js/blocks/IntervalsBlocks.js:1235 +msgid "Most Western scales have 7 notes." msgstr "" -#: js/RhythmBlocks.js:355 -#.TRANS: the amount to shift to the offbeat note -msgid "swing value" +#: js/blocks/IntervalsBlocks.js:1284 +#.TRANS: the mode in music is 'major', 'minor', etc. +msgid "current mode" msgstr "" -#: js/RhythmBlocks.js:419 -msgid "The Skip notes block will cause notes to be skipped." +#: js/blocks/IntervalsBlocks.js:1337 +#.TRANS: the key is a group of pitches with which a music composition is created +msgid "current key" msgstr "" -#: js/RhythmBlocks.js:427 -#.TRANS: substitute rests on notes being skipped -msgid "skip notes" +#: js/blocks/IntervalsBlocks.js:1389 +#: js/blocks/IntervalsBlocks.js:1434 +#.TRANS: set the key and mode, e.g. C Major +msgid "set key" msgstr "" -#: js/RhythmBlocks.js:489 -#.TRANS: speed up note duration by some factor, e.g. convert 1/4 to 1/8 notes by using a factor of 2 -msgid "multiply note value" +#: js/blocks/IntervalsBlocks.js:1443 +#: js/blocks/IntervalsBlocks.js:1449 +msgid "The Set key block is used to set the key and mode," msgstr "" -#: js/RhythmBlocks.js:542 -msgid "The Tie block works on pairs of notes, combining them into one note." +#: js/blocks/IntervalsBlocks.js:1449 +msgid "eg C Major" msgstr "" -#: js/RhythmBlocks.js:550 -#.TRANS: tie notes together into one longer note -msgid "tie" +#: js/blocks/MediaBlocks.js:35 +#.TRANS: right side of the screen +msgid "right (screen)" msgstr "" -#: js/RhythmBlocks.js:591 -#: js/RhythmBlocks.js:671 -#.TRANS: a dotted note is played for 1.5x its value, e.g., 1/8. --> 3/16 -msgid "dot" +#: js/blocks/MediaBlocks.js:45 +#: js/blocks/MediaBlocks.js:56 +msgid "The Right block returns the position of the right of the canvas." msgstr "" -#: js/RhythmBlocks.js:619 -#: js/RhythmActions.js:221 -msgid "An argument of -1 results in a note value of 0." +#: js/blocks/MediaBlocks.js:97 +#.TRANS: left side of the screen +msgid "left (screen)" msgstr "" -#: js/RhythmBlocks.js:661 -msgid "The Dot block extends the duration of a note by 50%." +#: js/blocks/MediaBlocks.js:107 +#: js/blocks/MediaBlocks.js:118 +msgid "The Left block returns the position of the left of the canvas." msgstr "" -#: js/RhythmBlocks.js:663 -msgid "Eg a dotted quarter note will play for 3/8 (1/4 + 1/8) of a beat." +#: js/blocks/MediaBlocks.js:158 +msgid "top (screen)" msgstr "" -#: js/RhythmBlocks.js:765 -#.TRANS: Japanese only: note value block for drum -msgid "note value drum" +#: js/blocks/MediaBlocks.js:168 +#: js/blocks/MediaBlocks.js:179 +msgid "The Top block returns the position of the top of the canvas." msgstr "" -#: js/RhythmBlocks.js:829 -msgid "392 hertz" +#: js/blocks/MediaBlocks.js:219 +msgid "bottom (screen)" msgstr "" -#: js/RhythmBlocks.js:1119 -msgid "The Note block is a container for one or more Pitch blocks." +#: js/blocks/MediaBlocks.js:229 +#: js/blocks/MediaBlocks.js:240 +msgid "The Bottom block returns the position of the bottom of the canvas." msgstr "" -#: js/RhythmBlocks.js:1121 -msgid "The Note block specifies the duration (note value) of its contents." +#: js/blocks/MediaBlocks.js:282 +msgid "width" msgstr "" -#: js/RhythmBlocks.js:1130 -msgid "value2" +#: js/blocks/MediaBlocks.js:291 +msgid "The Width block returns the width of the canvas." msgstr "" -#: js/RhythmBlocks.js:1200 -msgid "define frequency" +#: js/blocks/MediaBlocks.js:325 +msgid "height" msgstr "" -#: js/RhythmBlocks.js:1218 -#: js/temperament.js:650 -#: js/temperament.js:1421 -msgid "octave space" +#: js/blocks/MediaBlocks.js:334 +msgid "The Height block returns the height of the canvas." msgstr "" -#: js/NumberBlocks.js:28 -msgid "The Int block returns an integer." +#: js/blocks/MediaBlocks.js:369 +#.TRANS: stops playback of an audio recording +msgid "stop play" msgstr "" -#: js/NumberBlocks.js:34 -msgid "int" +#: js/blocks/MediaBlocks.js:404 +#.TRANS: Erases the images and text +msgid "erase media" msgstr "" -#: js/NumberBlocks.js:73 -msgid "The Mod block returns the remainder from a division." +#: js/blocks/MediaBlocks.js:409 +msgid "The Erase Media block erases text and images." msgstr "" -#: js/NumberBlocks.js:79 -msgid "mod" +#: js/blocks/MediaBlocks.js:439 +#.TRANS: play an audio recording +msgid "play back" msgstr "" -#: js/NumberBlocks.js:123 -msgid "The Power block calculates a power function." +#: js/blocks/MediaBlocks.js:487 +msgid "speak" msgstr "" -#: js/NumberBlocks.js:178 -msgid "The Sqrt block returns the square root." +#: js/blocks/MediaBlocks.js:495 +msgid "The Speak block outputs to the text-to-speech synthesizer" msgstr "" -#: js/NumberBlocks.js:184 -msgid "sqrt" +#: js/blocks/MediaBlocks.js:546 +msgid "camera" msgstr "" -#: js/NumberBlocks.js:230 -msgid "The Abs block returns the absolute value." +#: js/blocks/MediaBlocks.js:551 +msgid "The Camera block connects a webcam to the Show block." msgstr "" -#: js/NumberBlocks.js:236 -msgid "abs" +#: js/blocks/MediaBlocks.js:574 +msgid "video" msgstr "" -#: js/NumberBlocks.js:277 -msgid "The Distance block returns the distance between two points. For example, between the mouse and the center of the screen." +#: js/blocks/MediaBlocks.js:579 +msgid "The Video block selects video for use with the Show block." msgstr "" -#: js/NumberBlocks.js:283 -#: plugins/rodi.rtp:310 -msgid "distance" +#: js/blocks/MediaBlocks.js:607 +msgid "The Open file block opens a file for use with the Show block." msgstr "" -#: js/NumberBlocks.js:343 -msgid "The Divide block is used to divide." +#: js/blocks/MediaBlocks.js:645 +msgid "stop media" msgstr "" -#: js/NumberBlocks.js:411 -msgid "The Multiply block is used to multiply." +#: js/blocks/MediaBlocks.js:650 +msgid "The Stop media block stops audio or video playback." msgstr "" -#: js/NumberBlocks.js:554 -msgid "The Minus block is used to subtract." +#: js/blocks/MediaBlocks.js:679 +#: js/blocks/PitchBlocks.js:1577 +#: js/widgets/musickeyboard.js:1936 +#: js/widgets/phrasemaker.js:1037 +#.TRANS: a measure of frequency: one cycle per second +msgid "hertz" msgstr "" -#: js/NumberBlocks.js:647 -msgid "The Plus block is used to add." +#: js/blocks/MediaBlocks.js:692 +#: js/blocks/WidgetBlocks.js:182 +#: js/widgets/temperament.js:506 +#: js/widgets/temperament.js:546 +#: js/widgets/temperament.js:610 +#: js/widgets/temperament.js:618 +#: js/widgets/temperament.js:1505 +#: js/widgets/timbre.js:1842 +msgid "frequency" msgstr "" -#: js/NumberBlocks.js:773 -msgid "The One-of block returns one of two choices." +#: js/blocks/MediaBlocks.js:692 +msgid "duration (ms)" msgstr "" -#: js/NumberBlocks.js:780 -#: js/PitchBlocks.js:616 -msgid "one of" +#: js/blocks/MediaBlocks.js:728 +#.TRANS: translate a note into hertz, e.g., A4 -> 440HZ +msgid "note to frequency" msgstr "" -#: js/NumberBlocks.js:782 -msgid "this" +#: js/blocks/MediaBlocks.js:736 +msgid "The To frequency block converts a pitch name and octave to Hertz." msgstr "" -#: js/NumberBlocks.js:782 -msgid "that" +#: js/blocks/MediaBlocks.js:746 +#: js/blocks/PitchBlocks.js:656 +#: js/blocks/PitchBlocks.js:934 +#: js/blocks/PitchBlocks.js:1866 +#.TRANS: name2 is name as in name of pitch (JAPANESE ONLY) +msgid "name2" msgstr "" -#: js/NumberBlocks.js:837 -msgid "The Random block returns a random number." +#: js/blocks/MediaBlocks.js:812 +msgid "The Avatar block is used to change the appearance of the mouse." msgstr "" -#: js/NumberBlocks.js:844 -msgid "random" +#: js/blocks/MediaBlocks.js:819 +msgid "The Avatar block is used to change the appearance of the turtle." msgstr "" -#: js/NumberBlocks.js:846 -msgid "min" +#: js/blocks/MediaBlocks.js:831 +#: js/blocks/MediaBlocks.js:891 +#.TRANS: a media object +msgid "size" msgstr "" -#: js/NumberBlocks.js:846 -msgid "max" +#: js/blocks/MediaBlocks.js:831 +msgid "image" msgstr "" -#: js/NumberBlocks.js:910 -msgid "The Number block holds a number." +#: js/blocks/MediaBlocks.js:880 +msgid "The Show block is used to display text or images on the canvas." msgstr "" -#: js/BoxesBlocks.js:53 -#: js/BoxesBlocks.js:59 -msgid "The Add-to block is used to add to the value stored in a box." +#: js/blocks/MediaBlocks.js:888 +#.TRANS: show1 is show as in display an image or text on the screen. +msgid "show1" msgstr "" -#: js/BoxesBlocks.js:61 -msgid "It can also be used with other blocks such as Color and Pen size." +#: js/blocks/MediaBlocks.js:891 +msgid "obj" msgstr "" -#: js/BoxesBlocks.js:73 -msgid "add" +#: js/blocks/MediaBlocks.js:938 +msgid "The Media block is used to import an image." msgstr "" -#: js/BoxesBlocks.js:75 -#: js/temperament.js:716 -msgid "to" +#: js/blocks/MediaBlocks.js:973 +msgid "The Text block holds a text string." msgstr "" -#: js/BoxesBlocks.js:75 -#: js/BoxesBlocks.js:595 -#: js/HeapBlocks.js:544 -msgid "value1" +#: js/blocks/MeterBlocks.js:34 +#.TRANS: musical meter (time signature), e.g., 4:4 +msgid "current meter" msgstr "" -#: js/BoxesBlocks.js:118 -msgid "Block does not support incrementing." +#: js/blocks/MeterBlocks.js:85 +#.TRANS: number of beats per minute +msgid "beat factor" msgstr "" -#: js/BoxesBlocks.js:152 -msgid "The Add-1-to block adds one to the value stored in a box." +#: js/blocks/MeterBlocks.js:161 +msgid "The Beats per minute block returns the current beats per minute." msgstr "" -#: js/BoxesBlocks.js:163 -msgid "add 1 to" +#: js/blocks/MeterBlocks.js:169 +#: js/widgets/status.js:152 +#.TRANS: number of beats played per minute +msgid "beats per minute2" msgstr "" -#: js/BoxesBlocks.js:211 -msgid "The Subtract-1-from block subtracts one from the value stored in a box." +#: js/blocks/MeterBlocks.js:169 +#: js/blocks/MeterBlocks.js:1056 +#: js/blocks/MeterBlocks.js:1133 +#: js/blocks/MeterBlocks.js:1211 +#.TRANS: sets tempo by defining a beat and beats per minute +msgid "beats per minute" msgstr "" -#: js/BoxesBlocks.js:222 -msgid "subtract 1 from" +#: js/blocks/MeterBlocks.js:233 +#.TRANS: count of current musical measure in meter +msgid "measure count" msgstr "" -#: js/BoxesBlocks.js:270 -#: js/BoxesBlocks.js:387 -msgid "The Box block returns the value stored in a box." +#: js/blocks/MeterBlocks.js:241 +msgid "The Measure count block returns the current measure." msgstr "" -#: js/BoxesBlocks.js:500 -#: js/BoxesBlocks.js:576 -msgid "The Store in block will store a value in a box." +#: js/blocks/MeterBlocks.js:290 +#.TRANS: count of current beat in the meter +msgid "beat count" msgstr "" -#: js/BoxesBlocks.js:652 -msgid "The Box2 block returns the value stored in Box2." +#: js/blocks/MeterBlocks.js:300 +#: js/blocks/MeterBlocks.js:311 +#: js/blocks/MeterBlocks.js:565 +#: js/blocks/MeterBlocks.js:576 +msgid "The Beat count block is the number of the current beat," msgstr "" -#: js/BoxesBlocks.js:703 -msgid "The Store in Box2 block is used to store a value in Box2." +#: js/blocks/MeterBlocks.js:313 +#: js/blocks/MeterBlocks.js:578 +msgid "eg 1, 2, 3, or 4." msgstr "" -#: js/BoxesBlocks.js:715 -msgid "store in box2" +#: js/blocks/MeterBlocks.js:368 +#.TRANS: count the number of notes +msgid "sum note values" msgstr "" -#: js/BoxesBlocks.js:761 -msgid "The Box1 block returns the value stored in Box1." +#: js/blocks/MeterBlocks.js:376 +#: js/blocks/MeterBlocks.js:440 +msgid "The Note counter block can be used to count the number of contained notes." msgstr "" -#: js/BoxesBlocks.js:812 -msgid "The Store in Box1 block is used to store a value in Box1." +#: js/blocks/MeterBlocks.js:432 +#.TRANS: count the number of notes +msgid "note counter" msgstr "" -#: js/BoxesBlocks.js:826 -msgid "store in box1" +#: js/blocks/MeterBlocks.js:496 +#.TRANS: number of whole notes that have been played +msgid "whole notes played" msgstr "" -#: js/HeapBlocks.js:49 -msgid "The Heap block returns the heap." +#: js/blocks/MeterBlocks.js:505 +msgid "The Whole notes played block returns the total number of whole notes played." msgstr "" -#: js/HeapBlocks.js:133 -msgid "show heap" +#: js/blocks/MeterBlocks.js:555 +#: js/turtleactions/DictActions.js:83 +#.TRANS: number of notes that have been played +msgid "notes played" msgstr "" -#: js/HeapBlocks.js:181 -msgid "The Heap-length block returns the length of the heap." +#: js/blocks/MeterBlocks.js:653 +msgid "The No clock block decouples the notes from the master clock." msgstr "" -#: js/HeapBlocks.js:195 -msgid "heap length" +#: js/blocks/MeterBlocks.js:661 +#.TRANS: don't lock notes to master clock +msgid "no clock" msgstr "" -#: js/HeapBlocks.js:254 -msgid "The Heap-empty? block returns true if the heap is empty." +#: js/blocks/MeterBlocks.js:700 +msgid "on weak beat do" msgstr "" -#: js/HeapBlocks.js:268 -#.TRANS: Is the heap empty? -msgid "heap empty?" +#: js/blocks/MeterBlocks.js:705 +msgid "The On-weak-beat block lets you specify actions to take on weak (off) beats." msgstr "" -#: js/HeapBlocks.js:317 -msgid "The Empty-heap block empties the heap." +#: js/blocks/MeterBlocks.js:750 +msgid "on strong beat" msgstr "" -#: js/HeapBlocks.js:327 -#: js/HeapBlocks.js:647 -#.TRANS: empty the heap -msgid "empty heap" +#: js/blocks/MeterBlocks.js:758 +msgid "The On-strong-beat block lets you specify actions to take on specified beats." msgstr "" -#: js/HeapBlocks.js:371 -msgid "The Reverse-heap block reverses the order of the heap." +#: js/blocks/MeterBlocks.js:769 +msgid "beat" msgstr "" -#: js/HeapBlocks.js:384 -#.TRANS: reverse the order of the heap -msgid "reverse heap" +#: js/blocks/MeterBlocks.js:813 +msgid "on every beat do" msgstr "" -#: js/HeapBlocks.js:428 -msgid "The Index-heap block returns a value in the heap at a specified location." +#: js/blocks/MeterBlocks.js:821 +msgid "The On-every-beat block lets you specify actions to take on every beat." msgstr "" -#: js/HeapBlocks.js:443 -#.TRANS: retrieve a value from the heap at index position in the heap -msgid "index heap" +#: js/blocks/MeterBlocks.js:874 +msgid "on every note do" msgstr "" -#: js/HeapBlocks.js:523 -msgid "The Set-heap entry block sets a value in he heap at the specified location." +#: js/blocks/MeterBlocks.js:882 +msgid "The On-every-note block lets you specify actions to take on every note." msgstr "" -#: js/HeapBlocks.js:619 -msgid "The Pop block removes the value at the top of the heap." +#: js/blocks/MeterBlocks.js:928 +#: js/blocks/MeterBlocks.js:999 +#.TRANS: sets tempo by defining a beat and beats per minute +msgid "master beats per minute" msgstr "" -#: js/HeapBlocks.js:633 -#.TRANS: pop a value off the top of the heap -msgid "pop" +#: js/blocks/MeterBlocks.js:952 +#: js/blocks/MeterBlocks.js:1078 +#: js/blocks/MeterBlocks.js:1135 +msgid "bpm" msgstr "" -#: js/HeapBlocks.js:680 -msgid "The Push block adds a value to the top of the heap." +#: js/blocks/MeterBlocks.js:952 +#: js/blocks/MeterBlocks.js:1078 +#: js/blocks/MeterBlocks.js:1135 +msgid "beat value" msgstr "" -#: js/HeapBlocks.js:696 -#.TRANS: push a value onto the top of the heap -msgid "push" +#: js/blocks/MeterBlocks.js:1024 +#: js/blocks/MeterBlocks.js:1167 +#: js/blocks/MeterBlocks.js:1241 +msgid "Beats per minute must be > 30." msgstr "" -#: js/FlowBlocks.js:41 -msgid "The Backward block runs code in reverse order (Musical retrograde)." +#: js/blocks/MeterBlocks.js:1027 +#: js/blocks/MeterBlocks.js:1170 +#: js/blocks/MeterBlocks.js:1244 +msgid "Maximum beats per minute is 1000." msgstr "" -#: js/FlowBlocks.js:48 -msgid "backward" +#: js/blocks/MeterBlocks.js:1068 +msgid "The Beats per minute block sets the number of 1/4 notes per minute." msgstr "" -#: js/FlowBlocks.js:124 -msgid "The Duplicate block will run each block multiple times." +#: js/blocks/MeterBlocks.js:1279 +#.TRANS: anacrusis +msgid "pickup" msgstr "" -#: js/FlowBlocks.js:136 -msgid "duplicate" +#: js/blocks/MeterBlocks.js:1367 +msgid "number of beats" msgstr "" -#: js/FlowBlocks.js:334 -msgid "The Default block is used inside of a Switch to define the default action." +#: js/blocks/NumberBlocks.js:28 +msgid "The Int block returns an integer." msgstr "" -#: js/FlowBlocks.js:342 -msgid "default" +#: js/blocks/NumberBlocks.js:34 +msgid "int" msgstr "" -#: js/FlowBlocks.js:361 -#: js/FlowBlocks.js:418 -msgid "The Case Block must be used inside of a Switch Block." +#: js/blocks/NumberBlocks.js:73 +msgid "The Mod block returns the remainder from a division." msgstr "" -#: js/FlowBlocks.js:389 -msgid "The Case block is used inside of a Switch to define matches." +#: js/blocks/NumberBlocks.js:79 +msgid "mod" msgstr "" -#: js/FlowBlocks.js:397 -msgid "case" +#: js/blocks/NumberBlocks.js:141 +msgid "The Power block calculates a power function." msgstr "" -#: js/FlowBlocks.js:446 -msgid "The Switch block will run the code in the matching Case." +#: js/blocks/NumberBlocks.js:196 +msgid "The Sqrt block returns the square root." msgstr "" -#: js/FlowBlocks.js:454 -msgid "switch" +#: js/blocks/NumberBlocks.js:202 +msgid "sqrt" msgstr "" -#: js/FlowBlocks.js:595 -msgid "The Stop block will stop a loop" +#: js/blocks/NumberBlocks.js:248 +msgid "The Abs block returns the absolute value." msgstr "" -#: js/FlowBlocks.js:597 -msgid "Forever, Repeat, While, or Until." +#: js/blocks/NumberBlocks.js:254 +msgid "abs" msgstr "" -#: js/FlowBlocks.js:604 -#: js/phrasemaker.js:3799 -#: js/musickeyboard.js:629 -#: js/musickeyboard.js:631 -#: js/timbre.js:417 -#: js/timbre.js:419 -#: plugins/rodi.rtp:29 -#: plugins/rodi.rtp:73 -#: plugins/rodi.rtp:413 -msgid "stop" +#: js/blocks/NumberBlocks.js:295 +msgid "The Distance block returns the distance between two points. For example, between the mouse and the center of the screen." msgstr "" -#: js/FlowBlocks.js:653 -msgid "The Waitfor block will wait until the condition is true." +#: js/blocks/NumberBlocks.js:301 +#: plugins/rodi.rtp:310 +msgid "distance" msgstr "" -#: js/FlowBlocks.js:661 -msgid "wait for" +#: js/blocks/NumberBlocks.js:361 +msgid "The Divide block is used to divide." msgstr "" -#: js/FlowBlocks.js:732 -msgid "The Until block will repeat until the condition is true." +#: js/blocks/NumberBlocks.js:441 +msgid "The Multiply block is used to multiply." msgstr "" -#: js/FlowBlocks.js:740 -msgid "until" +#: js/blocks/NumberBlocks.js:612 +msgid "The Minus block is used to subtract." msgstr "" -#: js/FlowBlocks.js:742 -#: js/FlowBlocks.js:822 -msgid "do2" +#: js/blocks/NumberBlocks.js:723 +msgid "The Plus block is used to add." msgstr "" -#: js/FlowBlocks.js:812 -msgid "The While block will repeat while the condition is true." +#: js/blocks/NumberBlocks.js:849 +msgid "The One-of block returns one of two choices." msgstr "" -#: js/FlowBlocks.js:820 -msgid "while" +#: js/blocks/NumberBlocks.js:856 +#: js/blocks/PitchBlocks.js:616 +msgid "one of" msgstr "" -#: js/FlowBlocks.js:903 -#: js/FlowBlocks.js:968 -#: js/FlowBlocks.js:979 -msgid "In this example if the mouse button is pressed a snare drum will play." +#: js/blocks/NumberBlocks.js:858 +msgid "this" msgstr "" -#: js/FlowBlocks.js:925 -#: js/FlowBlocks.js:988 -msgid "if" +#: js/blocks/NumberBlocks.js:858 +msgid "that" msgstr "" -#: js/FlowBlocks.js:927 -#: js/FlowBlocks.js:990 -msgid "then" +#: js/blocks/NumberBlocks.js:913 +msgid "The Random block returns a random number." msgstr "" -#: js/FlowBlocks.js:927 -msgid "else" +#: js/blocks/NumberBlocks.js:920 +msgid "random" msgstr "" -#: js/FlowBlocks.js:1025 -msgid "The Forever block will repeat the contained blocks forever." +#: js/blocks/NumberBlocks.js:922 +msgid "min" msgstr "" -#: js/FlowBlocks.js:1037 -msgid "forever" +#: js/blocks/NumberBlocks.js:922 +msgid "max" msgstr "" -#: js/FlowBlocks.js:1073 -msgid "The Repeat block will repeat the contained blocks." +#: js/blocks/NumberBlocks.js:986 +msgid "The Number block holds a number." msgstr "" -#: js/FlowBlocks.js:1075 -msgid "In this example the note will be played 4 times." +#: js/blocks/OrnamentBlocks.js:32 +msgid "staccato factor" msgstr "" -#: js/FlowBlocks.js:1083 -msgid "repeat" +#: js/blocks/OrnamentBlocks.js:108 +msgid "slur factor" msgstr "" -#: js/FlowBlocks.js:1123 -msgid "duplicate factor" +#: js/blocks/OrnamentBlocks.js:217 +#: js/blocks/OrnamentBlocks.js:309 +#.TRANS: the neighbor refers to a neighboring note, e.g., D is a neighbor of C +msgid "neighbor" msgstr "" -#: js/PitchBlocks.js:39 -#: js/musicutils.js:722 -#: js/musicutils.js:1117 -#: js/synthutils.js:112 -#.TRANS: square wave -msgid "square" +#: js/blocks/OrnamentBlocks.js:293 +msgid "The Neighbor block rapidly switches between neighboring pitches." msgstr "" -#: js/PitchBlocks.js:62 -#: js/ToneBlocks.js:39 -#: js/musicutils.js:723 -#: js/musicutils.js:1118 -#: js/synthutils.js:116 -#.TRANS: triangle wave -msgid "triangle" +#: js/blocks/OrnamentBlocks.js:364 +msgid "glide" msgstr "" -#: js/PitchBlocks.js:85 -#: js/musicutils.js:721 -#: js/musicutils.js:1116 -#: js/synthutils.js:110 -#.TRANS: sine wave -msgid "sine" +#: js/blocks/OrnamentBlocks.js:479 +#: js/blocks/OrnamentBlocks.js:643 +msgid "slur" msgstr "" -#: js/PitchBlocks.js:108 -#: js/musicutils.js:724 -#: js/musicutils.js:1119 -#: js/synthutils.js:114 -#.TRANS: sawtooth wave -msgid "sawtooth" +#: js/blocks/OrnamentBlocks.js:558 +#: js/blocks/OrnamentBlocks.js:710 +#.TRANS: play each note sharply detached from the others +msgid "staccato" msgstr "" -#: js/PitchBlocks.js:141 -#.TRANS: musical transposition (adjustment of pitch up or down) -msgid "transposition" +#: js/blocks/RhythmBlocks.js:182 +#: js/blocks/RhythmBlocks.js:1086 +#: js/blocks/RhythmBlocks.js:1162 +msgid "Note value must be greater than 0." msgstr "" -#: js/PitchBlocks.js:168 -#.TRANS: step down one note in current musical scale -msgid "scalar step down" +#: js/blocks/RhythmBlocks.js:215 +#: js/blocks/RhythmBlocks.js:278 +#: js/blocks/RhythmBlocks.js:350 +#.TRANS: swing is a rhythmic variation that emphasises the offbeat +msgid "swing" msgstr "" -#: js/PitchBlocks.js:172 -msgid "The Scalar step down block returns the number of semi-tones down to the previous note in the current key and mode." +#: js/blocks/RhythmBlocks.js:355 +#.TRANS: the amount to shift to the offbeat note +msgid "swing value" msgstr "" -#: js/PitchBlocks.js:190 -#.TRANS: step up one note in current musical scale -msgid "scalar step up" +#: js/blocks/RhythmBlocks.js:419 +msgid "The Skip notes block will cause notes to be skipped." msgstr "" -#: js/PitchBlocks.js:194 -msgid "The Scalar step up block returns the number of semi-tones up to the next note in the current key and mode." +#: js/blocks/RhythmBlocks.js:427 +#.TRANS: substitute rests on notes being skipped +msgid "skip notes" msgstr "" -#: js/PitchBlocks.js:212 -#.TRANS: the change measured in half-steps between the current pitch and the previous pitch -msgid "change in pitch" +#: js/blocks/RhythmBlocks.js:489 +#.TRANS: speed up note duration by some factor, e.g. convert 1/4 to 1/8 notes by using a factor of 2 +msgid "multiply note value" msgstr "" -#: js/PitchBlocks.js:216 -msgid "The Change in pitch block is the difference (in half steps) between the current pitch being played and the previous pitch played." +#: js/blocks/RhythmBlocks.js:542 +msgid "The Tie block works on pairs of notes, combining them into one note." msgstr "" -#: js/PitchBlocks.js:243 -#.TRANS: the change measured in scale-steps between the current pitch and the previous pitch -msgid "scalar change in pitch" +#: js/blocks/RhythmBlocks.js:550 +#.TRANS: tie notes together into one longer note +msgid "tie" msgstr "" -#: js/PitchBlocks.js:250 -#: js/PitchBlocks.js:432 -#: js/PitchBlocks.js:1629 -#: js/DictActions.js:89 -#: js/temperament.js:477 -#: js/temperament.js:481 -#: js/temperament.js:714 -#.TRANS: convert current note to piano key (1-88) -#.TRANS: a mapping of pitch to the 88 piano keys -msgid "pitch number" +#: js/blocks/RhythmBlocks.js:591 +#: js/blocks/RhythmBlocks.js:671 +#.TRANS: a dotted note is played for 1.5x its value, e.g., 1/8. --> 3/16 +msgid "dot" msgstr "" -#: js/PitchBlocks.js:256 -msgid "The Pitch number block is the value of the pitch of the note currently being played." +#: js/blocks/RhythmBlocks.js:619 +#: js/turtleactions/RhythmActions.js:221 +msgid "An argument of -1 results in a note value of 0." msgstr "" -#: js/PitchBlocks.js:329 -#: js/PitchBlocks.js:433 -#.TRANS: the current pitch expressed in Hertz -msgid "pitch in hertz" +#: js/blocks/RhythmBlocks.js:661 +msgid "The Dot block extends the duration of a note by 50%." msgstr "" -#: js/PitchBlocks.js:334 -msgid "The Pitch in Hertz block is the value in Hertz of the pitch of the note currently being played." +#: js/blocks/RhythmBlocks.js:663 +msgid "Eg a dotted quarter note will play for 3/8 (1/4 + 1/8) of a beat." msgstr "" -#: js/PitchBlocks.js:367 -#: js/DictActions.js:87 -msgid "current pitch" +#: js/blocks/RhythmBlocks.js:765 +#.TRANS: Japanese only: note value block for drum +msgid "note value drum" msgstr "" -#: js/PitchBlocks.js:373 -msgid "The Current Pitch block is used with the Pitch Converter block. In the example above, current pitch, sol 4, is displayed as 392 hertz." +#: js/blocks/RhythmBlocks.js:829 +msgid "392 hertz" msgstr "" -#: js/PitchBlocks.js:410 -msgid "This block converts the pitch value of the last note played into different formats such as hertz, letter name, pitch number, et al." +#: js/blocks/RhythmBlocks.js:1119 +msgid "The Note block is a container for one or more Pitch blocks." msgstr "" -#: js/PitchBlocks.js:434 -msgid "alphabet" +#: js/blocks/RhythmBlocks.js:1121 +msgid "The Note block specifies the duration (note value) of its contents." msgstr "" -#: js/PitchBlocks.js:436 -#.TRANS: Translate as "alphabet class" -msgid "letter class" +#: js/blocks/RhythmBlocks.js:1128 +#: js/blocks/PitchBlocks.js:974 +#: js/blocks/PitchBlocks.js:1007 +#: js/blocks/ProgramBlocks.js:1186 +#: js/blocks/ProgramBlocks.js:1227 +#: js/widgets/status.js:190 +#: js/widgets/temperament.js:464 +#: js/widgets/temperament.js:486 +#: js/widgets/temperament.js:496 +#: js/widgets/temperament.js:617 +#: plugins/rodi.rtp:192 +#.TRANS: a musical note consisting of pitch and duration +msgid "note" msgstr "" -#: js/PitchBlocks.js:437 -msgid "solfege class" +#: js/blocks/RhythmBlocks.js:1130 +msgid "value2" msgstr "" -#: js/PitchBlocks.js:438 -msgid "staff y" +#: js/blocks/RhythmBlocks.js:1200 +msgid "define frequency" msgstr "" -#: js/PitchBlocks.js:439 -msgid "solfege syllable" +#: js/blocks/RhythmBlocks.js:1218 +#: js/widgets/temperament.js:787 +#: js/widgets/temperament.js:1587 +msgid "octave space" msgstr "" -#: js/PitchBlocks.js:440 -msgid "pitch class" +#: js/blocks/SensorsBlocks.js:36 +msgid "The Input block prompts for keyboard input." msgstr "" -#: js/PitchBlocks.js:441 -msgid "scalar class" +#: js/blocks/SensorsBlocks.js:46 +msgid "input" msgstr "" -#: js/PitchBlocks.js:443 -msgid "nth degree" +#: js/blocks/SensorsBlocks.js:64 +msgid "Input a value" msgstr "" -#: js/PitchBlocks.js:444 -msgid "pitch to shade" +#: js/blocks/SensorsBlocks.js:126 +msgid "input value" msgstr "" -#: js/PitchBlocks.js:445 -msgid "pitch to color" +#: js/blocks/SensorsBlocks.js:131 +msgid "The Input-value block stores the input." msgstr "" -#: js/PitchBlocks.js:629 -#: js/musickeyboard.js:565 -#.TRANS: MIDI is a technical standard for electronic music -msgid "MIDI" +#: js/blocks/SensorsBlocks.js:238 +msgid "loudness" msgstr "" -#: js/PitchBlocks.js:642 -#.TRANS: set an offset associated with the numeric piano keyboard mapping -msgid "set pitch number offset" +#: js/blocks/SensorsBlocks.js:245 +msgid "The Loudness block returns the volume detected by the microphone." msgstr "" -#: js/PitchBlocks.js:645 -msgid "The Set pitch number offset block is used to set the offset for mapping pitch numbers to pitch and octave." +#: js/blocks/SensorsBlocks.js:300 +msgid "click" msgstr "" -#: js/PitchBlocks.js:679 -#.TRANS: convert piano key number (1-88) to pitch -msgid "number to pitch" +#: js/blocks/SensorsBlocks.js:306 +msgid "The Click block triggers an event if a mouse has been clicked." msgstr "" -#: js/PitchBlocks.js:682 -msgid "The Number to pitch block will convert a pitch number to a pich name." +#: js/blocks/SensorsBlocks.js:313 +msgid "The Click block triggers an event if a turtle has been clicked." msgstr "" -#: js/PitchBlocks.js:715 -#.TRANS: convert piano key number (1-88) to octave -msgid "number to octave" +#: js/blocks/SensorsBlocks.js:342 +msgid "cursor over" msgstr "" -#: js/PitchBlocks.js:717 -msgid "The Number to octave block will convert a pitch number to an octave." +#: js/blocks/SensorsBlocks.js:387 +msgid "cursor out" msgstr "" -#: js/PitchBlocks.js:726 -msgid "y to pitch" +#: js/blocks/SensorsBlocks.js:433 +msgid "cursor button down" msgstr "" -#: js/PitchBlocks.js:729 -msgid "Y to pitch block will convert a staff y position to corresponding pitch notation." +#: js/blocks/SensorsBlocks.js:477 +msgid "cursor button up" msgstr "" -#: js/PitchBlocks.js:841 -msgid "accidental selector" +#: js/blocks/SensorsBlocks.js:521 +#: js/blocks/PenBlocks.js:48 +#: plugins/rodi.rtp:219 +msgid "blue" msgstr "" -#: js/PitchBlocks.js:844 -msgid "The Accidental selector block is used to choose between double-sharp, sharp, natural, flat, and double-flat." +#: js/blocks/SensorsBlocks.js:577 +#: js/blocks/PenBlocks.js:64 +#: plugins/rodi.rtp:218 +msgid "green" msgstr "" -#: js/PitchBlocks.js:858 -msgid "Pitch can be specified in terms of ni dha pa ma ga re sa." +#: js/blocks/SensorsBlocks.js:633 +#: js/blocks/PenBlocks.js:112 +#: plugins/rodi.rtp:217 +msgid "red" msgstr "" -#: js/PitchBlocks.js:872 -msgid "Pitch can be specified in terms of C D E F G A B." +#: js/blocks/SensorsBlocks.js:638 +msgid "The Get red block returns the red component of the pixel under the mouse." msgstr "" -#: js/PitchBlocks.js:883 -msgid "solfege" +#: js/blocks/SensorsBlocks.js:644 +msgid "The Get red block returns the red component of the pixel under the turtle." msgstr "" -#: js/PitchBlocks.js:886 -msgid "Pitch can be specified in terms of do re mi fa sol la ti." +#: js/blocks/SensorsBlocks.js:685 +#: plugins/rodi.rtp:216 +msgid "pixel color" msgstr "" -#: js/PitchBlocks.js:920 -msgid "The Invert block rotates any contained notes around a target note." +#: js/blocks/SensorsBlocks.js:690 +msgid "The Get pixel block returns the color of the pixel under the mouse." msgstr "" -#: js/PitchBlocks.js:927 -#.TRANS: pitch inversion rotates a pitch around another pitch -msgid "invert" +#: js/blocks/SensorsBlocks.js:696 +msgid "The Get pixel block returns the color of the pixel under the turtle." msgstr "" -#: js/PitchBlocks.js:929 -#: js/PitchBlocks.js:935 -#: js/PitchActions.js:727 -#: js/musicutils.js:726 -#: js/musicutils.js:902 -#.TRANS: invert based on even or odd number or musical scale -#.TRANS: even numbers -msgid "even" +#: js/blocks/SensorsBlocks.js:758 +msgid "time" msgstr "" -#: js/PitchBlocks.js:935 -#: js/PitchActions.js:729 -#: js/musicutils.js:728 -#: js/musicutils.js:903 -#.TRANS: odd numbers -msgid "odd" +#: js/blocks/SensorsBlocks.js:804 +msgid "cursor y" msgstr "" -#: js/PitchBlocks.js:935 -#: js/PitchActions.js:731 -#: js/musicutils.js:729 -#: js/musicutils.js:904 -msgid "scalar" +#: js/blocks/SensorsBlocks.js:809 +msgid "The Cursor Y block returns the vertical position of the mouse." msgstr "" -#: js/PitchBlocks.js:966 -#.TRANS: pitch inversion rotates a pitch around another pitch (odd number) -msgid "invert (odd)" +#: js/blocks/SensorsBlocks.js:845 +msgid "cursor x" msgstr "" -#: js/PitchBlocks.js:999 -#.TRANS: pitch inversion rotates a pitch around another pitch (even number) -msgid "invert (even)" +#: js/blocks/SensorsBlocks.js:850 +msgid "The Cursor X block returns the horizontal position of the mouse." msgstr "" -#: js/PitchBlocks.js:1020 -#.TRANS: register is the octave of the current pitch -msgid "register" +#: js/blocks/SensorsBlocks.js:886 +msgid "mouse button" msgstr "" -#: js/PitchBlocks.js:1024 -msgid "The Register block provides an easy way to modify the register (octave) of the notes that follow it." +#: js/blocks/SensorsBlocks.js:888 +msgid "The Mouse-button block returns True if the mouse button is pressed." msgstr "" -#: js/PitchBlocks.js:1074 -msgid "The Semi-tone transposition block will shift the pitches contained inside Note blocks up (or down) by half steps." +#: js/blocks/SensorsBlocks.js:934 +msgid "to ASCII" msgstr "" -#: js/PitchBlocks.js:1076 -msgid "In the example shown above, sol is shifted up to sol#." +#: js/blocks/SensorsBlocks.js:938 +msgid "The To ASCII block converts numbers to letters." msgstr "" -#: js/PitchBlocks.js:1082 -#.TRANS: adjust the amount of shift (up or down) of a pitch -msgid "semi-tone transpose" +#: js/blocks/SensorsBlocks.js:1005 +msgid "The Keyboard block returns computer keyboard input." msgstr "" -#: js/PitchBlocks.js:1115 -msgid "The Transpose by Ratio block will shift the pitches contained inside Note blocks up (or down) by a ratio" +#: js/blocks/RhythmBlockPaletteBlocks.js:50 +#: js/blocks/RhythmBlockPaletteBlocks.js:233 +#.TRANS: rhythm block +#.TRANS: translate "rhythm1" as rhythm +msgid "rhythm1" msgstr "" -#: js/PitchBlocks.js:1121 -#.TRANS: adjust the amount of shift (up or down) of a pitch -msgid "transpose by ratio" +#: js/blocks/RhythmBlockPaletteBlocks.js:70 +#: js/blocks/RhythmBlockPaletteBlocks.js:252 +#: js/blocks/RhythmBlockPaletteBlocks.js:485 +#: js/blocks/RhythmBlockPaletteBlocks.js:554 +#: js/blocks/RhythmBlockPaletteBlocks.js:875 +msgid "number of notes" msgstr "" -#: js/PitchBlocks.js:1204 -#.TRANS: down sixth means the note is five scale degrees below current note -msgid "down sixth" +#: js/blocks/RhythmBlockPaletteBlocks.js:126 +msgid "polyphonic rhythm" msgstr "" -#: js/PitchBlocks.js:1223 -#.TRANS: down third means the note is two scale degrees below current note -msgid "down third" +#: js/blocks/RhythmBlockPaletteBlocks.js:219 +msgid "The Rhythm block is used to generate rhythm patterns." msgstr "" -#: js/PitchBlocks.js:1242 -#.TRANS: seventh means the note is the six scale degrees above current note -msgid "seventh" +#: js/blocks/RhythmBlockPaletteBlocks.js:280 +msgid "1/64 note" msgstr "" -#: js/PitchBlocks.js:1261 -#.TRANS: sixth means the note is the five scale degrees above current note -msgid "sixth" +#: js/blocks/RhythmBlockPaletteBlocks.js:304 +msgid "1/32 note" msgstr "" -#: js/PitchBlocks.js:1280 -#.TRANS: fifth means the note is the four scale degrees above current note -msgid "fifth" +#: js/blocks/RhythmBlockPaletteBlocks.js:332 +msgid "1/16 note" msgstr "" -#: js/PitchBlocks.js:1300 -#.TRANS: fourth means the note is three scale degrees above current note -msgid "fourth" +#: js/blocks/RhythmBlockPaletteBlocks.js:360 +msgid "eighth note" msgstr "" -#: js/PitchBlocks.js:1319 -#.TRANS: third means the note is two scale degrees above current note -msgid "third" +#: js/blocks/RhythmBlockPaletteBlocks.js:388 +msgid "quarter note" msgstr "" -#: js/PitchBlocks.js:1338 -#.TRANS: second means the note is one scale degree above current note -msgid "second" +#: js/blocks/RhythmBlockPaletteBlocks.js:416 +msgid "half note" msgstr "" -#: js/PitchBlocks.js:1379 -msgid "The Scalar transposition block will shift the pitches contained inside Note blocks up (or down) the scale." +#: js/blocks/RhythmBlockPaletteBlocks.js:444 +msgid "whole note" msgstr "" -#: js/PitchBlocks.js:1381 -msgid "In the example shown above, sol is shifted up to la." +#: js/blocks/RhythmBlockPaletteBlocks.js:482 +#: js/blocks/RhythmBlockPaletteBlocks.js:551 +#: js/blocks/RhythmBlockPaletteBlocks.js:602 +#.TRANS: A tuplet is a note value divided into irregular time values. +msgid "tuplet" msgstr "" -#: js/PitchBlocks.js:1388 -#.TRANS: adjust the amount of shift (up or down) of a pitch by musical scale (scalar) steps -msgid "scalar transpose" +#: js/blocks/RhythmBlockPaletteBlocks.js:768 +msgid "septuplet" msgstr "" -#: js/PitchBlocks.js:1423 -msgid "The Accidental block is used to create sharps and flats" +#: js/blocks/RhythmBlockPaletteBlocks.js:796 +msgid "quintuplet" msgstr "" -#: js/PitchBlocks.js:1430 -#.TRANS: An accidental is a modification to a pitch, e.g., sharp or flat. -msgid "accidental override" +#: js/blocks/RhythmBlockPaletteBlocks.js:824 +msgid "triplet" msgstr "" -#: js/PitchBlocks.js:1543 -msgid "The Hertz block (in combination with a Number block) will play a sound at the specified frequency." +#: js/blocks/RhythmBlockPaletteBlocks.js:851 +msgid "simple tuplet" msgstr "" -#: js/PitchBlocks.js:1633 -msgid "The Pitch Number block will play a pitch associated by its number, e.g. 0 for C and 7 for G." +#: js/blocks/RhythmBlockPaletteBlocks.js:861 +msgid "Tuplets are a collection of notes that get scaled to a specific duration." msgstr "" -#: js/PitchBlocks.js:1665 -#: js/PitchBlocks.js:1707 -#.TRANS: a numeric mapping of the notes in an octave based on the musical mode -#.TRANS: a numeric mapping of the notes in an octave based on the musical mode -msgid "nth modal pitch" +#: js/blocks/DrumBlocks.js:59 +msgid "The Noise name block is used to select a noise synthesizer." msgstr "" -#: js/PitchBlocks.js:1668 -msgid "n^th Modal Pitch takes the pattern of pitches in semitones for a mode and makes each point a degree of the mode," +#: js/blocks/DrumBlocks.js:102 +msgid "The Drum name block is used to select a drum." msgstr "" -#: js/PitchBlocks.js:1670 -msgid "starting from 1 and regardless of tonal framework (i.e. not always 8 notes in the octave)" +#: js/blocks/DrumBlocks.js:146 +msgid "The Effects name block is used to select a sound effect." msgstr "" -#: js/PitchBlocks.js:1711 -msgid "N^th Modal Pitch takes a number as an input as the n^th degree for the given mode. 0 is the first position, 1 is the second, -1 is the note before the first etc." +#: js/blocks/DrumBlocks.js:163 +msgid "noise" msgstr "" -#: js/PitchBlocks.js:1713 -msgid "The pitches change according to the mode specified without any need for respellings." +#: js/blocks/DrumBlocks.js:177 +msgid "The Play noise block will generate white, pink, or brown noise." msgstr "" -#: js/PitchBlocks.js:1752 -msgid "Scale Degree is a common convention in music. Scale Degree offers seven possible positions in the scale (1-7) and can be modified via accidentals." +#: js/blocks/DrumBlocks.js:317 +msgid "Replace every instance of a pitch with a drum sound." msgstr "" -#: js/PitchBlocks.js:1754 -msgid "Scale Degree 1 is always the first pitch in a given scale, regardless of octave." +#: js/blocks/DrumBlocks.js:328 +#.TRANS: map a pitch to a drum sound +msgid "map pitch to drum" msgstr "" -#: js/PitchBlocks.js:1776 -#.TRANS: step some number of notes in current musical scale -msgid "scalar step" +#: js/blocks/DrumBlocks.js:395 +msgid "In the example above, a kick drum sound will be played instead of sol." msgstr "" -#: js/PitchBlocks.js:1781 -msgid "The Scalar Step block (in combination with a Number block) will play the next pitch in a scale," +#: js/blocks/DrumBlocks.js:407 +#.TRANS: set the current drum sound for playback +msgid "set drum" msgstr "" -#: js/PitchBlocks.js:1783 -msgid "eg if the last note played was sol, Scalar Step 1 will play la." +#: js/blocks/DrumBlocks.js:451 +msgid "sound effect" msgstr "" -#: js/PitchBlocks.js:1818 -msgid "The Pitch block specifies the pitch name and octave of a note that together determine the frequency of the note." +#: js/blocks/DrumBlocks.js:489 +msgid "You can use multiple Drum blocks within a Note block." msgstr "" -#: js/GraphicsBlocks.js:46 -#: js/DictActions.js:77 -#: js/DictActions.js:155 -#: js/DictActions.js:189 +#: js/blocks/GraphicsBlocks.js:46 +#: js/turtleactions/DictActions.js:77 +#: js/turtleactions/DictActions.js:144 +#: js/turtleactions/DictActions.js:173 msgid "heading" msgstr "" -#: js/GraphicsBlocks.js:56 +#: js/blocks/GraphicsBlocks.js:56 msgid "The Heading block returns the orientation of the mouse." msgstr "" -#: js/GraphicsBlocks.js:62 +#: js/blocks/GraphicsBlocks.js:62 msgid "The Heading block returns the orientation of the turtle." msgstr "" -#: js/GraphicsBlocks.js:133 +#: js/blocks/GraphicsBlocks.js:133 msgid "The Y block returns the vertical position of the mouse." msgstr "" -#: js/GraphicsBlocks.js:140 +#: js/blocks/GraphicsBlocks.js:140 msgid "The Y block returns the vertical position of the turtle." msgstr "" -#: js/GraphicsBlocks.js:149 +#: js/blocks/GraphicsBlocks.js:149 msgid "y3" msgstr "" -#: js/GraphicsBlocks.js:219 +#: js/blocks/GraphicsBlocks.js:219 msgid "The X block returns the horizontal position of the mouse." msgstr "" -#: js/GraphicsBlocks.js:226 +#: js/blocks/GraphicsBlocks.js:226 msgid "The X block returns the horizontal position of the turtle." msgstr "" -#: js/GraphicsBlocks.js:235 +#: js/blocks/GraphicsBlocks.js:235 msgid "x3" msgstr "" -#: js/GraphicsBlocks.js:295 +#: js/blocks/GraphicsBlocks.js:295 msgid "scroll xy" msgstr "" -#: js/GraphicsBlocks.js:303 +#: js/blocks/GraphicsBlocks.js:303 msgid "The Scroll XY block moves the canvas." msgstr "" -#: js/GraphicsBlocks.js:313 +#: js/blocks/GraphicsBlocks.js:313 msgid "x2" msgstr "" -#: js/GraphicsBlocks.js:313 +#: js/blocks/GraphicsBlocks.js:313 msgid "y2" msgstr "" -#: js/GraphicsBlocks.js:373 -#: js/temperament.js:213 -#: js/temperament.js:241 +#: js/blocks/GraphicsBlocks.js:373 +#: js/widgets/temperament.js:319 +#: js/widgets/temperament.js:347 msgid "clear" msgstr "" -#: js/GraphicsBlocks.js:426 +#: js/blocks/GraphicsBlocks.js:426 msgid "The Control-point 2 block sets the second control point for the Bezier curve." msgstr "" -#: js/GraphicsBlocks.js:433 +#: js/blocks/GraphicsBlocks.js:433 msgid "control point 2" msgstr "" -#: js/GraphicsBlocks.js:436 -#: js/GraphicsBlocks.js:487 -#: js/GraphicsBlocks.js:534 -#: js/GraphicsBlocks.js:750 +#: js/blocks/GraphicsBlocks.js:436 +#: js/blocks/GraphicsBlocks.js:487 +#: js/blocks/GraphicsBlocks.js:534 +#: js/blocks/GraphicsBlocks.js:750 msgid "x1" msgstr "" -#: js/GraphicsBlocks.js:436 -#: js/GraphicsBlocks.js:487 -#: js/GraphicsBlocks.js:534 -#: js/GraphicsBlocks.js:750 +#: js/blocks/GraphicsBlocks.js:436 +#: js/blocks/GraphicsBlocks.js:487 +#: js/blocks/GraphicsBlocks.js:534 +#: js/blocks/GraphicsBlocks.js:750 msgid "y1" msgstr "" -#: js/GraphicsBlocks.js:477 +#: js/blocks/GraphicsBlocks.js:477 msgid "The Control-point 1 block sets the first control point for the Bezier curve." msgstr "" -#: js/GraphicsBlocks.js:484 +#: js/blocks/GraphicsBlocks.js:484 msgid "control point 1" msgstr "" -#: js/GraphicsBlocks.js:527 +#: js/blocks/GraphicsBlocks.js:527 msgid "The Bezier block draws a Bezier curve." msgstr "" -#: js/GraphicsBlocks.js:531 +#: js/blocks/GraphicsBlocks.js:531 msgid "bezier" msgstr "" -#: js/GraphicsBlocks.js:592 +#: js/blocks/GraphicsBlocks.js:592 msgid "The Arc block moves the turtle in an arc." msgstr "" -#: js/GraphicsBlocks.js:600 +#: js/blocks/GraphicsBlocks.js:600 msgid "arc" msgstr "" -#: js/GraphicsBlocks.js:603 +#: js/blocks/GraphicsBlocks.js:603 msgid "angle" msgstr "" -#: js/GraphicsBlocks.js:603 +#: js/blocks/GraphicsBlocks.js:603 msgid "radius" msgstr "" -#: js/GraphicsBlocks.js:620 -#: js/GraphicsBlocks.js:767 -#: js/GraphicsBlocks.js:1010 -#: js/GraphicsBlocks.js:1093 +#: js/blocks/GraphicsBlocks.js:620 +#: js/blocks/GraphicsBlocks.js:767 +#: js/blocks/GraphicsBlocks.js:1010 +#: js/blocks/GraphicsBlocks.js:1093 msgid "Value must be within -5000 to 5000 when Wrap Mode is off." msgstr "" -#: js/GraphicsBlocks.js:622 -#: js/GraphicsBlocks.js:769 -#: js/GraphicsBlocks.js:1012 -#: js/GraphicsBlocks.js:1095 +#: js/blocks/GraphicsBlocks.js:622 +#: js/blocks/GraphicsBlocks.js:769 +#: js/blocks/GraphicsBlocks.js:1012 +#: js/blocks/GraphicsBlocks.js:1095 msgid "Value must be within -20000 to 20000 when Wrap Mode is on." msgstr "" -#: js/GraphicsBlocks.js:660 +#: js/blocks/GraphicsBlocks.js:660 msgid "set heading" msgstr "seth" -#: js/GraphicsBlocks.js:673 +#: js/blocks/GraphicsBlocks.js:673 msgid "The Set heading block sets the heading of the turtle." msgstr "" -#: js/GraphicsBlocks.js:733 +#: js/blocks/GraphicsBlocks.js:733 msgid "The Set XY block moves the mouse to a specific position on the screen." msgstr "" -#: js/GraphicsBlocks.js:739 +#: js/blocks/GraphicsBlocks.js:739 msgid "The Set XY block moves the turtle to a specific position on the screen." msgstr "" -#: js/GraphicsBlocks.js:747 +#: js/blocks/GraphicsBlocks.js:747 msgid "set xy" msgstr "" -#: js/GraphicsBlocks.js:819 +#: js/blocks/GraphicsBlocks.js:819 msgid "The Right block turns the mouse to the right." msgstr "" -#: js/GraphicsBlocks.js:826 +#: js/blocks/GraphicsBlocks.js:826 msgid "The Right block turns the turtle to the right." msgstr "" -#: js/GraphicsBlocks.js:835 +#: js/blocks/GraphicsBlocks.js:835 msgid "right1" msgstr "" -#: js/GraphicsBlocks.js:835 +#: js/blocks/GraphicsBlocks.js:835 #: plugins/rodi.rtp:77 #: plugins/rodi.rtp:340 #: plugins/rodi.rtp:375 msgid "right" msgstr "" -#: js/GraphicsBlocks.js:899 +#: js/blocks/GraphicsBlocks.js:899 msgid "The Left block turns the mouse to the left." msgstr "" -#: js/GraphicsBlocks.js:906 +#: js/blocks/GraphicsBlocks.js:906 msgid "The Left block turns the turtle to the left." msgstr "" -#: js/GraphicsBlocks.js:915 +#: js/blocks/GraphicsBlocks.js:915 msgid "left1" msgstr "" -#: js/GraphicsBlocks.js:915 +#: js/blocks/GraphicsBlocks.js:915 #: plugins/rodi.rtp:79 #: plugins/rodi.rtp:339 #: plugins/rodi.rtp:362 msgid "left" msgstr "" -#: js/GraphicsBlocks.js:967 -#: js/temperament.js:734 -#: js/temperament.js:933 +#: js/blocks/GraphicsBlocks.js:967 +#: js/widgets/temperament.js:875 +#: js/widgets/temperament.js:1078 #: plugins/rodi.rtp:69 #: plugins/rodi.rtp:387 msgid "back" msgstr "" -#: js/GraphicsBlocks.js:976 +#: js/blocks/GraphicsBlocks.js:976 msgid "The Back block moves the mouse backward." msgstr "" -#: js/GraphicsBlocks.js:983 +#: js/blocks/GraphicsBlocks.js:983 msgid "The Back block moves the turtle backward." msgstr "" -#: js/GraphicsBlocks.js:1050 +#: js/blocks/GraphicsBlocks.js:1050 #: plugins/rodi.rtp:71 #: plugins/rodi.rtp:400 msgid "forward" msgstr "" -#: js/GraphicsBlocks.js:1059 +#: js/blocks/GraphicsBlocks.js:1059 msgid "The Forward block moves the mouse forward." msgstr "" -#: js/GraphicsBlocks.js:1066 +#: js/blocks/GraphicsBlocks.js:1066 msgid "The Forward block moves the turtle forward." msgstr "" -#: js/GraphicsBlocks.js:1154 -#: js/GraphicsBlocks.js:1172 +#: js/blocks/GraphicsBlocks.js:1154 +#: js/blocks/GraphicsBlocks.js:1172 msgid "wrap" msgstr "" -#: js/OrnamentBlocks.js:32 -msgid "staccato factor" -msgstr "" - -#: js/OrnamentBlocks.js:108 -msgid "slur factor" -msgstr "" - -#: js/OrnamentBlocks.js:217 -#: js/OrnamentBlocks.js:309 -#.TRANS: the neighbor refers to a neighboring note, e.g., D is a neighbor of C -msgid "neighbor" -msgstr "" - -#: js/OrnamentBlocks.js:293 -msgid "The Neighbor block rapidly switches between neighboring pitches." -msgstr "" - -#: js/OrnamentBlocks.js:364 -msgid "glide" -msgstr "" - -#: js/OrnamentBlocks.js:479 -#: js/OrnamentBlocks.js:643 -msgid "slur" -msgstr "" - -#: js/OrnamentBlocks.js:558 -#: js/OrnamentBlocks.js:710 -#.TRANS: play each note sharply detached from the others -msgid "staccato" -msgstr "" - -#: js/PenBlocks.js:24 +#: js/blocks/PenBlocks.js:30 msgid "purple" msgstr "" -#: js/PenBlocks.js:37 -#: js/SensorsBlocks.js:521 -#: plugins/rodi.rtp:219 -msgid "blue" -msgstr "" - -#: js/PenBlocks.js:50 -#: js/SensorsBlocks.js:577 -#: plugins/rodi.rtp:218 -msgid "green" -msgstr "" - -#: js/PenBlocks.js:63 +#: js/blocks/PenBlocks.js:80 msgid "yellow" msgstr "" -#: js/PenBlocks.js:76 +#: js/blocks/PenBlocks.js:96 #: plugins/nutrition.rtp:164 msgid "orange" msgstr "" -#: js/PenBlocks.js:89 -#: js/SensorsBlocks.js:633 -#: plugins/rodi.rtp:217 -msgid "red" -msgstr "" - -#: js/PenBlocks.js:102 +#: js/blocks/PenBlocks.js:128 msgid "white" msgstr "" -#: js/PenBlocks.js:115 +#: js/blocks/PenBlocks.js:144 msgid "black" msgstr "" -#: js/PenBlocks.js:128 +#: js/blocks/PenBlocks.js:163 msgid "begin fill" msgstr "" -#: js/PenBlocks.js:143 +#: js/blocks/PenBlocks.js:190 msgid "end fill" msgstr "" -#: js/PenBlocks.js:159 -#: js/PenBlocks.js:386 +#: js/blocks/PenBlocks.js:212 +#: js/blocks/PenBlocks.js:560 #.TRANS: set the background color msgid "background" msgstr "" -#: js/PenBlocks.js:206 -#: js/DictActions.js:71 -#: js/DictActions.js:149 -#: js/DictActions.js:186 +#: js/blocks/PenBlocks.js:274 +#: js/turtleactions/DictActions.js:71 +#: js/turtleactions/DictActions.js:138 +#: js/turtleactions/DictActions.js:170 msgid "grey" msgstr "" -#: js/PenBlocks.js:210 +#: js/blocks/PenBlocks.js:282 msgid "The Grey block returns the current pen grey value." msgstr "" -#: js/PenBlocks.js:243 -#: js/DictActions.js:69 -#: js/DictActions.js:147 -#: js/DictActions.js:185 +#: js/blocks/PenBlocks.js:340 +#: js/turtleactions/DictActions.js:69 +#: js/turtleactions/DictActions.js:136 +#: js/turtleactions/DictActions.js:169 msgid "shade" msgstr "" -#: js/PenBlocks.js:247 +#: js/blocks/PenBlocks.js:347 msgid "The Shade block returns the current pen shade value." msgstr "" -#: js/PenBlocks.js:280 -#: js/DictActions.js:67 -#: js/DictActions.js:145 -#: js/DictActions.js:184 +#: js/blocks/PenBlocks.js:405 +#: js/turtleactions/DictActions.js:67 +#: js/turtleactions/DictActions.js:134 +#: js/turtleactions/DictActions.js:168 msgid "color" msgstr "" -#: js/PenBlocks.js:285 +#: js/blocks/PenBlocks.js:415 msgid "The Color block returns the current pen color." msgstr "" -#: js/PenBlocks.js:318 -#: js/DictActions.js:73 -#: js/DictActions.js:151 -#: js/DictActions.js:187 +#: js/blocks/PenBlocks.js:470 +#: js/turtleactions/DictActions.js:73 +#: js/turtleactions/DictActions.js:140 +#: js/turtleactions/DictActions.js:171 msgid "pen size" msgstr "" -#: js/PenBlocks.js:322 +#: js/blocks/PenBlocks.js:474 msgid "The Pen size block returns the current pen size value." msgstr "" -#: js/PenBlocks.js:355 +#: js/blocks/PenBlocks.js:513 msgid "set font" msgstr "" -#: js/PenBlocks.js:358 +#: js/blocks/PenBlocks.js:518 msgid "The Set font block sets the font used by the Show block." msgstr "" -#: js/PenBlocks.js:391 +#: js/blocks/PenBlocks.js:567 msgid "The Background block sets the window background color." msgstr "" -#: js/PenBlocks.js:408 +#: js/blocks/PenBlocks.js:598 msgid "The Hollow line block creates a line with a hollow center." msgstr "" -#: js/PenBlocks.js:415 +#: js/blocks/PenBlocks.js:606 #.TRANS: draw a line logo has a hollow space down its center msgid "hollow line" msgstr "" -#: js/PenBlocks.js:462 +#: js/blocks/PenBlocks.js:675 msgid "The Fill block fills in a shape with a color." msgstr "" -#: js/PenBlocks.js:470 +#: js/blocks/PenBlocks.js:684 #.TRANS: fill in as a solid color msgid "fill" msgstr "" -#: js/PenBlocks.js:527 +#: js/blocks/PenBlocks.js:761 #.TRANS: raise up the pen so logo it does not draw when it is moved msgid "pen up" msgstr "" -#: js/PenBlocks.js:532 +#: js/blocks/PenBlocks.js:768 msgid "The Pen-up block raises the pen so that it does not draw." msgstr "" -#: js/PenBlocks.js:552 +#: js/blocks/PenBlocks.js:802 #.TRANS: put down the pen so logo it draws when it is moved msgid "pen down" msgstr "" -#: js/PenBlocks.js:557 +#: js/blocks/PenBlocks.js:810 msgid "The Pen-down block lowers the pen so that it draws." msgstr "" -#: js/PenBlocks.js:577 +#: js/blocks/PenBlocks.js:844 #.TRANS: set the width of the line drawn by the pen msgid "set pen size" msgstr "" -#: js/PenBlocks.js:583 +#: js/blocks/PenBlocks.js:854 msgid "The Set-pen-size block changes the size of the pen." msgstr "" -#: js/PenBlocks.js:623 +#: js/blocks/PenBlocks.js:913 #.TRANS: set degree of translucence of the pen color msgid "set translucency" msgstr "" -#: js/PenBlocks.js:627 +#: js/blocks/PenBlocks.js:921 msgid "The Set translucency block changes the opacity of the pen." msgstr "" -#: js/PenBlocks.js:668 +#: js/blocks/PenBlocks.js:981 msgid "set hue" msgstr "" -#: js/PenBlocks.js:672 +#: js/blocks/PenBlocks.js:989 msgid "The Set hue block changes the color of the pen." msgstr "" -#: js/PenBlocks.js:711 +#: js/blocks/PenBlocks.js:1047 msgid "set shade" msgstr "" -#: js/PenBlocks.js:717 +#: js/blocks/PenBlocks.js:1057 msgid "The Set-shade block changes the pen color from dark to light." msgstr "" -#: js/PenBlocks.js:757 +#: js/blocks/PenBlocks.js:1111 #.TRANS: set the level of vividness of the pen color msgid "set grey" msgstr "" -#: js/PenBlocks.js:761 +#: js/blocks/PenBlocks.js:1119 msgid "The Set grey block changes the vividness of the pen color." msgstr "" -#: js/PenBlocks.js:800 +#: js/blocks/PenBlocks.js:1172 msgid "set color" msgstr "" -#: js/PenBlocks.js:806 +#: js/blocks/PenBlocks.js:1182 msgid "The Set-color block changes the pen color." msgstr "" -#: js/VolumeBlocks.js:35 -msgid "synth volume" -msgstr "" - -#: js/VolumeBlocks.js:39 -msgid "The Synth volume block returns the current volume of the current synthesizer." -msgstr "" - -#: js/VolumeBlocks.js:47 -#: js/musicutils.js:730 -#: js/synthutils.js:56 -#.TRANS: musical instrument -msgid "piano" -msgstr "" - -#: js/VolumeBlocks.js:105 -msgid "master volume" -msgstr "" - -#: js/VolumeBlocks.js:109 -msgid "The Master volume block returns the master volume." -msgstr "" - -#: js/VolumeBlocks.js:355 -#: js/VolumeBlocks.js:524 -msgid "set synth volume" -msgstr "" - -#: js/VolumeBlocks.js:362 -#: js/VolumeBlocks.js:545 -msgid "synth" -msgstr "" - -#: js/VolumeBlocks.js:403 -#: js/VolumeBlocks.js:577 -#: js/VolumeBlocks.js:740 -#: js/VolumeActions.js:173 -msgid "Setting volume to 0." -msgstr "" - -#: js/VolumeBlocks.js:440 -msgid "Synth not found" -msgstr "" - -#: js/VolumeBlocks.js:494 -msgid "set drum volume" -msgstr "" - -#: js/VolumeBlocks.js:530 -msgid "The Set synth volume block will change the volume of a particular synth," -msgstr "" - -#: js/VolumeBlocks.js:532 -msgid "eg guitar violin snare drum etc." -msgstr "" - -#: js/VolumeBlocks.js:534 -msgid "The default volume is 50." -msgstr "" - -#: js/VolumeBlocks.js:536 -msgid "The range is 0 for silence to 100 for full volume." -msgstr "" - -#: js/VolumeBlocks.js:597 -msgid "set panning" -msgstr "" - -#: js/VolumeBlocks.js:603 -msgid "The Set Panning block sets the panning for all synthesizers." -msgstr "" - -#: js/VolumeBlocks.js:625 -msgid "Warning: Sound is coming out from only the left or right side." -msgstr "" - -#: js/VolumeBlocks.js:647 -#: js/VolumeBlocks.js:695 -msgid "set master volume" -msgstr "" - -#: js/VolumeBlocks.js:653 -msgid "The Set master volume block sets the volume for all synthesizers." -msgstr "" - -#: js/VolumeBlocks.js:784 -msgid "The Set relative volume block changes the volume of the contained notes." -msgstr "" - -#: js/VolumeBlocks.js:791 -msgid "set relative volume" -msgstr "" - -#: js/VolumeBlocks.js:857 -msgid "decrescendo" -msgstr "" - -#: js/VolumeBlocks.js:921 -msgid "crescendo" -msgstr "" - -#: js/ToneBlocks.js:34 -msgid "oscillator" -msgstr "" - -#: js/ToneBlocks.js:44 -#: js/timbre.js:1562 -#.TRANS: Partials refers to the number of sine waves combined into the sound. -msgid "partials" -msgstr "" - -#: js/ToneBlocks.js:76 -msgid "You are adding multiple oscillator blocks." -msgstr "" - -#: js/ToneBlocks.js:144 -#: js/timbre.js:1225 -#.TRANS: a duo synthesizer combines a synth with a sequencer -msgid "duo synth" -msgstr "" - -#: js/ToneBlocks.js:149 -msgid "The Duo synth block is a duo-frequency modulator used to define a timbre." -msgstr "" - -#: js/ToneBlocks.js:157 -#: js/timbre.js:1476 -msgid "vibrato rate" -msgstr "" - -#: js/ToneBlocks.js:157 -msgid "vibrato intensity" -msgstr "" - -#: js/ToneBlocks.js:185 -#: js/timbre.js:1221 -#.TRANS: AM (amplitude modulation) synthesizer -msgid "AM synth" -msgstr "" - -#: js/ToneBlocks.js:189 -msgid "The AM synth block is an amplitude modulator used to define a timbre." -msgstr "" - -#: js/ToneBlocks.js:224 -#: js/timbre.js:1223 -#.TRANS: FM (frequency modulation) synthesizer -msgid "FM synth" -msgstr "" - -#: js/ToneBlocks.js:228 -msgid "The FM synth block is a frequency modulator used to define a timbre." +#: js/blocks/PitchBlocks.js:141 +#.TRANS: musical transposition (adjustment of pitch up or down) +msgid "transposition" msgstr "" -#: js/ToneBlocks.js:262 -msgid "partial" +#: js/blocks/PitchBlocks.js:168 +#.TRANS: step down one note in current musical scale +msgid "scalar step down" msgstr "" -#: js/ToneBlocks.js:265 -msgid "The Partial block is used to specify a weight for a specific partial harmonic." +#: js/blocks/PitchBlocks.js:172 +msgid "The Scalar step down block returns the number of semi-tones down to the previous note in the current key and mode." msgstr "" -#: js/ToneBlocks.js:284 -#.TRANS: partials are weighted components in a harmonic series -msgid "Partial weight must be between 0 and 1." +#: js/blocks/PitchBlocks.js:190 +#.TRANS: step up one note in current musical scale +msgid "scalar step up" msgstr "" -#: js/ToneBlocks.js:297 -#.TRANS: partials are weighted components in a harmonic series -msgid "Partial block should be used inside of a Weighted-partials block." +#: js/blocks/PitchBlocks.js:194 +msgid "The Scalar step up block returns the number of semi-tones up to the next note in the current key and mode." msgstr "" -#: js/ToneBlocks.js:325 -#.TRANS: partials are weighted components in a harmonic series -msgid "weighted partials" +#: js/blocks/PitchBlocks.js:212 +#.TRANS: the change measured in half-steps between the current pitch and the previous pitch +msgid "change in pitch" msgstr "" -#: js/ToneBlocks.js:383 -msgid "The Harmonic block will add harmonics to the contained notes." +#: js/blocks/PitchBlocks.js:216 +msgid "The Change in pitch block is the difference (in half steps) between the current pitch being played and the previous pitch played." msgstr "" -#: js/ToneBlocks.js:390 -#.TRANS: A harmonic is an overtone. -msgid "harmonic" +#: js/blocks/PitchBlocks.js:243 +#.TRANS: the change measured in scale-steps between the current pitch and the previous pitch +msgid "scalar change in pitch" msgstr "" -#: js/ToneBlocks.js:431 -msgid "The Distortion block adds distortion to the pitch." +#: js/blocks/PitchBlocks.js:250 +#: js/blocks/PitchBlocks.js:432 +#: js/blocks/PitchBlocks.js:1667 +#: js/turtleactions/DictActions.js:89 +#: js/widgets/temperament.js:610 +#: js/widgets/temperament.js:614 +#: js/widgets/temperament.js:855 +#.TRANS: convert current note to piano key (1-88) +#.TRANS: a mapping of pitch to the 88 piano keys +msgid "pitch number" msgstr "" -#: js/ToneBlocks.js:438 -#: js/timbre.js:2100 -#.TRANS: distortion is an alteration in the sound -msgid "distortion" +#: js/blocks/PitchBlocks.js:256 +msgid "The Pitch number block is the value of the pitch of the note currently being played." msgstr "" -#: js/ToneBlocks.js:487 -msgid "The Tremolo block adds a wavering effect." +#: js/blocks/PitchBlocks.js:329 +#: js/blocks/PitchBlocks.js:433 +#.TRANS: the current pitch expressed in Hertz +msgid "pitch in hertz" msgstr "" -#: js/ToneBlocks.js:495 -#: js/timbre.js:2092 -#.TRANS: a wavering effect in a musical tone -msgid "tremolo" +#: js/blocks/PitchBlocks.js:334 +msgid "The Pitch in Hertz block is the value in Hertz of the pitch of the note currently being played." msgstr "" -#: js/ToneBlocks.js:500 -#: js/ToneBlocks.js:569 -#: js/ToneBlocks.js:630 -#: js/ToneBlocks.js:689 -#: js/timbre.js:2134 -#: js/timbre.js:2222 -#: js/timbre.js:2317 -#: js/timbre.js:2419 -#.TRANS: rate at which tremolo wavers -msgid "rate" +#: js/blocks/PitchBlocks.js:367 +#: js/turtleactions/DictActions.js:87 +msgid "current pitch" msgstr "" -#: js/ToneBlocks.js:502 -#: js/ToneBlocks.js:630 -#: js/timbre.js:2137 -#: js/timbre.js:2328 -#.TRANS: amplitude of tremolo waver -msgid "depth" +#: js/blocks/PitchBlocks.js:373 +msgid "The Current Pitch block is used with the Pitch Converter block. In the example above, current pitch, sol 4, is displayed as 392 hertz." msgstr "" -#: js/ToneBlocks.js:559 -msgid "The Phaser block adds a sweeping sound." +#: js/blocks/PitchBlocks.js:410 +msgid "This block converts the pitch value of the last note played into different formats such as hertz, letter name, pitch number, et al." msgstr "" -#: js/ToneBlocks.js:566 -#: js/timbre.js:2098 -#.TRANS: alter the phase of the sound -msgid "phaser" +#: js/blocks/PitchBlocks.js:434 +msgid "alphabet" msgstr "" -#: js/ToneBlocks.js:569 -#: js/timbre.js:2422 -msgid "octaves" +#: js/blocks/PitchBlocks.js:436 +#.TRANS: Translate as "alphabet class" +msgid "letter class" msgstr "" -#: js/ToneBlocks.js:569 -#: js/timbre.js:2425 -msgid "base frequency" +#: js/blocks/PitchBlocks.js:437 +msgid "solfege class" msgstr "" -#: js/ToneBlocks.js:619 -msgid "The Chorus block adds a chorus effect." +#: js/blocks/PitchBlocks.js:438 +msgid "staff y" msgstr "" -#: js/ToneBlocks.js:627 -#: js/timbre.js:2096 -#.TRANS: musical effect to simulate a choral sound -msgid "chorus" +#: js/blocks/PitchBlocks.js:439 +msgid "solfege syllable" msgstr "" -#: js/ToneBlocks.js:630 -msgid "delay" +#: js/blocks/PitchBlocks.js:440 +msgid "pitch class" msgstr "" -#: js/ToneBlocks.js:678 -msgid "The Vibrato block adds a rapid, slight variation in pitch." +#: js/blocks/PitchBlocks.js:441 +msgid "scalar class" msgstr "" -#: js/ToneBlocks.js:686 -#: js/timbre.js:2094 -#.TRANS: a rapid, slight variation in pitch -msgid "vibrato" +#: js/blocks/PitchBlocks.js:443 +msgid "nth degree" msgstr "" -#: js/ToneBlocks.js:689 -#: js/timbre.js:2221 -msgid "intensity" +#: js/blocks/PitchBlocks.js:444 +msgid "pitch to shade" msgstr "" -#: js/ToneBlocks.js:733 -#.TRANS: select synthesizer -msgid "set synth" +#: js/blocks/PitchBlocks.js:445 +msgid "pitch to color" msgstr "" -#: js/ToneBlocks.js:804 -msgid "synth name" +#: js/blocks/PitchBlocks.js:629 +#: js/widgets/musickeyboard.js:735 +#.TRANS: MIDI is a technical standard for electronic music +msgid "MIDI" msgstr "" -#: js/ToneBlocks.js:842 -msgid "set default instrument" +#: js/blocks/PitchBlocks.js:642 +#.TRANS: set an offset associated with the numeric piano keyboard mapping +msgid "set pitch number offset" msgstr "" -#: js/ToneBlocks.js:895 -#: js/ToneBlocks.js:943 -#.TRANS: set the characteristics of a custom instrument -msgid "set instrument" +#: js/blocks/PitchBlocks.js:645 +msgid "The Set pitch number offset block is used to set the offset for mapping pitch numbers to pitch and octave." msgstr "" -#: js/ToneBlocks.js:898 -#: js/ToneBlocks.js:926 -#: js/ToneBlocks.js:932 -msgid "The Set instrument block selects a voice for the synthesizer," +#: js/blocks/PitchBlocks.js:679 +#.TRANS: convert piano key number (1-88) to pitch +msgid "number to pitch" msgstr "" -#: js/ToneBlocks.js:900 -#: js/ToneBlocks.js:934 -msgid "eg guitar piano violin or cello." +#: js/blocks/PitchBlocks.js:682 +msgid "The Number to pitch block will convert a pitch number to a pich name." msgstr "" -#: js/ToneBlocks.js:1015 -msgid "Import a sound file to use as an instrument and set its pitch center." +#: js/blocks/PitchBlocks.js:715 +#.TRANS: convert piano key number (1-88) to octave +msgid "number to octave" msgstr "" -#: js/ToneBlocks.js:1110 -msgid "Upload a sound file to connect with the sample block." +#: js/blocks/PitchBlocks.js:717 +msgid "The Number to octave block will convert a pitch number to an octave." msgstr "" -#: js/MeterBlocks.js:34 -#.TRANS: musical meter (time signature), e.g., 4:4 -msgid "current meter" +#: js/blocks/PitchBlocks.js:726 +msgid "y to pitch" msgstr "" -#: js/MeterBlocks.js:85 -#.TRANS: number of beats per minute -msgid "beat factor" +#: js/blocks/PitchBlocks.js:729 +msgid "Y to pitch block will convert a staff y position to corresponding pitch notation." msgstr "" -#: js/MeterBlocks.js:161 -msgid "The Beats per minute block returns the current beats per minute." +#: js/blocks/PitchBlocks.js:841 +msgid "accidental selector" msgstr "" -#: js/MeterBlocks.js:169 -#: js/status.js:152 -#.TRANS: number of beats played per minute -msgid "beats per minute2" +#: js/blocks/PitchBlocks.js:844 +msgid "The Accidental selector block is used to choose between double-sharp, sharp, natural, flat, and double-flat." msgstr "" -#: js/MeterBlocks.js:169 -#: js/MeterBlocks.js:1056 -#: js/MeterBlocks.js:1133 -#: js/MeterBlocks.js:1211 -#.TRANS: sets tempo by defining a beat and beats per minute -msgid "beats per minute" +#: js/blocks/PitchBlocks.js:858 +msgid "Pitch can be specified in terms of ni dha pa ma ga re sa." msgstr "" -#: js/MeterBlocks.js:233 -#.TRANS: count of current musical measure in meter -msgid "measure count" +#: js/blocks/PitchBlocks.js:872 +msgid "Pitch can be specified in terms of C D E F G A B." msgstr "" -#: js/MeterBlocks.js:241 -msgid "The Measure count block returns the current measure." +#: js/blocks/PitchBlocks.js:884 +msgid "solfege" msgstr "" -#: js/MeterBlocks.js:290 -#.TRANS: count of current beat in the meter -msgid "beat count" +#: js/blocks/PitchBlocks.js:887 +msgid "Pitch can be specified in terms of do re mi fa sol la ti." msgstr "" -#: js/MeterBlocks.js:300 -#: js/MeterBlocks.js:311 -#: js/MeterBlocks.js:565 -#: js/MeterBlocks.js:576 -msgid "The Beat count block is the number of the current beat," +#: js/blocks/PitchBlocks.js:922 +msgid "The Invert block rotates any contained notes around a target note." msgstr "" -#: js/MeterBlocks.js:313 -#: js/MeterBlocks.js:578 -msgid "eg 1, 2, 3, or 4." +#: js/blocks/PitchBlocks.js:929 +#.TRANS: pitch inversion rotates a pitch around another pitch +msgid "invert" msgstr "" -#: js/MeterBlocks.js:368 -#.TRANS: count the number of notes -msgid "sum note values" +#: js/blocks/PitchBlocks.js:968 +#.TRANS: pitch inversion rotates a pitch around another pitch (odd number) +msgid "invert (odd)" msgstr "" -#: js/MeterBlocks.js:376 -#: js/MeterBlocks.js:440 -msgid "The Note counter block can be used to count the number of contained notes." +#: js/blocks/PitchBlocks.js:1001 +#.TRANS: pitch inversion rotates a pitch around another pitch (even number) +msgid "invert (even)" msgstr "" -#: js/MeterBlocks.js:432 -#.TRANS: count the number of notes -msgid "note counter" +#: js/blocks/PitchBlocks.js:1022 +#.TRANS: register is the octave of the current pitch +msgid "register" msgstr "" -#: js/MeterBlocks.js:496 -#.TRANS: number of whole notes that have been played -msgid "whole notes played" +#: js/blocks/PitchBlocks.js:1026 +msgid "The Register block provides an easy way to modify the register (octave) of the notes that follow it." msgstr "" -#: js/MeterBlocks.js:505 -msgid "The Whole notes played block returns the total number of whole notes played." +#: js/blocks/PitchBlocks.js:1047 +#.TRANS: cents are units used to specify the ratio between pitches. There are 100 cents between successive notes. +msgid "50 cents" msgstr "" -#: js/MeterBlocks.js:555 -#: js/DictActions.js:83 -#.TRANS: number of notes that have been played -msgid "notes played" +#: js/blocks/PitchBlocks.js:1102 +msgid "The Semi-tone transposition block will shift the pitches contained inside Note blocks up (or down) by half steps." msgstr "" -#: js/MeterBlocks.js:653 -msgid "The No clock block decouples the notes from the master clock." +#: js/blocks/PitchBlocks.js:1104 +msgid "In the example shown above, sol is shifted up to sol#." msgstr "" -#: js/MeterBlocks.js:661 -#.TRANS: don't lock notes to master clock -msgid "no clock" +#: js/blocks/PitchBlocks.js:1110 +#.TRANS: adjust the amount of shift (up or down) of a pitch +msgid "semi-tone transpose" msgstr "" -#: js/MeterBlocks.js:700 -msgid "on weak beat do" +#: js/blocks/PitchBlocks.js:1143 +msgid "The Transpose by Ratio block will shift the pitches contained inside Note blocks up (or down) by a ratio" msgstr "" -#: js/MeterBlocks.js:705 -msgid "The On-weak-beat block lets you specify actions to take on weak (off) beats." +#: js/blocks/PitchBlocks.js:1149 +#.TRANS: adjust the amount of shift (up or down) of a pitch +msgid "transpose by ratio" msgstr "" -#: js/MeterBlocks.js:750 -msgid "on strong beat" +#: js/blocks/PitchBlocks.js:1232 +#.TRANS: down sixth means the note is five scale degrees below current note +msgid "down sixth" msgstr "" -#: js/MeterBlocks.js:758 -msgid "The On-strong-beat block lets you specify actions to take on specified beats." +#: js/blocks/PitchBlocks.js:1251 +#.TRANS: down third means the note is two scale degrees below current note +msgid "down third" msgstr "" -#: js/MeterBlocks.js:769 -msgid "beat" +#: js/blocks/PitchBlocks.js:1270 +#.TRANS: seventh means the note is the six scale degrees above current note +msgid "seventh" msgstr "" -#: js/MeterBlocks.js:813 -msgid "on every beat do" +#: js/blocks/PitchBlocks.js:1289 +#.TRANS: sixth means the note is the five scale degrees above current note +msgid "sixth" msgstr "" -#: js/MeterBlocks.js:821 -msgid "The On-every-beat block lets you specify actions to take on every beat." +#: js/blocks/PitchBlocks.js:1308 +#.TRANS: fifth means the note is the four scale degrees above current note +msgid "fifth" msgstr "" -#: js/MeterBlocks.js:874 -msgid "on every note do" +#: js/blocks/PitchBlocks.js:1328 +#.TRANS: fourth means the note is three scale degrees above current note +msgid "fourth" msgstr "" -#: js/MeterBlocks.js:882 -msgid "The On-every-note block lets you specify actions to take on every note." +#: js/blocks/PitchBlocks.js:1347 +#.TRANS: third means the note is two scale degrees above current note +msgid "third" msgstr "" -#: js/MeterBlocks.js:928 -#: js/MeterBlocks.js:999 -#.TRANS: sets tempo by defining a beat and beats per minute -msgid "master beats per minute" +#: js/blocks/PitchBlocks.js:1366 +#.TRANS: second means the note is one scale degree above current note +msgid "second" msgstr "" -#: js/MeterBlocks.js:952 -#: js/MeterBlocks.js:1078 -#: js/MeterBlocks.js:1135 -msgid "bpm" +#: js/blocks/PitchBlocks.js:1407 +msgid "The Scalar transposition block will shift the pitches contained inside Note blocks up (or down) the scale." msgstr "" -#: js/MeterBlocks.js:952 -#: js/MeterBlocks.js:1078 -#: js/MeterBlocks.js:1135 -msgid "beat value" +#: js/blocks/PitchBlocks.js:1409 +msgid "In the example shown above, sol is shifted up to la." msgstr "" -#: js/MeterBlocks.js:1024 -#: js/MeterBlocks.js:1167 -#: js/MeterBlocks.js:1241 -msgid "Beats per minute must be > 30." +#: js/blocks/PitchBlocks.js:1416 +#.TRANS: adjust the amount of shift (up or down) of a pitch by musical scale (scalar) steps +msgid "scalar transpose" msgstr "" -#: js/MeterBlocks.js:1027 -#: js/MeterBlocks.js:1170 -#: js/MeterBlocks.js:1244 -msgid "Maximum beats per minute is 1000." +#: js/blocks/PitchBlocks.js:1451 +msgid "The Accidental block is used to create sharps and flats" msgstr "" -#: js/MeterBlocks.js:1068 -msgid "The Beats per minute block sets the number of 1/4 notes per minute." +#: js/blocks/PitchBlocks.js:1458 +#.TRANS: An accidental is a modification to a pitch, e.g., sharp or flat. +msgid "accidental override" msgstr "" -#: js/MeterBlocks.js:1279 -#.TRANS: anacrusis -msgid "pickup" +#: js/blocks/PitchBlocks.js:1581 +msgid "The Hertz block (in combination with a Number block) will play a sound at the specified frequency." msgstr "" -#: js/MeterBlocks.js:1367 -msgid "number of beats" +#: js/blocks/PitchBlocks.js:1671 +msgid "The Pitch Number block will play a pitch associated by its number, e.g. 0 for C and 7 for G." msgstr "" -#: js/DictBlocks.js:77 -msgid "show dictionary" +#: js/blocks/PitchBlocks.js:1703 +#: js/blocks/PitchBlocks.js:1745 +#.TRANS: a numeric mapping of the notes in an octave based on the musical mode +#.TRANS: a numeric mapping of the notes in an octave based on the musical mode +msgid "nth modal pitch" msgstr "" -#: js/DictBlocks.js:129 -msgid "The Dictionary block returns a dictionary." +#: js/blocks/PitchBlocks.js:1706 +msgid "n^th Modal Pitch takes the pattern of pitches in semitones for a mode and makes each point a degree of the mode," msgstr "" -#: js/DictBlocks.js:197 -#: js/DictBlocks.js:339 -msgid "The Get-dict block returns a value in the dictionary for a specified key." +#: js/blocks/PitchBlocks.js:1708 +msgid "starting from 1 and regardless of tonal framework (i.e. not always 8 notes in the octave)" msgstr "" -#: js/DictBlocks.js:212 -#: js/DictBlocks.js:354 -#.TRANS: retrieve a value from the dictionary with a given key -msgid "get value" +#: js/blocks/PitchBlocks.js:1749 +msgid "N^th Modal Pitch takes a number as an input as the n^th degree for the given mode. 0 is the first position, 1 is the second, -1 is the note before the first etc." msgstr "" -#: js/DictBlocks.js:215 -#: js/DictBlocks.js:216 -#: js/DictBlocks.js:289 -#: js/DictBlocks.js:290 -#: js/DictBlocks.js:357 -#: js/DictBlocks.js:430 -#: js/DictBlocks.js:431 -msgid "key2" +#: js/blocks/PitchBlocks.js:1751 +msgid "The pitches change according to the mode specified without any need for respellings." msgstr "" -#: js/DictBlocks.js:271 -#: js/DictBlocks.js:411 -msgid "The Set-dict block sets a value in the dictionary for a specified key." +#: js/blocks/PitchBlocks.js:1790 +msgid "Scale Degree is a common convention in music. Scale Degree offers seven possible positions in the scale (1-7) and can be modified via accidentals." msgstr "" -#: js/DictBlocks.js:286 -#: js/DictBlocks.js:427 -#.TRANS: set a value in the dictionary for a given key -msgid "set value" +#: js/blocks/PitchBlocks.js:1792 +msgid "Scale Degree 1 is always the first pitch in a given scale, regardless of octave." msgstr "" -#: js/ExtrasBlocks.js:33 -msgid "fraction" +#: js/blocks/PitchBlocks.js:1814 +#.TRANS: step some number of notes in current musical scale +msgid "scalar step" msgstr "" -#: js/ExtrasBlocks.js:36 -msgid "Convert a float to a fraction" +#: js/blocks/PitchBlocks.js:1819 +msgid "The Scalar Step block (in combination with a Number block) will play the next pitch in a scale," msgstr "" -#: js/ExtrasBlocks.js:93 -msgid "save as ABC" +#: js/blocks/PitchBlocks.js:1821 +msgid "eg if the last note played was sol, Scalar Step 1 will play la." msgstr "" -#: js/ExtrasBlocks.js:96 -#: js/ExtrasBlocks.js:132 -#: js/ExtrasBlocks.js:168 -msgid "title" +#: js/blocks/PitchBlocks.js:1857 +msgid "The Pitch block specifies the pitch name and octave of a note that together determine the frequency of the note." msgstr "" -#: js/ExtrasBlocks.js:129 -msgid "save as Lilypond" +#: js/blocks/ProgramBlocks.js:33 +msgid "The Load-heap-from-app block loads the heap from a web page." msgstr "" -#: js/ExtrasBlocks.js:165 -msgid "save as SVG" +#: js/blocks/ProgramBlocks.js:44 +#.TRANS: load the heap contents from a URL +msgid "load heap from App" msgstr "" -#: js/ExtrasBlocks.js:216 -msgid "no background" +#: js/blocks/ProgramBlocks.js:95 +msgid "Error parsing JSON data:" msgstr "" -#: js/ExtrasBlocks.js:219 -msgid "The No background block eliminates the background from the saved SVG output." +#: js/blocks/ProgramBlocks.js:100 +msgid "404: Page not found" msgstr "" -#: js/ExtrasBlocks.js:247 -msgid "show blocks" +#: js/blocks/ProgramBlocks.js:133 +msgid "The Save-heap-to-app block saves the heap to a web page." msgstr "" -#: js/ExtrasBlocks.js:249 -msgid "The Show blocks block shows the blocks." +#: js/blocks/ProgramBlocks.js:144 +#.TRANS: save the heap contents to a URL +msgid "save heap to App" msgstr "" -#: js/ExtrasBlocks.js:274 -msgid "hide blocks" +#: js/blocks/ProgramBlocks.js:189 +msgid "Cannot find a valid heap for" msgstr "" -#: js/ExtrasBlocks.js:276 -msgid "The Hide blocks block hides the blocks." +#: js/blocks/ProgramBlocks.js:206 +msgid "The Load-heap block loads the heap from a file." msgstr "" -#: js/ExtrasBlocks.js:305 -#: js/ExtrasBlocks.js:335 -msgid "The Space block is used to add space between blocks." +#: js/blocks/ProgramBlocks.js:217 +#.TRANS: load the heap from a file +msgid "load heap" msgstr "" -#: js/ExtrasBlocks.js:373 -msgid "wait" +#: js/blocks/ProgramBlocks.js:270 +msgid "The file you selected does not contain a valid heap." msgstr "" -#: js/ExtrasBlocks.js:376 -msgid "The Wait block pauses the program for a specified number of seconds." +#: js/blocks/ProgramBlocks.js:275 +msgid "The loadHeap block needs a loadFile block." msgstr "" -#: js/ExtrasBlocks.js:430 -#: plugins/facebook.rtp:30 -msgid "comment" +#: js/blocks/ProgramBlocks.js:291 +msgid "The Set-heap block loads the heap." msgstr "" -#: js/ExtrasBlocks.js:466 -msgid "print" +#: js/blocks/ProgramBlocks.js:340 +msgid "The block you selected does not contain a valid heap." msgstr "" -#: js/ExtrasBlocks.js:473 -msgid "The Print block displays text at the top of the screen." +#: js/blocks/ProgramBlocks.js:343 +msgid "The Set heap block needs a heap." msgstr "" -#: js/ExtrasBlocks.js:579 -msgid "display grid" +#: js/blocks/ProgramBlocks.js:360 +msgid "The Load-dictionary block loads a dictionary from a file." msgstr "" -#: js/ExtrasBlocks.js:584 -msgid "The Display Grid Block changes the grid type" +#: js/blocks/ProgramBlocks.js:372 +#.TRANS: load a dictionary from a file +msgid "load dictionary" msgstr "" -#: js/ExtrasBlocks.js:686 -#: js/ExtrasBlocks.js:705 -#: js/ExtrasBlocks.js:728 -#: js/ExtrasBlocks.js:751 -#: js/ExtrasBlocks.js:769 -#: js/ExtrasBlocks.js:788 -#: js/ExtrasBlocks.js:807 -#: js/ExtrasBlocks.js:826 -msgid "unknown" +#: js/blocks/ProgramBlocks.js:390 +#: js/blocks/ProgramBlocks.js:658 +#: js/blocks/ToneBlocks.js:1025 +msgid "file" msgstr "" -#: js/SensorsBlocks.js:36 -msgid "The Input block prompts for keyboard input." +#: js/blocks/ProgramBlocks.js:444 +msgid "The file you selected does not contain a valid dictionary." msgstr "" -#: js/SensorsBlocks.js:46 -msgid "input" +#: js/blocks/ProgramBlocks.js:449 +msgid "The load dictionary block needs a load file block." msgstr "" -#: js/SensorsBlocks.js:64 -msgid "Input a value" +#: js/blocks/ProgramBlocks.js:466 +msgid "The Set-dictionary block loads a dictionary." msgstr "" -#: js/SensorsBlocks.js:126 -msgid "input value" +#: js/blocks/ProgramBlocks.js:477 +#.TRANS: load a dictionary from a JSON +msgid "set dictionary" msgstr "" -#: js/SensorsBlocks.js:131 -msgid "The Input-value block stores the input." +#: js/blocks/ProgramBlocks.js:546 +msgid "The block you selected does not contain a valid dictionary." msgstr "" -#: js/SensorsBlocks.js:238 -msgid "loudness" +#: js/blocks/ProgramBlocks.js:550 +msgid "The set dictionary block needs a dictionary." msgstr "" -#: js/SensorsBlocks.js:245 -msgid "The Loudness block returns the volume detected by the microphone." +#: js/blocks/ProgramBlocks.js:567 +msgid "The Save-heap block saves the heap to a file." msgstr "" -#: js/SensorsBlocks.js:300 -msgid "click" +#: js/blocks/ProgramBlocks.js:578 +#.TRANS: save the heap to a file +msgid "save heap" msgstr "" -#: js/SensorsBlocks.js:306 -msgid "The Click block triggers an event if a mouse has been clicked." +#: js/blocks/ProgramBlocks.js:629 +msgid "The Save-dictionary block saves a dictionary to a file." msgstr "" -#: js/SensorsBlocks.js:313 -msgid "The Click block triggers an event if a turtle has been clicked." +#: js/blocks/ProgramBlocks.js:640 +#.TRANS: save a dictionary to a file +msgid "save dictionary" msgstr "" -#: js/SensorsBlocks.js:342 -msgid "cursor over" +#: js/blocks/ProgramBlocks.js:720 +msgid "The Open palette block opens a palette." msgstr "" -#: js/SensorsBlocks.js:387 -msgid "cursor out" +#: js/blocks/ProgramBlocks.js:727 +msgid "open palette" msgstr "" -#: js/SensorsBlocks.js:433 -msgid "cursor button down" +#: js/blocks/ProgramBlocks.js:785 +msgid "The Delete block block removes a block." msgstr "" -#: js/SensorsBlocks.js:477 -msgid "cursor button up" +#: js/blocks/ProgramBlocks.js:797 +#.TRANS: Move this block to the trash. +msgid "delete block" msgstr "" -#: js/SensorsBlocks.js:638 -msgid "The Get red block returns the red component of the pixel under the mouse." +#: js/blocks/ProgramBlocks.js:861 +msgid "The Move block block moves a block." msgstr "" -#: js/SensorsBlocks.js:644 -msgid "The Get red block returns the red component of the pixel under the turtle." +#: js/blocks/ProgramBlocks.js:869 +#.TRANS: Move the position of a block on the screen. +msgid "move block" msgstr "" -#: js/SensorsBlocks.js:685 -#: plugins/rodi.rtp:216 -msgid "pixel color" +#: js/blocks/ProgramBlocks.js:881 +#: js/blocks/ProgramBlocks.js:1048 +msgid "block number" msgstr "" -#: js/SensorsBlocks.js:690 -msgid "The Get pixel block returns the color of the pixel under the mouse." +#: js/blocks/ProgramBlocks.js:935 +#.TRANS: Run program beginning at this block. +msgid "run block" msgstr "" -#: js/SensorsBlocks.js:696 -msgid "The Get pixel block returns the color of the pixel under the turtle." +#: js/blocks/ProgramBlocks.js:1025 +msgid "The Dock block block connections two blocks." msgstr "" -#: js/SensorsBlocks.js:758 -msgid "time" +#: js/blocks/ProgramBlocks.js:1036 +#.TRANS: We can connect a block to another block. +msgid "connect blocks" msgstr "" -#: js/SensorsBlocks.js:804 -msgid "cursor y" +#: js/blocks/ProgramBlocks.js:1048 +msgid "target block" msgstr "" -#: js/SensorsBlocks.js:809 -msgid "The Cursor Y block returns the vertical position of the mouse." +#: js/blocks/ProgramBlocks.js:1048 +msgid "connection number" msgstr "" -#: js/SensorsBlocks.js:845 -msgid "cursor x" +#: js/blocks/ProgramBlocks.js:1140 +msgid "The Make block block creates a new block." msgstr "" -#: js/SensorsBlocks.js:850 -msgid "The Cursor X block returns the horizontal position of the mouse." +#: js/blocks/ProgramBlocks.js:1152 +#.TRANS: Create a new block +msgid "make block" msgstr "" -#: js/SensorsBlocks.js:886 -msgid "mouse button" +#: js/blocks/ProgramBlocks.js:1285 +msgid "Cannot find block" msgstr "" -#: js/SensorsBlocks.js:888 -msgid "The Mouse-button block returns True if the mouse button is pressed." +#: js/blocks/ProgramBlocks.js:1304 +#: js/blocks/ProgramBlocks.js:1313 +msgid "Warning: block argument type mismatch" msgstr "" -#: js/SensorsBlocks.js:934 -msgid "to ASCII" +#: js/blocks/ProgramBlocks.js:1347 +msgid "The Open project block is used to open a project from a web page." msgstr "" -#: js/SensorsBlocks.js:938 -msgid "The To ASCII block converts numbers to letters." +#: js/blocks/ProgramBlocks.js:1357 +msgid "open project" msgstr "" -#: js/SensorsBlocks.js:1005 -msgid "The Keyboard block returns computer keyboard input." +#: js/blocks/ProgramBlocks.js:1410 +msgid "Please enter a valid URL." msgstr "" -#: js/IntervalsActions.js:216 -msgid "Adding missing pitch number 0." +#: js/blocks/ToneBlocks.js:34 +msgid "oscillator" msgstr "" -#: js/IntervalsActions.js:224 -msgid "Ignoring pitch numbers less than zero or greater than eleven." +#: js/blocks/ToneBlocks.js:42 +#: js/blocks/WidgetBlocks.js:179 +#: js/widgets/timbre.js:1558 +#: js/widgets/timbre.js:1808 +#.TRANS: there are different types (sine, triangle, square...) of oscillators. +#.TRANS: type of filter, e.g., lowpass, highpass, etc. +msgid "type" msgstr "" -#: js/IntervalsActions.js:230 -msgid "Ignoring duplicate pitch numbers." +#: js/blocks/ToneBlocks.js:44 +#: js/widgets/timbre.js:1562 +#.TRANS: Partials refers to the number of sine waves combined into the sound. +msgid "partials" msgstr "" -#: js/PitchActions.js:88 -msgid "The Scalar Step Block must be used inside of a Note Block." +#: js/blocks/ToneBlocks.js:76 +msgid "You are adding multiple oscillator blocks." msgstr "" -#: js/PitchActions.js:107 -msgid "The Scalar Step Block must be preceded by a Pitch Block." +#: js/blocks/ToneBlocks.js:144 +#: js/widgets/timbre.js:1225 +#.TRANS: a duo synthesizer combines a synth with a sequencer +msgid "duo synth" msgstr "" -#: js/DrumActions.js:231 -msgid "Noise Block: Did you mean to use a Note block?" +#: js/blocks/ToneBlocks.js:149 +msgid "The Duo synth block is a duo-frequency modulator used to define a timbre." msgstr "" -#: js/MeterActions.js:101 -#: js/MeterActions.js:139 -msgid "beats per minute must be greater than" +#: js/blocks/ToneBlocks.js:157 +#: js/widgets/timbre.js:1476 +msgid "vibrato rate" msgstr "" -#: js/MeterActions.js:111 -#: js/MeterActions.js:149 -msgid "maximum" +#: js/blocks/ToneBlocks.js:157 +msgid "vibrato intensity" msgstr "" -#: js/MeterActions.js:117 -#: js/MeterActions.js:155 -msgid "beats per minute is" +#: js/blocks/ToneBlocks.js:185 +#: js/widgets/timbre.js:1221 +#.TRANS: AM (amplitude modulation) synthesizer +msgid "AM synth" msgstr "" -#: js/ToneActions.js:134 -msgid "Vibrato intensity must be between 1 and 100." +#: js/blocks/ToneBlocks.js:189 +msgid "The AM synth block is an amplitude modulator used to define a timbre." msgstr "" -#: js/ToneActions.js:139 -msgid "Vibrato rate must be greater than 0." +#: js/blocks/ToneBlocks.js:224 +#: js/widgets/timbre.js:1223 +#.TRANS: FM (frequency modulation) synthesizer +msgid "FM synth" msgstr "" -#: js/ToneActions.js:192 -#: js/ToneActions.js:265 -#.TRANS: Depth is the intesity of the tremolo or chorus effect. -msgid "Depth is out of range." +#: js/blocks/ToneBlocks.js:228 +msgid "The FM synth block is a frequency modulator used to define a timbre." msgstr "" -#: js/ToneActions.js:301 -msgid "Distortion must be from 0 to 100." +#: js/blocks/ToneBlocks.js:262 +msgid "partial" msgstr "" -#: js/ToneActions.js:332 -#.TRANS: partials components in a harmonic series -msgid "Partial must be greater than or equal to 0." +#: js/blocks/ToneBlocks.js:265 +msgid "The Partial block is used to specify a weight for a specific partial harmonic." msgstr "" -#: js/ToneActions.js:378 -#: js/ToneActions.js:417 -#: js/ToneActions.js:456 -#: js/timbre.js:782 -msgid "Unable to use synth due to existing oscillator" +#: js/blocks/ToneBlocks.js:284 +#.TRANS: partials are weighted components in a harmonic series +msgid "Partial weight must be between 0 and 1." msgstr "" -#: js/ToneActions.js:388 -#: js/ToneActions.js:427 -msgid "The input cannot be negative." +#: js/blocks/ToneBlocks.js:297 +#.TRANS: partials are weighted components in a harmonic series +msgid "Partial block should be used inside of a Weighted-partials block." msgstr "" -#: js/DictActions.js:75 -#: js/DictActions.js:153 -#: js/DictActions.js:188 -msgid "font" +#: js/blocks/ToneBlocks.js:325 +#.TRANS: partials are weighted components in a harmonic series +msgid "weighted partials" msgstr "" -#: js/musicutils.js:363 -#: js/musicutils.js:471 -#: js/pitchdrummatrix.js:151 -#: js/musickeyboard.js:2563 -msgid "rest" +#: js/blocks/ToneBlocks.js:383 +msgid "The Harmonic block will add harmonics to the contained notes." msgstr "" -#: js/musicutils.js:565 -#.TRANS: ordinal number. Please keep exactly one space between each number. -msgid "1st 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th" +#: js/blocks/ToneBlocks.js:390 +#.TRANS: A harmonic is an overtone. +msgid "harmonic" msgstr "" -#: js/musicutils.js:629 -#: js/musicutils.js:812 -#: js/musicutils.js:911 -#.TRANS: augmented is a music term related to intervals -msgid "augmented" +#: js/blocks/ToneBlocks.js:431 +msgid "The Distortion block adds distortion to the pitch." msgstr "" -#: js/musicutils.js:631 -#: js/musicutils.js:813 -#: js/musicutils.js:910 -#.TRANS: diminished is a music term related to intervals and mode -msgid "diminished" +#: js/blocks/ToneBlocks.js:438 +#: js/widgets/timbre.js:2100 +#.TRANS: distortion is an alteration in the sound +msgid "distortion" msgstr "" -#: js/musicutils.js:639 -#.TRANS: twelve semi-tone scale for music -msgid "chromatic" +#: js/blocks/ToneBlocks.js:487 +msgid "The Tremolo block adds a wavering effect." msgstr "" -#: js/musicutils.js:640 -msgid "algerian" +#: js/blocks/ToneBlocks.js:495 +#: js/widgets/timbre.js:2092 +#.TRANS: a wavering effect in a musical tone +msgid "tremolo" msgstr "" -#: js/musicutils.js:641 -msgid "spanish" +#: js/blocks/ToneBlocks.js:500 +#: js/blocks/ToneBlocks.js:569 +#: js/blocks/ToneBlocks.js:630 +#: js/blocks/ToneBlocks.js:689 +#: js/widgets/timbre.js:2134 +#: js/widgets/timbre.js:2222 +#: js/widgets/timbre.js:2317 +#: js/widgets/timbre.js:2419 +#.TRANS: rate at which tremolo wavers +msgid "rate" msgstr "" -#: js/musicutils.js:643 -#.TRANS: modal scale in music -msgid "octatonic" +#: js/blocks/ToneBlocks.js:502 +#: js/blocks/ToneBlocks.js:630 +#: js/widgets/timbre.js:2137 +#: js/widgets/timbre.js:2328 +#.TRANS: amplitude of tremolo waver +msgid "depth" msgstr "" -#: js/musicutils.js:645 -#.TRANS: harmonic major scale in music -msgid "harmonic major" +#: js/blocks/ToneBlocks.js:559 +msgid "The Phaser block adds a sweeping sound." msgstr "" -#: js/musicutils.js:647 -#.TRANS: natural minor scales in music -msgid "natural minor" +#: js/blocks/ToneBlocks.js:566 +#: js/widgets/timbre.js:2098 +#.TRANS: alter the phase of the sound +msgid "phaser" msgstr "" -#: js/musicutils.js:649 -#.TRANS: harmonic minor scale in music -msgid "harmonic minor" +#: js/blocks/ToneBlocks.js:569 +#: js/turtleactions/IntervalsActions.js:114 +#: js/widgets/timbre.js:2422 +msgid "octaves" msgstr "" -#: js/musicutils.js:651 -#.TRANS: melodic minor scale in music -msgid "melodic minor" +#: js/blocks/ToneBlocks.js:569 +#: js/widgets/timbre.js:2425 +msgid "base frequency" msgstr "" -#: js/musicutils.js:655 -#.TRANS: modal scale for music -msgid "dorian" +#: js/blocks/ToneBlocks.js:619 +msgid "The Chorus block adds a chorus effect." msgstr "" -#: js/musicutils.js:657 -#.TRANS: modal scale for music -msgid "phrygian" +#: js/blocks/ToneBlocks.js:627 +#: js/widgets/timbre.js:2096 +#.TRANS: musical effect to simulate a choral sound +msgid "chorus" msgstr "" -#: js/musicutils.js:659 -#.TRANS: modal scale for music -msgid "lydian" +#: js/blocks/ToneBlocks.js:630 +msgid "delay" msgstr "" -#: js/musicutils.js:661 -#.TRANS: modal scale for music -msgid "mixolydian" +#: js/blocks/ToneBlocks.js:678 +msgid "The Vibrato block adds a rapid, slight variation in pitch." msgstr "" -#: js/musicutils.js:665 -#.TRANS: modal scale for music -msgid "locrian" +#: js/blocks/ToneBlocks.js:686 +#: js/widgets/timbre.js:2094 +#.TRANS: a rapid, slight variation in pitch +msgid "vibrato" msgstr "" -#: js/musicutils.js:667 -#.TRANS: minor jazz scale for music -msgid "jazz minor" +#: js/blocks/ToneBlocks.js:689 +#: js/widgets/timbre.js:2221 +msgid "intensity" msgstr "" -#: js/musicutils.js:669 -#.TRANS: bebop scale for music -msgid "bebop" +#: js/blocks/ToneBlocks.js:733 +#.TRANS: select synthesizer +msgid "set synth" msgstr "" -#: js/musicutils.js:670 -msgid "arabic" +#: js/blocks/ToneBlocks.js:804 +msgid "synth name" msgstr "" -#: js/musicutils.js:671 -msgid "byzantine" +#: js/blocks/ToneBlocks.js:842 +msgid "set default instrument" msgstr "" -#: js/musicutils.js:673 -#.TRANS: musical scale for music by Verdi -msgid "enigmatic" +#: js/blocks/ToneBlocks.js:895 +#: js/blocks/ToneBlocks.js:943 +#.TRANS: set the characteristics of a custom instrument +msgid "set instrument" msgstr "" -#: js/musicutils.js:674 -msgid "ethiopian" +#: js/blocks/ToneBlocks.js:898 +#: js/blocks/ToneBlocks.js:926 +#: js/blocks/ToneBlocks.js:932 +msgid "The Set instrument block selects a voice for the synthesizer," msgstr "" -#: js/musicutils.js:676 -#.TRANS: Ethiopic scale for music -msgid "geez" +#: js/blocks/ToneBlocks.js:900 +#: js/blocks/ToneBlocks.js:934 +msgid "eg guitar piano violin or cello." msgstr "" -#: js/musicutils.js:677 -msgid "hindu" +#: js/blocks/ToneBlocks.js:1015 +msgid "Import a sound file to use as an instrument and set its pitch center." msgstr "" -#: js/musicutils.js:678 -msgid "hungarian" +#: js/blocks/ToneBlocks.js:1110 +msgid "Upload a sound file to connect with the sample block." msgstr "" -#: js/musicutils.js:680 -#.TRANS: minor Romanian scale for music -msgid "romanian minor" +#: js/blocks/VolumeBlocks.js:35 +msgid "synth volume" msgstr "" -#: js/musicutils.js:681 -msgid "spanish gypsy" +#: js/blocks/VolumeBlocks.js:39 +msgid "The Synth volume block returns the current volume of the current synthesizer." msgstr "" -#: js/musicutils.js:683 -#.TRANS: musical scale for Mid-Eastern music -msgid "maqam" +#: js/blocks/VolumeBlocks.js:105 +msgid "master volume" msgstr "" -#: js/musicutils.js:685 -#.TRANS: minor blues scale for music -msgid "minor blues" +#: js/blocks/VolumeBlocks.js:109 +msgid "The Master volume block returns the master volume." msgstr "" -#: js/musicutils.js:687 -#.TRANS: major blues scale for music -msgid "major blues" +#: js/blocks/VolumeBlocks.js:355 +#: js/blocks/VolumeBlocks.js:524 +msgid "set synth volume" msgstr "" -#: js/musicutils.js:688 -msgid "whole tone" +#: js/blocks/VolumeBlocks.js:362 +#: js/blocks/VolumeBlocks.js:545 +msgid "synth" msgstr "" -#: js/musicutils.js:690 -#.TRANS: pentatonic is a general term that means "five note scale". This scale is typically known as "minor pentatonic" -msgid "minor pentatonic" +#: js/blocks/VolumeBlocks.js:403 +#: js/blocks/VolumeBlocks.js:577 +#: js/blocks/VolumeBlocks.js:740 +#: js/turtleactions/VolumeActions.js:173 +msgid "Setting volume to 0." msgstr "" -#: js/musicutils.js:692 -#.TRANS: pentatonic is a general term that means "five note scale". This scale is typically known as "major pentatonic" -msgid "major pentatonic" +#: js/blocks/VolumeBlocks.js:440 +msgid "Synth not found" msgstr "" -#: js/musicutils.js:693 -msgid "chinese" +#: js/blocks/VolumeBlocks.js:494 +msgid "set drum volume" msgstr "" -#: js/musicutils.js:694 -msgid "egyptian" +#: js/blocks/VolumeBlocks.js:530 +msgid "The Set synth volume block will change the volume of a particular synth," msgstr "" -#: js/musicutils.js:696 -#.TRANS: https://en.wikipedia.org/wiki/Hirajoshi_scale NOTE: There are three different versions of this scale -msgid "hirajoshi" +#: js/blocks/VolumeBlocks.js:532 +msgid "eg guitar violin snare drum etc." msgstr "" -#: js/musicutils.js:697 -msgid "Japan" +#: js/blocks/VolumeBlocks.js:534 +msgid "The default volume is 50." msgstr "" -#: js/musicutils.js:699 -#.TRANS: https://en.wikipedia.org/wiki/In_scale and https://en.wikipedia.org/wiki/Sakura_Sakura -msgid "in" +#: js/blocks/VolumeBlocks.js:536 +msgid "The range is 0 for silence to 100 for full volume." msgstr "" -#: js/musicutils.js:701 -#.TRANS: https://en.wikipedia.org/wiki/Miny%C5%8D_scale -msgid "minyo" +#: js/blocks/VolumeBlocks.js:597 +msgid "set panning" msgstr "" -#: js/musicutils.js:703 -#.TRANS: Italian mathematician -msgid "fibonacci" +#: js/blocks/VolumeBlocks.js:603 +msgid "The Set Panning block sets the panning for all synthesizers." msgstr "" -#: js/musicutils.js:708 -#: js/musicutils.js:1106 -#.TRANS: lowpass filter -msgid "lowpass" +#: js/blocks/VolumeBlocks.js:625 +msgid "Warning: Sound is coming out from only the left or right side." msgstr "" -#: js/musicutils.js:710 -#: js/musicutils.js:1107 -#.TRANS: bandpass filter -msgid "bandpass" +#: js/blocks/VolumeBlocks.js:647 +#: js/blocks/VolumeBlocks.js:695 +msgid "set master volume" msgstr "" -#: js/musicutils.js:712 -#: js/musicutils.js:1108 -#.TRANS: high-shelf filter -msgid "highshelf" +#: js/blocks/VolumeBlocks.js:653 +msgid "The Set master volume block sets the volume for all synthesizers." msgstr "" -#: js/musicutils.js:714 -#: js/musicutils.js:1109 -#.TRANS: low-shelf filter -msgid "lowshelf" +#: js/blocks/VolumeBlocks.js:784 +msgid "The Set relative volume block changes the volume of the contained notes." msgstr "" -#: js/musicutils.js:716 -#: js/musicutils.js:1110 -#.TRANS: notch-shelf filter -msgid "notch" +#: js/blocks/VolumeBlocks.js:791 +msgid "set relative volume" msgstr "" -#: js/musicutils.js:718 -#: js/musicutils.js:1111 -#.TRANS: all-pass filter -msgid "allpass" +#: js/blocks/VolumeBlocks.js:857 +msgid "decrescendo" msgstr "" -#: js/musicutils.js:720 -#: js/musicutils.js:1112 -#.TRANS: peaking filter -msgid "peaking" +#: js/blocks/VolumeBlocks.js:921 +msgid "crescendo" msgstr "" -#: js/musicutils.js:731 -#: js/synthutils.js:58 -#.TRANS: musical instrument -msgid "violin" +#: js/blocks/WidgetBlocks.js:81 +#.TRANS: sound envelope (ADSR) +msgid "envelope" msgstr "" -#: js/musicutils.js:732 -#: js/synthutils.js:60 -#.TRANS: viola musical instrument -msgid "viola" +#: js/blocks/WidgetBlocks.js:89 +#.TRANS: Attack time is the time taken for initial run-up of level from nil to peak, beginning when the key is first pressed. +msgid "attack" msgstr "" -#: js/musicutils.js:733 -#: js/synthutils.js:98 -#.TRANS: xylophone musical instrument -msgid "xylophone" +#: js/blocks/WidgetBlocks.js:91 +#.TRANS: Decay time is the time taken for the subsequent run down from the attack level to the designated sustain level. +msgid "decay" msgstr "" -#: js/musicutils.js:734 -#: js/synthutils.js:120 -#.TRANS: vibraphone musical instrument -msgid "vibraphone" +#: js/blocks/WidgetBlocks.js:93 +#.TRANS: Sustain level is the level during the main sequence of the sound's duration, until the key is released. +msgid "sustain" msgstr "" -#: js/musicutils.js:735 -#: js/synthutils.js:62 -#.TRANS: musical instrument -msgid "cello" +#: js/blocks/WidgetBlocks.js:95 +#.TRANS: Release time is the time taken for the level to decay from the sustain level to zero after the key is released. +msgid "release" msgstr "" -#: js/musicutils.js:737 -#: js/synthutils.js:66 -#.TRANS: viola musical instrument -msgid "double bass" +#: js/blocks/WidgetBlocks.js:113 +msgid "Attack value should be from 0 to 100." msgstr "" -#: js/musicutils.js:738 -#: js/synthutils.js:68 -#: js/rhythmruler.js:2119 -#.TRANS: musical instrument -msgid "guitar" +#: js/blocks/WidgetBlocks.js:116 +msgid "Decay value should be from 0 to 100." msgstr "" -#: js/musicutils.js:739 -#: js/synthutils.js:70 -#.TRANS: musical instrument -msgid "acoustic guitar" +#: js/blocks/WidgetBlocks.js:119 +msgid "Sustain value should be from 0 to 100." msgstr "" -#: js/musicutils.js:740 -#: js/synthutils.js:72 -#.TRANS: musical instrument -msgid "flute" +#: js/blocks/WidgetBlocks.js:122 +msgid "Release value should be from 0-100." msgstr "" -#: js/musicutils.js:741 -#: js/synthutils.js:74 -#.TRANS: musical instrument -msgid "clarinet" +#: js/blocks/WidgetBlocks.js:140 +msgid "You are adding multiple envelope blocks." msgstr "" -#: js/musicutils.js:742 -#: js/synthutils.js:76 -#.TRANS: musical instrument -msgid "saxophone" +#: js/blocks/WidgetBlocks.js:171 +#.TRANS: a filter removes some unwanted components from a signal +msgid "filter" msgstr "" -#: js/musicutils.js:743 -#: js/synthutils.js:78 -#.TRANS: musical instrument -msgid "tuba" +#: js/blocks/WidgetBlocks.js:181 +#: js/widgets/timbre.js:1818 +#.TRANS: rolloff is the steepness of a change in frequency. +msgid "rolloff" msgstr "" -#: js/musicutils.js:744 -#: js/synthutils.js:80 -#.TRANS: musical instrument -msgid "trumpet" +#: js/blocks/WidgetBlocks.js:213 +#.TRANS: rolloff is the steepness of a change in frequency. +msgid "Rolloff value should be either -12, -24, -48, or -96 decibels/octave." msgstr "" -#: js/musicutils.js:745 -#: js/synthutils.js:82 -#.TRANS: musical instrument -msgid "oboe" +#: js/blocks/WidgetBlocks.js:252 +msgid "The Temperament tool is used to define custom tuning." msgstr "" -#: js/musicutils.js:746 -#: js/synthutils.js:84 -#.TRANS: musical instrument -msgid "trombone" +#: js/blocks/WidgetBlocks.js:332 +#: js/blocks/WidgetBlocks.js:1573 +#: js/widgets/sampler.js:547 +msgid "Upload a sample and adjust its pitch center." msgstr "" -#: js/musicutils.js:747 -#: js/synthutils.js:100 -#.TRANS: polytone synthesizer -msgid "electronic synth" +#: js/blocks/WidgetBlocks.js:339 +#.TRANS: the speed at music is should be played. +msgid "sampler" msgstr "" -#: js/musicutils.js:748 -#: js/synthutils.js:102 -#.TRANS: simple monotone synthesizer -msgid "simple 1" +#: js/blocks/WidgetBlocks.js:517 +msgid "The Meter block opens a tool to select strong beats for the meter." msgstr "" -#: js/musicutils.js:749 -msgid "simple 2" +#: js/blocks/WidgetBlocks.js:573 +msgid "The oscilloscope block opens a tool to visualize waveforms." msgstr "" -#: js/musicutils.js:750 -msgid "simple 3" +#: js/blocks/WidgetBlocks.js:578 +msgid "oscilloscope" msgstr "" -#: js/musicutils.js:751 -msgid "simple 4" +#: js/blocks/WidgetBlocks.js:645 +msgid "The Custom mode block opens a tool to explore musical mode (the spacing of the notes in a scale)." msgstr "" -#: js/musicutils.js:753 -#: js/synthutils.js:49 -#.TRANS: brown noise synthesizer -msgid "brown noise" +#: js/blocks/WidgetBlocks.js:651 +#.TRANS: musical mode is the pattern of half-steps in an octave, e.g., Major or Minor modes +msgid "custom mode" msgstr "" -#: js/musicutils.js:754 -#: js/synthutils.js:51 -#.TRANS: pink noise synthesizer -msgid "pink noise" +#: js/blocks/WidgetBlocks.js:700 +msgid "The Tempo block opens a metronome to visualize the beat." msgstr "" -#: js/musicutils.js:756 -#: js/synthutils.js:127 -#: js/rhythmruler.js:1670 -#: js/rhythmruler.js:1928 -#.TRANS: musical instrument -msgid "snare drum" +#: js/blocks/WidgetBlocks.js:762 +msgid "The Arpeggio Widget is used to compose chord sequences." msgstr "" -#: js/musicutils.js:757 -#: js/synthutils.js:129 -#.TRANS: musical instrument -msgid "kick drum" +#: js/blocks/WidgetBlocks.js:837 +msgid "The Pitch drum matrix is used to map pitches to drum sounds." msgstr "" -#: js/musicutils.js:758 -#: js/synthutils.js:131 -#.TRANS: musical instrument -msgid "tom tom" +#: js/blocks/WidgetBlocks.js:842 +#.TRANS: makes a mapping between pitches and drum sounds +msgid "pitch-drum mapper" msgstr "" -#: js/musicutils.js:759 -#: js/synthutils.js:133 -#.TRANS: musical instrument -msgid "floor tom" +#: js/blocks/WidgetBlocks.js:891 +msgid "You must have at least one pitch block and one drum block in the matrix." msgstr "" -#: js/musicutils.js:760 -#: js/synthutils.js:135 -#.TRANS: musical instrument -msgid "bass drum" +#: js/blocks/WidgetBlocks.js:920 +msgid "The Pitch slider tool to is used to generate pitches at selected frequencies." msgstr "" -#: js/musicutils.js:761 -#: js/synthutils.js:137 -#.TRANS: a drum made from an inverted cup -msgid "cup drum" +#: js/blocks/WidgetBlocks.js:925 +#.TRANS: widget to generate pitches using a slider +msgid "pitch slider" msgstr "" -#: js/musicutils.js:762 -#: js/synthutils.js:139 -#.TRANS: musical instrument -msgid "darbuka drum" +#: js/blocks/WidgetBlocks.js:977 +msgid "chromatic keyboard" msgstr "" -#: js/musicutils.js:763 -#: js/synthutils.js:143 -#.TRANS: musical instrument -msgid "hi hat" +#: js/blocks/WidgetBlocks.js:1011 +#: js/blocks/WidgetBlocks.js:1077 +#.TRANS: widget to generate pitches using a slider +msgid "music keyboard" msgstr "" -#: js/musicutils.js:764 -#: js/synthutils.js:145 -#.TRANS: a small metal bell -msgid "ride bell" +#: js/blocks/WidgetBlocks.js:1062 +#: js/blocks/WidgetBlocks.js:1069 +msgid "The Music keyboard block opens a piano keyboard that can be used to create notes." msgstr "" -#: js/musicutils.js:765 -#: js/synthutils.js:147 -#.TRANS: musical instrument -msgid "cow bell" +#: js/blocks/WidgetBlocks.js:1128 +msgid "The Pitch staircase tool to is used to generate pitches from a given ratio." msgstr "" -#: js/musicutils.js:766 -msgid "japanese drum" +#: js/blocks/WidgetBlocks.js:1135 +#.TRANS: generate a progressive sequence of pitches +msgid "pitch staircase" msgstr "" -#: js/musicutils.js:767 -#: js/synthutils.js:153 -#.TRANS: musical instrument -msgid "japanese bell" +#: js/blocks/WidgetBlocks.js:1222 +msgid "The Rhythm Maker block opens a tool to create drum machines." msgstr "" -#: js/musicutils.js:768 -#: js/synthutils.js:149 -#.TRANS: musical instrument -msgid "triangle bell" +#: js/blocks/WidgetBlocks.js:1291 +msgid "G major scale" msgstr "" -#: js/musicutils.js:769 -#: js/synthutils.js:151 -#.TRANS: musical instrument -msgid "finger cymbals" +#: js/blocks/WidgetBlocks.js:1326 +msgid "C major scale" msgstr "" -#: js/musicutils.js:770 -#: js/synthutils.js:155 -#.TRANS: a musically tuned set of bells -msgid "chime" +#: js/blocks/WidgetBlocks.js:1366 +msgid "The Phrase Maker block opens a tool to create musical phrases." msgstr "" -#: js/musicutils.js:771 -#: js/synthutils.js:157 -#.TRANS: a musical instrument -msgid "gong" +#: js/blocks/WidgetBlocks.js:1373 +#.TRANS: assigns pitch to a sequence of beats to generate a melody +msgid "phrase maker" msgstr "" -#: js/musicutils.js:772 -#: js/synthutils.js:159 -#.TRANS: sound effect -msgid "clang" +#: js/blocks/WidgetBlocks.js:1444 +msgid "You must have at least one pitch block and one rhythm block in the matrix." msgstr "" -#: js/musicutils.js:773 -#: js/synthutils.js:161 -#.TRANS: sound effect -msgid "crash" +#: js/blocks/WidgetBlocks.js:1503 +msgid "The Status block opens a tool for inspecting the status of Music Blocks as it is running." msgstr "" -#: js/musicutils.js:774 -#: js/synthutils.js:163 -#.TRANS: sound effect -msgid "bottle" +#: js/blocks/WidgetBlocks.js:1580 +#.TRANS: AI-generated music +msgid "aimusic" msgstr "" -#: js/musicutils.js:775 -#: js/synthutils.js:165 -#.TRANS: sound effect -msgid "clap" +#: js/turtleactions/MeterActions.js:101 +#: js/turtleactions/MeterActions.js:139 +msgid "beats per minute must be greater than" msgstr "" -#: js/musicutils.js:776 -#: js/synthutils.js:167 -#.TRANS: sound effect -msgid "slap" +#: js/turtleactions/MeterActions.js:111 +#: js/turtleactions/MeterActions.js:149 +msgid "maximum" msgstr "" -#: js/musicutils.js:777 -#: js/synthutils.js:169 -#.TRANS: sound effect -msgid "splash" +#: js/turtleactions/MeterActions.js:117 +#: js/turtleactions/MeterActions.js:155 +msgid "beats per minute is" msgstr "" -#: js/musicutils.js:778 -#: js/synthutils.js:171 -#.TRANS: sound effect -msgid "bubbles" +#: js/turtleactions/DictActions.js:75 +#: js/turtleactions/DictActions.js:142 +#: js/turtleactions/DictActions.js:172 +msgid "font" msgstr "" -#: js/musicutils.js:779 -#: js/synthutils.js:173 -#.TRANS: sound effect -msgid "raindrop" +#: js/turtleactions/DictActions.js:255 +msgid "Dictionary with this name does not exist" msgstr "" -#: js/musicutils.js:780 -#: js/synthutils.js:175 -#.TRANS: animal sound effect -msgid "cat" +#: js/turtleactions/DictActions.js:259 +msgid "Key with this name does not exist in " msgstr "" -#: js/musicutils.js:781 -#: js/synthutils.js:177 -#.TRANS: animal sound effect -msgid "cricket" +#: js/turtleactions/DrumActions.js:227 +msgid "Noise Block: Did you mean to use a Note block?" msgstr "" -#: js/musicutils.js:782 -#: js/synthutils.js:179 -#.TRANS: animal sound effect -msgid "dog" +#: js/turtleactions/IntervalsActions.js:113 +msgid "one" msgstr "" -#: js/musicutils.js:784 -#: js/synthutils.js:86 -#.TRANS: musical instrument -msgid "banjo" +#: js/turtleactions/IntervalsActions.js:113 +msgid "two" msgstr "" -#: js/musicutils.js:785 -#: js/synthutils.js:88 -#.TRANS: musical instrument -msgid "koto" +#: js/turtleactions/IntervalsActions.js:113 +msgid "three" msgstr "" -#: js/musicutils.js:786 -#: js/synthutils.js:90 -#.TRANS: musical instrument -msgid "dulcimer" +#: js/turtleactions/IntervalsActions.js:113 +msgid "four" msgstr "" -#: js/musicutils.js:787 -#: js/synthutils.js:92 -#.TRANS: musical instrument -msgid "electric guitar" +#: js/turtleactions/IntervalsActions.js:113 +msgid "five" msgstr "" -#: js/musicutils.js:788 -#: js/synthutils.js:94 -#.TRANS: musical instrument -msgid "bassoon" +#: js/turtleactions/IntervalsActions.js:113 +msgid "six" msgstr "" -#: js/musicutils.js:789 -#: js/synthutils.js:96 -#.TRANS: musical instrument -msgid "celeste" +#: js/turtleactions/IntervalsActions.js:113 +msgid "seven" msgstr "" -#: js/musicutils.js:791 -#: js/musicutils.js:1123 -#: js/musicutils.js:1131 -#: js/temperament.js:650 -#.TRANS: musical temperament -msgid "equal" +#: js/turtleactions/IntervalsActions.js:113 +msgid "eight" msgstr "" -#: js/musicutils.js:793 -#: js/musicutils.js:1125 -#: js/musicutils.js:1133 -#.TRANS: musical temperament -msgid "Pythagorean" +#: js/turtleactions/IntervalsActions.js:113 +msgid "nine" msgstr "" -#: js/musicutils.js:795 -#: js/musicutils.js:1124 -#: js/musicutils.js:1132 -#.TRANS: musical temperament -msgid "just intonation" +#: js/turtleactions/IntervalsActions.js:119 +msgid "a" msgstr "" -#: js/musicutils.js:797 -#: js/musicutils.js:1126 -#: js/musicutils.js:1127 -#: js/musicutils.js:1134 -#: js/musicutils.js:1135 -#.TRANS: musical temperament -msgid "meantone" +#: js/turtleactions/IntervalsActions.js:120 +msgid "below" msgstr "" -#: js/musicutils.js:814 -msgid "major 7th" +#: js/turtleactions/IntervalsActions.js:124 +msgid "above" msgstr "" -#: js/musicutils.js:815 -msgid "minor 7th" +#: js/turtleactions/IntervalsActions.js:131 +msgid "plus" msgstr "" -#: js/musicutils.js:816 -msgid "dominant 7th" +#: js/turtleactions/IntervalsActions.js:139 +msgid " below" msgstr "" -#: js/musicutils.js:817 -msgid "minor-major 7th" +#: js/turtleactions/IntervalsActions.js:257 +msgid "Adding missing pitch number 0." msgstr "" -#: js/musicutils.js:818 -msgid "fully-diminished 7th" +#: js/turtleactions/IntervalsActions.js:265 +msgid "Ignoring pitch numbers less than zero or greater than eleven." msgstr "" -#: js/musicutils.js:819 -msgid "half-diminished 7th" +#: js/turtleactions/IntervalsActions.js:271 +msgid "Ignoring duplicate pitch numbers." msgstr "" -#: js/musicutils.js:4379 -#: js/musicutils.js:4416 -msgid "current" +#: js/turtleactions/ToneActions.js:134 +msgid "Vibrato intensity must be between 1 and 100." msgstr "" -#: js/musicutils.js:4382 -#: js/musicutils.js:4407 -msgid "next" +#: js/turtleactions/ToneActions.js:139 +msgid "Vibrato rate must be greater than 0." msgstr "" -#: js/musicutils.js:4385 -#: js/musicutils.js:4412 -msgid "previous" +#: js/turtleactions/ToneActions.js:192 +#: js/turtleactions/ToneActions.js:265 +#.TRANS: Depth is the intesity of the tremolo or chorus effect. +msgid "Depth is out of range." msgstr "" -#: js/synthutils.js:104 -#.TRANS: simple monotone synthesizer -msgid "simple-2" +#: js/turtleactions/ToneActions.js:301 +msgid "Distortion must be from 0 to 100." msgstr "" -#: js/synthutils.js:106 -#.TRANS: simple monotone synthesizer -msgid "simple-3" +#: js/turtleactions/ToneActions.js:332 +#.TRANS: partials components in a harmonic series +msgid "Partial must be greater than or equal to 0." msgstr "" -#: js/synthutils.js:108 -#.TRANS: simple monotone synthesizer -msgid "simple-4" +#: js/turtleactions/ToneActions.js:378 +#: js/turtleactions/ToneActions.js:417 +#: js/turtleactions/ToneActions.js:456 +#: js/widgets/timbre.js:782 +msgid "Unable to use synth due to existing oscillator" msgstr "" -#: js/synthutils.js:141 -#.TRANS: musical instrument -msgid "taiko" +#: js/turtleactions/ToneActions.js:388 +#: js/turtleactions/ToneActions.js:427 +msgid "The input cannot be negative." msgstr "" -#: js/modewidget.js:86 -#: js/modewidget.js:88 -#: js/modewidget.js:642 -#: js/modewidget.js:644 -#: js/modewidget.js:712 -#: js/modewidget.js:714 -#: js/temperament.js:2078 -#: js/rhythmruler.js:189 -#: js/rhythmruler.js:1410 -#: js/rhythmruler.js:1412 -#: js/rhythmruler.js:1435 -#: js/rhythmruler.js:1437 -#: js/meterwidget.js:89 -#: js/meterwidget.js:91 +#: js/widgets/modewidget.js:86 +#: js/widgets/modewidget.js:88 +#: js/widgets/modewidget.js:642 +#: js/widgets/modewidget.js:644 +#: js/widgets/modewidget.js:712 +#: js/widgets/modewidget.js:714 +#: js/widgets/meterwidget.js:194 +#: js/widgets/meterwidget.js:196 +#: js/widgets/temperament.js:2236 +#: js/widgets/rhythmruler.js:457 +#: js/widgets/rhythmruler.js:1790 +#: js/widgets/rhythmruler.js:1792 +#: js/widgets/rhythmruler.js:1816 +#: js/widgets/rhythmruler.js:1818 msgid "Play all" msgstr "" -#: js/modewidget.js:115 -#: js/pitchstaircase.js:641 -#: js/phrasemaker.js:339 -#: js/pitchdrummatrix.js:94 -#: js/pitchslider.js:125 -#: js/temperament.js:2083 -#: js/musickeyboard.js:530 -#: js/timbre.js:756 -#: js/meterwidget.js:124 -#: js/arpeggio.js:103 +#: js/widgets/modewidget.js:115 +#: js/widgets/meterwidget.js:229 +#: js/widgets/pitchdrummatrix.js:166 +#: js/widgets/pitchslider.js:125 +#: js/widgets/pitchstaircase.js:641 +#: js/widgets/temperament.js:2244 +#: js/widgets/timbre.js:756 +#: js/widgets/arpeggio.js:103 +#: js/widgets/musickeyboard.js:688 +#: js/widgets/phrasemaker.js:550 msgid "Save" msgstr "" -#: js/modewidget.js:121 -#: js/pitchstaircase.js:686 -#: js/phrasemaker.js:356 -#: js/pitchdrummatrix.js:109 -#: js/musickeyboard.js:534 -#: js/rhythmruler.js:269 -#: js/arpeggio.js:118 +#: js/widgets/modewidget.js:121 +#: js/widgets/pitchdrummatrix.js:181 +#: js/widgets/pitchstaircase.js:686 +#: js/widgets/arpeggio.js:118 +#: js/widgets/musickeyboard.js:696 +#: js/widgets/phrasemaker.js:567 +#: js/widgets/rhythmruler.js:601 #.TRANS: clear all subdivisions from the ruler. msgid "Clear" msgstr "" -#: js/modewidget.js:127 +#: js/widgets/modewidget.js:127 msgid "Rotate counter clockwise" msgstr "" -#: js/modewidget.js:133 +#: js/widgets/modewidget.js:133 msgid "Rotate clockwise" msgstr "" -#: js/modewidget.js:139 +#: js/widgets/modewidget.js:139 msgid "Invert" msgstr "" -#: js/modewidget.js:145 -#: js/pitchstaircase.js:678 -#: js/rhythmruler.js:258 -#: js/timbre.js:963 +#: js/widgets/modewidget.js:145 +#: js/widgets/pitchstaircase.js:678 +#: js/widgets/timbre.js:963 +#: js/widgets/rhythmruler.js:578 msgid "Undo" msgstr "" -#: js/modewidget.js:163 +#: js/widgets/modewidget.js:163 #.TRANS: A circle of notes represents the musical mode. msgid "Click in the circle to select notes for the mode." msgstr "" -#: js/modewidget.js:1017 -#: js/pitchstaircase.js:580 -#: js/phrasemaker.js:4855 -#: js/temperament.js:1754 -#: js/rhythmruler.js:1865 -#: js/rhythmruler.js:2081 -#: js/tempo.js:414 +#: js/widgets/modewidget.js:1017 +#: js/widgets/pitchstaircase.js:580 +#: js/widgets/temperament.js:1929 +#: js/widgets/tempo.js:414 +#: js/widgets/phrasemaker.js:5356 +#: js/widgets/rhythmruler.js:2254 +#: js/widgets/rhythmruler.js:2472 msgid "New action block generated!" msgstr "" -#: js/oscilloscope.js:79 -msgid "Zoom In" -msgstr "" - -#: js/oscilloscope.js:88 -msgid "Zoom Out" -msgstr "" - -#: js/pitchstaircase.js:624 -msgid "Play chord" -msgstr "" - -#: js/pitchstaircase.js:632 -msgid "Play scale" +#: js/widgets/meterwidget.js:275 +msgid "Reset" msgstr "" -#: js/pitchstaircase.js:696 -msgid "Click on a note to create a new step." +#: js/widgets/meterwidget.js:301 +msgid "Click in the circle to select strong beats for the meter." msgstr "" -#: js/phrasemaker.js:363 -msgid "Export" +#: js/widgets/oscilloscope.js:79 +msgid "Zoom In" msgstr "" -#: js/phrasemaker.js:370 -msgid "Sort" +#: js/widgets/oscilloscope.js:88 +msgid "Zoom Out" msgstr "" -#: js/phrasemaker.js:373 -#: js/musickeyboard.js:559 -msgid "Add note" +#: js/widgets/pitchdrummatrix.js:356 +#: js/widgets/pitchdrummatrix.js:752 +msgid "Click in the grid to map notes to drums." msgstr "" -#: js/phrasemaker.js:764 -msgid "Click on the table to add notes." +#: js/widgets/pitchslider.js:103 +msgid "Move up" msgstr "" -#: js/phrasemaker.js:2414 -#: js/phrasemaker.js:2543 -msgid "tuplet value" +#: js/widgets/pitchslider.js:114 +msgid "Move down" msgstr "" -#: js/pitchdrummatrix.js:270 -#: js/pitchdrummatrix.js:639 -msgid "Click in the grid to map notes to drums." +#: js/widgets/pitchslider.js:136 +msgid "Click on the slider to create a note block." msgstr "" -#: js/pitchslider.js:103 -msgid "Move up" +#: js/widgets/pitchstaircase.js:624 +msgid "Play chord" msgstr "" -#: js/pitchslider.js:114 -msgid "Move down" +#: js/widgets/pitchstaircase.js:632 +msgid "Play scale" msgstr "" -#: js/pitchslider.js:136 -msgid "Click on the slider to create a note block." +#: js/widgets/pitchstaircase.js:696 +msgid "Click on a note to create a new step." msgstr "" -#: js/temperament.js:215 +#: js/widgets/temperament.js:321 msgid "back to 2:1 octave space" msgstr "" -#: js/temperament.js:323 +#: js/widgets/temperament.js:447 msgid "edit" msgstr "" -#: js/temperament.js:330 -#: js/temperament.js:332 -#: js/temperament.js:1336 -#: js/temperament.js:1338 +#: js/widgets/temperament.js:454 +#: js/widgets/temperament.js:456 +#: js/widgets/temperament.js:1493 +#: js/widgets/temperament.js:1495 msgid "close" msgstr "" -#: js/temperament.js:423 -#: js/temperament.js:736 -#: js/temperament.js:743 -#: js/temperament.js:845 -#: js/temperament.js:935 -#: js/temperament.js:942 -#: js/temperament.js:1015 -#: js/temperament.js:1284 -#: js/temperament.js:1354 -#: js/temperament.js:1430 +#: js/widgets/temperament.js:552 +#: js/widgets/temperament.js:877 +#: js/widgets/temperament.js:884 +#: js/widgets/temperament.js:986 +#: js/widgets/temperament.js:1080 +#: js/widgets/temperament.js:1087 +#: js/widgets/temperament.js:1160 +#: js/widgets/temperament.js:1433 +#: js/widgets/temperament.js:1511 +#: js/widgets/temperament.js:1596 msgid "done" msgstr "" -#: js/temperament.js:477 -#: js/temperament.js:482 -#: js/temperament.js:918 +#: js/widgets/temperament.js:610 +#: js/widgets/temperament.js:615 +#: js/widgets/temperament.js:1063 msgid "ratio" msgstr "" -#: js/temperament.js:483 +#: js/widgets/temperament.js:616 msgid "interval" msgstr "" -#: js/temperament.js:611 +#: js/widgets/temperament.js:744 msgid "non scalar" msgstr "" -#: js/temperament.js:650 +#: js/widgets/temperament.js:787 msgid "ratios" msgstr "" -#: js/temperament.js:650 +#: js/widgets/temperament.js:787 msgid "arbitrary" msgstr "" -#: js/temperament.js:719 +#: js/widgets/temperament.js:860 msgid "number of divisions" msgstr "" -#: js/temperament.js:741 -#: js/temperament.js:858 -#: js/temperament.js:940 -#: js/temperament.js:1033 +#: js/widgets/temperament.js:882 +#: js/widgets/temperament.js:999 +#: js/widgets/temperament.js:1085 +#: js/widgets/temperament.js:1178 msgid "preview" msgstr "" -#: js/temperament.js:788 +#: js/widgets/temperament.js:929 msgid "The Number of divisions is too large." msgstr "" -#: js/temperament.js:921 +#: js/widgets/temperament.js:1066 msgid "recursion" msgstr "" -#: js/temperament.js:1450 +#: js/widgets/temperament.js:1616 msgid "The octave ratio has changed. This changes temperament significantly." msgstr "" -#: js/temperament.js:2087 +#: js/widgets/temperament.js:2248 msgid "Table" msgstr "" -#: js/temperament.js:2185 +#: js/widgets/temperament.js:2356 msgid "Add pitches" msgstr "" -#: js/musickeyboard.js:570 -msgid "Metronome" +#: js/widgets/tempo.js:78 +#: js/widgets/tempo.js:97 +#: js/widgets/tempo.js:99 +#: js/widgets/aiwidget.js:134 +#: js/widgets/aiwidget.js:136 +#: js/widgets/rhythmruler.js:681 +#: js/widgets/rhythmruler.js:683 +#: js/widgets/rhythmruler.js:1864 +#: js/widgets/rhythmruler.js:1866 +#: js/widgets/sampler.js:180 +#: js/widgets/sampler.js:182 +msgid "Pause" msgstr "" -#: js/musickeyboard.js:1296 -#: plugins/rodi.rtp:193 -msgid "duration" +#: js/widgets/tempo.js:113 +msgid "Save tempo" msgstr "" -#: js/musickeyboard.js:2840 -msgid "New action blocks generated!" +#: js/widgets/tempo.js:144 +msgid "speed up" msgstr "" -#: js/musickeyboard.js:2841 -msgid "New action block generated" +#: js/widgets/tempo.js:150 +msgid "slow down" msgstr "" -#: js/musickeyboard.js:2984 -#: js/musickeyboard.js:2992 -msgid "MIDI device present." +#: js/widgets/tempo.js:194 +msgid "Adjust the tempo with the buttons." msgstr "" -#: js/musickeyboard.js:2995 -msgid "No MIDI device found." +#: js/widgets/tempo.js:261 +msgid "Please enter a number between 30 and 1000" msgstr "" -#: js/musickeyboard.js:3000 -msgid "Failed to get MIDI access in browser." +#: js/widgets/tempo.js:268 +#: js/widgets/tempo.js:271 +msgid "The beats per minute must be between 30 and 1000." msgstr "" -#: js/rhythmruler.js:202 -msgid "Save rhythms" +#: js/widgets/tempo.js:287 +msgid "The beats per minute must be below 1000." msgstr "" -#: js/rhythmruler.js:222 -msgid "Save drum machine" +#: js/widgets/tempo.js:303 +msgid "The beats per minute must be above 30" msgstr "" -#: js/rhythmruler.js:263 -#.TRANS: user can tap out a rhythm by clicking on a ruler. -msgid "Tap a rhythm" +#: js/widgets/timbre.js:766 +msgid "Synthesizer" msgstr "" -#: js/rhythmruler.js:342 -#: js/rhythmruler.js:344 -#: js/rhythmruler.js:1481 -#: js/rhythmruler.js:1483 -#: js/sampler.js:110 -#: js/sampler.js:112 -#: js/tempo.js:78 -#: js/tempo.js:97 -#: js/tempo.js:99 -msgid "Pause" +#: js/widgets/timbre.js:789 +msgid "Oscillator" msgstr "" -#: js/rhythmruler.js:478 -msgid "Click on the ruler to divide it." +#: js/widgets/timbre.js:840 +msgid "Envelope" msgstr "" -#: js/rhythmruler.js:603 -#: js/rhythmruler.js:605 -#: js/rhythmruler.js:804 -#: js/rhythmruler.js:806 -#: js/rhythmruler.js:1386 -#: js/rhythmruler.js:1388 -msgid "tap a rhythm" +#: js/widgets/timbre.js:886 +#: planet/js/GlobalTag.js:50 +#.TRANS: On the Planet, we use labels to tag projects. +msgid "Effects" msgstr "" -#: js/rhythmruler.js:1084 -msgid "Maximum value of 256 has been exceeded." +#: js/widgets/timbre.js:904 +msgid "Filter" msgstr "" -#: js/sampler.js:137 -msgid "Warning: Sample is bigger than 1MB." +#: js/widgets/timbre.js:946 +msgid "Add filter" msgstr "" -#: js/sampler.js:142 -msgid "Upload failed: Sample is not a .wav file." +#: js/widgets/timbre.js:987 +msgid "Click on buttons to open the timbre design tools." msgstr "" -#: js/sampler.js:164 -msgid "A new sample block was generated." +#: js/widgets/timbre.js:1273 +msgid "harmonicity" msgstr "" -#: js/sampler.js:255 -msgid "Upload sample" +#: js/widgets/timbre.js:1340 +#: js/widgets/timbre.js:1406 +msgid "modulation index" msgstr "" -#: js/sampler.js:306 -msgid "Save sample" +#: js/widgets/timbre.js:1484 +msgid "vibrato amount" msgstr "" -#: js/sampler.js:697 -#.TRANS: The reference tone is a sound used for comparison. -msgid "reference tone" +#: js/widgets/timbre.js:1919 +msgid "Filter already present." msgstr "" -#: js/tempo.js:113 -msgid "Save tempo" +#: js/widgets/timbre.js:2322 +msgid "delay (MS)" msgstr "" -#: js/tempo.js:144 -msgid "speed up" +#: js/widgets/timbre.js:2507 +msgid "distortion amount" msgstr "" -#: js/tempo.js:150 -msgid "slow down" +#: js/widgets/aiwidget.js:180 +#: js/widgets/sampler.js:227 +msgid "Warning: Sample is bigger than 1MB." msgstr "" -#: js/tempo.js:194 -msgid "Adjust the tempo with the buttons." +#: js/widgets/aiwidget.js:539 +msgid "New start block generated" msgstr "" -#: js/tempo.js:261 -msgid "Please enter a number between 30 and 1000" +#: js/widgets/aiwidget.js:541 +msgid "MIDI loading. This may take some time depending upon the number of notes in the track" msgstr "" -#: js/tempo.js:268 -#: js/tempo.js:271 -msgid "The beats per minute must be between 30 and 1000." +#: js/widgets/aiwidget.js:551 +#: js/widgets/sampler.js:254 +msgid "Upload failed: Sample is not a .wav file." msgstr "" -#: js/tempo.js:287 -msgid "The beats per minute must be below 1000." +#: js/widgets/aiwidget.js:679 +#: js/widgets/sampler.js:432 +msgid "Save sample" msgstr "" -#: js/tempo.js:303 -msgid "The beats per minute must be above 30" +#: js/widgets/aiwidget.js:701 +msgid "AI Music" msgstr "" -#: js/timbre.js:766 -msgid "Synthesizer" +#: js/widgets/arpeggio.js:239 +msgid "Click in the grid to add steps to the arpeggio." msgstr "" -#: js/timbre.js:789 -msgid "Oscillator" +#: js/widgets/help.js:95 +#: js/widgets/help.js:125 +#: js/widgets/help.js:146 +#: js/widgets/help.js:158 +#: js/widgets/help.js:376 +#: js/widgets/help.js:391 +msgid "Take a tour" msgstr "" -#: js/timbre.js:840 -msgid "Envelope" +#: js/widgets/musickeyboard.js:725 +#: js/widgets/phrasemaker.js:584 +msgid "Add note" msgstr "" -#: js/timbre.js:886 -#: js/GlobalTag.js:50 -#.TRANS: On the Planet, we use labels to tag projects. -msgid "Effects" +#: js/widgets/musickeyboard.js:744 +msgid "Metronome" +msgstr "" + +#: js/widgets/musickeyboard.js:1549 +#: plugins/rodi.rtp:193 +msgid "duration" +msgstr "" + +#: js/widgets/musickeyboard.js:3179 +msgid "New action blocks generated" +msgstr "" + +#: js/widgets/musickeyboard.js:3180 +msgid "New action block generated" msgstr "" -#: js/timbre.js:904 -msgid "Filter" +#: js/widgets/musickeyboard.js:3365 +#: js/widgets/musickeyboard.js:3373 +msgid "MIDI device present." msgstr "" -#: js/timbre.js:946 -msgid "Add filter" +#: js/widgets/musickeyboard.js:3376 +msgid "No MIDI device found." msgstr "" -#: js/timbre.js:987 -msgid "Click on buttons to open the timbre design tools." +#: js/widgets/musickeyboard.js:3386 +msgid "Failed to get MIDI access in browser." msgstr "" -#: js/timbre.js:1273 -msgid "harmonicity" +#: js/widgets/phrasemaker.js:574 +msgid "Export" msgstr "" -#: js/timbre.js:1340 -#: js/timbre.js:1406 -msgid "modulation index" +#: js/widgets/phrasemaker.js:581 +msgid "Sort" msgstr "" -#: js/timbre.js:1484 -msgid "vibrato amount" +#: js/widgets/phrasemaker.js:975 +msgid "Click on the table to add notes." msgstr "" -#: js/timbre.js:1919 -msgid "Filter already present." +#: js/widgets/phrasemaker.js:2677 +#: js/widgets/phrasemaker.js:2819 +msgid "tuplet value" msgstr "" -#: js/timbre.js:2322 -msgid "delay (MS)" +#: js/widgets/rhythmruler.js:486 +msgid "Save rhythms" msgstr "" -#: js/timbre.js:2507 -msgid "distortion amount" +#: js/widgets/rhythmruler.js:512 +msgid "Save drum machine" msgstr "" -#: js/meterwidget.js:170 -msgid "Reset" +#: js/widgets/rhythmruler.js:589 +#.TRANS: user can tap out a rhythm by clicking on a ruler. +msgid "Tap a rhythm" msgstr "" -#: js/meterwidget.js:196 -msgid "Click in the circle to select strong beats for the meter." +#: js/widgets/rhythmruler.js:817 +msgid "Click on the ruler to divide it." msgstr "" -#: js/arpeggio.js:239 -msgid "Click in the grid to add steps to the arpeggio." +#: js/widgets/rhythmruler.js:950 +#: js/widgets/rhythmruler.js:952 +#: js/widgets/rhythmruler.js:1152 +#: js/widgets/rhythmruler.js:1154 +#: js/widgets/rhythmruler.js:1765 +#: js/widgets/rhythmruler.js:1767 +msgid "tap a rhythm" msgstr "" -#: js/ProjectStorage.js:243 -msgid "anonymous" +#: js/widgets/rhythmruler.js:1459 +msgid "Maximum value of 256 has been exceeded." msgstr "" -#: js/GlobalCard.js:68 -msgid "Share" +#: js/widgets/sampler.js:237 +msgid "Recording started..." msgstr "" -#: js/GlobalCard.js:74 -msgid "Flags" +#: js/widgets/sampler.js:245 +msgid "Recording complete..." msgstr "" -#: js/LocalCard.js:36 -msgid "View published project" +#: js/widgets/sampler.js:283 +msgid "A new sample block was generated." msgstr "" -#: js/LocalCard.js:42 -msgid "Publish project" +#: js/widgets/sampler.js:378 +msgid "Upload sample" msgstr "" -#: js/LocalCard.js:51 -msgid "Edit project" +#: js/widgets/sampler.js:399 +msgid "Warning: Your sample cannot be loaded because it is >1MB." msgstr "" -#: js/LocalCard.js:52 -msgid "Delete project" +#: js/widgets/sampler.js:448 +msgid "Toggle Mic" msgstr "" -#: js/LocalCard.js:53 -msgid "Download project" +#: js/widgets/sampler.js:458 +msgid "Playback" msgstr "" -#: js/LocalCard.js:55 -msgid "Duplicate project" +#: js/widgets/sampler.js:979 +#.TRANS: The reference tone is a sound used for comparison. +msgid "reference tone" msgstr "" -#: js/GlobalTag.js:28 +#: planet/js/GlobalTag.js:28 #.TRANS: On the Planet, we use labels to tag projects. msgid "All Projects" msgstr "" -#: js/GlobalTag.js:30 -#: js/StringHelper.js:37 +#: planet/js/GlobalTag.js:30 +#: planet/js/StringHelper.js:37 #.TRANS: On the Planet, we use labels to tag projects. msgid "My Projects" msgstr "" -#: js/GlobalTag.js:32 +#: planet/js/GlobalTag.js:32 #.TRANS: On the Planet, we use labels to tag projects. msgid "Examples" msgstr "" -#: js/GlobalTag.js:34 +#: planet/js/GlobalTag.js:34 #.TRANS: On the Planet, we use labels to tag projects. msgid "Music" msgstr "" -#: js/GlobalTag.js:36 +#: planet/js/GlobalTag.js:36 #.TRANS: On the Planet, we use labels to tag projects. msgid "Art" msgstr "" -#: js/GlobalTag.js:38 +#: planet/js/GlobalTag.js:38 #.TRANS: On the Planet, we use labels to tag projects. msgid "Math" msgstr "" -#: js/GlobalTag.js:40 +#: planet/js/GlobalTag.js:40 #.TRANS: On the Planet, we use labels to tag projects. msgid "Interactive" msgstr "" -#: js/GlobalTag.js:42 +#: planet/js/GlobalTag.js:42 #.TRANS: On the Planet, we use labels to tag projects. msgid "Design" msgstr "" -#: js/GlobalTag.js:44 +#: planet/js/GlobalTag.js:44 #.TRANS: On the Planet, we use labels to tag projects. msgid "Game" msgstr "" -#: js/GlobalTag.js:46 +#: planet/js/GlobalTag.js:46 #.TRANS: On the Planet, we use labels to tag projects. msgid "Media" msgstr "" -#: js/GlobalTag.js:48 +#: planet/js/GlobalTag.js:48 #.TRANS: On the Planet, we use labels to tag projects. msgid "Sensors" msgstr "" -#: js/GlobalTag.js:52 +#: planet/js/GlobalTag.js:52 #.TRANS: On the Planet, we use labels to tag projects. msgid "Code Snippet" msgstr "" -#: js/helper.js:149 -#: js/StringHelper.js:49 -msgid "Show more tags" +#: planet/js/LocalCard.js:36 +msgid "View published project" msgstr "" -#: js/helper.js:150 -msgid "Show fewer tags" +#: planet/js/LocalCard.js:42 +msgid "Publish project" +msgstr "" + +#: planet/js/LocalCard.js:51 +msgid "Edit project" +msgstr "" + +#: planet/js/LocalCard.js:52 +msgid "Delete project" +msgstr "" + +#: planet/js/LocalCard.js:53 +msgid "Download project" +msgstr "" + +#: planet/js/LocalCard.js:55 +msgid "Duplicate project" +msgstr "" + +#: planet/js/ProjectStorage.js:243 +msgid "anonymous" +msgstr "" + +#: planet/js/SaveInterface.js:34 +msgid "Open in Music Blocks" +msgstr "" + +#: planet/js/SaveInterface.js:35 +msgid "Open in Turtle Blocks" +msgstr "" + +#: planet/js/GlobalCard.js:68 +msgid "Share" +msgstr "" + +#: planet/js/GlobalCard.js:74 +msgid "Flags" +msgstr "" + +#: planet/js/GlobalPlanet.js:35 +msgid "No results found." +msgstr "" + +#: planet/js/GlobalPlanet.js:51 +msgid "Remix of" +msgstr "" + +#: planet/js/GlobalPlanet.js:509 +msgid "Cannot connect to server" msgstr "" -#: js/ProjectViewer.js:30 +#: planet/js/ProjectViewer.js:30 msgid "Error: Report could not be submitted. Try again later." msgstr "" -#: js/ProjectViewer.js:31 +#: planet/js/ProjectViewer.js:31 msgid "Thank you for reporting this project. A moderator will review the project shortly, to verify violation of the Sugar Labs Code of Conduct." msgstr "" -#: js/ProjectViewer.js:32 -#: js/StringHelper.js:62 -#: js/StringHelper.js:64 -#: js/StringHelper.js:68 +#: planet/js/ProjectViewer.js:32 +#: planet/js/StringHelper.js:62 +#: planet/js/StringHelper.js:64 +#: planet/js/StringHelper.js:68 msgid "Report Project" msgstr "" -#: js/ProjectViewer.js:33 -#: js/StringHelper.js:63 +#: planet/js/ProjectViewer.js:33 +#: planet/js/StringHelper.js:63 msgid "Project Reported" msgstr "" -#: js/ProjectViewer.js:34 +#: planet/js/ProjectViewer.js:34 msgid "Report description required" msgstr "" -#: js/ProjectViewer.js:35 +#: planet/js/ProjectViewer.js:35 msgid "Report description too long" msgstr "" -#: js/StringHelper.js:30 +#: planet/js/Publisher.js:30 +msgid "Feature unavailable - cannot connect to server. Reload Music Blocks to try again." +msgstr "" + +#: planet/js/Publisher.js:220 +#: planet/js/Publisher.js:237 +msgid "This field is required" +msgstr "" + +#: planet/js/Publisher.js:227 +msgid "Title too long" +msgstr "" + +#: planet/js/Publisher.js:244 +msgid "Description too long" +msgstr "" + +#: planet/js/Publisher.js:341 +msgid "Server Error" +msgstr "" + +#: planet/js/Publisher.js:341 +msgid "Try Again" +msgstr "" + +#: planet/js/StringHelper.js:30 msgid "Planet" msgstr "" -#: js/StringHelper.js:31 +#: planet/js/StringHelper.js:31 msgid "Close Planet" msgstr "" -#: js/StringHelper.js:32 +#: planet/js/StringHelper.js:32 msgid "Open project from file" msgstr "" -#: js/StringHelper.js:34 +#: planet/js/StringHelper.js:34 msgid "Local" msgstr "" -#: js/StringHelper.js:35 +#: planet/js/StringHelper.js:35 msgid "Global" msgstr "" -#: js/StringHelper.js:36 +#: planet/js/StringHelper.js:36 msgid "Search for a project" msgstr "" -#: js/StringHelper.js:38 +#: planet/js/StringHelper.js:38 msgid "Publish Project" msgstr "" -#: js/StringHelper.js:40 +#: planet/js/StringHelper.js:40 msgid "Tags (max 5)" msgstr "" -#: js/StringHelper.js:41 -#: js/StringHelper.js:61 +#: planet/js/StringHelper.js:41 +#: planet/js/StringHelper.js:61 msgid "Description" msgstr "" -#: js/StringHelper.js:42 -#: js/StringHelper.js:67 +#: planet/js/StringHelper.js:42 +#: planet/js/StringHelper.js:67 msgid "Submit" msgstr "" -#: js/StringHelper.js:43 -#: js/StringHelper.js:47 +#: planet/js/StringHelper.js:43 +#: planet/js/StringHelper.js:47 msgid "Cancel" msgstr "" -#: js/StringHelper.js:44 +#: planet/js/StringHelper.js:44 msgid "Delete \\"\\"?" msgstr "" -#: js/StringHelper.js:45 +#: planet/js/StringHelper.js:45 msgid "Permanently delete project \\"\\"?" msgstr "" -#: js/StringHelper.js:48 +#: planet/js/StringHelper.js:48 msgid "Explore Projects" msgstr "" -#: js/StringHelper.js:50 +#: planet/js/StringHelper.js:49 +#: planet/js/helper.js:149 +msgid "Show more tags" +msgstr "" + +#: planet/js/StringHelper.js:50 msgid "Most recent" msgstr "" -#: js/StringHelper.js:51 +#: planet/js/StringHelper.js:51 msgid "Most liked" msgstr "" -#: js/StringHelper.js:52 +#: planet/js/StringHelper.js:52 msgid "Most downloaded" msgstr "" -#: js/StringHelper.js:53 +#: planet/js/StringHelper.js:53 msgid "A-Z" msgstr "" -#: js/StringHelper.js:54 +#: planet/js/StringHelper.js:54 msgid "Sort by" msgstr "" -#: js/StringHelper.js:55 +#: planet/js/StringHelper.js:55 msgid "Load More Projects" msgstr "" -#: js/StringHelper.js:56 +#: planet/js/StringHelper.js:56 msgid "Last Updated" msgstr "" -#: js/StringHelper.js:57 +#: planet/js/StringHelper.js:57 msgid "Creation Date" msgstr "" -#: js/StringHelper.js:58 +#: planet/js/StringHelper.js:58 msgid "Number of Downloads:" msgstr "" -#: js/StringHelper.js:59 +#: planet/js/StringHelper.js:59 msgid "Number of Likes:" msgstr "" -#: js/StringHelper.js:60 +#: planet/js/StringHelper.js:60 msgid "Tags:" msgstr "" -#: js/StringHelper.js:65 +#: planet/js/StringHelper.js:65 msgid "Report projects which violate the Sugar Labs Code of Conduct." msgstr "" -#: js/StringHelper.js:66 +#: planet/js/StringHelper.js:66 msgid "Reason for reporting project" msgstr "" -#: js/StringHelper.js:70 +#: planet/js/StringHelper.js:70 msgid "Download as File" msgstr "" -#: js/GlobalPlanet.js:35 -msgid "No results found." -msgstr "" - -#: js/GlobalPlanet.js:51 -msgid "Remix of" -msgstr "" - -#: js/GlobalPlanet.js:509 -msgid "Cannot connect to server" -msgstr "" - -#: js/Publisher.js:30 -msgid "Feature unavailable - cannot connect to server. Reload Music Blocks to try again." -msgstr "" - -#: js/Publisher.js:218 -#: js/Publisher.js:235 -msgid "This field is required" -msgstr "" - -#: js/Publisher.js:225 -msgid "Title too long" +#: planet/js/helper.js:150 +msgid "Show fewer tags" msgstr "" -#: js/Publisher.js:242 -msgid "Description too long" +#: plugins/accelerometer.rtp:48 +msgid "motion x" msgstr "" -#: js/Publisher.js:339 -msgid "Server Error" +#: plugins/accelerometer.rtp:56 +msgid "motion y" msgstr "" -#: js/Publisher.js:339 -msgid "Try Again" +#: plugins/accelerometer.rtp:64 +msgid "motion z" msgstr "" -#: js/SaveInterface.js:34 -msgid "Open in Music Blocks" +#: plugins/facebook.rtp:27 +msgid "publish" msgstr "" -#: js/SaveInterface.js:35 -msgid "Open in Turtle Blocks" +#: plugins/maths.rtp:62 +msgid "power" msgstr "" -#: plugins/weather.rtp:68 -#: plugins/weather.rtp:97 -msgid "Days ahead must be in the range of -1 to 5." +#: plugins/maths.rtp:62 +msgid "base" msgstr "" -#: plugins/weather.rtp:122 -msgid "forecast" +#: plugins/maths.rtp:62 +msgid "exp" msgstr "" -#: plugins/weather.rtp:123 -#: plugins/weather.rtp:137 -#: plugins/weather.rtp:150 -msgid "city" +#: plugins/maths.rtp:99 +msgid "floor" msgstr "" -#: plugins/weather.rtp:124 -#: plugins/weather.rtp:138 -#: plugins/weather.rtp:151 -msgid "day" +#: plugins/maths.rtp:104 +msgid "ceiling" msgstr "" -#: plugins/weather.rtp:136 -msgid "high" +#: plugins/maths.rtp:109 +msgid "to degrees" msgstr "" -#: plugins/weather.rtp:149 -msgid "low" +#: plugins/maths.rtp:114 +msgid "to radians" msgstr "" #: plugins/nutrition.rtp:104 @@ -9459,45 +9868,6 @@ msgstr "" msgid "water" msgstr "" -#: plugins/maths.rtp:62 -#: plugins/examples.rtp:93 -msgid "power" -msgstr "" - -#: plugins/maths.rtp:62 -#: plugins/examples.rtp:93 -msgid "base" -msgstr "" - -#: plugins/maths.rtp:62 -#: plugins/examples.rtp:93 -msgid "exp" -msgstr "" - -#: plugins/maths.rtp:99 -#: plugins/examples.rtp:130 -msgid "floor" -msgstr "" - -#: plugins/maths.rtp:104 -#: plugins/examples.rtp:135 -msgid "ceiling" -msgstr "" - -#: plugins/maths.rtp:109 -#: plugins/examples.rtp:140 -msgid "to degrees" -msgstr "" - -#: plugins/maths.rtp:114 -#: plugins/examples.rtp:145 -msgid "to radians" -msgstr "" - -#: plugins/facebook.rtp:27 -msgid "publish" -msgstr "" - #: plugins/rodi.rtp:172 msgid "blink" msgstr "" @@ -9526,18 +9896,66 @@ msgstr "" msgid "move" msgstr "" -#: plugins/accelerometer.rtp:48 -msgid "motion x" +#: plugins/weather.rtp:68 +#: plugins/weather.rtp:97 +msgid "Days ahead must be in the range of -1 to 5." msgstr "" -#: plugins/accelerometer.rtp:56 -msgid "motion y" +#: plugins/weather.rtp:122 +msgid "forecast" msgstr "" -#: plugins/accelerometer.rtp:64 -msgid "motion z" +#: plugins/weather.rtp:123 +#: plugins/weather.rtp:137 +#: plugins/weather.rtp:150 +msgid "city" +msgstr "" + +#: plugins/weather.rtp:124 +#: plugins/weather.rtp:138 +#: plugins/weather.rtp:151 +msgid "day" +msgstr "" + +#: plugins/weather.rtp:136 +msgid "high" +msgstr "" + +#: plugins/weather.rtp:149 +msgid "low" msgstr "" +#: js/toolbar.js:70 + +#: js/toolbar.js:130 + +#: js/toolbar.js:194 + +#: js/toolbar.js:249 + +#~msgid "Toggle JavaScript Editor" +#~msgstr "" + +#: js/EnsembleBlocks.js:643 + +#~msgid "The Turrle pitch block returns the current pitch number being played by the specified turtle." +#~msgstr "" + +#: js/PitchActions.js:88 + +#~msgid "The Scalar Step Block must be used inside of a Note Block." +#~msgstr "" + +#: js/PitchActions.js:107 + +#~msgid "The Scalar Step Block must be preceded by a Pitch Block." +#~msgstr "" + +#: js/musickeyboard.js:2840 + +#~msgid "New action blocks generated!" +#~msgstr "" + #: js/toolbar.js:110 #: js/toolbar.js:204 @@ -9878,11 +10296,6 @@ msgstr "" #~msgid "The Time block returns the number of seconds that the program has been running." #~msgstr "" -#: js/help.js:95 - -#~msgid "Take a tour" -#~msgstr "" - #: js/GlobalCard.js:48 #~msgid "More Details" @@ -12781,11 +13194,6 @@ msgstr "" #~msgid "The save-stack button saves a stack onto a custom palette. It appears after a \"long press\" on a stack." #~msgstr "" -#: js/musicutils.js:254 - -#~msgid "Custom" -#~msgstr "" - #: js/basicblocks.js:4785 #~msgid "Rhythm" diff --git a/po/sq.po b/po/sq.po index 9672097708..05937b8f9c 100644 --- a/po/sq.po +++ b/po/sq.po @@ -2126,276 +2126,131 @@ #: js/planetInterface.js:104 #: js/planetInterface.js:104 #: js/planetInterface.js:104 -msgid "project undefined" -msgstr "" - -#: js/logo.js:61 -msgid "Not a valid pitch name" -msgstr "" - -#: js/logo.js:507 -#: js/ProgramBlocks.js:258 -#: js/ProgramBlocks.js:427 -msgid "You must select a file." -msgstr "" - -#: js/logo.js:1184 -#: js/turtles.js:118 -#: js/turtle-painter.js:1192 -#: js/turtle-painter.js:1193 -#: js/block.js:1463 -#: js/lilypond.js:757 -#: js/lilypond.js:921 -#: js/lilypond.js:959 -#: js/ActionBlocks.js:1223 -#: js/ProgramBlocks.js:1267 -msgid "start" -msgstr "" - -#: js/logo.js:1696 -msgid "Playback is ready." -msgstr "" - -#: js/blocks.js:1011 -#: js/blocks.js:3427 -#: js/blocks.js:3428 -#: js/blocks.js:3653 -#: js/blocks.js:4012 -#: js/blocks.js:4205 -#: js/blocks.js:5343 -#: js/blocks.js:6474 -#: js/palette.js:527 -#: js/palette.js:536 -#: js/palette.js:545 -#: js/palette.js:554 -#: js/palette.js:1131 -#: js/palette.js:1142 -#: js/palette.js:1153 -#: js/palette.js:1164 -#: js/palette.js:1183 -#: js/rubrics.js:529 -#: js/macros.js:170 -#: js/macros.js:266 -#: js/macros.js:267 -#: js/macros.js:276 -#: js/macros.js:828 -#: js/block.js:1449 -#: js/block.js:4164 -#: js/block.js:4182 -#: js/block.js:4193 -#: js/turtledefs.js:128 -#: js/turtledefs.js:230 -#: js/ActionBlocks.js:254 -#: js/ActionBlocks.js:307 -#: js/ActionBlocks.js:617 -#: js/ActionBlocks.js:716 -#: js/ActionBlocks.js:961 -#: js/ActionBlocks.js:1049 -#: js/ActionBlocks.js:1322 -#: js/ActionBlocks.js:1325 -#: js/ActionBlocks.js:1337 -#: js/ActionBlocks.js:1404 -#: js/MeterBlocks.js:715 -#: js/MeterBlocks.js:768 -#: js/MeterBlocks.js:831 -#: js/MeterBlocks.js:892 -#: js/phrasemaker.js:4412 -#: js/musickeyboard.js:2647 -#: js/rhythmruler.js:1928 -#: js/rhythmruler.js:1935 -#: js/rhythmruler.js:2119 -#: js/rhythmruler.js:2126 -msgid "action" -msgstr "" - -#: js/blocks.js:1205 -#: js/blocks.js:3380 -#: js/blocks.js:3770 -#: js/blocks.js:3801 -#: js/blocks.js:3850 -#: js/blocks.js:3885 -#: js/blocks.js:6497 -#: js/palette.js:509 -#: js/palette.js:638 -#: js/palette.js:1107 -#: js/BoxesBlocks.js:282 -#: js/BoxesBlocks.js:285 -#: js/BoxesBlocks.js:405 -#: js/BoxesBlocks.js:594 -msgid "box" -msgstr "" - -#: js/blocks.js:1680 -msgid "Consider breaking this stack into parts." +#: js/SaveInterface.js:59 +#: js/SaveInterface.js:61 +#: js/SaveInterface.js:93 +msgid "Music Blocks Project" msgstr "" -#: js/blocks.js:2408 -#: js/palette.js:653 -#: js/MediaBlocks.js:602 -msgid "open file" +#: js/SaveInterface.js:63 +msgid "This project was created in Music Blocks" msgstr "" -#: js/blocks.js:2415 -#: js/blocks.js:2423 -#: js/activity.js:1875 -msgid "audio file" +#: js/SaveInterface.js:67 +msgid "Music Blocks is a Free/Libre Software application." msgstr "" -#: js/blocks.js:2536 -#: js/blocks.js:3147 -#: js/block.js:3543 -msgid "on2" +#: js/SaveInterface.js:69 +msgid "The source code can be accessed at" msgstr "" -#: js/blocks.js:2538 -#: js/blocks.js:3149 -#: js/block.js:3545 -msgid "off" +#: js/SaveInterface.js:72 +msgid "For more information, please consult the" msgstr "" -#: js/blocks.js:2543 -#: js/blocks.js:3154 -#: js/palette.js:618 -#: js/block.js:3466 -#: js/BooleanBlocks.js:77 -#: js/BooleanBlocks.js:167 -#: js/BooleanBlocks.js:251 -#: js/BooleanBlocks.js:335 -#: js/BooleanBlocks.js:433 -#: js/BooleanBlocks.js:539 -#: js/BooleanBlocks.js:640 -#: js/BooleanBlocks.js:741 -#: js/BooleanBlocks.js:847 -#: js/BooleanBlocks.js:948 -#: js/BooleanBlocks.js:1033 -#: js/SensorsBlocks.js:910 -msgid "true" +#: js/SaveInterface.js:76 +#: js/turtledefs.js:795 +msgid "Music Blocks Guide" msgstr "" -#: js/blocks.js:2545 -#: js/blocks.js:3156 -#: js/block.js:3466 -#: js/BooleanBlocks.js:79 -#: js/BooleanBlocks.js:169 -#: js/BooleanBlocks.js:253 -#: js/BooleanBlocks.js:337 -#: js/BooleanBlocks.js:435 -#: js/BooleanBlocks.js:541 -#: js/BooleanBlocks.js:642 -#: js/BooleanBlocks.js:743 -#: js/BooleanBlocks.js:849 -#: js/BooleanBlocks.js:950 -#: js/SensorsBlocks.js:912 -msgid "false" +#: js/SaveInterface.js:83 +msgid "Alternatively, open the file in Music Blocks using the Load project button." msgstr "" -#: js/blocks.js:3183 -#: js/palette.js:574 -#: js/MediaBlocks.js:892 -#: js/MediaBlocks.js:963 -msgid "text" +#: js/SaveInterface.js:85 +msgid "Project Code" msgstr "" -#: js/blocks.js:3379 -#: js/palette.js:641 -#: js/palette.js:642 -#: js/BoxesBlocks.js:514 -msgid "store in box" +#: js/SaveInterface.js:87 +msgid "This code stores data about the blocks in a project." msgstr "" -#: js/blocks.js:3384 -#: js/blocks.js:3824 -#: js/blocks.js:3859 -#: js/blocks.js:3894 -#: js/blocks.js:5773 -#: js/blocks.js:5794 -#: js/BoxesBlocks.js:772 -msgid "box1" +#: js/SaveInterface.js:89 +msgid "Show" msgstr "" -#: js/blocks.js:3386 -#: js/blocks.js:3826 -#: js/blocks.js:3861 -#: js/blocks.js:3896 -#: js/blocks.js:5775 -#: js/blocks.js:5796 -#: js/BoxesBlocks.js:663 -msgid "box2" +#: js/SaveInterface.js:91 +msgid "Hide" msgstr "" -#: js/blocks.js:4058 -#: js/palette.js:639 -#: js/palette.js:644 -#: js/palette.js:1043 -#: js/BoxesBlocks.js:591 -msgid "store in" +#: js/SaveInterface.js:131 +#: js/SaveInterface.js:204 +#: js/SaveInterface.js:262 +#: js/SaveInterface.js:389 +#: js/SaveInterface.js:417 +#: js/activity.js:4884 +#: planet/js/ProjectStorage.js:27 +#: planet/js/GlobalPlanet.js:467 +#: planet/js/GlobalPlanet.js:469 +#: planet/js/GlobalPlanet.js:495 +#.TRANS: default project title when saving as Lilypond +msgid "My Project" msgstr "" -#: js/blocks.js:4058 -#: js/EnsembleBlocks.js:391 -#: js/EnsembleBlocks.js:402 -#: js/MediaBlocks.js:746 -#: js/ProgramBlocks.js:390 -#: js/ProgramBlocks.js:495 -#: js/ProgramBlocks.js:658 -#: js/BoxesBlocks.js:595 -#: js/PitchBlocks.js:656 -#: js/PitchBlocks.js:932 -#: js/PitchBlocks.js:1827 -#: js/ToneBlocks.js:1025 -#: js/DictBlocks.js:215 -#: js/DictBlocks.js:289 -msgid "name" +#: js/SaveInterface.js:197 +#: planet/js/SaveInterface.js:58 +msgid "No description provided" msgstr "" -#: js/blocks.js:4058 -#: js/RhythmBlocks.js:1130 -#: js/BoxesBlocks.js:75 -#: js/BoxesBlocks.js:595 -#: js/HeapBlocks.js:544 -#: js/DictBlocks.js:289 -#: js/DictBlocks.js:430 -msgid "value" +#: js/SaveInterface.js:332 +msgid "Your recording is in progress." msgstr "" -#: js/blocks.js:4907 -msgid "There is no block selected." +#: js/SaveInterface.js:401 +#.TRANS: File name prompt for save as Lilypond +msgid "File name" msgstr "" -#: js/blocks.js:5002 -#: js/MediaBlocks.js:888 -msgid "show" +#: js/SaveInterface.js:403 +#: planet/js/StringHelper.js:39 +#.TRANS: Project title prompt for save as Lilypond +msgid "Project title" msgstr "" -#: js/blocks.js:5005 -#: js/MediaBlocks.js:803 -#.TRANS: Avatar is the image used to determine the appearance of the mouse. -msgid "avatar" +#: js/SaveInterface.js:405 +#.TRANS: Project title prompt for save as Lilypond +msgid "Project author" msgstr "" -#: js/blocks.js:5008 -#: js/ToneBlocks.js:1010 -#: js/sampler.js:693 -#.TRANS: The sound sample that the user uploads. -msgid "sample" +#: js/SaveInterface.js:407 +#.TRANS: MIDI prompt for save as Lilypond +msgid "Include MIDI output?" msgstr "" -#: js/turtles.js:874 -msgid "Grid" +#: js/SaveInterface.js:409 +#.TRANS: Guitar prompt for save as Lilypond +msgid "Include guitar tablature output?" msgstr "" -#: js/turtles.js:891 -#: js/turtledefs.js:626 -msgid "Clean" +#: js/SaveInterface.js:411 +#.TRANS: Lilypond is a scripting language for generating sheet music +msgid "Save as Lilypond" msgstr "" -#: js/turtles.js:912 -#: js/turtledefs.js:632 -msgid "Collapse" +#: js/SaveInterface.js:426 +#: js/blocks/EnsembleBlocks.js:75 +#: js/blocks/EnsembleBlocks.js:154 +#: js/blocks/EnsembleBlocks.js:216 +#: js/blocks/EnsembleBlocks.js:302 +#: js/blocks/EnsembleBlocks.js:348 +#: js/blocks/EnsembleBlocks.js:389 +#: js/blocks/EnsembleBlocks.js:441 +#: js/blocks/EnsembleBlocks.js:490 +#: js/blocks/EnsembleBlocks.js:536 +#: js/blocks/EnsembleBlocks.js:583 +#: js/blocks/EnsembleBlocks.js:637 +#: js/blocks/EnsembleBlocks.js:753 +#: js/blocks/EnsembleBlocks.js:840 +#: js/blocks/EnsembleBlocks.js:899 +#: js/blocks/EnsembleBlocks.js:942 +#: js/blocks/EnsembleBlocks.js:1212 +#: js/blocks/EnsembleBlocks.js:1280 +#.TRANS: default project author when saving as Lilypond +msgid "Mr. Mouse" msgstr "" -#: js/turtles.js:940 -msgid "Expand" +#: js/SaveInterface.js:573 +msgid "The Lilypond code is copied to clipboard. You can paste it here: " msgstr "" #: js/languagebox.js:198 @@ -2406,6933 +2261,7487 @@ msgstr "" msgid "Music Blocks is already set to this language." msgstr "" -#: js/piemenus.js:200 -#: js/musicutils.js:808 -#: js/musicutils.js:824 -#: js/phrasemaker.js:1672 -#: js/musickeyboard.js:2041 -#: js/sampler.js:544 -#.TRANS: double sharp is a music term related to pitch -msgid "double sharp" +#: js/planetInterface.js:131 +msgid "project undefined" msgstr "" -#: js/piemenus.js:201 -#: js/PitchBlocks.js:1510 -#: js/PitchActions.js:580 -#: js/musicutils.js:806 -#: js/musicutils.js:825 -#: js/phrasemaker.js:1673 -#: js/musickeyboard.js:2042 -#: js/sampler.js:545 -#.TRANS: sharp is a half-step up in pitch -#.TRANS: sharp is a music term related to pitch -msgid "sharp" +#: js/rubrics.js:523 +#: js/turtledefs.js:119 +#: js/turtledefs.js:221 +#: js/blocks/RhythmBlockPaletteBlocks.js:52 +#: js/blocks/RhythmBlockPaletteBlocks.js:234 +#: js/blocks/ProgramBlocks.js:745 +#: js/widgets/rhythmruler.js:2057 +#: js/widgets/rhythmruler.js:2064 +#: js/widgets/rhythmruler.js:2133 +#: js/widgets/rhythmruler.js:2140 +#: js/widgets/rhythmruler.js:2219 +#.TRANS: an arrangement of notes based on duration +msgid "rhythm" msgstr "" -#: js/piemenus.js:202 -#: js/musicutils.js:804 -#: js/musicutils.js:826 -#: js/phrasemaker.js:1674 -#: js/musickeyboard.js:2043 -#: js/sampler.js:546 -#.TRANS: natural is a music term related to pitch -msgid "natural" +#: js/rubrics.js:524 +#: js/turtledefs.js:121 +#: js/turtledefs.js:223 +#: js/block-verbose.js:2622 +#: js/block.js:2550 +#: js/blocks/IntervalsBlocks.js:63 +#: js/blocks/SensorsBlocks.js:178 +#: js/blocks/PitchBlocks.js:1839 +#: js/blocks/PitchBlocks.js:1853 +#: js/widgets/musickeyboard.js:1935 +#: js/widgets/phrasemaker.js:1036 +#.TRANS: pitch number +#.TRANS: pitch number +#.TRANS: we specify pitch in terms of a name and an octave. The name can be CDEFGAB or Do Re Mi Fa Sol La Ti. Octave is a number between 1 and 8. +msgid "pitch" msgstr "" -#: js/piemenus.js:203 -#: js/PitchBlocks.js:1469 -#: js/PitchActions.js:583 -#: js/musicutils.js:802 -#: js/musicutils.js:827 -#: js/phrasemaker.js:1675 -#: js/musickeyboard.js:2044 -#: js/sampler.js:547 -#.TRANS: flat is a half-step down in pitch -#.TRANS: flat is a music term related to pitch -msgid "flat" +#: js/rubrics.js:525 +#: js/turtledefs.js:123 +#: js/turtledefs.js:225 +msgid "tone" msgstr "" -#: js/piemenus.js:204 -#: js/musicutils.js:800 -#: js/musicutils.js:828 -#: js/phrasemaker.js:1676 -#: js/musickeyboard.js:2045 -#: js/sampler.js:548 -#.TRANS: double flat is a music term related to pitch -msgid "double flat" +#: js/rubrics.js:526 +#: js/lilypond.js:605 +#: js/lilypond.js:904 +#: js/lilypond.js:910 +#: js/lilypond.js:948 +msgid "mouse" msgstr "" -#: js/piemenus.js:2861 -#: js/PitchBlocks.js:1357 -#: js/musicutils.js:627 -#.TRANS: unison means the note is the same as the current note -#.TRANS: unison is a music term related to intervals -msgid "unison" +#: js/rubrics.js:527 +#: js/turtledefs.js:132 +#: js/turtledefs.js:234 +#: js/widgets/phrasemaker.js:1040 +msgid "pen" msgstr "" -#: js/piemenus.js:3015 -#: js/piemenus.js:3088 -#: js/musicutils.js:635 -#: js/musicutils.js:810 -#: js/musicutils.js:912 -#.TRANS: major is a music term related to intervals and mode -msgid "major" +#: js/rubrics.js:528 +#: js/turtledefs.js:133 +#: js/turtledefs.js:235 +#: js/blocks/NumberBlocks.js:981 +#: js/blocks/PitchBlocks.js:1717 +#: js/blocks/PitchBlocks.js:1758 +msgid "number" msgstr "" -#: js/piemenus.js:3015 -#: js/piemenus.js:3088 -#: js/musicutils.js:653 -#.TRANS: modal scale for music -msgid "ionian" +#: js/rubrics.js:529 +#: js/turtledefs.js:127 +#: js/turtledefs.js:229 +msgid "flow" msgstr "" -#: js/piemenus.js:3017 -#: js/piemenus.js:3092 -#: js/musicutils.js:633 -#: js/musicutils.js:811 -#: js/musicutils.js:909 -#.TRANS: minor is a music term related to intervals and mode -msgid "minor" +#: js/rubrics.js:530 +#: js/turtledefs.js:128 +#: js/turtledefs.js:230 +#: js/block-verbose.js:1609 +#: js/block-verbose.js:4559 +#: js/block-verbose.js:4577 +#: js/block-verbose.js:4588 +#: js/block.js:1573 +#: js/block.js:4483 +#: js/block.js:4501 +#: js/block.js:4512 +#: js/blocks.js:1018 +#: js/blocks.js:3491 +#: js/blocks.js:3492 +#: js/blocks.js:3717 +#: js/blocks.js:4076 +#: js/blocks.js:4269 +#: js/blocks.js:5432 +#: js/blocks.js:6563 +#: js/macros.js:170 +#: js/macros.js:266 +#: js/macros.js:267 +#: js/macros.js:276 +#: js/macros.js:828 +#: js/palette.js:527 +#: js/palette.js:536 +#: js/palette.js:545 +#: js/palette.js:554 +#: js/palette.js:1129 +#: js/palette.js:1140 +#: js/palette.js:1151 +#: js/palette.js:1162 +#: js/palette.js:1181 +#: js/blocks/ActionBlocks.js:254 +#: js/blocks/ActionBlocks.js:307 +#: js/blocks/ActionBlocks.js:617 +#: js/blocks/ActionBlocks.js:716 +#: js/blocks/ActionBlocks.js:961 +#: js/blocks/ActionBlocks.js:1049 +#: js/blocks/ActionBlocks.js:1322 +#: js/blocks/ActionBlocks.js:1325 +#: js/blocks/ActionBlocks.js:1337 +#: js/blocks/ActionBlocks.js:1404 +#: js/blocks/MeterBlocks.js:715 +#: js/blocks/MeterBlocks.js:768 +#: js/blocks/MeterBlocks.js:831 +#: js/blocks/MeterBlocks.js:892 +#: js/widgets/musickeyboard.js:2986 +#: js/widgets/phrasemaker.js:4913 +#: js/widgets/rhythmruler.js:2319 +#: js/widgets/rhythmruler.js:2326 +#: js/widgets/rhythmruler.js:2511 +#: js/widgets/rhythmruler.js:2518 +msgid "action" msgstr "" -#: js/piemenus.js:3017 -#: js/piemenus.js:3092 -#: js/musicutils.js:663 -#.TRANS: modal scale for music -msgid "aeolian" +#: js/rubrics.js:531 +#: js/turtledefs.js:136 +#: js/turtledefs.js:238 +msgid "sensors" msgstr "" -#: js/piemenus.js:3407 -msgid "Duplicate" +#: js/rubrics.js:532 +#: js/turtledefs.js:135 +#: js/turtledefs.js:237 +#: js/blocks/MediaBlocks.js:930 +msgid "media" msgstr "" -#: js/piemenus.js:3408 -#: js/turtledefs.js:534 -msgid "Extract" +#: js/rubrics.js:533 +msgid "mice" msgstr "" -#: js/piemenus.js:3409 -msgid "Move to trash" +#: js/toolbar.js:48 +#: js/toolbar.js:109 +msgid "About Music Blocks" msgstr "" -#: js/piemenus.js:3410 -#: js/timbre.js:968 -#: js/StringHelper.js:69 -msgid "Close" +#: js/toolbar.js:49 +#: js/toolbar.js:110 +#: js/toolbar.js:175 +#: js/toolbar.js:231 +#: js/turtledefs.js:445 +#: js/turtledefs.js:482 +#: js/activity.js:2660 +#: js/activity.js:2671 +#: js/activity.js:2902 +#: js/widgets/modewidget.js:77 +#: js/widgets/meterwidget.js:185 +#: js/widgets/pitchdrummatrix.js:147 +#: js/widgets/pitchdrummatrix.js:687 +#: js/widgets/pitchdrummatrix.js:689 +#: js/widgets/pitchdrummatrix.js:741 +#: js/widgets/pitchdrummatrix.js:743 +#: js/widgets/pitchdrummatrix.js:758 +#: js/widgets/pitchdrummatrix.js:760 +#: js/widgets/pitchdrummatrix.js:789 +#: js/widgets/pitchdrummatrix.js:791 +#: js/widgets/pitchstaircase.js:121 +#: js/widgets/temperament.js:610 +#: js/widgets/temperament.js:613 +#: js/widgets/temperament.js:673 +#: js/widgets/temperament.js:675 +#: js/widgets/temperament.js:2017 +#: js/widgets/temperament.js:2019 +#: js/widgets/tempo.js:84 +#: js/widgets/tempo.js:86 +#: js/widgets/timbre.js:432 +#: js/widgets/timbre.js:434 +#: js/widgets/timbre.js:465 +#: js/widgets/timbre.js:467 +#: js/widgets/timbre.js:746 +#: js/widgets/aiwidget.js:647 +#: js/widgets/aiwidget.js:654 +#: js/widgets/aiwidget.js:656 +#: js/widgets/arpeggio.js:90 +#: js/widgets/arpeggio.js:547 +#: js/widgets/arpeggio.js:549 +#: js/widgets/arpeggio.js:644 +#: js/widgets/arpeggio.js:646 +#: js/widgets/musickeyboard.js:676 +#: js/widgets/musickeyboard.js:872 +#: js/widgets/musickeyboard.js:874 +#: js/widgets/musickeyboard.js:953 +#: js/widgets/musickeyboard.js:955 +#: js/widgets/phrasemaker.js:513 +#: js/widgets/phrasemaker.js:523 +#: js/widgets/phrasemaker.js:525 +#: js/widgets/phrasemaker.js:4304 +#: js/widgets/phrasemaker.js:4528 +#: js/widgets/phrasemaker.js:4533 +#: js/widgets/phrasemaker.js:4535 +#: js/widgets/phrasemaker.js:4650 +#: js/widgets/rhythmruler.js:637 +#: js/widgets/rhythmruler.js:639 +#: js/widgets/rhythmruler.js:653 +#: js/widgets/rhythmruler.js:655 +#: js/widgets/sampler.js:162 +#: js/widgets/sampler.js:164 +#: js/widgets/sampler.js:363 +msgid "Play" msgstr "" -#: js/piemenus.js:3416 -msgid "Save stack" +#: js/toolbar.js:50 +#: js/toolbar.js:111 +#: js/toolbar.js:176 +#: js/toolbar.js:232 +#: js/turtledefs.js:451 +#: js/turtledefs.js:488 +#: js/activity.js:2679 +#: js/widgets/modewidget.js:99 +#: js/widgets/modewidget.js:101 +#: js/widgets/meterwidget.js:206 +#: js/widgets/meterwidget.js:208 +#: js/widgets/pitchdrummatrix.js:674 +#: js/widgets/pitchdrummatrix.js:676 +#: js/widgets/temperament.js:2002 +#: js/widgets/temperament.js:2004 +#: js/widgets/arpeggio.js:534 +#: js/widgets/arpeggio.js:536 +#: js/widgets/phrasemaker.js:534 +#: js/widgets/phrasemaker.js:536 +msgid "Stop" msgstr "" -#: js/piemenus.js:3420 -#: js/toolbar.js:60 -#: js/toolbar.js:120 -#: js/toolbar.js:185 -#: js/toolbar.js:240 -#: js/turtledefs.js:752 -msgid "Help" +#: js/toolbar.js:51 +#: js/toolbar.js:112 +#: js/toolbar.js:177 +#: js/toolbar.js:233 +#: js/turtledefs.js:498 +msgid "Record" msgstr "" -#: js/piemenus.js:3762 -msgid "You have chosen key " +#: js/toolbar.js:52 +#: js/toolbar.js:53 +msgid "Full screen" msgstr "" -#: js/piemenus.js:3766 -msgid " for your pitch preview." +#: js/toolbar.js:54 +#: js/toolbar.js:115 +#: js/toolbar.js:180 +#: js/toolbar.js:236 +#: js/turtledefs.js:504 +msgid "Toggle Fullscreen" +msgstr "" + +#: js/toolbar.js:55 +#: js/toolbar.js:116 +#: js/toolbar.js:181 +#: js/toolbar.js:237 +#: js/turtledefs.js:510 +#: planet/js/StringHelper.js:33 +msgid "New project" +msgstr "" + +#: js/toolbar.js:56 +#: js/toolbar.js:117 +#: js/toolbar.js:182 +#: js/toolbar.js:238 +#: js/turtledefs.js:516 +msgid "Load project from file" +msgstr "" + +#: js/toolbar.js:57 +#: js/toolbar.js:118 +#: js/toolbar.js:119 +#: js/toolbar.js:183 +#: js/toolbar.js:239 +#: js/turtledefs.js:541 +#: js/turtledefs.js:550 +#: js/turtledefs.js:571 +msgid "Save project" +msgstr "" + +#: js/toolbar.js:58 +#: js/toolbar.js:77 +#: js/toolbar.js:79 +#: js/toolbar.js:138 +#: js/toolbar.js:147 +#: js/toolbar.js:149 +#: js/toolbar.js:184 +#: js/toolbar.js:202 +#: js/toolbar.js:204 +#: js/toolbar.js:240 +#: js/toolbar.js:258 +#: js/toolbar.js:260 +msgid "Save project as HTML" +msgstr "" + +#: js/toolbar.js:59 +#: js/toolbar.js:120 +#: js/toolbar.js:185 +#: js/toolbar.js:241 +msgid "Find and share projects" +msgstr "" + +#: js/toolbar.js:60 +#: js/toolbar.js:121 +#: js/toolbar.js:186 +#: js/toolbar.js:242 +msgid "Offline. Sharing is unavailable" +msgstr "" + +#: js/toolbar.js:61 +#: js/toolbar.js:122 +#: js/toolbar.js:187 +#: js/toolbar.js:243 +msgid "Auxiliary menu" +msgstr "" + +#: js/toolbar.js:62 +#: js/toolbar.js:123 +#: js/toolbar.js:188 +#: js/toolbar.js:244 +#: js/turtledefs.js:752 +#: js/piemenus.js:3423 +msgid "Help" +msgstr "" + +#: js/toolbar.js:63 +#: js/toolbar.js:124 +#: js/toolbar.js:189 +#: js/toolbar.js:245 +msgid "Run slowly" +msgstr "" + +#: js/toolbar.js:64 +#: js/toolbar.js:125 +#: js/toolbar.js:190 +#: js/toolbar.js:246 +#: js/turtledefs.js:682 +msgid "Run step by step" +msgstr "" + +#: js/toolbar.js:65 +#: js/toolbar.js:126 +#: js/toolbar.js:191 +#: js/toolbar.js:247 +#: js/turtledefs.js:689 +msgid "Display statistics" +msgstr "" + +#: js/toolbar.js:66 +#: js/toolbar.js:127 +#: js/toolbar.js:192 +#: js/toolbar.js:248 +msgid "Load plugin" +msgstr "" + +#: js/toolbar.js:67 +#: js/toolbar.js:128 +#: js/toolbar.js:193 +#: js/toolbar.js:249 +#: js/turtledefs.js:696 +msgid "Delete plugin" +msgstr "" + +#: js/toolbar.js:68 +#: js/toolbar.js:129 +#: js/toolbar.js:194 +#: js/toolbar.js:250 +msgid "Enable horizontal scrolling" +msgstr "" + +#: js/toolbar.js:69 +#: js/toolbar.js:130 +#: js/toolbar.js:195 +#: js/toolbar.js:251 +msgid "Disable horizontal scrolling" +msgstr "" + +#: js/toolbar.js:70 +#: js/toolbar.js:131 +#: js/toolbar.js:196 +#: js/toolbar.js:252 +#: planet/js/LocalCard.js:54 +#: planet/js/StringHelper.js:71 +msgid "Merge with current project" +msgstr "" + +#: js/toolbar.js:71 +#: js/toolbar.js:132 +msgid "Set Pitch Preview" +msgstr "" + +#: js/toolbar.js:72 +#: js/toolbar.js:133 +#: js/toolbar.js:197 +#: js/toolbar.js:253 +msgid "JavaScript Editor" +msgstr "" + +#: js/toolbar.js:73 +#: js/toolbar.js:134 +#: js/toolbar.js:198 +#: js/toolbar.js:254 +#: js/turtledefs.js:724 +msgid "Restore" +msgstr "" + +#: js/toolbar.js:74 +#: js/toolbar.js:135 +#: js/toolbar.js:199 +#: js/toolbar.js:255 +msgid "Switch to beginner mode" +msgstr "" + +#: js/toolbar.js:75 +#: js/toolbar.js:136 +#: js/toolbar.js:200 +#: js/toolbar.js:256 +msgid "Switch to advanced mode" +msgstr "" + +#: js/toolbar.js:76 +#: js/toolbar.js:137 +#: js/toolbar.js:146 +#: js/toolbar.js:201 +#: js/toolbar.js:257 +#: js/turtledefs.js:738 +msgid "Select language" +msgstr "" + +#: js/toolbar.js:78 +#: js/toolbar.js:81 +#: js/toolbar.js:140 +#: js/turtledefs.js:579 +msgid "Save mouse artwork as PNG" +msgstr "" + +#: js/toolbar.js:80 +#: js/toolbar.js:139 +#: js/turtledefs.js:575 +msgid "Save mouse artwork as SVG" +msgstr "" + +#: js/toolbar.js:82 +#: js/toolbar.js:141 +#: js/turtledefs.js:583 +msgid "Save music as WAV" +msgstr "" + +#: js/toolbar.js:83 +#: js/toolbar.js:142 +#: js/turtledefs.js:587 +msgid "Save sheet music as ABC" +msgstr "" + +#: js/toolbar.js:84 +#: js/toolbar.js:143 +#: js/turtledefs.js:591 +msgid "Save sheet music as Lilypond" +msgstr "" + +#: js/toolbar.js:85 +msgid "Save sheet music as MusicXML" +msgstr "" + +#: js/toolbar.js:86 +#: js/toolbar.js:144 +#: js/toolbar.js:152 +#: js/toolbar.js:207 +#: js/toolbar.js:263 +#: js/turtledefs.js:562 +#: js/turtledefs.js:595 +msgid "Save block artwork as SVG" +msgstr "" + +#: js/toolbar.js:87 +#: js/toolbar.js:145 +#: js/toolbar.js:153 +#: js/toolbar.js:208 +#: js/toolbar.js:264 +#: js/turtles.js:911 +msgid "Confirm" +msgstr "" + +#: js/toolbar.js:88 +#: js/toolbar.js:154 +#: js/toolbar.js:209 +#: js/toolbar.js:265 +msgid "English (United States)" +msgstr "" + +#: js/toolbar.js:89 +#: js/toolbar.js:155 +#: js/toolbar.js:210 +#: js/toolbar.js:266 +msgid "English (United Kingdom)" +msgstr "" + +#: js/toolbar.js:90 +#: js/toolbar.js:156 +#: js/toolbar.js:211 +#: js/toolbar.js:267 +msgid "日本語" +msgstr "" + +#: js/toolbar.js:91 +msgid "한국어" +msgstr "" + +#: js/toolbar.js:92 +#: js/toolbar.js:158 +#: js/toolbar.js:213 +#: js/toolbar.js:269 +msgid "español" +msgstr "" + +#: js/toolbar.js:93 +#: js/toolbar.js:159 +#: js/toolbar.js:214 +#: js/toolbar.js:270 +msgid "português" +msgstr "" + +#: js/toolbar.js:94 +#: js/toolbar.js:160 +#: js/toolbar.js:215 +#: js/toolbar.js:271 +msgid "にほんご" +msgstr "" + +#: js/toolbar.js:95 +#: js/toolbar.js:161 +#: js/toolbar.js:216 +#: js/toolbar.js:272 +msgid "中文" +msgstr "" + +#: js/toolbar.js:96 +#: js/toolbar.js:162 +#: js/toolbar.js:217 +#: js/toolbar.js:273 +msgid "ภาษาไทย" +msgstr "" + +#: js/toolbar.js:97 +#: js/toolbar.js:163 +#: js/toolbar.js:218 +#: js/toolbar.js:274 +msgid "aymara" +msgstr "" + +#: js/toolbar.js:98 +#: js/toolbar.js:164 +#: js/toolbar.js:219 +#: js/toolbar.js:275 +msgid "quechua" +msgstr "" + +#: js/toolbar.js:99 +#: js/toolbar.js:165 +#: js/toolbar.js:220 +#: js/toolbar.js:276 +msgid "guarani" +msgstr "" + +#: js/toolbar.js:100 +#: js/toolbar.js:166 +#: js/toolbar.js:221 +#: js/toolbar.js:277 +msgid "हिंदी" +msgstr "" + +#: js/toolbar.js:101 +#: js/toolbar.js:168 +#: js/toolbar.js:222 +#: js/toolbar.js:279 +msgid "igbo" +msgstr "" + +#: js/toolbar.js:102 +#: js/toolbar.js:169 +#: js/toolbar.js:223 +#: js/toolbar.js:280 +msgid "عربى" +msgstr "" + +#: js/toolbar.js:103 +#: js/toolbar.js:167 +#: js/toolbar.js:224 +#: js/toolbar.js:278 +msgid "తెలుగు" +msgstr "" + +#: js/toolbar.js:104 +#: js/toolbar.js:170 +#: js/toolbar.js:225 +#: js/toolbar.js:281 +msgid "עִברִית" +msgstr "" + +#: js/toolbar.js:113 +#: js/toolbar.js:114 +#: js/toolbar.js:178 +#: js/toolbar.js:179 +#: js/toolbar.js:234 +#: js/toolbar.js:235 +msgid "Full Screen" +msgstr "" + +#: js/toolbar.js:148 +#: js/toolbar.js:151 +#: js/toolbar.js:203 +#: js/toolbar.js:206 +#: js/toolbar.js:259 +#: js/toolbar.js:262 +#: js/turtledefs.js:558 +msgid "Save turtle artwork as PNG" +msgstr "" + +#: js/toolbar.js:150 +#: js/toolbar.js:205 +#: js/toolbar.js:261 +#: js/turtledefs.js:554 +msgid "Save turtle artwork as SVG" +msgstr "" + +#: js/toolbar.js:157 +#: js/toolbar.js:212 +#: js/toolbar.js:268 +msgid "한국인" +msgstr "" + +#: js/toolbar.js:174 +#: js/toolbar.js:230 +msgid "About Turtle Blocks" +msgstr "" + +#: js/toolbar.js:446 +#: js/toolbar.js:457 +#: js/toolbar.js:497 +msgid "Turtle Wrap Off" +msgstr "" + +#: js/toolbar.js:466 +#: js/toolbar.js:506 +msgid "Turtle Wrap On" +msgstr "" + +#: js/turtle-painter.js:1192 +#: js/turtle-painter.js:1193 +#: js/turtles.js:118 +#: js/block-verbose.js:1623 +#: js/block.js:1587 +#: js/lilypond.js:749 +#: js/lilypond.js:913 +#: js/lilypond.js:951 +#: js/logo.js:1184 +#: js/blocks/ActionBlocks.js:1223 +#: js/blocks/ProgramBlocks.js:1267 +msgid "start" +msgstr "" + +#: js/turtledefs.js:40 +#.TRANS: put the URL to the guide here, e.g., https://github.com/sugarlabs/turtleblocksjs/tree/master/guide/README.md +msgid "guide url" +msgstr "" + +#: js/turtledefs.js:85 +#: js/turtledefs.js:437 +msgid "Turtle Blocks is a Logo-inspired turtle that draws colorful pictures with snap-together visual-programming blocks." +msgstr "" + +#: js/turtledefs.js:118 +#: js/turtledefs.js:220 +msgid "search" +msgstr "" + +#: js/turtledefs.js:120 +#: js/turtledefs.js:222 +#: js/blocks/MeterBlocks.js:1343 +#: js/blocks/WidgetBlocks.js:522 +#.TRANS: musical meter (time signature), e.g., 4:4 +msgid "meter" +msgstr "" + +#: js/turtledefs.js:122 +#: js/turtledefs.js:224 +msgid "intervals" +msgstr "" + +#: js/turtledefs.js:124 +#: js/turtledefs.js:226 +msgid "ornament" +msgstr "" + +#: js/turtledefs.js:125 +#: js/turtledefs.js:227 +#: js/blocks/VolumeBlocks.js:362 +#: js/blocks/VolumeBlocks.js:502 +#: js/blocks/VolumeBlocks.js:545 +msgid "volume" +msgstr "" + +#: js/turtledefs.js:126 +#: js/turtledefs.js:228 +#: js/block-verbose.js:1700 +#: js/block-verbose.js:2626 +#: js/block.js:1664 +#: js/block.js:2554 +#: js/lilypond.js:732 +#: js/lilypond.js:897 +#: js/lilypond.js:941 +#: js/palette.js:577 +#: js/blocks/RhythmBlocks.js:766 +#: js/blocks/DrumBlocks.js:477 +#: js/blocks/VolumeBlocks.js:502 +#: js/widgets/phrasemaker.js:1038 +msgid "drum" +msgstr "" + +#: js/turtledefs.js:129 +#: js/turtledefs.js:231 +msgid "boxes" +msgstr "" + +#: js/turtledefs.js:130 +#: js/turtledefs.js:232 +msgid "widgets" +msgstr "" + +#: js/turtledefs.js:131 +#: js/turtledefs.js:233 +#: js/widgets/phrasemaker.js:1039 +msgid "graphics" +msgstr "" + +#: js/turtledefs.js:134 +#: js/turtledefs.js:236 +msgid "boolean" +msgstr "" + +#: js/turtledefs.js:137 +#: js/turtledefs.js:239 +#: js/blocks/HeapBlocks.js:59 +#: js/widgets/status.js:147 +msgid "heap" +msgstr "" + +#: js/turtledefs.js:138 +#: js/turtledefs.js:240 +#: js/blocks/DictBlocks.js:142 +#: js/blocks/ProgramBlocks.js:495 +msgid "dictionary" +msgstr "" + +#: js/turtledefs.js:139 +#: js/turtledefs.js:241 +msgid "ensemble" +msgstr "" + +#: js/turtledefs.js:140 +#: js/turtledefs.js:242 +msgid "extras" +msgstr "" + +#: js/turtledefs.js:142 +#: js/turtledefs.js:244 +#.TRANS: program as in computer program +#.TRANS: program as in computer program +msgid "program" +msgstr "" + +#: js/turtledefs.js:143 +#: js/turtledefs.js:245 +msgid "my blocks" +msgstr "" + +#: js/turtledefs.js:185 +#: js/turtledefs.js:281 +msgid "artwork" +msgstr "" + +#: js/turtledefs.js:185 +#: js/turtledefs.js:281 +msgid "logic" +msgstr "" + +#: js/turtledefs.js:185 +#: js/turtledefs.js:281 +msgid "music" +msgstr "" + +#: js/turtledefs.js:187 +#: js/turtledefs.js:463 +msgid "Music Blocks is a collection of tools for exploring fundamental musical concepts in a fun way." +msgstr "" + +#: js/turtledefs.js:436 +msgid "Welcome to Turtle Blocks" +msgstr "" + +#: js/turtledefs.js:438 +#: js/turtledefs.js:465 +#: js/turtledefs.js:774 +#: js/turtledefs.js:805 +msgid "The current version is" +msgstr "" + +#: js/turtledefs.js:446 +#: js/turtledefs.js:483 +msgid "Click the run button to run the project in fast mode." +msgstr "" + +#: js/turtledefs.js:452 +msgid "Stop the turtle." +msgstr "" + +#: js/turtledefs.js:454 +#: js/turtledefs.js:491 +msgid "You can also type Alt-S to stop." +msgstr "" + +#: js/turtledefs.js:462 +#: js/widgets/help.js:333 +msgid "Welcome to Music Blocks" +msgstr "" + +#: js/turtledefs.js:472 +#: js/widgets/help.js:334 +msgid "Meet Mr. Mouse!" +msgstr "" + +#: js/turtledefs.js:473 +msgid "Mr Mouse is our Music Blocks conductor." +msgstr "" + +#: js/turtledefs.js:475 +msgid "Mr Mouse encourages you to explore Music Blocks." +msgstr "" + +#: js/turtledefs.js:477 +msgid "Let us start our tour!" +msgstr "" + +#: js/turtledefs.js:489 +msgid "Stop the music (and the mice)." +msgstr "" + +#: js/turtledefs.js:499 +msgid "Record your project as video." +msgstr "" + +#: js/turtledefs.js:505 +msgid "Toggle Fullscreen mode." +msgstr "" + +#: js/turtledefs.js:511 +msgid "Initialize a new project." +msgstr "" + +#: js/turtledefs.js:517 +msgid "You can also load projects from the file system." +msgstr "" + +#: js/turtledefs.js:522 +#: planet/js/StringHelper.js:46 +msgid "Delete" +msgstr "" + +#: js/turtledefs.js:523 +msgid "To delete a block, just right-click on it, then you will be able to see the delete option" +msgstr "" + +#: js/turtledefs.js:528 +#: js/activity.js:2649 +#: planet/js/LocalCard.js:31 +msgid "Copy" +msgstr "" + +#: js/turtledefs.js:529 +msgid "To copy a block, just right-click on it, then you will be able to see the copy option" +msgstr "" + +#: js/turtledefs.js:534 +#: js/piemenus.js:3411 +msgid "Extract" +msgstr "" + +#: js/turtledefs.js:535 +msgid "To extract a block, just right-click on it, then you will be able to see the extract option" +msgstr "" + +#: js/turtledefs.js:542 +#: js/turtledefs.js:552 +#: js/turtledefs.js:573 +msgid "Save your project to a file." +msgstr "" + +#: js/turtledefs.js:549 +#: js/turtledefs.js:570 +msgid "save" +msgstr "" + +#: js/turtledefs.js:556 +#: js/turtledefs.js:577 +msgid "Save graphics from your project to as SVG." +msgstr "" + +#: js/turtledefs.js:560 +#: js/turtledefs.js:581 +msgid "Save graphics from your project as PNG." +msgstr "" + +#: js/turtledefs.js:564 +#: js/turtledefs.js:597 +msgid "Save block artwork as an SVG file." +msgstr "" + +#: js/turtledefs.js:585 +msgid "Save audio from your project as WAV." +msgstr "" + +#: js/turtledefs.js:589 +msgid "Save your project to as an ABC file." +msgstr "" + +#: js/turtledefs.js:593 +msgid "Save your project to as a Lilypond file." +msgstr "" + +#: js/turtledefs.js:604 +msgid "Load samples from server" +msgstr "" + +#: js/turtledefs.js:605 +msgid "This button opens a viewer for loading example projects." +msgstr "" + +#: js/turtledefs.js:611 +msgid "Palette buttons" +msgstr "" + +#: js/turtledefs.js:612 +msgid "This toolbar contains the palette buttons including Rhythm Pitch Tone Action and more." +msgstr "" + +#: js/turtledefs.js:614 +msgid "Click to show the palettes of blocks and drag blocks from the palettes onto the canvas to use them." +msgstr "" + +#: js/turtledefs.js:620 +msgid "Cartesian/Polar" +msgstr "" + +#: js/turtledefs.js:621 +msgid "Show or hide a coordinate grid." +msgstr "" + +#: js/turtledefs.js:626 +#: js/turtles.js:902 +msgid "Clean" +msgstr "" + +#: js/turtledefs.js:627 +msgid "Clear the screen and return the mice to their initial positions." +msgstr "" + +#: js/turtledefs.js:632 +#: js/turtles.js:955 +msgid "Collapse" +msgstr "" + +#: js/turtledefs.js:633 +msgid "Collapse the graphics window." msgstr "" -#: js/palette.js:571 -msgid "grid" +#: js/turtledefs.js:638 +#: js/activity.js:5684 +msgid "Home" msgstr "" -#: js/palette.js:577 -#: js/block.js:1540 -#: js/block.js:2343 -#: js/turtledefs.js:126 -#: js/turtledefs.js:228 -#: js/lilypond.js:740 -#: js/lilypond.js:905 -#: js/lilypond.js:949 -#: js/DrumBlocks.js:486 -#: js/RhythmBlocks.js:766 -#: js/VolumeBlocks.js:502 -#: js/phrasemaker.js:823 -msgid "drum" +#: js/turtledefs.js:639 +msgid "Return all blocks to the center of the screen." msgstr "" -#: js/palette.js:580 -msgid "effect" +#: js/turtledefs.js:644 +msgid "Show/hide blocks" msgstr "" -#: js/palette.js:586 -msgid "sargam" +#: js/turtledefs.js:645 +msgid "Hide or show the blocks and the palettes." msgstr "" -#: js/palette.js:589 -#: js/activity.js:1833 -#: js/RhythmBlocks.js:923 -#: js/PitchBlocks.js:442 -#: js/PitchBlocks.js:1748 -#.TRANS: a numeric mapping of the notes in an octave based on the musical mode -msgid "scale degree" +#: js/turtledefs.js:650 +msgid "Expand/collapse collapsable blocks" msgstr "" -#: js/palette.js:592 -#: js/activity.js:1860 -msgid "mode name" +#: js/turtledefs.js:651 +msgid "Expand or collapse start and action stacks." msgstr "" -#: js/palette.js:595 -#: js/activity.js:1839 -msgid "invert mode" +#: js/turtledefs.js:658 +#: js/activity.js:5704 +msgid "Decrease block size" msgstr "" -#: js/palette.js:598 -#: js/activity.js:1836 -msgid "voice name" +#: js/turtledefs.js:659 +msgid "Decrease the size of the blocks." msgstr "" -#: js/palette.js:601 -#: js/PitchBlocks.js:1181 -msgid "custom pitch" +#: js/turtledefs.js:664 +#: js/activity.js:5710 +msgid "Increase block size" msgstr "" -#: js/palette.js:605 -#: js/block.js:1456 -#: js/block.js:1575 -#: js/WidgetBlocks.js:218 -#: js/IntervalsBlocks.js:63 -msgid "temperament" +#: js/turtledefs.js:665 +msgid "Increase the size of the blocks." msgstr "" -#: js/palette.js:609 -msgid "accidental" +#: js/turtledefs.js:670 +msgid "Expand/collapse option toolbar" msgstr "" -#: js/palette.js:615 -#: js/activity.js:1866 -msgid "interval name" +#: js/turtledefs.js:671 +msgid "Click this button to expand or collapse the auxillary toolbar." msgstr "" -#: js/palette.js:633 -#: js/PitchBlocks.js:405 -msgid "pitch converter" +#: js/turtledefs.js:676 +msgid "Run slow" msgstr "" -#: js/rubrics.js:522 -#: js/turtledefs.js:119 -#: js/turtledefs.js:221 -#: js/RhythmBlockPaletteBlocks.js:52 -#: js/RhythmBlockPaletteBlocks.js:233 -#: js/ProgramBlocks.js:745 -#: js/rhythmruler.js:1670 -#: js/rhythmruler.js:1677 -#: js/rhythmruler.js:1745 -#: js/rhythmruler.js:1752 -#: js/rhythmruler.js:1830 -#.TRANS: an arrangement of notes based on duration -msgid "rhythm" +#: js/turtledefs.js:677 +msgid "Click to run the project in slow mode." msgstr "" -#: js/rubrics.js:523 -#: js/block.js:2339 -#: js/turtledefs.js:121 -#: js/turtledefs.js:223 -#: js/IntervalsBlocks.js:63 -#: js/PitchBlocks.js:1801 -#: js/PitchBlocks.js:1814 -#: js/SensorsBlocks.js:178 -#: js/phrasemaker.js:821 -#: js/musickeyboard.js:1653 -#.TRANS: pitch number -#.TRANS: we specify pitch in terms of a name and an octave. The name can be CDEFGAB or Do Re Mi Fa Sol La Ti. Octave is a number between 1 and 8. -msgid "pitch" +#: js/turtledefs.js:683 +msgid "Click to run the project step by step." msgstr "" -#: js/rubrics.js:524 -#: js/turtledefs.js:123 -#: js/turtledefs.js:225 -msgid "tone" +#: js/turtledefs.js:690 +msgid "Display statistics about your Music project." msgstr "" -#: js/rubrics.js:525 -#: js/lilypond.js:613 -#: js/lilypond.js:912 -#: js/lilypond.js:918 -#: js/lilypond.js:956 -msgid "mouse" +#: js/turtledefs.js:697 +msgid "Delete a selected plugin." msgstr "" -#: js/rubrics.js:526 -#: js/turtledefs.js:132 -#: js/turtledefs.js:234 -#: js/phrasemaker.js:825 -msgid "pen" +#: js/turtledefs.js:704 +msgid "Enable scrolling" msgstr "" -#: js/rubrics.js:527 -#: js/turtledefs.js:133 -#: js/turtledefs.js:235 -#: js/NumberBlocks.js:905 -#: js/PitchBlocks.js:1679 -#: js/PitchBlocks.js:1720 -msgid "number" +#: js/turtledefs.js:705 +msgid "You can scroll the blocks on the canvas." msgstr "" -#: js/rubrics.js:528 -#: js/turtledefs.js:127 -#: js/turtledefs.js:229 -msgid "flow" +#: js/turtledefs.js:714 +msgid "Wrap Turtle" msgstr "" -#: js/rubrics.js:530 -#: js/turtledefs.js:136 -#: js/turtledefs.js:238 -msgid "sensors" +#: js/turtledefs.js:715 +msgid "Turn Turtle wrapping On or Off." msgstr "" -#: js/rubrics.js:531 -#: js/turtledefs.js:135 -#: js/turtledefs.js:237 -#: js/MediaBlocks.js:930 -msgid "media" +#: js/turtledefs.js:725 +msgid "Restore blocks from the trash." msgstr "" -#: js/rubrics.js:532 -msgid "mice" +#: js/turtledefs.js:732 +msgid "Switch mode" msgstr "" -#: js/macros.js:711 -#: js/musicutils.js:783 -#: js/synthutils.js:181 -#.TRANS: animal sound effect -msgid "duck" +#: js/turtledefs.js:733 +msgid "Switch between beginner and advance modes." msgstr "" -#: js/toolbar.js:46 -#: js/toolbar.js:107 -msgid "About Music Blocks" +#: js/turtledefs.js:739 +msgid "Select your language preference." msgstr "" -#: js/toolbar.js:47 -#: js/toolbar.js:108 -#: js/toolbar.js:172 -#: js/toolbar.js:228 -#: js/turtledefs.js:445 -#: js/turtledefs.js:482 -#: js/activity.js:2281 -#: js/activity.js:2289 -#: js/activity.js:2520 -#: js/modewidget.js:77 -#: js/pitchstaircase.js:121 -#: js/phrasemaker.js:302 -#: js/phrasemaker.js:312 -#: js/phrasemaker.js:314 -#: js/phrasemaker.js:3901 -#: js/phrasemaker.js:4061 -#: js/phrasemaker.js:4066 -#: js/phrasemaker.js:4068 -#: js/phrasemaker.js:4183 -#: js/pitchdrummatrix.js:81 -#: js/pitchdrummatrix.js:574 -#: js/pitchdrummatrix.js:576 -#: js/pitchdrummatrix.js:628 -#: js/pitchdrummatrix.js:630 -#: js/pitchdrummatrix.js:645 -#: js/pitchdrummatrix.js:647 -#: js/pitchdrummatrix.js:674 -#: js/pitchdrummatrix.js:676 -#: js/temperament.js:477 -#: js/temperament.js:480 -#: js/temperament.js:540 -#: js/temperament.js:542 -#: js/temperament.js:1835 -#: js/temperament.js:1837 -#: js/temperament.js:1986 -#: js/temperament.js:1988 -#: js/musickeyboard.js:522 -#: js/musickeyboard.js:682 -#: js/musickeyboard.js:684 -#: js/musickeyboard.js:756 -#: js/musickeyboard.js:758 -#: js/rhythmruler.js:298 -#: js/rhythmruler.js:300 -#: js/rhythmruler.js:314 -#: js/rhythmruler.js:316 -#: js/sampler.js:96 -#: js/sampler.js:98 -#: js/sampler.js:229 -#: js/sampler.js:235 -#: js/sampler.js:237 -#: js/tempo.js:84 -#: js/tempo.js:86 -#: js/timbre.js:432 -#: js/timbre.js:434 -#: js/timbre.js:465 -#: js/timbre.js:467 -#: js/timbre.js:746 -#: js/meterwidget.js:80 -#: js/arpeggio.js:90 -#: js/arpeggio.js:547 -#: js/arpeggio.js:549 -#: js/arpeggio.js:644 -#: js/arpeggio.js:646 -msgid "Play" +#: js/turtledefs.js:745 +msgid "Keyboard shortcuts" msgstr "" -#: js/toolbar.js:48 -#: js/toolbar.js:109 -#: js/toolbar.js:173 -#: js/toolbar.js:229 -#: js/turtledefs.js:451 -#: js/turtledefs.js:488 -#: js/activity.js:2297 -#: js/modewidget.js:99 -#: js/modewidget.js:101 -#: js/phrasemaker.js:323 -#: js/phrasemaker.js:325 -#: js/pitchdrummatrix.js:561 -#: js/pitchdrummatrix.js:563 -#: js/temperament.js:1820 -#: js/temperament.js:1822 -#: js/meterwidget.js:101 -#: js/meterwidget.js:103 -#: js/arpeggio.js:534 -#: js/arpeggio.js:536 -msgid "Stop" +#: js/turtledefs.js:746 +msgid "You can type d to create a do block and r to create a re block etc." msgstr "" -#: js/toolbar.js:49 -#: js/toolbar.js:110 -#: js/toolbar.js:174 -#: js/toolbar.js:230 -#: js/turtledefs.js:498 -msgid "Record" +#: js/turtledefs.js:753 +msgid "Show these messages." msgstr "" -#: js/toolbar.js:50 -#: js/toolbar.js:51 -msgid "Full screen" +#: js/turtledefs.js:759 +#: js/turtledefs.js:790 +#: js/widgets/help.js:335 +msgid "Guide" msgstr "" -#: js/toolbar.js:52 -#: js/toolbar.js:112 -#: js/toolbar.js:177 -#: js/toolbar.js:232 -#: js/turtledefs.js:504 -msgid "Toggle Fullscreen" +#: js/turtledefs.js:760 +msgid "A detailed guide to Turtle Blocks is available." msgstr "" -#: js/toolbar.js:53 -#: js/toolbar.js:113 -#: js/toolbar.js:178 -#: js/toolbar.js:233 -#: js/turtledefs.js:510 -#: js/StringHelper.js:33 -msgid "New project" +#: js/turtledefs.js:764 +msgid "Turtle Blocks Guide" msgstr "" -#: js/toolbar.js:54 -#: js/toolbar.js:114 -#: js/toolbar.js:179 -#: js/toolbar.js:234 -#: js/turtledefs.js:516 -msgid "Load project from file" +#: js/turtledefs.js:767 +#: js/turtledefs.js:798 +#: js/widgets/help.js:336 +msgid "About" msgstr "" -#: js/toolbar.js:55 -#: js/toolbar.js:115 -#: js/toolbar.js:116 -#: js/toolbar.js:180 -#: js/toolbar.js:235 -#: js/turtledefs.js:541 -#: js/turtledefs.js:550 -#: js/turtledefs.js:571 -msgid "Save project" +#: js/turtledefs.js:768 +msgid "Turtle Blocks is an open source collection of tools for exploring musical concepts." msgstr "" -#: js/toolbar.js:56 -#: js/toolbar.js:75 -#: js/toolbar.js:77 -#: js/toolbar.js:135 -#: js/toolbar.js:144 -#: js/toolbar.js:146 -#: js/toolbar.js:181 -#: js/toolbar.js:199 -#: js/toolbar.js:201 -#: js/toolbar.js:236 -#: js/toolbar.js:254 -#: js/toolbar.js:256 -msgid "Save project as HTML" +#: js/turtledefs.js:770 +msgid "A full list of contributors can be found in the Turtle Blocks GitHub repository." +msgstr "" + +#: js/turtledefs.js:772 +msgid "Turtle Blocks is licensed under the AGPL." +msgstr "" + +#: js/turtledefs.js:780 +msgid "Turtle Blocks GitHub repository" +msgstr "" + +#: js/turtledefs.js:783 +#: js/turtledefs.js:814 +#: js/widgets/help.js:337 +#: js/widgets/help.js:359 +msgid "Congratulations." +msgstr "" + +#: js/turtledefs.js:784 +msgid "You have finished the tour. Please enjoy Turtle Blocks!" +msgstr "" + +#: js/turtledefs.js:791 +msgid "A detailed guide to Music Blocks is available." +msgstr "" + +#: js/turtledefs.js:799 +msgid "Music Blocks is an open source collection of tools for exploring musical concepts." +msgstr "" + +#: js/turtledefs.js:801 +msgid "A full list of contributors can be found in the Music Blocks GitHub repository." +msgstr "" + +#: js/turtledefs.js:803 +msgid "Music Blocks is licensed under the AGPL." +msgstr "" + +#: js/turtledefs.js:811 +msgid "Music Blocks GitHub repository" +msgstr "" + +#: js/turtledefs.js:815 +msgid "You have finished the tour. Please enjoy Music Blocks!" +msgstr "" + +#: js/turtles.js:882 +msgid "Grid" +msgstr "" + +#: js/turtles.js:1024 +msgid "Expand" +msgstr "" + +#: js/block-verbose.js:1616 +#: js/block-verbose.js:1735 +#: js/block.js:1580 +#: js/block.js:1699 +#: js/palette.js:605 +#: js/blocks/IntervalsBlocks.js:63 +#: js/blocks/WidgetBlocks.js:259 +msgid "temperament" +msgstr "" + +#: js/block-verbose.js:1630 +#: js/block.js:1594 +msgid "matrix" msgstr "" -#: js/toolbar.js:57 -#: js/toolbar.js:117 -#: js/toolbar.js:182 -#: js/toolbar.js:237 -msgid "Find and share projects" +#: js/block-verbose.js:1637 +#: js/block.js:1601 +#: js/blocks/WidgetBlocks.js:1509 +#: plugins/rodi.rtp:324 +msgid "status" msgstr "" -#: js/toolbar.js:58 -#: js/toolbar.js:118 -#: js/toolbar.js:183 -#: js/toolbar.js:238 -msgid "Offline. Sharing is unavailable" +#: js/block-verbose.js:1644 +#: js/block.js:1608 +msgid "drum mapper" msgstr "" -#: js/toolbar.js:59 -#: js/toolbar.js:119 -#: js/toolbar.js:184 -#: js/toolbar.js:239 -msgid "Auxiliary menu" +#: js/block-verbose.js:1651 +#: js/block.js:1615 +msgid "ruler" msgstr "" -#: js/toolbar.js:61 -#: js/toolbar.js:121 -#: js/toolbar.js:186 -#: js/toolbar.js:241 -msgid "Run slowly" +#: js/block-verbose.js:1658 +#: js/block.js:1622 +#: js/blocks/WidgetBlocks.js:397 +#.TRANS: timbre is the character or quality of a musical sound +msgid "timbre" msgstr "" -#: js/toolbar.js:62 -#: js/toolbar.js:122 -#: js/toolbar.js:187 -#: js/toolbar.js:242 -#: js/turtledefs.js:682 -msgid "Run step by step" +#: js/block-verbose.js:1665 +#: js/block.js:1629 +msgid "stair" msgstr "" -#: js/toolbar.js:63 -#: js/toolbar.js:123 -#: js/toolbar.js:188 -#: js/toolbar.js:243 -#: js/turtledefs.js:689 -msgid "Display statistics" +#: js/block-verbose.js:1672 +#: js/block.js:1636 +#: js/blocks/WidgetBlocks.js:707 +#.TRANS: the speed at music is should be played. +msgid "tempo" msgstr "" -#: js/toolbar.js:64 -#: js/toolbar.js:124 -#: js/toolbar.js:189 -#: js/toolbar.js:244 -msgid "Load plugin" +#: js/block-verbose.js:1679 +#: js/block-verbose.js:1742 +#: js/block.js:1643 +#: js/block.js:1706 +#: js/blocks/IntervalsBlocks.js:1464 +#.TRANS: mode, e.g., Major in C Major +msgid "mode" msgstr "" -#: js/toolbar.js:65 -#: js/toolbar.js:125 -#: js/toolbar.js:190 -#: js/toolbar.js:245 -#: js/turtledefs.js:696 -msgid "Delete plugin" +#: js/block-verbose.js:1686 +#: js/block.js:1650 +msgid "slider" msgstr "" -#: js/toolbar.js:66 -#: js/toolbar.js:126 -#: js/toolbar.js:191 -#: js/toolbar.js:246 -msgid "Enable horizontal scrolling" +#: js/block-verbose.js:1693 +#: js/block.js:1657 +#: js/blocks/SensorsBlocks.js:1001 +msgid "keyboard" msgstr "" -#: js/toolbar.js:67 -#: js/toolbar.js:127 -#: js/toolbar.js:192 -#: js/toolbar.js:247 -msgid "Disable horizontal scrolling" +#: js/block-verbose.js:1707 +#: js/block.js:1671 +#: js/blocks/WidgetBlocks.js:1190 +#: js/blocks/WidgetBlocks.js:1228 +#.TRANS: widget for subdividing a measure into distinct rhythmic elements +msgid "rhythm maker" msgstr "" -#: js/toolbar.js:68 -#: js/toolbar.js:128 -#: js/toolbar.js:193 -#: js/toolbar.js:248 -#: js/LocalCard.js:54 -#: js/StringHelper.js:71 -msgid "Merge with current project" +#: js/block-verbose.js:1714 +#: js/block-verbose.js:2457 +#: js/block-verbose.js:2514 +#: js/block.js:1678 +#: js/block.js:2385 +#: js/block.js:2442 +#: js/blocks/MeterBlocks.js:1367 +#: js/blocks/OrnamentBlocks.js:220 +#: js/blocks/OrnamentBlocks.js:312 +#: js/blocks/RhythmBlocks.js:33 +#: js/blocks/RhythmBlocks.js:356 +#: js/blocks/RhythmBlocks.js:766 +#: js/blocks/RhythmBlocks.js:806 +#: js/blocks/RhythmBlockPaletteBlocks.js:70 +#: js/blocks/RhythmBlockPaletteBlocks.js:252 +#: js/blocks/RhythmBlockPaletteBlocks.js:485 +#: js/blocks/RhythmBlockPaletteBlocks.js:554 +#: js/blocks/RhythmBlockPaletteBlocks.js:605 +#: js/blocks/RhythmBlockPaletteBlocks.js:875 +#: js/turtleactions/DictActions.js:85 +#: js/widgets/phrasemaker.js:942 +#: js/widgets/phrasemaker.js:2656 +#: js/widgets/phrasemaker.js:2699 +#: js/widgets/phrasemaker.js:2810 +#.TRANS: the value (e.g., 1/4 note) of the note being played. +msgid "note value" msgstr "" -#: js/toolbar.js:69 -#: js/toolbar.js:129 -msgid "Set Pitch Preview" +#: js/block-verbose.js:1721 +#: js/block-verbose.js:2382 +#: js/block-verbose.js:2405 +#: js/block.js:1685 +#: js/block.js:2310 +#: js/block.js:2333 +#: js/blocks/IntervalsBlocks.js:1071 +#: js/blocks/OrnamentBlocks.js:312 +#.TRANS: calculate a relative step between notes based on semi-tones +msgid "scalar interval" msgstr "" -#: js/toolbar.js:70 -#: js/toolbar.js:130 -#: js/toolbar.js:194 -#: js/toolbar.js:249 -msgid "Toggle JavaScript Editor" +#: js/block-verbose.js:1728 +#: js/block.js:1692 +#: js/blocks/RhythmBlocks.js:148 +msgid "milliseconds" msgstr "" -#: js/toolbar.js:71 -#: js/toolbar.js:131 -#: js/toolbar.js:195 -#: js/toolbar.js:250 -#: js/turtledefs.js:724 -msgid "Restore" +#: js/block-verbose.js:2455 +#: js/block-verbose.js:2459 +#: js/block-verbose.js:2512 +#: js/block-verbose.js:2628 +#: js/block.js:2383 +#: js/block.js:2387 +#: js/block.js:2440 +#: js/block.js:2556 +#: js/blocks/RhythmBlocks.js:712 +#: js/blocks/ProgramBlocks.js:1273 +#: js/widgets/rhythmruler.js:1183 +#: js/widgets/rhythmruler.js:1329 +msgid "silence" msgstr "" -#: js/toolbar.js:72 -#: js/toolbar.js:132 -#: js/toolbar.js:196 -#: js/toolbar.js:251 -msgid "Switch to beginner mode" +#: js/block-verbose.js:2548 +#: js/block-verbose.js:3492 +#: js/block-verbose.js:3509 +#: js/activity.js:2718 +#: js/activity.js:2769 +#: js/block.js:2476 +#: js/block.js:3416 +#: js/block.js:3433 +#: js/utils/musicutils.js:3780 +#: js/utils/musicutils.js:5273 +#.TRANS: the note names must be separated by single spaces +#.TRANS: the note names must be separated by single spaces +#.TRANS: the note names must be separated by single spaces +msgid "ti la sol fa mi re do" msgstr "" -#: js/toolbar.js:73 -#: js/toolbar.js:133 -#: js/toolbar.js:197 -#: js/toolbar.js:252 -msgid "Switch to advanced mode" +#: js/block-verbose.js:2616 +#: js/block.js:2544 +#.TRANS: scalar step +#.TRANS: scalar step +msgid "down" msgstr "" -#: js/toolbar.js:74 -#: js/toolbar.js:134 -#: js/toolbar.js:143 -#: js/toolbar.js:198 -#: js/toolbar.js:253 -#: js/turtledefs.js:738 -msgid "Select language" +#: js/block-verbose.js:2617 +#: js/block.js:2545 +msgid "up" msgstr "" -#: js/toolbar.js:76 -#: js/toolbar.js:79 -#: js/toolbar.js:137 -#: js/turtledefs.js:579 -msgid "Save mouse artwork as PNG" +#: js/block-verbose.js:3026 +#: js/block.js:2950 +msgid "Silence block cannot be removed." msgstr "" -#: js/toolbar.js:78 -#: js/toolbar.js:136 -#: js/turtledefs.js:575 -msgid "Save mouse artwork as SVG" +#: js/block-verbose.js:3824 +#: js/block.js:3748 +#: js/blocks.js:2607 +#: js/blocks.js:3218 +#: js/palette.js:618 +#: js/blocks/BooleanBlocks.js:77 +#: js/blocks/BooleanBlocks.js:167 +#: js/blocks/BooleanBlocks.js:251 +#: js/blocks/BooleanBlocks.js:335 +#: js/blocks/BooleanBlocks.js:433 +#: js/blocks/BooleanBlocks.js:539 +#: js/blocks/BooleanBlocks.js:640 +#: js/blocks/BooleanBlocks.js:741 +#: js/blocks/BooleanBlocks.js:847 +#: js/blocks/BooleanBlocks.js:948 +#: js/blocks/BooleanBlocks.js:1033 +#: js/blocks/SensorsBlocks.js:910 +msgid "true" msgstr "" -#: js/toolbar.js:80 -#: js/toolbar.js:138 -#: js/turtledefs.js:583 -msgid "Save music as WAV" +#: js/block-verbose.js:3824 +#: js/block.js:3748 +#: js/blocks.js:2609 +#: js/blocks.js:3220 +#: js/blocks/BooleanBlocks.js:79 +#: js/blocks/BooleanBlocks.js:169 +#: js/blocks/BooleanBlocks.js:253 +#: js/blocks/BooleanBlocks.js:337 +#: js/blocks/BooleanBlocks.js:435 +#: js/blocks/BooleanBlocks.js:541 +#: js/blocks/BooleanBlocks.js:642 +#: js/blocks/BooleanBlocks.js:743 +#: js/blocks/BooleanBlocks.js:849 +#: js/blocks/BooleanBlocks.js:950 +#: js/blocks/SensorsBlocks.js:912 +msgid "false" msgstr "" -#: js/toolbar.js:81 -#: js/toolbar.js:139 -#: js/turtledefs.js:587 -msgid "Save sheet music as ABC" +#: js/block-verbose.js:3835 +#: js/block-verbose.js:3848 +#: js/block.js:3759 +#: js/block.js:3772 +#: js/blocks/ExtrasBlocks.js:615 +msgid "Cartesian" msgstr "" -#: js/toolbar.js:82 -#: js/toolbar.js:140 -#: js/turtledefs.js:591 -msgid "Save sheet music as Lilypond" +#: js/block-verbose.js:3836 +#: js/block-verbose.js:3849 +#: js/block.js:3760 +#: js/block.js:3773 +#: js/blocks/ExtrasBlocks.js:619 +msgid "polar" msgstr "" -#: js/toolbar.js:83 -msgid "Save sheet music as MusicXML" +#: js/block-verbose.js:3837 +#: js/block-verbose.js:3850 +#: js/block.js:3761 +#: js/block.js:3774 +#: js/blocks/ExtrasBlocks.js:623 +msgid "Cartesian+polar" msgstr "" -#: js/toolbar.js:84 -#: js/toolbar.js:141 -#: js/toolbar.js:149 -#: js/toolbar.js:204 -#: js/toolbar.js:259 -#: js/turtledefs.js:562 -#: js/turtledefs.js:595 -msgid "Save block artwork as SVG" +#: js/block-verbose.js:3838 +#: js/block-verbose.js:3857 +#: js/block.js:3762 +#: js/block.js:3781 +#: js/blocks/ExtrasBlocks.js:652 +msgid "none" msgstr "" -#: js/toolbar.js:85 -#: js/toolbar.js:142 -#: js/toolbar.js:150 -#: js/toolbar.js:205 -#: js/toolbar.js:260 -msgid "Confirm" +#: js/block-verbose.js:3851 +#: js/block.js:3775 +#: js/blocks/ExtrasBlocks.js:628 +msgid "treble" msgstr "" -#: js/toolbar.js:86 -#: js/toolbar.js:151 -#: js/toolbar.js:206 -#: js/toolbar.js:261 -msgid "English (United States)" +#: js/block-verbose.js:3852 +#: js/block.js:3776 +#: js/blocks/ExtrasBlocks.js:632 +msgid "grand staff" msgstr "" -#: js/toolbar.js:87 -#: js/toolbar.js:152 -#: js/toolbar.js:207 -#: js/toolbar.js:262 -msgid "English (United Kingdom)" +#: js/block-verbose.js:3853 +#: js/block.js:3777 +#: js/blocks/ExtrasBlocks.js:636 +msgid "mezzo-soprano" msgstr "" -#: js/toolbar.js:88 -#: js/toolbar.js:153 -#: js/toolbar.js:208 -#: js/toolbar.js:263 -msgid "日本語" +#: js/block-verbose.js:3854 +#: js/block.js:3778 +#: js/blocks/ExtrasBlocks.js:640 +msgid "alto" msgstr "" -#: js/toolbar.js:89 -msgid "한국어" +#: js/block-verbose.js:3855 +#: js/block.js:3779 +#: js/blocks/ExtrasBlocks.js:644 +msgid "tenor" msgstr "" -#: js/toolbar.js:90 -#: js/toolbar.js:155 -#: js/toolbar.js:210 -#: js/toolbar.js:265 -msgid "español" +#: js/block-verbose.js:3856 +#: js/block.js:3780 +#: js/utils/musicutils.js:1115 +#: js/utils/synthutils.js:80 +#: js/blocks/ExtrasBlocks.js:648 +#.TRANS: musical instrument +msgid "bass" msgstr "" -#: js/toolbar.js:91 -#: js/toolbar.js:156 -#: js/toolbar.js:211 -#: js/toolbar.js:266 -msgid "português" +#: js/block-verbose.js:3901 +#: js/block.js:3825 +#: js/blocks.js:2600 +#: js/blocks.js:3211 +msgid "on2" msgstr "" -#: js/toolbar.js:92 -#: js/toolbar.js:157 -#: js/toolbar.js:212 -#: js/toolbar.js:267 -msgid "にほんご" +#: js/block-verbose.js:3903 +#: js/block.js:3827 +#: js/blocks.js:2602 +#: js/blocks.js:3213 +msgid "off" msgstr "" -#: js/toolbar.js:93 -#: js/toolbar.js:158 -#: js/toolbar.js:213 -#: js/toolbar.js:268 -msgid "中文" +#: js/block-verbose.js:4470 +#: js/block.js:4394 +msgid "Not a number" msgstr "" -#: js/toolbar.js:94 -#: js/toolbar.js:159 -#: js/toolbar.js:214 -#: js/toolbar.js:269 -msgid "ภาษาไทย" +#: js/block-verbose.js:4477 +#: js/block.js:4401 +msgid "Octave value must be between 1 and 10." msgstr "" -#: js/toolbar.js:95 -#: js/toolbar.js:160 -#: js/toolbar.js:215 -#: js/toolbar.js:270 -msgid "aymara" +#: js/block-verbose.js:4485 +#: js/block.js:4409 +msgid "Numbers can have at most 10 digits." msgstr "" -#: js/toolbar.js:96 -#: js/toolbar.js:161 -#: js/toolbar.js:216 -#: js/toolbar.js:271 -msgid "quechua" +#: js/activity.js:390 +#: js/activity.js:395 +msgid "Search for blocks" msgstr "" -#: js/toolbar.js:97 -#: js/toolbar.js:162 -#: js/toolbar.js:217 -#: js/toolbar.js:272 -msgid "guarani" +#: js/activity.js:1413 +msgid "Refresh your browser to change to advanced mode." msgstr "" -#: js/toolbar.js:98 -#: js/toolbar.js:163 -#: js/toolbar.js:218 -#: js/toolbar.js:273 -msgid "हिंदी" +#: js/activity.js:1418 +msgid "Refresh your browser to change to beginner mode." msgstr "" -#: js/toolbar.js:99 -#: js/toolbar.js:165 -#: js/toolbar.js:219 -#: js/toolbar.js:275 -msgid "igbo" +#: js/activity.js:1477 +msgid "Catching mice" +msgstr "" + +#: js/activity.js:1478 +msgid "Cleaning the instruments" +msgstr "" + +#: js/activity.js:1479 +msgid "Testing key pieces" +msgstr "" + +#: js/activity.js:1480 +msgid "Sight-reading" +msgstr "" + +#: js/activity.js:1481 +msgid "Combining math and music" msgstr "" -#: js/toolbar.js:100 -#: js/toolbar.js:166 -#: js/toolbar.js:220 -#: js/toolbar.js:276 -msgid "عربى" +#: js/activity.js:1482 +msgid "Generating more blocks" msgstr "" -#: js/toolbar.js:101 -#: js/toolbar.js:164 -#: js/toolbar.js:221 -#: js/toolbar.js:274 -msgid "తెలుగు" +#: js/activity.js:1483 +msgid "Do Re Mi Fa Sol La Ti Do" msgstr "" -#: js/toolbar.js:102 -#: js/toolbar.js:167 -#: js/toolbar.js:222 -#: js/toolbar.js:277 -msgid "עִברִית" +#: js/activity.js:1484 +msgid "Tuning string instruments" msgstr "" -#: js/toolbar.js:111 -#: js/toolbar.js:175 -#: js/toolbar.js:176 -#: js/toolbar.js:231 -msgid "Full Screen" +#: js/activity.js:1485 +msgid "Pressing random keys" msgstr "" -#: js/toolbar.js:145 -#: js/toolbar.js:148 -#: js/toolbar.js:200 -#: js/toolbar.js:203 -#: js/toolbar.js:255 -#: js/toolbar.js:258 -#: js/turtledefs.js:558 -msgid "Save turtle artwork as PNG" +#: js/activity.js:1663 +msgid "plugins will be removed upon restart." msgstr "" -#: js/toolbar.js:147 -#: js/toolbar.js:202 -#: js/toolbar.js:257 -#: js/turtledefs.js:554 -msgid "Save turtle artwork as SVG" +#: js/activity.js:1672 +msgid "show Cartesian" msgstr "" -#: js/toolbar.js:154 -#: js/toolbar.js:209 -#: js/toolbar.js:264 -msgid "한국인" +#: js/activity.js:2211 +#: js/palette.js:589 +#: js/blocks/RhythmBlocks.js:923 +#: js/blocks/PitchBlocks.js:442 +#: js/blocks/PitchBlocks.js:1786 +#.TRANS: a numeric mapping of the notes in an octave based on the musical mode +msgid "scale degree" msgstr "" -#: js/toolbar.js:171 -#: js/toolbar.js:227 -msgid "About Turtle Blocks" +#: js/activity.js:2214 +#: js/palette.js:598 +msgid "voice name" msgstr "" -#: js/toolbar.js:429 -#: js/toolbar.js:440 -msgid "Turtle Wrap Off" +#: js/activity.js:2217 +#: js/palette.js:595 +msgid "invert mode" msgstr "" -#: js/toolbar.js:442 -msgid "Turtle Wrap On" +#: js/activity.js:2220 +msgid "output tools" msgstr "" -#: js/block.js:1470 -msgid "matrix" +#: js/activity.js:2223 +msgid "custom note" msgstr "" -#: js/block.js:1477 -#: js/WidgetBlocks.js:1226 -#: plugins/rodi.rtp:324 -msgid "status" +#: js/activity.js:2226 +msgid "accidental name" msgstr "" -#: js/block.js:1484 -msgid "drum mapper" +#: js/activity.js:2229 +#: js/blocks/PitchBlocks.js:855 +msgid "east indian solfege" msgstr "" -#: js/block.js:1491 -msgid "ruler" +#: js/activity.js:2232 +#: js/blocks/PitchBlocks.js:869 +msgid "note name" msgstr "" -#: js/block.js:1498 -#: js/WidgetBlocks.js:327 -#.TRANS: timbre is the character or quality of a musical sound -msgid "timbre" +#: js/activity.js:2235 +#: js/blocks/IntervalsBlocks.js:94 +msgid "temperament name" msgstr "" -#: js/block.js:1505 -msgid "stair" +#: js/activity.js:2238 +#: js/palette.js:592 +msgid "mode name" msgstr "" -#: js/block.js:1512 -#: js/WidgetBlocks.js:577 -#.TRANS: the speed at music is should be played. -msgid "tempo" +#: js/activity.js:2241 +msgid "chord name" msgstr "" -#: js/block.js:1519 -#: js/block.js:1582 -#: js/IntervalsBlocks.js:1268 -#.TRANS: mode, e.g., Major in C Major -msgid "mode" +#: js/activity.js:2244 +#: js/palette.js:615 +msgid "interval name" msgstr "" -#: js/block.js:1526 -msgid "slider" +#: js/activity.js:2247 +msgid "filter type" msgstr "" -#: js/block.js:1533 -#: js/SensorsBlocks.js:1001 -msgid "keyboard" +#: js/activity.js:2250 +msgid "oscillator type" msgstr "" -#: js/block.js:1547 -#: js/WidgetBlocks.js:957 -#: js/WidgetBlocks.js:988 -#.TRANS: widget for subdividing a measure into distinct rhythmic elements -msgid "rhythm maker" +#: js/activity.js:2253 +#: js/blocks.js:2479 +#: js/blocks.js:2487 +msgid "audio file" msgstr "" -#: js/block.js:1554 -#: js/block.js:2182 -#: js/block.js:2236 -#: js/RhythmBlockPaletteBlocks.js:70 -#: js/RhythmBlockPaletteBlocks.js:251 -#: js/RhythmBlockPaletteBlocks.js:484 -#: js/RhythmBlockPaletteBlocks.js:553 -#: js/RhythmBlockPaletteBlocks.js:604 -#: js/RhythmBlockPaletteBlocks.js:874 -#: js/RhythmBlocks.js:33 -#: js/RhythmBlocks.js:356 -#: js/RhythmBlocks.js:766 -#: js/RhythmBlocks.js:806 -#: js/OrnamentBlocks.js:220 -#: js/OrnamentBlocks.js:312 -#: js/MeterBlocks.js:1367 -#: js/DictActions.js:85 -#: js/phrasemaker.js:731 -#: js/phrasemaker.js:2393 -#: js/phrasemaker.js:2436 -#: js/phrasemaker.js:2534 -#.TRANS: the value (e.g., 1/4 note) of the note being played. -msgid "note value" +#: js/activity.js:2256 +#: js/blocks/DrumBlocks.js:32 +msgid "noise name" msgstr "" -#: js/block.js:1561 -#: js/block.js:2110 -#: js/block.js:2133 -#: js/IntervalsBlocks.js:875 -#: js/OrnamentBlocks.js:312 -#.TRANS: calculate a relative step between notes based on semi-tones -msgid "scalar interval" +#: js/activity.js:2259 +#: js/blocks/DrumBlocks.js:75 +msgid "drum name" msgstr "" -#: js/block.js:1568 -#: js/RhythmBlocks.js:148 -msgid "milliseconds" +#: js/activity.js:2262 +#: js/blocks/DrumBlocks.js:119 +msgid "effects name" msgstr "" -#: js/block.js:2180 -#: js/block.js:2184 -#: js/block.js:2234 -#: js/block.js:2345 -#: js/ProgramBlocks.js:1273 -#: js/RhythmBlocks.js:712 -#: js/rhythmruler.js:834 -#: js/rhythmruler.js:961 -msgid "silence" +#: js/activity.js:2265 +msgid "wrap mode" msgstr "" -#: js/block.js:2265 -#: js/block.js:3134 -#: js/block.js:3151 -#: js/activity.js:2336 -#: js/activity.js:2387 -#: js/musicutils.js:2932 -#: js/musicutils.js:4287 -#.TRANS: the note names must be separated by single spaces -#.TRANS: the note names must be separated by single spaces -msgid "ti la sol fa mi re do" +#: js/activity.js:2268 +msgid "load file" msgstr "" -#: js/block.js:2333 -#.TRANS: scalar step -msgid "down" +#: js/activity.js:2435 +#: js/activity.js:5851 +msgid "This block is deprecated." msgstr "" -#: js/block.js:2334 -msgid "up" +#: js/activity.js:2437 +#: js/activity.js:5853 +msgid "Block cannot be found." msgstr "" -#: js/block.js:3477 -#: js/block.js:3490 -#: js/ExtrasBlocks.js:612 -msgid "Cartesian" +#: js/activity.js:2645 +msgid "Saving block artwork" msgstr "" -#: js/block.js:3478 -#: js/block.js:3491 -#: js/ExtrasBlocks.js:616 -msgid "polar" +#: js/activity.js:2656 +msgid "Erase" msgstr "" -#: js/block.js:3479 -#: js/block.js:3492 -#: js/ExtrasBlocks.js:620 -msgid "Cartesian+polar" +#: js/activity.js:2683 +#: js/activity.js:2705 +msgid "Paste" msgstr "" -#: js/block.js:3480 -#: js/block.js:3499 -#: js/ExtrasBlocks.js:649 -msgid "none" +#: js/activity.js:2687 +msgid "Save block help" msgstr "" -#: js/block.js:3493 -#: js/ExtrasBlocks.js:625 -msgid "treble" +#: js/activity.js:2772 +msgid "Jumping to the bottom of the page." msgstr "" -#: js/block.js:3494 -#: js/ExtrasBlocks.js:629 -msgid "grand staff" +#: js/activity.js:2778 +msgid "Scrolling up." msgstr "" -#: js/block.js:3495 -#: js/ExtrasBlocks.js:633 -msgid "mezzo-soprano" +#: js/activity.js:2783 +msgid "Scrolling down." msgstr "" -#: js/block.js:3496 -#: js/ExtrasBlocks.js:637 -msgid "alto" +#: js/activity.js:2788 +msgid "Extracting block" msgstr "" -#: js/block.js:3497 -#: js/ExtrasBlocks.js:641 -msgid "tenor" +#: js/activity.js:2796 +msgid "Moving block up." msgstr "" -#: js/block.js:3498 -#: js/ExtrasBlocks.js:645 -#: js/musicutils.js:736 -#: js/synthutils.js:64 -#.TRANS: musical instrument -msgid "bass" +#: js/activity.js:2817 +msgid "Moving block down." msgstr "" -#: js/block.js:4075 -msgid "Not a number" +#: js/activity.js:2838 +msgid "Moving block left." msgstr "" -#: js/block.js:4082 -msgid "Octave value must be between 1 and 10." +#: js/activity.js:2855 +msgid "Moving block right." msgstr "" -#: js/block.js:4090 -msgid "Numbers can have at most 10 digits." +#: js/activity.js:2870 +msgid "Jump to home position." msgstr "" -#: js/notation.js:353 -msgid "Lilypond cannot process pickup of " +#: js/activity.js:2897 +msgid "Hide blocks" msgstr "" -#: js/turtledefs.js:40 -#.TRANS: put the URL to the guide here, e.g., https://github.com/sugarlabs/turtleblocksjs/tree/master/guide/README.md -msgid "guide url" +#: js/activity.js:4500 +msgid "Click the run button to run the project." msgstr "" -#: js/turtledefs.js:85 -#: js/turtledefs.js:437 -msgid "Turtle Blocks is a Logo-inspired turtle that draws colorful pictures with snap-together visual-programming blocks." +#: js/activity.js:5692 +msgid "Show/hide block" msgstr "" -#: js/turtledefs.js:118 -#: js/turtledefs.js:220 -msgid "search" +#: js/activity.js:5698 +msgid "Expand/collapse blocks" msgstr "" -#: js/turtledefs.js:120 -#: js/turtledefs.js:222 -#: js/WidgetBlocks.js:437 -#: js/MeterBlocks.js:1343 -#.TRANS: musical meter (time signature), e.g., 4:4 -msgid "meter" +#: js/activity.js:5976 +msgid "Could not parse JSON input." msgstr "" -#: js/turtledefs.js:122 -#: js/turtledefs.js:224 -msgid "intervals" +#: js/activity.js:6475 +#: js/activity.js:6580 +#: js/activity.js:6631 +msgid "Cannot load project from the file. Please check the file type." msgstr "" -#: js/turtledefs.js:124 -#: js/turtledefs.js:226 -msgid "ornament" +#: js/activity.js:6917 +msgid "Invalid parameters" msgstr "" -#: js/turtledefs.js:125 -#: js/turtledefs.js:227 -#: js/VolumeBlocks.js:362 -#: js/VolumeBlocks.js:502 -#: js/VolumeBlocks.js:545 -msgid "volume" +#: js/blocks.js:1212 +#: js/blocks.js:3444 +#: js/blocks.js:3834 +#: js/blocks.js:3865 +#: js/blocks.js:3914 +#: js/blocks.js:3949 +#: js/blocks.js:6586 +#: js/palette.js:509 +#: js/palette.js:638 +#: js/palette.js:1105 +#: js/blocks/BoxesBlocks.js:282 +#: js/blocks/BoxesBlocks.js:285 +#: js/blocks/BoxesBlocks.js:405 +#: js/blocks/BoxesBlocks.js:594 +msgid "box" msgstr "" -#: js/turtledefs.js:129 -#: js/turtledefs.js:231 -msgid "boxes" +#: js/blocks.js:1713 +msgid "Consider breaking this stack into parts." msgstr "" -#: js/turtledefs.js:130 -#: js/turtledefs.js:232 -msgid "widgets" +#: js/blocks.js:2472 +#: js/palette.js:653 +#: js/blocks/MediaBlocks.js:602 +msgid "open file" msgstr "" -#: js/turtledefs.js:131 -#: js/turtledefs.js:233 -#: js/phrasemaker.js:824 -msgid "graphics" +#: js/blocks.js:3247 +#: js/palette.js:574 +#: js/blocks/MediaBlocks.js:892 +#: js/blocks/MediaBlocks.js:963 +msgid "text" msgstr "" -#: js/turtledefs.js:134 -#: js/turtledefs.js:236 -msgid "boolean" +#: js/blocks.js:3443 +#: js/palette.js:641 +#: js/palette.js:642 +#: js/blocks/BoxesBlocks.js:514 +msgid "store in box" msgstr "" -#: js/turtledefs.js:137 -#: js/turtledefs.js:239 -#: js/HeapBlocks.js:59 -#: js/status.js:147 -msgid "heap" +#: js/blocks.js:3448 +#: js/blocks.js:3888 +#: js/blocks.js:3923 +#: js/blocks.js:3958 +#: js/blocks.js:5862 +#: js/blocks.js:5883 +#: js/blocks/BoxesBlocks.js:772 +msgid "box1" msgstr "" -#: js/turtledefs.js:138 -#: js/turtledefs.js:240 -#: js/ProgramBlocks.js:495 -#: js/DictBlocks.js:142 -msgid "dictionary" +#: js/blocks.js:3450 +#: js/blocks.js:3890 +#: js/blocks.js:3925 +#: js/blocks.js:3960 +#: js/blocks.js:5864 +#: js/blocks.js:5885 +#: js/blocks/BoxesBlocks.js:663 +msgid "box2" msgstr "" -#: js/turtledefs.js:139 -#: js/turtledefs.js:241 -msgid "ensemble" +#: js/blocks.js:4122 +#: js/palette.js:639 +#: js/palette.js:644 +#: js/palette.js:1041 +#: js/blocks/BoxesBlocks.js:591 +msgid "store in" msgstr "" -#: js/turtledefs.js:140 -#: js/turtledefs.js:242 -msgid "extras" +#: js/blocks.js:4122 +#: js/blocks/BoxesBlocks.js:595 +#: js/blocks/DictBlocks.js:215 +#: js/blocks/DictBlocks.js:289 +#: js/blocks/EnsembleBlocks.js:391 +#: js/blocks/EnsembleBlocks.js:402 +#: js/blocks/MediaBlocks.js:746 +#: js/blocks/PitchBlocks.js:656 +#: js/blocks/PitchBlocks.js:934 +#: js/blocks/PitchBlocks.js:1866 +#: js/blocks/ProgramBlocks.js:390 +#: js/blocks/ProgramBlocks.js:495 +#: js/blocks/ProgramBlocks.js:658 +#: js/blocks/ToneBlocks.js:1025 +msgid "name" msgstr "" -#: js/turtledefs.js:142 -#: js/turtledefs.js:244 -#.TRANS: program as in computer program -#.TRANS: program as in computer program -msgid "program" +#: js/blocks.js:4122 +#: js/blocks/BoxesBlocks.js:75 +#: js/blocks/BoxesBlocks.js:595 +#: js/blocks/DictBlocks.js:289 +#: js/blocks/DictBlocks.js:430 +#: js/blocks/HeapBlocks.js:544 +#: js/blocks/RhythmBlocks.js:1130 +msgid "value" msgstr "" -#: js/turtledefs.js:143 -#: js/turtledefs.js:245 -msgid "my blocks" +#: js/blocks.js:4465 +msgid "Forever loop detected inside a note value block. Unexpected things may happen." msgstr "" -#: js/turtledefs.js:185 -#: js/turtledefs.js:281 -msgid "artwork" +#: js/blocks.js:4988 +msgid "There is no block selected." msgstr "" -#: js/turtledefs.js:185 -#: js/turtledefs.js:281 -msgid "logic" +#: js/blocks.js:5091 +#: js/blocks/MediaBlocks.js:888 +msgid "show" msgstr "" -#: js/turtledefs.js:185 -#: js/turtledefs.js:281 -msgid "music" +#: js/blocks.js:5094 +#: js/blocks/MediaBlocks.js:803 +#.TRANS: Avatar is the image used to determine the appearance of the mouse. +msgid "avatar" msgstr "" -#: js/turtledefs.js:187 -#: js/turtledefs.js:463 -msgid "Music Blocks is a collection of tools for exploring fundamental musical concepts in a fun way." +#: js/blocks.js:5097 +#: js/blocks/ToneBlocks.js:1010 +#: js/widgets/sampler.js:975 +#.TRANS: The sound sample that the user uploads. +msgid "sample" msgstr "" -#: js/turtledefs.js:436 -msgid "Welcome to Turtle Blocks" +#: js/lilypond.js:606 +msgid "brown rat" msgstr "" -#: js/turtledefs.js:438 -#: js/turtledefs.js:465 -#: js/turtledefs.js:774 -#: js/turtledefs.js:805 -msgid "The current version is" +#: js/lilypond.js:607 +msgid "mole" msgstr "" -#: js/turtledefs.js:446 -#: js/turtledefs.js:483 -msgid "Click the run button to run the project in fast mode." +#: js/lilypond.js:608 +msgid "chipmunk" msgstr "" -#: js/turtledefs.js:452 -msgid "Stop the turtle." +#: js/lilypond.js:609 +msgid "red squirrel" msgstr "" -#: js/turtledefs.js:454 -#: js/turtledefs.js:491 -msgid "You can also type Alt-S to stop." +#: js/lilypond.js:610 +msgid "guinea pig" +msgstr "" + +#: js/lilypond.js:611 +msgid "capybara" msgstr "" -#: js/turtledefs.js:462 -#: js/help.js:333 -msgid "Welcome to Music Blocks" +#: js/lilypond.js:612 +msgid "coypu" msgstr "" -#: js/turtledefs.js:472 -#: js/help.js:334 -msgid "Meet Mr. Mouse!" +#: js/lilypond.js:613 +msgid "black rat" msgstr "" -#: js/turtledefs.js:473 -msgid "Mr Mouse is our Music Blocks conductor." +#: js/lilypond.js:614 +msgid "grey squirrel" msgstr "" -#: js/turtledefs.js:475 -msgid "Mr Mouse encourages you to explore Music Blocks." +#: js/lilypond.js:615 +msgid "flying squirrel" msgstr "" -#: js/turtledefs.js:477 -msgid "Let us start our tour!" +#: js/lilypond.js:616 +msgid "bat" msgstr "" -#: js/turtledefs.js:489 -msgid "Stop the music (and the mice)." +#: js/lilypond.js:749 +#: js/lilypond.js:913 +#: js/lilypond.js:951 +#: js/blocks/ActionBlocks.js:1256 +#: js/blocks/ExtrasBlocks.js:556 +msgid "start drum" msgstr "" -#: js/turtledefs.js:499 -msgid "Record your project as video." +#: js/logo.js:61 +msgid "Not a valid pitch name" msgstr "" -#: js/turtledefs.js:505 -msgid "Toggle Fullscreen mode." +#: js/logo.js:507 +#: js/blocks/ProgramBlocks.js:258 +#: js/blocks/ProgramBlocks.js:427 +msgid "You must select a file." msgstr "" -#: js/turtledefs.js:511 -msgid "Initialize a new project." +#: js/logo.js:1696 +msgid "Playback is ready." msgstr "" -#: js/turtledefs.js:517 -msgid "You can also load projects from the file system." +#: js/macros.js:711 +#: js/utils/musicutils.js:1162 +#: js/utils/synthutils.js:202 +#.TRANS: animal sound effect +msgid "duck" msgstr "" -#: js/turtledefs.js:522 -#: js/StringHelper.js:46 -msgid "Delete" +#: js/notation.js:353 +msgid "Lilypond cannot process pickup of " msgstr "" -#: js/turtledefs.js:523 -msgid "To delete a block, just right-click on it, then you will be able to see the delete option" +#: js/palette.js:571 +msgid "grid" msgstr "" -#: js/turtledefs.js:528 -#: js/activity.js:2270 -#: js/LocalCard.js:31 -msgid "Copy" +#: js/palette.js:580 +msgid "effect" msgstr "" -#: js/turtledefs.js:529 -msgid "To copy a block, just right-click on it, then you will be able to see the copy option" +#: js/palette.js:586 +msgid "sargam" msgstr "" -#: js/turtledefs.js:535 -msgid "To extract a block, just right-click on it, then you will be able to see the extract option" +#: js/palette.js:601 +#: js/blocks/PitchBlocks.js:1209 +msgid "custom pitch" msgstr "" -#: js/turtledefs.js:542 -#: js/turtledefs.js:552 -#: js/turtledefs.js:573 -msgid "Save your project to a file." +#: js/palette.js:609 +msgid "accidental" msgstr "" -#: js/turtledefs.js:549 -#: js/turtledefs.js:570 -msgid "save" +#: js/palette.js:633 +#: js/blocks/PitchBlocks.js:405 +msgid "pitch converter" msgstr "" -#: js/turtledefs.js:556 -#: js/turtledefs.js:577 -msgid "Save graphics from your project to as SVG." +#: js/piemenus.js:200 +#: js/utils/musicutils.js:1187 +#: js/utils/musicutils.js:1207 +#: js/widgets/musickeyboard.js:2341 +#: js/widgets/phrasemaker.js:1908 +#: js/widgets/sampler.js:810 +#.TRANS: double sharp is a music term related to pitch +msgid "double sharp" msgstr "" -#: js/turtledefs.js:560 -#: js/turtledefs.js:581 -msgid "Save graphics from your project as PNG." +#: js/piemenus.js:201 +#: js/utils/musicutils.js:1185 +#: js/utils/musicutils.js:1208 +#: js/blocks/PitchBlocks.js:1539 +#: js/turtleactions/PitchActions.js:323 +#: js/widgets/musickeyboard.js:2342 +#: js/widgets/phrasemaker.js:1909 +#: js/widgets/sampler.js:811 +#.TRANS: sharp is a music term related to pitch +#.TRANS: sharp is a half-step up in pitch +msgid "sharp" msgstr "" -#: js/turtledefs.js:564 -#: js/turtledefs.js:597 -msgid "Save block artwork as an SVG file." +#: js/piemenus.js:202 +#: js/utils/musicutils.js:1183 +#: js/utils/musicutils.js:1209 +#: js/widgets/musickeyboard.js:2343 +#: js/widgets/phrasemaker.js:1910 +#: js/widgets/sampler.js:812 +#.TRANS: natural is a music term related to pitch +msgid "natural" msgstr "" -#: js/turtledefs.js:585 -msgid "Save audio from your project as WAV." +#: js/piemenus.js:203 +#: js/utils/musicutils.js:1181 +#: js/utils/musicutils.js:1210 +#: js/blocks/PitchBlocks.js:1498 +#: js/turtleactions/PitchActions.js:326 +#: js/widgets/musickeyboard.js:2344 +#: js/widgets/phrasemaker.js:1911 +#: js/widgets/sampler.js:813 +#.TRANS: flat is a music term related to pitch +#.TRANS: flat is a half-step down in pitch +msgid "flat" msgstr "" -#: js/turtledefs.js:589 -msgid "Save your project to as an ABC file." +#: js/piemenus.js:204 +#: js/utils/musicutils.js:1179 +#: js/utils/musicutils.js:1211 +#: js/widgets/musickeyboard.js:2345 +#: js/widgets/phrasemaker.js:1912 +#: js/widgets/sampler.js:814 +#.TRANS: double flat is a music term related to pitch +msgid "double flat" msgstr "" -#: js/turtledefs.js:593 -msgid "Save your project to as a Lilypond file." +#: js/piemenus.js:2864 +#: js/utils/musicutils.js:1006 +#: js/blocks/PitchBlocks.js:1385 +#.TRANS: unison is a music term related to intervals +#.TRANS: unison means the note is the same as the current note +msgid "unison" msgstr "" -#: js/turtledefs.js:604 -msgid "Load samples from server" +#: js/piemenus.js:3018 +#: js/piemenus.js:3091 +#: js/utils/musicutils.js:1014 +#: js/utils/musicutils.js:1189 +#: js/utils/musicutils.js:1326 +#.TRANS: major is a music term related to intervals and mode +msgid "major" msgstr "" -#: js/turtledefs.js:605 -msgid "This button opens a viewer for loading example projects." +#: js/piemenus.js:3018 +#: js/piemenus.js:3091 +#: js/utils/musicutils.js:1032 +#.TRANS: modal scale for music +msgid "ionian" msgstr "" -#: js/turtledefs.js:611 -msgid "Palette buttons" +#: js/piemenus.js:3020 +#: js/piemenus.js:3095 +#: js/utils/musicutils.js:1012 +#: js/utils/musicutils.js:1190 +#: js/utils/musicutils.js:1323 +#.TRANS: minor is a music term related to intervals and mode +msgid "minor" msgstr "" -#: js/turtledefs.js:612 -msgid "This toolbar contains the palette buttons including Rhythm Pitch Tone Action and more." +#: js/piemenus.js:3020 +#: js/piemenus.js:3095 +#: js/utils/musicutils.js:1042 +#.TRANS: modal scale for music +msgid "aeolian" msgstr "" -#: js/turtledefs.js:614 -msgid "Click to show the palettes of blocks and drag blocks from the palettes onto the canvas to use them." +#: js/piemenus.js:3410 +msgid "Duplicate" msgstr "" -#: js/turtledefs.js:620 -msgid "Cartesian/Polar" +#: js/piemenus.js:3412 +msgid "Move to trash" msgstr "" -#: js/turtledefs.js:621 -msgid "Show or hide a coordinate grid." +#: js/piemenus.js:3413 +#: js/widgets/timbre.js:968 +#: planet/js/StringHelper.js:69 +msgid "Close" msgstr "" -#: js/turtledefs.js:627 -msgid "Clear the screen and return the mice to their initial positions." +#: js/piemenus.js:3419 +msgid "Save stack" msgstr "" -#: js/turtledefs.js:633 -msgid "Collapse the graphics window." +#: js/piemenus.js:3449 +msgid "In order to copy a sample, you must reload the widget, import the sample again, and export it." msgstr "" -#: js/turtledefs.js:638 -#: js/activity.js:4256 -#: js/activity.js:4256 -msgid "Home" +#: js/piemenus.js:3812 +msgid "You have chosen key " msgstr "" -#: js/turtledefs.js:639 -msgid "Return all blocks to the center of the screen." +#: js/piemenus.js:3816 +msgid " for your pitch preview." msgstr "" -#: js/turtledefs.js:644 -msgid "Show/hide blocks" +#: js/turtle-singer.js:1363 +#.TRANS: partials are weighted components in a harmonic series +msgid "You must have at least one Partial block inside of a Weighted-partial block" msgstr "" -#: js/turtledefs.js:645 -msgid "Hide or show the blocks and the palettes." +#: js/turtle-singer.js:2077 +msgid "synth cannot play chords." msgstr "" -#: js/turtledefs.js:650 -msgid "Expand/collapse collapsable blocks" +#: js/utils/musicutils.js:505 +#: js/utils/musicutils.js:645 +#: js/widgets/pitchdrummatrix.js:228 +#: js/widgets/musickeyboard.js:2885 +msgid "rest" msgstr "" -#: js/turtledefs.js:651 -msgid "Expand or collapse start and action stacks." +#: js/utils/musicutils.js:689 +msgid "Perfect unison" msgstr "" -#: js/turtledefs.js:658 -#: js/activity.js:4265 -msgid "Decrease block size" +#: js/utils/musicutils.js:689 +msgid "Diminished second" msgstr "" -#: js/turtledefs.js:659 -msgid "Decrease the size of the blocks." +#: js/utils/musicutils.js:690 +msgid "Minor second" msgstr "" -#: js/turtledefs.js:664 -#: js/activity.js:4267 -msgid "Increase block size" +#: js/utils/musicutils.js:690 +msgid "Augmented unison" msgstr "" -#: js/turtledefs.js:665 -msgid "Increase the size of the blocks." +#: js/utils/musicutils.js:691 +msgid "Major second" msgstr "" -#: js/turtledefs.js:670 -msgid "Expand/collapse option toolbar" +#: js/utils/musicutils.js:691 +msgid "Diminished third" msgstr "" -#: js/turtledefs.js:671 -msgid "Click this button to expand or collapse the auxillary toolbar." +#: js/utils/musicutils.js:692 +msgid "Minor third" msgstr "" -#: js/turtledefs.js:676 -msgid "Run slow" +#: js/utils/musicutils.js:692 +msgid "Augmented second" msgstr "" -#: js/turtledefs.js:677 -msgid "Click to run the project in slow mode." +#: js/utils/musicutils.js:693 +msgid "Major third" msgstr "" -#: js/turtledefs.js:683 -msgid "Click to run the project step by step." +#: js/utils/musicutils.js:693 +msgid "Diminished fourth" msgstr "" -#: js/turtledefs.js:690 -msgid "Display statistics about your Music project." +#: js/utils/musicutils.js:694 +msgid "Perfect fourth" msgstr "" -#: js/turtledefs.js:697 -msgid "Delete a selected plugin." +#: js/utils/musicutils.js:694 +msgid "Augmented third" msgstr "" -#: js/turtledefs.js:704 -msgid "Enable scrolling" +#: js/utils/musicutils.js:695 +msgid "Diminished fifth" msgstr "" -#: js/turtledefs.js:705 -msgid "You can scroll the blocks on the canvas." +#: js/utils/musicutils.js:695 +msgid "Augmented fourth" msgstr "" -#: js/turtledefs.js:714 -msgid "Wrap Turtle" +#: js/utils/musicutils.js:696 +msgid "Perfect fifth" msgstr "" -#: js/turtledefs.js:715 -msgid "Turn Turtle wrapping On or Off." +#: js/utils/musicutils.js:696 +msgid "Diminished sixth" msgstr "" -#: js/turtledefs.js:725 -msgid "Restore blocks from the trash." +#: js/utils/musicutils.js:697 +msgid "Minor sixth" msgstr "" -#: js/turtledefs.js:732 -msgid "Switch mode" +#: js/utils/musicutils.js:697 +msgid "Augmented fifth" msgstr "" -#: js/turtledefs.js:733 -msgid "Switch between beginner and advance modes." +#: js/utils/musicutils.js:698 +msgid "Major sixth" msgstr "" -#: js/turtledefs.js:739 -msgid "Select your language preference." +#: js/utils/musicutils.js:698 +msgid "Diminished seventh" msgstr "" -#: js/turtledefs.js:745 -msgid "Keyboard shortcuts" +#: js/utils/musicutils.js:699 +msgid "Minor seventh" msgstr "" -#: js/turtledefs.js:746 -msgid "You can type d to create a do block and r to create a re block etc." +#: js/utils/musicutils.js:699 +msgid "Augmented sixth" msgstr "" -#: js/turtledefs.js:753 -msgid "Show these messages." +#: js/utils/musicutils.js:700 +msgid "Major seventh" msgstr "" -#: js/turtledefs.js:759 -#: js/turtledefs.js:790 -#: js/help.js:335 -msgid "Guide" +#: js/utils/musicutils.js:700 +msgid "Diminished octave" msgstr "" -#: js/turtledefs.js:760 -msgid "A detailed guide to Turtle Blocks is available." +#: js/utils/musicutils.js:701 +msgid "Perfect octave" msgstr "" -#: js/turtledefs.js:764 -msgid "Turtle Blocks Guide" +#: js/utils/musicutils.js:701 +msgid "Augmented seventh" msgstr "" -#: js/turtledefs.js:767 -#: js/turtledefs.js:798 -#: js/help.js:336 -msgid "About" +#: js/utils/musicutils.js:702 +msgid "Minor ninth" msgstr "" -#: js/turtledefs.js:768 -msgid "Turtle Blocks is an open source collection of tools for exploring musical concepts." +#: js/utils/musicutils.js:702 +msgid "Augmented octave" msgstr "" -#: js/turtledefs.js:770 -msgid "A full list of contributors can be found in the Turtle Blocks GitHub repository." +#: js/utils/musicutils.js:703 +msgid "Major ninth" msgstr "" -#: js/turtledefs.js:772 -msgid "Turtle Blocks is licensed under the AGPL." +#: js/utils/musicutils.js:703 +msgid "Diminished tenth" msgstr "" -#: js/turtledefs.js:780 -msgid "Turtle Blocks GitHub repository" +#: js/utils/musicutils.js:704 +msgid "Minor tenth" msgstr "" -#: js/turtledefs.js:783 -#: js/turtledefs.js:814 -#: js/help.js:337 -#: js/help.js:359 -msgid "Congratulations." +#: js/utils/musicutils.js:704 +msgid "Augmented ninth" msgstr "" -#: js/turtledefs.js:784 -msgid "You have finished the tour. Please enjoy Turtle Blocks!" +#: js/utils/musicutils.js:705 +msgid "Major tenth" msgstr "" -#: js/turtledefs.js:791 -msgid "A detailed guide to Music Blocks is available." +#: js/utils/musicutils.js:705 +msgid "Diminished eleventh" msgstr "" -#: js/turtledefs.js:795 -#: js/SaveInterface.js:76 -msgid "Music Blocks Guide" +#: js/utils/musicutils.js:706 +msgid "Perfect eleventh" msgstr "" -#: js/turtledefs.js:799 -msgid "Music Blocks is an open source collection of tools for exploring musical concepts." +#: js/utils/musicutils.js:706 +msgid "Augmented tenth" msgstr "" -#: js/turtledefs.js:801 -msgid "A full list of contributors can be found in the Music Blocks GitHub repository." +#: js/utils/musicutils.js:707 +msgid "Diminished twelfth" msgstr "" -#: js/turtledefs.js:803 -msgid "Music Blocks is licensed under the AGPL." +#: js/utils/musicutils.js:707 +msgid "Augmented eleventh" msgstr "" -#: js/turtledefs.js:811 -msgid "Music Blocks GitHub repository" +#: js/utils/musicutils.js:708 +msgid "Perfect twelfth" msgstr "" -#: js/turtledefs.js:815 -msgid "You have finished the tour. Please enjoy Music Blocks!" +#: js/utils/musicutils.js:708 +msgid "Diminished thirteenth" msgstr "" -#: js/activity.js:369 -msgid "Search for blocks" +#: js/utils/musicutils.js:709 +msgid "Minor thirteenth" msgstr "" -#: js/activity.js:1145 -msgid "Refresh your browser to change to advanced mode." +#: js/utils/musicutils.js:709 +msgid "Augmented fifth, plus an octave" msgstr "" -#: js/activity.js:1150 -msgid "Refresh your browser to change to beginner mode." +#: js/utils/musicutils.js:710 +msgid "Major thirteenth" msgstr "" -#: js/activity.js:1184 -msgid "Catching mice" +#: js/utils/musicutils.js:710 +msgid "Diminished seventh, plus an octave" msgstr "" -#: js/activity.js:1185 -msgid "Cleaning the instruments" +#: js/utils/musicutils.js:838 +#.TRANS: ordinal number. Please keep exactly one space between each number. +msgid "1st 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th" msgstr "" -#: js/activity.js:1186 -msgid "Testing key pieces" +#: js/utils/musicutils.js:1008 +#: js/utils/musicutils.js:1191 +#: js/utils/musicutils.js:1325 +#.TRANS: augmented is a music term related to intervals +msgid "augmented" msgstr "" -#: js/activity.js:1187 -msgid "Sight-reading" +#: js/utils/musicutils.js:1010 +#: js/utils/musicutils.js:1192 +#: js/utils/musicutils.js:1324 +#.TRANS: diminished is a music term related to intervals and mode +msgid "diminished" msgstr "" -#: js/activity.js:1188 -msgid "Combining math and music" +#: js/utils/musicutils.js:1016 +#: js/utils/musicutils.js:1322 +#: js/blocks/IntervalsBlocks.js:649 +#: js/turtleactions/IntervalsActions.js:120 +#: js/turtleactions/IntervalsActions.js:124 +#.TRANS: perfect is a music term related to intervals +msgid "perfect" +msgstr "" + +#: js/utils/musicutils.js:1018 +#.TRANS: twelve semi-tone scale for music +msgid "chromatic" msgstr "" -#: js/activity.js:1189 -msgid "Generating more blocks" +#: js/utils/musicutils.js:1019 +msgid "algerian" msgstr "" -#: js/activity.js:1190 -msgid "Do Re Mi Fa Sol La Ti Do" +#: js/utils/musicutils.js:1020 +msgid "spanish" msgstr "" -#: js/activity.js:1191 -msgid "Tuning string instruments" +#: js/utils/musicutils.js:1022 +#.TRANS: modal scale in music +msgid "octatonic" msgstr "" -#: js/activity.js:1192 -msgid "Pressing random keys" +#: js/utils/musicutils.js:1024 +#.TRANS: harmonic major scale in music +msgid "harmonic major" msgstr "" -#: js/activity.js:1351 -msgid "plugins will be removed upon restart." +#: js/utils/musicutils.js:1026 +#.TRANS: natural minor scales in music +msgid "natural minor" msgstr "" -#: js/activity.js:1360 -msgid "show Cartesian" +#: js/utils/musicutils.js:1028 +#.TRANS: harmonic minor scale in music +msgid "harmonic minor" msgstr "" -#: js/activity.js:1842 -msgid "output tools" +#: js/utils/musicutils.js:1030 +#.TRANS: melodic minor scale in music +msgid "melodic minor" msgstr "" -#: js/activity.js:1845 -msgid "custom note" +#: js/utils/musicutils.js:1034 +#.TRANS: modal scale for music +msgid "dorian" msgstr "" -#: js/activity.js:1848 -msgid "accidental name" +#: js/utils/musicutils.js:1036 +#.TRANS: modal scale for music +msgid "phrygian" msgstr "" -#: js/activity.js:1851 -#: js/PitchBlocks.js:855 -msgid "east indian solfege" +#: js/utils/musicutils.js:1038 +#.TRANS: modal scale for music +msgid "lydian" msgstr "" -#: js/activity.js:1854 -#: js/PitchBlocks.js:869 -msgid "note name" +#: js/utils/musicutils.js:1040 +#.TRANS: modal scale for music +msgid "mixolydian" msgstr "" -#: js/activity.js:1857 -#: js/IntervalsBlocks.js:94 -msgid "temperament name" +#: js/utils/musicutils.js:1044 +#.TRANS: modal scale for music +msgid "locrian" msgstr "" -#: js/activity.js:1863 -msgid "chord name" +#: js/utils/musicutils.js:1046 +#.TRANS: minor jazz scale for music +msgid "jazz minor" msgstr "" -#: js/activity.js:1869 -msgid "filter type" +#: js/utils/musicutils.js:1048 +#.TRANS: bebop scale for music +msgid "bebop" msgstr "" -#: js/activity.js:1872 -msgid "oscillator type" +#: js/utils/musicutils.js:1049 +msgid "arabic" msgstr "" -#: js/activity.js:1878 -#: js/DrumBlocks.js:32 -msgid "noise name" +#: js/utils/musicutils.js:1050 +msgid "byzantine" msgstr "" -#: js/activity.js:1881 -#: js/DrumBlocks.js:75 -msgid "drum name" +#: js/utils/musicutils.js:1052 +#.TRANS: musical scale for music by Verdi +msgid "enigmatic" msgstr "" -#: js/activity.js:1884 -#: js/DrumBlocks.js:119 -msgid "effects name" +#: js/utils/musicutils.js:1053 +msgid "ethiopian" msgstr "" -#: js/activity.js:1887 -msgid "wrap mode" +#: js/utils/musicutils.js:1055 +#.TRANS: Ethiopic scale for music +msgid "geez" msgstr "" -#: js/activity.js:1890 -msgid "load file" +#: js/utils/musicutils.js:1056 +msgid "hindu" msgstr "" -#: js/activity.js:2056 -msgid "This block is deprecated." +#: js/utils/musicutils.js:1057 +msgid "hungarian" msgstr "" -#: js/activity.js:2058 -msgid "Block cannot be found." +#: js/utils/musicutils.js:1059 +#.TRANS: minor Romanian scale for music +msgid "romanian minor" msgstr "" -#: js/activity.js:2266 -msgid "Saving block artwork" +#: js/utils/musicutils.js:1060 +msgid "spanish gypsy" msgstr "" -#: js/activity.js:2277 -msgid "Erase" +#: js/utils/musicutils.js:1062 +#.TRANS: musical scale for Mid-Eastern music +msgid "maqam" msgstr "" -#: js/activity.js:2301 -#: js/activity.js:2323 -msgid "Paste" +#: js/utils/musicutils.js:1064 +#.TRANS: minor blues scale for music +msgid "minor blues" msgstr "" -#: js/activity.js:2305 -msgid "Save block help" +#: js/utils/musicutils.js:1066 +#.TRANS: major blues scale for music +msgid "major blues" msgstr "" -#: js/activity.js:2390 -msgid "Jumping to the bottom of the page." +#: js/utils/musicutils.js:1067 +msgid "whole tone" msgstr "" -#: js/activity.js:2396 -msgid "Scrolling up." +#: js/utils/musicutils.js:1069 +#.TRANS: pentatonic is a general term that means "five note scale". This scale is typically known as "minor pentatonic" +msgid "minor pentatonic" msgstr "" -#: js/activity.js:2401 -msgid "Scrolling down." +#: js/utils/musicutils.js:1071 +#.TRANS: pentatonic is a general term that means "five note scale". This scale is typically known as "major pentatonic" +msgid "major pentatonic" msgstr "" -#: js/activity.js:2406 -msgid "Extracting block" +#: js/utils/musicutils.js:1072 +msgid "chinese" msgstr "" -#: js/activity.js:2414 -msgid "Moving block up." +#: js/utils/musicutils.js:1073 +msgid "egyptian" msgstr "" -#: js/activity.js:2435 -msgid "Moving block down." +#: js/utils/musicutils.js:1075 +#.TRANS: https://en.wikipedia.org/wiki/Hirajoshi_scale NOTE: There are three different versions of this scale +msgid "hirajoshi" msgstr "" -#: js/activity.js:2456 -msgid "Moving block left." +#: js/utils/musicutils.js:1076 +msgid "Japan" msgstr "" -#: js/activity.js:2473 -msgid "Moving block right." +#: js/utils/musicutils.js:1078 +#.TRANS: https://en.wikipedia.org/wiki/In_scale and https://en.wikipedia.org/wiki/Sakura_Sakura +msgid "in" msgstr "" -#: js/activity.js:2488 -msgid "Jump to home position." +#: js/utils/musicutils.js:1080 +#.TRANS: https://en.wikipedia.org/wiki/Miny%C5%8D_scale +msgid "minyo" msgstr "" -#: js/activity.js:2515 -msgid "Hide blocks" +#: js/utils/musicutils.js:1082 +#.TRANS: Italian mathematician +msgid "fibonacci" msgstr "" -#: js/activity.js:3389 -msgid "Click the run button to run the project." +#: js/utils/musicutils.js:1083 +#: js/utils/musicutils.js:1134 +#: js/utils/musicutils.js:1177 +#: js/utils/musicutils.js:1199 +#: js/utils/synthutils.js:134 +#: js/blocks/IntervalsBlocks.js:1124 +#: js/blocks/ToneBlocks.js:946 +#: js/blocks/VolumeBlocks.js:411 +#: js/blocks/WidgetBlocks.js:399 +#: js/blocks/WidgetBlocks.js:404 +#: js/turtleactions/VolumeActions.js:218 +#: js/widgets/modewidget.js:919 +#.TRANS: customize voice +msgid "custom" msgstr "" -#: js/activity.js:3456 -#: js/SaveInterface.js:131 -#: js/SaveInterface.js:204 -#: js/SaveInterface.js:262 -#: js/SaveInterface.js:389 -#: js/SaveInterface.js:417 -#: js/ProjectStorage.js:27 -#: js/GlobalPlanet.js:467 -#: js/GlobalPlanet.js:469 -#: js/GlobalPlanet.js:495 -#.TRANS: default project title when saving as Lilypond -msgid "My Project" +#: js/utils/musicutils.js:1085 +#: js/utils/musicutils.js:1531 +#: js/blocks/WidgetBlocks.js:176 +#.TRANS: highpass filter +msgid "highpass" msgstr "" -#: js/activity.js:4261 -msgid "Show/hide block" +#: js/utils/musicutils.js:1087 +#: js/utils/musicutils.js:1532 +#.TRANS: lowpass filter +msgid "lowpass" msgstr "" -#: js/activity.js:4263 -msgid "Expand/collapse blocks" +#: js/utils/musicutils.js:1089 +#: js/utils/musicutils.js:1533 +#.TRANS: bandpass filter +msgid "bandpass" msgstr "" -#: js/activity.js:4381 -msgid "Could not parse JSON input." +#: js/utils/musicutils.js:1091 +#: js/utils/musicutils.js:1534 +#.TRANS: high-shelf filter +msgid "highshelf" msgstr "" -#: js/activity.js:4684 -#: js/activity.js:4771 -#: js/activity.js:4821 -msgid "Cannot load project from the file. Please check the file type." +#: js/utils/musicutils.js:1093 +#: js/utils/musicutils.js:1535 +#.TRANS: low-shelf filter +msgid "lowshelf" msgstr "" -#: js/activity.js:5051 -msgid "Invalid parameters" +#: js/utils/musicutils.js:1095 +#: js/utils/musicutils.js:1536 +#.TRANS: notch-shelf filter +msgid "notch" msgstr "" -#: js/turtle-singer.js:1334 -#.TRANS: partials are weighted components in a harmonic series -msgid "You must have at least one Partial block inside of a Weighted-partial block" +#: js/utils/musicutils.js:1097 +#: js/utils/musicutils.js:1537 +#.TRANS: all-pass filter +msgid "allpass" msgstr "" -#: js/turtle-singer.js:2048 -msgid "synth cannot play chords." +#: js/utils/musicutils.js:1099 +#: js/utils/musicutils.js:1538 +#.TRANS: peaking filter +msgid "peaking" msgstr "" -#: js/lilypond.js:614 -msgid "brown rat" +#: js/utils/musicutils.js:1100 +#: js/utils/musicutils.js:1546 +#: js/utils/synthutils.js:126 +#: js/blocks/PitchBlocks.js:85 +#.TRANS: sine wave +msgid "sine" msgstr "" -#: js/lilypond.js:615 -msgid "mole" +#: js/utils/musicutils.js:1101 +#: js/utils/musicutils.js:1547 +#: js/utils/synthutils.js:128 +#: js/blocks/PitchBlocks.js:39 +#.TRANS: square wave +msgid "square" msgstr "" -#: js/lilypond.js:616 -msgid "chipmunk" +#: js/utils/musicutils.js:1102 +#: js/utils/musicutils.js:1548 +#: js/utils/synthutils.js:132 +#: js/blocks/PitchBlocks.js:62 +#: js/blocks/ToneBlocks.js:39 +#.TRANS: triangle wave +msgid "triangle" msgstr "" -#: js/lilypond.js:617 -msgid "red squirrel" +#: js/utils/musicutils.js:1103 +#: js/utils/musicutils.js:1549 +#: js/utils/synthutils.js:130 +#: js/blocks/PitchBlocks.js:108 +#.TRANS: sawtooth wave +msgid "sawtooth" msgstr "" -#: js/lilypond.js:618 -msgid "guinea pig" +#: js/utils/musicutils.js:1105 +#: js/utils/musicutils.js:1312 +#: js/blocks/PitchBlocks.js:931 +#: js/blocks/PitchBlocks.js:937 +#: js/turtleactions/PitchActions.js:469 +#.TRANS: even numbers +#.TRANS: invert based on even or odd number or musical scale +msgid "even" msgstr "" -#: js/lilypond.js:619 -msgid "capybara" +#: js/utils/musicutils.js:1107 +#: js/utils/musicutils.js:1313 +#: js/blocks/PitchBlocks.js:937 +#: js/turtleactions/PitchActions.js:471 +#.TRANS: odd numbers +msgid "odd" msgstr "" -#: js/lilypond.js:620 -msgid "coypu" +#: js/utils/musicutils.js:1108 +#: js/utils/musicutils.js:1314 +#: js/blocks/PitchBlocks.js:937 +#: js/turtleactions/PitchActions.js:473 +msgid "scalar" msgstr "" -#: js/lilypond.js:621 -msgid "black rat" +#: js/utils/musicutils.js:1109 +#: js/utils/synthutils.js:72 +#: js/blocks/VolumeBlocks.js:47 +#.TRANS: musical instrument +msgid "piano" msgstr "" -#: js/lilypond.js:622 -msgid "grey squirrel" +#: js/utils/musicutils.js:1110 +#: js/utils/synthutils.js:74 +#.TRANS: musical instrument +msgid "violin" msgstr "" -#: js/lilypond.js:623 -msgid "flying squirrel" +#: js/utils/musicutils.js:1111 +#: js/utils/synthutils.js:76 +#.TRANS: viola musical instrument +msgid "viola" msgstr "" -#: js/lilypond.js:624 -msgid "bat" +#: js/utils/musicutils.js:1112 +#: js/utils/synthutils.js:114 +#.TRANS: xylophone musical instrument +msgid "xylophone" msgstr "" -#: js/lilypond.js:757 -#: js/lilypond.js:921 -#: js/lilypond.js:959 -#: js/ActionBlocks.js:1256 -#: js/ExtrasBlocks.js:553 -msgid "start drum" +#: js/utils/musicutils.js:1113 +#: js/utils/synthutils.js:136 +#.TRANS: vibraphone musical instrument +msgid "vibraphone" msgstr "" -#: js/SaveInterface.js:59 -#: js/SaveInterface.js:61 -#: js/SaveInterface.js:93 -msgid "Music Blocks Project" +#: js/utils/musicutils.js:1114 +#: js/utils/synthutils.js:78 +#.TRANS: musical instrument +msgid "cello" msgstr "" -#: js/SaveInterface.js:63 -msgid "This project was created in Music Blocks" +#: js/utils/musicutils.js:1116 +#: js/utils/synthutils.js:82 +#.TRANS: viola musical instrument +msgid "double bass" msgstr "" -#: js/SaveInterface.js:67 -msgid "Music Blocks is a Free/Libre Software application." +#: js/utils/musicutils.js:1117 +#: js/utils/synthutils.js:84 +#: js/widgets/rhythmruler.js:2511 +#.TRANS: musical instrument +msgid "guitar" msgstr "" -#: js/SaveInterface.js:69 -msgid "The source code can be accessed at" +#: js/utils/musicutils.js:1118 +#: js/utils/synthutils.js:86 +#.TRANS: musical instrument +msgid "acoustic guitar" msgstr "" -#: js/SaveInterface.js:72 -msgid "For more information, please consult the" +#: js/utils/musicutils.js:1119 +#: js/utils/synthutils.js:88 +#.TRANS: musical instrument +msgid "flute" msgstr "" -#: js/SaveInterface.js:83 -msgid "Alternatively, open the file in Music Blocks using the Load project button." +#: js/utils/musicutils.js:1120 +#: js/utils/synthutils.js:90 +#.TRANS: musical instrument +msgid "clarinet" msgstr "" -#: js/SaveInterface.js:85 -msgid "Project Code" +#: js/utils/musicutils.js:1121 +#: js/utils/synthutils.js:92 +#.TRANS: musical instrument +msgid "saxophone" msgstr "" -#: js/SaveInterface.js:87 -msgid "This code stores data about the blocks in a project." +#: js/utils/musicutils.js:1122 +#: js/utils/synthutils.js:94 +#.TRANS: musical instrument +msgid "tuba" msgstr "" -#: js/SaveInterface.js:89 -msgid "Show" +#: js/utils/musicutils.js:1123 +#: js/utils/synthutils.js:96 +#.TRANS: musical instrument +msgid "trumpet" msgstr "" -#: js/SaveInterface.js:91 -msgid "Hide" +#: js/utils/musicutils.js:1124 +#: js/utils/synthutils.js:98 +#.TRANS: musical instrument +msgid "oboe" msgstr "" -#: js/SaveInterface.js:197 -#: js/SaveInterface.js:58 -msgid "No description provided" +#: js/utils/musicutils.js:1125 +#: js/utils/synthutils.js:100 +#.TRANS: musical instrument +msgid "trombone" msgstr "" -#: js/SaveInterface.js:332 -msgid "Your recording is in progress." +#: js/utils/musicutils.js:1126 +#: js/utils/synthutils.js:116 +#.TRANS: polytone synthesizer +msgid "electronic synth" msgstr "" -#: js/SaveInterface.js:401 -#.TRANS: File name prompt for save as Lilypond -msgid "File name" +#: js/utils/musicutils.js:1127 +#: js/utils/synthutils.js:118 +#.TRANS: simple monotone synthesizer +msgid "simple 1" msgstr "" -#: js/SaveInterface.js:403 -#: js/StringHelper.js:39 -#.TRANS: Project title prompt for save as Lilypond -msgid "Project title" +#: js/utils/musicutils.js:1128 +msgid "simple 2" msgstr "" -#: js/SaveInterface.js:405 -#.TRANS: Project title prompt for save as Lilypond -msgid "Project author" +#: js/utils/musicutils.js:1129 +msgid "simple 3" msgstr "" -#: js/SaveInterface.js:407 -#.TRANS: MIDI prompt for save as Lilypond -msgid "Include MIDI output?" +#: js/utils/musicutils.js:1130 +msgid "simple 4" msgstr "" -#: js/SaveInterface.js:409 -#.TRANS: Guitar prompt for save as Lilypond -msgid "Include guitar tablature output?" +#: js/utils/musicutils.js:1131 +#: js/utils/synthutils.js:58 +#: js/blocks/DrumBlocks.js:191 +#.TRANS: white noise synthesizer +msgid "white noise" msgstr "" -#: js/SaveInterface.js:411 -#.TRANS: Lilypond is a scripting language for generating sheet music -msgid "Save as Lilypond" +#: js/utils/musicutils.js:1132 +#: js/utils/synthutils.js:60 +#.TRANS: brown noise synthesizer +msgid "brown noise" msgstr "" -#: js/SaveInterface.js:426 -#: js/EnsembleBlocks.js:75 -#: js/EnsembleBlocks.js:154 -#: js/EnsembleBlocks.js:216 -#: js/EnsembleBlocks.js:302 -#: js/EnsembleBlocks.js:348 -#: js/EnsembleBlocks.js:389 -#: js/EnsembleBlocks.js:441 -#: js/EnsembleBlocks.js:490 -#: js/EnsembleBlocks.js:536 -#: js/EnsembleBlocks.js:583 -#: js/EnsembleBlocks.js:637 -#: js/EnsembleBlocks.js:753 -#: js/EnsembleBlocks.js:840 -#: js/EnsembleBlocks.js:899 -#: js/EnsembleBlocks.js:942 -#: js/EnsembleBlocks.js:1212 -#: js/EnsembleBlocks.js:1280 -#.TRANS: default project author when saving as Lilypond -msgid "Mr. Mouse" +#: js/utils/musicutils.js:1133 +#: js/utils/synthutils.js:62 +#.TRANS: pink noise synthesizer +msgid "pink noise" msgstr "" -#: js/SaveInterface.js:573 -msgid "The Lilypond code is copied to clipboard. You can paste it here: " +#: js/utils/musicutils.js:1135 +#: js/utils/synthutils.js:148 +#: js/widgets/rhythmruler.js:2057 +#: js/widgets/rhythmruler.js:2319 +#.TRANS: musical instrument +msgid "snare drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:50 -#: js/RhythmBlockPaletteBlocks.js:232 -#.TRANS: rhythm block -#.TRANS: translate "rhythm1" as rhythm -msgid "rhythm1" +#: js/utils/musicutils.js:1136 +#: js/utils/synthutils.js:150 +#.TRANS: musical instrument +msgid "kick drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:70 -#: js/RhythmBlockPaletteBlocks.js:251 -#: js/RhythmBlockPaletteBlocks.js:484 -#: js/RhythmBlockPaletteBlocks.js:553 -#: js/RhythmBlockPaletteBlocks.js:874 -msgid "number of notes" +#: js/utils/musicutils.js:1137 +#: js/utils/synthutils.js:152 +#.TRANS: musical instrument +msgid "tom tom" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:126 -msgid "polyphonic rhythm" +#: js/utils/musicutils.js:1138 +#: js/utils/synthutils.js:154 +#.TRANS: musical instrument +msgid "floor tom" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:218 -msgid "The Rhythm block is used to generate rhythm patterns." +#: js/utils/musicutils.js:1139 +#: js/utils/synthutils.js:156 +#.TRANS: musical instrument +msgid "bass drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:279 -msgid "1/64 note" +#: js/utils/musicutils.js:1140 +#: js/utils/synthutils.js:158 +#.TRANS: a drum made from an inverted cup +msgid "cup drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:303 -msgid "1/32 note" +#: js/utils/musicutils.js:1141 +#: js/utils/synthutils.js:160 +#.TRANS: musical instrument +msgid "darbuka drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:331 -msgid "1/16 note" +#: js/utils/musicutils.js:1142 +#: js/utils/synthutils.js:164 +#.TRANS: musical instrument +msgid "hi hat" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:359 -msgid "eighth note" +#: js/utils/musicutils.js:1143 +#: js/utils/synthutils.js:166 +#.TRANS: a small metal bell +msgid "ride bell" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:387 -msgid "quarter note" +#: js/utils/musicutils.js:1144 +#: js/utils/synthutils.js:168 +#.TRANS: musical instrument +msgid "cow bell" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:415 -msgid "half note" +#: js/utils/musicutils.js:1145 +msgid "japanese drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:443 -msgid "whole note" +#: js/utils/musicutils.js:1146 +#: js/utils/synthutils.js:174 +#.TRANS: musical instrument +msgid "japanese bell" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:481 -#: js/RhythmBlockPaletteBlocks.js:550 -#: js/RhythmBlockPaletteBlocks.js:601 -#.TRANS: A tuplet is a note value divided into irregular time values. -msgid "tuplet" +#: js/utils/musicutils.js:1147 +#: js/utils/synthutils.js:170 +#.TRANS: musical instrument +msgid "triangle bell" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:767 -msgid "septuplet" +#: js/utils/musicutils.js:1148 +#: js/utils/synthutils.js:172 +#.TRANS: musical instrument +msgid "finger cymbals" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:795 -msgid "quintuplet" +#: js/utils/musicutils.js:1149 +#: js/utils/synthutils.js:176 +#.TRANS: a musically tuned set of bells +msgid "chime" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:823 -msgid "triplet" +#: js/utils/musicutils.js:1150 +#: js/utils/synthutils.js:178 +#.TRANS: a musical instrument +msgid "gong" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:850 -msgid "simple tuplet" +#: js/utils/musicutils.js:1151 +#: js/utils/synthutils.js:180 +#.TRANS: sound effect +msgid "clang" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:860 -msgid "Tuplets are a collection of notes that get scaled to a specific duration." +#: js/utils/musicutils.js:1152 +#: js/utils/synthutils.js:182 +#.TRANS: sound effect +msgid "crash" msgstr "" -#: js/WidgetBlocks.js:71 -#.TRANS: sound envelope (ADSR) -msgid "envelope" +#: js/utils/musicutils.js:1153 +#: js/utils/synthutils.js:184 +#.TRANS: sound effect +msgid "bottle" msgstr "" -#: js/WidgetBlocks.js:79 -#.TRANS: Attack time is the time taken for initial run-up of level from nil to peak, beginning when the key is first pressed. -msgid "attack" +#: js/utils/musicutils.js:1154 +#: js/utils/synthutils.js:186 +#.TRANS: sound effect +msgid "clap" msgstr "" -#: js/WidgetBlocks.js:81 -#.TRANS: Decay time is the time taken for the subsequent run down from the attack level to the designated sustain level. -msgid "decay" +#: js/utils/musicutils.js:1155 +#: js/utils/synthutils.js:188 +#.TRANS: sound effect +msgid "slap" msgstr "" -#: js/WidgetBlocks.js:83 -#.TRANS: Sustain level is the level during the main sequence of the sound's duration, until the key is released. -msgid "sustain" +#: js/utils/musicutils.js:1156 +#: js/utils/synthutils.js:190 +#.TRANS: sound effect +msgid "splash" msgstr "" -#: js/WidgetBlocks.js:85 -#.TRANS: Release time is the time taken for the level to decay from the sustain level to zero after the key is released. -msgid "release" +#: js/utils/musicutils.js:1157 +#: js/utils/synthutils.js:192 +#.TRANS: sound effect +msgid "bubbles" msgstr "" -#: js/WidgetBlocks.js:96 -msgid "Attack value should be from 0 to 100." +#: js/utils/musicutils.js:1158 +#: js/utils/synthutils.js:194 +#.TRANS: sound effect +msgid "raindrop" msgstr "" -#: js/WidgetBlocks.js:99 -msgid "Decay value should be from 0 to 100." +#: js/utils/musicutils.js:1159 +#: js/utils/synthutils.js:196 +#.TRANS: animal sound effect +msgid "cat" msgstr "" -#: js/WidgetBlocks.js:102 -msgid "Sustain value should be from 0 to 100." +#: js/utils/musicutils.js:1160 +#: js/utils/synthutils.js:198 +#.TRANS: animal sound effect +msgid "cricket" msgstr "" -#: js/WidgetBlocks.js:105 -msgid "Release value should be from 0-100." +#: js/utils/musicutils.js:1161 +#: js/utils/synthutils.js:200 +#.TRANS: animal sound effect +msgid "dog" msgstr "" -#: js/WidgetBlocks.js:121 -msgid "You are adding multiple envelope blocks." +#: js/utils/musicutils.js:1163 +#: js/utils/synthutils.js:102 +#.TRANS: musical instrument +msgid "banjo" msgstr "" -#: js/WidgetBlocks.js:144 -#.TRANS: a filter removes some unwanted components from a signal -msgid "filter" +#: js/utils/musicutils.js:1164 +#: js/utils/synthutils.js:104 +#.TRANS: musical instrument +msgid "koto" msgstr "" -#: js/WidgetBlocks.js:149 -#: js/musicutils.js:706 -#: js/musicutils.js:1105 -#.TRANS: highpass filter -msgid "highpass" +#: js/utils/musicutils.js:1165 +#: js/utils/synthutils.js:106 +#.TRANS: musical instrument +msgid "dulcimer" msgstr "" -#: js/WidgetBlocks.js:152 -#: js/ToneBlocks.js:42 -#: js/timbre.js:1558 -#: js/timbre.js:1808 -#.TRANS: type of filter, e.g., lowpass, highpass, etc. -#.TRANS: there are different types (sine, triangle, square...) of oscillators. -msgid "type" +#: js/utils/musicutils.js:1166 +#: js/utils/synthutils.js:108 +#.TRANS: musical instrument +msgid "electric guitar" msgstr "" -#: js/WidgetBlocks.js:154 -#: js/timbre.js:1818 -#.TRANS: rolloff is the steepness of a change in frequency. -msgid "rolloff" +#: js/utils/musicutils.js:1167 +#: js/utils/synthutils.js:110 +#.TRANS: musical instrument +msgid "bassoon" msgstr "" -#: js/WidgetBlocks.js:155 -#: js/MediaBlocks.js:692 -#: js/temperament.js:382 -#: js/temperament.js:417 -#: js/temperament.js:477 -#: js/temperament.js:485 -#: js/temperament.js:1348 -#: js/timbre.js:1842 -msgid "frequency" +#: js/utils/musicutils.js:1168 +#: js/utils/synthutils.js:112 +#.TRANS: musical instrument +msgid "celeste" msgstr "" -#: js/WidgetBlocks.js:179 -#.TRANS: rolloff is the steepness of a change in frequency. -msgid "Rolloff value should be either -12, -24, -48, or -96 decibels/octave." +#: js/utils/musicutils.js:1170 +#: js/widgets/temperament.js:787 +#.TRANS: musical temperament +msgid "equal" msgstr "" -#: js/WidgetBlocks.js:211 -msgid "The Temperament tool is used to define custom tuning." +#: js/utils/musicutils.js:1172 +#.TRANS: musical temperament +msgid "Pythagorean" msgstr "" -#: js/WidgetBlocks.js:277 -#: js/sampler.js:329 -msgid "Upload a sample and adjust its pitch center." +#: js/utils/musicutils.js:1174 +#.TRANS: musical temperament +msgid "just intonation" msgstr "" -#: js/WidgetBlocks.js:284 -#.TRANS: the speed at music is should be played. -msgid "sampler" +#: js/utils/musicutils.js:1176 +#.TRANS: musical temperament +msgid "meantone" msgstr "" -#: js/WidgetBlocks.js:329 -#: js/WidgetBlocks.js:334 -#: js/IntervalsBlocks.js:928 -#: js/VolumeBlocks.js:411 -#: js/ToneBlocks.js:946 -#: js/VolumeActions.js:218 -#: js/musicutils.js:704 -#: js/musicutils.js:755 -#: js/musicutils.js:798 -#: js/musicutils.js:820 -#: js/musicutils.js:1136 -#: js/synthutils.js:118 -#: js/modewidget.js:919 -#.TRANS: customize voice -msgid "custom" +#: js/utils/musicutils.js:1193 +msgid "major 7th" msgstr "" -#: js/WidgetBlocks.js:432 -msgid "The Meter block opens a tool to select strong beats for the meter." +#: js/utils/musicutils.js:1194 +msgid "minor 7th" msgstr "" -#: js/WidgetBlocks.js:473 -msgid "The oscilloscope block opens a tool to visualize waveforms." +#: js/utils/musicutils.js:1195 +msgid "dominant 7th" msgstr "" -#: js/WidgetBlocks.js:478 -msgid "oscilloscope" +#: js/utils/musicutils.js:1196 +msgid "minor-major 7th" msgstr "" -#: js/WidgetBlocks.js:530 -msgid "The Custom mode block opens a tool to explore musical mode (the spacing of the notes in a scale)." +#: js/utils/musicutils.js:1197 +msgid "fully-diminished 7th" msgstr "" -#: js/WidgetBlocks.js:536 -#.TRANS: musical mode is the pattern of half-steps in an octave, e.g., Major or Minor modes -msgid "custom mode" +#: js/utils/musicutils.js:1198 +msgid "half-diminished 7th" msgstr "" -#: js/WidgetBlocks.js:570 -msgid "The Tempo block opens a metronome to visualize the beat." +#: js/utils/musicutils.js:1557 +#: js/utils/musicutils.js:1569 +msgid "Equal (12EDO)" msgstr "" -#: js/WidgetBlocks.js:617 -msgid "The Arpeggio Widget is used to compose chord sequences." +#: js/utils/musicutils.js:1558 +#: js/utils/musicutils.js:1570 +msgid "5-limit Just Intonation" msgstr "" -#: js/WidgetBlocks.js:623 -#: js/IntervalsBlocks.js:683 -msgid "arpeggio" +#: js/utils/musicutils.js:1559 +#: js/utils/musicutils.js:1571 +msgid "Pythagorean (3-limit JI)" msgstr "" -#: js/WidgetBlocks.js:677 -msgid "The Pitch drum matrix is used to map pitches to drum sounds." +#: js/utils/musicutils.js:1560 +#: js/utils/musicutils.js:1561 +#: js/utils/musicutils.js:1572 +#: js/utils/musicutils.js:1573 +msgid "Meantone" msgstr "" -#: js/WidgetBlocks.js:682 -#.TRANS: makes a mapping between pitches and drum sounds -msgid "pitch-drum mapper" +#: js/utils/musicutils.js:1574 +msgid "Custom" msgstr "" -#: js/WidgetBlocks.js:724 -msgid "You must have at least one pitch block and one drum block in the matrix." +#: js/utils/musicutils.js:5387 +#: js/utils/musicutils.js:5430 +msgid "current" msgstr "" -#: js/WidgetBlocks.js:746 -msgid "The Pitch slider tool to is used to generate pitches at selected frequencies." +#: js/utils/musicutils.js:5390 +#: js/utils/musicutils.js:5421 +msgid "next" msgstr "" -#: js/WidgetBlocks.js:751 -#.TRANS: widget to generate pitches using a slider -msgid "pitch slider" +#: js/utils/musicutils.js:5393 +#: js/utils/musicutils.js:5426 +msgid "previous" msgstr "" -#: js/WidgetBlocks.js:788 -msgid "chromatic keyboard" +#: js/utils/synthutils.js:120 +#.TRANS: simple monotone synthesizer +msgid "simple-2" msgstr "" -#: js/WidgetBlocks.js:815 -#: js/WidgetBlocks.js:874 -#.TRANS: widget to generate pitches using a slider -msgid "music keyboard" +#: js/utils/synthutils.js:122 +#.TRANS: simple monotone synthesizer +msgid "simple-3" msgstr "" -#: js/WidgetBlocks.js:859 -#: js/WidgetBlocks.js:866 -msgid "The Music keyboard block opens a piano keyboard that can be used to create notes." +#: js/utils/synthutils.js:124 +#.TRANS: simple monotone synthesizer +msgid "simple-4" msgstr "" -#: js/WidgetBlocks.js:910 -msgid "The Pitch staircase tool to is used to generate pitches from a given ratio." +#: js/utils/synthutils.js:162 +#.TRANS: musical instrument +msgid "taiko" msgstr "" -#: js/WidgetBlocks.js:917 -#.TRANS: generate a progressive sequence of pitches -msgid "pitch staircase" +#: js/blocks/ActionBlocks.js:58 +msgid "The Return block will return a value from an action." msgstr "" -#: js/WidgetBlocks.js:982 -msgid "The Rhythm Maker block opens a tool to create drum machines." +#: js/blocks/ActionBlocks.js:75 +msgid "return" msgstr "" -#: js/WidgetBlocks.js:1036 -msgid "G major scale" +#: js/blocks/ActionBlocks.js:128 +msgid "The Return to URL block will return a value to a webpage." msgstr "" -#: js/WidgetBlocks.js:1064 -msgid "C major scale" +#: js/blocks/ActionBlocks.js:145 +msgid "return to URL" msgstr "" -#: js/WidgetBlocks.js:1097 -msgid "The Phrase Maker block opens a tool to create musical phrases." +#: js/blocks/ActionBlocks.js:233 +#: js/blocks/ActionBlocks.js:290 +#: js/blocks/ActionBlocks.js:501 +#: js/blocks/ActionBlocks.js:688 +msgid "The Calculate block returns a value calculated by an action." msgstr "" -#: js/WidgetBlocks.js:1104 -#.TRANS: assigns pitch to a sequence of beats to generate a melody -msgid "phrase maker" +#: js/blocks/ActionBlocks.js:251 +#: js/blocks/ActionBlocks.js:517 +#: js/blocks/ActionBlocks.js:707 +msgid "calculate" msgstr "" -#: js/WidgetBlocks.js:1168 -msgid "You must have at least one pitch block and one rhythm block in the matrix." +#: js/blocks/ActionBlocks.js:376 +#: js/blocks/ActionBlocks.js:593 +#: js/blocks/ActionBlocks.js:942 +#: js/blocks/ActionBlocks.js:1389 +#.TRANS: do is the do something or take an action. +msgid "The Do block is used to initiate an action." msgstr "" -#: js/WidgetBlocks.js:1220 -msgid "The Status block opens a tool for inspecting the status of Music Blocks as it is running." +#: js/blocks/ActionBlocks.js:390 +#: js/blocks/ActionBlocks.js:610 +#: js/blocks/ActionBlocks.js:959 +#: js/blocks/ActionBlocks.js:1048 +#: js/blocks/MeterBlocks.js:769 +msgid "do1" msgstr "" -#: js/IntervalsBlocks.js:45 -msgid "set temperament" +#: js/blocks/ActionBlocks.js:390 +#: js/blocks/ActionBlocks.js:610 +#: js/blocks/ActionBlocks.js:959 +#: js/blocks/ActionBlocks.js:1048 +#: js/blocks/FlowBlocks.js:742 +#: js/blocks/FlowBlocks.js:822 +#: js/blocks/MeterBlocks.js:769 +msgid "do" msgstr "" -#: js/IntervalsBlocks.js:63 -#: js/MediaBlocks.js:746 -#: js/PitchBlocks.js:657 -#: js/PitchBlocks.js:933 -#: js/PitchBlocks.js:972 -#: js/PitchBlocks.js:1005 -#: js/PitchBlocks.js:1166 -#: js/PitchBlocks.js:1679 -#: js/PitchBlocks.js:1720 -#: js/PitchBlocks.js:1827 -#: js/ToneBlocks.js:1025 -#.TRANS: adjusts the shift up or down by one octave (twelve half-steps in the interval between two notes, one having twice or half the frequency in Hz of the other.) -msgid "octave" +#: js/blocks/ActionBlocks.js:791 +#: js/blocks/ActionBlocks.js:865 +msgid "The Arg block contains the value of an argument passed to an action." msgstr "" -#: js/IntervalsBlocks.js:99 -msgid "The Temperament name block is used to select a tuning method." +#: js/blocks/ActionBlocks.js:806 +#: js/blocks/ActionBlocks.js:878 +msgid "arg" msgstr "" -#: js/IntervalsBlocks.js:161 -msgid "doubly" +#: js/blocks/ActionBlocks.js:836 +#: js/blocks/ActionBlocks.js:900 +#: js/blocks/ActionBlocks.js:908 +msgid "Invalid argument" msgstr "" -#: js/IntervalsBlocks.js:166 -msgid "The Doubly block will double the size of an interval." +#: js/blocks/ActionBlocks.js:944 +msgid "In the example, it is used with the One of block to choose a random phase." msgstr "" -#: js/IntervalsBlocks.js:262 -msgid "interval number" +#: js/blocks/ActionBlocks.js:1019 +#: js/blocks/ActionBlocks.js:1026 +msgid "The Listen block is used to listen for an event such as a mouse click." msgstr "" -#: js/IntervalsBlocks.js:330 -#.TRANS: measure the distance between two pitches in semi-tones -msgid "semi-tone interval measure" +#: js/blocks/ActionBlocks.js:1028 +msgid "When the event happens, an action is taken." msgstr "" -#: js/IntervalsBlocks.js:397 -#: js/IntervalsBlocks.js:513 -msgid "You must use two pitch blocks when measuring an interval." +#: js/blocks/ActionBlocks.js:1045 +msgid "on" msgstr "" -#: js/IntervalsBlocks.js:439 -msgid "The Scalar interval block measures the distance between two notes in the current key and mode." +#: js/blocks/ActionBlocks.js:1048 +#: js/blocks/ActionBlocks.js:1049 +#: js/blocks/ActionBlocks.js:1153 +msgid "event" msgstr "" -#: js/IntervalsBlocks.js:445 -#.TRANS: measure the distance between two pitches in steps of musical scale -msgid "scalar interval measure" +#: js/blocks/ActionBlocks.js:1133 +msgid "The Broadcast block is used to trigger an event." msgstr "" -#: js/IntervalsBlocks.js:592 -#: js/musicutils.js:637 -#: js/musicutils.js:908 -#.TRANS: perfect is a music term related to intervals -msgid "perfect" +#: js/blocks/ActionBlocks.js:1151 +msgid "broadcast" msgstr "" -#: js/IntervalsBlocks.js:621 -msgid "In the figure, we add sol# to sol." +#: js/blocks/ActionBlocks.js:1208 +msgid "Each Start block is a separate voice." msgstr "" -#: js/IntervalsBlocks.js:627 -#: js/OrnamentBlocks.js:220 -#.TRANS: calculate a relative step between notes based on semi-tones -msgid "semi-tone interval" +#: js/blocks/ActionBlocks.js:1304 +msgid "It is often used for storing a phrase of music that is repeated." msgstr "" -#: js/IntervalsBlocks.js:676 -msgid "The output of the example is: do, mi, sol, sol, ti, mi" +#: js/blocks/ActionBlocks.js:1495 +msgid "define temperament" msgstr "" -#: js/IntervalsBlocks.js:735 -msgid "The Chord block calculates common chords." +#: js/blocks/BooleanBlocks.js:44 +msgid "The Not block is the logical not operator." msgstr "" -#: js/IntervalsBlocks.js:737 -msgid "In the figure, we generate a C-major chord." +#: js/blocks/BooleanBlocks.js:62 +msgid "not" msgstr "" -#: js/IntervalsBlocks.js:742 -msgid "chord" +#: js/blocks/BooleanBlocks.js:134 +msgid "The And block is the logical and operator." msgstr "" -#: js/IntervalsBlocks.js:794 -msgid "The Ratio Interval block calculates an interval based on a ratio." +#: js/blocks/BooleanBlocks.js:152 +msgid "and" msgstr "" -#: js/IntervalsBlocks.js:799 -msgid "ratio interval" +#: js/blocks/BooleanBlocks.js:218 +msgid "The Or block is the logical or operator." msgstr "" -#: js/IntervalsBlocks.js:868 -msgid "In the figure, we add la to sol." +#: js/blocks/BooleanBlocks.js:236 +msgid "or" msgstr "" -#: js/IntervalsBlocks.js:924 -#.TRANS: define a custom mode -msgid "define mode" +#: js/blocks/BooleanBlocks.js:302 +msgid "The XOR block is the logical XOR operator." msgstr "" -#: js/IntervalsBlocks.js:977 -msgid "movable Do" +#: js/blocks/BooleanBlocks.js:320 +msgid "xor" msgstr "" -#: js/IntervalsBlocks.js:1028 -#.TRANS: mode length is the number of notes in the mode, e.g., 7 for major and minor scales; 12 for chromatic scales -msgid "mode length" +#: js/blocks/BooleanBlocks.js:808 +msgid "The Equal block returns True if the two numbers are equal." msgstr "" -#: js/IntervalsBlocks.js:1037 -msgid "The Mode length block is the number of notes in the current scale." +#: js/blocks/BooleanBlocks.js:909 +msgid "The Not-equal-to block returns True if the two numbers are not equal to each other." msgstr "" -#: js/IntervalsBlocks.js:1039 -msgid "Most Western scales have 7 notes." +#: js/blocks/BooleanBlocks.js:1008 +msgid "The Boolean block is used to specify true or false." msgstr "" -#: js/IntervalsBlocks.js:1088 -#.TRANS: the mode in music is 'major', 'minor', etc. -msgid "current mode" +#: js/blocks/BoxesBlocks.js:53 +#: js/blocks/BoxesBlocks.js:59 +msgid "The Add-to block is used to add to the value stored in a box." msgstr "" -#: js/IntervalsBlocks.js:1141 -#.TRANS: the key is a group of pitches with which a music composition is created -msgid "current key" +#: js/blocks/BoxesBlocks.js:61 +msgid "It can also be used with other blocks such as Color and Pen size." msgstr "" -#: js/IntervalsBlocks.js:1193 -#: js/IntervalsBlocks.js:1238 -#.TRANS: set the key and mode, e.g. C Major -msgid "set key" +#: js/blocks/BoxesBlocks.js:73 +msgid "add" msgstr "" -#: js/IntervalsBlocks.js:1247 -#: js/IntervalsBlocks.js:1253 -msgid "The Set key block is used to set the key and mode," +#: js/blocks/BoxesBlocks.js:75 +#: js/widgets/temperament.js:857 +msgid "to" msgstr "" -#: js/IntervalsBlocks.js:1253 -msgid "eg C Major" +#: js/blocks/BoxesBlocks.js:75 +#: js/blocks/BoxesBlocks.js:595 +#: js/blocks/HeapBlocks.js:544 +msgid "value1" msgstr "" -#: js/IntervalsBlocks.js:1266 -#: js/DictBlocks.js:215 -#: js/DictBlocks.js:216 -#: js/DictBlocks.js:289 -#: js/DictBlocks.js:290 -#: js/DictBlocks.js:357 -#: js/DictBlocks.js:430 -#: js/DictBlocks.js:431 -#.TRANS: key, e.g., C in C Major -msgid "key" +#: js/blocks/BoxesBlocks.js:118 +msgid "Block does not support incrementing." msgstr "" -#: js/ActionBlocks.js:58 -msgid "The Return block will return a value from an action." +#: js/blocks/BoxesBlocks.js:152 +msgid "The Add-1-to block adds one to the value stored in a box." msgstr "" -#: js/ActionBlocks.js:75 -msgid "return" +#: js/blocks/BoxesBlocks.js:163 +msgid "add 1 to" msgstr "" -#: js/ActionBlocks.js:128 -msgid "The Return to URL block will return a value to a webpage." +#: js/blocks/BoxesBlocks.js:211 +msgid "The Subtract-1-from block subtracts one from the value stored in a box." msgstr "" -#: js/ActionBlocks.js:145 -msgid "return to URL" +#: js/blocks/BoxesBlocks.js:222 +msgid "subtract 1 from" msgstr "" -#: js/ActionBlocks.js:233 -#: js/ActionBlocks.js:290 -#: js/ActionBlocks.js:501 -#: js/ActionBlocks.js:688 -msgid "The Calculate block returns a value calculated by an action." +#: js/blocks/BoxesBlocks.js:270 +#: js/blocks/BoxesBlocks.js:387 +msgid "The Box block returns the value stored in a box." msgstr "" -#: js/ActionBlocks.js:251 -#: js/ActionBlocks.js:517 -#: js/ActionBlocks.js:707 -msgid "calculate" +#: js/blocks/BoxesBlocks.js:500 +#: js/blocks/BoxesBlocks.js:576 +msgid "The Store in block will store a value in a box." msgstr "" -#: js/ActionBlocks.js:376 -#: js/ActionBlocks.js:593 -#: js/ActionBlocks.js:942 -#: js/ActionBlocks.js:1389 -#.TRANS: do is the do something or take an action. -msgid "The Do block is used to initiate an action." +#: js/blocks/BoxesBlocks.js:595 +#: js/blocks/EnsembleBlocks.js:391 +#: js/blocks/EnsembleBlocks.js:402 +msgid "name1" msgstr "" -#: js/ActionBlocks.js:390 -#: js/ActionBlocks.js:610 -#: js/ActionBlocks.js:959 -#: js/ActionBlocks.js:1048 -#: js/MeterBlocks.js:769 -msgid "do1" +#: js/blocks/BoxesBlocks.js:652 +msgid "The Box2 block returns the value stored in Box2." msgstr "" -#: js/ActionBlocks.js:390 -#: js/ActionBlocks.js:610 -#: js/ActionBlocks.js:959 -#: js/ActionBlocks.js:1048 -#: js/FlowBlocks.js:742 -#: js/FlowBlocks.js:822 -#: js/MeterBlocks.js:769 -msgid "do" +#: js/blocks/BoxesBlocks.js:703 +msgid "The Store in Box2 block is used to store a value in Box2." msgstr "" -#: js/ActionBlocks.js:791 -#: js/ActionBlocks.js:865 -msgid "The Arg block contains the value of an argument passed to an action." +#: js/blocks/BoxesBlocks.js:715 +msgid "store in box2" msgstr "" -#: js/ActionBlocks.js:806 -#: js/ActionBlocks.js:878 -msgid "arg" +#: js/blocks/BoxesBlocks.js:761 +msgid "The Box1 block returns the value stored in Box1." msgstr "" -#: js/ActionBlocks.js:836 -#: js/ActionBlocks.js:900 -#: js/ActionBlocks.js:908 -msgid "Invalid argument" +#: js/blocks/BoxesBlocks.js:812 +msgid "The Store in Box1 block is used to store a value in Box1." msgstr "" -#: js/ActionBlocks.js:944 -msgid "In the example, it is used with the One of block to choose a random phase." +#: js/blocks/BoxesBlocks.js:826 +msgid "store in box1" msgstr "" -#: js/ActionBlocks.js:1019 -#: js/ActionBlocks.js:1026 -msgid "The Listen block is used to listen for an event such as a mouse click." +#: js/blocks/DictBlocks.js:77 +msgid "show dictionary" msgstr "" -#: js/ActionBlocks.js:1028 -msgid "When the event happens, an action is taken." +#: js/blocks/DictBlocks.js:80 +#: js/blocks/DictBlocks.js:145 +#: js/blocks/DictBlocks.js:216 +#: js/blocks/DictBlocks.js:290 +#: js/blocks/ProgramBlocks.js:396 +#: js/blocks/ProgramBlocks.js:501 +#: js/blocks/ProgramBlocks.js:664 +msgid "My Dictionary" msgstr "" -#: js/ActionBlocks.js:1045 -msgid "on" +#: js/blocks/DictBlocks.js:129 +msgid "The Dictionary block returns a dictionary." msgstr "" -#: js/ActionBlocks.js:1048 -#: js/ActionBlocks.js:1049 -#: js/ActionBlocks.js:1153 -msgid "event" +#: js/blocks/DictBlocks.js:197 +#: js/blocks/DictBlocks.js:339 +msgid "The Get-dict block returns a value in the dictionary for a specified key." msgstr "" -#: js/ActionBlocks.js:1133 -msgid "The Broadcast block is used to trigger an event." +#: js/blocks/DictBlocks.js:212 +#: js/blocks/DictBlocks.js:354 +#.TRANS: retrieve a value from the dictionary with a given key +msgid "get value" msgstr "" -#: js/ActionBlocks.js:1151 -msgid "broadcast" +#: js/blocks/DictBlocks.js:215 +#: js/blocks/DictBlocks.js:216 +#: js/blocks/DictBlocks.js:289 +#: js/blocks/DictBlocks.js:290 +#: js/blocks/DictBlocks.js:357 +#: js/blocks/DictBlocks.js:430 +#: js/blocks/DictBlocks.js:431 +msgid "key2" msgstr "" -#: js/ActionBlocks.js:1208 -msgid "Each Start block is a separate voice." +#: js/blocks/DictBlocks.js:215 +#: js/blocks/DictBlocks.js:216 +#: js/blocks/DictBlocks.js:289 +#: js/blocks/DictBlocks.js:290 +#: js/blocks/DictBlocks.js:357 +#: js/blocks/DictBlocks.js:430 +#: js/blocks/DictBlocks.js:431 +#: js/blocks/IntervalsBlocks.js:1462 +#.TRANS: key, e.g., C in C Major +msgid "key" msgstr "" -#: js/ActionBlocks.js:1304 -msgid "It is often used for storing a phrase of music that is repeated." +#: js/blocks/DictBlocks.js:271 +#: js/blocks/DictBlocks.js:411 +msgid "The Set-dict block sets a value in the dictionary for a specified key." msgstr "" -#: js/ActionBlocks.js:1495 -msgid "define temperament" +#: js/blocks/DictBlocks.js:286 +#: js/blocks/DictBlocks.js:427 +#.TRANS: set a value in the dictionary for a given key +msgid "set value" msgstr "" -#: js/EnsembleBlocks.js:66 +#: js/blocks/EnsembleBlocks.js:66 msgid "mouse index heap" msgstr "" -#: js/EnsembleBlocks.js:68 +#: js/blocks/EnsembleBlocks.js:68 msgid "The Mouse index heap block returns a value in the heap at a specified location for a specified mouse." msgstr "" -#: js/EnsembleBlocks.js:77 -#: js/EnsembleBlocks.js:1080 +#: js/blocks/EnsembleBlocks.js:77 +#: js/blocks/EnsembleBlocks.js:1080 msgid "mouse name" msgstr "" -#: js/EnsembleBlocks.js:77 -#: js/EnsembleBlocks.js:92 -#: js/HeapBlocks.js:544 +#: js/blocks/EnsembleBlocks.js:77 +#: js/blocks/EnsembleBlocks.js:92 +#: js/blocks/HeapBlocks.js:544 #.TRANS: value1 is a numeric value (JAPANESE ONLY) msgid "index" msgstr "" -#: js/EnsembleBlocks.js:80 +#: js/blocks/EnsembleBlocks.js:80 msgid "turtle index heap" msgstr "" -#: js/EnsembleBlocks.js:82 +#: js/blocks/EnsembleBlocks.js:82 msgid "The Turtle index heap block returns a value in the heap at a specified location for a specified turtle." msgstr "" -#: js/EnsembleBlocks.js:90 -#: js/EnsembleBlocks.js:167 -#: js/EnsembleBlocks.js:230 -#: js/EnsembleBlocks.js:316 -#: js/EnsembleBlocks.js:362 -#: js/EnsembleBlocks.js:400 -#: js/EnsembleBlocks.js:454 -#: js/EnsembleBlocks.js:504 -#: js/EnsembleBlocks.js:550 -#: js/EnsembleBlocks.js:597 -#: js/EnsembleBlocks.js:651 -#: js/EnsembleBlocks.js:763 -#: js/EnsembleBlocks.js:854 -#: js/EnsembleBlocks.js:915 -#: js/EnsembleBlocks.js:955 -#: js/EnsembleBlocks.js:1219 -#: js/EnsembleBlocks.js:1293 +#: js/blocks/EnsembleBlocks.js:90 +#: js/blocks/EnsembleBlocks.js:167 +#: js/blocks/EnsembleBlocks.js:230 +#: js/blocks/EnsembleBlocks.js:316 +#: js/blocks/EnsembleBlocks.js:362 +#: js/blocks/EnsembleBlocks.js:400 +#: js/blocks/EnsembleBlocks.js:454 +#: js/blocks/EnsembleBlocks.js:504 +#: js/blocks/EnsembleBlocks.js:550 +#: js/blocks/EnsembleBlocks.js:597 +#: js/blocks/EnsembleBlocks.js:651 +#: js/blocks/EnsembleBlocks.js:763 +#: js/blocks/EnsembleBlocks.js:854 +#: js/blocks/EnsembleBlocks.js:915 +#: js/blocks/EnsembleBlocks.js:955 +#: js/blocks/EnsembleBlocks.js:1219 +#: js/blocks/EnsembleBlocks.js:1293 #.TRANS: Yertle is the name of a turtle. msgid "Yertle" msgstr "" -#: js/EnsembleBlocks.js:92 -#: js/EnsembleBlocks.js:1089 +#: js/blocks/EnsembleBlocks.js:92 +#: js/blocks/EnsembleBlocks.js:1089 msgid "turtle name" msgstr "" -#: js/EnsembleBlocks.js:122 -#: js/EnsembleBlocks.js:1197 -#: js/HeapBlocks.js:474 -#: js/HeapBlocks.js:572 +#: js/blocks/EnsembleBlocks.js:122 +#: js/blocks/EnsembleBlocks.js:1197 +#: js/blocks/HeapBlocks.js:474 +#: js/blocks/HeapBlocks.js:572 msgid "Index must be > 0." msgstr "" -#: js/EnsembleBlocks.js:127 -#: js/HeapBlocks.js:479 -#: js/HeapBlocks.js:577 +#: js/blocks/EnsembleBlocks.js:127 +#: js/blocks/HeapBlocks.js:479 +#: js/blocks/HeapBlocks.js:577 msgid "Maximum heap size is 1000." msgstr "" -#: js/EnsembleBlocks.js:145 +#: js/blocks/EnsembleBlocks.js:145 msgid "stop mouse" msgstr "" -#: js/EnsembleBlocks.js:147 +#: js/blocks/EnsembleBlocks.js:147 msgid "The Stop mouse block stops the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:158 +#: js/blocks/EnsembleBlocks.js:158 msgid "stop turtle" msgstr "" -#: js/EnsembleBlocks.js:160 +#: js/blocks/EnsembleBlocks.js:160 msgid "The Stop turtle block stops the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:184 -#: js/EnsembleBlocks.js:247 -#: js/EnsembleBlocks.js:413 -#: js/EnsembleBlocks.js:468 -#: js/EnsembleBlocks.js:706 -#: js/EnsembleBlocks.js:808 -#: js/EnsembleBlocks.js:870 -#: js/EnsembleBlocks.js:1190 -#: js/EnsembleBlocks.js:1253 +#: js/blocks/EnsembleBlocks.js:184 +#: js/blocks/EnsembleBlocks.js:247 +#: js/blocks/EnsembleBlocks.js:413 +#: js/blocks/EnsembleBlocks.js:468 +#: js/blocks/EnsembleBlocks.js:706 +#: js/blocks/EnsembleBlocks.js:808 +#: js/blocks/EnsembleBlocks.js:870 +#: js/blocks/EnsembleBlocks.js:1190 +#: js/blocks/EnsembleBlocks.js:1253 msgid "Cannot find mouse" msgstr "" -#: js/EnsembleBlocks.js:186 -#: js/EnsembleBlocks.js:249 -#: js/EnsembleBlocks.js:415 -#: js/EnsembleBlocks.js:470 -#: js/EnsembleBlocks.js:708 -#: js/EnsembleBlocks.js:810 -#: js/EnsembleBlocks.js:872 -#: js/EnsembleBlocks.js:1192 -#: js/EnsembleBlocks.js:1255 +#: js/blocks/EnsembleBlocks.js:186 +#: js/blocks/EnsembleBlocks.js:249 +#: js/blocks/EnsembleBlocks.js:415 +#: js/blocks/EnsembleBlocks.js:470 +#: js/blocks/EnsembleBlocks.js:708 +#: js/blocks/EnsembleBlocks.js:810 +#: js/blocks/EnsembleBlocks.js:872 +#: js/blocks/EnsembleBlocks.js:1192 +#: js/blocks/EnsembleBlocks.js:1255 msgid "Cannot find turtle" msgstr "" -#: js/EnsembleBlocks.js:206 +#: js/blocks/EnsembleBlocks.js:206 msgid "start mouse" msgstr "" -#: js/EnsembleBlocks.js:209 +#: js/blocks/EnsembleBlocks.js:209 msgid "The Start mouse block starts the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:220 +#: js/blocks/EnsembleBlocks.js:220 msgid "start turtle" msgstr "" -#: js/EnsembleBlocks.js:223 +#: js/blocks/EnsembleBlocks.js:223 msgid "The Start turtle block starts the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:256 +#: js/blocks/EnsembleBlocks.js:256 msgid "Mouse is already running." msgstr "" -#: js/EnsembleBlocks.js:258 +#: js/blocks/EnsembleBlocks.js:258 msgid "Turtle is already running." msgstr "" -#: js/EnsembleBlocks.js:282 +#: js/blocks/EnsembleBlocks.js:282 msgid "Cannot find start block" msgstr "" -#: js/EnsembleBlocks.js:292 +#: js/blocks/EnsembleBlocks.js:292 #.TRANS: pen color for this mouse msgid "mouse color" msgstr "" -#: js/EnsembleBlocks.js:294 +#: js/blocks/EnsembleBlocks.js:294 msgid "The Mouse color block returns the pen color of the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:306 +#: js/blocks/EnsembleBlocks.js:306 #.TRANS: pen color for this turtle msgid "turtle color" msgstr "" -#: js/EnsembleBlocks.js:308 +#: js/blocks/EnsembleBlocks.js:308 msgid "The Turtle color block returns the pen color of the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:338 +#: js/blocks/EnsembleBlocks.js:338 #.TRANS: heading (compass direction) for this mouse msgid "mouse heading" msgstr "" -#: js/EnsembleBlocks.js:340 +#: js/blocks/EnsembleBlocks.js:340 msgid "The Mouse heading block returns the heading of the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:352 +#: js/blocks/EnsembleBlocks.js:352 #.TRANS: heading (compass direction) for this turtle msgid "turtle heading" msgstr "" -#: js/EnsembleBlocks.js:354 +#: js/blocks/EnsembleBlocks.js:354 msgid "The Turtle heading block returns the heading of the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:384 -#: js/EnsembleBlocks.js:439 +#: js/blocks/EnsembleBlocks.js:384 +#: js/blocks/EnsembleBlocks.js:439 #.TRANS: set xy position for this mouse msgid "set mouse" msgstr "" -#: js/EnsembleBlocks.js:391 -#: js/EnsembleBlocks.js:402 -#: js/BoxesBlocks.js:595 -msgid "name1" -msgstr "" - -#: js/EnsembleBlocks.js:391 -#: js/EnsembleBlocks.js:402 -#: js/ProgramBlocks.js:881 -#: js/GraphicsBlocks.js:235 -#: js/GraphicsBlocks.js:313 -#: js/GraphicsBlocks.js:436 -#: js/GraphicsBlocks.js:487 -#: js/GraphicsBlocks.js:534 -#: js/GraphicsBlocks.js:750 +#: js/blocks/EnsembleBlocks.js:391 +#: js/blocks/EnsembleBlocks.js:402 +#: js/blocks/GraphicsBlocks.js:235 +#: js/blocks/GraphicsBlocks.js:313 +#: js/blocks/GraphicsBlocks.js:436 +#: js/blocks/GraphicsBlocks.js:487 +#: js/blocks/GraphicsBlocks.js:534 +#: js/blocks/GraphicsBlocks.js:750 +#: js/blocks/ProgramBlocks.js:881 msgid "x" msgstr "" -#: js/EnsembleBlocks.js:391 -#: js/EnsembleBlocks.js:402 -#: js/ProgramBlocks.js:881 -#: js/GraphicsBlocks.js:149 -#: js/GraphicsBlocks.js:313 -#: js/GraphicsBlocks.js:436 -#: js/GraphicsBlocks.js:487 -#: js/GraphicsBlocks.js:534 -#: js/GraphicsBlocks.js:750 +#: js/blocks/EnsembleBlocks.js:391 +#: js/blocks/EnsembleBlocks.js:402 +#: js/blocks/GraphicsBlocks.js:149 +#: js/blocks/GraphicsBlocks.js:313 +#: js/blocks/GraphicsBlocks.js:436 +#: js/blocks/GraphicsBlocks.js:487 +#: js/blocks/GraphicsBlocks.js:534 +#: js/blocks/GraphicsBlocks.js:750 +#: js/blocks/ProgramBlocks.js:881 msgid "y" msgstr "" -#: js/EnsembleBlocks.js:395 -#: js/EnsembleBlocks.js:452 +#: js/blocks/EnsembleBlocks.js:395 +#: js/blocks/EnsembleBlocks.js:452 #.TRANS: set xy position for this turtle msgid "set turtle" msgstr "" -#: js/EnsembleBlocks.js:433 +#: js/blocks/EnsembleBlocks.js:433 msgid "The Set mouse block sends a stack of blocks to be run by the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:446 +#: js/blocks/EnsembleBlocks.js:446 msgid "The Set turtle block sends a stack of blocks to be run by the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:480 +#: js/blocks/EnsembleBlocks.js:480 #.TRANS: y position for this mouse msgid "mouse y" msgstr "" -#: js/EnsembleBlocks.js:482 +#: js/blocks/EnsembleBlocks.js:482 msgid "The Y mouse block returns the Y position of the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:494 +#: js/blocks/EnsembleBlocks.js:494 #.TRANS: y position for this turtle msgid "turtle y" msgstr "" -#: js/EnsembleBlocks.js:496 +#: js/blocks/EnsembleBlocks.js:496 msgid "The Y turtle block returns the Y position of the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:526 +#: js/blocks/EnsembleBlocks.js:526 #.TRANS: x position for this mouse msgid "mouse x" msgstr "" -#: js/EnsembleBlocks.js:528 +#: js/blocks/EnsembleBlocks.js:528 msgid "The X mouse block returns the X position of the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:540 +#: js/blocks/EnsembleBlocks.js:540 #.TRANS: x position for this turtle msgid "turtle x" msgstr "" -#: js/EnsembleBlocks.js:542 +#: js/blocks/EnsembleBlocks.js:542 msgid "The X turtle block returns the X position of the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:573 +#: js/blocks/EnsembleBlocks.js:573 #.TRANS: notes played by this mouse msgid "mouse notes played" msgstr "" -#: js/EnsembleBlocks.js:575 +#: js/blocks/EnsembleBlocks.js:575 msgid "The Mouse elapse notes block returns the number of notes played by the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:587 +#: js/blocks/EnsembleBlocks.js:587 #.TRANS: notes played by this turtle msgid "turtle notes played" msgstr "" -#: js/EnsembleBlocks.js:589 +#: js/blocks/EnsembleBlocks.js:589 msgid "The Turtle elapse notes block returns the number of notes played by the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:627 +#: js/blocks/EnsembleBlocks.js:627 #.TRANS: convert current note for this turtle to piano key (1-88) msgid "mouse pitch number" msgstr "" -#: js/EnsembleBlocks.js:629 +#: js/blocks/EnsembleBlocks.js:629 msgid "The Mouse pitch block returns the current pitch number being played by the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:641 +#: js/blocks/EnsembleBlocks.js:641 #.TRANS: convert current note for this turtle to piano key (1-88) msgid "turtle pitch number" msgstr "" -#: js/EnsembleBlocks.js:643 -msgid "The Turrle pitch block returns the current pitch number being played by the specified turtle." +#: js/blocks/EnsembleBlocks.js:643 +msgid "The Turtle pitch block returns the current pitch number being played by the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:747 -#: js/EnsembleBlocks.js:819 +#: js/blocks/EnsembleBlocks.js:747 +#: js/blocks/EnsembleBlocks.js:819 #.TRANS: note value is the duration of the note played by this mouse msgid "mouse note value" msgstr "" -#: js/EnsembleBlocks.js:757 +#: js/blocks/EnsembleBlocks.js:757 #.TRANS: note value is the duration of the note played by this turtle msgid "turtle note value" msgstr "" -#: js/EnsembleBlocks.js:830 +#: js/blocks/EnsembleBlocks.js:830 #.TRANS: sync is short for synchronization msgid "mouse sync" msgstr "" -#: js/EnsembleBlocks.js:832 +#: js/blocks/EnsembleBlocks.js:832 msgid "The Mouse sync block aligns the beat count between mice." msgstr "" -#: js/EnsembleBlocks.js:844 +#: js/blocks/EnsembleBlocks.js:844 #.TRANS: sync is short for synchronization msgid "turtle sync" msgstr "" -#: js/EnsembleBlocks.js:846 +#: js/blocks/EnsembleBlocks.js:846 msgid "The Turtle sync block aligns the beat count between turtles." msgstr "" -#: js/EnsembleBlocks.js:887 +#: js/blocks/EnsembleBlocks.js:887 msgid "The Found mouse block will return true if the specified mouse can be found." msgstr "" -#: js/EnsembleBlocks.js:893 +#: js/blocks/EnsembleBlocks.js:893 msgid "found mouse" msgstr "" -#: js/EnsembleBlocks.js:903 +#: js/blocks/EnsembleBlocks.js:903 msgid "The Found turtle block will return true if the specified turtle can be found." msgstr "" -#: js/EnsembleBlocks.js:909 +#: js/blocks/EnsembleBlocks.js:909 msgid "found turtle" msgstr "" -#: js/EnsembleBlocks.js:932 +#: js/blocks/EnsembleBlocks.js:932 msgid "new mouse" msgstr "" -#: js/EnsembleBlocks.js:934 +#: js/blocks/EnsembleBlocks.js:934 msgid "The New mouse block will create a new mouse." msgstr "" -#: js/EnsembleBlocks.js:945 +#: js/blocks/EnsembleBlocks.js:945 msgid "new turtle" msgstr "" -#: js/EnsembleBlocks.js:947 +#: js/blocks/EnsembleBlocks.js:947 msgid "The New turtle block will create a new turtle." msgstr "" -#: js/EnsembleBlocks.js:1011 +#: js/blocks/EnsembleBlocks.js:1011 msgid "set mouse color" msgstr "" -#: js/EnsembleBlocks.js:1014 +#: js/blocks/EnsembleBlocks.js:1014 msgid "The Set-mouse-color block is used to set the color of a mouse." msgstr "" -#: js/EnsembleBlocks.js:1020 +#: js/blocks/EnsembleBlocks.js:1020 msgid "set turtle color" msgstr "" -#: js/EnsembleBlocks.js:1023 +#: js/blocks/EnsembleBlocks.js:1023 msgid "The Set-turtle-color block is used to set the color of a turtle." msgstr "" -#: js/EnsembleBlocks.js:1083 +#: js/blocks/EnsembleBlocks.js:1083 msgid "The Mouse-name block returns the name of a mouse." msgstr "" -#: js/EnsembleBlocks.js:1092 +#: js/blocks/EnsembleBlocks.js:1092 msgid "The Turtle-name block returns the name of a turtle." msgstr "" -#: js/EnsembleBlocks.js:1115 +#: js/blocks/EnsembleBlocks.js:1115 msgid "mouse count" msgstr "" -#: js/EnsembleBlocks.js:1118 +#: js/blocks/EnsembleBlocks.js:1118 msgid "The Mouse-count block returns the number of mice." msgstr "" -#: js/EnsembleBlocks.js:1124 +#: js/blocks/EnsembleBlocks.js:1124 msgid "turtle count" msgstr "" -#: js/EnsembleBlocks.js:1127 +#: js/blocks/EnsembleBlocks.js:1127 msgid "The Turtle-count block returns the number of turtles." msgstr "" -#: js/EnsembleBlocks.js:1149 +#: js/blocks/EnsembleBlocks.js:1149 msgid "nth mouse name" msgstr "" -#: js/EnsembleBlocks.js:1152 +#: js/blocks/EnsembleBlocks.js:1152 msgid "The Nth-Mouse name block returns the name of the nth mouse." msgstr "" -#: js/EnsembleBlocks.js:1158 +#: js/blocks/EnsembleBlocks.js:1158 msgid "nth turtle name" msgstr "" -#: js/EnsembleBlocks.js:1161 +#: js/blocks/EnsembleBlocks.js:1161 msgid "The Nth-Turtle name block returns the name of the nth turtle." msgstr "" -#: js/EnsembleBlocks.js:1205 -#: js/EnsembleBlocks.js:1265 +#: js/blocks/EnsembleBlocks.js:1205 +#: js/blocks/EnsembleBlocks.js:1265 msgid "set name" msgstr "" -#: js/EnsembleBlocks.js:1214 -#: js/EnsembleBlocks.js:1221 +#: js/blocks/EnsembleBlocks.js:1214 +#: js/blocks/EnsembleBlocks.js:1221 msgid "source" msgstr "" -#: js/EnsembleBlocks.js:1214 -#: js/EnsembleBlocks.js:1221 +#: js/blocks/EnsembleBlocks.js:1214 +#: js/blocks/EnsembleBlocks.js:1221 msgid "target" msgstr "" -#: js/EnsembleBlocks.js:1271 +#: js/blocks/EnsembleBlocks.js:1271 msgid "The Set-name block is used to name a mouse." msgstr "" -#: js/EnsembleBlocks.js:1284 +#: js/blocks/EnsembleBlocks.js:1284 msgid "The Set-name block is used to name a turtle." msgstr "" -#: js/BooleanBlocks.js:44 -msgid "The Not block is the logical not operator." -msgstr "" - -#: js/BooleanBlocks.js:62 -msgid "not" -msgstr "" - -#: js/BooleanBlocks.js:134 -msgid "The And block is the logical and operator." -msgstr "" - -#: js/BooleanBlocks.js:152 -msgid "and" -msgstr "" - -#: js/BooleanBlocks.js:218 -msgid "The Or block is the logical or operator." -msgstr "" - -#: js/BooleanBlocks.js:236 -msgid "or" -msgstr "" - -#: js/BooleanBlocks.js:302 -msgid "The XOR block is the logical XOR operator." -msgstr "" - -#: js/BooleanBlocks.js:320 -msgid "xor" -msgstr "" - -#: js/BooleanBlocks.js:808 -msgid "The Equal block returns True if the two numbers are equal." -msgstr "" - -#: js/BooleanBlocks.js:909 -msgid "The Not-equal-to block returns True if the two numbers are not equal to each other." -msgstr "" - -#: js/BooleanBlocks.js:1008 -msgid "The Boolean block is used to specify true or false." -msgstr "" - -#: js/MediaBlocks.js:35 -#.TRANS: right side of the screen -msgid "right (screen)" -msgstr "" - -#: js/MediaBlocks.js:45 -#: js/MediaBlocks.js:56 -msgid "The Right block returns the position of the right of the canvas." -msgstr "" - -#: js/MediaBlocks.js:97 -#.TRANS: left side of the screen -msgid "left (screen)" -msgstr "" - -#: js/MediaBlocks.js:107 -#: js/MediaBlocks.js:118 -msgid "The Left block returns the position of the left of the canvas." -msgstr "" - -#: js/MediaBlocks.js:158 -msgid "top (screen)" -msgstr "" - -#: js/MediaBlocks.js:168 -#: js/MediaBlocks.js:179 -msgid "The Top block returns the position of the top of the canvas." -msgstr "" - -#: js/MediaBlocks.js:219 -msgid "bottom (screen)" +#: js/blocks/ExtrasBlocks.js:33 +msgid "fraction" msgstr "" -#: js/MediaBlocks.js:229 -#: js/MediaBlocks.js:240 -msgid "The Bottom block returns the position of the bottom of the canvas." +#: js/blocks/ExtrasBlocks.js:36 +msgid "Convert a float to a fraction" msgstr "" -#: js/MediaBlocks.js:282 -msgid "width" +#: js/blocks/ExtrasBlocks.js:93 +msgid "save as ABC" msgstr "" -#: js/MediaBlocks.js:291 -msgid "The Width block returns the width of the canvas." +#: js/blocks/ExtrasBlocks.js:96 +#: js/blocks/ExtrasBlocks.js:132 +#: js/blocks/ExtrasBlocks.js:168 +msgid "title" msgstr "" -#: js/MediaBlocks.js:325 -msgid "height" +#: js/blocks/ExtrasBlocks.js:129 +msgid "save as Lilypond" msgstr "" -#: js/MediaBlocks.js:334 -msgid "The Height block returns the height of the canvas." +#: js/blocks/ExtrasBlocks.js:165 +msgid "save as SVG" msgstr "" -#: js/MediaBlocks.js:369 -#.TRANS: stops playback of an audio recording -msgid "stop play" +#: js/blocks/ExtrasBlocks.js:216 +msgid "no background" msgstr "" -#: js/MediaBlocks.js:404 -#.TRANS: Erases the images and text -msgid "erase media" +#: js/blocks/ExtrasBlocks.js:219 +msgid "The No background block eliminates the background from the saved SVG output." msgstr "" -#: js/MediaBlocks.js:409 -msgid "The Erase Media block erases text and images." +#: js/blocks/ExtrasBlocks.js:247 +msgid "show blocks" msgstr "" -#: js/MediaBlocks.js:439 -#.TRANS: play an audio recording -msgid "play back" +#: js/blocks/ExtrasBlocks.js:249 +msgid "The Show blocks block shows the blocks." msgstr "" -#: js/MediaBlocks.js:487 -msgid "speak" +#: js/blocks/ExtrasBlocks.js:274 +msgid "hide blocks" msgstr "" -#: js/MediaBlocks.js:495 -msgid "The Speak block outputs to the text-to-speech synthesizer" +#: js/blocks/ExtrasBlocks.js:276 +msgid "The Hide blocks block hides the blocks." msgstr "" -#: js/MediaBlocks.js:546 -msgid "camera" +#: js/blocks/ExtrasBlocks.js:305 +#: js/blocks/ExtrasBlocks.js:338 +msgid "The Space block is used to add space between blocks." msgstr "" -#: js/MediaBlocks.js:551 -msgid "The Camera block connects a webcam to the Show block." +#: js/blocks/ExtrasBlocks.js:376 +msgid "wait" msgstr "" -#: js/MediaBlocks.js:574 -msgid "video" +#: js/blocks/ExtrasBlocks.js:379 +msgid "The Wait block pauses the program for a specified number of seconds." msgstr "" -#: js/MediaBlocks.js:579 -msgid "The Video block selects video for use with the Show block." +#: js/blocks/ExtrasBlocks.js:433 +#: plugins/facebook.rtp:30 +msgid "comment" msgstr "" -#: js/MediaBlocks.js:607 -msgid "The Open file block opens a file for use with the Show block." +#: js/blocks/ExtrasBlocks.js:469 +msgid "print" msgstr "" -#: js/MediaBlocks.js:645 -msgid "stop media" +#: js/blocks/ExtrasBlocks.js:476 +msgid "The Print block displays text at the top of the screen." msgstr "" -#: js/MediaBlocks.js:650 -msgid "The Stop media block stops audio or video playback." +#: js/blocks/ExtrasBlocks.js:582 +msgid "display grid" msgstr "" -#: js/MediaBlocks.js:679 -#: js/PitchBlocks.js:1539 -#: js/phrasemaker.js:822 -#: js/musickeyboard.js:1654 -#.TRANS: a measure of frequency: one cycle per second -msgid "hertz" +#: js/blocks/ExtrasBlocks.js:587 +msgid "The Display Grid Block changes the grid type" msgstr "" -#: js/MediaBlocks.js:692 -msgid "duration (ms)" +#: js/blocks/ExtrasBlocks.js:689 +#: js/blocks/ExtrasBlocks.js:708 +#: js/blocks/ExtrasBlocks.js:731 +#: js/blocks/ExtrasBlocks.js:754 +#: js/blocks/ExtrasBlocks.js:772 +#: js/blocks/ExtrasBlocks.js:791 +#: js/blocks/ExtrasBlocks.js:810 +#: js/blocks/ExtrasBlocks.js:829 +msgid "unknown" msgstr "" -#: js/MediaBlocks.js:728 -#.TRANS: translate a note into hertz, e.g., A4 -> 440HZ -msgid "note to frequency" +#: js/blocks/FlowBlocks.js:41 +msgid "The Backward block runs code in reverse order (Musical retrograde)." msgstr "" -#: js/MediaBlocks.js:736 -msgid "The To frequency block converts a pitch name and octave to Hertz." +#: js/blocks/FlowBlocks.js:48 +msgid "backward" msgstr "" -#: js/MediaBlocks.js:746 -#: js/PitchBlocks.js:656 -#: js/PitchBlocks.js:932 -#: js/PitchBlocks.js:1827 -#.TRANS: name2 is name as in name of pitch (JAPANESE ONLY) -msgid "name2" +#: js/blocks/FlowBlocks.js:124 +msgid "The Duplicate block will run each block multiple times." msgstr "" -#: js/MediaBlocks.js:812 -msgid "The Avatar block is used to change the appearance of the mouse." +#: js/blocks/FlowBlocks.js:136 +msgid "duplicate" msgstr "" -#: js/MediaBlocks.js:819 -msgid "The Avatar block is used to change the appearance of the turtle." +#: js/blocks/FlowBlocks.js:334 +msgid "The Default block is used inside of a Switch to define the default action." msgstr "" -#: js/MediaBlocks.js:831 -#: js/MediaBlocks.js:891 -#.TRANS: a media object -msgid "size" +#: js/blocks/FlowBlocks.js:342 +msgid "default" msgstr "" -#: js/MediaBlocks.js:831 -msgid "image" +#: js/blocks/FlowBlocks.js:361 +#: js/blocks/FlowBlocks.js:418 +msgid "The Case Block must be used inside of a Switch Block." msgstr "" -#: js/MediaBlocks.js:880 -msgid "The Show block is used to display text or images on the canvas." +#: js/blocks/FlowBlocks.js:389 +msgid "The Case block is used inside of a Switch to define matches." msgstr "" -#: js/MediaBlocks.js:888 -#.TRANS: show1 is show as in display an image or text on the screen. -msgid "show1" +#: js/blocks/FlowBlocks.js:397 +msgid "case" msgstr "" -#: js/MediaBlocks.js:891 -msgid "obj" +#: js/blocks/FlowBlocks.js:446 +msgid "The Switch block will run the code in the matching Case." msgstr "" -#: js/MediaBlocks.js:938 -msgid "The Media block is used to import an image." +#: js/blocks/FlowBlocks.js:454 +msgid "switch" msgstr "" -#: js/MediaBlocks.js:973 -msgid "The Text block holds a text string." +#: js/blocks/FlowBlocks.js:595 +msgid "The Stop block will stop a loop" msgstr "" -#: js/ProgramBlocks.js:33 -msgid "The Load-heap-from-app block loads the heap from a web page." +#: js/blocks/FlowBlocks.js:597 +msgid "Forever, Repeat, While, or Until." msgstr "" -#: js/ProgramBlocks.js:44 -#.TRANS: load the heap contents from a URL -msgid "load heap from App" +#: js/blocks/FlowBlocks.js:604 +#: js/widgets/timbre.js:417 +#: js/widgets/timbre.js:419 +#: js/widgets/musickeyboard.js:819 +#: js/widgets/musickeyboard.js:821 +#: js/widgets/phrasemaker.js:4202 +#: plugins/rodi.rtp:29 +#: plugins/rodi.rtp:73 +#: plugins/rodi.rtp:413 +msgid "stop" msgstr "" -#: js/ProgramBlocks.js:95 -msgid "Error parsing JSON data:" +#: js/blocks/FlowBlocks.js:653 +msgid "The Waitfor block will wait until the condition is true." msgstr "" -#: js/ProgramBlocks.js:100 -msgid "404: Page not found" +#: js/blocks/FlowBlocks.js:661 +msgid "wait for" msgstr "" -#: js/ProgramBlocks.js:133 -msgid "The Save-heap-to-app block saves the heap to a web page." +#: js/blocks/FlowBlocks.js:732 +msgid "The Until block will repeat until the condition is true." msgstr "" -#: js/ProgramBlocks.js:144 -#.TRANS: save the heap contents to a URL -msgid "save heap to App" +#: js/blocks/FlowBlocks.js:740 +msgid "until" msgstr "" -#: js/ProgramBlocks.js:189 -msgid "Cannot find a valid heap for" +#: js/blocks/FlowBlocks.js:742 +#: js/blocks/FlowBlocks.js:822 +msgid "do2" msgstr "" -#: js/ProgramBlocks.js:206 -msgid "The Load-heap block loads the heap from a file." +#: js/blocks/FlowBlocks.js:812 +msgid "The While block will repeat while the condition is true." msgstr "" -#: js/ProgramBlocks.js:217 -#.TRANS: load the heap from a file -msgid "load heap" +#: js/blocks/FlowBlocks.js:820 +msgid "while" msgstr "" -#: js/ProgramBlocks.js:270 -msgid "The file you selected does not contain a valid heap." +#: js/blocks/FlowBlocks.js:903 +#: js/blocks/FlowBlocks.js:968 +#: js/blocks/FlowBlocks.js:979 +msgid "In this example if the mouse button is pressed a snare drum will play." msgstr "" -#: js/ProgramBlocks.js:275 -msgid "The loadHeap block needs a loadFile block." +#: js/blocks/FlowBlocks.js:925 +#: js/blocks/FlowBlocks.js:988 +msgid "if" msgstr "" -#: js/ProgramBlocks.js:291 -msgid "The Set-heap block loads the heap." +#: js/blocks/FlowBlocks.js:927 +#: js/blocks/FlowBlocks.js:990 +msgid "then" msgstr "" -#: js/ProgramBlocks.js:299 -#: js/HeapBlocks.js:539 -#.TRANS: load the heap from a JSON encoding -msgid "set heap" +#: js/blocks/FlowBlocks.js:927 +msgid "else" msgstr "" -#: js/ProgramBlocks.js:340 -msgid "The block you selected does not contain a valid heap." +#: js/blocks/FlowBlocks.js:1025 +msgid "The Forever block will repeat the contained blocks forever." msgstr "" -#: js/ProgramBlocks.js:343 -msgid "The Set heap block needs a heap." +#: js/blocks/FlowBlocks.js:1037 +msgid "forever" msgstr "" -#: js/ProgramBlocks.js:360 -msgid "The Load-dictionary block loads a dictionary from a file." +#: js/blocks/FlowBlocks.js:1073 +msgid "The Repeat block will repeat the contained blocks." msgstr "" -#: js/ProgramBlocks.js:372 -#.TRANS: load a dictionary from a file -msgid "load dictionary" +#: js/blocks/FlowBlocks.js:1075 +msgid "In this example the note will be played 4 times." msgstr "" -#: js/ProgramBlocks.js:390 -#: js/ProgramBlocks.js:658 -#: js/ToneBlocks.js:1025 -msgid "file" +#: js/blocks/FlowBlocks.js:1083 +msgid "repeat" msgstr "" -#: js/ProgramBlocks.js:396 -#: js/ProgramBlocks.js:501 -#: js/ProgramBlocks.js:664 -#: js/DictBlocks.js:80 -#: js/DictBlocks.js:145 -#: js/DictBlocks.js:216 -#: js/DictBlocks.js:290 -msgid "My Dictionary" +#: js/blocks/FlowBlocks.js:1123 +msgid "duplicate factor" msgstr "" -#: js/ProgramBlocks.js:444 -msgid "The file you selected does not contain a valid dictionary." +#: js/blocks/HeapBlocks.js:49 +msgid "The Heap block returns the heap." msgstr "" -#: js/ProgramBlocks.js:449 -msgid "The load dictionary block needs a load file block." +#: js/blocks/HeapBlocks.js:133 +msgid "show heap" msgstr "" -#: js/ProgramBlocks.js:466 -msgid "The Set-dictionary block loads a dictionary." +#: js/blocks/HeapBlocks.js:181 +msgid "The Heap-length block returns the length of the heap." msgstr "" -#: js/ProgramBlocks.js:477 -#.TRANS: load a dictionary from a JSON -msgid "set dictionary" +#: js/blocks/HeapBlocks.js:195 +msgid "heap length" msgstr "" -#: js/ProgramBlocks.js:546 -msgid "The block you selected does not contain a valid dictionary." +#: js/blocks/HeapBlocks.js:254 +msgid "The Heap-empty? block returns true if the heap is empty." msgstr "" -#: js/ProgramBlocks.js:550 -msgid "The set dictionary block needs a dictionary." +#: js/blocks/HeapBlocks.js:268 +#.TRANS: Is the heap empty? +msgid "heap empty?" msgstr "" -#: js/ProgramBlocks.js:567 -msgid "The Save-heap block saves the heap to a file." +#: js/blocks/HeapBlocks.js:317 +msgid "The Empty-heap block empties the heap." msgstr "" -#: js/ProgramBlocks.js:578 -#.TRANS: save the heap to a file -msgid "save heap" +#: js/blocks/HeapBlocks.js:327 +#: js/blocks/HeapBlocks.js:647 +#.TRANS: empty the heap +msgid "empty heap" msgstr "" -#: js/ProgramBlocks.js:629 -msgid "The Save-dictionary block saves a dictionary to a file." +#: js/blocks/HeapBlocks.js:371 +msgid "The Reverse-heap block reverses the order of the heap." msgstr "" -#: js/ProgramBlocks.js:640 -#.TRANS: save a dictionary to a file -msgid "save dictionary" +#: js/blocks/HeapBlocks.js:384 +#.TRANS: reverse the order of the heap +msgid "reverse heap" msgstr "" -#: js/ProgramBlocks.js:720 -msgid "The Open palette block opens a palette." +#: js/blocks/HeapBlocks.js:428 +msgid "The Index-heap block returns a value in the heap at a specified location." msgstr "" -#: js/ProgramBlocks.js:727 -msgid "open palette" +#: js/blocks/HeapBlocks.js:443 +#.TRANS: retrieve a value from the heap at index position in the heap +msgid "index heap" msgstr "" -#: js/ProgramBlocks.js:785 -msgid "The Delete block block removes a block." +#: js/blocks/HeapBlocks.js:523 +msgid "The Set-heap entry block sets a value in he heap at the specified location." msgstr "" -#: js/ProgramBlocks.js:797 -#.TRANS: Move this block to the trash. -msgid "delete block" +#: js/blocks/HeapBlocks.js:539 +#: js/blocks/ProgramBlocks.js:299 +#.TRANS: load the heap from a JSON encoding +msgid "set heap" msgstr "" -#: js/ProgramBlocks.js:861 -msgid "The Move block block moves a block." +#: js/blocks/HeapBlocks.js:619 +msgid "The Pop block removes the value at the top of the heap." msgstr "" -#: js/ProgramBlocks.js:869 -#.TRANS: Move the position of a block on the screen. -msgid "move block" +#: js/blocks/HeapBlocks.js:633 +#.TRANS: pop a value off the top of the heap +msgid "pop" msgstr "" -#: js/ProgramBlocks.js:881 -#: js/ProgramBlocks.js:1048 -msgid "block number" +#: js/blocks/HeapBlocks.js:680 +msgid "The Push block adds a value to the top of the heap." msgstr "" -#: js/ProgramBlocks.js:935 -#.TRANS: Run program beginning at this block. -msgid "run block" +#: js/blocks/HeapBlocks.js:696 +#.TRANS: push a value onto the top of the heap +msgid "push" msgstr "" -#: js/ProgramBlocks.js:1025 -msgid "The Dock block block connections two blocks." +#: js/blocks/IntervalsBlocks.js:45 +msgid "set temperament" msgstr "" -#: js/ProgramBlocks.js:1036 -#.TRANS: We can connect a block to another block. -msgid "connect blocks" +#: js/blocks/IntervalsBlocks.js:63 +#: js/blocks/MediaBlocks.js:746 +#: js/blocks/PitchBlocks.js:657 +#: js/blocks/PitchBlocks.js:935 +#: js/blocks/PitchBlocks.js:974 +#: js/blocks/PitchBlocks.js:1007 +#: js/blocks/PitchBlocks.js:1194 +#: js/blocks/PitchBlocks.js:1717 +#: js/blocks/PitchBlocks.js:1758 +#: js/blocks/PitchBlocks.js:1866 +#: js/blocks/ToneBlocks.js:1025 +#: js/turtleactions/IntervalsActions.js:114 +#.TRANS: adjusts the shift up or down by one octave (twelve half-steps in the interval between two notes, one having twice or half the frequency in Hz of the other.) +msgid "octave" msgstr "" -#: js/ProgramBlocks.js:1048 -msgid "target block" +#: js/blocks/IntervalsBlocks.js:99 +msgid "The Temperament name block is used to select a tuning method." msgstr "" -#: js/ProgramBlocks.js:1048 -msgid "connection number" +#: js/blocks/IntervalsBlocks.js:161 +msgid "doubly" msgstr "" -#: js/ProgramBlocks.js:1140 -msgid "The Make block block creates a new block." +#: js/blocks/IntervalsBlocks.js:166 +msgid "The Doubly block will double the size of an interval." msgstr "" -#: js/ProgramBlocks.js:1152 -#.TRANS: Create a new block -msgid "make block" +#: js/blocks/IntervalsBlocks.js:262 +msgid "interval number" msgstr "" -#: js/ProgramBlocks.js:1186 -#: js/ProgramBlocks.js:1227 -#: js/RhythmBlocks.js:1128 -#: js/PitchBlocks.js:972 -#: js/PitchBlocks.js:1005 -#: js/temperament.js:340 -#: js/temperament.js:362 -#: js/temperament.js:372 -#: js/temperament.js:484 -#: js/status.js:190 -#: plugins/rodi.rtp:192 -#.TRANS: a musical note consisting of pitch and duration -msgid "note" +#: js/blocks/IntervalsBlocks.js:317 +msgid "current interval" msgstr "" -#: js/ProgramBlocks.js:1285 -msgid "Cannot find block" +#: js/blocks/IntervalsBlocks.js:387 +#.TRANS: measure the distance between two pitches in semi-tones +msgid "semi-tone interval measure" msgstr "" -#: js/ProgramBlocks.js:1304 -#: js/ProgramBlocks.js:1313 -msgid "Warning: block argument type mismatch" +#: js/blocks/IntervalsBlocks.js:454 +#: js/blocks/IntervalsBlocks.js:570 +msgid "You must use two pitch blocks when measuring an interval." msgstr "" -#: js/ProgramBlocks.js:1347 -msgid "The Open project block is used to open a project from a web page." +#: js/blocks/IntervalsBlocks.js:496 +msgid "The Scalar interval block measures the distance between two notes in the current key and mode." msgstr "" -#: js/ProgramBlocks.js:1357 -msgid "open project" +#: js/blocks/IntervalsBlocks.js:502 +#.TRANS: measure the distance between two pitches in steps of musical scale +msgid "scalar interval measure" msgstr "" -#: js/ProgramBlocks.js:1410 -msgid "Please enter a valid URL." +#: js/blocks/IntervalsBlocks.js:678 +msgid "In the figure, we add sol# to sol." msgstr "" -#: js/DrumBlocks.js:59 -msgid "The Noise name block is used to select a noise synthesizer." +#: js/blocks/IntervalsBlocks.js:684 +#: js/blocks/OrnamentBlocks.js:220 +#.TRANS: calculate a relative step between notes based on semi-tones +msgid "semi-tone interval" msgstr "" -#: js/DrumBlocks.js:102 -msgid "The Drum name block is used to select a drum." +#: js/blocks/IntervalsBlocks.js:733 +msgid "The output of the example is: do, mi, sol, sol, ti, mi" msgstr "" -#: js/DrumBlocks.js:146 -msgid "The Effects name block is used to select a sound effect." +#: js/blocks/IntervalsBlocks.js:740 +#: js/blocks/WidgetBlocks.js:768 +msgid "arpeggio" msgstr "" -#: js/DrumBlocks.js:163 -msgid "noise" +#: js/blocks/IntervalsBlocks.js:931 +msgid "The Chord block calculates common chords." msgstr "" -#: js/DrumBlocks.js:177 -msgid "The Play noise block will generate white, pink, or brown noise." +#: js/blocks/IntervalsBlocks.js:933 +msgid "In the figure, we generate a C-major chord." msgstr "" -#: js/DrumBlocks.js:191 -#: js/musicutils.js:752 -#: js/synthutils.js:47 -#.TRANS: white noise synthesizer -msgid "white noise" +#: js/blocks/IntervalsBlocks.js:938 +msgid "chord" msgstr "" -#: js/DrumBlocks.js:326 -msgid "Replace every instance of a pitch with a drum sound." +#: js/blocks/IntervalsBlocks.js:990 +msgid "The Ratio Interval block calculates an interval based on a ratio." msgstr "" -#: js/DrumBlocks.js:337 -#.TRANS: map a pitch to a drum sound -msgid "map pitch to drum" +#: js/blocks/IntervalsBlocks.js:995 +msgid "ratio interval" msgstr "" -#: js/DrumBlocks.js:404 -msgid "In the example above, a kick drum sound will be played instead of sol." +#: js/blocks/IntervalsBlocks.js:1064 +msgid "In the figure, we add la to sol." msgstr "" -#: js/DrumBlocks.js:416 -#.TRANS: set the current drum sound for playback -msgid "set drum" +#: js/blocks/IntervalsBlocks.js:1120 +#.TRANS: define a custom mode +msgid "define mode" msgstr "" -#: js/DrumBlocks.js:460 -msgid "sound effect" +#: js/blocks/IntervalsBlocks.js:1173 +msgid "movable Do" msgstr "" -#: js/DrumBlocks.js:498 -msgid "You can use multiple Drum blocks within a Note block." +#: js/blocks/IntervalsBlocks.js:1224 +#.TRANS: mode length is the number of notes in the mode, e.g., 7 for major and minor scales; 12 for chromatic scales +msgid "mode length" msgstr "" -#: js/RhythmBlocks.js:182 -#: js/RhythmBlocks.js:1086 -#: js/RhythmBlocks.js:1162 -msgid "Note value must be greater than 0." +#: js/blocks/IntervalsBlocks.js:1233 +msgid "The Mode length block is the number of notes in the current scale." msgstr "" -#: js/RhythmBlocks.js:215 -#: js/RhythmBlocks.js:278 -#: js/RhythmBlocks.js:350 -#.TRANS: swing is a rhythmic variation that emphasises the offbeat -msgid "swing" +#: js/blocks/IntervalsBlocks.js:1235 +msgid "Most Western scales have 7 notes." msgstr "" -#: js/RhythmBlocks.js:355 -#.TRANS: the amount to shift to the offbeat note -msgid "swing value" +#: js/blocks/IntervalsBlocks.js:1284 +#.TRANS: the mode in music is 'major', 'minor', etc. +msgid "current mode" msgstr "" -#: js/RhythmBlocks.js:419 -msgid "The Skip notes block will cause notes to be skipped." +#: js/blocks/IntervalsBlocks.js:1337 +#.TRANS: the key is a group of pitches with which a music composition is created +msgid "current key" msgstr "" -#: js/RhythmBlocks.js:427 -#.TRANS: substitute rests on notes being skipped -msgid "skip notes" +#: js/blocks/IntervalsBlocks.js:1389 +#: js/blocks/IntervalsBlocks.js:1434 +#.TRANS: set the key and mode, e.g. C Major +msgid "set key" msgstr "" -#: js/RhythmBlocks.js:489 -#.TRANS: speed up note duration by some factor, e.g. convert 1/4 to 1/8 notes by using a factor of 2 -msgid "multiply note value" +#: js/blocks/IntervalsBlocks.js:1443 +#: js/blocks/IntervalsBlocks.js:1449 +msgid "The Set key block is used to set the key and mode," msgstr "" -#: js/RhythmBlocks.js:542 -msgid "The Tie block works on pairs of notes, combining them into one note." +#: js/blocks/IntervalsBlocks.js:1449 +msgid "eg C Major" msgstr "" -#: js/RhythmBlocks.js:550 -#.TRANS: tie notes together into one longer note -msgid "tie" +#: js/blocks/MediaBlocks.js:35 +#.TRANS: right side of the screen +msgid "right (screen)" msgstr "" -#: js/RhythmBlocks.js:591 -#: js/RhythmBlocks.js:671 -#.TRANS: a dotted note is played for 1.5x its value, e.g., 1/8. --> 3/16 -msgid "dot" +#: js/blocks/MediaBlocks.js:45 +#: js/blocks/MediaBlocks.js:56 +msgid "The Right block returns the position of the right of the canvas." msgstr "" -#: js/RhythmBlocks.js:619 -#: js/RhythmActions.js:221 -msgid "An argument of -1 results in a note value of 0." +#: js/blocks/MediaBlocks.js:97 +#.TRANS: left side of the screen +msgid "left (screen)" msgstr "" -#: js/RhythmBlocks.js:661 -msgid "The Dot block extends the duration of a note by 50%." +#: js/blocks/MediaBlocks.js:107 +#: js/blocks/MediaBlocks.js:118 +msgid "The Left block returns the position of the left of the canvas." msgstr "" -#: js/RhythmBlocks.js:663 -msgid "Eg a dotted quarter note will play for 3/8 (1/4 + 1/8) of a beat." +#: js/blocks/MediaBlocks.js:158 +msgid "top (screen)" msgstr "" -#: js/RhythmBlocks.js:765 -#.TRANS: Japanese only: note value block for drum -msgid "note value drum" +#: js/blocks/MediaBlocks.js:168 +#: js/blocks/MediaBlocks.js:179 +msgid "The Top block returns the position of the top of the canvas." msgstr "" -#: js/RhythmBlocks.js:829 -msgid "392 hertz" +#: js/blocks/MediaBlocks.js:219 +msgid "bottom (screen)" msgstr "" -#: js/RhythmBlocks.js:1119 -msgid "The Note block is a container for one or more Pitch blocks." +#: js/blocks/MediaBlocks.js:229 +#: js/blocks/MediaBlocks.js:240 +msgid "The Bottom block returns the position of the bottom of the canvas." msgstr "" -#: js/RhythmBlocks.js:1121 -msgid "The Note block specifies the duration (note value) of its contents." +#: js/blocks/MediaBlocks.js:282 +msgid "width" msgstr "" -#: js/RhythmBlocks.js:1130 -msgid "value2" +#: js/blocks/MediaBlocks.js:291 +msgid "The Width block returns the width of the canvas." msgstr "" -#: js/RhythmBlocks.js:1200 -msgid "define frequency" +#: js/blocks/MediaBlocks.js:325 +msgid "height" msgstr "" -#: js/RhythmBlocks.js:1218 -#: js/temperament.js:650 -#: js/temperament.js:1421 -msgid "octave space" +#: js/blocks/MediaBlocks.js:334 +msgid "The Height block returns the height of the canvas." msgstr "" -#: js/NumberBlocks.js:28 -msgid "The Int block returns an integer." +#: js/blocks/MediaBlocks.js:369 +#.TRANS: stops playback of an audio recording +msgid "stop play" msgstr "" -#: js/NumberBlocks.js:34 -msgid "int" +#: js/blocks/MediaBlocks.js:404 +#.TRANS: Erases the images and text +msgid "erase media" msgstr "" -#: js/NumberBlocks.js:73 -msgid "The Mod block returns the remainder from a division." +#: js/blocks/MediaBlocks.js:409 +msgid "The Erase Media block erases text and images." msgstr "" -#: js/NumberBlocks.js:79 -msgid "mod" +#: js/blocks/MediaBlocks.js:439 +#.TRANS: play an audio recording +msgid "play back" msgstr "" -#: js/NumberBlocks.js:123 -msgid "The Power block calculates a power function." +#: js/blocks/MediaBlocks.js:487 +msgid "speak" msgstr "" -#: js/NumberBlocks.js:178 -msgid "The Sqrt block returns the square root." +#: js/blocks/MediaBlocks.js:495 +msgid "The Speak block outputs to the text-to-speech synthesizer" msgstr "" -#: js/NumberBlocks.js:184 -msgid "sqrt" +#: js/blocks/MediaBlocks.js:546 +msgid "camera" msgstr "" -#: js/NumberBlocks.js:230 -msgid "The Abs block returns the absolute value." +#: js/blocks/MediaBlocks.js:551 +msgid "The Camera block connects a webcam to the Show block." msgstr "" -#: js/NumberBlocks.js:236 -msgid "abs" +#: js/blocks/MediaBlocks.js:574 +msgid "video" msgstr "" -#: js/NumberBlocks.js:277 -msgid "The Distance block returns the distance between two points. For example, between the mouse and the center of the screen." +#: js/blocks/MediaBlocks.js:579 +msgid "The Video block selects video for use with the Show block." msgstr "" -#: js/NumberBlocks.js:283 -#: plugins/rodi.rtp:310 -msgid "distance" +#: js/blocks/MediaBlocks.js:607 +msgid "The Open file block opens a file for use with the Show block." msgstr "" -#: js/NumberBlocks.js:343 -msgid "The Divide block is used to divide." +#: js/blocks/MediaBlocks.js:645 +msgid "stop media" msgstr "" -#: js/NumberBlocks.js:411 -msgid "The Multiply block is used to multiply." +#: js/blocks/MediaBlocks.js:650 +msgid "The Stop media block stops audio or video playback." msgstr "" -#: js/NumberBlocks.js:554 -msgid "The Minus block is used to subtract." +#: js/blocks/MediaBlocks.js:679 +#: js/blocks/PitchBlocks.js:1577 +#: js/widgets/musickeyboard.js:1936 +#: js/widgets/phrasemaker.js:1037 +#.TRANS: a measure of frequency: one cycle per second +msgid "hertz" msgstr "" -#: js/NumberBlocks.js:647 -msgid "The Plus block is used to add." +#: js/blocks/MediaBlocks.js:692 +#: js/blocks/WidgetBlocks.js:182 +#: js/widgets/temperament.js:506 +#: js/widgets/temperament.js:546 +#: js/widgets/temperament.js:610 +#: js/widgets/temperament.js:618 +#: js/widgets/temperament.js:1505 +#: js/widgets/timbre.js:1842 +msgid "frequency" msgstr "" -#: js/NumberBlocks.js:773 -msgid "The One-of block returns one of two choices." +#: js/blocks/MediaBlocks.js:692 +msgid "duration (ms)" msgstr "" -#: js/NumberBlocks.js:780 -#: js/PitchBlocks.js:616 -msgid "one of" +#: js/blocks/MediaBlocks.js:728 +#.TRANS: translate a note into hertz, e.g., A4 -> 440HZ +msgid "note to frequency" msgstr "" -#: js/NumberBlocks.js:782 -msgid "this" +#: js/blocks/MediaBlocks.js:736 +msgid "The To frequency block converts a pitch name and octave to Hertz." msgstr "" -#: js/NumberBlocks.js:782 -msgid "that" +#: js/blocks/MediaBlocks.js:746 +#: js/blocks/PitchBlocks.js:656 +#: js/blocks/PitchBlocks.js:934 +#: js/blocks/PitchBlocks.js:1866 +#.TRANS: name2 is name as in name of pitch (JAPANESE ONLY) +msgid "name2" msgstr "" -#: js/NumberBlocks.js:837 -msgid "The Random block returns a random number." +#: js/blocks/MediaBlocks.js:812 +msgid "The Avatar block is used to change the appearance of the mouse." msgstr "" -#: js/NumberBlocks.js:844 -msgid "random" +#: js/blocks/MediaBlocks.js:819 +msgid "The Avatar block is used to change the appearance of the turtle." msgstr "" -#: js/NumberBlocks.js:846 -msgid "min" +#: js/blocks/MediaBlocks.js:831 +#: js/blocks/MediaBlocks.js:891 +#.TRANS: a media object +msgid "size" msgstr "" -#: js/NumberBlocks.js:846 -msgid "max" +#: js/blocks/MediaBlocks.js:831 +msgid "image" msgstr "" -#: js/NumberBlocks.js:910 -msgid "The Number block holds a number." +#: js/blocks/MediaBlocks.js:880 +msgid "The Show block is used to display text or images on the canvas." msgstr "" -#: js/BoxesBlocks.js:53 -#: js/BoxesBlocks.js:59 -msgid "The Add-to block is used to add to the value stored in a box." +#: js/blocks/MediaBlocks.js:888 +#.TRANS: show1 is show as in display an image or text on the screen. +msgid "show1" msgstr "" -#: js/BoxesBlocks.js:61 -msgid "It can also be used with other blocks such as Color and Pen size." +#: js/blocks/MediaBlocks.js:891 +msgid "obj" msgstr "" -#: js/BoxesBlocks.js:73 -msgid "add" +#: js/blocks/MediaBlocks.js:938 +msgid "The Media block is used to import an image." msgstr "" -#: js/BoxesBlocks.js:75 -#: js/temperament.js:716 -msgid "to" +#: js/blocks/MediaBlocks.js:973 +msgid "The Text block holds a text string." msgstr "" -#: js/BoxesBlocks.js:75 -#: js/BoxesBlocks.js:595 -#: js/HeapBlocks.js:544 -msgid "value1" +#: js/blocks/MeterBlocks.js:34 +#.TRANS: musical meter (time signature), e.g., 4:4 +msgid "current meter" msgstr "" -#: js/BoxesBlocks.js:118 -msgid "Block does not support incrementing." +#: js/blocks/MeterBlocks.js:85 +#.TRANS: number of beats per minute +msgid "beat factor" msgstr "" -#: js/BoxesBlocks.js:152 -msgid "The Add-1-to block adds one to the value stored in a box." +#: js/blocks/MeterBlocks.js:161 +msgid "The Beats per minute block returns the current beats per minute." msgstr "" -#: js/BoxesBlocks.js:163 -msgid "add 1 to" +#: js/blocks/MeterBlocks.js:169 +#: js/widgets/status.js:152 +#.TRANS: number of beats played per minute +msgid "beats per minute2" msgstr "" -#: js/BoxesBlocks.js:211 -msgid "The Subtract-1-from block subtracts one from the value stored in a box." +#: js/blocks/MeterBlocks.js:169 +#: js/blocks/MeterBlocks.js:1056 +#: js/blocks/MeterBlocks.js:1133 +#: js/blocks/MeterBlocks.js:1211 +#.TRANS: sets tempo by defining a beat and beats per minute +msgid "beats per minute" msgstr "" -#: js/BoxesBlocks.js:222 -msgid "subtract 1 from" +#: js/blocks/MeterBlocks.js:233 +#.TRANS: count of current musical measure in meter +msgid "measure count" msgstr "" -#: js/BoxesBlocks.js:270 -#: js/BoxesBlocks.js:387 -msgid "The Box block returns the value stored in a box." +#: js/blocks/MeterBlocks.js:241 +msgid "The Measure count block returns the current measure." msgstr "" -#: js/BoxesBlocks.js:500 -#: js/BoxesBlocks.js:576 -msgid "The Store in block will store a value in a box." +#: js/blocks/MeterBlocks.js:290 +#.TRANS: count of current beat in the meter +msgid "beat count" msgstr "" -#: js/BoxesBlocks.js:652 -msgid "The Box2 block returns the value stored in Box2." +#: js/blocks/MeterBlocks.js:300 +#: js/blocks/MeterBlocks.js:311 +#: js/blocks/MeterBlocks.js:565 +#: js/blocks/MeterBlocks.js:576 +msgid "The Beat count block is the number of the current beat," msgstr "" -#: js/BoxesBlocks.js:703 -msgid "The Store in Box2 block is used to store a value in Box2." +#: js/blocks/MeterBlocks.js:313 +#: js/blocks/MeterBlocks.js:578 +msgid "eg 1, 2, 3, or 4." msgstr "" -#: js/BoxesBlocks.js:715 -msgid "store in box2" +#: js/blocks/MeterBlocks.js:368 +#.TRANS: count the number of notes +msgid "sum note values" msgstr "" -#: js/BoxesBlocks.js:761 -msgid "The Box1 block returns the value stored in Box1." +#: js/blocks/MeterBlocks.js:376 +#: js/blocks/MeterBlocks.js:440 +msgid "The Note counter block can be used to count the number of contained notes." msgstr "" -#: js/BoxesBlocks.js:812 -msgid "The Store in Box1 block is used to store a value in Box1." +#: js/blocks/MeterBlocks.js:432 +#.TRANS: count the number of notes +msgid "note counter" msgstr "" -#: js/BoxesBlocks.js:826 -msgid "store in box1" +#: js/blocks/MeterBlocks.js:496 +#.TRANS: number of whole notes that have been played +msgid "whole notes played" msgstr "" -#: js/HeapBlocks.js:49 -msgid "The Heap block returns the heap." +#: js/blocks/MeterBlocks.js:505 +msgid "The Whole notes played block returns the total number of whole notes played." msgstr "" -#: js/HeapBlocks.js:133 -msgid "show heap" +#: js/blocks/MeterBlocks.js:555 +#: js/turtleactions/DictActions.js:83 +#.TRANS: number of notes that have been played +msgid "notes played" msgstr "" -#: js/HeapBlocks.js:181 -msgid "The Heap-length block returns the length of the heap." +#: js/blocks/MeterBlocks.js:653 +msgid "The No clock block decouples the notes from the master clock." msgstr "" -#: js/HeapBlocks.js:195 -msgid "heap length" +#: js/blocks/MeterBlocks.js:661 +#.TRANS: don't lock notes to master clock +msgid "no clock" msgstr "" -#: js/HeapBlocks.js:254 -msgid "The Heap-empty? block returns true if the heap is empty." +#: js/blocks/MeterBlocks.js:700 +msgid "on weak beat do" msgstr "" -#: js/HeapBlocks.js:268 -#.TRANS: Is the heap empty? -msgid "heap empty?" +#: js/blocks/MeterBlocks.js:705 +msgid "The On-weak-beat block lets you specify actions to take on weak (off) beats." msgstr "" -#: js/HeapBlocks.js:317 -msgid "The Empty-heap block empties the heap." +#: js/blocks/MeterBlocks.js:750 +msgid "on strong beat" msgstr "" -#: js/HeapBlocks.js:327 -#: js/HeapBlocks.js:647 -#.TRANS: empty the heap -msgid "empty heap" +#: js/blocks/MeterBlocks.js:758 +msgid "The On-strong-beat block lets you specify actions to take on specified beats." msgstr "" -#: js/HeapBlocks.js:371 -msgid "The Reverse-heap block reverses the order of the heap." +#: js/blocks/MeterBlocks.js:769 +msgid "beat" msgstr "" -#: js/HeapBlocks.js:384 -#.TRANS: reverse the order of the heap -msgid "reverse heap" +#: js/blocks/MeterBlocks.js:813 +msgid "on every beat do" msgstr "" -#: js/HeapBlocks.js:428 -msgid "The Index-heap block returns a value in the heap at a specified location." +#: js/blocks/MeterBlocks.js:821 +msgid "The On-every-beat block lets you specify actions to take on every beat." msgstr "" -#: js/HeapBlocks.js:443 -#.TRANS: retrieve a value from the heap at index position in the heap -msgid "index heap" +#: js/blocks/MeterBlocks.js:874 +msgid "on every note do" msgstr "" -#: js/HeapBlocks.js:523 -msgid "The Set-heap entry block sets a value in he heap at the specified location." +#: js/blocks/MeterBlocks.js:882 +msgid "The On-every-note block lets you specify actions to take on every note." msgstr "" -#: js/HeapBlocks.js:619 -msgid "The Pop block removes the value at the top of the heap." +#: js/blocks/MeterBlocks.js:928 +#: js/blocks/MeterBlocks.js:999 +#.TRANS: sets tempo by defining a beat and beats per minute +msgid "master beats per minute" msgstr "" -#: js/HeapBlocks.js:633 -#.TRANS: pop a value off the top of the heap -msgid "pop" +#: js/blocks/MeterBlocks.js:952 +#: js/blocks/MeterBlocks.js:1078 +#: js/blocks/MeterBlocks.js:1135 +msgid "bpm" msgstr "" -#: js/HeapBlocks.js:680 -msgid "The Push block adds a value to the top of the heap." +#: js/blocks/MeterBlocks.js:952 +#: js/blocks/MeterBlocks.js:1078 +#: js/blocks/MeterBlocks.js:1135 +msgid "beat value" msgstr "" -#: js/HeapBlocks.js:696 -#.TRANS: push a value onto the top of the heap -msgid "push" +#: js/blocks/MeterBlocks.js:1024 +#: js/blocks/MeterBlocks.js:1167 +#: js/blocks/MeterBlocks.js:1241 +msgid "Beats per minute must be > 30." msgstr "" -#: js/FlowBlocks.js:41 -msgid "The Backward block runs code in reverse order (Musical retrograde)." +#: js/blocks/MeterBlocks.js:1027 +#: js/blocks/MeterBlocks.js:1170 +#: js/blocks/MeterBlocks.js:1244 +msgid "Maximum beats per minute is 1000." msgstr "" -#: js/FlowBlocks.js:48 -msgid "backward" +#: js/blocks/MeterBlocks.js:1068 +msgid "The Beats per minute block sets the number of 1/4 notes per minute." msgstr "" -#: js/FlowBlocks.js:124 -msgid "The Duplicate block will run each block multiple times." +#: js/blocks/MeterBlocks.js:1279 +#.TRANS: anacrusis +msgid "pickup" msgstr "" -#: js/FlowBlocks.js:136 -msgid "duplicate" +#: js/blocks/MeterBlocks.js:1367 +msgid "number of beats" msgstr "" -#: js/FlowBlocks.js:334 -msgid "The Default block is used inside of a Switch to define the default action." +#: js/blocks/NumberBlocks.js:28 +msgid "The Int block returns an integer." msgstr "" -#: js/FlowBlocks.js:342 -msgid "default" +#: js/blocks/NumberBlocks.js:34 +msgid "int" msgstr "" -#: js/FlowBlocks.js:361 -#: js/FlowBlocks.js:418 -msgid "The Case Block must be used inside of a Switch Block." +#: js/blocks/NumberBlocks.js:73 +msgid "The Mod block returns the remainder from a division." msgstr "" -#: js/FlowBlocks.js:389 -msgid "The Case block is used inside of a Switch to define matches." +#: js/blocks/NumberBlocks.js:79 +msgid "mod" msgstr "" -#: js/FlowBlocks.js:397 -msgid "case" +#: js/blocks/NumberBlocks.js:141 +msgid "The Power block calculates a power function." msgstr "" -#: js/FlowBlocks.js:446 -msgid "The Switch block will run the code in the matching Case." +#: js/blocks/NumberBlocks.js:196 +msgid "The Sqrt block returns the square root." msgstr "" -#: js/FlowBlocks.js:454 -msgid "switch" +#: js/blocks/NumberBlocks.js:202 +msgid "sqrt" msgstr "" -#: js/FlowBlocks.js:595 -msgid "The Stop block will stop a loop" +#: js/blocks/NumberBlocks.js:248 +msgid "The Abs block returns the absolute value." msgstr "" -#: js/FlowBlocks.js:597 -msgid "Forever, Repeat, While, or Until." +#: js/blocks/NumberBlocks.js:254 +msgid "abs" msgstr "" -#: js/FlowBlocks.js:604 -#: js/phrasemaker.js:3799 -#: js/musickeyboard.js:629 -#: js/musickeyboard.js:631 -#: js/timbre.js:417 -#: js/timbre.js:419 -#: plugins/rodi.rtp:29 -#: plugins/rodi.rtp:73 -#: plugins/rodi.rtp:413 -msgid "stop" +#: js/blocks/NumberBlocks.js:295 +msgid "The Distance block returns the distance between two points. For example, between the mouse and the center of the screen." msgstr "" -#: js/FlowBlocks.js:653 -msgid "The Waitfor block will wait until the condition is true." +#: js/blocks/NumberBlocks.js:301 +#: plugins/rodi.rtp:310 +msgid "distance" msgstr "" -#: js/FlowBlocks.js:661 -msgid "wait for" +#: js/blocks/NumberBlocks.js:361 +msgid "The Divide block is used to divide." msgstr "" -#: js/FlowBlocks.js:732 -msgid "The Until block will repeat until the condition is true." +#: js/blocks/NumberBlocks.js:441 +msgid "The Multiply block is used to multiply." msgstr "" -#: js/FlowBlocks.js:740 -msgid "until" +#: js/blocks/NumberBlocks.js:612 +msgid "The Minus block is used to subtract." msgstr "" -#: js/FlowBlocks.js:742 -#: js/FlowBlocks.js:822 -msgid "do2" +#: js/blocks/NumberBlocks.js:723 +msgid "The Plus block is used to add." msgstr "" -#: js/FlowBlocks.js:812 -msgid "The While block will repeat while the condition is true." +#: js/blocks/NumberBlocks.js:849 +msgid "The One-of block returns one of two choices." msgstr "" -#: js/FlowBlocks.js:820 -msgid "while" +#: js/blocks/NumberBlocks.js:856 +#: js/blocks/PitchBlocks.js:616 +msgid "one of" msgstr "" -#: js/FlowBlocks.js:903 -#: js/FlowBlocks.js:968 -#: js/FlowBlocks.js:979 -msgid "In this example if the mouse button is pressed a snare drum will play." +#: js/blocks/NumberBlocks.js:858 +msgid "this" msgstr "" -#: js/FlowBlocks.js:925 -#: js/FlowBlocks.js:988 -msgid "if" +#: js/blocks/NumberBlocks.js:858 +msgid "that" msgstr "" -#: js/FlowBlocks.js:927 -#: js/FlowBlocks.js:990 -msgid "then" +#: js/blocks/NumberBlocks.js:913 +msgid "The Random block returns a random number." msgstr "" -#: js/FlowBlocks.js:927 -msgid "else" +#: js/blocks/NumberBlocks.js:920 +msgid "random" msgstr "" -#: js/FlowBlocks.js:1025 -msgid "The Forever block will repeat the contained blocks forever." +#: js/blocks/NumberBlocks.js:922 +msgid "min" msgstr "" -#: js/FlowBlocks.js:1037 -msgid "forever" +#: js/blocks/NumberBlocks.js:922 +msgid "max" msgstr "" -#: js/FlowBlocks.js:1073 -msgid "The Repeat block will repeat the contained blocks." +#: js/blocks/NumberBlocks.js:986 +msgid "The Number block holds a number." msgstr "" -#: js/FlowBlocks.js:1075 -msgid "In this example the note will be played 4 times." +#: js/blocks/OrnamentBlocks.js:32 +msgid "staccato factor" msgstr "" -#: js/FlowBlocks.js:1083 -msgid "repeat" +#: js/blocks/OrnamentBlocks.js:108 +msgid "slur factor" msgstr "" -#: js/FlowBlocks.js:1123 -msgid "duplicate factor" +#: js/blocks/OrnamentBlocks.js:217 +#: js/blocks/OrnamentBlocks.js:309 +#.TRANS: the neighbor refers to a neighboring note, e.g., D is a neighbor of C +msgid "neighbor" msgstr "" -#: js/PitchBlocks.js:39 -#: js/musicutils.js:722 -#: js/musicutils.js:1117 -#: js/synthutils.js:112 -#.TRANS: square wave -msgid "square" +#: js/blocks/OrnamentBlocks.js:293 +msgid "The Neighbor block rapidly switches between neighboring pitches." msgstr "" -#: js/PitchBlocks.js:62 -#: js/ToneBlocks.js:39 -#: js/musicutils.js:723 -#: js/musicutils.js:1118 -#: js/synthutils.js:116 -#.TRANS: triangle wave -msgid "triangle" +#: js/blocks/OrnamentBlocks.js:364 +msgid "glide" msgstr "" -#: js/PitchBlocks.js:85 -#: js/musicutils.js:721 -#: js/musicutils.js:1116 -#: js/synthutils.js:110 -#.TRANS: sine wave -msgid "sine" +#: js/blocks/OrnamentBlocks.js:479 +#: js/blocks/OrnamentBlocks.js:643 +msgid "slur" msgstr "" -#: js/PitchBlocks.js:108 -#: js/musicutils.js:724 -#: js/musicutils.js:1119 -#: js/synthutils.js:114 -#.TRANS: sawtooth wave -msgid "sawtooth" +#: js/blocks/OrnamentBlocks.js:558 +#: js/blocks/OrnamentBlocks.js:710 +#.TRANS: play each note sharply detached from the others +msgid "staccato" msgstr "" -#: js/PitchBlocks.js:141 -#.TRANS: musical transposition (adjustment of pitch up or down) -msgid "transposition" +#: js/blocks/RhythmBlocks.js:182 +#: js/blocks/RhythmBlocks.js:1086 +#: js/blocks/RhythmBlocks.js:1162 +msgid "Note value must be greater than 0." msgstr "" -#: js/PitchBlocks.js:168 -#.TRANS: step down one note in current musical scale -msgid "scalar step down" +#: js/blocks/RhythmBlocks.js:215 +#: js/blocks/RhythmBlocks.js:278 +#: js/blocks/RhythmBlocks.js:350 +#.TRANS: swing is a rhythmic variation that emphasises the offbeat +msgid "swing" msgstr "" -#: js/PitchBlocks.js:172 -msgid "The Scalar step down block returns the number of semi-tones down to the previous note in the current key and mode." +#: js/blocks/RhythmBlocks.js:355 +#.TRANS: the amount to shift to the offbeat note +msgid "swing value" msgstr "" -#: js/PitchBlocks.js:190 -#.TRANS: step up one note in current musical scale -msgid "scalar step up" +#: js/blocks/RhythmBlocks.js:419 +msgid "The Skip notes block will cause notes to be skipped." msgstr "" -#: js/PitchBlocks.js:194 -msgid "The Scalar step up block returns the number of semi-tones up to the next note in the current key and mode." +#: js/blocks/RhythmBlocks.js:427 +#.TRANS: substitute rests on notes being skipped +msgid "skip notes" msgstr "" -#: js/PitchBlocks.js:212 -#.TRANS: the change measured in half-steps between the current pitch and the previous pitch -msgid "change in pitch" +#: js/blocks/RhythmBlocks.js:489 +#.TRANS: speed up note duration by some factor, e.g. convert 1/4 to 1/8 notes by using a factor of 2 +msgid "multiply note value" msgstr "" -#: js/PitchBlocks.js:216 -msgid "The Change in pitch block is the difference (in half steps) between the current pitch being played and the previous pitch played." +#: js/blocks/RhythmBlocks.js:542 +msgid "The Tie block works on pairs of notes, combining them into one note." msgstr "" -#: js/PitchBlocks.js:243 -#.TRANS: the change measured in scale-steps between the current pitch and the previous pitch -msgid "scalar change in pitch" +#: js/blocks/RhythmBlocks.js:550 +#.TRANS: tie notes together into one longer note +msgid "tie" msgstr "" -#: js/PitchBlocks.js:250 -#: js/PitchBlocks.js:432 -#: js/PitchBlocks.js:1629 -#: js/DictActions.js:89 -#: js/temperament.js:477 -#: js/temperament.js:481 -#: js/temperament.js:714 -#.TRANS: convert current note to piano key (1-88) -#.TRANS: a mapping of pitch to the 88 piano keys -msgid "pitch number" +#: js/blocks/RhythmBlocks.js:591 +#: js/blocks/RhythmBlocks.js:671 +#.TRANS: a dotted note is played for 1.5x its value, e.g., 1/8. --> 3/16 +msgid "dot" msgstr "" -#: js/PitchBlocks.js:256 -msgid "The Pitch number block is the value of the pitch of the note currently being played." +#: js/blocks/RhythmBlocks.js:619 +#: js/turtleactions/RhythmActions.js:221 +msgid "An argument of -1 results in a note value of 0." msgstr "" -#: js/PitchBlocks.js:329 -#: js/PitchBlocks.js:433 -#.TRANS: the current pitch expressed in Hertz -msgid "pitch in hertz" +#: js/blocks/RhythmBlocks.js:661 +msgid "The Dot block extends the duration of a note by 50%." msgstr "" -#: js/PitchBlocks.js:334 -msgid "The Pitch in Hertz block is the value in Hertz of the pitch of the note currently being played." +#: js/blocks/RhythmBlocks.js:663 +msgid "Eg a dotted quarter note will play for 3/8 (1/4 + 1/8) of a beat." msgstr "" -#: js/PitchBlocks.js:367 -#: js/DictActions.js:87 -msgid "current pitch" +#: js/blocks/RhythmBlocks.js:765 +#.TRANS: Japanese only: note value block for drum +msgid "note value drum" msgstr "" -#: js/PitchBlocks.js:373 -msgid "The Current Pitch block is used with the Pitch Converter block. In the example above, current pitch, sol 4, is displayed as 392 hertz." +#: js/blocks/RhythmBlocks.js:829 +msgid "392 hertz" msgstr "" -#: js/PitchBlocks.js:410 -msgid "This block converts the pitch value of the last note played into different formats such as hertz, letter name, pitch number, et al." +#: js/blocks/RhythmBlocks.js:1119 +msgid "The Note block is a container for one or more Pitch blocks." msgstr "" -#: js/PitchBlocks.js:434 -msgid "alphabet" +#: js/blocks/RhythmBlocks.js:1121 +msgid "The Note block specifies the duration (note value) of its contents." msgstr "" -#: js/PitchBlocks.js:436 -#.TRANS: Translate as "alphabet class" -msgid "letter class" +#: js/blocks/RhythmBlocks.js:1128 +#: js/blocks/PitchBlocks.js:974 +#: js/blocks/PitchBlocks.js:1007 +#: js/blocks/ProgramBlocks.js:1186 +#: js/blocks/ProgramBlocks.js:1227 +#: js/widgets/status.js:190 +#: js/widgets/temperament.js:464 +#: js/widgets/temperament.js:486 +#: js/widgets/temperament.js:496 +#: js/widgets/temperament.js:617 +#: plugins/rodi.rtp:192 +#.TRANS: a musical note consisting of pitch and duration +msgid "note" msgstr "" -#: js/PitchBlocks.js:437 -msgid "solfege class" +#: js/blocks/RhythmBlocks.js:1130 +msgid "value2" msgstr "" -#: js/PitchBlocks.js:438 -msgid "staff y" +#: js/blocks/RhythmBlocks.js:1200 +msgid "define frequency" msgstr "" -#: js/PitchBlocks.js:439 -msgid "solfege syllable" +#: js/blocks/RhythmBlocks.js:1218 +#: js/widgets/temperament.js:787 +#: js/widgets/temperament.js:1587 +msgid "octave space" msgstr "" -#: js/PitchBlocks.js:440 -msgid "pitch class" +#: js/blocks/SensorsBlocks.js:36 +msgid "The Input block prompts for keyboard input." msgstr "" -#: js/PitchBlocks.js:441 -msgid "scalar class" +#: js/blocks/SensorsBlocks.js:46 +msgid "input" msgstr "" -#: js/PitchBlocks.js:443 -msgid "nth degree" +#: js/blocks/SensorsBlocks.js:64 +msgid "Input a value" msgstr "" -#: js/PitchBlocks.js:444 -msgid "pitch to shade" +#: js/blocks/SensorsBlocks.js:126 +msgid "input value" msgstr "" -#: js/PitchBlocks.js:445 -msgid "pitch to color" +#: js/blocks/SensorsBlocks.js:131 +msgid "The Input-value block stores the input." msgstr "" -#: js/PitchBlocks.js:629 -#: js/musickeyboard.js:565 -#.TRANS: MIDI is a technical standard for electronic music -msgid "MIDI" +#: js/blocks/SensorsBlocks.js:238 +msgid "loudness" msgstr "" -#: js/PitchBlocks.js:642 -#.TRANS: set an offset associated with the numeric piano keyboard mapping -msgid "set pitch number offset" +#: js/blocks/SensorsBlocks.js:245 +msgid "The Loudness block returns the volume detected by the microphone." msgstr "" -#: js/PitchBlocks.js:645 -msgid "The Set pitch number offset block is used to set the offset for mapping pitch numbers to pitch and octave." +#: js/blocks/SensorsBlocks.js:300 +msgid "click" msgstr "" -#: js/PitchBlocks.js:679 -#.TRANS: convert piano key number (1-88) to pitch -msgid "number to pitch" +#: js/blocks/SensorsBlocks.js:306 +msgid "The Click block triggers an event if a mouse has been clicked." msgstr "" -#: js/PitchBlocks.js:682 -msgid "The Number to pitch block will convert a pitch number to a pich name." +#: js/blocks/SensorsBlocks.js:313 +msgid "The Click block triggers an event if a turtle has been clicked." msgstr "" -#: js/PitchBlocks.js:715 -#.TRANS: convert piano key number (1-88) to octave -msgid "number to octave" +#: js/blocks/SensorsBlocks.js:342 +msgid "cursor over" msgstr "" -#: js/PitchBlocks.js:717 -msgid "The Number to octave block will convert a pitch number to an octave." +#: js/blocks/SensorsBlocks.js:387 +msgid "cursor out" msgstr "" -#: js/PitchBlocks.js:726 -msgid "y to pitch" +#: js/blocks/SensorsBlocks.js:433 +msgid "cursor button down" msgstr "" -#: js/PitchBlocks.js:729 -msgid "Y to pitch block will convert a staff y position to corresponding pitch notation." +#: js/blocks/SensorsBlocks.js:477 +msgid "cursor button up" msgstr "" -#: js/PitchBlocks.js:841 -msgid "accidental selector" +#: js/blocks/SensorsBlocks.js:521 +#: js/blocks/PenBlocks.js:48 +#: plugins/rodi.rtp:219 +msgid "blue" msgstr "" -#: js/PitchBlocks.js:844 -msgid "The Accidental selector block is used to choose between double-sharp, sharp, natural, flat, and double-flat." +#: js/blocks/SensorsBlocks.js:577 +#: js/blocks/PenBlocks.js:64 +#: plugins/rodi.rtp:218 +msgid "green" msgstr "" -#: js/PitchBlocks.js:858 -msgid "Pitch can be specified in terms of ni dha pa ma ga re sa." +#: js/blocks/SensorsBlocks.js:633 +#: js/blocks/PenBlocks.js:112 +#: plugins/rodi.rtp:217 +msgid "red" msgstr "" -#: js/PitchBlocks.js:872 -msgid "Pitch can be specified in terms of C D E F G A B." +#: js/blocks/SensorsBlocks.js:638 +msgid "The Get red block returns the red component of the pixel under the mouse." msgstr "" -#: js/PitchBlocks.js:883 -msgid "solfege" +#: js/blocks/SensorsBlocks.js:644 +msgid "The Get red block returns the red component of the pixel under the turtle." msgstr "" -#: js/PitchBlocks.js:886 -msgid "Pitch can be specified in terms of do re mi fa sol la ti." +#: js/blocks/SensorsBlocks.js:685 +#: plugins/rodi.rtp:216 +msgid "pixel color" msgstr "" -#: js/PitchBlocks.js:920 -msgid "The Invert block rotates any contained notes around a target note." +#: js/blocks/SensorsBlocks.js:690 +msgid "The Get pixel block returns the color of the pixel under the mouse." msgstr "" -#: js/PitchBlocks.js:927 -#.TRANS: pitch inversion rotates a pitch around another pitch -msgid "invert" +#: js/blocks/SensorsBlocks.js:696 +msgid "The Get pixel block returns the color of the pixel under the turtle." msgstr "" -#: js/PitchBlocks.js:929 -#: js/PitchBlocks.js:935 -#: js/PitchActions.js:727 -#: js/musicutils.js:726 -#: js/musicutils.js:902 -#.TRANS: invert based on even or odd number or musical scale -#.TRANS: even numbers -msgid "even" +#: js/blocks/SensorsBlocks.js:758 +msgid "time" msgstr "" -#: js/PitchBlocks.js:935 -#: js/PitchActions.js:729 -#: js/musicutils.js:728 -#: js/musicutils.js:903 -#.TRANS: odd numbers -msgid "odd" +#: js/blocks/SensorsBlocks.js:804 +msgid "cursor y" msgstr "" -#: js/PitchBlocks.js:935 -#: js/PitchActions.js:731 -#: js/musicutils.js:729 -#: js/musicutils.js:904 -msgid "scalar" +#: js/blocks/SensorsBlocks.js:809 +msgid "The Cursor Y block returns the vertical position of the mouse." msgstr "" -#: js/PitchBlocks.js:966 -#.TRANS: pitch inversion rotates a pitch around another pitch (odd number) -msgid "invert (odd)" +#: js/blocks/SensorsBlocks.js:845 +msgid "cursor x" msgstr "" -#: js/PitchBlocks.js:999 -#.TRANS: pitch inversion rotates a pitch around another pitch (even number) -msgid "invert (even)" +#: js/blocks/SensorsBlocks.js:850 +msgid "The Cursor X block returns the horizontal position of the mouse." msgstr "" -#: js/PitchBlocks.js:1020 -#.TRANS: register is the octave of the current pitch -msgid "register" +#: js/blocks/SensorsBlocks.js:886 +msgid "mouse button" msgstr "" -#: js/PitchBlocks.js:1024 -msgid "The Register block provides an easy way to modify the register (octave) of the notes that follow it." +#: js/blocks/SensorsBlocks.js:888 +msgid "The Mouse-button block returns True if the mouse button is pressed." msgstr "" -#: js/PitchBlocks.js:1074 -msgid "The Semi-tone transposition block will shift the pitches contained inside Note blocks up (or down) by half steps." +#: js/blocks/SensorsBlocks.js:934 +msgid "to ASCII" msgstr "" -#: js/PitchBlocks.js:1076 -msgid "In the example shown above, sol is shifted up to sol#." +#: js/blocks/SensorsBlocks.js:938 +msgid "The To ASCII block converts numbers to letters." msgstr "" -#: js/PitchBlocks.js:1082 -#.TRANS: adjust the amount of shift (up or down) of a pitch -msgid "semi-tone transpose" +#: js/blocks/SensorsBlocks.js:1005 +msgid "The Keyboard block returns computer keyboard input." msgstr "" -#: js/PitchBlocks.js:1115 -msgid "The Transpose by Ratio block will shift the pitches contained inside Note blocks up (or down) by a ratio" +#: js/blocks/RhythmBlockPaletteBlocks.js:50 +#: js/blocks/RhythmBlockPaletteBlocks.js:233 +#.TRANS: rhythm block +#.TRANS: translate "rhythm1" as rhythm +msgid "rhythm1" msgstr "" -#: js/PitchBlocks.js:1121 -#.TRANS: adjust the amount of shift (up or down) of a pitch -msgid "transpose by ratio" +#: js/blocks/RhythmBlockPaletteBlocks.js:70 +#: js/blocks/RhythmBlockPaletteBlocks.js:252 +#: js/blocks/RhythmBlockPaletteBlocks.js:485 +#: js/blocks/RhythmBlockPaletteBlocks.js:554 +#: js/blocks/RhythmBlockPaletteBlocks.js:875 +msgid "number of notes" msgstr "" -#: js/PitchBlocks.js:1204 -#.TRANS: down sixth means the note is five scale degrees below current note -msgid "down sixth" +#: js/blocks/RhythmBlockPaletteBlocks.js:126 +msgid "polyphonic rhythm" msgstr "" -#: js/PitchBlocks.js:1223 -#.TRANS: down third means the note is two scale degrees below current note -msgid "down third" +#: js/blocks/RhythmBlockPaletteBlocks.js:219 +msgid "The Rhythm block is used to generate rhythm patterns." msgstr "" -#: js/PitchBlocks.js:1242 -#.TRANS: seventh means the note is the six scale degrees above current note -msgid "seventh" +#: js/blocks/RhythmBlockPaletteBlocks.js:280 +msgid "1/64 note" msgstr "" -#: js/PitchBlocks.js:1261 -#.TRANS: sixth means the note is the five scale degrees above current note -msgid "sixth" +#: js/blocks/RhythmBlockPaletteBlocks.js:304 +msgid "1/32 note" msgstr "" -#: js/PitchBlocks.js:1280 -#.TRANS: fifth means the note is the four scale degrees above current note -msgid "fifth" +#: js/blocks/RhythmBlockPaletteBlocks.js:332 +msgid "1/16 note" msgstr "" -#: js/PitchBlocks.js:1300 -#.TRANS: fourth means the note is three scale degrees above current note -msgid "fourth" +#: js/blocks/RhythmBlockPaletteBlocks.js:360 +msgid "eighth note" msgstr "" -#: js/PitchBlocks.js:1319 -#.TRANS: third means the note is two scale degrees above current note -msgid "third" +#: js/blocks/RhythmBlockPaletteBlocks.js:388 +msgid "quarter note" msgstr "" -#: js/PitchBlocks.js:1338 -#.TRANS: second means the note is one scale degree above current note -msgid "second" +#: js/blocks/RhythmBlockPaletteBlocks.js:416 +msgid "half note" msgstr "" -#: js/PitchBlocks.js:1379 -msgid "The Scalar transposition block will shift the pitches contained inside Note blocks up (or down) the scale." +#: js/blocks/RhythmBlockPaletteBlocks.js:444 +msgid "whole note" msgstr "" -#: js/PitchBlocks.js:1381 -msgid "In the example shown above, sol is shifted up to la." +#: js/blocks/RhythmBlockPaletteBlocks.js:482 +#: js/blocks/RhythmBlockPaletteBlocks.js:551 +#: js/blocks/RhythmBlockPaletteBlocks.js:602 +#.TRANS: A tuplet is a note value divided into irregular time values. +msgid "tuplet" msgstr "" -#: js/PitchBlocks.js:1388 -#.TRANS: adjust the amount of shift (up or down) of a pitch by musical scale (scalar) steps -msgid "scalar transpose" +#: js/blocks/RhythmBlockPaletteBlocks.js:768 +msgid "septuplet" msgstr "" -#: js/PitchBlocks.js:1423 -msgid "The Accidental block is used to create sharps and flats" +#: js/blocks/RhythmBlockPaletteBlocks.js:796 +msgid "quintuplet" msgstr "" -#: js/PitchBlocks.js:1430 -#.TRANS: An accidental is a modification to a pitch, e.g., sharp or flat. -msgid "accidental override" +#: js/blocks/RhythmBlockPaletteBlocks.js:824 +msgid "triplet" msgstr "" -#: js/PitchBlocks.js:1543 -msgid "The Hertz block (in combination with a Number block) will play a sound at the specified frequency." +#: js/blocks/RhythmBlockPaletteBlocks.js:851 +msgid "simple tuplet" msgstr "" -#: js/PitchBlocks.js:1633 -msgid "The Pitch Number block will play a pitch associated by its number, e.g. 0 for C and 7 for G." +#: js/blocks/RhythmBlockPaletteBlocks.js:861 +msgid "Tuplets are a collection of notes that get scaled to a specific duration." msgstr "" -#: js/PitchBlocks.js:1665 -#: js/PitchBlocks.js:1707 -#.TRANS: a numeric mapping of the notes in an octave based on the musical mode -#.TRANS: a numeric mapping of the notes in an octave based on the musical mode -msgid "nth modal pitch" +#: js/blocks/DrumBlocks.js:59 +msgid "The Noise name block is used to select a noise synthesizer." msgstr "" -#: js/PitchBlocks.js:1668 -msgid "n^th Modal Pitch takes the pattern of pitches in semitones for a mode and makes each point a degree of the mode," +#: js/blocks/DrumBlocks.js:102 +msgid "The Drum name block is used to select a drum." msgstr "" -#: js/PitchBlocks.js:1670 -msgid "starting from 1 and regardless of tonal framework (i.e. not always 8 notes in the octave)" +#: js/blocks/DrumBlocks.js:146 +msgid "The Effects name block is used to select a sound effect." msgstr "" -#: js/PitchBlocks.js:1711 -msgid "N^th Modal Pitch takes a number as an input as the n^th degree for the given mode. 0 is the first position, 1 is the second, -1 is the note before the first etc." +#: js/blocks/DrumBlocks.js:163 +msgid "noise" msgstr "" -#: js/PitchBlocks.js:1713 -msgid "The pitches change according to the mode specified without any need for respellings." +#: js/blocks/DrumBlocks.js:177 +msgid "The Play noise block will generate white, pink, or brown noise." msgstr "" -#: js/PitchBlocks.js:1752 -msgid "Scale Degree is a common convention in music. Scale Degree offers seven possible positions in the scale (1-7) and can be modified via accidentals." +#: js/blocks/DrumBlocks.js:317 +msgid "Replace every instance of a pitch with a drum sound." msgstr "" -#: js/PitchBlocks.js:1754 -msgid "Scale Degree 1 is always the first pitch in a given scale, regardless of octave." +#: js/blocks/DrumBlocks.js:328 +#.TRANS: map a pitch to a drum sound +msgid "map pitch to drum" msgstr "" -#: js/PitchBlocks.js:1776 -#.TRANS: step some number of notes in current musical scale -msgid "scalar step" +#: js/blocks/DrumBlocks.js:395 +msgid "In the example above, a kick drum sound will be played instead of sol." msgstr "" -#: js/PitchBlocks.js:1781 -msgid "The Scalar Step block (in combination with a Number block) will play the next pitch in a scale," +#: js/blocks/DrumBlocks.js:407 +#.TRANS: set the current drum sound for playback +msgid "set drum" msgstr "" -#: js/PitchBlocks.js:1783 -msgid "eg if the last note played was sol, Scalar Step 1 will play la." +#: js/blocks/DrumBlocks.js:451 +msgid "sound effect" msgstr "" -#: js/PitchBlocks.js:1818 -msgid "The Pitch block specifies the pitch name and octave of a note that together determine the frequency of the note." +#: js/blocks/DrumBlocks.js:489 +msgid "You can use multiple Drum blocks within a Note block." msgstr "" -#: js/GraphicsBlocks.js:46 -#: js/DictActions.js:77 -#: js/DictActions.js:155 -#: js/DictActions.js:189 +#: js/blocks/GraphicsBlocks.js:46 +#: js/turtleactions/DictActions.js:77 +#: js/turtleactions/DictActions.js:144 +#: js/turtleactions/DictActions.js:173 msgid "heading" msgstr "" -#: js/GraphicsBlocks.js:56 +#: js/blocks/GraphicsBlocks.js:56 msgid "The Heading block returns the orientation of the mouse." msgstr "" -#: js/GraphicsBlocks.js:62 +#: js/blocks/GraphicsBlocks.js:62 msgid "The Heading block returns the orientation of the turtle." msgstr "" -#: js/GraphicsBlocks.js:133 +#: js/blocks/GraphicsBlocks.js:133 msgid "The Y block returns the vertical position of the mouse." msgstr "" -#: js/GraphicsBlocks.js:140 +#: js/blocks/GraphicsBlocks.js:140 msgid "The Y block returns the vertical position of the turtle." msgstr "" -#: js/GraphicsBlocks.js:149 +#: js/blocks/GraphicsBlocks.js:149 msgid "y3" msgstr "" -#: js/GraphicsBlocks.js:219 +#: js/blocks/GraphicsBlocks.js:219 msgid "The X block returns the horizontal position of the mouse." msgstr "" -#: js/GraphicsBlocks.js:226 +#: js/blocks/GraphicsBlocks.js:226 msgid "The X block returns the horizontal position of the turtle." msgstr "" -#: js/GraphicsBlocks.js:235 +#: js/blocks/GraphicsBlocks.js:235 msgid "x3" msgstr "" -#: js/GraphicsBlocks.js:295 +#: js/blocks/GraphicsBlocks.js:295 msgid "scroll xy" msgstr "" -#: js/GraphicsBlocks.js:303 +#: js/blocks/GraphicsBlocks.js:303 msgid "The Scroll XY block moves the canvas." msgstr "" -#: js/GraphicsBlocks.js:313 +#: js/blocks/GraphicsBlocks.js:313 msgid "x2" msgstr "" -#: js/GraphicsBlocks.js:313 +#: js/blocks/GraphicsBlocks.js:313 msgid "y2" msgstr "" -#: js/GraphicsBlocks.js:373 -#: js/temperament.js:213 -#: js/temperament.js:241 +#: js/blocks/GraphicsBlocks.js:373 +#: js/widgets/temperament.js:319 +#: js/widgets/temperament.js:347 msgid "clear" msgstr "" -#: js/GraphicsBlocks.js:426 +#: js/blocks/GraphicsBlocks.js:426 msgid "The Control-point 2 block sets the second control point for the Bezier curve." msgstr "" -#: js/GraphicsBlocks.js:433 +#: js/blocks/GraphicsBlocks.js:433 msgid "control point 2" msgstr "" -#: js/GraphicsBlocks.js:436 -#: js/GraphicsBlocks.js:487 -#: js/GraphicsBlocks.js:534 -#: js/GraphicsBlocks.js:750 +#: js/blocks/GraphicsBlocks.js:436 +#: js/blocks/GraphicsBlocks.js:487 +#: js/blocks/GraphicsBlocks.js:534 +#: js/blocks/GraphicsBlocks.js:750 msgid "x1" msgstr "" -#: js/GraphicsBlocks.js:436 -#: js/GraphicsBlocks.js:487 -#: js/GraphicsBlocks.js:534 -#: js/GraphicsBlocks.js:750 +#: js/blocks/GraphicsBlocks.js:436 +#: js/blocks/GraphicsBlocks.js:487 +#: js/blocks/GraphicsBlocks.js:534 +#: js/blocks/GraphicsBlocks.js:750 msgid "y1" msgstr "" -#: js/GraphicsBlocks.js:477 +#: js/blocks/GraphicsBlocks.js:477 msgid "The Control-point 1 block sets the first control point for the Bezier curve." msgstr "" -#: js/GraphicsBlocks.js:484 +#: js/blocks/GraphicsBlocks.js:484 msgid "control point 1" msgstr "" -#: js/GraphicsBlocks.js:527 +#: js/blocks/GraphicsBlocks.js:527 msgid "The Bezier block draws a Bezier curve." msgstr "" -#: js/GraphicsBlocks.js:531 +#: js/blocks/GraphicsBlocks.js:531 msgid "bezier" msgstr "" -#: js/GraphicsBlocks.js:592 +#: js/blocks/GraphicsBlocks.js:592 msgid "The Arc block moves the turtle in an arc." msgstr "" -#: js/GraphicsBlocks.js:600 +#: js/blocks/GraphicsBlocks.js:600 msgid "arc" msgstr "" -#: js/GraphicsBlocks.js:603 +#: js/blocks/GraphicsBlocks.js:603 msgid "angle" msgstr "" -#: js/GraphicsBlocks.js:603 +#: js/blocks/GraphicsBlocks.js:603 msgid "radius" msgstr "" -#: js/GraphicsBlocks.js:620 -#: js/GraphicsBlocks.js:767 -#: js/GraphicsBlocks.js:1010 -#: js/GraphicsBlocks.js:1093 +#: js/blocks/GraphicsBlocks.js:620 +#: js/blocks/GraphicsBlocks.js:767 +#: js/blocks/GraphicsBlocks.js:1010 +#: js/blocks/GraphicsBlocks.js:1093 msgid "Value must be within -5000 to 5000 when Wrap Mode is off." msgstr "" -#: js/GraphicsBlocks.js:622 -#: js/GraphicsBlocks.js:769 -#: js/GraphicsBlocks.js:1012 -#: js/GraphicsBlocks.js:1095 +#: js/blocks/GraphicsBlocks.js:622 +#: js/blocks/GraphicsBlocks.js:769 +#: js/blocks/GraphicsBlocks.js:1012 +#: js/blocks/GraphicsBlocks.js:1095 msgid "Value must be within -20000 to 20000 when Wrap Mode is on." msgstr "" -#: js/GraphicsBlocks.js:660 +#: js/blocks/GraphicsBlocks.js:660 msgid "set heading" msgstr "" -#: js/GraphicsBlocks.js:673 +#: js/blocks/GraphicsBlocks.js:673 msgid "The Set heading block sets the heading of the turtle." msgstr "" -#: js/GraphicsBlocks.js:733 +#: js/blocks/GraphicsBlocks.js:733 msgid "The Set XY block moves the mouse to a specific position on the screen." msgstr "" -#: js/GraphicsBlocks.js:739 +#: js/blocks/GraphicsBlocks.js:739 msgid "The Set XY block moves the turtle to a specific position on the screen." msgstr "" -#: js/GraphicsBlocks.js:747 +#: js/blocks/GraphicsBlocks.js:747 msgid "set xy" msgstr "" -#: js/GraphicsBlocks.js:819 +#: js/blocks/GraphicsBlocks.js:819 msgid "The Right block turns the mouse to the right." msgstr "" -#: js/GraphicsBlocks.js:826 +#: js/blocks/GraphicsBlocks.js:826 msgid "The Right block turns the turtle to the right." msgstr "" -#: js/GraphicsBlocks.js:835 +#: js/blocks/GraphicsBlocks.js:835 msgid "right1" msgstr "" -#: js/GraphicsBlocks.js:835 +#: js/blocks/GraphicsBlocks.js:835 #: plugins/rodi.rtp:77 #: plugins/rodi.rtp:340 #: plugins/rodi.rtp:375 msgid "right" msgstr "" -#: js/GraphicsBlocks.js:899 +#: js/blocks/GraphicsBlocks.js:899 msgid "The Left block turns the mouse to the left." msgstr "" -#: js/GraphicsBlocks.js:906 +#: js/blocks/GraphicsBlocks.js:906 msgid "The Left block turns the turtle to the left." msgstr "" -#: js/GraphicsBlocks.js:915 +#: js/blocks/GraphicsBlocks.js:915 msgid "left1" msgstr "" -#: js/GraphicsBlocks.js:915 +#: js/blocks/GraphicsBlocks.js:915 #: plugins/rodi.rtp:79 #: plugins/rodi.rtp:339 #: plugins/rodi.rtp:362 msgid "left" msgstr "" -#: js/GraphicsBlocks.js:967 -#: js/temperament.js:734 -#: js/temperament.js:933 +#: js/blocks/GraphicsBlocks.js:967 +#: js/widgets/temperament.js:875 +#: js/widgets/temperament.js:1078 #: plugins/rodi.rtp:69 #: plugins/rodi.rtp:387 msgid "back" msgstr "" -#: js/GraphicsBlocks.js:976 +#: js/blocks/GraphicsBlocks.js:976 msgid "The Back block moves the mouse backward." msgstr "" -#: js/GraphicsBlocks.js:983 +#: js/blocks/GraphicsBlocks.js:983 msgid "The Back block moves the turtle backward." msgstr "" -#: js/GraphicsBlocks.js:1050 +#: js/blocks/GraphicsBlocks.js:1050 #: plugins/rodi.rtp:71 #: plugins/rodi.rtp:400 msgid "forward" msgstr "" -#: js/GraphicsBlocks.js:1059 +#: js/blocks/GraphicsBlocks.js:1059 msgid "The Forward block moves the mouse forward." msgstr "" -#: js/GraphicsBlocks.js:1066 +#: js/blocks/GraphicsBlocks.js:1066 msgid "The Forward block moves the turtle forward." msgstr "" -#: js/GraphicsBlocks.js:1154 -#: js/GraphicsBlocks.js:1172 +#: js/blocks/GraphicsBlocks.js:1154 +#: js/blocks/GraphicsBlocks.js:1172 msgid "wrap" msgstr "" -#: js/OrnamentBlocks.js:32 -msgid "staccato factor" -msgstr "" - -#: js/OrnamentBlocks.js:108 -msgid "slur factor" -msgstr "" - -#: js/OrnamentBlocks.js:217 -#: js/OrnamentBlocks.js:309 -#.TRANS: the neighbor refers to a neighboring note, e.g., D is a neighbor of C -msgid "neighbor" -msgstr "" - -#: js/OrnamentBlocks.js:293 -msgid "The Neighbor block rapidly switches between neighboring pitches." -msgstr "" - -#: js/OrnamentBlocks.js:364 -msgid "glide" -msgstr "" - -#: js/OrnamentBlocks.js:479 -#: js/OrnamentBlocks.js:643 -msgid "slur" -msgstr "" - -#: js/OrnamentBlocks.js:558 -#: js/OrnamentBlocks.js:710 -#.TRANS: play each note sharply detached from the others -msgid "staccato" -msgstr "" - -#: js/PenBlocks.js:24 +#: js/blocks/PenBlocks.js:30 msgid "purple" msgstr "" -#: js/PenBlocks.js:37 -#: js/SensorsBlocks.js:521 -#: plugins/rodi.rtp:219 -msgid "blue" -msgstr "" - -#: js/PenBlocks.js:50 -#: js/SensorsBlocks.js:577 -#: plugins/rodi.rtp:218 -msgid "green" -msgstr "" - -#: js/PenBlocks.js:63 +#: js/blocks/PenBlocks.js:80 msgid "yellow" msgstr "" -#: js/PenBlocks.js:76 +#: js/blocks/PenBlocks.js:96 #: plugins/nutrition.rtp:164 msgid "orange" msgstr "" -#: js/PenBlocks.js:89 -#: js/SensorsBlocks.js:633 -#: plugins/rodi.rtp:217 -msgid "red" -msgstr "" - -#: js/PenBlocks.js:102 +#: js/blocks/PenBlocks.js:128 msgid "white" msgstr "" -#: js/PenBlocks.js:115 +#: js/blocks/PenBlocks.js:144 msgid "black" msgstr "" -#: js/PenBlocks.js:128 +#: js/blocks/PenBlocks.js:163 msgid "begin fill" msgstr "" -#: js/PenBlocks.js:143 +#: js/blocks/PenBlocks.js:190 msgid "end fill" msgstr "" -#: js/PenBlocks.js:159 -#: js/PenBlocks.js:386 +#: js/blocks/PenBlocks.js:212 +#: js/blocks/PenBlocks.js:560 #.TRANS: set the background color msgid "background" msgstr "" -#: js/PenBlocks.js:206 -#: js/DictActions.js:71 -#: js/DictActions.js:149 -#: js/DictActions.js:186 +#: js/blocks/PenBlocks.js:274 +#: js/turtleactions/DictActions.js:71 +#: js/turtleactions/DictActions.js:138 +#: js/turtleactions/DictActions.js:170 msgid "grey" msgstr "" -#: js/PenBlocks.js:210 +#: js/blocks/PenBlocks.js:282 msgid "The Grey block returns the current pen grey value." msgstr "" -#: js/PenBlocks.js:243 -#: js/DictActions.js:69 -#: js/DictActions.js:147 -#: js/DictActions.js:185 +#: js/blocks/PenBlocks.js:340 +#: js/turtleactions/DictActions.js:69 +#: js/turtleactions/DictActions.js:136 +#: js/turtleactions/DictActions.js:169 msgid "shade" msgstr "" -#: js/PenBlocks.js:247 +#: js/blocks/PenBlocks.js:347 msgid "The Shade block returns the current pen shade value." msgstr "" -#: js/PenBlocks.js:280 -#: js/DictActions.js:67 -#: js/DictActions.js:145 -#: js/DictActions.js:184 +#: js/blocks/PenBlocks.js:405 +#: js/turtleactions/DictActions.js:67 +#: js/turtleactions/DictActions.js:134 +#: js/turtleactions/DictActions.js:168 msgid "color" msgstr "" -#: js/PenBlocks.js:285 +#: js/blocks/PenBlocks.js:415 msgid "The Color block returns the current pen color." msgstr "" -#: js/PenBlocks.js:318 -#: js/DictActions.js:73 -#: js/DictActions.js:151 -#: js/DictActions.js:187 +#: js/blocks/PenBlocks.js:470 +#: js/turtleactions/DictActions.js:73 +#: js/turtleactions/DictActions.js:140 +#: js/turtleactions/DictActions.js:171 msgid "pen size" msgstr "" -#: js/PenBlocks.js:322 +#: js/blocks/PenBlocks.js:474 msgid "The Pen size block returns the current pen size value." msgstr "" -#: js/PenBlocks.js:355 +#: js/blocks/PenBlocks.js:513 msgid "set font" msgstr "" -#: js/PenBlocks.js:358 +#: js/blocks/PenBlocks.js:518 msgid "The Set font block sets the font used by the Show block." msgstr "" -#: js/PenBlocks.js:391 +#: js/blocks/PenBlocks.js:567 msgid "The Background block sets the window background color." msgstr "" -#: js/PenBlocks.js:408 +#: js/blocks/PenBlocks.js:598 msgid "The Hollow line block creates a line with a hollow center." msgstr "" -#: js/PenBlocks.js:415 +#: js/blocks/PenBlocks.js:606 #.TRANS: draw a line logo has a hollow space down its center msgid "hollow line" msgstr "" -#: js/PenBlocks.js:462 +#: js/blocks/PenBlocks.js:675 msgid "The Fill block fills in a shape with a color." msgstr "" -#: js/PenBlocks.js:470 +#: js/blocks/PenBlocks.js:684 #.TRANS: fill in as a solid color msgid "fill" msgstr "" -#: js/PenBlocks.js:527 +#: js/blocks/PenBlocks.js:761 #.TRANS: raise up the pen so logo it does not draw when it is moved msgid "pen up" msgstr "" -#: js/PenBlocks.js:532 +#: js/blocks/PenBlocks.js:768 msgid "The Pen-up block raises the pen so that it does not draw." msgstr "" -#: js/PenBlocks.js:552 +#: js/blocks/PenBlocks.js:802 #.TRANS: put down the pen so logo it draws when it is moved msgid "pen down" msgstr "" -#: js/PenBlocks.js:557 +#: js/blocks/PenBlocks.js:810 msgid "The Pen-down block lowers the pen so that it draws." msgstr "" -#: js/PenBlocks.js:577 +#: js/blocks/PenBlocks.js:844 #.TRANS: set the width of the line drawn by the pen msgid "set pen size" msgstr "" -#: js/PenBlocks.js:583 +#: js/blocks/PenBlocks.js:854 msgid "The Set-pen-size block changes the size of the pen." msgstr "" -#: js/PenBlocks.js:623 +#: js/blocks/PenBlocks.js:913 #.TRANS: set degree of translucence of the pen color msgid "set translucency" msgstr "" -#: js/PenBlocks.js:627 +#: js/blocks/PenBlocks.js:921 msgid "The Set translucency block changes the opacity of the pen." msgstr "" -#: js/PenBlocks.js:668 +#: js/blocks/PenBlocks.js:981 msgid "set hue" msgstr "" -#: js/PenBlocks.js:672 +#: js/blocks/PenBlocks.js:989 msgid "The Set hue block changes the color of the pen." msgstr "" -#: js/PenBlocks.js:711 +#: js/blocks/PenBlocks.js:1047 msgid "set shade" msgstr "" -#: js/PenBlocks.js:717 +#: js/blocks/PenBlocks.js:1057 msgid "The Set-shade block changes the pen color from dark to light." msgstr "" -#: js/PenBlocks.js:757 +#: js/blocks/PenBlocks.js:1111 #.TRANS: set the level of vividness of the pen color msgid "set grey" msgstr "" -#: js/PenBlocks.js:761 +#: js/blocks/PenBlocks.js:1119 msgid "The Set grey block changes the vividness of the pen color." msgstr "" -#: js/PenBlocks.js:800 +#: js/blocks/PenBlocks.js:1172 msgid "set color" msgstr "" -#: js/PenBlocks.js:806 +#: js/blocks/PenBlocks.js:1182 msgid "The Set-color block changes the pen color." msgstr "" -#: js/VolumeBlocks.js:35 -msgid "synth volume" -msgstr "" - -#: js/VolumeBlocks.js:39 -msgid "The Synth volume block returns the current volume of the current synthesizer." -msgstr "" - -#: js/VolumeBlocks.js:47 -#: js/musicutils.js:730 -#: js/synthutils.js:56 -#.TRANS: musical instrument -msgid "piano" -msgstr "" - -#: js/VolumeBlocks.js:105 -msgid "master volume" -msgstr "" - -#: js/VolumeBlocks.js:109 -msgid "The Master volume block returns the master volume." -msgstr "" - -#: js/VolumeBlocks.js:355 -#: js/VolumeBlocks.js:524 -msgid "set synth volume" -msgstr "" - -#: js/VolumeBlocks.js:362 -#: js/VolumeBlocks.js:545 -msgid "synth" -msgstr "" - -#: js/VolumeBlocks.js:403 -#: js/VolumeBlocks.js:577 -#: js/VolumeBlocks.js:740 -#: js/VolumeActions.js:173 -msgid "Setting volume to 0." -msgstr "" - -#: js/VolumeBlocks.js:440 -msgid "Synth not found" -msgstr "" - -#: js/VolumeBlocks.js:494 -msgid "set drum volume" -msgstr "" - -#: js/VolumeBlocks.js:530 -msgid "The Set synth volume block will change the volume of a particular synth," -msgstr "" - -#: js/VolumeBlocks.js:532 -msgid "eg guitar violin snare drum etc." -msgstr "" - -#: js/VolumeBlocks.js:534 -msgid "The default volume is 50." -msgstr "" - -#: js/VolumeBlocks.js:536 -msgid "The range is 0 for silence to 100 for full volume." -msgstr "" - -#: js/VolumeBlocks.js:597 -msgid "set panning" -msgstr "" - -#: js/VolumeBlocks.js:603 -msgid "The Set Panning block sets the panning for all synthesizers." -msgstr "" - -#: js/VolumeBlocks.js:625 -msgid "Warning: Sound is coming out from only the left or right side." -msgstr "" - -#: js/VolumeBlocks.js:647 -#: js/VolumeBlocks.js:695 -msgid "set master volume" -msgstr "" - -#: js/VolumeBlocks.js:653 -msgid "The Set master volume block sets the volume for all synthesizers." -msgstr "" - -#: js/VolumeBlocks.js:784 -msgid "The Set relative volume block changes the volume of the contained notes." -msgstr "" - -#: js/VolumeBlocks.js:791 -msgid "set relative volume" -msgstr "" - -#: js/VolumeBlocks.js:857 -msgid "decrescendo" -msgstr "" - -#: js/VolumeBlocks.js:921 -msgid "crescendo" -msgstr "" - -#: js/ToneBlocks.js:34 -msgid "oscillator" -msgstr "" - -#: js/ToneBlocks.js:44 -#: js/timbre.js:1562 -#.TRANS: Partials refers to the number of sine waves combined into the sound. -msgid "partials" -msgstr "" - -#: js/ToneBlocks.js:76 -msgid "You are adding multiple oscillator blocks." -msgstr "" - -#: js/ToneBlocks.js:144 -#: js/timbre.js:1225 -#.TRANS: a duo synthesizer combines a synth with a sequencer -msgid "duo synth" -msgstr "" - -#: js/ToneBlocks.js:149 -msgid "The Duo synth block is a duo-frequency modulator used to define a timbre." -msgstr "" - -#: js/ToneBlocks.js:157 -#: js/timbre.js:1476 -msgid "vibrato rate" -msgstr "" - -#: js/ToneBlocks.js:157 -msgid "vibrato intensity" -msgstr "" - -#: js/ToneBlocks.js:185 -#: js/timbre.js:1221 -#.TRANS: AM (amplitude modulation) synthesizer -msgid "AM synth" -msgstr "" - -#: js/ToneBlocks.js:189 -msgid "The AM synth block is an amplitude modulator used to define a timbre." -msgstr "" - -#: js/ToneBlocks.js:224 -#: js/timbre.js:1223 -#.TRANS: FM (frequency modulation) synthesizer -msgid "FM synth" -msgstr "" - -#: js/ToneBlocks.js:228 -msgid "The FM synth block is a frequency modulator used to define a timbre." +#: js/blocks/PitchBlocks.js:141 +#.TRANS: musical transposition (adjustment of pitch up or down) +msgid "transposition" msgstr "" -#: js/ToneBlocks.js:262 -msgid "partial" +#: js/blocks/PitchBlocks.js:168 +#.TRANS: step down one note in current musical scale +msgid "scalar step down" msgstr "" -#: js/ToneBlocks.js:265 -msgid "The Partial block is used to specify a weight for a specific partial harmonic." +#: js/blocks/PitchBlocks.js:172 +msgid "The Scalar step down block returns the number of semi-tones down to the previous note in the current key and mode." msgstr "" -#: js/ToneBlocks.js:284 -#.TRANS: partials are weighted components in a harmonic series -msgid "Partial weight must be between 0 and 1." +#: js/blocks/PitchBlocks.js:190 +#.TRANS: step up one note in current musical scale +msgid "scalar step up" msgstr "" -#: js/ToneBlocks.js:297 -#.TRANS: partials are weighted components in a harmonic series -msgid "Partial block should be used inside of a Weighted-partials block." +#: js/blocks/PitchBlocks.js:194 +msgid "The Scalar step up block returns the number of semi-tones up to the next note in the current key and mode." msgstr "" -#: js/ToneBlocks.js:325 -#.TRANS: partials are weighted components in a harmonic series -msgid "weighted partials" +#: js/blocks/PitchBlocks.js:212 +#.TRANS: the change measured in half-steps between the current pitch and the previous pitch +msgid "change in pitch" msgstr "" -#: js/ToneBlocks.js:383 -msgid "The Harmonic block will add harmonics to the contained notes." +#: js/blocks/PitchBlocks.js:216 +msgid "The Change in pitch block is the difference (in half steps) between the current pitch being played and the previous pitch played." msgstr "" -#: js/ToneBlocks.js:390 -#.TRANS: A harmonic is an overtone. -msgid "harmonic" +#: js/blocks/PitchBlocks.js:243 +#.TRANS: the change measured in scale-steps between the current pitch and the previous pitch +msgid "scalar change in pitch" msgstr "" -#: js/ToneBlocks.js:431 -msgid "The Distortion block adds distortion to the pitch." +#: js/blocks/PitchBlocks.js:250 +#: js/blocks/PitchBlocks.js:432 +#: js/blocks/PitchBlocks.js:1667 +#: js/turtleactions/DictActions.js:89 +#: js/widgets/temperament.js:610 +#: js/widgets/temperament.js:614 +#: js/widgets/temperament.js:855 +#.TRANS: convert current note to piano key (1-88) +#.TRANS: a mapping of pitch to the 88 piano keys +msgid "pitch number" msgstr "" -#: js/ToneBlocks.js:438 -#: js/timbre.js:2100 -#.TRANS: distortion is an alteration in the sound -msgid "distortion" +#: js/blocks/PitchBlocks.js:256 +msgid "The Pitch number block is the value of the pitch of the note currently being played." msgstr "" -#: js/ToneBlocks.js:487 -msgid "The Tremolo block adds a wavering effect." +#: js/blocks/PitchBlocks.js:329 +#: js/blocks/PitchBlocks.js:433 +#.TRANS: the current pitch expressed in Hertz +msgid "pitch in hertz" msgstr "" -#: js/ToneBlocks.js:495 -#: js/timbre.js:2092 -#.TRANS: a wavering effect in a musical tone -msgid "tremolo" +#: js/blocks/PitchBlocks.js:334 +msgid "The Pitch in Hertz block is the value in Hertz of the pitch of the note currently being played." msgstr "" -#: js/ToneBlocks.js:500 -#: js/ToneBlocks.js:569 -#: js/ToneBlocks.js:630 -#: js/ToneBlocks.js:689 -#: js/timbre.js:2134 -#: js/timbre.js:2222 -#: js/timbre.js:2317 -#: js/timbre.js:2419 -#.TRANS: rate at which tremolo wavers -msgid "rate" +#: js/blocks/PitchBlocks.js:367 +#: js/turtleactions/DictActions.js:87 +msgid "current pitch" msgstr "" -#: js/ToneBlocks.js:502 -#: js/ToneBlocks.js:630 -#: js/timbre.js:2137 -#: js/timbre.js:2328 -#.TRANS: amplitude of tremolo waver -msgid "depth" +#: js/blocks/PitchBlocks.js:373 +msgid "The Current Pitch block is used with the Pitch Converter block. In the example above, current pitch, sol 4, is displayed as 392 hertz." msgstr "" -#: js/ToneBlocks.js:559 -msgid "The Phaser block adds a sweeping sound." +#: js/blocks/PitchBlocks.js:410 +msgid "This block converts the pitch value of the last note played into different formats such as hertz, letter name, pitch number, et al." msgstr "" -#: js/ToneBlocks.js:566 -#: js/timbre.js:2098 -#.TRANS: alter the phase of the sound -msgid "phaser" +#: js/blocks/PitchBlocks.js:434 +msgid "alphabet" msgstr "" -#: js/ToneBlocks.js:569 -#: js/timbre.js:2422 -msgid "octaves" +#: js/blocks/PitchBlocks.js:436 +#.TRANS: Translate as "alphabet class" +msgid "letter class" msgstr "" -#: js/ToneBlocks.js:569 -#: js/timbre.js:2425 -msgid "base frequency" +#: js/blocks/PitchBlocks.js:437 +msgid "solfege class" msgstr "" -#: js/ToneBlocks.js:619 -msgid "The Chorus block adds a chorus effect." +#: js/blocks/PitchBlocks.js:438 +msgid "staff y" msgstr "" -#: js/ToneBlocks.js:627 -#: js/timbre.js:2096 -#.TRANS: musical effect to simulate a choral sound -msgid "chorus" +#: js/blocks/PitchBlocks.js:439 +msgid "solfege syllable" msgstr "" -#: js/ToneBlocks.js:630 -msgid "delay" +#: js/blocks/PitchBlocks.js:440 +msgid "pitch class" msgstr "" -#: js/ToneBlocks.js:678 -msgid "The Vibrato block adds a rapid, slight variation in pitch." +#: js/blocks/PitchBlocks.js:441 +msgid "scalar class" msgstr "" -#: js/ToneBlocks.js:686 -#: js/timbre.js:2094 -#.TRANS: a rapid, slight variation in pitch -msgid "vibrato" +#: js/blocks/PitchBlocks.js:443 +msgid "nth degree" msgstr "" -#: js/ToneBlocks.js:689 -#: js/timbre.js:2221 -msgid "intensity" +#: js/blocks/PitchBlocks.js:444 +msgid "pitch to shade" msgstr "" -#: js/ToneBlocks.js:733 -#.TRANS: select synthesizer -msgid "set synth" +#: js/blocks/PitchBlocks.js:445 +msgid "pitch to color" msgstr "" -#: js/ToneBlocks.js:804 -msgid "synth name" +#: js/blocks/PitchBlocks.js:629 +#: js/widgets/musickeyboard.js:735 +#.TRANS: MIDI is a technical standard for electronic music +msgid "MIDI" msgstr "" -#: js/ToneBlocks.js:842 -msgid "set default instrument" +#: js/blocks/PitchBlocks.js:642 +#.TRANS: set an offset associated with the numeric piano keyboard mapping +msgid "set pitch number offset" msgstr "" -#: js/ToneBlocks.js:895 -#: js/ToneBlocks.js:943 -#.TRANS: set the characteristics of a custom instrument -msgid "set instrument" +#: js/blocks/PitchBlocks.js:645 +msgid "The Set pitch number offset block is used to set the offset for mapping pitch numbers to pitch and octave." msgstr "" -#: js/ToneBlocks.js:898 -#: js/ToneBlocks.js:926 -#: js/ToneBlocks.js:932 -msgid "The Set instrument block selects a voice for the synthesizer," +#: js/blocks/PitchBlocks.js:679 +#.TRANS: convert piano key number (1-88) to pitch +msgid "number to pitch" msgstr "" -#: js/ToneBlocks.js:900 -#: js/ToneBlocks.js:934 -msgid "eg guitar piano violin or cello." +#: js/blocks/PitchBlocks.js:682 +msgid "The Number to pitch block will convert a pitch number to a pich name." msgstr "" -#: js/ToneBlocks.js:1015 -msgid "Import a sound file to use as an instrument and set its pitch center." +#: js/blocks/PitchBlocks.js:715 +#.TRANS: convert piano key number (1-88) to octave +msgid "number to octave" msgstr "" -#: js/ToneBlocks.js:1110 -msgid "Upload a sound file to connect with the sample block." +#: js/blocks/PitchBlocks.js:717 +msgid "The Number to octave block will convert a pitch number to an octave." msgstr "" -#: js/MeterBlocks.js:34 -#.TRANS: musical meter (time signature), e.g., 4:4 -msgid "current meter" +#: js/blocks/PitchBlocks.js:726 +msgid "y to pitch" msgstr "" -#: js/MeterBlocks.js:85 -#.TRANS: number of beats per minute -msgid "beat factor" +#: js/blocks/PitchBlocks.js:729 +msgid "Y to pitch block will convert a staff y position to corresponding pitch notation." msgstr "" -#: js/MeterBlocks.js:161 -msgid "The Beats per minute block returns the current beats per minute." +#: js/blocks/PitchBlocks.js:841 +msgid "accidental selector" msgstr "" -#: js/MeterBlocks.js:169 -#: js/status.js:152 -#.TRANS: number of beats played per minute -msgid "beats per minute2" +#: js/blocks/PitchBlocks.js:844 +msgid "The Accidental selector block is used to choose between double-sharp, sharp, natural, flat, and double-flat." msgstr "" -#: js/MeterBlocks.js:169 -#: js/MeterBlocks.js:1056 -#: js/MeterBlocks.js:1133 -#: js/MeterBlocks.js:1211 -#.TRANS: sets tempo by defining a beat and beats per minute -msgid "beats per minute" +#: js/blocks/PitchBlocks.js:858 +msgid "Pitch can be specified in terms of ni dha pa ma ga re sa." msgstr "" -#: js/MeterBlocks.js:233 -#.TRANS: count of current musical measure in meter -msgid "measure count" +#: js/blocks/PitchBlocks.js:872 +msgid "Pitch can be specified in terms of C D E F G A B." msgstr "" -#: js/MeterBlocks.js:241 -msgid "The Measure count block returns the current measure." +#: js/blocks/PitchBlocks.js:884 +msgid "solfege" msgstr "" -#: js/MeterBlocks.js:290 -#.TRANS: count of current beat in the meter -msgid "beat count" +#: js/blocks/PitchBlocks.js:887 +msgid "Pitch can be specified in terms of do re mi fa sol la ti." msgstr "" -#: js/MeterBlocks.js:300 -#: js/MeterBlocks.js:311 -#: js/MeterBlocks.js:565 -#: js/MeterBlocks.js:576 -msgid "The Beat count block is the number of the current beat," +#: js/blocks/PitchBlocks.js:922 +msgid "The Invert block rotates any contained notes around a target note." msgstr "" -#: js/MeterBlocks.js:313 -#: js/MeterBlocks.js:578 -msgid "eg 1, 2, 3, or 4." +#: js/blocks/PitchBlocks.js:929 +#.TRANS: pitch inversion rotates a pitch around another pitch +msgid "invert" msgstr "" -#: js/MeterBlocks.js:368 -#.TRANS: count the number of notes -msgid "sum note values" +#: js/blocks/PitchBlocks.js:968 +#.TRANS: pitch inversion rotates a pitch around another pitch (odd number) +msgid "invert (odd)" msgstr "" -#: js/MeterBlocks.js:376 -#: js/MeterBlocks.js:440 -msgid "The Note counter block can be used to count the number of contained notes." +#: js/blocks/PitchBlocks.js:1001 +#.TRANS: pitch inversion rotates a pitch around another pitch (even number) +msgid "invert (even)" msgstr "" -#: js/MeterBlocks.js:432 -#.TRANS: count the number of notes -msgid "note counter" +#: js/blocks/PitchBlocks.js:1022 +#.TRANS: register is the octave of the current pitch +msgid "register" msgstr "" -#: js/MeterBlocks.js:496 -#.TRANS: number of whole notes that have been played -msgid "whole notes played" +#: js/blocks/PitchBlocks.js:1026 +msgid "The Register block provides an easy way to modify the register (octave) of the notes that follow it." msgstr "" -#: js/MeterBlocks.js:505 -msgid "The Whole notes played block returns the total number of whole notes played." +#: js/blocks/PitchBlocks.js:1047 +#.TRANS: cents are units used to specify the ratio between pitches. There are 100 cents between successive notes. +msgid "50 cents" msgstr "" -#: js/MeterBlocks.js:555 -#: js/DictActions.js:83 -#.TRANS: number of notes that have been played -msgid "notes played" +#: js/blocks/PitchBlocks.js:1102 +msgid "The Semi-tone transposition block will shift the pitches contained inside Note blocks up (or down) by half steps." msgstr "" -#: js/MeterBlocks.js:653 -msgid "The No clock block decouples the notes from the master clock." +#: js/blocks/PitchBlocks.js:1104 +msgid "In the example shown above, sol is shifted up to sol#." msgstr "" -#: js/MeterBlocks.js:661 -#.TRANS: don't lock notes to master clock -msgid "no clock" +#: js/blocks/PitchBlocks.js:1110 +#.TRANS: adjust the amount of shift (up or down) of a pitch +msgid "semi-tone transpose" msgstr "" -#: js/MeterBlocks.js:700 -msgid "on weak beat do" +#: js/blocks/PitchBlocks.js:1143 +msgid "The Transpose by Ratio block will shift the pitches contained inside Note blocks up (or down) by a ratio" msgstr "" -#: js/MeterBlocks.js:705 -msgid "The On-weak-beat block lets you specify actions to take on weak (off) beats." +#: js/blocks/PitchBlocks.js:1149 +#.TRANS: adjust the amount of shift (up or down) of a pitch +msgid "transpose by ratio" msgstr "" -#: js/MeterBlocks.js:750 -msgid "on strong beat" +#: js/blocks/PitchBlocks.js:1232 +#.TRANS: down sixth means the note is five scale degrees below current note +msgid "down sixth" msgstr "" -#: js/MeterBlocks.js:758 -msgid "The On-strong-beat block lets you specify actions to take on specified beats." +#: js/blocks/PitchBlocks.js:1251 +#.TRANS: down third means the note is two scale degrees below current note +msgid "down third" msgstr "" -#: js/MeterBlocks.js:769 -msgid "beat" +#: js/blocks/PitchBlocks.js:1270 +#.TRANS: seventh means the note is the six scale degrees above current note +msgid "seventh" msgstr "" -#: js/MeterBlocks.js:813 -msgid "on every beat do" +#: js/blocks/PitchBlocks.js:1289 +#.TRANS: sixth means the note is the five scale degrees above current note +msgid "sixth" msgstr "" -#: js/MeterBlocks.js:821 -msgid "The On-every-beat block lets you specify actions to take on every beat." +#: js/blocks/PitchBlocks.js:1308 +#.TRANS: fifth means the note is the four scale degrees above current note +msgid "fifth" msgstr "" -#: js/MeterBlocks.js:874 -msgid "on every note do" +#: js/blocks/PitchBlocks.js:1328 +#.TRANS: fourth means the note is three scale degrees above current note +msgid "fourth" msgstr "" -#: js/MeterBlocks.js:882 -msgid "The On-every-note block lets you specify actions to take on every note." +#: js/blocks/PitchBlocks.js:1347 +#.TRANS: third means the note is two scale degrees above current note +msgid "third" msgstr "" -#: js/MeterBlocks.js:928 -#: js/MeterBlocks.js:999 -#.TRANS: sets tempo by defining a beat and beats per minute -msgid "master beats per minute" +#: js/blocks/PitchBlocks.js:1366 +#.TRANS: second means the note is one scale degree above current note +msgid "second" msgstr "" -#: js/MeterBlocks.js:952 -#: js/MeterBlocks.js:1078 -#: js/MeterBlocks.js:1135 -msgid "bpm" +#: js/blocks/PitchBlocks.js:1407 +msgid "The Scalar transposition block will shift the pitches contained inside Note blocks up (or down) the scale." msgstr "" -#: js/MeterBlocks.js:952 -#: js/MeterBlocks.js:1078 -#: js/MeterBlocks.js:1135 -msgid "beat value" +#: js/blocks/PitchBlocks.js:1409 +msgid "In the example shown above, sol is shifted up to la." msgstr "" -#: js/MeterBlocks.js:1024 -#: js/MeterBlocks.js:1167 -#: js/MeterBlocks.js:1241 -msgid "Beats per minute must be > 30." +#: js/blocks/PitchBlocks.js:1416 +#.TRANS: adjust the amount of shift (up or down) of a pitch by musical scale (scalar) steps +msgid "scalar transpose" msgstr "" -#: js/MeterBlocks.js:1027 -#: js/MeterBlocks.js:1170 -#: js/MeterBlocks.js:1244 -msgid "Maximum beats per minute is 1000." +#: js/blocks/PitchBlocks.js:1451 +msgid "The Accidental block is used to create sharps and flats" msgstr "" -#: js/MeterBlocks.js:1068 -msgid "The Beats per minute block sets the number of 1/4 notes per minute." +#: js/blocks/PitchBlocks.js:1458 +#.TRANS: An accidental is a modification to a pitch, e.g., sharp or flat. +msgid "accidental override" msgstr "" -#: js/MeterBlocks.js:1279 -#.TRANS: anacrusis -msgid "pickup" +#: js/blocks/PitchBlocks.js:1581 +msgid "The Hertz block (in combination with a Number block) will play a sound at the specified frequency." msgstr "" -#: js/MeterBlocks.js:1367 -msgid "number of beats" +#: js/blocks/PitchBlocks.js:1671 +msgid "The Pitch Number block will play a pitch associated by its number, e.g. 0 for C and 7 for G." msgstr "" -#: js/DictBlocks.js:77 -msgid "show dictionary" +#: js/blocks/PitchBlocks.js:1703 +#: js/blocks/PitchBlocks.js:1745 +#.TRANS: a numeric mapping of the notes in an octave based on the musical mode +#.TRANS: a numeric mapping of the notes in an octave based on the musical mode +msgid "nth modal pitch" msgstr "" -#: js/DictBlocks.js:129 -msgid "The Dictionary block returns a dictionary." +#: js/blocks/PitchBlocks.js:1706 +msgid "n^th Modal Pitch takes the pattern of pitches in semitones for a mode and makes each point a degree of the mode," msgstr "" -#: js/DictBlocks.js:197 -#: js/DictBlocks.js:339 -msgid "The Get-dict block returns a value in the dictionary for a specified key." +#: js/blocks/PitchBlocks.js:1708 +msgid "starting from 1 and regardless of tonal framework (i.e. not always 8 notes in the octave)" msgstr "" -#: js/DictBlocks.js:212 -#: js/DictBlocks.js:354 -#.TRANS: retrieve a value from the dictionary with a given key -msgid "get value" +#: js/blocks/PitchBlocks.js:1749 +msgid "N^th Modal Pitch takes a number as an input as the n^th degree for the given mode. 0 is the first position, 1 is the second, -1 is the note before the first etc." msgstr "" -#: js/DictBlocks.js:215 -#: js/DictBlocks.js:216 -#: js/DictBlocks.js:289 -#: js/DictBlocks.js:290 -#: js/DictBlocks.js:357 -#: js/DictBlocks.js:430 -#: js/DictBlocks.js:431 -msgid "key2" +#: js/blocks/PitchBlocks.js:1751 +msgid "The pitches change according to the mode specified without any need for respellings." msgstr "" -#: js/DictBlocks.js:271 -#: js/DictBlocks.js:411 -msgid "The Set-dict block sets a value in the dictionary for a specified key." +#: js/blocks/PitchBlocks.js:1790 +msgid "Scale Degree is a common convention in music. Scale Degree offers seven possible positions in the scale (1-7) and can be modified via accidentals." msgstr "" -#: js/DictBlocks.js:286 -#: js/DictBlocks.js:427 -#.TRANS: set a value in the dictionary for a given key -msgid "set value" +#: js/blocks/PitchBlocks.js:1792 +msgid "Scale Degree 1 is always the first pitch in a given scale, regardless of octave." msgstr "" -#: js/ExtrasBlocks.js:33 -msgid "fraction" +#: js/blocks/PitchBlocks.js:1814 +#.TRANS: step some number of notes in current musical scale +msgid "scalar step" msgstr "" -#: js/ExtrasBlocks.js:36 -msgid "Convert a float to a fraction" +#: js/blocks/PitchBlocks.js:1819 +msgid "The Scalar Step block (in combination with a Number block) will play the next pitch in a scale," msgstr "" -#: js/ExtrasBlocks.js:93 -msgid "save as ABC" +#: js/blocks/PitchBlocks.js:1821 +msgid "eg if the last note played was sol, Scalar Step 1 will play la." msgstr "" -#: js/ExtrasBlocks.js:96 -#: js/ExtrasBlocks.js:132 -#: js/ExtrasBlocks.js:168 -msgid "title" +#: js/blocks/PitchBlocks.js:1857 +msgid "The Pitch block specifies the pitch name and octave of a note that together determine the frequency of the note." msgstr "" -#: js/ExtrasBlocks.js:129 -msgid "save as Lilypond" +#: js/blocks/ProgramBlocks.js:33 +msgid "The Load-heap-from-app block loads the heap from a web page." msgstr "" -#: js/ExtrasBlocks.js:165 -msgid "save as SVG" +#: js/blocks/ProgramBlocks.js:44 +#.TRANS: load the heap contents from a URL +msgid "load heap from App" msgstr "" -#: js/ExtrasBlocks.js:216 -msgid "no background" +#: js/blocks/ProgramBlocks.js:95 +msgid "Error parsing JSON data:" msgstr "" -#: js/ExtrasBlocks.js:219 -msgid "The No background block eliminates the background from the saved SVG output." +#: js/blocks/ProgramBlocks.js:100 +msgid "404: Page not found" msgstr "" -#: js/ExtrasBlocks.js:247 -msgid "show blocks" +#: js/blocks/ProgramBlocks.js:133 +msgid "The Save-heap-to-app block saves the heap to a web page." msgstr "" -#: js/ExtrasBlocks.js:249 -msgid "The Show blocks block shows the blocks." +#: js/blocks/ProgramBlocks.js:144 +#.TRANS: save the heap contents to a URL +msgid "save heap to App" msgstr "" -#: js/ExtrasBlocks.js:274 -msgid "hide blocks" +#: js/blocks/ProgramBlocks.js:189 +msgid "Cannot find a valid heap for" msgstr "" -#: js/ExtrasBlocks.js:276 -msgid "The Hide blocks block hides the blocks." +#: js/blocks/ProgramBlocks.js:206 +msgid "The Load-heap block loads the heap from a file." msgstr "" -#: js/ExtrasBlocks.js:305 -#: js/ExtrasBlocks.js:335 -msgid "The Space block is used to add space between blocks." +#: js/blocks/ProgramBlocks.js:217 +#.TRANS: load the heap from a file +msgid "load heap" msgstr "" -#: js/ExtrasBlocks.js:373 -msgid "wait" +#: js/blocks/ProgramBlocks.js:270 +msgid "The file you selected does not contain a valid heap." msgstr "" -#: js/ExtrasBlocks.js:376 -msgid "The Wait block pauses the program for a specified number of seconds." +#: js/blocks/ProgramBlocks.js:275 +msgid "The loadHeap block needs a loadFile block." msgstr "" -#: js/ExtrasBlocks.js:430 -#: plugins/facebook.rtp:30 -msgid "comment" +#: js/blocks/ProgramBlocks.js:291 +msgid "The Set-heap block loads the heap." msgstr "" -#: js/ExtrasBlocks.js:466 -msgid "print" +#: js/blocks/ProgramBlocks.js:340 +msgid "The block you selected does not contain a valid heap." msgstr "" -#: js/ExtrasBlocks.js:473 -msgid "The Print block displays text at the top of the screen." +#: js/blocks/ProgramBlocks.js:343 +msgid "The Set heap block needs a heap." msgstr "" -#: js/ExtrasBlocks.js:579 -msgid "display grid" +#: js/blocks/ProgramBlocks.js:360 +msgid "The Load-dictionary block loads a dictionary from a file." msgstr "" -#: js/ExtrasBlocks.js:584 -msgid "The Display Grid Block changes the grid type" +#: js/blocks/ProgramBlocks.js:372 +#.TRANS: load a dictionary from a file +msgid "load dictionary" msgstr "" -#: js/ExtrasBlocks.js:686 -#: js/ExtrasBlocks.js:705 -#: js/ExtrasBlocks.js:728 -#: js/ExtrasBlocks.js:751 -#: js/ExtrasBlocks.js:769 -#: js/ExtrasBlocks.js:788 -#: js/ExtrasBlocks.js:807 -#: js/ExtrasBlocks.js:826 -msgid "unknown" +#: js/blocks/ProgramBlocks.js:390 +#: js/blocks/ProgramBlocks.js:658 +#: js/blocks/ToneBlocks.js:1025 +msgid "file" msgstr "" -#: js/SensorsBlocks.js:36 -msgid "The Input block prompts for keyboard input." +#: js/blocks/ProgramBlocks.js:444 +msgid "The file you selected does not contain a valid dictionary." msgstr "" -#: js/SensorsBlocks.js:46 -msgid "input" +#: js/blocks/ProgramBlocks.js:449 +msgid "The load dictionary block needs a load file block." msgstr "" -#: js/SensorsBlocks.js:64 -msgid "Input a value" +#: js/blocks/ProgramBlocks.js:466 +msgid "The Set-dictionary block loads a dictionary." msgstr "" -#: js/SensorsBlocks.js:126 -msgid "input value" +#: js/blocks/ProgramBlocks.js:477 +#.TRANS: load a dictionary from a JSON +msgid "set dictionary" msgstr "" -#: js/SensorsBlocks.js:131 -msgid "The Input-value block stores the input." +#: js/blocks/ProgramBlocks.js:546 +msgid "The block you selected does not contain a valid dictionary." msgstr "" -#: js/SensorsBlocks.js:238 -msgid "loudness" +#: js/blocks/ProgramBlocks.js:550 +msgid "The set dictionary block needs a dictionary." msgstr "" -#: js/SensorsBlocks.js:245 -msgid "The Loudness block returns the volume detected by the microphone." +#: js/blocks/ProgramBlocks.js:567 +msgid "The Save-heap block saves the heap to a file." msgstr "" -#: js/SensorsBlocks.js:300 -msgid "click" +#: js/blocks/ProgramBlocks.js:578 +#.TRANS: save the heap to a file +msgid "save heap" msgstr "" -#: js/SensorsBlocks.js:306 -msgid "The Click block triggers an event if a mouse has been clicked." +#: js/blocks/ProgramBlocks.js:629 +msgid "The Save-dictionary block saves a dictionary to a file." msgstr "" -#: js/SensorsBlocks.js:313 -msgid "The Click block triggers an event if a turtle has been clicked." +#: js/blocks/ProgramBlocks.js:640 +#.TRANS: save a dictionary to a file +msgid "save dictionary" msgstr "" -#: js/SensorsBlocks.js:342 -msgid "cursor over" +#: js/blocks/ProgramBlocks.js:720 +msgid "The Open palette block opens a palette." msgstr "" -#: js/SensorsBlocks.js:387 -msgid "cursor out" +#: js/blocks/ProgramBlocks.js:727 +msgid "open palette" msgstr "" -#: js/SensorsBlocks.js:433 -msgid "cursor button down" +#: js/blocks/ProgramBlocks.js:785 +msgid "The Delete block block removes a block." msgstr "" -#: js/SensorsBlocks.js:477 -msgid "cursor button up" +#: js/blocks/ProgramBlocks.js:797 +#.TRANS: Move this block to the trash. +msgid "delete block" msgstr "" -#: js/SensorsBlocks.js:638 -msgid "The Get red block returns the red component of the pixel under the mouse." +#: js/blocks/ProgramBlocks.js:861 +msgid "The Move block block moves a block." msgstr "" -#: js/SensorsBlocks.js:644 -msgid "The Get red block returns the red component of the pixel under the turtle." +#: js/blocks/ProgramBlocks.js:869 +#.TRANS: Move the position of a block on the screen. +msgid "move block" msgstr "" -#: js/SensorsBlocks.js:685 -#: plugins/rodi.rtp:216 -msgid "pixel color" +#: js/blocks/ProgramBlocks.js:881 +#: js/blocks/ProgramBlocks.js:1048 +msgid "block number" msgstr "" -#: js/SensorsBlocks.js:690 -msgid "The Get pixel block returns the color of the pixel under the mouse." +#: js/blocks/ProgramBlocks.js:935 +#.TRANS: Run program beginning at this block. +msgid "run block" msgstr "" -#: js/SensorsBlocks.js:696 -msgid "The Get pixel block returns the color of the pixel under the turtle." +#: js/blocks/ProgramBlocks.js:1025 +msgid "The Dock block block connections two blocks." msgstr "" -#: js/SensorsBlocks.js:758 -msgid "time" +#: js/blocks/ProgramBlocks.js:1036 +#.TRANS: We can connect a block to another block. +msgid "connect blocks" msgstr "" -#: js/SensorsBlocks.js:804 -msgid "cursor y" +#: js/blocks/ProgramBlocks.js:1048 +msgid "target block" msgstr "" -#: js/SensorsBlocks.js:809 -msgid "The Cursor Y block returns the vertical position of the mouse." +#: js/blocks/ProgramBlocks.js:1048 +msgid "connection number" msgstr "" -#: js/SensorsBlocks.js:845 -msgid "cursor x" +#: js/blocks/ProgramBlocks.js:1140 +msgid "The Make block block creates a new block." msgstr "" -#: js/SensorsBlocks.js:850 -msgid "The Cursor X block returns the horizontal position of the mouse." +#: js/blocks/ProgramBlocks.js:1152 +#.TRANS: Create a new block +msgid "make block" msgstr "" -#: js/SensorsBlocks.js:886 -msgid "mouse button" +#: js/blocks/ProgramBlocks.js:1285 +msgid "Cannot find block" msgstr "" -#: js/SensorsBlocks.js:888 -msgid "The Mouse-button block returns True if the mouse button is pressed." +#: js/blocks/ProgramBlocks.js:1304 +#: js/blocks/ProgramBlocks.js:1313 +msgid "Warning: block argument type mismatch" msgstr "" -#: js/SensorsBlocks.js:934 -msgid "to ASCII" +#: js/blocks/ProgramBlocks.js:1347 +msgid "The Open project block is used to open a project from a web page." msgstr "" -#: js/SensorsBlocks.js:938 -msgid "The To ASCII block converts numbers to letters." +#: js/blocks/ProgramBlocks.js:1357 +msgid "open project" msgstr "" -#: js/SensorsBlocks.js:1005 -msgid "The Keyboard block returns computer keyboard input." +#: js/blocks/ProgramBlocks.js:1410 +msgid "Please enter a valid URL." msgstr "" -#: js/IntervalsActions.js:216 -msgid "Adding missing pitch number 0." +#: js/blocks/ToneBlocks.js:34 +msgid "oscillator" msgstr "" -#: js/IntervalsActions.js:224 -msgid "Ignoring pitch numbers less than zero or greater than eleven." +#: js/blocks/ToneBlocks.js:42 +#: js/blocks/WidgetBlocks.js:179 +#: js/widgets/timbre.js:1558 +#: js/widgets/timbre.js:1808 +#.TRANS: there are different types (sine, triangle, square...) of oscillators. +#.TRANS: type of filter, e.g., lowpass, highpass, etc. +msgid "type" msgstr "" -#: js/IntervalsActions.js:230 -msgid "Ignoring duplicate pitch numbers." +#: js/blocks/ToneBlocks.js:44 +#: js/widgets/timbre.js:1562 +#.TRANS: Partials refers to the number of sine waves combined into the sound. +msgid "partials" msgstr "" -#: js/PitchActions.js:88 -msgid "The Scalar Step Block must be used inside of a Note Block." +#: js/blocks/ToneBlocks.js:76 +msgid "You are adding multiple oscillator blocks." msgstr "" -#: js/PitchActions.js:107 -msgid "The Scalar Step Block must be preceded by a Pitch Block." +#: js/blocks/ToneBlocks.js:144 +#: js/widgets/timbre.js:1225 +#.TRANS: a duo synthesizer combines a synth with a sequencer +msgid "duo synth" msgstr "" -#: js/DrumActions.js:231 -msgid "Noise Block: Did you mean to use a Note block?" +#: js/blocks/ToneBlocks.js:149 +msgid "The Duo synth block is a duo-frequency modulator used to define a timbre." msgstr "" -#: js/MeterActions.js:101 -#: js/MeterActions.js:139 -msgid "beats per minute must be greater than" +#: js/blocks/ToneBlocks.js:157 +#: js/widgets/timbre.js:1476 +msgid "vibrato rate" msgstr "" -#: js/MeterActions.js:111 -#: js/MeterActions.js:149 -msgid "maximum" +#: js/blocks/ToneBlocks.js:157 +msgid "vibrato intensity" msgstr "" -#: js/MeterActions.js:117 -#: js/MeterActions.js:155 -msgid "beats per minute is" +#: js/blocks/ToneBlocks.js:185 +#: js/widgets/timbre.js:1221 +#.TRANS: AM (amplitude modulation) synthesizer +msgid "AM synth" msgstr "" -#: js/ToneActions.js:134 -msgid "Vibrato intensity must be between 1 and 100." +#: js/blocks/ToneBlocks.js:189 +msgid "The AM synth block is an amplitude modulator used to define a timbre." msgstr "" -#: js/ToneActions.js:139 -msgid "Vibrato rate must be greater than 0." +#: js/blocks/ToneBlocks.js:224 +#: js/widgets/timbre.js:1223 +#.TRANS: FM (frequency modulation) synthesizer +msgid "FM synth" msgstr "" -#: js/ToneActions.js:192 -#: js/ToneActions.js:265 -#.TRANS: Depth is the intesity of the tremolo or chorus effect. -msgid "Depth is out of range." +#: js/blocks/ToneBlocks.js:228 +msgid "The FM synth block is a frequency modulator used to define a timbre." msgstr "" -#: js/ToneActions.js:301 -msgid "Distortion must be from 0 to 100." +#: js/blocks/ToneBlocks.js:262 +msgid "partial" msgstr "" -#: js/ToneActions.js:332 -#.TRANS: partials components in a harmonic series -msgid "Partial must be greater than or equal to 0." +#: js/blocks/ToneBlocks.js:265 +msgid "The Partial block is used to specify a weight for a specific partial harmonic." msgstr "" -#: js/ToneActions.js:378 -#: js/ToneActions.js:417 -#: js/ToneActions.js:456 -#: js/timbre.js:782 -msgid "Unable to use synth due to existing oscillator" +#: js/blocks/ToneBlocks.js:284 +#.TRANS: partials are weighted components in a harmonic series +msgid "Partial weight must be between 0 and 1." msgstr "" -#: js/ToneActions.js:388 -#: js/ToneActions.js:427 -msgid "The input cannot be negative." +#: js/blocks/ToneBlocks.js:297 +#.TRANS: partials are weighted components in a harmonic series +msgid "Partial block should be used inside of a Weighted-partials block." msgstr "" -#: js/DictActions.js:75 -#: js/DictActions.js:153 -#: js/DictActions.js:188 -msgid "font" +#: js/blocks/ToneBlocks.js:325 +#.TRANS: partials are weighted components in a harmonic series +msgid "weighted partials" msgstr "" -#: js/musicutils.js:363 -#: js/musicutils.js:471 -#: js/pitchdrummatrix.js:151 -#: js/musickeyboard.js:2563 -msgid "rest" +#: js/blocks/ToneBlocks.js:383 +msgid "The Harmonic block will add harmonics to the contained notes." msgstr "" -#: js/musicutils.js:565 -#.TRANS: ordinal number. Please keep exactly one space between each number. -msgid "1st 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th" +#: js/blocks/ToneBlocks.js:390 +#.TRANS: A harmonic is an overtone. +msgid "harmonic" msgstr "" -#: js/musicutils.js:629 -#: js/musicutils.js:812 -#: js/musicutils.js:911 -#.TRANS: augmented is a music term related to intervals -msgid "augmented" +#: js/blocks/ToneBlocks.js:431 +msgid "The Distortion block adds distortion to the pitch." msgstr "" -#: js/musicutils.js:631 -#: js/musicutils.js:813 -#: js/musicutils.js:910 -#.TRANS: diminished is a music term related to intervals and mode -msgid "diminished" +#: js/blocks/ToneBlocks.js:438 +#: js/widgets/timbre.js:2100 +#.TRANS: distortion is an alteration in the sound +msgid "distortion" msgstr "" -#: js/musicutils.js:639 -#.TRANS: twelve semi-tone scale for music -msgid "chromatic" +#: js/blocks/ToneBlocks.js:487 +msgid "The Tremolo block adds a wavering effect." msgstr "" -#: js/musicutils.js:640 -msgid "algerian" +#: js/blocks/ToneBlocks.js:495 +#: js/widgets/timbre.js:2092 +#.TRANS: a wavering effect in a musical tone +msgid "tremolo" msgstr "" -#: js/musicutils.js:641 -msgid "spanish" +#: js/blocks/ToneBlocks.js:500 +#: js/blocks/ToneBlocks.js:569 +#: js/blocks/ToneBlocks.js:630 +#: js/blocks/ToneBlocks.js:689 +#: js/widgets/timbre.js:2134 +#: js/widgets/timbre.js:2222 +#: js/widgets/timbre.js:2317 +#: js/widgets/timbre.js:2419 +#.TRANS: rate at which tremolo wavers +msgid "rate" msgstr "" -#: js/musicutils.js:643 -#.TRANS: modal scale in music -msgid "octatonic" +#: js/blocks/ToneBlocks.js:502 +#: js/blocks/ToneBlocks.js:630 +#: js/widgets/timbre.js:2137 +#: js/widgets/timbre.js:2328 +#.TRANS: amplitude of tremolo waver +msgid "depth" msgstr "" -#: js/musicutils.js:645 -#.TRANS: harmonic major scale in music -msgid "harmonic major" +#: js/blocks/ToneBlocks.js:559 +msgid "The Phaser block adds a sweeping sound." msgstr "" -#: js/musicutils.js:647 -#.TRANS: natural minor scales in music -msgid "natural minor" +#: js/blocks/ToneBlocks.js:566 +#: js/widgets/timbre.js:2098 +#.TRANS: alter the phase of the sound +msgid "phaser" msgstr "" -#: js/musicutils.js:649 -#.TRANS: harmonic minor scale in music -msgid "harmonic minor" +#: js/blocks/ToneBlocks.js:569 +#: js/turtleactions/IntervalsActions.js:114 +#: js/widgets/timbre.js:2422 +msgid "octaves" msgstr "" -#: js/musicutils.js:651 -#.TRANS: melodic minor scale in music -msgid "melodic minor" +#: js/blocks/ToneBlocks.js:569 +#: js/widgets/timbre.js:2425 +msgid "base frequency" msgstr "" -#: js/musicutils.js:655 -#.TRANS: modal scale for music -msgid "dorian" +#: js/blocks/ToneBlocks.js:619 +msgid "The Chorus block adds a chorus effect." msgstr "" -#: js/musicutils.js:657 -#.TRANS: modal scale for music -msgid "phrygian" +#: js/blocks/ToneBlocks.js:627 +#: js/widgets/timbre.js:2096 +#.TRANS: musical effect to simulate a choral sound +msgid "chorus" msgstr "" -#: js/musicutils.js:659 -#.TRANS: modal scale for music -msgid "lydian" +#: js/blocks/ToneBlocks.js:630 +msgid "delay" msgstr "" -#: js/musicutils.js:661 -#.TRANS: modal scale for music -msgid "mixolydian" +#: js/blocks/ToneBlocks.js:678 +msgid "The Vibrato block adds a rapid, slight variation in pitch." msgstr "" -#: js/musicutils.js:665 -#.TRANS: modal scale for music -msgid "locrian" +#: js/blocks/ToneBlocks.js:686 +#: js/widgets/timbre.js:2094 +#.TRANS: a rapid, slight variation in pitch +msgid "vibrato" msgstr "" -#: js/musicutils.js:667 -#.TRANS: minor jazz scale for music -msgid "jazz minor" +#: js/blocks/ToneBlocks.js:689 +#: js/widgets/timbre.js:2221 +msgid "intensity" msgstr "" -#: js/musicutils.js:669 -#.TRANS: bebop scale for music -msgid "bebop" +#: js/blocks/ToneBlocks.js:733 +#.TRANS: select synthesizer +msgid "set synth" msgstr "" -#: js/musicutils.js:670 -msgid "arabic" +#: js/blocks/ToneBlocks.js:804 +msgid "synth name" msgstr "" -#: js/musicutils.js:671 -msgid "byzantine" +#: js/blocks/ToneBlocks.js:842 +msgid "set default instrument" msgstr "" -#: js/musicutils.js:673 -#.TRANS: musical scale for music by Verdi -msgid "enigmatic" +#: js/blocks/ToneBlocks.js:895 +#: js/blocks/ToneBlocks.js:943 +#.TRANS: set the characteristics of a custom instrument +msgid "set instrument" msgstr "" -#: js/musicutils.js:674 -msgid "ethiopian" +#: js/blocks/ToneBlocks.js:898 +#: js/blocks/ToneBlocks.js:926 +#: js/blocks/ToneBlocks.js:932 +msgid "The Set instrument block selects a voice for the synthesizer," msgstr "" -#: js/musicutils.js:676 -#.TRANS: Ethiopic scale for music -msgid "geez" +#: js/blocks/ToneBlocks.js:900 +#: js/blocks/ToneBlocks.js:934 +msgid "eg guitar piano violin or cello." msgstr "" -#: js/musicutils.js:677 -msgid "hindu" +#: js/blocks/ToneBlocks.js:1015 +msgid "Import a sound file to use as an instrument and set its pitch center." msgstr "" -#: js/musicutils.js:678 -msgid "hungarian" +#: js/blocks/ToneBlocks.js:1110 +msgid "Upload a sound file to connect with the sample block." msgstr "" -#: js/musicutils.js:680 -#.TRANS: minor Romanian scale for music -msgid "romanian minor" +#: js/blocks/VolumeBlocks.js:35 +msgid "synth volume" msgstr "" -#: js/musicutils.js:681 -msgid "spanish gypsy" +#: js/blocks/VolumeBlocks.js:39 +msgid "The Synth volume block returns the current volume of the current synthesizer." msgstr "" -#: js/musicutils.js:683 -#.TRANS: musical scale for Mid-Eastern music -msgid "maqam" +#: js/blocks/VolumeBlocks.js:105 +msgid "master volume" msgstr "" -#: js/musicutils.js:685 -#.TRANS: minor blues scale for music -msgid "minor blues" +#: js/blocks/VolumeBlocks.js:109 +msgid "The Master volume block returns the master volume." msgstr "" -#: js/musicutils.js:687 -#.TRANS: major blues scale for music -msgid "major blues" +#: js/blocks/VolumeBlocks.js:355 +#: js/blocks/VolumeBlocks.js:524 +msgid "set synth volume" msgstr "" -#: js/musicutils.js:688 -msgid "whole tone" +#: js/blocks/VolumeBlocks.js:362 +#: js/blocks/VolumeBlocks.js:545 +msgid "synth" msgstr "" -#: js/musicutils.js:690 -#.TRANS: pentatonic is a general term that means "five note scale". This scale is typically known as "minor pentatonic" -msgid "minor pentatonic" +#: js/blocks/VolumeBlocks.js:403 +#: js/blocks/VolumeBlocks.js:577 +#: js/blocks/VolumeBlocks.js:740 +#: js/turtleactions/VolumeActions.js:173 +msgid "Setting volume to 0." msgstr "" -#: js/musicutils.js:692 -#.TRANS: pentatonic is a general term that means "five note scale". This scale is typically known as "major pentatonic" -msgid "major pentatonic" +#: js/blocks/VolumeBlocks.js:440 +msgid "Synth not found" msgstr "" -#: js/musicutils.js:693 -msgid "chinese" +#: js/blocks/VolumeBlocks.js:494 +msgid "set drum volume" msgstr "" -#: js/musicutils.js:694 -msgid "egyptian" +#: js/blocks/VolumeBlocks.js:530 +msgid "The Set synth volume block will change the volume of a particular synth," msgstr "" -#: js/musicutils.js:696 -#.TRANS: https://en.wikipedia.org/wiki/Hirajoshi_scale NOTE: There are three different versions of this scale -msgid "hirajoshi" +#: js/blocks/VolumeBlocks.js:532 +msgid "eg guitar violin snare drum etc." msgstr "" -#: js/musicutils.js:697 -msgid "Japan" +#: js/blocks/VolumeBlocks.js:534 +msgid "The default volume is 50." msgstr "" -#: js/musicutils.js:699 -#.TRANS: https://en.wikipedia.org/wiki/In_scale and https://en.wikipedia.org/wiki/Sakura_Sakura -msgid "in" +#: js/blocks/VolumeBlocks.js:536 +msgid "The range is 0 for silence to 100 for full volume." msgstr "" -#: js/musicutils.js:701 -#.TRANS: https://en.wikipedia.org/wiki/Miny%C5%8D_scale -msgid "minyo" +#: js/blocks/VolumeBlocks.js:597 +msgid "set panning" msgstr "" -#: js/musicutils.js:703 -#.TRANS: Italian mathematician -msgid "fibonacci" +#: js/blocks/VolumeBlocks.js:603 +msgid "The Set Panning block sets the panning for all synthesizers." msgstr "" -#: js/musicutils.js:708 -#: js/musicutils.js:1106 -#.TRANS: lowpass filter -msgid "lowpass" +#: js/blocks/VolumeBlocks.js:625 +msgid "Warning: Sound is coming out from only the left or right side." msgstr "" -#: js/musicutils.js:710 -#: js/musicutils.js:1107 -#.TRANS: bandpass filter -msgid "bandpass" +#: js/blocks/VolumeBlocks.js:647 +#: js/blocks/VolumeBlocks.js:695 +msgid "set master volume" msgstr "" -#: js/musicutils.js:712 -#: js/musicutils.js:1108 -#.TRANS: high-shelf filter -msgid "highshelf" +#: js/blocks/VolumeBlocks.js:653 +msgid "The Set master volume block sets the volume for all synthesizers." msgstr "" -#: js/musicutils.js:714 -#: js/musicutils.js:1109 -#.TRANS: low-shelf filter -msgid "lowshelf" +#: js/blocks/VolumeBlocks.js:784 +msgid "The Set relative volume block changes the volume of the contained notes." msgstr "" -#: js/musicutils.js:716 -#: js/musicutils.js:1110 -#.TRANS: notch-shelf filter -msgid "notch" +#: js/blocks/VolumeBlocks.js:791 +msgid "set relative volume" msgstr "" -#: js/musicutils.js:718 -#: js/musicutils.js:1111 -#.TRANS: all-pass filter -msgid "allpass" +#: js/blocks/VolumeBlocks.js:857 +msgid "decrescendo" msgstr "" -#: js/musicutils.js:720 -#: js/musicutils.js:1112 -#.TRANS: peaking filter -msgid "peaking" +#: js/blocks/VolumeBlocks.js:921 +msgid "crescendo" msgstr "" -#: js/musicutils.js:731 -#: js/synthutils.js:58 -#.TRANS: musical instrument -msgid "violin" +#: js/blocks/WidgetBlocks.js:81 +#.TRANS: sound envelope (ADSR) +msgid "envelope" msgstr "" -#: js/musicutils.js:732 -#: js/synthutils.js:60 -#.TRANS: viola musical instrument -msgid "viola" +#: js/blocks/WidgetBlocks.js:89 +#.TRANS: Attack time is the time taken for initial run-up of level from nil to peak, beginning when the key is first pressed. +msgid "attack" msgstr "" -#: js/musicutils.js:733 -#: js/synthutils.js:98 -#.TRANS: xylophone musical instrument -msgid "xylophone" +#: js/blocks/WidgetBlocks.js:91 +#.TRANS: Decay time is the time taken for the subsequent run down from the attack level to the designated sustain level. +msgid "decay" msgstr "" -#: js/musicutils.js:734 -#: js/synthutils.js:120 -#.TRANS: vibraphone musical instrument -msgid "vibraphone" +#: js/blocks/WidgetBlocks.js:93 +#.TRANS: Sustain level is the level during the main sequence of the sound's duration, until the key is released. +msgid "sustain" msgstr "" -#: js/musicutils.js:735 -#: js/synthutils.js:62 -#.TRANS: musical instrument -msgid "cello" +#: js/blocks/WidgetBlocks.js:95 +#.TRANS: Release time is the time taken for the level to decay from the sustain level to zero after the key is released. +msgid "release" msgstr "" -#: js/musicutils.js:737 -#: js/synthutils.js:66 -#.TRANS: viola musical instrument -msgid "double bass" +#: js/blocks/WidgetBlocks.js:113 +msgid "Attack value should be from 0 to 100." msgstr "" -#: js/musicutils.js:738 -#: js/synthutils.js:68 -#: js/rhythmruler.js:2119 -#.TRANS: musical instrument -msgid "guitar" +#: js/blocks/WidgetBlocks.js:116 +msgid "Decay value should be from 0 to 100." msgstr "" -#: js/musicutils.js:739 -#: js/synthutils.js:70 -#.TRANS: musical instrument -msgid "acoustic guitar" +#: js/blocks/WidgetBlocks.js:119 +msgid "Sustain value should be from 0 to 100." msgstr "" -#: js/musicutils.js:740 -#: js/synthutils.js:72 -#.TRANS: musical instrument -msgid "flute" +#: js/blocks/WidgetBlocks.js:122 +msgid "Release value should be from 0-100." msgstr "" -#: js/musicutils.js:741 -#: js/synthutils.js:74 -#.TRANS: musical instrument -msgid "clarinet" +#: js/blocks/WidgetBlocks.js:140 +msgid "You are adding multiple envelope blocks." msgstr "" -#: js/musicutils.js:742 -#: js/synthutils.js:76 -#.TRANS: musical instrument -msgid "saxophone" +#: js/blocks/WidgetBlocks.js:171 +#.TRANS: a filter removes some unwanted components from a signal +msgid "filter" msgstr "" -#: js/musicutils.js:743 -#: js/synthutils.js:78 -#.TRANS: musical instrument -msgid "tuba" +#: js/blocks/WidgetBlocks.js:181 +#: js/widgets/timbre.js:1818 +#.TRANS: rolloff is the steepness of a change in frequency. +msgid "rolloff" msgstr "" -#: js/musicutils.js:744 -#: js/synthutils.js:80 -#.TRANS: musical instrument -msgid "trumpet" +#: js/blocks/WidgetBlocks.js:213 +#.TRANS: rolloff is the steepness of a change in frequency. +msgid "Rolloff value should be either -12, -24, -48, or -96 decibels/octave." msgstr "" -#: js/musicutils.js:745 -#: js/synthutils.js:82 -#.TRANS: musical instrument -msgid "oboe" +#: js/blocks/WidgetBlocks.js:252 +msgid "The Temperament tool is used to define custom tuning." msgstr "" -#: js/musicutils.js:746 -#: js/synthutils.js:84 -#.TRANS: musical instrument -msgid "trombone" +#: js/blocks/WidgetBlocks.js:332 +#: js/blocks/WidgetBlocks.js:1573 +#: js/widgets/sampler.js:547 +msgid "Upload a sample and adjust its pitch center." msgstr "" -#: js/musicutils.js:747 -#: js/synthutils.js:100 -#.TRANS: polytone synthesizer -msgid "electronic synth" +#: js/blocks/WidgetBlocks.js:339 +#.TRANS: the speed at music is should be played. +msgid "sampler" msgstr "" -#: js/musicutils.js:748 -#: js/synthutils.js:102 -#.TRANS: simple monotone synthesizer -msgid "simple 1" +#: js/blocks/WidgetBlocks.js:517 +msgid "The Meter block opens a tool to select strong beats for the meter." msgstr "" -#: js/musicutils.js:749 -msgid "simple 2" +#: js/blocks/WidgetBlocks.js:573 +msgid "The oscilloscope block opens a tool to visualize waveforms." msgstr "" -#: js/musicutils.js:750 -msgid "simple 3" +#: js/blocks/WidgetBlocks.js:578 +msgid "oscilloscope" msgstr "" -#: js/musicutils.js:751 -msgid "simple 4" +#: js/blocks/WidgetBlocks.js:645 +msgid "The Custom mode block opens a tool to explore musical mode (the spacing of the notes in a scale)." msgstr "" -#: js/musicutils.js:753 -#: js/synthutils.js:49 -#.TRANS: brown noise synthesizer -msgid "brown noise" +#: js/blocks/WidgetBlocks.js:651 +#.TRANS: musical mode is the pattern of half-steps in an octave, e.g., Major or Minor modes +msgid "custom mode" msgstr "" -#: js/musicutils.js:754 -#: js/synthutils.js:51 -#.TRANS: pink noise synthesizer -msgid "pink noise" +#: js/blocks/WidgetBlocks.js:700 +msgid "The Tempo block opens a metronome to visualize the beat." msgstr "" -#: js/musicutils.js:756 -#: js/synthutils.js:127 -#: js/rhythmruler.js:1670 -#: js/rhythmruler.js:1928 -#.TRANS: musical instrument -msgid "snare drum" +#: js/blocks/WidgetBlocks.js:762 +msgid "The Arpeggio Widget is used to compose chord sequences." msgstr "" -#: js/musicutils.js:757 -#: js/synthutils.js:129 -#.TRANS: musical instrument -msgid "kick drum" +#: js/blocks/WidgetBlocks.js:837 +msgid "The Pitch drum matrix is used to map pitches to drum sounds." msgstr "" -#: js/musicutils.js:758 -#: js/synthutils.js:131 -#.TRANS: musical instrument -msgid "tom tom" +#: js/blocks/WidgetBlocks.js:842 +#.TRANS: makes a mapping between pitches and drum sounds +msgid "pitch-drum mapper" msgstr "" -#: js/musicutils.js:759 -#: js/synthutils.js:133 -#.TRANS: musical instrument -msgid "floor tom" +#: js/blocks/WidgetBlocks.js:891 +msgid "You must have at least one pitch block and one drum block in the matrix." msgstr "" -#: js/musicutils.js:760 -#: js/synthutils.js:135 -#.TRANS: musical instrument -msgid "bass drum" +#: js/blocks/WidgetBlocks.js:920 +msgid "The Pitch slider tool to is used to generate pitches at selected frequencies." msgstr "" -#: js/musicutils.js:761 -#: js/synthutils.js:137 -#.TRANS: a drum made from an inverted cup -msgid "cup drum" +#: js/blocks/WidgetBlocks.js:925 +#.TRANS: widget to generate pitches using a slider +msgid "pitch slider" msgstr "" -#: js/musicutils.js:762 -#: js/synthutils.js:139 -#.TRANS: musical instrument -msgid "darbuka drum" +#: js/blocks/WidgetBlocks.js:977 +msgid "chromatic keyboard" msgstr "" -#: js/musicutils.js:763 -#: js/synthutils.js:143 -#.TRANS: musical instrument -msgid "hi hat" +#: js/blocks/WidgetBlocks.js:1011 +#: js/blocks/WidgetBlocks.js:1077 +#.TRANS: widget to generate pitches using a slider +msgid "music keyboard" msgstr "" -#: js/musicutils.js:764 -#: js/synthutils.js:145 -#.TRANS: a small metal bell -msgid "ride bell" +#: js/blocks/WidgetBlocks.js:1062 +#: js/blocks/WidgetBlocks.js:1069 +msgid "The Music keyboard block opens a piano keyboard that can be used to create notes." msgstr "" -#: js/musicutils.js:765 -#: js/synthutils.js:147 -#.TRANS: musical instrument -msgid "cow bell" +#: js/blocks/WidgetBlocks.js:1128 +msgid "The Pitch staircase tool to is used to generate pitches from a given ratio." msgstr "" -#: js/musicutils.js:766 -msgid "japanese drum" +#: js/blocks/WidgetBlocks.js:1135 +#.TRANS: generate a progressive sequence of pitches +msgid "pitch staircase" msgstr "" -#: js/musicutils.js:767 -#: js/synthutils.js:153 -#.TRANS: musical instrument -msgid "japanese bell" +#: js/blocks/WidgetBlocks.js:1222 +msgid "The Rhythm Maker block opens a tool to create drum machines." msgstr "" -#: js/musicutils.js:768 -#: js/synthutils.js:149 -#.TRANS: musical instrument -msgid "triangle bell" +#: js/blocks/WidgetBlocks.js:1291 +msgid "G major scale" msgstr "" -#: js/musicutils.js:769 -#: js/synthutils.js:151 -#.TRANS: musical instrument -msgid "finger cymbals" +#: js/blocks/WidgetBlocks.js:1326 +msgid "C major scale" msgstr "" -#: js/musicutils.js:770 -#: js/synthutils.js:155 -#.TRANS: a musically tuned set of bells -msgid "chime" +#: js/blocks/WidgetBlocks.js:1366 +msgid "The Phrase Maker block opens a tool to create musical phrases." msgstr "" -#: js/musicutils.js:771 -#: js/synthutils.js:157 -#.TRANS: a musical instrument -msgid "gong" +#: js/blocks/WidgetBlocks.js:1373 +#.TRANS: assigns pitch to a sequence of beats to generate a melody +msgid "phrase maker" msgstr "" -#: js/musicutils.js:772 -#: js/synthutils.js:159 -#.TRANS: sound effect -msgid "clang" +#: js/blocks/WidgetBlocks.js:1444 +msgid "You must have at least one pitch block and one rhythm block in the matrix." msgstr "" -#: js/musicutils.js:773 -#: js/synthutils.js:161 -#.TRANS: sound effect -msgid "crash" +#: js/blocks/WidgetBlocks.js:1503 +msgid "The Status block opens a tool for inspecting the status of Music Blocks as it is running." msgstr "" -#: js/musicutils.js:774 -#: js/synthutils.js:163 -#.TRANS: sound effect -msgid "bottle" +#: js/blocks/WidgetBlocks.js:1580 +#.TRANS: AI-generated music +msgid "aimusic" msgstr "" -#: js/musicutils.js:775 -#: js/synthutils.js:165 -#.TRANS: sound effect -msgid "clap" +#: js/turtleactions/MeterActions.js:101 +#: js/turtleactions/MeterActions.js:139 +msgid "beats per minute must be greater than" msgstr "" -#: js/musicutils.js:776 -#: js/synthutils.js:167 -#.TRANS: sound effect -msgid "slap" +#: js/turtleactions/MeterActions.js:111 +#: js/turtleactions/MeterActions.js:149 +msgid "maximum" msgstr "" -#: js/musicutils.js:777 -#: js/synthutils.js:169 -#.TRANS: sound effect -msgid "splash" +#: js/turtleactions/MeterActions.js:117 +#: js/turtleactions/MeterActions.js:155 +msgid "beats per minute is" msgstr "" -#: js/musicutils.js:778 -#: js/synthutils.js:171 -#.TRANS: sound effect -msgid "bubbles" +#: js/turtleactions/DictActions.js:75 +#: js/turtleactions/DictActions.js:142 +#: js/turtleactions/DictActions.js:172 +msgid "font" msgstr "" -#: js/musicutils.js:779 -#: js/synthutils.js:173 -#.TRANS: sound effect -msgid "raindrop" +#: js/turtleactions/DictActions.js:255 +msgid "Dictionary with this name does not exist" msgstr "" -#: js/musicutils.js:780 -#: js/synthutils.js:175 -#.TRANS: animal sound effect -msgid "cat" +#: js/turtleactions/DictActions.js:259 +msgid "Key with this name does not exist in " msgstr "" -#: js/musicutils.js:781 -#: js/synthutils.js:177 -#.TRANS: animal sound effect -msgid "cricket" +#: js/turtleactions/DrumActions.js:227 +msgid "Noise Block: Did you mean to use a Note block?" msgstr "" -#: js/musicutils.js:782 -#: js/synthutils.js:179 -#.TRANS: animal sound effect -msgid "dog" +#: js/turtleactions/IntervalsActions.js:113 +msgid "one" msgstr "" -#: js/musicutils.js:784 -#: js/synthutils.js:86 -#.TRANS: musical instrument -msgid "banjo" +#: js/turtleactions/IntervalsActions.js:113 +msgid "two" msgstr "" -#: js/musicutils.js:785 -#: js/synthutils.js:88 -#.TRANS: musical instrument -msgid "koto" +#: js/turtleactions/IntervalsActions.js:113 +msgid "three" msgstr "" -#: js/musicutils.js:786 -#: js/synthutils.js:90 -#.TRANS: musical instrument -msgid "dulcimer" +#: js/turtleactions/IntervalsActions.js:113 +msgid "four" msgstr "" -#: js/musicutils.js:787 -#: js/synthutils.js:92 -#.TRANS: musical instrument -msgid "electric guitar" +#: js/turtleactions/IntervalsActions.js:113 +msgid "five" msgstr "" -#: js/musicutils.js:788 -#: js/synthutils.js:94 -#.TRANS: musical instrument -msgid "bassoon" +#: js/turtleactions/IntervalsActions.js:113 +msgid "six" msgstr "" -#: js/musicutils.js:789 -#: js/synthutils.js:96 -#.TRANS: musical instrument -msgid "celeste" +#: js/turtleactions/IntervalsActions.js:113 +msgid "seven" msgstr "" -#: js/musicutils.js:791 -#: js/musicutils.js:1123 -#: js/musicutils.js:1131 -#: js/temperament.js:650 -#.TRANS: musical temperament -msgid "equal" +#: js/turtleactions/IntervalsActions.js:113 +msgid "eight" msgstr "" -#: js/musicutils.js:793 -#: js/musicutils.js:1125 -#: js/musicutils.js:1133 -#.TRANS: musical temperament -msgid "Pythagorean" +#: js/turtleactions/IntervalsActions.js:113 +msgid "nine" msgstr "" -#: js/musicutils.js:795 -#: js/musicutils.js:1124 -#: js/musicutils.js:1132 -#.TRANS: musical temperament -msgid "just intonation" +#: js/turtleactions/IntervalsActions.js:119 +msgid "a" msgstr "" -#: js/musicutils.js:797 -#: js/musicutils.js:1126 -#: js/musicutils.js:1127 -#: js/musicutils.js:1134 -#: js/musicutils.js:1135 -#.TRANS: musical temperament -msgid "meantone" +#: js/turtleactions/IntervalsActions.js:120 +msgid "below" msgstr "" -#: js/musicutils.js:814 -msgid "major 7th" +#: js/turtleactions/IntervalsActions.js:124 +msgid "above" msgstr "" -#: js/musicutils.js:815 -msgid "minor 7th" +#: js/turtleactions/IntervalsActions.js:131 +msgid "plus" msgstr "" -#: js/musicutils.js:816 -msgid "dominant 7th" +#: js/turtleactions/IntervalsActions.js:139 +msgid " below" msgstr "" -#: js/musicutils.js:817 -msgid "minor-major 7th" +#: js/turtleactions/IntervalsActions.js:257 +msgid "Adding missing pitch number 0." msgstr "" -#: js/musicutils.js:818 -msgid "fully-diminished 7th" +#: js/turtleactions/IntervalsActions.js:265 +msgid "Ignoring pitch numbers less than zero or greater than eleven." msgstr "" -#: js/musicutils.js:819 -msgid "half-diminished 7th" +#: js/turtleactions/IntervalsActions.js:271 +msgid "Ignoring duplicate pitch numbers." msgstr "" -#: js/musicutils.js:4379 -#: js/musicutils.js:4416 -msgid "current" +#: js/turtleactions/ToneActions.js:134 +msgid "Vibrato intensity must be between 1 and 100." msgstr "" -#: js/musicutils.js:4382 -#: js/musicutils.js:4407 -msgid "next" +#: js/turtleactions/ToneActions.js:139 +msgid "Vibrato rate must be greater than 0." msgstr "" -#: js/musicutils.js:4385 -#: js/musicutils.js:4412 -msgid "previous" +#: js/turtleactions/ToneActions.js:192 +#: js/turtleactions/ToneActions.js:265 +#.TRANS: Depth is the intesity of the tremolo or chorus effect. +msgid "Depth is out of range." msgstr "" -#: js/synthutils.js:104 -#.TRANS: simple monotone synthesizer -msgid "simple-2" +#: js/turtleactions/ToneActions.js:301 +msgid "Distortion must be from 0 to 100." msgstr "" -#: js/synthutils.js:106 -#.TRANS: simple monotone synthesizer -msgid "simple-3" +#: js/turtleactions/ToneActions.js:332 +#.TRANS: partials components in a harmonic series +msgid "Partial must be greater than or equal to 0." msgstr "" -#: js/synthutils.js:108 -#.TRANS: simple monotone synthesizer -msgid "simple-4" +#: js/turtleactions/ToneActions.js:378 +#: js/turtleactions/ToneActions.js:417 +#: js/turtleactions/ToneActions.js:456 +#: js/widgets/timbre.js:782 +msgid "Unable to use synth due to existing oscillator" msgstr "" -#: js/synthutils.js:141 -#.TRANS: musical instrument -msgid "taiko" +#: js/turtleactions/ToneActions.js:388 +#: js/turtleactions/ToneActions.js:427 +msgid "The input cannot be negative." msgstr "" -#: js/modewidget.js:86 -#: js/modewidget.js:88 -#: js/modewidget.js:642 -#: js/modewidget.js:644 -#: js/modewidget.js:712 -#: js/modewidget.js:714 -#: js/temperament.js:2078 -#: js/rhythmruler.js:189 -#: js/rhythmruler.js:1410 -#: js/rhythmruler.js:1412 -#: js/rhythmruler.js:1435 -#: js/rhythmruler.js:1437 -#: js/meterwidget.js:89 -#: js/meterwidget.js:91 +#: js/widgets/modewidget.js:86 +#: js/widgets/modewidget.js:88 +#: js/widgets/modewidget.js:642 +#: js/widgets/modewidget.js:644 +#: js/widgets/modewidget.js:712 +#: js/widgets/modewidget.js:714 +#: js/widgets/meterwidget.js:194 +#: js/widgets/meterwidget.js:196 +#: js/widgets/temperament.js:2236 +#: js/widgets/rhythmruler.js:457 +#: js/widgets/rhythmruler.js:1790 +#: js/widgets/rhythmruler.js:1792 +#: js/widgets/rhythmruler.js:1816 +#: js/widgets/rhythmruler.js:1818 msgid "Play all" msgstr "" -#: js/modewidget.js:115 -#: js/pitchstaircase.js:641 -#: js/phrasemaker.js:339 -#: js/pitchdrummatrix.js:94 -#: js/pitchslider.js:125 -#: js/temperament.js:2083 -#: js/musickeyboard.js:530 -#: js/timbre.js:756 -#: js/meterwidget.js:124 -#: js/arpeggio.js:103 +#: js/widgets/modewidget.js:115 +#: js/widgets/meterwidget.js:229 +#: js/widgets/pitchdrummatrix.js:166 +#: js/widgets/pitchslider.js:125 +#: js/widgets/pitchstaircase.js:641 +#: js/widgets/temperament.js:2244 +#: js/widgets/timbre.js:756 +#: js/widgets/arpeggio.js:103 +#: js/widgets/musickeyboard.js:688 +#: js/widgets/phrasemaker.js:550 msgid "Save" msgstr "" -#: js/modewidget.js:121 -#: js/pitchstaircase.js:686 -#: js/phrasemaker.js:356 -#: js/pitchdrummatrix.js:109 -#: js/musickeyboard.js:534 -#: js/rhythmruler.js:269 -#: js/arpeggio.js:118 +#: js/widgets/modewidget.js:121 +#: js/widgets/pitchdrummatrix.js:181 +#: js/widgets/pitchstaircase.js:686 +#: js/widgets/arpeggio.js:118 +#: js/widgets/musickeyboard.js:696 +#: js/widgets/phrasemaker.js:567 +#: js/widgets/rhythmruler.js:601 #.TRANS: clear all subdivisions from the ruler. msgid "Clear" msgstr "" -#: js/modewidget.js:127 +#: js/widgets/modewidget.js:127 msgid "Rotate counter clockwise" msgstr "" -#: js/modewidget.js:133 +#: js/widgets/modewidget.js:133 msgid "Rotate clockwise" msgstr "" -#: js/modewidget.js:139 +#: js/widgets/modewidget.js:139 msgid "Invert" msgstr "" -#: js/modewidget.js:145 -#: js/pitchstaircase.js:678 -#: js/rhythmruler.js:258 -#: js/timbre.js:963 +#: js/widgets/modewidget.js:145 +#: js/widgets/pitchstaircase.js:678 +#: js/widgets/timbre.js:963 +#: js/widgets/rhythmruler.js:578 msgid "Undo" msgstr "" -#: js/modewidget.js:163 +#: js/widgets/modewidget.js:163 #.TRANS: A circle of notes represents the musical mode. msgid "Click in the circle to select notes for the mode." msgstr "" -#: js/modewidget.js:1017 -#: js/pitchstaircase.js:580 -#: js/phrasemaker.js:4855 -#: js/temperament.js:1754 -#: js/rhythmruler.js:1865 -#: js/rhythmruler.js:2081 -#: js/tempo.js:414 +#: js/widgets/modewidget.js:1017 +#: js/widgets/pitchstaircase.js:580 +#: js/widgets/temperament.js:1929 +#: js/widgets/tempo.js:414 +#: js/widgets/phrasemaker.js:5356 +#: js/widgets/rhythmruler.js:2254 +#: js/widgets/rhythmruler.js:2472 msgid "New action block generated!" msgstr "" -#: js/oscilloscope.js:79 -msgid "Zoom In" -msgstr "" - -#: js/oscilloscope.js:88 -msgid "Zoom Out" -msgstr "" - -#: js/pitchstaircase.js:624 -msgid "Play chord" -msgstr "" - -#: js/pitchstaircase.js:632 -msgid "Play scale" +#: js/widgets/meterwidget.js:275 +msgid "Reset" msgstr "" -#: js/pitchstaircase.js:696 -msgid "Click on a note to create a new step." +#: js/widgets/meterwidget.js:301 +msgid "Click in the circle to select strong beats for the meter." msgstr "" -#: js/phrasemaker.js:363 -msgid "Export" +#: js/widgets/oscilloscope.js:79 +msgid "Zoom In" msgstr "" -#: js/phrasemaker.js:370 -msgid "Sort" +#: js/widgets/oscilloscope.js:88 +msgid "Zoom Out" msgstr "" -#: js/phrasemaker.js:373 -#: js/musickeyboard.js:559 -msgid "Add note" +#: js/widgets/pitchdrummatrix.js:356 +#: js/widgets/pitchdrummatrix.js:752 +msgid "Click in the grid to map notes to drums." msgstr "" -#: js/phrasemaker.js:764 -msgid "Click on the table to add notes." +#: js/widgets/pitchslider.js:103 +msgid "Move up" msgstr "" -#: js/phrasemaker.js:2414 -#: js/phrasemaker.js:2543 -msgid "tuplet value" +#: js/widgets/pitchslider.js:114 +msgid "Move down" msgstr "" -#: js/pitchdrummatrix.js:270 -#: js/pitchdrummatrix.js:639 -msgid "Click in the grid to map notes to drums." +#: js/widgets/pitchslider.js:136 +msgid "Click on the slider to create a note block." msgstr "" -#: js/pitchslider.js:103 -msgid "Move up" +#: js/widgets/pitchstaircase.js:624 +msgid "Play chord" msgstr "" -#: js/pitchslider.js:114 -msgid "Move down" +#: js/widgets/pitchstaircase.js:632 +msgid "Play scale" msgstr "" -#: js/pitchslider.js:136 -msgid "Click on the slider to create a note block." +#: js/widgets/pitchstaircase.js:696 +msgid "Click on a note to create a new step." msgstr "" -#: js/temperament.js:215 +#: js/widgets/temperament.js:321 msgid "back to 2:1 octave space" msgstr "" -#: js/temperament.js:323 +#: js/widgets/temperament.js:447 msgid "edit" msgstr "" -#: js/temperament.js:330 -#: js/temperament.js:332 -#: js/temperament.js:1336 -#: js/temperament.js:1338 +#: js/widgets/temperament.js:454 +#: js/widgets/temperament.js:456 +#: js/widgets/temperament.js:1493 +#: js/widgets/temperament.js:1495 msgid "close" msgstr "" -#: js/temperament.js:423 -#: js/temperament.js:736 -#: js/temperament.js:743 -#: js/temperament.js:845 -#: js/temperament.js:935 -#: js/temperament.js:942 -#: js/temperament.js:1015 -#: js/temperament.js:1284 -#: js/temperament.js:1354 -#: js/temperament.js:1430 +#: js/widgets/temperament.js:552 +#: js/widgets/temperament.js:877 +#: js/widgets/temperament.js:884 +#: js/widgets/temperament.js:986 +#: js/widgets/temperament.js:1080 +#: js/widgets/temperament.js:1087 +#: js/widgets/temperament.js:1160 +#: js/widgets/temperament.js:1433 +#: js/widgets/temperament.js:1511 +#: js/widgets/temperament.js:1596 msgid "done" msgstr "" -#: js/temperament.js:477 -#: js/temperament.js:482 -#: js/temperament.js:918 +#: js/widgets/temperament.js:610 +#: js/widgets/temperament.js:615 +#: js/widgets/temperament.js:1063 msgid "ratio" msgstr "" -#: js/temperament.js:483 +#: js/widgets/temperament.js:616 msgid "interval" msgstr "" -#: js/temperament.js:611 +#: js/widgets/temperament.js:744 msgid "non scalar" msgstr "" -#: js/temperament.js:650 +#: js/widgets/temperament.js:787 msgid "ratios" msgstr "" -#: js/temperament.js:650 +#: js/widgets/temperament.js:787 msgid "arbitrary" msgstr "" -#: js/temperament.js:719 +#: js/widgets/temperament.js:860 msgid "number of divisions" msgstr "" -#: js/temperament.js:741 -#: js/temperament.js:858 -#: js/temperament.js:940 -#: js/temperament.js:1033 +#: js/widgets/temperament.js:882 +#: js/widgets/temperament.js:999 +#: js/widgets/temperament.js:1085 +#: js/widgets/temperament.js:1178 msgid "preview" msgstr "" -#: js/temperament.js:788 +#: js/widgets/temperament.js:929 msgid "The Number of divisions is too large." msgstr "" -#: js/temperament.js:921 +#: js/widgets/temperament.js:1066 msgid "recursion" msgstr "" -#: js/temperament.js:1450 +#: js/widgets/temperament.js:1616 msgid "The octave ratio has changed. This changes temperament significantly." msgstr "" -#: js/temperament.js:2087 +#: js/widgets/temperament.js:2248 msgid "Table" msgstr "" -#: js/temperament.js:2185 +#: js/widgets/temperament.js:2356 msgid "Add pitches" msgstr "" -#: js/musickeyboard.js:570 -msgid "Metronome" +#: js/widgets/tempo.js:78 +#: js/widgets/tempo.js:97 +#: js/widgets/tempo.js:99 +#: js/widgets/aiwidget.js:134 +#: js/widgets/aiwidget.js:136 +#: js/widgets/rhythmruler.js:681 +#: js/widgets/rhythmruler.js:683 +#: js/widgets/rhythmruler.js:1864 +#: js/widgets/rhythmruler.js:1866 +#: js/widgets/sampler.js:180 +#: js/widgets/sampler.js:182 +msgid "Pause" msgstr "" -#: js/musickeyboard.js:1296 -#: plugins/rodi.rtp:193 -msgid "duration" +#: js/widgets/tempo.js:113 +msgid "Save tempo" msgstr "" -#: js/musickeyboard.js:2840 -msgid "New action blocks generated!" +#: js/widgets/tempo.js:144 +msgid "speed up" msgstr "" -#: js/musickeyboard.js:2841 -msgid "New action block generated" +#: js/widgets/tempo.js:150 +msgid "slow down" msgstr "" -#: js/musickeyboard.js:2984 -#: js/musickeyboard.js:2992 -msgid "MIDI device present." +#: js/widgets/tempo.js:194 +msgid "Adjust the tempo with the buttons." msgstr "" -#: js/musickeyboard.js:2995 -msgid "No MIDI device found." +#: js/widgets/tempo.js:261 +msgid "Please enter a number between 30 and 1000" msgstr "" -#: js/musickeyboard.js:3000 -msgid "Failed to get MIDI access in browser." +#: js/widgets/tempo.js:268 +#: js/widgets/tempo.js:271 +msgid "The beats per minute must be between 30 and 1000." msgstr "" -#: js/rhythmruler.js:202 -msgid "Save rhythms" +#: js/widgets/tempo.js:287 +msgid "The beats per minute must be below 1000." msgstr "" -#: js/rhythmruler.js:222 -msgid "Save drum machine" +#: js/widgets/tempo.js:303 +msgid "The beats per minute must be above 30" msgstr "" -#: js/rhythmruler.js:263 -#.TRANS: user can tap out a rhythm by clicking on a ruler. -msgid "Tap a rhythm" +#: js/widgets/timbre.js:766 +msgid "Synthesizer" msgstr "" -#: js/rhythmruler.js:342 -#: js/rhythmruler.js:344 -#: js/rhythmruler.js:1481 -#: js/rhythmruler.js:1483 -#: js/sampler.js:110 -#: js/sampler.js:112 -#: js/tempo.js:78 -#: js/tempo.js:97 -#: js/tempo.js:99 -msgid "Pause" +#: js/widgets/timbre.js:789 +msgid "Oscillator" msgstr "" -#: js/rhythmruler.js:478 -msgid "Click on the ruler to divide it." +#: js/widgets/timbre.js:840 +msgid "Envelope" msgstr "" -#: js/rhythmruler.js:603 -#: js/rhythmruler.js:605 -#: js/rhythmruler.js:804 -#: js/rhythmruler.js:806 -#: js/rhythmruler.js:1386 -#: js/rhythmruler.js:1388 -msgid "tap a rhythm" +#: js/widgets/timbre.js:886 +#: planet/js/GlobalTag.js:50 +#.TRANS: On the Planet, we use labels to tag projects. +msgid "Effects" msgstr "" -#: js/rhythmruler.js:1084 -msgid "Maximum value of 256 has been exceeded." +#: js/widgets/timbre.js:904 +msgid "Filter" msgstr "" -#: js/sampler.js:137 -msgid "Warning: Sample is bigger than 1MB." +#: js/widgets/timbre.js:946 +msgid "Add filter" msgstr "" -#: js/sampler.js:142 -msgid "Upload failed: Sample is not a .wav file." +#: js/widgets/timbre.js:987 +msgid "Click on buttons to open the timbre design tools." msgstr "" -#: js/sampler.js:164 -msgid "A new sample block was generated." +#: js/widgets/timbre.js:1273 +msgid "harmonicity" msgstr "" -#: js/sampler.js:255 -msgid "Upload sample" +#: js/widgets/timbre.js:1340 +#: js/widgets/timbre.js:1406 +msgid "modulation index" msgstr "" -#: js/sampler.js:306 -msgid "Save sample" +#: js/widgets/timbre.js:1484 +msgid "vibrato amount" msgstr "" -#: js/sampler.js:697 -#.TRANS: The reference tone is a sound used for comparison. -msgid "reference tone" +#: js/widgets/timbre.js:1919 +msgid "Filter already present." msgstr "" -#: js/tempo.js:113 -msgid "Save tempo" +#: js/widgets/timbre.js:2322 +msgid "delay (MS)" msgstr "" -#: js/tempo.js:144 -msgid "speed up" +#: js/widgets/timbre.js:2507 +msgid "distortion amount" msgstr "" -#: js/tempo.js:150 -msgid "slow down" +#: js/widgets/aiwidget.js:180 +#: js/widgets/sampler.js:227 +msgid "Warning: Sample is bigger than 1MB." msgstr "" -#: js/tempo.js:194 -msgid "Adjust the tempo with the buttons." +#: js/widgets/aiwidget.js:539 +msgid "New start block generated" msgstr "" -#: js/tempo.js:261 -msgid "Please enter a number between 30 and 1000" +#: js/widgets/aiwidget.js:541 +msgid "MIDI loading. This may take some time depending upon the number of notes in the track" msgstr "" -#: js/tempo.js:268 -#: js/tempo.js:271 -msgid "The beats per minute must be between 30 and 1000." +#: js/widgets/aiwidget.js:551 +#: js/widgets/sampler.js:254 +msgid "Upload failed: Sample is not a .wav file." msgstr "" -#: js/tempo.js:287 -msgid "The beats per minute must be below 1000." +#: js/widgets/aiwidget.js:679 +#: js/widgets/sampler.js:432 +msgid "Save sample" msgstr "" -#: js/tempo.js:303 -msgid "The beats per minute must be above 30" +#: js/widgets/aiwidget.js:701 +msgid "AI Music" msgstr "" -#: js/timbre.js:766 -msgid "Synthesizer" +#: js/widgets/arpeggio.js:239 +msgid "Click in the grid to add steps to the arpeggio." msgstr "" -#: js/timbre.js:789 -msgid "Oscillator" +#: js/widgets/help.js:95 +#: js/widgets/help.js:125 +#: js/widgets/help.js:146 +#: js/widgets/help.js:158 +#: js/widgets/help.js:376 +#: js/widgets/help.js:391 +msgid "Take a tour" msgstr "" -#: js/timbre.js:840 -msgid "Envelope" +#: js/widgets/musickeyboard.js:725 +#: js/widgets/phrasemaker.js:584 +msgid "Add note" msgstr "" -#: js/timbre.js:886 -#: js/GlobalTag.js:50 -#.TRANS: On the Planet, we use labels to tag projects. -msgid "Effects" +#: js/widgets/musickeyboard.js:744 +msgid "Metronome" +msgstr "" + +#: js/widgets/musickeyboard.js:1549 +#: plugins/rodi.rtp:193 +msgid "duration" +msgstr "" + +#: js/widgets/musickeyboard.js:3179 +msgid "New action blocks generated" +msgstr "" + +#: js/widgets/musickeyboard.js:3180 +msgid "New action block generated" msgstr "" -#: js/timbre.js:904 -msgid "Filter" +#: js/widgets/musickeyboard.js:3365 +#: js/widgets/musickeyboard.js:3373 +msgid "MIDI device present." msgstr "" -#: js/timbre.js:946 -msgid "Add filter" +#: js/widgets/musickeyboard.js:3376 +msgid "No MIDI device found." msgstr "" -#: js/timbre.js:987 -msgid "Click on buttons to open the timbre design tools." +#: js/widgets/musickeyboard.js:3386 +msgid "Failed to get MIDI access in browser." msgstr "" -#: js/timbre.js:1273 -msgid "harmonicity" +#: js/widgets/phrasemaker.js:574 +msgid "Export" msgstr "" -#: js/timbre.js:1340 -#: js/timbre.js:1406 -msgid "modulation index" +#: js/widgets/phrasemaker.js:581 +msgid "Sort" msgstr "" -#: js/timbre.js:1484 -msgid "vibrato amount" +#: js/widgets/phrasemaker.js:975 +msgid "Click on the table to add notes." msgstr "" -#: js/timbre.js:1919 -msgid "Filter already present." +#: js/widgets/phrasemaker.js:2677 +#: js/widgets/phrasemaker.js:2819 +msgid "tuplet value" msgstr "" -#: js/timbre.js:2322 -msgid "delay (MS)" +#: js/widgets/rhythmruler.js:486 +msgid "Save rhythms" msgstr "" -#: js/timbre.js:2507 -msgid "distortion amount" +#: js/widgets/rhythmruler.js:512 +msgid "Save drum machine" msgstr "" -#: js/meterwidget.js:170 -msgid "Reset" +#: js/widgets/rhythmruler.js:589 +#.TRANS: user can tap out a rhythm by clicking on a ruler. +msgid "Tap a rhythm" msgstr "" -#: js/meterwidget.js:196 -msgid "Click in the circle to select strong beats for the meter." +#: js/widgets/rhythmruler.js:817 +msgid "Click on the ruler to divide it." msgstr "" -#: js/arpeggio.js:239 -msgid "Click in the grid to add steps to the arpeggio." +#: js/widgets/rhythmruler.js:950 +#: js/widgets/rhythmruler.js:952 +#: js/widgets/rhythmruler.js:1152 +#: js/widgets/rhythmruler.js:1154 +#: js/widgets/rhythmruler.js:1765 +#: js/widgets/rhythmruler.js:1767 +msgid "tap a rhythm" msgstr "" -#: js/ProjectStorage.js:243 -msgid "anonymous" +#: js/widgets/rhythmruler.js:1459 +msgid "Maximum value of 256 has been exceeded." msgstr "" -#: js/GlobalCard.js:68 -msgid "Share" +#: js/widgets/sampler.js:237 +msgid "Recording started..." msgstr "" -#: js/GlobalCard.js:74 -msgid "Flags" +#: js/widgets/sampler.js:245 +msgid "Recording complete..." msgstr "" -#: js/LocalCard.js:36 -msgid "View published project" +#: js/widgets/sampler.js:283 +msgid "A new sample block was generated." msgstr "" -#: js/LocalCard.js:42 -msgid "Publish project" +#: js/widgets/sampler.js:378 +msgid "Upload sample" msgstr "" -#: js/LocalCard.js:51 -msgid "Edit project" +#: js/widgets/sampler.js:399 +msgid "Warning: Your sample cannot be loaded because it is >1MB." msgstr "" -#: js/LocalCard.js:52 -msgid "Delete project" +#: js/widgets/sampler.js:448 +msgid "Toggle Mic" msgstr "" -#: js/LocalCard.js:53 -msgid "Download project" +#: js/widgets/sampler.js:458 +msgid "Playback" msgstr "" -#: js/LocalCard.js:55 -msgid "Duplicate project" +#: js/widgets/sampler.js:979 +#.TRANS: The reference tone is a sound used for comparison. +msgid "reference tone" msgstr "" -#: js/GlobalTag.js:28 +#: planet/js/GlobalTag.js:28 #.TRANS: On the Planet, we use labels to tag projects. msgid "All Projects" msgstr "" -#: js/GlobalTag.js:30 -#: js/StringHelper.js:37 +#: planet/js/GlobalTag.js:30 +#: planet/js/StringHelper.js:37 #.TRANS: On the Planet, we use labels to tag projects. msgid "My Projects" msgstr "" -#: js/GlobalTag.js:32 +#: planet/js/GlobalTag.js:32 #.TRANS: On the Planet, we use labels to tag projects. msgid "Examples" msgstr "" -#: js/GlobalTag.js:34 +#: planet/js/GlobalTag.js:34 #.TRANS: On the Planet, we use labels to tag projects. msgid "Music" msgstr "" -#: js/GlobalTag.js:36 +#: planet/js/GlobalTag.js:36 #.TRANS: On the Planet, we use labels to tag projects. msgid "Art" msgstr "" -#: js/GlobalTag.js:38 +#: planet/js/GlobalTag.js:38 #.TRANS: On the Planet, we use labels to tag projects. msgid "Math" msgstr "" -#: js/GlobalTag.js:40 +#: planet/js/GlobalTag.js:40 #.TRANS: On the Planet, we use labels to tag projects. msgid "Interactive" msgstr "" -#: js/GlobalTag.js:42 +#: planet/js/GlobalTag.js:42 #.TRANS: On the Planet, we use labels to tag projects. msgid "Design" msgstr "" -#: js/GlobalTag.js:44 +#: planet/js/GlobalTag.js:44 #.TRANS: On the Planet, we use labels to tag projects. msgid "Game" msgstr "" -#: js/GlobalTag.js:46 +#: planet/js/GlobalTag.js:46 #.TRANS: On the Planet, we use labels to tag projects. msgid "Media" msgstr "" -#: js/GlobalTag.js:48 +#: planet/js/GlobalTag.js:48 #.TRANS: On the Planet, we use labels to tag projects. msgid "Sensors" msgstr "" -#: js/GlobalTag.js:52 +#: planet/js/GlobalTag.js:52 #.TRANS: On the Planet, we use labels to tag projects. msgid "Code Snippet" msgstr "" -#: js/helper.js:149 -#: js/StringHelper.js:49 -msgid "Show more tags" +#: planet/js/LocalCard.js:36 +msgid "View published project" msgstr "" -#: js/helper.js:150 -msgid "Show fewer tags" +#: planet/js/LocalCard.js:42 +msgid "Publish project" +msgstr "" + +#: planet/js/LocalCard.js:51 +msgid "Edit project" +msgstr "" + +#: planet/js/LocalCard.js:52 +msgid "Delete project" +msgstr "" + +#: planet/js/LocalCard.js:53 +msgid "Download project" +msgstr "" + +#: planet/js/LocalCard.js:55 +msgid "Duplicate project" +msgstr "" + +#: planet/js/ProjectStorage.js:243 +msgid "anonymous" +msgstr "" + +#: planet/js/SaveInterface.js:34 +msgid "Open in Music Blocks" +msgstr "" + +#: planet/js/SaveInterface.js:35 +msgid "Open in Turtle Blocks" +msgstr "" + +#: planet/js/GlobalCard.js:68 +msgid "Share" +msgstr "" + +#: planet/js/GlobalCard.js:74 +msgid "Flags" +msgstr "" + +#: planet/js/GlobalPlanet.js:35 +msgid "No results found." +msgstr "" + +#: planet/js/GlobalPlanet.js:51 +msgid "Remix of" +msgstr "" + +#: planet/js/GlobalPlanet.js:509 +msgid "Cannot connect to server" msgstr "" -#: js/ProjectViewer.js:30 +#: planet/js/ProjectViewer.js:30 msgid "Error: Report could not be submitted. Try again later." msgstr "" -#: js/ProjectViewer.js:31 +#: planet/js/ProjectViewer.js:31 msgid "Thank you for reporting this project. A moderator will review the project shortly, to verify violation of the Sugar Labs Code of Conduct." msgstr "" -#: js/ProjectViewer.js:32 -#: js/StringHelper.js:62 -#: js/StringHelper.js:64 -#: js/StringHelper.js:68 +#: planet/js/ProjectViewer.js:32 +#: planet/js/StringHelper.js:62 +#: planet/js/StringHelper.js:64 +#: planet/js/StringHelper.js:68 msgid "Report Project" msgstr "" -#: js/ProjectViewer.js:33 -#: js/StringHelper.js:63 +#: planet/js/ProjectViewer.js:33 +#: planet/js/StringHelper.js:63 msgid "Project Reported" msgstr "" -#: js/ProjectViewer.js:34 +#: planet/js/ProjectViewer.js:34 msgid "Report description required" msgstr "" -#: js/ProjectViewer.js:35 +#: planet/js/ProjectViewer.js:35 msgid "Report description too long" msgstr "" -#: js/StringHelper.js:30 +#: planet/js/Publisher.js:30 +msgid "Feature unavailable - cannot connect to server. Reload Music Blocks to try again." +msgstr "" + +#: planet/js/Publisher.js:220 +#: planet/js/Publisher.js:237 +msgid "This field is required" +msgstr "" + +#: planet/js/Publisher.js:227 +msgid "Title too long" +msgstr "" + +#: planet/js/Publisher.js:244 +msgid "Description too long" +msgstr "" + +#: planet/js/Publisher.js:341 +msgid "Server Error" +msgstr "" + +#: planet/js/Publisher.js:341 +msgid "Try Again" +msgstr "" + +#: planet/js/StringHelper.js:30 msgid "Planet" msgstr "" -#: js/StringHelper.js:31 +#: planet/js/StringHelper.js:31 msgid "Close Planet" msgstr "" -#: js/StringHelper.js:32 +#: planet/js/StringHelper.js:32 msgid "Open project from file" msgstr "" -#: js/StringHelper.js:34 +#: planet/js/StringHelper.js:34 msgid "Local" msgstr "" -#: js/StringHelper.js:35 +#: planet/js/StringHelper.js:35 msgid "Global" msgstr "" -#: js/StringHelper.js:36 +#: planet/js/StringHelper.js:36 msgid "Search for a project" msgstr "" -#: js/StringHelper.js:38 +#: planet/js/StringHelper.js:38 msgid "Publish Project" msgstr "" -#: js/StringHelper.js:40 +#: planet/js/StringHelper.js:40 msgid "Tags (max 5)" msgstr "" -#: js/StringHelper.js:41 -#: js/StringHelper.js:61 +#: planet/js/StringHelper.js:41 +#: planet/js/StringHelper.js:61 msgid "Description" msgstr "" -#: js/StringHelper.js:42 -#: js/StringHelper.js:67 +#: planet/js/StringHelper.js:42 +#: planet/js/StringHelper.js:67 msgid "Submit" msgstr "" -#: js/StringHelper.js:43 -#: js/StringHelper.js:47 +#: planet/js/StringHelper.js:43 +#: planet/js/StringHelper.js:47 msgid "Cancel" msgstr "" -#: js/StringHelper.js:44 +#: planet/js/StringHelper.js:44 msgid "Delete \\"\\"?" msgstr "" -#: js/StringHelper.js:45 +#: planet/js/StringHelper.js:45 msgid "Permanently delete project \\"\\"?" msgstr "" -#: js/StringHelper.js:48 +#: planet/js/StringHelper.js:48 msgid "Explore Projects" msgstr "" -#: js/StringHelper.js:50 +#: planet/js/StringHelper.js:49 +#: planet/js/helper.js:149 +msgid "Show more tags" +msgstr "" + +#: planet/js/StringHelper.js:50 msgid "Most recent" msgstr "" -#: js/StringHelper.js:51 +#: planet/js/StringHelper.js:51 msgid "Most liked" msgstr "" -#: js/StringHelper.js:52 +#: planet/js/StringHelper.js:52 msgid "Most downloaded" msgstr "" -#: js/StringHelper.js:53 +#: planet/js/StringHelper.js:53 msgid "A-Z" msgstr "" -#: js/StringHelper.js:54 +#: planet/js/StringHelper.js:54 msgid "Sort by" msgstr "" -#: js/StringHelper.js:55 +#: planet/js/StringHelper.js:55 msgid "Load More Projects" msgstr "" -#: js/StringHelper.js:56 +#: planet/js/StringHelper.js:56 msgid "Last Updated" msgstr "" -#: js/StringHelper.js:57 +#: planet/js/StringHelper.js:57 msgid "Creation Date" msgstr "" -#: js/StringHelper.js:58 +#: planet/js/StringHelper.js:58 msgid "Number of Downloads:" msgstr "" -#: js/StringHelper.js:59 +#: planet/js/StringHelper.js:59 msgid "Number of Likes:" msgstr "" -#: js/StringHelper.js:60 +#: planet/js/StringHelper.js:60 msgid "Tags:" msgstr "" -#: js/StringHelper.js:65 +#: planet/js/StringHelper.js:65 msgid "Report projects which violate the Sugar Labs Code of Conduct." msgstr "" -#: js/StringHelper.js:66 +#: planet/js/StringHelper.js:66 msgid "Reason for reporting project" msgstr "" -#: js/StringHelper.js:70 +#: planet/js/StringHelper.js:70 msgid "Download as File" msgstr "" -#: js/GlobalPlanet.js:35 -msgid "No results found." -msgstr "" - -#: js/GlobalPlanet.js:51 -msgid "Remix of" -msgstr "" - -#: js/GlobalPlanet.js:509 -msgid "Cannot connect to server" -msgstr "" - -#: js/Publisher.js:30 -msgid "Feature unavailable - cannot connect to server. Reload Music Blocks to try again." -msgstr "" - -#: js/Publisher.js:218 -#: js/Publisher.js:235 -msgid "This field is required" -msgstr "" - -#: js/Publisher.js:225 -msgid "Title too long" +#: planet/js/helper.js:150 +msgid "Show fewer tags" msgstr "" -#: js/Publisher.js:242 -msgid "Description too long" +#: plugins/accelerometer.rtp:48 +msgid "motion x" msgstr "" -#: js/Publisher.js:339 -msgid "Server Error" +#: plugins/accelerometer.rtp:56 +msgid "motion y" msgstr "" -#: js/Publisher.js:339 -msgid "Try Again" +#: plugins/accelerometer.rtp:64 +msgid "motion z" msgstr "" -#: js/SaveInterface.js:34 -msgid "Open in Music Blocks" +#: plugins/facebook.rtp:27 +msgid "publish" msgstr "" -#: js/SaveInterface.js:35 -msgid "Open in Turtle Blocks" +#: plugins/maths.rtp:62 +msgid "power" msgstr "" -#: plugins/weather.rtp:68 -#: plugins/weather.rtp:97 -msgid "Days ahead must be in the range of -1 to 5." +#: plugins/maths.rtp:62 +msgid "base" msgstr "" -#: plugins/weather.rtp:122 -msgid "forecast" +#: plugins/maths.rtp:62 +msgid "exp" msgstr "" -#: plugins/weather.rtp:123 -#: plugins/weather.rtp:137 -#: plugins/weather.rtp:150 -msgid "city" +#: plugins/maths.rtp:99 +msgid "floor" msgstr "" -#: plugins/weather.rtp:124 -#: plugins/weather.rtp:138 -#: plugins/weather.rtp:151 -msgid "day" +#: plugins/maths.rtp:104 +msgid "ceiling" msgstr "" -#: plugins/weather.rtp:136 -msgid "high" +#: plugins/maths.rtp:109 +msgid "to degrees" msgstr "" -#: plugins/weather.rtp:149 -msgid "low" +#: plugins/maths.rtp:114 +msgid "to radians" msgstr "" #: plugins/nutrition.rtp:104 @@ -9455,45 +9864,6 @@ msgstr "" msgid "water" msgstr "" -#: plugins/maths.rtp:62 -#: plugins/examples.rtp:93 -msgid "power" -msgstr "" - -#: plugins/maths.rtp:62 -#: plugins/examples.rtp:93 -msgid "base" -msgstr "" - -#: plugins/maths.rtp:62 -#: plugins/examples.rtp:93 -msgid "exp" -msgstr "" - -#: plugins/maths.rtp:99 -#: plugins/examples.rtp:130 -msgid "floor" -msgstr "" - -#: plugins/maths.rtp:104 -#: plugins/examples.rtp:135 -msgid "ceiling" -msgstr "" - -#: plugins/maths.rtp:109 -#: plugins/examples.rtp:140 -msgid "to degrees" -msgstr "" - -#: plugins/maths.rtp:114 -#: plugins/examples.rtp:145 -msgid "to radians" -msgstr "" - -#: plugins/facebook.rtp:27 -msgid "publish" -msgstr "" - #: plugins/rodi.rtp:172 msgid "blink" msgstr "" @@ -9522,18 +9892,66 @@ msgstr "" msgid "move" msgstr "" -#: plugins/accelerometer.rtp:48 -msgid "motion x" +#: plugins/weather.rtp:68 +#: plugins/weather.rtp:97 +msgid "Days ahead must be in the range of -1 to 5." msgstr "" -#: plugins/accelerometer.rtp:56 -msgid "motion y" +#: plugins/weather.rtp:122 +msgid "forecast" msgstr "" -#: plugins/accelerometer.rtp:64 -msgid "motion z" +#: plugins/weather.rtp:123 +#: plugins/weather.rtp:137 +#: plugins/weather.rtp:150 +msgid "city" +msgstr "" + +#: plugins/weather.rtp:124 +#: plugins/weather.rtp:138 +#: plugins/weather.rtp:151 +msgid "day" +msgstr "" + +#: plugins/weather.rtp:136 +msgid "high" +msgstr "" + +#: plugins/weather.rtp:149 +msgid "low" msgstr "" +#: js/toolbar.js:70 + +#: js/toolbar.js:130 + +#: js/toolbar.js:194 + +#: js/toolbar.js:249 + +#~msgid "Toggle JavaScript Editor" +#~msgstr "" + +#: js/EnsembleBlocks.js:643 + +#~msgid "The Turrle pitch block returns the current pitch number being played by the specified turtle." +#~msgstr "" + +#: js/PitchActions.js:88 + +#~msgid "The Scalar Step Block must be used inside of a Note Block." +#~msgstr "" + +#: js/PitchActions.js:107 + +#~msgid "The Scalar Step Block must be preceded by a Pitch Block." +#~msgstr "" + +#: js/musickeyboard.js:2840 + +#~msgid "New action blocks generated!" +#~msgstr "" + #: js/toolbar.js:110 #: js/toolbar.js:204 @@ -9874,11 +10292,6 @@ msgstr "" #~msgid "The Time block returns the number of seconds that the program has been running." #~msgstr "" -#: js/help.js:95 - -#~msgid "Take a tour" -#~msgstr "" - #: js/GlobalCard.js:48 #~msgid "More Details" @@ -12777,11 +13190,6 @@ msgstr "" #~msgid "The save-stack button saves a stack onto a custom palette. It appears after a \"long press\" on a stack." #~msgstr "" -#: js/musicutils.js:254 - -#~msgid "Custom" -#~msgstr "" - #: js/basicblocks.js:4785 #~msgid "Rhythm" diff --git a/po/sv.po b/po/sv.po index ab73dbdf9c..8676cb072f 100644 --- a/po/sv.po +++ b/po/sv.po @@ -2129,276 +2129,131 @@ #: js/planetInterface.js:104 #: js/planetInterface.js:104 #: js/planetInterface.js:104 -msgid "project undefined" +#: js/SaveInterface.js:59 +#: js/SaveInterface.js:61 +#: js/SaveInterface.js:93 +msgid "Music Blocks Project" msgstr "" -#: js/logo.js:61 -msgid "Not a valid pitch name" +#: js/SaveInterface.js:63 +msgid "This project was created in Music Blocks" msgstr "" -#: js/logo.js:507 -#: js/ProgramBlocks.js:258 -#: js/ProgramBlocks.js:427 -msgid "You must select a file." +#: js/SaveInterface.js:67 +msgid "Music Blocks is a Free/Libre Software application." msgstr "" -#: js/logo.js:1184 -#: js/turtles.js:118 -#: js/turtle-painter.js:1192 -#: js/turtle-painter.js:1193 -#: js/block.js:1463 -#: js/lilypond.js:757 -#: js/lilypond.js:921 -#: js/lilypond.js:959 -#: js/ActionBlocks.js:1223 -#: js/ProgramBlocks.js:1267 -msgid "start" -msgstr "starta" - -#: js/logo.js:1696 -msgid "Playback is ready." +#: js/SaveInterface.js:69 +msgid "The source code can be accessed at" msgstr "" -#: js/blocks.js:1011 -#: js/blocks.js:3427 -#: js/blocks.js:3428 -#: js/blocks.js:3653 -#: js/blocks.js:4012 -#: js/blocks.js:4205 -#: js/blocks.js:5343 -#: js/blocks.js:6474 -#: js/palette.js:527 -#: js/palette.js:536 -#: js/palette.js:545 -#: js/palette.js:554 -#: js/palette.js:1131 -#: js/palette.js:1142 -#: js/palette.js:1153 -#: js/palette.js:1164 -#: js/palette.js:1183 -#: js/rubrics.js:529 -#: js/macros.js:170 -#: js/macros.js:266 -#: js/macros.js:267 -#: js/macros.js:276 -#: js/macros.js:828 -#: js/block.js:1449 -#: js/block.js:4164 -#: js/block.js:4182 -#: js/block.js:4193 -#: js/turtledefs.js:128 -#: js/turtledefs.js:230 -#: js/ActionBlocks.js:254 -#: js/ActionBlocks.js:307 -#: js/ActionBlocks.js:617 -#: js/ActionBlocks.js:716 -#: js/ActionBlocks.js:961 -#: js/ActionBlocks.js:1049 -#: js/ActionBlocks.js:1322 -#: js/ActionBlocks.js:1325 -#: js/ActionBlocks.js:1337 -#: js/ActionBlocks.js:1404 -#: js/MeterBlocks.js:715 -#: js/MeterBlocks.js:768 -#: js/MeterBlocks.js:831 -#: js/MeterBlocks.js:892 -#: js/phrasemaker.js:4412 -#: js/musickeyboard.js:2647 -#: js/rhythmruler.js:1928 -#: js/rhythmruler.js:1935 -#: js/rhythmruler.js:2119 -#: js/rhythmruler.js:2126 -msgid "action" -msgstr "händelse" - -#: js/blocks.js:1205 -#: js/blocks.js:3380 -#: js/blocks.js:3770 -#: js/blocks.js:3801 -#: js/blocks.js:3850 -#: js/blocks.js:3885 -#: js/blocks.js:6497 -#: js/palette.js:509 -#: js/palette.js:638 -#: js/palette.js:1107 -#: js/BoxesBlocks.js:282 -#: js/BoxesBlocks.js:285 -#: js/BoxesBlocks.js:405 -#: js/BoxesBlocks.js:594 -msgid "box" -msgstr "låda" - -#: js/blocks.js:1680 -msgid "Consider breaking this stack into parts." +#: js/SaveInterface.js:72 +msgid "For more information, please consult the" msgstr "" -#: js/blocks.js:2408 -#: js/palette.js:653 -#: js/MediaBlocks.js:602 -msgid "open file" +#: js/SaveInterface.js:76 +#: js/turtledefs.js:795 +msgid "Music Blocks Guide" msgstr "" -#: js/blocks.js:2415 -#: js/blocks.js:2423 -#: js/activity.js:1875 -msgid "audio file" +#: js/SaveInterface.js:83 +msgid "Alternatively, open the file in Music Blocks using the Load project button." msgstr "" -#: js/blocks.js:2536 -#: js/blocks.js:3147 -#: js/block.js:3543 -msgid "on2" +#: js/SaveInterface.js:85 +msgid "Project Code" msgstr "" -#: js/blocks.js:2538 -#: js/blocks.js:3149 -#: js/block.js:3545 -msgid "off" +#: js/SaveInterface.js:87 +msgid "This code stores data about the blocks in a project." msgstr "" -#: js/blocks.js:2543 -#: js/blocks.js:3154 -#: js/palette.js:618 -#: js/block.js:3466 -#: js/BooleanBlocks.js:77 -#: js/BooleanBlocks.js:167 -#: js/BooleanBlocks.js:251 -#: js/BooleanBlocks.js:335 -#: js/BooleanBlocks.js:433 -#: js/BooleanBlocks.js:539 -#: js/BooleanBlocks.js:640 -#: js/BooleanBlocks.js:741 -#: js/BooleanBlocks.js:847 -#: js/BooleanBlocks.js:948 -#: js/BooleanBlocks.js:1033 -#: js/SensorsBlocks.js:910 -msgid "true" +#: js/SaveInterface.js:89 +msgid "Show" msgstr "" -#: js/blocks.js:2545 -#: js/blocks.js:3156 -#: js/block.js:3466 -#: js/BooleanBlocks.js:79 -#: js/BooleanBlocks.js:169 -#: js/BooleanBlocks.js:253 -#: js/BooleanBlocks.js:337 -#: js/BooleanBlocks.js:435 -#: js/BooleanBlocks.js:541 -#: js/BooleanBlocks.js:642 -#: js/BooleanBlocks.js:743 -#: js/BooleanBlocks.js:849 -#: js/BooleanBlocks.js:950 -#: js/SensorsBlocks.js:912 -msgid "false" +#: js/SaveInterface.js:91 +msgid "Hide" msgstr "" -#: js/blocks.js:3183 -#: js/palette.js:574 -#: js/MediaBlocks.js:892 -#: js/MediaBlocks.js:963 -msgid "text" -msgstr "text" - -#: js/blocks.js:3379 -#: js/palette.js:641 -#: js/palette.js:642 -#: js/BoxesBlocks.js:514 -msgid "store in box" +#: js/SaveInterface.js:131 +#: js/SaveInterface.js:204 +#: js/SaveInterface.js:262 +#: js/SaveInterface.js:389 +#: js/SaveInterface.js:417 +#: js/activity.js:4884 +#: planet/js/ProjectStorage.js:27 +#: planet/js/GlobalPlanet.js:467 +#: planet/js/GlobalPlanet.js:469 +#: planet/js/GlobalPlanet.js:495 +#.TRANS: default project title when saving as Lilypond +msgid "My Project" msgstr "" -#: js/blocks.js:3384 -#: js/blocks.js:3824 -#: js/blocks.js:3859 -#: js/blocks.js:3894 -#: js/blocks.js:5773 -#: js/blocks.js:5794 -#: js/BoxesBlocks.js:772 -msgid "box1" +#: js/SaveInterface.js:197 +#: planet/js/SaveInterface.js:58 +msgid "No description provided" msgstr "" -#: js/blocks.js:3386 -#: js/blocks.js:3826 -#: js/blocks.js:3861 -#: js/blocks.js:3896 -#: js/blocks.js:5775 -#: js/blocks.js:5796 -#: js/BoxesBlocks.js:663 -msgid "box2" +#: js/SaveInterface.js:332 +msgid "Your recording is in progress." msgstr "" -#: js/blocks.js:4058 -#: js/palette.js:639 -#: js/palette.js:644 -#: js/palette.js:1043 -#: js/BoxesBlocks.js:591 -msgid "store in" -msgstr "spara i" - -#: js/blocks.js:4058 -#: js/EnsembleBlocks.js:391 -#: js/EnsembleBlocks.js:402 -#: js/MediaBlocks.js:746 -#: js/ProgramBlocks.js:390 -#: js/ProgramBlocks.js:495 -#: js/ProgramBlocks.js:658 -#: js/BoxesBlocks.js:595 -#: js/PitchBlocks.js:656 -#: js/PitchBlocks.js:932 -#: js/PitchBlocks.js:1827 -#: js/ToneBlocks.js:1025 -#: js/DictBlocks.js:215 -#: js/DictBlocks.js:289 -msgid "name" +#: js/SaveInterface.js:401 +#.TRANS: File name prompt for save as Lilypond +msgid "File name" msgstr "" -#: js/blocks.js:4058 -#: js/RhythmBlocks.js:1130 -#: js/BoxesBlocks.js:75 -#: js/BoxesBlocks.js:595 -#: js/HeapBlocks.js:544 -#: js/DictBlocks.js:289 -#: js/DictBlocks.js:430 -msgid "value" +#: js/SaveInterface.js:403 +#: planet/js/StringHelper.js:39 +#.TRANS: Project title prompt for save as Lilypond +msgid "Project title" msgstr "" -#: js/blocks.js:4907 -msgid "There is no block selected." +#: js/SaveInterface.js:405 +#.TRANS: Project title prompt for save as Lilypond +msgid "Project author" msgstr "" -#: js/blocks.js:5002 -#: js/MediaBlocks.js:888 -msgid "show" -msgstr "visa" - -#: js/blocks.js:5005 -#: js/MediaBlocks.js:803 -#.TRANS: Avatar is the image used to determine the appearance of the mouse. -msgid "avatar" +#: js/SaveInterface.js:407 +#.TRANS: MIDI prompt for save as Lilypond +msgid "Include MIDI output?" msgstr "" -#: js/blocks.js:5008 -#: js/ToneBlocks.js:1010 -#: js/sampler.js:693 -#.TRANS: The sound sample that the user uploads. -msgid "sample" +#: js/SaveInterface.js:409 +#.TRANS: Guitar prompt for save as Lilypond +msgid "Include guitar tablature output?" msgstr "" -#: js/turtles.js:874 -msgid "Grid" -msgstr "Rutnät" - -#: js/turtles.js:891 -#: js/turtledefs.js:626 -msgid "Clean" -msgstr "rensa" +#: js/SaveInterface.js:411 +#.TRANS: Lilypond is a scripting language for generating sheet music +msgid "Save as Lilypond" +msgstr "" -#: js/turtles.js:912 -#: js/turtledefs.js:632 -msgid "Collapse" +#: js/SaveInterface.js:426 +#: js/blocks/EnsembleBlocks.js:75 +#: js/blocks/EnsembleBlocks.js:154 +#: js/blocks/EnsembleBlocks.js:216 +#: js/blocks/EnsembleBlocks.js:302 +#: js/blocks/EnsembleBlocks.js:348 +#: js/blocks/EnsembleBlocks.js:389 +#: js/blocks/EnsembleBlocks.js:441 +#: js/blocks/EnsembleBlocks.js:490 +#: js/blocks/EnsembleBlocks.js:536 +#: js/blocks/EnsembleBlocks.js:583 +#: js/blocks/EnsembleBlocks.js:637 +#: js/blocks/EnsembleBlocks.js:753 +#: js/blocks/EnsembleBlocks.js:840 +#: js/blocks/EnsembleBlocks.js:899 +#: js/blocks/EnsembleBlocks.js:942 +#: js/blocks/EnsembleBlocks.js:1212 +#: js/blocks/EnsembleBlocks.js:1280 +#.TRANS: default project author when saving as Lilypond +msgid "Mr. Mouse" msgstr "" -#: js/turtles.js:940 -msgid "Expand" +#: js/SaveInterface.js:573 +msgid "The Lilypond code is copied to clipboard. You can paste it here: " msgstr "" #: js/languagebox.js:198 @@ -2409,6933 +2264,7487 @@ msgstr "" msgid "Music Blocks is already set to this language." msgstr "" -#: js/piemenus.js:200 -#: js/musicutils.js:808 -#: js/musicutils.js:824 -#: js/phrasemaker.js:1672 -#: js/musickeyboard.js:2041 -#: js/sampler.js:544 -#.TRANS: double sharp is a music term related to pitch -msgid "double sharp" +#: js/planetInterface.js:131 +msgid "project undefined" msgstr "" -#: js/piemenus.js:201 -#: js/PitchBlocks.js:1510 -#: js/PitchActions.js:580 -#: js/musicutils.js:806 -#: js/musicutils.js:825 -#: js/phrasemaker.js:1673 -#: js/musickeyboard.js:2042 -#: js/sampler.js:545 -#.TRANS: sharp is a half-step up in pitch -#.TRANS: sharp is a music term related to pitch -msgid "sharp" +#: js/rubrics.js:523 +#: js/turtledefs.js:119 +#: js/turtledefs.js:221 +#: js/blocks/RhythmBlockPaletteBlocks.js:52 +#: js/blocks/RhythmBlockPaletteBlocks.js:234 +#: js/blocks/ProgramBlocks.js:745 +#: js/widgets/rhythmruler.js:2057 +#: js/widgets/rhythmruler.js:2064 +#: js/widgets/rhythmruler.js:2133 +#: js/widgets/rhythmruler.js:2140 +#: js/widgets/rhythmruler.js:2219 +#.TRANS: an arrangement of notes based on duration +msgid "rhythm" msgstr "" -#: js/piemenus.js:202 -#: js/musicutils.js:804 -#: js/musicutils.js:826 -#: js/phrasemaker.js:1674 -#: js/musickeyboard.js:2043 -#: js/sampler.js:546 -#.TRANS: natural is a music term related to pitch -msgid "natural" +#: js/rubrics.js:524 +#: js/turtledefs.js:121 +#: js/turtledefs.js:223 +#: js/block-verbose.js:2622 +#: js/block.js:2550 +#: js/blocks/IntervalsBlocks.js:63 +#: js/blocks/SensorsBlocks.js:178 +#: js/blocks/PitchBlocks.js:1839 +#: js/blocks/PitchBlocks.js:1853 +#: js/widgets/musickeyboard.js:1935 +#: js/widgets/phrasemaker.js:1036 +#.TRANS: pitch number +#.TRANS: pitch number +#.TRANS: we specify pitch in terms of a name and an octave. The name can be CDEFGAB or Do Re Mi Fa Sol La Ti. Octave is a number between 1 and 8. +msgid "pitch" msgstr "" -#: js/piemenus.js:203 -#: js/PitchBlocks.js:1469 -#: js/PitchActions.js:583 -#: js/musicutils.js:802 -#: js/musicutils.js:827 -#: js/phrasemaker.js:1675 -#: js/musickeyboard.js:2044 -#: js/sampler.js:547 -#.TRANS: flat is a half-step down in pitch -#.TRANS: flat is a music term related to pitch -msgid "flat" +#: js/rubrics.js:525 +#: js/turtledefs.js:123 +#: js/turtledefs.js:225 +msgid "tone" msgstr "" -#: js/piemenus.js:204 -#: js/musicutils.js:800 -#: js/musicutils.js:828 -#: js/phrasemaker.js:1676 -#: js/musickeyboard.js:2045 -#: js/sampler.js:548 -#.TRANS: double flat is a music term related to pitch -msgid "double flat" +#: js/rubrics.js:526 +#: js/lilypond.js:605 +#: js/lilypond.js:904 +#: js/lilypond.js:910 +#: js/lilypond.js:948 +msgid "mouse" msgstr "" -#: js/piemenus.js:2861 -#: js/PitchBlocks.js:1357 -#: js/musicutils.js:627 -#.TRANS: unison means the note is the same as the current note -#.TRANS: unison is a music term related to intervals -msgid "unison" +#: js/rubrics.js:527 +#: js/turtledefs.js:132 +#: js/turtledefs.js:234 +#: js/widgets/phrasemaker.js:1040 +msgid "pen" msgstr "" -#: js/piemenus.js:3015 -#: js/piemenus.js:3088 -#: js/musicutils.js:635 -#: js/musicutils.js:810 -#: js/musicutils.js:912 -#.TRANS: major is a music term related to intervals and mode -msgid "major" -msgstr "" +#: js/rubrics.js:528 +#: js/turtledefs.js:133 +#: js/turtledefs.js:235 +#: js/blocks/NumberBlocks.js:981 +#: js/blocks/PitchBlocks.js:1717 +#: js/blocks/PitchBlocks.js:1758 +msgid "number" +msgstr "tal" -#: js/piemenus.js:3015 -#: js/piemenus.js:3088 -#: js/musicutils.js:653 -#.TRANS: modal scale for music -msgid "ionian" +#: js/rubrics.js:529 +#: js/turtledefs.js:127 +#: js/turtledefs.js:229 +msgid "flow" msgstr "" -#: js/piemenus.js:3017 -#: js/piemenus.js:3092 -#: js/musicutils.js:633 -#: js/musicutils.js:811 -#: js/musicutils.js:909 -#.TRANS: minor is a music term related to intervals and mode -msgid "minor" -msgstr "" +#: js/rubrics.js:530 +#: js/turtledefs.js:128 +#: js/turtledefs.js:230 +#: js/block-verbose.js:1609 +#: js/block-verbose.js:4559 +#: js/block-verbose.js:4577 +#: js/block-verbose.js:4588 +#: js/block.js:1573 +#: js/block.js:4483 +#: js/block.js:4501 +#: js/block.js:4512 +#: js/blocks.js:1018 +#: js/blocks.js:3491 +#: js/blocks.js:3492 +#: js/blocks.js:3717 +#: js/blocks.js:4076 +#: js/blocks.js:4269 +#: js/blocks.js:5432 +#: js/blocks.js:6563 +#: js/macros.js:170 +#: js/macros.js:266 +#: js/macros.js:267 +#: js/macros.js:276 +#: js/macros.js:828 +#: js/palette.js:527 +#: js/palette.js:536 +#: js/palette.js:545 +#: js/palette.js:554 +#: js/palette.js:1129 +#: js/palette.js:1140 +#: js/palette.js:1151 +#: js/palette.js:1162 +#: js/palette.js:1181 +#: js/blocks/ActionBlocks.js:254 +#: js/blocks/ActionBlocks.js:307 +#: js/blocks/ActionBlocks.js:617 +#: js/blocks/ActionBlocks.js:716 +#: js/blocks/ActionBlocks.js:961 +#: js/blocks/ActionBlocks.js:1049 +#: js/blocks/ActionBlocks.js:1322 +#: js/blocks/ActionBlocks.js:1325 +#: js/blocks/ActionBlocks.js:1337 +#: js/blocks/ActionBlocks.js:1404 +#: js/blocks/MeterBlocks.js:715 +#: js/blocks/MeterBlocks.js:768 +#: js/blocks/MeterBlocks.js:831 +#: js/blocks/MeterBlocks.js:892 +#: js/widgets/musickeyboard.js:2986 +#: js/widgets/phrasemaker.js:4913 +#: js/widgets/rhythmruler.js:2319 +#: js/widgets/rhythmruler.js:2326 +#: js/widgets/rhythmruler.js:2511 +#: js/widgets/rhythmruler.js:2518 +msgid "action" +msgstr "händelse" -#: js/piemenus.js:3017 -#: js/piemenus.js:3092 -#: js/musicutils.js:663 -#.TRANS: modal scale for music -msgid "aeolian" +#: js/rubrics.js:531 +#: js/turtledefs.js:136 +#: js/turtledefs.js:238 +msgid "sensors" msgstr "" -#: js/piemenus.js:3407 -msgid "Duplicate" +#: js/rubrics.js:532 +#: js/turtledefs.js:135 +#: js/turtledefs.js:237 +#: js/blocks/MediaBlocks.js:930 +msgid "media" msgstr "" -#: js/piemenus.js:3408 -#: js/turtledefs.js:534 -msgid "Extract" +#: js/rubrics.js:533 +msgid "mice" msgstr "" -#: js/piemenus.js:3409 -msgid "Move to trash" +#: js/toolbar.js:48 +#: js/toolbar.js:109 +msgid "About Music Blocks" msgstr "" -#: js/piemenus.js:3410 -#: js/timbre.js:968 -#: js/StringHelper.js:69 -msgid "Close" +#: js/toolbar.js:49 +#: js/toolbar.js:110 +#: js/toolbar.js:175 +#: js/toolbar.js:231 +#: js/turtledefs.js:445 +#: js/turtledefs.js:482 +#: js/activity.js:2660 +#: js/activity.js:2671 +#: js/activity.js:2902 +#: js/widgets/modewidget.js:77 +#: js/widgets/meterwidget.js:185 +#: js/widgets/pitchdrummatrix.js:147 +#: js/widgets/pitchdrummatrix.js:687 +#: js/widgets/pitchdrummatrix.js:689 +#: js/widgets/pitchdrummatrix.js:741 +#: js/widgets/pitchdrummatrix.js:743 +#: js/widgets/pitchdrummatrix.js:758 +#: js/widgets/pitchdrummatrix.js:760 +#: js/widgets/pitchdrummatrix.js:789 +#: js/widgets/pitchdrummatrix.js:791 +#: js/widgets/pitchstaircase.js:121 +#: js/widgets/temperament.js:610 +#: js/widgets/temperament.js:613 +#: js/widgets/temperament.js:673 +#: js/widgets/temperament.js:675 +#: js/widgets/temperament.js:2017 +#: js/widgets/temperament.js:2019 +#: js/widgets/tempo.js:84 +#: js/widgets/tempo.js:86 +#: js/widgets/timbre.js:432 +#: js/widgets/timbre.js:434 +#: js/widgets/timbre.js:465 +#: js/widgets/timbre.js:467 +#: js/widgets/timbre.js:746 +#: js/widgets/aiwidget.js:647 +#: js/widgets/aiwidget.js:654 +#: js/widgets/aiwidget.js:656 +#: js/widgets/arpeggio.js:90 +#: js/widgets/arpeggio.js:547 +#: js/widgets/arpeggio.js:549 +#: js/widgets/arpeggio.js:644 +#: js/widgets/arpeggio.js:646 +#: js/widgets/musickeyboard.js:676 +#: js/widgets/musickeyboard.js:872 +#: js/widgets/musickeyboard.js:874 +#: js/widgets/musickeyboard.js:953 +#: js/widgets/musickeyboard.js:955 +#: js/widgets/phrasemaker.js:513 +#: js/widgets/phrasemaker.js:523 +#: js/widgets/phrasemaker.js:525 +#: js/widgets/phrasemaker.js:4304 +#: js/widgets/phrasemaker.js:4528 +#: js/widgets/phrasemaker.js:4533 +#: js/widgets/phrasemaker.js:4535 +#: js/widgets/phrasemaker.js:4650 +#: js/widgets/rhythmruler.js:637 +#: js/widgets/rhythmruler.js:639 +#: js/widgets/rhythmruler.js:653 +#: js/widgets/rhythmruler.js:655 +#: js/widgets/sampler.js:162 +#: js/widgets/sampler.js:164 +#: js/widgets/sampler.js:363 +msgid "Play" msgstr "" -#: js/piemenus.js:3416 -msgid "Save stack" +#: js/toolbar.js:50 +#: js/toolbar.js:111 +#: js/toolbar.js:176 +#: js/toolbar.js:232 +#: js/turtledefs.js:451 +#: js/turtledefs.js:488 +#: js/activity.js:2679 +#: js/widgets/modewidget.js:99 +#: js/widgets/modewidget.js:101 +#: js/widgets/meterwidget.js:206 +#: js/widgets/meterwidget.js:208 +#: js/widgets/pitchdrummatrix.js:674 +#: js/widgets/pitchdrummatrix.js:676 +#: js/widgets/temperament.js:2002 +#: js/widgets/temperament.js:2004 +#: js/widgets/arpeggio.js:534 +#: js/widgets/arpeggio.js:536 +#: js/widgets/phrasemaker.js:534 +#: js/widgets/phrasemaker.js:536 +msgid "Stop" +msgstr "topp" + +#: js/toolbar.js:51 +#: js/toolbar.js:112 +#: js/toolbar.js:177 +#: js/toolbar.js:233 +#: js/turtledefs.js:498 +msgid "Record" msgstr "" -#: js/piemenus.js:3420 -#: js/toolbar.js:60 -#: js/toolbar.js:120 -#: js/toolbar.js:185 +#: js/toolbar.js:52 +#: js/toolbar.js:53 +msgid "Full screen" +msgstr "" + +#: js/toolbar.js:54 +#: js/toolbar.js:115 +#: js/toolbar.js:180 +#: js/toolbar.js:236 +#: js/turtledefs.js:504 +msgid "Toggle Fullscreen" +msgstr "" + +#: js/toolbar.js:55 +#: js/toolbar.js:116 +#: js/toolbar.js:181 +#: js/toolbar.js:237 +#: js/turtledefs.js:510 +#: planet/js/StringHelper.js:33 +msgid "New project" +msgstr "" + +#: js/toolbar.js:56 +#: js/toolbar.js:117 +#: js/toolbar.js:182 +#: js/toolbar.js:238 +#: js/turtledefs.js:516 +msgid "Load project from file" +msgstr "" + +#: js/toolbar.js:57 +#: js/toolbar.js:118 +#: js/toolbar.js:119 +#: js/toolbar.js:183 +#: js/toolbar.js:239 +#: js/turtledefs.js:541 +#: js/turtledefs.js:550 +#: js/turtledefs.js:571 +msgid "Save project" +msgstr "" + +#: js/toolbar.js:58 +#: js/toolbar.js:77 +#: js/toolbar.js:79 +#: js/toolbar.js:138 +#: js/toolbar.js:147 +#: js/toolbar.js:149 +#: js/toolbar.js:184 +#: js/toolbar.js:202 +#: js/toolbar.js:204 #: js/toolbar.js:240 +#: js/toolbar.js:258 +#: js/toolbar.js:260 +msgid "Save project as HTML" +msgstr "" + +#: js/toolbar.js:59 +#: js/toolbar.js:120 +#: js/toolbar.js:185 +#: js/toolbar.js:241 +msgid "Find and share projects" +msgstr "" + +#: js/toolbar.js:60 +#: js/toolbar.js:121 +#: js/toolbar.js:186 +#: js/toolbar.js:242 +msgid "Offline. Sharing is unavailable" +msgstr "" + +#: js/toolbar.js:61 +#: js/toolbar.js:122 +#: js/toolbar.js:187 +#: js/toolbar.js:243 +msgid "Auxiliary menu" +msgstr "" + +#: js/toolbar.js:62 +#: js/toolbar.js:123 +#: js/toolbar.js:188 +#: js/toolbar.js:244 #: js/turtledefs.js:752 +#: js/piemenus.js:3423 msgid "Help" msgstr "Hjälp" -#: js/piemenus.js:3762 -msgid "You have chosen key " +#: js/toolbar.js:63 +#: js/toolbar.js:124 +#: js/toolbar.js:189 +#: js/toolbar.js:245 +msgid "Run slowly" +msgstr "" + +#: js/toolbar.js:64 +#: js/toolbar.js:125 +#: js/toolbar.js:190 +#: js/toolbar.js:246 +#: js/turtledefs.js:682 +msgid "Run step by step" +msgstr "" + +#: js/toolbar.js:65 +#: js/toolbar.js:126 +#: js/toolbar.js:191 +#: js/toolbar.js:247 +#: js/turtledefs.js:689 +msgid "Display statistics" +msgstr "" + +#: js/toolbar.js:66 +#: js/toolbar.js:127 +#: js/toolbar.js:192 +#: js/toolbar.js:248 +msgid "Load plugin" +msgstr "" + +#: js/toolbar.js:67 +#: js/toolbar.js:128 +#: js/toolbar.js:193 +#: js/toolbar.js:249 +#: js/turtledefs.js:696 +msgid "Delete plugin" +msgstr "" + +#: js/toolbar.js:68 +#: js/toolbar.js:129 +#: js/toolbar.js:194 +#: js/toolbar.js:250 +msgid "Enable horizontal scrolling" +msgstr "" + +#: js/toolbar.js:69 +#: js/toolbar.js:130 +#: js/toolbar.js:195 +#: js/toolbar.js:251 +msgid "Disable horizontal scrolling" +msgstr "" + +#: js/toolbar.js:70 +#: js/toolbar.js:131 +#: js/toolbar.js:196 +#: js/toolbar.js:252 +#: planet/js/LocalCard.js:54 +#: planet/js/StringHelper.js:71 +msgid "Merge with current project" +msgstr "" + +#: js/toolbar.js:71 +#: js/toolbar.js:132 +msgid "Set Pitch Preview" +msgstr "" + +#: js/toolbar.js:72 +#: js/toolbar.js:133 +#: js/toolbar.js:197 +#: js/toolbar.js:253 +msgid "JavaScript Editor" +msgstr "" + +#: js/toolbar.js:73 +#: js/toolbar.js:134 +#: js/toolbar.js:198 +#: js/toolbar.js:254 +#: js/turtledefs.js:724 +msgid "Restore" +msgstr "" + +#: js/toolbar.js:74 +#: js/toolbar.js:135 +#: js/toolbar.js:199 +#: js/toolbar.js:255 +msgid "Switch to beginner mode" +msgstr "" + +#: js/toolbar.js:75 +#: js/toolbar.js:136 +#: js/toolbar.js:200 +#: js/toolbar.js:256 +msgid "Switch to advanced mode" +msgstr "" + +#: js/toolbar.js:76 +#: js/toolbar.js:137 +#: js/toolbar.js:146 +#: js/toolbar.js:201 +#: js/toolbar.js:257 +#: js/turtledefs.js:738 +msgid "Select language" +msgstr "" + +#: js/toolbar.js:78 +#: js/toolbar.js:81 +#: js/toolbar.js:140 +#: js/turtledefs.js:579 +msgid "Save mouse artwork as PNG" +msgstr "" + +#: js/toolbar.js:80 +#: js/toolbar.js:139 +#: js/turtledefs.js:575 +msgid "Save mouse artwork as SVG" +msgstr "" + +#: js/toolbar.js:82 +#: js/toolbar.js:141 +#: js/turtledefs.js:583 +msgid "Save music as WAV" +msgstr "" + +#: js/toolbar.js:83 +#: js/toolbar.js:142 +#: js/turtledefs.js:587 +msgid "Save sheet music as ABC" +msgstr "" + +#: js/toolbar.js:84 +#: js/toolbar.js:143 +#: js/turtledefs.js:591 +msgid "Save sheet music as Lilypond" +msgstr "" + +#: js/toolbar.js:85 +msgid "Save sheet music as MusicXML" +msgstr "" + +#: js/toolbar.js:86 +#: js/toolbar.js:144 +#: js/toolbar.js:152 +#: js/toolbar.js:207 +#: js/toolbar.js:263 +#: js/turtledefs.js:562 +#: js/turtledefs.js:595 +msgid "Save block artwork as SVG" +msgstr "" + +#: js/toolbar.js:87 +#: js/toolbar.js:145 +#: js/toolbar.js:153 +#: js/toolbar.js:208 +#: js/toolbar.js:264 +#: js/turtles.js:911 +msgid "Confirm" +msgstr "" + +#: js/toolbar.js:88 +#: js/toolbar.js:154 +#: js/toolbar.js:209 +#: js/toolbar.js:265 +msgid "English (United States)" +msgstr "" + +#: js/toolbar.js:89 +#: js/toolbar.js:155 +#: js/toolbar.js:210 +#: js/toolbar.js:266 +msgid "English (United Kingdom)" +msgstr "" + +#: js/toolbar.js:90 +#: js/toolbar.js:156 +#: js/toolbar.js:211 +#: js/toolbar.js:267 +msgid "日本語" +msgstr "" + +#: js/toolbar.js:91 +msgid "한국어" +msgstr "" + +#: js/toolbar.js:92 +#: js/toolbar.js:158 +#: js/toolbar.js:213 +#: js/toolbar.js:269 +msgid "español" +msgstr "" + +#: js/toolbar.js:93 +#: js/toolbar.js:159 +#: js/toolbar.js:214 +#: js/toolbar.js:270 +msgid "português" +msgstr "" + +#: js/toolbar.js:94 +#: js/toolbar.js:160 +#: js/toolbar.js:215 +#: js/toolbar.js:271 +msgid "にほんご" +msgstr "" + +#: js/toolbar.js:95 +#: js/toolbar.js:161 +#: js/toolbar.js:216 +#: js/toolbar.js:272 +msgid "中文" +msgstr "" + +#: js/toolbar.js:96 +#: js/toolbar.js:162 +#: js/toolbar.js:217 +#: js/toolbar.js:273 +msgid "ภาษาไทย" +msgstr "" + +#: js/toolbar.js:97 +#: js/toolbar.js:163 +#: js/toolbar.js:218 +#: js/toolbar.js:274 +msgid "aymara" +msgstr "" + +#: js/toolbar.js:98 +#: js/toolbar.js:164 +#: js/toolbar.js:219 +#: js/toolbar.js:275 +msgid "quechua" +msgstr "" + +#: js/toolbar.js:99 +#: js/toolbar.js:165 +#: js/toolbar.js:220 +#: js/toolbar.js:276 +msgid "guarani" +msgstr "" + +#: js/toolbar.js:100 +#: js/toolbar.js:166 +#: js/toolbar.js:221 +#: js/toolbar.js:277 +msgid "हिंदी" +msgstr "" + +#: js/toolbar.js:101 +#: js/toolbar.js:168 +#: js/toolbar.js:222 +#: js/toolbar.js:279 +msgid "igbo" +msgstr "" + +#: js/toolbar.js:102 +#: js/toolbar.js:169 +#: js/toolbar.js:223 +#: js/toolbar.js:280 +msgid "عربى" +msgstr "" + +#: js/toolbar.js:103 +#: js/toolbar.js:167 +#: js/toolbar.js:224 +#: js/toolbar.js:278 +msgid "తెలుగు" +msgstr "" + +#: js/toolbar.js:104 +#: js/toolbar.js:170 +#: js/toolbar.js:225 +#: js/toolbar.js:281 +msgid "עִברִית" +msgstr "" + +#: js/toolbar.js:113 +#: js/toolbar.js:114 +#: js/toolbar.js:178 +#: js/toolbar.js:179 +#: js/toolbar.js:234 +#: js/toolbar.js:235 +msgid "Full Screen" +msgstr "" + +#: js/toolbar.js:148 +#: js/toolbar.js:151 +#: js/toolbar.js:203 +#: js/toolbar.js:206 +#: js/toolbar.js:259 +#: js/toolbar.js:262 +#: js/turtledefs.js:558 +msgid "Save turtle artwork as PNG" +msgstr "" + +#: js/toolbar.js:150 +#: js/toolbar.js:205 +#: js/toolbar.js:261 +#: js/turtledefs.js:554 +msgid "Save turtle artwork as SVG" +msgstr "" + +#: js/toolbar.js:157 +#: js/toolbar.js:212 +#: js/toolbar.js:268 +msgid "한국인" +msgstr "" + +#: js/toolbar.js:174 +#: js/toolbar.js:230 +msgid "About Turtle Blocks" +msgstr "" + +#: js/toolbar.js:446 +#: js/toolbar.js:457 +#: js/toolbar.js:497 +msgid "Turtle Wrap Off" +msgstr "" + +#: js/toolbar.js:466 +#: js/toolbar.js:506 +msgid "Turtle Wrap On" +msgstr "" + +#: js/turtle-painter.js:1192 +#: js/turtle-painter.js:1193 +#: js/turtles.js:118 +#: js/block-verbose.js:1623 +#: js/block.js:1587 +#: js/lilypond.js:749 +#: js/lilypond.js:913 +#: js/lilypond.js:951 +#: js/logo.js:1184 +#: js/blocks/ActionBlocks.js:1223 +#: js/blocks/ProgramBlocks.js:1267 +msgid "start" +msgstr "starta" + +#: js/turtledefs.js:40 +#.TRANS: put the URL to the guide here, e.g., https://github.com/sugarlabs/turtleblocksjs/tree/master/guide/README.md +msgid "guide url" +msgstr "" + +#: js/turtledefs.js:85 +#: js/turtledefs.js:437 +msgid "Turtle Blocks is a Logo-inspired turtle that draws colorful pictures with snap-together visual-programming blocks." +msgstr "" + +#: js/turtledefs.js:118 +#: js/turtledefs.js:220 +msgid "search" +msgstr "" + +#: js/turtledefs.js:120 +#: js/turtledefs.js:222 +#: js/blocks/MeterBlocks.js:1343 +#: js/blocks/WidgetBlocks.js:522 +#.TRANS: musical meter (time signature), e.g., 4:4 +msgid "meter" +msgstr "" + +#: js/turtledefs.js:122 +#: js/turtledefs.js:224 +msgid "intervals" +msgstr "" + +#: js/turtledefs.js:124 +#: js/turtledefs.js:226 +msgid "ornament" +msgstr "" + +#: js/turtledefs.js:125 +#: js/turtledefs.js:227 +#: js/blocks/VolumeBlocks.js:362 +#: js/blocks/VolumeBlocks.js:502 +#: js/blocks/VolumeBlocks.js:545 +msgid "volume" +msgstr "" + +#: js/turtledefs.js:126 +#: js/turtledefs.js:228 +#: js/block-verbose.js:1700 +#: js/block-verbose.js:2626 +#: js/block.js:1664 +#: js/block.js:2554 +#: js/lilypond.js:732 +#: js/lilypond.js:897 +#: js/lilypond.js:941 +#: js/palette.js:577 +#: js/blocks/RhythmBlocks.js:766 +#: js/blocks/DrumBlocks.js:477 +#: js/blocks/VolumeBlocks.js:502 +#: js/widgets/phrasemaker.js:1038 +msgid "drum" +msgstr "" + +#: js/turtledefs.js:129 +#: js/turtledefs.js:231 +msgid "boxes" +msgstr "" + +#: js/turtledefs.js:130 +#: js/turtledefs.js:232 +msgid "widgets" +msgstr "" + +#: js/turtledefs.js:131 +#: js/turtledefs.js:233 +#: js/widgets/phrasemaker.js:1039 +msgid "graphics" +msgstr "" + +#: js/turtledefs.js:134 +#: js/turtledefs.js:236 +msgid "boolean" +msgstr "" + +#: js/turtledefs.js:137 +#: js/turtledefs.js:239 +#: js/blocks/HeapBlocks.js:59 +#: js/widgets/status.js:147 +msgid "heap" +msgstr "" + +#: js/turtledefs.js:138 +#: js/turtledefs.js:240 +#: js/blocks/DictBlocks.js:142 +#: js/blocks/ProgramBlocks.js:495 +msgid "dictionary" +msgstr "" + +#: js/turtledefs.js:139 +#: js/turtledefs.js:241 +msgid "ensemble" +msgstr "" + +#: js/turtledefs.js:140 +#: js/turtledefs.js:242 +msgid "extras" +msgstr "" + +#: js/turtledefs.js:142 +#: js/turtledefs.js:244 +#.TRANS: program as in computer program +#.TRANS: program as in computer program +msgid "program" +msgstr "" + +#: js/turtledefs.js:143 +#: js/turtledefs.js:245 +msgid "my blocks" +msgstr "" + +#: js/turtledefs.js:185 +#: js/turtledefs.js:281 +msgid "artwork" +msgstr "" + +#: js/turtledefs.js:185 +#: js/turtledefs.js:281 +msgid "logic" msgstr "" -#: js/piemenus.js:3766 -msgid " for your pitch preview." +#: js/turtledefs.js:185 +#: js/turtledefs.js:281 +msgid "music" msgstr "" -#: js/palette.js:571 -msgid "grid" -msgstr "Rutnät" +#: js/turtledefs.js:187 +#: js/turtledefs.js:463 +msgid "Music Blocks is a collection of tools for exploring fundamental musical concepts in a fun way." +msgstr "" -#: js/palette.js:577 -#: js/block.js:1540 -#: js/block.js:2343 -#: js/turtledefs.js:126 -#: js/turtledefs.js:228 -#: js/lilypond.js:740 -#: js/lilypond.js:905 -#: js/lilypond.js:949 -#: js/DrumBlocks.js:486 -#: js/RhythmBlocks.js:766 -#: js/VolumeBlocks.js:502 -#: js/phrasemaker.js:823 -msgid "drum" +#: js/turtledefs.js:436 +msgid "Welcome to Turtle Blocks" msgstr "" -#: js/palette.js:580 -msgid "effect" +#: js/turtledefs.js:438 +#: js/turtledefs.js:465 +#: js/turtledefs.js:774 +#: js/turtledefs.js:805 +msgid "The current version is" msgstr "" -#: js/palette.js:586 -msgid "sargam" +#: js/turtledefs.js:446 +#: js/turtledefs.js:483 +msgid "Click the run button to run the project in fast mode." msgstr "" -#: js/palette.js:589 -#: js/activity.js:1833 -#: js/RhythmBlocks.js:923 -#: js/PitchBlocks.js:442 -#: js/PitchBlocks.js:1748 -#.TRANS: a numeric mapping of the notes in an octave based on the musical mode -msgid "scale degree" +#: js/turtledefs.js:452 +msgid "Stop the turtle." msgstr "" -#: js/palette.js:592 -#: js/activity.js:1860 -msgid "mode name" +#: js/turtledefs.js:454 +#: js/turtledefs.js:491 +msgid "You can also type Alt-S to stop." msgstr "" -#: js/palette.js:595 -#: js/activity.js:1839 -msgid "invert mode" +#: js/turtledefs.js:462 +#: js/widgets/help.js:333 +msgid "Welcome to Music Blocks" msgstr "" -#: js/palette.js:598 -#: js/activity.js:1836 -msgid "voice name" +#: js/turtledefs.js:472 +#: js/widgets/help.js:334 +msgid "Meet Mr. Mouse!" msgstr "" -#: js/palette.js:601 -#: js/PitchBlocks.js:1181 -msgid "custom pitch" +#: js/turtledefs.js:473 +msgid "Mr Mouse is our Music Blocks conductor." msgstr "" -#: js/palette.js:605 -#: js/block.js:1456 -#: js/block.js:1575 -#: js/WidgetBlocks.js:218 -#: js/IntervalsBlocks.js:63 -msgid "temperament" +#: js/turtledefs.js:475 +msgid "Mr Mouse encourages you to explore Music Blocks." msgstr "" -#: js/palette.js:609 -msgid "accidental" +#: js/turtledefs.js:477 +msgid "Let us start our tour!" msgstr "" -#: js/palette.js:615 -#: js/activity.js:1866 -msgid "interval name" +#: js/turtledefs.js:489 +msgid "Stop the music (and the mice)." msgstr "" -#: js/palette.js:633 -#: js/PitchBlocks.js:405 -msgid "pitch converter" +#: js/turtledefs.js:499 +msgid "Record your project as video." msgstr "" -#: js/rubrics.js:522 -#: js/turtledefs.js:119 -#: js/turtledefs.js:221 -#: js/RhythmBlockPaletteBlocks.js:52 -#: js/RhythmBlockPaletteBlocks.js:233 -#: js/ProgramBlocks.js:745 -#: js/rhythmruler.js:1670 -#: js/rhythmruler.js:1677 -#: js/rhythmruler.js:1745 -#: js/rhythmruler.js:1752 -#: js/rhythmruler.js:1830 -#.TRANS: an arrangement of notes based on duration -msgid "rhythm" +#: js/turtledefs.js:505 +msgid "Toggle Fullscreen mode." msgstr "" -#: js/rubrics.js:523 -#: js/block.js:2339 -#: js/turtledefs.js:121 -#: js/turtledefs.js:223 -#: js/IntervalsBlocks.js:63 -#: js/PitchBlocks.js:1801 -#: js/PitchBlocks.js:1814 -#: js/SensorsBlocks.js:178 -#: js/phrasemaker.js:821 -#: js/musickeyboard.js:1653 -#.TRANS: pitch number -#.TRANS: we specify pitch in terms of a name and an octave. The name can be CDEFGAB or Do Re Mi Fa Sol La Ti. Octave is a number between 1 and 8. -msgid "pitch" +#: js/turtledefs.js:511 +msgid "Initialize a new project." msgstr "" -#: js/rubrics.js:524 -#: js/turtledefs.js:123 -#: js/turtledefs.js:225 -msgid "tone" +#: js/turtledefs.js:517 +msgid "You can also load projects from the file system." msgstr "" -#: js/rubrics.js:525 -#: js/lilypond.js:613 -#: js/lilypond.js:912 -#: js/lilypond.js:918 -#: js/lilypond.js:956 -msgid "mouse" +#: js/turtledefs.js:522 +#: planet/js/StringHelper.js:46 +msgid "Delete" msgstr "" -#: js/rubrics.js:526 -#: js/turtledefs.js:132 -#: js/turtledefs.js:234 -#: js/phrasemaker.js:825 -msgid "pen" +#: js/turtledefs.js:523 +msgid "To delete a block, just right-click on it, then you will be able to see the delete option" msgstr "" -#: js/rubrics.js:527 -#: js/turtledefs.js:133 -#: js/turtledefs.js:235 -#: js/NumberBlocks.js:905 -#: js/PitchBlocks.js:1679 -#: js/PitchBlocks.js:1720 -msgid "number" -msgstr "tal" +#: js/turtledefs.js:528 +#: js/activity.js:2649 +#: planet/js/LocalCard.js:31 +msgid "Copy" +msgstr "Kopiera" -#: js/rubrics.js:528 -#: js/turtledefs.js:127 -#: js/turtledefs.js:229 -msgid "flow" +#: js/turtledefs.js:529 +msgid "To copy a block, just right-click on it, then you will be able to see the copy option" msgstr "" -#: js/rubrics.js:530 -#: js/turtledefs.js:136 -#: js/turtledefs.js:238 -msgid "sensors" +#: js/turtledefs.js:534 +#: js/piemenus.js:3411 +msgid "Extract" msgstr "" -#: js/rubrics.js:531 -#: js/turtledefs.js:135 -#: js/turtledefs.js:237 -#: js/MediaBlocks.js:930 -msgid "media" +#: js/turtledefs.js:535 +msgid "To extract a block, just right-click on it, then you will be able to see the extract option" msgstr "" -#: js/rubrics.js:532 -msgid "mice" +#: js/turtledefs.js:542 +#: js/turtledefs.js:552 +#: js/turtledefs.js:573 +msgid "Save your project to a file." msgstr "" -#: js/macros.js:711 -#: js/musicutils.js:783 -#: js/synthutils.js:181 -#.TRANS: animal sound effect -msgid "duck" +#: js/turtledefs.js:549 +#: js/turtledefs.js:570 +msgid "save" msgstr "" -#: js/toolbar.js:46 -#: js/toolbar.js:107 -msgid "About Music Blocks" +#: js/turtledefs.js:556 +#: js/turtledefs.js:577 +msgid "Save graphics from your project to as SVG." msgstr "" -#: js/toolbar.js:47 -#: js/toolbar.js:108 -#: js/toolbar.js:172 -#: js/toolbar.js:228 -#: js/turtledefs.js:445 -#: js/turtledefs.js:482 -#: js/activity.js:2281 -#: js/activity.js:2289 -#: js/activity.js:2520 -#: js/modewidget.js:77 -#: js/pitchstaircase.js:121 -#: js/phrasemaker.js:302 -#: js/phrasemaker.js:312 -#: js/phrasemaker.js:314 -#: js/phrasemaker.js:3901 -#: js/phrasemaker.js:4061 -#: js/phrasemaker.js:4066 -#: js/phrasemaker.js:4068 -#: js/phrasemaker.js:4183 -#: js/pitchdrummatrix.js:81 -#: js/pitchdrummatrix.js:574 -#: js/pitchdrummatrix.js:576 -#: js/pitchdrummatrix.js:628 -#: js/pitchdrummatrix.js:630 -#: js/pitchdrummatrix.js:645 -#: js/pitchdrummatrix.js:647 -#: js/pitchdrummatrix.js:674 -#: js/pitchdrummatrix.js:676 -#: js/temperament.js:477 -#: js/temperament.js:480 -#: js/temperament.js:540 -#: js/temperament.js:542 -#: js/temperament.js:1835 -#: js/temperament.js:1837 -#: js/temperament.js:1986 -#: js/temperament.js:1988 -#: js/musickeyboard.js:522 -#: js/musickeyboard.js:682 -#: js/musickeyboard.js:684 -#: js/musickeyboard.js:756 -#: js/musickeyboard.js:758 -#: js/rhythmruler.js:298 -#: js/rhythmruler.js:300 -#: js/rhythmruler.js:314 -#: js/rhythmruler.js:316 -#: js/sampler.js:96 -#: js/sampler.js:98 -#: js/sampler.js:229 -#: js/sampler.js:235 -#: js/sampler.js:237 -#: js/tempo.js:84 -#: js/tempo.js:86 -#: js/timbre.js:432 -#: js/timbre.js:434 -#: js/timbre.js:465 -#: js/timbre.js:467 -#: js/timbre.js:746 -#: js/meterwidget.js:80 -#: js/arpeggio.js:90 -#: js/arpeggio.js:547 -#: js/arpeggio.js:549 -#: js/arpeggio.js:644 -#: js/arpeggio.js:646 -msgid "Play" +#: js/turtledefs.js:560 +#: js/turtledefs.js:581 +msgid "Save graphics from your project as PNG." msgstr "" -#: js/toolbar.js:48 -#: js/toolbar.js:109 -#: js/toolbar.js:173 -#: js/toolbar.js:229 -#: js/turtledefs.js:451 -#: js/turtledefs.js:488 -#: js/activity.js:2297 -#: js/modewidget.js:99 -#: js/modewidget.js:101 -#: js/phrasemaker.js:323 -#: js/phrasemaker.js:325 -#: js/pitchdrummatrix.js:561 -#: js/pitchdrummatrix.js:563 -#: js/temperament.js:1820 -#: js/temperament.js:1822 -#: js/meterwidget.js:101 -#: js/meterwidget.js:103 -#: js/arpeggio.js:534 -#: js/arpeggio.js:536 -msgid "Stop" -msgstr "topp" +#: js/turtledefs.js:564 +#: js/turtledefs.js:597 +msgid "Save block artwork as an SVG file." +msgstr "" -#: js/toolbar.js:49 -#: js/toolbar.js:110 -#: js/toolbar.js:174 -#: js/toolbar.js:230 -#: js/turtledefs.js:498 -msgid "Record" +#: js/turtledefs.js:585 +msgid "Save audio from your project as WAV." msgstr "" -#: js/toolbar.js:50 -#: js/toolbar.js:51 -msgid "Full screen" +#: js/turtledefs.js:589 +msgid "Save your project to as an ABC file." msgstr "" -#: js/toolbar.js:52 -#: js/toolbar.js:112 -#: js/toolbar.js:177 -#: js/toolbar.js:232 -#: js/turtledefs.js:504 -msgid "Toggle Fullscreen" +#: js/turtledefs.js:593 +msgid "Save your project to as a Lilypond file." msgstr "" -#: js/toolbar.js:53 -#: js/toolbar.js:113 -#: js/toolbar.js:178 -#: js/toolbar.js:233 -#: js/turtledefs.js:510 -#: js/StringHelper.js:33 -msgid "New project" +#: js/turtledefs.js:604 +msgid "Load samples from server" msgstr "" -#: js/toolbar.js:54 -#: js/toolbar.js:114 -#: js/toolbar.js:179 -#: js/toolbar.js:234 -#: js/turtledefs.js:516 -msgid "Load project from file" +#: js/turtledefs.js:605 +msgid "This button opens a viewer for loading example projects." msgstr "" -#: js/toolbar.js:55 -#: js/toolbar.js:115 -#: js/toolbar.js:116 -#: js/toolbar.js:180 -#: js/toolbar.js:235 -#: js/turtledefs.js:541 -#: js/turtledefs.js:550 -#: js/turtledefs.js:571 -msgid "Save project" +#: js/turtledefs.js:611 +msgid "Palette buttons" msgstr "" -#: js/toolbar.js:56 -#: js/toolbar.js:75 -#: js/toolbar.js:77 -#: js/toolbar.js:135 -#: js/toolbar.js:144 -#: js/toolbar.js:146 -#: js/toolbar.js:181 -#: js/toolbar.js:199 -#: js/toolbar.js:201 -#: js/toolbar.js:236 -#: js/toolbar.js:254 -#: js/toolbar.js:256 -msgid "Save project as HTML" +#: js/turtledefs.js:612 +msgid "This toolbar contains the palette buttons including Rhythm Pitch Tone Action and more." msgstr "" -#: js/toolbar.js:57 -#: js/toolbar.js:117 -#: js/toolbar.js:182 -#: js/toolbar.js:237 -msgid "Find and share projects" +#: js/turtledefs.js:614 +msgid "Click to show the palettes of blocks and drag blocks from the palettes onto the canvas to use them." msgstr "" -#: js/toolbar.js:58 -#: js/toolbar.js:118 -#: js/toolbar.js:183 -#: js/toolbar.js:238 -msgid "Offline. Sharing is unavailable" +#: js/turtledefs.js:620 +msgid "Cartesian/Polar" +msgstr "" + +#: js/turtledefs.js:621 +msgid "Show or hide a coordinate grid." +msgstr "" + +#: js/turtledefs.js:626 +#: js/turtles.js:902 +msgid "Clean" +msgstr "rensa" + +#: js/turtledefs.js:627 +msgid "Clear the screen and return the mice to their initial positions." +msgstr "" + +#: js/turtledefs.js:632 +#: js/turtles.js:955 +msgid "Collapse" msgstr "" -#: js/toolbar.js:59 -#: js/toolbar.js:119 -#: js/toolbar.js:184 -#: js/toolbar.js:239 -msgid "Auxiliary menu" +#: js/turtledefs.js:633 +msgid "Collapse the graphics window." msgstr "" -#: js/toolbar.js:61 -#: js/toolbar.js:121 -#: js/toolbar.js:186 -#: js/toolbar.js:241 -msgid "Run slowly" +#: js/turtledefs.js:638 +#: js/activity.js:5684 +msgid "Home" msgstr "" -#: js/toolbar.js:62 -#: js/toolbar.js:122 -#: js/toolbar.js:187 -#: js/toolbar.js:242 -#: js/turtledefs.js:682 -msgid "Run step by step" +#: js/turtledefs.js:639 +msgid "Return all blocks to the center of the screen." msgstr "" -#: js/toolbar.js:63 -#: js/toolbar.js:123 -#: js/toolbar.js:188 -#: js/toolbar.js:243 -#: js/turtledefs.js:689 -msgid "Display statistics" +#: js/turtledefs.js:644 +msgid "Show/hide blocks" msgstr "" -#: js/toolbar.js:64 -#: js/toolbar.js:124 -#: js/toolbar.js:189 -#: js/toolbar.js:244 -msgid "Load plugin" +#: js/turtledefs.js:645 +msgid "Hide or show the blocks and the palettes." msgstr "" -#: js/toolbar.js:65 -#: js/toolbar.js:125 -#: js/toolbar.js:190 -#: js/toolbar.js:245 -#: js/turtledefs.js:696 -msgid "Delete plugin" +#: js/turtledefs.js:650 +msgid "Expand/collapse collapsable blocks" msgstr "" -#: js/toolbar.js:66 -#: js/toolbar.js:126 -#: js/toolbar.js:191 -#: js/toolbar.js:246 -msgid "Enable horizontal scrolling" +#: js/turtledefs.js:651 +msgid "Expand or collapse start and action stacks." msgstr "" -#: js/toolbar.js:67 -#: js/toolbar.js:127 -#: js/toolbar.js:192 -#: js/toolbar.js:247 -msgid "Disable horizontal scrolling" +#: js/turtledefs.js:658 +#: js/activity.js:5704 +msgid "Decrease block size" msgstr "" -#: js/toolbar.js:68 -#: js/toolbar.js:128 -#: js/toolbar.js:193 -#: js/toolbar.js:248 -#: js/LocalCard.js:54 -#: js/StringHelper.js:71 -msgid "Merge with current project" +#: js/turtledefs.js:659 +msgid "Decrease the size of the blocks." msgstr "" -#: js/toolbar.js:69 -#: js/toolbar.js:129 -msgid "Set Pitch Preview" +#: js/turtledefs.js:664 +#: js/activity.js:5710 +msgid "Increase block size" msgstr "" -#: js/toolbar.js:70 -#: js/toolbar.js:130 -#: js/toolbar.js:194 -#: js/toolbar.js:249 -msgid "Toggle JavaScript Editor" +#: js/turtledefs.js:665 +msgid "Increase the size of the blocks." msgstr "" -#: js/toolbar.js:71 -#: js/toolbar.js:131 -#: js/toolbar.js:195 -#: js/toolbar.js:250 -#: js/turtledefs.js:724 -msgid "Restore" +#: js/turtledefs.js:670 +msgid "Expand/collapse option toolbar" msgstr "" -#: js/toolbar.js:72 -#: js/toolbar.js:132 -#: js/toolbar.js:196 -#: js/toolbar.js:251 -msgid "Switch to beginner mode" +#: js/turtledefs.js:671 +msgid "Click this button to expand or collapse the auxillary toolbar." msgstr "" -#: js/toolbar.js:73 -#: js/toolbar.js:133 -#: js/toolbar.js:197 -#: js/toolbar.js:252 -msgid "Switch to advanced mode" +#: js/turtledefs.js:676 +msgid "Run slow" msgstr "" -#: js/toolbar.js:74 -#: js/toolbar.js:134 -#: js/toolbar.js:143 -#: js/toolbar.js:198 -#: js/toolbar.js:253 -#: js/turtledefs.js:738 -msgid "Select language" +#: js/turtledefs.js:677 +msgid "Click to run the project in slow mode." msgstr "" -#: js/toolbar.js:76 -#: js/toolbar.js:79 -#: js/toolbar.js:137 -#: js/turtledefs.js:579 -msgid "Save mouse artwork as PNG" +#: js/turtledefs.js:683 +msgid "Click to run the project step by step." msgstr "" -#: js/toolbar.js:78 -#: js/toolbar.js:136 -#: js/turtledefs.js:575 -msgid "Save mouse artwork as SVG" +#: js/turtledefs.js:690 +msgid "Display statistics about your Music project." msgstr "" -#: js/toolbar.js:80 -#: js/toolbar.js:138 -#: js/turtledefs.js:583 -msgid "Save music as WAV" +#: js/turtledefs.js:697 +msgid "Delete a selected plugin." msgstr "" -#: js/toolbar.js:81 -#: js/toolbar.js:139 -#: js/turtledefs.js:587 -msgid "Save sheet music as ABC" +#: js/turtledefs.js:704 +msgid "Enable scrolling" msgstr "" -#: js/toolbar.js:82 -#: js/toolbar.js:140 -#: js/turtledefs.js:591 -msgid "Save sheet music as Lilypond" +#: js/turtledefs.js:705 +msgid "You can scroll the blocks on the canvas." msgstr "" -#: js/toolbar.js:83 -msgid "Save sheet music as MusicXML" +#: js/turtledefs.js:714 +msgid "Wrap Turtle" msgstr "" -#: js/toolbar.js:84 -#: js/toolbar.js:141 -#: js/toolbar.js:149 -#: js/toolbar.js:204 -#: js/toolbar.js:259 -#: js/turtledefs.js:562 -#: js/turtledefs.js:595 -msgid "Save block artwork as SVG" +#: js/turtledefs.js:715 +msgid "Turn Turtle wrapping On or Off." msgstr "" -#: js/toolbar.js:85 -#: js/toolbar.js:142 -#: js/toolbar.js:150 -#: js/toolbar.js:205 -#: js/toolbar.js:260 -msgid "Confirm" +#: js/turtledefs.js:725 +msgid "Restore blocks from the trash." msgstr "" -#: js/toolbar.js:86 -#: js/toolbar.js:151 -#: js/toolbar.js:206 -#: js/toolbar.js:261 -msgid "English (United States)" +#: js/turtledefs.js:732 +msgid "Switch mode" msgstr "" -#: js/toolbar.js:87 -#: js/toolbar.js:152 -#: js/toolbar.js:207 -#: js/toolbar.js:262 -msgid "English (United Kingdom)" +#: js/turtledefs.js:733 +msgid "Switch between beginner and advance modes." msgstr "" -#: js/toolbar.js:88 -#: js/toolbar.js:153 -#: js/toolbar.js:208 -#: js/toolbar.js:263 -msgid "日本語" +#: js/turtledefs.js:739 +msgid "Select your language preference." msgstr "" -#: js/toolbar.js:89 -msgid "한국어" +#: js/turtledefs.js:745 +msgid "Keyboard shortcuts" msgstr "" -#: js/toolbar.js:90 -#: js/toolbar.js:155 -#: js/toolbar.js:210 -#: js/toolbar.js:265 -msgid "español" +#: js/turtledefs.js:746 +msgid "You can type d to create a do block and r to create a re block etc." msgstr "" -#: js/toolbar.js:91 -#: js/toolbar.js:156 -#: js/toolbar.js:211 -#: js/toolbar.js:266 -msgid "português" +#: js/turtledefs.js:753 +msgid "Show these messages." msgstr "" -#: js/toolbar.js:92 -#: js/toolbar.js:157 -#: js/toolbar.js:212 -#: js/toolbar.js:267 -msgid "にほんご" +#: js/turtledefs.js:759 +#: js/turtledefs.js:790 +#: js/widgets/help.js:335 +msgid "Guide" msgstr "" -#: js/toolbar.js:93 -#: js/toolbar.js:158 -#: js/toolbar.js:213 -#: js/toolbar.js:268 -msgid "中文" +#: js/turtledefs.js:760 +msgid "A detailed guide to Turtle Blocks is available." msgstr "" -#: js/toolbar.js:94 -#: js/toolbar.js:159 -#: js/toolbar.js:214 -#: js/toolbar.js:269 -msgid "ภาษาไทย" +#: js/turtledefs.js:764 +msgid "Turtle Blocks Guide" msgstr "" -#: js/toolbar.js:95 -#: js/toolbar.js:160 -#: js/toolbar.js:215 -#: js/toolbar.js:270 -msgid "aymara" +#: js/turtledefs.js:767 +#: js/turtledefs.js:798 +#: js/widgets/help.js:336 +msgid "About" msgstr "" -#: js/toolbar.js:96 -#: js/toolbar.js:161 -#: js/toolbar.js:216 -#: js/toolbar.js:271 -msgid "quechua" +#: js/turtledefs.js:768 +msgid "Turtle Blocks is an open source collection of tools for exploring musical concepts." msgstr "" -#: js/toolbar.js:97 -#: js/toolbar.js:162 -#: js/toolbar.js:217 -#: js/toolbar.js:272 -msgid "guarani" +#: js/turtledefs.js:770 +msgid "A full list of contributors can be found in the Turtle Blocks GitHub repository." msgstr "" -#: js/toolbar.js:98 -#: js/toolbar.js:163 -#: js/toolbar.js:218 -#: js/toolbar.js:273 -msgid "हिंदी" +#: js/turtledefs.js:772 +msgid "Turtle Blocks is licensed under the AGPL." msgstr "" -#: js/toolbar.js:99 -#: js/toolbar.js:165 -#: js/toolbar.js:219 -#: js/toolbar.js:275 -msgid "igbo" +#: js/turtledefs.js:780 +msgid "Turtle Blocks GitHub repository" msgstr "" -#: js/toolbar.js:100 -#: js/toolbar.js:166 -#: js/toolbar.js:220 -#: js/toolbar.js:276 -msgid "عربى" +#: js/turtledefs.js:783 +#: js/turtledefs.js:814 +#: js/widgets/help.js:337 +#: js/widgets/help.js:359 +msgid "Congratulations." msgstr "" -#: js/toolbar.js:101 -#: js/toolbar.js:164 -#: js/toolbar.js:221 -#: js/toolbar.js:274 -msgid "తెలుగు" +#: js/turtledefs.js:784 +msgid "You have finished the tour. Please enjoy Turtle Blocks!" msgstr "" -#: js/toolbar.js:102 -#: js/toolbar.js:167 -#: js/toolbar.js:222 -#: js/toolbar.js:277 -msgid "עִברִית" +#: js/turtledefs.js:791 +msgid "A detailed guide to Music Blocks is available." msgstr "" -#: js/toolbar.js:111 -#: js/toolbar.js:175 -#: js/toolbar.js:176 -#: js/toolbar.js:231 -msgid "Full Screen" +#: js/turtledefs.js:799 +msgid "Music Blocks is an open source collection of tools for exploring musical concepts." msgstr "" -#: js/toolbar.js:145 -#: js/toolbar.js:148 -#: js/toolbar.js:200 -#: js/toolbar.js:203 -#: js/toolbar.js:255 -#: js/toolbar.js:258 -#: js/turtledefs.js:558 -msgid "Save turtle artwork as PNG" +#: js/turtledefs.js:801 +msgid "A full list of contributors can be found in the Music Blocks GitHub repository." msgstr "" -#: js/toolbar.js:147 -#: js/toolbar.js:202 -#: js/toolbar.js:257 -#: js/turtledefs.js:554 -msgid "Save turtle artwork as SVG" +#: js/turtledefs.js:803 +msgid "Music Blocks is licensed under the AGPL." msgstr "" -#: js/toolbar.js:154 -#: js/toolbar.js:209 -#: js/toolbar.js:264 -msgid "한국인" +#: js/turtledefs.js:811 +msgid "Music Blocks GitHub repository" msgstr "" -#: js/toolbar.js:171 -#: js/toolbar.js:227 -msgid "About Turtle Blocks" +#: js/turtledefs.js:815 +msgid "You have finished the tour. Please enjoy Music Blocks!" msgstr "" -#: js/toolbar.js:429 -#: js/toolbar.js:440 -msgid "Turtle Wrap Off" +#: js/turtles.js:882 +msgid "Grid" +msgstr "Rutnät" + +#: js/turtles.js:1024 +msgid "Expand" msgstr "" -#: js/toolbar.js:442 -msgid "Turtle Wrap On" +#: js/block-verbose.js:1616 +#: js/block-verbose.js:1735 +#: js/block.js:1580 +#: js/block.js:1699 +#: js/palette.js:605 +#: js/blocks/IntervalsBlocks.js:63 +#: js/blocks/WidgetBlocks.js:259 +msgid "temperament" msgstr "" -#: js/block.js:1470 +#: js/block-verbose.js:1630 +#: js/block.js:1594 msgid "matrix" msgstr "" -#: js/block.js:1477 -#: js/WidgetBlocks.js:1226 +#: js/block-verbose.js:1637 +#: js/block.js:1601 +#: js/blocks/WidgetBlocks.js:1509 #: plugins/rodi.rtp:324 msgid "status" msgstr "" -#: js/block.js:1484 +#: js/block-verbose.js:1644 +#: js/block.js:1608 msgid "drum mapper" msgstr "" -#: js/block.js:1491 +#: js/block-verbose.js:1651 +#: js/block.js:1615 msgid "ruler" msgstr "" -#: js/block.js:1498 -#: js/WidgetBlocks.js:327 +#: js/block-verbose.js:1658 +#: js/block.js:1622 +#: js/blocks/WidgetBlocks.js:397 #.TRANS: timbre is the character or quality of a musical sound msgid "timbre" msgstr "" -#: js/block.js:1505 +#: js/block-verbose.js:1665 +#: js/block.js:1629 msgid "stair" msgstr "" -#: js/block.js:1512 -#: js/WidgetBlocks.js:577 +#: js/block-verbose.js:1672 +#: js/block.js:1636 +#: js/blocks/WidgetBlocks.js:707 #.TRANS: the speed at music is should be played. msgid "tempo" msgstr "" -#: js/block.js:1519 -#: js/block.js:1582 -#: js/IntervalsBlocks.js:1268 +#: js/block-verbose.js:1679 +#: js/block-verbose.js:1742 +#: js/block.js:1643 +#: js/block.js:1706 +#: js/blocks/IntervalsBlocks.js:1464 #.TRANS: mode, e.g., Major in C Major msgid "mode" msgstr "" -#: js/block.js:1526 +#: js/block-verbose.js:1686 +#: js/block.js:1650 msgid "slider" msgstr "" -#: js/block.js:1533 -#: js/SensorsBlocks.js:1001 +#: js/block-verbose.js:1693 +#: js/block.js:1657 +#: js/blocks/SensorsBlocks.js:1001 msgid "keyboard" msgstr "Tangentbord" -#: js/block.js:1547 -#: js/WidgetBlocks.js:957 -#: js/WidgetBlocks.js:988 +#: js/block-verbose.js:1707 +#: js/block.js:1671 +#: js/blocks/WidgetBlocks.js:1190 +#: js/blocks/WidgetBlocks.js:1228 #.TRANS: widget for subdividing a measure into distinct rhythmic elements msgid "rhythm maker" msgstr "" -#: js/block.js:1554 -#: js/block.js:2182 -#: js/block.js:2236 -#: js/RhythmBlockPaletteBlocks.js:70 -#: js/RhythmBlockPaletteBlocks.js:251 -#: js/RhythmBlockPaletteBlocks.js:484 -#: js/RhythmBlockPaletteBlocks.js:553 -#: js/RhythmBlockPaletteBlocks.js:604 -#: js/RhythmBlockPaletteBlocks.js:874 -#: js/RhythmBlocks.js:33 -#: js/RhythmBlocks.js:356 -#: js/RhythmBlocks.js:766 -#: js/RhythmBlocks.js:806 -#: js/OrnamentBlocks.js:220 -#: js/OrnamentBlocks.js:312 -#: js/MeterBlocks.js:1367 -#: js/DictActions.js:85 -#: js/phrasemaker.js:731 -#: js/phrasemaker.js:2393 -#: js/phrasemaker.js:2436 -#: js/phrasemaker.js:2534 +#: js/block-verbose.js:1714 +#: js/block-verbose.js:2457 +#: js/block-verbose.js:2514 +#: js/block.js:1678 +#: js/block.js:2385 +#: js/block.js:2442 +#: js/blocks/MeterBlocks.js:1367 +#: js/blocks/OrnamentBlocks.js:220 +#: js/blocks/OrnamentBlocks.js:312 +#: js/blocks/RhythmBlocks.js:33 +#: js/blocks/RhythmBlocks.js:356 +#: js/blocks/RhythmBlocks.js:766 +#: js/blocks/RhythmBlocks.js:806 +#: js/blocks/RhythmBlockPaletteBlocks.js:70 +#: js/blocks/RhythmBlockPaletteBlocks.js:252 +#: js/blocks/RhythmBlockPaletteBlocks.js:485 +#: js/blocks/RhythmBlockPaletteBlocks.js:554 +#: js/blocks/RhythmBlockPaletteBlocks.js:605 +#: js/blocks/RhythmBlockPaletteBlocks.js:875 +#: js/turtleactions/DictActions.js:85 +#: js/widgets/phrasemaker.js:942 +#: js/widgets/phrasemaker.js:2656 +#: js/widgets/phrasemaker.js:2699 +#: js/widgets/phrasemaker.js:2810 #.TRANS: the value (e.g., 1/4 note) of the note being played. msgid "note value" msgstr "" -#: js/block.js:1561 -#: js/block.js:2110 -#: js/block.js:2133 -#: js/IntervalsBlocks.js:875 -#: js/OrnamentBlocks.js:312 +#: js/block-verbose.js:1721 +#: js/block-verbose.js:2382 +#: js/block-verbose.js:2405 +#: js/block.js:1685 +#: js/block.js:2310 +#: js/block.js:2333 +#: js/blocks/IntervalsBlocks.js:1071 +#: js/blocks/OrnamentBlocks.js:312 #.TRANS: calculate a relative step between notes based on semi-tones msgid "scalar interval" msgstr "" -#: js/block.js:1568 -#: js/RhythmBlocks.js:148 +#: js/block-verbose.js:1728 +#: js/block.js:1692 +#: js/blocks/RhythmBlocks.js:148 msgid "milliseconds" msgstr "" -#: js/block.js:2180 -#: js/block.js:2184 -#: js/block.js:2234 -#: js/block.js:2345 -#: js/ProgramBlocks.js:1273 -#: js/RhythmBlocks.js:712 -#: js/rhythmruler.js:834 -#: js/rhythmruler.js:961 +#: js/block-verbose.js:2455 +#: js/block-verbose.js:2459 +#: js/block-verbose.js:2512 +#: js/block-verbose.js:2628 +#: js/block.js:2383 +#: js/block.js:2387 +#: js/block.js:2440 +#: js/block.js:2556 +#: js/blocks/RhythmBlocks.js:712 +#: js/blocks/ProgramBlocks.js:1273 +#: js/widgets/rhythmruler.js:1183 +#: js/widgets/rhythmruler.js:1329 msgid "silence" msgstr "" -#: js/block.js:2265 -#: js/block.js:3134 -#: js/block.js:3151 -#: js/activity.js:2336 -#: js/activity.js:2387 -#: js/musicutils.js:2932 -#: js/musicutils.js:4287 +#: js/block-verbose.js:2548 +#: js/block-verbose.js:3492 +#: js/block-verbose.js:3509 +#: js/activity.js:2718 +#: js/activity.js:2769 +#: js/block.js:2476 +#: js/block.js:3416 +#: js/block.js:3433 +#: js/utils/musicutils.js:3780 +#: js/utils/musicutils.js:5273 +#.TRANS: the note names must be separated by single spaces #.TRANS: the note names must be separated by single spaces #.TRANS: the note names must be separated by single spaces msgid "ti la sol fa mi re do" msgstr "" -#: js/block.js:2333 +#: js/block-verbose.js:2616 +#: js/block.js:2544 +#.TRANS: scalar step #.TRANS: scalar step msgid "down" msgstr "" -#: js/block.js:2334 +#: js/block-verbose.js:2617 +#: js/block.js:2545 msgid "up" msgstr "" -#: js/block.js:3477 -#: js/block.js:3490 -#: js/ExtrasBlocks.js:612 +#: js/block-verbose.js:3026 +#: js/block.js:2950 +msgid "Silence block cannot be removed." +msgstr "" + +#: js/block-verbose.js:3824 +#: js/block.js:3748 +#: js/blocks.js:2607 +#: js/blocks.js:3218 +#: js/palette.js:618 +#: js/blocks/BooleanBlocks.js:77 +#: js/blocks/BooleanBlocks.js:167 +#: js/blocks/BooleanBlocks.js:251 +#: js/blocks/BooleanBlocks.js:335 +#: js/blocks/BooleanBlocks.js:433 +#: js/blocks/BooleanBlocks.js:539 +#: js/blocks/BooleanBlocks.js:640 +#: js/blocks/BooleanBlocks.js:741 +#: js/blocks/BooleanBlocks.js:847 +#: js/blocks/BooleanBlocks.js:948 +#: js/blocks/BooleanBlocks.js:1033 +#: js/blocks/SensorsBlocks.js:910 +msgid "true" +msgstr "" + +#: js/block-verbose.js:3824 +#: js/block.js:3748 +#: js/blocks.js:2609 +#: js/blocks.js:3220 +#: js/blocks/BooleanBlocks.js:79 +#: js/blocks/BooleanBlocks.js:169 +#: js/blocks/BooleanBlocks.js:253 +#: js/blocks/BooleanBlocks.js:337 +#: js/blocks/BooleanBlocks.js:435 +#: js/blocks/BooleanBlocks.js:541 +#: js/blocks/BooleanBlocks.js:642 +#: js/blocks/BooleanBlocks.js:743 +#: js/blocks/BooleanBlocks.js:849 +#: js/blocks/BooleanBlocks.js:950 +#: js/blocks/SensorsBlocks.js:912 +msgid "false" +msgstr "" + +#: js/block-verbose.js:3835 +#: js/block-verbose.js:3848 +#: js/block.js:3759 +#: js/block.js:3772 +#: js/blocks/ExtrasBlocks.js:615 msgid "Cartesian" msgstr "" -#: js/block.js:3478 -#: js/block.js:3491 -#: js/ExtrasBlocks.js:616 +#: js/block-verbose.js:3836 +#: js/block-verbose.js:3849 +#: js/block.js:3760 +#: js/block.js:3773 +#: js/blocks/ExtrasBlocks.js:619 msgid "polar" msgstr "" -#: js/block.js:3479 -#: js/block.js:3492 -#: js/ExtrasBlocks.js:620 +#: js/block-verbose.js:3837 +#: js/block-verbose.js:3850 +#: js/block.js:3761 +#: js/block.js:3774 +#: js/blocks/ExtrasBlocks.js:623 msgid "Cartesian+polar" msgstr "" -#: js/block.js:3480 -#: js/block.js:3499 -#: js/ExtrasBlocks.js:649 +#: js/block-verbose.js:3838 +#: js/block-verbose.js:3857 +#: js/block.js:3762 +#: js/block.js:3781 +#: js/blocks/ExtrasBlocks.js:652 msgid "none" msgstr "" -#: js/block.js:3493 -#: js/ExtrasBlocks.js:625 +#: js/block-verbose.js:3851 +#: js/block.js:3775 +#: js/blocks/ExtrasBlocks.js:628 msgid "treble" msgstr "" -#: js/block.js:3494 -#: js/ExtrasBlocks.js:629 +#: js/block-verbose.js:3852 +#: js/block.js:3776 +#: js/blocks/ExtrasBlocks.js:632 msgid "grand staff" msgstr "" -#: js/block.js:3495 -#: js/ExtrasBlocks.js:633 +#: js/block-verbose.js:3853 +#: js/block.js:3777 +#: js/blocks/ExtrasBlocks.js:636 msgid "mezzo-soprano" msgstr "" -#: js/block.js:3496 -#: js/ExtrasBlocks.js:637 +#: js/block-verbose.js:3854 +#: js/block.js:3778 +#: js/blocks/ExtrasBlocks.js:640 msgid "alto" msgstr "" -#: js/block.js:3497 -#: js/ExtrasBlocks.js:641 +#: js/block-verbose.js:3855 +#: js/block.js:3779 +#: js/blocks/ExtrasBlocks.js:644 msgid "tenor" msgstr "" -#: js/block.js:3498 -#: js/ExtrasBlocks.js:645 -#: js/musicutils.js:736 -#: js/synthutils.js:64 +#: js/block-verbose.js:3856 +#: js/block.js:3780 +#: js/utils/musicutils.js:1115 +#: js/utils/synthutils.js:80 +#: js/blocks/ExtrasBlocks.js:648 #.TRANS: musical instrument msgid "bass" msgstr "" -#: js/block.js:4075 +#: js/block-verbose.js:3901 +#: js/block.js:3825 +#: js/blocks.js:2600 +#: js/blocks.js:3211 +msgid "on2" +msgstr "" + +#: js/block-verbose.js:3903 +#: js/block.js:3827 +#: js/blocks.js:2602 +#: js/blocks.js:3213 +msgid "off" +msgstr "" + +#: js/block-verbose.js:4470 +#: js/block.js:4394 msgid "Not a number" msgstr "" -#: js/block.js:4082 +#: js/block-verbose.js:4477 +#: js/block.js:4401 msgid "Octave value must be between 1 and 10." msgstr "" -#: js/block.js:4090 +#: js/block-verbose.js:4485 +#: js/block.js:4409 msgid "Numbers can have at most 10 digits." msgstr "" -#: js/notation.js:353 -msgid "Lilypond cannot process pickup of " +#: js/activity.js:390 +#: js/activity.js:395 +msgid "Search for blocks" msgstr "" -#: js/turtledefs.js:40 -#.TRANS: put the URL to the guide here, e.g., https://github.com/sugarlabs/turtleblocksjs/tree/master/guide/README.md -msgid "guide url" +#: js/activity.js:1413 +msgid "Refresh your browser to change to advanced mode." msgstr "" -#: js/turtledefs.js:85 -#: js/turtledefs.js:437 -msgid "Turtle Blocks is a Logo-inspired turtle that draws colorful pictures with snap-together visual-programming blocks." +#: js/activity.js:1418 +msgid "Refresh your browser to change to beginner mode." msgstr "" -#: js/turtledefs.js:118 -#: js/turtledefs.js:220 -msgid "search" +#: js/activity.js:1477 +msgid "Catching mice" msgstr "" -#: js/turtledefs.js:120 -#: js/turtledefs.js:222 -#: js/WidgetBlocks.js:437 -#: js/MeterBlocks.js:1343 -#.TRANS: musical meter (time signature), e.g., 4:4 -msgid "meter" +#: js/activity.js:1478 +msgid "Cleaning the instruments" msgstr "" -#: js/turtledefs.js:122 -#: js/turtledefs.js:224 -msgid "intervals" +#: js/activity.js:1479 +msgid "Testing key pieces" msgstr "" -#: js/turtledefs.js:124 -#: js/turtledefs.js:226 -msgid "ornament" +#: js/activity.js:1480 +msgid "Sight-reading" msgstr "" -#: js/turtledefs.js:125 -#: js/turtledefs.js:227 -#: js/VolumeBlocks.js:362 -#: js/VolumeBlocks.js:502 -#: js/VolumeBlocks.js:545 -msgid "volume" +#: js/activity.js:1481 +msgid "Combining math and music" msgstr "" -#: js/turtledefs.js:129 -#: js/turtledefs.js:231 -msgid "boxes" +#: js/activity.js:1482 +msgid "Generating more blocks" +msgstr "" + +#: js/activity.js:1483 +msgid "Do Re Mi Fa Sol La Ti Do" +msgstr "" + +#: js/activity.js:1484 +msgid "Tuning string instruments" +msgstr "" + +#: js/activity.js:1485 +msgid "Pressing random keys" +msgstr "" + +#: js/activity.js:1663 +msgid "plugins will be removed upon restart." +msgstr "" + +#: js/activity.js:1672 +msgid "show Cartesian" +msgstr "" + +#: js/activity.js:2211 +#: js/palette.js:589 +#: js/blocks/RhythmBlocks.js:923 +#: js/blocks/PitchBlocks.js:442 +#: js/blocks/PitchBlocks.js:1786 +#.TRANS: a numeric mapping of the notes in an octave based on the musical mode +msgid "scale degree" +msgstr "" + +#: js/activity.js:2214 +#: js/palette.js:598 +msgid "voice name" +msgstr "" + +#: js/activity.js:2217 +#: js/palette.js:595 +msgid "invert mode" +msgstr "" + +#: js/activity.js:2220 +msgid "output tools" +msgstr "" + +#: js/activity.js:2223 +msgid "custom note" +msgstr "" + +#: js/activity.js:2226 +msgid "accidental name" +msgstr "" + +#: js/activity.js:2229 +#: js/blocks/PitchBlocks.js:855 +msgid "east indian solfege" +msgstr "" + +#: js/activity.js:2232 +#: js/blocks/PitchBlocks.js:869 +msgid "note name" +msgstr "" + +#: js/activity.js:2235 +#: js/blocks/IntervalsBlocks.js:94 +msgid "temperament name" +msgstr "" + +#: js/activity.js:2238 +#: js/palette.js:592 +msgid "mode name" +msgstr "" + +#: js/activity.js:2241 +msgid "chord name" +msgstr "" + +#: js/activity.js:2244 +#: js/palette.js:615 +msgid "interval name" +msgstr "" + +#: js/activity.js:2247 +msgid "filter type" +msgstr "" + +#: js/activity.js:2250 +msgid "oscillator type" +msgstr "" + +#: js/activity.js:2253 +#: js/blocks.js:2479 +#: js/blocks.js:2487 +msgid "audio file" +msgstr "" + +#: js/activity.js:2256 +#: js/blocks/DrumBlocks.js:32 +msgid "noise name" +msgstr "" + +#: js/activity.js:2259 +#: js/blocks/DrumBlocks.js:75 +msgid "drum name" +msgstr "" + +#: js/activity.js:2262 +#: js/blocks/DrumBlocks.js:119 +msgid "effects name" +msgstr "" + +#: js/activity.js:2265 +msgid "wrap mode" +msgstr "" + +#: js/activity.js:2268 +msgid "load file" +msgstr "" + +#: js/activity.js:2435 +#: js/activity.js:5851 +msgid "This block is deprecated." +msgstr "" + +#: js/activity.js:2437 +#: js/activity.js:5853 +msgid "Block cannot be found." +msgstr "" + +#: js/activity.js:2645 +msgid "Saving block artwork" +msgstr "" + +#: js/activity.js:2656 +msgid "Erase" +msgstr "" + +#: js/activity.js:2683 +#: js/activity.js:2705 +msgid "Paste" +msgstr "Klistra" + +#: js/activity.js:2687 +msgid "Save block help" +msgstr "" + +#: js/activity.js:2772 +msgid "Jumping to the bottom of the page." +msgstr "" + +#: js/activity.js:2778 +msgid "Scrolling up." +msgstr "" + +#: js/activity.js:2783 +msgid "Scrolling down." +msgstr "" + +#: js/activity.js:2788 +msgid "Extracting block" +msgstr "" + +#: js/activity.js:2796 +msgid "Moving block up." +msgstr "" + +#: js/activity.js:2817 +msgid "Moving block down." +msgstr "" + +#: js/activity.js:2838 +msgid "Moving block left." +msgstr "" + +#: js/activity.js:2855 +msgid "Moving block right." +msgstr "" + +#: js/activity.js:2870 +msgid "Jump to home position." +msgstr "" + +#: js/activity.js:2897 +msgid "Hide blocks" +msgstr "" + +#: js/activity.js:4500 +msgid "Click the run button to run the project." +msgstr "" + +#: js/activity.js:5692 +msgid "Show/hide block" msgstr "" -#: js/turtledefs.js:130 -#: js/turtledefs.js:232 -msgid "widgets" +#: js/activity.js:5698 +msgid "Expand/collapse blocks" msgstr "" -#: js/turtledefs.js:131 -#: js/turtledefs.js:233 -#: js/phrasemaker.js:824 -msgid "graphics" +#: js/activity.js:5976 +msgid "Could not parse JSON input." msgstr "" -#: js/turtledefs.js:134 -#: js/turtledefs.js:236 -msgid "boolean" +#: js/activity.js:6475 +#: js/activity.js:6580 +#: js/activity.js:6631 +msgid "Cannot load project from the file. Please check the file type." msgstr "" -#: js/turtledefs.js:137 -#: js/turtledefs.js:239 -#: js/HeapBlocks.js:59 -#: js/status.js:147 -msgid "heap" +#: js/activity.js:6917 +msgid "Invalid parameters" msgstr "" -#: js/turtledefs.js:138 -#: js/turtledefs.js:240 -#: js/ProgramBlocks.js:495 -#: js/DictBlocks.js:142 -msgid "dictionary" +#: js/blocks.js:1212 +#: js/blocks.js:3444 +#: js/blocks.js:3834 +#: js/blocks.js:3865 +#: js/blocks.js:3914 +#: js/blocks.js:3949 +#: js/blocks.js:6586 +#: js/palette.js:509 +#: js/palette.js:638 +#: js/palette.js:1105 +#: js/blocks/BoxesBlocks.js:282 +#: js/blocks/BoxesBlocks.js:285 +#: js/blocks/BoxesBlocks.js:405 +#: js/blocks/BoxesBlocks.js:594 +msgid "box" +msgstr "låda" + +#: js/blocks.js:1713 +msgid "Consider breaking this stack into parts." msgstr "" -#: js/turtledefs.js:139 -#: js/turtledefs.js:241 -msgid "ensemble" +#: js/blocks.js:2472 +#: js/palette.js:653 +#: js/blocks/MediaBlocks.js:602 +msgid "open file" msgstr "" -#: js/turtledefs.js:140 -#: js/turtledefs.js:242 -msgid "extras" +#: js/blocks.js:3247 +#: js/palette.js:574 +#: js/blocks/MediaBlocks.js:892 +#: js/blocks/MediaBlocks.js:963 +msgid "text" +msgstr "text" + +#: js/blocks.js:3443 +#: js/palette.js:641 +#: js/palette.js:642 +#: js/blocks/BoxesBlocks.js:514 +msgid "store in box" msgstr "" -#: js/turtledefs.js:142 -#: js/turtledefs.js:244 -#.TRANS: program as in computer program -#.TRANS: program as in computer program -msgid "program" +#: js/blocks.js:3448 +#: js/blocks.js:3888 +#: js/blocks.js:3923 +#: js/blocks.js:3958 +#: js/blocks.js:5862 +#: js/blocks.js:5883 +#: js/blocks/BoxesBlocks.js:772 +msgid "box1" msgstr "" -#: js/turtledefs.js:143 -#: js/turtledefs.js:245 -msgid "my blocks" +#: js/blocks.js:3450 +#: js/blocks.js:3890 +#: js/blocks.js:3925 +#: js/blocks.js:3960 +#: js/blocks.js:5864 +#: js/blocks.js:5885 +#: js/blocks/BoxesBlocks.js:663 +msgid "box2" msgstr "" -#: js/turtledefs.js:185 -#: js/turtledefs.js:281 -msgid "artwork" +#: js/blocks.js:4122 +#: js/palette.js:639 +#: js/palette.js:644 +#: js/palette.js:1041 +#: js/blocks/BoxesBlocks.js:591 +msgid "store in" +msgstr "spara i" + +#: js/blocks.js:4122 +#: js/blocks/BoxesBlocks.js:595 +#: js/blocks/DictBlocks.js:215 +#: js/blocks/DictBlocks.js:289 +#: js/blocks/EnsembleBlocks.js:391 +#: js/blocks/EnsembleBlocks.js:402 +#: js/blocks/MediaBlocks.js:746 +#: js/blocks/PitchBlocks.js:656 +#: js/blocks/PitchBlocks.js:934 +#: js/blocks/PitchBlocks.js:1866 +#: js/blocks/ProgramBlocks.js:390 +#: js/blocks/ProgramBlocks.js:495 +#: js/blocks/ProgramBlocks.js:658 +#: js/blocks/ToneBlocks.js:1025 +msgid "name" msgstr "" -#: js/turtledefs.js:185 -#: js/turtledefs.js:281 -msgid "logic" +#: js/blocks.js:4122 +#: js/blocks/BoxesBlocks.js:75 +#: js/blocks/BoxesBlocks.js:595 +#: js/blocks/DictBlocks.js:289 +#: js/blocks/DictBlocks.js:430 +#: js/blocks/HeapBlocks.js:544 +#: js/blocks/RhythmBlocks.js:1130 +msgid "value" msgstr "" -#: js/turtledefs.js:185 -#: js/turtledefs.js:281 -msgid "music" +#: js/blocks.js:4465 +msgid "Forever loop detected inside a note value block. Unexpected things may happen." msgstr "" -#: js/turtledefs.js:187 -#: js/turtledefs.js:463 -msgid "Music Blocks is a collection of tools for exploring fundamental musical concepts in a fun way." +#: js/blocks.js:4988 +msgid "There is no block selected." msgstr "" -#: js/turtledefs.js:436 -msgid "Welcome to Turtle Blocks" +#: js/blocks.js:5091 +#: js/blocks/MediaBlocks.js:888 +msgid "show" +msgstr "visa" + +#: js/blocks.js:5094 +#: js/blocks/MediaBlocks.js:803 +#.TRANS: Avatar is the image used to determine the appearance of the mouse. +msgid "avatar" msgstr "" -#: js/turtledefs.js:438 -#: js/turtledefs.js:465 -#: js/turtledefs.js:774 -#: js/turtledefs.js:805 -msgid "The current version is" +#: js/blocks.js:5097 +#: js/blocks/ToneBlocks.js:1010 +#: js/widgets/sampler.js:975 +#.TRANS: The sound sample that the user uploads. +msgid "sample" msgstr "" -#: js/turtledefs.js:446 -#: js/turtledefs.js:483 -msgid "Click the run button to run the project in fast mode." +#: js/lilypond.js:606 +msgid "brown rat" msgstr "" -#: js/turtledefs.js:452 -msgid "Stop the turtle." +#: js/lilypond.js:607 +msgid "mole" msgstr "" -#: js/turtledefs.js:454 -#: js/turtledefs.js:491 -msgid "You can also type Alt-S to stop." +#: js/lilypond.js:608 +msgid "chipmunk" msgstr "" -#: js/turtledefs.js:462 -#: js/help.js:333 -msgid "Welcome to Music Blocks" +#: js/lilypond.js:609 +msgid "red squirrel" msgstr "" -#: js/turtledefs.js:472 -#: js/help.js:334 -msgid "Meet Mr. Mouse!" +#: js/lilypond.js:610 +msgid "guinea pig" msgstr "" -#: js/turtledefs.js:473 -msgid "Mr Mouse is our Music Blocks conductor." +#: js/lilypond.js:611 +msgid "capybara" msgstr "" -#: js/turtledefs.js:475 -msgid "Mr Mouse encourages you to explore Music Blocks." +#: js/lilypond.js:612 +msgid "coypu" msgstr "" -#: js/turtledefs.js:477 -msgid "Let us start our tour!" +#: js/lilypond.js:613 +msgid "black rat" msgstr "" -#: js/turtledefs.js:489 -msgid "Stop the music (and the mice)." +#: js/lilypond.js:614 +msgid "grey squirrel" msgstr "" -#: js/turtledefs.js:499 -msgid "Record your project as video." +#: js/lilypond.js:615 +msgid "flying squirrel" msgstr "" -#: js/turtledefs.js:505 -msgid "Toggle Fullscreen mode." +#: js/lilypond.js:616 +msgid "bat" msgstr "" -#: js/turtledefs.js:511 -msgid "Initialize a new project." +#: js/lilypond.js:749 +#: js/lilypond.js:913 +#: js/lilypond.js:951 +#: js/blocks/ActionBlocks.js:1256 +#: js/blocks/ExtrasBlocks.js:556 +msgid "start drum" msgstr "" -#: js/turtledefs.js:517 -msgid "You can also load projects from the file system." +#: js/logo.js:61 +msgid "Not a valid pitch name" msgstr "" -#: js/turtledefs.js:522 -#: js/StringHelper.js:46 -msgid "Delete" +#: js/logo.js:507 +#: js/blocks/ProgramBlocks.js:258 +#: js/blocks/ProgramBlocks.js:427 +msgid "You must select a file." msgstr "" -#: js/turtledefs.js:523 -msgid "To delete a block, just right-click on it, then you will be able to see the delete option" +#: js/logo.js:1696 +msgid "Playback is ready." msgstr "" -#: js/turtledefs.js:528 -#: js/activity.js:2270 -#: js/LocalCard.js:31 -msgid "Copy" -msgstr "Kopiera" +#: js/macros.js:711 +#: js/utils/musicutils.js:1162 +#: js/utils/synthutils.js:202 +#.TRANS: animal sound effect +msgid "duck" +msgstr "" -#: js/turtledefs.js:529 -msgid "To copy a block, just right-click on it, then you will be able to see the copy option" +#: js/notation.js:353 +msgid "Lilypond cannot process pickup of " msgstr "" -#: js/turtledefs.js:535 -msgid "To extract a block, just right-click on it, then you will be able to see the extract option" +#: js/palette.js:571 +msgid "grid" +msgstr "Rutnät" + +#: js/palette.js:580 +msgid "effect" msgstr "" -#: js/turtledefs.js:542 -#: js/turtledefs.js:552 -#: js/turtledefs.js:573 -msgid "Save your project to a file." +#: js/palette.js:586 +msgid "sargam" msgstr "" -#: js/turtledefs.js:549 -#: js/turtledefs.js:570 -msgid "save" +#: js/palette.js:601 +#: js/blocks/PitchBlocks.js:1209 +msgid "custom pitch" msgstr "" -#: js/turtledefs.js:556 -#: js/turtledefs.js:577 -msgid "Save graphics from your project to as SVG." +#: js/palette.js:609 +msgid "accidental" msgstr "" -#: js/turtledefs.js:560 -#: js/turtledefs.js:581 -msgid "Save graphics from your project as PNG." +#: js/palette.js:633 +#: js/blocks/PitchBlocks.js:405 +msgid "pitch converter" msgstr "" -#: js/turtledefs.js:564 -#: js/turtledefs.js:597 -msgid "Save block artwork as an SVG file." +#: js/piemenus.js:200 +#: js/utils/musicutils.js:1187 +#: js/utils/musicutils.js:1207 +#: js/widgets/musickeyboard.js:2341 +#: js/widgets/phrasemaker.js:1908 +#: js/widgets/sampler.js:810 +#.TRANS: double sharp is a music term related to pitch +msgid "double sharp" msgstr "" -#: js/turtledefs.js:585 -msgid "Save audio from your project as WAV." +#: js/piemenus.js:201 +#: js/utils/musicutils.js:1185 +#: js/utils/musicutils.js:1208 +#: js/blocks/PitchBlocks.js:1539 +#: js/turtleactions/PitchActions.js:323 +#: js/widgets/musickeyboard.js:2342 +#: js/widgets/phrasemaker.js:1909 +#: js/widgets/sampler.js:811 +#.TRANS: sharp is a music term related to pitch +#.TRANS: sharp is a half-step up in pitch +msgid "sharp" msgstr "" -#: js/turtledefs.js:589 -msgid "Save your project to as an ABC file." +#: js/piemenus.js:202 +#: js/utils/musicutils.js:1183 +#: js/utils/musicutils.js:1209 +#: js/widgets/musickeyboard.js:2343 +#: js/widgets/phrasemaker.js:1910 +#: js/widgets/sampler.js:812 +#.TRANS: natural is a music term related to pitch +msgid "natural" msgstr "" -#: js/turtledefs.js:593 -msgid "Save your project to as a Lilypond file." +#: js/piemenus.js:203 +#: js/utils/musicutils.js:1181 +#: js/utils/musicutils.js:1210 +#: js/blocks/PitchBlocks.js:1498 +#: js/turtleactions/PitchActions.js:326 +#: js/widgets/musickeyboard.js:2344 +#: js/widgets/phrasemaker.js:1911 +#: js/widgets/sampler.js:813 +#.TRANS: flat is a music term related to pitch +#.TRANS: flat is a half-step down in pitch +msgid "flat" msgstr "" -#: js/turtledefs.js:604 -msgid "Load samples from server" +#: js/piemenus.js:204 +#: js/utils/musicutils.js:1179 +#: js/utils/musicutils.js:1211 +#: js/widgets/musickeyboard.js:2345 +#: js/widgets/phrasemaker.js:1912 +#: js/widgets/sampler.js:814 +#.TRANS: double flat is a music term related to pitch +msgid "double flat" msgstr "" -#: js/turtledefs.js:605 -msgid "This button opens a viewer for loading example projects." +#: js/piemenus.js:2864 +#: js/utils/musicutils.js:1006 +#: js/blocks/PitchBlocks.js:1385 +#.TRANS: unison is a music term related to intervals +#.TRANS: unison means the note is the same as the current note +msgid "unison" msgstr "" -#: js/turtledefs.js:611 -msgid "Palette buttons" +#: js/piemenus.js:3018 +#: js/piemenus.js:3091 +#: js/utils/musicutils.js:1014 +#: js/utils/musicutils.js:1189 +#: js/utils/musicutils.js:1326 +#.TRANS: major is a music term related to intervals and mode +msgid "major" msgstr "" -#: js/turtledefs.js:612 -msgid "This toolbar contains the palette buttons including Rhythm Pitch Tone Action and more." +#: js/piemenus.js:3018 +#: js/piemenus.js:3091 +#: js/utils/musicutils.js:1032 +#.TRANS: modal scale for music +msgid "ionian" msgstr "" -#: js/turtledefs.js:614 -msgid "Click to show the palettes of blocks and drag blocks from the palettes onto the canvas to use them." +#: js/piemenus.js:3020 +#: js/piemenus.js:3095 +#: js/utils/musicutils.js:1012 +#: js/utils/musicutils.js:1190 +#: js/utils/musicutils.js:1323 +#.TRANS: minor is a music term related to intervals and mode +msgid "minor" msgstr "" -#: js/turtledefs.js:620 -msgid "Cartesian/Polar" +#: js/piemenus.js:3020 +#: js/piemenus.js:3095 +#: js/utils/musicutils.js:1042 +#.TRANS: modal scale for music +msgid "aeolian" msgstr "" -#: js/turtledefs.js:621 -msgid "Show or hide a coordinate grid." +#: js/piemenus.js:3410 +msgid "Duplicate" msgstr "" -#: js/turtledefs.js:627 -msgid "Clear the screen and return the mice to their initial positions." +#: js/piemenus.js:3412 +msgid "Move to trash" msgstr "" -#: js/turtledefs.js:633 -msgid "Collapse the graphics window." +#: js/piemenus.js:3413 +#: js/widgets/timbre.js:968 +#: planet/js/StringHelper.js:69 +msgid "Close" msgstr "" -#: js/turtledefs.js:638 -#: js/activity.js:4256 -#: js/activity.js:4256 -msgid "Home" +#: js/piemenus.js:3419 +msgid "Save stack" msgstr "" -#: js/turtledefs.js:639 -msgid "Return all blocks to the center of the screen." +#: js/piemenus.js:3449 +msgid "In order to copy a sample, you must reload the widget, import the sample again, and export it." msgstr "" -#: js/turtledefs.js:644 -msgid "Show/hide blocks" +#: js/piemenus.js:3812 +msgid "You have chosen key " msgstr "" -#: js/turtledefs.js:645 -msgid "Hide or show the blocks and the palettes." +#: js/piemenus.js:3816 +msgid " for your pitch preview." msgstr "" -#: js/turtledefs.js:650 -msgid "Expand/collapse collapsable blocks" +#: js/turtle-singer.js:1363 +#.TRANS: partials are weighted components in a harmonic series +msgid "You must have at least one Partial block inside of a Weighted-partial block" msgstr "" -#: js/turtledefs.js:651 -msgid "Expand or collapse start and action stacks." +#: js/turtle-singer.js:2077 +msgid "synth cannot play chords." msgstr "" -#: js/turtledefs.js:658 -#: js/activity.js:4265 -msgid "Decrease block size" +#: js/utils/musicutils.js:505 +#: js/utils/musicutils.js:645 +#: js/widgets/pitchdrummatrix.js:228 +#: js/widgets/musickeyboard.js:2885 +msgid "rest" msgstr "" -#: js/turtledefs.js:659 -msgid "Decrease the size of the blocks." +#: js/utils/musicutils.js:689 +msgid "Perfect unison" msgstr "" -#: js/turtledefs.js:664 -#: js/activity.js:4267 -msgid "Increase block size" +#: js/utils/musicutils.js:689 +msgid "Diminished second" msgstr "" -#: js/turtledefs.js:665 -msgid "Increase the size of the blocks." +#: js/utils/musicutils.js:690 +msgid "Minor second" msgstr "" -#: js/turtledefs.js:670 -msgid "Expand/collapse option toolbar" +#: js/utils/musicutils.js:690 +msgid "Augmented unison" msgstr "" -#: js/turtledefs.js:671 -msgid "Click this button to expand or collapse the auxillary toolbar." +#: js/utils/musicutils.js:691 +msgid "Major second" msgstr "" -#: js/turtledefs.js:676 -msgid "Run slow" +#: js/utils/musicutils.js:691 +msgid "Diminished third" msgstr "" -#: js/turtledefs.js:677 -msgid "Click to run the project in slow mode." +#: js/utils/musicutils.js:692 +msgid "Minor third" msgstr "" -#: js/turtledefs.js:683 -msgid "Click to run the project step by step." +#: js/utils/musicutils.js:692 +msgid "Augmented second" msgstr "" -#: js/turtledefs.js:690 -msgid "Display statistics about your Music project." +#: js/utils/musicutils.js:693 +msgid "Major third" msgstr "" -#: js/turtledefs.js:697 -msgid "Delete a selected plugin." +#: js/utils/musicutils.js:693 +msgid "Diminished fourth" msgstr "" -#: js/turtledefs.js:704 -msgid "Enable scrolling" +#: js/utils/musicutils.js:694 +msgid "Perfect fourth" msgstr "" -#: js/turtledefs.js:705 -msgid "You can scroll the blocks on the canvas." +#: js/utils/musicutils.js:694 +msgid "Augmented third" msgstr "" -#: js/turtledefs.js:714 -msgid "Wrap Turtle" +#: js/utils/musicutils.js:695 +msgid "Diminished fifth" msgstr "" -#: js/turtledefs.js:715 -msgid "Turn Turtle wrapping On or Off." +#: js/utils/musicutils.js:695 +msgid "Augmented fourth" msgstr "" -#: js/turtledefs.js:725 -msgid "Restore blocks from the trash." +#: js/utils/musicutils.js:696 +msgid "Perfect fifth" msgstr "" -#: js/turtledefs.js:732 -msgid "Switch mode" +#: js/utils/musicutils.js:696 +msgid "Diminished sixth" msgstr "" -#: js/turtledefs.js:733 -msgid "Switch between beginner and advance modes." +#: js/utils/musicutils.js:697 +msgid "Minor sixth" msgstr "" -#: js/turtledefs.js:739 -msgid "Select your language preference." +#: js/utils/musicutils.js:697 +msgid "Augmented fifth" msgstr "" -#: js/turtledefs.js:745 -msgid "Keyboard shortcuts" +#: js/utils/musicutils.js:698 +msgid "Major sixth" msgstr "" -#: js/turtledefs.js:746 -msgid "You can type d to create a do block and r to create a re block etc." +#: js/utils/musicutils.js:698 +msgid "Diminished seventh" msgstr "" -#: js/turtledefs.js:753 -msgid "Show these messages." +#: js/utils/musicutils.js:699 +msgid "Minor seventh" msgstr "" -#: js/turtledefs.js:759 -#: js/turtledefs.js:790 -#: js/help.js:335 -msgid "Guide" +#: js/utils/musicutils.js:699 +msgid "Augmented sixth" msgstr "" -#: js/turtledefs.js:760 -msgid "A detailed guide to Turtle Blocks is available." +#: js/utils/musicutils.js:700 +msgid "Major seventh" msgstr "" -#: js/turtledefs.js:764 -msgid "Turtle Blocks Guide" +#: js/utils/musicutils.js:700 +msgid "Diminished octave" msgstr "" -#: js/turtledefs.js:767 -#: js/turtledefs.js:798 -#: js/help.js:336 -msgid "About" +#: js/utils/musicutils.js:701 +msgid "Perfect octave" msgstr "" -#: js/turtledefs.js:768 -msgid "Turtle Blocks is an open source collection of tools for exploring musical concepts." +#: js/utils/musicutils.js:701 +msgid "Augmented seventh" msgstr "" -#: js/turtledefs.js:770 -msgid "A full list of contributors can be found in the Turtle Blocks GitHub repository." +#: js/utils/musicutils.js:702 +msgid "Minor ninth" msgstr "" -#: js/turtledefs.js:772 -msgid "Turtle Blocks is licensed under the AGPL." +#: js/utils/musicutils.js:702 +msgid "Augmented octave" msgstr "" -#: js/turtledefs.js:780 -msgid "Turtle Blocks GitHub repository" +#: js/utils/musicutils.js:703 +msgid "Major ninth" msgstr "" -#: js/turtledefs.js:783 -#: js/turtledefs.js:814 -#: js/help.js:337 -#: js/help.js:359 -msgid "Congratulations." +#: js/utils/musicutils.js:703 +msgid "Diminished tenth" msgstr "" -#: js/turtledefs.js:784 -msgid "You have finished the tour. Please enjoy Turtle Blocks!" +#: js/utils/musicutils.js:704 +msgid "Minor tenth" msgstr "" -#: js/turtledefs.js:791 -msgid "A detailed guide to Music Blocks is available." +#: js/utils/musicutils.js:704 +msgid "Augmented ninth" msgstr "" -#: js/turtledefs.js:795 -#: js/SaveInterface.js:76 -msgid "Music Blocks Guide" +#: js/utils/musicutils.js:705 +msgid "Major tenth" msgstr "" -#: js/turtledefs.js:799 -msgid "Music Blocks is an open source collection of tools for exploring musical concepts." +#: js/utils/musicutils.js:705 +msgid "Diminished eleventh" msgstr "" -#: js/turtledefs.js:801 -msgid "A full list of contributors can be found in the Music Blocks GitHub repository." +#: js/utils/musicutils.js:706 +msgid "Perfect eleventh" msgstr "" -#: js/turtledefs.js:803 -msgid "Music Blocks is licensed under the AGPL." +#: js/utils/musicutils.js:706 +msgid "Augmented tenth" msgstr "" -#: js/turtledefs.js:811 -msgid "Music Blocks GitHub repository" +#: js/utils/musicutils.js:707 +msgid "Diminished twelfth" msgstr "" -#: js/turtledefs.js:815 -msgid "You have finished the tour. Please enjoy Music Blocks!" +#: js/utils/musicutils.js:707 +msgid "Augmented eleventh" msgstr "" -#: js/activity.js:369 -msgid "Search for blocks" +#: js/utils/musicutils.js:708 +msgid "Perfect twelfth" msgstr "" -#: js/activity.js:1145 -msgid "Refresh your browser to change to advanced mode." +#: js/utils/musicutils.js:708 +msgid "Diminished thirteenth" msgstr "" -#: js/activity.js:1150 -msgid "Refresh your browser to change to beginner mode." +#: js/utils/musicutils.js:709 +msgid "Minor thirteenth" msgstr "" -#: js/activity.js:1184 -msgid "Catching mice" +#: js/utils/musicutils.js:709 +msgid "Augmented fifth, plus an octave" msgstr "" -#: js/activity.js:1185 -msgid "Cleaning the instruments" +#: js/utils/musicutils.js:710 +msgid "Major thirteenth" msgstr "" -#: js/activity.js:1186 -msgid "Testing key pieces" +#: js/utils/musicutils.js:710 +msgid "Diminished seventh, plus an octave" msgstr "" -#: js/activity.js:1187 -msgid "Sight-reading" +#: js/utils/musicutils.js:838 +#.TRANS: ordinal number. Please keep exactly one space between each number. +msgid "1st 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th" msgstr "" -#: js/activity.js:1188 -msgid "Combining math and music" +#: js/utils/musicutils.js:1008 +#: js/utils/musicutils.js:1191 +#: js/utils/musicutils.js:1325 +#.TRANS: augmented is a music term related to intervals +msgid "augmented" msgstr "" -#: js/activity.js:1189 -msgid "Generating more blocks" +#: js/utils/musicutils.js:1010 +#: js/utils/musicutils.js:1192 +#: js/utils/musicutils.js:1324 +#.TRANS: diminished is a music term related to intervals and mode +msgid "diminished" msgstr "" -#: js/activity.js:1190 -msgid "Do Re Mi Fa Sol La Ti Do" +#: js/utils/musicutils.js:1016 +#: js/utils/musicutils.js:1322 +#: js/blocks/IntervalsBlocks.js:649 +#: js/turtleactions/IntervalsActions.js:120 +#: js/turtleactions/IntervalsActions.js:124 +#.TRANS: perfect is a music term related to intervals +msgid "perfect" msgstr "" -#: js/activity.js:1191 -msgid "Tuning string instruments" +#: js/utils/musicutils.js:1018 +#.TRANS: twelve semi-tone scale for music +msgid "chromatic" msgstr "" -#: js/activity.js:1192 -msgid "Pressing random keys" +#: js/utils/musicutils.js:1019 +msgid "algerian" msgstr "" -#: js/activity.js:1351 -msgid "plugins will be removed upon restart." +#: js/utils/musicutils.js:1020 +msgid "spanish" msgstr "" -#: js/activity.js:1360 -msgid "show Cartesian" +#: js/utils/musicutils.js:1022 +#.TRANS: modal scale in music +msgid "octatonic" msgstr "" -#: js/activity.js:1842 -msgid "output tools" +#: js/utils/musicutils.js:1024 +#.TRANS: harmonic major scale in music +msgid "harmonic major" msgstr "" -#: js/activity.js:1845 -msgid "custom note" +#: js/utils/musicutils.js:1026 +#.TRANS: natural minor scales in music +msgid "natural minor" msgstr "" -#: js/activity.js:1848 -msgid "accidental name" +#: js/utils/musicutils.js:1028 +#.TRANS: harmonic minor scale in music +msgid "harmonic minor" msgstr "" -#: js/activity.js:1851 -#: js/PitchBlocks.js:855 -msgid "east indian solfege" +#: js/utils/musicutils.js:1030 +#.TRANS: melodic minor scale in music +msgid "melodic minor" msgstr "" -#: js/activity.js:1854 -#: js/PitchBlocks.js:869 -msgid "note name" +#: js/utils/musicutils.js:1034 +#.TRANS: modal scale for music +msgid "dorian" msgstr "" -#: js/activity.js:1857 -#: js/IntervalsBlocks.js:94 -msgid "temperament name" +#: js/utils/musicutils.js:1036 +#.TRANS: modal scale for music +msgid "phrygian" msgstr "" -#: js/activity.js:1863 -msgid "chord name" +#: js/utils/musicutils.js:1038 +#.TRANS: modal scale for music +msgid "lydian" msgstr "" -#: js/activity.js:1869 -msgid "filter type" +#: js/utils/musicutils.js:1040 +#.TRANS: modal scale for music +msgid "mixolydian" msgstr "" -#: js/activity.js:1872 -msgid "oscillator type" +#: js/utils/musicutils.js:1044 +#.TRANS: modal scale for music +msgid "locrian" msgstr "" -#: js/activity.js:1878 -#: js/DrumBlocks.js:32 -msgid "noise name" +#: js/utils/musicutils.js:1046 +#.TRANS: minor jazz scale for music +msgid "jazz minor" msgstr "" -#: js/activity.js:1881 -#: js/DrumBlocks.js:75 -msgid "drum name" +#: js/utils/musicutils.js:1048 +#.TRANS: bebop scale for music +msgid "bebop" msgstr "" -#: js/activity.js:1884 -#: js/DrumBlocks.js:119 -msgid "effects name" +#: js/utils/musicutils.js:1049 +msgid "arabic" msgstr "" -#: js/activity.js:1887 -msgid "wrap mode" +#: js/utils/musicutils.js:1050 +msgid "byzantine" msgstr "" -#: js/activity.js:1890 -msgid "load file" +#: js/utils/musicutils.js:1052 +#.TRANS: musical scale for music by Verdi +msgid "enigmatic" msgstr "" -#: js/activity.js:2056 -msgid "This block is deprecated." +#: js/utils/musicutils.js:1053 +msgid "ethiopian" msgstr "" -#: js/activity.js:2058 -msgid "Block cannot be found." +#: js/utils/musicutils.js:1055 +#.TRANS: Ethiopic scale for music +msgid "geez" msgstr "" -#: js/activity.js:2266 -msgid "Saving block artwork" +#: js/utils/musicutils.js:1056 +msgid "hindu" msgstr "" -#: js/activity.js:2277 -msgid "Erase" +#: js/utils/musicutils.js:1057 +msgid "hungarian" msgstr "" -#: js/activity.js:2301 -#: js/activity.js:2323 -msgid "Paste" -msgstr "Klistra" +#: js/utils/musicutils.js:1059 +#.TRANS: minor Romanian scale for music +msgid "romanian minor" +msgstr "" -#: js/activity.js:2305 -msgid "Save block help" +#: js/utils/musicutils.js:1060 +msgid "spanish gypsy" msgstr "" -#: js/activity.js:2390 -msgid "Jumping to the bottom of the page." +#: js/utils/musicutils.js:1062 +#.TRANS: musical scale for Mid-Eastern music +msgid "maqam" msgstr "" -#: js/activity.js:2396 -msgid "Scrolling up." +#: js/utils/musicutils.js:1064 +#.TRANS: minor blues scale for music +msgid "minor blues" msgstr "" -#: js/activity.js:2401 -msgid "Scrolling down." +#: js/utils/musicutils.js:1066 +#.TRANS: major blues scale for music +msgid "major blues" msgstr "" -#: js/activity.js:2406 -msgid "Extracting block" +#: js/utils/musicutils.js:1067 +msgid "whole tone" msgstr "" -#: js/activity.js:2414 -msgid "Moving block up." +#: js/utils/musicutils.js:1069 +#.TRANS: pentatonic is a general term that means "five note scale". This scale is typically known as "minor pentatonic" +msgid "minor pentatonic" msgstr "" -#: js/activity.js:2435 -msgid "Moving block down." +#: js/utils/musicutils.js:1071 +#.TRANS: pentatonic is a general term that means "five note scale". This scale is typically known as "major pentatonic" +msgid "major pentatonic" msgstr "" -#: js/activity.js:2456 -msgid "Moving block left." +#: js/utils/musicutils.js:1072 +msgid "chinese" msgstr "" -#: js/activity.js:2473 -msgid "Moving block right." +#: js/utils/musicutils.js:1073 +msgid "egyptian" msgstr "" -#: js/activity.js:2488 -msgid "Jump to home position." +#: js/utils/musicutils.js:1075 +#.TRANS: https://en.wikipedia.org/wiki/Hirajoshi_scale NOTE: There are three different versions of this scale +msgid "hirajoshi" msgstr "" -#: js/activity.js:2515 -msgid "Hide blocks" +#: js/utils/musicutils.js:1076 +msgid "Japan" msgstr "" -#: js/activity.js:3389 -msgid "Click the run button to run the project." +#: js/utils/musicutils.js:1078 +#.TRANS: https://en.wikipedia.org/wiki/In_scale and https://en.wikipedia.org/wiki/Sakura_Sakura +msgid "in" msgstr "" -#: js/activity.js:3456 -#: js/SaveInterface.js:131 -#: js/SaveInterface.js:204 -#: js/SaveInterface.js:262 -#: js/SaveInterface.js:389 -#: js/SaveInterface.js:417 -#: js/ProjectStorage.js:27 -#: js/GlobalPlanet.js:467 -#: js/GlobalPlanet.js:469 -#: js/GlobalPlanet.js:495 -#.TRANS: default project title when saving as Lilypond -msgid "My Project" +#: js/utils/musicutils.js:1080 +#.TRANS: https://en.wikipedia.org/wiki/Miny%C5%8D_scale +msgid "minyo" msgstr "" -#: js/activity.js:4261 -msgid "Show/hide block" +#: js/utils/musicutils.js:1082 +#.TRANS: Italian mathematician +msgid "fibonacci" msgstr "" -#: js/activity.js:4263 -msgid "Expand/collapse blocks" +#: js/utils/musicutils.js:1083 +#: js/utils/musicutils.js:1134 +#: js/utils/musicutils.js:1177 +#: js/utils/musicutils.js:1199 +#: js/utils/synthutils.js:134 +#: js/blocks/IntervalsBlocks.js:1124 +#: js/blocks/ToneBlocks.js:946 +#: js/blocks/VolumeBlocks.js:411 +#: js/blocks/WidgetBlocks.js:399 +#: js/blocks/WidgetBlocks.js:404 +#: js/turtleactions/VolumeActions.js:218 +#: js/widgets/modewidget.js:919 +#.TRANS: customize voice +msgid "custom" msgstr "" -#: js/activity.js:4381 -msgid "Could not parse JSON input." +#: js/utils/musicutils.js:1085 +#: js/utils/musicutils.js:1531 +#: js/blocks/WidgetBlocks.js:176 +#.TRANS: highpass filter +msgid "highpass" msgstr "" -#: js/activity.js:4684 -#: js/activity.js:4771 -#: js/activity.js:4821 -msgid "Cannot load project from the file. Please check the file type." +#: js/utils/musicutils.js:1087 +#: js/utils/musicutils.js:1532 +#.TRANS: lowpass filter +msgid "lowpass" msgstr "" -#: js/activity.js:5051 -msgid "Invalid parameters" +#: js/utils/musicutils.js:1089 +#: js/utils/musicutils.js:1533 +#.TRANS: bandpass filter +msgid "bandpass" msgstr "" -#: js/turtle-singer.js:1334 -#.TRANS: partials are weighted components in a harmonic series -msgid "You must have at least one Partial block inside of a Weighted-partial block" +#: js/utils/musicutils.js:1091 +#: js/utils/musicutils.js:1534 +#.TRANS: high-shelf filter +msgid "highshelf" msgstr "" -#: js/turtle-singer.js:2048 -msgid "synth cannot play chords." +#: js/utils/musicutils.js:1093 +#: js/utils/musicutils.js:1535 +#.TRANS: low-shelf filter +msgid "lowshelf" msgstr "" -#: js/lilypond.js:614 -msgid "brown rat" +#: js/utils/musicutils.js:1095 +#: js/utils/musicutils.js:1536 +#.TRANS: notch-shelf filter +msgid "notch" msgstr "" -#: js/lilypond.js:615 -msgid "mole" +#: js/utils/musicutils.js:1097 +#: js/utils/musicutils.js:1537 +#.TRANS: all-pass filter +msgid "allpass" msgstr "" -#: js/lilypond.js:616 -msgid "chipmunk" +#: js/utils/musicutils.js:1099 +#: js/utils/musicutils.js:1538 +#.TRANS: peaking filter +msgid "peaking" msgstr "" -#: js/lilypond.js:617 -msgid "red squirrel" +#: js/utils/musicutils.js:1100 +#: js/utils/musicutils.js:1546 +#: js/utils/synthutils.js:126 +#: js/blocks/PitchBlocks.js:85 +#.TRANS: sine wave +msgid "sine" msgstr "" -#: js/lilypond.js:618 -msgid "guinea pig" +#: js/utils/musicutils.js:1101 +#: js/utils/musicutils.js:1547 +#: js/utils/synthutils.js:128 +#: js/blocks/PitchBlocks.js:39 +#.TRANS: square wave +msgid "square" msgstr "" -#: js/lilypond.js:619 -msgid "capybara" +#: js/utils/musicutils.js:1102 +#: js/utils/musicutils.js:1548 +#: js/utils/synthutils.js:132 +#: js/blocks/PitchBlocks.js:62 +#: js/blocks/ToneBlocks.js:39 +#.TRANS: triangle wave +msgid "triangle" msgstr "" -#: js/lilypond.js:620 -msgid "coypu" +#: js/utils/musicutils.js:1103 +#: js/utils/musicutils.js:1549 +#: js/utils/synthutils.js:130 +#: js/blocks/PitchBlocks.js:108 +#.TRANS: sawtooth wave +msgid "sawtooth" msgstr "" -#: js/lilypond.js:621 -msgid "black rat" +#: js/utils/musicutils.js:1105 +#: js/utils/musicutils.js:1312 +#: js/blocks/PitchBlocks.js:931 +#: js/blocks/PitchBlocks.js:937 +#: js/turtleactions/PitchActions.js:469 +#.TRANS: even numbers +#.TRANS: invert based on even or odd number or musical scale +msgid "even" msgstr "" -#: js/lilypond.js:622 -msgid "grey squirrel" +#: js/utils/musicutils.js:1107 +#: js/utils/musicutils.js:1313 +#: js/blocks/PitchBlocks.js:937 +#: js/turtleactions/PitchActions.js:471 +#.TRANS: odd numbers +msgid "odd" msgstr "" -#: js/lilypond.js:623 -msgid "flying squirrel" +#: js/utils/musicutils.js:1108 +#: js/utils/musicutils.js:1314 +#: js/blocks/PitchBlocks.js:937 +#: js/turtleactions/PitchActions.js:473 +msgid "scalar" msgstr "" -#: js/lilypond.js:624 -msgid "bat" +#: js/utils/musicutils.js:1109 +#: js/utils/synthutils.js:72 +#: js/blocks/VolumeBlocks.js:47 +#.TRANS: musical instrument +msgid "piano" msgstr "" -#: js/lilypond.js:757 -#: js/lilypond.js:921 -#: js/lilypond.js:959 -#: js/ActionBlocks.js:1256 -#: js/ExtrasBlocks.js:553 -msgid "start drum" +#: js/utils/musicutils.js:1110 +#: js/utils/synthutils.js:74 +#.TRANS: musical instrument +msgid "violin" msgstr "" -#: js/SaveInterface.js:59 -#: js/SaveInterface.js:61 -#: js/SaveInterface.js:93 -msgid "Music Blocks Project" +#: js/utils/musicutils.js:1111 +#: js/utils/synthutils.js:76 +#.TRANS: viola musical instrument +msgid "viola" msgstr "" -#: js/SaveInterface.js:63 -msgid "This project was created in Music Blocks" +#: js/utils/musicutils.js:1112 +#: js/utils/synthutils.js:114 +#.TRANS: xylophone musical instrument +msgid "xylophone" msgstr "" -#: js/SaveInterface.js:67 -msgid "Music Blocks is a Free/Libre Software application." +#: js/utils/musicutils.js:1113 +#: js/utils/synthutils.js:136 +#.TRANS: vibraphone musical instrument +msgid "vibraphone" msgstr "" -#: js/SaveInterface.js:69 -msgid "The source code can be accessed at" +#: js/utils/musicutils.js:1114 +#: js/utils/synthutils.js:78 +#.TRANS: musical instrument +msgid "cello" msgstr "" -#: js/SaveInterface.js:72 -msgid "For more information, please consult the" +#: js/utils/musicutils.js:1116 +#: js/utils/synthutils.js:82 +#.TRANS: viola musical instrument +msgid "double bass" msgstr "" -#: js/SaveInterface.js:83 -msgid "Alternatively, open the file in Music Blocks using the Load project button." +#: js/utils/musicutils.js:1117 +#: js/utils/synthutils.js:84 +#: js/widgets/rhythmruler.js:2511 +#.TRANS: musical instrument +msgid "guitar" msgstr "" -#: js/SaveInterface.js:85 -msgid "Project Code" +#: js/utils/musicutils.js:1118 +#: js/utils/synthutils.js:86 +#.TRANS: musical instrument +msgid "acoustic guitar" msgstr "" -#: js/SaveInterface.js:87 -msgid "This code stores data about the blocks in a project." +#: js/utils/musicutils.js:1119 +#: js/utils/synthutils.js:88 +#.TRANS: musical instrument +msgid "flute" msgstr "" -#: js/SaveInterface.js:89 -msgid "Show" +#: js/utils/musicutils.js:1120 +#: js/utils/synthutils.js:90 +#.TRANS: musical instrument +msgid "clarinet" msgstr "" -#: js/SaveInterface.js:91 -msgid "Hide" +#: js/utils/musicutils.js:1121 +#: js/utils/synthutils.js:92 +#.TRANS: musical instrument +msgid "saxophone" msgstr "" -#: js/SaveInterface.js:197 -#: js/SaveInterface.js:58 -msgid "No description provided" +#: js/utils/musicutils.js:1122 +#: js/utils/synthutils.js:94 +#.TRANS: musical instrument +msgid "tuba" msgstr "" -#: js/SaveInterface.js:332 -msgid "Your recording is in progress." +#: js/utils/musicutils.js:1123 +#: js/utils/synthutils.js:96 +#.TRANS: musical instrument +msgid "trumpet" msgstr "" -#: js/SaveInterface.js:401 -#.TRANS: File name prompt for save as Lilypond -msgid "File name" +#: js/utils/musicutils.js:1124 +#: js/utils/synthutils.js:98 +#.TRANS: musical instrument +msgid "oboe" msgstr "" -#: js/SaveInterface.js:403 -#: js/StringHelper.js:39 -#.TRANS: Project title prompt for save as Lilypond -msgid "Project title" +#: js/utils/musicutils.js:1125 +#: js/utils/synthutils.js:100 +#.TRANS: musical instrument +msgid "trombone" msgstr "" -#: js/SaveInterface.js:405 -#.TRANS: Project title prompt for save as Lilypond -msgid "Project author" +#: js/utils/musicutils.js:1126 +#: js/utils/synthutils.js:116 +#.TRANS: polytone synthesizer +msgid "electronic synth" msgstr "" -#: js/SaveInterface.js:407 -#.TRANS: MIDI prompt for save as Lilypond -msgid "Include MIDI output?" +#: js/utils/musicutils.js:1127 +#: js/utils/synthutils.js:118 +#.TRANS: simple monotone synthesizer +msgid "simple 1" msgstr "" -#: js/SaveInterface.js:409 -#.TRANS: Guitar prompt for save as Lilypond -msgid "Include guitar tablature output?" +#: js/utils/musicutils.js:1128 +msgid "simple 2" msgstr "" -#: js/SaveInterface.js:411 -#.TRANS: Lilypond is a scripting language for generating sheet music -msgid "Save as Lilypond" +#: js/utils/musicutils.js:1129 +msgid "simple 3" msgstr "" -#: js/SaveInterface.js:426 -#: js/EnsembleBlocks.js:75 -#: js/EnsembleBlocks.js:154 -#: js/EnsembleBlocks.js:216 -#: js/EnsembleBlocks.js:302 -#: js/EnsembleBlocks.js:348 -#: js/EnsembleBlocks.js:389 -#: js/EnsembleBlocks.js:441 -#: js/EnsembleBlocks.js:490 -#: js/EnsembleBlocks.js:536 -#: js/EnsembleBlocks.js:583 -#: js/EnsembleBlocks.js:637 -#: js/EnsembleBlocks.js:753 -#: js/EnsembleBlocks.js:840 -#: js/EnsembleBlocks.js:899 -#: js/EnsembleBlocks.js:942 -#: js/EnsembleBlocks.js:1212 -#: js/EnsembleBlocks.js:1280 -#.TRANS: default project author when saving as Lilypond -msgid "Mr. Mouse" +#: js/utils/musicutils.js:1130 +msgid "simple 4" msgstr "" -#: js/SaveInterface.js:573 -msgid "The Lilypond code is copied to clipboard. You can paste it here: " +#: js/utils/musicutils.js:1131 +#: js/utils/synthutils.js:58 +#: js/blocks/DrumBlocks.js:191 +#.TRANS: white noise synthesizer +msgid "white noise" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:50 -#: js/RhythmBlockPaletteBlocks.js:232 -#.TRANS: rhythm block -#.TRANS: translate "rhythm1" as rhythm -msgid "rhythm1" +#: js/utils/musicutils.js:1132 +#: js/utils/synthutils.js:60 +#.TRANS: brown noise synthesizer +msgid "brown noise" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:70 -#: js/RhythmBlockPaletteBlocks.js:251 -#: js/RhythmBlockPaletteBlocks.js:484 -#: js/RhythmBlockPaletteBlocks.js:553 -#: js/RhythmBlockPaletteBlocks.js:874 -msgid "number of notes" +#: js/utils/musicutils.js:1133 +#: js/utils/synthutils.js:62 +#.TRANS: pink noise synthesizer +msgid "pink noise" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:126 -msgid "polyphonic rhythm" +#: js/utils/musicutils.js:1135 +#: js/utils/synthutils.js:148 +#: js/widgets/rhythmruler.js:2057 +#: js/widgets/rhythmruler.js:2319 +#.TRANS: musical instrument +msgid "snare drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:218 -msgid "The Rhythm block is used to generate rhythm patterns." +#: js/utils/musicutils.js:1136 +#: js/utils/synthutils.js:150 +#.TRANS: musical instrument +msgid "kick drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:279 -msgid "1/64 note" +#: js/utils/musicutils.js:1137 +#: js/utils/synthutils.js:152 +#.TRANS: musical instrument +msgid "tom tom" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:303 -msgid "1/32 note" +#: js/utils/musicutils.js:1138 +#: js/utils/synthutils.js:154 +#.TRANS: musical instrument +msgid "floor tom" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:331 -msgid "1/16 note" +#: js/utils/musicutils.js:1139 +#: js/utils/synthutils.js:156 +#.TRANS: musical instrument +msgid "bass drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:359 -msgid "eighth note" +#: js/utils/musicutils.js:1140 +#: js/utils/synthutils.js:158 +#.TRANS: a drum made from an inverted cup +msgid "cup drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:387 -msgid "quarter note" +#: js/utils/musicutils.js:1141 +#: js/utils/synthutils.js:160 +#.TRANS: musical instrument +msgid "darbuka drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:415 -msgid "half note" +#: js/utils/musicutils.js:1142 +#: js/utils/synthutils.js:164 +#.TRANS: musical instrument +msgid "hi hat" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:443 -msgid "whole note" +#: js/utils/musicutils.js:1143 +#: js/utils/synthutils.js:166 +#.TRANS: a small metal bell +msgid "ride bell" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:481 -#: js/RhythmBlockPaletteBlocks.js:550 -#: js/RhythmBlockPaletteBlocks.js:601 -#.TRANS: A tuplet is a note value divided into irregular time values. -msgid "tuplet" +#: js/utils/musicutils.js:1144 +#: js/utils/synthutils.js:168 +#.TRANS: musical instrument +msgid "cow bell" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:767 -msgid "septuplet" +#: js/utils/musicutils.js:1145 +msgid "japanese drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:795 -msgid "quintuplet" +#: js/utils/musicutils.js:1146 +#: js/utils/synthutils.js:174 +#.TRANS: musical instrument +msgid "japanese bell" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:823 -msgid "triplet" +#: js/utils/musicutils.js:1147 +#: js/utils/synthutils.js:170 +#.TRANS: musical instrument +msgid "triangle bell" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:850 -msgid "simple tuplet" +#: js/utils/musicutils.js:1148 +#: js/utils/synthutils.js:172 +#.TRANS: musical instrument +msgid "finger cymbals" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:860 -msgid "Tuplets are a collection of notes that get scaled to a specific duration." +#: js/utils/musicutils.js:1149 +#: js/utils/synthutils.js:176 +#.TRANS: a musically tuned set of bells +msgid "chime" msgstr "" -#: js/WidgetBlocks.js:71 -#.TRANS: sound envelope (ADSR) -msgid "envelope" +#: js/utils/musicutils.js:1150 +#: js/utils/synthutils.js:178 +#.TRANS: a musical instrument +msgid "gong" msgstr "" -#: js/WidgetBlocks.js:79 -#.TRANS: Attack time is the time taken for initial run-up of level from nil to peak, beginning when the key is first pressed. -msgid "attack" +#: js/utils/musicutils.js:1151 +#: js/utils/synthutils.js:180 +#.TRANS: sound effect +msgid "clang" msgstr "" -#: js/WidgetBlocks.js:81 -#.TRANS: Decay time is the time taken for the subsequent run down from the attack level to the designated sustain level. -msgid "decay" +#: js/utils/musicutils.js:1152 +#: js/utils/synthutils.js:182 +#.TRANS: sound effect +msgid "crash" msgstr "" -#: js/WidgetBlocks.js:83 -#.TRANS: Sustain level is the level during the main sequence of the sound's duration, until the key is released. -msgid "sustain" +#: js/utils/musicutils.js:1153 +#: js/utils/synthutils.js:184 +#.TRANS: sound effect +msgid "bottle" msgstr "" -#: js/WidgetBlocks.js:85 -#.TRANS: Release time is the time taken for the level to decay from the sustain level to zero after the key is released. -msgid "release" +#: js/utils/musicutils.js:1154 +#: js/utils/synthutils.js:186 +#.TRANS: sound effect +msgid "clap" msgstr "" -#: js/WidgetBlocks.js:96 -msgid "Attack value should be from 0 to 100." +#: js/utils/musicutils.js:1155 +#: js/utils/synthutils.js:188 +#.TRANS: sound effect +msgid "slap" msgstr "" -#: js/WidgetBlocks.js:99 -msgid "Decay value should be from 0 to 100." +#: js/utils/musicutils.js:1156 +#: js/utils/synthutils.js:190 +#.TRANS: sound effect +msgid "splash" msgstr "" -#: js/WidgetBlocks.js:102 -msgid "Sustain value should be from 0 to 100." +#: js/utils/musicutils.js:1157 +#: js/utils/synthutils.js:192 +#.TRANS: sound effect +msgid "bubbles" msgstr "" -#: js/WidgetBlocks.js:105 -msgid "Release value should be from 0-100." +#: js/utils/musicutils.js:1158 +#: js/utils/synthutils.js:194 +#.TRANS: sound effect +msgid "raindrop" msgstr "" -#: js/WidgetBlocks.js:121 -msgid "You are adding multiple envelope blocks." +#: js/utils/musicutils.js:1159 +#: js/utils/synthutils.js:196 +#.TRANS: animal sound effect +msgid "cat" msgstr "" -#: js/WidgetBlocks.js:144 -#.TRANS: a filter removes some unwanted components from a signal -msgid "filter" +#: js/utils/musicutils.js:1160 +#: js/utils/synthutils.js:198 +#.TRANS: animal sound effect +msgid "cricket" msgstr "" -#: js/WidgetBlocks.js:149 -#: js/musicutils.js:706 -#: js/musicutils.js:1105 -#.TRANS: highpass filter -msgid "highpass" +#: js/utils/musicutils.js:1161 +#: js/utils/synthutils.js:200 +#.TRANS: animal sound effect +msgid "dog" msgstr "" -#: js/WidgetBlocks.js:152 -#: js/ToneBlocks.js:42 -#: js/timbre.js:1558 -#: js/timbre.js:1808 -#.TRANS: type of filter, e.g., lowpass, highpass, etc. -#.TRANS: there are different types (sine, triangle, square...) of oscillators. -msgid "type" +#: js/utils/musicutils.js:1163 +#: js/utils/synthutils.js:102 +#.TRANS: musical instrument +msgid "banjo" msgstr "" -#: js/WidgetBlocks.js:154 -#: js/timbre.js:1818 -#.TRANS: rolloff is the steepness of a change in frequency. -msgid "rolloff" +#: js/utils/musicutils.js:1164 +#: js/utils/synthutils.js:104 +#.TRANS: musical instrument +msgid "koto" msgstr "" -#: js/WidgetBlocks.js:155 -#: js/MediaBlocks.js:692 -#: js/temperament.js:382 -#: js/temperament.js:417 -#: js/temperament.js:477 -#: js/temperament.js:485 -#: js/temperament.js:1348 -#: js/timbre.js:1842 -msgid "frequency" +#: js/utils/musicutils.js:1165 +#: js/utils/synthutils.js:106 +#.TRANS: musical instrument +msgid "dulcimer" msgstr "" -#: js/WidgetBlocks.js:179 -#.TRANS: rolloff is the steepness of a change in frequency. -msgid "Rolloff value should be either -12, -24, -48, or -96 decibels/octave." +#: js/utils/musicutils.js:1166 +#: js/utils/synthutils.js:108 +#.TRANS: musical instrument +msgid "electric guitar" msgstr "" -#: js/WidgetBlocks.js:211 -msgid "The Temperament tool is used to define custom tuning." +#: js/utils/musicutils.js:1167 +#: js/utils/synthutils.js:110 +#.TRANS: musical instrument +msgid "bassoon" msgstr "" -#: js/WidgetBlocks.js:277 -#: js/sampler.js:329 -msgid "Upload a sample and adjust its pitch center." +#: js/utils/musicutils.js:1168 +#: js/utils/synthutils.js:112 +#.TRANS: musical instrument +msgid "celeste" msgstr "" -#: js/WidgetBlocks.js:284 -#.TRANS: the speed at music is should be played. -msgid "sampler" +#: js/utils/musicutils.js:1170 +#: js/widgets/temperament.js:787 +#.TRANS: musical temperament +msgid "equal" msgstr "" -#: js/WidgetBlocks.js:329 -#: js/WidgetBlocks.js:334 -#: js/IntervalsBlocks.js:928 -#: js/VolumeBlocks.js:411 -#: js/ToneBlocks.js:946 -#: js/VolumeActions.js:218 -#: js/musicutils.js:704 -#: js/musicutils.js:755 -#: js/musicutils.js:798 -#: js/musicutils.js:820 -#: js/musicutils.js:1136 -#: js/synthutils.js:118 -#: js/modewidget.js:919 -#.TRANS: customize voice -msgid "custom" +#: js/utils/musicutils.js:1172 +#.TRANS: musical temperament +msgid "Pythagorean" msgstr "" -#: js/WidgetBlocks.js:432 -msgid "The Meter block opens a tool to select strong beats for the meter." +#: js/utils/musicutils.js:1174 +#.TRANS: musical temperament +msgid "just intonation" msgstr "" -#: js/WidgetBlocks.js:473 -msgid "The oscilloscope block opens a tool to visualize waveforms." +#: js/utils/musicutils.js:1176 +#.TRANS: musical temperament +msgid "meantone" msgstr "" -#: js/WidgetBlocks.js:478 -msgid "oscilloscope" +#: js/utils/musicutils.js:1193 +msgid "major 7th" msgstr "" -#: js/WidgetBlocks.js:530 -msgid "The Custom mode block opens a tool to explore musical mode (the spacing of the notes in a scale)." +#: js/utils/musicutils.js:1194 +msgid "minor 7th" msgstr "" -#: js/WidgetBlocks.js:536 -#.TRANS: musical mode is the pattern of half-steps in an octave, e.g., Major or Minor modes -msgid "custom mode" +#: js/utils/musicutils.js:1195 +msgid "dominant 7th" msgstr "" -#: js/WidgetBlocks.js:570 -msgid "The Tempo block opens a metronome to visualize the beat." +#: js/utils/musicutils.js:1196 +msgid "minor-major 7th" msgstr "" -#: js/WidgetBlocks.js:617 -msgid "The Arpeggio Widget is used to compose chord sequences." +#: js/utils/musicutils.js:1197 +msgid "fully-diminished 7th" msgstr "" -#: js/WidgetBlocks.js:623 -#: js/IntervalsBlocks.js:683 -msgid "arpeggio" +#: js/utils/musicutils.js:1198 +msgid "half-diminished 7th" msgstr "" -#: js/WidgetBlocks.js:677 -msgid "The Pitch drum matrix is used to map pitches to drum sounds." +#: js/utils/musicutils.js:1557 +#: js/utils/musicutils.js:1569 +msgid "Equal (12EDO)" msgstr "" -#: js/WidgetBlocks.js:682 -#.TRANS: makes a mapping between pitches and drum sounds -msgid "pitch-drum mapper" +#: js/utils/musicutils.js:1558 +#: js/utils/musicutils.js:1570 +msgid "5-limit Just Intonation" msgstr "" -#: js/WidgetBlocks.js:724 -msgid "You must have at least one pitch block and one drum block in the matrix." +#: js/utils/musicutils.js:1559 +#: js/utils/musicutils.js:1571 +msgid "Pythagorean (3-limit JI)" msgstr "" -#: js/WidgetBlocks.js:746 -msgid "The Pitch slider tool to is used to generate pitches at selected frequencies." +#: js/utils/musicutils.js:1560 +#: js/utils/musicutils.js:1561 +#: js/utils/musicutils.js:1572 +#: js/utils/musicutils.js:1573 +msgid "Meantone" msgstr "" -#: js/WidgetBlocks.js:751 -#.TRANS: widget to generate pitches using a slider -msgid "pitch slider" +#: js/utils/musicutils.js:1574 +msgid "Custom" msgstr "" -#: js/WidgetBlocks.js:788 -msgid "chromatic keyboard" +#: js/utils/musicutils.js:5387 +#: js/utils/musicutils.js:5430 +msgid "current" msgstr "" -#: js/WidgetBlocks.js:815 -#: js/WidgetBlocks.js:874 -#.TRANS: widget to generate pitches using a slider -msgid "music keyboard" +#: js/utils/musicutils.js:5390 +#: js/utils/musicutils.js:5421 +msgid "next" msgstr "" -#: js/WidgetBlocks.js:859 -#: js/WidgetBlocks.js:866 -msgid "The Music keyboard block opens a piano keyboard that can be used to create notes." +#: js/utils/musicutils.js:5393 +#: js/utils/musicutils.js:5426 +msgid "previous" msgstr "" -#: js/WidgetBlocks.js:910 -msgid "The Pitch staircase tool to is used to generate pitches from a given ratio." +#: js/utils/synthutils.js:120 +#.TRANS: simple monotone synthesizer +msgid "simple-2" msgstr "" -#: js/WidgetBlocks.js:917 -#.TRANS: generate a progressive sequence of pitches -msgid "pitch staircase" +#: js/utils/synthutils.js:122 +#.TRANS: simple monotone synthesizer +msgid "simple-3" msgstr "" -#: js/WidgetBlocks.js:982 -msgid "The Rhythm Maker block opens a tool to create drum machines." +#: js/utils/synthutils.js:124 +#.TRANS: simple monotone synthesizer +msgid "simple-4" msgstr "" -#: js/WidgetBlocks.js:1036 -msgid "G major scale" +#: js/utils/synthutils.js:162 +#.TRANS: musical instrument +msgid "taiko" msgstr "" -#: js/WidgetBlocks.js:1064 -msgid "C major scale" +#: js/blocks/ActionBlocks.js:58 +msgid "The Return block will return a value from an action." msgstr "" -#: js/WidgetBlocks.js:1097 -msgid "The Phrase Maker block opens a tool to create musical phrases." +#: js/blocks/ActionBlocks.js:75 +msgid "return" msgstr "" -#: js/WidgetBlocks.js:1104 -#.TRANS: assigns pitch to a sequence of beats to generate a melody -msgid "phrase maker" +#: js/blocks/ActionBlocks.js:128 +msgid "The Return to URL block will return a value to a webpage." msgstr "" -#: js/WidgetBlocks.js:1168 -msgid "You must have at least one pitch block and one rhythm block in the matrix." +#: js/blocks/ActionBlocks.js:145 +msgid "return to URL" msgstr "" -#: js/WidgetBlocks.js:1220 -msgid "The Status block opens a tool for inspecting the status of Music Blocks as it is running." +#: js/blocks/ActionBlocks.js:233 +#: js/blocks/ActionBlocks.js:290 +#: js/blocks/ActionBlocks.js:501 +#: js/blocks/ActionBlocks.js:688 +msgid "The Calculate block returns a value calculated by an action." msgstr "" -#: js/IntervalsBlocks.js:45 -msgid "set temperament" +#: js/blocks/ActionBlocks.js:251 +#: js/blocks/ActionBlocks.js:517 +#: js/blocks/ActionBlocks.js:707 +msgid "calculate" msgstr "" -#: js/IntervalsBlocks.js:63 -#: js/MediaBlocks.js:746 -#: js/PitchBlocks.js:657 -#: js/PitchBlocks.js:933 -#: js/PitchBlocks.js:972 -#: js/PitchBlocks.js:1005 -#: js/PitchBlocks.js:1166 -#: js/PitchBlocks.js:1679 -#: js/PitchBlocks.js:1720 -#: js/PitchBlocks.js:1827 -#: js/ToneBlocks.js:1025 -#.TRANS: adjusts the shift up or down by one octave (twelve half-steps in the interval between two notes, one having twice or half the frequency in Hz of the other.) -msgid "octave" +#: js/blocks/ActionBlocks.js:376 +#: js/blocks/ActionBlocks.js:593 +#: js/blocks/ActionBlocks.js:942 +#: js/blocks/ActionBlocks.js:1389 +#.TRANS: do is the do something or take an action. +msgid "The Do block is used to initiate an action." msgstr "" -#: js/IntervalsBlocks.js:99 -msgid "The Temperament name block is used to select a tuning method." +#: js/blocks/ActionBlocks.js:390 +#: js/blocks/ActionBlocks.js:610 +#: js/blocks/ActionBlocks.js:959 +#: js/blocks/ActionBlocks.js:1048 +#: js/blocks/MeterBlocks.js:769 +msgid "do1" msgstr "" -#: js/IntervalsBlocks.js:161 -msgid "doubly" +#: js/blocks/ActionBlocks.js:390 +#: js/blocks/ActionBlocks.js:610 +#: js/blocks/ActionBlocks.js:959 +#: js/blocks/ActionBlocks.js:1048 +#: js/blocks/FlowBlocks.js:742 +#: js/blocks/FlowBlocks.js:822 +#: js/blocks/MeterBlocks.js:769 +msgid "do" msgstr "" -#: js/IntervalsBlocks.js:166 -msgid "The Doubly block will double the size of an interval." +#: js/blocks/ActionBlocks.js:791 +#: js/blocks/ActionBlocks.js:865 +msgid "The Arg block contains the value of an argument passed to an action." msgstr "" -#: js/IntervalsBlocks.js:262 -msgid "interval number" +#: js/blocks/ActionBlocks.js:806 +#: js/blocks/ActionBlocks.js:878 +msgid "arg" msgstr "" -#: js/IntervalsBlocks.js:330 -#.TRANS: measure the distance between two pitches in semi-tones -msgid "semi-tone interval measure" +#: js/blocks/ActionBlocks.js:836 +#: js/blocks/ActionBlocks.js:900 +#: js/blocks/ActionBlocks.js:908 +msgid "Invalid argument" msgstr "" -#: js/IntervalsBlocks.js:397 -#: js/IntervalsBlocks.js:513 -msgid "You must use two pitch blocks when measuring an interval." +#: js/blocks/ActionBlocks.js:944 +msgid "In the example, it is used with the One of block to choose a random phase." msgstr "" -#: js/IntervalsBlocks.js:439 -msgid "The Scalar interval block measures the distance between two notes in the current key and mode." +#: js/blocks/ActionBlocks.js:1019 +#: js/blocks/ActionBlocks.js:1026 +msgid "The Listen block is used to listen for an event such as a mouse click." msgstr "" -#: js/IntervalsBlocks.js:445 -#.TRANS: measure the distance between two pitches in steps of musical scale -msgid "scalar interval measure" +#: js/blocks/ActionBlocks.js:1028 +msgid "When the event happens, an action is taken." msgstr "" -#: js/IntervalsBlocks.js:592 -#: js/musicutils.js:637 -#: js/musicutils.js:908 -#.TRANS: perfect is a music term related to intervals -msgid "perfect" +#: js/blocks/ActionBlocks.js:1045 +msgid "on" msgstr "" -#: js/IntervalsBlocks.js:621 -msgid "In the figure, we add sol# to sol." +#: js/blocks/ActionBlocks.js:1048 +#: js/blocks/ActionBlocks.js:1049 +#: js/blocks/ActionBlocks.js:1153 +msgid "event" msgstr "" -#: js/IntervalsBlocks.js:627 -#: js/OrnamentBlocks.js:220 -#.TRANS: calculate a relative step between notes based on semi-tones -msgid "semi-tone interval" +#: js/blocks/ActionBlocks.js:1133 +msgid "The Broadcast block is used to trigger an event." msgstr "" -#: js/IntervalsBlocks.js:676 -msgid "The output of the example is: do, mi, sol, sol, ti, mi" +#: js/blocks/ActionBlocks.js:1151 +msgid "broadcast" msgstr "" -#: js/IntervalsBlocks.js:735 -msgid "The Chord block calculates common chords." +#: js/blocks/ActionBlocks.js:1208 +msgid "Each Start block is a separate voice." msgstr "" -#: js/IntervalsBlocks.js:737 -msgid "In the figure, we generate a C-major chord." +#: js/blocks/ActionBlocks.js:1304 +msgid "It is often used for storing a phrase of music that is repeated." msgstr "" -#: js/IntervalsBlocks.js:742 -msgid "chord" +#: js/blocks/ActionBlocks.js:1495 +msgid "define temperament" msgstr "" -#: js/IntervalsBlocks.js:794 -msgid "The Ratio Interval block calculates an interval based on a ratio." +#: js/blocks/BooleanBlocks.js:44 +msgid "The Not block is the logical not operator." msgstr "" -#: js/IntervalsBlocks.js:799 -msgid "ratio interval" +#: js/blocks/BooleanBlocks.js:62 +msgid "not" +msgstr "inte" + +#: js/blocks/BooleanBlocks.js:134 +msgid "The And block is the logical and operator." msgstr "" -#: js/IntervalsBlocks.js:868 -msgid "In the figure, we add la to sol." +#: js/blocks/BooleanBlocks.js:152 +msgid "and" +msgstr "och" + +#: js/blocks/BooleanBlocks.js:218 +msgid "The Or block is the logical or operator." msgstr "" -#: js/IntervalsBlocks.js:924 -#.TRANS: define a custom mode -msgid "define mode" +#: js/blocks/BooleanBlocks.js:236 +msgid "or" +msgstr "eller" + +#: js/blocks/BooleanBlocks.js:302 +msgid "The XOR block is the logical XOR operator." msgstr "" -#: js/IntervalsBlocks.js:977 -msgid "movable Do" +#: js/blocks/BooleanBlocks.js:320 +msgid "xor" msgstr "" -#: js/IntervalsBlocks.js:1028 -#.TRANS: mode length is the number of notes in the mode, e.g., 7 for major and minor scales; 12 for chromatic scales -msgid "mode length" +#: js/blocks/BooleanBlocks.js:808 +msgid "The Equal block returns True if the two numbers are equal." msgstr "" -#: js/IntervalsBlocks.js:1037 -msgid "The Mode length block is the number of notes in the current scale." +#: js/blocks/BooleanBlocks.js:909 +msgid "The Not-equal-to block returns True if the two numbers are not equal to each other." msgstr "" -#: js/IntervalsBlocks.js:1039 -msgid "Most Western scales have 7 notes." +#: js/blocks/BooleanBlocks.js:1008 +msgid "The Boolean block is used to specify true or false." msgstr "" -#: js/IntervalsBlocks.js:1088 -#.TRANS: the mode in music is 'major', 'minor', etc. -msgid "current mode" +#: js/blocks/BoxesBlocks.js:53 +#: js/blocks/BoxesBlocks.js:59 +msgid "The Add-to block is used to add to the value stored in a box." msgstr "" -#: js/IntervalsBlocks.js:1141 -#.TRANS: the key is a group of pitches with which a music composition is created -msgid "current key" +#: js/blocks/BoxesBlocks.js:61 +msgid "It can also be used with other blocks such as Color and Pen size." msgstr "" -#: js/IntervalsBlocks.js:1193 -#: js/IntervalsBlocks.js:1238 -#.TRANS: set the key and mode, e.g. C Major -msgid "set key" +#: js/blocks/BoxesBlocks.js:73 +msgid "add" msgstr "" -#: js/IntervalsBlocks.js:1247 -#: js/IntervalsBlocks.js:1253 -msgid "The Set key block is used to set the key and mode," +#: js/blocks/BoxesBlocks.js:75 +#: js/widgets/temperament.js:857 +msgid "to" msgstr "" -#: js/IntervalsBlocks.js:1253 -msgid "eg C Major" +#: js/blocks/BoxesBlocks.js:75 +#: js/blocks/BoxesBlocks.js:595 +#: js/blocks/HeapBlocks.js:544 +msgid "value1" msgstr "" -#: js/IntervalsBlocks.js:1266 -#: js/DictBlocks.js:215 -#: js/DictBlocks.js:216 -#: js/DictBlocks.js:289 -#: js/DictBlocks.js:290 -#: js/DictBlocks.js:357 -#: js/DictBlocks.js:430 -#: js/DictBlocks.js:431 -#.TRANS: key, e.g., C in C Major -msgid "key" +#: js/blocks/BoxesBlocks.js:118 +msgid "Block does not support incrementing." msgstr "" -#: js/ActionBlocks.js:58 -msgid "The Return block will return a value from an action." +#: js/blocks/BoxesBlocks.js:152 +msgid "The Add-1-to block adds one to the value stored in a box." msgstr "" -#: js/ActionBlocks.js:75 -msgid "return" +#: js/blocks/BoxesBlocks.js:163 +msgid "add 1 to" msgstr "" -#: js/ActionBlocks.js:128 -msgid "The Return to URL block will return a value to a webpage." +#: js/blocks/BoxesBlocks.js:211 +msgid "The Subtract-1-from block subtracts one from the value stored in a box." msgstr "" -#: js/ActionBlocks.js:145 -msgid "return to URL" +#: js/blocks/BoxesBlocks.js:222 +msgid "subtract 1 from" msgstr "" -#: js/ActionBlocks.js:233 -#: js/ActionBlocks.js:290 -#: js/ActionBlocks.js:501 -#: js/ActionBlocks.js:688 -msgid "The Calculate block returns a value calculated by an action." +#: js/blocks/BoxesBlocks.js:270 +#: js/blocks/BoxesBlocks.js:387 +msgid "The Box block returns the value stored in a box." msgstr "" -#: js/ActionBlocks.js:251 -#: js/ActionBlocks.js:517 -#: js/ActionBlocks.js:707 -msgid "calculate" +#: js/blocks/BoxesBlocks.js:500 +#: js/blocks/BoxesBlocks.js:576 +msgid "The Store in block will store a value in a box." msgstr "" -#: js/ActionBlocks.js:376 -#: js/ActionBlocks.js:593 -#: js/ActionBlocks.js:942 -#: js/ActionBlocks.js:1389 -#.TRANS: do is the do something or take an action. -msgid "The Do block is used to initiate an action." +#: js/blocks/BoxesBlocks.js:595 +#: js/blocks/EnsembleBlocks.js:391 +#: js/blocks/EnsembleBlocks.js:402 +msgid "name1" msgstr "" -#: js/ActionBlocks.js:390 -#: js/ActionBlocks.js:610 -#: js/ActionBlocks.js:959 -#: js/ActionBlocks.js:1048 -#: js/MeterBlocks.js:769 -msgid "do1" +#: js/blocks/BoxesBlocks.js:652 +msgid "The Box2 block returns the value stored in Box2." msgstr "" -#: js/ActionBlocks.js:390 -#: js/ActionBlocks.js:610 -#: js/ActionBlocks.js:959 -#: js/ActionBlocks.js:1048 -#: js/FlowBlocks.js:742 -#: js/FlowBlocks.js:822 -#: js/MeterBlocks.js:769 -msgid "do" +#: js/blocks/BoxesBlocks.js:703 +msgid "The Store in Box2 block is used to store a value in Box2." msgstr "" -#: js/ActionBlocks.js:791 -#: js/ActionBlocks.js:865 -msgid "The Arg block contains the value of an argument passed to an action." +#: js/blocks/BoxesBlocks.js:715 +msgid "store in box2" msgstr "" -#: js/ActionBlocks.js:806 -#: js/ActionBlocks.js:878 -msgid "arg" +#: js/blocks/BoxesBlocks.js:761 +msgid "The Box1 block returns the value stored in Box1." msgstr "" -#: js/ActionBlocks.js:836 -#: js/ActionBlocks.js:900 -#: js/ActionBlocks.js:908 -msgid "Invalid argument" +#: js/blocks/BoxesBlocks.js:812 +msgid "The Store in Box1 block is used to store a value in Box1." msgstr "" -#: js/ActionBlocks.js:944 -msgid "In the example, it is used with the One of block to choose a random phase." +#: js/blocks/BoxesBlocks.js:826 +msgid "store in box1" msgstr "" -#: js/ActionBlocks.js:1019 -#: js/ActionBlocks.js:1026 -msgid "The Listen block is used to listen for an event such as a mouse click." +#: js/blocks/DictBlocks.js:77 +msgid "show dictionary" msgstr "" -#: js/ActionBlocks.js:1028 -msgid "When the event happens, an action is taken." +#: js/blocks/DictBlocks.js:80 +#: js/blocks/DictBlocks.js:145 +#: js/blocks/DictBlocks.js:216 +#: js/blocks/DictBlocks.js:290 +#: js/blocks/ProgramBlocks.js:396 +#: js/blocks/ProgramBlocks.js:501 +#: js/blocks/ProgramBlocks.js:664 +msgid "My Dictionary" msgstr "" -#: js/ActionBlocks.js:1045 -msgid "on" +#: js/blocks/DictBlocks.js:129 +msgid "The Dictionary block returns a dictionary." msgstr "" -#: js/ActionBlocks.js:1048 -#: js/ActionBlocks.js:1049 -#: js/ActionBlocks.js:1153 -msgid "event" +#: js/blocks/DictBlocks.js:197 +#: js/blocks/DictBlocks.js:339 +msgid "The Get-dict block returns a value in the dictionary for a specified key." msgstr "" -#: js/ActionBlocks.js:1133 -msgid "The Broadcast block is used to trigger an event." +#: js/blocks/DictBlocks.js:212 +#: js/blocks/DictBlocks.js:354 +#.TRANS: retrieve a value from the dictionary with a given key +msgid "get value" msgstr "" -#: js/ActionBlocks.js:1151 -msgid "broadcast" +#: js/blocks/DictBlocks.js:215 +#: js/blocks/DictBlocks.js:216 +#: js/blocks/DictBlocks.js:289 +#: js/blocks/DictBlocks.js:290 +#: js/blocks/DictBlocks.js:357 +#: js/blocks/DictBlocks.js:430 +#: js/blocks/DictBlocks.js:431 +msgid "key2" msgstr "" -#: js/ActionBlocks.js:1208 -msgid "Each Start block is a separate voice." +#: js/blocks/DictBlocks.js:215 +#: js/blocks/DictBlocks.js:216 +#: js/blocks/DictBlocks.js:289 +#: js/blocks/DictBlocks.js:290 +#: js/blocks/DictBlocks.js:357 +#: js/blocks/DictBlocks.js:430 +#: js/blocks/DictBlocks.js:431 +#: js/blocks/IntervalsBlocks.js:1462 +#.TRANS: key, e.g., C in C Major +msgid "key" msgstr "" -#: js/ActionBlocks.js:1304 -msgid "It is often used for storing a phrase of music that is repeated." +#: js/blocks/DictBlocks.js:271 +#: js/blocks/DictBlocks.js:411 +msgid "The Set-dict block sets a value in the dictionary for a specified key." msgstr "" -#: js/ActionBlocks.js:1495 -msgid "define temperament" +#: js/blocks/DictBlocks.js:286 +#: js/blocks/DictBlocks.js:427 +#.TRANS: set a value in the dictionary for a given key +msgid "set value" msgstr "" -#: js/EnsembleBlocks.js:66 +#: js/blocks/EnsembleBlocks.js:66 msgid "mouse index heap" msgstr "" -#: js/EnsembleBlocks.js:68 +#: js/blocks/EnsembleBlocks.js:68 msgid "The Mouse index heap block returns a value in the heap at a specified location for a specified mouse." msgstr "" -#: js/EnsembleBlocks.js:77 -#: js/EnsembleBlocks.js:1080 +#: js/blocks/EnsembleBlocks.js:77 +#: js/blocks/EnsembleBlocks.js:1080 msgid "mouse name" msgstr "" -#: js/EnsembleBlocks.js:77 -#: js/EnsembleBlocks.js:92 -#: js/HeapBlocks.js:544 +#: js/blocks/EnsembleBlocks.js:77 +#: js/blocks/EnsembleBlocks.js:92 +#: js/blocks/HeapBlocks.js:544 #.TRANS: value1 is a numeric value (JAPANESE ONLY) msgid "index" msgstr "" -#: js/EnsembleBlocks.js:80 +#: js/blocks/EnsembleBlocks.js:80 msgid "turtle index heap" msgstr "" -#: js/EnsembleBlocks.js:82 +#: js/blocks/EnsembleBlocks.js:82 msgid "The Turtle index heap block returns a value in the heap at a specified location for a specified turtle." msgstr "" -#: js/EnsembleBlocks.js:90 -#: js/EnsembleBlocks.js:167 -#: js/EnsembleBlocks.js:230 -#: js/EnsembleBlocks.js:316 -#: js/EnsembleBlocks.js:362 -#: js/EnsembleBlocks.js:400 -#: js/EnsembleBlocks.js:454 -#: js/EnsembleBlocks.js:504 -#: js/EnsembleBlocks.js:550 -#: js/EnsembleBlocks.js:597 -#: js/EnsembleBlocks.js:651 -#: js/EnsembleBlocks.js:763 -#: js/EnsembleBlocks.js:854 -#: js/EnsembleBlocks.js:915 -#: js/EnsembleBlocks.js:955 -#: js/EnsembleBlocks.js:1219 -#: js/EnsembleBlocks.js:1293 +#: js/blocks/EnsembleBlocks.js:90 +#: js/blocks/EnsembleBlocks.js:167 +#: js/blocks/EnsembleBlocks.js:230 +#: js/blocks/EnsembleBlocks.js:316 +#: js/blocks/EnsembleBlocks.js:362 +#: js/blocks/EnsembleBlocks.js:400 +#: js/blocks/EnsembleBlocks.js:454 +#: js/blocks/EnsembleBlocks.js:504 +#: js/blocks/EnsembleBlocks.js:550 +#: js/blocks/EnsembleBlocks.js:597 +#: js/blocks/EnsembleBlocks.js:651 +#: js/blocks/EnsembleBlocks.js:763 +#: js/blocks/EnsembleBlocks.js:854 +#: js/blocks/EnsembleBlocks.js:915 +#: js/blocks/EnsembleBlocks.js:955 +#: js/blocks/EnsembleBlocks.js:1219 +#: js/blocks/EnsembleBlocks.js:1293 #.TRANS: Yertle is the name of a turtle. msgid "Yertle" msgstr "" -#: js/EnsembleBlocks.js:92 -#: js/EnsembleBlocks.js:1089 +#: js/blocks/EnsembleBlocks.js:92 +#: js/blocks/EnsembleBlocks.js:1089 msgid "turtle name" msgstr "" -#: js/EnsembleBlocks.js:122 -#: js/EnsembleBlocks.js:1197 -#: js/HeapBlocks.js:474 -#: js/HeapBlocks.js:572 +#: js/blocks/EnsembleBlocks.js:122 +#: js/blocks/EnsembleBlocks.js:1197 +#: js/blocks/HeapBlocks.js:474 +#: js/blocks/HeapBlocks.js:572 msgid "Index must be > 0." msgstr "" -#: js/EnsembleBlocks.js:127 -#: js/HeapBlocks.js:479 -#: js/HeapBlocks.js:577 +#: js/blocks/EnsembleBlocks.js:127 +#: js/blocks/HeapBlocks.js:479 +#: js/blocks/HeapBlocks.js:577 msgid "Maximum heap size is 1000." msgstr "" -#: js/EnsembleBlocks.js:145 +#: js/blocks/EnsembleBlocks.js:145 msgid "stop mouse" msgstr "" -#: js/EnsembleBlocks.js:147 +#: js/blocks/EnsembleBlocks.js:147 msgid "The Stop mouse block stops the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:158 +#: js/blocks/EnsembleBlocks.js:158 msgid "stop turtle" msgstr "" -#: js/EnsembleBlocks.js:160 +#: js/blocks/EnsembleBlocks.js:160 msgid "The Stop turtle block stops the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:184 -#: js/EnsembleBlocks.js:247 -#: js/EnsembleBlocks.js:413 -#: js/EnsembleBlocks.js:468 -#: js/EnsembleBlocks.js:706 -#: js/EnsembleBlocks.js:808 -#: js/EnsembleBlocks.js:870 -#: js/EnsembleBlocks.js:1190 -#: js/EnsembleBlocks.js:1253 +#: js/blocks/EnsembleBlocks.js:184 +#: js/blocks/EnsembleBlocks.js:247 +#: js/blocks/EnsembleBlocks.js:413 +#: js/blocks/EnsembleBlocks.js:468 +#: js/blocks/EnsembleBlocks.js:706 +#: js/blocks/EnsembleBlocks.js:808 +#: js/blocks/EnsembleBlocks.js:870 +#: js/blocks/EnsembleBlocks.js:1190 +#: js/blocks/EnsembleBlocks.js:1253 msgid "Cannot find mouse" msgstr "" -#: js/EnsembleBlocks.js:186 -#: js/EnsembleBlocks.js:249 -#: js/EnsembleBlocks.js:415 -#: js/EnsembleBlocks.js:470 -#: js/EnsembleBlocks.js:708 -#: js/EnsembleBlocks.js:810 -#: js/EnsembleBlocks.js:872 -#: js/EnsembleBlocks.js:1192 -#: js/EnsembleBlocks.js:1255 +#: js/blocks/EnsembleBlocks.js:186 +#: js/blocks/EnsembleBlocks.js:249 +#: js/blocks/EnsembleBlocks.js:415 +#: js/blocks/EnsembleBlocks.js:470 +#: js/blocks/EnsembleBlocks.js:708 +#: js/blocks/EnsembleBlocks.js:810 +#: js/blocks/EnsembleBlocks.js:872 +#: js/blocks/EnsembleBlocks.js:1192 +#: js/blocks/EnsembleBlocks.js:1255 msgid "Cannot find turtle" msgstr "" -#: js/EnsembleBlocks.js:206 +#: js/blocks/EnsembleBlocks.js:206 msgid "start mouse" msgstr "" -#: js/EnsembleBlocks.js:209 +#: js/blocks/EnsembleBlocks.js:209 msgid "The Start mouse block starts the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:220 +#: js/blocks/EnsembleBlocks.js:220 msgid "start turtle" msgstr "" -#: js/EnsembleBlocks.js:223 +#: js/blocks/EnsembleBlocks.js:223 msgid "The Start turtle block starts the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:256 +#: js/blocks/EnsembleBlocks.js:256 msgid "Mouse is already running." msgstr "" -#: js/EnsembleBlocks.js:258 +#: js/blocks/EnsembleBlocks.js:258 msgid "Turtle is already running." msgstr "" -#: js/EnsembleBlocks.js:282 +#: js/blocks/EnsembleBlocks.js:282 msgid "Cannot find start block" msgstr "" -#: js/EnsembleBlocks.js:292 +#: js/blocks/EnsembleBlocks.js:292 #.TRANS: pen color for this mouse msgid "mouse color" msgstr "" -#: js/EnsembleBlocks.js:294 +#: js/blocks/EnsembleBlocks.js:294 msgid "The Mouse color block returns the pen color of the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:306 +#: js/blocks/EnsembleBlocks.js:306 #.TRANS: pen color for this turtle msgid "turtle color" msgstr "" -#: js/EnsembleBlocks.js:308 +#: js/blocks/EnsembleBlocks.js:308 msgid "The Turtle color block returns the pen color of the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:338 +#: js/blocks/EnsembleBlocks.js:338 #.TRANS: heading (compass direction) for this mouse msgid "mouse heading" msgstr "" -#: js/EnsembleBlocks.js:340 +#: js/blocks/EnsembleBlocks.js:340 msgid "The Mouse heading block returns the heading of the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:352 +#: js/blocks/EnsembleBlocks.js:352 #.TRANS: heading (compass direction) for this turtle msgid "turtle heading" msgstr "" -#: js/EnsembleBlocks.js:354 +#: js/blocks/EnsembleBlocks.js:354 msgid "The Turtle heading block returns the heading of the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:384 -#: js/EnsembleBlocks.js:439 +#: js/blocks/EnsembleBlocks.js:384 +#: js/blocks/EnsembleBlocks.js:439 #.TRANS: set xy position for this mouse msgid "set mouse" msgstr "" -#: js/EnsembleBlocks.js:391 -#: js/EnsembleBlocks.js:402 -#: js/BoxesBlocks.js:595 -msgid "name1" -msgstr "" - -#: js/EnsembleBlocks.js:391 -#: js/EnsembleBlocks.js:402 -#: js/ProgramBlocks.js:881 -#: js/GraphicsBlocks.js:235 -#: js/GraphicsBlocks.js:313 -#: js/GraphicsBlocks.js:436 -#: js/GraphicsBlocks.js:487 -#: js/GraphicsBlocks.js:534 -#: js/GraphicsBlocks.js:750 +#: js/blocks/EnsembleBlocks.js:391 +#: js/blocks/EnsembleBlocks.js:402 +#: js/blocks/GraphicsBlocks.js:235 +#: js/blocks/GraphicsBlocks.js:313 +#: js/blocks/GraphicsBlocks.js:436 +#: js/blocks/GraphicsBlocks.js:487 +#: js/blocks/GraphicsBlocks.js:534 +#: js/blocks/GraphicsBlocks.js:750 +#: js/blocks/ProgramBlocks.js:881 msgid "x" msgstr "x" -#: js/EnsembleBlocks.js:391 -#: js/EnsembleBlocks.js:402 -#: js/ProgramBlocks.js:881 -#: js/GraphicsBlocks.js:149 -#: js/GraphicsBlocks.js:313 -#: js/GraphicsBlocks.js:436 -#: js/GraphicsBlocks.js:487 -#: js/GraphicsBlocks.js:534 -#: js/GraphicsBlocks.js:750 +#: js/blocks/EnsembleBlocks.js:391 +#: js/blocks/EnsembleBlocks.js:402 +#: js/blocks/GraphicsBlocks.js:149 +#: js/blocks/GraphicsBlocks.js:313 +#: js/blocks/GraphicsBlocks.js:436 +#: js/blocks/GraphicsBlocks.js:487 +#: js/blocks/GraphicsBlocks.js:534 +#: js/blocks/GraphicsBlocks.js:750 +#: js/blocks/ProgramBlocks.js:881 msgid "y" msgstr "y" -#: js/EnsembleBlocks.js:395 -#: js/EnsembleBlocks.js:452 +#: js/blocks/EnsembleBlocks.js:395 +#: js/blocks/EnsembleBlocks.js:452 #.TRANS: set xy position for this turtle msgid "set turtle" msgstr "" -#: js/EnsembleBlocks.js:433 +#: js/blocks/EnsembleBlocks.js:433 msgid "The Set mouse block sends a stack of blocks to be run by the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:446 +#: js/blocks/EnsembleBlocks.js:446 msgid "The Set turtle block sends a stack of blocks to be run by the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:480 +#: js/blocks/EnsembleBlocks.js:480 #.TRANS: y position for this mouse msgid "mouse y" msgstr "" -#: js/EnsembleBlocks.js:482 +#: js/blocks/EnsembleBlocks.js:482 msgid "The Y mouse block returns the Y position of the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:494 +#: js/blocks/EnsembleBlocks.js:494 #.TRANS: y position for this turtle msgid "turtle y" msgstr "" -#: js/EnsembleBlocks.js:496 +#: js/blocks/EnsembleBlocks.js:496 msgid "The Y turtle block returns the Y position of the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:526 +#: js/blocks/EnsembleBlocks.js:526 #.TRANS: x position for this mouse msgid "mouse x" msgstr "" -#: js/EnsembleBlocks.js:528 +#: js/blocks/EnsembleBlocks.js:528 msgid "The X mouse block returns the X position of the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:540 +#: js/blocks/EnsembleBlocks.js:540 #.TRANS: x position for this turtle msgid "turtle x" msgstr "" -#: js/EnsembleBlocks.js:542 +#: js/blocks/EnsembleBlocks.js:542 msgid "The X turtle block returns the X position of the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:573 +#: js/blocks/EnsembleBlocks.js:573 #.TRANS: notes played by this mouse msgid "mouse notes played" msgstr "" -#: js/EnsembleBlocks.js:575 +#: js/blocks/EnsembleBlocks.js:575 msgid "The Mouse elapse notes block returns the number of notes played by the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:587 +#: js/blocks/EnsembleBlocks.js:587 #.TRANS: notes played by this turtle msgid "turtle notes played" msgstr "" -#: js/EnsembleBlocks.js:589 +#: js/blocks/EnsembleBlocks.js:589 msgid "The Turtle elapse notes block returns the number of notes played by the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:627 +#: js/blocks/EnsembleBlocks.js:627 #.TRANS: convert current note for this turtle to piano key (1-88) msgid "mouse pitch number" msgstr "" -#: js/EnsembleBlocks.js:629 +#: js/blocks/EnsembleBlocks.js:629 msgid "The Mouse pitch block returns the current pitch number being played by the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:641 +#: js/blocks/EnsembleBlocks.js:641 #.TRANS: convert current note for this turtle to piano key (1-88) msgid "turtle pitch number" msgstr "" -#: js/EnsembleBlocks.js:643 -msgid "The Turrle pitch block returns the current pitch number being played by the specified turtle." +#: js/blocks/EnsembleBlocks.js:643 +msgid "The Turtle pitch block returns the current pitch number being played by the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:747 -#: js/EnsembleBlocks.js:819 +#: js/blocks/EnsembleBlocks.js:747 +#: js/blocks/EnsembleBlocks.js:819 #.TRANS: note value is the duration of the note played by this mouse msgid "mouse note value" msgstr "" -#: js/EnsembleBlocks.js:757 +#: js/blocks/EnsembleBlocks.js:757 #.TRANS: note value is the duration of the note played by this turtle msgid "turtle note value" msgstr "" -#: js/EnsembleBlocks.js:830 +#: js/blocks/EnsembleBlocks.js:830 #.TRANS: sync is short for synchronization msgid "mouse sync" msgstr "" -#: js/EnsembleBlocks.js:832 +#: js/blocks/EnsembleBlocks.js:832 msgid "The Mouse sync block aligns the beat count between mice." msgstr "" -#: js/EnsembleBlocks.js:844 +#: js/blocks/EnsembleBlocks.js:844 #.TRANS: sync is short for synchronization msgid "turtle sync" msgstr "" -#: js/EnsembleBlocks.js:846 +#: js/blocks/EnsembleBlocks.js:846 msgid "The Turtle sync block aligns the beat count between turtles." msgstr "" -#: js/EnsembleBlocks.js:887 +#: js/blocks/EnsembleBlocks.js:887 msgid "The Found mouse block will return true if the specified mouse can be found." msgstr "" -#: js/EnsembleBlocks.js:893 +#: js/blocks/EnsembleBlocks.js:893 msgid "found mouse" msgstr "" -#: js/EnsembleBlocks.js:903 +#: js/blocks/EnsembleBlocks.js:903 msgid "The Found turtle block will return true if the specified turtle can be found." msgstr "" -#: js/EnsembleBlocks.js:909 +#: js/blocks/EnsembleBlocks.js:909 msgid "found turtle" msgstr "" -#: js/EnsembleBlocks.js:932 -msgid "new mouse" -msgstr "" - -#: js/EnsembleBlocks.js:934 -msgid "The New mouse block will create a new mouse." -msgstr "" - -#: js/EnsembleBlocks.js:945 -msgid "new turtle" -msgstr "" - -#: js/EnsembleBlocks.js:947 -msgid "The New turtle block will create a new turtle." -msgstr "" - -#: js/EnsembleBlocks.js:1011 -msgid "set mouse color" -msgstr "" - -#: js/EnsembleBlocks.js:1014 -msgid "The Set-mouse-color block is used to set the color of a mouse." -msgstr "" - -#: js/EnsembleBlocks.js:1020 -msgid "set turtle color" -msgstr "" - -#: js/EnsembleBlocks.js:1023 -msgid "The Set-turtle-color block is used to set the color of a turtle." -msgstr "" - -#: js/EnsembleBlocks.js:1083 -msgid "The Mouse-name block returns the name of a mouse." -msgstr "" - -#: js/EnsembleBlocks.js:1092 -msgid "The Turtle-name block returns the name of a turtle." -msgstr "" - -#: js/EnsembleBlocks.js:1115 -msgid "mouse count" -msgstr "" - -#: js/EnsembleBlocks.js:1118 -msgid "The Mouse-count block returns the number of mice." -msgstr "" - -#: js/EnsembleBlocks.js:1124 -msgid "turtle count" -msgstr "" - -#: js/EnsembleBlocks.js:1127 -msgid "The Turtle-count block returns the number of turtles." -msgstr "" - -#: js/EnsembleBlocks.js:1149 -msgid "nth mouse name" -msgstr "" - -#: js/EnsembleBlocks.js:1152 -msgid "The Nth-Mouse name block returns the name of the nth mouse." -msgstr "" - -#: js/EnsembleBlocks.js:1158 -msgid "nth turtle name" -msgstr "" - -#: js/EnsembleBlocks.js:1161 -msgid "The Nth-Turtle name block returns the name of the nth turtle." -msgstr "" - -#: js/EnsembleBlocks.js:1205 -#: js/EnsembleBlocks.js:1265 -msgid "set name" -msgstr "" - -#: js/EnsembleBlocks.js:1214 -#: js/EnsembleBlocks.js:1221 -msgid "source" -msgstr "" - -#: js/EnsembleBlocks.js:1214 -#: js/EnsembleBlocks.js:1221 -msgid "target" -msgstr "" - -#: js/EnsembleBlocks.js:1271 -msgid "The Set-name block is used to name a mouse." -msgstr "" - -#: js/EnsembleBlocks.js:1284 -msgid "The Set-name block is used to name a turtle." -msgstr "" - -#: js/BooleanBlocks.js:44 -msgid "The Not block is the logical not operator." -msgstr "" - -#: js/BooleanBlocks.js:62 -msgid "not" -msgstr "inte" - -#: js/BooleanBlocks.js:134 -msgid "The And block is the logical and operator." -msgstr "" - -#: js/BooleanBlocks.js:152 -msgid "and" -msgstr "och" - -#: js/BooleanBlocks.js:218 -msgid "The Or block is the logical or operator." -msgstr "" - -#: js/BooleanBlocks.js:236 -msgid "or" -msgstr "eller" - -#: js/BooleanBlocks.js:302 -msgid "The XOR block is the logical XOR operator." -msgstr "" - -#: js/BooleanBlocks.js:320 -msgid "xor" -msgstr "" - -#: js/BooleanBlocks.js:808 -msgid "The Equal block returns True if the two numbers are equal." +#: js/blocks/EnsembleBlocks.js:932 +msgid "new mouse" msgstr "" -#: js/BooleanBlocks.js:909 -msgid "The Not-equal-to block returns True if the two numbers are not equal to each other." +#: js/blocks/EnsembleBlocks.js:934 +msgid "The New mouse block will create a new mouse." msgstr "" -#: js/BooleanBlocks.js:1008 -msgid "The Boolean block is used to specify true or false." +#: js/blocks/EnsembleBlocks.js:945 +msgid "new turtle" msgstr "" -#: js/MediaBlocks.js:35 -#.TRANS: right side of the screen -msgid "right (screen)" +#: js/blocks/EnsembleBlocks.js:947 +msgid "The New turtle block will create a new turtle." msgstr "" -#: js/MediaBlocks.js:45 -#: js/MediaBlocks.js:56 -msgid "The Right block returns the position of the right of the canvas." +#: js/blocks/EnsembleBlocks.js:1011 +msgid "set mouse color" msgstr "" -#: js/MediaBlocks.js:97 -#.TRANS: left side of the screen -msgid "left (screen)" +#: js/blocks/EnsembleBlocks.js:1014 +msgid "The Set-mouse-color block is used to set the color of a mouse." msgstr "" -#: js/MediaBlocks.js:107 -#: js/MediaBlocks.js:118 -msgid "The Left block returns the position of the left of the canvas." +#: js/blocks/EnsembleBlocks.js:1020 +msgid "set turtle color" msgstr "" -#: js/MediaBlocks.js:158 -msgid "top (screen)" +#: js/blocks/EnsembleBlocks.js:1023 +msgid "The Set-turtle-color block is used to set the color of a turtle." msgstr "" -#: js/MediaBlocks.js:168 -#: js/MediaBlocks.js:179 -msgid "The Top block returns the position of the top of the canvas." +#: js/blocks/EnsembleBlocks.js:1083 +msgid "The Mouse-name block returns the name of a mouse." msgstr "" -#: js/MediaBlocks.js:219 -msgid "bottom (screen)" +#: js/blocks/EnsembleBlocks.js:1092 +msgid "The Turtle-name block returns the name of a turtle." msgstr "" -#: js/MediaBlocks.js:229 -#: js/MediaBlocks.js:240 -msgid "The Bottom block returns the position of the bottom of the canvas." +#: js/blocks/EnsembleBlocks.js:1115 +msgid "mouse count" msgstr "" -#: js/MediaBlocks.js:282 -msgid "width" +#: js/blocks/EnsembleBlocks.js:1118 +msgid "The Mouse-count block returns the number of mice." msgstr "" -#: js/MediaBlocks.js:291 -msgid "The Width block returns the width of the canvas." +#: js/blocks/EnsembleBlocks.js:1124 +msgid "turtle count" msgstr "" -#: js/MediaBlocks.js:325 -msgid "height" +#: js/blocks/EnsembleBlocks.js:1127 +msgid "The Turtle-count block returns the number of turtles." msgstr "" -#: js/MediaBlocks.js:334 -msgid "The Height block returns the height of the canvas." +#: js/blocks/EnsembleBlocks.js:1149 +msgid "nth mouse name" msgstr "" -#: js/MediaBlocks.js:369 -#.TRANS: stops playback of an audio recording -msgid "stop play" +#: js/blocks/EnsembleBlocks.js:1152 +msgid "The Nth-Mouse name block returns the name of the nth mouse." msgstr "" -#: js/MediaBlocks.js:404 -#.TRANS: Erases the images and text -msgid "erase media" +#: js/blocks/EnsembleBlocks.js:1158 +msgid "nth turtle name" msgstr "" -#: js/MediaBlocks.js:409 -msgid "The Erase Media block erases text and images." +#: js/blocks/EnsembleBlocks.js:1161 +msgid "The Nth-Turtle name block returns the name of the nth turtle." msgstr "" -#: js/MediaBlocks.js:439 -#.TRANS: play an audio recording -msgid "play back" +#: js/blocks/EnsembleBlocks.js:1205 +#: js/blocks/EnsembleBlocks.js:1265 +msgid "set name" msgstr "" -#: js/MediaBlocks.js:487 -msgid "speak" +#: js/blocks/EnsembleBlocks.js:1214 +#: js/blocks/EnsembleBlocks.js:1221 +msgid "source" msgstr "" -#: js/MediaBlocks.js:495 -msgid "The Speak block outputs to the text-to-speech synthesizer" +#: js/blocks/EnsembleBlocks.js:1214 +#: js/blocks/EnsembleBlocks.js:1221 +msgid "target" msgstr "" -#: js/MediaBlocks.js:546 -msgid "camera" +#: js/blocks/EnsembleBlocks.js:1271 +msgid "The Set-name block is used to name a mouse." msgstr "" -#: js/MediaBlocks.js:551 -msgid "The Camera block connects a webcam to the Show block." +#: js/blocks/EnsembleBlocks.js:1284 +msgid "The Set-name block is used to name a turtle." msgstr "" -#: js/MediaBlocks.js:574 -msgid "video" +#: js/blocks/ExtrasBlocks.js:33 +msgid "fraction" msgstr "" -#: js/MediaBlocks.js:579 -msgid "The Video block selects video for use with the Show block." +#: js/blocks/ExtrasBlocks.js:36 +msgid "Convert a float to a fraction" msgstr "" -#: js/MediaBlocks.js:607 -msgid "The Open file block opens a file for use with the Show block." +#: js/blocks/ExtrasBlocks.js:93 +msgid "save as ABC" msgstr "" -#: js/MediaBlocks.js:645 -msgid "stop media" +#: js/blocks/ExtrasBlocks.js:96 +#: js/blocks/ExtrasBlocks.js:132 +#: js/blocks/ExtrasBlocks.js:168 +msgid "title" msgstr "" -#: js/MediaBlocks.js:650 -msgid "The Stop media block stops audio or video playback." +#: js/blocks/ExtrasBlocks.js:129 +msgid "save as Lilypond" msgstr "" -#: js/MediaBlocks.js:679 -#: js/PitchBlocks.js:1539 -#: js/phrasemaker.js:822 -#: js/musickeyboard.js:1654 -#.TRANS: a measure of frequency: one cycle per second -msgid "hertz" +#: js/blocks/ExtrasBlocks.js:165 +msgid "save as SVG" msgstr "" -#: js/MediaBlocks.js:692 -msgid "duration (ms)" +#: js/blocks/ExtrasBlocks.js:216 +msgid "no background" msgstr "" -#: js/MediaBlocks.js:728 -#.TRANS: translate a note into hertz, e.g., A4 -> 440HZ -msgid "note to frequency" +#: js/blocks/ExtrasBlocks.js:219 +msgid "The No background block eliminates the background from the saved SVG output." msgstr "" -#: js/MediaBlocks.js:736 -msgid "The To frequency block converts a pitch name and octave to Hertz." +#: js/blocks/ExtrasBlocks.js:247 +msgid "show blocks" +msgstr "Visa block" + +#: js/blocks/ExtrasBlocks.js:249 +msgid "The Show blocks block shows the blocks." msgstr "" -#: js/MediaBlocks.js:746 -#: js/PitchBlocks.js:656 -#: js/PitchBlocks.js:932 -#: js/PitchBlocks.js:1827 -#.TRANS: name2 is name as in name of pitch (JAPANESE ONLY) -msgid "name2" +#: js/blocks/ExtrasBlocks.js:274 +msgid "hide blocks" +msgstr "dölj block" + +#: js/blocks/ExtrasBlocks.js:276 +msgid "The Hide blocks block hides the blocks." msgstr "" -#: js/MediaBlocks.js:812 -msgid "The Avatar block is used to change the appearance of the mouse." +#: js/blocks/ExtrasBlocks.js:305 +#: js/blocks/ExtrasBlocks.js:338 +msgid "The Space block is used to add space between blocks." msgstr "" -#: js/MediaBlocks.js:819 -msgid "The Avatar block is used to change the appearance of the turtle." +#: js/blocks/ExtrasBlocks.js:376 +msgid "wait" +msgstr "vänta" + +#: js/blocks/ExtrasBlocks.js:379 +msgid "The Wait block pauses the program for a specified number of seconds." msgstr "" -#: js/MediaBlocks.js:831 -#: js/MediaBlocks.js:891 -#.TRANS: a media object -msgid "size" +#: js/blocks/ExtrasBlocks.js:433 +#: plugins/facebook.rtp:30 +msgid "comment" msgstr "" -#: js/MediaBlocks.js:831 -msgid "image" -msgstr "bild" +#: js/blocks/ExtrasBlocks.js:469 +msgid "print" +msgstr "skriv" -#: js/MediaBlocks.js:880 -msgid "The Show block is used to display text or images on the canvas." +#: js/blocks/ExtrasBlocks.js:476 +msgid "The Print block displays text at the top of the screen." msgstr "" -#: js/MediaBlocks.js:888 -#.TRANS: show1 is show as in display an image or text on the screen. -msgid "show1" +#: js/blocks/ExtrasBlocks.js:582 +msgid "display grid" msgstr "" -#: js/MediaBlocks.js:891 -msgid "obj" +#: js/blocks/ExtrasBlocks.js:587 +msgid "The Display Grid Block changes the grid type" msgstr "" -#: js/MediaBlocks.js:938 -msgid "The Media block is used to import an image." +#: js/blocks/ExtrasBlocks.js:689 +#: js/blocks/ExtrasBlocks.js:708 +#: js/blocks/ExtrasBlocks.js:731 +#: js/blocks/ExtrasBlocks.js:754 +#: js/blocks/ExtrasBlocks.js:772 +#: js/blocks/ExtrasBlocks.js:791 +#: js/blocks/ExtrasBlocks.js:810 +#: js/blocks/ExtrasBlocks.js:829 +msgid "unknown" msgstr "" -#: js/MediaBlocks.js:973 -msgid "The Text block holds a text string." +#: js/blocks/FlowBlocks.js:41 +msgid "The Backward block runs code in reverse order (Musical retrograde)." msgstr "" -#: js/ProgramBlocks.js:33 -msgid "The Load-heap-from-app block loads the heap from a web page." +#: js/blocks/FlowBlocks.js:48 +msgid "backward" msgstr "" -#: js/ProgramBlocks.js:44 -#.TRANS: load the heap contents from a URL -msgid "load heap from App" +#: js/blocks/FlowBlocks.js:124 +msgid "The Duplicate block will run each block multiple times." msgstr "" -#: js/ProgramBlocks.js:95 -msgid "Error parsing JSON data:" +#: js/blocks/FlowBlocks.js:136 +msgid "duplicate" msgstr "" -#: js/ProgramBlocks.js:100 -msgid "404: Page not found" +#: js/blocks/FlowBlocks.js:334 +msgid "The Default block is used inside of a Switch to define the default action." msgstr "" -#: js/ProgramBlocks.js:133 -msgid "The Save-heap-to-app block saves the heap to a web page." +#: js/blocks/FlowBlocks.js:342 +msgid "default" msgstr "" -#: js/ProgramBlocks.js:144 -#.TRANS: save the heap contents to a URL -msgid "save heap to App" +#: js/blocks/FlowBlocks.js:361 +#: js/blocks/FlowBlocks.js:418 +msgid "The Case Block must be used inside of a Switch Block." msgstr "" -#: js/ProgramBlocks.js:189 -msgid "Cannot find a valid heap for" +#: js/blocks/FlowBlocks.js:389 +msgid "The Case block is used inside of a Switch to define matches." msgstr "" -#: js/ProgramBlocks.js:206 -msgid "The Load-heap block loads the heap from a file." +#: js/blocks/FlowBlocks.js:397 +msgid "case" msgstr "" -#: js/ProgramBlocks.js:217 -#.TRANS: load the heap from a file -msgid "load heap" +#: js/blocks/FlowBlocks.js:446 +msgid "The Switch block will run the code in the matching Case." msgstr "" -#: js/ProgramBlocks.js:270 -msgid "The file you selected does not contain a valid heap." +#: js/blocks/FlowBlocks.js:454 +msgid "switch" msgstr "" -#: js/ProgramBlocks.js:275 -msgid "The loadHeap block needs a loadFile block." +#: js/blocks/FlowBlocks.js:595 +msgid "The Stop block will stop a loop" msgstr "" -#: js/ProgramBlocks.js:291 -msgid "The Set-heap block loads the heap." +#: js/blocks/FlowBlocks.js:597 +msgid "Forever, Repeat, While, or Until." msgstr "" -#: js/ProgramBlocks.js:299 -#: js/HeapBlocks.js:539 -#.TRANS: load the heap from a JSON encoding -msgid "set heap" +#: js/blocks/FlowBlocks.js:604 +#: js/widgets/timbre.js:417 +#: js/widgets/timbre.js:419 +#: js/widgets/musickeyboard.js:819 +#: js/widgets/musickeyboard.js:821 +#: js/widgets/phrasemaker.js:4202 +#: plugins/rodi.rtp:29 +#: plugins/rodi.rtp:73 +#: plugins/rodi.rtp:413 +msgid "stop" +msgstr "topp" + +#: js/blocks/FlowBlocks.js:653 +msgid "The Waitfor block will wait until the condition is true." msgstr "" -#: js/ProgramBlocks.js:340 -msgid "The block you selected does not contain a valid heap." +#: js/blocks/FlowBlocks.js:661 +msgid "wait for" msgstr "" -#: js/ProgramBlocks.js:343 -msgid "The Set heap block needs a heap." +#: js/blocks/FlowBlocks.js:732 +msgid "The Until block will repeat until the condition is true." msgstr "" -#: js/ProgramBlocks.js:360 -msgid "The Load-dictionary block loads a dictionary from a file." +#: js/blocks/FlowBlocks.js:740 +msgid "until" msgstr "" -#: js/ProgramBlocks.js:372 -#.TRANS: load a dictionary from a file -msgid "load dictionary" +#: js/blocks/FlowBlocks.js:742 +#: js/blocks/FlowBlocks.js:822 +msgid "do2" msgstr "" -#: js/ProgramBlocks.js:390 -#: js/ProgramBlocks.js:658 -#: js/ToneBlocks.js:1025 -msgid "file" +#: js/blocks/FlowBlocks.js:812 +msgid "The While block will repeat while the condition is true." msgstr "" -#: js/ProgramBlocks.js:396 -#: js/ProgramBlocks.js:501 -#: js/ProgramBlocks.js:664 -#: js/DictBlocks.js:80 -#: js/DictBlocks.js:145 -#: js/DictBlocks.js:216 -#: js/DictBlocks.js:290 -msgid "My Dictionary" +#: js/blocks/FlowBlocks.js:820 +msgid "while" +msgstr "Vitt" + +#: js/blocks/FlowBlocks.js:903 +#: js/blocks/FlowBlocks.js:968 +#: js/blocks/FlowBlocks.js:979 +msgid "In this example if the mouse button is pressed a snare drum will play." msgstr "" -#: js/ProgramBlocks.js:444 -msgid "The file you selected does not contain a valid dictionary." +#: js/blocks/FlowBlocks.js:925 +#: js/blocks/FlowBlocks.js:988 +msgid "if" +msgstr "om" + +#: js/blocks/FlowBlocks.js:927 +#: js/blocks/FlowBlocks.js:990 +msgid "then" +msgstr "då" + +#: js/blocks/FlowBlocks.js:927 +msgid "else" +msgstr "annars" + +#: js/blocks/FlowBlocks.js:1025 +msgid "The Forever block will repeat the contained blocks forever." msgstr "" -#: js/ProgramBlocks.js:449 -msgid "The load dictionary block needs a load file block." +#: js/blocks/FlowBlocks.js:1037 +msgid "forever" +msgstr "alltid" + +#: js/blocks/FlowBlocks.js:1073 +msgid "The Repeat block will repeat the contained blocks." msgstr "" -#: js/ProgramBlocks.js:466 -msgid "The Set-dictionary block loads a dictionary." +#: js/blocks/FlowBlocks.js:1075 +msgid "In this example the note will be played 4 times." msgstr "" -#: js/ProgramBlocks.js:477 -#.TRANS: load a dictionary from a JSON -msgid "set dictionary" +#: js/blocks/FlowBlocks.js:1083 +msgid "repeat" +msgstr "upprepa" + +#: js/blocks/FlowBlocks.js:1123 +msgid "duplicate factor" msgstr "" -#: js/ProgramBlocks.js:546 -msgid "The block you selected does not contain a valid dictionary." +#: js/blocks/HeapBlocks.js:49 +msgid "The Heap block returns the heap." msgstr "" -#: js/ProgramBlocks.js:550 -msgid "The set dictionary block needs a dictionary." +#: js/blocks/HeapBlocks.js:133 +msgid "show heap" +msgstr "visa stapel" + +#: js/blocks/HeapBlocks.js:181 +msgid "The Heap-length block returns the length of the heap." msgstr "" -#: js/ProgramBlocks.js:567 -msgid "The Save-heap block saves the heap to a file." +#: js/blocks/HeapBlocks.js:195 +msgid "heap length" msgstr "" -#: js/ProgramBlocks.js:578 -#.TRANS: save the heap to a file -msgid "save heap" +#: js/blocks/HeapBlocks.js:254 +msgid "The Heap-empty? block returns true if the heap is empty." msgstr "" -#: js/ProgramBlocks.js:629 -msgid "The Save-dictionary block saves a dictionary to a file." +#: js/blocks/HeapBlocks.js:268 +#.TRANS: Is the heap empty? +msgid "heap empty?" msgstr "" -#: js/ProgramBlocks.js:640 -#.TRANS: save a dictionary to a file -msgid "save dictionary" +#: js/blocks/HeapBlocks.js:317 +msgid "The Empty-heap block empties the heap." msgstr "" -#: js/ProgramBlocks.js:720 -msgid "The Open palette block opens a palette." +#: js/blocks/HeapBlocks.js:327 +#: js/blocks/HeapBlocks.js:647 +#.TRANS: empty the heap +msgid "empty heap" +msgstr "töm stapel" + +#: js/blocks/HeapBlocks.js:371 +msgid "The Reverse-heap block reverses the order of the heap." msgstr "" -#: js/ProgramBlocks.js:727 -msgid "open palette" +#: js/blocks/HeapBlocks.js:384 +#.TRANS: reverse the order of the heap +msgid "reverse heap" msgstr "" -#: js/ProgramBlocks.js:785 -msgid "The Delete block block removes a block." +#: js/blocks/HeapBlocks.js:428 +msgid "The Index-heap block returns a value in the heap at a specified location." msgstr "" -#: js/ProgramBlocks.js:797 -#.TRANS: Move this block to the trash. -msgid "delete block" +#: js/blocks/HeapBlocks.js:443 +#.TRANS: retrieve a value from the heap at index position in the heap +msgid "index heap" msgstr "" -#: js/ProgramBlocks.js:861 -msgid "The Move block block moves a block." +#: js/blocks/HeapBlocks.js:523 +msgid "The Set-heap entry block sets a value in he heap at the specified location." msgstr "" -#: js/ProgramBlocks.js:869 -#.TRANS: Move the position of a block on the screen. -msgid "move block" +#: js/blocks/HeapBlocks.js:539 +#: js/blocks/ProgramBlocks.js:299 +#.TRANS: load the heap from a JSON encoding +msgid "set heap" msgstr "" -#: js/ProgramBlocks.js:881 -#: js/ProgramBlocks.js:1048 -msgid "block number" +#: js/blocks/HeapBlocks.js:619 +msgid "The Pop block removes the value at the top of the heap." msgstr "" -#: js/ProgramBlocks.js:935 -#.TRANS: Run program beginning at this block. -msgid "run block" +#: js/blocks/HeapBlocks.js:633 +#.TRANS: pop a value off the top of the heap +msgid "pop" +msgstr "ta bort" + +#: js/blocks/HeapBlocks.js:680 +msgid "The Push block adds a value to the top of the heap." msgstr "" -#: js/ProgramBlocks.js:1025 -msgid "The Dock block block connections two blocks." +#: js/blocks/HeapBlocks.js:696 +#.TRANS: push a value onto the top of the heap +msgid "push" +msgstr "lägg till sist" + +#: js/blocks/IntervalsBlocks.js:45 +msgid "set temperament" msgstr "" -#: js/ProgramBlocks.js:1036 -#.TRANS: We can connect a block to another block. -msgid "connect blocks" +#: js/blocks/IntervalsBlocks.js:63 +#: js/blocks/MediaBlocks.js:746 +#: js/blocks/PitchBlocks.js:657 +#: js/blocks/PitchBlocks.js:935 +#: js/blocks/PitchBlocks.js:974 +#: js/blocks/PitchBlocks.js:1007 +#: js/blocks/PitchBlocks.js:1194 +#: js/blocks/PitchBlocks.js:1717 +#: js/blocks/PitchBlocks.js:1758 +#: js/blocks/PitchBlocks.js:1866 +#: js/blocks/ToneBlocks.js:1025 +#: js/turtleactions/IntervalsActions.js:114 +#.TRANS: adjusts the shift up or down by one octave (twelve half-steps in the interval between two notes, one having twice or half the frequency in Hz of the other.) +msgid "octave" msgstr "" -#: js/ProgramBlocks.js:1048 -msgid "target block" +#: js/blocks/IntervalsBlocks.js:99 +msgid "The Temperament name block is used to select a tuning method." msgstr "" -#: js/ProgramBlocks.js:1048 -msgid "connection number" +#: js/blocks/IntervalsBlocks.js:161 +msgid "doubly" msgstr "" -#: js/ProgramBlocks.js:1140 -msgid "The Make block block creates a new block." +#: js/blocks/IntervalsBlocks.js:166 +msgid "The Doubly block will double the size of an interval." msgstr "" -#: js/ProgramBlocks.js:1152 -#.TRANS: Create a new block -msgid "make block" +#: js/blocks/IntervalsBlocks.js:262 +msgid "interval number" msgstr "" -#: js/ProgramBlocks.js:1186 -#: js/ProgramBlocks.js:1227 -#: js/RhythmBlocks.js:1128 -#: js/PitchBlocks.js:972 -#: js/PitchBlocks.js:1005 -#: js/temperament.js:340 -#: js/temperament.js:362 -#: js/temperament.js:372 -#: js/temperament.js:484 -#: js/status.js:190 -#: plugins/rodi.rtp:192 -#.TRANS: a musical note consisting of pitch and duration -msgid "note" +#: js/blocks/IntervalsBlocks.js:317 +msgid "current interval" +msgstr "" + +#: js/blocks/IntervalsBlocks.js:387 +#.TRANS: measure the distance between two pitches in semi-tones +msgid "semi-tone interval measure" msgstr "" -#: js/ProgramBlocks.js:1285 -msgid "Cannot find block" +#: js/blocks/IntervalsBlocks.js:454 +#: js/blocks/IntervalsBlocks.js:570 +msgid "You must use two pitch blocks when measuring an interval." msgstr "" -#: js/ProgramBlocks.js:1304 -#: js/ProgramBlocks.js:1313 -msgid "Warning: block argument type mismatch" +#: js/blocks/IntervalsBlocks.js:496 +msgid "The Scalar interval block measures the distance between two notes in the current key and mode." msgstr "" -#: js/ProgramBlocks.js:1347 -msgid "The Open project block is used to open a project from a web page." +#: js/blocks/IntervalsBlocks.js:502 +#.TRANS: measure the distance between two pitches in steps of musical scale +msgid "scalar interval measure" msgstr "" -#: js/ProgramBlocks.js:1357 -msgid "open project" +#: js/blocks/IntervalsBlocks.js:678 +msgid "In the figure, we add sol# to sol." msgstr "" -#: js/ProgramBlocks.js:1410 -msgid "Please enter a valid URL." +#: js/blocks/IntervalsBlocks.js:684 +#: js/blocks/OrnamentBlocks.js:220 +#.TRANS: calculate a relative step between notes based on semi-tones +msgid "semi-tone interval" msgstr "" -#: js/DrumBlocks.js:59 -msgid "The Noise name block is used to select a noise synthesizer." +#: js/blocks/IntervalsBlocks.js:733 +msgid "The output of the example is: do, mi, sol, sol, ti, mi" msgstr "" -#: js/DrumBlocks.js:102 -msgid "The Drum name block is used to select a drum." +#: js/blocks/IntervalsBlocks.js:740 +#: js/blocks/WidgetBlocks.js:768 +msgid "arpeggio" msgstr "" -#: js/DrumBlocks.js:146 -msgid "The Effects name block is used to select a sound effect." +#: js/blocks/IntervalsBlocks.js:931 +msgid "The Chord block calculates common chords." msgstr "" -#: js/DrumBlocks.js:163 -msgid "noise" +#: js/blocks/IntervalsBlocks.js:933 +msgid "In the figure, we generate a C-major chord." msgstr "" -#: js/DrumBlocks.js:177 -msgid "The Play noise block will generate white, pink, or brown noise." +#: js/blocks/IntervalsBlocks.js:938 +msgid "chord" msgstr "" -#: js/DrumBlocks.js:191 -#: js/musicutils.js:752 -#: js/synthutils.js:47 -#.TRANS: white noise synthesizer -msgid "white noise" +#: js/blocks/IntervalsBlocks.js:990 +msgid "The Ratio Interval block calculates an interval based on a ratio." msgstr "" -#: js/DrumBlocks.js:326 -msgid "Replace every instance of a pitch with a drum sound." +#: js/blocks/IntervalsBlocks.js:995 +msgid "ratio interval" msgstr "" -#: js/DrumBlocks.js:337 -#.TRANS: map a pitch to a drum sound -msgid "map pitch to drum" +#: js/blocks/IntervalsBlocks.js:1064 +msgid "In the figure, we add la to sol." msgstr "" -#: js/DrumBlocks.js:404 -msgid "In the example above, a kick drum sound will be played instead of sol." +#: js/blocks/IntervalsBlocks.js:1120 +#.TRANS: define a custom mode +msgid "define mode" msgstr "" -#: js/DrumBlocks.js:416 -#.TRANS: set the current drum sound for playback -msgid "set drum" +#: js/blocks/IntervalsBlocks.js:1173 +msgid "movable Do" msgstr "" -#: js/DrumBlocks.js:460 -msgid "sound effect" +#: js/blocks/IntervalsBlocks.js:1224 +#.TRANS: mode length is the number of notes in the mode, e.g., 7 for major and minor scales; 12 for chromatic scales +msgid "mode length" msgstr "" -#: js/DrumBlocks.js:498 -msgid "You can use multiple Drum blocks within a Note block." +#: js/blocks/IntervalsBlocks.js:1233 +msgid "The Mode length block is the number of notes in the current scale." msgstr "" -#: js/RhythmBlocks.js:182 -#: js/RhythmBlocks.js:1086 -#: js/RhythmBlocks.js:1162 -msgid "Note value must be greater than 0." +#: js/blocks/IntervalsBlocks.js:1235 +msgid "Most Western scales have 7 notes." msgstr "" -#: js/RhythmBlocks.js:215 -#: js/RhythmBlocks.js:278 -#: js/RhythmBlocks.js:350 -#.TRANS: swing is a rhythmic variation that emphasises the offbeat -msgid "swing" +#: js/blocks/IntervalsBlocks.js:1284 +#.TRANS: the mode in music is 'major', 'minor', etc. +msgid "current mode" msgstr "" -#: js/RhythmBlocks.js:355 -#.TRANS: the amount to shift to the offbeat note -msgid "swing value" +#: js/blocks/IntervalsBlocks.js:1337 +#.TRANS: the key is a group of pitches with which a music composition is created +msgid "current key" msgstr "" -#: js/RhythmBlocks.js:419 -msgid "The Skip notes block will cause notes to be skipped." +#: js/blocks/IntervalsBlocks.js:1389 +#: js/blocks/IntervalsBlocks.js:1434 +#.TRANS: set the key and mode, e.g. C Major +msgid "set key" msgstr "" -#: js/RhythmBlocks.js:427 -#.TRANS: substitute rests on notes being skipped -msgid "skip notes" +#: js/blocks/IntervalsBlocks.js:1443 +#: js/blocks/IntervalsBlocks.js:1449 +msgid "The Set key block is used to set the key and mode," msgstr "" -#: js/RhythmBlocks.js:489 -#.TRANS: speed up note duration by some factor, e.g. convert 1/4 to 1/8 notes by using a factor of 2 -msgid "multiply note value" +#: js/blocks/IntervalsBlocks.js:1449 +msgid "eg C Major" msgstr "" -#: js/RhythmBlocks.js:542 -msgid "The Tie block works on pairs of notes, combining them into one note." +#: js/blocks/MediaBlocks.js:35 +#.TRANS: right side of the screen +msgid "right (screen)" msgstr "" -#: js/RhythmBlocks.js:550 -#.TRANS: tie notes together into one longer note -msgid "tie" +#: js/blocks/MediaBlocks.js:45 +#: js/blocks/MediaBlocks.js:56 +msgid "The Right block returns the position of the right of the canvas." msgstr "" -#: js/RhythmBlocks.js:591 -#: js/RhythmBlocks.js:671 -#.TRANS: a dotted note is played for 1.5x its value, e.g., 1/8. --> 3/16 -msgid "dot" +#: js/blocks/MediaBlocks.js:97 +#.TRANS: left side of the screen +msgid "left (screen)" msgstr "" -#: js/RhythmBlocks.js:619 -#: js/RhythmActions.js:221 -msgid "An argument of -1 results in a note value of 0." +#: js/blocks/MediaBlocks.js:107 +#: js/blocks/MediaBlocks.js:118 +msgid "The Left block returns the position of the left of the canvas." msgstr "" -#: js/RhythmBlocks.js:661 -msgid "The Dot block extends the duration of a note by 50%." +#: js/blocks/MediaBlocks.js:158 +msgid "top (screen)" msgstr "" -#: js/RhythmBlocks.js:663 -msgid "Eg a dotted quarter note will play for 3/8 (1/4 + 1/8) of a beat." +#: js/blocks/MediaBlocks.js:168 +#: js/blocks/MediaBlocks.js:179 +msgid "The Top block returns the position of the top of the canvas." msgstr "" -#: js/RhythmBlocks.js:765 -#.TRANS: Japanese only: note value block for drum -msgid "note value drum" +#: js/blocks/MediaBlocks.js:219 +msgid "bottom (screen)" msgstr "" -#: js/RhythmBlocks.js:829 -msgid "392 hertz" +#: js/blocks/MediaBlocks.js:229 +#: js/blocks/MediaBlocks.js:240 +msgid "The Bottom block returns the position of the bottom of the canvas." msgstr "" -#: js/RhythmBlocks.js:1119 -msgid "The Note block is a container for one or more Pitch blocks." +#: js/blocks/MediaBlocks.js:282 +msgid "width" msgstr "" -#: js/RhythmBlocks.js:1121 -msgid "The Note block specifies the duration (note value) of its contents." +#: js/blocks/MediaBlocks.js:291 +msgid "The Width block returns the width of the canvas." msgstr "" -#: js/RhythmBlocks.js:1130 -msgid "value2" +#: js/blocks/MediaBlocks.js:325 +msgid "height" msgstr "" -#: js/RhythmBlocks.js:1200 -msgid "define frequency" +#: js/blocks/MediaBlocks.js:334 +msgid "The Height block returns the height of the canvas." msgstr "" -#: js/RhythmBlocks.js:1218 -#: js/temperament.js:650 -#: js/temperament.js:1421 -msgid "octave space" +#: js/blocks/MediaBlocks.js:369 +#.TRANS: stops playback of an audio recording +msgid "stop play" msgstr "" -#: js/NumberBlocks.js:28 -msgid "The Int block returns an integer." +#: js/blocks/MediaBlocks.js:404 +#.TRANS: Erases the images and text +msgid "erase media" msgstr "" -#: js/NumberBlocks.js:34 -msgid "int" +#: js/blocks/MediaBlocks.js:409 +msgid "The Erase Media block erases text and images." msgstr "" -#: js/NumberBlocks.js:73 -msgid "The Mod block returns the remainder from a division." +#: js/blocks/MediaBlocks.js:439 +#.TRANS: play an audio recording +msgid "play back" msgstr "" -#: js/NumberBlocks.js:79 -msgid "mod" -msgstr "rest" +#: js/blocks/MediaBlocks.js:487 +msgid "speak" +msgstr "" -#: js/NumberBlocks.js:123 -msgid "The Power block calculates a power function." +#: js/blocks/MediaBlocks.js:495 +msgid "The Speak block outputs to the text-to-speech synthesizer" msgstr "" -#: js/NumberBlocks.js:178 -msgid "The Sqrt block returns the square root." +#: js/blocks/MediaBlocks.js:546 +msgid "camera" msgstr "" -#: js/NumberBlocks.js:184 -msgid "sqrt" +#: js/blocks/MediaBlocks.js:551 +msgid "The Camera block connects a webcam to the Show block." msgstr "" -#: js/NumberBlocks.js:230 -msgid "The Abs block returns the absolute value." +#: js/blocks/MediaBlocks.js:574 +msgid "video" msgstr "" -#: js/NumberBlocks.js:236 -msgid "abs" +#: js/blocks/MediaBlocks.js:579 +msgid "The Video block selects video for use with the Show block." msgstr "" -#: js/NumberBlocks.js:277 -msgid "The Distance block returns the distance between two points. For example, between the mouse and the center of the screen." +#: js/blocks/MediaBlocks.js:607 +msgid "The Open file block opens a file for use with the Show block." msgstr "" -#: js/NumberBlocks.js:283 -#: plugins/rodi.rtp:310 -msgid "distance" +#: js/blocks/MediaBlocks.js:645 +msgid "stop media" msgstr "" -#: js/NumberBlocks.js:343 -msgid "The Divide block is used to divide." +#: js/blocks/MediaBlocks.js:650 +msgid "The Stop media block stops audio or video playback." msgstr "" -#: js/NumberBlocks.js:411 -msgid "The Multiply block is used to multiply." +#: js/blocks/MediaBlocks.js:679 +#: js/blocks/PitchBlocks.js:1577 +#: js/widgets/musickeyboard.js:1936 +#: js/widgets/phrasemaker.js:1037 +#.TRANS: a measure of frequency: one cycle per second +msgid "hertz" msgstr "" -#: js/NumberBlocks.js:554 -msgid "The Minus block is used to subtract." +#: js/blocks/MediaBlocks.js:692 +#: js/blocks/WidgetBlocks.js:182 +#: js/widgets/temperament.js:506 +#: js/widgets/temperament.js:546 +#: js/widgets/temperament.js:610 +#: js/widgets/temperament.js:618 +#: js/widgets/temperament.js:1505 +#: js/widgets/timbre.js:1842 +msgid "frequency" msgstr "" -#: js/NumberBlocks.js:647 -msgid "The Plus block is used to add." +#: js/blocks/MediaBlocks.js:692 +msgid "duration (ms)" msgstr "" -#: js/NumberBlocks.js:773 -msgid "The One-of block returns one of two choices." +#: js/blocks/MediaBlocks.js:728 +#.TRANS: translate a note into hertz, e.g., A4 -> 440HZ +msgid "note to frequency" msgstr "" -#: js/NumberBlocks.js:780 -#: js/PitchBlocks.js:616 -msgid "one of" +#: js/blocks/MediaBlocks.js:736 +msgid "The To frequency block converts a pitch name and octave to Hertz." msgstr "" -#: js/NumberBlocks.js:782 -msgid "this" +#: js/blocks/MediaBlocks.js:746 +#: js/blocks/PitchBlocks.js:656 +#: js/blocks/PitchBlocks.js:934 +#: js/blocks/PitchBlocks.js:1866 +#.TRANS: name2 is name as in name of pitch (JAPANESE ONLY) +msgid "name2" msgstr "" -#: js/NumberBlocks.js:782 -msgid "that" +#: js/blocks/MediaBlocks.js:812 +msgid "The Avatar block is used to change the appearance of the mouse." msgstr "" -#: js/NumberBlocks.js:837 -msgid "The Random block returns a random number." +#: js/blocks/MediaBlocks.js:819 +msgid "The Avatar block is used to change the appearance of the turtle." msgstr "" -#: js/NumberBlocks.js:844 -msgid "random" -msgstr "slumpmässig" +#: js/blocks/MediaBlocks.js:831 +#: js/blocks/MediaBlocks.js:891 +#.TRANS: a media object +msgid "size" +msgstr "" -#: js/NumberBlocks.js:846 -msgid "min" -msgstr "minsta" +#: js/blocks/MediaBlocks.js:831 +msgid "image" +msgstr "bild" -#: js/NumberBlocks.js:846 -msgid "max" -msgstr "största" +#: js/blocks/MediaBlocks.js:880 +msgid "The Show block is used to display text or images on the canvas." +msgstr "" -#: js/NumberBlocks.js:910 -msgid "The Number block holds a number." +#: js/blocks/MediaBlocks.js:888 +#.TRANS: show1 is show as in display an image or text on the screen. +msgid "show1" msgstr "" -#: js/BoxesBlocks.js:53 -#: js/BoxesBlocks.js:59 -msgid "The Add-to block is used to add to the value stored in a box." +#: js/blocks/MediaBlocks.js:891 +msgid "obj" msgstr "" -#: js/BoxesBlocks.js:61 -msgid "It can also be used with other blocks such as Color and Pen size." +#: js/blocks/MediaBlocks.js:938 +msgid "The Media block is used to import an image." msgstr "" -#: js/BoxesBlocks.js:73 -msgid "add" +#: js/blocks/MediaBlocks.js:973 +msgid "The Text block holds a text string." msgstr "" -#: js/BoxesBlocks.js:75 -#: js/temperament.js:716 -msgid "to" +#: js/blocks/MeterBlocks.js:34 +#.TRANS: musical meter (time signature), e.g., 4:4 +msgid "current meter" msgstr "" -#: js/BoxesBlocks.js:75 -#: js/BoxesBlocks.js:595 -#: js/HeapBlocks.js:544 -msgid "value1" +#: js/blocks/MeterBlocks.js:85 +#.TRANS: number of beats per minute +msgid "beat factor" msgstr "" -#: js/BoxesBlocks.js:118 -msgid "Block does not support incrementing." +#: js/blocks/MeterBlocks.js:161 +msgid "The Beats per minute block returns the current beats per minute." msgstr "" -#: js/BoxesBlocks.js:152 -msgid "The Add-1-to block adds one to the value stored in a box." +#: js/blocks/MeterBlocks.js:169 +#: js/widgets/status.js:152 +#.TRANS: number of beats played per minute +msgid "beats per minute2" msgstr "" -#: js/BoxesBlocks.js:163 -msgid "add 1 to" +#: js/blocks/MeterBlocks.js:169 +#: js/blocks/MeterBlocks.js:1056 +#: js/blocks/MeterBlocks.js:1133 +#: js/blocks/MeterBlocks.js:1211 +#.TRANS: sets tempo by defining a beat and beats per minute +msgid "beats per minute" msgstr "" -#: js/BoxesBlocks.js:211 -msgid "The Subtract-1-from block subtracts one from the value stored in a box." +#: js/blocks/MeterBlocks.js:233 +#.TRANS: count of current musical measure in meter +msgid "measure count" msgstr "" -#: js/BoxesBlocks.js:222 -msgid "subtract 1 from" +#: js/blocks/MeterBlocks.js:241 +msgid "The Measure count block returns the current measure." msgstr "" -#: js/BoxesBlocks.js:270 -#: js/BoxesBlocks.js:387 -msgid "The Box block returns the value stored in a box." +#: js/blocks/MeterBlocks.js:290 +#.TRANS: count of current beat in the meter +msgid "beat count" msgstr "" -#: js/BoxesBlocks.js:500 -#: js/BoxesBlocks.js:576 -msgid "The Store in block will store a value in a box." +#: js/blocks/MeterBlocks.js:300 +#: js/blocks/MeterBlocks.js:311 +#: js/blocks/MeterBlocks.js:565 +#: js/blocks/MeterBlocks.js:576 +msgid "The Beat count block is the number of the current beat," msgstr "" -#: js/BoxesBlocks.js:652 -msgid "The Box2 block returns the value stored in Box2." +#: js/blocks/MeterBlocks.js:313 +#: js/blocks/MeterBlocks.js:578 +msgid "eg 1, 2, 3, or 4." msgstr "" -#: js/BoxesBlocks.js:703 -msgid "The Store in Box2 block is used to store a value in Box2." +#: js/blocks/MeterBlocks.js:368 +#.TRANS: count the number of notes +msgid "sum note values" msgstr "" -#: js/BoxesBlocks.js:715 -msgid "store in box2" +#: js/blocks/MeterBlocks.js:376 +#: js/blocks/MeterBlocks.js:440 +msgid "The Note counter block can be used to count the number of contained notes." msgstr "" -#: js/BoxesBlocks.js:761 -msgid "The Box1 block returns the value stored in Box1." +#: js/blocks/MeterBlocks.js:432 +#.TRANS: count the number of notes +msgid "note counter" msgstr "" -#: js/BoxesBlocks.js:812 -msgid "The Store in Box1 block is used to store a value in Box1." +#: js/blocks/MeterBlocks.js:496 +#.TRANS: number of whole notes that have been played +msgid "whole notes played" msgstr "" -#: js/BoxesBlocks.js:826 -msgid "store in box1" +#: js/blocks/MeterBlocks.js:505 +msgid "The Whole notes played block returns the total number of whole notes played." msgstr "" -#: js/HeapBlocks.js:49 -msgid "The Heap block returns the heap." +#: js/blocks/MeterBlocks.js:555 +#: js/turtleactions/DictActions.js:83 +#.TRANS: number of notes that have been played +msgid "notes played" msgstr "" -#: js/HeapBlocks.js:133 -msgid "show heap" -msgstr "visa stapel" +#: js/blocks/MeterBlocks.js:653 +msgid "The No clock block decouples the notes from the master clock." +msgstr "" -#: js/HeapBlocks.js:181 -msgid "The Heap-length block returns the length of the heap." +#: js/blocks/MeterBlocks.js:661 +#.TRANS: don't lock notes to master clock +msgid "no clock" msgstr "" -#: js/HeapBlocks.js:195 -msgid "heap length" +#: js/blocks/MeterBlocks.js:700 +msgid "on weak beat do" msgstr "" -#: js/HeapBlocks.js:254 -msgid "The Heap-empty? block returns true if the heap is empty." +#: js/blocks/MeterBlocks.js:705 +msgid "The On-weak-beat block lets you specify actions to take on weak (off) beats." msgstr "" -#: js/HeapBlocks.js:268 -#.TRANS: Is the heap empty? -msgid "heap empty?" +#: js/blocks/MeterBlocks.js:750 +msgid "on strong beat" msgstr "" -#: js/HeapBlocks.js:317 -msgid "The Empty-heap block empties the heap." +#: js/blocks/MeterBlocks.js:758 +msgid "The On-strong-beat block lets you specify actions to take on specified beats." msgstr "" -#: js/HeapBlocks.js:327 -#: js/HeapBlocks.js:647 -#.TRANS: empty the heap -msgid "empty heap" -msgstr "töm stapel" +#: js/blocks/MeterBlocks.js:769 +msgid "beat" +msgstr "" -#: js/HeapBlocks.js:371 -msgid "The Reverse-heap block reverses the order of the heap." +#: js/blocks/MeterBlocks.js:813 +msgid "on every beat do" msgstr "" -#: js/HeapBlocks.js:384 -#.TRANS: reverse the order of the heap -msgid "reverse heap" +#: js/blocks/MeterBlocks.js:821 +msgid "The On-every-beat block lets you specify actions to take on every beat." msgstr "" -#: js/HeapBlocks.js:428 -msgid "The Index-heap block returns a value in the heap at a specified location." +#: js/blocks/MeterBlocks.js:874 +msgid "on every note do" msgstr "" -#: js/HeapBlocks.js:443 -#.TRANS: retrieve a value from the heap at index position in the heap -msgid "index heap" +#: js/blocks/MeterBlocks.js:882 +msgid "The On-every-note block lets you specify actions to take on every note." msgstr "" -#: js/HeapBlocks.js:523 -msgid "The Set-heap entry block sets a value in he heap at the specified location." +#: js/blocks/MeterBlocks.js:928 +#: js/blocks/MeterBlocks.js:999 +#.TRANS: sets tempo by defining a beat and beats per minute +msgid "master beats per minute" msgstr "" -#: js/HeapBlocks.js:619 -msgid "The Pop block removes the value at the top of the heap." +#: js/blocks/MeterBlocks.js:952 +#: js/blocks/MeterBlocks.js:1078 +#: js/blocks/MeterBlocks.js:1135 +msgid "bpm" msgstr "" -#: js/HeapBlocks.js:633 -#.TRANS: pop a value off the top of the heap -msgid "pop" -msgstr "ta bort" +#: js/blocks/MeterBlocks.js:952 +#: js/blocks/MeterBlocks.js:1078 +#: js/blocks/MeterBlocks.js:1135 +msgid "beat value" +msgstr "" -#: js/HeapBlocks.js:680 -msgid "The Push block adds a value to the top of the heap." +#: js/blocks/MeterBlocks.js:1024 +#: js/blocks/MeterBlocks.js:1167 +#: js/blocks/MeterBlocks.js:1241 +msgid "Beats per minute must be > 30." msgstr "" -#: js/HeapBlocks.js:696 -#.TRANS: push a value onto the top of the heap -msgid "push" -msgstr "lägg till sist" +#: js/blocks/MeterBlocks.js:1027 +#: js/blocks/MeterBlocks.js:1170 +#: js/blocks/MeterBlocks.js:1244 +msgid "Maximum beats per minute is 1000." +msgstr "" -#: js/FlowBlocks.js:41 -msgid "The Backward block runs code in reverse order (Musical retrograde)." +#: js/blocks/MeterBlocks.js:1068 +msgid "The Beats per minute block sets the number of 1/4 notes per minute." msgstr "" -#: js/FlowBlocks.js:48 -msgid "backward" +#: js/blocks/MeterBlocks.js:1279 +#.TRANS: anacrusis +msgid "pickup" msgstr "" -#: js/FlowBlocks.js:124 -msgid "The Duplicate block will run each block multiple times." +#: js/blocks/MeterBlocks.js:1367 +msgid "number of beats" msgstr "" -#: js/FlowBlocks.js:136 -msgid "duplicate" +#: js/blocks/NumberBlocks.js:28 +msgid "The Int block returns an integer." msgstr "" -#: js/FlowBlocks.js:334 -msgid "The Default block is used inside of a Switch to define the default action." +#: js/blocks/NumberBlocks.js:34 +msgid "int" msgstr "" -#: js/FlowBlocks.js:342 -msgid "default" +#: js/blocks/NumberBlocks.js:73 +msgid "The Mod block returns the remainder from a division." msgstr "" -#: js/FlowBlocks.js:361 -#: js/FlowBlocks.js:418 -msgid "The Case Block must be used inside of a Switch Block." +#: js/blocks/NumberBlocks.js:79 +msgid "mod" +msgstr "rest" + +#: js/blocks/NumberBlocks.js:141 +msgid "The Power block calculates a power function." msgstr "" -#: js/FlowBlocks.js:389 -msgid "The Case block is used inside of a Switch to define matches." +#: js/blocks/NumberBlocks.js:196 +msgid "The Sqrt block returns the square root." msgstr "" -#: js/FlowBlocks.js:397 -msgid "case" +#: js/blocks/NumberBlocks.js:202 +msgid "sqrt" msgstr "" -#: js/FlowBlocks.js:446 -msgid "The Switch block will run the code in the matching Case." +#: js/blocks/NumberBlocks.js:248 +msgid "The Abs block returns the absolute value." msgstr "" -#: js/FlowBlocks.js:454 -msgid "switch" +#: js/blocks/NumberBlocks.js:254 +msgid "abs" msgstr "" -#: js/FlowBlocks.js:595 -msgid "The Stop block will stop a loop" +#: js/blocks/NumberBlocks.js:295 +msgid "The Distance block returns the distance between two points. For example, between the mouse and the center of the screen." msgstr "" -#: js/FlowBlocks.js:597 -msgid "Forever, Repeat, While, or Until." +#: js/blocks/NumberBlocks.js:301 +#: plugins/rodi.rtp:310 +msgid "distance" msgstr "" -#: js/FlowBlocks.js:604 -#: js/phrasemaker.js:3799 -#: js/musickeyboard.js:629 -#: js/musickeyboard.js:631 -#: js/timbre.js:417 -#: js/timbre.js:419 -#: plugins/rodi.rtp:29 -#: plugins/rodi.rtp:73 -#: plugins/rodi.rtp:413 -msgid "stop" -msgstr "topp" +#: js/blocks/NumberBlocks.js:361 +msgid "The Divide block is used to divide." +msgstr "" -#: js/FlowBlocks.js:653 -msgid "The Waitfor block will wait until the condition is true." +#: js/blocks/NumberBlocks.js:441 +msgid "The Multiply block is used to multiply." msgstr "" -#: js/FlowBlocks.js:661 -msgid "wait for" +#: js/blocks/NumberBlocks.js:612 +msgid "The Minus block is used to subtract." msgstr "" -#: js/FlowBlocks.js:732 -msgid "The Until block will repeat until the condition is true." +#: js/blocks/NumberBlocks.js:723 +msgid "The Plus block is used to add." msgstr "" -#: js/FlowBlocks.js:740 -msgid "until" +#: js/blocks/NumberBlocks.js:849 +msgid "The One-of block returns one of two choices." msgstr "" -#: js/FlowBlocks.js:742 -#: js/FlowBlocks.js:822 -msgid "do2" +#: js/blocks/NumberBlocks.js:856 +#: js/blocks/PitchBlocks.js:616 +msgid "one of" msgstr "" -#: js/FlowBlocks.js:812 -msgid "The While block will repeat while the condition is true." +#: js/blocks/NumberBlocks.js:858 +msgid "this" msgstr "" -#: js/FlowBlocks.js:820 -msgid "while" -msgstr "Vitt" +#: js/blocks/NumberBlocks.js:858 +msgid "that" +msgstr "" -#: js/FlowBlocks.js:903 -#: js/FlowBlocks.js:968 -#: js/FlowBlocks.js:979 -msgid "In this example if the mouse button is pressed a snare drum will play." +#: js/blocks/NumberBlocks.js:913 +msgid "The Random block returns a random number." msgstr "" -#: js/FlowBlocks.js:925 -#: js/FlowBlocks.js:988 -msgid "if" -msgstr "om" +#: js/blocks/NumberBlocks.js:920 +msgid "random" +msgstr "slumpmässig" -#: js/FlowBlocks.js:927 -#: js/FlowBlocks.js:990 -msgid "then" -msgstr "då" +#: js/blocks/NumberBlocks.js:922 +msgid "min" +msgstr "minsta" -#: js/FlowBlocks.js:927 -msgid "else" -msgstr "annars" +#: js/blocks/NumberBlocks.js:922 +msgid "max" +msgstr "största" -#: js/FlowBlocks.js:1025 -msgid "The Forever block will repeat the contained blocks forever." +#: js/blocks/NumberBlocks.js:986 +msgid "The Number block holds a number." msgstr "" -#: js/FlowBlocks.js:1037 -msgid "forever" -msgstr "alltid" - -#: js/FlowBlocks.js:1073 -msgid "The Repeat block will repeat the contained blocks." +#: js/blocks/OrnamentBlocks.js:32 +msgid "staccato factor" msgstr "" -#: js/FlowBlocks.js:1075 -msgid "In this example the note will be played 4 times." +#: js/blocks/OrnamentBlocks.js:108 +msgid "slur factor" msgstr "" -#: js/FlowBlocks.js:1083 -msgid "repeat" -msgstr "upprepa" - -#: js/FlowBlocks.js:1123 -msgid "duplicate factor" +#: js/blocks/OrnamentBlocks.js:217 +#: js/blocks/OrnamentBlocks.js:309 +#.TRANS: the neighbor refers to a neighboring note, e.g., D is a neighbor of C +msgid "neighbor" msgstr "" -#: js/PitchBlocks.js:39 -#: js/musicutils.js:722 -#: js/musicutils.js:1117 -#: js/synthutils.js:112 -#.TRANS: square wave -msgid "square" +#: js/blocks/OrnamentBlocks.js:293 +msgid "The Neighbor block rapidly switches between neighboring pitches." msgstr "" -#: js/PitchBlocks.js:62 -#: js/ToneBlocks.js:39 -#: js/musicutils.js:723 -#: js/musicutils.js:1118 -#: js/synthutils.js:116 -#.TRANS: triangle wave -msgid "triangle" +#: js/blocks/OrnamentBlocks.js:364 +msgid "glide" msgstr "" -#: js/PitchBlocks.js:85 -#: js/musicutils.js:721 -#: js/musicutils.js:1116 -#: js/synthutils.js:110 -#.TRANS: sine wave -msgid "sine" +#: js/blocks/OrnamentBlocks.js:479 +#: js/blocks/OrnamentBlocks.js:643 +msgid "slur" msgstr "" -#: js/PitchBlocks.js:108 -#: js/musicutils.js:724 -#: js/musicutils.js:1119 -#: js/synthutils.js:114 -#.TRANS: sawtooth wave -msgid "sawtooth" +#: js/blocks/OrnamentBlocks.js:558 +#: js/blocks/OrnamentBlocks.js:710 +#.TRANS: play each note sharply detached from the others +msgid "staccato" msgstr "" -#: js/PitchBlocks.js:141 -#.TRANS: musical transposition (adjustment of pitch up or down) -msgid "transposition" +#: js/blocks/RhythmBlocks.js:182 +#: js/blocks/RhythmBlocks.js:1086 +#: js/blocks/RhythmBlocks.js:1162 +msgid "Note value must be greater than 0." msgstr "" -#: js/PitchBlocks.js:168 -#.TRANS: step down one note in current musical scale -msgid "scalar step down" +#: js/blocks/RhythmBlocks.js:215 +#: js/blocks/RhythmBlocks.js:278 +#: js/blocks/RhythmBlocks.js:350 +#.TRANS: swing is a rhythmic variation that emphasises the offbeat +msgid "swing" msgstr "" -#: js/PitchBlocks.js:172 -msgid "The Scalar step down block returns the number of semi-tones down to the previous note in the current key and mode." +#: js/blocks/RhythmBlocks.js:355 +#.TRANS: the amount to shift to the offbeat note +msgid "swing value" msgstr "" -#: js/PitchBlocks.js:190 -#.TRANS: step up one note in current musical scale -msgid "scalar step up" +#: js/blocks/RhythmBlocks.js:419 +msgid "The Skip notes block will cause notes to be skipped." msgstr "" -#: js/PitchBlocks.js:194 -msgid "The Scalar step up block returns the number of semi-tones up to the next note in the current key and mode." +#: js/blocks/RhythmBlocks.js:427 +#.TRANS: substitute rests on notes being skipped +msgid "skip notes" msgstr "" -#: js/PitchBlocks.js:212 -#.TRANS: the change measured in half-steps between the current pitch and the previous pitch -msgid "change in pitch" +#: js/blocks/RhythmBlocks.js:489 +#.TRANS: speed up note duration by some factor, e.g. convert 1/4 to 1/8 notes by using a factor of 2 +msgid "multiply note value" msgstr "" -#: js/PitchBlocks.js:216 -msgid "The Change in pitch block is the difference (in half steps) between the current pitch being played and the previous pitch played." +#: js/blocks/RhythmBlocks.js:542 +msgid "The Tie block works on pairs of notes, combining them into one note." msgstr "" -#: js/PitchBlocks.js:243 -#.TRANS: the change measured in scale-steps between the current pitch and the previous pitch -msgid "scalar change in pitch" +#: js/blocks/RhythmBlocks.js:550 +#.TRANS: tie notes together into one longer note +msgid "tie" msgstr "" -#: js/PitchBlocks.js:250 -#: js/PitchBlocks.js:432 -#: js/PitchBlocks.js:1629 -#: js/DictActions.js:89 -#: js/temperament.js:477 -#: js/temperament.js:481 -#: js/temperament.js:714 -#.TRANS: convert current note to piano key (1-88) -#.TRANS: a mapping of pitch to the 88 piano keys -msgid "pitch number" +#: js/blocks/RhythmBlocks.js:591 +#: js/blocks/RhythmBlocks.js:671 +#.TRANS: a dotted note is played for 1.5x its value, e.g., 1/8. --> 3/16 +msgid "dot" msgstr "" -#: js/PitchBlocks.js:256 -msgid "The Pitch number block is the value of the pitch of the note currently being played." +#: js/blocks/RhythmBlocks.js:619 +#: js/turtleactions/RhythmActions.js:221 +msgid "An argument of -1 results in a note value of 0." msgstr "" -#: js/PitchBlocks.js:329 -#: js/PitchBlocks.js:433 -#.TRANS: the current pitch expressed in Hertz -msgid "pitch in hertz" +#: js/blocks/RhythmBlocks.js:661 +msgid "The Dot block extends the duration of a note by 50%." msgstr "" -#: js/PitchBlocks.js:334 -msgid "The Pitch in Hertz block is the value in Hertz of the pitch of the note currently being played." +#: js/blocks/RhythmBlocks.js:663 +msgid "Eg a dotted quarter note will play for 3/8 (1/4 + 1/8) of a beat." msgstr "" -#: js/PitchBlocks.js:367 -#: js/DictActions.js:87 -msgid "current pitch" +#: js/blocks/RhythmBlocks.js:765 +#.TRANS: Japanese only: note value block for drum +msgid "note value drum" msgstr "" -#: js/PitchBlocks.js:373 -msgid "The Current Pitch block is used with the Pitch Converter block. In the example above, current pitch, sol 4, is displayed as 392 hertz." +#: js/blocks/RhythmBlocks.js:829 +msgid "392 hertz" msgstr "" -#: js/PitchBlocks.js:410 -msgid "This block converts the pitch value of the last note played into different formats such as hertz, letter name, pitch number, et al." +#: js/blocks/RhythmBlocks.js:1119 +msgid "The Note block is a container for one or more Pitch blocks." msgstr "" -#: js/PitchBlocks.js:434 -msgid "alphabet" +#: js/blocks/RhythmBlocks.js:1121 +msgid "The Note block specifies the duration (note value) of its contents." msgstr "" -#: js/PitchBlocks.js:436 -#.TRANS: Translate as "alphabet class" -msgid "letter class" +#: js/blocks/RhythmBlocks.js:1128 +#: js/blocks/PitchBlocks.js:974 +#: js/blocks/PitchBlocks.js:1007 +#: js/blocks/ProgramBlocks.js:1186 +#: js/blocks/ProgramBlocks.js:1227 +#: js/widgets/status.js:190 +#: js/widgets/temperament.js:464 +#: js/widgets/temperament.js:486 +#: js/widgets/temperament.js:496 +#: js/widgets/temperament.js:617 +#: plugins/rodi.rtp:192 +#.TRANS: a musical note consisting of pitch and duration +msgid "note" msgstr "" -#: js/PitchBlocks.js:437 -msgid "solfege class" +#: js/blocks/RhythmBlocks.js:1130 +msgid "value2" msgstr "" -#: js/PitchBlocks.js:438 -msgid "staff y" +#: js/blocks/RhythmBlocks.js:1200 +msgid "define frequency" msgstr "" -#: js/PitchBlocks.js:439 -msgid "solfege syllable" +#: js/blocks/RhythmBlocks.js:1218 +#: js/widgets/temperament.js:787 +#: js/widgets/temperament.js:1587 +msgid "octave space" msgstr "" -#: js/PitchBlocks.js:440 -msgid "pitch class" +#: js/blocks/SensorsBlocks.js:36 +msgid "The Input block prompts for keyboard input." msgstr "" -#: js/PitchBlocks.js:441 -msgid "scalar class" +#: js/blocks/SensorsBlocks.js:46 +msgid "input" msgstr "" -#: js/PitchBlocks.js:443 -msgid "nth degree" +#: js/blocks/SensorsBlocks.js:64 +msgid "Input a value" msgstr "" -#: js/PitchBlocks.js:444 -msgid "pitch to shade" +#: js/blocks/SensorsBlocks.js:126 +msgid "input value" msgstr "" -#: js/PitchBlocks.js:445 -msgid "pitch to color" +#: js/blocks/SensorsBlocks.js:131 +msgid "The Input-value block stores the input." msgstr "" -#: js/PitchBlocks.js:629 -#: js/musickeyboard.js:565 -#.TRANS: MIDI is a technical standard for electronic music -msgid "MIDI" +#: js/blocks/SensorsBlocks.js:238 +msgid "loudness" msgstr "" -#: js/PitchBlocks.js:642 -#.TRANS: set an offset associated with the numeric piano keyboard mapping -msgid "set pitch number offset" +#: js/blocks/SensorsBlocks.js:245 +msgid "The Loudness block returns the volume detected by the microphone." msgstr "" -#: js/PitchBlocks.js:645 -msgid "The Set pitch number offset block is used to set the offset for mapping pitch numbers to pitch and octave." +#: js/blocks/SensorsBlocks.js:300 +msgid "click" msgstr "" -#: js/PitchBlocks.js:679 -#.TRANS: convert piano key number (1-88) to pitch -msgid "number to pitch" +#: js/blocks/SensorsBlocks.js:306 +msgid "The Click block triggers an event if a mouse has been clicked." msgstr "" -#: js/PitchBlocks.js:682 -msgid "The Number to pitch block will convert a pitch number to a pich name." +#: js/blocks/SensorsBlocks.js:313 +msgid "The Click block triggers an event if a turtle has been clicked." msgstr "" -#: js/PitchBlocks.js:715 -#.TRANS: convert piano key number (1-88) to octave -msgid "number to octave" +#: js/blocks/SensorsBlocks.js:342 +msgid "cursor over" msgstr "" -#: js/PitchBlocks.js:717 -msgid "The Number to octave block will convert a pitch number to an octave." +#: js/blocks/SensorsBlocks.js:387 +msgid "cursor out" msgstr "" -#: js/PitchBlocks.js:726 -msgid "y to pitch" +#: js/blocks/SensorsBlocks.js:433 +msgid "cursor button down" msgstr "" -#: js/PitchBlocks.js:729 -msgid "Y to pitch block will convert a staff y position to corresponding pitch notation." +#: js/blocks/SensorsBlocks.js:477 +msgid "cursor button up" msgstr "" -#: js/PitchBlocks.js:841 -msgid "accidental selector" +#: js/blocks/SensorsBlocks.js:521 +#: js/blocks/PenBlocks.js:48 +#: plugins/rodi.rtp:219 +msgid "blue" msgstr "" -#: js/PitchBlocks.js:844 -msgid "The Accidental selector block is used to choose between double-sharp, sharp, natural, flat, and double-flat." +#: js/blocks/SensorsBlocks.js:577 +#: js/blocks/PenBlocks.js:64 +#: plugins/rodi.rtp:218 +msgid "green" msgstr "" -#: js/PitchBlocks.js:858 -msgid "Pitch can be specified in terms of ni dha pa ma ga re sa." +#: js/blocks/SensorsBlocks.js:633 +#: js/blocks/PenBlocks.js:112 +#: plugins/rodi.rtp:217 +msgid "red" msgstr "" -#: js/PitchBlocks.js:872 -msgid "Pitch can be specified in terms of C D E F G A B." +#: js/blocks/SensorsBlocks.js:638 +msgid "The Get red block returns the red component of the pixel under the mouse." msgstr "" -#: js/PitchBlocks.js:883 -msgid "solfege" +#: js/blocks/SensorsBlocks.js:644 +msgid "The Get red block returns the red component of the pixel under the turtle." msgstr "" -#: js/PitchBlocks.js:886 -msgid "Pitch can be specified in terms of do re mi fa sol la ti." +#: js/blocks/SensorsBlocks.js:685 +#: plugins/rodi.rtp:216 +msgid "pixel color" msgstr "" -#: js/PitchBlocks.js:920 -msgid "The Invert block rotates any contained notes around a target note." +#: js/blocks/SensorsBlocks.js:690 +msgid "The Get pixel block returns the color of the pixel under the mouse." msgstr "" -#: js/PitchBlocks.js:927 -#.TRANS: pitch inversion rotates a pitch around another pitch -msgid "invert" +#: js/blocks/SensorsBlocks.js:696 +msgid "The Get pixel block returns the color of the pixel under the turtle." msgstr "" -#: js/PitchBlocks.js:929 -#: js/PitchBlocks.js:935 -#: js/PitchActions.js:727 -#: js/musicutils.js:726 -#: js/musicutils.js:902 -#.TRANS: invert based on even or odd number or musical scale -#.TRANS: even numbers -msgid "even" +#: js/blocks/SensorsBlocks.js:758 +msgid "time" msgstr "" -#: js/PitchBlocks.js:935 -#: js/PitchActions.js:729 -#: js/musicutils.js:728 -#: js/musicutils.js:903 -#.TRANS: odd numbers -msgid "odd" +#: js/blocks/SensorsBlocks.js:804 +msgid "cursor y" msgstr "" -#: js/PitchBlocks.js:935 -#: js/PitchActions.js:731 -#: js/musicutils.js:729 -#: js/musicutils.js:904 -msgid "scalar" +#: js/blocks/SensorsBlocks.js:809 +msgid "The Cursor Y block returns the vertical position of the mouse." msgstr "" -#: js/PitchBlocks.js:966 -#.TRANS: pitch inversion rotates a pitch around another pitch (odd number) -msgid "invert (odd)" +#: js/blocks/SensorsBlocks.js:845 +msgid "cursor x" msgstr "" -#: js/PitchBlocks.js:999 -#.TRANS: pitch inversion rotates a pitch around another pitch (even number) -msgid "invert (even)" +#: js/blocks/SensorsBlocks.js:850 +msgid "The Cursor X block returns the horizontal position of the mouse." msgstr "" -#: js/PitchBlocks.js:1020 -#.TRANS: register is the octave of the current pitch -msgid "register" +#: js/blocks/SensorsBlocks.js:886 +msgid "mouse button" msgstr "" -#: js/PitchBlocks.js:1024 -msgid "The Register block provides an easy way to modify the register (octave) of the notes that follow it." +#: js/blocks/SensorsBlocks.js:888 +msgid "The Mouse-button block returns True if the mouse button is pressed." msgstr "" -#: js/PitchBlocks.js:1074 -msgid "The Semi-tone transposition block will shift the pitches contained inside Note blocks up (or down) by half steps." +#: js/blocks/SensorsBlocks.js:934 +msgid "to ASCII" msgstr "" -#: js/PitchBlocks.js:1076 -msgid "In the example shown above, sol is shifted up to sol#." +#: js/blocks/SensorsBlocks.js:938 +msgid "The To ASCII block converts numbers to letters." msgstr "" -#: js/PitchBlocks.js:1082 -#.TRANS: adjust the amount of shift (up or down) of a pitch -msgid "semi-tone transpose" +#: js/blocks/SensorsBlocks.js:1005 +msgid "The Keyboard block returns computer keyboard input." msgstr "" -#: js/PitchBlocks.js:1115 -msgid "The Transpose by Ratio block will shift the pitches contained inside Note blocks up (or down) by a ratio" +#: js/blocks/RhythmBlockPaletteBlocks.js:50 +#: js/blocks/RhythmBlockPaletteBlocks.js:233 +#.TRANS: rhythm block +#.TRANS: translate "rhythm1" as rhythm +msgid "rhythm1" msgstr "" -#: js/PitchBlocks.js:1121 -#.TRANS: adjust the amount of shift (up or down) of a pitch -msgid "transpose by ratio" +#: js/blocks/RhythmBlockPaletteBlocks.js:70 +#: js/blocks/RhythmBlockPaletteBlocks.js:252 +#: js/blocks/RhythmBlockPaletteBlocks.js:485 +#: js/blocks/RhythmBlockPaletteBlocks.js:554 +#: js/blocks/RhythmBlockPaletteBlocks.js:875 +msgid "number of notes" msgstr "" -#: js/PitchBlocks.js:1204 -#.TRANS: down sixth means the note is five scale degrees below current note -msgid "down sixth" +#: js/blocks/RhythmBlockPaletteBlocks.js:126 +msgid "polyphonic rhythm" msgstr "" -#: js/PitchBlocks.js:1223 -#.TRANS: down third means the note is two scale degrees below current note -msgid "down third" +#: js/blocks/RhythmBlockPaletteBlocks.js:219 +msgid "The Rhythm block is used to generate rhythm patterns." msgstr "" -#: js/PitchBlocks.js:1242 -#.TRANS: seventh means the note is the six scale degrees above current note -msgid "seventh" +#: js/blocks/RhythmBlockPaletteBlocks.js:280 +msgid "1/64 note" msgstr "" -#: js/PitchBlocks.js:1261 -#.TRANS: sixth means the note is the five scale degrees above current note -msgid "sixth" +#: js/blocks/RhythmBlockPaletteBlocks.js:304 +msgid "1/32 note" msgstr "" -#: js/PitchBlocks.js:1280 -#.TRANS: fifth means the note is the four scale degrees above current note -msgid "fifth" +#: js/blocks/RhythmBlockPaletteBlocks.js:332 +msgid "1/16 note" msgstr "" -#: js/PitchBlocks.js:1300 -#.TRANS: fourth means the note is three scale degrees above current note -msgid "fourth" +#: js/blocks/RhythmBlockPaletteBlocks.js:360 +msgid "eighth note" msgstr "" -#: js/PitchBlocks.js:1319 -#.TRANS: third means the note is two scale degrees above current note -msgid "third" +#: js/blocks/RhythmBlockPaletteBlocks.js:388 +msgid "quarter note" msgstr "" -#: js/PitchBlocks.js:1338 -#.TRANS: second means the note is one scale degree above current note -msgid "second" +#: js/blocks/RhythmBlockPaletteBlocks.js:416 +msgid "half note" msgstr "" -#: js/PitchBlocks.js:1379 -msgid "The Scalar transposition block will shift the pitches contained inside Note blocks up (or down) the scale." +#: js/blocks/RhythmBlockPaletteBlocks.js:444 +msgid "whole note" msgstr "" -#: js/PitchBlocks.js:1381 -msgid "In the example shown above, sol is shifted up to la." +#: js/blocks/RhythmBlockPaletteBlocks.js:482 +#: js/blocks/RhythmBlockPaletteBlocks.js:551 +#: js/blocks/RhythmBlockPaletteBlocks.js:602 +#.TRANS: A tuplet is a note value divided into irregular time values. +msgid "tuplet" msgstr "" -#: js/PitchBlocks.js:1388 -#.TRANS: adjust the amount of shift (up or down) of a pitch by musical scale (scalar) steps -msgid "scalar transpose" +#: js/blocks/RhythmBlockPaletteBlocks.js:768 +msgid "septuplet" msgstr "" -#: js/PitchBlocks.js:1423 -msgid "The Accidental block is used to create sharps and flats" +#: js/blocks/RhythmBlockPaletteBlocks.js:796 +msgid "quintuplet" msgstr "" -#: js/PitchBlocks.js:1430 -#.TRANS: An accidental is a modification to a pitch, e.g., sharp or flat. -msgid "accidental override" +#: js/blocks/RhythmBlockPaletteBlocks.js:824 +msgid "triplet" msgstr "" -#: js/PitchBlocks.js:1543 -msgid "The Hertz block (in combination with a Number block) will play a sound at the specified frequency." +#: js/blocks/RhythmBlockPaletteBlocks.js:851 +msgid "simple tuplet" msgstr "" -#: js/PitchBlocks.js:1633 -msgid "The Pitch Number block will play a pitch associated by its number, e.g. 0 for C and 7 for G." +#: js/blocks/RhythmBlockPaletteBlocks.js:861 +msgid "Tuplets are a collection of notes that get scaled to a specific duration." msgstr "" -#: js/PitchBlocks.js:1665 -#: js/PitchBlocks.js:1707 -#.TRANS: a numeric mapping of the notes in an octave based on the musical mode -#.TRANS: a numeric mapping of the notes in an octave based on the musical mode -msgid "nth modal pitch" +#: js/blocks/DrumBlocks.js:59 +msgid "The Noise name block is used to select a noise synthesizer." msgstr "" -#: js/PitchBlocks.js:1668 -msgid "n^th Modal Pitch takes the pattern of pitches in semitones for a mode and makes each point a degree of the mode," +#: js/blocks/DrumBlocks.js:102 +msgid "The Drum name block is used to select a drum." msgstr "" -#: js/PitchBlocks.js:1670 -msgid "starting from 1 and regardless of tonal framework (i.e. not always 8 notes in the octave)" +#: js/blocks/DrumBlocks.js:146 +msgid "The Effects name block is used to select a sound effect." msgstr "" -#: js/PitchBlocks.js:1711 -msgid "N^th Modal Pitch takes a number as an input as the n^th degree for the given mode. 0 is the first position, 1 is the second, -1 is the note before the first etc." +#: js/blocks/DrumBlocks.js:163 +msgid "noise" msgstr "" -#: js/PitchBlocks.js:1713 -msgid "The pitches change according to the mode specified without any need for respellings." +#: js/blocks/DrumBlocks.js:177 +msgid "The Play noise block will generate white, pink, or brown noise." msgstr "" -#: js/PitchBlocks.js:1752 -msgid "Scale Degree is a common convention in music. Scale Degree offers seven possible positions in the scale (1-7) and can be modified via accidentals." +#: js/blocks/DrumBlocks.js:317 +msgid "Replace every instance of a pitch with a drum sound." msgstr "" -#: js/PitchBlocks.js:1754 -msgid "Scale Degree 1 is always the first pitch in a given scale, regardless of octave." +#: js/blocks/DrumBlocks.js:328 +#.TRANS: map a pitch to a drum sound +msgid "map pitch to drum" msgstr "" -#: js/PitchBlocks.js:1776 -#.TRANS: step some number of notes in current musical scale -msgid "scalar step" +#: js/blocks/DrumBlocks.js:395 +msgid "In the example above, a kick drum sound will be played instead of sol." msgstr "" -#: js/PitchBlocks.js:1781 -msgid "The Scalar Step block (in combination with a Number block) will play the next pitch in a scale," +#: js/blocks/DrumBlocks.js:407 +#.TRANS: set the current drum sound for playback +msgid "set drum" msgstr "" -#: js/PitchBlocks.js:1783 -msgid "eg if the last note played was sol, Scalar Step 1 will play la." +#: js/blocks/DrumBlocks.js:451 +msgid "sound effect" msgstr "" -#: js/PitchBlocks.js:1818 -msgid "The Pitch block specifies the pitch name and octave of a note that together determine the frequency of the note." +#: js/blocks/DrumBlocks.js:489 +msgid "You can use multiple Drum blocks within a Note block." msgstr "" -#: js/GraphicsBlocks.js:46 -#: js/DictActions.js:77 -#: js/DictActions.js:155 -#: js/DictActions.js:189 +#: js/blocks/GraphicsBlocks.js:46 +#: js/turtleactions/DictActions.js:77 +#: js/turtleactions/DictActions.js:144 +#: js/turtleactions/DictActions.js:173 msgid "heading" msgstr "riktning" -#: js/GraphicsBlocks.js:56 +#: js/blocks/GraphicsBlocks.js:56 msgid "The Heading block returns the orientation of the mouse." msgstr "" -#: js/GraphicsBlocks.js:62 +#: js/blocks/GraphicsBlocks.js:62 msgid "The Heading block returns the orientation of the turtle." msgstr "" -#: js/GraphicsBlocks.js:133 +#: js/blocks/GraphicsBlocks.js:133 msgid "The Y block returns the vertical position of the mouse." msgstr "" -#: js/GraphicsBlocks.js:140 +#: js/blocks/GraphicsBlocks.js:140 msgid "The Y block returns the vertical position of the turtle." msgstr "" -#: js/GraphicsBlocks.js:149 +#: js/blocks/GraphicsBlocks.js:149 msgid "y3" msgstr "" -#: js/GraphicsBlocks.js:219 +#: js/blocks/GraphicsBlocks.js:219 msgid "The X block returns the horizontal position of the mouse." msgstr "" -#: js/GraphicsBlocks.js:226 +#: js/blocks/GraphicsBlocks.js:226 msgid "The X block returns the horizontal position of the turtle." msgstr "" -#: js/GraphicsBlocks.js:235 +#: js/blocks/GraphicsBlocks.js:235 msgid "x3" msgstr "" -#: js/GraphicsBlocks.js:295 +#: js/blocks/GraphicsBlocks.js:295 msgid "scroll xy" msgstr "" -#: js/GraphicsBlocks.js:303 +#: js/blocks/GraphicsBlocks.js:303 msgid "The Scroll XY block moves the canvas." msgstr "" -#: js/GraphicsBlocks.js:313 +#: js/blocks/GraphicsBlocks.js:313 msgid "x2" msgstr "" -#: js/GraphicsBlocks.js:313 +#: js/blocks/GraphicsBlocks.js:313 msgid "y2" msgstr "" -#: js/GraphicsBlocks.js:373 -#: js/temperament.js:213 -#: js/temperament.js:241 +#: js/blocks/GraphicsBlocks.js:373 +#: js/widgets/temperament.js:319 +#: js/widgets/temperament.js:347 msgid "clear" msgstr "" -#: js/GraphicsBlocks.js:426 +#: js/blocks/GraphicsBlocks.js:426 msgid "The Control-point 2 block sets the second control point for the Bezier curve." msgstr "" -#: js/GraphicsBlocks.js:433 +#: js/blocks/GraphicsBlocks.js:433 msgid "control point 2" msgstr "" -#: js/GraphicsBlocks.js:436 -#: js/GraphicsBlocks.js:487 -#: js/GraphicsBlocks.js:534 -#: js/GraphicsBlocks.js:750 +#: js/blocks/GraphicsBlocks.js:436 +#: js/blocks/GraphicsBlocks.js:487 +#: js/blocks/GraphicsBlocks.js:534 +#: js/blocks/GraphicsBlocks.js:750 msgid "x1" msgstr "" -#: js/GraphicsBlocks.js:436 -#: js/GraphicsBlocks.js:487 -#: js/GraphicsBlocks.js:534 -#: js/GraphicsBlocks.js:750 +#: js/blocks/GraphicsBlocks.js:436 +#: js/blocks/GraphicsBlocks.js:487 +#: js/blocks/GraphicsBlocks.js:534 +#: js/blocks/GraphicsBlocks.js:750 msgid "y1" msgstr "" -#: js/GraphicsBlocks.js:477 +#: js/blocks/GraphicsBlocks.js:477 msgid "The Control-point 1 block sets the first control point for the Bezier curve." msgstr "" -#: js/GraphicsBlocks.js:484 +#: js/blocks/GraphicsBlocks.js:484 msgid "control point 1" msgstr "" -#: js/GraphicsBlocks.js:527 +#: js/blocks/GraphicsBlocks.js:527 msgid "The Bezier block draws a Bezier curve." msgstr "" -#: js/GraphicsBlocks.js:531 +#: js/blocks/GraphicsBlocks.js:531 msgid "bezier" msgstr "" -#: js/GraphicsBlocks.js:592 +#: js/blocks/GraphicsBlocks.js:592 msgid "The Arc block moves the turtle in an arc." msgstr "" -#: js/GraphicsBlocks.js:600 +#: js/blocks/GraphicsBlocks.js:600 msgid "arc" msgstr "cirkelbåge" -#: js/GraphicsBlocks.js:603 +#: js/blocks/GraphicsBlocks.js:603 msgid "angle" msgstr "vinkel" -#: js/GraphicsBlocks.js:603 +#: js/blocks/GraphicsBlocks.js:603 msgid "radius" msgstr "radie" -#: js/GraphicsBlocks.js:620 -#: js/GraphicsBlocks.js:767 -#: js/GraphicsBlocks.js:1010 -#: js/GraphicsBlocks.js:1093 +#: js/blocks/GraphicsBlocks.js:620 +#: js/blocks/GraphicsBlocks.js:767 +#: js/blocks/GraphicsBlocks.js:1010 +#: js/blocks/GraphicsBlocks.js:1093 msgid "Value must be within -5000 to 5000 when Wrap Mode is off." msgstr "" -#: js/GraphicsBlocks.js:622 -#: js/GraphicsBlocks.js:769 -#: js/GraphicsBlocks.js:1012 -#: js/GraphicsBlocks.js:1095 +#: js/blocks/GraphicsBlocks.js:622 +#: js/blocks/GraphicsBlocks.js:769 +#: js/blocks/GraphicsBlocks.js:1012 +#: js/blocks/GraphicsBlocks.js:1095 msgid "Value must be within -20000 to 20000 when Wrap Mode is on." msgstr "" -#: js/GraphicsBlocks.js:660 +#: js/blocks/GraphicsBlocks.js:660 msgid "set heading" msgstr "ange riktning" -#: js/GraphicsBlocks.js:673 +#: js/blocks/GraphicsBlocks.js:673 msgid "The Set heading block sets the heading of the turtle." msgstr "" -#: js/GraphicsBlocks.js:733 +#: js/blocks/GraphicsBlocks.js:733 msgid "The Set XY block moves the mouse to a specific position on the screen." msgstr "" -#: js/GraphicsBlocks.js:739 +#: js/blocks/GraphicsBlocks.js:739 msgid "The Set XY block moves the turtle to a specific position on the screen." msgstr "" -#: js/GraphicsBlocks.js:747 +#: js/blocks/GraphicsBlocks.js:747 msgid "set xy" msgstr "ange x,y" -#: js/GraphicsBlocks.js:819 +#: js/blocks/GraphicsBlocks.js:819 msgid "The Right block turns the mouse to the right." msgstr "" -#: js/GraphicsBlocks.js:826 +#: js/blocks/GraphicsBlocks.js:826 msgid "The Right block turns the turtle to the right." msgstr "" -#: js/GraphicsBlocks.js:835 +#: js/blocks/GraphicsBlocks.js:835 msgid "right1" msgstr "" -#: js/GraphicsBlocks.js:835 +#: js/blocks/GraphicsBlocks.js:835 #: plugins/rodi.rtp:77 #: plugins/rodi.rtp:340 #: plugins/rodi.rtp:375 msgid "right" msgstr "höger" -#: js/GraphicsBlocks.js:899 +#: js/blocks/GraphicsBlocks.js:899 msgid "The Left block turns the mouse to the left." msgstr "" -#: js/GraphicsBlocks.js:906 +#: js/blocks/GraphicsBlocks.js:906 msgid "The Left block turns the turtle to the left." msgstr "" -#: js/GraphicsBlocks.js:915 +#: js/blocks/GraphicsBlocks.js:915 msgid "left1" msgstr "" -#: js/GraphicsBlocks.js:915 +#: js/blocks/GraphicsBlocks.js:915 #: plugins/rodi.rtp:79 #: plugins/rodi.rtp:339 #: plugins/rodi.rtp:362 msgid "left" msgstr "vänster" -#: js/GraphicsBlocks.js:967 -#: js/temperament.js:734 -#: js/temperament.js:933 +#: js/blocks/GraphicsBlocks.js:967 +#: js/widgets/temperament.js:875 +#: js/widgets/temperament.js:1078 #: plugins/rodi.rtp:69 #: plugins/rodi.rtp:387 msgid "back" msgstr "tillbaka" -#: js/GraphicsBlocks.js:976 +#: js/blocks/GraphicsBlocks.js:976 msgid "The Back block moves the mouse backward." msgstr "" -#: js/GraphicsBlocks.js:983 +#: js/blocks/GraphicsBlocks.js:983 msgid "The Back block moves the turtle backward." msgstr "" -#: js/GraphicsBlocks.js:1050 +#: js/blocks/GraphicsBlocks.js:1050 #: plugins/rodi.rtp:71 #: plugins/rodi.rtp:400 msgid "forward" msgstr "framåt" -#: js/GraphicsBlocks.js:1059 +#: js/blocks/GraphicsBlocks.js:1059 msgid "The Forward block moves the mouse forward." msgstr "" -#: js/GraphicsBlocks.js:1066 +#: js/blocks/GraphicsBlocks.js:1066 msgid "The Forward block moves the turtle forward." msgstr "" -#: js/GraphicsBlocks.js:1154 -#: js/GraphicsBlocks.js:1172 +#: js/blocks/GraphicsBlocks.js:1154 +#: js/blocks/GraphicsBlocks.js:1172 msgid "wrap" msgstr "" -#: js/OrnamentBlocks.js:32 -msgid "staccato factor" -msgstr "" - -#: js/OrnamentBlocks.js:108 -msgid "slur factor" -msgstr "" - -#: js/OrnamentBlocks.js:217 -#: js/OrnamentBlocks.js:309 -#.TRANS: the neighbor refers to a neighboring note, e.g., D is a neighbor of C -msgid "neighbor" -msgstr "" - -#: js/OrnamentBlocks.js:293 -msgid "The Neighbor block rapidly switches between neighboring pitches." -msgstr "" - -#: js/OrnamentBlocks.js:364 -msgid "glide" -msgstr "" - -#: js/OrnamentBlocks.js:479 -#: js/OrnamentBlocks.js:643 -msgid "slur" -msgstr "" - -#: js/OrnamentBlocks.js:558 -#: js/OrnamentBlocks.js:710 -#.TRANS: play each note sharply detached from the others -msgid "staccato" -msgstr "" - -#: js/PenBlocks.js:24 +#: js/blocks/PenBlocks.js:30 msgid "purple" msgstr "" -#: js/PenBlocks.js:37 -#: js/SensorsBlocks.js:521 -#: plugins/rodi.rtp:219 -msgid "blue" -msgstr "" - -#: js/PenBlocks.js:50 -#: js/SensorsBlocks.js:577 -#: plugins/rodi.rtp:218 -msgid "green" -msgstr "" - -#: js/PenBlocks.js:63 +#: js/blocks/PenBlocks.js:80 msgid "yellow" msgstr "" -#: js/PenBlocks.js:76 +#: js/blocks/PenBlocks.js:96 #: plugins/nutrition.rtp:164 msgid "orange" msgstr "" -#: js/PenBlocks.js:89 -#: js/SensorsBlocks.js:633 -#: plugins/rodi.rtp:217 -msgid "red" -msgstr "" - -#: js/PenBlocks.js:102 +#: js/blocks/PenBlocks.js:128 msgid "white" msgstr "" -#: js/PenBlocks.js:115 +#: js/blocks/PenBlocks.js:144 msgid "black" msgstr "" -#: js/PenBlocks.js:128 +#: js/blocks/PenBlocks.js:163 msgid "begin fill" msgstr "" -#: js/PenBlocks.js:143 +#: js/blocks/PenBlocks.js:190 msgid "end fill" msgstr "" -#: js/PenBlocks.js:159 -#: js/PenBlocks.js:386 +#: js/blocks/PenBlocks.js:212 +#: js/blocks/PenBlocks.js:560 #.TRANS: set the background color msgid "background" msgstr "" -#: js/PenBlocks.js:206 -#: js/DictActions.js:71 -#: js/DictActions.js:149 -#: js/DictActions.js:186 +#: js/blocks/PenBlocks.js:274 +#: js/turtleactions/DictActions.js:71 +#: js/turtleactions/DictActions.js:138 +#: js/turtleactions/DictActions.js:170 msgid "grey" msgstr "" -#: js/PenBlocks.js:210 +#: js/blocks/PenBlocks.js:282 msgid "The Grey block returns the current pen grey value." msgstr "" -#: js/PenBlocks.js:243 -#: js/DictActions.js:69 -#: js/DictActions.js:147 -#: js/DictActions.js:185 +#: js/blocks/PenBlocks.js:340 +#: js/turtleactions/DictActions.js:69 +#: js/turtleactions/DictActions.js:136 +#: js/turtleactions/DictActions.js:169 msgid "shade" msgstr "skugga" -#: js/PenBlocks.js:247 +#: js/blocks/PenBlocks.js:347 msgid "The Shade block returns the current pen shade value." msgstr "" -#: js/PenBlocks.js:280 -#: js/DictActions.js:67 -#: js/DictActions.js:145 -#: js/DictActions.js:184 +#: js/blocks/PenBlocks.js:405 +#: js/turtleactions/DictActions.js:67 +#: js/turtleactions/DictActions.js:134 +#: js/turtleactions/DictActions.js:168 msgid "color" msgstr "färg" -#: js/PenBlocks.js:285 +#: js/blocks/PenBlocks.js:415 msgid "The Color block returns the current pen color." msgstr "" -#: js/PenBlocks.js:318 -#: js/DictActions.js:73 -#: js/DictActions.js:151 -#: js/DictActions.js:187 +#: js/blocks/PenBlocks.js:470 +#: js/turtleactions/DictActions.js:73 +#: js/turtleactions/DictActions.js:140 +#: js/turtleactions/DictActions.js:171 msgid "pen size" msgstr "pennstorlek" -#: js/PenBlocks.js:322 +#: js/blocks/PenBlocks.js:474 msgid "The Pen size block returns the current pen size value." msgstr "" -#: js/PenBlocks.js:355 +#: js/blocks/PenBlocks.js:513 msgid "set font" msgstr "" -#: js/PenBlocks.js:358 +#: js/blocks/PenBlocks.js:518 msgid "The Set font block sets the font used by the Show block." msgstr "" -#: js/PenBlocks.js:391 +#: js/blocks/PenBlocks.js:567 msgid "The Background block sets the window background color." msgstr "" -#: js/PenBlocks.js:408 +#: js/blocks/PenBlocks.js:598 msgid "The Hollow line block creates a line with a hollow center." msgstr "" -#: js/PenBlocks.js:415 +#: js/blocks/PenBlocks.js:606 #.TRANS: draw a line logo has a hollow space down its center msgid "hollow line" msgstr "" -#: js/PenBlocks.js:462 +#: js/blocks/PenBlocks.js:675 msgid "The Fill block fills in a shape with a color." msgstr "" -#: js/PenBlocks.js:470 +#: js/blocks/PenBlocks.js:684 #.TRANS: fill in as a solid color msgid "fill" msgstr "" -#: js/PenBlocks.js:527 +#: js/blocks/PenBlocks.js:761 #.TRANS: raise up the pen so logo it does not draw when it is moved msgid "pen up" msgstr "Ta upp penna" -#: js/PenBlocks.js:532 +#: js/blocks/PenBlocks.js:768 msgid "The Pen-up block raises the pen so that it does not draw." msgstr "" -#: js/PenBlocks.js:552 +#: js/blocks/PenBlocks.js:802 #.TRANS: put down the pen so logo it draws when it is moved msgid "pen down" msgstr "Sätt ned penna" -#: js/PenBlocks.js:557 +#: js/blocks/PenBlocks.js:810 msgid "The Pen-down block lowers the pen so that it draws." msgstr "" -#: js/PenBlocks.js:577 +#: js/blocks/PenBlocks.js:844 #.TRANS: set the width of the line drawn by the pen msgid "set pen size" msgstr "Ange pennstorlek" -#: js/PenBlocks.js:583 +#: js/blocks/PenBlocks.js:854 msgid "The Set-pen-size block changes the size of the pen." msgstr "" -#: js/PenBlocks.js:623 +#: js/blocks/PenBlocks.js:913 #.TRANS: set degree of translucence of the pen color msgid "set translucency" msgstr "" -#: js/PenBlocks.js:627 +#: js/blocks/PenBlocks.js:921 msgid "The Set translucency block changes the opacity of the pen." msgstr "" -#: js/PenBlocks.js:668 +#: js/blocks/PenBlocks.js:981 msgid "set hue" msgstr "" -#: js/PenBlocks.js:672 +#: js/blocks/PenBlocks.js:989 msgid "The Set hue block changes the color of the pen." msgstr "" -#: js/PenBlocks.js:711 +#: js/blocks/PenBlocks.js:1047 msgid "set shade" msgstr "Ange skugga" -#: js/PenBlocks.js:717 +#: js/blocks/PenBlocks.js:1057 msgid "The Set-shade block changes the pen color from dark to light." msgstr "" -#: js/PenBlocks.js:757 +#: js/blocks/PenBlocks.js:1111 #.TRANS: set the level of vividness of the pen color msgid "set grey" msgstr "" -#: js/PenBlocks.js:761 +#: js/blocks/PenBlocks.js:1119 msgid "The Set grey block changes the vividness of the pen color." msgstr "" -#: js/PenBlocks.js:800 +#: js/blocks/PenBlocks.js:1172 msgid "set color" msgstr "ange färg" -#: js/PenBlocks.js:806 +#: js/blocks/PenBlocks.js:1182 msgid "The Set-color block changes the pen color." msgstr "" -#: js/VolumeBlocks.js:35 -msgid "synth volume" -msgstr "" - -#: js/VolumeBlocks.js:39 -msgid "The Synth volume block returns the current volume of the current synthesizer." -msgstr "" - -#: js/VolumeBlocks.js:47 -#: js/musicutils.js:730 -#: js/synthutils.js:56 -#.TRANS: musical instrument -msgid "piano" -msgstr "" - -#: js/VolumeBlocks.js:105 -msgid "master volume" -msgstr "" - -#: js/VolumeBlocks.js:109 -msgid "The Master volume block returns the master volume." -msgstr "" - -#: js/VolumeBlocks.js:355 -#: js/VolumeBlocks.js:524 -msgid "set synth volume" -msgstr "" - -#: js/VolumeBlocks.js:362 -#: js/VolumeBlocks.js:545 -msgid "synth" -msgstr "" - -#: js/VolumeBlocks.js:403 -#: js/VolumeBlocks.js:577 -#: js/VolumeBlocks.js:740 -#: js/VolumeActions.js:173 -msgid "Setting volume to 0." -msgstr "" - -#: js/VolumeBlocks.js:440 -msgid "Synth not found" -msgstr "" - -#: js/VolumeBlocks.js:494 -msgid "set drum volume" -msgstr "" - -#: js/VolumeBlocks.js:530 -msgid "The Set synth volume block will change the volume of a particular synth," -msgstr "" - -#: js/VolumeBlocks.js:532 -msgid "eg guitar violin snare drum etc." -msgstr "" - -#: js/VolumeBlocks.js:534 -msgid "The default volume is 50." -msgstr "" - -#: js/VolumeBlocks.js:536 -msgid "The range is 0 for silence to 100 for full volume." -msgstr "" - -#: js/VolumeBlocks.js:597 -msgid "set panning" -msgstr "" - -#: js/VolumeBlocks.js:603 -msgid "The Set Panning block sets the panning for all synthesizers." -msgstr "" - -#: js/VolumeBlocks.js:625 -msgid "Warning: Sound is coming out from only the left or right side." -msgstr "" - -#: js/VolumeBlocks.js:647 -#: js/VolumeBlocks.js:695 -msgid "set master volume" -msgstr "" - -#: js/VolumeBlocks.js:653 -msgid "The Set master volume block sets the volume for all synthesizers." -msgstr "" - -#: js/VolumeBlocks.js:784 -msgid "The Set relative volume block changes the volume of the contained notes." -msgstr "" - -#: js/VolumeBlocks.js:791 -msgid "set relative volume" -msgstr "" - -#: js/VolumeBlocks.js:857 -msgid "decrescendo" -msgstr "" - -#: js/VolumeBlocks.js:921 -msgid "crescendo" -msgstr "" - -#: js/ToneBlocks.js:34 -msgid "oscillator" -msgstr "" - -#: js/ToneBlocks.js:44 -#: js/timbre.js:1562 -#.TRANS: Partials refers to the number of sine waves combined into the sound. -msgid "partials" -msgstr "" - -#: js/ToneBlocks.js:76 -msgid "You are adding multiple oscillator blocks." -msgstr "" - -#: js/ToneBlocks.js:144 -#: js/timbre.js:1225 -#.TRANS: a duo synthesizer combines a synth with a sequencer -msgid "duo synth" -msgstr "" - -#: js/ToneBlocks.js:149 -msgid "The Duo synth block is a duo-frequency modulator used to define a timbre." -msgstr "" - -#: js/ToneBlocks.js:157 -#: js/timbre.js:1476 -msgid "vibrato rate" -msgstr "" - -#: js/ToneBlocks.js:157 -msgid "vibrato intensity" -msgstr "" - -#: js/ToneBlocks.js:185 -#: js/timbre.js:1221 -#.TRANS: AM (amplitude modulation) synthesizer -msgid "AM synth" -msgstr "" - -#: js/ToneBlocks.js:189 -msgid "The AM synth block is an amplitude modulator used to define a timbre." -msgstr "" - -#: js/ToneBlocks.js:224 -#: js/timbre.js:1223 -#.TRANS: FM (frequency modulation) synthesizer -msgid "FM synth" -msgstr "" - -#: js/ToneBlocks.js:228 -msgid "The FM synth block is a frequency modulator used to define a timbre." +#: js/blocks/PitchBlocks.js:141 +#.TRANS: musical transposition (adjustment of pitch up or down) +msgid "transposition" msgstr "" -#: js/ToneBlocks.js:262 -msgid "partial" +#: js/blocks/PitchBlocks.js:168 +#.TRANS: step down one note in current musical scale +msgid "scalar step down" msgstr "" -#: js/ToneBlocks.js:265 -msgid "The Partial block is used to specify a weight for a specific partial harmonic." +#: js/blocks/PitchBlocks.js:172 +msgid "The Scalar step down block returns the number of semi-tones down to the previous note in the current key and mode." msgstr "" -#: js/ToneBlocks.js:284 -#.TRANS: partials are weighted components in a harmonic series -msgid "Partial weight must be between 0 and 1." +#: js/blocks/PitchBlocks.js:190 +#.TRANS: step up one note in current musical scale +msgid "scalar step up" msgstr "" -#: js/ToneBlocks.js:297 -#.TRANS: partials are weighted components in a harmonic series -msgid "Partial block should be used inside of a Weighted-partials block." +#: js/blocks/PitchBlocks.js:194 +msgid "The Scalar step up block returns the number of semi-tones up to the next note in the current key and mode." msgstr "" -#: js/ToneBlocks.js:325 -#.TRANS: partials are weighted components in a harmonic series -msgid "weighted partials" +#: js/blocks/PitchBlocks.js:212 +#.TRANS: the change measured in half-steps between the current pitch and the previous pitch +msgid "change in pitch" msgstr "" -#: js/ToneBlocks.js:383 -msgid "The Harmonic block will add harmonics to the contained notes." +#: js/blocks/PitchBlocks.js:216 +msgid "The Change in pitch block is the difference (in half steps) between the current pitch being played and the previous pitch played." msgstr "" -#: js/ToneBlocks.js:390 -#.TRANS: A harmonic is an overtone. -msgid "harmonic" +#: js/blocks/PitchBlocks.js:243 +#.TRANS: the change measured in scale-steps between the current pitch and the previous pitch +msgid "scalar change in pitch" msgstr "" -#: js/ToneBlocks.js:431 -msgid "The Distortion block adds distortion to the pitch." +#: js/blocks/PitchBlocks.js:250 +#: js/blocks/PitchBlocks.js:432 +#: js/blocks/PitchBlocks.js:1667 +#: js/turtleactions/DictActions.js:89 +#: js/widgets/temperament.js:610 +#: js/widgets/temperament.js:614 +#: js/widgets/temperament.js:855 +#.TRANS: convert current note to piano key (1-88) +#.TRANS: a mapping of pitch to the 88 piano keys +msgid "pitch number" msgstr "" -#: js/ToneBlocks.js:438 -#: js/timbre.js:2100 -#.TRANS: distortion is an alteration in the sound -msgid "distortion" +#: js/blocks/PitchBlocks.js:256 +msgid "The Pitch number block is the value of the pitch of the note currently being played." msgstr "" -#: js/ToneBlocks.js:487 -msgid "The Tremolo block adds a wavering effect." +#: js/blocks/PitchBlocks.js:329 +#: js/blocks/PitchBlocks.js:433 +#.TRANS: the current pitch expressed in Hertz +msgid "pitch in hertz" msgstr "" -#: js/ToneBlocks.js:495 -#: js/timbre.js:2092 -#.TRANS: a wavering effect in a musical tone -msgid "tremolo" +#: js/blocks/PitchBlocks.js:334 +msgid "The Pitch in Hertz block is the value in Hertz of the pitch of the note currently being played." msgstr "" -#: js/ToneBlocks.js:500 -#: js/ToneBlocks.js:569 -#: js/ToneBlocks.js:630 -#: js/ToneBlocks.js:689 -#: js/timbre.js:2134 -#: js/timbre.js:2222 -#: js/timbre.js:2317 -#: js/timbre.js:2419 -#.TRANS: rate at which tremolo wavers -msgid "rate" +#: js/blocks/PitchBlocks.js:367 +#: js/turtleactions/DictActions.js:87 +msgid "current pitch" msgstr "" -#: js/ToneBlocks.js:502 -#: js/ToneBlocks.js:630 -#: js/timbre.js:2137 -#: js/timbre.js:2328 -#.TRANS: amplitude of tremolo waver -msgid "depth" +#: js/blocks/PitchBlocks.js:373 +msgid "The Current Pitch block is used with the Pitch Converter block. In the example above, current pitch, sol 4, is displayed as 392 hertz." msgstr "" -#: js/ToneBlocks.js:559 -msgid "The Phaser block adds a sweeping sound." +#: js/blocks/PitchBlocks.js:410 +msgid "This block converts the pitch value of the last note played into different formats such as hertz, letter name, pitch number, et al." msgstr "" -#: js/ToneBlocks.js:566 -#: js/timbre.js:2098 -#.TRANS: alter the phase of the sound -msgid "phaser" +#: js/blocks/PitchBlocks.js:434 +msgid "alphabet" msgstr "" -#: js/ToneBlocks.js:569 -#: js/timbre.js:2422 -msgid "octaves" +#: js/blocks/PitchBlocks.js:436 +#.TRANS: Translate as "alphabet class" +msgid "letter class" msgstr "" -#: js/ToneBlocks.js:569 -#: js/timbre.js:2425 -msgid "base frequency" +#: js/blocks/PitchBlocks.js:437 +msgid "solfege class" msgstr "" -#: js/ToneBlocks.js:619 -msgid "The Chorus block adds a chorus effect." +#: js/blocks/PitchBlocks.js:438 +msgid "staff y" msgstr "" -#: js/ToneBlocks.js:627 -#: js/timbre.js:2096 -#.TRANS: musical effect to simulate a choral sound -msgid "chorus" +#: js/blocks/PitchBlocks.js:439 +msgid "solfege syllable" msgstr "" -#: js/ToneBlocks.js:630 -msgid "delay" +#: js/blocks/PitchBlocks.js:440 +msgid "pitch class" msgstr "" -#: js/ToneBlocks.js:678 -msgid "The Vibrato block adds a rapid, slight variation in pitch." +#: js/blocks/PitchBlocks.js:441 +msgid "scalar class" msgstr "" -#: js/ToneBlocks.js:686 -#: js/timbre.js:2094 -#.TRANS: a rapid, slight variation in pitch -msgid "vibrato" +#: js/blocks/PitchBlocks.js:443 +msgid "nth degree" msgstr "" -#: js/ToneBlocks.js:689 -#: js/timbre.js:2221 -msgid "intensity" +#: js/blocks/PitchBlocks.js:444 +msgid "pitch to shade" msgstr "" -#: js/ToneBlocks.js:733 -#.TRANS: select synthesizer -msgid "set synth" +#: js/blocks/PitchBlocks.js:445 +msgid "pitch to color" msgstr "" -#: js/ToneBlocks.js:804 -msgid "synth name" +#: js/blocks/PitchBlocks.js:629 +#: js/widgets/musickeyboard.js:735 +#.TRANS: MIDI is a technical standard for electronic music +msgid "MIDI" msgstr "" -#: js/ToneBlocks.js:842 -msgid "set default instrument" +#: js/blocks/PitchBlocks.js:642 +#.TRANS: set an offset associated with the numeric piano keyboard mapping +msgid "set pitch number offset" msgstr "" -#: js/ToneBlocks.js:895 -#: js/ToneBlocks.js:943 -#.TRANS: set the characteristics of a custom instrument -msgid "set instrument" +#: js/blocks/PitchBlocks.js:645 +msgid "The Set pitch number offset block is used to set the offset for mapping pitch numbers to pitch and octave." msgstr "" -#: js/ToneBlocks.js:898 -#: js/ToneBlocks.js:926 -#: js/ToneBlocks.js:932 -msgid "The Set instrument block selects a voice for the synthesizer," +#: js/blocks/PitchBlocks.js:679 +#.TRANS: convert piano key number (1-88) to pitch +msgid "number to pitch" msgstr "" -#: js/ToneBlocks.js:900 -#: js/ToneBlocks.js:934 -msgid "eg guitar piano violin or cello." +#: js/blocks/PitchBlocks.js:682 +msgid "The Number to pitch block will convert a pitch number to a pich name." msgstr "" -#: js/ToneBlocks.js:1015 -msgid "Import a sound file to use as an instrument and set its pitch center." +#: js/blocks/PitchBlocks.js:715 +#.TRANS: convert piano key number (1-88) to octave +msgid "number to octave" msgstr "" -#: js/ToneBlocks.js:1110 -msgid "Upload a sound file to connect with the sample block." +#: js/blocks/PitchBlocks.js:717 +msgid "The Number to octave block will convert a pitch number to an octave." msgstr "" -#: js/MeterBlocks.js:34 -#.TRANS: musical meter (time signature), e.g., 4:4 -msgid "current meter" +#: js/blocks/PitchBlocks.js:726 +msgid "y to pitch" msgstr "" -#: js/MeterBlocks.js:85 -#.TRANS: number of beats per minute -msgid "beat factor" +#: js/blocks/PitchBlocks.js:729 +msgid "Y to pitch block will convert a staff y position to corresponding pitch notation." msgstr "" -#: js/MeterBlocks.js:161 -msgid "The Beats per minute block returns the current beats per minute." +#: js/blocks/PitchBlocks.js:841 +msgid "accidental selector" msgstr "" -#: js/MeterBlocks.js:169 -#: js/status.js:152 -#.TRANS: number of beats played per minute -msgid "beats per minute2" +#: js/blocks/PitchBlocks.js:844 +msgid "The Accidental selector block is used to choose between double-sharp, sharp, natural, flat, and double-flat." msgstr "" -#: js/MeterBlocks.js:169 -#: js/MeterBlocks.js:1056 -#: js/MeterBlocks.js:1133 -#: js/MeterBlocks.js:1211 -#.TRANS: sets tempo by defining a beat and beats per minute -msgid "beats per minute" +#: js/blocks/PitchBlocks.js:858 +msgid "Pitch can be specified in terms of ni dha pa ma ga re sa." msgstr "" -#: js/MeterBlocks.js:233 -#.TRANS: count of current musical measure in meter -msgid "measure count" +#: js/blocks/PitchBlocks.js:872 +msgid "Pitch can be specified in terms of C D E F G A B." msgstr "" -#: js/MeterBlocks.js:241 -msgid "The Measure count block returns the current measure." +#: js/blocks/PitchBlocks.js:884 +msgid "solfege" msgstr "" -#: js/MeterBlocks.js:290 -#.TRANS: count of current beat in the meter -msgid "beat count" +#: js/blocks/PitchBlocks.js:887 +msgid "Pitch can be specified in terms of do re mi fa sol la ti." msgstr "" -#: js/MeterBlocks.js:300 -#: js/MeterBlocks.js:311 -#: js/MeterBlocks.js:565 -#: js/MeterBlocks.js:576 -msgid "The Beat count block is the number of the current beat," +#: js/blocks/PitchBlocks.js:922 +msgid "The Invert block rotates any contained notes around a target note." msgstr "" -#: js/MeterBlocks.js:313 -#: js/MeterBlocks.js:578 -msgid "eg 1, 2, 3, or 4." +#: js/blocks/PitchBlocks.js:929 +#.TRANS: pitch inversion rotates a pitch around another pitch +msgid "invert" msgstr "" -#: js/MeterBlocks.js:368 -#.TRANS: count the number of notes -msgid "sum note values" +#: js/blocks/PitchBlocks.js:968 +#.TRANS: pitch inversion rotates a pitch around another pitch (odd number) +msgid "invert (odd)" msgstr "" -#: js/MeterBlocks.js:376 -#: js/MeterBlocks.js:440 -msgid "The Note counter block can be used to count the number of contained notes." +#: js/blocks/PitchBlocks.js:1001 +#.TRANS: pitch inversion rotates a pitch around another pitch (even number) +msgid "invert (even)" msgstr "" -#: js/MeterBlocks.js:432 -#.TRANS: count the number of notes -msgid "note counter" +#: js/blocks/PitchBlocks.js:1022 +#.TRANS: register is the octave of the current pitch +msgid "register" msgstr "" -#: js/MeterBlocks.js:496 -#.TRANS: number of whole notes that have been played -msgid "whole notes played" +#: js/blocks/PitchBlocks.js:1026 +msgid "The Register block provides an easy way to modify the register (octave) of the notes that follow it." msgstr "" -#: js/MeterBlocks.js:505 -msgid "The Whole notes played block returns the total number of whole notes played." +#: js/blocks/PitchBlocks.js:1047 +#.TRANS: cents are units used to specify the ratio between pitches. There are 100 cents between successive notes. +msgid "50 cents" msgstr "" -#: js/MeterBlocks.js:555 -#: js/DictActions.js:83 -#.TRANS: number of notes that have been played -msgid "notes played" +#: js/blocks/PitchBlocks.js:1102 +msgid "The Semi-tone transposition block will shift the pitches contained inside Note blocks up (or down) by half steps." msgstr "" -#: js/MeterBlocks.js:653 -msgid "The No clock block decouples the notes from the master clock." +#: js/blocks/PitchBlocks.js:1104 +msgid "In the example shown above, sol is shifted up to sol#." msgstr "" -#: js/MeterBlocks.js:661 -#.TRANS: don't lock notes to master clock -msgid "no clock" +#: js/blocks/PitchBlocks.js:1110 +#.TRANS: adjust the amount of shift (up or down) of a pitch +msgid "semi-tone transpose" msgstr "" -#: js/MeterBlocks.js:700 -msgid "on weak beat do" +#: js/blocks/PitchBlocks.js:1143 +msgid "The Transpose by Ratio block will shift the pitches contained inside Note blocks up (or down) by a ratio" msgstr "" -#: js/MeterBlocks.js:705 -msgid "The On-weak-beat block lets you specify actions to take on weak (off) beats." +#: js/blocks/PitchBlocks.js:1149 +#.TRANS: adjust the amount of shift (up or down) of a pitch +msgid "transpose by ratio" msgstr "" -#: js/MeterBlocks.js:750 -msgid "on strong beat" +#: js/blocks/PitchBlocks.js:1232 +#.TRANS: down sixth means the note is five scale degrees below current note +msgid "down sixth" msgstr "" -#: js/MeterBlocks.js:758 -msgid "The On-strong-beat block lets you specify actions to take on specified beats." +#: js/blocks/PitchBlocks.js:1251 +#.TRANS: down third means the note is two scale degrees below current note +msgid "down third" msgstr "" -#: js/MeterBlocks.js:769 -msgid "beat" +#: js/blocks/PitchBlocks.js:1270 +#.TRANS: seventh means the note is the six scale degrees above current note +msgid "seventh" msgstr "" -#: js/MeterBlocks.js:813 -msgid "on every beat do" +#: js/blocks/PitchBlocks.js:1289 +#.TRANS: sixth means the note is the five scale degrees above current note +msgid "sixth" msgstr "" -#: js/MeterBlocks.js:821 -msgid "The On-every-beat block lets you specify actions to take on every beat." +#: js/blocks/PitchBlocks.js:1308 +#.TRANS: fifth means the note is the four scale degrees above current note +msgid "fifth" msgstr "" -#: js/MeterBlocks.js:874 -msgid "on every note do" +#: js/blocks/PitchBlocks.js:1328 +#.TRANS: fourth means the note is three scale degrees above current note +msgid "fourth" msgstr "" -#: js/MeterBlocks.js:882 -msgid "The On-every-note block lets you specify actions to take on every note." +#: js/blocks/PitchBlocks.js:1347 +#.TRANS: third means the note is two scale degrees above current note +msgid "third" msgstr "" -#: js/MeterBlocks.js:928 -#: js/MeterBlocks.js:999 -#.TRANS: sets tempo by defining a beat and beats per minute -msgid "master beats per minute" +#: js/blocks/PitchBlocks.js:1366 +#.TRANS: second means the note is one scale degree above current note +msgid "second" msgstr "" -#: js/MeterBlocks.js:952 -#: js/MeterBlocks.js:1078 -#: js/MeterBlocks.js:1135 -msgid "bpm" +#: js/blocks/PitchBlocks.js:1407 +msgid "The Scalar transposition block will shift the pitches contained inside Note blocks up (or down) the scale." msgstr "" -#: js/MeterBlocks.js:952 -#: js/MeterBlocks.js:1078 -#: js/MeterBlocks.js:1135 -msgid "beat value" +#: js/blocks/PitchBlocks.js:1409 +msgid "In the example shown above, sol is shifted up to la." msgstr "" -#: js/MeterBlocks.js:1024 -#: js/MeterBlocks.js:1167 -#: js/MeterBlocks.js:1241 -msgid "Beats per minute must be > 30." +#: js/blocks/PitchBlocks.js:1416 +#.TRANS: adjust the amount of shift (up or down) of a pitch by musical scale (scalar) steps +msgid "scalar transpose" msgstr "" -#: js/MeterBlocks.js:1027 -#: js/MeterBlocks.js:1170 -#: js/MeterBlocks.js:1244 -msgid "Maximum beats per minute is 1000." +#: js/blocks/PitchBlocks.js:1451 +msgid "The Accidental block is used to create sharps and flats" msgstr "" -#: js/MeterBlocks.js:1068 -msgid "The Beats per minute block sets the number of 1/4 notes per minute." +#: js/blocks/PitchBlocks.js:1458 +#.TRANS: An accidental is a modification to a pitch, e.g., sharp or flat. +msgid "accidental override" msgstr "" -#: js/MeterBlocks.js:1279 -#.TRANS: anacrusis -msgid "pickup" +#: js/blocks/PitchBlocks.js:1581 +msgid "The Hertz block (in combination with a Number block) will play a sound at the specified frequency." msgstr "" -#: js/MeterBlocks.js:1367 -msgid "number of beats" +#: js/blocks/PitchBlocks.js:1671 +msgid "The Pitch Number block will play a pitch associated by its number, e.g. 0 for C and 7 for G." msgstr "" -#: js/DictBlocks.js:77 -msgid "show dictionary" +#: js/blocks/PitchBlocks.js:1703 +#: js/blocks/PitchBlocks.js:1745 +#.TRANS: a numeric mapping of the notes in an octave based on the musical mode +#.TRANS: a numeric mapping of the notes in an octave based on the musical mode +msgid "nth modal pitch" msgstr "" -#: js/DictBlocks.js:129 -msgid "The Dictionary block returns a dictionary." +#: js/blocks/PitchBlocks.js:1706 +msgid "n^th Modal Pitch takes the pattern of pitches in semitones for a mode and makes each point a degree of the mode," msgstr "" -#: js/DictBlocks.js:197 -#: js/DictBlocks.js:339 -msgid "The Get-dict block returns a value in the dictionary for a specified key." +#: js/blocks/PitchBlocks.js:1708 +msgid "starting from 1 and regardless of tonal framework (i.e. not always 8 notes in the octave)" msgstr "" -#: js/DictBlocks.js:212 -#: js/DictBlocks.js:354 -#.TRANS: retrieve a value from the dictionary with a given key -msgid "get value" +#: js/blocks/PitchBlocks.js:1749 +msgid "N^th Modal Pitch takes a number as an input as the n^th degree for the given mode. 0 is the first position, 1 is the second, -1 is the note before the first etc." msgstr "" -#: js/DictBlocks.js:215 -#: js/DictBlocks.js:216 -#: js/DictBlocks.js:289 -#: js/DictBlocks.js:290 -#: js/DictBlocks.js:357 -#: js/DictBlocks.js:430 -#: js/DictBlocks.js:431 -msgid "key2" +#: js/blocks/PitchBlocks.js:1751 +msgid "The pitches change according to the mode specified without any need for respellings." msgstr "" -#: js/DictBlocks.js:271 -#: js/DictBlocks.js:411 -msgid "The Set-dict block sets a value in the dictionary for a specified key." +#: js/blocks/PitchBlocks.js:1790 +msgid "Scale Degree is a common convention in music. Scale Degree offers seven possible positions in the scale (1-7) and can be modified via accidentals." msgstr "" -#: js/DictBlocks.js:286 -#: js/DictBlocks.js:427 -#.TRANS: set a value in the dictionary for a given key -msgid "set value" +#: js/blocks/PitchBlocks.js:1792 +msgid "Scale Degree 1 is always the first pitch in a given scale, regardless of octave." msgstr "" -#: js/ExtrasBlocks.js:33 -msgid "fraction" +#: js/blocks/PitchBlocks.js:1814 +#.TRANS: step some number of notes in current musical scale +msgid "scalar step" msgstr "" -#: js/ExtrasBlocks.js:36 -msgid "Convert a float to a fraction" +#: js/blocks/PitchBlocks.js:1819 +msgid "The Scalar Step block (in combination with a Number block) will play the next pitch in a scale," msgstr "" -#: js/ExtrasBlocks.js:93 -msgid "save as ABC" +#: js/blocks/PitchBlocks.js:1821 +msgid "eg if the last note played was sol, Scalar Step 1 will play la." msgstr "" -#: js/ExtrasBlocks.js:96 -#: js/ExtrasBlocks.js:132 -#: js/ExtrasBlocks.js:168 -msgid "title" +#: js/blocks/PitchBlocks.js:1857 +msgid "The Pitch block specifies the pitch name and octave of a note that together determine the frequency of the note." msgstr "" -#: js/ExtrasBlocks.js:129 -msgid "save as Lilypond" +#: js/blocks/ProgramBlocks.js:33 +msgid "The Load-heap-from-app block loads the heap from a web page." msgstr "" -#: js/ExtrasBlocks.js:165 -msgid "save as SVG" +#: js/blocks/ProgramBlocks.js:44 +#.TRANS: load the heap contents from a URL +msgid "load heap from App" msgstr "" -#: js/ExtrasBlocks.js:216 -msgid "no background" +#: js/blocks/ProgramBlocks.js:95 +msgid "Error parsing JSON data:" msgstr "" -#: js/ExtrasBlocks.js:219 -msgid "The No background block eliminates the background from the saved SVG output." +#: js/blocks/ProgramBlocks.js:100 +msgid "404: Page not found" msgstr "" -#: js/ExtrasBlocks.js:247 -msgid "show blocks" -msgstr "Visa block" +#: js/blocks/ProgramBlocks.js:133 +msgid "The Save-heap-to-app block saves the heap to a web page." +msgstr "" -#: js/ExtrasBlocks.js:249 -msgid "The Show blocks block shows the blocks." +#: js/blocks/ProgramBlocks.js:144 +#.TRANS: save the heap contents to a URL +msgid "save heap to App" msgstr "" -#: js/ExtrasBlocks.js:274 -msgid "hide blocks" -msgstr "dölj block" +#: js/blocks/ProgramBlocks.js:189 +msgid "Cannot find a valid heap for" +msgstr "" -#: js/ExtrasBlocks.js:276 -msgid "The Hide blocks block hides the blocks." +#: js/blocks/ProgramBlocks.js:206 +msgid "The Load-heap block loads the heap from a file." msgstr "" -#: js/ExtrasBlocks.js:305 -#: js/ExtrasBlocks.js:335 -msgid "The Space block is used to add space between blocks." +#: js/blocks/ProgramBlocks.js:217 +#.TRANS: load the heap from a file +msgid "load heap" msgstr "" -#: js/ExtrasBlocks.js:373 -msgid "wait" -msgstr "vänta" +#: js/blocks/ProgramBlocks.js:270 +msgid "The file you selected does not contain a valid heap." +msgstr "" -#: js/ExtrasBlocks.js:376 -msgid "The Wait block pauses the program for a specified number of seconds." +#: js/blocks/ProgramBlocks.js:275 +msgid "The loadHeap block needs a loadFile block." msgstr "" -#: js/ExtrasBlocks.js:430 -#: plugins/facebook.rtp:30 -msgid "comment" +#: js/blocks/ProgramBlocks.js:291 +msgid "The Set-heap block loads the heap." msgstr "" -#: js/ExtrasBlocks.js:466 -msgid "print" -msgstr "skriv" +#: js/blocks/ProgramBlocks.js:340 +msgid "The block you selected does not contain a valid heap." +msgstr "" -#: js/ExtrasBlocks.js:473 -msgid "The Print block displays text at the top of the screen." +#: js/blocks/ProgramBlocks.js:343 +msgid "The Set heap block needs a heap." msgstr "" -#: js/ExtrasBlocks.js:579 -msgid "display grid" +#: js/blocks/ProgramBlocks.js:360 +msgid "The Load-dictionary block loads a dictionary from a file." msgstr "" -#: js/ExtrasBlocks.js:584 -msgid "The Display Grid Block changes the grid type" +#: js/blocks/ProgramBlocks.js:372 +#.TRANS: load a dictionary from a file +msgid "load dictionary" msgstr "" -#: js/ExtrasBlocks.js:686 -#: js/ExtrasBlocks.js:705 -#: js/ExtrasBlocks.js:728 -#: js/ExtrasBlocks.js:751 -#: js/ExtrasBlocks.js:769 -#: js/ExtrasBlocks.js:788 -#: js/ExtrasBlocks.js:807 -#: js/ExtrasBlocks.js:826 -msgid "unknown" +#: js/blocks/ProgramBlocks.js:390 +#: js/blocks/ProgramBlocks.js:658 +#: js/blocks/ToneBlocks.js:1025 +msgid "file" msgstr "" -#: js/SensorsBlocks.js:36 -msgid "The Input block prompts for keyboard input." +#: js/blocks/ProgramBlocks.js:444 +msgid "The file you selected does not contain a valid dictionary." msgstr "" -#: js/SensorsBlocks.js:46 -msgid "input" +#: js/blocks/ProgramBlocks.js:449 +msgid "The load dictionary block needs a load file block." msgstr "" -#: js/SensorsBlocks.js:64 -msgid "Input a value" +#: js/blocks/ProgramBlocks.js:466 +msgid "The Set-dictionary block loads a dictionary." msgstr "" -#: js/SensorsBlocks.js:126 -msgid "input value" +#: js/blocks/ProgramBlocks.js:477 +#.TRANS: load a dictionary from a JSON +msgid "set dictionary" msgstr "" -#: js/SensorsBlocks.js:131 -msgid "The Input-value block stores the input." +#: js/blocks/ProgramBlocks.js:546 +msgid "The block you selected does not contain a valid dictionary." msgstr "" -#: js/SensorsBlocks.js:238 -msgid "loudness" +#: js/blocks/ProgramBlocks.js:550 +msgid "The set dictionary block needs a dictionary." msgstr "" -#: js/SensorsBlocks.js:245 -msgid "The Loudness block returns the volume detected by the microphone." +#: js/blocks/ProgramBlocks.js:567 +msgid "The Save-heap block saves the heap to a file." msgstr "" -#: js/SensorsBlocks.js:300 -msgid "click" +#: js/blocks/ProgramBlocks.js:578 +#.TRANS: save the heap to a file +msgid "save heap" msgstr "" -#: js/SensorsBlocks.js:306 -msgid "The Click block triggers an event if a mouse has been clicked." +#: js/blocks/ProgramBlocks.js:629 +msgid "The Save-dictionary block saves a dictionary to a file." msgstr "" -#: js/SensorsBlocks.js:313 -msgid "The Click block triggers an event if a turtle has been clicked." +#: js/blocks/ProgramBlocks.js:640 +#.TRANS: save a dictionary to a file +msgid "save dictionary" msgstr "" -#: js/SensorsBlocks.js:342 -msgid "cursor over" +#: js/blocks/ProgramBlocks.js:720 +msgid "The Open palette block opens a palette." msgstr "" -#: js/SensorsBlocks.js:387 -msgid "cursor out" +#: js/blocks/ProgramBlocks.js:727 +msgid "open palette" msgstr "" -#: js/SensorsBlocks.js:433 -msgid "cursor button down" +#: js/blocks/ProgramBlocks.js:785 +msgid "The Delete block block removes a block." msgstr "" -#: js/SensorsBlocks.js:477 -msgid "cursor button up" +#: js/blocks/ProgramBlocks.js:797 +#.TRANS: Move this block to the trash. +msgid "delete block" msgstr "" -#: js/SensorsBlocks.js:638 -msgid "The Get red block returns the red component of the pixel under the mouse." +#: js/blocks/ProgramBlocks.js:861 +msgid "The Move block block moves a block." msgstr "" -#: js/SensorsBlocks.js:644 -msgid "The Get red block returns the red component of the pixel under the turtle." +#: js/blocks/ProgramBlocks.js:869 +#.TRANS: Move the position of a block on the screen. +msgid "move block" msgstr "" -#: js/SensorsBlocks.js:685 -#: plugins/rodi.rtp:216 -msgid "pixel color" +#: js/blocks/ProgramBlocks.js:881 +#: js/blocks/ProgramBlocks.js:1048 +msgid "block number" msgstr "" -#: js/SensorsBlocks.js:690 -msgid "The Get pixel block returns the color of the pixel under the mouse." +#: js/blocks/ProgramBlocks.js:935 +#.TRANS: Run program beginning at this block. +msgid "run block" msgstr "" -#: js/SensorsBlocks.js:696 -msgid "The Get pixel block returns the color of the pixel under the turtle." +#: js/blocks/ProgramBlocks.js:1025 +msgid "The Dock block block connections two blocks." msgstr "" -#: js/SensorsBlocks.js:758 -msgid "time" +#: js/blocks/ProgramBlocks.js:1036 +#.TRANS: We can connect a block to another block. +msgid "connect blocks" msgstr "" -#: js/SensorsBlocks.js:804 -msgid "cursor y" +#: js/blocks/ProgramBlocks.js:1048 +msgid "target block" msgstr "" -#: js/SensorsBlocks.js:809 -msgid "The Cursor Y block returns the vertical position of the mouse." +#: js/blocks/ProgramBlocks.js:1048 +msgid "connection number" msgstr "" -#: js/SensorsBlocks.js:845 -msgid "cursor x" +#: js/blocks/ProgramBlocks.js:1140 +msgid "The Make block block creates a new block." msgstr "" -#: js/SensorsBlocks.js:850 -msgid "The Cursor X block returns the horizontal position of the mouse." +#: js/blocks/ProgramBlocks.js:1152 +#.TRANS: Create a new block +msgid "make block" msgstr "" -#: js/SensorsBlocks.js:886 -msgid "mouse button" +#: js/blocks/ProgramBlocks.js:1285 +msgid "Cannot find block" msgstr "" -#: js/SensorsBlocks.js:888 -msgid "The Mouse-button block returns True if the mouse button is pressed." +#: js/blocks/ProgramBlocks.js:1304 +#: js/blocks/ProgramBlocks.js:1313 +msgid "Warning: block argument type mismatch" msgstr "" -#: js/SensorsBlocks.js:934 -msgid "to ASCII" +#: js/blocks/ProgramBlocks.js:1347 +msgid "The Open project block is used to open a project from a web page." msgstr "" -#: js/SensorsBlocks.js:938 -msgid "The To ASCII block converts numbers to letters." +#: js/blocks/ProgramBlocks.js:1357 +msgid "open project" msgstr "" -#: js/SensorsBlocks.js:1005 -msgid "The Keyboard block returns computer keyboard input." +#: js/blocks/ProgramBlocks.js:1410 +msgid "Please enter a valid URL." msgstr "" -#: js/IntervalsActions.js:216 -msgid "Adding missing pitch number 0." +#: js/blocks/ToneBlocks.js:34 +msgid "oscillator" msgstr "" -#: js/IntervalsActions.js:224 -msgid "Ignoring pitch numbers less than zero or greater than eleven." +#: js/blocks/ToneBlocks.js:42 +#: js/blocks/WidgetBlocks.js:179 +#: js/widgets/timbre.js:1558 +#: js/widgets/timbre.js:1808 +#.TRANS: there are different types (sine, triangle, square...) of oscillators. +#.TRANS: type of filter, e.g., lowpass, highpass, etc. +msgid "type" msgstr "" -#: js/IntervalsActions.js:230 -msgid "Ignoring duplicate pitch numbers." +#: js/blocks/ToneBlocks.js:44 +#: js/widgets/timbre.js:1562 +#.TRANS: Partials refers to the number of sine waves combined into the sound. +msgid "partials" msgstr "" -#: js/PitchActions.js:88 -msgid "The Scalar Step Block must be used inside of a Note Block." +#: js/blocks/ToneBlocks.js:76 +msgid "You are adding multiple oscillator blocks." msgstr "" -#: js/PitchActions.js:107 -msgid "The Scalar Step Block must be preceded by a Pitch Block." +#: js/blocks/ToneBlocks.js:144 +#: js/widgets/timbre.js:1225 +#.TRANS: a duo synthesizer combines a synth with a sequencer +msgid "duo synth" msgstr "" -#: js/DrumActions.js:231 -msgid "Noise Block: Did you mean to use a Note block?" +#: js/blocks/ToneBlocks.js:149 +msgid "The Duo synth block is a duo-frequency modulator used to define a timbre." msgstr "" -#: js/MeterActions.js:101 -#: js/MeterActions.js:139 -msgid "beats per minute must be greater than" +#: js/blocks/ToneBlocks.js:157 +#: js/widgets/timbre.js:1476 +msgid "vibrato rate" msgstr "" -#: js/MeterActions.js:111 -#: js/MeterActions.js:149 -msgid "maximum" +#: js/blocks/ToneBlocks.js:157 +msgid "vibrato intensity" msgstr "" -#: js/MeterActions.js:117 -#: js/MeterActions.js:155 -msgid "beats per minute is" +#: js/blocks/ToneBlocks.js:185 +#: js/widgets/timbre.js:1221 +#.TRANS: AM (amplitude modulation) synthesizer +msgid "AM synth" msgstr "" -#: js/ToneActions.js:134 -msgid "Vibrato intensity must be between 1 and 100." +#: js/blocks/ToneBlocks.js:189 +msgid "The AM synth block is an amplitude modulator used to define a timbre." msgstr "" -#: js/ToneActions.js:139 -msgid "Vibrato rate must be greater than 0." +#: js/blocks/ToneBlocks.js:224 +#: js/widgets/timbre.js:1223 +#.TRANS: FM (frequency modulation) synthesizer +msgid "FM synth" msgstr "" -#: js/ToneActions.js:192 -#: js/ToneActions.js:265 -#.TRANS: Depth is the intesity of the tremolo or chorus effect. -msgid "Depth is out of range." +#: js/blocks/ToneBlocks.js:228 +msgid "The FM synth block is a frequency modulator used to define a timbre." msgstr "" -#: js/ToneActions.js:301 -msgid "Distortion must be from 0 to 100." +#: js/blocks/ToneBlocks.js:262 +msgid "partial" msgstr "" -#: js/ToneActions.js:332 -#.TRANS: partials components in a harmonic series -msgid "Partial must be greater than or equal to 0." +#: js/blocks/ToneBlocks.js:265 +msgid "The Partial block is used to specify a weight for a specific partial harmonic." msgstr "" -#: js/ToneActions.js:378 -#: js/ToneActions.js:417 -#: js/ToneActions.js:456 -#: js/timbre.js:782 -msgid "Unable to use synth due to existing oscillator" +#: js/blocks/ToneBlocks.js:284 +#.TRANS: partials are weighted components in a harmonic series +msgid "Partial weight must be between 0 and 1." msgstr "" -#: js/ToneActions.js:388 -#: js/ToneActions.js:427 -msgid "The input cannot be negative." +#: js/blocks/ToneBlocks.js:297 +#.TRANS: partials are weighted components in a harmonic series +msgid "Partial block should be used inside of a Weighted-partials block." msgstr "" -#: js/DictActions.js:75 -#: js/DictActions.js:153 -#: js/DictActions.js:188 -msgid "font" +#: js/blocks/ToneBlocks.js:325 +#.TRANS: partials are weighted components in a harmonic series +msgid "weighted partials" msgstr "" -#: js/musicutils.js:363 -#: js/musicutils.js:471 -#: js/pitchdrummatrix.js:151 -#: js/musickeyboard.js:2563 -msgid "rest" +#: js/blocks/ToneBlocks.js:383 +msgid "The Harmonic block will add harmonics to the contained notes." msgstr "" -#: js/musicutils.js:565 -#.TRANS: ordinal number. Please keep exactly one space between each number. -msgid "1st 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th" +#: js/blocks/ToneBlocks.js:390 +#.TRANS: A harmonic is an overtone. +msgid "harmonic" msgstr "" -#: js/musicutils.js:629 -#: js/musicutils.js:812 -#: js/musicutils.js:911 -#.TRANS: augmented is a music term related to intervals -msgid "augmented" +#: js/blocks/ToneBlocks.js:431 +msgid "The Distortion block adds distortion to the pitch." msgstr "" -#: js/musicutils.js:631 -#: js/musicutils.js:813 -#: js/musicutils.js:910 -#.TRANS: diminished is a music term related to intervals and mode -msgid "diminished" +#: js/blocks/ToneBlocks.js:438 +#: js/widgets/timbre.js:2100 +#.TRANS: distortion is an alteration in the sound +msgid "distortion" msgstr "" -#: js/musicutils.js:639 -#.TRANS: twelve semi-tone scale for music -msgid "chromatic" +#: js/blocks/ToneBlocks.js:487 +msgid "The Tremolo block adds a wavering effect." msgstr "" -#: js/musicutils.js:640 -msgid "algerian" +#: js/blocks/ToneBlocks.js:495 +#: js/widgets/timbre.js:2092 +#.TRANS: a wavering effect in a musical tone +msgid "tremolo" msgstr "" -#: js/musicutils.js:641 -msgid "spanish" +#: js/blocks/ToneBlocks.js:500 +#: js/blocks/ToneBlocks.js:569 +#: js/blocks/ToneBlocks.js:630 +#: js/blocks/ToneBlocks.js:689 +#: js/widgets/timbre.js:2134 +#: js/widgets/timbre.js:2222 +#: js/widgets/timbre.js:2317 +#: js/widgets/timbre.js:2419 +#.TRANS: rate at which tremolo wavers +msgid "rate" msgstr "" -#: js/musicutils.js:643 -#.TRANS: modal scale in music -msgid "octatonic" +#: js/blocks/ToneBlocks.js:502 +#: js/blocks/ToneBlocks.js:630 +#: js/widgets/timbre.js:2137 +#: js/widgets/timbre.js:2328 +#.TRANS: amplitude of tremolo waver +msgid "depth" msgstr "" -#: js/musicutils.js:645 -#.TRANS: harmonic major scale in music -msgid "harmonic major" +#: js/blocks/ToneBlocks.js:559 +msgid "The Phaser block adds a sweeping sound." msgstr "" -#: js/musicutils.js:647 -#.TRANS: natural minor scales in music -msgid "natural minor" +#: js/blocks/ToneBlocks.js:566 +#: js/widgets/timbre.js:2098 +#.TRANS: alter the phase of the sound +msgid "phaser" msgstr "" -#: js/musicutils.js:649 -#.TRANS: harmonic minor scale in music -msgid "harmonic minor" +#: js/blocks/ToneBlocks.js:569 +#: js/turtleactions/IntervalsActions.js:114 +#: js/widgets/timbre.js:2422 +msgid "octaves" msgstr "" -#: js/musicutils.js:651 -#.TRANS: melodic minor scale in music -msgid "melodic minor" +#: js/blocks/ToneBlocks.js:569 +#: js/widgets/timbre.js:2425 +msgid "base frequency" msgstr "" -#: js/musicutils.js:655 -#.TRANS: modal scale for music -msgid "dorian" +#: js/blocks/ToneBlocks.js:619 +msgid "The Chorus block adds a chorus effect." msgstr "" -#: js/musicutils.js:657 -#.TRANS: modal scale for music -msgid "phrygian" +#: js/blocks/ToneBlocks.js:627 +#: js/widgets/timbre.js:2096 +#.TRANS: musical effect to simulate a choral sound +msgid "chorus" msgstr "" -#: js/musicutils.js:659 -#.TRANS: modal scale for music -msgid "lydian" +#: js/blocks/ToneBlocks.js:630 +msgid "delay" msgstr "" -#: js/musicutils.js:661 -#.TRANS: modal scale for music -msgid "mixolydian" +#: js/blocks/ToneBlocks.js:678 +msgid "The Vibrato block adds a rapid, slight variation in pitch." msgstr "" -#: js/musicutils.js:665 -#.TRANS: modal scale for music -msgid "locrian" +#: js/blocks/ToneBlocks.js:686 +#: js/widgets/timbre.js:2094 +#.TRANS: a rapid, slight variation in pitch +msgid "vibrato" msgstr "" -#: js/musicutils.js:667 -#.TRANS: minor jazz scale for music -msgid "jazz minor" +#: js/blocks/ToneBlocks.js:689 +#: js/widgets/timbre.js:2221 +msgid "intensity" msgstr "" -#: js/musicutils.js:669 -#.TRANS: bebop scale for music -msgid "bebop" +#: js/blocks/ToneBlocks.js:733 +#.TRANS: select synthesizer +msgid "set synth" msgstr "" -#: js/musicutils.js:670 -msgid "arabic" +#: js/blocks/ToneBlocks.js:804 +msgid "synth name" msgstr "" -#: js/musicutils.js:671 -msgid "byzantine" +#: js/blocks/ToneBlocks.js:842 +msgid "set default instrument" msgstr "" -#: js/musicutils.js:673 -#.TRANS: musical scale for music by Verdi -msgid "enigmatic" +#: js/blocks/ToneBlocks.js:895 +#: js/blocks/ToneBlocks.js:943 +#.TRANS: set the characteristics of a custom instrument +msgid "set instrument" msgstr "" -#: js/musicutils.js:674 -msgid "ethiopian" +#: js/blocks/ToneBlocks.js:898 +#: js/blocks/ToneBlocks.js:926 +#: js/blocks/ToneBlocks.js:932 +msgid "The Set instrument block selects a voice for the synthesizer," msgstr "" -#: js/musicutils.js:676 -#.TRANS: Ethiopic scale for music -msgid "geez" +#: js/blocks/ToneBlocks.js:900 +#: js/blocks/ToneBlocks.js:934 +msgid "eg guitar piano violin or cello." msgstr "" -#: js/musicutils.js:677 -msgid "hindu" +#: js/blocks/ToneBlocks.js:1015 +msgid "Import a sound file to use as an instrument and set its pitch center." msgstr "" -#: js/musicutils.js:678 -msgid "hungarian" +#: js/blocks/ToneBlocks.js:1110 +msgid "Upload a sound file to connect with the sample block." msgstr "" -#: js/musicutils.js:680 -#.TRANS: minor Romanian scale for music -msgid "romanian minor" +#: js/blocks/VolumeBlocks.js:35 +msgid "synth volume" msgstr "" -#: js/musicutils.js:681 -msgid "spanish gypsy" +#: js/blocks/VolumeBlocks.js:39 +msgid "The Synth volume block returns the current volume of the current synthesizer." msgstr "" -#: js/musicutils.js:683 -#.TRANS: musical scale for Mid-Eastern music -msgid "maqam" +#: js/blocks/VolumeBlocks.js:105 +msgid "master volume" msgstr "" -#: js/musicutils.js:685 -#.TRANS: minor blues scale for music -msgid "minor blues" +#: js/blocks/VolumeBlocks.js:109 +msgid "The Master volume block returns the master volume." msgstr "" -#: js/musicutils.js:687 -#.TRANS: major blues scale for music -msgid "major blues" +#: js/blocks/VolumeBlocks.js:355 +#: js/blocks/VolumeBlocks.js:524 +msgid "set synth volume" msgstr "" -#: js/musicutils.js:688 -msgid "whole tone" +#: js/blocks/VolumeBlocks.js:362 +#: js/blocks/VolumeBlocks.js:545 +msgid "synth" msgstr "" -#: js/musicutils.js:690 -#.TRANS: pentatonic is a general term that means "five note scale". This scale is typically known as "minor pentatonic" -msgid "minor pentatonic" +#: js/blocks/VolumeBlocks.js:403 +#: js/blocks/VolumeBlocks.js:577 +#: js/blocks/VolumeBlocks.js:740 +#: js/turtleactions/VolumeActions.js:173 +msgid "Setting volume to 0." msgstr "" -#: js/musicutils.js:692 -#.TRANS: pentatonic is a general term that means "five note scale". This scale is typically known as "major pentatonic" -msgid "major pentatonic" +#: js/blocks/VolumeBlocks.js:440 +msgid "Synth not found" msgstr "" -#: js/musicutils.js:693 -msgid "chinese" +#: js/blocks/VolumeBlocks.js:494 +msgid "set drum volume" msgstr "" -#: js/musicutils.js:694 -msgid "egyptian" +#: js/blocks/VolumeBlocks.js:530 +msgid "The Set synth volume block will change the volume of a particular synth," msgstr "" -#: js/musicutils.js:696 -#.TRANS: https://en.wikipedia.org/wiki/Hirajoshi_scale NOTE: There are three different versions of this scale -msgid "hirajoshi" +#: js/blocks/VolumeBlocks.js:532 +msgid "eg guitar violin snare drum etc." msgstr "" -#: js/musicutils.js:697 -msgid "Japan" +#: js/blocks/VolumeBlocks.js:534 +msgid "The default volume is 50." msgstr "" -#: js/musicutils.js:699 -#.TRANS: https://en.wikipedia.org/wiki/In_scale and https://en.wikipedia.org/wiki/Sakura_Sakura -msgid "in" +#: js/blocks/VolumeBlocks.js:536 +msgid "The range is 0 for silence to 100 for full volume." msgstr "" -#: js/musicutils.js:701 -#.TRANS: https://en.wikipedia.org/wiki/Miny%C5%8D_scale -msgid "minyo" +#: js/blocks/VolumeBlocks.js:597 +msgid "set panning" msgstr "" -#: js/musicutils.js:703 -#.TRANS: Italian mathematician -msgid "fibonacci" +#: js/blocks/VolumeBlocks.js:603 +msgid "The Set Panning block sets the panning for all synthesizers." msgstr "" -#: js/musicutils.js:708 -#: js/musicutils.js:1106 -#.TRANS: lowpass filter -msgid "lowpass" +#: js/blocks/VolumeBlocks.js:625 +msgid "Warning: Sound is coming out from only the left or right side." msgstr "" -#: js/musicutils.js:710 -#: js/musicutils.js:1107 -#.TRANS: bandpass filter -msgid "bandpass" +#: js/blocks/VolumeBlocks.js:647 +#: js/blocks/VolumeBlocks.js:695 +msgid "set master volume" msgstr "" -#: js/musicutils.js:712 -#: js/musicutils.js:1108 -#.TRANS: high-shelf filter -msgid "highshelf" +#: js/blocks/VolumeBlocks.js:653 +msgid "The Set master volume block sets the volume for all synthesizers." msgstr "" -#: js/musicutils.js:714 -#: js/musicutils.js:1109 -#.TRANS: low-shelf filter -msgid "lowshelf" +#: js/blocks/VolumeBlocks.js:784 +msgid "The Set relative volume block changes the volume of the contained notes." msgstr "" -#: js/musicutils.js:716 -#: js/musicutils.js:1110 -#.TRANS: notch-shelf filter -msgid "notch" +#: js/blocks/VolumeBlocks.js:791 +msgid "set relative volume" msgstr "" -#: js/musicutils.js:718 -#: js/musicutils.js:1111 -#.TRANS: all-pass filter -msgid "allpass" +#: js/blocks/VolumeBlocks.js:857 +msgid "decrescendo" msgstr "" -#: js/musicutils.js:720 -#: js/musicutils.js:1112 -#.TRANS: peaking filter -msgid "peaking" +#: js/blocks/VolumeBlocks.js:921 +msgid "crescendo" msgstr "" -#: js/musicutils.js:731 -#: js/synthutils.js:58 -#.TRANS: musical instrument -msgid "violin" +#: js/blocks/WidgetBlocks.js:81 +#.TRANS: sound envelope (ADSR) +msgid "envelope" msgstr "" -#: js/musicutils.js:732 -#: js/synthutils.js:60 -#.TRANS: viola musical instrument -msgid "viola" +#: js/blocks/WidgetBlocks.js:89 +#.TRANS: Attack time is the time taken for initial run-up of level from nil to peak, beginning when the key is first pressed. +msgid "attack" msgstr "" -#: js/musicutils.js:733 -#: js/synthutils.js:98 -#.TRANS: xylophone musical instrument -msgid "xylophone" +#: js/blocks/WidgetBlocks.js:91 +#.TRANS: Decay time is the time taken for the subsequent run down from the attack level to the designated sustain level. +msgid "decay" msgstr "" -#: js/musicutils.js:734 -#: js/synthutils.js:120 -#.TRANS: vibraphone musical instrument -msgid "vibraphone" +#: js/blocks/WidgetBlocks.js:93 +#.TRANS: Sustain level is the level during the main sequence of the sound's duration, until the key is released. +msgid "sustain" msgstr "" -#: js/musicutils.js:735 -#: js/synthutils.js:62 -#.TRANS: musical instrument -msgid "cello" +#: js/blocks/WidgetBlocks.js:95 +#.TRANS: Release time is the time taken for the level to decay from the sustain level to zero after the key is released. +msgid "release" msgstr "" -#: js/musicutils.js:737 -#: js/synthutils.js:66 -#.TRANS: viola musical instrument -msgid "double bass" +#: js/blocks/WidgetBlocks.js:113 +msgid "Attack value should be from 0 to 100." msgstr "" -#: js/musicutils.js:738 -#: js/synthutils.js:68 -#: js/rhythmruler.js:2119 -#.TRANS: musical instrument -msgid "guitar" +#: js/blocks/WidgetBlocks.js:116 +msgid "Decay value should be from 0 to 100." msgstr "" -#: js/musicutils.js:739 -#: js/synthutils.js:70 -#.TRANS: musical instrument -msgid "acoustic guitar" +#: js/blocks/WidgetBlocks.js:119 +msgid "Sustain value should be from 0 to 100." msgstr "" -#: js/musicutils.js:740 -#: js/synthutils.js:72 -#.TRANS: musical instrument -msgid "flute" +#: js/blocks/WidgetBlocks.js:122 +msgid "Release value should be from 0-100." msgstr "" -#: js/musicutils.js:741 -#: js/synthutils.js:74 -#.TRANS: musical instrument -msgid "clarinet" +#: js/blocks/WidgetBlocks.js:140 +msgid "You are adding multiple envelope blocks." msgstr "" -#: js/musicutils.js:742 -#: js/synthutils.js:76 -#.TRANS: musical instrument -msgid "saxophone" +#: js/blocks/WidgetBlocks.js:171 +#.TRANS: a filter removes some unwanted components from a signal +msgid "filter" msgstr "" -#: js/musicutils.js:743 -#: js/synthutils.js:78 -#.TRANS: musical instrument -msgid "tuba" +#: js/blocks/WidgetBlocks.js:181 +#: js/widgets/timbre.js:1818 +#.TRANS: rolloff is the steepness of a change in frequency. +msgid "rolloff" msgstr "" -#: js/musicutils.js:744 -#: js/synthutils.js:80 -#.TRANS: musical instrument -msgid "trumpet" +#: js/blocks/WidgetBlocks.js:213 +#.TRANS: rolloff is the steepness of a change in frequency. +msgid "Rolloff value should be either -12, -24, -48, or -96 decibels/octave." msgstr "" -#: js/musicutils.js:745 -#: js/synthutils.js:82 -#.TRANS: musical instrument -msgid "oboe" +#: js/blocks/WidgetBlocks.js:252 +msgid "The Temperament tool is used to define custom tuning." msgstr "" -#: js/musicutils.js:746 -#: js/synthutils.js:84 -#.TRANS: musical instrument -msgid "trombone" +#: js/blocks/WidgetBlocks.js:332 +#: js/blocks/WidgetBlocks.js:1573 +#: js/widgets/sampler.js:547 +msgid "Upload a sample and adjust its pitch center." msgstr "" -#: js/musicutils.js:747 -#: js/synthutils.js:100 -#.TRANS: polytone synthesizer -msgid "electronic synth" +#: js/blocks/WidgetBlocks.js:339 +#.TRANS: the speed at music is should be played. +msgid "sampler" msgstr "" -#: js/musicutils.js:748 -#: js/synthutils.js:102 -#.TRANS: simple monotone synthesizer -msgid "simple 1" +#: js/blocks/WidgetBlocks.js:517 +msgid "The Meter block opens a tool to select strong beats for the meter." msgstr "" -#: js/musicutils.js:749 -msgid "simple 2" +#: js/blocks/WidgetBlocks.js:573 +msgid "The oscilloscope block opens a tool to visualize waveforms." msgstr "" -#: js/musicutils.js:750 -msgid "simple 3" +#: js/blocks/WidgetBlocks.js:578 +msgid "oscilloscope" msgstr "" -#: js/musicutils.js:751 -msgid "simple 4" +#: js/blocks/WidgetBlocks.js:645 +msgid "The Custom mode block opens a tool to explore musical mode (the spacing of the notes in a scale)." msgstr "" -#: js/musicutils.js:753 -#: js/synthutils.js:49 -#.TRANS: brown noise synthesizer -msgid "brown noise" +#: js/blocks/WidgetBlocks.js:651 +#.TRANS: musical mode is the pattern of half-steps in an octave, e.g., Major or Minor modes +msgid "custom mode" msgstr "" -#: js/musicutils.js:754 -#: js/synthutils.js:51 -#.TRANS: pink noise synthesizer -msgid "pink noise" +#: js/blocks/WidgetBlocks.js:700 +msgid "The Tempo block opens a metronome to visualize the beat." msgstr "" -#: js/musicutils.js:756 -#: js/synthutils.js:127 -#: js/rhythmruler.js:1670 -#: js/rhythmruler.js:1928 -#.TRANS: musical instrument -msgid "snare drum" +#: js/blocks/WidgetBlocks.js:762 +msgid "The Arpeggio Widget is used to compose chord sequences." msgstr "" -#: js/musicutils.js:757 -#: js/synthutils.js:129 -#.TRANS: musical instrument -msgid "kick drum" +#: js/blocks/WidgetBlocks.js:837 +msgid "The Pitch drum matrix is used to map pitches to drum sounds." msgstr "" -#: js/musicutils.js:758 -#: js/synthutils.js:131 -#.TRANS: musical instrument -msgid "tom tom" +#: js/blocks/WidgetBlocks.js:842 +#.TRANS: makes a mapping between pitches and drum sounds +msgid "pitch-drum mapper" msgstr "" -#: js/musicutils.js:759 -#: js/synthutils.js:133 -#.TRANS: musical instrument -msgid "floor tom" +#: js/blocks/WidgetBlocks.js:891 +msgid "You must have at least one pitch block and one drum block in the matrix." msgstr "" -#: js/musicutils.js:760 -#: js/synthutils.js:135 -#.TRANS: musical instrument -msgid "bass drum" +#: js/blocks/WidgetBlocks.js:920 +msgid "The Pitch slider tool to is used to generate pitches at selected frequencies." msgstr "" -#: js/musicutils.js:761 -#: js/synthutils.js:137 -#.TRANS: a drum made from an inverted cup -msgid "cup drum" +#: js/blocks/WidgetBlocks.js:925 +#.TRANS: widget to generate pitches using a slider +msgid "pitch slider" msgstr "" -#: js/musicutils.js:762 -#: js/synthutils.js:139 -#.TRANS: musical instrument -msgid "darbuka drum" +#: js/blocks/WidgetBlocks.js:977 +msgid "chromatic keyboard" msgstr "" -#: js/musicutils.js:763 -#: js/synthutils.js:143 -#.TRANS: musical instrument -msgid "hi hat" +#: js/blocks/WidgetBlocks.js:1011 +#: js/blocks/WidgetBlocks.js:1077 +#.TRANS: widget to generate pitches using a slider +msgid "music keyboard" msgstr "" -#: js/musicutils.js:764 -#: js/synthutils.js:145 -#.TRANS: a small metal bell -msgid "ride bell" +#: js/blocks/WidgetBlocks.js:1062 +#: js/blocks/WidgetBlocks.js:1069 +msgid "The Music keyboard block opens a piano keyboard that can be used to create notes." msgstr "" -#: js/musicutils.js:765 -#: js/synthutils.js:147 -#.TRANS: musical instrument -msgid "cow bell" +#: js/blocks/WidgetBlocks.js:1128 +msgid "The Pitch staircase tool to is used to generate pitches from a given ratio." msgstr "" -#: js/musicutils.js:766 -msgid "japanese drum" +#: js/blocks/WidgetBlocks.js:1135 +#.TRANS: generate a progressive sequence of pitches +msgid "pitch staircase" msgstr "" -#: js/musicutils.js:767 -#: js/synthutils.js:153 -#.TRANS: musical instrument -msgid "japanese bell" +#: js/blocks/WidgetBlocks.js:1222 +msgid "The Rhythm Maker block opens a tool to create drum machines." msgstr "" -#: js/musicutils.js:768 -#: js/synthutils.js:149 -#.TRANS: musical instrument -msgid "triangle bell" +#: js/blocks/WidgetBlocks.js:1291 +msgid "G major scale" msgstr "" -#: js/musicutils.js:769 -#: js/synthutils.js:151 -#.TRANS: musical instrument -msgid "finger cymbals" +#: js/blocks/WidgetBlocks.js:1326 +msgid "C major scale" msgstr "" -#: js/musicutils.js:770 -#: js/synthutils.js:155 -#.TRANS: a musically tuned set of bells -msgid "chime" +#: js/blocks/WidgetBlocks.js:1366 +msgid "The Phrase Maker block opens a tool to create musical phrases." msgstr "" -#: js/musicutils.js:771 -#: js/synthutils.js:157 -#.TRANS: a musical instrument -msgid "gong" +#: js/blocks/WidgetBlocks.js:1373 +#.TRANS: assigns pitch to a sequence of beats to generate a melody +msgid "phrase maker" msgstr "" -#: js/musicutils.js:772 -#: js/synthutils.js:159 -#.TRANS: sound effect -msgid "clang" +#: js/blocks/WidgetBlocks.js:1444 +msgid "You must have at least one pitch block and one rhythm block in the matrix." msgstr "" -#: js/musicutils.js:773 -#: js/synthutils.js:161 -#.TRANS: sound effect -msgid "crash" +#: js/blocks/WidgetBlocks.js:1503 +msgid "The Status block opens a tool for inspecting the status of Music Blocks as it is running." msgstr "" -#: js/musicutils.js:774 -#: js/synthutils.js:163 -#.TRANS: sound effect -msgid "bottle" +#: js/blocks/WidgetBlocks.js:1580 +#.TRANS: AI-generated music +msgid "aimusic" msgstr "" -#: js/musicutils.js:775 -#: js/synthutils.js:165 -#.TRANS: sound effect -msgid "clap" +#: js/turtleactions/MeterActions.js:101 +#: js/turtleactions/MeterActions.js:139 +msgid "beats per minute must be greater than" msgstr "" -#: js/musicutils.js:776 -#: js/synthutils.js:167 -#.TRANS: sound effect -msgid "slap" +#: js/turtleactions/MeterActions.js:111 +#: js/turtleactions/MeterActions.js:149 +msgid "maximum" msgstr "" -#: js/musicutils.js:777 -#: js/synthutils.js:169 -#.TRANS: sound effect -msgid "splash" +#: js/turtleactions/MeterActions.js:117 +#: js/turtleactions/MeterActions.js:155 +msgid "beats per minute is" msgstr "" -#: js/musicutils.js:778 -#: js/synthutils.js:171 -#.TRANS: sound effect -msgid "bubbles" +#: js/turtleactions/DictActions.js:75 +#: js/turtleactions/DictActions.js:142 +#: js/turtleactions/DictActions.js:172 +msgid "font" msgstr "" -#: js/musicutils.js:779 -#: js/synthutils.js:173 -#.TRANS: sound effect -msgid "raindrop" +#: js/turtleactions/DictActions.js:255 +msgid "Dictionary with this name does not exist" msgstr "" -#: js/musicutils.js:780 -#: js/synthutils.js:175 -#.TRANS: animal sound effect -msgid "cat" +#: js/turtleactions/DictActions.js:259 +msgid "Key with this name does not exist in " msgstr "" -#: js/musicutils.js:781 -#: js/synthutils.js:177 -#.TRANS: animal sound effect -msgid "cricket" +#: js/turtleactions/DrumActions.js:227 +msgid "Noise Block: Did you mean to use a Note block?" msgstr "" -#: js/musicutils.js:782 -#: js/synthutils.js:179 -#.TRANS: animal sound effect -msgid "dog" +#: js/turtleactions/IntervalsActions.js:113 +msgid "one" msgstr "" -#: js/musicutils.js:784 -#: js/synthutils.js:86 -#.TRANS: musical instrument -msgid "banjo" +#: js/turtleactions/IntervalsActions.js:113 +msgid "two" msgstr "" -#: js/musicutils.js:785 -#: js/synthutils.js:88 -#.TRANS: musical instrument -msgid "koto" +#: js/turtleactions/IntervalsActions.js:113 +msgid "three" msgstr "" -#: js/musicutils.js:786 -#: js/synthutils.js:90 -#.TRANS: musical instrument -msgid "dulcimer" +#: js/turtleactions/IntervalsActions.js:113 +msgid "four" msgstr "" -#: js/musicutils.js:787 -#: js/synthutils.js:92 -#.TRANS: musical instrument -msgid "electric guitar" +#: js/turtleactions/IntervalsActions.js:113 +msgid "five" msgstr "" -#: js/musicutils.js:788 -#: js/synthutils.js:94 -#.TRANS: musical instrument -msgid "bassoon" +#: js/turtleactions/IntervalsActions.js:113 +msgid "six" msgstr "" -#: js/musicutils.js:789 -#: js/synthutils.js:96 -#.TRANS: musical instrument -msgid "celeste" +#: js/turtleactions/IntervalsActions.js:113 +msgid "seven" msgstr "" -#: js/musicutils.js:791 -#: js/musicutils.js:1123 -#: js/musicutils.js:1131 -#: js/temperament.js:650 -#.TRANS: musical temperament -msgid "equal" +#: js/turtleactions/IntervalsActions.js:113 +msgid "eight" msgstr "" -#: js/musicutils.js:793 -#: js/musicutils.js:1125 -#: js/musicutils.js:1133 -#.TRANS: musical temperament -msgid "Pythagorean" +#: js/turtleactions/IntervalsActions.js:113 +msgid "nine" msgstr "" -#: js/musicutils.js:795 -#: js/musicutils.js:1124 -#: js/musicutils.js:1132 -#.TRANS: musical temperament -msgid "just intonation" +#: js/turtleactions/IntervalsActions.js:119 +msgid "a" msgstr "" -#: js/musicutils.js:797 -#: js/musicutils.js:1126 -#: js/musicutils.js:1127 -#: js/musicutils.js:1134 -#: js/musicutils.js:1135 -#.TRANS: musical temperament -msgid "meantone" +#: js/turtleactions/IntervalsActions.js:120 +msgid "below" msgstr "" -#: js/musicutils.js:814 -msgid "major 7th" +#: js/turtleactions/IntervalsActions.js:124 +msgid "above" msgstr "" -#: js/musicutils.js:815 -msgid "minor 7th" +#: js/turtleactions/IntervalsActions.js:131 +msgid "plus" msgstr "" -#: js/musicutils.js:816 -msgid "dominant 7th" +#: js/turtleactions/IntervalsActions.js:139 +msgid " below" msgstr "" -#: js/musicutils.js:817 -msgid "minor-major 7th" +#: js/turtleactions/IntervalsActions.js:257 +msgid "Adding missing pitch number 0." msgstr "" -#: js/musicutils.js:818 -msgid "fully-diminished 7th" +#: js/turtleactions/IntervalsActions.js:265 +msgid "Ignoring pitch numbers less than zero or greater than eleven." msgstr "" -#: js/musicutils.js:819 -msgid "half-diminished 7th" +#: js/turtleactions/IntervalsActions.js:271 +msgid "Ignoring duplicate pitch numbers." msgstr "" -#: js/musicutils.js:4379 -#: js/musicutils.js:4416 -msgid "current" +#: js/turtleactions/ToneActions.js:134 +msgid "Vibrato intensity must be between 1 and 100." msgstr "" -#: js/musicutils.js:4382 -#: js/musicutils.js:4407 -msgid "next" +#: js/turtleactions/ToneActions.js:139 +msgid "Vibrato rate must be greater than 0." msgstr "" -#: js/musicutils.js:4385 -#: js/musicutils.js:4412 -msgid "previous" +#: js/turtleactions/ToneActions.js:192 +#: js/turtleactions/ToneActions.js:265 +#.TRANS: Depth is the intesity of the tremolo or chorus effect. +msgid "Depth is out of range." msgstr "" -#: js/synthutils.js:104 -#.TRANS: simple monotone synthesizer -msgid "simple-2" +#: js/turtleactions/ToneActions.js:301 +msgid "Distortion must be from 0 to 100." msgstr "" -#: js/synthutils.js:106 -#.TRANS: simple monotone synthesizer -msgid "simple-3" +#: js/turtleactions/ToneActions.js:332 +#.TRANS: partials components in a harmonic series +msgid "Partial must be greater than or equal to 0." msgstr "" -#: js/synthutils.js:108 -#.TRANS: simple monotone synthesizer -msgid "simple-4" +#: js/turtleactions/ToneActions.js:378 +#: js/turtleactions/ToneActions.js:417 +#: js/turtleactions/ToneActions.js:456 +#: js/widgets/timbre.js:782 +msgid "Unable to use synth due to existing oscillator" msgstr "" -#: js/synthutils.js:141 -#.TRANS: musical instrument -msgid "taiko" +#: js/turtleactions/ToneActions.js:388 +#: js/turtleactions/ToneActions.js:427 +msgid "The input cannot be negative." msgstr "" -#: js/modewidget.js:86 -#: js/modewidget.js:88 -#: js/modewidget.js:642 -#: js/modewidget.js:644 -#: js/modewidget.js:712 -#: js/modewidget.js:714 -#: js/temperament.js:2078 -#: js/rhythmruler.js:189 -#: js/rhythmruler.js:1410 -#: js/rhythmruler.js:1412 -#: js/rhythmruler.js:1435 -#: js/rhythmruler.js:1437 -#: js/meterwidget.js:89 -#: js/meterwidget.js:91 +#: js/widgets/modewidget.js:86 +#: js/widgets/modewidget.js:88 +#: js/widgets/modewidget.js:642 +#: js/widgets/modewidget.js:644 +#: js/widgets/modewidget.js:712 +#: js/widgets/modewidget.js:714 +#: js/widgets/meterwidget.js:194 +#: js/widgets/meterwidget.js:196 +#: js/widgets/temperament.js:2236 +#: js/widgets/rhythmruler.js:457 +#: js/widgets/rhythmruler.js:1790 +#: js/widgets/rhythmruler.js:1792 +#: js/widgets/rhythmruler.js:1816 +#: js/widgets/rhythmruler.js:1818 msgid "Play all" msgstr "" -#: js/modewidget.js:115 -#: js/pitchstaircase.js:641 -#: js/phrasemaker.js:339 -#: js/pitchdrummatrix.js:94 -#: js/pitchslider.js:125 -#: js/temperament.js:2083 -#: js/musickeyboard.js:530 -#: js/timbre.js:756 -#: js/meterwidget.js:124 -#: js/arpeggio.js:103 +#: js/widgets/modewidget.js:115 +#: js/widgets/meterwidget.js:229 +#: js/widgets/pitchdrummatrix.js:166 +#: js/widgets/pitchslider.js:125 +#: js/widgets/pitchstaircase.js:641 +#: js/widgets/temperament.js:2244 +#: js/widgets/timbre.js:756 +#: js/widgets/arpeggio.js:103 +#: js/widgets/musickeyboard.js:688 +#: js/widgets/phrasemaker.js:550 msgid "Save" msgstr "" -#: js/modewidget.js:121 -#: js/pitchstaircase.js:686 -#: js/phrasemaker.js:356 -#: js/pitchdrummatrix.js:109 -#: js/musickeyboard.js:534 -#: js/rhythmruler.js:269 -#: js/arpeggio.js:118 +#: js/widgets/modewidget.js:121 +#: js/widgets/pitchdrummatrix.js:181 +#: js/widgets/pitchstaircase.js:686 +#: js/widgets/arpeggio.js:118 +#: js/widgets/musickeyboard.js:696 +#: js/widgets/phrasemaker.js:567 +#: js/widgets/rhythmruler.js:601 #.TRANS: clear all subdivisions from the ruler. msgid "Clear" msgstr "" -#: js/modewidget.js:127 +#: js/widgets/modewidget.js:127 msgid "Rotate counter clockwise" msgstr "" -#: js/modewidget.js:133 +#: js/widgets/modewidget.js:133 msgid "Rotate clockwise" msgstr "" -#: js/modewidget.js:139 +#: js/widgets/modewidget.js:139 msgid "Invert" msgstr "" -#: js/modewidget.js:145 -#: js/pitchstaircase.js:678 -#: js/rhythmruler.js:258 -#: js/timbre.js:963 +#: js/widgets/modewidget.js:145 +#: js/widgets/pitchstaircase.js:678 +#: js/widgets/timbre.js:963 +#: js/widgets/rhythmruler.js:578 msgid "Undo" msgstr "" -#: js/modewidget.js:163 +#: js/widgets/modewidget.js:163 #.TRANS: A circle of notes represents the musical mode. msgid "Click in the circle to select notes for the mode." msgstr "" -#: js/modewidget.js:1017 -#: js/pitchstaircase.js:580 -#: js/phrasemaker.js:4855 -#: js/temperament.js:1754 -#: js/rhythmruler.js:1865 -#: js/rhythmruler.js:2081 -#: js/tempo.js:414 +#: js/widgets/modewidget.js:1017 +#: js/widgets/pitchstaircase.js:580 +#: js/widgets/temperament.js:1929 +#: js/widgets/tempo.js:414 +#: js/widgets/phrasemaker.js:5356 +#: js/widgets/rhythmruler.js:2254 +#: js/widgets/rhythmruler.js:2472 msgid "New action block generated!" msgstr "" -#: js/oscilloscope.js:79 -msgid "Zoom In" -msgstr "" - -#: js/oscilloscope.js:88 -msgid "Zoom Out" -msgstr "" - -#: js/pitchstaircase.js:624 -msgid "Play chord" -msgstr "" - -#: js/pitchstaircase.js:632 -msgid "Play scale" +#: js/widgets/meterwidget.js:275 +msgid "Reset" msgstr "" -#: js/pitchstaircase.js:696 -msgid "Click on a note to create a new step." +#: js/widgets/meterwidget.js:301 +msgid "Click in the circle to select strong beats for the meter." msgstr "" -#: js/phrasemaker.js:363 -msgid "Export" +#: js/widgets/oscilloscope.js:79 +msgid "Zoom In" msgstr "" -#: js/phrasemaker.js:370 -msgid "Sort" +#: js/widgets/oscilloscope.js:88 +msgid "Zoom Out" msgstr "" -#: js/phrasemaker.js:373 -#: js/musickeyboard.js:559 -msgid "Add note" +#: js/widgets/pitchdrummatrix.js:356 +#: js/widgets/pitchdrummatrix.js:752 +msgid "Click in the grid to map notes to drums." msgstr "" -#: js/phrasemaker.js:764 -msgid "Click on the table to add notes." +#: js/widgets/pitchslider.js:103 +msgid "Move up" msgstr "" -#: js/phrasemaker.js:2414 -#: js/phrasemaker.js:2543 -msgid "tuplet value" +#: js/widgets/pitchslider.js:114 +msgid "Move down" msgstr "" -#: js/pitchdrummatrix.js:270 -#: js/pitchdrummatrix.js:639 -msgid "Click in the grid to map notes to drums." +#: js/widgets/pitchslider.js:136 +msgid "Click on the slider to create a note block." msgstr "" -#: js/pitchslider.js:103 -msgid "Move up" +#: js/widgets/pitchstaircase.js:624 +msgid "Play chord" msgstr "" -#: js/pitchslider.js:114 -msgid "Move down" +#: js/widgets/pitchstaircase.js:632 +msgid "Play scale" msgstr "" -#: js/pitchslider.js:136 -msgid "Click on the slider to create a note block." +#: js/widgets/pitchstaircase.js:696 +msgid "Click on a note to create a new step." msgstr "" -#: js/temperament.js:215 +#: js/widgets/temperament.js:321 msgid "back to 2:1 octave space" msgstr "" -#: js/temperament.js:323 +#: js/widgets/temperament.js:447 msgid "edit" msgstr "" -#: js/temperament.js:330 -#: js/temperament.js:332 -#: js/temperament.js:1336 -#: js/temperament.js:1338 +#: js/widgets/temperament.js:454 +#: js/widgets/temperament.js:456 +#: js/widgets/temperament.js:1493 +#: js/widgets/temperament.js:1495 msgid "close" msgstr "" -#: js/temperament.js:423 -#: js/temperament.js:736 -#: js/temperament.js:743 -#: js/temperament.js:845 -#: js/temperament.js:935 -#: js/temperament.js:942 -#: js/temperament.js:1015 -#: js/temperament.js:1284 -#: js/temperament.js:1354 -#: js/temperament.js:1430 +#: js/widgets/temperament.js:552 +#: js/widgets/temperament.js:877 +#: js/widgets/temperament.js:884 +#: js/widgets/temperament.js:986 +#: js/widgets/temperament.js:1080 +#: js/widgets/temperament.js:1087 +#: js/widgets/temperament.js:1160 +#: js/widgets/temperament.js:1433 +#: js/widgets/temperament.js:1511 +#: js/widgets/temperament.js:1596 msgid "done" msgstr "" -#: js/temperament.js:477 -#: js/temperament.js:482 -#: js/temperament.js:918 +#: js/widgets/temperament.js:610 +#: js/widgets/temperament.js:615 +#: js/widgets/temperament.js:1063 msgid "ratio" msgstr "" -#: js/temperament.js:483 +#: js/widgets/temperament.js:616 msgid "interval" msgstr "" -#: js/temperament.js:611 +#: js/widgets/temperament.js:744 msgid "non scalar" msgstr "" -#: js/temperament.js:650 +#: js/widgets/temperament.js:787 msgid "ratios" msgstr "" -#: js/temperament.js:650 +#: js/widgets/temperament.js:787 msgid "arbitrary" msgstr "" -#: js/temperament.js:719 +#: js/widgets/temperament.js:860 msgid "number of divisions" msgstr "" -#: js/temperament.js:741 -#: js/temperament.js:858 -#: js/temperament.js:940 -#: js/temperament.js:1033 +#: js/widgets/temperament.js:882 +#: js/widgets/temperament.js:999 +#: js/widgets/temperament.js:1085 +#: js/widgets/temperament.js:1178 msgid "preview" msgstr "" -#: js/temperament.js:788 +#: js/widgets/temperament.js:929 msgid "The Number of divisions is too large." msgstr "" -#: js/temperament.js:921 +#: js/widgets/temperament.js:1066 msgid "recursion" msgstr "" -#: js/temperament.js:1450 +#: js/widgets/temperament.js:1616 msgid "The octave ratio has changed. This changes temperament significantly." msgstr "" -#: js/temperament.js:2087 +#: js/widgets/temperament.js:2248 msgid "Table" msgstr "" -#: js/temperament.js:2185 +#: js/widgets/temperament.js:2356 msgid "Add pitches" msgstr "" -#: js/musickeyboard.js:570 -msgid "Metronome" +#: js/widgets/tempo.js:78 +#: js/widgets/tempo.js:97 +#: js/widgets/tempo.js:99 +#: js/widgets/aiwidget.js:134 +#: js/widgets/aiwidget.js:136 +#: js/widgets/rhythmruler.js:681 +#: js/widgets/rhythmruler.js:683 +#: js/widgets/rhythmruler.js:1864 +#: js/widgets/rhythmruler.js:1866 +#: js/widgets/sampler.js:180 +#: js/widgets/sampler.js:182 +msgid "Pause" msgstr "" -#: js/musickeyboard.js:1296 -#: plugins/rodi.rtp:193 -msgid "duration" +#: js/widgets/tempo.js:113 +msgid "Save tempo" msgstr "" -#: js/musickeyboard.js:2840 -msgid "New action blocks generated!" +#: js/widgets/tempo.js:144 +msgid "speed up" msgstr "" -#: js/musickeyboard.js:2841 -msgid "New action block generated" +#: js/widgets/tempo.js:150 +msgid "slow down" msgstr "" -#: js/musickeyboard.js:2984 -#: js/musickeyboard.js:2992 -msgid "MIDI device present." +#: js/widgets/tempo.js:194 +msgid "Adjust the tempo with the buttons." msgstr "" -#: js/musickeyboard.js:2995 -msgid "No MIDI device found." +#: js/widgets/tempo.js:261 +msgid "Please enter a number between 30 and 1000" msgstr "" -#: js/musickeyboard.js:3000 -msgid "Failed to get MIDI access in browser." +#: js/widgets/tempo.js:268 +#: js/widgets/tempo.js:271 +msgid "The beats per minute must be between 30 and 1000." msgstr "" -#: js/rhythmruler.js:202 -msgid "Save rhythms" +#: js/widgets/tempo.js:287 +msgid "The beats per minute must be below 1000." msgstr "" -#: js/rhythmruler.js:222 -msgid "Save drum machine" +#: js/widgets/tempo.js:303 +msgid "The beats per minute must be above 30" msgstr "" -#: js/rhythmruler.js:263 -#.TRANS: user can tap out a rhythm by clicking on a ruler. -msgid "Tap a rhythm" +#: js/widgets/timbre.js:766 +msgid "Synthesizer" msgstr "" -#: js/rhythmruler.js:342 -#: js/rhythmruler.js:344 -#: js/rhythmruler.js:1481 -#: js/rhythmruler.js:1483 -#: js/sampler.js:110 -#: js/sampler.js:112 -#: js/tempo.js:78 -#: js/tempo.js:97 -#: js/tempo.js:99 -msgid "Pause" +#: js/widgets/timbre.js:789 +msgid "Oscillator" msgstr "" -#: js/rhythmruler.js:478 -msgid "Click on the ruler to divide it." +#: js/widgets/timbre.js:840 +msgid "Envelope" msgstr "" -#: js/rhythmruler.js:603 -#: js/rhythmruler.js:605 -#: js/rhythmruler.js:804 -#: js/rhythmruler.js:806 -#: js/rhythmruler.js:1386 -#: js/rhythmruler.js:1388 -msgid "tap a rhythm" +#: js/widgets/timbre.js:886 +#: planet/js/GlobalTag.js:50 +#.TRANS: On the Planet, we use labels to tag projects. +msgid "Effects" msgstr "" -#: js/rhythmruler.js:1084 -msgid "Maximum value of 256 has been exceeded." +#: js/widgets/timbre.js:904 +msgid "Filter" msgstr "" -#: js/sampler.js:137 -msgid "Warning: Sample is bigger than 1MB." +#: js/widgets/timbre.js:946 +msgid "Add filter" msgstr "" -#: js/sampler.js:142 -msgid "Upload failed: Sample is not a .wav file." +#: js/widgets/timbre.js:987 +msgid "Click on buttons to open the timbre design tools." msgstr "" -#: js/sampler.js:164 -msgid "A new sample block was generated." +#: js/widgets/timbre.js:1273 +msgid "harmonicity" msgstr "" -#: js/sampler.js:255 -msgid "Upload sample" +#: js/widgets/timbre.js:1340 +#: js/widgets/timbre.js:1406 +msgid "modulation index" msgstr "" -#: js/sampler.js:306 -msgid "Save sample" +#: js/widgets/timbre.js:1484 +msgid "vibrato amount" msgstr "" -#: js/sampler.js:697 -#.TRANS: The reference tone is a sound used for comparison. -msgid "reference tone" +#: js/widgets/timbre.js:1919 +msgid "Filter already present." msgstr "" -#: js/tempo.js:113 -msgid "Save tempo" +#: js/widgets/timbre.js:2322 +msgid "delay (MS)" msgstr "" -#: js/tempo.js:144 -msgid "speed up" +#: js/widgets/timbre.js:2507 +msgid "distortion amount" msgstr "" -#: js/tempo.js:150 -msgid "slow down" +#: js/widgets/aiwidget.js:180 +#: js/widgets/sampler.js:227 +msgid "Warning: Sample is bigger than 1MB." msgstr "" -#: js/tempo.js:194 -msgid "Adjust the tempo with the buttons." +#: js/widgets/aiwidget.js:539 +msgid "New start block generated" msgstr "" -#: js/tempo.js:261 -msgid "Please enter a number between 30 and 1000" +#: js/widgets/aiwidget.js:541 +msgid "MIDI loading. This may take some time depending upon the number of notes in the track" msgstr "" -#: js/tempo.js:268 -#: js/tempo.js:271 -msgid "The beats per minute must be between 30 and 1000." +#: js/widgets/aiwidget.js:551 +#: js/widgets/sampler.js:254 +msgid "Upload failed: Sample is not a .wav file." msgstr "" -#: js/tempo.js:287 -msgid "The beats per minute must be below 1000." +#: js/widgets/aiwidget.js:679 +#: js/widgets/sampler.js:432 +msgid "Save sample" msgstr "" -#: js/tempo.js:303 -msgid "The beats per minute must be above 30" +#: js/widgets/aiwidget.js:701 +msgid "AI Music" msgstr "" -#: js/timbre.js:766 -msgid "Synthesizer" +#: js/widgets/arpeggio.js:239 +msgid "Click in the grid to add steps to the arpeggio." msgstr "" -#: js/timbre.js:789 -msgid "Oscillator" +#: js/widgets/help.js:95 +#: js/widgets/help.js:125 +#: js/widgets/help.js:146 +#: js/widgets/help.js:158 +#: js/widgets/help.js:376 +#: js/widgets/help.js:391 +msgid "Take a tour" msgstr "" -#: js/timbre.js:840 -msgid "Envelope" +#: js/widgets/musickeyboard.js:725 +#: js/widgets/phrasemaker.js:584 +msgid "Add note" msgstr "" -#: js/timbre.js:886 -#: js/GlobalTag.js:50 -#.TRANS: On the Planet, we use labels to tag projects. -msgid "Effects" +#: js/widgets/musickeyboard.js:744 +msgid "Metronome" +msgstr "" + +#: js/widgets/musickeyboard.js:1549 +#: plugins/rodi.rtp:193 +msgid "duration" +msgstr "" + +#: js/widgets/musickeyboard.js:3179 +msgid "New action blocks generated" +msgstr "" + +#: js/widgets/musickeyboard.js:3180 +msgid "New action block generated" msgstr "" -#: js/timbre.js:904 -msgid "Filter" +#: js/widgets/musickeyboard.js:3365 +#: js/widgets/musickeyboard.js:3373 +msgid "MIDI device present." msgstr "" -#: js/timbre.js:946 -msgid "Add filter" +#: js/widgets/musickeyboard.js:3376 +msgid "No MIDI device found." msgstr "" -#: js/timbre.js:987 -msgid "Click on buttons to open the timbre design tools." +#: js/widgets/musickeyboard.js:3386 +msgid "Failed to get MIDI access in browser." msgstr "" -#: js/timbre.js:1273 -msgid "harmonicity" +#: js/widgets/phrasemaker.js:574 +msgid "Export" msgstr "" -#: js/timbre.js:1340 -#: js/timbre.js:1406 -msgid "modulation index" +#: js/widgets/phrasemaker.js:581 +msgid "Sort" msgstr "" -#: js/timbre.js:1484 -msgid "vibrato amount" +#: js/widgets/phrasemaker.js:975 +msgid "Click on the table to add notes." msgstr "" -#: js/timbre.js:1919 -msgid "Filter already present." +#: js/widgets/phrasemaker.js:2677 +#: js/widgets/phrasemaker.js:2819 +msgid "tuplet value" msgstr "" -#: js/timbre.js:2322 -msgid "delay (MS)" +#: js/widgets/rhythmruler.js:486 +msgid "Save rhythms" msgstr "" -#: js/timbre.js:2507 -msgid "distortion amount" +#: js/widgets/rhythmruler.js:512 +msgid "Save drum machine" msgstr "" -#: js/meterwidget.js:170 -msgid "Reset" +#: js/widgets/rhythmruler.js:589 +#.TRANS: user can tap out a rhythm by clicking on a ruler. +msgid "Tap a rhythm" msgstr "" -#: js/meterwidget.js:196 -msgid "Click in the circle to select strong beats for the meter." +#: js/widgets/rhythmruler.js:817 +msgid "Click on the ruler to divide it." msgstr "" -#: js/arpeggio.js:239 -msgid "Click in the grid to add steps to the arpeggio." +#: js/widgets/rhythmruler.js:950 +#: js/widgets/rhythmruler.js:952 +#: js/widgets/rhythmruler.js:1152 +#: js/widgets/rhythmruler.js:1154 +#: js/widgets/rhythmruler.js:1765 +#: js/widgets/rhythmruler.js:1767 +msgid "tap a rhythm" msgstr "" -#: js/ProjectStorage.js:243 -msgid "anonymous" +#: js/widgets/rhythmruler.js:1459 +msgid "Maximum value of 256 has been exceeded." msgstr "" -#: js/GlobalCard.js:68 -msgid "Share" +#: js/widgets/sampler.js:237 +msgid "Recording started..." msgstr "" -#: js/GlobalCard.js:74 -msgid "Flags" +#: js/widgets/sampler.js:245 +msgid "Recording complete..." msgstr "" -#: js/LocalCard.js:36 -msgid "View published project" +#: js/widgets/sampler.js:283 +msgid "A new sample block was generated." msgstr "" -#: js/LocalCard.js:42 -msgid "Publish project" +#: js/widgets/sampler.js:378 +msgid "Upload sample" msgstr "" -#: js/LocalCard.js:51 -msgid "Edit project" +#: js/widgets/sampler.js:399 +msgid "Warning: Your sample cannot be loaded because it is >1MB." msgstr "" -#: js/LocalCard.js:52 -msgid "Delete project" +#: js/widgets/sampler.js:448 +msgid "Toggle Mic" msgstr "" -#: js/LocalCard.js:53 -msgid "Download project" +#: js/widgets/sampler.js:458 +msgid "Playback" msgstr "" -#: js/LocalCard.js:55 -msgid "Duplicate project" +#: js/widgets/sampler.js:979 +#.TRANS: The reference tone is a sound used for comparison. +msgid "reference tone" msgstr "" -#: js/GlobalTag.js:28 +#: planet/js/GlobalTag.js:28 #.TRANS: On the Planet, we use labels to tag projects. msgid "All Projects" msgstr "" -#: js/GlobalTag.js:30 -#: js/StringHelper.js:37 +#: planet/js/GlobalTag.js:30 +#: planet/js/StringHelper.js:37 #.TRANS: On the Planet, we use labels to tag projects. msgid "My Projects" msgstr "" -#: js/GlobalTag.js:32 +#: planet/js/GlobalTag.js:32 #.TRANS: On the Planet, we use labels to tag projects. msgid "Examples" msgstr "" -#: js/GlobalTag.js:34 +#: planet/js/GlobalTag.js:34 #.TRANS: On the Planet, we use labels to tag projects. msgid "Music" msgstr "" -#: js/GlobalTag.js:36 +#: planet/js/GlobalTag.js:36 #.TRANS: On the Planet, we use labels to tag projects. msgid "Art" msgstr "" -#: js/GlobalTag.js:38 +#: planet/js/GlobalTag.js:38 #.TRANS: On the Planet, we use labels to tag projects. msgid "Math" msgstr "" -#: js/GlobalTag.js:40 +#: planet/js/GlobalTag.js:40 #.TRANS: On the Planet, we use labels to tag projects. msgid "Interactive" msgstr "" -#: js/GlobalTag.js:42 +#: planet/js/GlobalTag.js:42 #.TRANS: On the Planet, we use labels to tag projects. msgid "Design" msgstr "" -#: js/GlobalTag.js:44 +#: planet/js/GlobalTag.js:44 #.TRANS: On the Planet, we use labels to tag projects. msgid "Game" msgstr "" -#: js/GlobalTag.js:46 +#: planet/js/GlobalTag.js:46 #.TRANS: On the Planet, we use labels to tag projects. msgid "Media" msgstr "" -#: js/GlobalTag.js:48 +#: planet/js/GlobalTag.js:48 #.TRANS: On the Planet, we use labels to tag projects. msgid "Sensors" msgstr "" -#: js/GlobalTag.js:52 +#: planet/js/GlobalTag.js:52 #.TRANS: On the Planet, we use labels to tag projects. msgid "Code Snippet" msgstr "" -#: js/helper.js:149 -#: js/StringHelper.js:49 -msgid "Show more tags" +#: planet/js/LocalCard.js:36 +msgid "View published project" msgstr "" -#: js/helper.js:150 -msgid "Show fewer tags" +#: planet/js/LocalCard.js:42 +msgid "Publish project" +msgstr "" + +#: planet/js/LocalCard.js:51 +msgid "Edit project" +msgstr "" + +#: planet/js/LocalCard.js:52 +msgid "Delete project" +msgstr "" + +#: planet/js/LocalCard.js:53 +msgid "Download project" +msgstr "" + +#: planet/js/LocalCard.js:55 +msgid "Duplicate project" +msgstr "" + +#: planet/js/ProjectStorage.js:243 +msgid "anonymous" +msgstr "" + +#: planet/js/SaveInterface.js:34 +msgid "Open in Music Blocks" +msgstr "" + +#: planet/js/SaveInterface.js:35 +msgid "Open in Turtle Blocks" +msgstr "" + +#: planet/js/GlobalCard.js:68 +msgid "Share" +msgstr "" + +#: planet/js/GlobalCard.js:74 +msgid "Flags" +msgstr "" + +#: planet/js/GlobalPlanet.js:35 +msgid "No results found." +msgstr "" + +#: planet/js/GlobalPlanet.js:51 +msgid "Remix of" +msgstr "" + +#: planet/js/GlobalPlanet.js:509 +msgid "Cannot connect to server" msgstr "" -#: js/ProjectViewer.js:30 +#: planet/js/ProjectViewer.js:30 msgid "Error: Report could not be submitted. Try again later." msgstr "" -#: js/ProjectViewer.js:31 +#: planet/js/ProjectViewer.js:31 msgid "Thank you for reporting this project. A moderator will review the project shortly, to verify violation of the Sugar Labs Code of Conduct." msgstr "" -#: js/ProjectViewer.js:32 -#: js/StringHelper.js:62 -#: js/StringHelper.js:64 -#: js/StringHelper.js:68 +#: planet/js/ProjectViewer.js:32 +#: planet/js/StringHelper.js:62 +#: planet/js/StringHelper.js:64 +#: planet/js/StringHelper.js:68 msgid "Report Project" msgstr "" -#: js/ProjectViewer.js:33 -#: js/StringHelper.js:63 +#: planet/js/ProjectViewer.js:33 +#: planet/js/StringHelper.js:63 msgid "Project Reported" msgstr "" -#: js/ProjectViewer.js:34 +#: planet/js/ProjectViewer.js:34 msgid "Report description required" msgstr "" -#: js/ProjectViewer.js:35 +#: planet/js/ProjectViewer.js:35 msgid "Report description too long" msgstr "" -#: js/StringHelper.js:30 +#: planet/js/Publisher.js:30 +msgid "Feature unavailable - cannot connect to server. Reload Music Blocks to try again." +msgstr "" + +#: planet/js/Publisher.js:220 +#: planet/js/Publisher.js:237 +msgid "This field is required" +msgstr "" + +#: planet/js/Publisher.js:227 +msgid "Title too long" +msgstr "" + +#: planet/js/Publisher.js:244 +msgid "Description too long" +msgstr "" + +#: planet/js/Publisher.js:341 +msgid "Server Error" +msgstr "" + +#: planet/js/Publisher.js:341 +msgid "Try Again" +msgstr "" + +#: planet/js/StringHelper.js:30 msgid "Planet" msgstr "" -#: js/StringHelper.js:31 +#: planet/js/StringHelper.js:31 msgid "Close Planet" msgstr "" -#: js/StringHelper.js:32 +#: planet/js/StringHelper.js:32 msgid "Open project from file" msgstr "" -#: js/StringHelper.js:34 +#: planet/js/StringHelper.js:34 msgid "Local" msgstr "" -#: js/StringHelper.js:35 +#: planet/js/StringHelper.js:35 msgid "Global" msgstr "" -#: js/StringHelper.js:36 +#: planet/js/StringHelper.js:36 msgid "Search for a project" msgstr "" -#: js/StringHelper.js:38 +#: planet/js/StringHelper.js:38 msgid "Publish Project" msgstr "" -#: js/StringHelper.js:40 +#: planet/js/StringHelper.js:40 msgid "Tags (max 5)" msgstr "" -#: js/StringHelper.js:41 -#: js/StringHelper.js:61 +#: planet/js/StringHelper.js:41 +#: planet/js/StringHelper.js:61 msgid "Description" msgstr "" -#: js/StringHelper.js:42 -#: js/StringHelper.js:67 +#: planet/js/StringHelper.js:42 +#: planet/js/StringHelper.js:67 msgid "Submit" msgstr "" -#: js/StringHelper.js:43 -#: js/StringHelper.js:47 +#: planet/js/StringHelper.js:43 +#: planet/js/StringHelper.js:47 msgid "Cancel" msgstr "" -#: js/StringHelper.js:44 +#: planet/js/StringHelper.js:44 msgid "Delete \\"\\"?" msgstr "" -#: js/StringHelper.js:45 +#: planet/js/StringHelper.js:45 msgid "Permanently delete project \\"\\"?" msgstr "" -#: js/StringHelper.js:48 +#: planet/js/StringHelper.js:48 msgid "Explore Projects" msgstr "" -#: js/StringHelper.js:50 +#: planet/js/StringHelper.js:49 +#: planet/js/helper.js:149 +msgid "Show more tags" +msgstr "" + +#: planet/js/StringHelper.js:50 msgid "Most recent" msgstr "" -#: js/StringHelper.js:51 +#: planet/js/StringHelper.js:51 msgid "Most liked" msgstr "" -#: js/StringHelper.js:52 +#: planet/js/StringHelper.js:52 msgid "Most downloaded" msgstr "" -#: js/StringHelper.js:53 +#: planet/js/StringHelper.js:53 msgid "A-Z" msgstr "" -#: js/StringHelper.js:54 +#: planet/js/StringHelper.js:54 msgid "Sort by" msgstr "" -#: js/StringHelper.js:55 +#: planet/js/StringHelper.js:55 msgid "Load More Projects" msgstr "" -#: js/StringHelper.js:56 +#: planet/js/StringHelper.js:56 msgid "Last Updated" msgstr "" -#: js/StringHelper.js:57 +#: planet/js/StringHelper.js:57 msgid "Creation Date" msgstr "" -#: js/StringHelper.js:58 +#: planet/js/StringHelper.js:58 msgid "Number of Downloads:" msgstr "" -#: js/StringHelper.js:59 +#: planet/js/StringHelper.js:59 msgid "Number of Likes:" msgstr "" -#: js/StringHelper.js:60 +#: planet/js/StringHelper.js:60 msgid "Tags:" msgstr "" -#: js/StringHelper.js:65 +#: planet/js/StringHelper.js:65 msgid "Report projects which violate the Sugar Labs Code of Conduct." msgstr "" -#: js/StringHelper.js:66 +#: planet/js/StringHelper.js:66 msgid "Reason for reporting project" msgstr "" -#: js/StringHelper.js:70 +#: planet/js/StringHelper.js:70 msgid "Download as File" msgstr "" -#: js/GlobalPlanet.js:35 -msgid "No results found." -msgstr "" - -#: js/GlobalPlanet.js:51 -msgid "Remix of" -msgstr "" - -#: js/GlobalPlanet.js:509 -msgid "Cannot connect to server" -msgstr "" - -#: js/Publisher.js:30 -msgid "Feature unavailable - cannot connect to server. Reload Music Blocks to try again." -msgstr "" - -#: js/Publisher.js:218 -#: js/Publisher.js:235 -msgid "This field is required" -msgstr "" - -#: js/Publisher.js:225 -msgid "Title too long" +#: planet/js/helper.js:150 +msgid "Show fewer tags" msgstr "" -#: js/Publisher.js:242 -msgid "Description too long" +#: plugins/accelerometer.rtp:48 +msgid "motion x" msgstr "" -#: js/Publisher.js:339 -msgid "Server Error" +#: plugins/accelerometer.rtp:56 +msgid "motion y" msgstr "" -#: js/Publisher.js:339 -msgid "Try Again" +#: plugins/accelerometer.rtp:64 +msgid "motion z" msgstr "" -#: js/SaveInterface.js:34 -msgid "Open in Music Blocks" +#: plugins/facebook.rtp:27 +msgid "publish" msgstr "" -#: js/SaveInterface.js:35 -msgid "Open in Turtle Blocks" +#: plugins/maths.rtp:62 +msgid "power" msgstr "" -#: plugins/weather.rtp:68 -#: plugins/weather.rtp:97 -msgid "Days ahead must be in the range of -1 to 5." +#: plugins/maths.rtp:62 +msgid "base" msgstr "" -#: plugins/weather.rtp:122 -msgid "forecast" +#: plugins/maths.rtp:62 +msgid "exp" msgstr "" -#: plugins/weather.rtp:123 -#: plugins/weather.rtp:137 -#: plugins/weather.rtp:150 -msgid "city" +#: plugins/maths.rtp:99 +msgid "floor" msgstr "" -#: plugins/weather.rtp:124 -#: plugins/weather.rtp:138 -#: plugins/weather.rtp:151 -msgid "day" +#: plugins/maths.rtp:104 +msgid "ceiling" msgstr "" -#: plugins/weather.rtp:136 -msgid "high" +#: plugins/maths.rtp:109 +msgid "to degrees" msgstr "" -#: plugins/weather.rtp:149 -msgid "low" +#: plugins/maths.rtp:114 +msgid "to radians" msgstr "" #: plugins/nutrition.rtp:104 @@ -9458,45 +9867,6 @@ msgstr "" msgid "water" msgstr "" -#: plugins/maths.rtp:62 -#: plugins/examples.rtp:93 -msgid "power" -msgstr "" - -#: plugins/maths.rtp:62 -#: plugins/examples.rtp:93 -msgid "base" -msgstr "" - -#: plugins/maths.rtp:62 -#: plugins/examples.rtp:93 -msgid "exp" -msgstr "" - -#: plugins/maths.rtp:99 -#: plugins/examples.rtp:130 -msgid "floor" -msgstr "" - -#: plugins/maths.rtp:104 -#: plugins/examples.rtp:135 -msgid "ceiling" -msgstr "" - -#: plugins/maths.rtp:109 -#: plugins/examples.rtp:140 -msgid "to degrees" -msgstr "" - -#: plugins/maths.rtp:114 -#: plugins/examples.rtp:145 -msgid "to radians" -msgstr "" - -#: plugins/facebook.rtp:27 -msgid "publish" -msgstr "" - #: plugins/rodi.rtp:172 msgid "blink" msgstr "" @@ -9525,18 +9895,66 @@ msgstr "" msgid "move" msgstr "" -#: plugins/accelerometer.rtp:48 -msgid "motion x" +#: plugins/weather.rtp:68 +#: plugins/weather.rtp:97 +msgid "Days ahead must be in the range of -1 to 5." msgstr "" -#: plugins/accelerometer.rtp:56 -msgid "motion y" +#: plugins/weather.rtp:122 +msgid "forecast" msgstr "" -#: plugins/accelerometer.rtp:64 -msgid "motion z" +#: plugins/weather.rtp:123 +#: plugins/weather.rtp:137 +#: plugins/weather.rtp:150 +msgid "city" +msgstr "" + +#: plugins/weather.rtp:124 +#: plugins/weather.rtp:138 +#: plugins/weather.rtp:151 +msgid "day" +msgstr "" + +#: plugins/weather.rtp:136 +msgid "high" +msgstr "" + +#: plugins/weather.rtp:149 +msgid "low" msgstr "" +#: js/toolbar.js:70 + +#: js/toolbar.js:130 + +#: js/toolbar.js:194 + +#: js/toolbar.js:249 + +#~msgid "Toggle JavaScript Editor" +#~msgstr "" + +#: js/EnsembleBlocks.js:643 + +#~msgid "The Turrle pitch block returns the current pitch number being played by the specified turtle." +#~msgstr "" + +#: js/PitchActions.js:88 + +#~msgid "The Scalar Step Block must be used inside of a Note Block." +#~msgstr "" + +#: js/PitchActions.js:107 + +#~msgid "The Scalar Step Block must be preceded by a Pitch Block." +#~msgstr "" + +#: js/musickeyboard.js:2840 + +#~msgid "New action blocks generated!" +#~msgstr "" + #: js/toolbar.js:110 #: js/toolbar.js:204 @@ -9877,11 +10295,6 @@ msgstr "" #~msgid "The Time block returns the number of seconds that the program has been running." #~msgstr "" -#: js/help.js:95 - -#~msgid "Take a tour" -#~msgstr "" - #: js/GlobalCard.js:48 #~msgid "More Details" @@ -12780,11 +13193,6 @@ msgstr "" #~msgid "The save-stack button saves a stack onto a custom palette. It appears after a \"long press\" on a stack." #~msgstr "" -#: js/musicutils.js:254 - -#~msgid "Custom" -#~msgstr "" - #: js/basicblocks.js:4785 #~msgid "Rhythm" diff --git a/po/sw.po b/po/sw.po index 2cff9af5d7..0a03a9b3e1 100644 --- a/po/sw.po +++ b/po/sw.po @@ -2129,276 +2129,131 @@ #: js/planetInterface.js:104 #: js/planetInterface.js:104 #: js/planetInterface.js:104 -msgid "project undefined" -msgstr "" - -#: js/logo.js:61 -msgid "Not a valid pitch name" -msgstr "" - -#: js/logo.js:507 -#: js/ProgramBlocks.js:258 -#: js/ProgramBlocks.js:427 -msgid "You must select a file." -msgstr "" - -#: js/logo.js:1184 -#: js/turtles.js:118 -#: js/turtle-painter.js:1192 -#: js/turtle-painter.js:1193 -#: js/block.js:1463 -#: js/lilypond.js:757 -#: js/lilypond.js:921 -#: js/lilypond.js:959 -#: js/ActionBlocks.js:1223 -#: js/ProgramBlocks.js:1267 -msgid "start" -msgstr "kuanza" - -#: js/logo.js:1696 -msgid "Playback is ready." -msgstr "" - -#: js/blocks.js:1011 -#: js/blocks.js:3427 -#: js/blocks.js:3428 -#: js/blocks.js:3653 -#: js/blocks.js:4012 -#: js/blocks.js:4205 -#: js/blocks.js:5343 -#: js/blocks.js:6474 -#: js/palette.js:527 -#: js/palette.js:536 -#: js/palette.js:545 -#: js/palette.js:554 -#: js/palette.js:1131 -#: js/palette.js:1142 -#: js/palette.js:1153 -#: js/palette.js:1164 -#: js/palette.js:1183 -#: js/rubrics.js:529 -#: js/macros.js:170 -#: js/macros.js:266 -#: js/macros.js:267 -#: js/macros.js:276 -#: js/macros.js:828 -#: js/block.js:1449 -#: js/block.js:4164 -#: js/block.js:4182 -#: js/block.js:4193 -#: js/turtledefs.js:128 -#: js/turtledefs.js:230 -#: js/ActionBlocks.js:254 -#: js/ActionBlocks.js:307 -#: js/ActionBlocks.js:617 -#: js/ActionBlocks.js:716 -#: js/ActionBlocks.js:961 -#: js/ActionBlocks.js:1049 -#: js/ActionBlocks.js:1322 -#: js/ActionBlocks.js:1325 -#: js/ActionBlocks.js:1337 -#: js/ActionBlocks.js:1404 -#: js/MeterBlocks.js:715 -#: js/MeterBlocks.js:768 -#: js/MeterBlocks.js:831 -#: js/MeterBlocks.js:892 -#: js/phrasemaker.js:4412 -#: js/musickeyboard.js:2647 -#: js/rhythmruler.js:1928 -#: js/rhythmruler.js:1935 -#: js/rhythmruler.js:2119 -#: js/rhythmruler.js:2126 -msgid "action" +#: js/SaveInterface.js:59 +#: js/SaveInterface.js:61 +#: js/SaveInterface.js:93 +msgid "Music Blocks Project" msgstr "" -#: js/blocks.js:1205 -#: js/blocks.js:3380 -#: js/blocks.js:3770 -#: js/blocks.js:3801 -#: js/blocks.js:3850 -#: js/blocks.js:3885 -#: js/blocks.js:6497 -#: js/palette.js:509 -#: js/palette.js:638 -#: js/palette.js:1107 -#: js/BoxesBlocks.js:282 -#: js/BoxesBlocks.js:285 -#: js/BoxesBlocks.js:405 -#: js/BoxesBlocks.js:594 -msgid "box" +#: js/SaveInterface.js:63 +msgid "This project was created in Music Blocks" msgstr "" -#: js/blocks.js:1680 -msgid "Consider breaking this stack into parts." +#: js/SaveInterface.js:67 +msgid "Music Blocks is a Free/Libre Software application." msgstr "" -#: js/blocks.js:2408 -#: js/palette.js:653 -#: js/MediaBlocks.js:602 -msgid "open file" +#: js/SaveInterface.js:69 +msgid "The source code can be accessed at" msgstr "" -#: js/blocks.js:2415 -#: js/blocks.js:2423 -#: js/activity.js:1875 -msgid "audio file" +#: js/SaveInterface.js:72 +msgid "For more information, please consult the" msgstr "" -#: js/blocks.js:2536 -#: js/blocks.js:3147 -#: js/block.js:3543 -msgid "on2" +#: js/SaveInterface.js:76 +#: js/turtledefs.js:795 +msgid "Music Blocks Guide" msgstr "" -#: js/blocks.js:2538 -#: js/blocks.js:3149 -#: js/block.js:3545 -msgid "off" +#: js/SaveInterface.js:83 +msgid "Alternatively, open the file in Music Blocks using the Load project button." msgstr "" -#: js/blocks.js:2543 -#: js/blocks.js:3154 -#: js/palette.js:618 -#: js/block.js:3466 -#: js/BooleanBlocks.js:77 -#: js/BooleanBlocks.js:167 -#: js/BooleanBlocks.js:251 -#: js/BooleanBlocks.js:335 -#: js/BooleanBlocks.js:433 -#: js/BooleanBlocks.js:539 -#: js/BooleanBlocks.js:640 -#: js/BooleanBlocks.js:741 -#: js/BooleanBlocks.js:847 -#: js/BooleanBlocks.js:948 -#: js/BooleanBlocks.js:1033 -#: js/SensorsBlocks.js:910 -msgid "true" +#: js/SaveInterface.js:85 +msgid "Project Code" msgstr "" -#: js/blocks.js:2545 -#: js/blocks.js:3156 -#: js/block.js:3466 -#: js/BooleanBlocks.js:79 -#: js/BooleanBlocks.js:169 -#: js/BooleanBlocks.js:253 -#: js/BooleanBlocks.js:337 -#: js/BooleanBlocks.js:435 -#: js/BooleanBlocks.js:541 -#: js/BooleanBlocks.js:642 -#: js/BooleanBlocks.js:743 -#: js/BooleanBlocks.js:849 -#: js/BooleanBlocks.js:950 -#: js/SensorsBlocks.js:912 -msgid "false" +#: js/SaveInterface.js:87 +msgid "This code stores data about the blocks in a project." msgstr "" -#: js/blocks.js:3183 -#: js/palette.js:574 -#: js/MediaBlocks.js:892 -#: js/MediaBlocks.js:963 -msgid "text" -msgstr "maandishi" - -#: js/blocks.js:3379 -#: js/palette.js:641 -#: js/palette.js:642 -#: js/BoxesBlocks.js:514 -msgid "store in box" +#: js/SaveInterface.js:89 +msgid "Show" msgstr "" -#: js/blocks.js:3384 -#: js/blocks.js:3824 -#: js/blocks.js:3859 -#: js/blocks.js:3894 -#: js/blocks.js:5773 -#: js/blocks.js:5794 -#: js/BoxesBlocks.js:772 -msgid "box1" +#: js/SaveInterface.js:91 +msgid "Hide" msgstr "" -#: js/blocks.js:3386 -#: js/blocks.js:3826 -#: js/blocks.js:3861 -#: js/blocks.js:3896 -#: js/blocks.js:5775 -#: js/blocks.js:5796 -#: js/BoxesBlocks.js:663 -msgid "box2" +#: js/SaveInterface.js:131 +#: js/SaveInterface.js:204 +#: js/SaveInterface.js:262 +#: js/SaveInterface.js:389 +#: js/SaveInterface.js:417 +#: js/activity.js:4884 +#: planet/js/ProjectStorage.js:27 +#: planet/js/GlobalPlanet.js:467 +#: planet/js/GlobalPlanet.js:469 +#: planet/js/GlobalPlanet.js:495 +#.TRANS: default project title when saving as Lilypond +msgid "My Project" msgstr "" -#: js/blocks.js:4058 -#: js/palette.js:639 -#: js/palette.js:644 -#: js/palette.js:1043 -#: js/BoxesBlocks.js:591 -msgid "store in" +#: js/SaveInterface.js:197 +#: planet/js/SaveInterface.js:58 +msgid "No description provided" msgstr "" -#: js/blocks.js:4058 -#: js/EnsembleBlocks.js:391 -#: js/EnsembleBlocks.js:402 -#: js/MediaBlocks.js:746 -#: js/ProgramBlocks.js:390 -#: js/ProgramBlocks.js:495 -#: js/ProgramBlocks.js:658 -#: js/BoxesBlocks.js:595 -#: js/PitchBlocks.js:656 -#: js/PitchBlocks.js:932 -#: js/PitchBlocks.js:1827 -#: js/ToneBlocks.js:1025 -#: js/DictBlocks.js:215 -#: js/DictBlocks.js:289 -msgid "name" +#: js/SaveInterface.js:332 +msgid "Your recording is in progress." msgstr "" -#: js/blocks.js:4058 -#: js/RhythmBlocks.js:1130 -#: js/BoxesBlocks.js:75 -#: js/BoxesBlocks.js:595 -#: js/HeapBlocks.js:544 -#: js/DictBlocks.js:289 -#: js/DictBlocks.js:430 -msgid "value" +#: js/SaveInterface.js:401 +#.TRANS: File name prompt for save as Lilypond +msgid "File name" msgstr "" -#: js/blocks.js:4907 -msgid "There is no block selected." +#: js/SaveInterface.js:403 +#: planet/js/StringHelper.js:39 +#.TRANS: Project title prompt for save as Lilypond +msgid "Project title" msgstr "" -#: js/blocks.js:5002 -#: js/MediaBlocks.js:888 -msgid "show" +#: js/SaveInterface.js:405 +#.TRANS: Project title prompt for save as Lilypond +msgid "Project author" msgstr "" -#: js/blocks.js:5005 -#: js/MediaBlocks.js:803 -#.TRANS: Avatar is the image used to determine the appearance of the mouse. -msgid "avatar" +#: js/SaveInterface.js:407 +#.TRANS: MIDI prompt for save as Lilypond +msgid "Include MIDI output?" msgstr "" -#: js/blocks.js:5008 -#: js/ToneBlocks.js:1010 -#: js/sampler.js:693 -#.TRANS: The sound sample that the user uploads. -msgid "sample" +#: js/SaveInterface.js:409 +#.TRANS: Guitar prompt for save as Lilypond +msgid "Include guitar tablature output?" msgstr "" -#: js/turtles.js:874 -msgid "Grid" -msgstr "Gridi" - -#: js/turtles.js:891 -#: js/turtledefs.js:626 -msgid "Clean" +#: js/SaveInterface.js:411 +#.TRANS: Lilypond is a scripting language for generating sheet music +msgid "Save as Lilypond" msgstr "" -#: js/turtles.js:912 -#: js/turtledefs.js:632 -msgid "Collapse" +#: js/SaveInterface.js:426 +#: js/blocks/EnsembleBlocks.js:75 +#: js/blocks/EnsembleBlocks.js:154 +#: js/blocks/EnsembleBlocks.js:216 +#: js/blocks/EnsembleBlocks.js:302 +#: js/blocks/EnsembleBlocks.js:348 +#: js/blocks/EnsembleBlocks.js:389 +#: js/blocks/EnsembleBlocks.js:441 +#: js/blocks/EnsembleBlocks.js:490 +#: js/blocks/EnsembleBlocks.js:536 +#: js/blocks/EnsembleBlocks.js:583 +#: js/blocks/EnsembleBlocks.js:637 +#: js/blocks/EnsembleBlocks.js:753 +#: js/blocks/EnsembleBlocks.js:840 +#: js/blocks/EnsembleBlocks.js:899 +#: js/blocks/EnsembleBlocks.js:942 +#: js/blocks/EnsembleBlocks.js:1212 +#: js/blocks/EnsembleBlocks.js:1280 +#.TRANS: default project author when saving as Lilypond +msgid "Mr. Mouse" msgstr "" -#: js/turtles.js:940 -msgid "Expand" +#: js/SaveInterface.js:573 +msgid "The Lilypond code is copied to clipboard. You can paste it here: " msgstr "" #: js/languagebox.js:198 @@ -2409,6933 +2264,7487 @@ msgstr "" msgid "Music Blocks is already set to this language." msgstr "" -#: js/piemenus.js:200 -#: js/musicutils.js:808 -#: js/musicutils.js:824 -#: js/phrasemaker.js:1672 -#: js/musickeyboard.js:2041 -#: js/sampler.js:544 -#.TRANS: double sharp is a music term related to pitch -msgid "double sharp" +#: js/planetInterface.js:131 +msgid "project undefined" msgstr "" -#: js/piemenus.js:201 -#: js/PitchBlocks.js:1510 -#: js/PitchActions.js:580 -#: js/musicutils.js:806 -#: js/musicutils.js:825 -#: js/phrasemaker.js:1673 -#: js/musickeyboard.js:2042 -#: js/sampler.js:545 -#.TRANS: sharp is a half-step up in pitch -#.TRANS: sharp is a music term related to pitch -msgid "sharp" +#: js/rubrics.js:523 +#: js/turtledefs.js:119 +#: js/turtledefs.js:221 +#: js/blocks/RhythmBlockPaletteBlocks.js:52 +#: js/blocks/RhythmBlockPaletteBlocks.js:234 +#: js/blocks/ProgramBlocks.js:745 +#: js/widgets/rhythmruler.js:2057 +#: js/widgets/rhythmruler.js:2064 +#: js/widgets/rhythmruler.js:2133 +#: js/widgets/rhythmruler.js:2140 +#: js/widgets/rhythmruler.js:2219 +#.TRANS: an arrangement of notes based on duration +msgid "rhythm" msgstr "" -#: js/piemenus.js:202 -#: js/musicutils.js:804 -#: js/musicutils.js:826 -#: js/phrasemaker.js:1674 -#: js/musickeyboard.js:2043 -#: js/sampler.js:546 -#.TRANS: natural is a music term related to pitch -msgid "natural" +#: js/rubrics.js:524 +#: js/turtledefs.js:121 +#: js/turtledefs.js:223 +#: js/block-verbose.js:2622 +#: js/block.js:2550 +#: js/blocks/IntervalsBlocks.js:63 +#: js/blocks/SensorsBlocks.js:178 +#: js/blocks/PitchBlocks.js:1839 +#: js/blocks/PitchBlocks.js:1853 +#: js/widgets/musickeyboard.js:1935 +#: js/widgets/phrasemaker.js:1036 +#.TRANS: pitch number +#.TRANS: pitch number +#.TRANS: we specify pitch in terms of a name and an octave. The name can be CDEFGAB or Do Re Mi Fa Sol La Ti. Octave is a number between 1 and 8. +msgid "pitch" msgstr "" -#: js/piemenus.js:203 -#: js/PitchBlocks.js:1469 -#: js/PitchActions.js:583 -#: js/musicutils.js:802 -#: js/musicutils.js:827 -#: js/phrasemaker.js:1675 -#: js/musickeyboard.js:2044 -#: js/sampler.js:547 -#.TRANS: flat is a half-step down in pitch -#.TRANS: flat is a music term related to pitch -msgid "flat" +#: js/rubrics.js:525 +#: js/turtledefs.js:123 +#: js/turtledefs.js:225 +msgid "tone" msgstr "" -#: js/piemenus.js:204 -#: js/musicutils.js:800 -#: js/musicutils.js:828 -#: js/phrasemaker.js:1676 -#: js/musickeyboard.js:2045 -#: js/sampler.js:548 -#.TRANS: double flat is a music term related to pitch -msgid "double flat" +#: js/rubrics.js:526 +#: js/lilypond.js:605 +#: js/lilypond.js:904 +#: js/lilypond.js:910 +#: js/lilypond.js:948 +msgid "mouse" msgstr "" -#: js/piemenus.js:2861 -#: js/PitchBlocks.js:1357 -#: js/musicutils.js:627 -#.TRANS: unison means the note is the same as the current note -#.TRANS: unison is a music term related to intervals -msgid "unison" +#: js/rubrics.js:527 +#: js/turtledefs.js:132 +#: js/turtledefs.js:234 +#: js/widgets/phrasemaker.js:1040 +msgid "pen" msgstr "" -#: js/piemenus.js:3015 -#: js/piemenus.js:3088 -#: js/musicutils.js:635 -#: js/musicutils.js:810 -#: js/musicutils.js:912 -#.TRANS: major is a music term related to intervals and mode -msgid "major" +#: js/rubrics.js:528 +#: js/turtledefs.js:133 +#: js/turtledefs.js:235 +#: js/blocks/NumberBlocks.js:981 +#: js/blocks/PitchBlocks.js:1717 +#: js/blocks/PitchBlocks.js:1758 +msgid "number" +msgstr "idadi" + +#: js/rubrics.js:529 +#: js/turtledefs.js:127 +#: js/turtledefs.js:229 +msgid "flow" msgstr "" -#: js/piemenus.js:3015 -#: js/piemenus.js:3088 -#: js/musicutils.js:653 -#.TRANS: modal scale for music -msgid "ionian" +#: js/rubrics.js:530 +#: js/turtledefs.js:128 +#: js/turtledefs.js:230 +#: js/block-verbose.js:1609 +#: js/block-verbose.js:4559 +#: js/block-verbose.js:4577 +#: js/block-verbose.js:4588 +#: js/block.js:1573 +#: js/block.js:4483 +#: js/block.js:4501 +#: js/block.js:4512 +#: js/blocks.js:1018 +#: js/blocks.js:3491 +#: js/blocks.js:3492 +#: js/blocks.js:3717 +#: js/blocks.js:4076 +#: js/blocks.js:4269 +#: js/blocks.js:5432 +#: js/blocks.js:6563 +#: js/macros.js:170 +#: js/macros.js:266 +#: js/macros.js:267 +#: js/macros.js:276 +#: js/macros.js:828 +#: js/palette.js:527 +#: js/palette.js:536 +#: js/palette.js:545 +#: js/palette.js:554 +#: js/palette.js:1129 +#: js/palette.js:1140 +#: js/palette.js:1151 +#: js/palette.js:1162 +#: js/palette.js:1181 +#: js/blocks/ActionBlocks.js:254 +#: js/blocks/ActionBlocks.js:307 +#: js/blocks/ActionBlocks.js:617 +#: js/blocks/ActionBlocks.js:716 +#: js/blocks/ActionBlocks.js:961 +#: js/blocks/ActionBlocks.js:1049 +#: js/blocks/ActionBlocks.js:1322 +#: js/blocks/ActionBlocks.js:1325 +#: js/blocks/ActionBlocks.js:1337 +#: js/blocks/ActionBlocks.js:1404 +#: js/blocks/MeterBlocks.js:715 +#: js/blocks/MeterBlocks.js:768 +#: js/blocks/MeterBlocks.js:831 +#: js/blocks/MeterBlocks.js:892 +#: js/widgets/musickeyboard.js:2986 +#: js/widgets/phrasemaker.js:4913 +#: js/widgets/rhythmruler.js:2319 +#: js/widgets/rhythmruler.js:2326 +#: js/widgets/rhythmruler.js:2511 +#: js/widgets/rhythmruler.js:2518 +msgid "action" msgstr "" -#: js/piemenus.js:3017 -#: js/piemenus.js:3092 -#: js/musicutils.js:633 -#: js/musicutils.js:811 -#: js/musicutils.js:909 -#.TRANS: minor is a music term related to intervals and mode -msgid "minor" +#: js/rubrics.js:531 +#: js/turtledefs.js:136 +#: js/turtledefs.js:238 +msgid "sensors" msgstr "" -#: js/piemenus.js:3017 -#: js/piemenus.js:3092 -#: js/musicutils.js:663 -#.TRANS: modal scale for music -msgid "aeolian" +#: js/rubrics.js:532 +#: js/turtledefs.js:135 +#: js/turtledefs.js:237 +#: js/blocks/MediaBlocks.js:930 +msgid "media" msgstr "" -#: js/piemenus.js:3407 -msgid "Duplicate" +#: js/rubrics.js:533 +msgid "mice" msgstr "" -#: js/piemenus.js:3408 -#: js/turtledefs.js:534 -msgid "Extract" +#: js/toolbar.js:48 +#: js/toolbar.js:109 +msgid "About Music Blocks" msgstr "" -#: js/piemenus.js:3409 -msgid "Move to trash" +#: js/toolbar.js:49 +#: js/toolbar.js:110 +#: js/toolbar.js:175 +#: js/toolbar.js:231 +#: js/turtledefs.js:445 +#: js/turtledefs.js:482 +#: js/activity.js:2660 +#: js/activity.js:2671 +#: js/activity.js:2902 +#: js/widgets/modewidget.js:77 +#: js/widgets/meterwidget.js:185 +#: js/widgets/pitchdrummatrix.js:147 +#: js/widgets/pitchdrummatrix.js:687 +#: js/widgets/pitchdrummatrix.js:689 +#: js/widgets/pitchdrummatrix.js:741 +#: js/widgets/pitchdrummatrix.js:743 +#: js/widgets/pitchdrummatrix.js:758 +#: js/widgets/pitchdrummatrix.js:760 +#: js/widgets/pitchdrummatrix.js:789 +#: js/widgets/pitchdrummatrix.js:791 +#: js/widgets/pitchstaircase.js:121 +#: js/widgets/temperament.js:610 +#: js/widgets/temperament.js:613 +#: js/widgets/temperament.js:673 +#: js/widgets/temperament.js:675 +#: js/widgets/temperament.js:2017 +#: js/widgets/temperament.js:2019 +#: js/widgets/tempo.js:84 +#: js/widgets/tempo.js:86 +#: js/widgets/timbre.js:432 +#: js/widgets/timbre.js:434 +#: js/widgets/timbre.js:465 +#: js/widgets/timbre.js:467 +#: js/widgets/timbre.js:746 +#: js/widgets/aiwidget.js:647 +#: js/widgets/aiwidget.js:654 +#: js/widgets/aiwidget.js:656 +#: js/widgets/arpeggio.js:90 +#: js/widgets/arpeggio.js:547 +#: js/widgets/arpeggio.js:549 +#: js/widgets/arpeggio.js:644 +#: js/widgets/arpeggio.js:646 +#: js/widgets/musickeyboard.js:676 +#: js/widgets/musickeyboard.js:872 +#: js/widgets/musickeyboard.js:874 +#: js/widgets/musickeyboard.js:953 +#: js/widgets/musickeyboard.js:955 +#: js/widgets/phrasemaker.js:513 +#: js/widgets/phrasemaker.js:523 +#: js/widgets/phrasemaker.js:525 +#: js/widgets/phrasemaker.js:4304 +#: js/widgets/phrasemaker.js:4528 +#: js/widgets/phrasemaker.js:4533 +#: js/widgets/phrasemaker.js:4535 +#: js/widgets/phrasemaker.js:4650 +#: js/widgets/rhythmruler.js:637 +#: js/widgets/rhythmruler.js:639 +#: js/widgets/rhythmruler.js:653 +#: js/widgets/rhythmruler.js:655 +#: js/widgets/sampler.js:162 +#: js/widgets/sampler.js:164 +#: js/widgets/sampler.js:363 +msgid "Play" msgstr "" -#: js/piemenus.js:3410 -#: js/timbre.js:968 -#: js/StringHelper.js:69 -msgid "Close" +#: js/toolbar.js:50 +#: js/toolbar.js:111 +#: js/toolbar.js:176 +#: js/toolbar.js:232 +#: js/turtledefs.js:451 +#: js/turtledefs.js:488 +#: js/activity.js:2679 +#: js/widgets/modewidget.js:99 +#: js/widgets/modewidget.js:101 +#: js/widgets/meterwidget.js:206 +#: js/widgets/meterwidget.js:208 +#: js/widgets/pitchdrummatrix.js:674 +#: js/widgets/pitchdrummatrix.js:676 +#: js/widgets/temperament.js:2002 +#: js/widgets/temperament.js:2004 +#: js/widgets/arpeggio.js:534 +#: js/widgets/arpeggio.js:536 +#: js/widgets/phrasemaker.js:534 +#: js/widgets/phrasemaker.js:536 +msgid "Stop" +msgstr "Kuacha" + +#: js/toolbar.js:51 +#: js/toolbar.js:112 +#: js/toolbar.js:177 +#: js/toolbar.js:233 +#: js/turtledefs.js:498 +msgid "Record" msgstr "" -#: js/piemenus.js:3416 -msgid "Save stack" +#: js/toolbar.js:52 +#: js/toolbar.js:53 +msgid "Full screen" msgstr "" -#: js/piemenus.js:3420 -#: js/toolbar.js:60 -#: js/toolbar.js:120 -#: js/toolbar.js:185 +#: js/toolbar.js:54 +#: js/toolbar.js:115 +#: js/toolbar.js:180 +#: js/toolbar.js:236 +#: js/turtledefs.js:504 +msgid "Toggle Fullscreen" +msgstr "" + +#: js/toolbar.js:55 +#: js/toolbar.js:116 +#: js/toolbar.js:181 +#: js/toolbar.js:237 +#: js/turtledefs.js:510 +#: planet/js/StringHelper.js:33 +msgid "New project" +msgstr "" + +#: js/toolbar.js:56 +#: js/toolbar.js:117 +#: js/toolbar.js:182 +#: js/toolbar.js:238 +#: js/turtledefs.js:516 +msgid "Load project from file" +msgstr "" + +#: js/toolbar.js:57 +#: js/toolbar.js:118 +#: js/toolbar.js:119 +#: js/toolbar.js:183 +#: js/toolbar.js:239 +#: js/turtledefs.js:541 +#: js/turtledefs.js:550 +#: js/turtledefs.js:571 +msgid "Save project" +msgstr "" + +#: js/toolbar.js:58 +#: js/toolbar.js:77 +#: js/toolbar.js:79 +#: js/toolbar.js:138 +#: js/toolbar.js:147 +#: js/toolbar.js:149 +#: js/toolbar.js:184 +#: js/toolbar.js:202 +#: js/toolbar.js:204 #: js/toolbar.js:240 +#: js/toolbar.js:258 +#: js/toolbar.js:260 +msgid "Save project as HTML" +msgstr "" + +#: js/toolbar.js:59 +#: js/toolbar.js:120 +#: js/toolbar.js:185 +#: js/toolbar.js:241 +msgid "Find and share projects" +msgstr "" + +#: js/toolbar.js:60 +#: js/toolbar.js:121 +#: js/toolbar.js:186 +#: js/toolbar.js:242 +msgid "Offline. Sharing is unavailable" +msgstr "" + +#: js/toolbar.js:61 +#: js/toolbar.js:122 +#: js/toolbar.js:187 +#: js/toolbar.js:243 +msgid "Auxiliary menu" +msgstr "" + +#: js/toolbar.js:62 +#: js/toolbar.js:123 +#: js/toolbar.js:188 +#: js/toolbar.js:244 #: js/turtledefs.js:752 +#: js/piemenus.js:3423 msgid "Help" msgstr "Msaada" -#: js/piemenus.js:3762 -msgid "You have chosen key " +#: js/toolbar.js:63 +#: js/toolbar.js:124 +#: js/toolbar.js:189 +#: js/toolbar.js:245 +msgid "Run slowly" +msgstr "" + +#: js/toolbar.js:64 +#: js/toolbar.js:125 +#: js/toolbar.js:190 +#: js/toolbar.js:246 +#: js/turtledefs.js:682 +msgid "Run step by step" +msgstr "" + +#: js/toolbar.js:65 +#: js/toolbar.js:126 +#: js/toolbar.js:191 +#: js/toolbar.js:247 +#: js/turtledefs.js:689 +msgid "Display statistics" +msgstr "" + +#: js/toolbar.js:66 +#: js/toolbar.js:127 +#: js/toolbar.js:192 +#: js/toolbar.js:248 +msgid "Load plugin" +msgstr "" + +#: js/toolbar.js:67 +#: js/toolbar.js:128 +#: js/toolbar.js:193 +#: js/toolbar.js:249 +#: js/turtledefs.js:696 +msgid "Delete plugin" +msgstr "" + +#: js/toolbar.js:68 +#: js/toolbar.js:129 +#: js/toolbar.js:194 +#: js/toolbar.js:250 +msgid "Enable horizontal scrolling" +msgstr "" + +#: js/toolbar.js:69 +#: js/toolbar.js:130 +#: js/toolbar.js:195 +#: js/toolbar.js:251 +msgid "Disable horizontal scrolling" +msgstr "" + +#: js/toolbar.js:70 +#: js/toolbar.js:131 +#: js/toolbar.js:196 +#: js/toolbar.js:252 +#: planet/js/LocalCard.js:54 +#: planet/js/StringHelper.js:71 +msgid "Merge with current project" +msgstr "" + +#: js/toolbar.js:71 +#: js/toolbar.js:132 +msgid "Set Pitch Preview" +msgstr "" + +#: js/toolbar.js:72 +#: js/toolbar.js:133 +#: js/toolbar.js:197 +#: js/toolbar.js:253 +msgid "JavaScript Editor" +msgstr "" + +#: js/toolbar.js:73 +#: js/toolbar.js:134 +#: js/toolbar.js:198 +#: js/toolbar.js:254 +#: js/turtledefs.js:724 +msgid "Restore" +msgstr "" + +#: js/toolbar.js:74 +#: js/toolbar.js:135 +#: js/toolbar.js:199 +#: js/toolbar.js:255 +msgid "Switch to beginner mode" +msgstr "" + +#: js/toolbar.js:75 +#: js/toolbar.js:136 +#: js/toolbar.js:200 +#: js/toolbar.js:256 +msgid "Switch to advanced mode" +msgstr "" + +#: js/toolbar.js:76 +#: js/toolbar.js:137 +#: js/toolbar.js:146 +#: js/toolbar.js:201 +#: js/toolbar.js:257 +#: js/turtledefs.js:738 +msgid "Select language" +msgstr "" + +#: js/toolbar.js:78 +#: js/toolbar.js:81 +#: js/toolbar.js:140 +#: js/turtledefs.js:579 +msgid "Save mouse artwork as PNG" +msgstr "" + +#: js/toolbar.js:80 +#: js/toolbar.js:139 +#: js/turtledefs.js:575 +msgid "Save mouse artwork as SVG" +msgstr "" + +#: js/toolbar.js:82 +#: js/toolbar.js:141 +#: js/turtledefs.js:583 +msgid "Save music as WAV" +msgstr "" + +#: js/toolbar.js:83 +#: js/toolbar.js:142 +#: js/turtledefs.js:587 +msgid "Save sheet music as ABC" +msgstr "" + +#: js/toolbar.js:84 +#: js/toolbar.js:143 +#: js/turtledefs.js:591 +msgid "Save sheet music as Lilypond" +msgstr "" + +#: js/toolbar.js:85 +msgid "Save sheet music as MusicXML" +msgstr "" + +#: js/toolbar.js:86 +#: js/toolbar.js:144 +#: js/toolbar.js:152 +#: js/toolbar.js:207 +#: js/toolbar.js:263 +#: js/turtledefs.js:562 +#: js/turtledefs.js:595 +msgid "Save block artwork as SVG" +msgstr "" + +#: js/toolbar.js:87 +#: js/toolbar.js:145 +#: js/toolbar.js:153 +#: js/toolbar.js:208 +#: js/toolbar.js:264 +#: js/turtles.js:911 +msgid "Confirm" +msgstr "" + +#: js/toolbar.js:88 +#: js/toolbar.js:154 +#: js/toolbar.js:209 +#: js/toolbar.js:265 +msgid "English (United States)" +msgstr "" + +#: js/toolbar.js:89 +#: js/toolbar.js:155 +#: js/toolbar.js:210 +#: js/toolbar.js:266 +msgid "English (United Kingdom)" +msgstr "" + +#: js/toolbar.js:90 +#: js/toolbar.js:156 +#: js/toolbar.js:211 +#: js/toolbar.js:267 +msgid "日本語" +msgstr "" + +#: js/toolbar.js:91 +msgid "한국어" +msgstr "" + +#: js/toolbar.js:92 +#: js/toolbar.js:158 +#: js/toolbar.js:213 +#: js/toolbar.js:269 +msgid "español" +msgstr "" + +#: js/toolbar.js:93 +#: js/toolbar.js:159 +#: js/toolbar.js:214 +#: js/toolbar.js:270 +msgid "português" +msgstr "" + +#: js/toolbar.js:94 +#: js/toolbar.js:160 +#: js/toolbar.js:215 +#: js/toolbar.js:271 +msgid "にほんご" +msgstr "" + +#: js/toolbar.js:95 +#: js/toolbar.js:161 +#: js/toolbar.js:216 +#: js/toolbar.js:272 +msgid "中文" +msgstr "" + +#: js/toolbar.js:96 +#: js/toolbar.js:162 +#: js/toolbar.js:217 +#: js/toolbar.js:273 +msgid "ภาษาไทย" +msgstr "" + +#: js/toolbar.js:97 +#: js/toolbar.js:163 +#: js/toolbar.js:218 +#: js/toolbar.js:274 +msgid "aymara" +msgstr "" + +#: js/toolbar.js:98 +#: js/toolbar.js:164 +#: js/toolbar.js:219 +#: js/toolbar.js:275 +msgid "quechua" +msgstr "" + +#: js/toolbar.js:99 +#: js/toolbar.js:165 +#: js/toolbar.js:220 +#: js/toolbar.js:276 +msgid "guarani" +msgstr "" + +#: js/toolbar.js:100 +#: js/toolbar.js:166 +#: js/toolbar.js:221 +#: js/toolbar.js:277 +msgid "हिंदी" +msgstr "" + +#: js/toolbar.js:101 +#: js/toolbar.js:168 +#: js/toolbar.js:222 +#: js/toolbar.js:279 +msgid "igbo" +msgstr "" + +#: js/toolbar.js:102 +#: js/toolbar.js:169 +#: js/toolbar.js:223 +#: js/toolbar.js:280 +msgid "عربى" +msgstr "" + +#: js/toolbar.js:103 +#: js/toolbar.js:167 +#: js/toolbar.js:224 +#: js/toolbar.js:278 +msgid "తెలుగు" +msgstr "" + +#: js/toolbar.js:104 +#: js/toolbar.js:170 +#: js/toolbar.js:225 +#: js/toolbar.js:281 +msgid "עִברִית" +msgstr "" + +#: js/toolbar.js:113 +#: js/toolbar.js:114 +#: js/toolbar.js:178 +#: js/toolbar.js:179 +#: js/toolbar.js:234 +#: js/toolbar.js:235 +msgid "Full Screen" +msgstr "" + +#: js/toolbar.js:148 +#: js/toolbar.js:151 +#: js/toolbar.js:203 +#: js/toolbar.js:206 +#: js/toolbar.js:259 +#: js/toolbar.js:262 +#: js/turtledefs.js:558 +msgid "Save turtle artwork as PNG" +msgstr "" + +#: js/toolbar.js:150 +#: js/toolbar.js:205 +#: js/toolbar.js:261 +#: js/turtledefs.js:554 +msgid "Save turtle artwork as SVG" +msgstr "" + +#: js/toolbar.js:157 +#: js/toolbar.js:212 +#: js/toolbar.js:268 +msgid "한국인" +msgstr "" + +#: js/toolbar.js:174 +#: js/toolbar.js:230 +msgid "About Turtle Blocks" +msgstr "" + +#: js/toolbar.js:446 +#: js/toolbar.js:457 +#: js/toolbar.js:497 +msgid "Turtle Wrap Off" +msgstr "" + +#: js/toolbar.js:466 +#: js/toolbar.js:506 +msgid "Turtle Wrap On" +msgstr "" + +#: js/turtle-painter.js:1192 +#: js/turtle-painter.js:1193 +#: js/turtles.js:118 +#: js/block-verbose.js:1623 +#: js/block.js:1587 +#: js/lilypond.js:749 +#: js/lilypond.js:913 +#: js/lilypond.js:951 +#: js/logo.js:1184 +#: js/blocks/ActionBlocks.js:1223 +#: js/blocks/ProgramBlocks.js:1267 +msgid "start" +msgstr "kuanza" + +#: js/turtledefs.js:40 +#.TRANS: put the URL to the guide here, e.g., https://github.com/sugarlabs/turtleblocksjs/tree/master/guide/README.md +msgid "guide url" +msgstr "" + +#: js/turtledefs.js:85 +#: js/turtledefs.js:437 +msgid "Turtle Blocks is a Logo-inspired turtle that draws colorful pictures with snap-together visual-programming blocks." +msgstr "" + +#: js/turtledefs.js:118 +#: js/turtledefs.js:220 +msgid "search" +msgstr "" + +#: js/turtledefs.js:120 +#: js/turtledefs.js:222 +#: js/blocks/MeterBlocks.js:1343 +#: js/blocks/WidgetBlocks.js:522 +#.TRANS: musical meter (time signature), e.g., 4:4 +msgid "meter" +msgstr "" + +#: js/turtledefs.js:122 +#: js/turtledefs.js:224 +msgid "intervals" +msgstr "" + +#: js/turtledefs.js:124 +#: js/turtledefs.js:226 +msgid "ornament" +msgstr "" + +#: js/turtledefs.js:125 +#: js/turtledefs.js:227 +#: js/blocks/VolumeBlocks.js:362 +#: js/blocks/VolumeBlocks.js:502 +#: js/blocks/VolumeBlocks.js:545 +msgid "volume" +msgstr "" + +#: js/turtledefs.js:126 +#: js/turtledefs.js:228 +#: js/block-verbose.js:1700 +#: js/block-verbose.js:2626 +#: js/block.js:1664 +#: js/block.js:2554 +#: js/lilypond.js:732 +#: js/lilypond.js:897 +#: js/lilypond.js:941 +#: js/palette.js:577 +#: js/blocks/RhythmBlocks.js:766 +#: js/blocks/DrumBlocks.js:477 +#: js/blocks/VolumeBlocks.js:502 +#: js/widgets/phrasemaker.js:1038 +msgid "drum" +msgstr "" + +#: js/turtledefs.js:129 +#: js/turtledefs.js:231 +msgid "boxes" +msgstr "" + +#: js/turtledefs.js:130 +#: js/turtledefs.js:232 +msgid "widgets" +msgstr "" + +#: js/turtledefs.js:131 +#: js/turtledefs.js:233 +#: js/widgets/phrasemaker.js:1039 +msgid "graphics" +msgstr "" + +#: js/turtledefs.js:134 +#: js/turtledefs.js:236 +msgid "boolean" +msgstr "" + +#: js/turtledefs.js:137 +#: js/turtledefs.js:239 +#: js/blocks/HeapBlocks.js:59 +#: js/widgets/status.js:147 +msgid "heap" +msgstr "" + +#: js/turtledefs.js:138 +#: js/turtledefs.js:240 +#: js/blocks/DictBlocks.js:142 +#: js/blocks/ProgramBlocks.js:495 +msgid "dictionary" +msgstr "" + +#: js/turtledefs.js:139 +#: js/turtledefs.js:241 +msgid "ensemble" +msgstr "" + +#: js/turtledefs.js:140 +#: js/turtledefs.js:242 +msgid "extras" +msgstr "" + +#: js/turtledefs.js:142 +#: js/turtledefs.js:244 +#.TRANS: program as in computer program +#.TRANS: program as in computer program +msgid "program" +msgstr "" + +#: js/turtledefs.js:143 +#: js/turtledefs.js:245 +msgid "my blocks" +msgstr "" + +#: js/turtledefs.js:185 +#: js/turtledefs.js:281 +msgid "artwork" +msgstr "" + +#: js/turtledefs.js:185 +#: js/turtledefs.js:281 +msgid "logic" +msgstr "" + +#: js/turtledefs.js:185 +#: js/turtledefs.js:281 +msgid "music" +msgstr "" + +#: js/turtledefs.js:187 +#: js/turtledefs.js:463 +msgid "Music Blocks is a collection of tools for exploring fundamental musical concepts in a fun way." +msgstr "" + +#: js/turtledefs.js:436 +msgid "Welcome to Turtle Blocks" +msgstr "" + +#: js/turtledefs.js:438 +#: js/turtledefs.js:465 +#: js/turtledefs.js:774 +#: js/turtledefs.js:805 +msgid "The current version is" +msgstr "" + +#: js/turtledefs.js:446 +#: js/turtledefs.js:483 +msgid "Click the run button to run the project in fast mode." +msgstr "" + +#: js/turtledefs.js:452 +msgid "Stop the turtle." +msgstr "" + +#: js/turtledefs.js:454 +#: js/turtledefs.js:491 +msgid "You can also type Alt-S to stop." +msgstr "" + +#: js/turtledefs.js:462 +#: js/widgets/help.js:333 +msgid "Welcome to Music Blocks" +msgstr "" + +#: js/turtledefs.js:472 +#: js/widgets/help.js:334 +msgid "Meet Mr. Mouse!" +msgstr "" + +#: js/turtledefs.js:473 +msgid "Mr Mouse is our Music Blocks conductor." +msgstr "" + +#: js/turtledefs.js:475 +msgid "Mr Mouse encourages you to explore Music Blocks." +msgstr "" + +#: js/turtledefs.js:477 +msgid "Let us start our tour!" +msgstr "" + +#: js/turtledefs.js:489 +msgid "Stop the music (and the mice)." +msgstr "" + +#: js/turtledefs.js:499 +msgid "Record your project as video." +msgstr "" + +#: js/turtledefs.js:505 +msgid "Toggle Fullscreen mode." +msgstr "" + +#: js/turtledefs.js:511 +msgid "Initialize a new project." +msgstr "" + +#: js/turtledefs.js:517 +msgid "You can also load projects from the file system." +msgstr "" + +#: js/turtledefs.js:522 +#: planet/js/StringHelper.js:46 +msgid "Delete" +msgstr "" + +#: js/turtledefs.js:523 +msgid "To delete a block, just right-click on it, then you will be able to see the delete option" +msgstr "" + +#: js/turtledefs.js:528 +#: js/activity.js:2649 +#: planet/js/LocalCard.js:31 +msgid "Copy" +msgstr "Nakili" + +#: js/turtledefs.js:529 +msgid "To copy a block, just right-click on it, then you will be able to see the copy option" +msgstr "" + +#: js/turtledefs.js:534 +#: js/piemenus.js:3411 +msgid "Extract" +msgstr "" + +#: js/turtledefs.js:535 +msgid "To extract a block, just right-click on it, then you will be able to see the extract option" +msgstr "" + +#: js/turtledefs.js:542 +#: js/turtledefs.js:552 +#: js/turtledefs.js:573 +msgid "Save your project to a file." +msgstr "" + +#: js/turtledefs.js:549 +#: js/turtledefs.js:570 +msgid "save" +msgstr "" + +#: js/turtledefs.js:556 +#: js/turtledefs.js:577 +msgid "Save graphics from your project to as SVG." +msgstr "" + +#: js/turtledefs.js:560 +#: js/turtledefs.js:581 +msgid "Save graphics from your project as PNG." +msgstr "" + +#: js/turtledefs.js:564 +#: js/turtledefs.js:597 +msgid "Save block artwork as an SVG file." +msgstr "" + +#: js/turtledefs.js:585 +msgid "Save audio from your project as WAV." +msgstr "" + +#: js/turtledefs.js:589 +msgid "Save your project to as an ABC file." +msgstr "" + +#: js/turtledefs.js:593 +msgid "Save your project to as a Lilypond file." +msgstr "" + +#: js/turtledefs.js:604 +msgid "Load samples from server" +msgstr "" + +#: js/turtledefs.js:605 +msgid "This button opens a viewer for loading example projects." +msgstr "" + +#: js/turtledefs.js:611 +msgid "Palette buttons" +msgstr "" + +#: js/turtledefs.js:612 +msgid "This toolbar contains the palette buttons including Rhythm Pitch Tone Action and more." +msgstr "" + +#: js/turtledefs.js:614 +msgid "Click to show the palettes of blocks and drag blocks from the palettes onto the canvas to use them." +msgstr "" + +#: js/turtledefs.js:620 +msgid "Cartesian/Polar" +msgstr "" + +#: js/turtledefs.js:621 +msgid "Show or hide a coordinate grid." +msgstr "" + +#: js/turtledefs.js:626 +#: js/turtles.js:902 +msgid "Clean" +msgstr "" + +#: js/turtledefs.js:627 +msgid "Clear the screen and return the mice to their initial positions." +msgstr "" + +#: js/turtledefs.js:632 +#: js/turtles.js:955 +msgid "Collapse" +msgstr "" + +#: js/turtledefs.js:633 +msgid "Collapse the graphics window." +msgstr "" + +#: js/turtledefs.js:638 +#: js/activity.js:5684 +msgid "Home" +msgstr "" + +#: js/turtledefs.js:639 +msgid "Return all blocks to the center of the screen." +msgstr "" + +#: js/turtledefs.js:644 +msgid "Show/hide blocks" +msgstr "" + +#: js/turtledefs.js:645 +msgid "Hide or show the blocks and the palettes." +msgstr "" + +#: js/turtledefs.js:650 +msgid "Expand/collapse collapsable blocks" +msgstr "" + +#: js/turtledefs.js:651 +msgid "Expand or collapse start and action stacks." +msgstr "" + +#: js/turtledefs.js:658 +#: js/activity.js:5704 +msgid "Decrease block size" msgstr "" -#: js/piemenus.js:3766 -msgid " for your pitch preview." +#: js/turtledefs.js:659 +msgid "Decrease the size of the blocks." msgstr "" -#: js/palette.js:571 -msgid "grid" -msgstr "Gridi" +#: js/turtledefs.js:664 +#: js/activity.js:5710 +msgid "Increase block size" +msgstr "" -#: js/palette.js:577 -#: js/block.js:1540 -#: js/block.js:2343 -#: js/turtledefs.js:126 -#: js/turtledefs.js:228 -#: js/lilypond.js:740 -#: js/lilypond.js:905 -#: js/lilypond.js:949 -#: js/DrumBlocks.js:486 -#: js/RhythmBlocks.js:766 -#: js/VolumeBlocks.js:502 -#: js/phrasemaker.js:823 -msgid "drum" +#: js/turtledefs.js:665 +msgid "Increase the size of the blocks." msgstr "" -#: js/palette.js:580 -msgid "effect" +#: js/turtledefs.js:670 +msgid "Expand/collapse option toolbar" msgstr "" -#: js/palette.js:586 -msgid "sargam" +#: js/turtledefs.js:671 +msgid "Click this button to expand or collapse the auxillary toolbar." msgstr "" -#: js/palette.js:589 -#: js/activity.js:1833 -#: js/RhythmBlocks.js:923 -#: js/PitchBlocks.js:442 -#: js/PitchBlocks.js:1748 -#.TRANS: a numeric mapping of the notes in an octave based on the musical mode -msgid "scale degree" +#: js/turtledefs.js:676 +msgid "Run slow" msgstr "" -#: js/palette.js:592 -#: js/activity.js:1860 -msgid "mode name" +#: js/turtledefs.js:677 +msgid "Click to run the project in slow mode." msgstr "" -#: js/palette.js:595 -#: js/activity.js:1839 -msgid "invert mode" +#: js/turtledefs.js:683 +msgid "Click to run the project step by step." msgstr "" -#: js/palette.js:598 -#: js/activity.js:1836 -msgid "voice name" +#: js/turtledefs.js:690 +msgid "Display statistics about your Music project." msgstr "" -#: js/palette.js:601 -#: js/PitchBlocks.js:1181 -msgid "custom pitch" +#: js/turtledefs.js:697 +msgid "Delete a selected plugin." msgstr "" -#: js/palette.js:605 -#: js/block.js:1456 -#: js/block.js:1575 -#: js/WidgetBlocks.js:218 -#: js/IntervalsBlocks.js:63 -msgid "temperament" +#: js/turtledefs.js:704 +msgid "Enable scrolling" msgstr "" -#: js/palette.js:609 -msgid "accidental" +#: js/turtledefs.js:705 +msgid "You can scroll the blocks on the canvas." msgstr "" -#: js/palette.js:615 -#: js/activity.js:1866 -msgid "interval name" +#: js/turtledefs.js:714 +msgid "Wrap Turtle" msgstr "" -#: js/palette.js:633 -#: js/PitchBlocks.js:405 -msgid "pitch converter" +#: js/turtledefs.js:715 +msgid "Turn Turtle wrapping On or Off." msgstr "" -#: js/rubrics.js:522 -#: js/turtledefs.js:119 -#: js/turtledefs.js:221 -#: js/RhythmBlockPaletteBlocks.js:52 -#: js/RhythmBlockPaletteBlocks.js:233 -#: js/ProgramBlocks.js:745 -#: js/rhythmruler.js:1670 -#: js/rhythmruler.js:1677 -#: js/rhythmruler.js:1745 -#: js/rhythmruler.js:1752 -#: js/rhythmruler.js:1830 -#.TRANS: an arrangement of notes based on duration -msgid "rhythm" +#: js/turtledefs.js:725 +msgid "Restore blocks from the trash." msgstr "" -#: js/rubrics.js:523 -#: js/block.js:2339 -#: js/turtledefs.js:121 -#: js/turtledefs.js:223 -#: js/IntervalsBlocks.js:63 -#: js/PitchBlocks.js:1801 -#: js/PitchBlocks.js:1814 -#: js/SensorsBlocks.js:178 -#: js/phrasemaker.js:821 -#: js/musickeyboard.js:1653 -#.TRANS: pitch number -#.TRANS: we specify pitch in terms of a name and an octave. The name can be CDEFGAB or Do Re Mi Fa Sol La Ti. Octave is a number between 1 and 8. -msgid "pitch" +#: js/turtledefs.js:732 +msgid "Switch mode" msgstr "" -#: js/rubrics.js:524 -#: js/turtledefs.js:123 -#: js/turtledefs.js:225 -msgid "tone" +#: js/turtledefs.js:733 +msgid "Switch between beginner and advance modes." msgstr "" -#: js/rubrics.js:525 -#: js/lilypond.js:613 -#: js/lilypond.js:912 -#: js/lilypond.js:918 -#: js/lilypond.js:956 -msgid "mouse" +#: js/turtledefs.js:739 +msgid "Select your language preference." msgstr "" -#: js/rubrics.js:526 -#: js/turtledefs.js:132 -#: js/turtledefs.js:234 -#: js/phrasemaker.js:825 -msgid "pen" +#: js/turtledefs.js:745 +msgid "Keyboard shortcuts" msgstr "" -#: js/rubrics.js:527 -#: js/turtledefs.js:133 -#: js/turtledefs.js:235 -#: js/NumberBlocks.js:905 -#: js/PitchBlocks.js:1679 -#: js/PitchBlocks.js:1720 -msgid "number" -msgstr "idadi" +#: js/turtledefs.js:746 +msgid "You can type d to create a do block and r to create a re block etc." +msgstr "" -#: js/rubrics.js:528 -#: js/turtledefs.js:127 -#: js/turtledefs.js:229 -msgid "flow" +#: js/turtledefs.js:753 +msgid "Show these messages." msgstr "" -#: js/rubrics.js:530 -#: js/turtledefs.js:136 -#: js/turtledefs.js:238 -msgid "sensors" +#: js/turtledefs.js:759 +#: js/turtledefs.js:790 +#: js/widgets/help.js:335 +msgid "Guide" msgstr "" -#: js/rubrics.js:531 -#: js/turtledefs.js:135 -#: js/turtledefs.js:237 -#: js/MediaBlocks.js:930 -msgid "media" +#: js/turtledefs.js:760 +msgid "A detailed guide to Turtle Blocks is available." msgstr "" -#: js/rubrics.js:532 -msgid "mice" +#: js/turtledefs.js:764 +msgid "Turtle Blocks Guide" msgstr "" -#: js/macros.js:711 -#: js/musicutils.js:783 -#: js/synthutils.js:181 -#.TRANS: animal sound effect -msgid "duck" +#: js/turtledefs.js:767 +#: js/turtledefs.js:798 +#: js/widgets/help.js:336 +msgid "About" msgstr "" -#: js/toolbar.js:46 -#: js/toolbar.js:107 -msgid "About Music Blocks" +#: js/turtledefs.js:768 +msgid "Turtle Blocks is an open source collection of tools for exploring musical concepts." msgstr "" -#: js/toolbar.js:47 -#: js/toolbar.js:108 -#: js/toolbar.js:172 -#: js/toolbar.js:228 -#: js/turtledefs.js:445 -#: js/turtledefs.js:482 -#: js/activity.js:2281 -#: js/activity.js:2289 -#: js/activity.js:2520 -#: js/modewidget.js:77 -#: js/pitchstaircase.js:121 -#: js/phrasemaker.js:302 -#: js/phrasemaker.js:312 -#: js/phrasemaker.js:314 -#: js/phrasemaker.js:3901 -#: js/phrasemaker.js:4061 -#: js/phrasemaker.js:4066 -#: js/phrasemaker.js:4068 -#: js/phrasemaker.js:4183 -#: js/pitchdrummatrix.js:81 -#: js/pitchdrummatrix.js:574 -#: js/pitchdrummatrix.js:576 -#: js/pitchdrummatrix.js:628 -#: js/pitchdrummatrix.js:630 -#: js/pitchdrummatrix.js:645 -#: js/pitchdrummatrix.js:647 -#: js/pitchdrummatrix.js:674 -#: js/pitchdrummatrix.js:676 -#: js/temperament.js:477 -#: js/temperament.js:480 -#: js/temperament.js:540 -#: js/temperament.js:542 -#: js/temperament.js:1835 -#: js/temperament.js:1837 -#: js/temperament.js:1986 -#: js/temperament.js:1988 -#: js/musickeyboard.js:522 -#: js/musickeyboard.js:682 -#: js/musickeyboard.js:684 -#: js/musickeyboard.js:756 -#: js/musickeyboard.js:758 -#: js/rhythmruler.js:298 -#: js/rhythmruler.js:300 -#: js/rhythmruler.js:314 -#: js/rhythmruler.js:316 -#: js/sampler.js:96 -#: js/sampler.js:98 -#: js/sampler.js:229 -#: js/sampler.js:235 -#: js/sampler.js:237 -#: js/tempo.js:84 -#: js/tempo.js:86 -#: js/timbre.js:432 -#: js/timbre.js:434 -#: js/timbre.js:465 -#: js/timbre.js:467 -#: js/timbre.js:746 -#: js/meterwidget.js:80 -#: js/arpeggio.js:90 -#: js/arpeggio.js:547 -#: js/arpeggio.js:549 -#: js/arpeggio.js:644 -#: js/arpeggio.js:646 -msgid "Play" +#: js/turtledefs.js:770 +msgid "A full list of contributors can be found in the Turtle Blocks GitHub repository." msgstr "" -#: js/toolbar.js:48 -#: js/toolbar.js:109 -#: js/toolbar.js:173 -#: js/toolbar.js:229 -#: js/turtledefs.js:451 -#: js/turtledefs.js:488 -#: js/activity.js:2297 -#: js/modewidget.js:99 -#: js/modewidget.js:101 -#: js/phrasemaker.js:323 -#: js/phrasemaker.js:325 -#: js/pitchdrummatrix.js:561 -#: js/pitchdrummatrix.js:563 -#: js/temperament.js:1820 -#: js/temperament.js:1822 -#: js/meterwidget.js:101 -#: js/meterwidget.js:103 -#: js/arpeggio.js:534 -#: js/arpeggio.js:536 -msgid "Stop" -msgstr "Kuacha" +#: js/turtledefs.js:772 +msgid "Turtle Blocks is licensed under the AGPL." +msgstr "" -#: js/toolbar.js:49 -#: js/toolbar.js:110 -#: js/toolbar.js:174 -#: js/toolbar.js:230 -#: js/turtledefs.js:498 -msgid "Record" +#: js/turtledefs.js:780 +msgid "Turtle Blocks GitHub repository" msgstr "" -#: js/toolbar.js:50 -#: js/toolbar.js:51 -msgid "Full screen" +#: js/turtledefs.js:783 +#: js/turtledefs.js:814 +#: js/widgets/help.js:337 +#: js/widgets/help.js:359 +msgid "Congratulations." msgstr "" -#: js/toolbar.js:52 -#: js/toolbar.js:112 -#: js/toolbar.js:177 -#: js/toolbar.js:232 -#: js/turtledefs.js:504 -msgid "Toggle Fullscreen" +#: js/turtledefs.js:784 +msgid "You have finished the tour. Please enjoy Turtle Blocks!" msgstr "" -#: js/toolbar.js:53 -#: js/toolbar.js:113 -#: js/toolbar.js:178 -#: js/toolbar.js:233 -#: js/turtledefs.js:510 -#: js/StringHelper.js:33 -msgid "New project" +#: js/turtledefs.js:791 +msgid "A detailed guide to Music Blocks is available." msgstr "" -#: js/toolbar.js:54 -#: js/toolbar.js:114 -#: js/toolbar.js:179 -#: js/toolbar.js:234 -#: js/turtledefs.js:516 -msgid "Load project from file" +#: js/turtledefs.js:799 +msgid "Music Blocks is an open source collection of tools for exploring musical concepts." msgstr "" -#: js/toolbar.js:55 -#: js/toolbar.js:115 -#: js/toolbar.js:116 -#: js/toolbar.js:180 -#: js/toolbar.js:235 -#: js/turtledefs.js:541 -#: js/turtledefs.js:550 -#: js/turtledefs.js:571 -msgid "Save project" +#: js/turtledefs.js:801 +msgid "A full list of contributors can be found in the Music Blocks GitHub repository." msgstr "" -#: js/toolbar.js:56 -#: js/toolbar.js:75 -#: js/toolbar.js:77 -#: js/toolbar.js:135 -#: js/toolbar.js:144 -#: js/toolbar.js:146 -#: js/toolbar.js:181 -#: js/toolbar.js:199 -#: js/toolbar.js:201 -#: js/toolbar.js:236 -#: js/toolbar.js:254 -#: js/toolbar.js:256 -msgid "Save project as HTML" +#: js/turtledefs.js:803 +msgid "Music Blocks is licensed under the AGPL." msgstr "" -#: js/toolbar.js:57 -#: js/toolbar.js:117 -#: js/toolbar.js:182 -#: js/toolbar.js:237 -msgid "Find and share projects" +#: js/turtledefs.js:811 +msgid "Music Blocks GitHub repository" msgstr "" -#: js/toolbar.js:58 -#: js/toolbar.js:118 -#: js/toolbar.js:183 -#: js/toolbar.js:238 -msgid "Offline. Sharing is unavailable" +#: js/turtledefs.js:815 +msgid "You have finished the tour. Please enjoy Music Blocks!" +msgstr "" + +#: js/turtles.js:882 +msgid "Grid" +msgstr "Gridi" + +#: js/turtles.js:1024 +msgid "Expand" +msgstr "" + +#: js/block-verbose.js:1616 +#: js/block-verbose.js:1735 +#: js/block.js:1580 +#: js/block.js:1699 +#: js/palette.js:605 +#: js/blocks/IntervalsBlocks.js:63 +#: js/blocks/WidgetBlocks.js:259 +msgid "temperament" +msgstr "" + +#: js/block-verbose.js:1630 +#: js/block.js:1594 +msgid "matrix" +msgstr "" + +#: js/block-verbose.js:1637 +#: js/block.js:1601 +#: js/blocks/WidgetBlocks.js:1509 +#: plugins/rodi.rtp:324 +msgid "status" +msgstr "" + +#: js/block-verbose.js:1644 +#: js/block.js:1608 +msgid "drum mapper" +msgstr "" + +#: js/block-verbose.js:1651 +#: js/block.js:1615 +msgid "ruler" +msgstr "" + +#: js/block-verbose.js:1658 +#: js/block.js:1622 +#: js/blocks/WidgetBlocks.js:397 +#.TRANS: timbre is the character or quality of a musical sound +msgid "timbre" msgstr "" -#: js/toolbar.js:59 -#: js/toolbar.js:119 -#: js/toolbar.js:184 -#: js/toolbar.js:239 -msgid "Auxiliary menu" +#: js/block-verbose.js:1665 +#: js/block.js:1629 +msgid "stair" msgstr "" -#: js/toolbar.js:61 -#: js/toolbar.js:121 -#: js/toolbar.js:186 -#: js/toolbar.js:241 -msgid "Run slowly" +#: js/block-verbose.js:1672 +#: js/block.js:1636 +#: js/blocks/WidgetBlocks.js:707 +#.TRANS: the speed at music is should be played. +msgid "tempo" msgstr "" -#: js/toolbar.js:62 -#: js/toolbar.js:122 -#: js/toolbar.js:187 -#: js/toolbar.js:242 -#: js/turtledefs.js:682 -msgid "Run step by step" +#: js/block-verbose.js:1679 +#: js/block-verbose.js:1742 +#: js/block.js:1643 +#: js/block.js:1706 +#: js/blocks/IntervalsBlocks.js:1464 +#.TRANS: mode, e.g., Major in C Major +msgid "mode" msgstr "" -#: js/toolbar.js:63 -#: js/toolbar.js:123 -#: js/toolbar.js:188 -#: js/toolbar.js:243 -#: js/turtledefs.js:689 -msgid "Display statistics" +#: js/block-verbose.js:1686 +#: js/block.js:1650 +msgid "slider" msgstr "" -#: js/toolbar.js:64 -#: js/toolbar.js:124 -#: js/toolbar.js:189 -#: js/toolbar.js:244 -msgid "Load plugin" +#: js/block-verbose.js:1693 +#: js/block.js:1657 +#: js/blocks/SensorsBlocks.js:1001 +msgid "keyboard" +msgstr "baobonye" + +#: js/block-verbose.js:1707 +#: js/block.js:1671 +#: js/blocks/WidgetBlocks.js:1190 +#: js/blocks/WidgetBlocks.js:1228 +#.TRANS: widget for subdividing a measure into distinct rhythmic elements +msgid "rhythm maker" msgstr "" -#: js/toolbar.js:65 -#: js/toolbar.js:125 -#: js/toolbar.js:190 -#: js/toolbar.js:245 -#: js/turtledefs.js:696 -msgid "Delete plugin" +#: js/block-verbose.js:1714 +#: js/block-verbose.js:2457 +#: js/block-verbose.js:2514 +#: js/block.js:1678 +#: js/block.js:2385 +#: js/block.js:2442 +#: js/blocks/MeterBlocks.js:1367 +#: js/blocks/OrnamentBlocks.js:220 +#: js/blocks/OrnamentBlocks.js:312 +#: js/blocks/RhythmBlocks.js:33 +#: js/blocks/RhythmBlocks.js:356 +#: js/blocks/RhythmBlocks.js:766 +#: js/blocks/RhythmBlocks.js:806 +#: js/blocks/RhythmBlockPaletteBlocks.js:70 +#: js/blocks/RhythmBlockPaletteBlocks.js:252 +#: js/blocks/RhythmBlockPaletteBlocks.js:485 +#: js/blocks/RhythmBlockPaletteBlocks.js:554 +#: js/blocks/RhythmBlockPaletteBlocks.js:605 +#: js/blocks/RhythmBlockPaletteBlocks.js:875 +#: js/turtleactions/DictActions.js:85 +#: js/widgets/phrasemaker.js:942 +#: js/widgets/phrasemaker.js:2656 +#: js/widgets/phrasemaker.js:2699 +#: js/widgets/phrasemaker.js:2810 +#.TRANS: the value (e.g., 1/4 note) of the note being played. +msgid "note value" msgstr "" -#: js/toolbar.js:66 -#: js/toolbar.js:126 -#: js/toolbar.js:191 -#: js/toolbar.js:246 -msgid "Enable horizontal scrolling" +#: js/block-verbose.js:1721 +#: js/block-verbose.js:2382 +#: js/block-verbose.js:2405 +#: js/block.js:1685 +#: js/block.js:2310 +#: js/block.js:2333 +#: js/blocks/IntervalsBlocks.js:1071 +#: js/blocks/OrnamentBlocks.js:312 +#.TRANS: calculate a relative step between notes based on semi-tones +msgid "scalar interval" msgstr "" -#: js/toolbar.js:67 -#: js/toolbar.js:127 -#: js/toolbar.js:192 -#: js/toolbar.js:247 -msgid "Disable horizontal scrolling" +#: js/block-verbose.js:1728 +#: js/block.js:1692 +#: js/blocks/RhythmBlocks.js:148 +msgid "milliseconds" msgstr "" -#: js/toolbar.js:68 -#: js/toolbar.js:128 -#: js/toolbar.js:193 -#: js/toolbar.js:248 -#: js/LocalCard.js:54 -#: js/StringHelper.js:71 -msgid "Merge with current project" +#: js/block-verbose.js:2455 +#: js/block-verbose.js:2459 +#: js/block-verbose.js:2512 +#: js/block-verbose.js:2628 +#: js/block.js:2383 +#: js/block.js:2387 +#: js/block.js:2440 +#: js/block.js:2556 +#: js/blocks/RhythmBlocks.js:712 +#: js/blocks/ProgramBlocks.js:1273 +#: js/widgets/rhythmruler.js:1183 +#: js/widgets/rhythmruler.js:1329 +msgid "silence" msgstr "" -#: js/toolbar.js:69 -#: js/toolbar.js:129 -msgid "Set Pitch Preview" +#: js/block-verbose.js:2548 +#: js/block-verbose.js:3492 +#: js/block-verbose.js:3509 +#: js/activity.js:2718 +#: js/activity.js:2769 +#: js/block.js:2476 +#: js/block.js:3416 +#: js/block.js:3433 +#: js/utils/musicutils.js:3780 +#: js/utils/musicutils.js:5273 +#.TRANS: the note names must be separated by single spaces +#.TRANS: the note names must be separated by single spaces +#.TRANS: the note names must be separated by single spaces +msgid "ti la sol fa mi re do" msgstr "" -#: js/toolbar.js:70 -#: js/toolbar.js:130 -#: js/toolbar.js:194 -#: js/toolbar.js:249 -msgid "Toggle JavaScript Editor" +#: js/block-verbose.js:2616 +#: js/block.js:2544 +#.TRANS: scalar step +#.TRANS: scalar step +msgid "down" msgstr "" -#: js/toolbar.js:71 -#: js/toolbar.js:131 -#: js/toolbar.js:195 -#: js/toolbar.js:250 -#: js/turtledefs.js:724 -msgid "Restore" +#: js/block-verbose.js:2617 +#: js/block.js:2545 +msgid "up" msgstr "" -#: js/toolbar.js:72 -#: js/toolbar.js:132 -#: js/toolbar.js:196 -#: js/toolbar.js:251 -msgid "Switch to beginner mode" +#: js/block-verbose.js:3026 +#: js/block.js:2950 +msgid "Silence block cannot be removed." msgstr "" -#: js/toolbar.js:73 -#: js/toolbar.js:133 -#: js/toolbar.js:197 -#: js/toolbar.js:252 -msgid "Switch to advanced mode" +#: js/block-verbose.js:3824 +#: js/block.js:3748 +#: js/blocks.js:2607 +#: js/blocks.js:3218 +#: js/palette.js:618 +#: js/blocks/BooleanBlocks.js:77 +#: js/blocks/BooleanBlocks.js:167 +#: js/blocks/BooleanBlocks.js:251 +#: js/blocks/BooleanBlocks.js:335 +#: js/blocks/BooleanBlocks.js:433 +#: js/blocks/BooleanBlocks.js:539 +#: js/blocks/BooleanBlocks.js:640 +#: js/blocks/BooleanBlocks.js:741 +#: js/blocks/BooleanBlocks.js:847 +#: js/blocks/BooleanBlocks.js:948 +#: js/blocks/BooleanBlocks.js:1033 +#: js/blocks/SensorsBlocks.js:910 +msgid "true" msgstr "" -#: js/toolbar.js:74 -#: js/toolbar.js:134 -#: js/toolbar.js:143 -#: js/toolbar.js:198 -#: js/toolbar.js:253 -#: js/turtledefs.js:738 -msgid "Select language" +#: js/block-verbose.js:3824 +#: js/block.js:3748 +#: js/blocks.js:2609 +#: js/blocks.js:3220 +#: js/blocks/BooleanBlocks.js:79 +#: js/blocks/BooleanBlocks.js:169 +#: js/blocks/BooleanBlocks.js:253 +#: js/blocks/BooleanBlocks.js:337 +#: js/blocks/BooleanBlocks.js:435 +#: js/blocks/BooleanBlocks.js:541 +#: js/blocks/BooleanBlocks.js:642 +#: js/blocks/BooleanBlocks.js:743 +#: js/blocks/BooleanBlocks.js:849 +#: js/blocks/BooleanBlocks.js:950 +#: js/blocks/SensorsBlocks.js:912 +msgid "false" msgstr "" -#: js/toolbar.js:76 -#: js/toolbar.js:79 -#: js/toolbar.js:137 -#: js/turtledefs.js:579 -msgid "Save mouse artwork as PNG" +#: js/block-verbose.js:3835 +#: js/block-verbose.js:3848 +#: js/block.js:3759 +#: js/block.js:3772 +#: js/blocks/ExtrasBlocks.js:615 +msgid "Cartesian" msgstr "" -#: js/toolbar.js:78 -#: js/toolbar.js:136 -#: js/turtledefs.js:575 -msgid "Save mouse artwork as SVG" +#: js/block-verbose.js:3836 +#: js/block-verbose.js:3849 +#: js/block.js:3760 +#: js/block.js:3773 +#: js/blocks/ExtrasBlocks.js:619 +msgid "polar" msgstr "" -#: js/toolbar.js:80 -#: js/toolbar.js:138 -#: js/turtledefs.js:583 -msgid "Save music as WAV" +#: js/block-verbose.js:3837 +#: js/block-verbose.js:3850 +#: js/block.js:3761 +#: js/block.js:3774 +#: js/blocks/ExtrasBlocks.js:623 +msgid "Cartesian+polar" msgstr "" -#: js/toolbar.js:81 -#: js/toolbar.js:139 -#: js/turtledefs.js:587 -msgid "Save sheet music as ABC" +#: js/block-verbose.js:3838 +#: js/block-verbose.js:3857 +#: js/block.js:3762 +#: js/block.js:3781 +#: js/blocks/ExtrasBlocks.js:652 +msgid "none" msgstr "" -#: js/toolbar.js:82 -#: js/toolbar.js:140 -#: js/turtledefs.js:591 -msgid "Save sheet music as Lilypond" +#: js/block-verbose.js:3851 +#: js/block.js:3775 +#: js/blocks/ExtrasBlocks.js:628 +msgid "treble" msgstr "" -#: js/toolbar.js:83 -msgid "Save sheet music as MusicXML" +#: js/block-verbose.js:3852 +#: js/block.js:3776 +#: js/blocks/ExtrasBlocks.js:632 +msgid "grand staff" msgstr "" -#: js/toolbar.js:84 -#: js/toolbar.js:141 -#: js/toolbar.js:149 -#: js/toolbar.js:204 -#: js/toolbar.js:259 -#: js/turtledefs.js:562 -#: js/turtledefs.js:595 -msgid "Save block artwork as SVG" +#: js/block-verbose.js:3853 +#: js/block.js:3777 +#: js/blocks/ExtrasBlocks.js:636 +msgid "mezzo-soprano" msgstr "" -#: js/toolbar.js:85 -#: js/toolbar.js:142 -#: js/toolbar.js:150 -#: js/toolbar.js:205 -#: js/toolbar.js:260 -msgid "Confirm" +#: js/block-verbose.js:3854 +#: js/block.js:3778 +#: js/blocks/ExtrasBlocks.js:640 +msgid "alto" msgstr "" -#: js/toolbar.js:86 -#: js/toolbar.js:151 -#: js/toolbar.js:206 -#: js/toolbar.js:261 -msgid "English (United States)" +#: js/block-verbose.js:3855 +#: js/block.js:3779 +#: js/blocks/ExtrasBlocks.js:644 +msgid "tenor" msgstr "" -#: js/toolbar.js:87 -#: js/toolbar.js:152 -#: js/toolbar.js:207 -#: js/toolbar.js:262 -msgid "English (United Kingdom)" +#: js/block-verbose.js:3856 +#: js/block.js:3780 +#: js/utils/musicutils.js:1115 +#: js/utils/synthutils.js:80 +#: js/blocks/ExtrasBlocks.js:648 +#.TRANS: musical instrument +msgid "bass" msgstr "" -#: js/toolbar.js:88 -#: js/toolbar.js:153 -#: js/toolbar.js:208 -#: js/toolbar.js:263 -msgid "日本語" +#: js/block-verbose.js:3901 +#: js/block.js:3825 +#: js/blocks.js:2600 +#: js/blocks.js:3211 +msgid "on2" msgstr "" -#: js/toolbar.js:89 -msgid "한국어" +#: js/block-verbose.js:3903 +#: js/block.js:3827 +#: js/blocks.js:2602 +#: js/blocks.js:3213 +msgid "off" msgstr "" -#: js/toolbar.js:90 -#: js/toolbar.js:155 -#: js/toolbar.js:210 -#: js/toolbar.js:265 -msgid "español" +#: js/block-verbose.js:4470 +#: js/block.js:4394 +msgid "Not a number" msgstr "" -#: js/toolbar.js:91 -#: js/toolbar.js:156 -#: js/toolbar.js:211 -#: js/toolbar.js:266 -msgid "português" +#: js/block-verbose.js:4477 +#: js/block.js:4401 +msgid "Octave value must be between 1 and 10." msgstr "" -#: js/toolbar.js:92 -#: js/toolbar.js:157 -#: js/toolbar.js:212 -#: js/toolbar.js:267 -msgid "にほんご" +#: js/block-verbose.js:4485 +#: js/block.js:4409 +msgid "Numbers can have at most 10 digits." msgstr "" -#: js/toolbar.js:93 -#: js/toolbar.js:158 -#: js/toolbar.js:213 -#: js/toolbar.js:268 -msgid "中文" +#: js/activity.js:390 +#: js/activity.js:395 +msgid "Search for blocks" msgstr "" -#: js/toolbar.js:94 -#: js/toolbar.js:159 -#: js/toolbar.js:214 -#: js/toolbar.js:269 -msgid "ภาษาไทย" +#: js/activity.js:1413 +msgid "Refresh your browser to change to advanced mode." msgstr "" -#: js/toolbar.js:95 -#: js/toolbar.js:160 -#: js/toolbar.js:215 -#: js/toolbar.js:270 -msgid "aymara" +#: js/activity.js:1418 +msgid "Refresh your browser to change to beginner mode." msgstr "" -#: js/toolbar.js:96 -#: js/toolbar.js:161 -#: js/toolbar.js:216 -#: js/toolbar.js:271 -msgid "quechua" +#: js/activity.js:1477 +msgid "Catching mice" msgstr "" -#: js/toolbar.js:97 -#: js/toolbar.js:162 -#: js/toolbar.js:217 -#: js/toolbar.js:272 -msgid "guarani" +#: js/activity.js:1478 +msgid "Cleaning the instruments" msgstr "" -#: js/toolbar.js:98 -#: js/toolbar.js:163 -#: js/toolbar.js:218 -#: js/toolbar.js:273 -msgid "हिंदी" +#: js/activity.js:1479 +msgid "Testing key pieces" msgstr "" -#: js/toolbar.js:99 -#: js/toolbar.js:165 -#: js/toolbar.js:219 -#: js/toolbar.js:275 -msgid "igbo" +#: js/activity.js:1480 +msgid "Sight-reading" msgstr "" -#: js/toolbar.js:100 -#: js/toolbar.js:166 -#: js/toolbar.js:220 -#: js/toolbar.js:276 -msgid "عربى" +#: js/activity.js:1481 +msgid "Combining math and music" msgstr "" -#: js/toolbar.js:101 -#: js/toolbar.js:164 -#: js/toolbar.js:221 -#: js/toolbar.js:274 -msgid "తెలుగు" +#: js/activity.js:1482 +msgid "Generating more blocks" msgstr "" -#: js/toolbar.js:102 -#: js/toolbar.js:167 -#: js/toolbar.js:222 -#: js/toolbar.js:277 -msgid "עִברִית" +#: js/activity.js:1483 +msgid "Do Re Mi Fa Sol La Ti Do" +msgstr "" + +#: js/activity.js:1484 +msgid "Tuning string instruments" msgstr "" -#: js/toolbar.js:111 -#: js/toolbar.js:175 -#: js/toolbar.js:176 -#: js/toolbar.js:231 -msgid "Full Screen" +#: js/activity.js:1485 +msgid "Pressing random keys" msgstr "" -#: js/toolbar.js:145 -#: js/toolbar.js:148 -#: js/toolbar.js:200 -#: js/toolbar.js:203 -#: js/toolbar.js:255 -#: js/toolbar.js:258 -#: js/turtledefs.js:558 -msgid "Save turtle artwork as PNG" +#: js/activity.js:1663 +msgid "plugins will be removed upon restart." msgstr "" -#: js/toolbar.js:147 -#: js/toolbar.js:202 -#: js/toolbar.js:257 -#: js/turtledefs.js:554 -msgid "Save turtle artwork as SVG" +#: js/activity.js:1672 +msgid "show Cartesian" msgstr "" -#: js/toolbar.js:154 -#: js/toolbar.js:209 -#: js/toolbar.js:264 -msgid "한국인" +#: js/activity.js:2211 +#: js/palette.js:589 +#: js/blocks/RhythmBlocks.js:923 +#: js/blocks/PitchBlocks.js:442 +#: js/blocks/PitchBlocks.js:1786 +#.TRANS: a numeric mapping of the notes in an octave based on the musical mode +msgid "scale degree" msgstr "" -#: js/toolbar.js:171 -#: js/toolbar.js:227 -msgid "About Turtle Blocks" +#: js/activity.js:2214 +#: js/palette.js:598 +msgid "voice name" msgstr "" -#: js/toolbar.js:429 -#: js/toolbar.js:440 -msgid "Turtle Wrap Off" +#: js/activity.js:2217 +#: js/palette.js:595 +msgid "invert mode" msgstr "" -#: js/toolbar.js:442 -msgid "Turtle Wrap On" +#: js/activity.js:2220 +msgid "output tools" msgstr "" -#: js/block.js:1470 -msgid "matrix" +#: js/activity.js:2223 +msgid "custom note" msgstr "" -#: js/block.js:1477 -#: js/WidgetBlocks.js:1226 -#: plugins/rodi.rtp:324 -msgid "status" +#: js/activity.js:2226 +msgid "accidental name" msgstr "" -#: js/block.js:1484 -msgid "drum mapper" +#: js/activity.js:2229 +#: js/blocks/PitchBlocks.js:855 +msgid "east indian solfege" msgstr "" -#: js/block.js:1491 -msgid "ruler" +#: js/activity.js:2232 +#: js/blocks/PitchBlocks.js:869 +msgid "note name" msgstr "" -#: js/block.js:1498 -#: js/WidgetBlocks.js:327 -#.TRANS: timbre is the character or quality of a musical sound -msgid "timbre" +#: js/activity.js:2235 +#: js/blocks/IntervalsBlocks.js:94 +msgid "temperament name" msgstr "" -#: js/block.js:1505 -msgid "stair" +#: js/activity.js:2238 +#: js/palette.js:592 +msgid "mode name" msgstr "" -#: js/block.js:1512 -#: js/WidgetBlocks.js:577 -#.TRANS: the speed at music is should be played. -msgid "tempo" +#: js/activity.js:2241 +msgid "chord name" msgstr "" -#: js/block.js:1519 -#: js/block.js:1582 -#: js/IntervalsBlocks.js:1268 -#.TRANS: mode, e.g., Major in C Major -msgid "mode" +#: js/activity.js:2244 +#: js/palette.js:615 +msgid "interval name" msgstr "" -#: js/block.js:1526 -msgid "slider" +#: js/activity.js:2247 +msgid "filter type" msgstr "" -#: js/block.js:1533 -#: js/SensorsBlocks.js:1001 -msgid "keyboard" -msgstr "baobonye" +#: js/activity.js:2250 +msgid "oscillator type" +msgstr "" -#: js/block.js:1547 -#: js/WidgetBlocks.js:957 -#: js/WidgetBlocks.js:988 -#.TRANS: widget for subdividing a measure into distinct rhythmic elements -msgid "rhythm maker" +#: js/activity.js:2253 +#: js/blocks.js:2479 +#: js/blocks.js:2487 +msgid "audio file" msgstr "" -#: js/block.js:1554 -#: js/block.js:2182 -#: js/block.js:2236 -#: js/RhythmBlockPaletteBlocks.js:70 -#: js/RhythmBlockPaletteBlocks.js:251 -#: js/RhythmBlockPaletteBlocks.js:484 -#: js/RhythmBlockPaletteBlocks.js:553 -#: js/RhythmBlockPaletteBlocks.js:604 -#: js/RhythmBlockPaletteBlocks.js:874 -#: js/RhythmBlocks.js:33 -#: js/RhythmBlocks.js:356 -#: js/RhythmBlocks.js:766 -#: js/RhythmBlocks.js:806 -#: js/OrnamentBlocks.js:220 -#: js/OrnamentBlocks.js:312 -#: js/MeterBlocks.js:1367 -#: js/DictActions.js:85 -#: js/phrasemaker.js:731 -#: js/phrasemaker.js:2393 -#: js/phrasemaker.js:2436 -#: js/phrasemaker.js:2534 -#.TRANS: the value (e.g., 1/4 note) of the note being played. -msgid "note value" +#: js/activity.js:2256 +#: js/blocks/DrumBlocks.js:32 +msgid "noise name" msgstr "" -#: js/block.js:1561 -#: js/block.js:2110 -#: js/block.js:2133 -#: js/IntervalsBlocks.js:875 -#: js/OrnamentBlocks.js:312 -#.TRANS: calculate a relative step between notes based on semi-tones -msgid "scalar interval" +#: js/activity.js:2259 +#: js/blocks/DrumBlocks.js:75 +msgid "drum name" msgstr "" -#: js/block.js:1568 -#: js/RhythmBlocks.js:148 -msgid "milliseconds" +#: js/activity.js:2262 +#: js/blocks/DrumBlocks.js:119 +msgid "effects name" msgstr "" -#: js/block.js:2180 -#: js/block.js:2184 -#: js/block.js:2234 -#: js/block.js:2345 -#: js/ProgramBlocks.js:1273 -#: js/RhythmBlocks.js:712 -#: js/rhythmruler.js:834 -#: js/rhythmruler.js:961 -msgid "silence" +#: js/activity.js:2265 +msgid "wrap mode" msgstr "" -#: js/block.js:2265 -#: js/block.js:3134 -#: js/block.js:3151 -#: js/activity.js:2336 -#: js/activity.js:2387 -#: js/musicutils.js:2932 -#: js/musicutils.js:4287 -#.TRANS: the note names must be separated by single spaces -#.TRANS: the note names must be separated by single spaces -msgid "ti la sol fa mi re do" +#: js/activity.js:2268 +msgid "load file" msgstr "" -#: js/block.js:2333 -#.TRANS: scalar step -msgid "down" +#: js/activity.js:2435 +#: js/activity.js:5851 +msgid "This block is deprecated." msgstr "" -#: js/block.js:2334 -msgid "up" +#: js/activity.js:2437 +#: js/activity.js:5853 +msgid "Block cannot be found." msgstr "" -#: js/block.js:3477 -#: js/block.js:3490 -#: js/ExtrasBlocks.js:612 -msgid "Cartesian" +#: js/activity.js:2645 +msgid "Saving block artwork" msgstr "" -#: js/block.js:3478 -#: js/block.js:3491 -#: js/ExtrasBlocks.js:616 -msgid "polar" +#: js/activity.js:2656 +msgid "Erase" msgstr "" -#: js/block.js:3479 -#: js/block.js:3492 -#: js/ExtrasBlocks.js:620 -msgid "Cartesian+polar" +#: js/activity.js:2683 +#: js/activity.js:2705 +msgid "Paste" +msgstr "Kuweka" + +#: js/activity.js:2687 +msgid "Save block help" msgstr "" -#: js/block.js:3480 -#: js/block.js:3499 -#: js/ExtrasBlocks.js:649 -msgid "none" +#: js/activity.js:2772 +msgid "Jumping to the bottom of the page." msgstr "" -#: js/block.js:3493 -#: js/ExtrasBlocks.js:625 -msgid "treble" +#: js/activity.js:2778 +msgid "Scrolling up." msgstr "" -#: js/block.js:3494 -#: js/ExtrasBlocks.js:629 -msgid "grand staff" +#: js/activity.js:2783 +msgid "Scrolling down." msgstr "" -#: js/block.js:3495 -#: js/ExtrasBlocks.js:633 -msgid "mezzo-soprano" +#: js/activity.js:2788 +msgid "Extracting block" msgstr "" -#: js/block.js:3496 -#: js/ExtrasBlocks.js:637 -msgid "alto" +#: js/activity.js:2796 +msgid "Moving block up." msgstr "" -#: js/block.js:3497 -#: js/ExtrasBlocks.js:641 -msgid "tenor" +#: js/activity.js:2817 +msgid "Moving block down." msgstr "" -#: js/block.js:3498 -#: js/ExtrasBlocks.js:645 -#: js/musicutils.js:736 -#: js/synthutils.js:64 -#.TRANS: musical instrument -msgid "bass" +#: js/activity.js:2838 +msgid "Moving block left." msgstr "" -#: js/block.js:4075 -msgid "Not a number" +#: js/activity.js:2855 +msgid "Moving block right." msgstr "" -#: js/block.js:4082 -msgid "Octave value must be between 1 and 10." +#: js/activity.js:2870 +msgid "Jump to home position." msgstr "" -#: js/block.js:4090 -msgid "Numbers can have at most 10 digits." +#: js/activity.js:2897 +msgid "Hide blocks" msgstr "" -#: js/notation.js:353 -msgid "Lilypond cannot process pickup of " +#: js/activity.js:4500 +msgid "Click the run button to run the project." msgstr "" -#: js/turtledefs.js:40 -#.TRANS: put the URL to the guide here, e.g., https://github.com/sugarlabs/turtleblocksjs/tree/master/guide/README.md -msgid "guide url" +#: js/activity.js:5692 +msgid "Show/hide block" msgstr "" -#: js/turtledefs.js:85 -#: js/turtledefs.js:437 -msgid "Turtle Blocks is a Logo-inspired turtle that draws colorful pictures with snap-together visual-programming blocks." +#: js/activity.js:5698 +msgid "Expand/collapse blocks" msgstr "" -#: js/turtledefs.js:118 -#: js/turtledefs.js:220 -msgid "search" +#: js/activity.js:5976 +msgid "Could not parse JSON input." msgstr "" -#: js/turtledefs.js:120 -#: js/turtledefs.js:222 -#: js/WidgetBlocks.js:437 -#: js/MeterBlocks.js:1343 -#.TRANS: musical meter (time signature), e.g., 4:4 -msgid "meter" +#: js/activity.js:6475 +#: js/activity.js:6580 +#: js/activity.js:6631 +msgid "Cannot load project from the file. Please check the file type." msgstr "" -#: js/turtledefs.js:122 -#: js/turtledefs.js:224 -msgid "intervals" +#: js/activity.js:6917 +msgid "Invalid parameters" msgstr "" -#: js/turtledefs.js:124 -#: js/turtledefs.js:226 -msgid "ornament" +#: js/blocks.js:1212 +#: js/blocks.js:3444 +#: js/blocks.js:3834 +#: js/blocks.js:3865 +#: js/blocks.js:3914 +#: js/blocks.js:3949 +#: js/blocks.js:6586 +#: js/palette.js:509 +#: js/palette.js:638 +#: js/palette.js:1105 +#: js/blocks/BoxesBlocks.js:282 +#: js/blocks/BoxesBlocks.js:285 +#: js/blocks/BoxesBlocks.js:405 +#: js/blocks/BoxesBlocks.js:594 +msgid "box" msgstr "" -#: js/turtledefs.js:125 -#: js/turtledefs.js:227 -#: js/VolumeBlocks.js:362 -#: js/VolumeBlocks.js:502 -#: js/VolumeBlocks.js:545 -msgid "volume" +#: js/blocks.js:1713 +msgid "Consider breaking this stack into parts." msgstr "" -#: js/turtledefs.js:129 -#: js/turtledefs.js:231 -msgid "boxes" +#: js/blocks.js:2472 +#: js/palette.js:653 +#: js/blocks/MediaBlocks.js:602 +msgid "open file" msgstr "" -#: js/turtledefs.js:130 -#: js/turtledefs.js:232 -msgid "widgets" +#: js/blocks.js:3247 +#: js/palette.js:574 +#: js/blocks/MediaBlocks.js:892 +#: js/blocks/MediaBlocks.js:963 +msgid "text" +msgstr "maandishi" + +#: js/blocks.js:3443 +#: js/palette.js:641 +#: js/palette.js:642 +#: js/blocks/BoxesBlocks.js:514 +msgid "store in box" msgstr "" -#: js/turtledefs.js:131 -#: js/turtledefs.js:233 -#: js/phrasemaker.js:824 -msgid "graphics" +#: js/blocks.js:3448 +#: js/blocks.js:3888 +#: js/blocks.js:3923 +#: js/blocks.js:3958 +#: js/blocks.js:5862 +#: js/blocks.js:5883 +#: js/blocks/BoxesBlocks.js:772 +msgid "box1" msgstr "" -#: js/turtledefs.js:134 -#: js/turtledefs.js:236 -msgid "boolean" +#: js/blocks.js:3450 +#: js/blocks.js:3890 +#: js/blocks.js:3925 +#: js/blocks.js:3960 +#: js/blocks.js:5864 +#: js/blocks.js:5885 +#: js/blocks/BoxesBlocks.js:663 +msgid "box2" msgstr "" -#: js/turtledefs.js:137 -#: js/turtledefs.js:239 -#: js/HeapBlocks.js:59 -#: js/status.js:147 -msgid "heap" +#: js/blocks.js:4122 +#: js/palette.js:639 +#: js/palette.js:644 +#: js/palette.js:1041 +#: js/blocks/BoxesBlocks.js:591 +msgid "store in" msgstr "" -#: js/turtledefs.js:138 -#: js/turtledefs.js:240 -#: js/ProgramBlocks.js:495 -#: js/DictBlocks.js:142 -msgid "dictionary" +#: js/blocks.js:4122 +#: js/blocks/BoxesBlocks.js:595 +#: js/blocks/DictBlocks.js:215 +#: js/blocks/DictBlocks.js:289 +#: js/blocks/EnsembleBlocks.js:391 +#: js/blocks/EnsembleBlocks.js:402 +#: js/blocks/MediaBlocks.js:746 +#: js/blocks/PitchBlocks.js:656 +#: js/blocks/PitchBlocks.js:934 +#: js/blocks/PitchBlocks.js:1866 +#: js/blocks/ProgramBlocks.js:390 +#: js/blocks/ProgramBlocks.js:495 +#: js/blocks/ProgramBlocks.js:658 +#: js/blocks/ToneBlocks.js:1025 +msgid "name" msgstr "" -#: js/turtledefs.js:139 -#: js/turtledefs.js:241 -msgid "ensemble" +#: js/blocks.js:4122 +#: js/blocks/BoxesBlocks.js:75 +#: js/blocks/BoxesBlocks.js:595 +#: js/blocks/DictBlocks.js:289 +#: js/blocks/DictBlocks.js:430 +#: js/blocks/HeapBlocks.js:544 +#: js/blocks/RhythmBlocks.js:1130 +msgid "value" msgstr "" -#: js/turtledefs.js:140 -#: js/turtledefs.js:242 -msgid "extras" +#: js/blocks.js:4465 +msgid "Forever loop detected inside a note value block. Unexpected things may happen." msgstr "" -#: js/turtledefs.js:142 -#: js/turtledefs.js:244 -#.TRANS: program as in computer program -#.TRANS: program as in computer program -msgid "program" +#: js/blocks.js:4988 +msgid "There is no block selected." msgstr "" -#: js/turtledefs.js:143 -#: js/turtledefs.js:245 -msgid "my blocks" +#: js/blocks.js:5091 +#: js/blocks/MediaBlocks.js:888 +msgid "show" msgstr "" -#: js/turtledefs.js:185 -#: js/turtledefs.js:281 -msgid "artwork" +#: js/blocks.js:5094 +#: js/blocks/MediaBlocks.js:803 +#.TRANS: Avatar is the image used to determine the appearance of the mouse. +msgid "avatar" msgstr "" -#: js/turtledefs.js:185 -#: js/turtledefs.js:281 -msgid "logic" +#: js/blocks.js:5097 +#: js/blocks/ToneBlocks.js:1010 +#: js/widgets/sampler.js:975 +#.TRANS: The sound sample that the user uploads. +msgid "sample" msgstr "" -#: js/turtledefs.js:185 -#: js/turtledefs.js:281 -msgid "music" +#: js/lilypond.js:606 +msgid "brown rat" msgstr "" -#: js/turtledefs.js:187 -#: js/turtledefs.js:463 -msgid "Music Blocks is a collection of tools for exploring fundamental musical concepts in a fun way." +#: js/lilypond.js:607 +msgid "mole" msgstr "" -#: js/turtledefs.js:436 -msgid "Welcome to Turtle Blocks" +#: js/lilypond.js:608 +msgid "chipmunk" msgstr "" -#: js/turtledefs.js:438 -#: js/turtledefs.js:465 -#: js/turtledefs.js:774 -#: js/turtledefs.js:805 -msgid "The current version is" +#: js/lilypond.js:609 +msgid "red squirrel" msgstr "" -#: js/turtledefs.js:446 -#: js/turtledefs.js:483 -msgid "Click the run button to run the project in fast mode." +#: js/lilypond.js:610 +msgid "guinea pig" msgstr "" -#: js/turtledefs.js:452 -msgid "Stop the turtle." +#: js/lilypond.js:611 +msgid "capybara" msgstr "" -#: js/turtledefs.js:454 -#: js/turtledefs.js:491 -msgid "You can also type Alt-S to stop." +#: js/lilypond.js:612 +msgid "coypu" msgstr "" -#: js/turtledefs.js:462 -#: js/help.js:333 -msgid "Welcome to Music Blocks" +#: js/lilypond.js:613 +msgid "black rat" msgstr "" -#: js/turtledefs.js:472 -#: js/help.js:334 -msgid "Meet Mr. Mouse!" +#: js/lilypond.js:614 +msgid "grey squirrel" msgstr "" -#: js/turtledefs.js:473 -msgid "Mr Mouse is our Music Blocks conductor." +#: js/lilypond.js:615 +msgid "flying squirrel" msgstr "" -#: js/turtledefs.js:475 -msgid "Mr Mouse encourages you to explore Music Blocks." +#: js/lilypond.js:616 +msgid "bat" msgstr "" -#: js/turtledefs.js:477 -msgid "Let us start our tour!" +#: js/lilypond.js:749 +#: js/lilypond.js:913 +#: js/lilypond.js:951 +#: js/blocks/ActionBlocks.js:1256 +#: js/blocks/ExtrasBlocks.js:556 +msgid "start drum" msgstr "" -#: js/turtledefs.js:489 -msgid "Stop the music (and the mice)." +#: js/logo.js:61 +msgid "Not a valid pitch name" msgstr "" -#: js/turtledefs.js:499 -msgid "Record your project as video." +#: js/logo.js:507 +#: js/blocks/ProgramBlocks.js:258 +#: js/blocks/ProgramBlocks.js:427 +msgid "You must select a file." msgstr "" -#: js/turtledefs.js:505 -msgid "Toggle Fullscreen mode." +#: js/logo.js:1696 +msgid "Playback is ready." msgstr "" -#: js/turtledefs.js:511 -msgid "Initialize a new project." +#: js/macros.js:711 +#: js/utils/musicutils.js:1162 +#: js/utils/synthutils.js:202 +#.TRANS: animal sound effect +msgid "duck" msgstr "" -#: js/turtledefs.js:517 -msgid "You can also load projects from the file system." +#: js/notation.js:353 +msgid "Lilypond cannot process pickup of " msgstr "" -#: js/turtledefs.js:522 -#: js/StringHelper.js:46 -msgid "Delete" +#: js/palette.js:571 +msgid "grid" +msgstr "Gridi" + +#: js/palette.js:580 +msgid "effect" msgstr "" -#: js/turtledefs.js:523 -msgid "To delete a block, just right-click on it, then you will be able to see the delete option" +#: js/palette.js:586 +msgid "sargam" msgstr "" -#: js/turtledefs.js:528 -#: js/activity.js:2270 -#: js/LocalCard.js:31 -msgid "Copy" -msgstr "Nakili" +#: js/palette.js:601 +#: js/blocks/PitchBlocks.js:1209 +msgid "custom pitch" +msgstr "" -#: js/turtledefs.js:529 -msgid "To copy a block, just right-click on it, then you will be able to see the copy option" +#: js/palette.js:609 +msgid "accidental" msgstr "" -#: js/turtledefs.js:535 -msgid "To extract a block, just right-click on it, then you will be able to see the extract option" +#: js/palette.js:633 +#: js/blocks/PitchBlocks.js:405 +msgid "pitch converter" msgstr "" -#: js/turtledefs.js:542 -#: js/turtledefs.js:552 -#: js/turtledefs.js:573 -msgid "Save your project to a file." +#: js/piemenus.js:200 +#: js/utils/musicutils.js:1187 +#: js/utils/musicutils.js:1207 +#: js/widgets/musickeyboard.js:2341 +#: js/widgets/phrasemaker.js:1908 +#: js/widgets/sampler.js:810 +#.TRANS: double sharp is a music term related to pitch +msgid "double sharp" msgstr "" -#: js/turtledefs.js:549 -#: js/turtledefs.js:570 -msgid "save" +#: js/piemenus.js:201 +#: js/utils/musicutils.js:1185 +#: js/utils/musicutils.js:1208 +#: js/blocks/PitchBlocks.js:1539 +#: js/turtleactions/PitchActions.js:323 +#: js/widgets/musickeyboard.js:2342 +#: js/widgets/phrasemaker.js:1909 +#: js/widgets/sampler.js:811 +#.TRANS: sharp is a music term related to pitch +#.TRANS: sharp is a half-step up in pitch +msgid "sharp" msgstr "" -#: js/turtledefs.js:556 -#: js/turtledefs.js:577 -msgid "Save graphics from your project to as SVG." +#: js/piemenus.js:202 +#: js/utils/musicutils.js:1183 +#: js/utils/musicutils.js:1209 +#: js/widgets/musickeyboard.js:2343 +#: js/widgets/phrasemaker.js:1910 +#: js/widgets/sampler.js:812 +#.TRANS: natural is a music term related to pitch +msgid "natural" msgstr "" -#: js/turtledefs.js:560 -#: js/turtledefs.js:581 -msgid "Save graphics from your project as PNG." +#: js/piemenus.js:203 +#: js/utils/musicutils.js:1181 +#: js/utils/musicutils.js:1210 +#: js/blocks/PitchBlocks.js:1498 +#: js/turtleactions/PitchActions.js:326 +#: js/widgets/musickeyboard.js:2344 +#: js/widgets/phrasemaker.js:1911 +#: js/widgets/sampler.js:813 +#.TRANS: flat is a music term related to pitch +#.TRANS: flat is a half-step down in pitch +msgid "flat" msgstr "" -#: js/turtledefs.js:564 -#: js/turtledefs.js:597 -msgid "Save block artwork as an SVG file." +#: js/piemenus.js:204 +#: js/utils/musicutils.js:1179 +#: js/utils/musicutils.js:1211 +#: js/widgets/musickeyboard.js:2345 +#: js/widgets/phrasemaker.js:1912 +#: js/widgets/sampler.js:814 +#.TRANS: double flat is a music term related to pitch +msgid "double flat" msgstr "" -#: js/turtledefs.js:585 -msgid "Save audio from your project as WAV." +#: js/piemenus.js:2864 +#: js/utils/musicutils.js:1006 +#: js/blocks/PitchBlocks.js:1385 +#.TRANS: unison is a music term related to intervals +#.TRANS: unison means the note is the same as the current note +msgid "unison" msgstr "" -#: js/turtledefs.js:589 -msgid "Save your project to as an ABC file." +#: js/piemenus.js:3018 +#: js/piemenus.js:3091 +#: js/utils/musicutils.js:1014 +#: js/utils/musicutils.js:1189 +#: js/utils/musicutils.js:1326 +#.TRANS: major is a music term related to intervals and mode +msgid "major" msgstr "" -#: js/turtledefs.js:593 -msgid "Save your project to as a Lilypond file." +#: js/piemenus.js:3018 +#: js/piemenus.js:3091 +#: js/utils/musicutils.js:1032 +#.TRANS: modal scale for music +msgid "ionian" msgstr "" -#: js/turtledefs.js:604 -msgid "Load samples from server" +#: js/piemenus.js:3020 +#: js/piemenus.js:3095 +#: js/utils/musicutils.js:1012 +#: js/utils/musicutils.js:1190 +#: js/utils/musicutils.js:1323 +#.TRANS: minor is a music term related to intervals and mode +msgid "minor" msgstr "" -#: js/turtledefs.js:605 -msgid "This button opens a viewer for loading example projects." +#: js/piemenus.js:3020 +#: js/piemenus.js:3095 +#: js/utils/musicutils.js:1042 +#.TRANS: modal scale for music +msgid "aeolian" msgstr "" -#: js/turtledefs.js:611 -msgid "Palette buttons" +#: js/piemenus.js:3410 +msgid "Duplicate" msgstr "" -#: js/turtledefs.js:612 -msgid "This toolbar contains the palette buttons including Rhythm Pitch Tone Action and more." +#: js/piemenus.js:3412 +msgid "Move to trash" msgstr "" -#: js/turtledefs.js:614 -msgid "Click to show the palettes of blocks and drag blocks from the palettes onto the canvas to use them." +#: js/piemenus.js:3413 +#: js/widgets/timbre.js:968 +#: planet/js/StringHelper.js:69 +msgid "Close" msgstr "" -#: js/turtledefs.js:620 -msgid "Cartesian/Polar" +#: js/piemenus.js:3419 +msgid "Save stack" msgstr "" -#: js/turtledefs.js:621 -msgid "Show or hide a coordinate grid." +#: js/piemenus.js:3449 +msgid "In order to copy a sample, you must reload the widget, import the sample again, and export it." msgstr "" -#: js/turtledefs.js:627 -msgid "Clear the screen and return the mice to their initial positions." +#: js/piemenus.js:3812 +msgid "You have chosen key " msgstr "" -#: js/turtledefs.js:633 -msgid "Collapse the graphics window." +#: js/piemenus.js:3816 +msgid " for your pitch preview." msgstr "" -#: js/turtledefs.js:638 -#: js/activity.js:4256 -#: js/activity.js:4256 -msgid "Home" +#: js/turtle-singer.js:1363 +#.TRANS: partials are weighted components in a harmonic series +msgid "You must have at least one Partial block inside of a Weighted-partial block" msgstr "" -#: js/turtledefs.js:639 -msgid "Return all blocks to the center of the screen." +#: js/turtle-singer.js:2077 +msgid "synth cannot play chords." msgstr "" -#: js/turtledefs.js:644 -msgid "Show/hide blocks" +#: js/utils/musicutils.js:505 +#: js/utils/musicutils.js:645 +#: js/widgets/pitchdrummatrix.js:228 +#: js/widgets/musickeyboard.js:2885 +msgid "rest" msgstr "" -#: js/turtledefs.js:645 -msgid "Hide or show the blocks and the palettes." +#: js/utils/musicutils.js:689 +msgid "Perfect unison" msgstr "" -#: js/turtledefs.js:650 -msgid "Expand/collapse collapsable blocks" +#: js/utils/musicutils.js:689 +msgid "Diminished second" msgstr "" -#: js/turtledefs.js:651 -msgid "Expand or collapse start and action stacks." +#: js/utils/musicutils.js:690 +msgid "Minor second" msgstr "" -#: js/turtledefs.js:658 -#: js/activity.js:4265 -msgid "Decrease block size" +#: js/utils/musicutils.js:690 +msgid "Augmented unison" msgstr "" -#: js/turtledefs.js:659 -msgid "Decrease the size of the blocks." +#: js/utils/musicutils.js:691 +msgid "Major second" msgstr "" -#: js/turtledefs.js:664 -#: js/activity.js:4267 -msgid "Increase block size" +#: js/utils/musicutils.js:691 +msgid "Diminished third" msgstr "" -#: js/turtledefs.js:665 -msgid "Increase the size of the blocks." +#: js/utils/musicutils.js:692 +msgid "Minor third" msgstr "" -#: js/turtledefs.js:670 -msgid "Expand/collapse option toolbar" +#: js/utils/musicutils.js:692 +msgid "Augmented second" msgstr "" -#: js/turtledefs.js:671 -msgid "Click this button to expand or collapse the auxillary toolbar." +#: js/utils/musicutils.js:693 +msgid "Major third" msgstr "" -#: js/turtledefs.js:676 -msgid "Run slow" +#: js/utils/musicutils.js:693 +msgid "Diminished fourth" msgstr "" -#: js/turtledefs.js:677 -msgid "Click to run the project in slow mode." +#: js/utils/musicutils.js:694 +msgid "Perfect fourth" msgstr "" -#: js/turtledefs.js:683 -msgid "Click to run the project step by step." +#: js/utils/musicutils.js:694 +msgid "Augmented third" msgstr "" -#: js/turtledefs.js:690 -msgid "Display statistics about your Music project." +#: js/utils/musicutils.js:695 +msgid "Diminished fifth" msgstr "" -#: js/turtledefs.js:697 -msgid "Delete a selected plugin." +#: js/utils/musicutils.js:695 +msgid "Augmented fourth" msgstr "" -#: js/turtledefs.js:704 -msgid "Enable scrolling" +#: js/utils/musicutils.js:696 +msgid "Perfect fifth" msgstr "" -#: js/turtledefs.js:705 -msgid "You can scroll the blocks on the canvas." +#: js/utils/musicutils.js:696 +msgid "Diminished sixth" msgstr "" -#: js/turtledefs.js:714 -msgid "Wrap Turtle" +#: js/utils/musicutils.js:697 +msgid "Minor sixth" msgstr "" -#: js/turtledefs.js:715 -msgid "Turn Turtle wrapping On or Off." +#: js/utils/musicutils.js:697 +msgid "Augmented fifth" msgstr "" -#: js/turtledefs.js:725 -msgid "Restore blocks from the trash." +#: js/utils/musicutils.js:698 +msgid "Major sixth" msgstr "" -#: js/turtledefs.js:732 -msgid "Switch mode" +#: js/utils/musicutils.js:698 +msgid "Diminished seventh" msgstr "" -#: js/turtledefs.js:733 -msgid "Switch between beginner and advance modes." +#: js/utils/musicutils.js:699 +msgid "Minor seventh" msgstr "" -#: js/turtledefs.js:739 -msgid "Select your language preference." +#: js/utils/musicutils.js:699 +msgid "Augmented sixth" msgstr "" -#: js/turtledefs.js:745 -msgid "Keyboard shortcuts" +#: js/utils/musicutils.js:700 +msgid "Major seventh" msgstr "" -#: js/turtledefs.js:746 -msgid "You can type d to create a do block and r to create a re block etc." +#: js/utils/musicutils.js:700 +msgid "Diminished octave" msgstr "" -#: js/turtledefs.js:753 -msgid "Show these messages." +#: js/utils/musicutils.js:701 +msgid "Perfect octave" msgstr "" -#: js/turtledefs.js:759 -#: js/turtledefs.js:790 -#: js/help.js:335 -msgid "Guide" +#: js/utils/musicutils.js:701 +msgid "Augmented seventh" msgstr "" -#: js/turtledefs.js:760 -msgid "A detailed guide to Turtle Blocks is available." +#: js/utils/musicutils.js:702 +msgid "Minor ninth" msgstr "" -#: js/turtledefs.js:764 -msgid "Turtle Blocks Guide" +#: js/utils/musicutils.js:702 +msgid "Augmented octave" msgstr "" -#: js/turtledefs.js:767 -#: js/turtledefs.js:798 -#: js/help.js:336 -msgid "About" +#: js/utils/musicutils.js:703 +msgid "Major ninth" msgstr "" -#: js/turtledefs.js:768 -msgid "Turtle Blocks is an open source collection of tools for exploring musical concepts." +#: js/utils/musicutils.js:703 +msgid "Diminished tenth" msgstr "" -#: js/turtledefs.js:770 -msgid "A full list of contributors can be found in the Turtle Blocks GitHub repository." +#: js/utils/musicutils.js:704 +msgid "Minor tenth" msgstr "" -#: js/turtledefs.js:772 -msgid "Turtle Blocks is licensed under the AGPL." +#: js/utils/musicutils.js:704 +msgid "Augmented ninth" msgstr "" -#: js/turtledefs.js:780 -msgid "Turtle Blocks GitHub repository" +#: js/utils/musicutils.js:705 +msgid "Major tenth" msgstr "" -#: js/turtledefs.js:783 -#: js/turtledefs.js:814 -#: js/help.js:337 -#: js/help.js:359 -msgid "Congratulations." +#: js/utils/musicutils.js:705 +msgid "Diminished eleventh" msgstr "" -#: js/turtledefs.js:784 -msgid "You have finished the tour. Please enjoy Turtle Blocks!" +#: js/utils/musicutils.js:706 +msgid "Perfect eleventh" msgstr "" -#: js/turtledefs.js:791 -msgid "A detailed guide to Music Blocks is available." +#: js/utils/musicutils.js:706 +msgid "Augmented tenth" msgstr "" -#: js/turtledefs.js:795 -#: js/SaveInterface.js:76 -msgid "Music Blocks Guide" +#: js/utils/musicutils.js:707 +msgid "Diminished twelfth" msgstr "" -#: js/turtledefs.js:799 -msgid "Music Blocks is an open source collection of tools for exploring musical concepts." +#: js/utils/musicutils.js:707 +msgid "Augmented eleventh" msgstr "" -#: js/turtledefs.js:801 -msgid "A full list of contributors can be found in the Music Blocks GitHub repository." +#: js/utils/musicutils.js:708 +msgid "Perfect twelfth" msgstr "" -#: js/turtledefs.js:803 -msgid "Music Blocks is licensed under the AGPL." +#: js/utils/musicutils.js:708 +msgid "Diminished thirteenth" msgstr "" -#: js/turtledefs.js:811 -msgid "Music Blocks GitHub repository" +#: js/utils/musicutils.js:709 +msgid "Minor thirteenth" msgstr "" -#: js/turtledefs.js:815 -msgid "You have finished the tour. Please enjoy Music Blocks!" +#: js/utils/musicutils.js:709 +msgid "Augmented fifth, plus an octave" msgstr "" -#: js/activity.js:369 -msgid "Search for blocks" +#: js/utils/musicutils.js:710 +msgid "Major thirteenth" msgstr "" -#: js/activity.js:1145 -msgid "Refresh your browser to change to advanced mode." +#: js/utils/musicutils.js:710 +msgid "Diminished seventh, plus an octave" msgstr "" -#: js/activity.js:1150 -msgid "Refresh your browser to change to beginner mode." +#: js/utils/musicutils.js:838 +#.TRANS: ordinal number. Please keep exactly one space between each number. +msgid "1st 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th" msgstr "" -#: js/activity.js:1184 -msgid "Catching mice" +#: js/utils/musicutils.js:1008 +#: js/utils/musicutils.js:1191 +#: js/utils/musicutils.js:1325 +#.TRANS: augmented is a music term related to intervals +msgid "augmented" msgstr "" -#: js/activity.js:1185 -msgid "Cleaning the instruments" +#: js/utils/musicutils.js:1010 +#: js/utils/musicutils.js:1192 +#: js/utils/musicutils.js:1324 +#.TRANS: diminished is a music term related to intervals and mode +msgid "diminished" msgstr "" -#: js/activity.js:1186 -msgid "Testing key pieces" +#: js/utils/musicutils.js:1016 +#: js/utils/musicutils.js:1322 +#: js/blocks/IntervalsBlocks.js:649 +#: js/turtleactions/IntervalsActions.js:120 +#: js/turtleactions/IntervalsActions.js:124 +#.TRANS: perfect is a music term related to intervals +msgid "perfect" msgstr "" -#: js/activity.js:1187 -msgid "Sight-reading" +#: js/utils/musicutils.js:1018 +#.TRANS: twelve semi-tone scale for music +msgid "chromatic" msgstr "" -#: js/activity.js:1188 -msgid "Combining math and music" +#: js/utils/musicutils.js:1019 +msgid "algerian" msgstr "" -#: js/activity.js:1189 -msgid "Generating more blocks" +#: js/utils/musicutils.js:1020 +msgid "spanish" msgstr "" -#: js/activity.js:1190 -msgid "Do Re Mi Fa Sol La Ti Do" +#: js/utils/musicutils.js:1022 +#.TRANS: modal scale in music +msgid "octatonic" msgstr "" -#: js/activity.js:1191 -msgid "Tuning string instruments" +#: js/utils/musicutils.js:1024 +#.TRANS: harmonic major scale in music +msgid "harmonic major" msgstr "" -#: js/activity.js:1192 -msgid "Pressing random keys" +#: js/utils/musicutils.js:1026 +#.TRANS: natural minor scales in music +msgid "natural minor" msgstr "" -#: js/activity.js:1351 -msgid "plugins will be removed upon restart." +#: js/utils/musicutils.js:1028 +#.TRANS: harmonic minor scale in music +msgid "harmonic minor" msgstr "" -#: js/activity.js:1360 -msgid "show Cartesian" +#: js/utils/musicutils.js:1030 +#.TRANS: melodic minor scale in music +msgid "melodic minor" msgstr "" -#: js/activity.js:1842 -msgid "output tools" +#: js/utils/musicutils.js:1034 +#.TRANS: modal scale for music +msgid "dorian" msgstr "" -#: js/activity.js:1845 -msgid "custom note" +#: js/utils/musicutils.js:1036 +#.TRANS: modal scale for music +msgid "phrygian" msgstr "" -#: js/activity.js:1848 -msgid "accidental name" +#: js/utils/musicutils.js:1038 +#.TRANS: modal scale for music +msgid "lydian" msgstr "" -#: js/activity.js:1851 -#: js/PitchBlocks.js:855 -msgid "east indian solfege" +#: js/utils/musicutils.js:1040 +#.TRANS: modal scale for music +msgid "mixolydian" msgstr "" -#: js/activity.js:1854 -#: js/PitchBlocks.js:869 -msgid "note name" +#: js/utils/musicutils.js:1044 +#.TRANS: modal scale for music +msgid "locrian" msgstr "" -#: js/activity.js:1857 -#: js/IntervalsBlocks.js:94 -msgid "temperament name" +#: js/utils/musicutils.js:1046 +#.TRANS: minor jazz scale for music +msgid "jazz minor" msgstr "" -#: js/activity.js:1863 -msgid "chord name" +#: js/utils/musicutils.js:1048 +#.TRANS: bebop scale for music +msgid "bebop" msgstr "" -#: js/activity.js:1869 -msgid "filter type" +#: js/utils/musicutils.js:1049 +msgid "arabic" msgstr "" -#: js/activity.js:1872 -msgid "oscillator type" +#: js/utils/musicutils.js:1050 +msgid "byzantine" msgstr "" -#: js/activity.js:1878 -#: js/DrumBlocks.js:32 -msgid "noise name" +#: js/utils/musicutils.js:1052 +#.TRANS: musical scale for music by Verdi +msgid "enigmatic" msgstr "" -#: js/activity.js:1881 -#: js/DrumBlocks.js:75 -msgid "drum name" +#: js/utils/musicutils.js:1053 +msgid "ethiopian" msgstr "" -#: js/activity.js:1884 -#: js/DrumBlocks.js:119 -msgid "effects name" +#: js/utils/musicutils.js:1055 +#.TRANS: Ethiopic scale for music +msgid "geez" msgstr "" -#: js/activity.js:1887 -msgid "wrap mode" +#: js/utils/musicutils.js:1056 +msgid "hindu" msgstr "" -#: js/activity.js:1890 -msgid "load file" +#: js/utils/musicutils.js:1057 +msgid "hungarian" msgstr "" -#: js/activity.js:2056 -msgid "This block is deprecated." +#: js/utils/musicutils.js:1059 +#.TRANS: minor Romanian scale for music +msgid "romanian minor" msgstr "" -#: js/activity.js:2058 -msgid "Block cannot be found." +#: js/utils/musicutils.js:1060 +msgid "spanish gypsy" msgstr "" -#: js/activity.js:2266 -msgid "Saving block artwork" +#: js/utils/musicutils.js:1062 +#.TRANS: musical scale for Mid-Eastern music +msgid "maqam" msgstr "" -#: js/activity.js:2277 -msgid "Erase" +#: js/utils/musicutils.js:1064 +#.TRANS: minor blues scale for music +msgid "minor blues" msgstr "" -#: js/activity.js:2301 -#: js/activity.js:2323 -msgid "Paste" -msgstr "Kuweka" - -#: js/activity.js:2305 -msgid "Save block help" +#: js/utils/musicutils.js:1066 +#.TRANS: major blues scale for music +msgid "major blues" msgstr "" -#: js/activity.js:2390 -msgid "Jumping to the bottom of the page." +#: js/utils/musicutils.js:1067 +msgid "whole tone" msgstr "" -#: js/activity.js:2396 -msgid "Scrolling up." +#: js/utils/musicutils.js:1069 +#.TRANS: pentatonic is a general term that means "five note scale". This scale is typically known as "minor pentatonic" +msgid "minor pentatonic" msgstr "" -#: js/activity.js:2401 -msgid "Scrolling down." +#: js/utils/musicutils.js:1071 +#.TRANS: pentatonic is a general term that means "five note scale". This scale is typically known as "major pentatonic" +msgid "major pentatonic" msgstr "" -#: js/activity.js:2406 -msgid "Extracting block" +#: js/utils/musicutils.js:1072 +msgid "chinese" msgstr "" -#: js/activity.js:2414 -msgid "Moving block up." +#: js/utils/musicutils.js:1073 +msgid "egyptian" msgstr "" -#: js/activity.js:2435 -msgid "Moving block down." +#: js/utils/musicutils.js:1075 +#.TRANS: https://en.wikipedia.org/wiki/Hirajoshi_scale NOTE: There are three different versions of this scale +msgid "hirajoshi" msgstr "" -#: js/activity.js:2456 -msgid "Moving block left." +#: js/utils/musicutils.js:1076 +msgid "Japan" msgstr "" -#: js/activity.js:2473 -msgid "Moving block right." +#: js/utils/musicutils.js:1078 +#.TRANS: https://en.wikipedia.org/wiki/In_scale and https://en.wikipedia.org/wiki/Sakura_Sakura +msgid "in" msgstr "" -#: js/activity.js:2488 -msgid "Jump to home position." +#: js/utils/musicutils.js:1080 +#.TRANS: https://en.wikipedia.org/wiki/Miny%C5%8D_scale +msgid "minyo" msgstr "" -#: js/activity.js:2515 -msgid "Hide blocks" +#: js/utils/musicutils.js:1082 +#.TRANS: Italian mathematician +msgid "fibonacci" msgstr "" -#: js/activity.js:3389 -msgid "Click the run button to run the project." +#: js/utils/musicutils.js:1083 +#: js/utils/musicutils.js:1134 +#: js/utils/musicutils.js:1177 +#: js/utils/musicutils.js:1199 +#: js/utils/synthutils.js:134 +#: js/blocks/IntervalsBlocks.js:1124 +#: js/blocks/ToneBlocks.js:946 +#: js/blocks/VolumeBlocks.js:411 +#: js/blocks/WidgetBlocks.js:399 +#: js/blocks/WidgetBlocks.js:404 +#: js/turtleactions/VolumeActions.js:218 +#: js/widgets/modewidget.js:919 +#.TRANS: customize voice +msgid "custom" msgstr "" -#: js/activity.js:3456 -#: js/SaveInterface.js:131 -#: js/SaveInterface.js:204 -#: js/SaveInterface.js:262 -#: js/SaveInterface.js:389 -#: js/SaveInterface.js:417 -#: js/ProjectStorage.js:27 -#: js/GlobalPlanet.js:467 -#: js/GlobalPlanet.js:469 -#: js/GlobalPlanet.js:495 -#.TRANS: default project title when saving as Lilypond -msgid "My Project" +#: js/utils/musicutils.js:1085 +#: js/utils/musicutils.js:1531 +#: js/blocks/WidgetBlocks.js:176 +#.TRANS: highpass filter +msgid "highpass" msgstr "" -#: js/activity.js:4261 -msgid "Show/hide block" +#: js/utils/musicutils.js:1087 +#: js/utils/musicutils.js:1532 +#.TRANS: lowpass filter +msgid "lowpass" msgstr "" -#: js/activity.js:4263 -msgid "Expand/collapse blocks" +#: js/utils/musicutils.js:1089 +#: js/utils/musicutils.js:1533 +#.TRANS: bandpass filter +msgid "bandpass" msgstr "" -#: js/activity.js:4381 -msgid "Could not parse JSON input." +#: js/utils/musicutils.js:1091 +#: js/utils/musicutils.js:1534 +#.TRANS: high-shelf filter +msgid "highshelf" msgstr "" -#: js/activity.js:4684 -#: js/activity.js:4771 -#: js/activity.js:4821 -msgid "Cannot load project from the file. Please check the file type." +#: js/utils/musicutils.js:1093 +#: js/utils/musicutils.js:1535 +#.TRANS: low-shelf filter +msgid "lowshelf" msgstr "" -#: js/activity.js:5051 -msgid "Invalid parameters" +#: js/utils/musicutils.js:1095 +#: js/utils/musicutils.js:1536 +#.TRANS: notch-shelf filter +msgid "notch" msgstr "" -#: js/turtle-singer.js:1334 -#.TRANS: partials are weighted components in a harmonic series -msgid "You must have at least one Partial block inside of a Weighted-partial block" +#: js/utils/musicutils.js:1097 +#: js/utils/musicutils.js:1537 +#.TRANS: all-pass filter +msgid "allpass" msgstr "" -#: js/turtle-singer.js:2048 -msgid "synth cannot play chords." +#: js/utils/musicutils.js:1099 +#: js/utils/musicutils.js:1538 +#.TRANS: peaking filter +msgid "peaking" msgstr "" -#: js/lilypond.js:614 -msgid "brown rat" +#: js/utils/musicutils.js:1100 +#: js/utils/musicutils.js:1546 +#: js/utils/synthutils.js:126 +#: js/blocks/PitchBlocks.js:85 +#.TRANS: sine wave +msgid "sine" msgstr "" -#: js/lilypond.js:615 -msgid "mole" +#: js/utils/musicutils.js:1101 +#: js/utils/musicutils.js:1547 +#: js/utils/synthutils.js:128 +#: js/blocks/PitchBlocks.js:39 +#.TRANS: square wave +msgid "square" msgstr "" -#: js/lilypond.js:616 -msgid "chipmunk" +#: js/utils/musicutils.js:1102 +#: js/utils/musicutils.js:1548 +#: js/utils/synthutils.js:132 +#: js/blocks/PitchBlocks.js:62 +#: js/blocks/ToneBlocks.js:39 +#.TRANS: triangle wave +msgid "triangle" msgstr "" -#: js/lilypond.js:617 -msgid "red squirrel" +#: js/utils/musicutils.js:1103 +#: js/utils/musicutils.js:1549 +#: js/utils/synthutils.js:130 +#: js/blocks/PitchBlocks.js:108 +#.TRANS: sawtooth wave +msgid "sawtooth" msgstr "" -#: js/lilypond.js:618 -msgid "guinea pig" +#: js/utils/musicutils.js:1105 +#: js/utils/musicutils.js:1312 +#: js/blocks/PitchBlocks.js:931 +#: js/blocks/PitchBlocks.js:937 +#: js/turtleactions/PitchActions.js:469 +#.TRANS: even numbers +#.TRANS: invert based on even or odd number or musical scale +msgid "even" msgstr "" -#: js/lilypond.js:619 -msgid "capybara" +#: js/utils/musicutils.js:1107 +#: js/utils/musicutils.js:1313 +#: js/blocks/PitchBlocks.js:937 +#: js/turtleactions/PitchActions.js:471 +#.TRANS: odd numbers +msgid "odd" msgstr "" -#: js/lilypond.js:620 -msgid "coypu" +#: js/utils/musicutils.js:1108 +#: js/utils/musicutils.js:1314 +#: js/blocks/PitchBlocks.js:937 +#: js/turtleactions/PitchActions.js:473 +msgid "scalar" msgstr "" -#: js/lilypond.js:621 -msgid "black rat" +#: js/utils/musicutils.js:1109 +#: js/utils/synthutils.js:72 +#: js/blocks/VolumeBlocks.js:47 +#.TRANS: musical instrument +msgid "piano" msgstr "" -#: js/lilypond.js:622 -msgid "grey squirrel" +#: js/utils/musicutils.js:1110 +#: js/utils/synthutils.js:74 +#.TRANS: musical instrument +msgid "violin" msgstr "" -#: js/lilypond.js:623 -msgid "flying squirrel" +#: js/utils/musicutils.js:1111 +#: js/utils/synthutils.js:76 +#.TRANS: viola musical instrument +msgid "viola" msgstr "" -#: js/lilypond.js:624 -msgid "bat" +#: js/utils/musicutils.js:1112 +#: js/utils/synthutils.js:114 +#.TRANS: xylophone musical instrument +msgid "xylophone" msgstr "" -#: js/lilypond.js:757 -#: js/lilypond.js:921 -#: js/lilypond.js:959 -#: js/ActionBlocks.js:1256 -#: js/ExtrasBlocks.js:553 -msgid "start drum" +#: js/utils/musicutils.js:1113 +#: js/utils/synthutils.js:136 +#.TRANS: vibraphone musical instrument +msgid "vibraphone" msgstr "" -#: js/SaveInterface.js:59 -#: js/SaveInterface.js:61 -#: js/SaveInterface.js:93 -msgid "Music Blocks Project" +#: js/utils/musicutils.js:1114 +#: js/utils/synthutils.js:78 +#.TRANS: musical instrument +msgid "cello" msgstr "" -#: js/SaveInterface.js:63 -msgid "This project was created in Music Blocks" +#: js/utils/musicutils.js:1116 +#: js/utils/synthutils.js:82 +#.TRANS: viola musical instrument +msgid "double bass" msgstr "" -#: js/SaveInterface.js:67 -msgid "Music Blocks is a Free/Libre Software application." +#: js/utils/musicutils.js:1117 +#: js/utils/synthutils.js:84 +#: js/widgets/rhythmruler.js:2511 +#.TRANS: musical instrument +msgid "guitar" msgstr "" -#: js/SaveInterface.js:69 -msgid "The source code can be accessed at" +#: js/utils/musicutils.js:1118 +#: js/utils/synthutils.js:86 +#.TRANS: musical instrument +msgid "acoustic guitar" msgstr "" -#: js/SaveInterface.js:72 -msgid "For more information, please consult the" +#: js/utils/musicutils.js:1119 +#: js/utils/synthutils.js:88 +#.TRANS: musical instrument +msgid "flute" msgstr "" -#: js/SaveInterface.js:83 -msgid "Alternatively, open the file in Music Blocks using the Load project button." +#: js/utils/musicutils.js:1120 +#: js/utils/synthutils.js:90 +#.TRANS: musical instrument +msgid "clarinet" msgstr "" -#: js/SaveInterface.js:85 -msgid "Project Code" +#: js/utils/musicutils.js:1121 +#: js/utils/synthutils.js:92 +#.TRANS: musical instrument +msgid "saxophone" msgstr "" -#: js/SaveInterface.js:87 -msgid "This code stores data about the blocks in a project." +#: js/utils/musicutils.js:1122 +#: js/utils/synthutils.js:94 +#.TRANS: musical instrument +msgid "tuba" msgstr "" -#: js/SaveInterface.js:89 -msgid "Show" +#: js/utils/musicutils.js:1123 +#: js/utils/synthutils.js:96 +#.TRANS: musical instrument +msgid "trumpet" msgstr "" -#: js/SaveInterface.js:91 -msgid "Hide" +#: js/utils/musicutils.js:1124 +#: js/utils/synthutils.js:98 +#.TRANS: musical instrument +msgid "oboe" msgstr "" -#: js/SaveInterface.js:197 -#: js/SaveInterface.js:58 -msgid "No description provided" +#: js/utils/musicutils.js:1125 +#: js/utils/synthutils.js:100 +#.TRANS: musical instrument +msgid "trombone" msgstr "" -#: js/SaveInterface.js:332 -msgid "Your recording is in progress." +#: js/utils/musicutils.js:1126 +#: js/utils/synthutils.js:116 +#.TRANS: polytone synthesizer +msgid "electronic synth" msgstr "" -#: js/SaveInterface.js:401 -#.TRANS: File name prompt for save as Lilypond -msgid "File name" +#: js/utils/musicutils.js:1127 +#: js/utils/synthutils.js:118 +#.TRANS: simple monotone synthesizer +msgid "simple 1" msgstr "" -#: js/SaveInterface.js:403 -#: js/StringHelper.js:39 -#.TRANS: Project title prompt for save as Lilypond -msgid "Project title" +#: js/utils/musicutils.js:1128 +msgid "simple 2" msgstr "" -#: js/SaveInterface.js:405 -#.TRANS: Project title prompt for save as Lilypond -msgid "Project author" +#: js/utils/musicutils.js:1129 +msgid "simple 3" msgstr "" -#: js/SaveInterface.js:407 -#.TRANS: MIDI prompt for save as Lilypond -msgid "Include MIDI output?" +#: js/utils/musicutils.js:1130 +msgid "simple 4" msgstr "" -#: js/SaveInterface.js:409 -#.TRANS: Guitar prompt for save as Lilypond -msgid "Include guitar tablature output?" +#: js/utils/musicutils.js:1131 +#: js/utils/synthutils.js:58 +#: js/blocks/DrumBlocks.js:191 +#.TRANS: white noise synthesizer +msgid "white noise" msgstr "" -#: js/SaveInterface.js:411 -#.TRANS: Lilypond is a scripting language for generating sheet music -msgid "Save as Lilypond" +#: js/utils/musicutils.js:1132 +#: js/utils/synthutils.js:60 +#.TRANS: brown noise synthesizer +msgid "brown noise" msgstr "" -#: js/SaveInterface.js:426 -#: js/EnsembleBlocks.js:75 -#: js/EnsembleBlocks.js:154 -#: js/EnsembleBlocks.js:216 -#: js/EnsembleBlocks.js:302 -#: js/EnsembleBlocks.js:348 -#: js/EnsembleBlocks.js:389 -#: js/EnsembleBlocks.js:441 -#: js/EnsembleBlocks.js:490 -#: js/EnsembleBlocks.js:536 -#: js/EnsembleBlocks.js:583 -#: js/EnsembleBlocks.js:637 -#: js/EnsembleBlocks.js:753 -#: js/EnsembleBlocks.js:840 -#: js/EnsembleBlocks.js:899 -#: js/EnsembleBlocks.js:942 -#: js/EnsembleBlocks.js:1212 -#: js/EnsembleBlocks.js:1280 -#.TRANS: default project author when saving as Lilypond -msgid "Mr. Mouse" +#: js/utils/musicutils.js:1133 +#: js/utils/synthutils.js:62 +#.TRANS: pink noise synthesizer +msgid "pink noise" msgstr "" -#: js/SaveInterface.js:573 -msgid "The Lilypond code is copied to clipboard. You can paste it here: " +#: js/utils/musicutils.js:1135 +#: js/utils/synthutils.js:148 +#: js/widgets/rhythmruler.js:2057 +#: js/widgets/rhythmruler.js:2319 +#.TRANS: musical instrument +msgid "snare drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:50 -#: js/RhythmBlockPaletteBlocks.js:232 -#.TRANS: rhythm block -#.TRANS: translate "rhythm1" as rhythm -msgid "rhythm1" +#: js/utils/musicutils.js:1136 +#: js/utils/synthutils.js:150 +#.TRANS: musical instrument +msgid "kick drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:70 -#: js/RhythmBlockPaletteBlocks.js:251 -#: js/RhythmBlockPaletteBlocks.js:484 -#: js/RhythmBlockPaletteBlocks.js:553 -#: js/RhythmBlockPaletteBlocks.js:874 -msgid "number of notes" +#: js/utils/musicutils.js:1137 +#: js/utils/synthutils.js:152 +#.TRANS: musical instrument +msgid "tom tom" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:126 -msgid "polyphonic rhythm" +#: js/utils/musicutils.js:1138 +#: js/utils/synthutils.js:154 +#.TRANS: musical instrument +msgid "floor tom" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:218 -msgid "The Rhythm block is used to generate rhythm patterns." +#: js/utils/musicutils.js:1139 +#: js/utils/synthutils.js:156 +#.TRANS: musical instrument +msgid "bass drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:279 -msgid "1/64 note" +#: js/utils/musicutils.js:1140 +#: js/utils/synthutils.js:158 +#.TRANS: a drum made from an inverted cup +msgid "cup drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:303 -msgid "1/32 note" +#: js/utils/musicutils.js:1141 +#: js/utils/synthutils.js:160 +#.TRANS: musical instrument +msgid "darbuka drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:331 -msgid "1/16 note" +#: js/utils/musicutils.js:1142 +#: js/utils/synthutils.js:164 +#.TRANS: musical instrument +msgid "hi hat" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:359 -msgid "eighth note" +#: js/utils/musicutils.js:1143 +#: js/utils/synthutils.js:166 +#.TRANS: a small metal bell +msgid "ride bell" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:387 -msgid "quarter note" +#: js/utils/musicutils.js:1144 +#: js/utils/synthutils.js:168 +#.TRANS: musical instrument +msgid "cow bell" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:415 -msgid "half note" +#: js/utils/musicutils.js:1145 +msgid "japanese drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:443 -msgid "whole note" +#: js/utils/musicutils.js:1146 +#: js/utils/synthutils.js:174 +#.TRANS: musical instrument +msgid "japanese bell" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:481 -#: js/RhythmBlockPaletteBlocks.js:550 -#: js/RhythmBlockPaletteBlocks.js:601 -#.TRANS: A tuplet is a note value divided into irregular time values. -msgid "tuplet" +#: js/utils/musicutils.js:1147 +#: js/utils/synthutils.js:170 +#.TRANS: musical instrument +msgid "triangle bell" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:767 -msgid "septuplet" +#: js/utils/musicutils.js:1148 +#: js/utils/synthutils.js:172 +#.TRANS: musical instrument +msgid "finger cymbals" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:795 -msgid "quintuplet" +#: js/utils/musicutils.js:1149 +#: js/utils/synthutils.js:176 +#.TRANS: a musically tuned set of bells +msgid "chime" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:823 -msgid "triplet" +#: js/utils/musicutils.js:1150 +#: js/utils/synthutils.js:178 +#.TRANS: a musical instrument +msgid "gong" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:850 -msgid "simple tuplet" +#: js/utils/musicutils.js:1151 +#: js/utils/synthutils.js:180 +#.TRANS: sound effect +msgid "clang" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:860 -msgid "Tuplets are a collection of notes that get scaled to a specific duration." +#: js/utils/musicutils.js:1152 +#: js/utils/synthutils.js:182 +#.TRANS: sound effect +msgid "crash" msgstr "" -#: js/WidgetBlocks.js:71 -#.TRANS: sound envelope (ADSR) -msgid "envelope" +#: js/utils/musicutils.js:1153 +#: js/utils/synthutils.js:184 +#.TRANS: sound effect +msgid "bottle" msgstr "" -#: js/WidgetBlocks.js:79 -#.TRANS: Attack time is the time taken for initial run-up of level from nil to peak, beginning when the key is first pressed. -msgid "attack" +#: js/utils/musicutils.js:1154 +#: js/utils/synthutils.js:186 +#.TRANS: sound effect +msgid "clap" msgstr "" -#: js/WidgetBlocks.js:81 -#.TRANS: Decay time is the time taken for the subsequent run down from the attack level to the designated sustain level. -msgid "decay" +#: js/utils/musicutils.js:1155 +#: js/utils/synthutils.js:188 +#.TRANS: sound effect +msgid "slap" msgstr "" -#: js/WidgetBlocks.js:83 -#.TRANS: Sustain level is the level during the main sequence of the sound's duration, until the key is released. -msgid "sustain" +#: js/utils/musicutils.js:1156 +#: js/utils/synthutils.js:190 +#.TRANS: sound effect +msgid "splash" msgstr "" -#: js/WidgetBlocks.js:85 -#.TRANS: Release time is the time taken for the level to decay from the sustain level to zero after the key is released. -msgid "release" +#: js/utils/musicutils.js:1157 +#: js/utils/synthutils.js:192 +#.TRANS: sound effect +msgid "bubbles" msgstr "" -#: js/WidgetBlocks.js:96 -msgid "Attack value should be from 0 to 100." +#: js/utils/musicutils.js:1158 +#: js/utils/synthutils.js:194 +#.TRANS: sound effect +msgid "raindrop" msgstr "" -#: js/WidgetBlocks.js:99 -msgid "Decay value should be from 0 to 100." +#: js/utils/musicutils.js:1159 +#: js/utils/synthutils.js:196 +#.TRANS: animal sound effect +msgid "cat" msgstr "" -#: js/WidgetBlocks.js:102 -msgid "Sustain value should be from 0 to 100." +#: js/utils/musicutils.js:1160 +#: js/utils/synthutils.js:198 +#.TRANS: animal sound effect +msgid "cricket" msgstr "" -#: js/WidgetBlocks.js:105 -msgid "Release value should be from 0-100." +#: js/utils/musicutils.js:1161 +#: js/utils/synthutils.js:200 +#.TRANS: animal sound effect +msgid "dog" msgstr "" -#: js/WidgetBlocks.js:121 -msgid "You are adding multiple envelope blocks." +#: js/utils/musicutils.js:1163 +#: js/utils/synthutils.js:102 +#.TRANS: musical instrument +msgid "banjo" msgstr "" -#: js/WidgetBlocks.js:144 -#.TRANS: a filter removes some unwanted components from a signal -msgid "filter" +#: js/utils/musicutils.js:1164 +#: js/utils/synthutils.js:104 +#.TRANS: musical instrument +msgid "koto" msgstr "" -#: js/WidgetBlocks.js:149 -#: js/musicutils.js:706 -#: js/musicutils.js:1105 -#.TRANS: highpass filter -msgid "highpass" +#: js/utils/musicutils.js:1165 +#: js/utils/synthutils.js:106 +#.TRANS: musical instrument +msgid "dulcimer" msgstr "" -#: js/WidgetBlocks.js:152 -#: js/ToneBlocks.js:42 -#: js/timbre.js:1558 -#: js/timbre.js:1808 -#.TRANS: type of filter, e.g., lowpass, highpass, etc. -#.TRANS: there are different types (sine, triangle, square...) of oscillators. -msgid "type" +#: js/utils/musicutils.js:1166 +#: js/utils/synthutils.js:108 +#.TRANS: musical instrument +msgid "electric guitar" msgstr "" -#: js/WidgetBlocks.js:154 -#: js/timbre.js:1818 -#.TRANS: rolloff is the steepness of a change in frequency. -msgid "rolloff" +#: js/utils/musicutils.js:1167 +#: js/utils/synthutils.js:110 +#.TRANS: musical instrument +msgid "bassoon" msgstr "" -#: js/WidgetBlocks.js:155 -#: js/MediaBlocks.js:692 -#: js/temperament.js:382 -#: js/temperament.js:417 -#: js/temperament.js:477 -#: js/temperament.js:485 -#: js/temperament.js:1348 -#: js/timbre.js:1842 -msgid "frequency" +#: js/utils/musicutils.js:1168 +#: js/utils/synthutils.js:112 +#.TRANS: musical instrument +msgid "celeste" msgstr "" -#: js/WidgetBlocks.js:179 -#.TRANS: rolloff is the steepness of a change in frequency. -msgid "Rolloff value should be either -12, -24, -48, or -96 decibels/octave." +#: js/utils/musicutils.js:1170 +#: js/widgets/temperament.js:787 +#.TRANS: musical temperament +msgid "equal" msgstr "" -#: js/WidgetBlocks.js:211 -msgid "The Temperament tool is used to define custom tuning." +#: js/utils/musicutils.js:1172 +#.TRANS: musical temperament +msgid "Pythagorean" msgstr "" -#: js/WidgetBlocks.js:277 -#: js/sampler.js:329 -msgid "Upload a sample and adjust its pitch center." +#: js/utils/musicutils.js:1174 +#.TRANS: musical temperament +msgid "just intonation" msgstr "" -#: js/WidgetBlocks.js:284 -#.TRANS: the speed at music is should be played. -msgid "sampler" +#: js/utils/musicutils.js:1176 +#.TRANS: musical temperament +msgid "meantone" msgstr "" -#: js/WidgetBlocks.js:329 -#: js/WidgetBlocks.js:334 -#: js/IntervalsBlocks.js:928 -#: js/VolumeBlocks.js:411 -#: js/ToneBlocks.js:946 -#: js/VolumeActions.js:218 -#: js/musicutils.js:704 -#: js/musicutils.js:755 -#: js/musicutils.js:798 -#: js/musicutils.js:820 -#: js/musicutils.js:1136 -#: js/synthutils.js:118 -#: js/modewidget.js:919 -#.TRANS: customize voice -msgid "custom" +#: js/utils/musicutils.js:1193 +msgid "major 7th" msgstr "" -#: js/WidgetBlocks.js:432 -msgid "The Meter block opens a tool to select strong beats for the meter." +#: js/utils/musicutils.js:1194 +msgid "minor 7th" msgstr "" -#: js/WidgetBlocks.js:473 -msgid "The oscilloscope block opens a tool to visualize waveforms." +#: js/utils/musicutils.js:1195 +msgid "dominant 7th" msgstr "" -#: js/WidgetBlocks.js:478 -msgid "oscilloscope" +#: js/utils/musicutils.js:1196 +msgid "minor-major 7th" msgstr "" -#: js/WidgetBlocks.js:530 -msgid "The Custom mode block opens a tool to explore musical mode (the spacing of the notes in a scale)." +#: js/utils/musicutils.js:1197 +msgid "fully-diminished 7th" msgstr "" -#: js/WidgetBlocks.js:536 -#.TRANS: musical mode is the pattern of half-steps in an octave, e.g., Major or Minor modes -msgid "custom mode" +#: js/utils/musicutils.js:1198 +msgid "half-diminished 7th" msgstr "" -#: js/WidgetBlocks.js:570 -msgid "The Tempo block opens a metronome to visualize the beat." +#: js/utils/musicutils.js:1557 +#: js/utils/musicutils.js:1569 +msgid "Equal (12EDO)" msgstr "" -#: js/WidgetBlocks.js:617 -msgid "The Arpeggio Widget is used to compose chord sequences." +#: js/utils/musicutils.js:1558 +#: js/utils/musicutils.js:1570 +msgid "5-limit Just Intonation" msgstr "" -#: js/WidgetBlocks.js:623 -#: js/IntervalsBlocks.js:683 -msgid "arpeggio" +#: js/utils/musicutils.js:1559 +#: js/utils/musicutils.js:1571 +msgid "Pythagorean (3-limit JI)" msgstr "" -#: js/WidgetBlocks.js:677 -msgid "The Pitch drum matrix is used to map pitches to drum sounds." +#: js/utils/musicutils.js:1560 +#: js/utils/musicutils.js:1561 +#: js/utils/musicutils.js:1572 +#: js/utils/musicutils.js:1573 +msgid "Meantone" msgstr "" -#: js/WidgetBlocks.js:682 -#.TRANS: makes a mapping between pitches and drum sounds -msgid "pitch-drum mapper" +#: js/utils/musicutils.js:1574 +msgid "Custom" msgstr "" -#: js/WidgetBlocks.js:724 -msgid "You must have at least one pitch block and one drum block in the matrix." +#: js/utils/musicutils.js:5387 +#: js/utils/musicutils.js:5430 +msgid "current" msgstr "" -#: js/WidgetBlocks.js:746 -msgid "The Pitch slider tool to is used to generate pitches at selected frequencies." +#: js/utils/musicutils.js:5390 +#: js/utils/musicutils.js:5421 +msgid "next" msgstr "" -#: js/WidgetBlocks.js:751 -#.TRANS: widget to generate pitches using a slider -msgid "pitch slider" +#: js/utils/musicutils.js:5393 +#: js/utils/musicutils.js:5426 +msgid "previous" msgstr "" -#: js/WidgetBlocks.js:788 -msgid "chromatic keyboard" +#: js/utils/synthutils.js:120 +#.TRANS: simple monotone synthesizer +msgid "simple-2" msgstr "" -#: js/WidgetBlocks.js:815 -#: js/WidgetBlocks.js:874 -#.TRANS: widget to generate pitches using a slider -msgid "music keyboard" +#: js/utils/synthutils.js:122 +#.TRANS: simple monotone synthesizer +msgid "simple-3" msgstr "" -#: js/WidgetBlocks.js:859 -#: js/WidgetBlocks.js:866 -msgid "The Music keyboard block opens a piano keyboard that can be used to create notes." +#: js/utils/synthutils.js:124 +#.TRANS: simple monotone synthesizer +msgid "simple-4" msgstr "" -#: js/WidgetBlocks.js:910 -msgid "The Pitch staircase tool to is used to generate pitches from a given ratio." +#: js/utils/synthutils.js:162 +#.TRANS: musical instrument +msgid "taiko" msgstr "" -#: js/WidgetBlocks.js:917 -#.TRANS: generate a progressive sequence of pitches -msgid "pitch staircase" +#: js/blocks/ActionBlocks.js:58 +msgid "The Return block will return a value from an action." msgstr "" -#: js/WidgetBlocks.js:982 -msgid "The Rhythm Maker block opens a tool to create drum machines." +#: js/blocks/ActionBlocks.js:75 +msgid "return" msgstr "" -#: js/WidgetBlocks.js:1036 -msgid "G major scale" +#: js/blocks/ActionBlocks.js:128 +msgid "The Return to URL block will return a value to a webpage." msgstr "" -#: js/WidgetBlocks.js:1064 -msgid "C major scale" +#: js/blocks/ActionBlocks.js:145 +msgid "return to URL" msgstr "" -#: js/WidgetBlocks.js:1097 -msgid "The Phrase Maker block opens a tool to create musical phrases." +#: js/blocks/ActionBlocks.js:233 +#: js/blocks/ActionBlocks.js:290 +#: js/blocks/ActionBlocks.js:501 +#: js/blocks/ActionBlocks.js:688 +msgid "The Calculate block returns a value calculated by an action." msgstr "" -#: js/WidgetBlocks.js:1104 -#.TRANS: assigns pitch to a sequence of beats to generate a melody -msgid "phrase maker" +#: js/blocks/ActionBlocks.js:251 +#: js/blocks/ActionBlocks.js:517 +#: js/blocks/ActionBlocks.js:707 +msgid "calculate" msgstr "" -#: js/WidgetBlocks.js:1168 -msgid "You must have at least one pitch block and one rhythm block in the matrix." +#: js/blocks/ActionBlocks.js:376 +#: js/blocks/ActionBlocks.js:593 +#: js/blocks/ActionBlocks.js:942 +#: js/blocks/ActionBlocks.js:1389 +#.TRANS: do is the do something or take an action. +msgid "The Do block is used to initiate an action." msgstr "" -#: js/WidgetBlocks.js:1220 -msgid "The Status block opens a tool for inspecting the status of Music Blocks as it is running." +#: js/blocks/ActionBlocks.js:390 +#: js/blocks/ActionBlocks.js:610 +#: js/blocks/ActionBlocks.js:959 +#: js/blocks/ActionBlocks.js:1048 +#: js/blocks/MeterBlocks.js:769 +msgid "do1" msgstr "" -#: js/IntervalsBlocks.js:45 -msgid "set temperament" +#: js/blocks/ActionBlocks.js:390 +#: js/blocks/ActionBlocks.js:610 +#: js/blocks/ActionBlocks.js:959 +#: js/blocks/ActionBlocks.js:1048 +#: js/blocks/FlowBlocks.js:742 +#: js/blocks/FlowBlocks.js:822 +#: js/blocks/MeterBlocks.js:769 +msgid "do" msgstr "" -#: js/IntervalsBlocks.js:63 -#: js/MediaBlocks.js:746 -#: js/PitchBlocks.js:657 -#: js/PitchBlocks.js:933 -#: js/PitchBlocks.js:972 -#: js/PitchBlocks.js:1005 -#: js/PitchBlocks.js:1166 -#: js/PitchBlocks.js:1679 -#: js/PitchBlocks.js:1720 -#: js/PitchBlocks.js:1827 -#: js/ToneBlocks.js:1025 -#.TRANS: adjusts the shift up or down by one octave (twelve half-steps in the interval between two notes, one having twice or half the frequency in Hz of the other.) -msgid "octave" +#: js/blocks/ActionBlocks.js:791 +#: js/blocks/ActionBlocks.js:865 +msgid "The Arg block contains the value of an argument passed to an action." msgstr "" -#: js/IntervalsBlocks.js:99 -msgid "The Temperament name block is used to select a tuning method." +#: js/blocks/ActionBlocks.js:806 +#: js/blocks/ActionBlocks.js:878 +msgid "arg" msgstr "" -#: js/IntervalsBlocks.js:161 -msgid "doubly" +#: js/blocks/ActionBlocks.js:836 +#: js/blocks/ActionBlocks.js:900 +#: js/blocks/ActionBlocks.js:908 +msgid "Invalid argument" msgstr "" -#: js/IntervalsBlocks.js:166 -msgid "The Doubly block will double the size of an interval." +#: js/blocks/ActionBlocks.js:944 +msgid "In the example, it is used with the One of block to choose a random phase." msgstr "" -#: js/IntervalsBlocks.js:262 -msgid "interval number" +#: js/blocks/ActionBlocks.js:1019 +#: js/blocks/ActionBlocks.js:1026 +msgid "The Listen block is used to listen for an event such as a mouse click." msgstr "" -#: js/IntervalsBlocks.js:330 -#.TRANS: measure the distance between two pitches in semi-tones -msgid "semi-tone interval measure" +#: js/blocks/ActionBlocks.js:1028 +msgid "When the event happens, an action is taken." msgstr "" -#: js/IntervalsBlocks.js:397 -#: js/IntervalsBlocks.js:513 -msgid "You must use two pitch blocks when measuring an interval." +#: js/blocks/ActionBlocks.js:1045 +msgid "on" msgstr "" -#: js/IntervalsBlocks.js:439 -msgid "The Scalar interval block measures the distance between two notes in the current key and mode." +#: js/blocks/ActionBlocks.js:1048 +#: js/blocks/ActionBlocks.js:1049 +#: js/blocks/ActionBlocks.js:1153 +msgid "event" msgstr "" -#: js/IntervalsBlocks.js:445 -#.TRANS: measure the distance between two pitches in steps of musical scale -msgid "scalar interval measure" +#: js/blocks/ActionBlocks.js:1133 +msgid "The Broadcast block is used to trigger an event." msgstr "" -#: js/IntervalsBlocks.js:592 -#: js/musicutils.js:637 -#: js/musicutils.js:908 -#.TRANS: perfect is a music term related to intervals -msgid "perfect" +#: js/blocks/ActionBlocks.js:1151 +msgid "broadcast" msgstr "" -#: js/IntervalsBlocks.js:621 -msgid "In the figure, we add sol# to sol." +#: js/blocks/ActionBlocks.js:1208 +msgid "Each Start block is a separate voice." msgstr "" -#: js/IntervalsBlocks.js:627 -#: js/OrnamentBlocks.js:220 -#.TRANS: calculate a relative step between notes based on semi-tones -msgid "semi-tone interval" +#: js/blocks/ActionBlocks.js:1304 +msgid "It is often used for storing a phrase of music that is repeated." msgstr "" -#: js/IntervalsBlocks.js:676 -msgid "The output of the example is: do, mi, sol, sol, ti, mi" +#: js/blocks/ActionBlocks.js:1495 +msgid "define temperament" msgstr "" -#: js/IntervalsBlocks.js:735 -msgid "The Chord block calculates common chords." +#: js/blocks/BooleanBlocks.js:44 +msgid "The Not block is the logical not operator." msgstr "" -#: js/IntervalsBlocks.js:737 -msgid "In the figure, we generate a C-major chord." +#: js/blocks/BooleanBlocks.js:62 +msgid "not" msgstr "" -#: js/IntervalsBlocks.js:742 -msgid "chord" +#: js/blocks/BooleanBlocks.js:134 +msgid "The And block is the logical and operator." msgstr "" -#: js/IntervalsBlocks.js:794 -msgid "The Ratio Interval block calculates an interval based on a ratio." +#: js/blocks/BooleanBlocks.js:152 +msgid "and" msgstr "" -#: js/IntervalsBlocks.js:799 -msgid "ratio interval" +#: js/blocks/BooleanBlocks.js:218 +msgid "The Or block is the logical or operator." msgstr "" -#: js/IntervalsBlocks.js:868 -msgid "In the figure, we add la to sol." +#: js/blocks/BooleanBlocks.js:236 +msgid "or" msgstr "" -#: js/IntervalsBlocks.js:924 -#.TRANS: define a custom mode -msgid "define mode" +#: js/blocks/BooleanBlocks.js:302 +msgid "The XOR block is the logical XOR operator." msgstr "" -#: js/IntervalsBlocks.js:977 -msgid "movable Do" +#: js/blocks/BooleanBlocks.js:320 +msgid "xor" msgstr "" -#: js/IntervalsBlocks.js:1028 -#.TRANS: mode length is the number of notes in the mode, e.g., 7 for major and minor scales; 12 for chromatic scales -msgid "mode length" +#: js/blocks/BooleanBlocks.js:808 +msgid "The Equal block returns True if the two numbers are equal." msgstr "" -#: js/IntervalsBlocks.js:1037 -msgid "The Mode length block is the number of notes in the current scale." +#: js/blocks/BooleanBlocks.js:909 +msgid "The Not-equal-to block returns True if the two numbers are not equal to each other." msgstr "" -#: js/IntervalsBlocks.js:1039 -msgid "Most Western scales have 7 notes." +#: js/blocks/BooleanBlocks.js:1008 +msgid "The Boolean block is used to specify true or false." msgstr "" -#: js/IntervalsBlocks.js:1088 -#.TRANS: the mode in music is 'major', 'minor', etc. -msgid "current mode" +#: js/blocks/BoxesBlocks.js:53 +#: js/blocks/BoxesBlocks.js:59 +msgid "The Add-to block is used to add to the value stored in a box." msgstr "" -#: js/IntervalsBlocks.js:1141 -#.TRANS: the key is a group of pitches with which a music composition is created -msgid "current key" +#: js/blocks/BoxesBlocks.js:61 +msgid "It can also be used with other blocks such as Color and Pen size." msgstr "" -#: js/IntervalsBlocks.js:1193 -#: js/IntervalsBlocks.js:1238 -#.TRANS: set the key and mode, e.g. C Major -msgid "set key" +#: js/blocks/BoxesBlocks.js:73 +msgid "add" msgstr "" -#: js/IntervalsBlocks.js:1247 -#: js/IntervalsBlocks.js:1253 -msgid "The Set key block is used to set the key and mode," +#: js/blocks/BoxesBlocks.js:75 +#: js/widgets/temperament.js:857 +msgid "to" msgstr "" -#: js/IntervalsBlocks.js:1253 -msgid "eg C Major" +#: js/blocks/BoxesBlocks.js:75 +#: js/blocks/BoxesBlocks.js:595 +#: js/blocks/HeapBlocks.js:544 +msgid "value1" msgstr "" -#: js/IntervalsBlocks.js:1266 -#: js/DictBlocks.js:215 -#: js/DictBlocks.js:216 -#: js/DictBlocks.js:289 -#: js/DictBlocks.js:290 -#: js/DictBlocks.js:357 -#: js/DictBlocks.js:430 -#: js/DictBlocks.js:431 -#.TRANS: key, e.g., C in C Major -msgid "key" +#: js/blocks/BoxesBlocks.js:118 +msgid "Block does not support incrementing." msgstr "" -#: js/ActionBlocks.js:58 -msgid "The Return block will return a value from an action." +#: js/blocks/BoxesBlocks.js:152 +msgid "The Add-1-to block adds one to the value stored in a box." msgstr "" -#: js/ActionBlocks.js:75 -msgid "return" +#: js/blocks/BoxesBlocks.js:163 +msgid "add 1 to" msgstr "" -#: js/ActionBlocks.js:128 -msgid "The Return to URL block will return a value to a webpage." +#: js/blocks/BoxesBlocks.js:211 +msgid "The Subtract-1-from block subtracts one from the value stored in a box." msgstr "" -#: js/ActionBlocks.js:145 -msgid "return to URL" +#: js/blocks/BoxesBlocks.js:222 +msgid "subtract 1 from" msgstr "" -#: js/ActionBlocks.js:233 -#: js/ActionBlocks.js:290 -#: js/ActionBlocks.js:501 -#: js/ActionBlocks.js:688 -msgid "The Calculate block returns a value calculated by an action." +#: js/blocks/BoxesBlocks.js:270 +#: js/blocks/BoxesBlocks.js:387 +msgid "The Box block returns the value stored in a box." msgstr "" -#: js/ActionBlocks.js:251 -#: js/ActionBlocks.js:517 -#: js/ActionBlocks.js:707 -msgid "calculate" +#: js/blocks/BoxesBlocks.js:500 +#: js/blocks/BoxesBlocks.js:576 +msgid "The Store in block will store a value in a box." msgstr "" -#: js/ActionBlocks.js:376 -#: js/ActionBlocks.js:593 -#: js/ActionBlocks.js:942 -#: js/ActionBlocks.js:1389 -#.TRANS: do is the do something or take an action. -msgid "The Do block is used to initiate an action." +#: js/blocks/BoxesBlocks.js:595 +#: js/blocks/EnsembleBlocks.js:391 +#: js/blocks/EnsembleBlocks.js:402 +msgid "name1" msgstr "" -#: js/ActionBlocks.js:390 -#: js/ActionBlocks.js:610 -#: js/ActionBlocks.js:959 -#: js/ActionBlocks.js:1048 -#: js/MeterBlocks.js:769 -msgid "do1" +#: js/blocks/BoxesBlocks.js:652 +msgid "The Box2 block returns the value stored in Box2." msgstr "" -#: js/ActionBlocks.js:390 -#: js/ActionBlocks.js:610 -#: js/ActionBlocks.js:959 -#: js/ActionBlocks.js:1048 -#: js/FlowBlocks.js:742 -#: js/FlowBlocks.js:822 -#: js/MeterBlocks.js:769 -msgid "do" +#: js/blocks/BoxesBlocks.js:703 +msgid "The Store in Box2 block is used to store a value in Box2." msgstr "" -#: js/ActionBlocks.js:791 -#: js/ActionBlocks.js:865 -msgid "The Arg block contains the value of an argument passed to an action." +#: js/blocks/BoxesBlocks.js:715 +msgid "store in box2" msgstr "" -#: js/ActionBlocks.js:806 -#: js/ActionBlocks.js:878 -msgid "arg" +#: js/blocks/BoxesBlocks.js:761 +msgid "The Box1 block returns the value stored in Box1." msgstr "" -#: js/ActionBlocks.js:836 -#: js/ActionBlocks.js:900 -#: js/ActionBlocks.js:908 -msgid "Invalid argument" +#: js/blocks/BoxesBlocks.js:812 +msgid "The Store in Box1 block is used to store a value in Box1." msgstr "" -#: js/ActionBlocks.js:944 -msgid "In the example, it is used with the One of block to choose a random phase." +#: js/blocks/BoxesBlocks.js:826 +msgid "store in box1" msgstr "" -#: js/ActionBlocks.js:1019 -#: js/ActionBlocks.js:1026 -msgid "The Listen block is used to listen for an event such as a mouse click." +#: js/blocks/DictBlocks.js:77 +msgid "show dictionary" msgstr "" -#: js/ActionBlocks.js:1028 -msgid "When the event happens, an action is taken." +#: js/blocks/DictBlocks.js:80 +#: js/blocks/DictBlocks.js:145 +#: js/blocks/DictBlocks.js:216 +#: js/blocks/DictBlocks.js:290 +#: js/blocks/ProgramBlocks.js:396 +#: js/blocks/ProgramBlocks.js:501 +#: js/blocks/ProgramBlocks.js:664 +msgid "My Dictionary" msgstr "" -#: js/ActionBlocks.js:1045 -msgid "on" +#: js/blocks/DictBlocks.js:129 +msgid "The Dictionary block returns a dictionary." msgstr "" -#: js/ActionBlocks.js:1048 -#: js/ActionBlocks.js:1049 -#: js/ActionBlocks.js:1153 -msgid "event" +#: js/blocks/DictBlocks.js:197 +#: js/blocks/DictBlocks.js:339 +msgid "The Get-dict block returns a value in the dictionary for a specified key." msgstr "" -#: js/ActionBlocks.js:1133 -msgid "The Broadcast block is used to trigger an event." +#: js/blocks/DictBlocks.js:212 +#: js/blocks/DictBlocks.js:354 +#.TRANS: retrieve a value from the dictionary with a given key +msgid "get value" msgstr "" -#: js/ActionBlocks.js:1151 -msgid "broadcast" +#: js/blocks/DictBlocks.js:215 +#: js/blocks/DictBlocks.js:216 +#: js/blocks/DictBlocks.js:289 +#: js/blocks/DictBlocks.js:290 +#: js/blocks/DictBlocks.js:357 +#: js/blocks/DictBlocks.js:430 +#: js/blocks/DictBlocks.js:431 +msgid "key2" msgstr "" -#: js/ActionBlocks.js:1208 -msgid "Each Start block is a separate voice." +#: js/blocks/DictBlocks.js:215 +#: js/blocks/DictBlocks.js:216 +#: js/blocks/DictBlocks.js:289 +#: js/blocks/DictBlocks.js:290 +#: js/blocks/DictBlocks.js:357 +#: js/blocks/DictBlocks.js:430 +#: js/blocks/DictBlocks.js:431 +#: js/blocks/IntervalsBlocks.js:1462 +#.TRANS: key, e.g., C in C Major +msgid "key" msgstr "" -#: js/ActionBlocks.js:1304 -msgid "It is often used for storing a phrase of music that is repeated." +#: js/blocks/DictBlocks.js:271 +#: js/blocks/DictBlocks.js:411 +msgid "The Set-dict block sets a value in the dictionary for a specified key." msgstr "" -#: js/ActionBlocks.js:1495 -msgid "define temperament" +#: js/blocks/DictBlocks.js:286 +#: js/blocks/DictBlocks.js:427 +#.TRANS: set a value in the dictionary for a given key +msgid "set value" msgstr "" -#: js/EnsembleBlocks.js:66 +#: js/blocks/EnsembleBlocks.js:66 msgid "mouse index heap" msgstr "" -#: js/EnsembleBlocks.js:68 +#: js/blocks/EnsembleBlocks.js:68 msgid "The Mouse index heap block returns a value in the heap at a specified location for a specified mouse." msgstr "" -#: js/EnsembleBlocks.js:77 -#: js/EnsembleBlocks.js:1080 +#: js/blocks/EnsembleBlocks.js:77 +#: js/blocks/EnsembleBlocks.js:1080 msgid "mouse name" msgstr "" -#: js/EnsembleBlocks.js:77 -#: js/EnsembleBlocks.js:92 -#: js/HeapBlocks.js:544 +#: js/blocks/EnsembleBlocks.js:77 +#: js/blocks/EnsembleBlocks.js:92 +#: js/blocks/HeapBlocks.js:544 #.TRANS: value1 is a numeric value (JAPANESE ONLY) msgid "index" msgstr "" -#: js/EnsembleBlocks.js:80 +#: js/blocks/EnsembleBlocks.js:80 msgid "turtle index heap" msgstr "" -#: js/EnsembleBlocks.js:82 +#: js/blocks/EnsembleBlocks.js:82 msgid "The Turtle index heap block returns a value in the heap at a specified location for a specified turtle." msgstr "" -#: js/EnsembleBlocks.js:90 -#: js/EnsembleBlocks.js:167 -#: js/EnsembleBlocks.js:230 -#: js/EnsembleBlocks.js:316 -#: js/EnsembleBlocks.js:362 -#: js/EnsembleBlocks.js:400 -#: js/EnsembleBlocks.js:454 -#: js/EnsembleBlocks.js:504 -#: js/EnsembleBlocks.js:550 -#: js/EnsembleBlocks.js:597 -#: js/EnsembleBlocks.js:651 -#: js/EnsembleBlocks.js:763 -#: js/EnsembleBlocks.js:854 -#: js/EnsembleBlocks.js:915 -#: js/EnsembleBlocks.js:955 -#: js/EnsembleBlocks.js:1219 -#: js/EnsembleBlocks.js:1293 +#: js/blocks/EnsembleBlocks.js:90 +#: js/blocks/EnsembleBlocks.js:167 +#: js/blocks/EnsembleBlocks.js:230 +#: js/blocks/EnsembleBlocks.js:316 +#: js/blocks/EnsembleBlocks.js:362 +#: js/blocks/EnsembleBlocks.js:400 +#: js/blocks/EnsembleBlocks.js:454 +#: js/blocks/EnsembleBlocks.js:504 +#: js/blocks/EnsembleBlocks.js:550 +#: js/blocks/EnsembleBlocks.js:597 +#: js/blocks/EnsembleBlocks.js:651 +#: js/blocks/EnsembleBlocks.js:763 +#: js/blocks/EnsembleBlocks.js:854 +#: js/blocks/EnsembleBlocks.js:915 +#: js/blocks/EnsembleBlocks.js:955 +#: js/blocks/EnsembleBlocks.js:1219 +#: js/blocks/EnsembleBlocks.js:1293 #.TRANS: Yertle is the name of a turtle. msgid "Yertle" msgstr "" -#: js/EnsembleBlocks.js:92 -#: js/EnsembleBlocks.js:1089 +#: js/blocks/EnsembleBlocks.js:92 +#: js/blocks/EnsembleBlocks.js:1089 msgid "turtle name" msgstr "" -#: js/EnsembleBlocks.js:122 -#: js/EnsembleBlocks.js:1197 -#: js/HeapBlocks.js:474 -#: js/HeapBlocks.js:572 +#: js/blocks/EnsembleBlocks.js:122 +#: js/blocks/EnsembleBlocks.js:1197 +#: js/blocks/HeapBlocks.js:474 +#: js/blocks/HeapBlocks.js:572 msgid "Index must be > 0." msgstr "" -#: js/EnsembleBlocks.js:127 -#: js/HeapBlocks.js:479 -#: js/HeapBlocks.js:577 +#: js/blocks/EnsembleBlocks.js:127 +#: js/blocks/HeapBlocks.js:479 +#: js/blocks/HeapBlocks.js:577 msgid "Maximum heap size is 1000." msgstr "" -#: js/EnsembleBlocks.js:145 +#: js/blocks/EnsembleBlocks.js:145 msgid "stop mouse" msgstr "" -#: js/EnsembleBlocks.js:147 +#: js/blocks/EnsembleBlocks.js:147 msgid "The Stop mouse block stops the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:158 +#: js/blocks/EnsembleBlocks.js:158 msgid "stop turtle" msgstr "" -#: js/EnsembleBlocks.js:160 +#: js/blocks/EnsembleBlocks.js:160 msgid "The Stop turtle block stops the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:184 -#: js/EnsembleBlocks.js:247 -#: js/EnsembleBlocks.js:413 -#: js/EnsembleBlocks.js:468 -#: js/EnsembleBlocks.js:706 -#: js/EnsembleBlocks.js:808 -#: js/EnsembleBlocks.js:870 -#: js/EnsembleBlocks.js:1190 -#: js/EnsembleBlocks.js:1253 +#: js/blocks/EnsembleBlocks.js:184 +#: js/blocks/EnsembleBlocks.js:247 +#: js/blocks/EnsembleBlocks.js:413 +#: js/blocks/EnsembleBlocks.js:468 +#: js/blocks/EnsembleBlocks.js:706 +#: js/blocks/EnsembleBlocks.js:808 +#: js/blocks/EnsembleBlocks.js:870 +#: js/blocks/EnsembleBlocks.js:1190 +#: js/blocks/EnsembleBlocks.js:1253 msgid "Cannot find mouse" msgstr "" -#: js/EnsembleBlocks.js:186 -#: js/EnsembleBlocks.js:249 -#: js/EnsembleBlocks.js:415 -#: js/EnsembleBlocks.js:470 -#: js/EnsembleBlocks.js:708 -#: js/EnsembleBlocks.js:810 -#: js/EnsembleBlocks.js:872 -#: js/EnsembleBlocks.js:1192 -#: js/EnsembleBlocks.js:1255 +#: js/blocks/EnsembleBlocks.js:186 +#: js/blocks/EnsembleBlocks.js:249 +#: js/blocks/EnsembleBlocks.js:415 +#: js/blocks/EnsembleBlocks.js:470 +#: js/blocks/EnsembleBlocks.js:708 +#: js/blocks/EnsembleBlocks.js:810 +#: js/blocks/EnsembleBlocks.js:872 +#: js/blocks/EnsembleBlocks.js:1192 +#: js/blocks/EnsembleBlocks.js:1255 msgid "Cannot find turtle" msgstr "" -#: js/EnsembleBlocks.js:206 +#: js/blocks/EnsembleBlocks.js:206 msgid "start mouse" msgstr "" -#: js/EnsembleBlocks.js:209 +#: js/blocks/EnsembleBlocks.js:209 msgid "The Start mouse block starts the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:220 +#: js/blocks/EnsembleBlocks.js:220 msgid "start turtle" msgstr "" -#: js/EnsembleBlocks.js:223 +#: js/blocks/EnsembleBlocks.js:223 msgid "The Start turtle block starts the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:256 +#: js/blocks/EnsembleBlocks.js:256 msgid "Mouse is already running." msgstr "" -#: js/EnsembleBlocks.js:258 +#: js/blocks/EnsembleBlocks.js:258 msgid "Turtle is already running." msgstr "" -#: js/EnsembleBlocks.js:282 +#: js/blocks/EnsembleBlocks.js:282 msgid "Cannot find start block" msgstr "" -#: js/EnsembleBlocks.js:292 +#: js/blocks/EnsembleBlocks.js:292 #.TRANS: pen color for this mouse msgid "mouse color" msgstr "" -#: js/EnsembleBlocks.js:294 +#: js/blocks/EnsembleBlocks.js:294 msgid "The Mouse color block returns the pen color of the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:306 +#: js/blocks/EnsembleBlocks.js:306 #.TRANS: pen color for this turtle msgid "turtle color" msgstr "" -#: js/EnsembleBlocks.js:308 +#: js/blocks/EnsembleBlocks.js:308 msgid "The Turtle color block returns the pen color of the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:338 +#: js/blocks/EnsembleBlocks.js:338 #.TRANS: heading (compass direction) for this mouse msgid "mouse heading" msgstr "" -#: js/EnsembleBlocks.js:340 +#: js/blocks/EnsembleBlocks.js:340 msgid "The Mouse heading block returns the heading of the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:352 +#: js/blocks/EnsembleBlocks.js:352 #.TRANS: heading (compass direction) for this turtle msgid "turtle heading" msgstr "" -#: js/EnsembleBlocks.js:354 +#: js/blocks/EnsembleBlocks.js:354 msgid "The Turtle heading block returns the heading of the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:384 -#: js/EnsembleBlocks.js:439 +#: js/blocks/EnsembleBlocks.js:384 +#: js/blocks/EnsembleBlocks.js:439 #.TRANS: set xy position for this mouse msgid "set mouse" msgstr "" -#: js/EnsembleBlocks.js:391 -#: js/EnsembleBlocks.js:402 -#: js/BoxesBlocks.js:595 -msgid "name1" -msgstr "" - -#: js/EnsembleBlocks.js:391 -#: js/EnsembleBlocks.js:402 -#: js/ProgramBlocks.js:881 -#: js/GraphicsBlocks.js:235 -#: js/GraphicsBlocks.js:313 -#: js/GraphicsBlocks.js:436 -#: js/GraphicsBlocks.js:487 -#: js/GraphicsBlocks.js:534 -#: js/GraphicsBlocks.js:750 +#: js/blocks/EnsembleBlocks.js:391 +#: js/blocks/EnsembleBlocks.js:402 +#: js/blocks/GraphicsBlocks.js:235 +#: js/blocks/GraphicsBlocks.js:313 +#: js/blocks/GraphicsBlocks.js:436 +#: js/blocks/GraphicsBlocks.js:487 +#: js/blocks/GraphicsBlocks.js:534 +#: js/blocks/GraphicsBlocks.js:750 +#: js/blocks/ProgramBlocks.js:881 msgid "x" msgstr "" -#: js/EnsembleBlocks.js:391 -#: js/EnsembleBlocks.js:402 -#: js/ProgramBlocks.js:881 -#: js/GraphicsBlocks.js:149 -#: js/GraphicsBlocks.js:313 -#: js/GraphicsBlocks.js:436 -#: js/GraphicsBlocks.js:487 -#: js/GraphicsBlocks.js:534 -#: js/GraphicsBlocks.js:750 +#: js/blocks/EnsembleBlocks.js:391 +#: js/blocks/EnsembleBlocks.js:402 +#: js/blocks/GraphicsBlocks.js:149 +#: js/blocks/GraphicsBlocks.js:313 +#: js/blocks/GraphicsBlocks.js:436 +#: js/blocks/GraphicsBlocks.js:487 +#: js/blocks/GraphicsBlocks.js:534 +#: js/blocks/GraphicsBlocks.js:750 +#: js/blocks/ProgramBlocks.js:881 msgid "y" msgstr "" -#: js/EnsembleBlocks.js:395 -#: js/EnsembleBlocks.js:452 +#: js/blocks/EnsembleBlocks.js:395 +#: js/blocks/EnsembleBlocks.js:452 #.TRANS: set xy position for this turtle msgid "set turtle" msgstr "" -#: js/EnsembleBlocks.js:433 +#: js/blocks/EnsembleBlocks.js:433 msgid "The Set mouse block sends a stack of blocks to be run by the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:446 +#: js/blocks/EnsembleBlocks.js:446 msgid "The Set turtle block sends a stack of blocks to be run by the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:480 +#: js/blocks/EnsembleBlocks.js:480 #.TRANS: y position for this mouse msgid "mouse y" msgstr "" -#: js/EnsembleBlocks.js:482 +#: js/blocks/EnsembleBlocks.js:482 msgid "The Y mouse block returns the Y position of the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:494 +#: js/blocks/EnsembleBlocks.js:494 #.TRANS: y position for this turtle msgid "turtle y" msgstr "" -#: js/EnsembleBlocks.js:496 +#: js/blocks/EnsembleBlocks.js:496 msgid "The Y turtle block returns the Y position of the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:526 +#: js/blocks/EnsembleBlocks.js:526 #.TRANS: x position for this mouse msgid "mouse x" msgstr "" -#: js/EnsembleBlocks.js:528 +#: js/blocks/EnsembleBlocks.js:528 msgid "The X mouse block returns the X position of the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:540 +#: js/blocks/EnsembleBlocks.js:540 #.TRANS: x position for this turtle msgid "turtle x" msgstr "" -#: js/EnsembleBlocks.js:542 +#: js/blocks/EnsembleBlocks.js:542 msgid "The X turtle block returns the X position of the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:573 +#: js/blocks/EnsembleBlocks.js:573 #.TRANS: notes played by this mouse msgid "mouse notes played" msgstr "" -#: js/EnsembleBlocks.js:575 +#: js/blocks/EnsembleBlocks.js:575 msgid "The Mouse elapse notes block returns the number of notes played by the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:587 +#: js/blocks/EnsembleBlocks.js:587 #.TRANS: notes played by this turtle msgid "turtle notes played" msgstr "" -#: js/EnsembleBlocks.js:589 +#: js/blocks/EnsembleBlocks.js:589 msgid "The Turtle elapse notes block returns the number of notes played by the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:627 +#: js/blocks/EnsembleBlocks.js:627 #.TRANS: convert current note for this turtle to piano key (1-88) msgid "mouse pitch number" msgstr "" -#: js/EnsembleBlocks.js:629 +#: js/blocks/EnsembleBlocks.js:629 msgid "The Mouse pitch block returns the current pitch number being played by the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:641 +#: js/blocks/EnsembleBlocks.js:641 #.TRANS: convert current note for this turtle to piano key (1-88) msgid "turtle pitch number" msgstr "" -#: js/EnsembleBlocks.js:643 -msgid "The Turrle pitch block returns the current pitch number being played by the specified turtle." +#: js/blocks/EnsembleBlocks.js:643 +msgid "The Turtle pitch block returns the current pitch number being played by the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:747 -#: js/EnsembleBlocks.js:819 +#: js/blocks/EnsembleBlocks.js:747 +#: js/blocks/EnsembleBlocks.js:819 #.TRANS: note value is the duration of the note played by this mouse msgid "mouse note value" msgstr "" -#: js/EnsembleBlocks.js:757 +#: js/blocks/EnsembleBlocks.js:757 #.TRANS: note value is the duration of the note played by this turtle msgid "turtle note value" msgstr "" -#: js/EnsembleBlocks.js:830 +#: js/blocks/EnsembleBlocks.js:830 #.TRANS: sync is short for synchronization msgid "mouse sync" msgstr "" -#: js/EnsembleBlocks.js:832 +#: js/blocks/EnsembleBlocks.js:832 msgid "The Mouse sync block aligns the beat count between mice." msgstr "" -#: js/EnsembleBlocks.js:844 +#: js/blocks/EnsembleBlocks.js:844 #.TRANS: sync is short for synchronization msgid "turtle sync" msgstr "" -#: js/EnsembleBlocks.js:846 +#: js/blocks/EnsembleBlocks.js:846 msgid "The Turtle sync block aligns the beat count between turtles." msgstr "" -#: js/EnsembleBlocks.js:887 +#: js/blocks/EnsembleBlocks.js:887 msgid "The Found mouse block will return true if the specified mouse can be found." msgstr "" -#: js/EnsembleBlocks.js:893 +#: js/blocks/EnsembleBlocks.js:893 msgid "found mouse" msgstr "" -#: js/EnsembleBlocks.js:903 +#: js/blocks/EnsembleBlocks.js:903 msgid "The Found turtle block will return true if the specified turtle can be found." msgstr "" -#: js/EnsembleBlocks.js:909 +#: js/blocks/EnsembleBlocks.js:909 msgid "found turtle" msgstr "" -#: js/EnsembleBlocks.js:932 +#: js/blocks/EnsembleBlocks.js:932 msgid "new mouse" msgstr "" -#: js/EnsembleBlocks.js:934 +#: js/blocks/EnsembleBlocks.js:934 msgid "The New mouse block will create a new mouse." msgstr "" -#: js/EnsembleBlocks.js:945 +#: js/blocks/EnsembleBlocks.js:945 msgid "new turtle" msgstr "" -#: js/EnsembleBlocks.js:947 +#: js/blocks/EnsembleBlocks.js:947 msgid "The New turtle block will create a new turtle." msgstr "" -#: js/EnsembleBlocks.js:1011 +#: js/blocks/EnsembleBlocks.js:1011 msgid "set mouse color" msgstr "" -#: js/EnsembleBlocks.js:1014 +#: js/blocks/EnsembleBlocks.js:1014 msgid "The Set-mouse-color block is used to set the color of a mouse." msgstr "" -#: js/EnsembleBlocks.js:1020 +#: js/blocks/EnsembleBlocks.js:1020 msgid "set turtle color" msgstr "" -#: js/EnsembleBlocks.js:1023 +#: js/blocks/EnsembleBlocks.js:1023 msgid "The Set-turtle-color block is used to set the color of a turtle." msgstr "" -#: js/EnsembleBlocks.js:1083 +#: js/blocks/EnsembleBlocks.js:1083 msgid "The Mouse-name block returns the name of a mouse." msgstr "" -#: js/EnsembleBlocks.js:1092 +#: js/blocks/EnsembleBlocks.js:1092 msgid "The Turtle-name block returns the name of a turtle." msgstr "" -#: js/EnsembleBlocks.js:1115 +#: js/blocks/EnsembleBlocks.js:1115 msgid "mouse count" msgstr "" -#: js/EnsembleBlocks.js:1118 +#: js/blocks/EnsembleBlocks.js:1118 msgid "The Mouse-count block returns the number of mice." msgstr "" -#: js/EnsembleBlocks.js:1124 +#: js/blocks/EnsembleBlocks.js:1124 msgid "turtle count" msgstr "" -#: js/EnsembleBlocks.js:1127 +#: js/blocks/EnsembleBlocks.js:1127 msgid "The Turtle-count block returns the number of turtles." msgstr "" -#: js/EnsembleBlocks.js:1149 +#: js/blocks/EnsembleBlocks.js:1149 msgid "nth mouse name" msgstr "" -#: js/EnsembleBlocks.js:1152 +#: js/blocks/EnsembleBlocks.js:1152 msgid "The Nth-Mouse name block returns the name of the nth mouse." msgstr "" -#: js/EnsembleBlocks.js:1158 +#: js/blocks/EnsembleBlocks.js:1158 msgid "nth turtle name" msgstr "" -#: js/EnsembleBlocks.js:1161 +#: js/blocks/EnsembleBlocks.js:1161 msgid "The Nth-Turtle name block returns the name of the nth turtle." msgstr "" -#: js/EnsembleBlocks.js:1205 -#: js/EnsembleBlocks.js:1265 +#: js/blocks/EnsembleBlocks.js:1205 +#: js/blocks/EnsembleBlocks.js:1265 msgid "set name" msgstr "" -#: js/EnsembleBlocks.js:1214 -#: js/EnsembleBlocks.js:1221 +#: js/blocks/EnsembleBlocks.js:1214 +#: js/blocks/EnsembleBlocks.js:1221 msgid "source" msgstr "" -#: js/EnsembleBlocks.js:1214 -#: js/EnsembleBlocks.js:1221 +#: js/blocks/EnsembleBlocks.js:1214 +#: js/blocks/EnsembleBlocks.js:1221 msgid "target" msgstr "" -#: js/EnsembleBlocks.js:1271 +#: js/blocks/EnsembleBlocks.js:1271 msgid "The Set-name block is used to name a mouse." msgstr "" -#: js/EnsembleBlocks.js:1284 +#: js/blocks/EnsembleBlocks.js:1284 msgid "The Set-name block is used to name a turtle." msgstr "" -#: js/BooleanBlocks.js:44 -msgid "The Not block is the logical not operator." -msgstr "" - -#: js/BooleanBlocks.js:62 -msgid "not" -msgstr "" - -#: js/BooleanBlocks.js:134 -msgid "The And block is the logical and operator." -msgstr "" - -#: js/BooleanBlocks.js:152 -msgid "and" -msgstr "" - -#: js/BooleanBlocks.js:218 -msgid "The Or block is the logical or operator." -msgstr "" - -#: js/BooleanBlocks.js:236 -msgid "or" -msgstr "" - -#: js/BooleanBlocks.js:302 -msgid "The XOR block is the logical XOR operator." -msgstr "" - -#: js/BooleanBlocks.js:320 -msgid "xor" -msgstr "" - -#: js/BooleanBlocks.js:808 -msgid "The Equal block returns True if the two numbers are equal." -msgstr "" - -#: js/BooleanBlocks.js:909 -msgid "The Not-equal-to block returns True if the two numbers are not equal to each other." -msgstr "" - -#: js/BooleanBlocks.js:1008 -msgid "The Boolean block is used to specify true or false." -msgstr "" - -#: js/MediaBlocks.js:35 -#.TRANS: right side of the screen -msgid "right (screen)" -msgstr "" - -#: js/MediaBlocks.js:45 -#: js/MediaBlocks.js:56 -msgid "The Right block returns the position of the right of the canvas." -msgstr "" - -#: js/MediaBlocks.js:97 -#.TRANS: left side of the screen -msgid "left (screen)" -msgstr "" - -#: js/MediaBlocks.js:107 -#: js/MediaBlocks.js:118 -msgid "The Left block returns the position of the left of the canvas." -msgstr "" - -#: js/MediaBlocks.js:158 -msgid "top (screen)" -msgstr "" - -#: js/MediaBlocks.js:168 -#: js/MediaBlocks.js:179 -msgid "The Top block returns the position of the top of the canvas." -msgstr "" - -#: js/MediaBlocks.js:219 -msgid "bottom (screen)" -msgstr "" - -#: js/MediaBlocks.js:229 -#: js/MediaBlocks.js:240 -msgid "The Bottom block returns the position of the bottom of the canvas." +#: js/blocks/ExtrasBlocks.js:33 +msgid "fraction" msgstr "" -#: js/MediaBlocks.js:282 -msgid "width" +#: js/blocks/ExtrasBlocks.js:36 +msgid "Convert a float to a fraction" msgstr "" -#: js/MediaBlocks.js:291 -msgid "The Width block returns the width of the canvas." +#: js/blocks/ExtrasBlocks.js:93 +msgid "save as ABC" msgstr "" -#: js/MediaBlocks.js:325 -msgid "height" +#: js/blocks/ExtrasBlocks.js:96 +#: js/blocks/ExtrasBlocks.js:132 +#: js/blocks/ExtrasBlocks.js:168 +msgid "title" msgstr "" -#: js/MediaBlocks.js:334 -msgid "The Height block returns the height of the canvas." +#: js/blocks/ExtrasBlocks.js:129 +msgid "save as Lilypond" msgstr "" -#: js/MediaBlocks.js:369 -#.TRANS: stops playback of an audio recording -msgid "stop play" +#: js/blocks/ExtrasBlocks.js:165 +msgid "save as SVG" msgstr "" -#: js/MediaBlocks.js:404 -#.TRANS: Erases the images and text -msgid "erase media" +#: js/blocks/ExtrasBlocks.js:216 +msgid "no background" msgstr "" -#: js/MediaBlocks.js:409 -msgid "The Erase Media block erases text and images." +#: js/blocks/ExtrasBlocks.js:219 +msgid "The No background block eliminates the background from the saved SVG output." msgstr "" -#: js/MediaBlocks.js:439 -#.TRANS: play an audio recording -msgid "play back" +#: js/blocks/ExtrasBlocks.js:247 +msgid "show blocks" msgstr "" -#: js/MediaBlocks.js:487 -msgid "speak" +#: js/blocks/ExtrasBlocks.js:249 +msgid "The Show blocks block shows the blocks." msgstr "" -#: js/MediaBlocks.js:495 -msgid "The Speak block outputs to the text-to-speech synthesizer" +#: js/blocks/ExtrasBlocks.js:274 +msgid "hide blocks" msgstr "" -#: js/MediaBlocks.js:546 -msgid "camera" +#: js/blocks/ExtrasBlocks.js:276 +msgid "The Hide blocks block hides the blocks." msgstr "" -#: js/MediaBlocks.js:551 -msgid "The Camera block connects a webcam to the Show block." +#: js/blocks/ExtrasBlocks.js:305 +#: js/blocks/ExtrasBlocks.js:338 +msgid "The Space block is used to add space between blocks." msgstr "" -#: js/MediaBlocks.js:574 -msgid "video" +#: js/blocks/ExtrasBlocks.js:376 +msgid "wait" msgstr "" -#: js/MediaBlocks.js:579 -msgid "The Video block selects video for use with the Show block." +#: js/blocks/ExtrasBlocks.js:379 +msgid "The Wait block pauses the program for a specified number of seconds." msgstr "" -#: js/MediaBlocks.js:607 -msgid "The Open file block opens a file for use with the Show block." +#: js/blocks/ExtrasBlocks.js:433 +#: plugins/facebook.rtp:30 +msgid "comment" msgstr "" -#: js/MediaBlocks.js:645 -msgid "stop media" +#: js/blocks/ExtrasBlocks.js:469 +msgid "print" msgstr "" -#: js/MediaBlocks.js:650 -msgid "The Stop media block stops audio or video playback." +#: js/blocks/ExtrasBlocks.js:476 +msgid "The Print block displays text at the top of the screen." msgstr "" -#: js/MediaBlocks.js:679 -#: js/PitchBlocks.js:1539 -#: js/phrasemaker.js:822 -#: js/musickeyboard.js:1654 -#.TRANS: a measure of frequency: one cycle per second -msgid "hertz" +#: js/blocks/ExtrasBlocks.js:582 +msgid "display grid" msgstr "" -#: js/MediaBlocks.js:692 -msgid "duration (ms)" +#: js/blocks/ExtrasBlocks.js:587 +msgid "The Display Grid Block changes the grid type" msgstr "" -#: js/MediaBlocks.js:728 -#.TRANS: translate a note into hertz, e.g., A4 -> 440HZ -msgid "note to frequency" +#: js/blocks/ExtrasBlocks.js:689 +#: js/blocks/ExtrasBlocks.js:708 +#: js/blocks/ExtrasBlocks.js:731 +#: js/blocks/ExtrasBlocks.js:754 +#: js/blocks/ExtrasBlocks.js:772 +#: js/blocks/ExtrasBlocks.js:791 +#: js/blocks/ExtrasBlocks.js:810 +#: js/blocks/ExtrasBlocks.js:829 +msgid "unknown" msgstr "" -#: js/MediaBlocks.js:736 -msgid "The To frequency block converts a pitch name and octave to Hertz." +#: js/blocks/FlowBlocks.js:41 +msgid "The Backward block runs code in reverse order (Musical retrograde)." msgstr "" -#: js/MediaBlocks.js:746 -#: js/PitchBlocks.js:656 -#: js/PitchBlocks.js:932 -#: js/PitchBlocks.js:1827 -#.TRANS: name2 is name as in name of pitch (JAPANESE ONLY) -msgid "name2" +#: js/blocks/FlowBlocks.js:48 +msgid "backward" msgstr "" -#: js/MediaBlocks.js:812 -msgid "The Avatar block is used to change the appearance of the mouse." +#: js/blocks/FlowBlocks.js:124 +msgid "The Duplicate block will run each block multiple times." msgstr "" -#: js/MediaBlocks.js:819 -msgid "The Avatar block is used to change the appearance of the turtle." +#: js/blocks/FlowBlocks.js:136 +msgid "duplicate" msgstr "" -#: js/MediaBlocks.js:831 -#: js/MediaBlocks.js:891 -#.TRANS: a media object -msgid "size" +#: js/blocks/FlowBlocks.js:334 +msgid "The Default block is used inside of a Switch to define the default action." msgstr "" -#: js/MediaBlocks.js:831 -msgid "image" -msgstr "tawsira" - -#: js/MediaBlocks.js:880 -msgid "The Show block is used to display text or images on the canvas." +#: js/blocks/FlowBlocks.js:342 +msgid "default" msgstr "" -#: js/MediaBlocks.js:888 -#.TRANS: show1 is show as in display an image or text on the screen. -msgid "show1" +#: js/blocks/FlowBlocks.js:361 +#: js/blocks/FlowBlocks.js:418 +msgid "The Case Block must be used inside of a Switch Block." msgstr "" -#: js/MediaBlocks.js:891 -msgid "obj" +#: js/blocks/FlowBlocks.js:389 +msgid "The Case block is used inside of a Switch to define matches." msgstr "" -#: js/MediaBlocks.js:938 -msgid "The Media block is used to import an image." +#: js/blocks/FlowBlocks.js:397 +msgid "case" msgstr "" -#: js/MediaBlocks.js:973 -msgid "The Text block holds a text string." +#: js/blocks/FlowBlocks.js:446 +msgid "The Switch block will run the code in the matching Case." msgstr "" -#: js/ProgramBlocks.js:33 -msgid "The Load-heap-from-app block loads the heap from a web page." +#: js/blocks/FlowBlocks.js:454 +msgid "switch" msgstr "" -#: js/ProgramBlocks.js:44 -#.TRANS: load the heap contents from a URL -msgid "load heap from App" +#: js/blocks/FlowBlocks.js:595 +msgid "The Stop block will stop a loop" msgstr "" -#: js/ProgramBlocks.js:95 -msgid "Error parsing JSON data:" +#: js/blocks/FlowBlocks.js:597 +msgid "Forever, Repeat, While, or Until." msgstr "" -#: js/ProgramBlocks.js:100 -msgid "404: Page not found" -msgstr "" +#: js/blocks/FlowBlocks.js:604 +#: js/widgets/timbre.js:417 +#: js/widgets/timbre.js:419 +#: js/widgets/musickeyboard.js:819 +#: js/widgets/musickeyboard.js:821 +#: js/widgets/phrasemaker.js:4202 +#: plugins/rodi.rtp:29 +#: plugins/rodi.rtp:73 +#: plugins/rodi.rtp:413 +msgid "stop" +msgstr "kuacha" -#: js/ProgramBlocks.js:133 -msgid "The Save-heap-to-app block saves the heap to a web page." +#: js/blocks/FlowBlocks.js:653 +msgid "The Waitfor block will wait until the condition is true." msgstr "" -#: js/ProgramBlocks.js:144 -#.TRANS: save the heap contents to a URL -msgid "save heap to App" +#: js/blocks/FlowBlocks.js:661 +msgid "wait for" msgstr "" -#: js/ProgramBlocks.js:189 -msgid "Cannot find a valid heap for" +#: js/blocks/FlowBlocks.js:732 +msgid "The Until block will repeat until the condition is true." msgstr "" -#: js/ProgramBlocks.js:206 -msgid "The Load-heap block loads the heap from a file." +#: js/blocks/FlowBlocks.js:740 +msgid "until" msgstr "" -#: js/ProgramBlocks.js:217 -#.TRANS: load the heap from a file -msgid "load heap" +#: js/blocks/FlowBlocks.js:742 +#: js/blocks/FlowBlocks.js:822 +msgid "do2" msgstr "" -#: js/ProgramBlocks.js:270 -msgid "The file you selected does not contain a valid heap." +#: js/blocks/FlowBlocks.js:812 +msgid "The While block will repeat while the condition is true." msgstr "" -#: js/ProgramBlocks.js:275 -msgid "The loadHeap block needs a loadFile block." +#: js/blocks/FlowBlocks.js:820 +msgid "while" msgstr "" -#: js/ProgramBlocks.js:291 -msgid "The Set-heap block loads the heap." +#: js/blocks/FlowBlocks.js:903 +#: js/blocks/FlowBlocks.js:968 +#: js/blocks/FlowBlocks.js:979 +msgid "In this example if the mouse button is pressed a snare drum will play." msgstr "" -#: js/ProgramBlocks.js:299 -#: js/HeapBlocks.js:539 -#.TRANS: load the heap from a JSON encoding -msgid "set heap" +#: js/blocks/FlowBlocks.js:925 +#: js/blocks/FlowBlocks.js:988 +msgid "if" msgstr "" -#: js/ProgramBlocks.js:340 -msgid "The block you selected does not contain a valid heap." +#: js/blocks/FlowBlocks.js:927 +#: js/blocks/FlowBlocks.js:990 +msgid "then" msgstr "" -#: js/ProgramBlocks.js:343 -msgid "The Set heap block needs a heap." +#: js/blocks/FlowBlocks.js:927 +msgid "else" msgstr "" -#: js/ProgramBlocks.js:360 -msgid "The Load-dictionary block loads a dictionary from a file." +#: js/blocks/FlowBlocks.js:1025 +msgid "The Forever block will repeat the contained blocks forever." msgstr "" -#: js/ProgramBlocks.js:372 -#.TRANS: load a dictionary from a file -msgid "load dictionary" +#: js/blocks/FlowBlocks.js:1037 +msgid "forever" msgstr "" -#: js/ProgramBlocks.js:390 -#: js/ProgramBlocks.js:658 -#: js/ToneBlocks.js:1025 -msgid "file" +#: js/blocks/FlowBlocks.js:1073 +msgid "The Repeat block will repeat the contained blocks." msgstr "" -#: js/ProgramBlocks.js:396 -#: js/ProgramBlocks.js:501 -#: js/ProgramBlocks.js:664 -#: js/DictBlocks.js:80 -#: js/DictBlocks.js:145 -#: js/DictBlocks.js:216 -#: js/DictBlocks.js:290 -msgid "My Dictionary" +#: js/blocks/FlowBlocks.js:1075 +msgid "In this example the note will be played 4 times." msgstr "" -#: js/ProgramBlocks.js:444 -msgid "The file you selected does not contain a valid dictionary." +#: js/blocks/FlowBlocks.js:1083 +msgid "repeat" msgstr "" -#: js/ProgramBlocks.js:449 -msgid "The load dictionary block needs a load file block." +#: js/blocks/FlowBlocks.js:1123 +msgid "duplicate factor" msgstr "" -#: js/ProgramBlocks.js:466 -msgid "The Set-dictionary block loads a dictionary." +#: js/blocks/HeapBlocks.js:49 +msgid "The Heap block returns the heap." msgstr "" -#: js/ProgramBlocks.js:477 -#.TRANS: load a dictionary from a JSON -msgid "set dictionary" +#: js/blocks/HeapBlocks.js:133 +msgid "show heap" msgstr "" -#: js/ProgramBlocks.js:546 -msgid "The block you selected does not contain a valid dictionary." +#: js/blocks/HeapBlocks.js:181 +msgid "The Heap-length block returns the length of the heap." msgstr "" -#: js/ProgramBlocks.js:550 -msgid "The set dictionary block needs a dictionary." +#: js/blocks/HeapBlocks.js:195 +msgid "heap length" msgstr "" -#: js/ProgramBlocks.js:567 -msgid "The Save-heap block saves the heap to a file." +#: js/blocks/HeapBlocks.js:254 +msgid "The Heap-empty? block returns true if the heap is empty." msgstr "" -#: js/ProgramBlocks.js:578 -#.TRANS: save the heap to a file -msgid "save heap" +#: js/blocks/HeapBlocks.js:268 +#.TRANS: Is the heap empty? +msgid "heap empty?" msgstr "" -#: js/ProgramBlocks.js:629 -msgid "The Save-dictionary block saves a dictionary to a file." +#: js/blocks/HeapBlocks.js:317 +msgid "The Empty-heap block empties the heap." msgstr "" -#: js/ProgramBlocks.js:640 -#.TRANS: save a dictionary to a file -msgid "save dictionary" +#: js/blocks/HeapBlocks.js:327 +#: js/blocks/HeapBlocks.js:647 +#.TRANS: empty the heap +msgid "empty heap" msgstr "" -#: js/ProgramBlocks.js:720 -msgid "The Open palette block opens a palette." +#: js/blocks/HeapBlocks.js:371 +msgid "The Reverse-heap block reverses the order of the heap." msgstr "" -#: js/ProgramBlocks.js:727 -msgid "open palette" +#: js/blocks/HeapBlocks.js:384 +#.TRANS: reverse the order of the heap +msgid "reverse heap" msgstr "" -#: js/ProgramBlocks.js:785 -msgid "The Delete block block removes a block." +#: js/blocks/HeapBlocks.js:428 +msgid "The Index-heap block returns a value in the heap at a specified location." msgstr "" -#: js/ProgramBlocks.js:797 -#.TRANS: Move this block to the trash. -msgid "delete block" +#: js/blocks/HeapBlocks.js:443 +#.TRANS: retrieve a value from the heap at index position in the heap +msgid "index heap" msgstr "" -#: js/ProgramBlocks.js:861 -msgid "The Move block block moves a block." +#: js/blocks/HeapBlocks.js:523 +msgid "The Set-heap entry block sets a value in he heap at the specified location." msgstr "" -#: js/ProgramBlocks.js:869 -#.TRANS: Move the position of a block on the screen. -msgid "move block" +#: js/blocks/HeapBlocks.js:539 +#: js/blocks/ProgramBlocks.js:299 +#.TRANS: load the heap from a JSON encoding +msgid "set heap" msgstr "" -#: js/ProgramBlocks.js:881 -#: js/ProgramBlocks.js:1048 -msgid "block number" +#: js/blocks/HeapBlocks.js:619 +msgid "The Pop block removes the value at the top of the heap." msgstr "" -#: js/ProgramBlocks.js:935 -#.TRANS: Run program beginning at this block. -msgid "run block" +#: js/blocks/HeapBlocks.js:633 +#.TRANS: pop a value off the top of the heap +msgid "pop" msgstr "" -#: js/ProgramBlocks.js:1025 -msgid "The Dock block block connections two blocks." +#: js/blocks/HeapBlocks.js:680 +msgid "The Push block adds a value to the top of the heap." msgstr "" -#: js/ProgramBlocks.js:1036 -#.TRANS: We can connect a block to another block. -msgid "connect blocks" +#: js/blocks/HeapBlocks.js:696 +#.TRANS: push a value onto the top of the heap +msgid "push" msgstr "" -#: js/ProgramBlocks.js:1048 -msgid "target block" +#: js/blocks/IntervalsBlocks.js:45 +msgid "set temperament" msgstr "" -#: js/ProgramBlocks.js:1048 -msgid "connection number" +#: js/blocks/IntervalsBlocks.js:63 +#: js/blocks/MediaBlocks.js:746 +#: js/blocks/PitchBlocks.js:657 +#: js/blocks/PitchBlocks.js:935 +#: js/blocks/PitchBlocks.js:974 +#: js/blocks/PitchBlocks.js:1007 +#: js/blocks/PitchBlocks.js:1194 +#: js/blocks/PitchBlocks.js:1717 +#: js/blocks/PitchBlocks.js:1758 +#: js/blocks/PitchBlocks.js:1866 +#: js/blocks/ToneBlocks.js:1025 +#: js/turtleactions/IntervalsActions.js:114 +#.TRANS: adjusts the shift up or down by one octave (twelve half-steps in the interval between two notes, one having twice or half the frequency in Hz of the other.) +msgid "octave" msgstr "" -#: js/ProgramBlocks.js:1140 -msgid "The Make block block creates a new block." +#: js/blocks/IntervalsBlocks.js:99 +msgid "The Temperament name block is used to select a tuning method." msgstr "" -#: js/ProgramBlocks.js:1152 -#.TRANS: Create a new block -msgid "make block" +#: js/blocks/IntervalsBlocks.js:161 +msgid "doubly" msgstr "" -#: js/ProgramBlocks.js:1186 -#: js/ProgramBlocks.js:1227 -#: js/RhythmBlocks.js:1128 -#: js/PitchBlocks.js:972 -#: js/PitchBlocks.js:1005 -#: js/temperament.js:340 -#: js/temperament.js:362 -#: js/temperament.js:372 -#: js/temperament.js:484 -#: js/status.js:190 -#: plugins/rodi.rtp:192 -#.TRANS: a musical note consisting of pitch and duration -msgid "note" +#: js/blocks/IntervalsBlocks.js:166 +msgid "The Doubly block will double the size of an interval." msgstr "" -#: js/ProgramBlocks.js:1285 -msgid "Cannot find block" +#: js/blocks/IntervalsBlocks.js:262 +msgid "interval number" msgstr "" -#: js/ProgramBlocks.js:1304 -#: js/ProgramBlocks.js:1313 -msgid "Warning: block argument type mismatch" +#: js/blocks/IntervalsBlocks.js:317 +msgid "current interval" msgstr "" -#: js/ProgramBlocks.js:1347 -msgid "The Open project block is used to open a project from a web page." +#: js/blocks/IntervalsBlocks.js:387 +#.TRANS: measure the distance between two pitches in semi-tones +msgid "semi-tone interval measure" msgstr "" -#: js/ProgramBlocks.js:1357 -msgid "open project" +#: js/blocks/IntervalsBlocks.js:454 +#: js/blocks/IntervalsBlocks.js:570 +msgid "You must use two pitch blocks when measuring an interval." msgstr "" -#: js/ProgramBlocks.js:1410 -msgid "Please enter a valid URL." +#: js/blocks/IntervalsBlocks.js:496 +msgid "The Scalar interval block measures the distance between two notes in the current key and mode." msgstr "" -#: js/DrumBlocks.js:59 -msgid "The Noise name block is used to select a noise synthesizer." +#: js/blocks/IntervalsBlocks.js:502 +#.TRANS: measure the distance between two pitches in steps of musical scale +msgid "scalar interval measure" msgstr "" -#: js/DrumBlocks.js:102 -msgid "The Drum name block is used to select a drum." +#: js/blocks/IntervalsBlocks.js:678 +msgid "In the figure, we add sol# to sol." msgstr "" -#: js/DrumBlocks.js:146 -msgid "The Effects name block is used to select a sound effect." +#: js/blocks/IntervalsBlocks.js:684 +#: js/blocks/OrnamentBlocks.js:220 +#.TRANS: calculate a relative step between notes based on semi-tones +msgid "semi-tone interval" msgstr "" -#: js/DrumBlocks.js:163 -msgid "noise" +#: js/blocks/IntervalsBlocks.js:733 +msgid "The output of the example is: do, mi, sol, sol, ti, mi" msgstr "" -#: js/DrumBlocks.js:177 -msgid "The Play noise block will generate white, pink, or brown noise." +#: js/blocks/IntervalsBlocks.js:740 +#: js/blocks/WidgetBlocks.js:768 +msgid "arpeggio" msgstr "" -#: js/DrumBlocks.js:191 -#: js/musicutils.js:752 -#: js/synthutils.js:47 -#.TRANS: white noise synthesizer -msgid "white noise" +#: js/blocks/IntervalsBlocks.js:931 +msgid "The Chord block calculates common chords." msgstr "" -#: js/DrumBlocks.js:326 -msgid "Replace every instance of a pitch with a drum sound." +#: js/blocks/IntervalsBlocks.js:933 +msgid "In the figure, we generate a C-major chord." msgstr "" -#: js/DrumBlocks.js:337 -#.TRANS: map a pitch to a drum sound -msgid "map pitch to drum" +#: js/blocks/IntervalsBlocks.js:938 +msgid "chord" msgstr "" -#: js/DrumBlocks.js:404 -msgid "In the example above, a kick drum sound will be played instead of sol." +#: js/blocks/IntervalsBlocks.js:990 +msgid "The Ratio Interval block calculates an interval based on a ratio." msgstr "" -#: js/DrumBlocks.js:416 -#.TRANS: set the current drum sound for playback -msgid "set drum" +#: js/blocks/IntervalsBlocks.js:995 +msgid "ratio interval" msgstr "" -#: js/DrumBlocks.js:460 -msgid "sound effect" +#: js/blocks/IntervalsBlocks.js:1064 +msgid "In the figure, we add la to sol." msgstr "" -#: js/DrumBlocks.js:498 -msgid "You can use multiple Drum blocks within a Note block." +#: js/blocks/IntervalsBlocks.js:1120 +#.TRANS: define a custom mode +msgid "define mode" msgstr "" -#: js/RhythmBlocks.js:182 -#: js/RhythmBlocks.js:1086 -#: js/RhythmBlocks.js:1162 -msgid "Note value must be greater than 0." +#: js/blocks/IntervalsBlocks.js:1173 +msgid "movable Do" msgstr "" -#: js/RhythmBlocks.js:215 -#: js/RhythmBlocks.js:278 -#: js/RhythmBlocks.js:350 -#.TRANS: swing is a rhythmic variation that emphasises the offbeat -msgid "swing" +#: js/blocks/IntervalsBlocks.js:1224 +#.TRANS: mode length is the number of notes in the mode, e.g., 7 for major and minor scales; 12 for chromatic scales +msgid "mode length" msgstr "" -#: js/RhythmBlocks.js:355 -#.TRANS: the amount to shift to the offbeat note -msgid "swing value" +#: js/blocks/IntervalsBlocks.js:1233 +msgid "The Mode length block is the number of notes in the current scale." msgstr "" -#: js/RhythmBlocks.js:419 -msgid "The Skip notes block will cause notes to be skipped." +#: js/blocks/IntervalsBlocks.js:1235 +msgid "Most Western scales have 7 notes." msgstr "" -#: js/RhythmBlocks.js:427 -#.TRANS: substitute rests on notes being skipped -msgid "skip notes" +#: js/blocks/IntervalsBlocks.js:1284 +#.TRANS: the mode in music is 'major', 'minor', etc. +msgid "current mode" msgstr "" -#: js/RhythmBlocks.js:489 -#.TRANS: speed up note duration by some factor, e.g. convert 1/4 to 1/8 notes by using a factor of 2 -msgid "multiply note value" +#: js/blocks/IntervalsBlocks.js:1337 +#.TRANS: the key is a group of pitches with which a music composition is created +msgid "current key" msgstr "" -#: js/RhythmBlocks.js:542 -msgid "The Tie block works on pairs of notes, combining them into one note." +#: js/blocks/IntervalsBlocks.js:1389 +#: js/blocks/IntervalsBlocks.js:1434 +#.TRANS: set the key and mode, e.g. C Major +msgid "set key" msgstr "" -#: js/RhythmBlocks.js:550 -#.TRANS: tie notes together into one longer note -msgid "tie" +#: js/blocks/IntervalsBlocks.js:1443 +#: js/blocks/IntervalsBlocks.js:1449 +msgid "The Set key block is used to set the key and mode," msgstr "" -#: js/RhythmBlocks.js:591 -#: js/RhythmBlocks.js:671 -#.TRANS: a dotted note is played for 1.5x its value, e.g., 1/8. --> 3/16 -msgid "dot" +#: js/blocks/IntervalsBlocks.js:1449 +msgid "eg C Major" msgstr "" -#: js/RhythmBlocks.js:619 -#: js/RhythmActions.js:221 -msgid "An argument of -1 results in a note value of 0." +#: js/blocks/MediaBlocks.js:35 +#.TRANS: right side of the screen +msgid "right (screen)" msgstr "" -#: js/RhythmBlocks.js:661 -msgid "The Dot block extends the duration of a note by 50%." +#: js/blocks/MediaBlocks.js:45 +#: js/blocks/MediaBlocks.js:56 +msgid "The Right block returns the position of the right of the canvas." msgstr "" -#: js/RhythmBlocks.js:663 -msgid "Eg a dotted quarter note will play for 3/8 (1/4 + 1/8) of a beat." +#: js/blocks/MediaBlocks.js:97 +#.TRANS: left side of the screen +msgid "left (screen)" msgstr "" -#: js/RhythmBlocks.js:765 -#.TRANS: Japanese only: note value block for drum -msgid "note value drum" +#: js/blocks/MediaBlocks.js:107 +#: js/blocks/MediaBlocks.js:118 +msgid "The Left block returns the position of the left of the canvas." msgstr "" -#: js/RhythmBlocks.js:829 -msgid "392 hertz" +#: js/blocks/MediaBlocks.js:158 +msgid "top (screen)" msgstr "" -#: js/RhythmBlocks.js:1119 -msgid "The Note block is a container for one or more Pitch blocks." +#: js/blocks/MediaBlocks.js:168 +#: js/blocks/MediaBlocks.js:179 +msgid "The Top block returns the position of the top of the canvas." msgstr "" -#: js/RhythmBlocks.js:1121 -msgid "The Note block specifies the duration (note value) of its contents." +#: js/blocks/MediaBlocks.js:219 +msgid "bottom (screen)" msgstr "" -#: js/RhythmBlocks.js:1130 -msgid "value2" +#: js/blocks/MediaBlocks.js:229 +#: js/blocks/MediaBlocks.js:240 +msgid "The Bottom block returns the position of the bottom of the canvas." msgstr "" -#: js/RhythmBlocks.js:1200 -msgid "define frequency" +#: js/blocks/MediaBlocks.js:282 +msgid "width" msgstr "" -#: js/RhythmBlocks.js:1218 -#: js/temperament.js:650 -#: js/temperament.js:1421 -msgid "octave space" +#: js/blocks/MediaBlocks.js:291 +msgid "The Width block returns the width of the canvas." msgstr "" -#: js/NumberBlocks.js:28 -msgid "The Int block returns an integer." +#: js/blocks/MediaBlocks.js:325 +msgid "height" msgstr "" -#: js/NumberBlocks.js:34 -msgid "int" +#: js/blocks/MediaBlocks.js:334 +msgid "The Height block returns the height of the canvas." msgstr "" -#: js/NumberBlocks.js:73 -msgid "The Mod block returns the remainder from a division." +#: js/blocks/MediaBlocks.js:369 +#.TRANS: stops playback of an audio recording +msgid "stop play" msgstr "" -#: js/NumberBlocks.js:79 -msgid "mod" +#: js/blocks/MediaBlocks.js:404 +#.TRANS: Erases the images and text +msgid "erase media" msgstr "" -#: js/NumberBlocks.js:123 -msgid "The Power block calculates a power function." +#: js/blocks/MediaBlocks.js:409 +msgid "The Erase Media block erases text and images." msgstr "" -#: js/NumberBlocks.js:178 -msgid "The Sqrt block returns the square root." +#: js/blocks/MediaBlocks.js:439 +#.TRANS: play an audio recording +msgid "play back" msgstr "" -#: js/NumberBlocks.js:184 -msgid "sqrt" +#: js/blocks/MediaBlocks.js:487 +msgid "speak" msgstr "" -#: js/NumberBlocks.js:230 -msgid "The Abs block returns the absolute value." +#: js/blocks/MediaBlocks.js:495 +msgid "The Speak block outputs to the text-to-speech synthesizer" msgstr "" -#: js/NumberBlocks.js:236 -msgid "abs" +#: js/blocks/MediaBlocks.js:546 +msgid "camera" msgstr "" -#: js/NumberBlocks.js:277 -msgid "The Distance block returns the distance between two points. For example, between the mouse and the center of the screen." +#: js/blocks/MediaBlocks.js:551 +msgid "The Camera block connects a webcam to the Show block." msgstr "" -#: js/NumberBlocks.js:283 -#: plugins/rodi.rtp:310 -msgid "distance" +#: js/blocks/MediaBlocks.js:574 +msgid "video" msgstr "" -#: js/NumberBlocks.js:343 -msgid "The Divide block is used to divide." +#: js/blocks/MediaBlocks.js:579 +msgid "The Video block selects video for use with the Show block." msgstr "" -#: js/NumberBlocks.js:411 -msgid "The Multiply block is used to multiply." +#: js/blocks/MediaBlocks.js:607 +msgid "The Open file block opens a file for use with the Show block." msgstr "" -#: js/NumberBlocks.js:554 -msgid "The Minus block is used to subtract." +#: js/blocks/MediaBlocks.js:645 +msgid "stop media" msgstr "" -#: js/NumberBlocks.js:647 -msgid "The Plus block is used to add." +#: js/blocks/MediaBlocks.js:650 +msgid "The Stop media block stops audio or video playback." msgstr "" -#: js/NumberBlocks.js:773 -msgid "The One-of block returns one of two choices." +#: js/blocks/MediaBlocks.js:679 +#: js/blocks/PitchBlocks.js:1577 +#: js/widgets/musickeyboard.js:1936 +#: js/widgets/phrasemaker.js:1037 +#.TRANS: a measure of frequency: one cycle per second +msgid "hertz" msgstr "" -#: js/NumberBlocks.js:780 -#: js/PitchBlocks.js:616 -msgid "one of" +#: js/blocks/MediaBlocks.js:692 +#: js/blocks/WidgetBlocks.js:182 +#: js/widgets/temperament.js:506 +#: js/widgets/temperament.js:546 +#: js/widgets/temperament.js:610 +#: js/widgets/temperament.js:618 +#: js/widgets/temperament.js:1505 +#: js/widgets/timbre.js:1842 +msgid "frequency" msgstr "" -#: js/NumberBlocks.js:782 -msgid "this" +#: js/blocks/MediaBlocks.js:692 +msgid "duration (ms)" msgstr "" -#: js/NumberBlocks.js:782 -msgid "that" +#: js/blocks/MediaBlocks.js:728 +#.TRANS: translate a note into hertz, e.g., A4 -> 440HZ +msgid "note to frequency" msgstr "" -#: js/NumberBlocks.js:837 -msgid "The Random block returns a random number." +#: js/blocks/MediaBlocks.js:736 +msgid "The To frequency block converts a pitch name and octave to Hertz." msgstr "" -#: js/NumberBlocks.js:844 -msgid "random" +#: js/blocks/MediaBlocks.js:746 +#: js/blocks/PitchBlocks.js:656 +#: js/blocks/PitchBlocks.js:934 +#: js/blocks/PitchBlocks.js:1866 +#.TRANS: name2 is name as in name of pitch (JAPANESE ONLY) +msgid "name2" msgstr "" -#: js/NumberBlocks.js:846 -msgid "min" +#: js/blocks/MediaBlocks.js:812 +msgid "The Avatar block is used to change the appearance of the mouse." msgstr "" -#: js/NumberBlocks.js:846 -msgid "max" +#: js/blocks/MediaBlocks.js:819 +msgid "The Avatar block is used to change the appearance of the turtle." msgstr "" -#: js/NumberBlocks.js:910 -msgid "The Number block holds a number." +#: js/blocks/MediaBlocks.js:831 +#: js/blocks/MediaBlocks.js:891 +#.TRANS: a media object +msgid "size" msgstr "" -#: js/BoxesBlocks.js:53 -#: js/BoxesBlocks.js:59 -msgid "The Add-to block is used to add to the value stored in a box." +#: js/blocks/MediaBlocks.js:831 +msgid "image" +msgstr "tawsira" + +#: js/blocks/MediaBlocks.js:880 +msgid "The Show block is used to display text or images on the canvas." msgstr "" -#: js/BoxesBlocks.js:61 -msgid "It can also be used with other blocks such as Color and Pen size." +#: js/blocks/MediaBlocks.js:888 +#.TRANS: show1 is show as in display an image or text on the screen. +msgid "show1" msgstr "" -#: js/BoxesBlocks.js:73 -msgid "add" +#: js/blocks/MediaBlocks.js:891 +msgid "obj" msgstr "" -#: js/BoxesBlocks.js:75 -#: js/temperament.js:716 -msgid "to" +#: js/blocks/MediaBlocks.js:938 +msgid "The Media block is used to import an image." msgstr "" -#: js/BoxesBlocks.js:75 -#: js/BoxesBlocks.js:595 -#: js/HeapBlocks.js:544 -msgid "value1" +#: js/blocks/MediaBlocks.js:973 +msgid "The Text block holds a text string." msgstr "" -#: js/BoxesBlocks.js:118 -msgid "Block does not support incrementing." +#: js/blocks/MeterBlocks.js:34 +#.TRANS: musical meter (time signature), e.g., 4:4 +msgid "current meter" msgstr "" -#: js/BoxesBlocks.js:152 -msgid "The Add-1-to block adds one to the value stored in a box." +#: js/blocks/MeterBlocks.js:85 +#.TRANS: number of beats per minute +msgid "beat factor" msgstr "" -#: js/BoxesBlocks.js:163 -msgid "add 1 to" +#: js/blocks/MeterBlocks.js:161 +msgid "The Beats per minute block returns the current beats per minute." msgstr "" -#: js/BoxesBlocks.js:211 -msgid "The Subtract-1-from block subtracts one from the value stored in a box." +#: js/blocks/MeterBlocks.js:169 +#: js/widgets/status.js:152 +#.TRANS: number of beats played per minute +msgid "beats per minute2" msgstr "" -#: js/BoxesBlocks.js:222 -msgid "subtract 1 from" +#: js/blocks/MeterBlocks.js:169 +#: js/blocks/MeterBlocks.js:1056 +#: js/blocks/MeterBlocks.js:1133 +#: js/blocks/MeterBlocks.js:1211 +#.TRANS: sets tempo by defining a beat and beats per minute +msgid "beats per minute" msgstr "" -#: js/BoxesBlocks.js:270 -#: js/BoxesBlocks.js:387 -msgid "The Box block returns the value stored in a box." +#: js/blocks/MeterBlocks.js:233 +#.TRANS: count of current musical measure in meter +msgid "measure count" msgstr "" -#: js/BoxesBlocks.js:500 -#: js/BoxesBlocks.js:576 -msgid "The Store in block will store a value in a box." +#: js/blocks/MeterBlocks.js:241 +msgid "The Measure count block returns the current measure." msgstr "" -#: js/BoxesBlocks.js:652 -msgid "The Box2 block returns the value stored in Box2." +#: js/blocks/MeterBlocks.js:290 +#.TRANS: count of current beat in the meter +msgid "beat count" msgstr "" -#: js/BoxesBlocks.js:703 -msgid "The Store in Box2 block is used to store a value in Box2." +#: js/blocks/MeterBlocks.js:300 +#: js/blocks/MeterBlocks.js:311 +#: js/blocks/MeterBlocks.js:565 +#: js/blocks/MeterBlocks.js:576 +msgid "The Beat count block is the number of the current beat," msgstr "" -#: js/BoxesBlocks.js:715 -msgid "store in box2" +#: js/blocks/MeterBlocks.js:313 +#: js/blocks/MeterBlocks.js:578 +msgid "eg 1, 2, 3, or 4." msgstr "" -#: js/BoxesBlocks.js:761 -msgid "The Box1 block returns the value stored in Box1." +#: js/blocks/MeterBlocks.js:368 +#.TRANS: count the number of notes +msgid "sum note values" msgstr "" -#: js/BoxesBlocks.js:812 -msgid "The Store in Box1 block is used to store a value in Box1." +#: js/blocks/MeterBlocks.js:376 +#: js/blocks/MeterBlocks.js:440 +msgid "The Note counter block can be used to count the number of contained notes." msgstr "" -#: js/BoxesBlocks.js:826 -msgid "store in box1" +#: js/blocks/MeterBlocks.js:432 +#.TRANS: count the number of notes +msgid "note counter" msgstr "" -#: js/HeapBlocks.js:49 -msgid "The Heap block returns the heap." +#: js/blocks/MeterBlocks.js:496 +#.TRANS: number of whole notes that have been played +msgid "whole notes played" msgstr "" -#: js/HeapBlocks.js:133 -msgid "show heap" +#: js/blocks/MeterBlocks.js:505 +msgid "The Whole notes played block returns the total number of whole notes played." msgstr "" -#: js/HeapBlocks.js:181 -msgid "The Heap-length block returns the length of the heap." +#: js/blocks/MeterBlocks.js:555 +#: js/turtleactions/DictActions.js:83 +#.TRANS: number of notes that have been played +msgid "notes played" msgstr "" -#: js/HeapBlocks.js:195 -msgid "heap length" +#: js/blocks/MeterBlocks.js:653 +msgid "The No clock block decouples the notes from the master clock." msgstr "" -#: js/HeapBlocks.js:254 -msgid "The Heap-empty? block returns true if the heap is empty." +#: js/blocks/MeterBlocks.js:661 +#.TRANS: don't lock notes to master clock +msgid "no clock" msgstr "" -#: js/HeapBlocks.js:268 -#.TRANS: Is the heap empty? -msgid "heap empty?" +#: js/blocks/MeterBlocks.js:700 +msgid "on weak beat do" msgstr "" -#: js/HeapBlocks.js:317 -msgid "The Empty-heap block empties the heap." +#: js/blocks/MeterBlocks.js:705 +msgid "The On-weak-beat block lets you specify actions to take on weak (off) beats." msgstr "" -#: js/HeapBlocks.js:327 -#: js/HeapBlocks.js:647 -#.TRANS: empty the heap -msgid "empty heap" +#: js/blocks/MeterBlocks.js:750 +msgid "on strong beat" msgstr "" -#: js/HeapBlocks.js:371 -msgid "The Reverse-heap block reverses the order of the heap." +#: js/blocks/MeterBlocks.js:758 +msgid "The On-strong-beat block lets you specify actions to take on specified beats." msgstr "" -#: js/HeapBlocks.js:384 -#.TRANS: reverse the order of the heap -msgid "reverse heap" +#: js/blocks/MeterBlocks.js:769 +msgid "beat" msgstr "" -#: js/HeapBlocks.js:428 -msgid "The Index-heap block returns a value in the heap at a specified location." +#: js/blocks/MeterBlocks.js:813 +msgid "on every beat do" msgstr "" -#: js/HeapBlocks.js:443 -#.TRANS: retrieve a value from the heap at index position in the heap -msgid "index heap" +#: js/blocks/MeterBlocks.js:821 +msgid "The On-every-beat block lets you specify actions to take on every beat." msgstr "" -#: js/HeapBlocks.js:523 -msgid "The Set-heap entry block sets a value in he heap at the specified location." +#: js/blocks/MeterBlocks.js:874 +msgid "on every note do" msgstr "" -#: js/HeapBlocks.js:619 -msgid "The Pop block removes the value at the top of the heap." +#: js/blocks/MeterBlocks.js:882 +msgid "The On-every-note block lets you specify actions to take on every note." msgstr "" -#: js/HeapBlocks.js:633 -#.TRANS: pop a value off the top of the heap -msgid "pop" +#: js/blocks/MeterBlocks.js:928 +#: js/blocks/MeterBlocks.js:999 +#.TRANS: sets tempo by defining a beat and beats per minute +msgid "master beats per minute" msgstr "" -#: js/HeapBlocks.js:680 -msgid "The Push block adds a value to the top of the heap." +#: js/blocks/MeterBlocks.js:952 +#: js/blocks/MeterBlocks.js:1078 +#: js/blocks/MeterBlocks.js:1135 +msgid "bpm" msgstr "" -#: js/HeapBlocks.js:696 -#.TRANS: push a value onto the top of the heap -msgid "push" +#: js/blocks/MeterBlocks.js:952 +#: js/blocks/MeterBlocks.js:1078 +#: js/blocks/MeterBlocks.js:1135 +msgid "beat value" msgstr "" -#: js/FlowBlocks.js:41 -msgid "The Backward block runs code in reverse order (Musical retrograde)." +#: js/blocks/MeterBlocks.js:1024 +#: js/blocks/MeterBlocks.js:1167 +#: js/blocks/MeterBlocks.js:1241 +msgid "Beats per minute must be > 30." msgstr "" -#: js/FlowBlocks.js:48 -msgid "backward" +#: js/blocks/MeterBlocks.js:1027 +#: js/blocks/MeterBlocks.js:1170 +#: js/blocks/MeterBlocks.js:1244 +msgid "Maximum beats per minute is 1000." msgstr "" -#: js/FlowBlocks.js:124 -msgid "The Duplicate block will run each block multiple times." +#: js/blocks/MeterBlocks.js:1068 +msgid "The Beats per minute block sets the number of 1/4 notes per minute." msgstr "" -#: js/FlowBlocks.js:136 -msgid "duplicate" +#: js/blocks/MeterBlocks.js:1279 +#.TRANS: anacrusis +msgid "pickup" msgstr "" -#: js/FlowBlocks.js:334 -msgid "The Default block is used inside of a Switch to define the default action." +#: js/blocks/MeterBlocks.js:1367 +msgid "number of beats" msgstr "" -#: js/FlowBlocks.js:342 -msgid "default" +#: js/blocks/NumberBlocks.js:28 +msgid "The Int block returns an integer." msgstr "" -#: js/FlowBlocks.js:361 -#: js/FlowBlocks.js:418 -msgid "The Case Block must be used inside of a Switch Block." +#: js/blocks/NumberBlocks.js:34 +msgid "int" msgstr "" -#: js/FlowBlocks.js:389 -msgid "The Case block is used inside of a Switch to define matches." +#: js/blocks/NumberBlocks.js:73 +msgid "The Mod block returns the remainder from a division." msgstr "" -#: js/FlowBlocks.js:397 -msgid "case" +#: js/blocks/NumberBlocks.js:79 +msgid "mod" msgstr "" -#: js/FlowBlocks.js:446 -msgid "The Switch block will run the code in the matching Case." +#: js/blocks/NumberBlocks.js:141 +msgid "The Power block calculates a power function." msgstr "" -#: js/FlowBlocks.js:454 -msgid "switch" +#: js/blocks/NumberBlocks.js:196 +msgid "The Sqrt block returns the square root." msgstr "" -#: js/FlowBlocks.js:595 -msgid "The Stop block will stop a loop" +#: js/blocks/NumberBlocks.js:202 +msgid "sqrt" msgstr "" -#: js/FlowBlocks.js:597 -msgid "Forever, Repeat, While, or Until." +#: js/blocks/NumberBlocks.js:248 +msgid "The Abs block returns the absolute value." msgstr "" -#: js/FlowBlocks.js:604 -#: js/phrasemaker.js:3799 -#: js/musickeyboard.js:629 -#: js/musickeyboard.js:631 -#: js/timbre.js:417 -#: js/timbre.js:419 -#: plugins/rodi.rtp:29 -#: plugins/rodi.rtp:73 -#: plugins/rodi.rtp:413 -msgid "stop" -msgstr "kuacha" +#: js/blocks/NumberBlocks.js:254 +msgid "abs" +msgstr "" -#: js/FlowBlocks.js:653 -msgid "The Waitfor block will wait until the condition is true." +#: js/blocks/NumberBlocks.js:295 +msgid "The Distance block returns the distance between two points. For example, between the mouse and the center of the screen." msgstr "" -#: js/FlowBlocks.js:661 -msgid "wait for" +#: js/blocks/NumberBlocks.js:301 +#: plugins/rodi.rtp:310 +msgid "distance" msgstr "" -#: js/FlowBlocks.js:732 -msgid "The Until block will repeat until the condition is true." +#: js/blocks/NumberBlocks.js:361 +msgid "The Divide block is used to divide." msgstr "" -#: js/FlowBlocks.js:740 -msgid "until" +#: js/blocks/NumberBlocks.js:441 +msgid "The Multiply block is used to multiply." msgstr "" -#: js/FlowBlocks.js:742 -#: js/FlowBlocks.js:822 -msgid "do2" +#: js/blocks/NumberBlocks.js:612 +msgid "The Minus block is used to subtract." msgstr "" -#: js/FlowBlocks.js:812 -msgid "The While block will repeat while the condition is true." +#: js/blocks/NumberBlocks.js:723 +msgid "The Plus block is used to add." msgstr "" -#: js/FlowBlocks.js:820 -msgid "while" +#: js/blocks/NumberBlocks.js:849 +msgid "The One-of block returns one of two choices." msgstr "" -#: js/FlowBlocks.js:903 -#: js/FlowBlocks.js:968 -#: js/FlowBlocks.js:979 -msgid "In this example if the mouse button is pressed a snare drum will play." +#: js/blocks/NumberBlocks.js:856 +#: js/blocks/PitchBlocks.js:616 +msgid "one of" msgstr "" -#: js/FlowBlocks.js:925 -#: js/FlowBlocks.js:988 -msgid "if" +#: js/blocks/NumberBlocks.js:858 +msgid "this" msgstr "" -#: js/FlowBlocks.js:927 -#: js/FlowBlocks.js:990 -msgid "then" +#: js/blocks/NumberBlocks.js:858 +msgid "that" msgstr "" -#: js/FlowBlocks.js:927 -msgid "else" +#: js/blocks/NumberBlocks.js:913 +msgid "The Random block returns a random number." msgstr "" -#: js/FlowBlocks.js:1025 -msgid "The Forever block will repeat the contained blocks forever." +#: js/blocks/NumberBlocks.js:920 +msgid "random" msgstr "" -#: js/FlowBlocks.js:1037 -msgid "forever" +#: js/blocks/NumberBlocks.js:922 +msgid "min" msgstr "" -#: js/FlowBlocks.js:1073 -msgid "The Repeat block will repeat the contained blocks." +#: js/blocks/NumberBlocks.js:922 +msgid "max" msgstr "" -#: js/FlowBlocks.js:1075 -msgid "In this example the note will be played 4 times." +#: js/blocks/NumberBlocks.js:986 +msgid "The Number block holds a number." msgstr "" -#: js/FlowBlocks.js:1083 -msgid "repeat" +#: js/blocks/OrnamentBlocks.js:32 +msgid "staccato factor" msgstr "" -#: js/FlowBlocks.js:1123 -msgid "duplicate factor" +#: js/blocks/OrnamentBlocks.js:108 +msgid "slur factor" msgstr "" -#: js/PitchBlocks.js:39 -#: js/musicutils.js:722 -#: js/musicutils.js:1117 -#: js/synthutils.js:112 -#.TRANS: square wave -msgid "square" +#: js/blocks/OrnamentBlocks.js:217 +#: js/blocks/OrnamentBlocks.js:309 +#.TRANS: the neighbor refers to a neighboring note, e.g., D is a neighbor of C +msgid "neighbor" msgstr "" -#: js/PitchBlocks.js:62 -#: js/ToneBlocks.js:39 -#: js/musicutils.js:723 -#: js/musicutils.js:1118 -#: js/synthutils.js:116 -#.TRANS: triangle wave -msgid "triangle" +#: js/blocks/OrnamentBlocks.js:293 +msgid "The Neighbor block rapidly switches between neighboring pitches." msgstr "" -#: js/PitchBlocks.js:85 -#: js/musicutils.js:721 -#: js/musicutils.js:1116 -#: js/synthutils.js:110 -#.TRANS: sine wave -msgid "sine" +#: js/blocks/OrnamentBlocks.js:364 +msgid "glide" msgstr "" -#: js/PitchBlocks.js:108 -#: js/musicutils.js:724 -#: js/musicutils.js:1119 -#: js/synthutils.js:114 -#.TRANS: sawtooth wave -msgid "sawtooth" +#: js/blocks/OrnamentBlocks.js:479 +#: js/blocks/OrnamentBlocks.js:643 +msgid "slur" msgstr "" -#: js/PitchBlocks.js:141 -#.TRANS: musical transposition (adjustment of pitch up or down) -msgid "transposition" +#: js/blocks/OrnamentBlocks.js:558 +#: js/blocks/OrnamentBlocks.js:710 +#.TRANS: play each note sharply detached from the others +msgid "staccato" msgstr "" -#: js/PitchBlocks.js:168 -#.TRANS: step down one note in current musical scale -msgid "scalar step down" +#: js/blocks/RhythmBlocks.js:182 +#: js/blocks/RhythmBlocks.js:1086 +#: js/blocks/RhythmBlocks.js:1162 +msgid "Note value must be greater than 0." msgstr "" -#: js/PitchBlocks.js:172 -msgid "The Scalar step down block returns the number of semi-tones down to the previous note in the current key and mode." +#: js/blocks/RhythmBlocks.js:215 +#: js/blocks/RhythmBlocks.js:278 +#: js/blocks/RhythmBlocks.js:350 +#.TRANS: swing is a rhythmic variation that emphasises the offbeat +msgid "swing" msgstr "" -#: js/PitchBlocks.js:190 -#.TRANS: step up one note in current musical scale -msgid "scalar step up" +#: js/blocks/RhythmBlocks.js:355 +#.TRANS: the amount to shift to the offbeat note +msgid "swing value" msgstr "" -#: js/PitchBlocks.js:194 -msgid "The Scalar step up block returns the number of semi-tones up to the next note in the current key and mode." +#: js/blocks/RhythmBlocks.js:419 +msgid "The Skip notes block will cause notes to be skipped." msgstr "" -#: js/PitchBlocks.js:212 -#.TRANS: the change measured in half-steps between the current pitch and the previous pitch -msgid "change in pitch" +#: js/blocks/RhythmBlocks.js:427 +#.TRANS: substitute rests on notes being skipped +msgid "skip notes" msgstr "" -#: js/PitchBlocks.js:216 -msgid "The Change in pitch block is the difference (in half steps) between the current pitch being played and the previous pitch played." +#: js/blocks/RhythmBlocks.js:489 +#.TRANS: speed up note duration by some factor, e.g. convert 1/4 to 1/8 notes by using a factor of 2 +msgid "multiply note value" msgstr "" -#: js/PitchBlocks.js:243 -#.TRANS: the change measured in scale-steps between the current pitch and the previous pitch -msgid "scalar change in pitch" +#: js/blocks/RhythmBlocks.js:542 +msgid "The Tie block works on pairs of notes, combining them into one note." msgstr "" -#: js/PitchBlocks.js:250 -#: js/PitchBlocks.js:432 -#: js/PitchBlocks.js:1629 -#: js/DictActions.js:89 -#: js/temperament.js:477 -#: js/temperament.js:481 -#: js/temperament.js:714 -#.TRANS: convert current note to piano key (1-88) -#.TRANS: a mapping of pitch to the 88 piano keys -msgid "pitch number" +#: js/blocks/RhythmBlocks.js:550 +#.TRANS: tie notes together into one longer note +msgid "tie" msgstr "" -#: js/PitchBlocks.js:256 -msgid "The Pitch number block is the value of the pitch of the note currently being played." +#: js/blocks/RhythmBlocks.js:591 +#: js/blocks/RhythmBlocks.js:671 +#.TRANS: a dotted note is played for 1.5x its value, e.g., 1/8. --> 3/16 +msgid "dot" msgstr "" -#: js/PitchBlocks.js:329 -#: js/PitchBlocks.js:433 -#.TRANS: the current pitch expressed in Hertz -msgid "pitch in hertz" +#: js/blocks/RhythmBlocks.js:619 +#: js/turtleactions/RhythmActions.js:221 +msgid "An argument of -1 results in a note value of 0." msgstr "" -#: js/PitchBlocks.js:334 -msgid "The Pitch in Hertz block is the value in Hertz of the pitch of the note currently being played." +#: js/blocks/RhythmBlocks.js:661 +msgid "The Dot block extends the duration of a note by 50%." msgstr "" -#: js/PitchBlocks.js:367 -#: js/DictActions.js:87 -msgid "current pitch" +#: js/blocks/RhythmBlocks.js:663 +msgid "Eg a dotted quarter note will play for 3/8 (1/4 + 1/8) of a beat." msgstr "" -#: js/PitchBlocks.js:373 -msgid "The Current Pitch block is used with the Pitch Converter block. In the example above, current pitch, sol 4, is displayed as 392 hertz." +#: js/blocks/RhythmBlocks.js:765 +#.TRANS: Japanese only: note value block for drum +msgid "note value drum" msgstr "" -#: js/PitchBlocks.js:410 -msgid "This block converts the pitch value of the last note played into different formats such as hertz, letter name, pitch number, et al." +#: js/blocks/RhythmBlocks.js:829 +msgid "392 hertz" msgstr "" -#: js/PitchBlocks.js:434 -msgid "alphabet" +#: js/blocks/RhythmBlocks.js:1119 +msgid "The Note block is a container for one or more Pitch blocks." msgstr "" -#: js/PitchBlocks.js:436 -#.TRANS: Translate as "alphabet class" -msgid "letter class" +#: js/blocks/RhythmBlocks.js:1121 +msgid "The Note block specifies the duration (note value) of its contents." msgstr "" -#: js/PitchBlocks.js:437 -msgid "solfege class" +#: js/blocks/RhythmBlocks.js:1128 +#: js/blocks/PitchBlocks.js:974 +#: js/blocks/PitchBlocks.js:1007 +#: js/blocks/ProgramBlocks.js:1186 +#: js/blocks/ProgramBlocks.js:1227 +#: js/widgets/status.js:190 +#: js/widgets/temperament.js:464 +#: js/widgets/temperament.js:486 +#: js/widgets/temperament.js:496 +#: js/widgets/temperament.js:617 +#: plugins/rodi.rtp:192 +#.TRANS: a musical note consisting of pitch and duration +msgid "note" msgstr "" -#: js/PitchBlocks.js:438 -msgid "staff y" +#: js/blocks/RhythmBlocks.js:1130 +msgid "value2" msgstr "" -#: js/PitchBlocks.js:439 -msgid "solfege syllable" +#: js/blocks/RhythmBlocks.js:1200 +msgid "define frequency" msgstr "" -#: js/PitchBlocks.js:440 -msgid "pitch class" +#: js/blocks/RhythmBlocks.js:1218 +#: js/widgets/temperament.js:787 +#: js/widgets/temperament.js:1587 +msgid "octave space" msgstr "" -#: js/PitchBlocks.js:441 -msgid "scalar class" +#: js/blocks/SensorsBlocks.js:36 +msgid "The Input block prompts for keyboard input." msgstr "" -#: js/PitchBlocks.js:443 -msgid "nth degree" +#: js/blocks/SensorsBlocks.js:46 +msgid "input" msgstr "" -#: js/PitchBlocks.js:444 -msgid "pitch to shade" +#: js/blocks/SensorsBlocks.js:64 +msgid "Input a value" msgstr "" -#: js/PitchBlocks.js:445 -msgid "pitch to color" +#: js/blocks/SensorsBlocks.js:126 +msgid "input value" msgstr "" -#: js/PitchBlocks.js:629 -#: js/musickeyboard.js:565 -#.TRANS: MIDI is a technical standard for electronic music -msgid "MIDI" +#: js/blocks/SensorsBlocks.js:131 +msgid "The Input-value block stores the input." msgstr "" -#: js/PitchBlocks.js:642 -#.TRANS: set an offset associated with the numeric piano keyboard mapping -msgid "set pitch number offset" +#: js/blocks/SensorsBlocks.js:238 +msgid "loudness" msgstr "" -#: js/PitchBlocks.js:645 -msgid "The Set pitch number offset block is used to set the offset for mapping pitch numbers to pitch and octave." +#: js/blocks/SensorsBlocks.js:245 +msgid "The Loudness block returns the volume detected by the microphone." msgstr "" -#: js/PitchBlocks.js:679 -#.TRANS: convert piano key number (1-88) to pitch -msgid "number to pitch" +#: js/blocks/SensorsBlocks.js:300 +msgid "click" msgstr "" -#: js/PitchBlocks.js:682 -msgid "The Number to pitch block will convert a pitch number to a pich name." +#: js/blocks/SensorsBlocks.js:306 +msgid "The Click block triggers an event if a mouse has been clicked." msgstr "" -#: js/PitchBlocks.js:715 -#.TRANS: convert piano key number (1-88) to octave -msgid "number to octave" +#: js/blocks/SensorsBlocks.js:313 +msgid "The Click block triggers an event if a turtle has been clicked." msgstr "" -#: js/PitchBlocks.js:717 -msgid "The Number to octave block will convert a pitch number to an octave." +#: js/blocks/SensorsBlocks.js:342 +msgid "cursor over" msgstr "" -#: js/PitchBlocks.js:726 -msgid "y to pitch" +#: js/blocks/SensorsBlocks.js:387 +msgid "cursor out" msgstr "" -#: js/PitchBlocks.js:729 -msgid "Y to pitch block will convert a staff y position to corresponding pitch notation." +#: js/blocks/SensorsBlocks.js:433 +msgid "cursor button down" msgstr "" -#: js/PitchBlocks.js:841 -msgid "accidental selector" +#: js/blocks/SensorsBlocks.js:477 +msgid "cursor button up" msgstr "" -#: js/PitchBlocks.js:844 -msgid "The Accidental selector block is used to choose between double-sharp, sharp, natural, flat, and double-flat." +#: js/blocks/SensorsBlocks.js:521 +#: js/blocks/PenBlocks.js:48 +#: plugins/rodi.rtp:219 +msgid "blue" msgstr "" -#: js/PitchBlocks.js:858 -msgid "Pitch can be specified in terms of ni dha pa ma ga re sa." +#: js/blocks/SensorsBlocks.js:577 +#: js/blocks/PenBlocks.js:64 +#: plugins/rodi.rtp:218 +msgid "green" msgstr "" -#: js/PitchBlocks.js:872 -msgid "Pitch can be specified in terms of C D E F G A B." +#: js/blocks/SensorsBlocks.js:633 +#: js/blocks/PenBlocks.js:112 +#: plugins/rodi.rtp:217 +msgid "red" msgstr "" -#: js/PitchBlocks.js:883 -msgid "solfege" +#: js/blocks/SensorsBlocks.js:638 +msgid "The Get red block returns the red component of the pixel under the mouse." msgstr "" -#: js/PitchBlocks.js:886 -msgid "Pitch can be specified in terms of do re mi fa sol la ti." +#: js/blocks/SensorsBlocks.js:644 +msgid "The Get red block returns the red component of the pixel under the turtle." msgstr "" -#: js/PitchBlocks.js:920 -msgid "The Invert block rotates any contained notes around a target note." +#: js/blocks/SensorsBlocks.js:685 +#: plugins/rodi.rtp:216 +msgid "pixel color" msgstr "" -#: js/PitchBlocks.js:927 -#.TRANS: pitch inversion rotates a pitch around another pitch -msgid "invert" +#: js/blocks/SensorsBlocks.js:690 +msgid "The Get pixel block returns the color of the pixel under the mouse." msgstr "" -#: js/PitchBlocks.js:929 -#: js/PitchBlocks.js:935 -#: js/PitchActions.js:727 -#: js/musicutils.js:726 -#: js/musicutils.js:902 -#.TRANS: invert based on even or odd number or musical scale -#.TRANS: even numbers -msgid "even" +#: js/blocks/SensorsBlocks.js:696 +msgid "The Get pixel block returns the color of the pixel under the turtle." msgstr "" -#: js/PitchBlocks.js:935 -#: js/PitchActions.js:729 -#: js/musicutils.js:728 -#: js/musicutils.js:903 -#.TRANS: odd numbers -msgid "odd" +#: js/blocks/SensorsBlocks.js:758 +msgid "time" +msgstr "wakati" + +#: js/blocks/SensorsBlocks.js:804 +msgid "cursor y" msgstr "" -#: js/PitchBlocks.js:935 -#: js/PitchActions.js:731 -#: js/musicutils.js:729 -#: js/musicutils.js:904 -msgid "scalar" +#: js/blocks/SensorsBlocks.js:809 +msgid "The Cursor Y block returns the vertical position of the mouse." msgstr "" -#: js/PitchBlocks.js:966 -#.TRANS: pitch inversion rotates a pitch around another pitch (odd number) -msgid "invert (odd)" +#: js/blocks/SensorsBlocks.js:845 +msgid "cursor x" msgstr "" -#: js/PitchBlocks.js:999 -#.TRANS: pitch inversion rotates a pitch around another pitch (even number) -msgid "invert (even)" +#: js/blocks/SensorsBlocks.js:850 +msgid "The Cursor X block returns the horizontal position of the mouse." msgstr "" -#: js/PitchBlocks.js:1020 -#.TRANS: register is the octave of the current pitch -msgid "register" +#: js/blocks/SensorsBlocks.js:886 +msgid "mouse button" msgstr "" -#: js/PitchBlocks.js:1024 -msgid "The Register block provides an easy way to modify the register (octave) of the notes that follow it." +#: js/blocks/SensorsBlocks.js:888 +msgid "The Mouse-button block returns True if the mouse button is pressed." msgstr "" -#: js/PitchBlocks.js:1074 -msgid "The Semi-tone transposition block will shift the pitches contained inside Note blocks up (or down) by half steps." +#: js/blocks/SensorsBlocks.js:934 +msgid "to ASCII" msgstr "" -#: js/PitchBlocks.js:1076 -msgid "In the example shown above, sol is shifted up to sol#." +#: js/blocks/SensorsBlocks.js:938 +msgid "The To ASCII block converts numbers to letters." msgstr "" -#: js/PitchBlocks.js:1082 -#.TRANS: adjust the amount of shift (up or down) of a pitch -msgid "semi-tone transpose" +#: js/blocks/SensorsBlocks.js:1005 +msgid "The Keyboard block returns computer keyboard input." msgstr "" -#: js/PitchBlocks.js:1115 -msgid "The Transpose by Ratio block will shift the pitches contained inside Note blocks up (or down) by a ratio" +#: js/blocks/RhythmBlockPaletteBlocks.js:50 +#: js/blocks/RhythmBlockPaletteBlocks.js:233 +#.TRANS: rhythm block +#.TRANS: translate "rhythm1" as rhythm +msgid "rhythm1" msgstr "" -#: js/PitchBlocks.js:1121 -#.TRANS: adjust the amount of shift (up or down) of a pitch -msgid "transpose by ratio" +#: js/blocks/RhythmBlockPaletteBlocks.js:70 +#: js/blocks/RhythmBlockPaletteBlocks.js:252 +#: js/blocks/RhythmBlockPaletteBlocks.js:485 +#: js/blocks/RhythmBlockPaletteBlocks.js:554 +#: js/blocks/RhythmBlockPaletteBlocks.js:875 +msgid "number of notes" msgstr "" -#: js/PitchBlocks.js:1204 -#.TRANS: down sixth means the note is five scale degrees below current note -msgid "down sixth" +#: js/blocks/RhythmBlockPaletteBlocks.js:126 +msgid "polyphonic rhythm" msgstr "" -#: js/PitchBlocks.js:1223 -#.TRANS: down third means the note is two scale degrees below current note -msgid "down third" +#: js/blocks/RhythmBlockPaletteBlocks.js:219 +msgid "The Rhythm block is used to generate rhythm patterns." msgstr "" -#: js/PitchBlocks.js:1242 -#.TRANS: seventh means the note is the six scale degrees above current note -msgid "seventh" +#: js/blocks/RhythmBlockPaletteBlocks.js:280 +msgid "1/64 note" msgstr "" -#: js/PitchBlocks.js:1261 -#.TRANS: sixth means the note is the five scale degrees above current note -msgid "sixth" +#: js/blocks/RhythmBlockPaletteBlocks.js:304 +msgid "1/32 note" msgstr "" -#: js/PitchBlocks.js:1280 -#.TRANS: fifth means the note is the four scale degrees above current note -msgid "fifth" +#: js/blocks/RhythmBlockPaletteBlocks.js:332 +msgid "1/16 note" msgstr "" -#: js/PitchBlocks.js:1300 -#.TRANS: fourth means the note is three scale degrees above current note -msgid "fourth" +#: js/blocks/RhythmBlockPaletteBlocks.js:360 +msgid "eighth note" msgstr "" -#: js/PitchBlocks.js:1319 -#.TRANS: third means the note is two scale degrees above current note -msgid "third" +#: js/blocks/RhythmBlockPaletteBlocks.js:388 +msgid "quarter note" msgstr "" -#: js/PitchBlocks.js:1338 -#.TRANS: second means the note is one scale degree above current note -msgid "second" +#: js/blocks/RhythmBlockPaletteBlocks.js:416 +msgid "half note" msgstr "" -#: js/PitchBlocks.js:1379 -msgid "The Scalar transposition block will shift the pitches contained inside Note blocks up (or down) the scale." +#: js/blocks/RhythmBlockPaletteBlocks.js:444 +msgid "whole note" msgstr "" -#: js/PitchBlocks.js:1381 -msgid "In the example shown above, sol is shifted up to la." +#: js/blocks/RhythmBlockPaletteBlocks.js:482 +#: js/blocks/RhythmBlockPaletteBlocks.js:551 +#: js/blocks/RhythmBlockPaletteBlocks.js:602 +#.TRANS: A tuplet is a note value divided into irregular time values. +msgid "tuplet" msgstr "" -#: js/PitchBlocks.js:1388 -#.TRANS: adjust the amount of shift (up or down) of a pitch by musical scale (scalar) steps -msgid "scalar transpose" +#: js/blocks/RhythmBlockPaletteBlocks.js:768 +msgid "septuplet" msgstr "" -#: js/PitchBlocks.js:1423 -msgid "The Accidental block is used to create sharps and flats" +#: js/blocks/RhythmBlockPaletteBlocks.js:796 +msgid "quintuplet" msgstr "" -#: js/PitchBlocks.js:1430 -#.TRANS: An accidental is a modification to a pitch, e.g., sharp or flat. -msgid "accidental override" +#: js/blocks/RhythmBlockPaletteBlocks.js:824 +msgid "triplet" msgstr "" -#: js/PitchBlocks.js:1543 -msgid "The Hertz block (in combination with a Number block) will play a sound at the specified frequency." +#: js/blocks/RhythmBlockPaletteBlocks.js:851 +msgid "simple tuplet" msgstr "" -#: js/PitchBlocks.js:1633 -msgid "The Pitch Number block will play a pitch associated by its number, e.g. 0 for C and 7 for G." +#: js/blocks/RhythmBlockPaletteBlocks.js:861 +msgid "Tuplets are a collection of notes that get scaled to a specific duration." msgstr "" -#: js/PitchBlocks.js:1665 -#: js/PitchBlocks.js:1707 -#.TRANS: a numeric mapping of the notes in an octave based on the musical mode -#.TRANS: a numeric mapping of the notes in an octave based on the musical mode -msgid "nth modal pitch" +#: js/blocks/DrumBlocks.js:59 +msgid "The Noise name block is used to select a noise synthesizer." msgstr "" -#: js/PitchBlocks.js:1668 -msgid "n^th Modal Pitch takes the pattern of pitches in semitones for a mode and makes each point a degree of the mode," +#: js/blocks/DrumBlocks.js:102 +msgid "The Drum name block is used to select a drum." msgstr "" -#: js/PitchBlocks.js:1670 -msgid "starting from 1 and regardless of tonal framework (i.e. not always 8 notes in the octave)" +#: js/blocks/DrumBlocks.js:146 +msgid "The Effects name block is used to select a sound effect." msgstr "" -#: js/PitchBlocks.js:1711 -msgid "N^th Modal Pitch takes a number as an input as the n^th degree for the given mode. 0 is the first position, 1 is the second, -1 is the note before the first etc." +#: js/blocks/DrumBlocks.js:163 +msgid "noise" msgstr "" -#: js/PitchBlocks.js:1713 -msgid "The pitches change according to the mode specified without any need for respellings." +#: js/blocks/DrumBlocks.js:177 +msgid "The Play noise block will generate white, pink, or brown noise." msgstr "" -#: js/PitchBlocks.js:1752 -msgid "Scale Degree is a common convention in music. Scale Degree offers seven possible positions in the scale (1-7) and can be modified via accidentals." +#: js/blocks/DrumBlocks.js:317 +msgid "Replace every instance of a pitch with a drum sound." msgstr "" -#: js/PitchBlocks.js:1754 -msgid "Scale Degree 1 is always the first pitch in a given scale, regardless of octave." +#: js/blocks/DrumBlocks.js:328 +#.TRANS: map a pitch to a drum sound +msgid "map pitch to drum" msgstr "" -#: js/PitchBlocks.js:1776 -#.TRANS: step some number of notes in current musical scale -msgid "scalar step" +#: js/blocks/DrumBlocks.js:395 +msgid "In the example above, a kick drum sound will be played instead of sol." msgstr "" -#: js/PitchBlocks.js:1781 -msgid "The Scalar Step block (in combination with a Number block) will play the next pitch in a scale," +#: js/blocks/DrumBlocks.js:407 +#.TRANS: set the current drum sound for playback +msgid "set drum" msgstr "" -#: js/PitchBlocks.js:1783 -msgid "eg if the last note played was sol, Scalar Step 1 will play la." +#: js/blocks/DrumBlocks.js:451 +msgid "sound effect" msgstr "" -#: js/PitchBlocks.js:1818 -msgid "The Pitch block specifies the pitch name and octave of a note that together determine the frequency of the note." +#: js/blocks/DrumBlocks.js:489 +msgid "You can use multiple Drum blocks within a Note block." msgstr "" -#: js/GraphicsBlocks.js:46 -#: js/DictActions.js:77 -#: js/DictActions.js:155 -#: js/DictActions.js:189 +#: js/blocks/GraphicsBlocks.js:46 +#: js/turtleactions/DictActions.js:77 +#: js/turtleactions/DictActions.js:144 +#: js/turtleactions/DictActions.js:173 msgid "heading" msgstr "" -#: js/GraphicsBlocks.js:56 +#: js/blocks/GraphicsBlocks.js:56 msgid "The Heading block returns the orientation of the mouse." msgstr "" -#: js/GraphicsBlocks.js:62 +#: js/blocks/GraphicsBlocks.js:62 msgid "The Heading block returns the orientation of the turtle." msgstr "" -#: js/GraphicsBlocks.js:133 +#: js/blocks/GraphicsBlocks.js:133 msgid "The Y block returns the vertical position of the mouse." msgstr "" -#: js/GraphicsBlocks.js:140 +#: js/blocks/GraphicsBlocks.js:140 msgid "The Y block returns the vertical position of the turtle." msgstr "" -#: js/GraphicsBlocks.js:149 +#: js/blocks/GraphicsBlocks.js:149 msgid "y3" msgstr "" -#: js/GraphicsBlocks.js:219 +#: js/blocks/GraphicsBlocks.js:219 msgid "The X block returns the horizontal position of the mouse." msgstr "" -#: js/GraphicsBlocks.js:226 +#: js/blocks/GraphicsBlocks.js:226 msgid "The X block returns the horizontal position of the turtle." msgstr "" -#: js/GraphicsBlocks.js:235 +#: js/blocks/GraphicsBlocks.js:235 msgid "x3" msgstr "" -#: js/GraphicsBlocks.js:295 +#: js/blocks/GraphicsBlocks.js:295 msgid "scroll xy" msgstr "" -#: js/GraphicsBlocks.js:303 +#: js/blocks/GraphicsBlocks.js:303 msgid "The Scroll XY block moves the canvas." msgstr "" -#: js/GraphicsBlocks.js:313 +#: js/blocks/GraphicsBlocks.js:313 msgid "x2" msgstr "" -#: js/GraphicsBlocks.js:313 +#: js/blocks/GraphicsBlocks.js:313 msgid "y2" msgstr "" -#: js/GraphicsBlocks.js:373 -#: js/temperament.js:213 -#: js/temperament.js:241 +#: js/blocks/GraphicsBlocks.js:373 +#: js/widgets/temperament.js:319 +#: js/widgets/temperament.js:347 msgid "clear" msgstr "" -#: js/GraphicsBlocks.js:426 +#: js/blocks/GraphicsBlocks.js:426 msgid "The Control-point 2 block sets the second control point for the Bezier curve." msgstr "" -#: js/GraphicsBlocks.js:433 +#: js/blocks/GraphicsBlocks.js:433 msgid "control point 2" msgstr "" -#: js/GraphicsBlocks.js:436 -#: js/GraphicsBlocks.js:487 -#: js/GraphicsBlocks.js:534 -#: js/GraphicsBlocks.js:750 +#: js/blocks/GraphicsBlocks.js:436 +#: js/blocks/GraphicsBlocks.js:487 +#: js/blocks/GraphicsBlocks.js:534 +#: js/blocks/GraphicsBlocks.js:750 msgid "x1" msgstr "" -#: js/GraphicsBlocks.js:436 -#: js/GraphicsBlocks.js:487 -#: js/GraphicsBlocks.js:534 -#: js/GraphicsBlocks.js:750 +#: js/blocks/GraphicsBlocks.js:436 +#: js/blocks/GraphicsBlocks.js:487 +#: js/blocks/GraphicsBlocks.js:534 +#: js/blocks/GraphicsBlocks.js:750 msgid "y1" msgstr "" -#: js/GraphicsBlocks.js:477 +#: js/blocks/GraphicsBlocks.js:477 msgid "The Control-point 1 block sets the first control point for the Bezier curve." msgstr "" -#: js/GraphicsBlocks.js:484 +#: js/blocks/GraphicsBlocks.js:484 msgid "control point 1" msgstr "" -#: js/GraphicsBlocks.js:527 +#: js/blocks/GraphicsBlocks.js:527 msgid "The Bezier block draws a Bezier curve." msgstr "" -#: js/GraphicsBlocks.js:531 +#: js/blocks/GraphicsBlocks.js:531 msgid "bezier" msgstr "" -#: js/GraphicsBlocks.js:592 +#: js/blocks/GraphicsBlocks.js:592 msgid "The Arc block moves the turtle in an arc." msgstr "" -#: js/GraphicsBlocks.js:600 +#: js/blocks/GraphicsBlocks.js:600 msgid "arc" msgstr "" -#: js/GraphicsBlocks.js:603 +#: js/blocks/GraphicsBlocks.js:603 msgid "angle" msgstr "" -#: js/GraphicsBlocks.js:603 +#: js/blocks/GraphicsBlocks.js:603 msgid "radius" msgstr "" -#: js/GraphicsBlocks.js:620 -#: js/GraphicsBlocks.js:767 -#: js/GraphicsBlocks.js:1010 -#: js/GraphicsBlocks.js:1093 +#: js/blocks/GraphicsBlocks.js:620 +#: js/blocks/GraphicsBlocks.js:767 +#: js/blocks/GraphicsBlocks.js:1010 +#: js/blocks/GraphicsBlocks.js:1093 msgid "Value must be within -5000 to 5000 when Wrap Mode is off." msgstr "" -#: js/GraphicsBlocks.js:622 -#: js/GraphicsBlocks.js:769 -#: js/GraphicsBlocks.js:1012 -#: js/GraphicsBlocks.js:1095 +#: js/blocks/GraphicsBlocks.js:622 +#: js/blocks/GraphicsBlocks.js:769 +#: js/blocks/GraphicsBlocks.js:1012 +#: js/blocks/GraphicsBlocks.js:1095 msgid "Value must be within -20000 to 20000 when Wrap Mode is on." msgstr "" -#: js/GraphicsBlocks.js:660 +#: js/blocks/GraphicsBlocks.js:660 msgid "set heading" msgstr "" -#: js/GraphicsBlocks.js:673 +#: js/blocks/GraphicsBlocks.js:673 msgid "The Set heading block sets the heading of the turtle." msgstr "" -#: js/GraphicsBlocks.js:733 +#: js/blocks/GraphicsBlocks.js:733 msgid "The Set XY block moves the mouse to a specific position on the screen." msgstr "" -#: js/GraphicsBlocks.js:739 +#: js/blocks/GraphicsBlocks.js:739 msgid "The Set XY block moves the turtle to a specific position on the screen." msgstr "" -#: js/GraphicsBlocks.js:747 +#: js/blocks/GraphicsBlocks.js:747 msgid "set xy" msgstr "" -#: js/GraphicsBlocks.js:819 +#: js/blocks/GraphicsBlocks.js:819 msgid "The Right block turns the mouse to the right." msgstr "" -#: js/GraphicsBlocks.js:826 +#: js/blocks/GraphicsBlocks.js:826 msgid "The Right block turns the turtle to the right." msgstr "" -#: js/GraphicsBlocks.js:835 +#: js/blocks/GraphicsBlocks.js:835 msgid "right1" msgstr "" -#: js/GraphicsBlocks.js:835 +#: js/blocks/GraphicsBlocks.js:835 #: plugins/rodi.rtp:77 #: plugins/rodi.rtp:340 #: plugins/rodi.rtp:375 msgid "right" msgstr "haki" -#: js/GraphicsBlocks.js:899 +#: js/blocks/GraphicsBlocks.js:899 msgid "The Left block turns the mouse to the left." msgstr "" -#: js/GraphicsBlocks.js:906 +#: js/blocks/GraphicsBlocks.js:906 msgid "The Left block turns the turtle to the left." msgstr "" -#: js/GraphicsBlocks.js:915 +#: js/blocks/GraphicsBlocks.js:915 msgid "left1" msgstr "" -#: js/GraphicsBlocks.js:915 +#: js/blocks/GraphicsBlocks.js:915 #: plugins/rodi.rtp:79 #: plugins/rodi.rtp:339 #: plugins/rodi.rtp:362 msgid "left" msgstr "kushoto" -#: js/GraphicsBlocks.js:967 -#: js/temperament.js:734 -#: js/temperament.js:933 +#: js/blocks/GraphicsBlocks.js:967 +#: js/widgets/temperament.js:875 +#: js/widgets/temperament.js:1078 #: plugins/rodi.rtp:69 #: plugins/rodi.rtp:387 msgid "back" msgstr "" -#: js/GraphicsBlocks.js:976 +#: js/blocks/GraphicsBlocks.js:976 msgid "The Back block moves the mouse backward." msgstr "" -#: js/GraphicsBlocks.js:983 +#: js/blocks/GraphicsBlocks.js:983 msgid "The Back block moves the turtle backward." msgstr "" -#: js/GraphicsBlocks.js:1050 +#: js/blocks/GraphicsBlocks.js:1050 #: plugins/rodi.rtp:71 #: plugins/rodi.rtp:400 msgid "forward" msgstr "mbele" -#: js/GraphicsBlocks.js:1059 +#: js/blocks/GraphicsBlocks.js:1059 msgid "The Forward block moves the mouse forward." msgstr "" -#: js/GraphicsBlocks.js:1066 +#: js/blocks/GraphicsBlocks.js:1066 msgid "The Forward block moves the turtle forward." msgstr "" -#: js/GraphicsBlocks.js:1154 -#: js/GraphicsBlocks.js:1172 +#: js/blocks/GraphicsBlocks.js:1154 +#: js/blocks/GraphicsBlocks.js:1172 msgid "wrap" msgstr "" -#: js/OrnamentBlocks.js:32 -msgid "staccato factor" -msgstr "" - -#: js/OrnamentBlocks.js:108 -msgid "slur factor" -msgstr "" - -#: js/OrnamentBlocks.js:217 -#: js/OrnamentBlocks.js:309 -#.TRANS: the neighbor refers to a neighboring note, e.g., D is a neighbor of C -msgid "neighbor" -msgstr "" - -#: js/OrnamentBlocks.js:293 -msgid "The Neighbor block rapidly switches between neighboring pitches." -msgstr "" - -#: js/OrnamentBlocks.js:364 -msgid "glide" -msgstr "" - -#: js/OrnamentBlocks.js:479 -#: js/OrnamentBlocks.js:643 -msgid "slur" -msgstr "" - -#: js/OrnamentBlocks.js:558 -#: js/OrnamentBlocks.js:710 -#.TRANS: play each note sharply detached from the others -msgid "staccato" -msgstr "" - -#: js/PenBlocks.js:24 +#: js/blocks/PenBlocks.js:30 msgid "purple" msgstr "" -#: js/PenBlocks.js:37 -#: js/SensorsBlocks.js:521 -#: plugins/rodi.rtp:219 -msgid "blue" -msgstr "" - -#: js/PenBlocks.js:50 -#: js/SensorsBlocks.js:577 -#: plugins/rodi.rtp:218 -msgid "green" -msgstr "" - -#: js/PenBlocks.js:63 +#: js/blocks/PenBlocks.js:80 msgid "yellow" msgstr "" -#: js/PenBlocks.js:76 +#: js/blocks/PenBlocks.js:96 #: plugins/nutrition.rtp:164 msgid "orange" msgstr "" -#: js/PenBlocks.js:89 -#: js/SensorsBlocks.js:633 -#: plugins/rodi.rtp:217 -msgid "red" -msgstr "" - -#: js/PenBlocks.js:102 +#: js/blocks/PenBlocks.js:128 msgid "white" msgstr "" -#: js/PenBlocks.js:115 +#: js/blocks/PenBlocks.js:144 msgid "black" msgstr "" -#: js/PenBlocks.js:128 +#: js/blocks/PenBlocks.js:163 msgid "begin fill" msgstr "" -#: js/PenBlocks.js:143 +#: js/blocks/PenBlocks.js:190 msgid "end fill" msgstr "" -#: js/PenBlocks.js:159 -#: js/PenBlocks.js:386 +#: js/blocks/PenBlocks.js:212 +#: js/blocks/PenBlocks.js:560 #.TRANS: set the background color msgid "background" msgstr "" -#: js/PenBlocks.js:206 -#: js/DictActions.js:71 -#: js/DictActions.js:149 -#: js/DictActions.js:186 +#: js/blocks/PenBlocks.js:274 +#: js/turtleactions/DictActions.js:71 +#: js/turtleactions/DictActions.js:138 +#: js/turtleactions/DictActions.js:170 msgid "grey" msgstr "" -#: js/PenBlocks.js:210 +#: js/blocks/PenBlocks.js:282 msgid "The Grey block returns the current pen grey value." msgstr "" -#: js/PenBlocks.js:243 -#: js/DictActions.js:69 -#: js/DictActions.js:147 -#: js/DictActions.js:185 +#: js/blocks/PenBlocks.js:340 +#: js/turtleactions/DictActions.js:69 +#: js/turtleactions/DictActions.js:136 +#: js/turtleactions/DictActions.js:169 msgid "shade" msgstr "vuli" -#: js/PenBlocks.js:247 +#: js/blocks/PenBlocks.js:347 msgid "The Shade block returns the current pen shade value." msgstr "" -#: js/PenBlocks.js:280 -#: js/DictActions.js:67 -#: js/DictActions.js:145 -#: js/DictActions.js:184 +#: js/blocks/PenBlocks.js:405 +#: js/turtleactions/DictActions.js:67 +#: js/turtleactions/DictActions.js:134 +#: js/turtleactions/DictActions.js:168 msgid "color" msgstr "" -#: js/PenBlocks.js:285 +#: js/blocks/PenBlocks.js:415 msgid "The Color block returns the current pen color." msgstr "" -#: js/PenBlocks.js:318 -#: js/DictActions.js:73 -#: js/DictActions.js:151 -#: js/DictActions.js:187 +#: js/blocks/PenBlocks.js:470 +#: js/turtleactions/DictActions.js:73 +#: js/turtleactions/DictActions.js:140 +#: js/turtleactions/DictActions.js:171 msgid "pen size" msgstr "" -#: js/PenBlocks.js:322 +#: js/blocks/PenBlocks.js:474 msgid "The Pen size block returns the current pen size value." msgstr "" -#: js/PenBlocks.js:355 +#: js/blocks/PenBlocks.js:513 msgid "set font" msgstr "" -#: js/PenBlocks.js:358 +#: js/blocks/PenBlocks.js:518 msgid "The Set font block sets the font used by the Show block." msgstr "" -#: js/PenBlocks.js:391 +#: js/blocks/PenBlocks.js:567 msgid "The Background block sets the window background color." msgstr "" -#: js/PenBlocks.js:408 +#: js/blocks/PenBlocks.js:598 msgid "The Hollow line block creates a line with a hollow center." msgstr "" -#: js/PenBlocks.js:415 +#: js/blocks/PenBlocks.js:606 #.TRANS: draw a line logo has a hollow space down its center msgid "hollow line" msgstr "" -#: js/PenBlocks.js:462 +#: js/blocks/PenBlocks.js:675 msgid "The Fill block fills in a shape with a color." msgstr "" -#: js/PenBlocks.js:470 +#: js/blocks/PenBlocks.js:684 #.TRANS: fill in as a solid color msgid "fill" msgstr "" -#: js/PenBlocks.js:527 +#: js/blocks/PenBlocks.js:761 #.TRANS: raise up the pen so logo it does not draw when it is moved msgid "pen up" msgstr "" -#: js/PenBlocks.js:532 +#: js/blocks/PenBlocks.js:768 msgid "The Pen-up block raises the pen so that it does not draw." msgstr "" -#: js/PenBlocks.js:552 +#: js/blocks/PenBlocks.js:802 #.TRANS: put down the pen so logo it draws when it is moved msgid "pen down" msgstr "" -#: js/PenBlocks.js:557 +#: js/blocks/PenBlocks.js:810 msgid "The Pen-down block lowers the pen so that it draws." msgstr "" -#: js/PenBlocks.js:577 +#: js/blocks/PenBlocks.js:844 #.TRANS: set the width of the line drawn by the pen msgid "set pen size" msgstr "" -#: js/PenBlocks.js:583 +#: js/blocks/PenBlocks.js:854 msgid "The Set-pen-size block changes the size of the pen." msgstr "" -#: js/PenBlocks.js:623 +#: js/blocks/PenBlocks.js:913 #.TRANS: set degree of translucence of the pen color msgid "set translucency" msgstr "" -#: js/PenBlocks.js:627 +#: js/blocks/PenBlocks.js:921 msgid "The Set translucency block changes the opacity of the pen." msgstr "" -#: js/PenBlocks.js:668 +#: js/blocks/PenBlocks.js:981 msgid "set hue" msgstr "" -#: js/PenBlocks.js:672 +#: js/blocks/PenBlocks.js:989 msgid "The Set hue block changes the color of the pen." msgstr "" -#: js/PenBlocks.js:711 +#: js/blocks/PenBlocks.js:1047 msgid "set shade" msgstr "" -#: js/PenBlocks.js:717 +#: js/blocks/PenBlocks.js:1057 msgid "The Set-shade block changes the pen color from dark to light." msgstr "" -#: js/PenBlocks.js:757 +#: js/blocks/PenBlocks.js:1111 #.TRANS: set the level of vividness of the pen color msgid "set grey" msgstr "" -#: js/PenBlocks.js:761 +#: js/blocks/PenBlocks.js:1119 msgid "The Set grey block changes the vividness of the pen color." msgstr "" -#: js/PenBlocks.js:800 +#: js/blocks/PenBlocks.js:1172 msgid "set color" msgstr "" -#: js/PenBlocks.js:806 +#: js/blocks/PenBlocks.js:1182 msgid "The Set-color block changes the pen color." msgstr "" -#: js/VolumeBlocks.js:35 -msgid "synth volume" -msgstr "" - -#: js/VolumeBlocks.js:39 -msgid "The Synth volume block returns the current volume of the current synthesizer." -msgstr "" - -#: js/VolumeBlocks.js:47 -#: js/musicutils.js:730 -#: js/synthutils.js:56 -#.TRANS: musical instrument -msgid "piano" -msgstr "" - -#: js/VolumeBlocks.js:105 -msgid "master volume" -msgstr "" - -#: js/VolumeBlocks.js:109 -msgid "The Master volume block returns the master volume." -msgstr "" - -#: js/VolumeBlocks.js:355 -#: js/VolumeBlocks.js:524 -msgid "set synth volume" -msgstr "" - -#: js/VolumeBlocks.js:362 -#: js/VolumeBlocks.js:545 -msgid "synth" -msgstr "" - -#: js/VolumeBlocks.js:403 -#: js/VolumeBlocks.js:577 -#: js/VolumeBlocks.js:740 -#: js/VolumeActions.js:173 -msgid "Setting volume to 0." -msgstr "" - -#: js/VolumeBlocks.js:440 -msgid "Synth not found" -msgstr "" - -#: js/VolumeBlocks.js:494 -msgid "set drum volume" -msgstr "" - -#: js/VolumeBlocks.js:530 -msgid "The Set synth volume block will change the volume of a particular synth," -msgstr "" - -#: js/VolumeBlocks.js:532 -msgid "eg guitar violin snare drum etc." -msgstr "" - -#: js/VolumeBlocks.js:534 -msgid "The default volume is 50." -msgstr "" - -#: js/VolumeBlocks.js:536 -msgid "The range is 0 for silence to 100 for full volume." -msgstr "" - -#: js/VolumeBlocks.js:597 -msgid "set panning" -msgstr "" - -#: js/VolumeBlocks.js:603 -msgid "The Set Panning block sets the panning for all synthesizers." -msgstr "" - -#: js/VolumeBlocks.js:625 -msgid "Warning: Sound is coming out from only the left or right side." -msgstr "" - -#: js/VolumeBlocks.js:647 -#: js/VolumeBlocks.js:695 -msgid "set master volume" -msgstr "" - -#: js/VolumeBlocks.js:653 -msgid "The Set master volume block sets the volume for all synthesizers." -msgstr "" - -#: js/VolumeBlocks.js:784 -msgid "The Set relative volume block changes the volume of the contained notes." -msgstr "" - -#: js/VolumeBlocks.js:791 -msgid "set relative volume" -msgstr "" - -#: js/VolumeBlocks.js:857 -msgid "decrescendo" -msgstr "" - -#: js/VolumeBlocks.js:921 -msgid "crescendo" -msgstr "" - -#: js/ToneBlocks.js:34 -msgid "oscillator" -msgstr "" - -#: js/ToneBlocks.js:44 -#: js/timbre.js:1562 -#.TRANS: Partials refers to the number of sine waves combined into the sound. -msgid "partials" -msgstr "" - -#: js/ToneBlocks.js:76 -msgid "You are adding multiple oscillator blocks." -msgstr "" - -#: js/ToneBlocks.js:144 -#: js/timbre.js:1225 -#.TRANS: a duo synthesizer combines a synth with a sequencer -msgid "duo synth" -msgstr "" - -#: js/ToneBlocks.js:149 -msgid "The Duo synth block is a duo-frequency modulator used to define a timbre." -msgstr "" - -#: js/ToneBlocks.js:157 -#: js/timbre.js:1476 -msgid "vibrato rate" -msgstr "" - -#: js/ToneBlocks.js:157 -msgid "vibrato intensity" -msgstr "" - -#: js/ToneBlocks.js:185 -#: js/timbre.js:1221 -#.TRANS: AM (amplitude modulation) synthesizer -msgid "AM synth" -msgstr "" - -#: js/ToneBlocks.js:189 -msgid "The AM synth block is an amplitude modulator used to define a timbre." -msgstr "" - -#: js/ToneBlocks.js:224 -#: js/timbre.js:1223 -#.TRANS: FM (frequency modulation) synthesizer -msgid "FM synth" +#: js/blocks/PitchBlocks.js:141 +#.TRANS: musical transposition (adjustment of pitch up or down) +msgid "transposition" msgstr "" -#: js/ToneBlocks.js:228 -msgid "The FM synth block is a frequency modulator used to define a timbre." +#: js/blocks/PitchBlocks.js:168 +#.TRANS: step down one note in current musical scale +msgid "scalar step down" msgstr "" -#: js/ToneBlocks.js:262 -msgid "partial" +#: js/blocks/PitchBlocks.js:172 +msgid "The Scalar step down block returns the number of semi-tones down to the previous note in the current key and mode." msgstr "" -#: js/ToneBlocks.js:265 -msgid "The Partial block is used to specify a weight for a specific partial harmonic." +#: js/blocks/PitchBlocks.js:190 +#.TRANS: step up one note in current musical scale +msgid "scalar step up" msgstr "" -#: js/ToneBlocks.js:284 -#.TRANS: partials are weighted components in a harmonic series -msgid "Partial weight must be between 0 and 1." +#: js/blocks/PitchBlocks.js:194 +msgid "The Scalar step up block returns the number of semi-tones up to the next note in the current key and mode." msgstr "" -#: js/ToneBlocks.js:297 -#.TRANS: partials are weighted components in a harmonic series -msgid "Partial block should be used inside of a Weighted-partials block." +#: js/blocks/PitchBlocks.js:212 +#.TRANS: the change measured in half-steps between the current pitch and the previous pitch +msgid "change in pitch" msgstr "" -#: js/ToneBlocks.js:325 -#.TRANS: partials are weighted components in a harmonic series -msgid "weighted partials" +#: js/blocks/PitchBlocks.js:216 +msgid "The Change in pitch block is the difference (in half steps) between the current pitch being played and the previous pitch played." msgstr "" -#: js/ToneBlocks.js:383 -msgid "The Harmonic block will add harmonics to the contained notes." +#: js/blocks/PitchBlocks.js:243 +#.TRANS: the change measured in scale-steps between the current pitch and the previous pitch +msgid "scalar change in pitch" msgstr "" -#: js/ToneBlocks.js:390 -#.TRANS: A harmonic is an overtone. -msgid "harmonic" +#: js/blocks/PitchBlocks.js:250 +#: js/blocks/PitchBlocks.js:432 +#: js/blocks/PitchBlocks.js:1667 +#: js/turtleactions/DictActions.js:89 +#: js/widgets/temperament.js:610 +#: js/widgets/temperament.js:614 +#: js/widgets/temperament.js:855 +#.TRANS: convert current note to piano key (1-88) +#.TRANS: a mapping of pitch to the 88 piano keys +msgid "pitch number" msgstr "" -#: js/ToneBlocks.js:431 -msgid "The Distortion block adds distortion to the pitch." +#: js/blocks/PitchBlocks.js:256 +msgid "The Pitch number block is the value of the pitch of the note currently being played." msgstr "" -#: js/ToneBlocks.js:438 -#: js/timbre.js:2100 -#.TRANS: distortion is an alteration in the sound -msgid "distortion" +#: js/blocks/PitchBlocks.js:329 +#: js/blocks/PitchBlocks.js:433 +#.TRANS: the current pitch expressed in Hertz +msgid "pitch in hertz" msgstr "" -#: js/ToneBlocks.js:487 -msgid "The Tremolo block adds a wavering effect." +#: js/blocks/PitchBlocks.js:334 +msgid "The Pitch in Hertz block is the value in Hertz of the pitch of the note currently being played." msgstr "" -#: js/ToneBlocks.js:495 -#: js/timbre.js:2092 -#.TRANS: a wavering effect in a musical tone -msgid "tremolo" +#: js/blocks/PitchBlocks.js:367 +#: js/turtleactions/DictActions.js:87 +msgid "current pitch" msgstr "" -#: js/ToneBlocks.js:500 -#: js/ToneBlocks.js:569 -#: js/ToneBlocks.js:630 -#: js/ToneBlocks.js:689 -#: js/timbre.js:2134 -#: js/timbre.js:2222 -#: js/timbre.js:2317 -#: js/timbre.js:2419 -#.TRANS: rate at which tremolo wavers -msgid "rate" +#: js/blocks/PitchBlocks.js:373 +msgid "The Current Pitch block is used with the Pitch Converter block. In the example above, current pitch, sol 4, is displayed as 392 hertz." msgstr "" -#: js/ToneBlocks.js:502 -#: js/ToneBlocks.js:630 -#: js/timbre.js:2137 -#: js/timbre.js:2328 -#.TRANS: amplitude of tremolo waver -msgid "depth" +#: js/blocks/PitchBlocks.js:410 +msgid "This block converts the pitch value of the last note played into different formats such as hertz, letter name, pitch number, et al." msgstr "" -#: js/ToneBlocks.js:559 -msgid "The Phaser block adds a sweeping sound." +#: js/blocks/PitchBlocks.js:434 +msgid "alphabet" msgstr "" -#: js/ToneBlocks.js:566 -#: js/timbre.js:2098 -#.TRANS: alter the phase of the sound -msgid "phaser" +#: js/blocks/PitchBlocks.js:436 +#.TRANS: Translate as "alphabet class" +msgid "letter class" msgstr "" -#: js/ToneBlocks.js:569 -#: js/timbre.js:2422 -msgid "octaves" +#: js/blocks/PitchBlocks.js:437 +msgid "solfege class" msgstr "" -#: js/ToneBlocks.js:569 -#: js/timbre.js:2425 -msgid "base frequency" +#: js/blocks/PitchBlocks.js:438 +msgid "staff y" msgstr "" -#: js/ToneBlocks.js:619 -msgid "The Chorus block adds a chorus effect." +#: js/blocks/PitchBlocks.js:439 +msgid "solfege syllable" msgstr "" -#: js/ToneBlocks.js:627 -#: js/timbre.js:2096 -#.TRANS: musical effect to simulate a choral sound -msgid "chorus" +#: js/blocks/PitchBlocks.js:440 +msgid "pitch class" msgstr "" -#: js/ToneBlocks.js:630 -msgid "delay" +#: js/blocks/PitchBlocks.js:441 +msgid "scalar class" msgstr "" -#: js/ToneBlocks.js:678 -msgid "The Vibrato block adds a rapid, slight variation in pitch." +#: js/blocks/PitchBlocks.js:443 +msgid "nth degree" msgstr "" -#: js/ToneBlocks.js:686 -#: js/timbre.js:2094 -#.TRANS: a rapid, slight variation in pitch -msgid "vibrato" +#: js/blocks/PitchBlocks.js:444 +msgid "pitch to shade" msgstr "" -#: js/ToneBlocks.js:689 -#: js/timbre.js:2221 -msgid "intensity" +#: js/blocks/PitchBlocks.js:445 +msgid "pitch to color" msgstr "" -#: js/ToneBlocks.js:733 -#.TRANS: select synthesizer -msgid "set synth" +#: js/blocks/PitchBlocks.js:629 +#: js/widgets/musickeyboard.js:735 +#.TRANS: MIDI is a technical standard for electronic music +msgid "MIDI" msgstr "" -#: js/ToneBlocks.js:804 -msgid "synth name" +#: js/blocks/PitchBlocks.js:642 +#.TRANS: set an offset associated with the numeric piano keyboard mapping +msgid "set pitch number offset" msgstr "" -#: js/ToneBlocks.js:842 -msgid "set default instrument" +#: js/blocks/PitchBlocks.js:645 +msgid "The Set pitch number offset block is used to set the offset for mapping pitch numbers to pitch and octave." msgstr "" -#: js/ToneBlocks.js:895 -#: js/ToneBlocks.js:943 -#.TRANS: set the characteristics of a custom instrument -msgid "set instrument" +#: js/blocks/PitchBlocks.js:679 +#.TRANS: convert piano key number (1-88) to pitch +msgid "number to pitch" msgstr "" -#: js/ToneBlocks.js:898 -#: js/ToneBlocks.js:926 -#: js/ToneBlocks.js:932 -msgid "The Set instrument block selects a voice for the synthesizer," +#: js/blocks/PitchBlocks.js:682 +msgid "The Number to pitch block will convert a pitch number to a pich name." msgstr "" -#: js/ToneBlocks.js:900 -#: js/ToneBlocks.js:934 -msgid "eg guitar piano violin or cello." +#: js/blocks/PitchBlocks.js:715 +#.TRANS: convert piano key number (1-88) to octave +msgid "number to octave" msgstr "" -#: js/ToneBlocks.js:1015 -msgid "Import a sound file to use as an instrument and set its pitch center." +#: js/blocks/PitchBlocks.js:717 +msgid "The Number to octave block will convert a pitch number to an octave." msgstr "" -#: js/ToneBlocks.js:1110 -msgid "Upload a sound file to connect with the sample block." +#: js/blocks/PitchBlocks.js:726 +msgid "y to pitch" msgstr "" -#: js/MeterBlocks.js:34 -#.TRANS: musical meter (time signature), e.g., 4:4 -msgid "current meter" +#: js/blocks/PitchBlocks.js:729 +msgid "Y to pitch block will convert a staff y position to corresponding pitch notation." msgstr "" -#: js/MeterBlocks.js:85 -#.TRANS: number of beats per minute -msgid "beat factor" +#: js/blocks/PitchBlocks.js:841 +msgid "accidental selector" msgstr "" -#: js/MeterBlocks.js:161 -msgid "The Beats per minute block returns the current beats per minute." +#: js/blocks/PitchBlocks.js:844 +msgid "The Accidental selector block is used to choose between double-sharp, sharp, natural, flat, and double-flat." msgstr "" -#: js/MeterBlocks.js:169 -#: js/status.js:152 -#.TRANS: number of beats played per minute -msgid "beats per minute2" +#: js/blocks/PitchBlocks.js:858 +msgid "Pitch can be specified in terms of ni dha pa ma ga re sa." msgstr "" -#: js/MeterBlocks.js:169 -#: js/MeterBlocks.js:1056 -#: js/MeterBlocks.js:1133 -#: js/MeterBlocks.js:1211 -#.TRANS: sets tempo by defining a beat and beats per minute -msgid "beats per minute" +#: js/blocks/PitchBlocks.js:872 +msgid "Pitch can be specified in terms of C D E F G A B." msgstr "" -#: js/MeterBlocks.js:233 -#.TRANS: count of current musical measure in meter -msgid "measure count" +#: js/blocks/PitchBlocks.js:884 +msgid "solfege" msgstr "" -#: js/MeterBlocks.js:241 -msgid "The Measure count block returns the current measure." +#: js/blocks/PitchBlocks.js:887 +msgid "Pitch can be specified in terms of do re mi fa sol la ti." msgstr "" -#: js/MeterBlocks.js:290 -#.TRANS: count of current beat in the meter -msgid "beat count" +#: js/blocks/PitchBlocks.js:922 +msgid "The Invert block rotates any contained notes around a target note." msgstr "" -#: js/MeterBlocks.js:300 -#: js/MeterBlocks.js:311 -#: js/MeterBlocks.js:565 -#: js/MeterBlocks.js:576 -msgid "The Beat count block is the number of the current beat," +#: js/blocks/PitchBlocks.js:929 +#.TRANS: pitch inversion rotates a pitch around another pitch +msgid "invert" msgstr "" -#: js/MeterBlocks.js:313 -#: js/MeterBlocks.js:578 -msgid "eg 1, 2, 3, or 4." +#: js/blocks/PitchBlocks.js:968 +#.TRANS: pitch inversion rotates a pitch around another pitch (odd number) +msgid "invert (odd)" msgstr "" -#: js/MeterBlocks.js:368 -#.TRANS: count the number of notes -msgid "sum note values" +#: js/blocks/PitchBlocks.js:1001 +#.TRANS: pitch inversion rotates a pitch around another pitch (even number) +msgid "invert (even)" msgstr "" -#: js/MeterBlocks.js:376 -#: js/MeterBlocks.js:440 -msgid "The Note counter block can be used to count the number of contained notes." +#: js/blocks/PitchBlocks.js:1022 +#.TRANS: register is the octave of the current pitch +msgid "register" msgstr "" -#: js/MeterBlocks.js:432 -#.TRANS: count the number of notes -msgid "note counter" +#: js/blocks/PitchBlocks.js:1026 +msgid "The Register block provides an easy way to modify the register (octave) of the notes that follow it." msgstr "" -#: js/MeterBlocks.js:496 -#.TRANS: number of whole notes that have been played -msgid "whole notes played" +#: js/blocks/PitchBlocks.js:1047 +#.TRANS: cents are units used to specify the ratio between pitches. There are 100 cents between successive notes. +msgid "50 cents" msgstr "" -#: js/MeterBlocks.js:505 -msgid "The Whole notes played block returns the total number of whole notes played." +#: js/blocks/PitchBlocks.js:1102 +msgid "The Semi-tone transposition block will shift the pitches contained inside Note blocks up (or down) by half steps." msgstr "" -#: js/MeterBlocks.js:555 -#: js/DictActions.js:83 -#.TRANS: number of notes that have been played -msgid "notes played" +#: js/blocks/PitchBlocks.js:1104 +msgid "In the example shown above, sol is shifted up to sol#." msgstr "" -#: js/MeterBlocks.js:653 -msgid "The No clock block decouples the notes from the master clock." +#: js/blocks/PitchBlocks.js:1110 +#.TRANS: adjust the amount of shift (up or down) of a pitch +msgid "semi-tone transpose" msgstr "" -#: js/MeterBlocks.js:661 -#.TRANS: don't lock notes to master clock -msgid "no clock" +#: js/blocks/PitchBlocks.js:1143 +msgid "The Transpose by Ratio block will shift the pitches contained inside Note blocks up (or down) by a ratio" msgstr "" -#: js/MeterBlocks.js:700 -msgid "on weak beat do" +#: js/blocks/PitchBlocks.js:1149 +#.TRANS: adjust the amount of shift (up or down) of a pitch +msgid "transpose by ratio" msgstr "" -#: js/MeterBlocks.js:705 -msgid "The On-weak-beat block lets you specify actions to take on weak (off) beats." +#: js/blocks/PitchBlocks.js:1232 +#.TRANS: down sixth means the note is five scale degrees below current note +msgid "down sixth" msgstr "" -#: js/MeterBlocks.js:750 -msgid "on strong beat" +#: js/blocks/PitchBlocks.js:1251 +#.TRANS: down third means the note is two scale degrees below current note +msgid "down third" msgstr "" -#: js/MeterBlocks.js:758 -msgid "The On-strong-beat block lets you specify actions to take on specified beats." +#: js/blocks/PitchBlocks.js:1270 +#.TRANS: seventh means the note is the six scale degrees above current note +msgid "seventh" msgstr "" -#: js/MeterBlocks.js:769 -msgid "beat" +#: js/blocks/PitchBlocks.js:1289 +#.TRANS: sixth means the note is the five scale degrees above current note +msgid "sixth" msgstr "" -#: js/MeterBlocks.js:813 -msgid "on every beat do" +#: js/blocks/PitchBlocks.js:1308 +#.TRANS: fifth means the note is the four scale degrees above current note +msgid "fifth" msgstr "" -#: js/MeterBlocks.js:821 -msgid "The On-every-beat block lets you specify actions to take on every beat." +#: js/blocks/PitchBlocks.js:1328 +#.TRANS: fourth means the note is three scale degrees above current note +msgid "fourth" msgstr "" -#: js/MeterBlocks.js:874 -msgid "on every note do" +#: js/blocks/PitchBlocks.js:1347 +#.TRANS: third means the note is two scale degrees above current note +msgid "third" msgstr "" -#: js/MeterBlocks.js:882 -msgid "The On-every-note block lets you specify actions to take on every note." +#: js/blocks/PitchBlocks.js:1366 +#.TRANS: second means the note is one scale degree above current note +msgid "second" msgstr "" -#: js/MeterBlocks.js:928 -#: js/MeterBlocks.js:999 -#.TRANS: sets tempo by defining a beat and beats per minute -msgid "master beats per minute" +#: js/blocks/PitchBlocks.js:1407 +msgid "The Scalar transposition block will shift the pitches contained inside Note blocks up (or down) the scale." msgstr "" -#: js/MeterBlocks.js:952 -#: js/MeterBlocks.js:1078 -#: js/MeterBlocks.js:1135 -msgid "bpm" +#: js/blocks/PitchBlocks.js:1409 +msgid "In the example shown above, sol is shifted up to la." msgstr "" -#: js/MeterBlocks.js:952 -#: js/MeterBlocks.js:1078 -#: js/MeterBlocks.js:1135 -msgid "beat value" +#: js/blocks/PitchBlocks.js:1416 +#.TRANS: adjust the amount of shift (up or down) of a pitch by musical scale (scalar) steps +msgid "scalar transpose" msgstr "" -#: js/MeterBlocks.js:1024 -#: js/MeterBlocks.js:1167 -#: js/MeterBlocks.js:1241 -msgid "Beats per minute must be > 30." +#: js/blocks/PitchBlocks.js:1451 +msgid "The Accidental block is used to create sharps and flats" msgstr "" -#: js/MeterBlocks.js:1027 -#: js/MeterBlocks.js:1170 -#: js/MeterBlocks.js:1244 -msgid "Maximum beats per minute is 1000." +#: js/blocks/PitchBlocks.js:1458 +#.TRANS: An accidental is a modification to a pitch, e.g., sharp or flat. +msgid "accidental override" msgstr "" -#: js/MeterBlocks.js:1068 -msgid "The Beats per minute block sets the number of 1/4 notes per minute." +#: js/blocks/PitchBlocks.js:1581 +msgid "The Hertz block (in combination with a Number block) will play a sound at the specified frequency." msgstr "" -#: js/MeterBlocks.js:1279 -#.TRANS: anacrusis -msgid "pickup" +#: js/blocks/PitchBlocks.js:1671 +msgid "The Pitch Number block will play a pitch associated by its number, e.g. 0 for C and 7 for G." msgstr "" -#: js/MeterBlocks.js:1367 -msgid "number of beats" +#: js/blocks/PitchBlocks.js:1703 +#: js/blocks/PitchBlocks.js:1745 +#.TRANS: a numeric mapping of the notes in an octave based on the musical mode +#.TRANS: a numeric mapping of the notes in an octave based on the musical mode +msgid "nth modal pitch" msgstr "" -#: js/DictBlocks.js:77 -msgid "show dictionary" +#: js/blocks/PitchBlocks.js:1706 +msgid "n^th Modal Pitch takes the pattern of pitches in semitones for a mode and makes each point a degree of the mode," msgstr "" -#: js/DictBlocks.js:129 -msgid "The Dictionary block returns a dictionary." +#: js/blocks/PitchBlocks.js:1708 +msgid "starting from 1 and regardless of tonal framework (i.e. not always 8 notes in the octave)" msgstr "" -#: js/DictBlocks.js:197 -#: js/DictBlocks.js:339 -msgid "The Get-dict block returns a value in the dictionary for a specified key." +#: js/blocks/PitchBlocks.js:1749 +msgid "N^th Modal Pitch takes a number as an input as the n^th degree for the given mode. 0 is the first position, 1 is the second, -1 is the note before the first etc." msgstr "" -#: js/DictBlocks.js:212 -#: js/DictBlocks.js:354 -#.TRANS: retrieve a value from the dictionary with a given key -msgid "get value" +#: js/blocks/PitchBlocks.js:1751 +msgid "The pitches change according to the mode specified without any need for respellings." msgstr "" -#: js/DictBlocks.js:215 -#: js/DictBlocks.js:216 -#: js/DictBlocks.js:289 -#: js/DictBlocks.js:290 -#: js/DictBlocks.js:357 -#: js/DictBlocks.js:430 -#: js/DictBlocks.js:431 -msgid "key2" +#: js/blocks/PitchBlocks.js:1790 +msgid "Scale Degree is a common convention in music. Scale Degree offers seven possible positions in the scale (1-7) and can be modified via accidentals." msgstr "" -#: js/DictBlocks.js:271 -#: js/DictBlocks.js:411 -msgid "The Set-dict block sets a value in the dictionary for a specified key." +#: js/blocks/PitchBlocks.js:1792 +msgid "Scale Degree 1 is always the first pitch in a given scale, regardless of octave." msgstr "" -#: js/DictBlocks.js:286 -#: js/DictBlocks.js:427 -#.TRANS: set a value in the dictionary for a given key -msgid "set value" +#: js/blocks/PitchBlocks.js:1814 +#.TRANS: step some number of notes in current musical scale +msgid "scalar step" msgstr "" -#: js/ExtrasBlocks.js:33 -msgid "fraction" +#: js/blocks/PitchBlocks.js:1819 +msgid "The Scalar Step block (in combination with a Number block) will play the next pitch in a scale," msgstr "" -#: js/ExtrasBlocks.js:36 -msgid "Convert a float to a fraction" +#: js/blocks/PitchBlocks.js:1821 +msgid "eg if the last note played was sol, Scalar Step 1 will play la." msgstr "" -#: js/ExtrasBlocks.js:93 -msgid "save as ABC" +#: js/blocks/PitchBlocks.js:1857 +msgid "The Pitch block specifies the pitch name and octave of a note that together determine the frequency of the note." msgstr "" -#: js/ExtrasBlocks.js:96 -#: js/ExtrasBlocks.js:132 -#: js/ExtrasBlocks.js:168 -msgid "title" +#: js/blocks/ProgramBlocks.js:33 +msgid "The Load-heap-from-app block loads the heap from a web page." msgstr "" -#: js/ExtrasBlocks.js:129 -msgid "save as Lilypond" +#: js/blocks/ProgramBlocks.js:44 +#.TRANS: load the heap contents from a URL +msgid "load heap from App" msgstr "" -#: js/ExtrasBlocks.js:165 -msgid "save as SVG" +#: js/blocks/ProgramBlocks.js:95 +msgid "Error parsing JSON data:" msgstr "" -#: js/ExtrasBlocks.js:216 -msgid "no background" +#: js/blocks/ProgramBlocks.js:100 +msgid "404: Page not found" msgstr "" -#: js/ExtrasBlocks.js:219 -msgid "The No background block eliminates the background from the saved SVG output." +#: js/blocks/ProgramBlocks.js:133 +msgid "The Save-heap-to-app block saves the heap to a web page." msgstr "" -#: js/ExtrasBlocks.js:247 -msgid "show blocks" +#: js/blocks/ProgramBlocks.js:144 +#.TRANS: save the heap contents to a URL +msgid "save heap to App" msgstr "" -#: js/ExtrasBlocks.js:249 -msgid "The Show blocks block shows the blocks." +#: js/blocks/ProgramBlocks.js:189 +msgid "Cannot find a valid heap for" msgstr "" -#: js/ExtrasBlocks.js:274 -msgid "hide blocks" +#: js/blocks/ProgramBlocks.js:206 +msgid "The Load-heap block loads the heap from a file." msgstr "" -#: js/ExtrasBlocks.js:276 -msgid "The Hide blocks block hides the blocks." +#: js/blocks/ProgramBlocks.js:217 +#.TRANS: load the heap from a file +msgid "load heap" msgstr "" -#: js/ExtrasBlocks.js:305 -#: js/ExtrasBlocks.js:335 -msgid "The Space block is used to add space between blocks." +#: js/blocks/ProgramBlocks.js:270 +msgid "The file you selected does not contain a valid heap." msgstr "" -#: js/ExtrasBlocks.js:373 -msgid "wait" +#: js/blocks/ProgramBlocks.js:275 +msgid "The loadHeap block needs a loadFile block." msgstr "" -#: js/ExtrasBlocks.js:376 -msgid "The Wait block pauses the program for a specified number of seconds." +#: js/blocks/ProgramBlocks.js:291 +msgid "The Set-heap block loads the heap." msgstr "" -#: js/ExtrasBlocks.js:430 -#: plugins/facebook.rtp:30 -msgid "comment" +#: js/blocks/ProgramBlocks.js:340 +msgid "The block you selected does not contain a valid heap." msgstr "" -#: js/ExtrasBlocks.js:466 -msgid "print" +#: js/blocks/ProgramBlocks.js:343 +msgid "The Set heap block needs a heap." msgstr "" -#: js/ExtrasBlocks.js:473 -msgid "The Print block displays text at the top of the screen." +#: js/blocks/ProgramBlocks.js:360 +msgid "The Load-dictionary block loads a dictionary from a file." msgstr "" -#: js/ExtrasBlocks.js:579 -msgid "display grid" +#: js/blocks/ProgramBlocks.js:372 +#.TRANS: load a dictionary from a file +msgid "load dictionary" msgstr "" -#: js/ExtrasBlocks.js:584 -msgid "The Display Grid Block changes the grid type" +#: js/blocks/ProgramBlocks.js:390 +#: js/blocks/ProgramBlocks.js:658 +#: js/blocks/ToneBlocks.js:1025 +msgid "file" msgstr "" -#: js/ExtrasBlocks.js:686 -#: js/ExtrasBlocks.js:705 -#: js/ExtrasBlocks.js:728 -#: js/ExtrasBlocks.js:751 -#: js/ExtrasBlocks.js:769 -#: js/ExtrasBlocks.js:788 -#: js/ExtrasBlocks.js:807 -#: js/ExtrasBlocks.js:826 -msgid "unknown" +#: js/blocks/ProgramBlocks.js:444 +msgid "The file you selected does not contain a valid dictionary." msgstr "" -#: js/SensorsBlocks.js:36 -msgid "The Input block prompts for keyboard input." +#: js/blocks/ProgramBlocks.js:449 +msgid "The load dictionary block needs a load file block." msgstr "" -#: js/SensorsBlocks.js:46 -msgid "input" +#: js/blocks/ProgramBlocks.js:466 +msgid "The Set-dictionary block loads a dictionary." msgstr "" -#: js/SensorsBlocks.js:64 -msgid "Input a value" +#: js/blocks/ProgramBlocks.js:477 +#.TRANS: load a dictionary from a JSON +msgid "set dictionary" msgstr "" -#: js/SensorsBlocks.js:126 -msgid "input value" +#: js/blocks/ProgramBlocks.js:546 +msgid "The block you selected does not contain a valid dictionary." msgstr "" -#: js/SensorsBlocks.js:131 -msgid "The Input-value block stores the input." +#: js/blocks/ProgramBlocks.js:550 +msgid "The set dictionary block needs a dictionary." msgstr "" -#: js/SensorsBlocks.js:238 -msgid "loudness" +#: js/blocks/ProgramBlocks.js:567 +msgid "The Save-heap block saves the heap to a file." msgstr "" -#: js/SensorsBlocks.js:245 -msgid "The Loudness block returns the volume detected by the microphone." +#: js/blocks/ProgramBlocks.js:578 +#.TRANS: save the heap to a file +msgid "save heap" msgstr "" -#: js/SensorsBlocks.js:300 -msgid "click" +#: js/blocks/ProgramBlocks.js:629 +msgid "The Save-dictionary block saves a dictionary to a file." msgstr "" -#: js/SensorsBlocks.js:306 -msgid "The Click block triggers an event if a mouse has been clicked." +#: js/blocks/ProgramBlocks.js:640 +#.TRANS: save a dictionary to a file +msgid "save dictionary" msgstr "" -#: js/SensorsBlocks.js:313 -msgid "The Click block triggers an event if a turtle has been clicked." +#: js/blocks/ProgramBlocks.js:720 +msgid "The Open palette block opens a palette." msgstr "" -#: js/SensorsBlocks.js:342 -msgid "cursor over" +#: js/blocks/ProgramBlocks.js:727 +msgid "open palette" msgstr "" -#: js/SensorsBlocks.js:387 -msgid "cursor out" +#: js/blocks/ProgramBlocks.js:785 +msgid "The Delete block block removes a block." msgstr "" -#: js/SensorsBlocks.js:433 -msgid "cursor button down" +#: js/blocks/ProgramBlocks.js:797 +#.TRANS: Move this block to the trash. +msgid "delete block" msgstr "" -#: js/SensorsBlocks.js:477 -msgid "cursor button up" +#: js/blocks/ProgramBlocks.js:861 +msgid "The Move block block moves a block." msgstr "" -#: js/SensorsBlocks.js:638 -msgid "The Get red block returns the red component of the pixel under the mouse." +#: js/blocks/ProgramBlocks.js:869 +#.TRANS: Move the position of a block on the screen. +msgid "move block" msgstr "" -#: js/SensorsBlocks.js:644 -msgid "The Get red block returns the red component of the pixel under the turtle." +#: js/blocks/ProgramBlocks.js:881 +#: js/blocks/ProgramBlocks.js:1048 +msgid "block number" msgstr "" -#: js/SensorsBlocks.js:685 -#: plugins/rodi.rtp:216 -msgid "pixel color" +#: js/blocks/ProgramBlocks.js:935 +#.TRANS: Run program beginning at this block. +msgid "run block" msgstr "" -#: js/SensorsBlocks.js:690 -msgid "The Get pixel block returns the color of the pixel under the mouse." +#: js/blocks/ProgramBlocks.js:1025 +msgid "The Dock block block connections two blocks." msgstr "" -#: js/SensorsBlocks.js:696 -msgid "The Get pixel block returns the color of the pixel under the turtle." +#: js/blocks/ProgramBlocks.js:1036 +#.TRANS: We can connect a block to another block. +msgid "connect blocks" msgstr "" -#: js/SensorsBlocks.js:758 -msgid "time" -msgstr "wakati" - -#: js/SensorsBlocks.js:804 -msgid "cursor y" +#: js/blocks/ProgramBlocks.js:1048 +msgid "target block" msgstr "" -#: js/SensorsBlocks.js:809 -msgid "The Cursor Y block returns the vertical position of the mouse." +#: js/blocks/ProgramBlocks.js:1048 +msgid "connection number" msgstr "" -#: js/SensorsBlocks.js:845 -msgid "cursor x" +#: js/blocks/ProgramBlocks.js:1140 +msgid "The Make block block creates a new block." msgstr "" -#: js/SensorsBlocks.js:850 -msgid "The Cursor X block returns the horizontal position of the mouse." +#: js/blocks/ProgramBlocks.js:1152 +#.TRANS: Create a new block +msgid "make block" msgstr "" -#: js/SensorsBlocks.js:886 -msgid "mouse button" +#: js/blocks/ProgramBlocks.js:1285 +msgid "Cannot find block" msgstr "" -#: js/SensorsBlocks.js:888 -msgid "The Mouse-button block returns True if the mouse button is pressed." +#: js/blocks/ProgramBlocks.js:1304 +#: js/blocks/ProgramBlocks.js:1313 +msgid "Warning: block argument type mismatch" msgstr "" -#: js/SensorsBlocks.js:934 -msgid "to ASCII" +#: js/blocks/ProgramBlocks.js:1347 +msgid "The Open project block is used to open a project from a web page." msgstr "" -#: js/SensorsBlocks.js:938 -msgid "The To ASCII block converts numbers to letters." +#: js/blocks/ProgramBlocks.js:1357 +msgid "open project" msgstr "" -#: js/SensorsBlocks.js:1005 -msgid "The Keyboard block returns computer keyboard input." +#: js/blocks/ProgramBlocks.js:1410 +msgid "Please enter a valid URL." msgstr "" -#: js/IntervalsActions.js:216 -msgid "Adding missing pitch number 0." +#: js/blocks/ToneBlocks.js:34 +msgid "oscillator" msgstr "" -#: js/IntervalsActions.js:224 -msgid "Ignoring pitch numbers less than zero or greater than eleven." +#: js/blocks/ToneBlocks.js:42 +#: js/blocks/WidgetBlocks.js:179 +#: js/widgets/timbre.js:1558 +#: js/widgets/timbre.js:1808 +#.TRANS: there are different types (sine, triangle, square...) of oscillators. +#.TRANS: type of filter, e.g., lowpass, highpass, etc. +msgid "type" msgstr "" -#: js/IntervalsActions.js:230 -msgid "Ignoring duplicate pitch numbers." +#: js/blocks/ToneBlocks.js:44 +#: js/widgets/timbre.js:1562 +#.TRANS: Partials refers to the number of sine waves combined into the sound. +msgid "partials" msgstr "" -#: js/PitchActions.js:88 -msgid "The Scalar Step Block must be used inside of a Note Block." +#: js/blocks/ToneBlocks.js:76 +msgid "You are adding multiple oscillator blocks." msgstr "" -#: js/PitchActions.js:107 -msgid "The Scalar Step Block must be preceded by a Pitch Block." +#: js/blocks/ToneBlocks.js:144 +#: js/widgets/timbre.js:1225 +#.TRANS: a duo synthesizer combines a synth with a sequencer +msgid "duo synth" msgstr "" -#: js/DrumActions.js:231 -msgid "Noise Block: Did you mean to use a Note block?" +#: js/blocks/ToneBlocks.js:149 +msgid "The Duo synth block is a duo-frequency modulator used to define a timbre." msgstr "" -#: js/MeterActions.js:101 -#: js/MeterActions.js:139 -msgid "beats per minute must be greater than" +#: js/blocks/ToneBlocks.js:157 +#: js/widgets/timbre.js:1476 +msgid "vibrato rate" msgstr "" -#: js/MeterActions.js:111 -#: js/MeterActions.js:149 -msgid "maximum" +#: js/blocks/ToneBlocks.js:157 +msgid "vibrato intensity" msgstr "" -#: js/MeterActions.js:117 -#: js/MeterActions.js:155 -msgid "beats per minute is" +#: js/blocks/ToneBlocks.js:185 +#: js/widgets/timbre.js:1221 +#.TRANS: AM (amplitude modulation) synthesizer +msgid "AM synth" msgstr "" -#: js/ToneActions.js:134 -msgid "Vibrato intensity must be between 1 and 100." +#: js/blocks/ToneBlocks.js:189 +msgid "The AM synth block is an amplitude modulator used to define a timbre." msgstr "" -#: js/ToneActions.js:139 -msgid "Vibrato rate must be greater than 0." +#: js/blocks/ToneBlocks.js:224 +#: js/widgets/timbre.js:1223 +#.TRANS: FM (frequency modulation) synthesizer +msgid "FM synth" msgstr "" -#: js/ToneActions.js:192 -#: js/ToneActions.js:265 -#.TRANS: Depth is the intesity of the tremolo or chorus effect. -msgid "Depth is out of range." +#: js/blocks/ToneBlocks.js:228 +msgid "The FM synth block is a frequency modulator used to define a timbre." msgstr "" -#: js/ToneActions.js:301 -msgid "Distortion must be from 0 to 100." +#: js/blocks/ToneBlocks.js:262 +msgid "partial" msgstr "" -#: js/ToneActions.js:332 -#.TRANS: partials components in a harmonic series -msgid "Partial must be greater than or equal to 0." +#: js/blocks/ToneBlocks.js:265 +msgid "The Partial block is used to specify a weight for a specific partial harmonic." msgstr "" -#: js/ToneActions.js:378 -#: js/ToneActions.js:417 -#: js/ToneActions.js:456 -#: js/timbre.js:782 -msgid "Unable to use synth due to existing oscillator" +#: js/blocks/ToneBlocks.js:284 +#.TRANS: partials are weighted components in a harmonic series +msgid "Partial weight must be between 0 and 1." msgstr "" -#: js/ToneActions.js:388 -#: js/ToneActions.js:427 -msgid "The input cannot be negative." +#: js/blocks/ToneBlocks.js:297 +#.TRANS: partials are weighted components in a harmonic series +msgid "Partial block should be used inside of a Weighted-partials block." msgstr "" -#: js/DictActions.js:75 -#: js/DictActions.js:153 -#: js/DictActions.js:188 -msgid "font" +#: js/blocks/ToneBlocks.js:325 +#.TRANS: partials are weighted components in a harmonic series +msgid "weighted partials" msgstr "" -#: js/musicutils.js:363 -#: js/musicutils.js:471 -#: js/pitchdrummatrix.js:151 -#: js/musickeyboard.js:2563 -msgid "rest" +#: js/blocks/ToneBlocks.js:383 +msgid "The Harmonic block will add harmonics to the contained notes." msgstr "" -#: js/musicutils.js:565 -#.TRANS: ordinal number. Please keep exactly one space between each number. -msgid "1st 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th" +#: js/blocks/ToneBlocks.js:390 +#.TRANS: A harmonic is an overtone. +msgid "harmonic" msgstr "" -#: js/musicutils.js:629 -#: js/musicutils.js:812 -#: js/musicutils.js:911 -#.TRANS: augmented is a music term related to intervals -msgid "augmented" +#: js/blocks/ToneBlocks.js:431 +msgid "The Distortion block adds distortion to the pitch." msgstr "" -#: js/musicutils.js:631 -#: js/musicutils.js:813 -#: js/musicutils.js:910 -#.TRANS: diminished is a music term related to intervals and mode -msgid "diminished" +#: js/blocks/ToneBlocks.js:438 +#: js/widgets/timbre.js:2100 +#.TRANS: distortion is an alteration in the sound +msgid "distortion" msgstr "" -#: js/musicutils.js:639 -#.TRANS: twelve semi-tone scale for music -msgid "chromatic" +#: js/blocks/ToneBlocks.js:487 +msgid "The Tremolo block adds a wavering effect." msgstr "" -#: js/musicutils.js:640 -msgid "algerian" +#: js/blocks/ToneBlocks.js:495 +#: js/widgets/timbre.js:2092 +#.TRANS: a wavering effect in a musical tone +msgid "tremolo" msgstr "" -#: js/musicutils.js:641 -msgid "spanish" +#: js/blocks/ToneBlocks.js:500 +#: js/blocks/ToneBlocks.js:569 +#: js/blocks/ToneBlocks.js:630 +#: js/blocks/ToneBlocks.js:689 +#: js/widgets/timbre.js:2134 +#: js/widgets/timbre.js:2222 +#: js/widgets/timbre.js:2317 +#: js/widgets/timbre.js:2419 +#.TRANS: rate at which tremolo wavers +msgid "rate" msgstr "" -#: js/musicutils.js:643 -#.TRANS: modal scale in music -msgid "octatonic" +#: js/blocks/ToneBlocks.js:502 +#: js/blocks/ToneBlocks.js:630 +#: js/widgets/timbre.js:2137 +#: js/widgets/timbre.js:2328 +#.TRANS: amplitude of tremolo waver +msgid "depth" msgstr "" -#: js/musicutils.js:645 -#.TRANS: harmonic major scale in music -msgid "harmonic major" +#: js/blocks/ToneBlocks.js:559 +msgid "The Phaser block adds a sweeping sound." msgstr "" -#: js/musicutils.js:647 -#.TRANS: natural minor scales in music -msgid "natural minor" +#: js/blocks/ToneBlocks.js:566 +#: js/widgets/timbre.js:2098 +#.TRANS: alter the phase of the sound +msgid "phaser" msgstr "" -#: js/musicutils.js:649 -#.TRANS: harmonic minor scale in music -msgid "harmonic minor" +#: js/blocks/ToneBlocks.js:569 +#: js/turtleactions/IntervalsActions.js:114 +#: js/widgets/timbre.js:2422 +msgid "octaves" msgstr "" -#: js/musicutils.js:651 -#.TRANS: melodic minor scale in music -msgid "melodic minor" +#: js/blocks/ToneBlocks.js:569 +#: js/widgets/timbre.js:2425 +msgid "base frequency" msgstr "" -#: js/musicutils.js:655 -#.TRANS: modal scale for music -msgid "dorian" +#: js/blocks/ToneBlocks.js:619 +msgid "The Chorus block adds a chorus effect." msgstr "" -#: js/musicutils.js:657 -#.TRANS: modal scale for music -msgid "phrygian" +#: js/blocks/ToneBlocks.js:627 +#: js/widgets/timbre.js:2096 +#.TRANS: musical effect to simulate a choral sound +msgid "chorus" msgstr "" -#: js/musicutils.js:659 -#.TRANS: modal scale for music -msgid "lydian" +#: js/blocks/ToneBlocks.js:630 +msgid "delay" msgstr "" -#: js/musicutils.js:661 -#.TRANS: modal scale for music -msgid "mixolydian" +#: js/blocks/ToneBlocks.js:678 +msgid "The Vibrato block adds a rapid, slight variation in pitch." msgstr "" -#: js/musicutils.js:665 -#.TRANS: modal scale for music -msgid "locrian" +#: js/blocks/ToneBlocks.js:686 +#: js/widgets/timbre.js:2094 +#.TRANS: a rapid, slight variation in pitch +msgid "vibrato" msgstr "" -#: js/musicutils.js:667 -#.TRANS: minor jazz scale for music -msgid "jazz minor" +#: js/blocks/ToneBlocks.js:689 +#: js/widgets/timbre.js:2221 +msgid "intensity" msgstr "" -#: js/musicutils.js:669 -#.TRANS: bebop scale for music -msgid "bebop" +#: js/blocks/ToneBlocks.js:733 +#.TRANS: select synthesizer +msgid "set synth" msgstr "" -#: js/musicutils.js:670 -msgid "arabic" +#: js/blocks/ToneBlocks.js:804 +msgid "synth name" msgstr "" -#: js/musicutils.js:671 -msgid "byzantine" +#: js/blocks/ToneBlocks.js:842 +msgid "set default instrument" msgstr "" -#: js/musicutils.js:673 -#.TRANS: musical scale for music by Verdi -msgid "enigmatic" +#: js/blocks/ToneBlocks.js:895 +#: js/blocks/ToneBlocks.js:943 +#.TRANS: set the characteristics of a custom instrument +msgid "set instrument" msgstr "" -#: js/musicutils.js:674 -msgid "ethiopian" +#: js/blocks/ToneBlocks.js:898 +#: js/blocks/ToneBlocks.js:926 +#: js/blocks/ToneBlocks.js:932 +msgid "The Set instrument block selects a voice for the synthesizer," msgstr "" -#: js/musicutils.js:676 -#.TRANS: Ethiopic scale for music -msgid "geez" +#: js/blocks/ToneBlocks.js:900 +#: js/blocks/ToneBlocks.js:934 +msgid "eg guitar piano violin or cello." msgstr "" -#: js/musicutils.js:677 -msgid "hindu" +#: js/blocks/ToneBlocks.js:1015 +msgid "Import a sound file to use as an instrument and set its pitch center." msgstr "" -#: js/musicutils.js:678 -msgid "hungarian" +#: js/blocks/ToneBlocks.js:1110 +msgid "Upload a sound file to connect with the sample block." msgstr "" -#: js/musicutils.js:680 -#.TRANS: minor Romanian scale for music -msgid "romanian minor" +#: js/blocks/VolumeBlocks.js:35 +msgid "synth volume" msgstr "" -#: js/musicutils.js:681 -msgid "spanish gypsy" +#: js/blocks/VolumeBlocks.js:39 +msgid "The Synth volume block returns the current volume of the current synthesizer." msgstr "" -#: js/musicutils.js:683 -#.TRANS: musical scale for Mid-Eastern music -msgid "maqam" +#: js/blocks/VolumeBlocks.js:105 +msgid "master volume" msgstr "" -#: js/musicutils.js:685 -#.TRANS: minor blues scale for music -msgid "minor blues" +#: js/blocks/VolumeBlocks.js:109 +msgid "The Master volume block returns the master volume." msgstr "" -#: js/musicutils.js:687 -#.TRANS: major blues scale for music -msgid "major blues" +#: js/blocks/VolumeBlocks.js:355 +#: js/blocks/VolumeBlocks.js:524 +msgid "set synth volume" msgstr "" -#: js/musicutils.js:688 -msgid "whole tone" +#: js/blocks/VolumeBlocks.js:362 +#: js/blocks/VolumeBlocks.js:545 +msgid "synth" msgstr "" -#: js/musicutils.js:690 -#.TRANS: pentatonic is a general term that means "five note scale". This scale is typically known as "minor pentatonic" -msgid "minor pentatonic" +#: js/blocks/VolumeBlocks.js:403 +#: js/blocks/VolumeBlocks.js:577 +#: js/blocks/VolumeBlocks.js:740 +#: js/turtleactions/VolumeActions.js:173 +msgid "Setting volume to 0." msgstr "" -#: js/musicutils.js:692 -#.TRANS: pentatonic is a general term that means "five note scale". This scale is typically known as "major pentatonic" -msgid "major pentatonic" +#: js/blocks/VolumeBlocks.js:440 +msgid "Synth not found" msgstr "" -#: js/musicutils.js:693 -msgid "chinese" +#: js/blocks/VolumeBlocks.js:494 +msgid "set drum volume" msgstr "" -#: js/musicutils.js:694 -msgid "egyptian" +#: js/blocks/VolumeBlocks.js:530 +msgid "The Set synth volume block will change the volume of a particular synth," msgstr "" -#: js/musicutils.js:696 -#.TRANS: https://en.wikipedia.org/wiki/Hirajoshi_scale NOTE: There are three different versions of this scale -msgid "hirajoshi" +#: js/blocks/VolumeBlocks.js:532 +msgid "eg guitar violin snare drum etc." msgstr "" -#: js/musicutils.js:697 -msgid "Japan" +#: js/blocks/VolumeBlocks.js:534 +msgid "The default volume is 50." msgstr "" -#: js/musicutils.js:699 -#.TRANS: https://en.wikipedia.org/wiki/In_scale and https://en.wikipedia.org/wiki/Sakura_Sakura -msgid "in" +#: js/blocks/VolumeBlocks.js:536 +msgid "The range is 0 for silence to 100 for full volume." msgstr "" -#: js/musicutils.js:701 -#.TRANS: https://en.wikipedia.org/wiki/Miny%C5%8D_scale -msgid "minyo" +#: js/blocks/VolumeBlocks.js:597 +msgid "set panning" msgstr "" -#: js/musicutils.js:703 -#.TRANS: Italian mathematician -msgid "fibonacci" +#: js/blocks/VolumeBlocks.js:603 +msgid "The Set Panning block sets the panning for all synthesizers." msgstr "" -#: js/musicutils.js:708 -#: js/musicutils.js:1106 -#.TRANS: lowpass filter -msgid "lowpass" +#: js/blocks/VolumeBlocks.js:625 +msgid "Warning: Sound is coming out from only the left or right side." msgstr "" -#: js/musicutils.js:710 -#: js/musicutils.js:1107 -#.TRANS: bandpass filter -msgid "bandpass" +#: js/blocks/VolumeBlocks.js:647 +#: js/blocks/VolumeBlocks.js:695 +msgid "set master volume" msgstr "" -#: js/musicutils.js:712 -#: js/musicutils.js:1108 -#.TRANS: high-shelf filter -msgid "highshelf" +#: js/blocks/VolumeBlocks.js:653 +msgid "The Set master volume block sets the volume for all synthesizers." msgstr "" -#: js/musicutils.js:714 -#: js/musicutils.js:1109 -#.TRANS: low-shelf filter -msgid "lowshelf" +#: js/blocks/VolumeBlocks.js:784 +msgid "The Set relative volume block changes the volume of the contained notes." msgstr "" -#: js/musicutils.js:716 -#: js/musicutils.js:1110 -#.TRANS: notch-shelf filter -msgid "notch" +#: js/blocks/VolumeBlocks.js:791 +msgid "set relative volume" msgstr "" -#: js/musicutils.js:718 -#: js/musicutils.js:1111 -#.TRANS: all-pass filter -msgid "allpass" +#: js/blocks/VolumeBlocks.js:857 +msgid "decrescendo" msgstr "" -#: js/musicutils.js:720 -#: js/musicutils.js:1112 -#.TRANS: peaking filter -msgid "peaking" +#: js/blocks/VolumeBlocks.js:921 +msgid "crescendo" msgstr "" -#: js/musicutils.js:731 -#: js/synthutils.js:58 -#.TRANS: musical instrument -msgid "violin" +#: js/blocks/WidgetBlocks.js:81 +#.TRANS: sound envelope (ADSR) +msgid "envelope" msgstr "" -#: js/musicutils.js:732 -#: js/synthutils.js:60 -#.TRANS: viola musical instrument -msgid "viola" +#: js/blocks/WidgetBlocks.js:89 +#.TRANS: Attack time is the time taken for initial run-up of level from nil to peak, beginning when the key is first pressed. +msgid "attack" msgstr "" -#: js/musicutils.js:733 -#: js/synthutils.js:98 -#.TRANS: xylophone musical instrument -msgid "xylophone" +#: js/blocks/WidgetBlocks.js:91 +#.TRANS: Decay time is the time taken for the subsequent run down from the attack level to the designated sustain level. +msgid "decay" msgstr "" -#: js/musicutils.js:734 -#: js/synthutils.js:120 -#.TRANS: vibraphone musical instrument -msgid "vibraphone" +#: js/blocks/WidgetBlocks.js:93 +#.TRANS: Sustain level is the level during the main sequence of the sound's duration, until the key is released. +msgid "sustain" msgstr "" -#: js/musicutils.js:735 -#: js/synthutils.js:62 -#.TRANS: musical instrument -msgid "cello" +#: js/blocks/WidgetBlocks.js:95 +#.TRANS: Release time is the time taken for the level to decay from the sustain level to zero after the key is released. +msgid "release" msgstr "" -#: js/musicutils.js:737 -#: js/synthutils.js:66 -#.TRANS: viola musical instrument -msgid "double bass" +#: js/blocks/WidgetBlocks.js:113 +msgid "Attack value should be from 0 to 100." msgstr "" -#: js/musicutils.js:738 -#: js/synthutils.js:68 -#: js/rhythmruler.js:2119 -#.TRANS: musical instrument -msgid "guitar" +#: js/blocks/WidgetBlocks.js:116 +msgid "Decay value should be from 0 to 100." msgstr "" -#: js/musicutils.js:739 -#: js/synthutils.js:70 -#.TRANS: musical instrument -msgid "acoustic guitar" +#: js/blocks/WidgetBlocks.js:119 +msgid "Sustain value should be from 0 to 100." msgstr "" -#: js/musicutils.js:740 -#: js/synthutils.js:72 -#.TRANS: musical instrument -msgid "flute" +#: js/blocks/WidgetBlocks.js:122 +msgid "Release value should be from 0-100." msgstr "" -#: js/musicutils.js:741 -#: js/synthutils.js:74 -#.TRANS: musical instrument -msgid "clarinet" +#: js/blocks/WidgetBlocks.js:140 +msgid "You are adding multiple envelope blocks." msgstr "" -#: js/musicutils.js:742 -#: js/synthutils.js:76 -#.TRANS: musical instrument -msgid "saxophone" +#: js/blocks/WidgetBlocks.js:171 +#.TRANS: a filter removes some unwanted components from a signal +msgid "filter" msgstr "" -#: js/musicutils.js:743 -#: js/synthutils.js:78 -#.TRANS: musical instrument -msgid "tuba" +#: js/blocks/WidgetBlocks.js:181 +#: js/widgets/timbre.js:1818 +#.TRANS: rolloff is the steepness of a change in frequency. +msgid "rolloff" msgstr "" -#: js/musicutils.js:744 -#: js/synthutils.js:80 -#.TRANS: musical instrument -msgid "trumpet" +#: js/blocks/WidgetBlocks.js:213 +#.TRANS: rolloff is the steepness of a change in frequency. +msgid "Rolloff value should be either -12, -24, -48, or -96 decibels/octave." msgstr "" -#: js/musicutils.js:745 -#: js/synthutils.js:82 -#.TRANS: musical instrument -msgid "oboe" +#: js/blocks/WidgetBlocks.js:252 +msgid "The Temperament tool is used to define custom tuning." msgstr "" -#: js/musicutils.js:746 -#: js/synthutils.js:84 -#.TRANS: musical instrument -msgid "trombone" +#: js/blocks/WidgetBlocks.js:332 +#: js/blocks/WidgetBlocks.js:1573 +#: js/widgets/sampler.js:547 +msgid "Upload a sample and adjust its pitch center." msgstr "" -#: js/musicutils.js:747 -#: js/synthutils.js:100 -#.TRANS: polytone synthesizer -msgid "electronic synth" +#: js/blocks/WidgetBlocks.js:339 +#.TRANS: the speed at music is should be played. +msgid "sampler" msgstr "" -#: js/musicutils.js:748 -#: js/synthutils.js:102 -#.TRANS: simple monotone synthesizer -msgid "simple 1" +#: js/blocks/WidgetBlocks.js:517 +msgid "The Meter block opens a tool to select strong beats for the meter." msgstr "" -#: js/musicutils.js:749 -msgid "simple 2" +#: js/blocks/WidgetBlocks.js:573 +msgid "The oscilloscope block opens a tool to visualize waveforms." msgstr "" -#: js/musicutils.js:750 -msgid "simple 3" +#: js/blocks/WidgetBlocks.js:578 +msgid "oscilloscope" msgstr "" -#: js/musicutils.js:751 -msgid "simple 4" +#: js/blocks/WidgetBlocks.js:645 +msgid "The Custom mode block opens a tool to explore musical mode (the spacing of the notes in a scale)." msgstr "" -#: js/musicutils.js:753 -#: js/synthutils.js:49 -#.TRANS: brown noise synthesizer -msgid "brown noise" +#: js/blocks/WidgetBlocks.js:651 +#.TRANS: musical mode is the pattern of half-steps in an octave, e.g., Major or Minor modes +msgid "custom mode" msgstr "" -#: js/musicutils.js:754 -#: js/synthutils.js:51 -#.TRANS: pink noise synthesizer -msgid "pink noise" +#: js/blocks/WidgetBlocks.js:700 +msgid "The Tempo block opens a metronome to visualize the beat." msgstr "" -#: js/musicutils.js:756 -#: js/synthutils.js:127 -#: js/rhythmruler.js:1670 -#: js/rhythmruler.js:1928 -#.TRANS: musical instrument -msgid "snare drum" +#: js/blocks/WidgetBlocks.js:762 +msgid "The Arpeggio Widget is used to compose chord sequences." msgstr "" -#: js/musicutils.js:757 -#: js/synthutils.js:129 -#.TRANS: musical instrument -msgid "kick drum" +#: js/blocks/WidgetBlocks.js:837 +msgid "The Pitch drum matrix is used to map pitches to drum sounds." msgstr "" -#: js/musicutils.js:758 -#: js/synthutils.js:131 -#.TRANS: musical instrument -msgid "tom tom" +#: js/blocks/WidgetBlocks.js:842 +#.TRANS: makes a mapping between pitches and drum sounds +msgid "pitch-drum mapper" msgstr "" -#: js/musicutils.js:759 -#: js/synthutils.js:133 -#.TRANS: musical instrument -msgid "floor tom" +#: js/blocks/WidgetBlocks.js:891 +msgid "You must have at least one pitch block and one drum block in the matrix." msgstr "" -#: js/musicutils.js:760 -#: js/synthutils.js:135 -#.TRANS: musical instrument -msgid "bass drum" +#: js/blocks/WidgetBlocks.js:920 +msgid "The Pitch slider tool to is used to generate pitches at selected frequencies." msgstr "" -#: js/musicutils.js:761 -#: js/synthutils.js:137 -#.TRANS: a drum made from an inverted cup -msgid "cup drum" +#: js/blocks/WidgetBlocks.js:925 +#.TRANS: widget to generate pitches using a slider +msgid "pitch slider" msgstr "" -#: js/musicutils.js:762 -#: js/synthutils.js:139 -#.TRANS: musical instrument -msgid "darbuka drum" +#: js/blocks/WidgetBlocks.js:977 +msgid "chromatic keyboard" msgstr "" -#: js/musicutils.js:763 -#: js/synthutils.js:143 -#.TRANS: musical instrument -msgid "hi hat" +#: js/blocks/WidgetBlocks.js:1011 +#: js/blocks/WidgetBlocks.js:1077 +#.TRANS: widget to generate pitches using a slider +msgid "music keyboard" msgstr "" -#: js/musicutils.js:764 -#: js/synthutils.js:145 -#.TRANS: a small metal bell -msgid "ride bell" +#: js/blocks/WidgetBlocks.js:1062 +#: js/blocks/WidgetBlocks.js:1069 +msgid "The Music keyboard block opens a piano keyboard that can be used to create notes." msgstr "" -#: js/musicutils.js:765 -#: js/synthutils.js:147 -#.TRANS: musical instrument -msgid "cow bell" +#: js/blocks/WidgetBlocks.js:1128 +msgid "The Pitch staircase tool to is used to generate pitches from a given ratio." msgstr "" -#: js/musicutils.js:766 -msgid "japanese drum" +#: js/blocks/WidgetBlocks.js:1135 +#.TRANS: generate a progressive sequence of pitches +msgid "pitch staircase" msgstr "" -#: js/musicutils.js:767 -#: js/synthutils.js:153 -#.TRANS: musical instrument -msgid "japanese bell" +#: js/blocks/WidgetBlocks.js:1222 +msgid "The Rhythm Maker block opens a tool to create drum machines." msgstr "" -#: js/musicutils.js:768 -#: js/synthutils.js:149 -#.TRANS: musical instrument -msgid "triangle bell" +#: js/blocks/WidgetBlocks.js:1291 +msgid "G major scale" msgstr "" -#: js/musicutils.js:769 -#: js/synthutils.js:151 -#.TRANS: musical instrument -msgid "finger cymbals" +#: js/blocks/WidgetBlocks.js:1326 +msgid "C major scale" msgstr "" -#: js/musicutils.js:770 -#: js/synthutils.js:155 -#.TRANS: a musically tuned set of bells -msgid "chime" +#: js/blocks/WidgetBlocks.js:1366 +msgid "The Phrase Maker block opens a tool to create musical phrases." msgstr "" -#: js/musicutils.js:771 -#: js/synthutils.js:157 -#.TRANS: a musical instrument -msgid "gong" +#: js/blocks/WidgetBlocks.js:1373 +#.TRANS: assigns pitch to a sequence of beats to generate a melody +msgid "phrase maker" msgstr "" -#: js/musicutils.js:772 -#: js/synthutils.js:159 -#.TRANS: sound effect -msgid "clang" +#: js/blocks/WidgetBlocks.js:1444 +msgid "You must have at least one pitch block and one rhythm block in the matrix." msgstr "" -#: js/musicutils.js:773 -#: js/synthutils.js:161 -#.TRANS: sound effect -msgid "crash" +#: js/blocks/WidgetBlocks.js:1503 +msgid "The Status block opens a tool for inspecting the status of Music Blocks as it is running." msgstr "" -#: js/musicutils.js:774 -#: js/synthutils.js:163 -#.TRANS: sound effect -msgid "bottle" +#: js/blocks/WidgetBlocks.js:1580 +#.TRANS: AI-generated music +msgid "aimusic" msgstr "" -#: js/musicutils.js:775 -#: js/synthutils.js:165 -#.TRANS: sound effect -msgid "clap" +#: js/turtleactions/MeterActions.js:101 +#: js/turtleactions/MeterActions.js:139 +msgid "beats per minute must be greater than" msgstr "" -#: js/musicutils.js:776 -#: js/synthutils.js:167 -#.TRANS: sound effect -msgid "slap" +#: js/turtleactions/MeterActions.js:111 +#: js/turtleactions/MeterActions.js:149 +msgid "maximum" msgstr "" -#: js/musicutils.js:777 -#: js/synthutils.js:169 -#.TRANS: sound effect -msgid "splash" +#: js/turtleactions/MeterActions.js:117 +#: js/turtleactions/MeterActions.js:155 +msgid "beats per minute is" msgstr "" -#: js/musicutils.js:778 -#: js/synthutils.js:171 -#.TRANS: sound effect -msgid "bubbles" +#: js/turtleactions/DictActions.js:75 +#: js/turtleactions/DictActions.js:142 +#: js/turtleactions/DictActions.js:172 +msgid "font" msgstr "" -#: js/musicutils.js:779 -#: js/synthutils.js:173 -#.TRANS: sound effect -msgid "raindrop" +#: js/turtleactions/DictActions.js:255 +msgid "Dictionary with this name does not exist" msgstr "" -#: js/musicutils.js:780 -#: js/synthutils.js:175 -#.TRANS: animal sound effect -msgid "cat" +#: js/turtleactions/DictActions.js:259 +msgid "Key with this name does not exist in " msgstr "" -#: js/musicutils.js:781 -#: js/synthutils.js:177 -#.TRANS: animal sound effect -msgid "cricket" +#: js/turtleactions/DrumActions.js:227 +msgid "Noise Block: Did you mean to use a Note block?" msgstr "" -#: js/musicutils.js:782 -#: js/synthutils.js:179 -#.TRANS: animal sound effect -msgid "dog" +#: js/turtleactions/IntervalsActions.js:113 +msgid "one" msgstr "" -#: js/musicutils.js:784 -#: js/synthutils.js:86 -#.TRANS: musical instrument -msgid "banjo" +#: js/turtleactions/IntervalsActions.js:113 +msgid "two" msgstr "" -#: js/musicutils.js:785 -#: js/synthutils.js:88 -#.TRANS: musical instrument -msgid "koto" +#: js/turtleactions/IntervalsActions.js:113 +msgid "three" msgstr "" -#: js/musicutils.js:786 -#: js/synthutils.js:90 -#.TRANS: musical instrument -msgid "dulcimer" +#: js/turtleactions/IntervalsActions.js:113 +msgid "four" msgstr "" -#: js/musicutils.js:787 -#: js/synthutils.js:92 -#.TRANS: musical instrument -msgid "electric guitar" +#: js/turtleactions/IntervalsActions.js:113 +msgid "five" msgstr "" -#: js/musicutils.js:788 -#: js/synthutils.js:94 -#.TRANS: musical instrument -msgid "bassoon" +#: js/turtleactions/IntervalsActions.js:113 +msgid "six" msgstr "" -#: js/musicutils.js:789 -#: js/synthutils.js:96 -#.TRANS: musical instrument -msgid "celeste" +#: js/turtleactions/IntervalsActions.js:113 +msgid "seven" msgstr "" -#: js/musicutils.js:791 -#: js/musicutils.js:1123 -#: js/musicutils.js:1131 -#: js/temperament.js:650 -#.TRANS: musical temperament -msgid "equal" +#: js/turtleactions/IntervalsActions.js:113 +msgid "eight" msgstr "" -#: js/musicutils.js:793 -#: js/musicutils.js:1125 -#: js/musicutils.js:1133 -#.TRANS: musical temperament -msgid "Pythagorean" +#: js/turtleactions/IntervalsActions.js:113 +msgid "nine" msgstr "" -#: js/musicutils.js:795 -#: js/musicutils.js:1124 -#: js/musicutils.js:1132 -#.TRANS: musical temperament -msgid "just intonation" +#: js/turtleactions/IntervalsActions.js:119 +msgid "a" msgstr "" -#: js/musicutils.js:797 -#: js/musicutils.js:1126 -#: js/musicutils.js:1127 -#: js/musicutils.js:1134 -#: js/musicutils.js:1135 -#.TRANS: musical temperament -msgid "meantone" +#: js/turtleactions/IntervalsActions.js:120 +msgid "below" msgstr "" -#: js/musicutils.js:814 -msgid "major 7th" +#: js/turtleactions/IntervalsActions.js:124 +msgid "above" msgstr "" -#: js/musicutils.js:815 -msgid "minor 7th" +#: js/turtleactions/IntervalsActions.js:131 +msgid "plus" msgstr "" -#: js/musicutils.js:816 -msgid "dominant 7th" +#: js/turtleactions/IntervalsActions.js:139 +msgid " below" msgstr "" -#: js/musicutils.js:817 -msgid "minor-major 7th" +#: js/turtleactions/IntervalsActions.js:257 +msgid "Adding missing pitch number 0." msgstr "" -#: js/musicutils.js:818 -msgid "fully-diminished 7th" +#: js/turtleactions/IntervalsActions.js:265 +msgid "Ignoring pitch numbers less than zero or greater than eleven." msgstr "" -#: js/musicutils.js:819 -msgid "half-diminished 7th" +#: js/turtleactions/IntervalsActions.js:271 +msgid "Ignoring duplicate pitch numbers." msgstr "" -#: js/musicutils.js:4379 -#: js/musicutils.js:4416 -msgid "current" +#: js/turtleactions/ToneActions.js:134 +msgid "Vibrato intensity must be between 1 and 100." msgstr "" -#: js/musicutils.js:4382 -#: js/musicutils.js:4407 -msgid "next" +#: js/turtleactions/ToneActions.js:139 +msgid "Vibrato rate must be greater than 0." msgstr "" -#: js/musicutils.js:4385 -#: js/musicutils.js:4412 -msgid "previous" +#: js/turtleactions/ToneActions.js:192 +#: js/turtleactions/ToneActions.js:265 +#.TRANS: Depth is the intesity of the tremolo or chorus effect. +msgid "Depth is out of range." msgstr "" -#: js/synthutils.js:104 -#.TRANS: simple monotone synthesizer -msgid "simple-2" +#: js/turtleactions/ToneActions.js:301 +msgid "Distortion must be from 0 to 100." msgstr "" -#: js/synthutils.js:106 -#.TRANS: simple monotone synthesizer -msgid "simple-3" +#: js/turtleactions/ToneActions.js:332 +#.TRANS: partials components in a harmonic series +msgid "Partial must be greater than or equal to 0." msgstr "" -#: js/synthutils.js:108 -#.TRANS: simple monotone synthesizer -msgid "simple-4" +#: js/turtleactions/ToneActions.js:378 +#: js/turtleactions/ToneActions.js:417 +#: js/turtleactions/ToneActions.js:456 +#: js/widgets/timbre.js:782 +msgid "Unable to use synth due to existing oscillator" msgstr "" -#: js/synthutils.js:141 -#.TRANS: musical instrument -msgid "taiko" +#: js/turtleactions/ToneActions.js:388 +#: js/turtleactions/ToneActions.js:427 +msgid "The input cannot be negative." msgstr "" -#: js/modewidget.js:86 -#: js/modewidget.js:88 -#: js/modewidget.js:642 -#: js/modewidget.js:644 -#: js/modewidget.js:712 -#: js/modewidget.js:714 -#: js/temperament.js:2078 -#: js/rhythmruler.js:189 -#: js/rhythmruler.js:1410 -#: js/rhythmruler.js:1412 -#: js/rhythmruler.js:1435 -#: js/rhythmruler.js:1437 -#: js/meterwidget.js:89 -#: js/meterwidget.js:91 +#: js/widgets/modewidget.js:86 +#: js/widgets/modewidget.js:88 +#: js/widgets/modewidget.js:642 +#: js/widgets/modewidget.js:644 +#: js/widgets/modewidget.js:712 +#: js/widgets/modewidget.js:714 +#: js/widgets/meterwidget.js:194 +#: js/widgets/meterwidget.js:196 +#: js/widgets/temperament.js:2236 +#: js/widgets/rhythmruler.js:457 +#: js/widgets/rhythmruler.js:1790 +#: js/widgets/rhythmruler.js:1792 +#: js/widgets/rhythmruler.js:1816 +#: js/widgets/rhythmruler.js:1818 msgid "Play all" msgstr "" -#: js/modewidget.js:115 -#: js/pitchstaircase.js:641 -#: js/phrasemaker.js:339 -#: js/pitchdrummatrix.js:94 -#: js/pitchslider.js:125 -#: js/temperament.js:2083 -#: js/musickeyboard.js:530 -#: js/timbre.js:756 -#: js/meterwidget.js:124 -#: js/arpeggio.js:103 +#: js/widgets/modewidget.js:115 +#: js/widgets/meterwidget.js:229 +#: js/widgets/pitchdrummatrix.js:166 +#: js/widgets/pitchslider.js:125 +#: js/widgets/pitchstaircase.js:641 +#: js/widgets/temperament.js:2244 +#: js/widgets/timbre.js:756 +#: js/widgets/arpeggio.js:103 +#: js/widgets/musickeyboard.js:688 +#: js/widgets/phrasemaker.js:550 msgid "Save" msgstr "" -#: js/modewidget.js:121 -#: js/pitchstaircase.js:686 -#: js/phrasemaker.js:356 -#: js/pitchdrummatrix.js:109 -#: js/musickeyboard.js:534 -#: js/rhythmruler.js:269 -#: js/arpeggio.js:118 +#: js/widgets/modewidget.js:121 +#: js/widgets/pitchdrummatrix.js:181 +#: js/widgets/pitchstaircase.js:686 +#: js/widgets/arpeggio.js:118 +#: js/widgets/musickeyboard.js:696 +#: js/widgets/phrasemaker.js:567 +#: js/widgets/rhythmruler.js:601 #.TRANS: clear all subdivisions from the ruler. msgid "Clear" msgstr "" -#: js/modewidget.js:127 +#: js/widgets/modewidget.js:127 msgid "Rotate counter clockwise" msgstr "" -#: js/modewidget.js:133 +#: js/widgets/modewidget.js:133 msgid "Rotate clockwise" msgstr "" -#: js/modewidget.js:139 +#: js/widgets/modewidget.js:139 msgid "Invert" msgstr "" -#: js/modewidget.js:145 -#: js/pitchstaircase.js:678 -#: js/rhythmruler.js:258 -#: js/timbre.js:963 +#: js/widgets/modewidget.js:145 +#: js/widgets/pitchstaircase.js:678 +#: js/widgets/timbre.js:963 +#: js/widgets/rhythmruler.js:578 msgid "Undo" msgstr "" -#: js/modewidget.js:163 +#: js/widgets/modewidget.js:163 #.TRANS: A circle of notes represents the musical mode. msgid "Click in the circle to select notes for the mode." msgstr "" -#: js/modewidget.js:1017 -#: js/pitchstaircase.js:580 -#: js/phrasemaker.js:4855 -#: js/temperament.js:1754 -#: js/rhythmruler.js:1865 -#: js/rhythmruler.js:2081 -#: js/tempo.js:414 +#: js/widgets/modewidget.js:1017 +#: js/widgets/pitchstaircase.js:580 +#: js/widgets/temperament.js:1929 +#: js/widgets/tempo.js:414 +#: js/widgets/phrasemaker.js:5356 +#: js/widgets/rhythmruler.js:2254 +#: js/widgets/rhythmruler.js:2472 msgid "New action block generated!" msgstr "" -#: js/oscilloscope.js:79 -msgid "Zoom In" -msgstr "" - -#: js/oscilloscope.js:88 -msgid "Zoom Out" -msgstr "" - -#: js/pitchstaircase.js:624 -msgid "Play chord" -msgstr "" - -#: js/pitchstaircase.js:632 -msgid "Play scale" +#: js/widgets/meterwidget.js:275 +msgid "Reset" msgstr "" -#: js/pitchstaircase.js:696 -msgid "Click on a note to create a new step." +#: js/widgets/meterwidget.js:301 +msgid "Click in the circle to select strong beats for the meter." msgstr "" -#: js/phrasemaker.js:363 -msgid "Export" +#: js/widgets/oscilloscope.js:79 +msgid "Zoom In" msgstr "" -#: js/phrasemaker.js:370 -msgid "Sort" +#: js/widgets/oscilloscope.js:88 +msgid "Zoom Out" msgstr "" -#: js/phrasemaker.js:373 -#: js/musickeyboard.js:559 -msgid "Add note" +#: js/widgets/pitchdrummatrix.js:356 +#: js/widgets/pitchdrummatrix.js:752 +msgid "Click in the grid to map notes to drums." msgstr "" -#: js/phrasemaker.js:764 -msgid "Click on the table to add notes." +#: js/widgets/pitchslider.js:103 +msgid "Move up" msgstr "" -#: js/phrasemaker.js:2414 -#: js/phrasemaker.js:2543 -msgid "tuplet value" +#: js/widgets/pitchslider.js:114 +msgid "Move down" msgstr "" -#: js/pitchdrummatrix.js:270 -#: js/pitchdrummatrix.js:639 -msgid "Click in the grid to map notes to drums." +#: js/widgets/pitchslider.js:136 +msgid "Click on the slider to create a note block." msgstr "" -#: js/pitchslider.js:103 -msgid "Move up" +#: js/widgets/pitchstaircase.js:624 +msgid "Play chord" msgstr "" -#: js/pitchslider.js:114 -msgid "Move down" +#: js/widgets/pitchstaircase.js:632 +msgid "Play scale" msgstr "" -#: js/pitchslider.js:136 -msgid "Click on the slider to create a note block." +#: js/widgets/pitchstaircase.js:696 +msgid "Click on a note to create a new step." msgstr "" -#: js/temperament.js:215 +#: js/widgets/temperament.js:321 msgid "back to 2:1 octave space" msgstr "" -#: js/temperament.js:323 +#: js/widgets/temperament.js:447 msgid "edit" msgstr "" -#: js/temperament.js:330 -#: js/temperament.js:332 -#: js/temperament.js:1336 -#: js/temperament.js:1338 +#: js/widgets/temperament.js:454 +#: js/widgets/temperament.js:456 +#: js/widgets/temperament.js:1493 +#: js/widgets/temperament.js:1495 msgid "close" msgstr "" -#: js/temperament.js:423 -#: js/temperament.js:736 -#: js/temperament.js:743 -#: js/temperament.js:845 -#: js/temperament.js:935 -#: js/temperament.js:942 -#: js/temperament.js:1015 -#: js/temperament.js:1284 -#: js/temperament.js:1354 -#: js/temperament.js:1430 +#: js/widgets/temperament.js:552 +#: js/widgets/temperament.js:877 +#: js/widgets/temperament.js:884 +#: js/widgets/temperament.js:986 +#: js/widgets/temperament.js:1080 +#: js/widgets/temperament.js:1087 +#: js/widgets/temperament.js:1160 +#: js/widgets/temperament.js:1433 +#: js/widgets/temperament.js:1511 +#: js/widgets/temperament.js:1596 msgid "done" msgstr "" -#: js/temperament.js:477 -#: js/temperament.js:482 -#: js/temperament.js:918 +#: js/widgets/temperament.js:610 +#: js/widgets/temperament.js:615 +#: js/widgets/temperament.js:1063 msgid "ratio" msgstr "" -#: js/temperament.js:483 +#: js/widgets/temperament.js:616 msgid "interval" msgstr "" -#: js/temperament.js:611 +#: js/widgets/temperament.js:744 msgid "non scalar" msgstr "" -#: js/temperament.js:650 +#: js/widgets/temperament.js:787 msgid "ratios" msgstr "" -#: js/temperament.js:650 +#: js/widgets/temperament.js:787 msgid "arbitrary" msgstr "" -#: js/temperament.js:719 +#: js/widgets/temperament.js:860 msgid "number of divisions" msgstr "" -#: js/temperament.js:741 -#: js/temperament.js:858 -#: js/temperament.js:940 -#: js/temperament.js:1033 +#: js/widgets/temperament.js:882 +#: js/widgets/temperament.js:999 +#: js/widgets/temperament.js:1085 +#: js/widgets/temperament.js:1178 msgid "preview" msgstr "" -#: js/temperament.js:788 +#: js/widgets/temperament.js:929 msgid "The Number of divisions is too large." msgstr "" -#: js/temperament.js:921 +#: js/widgets/temperament.js:1066 msgid "recursion" msgstr "" -#: js/temperament.js:1450 +#: js/widgets/temperament.js:1616 msgid "The octave ratio has changed. This changes temperament significantly." msgstr "" -#: js/temperament.js:2087 +#: js/widgets/temperament.js:2248 msgid "Table" msgstr "" -#: js/temperament.js:2185 +#: js/widgets/temperament.js:2356 msgid "Add pitches" msgstr "" -#: js/musickeyboard.js:570 -msgid "Metronome" +#: js/widgets/tempo.js:78 +#: js/widgets/tempo.js:97 +#: js/widgets/tempo.js:99 +#: js/widgets/aiwidget.js:134 +#: js/widgets/aiwidget.js:136 +#: js/widgets/rhythmruler.js:681 +#: js/widgets/rhythmruler.js:683 +#: js/widgets/rhythmruler.js:1864 +#: js/widgets/rhythmruler.js:1866 +#: js/widgets/sampler.js:180 +#: js/widgets/sampler.js:182 +msgid "Pause" msgstr "" -#: js/musickeyboard.js:1296 -#: plugins/rodi.rtp:193 -msgid "duration" +#: js/widgets/tempo.js:113 +msgid "Save tempo" msgstr "" -#: js/musickeyboard.js:2840 -msgid "New action blocks generated!" +#: js/widgets/tempo.js:144 +msgid "speed up" msgstr "" -#: js/musickeyboard.js:2841 -msgid "New action block generated" +#: js/widgets/tempo.js:150 +msgid "slow down" msgstr "" -#: js/musickeyboard.js:2984 -#: js/musickeyboard.js:2992 -msgid "MIDI device present." +#: js/widgets/tempo.js:194 +msgid "Adjust the tempo with the buttons." msgstr "" -#: js/musickeyboard.js:2995 -msgid "No MIDI device found." +#: js/widgets/tempo.js:261 +msgid "Please enter a number between 30 and 1000" msgstr "" -#: js/musickeyboard.js:3000 -msgid "Failed to get MIDI access in browser." +#: js/widgets/tempo.js:268 +#: js/widgets/tempo.js:271 +msgid "The beats per minute must be between 30 and 1000." msgstr "" -#: js/rhythmruler.js:202 -msgid "Save rhythms" +#: js/widgets/tempo.js:287 +msgid "The beats per minute must be below 1000." msgstr "" -#: js/rhythmruler.js:222 -msgid "Save drum machine" +#: js/widgets/tempo.js:303 +msgid "The beats per minute must be above 30" msgstr "" -#: js/rhythmruler.js:263 -#.TRANS: user can tap out a rhythm by clicking on a ruler. -msgid "Tap a rhythm" +#: js/widgets/timbre.js:766 +msgid "Synthesizer" msgstr "" -#: js/rhythmruler.js:342 -#: js/rhythmruler.js:344 -#: js/rhythmruler.js:1481 -#: js/rhythmruler.js:1483 -#: js/sampler.js:110 -#: js/sampler.js:112 -#: js/tempo.js:78 -#: js/tempo.js:97 -#: js/tempo.js:99 -msgid "Pause" +#: js/widgets/timbre.js:789 +msgid "Oscillator" msgstr "" -#: js/rhythmruler.js:478 -msgid "Click on the ruler to divide it." +#: js/widgets/timbre.js:840 +msgid "Envelope" msgstr "" -#: js/rhythmruler.js:603 -#: js/rhythmruler.js:605 -#: js/rhythmruler.js:804 -#: js/rhythmruler.js:806 -#: js/rhythmruler.js:1386 -#: js/rhythmruler.js:1388 -msgid "tap a rhythm" +#: js/widgets/timbre.js:886 +#: planet/js/GlobalTag.js:50 +#.TRANS: On the Planet, we use labels to tag projects. +msgid "Effects" msgstr "" -#: js/rhythmruler.js:1084 -msgid "Maximum value of 256 has been exceeded." +#: js/widgets/timbre.js:904 +msgid "Filter" msgstr "" -#: js/sampler.js:137 -msgid "Warning: Sample is bigger than 1MB." +#: js/widgets/timbre.js:946 +msgid "Add filter" msgstr "" -#: js/sampler.js:142 -msgid "Upload failed: Sample is not a .wav file." +#: js/widgets/timbre.js:987 +msgid "Click on buttons to open the timbre design tools." msgstr "" -#: js/sampler.js:164 -msgid "A new sample block was generated." +#: js/widgets/timbre.js:1273 +msgid "harmonicity" msgstr "" -#: js/sampler.js:255 -msgid "Upload sample" +#: js/widgets/timbre.js:1340 +#: js/widgets/timbre.js:1406 +msgid "modulation index" msgstr "" -#: js/sampler.js:306 -msgid "Save sample" +#: js/widgets/timbre.js:1484 +msgid "vibrato amount" msgstr "" -#: js/sampler.js:697 -#.TRANS: The reference tone is a sound used for comparison. -msgid "reference tone" +#: js/widgets/timbre.js:1919 +msgid "Filter already present." msgstr "" -#: js/tempo.js:113 -msgid "Save tempo" +#: js/widgets/timbre.js:2322 +msgid "delay (MS)" msgstr "" -#: js/tempo.js:144 -msgid "speed up" +#: js/widgets/timbre.js:2507 +msgid "distortion amount" msgstr "" -#: js/tempo.js:150 -msgid "slow down" +#: js/widgets/aiwidget.js:180 +#: js/widgets/sampler.js:227 +msgid "Warning: Sample is bigger than 1MB." msgstr "" -#: js/tempo.js:194 -msgid "Adjust the tempo with the buttons." +#: js/widgets/aiwidget.js:539 +msgid "New start block generated" msgstr "" -#: js/tempo.js:261 -msgid "Please enter a number between 30 and 1000" +#: js/widgets/aiwidget.js:541 +msgid "MIDI loading. This may take some time depending upon the number of notes in the track" msgstr "" -#: js/tempo.js:268 -#: js/tempo.js:271 -msgid "The beats per minute must be between 30 and 1000." +#: js/widgets/aiwidget.js:551 +#: js/widgets/sampler.js:254 +msgid "Upload failed: Sample is not a .wav file." msgstr "" -#: js/tempo.js:287 -msgid "The beats per minute must be below 1000." +#: js/widgets/aiwidget.js:679 +#: js/widgets/sampler.js:432 +msgid "Save sample" msgstr "" -#: js/tempo.js:303 -msgid "The beats per minute must be above 30" +#: js/widgets/aiwidget.js:701 +msgid "AI Music" msgstr "" -#: js/timbre.js:766 -msgid "Synthesizer" +#: js/widgets/arpeggio.js:239 +msgid "Click in the grid to add steps to the arpeggio." msgstr "" -#: js/timbre.js:789 -msgid "Oscillator" +#: js/widgets/help.js:95 +#: js/widgets/help.js:125 +#: js/widgets/help.js:146 +#: js/widgets/help.js:158 +#: js/widgets/help.js:376 +#: js/widgets/help.js:391 +msgid "Take a tour" msgstr "" -#: js/timbre.js:840 -msgid "Envelope" +#: js/widgets/musickeyboard.js:725 +#: js/widgets/phrasemaker.js:584 +msgid "Add note" msgstr "" -#: js/timbre.js:886 -#: js/GlobalTag.js:50 -#.TRANS: On the Planet, we use labels to tag projects. -msgid "Effects" +#: js/widgets/musickeyboard.js:744 +msgid "Metronome" +msgstr "" + +#: js/widgets/musickeyboard.js:1549 +#: plugins/rodi.rtp:193 +msgid "duration" +msgstr "" + +#: js/widgets/musickeyboard.js:3179 +msgid "New action blocks generated" +msgstr "" + +#: js/widgets/musickeyboard.js:3180 +msgid "New action block generated" msgstr "" -#: js/timbre.js:904 -msgid "Filter" +#: js/widgets/musickeyboard.js:3365 +#: js/widgets/musickeyboard.js:3373 +msgid "MIDI device present." msgstr "" -#: js/timbre.js:946 -msgid "Add filter" +#: js/widgets/musickeyboard.js:3376 +msgid "No MIDI device found." msgstr "" -#: js/timbre.js:987 -msgid "Click on buttons to open the timbre design tools." +#: js/widgets/musickeyboard.js:3386 +msgid "Failed to get MIDI access in browser." msgstr "" -#: js/timbre.js:1273 -msgid "harmonicity" +#: js/widgets/phrasemaker.js:574 +msgid "Export" msgstr "" -#: js/timbre.js:1340 -#: js/timbre.js:1406 -msgid "modulation index" +#: js/widgets/phrasemaker.js:581 +msgid "Sort" msgstr "" -#: js/timbre.js:1484 -msgid "vibrato amount" +#: js/widgets/phrasemaker.js:975 +msgid "Click on the table to add notes." msgstr "" -#: js/timbre.js:1919 -msgid "Filter already present." +#: js/widgets/phrasemaker.js:2677 +#: js/widgets/phrasemaker.js:2819 +msgid "tuplet value" msgstr "" -#: js/timbre.js:2322 -msgid "delay (MS)" +#: js/widgets/rhythmruler.js:486 +msgid "Save rhythms" msgstr "" -#: js/timbre.js:2507 -msgid "distortion amount" +#: js/widgets/rhythmruler.js:512 +msgid "Save drum machine" msgstr "" -#: js/meterwidget.js:170 -msgid "Reset" +#: js/widgets/rhythmruler.js:589 +#.TRANS: user can tap out a rhythm by clicking on a ruler. +msgid "Tap a rhythm" msgstr "" -#: js/meterwidget.js:196 -msgid "Click in the circle to select strong beats for the meter." +#: js/widgets/rhythmruler.js:817 +msgid "Click on the ruler to divide it." msgstr "" -#: js/arpeggio.js:239 -msgid "Click in the grid to add steps to the arpeggio." +#: js/widgets/rhythmruler.js:950 +#: js/widgets/rhythmruler.js:952 +#: js/widgets/rhythmruler.js:1152 +#: js/widgets/rhythmruler.js:1154 +#: js/widgets/rhythmruler.js:1765 +#: js/widgets/rhythmruler.js:1767 +msgid "tap a rhythm" msgstr "" -#: js/ProjectStorage.js:243 -msgid "anonymous" +#: js/widgets/rhythmruler.js:1459 +msgid "Maximum value of 256 has been exceeded." msgstr "" -#: js/GlobalCard.js:68 -msgid "Share" +#: js/widgets/sampler.js:237 +msgid "Recording started..." msgstr "" -#: js/GlobalCard.js:74 -msgid "Flags" +#: js/widgets/sampler.js:245 +msgid "Recording complete..." msgstr "" -#: js/LocalCard.js:36 -msgid "View published project" +#: js/widgets/sampler.js:283 +msgid "A new sample block was generated." msgstr "" -#: js/LocalCard.js:42 -msgid "Publish project" +#: js/widgets/sampler.js:378 +msgid "Upload sample" msgstr "" -#: js/LocalCard.js:51 -msgid "Edit project" +#: js/widgets/sampler.js:399 +msgid "Warning: Your sample cannot be loaded because it is >1MB." msgstr "" -#: js/LocalCard.js:52 -msgid "Delete project" +#: js/widgets/sampler.js:448 +msgid "Toggle Mic" msgstr "" -#: js/LocalCard.js:53 -msgid "Download project" +#: js/widgets/sampler.js:458 +msgid "Playback" msgstr "" -#: js/LocalCard.js:55 -msgid "Duplicate project" +#: js/widgets/sampler.js:979 +#.TRANS: The reference tone is a sound used for comparison. +msgid "reference tone" msgstr "" -#: js/GlobalTag.js:28 +#: planet/js/GlobalTag.js:28 #.TRANS: On the Planet, we use labels to tag projects. msgid "All Projects" msgstr "" -#: js/GlobalTag.js:30 -#: js/StringHelper.js:37 +#: planet/js/GlobalTag.js:30 +#: planet/js/StringHelper.js:37 #.TRANS: On the Planet, we use labels to tag projects. msgid "My Projects" msgstr "" -#: js/GlobalTag.js:32 +#: planet/js/GlobalTag.js:32 #.TRANS: On the Planet, we use labels to tag projects. msgid "Examples" msgstr "" -#: js/GlobalTag.js:34 +#: planet/js/GlobalTag.js:34 #.TRANS: On the Planet, we use labels to tag projects. msgid "Music" msgstr "" -#: js/GlobalTag.js:36 +#: planet/js/GlobalTag.js:36 #.TRANS: On the Planet, we use labels to tag projects. msgid "Art" msgstr "" -#: js/GlobalTag.js:38 +#: planet/js/GlobalTag.js:38 #.TRANS: On the Planet, we use labels to tag projects. msgid "Math" msgstr "" -#: js/GlobalTag.js:40 +#: planet/js/GlobalTag.js:40 #.TRANS: On the Planet, we use labels to tag projects. msgid "Interactive" msgstr "" -#: js/GlobalTag.js:42 +#: planet/js/GlobalTag.js:42 #.TRANS: On the Planet, we use labels to tag projects. msgid "Design" msgstr "" -#: js/GlobalTag.js:44 +#: planet/js/GlobalTag.js:44 #.TRANS: On the Planet, we use labels to tag projects. msgid "Game" msgstr "" -#: js/GlobalTag.js:46 +#: planet/js/GlobalTag.js:46 #.TRANS: On the Planet, we use labels to tag projects. msgid "Media" msgstr "" -#: js/GlobalTag.js:48 +#: planet/js/GlobalTag.js:48 #.TRANS: On the Planet, we use labels to tag projects. msgid "Sensors" msgstr "" -#: js/GlobalTag.js:52 +#: planet/js/GlobalTag.js:52 #.TRANS: On the Planet, we use labels to tag projects. msgid "Code Snippet" msgstr "" -#: js/helper.js:149 -#: js/StringHelper.js:49 -msgid "Show more tags" +#: planet/js/LocalCard.js:36 +msgid "View published project" msgstr "" -#: js/helper.js:150 -msgid "Show fewer tags" +#: planet/js/LocalCard.js:42 +msgid "Publish project" +msgstr "" + +#: planet/js/LocalCard.js:51 +msgid "Edit project" +msgstr "" + +#: planet/js/LocalCard.js:52 +msgid "Delete project" +msgstr "" + +#: planet/js/LocalCard.js:53 +msgid "Download project" +msgstr "" + +#: planet/js/LocalCard.js:55 +msgid "Duplicate project" +msgstr "" + +#: planet/js/ProjectStorage.js:243 +msgid "anonymous" +msgstr "" + +#: planet/js/SaveInterface.js:34 +msgid "Open in Music Blocks" +msgstr "" + +#: planet/js/SaveInterface.js:35 +msgid "Open in Turtle Blocks" +msgstr "" + +#: planet/js/GlobalCard.js:68 +msgid "Share" +msgstr "" + +#: planet/js/GlobalCard.js:74 +msgid "Flags" +msgstr "" + +#: planet/js/GlobalPlanet.js:35 +msgid "No results found." +msgstr "" + +#: planet/js/GlobalPlanet.js:51 +msgid "Remix of" +msgstr "" + +#: planet/js/GlobalPlanet.js:509 +msgid "Cannot connect to server" msgstr "" -#: js/ProjectViewer.js:30 +#: planet/js/ProjectViewer.js:30 msgid "Error: Report could not be submitted. Try again later." msgstr "" -#: js/ProjectViewer.js:31 +#: planet/js/ProjectViewer.js:31 msgid "Thank you for reporting this project. A moderator will review the project shortly, to verify violation of the Sugar Labs Code of Conduct." msgstr "" -#: js/ProjectViewer.js:32 -#: js/StringHelper.js:62 -#: js/StringHelper.js:64 -#: js/StringHelper.js:68 +#: planet/js/ProjectViewer.js:32 +#: planet/js/StringHelper.js:62 +#: planet/js/StringHelper.js:64 +#: planet/js/StringHelper.js:68 msgid "Report Project" msgstr "" -#: js/ProjectViewer.js:33 -#: js/StringHelper.js:63 +#: planet/js/ProjectViewer.js:33 +#: planet/js/StringHelper.js:63 msgid "Project Reported" msgstr "" -#: js/ProjectViewer.js:34 +#: planet/js/ProjectViewer.js:34 msgid "Report description required" msgstr "" -#: js/ProjectViewer.js:35 +#: planet/js/ProjectViewer.js:35 msgid "Report description too long" msgstr "" -#: js/StringHelper.js:30 +#: planet/js/Publisher.js:30 +msgid "Feature unavailable - cannot connect to server. Reload Music Blocks to try again." +msgstr "" + +#: planet/js/Publisher.js:220 +#: planet/js/Publisher.js:237 +msgid "This field is required" +msgstr "" + +#: planet/js/Publisher.js:227 +msgid "Title too long" +msgstr "" + +#: planet/js/Publisher.js:244 +msgid "Description too long" +msgstr "" + +#: planet/js/Publisher.js:341 +msgid "Server Error" +msgstr "" + +#: planet/js/Publisher.js:341 +msgid "Try Again" +msgstr "" + +#: planet/js/StringHelper.js:30 msgid "Planet" msgstr "" -#: js/StringHelper.js:31 +#: planet/js/StringHelper.js:31 msgid "Close Planet" msgstr "" -#: js/StringHelper.js:32 +#: planet/js/StringHelper.js:32 msgid "Open project from file" msgstr "" -#: js/StringHelper.js:34 +#: planet/js/StringHelper.js:34 msgid "Local" msgstr "" -#: js/StringHelper.js:35 +#: planet/js/StringHelper.js:35 msgid "Global" msgstr "" -#: js/StringHelper.js:36 +#: planet/js/StringHelper.js:36 msgid "Search for a project" msgstr "" -#: js/StringHelper.js:38 +#: planet/js/StringHelper.js:38 msgid "Publish Project" msgstr "" -#: js/StringHelper.js:40 +#: planet/js/StringHelper.js:40 msgid "Tags (max 5)" msgstr "" -#: js/StringHelper.js:41 -#: js/StringHelper.js:61 +#: planet/js/StringHelper.js:41 +#: planet/js/StringHelper.js:61 msgid "Description" msgstr "" -#: js/StringHelper.js:42 -#: js/StringHelper.js:67 +#: planet/js/StringHelper.js:42 +#: planet/js/StringHelper.js:67 msgid "Submit" msgstr "" -#: js/StringHelper.js:43 -#: js/StringHelper.js:47 +#: planet/js/StringHelper.js:43 +#: planet/js/StringHelper.js:47 msgid "Cancel" msgstr "" -#: js/StringHelper.js:44 +#: planet/js/StringHelper.js:44 msgid "Delete \\"\\"?" msgstr "" -#: js/StringHelper.js:45 +#: planet/js/StringHelper.js:45 msgid "Permanently delete project \\"\\"?" msgstr "" -#: js/StringHelper.js:48 +#: planet/js/StringHelper.js:48 msgid "Explore Projects" msgstr "" -#: js/StringHelper.js:50 +#: planet/js/StringHelper.js:49 +#: planet/js/helper.js:149 +msgid "Show more tags" +msgstr "" + +#: planet/js/StringHelper.js:50 msgid "Most recent" msgstr "" -#: js/StringHelper.js:51 +#: planet/js/StringHelper.js:51 msgid "Most liked" msgstr "" -#: js/StringHelper.js:52 +#: planet/js/StringHelper.js:52 msgid "Most downloaded" msgstr "" -#: js/StringHelper.js:53 +#: planet/js/StringHelper.js:53 msgid "A-Z" msgstr "" -#: js/StringHelper.js:54 +#: planet/js/StringHelper.js:54 msgid "Sort by" msgstr "" -#: js/StringHelper.js:55 +#: planet/js/StringHelper.js:55 msgid "Load More Projects" msgstr "" -#: js/StringHelper.js:56 +#: planet/js/StringHelper.js:56 msgid "Last Updated" msgstr "" -#: js/StringHelper.js:57 +#: planet/js/StringHelper.js:57 msgid "Creation Date" msgstr "" -#: js/StringHelper.js:58 +#: planet/js/StringHelper.js:58 msgid "Number of Downloads:" msgstr "" -#: js/StringHelper.js:59 +#: planet/js/StringHelper.js:59 msgid "Number of Likes:" msgstr "" -#: js/StringHelper.js:60 +#: planet/js/StringHelper.js:60 msgid "Tags:" msgstr "" -#: js/StringHelper.js:65 +#: planet/js/StringHelper.js:65 msgid "Report projects which violate the Sugar Labs Code of Conduct." msgstr "" -#: js/StringHelper.js:66 +#: planet/js/StringHelper.js:66 msgid "Reason for reporting project" msgstr "" -#: js/StringHelper.js:70 +#: planet/js/StringHelper.js:70 msgid "Download as File" msgstr "" -#: js/GlobalPlanet.js:35 -msgid "No results found." -msgstr "" - -#: js/GlobalPlanet.js:51 -msgid "Remix of" -msgstr "" - -#: js/GlobalPlanet.js:509 -msgid "Cannot connect to server" -msgstr "" - -#: js/Publisher.js:30 -msgid "Feature unavailable - cannot connect to server. Reload Music Blocks to try again." -msgstr "" - -#: js/Publisher.js:218 -#: js/Publisher.js:235 -msgid "This field is required" -msgstr "" - -#: js/Publisher.js:225 -msgid "Title too long" +#: planet/js/helper.js:150 +msgid "Show fewer tags" msgstr "" -#: js/Publisher.js:242 -msgid "Description too long" +#: plugins/accelerometer.rtp:48 +msgid "motion x" msgstr "" -#: js/Publisher.js:339 -msgid "Server Error" +#: plugins/accelerometer.rtp:56 +msgid "motion y" msgstr "" -#: js/Publisher.js:339 -msgid "Try Again" +#: plugins/accelerometer.rtp:64 +msgid "motion z" msgstr "" -#: js/SaveInterface.js:34 -msgid "Open in Music Blocks" +#: plugins/facebook.rtp:27 +msgid "publish" msgstr "" -#: js/SaveInterface.js:35 -msgid "Open in Turtle Blocks" +#: plugins/maths.rtp:62 +msgid "power" msgstr "" -#: plugins/weather.rtp:68 -#: plugins/weather.rtp:97 -msgid "Days ahead must be in the range of -1 to 5." +#: plugins/maths.rtp:62 +msgid "base" msgstr "" -#: plugins/weather.rtp:122 -msgid "forecast" +#: plugins/maths.rtp:62 +msgid "exp" msgstr "" -#: plugins/weather.rtp:123 -#: plugins/weather.rtp:137 -#: plugins/weather.rtp:150 -msgid "city" +#: plugins/maths.rtp:99 +msgid "floor" msgstr "" -#: plugins/weather.rtp:124 -#: plugins/weather.rtp:138 -#: plugins/weather.rtp:151 -msgid "day" +#: plugins/maths.rtp:104 +msgid "ceiling" msgstr "" -#: plugins/weather.rtp:136 -msgid "high" +#: plugins/maths.rtp:109 +msgid "to degrees" msgstr "" -#: plugins/weather.rtp:149 -msgid "low" +#: plugins/maths.rtp:114 +msgid "to radians" msgstr "" #: plugins/nutrition.rtp:104 @@ -9458,45 +9867,6 @@ msgstr "" msgid "water" msgstr "" -#: plugins/maths.rtp:62 -#: plugins/examples.rtp:93 -msgid "power" -msgstr "" - -#: plugins/maths.rtp:62 -#: plugins/examples.rtp:93 -msgid "base" -msgstr "" - -#: plugins/maths.rtp:62 -#: plugins/examples.rtp:93 -msgid "exp" -msgstr "" - -#: plugins/maths.rtp:99 -#: plugins/examples.rtp:130 -msgid "floor" -msgstr "" - -#: plugins/maths.rtp:104 -#: plugins/examples.rtp:135 -msgid "ceiling" -msgstr "" - -#: plugins/maths.rtp:109 -#: plugins/examples.rtp:140 -msgid "to degrees" -msgstr "" - -#: plugins/maths.rtp:114 -#: plugins/examples.rtp:145 -msgid "to radians" -msgstr "" - -#: plugins/facebook.rtp:27 -msgid "publish" -msgstr "" - #: plugins/rodi.rtp:172 msgid "blink" msgstr "" @@ -9525,18 +9895,66 @@ msgstr "" msgid "move" msgstr "" -#: plugins/accelerometer.rtp:48 -msgid "motion x" +#: plugins/weather.rtp:68 +#: plugins/weather.rtp:97 +msgid "Days ahead must be in the range of -1 to 5." msgstr "" -#: plugins/accelerometer.rtp:56 -msgid "motion y" +#: plugins/weather.rtp:122 +msgid "forecast" msgstr "" -#: plugins/accelerometer.rtp:64 -msgid "motion z" +#: plugins/weather.rtp:123 +#: plugins/weather.rtp:137 +#: plugins/weather.rtp:150 +msgid "city" +msgstr "" + +#: plugins/weather.rtp:124 +#: plugins/weather.rtp:138 +#: plugins/weather.rtp:151 +msgid "day" +msgstr "" + +#: plugins/weather.rtp:136 +msgid "high" +msgstr "" + +#: plugins/weather.rtp:149 +msgid "low" msgstr "" +#: js/toolbar.js:70 + +#: js/toolbar.js:130 + +#: js/toolbar.js:194 + +#: js/toolbar.js:249 + +#~msgid "Toggle JavaScript Editor" +#~msgstr "" + +#: js/EnsembleBlocks.js:643 + +#~msgid "The Turrle pitch block returns the current pitch number being played by the specified turtle." +#~msgstr "" + +#: js/PitchActions.js:88 + +#~msgid "The Scalar Step Block must be used inside of a Note Block." +#~msgstr "" + +#: js/PitchActions.js:107 + +#~msgid "The Scalar Step Block must be preceded by a Pitch Block." +#~msgstr "" + +#: js/musickeyboard.js:2840 + +#~msgid "New action blocks generated!" +#~msgstr "" + #: js/toolbar.js:110 #: js/toolbar.js:204 @@ -9877,11 +10295,6 @@ msgstr "" #~msgid "The Time block returns the number of seconds that the program has been running." #~msgstr "" -#: js/help.js:95 - -#~msgid "Take a tour" -#~msgstr "" - #: js/GlobalCard.js:48 #~msgid "More Details" @@ -12780,11 +13193,6 @@ msgstr "" #~msgid "The save-stack button saves a stack onto a custom palette. It appears after a \"long press\" on a stack." #~msgstr "" -#: js/musicutils.js:254 - -#~msgid "Custom" -#~msgstr "" - #: js/basicblocks.js:4785 #~msgid "Rhythm" diff --git a/po/ta.po b/po/ta.po index 628befcec6..3958fbf9e6 100644 --- a/po/ta.po +++ b/po/ta.po @@ -14,9334 +14,7622 @@ #js/toolbar.js:230 #js/turtledefs.js:504 #js/turtledefs.js:505 -msgid: "Toggle Fullscreen" -msgstr: "தமிழ்" - -#: js/activity.js:443 -#: js/activity.js:443 -#: js/activity.js:445 -#: js/activity.js:453 -#: js/activity.js:472 -#: js/activity.js:472 -#: js/activity.js:475 -#: js/block.js:632 -#: js/pitchdrummatrix.js:178 -#: js/musicutils.js:37 -#: js/block.js:531 -#: js/pitchdrummatrix.js:235 -#: js/musicutils.js:40 -#: js/block.js:532 -#: js/pitchdrummatrix.js:235 -#: js/musicutils.js:40 -#: js/block.js:534 -#: js/pitchdrummatrix.js:235 -#: js/musicutils.js:40 -#: js/block.js:534 -#: js/pitchdrummatrix.js:235 -#: js/musicutils.js:40 -#: js/block.js:534 -#: js/pitchdrummatrix.js:235 -#: js/musicutils.js:40 -#: js/block.js:535 -#: js/pitchdrummatrix.js:235 -#: js/musicutils.js:43 -#: js/block.js:535 -#: js/pitchdrummatrix.js:235 -#: js/musicutils.js:43 -#: js/block.js:535 -#: js/pitchdrummatrix.js:235 -#: js/musicutils.js:43 -#: js/block.js:535 -#: js/pitchdrummatrix.js:235 -#: js/musicutils.js:43 -#: js/block.js:535 -#: js/pitchdrummatrix.js:235 -#: js/musicutils.js:43 -#: js/block.js:535 -#: js/pitchdrummatrix.js:235 -#: js/musicutils.js:43 -#: js/block.js:535 -#: js/pitchdrummatrix.js:235 -#: js/musicutils.js:43 -#: js/block.js:535 -#: js/pitchdrummatrix.js:235 -#: js/musicutils.js:43 -#: js/block.js:535 -#: js/pitchdrummatrix.js:235 -#: js/musicutils.js:43 -#: js/block.js:535 -#: js/pitchdrummatrix.js:235 -#: js/musicutils.js:43 -#: js/block.js:535 -#: js/pitchdrummatrix.js:235 -#: js/musicutils.js:43 -#: js/block.js:535 -#: js/pitchdrummatrix.js:235 -#: js/musicutils.js:43 -#: js/block.js:535 -#: js/pitchdrummatrix.js:235 -#: js/musicutils.js:43 -#: js/synthutils.js:14 -#: js/block.js:535 -#: js/pitchdrummatrix.js:235 -#: js/musicutils.js:43 -#: js/block.js:535 -#: js/pitchdrummatrix.js:235 -#: js/musicutils.js:43 -#: js/block.js:535 -#: js/pitchdrummatrix.js:235 -#: js/musicutils.js:43 -#: js/block.js:535 -#: js/pitchdrummatrix.js:235 -#: js/musicutils.js:43 -#: js/block.js:535 -#: js/pitchdrummatrix.js:235 -#: js/musicutils.js:43 -#: js/block.js:535 -#: js/pitchdrummatrix.js:235 -#: js/musicutils.js:43 -#: js/block.js:535 -#: js/pitchdrummatrix.js:235 -#: js/musicutils.js:43 -#: js/block.js:535 -#: js/pitchdrummatrix.js:235 -#: js/musicutils.js:43 -#: js/block.js:535 -#: js/pitchdrummatrix.js:235 -#: js/musicutils.js:43 -#: js/block.js:535 -#: js/pitchdrummatrix.js:235 -#: js/musicutils.js:43 -#: js/block.js:535 -#: js/pitchdrummatrix.js:235 -#: js/musicutils.js:43 -#: js/block.js:536 -#: js/pitchdrummatrix.js:235 -#: js/musicutils.js:45 -#: js/block.js:536 -#: js/pitchdrummatrix.js:235 -#: js/musicutils.js:45 -#: js/block.js:551 -#: js/pitchdrummatrix.js:235 -#: js/musicutils.js:46 -#: js/block.js:551 -#: js/pitchdrummatrix.js:235 -#: js/musicutils.js:46 -#: js/block.js:565 -#: js/pitchdrummatrix.js:235 -#: js/musicutils.js:48 -#: js/musicutils.js:57 -#: js/block.js:565 -#: js/pitchdrummatrix.js:235 -#: js/musicutils.js:48 -#: js/musicutils.js:57 -#: js/block.js:565 -#: js/pitchdrummatrix.js:235 -#: js/musicutils.js:48 -#: js/musicutils.js:57 -#: js/block.js:567 -#: js/pitchdrummatrix.js:235 -#: js/musicutils.js:48 -#: js/musicutils.js:57 -#: js/block.js:720 -#: js/block.js:3892 -#: js/block.js:3901 -#: js/block.js:3912 -#: js/activity.js:2732 -#: js/analytics.js:475 -#: js/palette.js:676 -#: js/palette.js:685 -#: js/palette.js:694 -#: js/palette.js:703 -#: js/palette.js:1978 -#: js/palette.js:1989 -#: js/palette.js:2000 -#: js/palette.js:2011 -#: js/turtledefs.js:23 -#: js/basicblocks.js:1148 -#: js/basicblocks.js:1159 -#: js/basicblocks.js:2806 -#: js/basicblocks.js:2837 -#: js/basicblocks.js:2844 -#: js/basicblocks.js:2873 -#: js/basicblocks.js:2883 -#: js/basicblocks.js:2915 -#: js/basicblocks.js:2960 -#: js/basicblocks.js:2964 -#: js/basicblocks.js:2970 -#: js/macros.js:44 -#: js/blocks.js:784 -#: js/blocks.js:2385 -#: js/blocks.js:2386 -#: js/blocks.js:2578 -#: js/blocks.js:2784 -#: js/blocks.js:2940 -#: js/blocks.js:3503 -#: js/blocks.js:4308 -#: js/block.js:720 -#: js/block.js:3892 -#: js/block.js:3901 -#: js/block.js:3912 -#: js/activity.js:2732 -#: js/analytics.js:475 -#: js/palette.js:681 -#: js/palette.js:690 -#: js/palette.js:699 -#: js/palette.js:708 -#: js/palette.js:1983 -#: js/palette.js:1994 -#: js/palette.js:2005 -#: js/palette.js:2016 -#: js/turtledefs.js:23 -#: js/basicblocks.js:1148 -#: js/basicblocks.js:1159 -#: js/basicblocks.js:1170 -#: js/basicblocks.js:2817 -#: js/basicblocks.js:2848 -#: js/basicblocks.js:2855 -#: js/basicblocks.js:2884 -#: js/basicblocks.js:2894 -#: js/basicblocks.js:2926 -#: js/basicblocks.js:2971 -#: js/basicblocks.js:2975 -#: js/basicblocks.js:2981 -#: js/macros.js:44 -#: js/blocks.js:784 -#: js/blocks.js:2385 -#: js/blocks.js:2386 -#: js/blocks.js:2578 -#: js/blocks.js:2784 -#: js/blocks.js:2940 -#: js/blocks.js:3514 -#: js/blocks.js:4319 -#: js/block.js:720 -#: js/block.js:3892 -#: js/block.js:3901 -#: js/block.js:3912 -#: js/activity.js:2732 -#: js/analytics.js:475 -#: js/palette.js:681 -#: js/palette.js:690 -#: js/palette.js:699 -#: js/palette.js:708 -#: js/palette.js:1983 -#: js/palette.js:1994 -#: js/palette.js:2005 -#: js/palette.js:2016 -#: js/turtledefs.js:23 -#: js/basicblocks.js:1148 -#: js/basicblocks.js:1159 -#: js/basicblocks.js:1170 -#: js/basicblocks.js:2817 -#: js/basicblocks.js:2848 -#: js/basicblocks.js:2855 -#: js/basicblocks.js:2884 -#: js/basicblocks.js:2894 -#: js/basicblocks.js:2926 -#: js/basicblocks.js:2971 -#: js/basicblocks.js:2975 -#: js/basicblocks.js:2981 -#: js/macros.js:44 -#: js/blocks.js:784 -#: js/blocks.js:2385 -#: js/blocks.js:2386 -#: js/blocks.js:2578 -#: js/blocks.js:2784 -#: js/blocks.js:2940 -#: js/blocks.js:3514 -#: js/blocks.js:4319 -#: js/block.js:863 -#: js/block.js:4105 -#: js/block.js:4114 -#: js/block.js:4125 -#: js/activity.js:2934 -#: js/palette.js:734 -#: js/palette.js:745 -#: js/palette.js:754 -#: js/palette.js:763 -#: js/palette.js:2076 -#: js/palette.js:2088 -#: js/palette.js:2099 -#: js/palette.js:2110 -#: js/turtledefs.js:23 -#: js/basicblocks.js:1406 -#: js/basicblocks.js:1420 -#: js/basicblocks.js:1434 -#: js/basicblocks.js:3700 -#: js/basicblocks.js:3740 -#: js/basicblocks.js:3750 -#: js/basicblocks.js:3788 -#: js/basicblocks.js:3801 -#: js/basicblocks.js:3852 -#: js/basicblocks.js:3897 -#: js/basicblocks.js:3902 -#: js/basicblocks.js:3907 -#: js/rubrics.js:475 -#: js/macros.js:44 -#: js/blocks.js:863 -#: js/blocks.js:2466 -#: js/blocks.js:2467 -#: js/blocks.js:2659 -#: js/blocks.js:2865 -#: js/blocks.js:3021 -#: js/blocks.js:3661 -#: js/blocks.js:4458 -#: js/rhythmruler.js:1138 -#: js/rhythmruler.js:1140 -#: js/rhythmruler.js:1240 -#: js/rhythmruler.js:1242 -#: js/block.js:876 -#: js/block.js:4289 -#: js/block.js:4298 -#: js/block.js:4309 -#: js/activity.js:3042 -#: js/palette.js:750 -#: js/palette.js:759 -#: js/palette.js:768 -#: js/palette.js:777 -#: js/palette.js:2057 -#: js/palette.js:2068 -#: js/palette.js:2079 -#: js/palette.js:2090 -#: js/palette.js:2100 -#: js/turtledefs.js:23 -#: js/basicblocks.js:1407 -#: js/basicblocks.js:1421 -#: js/basicblocks.js:1435 -#: js/basicblocks.js:3720 -#: js/basicblocks.js:3760 -#: js/basicblocks.js:3770 -#: js/basicblocks.js:3808 -#: js/basicblocks.js:3821 -#: js/basicblocks.js:3862 -#: js/basicblocks.js:3917 -#: js/basicblocks.js:3922 -#: js/basicblocks.js:3927 -#: js/rubrics.js:476 -#: js/macros.js:44 -#: js/blocks.js:863 -#: js/blocks.js:2475 -#: js/blocks.js:2476 -#: js/blocks.js:2668 -#: js/blocks.js:2874 -#: js/blocks.js:3030 -#: js/blocks.js:3851 -#: js/blocks.js:4668 -#: js/rhythmruler.js:1149 -#: js/rhythmruler.js:1151 -#: js/rhythmruler.js:1251 -#: js/rhythmruler.js:1253 -#: js/block.js:923 -#: js/block.js:4637 -#: js/block.js:4646 -#: js/block.js:4657 -#: js/activity.js:3061 -#: js/palette.js:737 -#: js/palette.js:746 -#: js/palette.js:755 -#: js/palette.js:764 -#: js/palette.js:2043 -#: js/palette.js:2054 -#: js/palette.js:2065 -#: js/palette.js:2076 -#: js/palette.js:2086 -#: js/turtledefs.js:23 -#: js/basicblocks.js:1445 -#: js/basicblocks.js:1459 -#: js/basicblocks.js:1473 -#: js/basicblocks.js:3776 -#: js/basicblocks.js:3816 -#: js/basicblocks.js:3826 -#: js/basicblocks.js:3864 -#: js/basicblocks.js:3877 -#: js/basicblocks.js:3918 -#: js/basicblocks.js:3973 -#: js/basicblocks.js:3978 -#: js/basicblocks.js:3983 -#: js/rubrics.js:477 -#: js/macros.js:45 -#: js/blocks.js:816 -#: js/blocks.js:2432 -#: js/blocks.js:2433 -#: js/blocks.js:2625 -#: js/blocks.js:2869 -#: js/blocks.js:3025 -#: js/blocks.js:3866 -#: js/blocks.js:4705 -#: js/rhythmruler.js:1149 -#: js/rhythmruler.js:1151 -#: js/rhythmruler.js:1251 -#: js/rhythmruler.js:1253 -#: js/block.js:923 -#: js/block.js:4823 -#: js/block.js:4832 -#: js/block.js:4843 -#: js/activity.js:3079 -#: js/palette.js:737 -#: js/palette.js:746 -#: js/palette.js:755 -#: js/palette.js:764 -#: js/palette.js:2043 -#: js/palette.js:2054 -#: js/palette.js:2065 -#: js/palette.js:2076 -#: js/palette.js:2086 -#: js/turtledefs.js:23 -#: js/basicblocks.js:1441 -#: js/basicblocks.js:1455 -#: js/basicblocks.js:1469 -#: js/basicblocks.js:3762 -#: js/basicblocks.js:3802 -#: js/basicblocks.js:3812 -#: js/basicblocks.js:3850 -#: js/basicblocks.js:3863 -#: js/basicblocks.js:3904 -#: js/basicblocks.js:3959 -#: js/basicblocks.js:3964 -#: js/basicblocks.js:3969 -#: js/rubrics.js:477 -#: js/macros.js:45 -#: js/blocks.js:816 -#: js/blocks.js:2430 -#: js/blocks.js:2431 -#: js/blocks.js:2623 -#: js/blocks.js:2867 -#: js/blocks.js:3023 -#: js/blocks.js:3864 -#: js/blocks.js:4702 -#: js/rhythmruler.js:1149 -#: js/rhythmruler.js:1151 -#: js/rhythmruler.js:1251 -#: js/rhythmruler.js:1253 -#: js/block.js:923 -#: js/block.js:4836 -#: js/block.js:4845 -#: js/block.js:4856 -#: js/activity.js:3089 -#: js/palette.js:737 -#: js/palette.js:746 -#: js/palette.js:755 -#: js/palette.js:764 -#: js/palette.js:2043 -#: js/palette.js:2054 -#: js/palette.js:2065 -#: js/palette.js:2076 -#: js/palette.js:2086 -#: js/turtledefs.js:23 -#: js/basicblocks.js:1441 -#: js/basicblocks.js:1455 -#: js/basicblocks.js:1469 -#: js/basicblocks.js:3762 -#: js/basicblocks.js:3802 -#: js/basicblocks.js:3812 -#: js/basicblocks.js:3850 -#: js/basicblocks.js:3863 -#: js/basicblocks.js:3904 -#: js/basicblocks.js:3959 -#: js/basicblocks.js:3964 -#: js/basicblocks.js:3969 -#: js/rubrics.js:477 -#: js/macros.js:45 -#: js/blocks.js:816 -#: js/blocks.js:2432 -#: js/blocks.js:2433 -#: js/blocks.js:2625 -#: js/blocks.js:2869 -#: js/blocks.js:3025 -#: js/blocks.js:3866 -#: js/blocks.js:4704 -#: js/rhythmruler.js:1149 -#: js/rhythmruler.js:1151 -#: js/rhythmruler.js:1251 -#: js/rhythmruler.js:1253 -#: js/block.js:923 -#: js/block.js:4841 -#: js/block.js:4850 -#: js/block.js:4861 -#: js/activity.js:3079 -#: js/palette.js:737 -#: js/palette.js:746 -#: js/palette.js:755 -#: js/palette.js:764 -#: js/palette.js:2043 -#: js/palette.js:2054 -#: js/palette.js:2065 -#: js/palette.js:2076 -#: js/palette.js:2086 -#: js/turtledefs.js:23 -#: js/basicblocks.js:1474 -#: js/basicblocks.js:1488 -#: js/basicblocks.js:1502 -#: js/basicblocks.js:3808 -#: js/basicblocks.js:3848 -#: js/basicblocks.js:3858 -#: js/basicblocks.js:3896 -#: js/basicblocks.js:3909 -#: js/basicblocks.js:3950 -#: js/basicblocks.js:4005 -#: js/basicblocks.js:4010 -#: js/basicblocks.js:4015 -#: js/rubrics.js:477 -#: js/macros.js:45 -#: js/blocks.js:816 -#: js/blocks.js:2433 -#: js/blocks.js:2434 -#: js/blocks.js:2626 -#: js/blocks.js:2870 -#: js/blocks.js:3026 -#: js/blocks.js:3867 -#: js/blocks.js:4705 -#: js/rhythmruler.js:1157 -#: js/rhythmruler.js:1159 -#: js/rhythmruler.js:1259 -#: js/rhythmruler.js:1261 -#: js/block.js:923 -#: js/block.js:4845 -#: js/block.js:4854 -#: js/block.js:4865 -#: js/activity.js:3083 -#: js/palette.js:765 -#: js/palette.js:774 -#: js/palette.js:783 -#: js/palette.js:792 -#: js/palette.js:2072 -#: js/palette.js:2083 -#: js/palette.js:2094 -#: js/palette.js:2105 -#: js/palette.js:2115 -#: js/turtledefs.js:25 -#: js/basicblocks.js:1474 -#: js/basicblocks.js:1488 -#: js/basicblocks.js:1502 -#: js/basicblocks.js:3808 -#: js/basicblocks.js:3848 -#: js/basicblocks.js:3858 -#: js/basicblocks.js:3896 -#: js/basicblocks.js:3909 -#: js/basicblocks.js:3950 -#: js/basicblocks.js:4005 -#: js/basicblocks.js:4010 -#: js/basicblocks.js:4015 -#: js/rubrics.js:477 -#: js/macros.js:45 -#: js/blocks.js:816 -#: js/blocks.js:2433 -#: js/blocks.js:2434 -#: js/blocks.js:2626 -#: js/blocks.js:2870 -#: js/blocks.js:3026 -#: js/blocks.js:3867 -#: js/blocks.js:4705 -#: js/rhythmruler.js:1157 -#: js/rhythmruler.js:1159 -#: js/rhythmruler.js:1259 -#: js/rhythmruler.js:1261 -#: js/block.js:923 -#: js/block.js:4845 -#: js/block.js:4854 -#: js/block.js:4865 -#: js/activity.js:3083 -#: js/palette.js:765 -#: js/palette.js:774 -#: js/palette.js:783 -#: js/palette.js:792 -#: js/palette.js:2072 -#: js/palette.js:2083 -#: js/palette.js:2094 -#: js/palette.js:2105 -#: js/palette.js:2115 -#: js/turtledefs.js:25 -#: js/basicblocks.js:1474 -#: js/basicblocks.js:1488 -#: js/basicblocks.js:1502 -#: js/basicblocks.js:3808 -#: js/basicblocks.js:3848 -#: js/basicblocks.js:3858 -#: js/basicblocks.js:3896 -#: js/basicblocks.js:3909 -#: js/basicblocks.js:3950 -#: js/basicblocks.js:4005 -#: js/basicblocks.js:4010 -#: js/basicblocks.js:4015 -#: js/rubrics.js:477 -#: js/macros.js:45 -#: js/blocks.js:816 -#: js/blocks.js:2433 -#: js/blocks.js:2434 -#: js/blocks.js:2626 -#: js/blocks.js:2870 -#: js/blocks.js:3026 -#: js/blocks.js:3867 -#: js/blocks.js:4705 -#: js/rhythmruler.js:1157 -#: js/rhythmruler.js:1159 -#: js/rhythmruler.js:1259 -#: js/rhythmruler.js:1261 -#: js/block.js:923 -#: js/block.js:4845 -#: js/block.js:4854 -#: js/block.js:4865 -#: js/activity.js:3083 -#: js/palette.js:765 -#: js/palette.js:774 -#: js/palette.js:783 -#: js/palette.js:792 -#: js/palette.js:2072 -#: js/palette.js:2083 -#: js/palette.js:2094 -#: js/palette.js:2105 -#: js/palette.js:2115 -#: js/turtledefs.js:25 -#: js/basicblocks.js:1474 -#: js/basicblocks.js:1488 -#: js/basicblocks.js:1502 -#: js/basicblocks.js:3808 -#: js/basicblocks.js:3848 -#: js/basicblocks.js:3858 -#: js/basicblocks.js:3896 -#: js/basicblocks.js:3909 -#: js/basicblocks.js:3950 -#: js/basicblocks.js:4005 -#: js/basicblocks.js:4010 -#: js/basicblocks.js:4015 -#: js/rubrics.js:477 -#: js/macros.js:45 -#: js/blocks.js:816 -#: js/blocks.js:2433 -#: js/blocks.js:2434 -#: js/blocks.js:2626 -#: js/blocks.js:2870 -#: js/blocks.js:3026 -#: js/blocks.js:3867 -#: js/blocks.js:4705 -#: js/rhythmruler.js:1157 -#: js/rhythmruler.js:1159 -#: js/rhythmruler.js:1259 -#: js/rhythmruler.js:1261 -#: js/block.js:926 -#: js/block.js:4883 -#: js/block.js:4892 -#: js/block.js:4903 -#: js/activity.js:3083 -#: js/palette.js:765 -#: js/palette.js:774 -#: js/palette.js:783 -#: js/palette.js:792 -#: js/palette.js:2075 -#: js/palette.js:2086 -#: js/palette.js:2097 -#: js/palette.js:2108 -#: js/palette.js:2118 -#: js/turtledefs.js:25 -#: js/basicblocks.js:1474 -#: js/basicblocks.js:1488 -#: js/basicblocks.js:1502 -#: js/basicblocks.js:3830 -#: js/basicblocks.js:3870 -#: js/basicblocks.js:3880 -#: js/basicblocks.js:3918 -#: js/basicblocks.js:3931 -#: js/basicblocks.js:3972 -#: js/basicblocks.js:4027 -#: js/basicblocks.js:4032 -#: js/basicblocks.js:4037 -#: js/rubrics.js:478 -#: js/macros.js:45 -#: js/blocks.js:816 -#: js/blocks.js:2437 -#: js/blocks.js:2438 -#: js/blocks.js:2630 -#: js/blocks.js:2874 -#: js/blocks.js:3030 -#: js/blocks.js:3871 -#: js/blocks.js:4724 -#: js/rhythmruler.js:1157 -#: js/rhythmruler.js:1159 -#: js/rhythmruler.js:1259 -#: js/rhythmruler.js:1261 -#: js/block.js:926 -#: js/block.js:4883 -#: js/block.js:4892 -#: js/block.js:4903 -#: js/activity.js:3078 -#: js/palette.js:765 -#: js/palette.js:774 -#: js/palette.js:783 -#: js/palette.js:792 -#: js/palette.js:2075 -#: js/palette.js:2086 -#: js/palette.js:2097 -#: js/palette.js:2108 -#: js/palette.js:2118 -#: js/turtledefs.js:25 -#: js/basicblocks.js:1475 -#: js/basicblocks.js:1489 -#: js/basicblocks.js:1503 -#: js/basicblocks.js:3832 -#: js/basicblocks.js:3872 -#: js/basicblocks.js:3882 -#: js/basicblocks.js:3920 -#: js/basicblocks.js:3933 -#: js/basicblocks.js:3974 -#: js/basicblocks.js:4029 -#: js/basicblocks.js:4034 -#: js/basicblocks.js:4039 -#: js/rubrics.js:478 -#: js/macros.js:45 -#: js/blocks.js:816 -#: js/blocks.js:2437 -#: js/blocks.js:2438 -#: js/blocks.js:2630 -#: js/blocks.js:2874 -#: js/blocks.js:3030 -#: js/blocks.js:3871 -#: js/blocks.js:4724 -#: js/rhythmruler.js:1162 -#: js/rhythmruler.js:1164 -#: js/rhythmruler.js:1272 -#: js/rhythmruler.js:1274 -#: js/block.js:1046 -#: js/block.js:5109 -#: js/block.js:5118 -#: js/block.js:5129 -#: js/activity.js:3147 -#: js/palette.js:766 -#: js/palette.js:775 -#: js/palette.js:784 -#: js/palette.js:793 -#: js/palette.js:2076 -#: js/palette.js:2087 -#: js/palette.js:2098 -#: js/palette.js:2109 -#: js/palette.js:2119 -#: js/turtledefs.js:25 -#: js/basicblocks.js:1504 -#: js/basicblocks.js:1524 -#: js/basicblocks.js:1538 -#: js/basicblocks.js:3894 -#: js/basicblocks.js:3934 -#: js/basicblocks.js:3944 -#: js/basicblocks.js:3992 -#: js/basicblocks.js:4005 -#: js/basicblocks.js:4052 -#: js/basicblocks.js:4107 -#: js/basicblocks.js:4112 -#: js/basicblocks.js:4117 -#: js/rubrics.js:478 -#: js/macros.js:45 -#: js/blocks.js:816 -#: js/blocks.js:2437 -#: js/blocks.js:2438 -#: js/blocks.js:2630 -#: js/blocks.js:2874 -#: js/blocks.js:3030 -#: js/blocks.js:3940 -#: js/blocks.js:4793 -#: js/rhythmruler.js:1162 -#: js/rhythmruler.js:1164 -#: js/rhythmruler.js:1272 -#: js/rhythmruler.js:1274 -#: js/block.js:1050 -#: js/block.js:5120 -#: js/block.js:5129 -#: js/block.js:5140 -#: js/activity.js:2267 -#: js/palette.js:766 -#: js/palette.js:775 -#: js/palette.js:784 -#: js/palette.js:793 -#: js/palette.js:2094 -#: js/palette.js:2105 -#: js/palette.js:2116 -#: js/palette.js:2127 -#: js/palette.js:2137 -#: js/turtledefs.js:25 -#: js/basicblocks.js:1514 -#: js/basicblocks.js:1534 -#: js/basicblocks.js:1548 -#: js/basicblocks.js:3942 -#: js/basicblocks.js:3982 -#: js/basicblocks.js:3992 -#: js/basicblocks.js:4040 -#: js/basicblocks.js:4053 -#: js/basicblocks.js:4100 -#: js/basicblocks.js:4155 -#: js/basicblocks.js:4160 -#: js/basicblocks.js:4165 -#: js/rubrics.js:478 -#: js/macros.js:45 -#: js/blocks.js:809 -#: js/blocks.js:2430 -#: js/blocks.js:2431 -#: js/blocks.js:2623 -#: js/blocks.js:2867 -#: js/blocks.js:3023 -#: js/blocks.js:3931 -#: js/blocks.js:4784 -#: js/rhythmruler.js:1162 -#: js/rhythmruler.js:1164 -#: js/rhythmruler.js:1272 -#: js/rhythmruler.js:1274 -#: js/block.js:1050 -#: js/block.js:5120 -#: js/block.js:5129 -#: js/block.js:5140 -#: js/activity.js:2267 -#: js/palette.js:766 -#: js/palette.js:775 -#: js/palette.js:784 -#: js/palette.js:793 -#: js/palette.js:2094 -#: js/palette.js:2105 -#: js/palette.js:2116 -#: js/palette.js:2127 -#: js/palette.js:2137 -#: js/turtledefs.js:25 -#: js/basicblocks.js:1519 -#: js/basicblocks.js:1539 -#: js/basicblocks.js:1553 -#: js/basicblocks.js:3959 -#: js/basicblocks.js:3999 -#: js/basicblocks.js:4009 -#: js/basicblocks.js:4057 -#: js/basicblocks.js:4070 -#: js/basicblocks.js:4117 -#: js/basicblocks.js:4172 -#: js/basicblocks.js:4177 -#: js/basicblocks.js:4182 -#: js/rubrics.js:478 -#: js/macros.js:45 -#: js/blocks.js:809 -#: js/blocks.js:2430 -#: js/blocks.js:2431 -#: js/blocks.js:2623 -#: js/blocks.js:2867 -#: js/blocks.js:3023 -#: js/blocks.js:3931 -#: js/blocks.js:4784 -#: js/rhythmruler.js:1162 -#: js/rhythmruler.js:1164 -#: js/rhythmruler.js:1272 -#: js/rhythmruler.js:1274 -#: js/block.js:1050 -#: js/block.js:5120 -#: js/block.js:5129 -#: js/block.js:5140 -#: js/activity.js:2267 -#: js/palette.js:766 -#: js/palette.js:775 -#: js/palette.js:784 -#: js/palette.js:793 -#: js/palette.js:2094 -#: js/palette.js:2105 -#: js/palette.js:2116 -#: js/palette.js:2127 -#: js/palette.js:2137 -#: js/turtledefs.js:25 -#: js/basicblocks.js:1519 -#: js/basicblocks.js:1539 -#: js/basicblocks.js:1553 -#: js/basicblocks.js:3959 -#: js/basicblocks.js:3999 -#: js/basicblocks.js:4009 -#: js/basicblocks.js:4057 -#: js/basicblocks.js:4070 -#: js/basicblocks.js:4117 -#: js/basicblocks.js:4172 -#: js/basicblocks.js:4177 -#: js/basicblocks.js:4182 -#: js/rubrics.js:478 -#: js/macros.js:45 -#: js/blocks.js:808 -#: js/blocks.js:2429 -#: js/blocks.js:2430 -#: js/blocks.js:2622 -#: js/blocks.js:2866 -#: js/blocks.js:3022 -#: js/blocks.js:3930 -#: js/blocks.js:4783 -#: js/rhythmruler.js:1162 -#: js/rhythmruler.js:1164 -#: js/rhythmruler.js:1272 -#: js/rhythmruler.js:1274 -#: js/block.js:1050 -#: js/block.js:5120 -#: js/block.js:5129 -#: js/block.js:5140 -#: js/activity.js:2267 -#: js/palette.js:766 -#: js/palette.js:775 -#: js/palette.js:784 -#: js/palette.js:793 -#: js/palette.js:2094 -#: js/palette.js:2105 -#: js/palette.js:2116 -#: js/palette.js:2127 -#: js/palette.js:2137 -#: js/turtledefs.js:25 -#: js/basicblocks.js:1519 -#: js/basicblocks.js:1539 -#: js/basicblocks.js:1553 -#: js/basicblocks.js:3959 -#: js/basicblocks.js:3999 -#: js/basicblocks.js:4009 -#: js/basicblocks.js:4057 -#: js/basicblocks.js:4070 -#: js/basicblocks.js:4117 -#: js/basicblocks.js:4172 -#: js/basicblocks.js:4177 -#: js/basicblocks.js:4182 -#: js/rubrics.js:478 -#: js/macros.js:45 -#: js/blocks.js:808 -#: js/blocks.js:2429 -#: js/blocks.js:2430 -#: js/blocks.js:2622 -#: js/blocks.js:2866 -#: js/blocks.js:3022 -#: js/blocks.js:3930 -#: js/blocks.js:4783 -#: js/rhythmruler.js:1162 -#: js/rhythmruler.js:1164 -#: js/rhythmruler.js:1272 -#: js/rhythmruler.js:1274 -#: js/block.js:1050 -#: js/block.js:5120 -#: js/block.js:5129 -#: js/block.js:5140 -#: js/activity.js:2267 -#: js/palette.js:766 -#: js/palette.js:775 -#: js/palette.js:784 -#: js/palette.js:793 -#: js/palette.js:2094 -#: js/palette.js:2105 -#: js/palette.js:2116 -#: js/palette.js:2127 -#: js/palette.js:2137 -#: js/turtledefs.js:25 -#: js/basicblocks.js:1526 -#: js/basicblocks.js:1546 -#: js/basicblocks.js:1560 -#: js/basicblocks.js:3966 -#: js/basicblocks.js:4006 -#: js/basicblocks.js:4016 -#: js/basicblocks.js:4064 -#: js/basicblocks.js:4077 -#: js/basicblocks.js:4124 -#: js/basicblocks.js:4179 -#: js/basicblocks.js:4184 -#: js/basicblocks.js:4189 -#: js/rubrics.js:478 -#: js/macros.js:45 -#: js/blocks.js:808 -#: js/blocks.js:2429 -#: js/blocks.js:2430 -#: js/blocks.js:2622 -#: js/blocks.js:2866 -#: js/blocks.js:3022 -#: js/blocks.js:3930 -#: js/blocks.js:4783 -#: js/rhythmruler.js:1162 -#: js/rhythmruler.js:1164 -#: js/rhythmruler.js:1272 -#: js/rhythmruler.js:1274 -#: js/block.js:1162 -#: js/block.js:5410 -#: js/block.js:5419 -#: js/block.js:5430 -#: js/activity.js:2268 -#: js/palette.js:770 -#: js/palette.js:779 -#: js/palette.js:788 -#: js/palette.js:797 -#: js/palette.js:2098 -#: js/palette.js:2109 -#: js/palette.js:2120 -#: js/palette.js:2131 -#: js/palette.js:2141 -#: js/turtledefs.js:31 -#: js/basicblocks.js:1528 -#: js/basicblocks.js:1548 -#: js/basicblocks.js:1562 -#: js/basicblocks.js:3968 -#: js/basicblocks.js:4008 -#: js/basicblocks.js:4018 -#: js/basicblocks.js:4066 -#: js/basicblocks.js:4079 -#: js/basicblocks.js:4126 -#: js/basicblocks.js:4181 -#: js/basicblocks.js:4186 -#: js/basicblocks.js:4191 -#: js/rubrics.js:478 -#: js/macros.js:45 -#: js/blocks.js:1023 -#: js/blocks.js:2839 -#: js/blocks.js:2840 -#: js/blocks.js:3054 -#: js/blocks.js:3356 -#: js/blocks.js:3549 -#: js/blocks.js:4588 -#: js/blocks.js:5446 -#: js/musickeyboard.js:369 -#: js/pitchtimematrix.js:1612 -#: js/rhythmruler.js:1171 -#: js/rhythmruler.js:1173 -#: js/rhythmruler.js:1281 -#: js/rhythmruler.js:1283 -#: js/block.js:1162 -#: js/block.js:5410 -#: js/block.js:5419 -#: js/block.js:5430 -#: js/activity.js:2268 -#: js/palette.js:770 -#: js/palette.js:779 -#: js/palette.js:788 -#: js/palette.js:797 -#: js/palette.js:2098 -#: js/palette.js:2109 -#: js/palette.js:2120 -#: js/palette.js:2131 -#: js/palette.js:2141 -#: js/turtledefs.js:35 -#: js/basicblocks.js:1528 -#: js/basicblocks.js:1548 -#: js/basicblocks.js:1562 -#: js/basicblocks.js:3968 -#: js/basicblocks.js:4008 -#: js/basicblocks.js:4018 -#: js/basicblocks.js:4066 -#: js/basicblocks.js:4079 -#: js/basicblocks.js:4126 -#: js/basicblocks.js:4181 -#: js/basicblocks.js:4186 -#: js/basicblocks.js:4191 -#: js/rubrics.js:478 -#: js/macros.js:45 -#: js/blocks.js:1023 -#: js/blocks.js:2839 -#: js/blocks.js:2840 -#: js/blocks.js:3054 -#: js/blocks.js:3356 -#: js/blocks.js:3549 -#: js/blocks.js:4588 -#: js/blocks.js:5446 -#: js/musickeyboard.js:369 -#: js/pitchtimematrix.js:1612 -#: js/rhythmruler.js:1171 -#: js/rhythmruler.js:1173 -#: js/rhythmruler.js:1281 -#: js/rhythmruler.js:1283 -#: js/block.js:1162 -#: js/block.js:5410 -#: js/block.js:5419 -#: js/block.js:5430 -#: js/activity.js:2133 -#: js/palette.js:770 -#: js/palette.js:779 -#: js/palette.js:788 -#: js/palette.js:797 -#: js/palette.js:2098 -#: js/palette.js:2109 -#: js/palette.js:2120 -#: js/palette.js:2131 -#: js/palette.js:2141 -#: js/turtledefs.js:35 -#: js/basicblocks.js:1528 -#: js/basicblocks.js:1548 -#: js/basicblocks.js:1562 -#: js/basicblocks.js:3968 -#: js/basicblocks.js:4008 -#: js/basicblocks.js:4018 -#: js/basicblocks.js:4066 -#: js/basicblocks.js:4079 -#: js/basicblocks.js:4126 -#: js/basicblocks.js:4181 -#: js/basicblocks.js:4186 -#: js/basicblocks.js:4191 -#: js/rubrics.js:478 -#: js/macros.js:45 -#: js/blocks.js:1023 -#: js/blocks.js:2839 -#: js/blocks.js:2840 -#: js/blocks.js:3054 -#: js/blocks.js:3356 -#: js/blocks.js:3549 -#: js/blocks.js:4588 -#: js/blocks.js:5446 -#: js/musickeyboard.js:369 -#: js/pitchtimematrix.js:1612 -#: js/rhythmruler.js:1171 -#: js/rhythmruler.js:1173 -#: js/rhythmruler.js:1281 -#: js/rhythmruler.js:1283 -#: js/block.js:1162 -#: js/block.js:5410 -#: js/block.js:5419 -#: js/block.js:5430 -#: js/activity.js:2133 -#: js/palette.js:770 -#: js/palette.js:779 -#: js/palette.js:788 -#: js/palette.js:797 -#: js/palette.js:2098 -#: js/palette.js:2109 -#: js/palette.js:2120 -#: js/palette.js:2131 -#: js/palette.js:2141 -#: js/turtledefs.js:35 -#: js/basicblocks.js:1528 -#: js/basicblocks.js:1548 -#: js/basicblocks.js:1562 -#: js/basicblocks.js:3968 -#: js/basicblocks.js:4008 -#: js/basicblocks.js:4018 -#: js/basicblocks.js:4066 -#: js/basicblocks.js:4079 -#: js/basicblocks.js:4126 -#: js/basicblocks.js:4181 -#: js/basicblocks.js:4186 -#: js/basicblocks.js:4191 -#: js/rubrics.js:478 -#: js/macros.js:45 -#: js/blocks.js:1023 -#: js/blocks.js:2839 -#: js/blocks.js:2840 -#: js/blocks.js:3054 -#: js/blocks.js:3356 -#: js/blocks.js:3549 -#: js/blocks.js:4588 -#: js/blocks.js:5446 -#: js/musickeyboard.js:369 -#: js/pitchtimematrix.js:1612 -#: js/rhythmruler.js:1171 -#: js/rhythmruler.js:1173 -#: js/rhythmruler.js:1281 -#: js/rhythmruler.js:1283 -#: js/block.js:1162 -#: js/block.js:5410 -#: js/block.js:5419 -#: js/block.js:5430 -#: js/activity.js:2127 -#: js/palette.js:770 -#: js/palette.js:779 -#: js/palette.js:788 -#: js/palette.js:797 -#: js/palette.js:2098 -#: js/palette.js:2109 -#: js/palette.js:2120 -#: js/palette.js:2131 -#: js/palette.js:2141 -#: js/turtledefs.js:35 -#: js/basicblocks.js:1528 -#: js/basicblocks.js:1548 -#: js/basicblocks.js:1562 -#: js/basicblocks.js:3968 -#: js/basicblocks.js:4008 -#: js/basicblocks.js:4018 -#: js/basicblocks.js:4066 -#: js/basicblocks.js:4079 -#: js/basicblocks.js:4127 -#: js/basicblocks.js:4182 -#: js/basicblocks.js:4187 -#: js/basicblocks.js:4192 -#: js/rubrics.js:478 -#: js/macros.js:45 -#: js/blocks.js:1023 -#: js/blocks.js:2849 -#: js/blocks.js:2850 -#: js/blocks.js:3064 -#: js/blocks.js:3366 -#: js/blocks.js:3559 -#: js/blocks.js:4598 -#: js/blocks.js:5455 -#: js/musickeyboard.js:369 -#: js/pitchtimematrix.js:1612 -#: js/rhythmruler.js:1171 -#: js/rhythmruler.js:1173 -#: js/rhythmruler.js:1281 -#: js/rhythmruler.js:1283 -#: js/block.js:1162 -#: js/block.js:5410 -#: js/block.js:5419 -#: js/block.js:5430 -#: js/activity.js:2127 -#: js/palette.js:770 -#: js/palette.js:779 -#: js/palette.js:788 -#: js/palette.js:797 -#: js/palette.js:2098 -#: js/palette.js:2109 -#: js/palette.js:2120 -#: js/palette.js:2131 -#: js/palette.js:2141 -#: js/turtledefs.js:35 -#: js/basicblocks.js:1527 -#: js/basicblocks.js:1547 -#: js/basicblocks.js:1561 -#: js/basicblocks.js:3967 -#: js/basicblocks.js:4007 -#: js/basicblocks.js:4017 -#: js/basicblocks.js:4065 -#: js/basicblocks.js:4078 -#: js/basicblocks.js:4126 -#: js/basicblocks.js:4181 -#: js/basicblocks.js:4186 -#: js/basicblocks.js:4191 -#: js/rubrics.js:478 -#: js/macros.js:45 -#: js/blocks.js:1023 -#: js/blocks.js:2849 -#: js/blocks.js:2850 -#: js/blocks.js:3064 -#: js/blocks.js:3366 -#: js/blocks.js:3559 -#: js/blocks.js:4598 -#: js/blocks.js:5455 -#: js/musickeyboard.js:369 -#: js/pitchtimematrix.js:1612 -#: js/rhythmruler.js:1171 -#: js/rhythmruler.js:1173 -#: js/rhythmruler.js:1281 -#: js/rhythmruler.js:1283 -#: js/block.js:1162 -#: js/block.js:5410 -#: js/block.js:5419 -#: js/block.js:5430 -#: js/activity.js:2127 -#: js/palette.js:770 -#: js/palette.js:779 -#: js/palette.js:788 -#: js/palette.js:797 -#: js/palette.js:2098 -#: js/palette.js:2109 -#: js/palette.js:2120 -#: js/palette.js:2131 -#: js/palette.js:2141 -#: js/turtledefs.js:35 -#: js/basicblocks.js:1527 -#: js/basicblocks.js:1547 -#: js/basicblocks.js:1561 -#: js/basicblocks.js:3967 -#: js/basicblocks.js:4007 -#: js/basicblocks.js:4017 -#: js/basicblocks.js:4065 -#: js/basicblocks.js:4078 -#: js/basicblocks.js:4126 -#: js/basicblocks.js:4181 -#: js/basicblocks.js:4186 -#: js/basicblocks.js:4191 -#: js/rubrics.js:478 -#: js/macros.js:45 -#: js/blocks.js:1023 -#: js/blocks.js:2849 -#: js/blocks.js:2850 -#: js/blocks.js:3064 -#: js/blocks.js:3366 -#: js/blocks.js:3559 -#: js/blocks.js:4598 -#: js/blocks.js:5455 -#: js/musickeyboard.js:369 -#: js/pitchtimematrix.js:1612 -#: js/rhythmruler.js:1171 -#: js/rhythmruler.js:1173 -#: js/rhythmruler.js:1281 -#: js/rhythmruler.js:1283 -#: js/block.js:1162 -#: js/block.js:5410 -#: js/block.js:5419 -#: js/block.js:5430 -#: js/activity.js:2127 -#: js/palette.js:770 -#: js/palette.js:779 -#: js/palette.js:788 -#: js/palette.js:797 -#: js/palette.js:2098 -#: js/palette.js:2109 -#: js/palette.js:2120 -#: js/palette.js:2131 -#: js/palette.js:2141 -#: js/turtledefs.js:35 -#: js/basicblocks.js:1527 -#: js/basicblocks.js:1547 -#: js/basicblocks.js:1561 -#: js/basicblocks.js:3967 -#: js/basicblocks.js:4007 -#: js/basicblocks.js:4017 -#: js/basicblocks.js:4065 -#: js/basicblocks.js:4078 -#: js/basicblocks.js:4126 -#: js/basicblocks.js:4181 -#: js/basicblocks.js:4186 -#: js/basicblocks.js:4191 -#: js/rubrics.js:478 -#: js/macros.js:45 -#: js/blocks.js:1023 -#: js/blocks.js:2849 -#: js/blocks.js:2850 -#: js/blocks.js:3064 -#: js/blocks.js:3366 -#: js/blocks.js:3559 -#: js/blocks.js:4598 -#: js/blocks.js:5455 -#: js/musickeyboard.js:369 -#: js/pitchtimematrix.js:1612 -#: js/rhythmruler.js:1171 -#: js/rhythmruler.js:1173 -#: js/rhythmruler.js:1281 -#: js/rhythmruler.js:1283 -#: js/block.js:1162 -#: js/block.js:5410 -#: js/block.js:5419 -#: js/block.js:5430 -#: js/activity.js:2127 -#: js/palette.js:770 -#: js/palette.js:779 -#: js/palette.js:788 -#: js/palette.js:797 -#: js/palette.js:2098 -#: js/palette.js:2109 -#: js/palette.js:2120 -#: js/palette.js:2131 -#: js/palette.js:2141 -#: js/turtledefs.js:35 -#: js/basicblocks.js:1531 -#: js/basicblocks.js:1551 -#: js/basicblocks.js:1565 -#: js/basicblocks.js:3971 -#: js/basicblocks.js:4011 -#: js/basicblocks.js:4021 -#: js/basicblocks.js:4069 -#: js/basicblocks.js:4082 -#: js/basicblocks.js:4130 -#: js/basicblocks.js:4185 -#: js/basicblocks.js:4190 -#: js/basicblocks.js:4195 -#: js/rubrics.js:478 -#: js/macros.js:45 -#: js/blocks.js:1023 -#: js/blocks.js:2849 -#: js/blocks.js:2850 -#: js/blocks.js:3064 -#: js/blocks.js:3366 -#: js/blocks.js:3559 -#: js/blocks.js:4598 -#: js/blocks.js:5455 -#: js/musickeyboard.js:369 -#: js/pitchtimematrix.js:1612 -#: js/rhythmruler.js:1171 -#: js/rhythmruler.js:1173 -#: js/rhythmruler.js:1281 -#: js/rhythmruler.js:1283 -#: js/block.js:1162 -#: js/block.js:5410 -#: js/block.js:5419 -#: js/block.js:5430 -#: js/activity.js:2127 -#: js/palette.js:770 -#: js/palette.js:779 -#: js/palette.js:788 -#: js/palette.js:797 -#: js/palette.js:2098 -#: js/palette.js:2109 -#: js/palette.js:2120 -#: js/palette.js:2131 -#: js/palette.js:2141 -#: js/turtledefs.js:35 -#: js/basicblocks.js:1531 -#: js/basicblocks.js:1551 -#: js/basicblocks.js:1565 -#: js/basicblocks.js:3971 -#: js/basicblocks.js:4011 -#: js/basicblocks.js:4021 -#: js/basicblocks.js:4069 -#: js/basicblocks.js:4082 -#: js/basicblocks.js:4130 -#: js/basicblocks.js:4185 -#: js/basicblocks.js:4190 -#: js/basicblocks.js:4195 -#: js/rubrics.js:478 -#: js/macros.js:45 -#: js/blocks.js:1023 -#: js/blocks.js:2849 -#: js/blocks.js:2850 -#: js/blocks.js:3064 -#: js/blocks.js:3366 -#: js/blocks.js:3559 -#: js/blocks.js:4598 -#: js/blocks.js:5455 -#: js/musickeyboard.js:369 -#: js/pitchtimematrix.js:1612 -#: js/rhythmruler.js:1171 -#: js/rhythmruler.js:1173 -#: js/rhythmruler.js:1281 -#: js/rhythmruler.js:1283 -#: js/block.js:1162 -#: js/block.js:5410 -#: js/block.js:5419 -#: js/block.js:5430 -#: js/activity.js:2127 -#: js/palette.js:770 -#: js/palette.js:779 -#: js/palette.js:788 -#: js/palette.js:797 -#: js/palette.js:2098 -#: js/palette.js:2109 -#: js/palette.js:2120 -#: js/palette.js:2131 -#: js/palette.js:2141 -#: js/turtledefs.js:35 -#: js/basicblocks.js:1531 -#: js/basicblocks.js:1551 -#: js/basicblocks.js:1565 -#: js/basicblocks.js:3971 -#: js/basicblocks.js:4011 -#: js/basicblocks.js:4021 -#: js/basicblocks.js:4069 -#: js/basicblocks.js:4082 -#: js/basicblocks.js:4130 -#: js/basicblocks.js:4185 -#: js/basicblocks.js:4190 -#: js/basicblocks.js:4195 -#: js/rubrics.js:478 -#: js/macros.js:45 -#: js/blocks.js:1023 -#: js/blocks.js:2849 -#: js/blocks.js:2850 -#: js/blocks.js:3064 -#: js/blocks.js:3366 -#: js/blocks.js:3559 -#: js/blocks.js:4598 -#: js/blocks.js:5455 -#: js/musickeyboard.js:369 -#: js/pitchtimematrix.js:1612 -#: js/rhythmruler.js:1171 -#: js/rhythmruler.js:1173 -#: js/rhythmruler.js:1281 -#: js/rhythmruler.js:1283 -#: js/block.js:1162 -#: js/block.js:5413 -#: js/block.js:5422 -#: js/block.js:5433 -#: js/activity.js:2127 -#: js/palette.js:770 -#: js/palette.js:779 -#: js/palette.js:788 -#: js/palette.js:797 -#: js/palette.js:2098 -#: js/palette.js:2109 -#: js/palette.js:2120 -#: js/palette.js:2131 -#: js/palette.js:2141 -#: js/turtledefs.js:35 -#: js/basicblocks.js:1537 -#: js/basicblocks.js:1557 -#: js/basicblocks.js:1571 -#: js/basicblocks.js:3977 -#: js/basicblocks.js:4017 -#: js/basicblocks.js:4027 -#: js/basicblocks.js:4075 -#: js/basicblocks.js:4088 -#: js/basicblocks.js:4136 -#: js/basicblocks.js:4191 -#: js/basicblocks.js:4196 -#: js/basicblocks.js:4201 -#: js/rubrics.js:478 -#: js/macros.js:45 -#: js/blocks.js:1023 -#: js/blocks.js:2849 -#: js/blocks.js:2850 -#: js/blocks.js:3064 -#: js/blocks.js:3366 -#: js/blocks.js:3559 -#: js/blocks.js:4598 -#: js/blocks.js:5455 -#: js/musickeyboard.js:369 -#: js/pitchtimematrix.js:1612 -#: js/rhythmruler.js:1171 -#: js/rhythmruler.js:1173 -#: js/rhythmruler.js:1281 -#: js/rhythmruler.js:1283 -#: js/block.js:1162 -#: js/block.js:5430 -#: js/block.js:5439 -#: js/block.js:5450 -#: js/activity.js:2134 -#: js/palette.js:810 -#: js/palette.js:819 -#: js/palette.js:828 -#: js/palette.js:837 -#: js/palette.js:2142 -#: js/palette.js:2153 -#: js/palette.js:2164 -#: js/palette.js:2175 -#: js/palette.js:2185 -#: js/turtledefs.js:35 -#: js/basicblocks.js:1542 -#: js/basicblocks.js:1562 -#: js/basicblocks.js:1576 -#: js/basicblocks.js:3982 -#: js/basicblocks.js:4022 -#: js/basicblocks.js:4032 -#: js/basicblocks.js:4080 -#: js/basicblocks.js:4093 -#: js/basicblocks.js:4141 -#: js/basicblocks.js:4196 -#: js/basicblocks.js:4201 -#: js/basicblocks.js:4206 -#: js/rubrics.js:478 -#: js/macros.js:45 -#: js/blocks.js:1023 -#: js/blocks.js:2849 -#: js/blocks.js:2850 -#: js/blocks.js:3064 -#: js/blocks.js:3366 -#: js/blocks.js:3559 -#: js/blocks.js:4600 -#: js/blocks.js:5457 -#: js/musickeyboard.js:369 -#: js/pitchtimematrix.js:1612 -#: js/rhythmruler.js:1176 -#: js/rhythmruler.js:1178 -#: js/rhythmruler.js:1286 -#: js/rhythmruler.js:1288 -#: js/block.js:1162 -#: js/block.js:5430 -#: js/block.js:5439 -#: js/block.js:5450 -#: js/activity.js:2134 -#: js/palette.js:810 -#: js/palette.js:819 -#: js/palette.js:828 -#: js/palette.js:837 -#: js/palette.js:2142 -#: js/palette.js:2153 -#: js/palette.js:2164 -#: js/palette.js:2175 -#: js/palette.js:2185 -#: js/turtledefs.js:35 -#: js/basicblocks.js:1542 -#: js/basicblocks.js:1562 -#: js/basicblocks.js:1576 -#: js/basicblocks.js:3982 -#: js/basicblocks.js:4022 -#: js/basicblocks.js:4032 -#: js/basicblocks.js:4080 -#: js/basicblocks.js:4093 -#: js/basicblocks.js:4141 -#: js/basicblocks.js:4196 -#: js/basicblocks.js:4201 -#: js/basicblocks.js:4206 -#: js/rubrics.js:478 -#: js/macros.js:45 -#: js/blocks.js:1023 -#: js/blocks.js:2849 -#: js/blocks.js:2850 -#: js/blocks.js:3064 -#: js/blocks.js:3366 -#: js/blocks.js:3559 -#: js/blocks.js:4600 -#: js/blocks.js:5457 -#: js/musickeyboard.js:369 -#: js/pitchtimematrix.js:1612 -#: js/rhythmruler.js:1176 -#: js/rhythmruler.js:1178 -#: js/rhythmruler.js:1286 -#: js/rhythmruler.js:1288 -#: js/block.js:1162 -#: js/block.js:5430 -#: js/block.js:5439 -#: js/block.js:5450 -#: js/activity.js:2134 -#: js/palette.js:810 -#: js/palette.js:819 -#: js/palette.js:828 -#: js/palette.js:837 -#: js/palette.js:2142 -#: js/palette.js:2153 -#: js/palette.js:2164 -#: js/palette.js:2175 -#: js/palette.js:2185 -#: js/turtledefs.js:35 -#: js/basicblocks.js:1542 -#: js/basicblocks.js:1562 -#: js/basicblocks.js:1576 -#: js/basicblocks.js:3982 -#: js/basicblocks.js:4022 -#: js/basicblocks.js:4032 -#: js/basicblocks.js:4080 -#: js/basicblocks.js:4093 -#: js/basicblocks.js:4141 -#: js/basicblocks.js:4196 -#: js/basicblocks.js:4201 -#: js/basicblocks.js:4206 -#: js/rubrics.js:478 -#: js/macros.js:45 -#: js/blocks.js:1023 -#: js/blocks.js:2849 -#: js/blocks.js:2850 -#: js/blocks.js:3064 -#: js/blocks.js:3366 -#: js/blocks.js:3559 -#: js/blocks.js:4600 -#: js/blocks.js:5457 -#: js/musickeyboard.js:369 -#: js/pitchtimematrix.js:1612 -#: js/rhythmruler.js:1176 -#: js/rhythmruler.js:1178 -#: js/rhythmruler.js:1286 -#: js/rhythmruler.js:1288 -#: js/block.js:1162 -#: js/block.js:5445 -#: js/block.js:5454 -#: js/block.js:5465 -#: js/activity.js:2137 -#: js/palette.js:810 -#: js/palette.js:819 -#: js/palette.js:828 -#: js/palette.js:837 -#: js/palette.js:2142 -#: js/palette.js:2153 -#: js/palette.js:2164 -#: js/palette.js:2175 -#: js/palette.js:2185 -#: js/turtledefs.js:35 -#: js/basicblocks.js:1553 -#: js/basicblocks.js:1573 -#: js/basicblocks.js:1587 -#: js/basicblocks.js:3993 -#: js/basicblocks.js:4033 -#: js/basicblocks.js:4043 -#: js/basicblocks.js:4091 -#: js/basicblocks.js:4104 -#: js/basicblocks.js:4152 -#: js/basicblocks.js:4207 -#: js/basicblocks.js:4212 -#: js/basicblocks.js:4217 -#: js/rubrics.js:478 -#: js/macros.js:45 -#: js/blocks.js:1023 -#: js/blocks.js:2849 -#: js/blocks.js:2850 -#: js/blocks.js:3064 -#: js/blocks.js:3366 -#: js/blocks.js:3559 -#: js/blocks.js:4600 -#: js/blocks.js:5457 -#: js/musickeyboard.js:370 -#: js/pitchtimematrix.js:1642 -#: js/rhythmruler.js:1176 -#: js/rhythmruler.js:1178 -#: js/rhythmruler.js:1286 -#: js/rhythmruler.js:1288 -#: js/block.js:1165 -#: js/block.js:5575 -#: js/block.js:5584 -#: js/block.js:5595 -#: js/activity.js:2240 -#: js/palette.js:812 -#: js/palette.js:821 -#: js/palette.js:830 -#: js/palette.js:839 -#: js/palette.js:2144 -#: js/palette.js:2155 -#: js/palette.js:2166 -#: js/palette.js:2177 -#: js/palette.js:2187 -#: js/turtledefs.js:35 -#: js/basicblocks.js:1559 -#: js/basicblocks.js:1579 -#: js/basicblocks.js:1593 -#: js/basicblocks.js:4003 -#: js/basicblocks.js:4043 -#: js/basicblocks.js:4053 -#: js/basicblocks.js:4101 -#: js/basicblocks.js:4114 -#: js/basicblocks.js:4162 -#: js/basicblocks.js:4217 -#: js/basicblocks.js:4222 -#: js/basicblocks.js:4227 -#: js/rubrics.js:478 -#: js/macros.js:45 -#: js/macros.js:46 -#: js/blocks.js:1025 -#: js/blocks.js:2860 -#: js/blocks.js:2861 -#: js/blocks.js:3075 -#: js/blocks.js:3377 -#: js/blocks.js:3570 -#: js/blocks.js:4612 -#: js/blocks.js:5477 -#: js/musickeyboard.js:375 -#: js/pitchtimematrix.js:1716 -#: js/rhythmruler.js:1176 -#: js/rhythmruler.js:1178 -#: js/rhythmruler.js:1286 -#: js/rhythmruler.js:1288 -#: js/block.js:1186 -#: js/block.js:5751 -#: js/block.js:5760 -#: js/block.js:5771 -#: js/activity.js:2363 -#: js/palette.js:816 -#: js/palette.js:825 -#: js/palette.js:834 -#: js/palette.js:843 -#: js/palette.js:2148 -#: js/palette.js:2159 -#: js/palette.js:2170 -#: js/palette.js:2181 -#: js/palette.js:2190 -#: js/turtledefs.js:35 -#: js/basicblocks.js:1572 -#: js/basicblocks.js:1592 -#: js/basicblocks.js:1606 -#: js/basicblocks.js:4069 -#: js/basicblocks.js:4079 -#: js/basicblocks.js:4127 -#: js/basicblocks.js:4140 -#: js/basicblocks.js:4184 -#: js/basicblocks.js:4207 -#: js/basicblocks.js:4262 -#: js/basicblocks.js:4267 -#: js/basicblocks.js:4272 -#: js/rubrics.js:478 -#: js/macros.js:47 -#: js/macros.js:48 -#: js/macros.js:66 -#: js/macros.js:66 -#: js/macros.js:68 -#: js/macros.js:141 -#: js/blocks.js:1034 -#: js/blocks.js:2922 -#: js/blocks.js:2923 -#: js/blocks.js:3137 -#: js/blocks.js:3442 -#: js/blocks.js:3636 -#: js/blocks.js:4680 -#: js/blocks.js:5545 -#: js/musickeyboard.js:1823 -#: js/pitchtimematrix.js:3385 -#: js/rhythmruler.js:1229 -#: js/rhythmruler.js:1231 -#: js/rhythmruler.js:1340 -#: js/rhythmruler.js:1342 -#: js/RhythmBlockPaletteBlocks.js:14 -#: js/RhythmBlockPaletteBlocks.js:177 -#: js/RhythmBlockPaletteBlocks.js:14 -#: js/RhythmBlockPaletteBlocks.js:177 -#: js/RhythmBlockPaletteBlocks.js:14 -#: js/RhythmBlockPaletteBlocks.js:177 -#: js/RhythmBlockPaletteBlocks.js:14 -#: js/RhythmBlockPaletteBlocks.js:177 -#: js/RhythmBlockPaletteBlocks.js:14 -#: js/RhythmBlockPaletteBlocks.js:170 -#: js/block.js:1436 -#: js/block.js:7910 -#: js/block.js:7931 -#: js/block.js:7948 -#: js/activity.js:2693 -#: js/palette.js:932 -#: js/palette.js:941 -#: js/palette.js:950 -#: js/palette.js:959 -#: js/palette.js:2511 -#: js/palette.js:2522 -#: js/palette.js:2533 -#: js/palette.js:2544 -#: js/palette.js:2563 -#: js/turtledefs.js:76 -#: js/rubrics.js:497 -#: js/macros.js:153 -#: js/macros.js:249 -#: js/macros.js:250 -#: js/macros.js:259 -#: js/macros.js:801 -#: js/blocks.js:1120 -#: js/blocks.js:3549 -#: js/blocks.js:3550 -#: js/blocks.js:3786 -#: js/blocks.js:4168 -#: js/blocks.js:4363 -#: js/blocks.js:5526 -#: js/blocks.js:6776 -#: js/ActionBlocks.js:99 -#: js/ActionBlocks.js:147 -#: js/ActionBlocks.js:350 -#: js/ActionBlocks.js:415 -#: js/ActionBlocks.js:569 -#: js/ActionBlocks.js:629 -#: js/ActionBlocks.js:765 -#: js/ActionBlocks.js:768 -#: js/ActionBlocks.js:773 -#: js/ActionBlocks.js:805 -#: js/MeterBlocks.js:412 -#: js/MeterBlocks.js:479 -#: js/MeterBlocks.js:568 -#: js/MeterBlocks.js:669 -#: js/musickeyboard.js:2360 -#: js/pitchtimematrix.js:4708 -#: js/rhythmruler.js:1602 -#: js/rhythmruler.js:1610 -#: js/rhythmruler.js:1911 -#: js/rhythmruler.js:1919 -#: js/block.js:1436 -#: js/block.js:8089 -#: js/block.js:8110 -#: js/block.js:8127 -#: js/activity.js:2968 -#: js/palette.js:503 -#: js/palette.js:512 -#: js/palette.js:521 -#: js/palette.js:530 -#: js/palette.js:1122 -#: js/palette.js:1133 -#: js/palette.js:1144 -#: js/palette.js:1155 -#: js/palette.js:1174 -#: js/turtledefs.js:76 -#: js/rubrics.js:497 -#: js/macros.js:153 -#: js/macros.js:249 -#: js/macros.js:250 -#: js/macros.js:259 -#: js/macros.js:801 -#: js/blocks.js:1120 -#: js/blocks.js:3572 -#: js/blocks.js:3573 -#: js/blocks.js:3809 -#: js/blocks.js:4191 -#: js/blocks.js:4382 -#: js/blocks.js:5545 -#: js/blocks.js:6795 -#: js/ActionBlocks.js:99 -#: js/ActionBlocks.js:147 -#: js/ActionBlocks.js:343 -#: js/ActionBlocks.js:408 -#: js/ActionBlocks.js:562 -#: js/ActionBlocks.js:622 -#: js/ActionBlocks.js:749 -#: js/ActionBlocks.js:752 -#: js/ActionBlocks.js:757 -#: js/ActionBlocks.js:789 -#: js/MeterBlocks.js:390 -#: js/MeterBlocks.js:419 -#: js/MeterBlocks.js:455 -#: js/MeterBlocks.js:494 -#: js/musickeyboard.js:2421 -#: js/pitchtimematrix.js:4706 -#: js/rhythmruler.js:1602 -#: js/rhythmruler.js:1610 -#: js/rhythmruler.js:1911 -#: js/rhythmruler.js:1919 -#: js/block.js:1436 -#: js/block.js:8073 -#: js/block.js:8094 -#: js/block.js:8111 -#: js/activity.js:2984 -#: js/palette.js:503 -#: js/palette.js:512 -#: js/palette.js:521 -#: js/palette.js:530 -#: js/palette.js:1122 -#: js/palette.js:1133 -#: js/palette.js:1144 -#: js/palette.js:1155 -#: js/palette.js:1174 -#: js/turtledefs.js:78 -#: js/rubrics.js:501 -#: js/macros.js:153 -#: js/macros.js:249 -#: js/macros.js:250 -#: js/macros.js:259 -#: js/macros.js:801 -#: js/blocks.js:1112 -#: js/blocks.js:3545 -#: js/blocks.js:3546 -#: js/blocks.js:3779 -#: js/blocks.js:4160 -#: js/blocks.js:4346 -#: js/blocks.js:5496 -#: js/blocks.js:6721 -#: js/ActionBlocks.js:99 -#: js/ActionBlocks.js:147 -#: js/ActionBlocks.js:343 -#: js/ActionBlocks.js:408 -#: js/ActionBlocks.js:562 -#: js/ActionBlocks.js:622 -#: js/ActionBlocks.js:750 -#: js/ActionBlocks.js:753 -#: js/ActionBlocks.js:758 -#: js/ActionBlocks.js:790 -#: js/MeterBlocks.js:396 -#: js/MeterBlocks.js:425 -#: js/MeterBlocks.js:461 -#: js/MeterBlocks.js:500 -#: js/musickeyboard.js:2495 -#: js/pitchtimematrix.js:4718 -#: js/rhythmruler.js:1602 -#: js/rhythmruler.js:1610 -#: js/rhythmruler.js:1911 -#: js/rhythmruler.js:1919 -#: js/block.js:1436 -#: js/block.js:8073 -#: js/block.js:8094 -#: js/block.js:8111 -#: js/activity.js:2984 -#: js/palette.js:503 -#: js/palette.js:512 -#: js/palette.js:521 -#: js/palette.js:530 -#: js/palette.js:1122 -#: js/palette.js:1133 -#: js/palette.js:1144 -#: js/palette.js:1155 -#: js/palette.js:1174 -#: js/turtledefs.js:78 -#: js/rubrics.js:501 -#: js/macros.js:153 -#: js/macros.js:249 -#: js/macros.js:250 -#: js/macros.js:259 -#: js/macros.js:801 -#: js/blocks.js:1112 -#: js/blocks.js:3545 -#: js/blocks.js:3546 -#: js/blocks.js:3779 -#: js/blocks.js:4160 -#: js/blocks.js:4346 -#: js/blocks.js:5496 -#: js/blocks.js:6721 -#: js/ActionBlocks.js:99 -#: js/ActionBlocks.js:147 -#: js/ActionBlocks.js:343 -#: js/ActionBlocks.js:408 -#: js/ActionBlocks.js:562 -#: js/ActionBlocks.js:622 -#: js/ActionBlocks.js:750 -#: js/ActionBlocks.js:753 -#: js/ActionBlocks.js:758 -#: js/ActionBlocks.js:790 -#: js/MeterBlocks.js:396 -#: js/MeterBlocks.js:425 -#: js/MeterBlocks.js:461 -#: js/MeterBlocks.js:500 -#: js/musickeyboard.js:2495 -#: js/pitchtimematrix.js:4718 -#: js/rhythmruler.js:1602 -#: js/rhythmruler.js:1610 -#: js/rhythmruler.js:1911 -#: js/rhythmruler.js:1919 -#: js/block.js:1436 -#: js/block.js:8073 -#: js/block.js:8094 -#: js/block.js:8111 -#: js/activity.js:2984 -#: js/palette.js:506 -#: js/palette.js:515 -#: js/palette.js:524 -#: js/palette.js:533 -#: js/palette.js:1128 -#: js/palette.js:1139 -#: js/palette.js:1150 -#: js/palette.js:1161 -#: js/palette.js:1180 -#: js/turtledefs.js:78 -#: js/rubrics.js:501 -#: js/macros.js:153 -#: js/macros.js:249 -#: js/macros.js:250 -#: js/macros.js:259 -#: js/macros.js:801 -#: js/blocks.js:1112 -#: js/blocks.js:3545 -#: js/blocks.js:3546 -#: js/blocks.js:3779 -#: js/blocks.js:4160 -#: js/blocks.js:4346 -#: js/blocks.js:5496 -#: js/blocks.js:6721 -#: js/ActionBlocks.js:99 -#: js/ActionBlocks.js:147 -#: js/ActionBlocks.js:343 -#: js/ActionBlocks.js:408 -#: js/ActionBlocks.js:562 -#: js/ActionBlocks.js:622 -#: js/ActionBlocks.js:750 -#: js/ActionBlocks.js:753 -#: js/ActionBlocks.js:758 -#: js/ActionBlocks.js:790 -#: js/MeterBlocks.js:396 -#: js/MeterBlocks.js:425 -#: js/MeterBlocks.js:461 -#: js/MeterBlocks.js:500 -#: js/musickeyboard.js:2495 -#: js/pitchtimematrix.js:4718 -#: js/rhythmruler.js:1602 -#: js/rhythmruler.js:1610 -#: js/rhythmruler.js:1911 -#: js/rhythmruler.js:1919 -#: js/block.js:1414 -#: js/block.js:4018 -#: js/block.js:4036 -#: js/block.js:4047 -#: js/activity.js:2899 -#: js/palette.js:486 -#: js/palette.js:495 -#: js/palette.js:504 -#: js/palette.js:513 -#: js/palette.js:1089 -#: js/palette.js:1100 -#: js/palette.js:1111 -#: js/palette.js:1122 -#: js/palette.js:1141 -#: js/turtledefs.js:78 -#: js/rubrics.js:501 -#: js/macros.js:170 -#: js/macros.js:266 -#: js/macros.js:267 -#: js/macros.js:276 -#: js/macros.js:828 -#: js/blocks.js:1071 -#: js/blocks.js:3210 -#: js/blocks.js:3211 -#: js/blocks.js:3428 -#: js/blocks.js:3752 -#: js/blocks.js:3932 -#: js/blocks.js:4976 -#: js/blocks.js:5845 -#: js/ActionBlocks.js:99 -#: js/ActionBlocks.js:147 -#: js/ActionBlocks.js:343 -#: js/ActionBlocks.js:408 -#: js/ActionBlocks.js:562 -#: js/ActionBlocks.js:622 -#: js/ActionBlocks.js:750 -#: js/ActionBlocks.js:753 -#: js/ActionBlocks.js:758 -#: js/ActionBlocks.js:790 -#: js/MeterBlocks.js:396 -#: js/MeterBlocks.js:426 -#: js/MeterBlocks.js:462 -#: js/MeterBlocks.js:501 -#: js/musickeyboard.js:2495 -#: js/rhythmruler.js:1874 -#: js/rhythmruler.js:1881 -#: js/rhythmruler.js:2065 -#: js/rhythmruler.js:2072 -#: js/phrasemaker.js:4226 -#: js/block.js:1414 -#: js/block.js:4020 -#: js/block.js:4038 -#: js/block.js:4049 -#: js/activity.js:2899 -#: js/palette.js:486 -#: js/palette.js:495 -#: js/palette.js:504 -#: js/palette.js:513 -#: js/palette.js:1089 -#: js/palette.js:1100 -#: js/palette.js:1111 -#: js/palette.js:1122 -#: js/palette.js:1141 -#: js/turtledefs.js:78 -#: js/rubrics.js:501 +#: js/SaveInterface.js:59 +#: js/SaveInterface.js:61 +#: js/SaveInterface.js:93 +msgid "Music Blocks Project" +msgstr "" + +#: js/SaveInterface.js:63 +msgid "This project was created in Music Blocks" +msgstr "" + +#: js/SaveInterface.js:67 +msgid "Music Blocks is a Free/Libre Software application." +msgstr "" + +#: js/SaveInterface.js:69 +msgid "The source code can be accessed at" +msgstr "" + +#: js/SaveInterface.js:72 +msgid "For more information, please consult the" +msgstr "" + +#: js/SaveInterface.js:76 +#: js/turtledefs.js:795 +msgid "Music Blocks Guide" +msgstr "" + +#: js/SaveInterface.js:83 +msgid "Alternatively, open the file in Music Blocks using the Load project button." +msgstr "" + +#: js/SaveInterface.js:85 +msgid "Project Code" +msgstr "" + +#: js/SaveInterface.js:87 +msgid "This code stores data about the blocks in a project." +msgstr "" + +#: js/SaveInterface.js:89 +msgid "Show" +msgstr "" + +#: js/SaveInterface.js:91 +msgid "Hide" +msgstr "" + +#: js/SaveInterface.js:131 +#: js/SaveInterface.js:204 +#: js/SaveInterface.js:262 +#: js/SaveInterface.js:389 +#: js/SaveInterface.js:417 +#: js/activity.js:4884 +#: planet/js/ProjectStorage.js:27 +#: planet/js/GlobalPlanet.js:467 +#: planet/js/GlobalPlanet.js:469 +#: planet/js/GlobalPlanet.js:495 +#.TRANS: default project title when saving as Lilypond +msgid "My Project" +msgstr "" + +#: js/SaveInterface.js:197 +#: planet/js/SaveInterface.js:58 +msgid "No description provided" +msgstr "" + +#: js/SaveInterface.js:332 +msgid "Your recording is in progress." +msgstr "" + +#: js/SaveInterface.js:401 +#.TRANS: File name prompt for save as Lilypond +msgid "File name" +msgstr "" + +#: js/SaveInterface.js:403 +#: planet/js/StringHelper.js:39 +#.TRANS: Project title prompt for save as Lilypond +msgid "Project title" +msgstr "" + +#: js/SaveInterface.js:405 +#.TRANS: Project title prompt for save as Lilypond +msgid "Project author" +msgstr "" + +#: js/SaveInterface.js:407 +#.TRANS: MIDI prompt for save as Lilypond +msgid "Include MIDI output?" +msgstr "" + +#: js/SaveInterface.js:409 +#.TRANS: Guitar prompt for save as Lilypond +msgid "Include guitar tablature output?" +msgstr "" + +#: js/SaveInterface.js:411 +#.TRANS: Lilypond is a scripting language for generating sheet music +msgid "Save as Lilypond" +msgstr "" + +#: js/SaveInterface.js:426 +#: js/blocks/EnsembleBlocks.js:75 +#: js/blocks/EnsembleBlocks.js:154 +#: js/blocks/EnsembleBlocks.js:216 +#: js/blocks/EnsembleBlocks.js:302 +#: js/blocks/EnsembleBlocks.js:348 +#: js/blocks/EnsembleBlocks.js:389 +#: js/blocks/EnsembleBlocks.js:441 +#: js/blocks/EnsembleBlocks.js:490 +#: js/blocks/EnsembleBlocks.js:536 +#: js/blocks/EnsembleBlocks.js:583 +#: js/blocks/EnsembleBlocks.js:637 +#: js/blocks/EnsembleBlocks.js:753 +#: js/blocks/EnsembleBlocks.js:840 +#: js/blocks/EnsembleBlocks.js:899 +#: js/blocks/EnsembleBlocks.js:942 +#: js/blocks/EnsembleBlocks.js:1212 +#: js/blocks/EnsembleBlocks.js:1280 +#.TRANS: default project author when saving as Lilypond +msgid "Mr. Mouse" +msgstr "" + +#: js/SaveInterface.js:573 +msgid "The Lilypond code is copied to clipboard. You can paste it here: " +msgstr "" + +#: js/languagebox.js:198 +msgid "Refresh your browser to change your language preference." +msgstr "" + +#: js/languagebox.js:218 +msgid "Music Blocks is already set to this language." +msgstr "" + +#: js/planetInterface.js:131 +msgid "project undefined" +msgstr "" + +#: js/rubrics.js:523 +#: js/turtledefs.js:119 +#: js/turtledefs.js:221 +#: js/blocks/RhythmBlockPaletteBlocks.js:52 +#: js/blocks/RhythmBlockPaletteBlocks.js:234 +#: js/blocks/ProgramBlocks.js:745 +#: js/widgets/rhythmruler.js:2057 +#: js/widgets/rhythmruler.js:2064 +#: js/widgets/rhythmruler.js:2133 +#: js/widgets/rhythmruler.js:2140 +#: js/widgets/rhythmruler.js:2219 +#.TRANS: an arrangement of notes based on duration +msgid "rhythm" +msgstr "" + +#: js/rubrics.js:524 +#: js/turtledefs.js:121 +#: js/turtledefs.js:223 +#: js/block-verbose.js:2622 +#: js/block.js:2550 +#: js/blocks/IntervalsBlocks.js:63 +#: js/blocks/SensorsBlocks.js:178 +#: js/blocks/PitchBlocks.js:1839 +#: js/blocks/PitchBlocks.js:1853 +#: js/widgets/musickeyboard.js:1935 +#: js/widgets/phrasemaker.js:1036 +#.TRANS: pitch number +#.TRANS: pitch number +#.TRANS: we specify pitch in terms of a name and an octave. The name can be CDEFGAB or Do Re Mi Fa Sol La Ti. Octave is a number between 1 and 8. +msgid "pitch" +msgstr "" + +#: js/rubrics.js:525 +#: js/turtledefs.js:123 +#: js/turtledefs.js:225 +msgid "tone" +msgstr "" + +#: js/rubrics.js:526 +#: js/lilypond.js:605 +#: js/lilypond.js:904 +#: js/lilypond.js:910 +#: js/lilypond.js:948 +msgid "mouse" +msgstr "" + +#: js/rubrics.js:527 +#: js/turtledefs.js:132 +#: js/turtledefs.js:234 +#: js/widgets/phrasemaker.js:1040 +msgid "pen" +msgstr "" + +#: js/rubrics.js:528 +#: js/turtledefs.js:133 +#: js/turtledefs.js:235 +#: js/blocks/NumberBlocks.js:981 +#: js/blocks/PitchBlocks.js:1717 +#: js/blocks/PitchBlocks.js:1758 +msgid "number" +msgstr "எண்" + +#: js/rubrics.js:529 +#: js/turtledefs.js:127 +#: js/turtledefs.js:229 +msgid "flow" +msgstr "" + +#: js/rubrics.js:530 +#: js/turtledefs.js:128 +#: js/turtledefs.js:230 +#: js/block-verbose.js:1609 +#: js/block-verbose.js:4559 +#: js/block-verbose.js:4577 +#: js/block-verbose.js:4588 +#: js/block.js:1573 +#: js/block.js:4483 +#: js/block.js:4501 +#: js/block.js:4512 +#: js/blocks.js:1018 +#: js/blocks.js:3491 +#: js/blocks.js:3492 +#: js/blocks.js:3717 +#: js/blocks.js:4076 +#: js/blocks.js:4269 +#: js/blocks.js:5432 +#: js/blocks.js:6563 #: js/macros.js:170 #: js/macros.js:266 #: js/macros.js:267 #: js/macros.js:276 #: js/macros.js:828 -#: js/blocks.js:1071 -#: js/blocks.js:3210 -#: js/blocks.js:3211 -#: js/blocks.js:3428 -#: js/blocks.js:3752 -#: js/blocks.js:3932 -#: js/blocks.js:4976 -#: js/blocks.js:5845 -#: js/ActionBlocks.js:99 -#: js/ActionBlocks.js:147 -#: js/ActionBlocks.js:343 -#: js/ActionBlocks.js:408 -#: js/ActionBlocks.js:562 -#: js/ActionBlocks.js:622 -#: js/ActionBlocks.js:750 -#: js/ActionBlocks.js:753 -#: js/ActionBlocks.js:758 -#: js/ActionBlocks.js:790 -#: js/MeterBlocks.js:396 -#: js/MeterBlocks.js:426 -#: js/MeterBlocks.js:462 -#: js/MeterBlocks.js:501 -#: js/musickeyboard.js:2495 -#: js/rhythmruler.js:1874 -#: js/rhythmruler.js:1881 -#: js/rhythmruler.js:2065 -#: js/rhythmruler.js:2072 -#: js/phrasemaker.js:4226 -#: js/block.js:1439 -#: js/block.js:4063 -#: js/block.js:4081 -#: js/block.js:4092 -#: js/palette.js:505 -#: js/palette.js:514 -#: js/palette.js:523 -#: js/palette.js:532 -#: js/palette.js:1125 -#: js/palette.js:1136 -#: js/palette.js:1147 -#: js/palette.js:1158 -#: js/palette.js:1177 -#: js/turtledefs.js:101 -#: js/rubrics.js:522 -#: js/macros.js:168 -#: js/macros.js:264 -#: js/macros.js:265 -#: js/macros.js:274 -#: js/macros.js:826 -#: js/blocks.js:1001 -#: js/blocks.js:3394 -#: js/blocks.js:3395 -#: js/blocks.js:3620 -#: js/blocks.js:3981 -#: js/blocks.js:4172 -#: js/blocks.js:5305 -#: js/blocks.js:6432 -#: js/ActionBlocks.js:119 -#: js/ActionBlocks.js:167 -#: js/ActionBlocks.js:364 -#: js/ActionBlocks.js:429 -#: js/ActionBlocks.js:582 -#: js/ActionBlocks.js:643 -#: js/ActionBlocks.js:772 -#: js/ActionBlocks.js:775 -#: js/ActionBlocks.js:780 -#: js/ActionBlocks.js:813 -#: js/MeterBlocks.js:416 -#: js/MeterBlocks.js:446 -#: js/MeterBlocks.js:482 -#: js/MeterBlocks.js:521 -#: js/musickeyboard.js:2564 -#: js/rhythmruler.js:1925 -#: js/rhythmruler.js:1932 -#: js/rhythmruler.js:2116 -#: js/rhythmruler.js:2123 -#: js/phrasemaker.js:4402 -#: js/planetInterface.js:101 -#: js/planetInterface.js:101 -#: js/planetInterface.js:101 -#: js/planetInterface.js:101 -#: js/planetInterface.js:102 -#: js/planetInterface.js:104 -#: js/planetInterface.js:104 -#: js/planetInterface.js:104 -msgid "project undefined" +#: js/palette.js:527 +#: js/palette.js:536 +#: js/palette.js:545 +#: js/palette.js:554 +#: js/palette.js:1129 +#: js/palette.js:1140 +#: js/palette.js:1151 +#: js/palette.js:1162 +#: js/palette.js:1181 +#: js/blocks/ActionBlocks.js:254 +#: js/blocks/ActionBlocks.js:307 +#: js/blocks/ActionBlocks.js:617 +#: js/blocks/ActionBlocks.js:716 +#: js/blocks/ActionBlocks.js:961 +#: js/blocks/ActionBlocks.js:1049 +#: js/blocks/ActionBlocks.js:1322 +#: js/blocks/ActionBlocks.js:1325 +#: js/blocks/ActionBlocks.js:1337 +#: js/blocks/ActionBlocks.js:1404 +#: js/blocks/MeterBlocks.js:715 +#: js/blocks/MeterBlocks.js:768 +#: js/blocks/MeterBlocks.js:831 +#: js/blocks/MeterBlocks.js:892 +#: js/widgets/musickeyboard.js:2986 +#: js/widgets/phrasemaker.js:4913 +#: js/widgets/rhythmruler.js:2319 +#: js/widgets/rhythmruler.js:2326 +#: js/widgets/rhythmruler.js:2511 +#: js/widgets/rhythmruler.js:2518 +msgid "action" +msgstr "செயற்படு" + +#: js/rubrics.js:531 +#: js/turtledefs.js:136 +#: js/turtledefs.js:238 +msgid "sensors" msgstr "" -#: js/logo.js:61 -msgid "Not a valid pitch name" +#: js/rubrics.js:532 +#: js/turtledefs.js:135 +#: js/turtledefs.js:237 +#: js/blocks/MediaBlocks.js:930 +msgid "media" +msgstr "" + +#: js/rubrics.js:533 +msgid "mice" +msgstr "" + +#: js/toolbar.js:48 +#: js/toolbar.js:109 +msgid "About Music Blocks" +msgstr "" + +#: js/toolbar.js:49 +#: js/toolbar.js:110 +#: js/toolbar.js:175 +#: js/toolbar.js:231 +#: js/turtledefs.js:445 +#: js/turtledefs.js:482 +#: js/activity.js:2660 +#: js/activity.js:2671 +#: js/activity.js:2902 +#: js/widgets/modewidget.js:77 +#: js/widgets/meterwidget.js:185 +#: js/widgets/pitchdrummatrix.js:147 +#: js/widgets/pitchdrummatrix.js:687 +#: js/widgets/pitchdrummatrix.js:689 +#: js/widgets/pitchdrummatrix.js:741 +#: js/widgets/pitchdrummatrix.js:743 +#: js/widgets/pitchdrummatrix.js:758 +#: js/widgets/pitchdrummatrix.js:760 +#: js/widgets/pitchdrummatrix.js:789 +#: js/widgets/pitchdrummatrix.js:791 +#: js/widgets/pitchstaircase.js:121 +#: js/widgets/temperament.js:610 +#: js/widgets/temperament.js:613 +#: js/widgets/temperament.js:673 +#: js/widgets/temperament.js:675 +#: js/widgets/temperament.js:2017 +#: js/widgets/temperament.js:2019 +#: js/widgets/tempo.js:84 +#: js/widgets/tempo.js:86 +#: js/widgets/timbre.js:432 +#: js/widgets/timbre.js:434 +#: js/widgets/timbre.js:465 +#: js/widgets/timbre.js:467 +#: js/widgets/timbre.js:746 +#: js/widgets/aiwidget.js:647 +#: js/widgets/aiwidget.js:654 +#: js/widgets/aiwidget.js:656 +#: js/widgets/arpeggio.js:90 +#: js/widgets/arpeggio.js:547 +#: js/widgets/arpeggio.js:549 +#: js/widgets/arpeggio.js:644 +#: js/widgets/arpeggio.js:646 +#: js/widgets/musickeyboard.js:676 +#: js/widgets/musickeyboard.js:872 +#: js/widgets/musickeyboard.js:874 +#: js/widgets/musickeyboard.js:953 +#: js/widgets/musickeyboard.js:955 +#: js/widgets/phrasemaker.js:513 +#: js/widgets/phrasemaker.js:523 +#: js/widgets/phrasemaker.js:525 +#: js/widgets/phrasemaker.js:4304 +#: js/widgets/phrasemaker.js:4528 +#: js/widgets/phrasemaker.js:4533 +#: js/widgets/phrasemaker.js:4535 +#: js/widgets/phrasemaker.js:4650 +#: js/widgets/rhythmruler.js:637 +#: js/widgets/rhythmruler.js:639 +#: js/widgets/rhythmruler.js:653 +#: js/widgets/rhythmruler.js:655 +#: js/widgets/sampler.js:162 +#: js/widgets/sampler.js:164 +#: js/widgets/sampler.js:363 +msgid "Play" +msgstr "" + +#: js/toolbar.js:50 +#: js/toolbar.js:111 +#: js/toolbar.js:176 +#: js/toolbar.js:232 +#: js/turtledefs.js:451 +#: js/turtledefs.js:488 +#: js/activity.js:2679 +#: js/widgets/modewidget.js:99 +#: js/widgets/modewidget.js:101 +#: js/widgets/meterwidget.js:206 +#: js/widgets/meterwidget.js:208 +#: js/widgets/pitchdrummatrix.js:674 +#: js/widgets/pitchdrummatrix.js:676 +#: js/widgets/temperament.js:2002 +#: js/widgets/temperament.js:2004 +#: js/widgets/arpeggio.js:534 +#: js/widgets/arpeggio.js:536 +#: js/widgets/phrasemaker.js:534 +#: js/widgets/phrasemaker.js:536 +msgid "Stop" +msgstr "நிறுத்து" + +#: js/toolbar.js:51 +#: js/toolbar.js:112 +#: js/toolbar.js:177 +#: js/toolbar.js:233 +#: js/turtledefs.js:498 +msgid "Record" +msgstr "" + +#: js/toolbar.js:52 +#: js/toolbar.js:53 +msgid "Full screen" +msgstr "" + +#: js/toolbar.js:54 +#: js/toolbar.js:115 +#: js/toolbar.js:180 +#: js/toolbar.js:236 +#: js/turtledefs.js:504 +msgid "Toggle Fullscreen" +msgstr "" + +#: js/toolbar.js:55 +#: js/toolbar.js:116 +#: js/toolbar.js:181 +#: js/toolbar.js:237 +#: js/turtledefs.js:510 +#: planet/js/StringHelper.js:33 +msgid "New project" +msgstr "" + +#: js/toolbar.js:56 +#: js/toolbar.js:117 +#: js/toolbar.js:182 +#: js/toolbar.js:238 +#: js/turtledefs.js:516 +msgid "Load project from file" +msgstr "" + +#: js/toolbar.js:57 +#: js/toolbar.js:118 +#: js/toolbar.js:119 +#: js/toolbar.js:183 +#: js/toolbar.js:239 +#: js/turtledefs.js:541 +#: js/turtledefs.js:550 +#: js/turtledefs.js:571 +msgid "Save project" +msgstr "" + +#: js/toolbar.js:58 +#: js/toolbar.js:77 +#: js/toolbar.js:79 +#: js/toolbar.js:138 +#: js/toolbar.js:147 +#: js/toolbar.js:149 +#: js/toolbar.js:184 +#: js/toolbar.js:202 +#: js/toolbar.js:204 +#: js/toolbar.js:240 +#: js/toolbar.js:258 +#: js/toolbar.js:260 +msgid "Save project as HTML" +msgstr "" + +#: js/toolbar.js:59 +#: js/toolbar.js:120 +#: js/toolbar.js:185 +#: js/toolbar.js:241 +msgid "Find and share projects" +msgstr "" + +#: js/toolbar.js:60 +#: js/toolbar.js:121 +#: js/toolbar.js:186 +#: js/toolbar.js:242 +msgid "Offline. Sharing is unavailable" +msgstr "" + +#: js/toolbar.js:61 +#: js/toolbar.js:122 +#: js/toolbar.js:187 +#: js/toolbar.js:243 +msgid "Auxiliary menu" +msgstr "" + +#: js/toolbar.js:62 +#: js/toolbar.js:123 +#: js/toolbar.js:188 +#: js/toolbar.js:244 +#: js/turtledefs.js:752 +#: js/piemenus.js:3423 +msgid "Help" +msgstr "உதவி" + +#: js/toolbar.js:63 +#: js/toolbar.js:124 +#: js/toolbar.js:189 +#: js/toolbar.js:245 +msgid "Run slowly" +msgstr "" + +#: js/toolbar.js:64 +#: js/toolbar.js:125 +#: js/toolbar.js:190 +#: js/toolbar.js:246 +#: js/turtledefs.js:682 +msgid "Run step by step" +msgstr "" + +#: js/toolbar.js:65 +#: js/toolbar.js:126 +#: js/toolbar.js:191 +#: js/toolbar.js:247 +#: js/turtledefs.js:689 +msgid "Display statistics" +msgstr "" + +#: js/toolbar.js:66 +#: js/toolbar.js:127 +#: js/toolbar.js:192 +#: js/toolbar.js:248 +msgid "Load plugin" +msgstr "" + +#: js/toolbar.js:67 +#: js/toolbar.js:128 +#: js/toolbar.js:193 +#: js/toolbar.js:249 +#: js/turtledefs.js:696 +msgid "Delete plugin" +msgstr "" + +#: js/toolbar.js:68 +#: js/toolbar.js:129 +#: js/toolbar.js:194 +#: js/toolbar.js:250 +msgid "Enable horizontal scrolling" +msgstr "" + +#: js/toolbar.js:69 +#: js/toolbar.js:130 +#: js/toolbar.js:195 +#: js/toolbar.js:251 +msgid "Disable horizontal scrolling" +msgstr "" + +#: js/toolbar.js:70 +#: js/toolbar.js:131 +#: js/toolbar.js:196 +#: js/toolbar.js:252 +#: planet/js/LocalCard.js:54 +#: planet/js/StringHelper.js:71 +msgid "Merge with current project" +msgstr "" + +#: js/toolbar.js:71 +#: js/toolbar.js:132 +msgid "Set Pitch Preview" +msgstr "" + +#: js/toolbar.js:72 +#: js/toolbar.js:133 +#: js/toolbar.js:197 +#: js/toolbar.js:253 +msgid "JavaScript Editor" +msgstr "" + +#: js/toolbar.js:73 +#: js/toolbar.js:134 +#: js/toolbar.js:198 +#: js/toolbar.js:254 +#: js/turtledefs.js:724 +msgid "Restore" +msgstr "" + +#: js/toolbar.js:74 +#: js/toolbar.js:135 +#: js/toolbar.js:199 +#: js/toolbar.js:255 +msgid "Switch to beginner mode" +msgstr "" + +#: js/toolbar.js:75 +#: js/toolbar.js:136 +#: js/toolbar.js:200 +#: js/toolbar.js:256 +msgid "Switch to advanced mode" +msgstr "" + +#: js/toolbar.js:76 +#: js/toolbar.js:137 +#: js/toolbar.js:146 +#: js/toolbar.js:201 +#: js/toolbar.js:257 +#: js/turtledefs.js:738 +msgid "Select language" +msgstr "" + +#: js/toolbar.js:78 +#: js/toolbar.js:81 +#: js/toolbar.js:140 +#: js/turtledefs.js:579 +msgid "Save mouse artwork as PNG" +msgstr "" + +#: js/toolbar.js:80 +#: js/toolbar.js:139 +#: js/turtledefs.js:575 +msgid "Save mouse artwork as SVG" +msgstr "" + +#: js/toolbar.js:82 +#: js/toolbar.js:141 +#: js/turtledefs.js:583 +msgid "Save music as WAV" +msgstr "" + +#: js/toolbar.js:83 +#: js/toolbar.js:142 +#: js/turtledefs.js:587 +msgid "Save sheet music as ABC" +msgstr "" + +#: js/toolbar.js:84 +#: js/toolbar.js:143 +#: js/turtledefs.js:591 +msgid "Save sheet music as Lilypond" +msgstr "" + +#: js/toolbar.js:85 +msgid "Save sheet music as MusicXML" +msgstr "" + +#: js/toolbar.js:86 +#: js/toolbar.js:144 +#: js/toolbar.js:152 +#: js/toolbar.js:207 +#: js/toolbar.js:263 +#: js/turtledefs.js:562 +#: js/turtledefs.js:595 +msgid "Save block artwork as SVG" +msgstr "" + +#: js/toolbar.js:87 +#: js/toolbar.js:145 +#: js/toolbar.js:153 +#: js/toolbar.js:208 +#: js/toolbar.js:264 +#: js/turtles.js:911 +msgid "Confirm" +msgstr "" + +#: js/toolbar.js:88 +#: js/toolbar.js:154 +#: js/toolbar.js:209 +#: js/toolbar.js:265 +msgid "English (United States)" +msgstr "" + +#: js/toolbar.js:89 +#: js/toolbar.js:155 +#: js/toolbar.js:210 +#: js/toolbar.js:266 +msgid "English (United Kingdom)" +msgstr "" + +#: js/toolbar.js:90 +#: js/toolbar.js:156 +#: js/toolbar.js:211 +#: js/toolbar.js:267 +msgid "日本語" +msgstr "" + +#: js/toolbar.js:91 +msgid "한국어" +msgstr "" + +#: js/toolbar.js:92 +#: js/toolbar.js:158 +#: js/toolbar.js:213 +#: js/toolbar.js:269 +msgid "español" +msgstr "" + +#: js/toolbar.js:93 +#: js/toolbar.js:159 +#: js/toolbar.js:214 +#: js/toolbar.js:270 +msgid "português" msgstr "" -#: js/logo.js:507 -#: js/ProgramBlocks.js:258 -#: js/ProgramBlocks.js:427 -msgid "You must select a file." +#: js/toolbar.js:94 +#: js/toolbar.js:160 +#: js/toolbar.js:215 +#: js/toolbar.js:271 +msgid "にほんご" msgstr "" -#: js/logo.js:1184 -#: js/turtles.js:118 -#: js/turtle-painter.js:1192 -#: js/turtle-painter.js:1193 -#: js/block.js:1463 -#: js/lilypond.js:757 -#: js/lilypond.js:921 -#: js/lilypond.js:959 -#: js/ActionBlocks.js:1223 -#: js/ProgramBlocks.js:1267 -msgid "start" -msgstr "ஆரம்பி" - -#: js/logo.js:1696 -msgid "Playback is ready." +#: js/toolbar.js:95 +#: js/toolbar.js:161 +#: js/toolbar.js:216 +#: js/toolbar.js:272 +msgid "中文" msgstr "" -#: js/blocks.js:1011 -#: js/blocks.js:3427 -#: js/blocks.js:3428 -#: js/blocks.js:3653 -#: js/blocks.js:4012 -#: js/blocks.js:4205 -#: js/blocks.js:5343 -#: js/blocks.js:6474 -#: js/palette.js:527 -#: js/palette.js:536 -#: js/palette.js:545 -#: js/palette.js:554 -#: js/palette.js:1131 -#: js/palette.js:1142 -#: js/palette.js:1153 -#: js/palette.js:1164 -#: js/palette.js:1183 -#: js/rubrics.js:529 -#: js/macros.js:170 -#: js/macros.js:266 -#: js/macros.js:267 -#: js/macros.js:276 -#: js/macros.js:828 -#: js/block.js:1449 -#: js/block.js:4164 -#: js/block.js:4182 -#: js/block.js:4193 -#: js/turtledefs.js:128 -#: js/turtledefs.js:230 -#: js/ActionBlocks.js:254 -#: js/ActionBlocks.js:307 -#: js/ActionBlocks.js:617 -#: js/ActionBlocks.js:716 -#: js/ActionBlocks.js:961 -#: js/ActionBlocks.js:1049 -#: js/ActionBlocks.js:1322 -#: js/ActionBlocks.js:1325 -#: js/ActionBlocks.js:1337 -#: js/ActionBlocks.js:1404 -#: js/MeterBlocks.js:715 -#: js/MeterBlocks.js:768 -#: js/MeterBlocks.js:831 -#: js/MeterBlocks.js:892 -#: js/phrasemaker.js:4412 -#: js/musickeyboard.js:2647 -#: js/rhythmruler.js:1928 -#: js/rhythmruler.js:1935 -#: js/rhythmruler.js:2119 -#: js/rhythmruler.js:2126 -msgid "action" -msgstr "செயற்படு" - -#: js/blocks.js:1205 -#: js/blocks.js:3380 -#: js/blocks.js:3770 -#: js/blocks.js:3801 -#: js/blocks.js:3850 -#: js/blocks.js:3885 -#: js/blocks.js:6497 -#: js/palette.js:509 -#: js/palette.js:638 -#: js/palette.js:1107 -#: js/BoxesBlocks.js:282 -#: js/BoxesBlocks.js:285 -#: js/BoxesBlocks.js:405 -#: js/BoxesBlocks.js:594 -msgid "box" -msgstr "பெட்டி" +#: js/toolbar.js:96 +#: js/toolbar.js:162 +#: js/toolbar.js:217 +#: js/toolbar.js:273 +msgid "ภาษาไทย" +msgstr "" -#: js/blocks.js:1680 -msgid "Consider breaking this stack into parts." +#: js/toolbar.js:97 +#: js/toolbar.js:163 +#: js/toolbar.js:218 +#: js/toolbar.js:274 +msgid "aymara" msgstr "" -#: js/blocks.js:2408 -#: js/palette.js:653 -#: js/MediaBlocks.js:602 -msgid "open file" +#: js/toolbar.js:98 +#: js/toolbar.js:164 +#: js/toolbar.js:219 +#: js/toolbar.js:275 +msgid "quechua" msgstr "" -#: js/blocks.js:2415 -#: js/blocks.js:2423 -#: js/activity.js:1875 -msgid "audio file" +#: js/toolbar.js:99 +#: js/toolbar.js:165 +#: js/toolbar.js:220 +#: js/toolbar.js:276 +msgid "guarani" msgstr "" -#: js/blocks.js:2536 -#: js/blocks.js:3147 -#: js/block.js:3543 -msgid "on2" +#: js/toolbar.js:100 +#: js/toolbar.js:166 +#: js/toolbar.js:221 +#: js/toolbar.js:277 +msgid "हिंदी" msgstr "" -#: js/blocks.js:2538 -#: js/blocks.js:3149 -#: js/block.js:3545 -msgid "off" +#: js/toolbar.js:101 +#: js/toolbar.js:168 +#: js/toolbar.js:222 +#: js/toolbar.js:279 +msgid "igbo" msgstr "" -#: js/blocks.js:2543 -#: js/blocks.js:3154 -#: js/palette.js:618 -#: js/block.js:3466 -#: js/BooleanBlocks.js:77 -#: js/BooleanBlocks.js:167 -#: js/BooleanBlocks.js:251 -#: js/BooleanBlocks.js:335 -#: js/BooleanBlocks.js:433 -#: js/BooleanBlocks.js:539 -#: js/BooleanBlocks.js:640 -#: js/BooleanBlocks.js:741 -#: js/BooleanBlocks.js:847 -#: js/BooleanBlocks.js:948 -#: js/BooleanBlocks.js:1033 -#: js/SensorsBlocks.js:910 -msgid "true" +#: js/toolbar.js:102 +#: js/toolbar.js:169 +#: js/toolbar.js:223 +#: js/toolbar.js:280 +msgid "عربى" msgstr "" -#: js/blocks.js:2545 -#: js/blocks.js:3156 -#: js/block.js:3466 -#: js/BooleanBlocks.js:79 -#: js/BooleanBlocks.js:169 -#: js/BooleanBlocks.js:253 -#: js/BooleanBlocks.js:337 -#: js/BooleanBlocks.js:435 -#: js/BooleanBlocks.js:541 -#: js/BooleanBlocks.js:642 -#: js/BooleanBlocks.js:743 -#: js/BooleanBlocks.js:849 -#: js/BooleanBlocks.js:950 -#: js/SensorsBlocks.js:912 -msgid "false" +#: js/toolbar.js:103 +#: js/toolbar.js:167 +#: js/toolbar.js:224 +#: js/toolbar.js:278 +msgid "తెలుగు" msgstr "" -#: js/blocks.js:3183 -#: js/palette.js:574 -#: js/MediaBlocks.js:892 -#: js/MediaBlocks.js:963 -msgid "text" -msgstr "உரை" +#: js/toolbar.js:104 +#: js/toolbar.js:170 +#: js/toolbar.js:225 +#: js/toolbar.js:281 +msgid "עִברִית" +msgstr "" -#: js/blocks.js:3379 -#: js/palette.js:641 -#: js/palette.js:642 -#: js/BoxesBlocks.js:514 -msgid "store in box" +#: js/toolbar.js:113 +#: js/toolbar.js:114 +#: js/toolbar.js:178 +#: js/toolbar.js:179 +#: js/toolbar.js:234 +#: js/toolbar.js:235 +msgid "Full Screen" msgstr "" -#: js/blocks.js:3384 -#: js/blocks.js:3824 -#: js/blocks.js:3859 -#: js/blocks.js:3894 -#: js/blocks.js:5773 -#: js/blocks.js:5794 -#: js/BoxesBlocks.js:772 -msgid "box1" +#: js/toolbar.js:148 +#: js/toolbar.js:151 +#: js/toolbar.js:203 +#: js/toolbar.js:206 +#: js/toolbar.js:259 +#: js/toolbar.js:262 +#: js/turtledefs.js:558 +msgid "Save turtle artwork as PNG" msgstr "" -#: js/blocks.js:3386 -#: js/blocks.js:3826 -#: js/blocks.js:3861 -#: js/blocks.js:3896 -#: js/blocks.js:5775 -#: js/blocks.js:5796 -#: js/BoxesBlocks.js:663 -msgid "box2" +#: js/toolbar.js:150 +#: js/toolbar.js:205 +#: js/toolbar.js:261 +#: js/turtledefs.js:554 +msgid "Save turtle artwork as SVG" msgstr "" -#: js/blocks.js:4058 -#: js/palette.js:639 -#: js/palette.js:644 -#: js/palette.js:1043 -#: js/BoxesBlocks.js:591 -msgid "store in" -msgstr "சேமிப்புக்கலனில்" +#: js/toolbar.js:157 +#: js/toolbar.js:212 +#: js/toolbar.js:268 +msgid "한국인" +msgstr "" -#: js/blocks.js:4058 -#: js/EnsembleBlocks.js:391 -#: js/EnsembleBlocks.js:402 -#: js/MediaBlocks.js:746 -#: js/ProgramBlocks.js:390 -#: js/ProgramBlocks.js:495 -#: js/ProgramBlocks.js:658 -#: js/BoxesBlocks.js:595 -#: js/PitchBlocks.js:656 -#: js/PitchBlocks.js:932 -#: js/PitchBlocks.js:1827 -#: js/ToneBlocks.js:1025 -#: js/DictBlocks.js:215 -#: js/DictBlocks.js:289 -msgid "name" +#: js/toolbar.js:174 +#: js/toolbar.js:230 +msgid "About Turtle Blocks" msgstr "" -#: js/blocks.js:4058 -#: js/RhythmBlocks.js:1130 -#: js/BoxesBlocks.js:75 -#: js/BoxesBlocks.js:595 -#: js/HeapBlocks.js:544 -#: js/DictBlocks.js:289 -#: js/DictBlocks.js:430 -msgid "value" -msgstr "மதிப்பு" +#: js/toolbar.js:446 +#: js/toolbar.js:457 +#: js/toolbar.js:497 +msgid "Turtle Wrap Off" +msgstr "" -#: js/blocks.js:4907 -msgid "There is no block selected." +#: js/toolbar.js:466 +#: js/toolbar.js:506 +msgid "Turtle Wrap On" msgstr "" -#: js/blocks.js:5002 -#: js/MediaBlocks.js:888 -msgid "show" -msgstr "காட்டு" +#: js/turtle-painter.js:1192 +#: js/turtle-painter.js:1193 +#: js/turtles.js:118 +#: js/block-verbose.js:1623 +#: js/block.js:1587 +#: js/lilypond.js:749 +#: js/lilypond.js:913 +#: js/lilypond.js:951 +#: js/logo.js:1184 +#: js/blocks/ActionBlocks.js:1223 +#: js/blocks/ProgramBlocks.js:1267 +msgid "start" +msgstr "ஆரம்பி" -#: js/blocks.js:5005 -#: js/MediaBlocks.js:803 -#.TRANS: Avatar is the image used to determine the appearance of the mouse. -msgid "avatar" +#: js/turtledefs.js:40 +#.TRANS: put the URL to the guide here, e.g., https://github.com/sugarlabs/turtleblocksjs/tree/master/guide/README.md +msgid "guide url" msgstr "" -#: js/blocks.js:5008 -#: js/ToneBlocks.js:1010 -#: js/sampler.js:693 -#.TRANS: The sound sample that the user uploads. -msgid "sample" +#: js/turtledefs.js:85 +#: js/turtledefs.js:437 +msgid "Turtle Blocks is a Logo-inspired turtle that draws colorful pictures with snap-together visual-programming blocks." msgstr "" -#: js/turtles.js:874 -msgid "Grid" +#: js/turtledefs.js:118 +#: js/turtledefs.js:220 +msgid "search" msgstr "" -#: js/turtles.js:891 -#: js/turtledefs.js:626 -msgid "Clean" -msgstr "சுத்தமக்கு" - -#: js/turtles.js:912 -#: js/turtledefs.js:632 -msgid "Collapse" +#: js/turtledefs.js:120 +#: js/turtledefs.js:222 +#: js/blocks/MeterBlocks.js:1343 +#: js/blocks/WidgetBlocks.js:522 +#.TRANS: musical meter (time signature), e.g., 4:4 +msgid "meter" msgstr "" -#: js/turtles.js:940 -msgid "Expand" +#: js/turtledefs.js:122 +#: js/turtledefs.js:224 +msgid "intervals" msgstr "" -#: js/languagebox.js:198 -msgid "Refresh your browser to change your language preference." +#: js/turtledefs.js:124 +#: js/turtledefs.js:226 +msgid "ornament" msgstr "" -#: js/languagebox.js:218 -msgid "Music Blocks is already set to this language." +#: js/turtledefs.js:125 +#: js/turtledefs.js:227 +#: js/blocks/VolumeBlocks.js:362 +#: js/blocks/VolumeBlocks.js:502 +#: js/blocks/VolumeBlocks.js:545 +msgid "volume" msgstr "" -#: js/piemenus.js:200 -#: js/musicutils.js:808 -#: js/musicutils.js:824 -#: js/phrasemaker.js:1672 -#: js/musickeyboard.js:2041 -#: js/sampler.js:544 -#.TRANS: double sharp is a music term related to pitch -msgid "double sharp" +#: js/turtledefs.js:126 +#: js/turtledefs.js:228 +#: js/block-verbose.js:1700 +#: js/block-verbose.js:2626 +#: js/block.js:1664 +#: js/block.js:2554 +#: js/lilypond.js:732 +#: js/lilypond.js:897 +#: js/lilypond.js:941 +#: js/palette.js:577 +#: js/blocks/RhythmBlocks.js:766 +#: js/blocks/DrumBlocks.js:477 +#: js/blocks/VolumeBlocks.js:502 +#: js/widgets/phrasemaker.js:1038 +msgid "drum" msgstr "" -#: js/piemenus.js:201 -#: js/PitchBlocks.js:1510 -#: js/PitchActions.js:580 -#: js/musicutils.js:806 -#: js/musicutils.js:825 -#: js/phrasemaker.js:1673 -#: js/musickeyboard.js:2042 -#: js/sampler.js:545 -#.TRANS: sharp is a half-step up in pitch -#.TRANS: sharp is a music term related to pitch -msgid "sharp" +#: js/turtledefs.js:129 +#: js/turtledefs.js:231 +msgid "boxes" msgstr "" -#: js/piemenus.js:202 -#: js/musicutils.js:804 -#: js/musicutils.js:826 -#: js/phrasemaker.js:1674 -#: js/musickeyboard.js:2043 -#: js/sampler.js:546 -#.TRANS: natural is a music term related to pitch -msgid "natural" +#: js/turtledefs.js:130 +#: js/turtledefs.js:232 +msgid "widgets" msgstr "" -#: js/piemenus.js:203 -#: js/PitchBlocks.js:1469 -#: js/PitchActions.js:583 -#: js/musicutils.js:802 -#: js/musicutils.js:827 -#: js/phrasemaker.js:1675 -#: js/musickeyboard.js:2044 -#: js/sampler.js:547 -#.TRANS: flat is a half-step down in pitch -#.TRANS: flat is a music term related to pitch -msgid "flat" +#: js/turtledefs.js:131 +#: js/turtledefs.js:233 +#: js/widgets/phrasemaker.js:1039 +msgid "graphics" msgstr "" -#: js/piemenus.js:204 -#: js/musicutils.js:800 -#: js/musicutils.js:828 -#: js/phrasemaker.js:1676 -#: js/musickeyboard.js:2045 -#: js/sampler.js:548 -#.TRANS: double flat is a music term related to pitch -msgid "double flat" +#: js/turtledefs.js:134 +#: js/turtledefs.js:236 +msgid "boolean" msgstr "" -#: js/piemenus.js:2861 -#: js/PitchBlocks.js:1357 -#: js/musicutils.js:627 -#.TRANS: unison means the note is the same as the current note -#.TRANS: unison is a music term related to intervals -msgid "unison" +#: js/turtledefs.js:137 +#: js/turtledefs.js:239 +#: js/blocks/HeapBlocks.js:59 +#: js/widgets/status.js:147 +msgid "heap" msgstr "" -#: js/piemenus.js:3015 -#: js/piemenus.js:3088 -#: js/musicutils.js:635 -#: js/musicutils.js:810 -#: js/musicutils.js:912 -#.TRANS: major is a music term related to intervals and mode -msgid "major" +#: js/turtledefs.js:138 +#: js/turtledefs.js:240 +#: js/blocks/DictBlocks.js:142 +#: js/blocks/ProgramBlocks.js:495 +msgid "dictionary" msgstr "" -#: js/piemenus.js:3015 -#: js/piemenus.js:3088 -#: js/musicutils.js:653 -#.TRANS: modal scale for music -msgid "ionian" +#: js/turtledefs.js:139 +#: js/turtledefs.js:241 +msgid "ensemble" msgstr "" -#: js/piemenus.js:3017 -#: js/piemenus.js:3092 -#: js/musicutils.js:633 -#: js/musicutils.js:811 -#: js/musicutils.js:909 -#.TRANS: minor is a music term related to intervals and mode -msgid "minor" +#: js/turtledefs.js:140 +#: js/turtledefs.js:242 +msgid "extras" msgstr "" -#: js/piemenus.js:3017 -#: js/piemenus.js:3092 -#: js/musicutils.js:663 -#.TRANS: modal scale for music -msgid "aeolian" +#: js/turtledefs.js:142 +#: js/turtledefs.js:244 +#.TRANS: program as in computer program +#.TRANS: program as in computer program +msgid "program" msgstr "" -#: js/piemenus.js:3407 -msgid "Duplicate" +#: js/turtledefs.js:143 +#: js/turtledefs.js:245 +msgid "my blocks" msgstr "" -#: js/piemenus.js:3408 -#: js/turtledefs.js:534 -msgid "Extract" +#: js/turtledefs.js:185 +#: js/turtledefs.js:281 +msgid "artwork" msgstr "" -#: js/piemenus.js:3409 -msgid "Move to trash" +#: js/turtledefs.js:185 +#: js/turtledefs.js:281 +msgid "logic" msgstr "" -#: js/piemenus.js:3410 -#: js/timbre.js:968 -#: js/StringHelper.js:69 -msgid "Close" +#: js/turtledefs.js:185 +#: js/turtledefs.js:281 +msgid "music" msgstr "" -#: js/piemenus.js:3416 -msgid "Save stack" +#: js/turtledefs.js:187 +#: js/turtledefs.js:463 +msgid "Music Blocks is a collection of tools for exploring fundamental musical concepts in a fun way." msgstr "" -#: js/piemenus.js:3420 -#: js/toolbar.js:60 -#: js/toolbar.js:120 -#: js/toolbar.js:185 -#: js/toolbar.js:240 -#: js/turtledefs.js:752 -msgid "Help" -msgstr "உதவி" - -#: js/piemenus.js:3762 -msgid "You have chosen key " +#: js/turtledefs.js:436 +msgid "Welcome to Turtle Blocks" msgstr "" -#: js/piemenus.js:3766 -msgid " for your pitch preview." +#: js/turtledefs.js:438 +#: js/turtledefs.js:465 +#: js/turtledefs.js:774 +#: js/turtledefs.js:805 +msgid "The current version is" msgstr "" -#: js/palette.js:571 -msgid "grid" +#: js/turtledefs.js:446 +#: js/turtledefs.js:483 +msgid "Click the run button to run the project in fast mode." msgstr "" -#: js/palette.js:577 -#: js/block.js:1540 -#: js/block.js:2343 -#: js/turtledefs.js:126 -#: js/turtledefs.js:228 -#: js/lilypond.js:740 -#: js/lilypond.js:905 -#: js/lilypond.js:949 -#: js/DrumBlocks.js:486 -#: js/RhythmBlocks.js:766 -#: js/VolumeBlocks.js:502 -#: js/phrasemaker.js:823 -msgid "drum" +#: js/turtledefs.js:452 +msgid "Stop the turtle." msgstr "" -#: js/palette.js:580 -msgid "effect" +#: js/turtledefs.js:454 +#: js/turtledefs.js:491 +msgid "You can also type Alt-S to stop." msgstr "" -#: js/palette.js:586 -msgid "sargam" +#: js/turtledefs.js:462 +#: js/widgets/help.js:333 +msgid "Welcome to Music Blocks" msgstr "" -#: js/palette.js:589 -#: js/activity.js:1833 -#: js/RhythmBlocks.js:923 -#: js/PitchBlocks.js:442 -#: js/PitchBlocks.js:1748 -#.TRANS: a numeric mapping of the notes in an octave based on the musical mode -msgid "scale degree" +#: js/turtledefs.js:472 +#: js/widgets/help.js:334 +msgid "Meet Mr. Mouse!" msgstr "" -#: js/palette.js:592 -#: js/activity.js:1860 -msgid "mode name" +#: js/turtledefs.js:473 +msgid "Mr Mouse is our Music Blocks conductor." msgstr "" -#: js/palette.js:595 -#: js/activity.js:1839 -msgid "invert mode" +#: js/turtledefs.js:475 +msgid "Mr Mouse encourages you to explore Music Blocks." msgstr "" -#: js/palette.js:598 -#: js/activity.js:1836 -msgid "voice name" +#: js/turtledefs.js:477 +msgid "Let us start our tour!" msgstr "" -#: js/palette.js:601 -#: js/PitchBlocks.js:1181 -msgid "custom pitch" +#: js/turtledefs.js:489 +msgid "Stop the music (and the mice)." msgstr "" -#: js/palette.js:605 -#: js/block.js:1456 -#: js/block.js:1575 -#: js/WidgetBlocks.js:218 -#: js/IntervalsBlocks.js:63 -msgid "temperament" +#: js/turtledefs.js:499 +msgid "Record your project as video." msgstr "" -#: js/palette.js:609 -msgid "accidental" +#: js/turtledefs.js:505 +msgid "Toggle Fullscreen mode." msgstr "" -#: js/palette.js:615 -#: js/activity.js:1866 -msgid "interval name" +#: js/turtledefs.js:511 +msgid "Initialize a new project." msgstr "" -#: js/palette.js:633 -#: js/PitchBlocks.js:405 -msgid "pitch converter" +#: js/turtledefs.js:517 +msgid "You can also load projects from the file system." msgstr "" -#: js/rubrics.js:522 -#: js/turtledefs.js:119 -#: js/turtledefs.js:221 -#: js/RhythmBlockPaletteBlocks.js:52 -#: js/RhythmBlockPaletteBlocks.js:233 -#: js/ProgramBlocks.js:745 -#: js/rhythmruler.js:1670 -#: js/rhythmruler.js:1677 -#: js/rhythmruler.js:1745 -#: js/rhythmruler.js:1752 -#: js/rhythmruler.js:1830 -#.TRANS: an arrangement of notes based on duration -msgid "rhythm" +#: js/turtledefs.js:522 +#: planet/js/StringHelper.js:46 +msgid "Delete" msgstr "" -#: js/rubrics.js:523 -#: js/block.js:2339 -#: js/turtledefs.js:121 -#: js/turtledefs.js:223 -#: js/IntervalsBlocks.js:63 -#: js/PitchBlocks.js:1801 -#: js/PitchBlocks.js:1814 -#: js/SensorsBlocks.js:178 -#: js/phrasemaker.js:821 -#: js/musickeyboard.js:1653 -#.TRANS: pitch number -#.TRANS: we specify pitch in terms of a name and an octave. The name can be CDEFGAB or Do Re Mi Fa Sol La Ti. Octave is a number between 1 and 8. -msgid "pitch" +#: js/turtledefs.js:523 +msgid "To delete a block, just right-click on it, then you will be able to see the delete option" msgstr "" -#: js/rubrics.js:524 -#: js/turtledefs.js:123 -#: js/turtledefs.js:225 -msgid "tone" -msgstr "" +#: js/turtledefs.js:528 +#: js/activity.js:2649 +#: planet/js/LocalCard.js:31 +msgid "Copy" +msgstr "பிரதி செய்" -#: js/rubrics.js:525 -#: js/lilypond.js:613 -#: js/lilypond.js:912 -#: js/lilypond.js:918 -#: js/lilypond.js:956 -msgid "mouse" +#: js/turtledefs.js:529 +msgid "To copy a block, just right-click on it, then you will be able to see the copy option" msgstr "" -#: js/rubrics.js:526 -#: js/turtledefs.js:132 -#: js/turtledefs.js:234 -#: js/phrasemaker.js:825 -msgid "pen" +#: js/turtledefs.js:534 +#: js/piemenus.js:3411 +msgid "Extract" msgstr "" -#: js/rubrics.js:527 -#: js/turtledefs.js:133 -#: js/turtledefs.js:235 -#: js/NumberBlocks.js:905 -#: js/PitchBlocks.js:1679 -#: js/PitchBlocks.js:1720 -msgid "number" -msgstr "எண்" - -#: js/rubrics.js:528 -#: js/turtledefs.js:127 -#: js/turtledefs.js:229 -msgid "flow" +#: js/turtledefs.js:535 +msgid "To extract a block, just right-click on it, then you will be able to see the extract option" msgstr "" -#: js/rubrics.js:530 -#: js/turtledefs.js:136 -#: js/turtledefs.js:238 -msgid "sensors" +#: js/turtledefs.js:542 +#: js/turtledefs.js:552 +#: js/turtledefs.js:573 +msgid "Save your project to a file." msgstr "" -#: js/rubrics.js:531 -#: js/turtledefs.js:135 -#: js/turtledefs.js:237 -#: js/MediaBlocks.js:930 -msgid "media" +#: js/turtledefs.js:549 +#: js/turtledefs.js:570 +msgid "save" msgstr "" -#: js/rubrics.js:532 -msgid "mice" +#: js/turtledefs.js:556 +#: js/turtledefs.js:577 +msgid "Save graphics from your project to as SVG." msgstr "" -#: js/macros.js:711 -#: js/musicutils.js:783 -#: js/synthutils.js:181 -#.TRANS: animal sound effect -msgid "duck" +#: js/turtledefs.js:560 +#: js/turtledefs.js:581 +msgid "Save graphics from your project as PNG." msgstr "" -#: js/toolbar.js:46 -#: js/toolbar.js:107 -msgid "About Music Blocks" +#: js/turtledefs.js:564 +#: js/turtledefs.js:597 +msgid "Save block artwork as an SVG file." msgstr "" -#: js/toolbar.js:47 -#: js/toolbar.js:108 -#: js/toolbar.js:172 -#: js/toolbar.js:228 -#: js/turtledefs.js:445 -#: js/turtledefs.js:482 -#: js/activity.js:2281 -#: js/activity.js:2289 -#: js/activity.js:2520 -#: js/modewidget.js:77 -#: js/pitchstaircase.js:121 -#: js/phrasemaker.js:302 -#: js/phrasemaker.js:312 -#: js/phrasemaker.js:314 -#: js/phrasemaker.js:3901 -#: js/phrasemaker.js:4061 -#: js/phrasemaker.js:4066 -#: js/phrasemaker.js:4068 -#: js/phrasemaker.js:4183 -#: js/pitchdrummatrix.js:81 -#: js/pitchdrummatrix.js:574 -#: js/pitchdrummatrix.js:576 -#: js/pitchdrummatrix.js:628 -#: js/pitchdrummatrix.js:630 -#: js/pitchdrummatrix.js:645 -#: js/pitchdrummatrix.js:647 -#: js/pitchdrummatrix.js:674 -#: js/pitchdrummatrix.js:676 -#: js/temperament.js:477 -#: js/temperament.js:480 -#: js/temperament.js:540 -#: js/temperament.js:542 -#: js/temperament.js:1835 -#: js/temperament.js:1837 -#: js/temperament.js:1986 -#: js/temperament.js:1988 -#: js/musickeyboard.js:522 -#: js/musickeyboard.js:682 -#: js/musickeyboard.js:684 -#: js/musickeyboard.js:756 -#: js/musickeyboard.js:758 -#: js/rhythmruler.js:298 -#: js/rhythmruler.js:300 -#: js/rhythmruler.js:314 -#: js/rhythmruler.js:316 -#: js/sampler.js:96 -#: js/sampler.js:98 -#: js/sampler.js:229 -#: js/sampler.js:235 -#: js/sampler.js:237 -#: js/tempo.js:84 -#: js/tempo.js:86 -#: js/timbre.js:432 -#: js/timbre.js:434 -#: js/timbre.js:465 -#: js/timbre.js:467 -#: js/timbre.js:746 -#: js/meterwidget.js:80 -#: js/arpeggio.js:90 -#: js/arpeggio.js:547 -#: js/arpeggio.js:549 -#: js/arpeggio.js:644 -#: js/arpeggio.js:646 -msgid "Play" +#: js/turtledefs.js:585 +msgid "Save audio from your project as WAV." msgstr "" -#: js/toolbar.js:48 -#: js/toolbar.js:109 -#: js/toolbar.js:173 -#: js/toolbar.js:229 -#: js/turtledefs.js:451 -#: js/turtledefs.js:488 -#: js/activity.js:2297 -#: js/modewidget.js:99 -#: js/modewidget.js:101 -#: js/phrasemaker.js:323 -#: js/phrasemaker.js:325 -#: js/pitchdrummatrix.js:561 -#: js/pitchdrummatrix.js:563 -#: js/temperament.js:1820 -#: js/temperament.js:1822 -#: js/meterwidget.js:101 -#: js/meterwidget.js:103 -#: js/arpeggio.js:534 -#: js/arpeggio.js:536 -msgid "Stop" -msgstr "நிறுத்து" +#: js/turtledefs.js:589 +msgid "Save your project to as an ABC file." +msgstr "" -#: js/toolbar.js:49 -#: js/toolbar.js:110 -#: js/toolbar.js:174 -#: js/toolbar.js:230 -#: js/turtledefs.js:498 -msgid "Record" +#: js/turtledefs.js:593 +msgid "Save your project to as a Lilypond file." msgstr "" -#: js/toolbar.js:50 -#: js/toolbar.js:51 -msgid "Full screen" +#: js/turtledefs.js:604 +msgid "Load samples from server" msgstr "" -#: js/toolbar.js:52 -#: js/toolbar.js:112 -#: js/toolbar.js:177 -#: js/toolbar.js:232 -#: js/turtledefs.js:504 -msgid "Toggle Fullscreen" +#: js/turtledefs.js:605 +msgid "This button opens a viewer for loading example projects." msgstr "" -#: js/toolbar.js:53 -#: js/toolbar.js:113 -#: js/toolbar.js:178 -#: js/toolbar.js:233 -#: js/turtledefs.js:510 -#: js/StringHelper.js:33 -msgid "New project" +#: js/turtledefs.js:611 +msgid "Palette buttons" msgstr "" -#: js/toolbar.js:54 -#: js/toolbar.js:114 -#: js/toolbar.js:179 -#: js/toolbar.js:234 -#: js/turtledefs.js:516 -msgid "Load project from file" +#: js/turtledefs.js:612 +msgid "This toolbar contains the palette buttons including Rhythm Pitch Tone Action and more." msgstr "" -#: js/toolbar.js:55 -#: js/toolbar.js:115 -#: js/toolbar.js:116 -#: js/toolbar.js:180 -#: js/toolbar.js:235 -#: js/turtledefs.js:541 -#: js/turtledefs.js:550 -#: js/turtledefs.js:571 -msgid "Save project" +#: js/turtledefs.js:614 +msgid "Click to show the palettes of blocks and drag blocks from the palettes onto the canvas to use them." msgstr "" -#: js/toolbar.js:56 -#: js/toolbar.js:75 -#: js/toolbar.js:77 -#: js/toolbar.js:135 -#: js/toolbar.js:144 -#: js/toolbar.js:146 -#: js/toolbar.js:181 -#: js/toolbar.js:199 -#: js/toolbar.js:201 -#: js/toolbar.js:236 -#: js/toolbar.js:254 -#: js/toolbar.js:256 -msgid "Save project as HTML" +#: js/turtledefs.js:620 +msgid "Cartesian/Polar" msgstr "" -#: js/toolbar.js:57 -#: js/toolbar.js:117 -#: js/toolbar.js:182 -#: js/toolbar.js:237 -msgid "Find and share projects" +#: js/turtledefs.js:621 +msgid "Show or hide a coordinate grid." msgstr "" -#: js/toolbar.js:58 -#: js/toolbar.js:118 -#: js/toolbar.js:183 -#: js/toolbar.js:238 -msgid "Offline. Sharing is unavailable" +#: js/turtledefs.js:626 +#: js/turtles.js:902 +msgid "Clean" +msgstr "சுத்தமக்கு" + +#: js/turtledefs.js:627 +msgid "Clear the screen and return the mice to their initial positions." msgstr "" -#: js/toolbar.js:59 -#: js/toolbar.js:119 -#: js/toolbar.js:184 -#: js/toolbar.js:239 -msgid "Auxiliary menu" +#: js/turtledefs.js:632 +#: js/turtles.js:955 +msgid "Collapse" msgstr "" -#: js/toolbar.js:61 -#: js/toolbar.js:121 -#: js/toolbar.js:186 -#: js/toolbar.js:241 -msgid "Run slowly" +#: js/turtledefs.js:633 +msgid "Collapse the graphics window." msgstr "" -#: js/toolbar.js:62 -#: js/toolbar.js:122 -#: js/toolbar.js:187 -#: js/toolbar.js:242 -#: js/turtledefs.js:682 -msgid "Run step by step" +#: js/turtledefs.js:638 +#: js/activity.js:5684 +msgid "Home" msgstr "" -#: js/toolbar.js:63 -#: js/toolbar.js:123 -#: js/toolbar.js:188 -#: js/toolbar.js:243 -#: js/turtledefs.js:689 -msgid "Display statistics" +#: js/turtledefs.js:639 +msgid "Return all blocks to the center of the screen." msgstr "" -#: js/toolbar.js:64 -#: js/toolbar.js:124 -#: js/toolbar.js:189 -#: js/toolbar.js:244 -msgid "Load plugin" +#: js/turtledefs.js:644 +msgid "Show/hide blocks" +msgstr "பிரிவுகளை காட்டு/மறை" + +#: js/turtledefs.js:645 +msgid "Hide or show the blocks and the palettes." msgstr "" -#: js/toolbar.js:65 -#: js/toolbar.js:125 -#: js/toolbar.js:190 -#: js/toolbar.js:245 -#: js/turtledefs.js:696 -msgid "Delete plugin" +#: js/turtledefs.js:650 +msgid "Expand/collapse collapsable blocks" msgstr "" -#: js/toolbar.js:66 -#: js/toolbar.js:126 -#: js/toolbar.js:191 -#: js/toolbar.js:246 -msgid "Enable horizontal scrolling" +#: js/turtledefs.js:651 +msgid "Expand or collapse start and action stacks." msgstr "" -#: js/toolbar.js:67 -#: js/toolbar.js:127 -#: js/toolbar.js:192 -#: js/toolbar.js:247 -msgid "Disable horizontal scrolling" +#: js/turtledefs.js:658 +#: js/activity.js:5704 +msgid "Decrease block size" msgstr "" -#: js/toolbar.js:68 -#: js/toolbar.js:128 -#: js/toolbar.js:193 -#: js/toolbar.js:248 -#: js/LocalCard.js:54 -#: js/StringHelper.js:71 -msgid "Merge with current project" +#: js/turtledefs.js:659 +msgid "Decrease the size of the blocks." msgstr "" -#: js/toolbar.js:69 -#: js/toolbar.js:129 -msgid "Set Pitch Preview" +#: js/turtledefs.js:664 +#: js/activity.js:5710 +msgid "Increase block size" msgstr "" -#: js/toolbar.js:70 -#: js/toolbar.js:130 -#: js/toolbar.js:194 -#: js/toolbar.js:249 -msgid "Toggle JavaScript Editor" +#: js/turtledefs.js:665 +msgid "Increase the size of the blocks." msgstr "" -#: js/toolbar.js:71 -#: js/toolbar.js:131 -#: js/toolbar.js:195 -#: js/toolbar.js:250 -#: js/turtledefs.js:724 -msgid "Restore" +#: js/turtledefs.js:670 +msgid "Expand/collapse option toolbar" msgstr "" -#: js/toolbar.js:72 -#: js/toolbar.js:132 -#: js/toolbar.js:196 -#: js/toolbar.js:251 -msgid "Switch to beginner mode" +#: js/turtledefs.js:671 +msgid "Click this button to expand or collapse the auxillary toolbar." msgstr "" -#: js/toolbar.js:73 -#: js/toolbar.js:133 -#: js/toolbar.js:197 -#: js/toolbar.js:252 -msgid "Switch to advanced mode" +#: js/turtledefs.js:676 +msgid "Run slow" msgstr "" -#: js/toolbar.js:74 -#: js/toolbar.js:134 -#: js/toolbar.js:143 -#: js/toolbar.js:198 -#: js/toolbar.js:253 -#: js/turtledefs.js:738 -msgid "Select language" +#: js/turtledefs.js:677 +msgid "Click to run the project in slow mode." msgstr "" -#: js/toolbar.js:76 -#: js/toolbar.js:79 -#: js/toolbar.js:137 -#: js/turtledefs.js:579 -msgid "Save mouse artwork as PNG" +#: js/turtledefs.js:683 +msgid "Click to run the project step by step." msgstr "" -#: js/toolbar.js:78 -#: js/toolbar.js:136 -#: js/turtledefs.js:575 -msgid "Save mouse artwork as SVG" +#: js/turtledefs.js:690 +msgid "Display statistics about your Music project." msgstr "" -#: js/toolbar.js:80 -#: js/toolbar.js:138 -#: js/turtledefs.js:583 -msgid "Save music as WAV" +#: js/turtledefs.js:697 +msgid "Delete a selected plugin." msgstr "" -#: js/toolbar.js:81 -#: js/toolbar.js:139 -#: js/turtledefs.js:587 -msgid "Save sheet music as ABC" +#: js/turtledefs.js:704 +msgid "Enable scrolling" msgstr "" -#: js/toolbar.js:82 -#: js/toolbar.js:140 -#: js/turtledefs.js:591 -msgid "Save sheet music as Lilypond" +#: js/turtledefs.js:705 +msgid "You can scroll the blocks on the canvas." msgstr "" -#: js/toolbar.js:83 -msgid "Save sheet music as MusicXML" +#: js/turtledefs.js:714 +msgid "Wrap Turtle" msgstr "" -#: js/toolbar.js:84 -#: js/toolbar.js:141 -#: js/toolbar.js:149 -#: js/toolbar.js:204 -#: js/toolbar.js:259 -#: js/turtledefs.js:562 -#: js/turtledefs.js:595 -msgid "Save block artwork as SVG" +#: js/turtledefs.js:715 +msgid "Turn Turtle wrapping On or Off." msgstr "" -#: js/toolbar.js:85 -#: js/toolbar.js:142 -#: js/toolbar.js:150 -#: js/toolbar.js:205 -#: js/toolbar.js:260 -msgid "Confirm" +#: js/turtledefs.js:725 +msgid "Restore blocks from the trash." msgstr "" -#: js/toolbar.js:86 -#: js/toolbar.js:151 -#: js/toolbar.js:206 -#: js/toolbar.js:261 -msgid "English (United States)" +#: js/turtledefs.js:732 +msgid "Switch mode" msgstr "" -#: js/toolbar.js:87 -#: js/toolbar.js:152 -#: js/toolbar.js:207 -#: js/toolbar.js:262 -msgid "English (United Kingdom)" +#: js/turtledefs.js:733 +msgid "Switch between beginner and advance modes." msgstr "" -#: js/toolbar.js:88 -#: js/toolbar.js:153 -#: js/toolbar.js:208 -#: js/toolbar.js:263 -msgid "日本語" +#: js/turtledefs.js:739 +msgid "Select your language preference." msgstr "" -#: js/toolbar.js:89 -msgid "한국어" +#: js/turtledefs.js:745 +msgid "Keyboard shortcuts" msgstr "" -#: js/toolbar.js:90 -#: js/toolbar.js:155 -#: js/toolbar.js:210 -#: js/toolbar.js:265 -msgid "español" +#: js/turtledefs.js:746 +msgid "You can type d to create a do block and r to create a re block etc." msgstr "" -#: js/toolbar.js:91 -#: js/toolbar.js:156 -#: js/toolbar.js:211 -#: js/toolbar.js:266 -msgid "português" +#: js/turtledefs.js:753 +msgid "Show these messages." msgstr "" -#: js/toolbar.js:92 -#: js/toolbar.js:157 -#: js/toolbar.js:212 -#: js/toolbar.js:267 -msgid "にほんご" +#: js/turtledefs.js:759 +#: js/turtledefs.js:790 +#: js/widgets/help.js:335 +msgid "Guide" msgstr "" -#: js/toolbar.js:93 -#: js/toolbar.js:158 -#: js/toolbar.js:213 -#: js/toolbar.js:268 -msgid "中文" +#: js/turtledefs.js:760 +msgid "A detailed guide to Turtle Blocks is available." msgstr "" -#: js/toolbar.js:94 -#: js/toolbar.js:159 -#: js/toolbar.js:214 -#: js/toolbar.js:269 -msgid "ภาษาไทย" +#: js/turtledefs.js:764 +msgid "Turtle Blocks Guide" msgstr "" -#: js/toolbar.js:95 -#: js/toolbar.js:160 -#: js/toolbar.js:215 -#: js/toolbar.js:270 -msgid "aymara" +#: js/turtledefs.js:767 +#: js/turtledefs.js:798 +#: js/widgets/help.js:336 +msgid "About" msgstr "" -#: js/toolbar.js:96 -#: js/toolbar.js:161 -#: js/toolbar.js:216 -#: js/toolbar.js:271 -msgid "quechua" +#: js/turtledefs.js:768 +msgid "Turtle Blocks is an open source collection of tools for exploring musical concepts." msgstr "" -#: js/toolbar.js:97 -#: js/toolbar.js:162 -#: js/toolbar.js:217 -#: js/toolbar.js:272 -msgid "guarani" +#: js/turtledefs.js:770 +msgid "A full list of contributors can be found in the Turtle Blocks GitHub repository." msgstr "" -#: js/toolbar.js:98 -#: js/toolbar.js:163 -#: js/toolbar.js:218 -#: js/toolbar.js:273 -msgid "हिंदी" +#: js/turtledefs.js:772 +msgid "Turtle Blocks is licensed under the AGPL." msgstr "" -#: js/toolbar.js:99 -#: js/toolbar.js:165 -#: js/toolbar.js:219 -#: js/toolbar.js:275 -msgid "igbo" +#: js/turtledefs.js:780 +msgid "Turtle Blocks GitHub repository" +msgstr "" + +#: js/turtledefs.js:783 +#: js/turtledefs.js:814 +#: js/widgets/help.js:337 +#: js/widgets/help.js:359 +msgid "Congratulations." msgstr "" -#: js/toolbar.js:100 -#: js/toolbar.js:166 -#: js/toolbar.js:220 -#: js/toolbar.js:276 -msgid "عربى" +#: js/turtledefs.js:784 +msgid "You have finished the tour. Please enjoy Turtle Blocks!" msgstr "" -#: js/toolbar.js:101 -#: js/toolbar.js:164 -#: js/toolbar.js:221 -#: js/toolbar.js:274 -msgid "తెలుగు" +#: js/turtledefs.js:791 +msgid "A detailed guide to Music Blocks is available." msgstr "" -#: js/toolbar.js:102 -#: js/toolbar.js:167 -#: js/toolbar.js:222 -#: js/toolbar.js:277 -msgid "עִברִית" +#: js/turtledefs.js:799 +msgid "Music Blocks is an open source collection of tools for exploring musical concepts." msgstr "" -#: js/toolbar.js:111 -#: js/toolbar.js:175 -#: js/toolbar.js:176 -#: js/toolbar.js:231 -msgid "Full Screen" +#: js/turtledefs.js:801 +msgid "A full list of contributors can be found in the Music Blocks GitHub repository." msgstr "" -#: js/toolbar.js:145 -#: js/toolbar.js:148 -#: js/toolbar.js:200 -#: js/toolbar.js:203 -#: js/toolbar.js:255 -#: js/toolbar.js:258 -#: js/turtledefs.js:558 -msgid "Save turtle artwork as PNG" +#: js/turtledefs.js:803 +msgid "Music Blocks is licensed under the AGPL." msgstr "" -#: js/toolbar.js:147 -#: js/toolbar.js:202 -#: js/toolbar.js:257 -#: js/turtledefs.js:554 -msgid "Save turtle artwork as SVG" +#: js/turtledefs.js:811 +msgid "Music Blocks GitHub repository" msgstr "" -#: js/toolbar.js:154 -#: js/toolbar.js:209 -#: js/toolbar.js:264 -msgid "한국인" +#: js/turtledefs.js:815 +msgid "You have finished the tour. Please enjoy Music Blocks!" msgstr "" -#: js/toolbar.js:171 -#: js/toolbar.js:227 -msgid "About Turtle Blocks" +#: js/turtles.js:882 +msgid "Grid" msgstr "" -#: js/toolbar.js:429 -#: js/toolbar.js:440 -msgid "Turtle Wrap Off" +#: js/turtles.js:1024 +msgid "Expand" msgstr "" -#: js/toolbar.js:442 -msgid "Turtle Wrap On" +#: js/block-verbose.js:1616 +#: js/block-verbose.js:1735 +#: js/block.js:1580 +#: js/block.js:1699 +#: js/palette.js:605 +#: js/blocks/IntervalsBlocks.js:63 +#: js/blocks/WidgetBlocks.js:259 +msgid "temperament" msgstr "" -#: js/block.js:1470 +#: js/block-verbose.js:1630 +#: js/block.js:1594 msgid "matrix" msgstr "" -#: js/block.js:1477 -#: js/WidgetBlocks.js:1226 +#: js/block-verbose.js:1637 +#: js/block.js:1601 +#: js/blocks/WidgetBlocks.js:1509 #: plugins/rodi.rtp:324 msgid "status" msgstr "" -#: js/block.js:1484 +#: js/block-verbose.js:1644 +#: js/block.js:1608 msgid "drum mapper" msgstr "" -#: js/block.js:1491 +#: js/block-verbose.js:1651 +#: js/block.js:1615 msgid "ruler" msgstr "" -#: js/block.js:1498 -#: js/WidgetBlocks.js:327 +#: js/block-verbose.js:1658 +#: js/block.js:1622 +#: js/blocks/WidgetBlocks.js:397 #.TRANS: timbre is the character or quality of a musical sound msgid "timbre" msgstr "" -#: js/block.js:1505 +#: js/block-verbose.js:1665 +#: js/block.js:1629 msgid "stair" msgstr "" -#: js/block.js:1512 -#: js/WidgetBlocks.js:577 +#: js/block-verbose.js:1672 +#: js/block.js:1636 +#: js/blocks/WidgetBlocks.js:707 #.TRANS: the speed at music is should be played. msgid "tempo" msgstr "" -#: js/block.js:1519 -#: js/block.js:1582 -#: js/IntervalsBlocks.js:1268 +#: js/block-verbose.js:1679 +#: js/block-verbose.js:1742 +#: js/block.js:1643 +#: js/block.js:1706 +#: js/blocks/IntervalsBlocks.js:1464 #.TRANS: mode, e.g., Major in C Major msgid "mode" msgstr "" -#: js/block.js:1526 +#: js/block-verbose.js:1686 +#: js/block.js:1650 msgid "slider" msgstr "" -#: js/block.js:1533 -#: js/SensorsBlocks.js:1001 +#: js/block-verbose.js:1693 +#: js/block.js:1657 +#: js/blocks/SensorsBlocks.js:1001 msgid "keyboard" msgstr "விசைப்பலகை" -#: js/block.js:1547 -#: js/WidgetBlocks.js:957 -#: js/WidgetBlocks.js:988 +#: js/block-verbose.js:1707 +#: js/block.js:1671 +#: js/blocks/WidgetBlocks.js:1190 +#: js/blocks/WidgetBlocks.js:1228 #.TRANS: widget for subdividing a measure into distinct rhythmic elements msgid "rhythm maker" msgstr "" -#: js/block.js:1554 -#: js/block.js:2182 -#: js/block.js:2236 -#: js/RhythmBlockPaletteBlocks.js:70 -#: js/RhythmBlockPaletteBlocks.js:251 -#: js/RhythmBlockPaletteBlocks.js:484 -#: js/RhythmBlockPaletteBlocks.js:553 -#: js/RhythmBlockPaletteBlocks.js:604 -#: js/RhythmBlockPaletteBlocks.js:874 -#: js/RhythmBlocks.js:33 -#: js/RhythmBlocks.js:356 -#: js/RhythmBlocks.js:766 -#: js/RhythmBlocks.js:806 -#: js/OrnamentBlocks.js:220 -#: js/OrnamentBlocks.js:312 -#: js/MeterBlocks.js:1367 -#: js/DictActions.js:85 -#: js/phrasemaker.js:731 -#: js/phrasemaker.js:2393 -#: js/phrasemaker.js:2436 -#: js/phrasemaker.js:2534 +#: js/block-verbose.js:1714 +#: js/block-verbose.js:2457 +#: js/block-verbose.js:2514 +#: js/block.js:1678 +#: js/block.js:2385 +#: js/block.js:2442 +#: js/blocks/MeterBlocks.js:1367 +#: js/blocks/OrnamentBlocks.js:220 +#: js/blocks/OrnamentBlocks.js:312 +#: js/blocks/RhythmBlocks.js:33 +#: js/blocks/RhythmBlocks.js:356 +#: js/blocks/RhythmBlocks.js:766 +#: js/blocks/RhythmBlocks.js:806 +#: js/blocks/RhythmBlockPaletteBlocks.js:70 +#: js/blocks/RhythmBlockPaletteBlocks.js:252 +#: js/blocks/RhythmBlockPaletteBlocks.js:485 +#: js/blocks/RhythmBlockPaletteBlocks.js:554 +#: js/blocks/RhythmBlockPaletteBlocks.js:605 +#: js/blocks/RhythmBlockPaletteBlocks.js:875 +#: js/turtleactions/DictActions.js:85 +#: js/widgets/phrasemaker.js:942 +#: js/widgets/phrasemaker.js:2656 +#: js/widgets/phrasemaker.js:2699 +#: js/widgets/phrasemaker.js:2810 #.TRANS: the value (e.g., 1/4 note) of the note being played. msgid "note value" msgstr "" -#: js/block.js:1561 -#: js/block.js:2110 -#: js/block.js:2133 -#: js/IntervalsBlocks.js:875 -#: js/OrnamentBlocks.js:312 +#: js/block-verbose.js:1721 +#: js/block-verbose.js:2382 +#: js/block-verbose.js:2405 +#: js/block.js:1685 +#: js/block.js:2310 +#: js/block.js:2333 +#: js/blocks/IntervalsBlocks.js:1071 +#: js/blocks/OrnamentBlocks.js:312 #.TRANS: calculate a relative step between notes based on semi-tones msgid "scalar interval" msgstr "" -#: js/block.js:1568 -#: js/RhythmBlocks.js:148 +#: js/block-verbose.js:1728 +#: js/block.js:1692 +#: js/blocks/RhythmBlocks.js:148 msgid "milliseconds" msgstr "" -#: js/block.js:2180 -#: js/block.js:2184 -#: js/block.js:2234 -#: js/block.js:2345 -#: js/ProgramBlocks.js:1273 -#: js/RhythmBlocks.js:712 -#: js/rhythmruler.js:834 -#: js/rhythmruler.js:961 +#: js/block-verbose.js:2455 +#: js/block-verbose.js:2459 +#: js/block-verbose.js:2512 +#: js/block-verbose.js:2628 +#: js/block.js:2383 +#: js/block.js:2387 +#: js/block.js:2440 +#: js/block.js:2556 +#: js/blocks/RhythmBlocks.js:712 +#: js/blocks/ProgramBlocks.js:1273 +#: js/widgets/rhythmruler.js:1183 +#: js/widgets/rhythmruler.js:1329 msgid "silence" msgstr "" -#: js/block.js:2265 -#: js/block.js:3134 -#: js/block.js:3151 -#: js/activity.js:2336 -#: js/activity.js:2387 -#: js/musicutils.js:2932 -#: js/musicutils.js:4287 +#: js/block-verbose.js:2548 +#: js/block-verbose.js:3492 +#: js/block-verbose.js:3509 +#: js/activity.js:2718 +#: js/activity.js:2769 +#: js/block.js:2476 +#: js/block.js:3416 +#: js/block.js:3433 +#: js/utils/musicutils.js:3780 +#: js/utils/musicutils.js:5273 +#.TRANS: the note names must be separated by single spaces #.TRANS: the note names must be separated by single spaces #.TRANS: the note names must be separated by single spaces msgid "ti la sol fa mi re do" msgstr "" -#: js/block.js:2333 +#: js/block-verbose.js:2616 +#: js/block.js:2544 +#.TRANS: scalar step #.TRANS: scalar step msgid "down" msgstr "" -#: js/block.js:2334 +#: js/block-verbose.js:2617 +#: js/block.js:2545 msgid "up" msgstr "" -#: js/block.js:3477 -#: js/block.js:3490 -#: js/ExtrasBlocks.js:612 +#: js/block-verbose.js:3026 +#: js/block.js:2950 +msgid "Silence block cannot be removed." +msgstr "" + +#: js/block-verbose.js:3824 +#: js/block.js:3748 +#: js/blocks.js:2607 +#: js/blocks.js:3218 +#: js/palette.js:618 +#: js/blocks/BooleanBlocks.js:77 +#: js/blocks/BooleanBlocks.js:167 +#: js/blocks/BooleanBlocks.js:251 +#: js/blocks/BooleanBlocks.js:335 +#: js/blocks/BooleanBlocks.js:433 +#: js/blocks/BooleanBlocks.js:539 +#: js/blocks/BooleanBlocks.js:640 +#: js/blocks/BooleanBlocks.js:741 +#: js/blocks/BooleanBlocks.js:847 +#: js/blocks/BooleanBlocks.js:948 +#: js/blocks/BooleanBlocks.js:1033 +#: js/blocks/SensorsBlocks.js:910 +msgid "true" +msgstr "" + +#: js/block-verbose.js:3824 +#: js/block.js:3748 +#: js/blocks.js:2609 +#: js/blocks.js:3220 +#: js/blocks/BooleanBlocks.js:79 +#: js/blocks/BooleanBlocks.js:169 +#: js/blocks/BooleanBlocks.js:253 +#: js/blocks/BooleanBlocks.js:337 +#: js/blocks/BooleanBlocks.js:435 +#: js/blocks/BooleanBlocks.js:541 +#: js/blocks/BooleanBlocks.js:642 +#: js/blocks/BooleanBlocks.js:743 +#: js/blocks/BooleanBlocks.js:849 +#: js/blocks/BooleanBlocks.js:950 +#: js/blocks/SensorsBlocks.js:912 +msgid "false" +msgstr "" + +#: js/block-verbose.js:3835 +#: js/block-verbose.js:3848 +#: js/block.js:3759 +#: js/block.js:3772 +#: js/blocks/ExtrasBlocks.js:615 msgid "Cartesian" msgstr "கார்டீஷியன்" -#: js/block.js:3478 -#: js/block.js:3491 -#: js/ExtrasBlocks.js:616 +#: js/block-verbose.js:3836 +#: js/block-verbose.js:3849 +#: js/block.js:3760 +#: js/block.js:3773 +#: js/blocks/ExtrasBlocks.js:619 msgid "polar" msgstr "" -#: js/block.js:3479 -#: js/block.js:3492 -#: js/ExtrasBlocks.js:620 +#: js/block-verbose.js:3837 +#: js/block-verbose.js:3850 +#: js/block.js:3761 +#: js/block.js:3774 +#: js/blocks/ExtrasBlocks.js:623 msgid "Cartesian+polar" msgstr "" -#: js/block.js:3480 -#: js/block.js:3499 -#: js/ExtrasBlocks.js:649 +#: js/block-verbose.js:3838 +#: js/block-verbose.js:3857 +#: js/block.js:3762 +#: js/block.js:3781 +#: js/blocks/ExtrasBlocks.js:652 msgid "none" msgstr "" -#: js/block.js:3493 -#: js/ExtrasBlocks.js:625 +#: js/block-verbose.js:3851 +#: js/block.js:3775 +#: js/blocks/ExtrasBlocks.js:628 msgid "treble" msgstr "" -#: js/block.js:3494 -#: js/ExtrasBlocks.js:629 +#: js/block-verbose.js:3852 +#: js/block.js:3776 +#: js/blocks/ExtrasBlocks.js:632 msgid "grand staff" msgstr "" -#: js/block.js:3495 -#: js/ExtrasBlocks.js:633 +#: js/block-verbose.js:3853 +#: js/block.js:3777 +#: js/blocks/ExtrasBlocks.js:636 msgid "mezzo-soprano" msgstr "" -#: js/block.js:3496 -#: js/ExtrasBlocks.js:637 +#: js/block-verbose.js:3854 +#: js/block.js:3778 +#: js/blocks/ExtrasBlocks.js:640 msgid "alto" msgstr "" -#: js/block.js:3497 -#: js/ExtrasBlocks.js:641 +#: js/block-verbose.js:3855 +#: js/block.js:3779 +#: js/blocks/ExtrasBlocks.js:644 msgid "tenor" msgstr "" -#: js/block.js:3498 -#: js/ExtrasBlocks.js:645 -#: js/musicutils.js:736 -#: js/synthutils.js:64 +#: js/block-verbose.js:3856 +#: js/block.js:3780 +#: js/utils/musicutils.js:1115 +#: js/utils/synthutils.js:80 +#: js/blocks/ExtrasBlocks.js:648 #.TRANS: musical instrument msgid "bass" msgstr "" -#: js/block.js:4075 +#: js/block-verbose.js:3901 +#: js/block.js:3825 +#: js/blocks.js:2600 +#: js/blocks.js:3211 +msgid "on2" +msgstr "" + +#: js/block-verbose.js:3903 +#: js/block.js:3827 +#: js/blocks.js:2602 +#: js/blocks.js:3213 +msgid "off" +msgstr "" + +#: js/block-verbose.js:4470 +#: js/block.js:4394 msgid "Not a number" msgstr "" -#: js/block.js:4082 +#: js/block-verbose.js:4477 +#: js/block.js:4401 msgid "Octave value must be between 1 and 10." msgstr "" -#: js/block.js:4090 +#: js/block-verbose.js:4485 +#: js/block.js:4409 msgid "Numbers can have at most 10 digits." msgstr "" -#: js/notation.js:353 -msgid "Lilypond cannot process pickup of " +#: js/activity.js:390 +#: js/activity.js:395 +msgid "Search for blocks" msgstr "" -#: js/turtledefs.js:40 -#.TRANS: put the URL to the guide here, e.g., https://github.com/sugarlabs/turtleblocksjs/tree/master/guide/README.md -msgid "guide url" +#: js/activity.js:1413 +msgid "Refresh your browser to change to advanced mode." msgstr "" -#: js/turtledefs.js:85 -#: js/turtledefs.js:437 -msgid "Turtle Blocks is a Logo-inspired turtle that draws colorful pictures with snap-together visual-programming blocks." +#: js/activity.js:1418 +msgid "Refresh your browser to change to beginner mode." msgstr "" -#: js/turtledefs.js:118 -#: js/turtledefs.js:220 -msgid "search" +#: js/activity.js:1477 +msgid "Catching mice" msgstr "" -#: js/turtledefs.js:120 -#: js/turtledefs.js:222 -#: js/WidgetBlocks.js:437 -#: js/MeterBlocks.js:1343 -#.TRANS: musical meter (time signature), e.g., 4:4 -msgid "meter" +#: js/activity.js:1478 +msgid "Cleaning the instruments" msgstr "" -#: js/turtledefs.js:122 -#: js/turtledefs.js:224 -msgid "intervals" +#: js/activity.js:1479 +msgid "Testing key pieces" msgstr "" -#: js/turtledefs.js:124 -#: js/turtledefs.js:226 -msgid "ornament" +#: js/activity.js:1480 +msgid "Sight-reading" msgstr "" -#: js/turtledefs.js:125 -#: js/turtledefs.js:227 -#: js/VolumeBlocks.js:362 -#: js/VolumeBlocks.js:502 -#: js/VolumeBlocks.js:545 -msgid "volume" +#: js/activity.js:1481 +msgid "Combining math and music" msgstr "" -#: js/turtledefs.js:129 -#: js/turtledefs.js:231 -msgid "boxes" +#: js/activity.js:1482 +msgid "Generating more blocks" +msgstr "" + +#: js/activity.js:1483 +msgid "Do Re Mi Fa Sol La Ti Do" +msgstr "" + +#: js/activity.js:1484 +msgid "Tuning string instruments" +msgstr "" + +#: js/activity.js:1485 +msgid "Pressing random keys" +msgstr "" + +#: js/activity.js:1663 +msgid "plugins will be removed upon restart." +msgstr "" + +#: js/activity.js:1672 +msgid "show Cartesian" +msgstr "" + +#: js/activity.js:2211 +#: js/palette.js:589 +#: js/blocks/RhythmBlocks.js:923 +#: js/blocks/PitchBlocks.js:442 +#: js/blocks/PitchBlocks.js:1786 +#.TRANS: a numeric mapping of the notes in an octave based on the musical mode +msgid "scale degree" +msgstr "" + +#: js/activity.js:2214 +#: js/palette.js:598 +msgid "voice name" +msgstr "" + +#: js/activity.js:2217 +#: js/palette.js:595 +msgid "invert mode" +msgstr "" + +#: js/activity.js:2220 +msgid "output tools" +msgstr "" + +#: js/activity.js:2223 +msgid "custom note" +msgstr "" + +#: js/activity.js:2226 +msgid "accidental name" +msgstr "" + +#: js/activity.js:2229 +#: js/blocks/PitchBlocks.js:855 +msgid "east indian solfege" +msgstr "" + +#: js/activity.js:2232 +#: js/blocks/PitchBlocks.js:869 +msgid "note name" +msgstr "" + +#: js/activity.js:2235 +#: js/blocks/IntervalsBlocks.js:94 +msgid "temperament name" +msgstr "" + +#: js/activity.js:2238 +#: js/palette.js:592 +msgid "mode name" +msgstr "" + +#: js/activity.js:2241 +msgid "chord name" +msgstr "" + +#: js/activity.js:2244 +#: js/palette.js:615 +msgid "interval name" +msgstr "" + +#: js/activity.js:2247 +msgid "filter type" +msgstr "" + +#: js/activity.js:2250 +msgid "oscillator type" +msgstr "" + +#: js/activity.js:2253 +#: js/blocks.js:2479 +#: js/blocks.js:2487 +msgid "audio file" +msgstr "" + +#: js/activity.js:2256 +#: js/blocks/DrumBlocks.js:32 +msgid "noise name" +msgstr "" + +#: js/activity.js:2259 +#: js/blocks/DrumBlocks.js:75 +msgid "drum name" +msgstr "" + +#: js/activity.js:2262 +#: js/blocks/DrumBlocks.js:119 +msgid "effects name" +msgstr "" + +#: js/activity.js:2265 +msgid "wrap mode" +msgstr "" + +#: js/activity.js:2268 +msgid "load file" +msgstr "" + +#: js/activity.js:2435 +#: js/activity.js:5851 +msgid "This block is deprecated." +msgstr "" + +#: js/activity.js:2437 +#: js/activity.js:5853 +msgid "Block cannot be found." +msgstr "" + +#: js/activity.js:2645 +msgid "Saving block artwork" +msgstr "" + +#: js/activity.js:2656 +msgid "Erase" +msgstr "" + +#: js/activity.js:2683 +#: js/activity.js:2705 +msgid "Paste" +msgstr "ஒட்டு" + +#: js/activity.js:2687 +msgid "Save block help" +msgstr "" + +#: js/activity.js:2772 +msgid "Jumping to the bottom of the page." +msgstr "" + +#: js/activity.js:2778 +msgid "Scrolling up." +msgstr "" + +#: js/activity.js:2783 +msgid "Scrolling down." +msgstr "" + +#: js/activity.js:2788 +msgid "Extracting block" +msgstr "" + +#: js/activity.js:2796 +msgid "Moving block up." +msgstr "" + +#: js/activity.js:2817 +msgid "Moving block down." +msgstr "" + +#: js/activity.js:2838 +msgid "Moving block left." +msgstr "" + +#: js/activity.js:2855 +msgid "Moving block right." +msgstr "" + +#: js/activity.js:2870 +msgid "Jump to home position." +msgstr "" + +#: js/activity.js:2897 +msgid "Hide blocks" +msgstr "" + +#: js/activity.js:4500 +msgid "Click the run button to run the project." +msgstr "" + +#: js/activity.js:5692 +msgid "Show/hide block" +msgstr "" + +#: js/activity.js:5698 +msgid "Expand/collapse blocks" msgstr "" -#: js/turtledefs.js:130 -#: js/turtledefs.js:232 -msgid "widgets" +#: js/activity.js:5976 +msgid "Could not parse JSON input." msgstr "" -#: js/turtledefs.js:131 -#: js/turtledefs.js:233 -#: js/phrasemaker.js:824 -msgid "graphics" +#: js/activity.js:6475 +#: js/activity.js:6580 +#: js/activity.js:6631 +msgid "Cannot load project from the file. Please check the file type." msgstr "" -#: js/turtledefs.js:134 -#: js/turtledefs.js:236 -msgid "boolean" +#: js/activity.js:6917 +msgid "Invalid parameters" msgstr "" -#: js/turtledefs.js:137 -#: js/turtledefs.js:239 -#: js/HeapBlocks.js:59 -#: js/status.js:147 -msgid "heap" +#: js/blocks.js:1212 +#: js/blocks.js:3444 +#: js/blocks.js:3834 +#: js/blocks.js:3865 +#: js/blocks.js:3914 +#: js/blocks.js:3949 +#: js/blocks.js:6586 +#: js/palette.js:509 +#: js/palette.js:638 +#: js/palette.js:1105 +#: js/blocks/BoxesBlocks.js:282 +#: js/blocks/BoxesBlocks.js:285 +#: js/blocks/BoxesBlocks.js:405 +#: js/blocks/BoxesBlocks.js:594 +msgid "box" +msgstr "பெட்டி" + +#: js/blocks.js:1713 +msgid "Consider breaking this stack into parts." msgstr "" -#: js/turtledefs.js:138 -#: js/turtledefs.js:240 -#: js/ProgramBlocks.js:495 -#: js/DictBlocks.js:142 -msgid "dictionary" +#: js/blocks.js:2472 +#: js/palette.js:653 +#: js/blocks/MediaBlocks.js:602 +msgid "open file" msgstr "" -#: js/turtledefs.js:139 -#: js/turtledefs.js:241 -msgid "ensemble" +#: js/blocks.js:3247 +#: js/palette.js:574 +#: js/blocks/MediaBlocks.js:892 +#: js/blocks/MediaBlocks.js:963 +msgid "text" +msgstr "உரை" + +#: js/blocks.js:3443 +#: js/palette.js:641 +#: js/palette.js:642 +#: js/blocks/BoxesBlocks.js:514 +msgid "store in box" msgstr "" -#: js/turtledefs.js:140 -#: js/turtledefs.js:242 -msgid "extras" +#: js/blocks.js:3448 +#: js/blocks.js:3888 +#: js/blocks.js:3923 +#: js/blocks.js:3958 +#: js/blocks.js:5862 +#: js/blocks.js:5883 +#: js/blocks/BoxesBlocks.js:772 +msgid "box1" msgstr "" -#: js/turtledefs.js:142 -#: js/turtledefs.js:244 -#.TRANS: program as in computer program -#.TRANS: program as in computer program -msgid "program" +#: js/blocks.js:3450 +#: js/blocks.js:3890 +#: js/blocks.js:3925 +#: js/blocks.js:3960 +#: js/blocks.js:5864 +#: js/blocks.js:5885 +#: js/blocks/BoxesBlocks.js:663 +msgid "box2" msgstr "" -#: js/turtledefs.js:143 -#: js/turtledefs.js:245 -msgid "my blocks" +#: js/blocks.js:4122 +#: js/palette.js:639 +#: js/palette.js:644 +#: js/palette.js:1041 +#: js/blocks/BoxesBlocks.js:591 +msgid "store in" +msgstr "சேமிப்புக்கலனில்" + +#: js/blocks.js:4122 +#: js/blocks/BoxesBlocks.js:595 +#: js/blocks/DictBlocks.js:215 +#: js/blocks/DictBlocks.js:289 +#: js/blocks/EnsembleBlocks.js:391 +#: js/blocks/EnsembleBlocks.js:402 +#: js/blocks/MediaBlocks.js:746 +#: js/blocks/PitchBlocks.js:656 +#: js/blocks/PitchBlocks.js:934 +#: js/blocks/PitchBlocks.js:1866 +#: js/blocks/ProgramBlocks.js:390 +#: js/blocks/ProgramBlocks.js:495 +#: js/blocks/ProgramBlocks.js:658 +#: js/blocks/ToneBlocks.js:1025 +msgid "name" msgstr "" -#: js/turtledefs.js:185 -#: js/turtledefs.js:281 -msgid "artwork" +#: js/blocks.js:4122 +#: js/blocks/BoxesBlocks.js:75 +#: js/blocks/BoxesBlocks.js:595 +#: js/blocks/DictBlocks.js:289 +#: js/blocks/DictBlocks.js:430 +#: js/blocks/HeapBlocks.js:544 +#: js/blocks/RhythmBlocks.js:1130 +msgid "value" +msgstr "மதிப்பு" + +#: js/blocks.js:4465 +msgid "Forever loop detected inside a note value block. Unexpected things may happen." msgstr "" -#: js/turtledefs.js:185 -#: js/turtledefs.js:281 -msgid "logic" +#: js/blocks.js:4988 +msgid "There is no block selected." msgstr "" -#: js/turtledefs.js:185 -#: js/turtledefs.js:281 -msgid "music" +#: js/blocks.js:5091 +#: js/blocks/MediaBlocks.js:888 +msgid "show" +msgstr "காட்டு" + +#: js/blocks.js:5094 +#: js/blocks/MediaBlocks.js:803 +#.TRANS: Avatar is the image used to determine the appearance of the mouse. +msgid "avatar" msgstr "" -#: js/turtledefs.js:187 -#: js/turtledefs.js:463 -msgid "Music Blocks is a collection of tools for exploring fundamental musical concepts in a fun way." +#: js/blocks.js:5097 +#: js/blocks/ToneBlocks.js:1010 +#: js/widgets/sampler.js:975 +#.TRANS: The sound sample that the user uploads. +msgid "sample" msgstr "" -#: js/turtledefs.js:436 -msgid "Welcome to Turtle Blocks" +#: js/lilypond.js:606 +msgid "brown rat" msgstr "" -#: js/turtledefs.js:438 -#: js/turtledefs.js:465 -#: js/turtledefs.js:774 -#: js/turtledefs.js:805 -msgid "The current version is" +#: js/lilypond.js:607 +msgid "mole" msgstr "" -#: js/turtledefs.js:446 -#: js/turtledefs.js:483 -msgid "Click the run button to run the project in fast mode." +#: js/lilypond.js:608 +msgid "chipmunk" msgstr "" -#: js/turtledefs.js:452 -msgid "Stop the turtle." +#: js/lilypond.js:609 +msgid "red squirrel" msgstr "" -#: js/turtledefs.js:454 -#: js/turtledefs.js:491 -msgid "You can also type Alt-S to stop." +#: js/lilypond.js:610 +msgid "guinea pig" msgstr "" -#: js/turtledefs.js:462 -#: js/help.js:333 -msgid "Welcome to Music Blocks" +#: js/lilypond.js:611 +msgid "capybara" msgstr "" -#: js/turtledefs.js:472 -#: js/help.js:334 -msgid "Meet Mr. Mouse!" +#: js/lilypond.js:612 +msgid "coypu" msgstr "" -#: js/turtledefs.js:473 -msgid "Mr Mouse is our Music Blocks conductor." +#: js/lilypond.js:613 +msgid "black rat" msgstr "" -#: js/turtledefs.js:475 -msgid "Mr Mouse encourages you to explore Music Blocks." +#: js/lilypond.js:614 +msgid "grey squirrel" msgstr "" -#: js/turtledefs.js:477 -msgid "Let us start our tour!" +#: js/lilypond.js:615 +msgid "flying squirrel" msgstr "" -#: js/turtledefs.js:489 -msgid "Stop the music (and the mice)." +#: js/lilypond.js:616 +msgid "bat" msgstr "" -#: js/turtledefs.js:499 -msgid "Record your project as video." +#: js/lilypond.js:749 +#: js/lilypond.js:913 +#: js/lilypond.js:951 +#: js/blocks/ActionBlocks.js:1256 +#: js/blocks/ExtrasBlocks.js:556 +msgid "start drum" msgstr "" -#: js/turtledefs.js:505 -msgid "Toggle Fullscreen mode." +#: js/logo.js:61 +msgid "Not a valid pitch name" msgstr "" -#: js/turtledefs.js:511 -msgid "Initialize a new project." +#: js/logo.js:507 +#: js/blocks/ProgramBlocks.js:258 +#: js/blocks/ProgramBlocks.js:427 +msgid "You must select a file." msgstr "" -#: js/turtledefs.js:517 -msgid "You can also load projects from the file system." +#: js/logo.js:1696 +msgid "Playback is ready." msgstr "" -#: js/turtledefs.js:522 -#: js/StringHelper.js:46 -msgid "Delete" +#: js/macros.js:711 +#: js/utils/musicutils.js:1162 +#: js/utils/synthutils.js:202 +#.TRANS: animal sound effect +msgid "duck" msgstr "" -#: js/turtledefs.js:523 -msgid "To delete a block, just right-click on it, then you will be able to see the delete option" +#: js/notation.js:353 +msgid "Lilypond cannot process pickup of " msgstr "" -#: js/turtledefs.js:528 -#: js/activity.js:2270 -#: js/LocalCard.js:31 -msgid "Copy" -msgstr "பிரதி செய்" +#: js/palette.js:571 +msgid "grid" +msgstr "" -#: js/turtledefs.js:529 -msgid "To copy a block, just right-click on it, then you will be able to see the copy option" +#: js/palette.js:580 +msgid "effect" msgstr "" -#: js/turtledefs.js:535 -msgid "To extract a block, just right-click on it, then you will be able to see the extract option" +#: js/palette.js:586 +msgid "sargam" msgstr "" -#: js/turtledefs.js:542 -#: js/turtledefs.js:552 -#: js/turtledefs.js:573 -msgid "Save your project to a file." +#: js/palette.js:601 +#: js/blocks/PitchBlocks.js:1209 +msgid "custom pitch" msgstr "" -#: js/turtledefs.js:549 -#: js/turtledefs.js:570 -msgid "save" +#: js/palette.js:609 +msgid "accidental" msgstr "" -#: js/turtledefs.js:556 -#: js/turtledefs.js:577 -msgid "Save graphics from your project to as SVG." +#: js/palette.js:633 +#: js/blocks/PitchBlocks.js:405 +msgid "pitch converter" msgstr "" -#: js/turtledefs.js:560 -#: js/turtledefs.js:581 -msgid "Save graphics from your project as PNG." +#: js/piemenus.js:200 +#: js/utils/musicutils.js:1187 +#: js/utils/musicutils.js:1207 +#: js/widgets/musickeyboard.js:2341 +#: js/widgets/phrasemaker.js:1908 +#: js/widgets/sampler.js:810 +#.TRANS: double sharp is a music term related to pitch +msgid "double sharp" msgstr "" -#: js/turtledefs.js:564 -#: js/turtledefs.js:597 -msgid "Save block artwork as an SVG file." +#: js/piemenus.js:201 +#: js/utils/musicutils.js:1185 +#: js/utils/musicutils.js:1208 +#: js/blocks/PitchBlocks.js:1539 +#: js/turtleactions/PitchActions.js:323 +#: js/widgets/musickeyboard.js:2342 +#: js/widgets/phrasemaker.js:1909 +#: js/widgets/sampler.js:811 +#.TRANS: sharp is a music term related to pitch +#.TRANS: sharp is a half-step up in pitch +msgid "sharp" msgstr "" -#: js/turtledefs.js:585 -msgid "Save audio from your project as WAV." +#: js/piemenus.js:202 +#: js/utils/musicutils.js:1183 +#: js/utils/musicutils.js:1209 +#: js/widgets/musickeyboard.js:2343 +#: js/widgets/phrasemaker.js:1910 +#: js/widgets/sampler.js:812 +#.TRANS: natural is a music term related to pitch +msgid "natural" msgstr "" -#: js/turtledefs.js:589 -msgid "Save your project to as an ABC file." +#: js/piemenus.js:203 +#: js/utils/musicutils.js:1181 +#: js/utils/musicutils.js:1210 +#: js/blocks/PitchBlocks.js:1498 +#: js/turtleactions/PitchActions.js:326 +#: js/widgets/musickeyboard.js:2344 +#: js/widgets/phrasemaker.js:1911 +#: js/widgets/sampler.js:813 +#.TRANS: flat is a music term related to pitch +#.TRANS: flat is a half-step down in pitch +msgid "flat" msgstr "" -#: js/turtledefs.js:593 -msgid "Save your project to as a Lilypond file." +#: js/piemenus.js:204 +#: js/utils/musicutils.js:1179 +#: js/utils/musicutils.js:1211 +#: js/widgets/musickeyboard.js:2345 +#: js/widgets/phrasemaker.js:1912 +#: js/widgets/sampler.js:814 +#.TRANS: double flat is a music term related to pitch +msgid "double flat" msgstr "" -#: js/turtledefs.js:604 -msgid "Load samples from server" +#: js/piemenus.js:2864 +#: js/utils/musicutils.js:1006 +#: js/blocks/PitchBlocks.js:1385 +#.TRANS: unison is a music term related to intervals +#.TRANS: unison means the note is the same as the current note +msgid "unison" msgstr "" -#: js/turtledefs.js:605 -msgid "This button opens a viewer for loading example projects." +#: js/piemenus.js:3018 +#: js/piemenus.js:3091 +#: js/utils/musicutils.js:1014 +#: js/utils/musicutils.js:1189 +#: js/utils/musicutils.js:1326 +#.TRANS: major is a music term related to intervals and mode +msgid "major" msgstr "" -#: js/turtledefs.js:611 -msgid "Palette buttons" +#: js/piemenus.js:3018 +#: js/piemenus.js:3091 +#: js/utils/musicutils.js:1032 +#.TRANS: modal scale for music +msgid "ionian" msgstr "" -#: js/turtledefs.js:612 -msgid "This toolbar contains the palette buttons including Rhythm Pitch Tone Action and more." +#: js/piemenus.js:3020 +#: js/piemenus.js:3095 +#: js/utils/musicutils.js:1012 +#: js/utils/musicutils.js:1190 +#: js/utils/musicutils.js:1323 +#.TRANS: minor is a music term related to intervals and mode +msgid "minor" msgstr "" -#: js/turtledefs.js:614 -msgid "Click to show the palettes of blocks and drag blocks from the palettes onto the canvas to use them." +#: js/piemenus.js:3020 +#: js/piemenus.js:3095 +#: js/utils/musicutils.js:1042 +#.TRANS: modal scale for music +msgid "aeolian" msgstr "" -#: js/turtledefs.js:620 -msgid "Cartesian/Polar" +#: js/piemenus.js:3410 +msgid "Duplicate" msgstr "" -#: js/turtledefs.js:621 -msgid "Show or hide a coordinate grid." +#: js/piemenus.js:3412 +msgid "Move to trash" msgstr "" -#: js/turtledefs.js:627 -msgid "Clear the screen and return the mice to their initial positions." +#: js/piemenus.js:3413 +#: js/widgets/timbre.js:968 +#: planet/js/StringHelper.js:69 +msgid "Close" msgstr "" -#: js/turtledefs.js:633 -msgid "Collapse the graphics window." +#: js/piemenus.js:3419 +msgid "Save stack" msgstr "" -#: js/turtledefs.js:638 -#: js/activity.js:4256 -#: js/activity.js:4256 -msgid "Home" +#: js/piemenus.js:3449 +msgid "In order to copy a sample, you must reload the widget, import the sample again, and export it." msgstr "" -#: js/turtledefs.js:639 -msgid "Return all blocks to the center of the screen." +#: js/piemenus.js:3812 +msgid "You have chosen key " msgstr "" -#: js/turtledefs.js:644 -msgid "Show/hide blocks" -msgstr "பிரிவுகளை காட்டு/மறை" +#: js/piemenus.js:3816 +msgid " for your pitch preview." +msgstr "" -#: js/turtledefs.js:645 -msgid "Hide or show the blocks and the palettes." +#: js/turtle-singer.js:1363 +#.TRANS: partials are weighted components in a harmonic series +msgid "You must have at least one Partial block inside of a Weighted-partial block" msgstr "" -#: js/turtledefs.js:650 -msgid "Expand/collapse collapsable blocks" +#: js/turtle-singer.js:2077 +msgid "synth cannot play chords." msgstr "" -#: js/turtledefs.js:651 -msgid "Expand or collapse start and action stacks." +#: js/utils/musicutils.js:505 +#: js/utils/musicutils.js:645 +#: js/widgets/pitchdrummatrix.js:228 +#: js/widgets/musickeyboard.js:2885 +msgid "rest" msgstr "" -#: js/turtledefs.js:658 -#: js/activity.js:4265 -msgid "Decrease block size" +#: js/utils/musicutils.js:689 +msgid "Perfect unison" msgstr "" -#: js/turtledefs.js:659 -msgid "Decrease the size of the blocks." +#: js/utils/musicutils.js:689 +msgid "Diminished second" msgstr "" -#: js/turtledefs.js:664 -#: js/activity.js:4267 -msgid "Increase block size" +#: js/utils/musicutils.js:690 +msgid "Minor second" msgstr "" -#: js/turtledefs.js:665 -msgid "Increase the size of the blocks." +#: js/utils/musicutils.js:690 +msgid "Augmented unison" msgstr "" -#: js/turtledefs.js:670 -msgid "Expand/collapse option toolbar" +#: js/utils/musicutils.js:691 +msgid "Major second" msgstr "" -#: js/turtledefs.js:671 -msgid "Click this button to expand or collapse the auxillary toolbar." +#: js/utils/musicutils.js:691 +msgid "Diminished third" msgstr "" -#: js/turtledefs.js:676 -msgid "Run slow" +#: js/utils/musicutils.js:692 +msgid "Minor third" msgstr "" -#: js/turtledefs.js:677 -msgid "Click to run the project in slow mode." +#: js/utils/musicutils.js:692 +msgid "Augmented second" msgstr "" -#: js/turtledefs.js:683 -msgid "Click to run the project step by step." +#: js/utils/musicutils.js:693 +msgid "Major third" msgstr "" -#: js/turtledefs.js:690 -msgid "Display statistics about your Music project." +#: js/utils/musicutils.js:693 +msgid "Diminished fourth" msgstr "" -#: js/turtledefs.js:697 -msgid "Delete a selected plugin." +#: js/utils/musicutils.js:694 +msgid "Perfect fourth" msgstr "" -#: js/turtledefs.js:704 -msgid "Enable scrolling" +#: js/utils/musicutils.js:694 +msgid "Augmented third" msgstr "" -#: js/turtledefs.js:705 -msgid "You can scroll the blocks on the canvas." +#: js/utils/musicutils.js:695 +msgid "Diminished fifth" msgstr "" -#: js/turtledefs.js:714 -msgid "Wrap Turtle" +#: js/utils/musicutils.js:695 +msgid "Augmented fourth" msgstr "" -#: js/turtledefs.js:715 -msgid "Turn Turtle wrapping On or Off." +#: js/utils/musicutils.js:696 +msgid "Perfect fifth" msgstr "" -#: js/turtledefs.js:725 -msgid "Restore blocks from the trash." +#: js/utils/musicutils.js:696 +msgid "Diminished sixth" msgstr "" -#: js/turtledefs.js:732 -msgid "Switch mode" +#: js/utils/musicutils.js:697 +msgid "Minor sixth" msgstr "" -#: js/turtledefs.js:733 -msgid "Switch between beginner and advance modes." +#: js/utils/musicutils.js:697 +msgid "Augmented fifth" msgstr "" -#: js/turtledefs.js:739 -msgid "Select your language preference." +#: js/utils/musicutils.js:698 +msgid "Major sixth" msgstr "" -#: js/turtledefs.js:745 -msgid "Keyboard shortcuts" +#: js/utils/musicutils.js:698 +msgid "Diminished seventh" msgstr "" -#: js/turtledefs.js:746 -msgid "You can type d to create a do block and r to create a re block etc." +#: js/utils/musicutils.js:699 +msgid "Minor seventh" msgstr "" -#: js/turtledefs.js:753 -msgid "Show these messages." +#: js/utils/musicutils.js:699 +msgid "Augmented sixth" msgstr "" -#: js/turtledefs.js:759 -#: js/turtledefs.js:790 -#: js/help.js:335 -msgid "Guide" +#: js/utils/musicutils.js:700 +msgid "Major seventh" msgstr "" -#: js/turtledefs.js:760 -msgid "A detailed guide to Turtle Blocks is available." +#: js/utils/musicutils.js:700 +msgid "Diminished octave" msgstr "" -#: js/turtledefs.js:764 -msgid "Turtle Blocks Guide" +#: js/utils/musicutils.js:701 +msgid "Perfect octave" msgstr "" -#: js/turtledefs.js:767 -#: js/turtledefs.js:798 -#: js/help.js:336 -msgid "About" +#: js/utils/musicutils.js:701 +msgid "Augmented seventh" msgstr "" -#: js/turtledefs.js:768 -msgid "Turtle Blocks is an open source collection of tools for exploring musical concepts." +#: js/utils/musicutils.js:702 +msgid "Minor ninth" msgstr "" -#: js/turtledefs.js:770 -msgid "A full list of contributors can be found in the Turtle Blocks GitHub repository." +#: js/utils/musicutils.js:702 +msgid "Augmented octave" msgstr "" -#: js/turtledefs.js:772 -msgid "Turtle Blocks is licensed under the AGPL." +#: js/utils/musicutils.js:703 +msgid "Major ninth" msgstr "" -#: js/turtledefs.js:780 -msgid "Turtle Blocks GitHub repository" +#: js/utils/musicutils.js:703 +msgid "Diminished tenth" msgstr "" -#: js/turtledefs.js:783 -#: js/turtledefs.js:814 -#: js/help.js:337 -#: js/help.js:359 -msgid "Congratulations." +#: js/utils/musicutils.js:704 +msgid "Minor tenth" msgstr "" -#: js/turtledefs.js:784 -msgid "You have finished the tour. Please enjoy Turtle Blocks!" +#: js/utils/musicutils.js:704 +msgid "Augmented ninth" msgstr "" -#: js/turtledefs.js:791 -msgid "A detailed guide to Music Blocks is available." +#: js/utils/musicutils.js:705 +msgid "Major tenth" msgstr "" -#: js/turtledefs.js:795 -#: js/SaveInterface.js:76 -msgid "Music Blocks Guide" +#: js/utils/musicutils.js:705 +msgid "Diminished eleventh" msgstr "" -#: js/turtledefs.js:799 -msgid "Music Blocks is an open source collection of tools for exploring musical concepts." +#: js/utils/musicutils.js:706 +msgid "Perfect eleventh" msgstr "" -#: js/turtledefs.js:801 -msgid "A full list of contributors can be found in the Music Blocks GitHub repository." +#: js/utils/musicutils.js:706 +msgid "Augmented tenth" msgstr "" -#: js/turtledefs.js:803 -msgid "Music Blocks is licensed under the AGPL." +#: js/utils/musicutils.js:707 +msgid "Diminished twelfth" msgstr "" -#: js/turtledefs.js:811 -msgid "Music Blocks GitHub repository" +#: js/utils/musicutils.js:707 +msgid "Augmented eleventh" msgstr "" -#: js/turtledefs.js:815 -msgid "You have finished the tour. Please enjoy Music Blocks!" +#: js/utils/musicutils.js:708 +msgid "Perfect twelfth" msgstr "" -#: js/activity.js:369 -msgid "Search for blocks" +#: js/utils/musicutils.js:708 +msgid "Diminished thirteenth" msgstr "" -#: js/activity.js:1145 -msgid "Refresh your browser to change to advanced mode." +#: js/utils/musicutils.js:709 +msgid "Minor thirteenth" msgstr "" -#: js/activity.js:1150 -msgid "Refresh your browser to change to beginner mode." +#: js/utils/musicutils.js:709 +msgid "Augmented fifth, plus an octave" msgstr "" -#: js/activity.js:1184 -msgid "Catching mice" +#: js/utils/musicutils.js:710 +msgid "Major thirteenth" msgstr "" -#: js/activity.js:1185 -msgid "Cleaning the instruments" +#: js/utils/musicutils.js:710 +msgid "Diminished seventh, plus an octave" msgstr "" -#: js/activity.js:1186 -msgid "Testing key pieces" +#: js/utils/musicutils.js:838 +#.TRANS: ordinal number. Please keep exactly one space between each number. +msgid "1st 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th" msgstr "" -#: js/activity.js:1187 -msgid "Sight-reading" +#: js/utils/musicutils.js:1008 +#: js/utils/musicutils.js:1191 +#: js/utils/musicutils.js:1325 +#.TRANS: augmented is a music term related to intervals +msgid "augmented" msgstr "" -#: js/activity.js:1188 -msgid "Combining math and music" +#: js/utils/musicutils.js:1010 +#: js/utils/musicutils.js:1192 +#: js/utils/musicutils.js:1324 +#.TRANS: diminished is a music term related to intervals and mode +msgid "diminished" msgstr "" -#: js/activity.js:1189 -msgid "Generating more blocks" +#: js/utils/musicutils.js:1016 +#: js/utils/musicutils.js:1322 +#: js/blocks/IntervalsBlocks.js:649 +#: js/turtleactions/IntervalsActions.js:120 +#: js/turtleactions/IntervalsActions.js:124 +#.TRANS: perfect is a music term related to intervals +msgid "perfect" msgstr "" -#: js/activity.js:1190 -msgid "Do Re Mi Fa Sol La Ti Do" +#: js/utils/musicutils.js:1018 +#.TRANS: twelve semi-tone scale for music +msgid "chromatic" msgstr "" -#: js/activity.js:1191 -msgid "Tuning string instruments" +#: js/utils/musicutils.js:1019 +msgid "algerian" msgstr "" -#: js/activity.js:1192 -msgid "Pressing random keys" +#: js/utils/musicutils.js:1020 +msgid "spanish" msgstr "" -#: js/activity.js:1351 -msgid "plugins will be removed upon restart." +#: js/utils/musicutils.js:1022 +#.TRANS: modal scale in music +msgid "octatonic" msgstr "" -#: js/activity.js:1360 -msgid "show Cartesian" +#: js/utils/musicutils.js:1024 +#.TRANS: harmonic major scale in music +msgid "harmonic major" msgstr "" -#: js/activity.js:1842 -msgid "output tools" +#: js/utils/musicutils.js:1026 +#.TRANS: natural minor scales in music +msgid "natural minor" msgstr "" -#: js/activity.js:1845 -msgid "custom note" +#: js/utils/musicutils.js:1028 +#.TRANS: harmonic minor scale in music +msgid "harmonic minor" msgstr "" -#: js/activity.js:1848 -msgid "accidental name" +#: js/utils/musicutils.js:1030 +#.TRANS: melodic minor scale in music +msgid "melodic minor" msgstr "" -#: js/activity.js:1851 -#: js/PitchBlocks.js:855 -msgid "east indian solfege" +#: js/utils/musicutils.js:1034 +#.TRANS: modal scale for music +msgid "dorian" msgstr "" -#: js/activity.js:1854 -#: js/PitchBlocks.js:869 -msgid "note name" +#: js/utils/musicutils.js:1036 +#.TRANS: modal scale for music +msgid "phrygian" msgstr "" -#: js/activity.js:1857 -#: js/IntervalsBlocks.js:94 -msgid "temperament name" +#: js/utils/musicutils.js:1038 +#.TRANS: modal scale for music +msgid "lydian" msgstr "" -#: js/activity.js:1863 -msgid "chord name" +#: js/utils/musicutils.js:1040 +#.TRANS: modal scale for music +msgid "mixolydian" msgstr "" -#: js/activity.js:1869 -msgid "filter type" +#: js/utils/musicutils.js:1044 +#.TRANS: modal scale for music +msgid "locrian" msgstr "" -#: js/activity.js:1872 -msgid "oscillator type" +#: js/utils/musicutils.js:1046 +#.TRANS: minor jazz scale for music +msgid "jazz minor" msgstr "" -#: js/activity.js:1878 -#: js/DrumBlocks.js:32 -msgid "noise name" +#: js/utils/musicutils.js:1048 +#.TRANS: bebop scale for music +msgid "bebop" msgstr "" -#: js/activity.js:1881 -#: js/DrumBlocks.js:75 -msgid "drum name" +#: js/utils/musicutils.js:1049 +msgid "arabic" msgstr "" -#: js/activity.js:1884 -#: js/DrumBlocks.js:119 -msgid "effects name" +#: js/utils/musicutils.js:1050 +msgid "byzantine" msgstr "" -#: js/activity.js:1887 -msgid "wrap mode" +#: js/utils/musicutils.js:1052 +#.TRANS: musical scale for music by Verdi +msgid "enigmatic" msgstr "" -#: js/activity.js:1890 -msgid "load file" +#: js/utils/musicutils.js:1053 +msgid "ethiopian" msgstr "" -#: js/activity.js:2056 -msgid "This block is deprecated." +#: js/utils/musicutils.js:1055 +#.TRANS: Ethiopic scale for music +msgid "geez" msgstr "" -#: js/activity.js:2058 -msgid "Block cannot be found." +#: js/utils/musicutils.js:1056 +msgid "hindu" msgstr "" -#: js/activity.js:2266 -msgid "Saving block artwork" +#: js/utils/musicutils.js:1057 +msgid "hungarian" msgstr "" -#: js/activity.js:2277 -msgid "Erase" +#: js/utils/musicutils.js:1059 +#.TRANS: minor Romanian scale for music +msgid "romanian minor" msgstr "" -#: js/activity.js:2301 -#: js/activity.js:2323 -msgid "Paste" -msgstr "ஒட்டு" +#: js/utils/musicutils.js:1060 +msgid "spanish gypsy" +msgstr "" -#: js/activity.js:2305 -msgid "Save block help" +#: js/utils/musicutils.js:1062 +#.TRANS: musical scale for Mid-Eastern music +msgid "maqam" msgstr "" -#: js/activity.js:2390 -msgid "Jumping to the bottom of the page." +#: js/utils/musicutils.js:1064 +#.TRANS: minor blues scale for music +msgid "minor blues" msgstr "" -#: js/activity.js:2396 -msgid "Scrolling up." +#: js/utils/musicutils.js:1066 +#.TRANS: major blues scale for music +msgid "major blues" msgstr "" -#: js/activity.js:2401 -msgid "Scrolling down." +#: js/utils/musicutils.js:1067 +msgid "whole tone" msgstr "" -#: js/activity.js:2406 -msgid "Extracting block" +#: js/utils/musicutils.js:1069 +#.TRANS: pentatonic is a general term that means "five note scale". This scale is typically known as "minor pentatonic" +msgid "minor pentatonic" msgstr "" -#: js/activity.js:2414 -msgid "Moving block up." +#: js/utils/musicutils.js:1071 +#.TRANS: pentatonic is a general term that means "five note scale". This scale is typically known as "major pentatonic" +msgid "major pentatonic" msgstr "" -#: js/activity.js:2435 -msgid "Moving block down." +#: js/utils/musicutils.js:1072 +msgid "chinese" msgstr "" -#: js/activity.js:2456 -msgid "Moving block left." +#: js/utils/musicutils.js:1073 +msgid "egyptian" msgstr "" -#: js/activity.js:2473 -msgid "Moving block right." +#: js/utils/musicutils.js:1075 +#.TRANS: https://en.wikipedia.org/wiki/Hirajoshi_scale NOTE: There are three different versions of this scale +msgid "hirajoshi" msgstr "" -#: js/activity.js:2488 -msgid "Jump to home position." +#: js/utils/musicutils.js:1076 +msgid "Japan" msgstr "" -#: js/activity.js:2515 -msgid "Hide blocks" +#: js/utils/musicutils.js:1078 +#.TRANS: https://en.wikipedia.org/wiki/In_scale and https://en.wikipedia.org/wiki/Sakura_Sakura +msgid "in" msgstr "" -#: js/activity.js:3389 -msgid "Click the run button to run the project." +#: js/utils/musicutils.js:1080 +#.TRANS: https://en.wikipedia.org/wiki/Miny%C5%8D_scale +msgid "minyo" msgstr "" -#: js/activity.js:3456 -#: js/SaveInterface.js:131 -#: js/SaveInterface.js:204 -#: js/SaveInterface.js:262 -#: js/SaveInterface.js:389 -#: js/SaveInterface.js:417 -#: js/ProjectStorage.js:27 -#: js/GlobalPlanet.js:467 -#: js/GlobalPlanet.js:469 -#: js/GlobalPlanet.js:495 -#.TRANS: default project title when saving as Lilypond -msgid "My Project" +#: js/utils/musicutils.js:1082 +#.TRANS: Italian mathematician +msgid "fibonacci" msgstr "" -#: js/activity.js:4261 -msgid "Show/hide block" +#: js/utils/musicutils.js:1083 +#: js/utils/musicutils.js:1134 +#: js/utils/musicutils.js:1177 +#: js/utils/musicutils.js:1199 +#: js/utils/synthutils.js:134 +#: js/blocks/IntervalsBlocks.js:1124 +#: js/blocks/ToneBlocks.js:946 +#: js/blocks/VolumeBlocks.js:411 +#: js/blocks/WidgetBlocks.js:399 +#: js/blocks/WidgetBlocks.js:404 +#: js/turtleactions/VolumeActions.js:218 +#: js/widgets/modewidget.js:919 +#.TRANS: customize voice +msgid "custom" msgstr "" -#: js/activity.js:4263 -msgid "Expand/collapse blocks" +#: js/utils/musicutils.js:1085 +#: js/utils/musicutils.js:1531 +#: js/blocks/WidgetBlocks.js:176 +#.TRANS: highpass filter +msgid "highpass" msgstr "" -#: js/activity.js:4381 -msgid "Could not parse JSON input." +#: js/utils/musicutils.js:1087 +#: js/utils/musicutils.js:1532 +#.TRANS: lowpass filter +msgid "lowpass" msgstr "" -#: js/activity.js:4684 -#: js/activity.js:4771 -#: js/activity.js:4821 -msgid "Cannot load project from the file. Please check the file type." +#: js/utils/musicutils.js:1089 +#: js/utils/musicutils.js:1533 +#.TRANS: bandpass filter +msgid "bandpass" msgstr "" -#: js/activity.js:5051 -msgid "Invalid parameters" +#: js/utils/musicutils.js:1091 +#: js/utils/musicutils.js:1534 +#.TRANS: high-shelf filter +msgid "highshelf" msgstr "" -#: js/turtle-singer.js:1334 -#.TRANS: partials are weighted components in a harmonic series -msgid "You must have at least one Partial block inside of a Weighted-partial block" +#: js/utils/musicutils.js:1093 +#: js/utils/musicutils.js:1535 +#.TRANS: low-shelf filter +msgid "lowshelf" msgstr "" -#: js/turtle-singer.js:2048 -msgid "synth cannot play chords." +#: js/utils/musicutils.js:1095 +#: js/utils/musicutils.js:1536 +#.TRANS: notch-shelf filter +msgid "notch" msgstr "" -#: js/lilypond.js:614 -msgid "brown rat" +#: js/utils/musicutils.js:1097 +#: js/utils/musicutils.js:1537 +#.TRANS: all-pass filter +msgid "allpass" msgstr "" -#: js/lilypond.js:615 -msgid "mole" +#: js/utils/musicutils.js:1099 +#: js/utils/musicutils.js:1538 +#.TRANS: peaking filter +msgid "peaking" msgstr "" -#: js/lilypond.js:616 -msgid "chipmunk" +#: js/utils/musicutils.js:1100 +#: js/utils/musicutils.js:1546 +#: js/utils/synthutils.js:126 +#: js/blocks/PitchBlocks.js:85 +#.TRANS: sine wave +msgid "sine" msgstr "" -#: js/lilypond.js:617 -msgid "red squirrel" +#: js/utils/musicutils.js:1101 +#: js/utils/musicutils.js:1547 +#: js/utils/synthutils.js:128 +#: js/blocks/PitchBlocks.js:39 +#.TRANS: square wave +msgid "square" msgstr "" -#: js/lilypond.js:618 -msgid "guinea pig" +#: js/utils/musicutils.js:1102 +#: js/utils/musicutils.js:1548 +#: js/utils/synthutils.js:132 +#: js/blocks/PitchBlocks.js:62 +#: js/blocks/ToneBlocks.js:39 +#.TRANS: triangle wave +msgid "triangle" msgstr "" -#: js/lilypond.js:619 -msgid "capybara" +#: js/utils/musicutils.js:1103 +#: js/utils/musicutils.js:1549 +#: js/utils/synthutils.js:130 +#: js/blocks/PitchBlocks.js:108 +#.TRANS: sawtooth wave +msgid "sawtooth" msgstr "" -#: js/lilypond.js:620 -msgid "coypu" +#: js/utils/musicutils.js:1105 +#: js/utils/musicutils.js:1312 +#: js/blocks/PitchBlocks.js:931 +#: js/blocks/PitchBlocks.js:937 +#: js/turtleactions/PitchActions.js:469 +#.TRANS: even numbers +#.TRANS: invert based on even or odd number or musical scale +msgid "even" msgstr "" -#: js/lilypond.js:621 -msgid "black rat" +#: js/utils/musicutils.js:1107 +#: js/utils/musicutils.js:1313 +#: js/blocks/PitchBlocks.js:937 +#: js/turtleactions/PitchActions.js:471 +#.TRANS: odd numbers +msgid "odd" msgstr "" -#: js/lilypond.js:622 -msgid "grey squirrel" +#: js/utils/musicutils.js:1108 +#: js/utils/musicutils.js:1314 +#: js/blocks/PitchBlocks.js:937 +#: js/turtleactions/PitchActions.js:473 +msgid "scalar" msgstr "" -#: js/lilypond.js:623 -msgid "flying squirrel" +#: js/utils/musicutils.js:1109 +#: js/utils/synthutils.js:72 +#: js/blocks/VolumeBlocks.js:47 +#.TRANS: musical instrument +msgid "piano" msgstr "" -#: js/lilypond.js:624 -msgid "bat" +#: js/utils/musicutils.js:1110 +#: js/utils/synthutils.js:74 +#.TRANS: musical instrument +msgid "violin" msgstr "" -#: js/lilypond.js:757 -#: js/lilypond.js:921 -#: js/lilypond.js:959 -#: js/ActionBlocks.js:1256 -#: js/ExtrasBlocks.js:553 -msgid "start drum" +#: js/utils/musicutils.js:1111 +#: js/utils/synthutils.js:76 +#.TRANS: viola musical instrument +msgid "viola" msgstr "" -#: js/SaveInterface.js:59 -#: js/SaveInterface.js:61 -#: js/SaveInterface.js:93 -msgid "Music Blocks Project" +#: js/utils/musicutils.js:1112 +#: js/utils/synthutils.js:114 +#.TRANS: xylophone musical instrument +msgid "xylophone" msgstr "" -#: js/SaveInterface.js:63 -msgid "This project was created in Music Blocks" +#: js/utils/musicutils.js:1113 +#: js/utils/synthutils.js:136 +#.TRANS: vibraphone musical instrument +msgid "vibraphone" msgstr "" -#: js/SaveInterface.js:67 -msgid "Music Blocks is a Free/Libre Software application." +#: js/utils/musicutils.js:1114 +#: js/utils/synthutils.js:78 +#.TRANS: musical instrument +msgid "cello" msgstr "" -#: js/SaveInterface.js:69 -msgid "The source code can be accessed at" +#: js/utils/musicutils.js:1116 +#: js/utils/synthutils.js:82 +#.TRANS: viola musical instrument +msgid "double bass" msgstr "" -#: js/SaveInterface.js:72 -msgid "For more information, please consult the" +#: js/utils/musicutils.js:1117 +#: js/utils/synthutils.js:84 +#: js/widgets/rhythmruler.js:2511 +#.TRANS: musical instrument +msgid "guitar" msgstr "" -#: js/SaveInterface.js:83 -msgid "Alternatively, open the file in Music Blocks using the Load project button." +#: js/utils/musicutils.js:1118 +#: js/utils/synthutils.js:86 +#.TRANS: musical instrument +msgid "acoustic guitar" msgstr "" -#: js/SaveInterface.js:85 -msgid "Project Code" +#: js/utils/musicutils.js:1119 +#: js/utils/synthutils.js:88 +#.TRANS: musical instrument +msgid "flute" msgstr "" -#: js/SaveInterface.js:87 -msgid "This code stores data about the blocks in a project." +#: js/utils/musicutils.js:1120 +#: js/utils/synthutils.js:90 +#.TRANS: musical instrument +msgid "clarinet" msgstr "" -#: js/SaveInterface.js:89 -msgid "Show" +#: js/utils/musicutils.js:1121 +#: js/utils/synthutils.js:92 +#.TRANS: musical instrument +msgid "saxophone" msgstr "" -#: js/SaveInterface.js:91 -msgid "Hide" +#: js/utils/musicutils.js:1122 +#: js/utils/synthutils.js:94 +#.TRANS: musical instrument +msgid "tuba" msgstr "" -#: js/SaveInterface.js:197 -#: js/SaveInterface.js:58 -msgid "No description provided" +#: js/utils/musicutils.js:1123 +#: js/utils/synthutils.js:96 +#.TRANS: musical instrument +msgid "trumpet" msgstr "" -#: js/SaveInterface.js:332 -msgid "Your recording is in progress." +#: js/utils/musicutils.js:1124 +#: js/utils/synthutils.js:98 +#.TRANS: musical instrument +msgid "oboe" msgstr "" -#: js/SaveInterface.js:401 -#.TRANS: File name prompt for save as Lilypond -msgid "File name" +#: js/utils/musicutils.js:1125 +#: js/utils/synthutils.js:100 +#.TRANS: musical instrument +msgid "trombone" msgstr "" -#: js/SaveInterface.js:403 -#: js/StringHelper.js:39 -#.TRANS: Project title prompt for save as Lilypond -msgid "Project title" +#: js/utils/musicutils.js:1126 +#: js/utils/synthutils.js:116 +#.TRANS: polytone synthesizer +msgid "electronic synth" msgstr "" -#: js/SaveInterface.js:405 -#.TRANS: Project title prompt for save as Lilypond -msgid "Project author" +#: js/utils/musicutils.js:1127 +#: js/utils/synthutils.js:118 +#.TRANS: simple monotone synthesizer +msgid "simple 1" msgstr "" -#: js/SaveInterface.js:407 -#.TRANS: MIDI prompt for save as Lilypond -msgid "Include MIDI output?" +#: js/utils/musicutils.js:1128 +msgid "simple 2" msgstr "" -#: js/SaveInterface.js:409 -#.TRANS: Guitar prompt for save as Lilypond -msgid "Include guitar tablature output?" +#: js/utils/musicutils.js:1129 +msgid "simple 3" msgstr "" -#: js/SaveInterface.js:411 -#.TRANS: Lilypond is a scripting language for generating sheet music -msgid "Save as Lilypond" +#: js/utils/musicutils.js:1130 +msgid "simple 4" msgstr "" -#: js/SaveInterface.js:426 -#: js/EnsembleBlocks.js:75 -#: js/EnsembleBlocks.js:154 -#: js/EnsembleBlocks.js:216 -#: js/EnsembleBlocks.js:302 -#: js/EnsembleBlocks.js:348 -#: js/EnsembleBlocks.js:389 -#: js/EnsembleBlocks.js:441 -#: js/EnsembleBlocks.js:490 -#: js/EnsembleBlocks.js:536 -#: js/EnsembleBlocks.js:583 -#: js/EnsembleBlocks.js:637 -#: js/EnsembleBlocks.js:753 -#: js/EnsembleBlocks.js:840 -#: js/EnsembleBlocks.js:899 -#: js/EnsembleBlocks.js:942 -#: js/EnsembleBlocks.js:1212 -#: js/EnsembleBlocks.js:1280 -#.TRANS: default project author when saving as Lilypond -msgid "Mr. Mouse" +#: js/utils/musicutils.js:1131 +#: js/utils/synthutils.js:58 +#: js/blocks/DrumBlocks.js:191 +#.TRANS: white noise synthesizer +msgid "white noise" msgstr "" -#: js/SaveInterface.js:573 -msgid "The Lilypond code is copied to clipboard. You can paste it here: " +#: js/utils/musicutils.js:1132 +#: js/utils/synthutils.js:60 +#.TRANS: brown noise synthesizer +msgid "brown noise" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:50 -#: js/RhythmBlockPaletteBlocks.js:232 -#.TRANS: rhythm block -#.TRANS: translate "rhythm1" as rhythm -msgid "rhythm1" +#: js/utils/musicutils.js:1133 +#: js/utils/synthutils.js:62 +#.TRANS: pink noise synthesizer +msgid "pink noise" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:70 -#: js/RhythmBlockPaletteBlocks.js:251 -#: js/RhythmBlockPaletteBlocks.js:484 -#: js/RhythmBlockPaletteBlocks.js:553 -#: js/RhythmBlockPaletteBlocks.js:874 -msgid "number of notes" +#: js/utils/musicutils.js:1135 +#: js/utils/synthutils.js:148 +#: js/widgets/rhythmruler.js:2057 +#: js/widgets/rhythmruler.js:2319 +#.TRANS: musical instrument +msgid "snare drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:126 -msgid "polyphonic rhythm" +#: js/utils/musicutils.js:1136 +#: js/utils/synthutils.js:150 +#.TRANS: musical instrument +msgid "kick drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:218 -msgid "The Rhythm block is used to generate rhythm patterns." +#: js/utils/musicutils.js:1137 +#: js/utils/synthutils.js:152 +#.TRANS: musical instrument +msgid "tom tom" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:279 -msgid "1/64 note" +#: js/utils/musicutils.js:1138 +#: js/utils/synthutils.js:154 +#.TRANS: musical instrument +msgid "floor tom" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:303 -msgid "1/32 note" +#: js/utils/musicutils.js:1139 +#: js/utils/synthutils.js:156 +#.TRANS: musical instrument +msgid "bass drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:331 -msgid "1/16 note" +#: js/utils/musicutils.js:1140 +#: js/utils/synthutils.js:158 +#.TRANS: a drum made from an inverted cup +msgid "cup drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:359 -msgid "eighth note" +#: js/utils/musicutils.js:1141 +#: js/utils/synthutils.js:160 +#.TRANS: musical instrument +msgid "darbuka drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:387 -msgid "quarter note" +#: js/utils/musicutils.js:1142 +#: js/utils/synthutils.js:164 +#.TRANS: musical instrument +msgid "hi hat" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:415 -msgid "half note" +#: js/utils/musicutils.js:1143 +#: js/utils/synthutils.js:166 +#.TRANS: a small metal bell +msgid "ride bell" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:443 -msgid "whole note" +#: js/utils/musicutils.js:1144 +#: js/utils/synthutils.js:168 +#.TRANS: musical instrument +msgid "cow bell" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:481 -#: js/RhythmBlockPaletteBlocks.js:550 -#: js/RhythmBlockPaletteBlocks.js:601 -#.TRANS: A tuplet is a note value divided into irregular time values. -msgid "tuplet" +#: js/utils/musicutils.js:1145 +msgid "japanese drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:767 -msgid "septuplet" +#: js/utils/musicutils.js:1146 +#: js/utils/synthutils.js:174 +#.TRANS: musical instrument +msgid "japanese bell" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:795 -msgid "quintuplet" +#: js/utils/musicutils.js:1147 +#: js/utils/synthutils.js:170 +#.TRANS: musical instrument +msgid "triangle bell" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:823 -msgid "triplet" +#: js/utils/musicutils.js:1148 +#: js/utils/synthutils.js:172 +#.TRANS: musical instrument +msgid "finger cymbals" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:850 -msgid "simple tuplet" +#: js/utils/musicutils.js:1149 +#: js/utils/synthutils.js:176 +#.TRANS: a musically tuned set of bells +msgid "chime" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:860 -msgid "Tuplets are a collection of notes that get scaled to a specific duration." +#: js/utils/musicutils.js:1150 +#: js/utils/synthutils.js:178 +#.TRANS: a musical instrument +msgid "gong" msgstr "" -#: js/WidgetBlocks.js:71 -#.TRANS: sound envelope (ADSR) -msgid "envelope" +#: js/utils/musicutils.js:1151 +#: js/utils/synthutils.js:180 +#.TRANS: sound effect +msgid "clang" msgstr "" -#: js/WidgetBlocks.js:79 -#.TRANS: Attack time is the time taken for initial run-up of level from nil to peak, beginning when the key is first pressed. -msgid "attack" +#: js/utils/musicutils.js:1152 +#: js/utils/synthutils.js:182 +#.TRANS: sound effect +msgid "crash" msgstr "" -#: js/WidgetBlocks.js:81 -#.TRANS: Decay time is the time taken for the subsequent run down from the attack level to the designated sustain level. -msgid "decay" +#: js/utils/musicutils.js:1153 +#: js/utils/synthutils.js:184 +#.TRANS: sound effect +msgid "bottle" msgstr "" -#: js/WidgetBlocks.js:83 -#.TRANS: Sustain level is the level during the main sequence of the sound's duration, until the key is released. -msgid "sustain" +#: js/utils/musicutils.js:1154 +#: js/utils/synthutils.js:186 +#.TRANS: sound effect +msgid "clap" msgstr "" -#: js/WidgetBlocks.js:85 -#.TRANS: Release time is the time taken for the level to decay from the sustain level to zero after the key is released. -msgid "release" +#: js/utils/musicutils.js:1155 +#: js/utils/synthutils.js:188 +#.TRANS: sound effect +msgid "slap" msgstr "" -#: js/WidgetBlocks.js:96 -msgid "Attack value should be from 0 to 100." +#: js/utils/musicutils.js:1156 +#: js/utils/synthutils.js:190 +#.TRANS: sound effect +msgid "splash" msgstr "" -#: js/WidgetBlocks.js:99 -msgid "Decay value should be from 0 to 100." +#: js/utils/musicutils.js:1157 +#: js/utils/synthutils.js:192 +#.TRANS: sound effect +msgid "bubbles" msgstr "" -#: js/WidgetBlocks.js:102 -msgid "Sustain value should be from 0 to 100." +#: js/utils/musicutils.js:1158 +#: js/utils/synthutils.js:194 +#.TRANS: sound effect +msgid "raindrop" msgstr "" -#: js/WidgetBlocks.js:105 -msgid "Release value should be from 0-100." +#: js/utils/musicutils.js:1159 +#: js/utils/synthutils.js:196 +#.TRANS: animal sound effect +msgid "cat" msgstr "" -#: js/WidgetBlocks.js:121 -msgid "You are adding multiple envelope blocks." +#: js/utils/musicutils.js:1160 +#: js/utils/synthutils.js:198 +#.TRANS: animal sound effect +msgid "cricket" msgstr "" -#: js/WidgetBlocks.js:144 -#.TRANS: a filter removes some unwanted components from a signal -msgid "filter" +#: js/utils/musicutils.js:1161 +#: js/utils/synthutils.js:200 +#.TRANS: animal sound effect +msgid "dog" msgstr "" -#: js/WidgetBlocks.js:149 -#: js/musicutils.js:706 -#: js/musicutils.js:1105 -#.TRANS: highpass filter -msgid "highpass" +#: js/utils/musicutils.js:1163 +#: js/utils/synthutils.js:102 +#.TRANS: musical instrument +msgid "banjo" msgstr "" -#: js/WidgetBlocks.js:152 -#: js/ToneBlocks.js:42 -#: js/timbre.js:1558 -#: js/timbre.js:1808 -#.TRANS: type of filter, e.g., lowpass, highpass, etc. -#.TRANS: there are different types (sine, triangle, square...) of oscillators. -msgid "type" +#: js/utils/musicutils.js:1164 +#: js/utils/synthutils.js:104 +#.TRANS: musical instrument +msgid "koto" msgstr "" -#: js/WidgetBlocks.js:154 -#: js/timbre.js:1818 -#.TRANS: rolloff is the steepness of a change in frequency. -msgid "rolloff" +#: js/utils/musicutils.js:1165 +#: js/utils/synthutils.js:106 +#.TRANS: musical instrument +msgid "dulcimer" msgstr "" -#: js/WidgetBlocks.js:155 -#: js/MediaBlocks.js:692 -#: js/temperament.js:382 -#: js/temperament.js:417 -#: js/temperament.js:477 -#: js/temperament.js:485 -#: js/temperament.js:1348 -#: js/timbre.js:1842 -msgid "frequency" +#: js/utils/musicutils.js:1166 +#: js/utils/synthutils.js:108 +#.TRANS: musical instrument +msgid "electric guitar" msgstr "" -#: js/WidgetBlocks.js:179 -#.TRANS: rolloff is the steepness of a change in frequency. -msgid "Rolloff value should be either -12, -24, -48, or -96 decibels/octave." +#: js/utils/musicutils.js:1167 +#: js/utils/synthutils.js:110 +#.TRANS: musical instrument +msgid "bassoon" msgstr "" -#: js/WidgetBlocks.js:211 -msgid "The Temperament tool is used to define custom tuning." +#: js/utils/musicutils.js:1168 +#: js/utils/synthutils.js:112 +#.TRANS: musical instrument +msgid "celeste" msgstr "" -#: js/WidgetBlocks.js:277 -#: js/sampler.js:329 -msgid "Upload a sample and adjust its pitch center." +#: js/utils/musicutils.js:1170 +#: js/widgets/temperament.js:787 +#.TRANS: musical temperament +msgid "equal" msgstr "" -#: js/WidgetBlocks.js:284 -#.TRANS: the speed at music is should be played. -msgid "sampler" +#: js/utils/musicutils.js:1172 +#.TRANS: musical temperament +msgid "Pythagorean" msgstr "" -#: js/WidgetBlocks.js:329 -#: js/WidgetBlocks.js:334 -#: js/IntervalsBlocks.js:928 -#: js/VolumeBlocks.js:411 -#: js/ToneBlocks.js:946 -#: js/VolumeActions.js:218 -#: js/musicutils.js:704 -#: js/musicutils.js:755 -#: js/musicutils.js:798 -#: js/musicutils.js:820 -#: js/musicutils.js:1136 -#: js/synthutils.js:118 -#: js/modewidget.js:919 -#.TRANS: customize voice -msgid "custom" +#: js/utils/musicutils.js:1174 +#.TRANS: musical temperament +msgid "just intonation" msgstr "" -#: js/WidgetBlocks.js:432 -msgid "The Meter block opens a tool to select strong beats for the meter." +#: js/utils/musicutils.js:1176 +#.TRANS: musical temperament +msgid "meantone" msgstr "" -#: js/WidgetBlocks.js:473 -msgid "The oscilloscope block opens a tool to visualize waveforms." +#: js/utils/musicutils.js:1193 +msgid "major 7th" msgstr "" -#: js/WidgetBlocks.js:478 -msgid "oscilloscope" +#: js/utils/musicutils.js:1194 +msgid "minor 7th" msgstr "" -#: js/WidgetBlocks.js:530 -msgid "The Custom mode block opens a tool to explore musical mode (the spacing of the notes in a scale)." +#: js/utils/musicutils.js:1195 +msgid "dominant 7th" msgstr "" -#: js/WidgetBlocks.js:536 -#.TRANS: musical mode is the pattern of half-steps in an octave, e.g., Major or Minor modes -msgid "custom mode" +#: js/utils/musicutils.js:1196 +msgid "minor-major 7th" msgstr "" -#: js/WidgetBlocks.js:570 -msgid "The Tempo block opens a metronome to visualize the beat." +#: js/utils/musicutils.js:1197 +msgid "fully-diminished 7th" msgstr "" -#: js/WidgetBlocks.js:617 -msgid "The Arpeggio Widget is used to compose chord sequences." +#: js/utils/musicutils.js:1198 +msgid "half-diminished 7th" msgstr "" -#: js/WidgetBlocks.js:623 -#: js/IntervalsBlocks.js:683 -msgid "arpeggio" +#: js/utils/musicutils.js:1557 +#: js/utils/musicutils.js:1569 +msgid "Equal (12EDO)" msgstr "" -#: js/WidgetBlocks.js:677 -msgid "The Pitch drum matrix is used to map pitches to drum sounds." +#: js/utils/musicutils.js:1558 +#: js/utils/musicutils.js:1570 +msgid "5-limit Just Intonation" msgstr "" -#: js/WidgetBlocks.js:682 -#.TRANS: makes a mapping between pitches and drum sounds -msgid "pitch-drum mapper" +#: js/utils/musicutils.js:1559 +#: js/utils/musicutils.js:1571 +msgid "Pythagorean (3-limit JI)" msgstr "" -#: js/WidgetBlocks.js:724 -msgid "You must have at least one pitch block and one drum block in the matrix." +#: js/utils/musicutils.js:1560 +#: js/utils/musicutils.js:1561 +#: js/utils/musicutils.js:1572 +#: js/utils/musicutils.js:1573 +msgid "Meantone" msgstr "" -#: js/WidgetBlocks.js:746 -msgid "The Pitch slider tool to is used to generate pitches at selected frequencies." +#: js/utils/musicutils.js:1574 +msgid "Custom" msgstr "" -#: js/WidgetBlocks.js:751 -#.TRANS: widget to generate pitches using a slider -msgid "pitch slider" +#: js/utils/musicutils.js:5387 +#: js/utils/musicutils.js:5430 +msgid "current" msgstr "" -#: js/WidgetBlocks.js:788 -msgid "chromatic keyboard" +#: js/utils/musicutils.js:5390 +#: js/utils/musicutils.js:5421 +msgid "next" msgstr "" -#: js/WidgetBlocks.js:815 -#: js/WidgetBlocks.js:874 -#.TRANS: widget to generate pitches using a slider -msgid "music keyboard" +#: js/utils/musicutils.js:5393 +#: js/utils/musicutils.js:5426 +msgid "previous" msgstr "" -#: js/WidgetBlocks.js:859 -#: js/WidgetBlocks.js:866 -msgid "The Music keyboard block opens a piano keyboard that can be used to create notes." +#: js/utils/synthutils.js:120 +#.TRANS: simple monotone synthesizer +msgid "simple-2" msgstr "" -#: js/WidgetBlocks.js:910 -msgid "The Pitch staircase tool to is used to generate pitches from a given ratio." +#: js/utils/synthutils.js:122 +#.TRANS: simple monotone synthesizer +msgid "simple-3" msgstr "" -#: js/WidgetBlocks.js:917 -#.TRANS: generate a progressive sequence of pitches -msgid "pitch staircase" +#: js/utils/synthutils.js:124 +#.TRANS: simple monotone synthesizer +msgid "simple-4" msgstr "" -#: js/WidgetBlocks.js:982 -msgid "The Rhythm Maker block opens a tool to create drum machines." +#: js/utils/synthutils.js:162 +#.TRANS: musical instrument +msgid "taiko" msgstr "" -#: js/WidgetBlocks.js:1036 -msgid "G major scale" +#: js/blocks/ActionBlocks.js:58 +msgid "The Return block will return a value from an action." msgstr "" -#: js/WidgetBlocks.js:1064 -msgid "C major scale" +#: js/blocks/ActionBlocks.js:75 +msgid "return" msgstr "" -#: js/WidgetBlocks.js:1097 -msgid "The Phrase Maker block opens a tool to create musical phrases." +#: js/blocks/ActionBlocks.js:128 +msgid "The Return to URL block will return a value to a webpage." msgstr "" -#: js/WidgetBlocks.js:1104 -#.TRANS: assigns pitch to a sequence of beats to generate a melody -msgid "phrase maker" +#: js/blocks/ActionBlocks.js:145 +msgid "return to URL" msgstr "" -#: js/WidgetBlocks.js:1168 -msgid "You must have at least one pitch block and one rhythm block in the matrix." +#: js/blocks/ActionBlocks.js:233 +#: js/blocks/ActionBlocks.js:290 +#: js/blocks/ActionBlocks.js:501 +#: js/blocks/ActionBlocks.js:688 +msgid "The Calculate block returns a value calculated by an action." msgstr "" -#: js/WidgetBlocks.js:1220 -msgid "The Status block opens a tool for inspecting the status of Music Blocks as it is running." +#: js/blocks/ActionBlocks.js:251 +#: js/blocks/ActionBlocks.js:517 +#: js/blocks/ActionBlocks.js:707 +msgid "calculate" msgstr "" -#: js/IntervalsBlocks.js:45 -msgid "set temperament" +#: js/blocks/ActionBlocks.js:376 +#: js/blocks/ActionBlocks.js:593 +#: js/blocks/ActionBlocks.js:942 +#: js/blocks/ActionBlocks.js:1389 +#.TRANS: do is the do something or take an action. +msgid "The Do block is used to initiate an action." msgstr "" -#: js/IntervalsBlocks.js:63 -#: js/MediaBlocks.js:746 -#: js/PitchBlocks.js:657 -#: js/PitchBlocks.js:933 -#: js/PitchBlocks.js:972 -#: js/PitchBlocks.js:1005 -#: js/PitchBlocks.js:1166 -#: js/PitchBlocks.js:1679 -#: js/PitchBlocks.js:1720 -#: js/PitchBlocks.js:1827 -#: js/ToneBlocks.js:1025 -#.TRANS: adjusts the shift up or down by one octave (twelve half-steps in the interval between two notes, one having twice or half the frequency in Hz of the other.) -msgid "octave" +#: js/blocks/ActionBlocks.js:390 +#: js/blocks/ActionBlocks.js:610 +#: js/blocks/ActionBlocks.js:959 +#: js/blocks/ActionBlocks.js:1048 +#: js/blocks/MeterBlocks.js:769 +msgid "do1" msgstr "" -#: js/IntervalsBlocks.js:99 -msgid "The Temperament name block is used to select a tuning method." +#: js/blocks/ActionBlocks.js:390 +#: js/blocks/ActionBlocks.js:610 +#: js/blocks/ActionBlocks.js:959 +#: js/blocks/ActionBlocks.js:1048 +#: js/blocks/FlowBlocks.js:742 +#: js/blocks/FlowBlocks.js:822 +#: js/blocks/MeterBlocks.js:769 +msgid "do" msgstr "" -#: js/IntervalsBlocks.js:161 -msgid "doubly" +#: js/blocks/ActionBlocks.js:791 +#: js/blocks/ActionBlocks.js:865 +msgid "The Arg block contains the value of an argument passed to an action." msgstr "" -#: js/IntervalsBlocks.js:166 -msgid "The Doubly block will double the size of an interval." +#: js/blocks/ActionBlocks.js:806 +#: js/blocks/ActionBlocks.js:878 +msgid "arg" msgstr "" -#: js/IntervalsBlocks.js:262 -msgid "interval number" +#: js/blocks/ActionBlocks.js:836 +#: js/blocks/ActionBlocks.js:900 +#: js/blocks/ActionBlocks.js:908 +msgid "Invalid argument" msgstr "" -#: js/IntervalsBlocks.js:330 -#.TRANS: measure the distance between two pitches in semi-tones -msgid "semi-tone interval measure" +#: js/blocks/ActionBlocks.js:944 +msgid "In the example, it is used with the One of block to choose a random phase." msgstr "" -#: js/IntervalsBlocks.js:397 -#: js/IntervalsBlocks.js:513 -msgid "You must use two pitch blocks when measuring an interval." +#: js/blocks/ActionBlocks.js:1019 +#: js/blocks/ActionBlocks.js:1026 +msgid "The Listen block is used to listen for an event such as a mouse click." msgstr "" -#: js/IntervalsBlocks.js:439 -msgid "The Scalar interval block measures the distance between two notes in the current key and mode." +#: js/blocks/ActionBlocks.js:1028 +msgid "When the event happens, an action is taken." msgstr "" -#: js/IntervalsBlocks.js:445 -#.TRANS: measure the distance between two pitches in steps of musical scale -msgid "scalar interval measure" +#: js/blocks/ActionBlocks.js:1045 +msgid "on" msgstr "" -#: js/IntervalsBlocks.js:592 -#: js/musicutils.js:637 -#: js/musicutils.js:908 -#.TRANS: perfect is a music term related to intervals -msgid "perfect" +#: js/blocks/ActionBlocks.js:1048 +#: js/blocks/ActionBlocks.js:1049 +#: js/blocks/ActionBlocks.js:1153 +msgid "event" msgstr "" -#: js/IntervalsBlocks.js:621 -msgid "In the figure, we add sol# to sol." +#: js/blocks/ActionBlocks.js:1133 +msgid "The Broadcast block is used to trigger an event." msgstr "" -#: js/IntervalsBlocks.js:627 -#: js/OrnamentBlocks.js:220 -#.TRANS: calculate a relative step between notes based on semi-tones -msgid "semi-tone interval" +#: js/blocks/ActionBlocks.js:1151 +msgid "broadcast" msgstr "" -#: js/IntervalsBlocks.js:676 -msgid "The output of the example is: do, mi, sol, sol, ti, mi" +#: js/blocks/ActionBlocks.js:1208 +msgid "Each Start block is a separate voice." msgstr "" -#: js/IntervalsBlocks.js:735 -msgid "The Chord block calculates common chords." +#: js/blocks/ActionBlocks.js:1304 +msgid "It is often used for storing a phrase of music that is repeated." msgstr "" -#: js/IntervalsBlocks.js:737 -msgid "In the figure, we generate a C-major chord." +#: js/blocks/ActionBlocks.js:1495 +msgid "define temperament" msgstr "" -#: js/IntervalsBlocks.js:742 -msgid "chord" +#: js/blocks/BooleanBlocks.js:44 +msgid "The Not block is the logical not operator." msgstr "" -#: js/IntervalsBlocks.js:794 -msgid "The Ratio Interval block calculates an interval based on a ratio." -msgstr "" +#: js/blocks/BooleanBlocks.js:62 +msgid "not" +msgstr "இல்லை" -#: js/IntervalsBlocks.js:799 -msgid "ratio interval" +#: js/blocks/BooleanBlocks.js:134 +msgid "The And block is the logical and operator." msgstr "" -#: js/IntervalsBlocks.js:868 -msgid "In the figure, we add la to sol." +#: js/blocks/BooleanBlocks.js:152 +msgid "and" +msgstr "உடன்" + +#: js/blocks/BooleanBlocks.js:218 +msgid "The Or block is the logical or operator." msgstr "" -#: js/IntervalsBlocks.js:924 -#.TRANS: define a custom mode -msgid "define mode" +#: js/blocks/BooleanBlocks.js:236 +msgid "or" +msgstr "அல்லது" + +#: js/blocks/BooleanBlocks.js:302 +msgid "The XOR block is the logical XOR operator." msgstr "" -#: js/IntervalsBlocks.js:977 -msgid "movable Do" +#: js/blocks/BooleanBlocks.js:320 +msgid "xor" msgstr "" -#: js/IntervalsBlocks.js:1028 -#.TRANS: mode length is the number of notes in the mode, e.g., 7 for major and minor scales; 12 for chromatic scales -msgid "mode length" +#: js/blocks/BooleanBlocks.js:808 +msgid "The Equal block returns True if the two numbers are equal." msgstr "" -#: js/IntervalsBlocks.js:1037 -msgid "The Mode length block is the number of notes in the current scale." +#: js/blocks/BooleanBlocks.js:909 +msgid "The Not-equal-to block returns True if the two numbers are not equal to each other." msgstr "" -#: js/IntervalsBlocks.js:1039 -msgid "Most Western scales have 7 notes." +#: js/blocks/BooleanBlocks.js:1008 +msgid "The Boolean block is used to specify true or false." msgstr "" -#: js/IntervalsBlocks.js:1088 -#.TRANS: the mode in music is 'major', 'minor', etc. -msgid "current mode" +#: js/blocks/BoxesBlocks.js:53 +#: js/blocks/BoxesBlocks.js:59 +msgid "The Add-to block is used to add to the value stored in a box." msgstr "" -#: js/IntervalsBlocks.js:1141 -#.TRANS: the key is a group of pitches with which a music composition is created -msgid "current key" +#: js/blocks/BoxesBlocks.js:61 +msgid "It can also be used with other blocks such as Color and Pen size." msgstr "" -#: js/IntervalsBlocks.js:1193 -#: js/IntervalsBlocks.js:1238 -#.TRANS: set the key and mode, e.g. C Major -msgid "set key" +#: js/blocks/BoxesBlocks.js:73 +msgid "add" msgstr "" -#: js/IntervalsBlocks.js:1247 -#: js/IntervalsBlocks.js:1253 -msgid "The Set key block is used to set the key and mode," +#: js/blocks/BoxesBlocks.js:75 +#: js/widgets/temperament.js:857 +msgid "to" msgstr "" -#: js/IntervalsBlocks.js:1253 -msgid "eg C Major" +#: js/blocks/BoxesBlocks.js:75 +#: js/blocks/BoxesBlocks.js:595 +#: js/blocks/HeapBlocks.js:544 +msgid "value1" msgstr "" -#: js/IntervalsBlocks.js:1266 -#: js/DictBlocks.js:215 -#: js/DictBlocks.js:216 -#: js/DictBlocks.js:289 -#: js/DictBlocks.js:290 -#: js/DictBlocks.js:357 -#: js/DictBlocks.js:430 -#: js/DictBlocks.js:431 -#.TRANS: key, e.g., C in C Major -msgid "key" +#: js/blocks/BoxesBlocks.js:118 +msgid "Block does not support incrementing." msgstr "" -#: js/ActionBlocks.js:58 -msgid "The Return block will return a value from an action." +#: js/blocks/BoxesBlocks.js:152 +msgid "The Add-1-to block adds one to the value stored in a box." msgstr "" -#: js/ActionBlocks.js:75 -msgid "return" +#: js/blocks/BoxesBlocks.js:163 +msgid "add 1 to" msgstr "" -#: js/ActionBlocks.js:128 -msgid "The Return to URL block will return a value to a webpage." +#: js/blocks/BoxesBlocks.js:211 +msgid "The Subtract-1-from block subtracts one from the value stored in a box." msgstr "" -#: js/ActionBlocks.js:145 -msgid "return to URL" +#: js/blocks/BoxesBlocks.js:222 +msgid "subtract 1 from" msgstr "" -#: js/ActionBlocks.js:233 -#: js/ActionBlocks.js:290 -#: js/ActionBlocks.js:501 -#: js/ActionBlocks.js:688 -msgid "The Calculate block returns a value calculated by an action." +#: js/blocks/BoxesBlocks.js:270 +#: js/blocks/BoxesBlocks.js:387 +msgid "The Box block returns the value stored in a box." msgstr "" -#: js/ActionBlocks.js:251 -#: js/ActionBlocks.js:517 -#: js/ActionBlocks.js:707 -msgid "calculate" +#: js/blocks/BoxesBlocks.js:500 +#: js/blocks/BoxesBlocks.js:576 +msgid "The Store in block will store a value in a box." msgstr "" -#: js/ActionBlocks.js:376 -#: js/ActionBlocks.js:593 -#: js/ActionBlocks.js:942 -#: js/ActionBlocks.js:1389 -#.TRANS: do is the do something or take an action. -msgid "The Do block is used to initiate an action." +#: js/blocks/BoxesBlocks.js:595 +#: js/blocks/EnsembleBlocks.js:391 +#: js/blocks/EnsembleBlocks.js:402 +msgid "name1" msgstr "" -#: js/ActionBlocks.js:390 -#: js/ActionBlocks.js:610 -#: js/ActionBlocks.js:959 -#: js/ActionBlocks.js:1048 -#: js/MeterBlocks.js:769 -msgid "do1" +#: js/blocks/BoxesBlocks.js:652 +msgid "The Box2 block returns the value stored in Box2." msgstr "" -#: js/ActionBlocks.js:390 -#: js/ActionBlocks.js:610 -#: js/ActionBlocks.js:959 -#: js/ActionBlocks.js:1048 -#: js/FlowBlocks.js:742 -#: js/FlowBlocks.js:822 -#: js/MeterBlocks.js:769 -msgid "do" +#: js/blocks/BoxesBlocks.js:703 +msgid "The Store in Box2 block is used to store a value in Box2." msgstr "" -#: js/ActionBlocks.js:791 -#: js/ActionBlocks.js:865 -msgid "The Arg block contains the value of an argument passed to an action." +#: js/blocks/BoxesBlocks.js:715 +msgid "store in box2" msgstr "" -#: js/ActionBlocks.js:806 -#: js/ActionBlocks.js:878 -msgid "arg" +#: js/blocks/BoxesBlocks.js:761 +msgid "The Box1 block returns the value stored in Box1." msgstr "" -#: js/ActionBlocks.js:836 -#: js/ActionBlocks.js:900 -#: js/ActionBlocks.js:908 -msgid "Invalid argument" +#: js/blocks/BoxesBlocks.js:812 +msgid "The Store in Box1 block is used to store a value in Box1." msgstr "" -#: js/ActionBlocks.js:944 -msgid "In the example, it is used with the One of block to choose a random phase." +#: js/blocks/BoxesBlocks.js:826 +msgid "store in box1" msgstr "" -#: js/ActionBlocks.js:1019 -#: js/ActionBlocks.js:1026 -msgid "The Listen block is used to listen for an event such as a mouse click." +#: js/blocks/DictBlocks.js:77 +msgid "show dictionary" msgstr "" -#: js/ActionBlocks.js:1028 -msgid "When the event happens, an action is taken." +#: js/blocks/DictBlocks.js:80 +#: js/blocks/DictBlocks.js:145 +#: js/blocks/DictBlocks.js:216 +#: js/blocks/DictBlocks.js:290 +#: js/blocks/ProgramBlocks.js:396 +#: js/blocks/ProgramBlocks.js:501 +#: js/blocks/ProgramBlocks.js:664 +msgid "My Dictionary" msgstr "" -#: js/ActionBlocks.js:1045 -msgid "on" +#: js/blocks/DictBlocks.js:129 +msgid "The Dictionary block returns a dictionary." msgstr "" -#: js/ActionBlocks.js:1048 -#: js/ActionBlocks.js:1049 -#: js/ActionBlocks.js:1153 -msgid "event" +#: js/blocks/DictBlocks.js:197 +#: js/blocks/DictBlocks.js:339 +msgid "The Get-dict block returns a value in the dictionary for a specified key." msgstr "" -#: js/ActionBlocks.js:1133 -msgid "The Broadcast block is used to trigger an event." +#: js/blocks/DictBlocks.js:212 +#: js/blocks/DictBlocks.js:354 +#.TRANS: retrieve a value from the dictionary with a given key +msgid "get value" msgstr "" -#: js/ActionBlocks.js:1151 -msgid "broadcast" +#: js/blocks/DictBlocks.js:215 +#: js/blocks/DictBlocks.js:216 +#: js/blocks/DictBlocks.js:289 +#: js/blocks/DictBlocks.js:290 +#: js/blocks/DictBlocks.js:357 +#: js/blocks/DictBlocks.js:430 +#: js/blocks/DictBlocks.js:431 +msgid "key2" msgstr "" -#: js/ActionBlocks.js:1208 -msgid "Each Start block is a separate voice." +#: js/blocks/DictBlocks.js:215 +#: js/blocks/DictBlocks.js:216 +#: js/blocks/DictBlocks.js:289 +#: js/blocks/DictBlocks.js:290 +#: js/blocks/DictBlocks.js:357 +#: js/blocks/DictBlocks.js:430 +#: js/blocks/DictBlocks.js:431 +#: js/blocks/IntervalsBlocks.js:1462 +#.TRANS: key, e.g., C in C Major +msgid "key" msgstr "" -#: js/ActionBlocks.js:1304 -msgid "It is often used for storing a phrase of music that is repeated." +#: js/blocks/DictBlocks.js:271 +#: js/blocks/DictBlocks.js:411 +msgid "The Set-dict block sets a value in the dictionary for a specified key." msgstr "" -#: js/ActionBlocks.js:1495 -msgid "define temperament" +#: js/blocks/DictBlocks.js:286 +#: js/blocks/DictBlocks.js:427 +#.TRANS: set a value in the dictionary for a given key +msgid "set value" msgstr "" -#: js/EnsembleBlocks.js:66 +#: js/blocks/EnsembleBlocks.js:66 msgid "mouse index heap" msgstr "" -#: js/EnsembleBlocks.js:68 +#: js/blocks/EnsembleBlocks.js:68 msgid "The Mouse index heap block returns a value in the heap at a specified location for a specified mouse." msgstr "" -#: js/EnsembleBlocks.js:77 -#: js/EnsembleBlocks.js:1080 +#: js/blocks/EnsembleBlocks.js:77 +#: js/blocks/EnsembleBlocks.js:1080 msgid "mouse name" msgstr "" -#: js/EnsembleBlocks.js:77 -#: js/EnsembleBlocks.js:92 -#: js/HeapBlocks.js:544 +#: js/blocks/EnsembleBlocks.js:77 +#: js/blocks/EnsembleBlocks.js:92 +#: js/blocks/HeapBlocks.js:544 #.TRANS: value1 is a numeric value (JAPANESE ONLY) msgid "index" msgstr "" -#: js/EnsembleBlocks.js:80 +#: js/blocks/EnsembleBlocks.js:80 msgid "turtle index heap" msgstr "" -#: js/EnsembleBlocks.js:82 +#: js/blocks/EnsembleBlocks.js:82 msgid "The Turtle index heap block returns a value in the heap at a specified location for a specified turtle." msgstr "" -#: js/EnsembleBlocks.js:90 -#: js/EnsembleBlocks.js:167 -#: js/EnsembleBlocks.js:230 -#: js/EnsembleBlocks.js:316 -#: js/EnsembleBlocks.js:362 -#: js/EnsembleBlocks.js:400 -#: js/EnsembleBlocks.js:454 -#: js/EnsembleBlocks.js:504 -#: js/EnsembleBlocks.js:550 -#: js/EnsembleBlocks.js:597 -#: js/EnsembleBlocks.js:651 -#: js/EnsembleBlocks.js:763 -#: js/EnsembleBlocks.js:854 -#: js/EnsembleBlocks.js:915 -#: js/EnsembleBlocks.js:955 -#: js/EnsembleBlocks.js:1219 -#: js/EnsembleBlocks.js:1293 +#: js/blocks/EnsembleBlocks.js:90 +#: js/blocks/EnsembleBlocks.js:167 +#: js/blocks/EnsembleBlocks.js:230 +#: js/blocks/EnsembleBlocks.js:316 +#: js/blocks/EnsembleBlocks.js:362 +#: js/blocks/EnsembleBlocks.js:400 +#: js/blocks/EnsembleBlocks.js:454 +#: js/blocks/EnsembleBlocks.js:504 +#: js/blocks/EnsembleBlocks.js:550 +#: js/blocks/EnsembleBlocks.js:597 +#: js/blocks/EnsembleBlocks.js:651 +#: js/blocks/EnsembleBlocks.js:763 +#: js/blocks/EnsembleBlocks.js:854 +#: js/blocks/EnsembleBlocks.js:915 +#: js/blocks/EnsembleBlocks.js:955 +#: js/blocks/EnsembleBlocks.js:1219 +#: js/blocks/EnsembleBlocks.js:1293 #.TRANS: Yertle is the name of a turtle. msgid "Yertle" msgstr "" -#: js/EnsembleBlocks.js:92 -#: js/EnsembleBlocks.js:1089 +#: js/blocks/EnsembleBlocks.js:92 +#: js/blocks/EnsembleBlocks.js:1089 msgid "turtle name" msgstr "" -#: js/EnsembleBlocks.js:122 -#: js/EnsembleBlocks.js:1197 -#: js/HeapBlocks.js:474 -#: js/HeapBlocks.js:572 +#: js/blocks/EnsembleBlocks.js:122 +#: js/blocks/EnsembleBlocks.js:1197 +#: js/blocks/HeapBlocks.js:474 +#: js/blocks/HeapBlocks.js:572 msgid "Index must be > 0." msgstr "" -#: js/EnsembleBlocks.js:127 -#: js/HeapBlocks.js:479 -#: js/HeapBlocks.js:577 +#: js/blocks/EnsembleBlocks.js:127 +#: js/blocks/HeapBlocks.js:479 +#: js/blocks/HeapBlocks.js:577 msgid "Maximum heap size is 1000." msgstr "" -#: js/EnsembleBlocks.js:145 +#: js/blocks/EnsembleBlocks.js:145 msgid "stop mouse" msgstr "" -#: js/EnsembleBlocks.js:147 +#: js/blocks/EnsembleBlocks.js:147 msgid "The Stop mouse block stops the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:158 +#: js/blocks/EnsembleBlocks.js:158 msgid "stop turtle" msgstr "" -#: js/EnsembleBlocks.js:160 +#: js/blocks/EnsembleBlocks.js:160 msgid "The Stop turtle block stops the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:184 -#: js/EnsembleBlocks.js:247 -#: js/EnsembleBlocks.js:413 -#: js/EnsembleBlocks.js:468 -#: js/EnsembleBlocks.js:706 -#: js/EnsembleBlocks.js:808 -#: js/EnsembleBlocks.js:870 -#: js/EnsembleBlocks.js:1190 -#: js/EnsembleBlocks.js:1253 +#: js/blocks/EnsembleBlocks.js:184 +#: js/blocks/EnsembleBlocks.js:247 +#: js/blocks/EnsembleBlocks.js:413 +#: js/blocks/EnsembleBlocks.js:468 +#: js/blocks/EnsembleBlocks.js:706 +#: js/blocks/EnsembleBlocks.js:808 +#: js/blocks/EnsembleBlocks.js:870 +#: js/blocks/EnsembleBlocks.js:1190 +#: js/blocks/EnsembleBlocks.js:1253 msgid "Cannot find mouse" msgstr "" -#: js/EnsembleBlocks.js:186 -#: js/EnsembleBlocks.js:249 -#: js/EnsembleBlocks.js:415 -#: js/EnsembleBlocks.js:470 -#: js/EnsembleBlocks.js:708 -#: js/EnsembleBlocks.js:810 -#: js/EnsembleBlocks.js:872 -#: js/EnsembleBlocks.js:1192 -#: js/EnsembleBlocks.js:1255 +#: js/blocks/EnsembleBlocks.js:186 +#: js/blocks/EnsembleBlocks.js:249 +#: js/blocks/EnsembleBlocks.js:415 +#: js/blocks/EnsembleBlocks.js:470 +#: js/blocks/EnsembleBlocks.js:708 +#: js/blocks/EnsembleBlocks.js:810 +#: js/blocks/EnsembleBlocks.js:872 +#: js/blocks/EnsembleBlocks.js:1192 +#: js/blocks/EnsembleBlocks.js:1255 msgid "Cannot find turtle" msgstr "" -#: js/EnsembleBlocks.js:206 +#: js/blocks/EnsembleBlocks.js:206 msgid "start mouse" msgstr "" -#: js/EnsembleBlocks.js:209 +#: js/blocks/EnsembleBlocks.js:209 msgid "The Start mouse block starts the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:220 +#: js/blocks/EnsembleBlocks.js:220 msgid "start turtle" msgstr "" -#: js/EnsembleBlocks.js:223 +#: js/blocks/EnsembleBlocks.js:223 msgid "The Start turtle block starts the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:256 +#: js/blocks/EnsembleBlocks.js:256 msgid "Mouse is already running." msgstr "" -#: js/EnsembleBlocks.js:258 +#: js/blocks/EnsembleBlocks.js:258 msgid "Turtle is already running." msgstr "" -#: js/EnsembleBlocks.js:282 +#: js/blocks/EnsembleBlocks.js:282 msgid "Cannot find start block" msgstr "" -#: js/EnsembleBlocks.js:292 +#: js/blocks/EnsembleBlocks.js:292 #.TRANS: pen color for this mouse msgid "mouse color" msgstr "" -#: js/EnsembleBlocks.js:294 +#: js/blocks/EnsembleBlocks.js:294 msgid "The Mouse color block returns the pen color of the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:306 +#: js/blocks/EnsembleBlocks.js:306 #.TRANS: pen color for this turtle msgid "turtle color" msgstr "" -#: js/EnsembleBlocks.js:308 +#: js/blocks/EnsembleBlocks.js:308 msgid "The Turtle color block returns the pen color of the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:338 +#: js/blocks/EnsembleBlocks.js:338 #.TRANS: heading (compass direction) for this mouse msgid "mouse heading" msgstr "" -#: js/EnsembleBlocks.js:340 +#: js/blocks/EnsembleBlocks.js:340 msgid "The Mouse heading block returns the heading of the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:352 +#: js/blocks/EnsembleBlocks.js:352 #.TRANS: heading (compass direction) for this turtle msgid "turtle heading" msgstr "" -#: js/EnsembleBlocks.js:354 +#: js/blocks/EnsembleBlocks.js:354 msgid "The Turtle heading block returns the heading of the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:384 -#: js/EnsembleBlocks.js:439 +#: js/blocks/EnsembleBlocks.js:384 +#: js/blocks/EnsembleBlocks.js:439 #.TRANS: set xy position for this mouse msgid "set mouse" msgstr "" -#: js/EnsembleBlocks.js:391 -#: js/EnsembleBlocks.js:402 -#: js/BoxesBlocks.js:595 -msgid "name1" -msgstr "" - -#: js/EnsembleBlocks.js:391 -#: js/EnsembleBlocks.js:402 -#: js/ProgramBlocks.js:881 -#: js/GraphicsBlocks.js:235 -#: js/GraphicsBlocks.js:313 -#: js/GraphicsBlocks.js:436 -#: js/GraphicsBlocks.js:487 -#: js/GraphicsBlocks.js:534 -#: js/GraphicsBlocks.js:750 +#: js/blocks/EnsembleBlocks.js:391 +#: js/blocks/EnsembleBlocks.js:402 +#: js/blocks/GraphicsBlocks.js:235 +#: js/blocks/GraphicsBlocks.js:313 +#: js/blocks/GraphicsBlocks.js:436 +#: js/blocks/GraphicsBlocks.js:487 +#: js/blocks/GraphicsBlocks.js:534 +#: js/blocks/GraphicsBlocks.js:750 +#: js/blocks/ProgramBlocks.js:881 msgid "x" msgstr "எக்ஸ்" -#: js/EnsembleBlocks.js:391 -#: js/EnsembleBlocks.js:402 -#: js/ProgramBlocks.js:881 -#: js/GraphicsBlocks.js:149 -#: js/GraphicsBlocks.js:313 -#: js/GraphicsBlocks.js:436 -#: js/GraphicsBlocks.js:487 -#: js/GraphicsBlocks.js:534 -#: js/GraphicsBlocks.js:750 +#: js/blocks/EnsembleBlocks.js:391 +#: js/blocks/EnsembleBlocks.js:402 +#: js/blocks/GraphicsBlocks.js:149 +#: js/blocks/GraphicsBlocks.js:313 +#: js/blocks/GraphicsBlocks.js:436 +#: js/blocks/GraphicsBlocks.js:487 +#: js/blocks/GraphicsBlocks.js:534 +#: js/blocks/GraphicsBlocks.js:750 +#: js/blocks/ProgramBlocks.js:881 msgid "y" msgstr "y" -#: js/EnsembleBlocks.js:395 -#: js/EnsembleBlocks.js:452 +#: js/blocks/EnsembleBlocks.js:395 +#: js/blocks/EnsembleBlocks.js:452 #.TRANS: set xy position for this turtle msgid "set turtle" msgstr "" -#: js/EnsembleBlocks.js:433 +#: js/blocks/EnsembleBlocks.js:433 msgid "The Set mouse block sends a stack of blocks to be run by the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:446 +#: js/blocks/EnsembleBlocks.js:446 msgid "The Set turtle block sends a stack of blocks to be run by the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:480 +#: js/blocks/EnsembleBlocks.js:480 #.TRANS: y position for this mouse msgid "mouse y" msgstr "" -#: js/EnsembleBlocks.js:482 +#: js/blocks/EnsembleBlocks.js:482 msgid "The Y mouse block returns the Y position of the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:494 +#: js/blocks/EnsembleBlocks.js:494 #.TRANS: y position for this turtle msgid "turtle y" msgstr "" -#: js/EnsembleBlocks.js:496 +#: js/blocks/EnsembleBlocks.js:496 msgid "The Y turtle block returns the Y position of the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:526 +#: js/blocks/EnsembleBlocks.js:526 #.TRANS: x position for this mouse msgid "mouse x" msgstr "" -#: js/EnsembleBlocks.js:528 +#: js/blocks/EnsembleBlocks.js:528 msgid "The X mouse block returns the X position of the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:540 +#: js/blocks/EnsembleBlocks.js:540 #.TRANS: x position for this turtle msgid "turtle x" msgstr "" -#: js/EnsembleBlocks.js:542 +#: js/blocks/EnsembleBlocks.js:542 msgid "The X turtle block returns the X position of the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:573 +#: js/blocks/EnsembleBlocks.js:573 #.TRANS: notes played by this mouse msgid "mouse notes played" msgstr "" -#: js/EnsembleBlocks.js:575 +#: js/blocks/EnsembleBlocks.js:575 msgid "The Mouse elapse notes block returns the number of notes played by the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:587 +#: js/blocks/EnsembleBlocks.js:587 #.TRANS: notes played by this turtle msgid "turtle notes played" msgstr "" -#: js/EnsembleBlocks.js:589 +#: js/blocks/EnsembleBlocks.js:589 msgid "The Turtle elapse notes block returns the number of notes played by the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:627 +#: js/blocks/EnsembleBlocks.js:627 #.TRANS: convert current note for this turtle to piano key (1-88) msgid "mouse pitch number" msgstr "" -#: js/EnsembleBlocks.js:629 +#: js/blocks/EnsembleBlocks.js:629 msgid "The Mouse pitch block returns the current pitch number being played by the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:641 +#: js/blocks/EnsembleBlocks.js:641 #.TRANS: convert current note for this turtle to piano key (1-88) msgid "turtle pitch number" msgstr "" -#: js/EnsembleBlocks.js:643 -msgid "The Turrle pitch block returns the current pitch number being played by the specified turtle." +#: js/blocks/EnsembleBlocks.js:643 +msgid "The Turtle pitch block returns the current pitch number being played by the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:747 -#: js/EnsembleBlocks.js:819 +#: js/blocks/EnsembleBlocks.js:747 +#: js/blocks/EnsembleBlocks.js:819 #.TRANS: note value is the duration of the note played by this mouse msgid "mouse note value" msgstr "" -#: js/EnsembleBlocks.js:757 +#: js/blocks/EnsembleBlocks.js:757 #.TRANS: note value is the duration of the note played by this turtle msgid "turtle note value" msgstr "" -#: js/EnsembleBlocks.js:830 +#: js/blocks/EnsembleBlocks.js:830 #.TRANS: sync is short for synchronization msgid "mouse sync" msgstr "" -#: js/EnsembleBlocks.js:832 +#: js/blocks/EnsembleBlocks.js:832 msgid "The Mouse sync block aligns the beat count between mice." msgstr "" -#: js/EnsembleBlocks.js:844 +#: js/blocks/EnsembleBlocks.js:844 #.TRANS: sync is short for synchronization msgid "turtle sync" msgstr "" -#: js/EnsembleBlocks.js:846 +#: js/blocks/EnsembleBlocks.js:846 msgid "The Turtle sync block aligns the beat count between turtles." msgstr "" -#: js/EnsembleBlocks.js:887 +#: js/blocks/EnsembleBlocks.js:887 msgid "The Found mouse block will return true if the specified mouse can be found." msgstr "" -#: js/EnsembleBlocks.js:893 +#: js/blocks/EnsembleBlocks.js:893 msgid "found mouse" msgstr "" -#: js/EnsembleBlocks.js:903 +#: js/blocks/EnsembleBlocks.js:903 msgid "The Found turtle block will return true if the specified turtle can be found." msgstr "" -#: js/EnsembleBlocks.js:909 +#: js/blocks/EnsembleBlocks.js:909 msgid "found turtle" msgstr "" -#: js/EnsembleBlocks.js:932 +#: js/blocks/EnsembleBlocks.js:932 msgid "new mouse" msgstr "" -#: js/EnsembleBlocks.js:934 +#: js/blocks/EnsembleBlocks.js:934 msgid "The New mouse block will create a new mouse." msgstr "" -#: js/EnsembleBlocks.js:945 +#: js/blocks/EnsembleBlocks.js:945 msgid "new turtle" msgstr "" -#: js/EnsembleBlocks.js:947 +#: js/blocks/EnsembleBlocks.js:947 msgid "The New turtle block will create a new turtle." msgstr "" -#: js/EnsembleBlocks.js:1011 +#: js/blocks/EnsembleBlocks.js:1011 msgid "set mouse color" msgstr "" -#: js/EnsembleBlocks.js:1014 +#: js/blocks/EnsembleBlocks.js:1014 msgid "The Set-mouse-color block is used to set the color of a mouse." msgstr "" -#: js/EnsembleBlocks.js:1020 +#: js/blocks/EnsembleBlocks.js:1020 msgid "set turtle color" msgstr "" -#: js/EnsembleBlocks.js:1023 +#: js/blocks/EnsembleBlocks.js:1023 msgid "The Set-turtle-color block is used to set the color of a turtle." msgstr "" -#: js/EnsembleBlocks.js:1083 +#: js/blocks/EnsembleBlocks.js:1083 msgid "The Mouse-name block returns the name of a mouse." msgstr "" -#: js/EnsembleBlocks.js:1092 -msgid "The Turtle-name block returns the name of a turtle." -msgstr "" - -#: js/EnsembleBlocks.js:1115 -msgid "mouse count" -msgstr "" - -#: js/EnsembleBlocks.js:1118 -msgid "The Mouse-count block returns the number of mice." -msgstr "" - -#: js/EnsembleBlocks.js:1124 -msgid "turtle count" -msgstr "" - -#: js/EnsembleBlocks.js:1127 -msgid "The Turtle-count block returns the number of turtles." -msgstr "" - -#: js/EnsembleBlocks.js:1149 -msgid "nth mouse name" -msgstr "" - -#: js/EnsembleBlocks.js:1152 -msgid "The Nth-Mouse name block returns the name of the nth mouse." -msgstr "" - -#: js/EnsembleBlocks.js:1158 -msgid "nth turtle name" -msgstr "" - -#: js/EnsembleBlocks.js:1161 -msgid "The Nth-Turtle name block returns the name of the nth turtle." -msgstr "" - -#: js/EnsembleBlocks.js:1205 -#: js/EnsembleBlocks.js:1265 -msgid "set name" -msgstr "" - -#: js/EnsembleBlocks.js:1214 -#: js/EnsembleBlocks.js:1221 -msgid "source" -msgstr "" - -#: js/EnsembleBlocks.js:1214 -#: js/EnsembleBlocks.js:1221 -msgid "target" -msgstr "" - -#: js/EnsembleBlocks.js:1271 -msgid "The Set-name block is used to name a mouse." -msgstr "" - -#: js/EnsembleBlocks.js:1284 -msgid "The Set-name block is used to name a turtle." -msgstr "" - -#: js/BooleanBlocks.js:44 -msgid "The Not block is the logical not operator." -msgstr "" - -#: js/BooleanBlocks.js:62 -msgid "not" -msgstr "இல்லை" - -#: js/BooleanBlocks.js:134 -msgid "The And block is the logical and operator." -msgstr "" - -#: js/BooleanBlocks.js:152 -msgid "and" -msgstr "உடன்" - -#: js/BooleanBlocks.js:218 -msgid "The Or block is the logical or operator." -msgstr "" - -#: js/BooleanBlocks.js:236 -msgid "or" -msgstr "அல்லது" - -#: js/BooleanBlocks.js:302 -msgid "The XOR block is the logical XOR operator." -msgstr "" - -#: js/BooleanBlocks.js:320 -msgid "xor" -msgstr "" - -#: js/BooleanBlocks.js:808 -msgid "The Equal block returns True if the two numbers are equal." -msgstr "" - -#: js/BooleanBlocks.js:909 -msgid "The Not-equal-to block returns True if the two numbers are not equal to each other." -msgstr "" - -#: js/BooleanBlocks.js:1008 -msgid "The Boolean block is used to specify true or false." -msgstr "" - -#: js/MediaBlocks.js:35 -#.TRANS: right side of the screen -msgid "right (screen)" -msgstr "" - -#: js/MediaBlocks.js:45 -#: js/MediaBlocks.js:56 -msgid "The Right block returns the position of the right of the canvas." -msgstr "" - -#: js/MediaBlocks.js:97 -#.TRANS: left side of the screen -msgid "left (screen)" -msgstr "" - -#: js/MediaBlocks.js:107 -#: js/MediaBlocks.js:118 -msgid "The Left block returns the position of the left of the canvas." -msgstr "" - -#: js/MediaBlocks.js:158 -msgid "top (screen)" -msgstr "" - -#: js/MediaBlocks.js:168 -#: js/MediaBlocks.js:179 -msgid "The Top block returns the position of the top of the canvas." +#: js/blocks/EnsembleBlocks.js:1092 +msgid "The Turtle-name block returns the name of a turtle." msgstr "" -#: js/MediaBlocks.js:219 -msgid "bottom (screen)" +#: js/blocks/EnsembleBlocks.js:1115 +msgid "mouse count" msgstr "" -#: js/MediaBlocks.js:229 -#: js/MediaBlocks.js:240 -msgid "The Bottom block returns the position of the bottom of the canvas." +#: js/blocks/EnsembleBlocks.js:1118 +msgid "The Mouse-count block returns the number of mice." msgstr "" -#: js/MediaBlocks.js:282 -msgid "width" +#: js/blocks/EnsembleBlocks.js:1124 +msgid "turtle count" msgstr "" -#: js/MediaBlocks.js:291 -msgid "The Width block returns the width of the canvas." +#: js/blocks/EnsembleBlocks.js:1127 +msgid "The Turtle-count block returns the number of turtles." msgstr "" -#: js/MediaBlocks.js:325 -msgid "height" +#: js/blocks/EnsembleBlocks.js:1149 +msgid "nth mouse name" msgstr "" -#: js/MediaBlocks.js:334 -msgid "The Height block returns the height of the canvas." +#: js/blocks/EnsembleBlocks.js:1152 +msgid "The Nth-Mouse name block returns the name of the nth mouse." msgstr "" -#: js/MediaBlocks.js:369 -#.TRANS: stops playback of an audio recording -msgid "stop play" +#: js/blocks/EnsembleBlocks.js:1158 +msgid "nth turtle name" msgstr "" -#: js/MediaBlocks.js:404 -#.TRANS: Erases the images and text -msgid "erase media" +#: js/blocks/EnsembleBlocks.js:1161 +msgid "The Nth-Turtle name block returns the name of the nth turtle." msgstr "" -#: js/MediaBlocks.js:409 -msgid "The Erase Media block erases text and images." +#: js/blocks/EnsembleBlocks.js:1205 +#: js/blocks/EnsembleBlocks.js:1265 +msgid "set name" msgstr "" -#: js/MediaBlocks.js:439 -#.TRANS: play an audio recording -msgid "play back" +#: js/blocks/EnsembleBlocks.js:1214 +#: js/blocks/EnsembleBlocks.js:1221 +msgid "source" msgstr "" -#: js/MediaBlocks.js:487 -msgid "speak" +#: js/blocks/EnsembleBlocks.js:1214 +#: js/blocks/EnsembleBlocks.js:1221 +msgid "target" msgstr "" -#: js/MediaBlocks.js:495 -msgid "The Speak block outputs to the text-to-speech synthesizer" +#: js/blocks/EnsembleBlocks.js:1271 +msgid "The Set-name block is used to name a mouse." msgstr "" -#: js/MediaBlocks.js:546 -msgid "camera" +#: js/blocks/EnsembleBlocks.js:1284 +msgid "The Set-name block is used to name a turtle." msgstr "" -#: js/MediaBlocks.js:551 -msgid "The Camera block connects a webcam to the Show block." +#: js/blocks/ExtrasBlocks.js:33 +msgid "fraction" msgstr "" -#: js/MediaBlocks.js:574 -msgid "video" +#: js/blocks/ExtrasBlocks.js:36 +msgid "Convert a float to a fraction" msgstr "" -#: js/MediaBlocks.js:579 -msgid "The Video block selects video for use with the Show block." +#: js/blocks/ExtrasBlocks.js:93 +msgid "save as ABC" msgstr "" -#: js/MediaBlocks.js:607 -msgid "The Open file block opens a file for use with the Show block." +#: js/blocks/ExtrasBlocks.js:96 +#: js/blocks/ExtrasBlocks.js:132 +#: js/blocks/ExtrasBlocks.js:168 +msgid "title" msgstr "" -#: js/MediaBlocks.js:645 -msgid "stop media" +#: js/blocks/ExtrasBlocks.js:129 +msgid "save as Lilypond" msgstr "" -#: js/MediaBlocks.js:650 -msgid "The Stop media block stops audio or video playback." +#: js/blocks/ExtrasBlocks.js:165 +msgid "save as SVG" msgstr "" -#: js/MediaBlocks.js:679 -#: js/PitchBlocks.js:1539 -#: js/phrasemaker.js:822 -#: js/musickeyboard.js:1654 -#.TRANS: a measure of frequency: one cycle per second -msgid "hertz" +#: js/blocks/ExtrasBlocks.js:216 +msgid "no background" msgstr "" -#: js/MediaBlocks.js:692 -msgid "duration (ms)" +#: js/blocks/ExtrasBlocks.js:219 +msgid "The No background block eliminates the background from the saved SVG output." msgstr "" -#: js/MediaBlocks.js:728 -#.TRANS: translate a note into hertz, e.g., A4 -> 440HZ -msgid "note to frequency" -msgstr "" +#: js/blocks/ExtrasBlocks.js:247 +msgid "show blocks" +msgstr "தொகுதியைக்காட்டு" -#: js/MediaBlocks.js:736 -msgid "The To frequency block converts a pitch name and octave to Hertz." +#: js/blocks/ExtrasBlocks.js:249 +msgid "The Show blocks block shows the blocks." msgstr "" -#: js/MediaBlocks.js:746 -#: js/PitchBlocks.js:656 -#: js/PitchBlocks.js:932 -#: js/PitchBlocks.js:1827 -#.TRANS: name2 is name as in name of pitch (JAPANESE ONLY) -msgid "name2" +#: js/blocks/ExtrasBlocks.js:274 +msgid "hide blocks" +msgstr "மறைந்துள்ள தொகுதி" + +#: js/blocks/ExtrasBlocks.js:276 +msgid "The Hide blocks block hides the blocks." msgstr "" -#: js/MediaBlocks.js:812 -msgid "The Avatar block is used to change the appearance of the mouse." +#: js/blocks/ExtrasBlocks.js:305 +#: js/blocks/ExtrasBlocks.js:338 +msgid "The Space block is used to add space between blocks." msgstr "" -#: js/MediaBlocks.js:819 -msgid "The Avatar block is used to change the appearance of the turtle." +#: js/blocks/ExtrasBlocks.js:376 +msgid "wait" +msgstr "பொறு" + +#: js/blocks/ExtrasBlocks.js:379 +msgid "The Wait block pauses the program for a specified number of seconds." msgstr "" -#: js/MediaBlocks.js:831 -#: js/MediaBlocks.js:891 -#.TRANS: a media object -msgid "size" +#: js/blocks/ExtrasBlocks.js:433 +#: plugins/facebook.rtp:30 +msgid "comment" +msgstr "கருத்து தெறிவி" + +#: js/blocks/ExtrasBlocks.js:469 +msgid "print" +msgstr "அச்சு" + +#: js/blocks/ExtrasBlocks.js:476 +msgid "The Print block displays text at the top of the screen." msgstr "" -#: js/MediaBlocks.js:831 -msgid "image" -msgstr "படம்" +#: js/blocks/ExtrasBlocks.js:582 +msgid "display grid" +msgstr "" -#: js/MediaBlocks.js:880 -msgid "The Show block is used to display text or images on the canvas." +#: js/blocks/ExtrasBlocks.js:587 +msgid "The Display Grid Block changes the grid type" msgstr "" -#: js/MediaBlocks.js:888 -#.TRANS: show1 is show as in display an image or text on the screen. -msgid "show1" +#: js/blocks/ExtrasBlocks.js:689 +#: js/blocks/ExtrasBlocks.js:708 +#: js/blocks/ExtrasBlocks.js:731 +#: js/blocks/ExtrasBlocks.js:754 +#: js/blocks/ExtrasBlocks.js:772 +#: js/blocks/ExtrasBlocks.js:791 +#: js/blocks/ExtrasBlocks.js:810 +#: js/blocks/ExtrasBlocks.js:829 +msgid "unknown" msgstr "" -#: js/MediaBlocks.js:891 -msgid "obj" +#: js/blocks/FlowBlocks.js:41 +msgid "The Backward block runs code in reverse order (Musical retrograde)." msgstr "" -#: js/MediaBlocks.js:938 -msgid "The Media block is used to import an image." +#: js/blocks/FlowBlocks.js:48 +msgid "backward" msgstr "" -#: js/MediaBlocks.js:973 -msgid "The Text block holds a text string." +#: js/blocks/FlowBlocks.js:124 +msgid "The Duplicate block will run each block multiple times." msgstr "" -#: js/ProgramBlocks.js:33 -msgid "The Load-heap-from-app block loads the heap from a web page." +#: js/blocks/FlowBlocks.js:136 +msgid "duplicate" msgstr "" -#: js/ProgramBlocks.js:44 -#.TRANS: load the heap contents from a URL -msgid "load heap from App" +#: js/blocks/FlowBlocks.js:334 +msgid "The Default block is used inside of a Switch to define the default action." msgstr "" -#: js/ProgramBlocks.js:95 -msgid "Error parsing JSON data:" +#: js/blocks/FlowBlocks.js:342 +msgid "default" msgstr "" -#: js/ProgramBlocks.js:100 -msgid "404: Page not found" +#: js/blocks/FlowBlocks.js:361 +#: js/blocks/FlowBlocks.js:418 +msgid "The Case Block must be used inside of a Switch Block." msgstr "" -#: js/ProgramBlocks.js:133 -msgid "The Save-heap-to-app block saves the heap to a web page." +#: js/blocks/FlowBlocks.js:389 +msgid "The Case block is used inside of a Switch to define matches." msgstr "" -#: js/ProgramBlocks.js:144 -#.TRANS: save the heap contents to a URL -msgid "save heap to App" +#: js/blocks/FlowBlocks.js:397 +msgid "case" msgstr "" -#: js/ProgramBlocks.js:189 -msgid "Cannot find a valid heap for" +#: js/blocks/FlowBlocks.js:446 +msgid "The Switch block will run the code in the matching Case." msgstr "" -#: js/ProgramBlocks.js:206 -msgid "The Load-heap block loads the heap from a file." +#: js/blocks/FlowBlocks.js:454 +msgid "switch" msgstr "" -#: js/ProgramBlocks.js:217 -#.TRANS: load the heap from a file -msgid "load heap" +#: js/blocks/FlowBlocks.js:595 +msgid "The Stop block will stop a loop" msgstr "" -#: js/ProgramBlocks.js:270 -msgid "The file you selected does not contain a valid heap." +#: js/blocks/FlowBlocks.js:597 +msgid "Forever, Repeat, While, or Until." msgstr "" -#: js/ProgramBlocks.js:275 -msgid "The loadHeap block needs a loadFile block." +#: js/blocks/FlowBlocks.js:604 +#: js/widgets/timbre.js:417 +#: js/widgets/timbre.js:419 +#: js/widgets/musickeyboard.js:819 +#: js/widgets/musickeyboard.js:821 +#: js/widgets/phrasemaker.js:4202 +#: plugins/rodi.rtp:29 +#: plugins/rodi.rtp:73 +#: plugins/rodi.rtp:413 +msgid "stop" +msgstr "நிறுத்து" + +#: js/blocks/FlowBlocks.js:653 +msgid "The Waitfor block will wait until the condition is true." msgstr "" -#: js/ProgramBlocks.js:291 -msgid "The Set-heap block loads the heap." +#: js/blocks/FlowBlocks.js:661 +msgid "wait for" msgstr "" -#: js/ProgramBlocks.js:299 -#: js/HeapBlocks.js:539 -#.TRANS: load the heap from a JSON encoding -msgid "set heap" +#: js/blocks/FlowBlocks.js:732 +msgid "The Until block will repeat until the condition is true." msgstr "" -#: js/ProgramBlocks.js:340 -msgid "The block you selected does not contain a valid heap." +#: js/blocks/FlowBlocks.js:740 +msgid "until" +msgstr "இதுவரை" + +#: js/blocks/FlowBlocks.js:742 +#: js/blocks/FlowBlocks.js:822 +msgid "do2" msgstr "" -#: js/ProgramBlocks.js:343 -msgid "The Set heap block needs a heap." +#: js/blocks/FlowBlocks.js:812 +msgid "The While block will repeat while the condition is true." msgstr "" -#: js/ProgramBlocks.js:360 -msgid "The Load-dictionary block loads a dictionary from a file." +#: js/blocks/FlowBlocks.js:820 +msgid "while" +msgstr "நிகழும்போது" + +#: js/blocks/FlowBlocks.js:903 +#: js/blocks/FlowBlocks.js:968 +#: js/blocks/FlowBlocks.js:979 +msgid "In this example if the mouse button is pressed a snare drum will play." msgstr "" -#: js/ProgramBlocks.js:372 -#.TRANS: load a dictionary from a file -msgid "load dictionary" +#: js/blocks/FlowBlocks.js:925 +#: js/blocks/FlowBlocks.js:988 +msgid "if" +msgstr "எனின்" + +#: js/blocks/FlowBlocks.js:927 +#: js/blocks/FlowBlocks.js:990 +msgid "then" +msgstr "அதன்பின்" + +#: js/blocks/FlowBlocks.js:927 +msgid "else" +msgstr "வேறு" + +#: js/blocks/FlowBlocks.js:1025 +msgid "The Forever block will repeat the contained blocks forever." msgstr "" -#: js/ProgramBlocks.js:390 -#: js/ProgramBlocks.js:658 -#: js/ToneBlocks.js:1025 -msgid "file" +#: js/blocks/FlowBlocks.js:1037 +msgid "forever" +msgstr "எப்போதும்" + +#: js/blocks/FlowBlocks.js:1073 +msgid "The Repeat block will repeat the contained blocks." msgstr "" -#: js/ProgramBlocks.js:396 -#: js/ProgramBlocks.js:501 -#: js/ProgramBlocks.js:664 -#: js/DictBlocks.js:80 -#: js/DictBlocks.js:145 -#: js/DictBlocks.js:216 -#: js/DictBlocks.js:290 -msgid "My Dictionary" +#: js/blocks/FlowBlocks.js:1075 +msgid "In this example the note will be played 4 times." msgstr "" -#: js/ProgramBlocks.js:444 -msgid "The file you selected does not contain a valid dictionary." +#: js/blocks/FlowBlocks.js:1083 +msgid "repeat" +msgstr ", திருப்பிச்செய்" + +#: js/blocks/FlowBlocks.js:1123 +msgid "duplicate factor" msgstr "" -#: js/ProgramBlocks.js:449 -msgid "The load dictionary block needs a load file block." +#: js/blocks/HeapBlocks.js:49 +msgid "The Heap block returns the heap." msgstr "" -#: js/ProgramBlocks.js:466 -msgid "The Set-dictionary block loads a dictionary." +#: js/blocks/HeapBlocks.js:133 +msgid "show heap" +msgstr "குவியலைக்காட்டு" + +#: js/blocks/HeapBlocks.js:181 +msgid "The Heap-length block returns the length of the heap." msgstr "" -#: js/ProgramBlocks.js:477 -#.TRANS: load a dictionary from a JSON -msgid "set dictionary" +#: js/blocks/HeapBlocks.js:195 +msgid "heap length" msgstr "" -#: js/ProgramBlocks.js:546 -msgid "The block you selected does not contain a valid dictionary." +#: js/blocks/HeapBlocks.js:254 +msgid "The Heap-empty? block returns true if the heap is empty." msgstr "" -#: js/ProgramBlocks.js:550 -msgid "The set dictionary block needs a dictionary." +#: js/blocks/HeapBlocks.js:268 +#.TRANS: Is the heap empty? +msgid "heap empty?" msgstr "" -#: js/ProgramBlocks.js:567 -msgid "The Save-heap block saves the heap to a file." +#: js/blocks/HeapBlocks.js:317 +msgid "The Empty-heap block empties the heap." msgstr "" -#: js/ProgramBlocks.js:578 -#.TRANS: save the heap to a file -msgid "save heap" +#: js/blocks/HeapBlocks.js:327 +#: js/blocks/HeapBlocks.js:647 +#.TRANS: empty the heap +msgid "empty heap" +msgstr "வெற்றுக்குவியல்" + +#: js/blocks/HeapBlocks.js:371 +msgid "The Reverse-heap block reverses the order of the heap." msgstr "" -#: js/ProgramBlocks.js:629 -msgid "The Save-dictionary block saves a dictionary to a file." +#: js/blocks/HeapBlocks.js:384 +#.TRANS: reverse the order of the heap +msgid "reverse heap" msgstr "" -#: js/ProgramBlocks.js:640 -#.TRANS: save a dictionary to a file -msgid "save dictionary" +#: js/blocks/HeapBlocks.js:428 +msgid "The Index-heap block returns a value in the heap at a specified location." msgstr "" -#: js/ProgramBlocks.js:720 -msgid "The Open palette block opens a palette." +#: js/blocks/HeapBlocks.js:443 +#.TRANS: retrieve a value from the heap at index position in the heap +msgid "index heap" msgstr "" -#: js/ProgramBlocks.js:727 -msgid "open palette" +#: js/blocks/HeapBlocks.js:523 +msgid "The Set-heap entry block sets a value in he heap at the specified location." msgstr "" -#: js/ProgramBlocks.js:785 -msgid "The Delete block block removes a block." +#: js/blocks/HeapBlocks.js:539 +#: js/blocks/ProgramBlocks.js:299 +#.TRANS: load the heap from a JSON encoding +msgid "set heap" msgstr "" -#: js/ProgramBlocks.js:797 -#.TRANS: Move this block to the trash. -msgid "delete block" +#: js/blocks/HeapBlocks.js:619 +msgid "The Pop block removes the value at the top of the heap." msgstr "" -#: js/ProgramBlocks.js:861 -msgid "The Move block block moves a block." +#: js/blocks/HeapBlocks.js:633 +#.TRANS: pop a value off the top of the heap +msgid "pop" +msgstr "வரல்" + +#: js/blocks/HeapBlocks.js:680 +msgid "The Push block adds a value to the top of the heap." msgstr "" -#: js/ProgramBlocks.js:869 -#.TRANS: Move the position of a block on the screen. -msgid "move block" +#: js/blocks/HeapBlocks.js:696 +#.TRANS: push a value onto the top of the heap +msgid "push" +msgstr "தள்ளு" + +#: js/blocks/IntervalsBlocks.js:45 +msgid "set temperament" msgstr "" -#: js/ProgramBlocks.js:881 -#: js/ProgramBlocks.js:1048 -msgid "block number" +#: js/blocks/IntervalsBlocks.js:63 +#: js/blocks/MediaBlocks.js:746 +#: js/blocks/PitchBlocks.js:657 +#: js/blocks/PitchBlocks.js:935 +#: js/blocks/PitchBlocks.js:974 +#: js/blocks/PitchBlocks.js:1007 +#: js/blocks/PitchBlocks.js:1194 +#: js/blocks/PitchBlocks.js:1717 +#: js/blocks/PitchBlocks.js:1758 +#: js/blocks/PitchBlocks.js:1866 +#: js/blocks/ToneBlocks.js:1025 +#: js/turtleactions/IntervalsActions.js:114 +#.TRANS: adjusts the shift up or down by one octave (twelve half-steps in the interval between two notes, one having twice or half the frequency in Hz of the other.) +msgid "octave" msgstr "" -#: js/ProgramBlocks.js:935 -#.TRANS: Run program beginning at this block. -msgid "run block" +#: js/blocks/IntervalsBlocks.js:99 +msgid "The Temperament name block is used to select a tuning method." msgstr "" -#: js/ProgramBlocks.js:1025 -msgid "The Dock block block connections two blocks." +#: js/blocks/IntervalsBlocks.js:161 +msgid "doubly" msgstr "" -#: js/ProgramBlocks.js:1036 -#.TRANS: We can connect a block to another block. -msgid "connect blocks" +#: js/blocks/IntervalsBlocks.js:166 +msgid "The Doubly block will double the size of an interval." msgstr "" -#: js/ProgramBlocks.js:1048 -msgid "target block" +#: js/blocks/IntervalsBlocks.js:262 +msgid "interval number" msgstr "" -#: js/ProgramBlocks.js:1048 -msgid "connection number" +#: js/blocks/IntervalsBlocks.js:317 +msgid "current interval" msgstr "" -#: js/ProgramBlocks.js:1140 -msgid "The Make block block creates a new block." +#: js/blocks/IntervalsBlocks.js:387 +#.TRANS: measure the distance between two pitches in semi-tones +msgid "semi-tone interval measure" msgstr "" -#: js/ProgramBlocks.js:1152 -#.TRANS: Create a new block -msgid "make block" +#: js/blocks/IntervalsBlocks.js:454 +#: js/blocks/IntervalsBlocks.js:570 +msgid "You must use two pitch blocks when measuring an interval." msgstr "" -#: js/ProgramBlocks.js:1186 -#: js/ProgramBlocks.js:1227 -#: js/RhythmBlocks.js:1128 -#: js/PitchBlocks.js:972 -#: js/PitchBlocks.js:1005 -#: js/temperament.js:340 -#: js/temperament.js:362 -#: js/temperament.js:372 -#: js/temperament.js:484 -#: js/status.js:190 -#: plugins/rodi.rtp:192 -#.TRANS: a musical note consisting of pitch and duration -msgid "note" +#: js/blocks/IntervalsBlocks.js:496 +msgid "The Scalar interval block measures the distance between two notes in the current key and mode." msgstr "" -#: js/ProgramBlocks.js:1285 -msgid "Cannot find block" +#: js/blocks/IntervalsBlocks.js:502 +#.TRANS: measure the distance between two pitches in steps of musical scale +msgid "scalar interval measure" msgstr "" -#: js/ProgramBlocks.js:1304 -#: js/ProgramBlocks.js:1313 -msgid "Warning: block argument type mismatch" +#: js/blocks/IntervalsBlocks.js:678 +msgid "In the figure, we add sol# to sol." msgstr "" -#: js/ProgramBlocks.js:1347 -msgid "The Open project block is used to open a project from a web page." +#: js/blocks/IntervalsBlocks.js:684 +#: js/blocks/OrnamentBlocks.js:220 +#.TRANS: calculate a relative step between notes based on semi-tones +msgid "semi-tone interval" msgstr "" -#: js/ProgramBlocks.js:1357 -msgid "open project" +#: js/blocks/IntervalsBlocks.js:733 +msgid "The output of the example is: do, mi, sol, sol, ti, mi" msgstr "" -#: js/ProgramBlocks.js:1410 -msgid "Please enter a valid URL." +#: js/blocks/IntervalsBlocks.js:740 +#: js/blocks/WidgetBlocks.js:768 +msgid "arpeggio" msgstr "" -#: js/DrumBlocks.js:59 -msgid "The Noise name block is used to select a noise synthesizer." +#: js/blocks/IntervalsBlocks.js:931 +msgid "The Chord block calculates common chords." msgstr "" -#: js/DrumBlocks.js:102 -msgid "The Drum name block is used to select a drum." +#: js/blocks/IntervalsBlocks.js:933 +msgid "In the figure, we generate a C-major chord." msgstr "" -#: js/DrumBlocks.js:146 -msgid "The Effects name block is used to select a sound effect." +#: js/blocks/IntervalsBlocks.js:938 +msgid "chord" msgstr "" -#: js/DrumBlocks.js:163 -msgid "noise" +#: js/blocks/IntervalsBlocks.js:990 +msgid "The Ratio Interval block calculates an interval based on a ratio." msgstr "" -#: js/DrumBlocks.js:177 -msgid "The Play noise block will generate white, pink, or brown noise." +#: js/blocks/IntervalsBlocks.js:995 +msgid "ratio interval" msgstr "" -#: js/DrumBlocks.js:191 -#: js/musicutils.js:752 -#: js/synthutils.js:47 -#.TRANS: white noise synthesizer -msgid "white noise" +#: js/blocks/IntervalsBlocks.js:1064 +msgid "In the figure, we add la to sol." msgstr "" -#: js/DrumBlocks.js:326 -msgid "Replace every instance of a pitch with a drum sound." +#: js/blocks/IntervalsBlocks.js:1120 +#.TRANS: define a custom mode +msgid "define mode" msgstr "" -#: js/DrumBlocks.js:337 -#.TRANS: map a pitch to a drum sound -msgid "map pitch to drum" +#: js/blocks/IntervalsBlocks.js:1173 +msgid "movable Do" msgstr "" -#: js/DrumBlocks.js:404 -msgid "In the example above, a kick drum sound will be played instead of sol." +#: js/blocks/IntervalsBlocks.js:1224 +#.TRANS: mode length is the number of notes in the mode, e.g., 7 for major and minor scales; 12 for chromatic scales +msgid "mode length" msgstr "" -#: js/DrumBlocks.js:416 -#.TRANS: set the current drum sound for playback -msgid "set drum" +#: js/blocks/IntervalsBlocks.js:1233 +msgid "The Mode length block is the number of notes in the current scale." msgstr "" -#: js/DrumBlocks.js:460 -msgid "sound effect" +#: js/blocks/IntervalsBlocks.js:1235 +msgid "Most Western scales have 7 notes." msgstr "" -#: js/DrumBlocks.js:498 -msgid "You can use multiple Drum blocks within a Note block." +#: js/blocks/IntervalsBlocks.js:1284 +#.TRANS: the mode in music is 'major', 'minor', etc. +msgid "current mode" msgstr "" -#: js/RhythmBlocks.js:182 -#: js/RhythmBlocks.js:1086 -#: js/RhythmBlocks.js:1162 -msgid "Note value must be greater than 0." +#: js/blocks/IntervalsBlocks.js:1337 +#.TRANS: the key is a group of pitches with which a music composition is created +msgid "current key" msgstr "" -#: js/RhythmBlocks.js:215 -#: js/RhythmBlocks.js:278 -#: js/RhythmBlocks.js:350 -#.TRANS: swing is a rhythmic variation that emphasises the offbeat -msgid "swing" +#: js/blocks/IntervalsBlocks.js:1389 +#: js/blocks/IntervalsBlocks.js:1434 +#.TRANS: set the key and mode, e.g. C Major +msgid "set key" msgstr "" -#: js/RhythmBlocks.js:355 -#.TRANS: the amount to shift to the offbeat note -msgid "swing value" +#: js/blocks/IntervalsBlocks.js:1443 +#: js/blocks/IntervalsBlocks.js:1449 +msgid "The Set key block is used to set the key and mode," msgstr "" -#: js/RhythmBlocks.js:419 -msgid "The Skip notes block will cause notes to be skipped." +#: js/blocks/IntervalsBlocks.js:1449 +msgid "eg C Major" msgstr "" -#: js/RhythmBlocks.js:427 -#.TRANS: substitute rests on notes being skipped -msgid "skip notes" +#: js/blocks/MediaBlocks.js:35 +#.TRANS: right side of the screen +msgid "right (screen)" msgstr "" -#: js/RhythmBlocks.js:489 -#.TRANS: speed up note duration by some factor, e.g. convert 1/4 to 1/8 notes by using a factor of 2 -msgid "multiply note value" +#: js/blocks/MediaBlocks.js:45 +#: js/blocks/MediaBlocks.js:56 +msgid "The Right block returns the position of the right of the canvas." msgstr "" -#: js/RhythmBlocks.js:542 -msgid "The Tie block works on pairs of notes, combining them into one note." +#: js/blocks/MediaBlocks.js:97 +#.TRANS: left side of the screen +msgid "left (screen)" msgstr "" -#: js/RhythmBlocks.js:550 -#.TRANS: tie notes together into one longer note -msgid "tie" +#: js/blocks/MediaBlocks.js:107 +#: js/blocks/MediaBlocks.js:118 +msgid "The Left block returns the position of the left of the canvas." msgstr "" -#: js/RhythmBlocks.js:591 -#: js/RhythmBlocks.js:671 -#.TRANS: a dotted note is played for 1.5x its value, e.g., 1/8. --> 3/16 -msgid "dot" +#: js/blocks/MediaBlocks.js:158 +msgid "top (screen)" msgstr "" -#: js/RhythmBlocks.js:619 -#: js/RhythmActions.js:221 -msgid "An argument of -1 results in a note value of 0." +#: js/blocks/MediaBlocks.js:168 +#: js/blocks/MediaBlocks.js:179 +msgid "The Top block returns the position of the top of the canvas." msgstr "" -#: js/RhythmBlocks.js:661 -msgid "The Dot block extends the duration of a note by 50%." +#: js/blocks/MediaBlocks.js:219 +msgid "bottom (screen)" msgstr "" -#: js/RhythmBlocks.js:663 -msgid "Eg a dotted quarter note will play for 3/8 (1/4 + 1/8) of a beat." +#: js/blocks/MediaBlocks.js:229 +#: js/blocks/MediaBlocks.js:240 +msgid "The Bottom block returns the position of the bottom of the canvas." msgstr "" -#: js/RhythmBlocks.js:765 -#.TRANS: Japanese only: note value block for drum -msgid "note value drum" +#: js/blocks/MediaBlocks.js:282 +msgid "width" msgstr "" -#: js/RhythmBlocks.js:829 -msgid "392 hertz" +#: js/blocks/MediaBlocks.js:291 +msgid "The Width block returns the width of the canvas." msgstr "" -#: js/RhythmBlocks.js:1119 -msgid "The Note block is a container for one or more Pitch blocks." +#: js/blocks/MediaBlocks.js:325 +msgid "height" msgstr "" -#: js/RhythmBlocks.js:1121 -msgid "The Note block specifies the duration (note value) of its contents." +#: js/blocks/MediaBlocks.js:334 +msgid "The Height block returns the height of the canvas." msgstr "" -#: js/RhythmBlocks.js:1130 -msgid "value2" +#: js/blocks/MediaBlocks.js:369 +#.TRANS: stops playback of an audio recording +msgid "stop play" msgstr "" -#: js/RhythmBlocks.js:1200 -msgid "define frequency" +#: js/blocks/MediaBlocks.js:404 +#.TRANS: Erases the images and text +msgid "erase media" msgstr "" -#: js/RhythmBlocks.js:1218 -#: js/temperament.js:650 -#: js/temperament.js:1421 -msgid "octave space" +#: js/blocks/MediaBlocks.js:409 +msgid "The Erase Media block erases text and images." msgstr "" -#: js/NumberBlocks.js:28 -msgid "The Int block returns an integer." +#: js/blocks/MediaBlocks.js:439 +#.TRANS: play an audio recording +msgid "play back" msgstr "" -#: js/NumberBlocks.js:34 -msgid "int" +#: js/blocks/MediaBlocks.js:487 +msgid "speak" msgstr "" -#: js/NumberBlocks.js:73 -msgid "The Mod block returns the remainder from a division." +#: js/blocks/MediaBlocks.js:495 +msgid "The Speak block outputs to the text-to-speech synthesizer" msgstr "" -#: js/NumberBlocks.js:79 -msgid "mod" -msgstr "புதுப்பி" +#: js/blocks/MediaBlocks.js:546 +msgid "camera" +msgstr "" -#: js/NumberBlocks.js:123 -msgid "The Power block calculates a power function." +#: js/blocks/MediaBlocks.js:551 +msgid "The Camera block connects a webcam to the Show block." msgstr "" -#: js/NumberBlocks.js:178 -msgid "The Sqrt block returns the square root." +#: js/blocks/MediaBlocks.js:574 +msgid "video" msgstr "" -#: js/NumberBlocks.js:184 -msgid "sqrt" +#: js/blocks/MediaBlocks.js:579 +msgid "The Video block selects video for use with the Show block." msgstr "" -#: js/NumberBlocks.js:230 -msgid "The Abs block returns the absolute value." +#: js/blocks/MediaBlocks.js:607 +msgid "The Open file block opens a file for use with the Show block." msgstr "" -#: js/NumberBlocks.js:236 -msgid "abs" +#: js/blocks/MediaBlocks.js:645 +msgid "stop media" msgstr "" -#: js/NumberBlocks.js:277 -msgid "The Distance block returns the distance between two points. For example, between the mouse and the center of the screen." +#: js/blocks/MediaBlocks.js:650 +msgid "The Stop media block stops audio or video playback." msgstr "" -#: js/NumberBlocks.js:283 -#: plugins/rodi.rtp:310 -msgid "distance" +#: js/blocks/MediaBlocks.js:679 +#: js/blocks/PitchBlocks.js:1577 +#: js/widgets/musickeyboard.js:1936 +#: js/widgets/phrasemaker.js:1037 +#.TRANS: a measure of frequency: one cycle per second +msgid "hertz" msgstr "" -#: js/NumberBlocks.js:343 -msgid "The Divide block is used to divide." +#: js/blocks/MediaBlocks.js:692 +#: js/blocks/WidgetBlocks.js:182 +#: js/widgets/temperament.js:506 +#: js/widgets/temperament.js:546 +#: js/widgets/temperament.js:610 +#: js/widgets/temperament.js:618 +#: js/widgets/temperament.js:1505 +#: js/widgets/timbre.js:1842 +msgid "frequency" msgstr "" -#: js/NumberBlocks.js:411 -msgid "The Multiply block is used to multiply." +#: js/blocks/MediaBlocks.js:692 +msgid "duration (ms)" msgstr "" -#: js/NumberBlocks.js:554 -msgid "The Minus block is used to subtract." +#: js/blocks/MediaBlocks.js:728 +#.TRANS: translate a note into hertz, e.g., A4 -> 440HZ +msgid "note to frequency" msgstr "" -#: js/NumberBlocks.js:647 -msgid "The Plus block is used to add." +#: js/blocks/MediaBlocks.js:736 +msgid "The To frequency block converts a pitch name and octave to Hertz." msgstr "" -#: js/NumberBlocks.js:773 -msgid "The One-of block returns one of two choices." +#: js/blocks/MediaBlocks.js:746 +#: js/blocks/PitchBlocks.js:656 +#: js/blocks/PitchBlocks.js:934 +#: js/blocks/PitchBlocks.js:1866 +#.TRANS: name2 is name as in name of pitch (JAPANESE ONLY) +msgid "name2" msgstr "" -#: js/NumberBlocks.js:780 -#: js/PitchBlocks.js:616 -msgid "one of" +#: js/blocks/MediaBlocks.js:812 +msgid "The Avatar block is used to change the appearance of the mouse." msgstr "" -#: js/NumberBlocks.js:782 -msgid "this" +#: js/blocks/MediaBlocks.js:819 +msgid "The Avatar block is used to change the appearance of the turtle." msgstr "" -#: js/NumberBlocks.js:782 -msgid "that" +#: js/blocks/MediaBlocks.js:831 +#: js/blocks/MediaBlocks.js:891 +#.TRANS: a media object +msgid "size" msgstr "" -#: js/NumberBlocks.js:837 -msgid "The Random block returns a random number." +#: js/blocks/MediaBlocks.js:831 +msgid "image" +msgstr "படம்" + +#: js/blocks/MediaBlocks.js:880 +msgid "The Show block is used to display text or images on the canvas." msgstr "" -#: js/NumberBlocks.js:844 -msgid "random" -msgstr "எழுமாறாக" +#: js/blocks/MediaBlocks.js:888 +#.TRANS: show1 is show as in display an image or text on the screen. +msgid "show1" +msgstr "" -#: js/NumberBlocks.js:846 -msgid "min" -msgstr "மிகக்குறைய" +#: js/blocks/MediaBlocks.js:891 +msgid "obj" +msgstr "" -#: js/NumberBlocks.js:846 -msgid "max" -msgstr "மிகக்கூடிய" +#: js/blocks/MediaBlocks.js:938 +msgid "The Media block is used to import an image." +msgstr "" -#: js/NumberBlocks.js:910 -msgid "The Number block holds a number." +#: js/blocks/MediaBlocks.js:973 +msgid "The Text block holds a text string." msgstr "" -#: js/BoxesBlocks.js:53 -#: js/BoxesBlocks.js:59 -msgid "The Add-to block is used to add to the value stored in a box." +#: js/blocks/MeterBlocks.js:34 +#.TRANS: musical meter (time signature), e.g., 4:4 +msgid "current meter" msgstr "" -#: js/BoxesBlocks.js:61 -msgid "It can also be used with other blocks such as Color and Pen size." +#: js/blocks/MeterBlocks.js:85 +#.TRANS: number of beats per minute +msgid "beat factor" msgstr "" -#: js/BoxesBlocks.js:73 -msgid "add" +#: js/blocks/MeterBlocks.js:161 +msgid "The Beats per minute block returns the current beats per minute." msgstr "" -#: js/BoxesBlocks.js:75 -#: js/temperament.js:716 -msgid "to" +#: js/blocks/MeterBlocks.js:169 +#: js/widgets/status.js:152 +#.TRANS: number of beats played per minute +msgid "beats per minute2" msgstr "" -#: js/BoxesBlocks.js:75 -#: js/BoxesBlocks.js:595 -#: js/HeapBlocks.js:544 -msgid "value1" +#: js/blocks/MeterBlocks.js:169 +#: js/blocks/MeterBlocks.js:1056 +#: js/blocks/MeterBlocks.js:1133 +#: js/blocks/MeterBlocks.js:1211 +#.TRANS: sets tempo by defining a beat and beats per minute +msgid "beats per minute" msgstr "" -#: js/BoxesBlocks.js:118 -msgid "Block does not support incrementing." +#: js/blocks/MeterBlocks.js:233 +#.TRANS: count of current musical measure in meter +msgid "measure count" msgstr "" -#: js/BoxesBlocks.js:152 -msgid "The Add-1-to block adds one to the value stored in a box." +#: js/blocks/MeterBlocks.js:241 +msgid "The Measure count block returns the current measure." msgstr "" -#: js/BoxesBlocks.js:163 -msgid "add 1 to" +#: js/blocks/MeterBlocks.js:290 +#.TRANS: count of current beat in the meter +msgid "beat count" msgstr "" -#: js/BoxesBlocks.js:211 -msgid "The Subtract-1-from block subtracts one from the value stored in a box." +#: js/blocks/MeterBlocks.js:300 +#: js/blocks/MeterBlocks.js:311 +#: js/blocks/MeterBlocks.js:565 +#: js/blocks/MeterBlocks.js:576 +msgid "The Beat count block is the number of the current beat," msgstr "" -#: js/BoxesBlocks.js:222 -msgid "subtract 1 from" +#: js/blocks/MeterBlocks.js:313 +#: js/blocks/MeterBlocks.js:578 +msgid "eg 1, 2, 3, or 4." msgstr "" -#: js/BoxesBlocks.js:270 -#: js/BoxesBlocks.js:387 -msgid "The Box block returns the value stored in a box." +#: js/blocks/MeterBlocks.js:368 +#.TRANS: count the number of notes +msgid "sum note values" msgstr "" -#: js/BoxesBlocks.js:500 -#: js/BoxesBlocks.js:576 -msgid "The Store in block will store a value in a box." +#: js/blocks/MeterBlocks.js:376 +#: js/blocks/MeterBlocks.js:440 +msgid "The Note counter block can be used to count the number of contained notes." msgstr "" -#: js/BoxesBlocks.js:652 -msgid "The Box2 block returns the value stored in Box2." +#: js/blocks/MeterBlocks.js:432 +#.TRANS: count the number of notes +msgid "note counter" msgstr "" -#: js/BoxesBlocks.js:703 -msgid "The Store in Box2 block is used to store a value in Box2." +#: js/blocks/MeterBlocks.js:496 +#.TRANS: number of whole notes that have been played +msgid "whole notes played" msgstr "" -#: js/BoxesBlocks.js:715 -msgid "store in box2" +#: js/blocks/MeterBlocks.js:505 +msgid "The Whole notes played block returns the total number of whole notes played." msgstr "" -#: js/BoxesBlocks.js:761 -msgid "The Box1 block returns the value stored in Box1." +#: js/blocks/MeterBlocks.js:555 +#: js/turtleactions/DictActions.js:83 +#.TRANS: number of notes that have been played +msgid "notes played" msgstr "" -#: js/BoxesBlocks.js:812 -msgid "The Store in Box1 block is used to store a value in Box1." +#: js/blocks/MeterBlocks.js:653 +msgid "The No clock block decouples the notes from the master clock." msgstr "" -#: js/BoxesBlocks.js:826 -msgid "store in box1" +#: js/blocks/MeterBlocks.js:661 +#.TRANS: don't lock notes to master clock +msgid "no clock" msgstr "" -#: js/HeapBlocks.js:49 -msgid "The Heap block returns the heap." +#: js/blocks/MeterBlocks.js:700 +msgid "on weak beat do" msgstr "" -#: js/HeapBlocks.js:133 -msgid "show heap" -msgstr "குவியலைக்காட்டு" +#: js/blocks/MeterBlocks.js:705 +msgid "The On-weak-beat block lets you specify actions to take on weak (off) beats." +msgstr "" -#: js/HeapBlocks.js:181 -msgid "The Heap-length block returns the length of the heap." +#: js/blocks/MeterBlocks.js:750 +msgid "on strong beat" msgstr "" -#: js/HeapBlocks.js:195 -msgid "heap length" +#: js/blocks/MeterBlocks.js:758 +msgid "The On-strong-beat block lets you specify actions to take on specified beats." msgstr "" -#: js/HeapBlocks.js:254 -msgid "The Heap-empty? block returns true if the heap is empty." +#: js/blocks/MeterBlocks.js:769 +msgid "beat" msgstr "" -#: js/HeapBlocks.js:268 -#.TRANS: Is the heap empty? -msgid "heap empty?" +#: js/blocks/MeterBlocks.js:813 +msgid "on every beat do" msgstr "" -#: js/HeapBlocks.js:317 -msgid "The Empty-heap block empties the heap." +#: js/blocks/MeterBlocks.js:821 +msgid "The On-every-beat block lets you specify actions to take on every beat." msgstr "" -#: js/HeapBlocks.js:327 -#: js/HeapBlocks.js:647 -#.TRANS: empty the heap -msgid "empty heap" -msgstr "வெற்றுக்குவியல்" +#: js/blocks/MeterBlocks.js:874 +msgid "on every note do" +msgstr "" -#: js/HeapBlocks.js:371 -msgid "The Reverse-heap block reverses the order of the heap." +#: js/blocks/MeterBlocks.js:882 +msgid "The On-every-note block lets you specify actions to take on every note." msgstr "" -#: js/HeapBlocks.js:384 -#.TRANS: reverse the order of the heap -msgid "reverse heap" +#: js/blocks/MeterBlocks.js:928 +#: js/blocks/MeterBlocks.js:999 +#.TRANS: sets tempo by defining a beat and beats per minute +msgid "master beats per minute" msgstr "" -#: js/HeapBlocks.js:428 -msgid "The Index-heap block returns a value in the heap at a specified location." +#: js/blocks/MeterBlocks.js:952 +#: js/blocks/MeterBlocks.js:1078 +#: js/blocks/MeterBlocks.js:1135 +msgid "bpm" msgstr "" -#: js/HeapBlocks.js:443 -#.TRANS: retrieve a value from the heap at index position in the heap -msgid "index heap" +#: js/blocks/MeterBlocks.js:952 +#: js/blocks/MeterBlocks.js:1078 +#: js/blocks/MeterBlocks.js:1135 +msgid "beat value" msgstr "" -#: js/HeapBlocks.js:523 -msgid "The Set-heap entry block sets a value in he heap at the specified location." +#: js/blocks/MeterBlocks.js:1024 +#: js/blocks/MeterBlocks.js:1167 +#: js/blocks/MeterBlocks.js:1241 +msgid "Beats per minute must be > 30." msgstr "" -#: js/HeapBlocks.js:619 -msgid "The Pop block removes the value at the top of the heap." +#: js/blocks/MeterBlocks.js:1027 +#: js/blocks/MeterBlocks.js:1170 +#: js/blocks/MeterBlocks.js:1244 +msgid "Maximum beats per minute is 1000." msgstr "" -#: js/HeapBlocks.js:633 -#.TRANS: pop a value off the top of the heap -msgid "pop" -msgstr "வரல்" +#: js/blocks/MeterBlocks.js:1068 +msgid "The Beats per minute block sets the number of 1/4 notes per minute." +msgstr "" -#: js/HeapBlocks.js:680 -msgid "The Push block adds a value to the top of the heap." +#: js/blocks/MeterBlocks.js:1279 +#.TRANS: anacrusis +msgid "pickup" msgstr "" -#: js/HeapBlocks.js:696 -#.TRANS: push a value onto the top of the heap -msgid "push" -msgstr "தள்ளு" +#: js/blocks/MeterBlocks.js:1367 +msgid "number of beats" +msgstr "" -#: js/FlowBlocks.js:41 -msgid "The Backward block runs code in reverse order (Musical retrograde)." +#: js/blocks/NumberBlocks.js:28 +msgid "The Int block returns an integer." msgstr "" -#: js/FlowBlocks.js:48 -msgid "backward" +#: js/blocks/NumberBlocks.js:34 +msgid "int" msgstr "" -#: js/FlowBlocks.js:124 -msgid "The Duplicate block will run each block multiple times." +#: js/blocks/NumberBlocks.js:73 +msgid "The Mod block returns the remainder from a division." msgstr "" -#: js/FlowBlocks.js:136 -msgid "duplicate" +#: js/blocks/NumberBlocks.js:79 +msgid "mod" +msgstr "புதுப்பி" + +#: js/blocks/NumberBlocks.js:141 +msgid "The Power block calculates a power function." msgstr "" -#: js/FlowBlocks.js:334 -msgid "The Default block is used inside of a Switch to define the default action." +#: js/blocks/NumberBlocks.js:196 +msgid "The Sqrt block returns the square root." msgstr "" -#: js/FlowBlocks.js:342 -msgid "default" +#: js/blocks/NumberBlocks.js:202 +msgid "sqrt" msgstr "" -#: js/FlowBlocks.js:361 -#: js/FlowBlocks.js:418 -msgid "The Case Block must be used inside of a Switch Block." +#: js/blocks/NumberBlocks.js:248 +msgid "The Abs block returns the absolute value." msgstr "" -#: js/FlowBlocks.js:389 -msgid "The Case block is used inside of a Switch to define matches." +#: js/blocks/NumberBlocks.js:254 +msgid "abs" msgstr "" -#: js/FlowBlocks.js:397 -msgid "case" +#: js/blocks/NumberBlocks.js:295 +msgid "The Distance block returns the distance between two points. For example, between the mouse and the center of the screen." msgstr "" -#: js/FlowBlocks.js:446 -msgid "The Switch block will run the code in the matching Case." +#: js/blocks/NumberBlocks.js:301 +#: plugins/rodi.rtp:310 +msgid "distance" msgstr "" -#: js/FlowBlocks.js:454 -msgid "switch" +#: js/blocks/NumberBlocks.js:361 +msgid "The Divide block is used to divide." msgstr "" -#: js/FlowBlocks.js:595 -msgid "The Stop block will stop a loop" +#: js/blocks/NumberBlocks.js:441 +msgid "The Multiply block is used to multiply." msgstr "" -#: js/FlowBlocks.js:597 -msgid "Forever, Repeat, While, or Until." +#: js/blocks/NumberBlocks.js:612 +msgid "The Minus block is used to subtract." msgstr "" -#: js/FlowBlocks.js:604 -#: js/phrasemaker.js:3799 -#: js/musickeyboard.js:629 -#: js/musickeyboard.js:631 -#: js/timbre.js:417 -#: js/timbre.js:419 -#: plugins/rodi.rtp:29 -#: plugins/rodi.rtp:73 -#: plugins/rodi.rtp:413 -msgid "stop" -msgstr "நிறுத்து" - -#: js/FlowBlocks.js:653 -msgid "The Waitfor block will wait until the condition is true." +#: js/blocks/NumberBlocks.js:723 +msgid "The Plus block is used to add." msgstr "" -#: js/FlowBlocks.js:661 -msgid "wait for" +#: js/blocks/NumberBlocks.js:849 +msgid "The One-of block returns one of two choices." msgstr "" -#: js/FlowBlocks.js:732 -msgid "The Until block will repeat until the condition is true." +#: js/blocks/NumberBlocks.js:856 +#: js/blocks/PitchBlocks.js:616 +msgid "one of" msgstr "" -#: js/FlowBlocks.js:740 -msgid "until" -msgstr "இதுவரை" - -#: js/FlowBlocks.js:742 -#: js/FlowBlocks.js:822 -msgid "do2" +#: js/blocks/NumberBlocks.js:858 +msgid "this" msgstr "" -#: js/FlowBlocks.js:812 -msgid "The While block will repeat while the condition is true." +#: js/blocks/NumberBlocks.js:858 +msgid "that" msgstr "" -#: js/FlowBlocks.js:820 -msgid "while" -msgstr "நிகழும்போது" - -#: js/FlowBlocks.js:903 -#: js/FlowBlocks.js:968 -#: js/FlowBlocks.js:979 -msgid "In this example if the mouse button is pressed a snare drum will play." +#: js/blocks/NumberBlocks.js:913 +msgid "The Random block returns a random number." msgstr "" -#: js/FlowBlocks.js:925 -#: js/FlowBlocks.js:988 -msgid "if" -msgstr "எனின்" +#: js/blocks/NumberBlocks.js:920 +msgid "random" +msgstr "எழுமாறாக" -#: js/FlowBlocks.js:927 -#: js/FlowBlocks.js:990 -msgid "then" -msgstr "அதன்பின்" +#: js/blocks/NumberBlocks.js:922 +msgid "min" +msgstr "மிகக்குறைய" -#: js/FlowBlocks.js:927 -msgid "else" -msgstr "வேறு" +#: js/blocks/NumberBlocks.js:922 +msgid "max" +msgstr "மிகக்கூடிய" -#: js/FlowBlocks.js:1025 -msgid "The Forever block will repeat the contained blocks forever." +#: js/blocks/NumberBlocks.js:986 +msgid "The Number block holds a number." msgstr "" -#: js/FlowBlocks.js:1037 -msgid "forever" -msgstr "எப்போதும்" - -#: js/FlowBlocks.js:1073 -msgid "The Repeat block will repeat the contained blocks." +#: js/blocks/OrnamentBlocks.js:32 +msgid "staccato factor" msgstr "" -#: js/FlowBlocks.js:1075 -msgid "In this example the note will be played 4 times." +#: js/blocks/OrnamentBlocks.js:108 +msgid "slur factor" msgstr "" -#: js/FlowBlocks.js:1083 -msgid "repeat" -msgstr ", திருப்பிச்செய்" - -#: js/FlowBlocks.js:1123 -msgid "duplicate factor" +#: js/blocks/OrnamentBlocks.js:217 +#: js/blocks/OrnamentBlocks.js:309 +#.TRANS: the neighbor refers to a neighboring note, e.g., D is a neighbor of C +msgid "neighbor" msgstr "" -#: js/PitchBlocks.js:39 -#: js/musicutils.js:722 -#: js/musicutils.js:1117 -#: js/synthutils.js:112 -#.TRANS: square wave -msgid "square" +#: js/blocks/OrnamentBlocks.js:293 +msgid "The Neighbor block rapidly switches between neighboring pitches." msgstr "" -#: js/PitchBlocks.js:62 -#: js/ToneBlocks.js:39 -#: js/musicutils.js:723 -#: js/musicutils.js:1118 -#: js/synthutils.js:116 -#.TRANS: triangle wave -msgid "triangle" +#: js/blocks/OrnamentBlocks.js:364 +msgid "glide" msgstr "" -#: js/PitchBlocks.js:85 -#: js/musicutils.js:721 -#: js/musicutils.js:1116 -#: js/synthutils.js:110 -#.TRANS: sine wave -msgid "sine" +#: js/blocks/OrnamentBlocks.js:479 +#: js/blocks/OrnamentBlocks.js:643 +msgid "slur" msgstr "" -#: js/PitchBlocks.js:108 -#: js/musicutils.js:724 -#: js/musicutils.js:1119 -#: js/synthutils.js:114 -#.TRANS: sawtooth wave -msgid "sawtooth" +#: js/blocks/OrnamentBlocks.js:558 +#: js/blocks/OrnamentBlocks.js:710 +#.TRANS: play each note sharply detached from the others +msgid "staccato" msgstr "" -#: js/PitchBlocks.js:141 -#.TRANS: musical transposition (adjustment of pitch up or down) -msgid "transposition" +#: js/blocks/RhythmBlocks.js:182 +#: js/blocks/RhythmBlocks.js:1086 +#: js/blocks/RhythmBlocks.js:1162 +msgid "Note value must be greater than 0." msgstr "" -#: js/PitchBlocks.js:168 -#.TRANS: step down one note in current musical scale -msgid "scalar step down" +#: js/blocks/RhythmBlocks.js:215 +#: js/blocks/RhythmBlocks.js:278 +#: js/blocks/RhythmBlocks.js:350 +#.TRANS: swing is a rhythmic variation that emphasises the offbeat +msgid "swing" msgstr "" -#: js/PitchBlocks.js:172 -msgid "The Scalar step down block returns the number of semi-tones down to the previous note in the current key and mode." +#: js/blocks/RhythmBlocks.js:355 +#.TRANS: the amount to shift to the offbeat note +msgid "swing value" msgstr "" -#: js/PitchBlocks.js:190 -#.TRANS: step up one note in current musical scale -msgid "scalar step up" +#: js/blocks/RhythmBlocks.js:419 +msgid "The Skip notes block will cause notes to be skipped." msgstr "" -#: js/PitchBlocks.js:194 -msgid "The Scalar step up block returns the number of semi-tones up to the next note in the current key and mode." +#: js/blocks/RhythmBlocks.js:427 +#.TRANS: substitute rests on notes being skipped +msgid "skip notes" msgstr "" -#: js/PitchBlocks.js:212 -#.TRANS: the change measured in half-steps between the current pitch and the previous pitch -msgid "change in pitch" +#: js/blocks/RhythmBlocks.js:489 +#.TRANS: speed up note duration by some factor, e.g. convert 1/4 to 1/8 notes by using a factor of 2 +msgid "multiply note value" msgstr "" -#: js/PitchBlocks.js:216 -msgid "The Change in pitch block is the difference (in half steps) between the current pitch being played and the previous pitch played." +#: js/blocks/RhythmBlocks.js:542 +msgid "The Tie block works on pairs of notes, combining them into one note." msgstr "" -#: js/PitchBlocks.js:243 -#.TRANS: the change measured in scale-steps between the current pitch and the previous pitch -msgid "scalar change in pitch" +#: js/blocks/RhythmBlocks.js:550 +#.TRANS: tie notes together into one longer note +msgid "tie" msgstr "" -#: js/PitchBlocks.js:250 -#: js/PitchBlocks.js:432 -#: js/PitchBlocks.js:1629 -#: js/DictActions.js:89 -#: js/temperament.js:477 -#: js/temperament.js:481 -#: js/temperament.js:714 -#.TRANS: convert current note to piano key (1-88) -#.TRANS: a mapping of pitch to the 88 piano keys -msgid "pitch number" +#: js/blocks/RhythmBlocks.js:591 +#: js/blocks/RhythmBlocks.js:671 +#.TRANS: a dotted note is played for 1.5x its value, e.g., 1/8. --> 3/16 +msgid "dot" msgstr "" -#: js/PitchBlocks.js:256 -msgid "The Pitch number block is the value of the pitch of the note currently being played." +#: js/blocks/RhythmBlocks.js:619 +#: js/turtleactions/RhythmActions.js:221 +msgid "An argument of -1 results in a note value of 0." msgstr "" -#: js/PitchBlocks.js:329 -#: js/PitchBlocks.js:433 -#.TRANS: the current pitch expressed in Hertz -msgid "pitch in hertz" +#: js/blocks/RhythmBlocks.js:661 +msgid "The Dot block extends the duration of a note by 50%." msgstr "" -#: js/PitchBlocks.js:334 -msgid "The Pitch in Hertz block is the value in Hertz of the pitch of the note currently being played." +#: js/blocks/RhythmBlocks.js:663 +msgid "Eg a dotted quarter note will play for 3/8 (1/4 + 1/8) of a beat." msgstr "" -#: js/PitchBlocks.js:367 -#: js/DictActions.js:87 -msgid "current pitch" +#: js/blocks/RhythmBlocks.js:765 +#.TRANS: Japanese only: note value block for drum +msgid "note value drum" msgstr "" -#: js/PitchBlocks.js:373 -msgid "The Current Pitch block is used with the Pitch Converter block. In the example above, current pitch, sol 4, is displayed as 392 hertz." +#: js/blocks/RhythmBlocks.js:829 +msgid "392 hertz" msgstr "" -#: js/PitchBlocks.js:410 -msgid "This block converts the pitch value of the last note played into different formats such as hertz, letter name, pitch number, et al." +#: js/blocks/RhythmBlocks.js:1119 +msgid "The Note block is a container for one or more Pitch blocks." msgstr "" -#: js/PitchBlocks.js:434 -msgid "alphabet" +#: js/blocks/RhythmBlocks.js:1121 +msgid "The Note block specifies the duration (note value) of its contents." msgstr "" -#: js/PitchBlocks.js:436 -#.TRANS: Translate as "alphabet class" -msgid "letter class" +#: js/blocks/RhythmBlocks.js:1128 +#: js/blocks/PitchBlocks.js:974 +#: js/blocks/PitchBlocks.js:1007 +#: js/blocks/ProgramBlocks.js:1186 +#: js/blocks/ProgramBlocks.js:1227 +#: js/widgets/status.js:190 +#: js/widgets/temperament.js:464 +#: js/widgets/temperament.js:486 +#: js/widgets/temperament.js:496 +#: js/widgets/temperament.js:617 +#: plugins/rodi.rtp:192 +#.TRANS: a musical note consisting of pitch and duration +msgid "note" msgstr "" -#: js/PitchBlocks.js:437 -msgid "solfege class" +#: js/blocks/RhythmBlocks.js:1130 +msgid "value2" msgstr "" -#: js/PitchBlocks.js:438 -msgid "staff y" +#: js/blocks/RhythmBlocks.js:1200 +msgid "define frequency" msgstr "" -#: js/PitchBlocks.js:439 -msgid "solfege syllable" +#: js/blocks/RhythmBlocks.js:1218 +#: js/widgets/temperament.js:787 +#: js/widgets/temperament.js:1587 +msgid "octave space" msgstr "" -#: js/PitchBlocks.js:440 -msgid "pitch class" +#: js/blocks/SensorsBlocks.js:36 +msgid "The Input block prompts for keyboard input." msgstr "" -#: js/PitchBlocks.js:441 -msgid "scalar class" +#: js/blocks/SensorsBlocks.js:46 +msgid "input" msgstr "" -#: js/PitchBlocks.js:443 -msgid "nth degree" +#: js/blocks/SensorsBlocks.js:64 +msgid "Input a value" msgstr "" -#: js/PitchBlocks.js:444 -msgid "pitch to shade" +#: js/blocks/SensorsBlocks.js:126 +msgid "input value" msgstr "" -#: js/PitchBlocks.js:445 -msgid "pitch to color" +#: js/blocks/SensorsBlocks.js:131 +msgid "The Input-value block stores the input." msgstr "" -#: js/PitchBlocks.js:629 -#: js/musickeyboard.js:565 -#.TRANS: MIDI is a technical standard for electronic music -msgid "MIDI" -msgstr "" +#: js/blocks/SensorsBlocks.js:238 +msgid "loudness" +msgstr "சத்தமான.." -#: js/PitchBlocks.js:642 -#.TRANS: set an offset associated with the numeric piano keyboard mapping -msgid "set pitch number offset" +#: js/blocks/SensorsBlocks.js:245 +msgid "The Loudness block returns the volume detected by the microphone." msgstr "" -#: js/PitchBlocks.js:645 -msgid "The Set pitch number offset block is used to set the offset for mapping pitch numbers to pitch and octave." +#: js/blocks/SensorsBlocks.js:300 +msgid "click" msgstr "" -#: js/PitchBlocks.js:679 -#.TRANS: convert piano key number (1-88) to pitch -msgid "number to pitch" +#: js/blocks/SensorsBlocks.js:306 +msgid "The Click block triggers an event if a mouse has been clicked." msgstr "" -#: js/PitchBlocks.js:682 -msgid "The Number to pitch block will convert a pitch number to a pich name." +#: js/blocks/SensorsBlocks.js:313 +msgid "The Click block triggers an event if a turtle has been clicked." msgstr "" -#: js/PitchBlocks.js:715 -#.TRANS: convert piano key number (1-88) to octave -msgid "number to octave" +#: js/blocks/SensorsBlocks.js:342 +msgid "cursor over" msgstr "" -#: js/PitchBlocks.js:717 -msgid "The Number to octave block will convert a pitch number to an octave." +#: js/blocks/SensorsBlocks.js:387 +msgid "cursor out" msgstr "" -#: js/PitchBlocks.js:726 -msgid "y to pitch" +#: js/blocks/SensorsBlocks.js:433 +msgid "cursor button down" msgstr "" -#: js/PitchBlocks.js:729 -msgid "Y to pitch block will convert a staff y position to corresponding pitch notation." +#: js/blocks/SensorsBlocks.js:477 +msgid "cursor button up" msgstr "" -#: js/PitchBlocks.js:841 -msgid "accidental selector" +#: js/blocks/SensorsBlocks.js:521 +#: js/blocks/PenBlocks.js:48 +#: plugins/rodi.rtp:219 +msgid "blue" msgstr "" -#: js/PitchBlocks.js:844 -msgid "The Accidental selector block is used to choose between double-sharp, sharp, natural, flat, and double-flat." +#: js/blocks/SensorsBlocks.js:577 +#: js/blocks/PenBlocks.js:64 +#: plugins/rodi.rtp:218 +msgid "green" msgstr "" -#: js/PitchBlocks.js:858 -msgid "Pitch can be specified in terms of ni dha pa ma ga re sa." +#: js/blocks/SensorsBlocks.js:633 +#: js/blocks/PenBlocks.js:112 +#: plugins/rodi.rtp:217 +msgid "red" msgstr "" -#: js/PitchBlocks.js:872 -msgid "Pitch can be specified in terms of C D E F G A B." +#: js/blocks/SensorsBlocks.js:638 +msgid "The Get red block returns the red component of the pixel under the mouse." msgstr "" -#: js/PitchBlocks.js:883 -msgid "solfege" +#: js/blocks/SensorsBlocks.js:644 +msgid "The Get red block returns the red component of the pixel under the turtle." msgstr "" -#: js/PitchBlocks.js:886 -msgid "Pitch can be specified in terms of do re mi fa sol la ti." +#: js/blocks/SensorsBlocks.js:685 +#: plugins/rodi.rtp:216 +msgid "pixel color" msgstr "" -#: js/PitchBlocks.js:920 -msgid "The Invert block rotates any contained notes around a target note." +#: js/blocks/SensorsBlocks.js:690 +msgid "The Get pixel block returns the color of the pixel under the mouse." msgstr "" -#: js/PitchBlocks.js:927 -#.TRANS: pitch inversion rotates a pitch around another pitch -msgid "invert" +#: js/blocks/SensorsBlocks.js:696 +msgid "The Get pixel block returns the color of the pixel under the turtle." msgstr "" -#: js/PitchBlocks.js:929 -#: js/PitchBlocks.js:935 -#: js/PitchActions.js:727 -#: js/musicutils.js:726 -#: js/musicutils.js:902 -#.TRANS: invert based on even or odd number or musical scale -#.TRANS: even numbers -msgid "even" -msgstr "" +#: js/blocks/SensorsBlocks.js:758 +msgid "time" +msgstr "நேரம்" -#: js/PitchBlocks.js:935 -#: js/PitchActions.js:729 -#: js/musicutils.js:728 -#: js/musicutils.js:903 -#.TRANS: odd numbers -msgid "odd" +#: js/blocks/SensorsBlocks.js:804 +msgid "cursor y" msgstr "" -#: js/PitchBlocks.js:935 -#: js/PitchActions.js:731 -#: js/musicutils.js:729 -#: js/musicutils.js:904 -msgid "scalar" +#: js/blocks/SensorsBlocks.js:809 +msgid "The Cursor Y block returns the vertical position of the mouse." msgstr "" -#: js/PitchBlocks.js:966 -#.TRANS: pitch inversion rotates a pitch around another pitch (odd number) -msgid "invert (odd)" +#: js/blocks/SensorsBlocks.js:845 +msgid "cursor x" msgstr "" -#: js/PitchBlocks.js:999 -#.TRANS: pitch inversion rotates a pitch around another pitch (even number) -msgid "invert (even)" +#: js/blocks/SensorsBlocks.js:850 +msgid "The Cursor X block returns the horizontal position of the mouse." msgstr "" -#: js/PitchBlocks.js:1020 -#.TRANS: register is the octave of the current pitch -msgid "register" +#: js/blocks/SensorsBlocks.js:886 +msgid "mouse button" msgstr "" -#: js/PitchBlocks.js:1024 -msgid "The Register block provides an easy way to modify the register (octave) of the notes that follow it." +#: js/blocks/SensorsBlocks.js:888 +msgid "The Mouse-button block returns True if the mouse button is pressed." msgstr "" -#: js/PitchBlocks.js:1074 -msgid "The Semi-tone transposition block will shift the pitches contained inside Note blocks up (or down) by half steps." +#: js/blocks/SensorsBlocks.js:934 +msgid "to ASCII" msgstr "" -#: js/PitchBlocks.js:1076 -msgid "In the example shown above, sol is shifted up to sol#." +#: js/blocks/SensorsBlocks.js:938 +msgid "The To ASCII block converts numbers to letters." msgstr "" -#: js/PitchBlocks.js:1082 -#.TRANS: adjust the amount of shift (up or down) of a pitch -msgid "semi-tone transpose" +#: js/blocks/SensorsBlocks.js:1005 +msgid "The Keyboard block returns computer keyboard input." msgstr "" -#: js/PitchBlocks.js:1115 -msgid "The Transpose by Ratio block will shift the pitches contained inside Note blocks up (or down) by a ratio" +#: js/blocks/RhythmBlockPaletteBlocks.js:50 +#: js/blocks/RhythmBlockPaletteBlocks.js:233 +#.TRANS: rhythm block +#.TRANS: translate "rhythm1" as rhythm +msgid "rhythm1" msgstr "" -#: js/PitchBlocks.js:1121 -#.TRANS: adjust the amount of shift (up or down) of a pitch -msgid "transpose by ratio" +#: js/blocks/RhythmBlockPaletteBlocks.js:70 +#: js/blocks/RhythmBlockPaletteBlocks.js:252 +#: js/blocks/RhythmBlockPaletteBlocks.js:485 +#: js/blocks/RhythmBlockPaletteBlocks.js:554 +#: js/blocks/RhythmBlockPaletteBlocks.js:875 +msgid "number of notes" msgstr "" -#: js/PitchBlocks.js:1204 -#.TRANS: down sixth means the note is five scale degrees below current note -msgid "down sixth" +#: js/blocks/RhythmBlockPaletteBlocks.js:126 +msgid "polyphonic rhythm" msgstr "" -#: js/PitchBlocks.js:1223 -#.TRANS: down third means the note is two scale degrees below current note -msgid "down third" +#: js/blocks/RhythmBlockPaletteBlocks.js:219 +msgid "The Rhythm block is used to generate rhythm patterns." msgstr "" -#: js/PitchBlocks.js:1242 -#.TRANS: seventh means the note is the six scale degrees above current note -msgid "seventh" +#: js/blocks/RhythmBlockPaletteBlocks.js:280 +msgid "1/64 note" msgstr "" -#: js/PitchBlocks.js:1261 -#.TRANS: sixth means the note is the five scale degrees above current note -msgid "sixth" +#: js/blocks/RhythmBlockPaletteBlocks.js:304 +msgid "1/32 note" msgstr "" -#: js/PitchBlocks.js:1280 -#.TRANS: fifth means the note is the four scale degrees above current note -msgid "fifth" +#: js/blocks/RhythmBlockPaletteBlocks.js:332 +msgid "1/16 note" msgstr "" -#: js/PitchBlocks.js:1300 -#.TRANS: fourth means the note is three scale degrees above current note -msgid "fourth" +#: js/blocks/RhythmBlockPaletteBlocks.js:360 +msgid "eighth note" msgstr "" -#: js/PitchBlocks.js:1319 -#.TRANS: third means the note is two scale degrees above current note -msgid "third" +#: js/blocks/RhythmBlockPaletteBlocks.js:388 +msgid "quarter note" msgstr "" - -#: js/PitchBlocks.js:1338 -#.TRANS: second means the note is one scale degree above current note -msgid "second" + +#: js/blocks/RhythmBlockPaletteBlocks.js:416 +msgid "half note" msgstr "" -#: js/PitchBlocks.js:1379 -msgid "The Scalar transposition block will shift the pitches contained inside Note blocks up (or down) the scale." +#: js/blocks/RhythmBlockPaletteBlocks.js:444 +msgid "whole note" msgstr "" -#: js/PitchBlocks.js:1381 -msgid "In the example shown above, sol is shifted up to la." +#: js/blocks/RhythmBlockPaletteBlocks.js:482 +#: js/blocks/RhythmBlockPaletteBlocks.js:551 +#: js/blocks/RhythmBlockPaletteBlocks.js:602 +#.TRANS: A tuplet is a note value divided into irregular time values. +msgid "tuplet" msgstr "" -#: js/PitchBlocks.js:1388 -#.TRANS: adjust the amount of shift (up or down) of a pitch by musical scale (scalar) steps -msgid "scalar transpose" +#: js/blocks/RhythmBlockPaletteBlocks.js:768 +msgid "septuplet" msgstr "" -#: js/PitchBlocks.js:1423 -msgid "The Accidental block is used to create sharps and flats" +#: js/blocks/RhythmBlockPaletteBlocks.js:796 +msgid "quintuplet" msgstr "" -#: js/PitchBlocks.js:1430 -#.TRANS: An accidental is a modification to a pitch, e.g., sharp or flat. -msgid "accidental override" +#: js/blocks/RhythmBlockPaletteBlocks.js:824 +msgid "triplet" msgstr "" -#: js/PitchBlocks.js:1543 -msgid "The Hertz block (in combination with a Number block) will play a sound at the specified frequency." +#: js/blocks/RhythmBlockPaletteBlocks.js:851 +msgid "simple tuplet" msgstr "" -#: js/PitchBlocks.js:1633 -msgid "The Pitch Number block will play a pitch associated by its number, e.g. 0 for C and 7 for G." +#: js/blocks/RhythmBlockPaletteBlocks.js:861 +msgid "Tuplets are a collection of notes that get scaled to a specific duration." msgstr "" -#: js/PitchBlocks.js:1665 -#: js/PitchBlocks.js:1707 -#.TRANS: a numeric mapping of the notes in an octave based on the musical mode -#.TRANS: a numeric mapping of the notes in an octave based on the musical mode -msgid "nth modal pitch" +#: js/blocks/DrumBlocks.js:59 +msgid "The Noise name block is used to select a noise synthesizer." msgstr "" -#: js/PitchBlocks.js:1668 -msgid "n^th Modal Pitch takes the pattern of pitches in semitones for a mode and makes each point a degree of the mode," +#: js/blocks/DrumBlocks.js:102 +msgid "The Drum name block is used to select a drum." msgstr "" -#: js/PitchBlocks.js:1670 -msgid "starting from 1 and regardless of tonal framework (i.e. not always 8 notes in the octave)" +#: js/blocks/DrumBlocks.js:146 +msgid "The Effects name block is used to select a sound effect." msgstr "" -#: js/PitchBlocks.js:1711 -msgid "N^th Modal Pitch takes a number as an input as the n^th degree for the given mode. 0 is the first position, 1 is the second, -1 is the note before the first etc." +#: js/blocks/DrumBlocks.js:163 +msgid "noise" msgstr "" -#: js/PitchBlocks.js:1713 -msgid "The pitches change according to the mode specified without any need for respellings." +#: js/blocks/DrumBlocks.js:177 +msgid "The Play noise block will generate white, pink, or brown noise." msgstr "" -#: js/PitchBlocks.js:1752 -msgid "Scale Degree is a common convention in music. Scale Degree offers seven possible positions in the scale (1-7) and can be modified via accidentals." +#: js/blocks/DrumBlocks.js:317 +msgid "Replace every instance of a pitch with a drum sound." msgstr "" -#: js/PitchBlocks.js:1754 -msgid "Scale Degree 1 is always the first pitch in a given scale, regardless of octave." +#: js/blocks/DrumBlocks.js:328 +#.TRANS: map a pitch to a drum sound +msgid "map pitch to drum" msgstr "" -#: js/PitchBlocks.js:1776 -#.TRANS: step some number of notes in current musical scale -msgid "scalar step" +#: js/blocks/DrumBlocks.js:395 +msgid "In the example above, a kick drum sound will be played instead of sol." msgstr "" -#: js/PitchBlocks.js:1781 -msgid "The Scalar Step block (in combination with a Number block) will play the next pitch in a scale," +#: js/blocks/DrumBlocks.js:407 +#.TRANS: set the current drum sound for playback +msgid "set drum" msgstr "" -#: js/PitchBlocks.js:1783 -msgid "eg if the last note played was sol, Scalar Step 1 will play la." +#: js/blocks/DrumBlocks.js:451 +msgid "sound effect" msgstr "" -#: js/PitchBlocks.js:1818 -msgid "The Pitch block specifies the pitch name and octave of a note that together determine the frequency of the note." +#: js/blocks/DrumBlocks.js:489 +msgid "You can use multiple Drum blocks within a Note block." msgstr "" -#: js/GraphicsBlocks.js:46 -#: js/DictActions.js:77 -#: js/DictActions.js:155 -#: js/DictActions.js:189 +#: js/blocks/GraphicsBlocks.js:46 +#: js/turtleactions/DictActions.js:77 +#: js/turtleactions/DictActions.js:144 +#: js/turtleactions/DictActions.js:173 msgid "heading" msgstr "தலைப்பு" -#: js/GraphicsBlocks.js:56 +#: js/blocks/GraphicsBlocks.js:56 msgid "The Heading block returns the orientation of the mouse." msgstr "" -#: js/GraphicsBlocks.js:62 +#: js/blocks/GraphicsBlocks.js:62 msgid "The Heading block returns the orientation of the turtle." msgstr "" -#: js/GraphicsBlocks.js:133 +#: js/blocks/GraphicsBlocks.js:133 msgid "The Y block returns the vertical position of the mouse." msgstr "" -#: js/GraphicsBlocks.js:140 +#: js/blocks/GraphicsBlocks.js:140 msgid "The Y block returns the vertical position of the turtle." msgstr "" -#: js/GraphicsBlocks.js:149 +#: js/blocks/GraphicsBlocks.js:149 msgid "y3" msgstr "" -#: js/GraphicsBlocks.js:219 +#: js/blocks/GraphicsBlocks.js:219 msgid "The X block returns the horizontal position of the mouse." msgstr "" -#: js/GraphicsBlocks.js:226 +#: js/blocks/GraphicsBlocks.js:226 msgid "The X block returns the horizontal position of the turtle." msgstr "" -#: js/GraphicsBlocks.js:235 +#: js/blocks/GraphicsBlocks.js:235 msgid "x3" msgstr "" -#: js/GraphicsBlocks.js:295 +#: js/blocks/GraphicsBlocks.js:295 msgid "scroll xy" msgstr "" -#: js/GraphicsBlocks.js:303 +#: js/blocks/GraphicsBlocks.js:303 msgid "The Scroll XY block moves the canvas." msgstr "" -#: js/GraphicsBlocks.js:313 +#: js/blocks/GraphicsBlocks.js:313 msgid "x2" msgstr "" -#: js/GraphicsBlocks.js:313 +#: js/blocks/GraphicsBlocks.js:313 msgid "y2" msgstr "" -#: js/GraphicsBlocks.js:373 -#: js/temperament.js:213 -#: js/temperament.js:241 +#: js/blocks/GraphicsBlocks.js:373 +#: js/widgets/temperament.js:319 +#: js/widgets/temperament.js:347 msgid "clear" msgstr "" -#: js/GraphicsBlocks.js:426 +#: js/blocks/GraphicsBlocks.js:426 msgid "The Control-point 2 block sets the second control point for the Bezier curve." msgstr "" -#: js/GraphicsBlocks.js:433 +#: js/blocks/GraphicsBlocks.js:433 msgid "control point 2" msgstr "" -#: js/GraphicsBlocks.js:436 -#: js/GraphicsBlocks.js:487 -#: js/GraphicsBlocks.js:534 -#: js/GraphicsBlocks.js:750 +#: js/blocks/GraphicsBlocks.js:436 +#: js/blocks/GraphicsBlocks.js:487 +#: js/blocks/GraphicsBlocks.js:534 +#: js/blocks/GraphicsBlocks.js:750 msgid "x1" msgstr "" -#: js/GraphicsBlocks.js:436 -#: js/GraphicsBlocks.js:487 -#: js/GraphicsBlocks.js:534 -#: js/GraphicsBlocks.js:750 +#: js/blocks/GraphicsBlocks.js:436 +#: js/blocks/GraphicsBlocks.js:487 +#: js/blocks/GraphicsBlocks.js:534 +#: js/blocks/GraphicsBlocks.js:750 msgid "y1" msgstr "" -#: js/GraphicsBlocks.js:477 +#: js/blocks/GraphicsBlocks.js:477 msgid "The Control-point 1 block sets the first control point for the Bezier curve." msgstr "" -#: js/GraphicsBlocks.js:484 +#: js/blocks/GraphicsBlocks.js:484 msgid "control point 1" msgstr "" -#: js/GraphicsBlocks.js:527 +#: js/blocks/GraphicsBlocks.js:527 msgid "The Bezier block draws a Bezier curve." msgstr "" -#: js/GraphicsBlocks.js:531 +#: js/blocks/GraphicsBlocks.js:531 msgid "bezier" msgstr "" -#: js/GraphicsBlocks.js:592 +#: js/blocks/GraphicsBlocks.js:592 msgid "The Arc block moves the turtle in an arc." msgstr "" -#: js/GraphicsBlocks.js:600 +#: js/blocks/GraphicsBlocks.js:600 msgid "arc" msgstr "வில்" -#: js/GraphicsBlocks.js:603 +#: js/blocks/GraphicsBlocks.js:603 msgid "angle" msgstr "கோணம்" -#: js/GraphicsBlocks.js:603 +#: js/blocks/GraphicsBlocks.js:603 msgid "radius" msgstr "குறை" -#: js/GraphicsBlocks.js:620 -#: js/GraphicsBlocks.js:767 -#: js/GraphicsBlocks.js:1010 -#: js/GraphicsBlocks.js:1093 +#: js/blocks/GraphicsBlocks.js:620 +#: js/blocks/GraphicsBlocks.js:767 +#: js/blocks/GraphicsBlocks.js:1010 +#: js/blocks/GraphicsBlocks.js:1093 msgid "Value must be within -5000 to 5000 when Wrap Mode is off." msgstr "" -#: js/GraphicsBlocks.js:622 -#: js/GraphicsBlocks.js:769 -#: js/GraphicsBlocks.js:1012 -#: js/GraphicsBlocks.js:1095 +#: js/blocks/GraphicsBlocks.js:622 +#: js/blocks/GraphicsBlocks.js:769 +#: js/blocks/GraphicsBlocks.js:1012 +#: js/blocks/GraphicsBlocks.js:1095 msgid "Value must be within -20000 to 20000 when Wrap Mode is on." msgstr "" -#: js/GraphicsBlocks.js:660 +#: js/blocks/GraphicsBlocks.js:660 msgid "set heading" msgstr "தலைப்பை ஒழுங்கு செய்" -#: js/GraphicsBlocks.js:673 +#: js/blocks/GraphicsBlocks.js:673 msgid "The Set heading block sets the heading of the turtle." msgstr "" -#: js/GraphicsBlocks.js:733 +#: js/blocks/GraphicsBlocks.js:733 msgid "The Set XY block moves the mouse to a specific position on the screen." msgstr "" -#: js/GraphicsBlocks.js:739 +#: js/blocks/GraphicsBlocks.js:739 msgid "The Set XY block moves the turtle to a specific position on the screen." msgstr "" -#: js/GraphicsBlocks.js:747 +#: js/blocks/GraphicsBlocks.js:747 msgid "set xy" msgstr "ஒழுங்கு படுத்துக" -#: js/GraphicsBlocks.js:819 +#: js/blocks/GraphicsBlocks.js:819 msgid "The Right block turns the mouse to the right." msgstr "" -#: js/GraphicsBlocks.js:826 +#: js/blocks/GraphicsBlocks.js:826 msgid "The Right block turns the turtle to the right." msgstr "" -#: js/GraphicsBlocks.js:835 +#: js/blocks/GraphicsBlocks.js:835 msgid "right1" msgstr "" -#: js/GraphicsBlocks.js:835 +#: js/blocks/GraphicsBlocks.js:835 #: plugins/rodi.rtp:77 #: plugins/rodi.rtp:340 #: plugins/rodi.rtp:375 msgid "right" msgstr "வலது" -#: js/GraphicsBlocks.js:899 +#: js/blocks/GraphicsBlocks.js:899 msgid "The Left block turns the mouse to the left." msgstr "" -#: js/GraphicsBlocks.js:906 +#: js/blocks/GraphicsBlocks.js:906 msgid "The Left block turns the turtle to the left." msgstr "" -#: js/GraphicsBlocks.js:915 +#: js/blocks/GraphicsBlocks.js:915 msgid "left1" msgstr "" -#: js/GraphicsBlocks.js:915 +#: js/blocks/GraphicsBlocks.js:915 #: plugins/rodi.rtp:79 #: plugins/rodi.rtp:339 #: plugins/rodi.rtp:362 msgid "left" msgstr "இடது" -#: js/GraphicsBlocks.js:967 -#: js/temperament.js:734 -#: js/temperament.js:933 +#: js/blocks/GraphicsBlocks.js:967 +#: js/widgets/temperament.js:875 +#: js/widgets/temperament.js:1078 #: plugins/rodi.rtp:69 #: plugins/rodi.rtp:387 msgid "back" msgstr "பின்னால்" -#: js/GraphicsBlocks.js:976 +#: js/blocks/GraphicsBlocks.js:976 msgid "The Back block moves the mouse backward." msgstr "" -#: js/GraphicsBlocks.js:983 +#: js/blocks/GraphicsBlocks.js:983 msgid "The Back block moves the turtle backward." msgstr "" -#: js/GraphicsBlocks.js:1050 +#: js/blocks/GraphicsBlocks.js:1050 #: plugins/rodi.rtp:71 #: plugins/rodi.rtp:400 msgid "forward" msgstr "முன்னோக்கி அனுப்பு" -#: js/GraphicsBlocks.js:1059 +#: js/blocks/GraphicsBlocks.js:1059 msgid "The Forward block moves the mouse forward." msgstr "" -#: js/GraphicsBlocks.js:1066 +#: js/blocks/GraphicsBlocks.js:1066 msgid "The Forward block moves the turtle forward." msgstr "" -#: js/GraphicsBlocks.js:1154 -#: js/GraphicsBlocks.js:1172 +#: js/blocks/GraphicsBlocks.js:1154 +#: js/blocks/GraphicsBlocks.js:1172 msgid "wrap" msgstr "" -#: js/OrnamentBlocks.js:32 -msgid "staccato factor" -msgstr "" - -#: js/OrnamentBlocks.js:108 -msgid "slur factor" -msgstr "" - -#: js/OrnamentBlocks.js:217 -#: js/OrnamentBlocks.js:309 -#.TRANS: the neighbor refers to a neighboring note, e.g., D is a neighbor of C -msgid "neighbor" -msgstr "" - -#: js/OrnamentBlocks.js:293 -msgid "The Neighbor block rapidly switches between neighboring pitches." -msgstr "" - -#: js/OrnamentBlocks.js:364 -msgid "glide" -msgstr "" - -#: js/OrnamentBlocks.js:479 -#: js/OrnamentBlocks.js:643 -msgid "slur" -msgstr "" - -#: js/OrnamentBlocks.js:558 -#: js/OrnamentBlocks.js:710 -#.TRANS: play each note sharply detached from the others -msgid "staccato" -msgstr "" - -#: js/PenBlocks.js:24 +#: js/blocks/PenBlocks.js:30 msgid "purple" msgstr "" -#: js/PenBlocks.js:37 -#: js/SensorsBlocks.js:521 -#: plugins/rodi.rtp:219 -msgid "blue" -msgstr "" - -#: js/PenBlocks.js:50 -#: js/SensorsBlocks.js:577 -#: plugins/rodi.rtp:218 -msgid "green" -msgstr "" - -#: js/PenBlocks.js:63 +#: js/blocks/PenBlocks.js:80 msgid "yellow" msgstr "" -#: js/PenBlocks.js:76 +#: js/blocks/PenBlocks.js:96 #: plugins/nutrition.rtp:164 msgid "orange" msgstr "ஆரஞ்சு" -#: js/PenBlocks.js:89 -#: js/SensorsBlocks.js:633 -#: plugins/rodi.rtp:217 -msgid "red" -msgstr "" - -#: js/PenBlocks.js:102 +#: js/blocks/PenBlocks.js:128 msgid "white" msgstr "" -#: js/PenBlocks.js:115 +#: js/blocks/PenBlocks.js:144 msgid "black" msgstr "" -#: js/PenBlocks.js:128 +#: js/blocks/PenBlocks.js:163 msgid "begin fill" msgstr "" -#: js/PenBlocks.js:143 +#: js/blocks/PenBlocks.js:190 msgid "end fill" msgstr "கடைசி நிரப்பல்" -#: js/PenBlocks.js:159 -#: js/PenBlocks.js:386 +#: js/blocks/PenBlocks.js:212 +#: js/blocks/PenBlocks.js:560 #.TRANS: set the background color msgid "background" msgstr "" -#: js/PenBlocks.js:206 -#: js/DictActions.js:71 -#: js/DictActions.js:149 -#: js/DictActions.js:186 +#: js/blocks/PenBlocks.js:274 +#: js/turtleactions/DictActions.js:71 +#: js/turtleactions/DictActions.js:138 +#: js/turtleactions/DictActions.js:170 msgid "grey" msgstr "" -#: js/PenBlocks.js:210 +#: js/blocks/PenBlocks.js:282 msgid "The Grey block returns the current pen grey value." msgstr "" -#: js/PenBlocks.js:243 -#: js/DictActions.js:69 -#: js/DictActions.js:147 -#: js/DictActions.js:185 +#: js/blocks/PenBlocks.js:340 +#: js/turtleactions/DictActions.js:69 +#: js/turtleactions/DictActions.js:136 +#: js/turtleactions/DictActions.js:169 msgid "shade" msgstr "நிழல்" -#: js/PenBlocks.js:247 +#: js/blocks/PenBlocks.js:347 msgid "The Shade block returns the current pen shade value." msgstr "" -#: js/PenBlocks.js:280 -#: js/DictActions.js:67 -#: js/DictActions.js:145 -#: js/DictActions.js:184 +#: js/blocks/PenBlocks.js:405 +#: js/turtleactions/DictActions.js:67 +#: js/turtleactions/DictActions.js:134 +#: js/turtleactions/DictActions.js:168 msgid "color" msgstr "நிறம்" -#: js/PenBlocks.js:285 +#: js/blocks/PenBlocks.js:415 msgid "The Color block returns the current pen color." msgstr "" -#: js/PenBlocks.js:318 -#: js/DictActions.js:73 -#: js/DictActions.js:151 -#: js/DictActions.js:187 +#: js/blocks/PenBlocks.js:470 +#: js/turtleactions/DictActions.js:73 +#: js/turtleactions/DictActions.js:140 +#: js/turtleactions/DictActions.js:171 msgid "pen size" msgstr "பேனை அளவு" -#: js/PenBlocks.js:322 +#: js/blocks/PenBlocks.js:474 msgid "The Pen size block returns the current pen size value." msgstr "" -#: js/PenBlocks.js:355 +#: js/blocks/PenBlocks.js:513 msgid "set font" msgstr "" -#: js/PenBlocks.js:358 +#: js/blocks/PenBlocks.js:518 msgid "The Set font block sets the font used by the Show block." msgstr "" -#: js/PenBlocks.js:391 +#: js/blocks/PenBlocks.js:567 msgid "The Background block sets the window background color." msgstr "" -#: js/PenBlocks.js:408 +#: js/blocks/PenBlocks.js:598 msgid "The Hollow line block creates a line with a hollow center." msgstr "" -#: js/PenBlocks.js:415 +#: js/blocks/PenBlocks.js:606 #.TRANS: draw a line logo has a hollow space down its center msgid "hollow line" msgstr "" -#: js/PenBlocks.js:462 +#: js/blocks/PenBlocks.js:675 msgid "The Fill block fills in a shape with a color." msgstr "" -#: js/PenBlocks.js:470 +#: js/blocks/PenBlocks.js:684 #.TRANS: fill in as a solid color msgid "fill" msgstr "" -#: js/PenBlocks.js:527 +#: js/blocks/PenBlocks.js:761 #.TRANS: raise up the pen so logo it does not draw when it is moved msgid "pen up" msgstr "பேனை மேலே" -#: js/PenBlocks.js:532 +#: js/blocks/PenBlocks.js:768 msgid "The Pen-up block raises the pen so that it does not draw." msgstr "" -#: js/PenBlocks.js:552 +#: js/blocks/PenBlocks.js:802 #.TRANS: put down the pen so logo it draws when it is moved msgid "pen down" msgstr "பேனை கீழே" -#: js/PenBlocks.js:557 +#: js/blocks/PenBlocks.js:810 msgid "The Pen-down block lowers the pen so that it draws." msgstr "" -#: js/PenBlocks.js:577 +#: js/blocks/PenBlocks.js:844 #.TRANS: set the width of the line drawn by the pen msgid "set pen size" msgstr "பேனையின் அளவினை ஒழுங்குபடுத்து" -#: js/PenBlocks.js:583 +#: js/blocks/PenBlocks.js:854 msgid "The Set-pen-size block changes the size of the pen." msgstr "" -#: js/PenBlocks.js:623 +#: js/blocks/PenBlocks.js:913 #.TRANS: set degree of translucence of the pen color msgid "set translucency" msgstr "" -#: js/PenBlocks.js:627 +#: js/blocks/PenBlocks.js:921 msgid "The Set translucency block changes the opacity of the pen." msgstr "" -#: js/PenBlocks.js:668 +#: js/blocks/PenBlocks.js:981 msgid "set hue" msgstr "" -#: js/PenBlocks.js:672 +#: js/blocks/PenBlocks.js:989 msgid "The Set hue block changes the color of the pen." msgstr "" -#: js/PenBlocks.js:711 +#: js/blocks/PenBlocks.js:1047 msgid "set shade" msgstr "நிழலை ஒழுங்கு படுத்து" -#: js/PenBlocks.js:717 +#: js/blocks/PenBlocks.js:1057 msgid "The Set-shade block changes the pen color from dark to light." msgstr "" -#: js/PenBlocks.js:757 +#: js/blocks/PenBlocks.js:1111 #.TRANS: set the level of vividness of the pen color msgid "set grey" msgstr "" -#: js/PenBlocks.js:761 +#: js/blocks/PenBlocks.js:1119 msgid "The Set grey block changes the vividness of the pen color." msgstr "" -#: js/PenBlocks.js:800 +#: js/blocks/PenBlocks.js:1172 msgid "set color" msgstr "நிறத்தை ஒழுங்கு படுத்து" -#: js/PenBlocks.js:806 +#: js/blocks/PenBlocks.js:1182 msgid "The Set-color block changes the pen color." msgstr "" -#: js/VolumeBlocks.js:35 -msgid "synth volume" -msgstr "" - -#: js/VolumeBlocks.js:39 -msgid "The Synth volume block returns the current volume of the current synthesizer." -msgstr "" - -#: js/VolumeBlocks.js:47 -#: js/musicutils.js:730 -#: js/synthutils.js:56 -#.TRANS: musical instrument -msgid "piano" -msgstr "" - -#: js/VolumeBlocks.js:105 -msgid "master volume" -msgstr "" - -#: js/VolumeBlocks.js:109 -msgid "The Master volume block returns the master volume." -msgstr "" - -#: js/VolumeBlocks.js:355 -#: js/VolumeBlocks.js:524 -msgid "set synth volume" -msgstr "" - -#: js/VolumeBlocks.js:362 -#: js/VolumeBlocks.js:545 -msgid "synth" -msgstr "" - -#: js/VolumeBlocks.js:403 -#: js/VolumeBlocks.js:577 -#: js/VolumeBlocks.js:740 -#: js/VolumeActions.js:173 -msgid "Setting volume to 0." -msgstr "" - -#: js/VolumeBlocks.js:440 -msgid "Synth not found" -msgstr "" - -#: js/VolumeBlocks.js:494 -msgid "set drum volume" -msgstr "" - -#: js/VolumeBlocks.js:530 -msgid "The Set synth volume block will change the volume of a particular synth," -msgstr "" - -#: js/VolumeBlocks.js:532 -msgid "eg guitar violin snare drum etc." -msgstr "" - -#: js/VolumeBlocks.js:534 -msgid "The default volume is 50." -msgstr "" - -#: js/VolumeBlocks.js:536 -msgid "The range is 0 for silence to 100 for full volume." -msgstr "" - -#: js/VolumeBlocks.js:597 -msgid "set panning" -msgstr "" - -#: js/VolumeBlocks.js:603 -msgid "The Set Panning block sets the panning for all synthesizers." -msgstr "" - -#: js/VolumeBlocks.js:625 -msgid "Warning: Sound is coming out from only the left or right side." -msgstr "" - -#: js/VolumeBlocks.js:647 -#: js/VolumeBlocks.js:695 -msgid "set master volume" -msgstr "" - -#: js/VolumeBlocks.js:653 -msgid "The Set master volume block sets the volume for all synthesizers." -msgstr "" - -#: js/VolumeBlocks.js:784 -msgid "The Set relative volume block changes the volume of the contained notes." -msgstr "" - -#: js/VolumeBlocks.js:791 -msgid "set relative volume" -msgstr "" - -#: js/VolumeBlocks.js:857 -msgid "decrescendo" -msgstr "" - -#: js/VolumeBlocks.js:921 -msgid "crescendo" -msgstr "" - -#: js/ToneBlocks.js:34 -msgid "oscillator" -msgstr "" - -#: js/ToneBlocks.js:44 -#: js/timbre.js:1562 -#.TRANS: Partials refers to the number of sine waves combined into the sound. -msgid "partials" -msgstr "" - -#: js/ToneBlocks.js:76 -msgid "You are adding multiple oscillator blocks." -msgstr "" - -#: js/ToneBlocks.js:144 -#: js/timbre.js:1225 -#.TRANS: a duo synthesizer combines a synth with a sequencer -msgid "duo synth" -msgstr "" - -#: js/ToneBlocks.js:149 -msgid "The Duo synth block is a duo-frequency modulator used to define a timbre." -msgstr "" - -#: js/ToneBlocks.js:157 -#: js/timbre.js:1476 -msgid "vibrato rate" -msgstr "" - -#: js/ToneBlocks.js:157 -msgid "vibrato intensity" -msgstr "" - -#: js/ToneBlocks.js:185 -#: js/timbre.js:1221 -#.TRANS: AM (amplitude modulation) synthesizer -msgid "AM synth" -msgstr "" - -#: js/ToneBlocks.js:189 -msgid "The AM synth block is an amplitude modulator used to define a timbre." -msgstr "" - -#: js/ToneBlocks.js:224 -#: js/timbre.js:1223 -#.TRANS: FM (frequency modulation) synthesizer -msgid "FM synth" +#: js/blocks/PitchBlocks.js:141 +#.TRANS: musical transposition (adjustment of pitch up or down) +msgid "transposition" msgstr "" -#: js/ToneBlocks.js:228 -msgid "The FM synth block is a frequency modulator used to define a timbre." +#: js/blocks/PitchBlocks.js:168 +#.TRANS: step down one note in current musical scale +msgid "scalar step down" msgstr "" -#: js/ToneBlocks.js:262 -msgid "partial" +#: js/blocks/PitchBlocks.js:172 +msgid "The Scalar step down block returns the number of semi-tones down to the previous note in the current key and mode." msgstr "" -#: js/ToneBlocks.js:265 -msgid "The Partial block is used to specify a weight for a specific partial harmonic." +#: js/blocks/PitchBlocks.js:190 +#.TRANS: step up one note in current musical scale +msgid "scalar step up" msgstr "" -#: js/ToneBlocks.js:284 -#.TRANS: partials are weighted components in a harmonic series -msgid "Partial weight must be between 0 and 1." +#: js/blocks/PitchBlocks.js:194 +msgid "The Scalar step up block returns the number of semi-tones up to the next note in the current key and mode." msgstr "" -#: js/ToneBlocks.js:297 -#.TRANS: partials are weighted components in a harmonic series -msgid "Partial block should be used inside of a Weighted-partials block." +#: js/blocks/PitchBlocks.js:212 +#.TRANS: the change measured in half-steps between the current pitch and the previous pitch +msgid "change in pitch" msgstr "" -#: js/ToneBlocks.js:325 -#.TRANS: partials are weighted components in a harmonic series -msgid "weighted partials" +#: js/blocks/PitchBlocks.js:216 +msgid "The Change in pitch block is the difference (in half steps) between the current pitch being played and the previous pitch played." msgstr "" -#: js/ToneBlocks.js:383 -msgid "The Harmonic block will add harmonics to the contained notes." +#: js/blocks/PitchBlocks.js:243 +#.TRANS: the change measured in scale-steps between the current pitch and the previous pitch +msgid "scalar change in pitch" msgstr "" -#: js/ToneBlocks.js:390 -#.TRANS: A harmonic is an overtone. -msgid "harmonic" +#: js/blocks/PitchBlocks.js:250 +#: js/blocks/PitchBlocks.js:432 +#: js/blocks/PitchBlocks.js:1667 +#: js/turtleactions/DictActions.js:89 +#: js/widgets/temperament.js:610 +#: js/widgets/temperament.js:614 +#: js/widgets/temperament.js:855 +#.TRANS: convert current note to piano key (1-88) +#.TRANS: a mapping of pitch to the 88 piano keys +msgid "pitch number" msgstr "" -#: js/ToneBlocks.js:431 -msgid "The Distortion block adds distortion to the pitch." +#: js/blocks/PitchBlocks.js:256 +msgid "The Pitch number block is the value of the pitch of the note currently being played." msgstr "" -#: js/ToneBlocks.js:438 -#: js/timbre.js:2100 -#.TRANS: distortion is an alteration in the sound -msgid "distortion" +#: js/blocks/PitchBlocks.js:329 +#: js/blocks/PitchBlocks.js:433 +#.TRANS: the current pitch expressed in Hertz +msgid "pitch in hertz" msgstr "" -#: js/ToneBlocks.js:487 -msgid "The Tremolo block adds a wavering effect." +#: js/blocks/PitchBlocks.js:334 +msgid "The Pitch in Hertz block is the value in Hertz of the pitch of the note currently being played." msgstr "" -#: js/ToneBlocks.js:495 -#: js/timbre.js:2092 -#.TRANS: a wavering effect in a musical tone -msgid "tremolo" +#: js/blocks/PitchBlocks.js:367 +#: js/turtleactions/DictActions.js:87 +msgid "current pitch" msgstr "" -#: js/ToneBlocks.js:500 -#: js/ToneBlocks.js:569 -#: js/ToneBlocks.js:630 -#: js/ToneBlocks.js:689 -#: js/timbre.js:2134 -#: js/timbre.js:2222 -#: js/timbre.js:2317 -#: js/timbre.js:2419 -#.TRANS: rate at which tremolo wavers -msgid "rate" +#: js/blocks/PitchBlocks.js:373 +msgid "The Current Pitch block is used with the Pitch Converter block. In the example above, current pitch, sol 4, is displayed as 392 hertz." msgstr "" -#: js/ToneBlocks.js:502 -#: js/ToneBlocks.js:630 -#: js/timbre.js:2137 -#: js/timbre.js:2328 -#.TRANS: amplitude of tremolo waver -msgid "depth" +#: js/blocks/PitchBlocks.js:410 +msgid "This block converts the pitch value of the last note played into different formats such as hertz, letter name, pitch number, et al." msgstr "" -#: js/ToneBlocks.js:559 -msgid "The Phaser block adds a sweeping sound." +#: js/blocks/PitchBlocks.js:434 +msgid "alphabet" msgstr "" -#: js/ToneBlocks.js:566 -#: js/timbre.js:2098 -#.TRANS: alter the phase of the sound -msgid "phaser" +#: js/blocks/PitchBlocks.js:436 +#.TRANS: Translate as "alphabet class" +msgid "letter class" msgstr "" -#: js/ToneBlocks.js:569 -#: js/timbre.js:2422 -msgid "octaves" +#: js/blocks/PitchBlocks.js:437 +msgid "solfege class" msgstr "" -#: js/ToneBlocks.js:569 -#: js/timbre.js:2425 -msgid "base frequency" +#: js/blocks/PitchBlocks.js:438 +msgid "staff y" msgstr "" -#: js/ToneBlocks.js:619 -msgid "The Chorus block adds a chorus effect." +#: js/blocks/PitchBlocks.js:439 +msgid "solfege syllable" msgstr "" -#: js/ToneBlocks.js:627 -#: js/timbre.js:2096 -#.TRANS: musical effect to simulate a choral sound -msgid "chorus" +#: js/blocks/PitchBlocks.js:440 +msgid "pitch class" msgstr "" -#: js/ToneBlocks.js:630 -msgid "delay" +#: js/blocks/PitchBlocks.js:441 +msgid "scalar class" msgstr "" -#: js/ToneBlocks.js:678 -msgid "The Vibrato block adds a rapid, slight variation in pitch." +#: js/blocks/PitchBlocks.js:443 +msgid "nth degree" msgstr "" -#: js/ToneBlocks.js:686 -#: js/timbre.js:2094 -#.TRANS: a rapid, slight variation in pitch -msgid "vibrato" +#: js/blocks/PitchBlocks.js:444 +msgid "pitch to shade" msgstr "" -#: js/ToneBlocks.js:689 -#: js/timbre.js:2221 -msgid "intensity" +#: js/blocks/PitchBlocks.js:445 +msgid "pitch to color" msgstr "" -#: js/ToneBlocks.js:733 -#.TRANS: select synthesizer -msgid "set synth" +#: js/blocks/PitchBlocks.js:629 +#: js/widgets/musickeyboard.js:735 +#.TRANS: MIDI is a technical standard for electronic music +msgid "MIDI" msgstr "" -#: js/ToneBlocks.js:804 -msgid "synth name" +#: js/blocks/PitchBlocks.js:642 +#.TRANS: set an offset associated with the numeric piano keyboard mapping +msgid "set pitch number offset" msgstr "" -#: js/ToneBlocks.js:842 -msgid "set default instrument" +#: js/blocks/PitchBlocks.js:645 +msgid "The Set pitch number offset block is used to set the offset for mapping pitch numbers to pitch and octave." msgstr "" -#: js/ToneBlocks.js:895 -#: js/ToneBlocks.js:943 -#.TRANS: set the characteristics of a custom instrument -msgid "set instrument" +#: js/blocks/PitchBlocks.js:679 +#.TRANS: convert piano key number (1-88) to pitch +msgid "number to pitch" msgstr "" -#: js/ToneBlocks.js:898 -#: js/ToneBlocks.js:926 -#: js/ToneBlocks.js:932 -msgid "The Set instrument block selects a voice for the synthesizer," +#: js/blocks/PitchBlocks.js:682 +msgid "The Number to pitch block will convert a pitch number to a pich name." msgstr "" -#: js/ToneBlocks.js:900 -#: js/ToneBlocks.js:934 -msgid "eg guitar piano violin or cello." +#: js/blocks/PitchBlocks.js:715 +#.TRANS: convert piano key number (1-88) to octave +msgid "number to octave" msgstr "" -#: js/ToneBlocks.js:1015 -msgid "Import a sound file to use as an instrument and set its pitch center." +#: js/blocks/PitchBlocks.js:717 +msgid "The Number to octave block will convert a pitch number to an octave." msgstr "" -#: js/ToneBlocks.js:1110 -msgid "Upload a sound file to connect with the sample block." +#: js/blocks/PitchBlocks.js:726 +msgid "y to pitch" msgstr "" -#: js/MeterBlocks.js:34 -#.TRANS: musical meter (time signature), e.g., 4:4 -msgid "current meter" +#: js/blocks/PitchBlocks.js:729 +msgid "Y to pitch block will convert a staff y position to corresponding pitch notation." msgstr "" -#: js/MeterBlocks.js:85 -#.TRANS: number of beats per minute -msgid "beat factor" +#: js/blocks/PitchBlocks.js:841 +msgid "accidental selector" msgstr "" -#: js/MeterBlocks.js:161 -msgid "The Beats per minute block returns the current beats per minute." +#: js/blocks/PitchBlocks.js:844 +msgid "The Accidental selector block is used to choose between double-sharp, sharp, natural, flat, and double-flat." msgstr "" -#: js/MeterBlocks.js:169 -#: js/status.js:152 -#.TRANS: number of beats played per minute -msgid "beats per minute2" +#: js/blocks/PitchBlocks.js:858 +msgid "Pitch can be specified in terms of ni dha pa ma ga re sa." msgstr "" -#: js/MeterBlocks.js:169 -#: js/MeterBlocks.js:1056 -#: js/MeterBlocks.js:1133 -#: js/MeterBlocks.js:1211 -#.TRANS: sets tempo by defining a beat and beats per minute -msgid "beats per minute" +#: js/blocks/PitchBlocks.js:872 +msgid "Pitch can be specified in terms of C D E F G A B." msgstr "" -#: js/MeterBlocks.js:233 -#.TRANS: count of current musical measure in meter -msgid "measure count" +#: js/blocks/PitchBlocks.js:884 +msgid "solfege" msgstr "" -#: js/MeterBlocks.js:241 -msgid "The Measure count block returns the current measure." +#: js/blocks/PitchBlocks.js:887 +msgid "Pitch can be specified in terms of do re mi fa sol la ti." msgstr "" -#: js/MeterBlocks.js:290 -#.TRANS: count of current beat in the meter -msgid "beat count" +#: js/blocks/PitchBlocks.js:922 +msgid "The Invert block rotates any contained notes around a target note." msgstr "" -#: js/MeterBlocks.js:300 -#: js/MeterBlocks.js:311 -#: js/MeterBlocks.js:565 -#: js/MeterBlocks.js:576 -msgid "The Beat count block is the number of the current beat," +#: js/blocks/PitchBlocks.js:929 +#.TRANS: pitch inversion rotates a pitch around another pitch +msgid "invert" msgstr "" -#: js/MeterBlocks.js:313 -#: js/MeterBlocks.js:578 -msgid "eg 1, 2, 3, or 4." +#: js/blocks/PitchBlocks.js:968 +#.TRANS: pitch inversion rotates a pitch around another pitch (odd number) +msgid "invert (odd)" msgstr "" -#: js/MeterBlocks.js:368 -#.TRANS: count the number of notes -msgid "sum note values" +#: js/blocks/PitchBlocks.js:1001 +#.TRANS: pitch inversion rotates a pitch around another pitch (even number) +msgid "invert (even)" msgstr "" -#: js/MeterBlocks.js:376 -#: js/MeterBlocks.js:440 -msgid "The Note counter block can be used to count the number of contained notes." +#: js/blocks/PitchBlocks.js:1022 +#.TRANS: register is the octave of the current pitch +msgid "register" msgstr "" -#: js/MeterBlocks.js:432 -#.TRANS: count the number of notes -msgid "note counter" +#: js/blocks/PitchBlocks.js:1026 +msgid "The Register block provides an easy way to modify the register (octave) of the notes that follow it." msgstr "" -#: js/MeterBlocks.js:496 -#.TRANS: number of whole notes that have been played -msgid "whole notes played" +#: js/blocks/PitchBlocks.js:1047 +#.TRANS: cents are units used to specify the ratio between pitches. There are 100 cents between successive notes. +msgid "50 cents" msgstr "" -#: js/MeterBlocks.js:505 -msgid "The Whole notes played block returns the total number of whole notes played." +#: js/blocks/PitchBlocks.js:1102 +msgid "The Semi-tone transposition block will shift the pitches contained inside Note blocks up (or down) by half steps." msgstr "" -#: js/MeterBlocks.js:555 -#: js/DictActions.js:83 -#.TRANS: number of notes that have been played -msgid "notes played" +#: js/blocks/PitchBlocks.js:1104 +msgid "In the example shown above, sol is shifted up to sol#." msgstr "" -#: js/MeterBlocks.js:653 -msgid "The No clock block decouples the notes from the master clock." +#: js/blocks/PitchBlocks.js:1110 +#.TRANS: adjust the amount of shift (up or down) of a pitch +msgid "semi-tone transpose" msgstr "" -#: js/MeterBlocks.js:661 -#.TRANS: don't lock notes to master clock -msgid "no clock" +#: js/blocks/PitchBlocks.js:1143 +msgid "The Transpose by Ratio block will shift the pitches contained inside Note blocks up (or down) by a ratio" msgstr "" -#: js/MeterBlocks.js:700 -msgid "on weak beat do" +#: js/blocks/PitchBlocks.js:1149 +#.TRANS: adjust the amount of shift (up or down) of a pitch +msgid "transpose by ratio" msgstr "" -#: js/MeterBlocks.js:705 -msgid "The On-weak-beat block lets you specify actions to take on weak (off) beats." +#: js/blocks/PitchBlocks.js:1232 +#.TRANS: down sixth means the note is five scale degrees below current note +msgid "down sixth" msgstr "" -#: js/MeterBlocks.js:750 -msgid "on strong beat" +#: js/blocks/PitchBlocks.js:1251 +#.TRANS: down third means the note is two scale degrees below current note +msgid "down third" msgstr "" -#: js/MeterBlocks.js:758 -msgid "The On-strong-beat block lets you specify actions to take on specified beats." +#: js/blocks/PitchBlocks.js:1270 +#.TRANS: seventh means the note is the six scale degrees above current note +msgid "seventh" msgstr "" -#: js/MeterBlocks.js:769 -msgid "beat" +#: js/blocks/PitchBlocks.js:1289 +#.TRANS: sixth means the note is the five scale degrees above current note +msgid "sixth" msgstr "" -#: js/MeterBlocks.js:813 -msgid "on every beat do" +#: js/blocks/PitchBlocks.js:1308 +#.TRANS: fifth means the note is the four scale degrees above current note +msgid "fifth" msgstr "" -#: js/MeterBlocks.js:821 -msgid "The On-every-beat block lets you specify actions to take on every beat." +#: js/blocks/PitchBlocks.js:1328 +#.TRANS: fourth means the note is three scale degrees above current note +msgid "fourth" msgstr "" -#: js/MeterBlocks.js:874 -msgid "on every note do" +#: js/blocks/PitchBlocks.js:1347 +#.TRANS: third means the note is two scale degrees above current note +msgid "third" msgstr "" -#: js/MeterBlocks.js:882 -msgid "The On-every-note block lets you specify actions to take on every note." +#: js/blocks/PitchBlocks.js:1366 +#.TRANS: second means the note is one scale degree above current note +msgid "second" msgstr "" -#: js/MeterBlocks.js:928 -#: js/MeterBlocks.js:999 -#.TRANS: sets tempo by defining a beat and beats per minute -msgid "master beats per minute" +#: js/blocks/PitchBlocks.js:1407 +msgid "The Scalar transposition block will shift the pitches contained inside Note blocks up (or down) the scale." msgstr "" -#: js/MeterBlocks.js:952 -#: js/MeterBlocks.js:1078 -#: js/MeterBlocks.js:1135 -msgid "bpm" +#: js/blocks/PitchBlocks.js:1409 +msgid "In the example shown above, sol is shifted up to la." msgstr "" -#: js/MeterBlocks.js:952 -#: js/MeterBlocks.js:1078 -#: js/MeterBlocks.js:1135 -msgid "beat value" +#: js/blocks/PitchBlocks.js:1416 +#.TRANS: adjust the amount of shift (up or down) of a pitch by musical scale (scalar) steps +msgid "scalar transpose" msgstr "" -#: js/MeterBlocks.js:1024 -#: js/MeterBlocks.js:1167 -#: js/MeterBlocks.js:1241 -msgid "Beats per minute must be > 30." +#: js/blocks/PitchBlocks.js:1451 +msgid "The Accidental block is used to create sharps and flats" msgstr "" -#: js/MeterBlocks.js:1027 -#: js/MeterBlocks.js:1170 -#: js/MeterBlocks.js:1244 -msgid "Maximum beats per minute is 1000." +#: js/blocks/PitchBlocks.js:1458 +#.TRANS: An accidental is a modification to a pitch, e.g., sharp or flat. +msgid "accidental override" msgstr "" -#: js/MeterBlocks.js:1068 -msgid "The Beats per minute block sets the number of 1/4 notes per minute." +#: js/blocks/PitchBlocks.js:1581 +msgid "The Hertz block (in combination with a Number block) will play a sound at the specified frequency." msgstr "" -#: js/MeterBlocks.js:1279 -#.TRANS: anacrusis -msgid "pickup" +#: js/blocks/PitchBlocks.js:1671 +msgid "The Pitch Number block will play a pitch associated by its number, e.g. 0 for C and 7 for G." msgstr "" -#: js/MeterBlocks.js:1367 -msgid "number of beats" +#: js/blocks/PitchBlocks.js:1703 +#: js/blocks/PitchBlocks.js:1745 +#.TRANS: a numeric mapping of the notes in an octave based on the musical mode +#.TRANS: a numeric mapping of the notes in an octave based on the musical mode +msgid "nth modal pitch" msgstr "" -#: js/DictBlocks.js:77 -msgid "show dictionary" +#: js/blocks/PitchBlocks.js:1706 +msgid "n^th Modal Pitch takes the pattern of pitches in semitones for a mode and makes each point a degree of the mode," msgstr "" -#: js/DictBlocks.js:129 -msgid "The Dictionary block returns a dictionary." +#: js/blocks/PitchBlocks.js:1708 +msgid "starting from 1 and regardless of tonal framework (i.e. not always 8 notes in the octave)" msgstr "" -#: js/DictBlocks.js:197 -#: js/DictBlocks.js:339 -msgid "The Get-dict block returns a value in the dictionary for a specified key." +#: js/blocks/PitchBlocks.js:1749 +msgid "N^th Modal Pitch takes a number as an input as the n^th degree for the given mode. 0 is the first position, 1 is the second, -1 is the note before the first etc." msgstr "" -#: js/DictBlocks.js:212 -#: js/DictBlocks.js:354 -#.TRANS: retrieve a value from the dictionary with a given key -msgid "get value" +#: js/blocks/PitchBlocks.js:1751 +msgid "The pitches change according to the mode specified without any need for respellings." msgstr "" -#: js/DictBlocks.js:215 -#: js/DictBlocks.js:216 -#: js/DictBlocks.js:289 -#: js/DictBlocks.js:290 -#: js/DictBlocks.js:357 -#: js/DictBlocks.js:430 -#: js/DictBlocks.js:431 -msgid "key2" +#: js/blocks/PitchBlocks.js:1790 +msgid "Scale Degree is a common convention in music. Scale Degree offers seven possible positions in the scale (1-7) and can be modified via accidentals." msgstr "" -#: js/DictBlocks.js:271 -#: js/DictBlocks.js:411 -msgid "The Set-dict block sets a value in the dictionary for a specified key." +#: js/blocks/PitchBlocks.js:1792 +msgid "Scale Degree 1 is always the first pitch in a given scale, regardless of octave." msgstr "" -#: js/DictBlocks.js:286 -#: js/DictBlocks.js:427 -#.TRANS: set a value in the dictionary for a given key -msgid "set value" +#: js/blocks/PitchBlocks.js:1814 +#.TRANS: step some number of notes in current musical scale +msgid "scalar step" msgstr "" -#: js/ExtrasBlocks.js:33 -msgid "fraction" +#: js/blocks/PitchBlocks.js:1819 +msgid "The Scalar Step block (in combination with a Number block) will play the next pitch in a scale," msgstr "" -#: js/ExtrasBlocks.js:36 -msgid "Convert a float to a fraction" +#: js/blocks/PitchBlocks.js:1821 +msgid "eg if the last note played was sol, Scalar Step 1 will play la." msgstr "" -#: js/ExtrasBlocks.js:93 -msgid "save as ABC" +#: js/blocks/PitchBlocks.js:1857 +msgid "The Pitch block specifies the pitch name and octave of a note that together determine the frequency of the note." msgstr "" -#: js/ExtrasBlocks.js:96 -#: js/ExtrasBlocks.js:132 -#: js/ExtrasBlocks.js:168 -msgid "title" +#: js/blocks/ProgramBlocks.js:33 +msgid "The Load-heap-from-app block loads the heap from a web page." msgstr "" -#: js/ExtrasBlocks.js:129 -msgid "save as Lilypond" +#: js/blocks/ProgramBlocks.js:44 +#.TRANS: load the heap contents from a URL +msgid "load heap from App" msgstr "" -#: js/ExtrasBlocks.js:165 -msgid "save as SVG" +#: js/blocks/ProgramBlocks.js:95 +msgid "Error parsing JSON data:" msgstr "" -#: js/ExtrasBlocks.js:216 -msgid "no background" +#: js/blocks/ProgramBlocks.js:100 +msgid "404: Page not found" msgstr "" -#: js/ExtrasBlocks.js:219 -msgid "The No background block eliminates the background from the saved SVG output." +#: js/blocks/ProgramBlocks.js:133 +msgid "The Save-heap-to-app block saves the heap to a web page." msgstr "" -#: js/ExtrasBlocks.js:247 -msgid "show blocks" -msgstr "தொகுதியைக்காட்டு" - -#: js/ExtrasBlocks.js:249 -msgid "The Show blocks block shows the blocks." +#: js/blocks/ProgramBlocks.js:144 +#.TRANS: save the heap contents to a URL +msgid "save heap to App" msgstr "" -#: js/ExtrasBlocks.js:274 -msgid "hide blocks" -msgstr "மறைந்துள்ள தொகுதி" +#: js/blocks/ProgramBlocks.js:189 +msgid "Cannot find a valid heap for" +msgstr "" -#: js/ExtrasBlocks.js:276 -msgid "The Hide blocks block hides the blocks." +#: js/blocks/ProgramBlocks.js:206 +msgid "The Load-heap block loads the heap from a file." msgstr "" -#: js/ExtrasBlocks.js:305 -#: js/ExtrasBlocks.js:335 -msgid "The Space block is used to add space between blocks." +#: js/blocks/ProgramBlocks.js:217 +#.TRANS: load the heap from a file +msgid "load heap" msgstr "" -#: js/ExtrasBlocks.js:373 -msgid "wait" -msgstr "பொறு" +#: js/blocks/ProgramBlocks.js:270 +msgid "The file you selected does not contain a valid heap." +msgstr "" -#: js/ExtrasBlocks.js:376 -msgid "The Wait block pauses the program for a specified number of seconds." +#: js/blocks/ProgramBlocks.js:275 +msgid "The loadHeap block needs a loadFile block." msgstr "" -#: js/ExtrasBlocks.js:430 -#: plugins/facebook.rtp:30 -msgid "comment" -msgstr "கருத்து தெறிவி" +#: js/blocks/ProgramBlocks.js:291 +msgid "The Set-heap block loads the heap." +msgstr "" -#: js/ExtrasBlocks.js:466 -msgid "print" -msgstr "அச்சு" +#: js/blocks/ProgramBlocks.js:340 +msgid "The block you selected does not contain a valid heap." +msgstr "" -#: js/ExtrasBlocks.js:473 -msgid "The Print block displays text at the top of the screen." +#: js/blocks/ProgramBlocks.js:343 +msgid "The Set heap block needs a heap." msgstr "" -#: js/ExtrasBlocks.js:579 -msgid "display grid" +#: js/blocks/ProgramBlocks.js:360 +msgid "The Load-dictionary block loads a dictionary from a file." msgstr "" -#: js/ExtrasBlocks.js:584 -msgid "The Display Grid Block changes the grid type" +#: js/blocks/ProgramBlocks.js:372 +#.TRANS: load a dictionary from a file +msgid "load dictionary" msgstr "" -#: js/ExtrasBlocks.js:686 -#: js/ExtrasBlocks.js:705 -#: js/ExtrasBlocks.js:728 -#: js/ExtrasBlocks.js:751 -#: js/ExtrasBlocks.js:769 -#: js/ExtrasBlocks.js:788 -#: js/ExtrasBlocks.js:807 -#: js/ExtrasBlocks.js:826 -msgid "unknown" +#: js/blocks/ProgramBlocks.js:390 +#: js/blocks/ProgramBlocks.js:658 +#: js/blocks/ToneBlocks.js:1025 +msgid "file" msgstr "" -#: js/SensorsBlocks.js:36 -msgid "The Input block prompts for keyboard input." +#: js/blocks/ProgramBlocks.js:444 +msgid "The file you selected does not contain a valid dictionary." msgstr "" -#: js/SensorsBlocks.js:46 -msgid "input" +#: js/blocks/ProgramBlocks.js:449 +msgid "The load dictionary block needs a load file block." msgstr "" -#: js/SensorsBlocks.js:64 -msgid "Input a value" +#: js/blocks/ProgramBlocks.js:466 +msgid "The Set-dictionary block loads a dictionary." msgstr "" -#: js/SensorsBlocks.js:126 -msgid "input value" +#: js/blocks/ProgramBlocks.js:477 +#.TRANS: load a dictionary from a JSON +msgid "set dictionary" msgstr "" -#: js/SensorsBlocks.js:131 -msgid "The Input-value block stores the input." +#: js/blocks/ProgramBlocks.js:546 +msgid "The block you selected does not contain a valid dictionary." msgstr "" -#: js/SensorsBlocks.js:238 -msgid "loudness" -msgstr "சத்தமான.." +#: js/blocks/ProgramBlocks.js:550 +msgid "The set dictionary block needs a dictionary." +msgstr "" -#: js/SensorsBlocks.js:245 -msgid "The Loudness block returns the volume detected by the microphone." +#: js/blocks/ProgramBlocks.js:567 +msgid "The Save-heap block saves the heap to a file." msgstr "" -#: js/SensorsBlocks.js:300 -msgid "click" +#: js/blocks/ProgramBlocks.js:578 +#.TRANS: save the heap to a file +msgid "save heap" msgstr "" -#: js/SensorsBlocks.js:306 -msgid "The Click block triggers an event if a mouse has been clicked." +#: js/blocks/ProgramBlocks.js:629 +msgid "The Save-dictionary block saves a dictionary to a file." msgstr "" -#: js/SensorsBlocks.js:313 -msgid "The Click block triggers an event if a turtle has been clicked." +#: js/blocks/ProgramBlocks.js:640 +#.TRANS: save a dictionary to a file +msgid "save dictionary" msgstr "" -#: js/SensorsBlocks.js:342 -msgid "cursor over" +#: js/blocks/ProgramBlocks.js:720 +msgid "The Open palette block opens a palette." msgstr "" -#: js/SensorsBlocks.js:387 -msgid "cursor out" +#: js/blocks/ProgramBlocks.js:727 +msgid "open palette" msgstr "" -#: js/SensorsBlocks.js:433 -msgid "cursor button down" +#: js/blocks/ProgramBlocks.js:785 +msgid "The Delete block block removes a block." msgstr "" -#: js/SensorsBlocks.js:477 -msgid "cursor button up" +#: js/blocks/ProgramBlocks.js:797 +#.TRANS: Move this block to the trash. +msgid "delete block" msgstr "" -#: js/SensorsBlocks.js:638 -msgid "The Get red block returns the red component of the pixel under the mouse." +#: js/blocks/ProgramBlocks.js:861 +msgid "The Move block block moves a block." msgstr "" -#: js/SensorsBlocks.js:644 -msgid "The Get red block returns the red component of the pixel under the turtle." +#: js/blocks/ProgramBlocks.js:869 +#.TRANS: Move the position of a block on the screen. +msgid "move block" msgstr "" -#: js/SensorsBlocks.js:685 -#: plugins/rodi.rtp:216 -msgid "pixel color" +#: js/blocks/ProgramBlocks.js:881 +#: js/blocks/ProgramBlocks.js:1048 +msgid "block number" msgstr "" -#: js/SensorsBlocks.js:690 -msgid "The Get pixel block returns the color of the pixel under the mouse." +#: js/blocks/ProgramBlocks.js:935 +#.TRANS: Run program beginning at this block. +msgid "run block" msgstr "" -#: js/SensorsBlocks.js:696 -msgid "The Get pixel block returns the color of the pixel under the turtle." +#: js/blocks/ProgramBlocks.js:1025 +msgid "The Dock block block connections two blocks." msgstr "" -#: js/SensorsBlocks.js:758 -msgid "time" -msgstr "நேரம்" +#: js/blocks/ProgramBlocks.js:1036 +#.TRANS: We can connect a block to another block. +msgid "connect blocks" +msgstr "" -#: js/SensorsBlocks.js:804 -msgid "cursor y" +#: js/blocks/ProgramBlocks.js:1048 +msgid "target block" msgstr "" -#: js/SensorsBlocks.js:809 -msgid "The Cursor Y block returns the vertical position of the mouse." +#: js/blocks/ProgramBlocks.js:1048 +msgid "connection number" msgstr "" -#: js/SensorsBlocks.js:845 -msgid "cursor x" +#: js/blocks/ProgramBlocks.js:1140 +msgid "The Make block block creates a new block." msgstr "" -#: js/SensorsBlocks.js:850 -msgid "The Cursor X block returns the horizontal position of the mouse." +#: js/blocks/ProgramBlocks.js:1152 +#.TRANS: Create a new block +msgid "make block" msgstr "" -#: js/SensorsBlocks.js:886 -msgid "mouse button" +#: js/blocks/ProgramBlocks.js:1285 +msgid "Cannot find block" msgstr "" -#: js/SensorsBlocks.js:888 -msgid "The Mouse-button block returns True if the mouse button is pressed." +#: js/blocks/ProgramBlocks.js:1304 +#: js/blocks/ProgramBlocks.js:1313 +msgid "Warning: block argument type mismatch" msgstr "" -#: js/SensorsBlocks.js:934 -msgid "to ASCII" +#: js/blocks/ProgramBlocks.js:1347 +msgid "The Open project block is used to open a project from a web page." msgstr "" -#: js/SensorsBlocks.js:938 -msgid "The To ASCII block converts numbers to letters." +#: js/blocks/ProgramBlocks.js:1357 +msgid "open project" msgstr "" -#: js/SensorsBlocks.js:1005 -msgid "The Keyboard block returns computer keyboard input." +#: js/blocks/ProgramBlocks.js:1410 +msgid "Please enter a valid URL." msgstr "" -#: js/IntervalsActions.js:216 -msgid "Adding missing pitch number 0." +#: js/blocks/ToneBlocks.js:34 +msgid "oscillator" msgstr "" -#: js/IntervalsActions.js:224 -msgid "Ignoring pitch numbers less than zero or greater than eleven." +#: js/blocks/ToneBlocks.js:42 +#: js/blocks/WidgetBlocks.js:179 +#: js/widgets/timbre.js:1558 +#: js/widgets/timbre.js:1808 +#.TRANS: there are different types (sine, triangle, square...) of oscillators. +#.TRANS: type of filter, e.g., lowpass, highpass, etc. +msgid "type" msgstr "" -#: js/IntervalsActions.js:230 -msgid "Ignoring duplicate pitch numbers." +#: js/blocks/ToneBlocks.js:44 +#: js/widgets/timbre.js:1562 +#.TRANS: Partials refers to the number of sine waves combined into the sound. +msgid "partials" msgstr "" -#: js/PitchActions.js:88 -msgid "The Scalar Step Block must be used inside of a Note Block." +#: js/blocks/ToneBlocks.js:76 +msgid "You are adding multiple oscillator blocks." msgstr "" -#: js/PitchActions.js:107 -msgid "The Scalar Step Block must be preceded by a Pitch Block." +#: js/blocks/ToneBlocks.js:144 +#: js/widgets/timbre.js:1225 +#.TRANS: a duo synthesizer combines a synth with a sequencer +msgid "duo synth" msgstr "" -#: js/DrumActions.js:231 -msgid "Noise Block: Did you mean to use a Note block?" +#: js/blocks/ToneBlocks.js:149 +msgid "The Duo synth block is a duo-frequency modulator used to define a timbre." msgstr "" -#: js/MeterActions.js:101 -#: js/MeterActions.js:139 -msgid "beats per minute must be greater than" +#: js/blocks/ToneBlocks.js:157 +#: js/widgets/timbre.js:1476 +msgid "vibrato rate" msgstr "" -#: js/MeterActions.js:111 -#: js/MeterActions.js:149 -msgid "maximum" +#: js/blocks/ToneBlocks.js:157 +msgid "vibrato intensity" msgstr "" -#: js/MeterActions.js:117 -#: js/MeterActions.js:155 -msgid "beats per minute is" +#: js/blocks/ToneBlocks.js:185 +#: js/widgets/timbre.js:1221 +#.TRANS: AM (amplitude modulation) synthesizer +msgid "AM synth" msgstr "" -#: js/ToneActions.js:134 -msgid "Vibrato intensity must be between 1 and 100." +#: js/blocks/ToneBlocks.js:189 +msgid "The AM synth block is an amplitude modulator used to define a timbre." msgstr "" -#: js/ToneActions.js:139 -msgid "Vibrato rate must be greater than 0." +#: js/blocks/ToneBlocks.js:224 +#: js/widgets/timbre.js:1223 +#.TRANS: FM (frequency modulation) synthesizer +msgid "FM synth" msgstr "" -#: js/ToneActions.js:192 -#: js/ToneActions.js:265 -#.TRANS: Depth is the intesity of the tremolo or chorus effect. -msgid "Depth is out of range." +#: js/blocks/ToneBlocks.js:228 +msgid "The FM synth block is a frequency modulator used to define a timbre." msgstr "" -#: js/ToneActions.js:301 -msgid "Distortion must be from 0 to 100." +#: js/blocks/ToneBlocks.js:262 +msgid "partial" msgstr "" -#: js/ToneActions.js:332 -#.TRANS: partials components in a harmonic series -msgid "Partial must be greater than or equal to 0." +#: js/blocks/ToneBlocks.js:265 +msgid "The Partial block is used to specify a weight for a specific partial harmonic." msgstr "" -#: js/ToneActions.js:378 -#: js/ToneActions.js:417 -#: js/ToneActions.js:456 -#: js/timbre.js:782 -msgid "Unable to use synth due to existing oscillator" +#: js/blocks/ToneBlocks.js:284 +#.TRANS: partials are weighted components in a harmonic series +msgid "Partial weight must be between 0 and 1." msgstr "" -#: js/ToneActions.js:388 -#: js/ToneActions.js:427 -msgid "The input cannot be negative." +#: js/blocks/ToneBlocks.js:297 +#.TRANS: partials are weighted components in a harmonic series +msgid "Partial block should be used inside of a Weighted-partials block." msgstr "" -#: js/DictActions.js:75 -#: js/DictActions.js:153 -#: js/DictActions.js:188 -msgid "font" +#: js/blocks/ToneBlocks.js:325 +#.TRANS: partials are weighted components in a harmonic series +msgid "weighted partials" msgstr "" -#: js/musicutils.js:363 -#: js/musicutils.js:471 -#: js/pitchdrummatrix.js:151 -#: js/musickeyboard.js:2563 -msgid "rest" +#: js/blocks/ToneBlocks.js:383 +msgid "The Harmonic block will add harmonics to the contained notes." msgstr "" -#: js/musicutils.js:565 -#.TRANS: ordinal number. Please keep exactly one space between each number. -msgid "1st 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th" +#: js/blocks/ToneBlocks.js:390 +#.TRANS: A harmonic is an overtone. +msgid "harmonic" msgstr "" -#: js/musicutils.js:629 -#: js/musicutils.js:812 -#: js/musicutils.js:911 -#.TRANS: augmented is a music term related to intervals -msgid "augmented" +#: js/blocks/ToneBlocks.js:431 +msgid "The Distortion block adds distortion to the pitch." msgstr "" -#: js/musicutils.js:631 -#: js/musicutils.js:813 -#: js/musicutils.js:910 -#.TRANS: diminished is a music term related to intervals and mode -msgid "diminished" +#: js/blocks/ToneBlocks.js:438 +#: js/widgets/timbre.js:2100 +#.TRANS: distortion is an alteration in the sound +msgid "distortion" msgstr "" -#: js/musicutils.js:639 -#.TRANS: twelve semi-tone scale for music -msgid "chromatic" +#: js/blocks/ToneBlocks.js:487 +msgid "The Tremolo block adds a wavering effect." msgstr "" -#: js/musicutils.js:640 -msgid "algerian" +#: js/blocks/ToneBlocks.js:495 +#: js/widgets/timbre.js:2092 +#.TRANS: a wavering effect in a musical tone +msgid "tremolo" msgstr "" -#: js/musicutils.js:641 -msgid "spanish" +#: js/blocks/ToneBlocks.js:500 +#: js/blocks/ToneBlocks.js:569 +#: js/blocks/ToneBlocks.js:630 +#: js/blocks/ToneBlocks.js:689 +#: js/widgets/timbre.js:2134 +#: js/widgets/timbre.js:2222 +#: js/widgets/timbre.js:2317 +#: js/widgets/timbre.js:2419 +#.TRANS: rate at which tremolo wavers +msgid "rate" msgstr "" -#: js/musicutils.js:643 -#.TRANS: modal scale in music -msgid "octatonic" +#: js/blocks/ToneBlocks.js:502 +#: js/blocks/ToneBlocks.js:630 +#: js/widgets/timbre.js:2137 +#: js/widgets/timbre.js:2328 +#.TRANS: amplitude of tremolo waver +msgid "depth" msgstr "" -#: js/musicutils.js:645 -#.TRANS: harmonic major scale in music -msgid "harmonic major" +#: js/blocks/ToneBlocks.js:559 +msgid "The Phaser block adds a sweeping sound." msgstr "" -#: js/musicutils.js:647 -#.TRANS: natural minor scales in music -msgid "natural minor" +#: js/blocks/ToneBlocks.js:566 +#: js/widgets/timbre.js:2098 +#.TRANS: alter the phase of the sound +msgid "phaser" msgstr "" -#: js/musicutils.js:649 -#.TRANS: harmonic minor scale in music -msgid "harmonic minor" +#: js/blocks/ToneBlocks.js:569 +#: js/turtleactions/IntervalsActions.js:114 +#: js/widgets/timbre.js:2422 +msgid "octaves" msgstr "" -#: js/musicutils.js:651 -#.TRANS: melodic minor scale in music -msgid "melodic minor" +#: js/blocks/ToneBlocks.js:569 +#: js/widgets/timbre.js:2425 +msgid "base frequency" msgstr "" -#: js/musicutils.js:655 -#.TRANS: modal scale for music -msgid "dorian" +#: js/blocks/ToneBlocks.js:619 +msgid "The Chorus block adds a chorus effect." msgstr "" -#: js/musicutils.js:657 -#.TRANS: modal scale for music -msgid "phrygian" +#: js/blocks/ToneBlocks.js:627 +#: js/widgets/timbre.js:2096 +#.TRANS: musical effect to simulate a choral sound +msgid "chorus" msgstr "" -#: js/musicutils.js:659 -#.TRANS: modal scale for music -msgid "lydian" +#: js/blocks/ToneBlocks.js:630 +msgid "delay" msgstr "" -#: js/musicutils.js:661 -#.TRANS: modal scale for music -msgid "mixolydian" +#: js/blocks/ToneBlocks.js:678 +msgid "The Vibrato block adds a rapid, slight variation in pitch." msgstr "" -#: js/musicutils.js:665 -#.TRANS: modal scale for music -msgid "locrian" +#: js/blocks/ToneBlocks.js:686 +#: js/widgets/timbre.js:2094 +#.TRANS: a rapid, slight variation in pitch +msgid "vibrato" msgstr "" -#: js/musicutils.js:667 -#.TRANS: minor jazz scale for music -msgid "jazz minor" +#: js/blocks/ToneBlocks.js:689 +#: js/widgets/timbre.js:2221 +msgid "intensity" msgstr "" -#: js/musicutils.js:669 -#.TRANS: bebop scale for music -msgid "bebop" +#: js/blocks/ToneBlocks.js:733 +#.TRANS: select synthesizer +msgid "set synth" msgstr "" -#: js/musicutils.js:670 -msgid "arabic" +#: js/blocks/ToneBlocks.js:804 +msgid "synth name" msgstr "" -#: js/musicutils.js:671 -msgid "byzantine" +#: js/blocks/ToneBlocks.js:842 +msgid "set default instrument" msgstr "" -#: js/musicutils.js:673 -#.TRANS: musical scale for music by Verdi -msgid "enigmatic" +#: js/blocks/ToneBlocks.js:895 +#: js/blocks/ToneBlocks.js:943 +#.TRANS: set the characteristics of a custom instrument +msgid "set instrument" msgstr "" -#: js/musicutils.js:674 -msgid "ethiopian" +#: js/blocks/ToneBlocks.js:898 +#: js/blocks/ToneBlocks.js:926 +#: js/blocks/ToneBlocks.js:932 +msgid "The Set instrument block selects a voice for the synthesizer," msgstr "" -#: js/musicutils.js:676 -#.TRANS: Ethiopic scale for music -msgid "geez" +#: js/blocks/ToneBlocks.js:900 +#: js/blocks/ToneBlocks.js:934 +msgid "eg guitar piano violin or cello." msgstr "" -#: js/musicutils.js:677 -msgid "hindu" +#: js/blocks/ToneBlocks.js:1015 +msgid "Import a sound file to use as an instrument and set its pitch center." msgstr "" -#: js/musicutils.js:678 -msgid "hungarian" +#: js/blocks/ToneBlocks.js:1110 +msgid "Upload a sound file to connect with the sample block." msgstr "" -#: js/musicutils.js:680 -#.TRANS: minor Romanian scale for music -msgid "romanian minor" +#: js/blocks/VolumeBlocks.js:35 +msgid "synth volume" msgstr "" -#: js/musicutils.js:681 -msgid "spanish gypsy" +#: js/blocks/VolumeBlocks.js:39 +msgid "The Synth volume block returns the current volume of the current synthesizer." msgstr "" -#: js/musicutils.js:683 -#.TRANS: musical scale for Mid-Eastern music -msgid "maqam" +#: js/blocks/VolumeBlocks.js:105 +msgid "master volume" msgstr "" -#: js/musicutils.js:685 -#.TRANS: minor blues scale for music -msgid "minor blues" +#: js/blocks/VolumeBlocks.js:109 +msgid "The Master volume block returns the master volume." msgstr "" -#: js/musicutils.js:687 -#.TRANS: major blues scale for music -msgid "major blues" +#: js/blocks/VolumeBlocks.js:355 +#: js/blocks/VolumeBlocks.js:524 +msgid "set synth volume" msgstr "" -#: js/musicutils.js:688 -msgid "whole tone" +#: js/blocks/VolumeBlocks.js:362 +#: js/blocks/VolumeBlocks.js:545 +msgid "synth" msgstr "" -#: js/musicutils.js:690 -#.TRANS: pentatonic is a general term that means "five note scale". This scale is typically known as "minor pentatonic" -msgid "minor pentatonic" +#: js/blocks/VolumeBlocks.js:403 +#: js/blocks/VolumeBlocks.js:577 +#: js/blocks/VolumeBlocks.js:740 +#: js/turtleactions/VolumeActions.js:173 +msgid "Setting volume to 0." msgstr "" -#: js/musicutils.js:692 -#.TRANS: pentatonic is a general term that means "five note scale". This scale is typically known as "major pentatonic" -msgid "major pentatonic" +#: js/blocks/VolumeBlocks.js:440 +msgid "Synth not found" msgstr "" -#: js/musicutils.js:693 -msgid "chinese" +#: js/blocks/VolumeBlocks.js:494 +msgid "set drum volume" msgstr "" -#: js/musicutils.js:694 -msgid "egyptian" +#: js/blocks/VolumeBlocks.js:530 +msgid "The Set synth volume block will change the volume of a particular synth," msgstr "" -#: js/musicutils.js:696 -#.TRANS: https://en.wikipedia.org/wiki/Hirajoshi_scale NOTE: There are three different versions of this scale -msgid "hirajoshi" +#: js/blocks/VolumeBlocks.js:532 +msgid "eg guitar violin snare drum etc." msgstr "" -#: js/musicutils.js:697 -msgid "Japan" +#: js/blocks/VolumeBlocks.js:534 +msgid "The default volume is 50." msgstr "" -#: js/musicutils.js:699 -#.TRANS: https://en.wikipedia.org/wiki/In_scale and https://en.wikipedia.org/wiki/Sakura_Sakura -msgid "in" +#: js/blocks/VolumeBlocks.js:536 +msgid "The range is 0 for silence to 100 for full volume." msgstr "" -#: js/musicutils.js:701 -#.TRANS: https://en.wikipedia.org/wiki/Miny%C5%8D_scale -msgid "minyo" +#: js/blocks/VolumeBlocks.js:597 +msgid "set panning" msgstr "" -#: js/musicutils.js:703 -#.TRANS: Italian mathematician -msgid "fibonacci" +#: js/blocks/VolumeBlocks.js:603 +msgid "The Set Panning block sets the panning for all synthesizers." msgstr "" -#: js/musicutils.js:708 -#: js/musicutils.js:1106 -#.TRANS: lowpass filter -msgid "lowpass" +#: js/blocks/VolumeBlocks.js:625 +msgid "Warning: Sound is coming out from only the left or right side." msgstr "" -#: js/musicutils.js:710 -#: js/musicutils.js:1107 -#.TRANS: bandpass filter -msgid "bandpass" +#: js/blocks/VolumeBlocks.js:647 +#: js/blocks/VolumeBlocks.js:695 +msgid "set master volume" msgstr "" -#: js/musicutils.js:712 -#: js/musicutils.js:1108 -#.TRANS: high-shelf filter -msgid "highshelf" +#: js/blocks/VolumeBlocks.js:653 +msgid "The Set master volume block sets the volume for all synthesizers." msgstr "" -#: js/musicutils.js:714 -#: js/musicutils.js:1109 -#.TRANS: low-shelf filter -msgid "lowshelf" +#: js/blocks/VolumeBlocks.js:784 +msgid "The Set relative volume block changes the volume of the contained notes." msgstr "" -#: js/musicutils.js:716 -#: js/musicutils.js:1110 -#.TRANS: notch-shelf filter -msgid "notch" +#: js/blocks/VolumeBlocks.js:791 +msgid "set relative volume" msgstr "" -#: js/musicutils.js:718 -#: js/musicutils.js:1111 -#.TRANS: all-pass filter -msgid "allpass" +#: js/blocks/VolumeBlocks.js:857 +msgid "decrescendo" msgstr "" -#: js/musicutils.js:720 -#: js/musicutils.js:1112 -#.TRANS: peaking filter -msgid "peaking" +#: js/blocks/VolumeBlocks.js:921 +msgid "crescendo" msgstr "" -#: js/musicutils.js:731 -#: js/synthutils.js:58 -#.TRANS: musical instrument -msgid "violin" +#: js/blocks/WidgetBlocks.js:81 +#.TRANS: sound envelope (ADSR) +msgid "envelope" msgstr "" -#: js/musicutils.js:732 -#: js/synthutils.js:60 -#.TRANS: viola musical instrument -msgid "viola" +#: js/blocks/WidgetBlocks.js:89 +#.TRANS: Attack time is the time taken for initial run-up of level from nil to peak, beginning when the key is first pressed. +msgid "attack" msgstr "" -#: js/musicutils.js:733 -#: js/synthutils.js:98 -#.TRANS: xylophone musical instrument -msgid "xylophone" +#: js/blocks/WidgetBlocks.js:91 +#.TRANS: Decay time is the time taken for the subsequent run down from the attack level to the designated sustain level. +msgid "decay" msgstr "" -#: js/musicutils.js:734 -#: js/synthutils.js:120 -#.TRANS: vibraphone musical instrument -msgid "vibraphone" +#: js/blocks/WidgetBlocks.js:93 +#.TRANS: Sustain level is the level during the main sequence of the sound's duration, until the key is released. +msgid "sustain" msgstr "" -#: js/musicutils.js:735 -#: js/synthutils.js:62 -#.TRANS: musical instrument -msgid "cello" +#: js/blocks/WidgetBlocks.js:95 +#.TRANS: Release time is the time taken for the level to decay from the sustain level to zero after the key is released. +msgid "release" msgstr "" -#: js/musicutils.js:737 -#: js/synthutils.js:66 -#.TRANS: viola musical instrument -msgid "double bass" +#: js/blocks/WidgetBlocks.js:113 +msgid "Attack value should be from 0 to 100." msgstr "" -#: js/musicutils.js:738 -#: js/synthutils.js:68 -#: js/rhythmruler.js:2119 -#.TRANS: musical instrument -msgid "guitar" +#: js/blocks/WidgetBlocks.js:116 +msgid "Decay value should be from 0 to 100." msgstr "" -#: js/musicutils.js:739 -#: js/synthutils.js:70 -#.TRANS: musical instrument -msgid "acoustic guitar" +#: js/blocks/WidgetBlocks.js:119 +msgid "Sustain value should be from 0 to 100." msgstr "" -#: js/musicutils.js:740 -#: js/synthutils.js:72 -#.TRANS: musical instrument -msgid "flute" +#: js/blocks/WidgetBlocks.js:122 +msgid "Release value should be from 0-100." msgstr "" -#: js/musicutils.js:741 -#: js/synthutils.js:74 -#.TRANS: musical instrument -msgid "clarinet" +#: js/blocks/WidgetBlocks.js:140 +msgid "You are adding multiple envelope blocks." msgstr "" -#: js/musicutils.js:742 -#: js/synthutils.js:76 -#.TRANS: musical instrument -msgid "saxophone" +#: js/blocks/WidgetBlocks.js:171 +#.TRANS: a filter removes some unwanted components from a signal +msgid "filter" msgstr "" -#: js/musicutils.js:743 -#: js/synthutils.js:78 -#.TRANS: musical instrument -msgid "tuba" +#: js/blocks/WidgetBlocks.js:181 +#: js/widgets/timbre.js:1818 +#.TRANS: rolloff is the steepness of a change in frequency. +msgid "rolloff" msgstr "" -#: js/musicutils.js:744 -#: js/synthutils.js:80 -#.TRANS: musical instrument -msgid "trumpet" +#: js/blocks/WidgetBlocks.js:213 +#.TRANS: rolloff is the steepness of a change in frequency. +msgid "Rolloff value should be either -12, -24, -48, or -96 decibels/octave." msgstr "" -#: js/musicutils.js:745 -#: js/synthutils.js:82 -#.TRANS: musical instrument -msgid "oboe" +#: js/blocks/WidgetBlocks.js:252 +msgid "The Temperament tool is used to define custom tuning." msgstr "" -#: js/musicutils.js:746 -#: js/synthutils.js:84 -#.TRANS: musical instrument -msgid "trombone" +#: js/blocks/WidgetBlocks.js:332 +#: js/blocks/WidgetBlocks.js:1573 +#: js/widgets/sampler.js:547 +msgid "Upload a sample and adjust its pitch center." msgstr "" -#: js/musicutils.js:747 -#: js/synthutils.js:100 -#.TRANS: polytone synthesizer -msgid "electronic synth" +#: js/blocks/WidgetBlocks.js:339 +#.TRANS: the speed at music is should be played. +msgid "sampler" msgstr "" -#: js/musicutils.js:748 -#: js/synthutils.js:102 -#.TRANS: simple monotone synthesizer -msgid "simple 1" +#: js/blocks/WidgetBlocks.js:517 +msgid "The Meter block opens a tool to select strong beats for the meter." msgstr "" -#: js/musicutils.js:749 -msgid "simple 2" +#: js/blocks/WidgetBlocks.js:573 +msgid "The oscilloscope block opens a tool to visualize waveforms." msgstr "" -#: js/musicutils.js:750 -msgid "simple 3" +#: js/blocks/WidgetBlocks.js:578 +msgid "oscilloscope" msgstr "" -#: js/musicutils.js:751 -msgid "simple 4" +#: js/blocks/WidgetBlocks.js:645 +msgid "The Custom mode block opens a tool to explore musical mode (the spacing of the notes in a scale)." msgstr "" -#: js/musicutils.js:753 -#: js/synthutils.js:49 -#.TRANS: brown noise synthesizer -msgid "brown noise" +#: js/blocks/WidgetBlocks.js:651 +#.TRANS: musical mode is the pattern of half-steps in an octave, e.g., Major or Minor modes +msgid "custom mode" msgstr "" -#: js/musicutils.js:754 -#: js/synthutils.js:51 -#.TRANS: pink noise synthesizer -msgid "pink noise" +#: js/blocks/WidgetBlocks.js:700 +msgid "The Tempo block opens a metronome to visualize the beat." msgstr "" -#: js/musicutils.js:756 -#: js/synthutils.js:127 -#: js/rhythmruler.js:1670 -#: js/rhythmruler.js:1928 -#.TRANS: musical instrument -msgid "snare drum" +#: js/blocks/WidgetBlocks.js:762 +msgid "The Arpeggio Widget is used to compose chord sequences." msgstr "" -#: js/musicutils.js:757 -#: js/synthutils.js:129 -#.TRANS: musical instrument -msgid "kick drum" +#: js/blocks/WidgetBlocks.js:837 +msgid "The Pitch drum matrix is used to map pitches to drum sounds." msgstr "" -#: js/musicutils.js:758 -#: js/synthutils.js:131 -#.TRANS: musical instrument -msgid "tom tom" +#: js/blocks/WidgetBlocks.js:842 +#.TRANS: makes a mapping between pitches and drum sounds +msgid "pitch-drum mapper" msgstr "" -#: js/musicutils.js:759 -#: js/synthutils.js:133 -#.TRANS: musical instrument -msgid "floor tom" +#: js/blocks/WidgetBlocks.js:891 +msgid "You must have at least one pitch block and one drum block in the matrix." msgstr "" -#: js/musicutils.js:760 -#: js/synthutils.js:135 -#.TRANS: musical instrument -msgid "bass drum" +#: js/blocks/WidgetBlocks.js:920 +msgid "The Pitch slider tool to is used to generate pitches at selected frequencies." msgstr "" -#: js/musicutils.js:761 -#: js/synthutils.js:137 -#.TRANS: a drum made from an inverted cup -msgid "cup drum" +#: js/blocks/WidgetBlocks.js:925 +#.TRANS: widget to generate pitches using a slider +msgid "pitch slider" msgstr "" -#: js/musicutils.js:762 -#: js/synthutils.js:139 -#.TRANS: musical instrument -msgid "darbuka drum" +#: js/blocks/WidgetBlocks.js:977 +msgid "chromatic keyboard" msgstr "" -#: js/musicutils.js:763 -#: js/synthutils.js:143 -#.TRANS: musical instrument -msgid "hi hat" +#: js/blocks/WidgetBlocks.js:1011 +#: js/blocks/WidgetBlocks.js:1077 +#.TRANS: widget to generate pitches using a slider +msgid "music keyboard" msgstr "" -#: js/musicutils.js:764 -#: js/synthutils.js:145 -#.TRANS: a small metal bell -msgid "ride bell" +#: js/blocks/WidgetBlocks.js:1062 +#: js/blocks/WidgetBlocks.js:1069 +msgid "The Music keyboard block opens a piano keyboard that can be used to create notes." msgstr "" -#: js/musicutils.js:765 -#: js/synthutils.js:147 -#.TRANS: musical instrument -msgid "cow bell" +#: js/blocks/WidgetBlocks.js:1128 +msgid "The Pitch staircase tool to is used to generate pitches from a given ratio." msgstr "" -#: js/musicutils.js:766 -msgid "japanese drum" +#: js/blocks/WidgetBlocks.js:1135 +#.TRANS: generate a progressive sequence of pitches +msgid "pitch staircase" msgstr "" -#: js/musicutils.js:767 -#: js/synthutils.js:153 -#.TRANS: musical instrument -msgid "japanese bell" +#: js/blocks/WidgetBlocks.js:1222 +msgid "The Rhythm Maker block opens a tool to create drum machines." msgstr "" -#: js/musicutils.js:768 -#: js/synthutils.js:149 -#.TRANS: musical instrument -msgid "triangle bell" +#: js/blocks/WidgetBlocks.js:1291 +msgid "G major scale" msgstr "" -#: js/musicutils.js:769 -#: js/synthutils.js:151 -#.TRANS: musical instrument -msgid "finger cymbals" +#: js/blocks/WidgetBlocks.js:1326 +msgid "C major scale" msgstr "" -#: js/musicutils.js:770 -#: js/synthutils.js:155 -#.TRANS: a musically tuned set of bells -msgid "chime" +#: js/blocks/WidgetBlocks.js:1366 +msgid "The Phrase Maker block opens a tool to create musical phrases." msgstr "" -#: js/musicutils.js:771 -#: js/synthutils.js:157 -#.TRANS: a musical instrument -msgid "gong" +#: js/blocks/WidgetBlocks.js:1373 +#.TRANS: assigns pitch to a sequence of beats to generate a melody +msgid "phrase maker" msgstr "" -#: js/musicutils.js:772 -#: js/synthutils.js:159 -#.TRANS: sound effect -msgid "clang" +#: js/blocks/WidgetBlocks.js:1444 +msgid "You must have at least one pitch block and one rhythm block in the matrix." msgstr "" -#: js/musicutils.js:773 -#: js/synthutils.js:161 -#.TRANS: sound effect -msgid "crash" +#: js/blocks/WidgetBlocks.js:1503 +msgid "The Status block opens a tool for inspecting the status of Music Blocks as it is running." msgstr "" -#: js/musicutils.js:774 -#: js/synthutils.js:163 -#.TRANS: sound effect -msgid "bottle" +#: js/blocks/WidgetBlocks.js:1580 +#.TRANS: AI-generated music +msgid "aimusic" msgstr "" -#: js/musicutils.js:775 -#: js/synthutils.js:165 -#.TRANS: sound effect -msgid "clap" +#: js/turtleactions/MeterActions.js:101 +#: js/turtleactions/MeterActions.js:139 +msgid "beats per minute must be greater than" msgstr "" -#: js/musicutils.js:776 -#: js/synthutils.js:167 -#.TRANS: sound effect -msgid "slap" +#: js/turtleactions/MeterActions.js:111 +#: js/turtleactions/MeterActions.js:149 +msgid "maximum" msgstr "" -#: js/musicutils.js:777 -#: js/synthutils.js:169 -#.TRANS: sound effect -msgid "splash" +#: js/turtleactions/MeterActions.js:117 +#: js/turtleactions/MeterActions.js:155 +msgid "beats per minute is" msgstr "" -#: js/musicutils.js:778 -#: js/synthutils.js:171 -#.TRANS: sound effect -msgid "bubbles" +#: js/turtleactions/DictActions.js:75 +#: js/turtleactions/DictActions.js:142 +#: js/turtleactions/DictActions.js:172 +msgid "font" msgstr "" -#: js/musicutils.js:779 -#: js/synthutils.js:173 -#.TRANS: sound effect -msgid "raindrop" +#: js/turtleactions/DictActions.js:255 +msgid "Dictionary with this name does not exist" msgstr "" -#: js/musicutils.js:780 -#: js/synthutils.js:175 -#.TRANS: animal sound effect -msgid "cat" +#: js/turtleactions/DictActions.js:259 +msgid "Key with this name does not exist in " msgstr "" -#: js/musicutils.js:781 -#: js/synthutils.js:177 -#.TRANS: animal sound effect -msgid "cricket" +#: js/turtleactions/DrumActions.js:227 +msgid "Noise Block: Did you mean to use a Note block?" msgstr "" -#: js/musicutils.js:782 -#: js/synthutils.js:179 -#.TRANS: animal sound effect -msgid "dog" +#: js/turtleactions/IntervalsActions.js:113 +msgid "one" msgstr "" -#: js/musicutils.js:784 -#: js/synthutils.js:86 -#.TRANS: musical instrument -msgid "banjo" +#: js/turtleactions/IntervalsActions.js:113 +msgid "two" msgstr "" -#: js/musicutils.js:785 -#: js/synthutils.js:88 -#.TRANS: musical instrument -msgid "koto" +#: js/turtleactions/IntervalsActions.js:113 +msgid "three" msgstr "" -#: js/musicutils.js:786 -#: js/synthutils.js:90 -#.TRANS: musical instrument -msgid "dulcimer" +#: js/turtleactions/IntervalsActions.js:113 +msgid "four" msgstr "" -#: js/musicutils.js:787 -#: js/synthutils.js:92 -#.TRANS: musical instrument -msgid "electric guitar" +#: js/turtleactions/IntervalsActions.js:113 +msgid "five" msgstr "" -#: js/musicutils.js:788 -#: js/synthutils.js:94 -#.TRANS: musical instrument -msgid "bassoon" +#: js/turtleactions/IntervalsActions.js:113 +msgid "six" msgstr "" -#: js/musicutils.js:789 -#: js/synthutils.js:96 -#.TRANS: musical instrument -msgid "celeste" +#: js/turtleactions/IntervalsActions.js:113 +msgid "seven" msgstr "" -#: js/musicutils.js:791 -#: js/musicutils.js:1123 -#: js/musicutils.js:1131 -#: js/temperament.js:650 -#.TRANS: musical temperament -msgid "equal" +#: js/turtleactions/IntervalsActions.js:113 +msgid "eight" msgstr "" -#: js/musicutils.js:793 -#: js/musicutils.js:1125 -#: js/musicutils.js:1133 -#.TRANS: musical temperament -msgid "Pythagorean" +#: js/turtleactions/IntervalsActions.js:113 +msgid "nine" msgstr "" -#: js/musicutils.js:795 -#: js/musicutils.js:1124 -#: js/musicutils.js:1132 -#.TRANS: musical temperament -msgid "just intonation" +#: js/turtleactions/IntervalsActions.js:119 +msgid "a" msgstr "" -#: js/musicutils.js:797 -#: js/musicutils.js:1126 -#: js/musicutils.js:1127 -#: js/musicutils.js:1134 -#: js/musicutils.js:1135 -#.TRANS: musical temperament -msgid "meantone" +#: js/turtleactions/IntervalsActions.js:120 +msgid "below" msgstr "" -#: js/musicutils.js:814 -msgid "major 7th" +#: js/turtleactions/IntervalsActions.js:124 +msgid "above" msgstr "" -#: js/musicutils.js:815 -msgid "minor 7th" +#: js/turtleactions/IntervalsActions.js:131 +msgid "plus" msgstr "" -#: js/musicutils.js:816 -msgid "dominant 7th" +#: js/turtleactions/IntervalsActions.js:139 +msgid " below" msgstr "" -#: js/musicutils.js:817 -msgid "minor-major 7th" +#: js/turtleactions/IntervalsActions.js:257 +msgid "Adding missing pitch number 0." msgstr "" -#: js/musicutils.js:818 -msgid "fully-diminished 7th" +#: js/turtleactions/IntervalsActions.js:265 +msgid "Ignoring pitch numbers less than zero or greater than eleven." msgstr "" -#: js/musicutils.js:819 -msgid "half-diminished 7th" +#: js/turtleactions/IntervalsActions.js:271 +msgid "Ignoring duplicate pitch numbers." msgstr "" -#: js/musicutils.js:4379 -#: js/musicutils.js:4416 -msgid "current" +#: js/turtleactions/ToneActions.js:134 +msgid "Vibrato intensity must be between 1 and 100." msgstr "" -#: js/musicutils.js:4382 -#: js/musicutils.js:4407 -msgid "next" +#: js/turtleactions/ToneActions.js:139 +msgid "Vibrato rate must be greater than 0." msgstr "" -#: js/musicutils.js:4385 -#: js/musicutils.js:4412 -msgid "previous" +#: js/turtleactions/ToneActions.js:192 +#: js/turtleactions/ToneActions.js:265 +#.TRANS: Depth is the intesity of the tremolo or chorus effect. +msgid "Depth is out of range." msgstr "" -#: js/synthutils.js:104 -#.TRANS: simple monotone synthesizer -msgid "simple-2" +#: js/turtleactions/ToneActions.js:301 +msgid "Distortion must be from 0 to 100." msgstr "" -#: js/synthutils.js:106 -#.TRANS: simple monotone synthesizer -msgid "simple-3" +#: js/turtleactions/ToneActions.js:332 +#.TRANS: partials components in a harmonic series +msgid "Partial must be greater than or equal to 0." msgstr "" -#: js/synthutils.js:108 -#.TRANS: simple monotone synthesizer -msgid "simple-4" +#: js/turtleactions/ToneActions.js:378 +#: js/turtleactions/ToneActions.js:417 +#: js/turtleactions/ToneActions.js:456 +#: js/widgets/timbre.js:782 +msgid "Unable to use synth due to existing oscillator" msgstr "" -#: js/synthutils.js:141 -#.TRANS: musical instrument -msgid "taiko" +#: js/turtleactions/ToneActions.js:388 +#: js/turtleactions/ToneActions.js:427 +msgid "The input cannot be negative." msgstr "" -#: js/modewidget.js:86 -#: js/modewidget.js:88 -#: js/modewidget.js:642 -#: js/modewidget.js:644 -#: js/modewidget.js:712 -#: js/modewidget.js:714 -#: js/temperament.js:2078 -#: js/rhythmruler.js:189 -#: js/rhythmruler.js:1410 -#: js/rhythmruler.js:1412 -#: js/rhythmruler.js:1435 -#: js/rhythmruler.js:1437 -#: js/meterwidget.js:89 -#: js/meterwidget.js:91 +#: js/widgets/modewidget.js:86 +#: js/widgets/modewidget.js:88 +#: js/widgets/modewidget.js:642 +#: js/widgets/modewidget.js:644 +#: js/widgets/modewidget.js:712 +#: js/widgets/modewidget.js:714 +#: js/widgets/meterwidget.js:194 +#: js/widgets/meterwidget.js:196 +#: js/widgets/temperament.js:2236 +#: js/widgets/rhythmruler.js:457 +#: js/widgets/rhythmruler.js:1790 +#: js/widgets/rhythmruler.js:1792 +#: js/widgets/rhythmruler.js:1816 +#: js/widgets/rhythmruler.js:1818 msgid "Play all" msgstr "" -#: js/modewidget.js:115 -#: js/pitchstaircase.js:641 -#: js/phrasemaker.js:339 -#: js/pitchdrummatrix.js:94 -#: js/pitchslider.js:125 -#: js/temperament.js:2083 -#: js/musickeyboard.js:530 -#: js/timbre.js:756 -#: js/meterwidget.js:124 -#: js/arpeggio.js:103 +#: js/widgets/modewidget.js:115 +#: js/widgets/meterwidget.js:229 +#: js/widgets/pitchdrummatrix.js:166 +#: js/widgets/pitchslider.js:125 +#: js/widgets/pitchstaircase.js:641 +#: js/widgets/temperament.js:2244 +#: js/widgets/timbre.js:756 +#: js/widgets/arpeggio.js:103 +#: js/widgets/musickeyboard.js:688 +#: js/widgets/phrasemaker.js:550 msgid "Save" msgstr "" -#: js/modewidget.js:121 -#: js/pitchstaircase.js:686 -#: js/phrasemaker.js:356 -#: js/pitchdrummatrix.js:109 -#: js/musickeyboard.js:534 -#: js/rhythmruler.js:269 -#: js/arpeggio.js:118 +#: js/widgets/modewidget.js:121 +#: js/widgets/pitchdrummatrix.js:181 +#: js/widgets/pitchstaircase.js:686 +#: js/widgets/arpeggio.js:118 +#: js/widgets/musickeyboard.js:696 +#: js/widgets/phrasemaker.js:567 +#: js/widgets/rhythmruler.js:601 #.TRANS: clear all subdivisions from the ruler. msgid "Clear" msgstr "" -#: js/modewidget.js:127 +#: js/widgets/modewidget.js:127 msgid "Rotate counter clockwise" msgstr "" -#: js/modewidget.js:133 +#: js/widgets/modewidget.js:133 msgid "Rotate clockwise" msgstr "" -#: js/modewidget.js:139 +#: js/widgets/modewidget.js:139 msgid "Invert" msgstr "" -#: js/modewidget.js:145 -#: js/pitchstaircase.js:678 -#: js/rhythmruler.js:258 -#: js/timbre.js:963 +#: js/widgets/modewidget.js:145 +#: js/widgets/pitchstaircase.js:678 +#: js/widgets/timbre.js:963 +#: js/widgets/rhythmruler.js:578 msgid "Undo" msgstr "" -#: js/modewidget.js:163 +#: js/widgets/modewidget.js:163 #.TRANS: A circle of notes represents the musical mode. msgid "Click in the circle to select notes for the mode." msgstr "" -#: js/modewidget.js:1017 -#: js/pitchstaircase.js:580 -#: js/phrasemaker.js:4855 -#: js/temperament.js:1754 -#: js/rhythmruler.js:1865 -#: js/rhythmruler.js:2081 -#: js/tempo.js:414 +#: js/widgets/modewidget.js:1017 +#: js/widgets/pitchstaircase.js:580 +#: js/widgets/temperament.js:1929 +#: js/widgets/tempo.js:414 +#: js/widgets/phrasemaker.js:5356 +#: js/widgets/rhythmruler.js:2254 +#: js/widgets/rhythmruler.js:2472 msgid "New action block generated!" msgstr "" -#: js/oscilloscope.js:79 -msgid "Zoom In" -msgstr "" - -#: js/oscilloscope.js:88 -msgid "Zoom Out" -msgstr "" - -#: js/pitchstaircase.js:624 -msgid "Play chord" -msgstr "" - -#: js/pitchstaircase.js:632 -msgid "Play scale" +#: js/widgets/meterwidget.js:275 +msgid "Reset" msgstr "" -#: js/pitchstaircase.js:696 -msgid "Click on a note to create a new step." +#: js/widgets/meterwidget.js:301 +msgid "Click in the circle to select strong beats for the meter." msgstr "" -#: js/phrasemaker.js:363 -msgid "Export" +#: js/widgets/oscilloscope.js:79 +msgid "Zoom In" msgstr "" -#: js/phrasemaker.js:370 -msgid "Sort" +#: js/widgets/oscilloscope.js:88 +msgid "Zoom Out" msgstr "" -#: js/phrasemaker.js:373 -#: js/musickeyboard.js:559 -msgid "Add note" +#: js/widgets/pitchdrummatrix.js:356 +#: js/widgets/pitchdrummatrix.js:752 +msgid "Click in the grid to map notes to drums." msgstr "" -#: js/phrasemaker.js:764 -msgid "Click on the table to add notes." +#: js/widgets/pitchslider.js:103 +msgid "Move up" msgstr "" -#: js/phrasemaker.js:2414 -#: js/phrasemaker.js:2543 -msgid "tuplet value" +#: js/widgets/pitchslider.js:114 +msgid "Move down" msgstr "" -#: js/pitchdrummatrix.js:270 -#: js/pitchdrummatrix.js:639 -msgid "Click in the grid to map notes to drums." +#: js/widgets/pitchslider.js:136 +msgid "Click on the slider to create a note block." msgstr "" -#: js/pitchslider.js:103 -msgid "Move up" +#: js/widgets/pitchstaircase.js:624 +msgid "Play chord" msgstr "" -#: js/pitchslider.js:114 -msgid "Move down" +#: js/widgets/pitchstaircase.js:632 +msgid "Play scale" msgstr "" -#: js/pitchslider.js:136 -msgid "Click on the slider to create a note block." +#: js/widgets/pitchstaircase.js:696 +msgid "Click on a note to create a new step." msgstr "" -#: js/temperament.js:215 +#: js/widgets/temperament.js:321 msgid "back to 2:1 octave space" msgstr "" -#: js/temperament.js:323 +#: js/widgets/temperament.js:447 msgid "edit" msgstr "" -#: js/temperament.js:330 -#: js/temperament.js:332 -#: js/temperament.js:1336 -#: js/temperament.js:1338 +#: js/widgets/temperament.js:454 +#: js/widgets/temperament.js:456 +#: js/widgets/temperament.js:1493 +#: js/widgets/temperament.js:1495 msgid "close" msgstr "" -#: js/temperament.js:423 -#: js/temperament.js:736 -#: js/temperament.js:743 -#: js/temperament.js:845 -#: js/temperament.js:935 -#: js/temperament.js:942 -#: js/temperament.js:1015 -#: js/temperament.js:1284 -#: js/temperament.js:1354 -#: js/temperament.js:1430 +#: js/widgets/temperament.js:552 +#: js/widgets/temperament.js:877 +#: js/widgets/temperament.js:884 +#: js/widgets/temperament.js:986 +#: js/widgets/temperament.js:1080 +#: js/widgets/temperament.js:1087 +#: js/widgets/temperament.js:1160 +#: js/widgets/temperament.js:1433 +#: js/widgets/temperament.js:1511 +#: js/widgets/temperament.js:1596 msgid "done" msgstr "" -#: js/temperament.js:477 -#: js/temperament.js:482 -#: js/temperament.js:918 +#: js/widgets/temperament.js:610 +#: js/widgets/temperament.js:615 +#: js/widgets/temperament.js:1063 msgid "ratio" msgstr "" -#: js/temperament.js:483 +#: js/widgets/temperament.js:616 msgid "interval" msgstr "" -#: js/temperament.js:611 +#: js/widgets/temperament.js:744 msgid "non scalar" msgstr "" -#: js/temperament.js:650 +#: js/widgets/temperament.js:787 msgid "ratios" msgstr "" -#: js/temperament.js:650 +#: js/widgets/temperament.js:787 msgid "arbitrary" msgstr "" -#: js/temperament.js:719 +#: js/widgets/temperament.js:860 msgid "number of divisions" msgstr "" -#: js/temperament.js:741 -#: js/temperament.js:858 -#: js/temperament.js:940 -#: js/temperament.js:1033 +#: js/widgets/temperament.js:882 +#: js/widgets/temperament.js:999 +#: js/widgets/temperament.js:1085 +#: js/widgets/temperament.js:1178 msgid "preview" msgstr "" -#: js/temperament.js:788 +#: js/widgets/temperament.js:929 msgid "The Number of divisions is too large." msgstr "" -#: js/temperament.js:921 +#: js/widgets/temperament.js:1066 msgid "recursion" msgstr "" -#: js/temperament.js:1450 +#: js/widgets/temperament.js:1616 msgid "The octave ratio has changed. This changes temperament significantly." msgstr "" -#: js/temperament.js:2087 +#: js/widgets/temperament.js:2248 msgid "Table" msgstr "" -#: js/temperament.js:2185 +#: js/widgets/temperament.js:2356 msgid "Add pitches" msgstr "" -#: js/musickeyboard.js:570 -msgid "Metronome" +#: js/widgets/tempo.js:78 +#: js/widgets/tempo.js:97 +#: js/widgets/tempo.js:99 +#: js/widgets/aiwidget.js:134 +#: js/widgets/aiwidget.js:136 +#: js/widgets/rhythmruler.js:681 +#: js/widgets/rhythmruler.js:683 +#: js/widgets/rhythmruler.js:1864 +#: js/widgets/rhythmruler.js:1866 +#: js/widgets/sampler.js:180 +#: js/widgets/sampler.js:182 +msgid "Pause" msgstr "" -#: js/musickeyboard.js:1296 -#: plugins/rodi.rtp:193 -msgid "duration" +#: js/widgets/tempo.js:113 +msgid "Save tempo" msgstr "" -#: js/musickeyboard.js:2840 -msgid "New action blocks generated!" +#: js/widgets/tempo.js:144 +msgid "speed up" msgstr "" -#: js/musickeyboard.js:2841 -msgid "New action block generated" +#: js/widgets/tempo.js:150 +msgid "slow down" msgstr "" -#: js/musickeyboard.js:2984 -#: js/musickeyboard.js:2992 -msgid "MIDI device present." +#: js/widgets/tempo.js:194 +msgid "Adjust the tempo with the buttons." msgstr "" -#: js/musickeyboard.js:2995 -msgid "No MIDI device found." +#: js/widgets/tempo.js:261 +msgid "Please enter a number between 30 and 1000" msgstr "" -#: js/musickeyboard.js:3000 -msgid "Failed to get MIDI access in browser." +#: js/widgets/tempo.js:268 +#: js/widgets/tempo.js:271 +msgid "The beats per minute must be between 30 and 1000." msgstr "" -#: js/rhythmruler.js:202 -msgid "Save rhythms" +#: js/widgets/tempo.js:287 +msgid "The beats per minute must be below 1000." msgstr "" -#: js/rhythmruler.js:222 -msgid "Save drum machine" +#: js/widgets/tempo.js:303 +msgid "The beats per minute must be above 30" msgstr "" -#: js/rhythmruler.js:263 -#.TRANS: user can tap out a rhythm by clicking on a ruler. -msgid "Tap a rhythm" +#: js/widgets/timbre.js:766 +msgid "Synthesizer" msgstr "" -#: js/rhythmruler.js:342 -#: js/rhythmruler.js:344 -#: js/rhythmruler.js:1481 -#: js/rhythmruler.js:1483 -#: js/sampler.js:110 -#: js/sampler.js:112 -#: js/tempo.js:78 -#: js/tempo.js:97 -#: js/tempo.js:99 -msgid "Pause" +#: js/widgets/timbre.js:789 +msgid "Oscillator" msgstr "" -#: js/rhythmruler.js:478 -msgid "Click on the ruler to divide it." +#: js/widgets/timbre.js:840 +msgid "Envelope" msgstr "" -#: js/rhythmruler.js:603 -#: js/rhythmruler.js:605 -#: js/rhythmruler.js:804 -#: js/rhythmruler.js:806 -#: js/rhythmruler.js:1386 -#: js/rhythmruler.js:1388 -msgid "tap a rhythm" +#: js/widgets/timbre.js:886 +#: planet/js/GlobalTag.js:50 +#.TRANS: On the Planet, we use labels to tag projects. +msgid "Effects" msgstr "" -#: js/rhythmruler.js:1084 -msgid "Maximum value of 256 has been exceeded." +#: js/widgets/timbre.js:904 +msgid "Filter" msgstr "" -#: js/sampler.js:137 -msgid "Warning: Sample is bigger than 1MB." +#: js/widgets/timbre.js:946 +msgid "Add filter" msgstr "" -#: js/sampler.js:142 -msgid "Upload failed: Sample is not a .wav file." +#: js/widgets/timbre.js:987 +msgid "Click on buttons to open the timbre design tools." msgstr "" -#: js/sampler.js:164 -msgid "A new sample block was generated." +#: js/widgets/timbre.js:1273 +msgid "harmonicity" msgstr "" -#: js/sampler.js:255 -msgid "Upload sample" +#: js/widgets/timbre.js:1340 +#: js/widgets/timbre.js:1406 +msgid "modulation index" msgstr "" -#: js/sampler.js:306 -msgid "Save sample" +#: js/widgets/timbre.js:1484 +msgid "vibrato amount" msgstr "" -#: js/sampler.js:697 -#.TRANS: The reference tone is a sound used for comparison. -msgid "reference tone" +#: js/widgets/timbre.js:1919 +msgid "Filter already present." msgstr "" -#: js/tempo.js:113 -msgid "Save tempo" +#: js/widgets/timbre.js:2322 +msgid "delay (MS)" msgstr "" -#: js/tempo.js:144 -msgid "speed up" +#: js/widgets/timbre.js:2507 +msgid "distortion amount" msgstr "" -#: js/tempo.js:150 -msgid "slow down" +#: js/widgets/aiwidget.js:180 +#: js/widgets/sampler.js:227 +msgid "Warning: Sample is bigger than 1MB." msgstr "" -#: js/tempo.js:194 -msgid "Adjust the tempo with the buttons." +#: js/widgets/aiwidget.js:539 +msgid "New start block generated" msgstr "" -#: js/tempo.js:261 -msgid "Please enter a number between 30 and 1000" +#: js/widgets/aiwidget.js:541 +msgid "MIDI loading. This may take some time depending upon the number of notes in the track" msgstr "" -#: js/tempo.js:268 -#: js/tempo.js:271 -msgid "The beats per minute must be between 30 and 1000." +#: js/widgets/aiwidget.js:551 +#: js/widgets/sampler.js:254 +msgid "Upload failed: Sample is not a .wav file." msgstr "" -#: js/tempo.js:287 -msgid "The beats per minute must be below 1000." +#: js/widgets/aiwidget.js:679 +#: js/widgets/sampler.js:432 +msgid "Save sample" msgstr "" -#: js/tempo.js:303 -msgid "The beats per minute must be above 30" +#: js/widgets/aiwidget.js:701 +msgid "AI Music" msgstr "" -#: js/timbre.js:766 -msgid "Synthesizer" +#: js/widgets/arpeggio.js:239 +msgid "Click in the grid to add steps to the arpeggio." msgstr "" -#: js/timbre.js:789 -msgid "Oscillator" +#: js/widgets/help.js:95 +#: js/widgets/help.js:125 +#: js/widgets/help.js:146 +#: js/widgets/help.js:158 +#: js/widgets/help.js:376 +#: js/widgets/help.js:391 +msgid "Take a tour" msgstr "" -#: js/timbre.js:840 -msgid "Envelope" +#: js/widgets/musickeyboard.js:725 +#: js/widgets/phrasemaker.js:584 +msgid "Add note" msgstr "" -#: js/timbre.js:886 -#: js/GlobalTag.js:50 -#.TRANS: On the Planet, we use labels to tag projects. -msgid "Effects" +#: js/widgets/musickeyboard.js:744 +msgid "Metronome" +msgstr "" + +#: js/widgets/musickeyboard.js:1549 +#: plugins/rodi.rtp:193 +msgid "duration" +msgstr "" + +#: js/widgets/musickeyboard.js:3179 +msgid "New action blocks generated" +msgstr "" + +#: js/widgets/musickeyboard.js:3180 +msgid "New action block generated" msgstr "" -#: js/timbre.js:904 -msgid "Filter" +#: js/widgets/musickeyboard.js:3365 +#: js/widgets/musickeyboard.js:3373 +msgid "MIDI device present." msgstr "" -#: js/timbre.js:946 -msgid "Add filter" +#: js/widgets/musickeyboard.js:3376 +msgid "No MIDI device found." msgstr "" -#: js/timbre.js:987 -msgid "Click on buttons to open the timbre design tools." +#: js/widgets/musickeyboard.js:3386 +msgid "Failed to get MIDI access in browser." msgstr "" -#: js/timbre.js:1273 -msgid "harmonicity" +#: js/widgets/phrasemaker.js:574 +msgid "Export" msgstr "" -#: js/timbre.js:1340 -#: js/timbre.js:1406 -msgid "modulation index" +#: js/widgets/phrasemaker.js:581 +msgid "Sort" msgstr "" -#: js/timbre.js:1484 -msgid "vibrato amount" +#: js/widgets/phrasemaker.js:975 +msgid "Click on the table to add notes." msgstr "" -#: js/timbre.js:1919 -msgid "Filter already present." +#: js/widgets/phrasemaker.js:2677 +#: js/widgets/phrasemaker.js:2819 +msgid "tuplet value" msgstr "" -#: js/timbre.js:2322 -msgid "delay (MS)" +#: js/widgets/rhythmruler.js:486 +msgid "Save rhythms" msgstr "" -#: js/timbre.js:2507 -msgid "distortion amount" +#: js/widgets/rhythmruler.js:512 +msgid "Save drum machine" msgstr "" -#: js/meterwidget.js:170 -msgid "Reset" +#: js/widgets/rhythmruler.js:589 +#.TRANS: user can tap out a rhythm by clicking on a ruler. +msgid "Tap a rhythm" msgstr "" -#: js/meterwidget.js:196 -msgid "Click in the circle to select strong beats for the meter." +#: js/widgets/rhythmruler.js:817 +msgid "Click on the ruler to divide it." msgstr "" -#: js/arpeggio.js:239 -msgid "Click in the grid to add steps to the arpeggio." +#: js/widgets/rhythmruler.js:950 +#: js/widgets/rhythmruler.js:952 +#: js/widgets/rhythmruler.js:1152 +#: js/widgets/rhythmruler.js:1154 +#: js/widgets/rhythmruler.js:1765 +#: js/widgets/rhythmruler.js:1767 +msgid "tap a rhythm" msgstr "" -#: js/ProjectStorage.js:243 -msgid "anonymous" +#: js/widgets/rhythmruler.js:1459 +msgid "Maximum value of 256 has been exceeded." msgstr "" -#: js/GlobalCard.js:68 -msgid "Share" +#: js/widgets/sampler.js:237 +msgid "Recording started..." msgstr "" -#: js/GlobalCard.js:74 -msgid "Flags" +#: js/widgets/sampler.js:245 +msgid "Recording complete..." msgstr "" -#: js/LocalCard.js:36 -msgid "View published project" +#: js/widgets/sampler.js:283 +msgid "A new sample block was generated." msgstr "" -#: js/LocalCard.js:42 -msgid "Publish project" +#: js/widgets/sampler.js:378 +msgid "Upload sample" msgstr "" -#: js/LocalCard.js:51 -msgid "Edit project" +#: js/widgets/sampler.js:399 +msgid "Warning: Your sample cannot be loaded because it is >1MB." msgstr "" -#: js/LocalCard.js:52 -msgid "Delete project" +#: js/widgets/sampler.js:448 +msgid "Toggle Mic" msgstr "" -#: js/LocalCard.js:53 -msgid "Download project" +#: js/widgets/sampler.js:458 +msgid "Playback" msgstr "" -#: js/LocalCard.js:55 -msgid "Duplicate project" +#: js/widgets/sampler.js:979 +#.TRANS: The reference tone is a sound used for comparison. +msgid "reference tone" msgstr "" -#: js/GlobalTag.js:28 +#: planet/js/GlobalTag.js:28 #.TRANS: On the Planet, we use labels to tag projects. msgid "All Projects" msgstr "" -#: js/GlobalTag.js:30 -#: js/StringHelper.js:37 +#: planet/js/GlobalTag.js:30 +#: planet/js/StringHelper.js:37 #.TRANS: On the Planet, we use labels to tag projects. msgid "My Projects" msgstr "" -#: js/GlobalTag.js:32 +#: planet/js/GlobalTag.js:32 #.TRANS: On the Planet, we use labels to tag projects. msgid "Examples" msgstr "" -#: js/GlobalTag.js:34 +#: planet/js/GlobalTag.js:34 #.TRANS: On the Planet, we use labels to tag projects. msgid "Music" msgstr "" -#: js/GlobalTag.js:36 +#: planet/js/GlobalTag.js:36 #.TRANS: On the Planet, we use labels to tag projects. msgid "Art" msgstr "" -#: js/GlobalTag.js:38 +#: planet/js/GlobalTag.js:38 #.TRANS: On the Planet, we use labels to tag projects. msgid "Math" msgstr "" -#: js/GlobalTag.js:40 +#: planet/js/GlobalTag.js:40 #.TRANS: On the Planet, we use labels to tag projects. msgid "Interactive" msgstr "" -#: js/GlobalTag.js:42 +#: planet/js/GlobalTag.js:42 #.TRANS: On the Planet, we use labels to tag projects. msgid "Design" msgstr "" -#: js/GlobalTag.js:44 +#: planet/js/GlobalTag.js:44 #.TRANS: On the Planet, we use labels to tag projects. msgid "Game" msgstr "" -#: js/GlobalTag.js:46 +#: planet/js/GlobalTag.js:46 #.TRANS: On the Planet, we use labels to tag projects. msgid "Media" msgstr "" -#: js/GlobalTag.js:48 +#: planet/js/GlobalTag.js:48 #.TRANS: On the Planet, we use labels to tag projects. msgid "Sensors" msgstr "" -#: js/GlobalTag.js:52 +#: planet/js/GlobalTag.js:52 #.TRANS: On the Planet, we use labels to tag projects. msgid "Code Snippet" msgstr "" -#: js/helper.js:149 -#: js/StringHelper.js:49 -msgid "Show more tags" +#: planet/js/LocalCard.js:36 +msgid "View published project" msgstr "" -#: js/helper.js:150 -msgid "Show fewer tags" +#: planet/js/LocalCard.js:42 +msgid "Publish project" +msgstr "" + +#: planet/js/LocalCard.js:51 +msgid "Edit project" +msgstr "" + +#: planet/js/LocalCard.js:52 +msgid "Delete project" +msgstr "" + +#: planet/js/LocalCard.js:53 +msgid "Download project" +msgstr "" + +#: planet/js/LocalCard.js:55 +msgid "Duplicate project" +msgstr "" + +#: planet/js/ProjectStorage.js:243 +msgid "anonymous" +msgstr "" + +#: planet/js/SaveInterface.js:34 +msgid "Open in Music Blocks" +msgstr "" + +#: planet/js/SaveInterface.js:35 +msgid "Open in Turtle Blocks" msgstr "" -#: js/ProjectViewer.js:30 +#: planet/js/GlobalCard.js:68 +msgid "Share" +msgstr "" + +#: planet/js/GlobalCard.js:74 +msgid "Flags" +msgstr "" + +#: planet/js/GlobalPlanet.js:35 +msgid "No results found." +msgstr "" + +#: planet/js/GlobalPlanet.js:51 +msgid "Remix of" +msgstr "" + +#: planet/js/GlobalPlanet.js:509 +msgid "Cannot connect to server" +msgstr "" + +#: planet/js/ProjectViewer.js:30 msgid "Error: Report could not be submitted. Try again later." msgstr "" -#: js/ProjectViewer.js:31 +#: planet/js/ProjectViewer.js:31 msgid "Thank you for reporting this project. A moderator will review the project shortly, to verify violation of the Sugar Labs Code of Conduct." msgstr "" -#: js/ProjectViewer.js:32 -#: js/StringHelper.js:62 -#: js/StringHelper.js:64 -#: js/StringHelper.js:68 +#: planet/js/ProjectViewer.js:32 +#: planet/js/StringHelper.js:62 +#: planet/js/StringHelper.js:64 +#: planet/js/StringHelper.js:68 msgid "Report Project" msgstr "" -#: js/ProjectViewer.js:33 -#: js/StringHelper.js:63 +#: planet/js/ProjectViewer.js:33 +#: planet/js/StringHelper.js:63 msgid "Project Reported" msgstr "" -#: js/ProjectViewer.js:34 +#: planet/js/ProjectViewer.js:34 msgid "Report description required" msgstr "" -#: js/ProjectViewer.js:35 +#: planet/js/ProjectViewer.js:35 msgid "Report description too long" msgstr "" -#: js/StringHelper.js:30 +#: planet/js/Publisher.js:30 +msgid "Feature unavailable - cannot connect to server. Reload Music Blocks to try again." +msgstr "" + +#: planet/js/Publisher.js:220 +#: planet/js/Publisher.js:237 +msgid "This field is required" +msgstr "" + +#: planet/js/Publisher.js:227 +msgid "Title too long" +msgstr "" + +#: planet/js/Publisher.js:244 +msgid "Description too long" +msgstr "" + +#: planet/js/Publisher.js:341 +msgid "Server Error" +msgstr "" + +#: planet/js/Publisher.js:341 +msgid "Try Again" +msgstr "" + +#: planet/js/StringHelper.js:30 msgid "Planet" msgstr "" -#: js/StringHelper.js:31 +#: planet/js/StringHelper.js:31 msgid "Close Planet" msgstr "" -#: js/StringHelper.js:32 +#: planet/js/StringHelper.js:32 msgid "Open project from file" msgstr "" -#: js/StringHelper.js:34 +#: planet/js/StringHelper.js:34 msgid "Local" msgstr "" -#: js/StringHelper.js:35 +#: planet/js/StringHelper.js:35 msgid "Global" msgstr "" -#: js/StringHelper.js:36 +#: planet/js/StringHelper.js:36 msgid "Search for a project" msgstr "" -#: js/StringHelper.js:38 +#: planet/js/StringHelper.js:38 msgid "Publish Project" msgstr "" -#: js/StringHelper.js:40 +#: planet/js/StringHelper.js:40 msgid "Tags (max 5)" msgstr "" -#: js/StringHelper.js:41 -#: js/StringHelper.js:61 +#: planet/js/StringHelper.js:41 +#: planet/js/StringHelper.js:61 msgid "Description" msgstr "" -#: js/StringHelper.js:42 -#: js/StringHelper.js:67 +#: planet/js/StringHelper.js:42 +#: planet/js/StringHelper.js:67 msgid "Submit" msgstr "" -#: js/StringHelper.js:43 -#: js/StringHelper.js:47 +#: planet/js/StringHelper.js:43 +#: planet/js/StringHelper.js:47 msgid "Cancel" msgstr "" -#: js/StringHelper.js:44 +#: planet/js/StringHelper.js:44 msgid "Delete \\"\\"?" msgstr "" -#: js/StringHelper.js:45 +#: planet/js/StringHelper.js:45 msgid "Permanently delete project \\"\\"?" msgstr "" -#: js/StringHelper.js:48 +#: planet/js/StringHelper.js:48 msgid "Explore Projects" msgstr "" -#: js/StringHelper.js:50 +#: planet/js/StringHelper.js:49 +#: planet/js/helper.js:149 +msgid "Show more tags" +msgstr "" + +#: planet/js/StringHelper.js:50 msgid "Most recent" msgstr "" -#: js/StringHelper.js:51 +#: planet/js/StringHelper.js:51 msgid "Most liked" msgstr "" -#: js/StringHelper.js:52 +#: planet/js/StringHelper.js:52 msgid "Most downloaded" msgstr "" -#: js/StringHelper.js:53 +#: planet/js/StringHelper.js:53 msgid "A-Z" msgstr "" -#: js/StringHelper.js:54 +#: planet/js/StringHelper.js:54 msgid "Sort by" msgstr "" -#: js/StringHelper.js:55 +#: planet/js/StringHelper.js:55 msgid "Load More Projects" msgstr "" -#: js/StringHelper.js:56 +#: planet/js/StringHelper.js:56 msgid "Last Updated" msgstr "" -#: js/StringHelper.js:57 +#: planet/js/StringHelper.js:57 msgid "Creation Date" msgstr "" -#: js/StringHelper.js:58 +#: planet/js/StringHelper.js:58 msgid "Number of Downloads:" msgstr "" -#: js/StringHelper.js:59 +#: planet/js/StringHelper.js:59 msgid "Number of Likes:" msgstr "" -#: js/StringHelper.js:60 +#: planet/js/StringHelper.js:60 msgid "Tags:" msgstr "" -#: js/StringHelper.js:65 +#: planet/js/StringHelper.js:65 msgid "Report projects which violate the Sugar Labs Code of Conduct." msgstr "" -#: js/StringHelper.js:66 +#: planet/js/StringHelper.js:66 msgid "Reason for reporting project" msgstr "" -#: js/StringHelper.js:70 +#: planet/js/StringHelper.js:70 msgid "Download as File" msgstr "" -#: js/GlobalPlanet.js:35 -msgid "No results found." -msgstr "" - -#: js/GlobalPlanet.js:51 -msgid "Remix of" -msgstr "" - -#: js/GlobalPlanet.js:509 -msgid "Cannot connect to server" -msgstr "" - -#: js/Publisher.js:30 -msgid "Feature unavailable - cannot connect to server. Reload Music Blocks to try again." -msgstr "" - -#: js/Publisher.js:218 -#: js/Publisher.js:235 -msgid "This field is required" -msgstr "" - -#: js/Publisher.js:225 -msgid "Title too long" +#: planet/js/helper.js:150 +msgid "Show fewer tags" msgstr "" -#: js/Publisher.js:242 -msgid "Description too long" +#: plugins/accelerometer.rtp:48 +msgid "motion x" msgstr "" -#: js/Publisher.js:339 -msgid "Server Error" +#: plugins/accelerometer.rtp:56 +msgid "motion y" msgstr "" -#: js/Publisher.js:339 -msgid "Try Again" +#: plugins/accelerometer.rtp:64 +msgid "motion z" msgstr "" -#: js/SaveInterface.js:34 -msgid "Open in Music Blocks" +#: plugins/facebook.rtp:27 +msgid "publish" msgstr "" -#: js/SaveInterface.js:35 -msgid "Open in Turtle Blocks" +#: plugins/maths.rtp:62 +msgid "power" msgstr "" -#: plugins/weather.rtp:68 -#: plugins/weather.rtp:97 -msgid "Days ahead must be in the range of -1 to 5." +#: plugins/maths.rtp:62 +msgid "base" msgstr "" -#: plugins/weather.rtp:122 -msgid "forecast" +#: plugins/maths.rtp:62 +msgid "exp" msgstr "" -#: plugins/weather.rtp:123 -#: plugins/weather.rtp:137 -#: plugins/weather.rtp:150 -msgid "city" +#: plugins/maths.rtp:99 +msgid "floor" msgstr "" -#: plugins/weather.rtp:124 -#: plugins/weather.rtp:138 -#: plugins/weather.rtp:151 -msgid "day" +#: plugins/maths.rtp:104 +msgid "ceiling" msgstr "" -#: plugins/weather.rtp:136 -msgid "high" +#: plugins/maths.rtp:109 +msgid "to degrees" msgstr "" -#: plugins/weather.rtp:149 -msgid "low" +#: plugins/maths.rtp:114 +msgid "to radians" msgstr "" #: plugins/nutrition.rtp:104 @@ -9464,45 +7752,6 @@ msgstr "" msgid "water" msgstr "" -#: plugins/maths.rtp:62 -#: plugins/examples.rtp:93 -msgid "power" -msgstr "" - -#: plugins/maths.rtp:62 -#: plugins/examples.rtp:93 -msgid "base" -msgstr "" - -#: plugins/maths.rtp:62 -#: plugins/examples.rtp:93 -msgid "exp" -msgstr "" - -#: plugins/maths.rtp:99 -#: plugins/examples.rtp:130 -msgid "floor" -msgstr "" - -#: plugins/maths.rtp:104 -#: plugins/examples.rtp:135 -msgid "ceiling" -msgstr "" - -#: plugins/maths.rtp:109 -#: plugins/examples.rtp:140 -msgid "to degrees" -msgstr "" - -#: plugins/maths.rtp:114 -#: plugins/examples.rtp:145 -msgid "to radians" -msgstr "" - -#: plugins/facebook.rtp:27 -msgid "publish" -msgstr "" - #: plugins/rodi.rtp:172 msgid "blink" msgstr "" @@ -9531,18 +7780,69 @@ msgstr "" msgid "move" msgstr "" -#: plugins/accelerometer.rtp:48 -msgid "motion x" +#: plugins/weather.rtp:68 +#: plugins/weather.rtp:97 +msgid "Days ahead must be in the range of -1 to 5." msgstr "" -#: plugins/accelerometer.rtp:56 -msgid "motion y" +#: plugins/weather.rtp:122 +msgid "forecast" msgstr "" -#: plugins/accelerometer.rtp:64 -msgid "motion z" +#: plugins/weather.rtp:123 +#: plugins/weather.rtp:137 +#: plugins/weather.rtp:150 +msgid "city" +msgstr "" + +#: plugins/weather.rtp:124 +#: plugins/weather.rtp:138 +#: plugins/weather.rtp:151 +msgid "day" +msgstr "" + +#: plugins/weather.rtp:136 +msgid "high" +msgstr "" + +#: plugins/weather.rtp:149 +msgid "low" msgstr "" +#~msgid ""Toggle Fullscreen" +#~msgstr ""தமிழ்" + +#: js/toolbar.js:70 + +#: js/toolbar.js:130 + +#: js/toolbar.js:194 + +#: js/toolbar.js:249 + +#~msgid "Toggle JavaScript Editor" +#~msgstr "" + +#: js/EnsembleBlocks.js:643 + +#~msgid "The Turrle pitch block returns the current pitch number being played by the specified turtle." +#~msgstr "" + +#: js/PitchActions.js:88 + +#~msgid "The Scalar Step Block must be used inside of a Note Block." +#~msgstr "" + +#: js/PitchActions.js:107 + +#~msgid "The Scalar Step Block must be preceded by a Pitch Block." +#~msgstr "" + +#: js/musickeyboard.js:2840 + +#~msgid "New action blocks generated!" +#~msgstr "" + #: js/toolbar.js:110 #: js/toolbar.js:204 @@ -9883,11 +8183,6 @@ msgstr "" #~msgid "The Time block returns the number of seconds that the program has been running." #~msgstr "" -#: js/help.js:95 - -#~msgid "Take a tour" -#~msgstr "" - #: js/GlobalCard.js:48 #~msgid "More Details" @@ -12786,11 +11081,6 @@ msgstr "" #~msgid "The save-stack button saves a stack onto a custom palette. It appears after a \"long press\" on a stack." #~msgstr "" -#: js/musicutils.js:254 - -#~msgid "Custom" -#~msgstr "" - #: js/basicblocks.js:4785 #~msgid "Rhythm" diff --git a/po/te.po b/po/te.po index 07d2300789..1150770f3e 100644 --- a/po/te.po +++ b/po/te.po @@ -15,2398 +15,132 @@ #js/toolbar.js:230 #js/turtledefs.js:504 #js/turtledefs.js:505 -msgid: "Toggle Fullscreen" -msgstr: "పూర్తి పరిపూర్ణత మార్చు" - -#: js/activity.js:443 -#: js/activity.js:443 -#: js/activity.js:445 -#: js/activity.js:453 -#: js/activity.js:472 -#: js/activity.js:472 -#: js/activity.js:475 -#: js/block.js:632 -#: js/pitchdrummatrix.js:178 -#: js/musicutils.js:37 -#: js/block.js:531 -#: js/pitchdrummatrix.js:235 -#: js/musicutils.js:40 -#: js/block.js:532 -#: js/pitchdrummatrix.js:235 -#: js/musicutils.js:40 -#: js/block.js:534 -#: js/pitchdrummatrix.js:235 -#: js/musicutils.js:40 -#: js/block.js:534 -#: js/pitchdrummatrix.js:235 -#: js/musicutils.js:40 -#: js/block.js:534 -#: js/pitchdrummatrix.js:235 -#: js/musicutils.js:40 -#: js/block.js:535 -#: js/pitchdrummatrix.js:235 -#: js/musicutils.js:43 -#: js/block.js:535 -#: js/pitchdrummatrix.js:235 -#: js/musicutils.js:43 -#: js/block.js:535 -#: js/pitchdrummatrix.js:235 -#: js/musicutils.js:43 -#: js/block.js:535 -#: js/pitchdrummatrix.js:235 -#: js/musicutils.js:43 -#: js/block.js:535 -#: js/pitchdrummatrix.js:235 -#: js/musicutils.js:43 -#: js/block.js:535 -#: js/pitchdrummatrix.js:235 -#: js/musicutils.js:43 -#: js/block.js:535 -#: js/pitchdrummatrix.js:235 -#: js/musicutils.js:43 -#: js/block.js:535 -#: js/pitchdrummatrix.js:235 -#: js/musicutils.js:43 -#: js/block.js:535 -#: js/pitchdrummatrix.js:235 -#: js/musicutils.js:43 -#: js/block.js:535 -#: js/pitchdrummatrix.js:235 -#: js/musicutils.js:43 -#: js/block.js:535 -#: js/pitchdrummatrix.js:235 -#: js/musicutils.js:43 -#: js/block.js:535 -#: js/pitchdrummatrix.js:235 -#: js/musicutils.js:43 -#: js/block.js:535 -#: js/pitchdrummatrix.js:235 -#: js/musicutils.js:43 -#: js/synthutils.js:14 -#: js/block.js:535 -#: js/pitchdrummatrix.js:235 -#: js/musicutils.js:43 -#: js/block.js:535 -#: js/pitchdrummatrix.js:235 -#: js/musicutils.js:43 -#: js/block.js:535 -#: js/pitchdrummatrix.js:235 -#: js/musicutils.js:43 -#: js/block.js:535 -#: js/pitchdrummatrix.js:235 -#: js/musicutils.js:43 -#: js/block.js:535 -#: js/pitchdrummatrix.js:235 -#: js/musicutils.js:43 -#: js/block.js:535 -#: js/pitchdrummatrix.js:235 -#: js/musicutils.js:43 -#: js/block.js:535 -#: js/pitchdrummatrix.js:235 -#: js/musicutils.js:43 -#: js/block.js:535 -#: js/pitchdrummatrix.js:235 -#: js/musicutils.js:43 -#: js/block.js:535 -#: js/pitchdrummatrix.js:235 -#: js/musicutils.js:43 -#: js/block.js:535 -#: js/pitchdrummatrix.js:235 -#: js/musicutils.js:43 -#: js/block.js:535 -#: js/pitchdrummatrix.js:235 -#: js/musicutils.js:43 -#: js/block.js:536 -#: js/pitchdrummatrix.js:235 -#: js/musicutils.js:45 -#: js/block.js:536 -#: js/pitchdrummatrix.js:235 -#: js/musicutils.js:45 -#: js/block.js:551 -#: js/pitchdrummatrix.js:235 -#: js/musicutils.js:46 -#: js/block.js:551 -#: js/pitchdrummatrix.js:235 -#: js/musicutils.js:46 -#: js/block.js:565 -#: js/pitchdrummatrix.js:235 -#: js/musicutils.js:48 -#: js/musicutils.js:57 -#: js/block.js:565 -#: js/pitchdrummatrix.js:235 -#: js/musicutils.js:48 -#: js/musicutils.js:57 -#: js/block.js:565 -#: js/pitchdrummatrix.js:235 -#: js/musicutils.js:48 -#: js/musicutils.js:57 -#: js/block.js:567 -#: js/pitchdrummatrix.js:235 -#: js/musicutils.js:48 -#: js/musicutils.js:57 -#: js/block.js:720 -#: js/block.js:3892 -#: js/block.js:3901 -#: js/block.js:3912 -#: js/activity.js:2732 -#: js/analytics.js:475 -#: js/palette.js:676 -#: js/palette.js:685 -#: js/palette.js:694 -#: js/palette.js:703 -#: js/palette.js:1978 -#: js/palette.js:1989 -#: js/palette.js:2000 -#: js/palette.js:2011 -#: js/turtledefs.js:23 -#: js/basicblocks.js:1148 -#: js/basicblocks.js:1159 -#: js/basicblocks.js:2806 -#: js/basicblocks.js:2837 -#: js/basicblocks.js:2844 -#: js/basicblocks.js:2873 -#: js/basicblocks.js:2883 -#: js/basicblocks.js:2915 -#: js/basicblocks.js:2960 -#: js/basicblocks.js:2964 -#: js/basicblocks.js:2970 -#: js/macros.js:44 -#: js/blocks.js:784 -#: js/blocks.js:2385 -#: js/blocks.js:2386 -#: js/blocks.js:2578 -#: js/blocks.js:2784 -#: js/blocks.js:2940 -#: js/blocks.js:3503 -#: js/blocks.js:4308 -#: js/block.js:720 -#: js/block.js:3892 -#: js/block.js:3901 -#: js/block.js:3912 -#: js/activity.js:2732 -#: js/analytics.js:475 -#: js/palette.js:681 -#: js/palette.js:690 -#: js/palette.js:699 -#: js/palette.js:708 -#: js/palette.js:1983 -#: js/palette.js:1994 -#: js/palette.js:2005 -#: js/palette.js:2016 -#: js/turtledefs.js:23 -#: js/basicblocks.js:1148 -#: js/basicblocks.js:1159 -#: js/basicblocks.js:1170 -#: js/basicblocks.js:2817 -#: js/basicblocks.js:2848 -#: js/basicblocks.js:2855 -#: js/basicblocks.js:2884 -#: js/basicblocks.js:2894 -#: js/basicblocks.js:2926 -#: js/basicblocks.js:2971 -#: js/basicblocks.js:2975 -#: js/basicblocks.js:2981 -#: js/macros.js:44 -#: js/blocks.js:784 -#: js/blocks.js:2385 -#: js/blocks.js:2386 -#: js/blocks.js:2578 -#: js/blocks.js:2784 -#: js/blocks.js:2940 -#: js/blocks.js:3514 -#: js/blocks.js:4319 -#: js/block.js:720 -#: js/block.js:3892 -#: js/block.js:3901 -#: js/block.js:3912 -#: js/activity.js:2732 -#: js/analytics.js:475 -#: js/palette.js:681 -#: js/palette.js:690 -#: js/palette.js:699 -#: js/palette.js:708 -#: js/palette.js:1983 -#: js/palette.js:1994 -#: js/palette.js:2005 -#: js/palette.js:2016 -#: js/turtledefs.js:23 -#: js/basicblocks.js:1148 -#: js/basicblocks.js:1159 -#: js/basicblocks.js:1170 -#: js/basicblocks.js:2817 -#: js/basicblocks.js:2848 -#: js/basicblocks.js:2855 -#: js/basicblocks.js:2884 -#: js/basicblocks.js:2894 -#: js/basicblocks.js:2926 -#: js/basicblocks.js:2971 -#: js/basicblocks.js:2975 -#: js/basicblocks.js:2981 -#: js/macros.js:44 -#: js/blocks.js:784 -#: js/blocks.js:2385 -#: js/blocks.js:2386 -#: js/blocks.js:2578 -#: js/blocks.js:2784 -#: js/blocks.js:2940 -#: js/blocks.js:3514 -#: js/blocks.js:4319 -#: js/block.js:863 -#: js/block.js:4105 -#: js/block.js:4114 -#: js/block.js:4125 -#: js/activity.js:2934 -#: js/palette.js:734 -#: js/palette.js:745 -#: js/palette.js:754 -#: js/palette.js:763 -#: js/palette.js:2076 -#: js/palette.js:2088 -#: js/palette.js:2099 -#: js/palette.js:2110 -#: js/turtledefs.js:23 -#: js/basicblocks.js:1406 -#: js/basicblocks.js:1420 -#: js/basicblocks.js:1434 -#: js/basicblocks.js:3700 -#: js/basicblocks.js:3740 -#: js/basicblocks.js:3750 -#: js/basicblocks.js:3788 -#: js/basicblocks.js:3801 -#: js/basicblocks.js:3852 -#: js/basicblocks.js:3897 -#: js/basicblocks.js:3902 -#: js/basicblocks.js:3907 -#: js/rubrics.js:475 -#: js/macros.js:44 -#: js/blocks.js:863 -#: js/blocks.js:2466 -#: js/blocks.js:2467 -#: js/blocks.js:2659 -#: js/blocks.js:2865 -#: js/blocks.js:3021 -#: js/blocks.js:3661 -#: js/blocks.js:4458 -#: js/rhythmruler.js:1138 -#: js/rhythmruler.js:1140 -#: js/rhythmruler.js:1240 -#: js/rhythmruler.js:1242 -#: js/block.js:876 -#: js/block.js:4289 -#: js/block.js:4298 -#: js/block.js:4309 -#: js/activity.js:3042 -#: js/palette.js:750 -#: js/palette.js:759 -#: js/palette.js:768 -#: js/palette.js:777 -#: js/palette.js:2057 -#: js/palette.js:2068 -#: js/palette.js:2079 -#: js/palette.js:2090 -#: js/palette.js:2100 -#: js/turtledefs.js:23 -#: js/basicblocks.js:1407 -#: js/basicblocks.js:1421 -#: js/basicblocks.js:1435 -#: js/basicblocks.js:3720 -#: js/basicblocks.js:3760 -#: js/basicblocks.js:3770 -#: js/basicblocks.js:3808 -#: js/basicblocks.js:3821 -#: js/basicblocks.js:3862 -#: js/basicblocks.js:3917 -#: js/basicblocks.js:3922 -#: js/basicblocks.js:3927 -#: js/rubrics.js:476 -#: js/macros.js:44 -#: js/blocks.js:863 -#: js/blocks.js:2475 -#: js/blocks.js:2476 -#: js/blocks.js:2668 -#: js/blocks.js:2874 -#: js/blocks.js:3030 -#: js/blocks.js:3851 -#: js/blocks.js:4668 -#: js/rhythmruler.js:1149 -#: js/rhythmruler.js:1151 -#: js/rhythmruler.js:1251 -#: js/rhythmruler.js:1253 -#: js/block.js:923 -#: js/block.js:4637 -#: js/block.js:4646 -#: js/block.js:4657 -#: js/activity.js:3061 -#: js/palette.js:737 -#: js/palette.js:746 -#: js/palette.js:755 -#: js/palette.js:764 -#: js/palette.js:2043 -#: js/palette.js:2054 -#: js/palette.js:2065 -#: js/palette.js:2076 -#: js/palette.js:2086 -#: js/turtledefs.js:23 -#: js/basicblocks.js:1445 -#: js/basicblocks.js:1459 -#: js/basicblocks.js:1473 -#: js/basicblocks.js:3776 -#: js/basicblocks.js:3816 -#: js/basicblocks.js:3826 -#: js/basicblocks.js:3864 -#: js/basicblocks.js:3877 -#: js/basicblocks.js:3918 -#: js/basicblocks.js:3973 -#: js/basicblocks.js:3978 -#: js/basicblocks.js:3983 -#: js/rubrics.js:477 -#: js/macros.js:45 -#: js/blocks.js:816 -#: js/blocks.js:2432 -#: js/blocks.js:2433 -#: js/blocks.js:2625 -#: js/blocks.js:2869 -#: js/blocks.js:3025 -#: js/blocks.js:3866 -#: js/blocks.js:4705 -#: js/rhythmruler.js:1149 -#: js/rhythmruler.js:1151 -#: js/rhythmruler.js:1251 -#: js/rhythmruler.js:1253 -#: js/block.js:923 -#: js/block.js:4823 -#: js/block.js:4832 -#: js/block.js:4843 -#: js/activity.js:3079 -#: js/palette.js:737 -#: js/palette.js:746 -#: js/palette.js:755 -#: js/palette.js:764 -#: js/palette.js:2043 -#: js/palette.js:2054 -#: js/palette.js:2065 -#: js/palette.js:2076 -#: js/palette.js:2086 -#: js/turtledefs.js:23 -#: js/basicblocks.js:1441 -#: js/basicblocks.js:1455 -#: js/basicblocks.js:1469 -#: js/basicblocks.js:3762 -#: js/basicblocks.js:3802 -#: js/basicblocks.js:3812 -#: js/basicblocks.js:3850 -#: js/basicblocks.js:3863 -#: js/basicblocks.js:3904 -#: js/basicblocks.js:3959 -#: js/basicblocks.js:3964 -#: js/basicblocks.js:3969 -#: js/rubrics.js:477 -#: js/macros.js:45 -#: js/blocks.js:816 -#: js/blocks.js:2430 -#: js/blocks.js:2431 -#: js/blocks.js:2623 -#: js/blocks.js:2867 -#: js/blocks.js:3023 -#: js/blocks.js:3864 -#: js/blocks.js:4702 -#: js/rhythmruler.js:1149 -#: js/rhythmruler.js:1151 -#: js/rhythmruler.js:1251 -#: js/rhythmruler.js:1253 -#: js/block.js:923 -#: js/block.js:4836 -#: js/block.js:4845 -#: js/block.js:4856 -#: js/activity.js:3089 -#: js/palette.js:737 -#: js/palette.js:746 -#: js/palette.js:755 -#: js/palette.js:764 -#: js/palette.js:2043 -#: js/palette.js:2054 -#: js/palette.js:2065 -#: js/palette.js:2076 -#: js/palette.js:2086 -#: js/turtledefs.js:23 -#: js/basicblocks.js:1441 -#: js/basicblocks.js:1455 -#: js/basicblocks.js:1469 -#: js/basicblocks.js:3762 -#: js/basicblocks.js:3802 -#: js/basicblocks.js:3812 -#: js/basicblocks.js:3850 -#: js/basicblocks.js:3863 -#: js/basicblocks.js:3904 -#: js/basicblocks.js:3959 -#: js/basicblocks.js:3964 -#: js/basicblocks.js:3969 -#: js/rubrics.js:477 -#: js/macros.js:45 -#: js/blocks.js:816 -#: js/blocks.js:2432 -#: js/blocks.js:2433 -#: js/blocks.js:2625 -#: js/blocks.js:2869 -#: js/blocks.js:3025 -#: js/blocks.js:3866 -#: js/blocks.js:4704 -#: js/rhythmruler.js:1149 -#: js/rhythmruler.js:1151 -#: js/rhythmruler.js:1251 -#: js/rhythmruler.js:1253 -#: js/block.js:923 -#: js/block.js:4841 -#: js/block.js:4850 -#: js/block.js:4861 -#: js/activity.js:3079 -#: js/palette.js:737 -#: js/palette.js:746 -#: js/palette.js:755 -#: js/palette.js:764 -#: js/palette.js:2043 -#: js/palette.js:2054 -#: js/palette.js:2065 -#: js/palette.js:2076 -#: js/palette.js:2086 -#: js/turtledefs.js:23 -#: js/basicblocks.js:1474 -#: js/basicblocks.js:1488 -#: js/basicblocks.js:1502 -#: js/basicblocks.js:3808 -#: js/basicblocks.js:3848 -#: js/basicblocks.js:3858 -#: js/basicblocks.js:3896 -#: js/basicblocks.js:3909 -#: js/basicblocks.js:3950 -#: js/basicblocks.js:4005 -#: js/basicblocks.js:4010 -#: js/basicblocks.js:4015 -#: js/rubrics.js:477 -#: js/macros.js:45 -#: js/blocks.js:816 -#: js/blocks.js:2433 -#: js/blocks.js:2434 -#: js/blocks.js:2626 -#: js/blocks.js:2870 -#: js/blocks.js:3026 -#: js/blocks.js:3867 -#: js/blocks.js:4705 -#: js/rhythmruler.js:1157 -#: js/rhythmruler.js:1159 -#: js/rhythmruler.js:1259 -#: js/rhythmruler.js:1261 -#: js/block.js:923 -#: js/block.js:4845 -#: js/block.js:4854 -#: js/block.js:4865 -#: js/activity.js:3083 -#: js/palette.js:765 -#: js/palette.js:774 -#: js/palette.js:783 -#: js/palette.js:792 -#: js/palette.js:2072 -#: js/palette.js:2083 -#: js/palette.js:2094 -#: js/palette.js:2105 -#: js/palette.js:2115 -#: js/turtledefs.js:25 -#: js/basicblocks.js:1474 -#: js/basicblocks.js:1488 -#: js/basicblocks.js:1502 -#: js/basicblocks.js:3808 -#: js/basicblocks.js:3848 -#: js/basicblocks.js:3858 -#: js/basicblocks.js:3896 -#: js/basicblocks.js:3909 -#: js/basicblocks.js:3950 -#: js/basicblocks.js:4005 -#: js/basicblocks.js:4010 -#: js/basicblocks.js:4015 -#: js/rubrics.js:477 -#: js/macros.js:45 -#: js/blocks.js:816 -#: js/blocks.js:2433 -#: js/blocks.js:2434 -#: js/blocks.js:2626 -#: js/blocks.js:2870 -#: js/blocks.js:3026 -#: js/blocks.js:3867 -#: js/blocks.js:4705 -#: js/rhythmruler.js:1157 -#: js/rhythmruler.js:1159 -#: js/rhythmruler.js:1259 -#: js/rhythmruler.js:1261 -#: js/block.js:923 -#: js/block.js:4845 -#: js/block.js:4854 -#: js/block.js:4865 -#: js/activity.js:3083 -#: js/palette.js:765 -#: js/palette.js:774 -#: js/palette.js:783 -#: js/palette.js:792 -#: js/palette.js:2072 -#: js/palette.js:2083 -#: js/palette.js:2094 -#: js/palette.js:2105 -#: js/palette.js:2115 -#: js/turtledefs.js:25 -#: js/basicblocks.js:1474 -#: js/basicblocks.js:1488 -#: js/basicblocks.js:1502 -#: js/basicblocks.js:3808 -#: js/basicblocks.js:3848 -#: js/basicblocks.js:3858 -#: js/basicblocks.js:3896 -#: js/basicblocks.js:3909 -#: js/basicblocks.js:3950 -#: js/basicblocks.js:4005 -#: js/basicblocks.js:4010 -#: js/basicblocks.js:4015 -#: js/rubrics.js:477 -#: js/macros.js:45 -#: js/blocks.js:816 -#: js/blocks.js:2433 -#: js/blocks.js:2434 -#: js/blocks.js:2626 -#: js/blocks.js:2870 -#: js/blocks.js:3026 -#: js/blocks.js:3867 -#: js/blocks.js:4705 -#: js/rhythmruler.js:1157 -#: js/rhythmruler.js:1159 -#: js/rhythmruler.js:1259 -#: js/rhythmruler.js:1261 -#: js/block.js:923 -#: js/block.js:4845 -#: js/block.js:4854 -#: js/block.js:4865 -#: js/activity.js:3083 -#: js/palette.js:765 -#: js/palette.js:774 -#: js/palette.js:783 -#: js/palette.js:792 -#: js/palette.js:2072 -#: js/palette.js:2083 -#: js/palette.js:2094 -#: js/palette.js:2105 -#: js/palette.js:2115 -#: js/turtledefs.js:25 -#: js/basicblocks.js:1474 -#: js/basicblocks.js:1488 -#: js/basicblocks.js:1502 -#: js/basicblocks.js:3808 -#: js/basicblocks.js:3848 -#: js/basicblocks.js:3858 -#: js/basicblocks.js:3896 -#: js/basicblocks.js:3909 -#: js/basicblocks.js:3950 -#: js/basicblocks.js:4005 -#: js/basicblocks.js:4010 -#: js/basicblocks.js:4015 -#: js/rubrics.js:477 -#: js/macros.js:45 -#: js/blocks.js:816 -#: js/blocks.js:2433 -#: js/blocks.js:2434 -#: js/blocks.js:2626 -#: js/blocks.js:2870 -#: js/blocks.js:3026 -#: js/blocks.js:3867 -#: js/blocks.js:4705 -#: js/rhythmruler.js:1157 -#: js/rhythmruler.js:1159 -#: js/rhythmruler.js:1259 -#: js/rhythmruler.js:1261 -#: js/block.js:926 -#: js/block.js:4883 -#: js/block.js:4892 -#: js/block.js:4903 -#: js/activity.js:3083 -#: js/palette.js:765 -#: js/palette.js:774 -#: js/palette.js:783 -#: js/palette.js:792 -#: js/palette.js:2075 -#: js/palette.js:2086 -#: js/palette.js:2097 -#: js/palette.js:2108 -#: js/palette.js:2118 -#: js/turtledefs.js:25 -#: js/basicblocks.js:1474 -#: js/basicblocks.js:1488 -#: js/basicblocks.js:1502 -#: js/basicblocks.js:3830 -#: js/basicblocks.js:3870 -#: js/basicblocks.js:3880 -#: js/basicblocks.js:3918 -#: js/basicblocks.js:3931 -#: js/basicblocks.js:3972 -#: js/basicblocks.js:4027 -#: js/basicblocks.js:4032 -#: js/basicblocks.js:4037 -#: js/rubrics.js:478 -#: js/macros.js:45 -#: js/blocks.js:816 -#: js/blocks.js:2437 -#: js/blocks.js:2438 -#: js/blocks.js:2630 -#: js/blocks.js:2874 -#: js/blocks.js:3030 -#: js/blocks.js:3871 -#: js/blocks.js:4724 -#: js/rhythmruler.js:1157 -#: js/rhythmruler.js:1159 -#: js/rhythmruler.js:1259 -#: js/rhythmruler.js:1261 -#: js/block.js:926 -#: js/block.js:4883 -#: js/block.js:4892 -#: js/block.js:4903 -#: js/activity.js:3078 -#: js/palette.js:765 -#: js/palette.js:774 -#: js/palette.js:783 -#: js/palette.js:792 -#: js/palette.js:2075 -#: js/palette.js:2086 -#: js/palette.js:2097 -#: js/palette.js:2108 -#: js/palette.js:2118 -#: js/turtledefs.js:25 -#: js/basicblocks.js:1475 -#: js/basicblocks.js:1489 -#: js/basicblocks.js:1503 -#: js/basicblocks.js:3832 -#: js/basicblocks.js:3872 -#: js/basicblocks.js:3882 -#: js/basicblocks.js:3920 -#: js/basicblocks.js:3933 -#: js/basicblocks.js:3974 -#: js/basicblocks.js:4029 -#: js/basicblocks.js:4034 -#: js/basicblocks.js:4039 -#: js/rubrics.js:478 -#: js/macros.js:45 -#: js/blocks.js:816 -#: js/blocks.js:2437 -#: js/blocks.js:2438 -#: js/blocks.js:2630 -#: js/blocks.js:2874 -#: js/blocks.js:3030 -#: js/blocks.js:3871 -#: js/blocks.js:4724 -#: js/rhythmruler.js:1162 -#: js/rhythmruler.js:1164 -#: js/rhythmruler.js:1272 -#: js/rhythmruler.js:1274 -#: js/block.js:1046 -#: js/block.js:5109 -#: js/block.js:5118 -#: js/block.js:5129 -#: js/activity.js:3147 -#: js/palette.js:766 -#: js/palette.js:775 -#: js/palette.js:784 -#: js/palette.js:793 -#: js/palette.js:2076 -#: js/palette.js:2087 -#: js/palette.js:2098 -#: js/palette.js:2109 -#: js/palette.js:2119 -#: js/turtledefs.js:25 -#: js/basicblocks.js:1504 -#: js/basicblocks.js:1524 -#: js/basicblocks.js:1538 -#: js/basicblocks.js:3894 -#: js/basicblocks.js:3934 -#: js/basicblocks.js:3944 -#: js/basicblocks.js:3992 -#: js/basicblocks.js:4005 -#: js/basicblocks.js:4052 -#: js/basicblocks.js:4107 -#: js/basicblocks.js:4112 -#: js/basicblocks.js:4117 -#: js/rubrics.js:478 -#: js/macros.js:45 -#: js/blocks.js:816 -#: js/blocks.js:2437 -#: js/blocks.js:2438 -#: js/blocks.js:2630 -#: js/blocks.js:2874 -#: js/blocks.js:3030 -#: js/blocks.js:3940 -#: js/blocks.js:4793 -#: js/rhythmruler.js:1162 -#: js/rhythmruler.js:1164 -#: js/rhythmruler.js:1272 -#: js/rhythmruler.js:1274 -#: js/block.js:1050 -#: js/block.js:5120 -#: js/block.js:5129 -#: js/block.js:5140 -#: js/activity.js:2267 -#: js/palette.js:766 -#: js/palette.js:775 -#: js/palette.js:784 -#: js/palette.js:793 -#: js/palette.js:2094 -#: js/palette.js:2105 -#: js/palette.js:2116 -#: js/palette.js:2127 -#: js/palette.js:2137 -#: js/turtledefs.js:25 -#: js/basicblocks.js:1514 -#: js/basicblocks.js:1534 -#: js/basicblocks.js:1548 -#: js/basicblocks.js:3942 -#: js/basicblocks.js:3982 -#: js/basicblocks.js:3992 -#: js/basicblocks.js:4040 -#: js/basicblocks.js:4053 -#: js/basicblocks.js:4100 -#: js/basicblocks.js:4155 -#: js/basicblocks.js:4160 -#: js/basicblocks.js:4165 -#: js/rubrics.js:478 -#: js/macros.js:45 -#: js/blocks.js:809 -#: js/blocks.js:2430 -#: js/blocks.js:2431 -#: js/blocks.js:2623 -#: js/blocks.js:2867 -#: js/blocks.js:3023 -#: js/blocks.js:3931 -#: js/blocks.js:4784 -#: js/rhythmruler.js:1162 -#: js/rhythmruler.js:1164 -#: js/rhythmruler.js:1272 -#: js/rhythmruler.js:1274 -#: js/block.js:1050 -#: js/block.js:5120 -#: js/block.js:5129 -#: js/block.js:5140 -#: js/activity.js:2267 -#: js/palette.js:766 -#: js/palette.js:775 -#: js/palette.js:784 -#: js/palette.js:793 -#: js/palette.js:2094 -#: js/palette.js:2105 -#: js/palette.js:2116 -#: js/palette.js:2127 -#: js/palette.js:2137 -#: js/turtledefs.js:25 -#: js/basicblocks.js:1519 -#: js/basicblocks.js:1539 -#: js/basicblocks.js:1553 -#: js/basicblocks.js:3959 -#: js/basicblocks.js:3999 -#: js/basicblocks.js:4009 -#: js/basicblocks.js:4057 -#: js/basicblocks.js:4070 -#: js/basicblocks.js:4117 -#: js/basicblocks.js:4172 -#: js/basicblocks.js:4177 -#: js/basicblocks.js:4182 -#: js/rubrics.js:478 -#: js/macros.js:45 -#: js/blocks.js:809 -#: js/blocks.js:2430 -#: js/blocks.js:2431 -#: js/blocks.js:2623 -#: js/blocks.js:2867 -#: js/blocks.js:3023 -#: js/blocks.js:3931 -#: js/blocks.js:4784 -#: js/rhythmruler.js:1162 -#: js/rhythmruler.js:1164 -#: js/rhythmruler.js:1272 -#: js/rhythmruler.js:1274 -#: js/block.js:1050 -#: js/block.js:5120 -#: js/block.js:5129 -#: js/block.js:5140 -#: js/activity.js:2267 -#: js/palette.js:766 -#: js/palette.js:775 -#: js/palette.js:784 -#: js/palette.js:793 -#: js/palette.js:2094 -#: js/palette.js:2105 -#: js/palette.js:2116 -#: js/palette.js:2127 -#: js/palette.js:2137 -#: js/turtledefs.js:25 -#: js/basicblocks.js:1519 -#: js/basicblocks.js:1539 -#: js/basicblocks.js:1553 -#: js/basicblocks.js:3959 -#: js/basicblocks.js:3999 -#: js/basicblocks.js:4009 -#: js/basicblocks.js:4057 -#: js/basicblocks.js:4070 -#: js/basicblocks.js:4117 -#: js/basicblocks.js:4172 -#: js/basicblocks.js:4177 -#: js/basicblocks.js:4182 -#: js/rubrics.js:478 -#: js/macros.js:45 -#: js/blocks.js:808 -#: js/blocks.js:2429 -#: js/blocks.js:2430 -#: js/blocks.js:2622 -#: js/blocks.js:2866 -#: js/blocks.js:3022 -#: js/blocks.js:3930 -#: js/blocks.js:4783 -#: js/rhythmruler.js:1162 -#: js/rhythmruler.js:1164 -#: js/rhythmruler.js:1272 -#: js/rhythmruler.js:1274 -#: js/block.js:1050 -#: js/block.js:5120 -#: js/block.js:5129 -#: js/block.js:5140 -#: js/activity.js:2267 -#: js/palette.js:766 -#: js/palette.js:775 -#: js/palette.js:784 -#: js/palette.js:793 -#: js/palette.js:2094 -#: js/palette.js:2105 -#: js/palette.js:2116 -#: js/palette.js:2127 -#: js/palette.js:2137 -#: js/turtledefs.js:25 -#: js/basicblocks.js:1519 -#: js/basicblocks.js:1539 -#: js/basicblocks.js:1553 -#: js/basicblocks.js:3959 -#: js/basicblocks.js:3999 -#: js/basicblocks.js:4009 -#: js/basicblocks.js:4057 -#: js/basicblocks.js:4070 -#: js/basicblocks.js:4117 -#: js/basicblocks.js:4172 -#: js/basicblocks.js:4177 -#: js/basicblocks.js:4182 -#: js/rubrics.js:478 -#: js/macros.js:45 -#: js/blocks.js:808 -#: js/blocks.js:2429 -#: js/blocks.js:2430 -#: js/blocks.js:2622 -#: js/blocks.js:2866 -#: js/blocks.js:3022 -#: js/blocks.js:3930 -#: js/blocks.js:4783 -#: js/rhythmruler.js:1162 -#: js/rhythmruler.js:1164 -#: js/rhythmruler.js:1272 -#: js/rhythmruler.js:1274 -#: js/block.js:1050 -#: js/block.js:5120 -#: js/block.js:5129 -#: js/block.js:5140 -#: js/activity.js:2267 -#: js/palette.js:766 -#: js/palette.js:775 -#: js/palette.js:784 -#: js/palette.js:793 -#: js/palette.js:2094 -#: js/palette.js:2105 -#: js/palette.js:2116 -#: js/palette.js:2127 -#: js/palette.js:2137 -#: js/turtledefs.js:25 -#: js/basicblocks.js:1526 -#: js/basicblocks.js:1546 -#: js/basicblocks.js:1560 -#: js/basicblocks.js:3966 -#: js/basicblocks.js:4006 -#: js/basicblocks.js:4016 -#: js/basicblocks.js:4064 -#: js/basicblocks.js:4077 -#: js/basicblocks.js:4124 -#: js/basicblocks.js:4179 -#: js/basicblocks.js:4184 -#: js/basicblocks.js:4189 -#: js/rubrics.js:478 -#: js/macros.js:45 -#: js/blocks.js:808 -#: js/blocks.js:2429 -#: js/blocks.js:2430 -#: js/blocks.js:2622 -#: js/blocks.js:2866 -#: js/blocks.js:3022 -#: js/blocks.js:3930 -#: js/blocks.js:4783 -#: js/rhythmruler.js:1162 -#: js/rhythmruler.js:1164 -#: js/rhythmruler.js:1272 -#: js/rhythmruler.js:1274 -#: js/block.js:1162 -#: js/block.js:5410 -#: js/block.js:5419 -#: js/block.js:5430 -#: js/activity.js:2268 -#: js/palette.js:770 -#: js/palette.js:779 -#: js/palette.js:788 -#: js/palette.js:797 -#: js/palette.js:2098 -#: js/palette.js:2109 -#: js/palette.js:2120 -#: js/palette.js:2131 -#: js/palette.js:2141 -#: js/turtledefs.js:31 -#: js/basicblocks.js:1528 -#: js/basicblocks.js:1548 -#: js/basicblocks.js:1562 -#: js/basicblocks.js:3968 -#: js/basicblocks.js:4008 -#: js/basicblocks.js:4018 -#: js/basicblocks.js:4066 -#: js/basicblocks.js:4079 -#: js/basicblocks.js:4126 -#: js/basicblocks.js:4181 -#: js/basicblocks.js:4186 -#: js/basicblocks.js:4191 -#: js/rubrics.js:478 -#: js/macros.js:45 -#: js/blocks.js:1023 -#: js/blocks.js:2839 -#: js/blocks.js:2840 -#: js/blocks.js:3054 -#: js/blocks.js:3356 -#: js/blocks.js:3549 -#: js/blocks.js:4588 -#: js/blocks.js:5446 -#: js/musickeyboard.js:369 -#: js/pitchtimematrix.js:1612 -#: js/rhythmruler.js:1171 -#: js/rhythmruler.js:1173 -#: js/rhythmruler.js:1281 -#: js/rhythmruler.js:1283 -#: js/block.js:1162 -#: js/block.js:5410 -#: js/block.js:5419 -#: js/block.js:5430 -#: js/activity.js:2268 -#: js/palette.js:770 -#: js/palette.js:779 -#: js/palette.js:788 -#: js/palette.js:797 -#: js/palette.js:2098 -#: js/palette.js:2109 -#: js/palette.js:2120 -#: js/palette.js:2131 -#: js/palette.js:2141 -#: js/turtledefs.js:35 -#: js/basicblocks.js:1528 -#: js/basicblocks.js:1548 -#: js/basicblocks.js:1562 -#: js/basicblocks.js:3968 -#: js/basicblocks.js:4008 -#: js/basicblocks.js:4018 -#: js/basicblocks.js:4066 -#: js/basicblocks.js:4079 -#: js/basicblocks.js:4126 -#: js/basicblocks.js:4181 -#: js/basicblocks.js:4186 -#: js/basicblocks.js:4191 -#: js/rubrics.js:478 -#: js/macros.js:45 -#: js/blocks.js:1023 -#: js/blocks.js:2839 -#: js/blocks.js:2840 -#: js/blocks.js:3054 -#: js/blocks.js:3356 -#: js/blocks.js:3549 -#: js/blocks.js:4588 -#: js/blocks.js:5446 -#: js/musickeyboard.js:369 -#: js/pitchtimematrix.js:1612 -#: js/rhythmruler.js:1171 -#: js/rhythmruler.js:1173 -#: js/rhythmruler.js:1281 -#: js/rhythmruler.js:1283 -#: js/block.js:1162 -#: js/block.js:5410 -#: js/block.js:5419 -#: js/block.js:5430 -#: js/activity.js:2133 -#: js/palette.js:770 -#: js/palette.js:779 -#: js/palette.js:788 -#: js/palette.js:797 -#: js/palette.js:2098 -#: js/palette.js:2109 -#: js/palette.js:2120 -#: js/palette.js:2131 -#: js/palette.js:2141 -#: js/turtledefs.js:35 -#: js/basicblocks.js:1528 -#: js/basicblocks.js:1548 -#: js/basicblocks.js:1562 -#: js/basicblocks.js:3968 -#: js/basicblocks.js:4008 -#: js/basicblocks.js:4018 -#: js/basicblocks.js:4066 -#: js/basicblocks.js:4079 -#: js/basicblocks.js:4126 -#: js/basicblocks.js:4181 -#: js/basicblocks.js:4186 -#: js/basicblocks.js:4191 -#: js/rubrics.js:478 -#: js/macros.js:45 -#: js/blocks.js:1023 -#: js/blocks.js:2839 -#: js/blocks.js:2840 -#: js/blocks.js:3054 -#: js/blocks.js:3356 -#: js/blocks.js:3549 -#: js/blocks.js:4588 -#: js/blocks.js:5446 -#: js/musickeyboard.js:369 -#: js/pitchtimematrix.js:1612 -#: js/rhythmruler.js:1171 -#: js/rhythmruler.js:1173 -#: js/rhythmruler.js:1281 -#: js/rhythmruler.js:1283 -#: js/block.js:1162 -#: js/block.js:5410 -#: js/block.js:5419 -#: js/block.js:5430 -#: js/activity.js:2133 -#: js/palette.js:770 -#: js/palette.js:779 -#: js/palette.js:788 -#: js/palette.js:797 -#: js/palette.js:2098 -#: js/palette.js:2109 -#: js/palette.js:2120 -#: js/palette.js:2131 -#: js/palette.js:2141 -#: js/turtledefs.js:35 -#: js/basicblocks.js:1528 -#: js/basicblocks.js:1548 -#: js/basicblocks.js:1562 -#: js/basicblocks.js:3968 -#: js/basicblocks.js:4008 -#: js/basicblocks.js:4018 -#: js/basicblocks.js:4066 -#: js/basicblocks.js:4079 -#: js/basicblocks.js:4126 -#: js/basicblocks.js:4181 -#: js/basicblocks.js:4186 -#: js/basicblocks.js:4191 -#: js/rubrics.js:478 -#: js/macros.js:45 -#: js/blocks.js:1023 -#: js/blocks.js:2839 -#: js/blocks.js:2840 -#: js/blocks.js:3054 -#: js/blocks.js:3356 -#: js/blocks.js:3549 -#: js/blocks.js:4588 -#: js/blocks.js:5446 -#: js/musickeyboard.js:369 -#: js/pitchtimematrix.js:1612 -#: js/rhythmruler.js:1171 -#: js/rhythmruler.js:1173 -#: js/rhythmruler.js:1281 -#: js/rhythmruler.js:1283 -#: js/block.js:1162 -#: js/block.js:5410 -#: js/block.js:5419 -#: js/block.js:5430 -#: js/activity.js:2127 -#: js/palette.js:770 -#: js/palette.js:779 -#: js/palette.js:788 -#: js/palette.js:797 -#: js/palette.js:2098 -#: js/palette.js:2109 -#: js/palette.js:2120 -#: js/palette.js:2131 -#: js/palette.js:2141 -#: js/turtledefs.js:35 -#: js/basicblocks.js:1528 -#: js/basicblocks.js:1548 -#: js/basicblocks.js:1562 -#: js/basicblocks.js:3968 -#: js/basicblocks.js:4008 -#: js/basicblocks.js:4018 -#: js/basicblocks.js:4066 -#: js/basicblocks.js:4079 -#: js/basicblocks.js:4127 -#: js/basicblocks.js:4182 -#: js/basicblocks.js:4187 -#: js/basicblocks.js:4192 -#: js/rubrics.js:478 -#: js/macros.js:45 -#: js/blocks.js:1023 -#: js/blocks.js:2849 -#: js/blocks.js:2850 -#: js/blocks.js:3064 -#: js/blocks.js:3366 -#: js/blocks.js:3559 -#: js/blocks.js:4598 -#: js/blocks.js:5455 -#: js/musickeyboard.js:369 -#: js/pitchtimematrix.js:1612 -#: js/rhythmruler.js:1171 -#: js/rhythmruler.js:1173 -#: js/rhythmruler.js:1281 -#: js/rhythmruler.js:1283 -#: js/block.js:1162 -#: js/block.js:5410 -#: js/block.js:5419 -#: js/block.js:5430 -#: js/activity.js:2127 -#: js/palette.js:770 -#: js/palette.js:779 -#: js/palette.js:788 -#: js/palette.js:797 -#: js/palette.js:2098 -#: js/palette.js:2109 -#: js/palette.js:2120 -#: js/palette.js:2131 -#: js/palette.js:2141 -#: js/turtledefs.js:35 -#: js/basicblocks.js:1527 -#: js/basicblocks.js:1547 -#: js/basicblocks.js:1561 -#: js/basicblocks.js:3967 -#: js/basicblocks.js:4007 -#: js/basicblocks.js:4017 -#: js/basicblocks.js:4065 -#: js/basicblocks.js:4078 -#: js/basicblocks.js:4126 -#: js/basicblocks.js:4181 -#: js/basicblocks.js:4186 -#: js/basicblocks.js:4191 -#: js/rubrics.js:478 -#: js/macros.js:45 -#: js/blocks.js:1023 -#: js/blocks.js:2849 -#: js/blocks.js:2850 -#: js/blocks.js:3064 -#: js/blocks.js:3366 -#: js/blocks.js:3559 -#: js/blocks.js:4598 -#: js/blocks.js:5455 -#: js/musickeyboard.js:369 -#: js/pitchtimematrix.js:1612 -#: js/rhythmruler.js:1171 -#: js/rhythmruler.js:1173 -#: js/rhythmruler.js:1281 -#: js/rhythmruler.js:1283 -#: js/block.js:1162 -#: js/block.js:5410 -#: js/block.js:5419 -#: js/block.js:5430 -#: js/activity.js:2127 -#: js/palette.js:770 -#: js/palette.js:779 -#: js/palette.js:788 -#: js/palette.js:797 -#: js/palette.js:2098 -#: js/palette.js:2109 -#: js/palette.js:2120 -#: js/palette.js:2131 -#: js/palette.js:2141 -#: js/turtledefs.js:35 -#: js/basicblocks.js:1527 -#: js/basicblocks.js:1547 -#: js/basicblocks.js:1561 -#: js/basicblocks.js:3967 -#: js/basicblocks.js:4007 -#: js/basicblocks.js:4017 -#: js/basicblocks.js:4065 -#: js/basicblocks.js:4078 -#: js/basicblocks.js:4126 -#: js/basicblocks.js:4181 -#: js/basicblocks.js:4186 -#: js/basicblocks.js:4191 -#: js/rubrics.js:478 -#: js/macros.js:45 -#: js/blocks.js:1023 -#: js/blocks.js:2849 -#: js/blocks.js:2850 -#: js/blocks.js:3064 -#: js/blocks.js:3366 -#: js/blocks.js:3559 -#: js/blocks.js:4598 -#: js/blocks.js:5455 -#: js/musickeyboard.js:369 -#: js/pitchtimematrix.js:1612 -#: js/rhythmruler.js:1171 -#: js/rhythmruler.js:1173 -#: js/rhythmruler.js:1281 -#: js/rhythmruler.js:1283 -#: js/block.js:1162 -#: js/block.js:5410 -#: js/block.js:5419 -#: js/block.js:5430 -#: js/activity.js:2127 -#: js/palette.js:770 -#: js/palette.js:779 -#: js/palette.js:788 -#: js/palette.js:797 -#: js/palette.js:2098 -#: js/palette.js:2109 -#: js/palette.js:2120 -#: js/palette.js:2131 -#: js/palette.js:2141 -#: js/turtledefs.js:35 -#: js/basicblocks.js:1527 -#: js/basicblocks.js:1547 -#: js/basicblocks.js:1561 -#: js/basicblocks.js:3967 -#: js/basicblocks.js:4007 -#: js/basicblocks.js:4017 -#: js/basicblocks.js:4065 -#: js/basicblocks.js:4078 -#: js/basicblocks.js:4126 -#: js/basicblocks.js:4181 -#: js/basicblocks.js:4186 -#: js/basicblocks.js:4191 -#: js/rubrics.js:478 -#: js/macros.js:45 -#: js/blocks.js:1023 -#: js/blocks.js:2849 -#: js/blocks.js:2850 -#: js/blocks.js:3064 -#: js/blocks.js:3366 -#: js/blocks.js:3559 -#: js/blocks.js:4598 -#: js/blocks.js:5455 -#: js/musickeyboard.js:369 -#: js/pitchtimematrix.js:1612 -#: js/rhythmruler.js:1171 -#: js/rhythmruler.js:1173 -#: js/rhythmruler.js:1281 -#: js/rhythmruler.js:1283 -#: js/block.js:1162 -#: js/block.js:5410 -#: js/block.js:5419 -#: js/block.js:5430 -#: js/activity.js:2127 -#: js/palette.js:770 -#: js/palette.js:779 -#: js/palette.js:788 -#: js/palette.js:797 -#: js/palette.js:2098 -#: js/palette.js:2109 -#: js/palette.js:2120 -#: js/palette.js:2131 -#: js/palette.js:2141 -#: js/turtledefs.js:35 -#: js/basicblocks.js:1531 -#: js/basicblocks.js:1551 -#: js/basicblocks.js:1565 -#: js/basicblocks.js:3971 -#: js/basicblocks.js:4011 -#: js/basicblocks.js:4021 -#: js/basicblocks.js:4069 -#: js/basicblocks.js:4082 -#: js/basicblocks.js:4130 -#: js/basicblocks.js:4185 -#: js/basicblocks.js:4190 -#: js/basicblocks.js:4195 -#: js/rubrics.js:478 -#: js/macros.js:45 -#: js/blocks.js:1023 -#: js/blocks.js:2849 -#: js/blocks.js:2850 -#: js/blocks.js:3064 -#: js/blocks.js:3366 -#: js/blocks.js:3559 -#: js/blocks.js:4598 -#: js/blocks.js:5455 -#: js/musickeyboard.js:369 -#: js/pitchtimematrix.js:1612 -#: js/rhythmruler.js:1171 -#: js/rhythmruler.js:1173 -#: js/rhythmruler.js:1281 -#: js/rhythmruler.js:1283 -#: js/block.js:1162 -#: js/block.js:5410 -#: js/block.js:5419 -#: js/block.js:5430 -#: js/activity.js:2127 -#: js/palette.js:770 -#: js/palette.js:779 -#: js/palette.js:788 -#: js/palette.js:797 -#: js/palette.js:2098 -#: js/palette.js:2109 -#: js/palette.js:2120 -#: js/palette.js:2131 -#: js/palette.js:2141 -#: js/turtledefs.js:35 -#: js/basicblocks.js:1531 -#: js/basicblocks.js:1551 -#: js/basicblocks.js:1565 -#: js/basicblocks.js:3971 -#: js/basicblocks.js:4011 -#: js/basicblocks.js:4021 -#: js/basicblocks.js:4069 -#: js/basicblocks.js:4082 -#: js/basicblocks.js:4130 -#: js/basicblocks.js:4185 -#: js/basicblocks.js:4190 -#: js/basicblocks.js:4195 -#: js/rubrics.js:478 -#: js/macros.js:45 -#: js/blocks.js:1023 -#: js/blocks.js:2849 -#: js/blocks.js:2850 -#: js/blocks.js:3064 -#: js/blocks.js:3366 -#: js/blocks.js:3559 -#: js/blocks.js:4598 -#: js/blocks.js:5455 -#: js/musickeyboard.js:369 -#: js/pitchtimematrix.js:1612 -#: js/rhythmruler.js:1171 -#: js/rhythmruler.js:1173 -#: js/rhythmruler.js:1281 -#: js/rhythmruler.js:1283 -#: js/block.js:1162 -#: js/block.js:5410 -#: js/block.js:5419 -#: js/block.js:5430 -#: js/activity.js:2127 -#: js/palette.js:770 -#: js/palette.js:779 -#: js/palette.js:788 -#: js/palette.js:797 -#: js/palette.js:2098 -#: js/palette.js:2109 -#: js/palette.js:2120 -#: js/palette.js:2131 -#: js/palette.js:2141 -#: js/turtledefs.js:35 -#: js/basicblocks.js:1531 -#: js/basicblocks.js:1551 -#: js/basicblocks.js:1565 -#: js/basicblocks.js:3971 -#: js/basicblocks.js:4011 -#: js/basicblocks.js:4021 -#: js/basicblocks.js:4069 -#: js/basicblocks.js:4082 -#: js/basicblocks.js:4130 -#: js/basicblocks.js:4185 -#: js/basicblocks.js:4190 -#: js/basicblocks.js:4195 -#: js/rubrics.js:478 -#: js/macros.js:45 -#: js/blocks.js:1023 -#: js/blocks.js:2849 -#: js/blocks.js:2850 -#: js/blocks.js:3064 -#: js/blocks.js:3366 -#: js/blocks.js:3559 -#: js/blocks.js:4598 -#: js/blocks.js:5455 -#: js/musickeyboard.js:369 -#: js/pitchtimematrix.js:1612 -#: js/rhythmruler.js:1171 -#: js/rhythmruler.js:1173 -#: js/rhythmruler.js:1281 -#: js/rhythmruler.js:1283 -#: js/block.js:1162 -#: js/block.js:5413 -#: js/block.js:5422 -#: js/block.js:5433 -#: js/activity.js:2127 -#: js/palette.js:770 -#: js/palette.js:779 -#: js/palette.js:788 -#: js/palette.js:797 -#: js/palette.js:2098 -#: js/palette.js:2109 -#: js/palette.js:2120 -#: js/palette.js:2131 -#: js/palette.js:2141 -#: js/turtledefs.js:35 -#: js/basicblocks.js:1537 -#: js/basicblocks.js:1557 -#: js/basicblocks.js:1571 -#: js/basicblocks.js:3977 -#: js/basicblocks.js:4017 -#: js/basicblocks.js:4027 -#: js/basicblocks.js:4075 -#: js/basicblocks.js:4088 -#: js/basicblocks.js:4136 -#: js/basicblocks.js:4191 -#: js/basicblocks.js:4196 -#: js/basicblocks.js:4201 -#: js/rubrics.js:478 -#: js/macros.js:45 -#: js/blocks.js:1023 -#: js/blocks.js:2849 -#: js/blocks.js:2850 -#: js/blocks.js:3064 -#: js/blocks.js:3366 -#: js/blocks.js:3559 -#: js/blocks.js:4598 -#: js/blocks.js:5455 -#: js/musickeyboard.js:369 -#: js/pitchtimematrix.js:1612 -#: js/rhythmruler.js:1171 -#: js/rhythmruler.js:1173 -#: js/rhythmruler.js:1281 -#: js/rhythmruler.js:1283 -#: js/block.js:1162 -#: js/block.js:5430 -#: js/block.js:5439 -#: js/block.js:5450 -#: js/activity.js:2134 -#: js/palette.js:810 -#: js/palette.js:819 -#: js/palette.js:828 -#: js/palette.js:837 -#: js/palette.js:2142 -#: js/palette.js:2153 -#: js/palette.js:2164 -#: js/palette.js:2175 -#: js/palette.js:2185 -#: js/turtledefs.js:35 -#: js/basicblocks.js:1542 -#: js/basicblocks.js:1562 -#: js/basicblocks.js:1576 -#: js/basicblocks.js:3982 -#: js/basicblocks.js:4022 -#: js/basicblocks.js:4032 -#: js/basicblocks.js:4080 -#: js/basicblocks.js:4093 -#: js/basicblocks.js:4141 -#: js/basicblocks.js:4196 -#: js/basicblocks.js:4201 -#: js/basicblocks.js:4206 -#: js/rubrics.js:478 -#: js/macros.js:45 -#: js/blocks.js:1023 -#: js/blocks.js:2849 -#: js/blocks.js:2850 -#: js/blocks.js:3064 -#: js/blocks.js:3366 -#: js/blocks.js:3559 -#: js/blocks.js:4600 -#: js/blocks.js:5457 -#: js/musickeyboard.js:369 -#: js/pitchtimematrix.js:1612 -#: js/rhythmruler.js:1176 -#: js/rhythmruler.js:1178 -#: js/rhythmruler.js:1286 -#: js/rhythmruler.js:1288 -#: js/block.js:1162 -#: js/block.js:5430 -#: js/block.js:5439 -#: js/block.js:5450 -#: js/activity.js:2134 -#: js/palette.js:810 -#: js/palette.js:819 -#: js/palette.js:828 -#: js/palette.js:837 -#: js/palette.js:2142 -#: js/palette.js:2153 -#: js/palette.js:2164 -#: js/palette.js:2175 -#: js/palette.js:2185 -#: js/turtledefs.js:35 -#: js/basicblocks.js:1542 -#: js/basicblocks.js:1562 -#: js/basicblocks.js:1576 -#: js/basicblocks.js:3982 -#: js/basicblocks.js:4022 -#: js/basicblocks.js:4032 -#: js/basicblocks.js:4080 -#: js/basicblocks.js:4093 -#: js/basicblocks.js:4141 -#: js/basicblocks.js:4196 -#: js/basicblocks.js:4201 -#: js/basicblocks.js:4206 -#: js/rubrics.js:478 -#: js/macros.js:45 -#: js/blocks.js:1023 -#: js/blocks.js:2849 -#: js/blocks.js:2850 -#: js/blocks.js:3064 -#: js/blocks.js:3366 -#: js/blocks.js:3559 -#: js/blocks.js:4600 -#: js/blocks.js:5457 -#: js/musickeyboard.js:369 -#: js/pitchtimematrix.js:1612 -#: js/rhythmruler.js:1176 -#: js/rhythmruler.js:1178 -#: js/rhythmruler.js:1286 -#: js/rhythmruler.js:1288 -#: js/block.js:1162 -#: js/block.js:5430 -#: js/block.js:5439 -#: js/block.js:5450 -#: js/activity.js:2134 -#: js/palette.js:810 -#: js/palette.js:819 -#: js/palette.js:828 -#: js/palette.js:837 -#: js/palette.js:2142 -#: js/palette.js:2153 -#: js/palette.js:2164 -#: js/palette.js:2175 -#: js/palette.js:2185 -#: js/turtledefs.js:35 -#: js/basicblocks.js:1542 -#: js/basicblocks.js:1562 -#: js/basicblocks.js:1576 -#: js/basicblocks.js:3982 -#: js/basicblocks.js:4022 -#: js/basicblocks.js:4032 -#: js/basicblocks.js:4080 -#: js/basicblocks.js:4093 -#: js/basicblocks.js:4141 -#: js/basicblocks.js:4196 -#: js/basicblocks.js:4201 -#: js/basicblocks.js:4206 -#: js/rubrics.js:478 -#: js/macros.js:45 -#: js/blocks.js:1023 -#: js/blocks.js:2849 -#: js/blocks.js:2850 -#: js/blocks.js:3064 -#: js/blocks.js:3366 -#: js/blocks.js:3559 -#: js/blocks.js:4600 -#: js/blocks.js:5457 -#: js/musickeyboard.js:369 -#: js/pitchtimematrix.js:1612 -#: js/rhythmruler.js:1176 -#: js/rhythmruler.js:1178 -#: js/rhythmruler.js:1286 -#: js/rhythmruler.js:1288 -#: js/block.js:1162 -#: js/block.js:5445 -#: js/block.js:5454 -#: js/block.js:5465 -#: js/activity.js:2137 -#: js/palette.js:810 -#: js/palette.js:819 -#: js/palette.js:828 -#: js/palette.js:837 -#: js/palette.js:2142 -#: js/palette.js:2153 -#: js/palette.js:2164 -#: js/palette.js:2175 -#: js/palette.js:2185 -#: js/turtledefs.js:35 -#: js/basicblocks.js:1553 -#: js/basicblocks.js:1573 -#: js/basicblocks.js:1587 -#: js/basicblocks.js:3993 -#: js/basicblocks.js:4033 -#: js/basicblocks.js:4043 -#: js/basicblocks.js:4091 -#: js/basicblocks.js:4104 -#: js/basicblocks.js:4152 -#: js/basicblocks.js:4207 -#: js/basicblocks.js:4212 -#: js/basicblocks.js:4217 -#: js/rubrics.js:478 -#: js/macros.js:45 -#: js/blocks.js:1023 -#: js/blocks.js:2849 -#: js/blocks.js:2850 -#: js/blocks.js:3064 -#: js/blocks.js:3366 -#: js/blocks.js:3559 -#: js/blocks.js:4600 -#: js/blocks.js:5457 -#: js/musickeyboard.js:370 -#: js/pitchtimematrix.js:1642 -#: js/rhythmruler.js:1176 -#: js/rhythmruler.js:1178 -#: js/rhythmruler.js:1286 -#: js/rhythmruler.js:1288 -#: js/block.js:1165 -#: js/block.js:5575 -#: js/block.js:5584 -#: js/block.js:5595 -#: js/activity.js:2240 -#: js/palette.js:812 -#: js/palette.js:821 -#: js/palette.js:830 -#: js/palette.js:839 -#: js/palette.js:2144 -#: js/palette.js:2155 -#: js/palette.js:2166 -#: js/palette.js:2177 -#: js/palette.js:2187 -#: js/turtledefs.js:35 -#: js/basicblocks.js:1559 -#: js/basicblocks.js:1579 -#: js/basicblocks.js:1593 -#: js/basicblocks.js:4003 -#: js/basicblocks.js:4043 -#: js/basicblocks.js:4053 -#: js/basicblocks.js:4101 -#: js/basicblocks.js:4114 -#: js/basicblocks.js:4162 -#: js/basicblocks.js:4217 -#: js/basicblocks.js:4222 -#: js/basicblocks.js:4227 -#: js/rubrics.js:478 -#: js/macros.js:45 -#: js/macros.js:46 -#: js/blocks.js:1025 -#: js/blocks.js:2860 -#: js/blocks.js:2861 -#: js/blocks.js:3075 -#: js/blocks.js:3377 -#: js/blocks.js:3570 -#: js/blocks.js:4612 -#: js/blocks.js:5477 -#: js/musickeyboard.js:375 -#: js/pitchtimematrix.js:1716 -#: js/rhythmruler.js:1176 -#: js/rhythmruler.js:1178 -#: js/rhythmruler.js:1286 -#: js/rhythmruler.js:1288 -#: js/block.js:1186 -#: js/block.js:5751 -#: js/block.js:5760 -#: js/block.js:5771 -#: js/activity.js:2363 -#: js/palette.js:816 -#: js/palette.js:825 -#: js/palette.js:834 -#: js/palette.js:843 -#: js/palette.js:2148 -#: js/palette.js:2159 -#: js/palette.js:2170 -#: js/palette.js:2181 -#: js/palette.js:2190 -#: js/turtledefs.js:35 -#: js/basicblocks.js:1572 -#: js/basicblocks.js:1592 -#: js/basicblocks.js:1606 -#: js/basicblocks.js:4069 -#: js/basicblocks.js:4079 -#: js/basicblocks.js:4127 -#: js/basicblocks.js:4140 -#: js/basicblocks.js:4184 -#: js/basicblocks.js:4207 -#: js/basicblocks.js:4262 -#: js/basicblocks.js:4267 -#: js/basicblocks.js:4272 -#: js/rubrics.js:478 -#: js/macros.js:47 -#: js/macros.js:48 -#: js/macros.js:66 -#: js/macros.js:66 -#: js/macros.js:68 -#: js/macros.js:141 -#: js/blocks.js:1034 -#: js/blocks.js:2922 -#: js/blocks.js:2923 -#: js/blocks.js:3137 -#: js/blocks.js:3442 -#: js/blocks.js:3636 -#: js/blocks.js:4680 -#: js/blocks.js:5545 -#: js/musickeyboard.js:1823 -#: js/pitchtimematrix.js:3385 -#: js/rhythmruler.js:1229 -#: js/rhythmruler.js:1231 -#: js/rhythmruler.js:1340 -#: js/rhythmruler.js:1342 -#: js/RhythmBlockPaletteBlocks.js:14 -#: js/RhythmBlockPaletteBlocks.js:177 -#: js/RhythmBlockPaletteBlocks.js:14 -#: js/RhythmBlockPaletteBlocks.js:177 -#: js/RhythmBlockPaletteBlocks.js:14 -#: js/RhythmBlockPaletteBlocks.js:177 -#: js/RhythmBlockPaletteBlocks.js:14 -#: js/RhythmBlockPaletteBlocks.js:177 -#: js/RhythmBlockPaletteBlocks.js:14 -#: js/RhythmBlockPaletteBlocks.js:170 -#: js/block.js:1436 -#: js/block.js:7910 -#: js/block.js:7931 -#: js/block.js:7948 -#: js/activity.js:2693 -#: js/palette.js:932 -#: js/palette.js:941 -#: js/palette.js:950 -#: js/palette.js:959 -#: js/palette.js:2511 -#: js/palette.js:2522 -#: js/palette.js:2533 -#: js/palette.js:2544 -#: js/palette.js:2563 -#: js/turtledefs.js:76 -#: js/rubrics.js:497 -#: js/macros.js:153 -#: js/macros.js:249 -#: js/macros.js:250 -#: js/macros.js:259 -#: js/macros.js:801 -#: js/blocks.js:1120 -#: js/blocks.js:3549 -#: js/blocks.js:3550 -#: js/blocks.js:3786 -#: js/blocks.js:4168 -#: js/blocks.js:4363 -#: js/blocks.js:5526 -#: js/blocks.js:6776 -#: js/ActionBlocks.js:99 -#: js/ActionBlocks.js:147 -#: js/ActionBlocks.js:350 -#: js/ActionBlocks.js:415 -#: js/ActionBlocks.js:569 -#: js/ActionBlocks.js:629 -#: js/ActionBlocks.js:765 -#: js/ActionBlocks.js:768 -#: js/ActionBlocks.js:773 -#: js/ActionBlocks.js:805 -#: js/MeterBlocks.js:412 -#: js/MeterBlocks.js:479 -#: js/MeterBlocks.js:568 -#: js/MeterBlocks.js:669 -#: js/musickeyboard.js:2360 -#: js/pitchtimematrix.js:4708 -#: js/rhythmruler.js:1602 -#: js/rhythmruler.js:1610 -#: js/rhythmruler.js:1911 -#: js/rhythmruler.js:1919 -#: js/block.js:1436 -#: js/block.js:8089 -#: js/block.js:8110 -#: js/block.js:8127 -#: js/activity.js:2968 -#: js/palette.js:503 -#: js/palette.js:512 -#: js/palette.js:521 -#: js/palette.js:530 -#: js/palette.js:1122 -#: js/palette.js:1133 -#: js/palette.js:1144 -#: js/palette.js:1155 -#: js/palette.js:1174 -#: js/turtledefs.js:76 -#: js/rubrics.js:497 -#: js/macros.js:153 -#: js/macros.js:249 -#: js/macros.js:250 -#: js/macros.js:259 -#: js/macros.js:801 -#: js/blocks.js:1120 -#: js/blocks.js:3572 -#: js/blocks.js:3573 -#: js/blocks.js:3809 -#: js/blocks.js:4191 -#: js/blocks.js:4382 -#: js/blocks.js:5545 -#: js/blocks.js:6795 -#: js/ActionBlocks.js:99 -#: js/ActionBlocks.js:147 -#: js/ActionBlocks.js:343 -#: js/ActionBlocks.js:408 -#: js/ActionBlocks.js:562 -#: js/ActionBlocks.js:622 -#: js/ActionBlocks.js:749 -#: js/ActionBlocks.js:752 -#: js/ActionBlocks.js:757 -#: js/ActionBlocks.js:789 -#: js/MeterBlocks.js:390 -#: js/MeterBlocks.js:419 -#: js/MeterBlocks.js:455 -#: js/MeterBlocks.js:494 -#: js/musickeyboard.js:2421 -#: js/pitchtimematrix.js:4706 -#: js/rhythmruler.js:1602 -#: js/rhythmruler.js:1610 -#: js/rhythmruler.js:1911 -#: js/rhythmruler.js:1919 -#: js/block.js:1436 -#: js/block.js:8073 -#: js/block.js:8094 -#: js/block.js:8111 -#: js/activity.js:2984 -#: js/palette.js:503 -#: js/palette.js:512 -#: js/palette.js:521 -#: js/palette.js:530 -#: js/palette.js:1122 -#: js/palette.js:1133 -#: js/palette.js:1144 -#: js/palette.js:1155 -#: js/palette.js:1174 -#: js/turtledefs.js:78 -#: js/rubrics.js:501 -#: js/macros.js:153 -#: js/macros.js:249 -#: js/macros.js:250 -#: js/macros.js:259 -#: js/macros.js:801 -#: js/blocks.js:1112 -#: js/blocks.js:3545 -#: js/blocks.js:3546 -#: js/blocks.js:3779 -#: js/blocks.js:4160 -#: js/blocks.js:4346 -#: js/blocks.js:5496 -#: js/blocks.js:6721 -#: js/ActionBlocks.js:99 -#: js/ActionBlocks.js:147 -#: js/ActionBlocks.js:343 -#: js/ActionBlocks.js:408 -#: js/ActionBlocks.js:562 -#: js/ActionBlocks.js:622 -#: js/ActionBlocks.js:750 -#: js/ActionBlocks.js:753 -#: js/ActionBlocks.js:758 -#: js/ActionBlocks.js:790 -#: js/MeterBlocks.js:396 -#: js/MeterBlocks.js:425 -#: js/MeterBlocks.js:461 -#: js/MeterBlocks.js:500 -#: js/musickeyboard.js:2495 -#: js/pitchtimematrix.js:4718 -#: js/rhythmruler.js:1602 -#: js/rhythmruler.js:1610 -#: js/rhythmruler.js:1911 -#: js/rhythmruler.js:1919 -#: js/block.js:1436 -#: js/block.js:8073 -#: js/block.js:8094 -#: js/block.js:8111 -#: js/activity.js:2984 -#: js/palette.js:503 -#: js/palette.js:512 -#: js/palette.js:521 -#: js/palette.js:530 -#: js/palette.js:1122 -#: js/palette.js:1133 -#: js/palette.js:1144 -#: js/palette.js:1155 -#: js/palette.js:1174 -#: js/turtledefs.js:78 -#: js/rubrics.js:501 -#: js/macros.js:153 -#: js/macros.js:249 -#: js/macros.js:250 -#: js/macros.js:259 -#: js/macros.js:801 -#: js/blocks.js:1112 -#: js/blocks.js:3545 -#: js/blocks.js:3546 -#: js/blocks.js:3779 -#: js/blocks.js:4160 -#: js/blocks.js:4346 -#: js/blocks.js:5496 -#: js/blocks.js:6721 -#: js/ActionBlocks.js:99 -#: js/ActionBlocks.js:147 -#: js/ActionBlocks.js:343 -#: js/ActionBlocks.js:408 -#: js/ActionBlocks.js:562 -#: js/ActionBlocks.js:622 -#: js/ActionBlocks.js:750 -#: js/ActionBlocks.js:753 -#: js/ActionBlocks.js:758 -#: js/ActionBlocks.js:790 -#: js/MeterBlocks.js:396 -#: js/MeterBlocks.js:425 -#: js/MeterBlocks.js:461 -#: js/MeterBlocks.js:500 -#: js/musickeyboard.js:2495 -#: js/pitchtimematrix.js:4718 -#: js/rhythmruler.js:1602 -#: js/rhythmruler.js:1610 -#: js/rhythmruler.js:1911 -#: js/rhythmruler.js:1919 -#: js/block.js:1436 -#: js/block.js:8073 -#: js/block.js:8094 -#: js/block.js:8111 -#: js/activity.js:2984 -#: js/palette.js:506 -#: js/palette.js:515 -#: js/palette.js:524 -#: js/palette.js:533 -#: js/palette.js:1128 -#: js/palette.js:1139 -#: js/palette.js:1150 -#: js/palette.js:1161 -#: js/palette.js:1180 -#: js/turtledefs.js:78 -#: js/rubrics.js:501 -#: js/macros.js:153 -#: js/macros.js:249 -#: js/macros.js:250 -#: js/macros.js:259 -#: js/macros.js:801 -#: js/blocks.js:1112 -#: js/blocks.js:3545 -#: js/blocks.js:3546 -#: js/blocks.js:3779 -#: js/blocks.js:4160 -#: js/blocks.js:4346 -#: js/blocks.js:5496 -#: js/blocks.js:6721 -#: js/ActionBlocks.js:99 -#: js/ActionBlocks.js:147 -#: js/ActionBlocks.js:343 -#: js/ActionBlocks.js:408 -#: js/ActionBlocks.js:562 -#: js/ActionBlocks.js:622 -#: js/ActionBlocks.js:750 -#: js/ActionBlocks.js:753 -#: js/ActionBlocks.js:758 -#: js/ActionBlocks.js:790 -#: js/MeterBlocks.js:396 -#: js/MeterBlocks.js:425 -#: js/MeterBlocks.js:461 -#: js/MeterBlocks.js:500 -#: js/musickeyboard.js:2495 -#: js/pitchtimematrix.js:4718 -#: js/rhythmruler.js:1602 -#: js/rhythmruler.js:1610 -#: js/rhythmruler.js:1911 -#: js/rhythmruler.js:1919 -#: js/block.js:1414 -#: js/block.js:4018 -#: js/block.js:4036 -#: js/block.js:4047 -#: js/activity.js:2899 -#: js/palette.js:486 -#: js/palette.js:495 -#: js/palette.js:504 -#: js/palette.js:513 -#: js/palette.js:1089 -#: js/palette.js:1100 -#: js/palette.js:1111 -#: js/palette.js:1122 -#: js/palette.js:1141 -#: js/turtledefs.js:78 -#: js/rubrics.js:501 -#: js/macros.js:170 -#: js/macros.js:266 -#: js/macros.js:267 -#: js/macros.js:276 -#: js/macros.js:828 -#: js/blocks.js:1071 -#: js/blocks.js:3210 -#: js/blocks.js:3211 -#: js/blocks.js:3428 -#: js/blocks.js:3752 -#: js/blocks.js:3932 -#: js/blocks.js:4976 -#: js/blocks.js:5845 -#: js/ActionBlocks.js:99 -#: js/ActionBlocks.js:147 -#: js/ActionBlocks.js:343 -#: js/ActionBlocks.js:408 -#: js/ActionBlocks.js:562 -#: js/ActionBlocks.js:622 -#: js/ActionBlocks.js:750 -#: js/ActionBlocks.js:753 -#: js/ActionBlocks.js:758 -#: js/ActionBlocks.js:790 -#: js/MeterBlocks.js:396 -#: js/MeterBlocks.js:426 -#: js/MeterBlocks.js:462 -#: js/MeterBlocks.js:501 -#: js/musickeyboard.js:2495 -#: js/rhythmruler.js:1874 -#: js/rhythmruler.js:1881 -#: js/rhythmruler.js:2065 -#: js/rhythmruler.js:2072 -#: js/phrasemaker.js:4226 -#: js/block.js:1414 -#: js/block.js:4020 -#: js/block.js:4038 -#: js/block.js:4049 -#: js/activity.js:2899 -#: js/palette.js:486 -#: js/palette.js:495 -#: js/palette.js:504 -#: js/palette.js:513 -#: js/palette.js:1089 -#: js/palette.js:1100 -#: js/palette.js:1111 -#: js/palette.js:1122 -#: js/palette.js:1141 -#: js/turtledefs.js:78 -#: js/rubrics.js:501 -#: js/macros.js:170 -#: js/macros.js:266 -#: js/macros.js:267 -#: js/macros.js:276 -#: js/macros.js:828 -#: js/blocks.js:1071 -#: js/blocks.js:3210 -#: js/blocks.js:3211 -#: js/blocks.js:3428 -#: js/blocks.js:3752 -#: js/blocks.js:3932 -#: js/blocks.js:4976 -#: js/blocks.js:5845 -#: js/ActionBlocks.js:99 -#: js/ActionBlocks.js:147 -#: js/ActionBlocks.js:343 -#: js/ActionBlocks.js:408 -#: js/ActionBlocks.js:562 -#: js/ActionBlocks.js:622 -#: js/ActionBlocks.js:750 -#: js/ActionBlocks.js:753 -#: js/ActionBlocks.js:758 -#: js/ActionBlocks.js:790 -#: js/MeterBlocks.js:396 -#: js/MeterBlocks.js:426 -#: js/MeterBlocks.js:462 -#: js/MeterBlocks.js:501 -#: js/musickeyboard.js:2495 -#: js/rhythmruler.js:1874 -#: js/rhythmruler.js:1881 -#: js/rhythmruler.js:2065 -#: js/rhythmruler.js:2072 -#: js/phrasemaker.js:4226 -#: js/block.js:1439 -#: js/block.js:4063 -#: js/block.js:4081 -#: js/block.js:4092 -#: js/palette.js:505 -#: js/palette.js:514 -#: js/palette.js:523 -#: js/palette.js:532 -#: js/palette.js:1125 -#: js/palette.js:1136 -#: js/palette.js:1147 -#: js/palette.js:1158 -#: js/palette.js:1177 -#: js/turtledefs.js:101 -#: js/rubrics.js:522 -#: js/macros.js:168 -#: js/macros.js:264 -#: js/macros.js:265 -#: js/macros.js:274 -#: js/macros.js:826 -#: js/blocks.js:1001 -#: js/blocks.js:3394 -#: js/blocks.js:3395 -#: js/blocks.js:3620 -#: js/blocks.js:3981 -#: js/blocks.js:4172 -#: js/blocks.js:5305 -#: js/blocks.js:6432 -#: js/ActionBlocks.js:119 -#: js/ActionBlocks.js:167 -#: js/ActionBlocks.js:364 -#: js/ActionBlocks.js:429 -#: js/ActionBlocks.js:582 -#: js/ActionBlocks.js:643 -#: js/ActionBlocks.js:772 -#: js/ActionBlocks.js:775 -#: js/ActionBlocks.js:780 -#: js/ActionBlocks.js:813 -#: js/MeterBlocks.js:416 -#: js/MeterBlocks.js:446 -#: js/MeterBlocks.js:482 -#: js/MeterBlocks.js:521 -#: js/musickeyboard.js:2564 -#: js/rhythmruler.js:1925 -#: js/rhythmruler.js:1932 -#: js/rhythmruler.js:2116 -#: js/rhythmruler.js:2123 -#: js/phrasemaker.js:4402 -#: js/planetInterface.js:101 -#: js/planetInterface.js:101 -#: js/planetInterface.js:101 -#: js/planetInterface.js:101 -#: js/planetInterface.js:102 -#: js/planetInterface.js:104 -#: js/planetInterface.js:104 -#: js/planetInterface.js:104 -msgid "project undefined" -msgstr "ప్రాజెక్టు అప్రసరిపబ్ధం" - -#: js/logo.js:61 -msgid "Not a valid pitch name" -msgstr "చెల్లని పిచ్ పేరు కాదు" - -#: js/logo.js:507 -#: js/ProgramBlocks.js:258 -#: js/ProgramBlocks.js:427 -msgid "You must select a file." -msgstr "మీరు ఫైల్ ఎంచుకోవాలి" - -#: js/logo.js:1184 -#: js/turtles.js:118 -#: js/turtle-painter.js:1192 -#: js/turtle-painter.js:1193 -#: js/block.js:1463 -#: js/lilypond.js:757 -#: js/lilypond.js:921 -#: js/lilypond.js:959 -#: js/ActionBlocks.js:1223 -#: js/ProgramBlocks.js:1267 -msgid "start" -msgstr "ప్రారంభించు" - -#: js/logo.js:1696 -msgid "Playback is ready." -msgstr "ప్లేబ్యాక్ సిద్ధం" - -#: js/blocks.js:1011 -#: js/blocks.js:3427 -#: js/blocks.js:3428 -#: js/blocks.js:3653 -#: js/blocks.js:4012 -#: js/blocks.js:4205 -#: js/blocks.js:5343 -#: js/blocks.js:6474 -#: js/palette.js:527 -#: js/palette.js:536 -#: js/palette.js:545 -#: js/palette.js:554 -#: js/palette.js:1131 -#: js/palette.js:1142 -#: js/palette.js:1153 -#: js/palette.js:1164 -#: js/palette.js:1183 -#: js/rubrics.js:529 -#: js/macros.js:170 -#: js/macros.js:266 -#: js/macros.js:267 -#: js/macros.js:276 -#: js/macros.js:828 -#: js/block.js:1449 -#: js/block.js:4164 -#: js/block.js:4182 -#: js/block.js:4193 -#: js/turtledefs.js:128 -#: js/turtledefs.js:230 -#: js/ActionBlocks.js:254 -#: js/ActionBlocks.js:307 -#: js/ActionBlocks.js:617 -#: js/ActionBlocks.js:716 -#: js/ActionBlocks.js:961 -#: js/ActionBlocks.js:1049 -#: js/ActionBlocks.js:1322 -#: js/ActionBlocks.js:1325 -#: js/ActionBlocks.js:1337 -#: js/ActionBlocks.js:1404 -#: js/MeterBlocks.js:715 -#: js/MeterBlocks.js:768 -#: js/MeterBlocks.js:831 -#: js/MeterBlocks.js:892 -#: js/phrasemaker.js:4412 -#: js/musickeyboard.js:2647 -#: js/rhythmruler.js:1928 -#: js/rhythmruler.js:1935 -#: js/rhythmruler.js:2119 -#: js/rhythmruler.js:2126 -msgid "action" -msgstr "చర్య" - -#: js/blocks.js:1205 -#: js/blocks.js:3380 -#: js/blocks.js:3770 -#: js/blocks.js:3801 -#: js/blocks.js:3850 -#: js/blocks.js:3885 -#: js/blocks.js:6497 -#: js/palette.js:509 -#: js/palette.js:638 -#: js/palette.js:1107 -#: js/BoxesBlocks.js:282 -#: js/BoxesBlocks.js:285 -#: js/BoxesBlocks.js:405 -#: js/BoxesBlocks.js:594 -msgid "box" -msgstr "పేటిక" - -#: js/blocks.js:1680 -msgid "Consider breaking this stack into parts." -msgstr "ఈ స్టాక్‌ను భాగాలాగా విభాజించడానికి పరిగణించండి" +#: js/SaveInterface.js:59 +#: js/SaveInterface.js:61 +#: js/SaveInterface.js:93 +msgid "Music Blocks Project" +msgstr "మ్యూజిక్ బ్లాక్స్ ప్రాజెక్ట్" -#: js/blocks.js:2408 -#: js/palette.js:653 -#: js/MediaBlocks.js:602 -msgid "open file" -msgstr "ఫైల్ తెరవండి" +#: js/SaveInterface.js:63 +msgid "This project was created in Music Blocks" +msgstr "ఈ ప్రాజెక్టును మ్యూజిక్ బ్లాక్స్‌లో సృష్టించబడింది" -#: js/blocks.js:2415 -#: js/blocks.js:2423 -#: js/activity.js:1875 -msgid "audio file" -msgstr "ఆడియో ఫైల్" +#: js/SaveInterface.js:67 +msgid "Music Blocks is a Free/Libre Software application." +msgstr "మ్యూజిక్ బ్లాక్స్ ఉచిత/స్వతంత్ర సాఫ్ట్‌వేర్ అప్లికేషన్." -#: js/blocks.js:2536 -#: js/blocks.js:3147 -#: js/block.js:3543 -msgid "on2" -msgstr "ఆన్" +#: js/SaveInterface.js:69 +msgid "The source code can be accessed at" +msgstr "మూల కోడ్‌ను అంగీకరించవచ్చు" -#: js/blocks.js:2538 -#: js/blocks.js:3149 -#: js/block.js:3545 -msgid "off" -msgstr "ఆఫ్" +#: js/SaveInterface.js:72 +msgid "For more information, please consult the" +msgstr "మరికొందరు సమాచారానికి, దయచేసి అనుసరించండి" -#: js/blocks.js:2543 -#: js/blocks.js:3154 -#: js/palette.js:618 -#: js/block.js:3466 -#: js/BooleanBlocks.js:77 -#: js/BooleanBlocks.js:167 -#: js/BooleanBlocks.js:251 -#: js/BooleanBlocks.js:335 -#: js/BooleanBlocks.js:433 -#: js/BooleanBlocks.js:539 -#: js/BooleanBlocks.js:640 -#: js/BooleanBlocks.js:741 -#: js/BooleanBlocks.js:847 -#: js/BooleanBlocks.js:948 -#: js/BooleanBlocks.js:1033 -#: js/SensorsBlocks.js:910 -msgid "true" -msgstr "నిజమైన" +#: js/SaveInterface.js:76 +#: js/turtledefs.js:795 +msgid "Music Blocks Guide" +msgstr "మ్యూజిక్ బ్లాక్‌ల మార్గదర్శిక" -#: js/blocks.js:2545 -#: js/blocks.js:3156 -#: js/block.js:3466 -#: js/BooleanBlocks.js:79 -#: js/BooleanBlocks.js:169 -#: js/BooleanBlocks.js:253 -#: js/BooleanBlocks.js:337 -#: js/BooleanBlocks.js:435 -#: js/BooleanBlocks.js:541 -#: js/BooleanBlocks.js:642 -#: js/BooleanBlocks.js:743 -#: js/BooleanBlocks.js:849 -#: js/BooleanBlocks.js:950 -#: js/SensorsBlocks.js:912 -msgid "false" -msgstr "అసత్యం" +#: js/SaveInterface.js:83 +msgid "Alternatively, open the file in Music Blocks using the Load project button." +msgstr "లేదా, ప్రాజెక్ట్ బటన్ నొక్కి Music Blocksలో ఫైల్‌ను తెరవండంలో." -#: js/blocks.js:3183 -#: js/palette.js:574 -#: js/MediaBlocks.js:892 -#: js/MediaBlocks.js:963 -msgid "text" -msgstr "పాఠము" +#: js/SaveInterface.js:85 +msgid "Project Code" +msgstr "ప్రాజెక్ట్ కోడ్" -#: js/blocks.js:3379 -#: js/palette.js:641 -#: js/palette.js:642 -#: js/BoxesBlocks.js:514 -msgid "store in box" -msgstr "" +#: js/SaveInterface.js:87 +msgid "This code stores data about the blocks in a project." +msgstr "ఈ కోడ్ ప్రాజెక్ట్లో ఉన్న బ్లాక్‌ల గురించి డేటాను భద్రపరచిస్తుంది." -#: js/blocks.js:3384 -#: js/blocks.js:3824 -#: js/blocks.js:3859 -#: js/blocks.js:3894 -#: js/blocks.js:5773 -#: js/blocks.js:5794 -#: js/BoxesBlocks.js:772 -msgid "box1" -msgstr "మొదటి పెట్టె" +#: js/SaveInterface.js:89 +msgid "Show" +msgstr "చూపించు" -#: js/blocks.js:3386 -#: js/blocks.js:3826 -#: js/blocks.js:3861 -#: js/blocks.js:3896 -#: js/blocks.js:5775 -#: js/blocks.js:5796 -#: js/BoxesBlocks.js:663 -msgid "box2" -msgstr "రెండవ పెట్టె" +#: js/SaveInterface.js:91 +msgid "Hide" +msgstr "దాచు" -#: js/blocks.js:4058 -#: js/palette.js:639 -#: js/palette.js:644 -#: js/palette.js:1043 -#: js/BoxesBlocks.js:591 -msgid "store in" -msgstr "దీనిలో దాచు" +#: js/SaveInterface.js:131 +#: js/SaveInterface.js:204 +#: js/SaveInterface.js:262 +#: js/SaveInterface.js:389 +#: js/SaveInterface.js:417 +#: js/activity.js:4884 +#: planet/js/ProjectStorage.js:27 +#: planet/js/GlobalPlanet.js:467 +#: planet/js/GlobalPlanet.js:469 +#: planet/js/GlobalPlanet.js:495 +#.TRANS: default project title when saving as Lilypond +msgid "My Project" +msgstr "నా ప్రాజెక్ట్" -#: js/blocks.js:4058 -#: js/EnsembleBlocks.js:391 -#: js/EnsembleBlocks.js:402 -#: js/MediaBlocks.js:746 -#: js/ProgramBlocks.js:390 -#: js/ProgramBlocks.js:495 -#: js/ProgramBlocks.js:658 -#: js/BoxesBlocks.js:595 -#: js/PitchBlocks.js:656 -#: js/PitchBlocks.js:932 -#: js/PitchBlocks.js:1827 -#: js/ToneBlocks.js:1025 -#: js/DictBlocks.js:215 -#: js/DictBlocks.js:289 -msgid "name" -msgstr "పేరు" +#: js/SaveInterface.js:197 +#: planet/js/SaveInterface.js:58 +msgid "No description provided" +msgstr "వివరణ అంగీకృతం కాదు" -#: js/blocks.js:4058 -#: js/RhythmBlocks.js:1130 -#: js/BoxesBlocks.js:75 -#: js/BoxesBlocks.js:595 -#: js/HeapBlocks.js:544 -#: js/DictBlocks.js:289 -#: js/DictBlocks.js:430 -msgid "value" -msgstr "విలువ" +#: js/SaveInterface.js:332 +msgid "Your recording is in progress." +msgstr "మీ రికార్డింగ్ ప్రగతిలో ఉంది." -#: js/blocks.js:4907 -msgid "There is no block selected." -msgstr "ఎటువంటి విభాగం ఎంచుకోలేదు" +#: js/SaveInterface.js:401 +#.TRANS: File name prompt for save as Lilypond +msgid "File name" +msgstr "ఫైల్ పేరు" -#: js/blocks.js:5002 -#: js/MediaBlocks.js:888 -msgid "show" -msgstr "చూపు" +#: js/SaveInterface.js:403 +#: planet/js/StringHelper.js:39 +#.TRANS: Project title prompt for save as Lilypond +msgid "Project title" +msgstr "ప్రాజెక్ట్ టైటిల్" -#: js/blocks.js:5005 -#: js/MediaBlocks.js:803 -#.TRANS: Avatar is the image used to determine the appearance of the mouse. -msgid "avatar" -msgstr "అవతార్" +#: js/SaveInterface.js:405 +#.TRANS: Project title prompt for save as Lilypond +msgid "Project author" +msgstr "ప్రాజెక్ట్ రచయిత" -#: js/blocks.js:5008 -#: js/ToneBlocks.js:1010 -#: js/sampler.js:693 -#.TRANS: The sound sample that the user uploads. -msgid "sample" -msgstr "నమూనా" +#: js/SaveInterface.js:407 +#.TRANS: MIDI prompt for save as Lilypond +msgid "Include MIDI output?" +msgstr "MIDI ఔట్పుట్ చేయవాలా?" -#: js/turtles.js:874 -msgid "Grid" -msgstr "గ్రిడ్" +#: js/SaveInterface.js:409 +#.TRANS: Guitar prompt for save as Lilypond +msgid "Include guitar tablature output?" +msgstr "గిటార్ టాబ్లేచర్ ఔట్పుట్ చేయవాలా?" -#: js/turtles.js:891 -#: js/turtledefs.js:626 -msgid "Clean" -msgstr "శుభ్రపరుచు" +#: js/SaveInterface.js:411 +#.TRANS: Lilypond is a scripting language for generating sheet music +msgid "Save as Lilypond" +msgstr "Lilypondలో గీత పత్రంగా భద్రపరచు" -#: js/turtles.js:912 -#: js/turtledefs.js:632 -msgid "Collapse" -msgstr ""అసంగతి" +#: js/SaveInterface.js:426 +#: js/blocks/EnsembleBlocks.js:75 +#: js/blocks/EnsembleBlocks.js:154 +#: js/blocks/EnsembleBlocks.js:216 +#: js/blocks/EnsembleBlocks.js:302 +#: js/blocks/EnsembleBlocks.js:348 +#: js/blocks/EnsembleBlocks.js:389 +#: js/blocks/EnsembleBlocks.js:441 +#: js/blocks/EnsembleBlocks.js:490 +#: js/blocks/EnsembleBlocks.js:536 +#: js/blocks/EnsembleBlocks.js:583 +#: js/blocks/EnsembleBlocks.js:637 +#: js/blocks/EnsembleBlocks.js:753 +#: js/blocks/EnsembleBlocks.js:840 +#: js/blocks/EnsembleBlocks.js:899 +#: js/blocks/EnsembleBlocks.js:942 +#: js/blocks/EnsembleBlocks.js:1212 +#: js/blocks/EnsembleBlocks.js:1280 +#.TRANS: default project author when saving as Lilypond +msgid "Mr. Mouse" +msgstr "శ్రీమతి మౌస్" -#: js/turtles.js:940 -msgid "Expand" -msgstr "విస్తరించు" +#: js/SaveInterface.js:573 +msgid "The Lilypond code is copied to clipboard. You can paste it here: " +msgstr "Lilypond కోడ్ క్లిప్‌బోర్డ్‌కు కాపీ అయింది. మీరు ఇక్కడ పేస్ట్ చేయవచ్చు:" #: js/languagebox.js:198 msgid "Refresh your browser to change your language preference." @@ -2416,6934 +150,7488 @@ msgstr "మీ భాషా ఇచ్చేందుకు మీ బ్రౌ msgid "Music Blocks is already set to this language." msgstr "మ్యూజిక్ బ్లాక్స్ ఇప్పటికే ఈ భాషకు సెట్ అయింది." -#: js/piemenus.js:200 -#: js/musicutils.js:808 -#: js/musicutils.js:824 -#: js/phrasemaker.js:1672 -#: js/musickeyboard.js:2041 -#: js/sampler.js:544 -#.TRANS: double sharp is a music term related to pitch -msgid "double sharp" -msgstr "రెండు శార్పు" - -#: js/piemenus.js:201 -#: js/PitchBlocks.js:1510 -#: js/PitchActions.js:580 -#: js/musicutils.js:806 -#: js/musicutils.js:825 -#: js/phrasemaker.js:1673 -#: js/musickeyboard.js:2042 -#: js/sampler.js:545 -#.TRANS: sharp is a half-step up in pitch -#.TRANS: sharp is a music term related to pitch -msgid "sharp" -msgstr "శార్ప్" +#: js/planetInterface.js:131 +msgid "project undefined" +msgstr "ప్రాజెక్టు అప్రసరిపబ్ధం" -#: js/piemenus.js:202 -#: js/musicutils.js:804 -#: js/musicutils.js:826 -#: js/phrasemaker.js:1674 -#: js/musickeyboard.js:2043 -#: js/sampler.js:546 -#.TRANS: natural is a music term related to pitch -msgid "natural" -msgstr "స్వాభావిక" +#: js/rubrics.js:523 +#: js/turtledefs.js:119 +#: js/turtledefs.js:221 +#: js/blocks/RhythmBlockPaletteBlocks.js:52 +#: js/blocks/RhythmBlockPaletteBlocks.js:234 +#: js/blocks/ProgramBlocks.js:745 +#: js/widgets/rhythmruler.js:2057 +#: js/widgets/rhythmruler.js:2064 +#: js/widgets/rhythmruler.js:2133 +#: js/widgets/rhythmruler.js:2140 +#: js/widgets/rhythmruler.js:2219 +#.TRANS: an arrangement of notes based on duration +msgid "rhythm" +msgstr "రిధం" -#: js/piemenus.js:203 -#: js/PitchBlocks.js:1469 -#: js/PitchActions.js:583 -#: js/musicutils.js:802 -#: js/musicutils.js:827 -#: js/phrasemaker.js:1675 -#: js/musickeyboard.js:2044 -#: js/sampler.js:547 -#.TRANS: flat is a half-step down in pitch -#.TRANS: flat is a music term related to pitch -msgid "flat" -msgstr "అలవు తగించు" +#: js/rubrics.js:524 +#: js/turtledefs.js:121 +#: js/turtledefs.js:223 +#: js/block-verbose.js:2622 +#: js/block.js:2550 +#: js/blocks/IntervalsBlocks.js:63 +#: js/blocks/SensorsBlocks.js:178 +#: js/blocks/PitchBlocks.js:1839 +#: js/blocks/PitchBlocks.js:1853 +#: js/widgets/musickeyboard.js:1935 +#: js/widgets/phrasemaker.js:1036 +#.TRANS: pitch number +#.TRANS: pitch number +#.TRANS: we specify pitch in terms of a name and an octave. The name can be CDEFGAB or Do Re Mi Fa Sol La Ti. Octave is a number between 1 and 8. +msgid "pitch" +msgstr "శ్రుతి" -#: js/piemenus.js:204 -#: js/musicutils.js:800 -#: js/musicutils.js:828 -#: js/phrasemaker.js:1676 -#: js/musickeyboard.js:2045 -#: js/sampler.js:548 -#.TRANS: double flat is a music term related to pitch -msgid "double flat" -msgstr "రెండు అలవు తగించు" +#: js/rubrics.js:525 +#: js/turtledefs.js:123 +#: js/turtledefs.js:225 +msgid "tone" +msgstr " టోన్" -#: js/piemenus.js:2861 -#: js/PitchBlocks.js:1357 -#: js/musicutils.js:627 -#.TRANS: unison means the note is the same as the current note -#.TRANS: unison is a music term related to intervals -msgid "unison" -msgstr "ఏకాంతము" - -#: js/piemenus.js:3015 -#: js/piemenus.js:3088 -#: js/musicutils.js:635 -#: js/musicutils.js:810 -#: js/musicutils.js:912 -#.TRANS: major is a music term related to intervals and mode -msgid "major" -msgstr "ప్రధాన" - -#: js/piemenus.js:3015 -#: js/piemenus.js:3088 -#: js/musicutils.js:653 -#.TRANS: modal scale for music -msgid "ionian" -msgstr "ఐయోనియన్" - -#: js/piemenus.js:3017 -#: js/piemenus.js:3092 -#: js/musicutils.js:633 -#: js/musicutils.js:811 -#: js/musicutils.js:909 -#.TRANS: minor is a music term related to intervals and mode -msgid "minor" -msgstr "క్షుద్ర" - -#: js/piemenus.js:3017 -#: js/piemenus.js:3092 -#: js/musicutils.js:663 -#.TRANS: modal scale for music -msgid "aeolian" -msgstr "ఏఓలియన్" - -#: js/piemenus.js:3407 -msgid "Duplicate" -msgstr "నకిలీ" - -#: js/piemenus.js:3408 -#: js/turtledefs.js:534 -msgid "Extract" -msgstr "ఎక్స్ట్రాక్ట్" - -#: js/piemenus.js:3409 -msgid "Move to trash" -msgstr "కసినికి జరిపేయండి" - -#: js/piemenus.js:3410 -#: js/timbre.js:968 -#: js/StringHelper.js:69 -msgid "Close" -msgstr "మూసివేయి" - -#: js/piemenus.js:3416 -msgid "Save stack" -msgstr "సేవ్ స్ట్యాక్" - -#: js/piemenus.js:3420 -#: js/toolbar.js:60 -#: js/toolbar.js:120 -#: js/toolbar.js:185 -#: js/toolbar.js:240 -#: js/turtledefs.js:752 -msgid "Help" -msgstr "సహాయం" - -#: js/piemenus.js:3762 -msgid "You have chosen key " -msgstr "మీరు ఎంచుకున్నారు కీ" - -#: js/piemenus.js:3766 -msgid " for your pitch preview." -msgstr "మీ పిచ్ ప్రివ్యూ కోసం" - -#: js/palette.js:571 -msgid "grid" -msgstr "గ్రిడ్" - -#: js/palette.js:577 -#: js/block.js:1540 -#: js/block.js:2343 -#: js/turtledefs.js:126 -#: js/turtledefs.js:228 -#: js/lilypond.js:740 -#: js/lilypond.js:905 -#: js/lilypond.js:949 -#: js/DrumBlocks.js:486 -#: js/RhythmBlocks.js:766 -#: js/VolumeBlocks.js:502 -#: js/phrasemaker.js:823 -msgid "drum" -msgstr "డ్రమ్" - -#: js/palette.js:580 -msgid "effect" -msgstr "ప్రభావం" - -#: js/palette.js:586 -msgid "sargam" -msgstr "సర్గమ్" - -#: js/palette.js:589 -#: js/activity.js:1833 -#: js/RhythmBlocks.js:923 -#: js/PitchBlocks.js:442 -#: js/PitchBlocks.js:1748 -#.TRANS: a numeric mapping of the notes in an octave based on the musical mode -msgid "scale degree" -msgstr "స్కేల్ డిగ్రీ" - -#: js/palette.js:592 -#: js/activity.js:1860 -msgid "mode name" -msgstr "" - -#: js/palette.js:595 -#: js/activity.js:1839 -msgid "invert mode" -msgstr "మోడు పేరు" - -#: js/palette.js:598 -#: js/activity.js:1836 -msgid "voice name" -msgstr " ధ్వని పేరు" - -#: js/palette.js:601 -#: js/PitchBlocks.js:1181 -msgid "custom pitch" -msgstr "అనుకూల శ్రుతి" - -#: js/palette.js:605 -#: js/block.js:1456 -#: js/block.js:1575 -#: js/WidgetBlocks.js:218 -#: js/IntervalsBlocks.js:63 -msgid "temperament" -msgstr "మానఃస్వారూపము" - -#: js/palette.js:609 -msgid "accidental" -msgstr " అక్కిడెంటల్" - -#: js/palette.js:615 -#: js/activity.js:1866 -msgid "interval name" -msgstr "వింతనపేరు" - -#: js/palette.js:633 -#: js/PitchBlocks.js:405 -msgid "pitch converter" -msgstr "శ్రుతి రూపకారి " - -#: js/rubrics.js:522 -#: js/turtledefs.js:119 -#: js/turtledefs.js:221 -#: js/RhythmBlockPaletteBlocks.js:52 -#: js/RhythmBlockPaletteBlocks.js:233 -#: js/ProgramBlocks.js:745 -#: js/rhythmruler.js:1670 -#: js/rhythmruler.js:1677 -#: js/rhythmruler.js:1745 -#: js/rhythmruler.js:1752 -#: js/rhythmruler.js:1830 -#.TRANS: an arrangement of notes based on duration -msgid "rhythm" -msgstr "రిధం" - -#: js/rubrics.js:523 -#: js/block.js:2339 -#: js/turtledefs.js:121 -#: js/turtledefs.js:223 -#: js/IntervalsBlocks.js:63 -#: js/PitchBlocks.js:1801 -#: js/PitchBlocks.js:1814 -#: js/SensorsBlocks.js:178 -#: js/phrasemaker.js:821 -#: js/musickeyboard.js:1653 -#.TRANS: pitch number -#.TRANS: we specify pitch in terms of a name and an octave. The name can be CDEFGAB or Do Re Mi Fa Sol La Ti. Octave is a number between 1 and 8. -msgid "pitch" -msgstr "శ్రుతి" - -#: js/rubrics.js:524 -#: js/turtledefs.js:123 -#: js/turtledefs.js:225 -msgid "tone" -msgstr " టోన్" - -#: js/rubrics.js:525 -#: js/lilypond.js:613 -#: js/lilypond.js:912 -#: js/lilypond.js:918 -#: js/lilypond.js:956 +#: js/rubrics.js:526 +#: js/lilypond.js:605 +#: js/lilypond.js:904 +#: js/lilypond.js:910 +#: js/lilypond.js:948 msgid "mouse" msgstr "మౌస్" -#: js/rubrics.js:526 +#: js/rubrics.js:527 #: js/turtledefs.js:132 #: js/turtledefs.js:234 -#: js/phrasemaker.js:825 +#: js/widgets/phrasemaker.js:1040 msgid "pen" msgstr "పెన్" -#: js/rubrics.js:527 +#: js/rubrics.js:528 #: js/turtledefs.js:133 #: js/turtledefs.js:235 -#: js/NumberBlocks.js:905 -#: js/PitchBlocks.js:1679 -#: js/PitchBlocks.js:1720 +#: js/blocks/NumberBlocks.js:981 +#: js/blocks/PitchBlocks.js:1717 +#: js/blocks/PitchBlocks.js:1758 msgid "number" msgstr "సంఖ్య" -#: js/rubrics.js:528 +#: js/rubrics.js:529 #: js/turtledefs.js:127 #: js/turtledefs.js:229 msgid "flow" msgstr "ఫ్లో" #: js/rubrics.js:530 +#: js/turtledefs.js:128 +#: js/turtledefs.js:230 +#: js/block-verbose.js:1609 +#: js/block-verbose.js:4559 +#: js/block-verbose.js:4577 +#: js/block-verbose.js:4588 +#: js/block.js:1573 +#: js/block.js:4483 +#: js/block.js:4501 +#: js/block.js:4512 +#: js/blocks.js:1018 +#: js/blocks.js:3491 +#: js/blocks.js:3492 +#: js/blocks.js:3717 +#: js/blocks.js:4076 +#: js/blocks.js:4269 +#: js/blocks.js:5432 +#: js/blocks.js:6563 +#: js/macros.js:170 +#: js/macros.js:266 +#: js/macros.js:267 +#: js/macros.js:276 +#: js/macros.js:828 +#: js/palette.js:527 +#: js/palette.js:536 +#: js/palette.js:545 +#: js/palette.js:554 +#: js/palette.js:1129 +#: js/palette.js:1140 +#: js/palette.js:1151 +#: js/palette.js:1162 +#: js/palette.js:1181 +#: js/blocks/ActionBlocks.js:254 +#: js/blocks/ActionBlocks.js:307 +#: js/blocks/ActionBlocks.js:617 +#: js/blocks/ActionBlocks.js:716 +#: js/blocks/ActionBlocks.js:961 +#: js/blocks/ActionBlocks.js:1049 +#: js/blocks/ActionBlocks.js:1322 +#: js/blocks/ActionBlocks.js:1325 +#: js/blocks/ActionBlocks.js:1337 +#: js/blocks/ActionBlocks.js:1404 +#: js/blocks/MeterBlocks.js:715 +#: js/blocks/MeterBlocks.js:768 +#: js/blocks/MeterBlocks.js:831 +#: js/blocks/MeterBlocks.js:892 +#: js/widgets/musickeyboard.js:2986 +#: js/widgets/phrasemaker.js:4913 +#: js/widgets/rhythmruler.js:2319 +#: js/widgets/rhythmruler.js:2326 +#: js/widgets/rhythmruler.js:2511 +#: js/widgets/rhythmruler.js:2518 +msgid "action" +msgstr "చర్య" + +#: js/rubrics.js:531 #: js/turtledefs.js:136 #: js/turtledefs.js:238 msgid "sensors" msgstr "సెన్సర్స్" -#: js/rubrics.js:531 +#: js/rubrics.js:532 #: js/turtledefs.js:135 #: js/turtledefs.js:237 -#: js/MediaBlocks.js:930 +#: js/blocks/MediaBlocks.js:930 msgid "media" msgstr "మీడియా" -#: js/rubrics.js:532 +#: js/rubrics.js:533 msgid "mice" msgstr "మైస్" -#: js/macros.js:711 -#: js/musicutils.js:783 -#: js/synthutils.js:181 -#.TRANS: animal sound effect -msgid "duck" -msgstr "డక్" - -#: js/toolbar.js:46 -#: js/toolbar.js:107 +#: js/toolbar.js:48 +#: js/toolbar.js:109 msgid "About Music Blocks" msgstr "మ్యూజిక్ బ్లాక్స్ గురించి" -#: js/toolbar.js:47 -#: js/toolbar.js:108 -#: js/toolbar.js:172 -#: js/toolbar.js:228 +#: js/toolbar.js:49 +#: js/toolbar.js:110 +#: js/toolbar.js:175 +#: js/toolbar.js:231 #: js/turtledefs.js:445 #: js/turtledefs.js:482 -#: js/activity.js:2281 -#: js/activity.js:2289 -#: js/activity.js:2520 -#: js/modewidget.js:77 -#: js/pitchstaircase.js:121 -#: js/phrasemaker.js:302 -#: js/phrasemaker.js:312 -#: js/phrasemaker.js:314 -#: js/phrasemaker.js:3901 -#: js/phrasemaker.js:4061 -#: js/phrasemaker.js:4066 -#: js/phrasemaker.js:4068 -#: js/phrasemaker.js:4183 -#: js/pitchdrummatrix.js:81 -#: js/pitchdrummatrix.js:574 -#: js/pitchdrummatrix.js:576 -#: js/pitchdrummatrix.js:628 -#: js/pitchdrummatrix.js:630 -#: js/pitchdrummatrix.js:645 -#: js/pitchdrummatrix.js:647 -#: js/pitchdrummatrix.js:674 -#: js/pitchdrummatrix.js:676 -#: js/temperament.js:477 -#: js/temperament.js:480 -#: js/temperament.js:540 -#: js/temperament.js:542 -#: js/temperament.js:1835 -#: js/temperament.js:1837 -#: js/temperament.js:1986 -#: js/temperament.js:1988 -#: js/musickeyboard.js:522 -#: js/musickeyboard.js:682 -#: js/musickeyboard.js:684 -#: js/musickeyboard.js:756 -#: js/musickeyboard.js:758 -#: js/rhythmruler.js:298 -#: js/rhythmruler.js:300 -#: js/rhythmruler.js:314 -#: js/rhythmruler.js:316 -#: js/sampler.js:96 -#: js/sampler.js:98 -#: js/sampler.js:229 -#: js/sampler.js:235 -#: js/sampler.js:237 -#: js/tempo.js:84 -#: js/tempo.js:86 -#: js/timbre.js:432 -#: js/timbre.js:434 -#: js/timbre.js:465 -#: js/timbre.js:467 -#: js/timbre.js:746 -#: js/meterwidget.js:80 -#: js/arpeggio.js:90 -#: js/arpeggio.js:547 -#: js/arpeggio.js:549 -#: js/arpeggio.js:644 -#: js/arpeggio.js:646 +#: js/activity.js:2660 +#: js/activity.js:2671 +#: js/activity.js:2902 +#: js/widgets/modewidget.js:77 +#: js/widgets/meterwidget.js:185 +#: js/widgets/pitchdrummatrix.js:147 +#: js/widgets/pitchdrummatrix.js:687 +#: js/widgets/pitchdrummatrix.js:689 +#: js/widgets/pitchdrummatrix.js:741 +#: js/widgets/pitchdrummatrix.js:743 +#: js/widgets/pitchdrummatrix.js:758 +#: js/widgets/pitchdrummatrix.js:760 +#: js/widgets/pitchdrummatrix.js:789 +#: js/widgets/pitchdrummatrix.js:791 +#: js/widgets/pitchstaircase.js:121 +#: js/widgets/temperament.js:610 +#: js/widgets/temperament.js:613 +#: js/widgets/temperament.js:673 +#: js/widgets/temperament.js:675 +#: js/widgets/temperament.js:2017 +#: js/widgets/temperament.js:2019 +#: js/widgets/tempo.js:84 +#: js/widgets/tempo.js:86 +#: js/widgets/timbre.js:432 +#: js/widgets/timbre.js:434 +#: js/widgets/timbre.js:465 +#: js/widgets/timbre.js:467 +#: js/widgets/timbre.js:746 +#: js/widgets/aiwidget.js:647 +#: js/widgets/aiwidget.js:654 +#: js/widgets/aiwidget.js:656 +#: js/widgets/arpeggio.js:90 +#: js/widgets/arpeggio.js:547 +#: js/widgets/arpeggio.js:549 +#: js/widgets/arpeggio.js:644 +#: js/widgets/arpeggio.js:646 +#: js/widgets/musickeyboard.js:676 +#: js/widgets/musickeyboard.js:872 +#: js/widgets/musickeyboard.js:874 +#: js/widgets/musickeyboard.js:953 +#: js/widgets/musickeyboard.js:955 +#: js/widgets/phrasemaker.js:513 +#: js/widgets/phrasemaker.js:523 +#: js/widgets/phrasemaker.js:525 +#: js/widgets/phrasemaker.js:4304 +#: js/widgets/phrasemaker.js:4528 +#: js/widgets/phrasemaker.js:4533 +#: js/widgets/phrasemaker.js:4535 +#: js/widgets/phrasemaker.js:4650 +#: js/widgets/rhythmruler.js:637 +#: js/widgets/rhythmruler.js:639 +#: js/widgets/rhythmruler.js:653 +#: js/widgets/rhythmruler.js:655 +#: js/widgets/sampler.js:162 +#: js/widgets/sampler.js:164 +#: js/widgets/sampler.js:363 msgid "Play" msgstr "ప్లే" -#: js/toolbar.js:48 -#: js/toolbar.js:109 -#: js/toolbar.js:173 -#: js/toolbar.js:229 +#: js/toolbar.js:50 +#: js/toolbar.js:111 +#: js/toolbar.js:176 +#: js/toolbar.js:232 #: js/turtledefs.js:451 #: js/turtledefs.js:488 -#: js/activity.js:2297 -#: js/modewidget.js:99 -#: js/modewidget.js:101 -#: js/phrasemaker.js:323 -#: js/phrasemaker.js:325 -#: js/pitchdrummatrix.js:561 -#: js/pitchdrummatrix.js:563 -#: js/temperament.js:1820 -#: js/temperament.js:1822 -#: js/meterwidget.js:101 -#: js/meterwidget.js:103 -#: js/arpeggio.js:534 -#: js/arpeggio.js:536 +#: js/activity.js:2679 +#: js/widgets/modewidget.js:99 +#: js/widgets/modewidget.js:101 +#: js/widgets/meterwidget.js:206 +#: js/widgets/meterwidget.js:208 +#: js/widgets/pitchdrummatrix.js:674 +#: js/widgets/pitchdrummatrix.js:676 +#: js/widgets/temperament.js:2002 +#: js/widgets/temperament.js:2004 +#: js/widgets/arpeggio.js:534 +#: js/widgets/arpeggio.js:536 +#: js/widgets/phrasemaker.js:534 +#: js/widgets/phrasemaker.js:536 msgid "Stop" msgstr "నిలిపివేయి" -#: js/toolbar.js:49 -#: js/toolbar.js:110 -#: js/toolbar.js:174 -#: js/toolbar.js:230 +#: js/toolbar.js:51 +#: js/toolbar.js:112 +#: js/toolbar.js:177 +#: js/toolbar.js:233 #: js/turtledefs.js:498 msgid "Record" msgstr "రికార్డ్" -#: js/toolbar.js:50 -#: js/toolbar.js:51 +#: js/toolbar.js:52 +#: js/toolbar.js:53 msgid "Full screen" msgstr "పూర్తి పరిపరచిన పరిచయం" -#: js/toolbar.js:52 -#: js/toolbar.js:112 -#: js/toolbar.js:177 -#: js/toolbar.js:232 +#: js/toolbar.js:54 +#: js/toolbar.js:115 +#: js/toolbar.js:180 +#: js/toolbar.js:236 #: js/turtledefs.js:504 msgid "Toggle Fullscreen" msgstr "" -#: js/toolbar.js:53 -#: js/toolbar.js:113 -#: js/toolbar.js:178 -#: js/toolbar.js:233 +#: js/toolbar.js:55 +#: js/toolbar.js:116 +#: js/toolbar.js:181 +#: js/toolbar.js:237 #: js/turtledefs.js:510 -#: js/StringHelper.js:33 +#: planet/js/StringHelper.js:33 msgid "New project" msgstr "కొత్త ప్రాజెక్టు" -#: js/toolbar.js:54 -#: js/toolbar.js:114 -#: js/toolbar.js:179 -#: js/toolbar.js:234 +#: js/toolbar.js:56 +#: js/toolbar.js:117 +#: js/toolbar.js:182 +#: js/toolbar.js:238 #: js/turtledefs.js:516 msgid "Load project from file" msgstr "ఫైల్ నుండి ప్రాజెక్టును లోడ్ చేయండి" -#: js/toolbar.js:55 -#: js/toolbar.js:115 -#: js/toolbar.js:116 -#: js/toolbar.js:180 -#: js/toolbar.js:235 +#: js/toolbar.js:57 +#: js/toolbar.js:118 +#: js/toolbar.js:119 +#: js/toolbar.js:183 +#: js/toolbar.js:239 #: js/turtledefs.js:541 #: js/turtledefs.js:550 #: js/turtledefs.js:571 msgid "Save project" msgstr "ప్రాజెక్ట్‌ను భద్రపరచు" -#: js/toolbar.js:56 -#: js/toolbar.js:75 +#: js/toolbar.js:58 #: js/toolbar.js:77 -#: js/toolbar.js:135 -#: js/toolbar.js:144 -#: js/toolbar.js:146 -#: js/toolbar.js:181 -#: js/toolbar.js:199 -#: js/toolbar.js:201 -#: js/toolbar.js:236 -#: js/toolbar.js:254 -#: js/toolbar.js:256 +#: js/toolbar.js:79 +#: js/toolbar.js:138 +#: js/toolbar.js:147 +#: js/toolbar.js:149 +#: js/toolbar.js:184 +#: js/toolbar.js:202 +#: js/toolbar.js:204 +#: js/toolbar.js:240 +#: js/toolbar.js:258 +#: js/toolbar.js:260 msgid "Save project as HTML" msgstr "ప్రాజెక్ట్‌ను HTML రూపంలో భద్రపరచు" -#: js/toolbar.js:57 -#: js/toolbar.js:117 -#: js/toolbar.js:182 -#: js/toolbar.js:237 +#: js/toolbar.js:59 +#: js/toolbar.js:120 +#: js/toolbar.js:185 +#: js/toolbar.js:241 msgid "Find and share projects" msgstr "ప్రాజెక్టులను కనుగొనండి మరియు షేర్ చేయండి" -#: js/toolbar.js:58 -#: js/toolbar.js:118 -#: js/toolbar.js:183 -#: js/toolbar.js:238 +#: js/toolbar.js:60 +#: js/toolbar.js:121 +#: js/toolbar.js:186 +#: js/toolbar.js:242 msgid "Offline. Sharing is unavailable" msgstr "ఆఫ్‌లైన్. షేరింగ్ అంచనా లేదు" -#: js/toolbar.js:59 -#: js/toolbar.js:119 -#: js/toolbar.js:184 -#: js/toolbar.js:239 +#: js/toolbar.js:61 +#: js/toolbar.js:122 +#: js/toolbar.js:187 +#: js/toolbar.js:243 msgid "Auxiliary menu" msgstr "సహాయక మెనూ" -#: js/toolbar.js:61 -#: js/toolbar.js:121 -#: js/toolbar.js:186 -#: js/toolbar.js:241 +#: js/toolbar.js:62 +#: js/toolbar.js:123 +#: js/toolbar.js:188 +#: js/toolbar.js:244 +#: js/turtledefs.js:752 +#: js/piemenus.js:3423 +msgid "Help" +msgstr "సహాయం" + +#: js/toolbar.js:63 +#: js/toolbar.js:124 +#: js/toolbar.js:189 +#: js/toolbar.js:245 msgid "Run slowly" msgstr "నిధానంగా ప్రవృత్తి చేయండి" -#: js/toolbar.js:62 -#: js/toolbar.js:122 -#: js/toolbar.js:187 -#: js/toolbar.js:242 +#: js/toolbar.js:64 +#: js/toolbar.js:125 +#: js/toolbar.js:190 +#: js/toolbar.js:246 #: js/turtledefs.js:682 msgid "Run step by step" msgstr "అడుగుపూర్వకంగా ప్రవృత్తి చేయండి" -#: js/toolbar.js:63 -#: js/toolbar.js:123 -#: js/toolbar.js:188 -#: js/toolbar.js:243 +#: js/toolbar.js:65 +#: js/toolbar.js:126 +#: js/toolbar.js:191 +#: js/toolbar.js:247 #: js/turtledefs.js:689 msgid "Display statistics" msgstr "సంఖ్యలను ప్రదర్శించండి" -#: js/toolbar.js:64 -#: js/toolbar.js:124 -#: js/toolbar.js:189 -#: js/toolbar.js:244 +#: js/toolbar.js:66 +#: js/toolbar.js:127 +#: js/toolbar.js:192 +#: js/toolbar.js:248 msgid "Load plugin" msgstr "ప్లగిన్ లోడ్ చేయండి" -#: js/toolbar.js:65 -#: js/toolbar.js:125 -#: js/toolbar.js:190 -#: js/toolbar.js:245 +#: js/toolbar.js:67 +#: js/toolbar.js:128 +#: js/toolbar.js:193 +#: js/toolbar.js:249 #: js/turtledefs.js:696 msgid "Delete plugin" msgstr "" -#: js/toolbar.js:66 -#: js/toolbar.js:126 -#: js/toolbar.js:191 -#: js/toolbar.js:246 +#: js/toolbar.js:68 +#: js/toolbar.js:129 +#: js/toolbar.js:194 +#: js/toolbar.js:250 msgid "Enable horizontal scrolling" msgstr "అక్షరాభ్యంతర లోడింగ్‌ను అనుమతించండి" -#: js/toolbar.js:67 -#: js/toolbar.js:127 -#: js/toolbar.js:192 -#: js/toolbar.js:247 +#: js/toolbar.js:69 +#: js/toolbar.js:130 +#: js/toolbar.js:195 +#: js/toolbar.js:251 msgid "Disable horizontal scrolling" msgstr "అక్షరాభ్యంతర లోడింగ్‌ను నిలిపించండి" -#: js/toolbar.js:68 -#: js/toolbar.js:128 -#: js/toolbar.js:193 -#: js/toolbar.js:248 -#: js/LocalCard.js:54 -#: js/StringHelper.js:71 +#: js/toolbar.js:70 +#: js/toolbar.js:131 +#: js/toolbar.js:196 +#: js/toolbar.js:252 +#: planet/js/LocalCard.js:54 +#: planet/js/StringHelper.js:71 msgid "Merge with current project" msgstr "ప్రస్తుత ప్రాజెక్ట్‌తో విలీనం చేయండి" -#: js/toolbar.js:69 -#: js/toolbar.js:129 +#: js/toolbar.js:71 +#: js/toolbar.js:132 msgid "Set Pitch Preview" msgstr "పిచ్ ప్రివ్యూను సెట్ చేయండి" -#: js/toolbar.js:70 -#: js/toolbar.js:130 -#: js/toolbar.js:194 -#: js/toolbar.js:249 -msgid "Toggle JavaScript Editor" -msgstr "JavaScript ఎడిటర్‌ను టాగిల్ చేయండి" +#: js/toolbar.js:72 +#: js/toolbar.js:133 +#: js/toolbar.js:197 +#: js/toolbar.js:253 +msgid "JavaScript Editor" +msgstr "" -#: js/toolbar.js:71 -#: js/toolbar.js:131 -#: js/toolbar.js:195 -#: js/toolbar.js:250 +#: js/toolbar.js:73 +#: js/toolbar.js:134 +#: js/toolbar.js:198 +#: js/toolbar.js:254 #: js/turtledefs.js:724 msgid "Restore" msgstr "పునఃస్థాపించు" -#: js/toolbar.js:72 -#: js/toolbar.js:132 -#: js/toolbar.js:196 -#: js/toolbar.js:251 +#: js/toolbar.js:74 +#: js/toolbar.js:135 +#: js/toolbar.js:199 +#: js/toolbar.js:255 msgid "Switch to beginner mode" msgstr "ప్రారంభకర్తల రీతికి మారండి" -#: js/toolbar.js:73 -#: js/toolbar.js:133 -#: js/toolbar.js:197 -#: js/toolbar.js:252 +#: js/toolbar.js:75 +#: js/toolbar.js:136 +#: js/toolbar.js:200 +#: js/toolbar.js:256 msgid "Switch to advanced mode" msgstr "ఉన్నత రీతికి మారండి" -#: js/toolbar.js:74 -#: js/toolbar.js:134 -#: js/toolbar.js:143 -#: js/toolbar.js:198 -#: js/toolbar.js:253 +#: js/toolbar.js:76 +#: js/toolbar.js:137 +#: js/toolbar.js:146 +#: js/toolbar.js:201 +#: js/toolbar.js:257 #: js/turtledefs.js:738 msgid "Select language" msgstr "భాషను ఎంచుకోండి" -#: js/toolbar.js:76 -#: js/toolbar.js:79 -#: js/toolbar.js:137 +#: js/toolbar.js:78 +#: js/toolbar.js:81 +#: js/toolbar.js:140 #: js/turtledefs.js:579 msgid "Save mouse artwork as PNG" msgstr "మౌస్ ఆర్ట్‌వర్క్‌ను PNG రూపంలో భద్రపరచండి" -#: js/toolbar.js:78 -#: js/toolbar.js:136 +#: js/toolbar.js:80 +#: js/toolbar.js:139 #: js/turtledefs.js:575 msgid "Save mouse artwork as SVG" msgstr "మౌస్ ఆర్ట్‌వర్క్‌ను SVG రూపంలో భద్రపరచండి" -#: js/toolbar.js:80 -#: js/toolbar.js:138 +#: js/toolbar.js:82 +#: js/toolbar.js:141 #: js/turtledefs.js:583 msgid "Save music as WAV" msgstr "సంగీతాన్ని WAV రూపంలో భద్రపరచండి" -#: js/toolbar.js:81 -#: js/toolbar.js:139 +#: js/toolbar.js:83 +#: js/toolbar.js:142 #: js/turtledefs.js:587 msgid "Save sheet music as ABC" msgstr "షీట్ సంగీతాన్ని ABC రూపంలో భద్రపరచండి" -#: js/toolbar.js:82 -#: js/toolbar.js:140 +#: js/toolbar.js:84 +#: js/toolbar.js:143 #: js/turtledefs.js:591 msgid "Save sheet music as Lilypond" msgstr "షీట్ సంగీతాన్ని Lilypond రూపంలో భద్రపరచండి" -#: js/toolbar.js:83 +#: js/toolbar.js:85 msgid "Save sheet music as MusicXML" msgstr "షీట్ సంగీతాన్ని MusicXML రూపంలో భద్రపరచండి" -#: js/toolbar.js:84 -#: js/toolbar.js:141 -#: js/toolbar.js:149 -#: js/toolbar.js:204 -#: js/toolbar.js:259 +#: js/toolbar.js:86 +#: js/toolbar.js:144 +#: js/toolbar.js:152 +#: js/toolbar.js:207 +#: js/toolbar.js:263 #: js/turtledefs.js:562 #: js/turtledefs.js:595 msgid "Save block artwork as SVG" msgstr "SVG రూపకలాబద్దం నాటించండి" -#: js/toolbar.js:85 -#: js/toolbar.js:142 -#: js/toolbar.js:150 -#: js/toolbar.js:205 -#: js/toolbar.js:260 +#: js/toolbar.js:87 +#: js/toolbar.js:145 +#: js/toolbar.js:153 +#: js/toolbar.js:208 +#: js/toolbar.js:264 +#: js/turtles.js:911 msgid "Confirm" msgstr "నిర్ధారించండి" -#: js/toolbar.js:86 -#: js/toolbar.js:151 -#: js/toolbar.js:206 -#: js/toolbar.js:261 +#: js/toolbar.js:88 +#: js/toolbar.js:154 +#: js/toolbar.js:209 +#: js/toolbar.js:265 msgid "English (United States)" msgstr "" -#: js/toolbar.js:87 -#: js/toolbar.js:152 -#: js/toolbar.js:207 -#: js/toolbar.js:262 +#: js/toolbar.js:89 +#: js/toolbar.js:155 +#: js/toolbar.js:210 +#: js/toolbar.js:266 msgid "English (United Kingdom)" msgstr "" -#: js/toolbar.js:88 -#: js/toolbar.js:153 -#: js/toolbar.js:208 -#: js/toolbar.js:263 +#: js/toolbar.js:90 +#: js/toolbar.js:156 +#: js/toolbar.js:211 +#: js/toolbar.js:267 msgid "日本語" msgstr "" -#: js/toolbar.js:89 +#: js/toolbar.js:91 msgid "한국어" msgstr "" -#: js/toolbar.js:90 -#: js/toolbar.js:155 -#: js/toolbar.js:210 -#: js/toolbar.js:265 +#: js/toolbar.js:92 +#: js/toolbar.js:158 +#: js/toolbar.js:213 +#: js/toolbar.js:269 msgid "español" msgstr "" -#: js/toolbar.js:91 -#: js/toolbar.js:156 -#: js/toolbar.js:211 -#: js/toolbar.js:266 -msgid "português" -msgstr "" +#: js/toolbar.js:93 +#: js/toolbar.js:159 +#: js/toolbar.js:214 +#: js/toolbar.js:270 +msgid "português" +msgstr "" + +#: js/toolbar.js:94 +#: js/toolbar.js:160 +#: js/toolbar.js:215 +#: js/toolbar.js:271 +msgid "にほんご" +msgstr "" + +#: js/toolbar.js:95 +#: js/toolbar.js:161 +#: js/toolbar.js:216 +#: js/toolbar.js:272 +msgid "中文" +msgstr "" + +#: js/toolbar.js:96 +#: js/toolbar.js:162 +#: js/toolbar.js:217 +#: js/toolbar.js:273 +msgid "ภาษาไทย" +msgstr "" + +#: js/toolbar.js:97 +#: js/toolbar.js:163 +#: js/toolbar.js:218 +#: js/toolbar.js:274 +msgid "aymara" +msgstr "" + +#: js/toolbar.js:98 +#: js/toolbar.js:164 +#: js/toolbar.js:219 +#: js/toolbar.js:275 +msgid "quechua" +msgstr "" + +#: js/toolbar.js:99 +#: js/toolbar.js:165 +#: js/toolbar.js:220 +#: js/toolbar.js:276 +msgid "guarani" +msgstr "" + +#: js/toolbar.js:100 +#: js/toolbar.js:166 +#: js/toolbar.js:221 +#: js/toolbar.js:277 +msgid "हिंदी" +msgstr "" + +#: js/toolbar.js:101 +#: js/toolbar.js:168 +#: js/toolbar.js:222 +#: js/toolbar.js:279 +msgid "igbo" +msgstr "" + +#: js/toolbar.js:102 +#: js/toolbar.js:169 +#: js/toolbar.js:223 +#: js/toolbar.js:280 +msgid "عربى" +msgstr "" + +#: js/toolbar.js:103 +#: js/toolbar.js:167 +#: js/toolbar.js:224 +#: js/toolbar.js:278 +msgid "తెలుగు" +msgstr "" + +#: js/toolbar.js:104 +#: js/toolbar.js:170 +#: js/toolbar.js:225 +#: js/toolbar.js:281 +msgid "עִברִית" +msgstr "" + +#: js/toolbar.js:113 +#: js/toolbar.js:114 +#: js/toolbar.js:178 +#: js/toolbar.js:179 +#: js/toolbar.js:234 +#: js/toolbar.js:235 +msgid "Full Screen" +msgstr "పూర్తి స్క్రీన్" + +#: js/toolbar.js:148 +#: js/toolbar.js:151 +#: js/toolbar.js:203 +#: js/toolbar.js:206 +#: js/toolbar.js:259 +#: js/toolbar.js:262 +#: js/turtledefs.js:558 +msgid "Save turtle artwork as PNG" +msgstr "PNG రూపకలాబద్దం నాటించండి" + +#: js/toolbar.js:150 +#: js/toolbar.js:205 +#: js/toolbar.js:261 +#: js/turtledefs.js:554 +msgid "Save turtle artwork as SVG" +msgstr "SVG రూపకలాబద్దం నాటించండి" + +#: js/toolbar.js:157 +#: js/toolbar.js:212 +#: js/toolbar.js:268 +msgid "한국인" +msgstr "కొరియన్" + +#: js/toolbar.js:174 +#: js/toolbar.js:230 +msgid "About Turtle Blocks" +msgstr "టర్టిల్ బ్లాక్స్ గురించి" + +#: js/toolbar.js:446 +#: js/toolbar.js:457 +#: js/toolbar.js:497 +msgid "Turtle Wrap Off" +msgstr "టర్టిల్ వ్రాప్ ఆఫ్" + +#: js/toolbar.js:466 +#: js/toolbar.js:506 +msgid "Turtle Wrap On" +msgstr "టర్టిల్ వ్రాప్ ఆన్" + +#: js/turtle-painter.js:1192 +#: js/turtle-painter.js:1193 +#: js/turtles.js:118 +#: js/block-verbose.js:1623 +#: js/block.js:1587 +#: js/lilypond.js:749 +#: js/lilypond.js:913 +#: js/lilypond.js:951 +#: js/logo.js:1184 +#: js/blocks/ActionBlocks.js:1223 +#: js/blocks/ProgramBlocks.js:1267 +msgid "start" +msgstr "ప్రారంభించు" + +#: js/turtledefs.js:40 +#.TRANS: put the URL to the guide here, e.g., https://github.com/sugarlabs/turtleblocksjs/tree/master/guide/README.md +msgid "guide url" +msgstr "మార్గదర్శి URL" + +#: js/turtledefs.js:85 +#: js/turtledefs.js:437 +msgid "Turtle Blocks is a Logo-inspired turtle that draws colorful pictures with snap-together visual-programming blocks." +msgstr "టర్టిల్ బ్లాక్స్ ఒంటరి ఆదరణ పొందిన కోడిగోరీ టర్టిల్, స్నాప్-టు-గెద్దల విజువల్-ప్రోగ్రామ" + +#: js/turtledefs.js:118 +#: js/turtledefs.js:220 +msgid "search" +msgstr "వెతకడానికి" + +#: js/turtledefs.js:120 +#: js/turtledefs.js:222 +#: js/blocks/MeterBlocks.js:1343 +#: js/blocks/WidgetBlocks.js:522 +#.TRANS: musical meter (time signature), e.g., 4:4 +msgid "meter" +msgstr "మీటర్" + +#: js/turtledefs.js:122 +#: js/turtledefs.js:224 +msgid "intervals" +msgstr "అంతరాలాలు" + +#: js/turtledefs.js:124 +#: js/turtledefs.js:226 +msgid "ornament" +msgstr "ఆలంకారము" + +#: js/turtledefs.js:125 +#: js/turtledefs.js:227 +#: js/blocks/VolumeBlocks.js:362 +#: js/blocks/VolumeBlocks.js:502 +#: js/blocks/VolumeBlocks.js:545 +msgid "volume" +msgstr "శబ్దపరిమాణం" + +#: js/turtledefs.js:126 +#: js/turtledefs.js:228 +#: js/block-verbose.js:1700 +#: js/block-verbose.js:2626 +#: js/block.js:1664 +#: js/block.js:2554 +#: js/lilypond.js:732 +#: js/lilypond.js:897 +#: js/lilypond.js:941 +#: js/palette.js:577 +#: js/blocks/RhythmBlocks.js:766 +#: js/blocks/DrumBlocks.js:477 +#: js/blocks/VolumeBlocks.js:502 +#: js/widgets/phrasemaker.js:1038 +msgid "drum" +msgstr "డ్రమ్" + +#: js/turtledefs.js:129 +#: js/turtledefs.js:231 +msgid "boxes" +msgstr "పెట్లు" + +#: js/turtledefs.js:130 +#: js/turtledefs.js:232 +msgid "widgets" +msgstr "విడ్జెట్లు" + +#: js/turtledefs.js:131 +#: js/turtledefs.js:233 +#: js/widgets/phrasemaker.js:1039 +msgid "graphics" +msgstr "గ్రాఫిక్స్" + +#: js/turtledefs.js:134 +#: js/turtledefs.js:236 +msgid "boolean" +msgstr "బూలియన్" + +#: js/turtledefs.js:137 +#: js/turtledefs.js:239 +#: js/blocks/HeapBlocks.js:59 +#: js/widgets/status.js:147 +msgid "heap" +msgstr "హీప్" + +#: js/turtledefs.js:138 +#: js/turtledefs.js:240 +#: js/blocks/DictBlocks.js:142 +#: js/blocks/ProgramBlocks.js:495 +msgid "dictionary" +msgstr "నిఘంటువు" + +#: js/turtledefs.js:139 +#: js/turtledefs.js:241 +msgid "ensemble" +msgstr "ఎన్సంబిల్" + +#: js/turtledefs.js:140 +#: js/turtledefs.js:242 +msgid "extras" +msgstr "అదనపు" + +#: js/turtledefs.js:142 +#: js/turtledefs.js:244 +#.TRANS: program as in computer program +#.TRANS: program as in computer program +msgid "program" +msgstr "ప్రోగ్రామ్" + +#: js/turtledefs.js:143 +#: js/turtledefs.js:245 +msgid "my blocks" +msgstr "నా బ్లాక్స్" + +#: js/turtledefs.js:185 +#: js/turtledefs.js:281 +msgid "artwork" +msgstr "కళాకృతి" + +#: js/turtledefs.js:185 +#: js/turtledefs.js:281 +msgid "logic" +msgstr "తర్కము" + +#: js/turtledefs.js:185 +#: js/turtledefs.js:281 +msgid "music" +msgstr "సంగీతం" + +#: js/turtledefs.js:187 +#: js/turtledefs.js:463 +msgid "Music Blocks is a collection of tools for exploring fundamental musical concepts in a fun way." +msgstr "మ్యూజిక్ బ్లాక్స్ అనేది అందుబాటుల దారికే ఆధారమైన సంగీత అవగాహనాలను అనుభవించడానికి సాధనాల సమూహము." + +#: js/turtledefs.js:436 +msgid "Welcome to Turtle Blocks" +msgstr "టర్టిల్ బ్లాక్స్‌కి స్వాగతం" + +#: js/turtledefs.js:438 +#: js/turtledefs.js:465 +#: js/turtledefs.js:774 +#: js/turtledefs.js:805 +msgid "The current version is" +msgstr "ప్రస్తుత సంస్కరణం" + +#: js/turtledefs.js:446 +#: js/turtledefs.js:483 +msgid "Click the run button to run the project in fast mode." +msgstr "ప్రాజెక్ట్‌ను వేగంగా అభ్యర్థించడానికి రన్ బటన్‌ను క్లిక్ చేయండి." + +#: js/turtledefs.js:452 +msgid "Stop the turtle." +msgstr "టర్టిల్‌ను ఆపండి." + +#: js/turtledefs.js:454 +#: js/turtledefs.js:491 +msgid "You can also type Alt-S to stop." +msgstr "మీరు ఆపడానికి Alt-S టైప్ చేసి కనుక రాను ఆపవచ్చు." + +#: js/turtledefs.js:462 +#: js/widgets/help.js:333 +msgid "Welcome to Music Blocks" +msgstr "మ్యూజిక్ బ్లాక్స్‌కి స్వాగతం" + +#: js/turtledefs.js:472 +#: js/widgets/help.js:334 +msgid "Meet Mr. Mouse!" +msgstr "మీట్ మిస్టర్ మౌస్!" + +#: js/turtledefs.js:473 +msgid "Mr Mouse is our Music Blocks conductor." +msgstr "మిస్టర్ మౌస్ మాసిక్ బ్లాక్స్ కండక్టర్." + +#: js/turtledefs.js:475 +msgid "Mr Mouse encourages you to explore Music Blocks." +msgstr "మిస్టర్ మౌస్ మీరు మ్యూజిక్ బ్లాక్స్‌ను అన్వేషించడానికి ఆహ్వానిస్తాడు." + +#: js/turtledefs.js:477 +msgid "Let us start our tour!" +msgstr "మా పర్యటనను ప్రారంభించోదాము!" + +#: js/turtledefs.js:489 +msgid "Stop the music (and the mice)." +msgstr "సంగీతం మరియు మౌస్‌ను ఆపండి." + +#: js/turtledefs.js:499 +msgid "Record your project as video." +msgstr "మీ ప్రాజెక్ట్‌ను వీడియోగా రికార్డ్ చేయండి." + +#: js/turtledefs.js:505 +msgid "Toggle Fullscreen mode." +msgstr "" + +#: js/turtledefs.js:511 +msgid "Initialize a new project." +msgstr "కొత్త ప్రాజెక్ట్‌ను ప్రారంభించండి." + +#: js/turtledefs.js:517 +msgid "You can also load projects from the file system." +msgstr "మీరు ఫైల్ వ్యవస్థను నుండి ప్రాజెక్ట్‌లను లోడ్ చేయవచ్చు." + +#: js/turtledefs.js:522 +#: planet/js/StringHelper.js:46 +msgid "Delete" +msgstr "తొలగించు" + +#: js/turtledefs.js:523 +msgid "To delete a block, just right-click on it, then you will be able to see the delete option" +msgstr "" + +#: js/turtledefs.js:528 +#: js/activity.js:2649 +#: planet/js/LocalCard.js:31 +msgid "Copy" +msgstr "కాపీ" + +#: js/turtledefs.js:529 +msgid "To copy a block, just right-click on it, then you will be able to see the copy option" +msgstr "" + +#: js/turtledefs.js:534 +#: js/piemenus.js:3411 +msgid "Extract" +msgstr "ఎక్స్ట్రాక్ట్" + +#: js/turtledefs.js:535 +msgid "To extract a block, just right-click on it, then you will be able to see the extract option" +msgstr "" + +#: js/turtledefs.js:542 +#: js/turtledefs.js:552 +#: js/turtledefs.js:573 +msgid "Save your project to a file." +msgstr "మీ ప్రాజెక్ట్‌ను ఫైల్‌లో భద్రపరచండి." + +#: js/turtledefs.js:549 +#: js/turtledefs.js:570 +msgid "save" +msgstr "భద్రపరచండి" + +#: js/turtledefs.js:556 +#: js/turtledefs.js:577 +msgid "Save graphics from your project to as SVG." +msgstr "" + +#: js/turtledefs.js:560 +#: js/turtledefs.js:581 +msgid "Save graphics from your project as PNG." +msgstr "మీ ప్రాజెక్ట్ ను SVG గా గ్రాఫిక్స్ భద్రపరచండి." + +#: js/turtledefs.js:564 +#: js/turtledefs.js:597 +msgid "Save block artwork as an SVG file." +msgstr "మీ బ్లాక్ ఆర్ట్‌వర్క్‌ను SVG ఫైల్ గా భద్రపరచండి." + +#: js/turtledefs.js:585 +msgid "Save audio from your project as WAV." +msgstr "మీ ప్రాజెక్ట్ ను WAV రూపంలో ఆడియోని భద్రపరచండి." + +#: js/turtledefs.js:589 +msgid "Save your project to as an ABC file." +msgstr "మీ ప్రాజెక్ట్ ను ABC ఫైల్ గా భద్రపరచండి." + +#: js/turtledefs.js:593 +msgid "Save your project to as a Lilypond file." +msgstr "మీ ప్రాజెక్ట్ ను Lilypond ఫైల్ గా భద్రపరచండి." + +#: js/turtledefs.js:604 +msgid "Load samples from server" +msgstr "సర్వర్ నుండి సేంపులను లోడ్ చేయండి." + +#: js/turtledefs.js:605 +msgid "This button opens a viewer for loading example projects." +msgstr "ఈ బటన్ ఒక వ్యూయర్‌ను తెరవికొని ఉదాహరణ ప్రాజెక్టులను లోడ్ చేస్తుంది." + +#: js/turtledefs.js:611 +msgid "Palette buttons" +msgstr "పాలెట్ బటన్లు" + +#: js/turtledefs.js:612 +msgid "This toolbar contains the palette buttons including Rhythm Pitch Tone Action and more." +msgstr "ఈ టూల్‌బార్‌లో Rhythm, Pitch, Tone, Action, మరియు మరోవి కలిగిన పాలెట్ బటన్లు ఉన్నాయి." + +#: js/turtledefs.js:614 +msgid "Click to show the palettes of blocks and drag blocks from the palettes onto the canvas to use them." +msgstr "బ్లాక్‌ల పాలెట్లను చూపించడానికి మరియు పాలెట్ నుండి బ్లాక్‌లను క్యాన్వాస్‌కు వదలండించడానికి వాడండి." + +#: js/turtledefs.js:620 +msgid "Cartesian/Polar" +msgstr "కార్టేషియన్/పోలార్" + +#: js/turtledefs.js:621 +msgid "Show or hide a coordinate grid." +msgstr "ఒక కోఆర్డినేట్ గ్రిడ్‌ను చూపించాలి లేదా దాచాలి." + +#: js/turtledefs.js:626 +#: js/turtles.js:902 +msgid "Clean" +msgstr "శుభ్రపరుచు" + +#: js/turtledefs.js:627 +msgid "Clear the screen and return the mice to their initial positions." +msgstr "స్క్రీన్‌ను తిరిగిపెట్టండి మరియు మొదటి స్థానాలకు మైస్‌ని తిరిగిపెట్టండి." + +#: js/turtledefs.js:632 +#: js/turtles.js:955 +msgid "Collapse" +msgstr ""అసంగతి" + +#: js/turtledefs.js:633 +msgid "Collapse the graphics window." +msgstr "గ్రాఫిక్స్ విండోను పొరగండి." + +#: js/turtledefs.js:638 +#: js/activity.js:5684 +msgid "Home" +msgstr "హోమ్" + +#: js/turtledefs.js:639 +msgid "Return all blocks to the center of the screen." +msgstr "అన్ని బ్లాక్‌లను స్క్రీన్ మధ్యంలోకి తిరిగిపెట్టండి." + +#: js/turtledefs.js:644 +msgid "Show/hide blocks" +msgstr "బ్లాక్‌లను చూపుము/దాచుము" + +#: js/turtledefs.js:645 +msgid "Hide or show the blocks and the palettes." +msgstr "బ్లాక్‌లను మరియు పాలెట్‌లను దాచాలి లేదా చూపాలి." + +#: js/turtledefs.js:650 +msgid "Expand/collapse collapsable blocks" +msgstr "పెరగాలి/కుగాలి మాడిన బ్లాక్‌లను విస్తరించండి/మూసివేయండి" + +#: js/turtledefs.js:651 +msgid "Expand or collapse start and action stacks." +msgstr "ప్రారంభం మరియు చర్యల స్టాక్‌లను విస్తరించండి లేదా మూసివేయండి." + +#: js/turtledefs.js:658 +#: js/activity.js:5704 +msgid "Decrease block size" +msgstr "బ్లాక్‌ల పరిమాణాన్ని తగ్గించండి" + +#: js/turtledefs.js:659 +msgid "Decrease the size of the blocks." +msgstr "బ్లాక్‌ల పరిమాణాన్ని తగ్గించండి." + +#: js/turtledefs.js:664 +#: js/activity.js:5710 +msgid "Increase block size" +msgstr "బ్లాక్‌ల పరిమాణాన్ని పెంచుకోండి" + +#: js/turtledefs.js:665 +msgid "Increase the size of the blocks." +msgstr "బ్లాక్‌ల పరిమాణాన్ని పెంచుకోండి." + +#: js/turtledefs.js:670 +msgid "Expand/collapse option toolbar" +msgstr "ఎంపిక టూల్‌బార్‌ను విస్తరించండి/మూసివేయండి" + +#: js/turtledefs.js:671 +msgid "Click this button to expand or collapse the auxillary toolbar." +msgstr "" + +#: js/turtledefs.js:676 +msgid "Run slow" +msgstr "ప్రాజెక్ట్‌ను నిధానంగా పరికరించండి" + +#: js/turtledefs.js:677 +msgid "Click to run the project in slow mode." +msgstr "ప్రాజెక్ట్‌ను నిధానంగా పరికరించడానికి నొక్కండి." + +#: js/turtledefs.js:683 +msgid "Click to run the project step by step." +msgstr "ప్రాజెక్ట్‌ను పటికి పటికి పరికరించడానికి నొక్కండి." + +#: js/turtledefs.js:690 +msgid "Display statistics about your Music project." +msgstr "మీ సంగీత ప్రాజెక్ట్‌గా సంఖ్యలను చూపించండి." + +#: js/turtledefs.js:697 +msgid "Delete a selected plugin." +msgstr "ఎంపిక చేసిన ప్లగిన్‌ని తొలగించండి." + +#: js/turtledefs.js:704 +msgid "Enable scrolling" +msgstr "మీరు క్యాన్వాస్‌లో బ్లాక్‌లను స్క్రోల్ చేసుకోవచ్చు." + +#: js/turtledefs.js:705 +msgid "You can scroll the blocks on the canvas." +msgstr "మీరు క్యాన్వాస్‌లో బ్లాక్‌లను స్క్రోల్ చేసుకోవచ్చు." + +#: js/turtledefs.js:714 +msgid "Wrap Turtle" +msgstr "టర్టిల్ నుండి గుర్తించండి" + +#: js/turtledefs.js:715 +msgid "Turn Turtle wrapping On or Off." +msgstr "టర్టిల్ గుర్తించిన స్థితిని ఎటువంటి చేయండి లేదా ఆఫ్ చేయండి." + +#: js/turtledefs.js:725 +msgid "Restore blocks from the trash." +msgstr "బ్లాక్‌లను ట్రాషును నుండి పునఃప్రారంభించండి." + +#: js/turtledefs.js:732 +msgid "Switch mode" +msgstr "మోడ్ మార్చండి" + +#: js/turtledefs.js:733 +msgid "Switch between beginner and advance modes." +msgstr "ప్రారంభ మరియు ఆధారాభావ మోడ్‌లలో స్విచ్ చేయండి." + +#: js/turtledefs.js:739 +msgid "Select your language preference." +msgstr "మీ భాషా ఇచ్చేందుకు ఎంపిక చేయండి." + +#: js/turtledefs.js:745 +msgid "Keyboard shortcuts" +msgstr "కీబోర్డ్ శార్ట్‌కట్లు" + +#: js/turtledefs.js:746 +msgid "You can type d to create a do block and r to create a re block etc." +msgstr "మీరు d నొక్కి do బ్లాక్ రాయవచ్చు, మరియు r నొక్కి re బ్లాక్ రాయవచ్చు మరియు ఇతరులను చేసుకోవచ్చు." + +#: js/turtledefs.js:753 +msgid "Show these messages." +msgstr "ఈ సందేశాలను చూపించండి." -#: js/toolbar.js:92 -#: js/toolbar.js:157 -#: js/toolbar.js:212 -#: js/toolbar.js:267 -msgid "にほんご" -msgstr "" +#: js/turtledefs.js:759 +#: js/turtledefs.js:790 +#: js/widgets/help.js:335 +msgid "Guide" +msgstr "మార్గదర్శిక" -#: js/toolbar.js:93 -#: js/toolbar.js:158 -#: js/toolbar.js:213 -#: js/toolbar.js:268 -msgid "中文" -msgstr "" +#: js/turtledefs.js:760 +msgid "A detailed guide to Turtle Blocks is available." +msgstr "టర్టిల్ బ్లాక్‌లకు సంబంధించిన వివరాల గుర్తింపు అంగీకరించబడింది." -#: js/toolbar.js:94 -#: js/toolbar.js:159 -#: js/toolbar.js:214 -#: js/toolbar.js:269 -msgid "ภาษาไทย" -msgstr "" +#: js/turtledefs.js:764 +msgid "Turtle Blocks Guide" +msgstr "టర్టిల్ బ్లాక్‌ల మార్గదర్శిక" -#: js/toolbar.js:95 -#: js/toolbar.js:160 -#: js/toolbar.js:215 -#: js/toolbar.js:270 -msgid "aymara" -msgstr "" +#: js/turtledefs.js:767 +#: js/turtledefs.js:798 +#: js/widgets/help.js:336 +msgid "About" +msgstr "గురించి" -#: js/toolbar.js:96 -#: js/toolbar.js:161 -#: js/toolbar.js:216 -#: js/toolbar.js:271 -msgid "quechua" -msgstr "" +#: js/turtledefs.js:768 +msgid "Turtle Blocks is an open source collection of tools for exploring musical concepts." +msgstr "టర్టిల్ బ్లాక్‌లు సంగీత సంవేదనాలను అన్వేషించడానికి ఉపకరణాల ఒక సమూహం." -#: js/toolbar.js:97 -#: js/toolbar.js:162 -#: js/toolbar.js:217 -#: js/toolbar.js:272 -msgid "guarani" -msgstr "" +#: js/turtledefs.js:770 +msgid "A full list of contributors can be found in the Turtle Blocks GitHub repository." +msgstr "కొన్నిసార్లు టర్టిల్ బ్లాక్‌లకు సంబంధించిన పూర్ణ యొక్క యొక్కటి టర్టిల్ బ్లాక్‌లు GitHub సంగ్రహణలో కనబడబడింది." -#: js/toolbar.js:98 -#: js/toolbar.js:163 -#: js/toolbar.js:218 -#: js/toolbar.js:273 -msgid "हिंदी" -msgstr "" +#: js/turtledefs.js:772 +msgid "Turtle Blocks is licensed under the AGPL." +msgstr "టర్టిల్ బ్లాక్‌లు AGPL అడిగేయి." -#: js/toolbar.js:99 -#: js/toolbar.js:165 -#: js/toolbar.js:219 -#: js/toolbar.js:275 -msgid "igbo" -msgstr "" +#: js/turtledefs.js:780 +msgid "Turtle Blocks GitHub repository" +msgstr "టర్టిల్ బ్లాక్‌ల జిట్‌హబ్ రిపోజిటరీ" -#: js/toolbar.js:100 -#: js/toolbar.js:166 -#: js/toolbar.js:220 -#: js/toolbar.js:276 -msgid "عربى" -msgstr "" +#: js/turtledefs.js:783 +#: js/turtledefs.js:814 +#: js/widgets/help.js:337 +#: js/widgets/help.js:359 +msgid "Congratulations." +msgstr "అభినందనలు." -#: js/toolbar.js:101 -#: js/toolbar.js:164 -#: js/toolbar.js:221 -#: js/toolbar.js:274 -msgid "తెలుగు" -msgstr "" +#: js/turtledefs.js:784 +msgid "You have finished the tour. Please enjoy Turtle Blocks!" +msgstr "మీ పర్యాటనను పూర్తి చేసారు. దయచేసి టర్టిల్ బ్లాక్‌లను ఆనందించండి!" -#: js/toolbar.js:102 -#: js/toolbar.js:167 -#: js/toolbar.js:222 -#: js/toolbar.js:277 -msgid "עִברִית" -msgstr "" +#: js/turtledefs.js:791 +msgid "A detailed guide to Music Blocks is available." +msgstr "మ్యూజిక్ బ్లాక్‌ల సవిస్తోన సవిస్తారు." -#: js/toolbar.js:111 -#: js/toolbar.js:175 -#: js/toolbar.js:176 -#: js/toolbar.js:231 -msgid "Full Screen" -msgstr "పూర్తి స్క్రీన్" +#: js/turtledefs.js:799 +msgid "Music Blocks is an open source collection of tools for exploring musical concepts." +msgstr "మ్యూజిక్ బ్లాక్‌లు సంగీత అవగాహన సాధించడానికి ఒక స్వతంత్ర సోఫ్ట్‌వేర్ సంగ్రహం." -#: js/toolbar.js:145 -#: js/toolbar.js:148 -#: js/toolbar.js:200 -#: js/toolbar.js:203 -#: js/toolbar.js:255 -#: js/toolbar.js:258 -#: js/turtledefs.js:558 -msgid "Save turtle artwork as PNG" -msgstr "PNG రూపకలాబద్దం నాటించండి" +#: js/turtledefs.js:801 +msgid "A full list of contributors can be found in the Music Blocks GitHub repository." +msgstr "మ్యూజిక్ బ్లాక్‌ల జిట్‌హబ్ రిపోజిటరీలో పూర్తి యొక్క యాచకుల జాబితా కనిపిస్తుంది." -#: js/toolbar.js:147 -#: js/toolbar.js:202 -#: js/toolbar.js:257 -#: js/turtledefs.js:554 -msgid "Save turtle artwork as SVG" -msgstr "SVG రూపకలాబద్దం నాటించండి" +#: js/turtledefs.js:803 +msgid "Music Blocks is licensed under the AGPL." +msgstr "మ్యూజిక్ బ్లాక్‌లు AGPL అడిగేయి." -#: js/toolbar.js:154 -#: js/toolbar.js:209 -#: js/toolbar.js:264 -msgid "한국인" -msgstr "కొరియన్" +#: js/turtledefs.js:811 +msgid "Music Blocks GitHub repository" +msgstr "మ్యూజిక్ బ్లాక్‌ల జిట్‌హబ్ రిపోజిటరీ" -#: js/toolbar.js:171 -#: js/toolbar.js:227 -msgid "About Turtle Blocks" -msgstr "టర్టిల్ బ్లాక్స్ గురించి" +#: js/turtledefs.js:815 +msgid "You have finished the tour. Please enjoy Music Blocks!" +msgstr "మీ పర్యాటనను పూర్తి చేసారు. దయచేసి మ్యూజిక్ బ్లాక్‌లను ఆనందించండి!" -#: js/toolbar.js:429 -#: js/toolbar.js:440 -msgid "Turtle Wrap Off" -msgstr "టర్టిల్ వ్రాప్ ఆఫ్" +#: js/turtles.js:882 +msgid "Grid" +msgstr "గ్రిడ్" -#: js/toolbar.js:442 -msgid "Turtle Wrap On" -msgstr "టర్టిల్ వ్రాప్ ఆన్" +#: js/turtles.js:1024 +msgid "Expand" +msgstr "విస్తరించు" + +#: js/block-verbose.js:1616 +#: js/block-verbose.js:1735 +#: js/block.js:1580 +#: js/block.js:1699 +#: js/palette.js:605 +#: js/blocks/IntervalsBlocks.js:63 +#: js/blocks/WidgetBlocks.js:259 +msgid "temperament" +msgstr "మానఃస్వారూపము" -#: js/block.js:1470 +#: js/block-verbose.js:1630 +#: js/block.js:1594 msgid "matrix" msgstr "మేట్రిక్స్" -#: js/block.js:1477 -#: js/WidgetBlocks.js:1226 +#: js/block-verbose.js:1637 +#: js/block.js:1601 +#: js/blocks/WidgetBlocks.js:1509 #: plugins/rodi.rtp:324 msgid "status" msgstr "స్థితి" -#: js/block.js:1484 +#: js/block-verbose.js:1644 +#: js/block.js:1608 msgid "drum mapper" msgstr "డ్రం మ్యాపర్" -#: js/block.js:1491 +#: js/block-verbose.js:1651 +#: js/block.js:1615 msgid "ruler" msgstr "రూలర్" -#: js/block.js:1498 -#: js/WidgetBlocks.js:327 +#: js/block-verbose.js:1658 +#: js/block.js:1622 +#: js/blocks/WidgetBlocks.js:397 #.TRANS: timbre is the character or quality of a musical sound msgid "timbre" msgstr "టింబ్రె" -#: js/block.js:1505 +#: js/block-verbose.js:1665 +#: js/block.js:1629 msgid "stair" msgstr "స్టేర్" -#: js/block.js:1512 -#: js/WidgetBlocks.js:577 +#: js/block-verbose.js:1672 +#: js/block.js:1636 +#: js/blocks/WidgetBlocks.js:707 #.TRANS: the speed at music is should be played. msgid "tempo" msgstr "టెంపో" -#: js/block.js:1519 -#: js/block.js:1582 -#: js/IntervalsBlocks.js:1268 +#: js/block-verbose.js:1679 +#: js/block-verbose.js:1742 +#: js/block.js:1643 +#: js/block.js:1706 +#: js/blocks/IntervalsBlocks.js:1464 #.TRANS: mode, e.g., Major in C Major msgid "mode" msgstr "మోడ్" -#: js/block.js:1526 +#: js/block-verbose.js:1686 +#: js/block.js:1650 msgid "slider" msgstr "స్లైడర్" -#: js/block.js:1533 -#: js/SensorsBlocks.js:1001 +#: js/block-verbose.js:1693 +#: js/block.js:1657 +#: js/blocks/SensorsBlocks.js:1001 msgid "keyboard" msgstr "కీబోర్డ్" -#: js/block.js:1547 -#: js/WidgetBlocks.js:957 -#: js/WidgetBlocks.js:988 +#: js/block-verbose.js:1707 +#: js/block.js:1671 +#: js/blocks/WidgetBlocks.js:1190 +#: js/blocks/WidgetBlocks.js:1228 #.TRANS: widget for subdividing a measure into distinct rhythmic elements msgid "rhythm maker" msgstr "రిద్ధమ్ మేకర్" -#: js/block.js:1554 -#: js/block.js:2182 -#: js/block.js:2236 -#: js/RhythmBlockPaletteBlocks.js:70 -#: js/RhythmBlockPaletteBlocks.js:251 -#: js/RhythmBlockPaletteBlocks.js:484 -#: js/RhythmBlockPaletteBlocks.js:553 -#: js/RhythmBlockPaletteBlocks.js:604 -#: js/RhythmBlockPaletteBlocks.js:874 -#: js/RhythmBlocks.js:33 -#: js/RhythmBlocks.js:356 -#: js/RhythmBlocks.js:766 -#: js/RhythmBlocks.js:806 -#: js/OrnamentBlocks.js:220 -#: js/OrnamentBlocks.js:312 -#: js/MeterBlocks.js:1367 -#: js/DictActions.js:85 -#: js/phrasemaker.js:731 -#: js/phrasemaker.js:2393 -#: js/phrasemaker.js:2436 -#: js/phrasemaker.js:2534 +#: js/block-verbose.js:1714 +#: js/block-verbose.js:2457 +#: js/block-verbose.js:2514 +#: js/block.js:1678 +#: js/block.js:2385 +#: js/block.js:2442 +#: js/blocks/MeterBlocks.js:1367 +#: js/blocks/OrnamentBlocks.js:220 +#: js/blocks/OrnamentBlocks.js:312 +#: js/blocks/RhythmBlocks.js:33 +#: js/blocks/RhythmBlocks.js:356 +#: js/blocks/RhythmBlocks.js:766 +#: js/blocks/RhythmBlocks.js:806 +#: js/blocks/RhythmBlockPaletteBlocks.js:70 +#: js/blocks/RhythmBlockPaletteBlocks.js:252 +#: js/blocks/RhythmBlockPaletteBlocks.js:485 +#: js/blocks/RhythmBlockPaletteBlocks.js:554 +#: js/blocks/RhythmBlockPaletteBlocks.js:605 +#: js/blocks/RhythmBlockPaletteBlocks.js:875 +#: js/turtleactions/DictActions.js:85 +#: js/widgets/phrasemaker.js:942 +#: js/widgets/phrasemaker.js:2656 +#: js/widgets/phrasemaker.js:2699 +#: js/widgets/phrasemaker.js:2810 #.TRANS: the value (e.g., 1/4 note) of the note being played. msgid "note value" msgstr "నోట్ విల్యూ" -#: js/block.js:1561 -#: js/block.js:2110 -#: js/block.js:2133 -#: js/IntervalsBlocks.js:875 -#: js/OrnamentBlocks.js:312 +#: js/block-verbose.js:1721 +#: js/block-verbose.js:2382 +#: js/block-verbose.js:2405 +#: js/block.js:1685 +#: js/block.js:2310 +#: js/block.js:2333 +#: js/blocks/IntervalsBlocks.js:1071 +#: js/blocks/OrnamentBlocks.js:312 #.TRANS: calculate a relative step between notes based on semi-tones msgid "scalar interval" msgstr "స్కాలర్ ఇంటర్వల్" -#: js/block.js:1568 -#: js/RhythmBlocks.js:148 +#: js/block-verbose.js:1728 +#: js/block.js:1692 +#: js/blocks/RhythmBlocks.js:148 msgid "milliseconds" msgstr "మిల్లిసెకన్లు" -#: js/block.js:2180 -#: js/block.js:2184 -#: js/block.js:2234 -#: js/block.js:2345 -#: js/ProgramBlocks.js:1273 -#: js/RhythmBlocks.js:712 -#: js/rhythmruler.js:834 -#: js/rhythmruler.js:961 +#: js/block-verbose.js:2455 +#: js/block-verbose.js:2459 +#: js/block-verbose.js:2512 +#: js/block-verbose.js:2628 +#: js/block.js:2383 +#: js/block.js:2387 +#: js/block.js:2440 +#: js/block.js:2556 +#: js/blocks/RhythmBlocks.js:712 +#: js/blocks/ProgramBlocks.js:1273 +#: js/widgets/rhythmruler.js:1183 +#: js/widgets/rhythmruler.js:1329 msgid "silence" msgstr "నిశ్శబ్దం" -#: js/block.js:2265 -#: js/block.js:3134 -#: js/block.js:3151 -#: js/activity.js:2336 -#: js/activity.js:2387 -#: js/musicutils.js:2932 -#: js/musicutils.js:4287 +#: js/block-verbose.js:2548 +#: js/block-verbose.js:3492 +#: js/block-verbose.js:3509 +#: js/activity.js:2718 +#: js/activity.js:2769 +#: js/block.js:2476 +#: js/block.js:3416 +#: js/block.js:3433 +#: js/utils/musicutils.js:3780 +#: js/utils/musicutils.js:5273 +#.TRANS: the note names must be separated by single spaces #.TRANS: the note names must be separated by single spaces #.TRANS: the note names must be separated by single spaces msgid "ti la sol fa mi re do" msgstr "టి లా సోల్ ఫా మి రే దో" -#: js/block.js:2333 +#: js/block-verbose.js:2616 +#: js/block.js:2544 +#.TRANS: scalar step #.TRANS: scalar step msgid "down" msgstr "క్రిందకు" -#: js/block.js:2334 +#: js/block-verbose.js:2617 +#: js/block.js:2545 msgid "up" msgstr "పైకు" -#: js/block.js:3477 -#: js/block.js:3490 -#: js/ExtrasBlocks.js:612 +#: js/block-verbose.js:3026 +#: js/block.js:2950 +msgid "Silence block cannot be removed." +msgstr "" + +#: js/block-verbose.js:3824 +#: js/block.js:3748 +#: js/blocks.js:2607 +#: js/blocks.js:3218 +#: js/palette.js:618 +#: js/blocks/BooleanBlocks.js:77 +#: js/blocks/BooleanBlocks.js:167 +#: js/blocks/BooleanBlocks.js:251 +#: js/blocks/BooleanBlocks.js:335 +#: js/blocks/BooleanBlocks.js:433 +#: js/blocks/BooleanBlocks.js:539 +#: js/blocks/BooleanBlocks.js:640 +#: js/blocks/BooleanBlocks.js:741 +#: js/blocks/BooleanBlocks.js:847 +#: js/blocks/BooleanBlocks.js:948 +#: js/blocks/BooleanBlocks.js:1033 +#: js/blocks/SensorsBlocks.js:910 +msgid "true" +msgstr "నిజమైన" + +#: js/block-verbose.js:3824 +#: js/block.js:3748 +#: js/blocks.js:2609 +#: js/blocks.js:3220 +#: js/blocks/BooleanBlocks.js:79 +#: js/blocks/BooleanBlocks.js:169 +#: js/blocks/BooleanBlocks.js:253 +#: js/blocks/BooleanBlocks.js:337 +#: js/blocks/BooleanBlocks.js:435 +#: js/blocks/BooleanBlocks.js:541 +#: js/blocks/BooleanBlocks.js:642 +#: js/blocks/BooleanBlocks.js:743 +#: js/blocks/BooleanBlocks.js:849 +#: js/blocks/BooleanBlocks.js:950 +#: js/blocks/SensorsBlocks.js:912 +msgid "false" +msgstr "అసత్యం" + +#: js/block-verbose.js:3835 +#: js/block-verbose.js:3848 +#: js/block.js:3759 +#: js/block.js:3772 +#: js/blocks/ExtrasBlocks.js:615 msgid "Cartesian" msgstr "కార్టీషియన్" -#: js/block.js:3478 -#: js/block.js:3491 -#: js/ExtrasBlocks.js:616 +#: js/block-verbose.js:3836 +#: js/block-verbose.js:3849 +#: js/block.js:3760 +#: js/block.js:3773 +#: js/blocks/ExtrasBlocks.js:619 msgid "polar" msgstr "పోలార్" -#: js/block.js:3479 -#: js/block.js:3492 -#: js/ExtrasBlocks.js:620 +#: js/block-verbose.js:3837 +#: js/block-verbose.js:3850 +#: js/block.js:3761 +#: js/block.js:3774 +#: js/blocks/ExtrasBlocks.js:623 msgid "Cartesian+polar" msgstr "కార్టీషియన్ + పోలార్" -#: js/block.js:3480 -#: js/block.js:3499 -#: js/ExtrasBlocks.js:649 +#: js/block-verbose.js:3838 +#: js/block-verbose.js:3857 +#: js/block.js:3762 +#: js/block.js:3781 +#: js/blocks/ExtrasBlocks.js:652 msgid "none" msgstr "ఏమిలేదు" -#: js/block.js:3493 -#: js/ExtrasBlocks.js:625 +#: js/block-verbose.js:3851 +#: js/block.js:3775 +#: js/blocks/ExtrasBlocks.js:628 msgid "treble" msgstr "ట్రెబిల్" -#: js/block.js:3494 -#: js/ExtrasBlocks.js:629 +#: js/block-verbose.js:3852 +#: js/block.js:3776 +#: js/blocks/ExtrasBlocks.js:632 msgid "grand staff" msgstr "గ్రాండ్ స్టాఫ్" -#: js/block.js:3495 -#: js/ExtrasBlocks.js:633 +#: js/block-verbose.js:3853 +#: js/block.js:3777 +#: js/blocks/ExtrasBlocks.js:636 msgid "mezzo-soprano" msgstr "మెజ్జో-సోప్రానో" -#: js/block.js:3496 -#: js/ExtrasBlocks.js:637 +#: js/block-verbose.js:3854 +#: js/block.js:3778 +#: js/blocks/ExtrasBlocks.js:640 msgid "alto" msgstr "ఆల్టో" -#: js/block.js:3497 -#: js/ExtrasBlocks.js:641 +#: js/block-verbose.js:3855 +#: js/block.js:3779 +#: js/blocks/ExtrasBlocks.js:644 msgid "tenor" msgstr "టెనర్" -#: js/block.js:3498 -#: js/ExtrasBlocks.js:645 -#: js/musicutils.js:736 -#: js/synthutils.js:64 +#: js/block-verbose.js:3856 +#: js/block.js:3780 +#: js/utils/musicutils.js:1115 +#: js/utils/synthutils.js:80 +#: js/blocks/ExtrasBlocks.js:648 #.TRANS: musical instrument msgid "bass" msgstr "బేస్" -#: js/block.js:4075 +#: js/block-verbose.js:3901 +#: js/block.js:3825 +#: js/blocks.js:2600 +#: js/blocks.js:3211 +msgid "on2" +msgstr "ఆన్" + +#: js/block-verbose.js:3903 +#: js/block.js:3827 +#: js/blocks.js:2602 +#: js/blocks.js:3213 +msgid "off" +msgstr "ఆఫ్" + +#: js/block-verbose.js:4470 +#: js/block.js:4394 msgid "Not a number" msgstr "సంఖ్య కాదు" -#: js/block.js:4082 +#: js/block-verbose.js:4477 +#: js/block.js:4401 msgid "Octave value must be between 1 and 10." msgstr "" -#: js/block.js:4090 +#: js/block-verbose.js:4485 +#: js/block.js:4409 msgid "Numbers can have at most 10 digits." msgstr "" -#: js/notation.js:353 -msgid "Lilypond cannot process pickup of " -msgstr "Lilypondకు pickup ప్రాసెస్ చేయబడదు " +#: js/activity.js:390 +#: js/activity.js:395 +msgid "Search for blocks" +msgstr "బ్లాక్‌లను శోధించండి" -#: js/turtledefs.js:40 -#.TRANS: put the URL to the guide here, e.g., https://github.com/sugarlabs/turtleblocksjs/tree/master/guide/README.md -msgid "guide url" -msgstr "మార్గదర్శి URL" +#: js/activity.js:1413 +msgid "Refresh your browser to change to advanced mode." +msgstr "ముందుగానే మోడ్ మార్చడానికి మీ బ్రౌజర్‌ను రిఫ్రెష్ చేయండి." -#: js/turtledefs.js:85 -#: js/turtledefs.js:437 -msgid "Turtle Blocks is a Logo-inspired turtle that draws colorful pictures with snap-together visual-programming blocks." -msgstr "టర్టిల్ బ్లాక్స్ ఒంటరి ఆదరణ పొందిన కోడిగోరీ టర్టిల్, స్నాప్-టు-గెద్దల విజువల్-ప్రోగ్రామ" +#: js/activity.js:1418 +msgid "Refresh your browser to change to beginner mode." +msgstr "మొదటి విద్యార్థి మోడ్‌కు మార్చడానికి మీ బ్రౌజర్‌ను రిఫ్రెష్ చేయండి." -#: js/turtledefs.js:118 -#: js/turtledefs.js:220 -msgid "search" -msgstr "వెతకడానికి" +#: js/activity.js:1477 +msgid "Catching mice" +msgstr "ఎలుకులను పట్టుకోవడం" -#: js/turtledefs.js:120 -#: js/turtledefs.js:222 -#: js/WidgetBlocks.js:437 -#: js/MeterBlocks.js:1343 -#.TRANS: musical meter (time signature), e.g., 4:4 -msgid "meter" -msgstr "మీటర్" +#: js/activity.js:1478 +msgid "Cleaning the instruments" +msgstr "యంత్రాలను శుభ్రపరచడం" -#: js/turtledefs.js:122 -#: js/turtledefs.js:224 -msgid "intervals" -msgstr "అంతరాలాలు" +#: js/activity.js:1479 +msgid "Testing key pieces" +msgstr "కీ భాగాలను పరీక్షించడం" -#: js/turtledefs.js:124 -#: js/turtledefs.js:226 -msgid "ornament" -msgstr "ఆలంకారము" +#: js/activity.js:1480 +msgid "Sight-reading" +msgstr "దృష్టికావలి" + +#: js/activity.js:1481 +msgid "Combining math and music" +msgstr "గణితం మరియు సంగీతంను కలిపివచ్చడం" + +#: js/activity.js:1482 +msgid "Generating more blocks" +msgstr "మరిన్ని బ్లాక్‌లను ఉత్పత్తించడం" + +#: js/activity.js:1483 +msgid "Do Re Mi Fa Sol La Ti Do" +msgstr "డో రే మి ఫా సోల్ లా టి డో" + +#: js/activity.js:1484 +msgid "Tuning string instruments" +msgstr "కట్టుగాయలను కలిసివేయడం" + +#: js/activity.js:1485 +msgid "Pressing random keys" +msgstr "యాదృచ్ఛికంగా కీలను నొక్కడం" + +#: js/activity.js:1663 +msgid "plugins will be removed upon restart." +msgstr "ప్లగిన్‌లు పునఃప్రారంభించాక తొలగించబడతాయి." + +#: js/activity.js:1672 +msgid "show Cartesian" +msgstr "కార్టీషియన్ చూపు" + +#: js/activity.js:2211 +#: js/palette.js:589 +#: js/blocks/RhythmBlocks.js:923 +#: js/blocks/PitchBlocks.js:442 +#: js/blocks/PitchBlocks.js:1786 +#.TRANS: a numeric mapping of the notes in an octave based on the musical mode +msgid "scale degree" +msgstr "స్కేల్ డిగ్రీ" + +#: js/activity.js:2214 +#: js/palette.js:598 +msgid "voice name" +msgstr " ధ్వని పేరు" -#: js/turtledefs.js:125 -#: js/turtledefs.js:227 -#: js/VolumeBlocks.js:362 -#: js/VolumeBlocks.js:502 -#: js/VolumeBlocks.js:545 -msgid "volume" -msgstr "శబ్దపరిమాణం" +#: js/activity.js:2217 +#: js/palette.js:595 +msgid "invert mode" +msgstr "మోడు పేరు" -#: js/turtledefs.js:129 -#: js/turtledefs.js:231 -msgid "boxes" -msgstr "పెట్లు" +#: js/activity.js:2220 +msgid "output tools" +msgstr "ఔట్‌పుట్ సాధనాలు" -#: js/turtledefs.js:130 -#: js/turtledefs.js:232 -msgid "widgets" -msgstr "విడ్జెట్లు" +#: js/activity.js:2223 +msgid "custom note" +msgstr "విశేష గానం" -#: js/turtledefs.js:131 -#: js/turtledefs.js:233 -#: js/phrasemaker.js:824 -msgid "graphics" -msgstr "గ్రాఫిక్స్" +#: js/activity.js:2226 +msgid "accidental name" +msgstr "అక్సిడెంటల్ పేరు" -#: js/turtledefs.js:134 -#: js/turtledefs.js:236 -msgid "boolean" -msgstr "బూలియన్" +#: js/activity.js:2229 +#: js/blocks/PitchBlocks.js:855 +msgid "east indian solfege" +msgstr "తూర్పు భారత సొల్ఫేజ్" -#: js/turtledefs.js:137 -#: js/turtledefs.js:239 -#: js/HeapBlocks.js:59 -#: js/status.js:147 -msgid "heap" -msgstr "హీప్" +#: js/activity.js:2232 +#: js/blocks/PitchBlocks.js:869 +msgid "note name" +msgstr "గానం పేరు" -#: js/turtledefs.js:138 -#: js/turtledefs.js:240 -#: js/ProgramBlocks.js:495 -#: js/DictBlocks.js:142 -msgid "dictionary" -msgstr "నిఘంటువు" +#: js/activity.js:2235 +#: js/blocks/IntervalsBlocks.js:94 +msgid "temperament name" +msgstr "ముఖ్యమైన పేరు" -#: js/turtledefs.js:139 -#: js/turtledefs.js:241 -msgid "ensemble" -msgstr "ఎన్సంబిల్" +#: js/activity.js:2238 +#: js/palette.js:592 +msgid "mode name" +msgstr "" -#: js/turtledefs.js:140 -#: js/turtledefs.js:242 -msgid "extras" -msgstr "అదనపు" +#: js/activity.js:2241 +msgid "chord name" +msgstr "కార్డు పేరు" -#: js/turtledefs.js:142 -#: js/turtledefs.js:244 -#.TRANS: program as in computer program -#.TRANS: program as in computer program -msgid "program" -msgstr "ప్రోగ్రామ్" +#: js/activity.js:2244 +#: js/palette.js:615 +msgid "interval name" +msgstr "వింతనపేరు" -#: js/turtledefs.js:143 -#: js/turtledefs.js:245 -msgid "my blocks" -msgstr "నా బ్లాక్స్" +#: js/activity.js:2247 +msgid "filter type" +msgstr "ఫిల్టర్ రకం" -#: js/turtledefs.js:185 -#: js/turtledefs.js:281 -msgid "artwork" -msgstr "కళాకృతి" +#: js/activity.js:2250 +msgid "oscillator type" +msgstr "ఆస్కిలేటర్ రకం" -#: js/turtledefs.js:185 -#: js/turtledefs.js:281 -msgid "logic" -msgstr "తర్కము" +#: js/activity.js:2253 +#: js/blocks.js:2479 +#: js/blocks.js:2487 +msgid "audio file" +msgstr "ఆడియో ఫైల్" -#: js/turtledefs.js:185 -#: js/turtledefs.js:281 -msgid "music" -msgstr "సంగీతం" +#: js/activity.js:2256 +#: js/blocks/DrumBlocks.js:32 +msgid "noise name" +msgstr "సంతోషం పేరు" -#: js/turtledefs.js:187 -#: js/turtledefs.js:463 -msgid "Music Blocks is a collection of tools for exploring fundamental musical concepts in a fun way." -msgstr "మ్యూజిక్ బ్లాక్స్ అనేది అందుబాటుల దారికే ఆధారమైన సంగీత అవగాహనాలను అనుభవించడానికి సాధనాల సమూహము." +#: js/activity.js:2259 +#: js/blocks/DrumBlocks.js:75 +msgid "drum name" +msgstr "డ్రమ్ పేరు" -#: js/turtledefs.js:436 -msgid "Welcome to Turtle Blocks" -msgstr "టర్టిల్ బ్లాక్స్‌కి స్వాగతం" +#: js/activity.js:2262 +#: js/blocks/DrumBlocks.js:119 +msgid "effects name" +msgstr "ప్రభావాల పేరు" -#: js/turtledefs.js:438 -#: js/turtledefs.js:465 -#: js/turtledefs.js:774 -#: js/turtledefs.js:805 -msgid "The current version is" -msgstr "ప్రస్తుత సంస్కరణం" +#: js/activity.js:2265 +msgid "wrap mode" +msgstr "అంగడి మోడ్" -#: js/turtledefs.js:446 -#: js/turtledefs.js:483 -msgid "Click the run button to run the project in fast mode." -msgstr "ప్రాజెక్ట్‌ను వేగంగా అభ్యర్థించడానికి రన్ బటన్‌ను క్లిక్ చేయండి." +#: js/activity.js:2268 +msgid "load file" +msgstr "ఫైల్ లోడ్ చేయి" -#: js/turtledefs.js:452 -msgid "Stop the turtle." -msgstr "టర్టిల్‌ను ఆపండి." +#: js/activity.js:2435 +#: js/activity.js:5851 +msgid "This block is deprecated." +msgstr "ఈ బ్లాక్ అనుకరణాత్మకంగా చేర్చబడింది." -#: js/turtledefs.js:454 -#: js/turtledefs.js:491 -msgid "You can also type Alt-S to stop." -msgstr "మీరు ఆపడానికి Alt-S టైప్ చేసి కనుక రాను ఆపవచ్చు." +#: js/activity.js:2437 +#: js/activity.js:5853 +msgid "Block cannot be found." +msgstr "బ్లాక్ కనిపించడానికి అవసరం లేదు." -#: js/turtledefs.js:462 -#: js/help.js:333 -msgid "Welcome to Music Blocks" -msgstr "మ్యూజిక్ బ్లాక్స్‌కి స్వాగతం" +#: js/activity.js:2645 +msgid "Saving block artwork" +msgstr "బ్లాక్ ఆర్ట్‌వర్క్ నివేదిస్తోంది" -#: js/turtledefs.js:472 -#: js/help.js:334 -msgid "Meet Mr. Mouse!" -msgstr "మీట్ మిస్టర్ మౌస్!" +#: js/activity.js:2656 +msgid "Erase" +msgstr "తొలగించు" -#: js/turtledefs.js:473 -msgid "Mr Mouse is our Music Blocks conductor." -msgstr "మిస్టర్ మౌస్ మాసిక్ బ్లాక్స్ కండక్టర్." +#: js/activity.js:2683 +#: js/activity.js:2705 +msgid "Paste" +msgstr "అతికించు" -#: js/turtledefs.js:475 -msgid "Mr Mouse encourages you to explore Music Blocks." -msgstr "మిస్టర్ మౌస్ మీరు మ్యూజిక్ బ్లాక్స్‌ను అన్వేషించడానికి ఆహ్వానిస్తాడు." +#: js/activity.js:2687 +msgid "Save block help" +msgstr "బ్లాక్ సహాయాన్ని భద్రపరచు" -#: js/turtledefs.js:477 -msgid "Let us start our tour!" -msgstr "మా పర్యటనను ప్రారంభించోదాము!" +#: js/activity.js:2772 +msgid "Jumping to the bottom of the page." +msgstr "పేజీలోని కొనసాగిస్తోంది." -#: js/turtledefs.js:489 -msgid "Stop the music (and the mice)." -msgstr "సంగీతం మరియు మౌస్‌ను ఆపండి." +#: js/activity.js:2778 +msgid "Scrolling up." +msgstr "పైకి స్క్రోల్ చేస్తోంది." -#: js/turtledefs.js:499 -msgid "Record your project as video." -msgstr "మీ ప్రాజెక్ట్‌ను వీడియోగా రికార్డ్ చేయండి." +#: js/activity.js:2783 +msgid "Scrolling down." +msgstr "క్రిందకు స్క్రోల్ చేస్తోంది." -#: js/turtledefs.js:505 -msgid "Toggle Fullscreen mode." -msgstr "" +#: js/activity.js:2788 +msgid "Extracting block" +msgstr "బ్లాక్ నుండి ప్రత్యేకిస్తోంది." -#: js/turtledefs.js:511 -msgid "Initialize a new project." -msgstr "కొత్త ప్రాజెక్ట్‌ను ప్రారంభించండి." +#: js/activity.js:2796 +msgid "Moving block up." +msgstr "బ్లాక్ పైకి చెల్లిపోస్తోంది." -#: js/turtledefs.js:517 -msgid "You can also load projects from the file system." -msgstr "మీరు ఫైల్ వ్యవస్థను నుండి ప్రాజెక్ట్‌లను లోడ్ చేయవచ్చు." +#: js/activity.js:2817 +msgid "Moving block down." +msgstr "బ్లాక్ క్రిందకు చెల్లిపోస్తోంది." -#: js/turtledefs.js:522 -#: js/StringHelper.js:46 -msgid "Delete" -msgstr "తొలగించు" +#: js/activity.js:2838 +msgid "Moving block left." +msgstr "బ్లాక్ ఎడమకు చెల్లిపోస్తోంది." -#: js/turtledefs.js:523 -msgid "To delete a block, just right-click on it, then you will be able to see the delete option" -msgstr "" +#: js/activity.js:2855 +msgid "Moving block right." +msgstr "బ్లాక్ కుడికి చెల్లిపోస్తోంది." -#: js/turtledefs.js:528 -#: js/activity.js:2270 -#: js/LocalCard.js:31 -msgid "Copy" -msgstr "కాపీ" +#: js/activity.js:2870 +msgid "Jump to home position." +msgstr "హోమ్ స్థానానికి చెల్లిపోస్తోంది." -#: js/turtledefs.js:529 -msgid "To copy a block, just right-click on it, then you will be able to see the copy option" -msgstr "" +#: js/activity.js:2897 +msgid "Hide blocks" +msgstr "బ్లాక్‌లను దాచు" -#: js/turtledefs.js:535 -msgid "To extract a block, just right-click on it, then you will be able to see the extract option" -msgstr "" +#: js/activity.js:4500 +msgid "Click the run button to run the project." +msgstr "ప్రాజెక్ట్‌ను అమలు చేయడానికి రన్ బటన్‌ను క్లిక్ చేయండి." -#: js/turtledefs.js:542 -#: js/turtledefs.js:552 -#: js/turtledefs.js:573 -msgid "Save your project to a file." -msgstr "మీ ప్రాజెక్ట్‌ను ఫైల్‌లో భద్రపరచండి." +#: js/activity.js:5692 +msgid "Show/hide block" +msgstr "బ్లాక్ ను చూపు/దాచు" -#: js/turtledefs.js:549 -#: js/turtledefs.js:570 -msgid "save" -msgstr "భద్రపరచండి" +#: js/activity.js:5698 +msgid "Expand/collapse blocks" +msgstr "బ్లాక్‌లను విస్తరించు/కుడిచిపోయేందుకు" -#: js/turtledefs.js:556 -#: js/turtledefs.js:577 -msgid "Save graphics from your project to as SVG." -msgstr "" +#: js/activity.js:5976 +msgid "Could not parse JSON input." +msgstr "JSON ఇన్‌పుట్‌ను విశ్లేషించలేకపోయింది." -#: js/turtledefs.js:560 -#: js/turtledefs.js:581 -msgid "Save graphics from your project as PNG." -msgstr "మీ ప్రాజెక్ట్ ను SVG గా గ్రాఫిక్స్ భద్రపరచండి." +#: js/activity.js:6475 +#: js/activity.js:6580 +#: js/activity.js:6631 +msgid "Cannot load project from the file. Please check the file type." +msgstr "ఫైలు నుండి ప్రాజెక్ట్‌ను లోడ్ చేయలేకపోయింది. దయచేసి ఫైలు రకాన్ని తనిఖీ చేయండి." -#: js/turtledefs.js:564 -#: js/turtledefs.js:597 -msgid "Save block artwork as an SVG file." -msgstr "మీ బ్లాక్ ఆర్ట్‌వర్క్‌ను SVG ఫైల్ గా భద్రపరచండి." +#: js/activity.js:6917 +msgid "Invalid parameters" +msgstr "అమాయక పరామిటర్లు" -#: js/turtledefs.js:585 -msgid "Save audio from your project as WAV." -msgstr "మీ ప్రాజెక్ట్ ను WAV రూపంలో ఆడియోని భద్రపరచండి." +#: js/blocks.js:1212 +#: js/blocks.js:3444 +#: js/blocks.js:3834 +#: js/blocks.js:3865 +#: js/blocks.js:3914 +#: js/blocks.js:3949 +#: js/blocks.js:6586 +#: js/palette.js:509 +#: js/palette.js:638 +#: js/palette.js:1105 +#: js/blocks/BoxesBlocks.js:282 +#: js/blocks/BoxesBlocks.js:285 +#: js/blocks/BoxesBlocks.js:405 +#: js/blocks/BoxesBlocks.js:594 +msgid "box" +msgstr "పేటిక" -#: js/turtledefs.js:589 -msgid "Save your project to as an ABC file." -msgstr "మీ ప్రాజెక్ట్ ను ABC ఫైల్ గా భద్రపరచండి." +#: js/blocks.js:1713 +msgid "Consider breaking this stack into parts." +msgstr "ఈ స్టాక్‌ను భాగాలాగా విభాజించడానికి పరిగణించండి" -#: js/turtledefs.js:593 -msgid "Save your project to as a Lilypond file." -msgstr "మీ ప్రాజెక్ట్ ను Lilypond ఫైల్ గా భద్రపరచండి." +#: js/blocks.js:2472 +#: js/palette.js:653 +#: js/blocks/MediaBlocks.js:602 +msgid "open file" +msgstr "ఫైల్ తెరవండి" + +#: js/blocks.js:3247 +#: js/palette.js:574 +#: js/blocks/MediaBlocks.js:892 +#: js/blocks/MediaBlocks.js:963 +msgid "text" +msgstr "పాఠము" -#: js/turtledefs.js:604 -msgid "Load samples from server" -msgstr "సర్వర్ నుండి సేంపులను లోడ్ చేయండి." +#: js/blocks.js:3443 +#: js/palette.js:641 +#: js/palette.js:642 +#: js/blocks/BoxesBlocks.js:514 +msgid "store in box" +msgstr "" -#: js/turtledefs.js:605 -msgid "This button opens a viewer for loading example projects." -msgstr "ఈ బటన్ ఒక వ్యూయర్‌ను తెరవికొని ఉదాహరణ ప్రాజెక్టులను లోడ్ చేస్తుంది." +#: js/blocks.js:3448 +#: js/blocks.js:3888 +#: js/blocks.js:3923 +#: js/blocks.js:3958 +#: js/blocks.js:5862 +#: js/blocks.js:5883 +#: js/blocks/BoxesBlocks.js:772 +msgid "box1" +msgstr "మొదటి పెట్టె" -#: js/turtledefs.js:611 -msgid "Palette buttons" -msgstr "పాలెట్ బటన్లు" +#: js/blocks.js:3450 +#: js/blocks.js:3890 +#: js/blocks.js:3925 +#: js/blocks.js:3960 +#: js/blocks.js:5864 +#: js/blocks.js:5885 +#: js/blocks/BoxesBlocks.js:663 +msgid "box2" +msgstr "రెండవ పెట్టె" -#: js/turtledefs.js:612 -msgid "This toolbar contains the palette buttons including Rhythm Pitch Tone Action and more." -msgstr "ఈ టూల్‌బార్‌లో Rhythm, Pitch, Tone, Action, మరియు మరోవి కలిగిన పాలెట్ బటన్లు ఉన్నాయి." +#: js/blocks.js:4122 +#: js/palette.js:639 +#: js/palette.js:644 +#: js/palette.js:1041 +#: js/blocks/BoxesBlocks.js:591 +msgid "store in" +msgstr "దీనిలో దాచు" -#: js/turtledefs.js:614 -msgid "Click to show the palettes of blocks and drag blocks from the palettes onto the canvas to use them." -msgstr "బ్లాక్‌ల పాలెట్లను చూపించడానికి మరియు పాలెట్ నుండి బ్లాక్‌లను క్యాన్వాస్‌కు వదలండించడానికి వాడండి." +#: js/blocks.js:4122 +#: js/blocks/BoxesBlocks.js:595 +#: js/blocks/DictBlocks.js:215 +#: js/blocks/DictBlocks.js:289 +#: js/blocks/EnsembleBlocks.js:391 +#: js/blocks/EnsembleBlocks.js:402 +#: js/blocks/MediaBlocks.js:746 +#: js/blocks/PitchBlocks.js:656 +#: js/blocks/PitchBlocks.js:934 +#: js/blocks/PitchBlocks.js:1866 +#: js/blocks/ProgramBlocks.js:390 +#: js/blocks/ProgramBlocks.js:495 +#: js/blocks/ProgramBlocks.js:658 +#: js/blocks/ToneBlocks.js:1025 +msgid "name" +msgstr "పేరు" -#: js/turtledefs.js:620 -msgid "Cartesian/Polar" -msgstr "కార్టేషియన్/పోలార్" +#: js/blocks.js:4122 +#: js/blocks/BoxesBlocks.js:75 +#: js/blocks/BoxesBlocks.js:595 +#: js/blocks/DictBlocks.js:289 +#: js/blocks/DictBlocks.js:430 +#: js/blocks/HeapBlocks.js:544 +#: js/blocks/RhythmBlocks.js:1130 +msgid "value" +msgstr "విలువ" -#: js/turtledefs.js:621 -msgid "Show or hide a coordinate grid." -msgstr "ఒక కోఆర్డినేట్ గ్రిడ్‌ను చూపించాలి లేదా దాచాలి." +#: js/blocks.js:4465 +msgid "Forever loop detected inside a note value block. Unexpected things may happen." +msgstr "" -#: js/turtledefs.js:627 -msgid "Clear the screen and return the mice to their initial positions." -msgstr "స్క్రీన్‌ను తిరిగిపెట్టండి మరియు మొదటి స్థానాలకు మైస్‌ని తిరిగిపెట్టండి." +#: js/blocks.js:4988 +msgid "There is no block selected." +msgstr "ఎటువంటి విభాగం ఎంచుకోలేదు" -#: js/turtledefs.js:633 -msgid "Collapse the graphics window." -msgstr "గ్రాఫిక్స్ విండోను పొరగండి." +#: js/blocks.js:5091 +#: js/blocks/MediaBlocks.js:888 +msgid "show" +msgstr "చూపు" -#: js/turtledefs.js:638 -#: js/activity.js:4256 -#: js/activity.js:4256 -msgid "Home" -msgstr "హోమ్" +#: js/blocks.js:5094 +#: js/blocks/MediaBlocks.js:803 +#.TRANS: Avatar is the image used to determine the appearance of the mouse. +msgid "avatar" +msgstr "అవతార్" -#: js/turtledefs.js:639 -msgid "Return all blocks to the center of the screen." -msgstr "అన్ని బ్లాక్‌లను స్క్రీన్ మధ్యంలోకి తిరిగిపెట్టండి." +#: js/blocks.js:5097 +#: js/blocks/ToneBlocks.js:1010 +#: js/widgets/sampler.js:975 +#.TRANS: The sound sample that the user uploads. +msgid "sample" +msgstr "నమూనా" -#: js/turtledefs.js:644 -msgid "Show/hide blocks" -msgstr "బ్లాక్‌లను చూపుము/దాచుము" +#: js/lilypond.js:606 +msgid "brown rat" +msgstr "బ్రౌన్ ర్యాట్" -#: js/turtledefs.js:645 -msgid "Hide or show the blocks and the palettes." -msgstr "బ్లాక్‌లను మరియు పాలెట్‌లను దాచాలి లేదా చూపాలి." +#: js/lilypond.js:607 +msgid "mole" +msgstr "మోల్" -#: js/turtledefs.js:650 -msgid "Expand/collapse collapsable blocks" -msgstr "పెరగాలి/కుగాలి మాడిన బ్లాక్‌లను విస్తరించండి/మూసివేయండి" +#: js/lilypond.js:608 +msgid "chipmunk" +msgstr "చిప్మంక్" -#: js/turtledefs.js:651 -msgid "Expand or collapse start and action stacks." -msgstr "ప్రారంభం మరియు చర్యల స్టాక్‌లను విస్తరించండి లేదా మూసివేయండి." +#: js/lilypond.js:609 +msgid "red squirrel" +msgstr "ఎరువు ఎక్క" -#: js/turtledefs.js:658 -#: js/activity.js:4265 -msgid "Decrease block size" -msgstr "బ్లాక్‌ల పరిమాణాన్ని తగ్గించండి" +#: js/lilypond.js:610 +msgid "guinea pig" +msgstr "గినియా పిగ్" -#: js/turtledefs.js:659 -msgid "Decrease the size of the blocks." -msgstr "బ్లాక్‌ల పరిమాణాన్ని తగ్గించండి." +#: js/lilypond.js:611 +msgid "capybara" +msgstr "కాప్యాబారా" -#: js/turtledefs.js:664 -#: js/activity.js:4267 -msgid "Increase block size" -msgstr "బ్లాక్‌ల పరిమాణాన్ని పెంచుకోండి" +#: js/lilypond.js:612 +msgid "coypu" +msgstr "కోయిపు" -#: js/turtledefs.js:665 -msgid "Increase the size of the blocks." -msgstr "బ్లాక్‌ల పరిమాణాన్ని పెంచుకోండి." +#: js/lilypond.js:613 +msgid "black rat" +msgstr "బ్లాక్ ర్యాట్" -#: js/turtledefs.js:670 -msgid "Expand/collapse option toolbar" -msgstr "ఎంపిక టూల్‌బార్‌ను విస్తరించండి/మూసివేయండి" +#: js/lilypond.js:614 +msgid "grey squirrel" +msgstr "గ్రే ఎక్క" -#: js/turtledefs.js:671 -msgid "Click this button to expand or collapse the auxillary toolbar." -msgstr "" +#: js/lilypond.js:615 +msgid "flying squirrel" +msgstr "ఫ్లైంగ్ ఎక్క" -#: js/turtledefs.js:676 -msgid "Run slow" -msgstr "ప్రాజెక్ట్‌ను నిధానంగా పరికరించండి" +#: js/lilypond.js:616 +msgid "bat" +msgstr "బ్యాట్" -#: js/turtledefs.js:677 -msgid "Click to run the project in slow mode." -msgstr "ప్రాజెక్ట్‌ను నిధానంగా పరికరించడానికి నొక్కండి." +#: js/lilypond.js:749 +#: js/lilypond.js:913 +#: js/lilypond.js:951 +#: js/blocks/ActionBlocks.js:1256 +#: js/blocks/ExtrasBlocks.js:556 +msgid "start drum" +msgstr "డ్రమ్ ప్రారంభం" -#: js/turtledefs.js:683 -msgid "Click to run the project step by step." -msgstr "ప్రాజెక్ట్‌ను పటికి పటికి పరికరించడానికి నొక్కండి." +#: js/logo.js:61 +msgid "Not a valid pitch name" +msgstr "చెల్లని పిచ్ పేరు కాదు" -#: js/turtledefs.js:690 -msgid "Display statistics about your Music project." -msgstr "మీ సంగీత ప్రాజెక్ట్‌గా సంఖ్యలను చూపించండి." +#: js/logo.js:507 +#: js/blocks/ProgramBlocks.js:258 +#: js/blocks/ProgramBlocks.js:427 +msgid "You must select a file." +msgstr "మీరు ఫైల్ ఎంచుకోవాలి" -#: js/turtledefs.js:697 -msgid "Delete a selected plugin." -msgstr "ఎంపిక చేసిన ప్లగిన్‌ని తొలగించండి." +#: js/logo.js:1696 +msgid "Playback is ready." +msgstr "ప్లేబ్యాక్ సిద్ధం" -#: js/turtledefs.js:704 -msgid "Enable scrolling" -msgstr "మీరు క్యాన్వాస్‌లో బ్లాక్‌లను స్క్రోల్ చేసుకోవచ్చు." +#: js/macros.js:711 +#: js/utils/musicutils.js:1162 +#: js/utils/synthutils.js:202 +#.TRANS: animal sound effect +msgid "duck" +msgstr "డక్" -#: js/turtledefs.js:705 -msgid "You can scroll the blocks on the canvas." -msgstr "మీరు క్యాన్వాస్‌లో బ్లాక్‌లను స్క్రోల్ చేసుకోవచ్చు." +#: js/notation.js:353 +msgid "Lilypond cannot process pickup of " +msgstr "Lilypondకు pickup ప్రాసెస్ చేయబడదు " -#: js/turtledefs.js:714 -msgid "Wrap Turtle" -msgstr "టర్టిల్ నుండి గుర్తించండి" +#: js/palette.js:571 +msgid "grid" +msgstr "గ్రిడ్" -#: js/turtledefs.js:715 -msgid "Turn Turtle wrapping On or Off." -msgstr "టర్టిల్ గుర్తించిన స్థితిని ఎటువంటి చేయండి లేదా ఆఫ్ చేయండి." +#: js/palette.js:580 +msgid "effect" +msgstr "ప్రభావం" -#: js/turtledefs.js:725 -msgid "Restore blocks from the trash." -msgstr "బ్లాక్‌లను ట్రాషును నుండి పునఃప్రారంభించండి." +#: js/palette.js:586 +msgid "sargam" +msgstr "సర్గమ్" -#: js/turtledefs.js:732 -msgid "Switch mode" -msgstr "మోడ్ మార్చండి" +#: js/palette.js:601 +#: js/blocks/PitchBlocks.js:1209 +msgid "custom pitch" +msgstr "అనుకూల శ్రుతి" -#: js/turtledefs.js:733 -msgid "Switch between beginner and advance modes." -msgstr "ప్రారంభ మరియు ఆధారాభావ మోడ్‌లలో స్విచ్ చేయండి." +#: js/palette.js:609 +msgid "accidental" +msgstr " అక్కిడెంటల్" -#: js/turtledefs.js:739 -msgid "Select your language preference." -msgstr "మీ భాషా ఇచ్చేందుకు ఎంపిక చేయండి." +#: js/palette.js:633 +#: js/blocks/PitchBlocks.js:405 +msgid "pitch converter" +msgstr "శ్రుతి రూపకారి " -#: js/turtledefs.js:745 -msgid "Keyboard shortcuts" -msgstr "కీబోర్డ్ శార్ట్‌కట్లు" +#: js/piemenus.js:200 +#: js/utils/musicutils.js:1187 +#: js/utils/musicutils.js:1207 +#: js/widgets/musickeyboard.js:2341 +#: js/widgets/phrasemaker.js:1908 +#: js/widgets/sampler.js:810 +#.TRANS: double sharp is a music term related to pitch +msgid "double sharp" +msgstr "రెండు శార్పు" -#: js/turtledefs.js:746 -msgid "You can type d to create a do block and r to create a re block etc." -msgstr "మీరు d నొక్కి do బ్లాక్ రాయవచ్చు, మరియు r నొక్కి re బ్లాక్ రాయవచ్చు మరియు ఇతరులను చేసుకోవచ్చు." +#: js/piemenus.js:201 +#: js/utils/musicutils.js:1185 +#: js/utils/musicutils.js:1208 +#: js/blocks/PitchBlocks.js:1539 +#: js/turtleactions/PitchActions.js:323 +#: js/widgets/musickeyboard.js:2342 +#: js/widgets/phrasemaker.js:1909 +#: js/widgets/sampler.js:811 +#.TRANS: sharp is a music term related to pitch +#.TRANS: sharp is a half-step up in pitch +msgid "sharp" +msgstr "శార్ప్" -#: js/turtledefs.js:753 -msgid "Show these messages." -msgstr "ఈ సందేశాలను చూపించండి." +#: js/piemenus.js:202 +#: js/utils/musicutils.js:1183 +#: js/utils/musicutils.js:1209 +#: js/widgets/musickeyboard.js:2343 +#: js/widgets/phrasemaker.js:1910 +#: js/widgets/sampler.js:812 +#.TRANS: natural is a music term related to pitch +msgid "natural" +msgstr "స్వాభావిక" -#: js/turtledefs.js:759 -#: js/turtledefs.js:790 -#: js/help.js:335 -msgid "Guide" -msgstr "మార్గదర్శిక" +#: js/piemenus.js:203 +#: js/utils/musicutils.js:1181 +#: js/utils/musicutils.js:1210 +#: js/blocks/PitchBlocks.js:1498 +#: js/turtleactions/PitchActions.js:326 +#: js/widgets/musickeyboard.js:2344 +#: js/widgets/phrasemaker.js:1911 +#: js/widgets/sampler.js:813 +#.TRANS: flat is a music term related to pitch +#.TRANS: flat is a half-step down in pitch +msgid "flat" +msgstr "అలవు తగించు" -#: js/turtledefs.js:760 -msgid "A detailed guide to Turtle Blocks is available." -msgstr "టర్టిల్ బ్లాక్‌లకు సంబంధించిన వివరాల గుర్తింపు అంగీకరించబడింది." +#: js/piemenus.js:204 +#: js/utils/musicutils.js:1179 +#: js/utils/musicutils.js:1211 +#: js/widgets/musickeyboard.js:2345 +#: js/widgets/phrasemaker.js:1912 +#: js/widgets/sampler.js:814 +#.TRANS: double flat is a music term related to pitch +msgid "double flat" +msgstr "రెండు అలవు తగించు" -#: js/turtledefs.js:764 -msgid "Turtle Blocks Guide" -msgstr "టర్టిల్ బ్లాక్‌ల మార్గదర్శిక" +#: js/piemenus.js:2864 +#: js/utils/musicutils.js:1006 +#: js/blocks/PitchBlocks.js:1385 +#.TRANS: unison is a music term related to intervals +#.TRANS: unison means the note is the same as the current note +msgid "unison" +msgstr "ఏకాంతము" -#: js/turtledefs.js:767 -#: js/turtledefs.js:798 -#: js/help.js:336 -msgid "About" -msgstr "గురించి" +#: js/piemenus.js:3018 +#: js/piemenus.js:3091 +#: js/utils/musicutils.js:1014 +#: js/utils/musicutils.js:1189 +#: js/utils/musicutils.js:1326 +#.TRANS: major is a music term related to intervals and mode +msgid "major" +msgstr "ప్రధాన" -#: js/turtledefs.js:768 -msgid "Turtle Blocks is an open source collection of tools for exploring musical concepts." -msgstr "టర్టిల్ బ్లాక్‌లు సంగీత సంవేదనాలను అన్వేషించడానికి ఉపకరణాల ఒక సమూహం." +#: js/piemenus.js:3018 +#: js/piemenus.js:3091 +#: js/utils/musicutils.js:1032 +#.TRANS: modal scale for music +msgid "ionian" +msgstr "ఐయోనియన్" -#: js/turtledefs.js:770 -msgid "A full list of contributors can be found in the Turtle Blocks GitHub repository." -msgstr "కొన్నిసార్లు టర్టిల్ బ్లాక్‌లకు సంబంధించిన పూర్ణ యొక్క యొక్కటి టర్టిల్ బ్లాక్‌లు GitHub సంగ్రహణలో కనబడబడింది." +#: js/piemenus.js:3020 +#: js/piemenus.js:3095 +#: js/utils/musicutils.js:1012 +#: js/utils/musicutils.js:1190 +#: js/utils/musicutils.js:1323 +#.TRANS: minor is a music term related to intervals and mode +msgid "minor" +msgstr "క్షుద్ర" -#: js/turtledefs.js:772 -msgid "Turtle Blocks is licensed under the AGPL." -msgstr "టర్టిల్ బ్లాక్‌లు AGPL అడిగేయి." +#: js/piemenus.js:3020 +#: js/piemenus.js:3095 +#: js/utils/musicutils.js:1042 +#.TRANS: modal scale for music +msgid "aeolian" +msgstr "ఏఓలియన్" -#: js/turtledefs.js:780 -msgid "Turtle Blocks GitHub repository" -msgstr "టర్టిల్ బ్లాక్‌ల జిట్‌హబ్ రిపోజిటరీ" +#: js/piemenus.js:3410 +msgid "Duplicate" +msgstr "నకిలీ" -#: js/turtledefs.js:783 -#: js/turtledefs.js:814 -#: js/help.js:337 -#: js/help.js:359 -msgid "Congratulations." -msgstr "అభినందనలు." +#: js/piemenus.js:3412 +msgid "Move to trash" +msgstr "కసినికి జరిపేయండి" -#: js/turtledefs.js:784 -msgid "You have finished the tour. Please enjoy Turtle Blocks!" -msgstr "మీ పర్యాటనను పూర్తి చేసారు. దయచేసి టర్టిల్ బ్లాక్‌లను ఆనందించండి!" +#: js/piemenus.js:3413 +#: js/widgets/timbre.js:968 +#: planet/js/StringHelper.js:69 +msgid "Close" +msgstr "మూసివేయి" -#: js/turtledefs.js:791 -msgid "A detailed guide to Music Blocks is available." -msgstr "మ్యూజిక్ బ్లాక్‌ల సవిస్తోన సవిస్తారు." +#: js/piemenus.js:3419 +msgid "Save stack" +msgstr "సేవ్ స్ట్యాక్" -#: js/turtledefs.js:795 -#: js/SaveInterface.js:76 -msgid "Music Blocks Guide" -msgstr "మ్యూజిక్ బ్లాక్‌ల మార్గదర్శిక" +#: js/piemenus.js:3449 +msgid "In order to copy a sample, you must reload the widget, import the sample again, and export it." +msgstr "" -#: js/turtledefs.js:799 -msgid "Music Blocks is an open source collection of tools for exploring musical concepts." -msgstr "మ్యూజిక్ బ్లాక్‌లు సంగీత అవగాహన సాధించడానికి ఒక స్వతంత్ర సోఫ్ట్‌వేర్ సంగ్రహం." +#: js/piemenus.js:3812 +msgid "You have chosen key " +msgstr "మీరు ఎంచుకున్నారు కీ" -#: js/turtledefs.js:801 -msgid "A full list of contributors can be found in the Music Blocks GitHub repository." -msgstr "మ్యూజిక్ బ్లాక్‌ల జిట్‌హబ్ రిపోజిటరీలో పూర్తి యొక్క యాచకుల జాబితా కనిపిస్తుంది." +#: js/piemenus.js:3816 +msgid " for your pitch preview." +msgstr "మీ పిచ్ ప్రివ్యూ కోసం" -#: js/turtledefs.js:803 -msgid "Music Blocks is licensed under the AGPL." -msgstr "మ్యూజిక్ బ్లాక్‌లు AGPL అడిగేయి." +#: js/turtle-singer.js:1363 +#.TRANS: partials are weighted components in a harmonic series +msgid "You must have at least one Partial block inside of a Weighted-partial block" +msgstr "మీరు కంటే కడిగినంత భారము-కంటే-భాగాలు బ్లాక్ లో కనుగొంటేందో ఉండాలి" -#: js/turtledefs.js:811 -msgid "Music Blocks GitHub repository" -msgstr "మ్యూజిక్ బ్లాక్‌ల జిట్‌హబ్ రిపోజిటరీ" +#: js/turtle-singer.js:2077 +msgid "synth cannot play chords." +msgstr "సింథ్ కార్డులను ప్లే చేయలేకపోవచ్చు." -#: js/turtledefs.js:815 -msgid "You have finished the tour. Please enjoy Music Blocks!" -msgstr "మీ పర్యాటనను పూర్తి చేసారు. దయచేసి మ్యూజిక్ బ్లాక్‌లను ఆనందించండి!" +#: js/utils/musicutils.js:505 +#: js/utils/musicutils.js:645 +#: js/widgets/pitchdrummatrix.js:228 +#: js/widgets/musickeyboard.js:2885 +msgid "rest" +msgstr "విశ్రాంతి" -#: js/activity.js:369 -msgid "Search for blocks" -msgstr "బ్లాక్‌లను శోధించండి" +#: js/utils/musicutils.js:689 +msgid "Perfect unison" +msgstr "" -#: js/activity.js:1145 -msgid "Refresh your browser to change to advanced mode." -msgstr "ముందుగానే మోడ్ మార్చడానికి మీ బ్రౌజర్‌ను రిఫ్రెష్ చేయండి." +#: js/utils/musicutils.js:689 +msgid "Diminished second" +msgstr "" -#: js/activity.js:1150 -msgid "Refresh your browser to change to beginner mode." -msgstr "మొదటి విద్యార్థి మోడ్‌కు మార్చడానికి మీ బ్రౌజర్‌ను రిఫ్రెష్ చేయండి." +#: js/utils/musicutils.js:690 +msgid "Minor second" +msgstr "" -#: js/activity.js:1184 -msgid "Catching mice" -msgstr "ఎలుకులను పట్టుకోవడం" +#: js/utils/musicutils.js:690 +msgid "Augmented unison" +msgstr "" -#: js/activity.js:1185 -msgid "Cleaning the instruments" -msgstr "యంత్రాలను శుభ్రపరచడం" +#: js/utils/musicutils.js:691 +msgid "Major second" +msgstr "" -#: js/activity.js:1186 -msgid "Testing key pieces" -msgstr "కీ భాగాలను పరీక్షించడం" +#: js/utils/musicutils.js:691 +msgid "Diminished third" +msgstr "" -#: js/activity.js:1187 -msgid "Sight-reading" -msgstr "దృష్టికావలి" +#: js/utils/musicutils.js:692 +msgid "Minor third" +msgstr "" -#: js/activity.js:1188 -msgid "Combining math and music" -msgstr "గణితం మరియు సంగీతంను కలిపివచ్చడం" +#: js/utils/musicutils.js:692 +msgid "Augmented second" +msgstr "" -#: js/activity.js:1189 -msgid "Generating more blocks" -msgstr "మరిన్ని బ్లాక్‌లను ఉత్పత్తించడం" +#: js/utils/musicutils.js:693 +msgid "Major third" +msgstr "" -#: js/activity.js:1190 -msgid "Do Re Mi Fa Sol La Ti Do" -msgstr "డో రే మి ఫా సోల్ లా టి డో" +#: js/utils/musicutils.js:693 +msgid "Diminished fourth" +msgstr "" -#: js/activity.js:1191 -msgid "Tuning string instruments" -msgstr "కట్టుగాయలను కలిసివేయడం" +#: js/utils/musicutils.js:694 +msgid "Perfect fourth" +msgstr "" -#: js/activity.js:1192 -msgid "Pressing random keys" -msgstr "యాదృచ్ఛికంగా కీలను నొక్కడం" +#: js/utils/musicutils.js:694 +msgid "Augmented third" +msgstr "" -#: js/activity.js:1351 -msgid "plugins will be removed upon restart." -msgstr "ప్లగిన్‌లు పునఃప్రారంభించాక తొలగించబడతాయి." +#: js/utils/musicutils.js:695 +msgid "Diminished fifth" +msgstr "" -#: js/activity.js:1360 -msgid "show Cartesian" -msgstr "కార్టీషియన్ చూపు" +#: js/utils/musicutils.js:695 +msgid "Augmented fourth" +msgstr "" -#: js/activity.js:1842 -msgid "output tools" -msgstr "ఔట్‌పుట్ సాధనాలు" +#: js/utils/musicutils.js:696 +msgid "Perfect fifth" +msgstr "" -#: js/activity.js:1845 -msgid "custom note" -msgstr "విశేష గానం" +#: js/utils/musicutils.js:696 +msgid "Diminished sixth" +msgstr "" -#: js/activity.js:1848 -msgid "accidental name" -msgstr "అక్సిడెంటల్ పేరు" +#: js/utils/musicutils.js:697 +msgid "Minor sixth" +msgstr "" -#: js/activity.js:1851 -#: js/PitchBlocks.js:855 -msgid "east indian solfege" -msgstr "తూర్పు భారత సొల్ఫేజ్" +#: js/utils/musicutils.js:697 +msgid "Augmented fifth" +msgstr "" -#: js/activity.js:1854 -#: js/PitchBlocks.js:869 -msgid "note name" -msgstr "గానం పేరు" +#: js/utils/musicutils.js:698 +msgid "Major sixth" +msgstr "" -#: js/activity.js:1857 -#: js/IntervalsBlocks.js:94 -msgid "temperament name" -msgstr "ముఖ్యమైన పేరు" +#: js/utils/musicutils.js:698 +msgid "Diminished seventh" +msgstr "" -#: js/activity.js:1863 -msgid "chord name" -msgstr "కార్డు పేరు" +#: js/utils/musicutils.js:699 +msgid "Minor seventh" +msgstr "" -#: js/activity.js:1869 -msgid "filter type" -msgstr "ఫిల్టర్ రకం" +#: js/utils/musicutils.js:699 +msgid "Augmented sixth" +msgstr "" -#: js/activity.js:1872 -msgid "oscillator type" -msgstr "ఆస్కిలేటర్ రకం" +#: js/utils/musicutils.js:700 +msgid "Major seventh" +msgstr "" -#: js/activity.js:1878 -#: js/DrumBlocks.js:32 -msgid "noise name" -msgstr "సంతోషం పేరు" +#: js/utils/musicutils.js:700 +msgid "Diminished octave" +msgstr "" -#: js/activity.js:1881 -#: js/DrumBlocks.js:75 -msgid "drum name" -msgstr "డ్రమ్ పేరు" +#: js/utils/musicutils.js:701 +msgid "Perfect octave" +msgstr "" -#: js/activity.js:1884 -#: js/DrumBlocks.js:119 -msgid "effects name" -msgstr "ప్రభావాల పేరు" +#: js/utils/musicutils.js:701 +msgid "Augmented seventh" +msgstr "" -#: js/activity.js:1887 -msgid "wrap mode" -msgstr "అంగడి మోడ్" +#: js/utils/musicutils.js:702 +msgid "Minor ninth" +msgstr "" -#: js/activity.js:1890 -msgid "load file" -msgstr "ఫైల్ లోడ్ చేయి" +#: js/utils/musicutils.js:702 +msgid "Augmented octave" +msgstr "" -#: js/activity.js:2056 -msgid "This block is deprecated." -msgstr "ఈ బ్లాక్ అనుకరణాత్మకంగా చేర్చబడింది." +#: js/utils/musicutils.js:703 +msgid "Major ninth" +msgstr "" -#: js/activity.js:2058 -msgid "Block cannot be found." -msgstr "బ్లాక్ కనిపించడానికి అవసరం లేదు." +#: js/utils/musicutils.js:703 +msgid "Diminished tenth" +msgstr "" -#: js/activity.js:2266 -msgid "Saving block artwork" -msgstr "బ్లాక్ ఆర్ట్‌వర్క్ నివేదిస్తోంది" +#: js/utils/musicutils.js:704 +msgid "Minor tenth" +msgstr "" -#: js/activity.js:2277 -msgid "Erase" -msgstr "తొలగించు" +#: js/utils/musicutils.js:704 +msgid "Augmented ninth" +msgstr "" -#: js/activity.js:2301 -#: js/activity.js:2323 -msgid "Paste" -msgstr "అతికించు" +#: js/utils/musicutils.js:705 +msgid "Major tenth" +msgstr "" -#: js/activity.js:2305 -msgid "Save block help" -msgstr "బ్లాక్ సహాయాన్ని భద్రపరచు" +#: js/utils/musicutils.js:705 +msgid "Diminished eleventh" +msgstr "" -#: js/activity.js:2390 -msgid "Jumping to the bottom of the page." -msgstr "పేజీలోని కొనసాగిస్తోంది." +#: js/utils/musicutils.js:706 +msgid "Perfect eleventh" +msgstr "" -#: js/activity.js:2396 -msgid "Scrolling up." -msgstr "పైకి స్క్రోల్ చేస్తోంది." +#: js/utils/musicutils.js:706 +msgid "Augmented tenth" +msgstr "" -#: js/activity.js:2401 -msgid "Scrolling down." -msgstr "క్రిందకు స్క్రోల్ చేస్తోంది." +#: js/utils/musicutils.js:707 +msgid "Diminished twelfth" +msgstr "" -#: js/activity.js:2406 -msgid "Extracting block" -msgstr "బ్లాక్ నుండి ప్రత్యేకిస్తోంది." +#: js/utils/musicutils.js:707 +msgid "Augmented eleventh" +msgstr "" -#: js/activity.js:2414 -msgid "Moving block up." -msgstr "బ్లాక్ పైకి చెల్లిపోస్తోంది." +#: js/utils/musicutils.js:708 +msgid "Perfect twelfth" +msgstr "" -#: js/activity.js:2435 -msgid "Moving block down." -msgstr "బ్లాక్ క్రిందకు చెల్లిపోస్తోంది." +#: js/utils/musicutils.js:708 +msgid "Diminished thirteenth" +msgstr "" -#: js/activity.js:2456 -msgid "Moving block left." -msgstr "బ్లాక్ ఎడమకు చెల్లిపోస్తోంది." +#: js/utils/musicutils.js:709 +msgid "Minor thirteenth" +msgstr "" -#: js/activity.js:2473 -msgid "Moving block right." -msgstr "బ్లాక్ కుడికి చెల్లిపోస్తోంది." +#: js/utils/musicutils.js:709 +msgid "Augmented fifth, plus an octave" +msgstr "" -#: js/activity.js:2488 -msgid "Jump to home position." -msgstr "హోమ్ స్థానానికి చెల్లిపోస్తోంది." +#: js/utils/musicutils.js:710 +msgid "Major thirteenth" +msgstr "" -#: js/activity.js:2515 -msgid "Hide blocks" -msgstr "బ్లాక్‌లను దాచు" +#: js/utils/musicutils.js:710 +msgid "Diminished seventh, plus an octave" +msgstr "" -#: js/activity.js:3389 -msgid "Click the run button to run the project." -msgstr "ప్రాజెక్ట్‌ను అమలు చేయడానికి రన్ బటన్‌ను క్లిక్ చేయండి." +#: js/utils/musicutils.js:838 +#.TRANS: ordinal number. Please keep exactly one space between each number. +msgid "1st 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th" +msgstr "1వ 2వ 3వ 4వ 5వ 6వ 7వ 8వ 9వ 10వ 11వ 12వ" -#: js/activity.js:3456 -#: js/SaveInterface.js:131 -#: js/SaveInterface.js:204 -#: js/SaveInterface.js:262 -#: js/SaveInterface.js:389 -#: js/SaveInterface.js:417 -#: js/ProjectStorage.js:27 -#: js/GlobalPlanet.js:467 -#: js/GlobalPlanet.js:469 -#: js/GlobalPlanet.js:495 -#.TRANS: default project title when saving as Lilypond -msgid "My Project" -msgstr "నా ప్రాజెక్ట్" +#: js/utils/musicutils.js:1008 +#: js/utils/musicutils.js:1191 +#: js/utils/musicutils.js:1325 +#.TRANS: augmented is a music term related to intervals +msgid "augmented" +msgstr "అభ్యంగం" -#: js/activity.js:4261 -msgid "Show/hide block" -msgstr "బ్లాక్ ను చూపు/దాచు" +#: js/utils/musicutils.js:1010 +#: js/utils/musicutils.js:1192 +#: js/utils/musicutils.js:1324 +#.TRANS: diminished is a music term related to intervals and mode +msgid "diminished" +msgstr "తగినిపడించబడింది" -#: js/activity.js:4263 -msgid "Expand/collapse blocks" -msgstr "బ్లాక్‌లను విస్తరించు/కుడిచిపోయేందుకు" +#: js/utils/musicutils.js:1016 +#: js/utils/musicutils.js:1322 +#: js/blocks/IntervalsBlocks.js:649 +#: js/turtleactions/IntervalsActions.js:120 +#: js/turtleactions/IntervalsActions.js:124 +#.TRANS: perfect is a music term related to intervals +msgid "perfect" +msgstr "పరిపూర్ణ" -#: js/activity.js:4381 -msgid "Could not parse JSON input." -msgstr "JSON ఇన్‌పుట్‌ను విశ్లేషించలేకపోయింది." +#: js/utils/musicutils.js:1018 +#.TRANS: twelve semi-tone scale for music +msgid "chromatic" +msgstr "క్రోమాటిక్" -#: js/activity.js:4684 -#: js/activity.js:4771 -#: js/activity.js:4821 -msgid "Cannot load project from the file. Please check the file type." -msgstr "ఫైలు నుండి ప్రాజెక్ట్‌ను లోడ్ చేయలేకపోయింది. దయచేసి ఫైలు రకాన్ని తనిఖీ చేయండి." +#: js/utils/musicutils.js:1019 +msgid "algerian" +msgstr "అల్జీరియన్" -#: js/activity.js:5051 -msgid "Invalid parameters" -msgstr "అమాయక పరామిటర్లు" +#: js/utils/musicutils.js:1020 +msgid "spanish" +msgstr "స్పానిష్" -#: js/turtle-singer.js:1334 -#.TRANS: partials are weighted components in a harmonic series -msgid "You must have at least one Partial block inside of a Weighted-partial block" -msgstr "మీరు కంటే కడిగినంత భారము-కంటే-భాగాలు బ్లాక్ లో కనుగొంటేందో ఉండాలి" +#: js/utils/musicutils.js:1022 +#.TRANS: modal scale in music +msgid "octatonic" +msgstr "ఆక్టాటోనిక్" -#: js/turtle-singer.js:2048 -msgid "synth cannot play chords." -msgstr "సింథ్ కార్డులను ప్లే చేయలేకపోవచ్చు." +#: js/utils/musicutils.js:1024 +#.TRANS: harmonic major scale in music +msgid "harmonic major" +msgstr "హార్మోనిక్ మేజర్" -#: js/lilypond.js:614 -msgid "brown rat" -msgstr "బ్రౌన్ ర్యాట్" +#: js/utils/musicutils.js:1026 +#.TRANS: natural minor scales in music +msgid "natural minor" +msgstr "న్యాచరల్ మైనర్" -#: js/lilypond.js:615 -msgid "mole" -msgstr "మోల్" +#: js/utils/musicutils.js:1028 +#.TRANS: harmonic minor scale in music +msgid "harmonic minor" +msgstr "హార్మోనిక్ మైనర్" + +#: js/utils/musicutils.js:1030 +#.TRANS: melodic minor scale in music +msgid "melodic minor" +msgstr "మెలోడిక్ మైనర్" -#: js/lilypond.js:616 -msgid "chipmunk" -msgstr "చిప్మంక్" +#: js/utils/musicutils.js:1034 +#.TRANS: modal scale for music +msgid "dorian" +msgstr "డోరియన్" -#: js/lilypond.js:617 -msgid "red squirrel" -msgstr "ఎరువు ఎక్క" +#: js/utils/musicutils.js:1036 +#.TRANS: modal scale for music +msgid "phrygian" +msgstr "ఫ్రిజియన్" -#: js/lilypond.js:618 -msgid "guinea pig" -msgstr "గినియా పిగ్" +#: js/utils/musicutils.js:1038 +#.TRANS: modal scale for music +msgid "lydian" +msgstr "లిడియన్" -#: js/lilypond.js:619 -msgid "capybara" -msgstr "కాప్యాబారా" +#: js/utils/musicutils.js:1040 +#.TRANS: modal scale for music +msgid "mixolydian" +msgstr "మిక్సొలిడియన్" -#: js/lilypond.js:620 -msgid "coypu" -msgstr "కోయిపు" +#: js/utils/musicutils.js:1044 +#.TRANS: modal scale for music +msgid "locrian" +msgstr "లొక్రియన్" -#: js/lilypond.js:621 -msgid "black rat" -msgstr "బ్లాక్ ర్యాట్" +#: js/utils/musicutils.js:1046 +#.TRANS: minor jazz scale for music +msgid "jazz minor" +msgstr "జాజ్ మైనర్" -#: js/lilypond.js:622 -msgid "grey squirrel" -msgstr "గ్రే ఎక్క" +#: js/utils/musicutils.js:1048 +#.TRANS: bebop scale for music +msgid "bebop" +msgstr "బిబొప్" -#: js/lilypond.js:623 -msgid "flying squirrel" -msgstr "ఫ్లైంగ్ ఎక్క" +#: js/utils/musicutils.js:1049 +msgid "arabic" +msgstr "అరబిక్" -#: js/lilypond.js:624 -msgid "bat" -msgstr "బ్యాట్" +#: js/utils/musicutils.js:1050 +msgid "byzantine" +msgstr "బిజంటీన్" -#: js/lilypond.js:757 -#: js/lilypond.js:921 -#: js/lilypond.js:959 -#: js/ActionBlocks.js:1256 -#: js/ExtrasBlocks.js:553 -msgid "start drum" -msgstr "డ్రమ్ ప్రారంభం" +#: js/utils/musicutils.js:1052 +#.TRANS: musical scale for music by Verdi +msgid "enigmatic" +msgstr "ఎనిగ్మాటిక్" -#: js/SaveInterface.js:59 -#: js/SaveInterface.js:61 -#: js/SaveInterface.js:93 -msgid "Music Blocks Project" -msgstr "మ్యూజిక్ బ్లాక్స్ ప్రాజెక్ట్" +#: js/utils/musicutils.js:1053 +msgid "ethiopian" +msgstr "ఇథియోపియన్" -#: js/SaveInterface.js:63 -msgid "This project was created in Music Blocks" -msgstr "ఈ ప్రాజెక్టును మ్యూజిక్ బ్లాక్స్‌లో సృష్టించబడింది" +#: js/utils/musicutils.js:1055 +#.TRANS: Ethiopic scale for music +msgid "geez" +msgstr "గీజ్" -#: js/SaveInterface.js:67 -msgid "Music Blocks is a Free/Libre Software application." -msgstr "మ్యూజిక్ బ్లాక్స్ ఉచిత/స్వతంత్ర సాఫ్ట్‌వేర్ అప్లికేషన్." +#: js/utils/musicutils.js:1056 +msgid "hindu" +msgstr "హిందూ" -#: js/SaveInterface.js:69 -msgid "The source code can be accessed at" -msgstr "మూల కోడ్‌ను అంగీకరించవచ్చు" +#: js/utils/musicutils.js:1057 +msgid "hungarian" +msgstr "హంగేరియన్" -#: js/SaveInterface.js:72 -msgid "For more information, please consult the" -msgstr "మరికొందరు సమాచారానికి, దయచేసి అనుసరించండి" +#: js/utils/musicutils.js:1059 +#.TRANS: minor Romanian scale for music +msgid "romanian minor" +msgstr "రొమానియన్ మైనర్" -#: js/SaveInterface.js:83 -msgid "Alternatively, open the file in Music Blocks using the Load project button." -msgstr "లేదా, ప్రాజెక్ట్ బటన్ నొక్కి Music Blocksలో ఫైల్‌ను తెరవండంలో." +#: js/utils/musicutils.js:1060 +msgid "spanish gypsy" +msgstr "స్పానిష్ జిప్సి" -#: js/SaveInterface.js:85 -msgid "Project Code" -msgstr "ప్రాజెక్ట్ కోడ్" +#: js/utils/musicutils.js:1062 +#.TRANS: musical scale for Mid-Eastern music +msgid "maqam" +msgstr "మాకం" -#: js/SaveInterface.js:87 -msgid "This code stores data about the blocks in a project." -msgstr "ఈ కోడ్ ప్రాజెక్ట్లో ఉన్న బ్లాక్‌ల గురించి డేటాను భద్రపరచిస్తుంది." +#: js/utils/musicutils.js:1064 +#.TRANS: minor blues scale for music +msgid "minor blues" +msgstr "మైనర్ బ్లూస్" -#: js/SaveInterface.js:89 -msgid "Show" -msgstr "చూపించు" +#: js/utils/musicutils.js:1066 +#.TRANS: major blues scale for music +msgid "major blues" +msgstr "మేజర్ బ్లూస్" -#: js/SaveInterface.js:91 -msgid "Hide" -msgstr "దాచు" +#: js/utils/musicutils.js:1067 +msgid "whole tone" +msgstr "హోల్ టోన్" -#: js/SaveInterface.js:197 -#: js/SaveInterface.js:58 -msgid "No description provided" -msgstr "వివరణ అంగీకృతం కాదు" +#: js/utils/musicutils.js:1069 +#.TRANS: pentatonic is a general term that means "five note scale". This scale is typically known as "minor pentatonic" +msgid "minor pentatonic" +msgstr "మైనర్ పెంటటోనిక్" -#: js/SaveInterface.js:332 -msgid "Your recording is in progress." -msgstr "మీ రికార్డింగ్ ప్రగతిలో ఉంది." +#: js/utils/musicutils.js:1071 +#.TRANS: pentatonic is a general term that means "five note scale". This scale is typically known as "major pentatonic" +msgid "major pentatonic" +msgstr "మేజర్ పెంటటోనిక్" -#: js/SaveInterface.js:401 -#.TRANS: File name prompt for save as Lilypond -msgid "File name" -msgstr "ఫైల్ పేరు" +#: js/utils/musicutils.js:1072 +msgid "chinese" +msgstr "చైనీస్" -#: js/SaveInterface.js:403 -#: js/StringHelper.js:39 -#.TRANS: Project title prompt for save as Lilypond -msgid "Project title" -msgstr "ప్రాజెక్ట్ టైటిల్" +#: js/utils/musicutils.js:1073 +msgid "egyptian" +msgstr "ఎజిప్షియన్" -#: js/SaveInterface.js:405 -#.TRANS: Project title prompt for save as Lilypond -msgid "Project author" -msgstr "ప్రాజెక్ట్ రచయిత" +#: js/utils/musicutils.js:1075 +#.TRANS: https://en.wikipedia.org/wiki/Hirajoshi_scale NOTE: There are three different versions of this scale +msgid "hirajoshi" +msgstr "హిరజోషి" -#: js/SaveInterface.js:407 -#.TRANS: MIDI prompt for save as Lilypond -msgid "Include MIDI output?" -msgstr "MIDI ఔట్పుట్ చేయవాలా?" +#: js/utils/musicutils.js:1076 +msgid "Japan" +msgstr "జపాన్" -#: js/SaveInterface.js:409 -#.TRANS: Guitar prompt for save as Lilypond -msgid "Include guitar tablature output?" -msgstr "గిటార్ టాబ్లేచర్ ఔట్పుట్ చేయవాలా?" +#: js/utils/musicutils.js:1078 +#.TRANS: https://en.wikipedia.org/wiki/In_scale and https://en.wikipedia.org/wiki/Sakura_Sakura +msgid "in" +msgstr "ఇన్" -#: js/SaveInterface.js:411 -#.TRANS: Lilypond is a scripting language for generating sheet music -msgid "Save as Lilypond" -msgstr "Lilypondలో గీత పత్రంగా భద్రపరచు" +#: js/utils/musicutils.js:1080 +#.TRANS: https://en.wikipedia.org/wiki/Miny%C5%8D_scale +msgid "minyo" +msgstr "మిన్యో" -#: js/SaveInterface.js:426 -#: js/EnsembleBlocks.js:75 -#: js/EnsembleBlocks.js:154 -#: js/EnsembleBlocks.js:216 -#: js/EnsembleBlocks.js:302 -#: js/EnsembleBlocks.js:348 -#: js/EnsembleBlocks.js:389 -#: js/EnsembleBlocks.js:441 -#: js/EnsembleBlocks.js:490 -#: js/EnsembleBlocks.js:536 -#: js/EnsembleBlocks.js:583 -#: js/EnsembleBlocks.js:637 -#: js/EnsembleBlocks.js:753 -#: js/EnsembleBlocks.js:840 -#: js/EnsembleBlocks.js:899 -#: js/EnsembleBlocks.js:942 -#: js/EnsembleBlocks.js:1212 -#: js/EnsembleBlocks.js:1280 -#.TRANS: default project author when saving as Lilypond -msgid "Mr. Mouse" -msgstr "శ్రీమతి మౌస్" +#: js/utils/musicutils.js:1082 +#.TRANS: Italian mathematician +msgid "fibonacci" +msgstr "ఫిబొనాచి" -#: js/SaveInterface.js:573 -msgid "The Lilypond code is copied to clipboard. You can paste it here: " -msgstr "Lilypond కోడ్ క్లిప్‌బోర్డ్‌కు కాపీ అయింది. మీరు ఇక్కడ పేస్ట్ చేయవచ్చు:" +#: js/utils/musicutils.js:1083 +#: js/utils/musicutils.js:1134 +#: js/utils/musicutils.js:1177 +#: js/utils/musicutils.js:1199 +#: js/utils/synthutils.js:134 +#: js/blocks/IntervalsBlocks.js:1124 +#: js/blocks/ToneBlocks.js:946 +#: js/blocks/VolumeBlocks.js:411 +#: js/blocks/WidgetBlocks.js:399 +#: js/blocks/WidgetBlocks.js:404 +#: js/turtleactions/VolumeActions.js:218 +#: js/widgets/modewidget.js:919 +#.TRANS: customize voice +msgid "custom" +msgstr "అనుకూలం" -#: js/RhythmBlockPaletteBlocks.js:50 -#: js/RhythmBlockPaletteBlocks.js:232 -#.TRANS: rhythm block -#.TRANS: translate "rhythm1" as rhythm -msgid "rhythm1" -msgstr "రిదం1" +#: js/utils/musicutils.js:1085 +#: js/utils/musicutils.js:1531 +#: js/blocks/WidgetBlocks.js:176 +#.TRANS: highpass filter +msgid "highpass" +msgstr "హైపాస్ ఫిల్టర్" -#: js/RhythmBlockPaletteBlocks.js:70 -#: js/RhythmBlockPaletteBlocks.js:251 -#: js/RhythmBlockPaletteBlocks.js:484 -#: js/RhythmBlockPaletteBlocks.js:553 -#: js/RhythmBlockPaletteBlocks.js:874 -msgid "number of notes" -msgstr "గానాల సంఖ్య" +#: js/utils/musicutils.js:1087 +#: js/utils/musicutils.js:1532 +#.TRANS: lowpass filter +msgid "lowpass" +msgstr "లోపాస్" -#: js/RhythmBlockPaletteBlocks.js:126 -msgid "polyphonic rhythm" -msgstr "బహువాదీ రిదం" +#: js/utils/musicutils.js:1089 +#: js/utils/musicutils.js:1533 +#.TRANS: bandpass filter +msgid "bandpass" +msgstr "బ్యాండ్‌పాస్" -#: js/RhythmBlockPaletteBlocks.js:218 -msgid "The Rhythm block is used to generate rhythm patterns." -msgstr "రిదం బ్లాక్ రిదం నమూనాలను ఉత్పత్తి చేయడానికి ఉపయోగపడుతుంది." +#: js/utils/musicutils.js:1091 +#: js/utils/musicutils.js:1534 +#.TRANS: high-shelf filter +msgid "highshelf" +msgstr "హై‌షెల్ఫ్" -#: js/RhythmBlockPaletteBlocks.js:279 -msgid "1/64 note" -msgstr "1/64 నోట్" +#: js/utils/musicutils.js:1093 +#: js/utils/musicutils.js:1535 +#.TRANS: low-shelf filter +msgid "lowshelf" +msgstr "లో‌షెల్ఫ్" -#: js/RhythmBlockPaletteBlocks.js:303 -msgid "1/32 note" -msgstr "1/32 నోట్" +#: js/utils/musicutils.js:1095 +#: js/utils/musicutils.js:1536 +#.TRANS: notch-shelf filter +msgid "notch" +msgstr "నాచ్" -#: js/RhythmBlockPaletteBlocks.js:331 -msgid "1/16 note" -msgstr "1/16 నోట్" +#: js/utils/musicutils.js:1097 +#: js/utils/musicutils.js:1537 +#.TRANS: all-pass filter +msgid "allpass" +msgstr "ఆల్‌పాస్" -#: js/RhythmBlockPaletteBlocks.js:359 -msgid "eighth note" -msgstr "ఎనిమిదవ నోట్" +#: js/utils/musicutils.js:1099 +#: js/utils/musicutils.js:1538 +#.TRANS: peaking filter +msgid "peaking" +msgstr "పికింగ్" -#: js/RhythmBlockPaletteBlocks.js:387 -msgid "quarter note" -msgstr "క్వార్టర్ నోట్" +#: js/utils/musicutils.js:1100 +#: js/utils/musicutils.js:1546 +#: js/utils/synthutils.js:126 +#: js/blocks/PitchBlocks.js:85 +#.TRANS: sine wave +msgid "sine" +msgstr "సైన్" -#: js/RhythmBlockPaletteBlocks.js:415 -msgid "half note" -msgstr "అర్ధం నోట్" +#: js/utils/musicutils.js:1101 +#: js/utils/musicutils.js:1547 +#: js/utils/synthutils.js:128 +#: js/blocks/PitchBlocks.js:39 +#.TRANS: square wave +msgid "square" +msgstr "చదరం" -#: js/RhythmBlockPaletteBlocks.js:443 -msgid "whole note" -msgstr "పూర్ణ నోట్" +#: js/utils/musicutils.js:1102 +#: js/utils/musicutils.js:1548 +#: js/utils/synthutils.js:132 +#: js/blocks/PitchBlocks.js:62 +#: js/blocks/ToneBlocks.js:39 +#.TRANS: triangle wave +msgid "triangle" +msgstr "ముక్కోన" -#: js/RhythmBlockPaletteBlocks.js:481 -#: js/RhythmBlockPaletteBlocks.js:550 -#: js/RhythmBlockPaletteBlocks.js:601 -#.TRANS: A tuplet is a note value divided into irregular time values. -msgid "tuplet" -msgstr "ట్యూప్లెట్" +#: js/utils/musicutils.js:1103 +#: js/utils/musicutils.js:1549 +#: js/utils/synthutils.js:130 +#: js/blocks/PitchBlocks.js:108 +#.TRANS: sawtooth wave +msgid "sawtooth" +msgstr "ముక్కోని" -#: js/RhythmBlockPaletteBlocks.js:767 -msgid "septuplet" -msgstr "సెప్ట్యూప్లెట్" +#: js/utils/musicutils.js:1105 +#: js/utils/musicutils.js:1312 +#: js/blocks/PitchBlocks.js:931 +#: js/blocks/PitchBlocks.js:937 +#: js/turtleactions/PitchActions.js:469 +#.TRANS: even numbers +#.TRANS: invert based on even or odd number or musical scale +msgid "even" +msgstr "సమం" -#: js/RhythmBlockPaletteBlocks.js:795 -msgid "quintuplet" -msgstr "క్వింట్యూప్లెట్" +#: js/utils/musicutils.js:1107 +#: js/utils/musicutils.js:1313 +#: js/blocks/PitchBlocks.js:937 +#: js/turtleactions/PitchActions.js:471 +#.TRANS: odd numbers +msgid "odd" +msgstr "అసమం" -#: js/RhythmBlockPaletteBlocks.js:823 -msgid "triplet" -msgstr "ట్రిప్లెట్" +#: js/utils/musicutils.js:1108 +#: js/utils/musicutils.js:1314 +#: js/blocks/PitchBlocks.js:937 +#: js/turtleactions/PitchActions.js:473 +msgid "scalar" +msgstr "స్కాలర్" -#: js/RhythmBlockPaletteBlocks.js:850 -msgid "simple tuplet" -msgstr "సాధారణ ట్యూప్లెట్" +#: js/utils/musicutils.js:1109 +#: js/utils/synthutils.js:72 +#: js/blocks/VolumeBlocks.js:47 +#.TRANS: musical instrument +msgid "piano" +msgstr "పియానో" -#: js/RhythmBlockPaletteBlocks.js:860 -msgid "Tuplets are a collection of notes that get scaled to a specific duration." -msgstr "ట్యూప్లెట్లు ఒక నిర్దిష్ట కాలకోణానికి పెరిగిపోయి ఉంటాయి." +#: js/utils/musicutils.js:1110 +#: js/utils/synthutils.js:74 +#.TRANS: musical instrument +msgid "violin" +msgstr "వయలిన్" -#: js/WidgetBlocks.js:71 -#.TRANS: sound envelope (ADSR) -msgid "envelope" -msgstr "ఎన్వలప్" +#: js/utils/musicutils.js:1111 +#: js/utils/synthutils.js:76 +#.TRANS: viola musical instrument +msgid "viola" +msgstr "వాయలా" -#: js/WidgetBlocks.js:79 -#.TRANS: Attack time is the time taken for initial run-up of level from nil to peak, beginning when the key is first pressed. -msgid "attack" -msgstr "ఆటాక్" +#: js/utils/musicutils.js:1112 +#: js/utils/synthutils.js:114 +#.TRANS: xylophone musical instrument +msgid "xylophone" +msgstr "జ్యానతి" -#: js/WidgetBlocks.js:81 -#.TRANS: Decay time is the time taken for the subsequent run down from the attack level to the designated sustain level. -msgid "decay" -msgstr "డికే" +#: js/utils/musicutils.js:1113 +#: js/utils/synthutils.js:136 +#.TRANS: vibraphone musical instrument +msgid "vibraphone" +msgstr "వైబ్రఫోన్" -#: js/WidgetBlocks.js:83 -#.TRANS: Sustain level is the level during the main sequence of the sound's duration, until the key is released. -msgid "sustain" -msgstr "సస్టేన్" +#: js/utils/musicutils.js:1114 +#: js/utils/synthutils.js:78 +#.TRANS: musical instrument +msgid "cello" +msgstr "సెల్లో" -#: js/WidgetBlocks.js:85 -#.TRANS: Release time is the time taken for the level to decay from the sustain level to zero after the key is released. -msgid "release" -msgstr "రిలీస్" +#: js/utils/musicutils.js:1116 +#: js/utils/synthutils.js:82 +#.TRANS: viola musical instrument +msgid "double bass" +msgstr "డబుల్ బాస్" -#: js/WidgetBlocks.js:96 -msgid "Attack value should be from 0 to 100." -msgstr "దాడుట విలువ ఉండాలి 0 నుండి 100 లలో." +#: js/utils/musicutils.js:1117 +#: js/utils/synthutils.js:84 +#: js/widgets/rhythmruler.js:2511 +#.TRANS: musical instrument +msgid "guitar" +msgstr "గిటార్" -#: js/WidgetBlocks.js:99 -msgid "Decay value should be from 0 to 100." -msgstr "డికే విలువ ఉండాలి 0 నుండి 100 లలో." +#: js/utils/musicutils.js:1118 +#: js/utils/synthutils.js:86 +#.TRANS: musical instrument +msgid "acoustic guitar" +msgstr "ఆకస్టిక్ గిటార్" -#: js/WidgetBlocks.js:102 -msgid "Sustain value should be from 0 to 100." -msgstr "సస్టేన్ విలువ ఉండాలి 0 నుండి 100 లలో." +#: js/utils/musicutils.js:1119 +#: js/utils/synthutils.js:88 +#.TRANS: musical instrument +msgid "flute" +msgstr "ఫ్లూట్" -#: js/WidgetBlocks.js:105 -msgid "Release value should be from 0-100." -msgstr "రిలీస్ విలువ ఉండాలి 0 నుండి 100 లలో." +#: js/utils/musicutils.js:1120 +#: js/utils/synthutils.js:90 +#.TRANS: musical instrument +msgid "clarinet" +msgstr "క్లారినెట్" -#: js/WidgetBlocks.js:121 -msgid "You are adding multiple envelope blocks." -msgstr "మీరు అనేక ఎన్వలప్ బ్లాక్‌లను జోడిస్తున్నారు." +#: js/utils/musicutils.js:1121 +#: js/utils/synthutils.js:92 +#.TRANS: musical instrument +msgid "saxophone" +msgstr "సాక్సోఫోన్" -#: js/WidgetBlocks.js:144 -#.TRANS: a filter removes some unwanted components from a signal -msgid "filter" -msgstr "ఫిల్టర్" +#: js/utils/musicutils.js:1122 +#: js/utils/synthutils.js:94 +#.TRANS: musical instrument +msgid "tuba" +msgstr "ట్యూబా" -#: js/WidgetBlocks.js:149 -#: js/musicutils.js:706 -#: js/musicutils.js:1105 -#.TRANS: highpass filter -msgid "highpass" -msgstr "హైపాస్ ఫిల్టర్" +#: js/utils/musicutils.js:1123 +#: js/utils/synthutils.js:96 +#.TRANS: musical instrument +msgid "trumpet" +msgstr "ట్రంపెట్" -#: js/WidgetBlocks.js:152 -#: js/ToneBlocks.js:42 -#: js/timbre.js:1558 -#: js/timbre.js:1808 -#.TRANS: type of filter, e.g., lowpass, highpass, etc. -#.TRANS: there are different types (sine, triangle, square...) of oscillators. -msgid "type" -msgstr "రకము" +#: js/utils/musicutils.js:1124 +#: js/utils/synthutils.js:98 +#.TRANS: musical instrument +msgid "oboe" +msgstr "ఒబో" -#: js/WidgetBlocks.js:154 -#: js/timbre.js:1818 -#.TRANS: rolloff is the steepness of a change in frequency. -msgid "rolloff" -msgstr "రోలాఫ్" +#: js/utils/musicutils.js:1125 +#: js/utils/synthutils.js:100 +#.TRANS: musical instrument +msgid "trombone" +msgstr "ట్రాంబోన్" -#: js/WidgetBlocks.js:155 -#: js/MediaBlocks.js:692 -#: js/temperament.js:382 -#: js/temperament.js:417 -#: js/temperament.js:477 -#: js/temperament.js:485 -#: js/temperament.js:1348 -#: js/timbre.js:1842 -msgid "frequency" -msgstr "సంవర్ధన" " +#: js/utils/musicutils.js:1126 +#: js/utils/synthutils.js:116 +#.TRANS: polytone synthesizer +msgid "electronic synth" +msgstr "ఎలక్ట్రానిక్ సింత్" -#: js/WidgetBlocks.js:179 -#.TRANS: rolloff is the steepness of a change in frequency. -msgid "Rolloff value should be either -12, -24, -48, or -96 decibels/octave." -msgstr "రోలాఫ్ విలువ ఆరంభంగా -12, -24, -48 లేదా -96 డిసిబల్లాలు/అక్టావ్ అవసరం." +#: js/utils/musicutils.js:1127 +#: js/utils/synthutils.js:118 +#.TRANS: simple monotone synthesizer +msgid "simple 1" +msgstr "సింపుల్ 1" -#: js/WidgetBlocks.js:211 -msgid "The Temperament tool is used to define custom tuning." -msgstr "కస్టమ్ ట్యూనింగ్‌ను నిర్వచించడానికి టెంపరమెంట్ టూల్ ఉపయోగపడుతుంది." +#: js/utils/musicutils.js:1128 +msgid "simple 2" +msgstr "సింపుల్ 2" -#: js/WidgetBlocks.js:277 -#: js/sampler.js:329 -msgid "Upload a sample and adjust its pitch center." -msgstr "ఒక నమూనాను అప్లోడ్ చేసి అదిక పిచ్ కేంద్రాన్ని సరిచూడండి." +#: js/utils/musicutils.js:1129 +msgid "simple 3" +msgstr "సింపుల్ 3" -#: js/WidgetBlocks.js:284 -#.TRANS: the speed at music is should be played. -msgid "sampler" -msgstr "సాంప్లర్" +#: js/utils/musicutils.js:1130 +msgid "simple 4" +msgstr "సింపుల్ 4" -#: js/WidgetBlocks.js:329 -#: js/WidgetBlocks.js:334 -#: js/IntervalsBlocks.js:928 -#: js/VolumeBlocks.js:411 -#: js/ToneBlocks.js:946 -#: js/VolumeActions.js:218 -#: js/musicutils.js:704 -#: js/musicutils.js:755 -#: js/musicutils.js:798 -#: js/musicutils.js:820 -#: js/musicutils.js:1136 -#: js/synthutils.js:118 -#: js/modewidget.js:919 -#.TRANS: customize voice -msgid "custom" -msgstr "అనుకూలం" +#: js/utils/musicutils.js:1131 +#: js/utils/synthutils.js:58 +#: js/blocks/DrumBlocks.js:191 +#.TRANS: white noise synthesizer +msgid "white noise" +msgstr "వైట్ నాయిజ్" -#: js/WidgetBlocks.js:432 -msgid "The Meter block opens a tool to select strong beats for the meter." -msgstr "మీటర్ బ్లాక్ మీటర్కు బలంగా బాట్లు ఎంచుకోవడానికి ఒక టూల్ను తెరిచివేస్తుంది." +#: js/utils/musicutils.js:1132 +#: js/utils/synthutils.js:60 +#.TRANS: brown noise synthesizer +msgid "brown noise" +msgstr "బ్రౌన్ నాయిస్" -#: js/WidgetBlocks.js:473 -msgid "The oscilloscope block opens a tool to visualize waveforms." -msgstr "ఆస్కిలోస్కోప్ బ్లాక్ ఒక టూల్ను తెరిచివేస్తుంది వేవ్ఫారాలు చూపించడానికి." +#: js/utils/musicutils.js:1133 +#: js/utils/synthutils.js:62 +#.TRANS: pink noise synthesizer +msgid "pink noise" +msgstr "పింక్ నాయిస్" -#: js/WidgetBlocks.js:478 -msgid "oscilloscope" -msgstr "ఆస్కిలోస్కోప్" +#: js/utils/musicutils.js:1135 +#: js/utils/synthutils.js:148 +#: js/widgets/rhythmruler.js:2057 +#: js/widgets/rhythmruler.js:2319 +#.TRANS: musical instrument +msgid "snare drum" +msgstr "స్నేర్ డ్రమ్" -#: js/WidgetBlocks.js:530 -msgid "The Custom mode block opens a tool to explore musical mode (the spacing of the notes in a scale)." -msgstr "కస్టమ్ మోడ్ బ్లాక్ సంగీత మోడ్ (స్కేల్లో గానాల వడపోత) అన్నిటికి ఆవకాశాన్ని తెరిచివేస్తుంది." +#: js/utils/musicutils.js:1136 +#: js/utils/synthutils.js:150 +#.TRANS: musical instrument +msgid "kick drum" +msgstr "కిక్ డ్రమ్" -#: js/WidgetBlocks.js:536 -#.TRANS: musical mode is the pattern of half-steps in an octave, e.g., Major or Minor modes -msgid "custom mode" -msgstr "కస్టమ్ మోడ్" +#: js/utils/musicutils.js:1137 +#: js/utils/synthutils.js:152 +#.TRANS: musical instrument +msgid "tom tom" +msgstr "టామ్ టామ్" -#: js/WidgetBlocks.js:570 -msgid "The Tempo block opens a metronome to visualize the beat." -msgstr "టెంపో బ్లాక్ బీట్ వేసారి చూపించడానికి మెట్రానోమ్ను తెరిచివేస్తుంది." +#: js/utils/musicutils.js:1138 +#: js/utils/synthutils.js:154 +#.TRANS: musical instrument +msgid "floor tom" +msgstr "ఫ్లోర్ టామ్" -#: js/WidgetBlocks.js:617 -msgid "The Arpeggio Widget is used to compose chord sequences." -msgstr "ఆర్పెజియో విడ్జెట్ కార్డు సీక్వెన్సులను రచించడానికి ఉపయోగపడుతుంది." +#: js/utils/musicutils.js:1139 +#: js/utils/synthutils.js:156 +#.TRANS: musical instrument +msgid "bass drum" +msgstr "బాస్ డ్రమ్" -#: js/WidgetBlocks.js:623 -#: js/IntervalsBlocks.js:683 -msgid "arpeggio" -msgstr "ఆర్పెజియో" +#: js/utils/musicutils.js:1140 +#: js/utils/synthutils.js:158 +#.TRANS: a drum made from an inverted cup +msgid "cup drum" +msgstr "కప్ డ్రం" -#: js/WidgetBlocks.js:677 -msgid "The Pitch drum matrix is used to map pitches to drum sounds." -msgstr "పిచ్ డ్రమ్ మ్యాట్రిక్స్ పిచ్లను డ్రమ్ సౌండ్లకు మ్యాప్ చేయడానికి ఉపయోగిస్తారు." +#: js/utils/musicutils.js:1141 +#: js/utils/synthutils.js:160 +#.TRANS: musical instrument +msgid "darbuka drum" +msgstr "డార్బుకా డ్రం" -#: js/WidgetBlocks.js:682 -#.TRANS: makes a mapping between pitches and drum sounds -msgid "pitch-drum mapper" -msgstr "పిచ్-డ్రమ్ మ్యాప్పర్" +#: js/utils/musicutils.js:1142 +#: js/utils/synthutils.js:164 +#.TRANS: musical instrument +msgid "hi hat" +msgstr "హై హ్యాట్" -#: js/WidgetBlocks.js:724 -msgid "You must have at least one pitch block and one drum block in the matrix." -msgstr "మీరు మ్యాట్రిక్స్లో కనీసం ఒక పిచ్ బ్లాక్ మరియు ఒక డ్రమ్ బ్లాక్ ఉండాలి." +#: js/utils/musicutils.js:1143 +#: js/utils/synthutils.js:166 +#.TRANS: a small metal bell +msgid "ride bell" +msgstr "రైడ్ బెల్" -#: js/WidgetBlocks.js:746 -msgid "The Pitch slider tool to is used to generate pitches at selected frequencies." -msgstr "పిచ్ స్లైడర్ టూల్ ఎంచుకోబడి అంగులాలలో పిచ్లను ఉత్పత్తించడానికి ఉపయోగిస్తారు." +#: js/utils/musicutils.js:1144 +#: js/utils/synthutils.js:168 +#.TRANS: musical instrument +msgid "cow bell" +msgstr "కౌ బెల్" -#: js/WidgetBlocks.js:751 -#.TRANS: widget to generate pitches using a slider -msgid "pitch slider" -msgstr "పిచ్ స్లైడర్" +#: js/utils/musicutils.js:1145 +msgid "japanese drum" +msgstr "జపనీస్ డ్రమ్" -#: js/WidgetBlocks.js:788 -msgid "chromatic keyboard" -msgstr "క్రోమాటిక్ కీబోర్డ్" +#: js/utils/musicutils.js:1146 +#: js/utils/synthutils.js:174 +#.TRANS: musical instrument +msgid "japanese bell" +msgstr "జపనీస్ బెల్" -#: js/WidgetBlocks.js:815 -#: js/WidgetBlocks.js:874 -#.TRANS: widget to generate pitches using a slider -msgid "music keyboard" -msgstr "సంగీత కీబోర్డ్" +#: js/utils/musicutils.js:1147 +#: js/utils/synthutils.js:170 +#.TRANS: musical instrument +msgid "triangle bell" +msgstr "ట్రయాంగిల్ బెల్" -#: js/WidgetBlocks.js:859 -#: js/WidgetBlocks.js:866 -msgid "The Music keyboard block opens a piano keyboard that can be used to create notes." -msgstr "మ్యూజిక్ కీబోర్డ్ బ్లాక్ నోట్లను సృష్టించడానికి పియానో కీబోర్డ్ను తెరిచివేస్తుంది." +#: js/utils/musicutils.js:1148 +#: js/utils/synthutils.js:172 +#.TRANS: musical instrument +msgid "finger cymbals" +msgstr "ఫింగర్ సింబల్స్" -#: js/WidgetBlocks.js:910 -msgid "The Pitch staircase tool to is used to generate pitches from a given ratio." -msgstr "పిచ్ స్టెయర్కేస్ టూల్ అంగులాలో ఇచ్చిన అనుపాతం నుండి పిచ్లను ఉత్పత్తించడానికి ఉపయోగిస్తారు." +#: js/utils/musicutils.js:1149 +#: js/utils/synthutils.js:176 +#.TRANS: a musically tuned set of bells +msgid "chime" +msgstr "చైమ్" -#: js/WidgetBlocks.js:917 -#.TRANS: generate a progressive sequence of pitches -msgid "pitch staircase" -msgstr "పిచ్ స్టెయర్కేస్" +#: js/utils/musicutils.js:1150 +#: js/utils/synthutils.js:178 +#.TRANS: a musical instrument +msgid "gong" +msgstr "గాంగ్" -#: js/WidgetBlocks.js:982 -msgid "The Rhythm Maker block opens a tool to create drum machines." -msgstr "రిదాన్ మేకర్ బ్లాక్ డ్రమ్ మెషీన్లను రచించడానికి టూల్ తెరిచివేస్తుంది." +#: js/utils/musicutils.js:1151 +#: js/utils/synthutils.js:180 +#.TRANS: sound effect +msgid "clang" +msgstr "క్లాంగ్" -#: js/WidgetBlocks.js:1036 -msgid "G major scale" -msgstr "జి మేజర్ స్కేల్" +#: js/utils/musicutils.js:1152 +#: js/utils/synthutils.js:182 +#.TRANS: sound effect +msgid "crash" +msgstr "క్రాష్" -#: js/WidgetBlocks.js:1064 -msgid "C major scale" -msgstr "సి మేజర్ స్కేల్" +#: js/utils/musicutils.js:1153 +#: js/utils/synthutils.js:184 +#.TRANS: sound effect +msgid "bottle" +msgstr "బాటిల్" -#: js/WidgetBlocks.js:1097 -msgid "The Phrase Maker block opens a tool to create musical phrases." -msgstr "ఫ్రేస్ మేకర్ బ్లాక్ సంగీత ఫ్రేస్లను రచించడానికి టూల్ తెరిచివేస్తుంది." +#: js/utils/musicutils.js:1154 +#: js/utils/synthutils.js:186 +#.TRANS: sound effect +msgid "clap" +msgstr "క్లాప్" -#: js/WidgetBlocks.js:1104 -#.TRANS: assigns pitch to a sequence of beats to generate a melody -msgid "phrase maker" -msgstr "ఫ్రేస్ మేకర్" +#: js/utils/musicutils.js:1155 +#: js/utils/synthutils.js:188 +#.TRANS: sound effect +msgid "slap" +msgstr "స్లాప్" -#: js/WidgetBlocks.js:1168 -msgid "You must have at least one pitch block and one rhythm block in the matrix." -msgstr "మీరు మ్యాట్రిక్స్లో కనీసం ఒక పిచ్ బ్లాక్ మరియు ఒక రిదాన్ బ్లాక్ ఉండాలి." +#: js/utils/musicutils.js:1156 +#: js/utils/synthutils.js:190 +#.TRANS: sound effect +msgid "splash" +msgstr "స్ప్లాష్" -#: js/WidgetBlocks.js:1220 -msgid "The Status block opens a tool for inspecting the status of Music Blocks as it is running." -msgstr "స్టేటస్ బ్లాక్ మ్యూజిక్ బ్లాక్స్ యొక్క స్థితిని తనిఖీ చేయడానికి ఒక టూల్ తెరిచివేస్తుంది." +#: js/utils/musicutils.js:1157 +#: js/utils/synthutils.js:192 +#.TRANS: sound effect +msgid "bubbles" +msgstr "బబుల్స్" -#: js/IntervalsBlocks.js:45 -msgid "set temperament" -msgstr "టెంపరమెంట్ సెట్ చేయి" +#: js/utils/musicutils.js:1158 +#: js/utils/synthutils.js:194 +#.TRANS: sound effect +msgid "raindrop" +msgstr "రెయిండ్రాప్" -#: js/IntervalsBlocks.js:63 -#: js/MediaBlocks.js:746 -#: js/PitchBlocks.js:657 -#: js/PitchBlocks.js:933 -#: js/PitchBlocks.js:972 -#: js/PitchBlocks.js:1005 -#: js/PitchBlocks.js:1166 -#: js/PitchBlocks.js:1679 -#: js/PitchBlocks.js:1720 -#: js/PitchBlocks.js:1827 -#: js/ToneBlocks.js:1025 -#.TRANS: adjusts the shift up or down by one octave (twelve half-steps in the interval between two notes, one having twice or half the frequency in Hz of the other.) -msgid "octave" -msgstr "ఆక్టేవ్" +#: js/utils/musicutils.js:1159 +#: js/utils/synthutils.js:196 +#.TRANS: animal sound effect +msgid "cat" +msgstr "క్యాట్" -#: js/IntervalsBlocks.js:99 -msgid "The Temperament name block is used to select a tuning method." -msgstr "టెంపరమెంట్ నేమ్ బ్లాక్ ట్యూనింగ్ పద్ధతిని ఎంచుకోవడానికి ఉపయోగిస్తారు." +#: js/utils/musicutils.js:1160 +#: js/utils/synthutils.js:198 +#.TRANS: animal sound effect +msgid "cricket" +msgstr "క్రికెట్" -#: js/IntervalsBlocks.js:161 -msgid "doubly" -msgstr "రెండుగుండే" +#: js/utils/musicutils.js:1161 +#: js/utils/synthutils.js:200 +#.TRANS: animal sound effect +msgid "dog" +msgstr "డాగ్" -#: js/IntervalsBlocks.js:166 -msgid "The Doubly block will double the size of an interval." -msgstr "డబులీ బ్లాక్ అంతరాలం యొక్క పరిమాణం రెండుగుండే చేస్తుంది." +#: js/utils/musicutils.js:1163 +#: js/utils/synthutils.js:102 +#.TRANS: musical instrument +msgid "banjo" +msgstr "బ్యాంజో" -#: js/IntervalsBlocks.js:262 -msgid "interval number" -msgstr "అంతరాల సంఖ్య" +#: js/utils/musicutils.js:1164 +#: js/utils/synthutils.js:104 +#.TRANS: musical instrument +msgid "koto" +msgstr "కోటో" -#: js/IntervalsBlocks.js:330 -#.TRANS: measure the distance between two pitches in semi-tones -msgid "semi-tone interval measure" -msgstr "రెండు స్వరాల మధ్య దూరం పరిమాణం పెంచడానికి మెయిజర్" +#: js/utils/musicutils.js:1165 +#: js/utils/synthutils.js:106 +#.TRANS: musical instrument +msgid "dulcimer" +msgstr "డల్సిమర్" -#: js/IntervalsBlocks.js:397 -#: js/IntervalsBlocks.js:513 -msgid "You must use two pitch blocks when measuring an interval." -msgstr "మీరు ఒక ఇంటర్వల్ మీజరింగ్ చేసేందుకు రెండు పిచ్ బ్లాక్స్ ఉపయోగించాలి." +#: js/utils/musicutils.js:1166 +#: js/utils/synthutils.js:108 +#.TRANS: musical instrument +msgid "electric guitar" +msgstr "ఎలక్ట్రిక్ గిటార్" -#: js/IntervalsBlocks.js:439 -msgid "The Scalar interval block measures the distance between two notes in the current key and mode." -msgstr "స్కాలార్ ఇంటర్వల్ బ్లాక్ ప్రస్తుత కీ మరియు మోడ్ లో రెండు స్వరాల మధ్య దూరం పరిమాణం పెంచివేస్తుంది." +#: js/utils/musicutils.js:1167 +#: js/utils/synthutils.js:110 +#.TRANS: musical instrument +msgid "bassoon" +msgstr "బాసూన్" -#: js/IntervalsBlocks.js:445 -#.TRANS: measure the distance between two pitches in steps of musical scale -msgid "scalar interval measure" -msgstr "మ్యూజికల్ స్కేల్ స్టెప్ల మధ్య రెండు స్వరాల మధ్య దూరం పరిమాణం పెంచడానికి మెయిజర్" +#: js/utils/musicutils.js:1168 +#: js/utils/synthutils.js:112 +#.TRANS: musical instrument +msgid "celeste" +msgstr "సెలెస్ట్" -#: js/IntervalsBlocks.js:592 -#: js/musicutils.js:637 -#: js/musicutils.js:908 -#.TRANS: perfect is a music term related to intervals -msgid "perfect" -msgstr "పరిపూర్ణ" +#: js/utils/musicutils.js:1170 +#: js/widgets/temperament.js:787 +#.TRANS: musical temperament +msgid "equal" +msgstr "సమాన" -#: js/IntervalsBlocks.js:621 -msgid "In the figure, we add sol# to sol." -msgstr "చిత్రలో, మేము సోల్# ను సోల్కి జోడిస్తాము." +#: js/utils/musicutils.js:1172 +#.TRANS: musical temperament +msgid "Pythagorean" +msgstr "పైతాగోరియన్" -#: js/IntervalsBlocks.js:627 -#: js/OrnamentBlocks.js:220 -#.TRANS: calculate a relative step between notes based on semi-tones -msgid "semi-tone interval" -msgstr "సెమీ-టోన్ ఇంటర్వల్" +#: js/utils/musicutils.js:1174 +#.TRANS: musical temperament +msgid "just intonation" +msgstr "కేవల సరళ సమాంతరం" -#: js/IntervalsBlocks.js:676 -msgid "The output of the example is: do, mi, sol, sol, ti, mi" -msgstr "ఉదాహరణకు ఆఉట్పుట్: దో, మి, సోల్, సోల్, టి, మి" +#: js/utils/musicutils.js:1176 +#.TRANS: musical temperament +msgid "meantone" +msgstr "మీంటోన్" -#: js/IntervalsBlocks.js:735 -msgid "The Chord block calculates common chords." -msgstr "చార్డ్ బ్లాక్ సాధారణ చార్డ్లను గణిస్తుంది." +#: js/utils/musicutils.js:1193 +msgid "major 7th" +msgstr "మేజర్ 7వ" -#: js/IntervalsBlocks.js:737 -msgid "In the figure, we generate a C-major chord." -msgstr "చిత్రలో, మేము సి-మేజర్ చార్డ్ రేపగాలాము." +#: js/utils/musicutils.js:1194 +msgid "minor 7th" +msgstr "మైనర్ 7వ" -#: js/IntervalsBlocks.js:742 -msgid "chord" -msgstr "చార్డ్" +#: js/utils/musicutils.js:1195 +msgid "dominant 7th" +msgstr "డామినెంట్ 7వ" -#: js/IntervalsBlocks.js:794 -msgid "The Ratio Interval block calculates an interval based on a ratio." -msgstr "రేషియో ఇంటర్వల్ బ్లాక్ సంతోషం ఆధారంగా ఒక ఇంటర్వల్ను గణిస్తుంది." +#: js/utils/musicutils.js:1196 +msgid "minor-major 7th" +msgstr "మైనర్-మేజర్ 7వ" -#: js/IntervalsBlocks.js:799 -msgid "ratio interval" -msgstr "రేషియో ఇంటర్వల్" +#: js/utils/musicutils.js:1197 +msgid "fully-diminished 7th" +msgstr "పూర్ణం-డిమినిష్డ్ 7వ" -#: js/IntervalsBlocks.js:868 -msgid "In the figure, we add la to sol." -msgstr "చిత్రలో, మేము సోల్ కి లానిని జోడిస్తాము." +#: js/utils/musicutils.js:1198 +msgid "half-diminished 7th" +msgstr "హాఫ్-డిమినిష్డ్ 7వ" -#: js/IntervalsBlocks.js:924 -#.TRANS: define a custom mode -msgid "define mode" -msgstr "కస్టమ్ మోడ్" +#: js/utils/musicutils.js:1557 +#: js/utils/musicutils.js:1569 +msgid "Equal (12EDO)" +msgstr "" -#: js/IntervalsBlocks.js:977 -msgid "movable Do" -msgstr "మూవబుల్ డో" +#: js/utils/musicutils.js:1558 +#: js/utils/musicutils.js:1570 +msgid "5-limit Just Intonation" +msgstr "" -#: js/IntervalsBlocks.js:1028 -#.TRANS: mode length is the number of notes in the mode, e.g., 7 for major and minor scales; 12 for chromatic scales -msgid "mode length" -msgstr "మోడ్ పొడవు" +#: js/utils/musicutils.js:1559 +#: js/utils/musicutils.js:1571 +msgid "Pythagorean (3-limit JI)" +msgstr "" -#: js/IntervalsBlocks.js:1037 -msgid "The Mode length block is the number of notes in the current scale." -msgstr "మోడ్ లెంథ్ బ్లాక్ ప్రస్తుత స్కేల్లో ఉన్న స్వరాల సంఖ్య." +#: js/utils/musicutils.js:1560 +#: js/utils/musicutils.js:1561 +#: js/utils/musicutils.js:1572 +#: js/utils/musicutils.js:1573 +msgid "Meantone" +msgstr "" -#: js/IntervalsBlocks.js:1039 -msgid "Most Western scales have 7 notes." -msgstr "అనేక పశ్చిమ స్కేల్లు 7 స్వరాలు ఉన్నాయి." +#: js/utils/musicutils.js:1574 +msgid "Custom" +msgstr "" -#: js/IntervalsBlocks.js:1088 -#.TRANS: the mode in music is 'major', 'minor', etc. -msgid "current mode" -msgstr "ప్రస్తుత మోడ్" +#: js/utils/musicutils.js:5387 +#: js/utils/musicutils.js:5430 +msgid "current" +msgstr "ప్రస్తుత" -#: js/IntervalsBlocks.js:1141 -#.TRANS: the key is a group of pitches with which a music composition is created -msgid "current key" -msgstr "ప్రస్తుత కీ" +#: js/utils/musicutils.js:5390 +#: js/utils/musicutils.js:5421 +msgid "next" +msgstr "తరువాత" -#: js/IntervalsBlocks.js:1193 -#: js/IntervalsBlocks.js:1238 -#.TRANS: set the key and mode, e.g. C Major -msgid "set key" -msgstr "కీని మరియు మోడ్ సెట్ చేయండి, ఉదా. C మేజర్" +#: js/utils/musicutils.js:5393 +#: js/utils/musicutils.js:5426 +msgid "previous" +msgstr "మునుపటి" -#: js/IntervalsBlocks.js:1247 -#: js/IntervalsBlocks.js:1253 -msgid "The Set key block is used to set the key and mode," -msgstr "కీని మరియు మోడ్ సెట్ చేయడానికి Set key బ్లాక్ ఉపయోగిస్తారు," +#: js/utils/synthutils.js:120 +#.TRANS: simple monotone synthesizer +msgid "simple-2" +msgstr "సింపుల్-2" -#: js/IntervalsBlocks.js:1253 -msgid "eg C Major" -msgstr "ఉదా C మేజర్" +#: js/utils/synthutils.js:122 +#.TRANS: simple monotone synthesizer +msgid "simple-3" +msgstr "సింపుల్-3" -#: js/IntervalsBlocks.js:1266 -#: js/DictBlocks.js:215 -#: js/DictBlocks.js:216 -#: js/DictBlocks.js:289 -#: js/DictBlocks.js:290 -#: js/DictBlocks.js:357 -#: js/DictBlocks.js:430 -#: js/DictBlocks.js:431 -#.TRANS: key, e.g., C in C Major -msgid "key" -msgstr "కీ" +#: js/utils/synthutils.js:124 +#.TRANS: simple monotone synthesizer +msgid "simple-4" +msgstr "సింపుల్-4" + +#: js/utils/synthutils.js:162 +#.TRANS: musical instrument +msgid "taiko" +msgstr "టైకో" -#: js/ActionBlocks.js:58 +#: js/blocks/ActionBlocks.js:58 msgid "The Return block will return a value from an action." msgstr "రిటర్న్ బ్లాక్ యాక్షను నుండి విలువ తిరిగి అందిస్తుంది." -#: js/ActionBlocks.js:75 +#: js/blocks/ActionBlocks.js:75 msgid "return" msgstr "రిటర్న్" -#: js/ActionBlocks.js:128 +#: js/blocks/ActionBlocks.js:128 msgid "The Return to URL block will return a value to a webpage." msgstr "రిటర్న్ టు URL బ్లాక్ ఒక విలువను వెబ్పేజీకి తిరిగి అందిస్తుంది." -#: js/ActionBlocks.js:145 +#: js/blocks/ActionBlocks.js:145 msgid "return to URL" msgstr "URL కి ఫంక్షన్ నుండి విలువ తిరిగి అందిస్తుంది" -#: js/ActionBlocks.js:233 -#: js/ActionBlocks.js:290 -#: js/ActionBlocks.js:501 -#: js/ActionBlocks.js:688 +#: js/blocks/ActionBlocks.js:233 +#: js/blocks/ActionBlocks.js:290 +#: js/blocks/ActionBlocks.js:501 +#: js/blocks/ActionBlocks.js:688 msgid "The Calculate block returns a value calculated by an action." msgstr "కాలక్యూలేట్ బ్లాక్ ఒక యాక్షన్ ద్వారా కలిగిన ఒక విలువను తిరిగి అందిస్తుంది." -#: js/ActionBlocks.js:251 -#: js/ActionBlocks.js:517 -#: js/ActionBlocks.js:707 +#: js/blocks/ActionBlocks.js:251 +#: js/blocks/ActionBlocks.js:517 +#: js/blocks/ActionBlocks.js:707 msgid "calculate" msgstr "కాలక్యూలేట్" -#: js/ActionBlocks.js:376 -#: js/ActionBlocks.js:593 -#: js/ActionBlocks.js:942 -#: js/ActionBlocks.js:1389 +#: js/blocks/ActionBlocks.js:376 +#: js/blocks/ActionBlocks.js:593 +#: js/blocks/ActionBlocks.js:942 +#: js/blocks/ActionBlocks.js:1389 #.TRANS: do is the do something or take an action. msgid "The Do block is used to initiate an action." msgstr "డూ బ్లాక్ ఒక యాక్షన్ను ప్రారంభించడానికి ఉపయోగిస్తారు." -#: js/ActionBlocks.js:390 -#: js/ActionBlocks.js:610 -#: js/ActionBlocks.js:959 -#: js/ActionBlocks.js:1048 -#: js/MeterBlocks.js:769 +#: js/blocks/ActionBlocks.js:390 +#: js/blocks/ActionBlocks.js:610 +#: js/blocks/ActionBlocks.js:959 +#: js/blocks/ActionBlocks.js:1048 +#: js/blocks/MeterBlocks.js:769 msgid "do1" msgstr "డూ1" -#: js/ActionBlocks.js:390 -#: js/ActionBlocks.js:610 -#: js/ActionBlocks.js:959 -#: js/ActionBlocks.js:1048 -#: js/FlowBlocks.js:742 -#: js/FlowBlocks.js:822 -#: js/MeterBlocks.js:769 +#: js/blocks/ActionBlocks.js:390 +#: js/blocks/ActionBlocks.js:610 +#: js/blocks/ActionBlocks.js:959 +#: js/blocks/ActionBlocks.js:1048 +#: js/blocks/FlowBlocks.js:742 +#: js/blocks/FlowBlocks.js:822 +#: js/blocks/MeterBlocks.js:769 msgid "do" msgstr "డూ" -#: js/ActionBlocks.js:791 -#: js/ActionBlocks.js:865 +#: js/blocks/ActionBlocks.js:791 +#: js/blocks/ActionBlocks.js:865 msgid "The Arg block contains the value of an argument passed to an action." msgstr "ఆర్గ్ బ్లాక్ యాక్షన్ కి పాసు చేయబడిన ఆర్గ్యుమెంట్ యొక్క విలువను కలిగి ఉంది." -#: js/ActionBlocks.js:806 -#: js/ActionBlocks.js:878 +#: js/blocks/ActionBlocks.js:806 +#: js/blocks/ActionBlocks.js:878 msgid "arg" msgstr "ఆర్గ్" -#: js/ActionBlocks.js:836 -#: js/ActionBlocks.js:900 -#: js/ActionBlocks.js:908 +#: js/blocks/ActionBlocks.js:836 +#: js/blocks/ActionBlocks.js:900 +#: js/blocks/ActionBlocks.js:908 msgid "Invalid argument" msgstr "చెల్లని ఆర్గ్యుమెంట్" -#: js/ActionBlocks.js:944 +#: js/blocks/ActionBlocks.js:944 msgid "In the example, it is used with the One of block to choose a random phase." msgstr "ఉదాహరణకు, ఇది ఒక యాదృచ్ఛిక దశని ఎంపికొండితో ఉపయోగిస్తారు." -#: js/ActionBlocks.js:1019 -#: js/ActionBlocks.js:1026 +#: js/blocks/ActionBlocks.js:1019 +#: js/blocks/ActionBlocks.js:1026 msgid "The Listen block is used to listen for an event such as a mouse click." msgstr "శ్రవించడానికి గుండాపోతం మొదలు పెట్టడానికి లిస్టెన్ బ్లాక్ ఉపయోగిస్తారు." -#: js/ActionBlocks.js:1028 +#: js/blocks/ActionBlocks.js:1028 msgid "When the event happens, an action is taken." msgstr "ఈ ఘటన జరగానే, ఒక యాక్షన్ ప్రారంభిస్తారు." -#: js/ActionBlocks.js:1045 +#: js/blocks/ActionBlocks.js:1045 msgid "on" msgstr "పై" -#: js/ActionBlocks.js:1048 -#: js/ActionBlocks.js:1049 -#: js/ActionBlocks.js:1153 +#: js/blocks/ActionBlocks.js:1048 +#: js/blocks/ActionBlocks.js:1049 +#: js/blocks/ActionBlocks.js:1153 msgid "event" msgstr "ఇవెంట్" -#: js/ActionBlocks.js:1133 +#: js/blocks/ActionBlocks.js:1133 msgid "The Broadcast block is used to trigger an event." msgstr "ఇవెంట్ను ప్రేరేపించడానికి బ్రాడ్కాస్ట్ బ్లాక్ ఉపయోగిస్తారు." -#: js/ActionBlocks.js:1151 +#: js/blocks/ActionBlocks.js:1151 msgid "broadcast" msgstr "బ్రాడ్కాస్ట్" -#: js/ActionBlocks.js:1208 +#: js/blocks/ActionBlocks.js:1208 msgid "Each Start block is a separate voice." msgstr "ప్రతి ప్రారంభ బ్లాక్ ఒక విశిష్ట ధ్వని." -#: js/ActionBlocks.js:1304 -msgid "It is often used for storing a phrase of music that is repeated." -msgstr "అది చిక్కగా ప్రతిపాదన చేసే సంగీతం యొక్క పదాన్ని నిల్వించడానికి సామాన్యంగా ఉపయోగిస్తారు." +#: js/blocks/ActionBlocks.js:1304 +msgid "It is often used for storing a phrase of music that is repeated." +msgstr "అది చిక్కగా ప్రతిపాదన చేసే సంగీతం యొక్క పదాన్ని నిల్వించడానికి సామాన్యంగా ఉపయోగిస్తారు." + +#: js/blocks/ActionBlocks.js:1495 +msgid "define temperament" +msgstr "నిర్ణయించు స్వభావం" + +#: js/blocks/BooleanBlocks.js:44 +msgid "The Not block is the logical not operator." +msgstr "కాదు బ్లాక్ యొక్క మాండన్ని దాని అవిని." + +#: js/blocks/BooleanBlocks.js:62 +msgid "not" +msgstr "కాదు" + +#: js/blocks/BooleanBlocks.js:134 +msgid "The And block is the logical and operator." +msgstr "మరియు బ్లాక్ యొక్క మాండన్ని దాని అవిని." + +#: js/blocks/BooleanBlocks.js:152 +msgid "and" +msgstr "మరియు" + +#: js/blocks/BooleanBlocks.js:218 +msgid "The Or block is the logical or operator." +msgstr "లేదా బ్లాక్ యొక్క మాండన్ని దాని అవిని." + +#: js/blocks/BooleanBlocks.js:236 +msgid "or" +msgstr "లేదా" + +#: js/blocks/BooleanBlocks.js:302 +msgid "The XOR block is the logical XOR operator." +msgstr "XOR బ్లాక్ యొక్క మాండన్ని దాని అవిని." + +#: js/blocks/BooleanBlocks.js:320 +msgid "xor" +msgstr "జార్" + +#: js/blocks/BooleanBlocks.js:808 +msgid "The Equal block returns True if the two numbers are equal." +msgstr "ఇరువు సంఖ్యలు సరిపడితే, అప్పటికే ట్రూ." + +#: js/blocks/BooleanBlocks.js:909 +msgid "The Not-equal-to block returns True if the two numbers are not equal to each other." +msgstr "" + +#: js/blocks/BooleanBlocks.js:1008 +msgid "The Boolean block is used to specify true or false." +msgstr "బూలియన్ బ్లాక్ ట్రూ లేదా ఫాల్స్ ని నిర్దిష్టించడానికి ఉపయోగిస్తారు." + +#: js/blocks/BoxesBlocks.js:53 +#: js/blocks/BoxesBlocks.js:59 +msgid "The Add-to block is used to add to the value stored in a box." +msgstr "ఆడ్-టు బ్లాక్ బాక్స్లో నిర్వచించబడిన విలువకు కలిగి ఉండటానికి ఉపయోగిస్తారు." + +#: js/blocks/BoxesBlocks.js:61 +msgid "It can also be used with other blocks such as Color and Pen size." +msgstr "ఇది కలర్ మరియు పెన్ పరిమాణం ఉండాలి మరియు ఇతర బ్లాక్లతో కూడా ఉపయోగించి ఉండవచ్చు." + +#: js/blocks/BoxesBlocks.js:73 +msgid "add" +msgstr "జోడించు" + +#: js/blocks/BoxesBlocks.js:75 +#: js/widgets/temperament.js:857 +msgid "to" +msgstr "కు" + +#: js/blocks/BoxesBlocks.js:75 +#: js/blocks/BoxesBlocks.js:595 +#: js/blocks/HeapBlocks.js:544 +msgid "value1" +msgstr "విలువ1" + +#: js/blocks/BoxesBlocks.js:118 +msgid "Block does not support incrementing." +msgstr "బ్లాక్ చేవరి సహాయపడడానికి మద్దతు ఇస్తుంది." + +#: js/blocks/BoxesBlocks.js:152 +msgid "The Add-1-to block adds one to the value stored in a box." +msgstr "ఆడ్-1-టు బ్లాక్ ఒక బాక్స్లో నిర్వచించబడిన విలువకు ఒకటి జోడిస్తుంది." + +#: js/blocks/BoxesBlocks.js:163 +msgid "add 1 to" +msgstr "1 ని జోడించు" + +#: js/blocks/BoxesBlocks.js:211 +msgid "The Subtract-1-from block subtracts one from the value stored in a box." +msgstr "సబ్ట్రాక్ట్-1-ఫ్రమ్ బ్లాక్ ఒక బాక్స్లో నిర్వచించబడిన విలువను ఒకటి కడిగిస్తుంది." + +#: js/blocks/BoxesBlocks.js:222 +msgid "subtract 1 from" +msgstr "1 ని తగ్గించు" + +#: js/blocks/BoxesBlocks.js:270 +#: js/blocks/BoxesBlocks.js:387 +msgid "The Box block returns the value stored in a box." +msgstr "బాక్స్ బ్లాక్ ఒక బాక్స్లో నిర్వచించబడిన విలువను తిరిగిస్తుంది." + +#: js/blocks/BoxesBlocks.js:500 +#: js/blocks/BoxesBlocks.js:576 +msgid "The Store in block will store a value in a box." +msgstr "స్టోర్-ఇన్ బ్లాక్ ఒక బాక్స్లో విలువను నిర్వచించడానికి ఉపయోగిస్తుంది." + +#: js/blocks/BoxesBlocks.js:595 +#: js/blocks/EnsembleBlocks.js:391 +#: js/blocks/EnsembleBlocks.js:402 +msgid "name1" +msgstr "పేరు1" + +#: js/blocks/BoxesBlocks.js:652 +msgid "The Box2 block returns the value stored in Box2." +msgstr "బాక్స్2 బ్లాక్ బాక్స్2లో నిర్వచించబడిన విలువను తిరిగిస్తుంది." + +#: js/blocks/BoxesBlocks.js:703 +msgid "The Store in Box2 block is used to store a value in Box2." +msgstr "స్టోర్-ఇన్ బాక్స్2 బ్లాక్ బాక్స్2లో విలువను నిర్వచించడానికి ఉపయోగిస్తుంది." + +#: js/blocks/BoxesBlocks.js:715 +msgid "store in box2" +msgstr "బాక్స్2లో నిర్వచించు" + +#: js/blocks/BoxesBlocks.js:761 +msgid "The Box1 block returns the value stored in Box1." +msgstr "బాక్స్1 బ్లాక్ బాక్స్1లో నిర్వచించబడిన విలువను తిరిగిస్తుంది." + +#: js/blocks/BoxesBlocks.js:812 +msgid "The Store in Box1 block is used to store a value in Box1." +msgstr "స్టోర్-ఇన్ బాక్స్1 బ్లాక్ బాక్స్1లో విలువను నిర్వచించడానికి ఉపయోగిస్తుంది." + +#: js/blocks/BoxesBlocks.js:826 +msgid "store in box1" +msgstr "బాక్స్1లో నిర్వచించు" + +#: js/blocks/DictBlocks.js:77 +msgid "show dictionary" +msgstr "డిక్షనరీని ప్రదర్శించు" + +#: js/blocks/DictBlocks.js:80 +#: js/blocks/DictBlocks.js:145 +#: js/blocks/DictBlocks.js:216 +#: js/blocks/DictBlocks.js:290 +#: js/blocks/ProgramBlocks.js:396 +#: js/blocks/ProgramBlocks.js:501 +#: js/blocks/ProgramBlocks.js:664 +msgid "My Dictionary" +msgstr "నా నిఘంటువు" + +#: js/blocks/DictBlocks.js:129 +msgid "The Dictionary block returns a dictionary." +msgstr "డిక్షనరీ బ్లాక్ ఒక డిక్షనరీని తరిమించిపెడతుంది." + +#: js/blocks/DictBlocks.js:197 +#: js/blocks/DictBlocks.js:339 +msgid "The Get-dict block returns a value in the dictionary for a specified key." +msgstr "గెట్-డిక్ట్ బ్లాక్ ఒక కేటగా డిక్షనరీలో ఒక విలువను తరిమించిపెడతుంది." + +#: js/blocks/DictBlocks.js:212 +#: js/blocks/DictBlocks.js:354 +#.TRANS: retrieve a value from the dictionary with a given key +msgid "get value" +msgstr "కొరకు డిక్షనరీ నుండి విలువను తరిమించు" + +#: js/blocks/DictBlocks.js:215 +#: js/blocks/DictBlocks.js:216 +#: js/blocks/DictBlocks.js:289 +#: js/blocks/DictBlocks.js:290 +#: js/blocks/DictBlocks.js:357 +#: js/blocks/DictBlocks.js:430 +#: js/blocks/DictBlocks.js:431 +msgid "key2" +msgstr "కీ2" + +#: js/blocks/DictBlocks.js:215 +#: js/blocks/DictBlocks.js:216 +#: js/blocks/DictBlocks.js:289 +#: js/blocks/DictBlocks.js:290 +#: js/blocks/DictBlocks.js:357 +#: js/blocks/DictBlocks.js:430 +#: js/blocks/DictBlocks.js:431 +#: js/blocks/IntervalsBlocks.js:1462 +#.TRANS: key, e.g., C in C Major +msgid "key" +msgstr "కీ" -#: js/ActionBlocks.js:1495 -msgid "define temperament" -msgstr "నిర్ణయించు స్వభావం" +#: js/blocks/DictBlocks.js:271 +#: js/blocks/DictBlocks.js:411 +msgid "The Set-dict block sets a value in the dictionary for a specified key." +msgstr "సెట్-డిక్ట్ బ్లాక్ ఒక కేటగా డిక్షనరీలో ఒక విలువను అమరికి ఉంచుతుంది." + +#: js/blocks/DictBlocks.js:286 +#: js/blocks/DictBlocks.js:427 +#.TRANS: set a value in the dictionary for a given key +msgid "set value" +msgstr "కొరకు డిక్షనరీలో విలువను సెట్ చేయి" -#: js/EnsembleBlocks.js:66 +#: js/blocks/EnsembleBlocks.js:66 msgid "mouse index heap" msgstr "మౌస్ సూచి హీప్" -#: js/EnsembleBlocks.js:68 +#: js/blocks/EnsembleBlocks.js:68 msgid "The Mouse index heap block returns a value in the heap at a specified location for a specified mouse." msgstr "మౌస్ సూచి హీప్ బ్లాక్ ఒక నిర్దిష్ట స్థానంలో నిర్దిష్ట మౌస్ కోసం హీప్లో విలువను తరిస్తుంది." -#: js/EnsembleBlocks.js:77 -#: js/EnsembleBlocks.js:1080 +#: js/blocks/EnsembleBlocks.js:77 +#: js/blocks/EnsembleBlocks.js:1080 msgid "mouse name" msgstr "మౌస్ పేరు" -#: js/EnsembleBlocks.js:77 -#: js/EnsembleBlocks.js:92 -#: js/HeapBlocks.js:544 +#: js/blocks/EnsembleBlocks.js:77 +#: js/blocks/EnsembleBlocks.js:92 +#: js/blocks/HeapBlocks.js:544 #.TRANS: value1 is a numeric value (JAPANESE ONLY) msgid "index" msgstr "సూచి" -#: js/EnsembleBlocks.js:80 +#: js/blocks/EnsembleBlocks.js:80 msgid "turtle index heap" msgstr "టర్టిల్ సూచి హీప్" -#: js/EnsembleBlocks.js:82 +#: js/blocks/EnsembleBlocks.js:82 msgid "The Turtle index heap block returns a value in the heap at a specified location for a specified turtle." msgstr "టర్టిల్ సూచి హీప్ బ్లాక్ ఒక నిర్దిష్ట స్థానంలో నిర్దిష్ట టర్టిల్ కోసం హీప్లో విలువను తరిస్తుంది." -#: js/EnsembleBlocks.js:90 -#: js/EnsembleBlocks.js:167 -#: js/EnsembleBlocks.js:230 -#: js/EnsembleBlocks.js:316 -#: js/EnsembleBlocks.js:362 -#: js/EnsembleBlocks.js:400 -#: js/EnsembleBlocks.js:454 -#: js/EnsembleBlocks.js:504 -#: js/EnsembleBlocks.js:550 -#: js/EnsembleBlocks.js:597 -#: js/EnsembleBlocks.js:651 -#: js/EnsembleBlocks.js:763 -#: js/EnsembleBlocks.js:854 -#: js/EnsembleBlocks.js:915 -#: js/EnsembleBlocks.js:955 -#: js/EnsembleBlocks.js:1219 -#: js/EnsembleBlocks.js:1293 +#: js/blocks/EnsembleBlocks.js:90 +#: js/blocks/EnsembleBlocks.js:167 +#: js/blocks/EnsembleBlocks.js:230 +#: js/blocks/EnsembleBlocks.js:316 +#: js/blocks/EnsembleBlocks.js:362 +#: js/blocks/EnsembleBlocks.js:400 +#: js/blocks/EnsembleBlocks.js:454 +#: js/blocks/EnsembleBlocks.js:504 +#: js/blocks/EnsembleBlocks.js:550 +#: js/blocks/EnsembleBlocks.js:597 +#: js/blocks/EnsembleBlocks.js:651 +#: js/blocks/EnsembleBlocks.js:763 +#: js/blocks/EnsembleBlocks.js:854 +#: js/blocks/EnsembleBlocks.js:915 +#: js/blocks/EnsembleBlocks.js:955 +#: js/blocks/EnsembleBlocks.js:1219 +#: js/blocks/EnsembleBlocks.js:1293 #.TRANS: Yertle is the name of a turtle. msgid "Yertle" msgstr "యర్టెల్" -#: js/EnsembleBlocks.js:92 -#: js/EnsembleBlocks.js:1089 +#: js/blocks/EnsembleBlocks.js:92 +#: js/blocks/EnsembleBlocks.js:1089 msgid "turtle name" msgstr "టర్టిల్ పేరు" -#: js/EnsembleBlocks.js:122 -#: js/EnsembleBlocks.js:1197 -#: js/HeapBlocks.js:474 -#: js/HeapBlocks.js:572 +#: js/blocks/EnsembleBlocks.js:122 +#: js/blocks/EnsembleBlocks.js:1197 +#: js/blocks/HeapBlocks.js:474 +#: js/blocks/HeapBlocks.js:572 msgid "Index must be > 0." msgstr "సూచి ఉచితంగా ఉండాలి." -#: js/EnsembleBlocks.js:127 -#: js/HeapBlocks.js:479 -#: js/HeapBlocks.js:577 +#: js/blocks/EnsembleBlocks.js:127 +#: js/blocks/HeapBlocks.js:479 +#: js/blocks/HeapBlocks.js:577 msgid "Maximum heap size is 1000." msgstr "అత్యధిక హీప్ పరిమాణం 1000." -#: js/EnsembleBlocks.js:145 +#: js/blocks/EnsembleBlocks.js:145 msgid "stop mouse" msgstr "మౌస్ ఆపుకోండి" -#: js/EnsembleBlocks.js:147 +#: js/blocks/EnsembleBlocks.js:147 msgid "The Stop mouse block stops the specified mouse." msgstr "నిర్దిష్టమైన మౌస్‌ను ఆపుకోసం స్టాప్ మౌస్ బ్లాక్." -#: js/EnsembleBlocks.js:158 +#: js/blocks/EnsembleBlocks.js:158 msgid "stop turtle" msgstr "టర్టిల్ ఆపుకోండి" -#: js/EnsembleBlocks.js:160 +#: js/blocks/EnsembleBlocks.js:160 msgid "The Stop turtle block stops the specified turtle." msgstr "నిర్దిష్టమైన టర్టిల్‌ను ఆపుకోసం స్టాప్ టర్టిల్ బ్లాక్." -#: js/EnsembleBlocks.js:184 -#: js/EnsembleBlocks.js:247 -#: js/EnsembleBlocks.js:413 -#: js/EnsembleBlocks.js:468 -#: js/EnsembleBlocks.js:706 -#: js/EnsembleBlocks.js:808 -#: js/EnsembleBlocks.js:870 -#: js/EnsembleBlocks.js:1190 -#: js/EnsembleBlocks.js:1253 +#: js/blocks/EnsembleBlocks.js:184 +#: js/blocks/EnsembleBlocks.js:247 +#: js/blocks/EnsembleBlocks.js:413 +#: js/blocks/EnsembleBlocks.js:468 +#: js/blocks/EnsembleBlocks.js:706 +#: js/blocks/EnsembleBlocks.js:808 +#: js/blocks/EnsembleBlocks.js:870 +#: js/blocks/EnsembleBlocks.js:1190 +#: js/blocks/EnsembleBlocks.js:1253 msgid "Cannot find mouse" msgstr "మౌస్ కనబడదు" -#: js/EnsembleBlocks.js:186 -#: js/EnsembleBlocks.js:249 -#: js/EnsembleBlocks.js:415 -#: js/EnsembleBlocks.js:470 -#: js/EnsembleBlocks.js:708 -#: js/EnsembleBlocks.js:810 -#: js/EnsembleBlocks.js:872 -#: js/EnsembleBlocks.js:1192 -#: js/EnsembleBlocks.js:1255 +#: js/blocks/EnsembleBlocks.js:186 +#: js/blocks/EnsembleBlocks.js:249 +#: js/blocks/EnsembleBlocks.js:415 +#: js/blocks/EnsembleBlocks.js:470 +#: js/blocks/EnsembleBlocks.js:708 +#: js/blocks/EnsembleBlocks.js:810 +#: js/blocks/EnsembleBlocks.js:872 +#: js/blocks/EnsembleBlocks.js:1192 +#: js/blocks/EnsembleBlocks.js:1255 msgid "Cannot find turtle" msgstr "టర్టిల్ కనబడదు" -#: js/EnsembleBlocks.js:206 +#: js/blocks/EnsembleBlocks.js:206 msgid "start mouse" msgstr "మౌస్ ప్రారంభించండి" -#: js/EnsembleBlocks.js:209 +#: js/blocks/EnsembleBlocks.js:209 msgid "The Start mouse block starts the specified mouse." msgstr "నిర్దిష్టమైన మౌస్‌ను ప్రారంభించిస్తుంది." -#: js/EnsembleBlocks.js:220 +#: js/blocks/EnsembleBlocks.js:220 msgid "start turtle" msgstr "టర్టిల్ ప్రారంభించండి" -#: js/EnsembleBlocks.js:223 +#: js/blocks/EnsembleBlocks.js:223 msgid "The Start turtle block starts the specified turtle." msgstr "నిర్దిష్టమైన టర్టిల్‌ను ప్రారంభించిస్తుంది." -#: js/EnsembleBlocks.js:256 +#: js/blocks/EnsembleBlocks.js:256 msgid "Mouse is already running." msgstr "మౌస్ ఇప్పటికే ప్రవర్తిస్తోంది." -#: js/EnsembleBlocks.js:258 +#: js/blocks/EnsembleBlocks.js:258 msgid "Turtle is already running." msgstr "టర్టిల్ ఇప్పటికే ప్రవర్తిస్తోంది." -#: js/EnsembleBlocks.js:282 +#: js/blocks/EnsembleBlocks.js:282 msgid "Cannot find start block" msgstr "ప్రారంభించడానికి బ్లాక్ కనబడదు" -#: js/EnsembleBlocks.js:292 +#: js/blocks/EnsembleBlocks.js:292 #.TRANS: pen color for this mouse msgid "mouse color" msgstr "మౌస్ రంగు" -#: js/EnsembleBlocks.js:294 +#: js/blocks/EnsembleBlocks.js:294 msgid "The Mouse color block returns the pen color of the specified mouse." msgstr "నిర్దిష్టమైన మౌస్ కోసం పెన్ రంగును తరిస్తుంది." -#: js/EnsembleBlocks.js:306 +#: js/blocks/EnsembleBlocks.js:306 #.TRANS: pen color for this turtle msgid "turtle color" msgstr "టర్టిల్ రంగు" -#: js/EnsembleBlocks.js:308 +#: js/blocks/EnsembleBlocks.js:308 msgid "The Turtle color block returns the pen color of the specified turtle." msgstr "నిర్దిష్టమైన టర్టిల్ కోసం పెన్ రంగును తరిస్తుంది." -#: js/EnsembleBlocks.js:338 +#: js/blocks/EnsembleBlocks.js:338 #.TRANS: heading (compass direction) for this mouse msgid "mouse heading" msgstr "మౌస్ హెడింగ్" -#: js/EnsembleBlocks.js:340 +#: js/blocks/EnsembleBlocks.js:340 msgid "The Mouse heading block returns the heading of the specified mouse." msgstr "నిర్దిష్టమైన మౌస్ కోసం హెడింగ్ ను తరిస్తుంది." -#: js/EnsembleBlocks.js:352 +#: js/blocks/EnsembleBlocks.js:352 #.TRANS: heading (compass direction) for this turtle msgid "turtle heading" msgstr "టర్టిల్ హెడింగ్" -#: js/EnsembleBlocks.js:354 +#: js/blocks/EnsembleBlocks.js:354 msgid "The Turtle heading block returns the heading of the specified turtle." msgstr "నిర్దిష్టమైన టర్టిల్ కోసం హెడింగ్‌ను తరిస్తుంది." -#: js/EnsembleBlocks.js:384 -#: js/EnsembleBlocks.js:439 +#: js/blocks/EnsembleBlocks.js:384 +#: js/blocks/EnsembleBlocks.js:439 #.TRANS: set xy position for this mouse msgid "set mouse" msgstr "మౌస్ స్థానాన్ని సెట్ చేయండి" -#: js/EnsembleBlocks.js:391 -#: js/EnsembleBlocks.js:402 -#: js/BoxesBlocks.js:595 -msgid "name1" -msgstr "పేరు1" - -#: js/EnsembleBlocks.js:391 -#: js/EnsembleBlocks.js:402 -#: js/ProgramBlocks.js:881 -#: js/GraphicsBlocks.js:235 -#: js/GraphicsBlocks.js:313 -#: js/GraphicsBlocks.js:436 -#: js/GraphicsBlocks.js:487 -#: js/GraphicsBlocks.js:534 -#: js/GraphicsBlocks.js:750 +#: js/blocks/EnsembleBlocks.js:391 +#: js/blocks/EnsembleBlocks.js:402 +#: js/blocks/GraphicsBlocks.js:235 +#: js/blocks/GraphicsBlocks.js:313 +#: js/blocks/GraphicsBlocks.js:436 +#: js/blocks/GraphicsBlocks.js:487 +#: js/blocks/GraphicsBlocks.js:534 +#: js/blocks/GraphicsBlocks.js:750 +#: js/blocks/ProgramBlocks.js:881 msgid "x" msgstr "x" -#: js/EnsembleBlocks.js:391 -#: js/EnsembleBlocks.js:402 -#: js/ProgramBlocks.js:881 -#: js/GraphicsBlocks.js:149 -#: js/GraphicsBlocks.js:313 -#: js/GraphicsBlocks.js:436 -#: js/GraphicsBlocks.js:487 -#: js/GraphicsBlocks.js:534 -#: js/GraphicsBlocks.js:750 +#: js/blocks/EnsembleBlocks.js:391 +#: js/blocks/EnsembleBlocks.js:402 +#: js/blocks/GraphicsBlocks.js:149 +#: js/blocks/GraphicsBlocks.js:313 +#: js/blocks/GraphicsBlocks.js:436 +#: js/blocks/GraphicsBlocks.js:487 +#: js/blocks/GraphicsBlocks.js:534 +#: js/blocks/GraphicsBlocks.js:750 +#: js/blocks/ProgramBlocks.js:881 msgid "y" msgstr "y" -#: js/EnsembleBlocks.js:395 -#: js/EnsembleBlocks.js:452 +#: js/blocks/EnsembleBlocks.js:395 +#: js/blocks/EnsembleBlocks.js:452 #.TRANS: set xy position for this turtle msgid "set turtle" msgstr "టర్టిల్ స్థానాన్ని సెట్ చేయండి" -#: js/EnsembleBlocks.js:433 +#: js/blocks/EnsembleBlocks.js:433 msgid "The Set mouse block sends a stack of blocks to be run by the specified mouse." msgstr "నిర్దిష్టమైన మౌస్ ద్వారా అభివృద్ధి చేయబడిన బ్లాక్ల స్టాక్ను పంపిస్తుంది." -#: js/EnsembleBlocks.js:446 +#: js/blocks/EnsembleBlocks.js:446 msgid "The Set turtle block sends a stack of blocks to be run by the specified turtle." msgstr "నిర్దిష్టమైన టర్టిల్ ద్వారా అభివృద్ధి చేయబడిన బ్లాక్ల స్టాక్ను పంపిస్తుంది." -#: js/EnsembleBlocks.js:480 +#: js/blocks/EnsembleBlocks.js:480 #.TRANS: y position for this mouse msgid "mouse y" msgstr "మౌస్ Y స్థానం" -#: js/EnsembleBlocks.js:482 +#: js/blocks/EnsembleBlocks.js:482 msgid "The Y mouse block returns the Y position of the specified mouse." msgstr "నిర్దిష్టమైన మౌస్ కోసం Y స్థానాన్ను తరిస్తుంది." -#: js/EnsembleBlocks.js:494 +#: js/blocks/EnsembleBlocks.js:494 #.TRANS: y position for this turtle msgid "turtle y" msgstr "టర్టిల్ Y స్థానం" -#: js/EnsembleBlocks.js:496 +#: js/blocks/EnsembleBlocks.js:496 msgid "The Y turtle block returns the Y position of the specified turtle." msgstr "నిర్దిష్టమైన టర్టిల్ కోసం Y స్థానాన్ను తరిస్తుంది." -#: js/EnsembleBlocks.js:526 +#: js/blocks/EnsembleBlocks.js:526 #.TRANS: x position for this mouse msgid "mouse x" msgstr "మౌస్ X స్థానం" -#: js/EnsembleBlocks.js:528 +#: js/blocks/EnsembleBlocks.js:528 msgid "The X mouse block returns the X position of the specified mouse." msgstr "నిర్దిష్టమైన మౌస్ కోసం X స్థానాన్ను తరిస్తుంది." -#: js/EnsembleBlocks.js:540 +#: js/blocks/EnsembleBlocks.js:540 #.TRANS: x position for this turtle msgid "turtle x" msgstr "టర్టిల్ X స్థానం" -#: js/EnsembleBlocks.js:542 +#: js/blocks/EnsembleBlocks.js:542 msgid "The X turtle block returns the X position of the specified turtle." msgstr "నిర్దిష్టమైన టర్టిల్ కోసం X స్థానాన్ను తరిస్తుంది." -#: js/EnsembleBlocks.js:573 +#: js/blocks/EnsembleBlocks.js:573 #.TRANS: notes played by this mouse msgid "mouse notes played" msgstr "మౌస్ ప్లే చేసిన నోట్లు" -#: js/EnsembleBlocks.js:575 +#: js/blocks/EnsembleBlocks.js:575 msgid "The Mouse elapse notes block returns the number of notes played by the specified mouse." msgstr "నిర్దిష్టమైన మౌస్ కోసం Elapse చేసిన నోట్ల సంఖ్యను తరిస్తుంది." -#: js/EnsembleBlocks.js:587 +#: js/blocks/EnsembleBlocks.js:587 #.TRANS: notes played by this turtle msgid "turtle notes played" msgstr "టర్టిల్ ప్లే చేసిన నోట్లు" -#: js/EnsembleBlocks.js:589 +#: js/blocks/EnsembleBlocks.js:589 msgid "The Turtle elapse notes block returns the number of notes played by the specified turtle." msgstr "నిర్దిష్టమైన టర్టిల్ కోసం Elapse చేసిన నోట్ల సంఖ్యను తరిస్తుంది." -#: js/EnsembleBlocks.js:627 +#: js/blocks/EnsembleBlocks.js:627 #.TRANS: convert current note for this turtle to piano key (1-88) msgid "mouse pitch number" msgstr "మౌస్ పిచ్ సంఖ్య" -#: js/EnsembleBlocks.js:629 +#: js/blocks/EnsembleBlocks.js:629 msgid "The Mouse pitch block returns the current pitch number being played by the specified mouse." msgstr "నిర్దిష్టమైన మౌస్ కోసం ప్రస్తుత పిచ్ సంఖ్యను తరిస్తుంది." -#: js/EnsembleBlocks.js:641 +#: js/blocks/EnsembleBlocks.js:641 #.TRANS: convert current note for this turtle to piano key (1-88) msgid "turtle pitch number" msgstr "టర్టిల్ పిచ్ సంఖ్య" -#: js/EnsembleBlocks.js:643 -msgid "The Turrle pitch block returns the current pitch number being played by the specified turtle." -msgstr "" +#: js/blocks/EnsembleBlocks.js:643 +msgid "The Turtle pitch block returns the current pitch number being played by the specified turtle." +msgstr "నిర్దిష్టమైన టర్టిల్ కోసం ప్రస్తుత పిచ్ సంఖ్యను తరిస్తుంది." -#: js/EnsembleBlocks.js:747 -#: js/EnsembleBlocks.js:819 +#: js/blocks/EnsembleBlocks.js:747 +#: js/blocks/EnsembleBlocks.js:819 #.TRANS: note value is the duration of the note played by this mouse msgid "mouse note value" msgstr "మౌస్ నోట్ విల్యూ" -#: js/EnsembleBlocks.js:757 +#: js/blocks/EnsembleBlocks.js:757 #.TRANS: note value is the duration of the note played by this turtle msgid "turtle note value" msgstr "టర్టిల్ నోట్ విల్యూ" -#: js/EnsembleBlocks.js:830 +#: js/blocks/EnsembleBlocks.js:830 #.TRANS: sync is short for synchronization msgid "mouse sync" msgstr "మౌస్ సింక్" -#: js/EnsembleBlocks.js:832 +#: js/blocks/EnsembleBlocks.js:832 msgid "The Mouse sync block aligns the beat count between mice." msgstr "మౌస్ సింక్ బ్లాక్ మౌస్ల మధ్య బీట్ కౌంటును అమర్చుకుంది." -#: js/EnsembleBlocks.js:844 +#: js/blocks/EnsembleBlocks.js:844 #.TRANS: sync is short for synchronization msgid "turtle sync" msgstr "టర్టిల్ సింక్" -#: js/EnsembleBlocks.js:846 +#: js/blocks/EnsembleBlocks.js:846 msgid "The Turtle sync block aligns the beat count between turtles." msgstr "టర్టిల్ సింక్ బ్లాక్ టర్టిల్ల మధ్య బీట్ కౌంటును అమర్చుకుంది." -#: js/EnsembleBlocks.js:887 +#: js/blocks/EnsembleBlocks.js:887 msgid "The Found mouse block will return true if the specified mouse can be found." msgstr "నిర్దిష్టమైన మౌస్ కనబడినట్లు ఆపని తరిస్తుంది." -#: js/EnsembleBlocks.js:893 +#: js/blocks/EnsembleBlocks.js:893 msgid "found mouse" msgstr "కనిపించిన మౌస్" -#: js/EnsembleBlocks.js:903 +#: js/blocks/EnsembleBlocks.js:903 msgid "The Found turtle block will return true if the specified turtle can be found." msgstr "నిర్దిష్టమైన టర్టిల్ కనబడినట్లు ఆపని తరిస్తుంది." -#: js/EnsembleBlocks.js:909 +#: js/blocks/EnsembleBlocks.js:909 msgid "found turtle" msgstr "కనిపించిన టర్టిల్" -#: js/EnsembleBlocks.js:932 +#: js/blocks/EnsembleBlocks.js:932 msgid "new mouse" msgstr "కొత్త మౌస్" -#: js/EnsembleBlocks.js:934 +#: js/blocks/EnsembleBlocks.js:934 msgid "The New mouse block will create a new mouse." msgstr "కొత్త మౌస్ రూపొందిస్తుంది." -#: js/EnsembleBlocks.js:945 +#: js/blocks/EnsembleBlocks.js:945 msgid "new turtle" msgstr "కొత్త టర్టిల్" -#: js/EnsembleBlocks.js:947 +#: js/blocks/EnsembleBlocks.js:947 msgid "The New turtle block will create a new turtle." msgstr "కొత్త టర్టిల్ రూపొందిస్తుంది." -#: js/EnsembleBlocks.js:1011 +#: js/blocks/EnsembleBlocks.js:1011 msgid "set mouse color" msgstr "మౌస్ రంగు సెట్ చేయి" -#: js/EnsembleBlocks.js:1014 +#: js/blocks/EnsembleBlocks.js:1014 msgid "The Set-mouse-color block is used to set the color of a mouse." msgstr "మౌస్ యొక్క రంగును సెట్ చేయడానికి ఉపయోగిస్తారు." -#: js/EnsembleBlocks.js:1020 +#: js/blocks/EnsembleBlocks.js:1020 msgid "set turtle color" msgstr "టర్టిల్ రంగు సెట్ చేయి" -#: js/EnsembleBlocks.js:1023 +#: js/blocks/EnsembleBlocks.js:1023 msgid "The Set-turtle-color block is used to set the color of a turtle." msgstr "టర్టిల్ యొక్క రంగును సెట్ చేయడానికి ఉపయోగిస్తారు." -#: js/EnsembleBlocks.js:1083 +#: js/blocks/EnsembleBlocks.js:1083 msgid "The Mouse-name block returns the name of a mouse." msgstr "మౌస్-పేరు బ్లాక్ మౌస్ పేరును తరిస్తుంది." -#: js/EnsembleBlocks.js:1092 +#: js/blocks/EnsembleBlocks.js:1092 msgid "The Turtle-name block returns the name of a turtle." msgstr "టర్టిల్-పేరు బ్లాక్ టర్టిల్ పేరును తరిస్తుంది." -#: js/EnsembleBlocks.js:1115 +#: js/blocks/EnsembleBlocks.js:1115 msgid "mouse count" msgstr "మౌస్ సంఖ్య" -#: js/EnsembleBlocks.js:1118 +#: js/blocks/EnsembleBlocks.js:1118 msgid "The Mouse-count block returns the number of mice." msgstr "మౌస్-కౌంట్ బ్లాక్ మౌస్ సంఖ్యను తరిస్తుంది." -#: js/EnsembleBlocks.js:1124 +#: js/blocks/EnsembleBlocks.js:1124 msgid "turtle count" msgstr "టర్టిల్ సంఖ్య" -#: js/EnsembleBlocks.js:1127 +#: js/blocks/EnsembleBlocks.js:1127 msgid "The Turtle-count block returns the number of turtles." msgstr "టర్టిల్-కౌంట్ బ్లాక్ టర్టిల్ల సంఖ్యను తరిస్తుంది." -#: js/EnsembleBlocks.js:1149 +#: js/blocks/EnsembleBlocks.js:1149 msgid "nth mouse name" msgstr "ఎన్తసారి మౌస్ పేరు" -#: js/EnsembleBlocks.js:1152 +#: js/blocks/EnsembleBlocks.js:1152 msgid "The Nth-Mouse name block returns the name of the nth mouse." msgstr "Nth-Mouse పేరు బ్లాక్ Nth మౌస్ పేరును తరిస్తుంది." -#: js/EnsembleBlocks.js:1158 +#: js/blocks/EnsembleBlocks.js:1158 msgid "nth turtle name" msgstr "ఎన్తసారి టర్టిల్ పేరు" -#: js/EnsembleBlocks.js:1161 +#: js/blocks/EnsembleBlocks.js:1161 msgid "The Nth-Turtle name block returns the name of the nth turtle." msgstr "Nth-Turtle పేరు బ్లాక్ Nth టర్టిల్ పేరును తరిస్తుంది." -#: js/EnsembleBlocks.js:1205 -#: js/EnsembleBlocks.js:1265 +#: js/blocks/EnsembleBlocks.js:1205 +#: js/blocks/EnsembleBlocks.js:1265 msgid "set name" msgstr "పేరు సెట్ చేయి" -#: js/EnsembleBlocks.js:1214 -#: js/EnsembleBlocks.js:1221 +#: js/blocks/EnsembleBlocks.js:1214 +#: js/blocks/EnsembleBlocks.js:1221 msgid "source" msgstr "మూలం" -#: js/EnsembleBlocks.js:1214 -#: js/EnsembleBlocks.js:1221 +#: js/blocks/EnsembleBlocks.js:1214 +#: js/blocks/EnsembleBlocks.js:1221 msgid "target" msgstr "లక్ష్యం" -#: js/EnsembleBlocks.js:1271 +#: js/blocks/EnsembleBlocks.js:1271 msgid "The Set-name block is used to name a mouse." msgstr "Set-name బ్లాక్ ఒక మౌస్ని పేరు చేయడానికి ఉపయోగిస్తారు." -#: js/EnsembleBlocks.js:1284 +#: js/blocks/EnsembleBlocks.js:1284 msgid "The Set-name block is used to name a turtle." msgstr "Set-name బ్లాక్ ఒక టర్టిల్ని పేరు చేయడానికి ఉపయోగిస్తారు." -#: js/BooleanBlocks.js:44 -msgid "The Not block is the logical not operator." -msgstr "కాదు బ్లాక్ యొక్క మాండన్ని దాని అవిని." - -#: js/BooleanBlocks.js:62 -msgid "not" -msgstr "కాదు" - -#: js/BooleanBlocks.js:134 -msgid "The And block is the logical and operator." -msgstr "మరియు బ్లాక్ యొక్క మాండన్ని దాని అవిని." - -#: js/BooleanBlocks.js:152 -msgid "and" -msgstr "మరియు" - -#: js/BooleanBlocks.js:218 -msgid "The Or block is the logical or operator." -msgstr "లేదా బ్లాక్ యొక్క మాండన్ని దాని అవిని." - -#: js/BooleanBlocks.js:236 -msgid "or" -msgstr "లేదా" - -#: js/BooleanBlocks.js:302 -msgid "The XOR block is the logical XOR operator." -msgstr "XOR బ్లాక్ యొక్క మాండన్ని దాని అవిని." - -#: js/BooleanBlocks.js:320 -msgid "xor" -msgstr "జార్" - -#: js/BooleanBlocks.js:808 -msgid "The Equal block returns True if the two numbers are equal." -msgstr "ఇరువు సంఖ్యలు సరిపడితే, అప్పటికే ట్రూ." - -#: js/BooleanBlocks.js:909 -msgid "The Not-equal-to block returns True if the two numbers are not equal to each other." -msgstr "" - -#: js/BooleanBlocks.js:1008 -msgid "The Boolean block is used to specify true or false." -msgstr "బూలియన్ బ్లాక్ ట్రూ లేదా ఫాల్స్ ని నిర్దిష్టించడానికి ఉపయోగిస్తారు." - -#: js/MediaBlocks.js:35 -#.TRANS: right side of the screen -msgid "right (screen)" -msgstr "డిక్షన్ (స్క్రీన్)" - -#: js/MediaBlocks.js:45 -#: js/MediaBlocks.js:56 -msgid "The Right block returns the position of the right of the canvas." -msgstr "రైట్ బ్లాక్ క్యానవాస్ యొక్క కూడా స్థానాన్ని తరిస్తుంది." - -#: js/MediaBlocks.js:97 -#.TRANS: left side of the screen -msgid "left (screen)" -msgstr "ఎడా (స్క్రీన్)" - -#: js/MediaBlocks.js:107 -#: js/MediaBlocks.js:118 -msgid "The Left block returns the position of the left of the canvas." -msgstr "ఎడా బ్లాక్ క్యానవాస్ యొక్క ఎడాన్ని తరిస్తుంది." - -#: js/MediaBlocks.js:158 -msgid "top (screen)" -msgstr "ముక్క (స్క్రీన్)" - -#: js/MediaBlocks.js:168 -#: js/MediaBlocks.js:179 -msgid "The Top block returns the position of the top of the canvas." -msgstr "టాప్ బ్లాక్ క్యానవాస్ యొక్క ముక్కను తరిస్తుంది." - -#: js/MediaBlocks.js:219 -msgid "bottom (screen)" -msgstr "దిగువ (స్క్రీన్)" - -#: js/MediaBlocks.js:229 -#: js/MediaBlocks.js:240 -msgid "The Bottom block returns the position of the bottom of the canvas." -msgstr "బాటమ్ బ్లాక్ క్యానవాస్ యొక్క కొనసాగిన స్థానాన్ని తరిస్తుంది." - -#: js/MediaBlocks.js:282 -msgid "width" -msgstr "వెడల్పు" - -#: js/MediaBlocks.js:291 -msgid "The Width block returns the width of the canvas." -msgstr "వెడల్పు బ్లాక్ క్యానవాస్ యొక్క వెడల్పును తరిస్తుంది." +#: js/blocks/ExtrasBlocks.js:33 +msgid "fraction" +msgstr "భాగం" -#: js/MediaBlocks.js:325 -msgid "height" -msgstr "ఎత్తు" +#: js/blocks/ExtrasBlocks.js:36 +msgid "Convert a float to a fraction" +msgstr "ఫ్లోట్ను భాగంగా మార్చు" -#: js/MediaBlocks.js:334 -msgid "The Height block returns the height of the canvas." -msgstr "ఎత్తు బ్లాక్ క్యానవాస్ యొక్క ఎత్తను తరిస్తుంది." +#: js/blocks/ExtrasBlocks.js:93 +msgid "save as ABC" +msgstr "ABC రూపంలో భద్రపరచు" -#: js/MediaBlocks.js:369 -#.TRANS: stops playback of an audio recording -msgid "stop play" -msgstr "ప్లే నిలిపివేయి" +#: js/blocks/ExtrasBlocks.js:96 +#: js/blocks/ExtrasBlocks.js:132 +#: js/blocks/ExtrasBlocks.js:168 +msgid "title" +msgstr "శీర్షిక" -#: js/MediaBlocks.js:404 -#.TRANS: Erases the images and text -msgid "erase media" -msgstr "చిత్రాలు మరియు వచనాలను తొలగించు" +#: js/blocks/ExtrasBlocks.js:129 +msgid "save as Lilypond" +msgstr "లిలీపాండ్ రూపంలో భద్రపరచు" -#: js/MediaBlocks.js:409 -msgid "The Erase Media block erases text and images." -msgstr "ఎరేస్ మీడియా బ్లాక్ వచనాలు మరియు చిత్రాలను తొలగించిపెట్టింది." +#: js/blocks/ExtrasBlocks.js:165 +msgid "save as SVG" +msgstr "SVG రూపంలో భద్రపరచు" -#: js/MediaBlocks.js:439 -#.TRANS: play an audio recording -msgid "play back" -msgstr "ప్లే బ్యాక్" +#: js/blocks/ExtrasBlocks.js:216 +msgid "no background" +msgstr "ఎన్నికలేదు నేను" -#: js/MediaBlocks.js:487 -msgid "speak" -msgstr "మాట్లాడు" +#: js/blocks/ExtrasBlocks.js:219 +msgid "The No background block eliminates the background from the saved SVG output." +msgstr "నో బ్యాక్గ్రౌండ్ బ్లాక్ సేవ్ చేసిన SVG ఔట్‌పుట్ నుండి బ్యాక్గ్రౌండ్‌ను తొలగిస్తుంది." -#: js/MediaBlocks.js:495 -msgid "The Speak block outputs to the text-to-speech synthesizer" -msgstr "దాని విషయంగా, సాక్షరిక మాధ్యమ సింథిసైజర్‌కు ఆఉట్‌పుట్ చేస్తుంది" +#: js/blocks/ExtrasBlocks.js:247 +msgid "show blocks" +msgstr "భాగాలను చూపు" -#: js/MediaBlocks.js:546 -msgid "camera" -msgstr "క్యామెరా" +#: js/blocks/ExtrasBlocks.js:249 +msgid "The Show blocks block shows the blocks." +msgstr "షో బ్లాక్స్ బ్లాక్ భాగాలను చూపుతుంది." -#: js/MediaBlocks.js:551 -msgid "The Camera block connects a webcam to the Show block." -msgstr "క్యామెరా బ్లాక్ వెబ్‌క్యామ్‌ను షో బ్లాక్‌కు కలిపిస్తుంది." +#: js/blocks/ExtrasBlocks.js:274 +msgid "hide blocks" +msgstr "భాగాలను దాచు" -#: js/MediaBlocks.js:574 -msgid "video" -msgstr "వీడియో" +#: js/blocks/ExtrasBlocks.js:276 +msgid "The Hide blocks block hides the blocks." +msgstr "హైడ్ బ్లాక్స్ బ్లాక్ భాగాలను దాచుతుంది." -#: js/MediaBlocks.js:579 -msgid "The Video block selects video for use with the Show block." -msgstr "వీడియో బ్లాక్ షో బ్లాక్‌తో ఉపయోగించాల్సిన వీడియోను ఎంచుకుంది." +#: js/blocks/ExtrasBlocks.js:305 +#: js/blocks/ExtrasBlocks.js:338 +msgid "The Space block is used to add space between blocks." +msgstr "స్పేస్ బ్లాక్ భాగాల మధ్యలో స్థానాన్ని జోడించడానికి ఉపయోగించబడుతుంది." -#: js/MediaBlocks.js:607 -msgid "The Open file block opens a file for use with the Show block." -msgstr "ఓపెన్ ఫైల్ బ్లాక్ ఫైల్‌ను షో బ్లాక్‌తో ఉపయోగించడానికి తెరవిస్తుంది." +#: js/blocks/ExtrasBlocks.js:376 +msgid "wait" +msgstr "వేచి ఉండు" -#: js/MediaBlocks.js:645 -msgid "stop media" -msgstr "మీడియా ఆపరేషన్ ఆపు" +#: js/blocks/ExtrasBlocks.js:379 +msgid "The Wait block pauses the program for a specified number of seconds." +msgstr "వేచి ఉండు బ్లాక్ ప్రోగ్రామ్‌ను ప్రతిసారి నిర్దిష్టమైన సెకన్ల కోసం విరామిస్తుంది." -#: js/MediaBlocks.js:650 -msgid "The Stop media block stops audio or video playback." -msgstr "స్టాప్ మీడియా బ్లాక్ ఆడియో లేదా వీడియో ప్లేబ్యాక్‌ను ఆపుకుంది." +#: js/blocks/ExtrasBlocks.js:433 +#: plugins/facebook.rtp:30 +msgid "comment" +msgstr "వ్యాఖ్య" -#: js/MediaBlocks.js:679 -#: js/PitchBlocks.js:1539 -#: js/phrasemaker.js:822 -#: js/musickeyboard.js:1654 -#.TRANS: a measure of frequency: one cycle per second -msgid "hertz" -msgstr "హర్ట్జ్" +#: js/blocks/ExtrasBlocks.js:469 +msgid "print" +msgstr "ముద్రణ" -#: js/MediaBlocks.js:692 -msgid "duration (ms)" -msgstr "అవధి (మి.సె.)" +#: js/blocks/ExtrasBlocks.js:476 +msgid "The Print block displays text at the top of the screen." +msgstr "ప్రింట్ బ్లాక్ స్క్రీన్ చోటకు వచ్చిన టెక్స్ట్‌ను ప్రదర్శిస్తుంది." -#: js/MediaBlocks.js:728 -#.TRANS: translate a note into hertz, e.g., A4 -> 440HZ -msgid "note to frequency" -msgstr "గానాను హర్ట్జ్‌కు అనువదించండి, ఉదాహరణ A4 -> 440HZ" +#: js/blocks/ExtrasBlocks.js:582 +msgid "display grid" +msgstr "గ్రిడ్ ప్రదర్శించు" -#: js/MediaBlocks.js:736 -msgid "The To frequency block converts a pitch name and octave to Hertz." -msgstr "టు ఫ్రిక్వెన్సీ బ్లాక్ పిచ్ పేరు మరియు ఆక్టావ్‌ను హర్ట్జ్‌కు మార్చిపెడతాం." +#: js/blocks/ExtrasBlocks.js:587 +msgid "The Display Grid Block changes the grid type" +msgstr "డిస్ప్లే గ్రిడ్ బ్లాక్ గ్రిడ్ రకాన్ని మార్చుతుంది." -#: js/MediaBlocks.js:746 -#: js/PitchBlocks.js:656 -#: js/PitchBlocks.js:932 -#: js/PitchBlocks.js:1827 -#.TRANS: name2 is name as in name of pitch (JAPANESE ONLY) -msgid "name2" -msgstr "పేరు2" +#: js/blocks/ExtrasBlocks.js:689 +#: js/blocks/ExtrasBlocks.js:708 +#: js/blocks/ExtrasBlocks.js:731 +#: js/blocks/ExtrasBlocks.js:754 +#: js/blocks/ExtrasBlocks.js:772 +#: js/blocks/ExtrasBlocks.js:791 +#: js/blocks/ExtrasBlocks.js:810 +#: js/blocks/ExtrasBlocks.js:829 +msgid "unknown" +msgstr "" -#: js/MediaBlocks.js:812 -msgid "The Avatar block is used to change the appearance of the mouse." -msgstr "ఆవతార్ బ్లాక్ మౌస్ యొక్క ప్రదర్శనను మార్చడానికి ఉపయోగిస్తారు." +#: js/blocks/FlowBlocks.js:41 +msgid "The Backward block runs code in reverse order (Musical retrograde)." +msgstr "బ్యాక్వర్డ్ బ్లాక్ కోడ్ను ప్రతిపక్ష క్రమంలో అమలు చేస్తుంది (సంగీత రెట్రోగ్రేడ్)." -#: js/MediaBlocks.js:819 -msgid "The Avatar block is used to change the appearance of the turtle." -msgstr "ఆవతార్ బ్లాక్ టర్టిల్ యొక్క ప్రదర్శనను మార్చడానికి ఉపయోగిస్తారు." +#: js/blocks/FlowBlocks.js:48 +msgid "backward" +msgstr "ప్రతిపక్షం" -#: js/MediaBlocks.js:831 -#: js/MediaBlocks.js:891 -#.TRANS: a media object -msgid "size" -msgstr "పరిమాణం" +#: js/blocks/FlowBlocks.js:124 +msgid "The Duplicate block will run each block multiple times." +msgstr "డ్యూప్లికేట్ బ్లాక్ ప్రతి బ్లాక్ను అనేకసారి అమలు చేస్తుంది." -#: js/MediaBlocks.js:831 -msgid "image" -msgstr "చిత్రం" +#: js/blocks/FlowBlocks.js:136 +msgid "duplicate" +msgstr "డ్యూప్లికేట్" -#: js/MediaBlocks.js:880 -msgid "The Show block is used to display text or images on the canvas." -msgstr "షో బ్లాక్ టెక్స్ట్ లేదా చిత్రాలను క్యాన్వాస్‌పై ప్రదర్శించడానికి ఉపయోగిస్తారు." +#: js/blocks/FlowBlocks.js:334 +msgid "The Default block is used inside of a Switch to define the default action." +msgstr "డిఫాల్ట్ బ్లాక్ స్విచ్లో డిఫాల్ట్ యాక్షన్‌ను నిర్వచించడానికి ఉపయోగిస్తారు." -#: js/MediaBlocks.js:888 -#.TRANS: show1 is show as in display an image or text on the screen. -msgid "show1" -msgstr "ప్రదర్శించు1" +#: js/blocks/FlowBlocks.js:342 +msgid "default" +msgstr "డిఫాల్ట్" -#: js/MediaBlocks.js:891 -msgid "obj" -msgstr "ఆబ్జెక్ట్" +#: js/blocks/FlowBlocks.js:361 +#: js/blocks/FlowBlocks.js:418 +msgid "The Case Block must be used inside of a Switch Block." +msgstr "కేస్ బ్లాక్ స్విచ్ బ్లాక్ లో ఉపయోగించాలి." -#: js/MediaBlocks.js:938 -msgid "The Media block is used to import an image." -msgstr "మీడియా బ్లాక్ చిత్రం దిగుమతికి ఉపయోగిస్తారు." +#: js/blocks/FlowBlocks.js:389 +msgid "The Case block is used inside of a Switch to define matches." +msgstr "కేస్ బ్లాక్ ఒక స్విచ్‌లో మ్యాచ్‌లను నిర్వచించడానికి ఉపయోగిస్తారు." -#: js/MediaBlocks.js:973 -msgid "The Text block holds a text string." -msgstr "టెక్స్ట్ బ్లాక్ ఒక టెక్స్ట్ స్ట్రింగ్‌ను నిలుస్తుంది." +#: js/blocks/FlowBlocks.js:397 +msgid "case" +msgstr "కేస్" -#: js/ProgramBlocks.js:33 -msgid "The Load-heap-from-app block loads the heap from a web page." -msgstr "లోడ్-హీప్-ఫ్రం-యాప్ బ్లాక్ ఒక వెబ్ పేజీని నుండి హీప్‌ను లోడ్ చేస్తుంది." +#: js/blocks/FlowBlocks.js:446 +msgid "The Switch block will run the code in the matching Case." +msgstr "స్విచ్ బ్లాక్ అనుగుణమైన కేస్ లో కోడ్‌ను అమలు చేస్తుంది." -#: js/ProgramBlocks.js:44 -#.TRANS: load the heap contents from a URL -msgid "load heap from App" -msgstr "అప్‌ను నుండి హీప్ కంటెంట్‌ను లోడ్ చేయండి" +#: js/blocks/FlowBlocks.js:454 +msgid "switch" +msgstr "స్విచ్" -#: js/ProgramBlocks.js:95 -msgid "Error parsing JSON data:" -msgstr "JSON డేటాను విశ్లేషణ చేయడంలో లోపం:" +#: js/blocks/FlowBlocks.js:595 +msgid "The Stop block will stop a loop" +msgstr "స్టాప్ బ్లాక్ లూప్‌ను నిలిపివేస్తుంది" -#: js/ProgramBlocks.js:100 -msgid "404: Page not found" -msgstr "404: పేజీ కనుగొనబడలేదు" +#: js/blocks/FlowBlocks.js:597 +msgid "Forever, Repeat, While, or Until." +msgstr "ఎప్పటికీ, పునరావర్తనం, పరిస్థితి, లేదా అంతకుముందు." -#: js/ProgramBlocks.js:133 -msgid "The Save-heap-to-app block saves the heap to a web page." -msgstr "సేవ్-హీప్-టు-యాప్ బ్లాక్ హీప్‌ను ఒక వెబ్ పేజీకి భద్రపరచేస్తుంది." +#: js/blocks/FlowBlocks.js:604 +#: js/widgets/timbre.js:417 +#: js/widgets/timbre.js:419 +#: js/widgets/musickeyboard.js:819 +#: js/widgets/musickeyboard.js:821 +#: js/widgets/phrasemaker.js:4202 +#: plugins/rodi.rtp:29 +#: plugins/rodi.rtp:73 +#: plugins/rodi.rtp:413 +msgid "stop" +msgstr "పైన " -#: js/ProgramBlocks.js:144 -#.TRANS: save the heap contents to a URL -msgid "save heap to App" -msgstr "అప్‌కి హీప్ కంటెంట్‌ను భద్రపరచేయండి" +#: js/blocks/FlowBlocks.js:653 +msgid "The Waitfor block will wait until the condition is true." +msgstr "వేయిట్‌ఫార్ బ్లాక్ అవసరమైన స్థితి కి వేచికాదు." -#: js/ProgramBlocks.js:189 -msgid "Cannot find a valid heap for" -msgstr "కొరకు చాలామంది మాన్యమైన హీప్‌ను కనుగొనలేరు" +#: js/blocks/FlowBlocks.js:661 +msgid "wait for" +msgstr "వేచికాడు" -#: js/ProgramBlocks.js:206 -msgid "The Load-heap block loads the heap from a file." -msgstr "లోడ్-హీప్ బ్లాక్ హీప్‌ను ఒక ఫైల్‌నుండి లోడ్ చేస్తుంది." +#: js/blocks/FlowBlocks.js:732 +msgid "The Until block will repeat until the condition is true." +msgstr "అంతకుముందు స్థితి నిజమేనంతలే పునరావృత్తి చేస్తుంది." -#: js/ProgramBlocks.js:217 -#.TRANS: load the heap from a file -msgid "load heap" -msgstr "హీప్‌ను ఫైల్ నుండి లోడ్ చేయండి" +#: js/blocks/FlowBlocks.js:740 +msgid "until" +msgstr "అప్పటివరకు" -#: js/ProgramBlocks.js:270 -msgid "The file you selected does not contain a valid heap." -msgstr "మీ ఎంచుకున్న ఫైల్ మాన్యమైన హీప్ కంటేదేమీ ఉండదు." +#: js/blocks/FlowBlocks.js:742 +#: js/blocks/FlowBlocks.js:822 +msgid "do2" +msgstr "చేస్తాం2" -#: js/ProgramBlocks.js:275 -msgid "The loadHeap block needs a loadFile block." -msgstr "లోడ్‌హీప్ బ్లాక్ ఒక లోడ్‌ఫైల్ బ్లాక్ అవసరం." +#: js/blocks/FlowBlocks.js:812 +msgid "The While block will repeat while the condition is true." +msgstr "ఈ పరిస్థితి నిజమేనంతలే విరుపములను పునరావృత్తి చేస్తుంది." -#: js/ProgramBlocks.js:291 -msgid "The Set-heap block loads the heap." -msgstr "సెట్-హీప్ బ్లాక్ హీప్‌ను లోడ్ చేస్తుంది." +#: js/blocks/FlowBlocks.js:820 +msgid "while" +msgstr "రాయు " -#: js/ProgramBlocks.js:299 -#: js/HeapBlocks.js:539 -#.TRANS: load the heap from a JSON encoding -msgid "set heap" -msgstr "హీప్‌ను లోడ్ చేయండి" +#: js/blocks/FlowBlocks.js:903 +#: js/blocks/FlowBlocks.js:968 +#: js/blocks/FlowBlocks.js:979 +msgid "In this example if the mouse button is pressed a snare drum will play." +msgstr "ఈ ఉదాహరణలో మౌస్ బటన్ నొక్కితే స్నేర్ డ్రమ్ ప్లే అవుతుంది." -#: js/ProgramBlocks.js:340 -msgid "The block you selected does not contain a valid heap." -msgstr "మీ ఎంచుకున్న బ్లాక్ మాన్యమైన హీప్ కంటేదేమీ ఉండదు." +#: js/blocks/FlowBlocks.js:925 +#: js/blocks/FlowBlocks.js:988 +msgid "if" +msgstr "ఒక వేళ" -#: js/ProgramBlocks.js:343 -msgid "The Set heap block needs a heap." -msgstr "సెట్ హీప్ బ్లాక్ ఒక హీప్ అవసరం." +#: js/blocks/FlowBlocks.js:927 +#: js/blocks/FlowBlocks.js:990 +msgid "then" +msgstr "అయితే" -#: js/ProgramBlocks.js:360 -msgid "The Load-dictionary block loads a dictionary from a file." -msgstr "లోడ్-డిక్షనరీ బ్లాక్ ఫైల్‌నుండి డిక్షనరీను లోడ్ చేస్తుంది." +#: js/blocks/FlowBlocks.js:927 +msgid "else" +msgstr "" -#: js/ProgramBlocks.js:372 -#.TRANS: load a dictionary from a file -msgid "load dictionary" -msgstr "డిక్షనరీను లోడ్ చేయండి" +#: js/blocks/FlowBlocks.js:1025 +msgid "The Forever block will repeat the contained blocks forever." +msgstr "ఫారెవర్ బ్లాక్ అంతకుముందు ఉన్న బ్లాక్‌లను ఎప్పటికీ పునరావృత్తి చేస్తుంది." -#: js/ProgramBlocks.js:390 -#: js/ProgramBlocks.js:658 -#: js/ToneBlocks.js:1025 -msgid "file" -msgstr "ఫైల్" +#: js/blocks/FlowBlocks.js:1037 +msgid "forever" +msgstr "ఎప్పటికీ" -#: js/ProgramBlocks.js:396 -#: js/ProgramBlocks.js:501 -#: js/ProgramBlocks.js:664 -#: js/DictBlocks.js:80 -#: js/DictBlocks.js:145 -#: js/DictBlocks.js:216 -#: js/DictBlocks.js:290 -msgid "My Dictionary" -msgstr "నా నిఘంటువు" +#: js/blocks/FlowBlocks.js:1073 +msgid "The Repeat block will repeat the contained blocks." +msgstr "పునరావృత్తి బ్లాక్ పొందిన బ్లాక్‌లను పునరావృత్తిలో చేయి." -#: js/ProgramBlocks.js:444 -msgid "The file you selected does not contain a valid dictionary." -msgstr "మీరు ఎంచుకున్న ఫైలు యొక్క యాక్షనరాద నిఘంటువు కాదు." +#: js/blocks/FlowBlocks.js:1075 +msgid "In this example the note will be played 4 times." +msgstr "ఈ ఉదాహరణలో నోట్‌ను 4 సార్లు ప్లే చేయబడుతుంది." -#: js/ProgramBlocks.js:449 -msgid "The load dictionary block needs a load file block." -msgstr "లోడ్ నిఘంటువు బ్లాక్ ఒక లోడ్ ఫైల్ బ్లాక్ అవసరం." +#: js/blocks/FlowBlocks.js:1083 +msgid "repeat" +msgstr "మళ్ళీ చేయి" -#: js/ProgramBlocks.js:466 -msgid "The Set-dictionary block loads a dictionary." -msgstr "సెట్-నిఘంటువు బ్లాక్ నిఘంటువును లోడ్ చేస్తుంది." +#: js/blocks/FlowBlocks.js:1123 +msgid "duplicate factor" +msgstr "ఎంపికలు ఏమిటి ఎంపిక చేసేందుకు ఉపయోగపడే అంశం" -#: js/ProgramBlocks.js:477 -#.TRANS: load a dictionary from a JSON -msgid "set dictionary" -msgstr "సెట్ నిఘంటువు" +#: js/blocks/HeapBlocks.js:49 +msgid "The Heap block returns the heap." +msgstr "హీప్ బ్లాక్ హీప్ను తిరిగిస్తుంది." -#: js/ProgramBlocks.js:546 -msgid "The block you selected does not contain a valid dictionary." -msgstr "మీరు ఎంచుకున్న బ్లాక్ యొక్క యాక్షనరాద నిఘంటువు కాదు." +#: js/blocks/HeapBlocks.js:133 +msgid "show heap" +msgstr "హీప్ అంశాలను చూపుము" -#: js/ProgramBlocks.js:550 -msgid "The set dictionary block needs a dictionary." -msgstr "సెట్ నిఘంటువు బ్లాక్ ఒక నిఘంటువు అవసరం." +#: js/blocks/HeapBlocks.js:181 +msgid "The Heap-length block returns the length of the heap." +msgstr "హీప్-లెంత్ బ్లాక్ హీప్ యొక్క నైపుణ్యంను తిరిగిస్తుంది." -#: js/ProgramBlocks.js:567 -msgid "The Save-heap block saves the heap to a file." -msgstr "సేవ్-హీప్ బ్లాక్ హీప్ను ఒక ఫైల్కు సేవ్ చేస్తుంది." +#: js/blocks/HeapBlocks.js:195 +msgid "heap length" +msgstr "హీప్ లెంత్" -#: js/ProgramBlocks.js:578 -#.TRANS: save the heap to a file -msgid "save heap" -msgstr "హీప్ను సేవ్ చేయండి" +#: js/blocks/HeapBlocks.js:254 +msgid "The Heap-empty? block returns true if the heap is empty." +msgstr "హీప్-ఖాళీ? బ్లాక్ హీప్ ఖాళీ ఉంటే నిజమేనని తిరిగిస్తుంది." -#: js/ProgramBlocks.js:629 -msgid "The Save-dictionary block saves a dictionary to a file." -msgstr "సేవ్-నిఘంటువు బ్లాక్ ఒక నిఘంటువును ఒక ఫైల్కు సేవ్ చేస్తుంది." +#: js/blocks/HeapBlocks.js:268 +#.TRANS: Is the heap empty? +msgid "heap empty?" +msgstr "హీప్ ఖాళీ?" -#: js/ProgramBlocks.js:640 -#.TRANS: save a dictionary to a file -msgid "save dictionary" -msgstr "నిఘంటువును సేవ్ చేయండి" +#: js/blocks/HeapBlocks.js:317 +msgid "The Empty-heap block empties the heap." +msgstr "ఎంప్టీ-హీప్ బ్లాక్ హీప్ను ఖాళీ చేస్తుంది." -#: js/ProgramBlocks.js:720 -msgid "The Open palette block opens a palette." -msgstr "ఓపెన్ పాలెట్ బ్లాక్ ఒక పాలెట్ను తెరవిస్తుంది." +#: js/blocks/HeapBlocks.js:327 +#: js/blocks/HeapBlocks.js:647 +#.TRANS: empty the heap +msgid "empty heap" +msgstr "ఖాళీ హీప్" -#: js/ProgramBlocks.js:727 -msgid "open palette" -msgstr "పాలెట్ను తెరవండి" +#: js/blocks/HeapBlocks.js:371 +msgid "The Reverse-heap block reverses the order of the heap." +msgstr "రివర్స్-హీప్ బ్లాక్ హీప్ యొక్క క్రమాను ప్రతిపలకం చేస్తుంది." -#: js/ProgramBlocks.js:785 -msgid "The Delete block block removes a block." -msgstr "డిలీట్ బ్లాక్ బ్లాక్ ఒక బ్లాక్ను తీసేస్తుంది." +#: js/blocks/HeapBlocks.js:384 +#.TRANS: reverse the order of the heap +msgid "reverse heap" +msgstr "హీప్ క్రమాను ప్రతిపలకం చేస్తుంది." -#: js/ProgramBlocks.js:797 -#.TRANS: Move this block to the trash. -msgid "delete block" -msgstr "ఈ బ్లాక్ను కచ్చివేయండి." +#: js/blocks/HeapBlocks.js:428 +msgid "The Index-heap block returns a value in the heap at a specified location." +msgstr "ఇండెక్స్-హీప్ బ్లాక్ హీప్లో ఒక క్షేత్రంలో విలువను తిరిగిస్తుంది." -#: js/ProgramBlocks.js:861 -msgid "The Move block block moves a block." -msgstr "మూవ్ బ్లాక్ బ్లాక్ ఒక బ్లాక్ను నేయిస్తుంది." +#: js/blocks/HeapBlocks.js:443 +#.TRANS: retrieve a value from the heap at index position in the heap +msgid "index heap" +msgstr "ఇండెక్స్ హీప్" -#: js/ProgramBlocks.js:869 -#.TRANS: Move the position of a block on the screen. -msgid "move block" -msgstr "బ్లాక్ను నేయండి" +#: js/blocks/HeapBlocks.js:523 +msgid "The Set-heap entry block sets a value in he heap at the specified location." +msgstr "" -#: js/ProgramBlocks.js:881 -#: js/ProgramBlocks.js:1048 -msgid "block number" -msgstr "బ్లాక్ సంఖ్య" +#: js/blocks/HeapBlocks.js:539 +#: js/blocks/ProgramBlocks.js:299 +#.TRANS: load the heap from a JSON encoding +msgid "set heap" +msgstr "హీప్‌ను లోడ్ చేయండి" -#: js/ProgramBlocks.js:935 -#.TRANS: Run program beginning at this block. -msgid "run block" -msgstr "ఈ బ్లాక్ను తొలగించండి" +#: js/blocks/HeapBlocks.js:619 +msgid "The Pop block removes the value at the top of the heap." +msgstr "పాప్ బ్లాక్ హీప్ చేతిన విలువను తీసేస్తుంది." -#: js/ProgramBlocks.js:1025 -msgid "The Dock block block connections two blocks." -msgstr "" +#: js/blocks/HeapBlocks.js:633 +#.TRANS: pop a value off the top of the heap +msgid "pop" +msgstr "ఎగసి" -#: js/ProgramBlocks.js:1036 -#.TRANS: We can connect a block to another block. -msgid "connect blocks" -msgstr "ఒక బ్లాక్ను మరియునా ఒక బ్లాక్కు కలిగించండి." +#: js/blocks/HeapBlocks.js:680 +msgid "The Push block adds a value to the top of the heap." +msgstr "పుష్ బ్లాక్ హీప్ చేతిన విలువను చేర్చిస్తుంది." -#: js/ProgramBlocks.js:1048 -msgid "target block" -msgstr "లక్ష్య బ్లాక్" +#: js/blocks/HeapBlocks.js:696 +#.TRANS: push a value onto the top of the heap +msgid "push" +msgstr "నెట్టు" -#: js/ProgramBlocks.js:1048 -msgid "connection number" -msgstr "కనెక్షన్ సంఖ్య" +#: js/blocks/IntervalsBlocks.js:45 +msgid "set temperament" +msgstr "టెంపరమెంట్ సెట్ చేయి" -#: js/ProgramBlocks.js:1140 -msgid "The Make block block creates a new block." -msgstr "మేక్ బ్లాక్ బ్లాక్ ఒక కొత్త బ్లాక్ను సృష్టిస్తుంది." +#: js/blocks/IntervalsBlocks.js:63 +#: js/blocks/MediaBlocks.js:746 +#: js/blocks/PitchBlocks.js:657 +#: js/blocks/PitchBlocks.js:935 +#: js/blocks/PitchBlocks.js:974 +#: js/blocks/PitchBlocks.js:1007 +#: js/blocks/PitchBlocks.js:1194 +#: js/blocks/PitchBlocks.js:1717 +#: js/blocks/PitchBlocks.js:1758 +#: js/blocks/PitchBlocks.js:1866 +#: js/blocks/ToneBlocks.js:1025 +#: js/turtleactions/IntervalsActions.js:114 +#.TRANS: adjusts the shift up or down by one octave (twelve half-steps in the interval between two notes, one having twice or half the frequency in Hz of the other.) +msgid "octave" +msgstr "ఆక్టేవ్" -#: js/ProgramBlocks.js:1152 -#.TRANS: Create a new block -msgid "make block" -msgstr "ప్రోగ్రామ్తాత కొత్త బ్లాక్ను సృష్టించండి." +#: js/blocks/IntervalsBlocks.js:99 +msgid "The Temperament name block is used to select a tuning method." +msgstr "టెంపరమెంట్ నేమ్ బ్లాక్ ట్యూనింగ్ పద్ధతిని ఎంచుకోవడానికి ఉపయోగిస్తారు." -#: js/ProgramBlocks.js:1186 -#: js/ProgramBlocks.js:1227 -#: js/RhythmBlocks.js:1128 -#: js/PitchBlocks.js:972 -#: js/PitchBlocks.js:1005 -#: js/temperament.js:340 -#: js/temperament.js:362 -#: js/temperament.js:372 -#: js/temperament.js:484 -#: js/status.js:190 -#: plugins/rodi.rtp:192 -#.TRANS: a musical note consisting of pitch and duration -msgid "note" -msgstr "నోట్" +#: js/blocks/IntervalsBlocks.js:161 +msgid "doubly" +msgstr "రెండుగుండే" -#: js/ProgramBlocks.js:1285 -msgid "Cannot find block" -msgstr "బ్లాక్ను కనబడలేదు" +#: js/blocks/IntervalsBlocks.js:166 +msgid "The Doubly block will double the size of an interval." +msgstr "డబులీ బ్లాక్ అంతరాలం యొక్క పరిమాణం రెండుగుండే చేస్తుంది." -#: js/ProgramBlocks.js:1304 -#: js/ProgramBlocks.js:1313 -msgid "Warning: block argument type mismatch" -msgstr "హెచ్చరిక: బ్లాక్ ఆర్గ్యుమెంటు రకాన్ని సరిపోలడం లేదు" +#: js/blocks/IntervalsBlocks.js:262 +msgid "interval number" +msgstr "అంతరాల సంఖ్య" -#: js/ProgramBlocks.js:1347 -msgid "The Open project block is used to open a project from a web page." -msgstr "ఓపెన్ ప్రాజెక్ట్ బ్లాక్ ఒక వెబ్ పేజీ నుండి ప్రాజెక్ట్ను తెరవడానికి ఉపయోగిస్తారు." +#: js/blocks/IntervalsBlocks.js:317 +msgid "current interval" +msgstr "" -#: js/ProgramBlocks.js:1357 -msgid "open project" -msgstr "ప్రాజెక్ట్ను తెరవండి" +#: js/blocks/IntervalsBlocks.js:387 +#.TRANS: measure the distance between two pitches in semi-tones +msgid "semi-tone interval measure" +msgstr "రెండు స్వరాల మధ్య దూరం పరిమాణం పెంచడానికి మెయిజర్" -#: js/ProgramBlocks.js:1410 -msgid "Please enter a valid URL." -msgstr "దయచేసి ఒక చెల్లని URL నమోదు చేయండి." +#: js/blocks/IntervalsBlocks.js:454 +#: js/blocks/IntervalsBlocks.js:570 +msgid "You must use two pitch blocks when measuring an interval." +msgstr "మీరు ఒక ఇంటర్వల్ మీజరింగ్ చేసేందుకు రెండు పిచ్ బ్లాక్స్ ఉపయోగించాలి." -#: js/DrumBlocks.js:59 -msgid "The Noise name block is used to select a noise synthesizer." -msgstr "నాయిస్ నేమ్ బ్లాక్ ఒక నాయిజ్ సింథిసైజర్ను ఎంచుకోడానికి ఉపయోగిస్తారు." +#: js/blocks/IntervalsBlocks.js:496 +msgid "The Scalar interval block measures the distance between two notes in the current key and mode." +msgstr "స్కాలార్ ఇంటర్వల్ బ్లాక్ ప్రస్తుత కీ మరియు మోడ్ లో రెండు స్వరాల మధ్య దూరం పరిమాణం పెంచివేస్తుంది." -#: js/DrumBlocks.js:102 -msgid "The Drum name block is used to select a drum." -msgstr "డ్రమ్ నేమ్ బ్లాక్ ఒక డ్రమ్ను ఎంచుకోడానికి ఉపయోగిస్తారు." +#: js/blocks/IntervalsBlocks.js:502 +#.TRANS: measure the distance between two pitches in steps of musical scale +msgid "scalar interval measure" +msgstr "మ్యూజికల్ స్కేల్ స్టెప్ల మధ్య రెండు స్వరాల మధ్య దూరం పరిమాణం పెంచడానికి మెయిజర్" -#: js/DrumBlocks.js:146 -msgid "The Effects name block is used to select a sound effect." -msgstr "ఎఫెక్ట్స్ నేమ్ బ్లాక్ ఒక ధ్వని ప్రభావాన్ని ఎంచుకోడానికి ఉపయోగిస్తారు." +#: js/blocks/IntervalsBlocks.js:678 +msgid "In the figure, we add sol# to sol." +msgstr "చిత్రలో, మేము సోల్# ను సోల్కి జోడిస్తాము." -#: js/DrumBlocks.js:163 -msgid "noise" -msgstr "నాయిజ్" +#: js/blocks/IntervalsBlocks.js:684 +#: js/blocks/OrnamentBlocks.js:220 +#.TRANS: calculate a relative step between notes based on semi-tones +msgid "semi-tone interval" +msgstr "సెమీ-టోన్ ఇంటర్వల్" -#: js/DrumBlocks.js:177 -msgid "The Play noise block will generate white, pink, or brown noise." -msgstr "ప్లే నాయిజ్ బ్లాక్ వైట్, పింక్, లేదా బ్రౌన్ నాయిజ్ ను ప్రస్తుతం ఉండి." +#: js/blocks/IntervalsBlocks.js:733 +msgid "The output of the example is: do, mi, sol, sol, ti, mi" +msgstr "ఉదాహరణకు ఆఉట్పుట్: దో, మి, సోల్, సోల్, టి, మి" -#: js/DrumBlocks.js:191 -#: js/musicutils.js:752 -#: js/synthutils.js:47 -#.TRANS: white noise synthesizer -msgid "white noise" -msgstr "వైట్ నాయిజ్" +#: js/blocks/IntervalsBlocks.js:740 +#: js/blocks/WidgetBlocks.js:768 +msgid "arpeggio" +msgstr "ఆర్పెజియో" -#: js/DrumBlocks.js:326 -msgid "Replace every instance of a pitch with a drum sound." -msgstr "పిచ్ యొక్క ప్రతి సంబంధాన్ను ఒక డ్రమ్ ధ్వనితో మార్చు." +#: js/blocks/IntervalsBlocks.js:931 +msgid "The Chord block calculates common chords." +msgstr "చార్డ్ బ్లాక్ సాధారణ చార్డ్లను గణిస్తుంది." -#: js/DrumBlocks.js:337 -#.TRANS: map a pitch to a drum sound -msgid "map pitch to drum" -msgstr "పిచ్ను ఒక డ్రమ్ ధ్వనికి మ్యాప్ చేయండి" +#: js/blocks/IntervalsBlocks.js:933 +msgid "In the figure, we generate a C-major chord." +msgstr "చిత్రలో, మేము సి-మేజర్ చార్డ్ రేపగాలాము." -#: js/DrumBlocks.js:404 -msgid "In the example above, a kick drum sound will be played instead of sol." -msgstr "ప్రాచుర్యంలో, ఒక కిక్ డ్రమ్ ధ్వని సొల్ కాదు." +#: js/blocks/IntervalsBlocks.js:938 +msgid "chord" +msgstr "చార్డ్" -#: js/DrumBlocks.js:416 -#.TRANS: set the current drum sound for playback -msgid "set drum" -msgstr "ప్లేబ్యాక్కు ప్రస్తుత డ్రమ్ ధ్వనిని సెట్ చేయండి" +#: js/blocks/IntervalsBlocks.js:990 +msgid "The Ratio Interval block calculates an interval based on a ratio." +msgstr "రేషియో ఇంటర్వల్ బ్లాక్ సంతోషం ఆధారంగా ఒక ఇంటర్వల్ను గణిస్తుంది." -#: js/DrumBlocks.js:460 -msgid "sound effect" -msgstr "ధ్వని ప్రభావం" +#: js/blocks/IntervalsBlocks.js:995 +msgid "ratio interval" +msgstr "రేషియో ఇంటర్వల్" -#: js/DrumBlocks.js:498 -msgid "You can use multiple Drum blocks within a Note block." -msgstr "నోట్ బ్లాక్లు ఒక నోట్ బ్లాక్ లో అనేక డ్రమ్ బ్లాక్లను ఉపయోగించవచ్చు." +#: js/blocks/IntervalsBlocks.js:1064 +msgid "In the figure, we add la to sol." +msgstr "చిత్రలో, మేము సోల్ కి లానిని జోడిస్తాము." -#: js/RhythmBlocks.js:182 -#: js/RhythmBlocks.js:1086 -#: js/RhythmBlocks.js:1162 -msgid "Note value must be greater than 0." -msgstr "నోట్ విల్యూ కనీసం 0 కంటే ఎక్కడ ఉండాలి." +#: js/blocks/IntervalsBlocks.js:1120 +#.TRANS: define a custom mode +msgid "define mode" +msgstr "కస్టమ్ మోడ్" -#: js/RhythmBlocks.js:215 -#: js/RhythmBlocks.js:278 -#: js/RhythmBlocks.js:350 -#.TRANS: swing is a rhythmic variation that emphasises the offbeat -msgid "swing" -msgstr "స్వింగ్" +#: js/blocks/IntervalsBlocks.js:1173 +msgid "movable Do" +msgstr "మూవబుల్ డో" -#: js/RhythmBlocks.js:355 -#.TRANS: the amount to shift to the offbeat note -msgid "swing value" -msgstr "స్వింగ్ విల్యూ" +#: js/blocks/IntervalsBlocks.js:1224 +#.TRANS: mode length is the number of notes in the mode, e.g., 7 for major and minor scales; 12 for chromatic scales +msgid "mode length" +msgstr "మోడ్ పొడవు" -#: js/RhythmBlocks.js:419 -msgid "The Skip notes block will cause notes to be skipped." -msgstr "స్కిప్ నోట్స్ బ్లాక్ నోట్లను విడిపిస్తుంది." +#: js/blocks/IntervalsBlocks.js:1233 +msgid "The Mode length block is the number of notes in the current scale." +msgstr "మోడ్ లెంథ్ బ్లాక్ ప్రస్తుత స్కేల్లో ఉన్న స్వరాల సంఖ్య." -#: js/RhythmBlocks.js:427 -#.TRANS: substitute rests on notes being skipped -msgid "skip notes" -msgstr "స్కిప్ నోట్స్" +#: js/blocks/IntervalsBlocks.js:1235 +msgid "Most Western scales have 7 notes." +msgstr "అనేక పశ్చిమ స్కేల్లు 7 స్వరాలు ఉన్నాయి." -#: js/RhythmBlocks.js:489 -#.TRANS: speed up note duration by some factor, e.g. convert 1/4 to 1/8 notes by using a factor of 2 -msgid "multiply note value" -msgstr "నోట్ విల్యూను ఎటువంటిని గట్టిగా పెరగండి, ఉదా. ఫ్యాక్టర్ 2 ని ఉపయోగించి 1/4 ను 1/8 నోట్లకు మార్చండి." +#: js/blocks/IntervalsBlocks.js:1284 +#.TRANS: the mode in music is 'major', 'minor', etc. +msgid "current mode" +msgstr "ప్రస్తుత మోడ్" -#: js/RhythmBlocks.js:542 -msgid "The Tie block works on pairs of notes, combining them into one note." -msgstr "టై బ్లాక్ ద్వయాన్ని పనులను మిలకుగా వాటిని ఒక నోట్గా కలిగిస్తుంది." +#: js/blocks/IntervalsBlocks.js:1337 +#.TRANS: the key is a group of pitches with which a music composition is created +msgid "current key" +msgstr "ప్రస్తుత కీ" -#: js/RhythmBlocks.js:550 -#.TRANS: tie notes together into one longer note -msgid "tie" -msgstr "బంధించు" +#: js/blocks/IntervalsBlocks.js:1389 +#: js/blocks/IntervalsBlocks.js:1434 +#.TRANS: set the key and mode, e.g. C Major +msgid "set key" +msgstr "కీని మరియు మోడ్ సెట్ చేయండి, ఉదా. C మేజర్" -#: js/RhythmBlocks.js:591 -#: js/RhythmBlocks.js:671 -#.TRANS: a dotted note is played for 1.5x its value, e.g., 1/8. --> 3/16 -msgid "dot" -msgstr "డాట్" +#: js/blocks/IntervalsBlocks.js:1443 +#: js/blocks/IntervalsBlocks.js:1449 +msgid "The Set key block is used to set the key and mode," +msgstr "కీని మరియు మోడ్ సెట్ చేయడానికి Set key బ్లాక్ ఉపయోగిస్తారు," -#: js/RhythmBlocks.js:619 -#: js/RhythmActions.js:221 -msgid "An argument of -1 results in a note value of 0." -msgstr "ఆర్గ్యుమెంట్ -1 యొక్క పరిణామంగా 0 యొక్క నోట్ విల్యూ ఉంటుంది." +#: js/blocks/IntervalsBlocks.js:1449 +msgid "eg C Major" +msgstr "ఉదా C మేజర్" -#: js/RhythmBlocks.js:661 -msgid "The Dot block extends the duration of a note by 50%." -msgstr "డాట్ బ్లాక్ నోట్ యొక్క కాలాన్ని 50% పెంచిద్దాం." +#: js/blocks/MediaBlocks.js:35 +#.TRANS: right side of the screen +msgid "right (screen)" +msgstr "డిక్షన్ (స్క్రీన్)" -#: js/RhythmBlocks.js:663 -msgid "Eg a dotted quarter note will play for 3/8 (1/4 + 1/8) of a beat." -msgstr "ఉదా, ఒక డాట్ క్వార్టర్ నోట్ బీట్ కి 3/8 (1/4 + 1/8) ప్రకారం ప్రదర్శించబడుతుంది." +#: js/blocks/MediaBlocks.js:45 +#: js/blocks/MediaBlocks.js:56 +msgid "The Right block returns the position of the right of the canvas." +msgstr "రైట్ బ్లాక్ క్యానవాస్ యొక్క కూడా స్థానాన్ని తరిస్తుంది." -#: js/RhythmBlocks.js:765 -#.TRANS: Japanese only: note value block for drum -msgid "note value drum" -msgstr "నోటు విలువ డ్రమ్" +#: js/blocks/MediaBlocks.js:97 +#.TRANS: left side of the screen +msgid "left (screen)" +msgstr "ఎడా (స్క్రీన్)" -#: js/RhythmBlocks.js:829 -msgid "392 hertz" -msgstr "392 హెర్ట్జ్" +#: js/blocks/MediaBlocks.js:107 +#: js/blocks/MediaBlocks.js:118 +msgid "The Left block returns the position of the left of the canvas." +msgstr "ఎడా బ్లాక్ క్యానవాస్ యొక్క ఎడాన్ని తరిస్తుంది." -#: js/RhythmBlocks.js:1119 -msgid "The Note block is a container for one or more Pitch blocks." -msgstr "నోటు బ్లాక్ ఒక లేదా ఎక్కువ పిచ్ బ్లాక్ల కోసం ఒక కంటెయినర్ ఉంది." +#: js/blocks/MediaBlocks.js:158 +msgid "top (screen)" +msgstr "ముక్క (స్క్రీన్)" -#: js/RhythmBlocks.js:1121 -msgid "The Note block specifies the duration (note value) of its contents." -msgstr "నోటు బ్లాక్ అన్ని విషయాల కోసం విలువ (నోటు విలువ) ని నిర్దిష్టం చేస్తుంది." +#: js/blocks/MediaBlocks.js:168 +#: js/blocks/MediaBlocks.js:179 +msgid "The Top block returns the position of the top of the canvas." +msgstr "టాప్ బ్లాక్ క్యానవాస్ యొక్క ముక్కను తరిస్తుంది." -#: js/RhythmBlocks.js:1130 -msgid "value2" -msgstr "విలువ2" +#: js/blocks/MediaBlocks.js:219 +msgid "bottom (screen)" +msgstr "దిగువ (స్క్రీన్)" -#: js/RhythmBlocks.js:1200 -msgid "define frequency" -msgstr "ఫ్రిక్వెన్సీని నిర్వచించండి" +#: js/blocks/MediaBlocks.js:229 +#: js/blocks/MediaBlocks.js:240 +msgid "The Bottom block returns the position of the bottom of the canvas." +msgstr "బాటమ్ బ్లాక్ క్యానవాస్ యొక్క కొనసాగిన స్థానాన్ని తరిస్తుంది." -#: js/RhythmBlocks.js:1218 -#: js/temperament.js:650 -#: js/temperament.js:1421 -msgid "octave space" -msgstr "ఆక్టేవ్ స్పేస్" +#: js/blocks/MediaBlocks.js:282 +msgid "width" +msgstr "వెడల్పు" -#: js/NumberBlocks.js:28 -msgid "The Int block returns an integer." -msgstr "ఇంట్ బ్లాక్ ఒక పూర్ణాంకంను తరపుచేస్తుంది." +#: js/blocks/MediaBlocks.js:291 +msgid "The Width block returns the width of the canvas." +msgstr "వెడల్పు బ్లాక్ క్యానవాస్ యొక్క వెడల్పును తరిస్తుంది." -#: js/NumberBlocks.js:34 -msgid "int" -msgstr "పూర్ణాంకం" +#: js/blocks/MediaBlocks.js:325 +msgid "height" +msgstr "ఎత్తు" -#: js/NumberBlocks.js:73 -msgid "The Mod block returns the remainder from a division." -msgstr "మాడ్ బ్లాక్ భాగం నుండి వాడికి తగినంత విషమమునకు తిరిగిస్తుంది." +#: js/blocks/MediaBlocks.js:334 +msgid "The Height block returns the height of the canvas." +msgstr "ఎత్తు బ్లాక్ క్యానవాస్ యొక్క ఎత్తను తరిస్తుంది." -#: js/NumberBlocks.js:79 -msgid "mod" -msgstr "మాడ్" +#: js/blocks/MediaBlocks.js:369 +#.TRANS: stops playback of an audio recording +msgid "stop play" +msgstr "ప్లే నిలిపివేయి" -#: js/NumberBlocks.js:123 -msgid "The Power block calculates a power function." -msgstr "పవర్ బ్లాక్ ఒక శక్తి ఫంక్షన్ను గణిస్తుంది." +#: js/blocks/MediaBlocks.js:404 +#.TRANS: Erases the images and text +msgid "erase media" +msgstr "చిత్రాలు మరియు వచనాలను తొలగించు" -#: js/NumberBlocks.js:178 -msgid "The Sqrt block returns the square root." -msgstr "Sqrt బ్లాక్ వర్గమూలాన్ని తరపుచేస్తుంది." +#: js/blocks/MediaBlocks.js:409 +msgid "The Erase Media block erases text and images." +msgstr "ఎరేస్ మీడియా బ్లాక్ వచనాలు మరియు చిత్రాలను తొలగించిపెట్టింది." -#: js/NumberBlocks.js:184 -msgid "sqrt" -msgstr "వర్గమూలం" +#: js/blocks/MediaBlocks.js:439 +#.TRANS: play an audio recording +msgid "play back" +msgstr "ప్లే బ్యాక్" -#: js/NumberBlocks.js:230 -msgid "The Abs block returns the absolute value." -msgstr "Abs బ్లాక్ ఒక సంపూర్ణాంకంను తరపుచేస్తుంది." +#: js/blocks/MediaBlocks.js:487 +msgid "speak" +msgstr "మాట్లాడు" -#: js/NumberBlocks.js:236 -msgid "abs" -msgstr "సంపూర్ణాంకం" +#: js/blocks/MediaBlocks.js:495 +msgid "The Speak block outputs to the text-to-speech synthesizer" +msgstr "దాని విషయంగా, సాక్షరిక మాధ్యమ సింథిసైజర్‌కు ఆఉట్‌పుట్ చేస్తుంది" -#: js/NumberBlocks.js:277 -msgid "The Distance block returns the distance between two points. For example, between the mouse and the center of the screen." -msgstr "డిస్టన్స్ బ్లాక్ రెండు బిందువుల మధ్య దూరాన్ని తరపుచేస్తుంది. ఉదాహరణకు, మౌసు మరియు స్క్రీన్ యొక్క కేంద్రం మధ్య." +#: js/blocks/MediaBlocks.js:546 +msgid "camera" +msgstr "క్యామెరా" -#: js/NumberBlocks.js:283 -#: plugins/rodi.rtp:310 -msgid "distance" -msgstr "దూరం" +#: js/blocks/MediaBlocks.js:551 +msgid "The Camera block connects a webcam to the Show block." +msgstr "క్యామెరా బ్లాక్ వెబ్‌క్యామ్‌ను షో బ్లాక్‌కు కలిపిస్తుంది." -#: js/NumberBlocks.js:343 -msgid "The Divide block is used to divide." -msgstr "డివైడ్ బ్లాక్ భాగం చేయడానికి ఉపయోగిస్తారు." +#: js/blocks/MediaBlocks.js:574 +msgid "video" +msgstr "వీడియో" -#: js/NumberBlocks.js:411 -msgid "The Multiply block is used to multiply." -msgstr "మల్టిప్లై బ్లాక్ గుణించడానికి ఉపయోగిస్తారు." +#: js/blocks/MediaBlocks.js:579 +msgid "The Video block selects video for use with the Show block." +msgstr "వీడియో బ్లాక్ షో బ్లాక్‌తో ఉపయోగించాల్సిన వీడియోను ఎంచుకుంది." -#: js/NumberBlocks.js:554 -msgid "The Minus block is used to subtract." -msgstr "మైనస్ బ్లాక్ తిరిగిచడానికి ఉపయోగిస్తారు." +#: js/blocks/MediaBlocks.js:607 +msgid "The Open file block opens a file for use with the Show block." +msgstr "ఓపెన్ ఫైల్ బ్లాక్ ఫైల్‌ను షో బ్లాక్‌తో ఉపయోగించడానికి తెరవిస్తుంది." -#: js/NumberBlocks.js:647 -msgid "The Plus block is used to add." -msgstr "ప్లస్ బ్లాక్ జోడించడానికి ఉపయోగిస్తారు." +#: js/blocks/MediaBlocks.js:645 +msgid "stop media" +msgstr "మీడియా ఆపరేషన్ ఆపు" -#: js/NumberBlocks.js:773 -msgid "The One-of block returns one of two choices." -msgstr "వన్-అఫ్ బ్లాక్ రెండు ఆకట్టులను తిరిగిస్తుంది." +#: js/blocks/MediaBlocks.js:650 +msgid "The Stop media block stops audio or video playback." +msgstr "స్టాప్ మీడియా బ్లాక్ ఆడియో లేదా వీడియో ప్లేబ్యాక్‌ను ఆపుకుంది." -#: js/NumberBlocks.js:780 -#: js/PitchBlocks.js:616 -msgid "one of" -msgstr "ఒకటి" +#: js/blocks/MediaBlocks.js:679 +#: js/blocks/PitchBlocks.js:1577 +#: js/widgets/musickeyboard.js:1936 +#: js/widgets/phrasemaker.js:1037 +#.TRANS: a measure of frequency: one cycle per second +msgid "hertz" +msgstr "హర్ట్జ్" -#: js/NumberBlocks.js:782 -msgid "this" -msgstr "ఇది" +#: js/blocks/MediaBlocks.js:692 +#: js/blocks/WidgetBlocks.js:182 +#: js/widgets/temperament.js:506 +#: js/widgets/temperament.js:546 +#: js/widgets/temperament.js:610 +#: js/widgets/temperament.js:618 +#: js/widgets/temperament.js:1505 +#: js/widgets/timbre.js:1842 +msgid "frequency" +msgstr "సంవర్ధన" " -#: js/NumberBlocks.js:782 -msgid "that" -msgstr "అది" +#: js/blocks/MediaBlocks.js:692 +msgid "duration (ms)" +msgstr "అవధి (మి.సె.)" -#: js/NumberBlocks.js:837 -msgid "The Random block returns a random number." -msgstr "రండం బ్లాక్ రండం సంఖ్యను తిరిగిస్తుంది." +#: js/blocks/MediaBlocks.js:728 +#.TRANS: translate a note into hertz, e.g., A4 -> 440HZ +msgid "note to frequency" +msgstr "గానాను హర్ట్జ్‌కు అనువదించండి, ఉదాహరణ A4 -> 440HZ" -#: js/NumberBlocks.js:844 -msgid "random" -msgstr "విభిన్నంగా" +#: js/blocks/MediaBlocks.js:736 +msgid "The To frequency block converts a pitch name and octave to Hertz." +msgstr "టు ఫ్రిక్వెన్సీ బ్లాక్ పిచ్ పేరు మరియు ఆక్టావ్‌ను హర్ట్జ్‌కు మార్చిపెడతాం." -#: js/NumberBlocks.js:846 -msgid "min" -msgstr "అత్యల్ప" +#: js/blocks/MediaBlocks.js:746 +#: js/blocks/PitchBlocks.js:656 +#: js/blocks/PitchBlocks.js:934 +#: js/blocks/PitchBlocks.js:1866 +#.TRANS: name2 is name as in name of pitch (JAPANESE ONLY) +msgid "name2" +msgstr "పేరు2" -#: js/NumberBlocks.js:846 -msgid "max" -msgstr "అత్యధిక" +#: js/blocks/MediaBlocks.js:812 +msgid "The Avatar block is used to change the appearance of the mouse." +msgstr "ఆవతార్ బ్లాక్ మౌస్ యొక్క ప్రదర్శనను మార్చడానికి ఉపయోగిస్తారు." -#: js/NumberBlocks.js:910 -msgid "The Number block holds a number." -msgstr "నంబర్ బ్లాక్ ఒక సంఖ్యను ఉంచిపెడుతుంది." +#: js/blocks/MediaBlocks.js:819 +msgid "The Avatar block is used to change the appearance of the turtle." +msgstr "ఆవతార్ బ్లాక్ టర్టిల్ యొక్క ప్రదర్శనను మార్చడానికి ఉపయోగిస్తారు." -#: js/BoxesBlocks.js:53 -#: js/BoxesBlocks.js:59 -msgid "The Add-to block is used to add to the value stored in a box." -msgstr "ఆడ్-టు బ్లాక్ బాక్స్లో నిర్వచించబడిన విలువకు కలిగి ఉండటానికి ఉపయోగిస్తారు." +#: js/blocks/MediaBlocks.js:831 +#: js/blocks/MediaBlocks.js:891 +#.TRANS: a media object +msgid "size" +msgstr "పరిమాణం" -#: js/BoxesBlocks.js:61 -msgid "It can also be used with other blocks such as Color and Pen size." -msgstr "ఇది కలర్ మరియు పెన్ పరిమాణం ఉండాలి మరియు ఇతర బ్లాక్లతో కూడా ఉపయోగించి ఉండవచ్చు." +#: js/blocks/MediaBlocks.js:831 +msgid "image" +msgstr "చిత్రం" -#: js/BoxesBlocks.js:73 -msgid "add" -msgstr "జోడించు" +#: js/blocks/MediaBlocks.js:880 +msgid "The Show block is used to display text or images on the canvas." +msgstr "షో బ్లాక్ టెక్స్ట్ లేదా చిత్రాలను క్యాన్వాస్‌పై ప్రదర్శించడానికి ఉపయోగిస్తారు." -#: js/BoxesBlocks.js:75 -#: js/temperament.js:716 -msgid "to" -msgstr "కు" +#: js/blocks/MediaBlocks.js:888 +#.TRANS: show1 is show as in display an image or text on the screen. +msgid "show1" +msgstr "ప్రదర్శించు1" -#: js/BoxesBlocks.js:75 -#: js/BoxesBlocks.js:595 -#: js/HeapBlocks.js:544 -msgid "value1" -msgstr "విలువ1" +#: js/blocks/MediaBlocks.js:891 +msgid "obj" +msgstr "ఆబ్జెక్ట్" -#: js/BoxesBlocks.js:118 -msgid "Block does not support incrementing." -msgstr "బ్లాక్ చేవరి సహాయపడడానికి మద్దతు ఇస్తుంది." +#: js/blocks/MediaBlocks.js:938 +msgid "The Media block is used to import an image." +msgstr "మీడియా బ్లాక్ చిత్రం దిగుమతికి ఉపయోగిస్తారు." -#: js/BoxesBlocks.js:152 -msgid "The Add-1-to block adds one to the value stored in a box." -msgstr "ఆడ్-1-టు బ్లాక్ ఒక బాక్స్లో నిర్వచించబడిన విలువకు ఒకటి జోడిస్తుంది." +#: js/blocks/MediaBlocks.js:973 +msgid "The Text block holds a text string." +msgstr "టెక్స్ట్ బ్లాక్ ఒక టెక్స్ట్ స్ట్రింగ్‌ను నిలుస్తుంది." -#: js/BoxesBlocks.js:163 -msgid "add 1 to" -msgstr "1 ని జోడించు" +#: js/blocks/MeterBlocks.js:34 +#.TRANS: musical meter (time signature), e.g., 4:4 +msgid "current meter" +msgstr "ప్రస్తుత మీటర్" -#: js/BoxesBlocks.js:211 -msgid "The Subtract-1-from block subtracts one from the value stored in a box." -msgstr "సబ్ట్రాక్ట్-1-ఫ్రమ్ బ్లాక్ ఒక బాక్స్లో నిర్వచించబడిన విలువను ఒకటి కడిగిస్తుంది." +#: js/blocks/MeterBlocks.js:85 +#.TRANS: number of beats per minute +msgid "beat factor" +msgstr "బీట్ ఫ్యాక్టర్" -#: js/BoxesBlocks.js:222 -msgid "subtract 1 from" -msgstr "1 ని తగ్గించు" +#: js/blocks/MeterBlocks.js:161 +msgid "The Beats per minute block returns the current beats per minute." +msgstr "బీట్స్ పెర్ మినిట్ బ్లాక్ ప్రస్తుత బీట్స్ పెర్ మినిట్ ను తిరిగిస్తుంది." -#: js/BoxesBlocks.js:270 -#: js/BoxesBlocks.js:387 -msgid "The Box block returns the value stored in a box." -msgstr "బాక్స్ బ్లాక్ ఒక బాక్స్లో నిర్వచించబడిన విలువను తిరిగిస్తుంది." +#: js/blocks/MeterBlocks.js:169 +#: js/widgets/status.js:152 +#.TRANS: number of beats played per minute +msgid "beats per minute2" +msgstr "ప్రతి నిమిషం ప్రతి నిమిషం ప్రతి నిమిషం ప్రతి నిమిషం ప్రతి నిమిషం ప్రతి నిమిషం" -#: js/BoxesBlocks.js:500 -#: js/BoxesBlocks.js:576 -msgid "The Store in block will store a value in a box." -msgstr "స్టోర్-ఇన్ బ్లాక్ ఒక బాక్స్లో విలువను నిర్వచించడానికి ఉపయోగిస్తుంది." +#: js/blocks/MeterBlocks.js:169 +#: js/blocks/MeterBlocks.js:1056 +#: js/blocks/MeterBlocks.js:1133 +#: js/blocks/MeterBlocks.js:1211 +#.TRANS: sets tempo by defining a beat and beats per minute +msgid "beats per minute" +msgstr "మినిట్లో బీట్లు" -#: js/BoxesBlocks.js:652 -msgid "The Box2 block returns the value stored in Box2." -msgstr "బాక్స్2 బ్లాక్ బాక్స్2లో నిర్వచించబడిన విలువను తిరిగిస్తుంది." +#: js/blocks/MeterBlocks.js:233 +#.TRANS: count of current musical measure in meter +msgid "measure count" +msgstr "మీటర్ లో ప్రస్తుత సంగీత మెజరు సంఖ్య" -#: js/BoxesBlocks.js:703 -msgid "The Store in Box2 block is used to store a value in Box2." -msgstr "స్టోర్-ఇన్ బాక్స్2 బ్లాక్ బాక్స్2లో విలువను నిర్వచించడానికి ఉపయోగిస్తుంది." +#: js/blocks/MeterBlocks.js:241 +msgid "The Measure count block returns the current measure." +msgstr "మీజర్ కౌంట్ బ్లాక్ ప్రస్తుత మీజర్ను తిరిగిస్తుంది." -#: js/BoxesBlocks.js:715 -msgid "store in box2" -msgstr "బాక్స్2లో నిర్వచించు" +#: js/blocks/MeterBlocks.js:290 +#.TRANS: count of current beat in the meter +msgid "beat count" +msgstr "మీటర్ లో ప్రస్తుత బీట్ సంఖ్య" -#: js/BoxesBlocks.js:761 -msgid "The Box1 block returns the value stored in Box1." -msgstr "బాక్స్1 బ్లాక్ బాక్స్1లో నిర్వచించబడిన విలువను తిరిగిస్తుంది." +#: js/blocks/MeterBlocks.js:300 +#: js/blocks/MeterBlocks.js:311 +#: js/blocks/MeterBlocks.js:565 +#: js/blocks/MeterBlocks.js:576 +msgid "The Beat count block is the number of the current beat," +msgstr "బీట్ కౌంట్ బ్లాక్ ప్రస్తుత బీట్ యొక్క సంఖ్య ఉంది," -#: js/BoxesBlocks.js:812 -msgid "The Store in Box1 block is used to store a value in Box1." -msgstr "స్టోర్-ఇన్ బాక్స్1 బ్లాక్ బాక్స్1లో విలువను నిర్వచించడానికి ఉపయోగిస్తుంది." +#: js/blocks/MeterBlocks.js:313 +#: js/blocks/MeterBlocks.js:578 +msgid "eg 1, 2, 3, or 4." +msgstr "ఉదాహరణగా, 1, 2, 3, లేదా 4." -#: js/BoxesBlocks.js:826 -msgid "store in box1" -msgstr "బాక్స్1లో నిర్వచించు" +#: js/blocks/MeterBlocks.js:368 +#.TRANS: count the number of notes +msgid "sum note values" +msgstr "గానా విలువల సంఖ్య గణించండి" -#: js/HeapBlocks.js:49 -msgid "The Heap block returns the heap." -msgstr "హీప్ బ్లాక్ హీప్ను తిరిగిస్తుంది." +#: js/blocks/MeterBlocks.js:376 +#: js/blocks/MeterBlocks.js:440 +msgid "The Note counter block can be used to count the number of contained notes." +msgstr "గానా కౌంటర్ బ్లాక్ విలువలను కంటులో గణించడానికి ఉపయోగించవచ్చు." + +#: js/blocks/MeterBlocks.js:432 +#.TRANS: count the number of notes +msgid "note counter" +msgstr "గానా కౌంటర్" -#: js/HeapBlocks.js:133 -msgid "show heap" -msgstr "హీప్ అంశాలను చూపుము" +#: js/blocks/MeterBlocks.js:496 +#.TRANS: number of whole notes that have been played +msgid "whole notes played" +msgstr "" -#: js/HeapBlocks.js:181 -msgid "The Heap-length block returns the length of the heap." -msgstr "హీప్-లెంత్ బ్లాక్ హీప్ యొక్క నైపుణ్యంను తిరిగిస్తుంది." +#: js/blocks/MeterBlocks.js:505 +msgid "The Whole notes played block returns the total number of whole notes played." +msgstr "హోల్ నోట్లు ప్రారంభించబడిన ఆదాయంను తరచుకుపెడతాయి." -#: js/HeapBlocks.js:195 -msgid "heap length" -msgstr "హీప్ లెంత్" +#: js/blocks/MeterBlocks.js:555 +#: js/turtleactions/DictActions.js:83 +#.TRANS: number of notes that have been played +msgid "notes played" +msgstr "" -#: js/HeapBlocks.js:254 -msgid "The Heap-empty? block returns true if the heap is empty." -msgstr "హీప్-ఖాళీ? బ్లాక్ హీప్ ఖాళీ ఉంటే నిజమేనని తిరిగిస్తుంది." +#: js/blocks/MeterBlocks.js:653 +msgid "The No clock block decouples the notes from the master clock." +msgstr "నో క్లాక్ బ్లాక్ నోట్లను మాస్టర్ క్లాక్ నుంచి విరామం చేస్తుంది." -#: js/HeapBlocks.js:268 -#.TRANS: Is the heap empty? -msgid "heap empty?" -msgstr "హీప్ ఖాళీ?" +#: js/blocks/MeterBlocks.js:661 +#.TRANS: don't lock notes to master clock +msgid "no clock" +msgstr "మాస్టర్ క్లాక్కు గానాలను లాక్ చేయాలేదు" -#: js/HeapBlocks.js:317 -msgid "The Empty-heap block empties the heap." -msgstr "ఎంప్టీ-హీప్ బ్లాక్ హీప్ను ఖాళీ చేస్తుంది." +#: js/blocks/MeterBlocks.js:700 +msgid "on weak beat do" +msgstr "బలహీన బీట్పై చర్య చేయండి" -#: js/HeapBlocks.js:327 -#: js/HeapBlocks.js:647 -#.TRANS: empty the heap -msgid "empty heap" -msgstr "ఖాళీ హీప్" +#: js/blocks/MeterBlocks.js:705 +msgid "The On-weak-beat block lets you specify actions to take on weak (off) beats." +msgstr "" -#: js/HeapBlocks.js:371 -msgid "The Reverse-heap block reverses the order of the heap." -msgstr "రివర్స్-హీప్ బ్లాక్ హీప్ యొక్క క్రమాను ప్రతిపలకం చేస్తుంది." +#: js/blocks/MeterBlocks.js:750 +msgid "on strong beat" +msgstr "బలమైన బీట్పై" -#: js/HeapBlocks.js:384 -#.TRANS: reverse the order of the heap -msgid "reverse heap" -msgstr "హీప్ క్రమాను ప్రతిపలకం చేస్తుంది." +#: js/blocks/MeterBlocks.js:758 +msgid "The On-strong-beat block lets you specify actions to take on specified beats." +msgstr "" -#: js/HeapBlocks.js:428 -msgid "The Index-heap block returns a value in the heap at a specified location." -msgstr "ఇండెక్స్-హీప్ బ్లాక్ హీప్లో ఒక క్షేత్రంలో విలువను తిరిగిస్తుంది." +#: js/blocks/MeterBlocks.js:769 +msgid "beat" +msgstr "బీట్" -#: js/HeapBlocks.js:443 -#.TRANS: retrieve a value from the heap at index position in the heap -msgid "index heap" -msgstr "ఇండెక్స్ హీప్" +#: js/blocks/MeterBlocks.js:813 +msgid "on every beat do" +msgstr "ప్రతి బీట్పై చర్య చేయండి" -#: js/HeapBlocks.js:523 -msgid "The Set-heap entry block sets a value in he heap at the specified location." +#: js/blocks/MeterBlocks.js:821 +msgid "The On-every-beat block lets you specify actions to take on every beat." msgstr "" -#: js/HeapBlocks.js:619 -msgid "The Pop block removes the value at the top of the heap." -msgstr "పాప్ బ్లాక్ హీప్ చేతిన విలువను తీసేస్తుంది." +#: js/blocks/MeterBlocks.js:874 +msgid "on every note do" +msgstr "ప్రతి గానాను పైన చేయండి" -#: js/HeapBlocks.js:633 -#.TRANS: pop a value off the top of the heap -msgid "pop" -msgstr "ఎగసి" +#: js/blocks/MeterBlocks.js:882 +msgid "The On-every-note block lets you specify actions to take on every note." +msgstr "" -#: js/HeapBlocks.js:680 -msgid "The Push block adds a value to the top of the heap." -msgstr "పుష్ బ్లాక్ హీప్ చేతిన విలువను చేర్చిస్తుంది." +#: js/blocks/MeterBlocks.js:928 +#: js/blocks/MeterBlocks.js:999 +#.TRANS: sets tempo by defining a beat and beats per minute +msgid "master beats per minute" +msgstr "మాస్టర్ బీట్స్ పర్ మినిట్" -#: js/HeapBlocks.js:696 -#.TRANS: push a value onto the top of the heap -msgid "push" -msgstr "నెట్టు" +#: js/blocks/MeterBlocks.js:952 +#: js/blocks/MeterBlocks.js:1078 +#: js/blocks/MeterBlocks.js:1135 +msgid "bpm" +msgstr "బీపిఎమ్" -#: js/FlowBlocks.js:41 -msgid "The Backward block runs code in reverse order (Musical retrograde)." -msgstr "బ్యాక్వర్డ్ బ్లాక్ కోడ్ను ప్రతిపక్ష క్రమంలో అమలు చేస్తుంది (సంగీత రెట్రోగ్రేడ్)." +#: js/blocks/MeterBlocks.js:952 +#: js/blocks/MeterBlocks.js:1078 +#: js/blocks/MeterBlocks.js:1135 +msgid "beat value" +msgstr "బీట్ విలువ" -#: js/FlowBlocks.js:48 -msgid "backward" -msgstr "ప్రతిపక్షం" +#: js/blocks/MeterBlocks.js:1024 +#: js/blocks/MeterBlocks.js:1167 +#: js/blocks/MeterBlocks.js:1241 +msgid "Beats per minute must be > 30." +msgstr "బీట్స్ పర్ మినిట్ కనీసం 30 ఉండాలి." -#: js/FlowBlocks.js:124 -msgid "The Duplicate block will run each block multiple times." -msgstr "డ్యూప్లికేట్ బ్లాక్ ప్రతి బ్లాక్ను అనేకసారి అమలు చేస్తుంది." +#: js/blocks/MeterBlocks.js:1027 +#: js/blocks/MeterBlocks.js:1170 +#: js/blocks/MeterBlocks.js:1244 +msgid "Maximum beats per minute is 1000." +msgstr "అత్యధిక బీట్స్ పర్ మినిట్ 1000." -#: js/FlowBlocks.js:136 -msgid "duplicate" -msgstr "డ్యూప్లికేట్" +#: js/blocks/MeterBlocks.js:1068 +msgid "The Beats per minute block sets the number of 1/4 notes per minute." +msgstr "ప్రతిసారి నోటుకు 1/4 నోటుల సంఖ్యను మినిట్ కోసం మార్చేస్తుంది." -#: js/FlowBlocks.js:334 -msgid "The Default block is used inside of a Switch to define the default action." -msgstr "డిఫాల్ట్ బ్లాక్ స్విచ్లో డిఫాల్ట్ యాక్షన్‌ను నిర్వచించడానికి ఉపయోగిస్తారు." +#: js/blocks/MeterBlocks.js:1279 +#.TRANS: anacrusis +msgid "pickup" +msgstr "పికప్" -#: js/FlowBlocks.js:342 -msgid "default" -msgstr "డిఫాల్ట్" +#: js/blocks/MeterBlocks.js:1367 +msgid "number of beats" +msgstr "బీట్స్ సంఖ్య" -#: js/FlowBlocks.js:361 -#: js/FlowBlocks.js:418 -msgid "The Case Block must be used inside of a Switch Block." -msgstr "కేస్ బ్లాక్ స్విచ్ బ్లాక్ లో ఉపయోగించాలి." +#: js/blocks/NumberBlocks.js:28 +msgid "The Int block returns an integer." +msgstr "ఇంట్ బ్లాక్ ఒక పూర్ణాంకంను తరపుచేస్తుంది." -#: js/FlowBlocks.js:389 -msgid "The Case block is used inside of a Switch to define matches." -msgstr "కేస్ బ్లాక్ ఒక స్విచ్‌లో మ్యాచ్‌లను నిర్వచించడానికి ఉపయోగిస్తారు." +#: js/blocks/NumberBlocks.js:34 +msgid "int" +msgstr "పూర్ణాంకం" -#: js/FlowBlocks.js:397 -msgid "case" -msgstr "కేస్" +#: js/blocks/NumberBlocks.js:73 +msgid "The Mod block returns the remainder from a division." +msgstr "మాడ్ బ్లాక్ భాగం నుండి వాడికి తగినంత విషమమునకు తిరిగిస్తుంది." -#: js/FlowBlocks.js:446 -msgid "The Switch block will run the code in the matching Case." -msgstr "స్విచ్ బ్లాక్ అనుగుణమైన కేస్ లో కోడ్‌ను అమలు చేస్తుంది." +#: js/blocks/NumberBlocks.js:79 +msgid "mod" +msgstr "మాడ్" -#: js/FlowBlocks.js:454 -msgid "switch" -msgstr "స్విచ్" +#: js/blocks/NumberBlocks.js:141 +msgid "The Power block calculates a power function." +msgstr "పవర్ బ్లాక్ ఒక శక్తి ఫంక్షన్ను గణిస్తుంది." -#: js/FlowBlocks.js:595 -msgid "The Stop block will stop a loop" -msgstr "స్టాప్ బ్లాక్ లూప్‌ను నిలిపివేస్తుంది" +#: js/blocks/NumberBlocks.js:196 +msgid "The Sqrt block returns the square root." +msgstr "Sqrt బ్లాక్ వర్గమూలాన్ని తరపుచేస్తుంది." -#: js/FlowBlocks.js:597 -msgid "Forever, Repeat, While, or Until." -msgstr "ఎప్పటికీ, పునరావర్తనం, పరిస్థితి, లేదా అంతకుముందు." +#: js/blocks/NumberBlocks.js:202 +msgid "sqrt" +msgstr "వర్గమూలం" -#: js/FlowBlocks.js:604 -#: js/phrasemaker.js:3799 -#: js/musickeyboard.js:629 -#: js/musickeyboard.js:631 -#: js/timbre.js:417 -#: js/timbre.js:419 -#: plugins/rodi.rtp:29 -#: plugins/rodi.rtp:73 -#: plugins/rodi.rtp:413 -msgid "stop" -msgstr "పైన " +#: js/blocks/NumberBlocks.js:248 +msgid "The Abs block returns the absolute value." +msgstr "Abs బ్లాక్ ఒక సంపూర్ణాంకంను తరపుచేస్తుంది." -#: js/FlowBlocks.js:653 -msgid "The Waitfor block will wait until the condition is true." -msgstr "వేయిట్‌ఫార్ బ్లాక్ అవసరమైన స్థితి కి వేచికాదు." +#: js/blocks/NumberBlocks.js:254 +msgid "abs" +msgstr "సంపూర్ణాంకం" -#: js/FlowBlocks.js:661 -msgid "wait for" -msgstr "వేచికాడు" +#: js/blocks/NumberBlocks.js:295 +msgid "The Distance block returns the distance between two points. For example, between the mouse and the center of the screen." +msgstr "డిస్టన్స్ బ్లాక్ రెండు బిందువుల మధ్య దూరాన్ని తరపుచేస్తుంది. ఉదాహరణకు, మౌసు మరియు స్క్రీన్ యొక్క కేంద్రం మధ్య." -#: js/FlowBlocks.js:732 -msgid "The Until block will repeat until the condition is true." -msgstr "అంతకుముందు స్థితి నిజమేనంతలే పునరావృత్తి చేస్తుంది." +#: js/blocks/NumberBlocks.js:301 +#: plugins/rodi.rtp:310 +msgid "distance" +msgstr "దూరం" -#: js/FlowBlocks.js:740 -msgid "until" -msgstr "అప్పటివరకు" +#: js/blocks/NumberBlocks.js:361 +msgid "The Divide block is used to divide." +msgstr "డివైడ్ బ్లాక్ భాగం చేయడానికి ఉపయోగిస్తారు." -#: js/FlowBlocks.js:742 -#: js/FlowBlocks.js:822 -msgid "do2" -msgstr "చేస్తాం2" +#: js/blocks/NumberBlocks.js:441 +msgid "The Multiply block is used to multiply." +msgstr "మల్టిప్లై బ్లాక్ గుణించడానికి ఉపయోగిస్తారు." -#: js/FlowBlocks.js:812 -msgid "The While block will repeat while the condition is true." -msgstr "ఈ పరిస్థితి నిజమేనంతలే విరుపములను పునరావృత్తి చేస్తుంది." +#: js/blocks/NumberBlocks.js:612 +msgid "The Minus block is used to subtract." +msgstr "మైనస్ బ్లాక్ తిరిగిచడానికి ఉపయోగిస్తారు." -#: js/FlowBlocks.js:820 -msgid "while" -msgstr "రాయు " +#: js/blocks/NumberBlocks.js:723 +msgid "The Plus block is used to add." +msgstr "ప్లస్ బ్లాక్ జోడించడానికి ఉపయోగిస్తారు." -#: js/FlowBlocks.js:903 -#: js/FlowBlocks.js:968 -#: js/FlowBlocks.js:979 -msgid "In this example if the mouse button is pressed a snare drum will play." -msgstr "ఈ ఉదాహరణలో మౌస్ బటన్ నొక్కితే స్నేర్ డ్రమ్ ప్లే అవుతుంది." +#: js/blocks/NumberBlocks.js:849 +msgid "The One-of block returns one of two choices." +msgstr "వన్-అఫ్ బ్లాక్ రెండు ఆకట్టులను తిరిగిస్తుంది." -#: js/FlowBlocks.js:925 -#: js/FlowBlocks.js:988 -msgid "if" -msgstr "ఒక వేళ" +#: js/blocks/NumberBlocks.js:856 +#: js/blocks/PitchBlocks.js:616 +msgid "one of" +msgstr "ఒకటి" -#: js/FlowBlocks.js:927 -#: js/FlowBlocks.js:990 -msgid "then" -msgstr "అయితే" +#: js/blocks/NumberBlocks.js:858 +msgid "this" +msgstr "ఇది" -#: js/FlowBlocks.js:927 -msgid "else" -msgstr "" +#: js/blocks/NumberBlocks.js:858 +msgid "that" +msgstr "అది" -#: js/FlowBlocks.js:1025 -msgid "The Forever block will repeat the contained blocks forever." -msgstr "ఫారెవర్ బ్లాక్ అంతకుముందు ఉన్న బ్లాక్‌లను ఎప్పటికీ పునరావృత్తి చేస్తుంది." +#: js/blocks/NumberBlocks.js:913 +msgid "The Random block returns a random number." +msgstr "రండం బ్లాక్ రండం సంఖ్యను తిరిగిస్తుంది." -#: js/FlowBlocks.js:1037 -msgid "forever" -msgstr "ఎప్పటికీ" +#: js/blocks/NumberBlocks.js:920 +msgid "random" +msgstr "విభిన్నంగా" -#: js/FlowBlocks.js:1073 -msgid "The Repeat block will repeat the contained blocks." -msgstr "పునరావృత్తి బ్లాక్ పొందిన బ్లాక్‌లను పునరావృత్తిలో చేయి." +#: js/blocks/NumberBlocks.js:922 +msgid "min" +msgstr "అత్యల్ప" -#: js/FlowBlocks.js:1075 -msgid "In this example the note will be played 4 times." -msgstr "ఈ ఉదాహరణలో నోట్‌ను 4 సార్లు ప్లే చేయబడుతుంది." +#: js/blocks/NumberBlocks.js:922 +msgid "max" +msgstr "అత్యధిక" -#: js/FlowBlocks.js:1083 -msgid "repeat" -msgstr "మళ్ళీ చేయి" +#: js/blocks/NumberBlocks.js:986 +msgid "The Number block holds a number." +msgstr "నంబర్ బ్లాక్ ఒక సంఖ్యను ఉంచిపెడుతుంది." -#: js/FlowBlocks.js:1123 -msgid "duplicate factor" -msgstr "ఎంపికలు ఏమిటి ఎంపిక చేసేందుకు ఉపయోగపడే అంశం" +#: js/blocks/OrnamentBlocks.js:32 +msgid "staccato factor" +msgstr "స్టాకాటో ఫ్యాక్టర్" -#: js/PitchBlocks.js:39 -#: js/musicutils.js:722 -#: js/musicutils.js:1117 -#: js/synthutils.js:112 -#.TRANS: square wave -msgid "square" -msgstr "చదరం" +#: js/blocks/OrnamentBlocks.js:108 +msgid "slur factor" +msgstr "స్లర్ ఫ్యాక్టర్" -#: js/PitchBlocks.js:62 -#: js/ToneBlocks.js:39 -#: js/musicutils.js:723 -#: js/musicutils.js:1118 -#: js/synthutils.js:116 -#.TRANS: triangle wave -msgid "triangle" -msgstr "ముక్కోన" +#: js/blocks/OrnamentBlocks.js:217 +#: js/blocks/OrnamentBlocks.js:309 +#.TRANS: the neighbor refers to a neighboring note, e.g., D is a neighbor of C +msgid "neighbor" +msgstr "పడమాని" -#: js/PitchBlocks.js:85 -#: js/musicutils.js:721 -#: js/musicutils.js:1116 -#: js/synthutils.js:110 -#.TRANS: sine wave -msgid "sine" -msgstr "సైన్" +#: js/blocks/OrnamentBlocks.js:293 +msgid "The Neighbor block rapidly switches between neighboring pitches." +msgstr "నేబర్ బ్లాక్ అదిరిపోయే అంశాలలో వేరుకు వేరు స్విచ్ చేస్తుంది." -#: js/PitchBlocks.js:108 -#: js/musicutils.js:724 -#: js/musicutils.js:1119 -#: js/synthutils.js:114 -#.TRANS: sawtooth wave -msgid "sawtooth" -msgstr "ముక్కోని" +#: js/blocks/OrnamentBlocks.js:364 +msgid "glide" +msgstr "గ్లైడ్" -#: js/PitchBlocks.js:141 -#.TRANS: musical transposition (adjustment of pitch up or down) -msgid "transposition" -msgstr "స్వరాను సరిగా చేయడానికి సవరాను" +#: js/blocks/OrnamentBlocks.js:479 +#: js/blocks/OrnamentBlocks.js:643 +msgid "slur" +msgstr "స్లర్" -#: js/PitchBlocks.js:168 -#.TRANS: step down one note in current musical scale -msgid "scalar step down" -msgstr "ప్రస్తుత సంగీత స్కేల్‌లో ఒక నోట్ క్రిందకి ఒక అంశం తగ్గిస్తుంది" +#: js/blocks/OrnamentBlocks.js:558 +#: js/blocks/OrnamentBlocks.js:710 +#.TRANS: play each note sharply detached from the others +msgid "staccato" +msgstr "స్టాకాటో" -#: js/PitchBlocks.js:172 -msgid "The Scalar step down block returns the number of semi-tones down to the previous note in the current key and mode." -msgstr "స్కేల్‌లో మునుపటి గానంకి డౌన్ చేసే సెమీ-టోన్స్ సంఖ్యను తరిచేస్తుంది." +#: js/blocks/RhythmBlocks.js:182 +#: js/blocks/RhythmBlocks.js:1086 +#: js/blocks/RhythmBlocks.js:1162 +msgid "Note value must be greater than 0." +msgstr "నోట్ విల్యూ కనీసం 0 కంటే ఎక్కడ ఉండాలి." -#: js/PitchBlocks.js:190 -#.TRANS: step up one note in current musical scale -msgid "scalar step up" -msgstr "ప్రస్తుత సంగీత స్కేల్‌లో ఒక నోట్ పెరిగిపోయి ఉంచిస్తుంది" +#: js/blocks/RhythmBlocks.js:215 +#: js/blocks/RhythmBlocks.js:278 +#: js/blocks/RhythmBlocks.js:350 +#.TRANS: swing is a rhythmic variation that emphasises the offbeat +msgid "swing" +msgstr "స్వింగ్" -#: js/PitchBlocks.js:194 -msgid "The Scalar step up block returns the number of semi-tones up to the next note in the current key and mode." -msgstr "స్కేల్‌లో తరిగిన గానంకి డబ్బుల సంఖ్యను తరిచేస్తుంది." +#: js/blocks/RhythmBlocks.js:355 +#.TRANS: the amount to shift to the offbeat note +msgid "swing value" +msgstr "స్వింగ్ విల్యూ" -#: js/PitchBlocks.js:212 -#.TRANS: the change measured in half-steps between the current pitch and the previous pitch -msgid "change in pitch" -msgstr "ప్రస్తుత స్వరాన్ని మునుపటి స్వరంలో మారుకోవడానికి అనుమానాంకాల మార్గాన మార్గాన మారుతుంది." +#: js/blocks/RhythmBlocks.js:419 +msgid "The Skip notes block will cause notes to be skipped." +msgstr "స్కిప్ నోట్స్ బ్లాక్ నోట్లను విడిపిస్తుంది." + +#: js/blocks/RhythmBlocks.js:427 +#.TRANS: substitute rests on notes being skipped +msgid "skip notes" +msgstr "స్కిప్ నోట్స్" -#: js/PitchBlocks.js:216 -msgid "The Change in pitch block is the difference (in half steps) between the current pitch being played and the previous pitch played." -msgstr "ప్రస్తుత ప్లే చేయబడుతున్న స్వరాన్ని మునుపటి ప్లే చేయబడిన స్వరాన్ని (అంశాలలో) వ్యత్యాసం ఉంది." +#: js/blocks/RhythmBlocks.js:489 +#.TRANS: speed up note duration by some factor, e.g. convert 1/4 to 1/8 notes by using a factor of 2 +msgid "multiply note value" +msgstr "నోట్ విల్యూను ఎటువంటిని గట్టిగా పెరగండి, ఉదా. ఫ్యాక్టర్ 2 ని ఉపయోగించి 1/4 ను 1/8 నోట్లకు మార్చండి." -#: js/PitchBlocks.js:243 -#.TRANS: the change measured in scale-steps between the current pitch and the previous pitch -msgid "scalar change in pitch" -msgstr "ధ్వనిలో స్కాలర్ మారుతోంది" +#: js/blocks/RhythmBlocks.js:542 +msgid "The Tie block works on pairs of notes, combining them into one note." +msgstr "టై బ్లాక్ ద్వయాన్ని పనులను మిలకుగా వాటిని ఒక నోట్గా కలిగిస్తుంది." -#: js/PitchBlocks.js:250 -#: js/PitchBlocks.js:432 -#: js/PitchBlocks.js:1629 -#: js/DictActions.js:89 -#: js/temperament.js:477 -#: js/temperament.js:481 -#: js/temperament.js:714 -#.TRANS: convert current note to piano key (1-88) -#.TRANS: a mapping of pitch to the 88 piano keys -msgid "pitch number" -msgstr "పిచ్ సంఖ్య" +#: js/blocks/RhythmBlocks.js:550 +#.TRANS: tie notes together into one longer note +msgid "tie" +msgstr "బంధించు" -#: js/PitchBlocks.js:256 -msgid "The Pitch number block is the value of the pitch of the note currently being played." -msgstr "పిచ్ సంఖ్య బ్లాక్ ప్రస్తుతం ప్లే చేయబడుచున్న నోటు యొక్క పిచ్ యొక్క విలువ ఉంది." +#: js/blocks/RhythmBlocks.js:591 +#: js/blocks/RhythmBlocks.js:671 +#.TRANS: a dotted note is played for 1.5x its value, e.g., 1/8. --> 3/16 +msgid "dot" +msgstr "డాట్" -#: js/PitchBlocks.js:329 -#: js/PitchBlocks.js:433 -#.TRANS: the current pitch expressed in Hertz -msgid "pitch in hertz" -msgstr "" +#: js/blocks/RhythmBlocks.js:619 +#: js/turtleactions/RhythmActions.js:221 +msgid "An argument of -1 results in a note value of 0." +msgstr "ఆర్గ్యుమెంట్ -1 యొక్క పరిణామంగా 0 యొక్క నోట్ విల్యూ ఉంటుంది." -#: js/PitchBlocks.js:334 -msgid "The Pitch in Hertz block is the value in Hertz of the pitch of the note currently being played." -msgstr "పిచ్ హెర్ట్జ్‌లో" +#: js/blocks/RhythmBlocks.js:661 +msgid "The Dot block extends the duration of a note by 50%." +msgstr "డాట్ బ్లాక్ నోట్ యొక్క కాలాన్ని 50% పెంచిద్దాం." -#: js/PitchBlocks.js:367 -#: js/DictActions.js:87 -msgid "current pitch" -msgstr "ప్రస్తుత పిచ్" +#: js/blocks/RhythmBlocks.js:663 +msgid "Eg a dotted quarter note will play for 3/8 (1/4 + 1/8) of a beat." +msgstr "ఉదా, ఒక డాట్ క్వార్టర్ నోట్ బీట్ కి 3/8 (1/4 + 1/8) ప్రకారం ప్రదర్శించబడుతుంది." -#: js/PitchBlocks.js:373 -msgid "The Current Pitch block is used with the Pitch Converter block. In the example above, current pitch, sol 4, is displayed as 392 hertz." -msgstr "" +#: js/blocks/RhythmBlocks.js:765 +#.TRANS: Japanese only: note value block for drum +msgid "note value drum" +msgstr "నోటు విలువ డ్రమ్" -#: js/PitchBlocks.js:410 -msgid "This block converts the pitch value of the last note played into different formats such as hertz, letter name, pitch number, et al." -msgstr "" +#: js/blocks/RhythmBlocks.js:829 +msgid "392 hertz" +msgstr "392 హెర్ట్జ్" -#: js/PitchBlocks.js:434 -msgid "alphabet" -msgstr "అక్షరము" +#: js/blocks/RhythmBlocks.js:1119 +msgid "The Note block is a container for one or more Pitch blocks." +msgstr "నోటు బ్లాక్ ఒక లేదా ఎక్కువ పిచ్ బ్లాక్ల కోసం ఒక కంటెయినర్ ఉంది." -#: js/PitchBlocks.js:436 -#.TRANS: Translate as "alphabet class" -msgid "letter class" -msgstr "అక్షర వర్గం" +#: js/blocks/RhythmBlocks.js:1121 +msgid "The Note block specifies the duration (note value) of its contents." +msgstr "నోటు బ్లాక్ అన్ని విషయాల కోసం విలువ (నోటు విలువ) ని నిర్దిష్టం చేస్తుంది." -#: js/PitchBlocks.js:437 -msgid "solfege class" -msgstr "సొల్ఫేజ్ వర్గం" +#: js/blocks/RhythmBlocks.js:1128 +#: js/blocks/PitchBlocks.js:974 +#: js/blocks/PitchBlocks.js:1007 +#: js/blocks/ProgramBlocks.js:1186 +#: js/blocks/ProgramBlocks.js:1227 +#: js/widgets/status.js:190 +#: js/widgets/temperament.js:464 +#: js/widgets/temperament.js:486 +#: js/widgets/temperament.js:496 +#: js/widgets/temperament.js:617 +#: plugins/rodi.rtp:192 +#.TRANS: a musical note consisting of pitch and duration +msgid "note" +msgstr "నోట్" -#: js/PitchBlocks.js:438 -msgid "staff y" -msgstr "స్టాఫ్ Y" +#: js/blocks/RhythmBlocks.js:1130 +msgid "value2" +msgstr "విలువ2" -#: js/PitchBlocks.js:439 -msgid "solfege syllable" -msgstr "సొల్ఫేజ్ అక్షరము" +#: js/blocks/RhythmBlocks.js:1200 +msgid "define frequency" +msgstr "ఫ్రిక్వెన్సీని నిర్వచించండి" -#: js/PitchBlocks.js:440 -msgid "pitch class" -msgstr "పిచ్ వర్గం" +#: js/blocks/RhythmBlocks.js:1218 +#: js/widgets/temperament.js:787 +#: js/widgets/temperament.js:1587 +msgid "octave space" +msgstr "ఆక్టేవ్ స్పేస్" -#: js/PitchBlocks.js:441 -msgid "scalar class" -msgstr "స్కాలర్ వర్గం" +#: js/blocks/SensorsBlocks.js:36 +msgid "The Input block prompts for keyboard input." +msgstr "ఇన్‌పుట్ బ్లాక్ కీబోర్డ్ ఇన్‌పుట్ కోసం అడ్డం అంచనా ఇస్తుంది." -#: js/PitchBlocks.js:443 -msgid "nth degree" -msgstr "ఎన్తో డిగ్రీ" +#: js/blocks/SensorsBlocks.js:46 +msgid "input" +msgstr "ఇన్‌పుట్" -#: js/PitchBlocks.js:444 -msgid "pitch to shade" -msgstr "పిచ్ ను షేడ్ చేయి" +#: js/blocks/SensorsBlocks.js:64 +msgid "Input a value" +msgstr "ఒక విలువ నమోదు చేయండి" -#: js/PitchBlocks.js:445 -msgid "pitch to color" -msgstr "పిచ్ ను రంగుకు" +#: js/blocks/SensorsBlocks.js:126 +msgid "input value" +msgstr "ఇన్‌పుట్ విలువ" -#: js/PitchBlocks.js:629 -#: js/musickeyboard.js:565 -#.TRANS: MIDI is a technical standard for electronic music -msgid "MIDI" -msgstr "MIDI" +#: js/blocks/SensorsBlocks.js:131 +msgid "The Input-value block stores the input." +msgstr "ఇన్‌పుట్-విలువ బ్లాక్ ఇన్‌పుట్‌ను భండారిస్తుంది." -#: js/PitchBlocks.js:642 -#.TRANS: set an offset associated with the numeric piano keyboard mapping -msgid "set pitch number offset" -msgstr "పిచ్ సంఖ్య ఆఫ్‌సెట్ సెట్ చేయండి" +#: js/blocks/SensorsBlocks.js:238 +msgid "loudness" +msgstr "అలాటే" -#: js/PitchBlocks.js:645 -msgid "The Set pitch number offset block is used to set the offset for mapping pitch numbers to pitch and octave." -msgstr "పిచ్ సంఖ్యలను పిచ్ మరియు ఆక్టేవ్‌కు మాపించడానికి ఆఫ్‌సెట్‌ను సెట్ చేయడానికి Set pitch number offset బ్లాక్ ఉపయోగిస్తారు." +#: js/blocks/SensorsBlocks.js:245 +msgid "The Loudness block returns the volume detected by the microphone." +msgstr "లౌడ్నెస్ బ్లాక్ మైక్రోఫోన్ ద్వారా గుర్తించబడిన వాల్యూమ్‌ను తరపుచుకుపడిస్తుంది." -#: js/PitchBlocks.js:679 -#.TRANS: convert piano key number (1-88) to pitch -msgid "number to pitch" -msgstr "నంబర్ ను పిచ్ కి మార్చండి" +#: js/blocks/SensorsBlocks.js:300 +msgid "click" +msgstr "క్లిక్" -#: js/PitchBlocks.js:682 -msgid "The Number to pitch block will convert a pitch number to a pich name." -msgstr "" +#: js/blocks/SensorsBlocks.js:306 +msgid "The Click block triggers an event if a mouse has been clicked." +msgstr "క్లిక్ బ్లాక్ మౌస్ పై క్లిక్ చేసినా ఒక ఈవెంట్‌ను తెరిచేస్తుంది." -#: js/PitchBlocks.js:715 -#.TRANS: convert piano key number (1-88) to octave -msgid "number to octave" -msgstr "నంబర్ ను ఒక్టేవ్‌కి మార్చండి" +#: js/blocks/SensorsBlocks.js:313 +msgid "The Click block triggers an event if a turtle has been clicked." +msgstr "క్లిక్ బ్లాక్ టర్టిల్ పై క్లిక్ చేసినా ఒక ఈవెంట్‌ను తెరిచేస్తుంది." -#: js/PitchBlocks.js:717 -msgid "The Number to octave block will convert a pitch number to an octave." -msgstr "Number to octave బ్లాక్ ఒక పిచ్ సంఖ్యను ఒక్టేవ్‌కు మార్చగలిగేది." +#: js/blocks/SensorsBlocks.js:342 +msgid "cursor over" +msgstr "కర్సర్ మీద" -#: js/PitchBlocks.js:726 -msgid "y to pitch" -msgstr "Y ను పిచ్ కి" +#: js/blocks/SensorsBlocks.js:387 +msgid "cursor out" +msgstr "కర్సర్ బయటకి" -#: js/PitchBlocks.js:729 -msgid "Y to pitch block will convert a staff y position to corresponding pitch notation." -msgstr "Y to pitch బ్లాక్ స్టాఫ్ Y స్థానంను సరిపోయిన పిచ్ సారాంశంగా మార్చిపోతుంది." +#: js/blocks/SensorsBlocks.js:433 +msgid "cursor button down" +msgstr "కర్సర్ బటన్ డౌన్" -#: js/PitchBlocks.js:841 -msgid "accidental selector" -msgstr "అక్షిడెంటల్ సెలెక్టర్" +#: js/blocks/SensorsBlocks.js:477 +msgid "cursor button up" +msgstr "కర్సర్ బటన్ అప్" -#: js/PitchBlocks.js:844 -msgid "The Accidental selector block is used to choose between double-sharp, sharp, natural, flat, and double-flat." -msgstr "అక్షిడెంటల్ సెలెక్టర్ బ్లాక్ ద్విగుభార్పణాతి, శార్ప్, స్వాభావికం, ఫ్లాట్, మరియు ద్విగుభార్పణాతి మధ్య ఎంచుకోవడానికి ఉపయోగిస్తారు." +#: js/blocks/SensorsBlocks.js:521 +#: js/blocks/PenBlocks.js:48 +#: plugins/rodi.rtp:219 +msgid "blue" +msgstr "నీలం" -#: js/PitchBlocks.js:858 -msgid "Pitch can be specified in terms of ni dha pa ma ga re sa." -msgstr "" +#: js/blocks/SensorsBlocks.js:577 +#: js/blocks/PenBlocks.js:64 +#: plugins/rodi.rtp:218 +msgid "green" +msgstr "ఆకుపచ్చ" -#: js/PitchBlocks.js:872 -msgid "Pitch can be specified in terms of C D E F G A B." -msgstr "" +#: js/blocks/SensorsBlocks.js:633 +#: js/blocks/PenBlocks.js:112 +#: plugins/rodi.rtp:217 +msgid "red" +msgstr "ఎరుపు" -#: js/PitchBlocks.js:883 -msgid "solfege" -msgstr "" +#: js/blocks/SensorsBlocks.js:638 +msgid "The Get red block returns the red component of the pixel under the mouse." +msgstr "గెట్ రెడ్ బ్లాక్ మౌస్ కంపోజన్ట్‌ని తెరిచిపెట్టుతుంది." -#: js/PitchBlocks.js:886 -msgid "Pitch can be specified in terms of do re mi fa sol la ti." -msgstr "" +#: js/blocks/SensorsBlocks.js:644 +msgid "The Get red block returns the red component of the pixel under the turtle." +msgstr "గెట్ రెడ్ బ్లాక్ టర్టిల్ కంపోజన్ట్‌ని తెరిచిపెట్టుతుంది." -#: js/PitchBlocks.js:920 -msgid "The Invert block rotates any contained notes around a target note." -msgstr "" +#: js/blocks/SensorsBlocks.js:685 +#: plugins/rodi.rtp:216 +msgid "pixel color" +msgstr "పిక్సెల్ రంగు" -#: js/PitchBlocks.js:927 -#.TRANS: pitch inversion rotates a pitch around another pitch -msgid "invert" -msgstr "పిచ్ వామకాలానికి రోటేట్ చేస్తుంది" +#: js/blocks/SensorsBlocks.js:690 +msgid "The Get pixel block returns the color of the pixel under the mouse." +msgstr "గెట్ పిక్సెల్ బ్లాక్ మౌస్ కంపోజన్ట్‌ని తెరిచిపెట్టుతుంది." -#: js/PitchBlocks.js:929 -#: js/PitchBlocks.js:935 -#: js/PitchActions.js:727 -#: js/musicutils.js:726 -#: js/musicutils.js:902 -#.TRANS: invert based on even or odd number or musical scale -#.TRANS: even numbers -msgid "even" -msgstr "సమం" +#: js/blocks/SensorsBlocks.js:696 +msgid "The Get pixel block returns the color of the pixel under the turtle." +msgstr "గెట్ పిక్సెల్ బ్లాక్ టర్టిల్ కంపోజన్ట్‌ని తెరిచిపెట్టుతుంది." -#: js/PitchBlocks.js:935 -#: js/PitchActions.js:729 -#: js/musicutils.js:728 -#: js/musicutils.js:903 -#.TRANS: odd numbers -msgid "odd" -msgstr "అసమం" +#: js/blocks/SensorsBlocks.js:758 +msgid "time" +msgstr "సమయం" -#: js/PitchBlocks.js:935 -#: js/PitchActions.js:731 -#: js/musicutils.js:729 -#: js/musicutils.js:904 -msgid "scalar" -msgstr "స్కాలర్" +#: js/blocks/SensorsBlocks.js:804 +msgid "cursor y" +msgstr "కర్సర్ Y" -#: js/PitchBlocks.js:966 -#.TRANS: pitch inversion rotates a pitch around another pitch (odd number) -msgid "invert (odd)" -msgstr "వామకాలానికి రోటేట్ చేస్తుంది (అసమం)" +#: js/blocks/SensorsBlocks.js:809 +msgid "The Cursor Y block returns the vertical position of the mouse." +msgstr "కర్సర్ Y బ్లాక్ మౌస్ యొక్క కూడా స్థితిని తెరిచిపెట్టుతుంది." -#: js/PitchBlocks.js:999 -#.TRANS: pitch inversion rotates a pitch around another pitch (even number) -msgid "invert (even)" -msgstr "వామకాలానికి రోటేట్ చేస్తుంది (సమం)" +#: js/blocks/SensorsBlocks.js:845 +msgid "cursor x" +msgstr "కర్సర్ X" -#: js/PitchBlocks.js:1020 -#.TRANS: register is the octave of the current pitch -msgid "register" -msgstr "రిజిస్టర్" +#: js/blocks/SensorsBlocks.js:850 +msgid "The Cursor X block returns the horizontal position of the mouse." +msgstr "కర్సర్ X బ్లాక్ మౌస్ యొక్క కూడా స్థితిని తెరిచిపెట్టుతుంది." -#: js/PitchBlocks.js:1024 -msgid "The Register block provides an easy way to modify the register (octave) of the notes that follow it." -msgstr "రిజిస్టర్ బ్లాక్ అనుసరించే గానాల రిజిస్టర్ (ఆక్టేవ్) పరిష్కరించడానికి సులభ మార్గానే అందిస్తుంది." +#: js/blocks/SensorsBlocks.js:886 +msgid "mouse button" +msgstr "మౌస్ బటన్" -#: js/PitchBlocks.js:1074 -msgid "The Semi-tone transposition block will shift the pitches contained inside Note blocks up (or down) by half steps." -msgstr "సెమి-టోన్ ట్రాన్స్పోజిషన్ బ్లాక్ నోట్ బ్లాక్‌లో ఉండే పిచ్లను అప్ (లేదా) అడుగుపెడతాయి." +#: js/blocks/SensorsBlocks.js:888 +msgid "The Mouse-button block returns True if the mouse button is pressed." +msgstr "మౌస్ బటన్ నొక్కితే, మౌస్-బటన్ బ్లాక్ ట్రూ నొక్కితే తెరిచిపెట్టుతుంది." -#: js/PitchBlocks.js:1076 -msgid "In the example shown above, sol is shifted up to sol#." -msgstr "ప్రదర్శించిన ఉదాహరణలో, సోల్ ను సోల్# కి అప్ చేయబడింది." +#: js/blocks/SensorsBlocks.js:934 +msgid "to ASCII" +msgstr "ASCIIకి" -#: js/PitchBlocks.js:1082 -#.TRANS: adjust the amount of shift (up or down) of a pitch -msgid "semi-tone transpose" -msgstr "సెమి-టోన్ ట్రాన్స్పోజ్" +#: js/blocks/SensorsBlocks.js:938 +msgid "The To ASCII block converts numbers to letters." +msgstr "టూ ASCII బ్లాక్ సంఖ్యలను అక్షరాలకు మార్చుతుంది." -#: js/PitchBlocks.js:1115 -msgid "The Transpose by Ratio block will shift the pitches contained inside Note blocks up (or down) by a ratio" -msgstr "" +#: js/blocks/SensorsBlocks.js:1005 +msgid "The Keyboard block returns computer keyboard input." +msgstr "కీబోర్డు బ్లాక్ కంప్యూటర్ కీబోర్డ్ ఇన్‌పుట్ను తెరిచిపెడతారు." -#: js/PitchBlocks.js:1121 -#.TRANS: adjust the amount of shift (up or down) of a pitch -msgid "transpose by ratio" -msgstr "రేషియో ద్వారా ట్రాన్స్పోజ్" +#: js/blocks/RhythmBlockPaletteBlocks.js:50 +#: js/blocks/RhythmBlockPaletteBlocks.js:233 +#.TRANS: rhythm block +#.TRANS: translate "rhythm1" as rhythm +msgid "rhythm1" +msgstr "రిదం1" -#: js/PitchBlocks.js:1204 -#.TRANS: down sixth means the note is five scale degrees below current note -msgid "down sixth" -msgstr "ఆచు లోను కుడియుతుంది" +#: js/blocks/RhythmBlockPaletteBlocks.js:70 +#: js/blocks/RhythmBlockPaletteBlocks.js:252 +#: js/blocks/RhythmBlockPaletteBlocks.js:485 +#: js/blocks/RhythmBlockPaletteBlocks.js:554 +#: js/blocks/RhythmBlockPaletteBlocks.js:875 +msgid "number of notes" +msgstr "గానాల సంఖ్య" -#: js/PitchBlocks.js:1223 -#.TRANS: down third means the note is two scale degrees below current note -msgid "down third" -msgstr "మూడు లోను కుడియుతుంది" +#: js/blocks/RhythmBlockPaletteBlocks.js:126 +msgid "polyphonic rhythm" +msgstr "బహువాదీ రిదం" -#: js/PitchBlocks.js:1242 -#.TRANS: seventh means the note is the six scale degrees above current note -msgid "seventh" -msgstr "ఏడవ" +#: js/blocks/RhythmBlockPaletteBlocks.js:219 +msgid "The Rhythm block is used to generate rhythm patterns." +msgstr "రిదం బ్లాక్ రిదం నమూనాలను ఉత్పత్తి చేయడానికి ఉపయోగపడుతుంది." -#: js/PitchBlocks.js:1261 -#.TRANS: sixth means the note is the five scale degrees above current note -msgid "sixth" -msgstr "ఆరవ" +#: js/blocks/RhythmBlockPaletteBlocks.js:280 +msgid "1/64 note" +msgstr "1/64 నోట్" -#: js/PitchBlocks.js:1280 -#.TRANS: fifth means the note is the four scale degrees above current note -msgid "fifth" -msgstr "ఐదవ" +#: js/blocks/RhythmBlockPaletteBlocks.js:304 +msgid "1/32 note" +msgstr "1/32 నోట్" -#: js/PitchBlocks.js:1300 -#.TRANS: fourth means the note is three scale degrees above current note -msgid "fourth" -msgstr "నాలవ" +#: js/blocks/RhythmBlockPaletteBlocks.js:332 +msgid "1/16 note" +msgstr "1/16 నోట్" -#: js/PitchBlocks.js:1319 -#.TRANS: third means the note is two scale degrees above current note -msgid "third" -msgstr "మూడవ" +#: js/blocks/RhythmBlockPaletteBlocks.js:360 +msgid "eighth note" +msgstr "ఎనిమిదవ నోట్" -#: js/PitchBlocks.js:1338 -#.TRANS: second means the note is one scale degree above current note -msgid "second" -msgstr "రెండవ" +#: js/blocks/RhythmBlockPaletteBlocks.js:388 +msgid "quarter note" +msgstr "క్వార్టర్ నోట్" -#: js/PitchBlocks.js:1379 -msgid "The Scalar transposition block will shift the pitches contained inside Note blocks up (or down) the scale." -msgstr "స్కాలర్ ట్రాన్స్పోజిషన్ బ్లాక్ నోట్ బ్లాక్ లో ఉండే పిచ్లను స్కేల్ పై అప్ (లేదా) అడుగుపెడతాయి." +#: js/blocks/RhythmBlockPaletteBlocks.js:416 +msgid "half note" +msgstr "అర్ధం నోట్" -#: js/PitchBlocks.js:1381 -msgid "In the example shown above, sol is shifted up to la." -msgstr "ప్రదర్శించిన ఉదాహరణలో, సోల్ ను లా కి అప్ చేయబడింది." +#: js/blocks/RhythmBlockPaletteBlocks.js:444 +msgid "whole note" +msgstr "పూర్ణ నోట్" -#: js/PitchBlocks.js:1388 -#.TRANS: adjust the amount of shift (up or down) of a pitch by musical scale (scalar) steps -msgid "scalar transpose" -msgstr "స్కాలర్ ట్రాన్స్పోజ్" +#: js/blocks/RhythmBlockPaletteBlocks.js:482 +#: js/blocks/RhythmBlockPaletteBlocks.js:551 +#: js/blocks/RhythmBlockPaletteBlocks.js:602 +#.TRANS: A tuplet is a note value divided into irregular time values. +msgid "tuplet" +msgstr "ట్యూప్లెట్" -#: js/PitchBlocks.js:1423 -msgid "The Accidental block is used to create sharps and flats" -msgstr "" +#: js/blocks/RhythmBlockPaletteBlocks.js:768 +msgid "septuplet" +msgstr "సెప్ట్యూప్లెట్" -#: js/PitchBlocks.js:1430 -#.TRANS: An accidental is a modification to a pitch, e.g., sharp or flat. -msgid "accidental override" -msgstr "అక్షిడెంటల్ ఓవర్రైడ్" +#: js/blocks/RhythmBlockPaletteBlocks.js:796 +msgid "quintuplet" +msgstr "క్వింట్యూప్లెట్" -#: js/PitchBlocks.js:1543 -msgid "The Hertz block (in combination with a Number block) will play a sound at the specified frequency." -msgstr "హెర్ట్జ్ బ్లాక్ (నంబర్ బ్లాక్ తో కలిసి) ప్రత్యామ్నాయం చేస్తుంది చేయడానికి అనుమతిస్తుంది." +#: js/blocks/RhythmBlockPaletteBlocks.js:824 +msgid "triplet" +msgstr "ట్రిప్లెట్" -#: js/PitchBlocks.js:1633 -msgid "The Pitch Number block will play a pitch associated by its number, e.g. 0 for C and 7 for G." -msgstr "పిచ్ నంబర్ బ్లాక్ ఒక సంఖ్య ద్వారా అనుసంధానించబడిన ఒక పిచ్‌ను ప్రదర్శించడానికి, ఉదాహరణకు C కోసం 0 మరియు G కోసం 7 ఉంటుంది." +#: js/blocks/RhythmBlockPaletteBlocks.js:851 +msgid "simple tuplet" +msgstr "సాధారణ ట్యూప్లెట్" -#: js/PitchBlocks.js:1665 -#: js/PitchBlocks.js:1707 -#.TRANS: a numeric mapping of the notes in an octave based on the musical mode -#.TRANS: a numeric mapping of the notes in an octave based on the musical mode -msgid "nth modal pitch" -msgstr "మోడల్ పిచ్ యొక్క సంఖ్యాత్మక మ్యాపింగ్" +#: js/blocks/RhythmBlockPaletteBlocks.js:861 +msgid "Tuplets are a collection of notes that get scaled to a specific duration." +msgstr "ట్యూప్లెట్లు ఒక నిర్దిష్ట కాలకోణానికి పెరిగిపోయి ఉంటాయి." -#: js/PitchBlocks.js:1668 -msgid "n^th Modal Pitch takes the pattern of pitches in semitones for a mode and makes each point a degree of the mode," -msgstr "n^th మోడల్ పిచ్ మోడ్లో సెమీటోన్ల పాటను తీసేసారు మరియు ప్రతి పాయింట్‌ను మోడ్ యొక్క ఒక డిగ్రీగా చేస్తారు," +#: js/blocks/DrumBlocks.js:59 +msgid "The Noise name block is used to select a noise synthesizer." +msgstr "నాయిస్ నేమ్ బ్లాక్ ఒక నాయిజ్ సింథిసైజర్ను ఎంచుకోడానికి ఉపయోగిస్తారు." -#: js/PitchBlocks.js:1670 -msgid "starting from 1 and regardless of tonal framework (i.e. not always 8 notes in the octave)" -msgstr "1 ను నుంచి మరియు టోనల్ ఫ్రేమ్వర్క్ కొరకు (అందుకే సదాగా ఒక్కసారైనా 8 నోట్లు కాదు) అనేకమందికి విషయం లేదు." +#: js/blocks/DrumBlocks.js:102 +msgid "The Drum name block is used to select a drum." +msgstr "డ్రమ్ నేమ్ బ్లాక్ ఒక డ్రమ్ను ఎంచుకోడానికి ఉపయోగిస్తారు." -#: js/PitchBlocks.js:1711 -msgid "N^th Modal Pitch takes a number as an input as the n^th degree for the given mode. 0 is the first position, 1 is the second, -1 is the note before the first etc." -msgstr "N^th మోడల్ పిచ్ మోడ్ కోసం ఇన్‌పుట్ గా సంఖ్య ను తీసుకునిస్తుంది చివరి డిగ్రీ గా. 0 అందుకే మొదటి స్థానం, 1 అందుకే రెండవ, -1 అందుకే మొదటి ముందు గా ముందు ఉంది మరియు ఇతరు అనేకండి." +#: js/blocks/DrumBlocks.js:146 +msgid "The Effects name block is used to select a sound effect." +msgstr "ఎఫెక్ట్స్ నేమ్ బ్లాక్ ఒక ధ్వని ప్రభావాన్ని ఎంచుకోడానికి ఉపయోగిస్తారు." -#: js/PitchBlocks.js:1713 -msgid "The pitches change according to the mode specified without any need for respellings." -msgstr "పిచ్లు పునర్వ్యాఖ్యానం కోరకు స్పష్టంగా మారిపోతాయి." +#: js/blocks/DrumBlocks.js:163 +msgid "noise" +msgstr "నాయిజ్" -#: js/PitchBlocks.js:1752 -msgid "Scale Degree is a common convention in music. Scale Degree offers seven possible positions in the scale (1-7) and can be modified via accidentals." -msgstr "స్కేల్ డిగ్రీ సంగీతంలో సామాన్యంగా ఒక అభ్యంతరము. స్కేల్ డిగ్రీ స్కేల్ లో ఏడు సాధ్యమైన స్థానాలను నిల్వ చేస్తుంది (1-7) మరియు అక్షరాల ద్వారా మార్పుల ద్వారా సవరించగలది." +#: js/blocks/DrumBlocks.js:177 +msgid "The Play noise block will generate white, pink, or brown noise." +msgstr "ప్లే నాయిజ్ బ్లాక్ వైట్, పింక్, లేదా బ్రౌన్ నాయిజ్ ను ప్రస్తుతం ఉండి." -#: js/PitchBlocks.js:1754 -msgid "Scale Degree 1 is always the first pitch in a given scale, regardless of octave." -msgstr "స్కేల్ డిగ్రీ 1 సదాగా ఒక ఇచ్చిన స్కేల్ లో మొదటి పిచ్ గా, ఆక్టేవ" +#: js/blocks/DrumBlocks.js:317 +msgid "Replace every instance of a pitch with a drum sound." +msgstr "పిచ్ యొక్క ప్రతి సంబంధాన్ను ఒక డ్రమ్ ధ్వనితో మార్చు." -#: js/PitchBlocks.js:1776 -#.TRANS: step some number of notes in current musical scale -msgid "scalar step" -msgstr "స్కాలర్ స్టెప్" +#: js/blocks/DrumBlocks.js:328 +#.TRANS: map a pitch to a drum sound +msgid "map pitch to drum" +msgstr "పిచ్ను ఒక డ్రమ్ ధ్వనికి మ్యాప్ చేయండి" -#: js/PitchBlocks.js:1781 -msgid "The Scalar Step block (in combination with a Number block) will play the next pitch in a scale," -msgstr "స్కాల్లో తర్వాత పిచ్ ప్రదర్శించడానికి, స్కాలర్ స్టెప్ బ్లాక్ (నంబర్ బ్లాక్ తో కలిసి) ఉపయోగించబడుతుంది," +#: js/blocks/DrumBlocks.js:395 +msgid "In the example above, a kick drum sound will be played instead of sol." +msgstr "ప్రాచుర్యంలో, ఒక కిక్ డ్రమ్ ధ్వని సొల్ కాదు." -#: js/PitchBlocks.js:1783 -msgid "eg if the last note played was sol, Scalar Step 1 will play la." -msgstr "ఉదాహరణకు, చివరి ప్రదర్శించిన నోట్ సోల్ ఉండిగా, స్కాలర్ స్టెప్ 1 కు లా ప్రదర్శించబడుతుంది." +#: js/blocks/DrumBlocks.js:407 +#.TRANS: set the current drum sound for playback +msgid "set drum" +msgstr "ప్లేబ్యాక్కు ప్రస్తుత డ్రమ్ ధ్వనిని సెట్ చేయండి" -#: js/PitchBlocks.js:1818 -msgid "The Pitch block specifies the pitch name and octave of a note that together determine the frequency of the note." -msgstr "పిచ్ బ్లాక్ నోట్ యొక్క ఫ్రిక్వెన్సీని నిర్ధారించడానికి ఒక నోట్ యొక్క పిచ్ పేరు మరియు ఆక్టేవ్ ను నిర్దిష్టించేది." +#: js/blocks/DrumBlocks.js:451 +msgid "sound effect" +msgstr "ధ్వని ప్రభావం" + +#: js/blocks/DrumBlocks.js:489 +msgid "You can use multiple Drum blocks within a Note block." +msgstr "నోట్ బ్లాక్లు ఒక నోట్ బ్లాక్ లో అనేక డ్రమ్ బ్లాక్లను ఉపయోగించవచ్చు." -#: js/GraphicsBlocks.js:46 -#: js/DictActions.js:77 -#: js/DictActions.js:155 -#: js/DictActions.js:189 +#: js/blocks/GraphicsBlocks.js:46 +#: js/turtleactions/DictActions.js:77 +#: js/turtleactions/DictActions.js:144 +#: js/turtleactions/DictActions.js:173 msgid "heading" msgstr "పీఠిక" -#: js/GraphicsBlocks.js:56 +#: js/blocks/GraphicsBlocks.js:56 msgid "The Heading block returns the orientation of the mouse." msgstr "హెడింగ్ బ్లాక్ మౌస్ యొక్క ఒకరిని తిరిగి తేలుతుంది." -#: js/GraphicsBlocks.js:62 +#: js/blocks/GraphicsBlocks.js:62 msgid "The Heading block returns the orientation of the turtle." msgstr "హెడింగ్ బ్లాక్ టర్టిల్ యొక్క ఒకరిని తిరిగి తేలుతుంది." -#: js/GraphicsBlocks.js:133 +#: js/blocks/GraphicsBlocks.js:133 msgid "The Y block returns the vertical position of the mouse." msgstr "Y బ్లాక్ మౌస్ యొక్క ఉండికని తిరిగి తేలుతుంది." -#: js/GraphicsBlocks.js:140 +#: js/blocks/GraphicsBlocks.js:140 msgid "The Y block returns the vertical position of the turtle." msgstr "Y బ్లాక్ టర్టిల్ యొక్క ఉండికని తిరిగి తేలుతుంది." -#: js/GraphicsBlocks.js:149 +#: js/blocks/GraphicsBlocks.js:149 msgid "y3" msgstr "y3" -#: js/GraphicsBlocks.js:219 +#: js/blocks/GraphicsBlocks.js:219 msgid "The X block returns the horizontal position of the mouse." msgstr "X బ్లాక్ మౌస్ యొక్క కంటిని తిరిగి తేలుతుంది." -#: js/GraphicsBlocks.js:226 +#: js/blocks/GraphicsBlocks.js:226 msgid "The X block returns the horizontal position of the turtle." msgstr "X బ్లాక్ టర్టిల్ యొక్క కంటిని తిరిగి తేలుతుంది." -#: js/GraphicsBlocks.js:235 +#: js/blocks/GraphicsBlocks.js:235 msgid "x3" msgstr "x3" -#: js/GraphicsBlocks.js:295 +#: js/blocks/GraphicsBlocks.js:295 msgid "scroll xy" msgstr "స్క్రోల్ XY" -#: js/GraphicsBlocks.js:303 +#: js/blocks/GraphicsBlocks.js:303 msgid "The Scroll XY block moves the canvas." msgstr "స్క్రోల్ XY బ్లాక్ క్యాన్వాస్‌ను చలింపుగా చేస్తుంది." -#: js/GraphicsBlocks.js:313 +#: js/blocks/GraphicsBlocks.js:313 msgid "x2" msgstr "x2" -#: js/GraphicsBlocks.js:313 +#: js/blocks/GraphicsBlocks.js:313 msgid "y2" msgstr "y2" -#: js/GraphicsBlocks.js:373 -#: js/temperament.js:213 -#: js/temperament.js:241 +#: js/blocks/GraphicsBlocks.js:373 +#: js/widgets/temperament.js:319 +#: js/widgets/temperament.js:347 msgid "clear" msgstr "క్లియర్" -#: js/GraphicsBlocks.js:426 +#: js/blocks/GraphicsBlocks.js:426 msgid "The Control-point 2 block sets the second control point for the Bezier curve." msgstr "కంట్రోల్-పాయింట్ 2 బ్లాక్ బేజియర్ కర్వ్ కోసం రెండవ నియంత్రణ పాయింట్‌ను సెట్ చేస్తుంది." -#: js/GraphicsBlocks.js:433 +#: js/blocks/GraphicsBlocks.js:433 msgid "control point 2" msgstr "కంట్రోల్ పాయింట్ 2" -#: js/GraphicsBlocks.js:436 -#: js/GraphicsBlocks.js:487 -#: js/GraphicsBlocks.js:534 -#: js/GraphicsBlocks.js:750 +#: js/blocks/GraphicsBlocks.js:436 +#: js/blocks/GraphicsBlocks.js:487 +#: js/blocks/GraphicsBlocks.js:534 +#: js/blocks/GraphicsBlocks.js:750 msgid "x1" msgstr "x1" -#: js/GraphicsBlocks.js:436 -#: js/GraphicsBlocks.js:487 -#: js/GraphicsBlocks.js:534 -#: js/GraphicsBlocks.js:750 +#: js/blocks/GraphicsBlocks.js:436 +#: js/blocks/GraphicsBlocks.js:487 +#: js/blocks/GraphicsBlocks.js:534 +#: js/blocks/GraphicsBlocks.js:750 msgid "y1" msgstr "y1" -#: js/GraphicsBlocks.js:477 +#: js/blocks/GraphicsBlocks.js:477 msgid "The Control-point 1 block sets the first control point for the Bezier curve." msgstr "కంట్రోల్-పాయింట్ 1 బ్లాక్ బేజియర్ కర్వ్ కోసం మొదటి నియంత్రణ పాయింట్‌ను సెట్ చేస్తుంది." -#: js/GraphicsBlocks.js:484 +#: js/blocks/GraphicsBlocks.js:484 msgid "control point 1" msgstr "కంట్రోల్ పాయింట్ 1" -#: js/GraphicsBlocks.js:527 +#: js/blocks/GraphicsBlocks.js:527 msgid "The Bezier block draws a Bezier curve." msgstr "బేజియర్ బ్లాక్ బేజియర్ కర్వ్ నమోదు చేస్తుంది." -#: js/GraphicsBlocks.js:531 +#: js/blocks/GraphicsBlocks.js:531 msgid "bezier" msgstr "బేజియర్" -#: js/GraphicsBlocks.js:592 +#: js/blocks/GraphicsBlocks.js:592 msgid "The Arc block moves the turtle in an arc." msgstr "" -#: js/GraphicsBlocks.js:600 +#: js/blocks/GraphicsBlocks.js:600 msgid "arc" msgstr "జ్యా" -#: js/GraphicsBlocks.js:603 +#: js/blocks/GraphicsBlocks.js:603 msgid "angle" msgstr "కోణం" -#: js/GraphicsBlocks.js:603 +#: js/blocks/GraphicsBlocks.js:603 msgid "radius" msgstr "వ్యాసార్ధం" -#: js/GraphicsBlocks.js:620 -#: js/GraphicsBlocks.js:767 -#: js/GraphicsBlocks.js:1010 -#: js/GraphicsBlocks.js:1093 +#: js/blocks/GraphicsBlocks.js:620 +#: js/blocks/GraphicsBlocks.js:767 +#: js/blocks/GraphicsBlocks.js:1010 +#: js/blocks/GraphicsBlocks.js:1093 msgid "Value must be within -5000 to 5000 when Wrap Mode is off." msgstr "" -#: js/GraphicsBlocks.js:622 -#: js/GraphicsBlocks.js:769 -#: js/GraphicsBlocks.js:1012 -#: js/GraphicsBlocks.js:1095 +#: js/blocks/GraphicsBlocks.js:622 +#: js/blocks/GraphicsBlocks.js:769 +#: js/blocks/GraphicsBlocks.js:1012 +#: js/blocks/GraphicsBlocks.js:1095 msgid "Value must be within -20000 to 20000 when Wrap Mode is on." msgstr "" -#: js/GraphicsBlocks.js:660 +#: js/blocks/GraphicsBlocks.js:660 msgid "set heading" msgstr "సెట్ హెడింగ్" -#: js/GraphicsBlocks.js:673 +#: js/blocks/GraphicsBlocks.js:673 msgid "The Set heading block sets the heading of the turtle." msgstr "సెట్ హెడింగ్ బ్లాక్ టర్టిల్ యొక్క హెడింగ్‌ను సెట్ చేస్తుంది." -#: js/GraphicsBlocks.js:733 +#: js/blocks/GraphicsBlocks.js:733 msgid "The Set XY block moves the mouse to a specific position on the screen." msgstr "సెట్ XY బ్లాక్ మౌస్‌ను స్క్రీన్ పైన ఒక నిర్దిష్ట స్థానంకు తరలించేది." -#: js/GraphicsBlocks.js:739 +#: js/blocks/GraphicsBlocks.js:739 msgid "The Set XY block moves the turtle to a specific position on the screen." msgstr "సెట్ XY బ్లాక్ టర్టిల్‌ను స్క్రీన్ పైన ఒక నిర్దిష్ట స్థానంకు తరలించేది." -#: js/GraphicsBlocks.js:747 +#: js/blocks/GraphicsBlocks.js:747 msgid "set xy" msgstr "xy లను అమర్చు" -#: js/GraphicsBlocks.js:819 +#: js/blocks/GraphicsBlocks.js:819 msgid "The Right block turns the mouse to the right." msgstr "రైట్ బ్లాక్ మౌస్‌ను కుడికి తరలుతుంది." -#: js/GraphicsBlocks.js:826 +#: js/blocks/GraphicsBlocks.js:826 msgid "The Right block turns the turtle to the right." msgstr "రైట్ బ్లాక్ టర్టిల్‌ను కుడికి తరలుతుంది." -#: js/GraphicsBlocks.js:835 +#: js/blocks/GraphicsBlocks.js:835 msgid "right1" msgstr "రైట్1" -#: js/GraphicsBlocks.js:835 +#: js/blocks/GraphicsBlocks.js:835 #: plugins/rodi.rtp:77 #: plugins/rodi.rtp:340 #: plugins/rodi.rtp:375 msgid "right" msgstr "రైట్" -#: js/GraphicsBlocks.js:899 +#: js/blocks/GraphicsBlocks.js:899 msgid "The Left block turns the mouse to the left." msgstr "లెఫ్ట్ బ్లాక్ మౌస్‌ను ఎడమకు తరలుతుంది." -#: js/GraphicsBlocks.js:906 +#: js/blocks/GraphicsBlocks.js:906 msgid "The Left block turns the turtle to the left." msgstr "లెఫ్ట్ బ్లాక్ టర్టిల్‌ను ఎడమకు తరలుతుంది." -#: js/GraphicsBlocks.js:915 +#: js/blocks/GraphicsBlocks.js:915 msgid "left1" msgstr "లెఫ్ట్1" -#: js/GraphicsBlocks.js:915 +#: js/blocks/GraphicsBlocks.js:915 #: plugins/rodi.rtp:79 #: plugins/rodi.rtp:339 #: plugins/rodi.rtp:362 msgid "left" msgstr "లెఫ్ట్" -#: js/GraphicsBlocks.js:967 -#: js/temperament.js:734 -#: js/temperament.js:933 +#: js/blocks/GraphicsBlocks.js:967 +#: js/widgets/temperament.js:875 +#: js/widgets/temperament.js:1078 #: plugins/rodi.rtp:69 #: plugins/rodi.rtp:387 msgid "back" msgstr "వెనుక" -#: js/GraphicsBlocks.js:976 +#: js/blocks/GraphicsBlocks.js:976 msgid "The Back block moves the mouse backward." msgstr "బ్యాక్ బ్లాక్ మౌస్‌ను వెనుకకు తరలుతుంది." -#: js/GraphicsBlocks.js:983 +#: js/blocks/GraphicsBlocks.js:983 msgid "The Back block moves the turtle backward." msgstr "బ్యాక్ బ్లాక్ టర్టిల్‌ను వెనుకకు తరలుతుంది." -#: js/GraphicsBlocks.js:1050 +#: js/blocks/GraphicsBlocks.js:1050 #: plugins/rodi.rtp:71 #: plugins/rodi.rtp:400 msgid "forward" msgstr "ముందుకు" -#: js/GraphicsBlocks.js:1059 +#: js/blocks/GraphicsBlocks.js:1059 msgid "The Forward block moves the mouse forward." msgstr "ఫార్వర్డ్ బ్లాక్ మౌస్‌ను ముందుకు తరలుతుంది." -#: js/GraphicsBlocks.js:1066 +#: js/blocks/GraphicsBlocks.js:1066 msgid "The Forward block moves the turtle forward." msgstr "ఫార్వర్డ్ బ్లాక్ టర్టిల్‌ను ముందుకు తరలుతుంది." -#: js/GraphicsBlocks.js:1154 -#: js/GraphicsBlocks.js:1172 +#: js/blocks/GraphicsBlocks.js:1154 +#: js/blocks/GraphicsBlocks.js:1172 msgid "wrap" msgstr "ర్యాప్" -#: js/OrnamentBlocks.js:32 -msgid "staccato factor" -msgstr "స్టాకాటో ఫ్యాక్టర్" - -#: js/OrnamentBlocks.js:108 -msgid "slur factor" -msgstr "స్లర్ ఫ్యాక్టర్" - -#: js/OrnamentBlocks.js:217 -#: js/OrnamentBlocks.js:309 -#.TRANS: the neighbor refers to a neighboring note, e.g., D is a neighbor of C -msgid "neighbor" -msgstr "పడమాని" - -#: js/OrnamentBlocks.js:293 -msgid "The Neighbor block rapidly switches between neighboring pitches." -msgstr "నేబర్ బ్లాక్ అదిరిపోయే అంశాలలో వేరుకు వేరు స్విచ్ చేస్తుంది." - -#: js/OrnamentBlocks.js:364 -msgid "glide" -msgstr "గ్లైడ్" - -#: js/OrnamentBlocks.js:479 -#: js/OrnamentBlocks.js:643 -msgid "slur" -msgstr "స్లర్" - -#: js/OrnamentBlocks.js:558 -#: js/OrnamentBlocks.js:710 -#.TRANS: play each note sharply detached from the others -msgid "staccato" -msgstr "స్టాకాటో" - -#: js/PenBlocks.js:24 +#: js/blocks/PenBlocks.js:30 msgid "purple" msgstr "నేరుపు" -#: js/PenBlocks.js:37 -#: js/SensorsBlocks.js:521 -#: plugins/rodi.rtp:219 -msgid "blue" -msgstr "నీలం" - -#: js/PenBlocks.js:50 -#: js/SensorsBlocks.js:577 -#: plugins/rodi.rtp:218 -msgid "green" -msgstr "ఆకుపచ్చ" - -#: js/PenBlocks.js:63 +#: js/blocks/PenBlocks.js:80 msgid "yellow" msgstr "పసుపు" -#: js/PenBlocks.js:76 +#: js/blocks/PenBlocks.js:96 #: plugins/nutrition.rtp:164 msgid "orange" msgstr "ఆరంజ్" -#: js/PenBlocks.js:89 -#: js/SensorsBlocks.js:633 -#: plugins/rodi.rtp:217 -msgid "red" -msgstr "ఎరుపు" - -#: js/PenBlocks.js:102 +#: js/blocks/PenBlocks.js:128 msgid "white" msgstr "తెల్లని" -#: js/PenBlocks.js:115 +#: js/blocks/PenBlocks.js:144 msgid "black" msgstr "నలుపు" -#: js/PenBlocks.js:128 +#: js/blocks/PenBlocks.js:163 msgid "begin fill" msgstr "భరించడానికి ప్రారంభించండి" -#: js/PenBlocks.js:143 +#: js/blocks/PenBlocks.js:190 msgid "end fill" msgstr "భరించడానికి ముగింపు" -#: js/PenBlocks.js:159 -#: js/PenBlocks.js:386 +#: js/blocks/PenBlocks.js:212 +#: js/blocks/PenBlocks.js:560 #.TRANS: set the background color msgid "background" msgstr "బ్యాక్‌గ్రౌండ్" -#: js/PenBlocks.js:206 -#: js/DictActions.js:71 -#: js/DictActions.js:149 -#: js/DictActions.js:186 +#: js/blocks/PenBlocks.js:274 +#: js/turtleactions/DictActions.js:71 +#: js/turtleactions/DictActions.js:138 +#: js/turtleactions/DictActions.js:170 msgid "grey" msgstr "రంగులు" -#: js/PenBlocks.js:210 +#: js/blocks/PenBlocks.js:282 msgid "The Grey block returns the current pen grey value." msgstr "గ్రే బ్లాక్ ప్రస్తుత కలం గ్రే విలువను తరిస్తుంది." -#: js/PenBlocks.js:243 -#: js/DictActions.js:69 -#: js/DictActions.js:147 -#: js/DictActions.js:185 +#: js/blocks/PenBlocks.js:340 +#: js/turtleactions/DictActions.js:69 +#: js/turtleactions/DictActions.js:136 +#: js/turtleactions/DictActions.js:169 msgid "shade" msgstr "ఛాయ" -#: js/PenBlocks.js:247 +#: js/blocks/PenBlocks.js:347 msgid "The Shade block returns the current pen shade value." msgstr "షేడ్ బ్లాక్ ప్రస్తుత కలం ఛాయ విలువను తరిస్తుంది." -#: js/PenBlocks.js:280 -#: js/DictActions.js:67 -#: js/DictActions.js:145 -#: js/DictActions.js:184 -msgid "color" -msgstr "రంగు" - -#: js/PenBlocks.js:285 -msgid "The Color block returns the current pen color." -msgstr "కలం బ్లాక్ ప్రస్తుత కలం విలువను తరిస్తుంది." - -#: js/PenBlocks.js:318 -#: js/DictActions.js:73 -#: js/DictActions.js:151 -#: js/DictActions.js:187 -msgid "pen size" -msgstr "పెన్ పరిమాణం" - -#: js/PenBlocks.js:322 -msgid "The Pen size block returns the current pen size value." -msgstr "పెన్ సైజు బ్లాక్ ప్రస్తుత పెన్ పరిమాణం విలువను తరిస్తుంది." - -#: js/PenBlocks.js:355 -msgid "set font" -msgstr "ఫాంట్‌ను సెట్ చేయండి" - -#: js/PenBlocks.js:358 -msgid "The Set font block sets the font used by the Show block." -msgstr "సెట్ ఫాంట్ బ్లాక్ షో బ్లాక్ ఉపయోగిస్తున్న ఫాంట్‌ను సెట్ చేస్తుంది." - -#: js/PenBlocks.js:391 -msgid "The Background block sets the window background color." -msgstr "బ్యాక్‌గ్రౌండ్ బ్లాక్ విండో బ్యాక్‌గ్రౌండ్ రంగును సెట్ చేస్తుంది." - -#: js/PenBlocks.js:408 -msgid "The Hollow line block creates a line with a hollow center." -msgstr "హాలో లైన్ బ్లాక్ హాలో సెంటర్ తో ఒక రేఖను సృష్టిస్తుంది." - -#: js/PenBlocks.js:415 -#.TRANS: draw a line logo has a hollow space down its center -msgid "hollow line" -msgstr "హాలో లైన్" - -#: js/PenBlocks.js:462 -msgid "The Fill block fills in a shape with a color." -msgstr "ఫిల్ బ్లాక్ రంగుతో ఒక ఆకారాన్ని భరిస్తుంది." - -#: js/PenBlocks.js:470 -#.TRANS: fill in as a solid color -msgid "fill" -msgstr "భరించు" - -#: js/PenBlocks.js:527 -#.TRANS: raise up the pen so logo it does not draw when it is moved -msgid "pen up" -msgstr "కలం పట్టుకొను" - -#: js/PenBlocks.js:532 -msgid "The Pen-up block raises the pen so that it does not draw." -msgstr "పెన్-అప్ బ్లాక్ పెన్ను ఎగుపెడతాయి, అది దారిచేయడం లేదు." - -#: js/PenBlocks.js:552 -#.TRANS: put down the pen so logo it draws when it is moved -msgid "pen down" -msgstr "కలం పక్కనపెట్టు" - -#: js/PenBlocks.js:557 -msgid "The Pen-down block lowers the pen so that it draws." -msgstr "పెన్-డౌన్ బ్లాక్ పెన్ను కలిగిస్తుంది, అది దారిచేయడంలేదు." - -#: js/PenBlocks.js:577 -#.TRANS: set the width of the line drawn by the pen -msgid "set pen size" -msgstr "కలం పరిమాణాన్ని అమర్చు" - -#: js/PenBlocks.js:583 -msgid "The Set-pen-size block changes the size of the pen." -msgstr "సెట్-పెన్-సైజ్ బ్లాక్ పెన్ పరిమాణం మార్చిపెడతాయి." - -#: js/PenBlocks.js:623 -#.TRANS: set degree of translucence of the pen color -msgid "set translucency" -msgstr "పారదర్శకతను సెట్ చేయండి." - -#: js/PenBlocks.js:627 -msgid "The Set translucency block changes the opacity of the pen." -msgstr "సెట్ పారదర్శకత బ్లాక్ పెన్ అస్పష్టతను మార్చిపెడతాయి." - -#: js/PenBlocks.js:668 -msgid "set hue" -msgstr "హ్యూ ను సెట్ చేయండి." - -#: js/PenBlocks.js:672 -msgid "The Set hue block changes the color of the pen." -msgstr "సెట్ హ్యూ బ్లాక్ పెన్ రంగును మార్చిపెడతాయి." - -#: js/PenBlocks.js:711 -msgid "set shade" -msgstr "ఛాయను అమర్చు" - -#: js/PenBlocks.js:717 -msgid "The Set-shade block changes the pen color from dark to light." -msgstr "సెట్-షేడ్ బ్లాక్ పెన్ రంగును అంగడానికి మార్చిపెడతాయి." - -#: js/PenBlocks.js:757 -#.TRANS: set the level of vividness of the pen color -msgid "set grey" -msgstr "గ్రే ను సెట్ చేయండి." - -#: js/PenBlocks.js:761 -msgid "The Set grey block changes the vividness of the pen color." -msgstr "సెట్ గ్రే బ్లాక్ పెన్ రంగును బృహదరంగా మార్చిపెడతాయి." - -#: js/PenBlocks.js:800 -msgid "set color" -msgstr "వర్ణాన్ని అమర్చు" - -#: js/PenBlocks.js:806 -msgid "The Set-color block changes the pen color." -msgstr "సెట్-రంగు బ్లాక్ పెన్ రంగును మార్చిపెడతాయి." - -#: js/VolumeBlocks.js:35 -msgid "synth volume" -msgstr "సింథ్ వాల్యూమ్" - -#: js/VolumeBlocks.js:39 -msgid "The Synth volume block returns the current volume of the current synthesizer." -msgstr "సింథ్ వాల్యూమ్ బ్లాక్ ప్రస్తుత సింథెసైజర్ యొక్క ప్రస్తుత వాల్యూమ్ను తిరిగి ఇస్తుంది." - -#: js/VolumeBlocks.js:47 -#: js/musicutils.js:730 -#: js/synthutils.js:56 -#.TRANS: musical instrument -msgid "piano" -msgstr "పియానో" - -#: js/VolumeBlocks.js:105 -msgid "master volume" -msgstr "మాస్టర్ వాల్యూమ్" - -#: js/VolumeBlocks.js:109 -msgid "The Master volume block returns the master volume." -msgstr "మాస్టర్ వాల్యూమ్ బ్లాక్ మాస్టర్ వాల్యూమ్ను తిరిగి ఇస్తుంది." - -#: js/VolumeBlocks.js:355 -#: js/VolumeBlocks.js:524 -msgid "set synth volume" -msgstr "సింథ్ వాల్యూమ్ ను సెట్ చేయండి." - -#: js/VolumeBlocks.js:362 -#: js/VolumeBlocks.js:545 -msgid "synth" -msgstr "సింథ్" - -#: js/VolumeBlocks.js:403 -#: js/VolumeBlocks.js:577 -#: js/VolumeBlocks.js:740 -#: js/VolumeActions.js:173 -msgid "Setting volume to 0." -msgstr "వాల్యూమ్ను 0 కి సెట్ చేస్తోంది." - -#: js/VolumeBlocks.js:440 -msgid "Synth not found" -msgstr "సింథ్ కనబడలేదు" - -#: js/VolumeBlocks.js:494 -msgid "set drum volume" -msgstr "డ్రం వాల్యూమ్ ను సెట్ చేయండి" - -#: js/VolumeBlocks.js:530 -msgid "The Set synth volume block will change the volume of a particular synth," -msgstr "సెట్ సింథ్ వాల్యూమ్ బ్లాక్ అంగీకరించే సింథెసైజర్ యొక్క వాల్యూమ్ మార్చిపెడతాయి," - -#: js/VolumeBlocks.js:532 -msgid "eg guitar violin snare drum etc." -msgstr "ఉదా. గిటార్, వాయలిన్, స్నేయర్ డ్రం మరియు ఇతరులు." - -#: js/VolumeBlocks.js:534 -msgid "The default volume is 50." -msgstr "డిఫాల్ట్ వాల్యూమ్ 50 ఉంది." - -#: js/VolumeBlocks.js:536 -msgid "The range is 0 for silence to 100 for full volume." -msgstr "వాల్యూమ్ యొక్క శాంతత కోసం 0 నుండి పూర్తి వాల్యూమ్ కోసం 100 వరకు ఉంది." +#: js/blocks/PenBlocks.js:405 +#: js/turtleactions/DictActions.js:67 +#: js/turtleactions/DictActions.js:134 +#: js/turtleactions/DictActions.js:168 +msgid "color" +msgstr "రంగు" -#: js/VolumeBlocks.js:597 -msgid "set panning" -msgstr "ప్యానింగ్ ను సెట్ చేయండి" +#: js/blocks/PenBlocks.js:415 +msgid "The Color block returns the current pen color." +msgstr "కలం బ్లాక్ ప్రస్తుత కలం విలువను తరిస్తుంది." -#: js/VolumeBlocks.js:603 -msgid "The Set Panning block sets the panning for all synthesizers." -msgstr "సెట్ పానింగ్ బ్లాక్ అన్ని సింథెసైజర్ల కోసం పానింగ్ను సెట్ చేస్తుంది." +#: js/blocks/PenBlocks.js:470 +#: js/turtleactions/DictActions.js:73 +#: js/turtleactions/DictActions.js:140 +#: js/turtleactions/DictActions.js:171 +msgid "pen size" +msgstr "పెన్ పరిమాణం" -#: js/VolumeBlocks.js:625 -msgid "Warning: Sound is coming out from only the left or right side." -msgstr "హెచ్చరిక: ధ్వని కేవలం ఎడమ లేదా కుడి వైపున నుండి వస్తుంది." +#: js/blocks/PenBlocks.js:474 +msgid "The Pen size block returns the current pen size value." +msgstr "పెన్ సైజు బ్లాక్ ప్రస్తుత పెన్ పరిమాణం విలువను తరిస్తుంది." -#: js/VolumeBlocks.js:647 -#: js/VolumeBlocks.js:695 -msgid "set master volume" -msgstr ""మాస్టర్ వాల్యూమ్ ను సెట్ చేయండి." +#: js/blocks/PenBlocks.js:513 +msgid "set font" +msgstr "ఫాంట్‌ను సెట్ చేయండి" -#: js/VolumeBlocks.js:653 -msgid "The Set master volume block sets the volume for all synthesizers." -msgstr "సెట్ మాస్టర్ వాల్యూమ్ బ్లాక్ అన్ని సింథెసైజర్ల కోసం వాల్యూమ్ను సెట్ చేస్తుంది." +#: js/blocks/PenBlocks.js:518 +msgid "The Set font block sets the font used by the Show block." +msgstr "సెట్ ఫాంట్ బ్లాక్ షో బ్లాక్ ఉపయోగిస్తున్న ఫాంట్‌ను సెట్ చేస్తుంది." -#: js/VolumeBlocks.js:784 -msgid "The Set relative volume block changes the volume of the contained notes." -msgstr "సెట్ రిలేటివ్ వాల్యూమ్ బ్లాక్ ఉన్న నోట్ల వాల్యూమ్ను మార్చిపెడతాయి." +#: js/blocks/PenBlocks.js:567 +msgid "The Background block sets the window background color." +msgstr "బ్యాక్‌గ్రౌండ్ బ్లాక్ విండో బ్యాక్‌గ్రౌండ్ రంగును సెట్ చేస్తుంది." -#: js/VolumeBlocks.js:791 -msgid "set relative volume" -msgstr "రిలేటివ్ వాల్యూమ్ ను సెట్ చేయండి." +#: js/blocks/PenBlocks.js:598 +msgid "The Hollow line block creates a line with a hollow center." +msgstr "హాలో లైన్ బ్లాక్ హాలో సెంటర్ తో ఒక రేఖను సృష్టిస్తుంది." -#: js/VolumeBlocks.js:857 -msgid "decrescendo" -msgstr "డెక్రెసెండో" +#: js/blocks/PenBlocks.js:606 +#.TRANS: draw a line logo has a hollow space down its center +msgid "hollow line" +msgstr "హాలో లైన్" -#: js/VolumeBlocks.js:921 -msgid "crescendo" -msgstr "క్రిస్సెండో" +#: js/blocks/PenBlocks.js:675 +msgid "The Fill block fills in a shape with a color." +msgstr "ఫిల్ బ్లాక్ రంగుతో ఒక ఆకారాన్ని భరిస్తుంది." -#: js/ToneBlocks.js:34 -msgid "oscillator" -msgstr "ఆసిలేటర్" +#: js/blocks/PenBlocks.js:684 +#.TRANS: fill in as a solid color +msgid "fill" +msgstr "భరించు" -#: js/ToneBlocks.js:44 -#: js/timbre.js:1562 -#.TRANS: Partials refers to the number of sine waves combined into the sound. -msgid "partials" -msgstr "పార్షల్స్" +#: js/blocks/PenBlocks.js:761 +#.TRANS: raise up the pen so logo it does not draw when it is moved +msgid "pen up" +msgstr "కలం పట్టుకొను" -#: js/ToneBlocks.js:76 -msgid "You are adding multiple oscillator blocks." -msgstr "మీరు అనేక ఆసిలేటర్ బ్లాక్లను జోడిస్తున్నారు." +#: js/blocks/PenBlocks.js:768 +msgid "The Pen-up block raises the pen so that it does not draw." +msgstr "పెన్-అప్ బ్లాక్ పెన్ను ఎగుపెడతాయి, అది దారిచేయడం లేదు." -#: js/ToneBlocks.js:144 -#: js/timbre.js:1225 -#.TRANS: a duo synthesizer combines a synth with a sequencer -msgid "duo synth" -msgstr "డ్యూవో సింథ్" +#: js/blocks/PenBlocks.js:802 +#.TRANS: put down the pen so logo it draws when it is moved +msgid "pen down" +msgstr "కలం పక్కనపెట్టు" -#: js/ToneBlocks.js:149 -msgid "The Duo synth block is a duo-frequency modulator used to define a timbre." -msgstr "డ్యూవో సింథ్ బ్లాక్ ఒక డ్యూవో-ఫ్రిక్వెన్సీ మాడ్యులేటర్, ఒక టింబర్ ని వ్యాఖ్యానిస్తుంది." +#: js/blocks/PenBlocks.js:810 +msgid "The Pen-down block lowers the pen so that it draws." +msgstr "పెన్-డౌన్ బ్లాక్ పెన్ను కలిగిస్తుంది, అది దారిచేయడంలేదు." -#: js/ToneBlocks.js:157 -#: js/timbre.js:1476 -msgid "vibrato rate" -msgstr "విబ్రాటో వేగం" +#: js/blocks/PenBlocks.js:844 +#.TRANS: set the width of the line drawn by the pen +msgid "set pen size" +msgstr "కలం పరిమాణాన్ని అమర్చు" -#: js/ToneBlocks.js:157 -msgid "vibrato intensity" -msgstr "విబ్రాటో కఠినత" +#: js/blocks/PenBlocks.js:854 +msgid "The Set-pen-size block changes the size of the pen." +msgstr "సెట్-పెన్-సైజ్ బ్లాక్ పెన్ పరిమాణం మార్చిపెడతాయి." -#: js/ToneBlocks.js:185 -#: js/timbre.js:1221 -#.TRANS: AM (amplitude modulation) synthesizer -msgid "AM synth" -msgstr "AM సింథ్" +#: js/blocks/PenBlocks.js:913 +#.TRANS: set degree of translucence of the pen color +msgid "set translucency" +msgstr "పారదర్శకతను సెట్ చేయండి." -#: js/ToneBlocks.js:189 -msgid "The AM synth block is an amplitude modulator used to define a timbre." -msgstr "AM సింథ్ బ్లాక్ ఒక ఏమ్ప్లిట్యూడ్ మాడ్యులేటర్, ఒక టింబర్ ని వ్యాఖ్యానిస్తుంది." +#: js/blocks/PenBlocks.js:921 +msgid "The Set translucency block changes the opacity of the pen." +msgstr "సెట్ పారదర్శకత బ్లాక్ పెన్ అస్పష్టతను మార్చిపెడతాయి." -#: js/ToneBlocks.js:224 -#: js/timbre.js:1223 -#.TRANS: FM (frequency modulation) synthesizer -msgid "FM synth" -msgstr "FM సింథ్" +#: js/blocks/PenBlocks.js:981 +msgid "set hue" +msgstr "హ్యూ ను సెట్ చేయండి." -#: js/ToneBlocks.js:228 -msgid "The FM synth block is a frequency modulator used to define a timbre." -msgstr "FM సింథ్ బ్లాక్ ఒక ఫ్రిక్వెన్సీ మాడ్యులేటర్, ఒక టింబర్ ని వ్యాఖ్యానిస్తుంది." +#: js/blocks/PenBlocks.js:989 +msgid "The Set hue block changes the color of the pen." +msgstr "సెట్ హ్యూ బ్లాక్ పెన్ రంగును మార్చిపెడతాయి." -#: js/ToneBlocks.js:262 -msgid "partial" -msgstr "పార్షల్" +#: js/blocks/PenBlocks.js:1047 +msgid "set shade" +msgstr "ఛాయను అమర్చు" -#: js/ToneBlocks.js:265 -msgid "The Partial block is used to specify a weight for a specific partial harmonic." -msgstr "పార్షల్ బ్లాక్ ఒక నిర్దిష్ట పార్షల్ హార్మోనిక్కు ఒక బరువును నిర్ధిష్టించడానికి ఉపయోగిస్తుంది." +#: js/blocks/PenBlocks.js:1057 +msgid "The Set-shade block changes the pen color from dark to light." +msgstr "సెట్-షేడ్ బ్లాక్ పెన్ రంగును అంగడానికి మార్చిపెడతాయి." -#: js/ToneBlocks.js:284 -#.TRANS: partials are weighted components in a harmonic series -msgid "Partial weight must be between 0 and 1." -msgstr "పార్షల్ బరువు 0 నుండి 1 మధ్యలో ఉండాలి." +#: js/blocks/PenBlocks.js:1111 +#.TRANS: set the level of vividness of the pen color +msgid "set grey" +msgstr "గ్రే ను సెట్ చేయండి." -#: js/ToneBlocks.js:297 -#.TRANS: partials are weighted components in a harmonic series -msgid "Partial block should be used inside of a Weighted-partials block." -msgstr "పార్షల్ బ్లాక్ ఒక బరువును నిర్ధిష్టించడానికి పైన Weighted-partials బ్లాక్ లో ఉపయోగించాలి." +#: js/blocks/PenBlocks.js:1119 +msgid "The Set grey block changes the vividness of the pen color." +msgstr "సెట్ గ్రే బ్లాక్ పెన్ రంగును బృహదరంగా మార్చిపెడతాయి." -#: js/ToneBlocks.js:325 -#.TRANS: partials are weighted components in a harmonic series -msgid "weighted partials" -msgstr "వేటెడ్ పార్షల్స్" +#: js/blocks/PenBlocks.js:1172 +msgid "set color" +msgstr "వర్ణాన్ని అమర్చు" -#: js/ToneBlocks.js:383 -msgid "The Harmonic block will add harmonics to the contained notes." -msgstr "హార్మోనిక్ బ్లాక్ అంగీకరించిన నోట్లకు హార్మోనిక్స్ ను జోడిస్తుంది." +#: js/blocks/PenBlocks.js:1182 +msgid "The Set-color block changes the pen color." +msgstr "సెట్-రంగు బ్లాక్ పెన్ రంగును మార్చిపెడతాయి." -#: js/ToneBlocks.js:390 -#.TRANS: A harmonic is an overtone. -msgid "harmonic" -msgstr "హార్మోనిక్" +#: js/blocks/PitchBlocks.js:141 +#.TRANS: musical transposition (adjustment of pitch up or down) +msgid "transposition" +msgstr "స్వరాను సరిగా చేయడానికి సవరాను" -#: js/ToneBlocks.js:431 -msgid "The Distortion block adds distortion to the pitch." -msgstr "డిస్టోర్షన్ బ్లాక్ పిచ్ కి డిస్టోర్షన్ ను జోడిస్తుంది." +#: js/blocks/PitchBlocks.js:168 +#.TRANS: step down one note in current musical scale +msgid "scalar step down" +msgstr "ప్రస్తుత సంగీత స్కేల్‌లో ఒక నోట్ క్రిందకి ఒక అంశం తగ్గిస్తుంది" -#: js/ToneBlocks.js:438 -#: js/timbre.js:2100 -#.TRANS: distortion is an alteration in the sound -msgid "distortion" -msgstr "డిస్టోర్షన్" +#: js/blocks/PitchBlocks.js:172 +msgid "The Scalar step down block returns the number of semi-tones down to the previous note in the current key and mode." +msgstr "స్కేల్‌లో మునుపటి గానంకి డౌన్ చేసే సెమీ-టోన్స్ సంఖ్యను తరిచేస్తుంది." -#: js/ToneBlocks.js:487 -msgid "The Tremolo block adds a wavering effect." -msgstr "ట్రెమోలో బ్లాక్ ఒక పలకింపు ప్రభావాన్ని జోడిస్తుంది." +#: js/blocks/PitchBlocks.js:190 +#.TRANS: step up one note in current musical scale +msgid "scalar step up" +msgstr "ప్రస్తుత సంగీత స్కేల్‌లో ఒక నోట్ పెరిగిపోయి ఉంచిస్తుంది" -#: js/ToneBlocks.js:495 -#: js/timbre.js:2092 -#.TRANS: a wavering effect in a musical tone -msgid "tremolo" -msgstr "ట్రెమోలో" +#: js/blocks/PitchBlocks.js:194 +msgid "The Scalar step up block returns the number of semi-tones up to the next note in the current key and mode." +msgstr "స్కేల్‌లో తరిగిన గానంకి డబ్బుల సంఖ్యను తరిచేస్తుంది." -#: js/ToneBlocks.js:500 -#: js/ToneBlocks.js:569 -#: js/ToneBlocks.js:630 -#: js/ToneBlocks.js:689 -#: js/timbre.js:2134 -#: js/timbre.js:2222 -#: js/timbre.js:2317 -#: js/timbre.js:2419 -#.TRANS: rate at which tremolo wavers -msgid "rate" -msgstr "వేగం" +#: js/blocks/PitchBlocks.js:212 +#.TRANS: the change measured in half-steps between the current pitch and the previous pitch +msgid "change in pitch" +msgstr "ప్రస్తుత స్వరాన్ని మునుపటి స్వరంలో మారుకోవడానికి అనుమానాంకాల మార్గాన మార్గాన మారుతుంది." -#: js/ToneBlocks.js:502 -#: js/ToneBlocks.js:630 -#: js/timbre.js:2137 -#: js/timbre.js:2328 -#.TRANS: amplitude of tremolo waver -msgid "depth" -msgstr "గాంభీర్యం" +#: js/blocks/PitchBlocks.js:216 +msgid "The Change in pitch block is the difference (in half steps) between the current pitch being played and the previous pitch played." +msgstr "ప్రస్తుత ప్లే చేయబడుతున్న స్వరాన్ని మునుపటి ప్లే చేయబడిన స్వరాన్ని (అంశాలలో) వ్యత్యాసం ఉంది." -#: js/ToneBlocks.js:559 -msgid "The Phaser block adds a sweeping sound." -msgstr "ఫేసర్ బ్లాక్ ఒక స్వీపింగ్ ధ్వనిని జోడిస్తుంది." +#: js/blocks/PitchBlocks.js:243 +#.TRANS: the change measured in scale-steps between the current pitch and the previous pitch +msgid "scalar change in pitch" +msgstr "ధ్వనిలో స్కాలర్ మారుతోంది" -#: js/ToneBlocks.js:566 -#: js/timbre.js:2098 -#.TRANS: alter the phase of the sound -msgid "phaser" -msgstr "ఫేసర్" +#: js/blocks/PitchBlocks.js:250 +#: js/blocks/PitchBlocks.js:432 +#: js/blocks/PitchBlocks.js:1667 +#: js/turtleactions/DictActions.js:89 +#: js/widgets/temperament.js:610 +#: js/widgets/temperament.js:614 +#: js/widgets/temperament.js:855 +#.TRANS: convert current note to piano key (1-88) +#.TRANS: a mapping of pitch to the 88 piano keys +msgid "pitch number" +msgstr "పిచ్ సంఖ్య" -#: js/ToneBlocks.js:569 -#: js/timbre.js:2422 -msgid "octaves" -msgstr "ఆక్టవ్స్" +#: js/blocks/PitchBlocks.js:256 +msgid "The Pitch number block is the value of the pitch of the note currently being played." +msgstr "పిచ్ సంఖ్య బ్లాక్ ప్రస్తుతం ప్లే చేయబడుచున్న నోటు యొక్క పిచ్ యొక్క విలువ ఉంది." -#: js/ToneBlocks.js:569 -#: js/timbre.js:2425 -msgid "base frequency" -msgstr "బేస్ ఫ్రిక్వెన్సీ" +#: js/blocks/PitchBlocks.js:329 +#: js/blocks/PitchBlocks.js:433 +#.TRANS: the current pitch expressed in Hertz +msgid "pitch in hertz" +msgstr "" -#: js/ToneBlocks.js:619 -msgid "The Chorus block adds a chorus effect." -msgstr "ఛోరస్ బ్లాక్ ఒక ఛోరస్ ప్రభావాన్ని జోడిస్తుంది." +#: js/blocks/PitchBlocks.js:334 +msgid "The Pitch in Hertz block is the value in Hertz of the pitch of the note currently being played." +msgstr "పిచ్ హెర్ట్జ్‌లో" -#: js/ToneBlocks.js:627 -#: js/timbre.js:2096 -#.TRANS: musical effect to simulate a choral sound -msgid "chorus" -msgstr "ఛోరస్" +#: js/blocks/PitchBlocks.js:367 +#: js/turtleactions/DictActions.js:87 +msgid "current pitch" +msgstr "ప్రస్తుత పిచ్" -#: js/ToneBlocks.js:630 -msgid "delay" -msgstr "విలంబన" +#: js/blocks/PitchBlocks.js:373 +msgid "The Current Pitch block is used with the Pitch Converter block. In the example above, current pitch, sol 4, is displayed as 392 hertz." +msgstr "" -#: js/ToneBlocks.js:678 -msgid "The Vibrato block adds a rapid, slight variation in pitch." -msgstr "విబ్రాటో బ్లాక్ ఒక శీఘ్ర, స్లైట్ పరివర్తనాన్ని పిచ్చిలో జోడిస్తుంది." +#: js/blocks/PitchBlocks.js:410 +msgid "This block converts the pitch value of the last note played into different formats such as hertz, letter name, pitch number, et al." +msgstr "" -#: js/ToneBlocks.js:686 -#: js/timbre.js:2094 -#.TRANS: a rapid, slight variation in pitch -msgid "vibrato" -msgstr "విబ్రాటో" +#: js/blocks/PitchBlocks.js:434 +msgid "alphabet" +msgstr "అక్షరము" -#: js/ToneBlocks.js:689 -#: js/timbre.js:2221 -msgid "intensity" -msgstr "ప్రాధికూత్య" +#: js/blocks/PitchBlocks.js:436 +#.TRANS: Translate as "alphabet class" +msgid "letter class" +msgstr "అక్షర వర్గం" -#: js/ToneBlocks.js:733 -#.TRANS: select synthesizer -msgid "set synth" -msgstr "సింథెసైజర్ను ఎంచుకో" +#: js/blocks/PitchBlocks.js:437 +msgid "solfege class" +msgstr "సొల్ఫేజ్ వర్గం" -#: js/ToneBlocks.js:804 -msgid "synth name" -msgstr "సింథెసైజర్ పేరు" +#: js/blocks/PitchBlocks.js:438 +msgid "staff y" +msgstr "స్టాఫ్ Y" -#: js/ToneBlocks.js:842 -msgid "set default instrument" -msgstr "డిఫాల్ట్ వాద్యంను సెట్ చేయండి" +#: js/blocks/PitchBlocks.js:439 +msgid "solfege syllable" +msgstr "సొల్ఫేజ్ అక్షరము" -#: js/ToneBlocks.js:895 -#: js/ToneBlocks.js:943 -#.TRANS: set the characteristics of a custom instrument -msgid "set instrument" -msgstr "అనుకూల వాద్యంను సెట్ చేయండి" +#: js/blocks/PitchBlocks.js:440 +msgid "pitch class" +msgstr "పిచ్ వర్గం" -#: js/ToneBlocks.js:898 -#: js/ToneBlocks.js:926 -#: js/ToneBlocks.js:932 -msgid "The Set instrument block selects a voice for the synthesizer," -msgstr "సెట్ ఇన్స్ట్రమెంట్ బ్లాక్ సింథెసైజర్ కు ఒక ధ్వనిని ఎంచుకోనుండి," +#: js/blocks/PitchBlocks.js:441 +msgid "scalar class" +msgstr "స్కాలర్ వర్గం" -#: js/ToneBlocks.js:900 -#: js/ToneBlocks.js:934 -msgid "eg guitar piano violin or cello." -msgstr "ఉదాహరణగా, గిటార్, పియానో, వాయలిన్ లేదా సెల్లో." +#: js/blocks/PitchBlocks.js:443 +msgid "nth degree" +msgstr "ఎన్తో డిగ్రీ" -#: js/ToneBlocks.js:1015 -msgid "Import a sound file to use as an instrument and set its pitch center." -msgstr "వాద్యానికి ఉపయోగించడానికి ఒక ధ్వని ఫైల్ను దిగుమతి చేసి అదికి చేయడానికి." +#: js/blocks/PitchBlocks.js:444 +msgid "pitch to shade" +msgstr "పిచ్ ను షేడ్ చేయి" -#: js/ToneBlocks.js:1110 -msgid "Upload a sound file to connect with the sample block." -msgstr "సేంపిల్ బ్లాక్తో కనెక్ట్ అవుట్ చేడానికి ఒక ధ్వని ఫైల్ను అప్లోడ్ చేయండి." +#: js/blocks/PitchBlocks.js:445 +msgid "pitch to color" +msgstr "పిచ్ ను రంగుకు" -#: js/MeterBlocks.js:34 -#.TRANS: musical meter (time signature), e.g., 4:4 -msgid "current meter" -msgstr "ప్రస్తుత మీటర్" +#: js/blocks/PitchBlocks.js:629 +#: js/widgets/musickeyboard.js:735 +#.TRANS: MIDI is a technical standard for electronic music +msgid "MIDI" +msgstr "MIDI" -#: js/MeterBlocks.js:85 -#.TRANS: number of beats per minute -msgid "beat factor" -msgstr "బీట్ ఫ్యాక్టర్" +#: js/blocks/PitchBlocks.js:642 +#.TRANS: set an offset associated with the numeric piano keyboard mapping +msgid "set pitch number offset" +msgstr "పిచ్ సంఖ్య ఆఫ్‌సెట్ సెట్ చేయండి" -#: js/MeterBlocks.js:161 -msgid "The Beats per minute block returns the current beats per minute." -msgstr "బీట్స్ పెర్ మినిట్ బ్లాక్ ప్రస్తుత బీట్స్ పెర్ మినిట్ ను తిరిగిస్తుంది." +#: js/blocks/PitchBlocks.js:645 +msgid "The Set pitch number offset block is used to set the offset for mapping pitch numbers to pitch and octave." +msgstr "పిచ్ సంఖ్యలను పిచ్ మరియు ఆక్టేవ్‌కు మాపించడానికి ఆఫ్‌సెట్‌ను సెట్ చేయడానికి Set pitch number offset బ్లాక్ ఉపయోగిస్తారు." -#: js/MeterBlocks.js:169 -#: js/status.js:152 -#.TRANS: number of beats played per minute -msgid "beats per minute2" -msgstr "ప్రతి నిమిషం ప్రతి నిమిషం ప్రతి నిమిషం ప్రతి నిమిషం ప్రతి నిమిషం ప్రతి నిమిషం" +#: js/blocks/PitchBlocks.js:679 +#.TRANS: convert piano key number (1-88) to pitch +msgid "number to pitch" +msgstr "నంబర్ ను పిచ్ కి మార్చండి" -#: js/MeterBlocks.js:169 -#: js/MeterBlocks.js:1056 -#: js/MeterBlocks.js:1133 -#: js/MeterBlocks.js:1211 -#.TRANS: sets tempo by defining a beat and beats per minute -msgid "beats per minute" -msgstr "మినిట్లో బీట్లు" +#: js/blocks/PitchBlocks.js:682 +msgid "The Number to pitch block will convert a pitch number to a pich name." +msgstr "" -#: js/MeterBlocks.js:233 -#.TRANS: count of current musical measure in meter -msgid "measure count" -msgstr "మీటర్ లో ప్రస్తుత సంగీత మెజరు సంఖ్య" +#: js/blocks/PitchBlocks.js:715 +#.TRANS: convert piano key number (1-88) to octave +msgid "number to octave" +msgstr "నంబర్ ను ఒక్టేవ్‌కి మార్చండి" -#: js/MeterBlocks.js:241 -msgid "The Measure count block returns the current measure." -msgstr "మీజర్ కౌంట్ బ్లాక్ ప్రస్తుత మీజర్ను తిరిగిస్తుంది." +#: js/blocks/PitchBlocks.js:717 +msgid "The Number to octave block will convert a pitch number to an octave." +msgstr "Number to octave బ్లాక్ ఒక పిచ్ సంఖ్యను ఒక్టేవ్‌కు మార్చగలిగేది." -#: js/MeterBlocks.js:290 -#.TRANS: count of current beat in the meter -msgid "beat count" -msgstr "మీటర్ లో ప్రస్తుత బీట్ సంఖ్య" +#: js/blocks/PitchBlocks.js:726 +msgid "y to pitch" +msgstr "Y ను పిచ్ కి" -#: js/MeterBlocks.js:300 -#: js/MeterBlocks.js:311 -#: js/MeterBlocks.js:565 -#: js/MeterBlocks.js:576 -msgid "The Beat count block is the number of the current beat," -msgstr "బీట్ కౌంట్ బ్లాక్ ప్రస్తుత బీట్ యొక్క సంఖ్య ఉంది," +#: js/blocks/PitchBlocks.js:729 +msgid "Y to pitch block will convert a staff y position to corresponding pitch notation." +msgstr "Y to pitch బ్లాక్ స్టాఫ్ Y స్థానంను సరిపోయిన పిచ్ సారాంశంగా మార్చిపోతుంది." -#: js/MeterBlocks.js:313 -#: js/MeterBlocks.js:578 -msgid "eg 1, 2, 3, or 4." -msgstr "ఉదాహరణగా, 1, 2, 3, లేదా 4." +#: js/blocks/PitchBlocks.js:841 +msgid "accidental selector" +msgstr "అక్షిడెంటల్ సెలెక్టర్" -#: js/MeterBlocks.js:368 -#.TRANS: count the number of notes -msgid "sum note values" -msgstr "గానా విలువల సంఖ్య గణించండి" +#: js/blocks/PitchBlocks.js:844 +msgid "The Accidental selector block is used to choose between double-sharp, sharp, natural, flat, and double-flat." +msgstr "అక్షిడెంటల్ సెలెక్టర్ బ్లాక్ ద్విగుభార్పణాతి, శార్ప్, స్వాభావికం, ఫ్లాట్, మరియు ద్విగుభార్పణాతి మధ్య ఎంచుకోవడానికి ఉపయోగిస్తారు." -#: js/MeterBlocks.js:376 -#: js/MeterBlocks.js:440 -msgid "The Note counter block can be used to count the number of contained notes." -msgstr "గానా కౌంటర్ బ్లాక్ విలువలను కంటులో గణించడానికి ఉపయోగించవచ్చు." +#: js/blocks/PitchBlocks.js:858 +msgid "Pitch can be specified in terms of ni dha pa ma ga re sa." +msgstr "" -#: js/MeterBlocks.js:432 -#.TRANS: count the number of notes -msgid "note counter" -msgstr "గానా కౌంటర్" +#: js/blocks/PitchBlocks.js:872 +msgid "Pitch can be specified in terms of C D E F G A B." +msgstr "" -#: js/MeterBlocks.js:496 -#.TRANS: number of whole notes that have been played -msgid "whole notes played" +#: js/blocks/PitchBlocks.js:884 +msgid "solfege" msgstr "" -#: js/MeterBlocks.js:505 -msgid "The Whole notes played block returns the total number of whole notes played." -msgstr "హోల్ నోట్లు ప్రారంభించబడిన ఆదాయంను తరచుకుపెడతాయి." +#: js/blocks/PitchBlocks.js:887 +msgid "Pitch can be specified in terms of do re mi fa sol la ti." +msgstr "" -#: js/MeterBlocks.js:555 -#: js/DictActions.js:83 -#.TRANS: number of notes that have been played -msgid "notes played" +#: js/blocks/PitchBlocks.js:922 +msgid "The Invert block rotates any contained notes around a target note." msgstr "" -#: js/MeterBlocks.js:653 -msgid "The No clock block decouples the notes from the master clock." -msgstr "నో క్లాక్ బ్లాక్ నోట్లను మాస్టర్ క్లాక్ నుంచి విరామం చేస్తుంది." +#: js/blocks/PitchBlocks.js:929 +#.TRANS: pitch inversion rotates a pitch around another pitch +msgid "invert" +msgstr "పిచ్ వామకాలానికి రోటేట్ చేస్తుంది" -#: js/MeterBlocks.js:661 -#.TRANS: don't lock notes to master clock -msgid "no clock" -msgstr "మాస్టర్ క్లాక్కు గానాలను లాక్ చేయాలేదు" +#: js/blocks/PitchBlocks.js:968 +#.TRANS: pitch inversion rotates a pitch around another pitch (odd number) +msgid "invert (odd)" +msgstr "వామకాలానికి రోటేట్ చేస్తుంది (అసమం)" -#: js/MeterBlocks.js:700 -msgid "on weak beat do" -msgstr "బలహీన బీట్పై చర్య చేయండి" +#: js/blocks/PitchBlocks.js:1001 +#.TRANS: pitch inversion rotates a pitch around another pitch (even number) +msgid "invert (even)" +msgstr "వామకాలానికి రోటేట్ చేస్తుంది (సమం)" -#: js/MeterBlocks.js:705 -msgid "The On-weak-beat block lets you specify actions to take on weak (off) beats." -msgstr "" +#: js/blocks/PitchBlocks.js:1022 +#.TRANS: register is the octave of the current pitch +msgid "register" +msgstr "రిజిస్టర్" -#: js/MeterBlocks.js:750 -msgid "on strong beat" -msgstr "బలమైన బీట్పై" +#: js/blocks/PitchBlocks.js:1026 +msgid "The Register block provides an easy way to modify the register (octave) of the notes that follow it." +msgstr "రిజిస్టర్ బ్లాక్ అనుసరించే గానాల రిజిస్టర్ (ఆక్టేవ్) పరిష్కరించడానికి సులభ మార్గానే అందిస్తుంది." -#: js/MeterBlocks.js:758 -msgid "The On-strong-beat block lets you specify actions to take on specified beats." +#: js/blocks/PitchBlocks.js:1047 +#.TRANS: cents are units used to specify the ratio between pitches. There are 100 cents between successive notes. +msgid "50 cents" msgstr "" -#: js/MeterBlocks.js:769 -msgid "beat" -msgstr "బీట్" +#: js/blocks/PitchBlocks.js:1102 +msgid "The Semi-tone transposition block will shift the pitches contained inside Note blocks up (or down) by half steps." +msgstr "సెమి-టోన్ ట్రాన్స్పోజిషన్ బ్లాక్ నోట్ బ్లాక్‌లో ఉండే పిచ్లను అప్ (లేదా) అడుగుపెడతాయి." -#: js/MeterBlocks.js:813 -msgid "on every beat do" -msgstr "ప్రతి బీట్పై చర్య చేయండి" +#: js/blocks/PitchBlocks.js:1104 +msgid "In the example shown above, sol is shifted up to sol#." +msgstr "ప్రదర్శించిన ఉదాహరణలో, సోల్ ను సోల్# కి అప్ చేయబడింది." -#: js/MeterBlocks.js:821 -msgid "The On-every-beat block lets you specify actions to take on every beat." +#: js/blocks/PitchBlocks.js:1110 +#.TRANS: adjust the amount of shift (up or down) of a pitch +msgid "semi-tone transpose" +msgstr "సెమి-టోన్ ట్రాన్స్పోజ్" + +#: js/blocks/PitchBlocks.js:1143 +msgid "The Transpose by Ratio block will shift the pitches contained inside Note blocks up (or down) by a ratio" msgstr "" -#: js/MeterBlocks.js:874 -msgid "on every note do" -msgstr "ప్రతి గానాను పైన చేయండి" +#: js/blocks/PitchBlocks.js:1149 +#.TRANS: adjust the amount of shift (up or down) of a pitch +msgid "transpose by ratio" +msgstr "రేషియో ద్వారా ట్రాన్స్పోజ్" -#: js/MeterBlocks.js:882 -msgid "The On-every-note block lets you specify actions to take on every note." -msgstr "" +#: js/blocks/PitchBlocks.js:1232 +#.TRANS: down sixth means the note is five scale degrees below current note +msgid "down sixth" +msgstr "ఆచు లోను కుడియుతుంది" -#: js/MeterBlocks.js:928 -#: js/MeterBlocks.js:999 -#.TRANS: sets tempo by defining a beat and beats per minute -msgid "master beats per minute" -msgstr "మాస్టర్ బీట్స్ పర్ మినిట్" +#: js/blocks/PitchBlocks.js:1251 +#.TRANS: down third means the note is two scale degrees below current note +msgid "down third" +msgstr "మూడు లోను కుడియుతుంది" -#: js/MeterBlocks.js:952 -#: js/MeterBlocks.js:1078 -#: js/MeterBlocks.js:1135 -msgid "bpm" -msgstr "బీపిఎమ్" +#: js/blocks/PitchBlocks.js:1270 +#.TRANS: seventh means the note is the six scale degrees above current note +msgid "seventh" +msgstr "ఏడవ" -#: js/MeterBlocks.js:952 -#: js/MeterBlocks.js:1078 -#: js/MeterBlocks.js:1135 -msgid "beat value" -msgstr "బీట్ విలువ" +#: js/blocks/PitchBlocks.js:1289 +#.TRANS: sixth means the note is the five scale degrees above current note +msgid "sixth" +msgstr "ఆరవ" -#: js/MeterBlocks.js:1024 -#: js/MeterBlocks.js:1167 -#: js/MeterBlocks.js:1241 -msgid "Beats per minute must be > 30." -msgstr "బీట్స్ పర్ మినిట్ కనీసం 30 ఉండాలి." +#: js/blocks/PitchBlocks.js:1308 +#.TRANS: fifth means the note is the four scale degrees above current note +msgid "fifth" +msgstr "ఐదవ" -#: js/MeterBlocks.js:1027 -#: js/MeterBlocks.js:1170 -#: js/MeterBlocks.js:1244 -msgid "Maximum beats per minute is 1000." -msgstr "అత్యధిక బీట్స్ పర్ మినిట్ 1000." +#: js/blocks/PitchBlocks.js:1328 +#.TRANS: fourth means the note is three scale degrees above current note +msgid "fourth" +msgstr "నాలవ" -#: js/MeterBlocks.js:1068 -msgid "The Beats per minute block sets the number of 1/4 notes per minute." -msgstr "ప్రతిసారి నోటుకు 1/4 నోటుల సంఖ్యను మినిట్ కోసం మార్చేస్తుంది." +#: js/blocks/PitchBlocks.js:1347 +#.TRANS: third means the note is two scale degrees above current note +msgid "third" +msgstr "మూడవ" -#: js/MeterBlocks.js:1279 -#.TRANS: anacrusis -msgid "pickup" -msgstr "పికప్" +#: js/blocks/PitchBlocks.js:1366 +#.TRANS: second means the note is one scale degree above current note +msgid "second" +msgstr "రెండవ" -#: js/MeterBlocks.js:1367 -msgid "number of beats" -msgstr "బీట్స్ సంఖ్య" +#: js/blocks/PitchBlocks.js:1407 +msgid "The Scalar transposition block will shift the pitches contained inside Note blocks up (or down) the scale." +msgstr "స్కాలర్ ట్రాన్స్పోజిషన్ బ్లాక్ నోట్ బ్లాక్ లో ఉండే పిచ్లను స్కేల్ పై అప్ (లేదా) అడుగుపెడతాయి." -#: js/DictBlocks.js:77 -msgid "show dictionary" -msgstr "డిక్షనరీని ప్రదర్శించు" +#: js/blocks/PitchBlocks.js:1409 +msgid "In the example shown above, sol is shifted up to la." +msgstr "ప్రదర్శించిన ఉదాహరణలో, సోల్ ను లా కి అప్ చేయబడింది." -#: js/DictBlocks.js:129 -msgid "The Dictionary block returns a dictionary." -msgstr "డిక్షనరీ బ్లాక్ ఒక డిక్షనరీని తరిమించిపెడతుంది." +#: js/blocks/PitchBlocks.js:1416 +#.TRANS: adjust the amount of shift (up or down) of a pitch by musical scale (scalar) steps +msgid "scalar transpose" +msgstr "స్కాలర్ ట్రాన్స్పోజ్" -#: js/DictBlocks.js:197 -#: js/DictBlocks.js:339 -msgid "The Get-dict block returns a value in the dictionary for a specified key." -msgstr "గెట్-డిక్ట్ బ్లాక్ ఒక కేటగా డిక్షనరీలో ఒక విలువను తరిమించిపెడతుంది." +#: js/blocks/PitchBlocks.js:1451 +msgid "The Accidental block is used to create sharps and flats" +msgstr "" -#: js/DictBlocks.js:212 -#: js/DictBlocks.js:354 -#.TRANS: retrieve a value from the dictionary with a given key -msgid "get value" -msgstr "కొరకు డిక్షనరీ నుండి విలువను తరిమించు" +#: js/blocks/PitchBlocks.js:1458 +#.TRANS: An accidental is a modification to a pitch, e.g., sharp or flat. +msgid "accidental override" +msgstr "అక్షిడెంటల్ ఓవర్రైడ్" -#: js/DictBlocks.js:215 -#: js/DictBlocks.js:216 -#: js/DictBlocks.js:289 -#: js/DictBlocks.js:290 -#: js/DictBlocks.js:357 -#: js/DictBlocks.js:430 -#: js/DictBlocks.js:431 -msgid "key2" -msgstr "కీ2" +#: js/blocks/PitchBlocks.js:1581 +msgid "The Hertz block (in combination with a Number block) will play a sound at the specified frequency." +msgstr "హెర్ట్జ్ బ్లాక్ (నంబర్ బ్లాక్ తో కలిసి) ప్రత్యామ్నాయం చేస్తుంది చేయడానికి అనుమతిస్తుంది." -#: js/DictBlocks.js:271 -#: js/DictBlocks.js:411 -msgid "The Set-dict block sets a value in the dictionary for a specified key." -msgstr "సెట్-డిక్ట్ బ్లాక్ ఒక కేటగా డిక్షనరీలో ఒక విలువను అమరికి ఉంచుతుంది." +#: js/blocks/PitchBlocks.js:1671 +msgid "The Pitch Number block will play a pitch associated by its number, e.g. 0 for C and 7 for G." +msgstr "పిచ్ నంబర్ బ్లాక్ ఒక సంఖ్య ద్వారా అనుసంధానించబడిన ఒక పిచ్‌ను ప్రదర్శించడానికి, ఉదాహరణకు C కోసం 0 మరియు G కోసం 7 ఉంటుంది." -#: js/DictBlocks.js:286 -#: js/DictBlocks.js:427 -#.TRANS: set a value in the dictionary for a given key -msgid "set value" -msgstr "కొరకు డిక్షనరీలో విలువను సెట్ చేయి" +#: js/blocks/PitchBlocks.js:1703 +#: js/blocks/PitchBlocks.js:1745 +#.TRANS: a numeric mapping of the notes in an octave based on the musical mode +#.TRANS: a numeric mapping of the notes in an octave based on the musical mode +msgid "nth modal pitch" +msgstr "మోడల్ పిచ్ యొక్క సంఖ్యాత్మక మ్యాపింగ్" -#: js/ExtrasBlocks.js:33 -msgid "fraction" -msgstr "భాగం" +#: js/blocks/PitchBlocks.js:1706 +msgid "n^th Modal Pitch takes the pattern of pitches in semitones for a mode and makes each point a degree of the mode," +msgstr "n^th మోడల్ పిచ్ మోడ్లో సెమీటోన్ల పాటను తీసేసారు మరియు ప్రతి పాయింట్‌ను మోడ్ యొక్క ఒక డిగ్రీగా చేస్తారు," -#: js/ExtrasBlocks.js:36 -msgid "Convert a float to a fraction" -msgstr "ఫ్లోట్ను భాగంగా మార్చు" +#: js/blocks/PitchBlocks.js:1708 +msgid "starting from 1 and regardless of tonal framework (i.e. not always 8 notes in the octave)" +msgstr "1 ను నుంచి మరియు టోనల్ ఫ్రేమ్వర్క్ కొరకు (అందుకే సదాగా ఒక్కసారైనా 8 నోట్లు కాదు) అనేకమందికి విషయం లేదు." -#: js/ExtrasBlocks.js:93 -msgid "save as ABC" -msgstr "ABC రూపంలో భద్రపరచు" +#: js/blocks/PitchBlocks.js:1749 +msgid "N^th Modal Pitch takes a number as an input as the n^th degree for the given mode. 0 is the first position, 1 is the second, -1 is the note before the first etc." +msgstr "N^th మోడల్ పిచ్ మోడ్ కోసం ఇన్‌పుట్ గా సంఖ్య ను తీసుకునిస్తుంది చివరి డిగ్రీ గా. 0 అందుకే మొదటి స్థానం, 1 అందుకే రెండవ, -1 అందుకే మొదటి ముందు గా ముందు ఉంది మరియు ఇతరు అనేకండి." -#: js/ExtrasBlocks.js:96 -#: js/ExtrasBlocks.js:132 -#: js/ExtrasBlocks.js:168 -msgid "title" -msgstr "శీర్షిక" +#: js/blocks/PitchBlocks.js:1751 +msgid "The pitches change according to the mode specified without any need for respellings." +msgstr "పిచ్లు పునర్వ్యాఖ్యానం కోరకు స్పష్టంగా మారిపోతాయి." -#: js/ExtrasBlocks.js:129 -msgid "save as Lilypond" -msgstr "లిలీపాండ్ రూపంలో భద్రపరచు" +#: js/blocks/PitchBlocks.js:1790 +msgid "Scale Degree is a common convention in music. Scale Degree offers seven possible positions in the scale (1-7) and can be modified via accidentals." +msgstr "స్కేల్ డిగ్రీ సంగీతంలో సామాన్యంగా ఒక అభ్యంతరము. స్కేల్ డిగ్రీ స్కేల్ లో ఏడు సాధ్యమైన స్థానాలను నిల్వ చేస్తుంది (1-7) మరియు అక్షరాల ద్వారా మార్పుల ద్వారా సవరించగలది." -#: js/ExtrasBlocks.js:165 -msgid "save as SVG" -msgstr "SVG రూపంలో భద్రపరచు" +#: js/blocks/PitchBlocks.js:1792 +msgid "Scale Degree 1 is always the first pitch in a given scale, regardless of octave." +msgstr "స్కేల్ డిగ్రీ 1 సదాగా ఒక ఇచ్చిన స్కేల్ లో మొదటి పిచ్ గా, ఆక్టేవ" -#: js/ExtrasBlocks.js:216 -msgid "no background" -msgstr "ఎన్నికలేదు నేను" +#: js/blocks/PitchBlocks.js:1814 +#.TRANS: step some number of notes in current musical scale +msgid "scalar step" +msgstr "స్కాలర్ స్టెప్" -#: js/ExtrasBlocks.js:219 -msgid "The No background block eliminates the background from the saved SVG output." -msgstr "నో బ్యాక్గ్రౌండ్ బ్లాక్ సేవ్ చేసిన SVG ఔట్‌పుట్ నుండి బ్యాక్గ్రౌండ్‌ను తొలగిస్తుంది." +#: js/blocks/PitchBlocks.js:1819 +msgid "The Scalar Step block (in combination with a Number block) will play the next pitch in a scale," +msgstr "స్కాల్లో తర్వాత పిచ్ ప్రదర్శించడానికి, స్కాలర్ స్టెప్ బ్లాక్ (నంబర్ బ్లాక్ తో కలిసి) ఉపయోగించబడుతుంది," -#: js/ExtrasBlocks.js:247 -msgid "show blocks" -msgstr "భాగాలను చూపు" +#: js/blocks/PitchBlocks.js:1821 +msgid "eg if the last note played was sol, Scalar Step 1 will play la." +msgstr "ఉదాహరణకు, చివరి ప్రదర్శించిన నోట్ సోల్ ఉండిగా, స్కాలర్ స్టెప్ 1 కు లా ప్రదర్శించబడుతుంది." -#: js/ExtrasBlocks.js:249 -msgid "The Show blocks block shows the blocks." -msgstr "షో బ్లాక్స్ బ్లాక్ భాగాలను చూపుతుంది." +#: js/blocks/PitchBlocks.js:1857 +msgid "The Pitch block specifies the pitch name and octave of a note that together determine the frequency of the note." +msgstr "పిచ్ బ్లాక్ నోట్ యొక్క ఫ్రిక్వెన్సీని నిర్ధారించడానికి ఒక నోట్ యొక్క పిచ్ పేరు మరియు ఆక్టేవ్ ను నిర్దిష్టించేది." -#: js/ExtrasBlocks.js:274 -msgid "hide blocks" -msgstr "భాగాలను దాచు" +#: js/blocks/ProgramBlocks.js:33 +msgid "The Load-heap-from-app block loads the heap from a web page." +msgstr "లోడ్-హీప్-ఫ్రం-యాప్ బ్లాక్ ఒక వెబ్ పేజీని నుండి హీప్‌ను లోడ్ చేస్తుంది." -#: js/ExtrasBlocks.js:276 -msgid "The Hide blocks block hides the blocks." -msgstr "హైడ్ బ్లాక్స్ బ్లాక్ భాగాలను దాచుతుంది." +#: js/blocks/ProgramBlocks.js:44 +#.TRANS: load the heap contents from a URL +msgid "load heap from App" +msgstr "అప్‌ను నుండి హీప్ కంటెంట్‌ను లోడ్ చేయండి" -#: js/ExtrasBlocks.js:305 -#: js/ExtrasBlocks.js:335 -msgid "The Space block is used to add space between blocks." -msgstr "స్పేస్ బ్లాక్ భాగాల మధ్యలో స్థానాన్ని జోడించడానికి ఉపయోగించబడుతుంది." +#: js/blocks/ProgramBlocks.js:95 +msgid "Error parsing JSON data:" +msgstr "JSON డేటాను విశ్లేషణ చేయడంలో లోపం:" -#: js/ExtrasBlocks.js:373 -msgid "wait" -msgstr "వేచి ఉండు" +#: js/blocks/ProgramBlocks.js:100 +msgid "404: Page not found" +msgstr "404: పేజీ కనుగొనబడలేదు" -#: js/ExtrasBlocks.js:376 -msgid "The Wait block pauses the program for a specified number of seconds." -msgstr "వేచి ఉండు బ్లాక్ ప్రోగ్రామ్‌ను ప్రతిసారి నిర్దిష్టమైన సెకన్ల కోసం విరామిస్తుంది." +#: js/blocks/ProgramBlocks.js:133 +msgid "The Save-heap-to-app block saves the heap to a web page." +msgstr "సేవ్-హీప్-టు-యాప్ బ్లాక్ హీప్‌ను ఒక వెబ్ పేజీకి భద్రపరచేస్తుంది." + +#: js/blocks/ProgramBlocks.js:144 +#.TRANS: save the heap contents to a URL +msgid "save heap to App" +msgstr "అప్‌కి హీప్ కంటెంట్‌ను భద్రపరచేయండి" + +#: js/blocks/ProgramBlocks.js:189 +msgid "Cannot find a valid heap for" +msgstr "కొరకు చాలామంది మాన్యమైన హీప్‌ను కనుగొనలేరు" + +#: js/blocks/ProgramBlocks.js:206 +msgid "The Load-heap block loads the heap from a file." +msgstr "లోడ్-హీప్ బ్లాక్ హీప్‌ను ఒక ఫైల్‌నుండి లోడ్ చేస్తుంది." -#: js/ExtrasBlocks.js:430 -#: plugins/facebook.rtp:30 -msgid "comment" -msgstr "వ్యాఖ్య" +#: js/blocks/ProgramBlocks.js:217 +#.TRANS: load the heap from a file +msgid "load heap" +msgstr "హీప్‌ను ఫైల్ నుండి లోడ్ చేయండి" -#: js/ExtrasBlocks.js:466 -msgid "print" -msgstr "ముద్రణ" +#: js/blocks/ProgramBlocks.js:270 +msgid "The file you selected does not contain a valid heap." +msgstr "మీ ఎంచుకున్న ఫైల్ మాన్యమైన హీప్ కంటేదేమీ ఉండదు." -#: js/ExtrasBlocks.js:473 -msgid "The Print block displays text at the top of the screen." -msgstr "ప్రింట్ బ్లాక్ స్క్రీన్ చోటకు వచ్చిన టెక్స్ట్‌ను ప్రదర్శిస్తుంది." +#: js/blocks/ProgramBlocks.js:275 +msgid "The loadHeap block needs a loadFile block." +msgstr "లోడ్‌హీప్ బ్లాక్ ఒక లోడ్‌ఫైల్ బ్లాక్ అవసరం." -#: js/ExtrasBlocks.js:579 -msgid "display grid" -msgstr "గ్రిడ్ ప్రదర్శించు" +#: js/blocks/ProgramBlocks.js:291 +msgid "The Set-heap block loads the heap." +msgstr "సెట్-హీప్ బ్లాక్ హీప్‌ను లోడ్ చేస్తుంది." -#: js/ExtrasBlocks.js:584 -msgid "The Display Grid Block changes the grid type" -msgstr "డిస్ప్లే గ్రిడ్ బ్లాక్ గ్రిడ్ రకాన్ని మార్చుతుంది." +#: js/blocks/ProgramBlocks.js:340 +msgid "The block you selected does not contain a valid heap." +msgstr "మీ ఎంచుకున్న బ్లాక్ మాన్యమైన హీప్ కంటేదేమీ ఉండదు." -#: js/ExtrasBlocks.js:686 -#: js/ExtrasBlocks.js:705 -#: js/ExtrasBlocks.js:728 -#: js/ExtrasBlocks.js:751 -#: js/ExtrasBlocks.js:769 -#: js/ExtrasBlocks.js:788 -#: js/ExtrasBlocks.js:807 -#: js/ExtrasBlocks.js:826 -msgid "unknown" -msgstr "" +#: js/blocks/ProgramBlocks.js:343 +msgid "The Set heap block needs a heap." +msgstr "సెట్ హీప్ బ్లాక్ ఒక హీప్ అవసరం." -#: js/SensorsBlocks.js:36 -msgid "The Input block prompts for keyboard input." -msgstr "ఇన్‌పుట్ బ్లాక్ కీబోర్డ్ ఇన్‌పుట్ కోసం అడ్డం అంచనా ఇస్తుంది." +#: js/blocks/ProgramBlocks.js:360 +msgid "The Load-dictionary block loads a dictionary from a file." +msgstr "లోడ్-డిక్షనరీ బ్లాక్ ఫైల్‌నుండి డిక్షనరీను లోడ్ చేస్తుంది." -#: js/SensorsBlocks.js:46 -msgid "input" -msgstr "ఇన్‌పుట్" +#: js/blocks/ProgramBlocks.js:372 +#.TRANS: load a dictionary from a file +msgid "load dictionary" +msgstr "డిక్షనరీను లోడ్ చేయండి" -#: js/SensorsBlocks.js:64 -msgid "Input a value" -msgstr "ఒక విలువ నమోదు చేయండి" +#: js/blocks/ProgramBlocks.js:390 +#: js/blocks/ProgramBlocks.js:658 +#: js/blocks/ToneBlocks.js:1025 +msgid "file" +msgstr "ఫైల్" -#: js/SensorsBlocks.js:126 -msgid "input value" -msgstr "ఇన్‌పుట్ విలువ" +#: js/blocks/ProgramBlocks.js:444 +msgid "The file you selected does not contain a valid dictionary." +msgstr "మీరు ఎంచుకున్న ఫైలు యొక్క యాక్షనరాద నిఘంటువు కాదు." -#: js/SensorsBlocks.js:131 -msgid "The Input-value block stores the input." -msgstr "ఇన్‌పుట్-విలువ బ్లాక్ ఇన్‌పుట్‌ను భండారిస్తుంది." +#: js/blocks/ProgramBlocks.js:449 +msgid "The load dictionary block needs a load file block." +msgstr "లోడ్ నిఘంటువు బ్లాక్ ఒక లోడ్ ఫైల్ బ్లాక్ అవసరం." -#: js/SensorsBlocks.js:238 -msgid "loudness" -msgstr "అలాటే" +#: js/blocks/ProgramBlocks.js:466 +msgid "The Set-dictionary block loads a dictionary." +msgstr "సెట్-నిఘంటువు బ్లాక్ నిఘంటువును లోడ్ చేస్తుంది." -#: js/SensorsBlocks.js:245 -msgid "The Loudness block returns the volume detected by the microphone." -msgstr "లౌడ్నెస్ బ్లాక్ మైక్రోఫోన్ ద్వారా గుర్తించబడిన వాల్యూమ్‌ను తరపుచుకుపడిస్తుంది." +#: js/blocks/ProgramBlocks.js:477 +#.TRANS: load a dictionary from a JSON +msgid "set dictionary" +msgstr "సెట్ నిఘంటువు" -#: js/SensorsBlocks.js:300 -msgid "click" -msgstr "క్లిక్" +#: js/blocks/ProgramBlocks.js:546 +msgid "The block you selected does not contain a valid dictionary." +msgstr "మీరు ఎంచుకున్న బ్లాక్ యొక్క యాక్షనరాద నిఘంటువు కాదు." -#: js/SensorsBlocks.js:306 -msgid "The Click block triggers an event if a mouse has been clicked." -msgstr "క్లిక్ బ్లాక్ మౌస్ పై క్లిక్ చేసినా ఒక ఈవెంట్‌ను తెరిచేస్తుంది." +#: js/blocks/ProgramBlocks.js:550 +msgid "The set dictionary block needs a dictionary." +msgstr "సెట్ నిఘంటువు బ్లాక్ ఒక నిఘంటువు అవసరం." -#: js/SensorsBlocks.js:313 -msgid "The Click block triggers an event if a turtle has been clicked." -msgstr "క్లిక్ బ్లాక్ టర్టిల్ పై క్లిక్ చేసినా ఒక ఈవెంట్‌ను తెరిచేస్తుంది." +#: js/blocks/ProgramBlocks.js:567 +msgid "The Save-heap block saves the heap to a file." +msgstr "సేవ్-హీప్ బ్లాక్ హీప్ను ఒక ఫైల్కు సేవ్ చేస్తుంది." -#: js/SensorsBlocks.js:342 -msgid "cursor over" -msgstr "కర్సర్ మీద" +#: js/blocks/ProgramBlocks.js:578 +#.TRANS: save the heap to a file +msgid "save heap" +msgstr "హీప్ను సేవ్ చేయండి" -#: js/SensorsBlocks.js:387 -msgid "cursor out" -msgstr "కర్సర్ బయటకి" +#: js/blocks/ProgramBlocks.js:629 +msgid "The Save-dictionary block saves a dictionary to a file." +msgstr "సేవ్-నిఘంటువు బ్లాక్ ఒక నిఘంటువును ఒక ఫైల్కు సేవ్ చేస్తుంది." -#: js/SensorsBlocks.js:433 -msgid "cursor button down" -msgstr "కర్సర్ బటన్ డౌన్" +#: js/blocks/ProgramBlocks.js:640 +#.TRANS: save a dictionary to a file +msgid "save dictionary" +msgstr "నిఘంటువును సేవ్ చేయండి" -#: js/SensorsBlocks.js:477 -msgid "cursor button up" -msgstr "కర్సర్ బటన్ అప్" +#: js/blocks/ProgramBlocks.js:720 +msgid "The Open palette block opens a palette." +msgstr "ఓపెన్ పాలెట్ బ్లాక్ ఒక పాలెట్ను తెరవిస్తుంది." -#: js/SensorsBlocks.js:638 -msgid "The Get red block returns the red component of the pixel under the mouse." -msgstr "గెట్ రెడ్ బ్లాక్ మౌస్ కంపోజన్ట్‌ని తెరిచిపెట్టుతుంది." +#: js/blocks/ProgramBlocks.js:727 +msgid "open palette" +msgstr "పాలెట్ను తెరవండి" -#: js/SensorsBlocks.js:644 -msgid "The Get red block returns the red component of the pixel under the turtle." -msgstr "గెట్ రెడ్ బ్లాక్ టర్టిల్ కంపోజన్ట్‌ని తెరిచిపెట్టుతుంది." +#: js/blocks/ProgramBlocks.js:785 +msgid "The Delete block block removes a block." +msgstr "డిలీట్ బ్లాక్ బ్లాక్ ఒక బ్లాక్ను తీసేస్తుంది." -#: js/SensorsBlocks.js:685 -#: plugins/rodi.rtp:216 -msgid "pixel color" -msgstr "పిక్సెల్ రంగు" +#: js/blocks/ProgramBlocks.js:797 +#.TRANS: Move this block to the trash. +msgid "delete block" +msgstr "ఈ బ్లాక్ను కచ్చివేయండి." -#: js/SensorsBlocks.js:690 -msgid "The Get pixel block returns the color of the pixel under the mouse." -msgstr "గెట్ పిక్సెల్ బ్లాక్ మౌస్ కంపోజన్ట్‌ని తెరిచిపెట్టుతుంది." +#: js/blocks/ProgramBlocks.js:861 +msgid "The Move block block moves a block." +msgstr "మూవ్ బ్లాక్ బ్లాక్ ఒక బ్లాక్ను నేయిస్తుంది." -#: js/SensorsBlocks.js:696 -msgid "The Get pixel block returns the color of the pixel under the turtle." -msgstr "గెట్ పిక్సెల్ బ్లాక్ టర్టిల్ కంపోజన్ట్‌ని తెరిచిపెట్టుతుంది." +#: js/blocks/ProgramBlocks.js:869 +#.TRANS: Move the position of a block on the screen. +msgid "move block" +msgstr "బ్లాక్ను నేయండి" -#: js/SensorsBlocks.js:758 -msgid "time" -msgstr "సమయం" +#: js/blocks/ProgramBlocks.js:881 +#: js/blocks/ProgramBlocks.js:1048 +msgid "block number" +msgstr "బ్లాక్ సంఖ్య" -#: js/SensorsBlocks.js:804 -msgid "cursor y" -msgstr "కర్సర్ Y" +#: js/blocks/ProgramBlocks.js:935 +#.TRANS: Run program beginning at this block. +msgid "run block" +msgstr "ఈ బ్లాక్ను తొలగించండి" -#: js/SensorsBlocks.js:809 -msgid "The Cursor Y block returns the vertical position of the mouse." -msgstr "కర్సర్ Y బ్లాక్ మౌస్ యొక్క కూడా స్థితిని తెరిచిపెట్టుతుంది." +#: js/blocks/ProgramBlocks.js:1025 +msgid "The Dock block block connections two blocks." +msgstr "" -#: js/SensorsBlocks.js:845 -msgid "cursor x" -msgstr "కర్సర్ X" +#: js/blocks/ProgramBlocks.js:1036 +#.TRANS: We can connect a block to another block. +msgid "connect blocks" +msgstr "ఒక బ్లాక్ను మరియునా ఒక బ్లాక్కు కలిగించండి." -#: js/SensorsBlocks.js:850 -msgid "The Cursor X block returns the horizontal position of the mouse." -msgstr "కర్సర్ X బ్లాక్ మౌస్ యొక్క కూడా స్థితిని తెరిచిపెట్టుతుంది." +#: js/blocks/ProgramBlocks.js:1048 +msgid "target block" +msgstr "లక్ష్య బ్లాక్" -#: js/SensorsBlocks.js:886 -msgid "mouse button" -msgstr "మౌస్ బటన్" +#: js/blocks/ProgramBlocks.js:1048 +msgid "connection number" +msgstr "కనెక్షన్ సంఖ్య" -#: js/SensorsBlocks.js:888 -msgid "The Mouse-button block returns True if the mouse button is pressed." -msgstr "మౌస్ బటన్ నొక్కితే, మౌస్-బటన్ బ్లాక్ ట్రూ నొక్కితే తెరిచిపెట్టుతుంది." +#: js/blocks/ProgramBlocks.js:1140 +msgid "The Make block block creates a new block." +msgstr "మేక్ బ్లాక్ బ్లాక్ ఒక కొత్త బ్లాక్ను సృష్టిస్తుంది." -#: js/SensorsBlocks.js:934 -msgid "to ASCII" -msgstr "ASCIIకి" +#: js/blocks/ProgramBlocks.js:1152 +#.TRANS: Create a new block +msgid "make block" +msgstr "ప్రోగ్రామ్తాత కొత్త బ్లాక్ను సృష్టించండి." -#: js/SensorsBlocks.js:938 -msgid "The To ASCII block converts numbers to letters." -msgstr "టూ ASCII బ్లాక్ సంఖ్యలను అక్షరాలకు మార్చుతుంది." +#: js/blocks/ProgramBlocks.js:1285 +msgid "Cannot find block" +msgstr "బ్లాక్ను కనబడలేదు" -#: js/SensorsBlocks.js:1005 -msgid "The Keyboard block returns computer keyboard input." -msgstr "కీబోర్డు బ్లాక్ కంప్యూటర్ కీబోర్డ్ ఇన్‌పుట్ను తెరిచిపెడతారు." +#: js/blocks/ProgramBlocks.js:1304 +#: js/blocks/ProgramBlocks.js:1313 +msgid "Warning: block argument type mismatch" +msgstr "హెచ్చరిక: బ్లాక్ ఆర్గ్యుమెంటు రకాన్ని సరిపోలడం లేదు" -#: js/IntervalsActions.js:216 -msgid "Adding missing pitch number 0." -msgstr "కనిపించిన పిచ్ సంఖ్య 0 ను జోడిస్తోంది." +#: js/blocks/ProgramBlocks.js:1347 +msgid "The Open project block is used to open a project from a web page." +msgstr "ఓపెన్ ప్రాజెక్ట్ బ్లాక్ ఒక వెబ్ పేజీ నుండి ప్రాజెక్ట్ను తెరవడానికి ఉపయోగిస్తారు." -#: js/IntervalsActions.js:224 -msgid "Ignoring pitch numbers less than zero or greater than eleven." -msgstr "సిరికొన్ని లేదా పదినాలు కంటే ఎక్కువ పిచ్ సంఖ్యలను ప్రతిక్షణానికి ప్రమాదించబడుతుంది." +#: js/blocks/ProgramBlocks.js:1357 +msgid "open project" +msgstr "ప్రాజెక్ట్ను తెరవండి" -#: js/IntervalsActions.js:230 -msgid "Ignoring duplicate pitch numbers." -msgstr "నకిలీవేయబడిన పిచ్ సంఖ్యలను ప్రతిక్షణానికి ప్రమాదించబడుతుంది." +#: js/blocks/ProgramBlocks.js:1410 +msgid "Please enter a valid URL." +msgstr "దయచేసి ఒక చెల్లని URL నమోదు చేయండి." -#: js/PitchActions.js:88 -msgid "The Scalar Step Block must be used inside of a Note Block." -msgstr "స్కేలార్ స్టెప్ బ్లాక్ నోట్ బ్లాక్ లో ఉపయోగించాలి." +#: js/blocks/ToneBlocks.js:34 +msgid "oscillator" +msgstr "ఆసిలేటర్" -#: js/PitchActions.js:107 -msgid "The Scalar Step Block must be preceded by a Pitch Block." -msgstr "స్కేలార్ స్టెప్ బ్లాక్ పిచ్ బ్లాక్ ద్వారా ముందుకు వాడాలి." +#: js/blocks/ToneBlocks.js:42 +#: js/blocks/WidgetBlocks.js:179 +#: js/widgets/timbre.js:1558 +#: js/widgets/timbre.js:1808 +#.TRANS: there are different types (sine, triangle, square...) of oscillators. +#.TRANS: type of filter, e.g., lowpass, highpass, etc. +msgid "type" +msgstr "రకము" -#: js/DrumActions.js:231 -msgid "Noise Block: Did you mean to use a Note block?" -msgstr "నాయిస్ బ్లాక్: మీరు నోట్ బ్లాక్ ఉపయోగించాలా?" +#: js/blocks/ToneBlocks.js:44 +#: js/widgets/timbre.js:1562 +#.TRANS: Partials refers to the number of sine waves combined into the sound. +msgid "partials" +msgstr "పార్షల్స్" -#: js/MeterActions.js:101 -#: js/MeterActions.js:139 -msgid "beats per minute must be greater than" -msgstr "ప్రతి నిమిషాల ప్రతి నిమిషాల పెరిగిన బీటుల సంఖ్య కంటే ఎక్కువవి" +#: js/blocks/ToneBlocks.js:76 +msgid "You are adding multiple oscillator blocks." +msgstr "మీరు అనేక ఆసిలేటర్ బ్లాక్లను జోడిస్తున్నారు." -#: js/MeterActions.js:111 -#: js/MeterActions.js:149 -msgid "maximum" -msgstr "గరిష్ట" +#: js/blocks/ToneBlocks.js:144 +#: js/widgets/timbre.js:1225 +#.TRANS: a duo synthesizer combines a synth with a sequencer +msgid "duo synth" +msgstr "డ్యూవో సింథ్" -#: js/MeterActions.js:117 -#: js/MeterActions.js:155 -msgid "beats per minute is" -msgstr "ప్రతి నిమిషాల పెరిగిన బీటుల సంఖ్య ఉంది" +#: js/blocks/ToneBlocks.js:149 +msgid "The Duo synth block is a duo-frequency modulator used to define a timbre." +msgstr "డ్యూవో సింథ్ బ్లాక్ ఒక డ్యూవో-ఫ్రిక్వెన్సీ మాడ్యులేటర్, ఒక టింబర్ ని వ్యాఖ్యానిస్తుంది." -#: js/ToneActions.js:134 -msgid "Vibrato intensity must be between 1 and 100." -msgstr "విబ్రాటో ఇంటెన్సిటి 1 నుండి 100 మధ్యలో ఉండాలి." +#: js/blocks/ToneBlocks.js:157 +#: js/widgets/timbre.js:1476 +msgid "vibrato rate" +msgstr "విబ్రాటో వేగం" -#: js/ToneActions.js:139 -msgid "Vibrato rate must be greater than 0." -msgstr "విబ్రాటో రేట్ 0 కంటే ఎక్కువ ఉండాలి." +#: js/blocks/ToneBlocks.js:157 +msgid "vibrato intensity" +msgstr "విబ్రాటో కఠినత" -#: js/ToneActions.js:192 -#: js/ToneActions.js:265 -#.TRANS: Depth is the intesity of the tremolo or chorus effect. -msgid "Depth is out of range." -msgstr "డెప్త్ అవుట్ ఆఫ్ రేంజ్ లో ఉంది." +#: js/blocks/ToneBlocks.js:185 +#: js/widgets/timbre.js:1221 +#.TRANS: AM (amplitude modulation) synthesizer +msgid "AM synth" +msgstr "AM సింథ్" -#: js/ToneActions.js:301 -msgid "Distortion must be from 0 to 100." -msgstr "డిస్టోర్షన్ 0 నుండి 100 వరకు ఉండాలి." +#: js/blocks/ToneBlocks.js:189 +msgid "The AM synth block is an amplitude modulator used to define a timbre." +msgstr "AM సింథ్ బ్లాక్ ఒక ఏమ్ప్లిట్యూడ్ మాడ్యులేటర్, ఒక టింబర్ ని వ్యాఖ్యానిస్తుంది." -#: js/ToneActions.js:332 -#.TRANS: partials components in a harmonic series -msgid "Partial must be greater than or equal to 0." -msgstr "పార్షియల్ 0 నుండి కనీసం ఎక్కువ ఉండాలి." +#: js/blocks/ToneBlocks.js:224 +#: js/widgets/timbre.js:1223 +#.TRANS: FM (frequency modulation) synthesizer +msgid "FM synth" +msgstr "FM సింథ్" -#: js/ToneActions.js:378 -#: js/ToneActions.js:417 -#: js/ToneActions.js:456 -#: js/timbre.js:782 -msgid "Unable to use synth due to existing oscillator" -msgstr "ప్రస్తుత ఆసిలేటర్ కారణంగా సింథ్ ను ఉపయోగించలేరు" +#: js/blocks/ToneBlocks.js:228 +msgid "The FM synth block is a frequency modulator used to define a timbre." +msgstr "FM సింథ్ బ్లాక్ ఒక ఫ్రిక్వెన్సీ మాడ్యులేటర్, ఒక టింబర్ ని వ్యాఖ్యానిస్తుంది." -#: js/ToneActions.js:388 -#: js/ToneActions.js:427 -msgid "The input cannot be negative." -msgstr "ఇన్‌పుట్ నేగటివ్ కాకపోవడం లేదు." +#: js/blocks/ToneBlocks.js:262 +msgid "partial" +msgstr "పార్షల్" -#: js/DictActions.js:75 -#: js/DictActions.js:153 -#: js/DictActions.js:188 -msgid "font" -msgstr "ఫాంట్" +#: js/blocks/ToneBlocks.js:265 +msgid "The Partial block is used to specify a weight for a specific partial harmonic." +msgstr "పార్షల్ బ్లాక్ ఒక నిర్దిష్ట పార్షల్ హార్మోనిక్కు ఒక బరువును నిర్ధిష్టించడానికి ఉపయోగిస్తుంది." -#: js/musicutils.js:363 -#: js/musicutils.js:471 -#: js/pitchdrummatrix.js:151 -#: js/musickeyboard.js:2563 -msgid "rest" -msgstr "విశ్రాంతి" +#: js/blocks/ToneBlocks.js:284 +#.TRANS: partials are weighted components in a harmonic series +msgid "Partial weight must be between 0 and 1." +msgstr "పార్షల్ బరువు 0 నుండి 1 మధ్యలో ఉండాలి." -#: js/musicutils.js:565 -#.TRANS: ordinal number. Please keep exactly one space between each number. -msgid "1st 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th" -msgstr "1వ 2వ 3వ 4వ 5వ 6వ 7వ 8వ 9వ 10వ 11వ 12వ" +#: js/blocks/ToneBlocks.js:297 +#.TRANS: partials are weighted components in a harmonic series +msgid "Partial block should be used inside of a Weighted-partials block." +msgstr "పార్షల్ బ్లాక్ ఒక బరువును నిర్ధిష్టించడానికి పైన Weighted-partials బ్లాక్ లో ఉపయోగించాలి." -#: js/musicutils.js:629 -#: js/musicutils.js:812 -#: js/musicutils.js:911 -#.TRANS: augmented is a music term related to intervals -msgid "augmented" -msgstr "అభ్యంగం" +#: js/blocks/ToneBlocks.js:325 +#.TRANS: partials are weighted components in a harmonic series +msgid "weighted partials" +msgstr "వేటెడ్ పార్షల్స్" -#: js/musicutils.js:631 -#: js/musicutils.js:813 -#: js/musicutils.js:910 -#.TRANS: diminished is a music term related to intervals and mode -msgid "diminished" -msgstr "తగినిపడించబడింది" +#: js/blocks/ToneBlocks.js:383 +msgid "The Harmonic block will add harmonics to the contained notes." +msgstr "హార్మోనిక్ బ్లాక్ అంగీకరించిన నోట్లకు హార్మోనిక్స్ ను జోడిస్తుంది." -#: js/musicutils.js:639 -#.TRANS: twelve semi-tone scale for music -msgid "chromatic" -msgstr "క్రోమాటిక్" +#: js/blocks/ToneBlocks.js:390 +#.TRANS: A harmonic is an overtone. +msgid "harmonic" +msgstr "హార్మోనిక్" + +#: js/blocks/ToneBlocks.js:431 +msgid "The Distortion block adds distortion to the pitch." +msgstr "డిస్టోర్షన్ బ్లాక్ పిచ్ కి డిస్టోర్షన్ ను జోడిస్తుంది." -#: js/musicutils.js:640 -msgid "algerian" -msgstr "అల్జీరియన్" +#: js/blocks/ToneBlocks.js:438 +#: js/widgets/timbre.js:2100 +#.TRANS: distortion is an alteration in the sound +msgid "distortion" +msgstr "డిస్టోర్షన్" -#: js/musicutils.js:641 -msgid "spanish" -msgstr "స్పానిష్" +#: js/blocks/ToneBlocks.js:487 +msgid "The Tremolo block adds a wavering effect." +msgstr "ట్రెమోలో బ్లాక్ ఒక పలకింపు ప్రభావాన్ని జోడిస్తుంది." -#: js/musicutils.js:643 -#.TRANS: modal scale in music -msgid "octatonic" -msgstr "ఆక్టాటోనిక్" +#: js/blocks/ToneBlocks.js:495 +#: js/widgets/timbre.js:2092 +#.TRANS: a wavering effect in a musical tone +msgid "tremolo" +msgstr "ట్రెమోలో" -#: js/musicutils.js:645 -#.TRANS: harmonic major scale in music -msgid "harmonic major" -msgstr "హార్మోనిక్ మేజర్" +#: js/blocks/ToneBlocks.js:500 +#: js/blocks/ToneBlocks.js:569 +#: js/blocks/ToneBlocks.js:630 +#: js/blocks/ToneBlocks.js:689 +#: js/widgets/timbre.js:2134 +#: js/widgets/timbre.js:2222 +#: js/widgets/timbre.js:2317 +#: js/widgets/timbre.js:2419 +#.TRANS: rate at which tremolo wavers +msgid "rate" +msgstr "వేగం" -#: js/musicutils.js:647 -#.TRANS: natural minor scales in music -msgid "natural minor" -msgstr "న్యాచరల్ మైనర్" +#: js/blocks/ToneBlocks.js:502 +#: js/blocks/ToneBlocks.js:630 +#: js/widgets/timbre.js:2137 +#: js/widgets/timbre.js:2328 +#.TRANS: amplitude of tremolo waver +msgid "depth" +msgstr "గాంభీర్యం" -#: js/musicutils.js:649 -#.TRANS: harmonic minor scale in music -msgid "harmonic minor" -msgstr "హార్మోనిక్ మైనర్" +#: js/blocks/ToneBlocks.js:559 +msgid "The Phaser block adds a sweeping sound." +msgstr "ఫేసర్ బ్లాక్ ఒక స్వీపింగ్ ధ్వనిని జోడిస్తుంది." -#: js/musicutils.js:651 -#.TRANS: melodic minor scale in music -msgid "melodic minor" -msgstr "మెలోడిక్ మైనర్" +#: js/blocks/ToneBlocks.js:566 +#: js/widgets/timbre.js:2098 +#.TRANS: alter the phase of the sound +msgid "phaser" +msgstr "ఫేసర్" -#: js/musicutils.js:655 -#.TRANS: modal scale for music -msgid "dorian" -msgstr "డోరియన్" +#: js/blocks/ToneBlocks.js:569 +#: js/turtleactions/IntervalsActions.js:114 +#: js/widgets/timbre.js:2422 +msgid "octaves" +msgstr "ఆక్టవ్స్" -#: js/musicutils.js:657 -#.TRANS: modal scale for music -msgid "phrygian" -msgstr "ఫ్రిజియన్" +#: js/blocks/ToneBlocks.js:569 +#: js/widgets/timbre.js:2425 +msgid "base frequency" +msgstr "బేస్ ఫ్రిక్వెన్సీ" -#: js/musicutils.js:659 -#.TRANS: modal scale for music -msgid "lydian" -msgstr "లిడియన్" +#: js/blocks/ToneBlocks.js:619 +msgid "The Chorus block adds a chorus effect." +msgstr "ఛోరస్ బ్లాక్ ఒక ఛోరస్ ప్రభావాన్ని జోడిస్తుంది." -#: js/musicutils.js:661 -#.TRANS: modal scale for music -msgid "mixolydian" -msgstr "మిక్సొలిడియన్" +#: js/blocks/ToneBlocks.js:627 +#: js/widgets/timbre.js:2096 +#.TRANS: musical effect to simulate a choral sound +msgid "chorus" +msgstr "ఛోరస్" -#: js/musicutils.js:665 -#.TRANS: modal scale for music -msgid "locrian" -msgstr "లొక్రియన్" +#: js/blocks/ToneBlocks.js:630 +msgid "delay" +msgstr "విలంబన" -#: js/musicutils.js:667 -#.TRANS: minor jazz scale for music -msgid "jazz minor" -msgstr "జాజ్ మైనర్" +#: js/blocks/ToneBlocks.js:678 +msgid "The Vibrato block adds a rapid, slight variation in pitch." +msgstr "విబ్రాటో బ్లాక్ ఒక శీఘ్ర, స్లైట్ పరివర్తనాన్ని పిచ్చిలో జోడిస్తుంది." -#: js/musicutils.js:669 -#.TRANS: bebop scale for music -msgid "bebop" -msgstr "బిబొప్" +#: js/blocks/ToneBlocks.js:686 +#: js/widgets/timbre.js:2094 +#.TRANS: a rapid, slight variation in pitch +msgid "vibrato" +msgstr "విబ్రాటో" -#: js/musicutils.js:670 -msgid "arabic" -msgstr "అరబిక్" +#: js/blocks/ToneBlocks.js:689 +#: js/widgets/timbre.js:2221 +msgid "intensity" +msgstr "ప్రాధికూత్య" -#: js/musicutils.js:671 -msgid "byzantine" -msgstr "బిజంటీన్" +#: js/blocks/ToneBlocks.js:733 +#.TRANS: select synthesizer +msgid "set synth" +msgstr "సింథెసైజర్ను ఎంచుకో" -#: js/musicutils.js:673 -#.TRANS: musical scale for music by Verdi -msgid "enigmatic" -msgstr "ఎనిగ్మాటిక్" +#: js/blocks/ToneBlocks.js:804 +msgid "synth name" +msgstr "సింథెసైజర్ పేరు" -#: js/musicutils.js:674 -msgid "ethiopian" -msgstr "ఇథియోపియన్" +#: js/blocks/ToneBlocks.js:842 +msgid "set default instrument" +msgstr "డిఫాల్ట్ వాద్యంను సెట్ చేయండి" -#: js/musicutils.js:676 -#.TRANS: Ethiopic scale for music -msgid "geez" -msgstr "గీజ్" +#: js/blocks/ToneBlocks.js:895 +#: js/blocks/ToneBlocks.js:943 +#.TRANS: set the characteristics of a custom instrument +msgid "set instrument" +msgstr "అనుకూల వాద్యంను సెట్ చేయండి" -#: js/musicutils.js:677 -msgid "hindu" -msgstr "హిందూ" +#: js/blocks/ToneBlocks.js:898 +#: js/blocks/ToneBlocks.js:926 +#: js/blocks/ToneBlocks.js:932 +msgid "The Set instrument block selects a voice for the synthesizer," +msgstr "సెట్ ఇన్స్ట్రమెంట్ బ్లాక్ సింథెసైజర్ కు ఒక ధ్వనిని ఎంచుకోనుండి," -#: js/musicutils.js:678 -msgid "hungarian" -msgstr "హంగేరియన్" +#: js/blocks/ToneBlocks.js:900 +#: js/blocks/ToneBlocks.js:934 +msgid "eg guitar piano violin or cello." +msgstr "ఉదాహరణగా, గిటార్, పియానో, వాయలిన్ లేదా సెల్లో." -#: js/musicutils.js:680 -#.TRANS: minor Romanian scale for music -msgid "romanian minor" -msgstr "రొమానియన్ మైనర్" +#: js/blocks/ToneBlocks.js:1015 +msgid "Import a sound file to use as an instrument and set its pitch center." +msgstr "వాద్యానికి ఉపయోగించడానికి ఒక ధ్వని ఫైల్ను దిగుమతి చేసి అదికి చేయడానికి." -#: js/musicutils.js:681 -msgid "spanish gypsy" -msgstr "స్పానిష్ జిప్సి" +#: js/blocks/ToneBlocks.js:1110 +msgid "Upload a sound file to connect with the sample block." +msgstr "సేంపిల్ బ్లాక్తో కనెక్ట్ అవుట్ చేడానికి ఒక ధ్వని ఫైల్ను అప్లోడ్ చేయండి." -#: js/musicutils.js:683 -#.TRANS: musical scale for Mid-Eastern music -msgid "maqam" -msgstr "మాకం" +#: js/blocks/VolumeBlocks.js:35 +msgid "synth volume" +msgstr "సింథ్ వాల్యూమ్" -#: js/musicutils.js:685 -#.TRANS: minor blues scale for music -msgid "minor blues" -msgstr "మైనర్ బ్లూస్" +#: js/blocks/VolumeBlocks.js:39 +msgid "The Synth volume block returns the current volume of the current synthesizer." +msgstr "సింథ్ వాల్యూమ్ బ్లాక్ ప్రస్తుత సింథెసైజర్ యొక్క ప్రస్తుత వాల్యూమ్ను తిరిగి ఇస్తుంది." -#: js/musicutils.js:687 -#.TRANS: major blues scale for music -msgid "major blues" -msgstr "మేజర్ బ్లూస్" +#: js/blocks/VolumeBlocks.js:105 +msgid "master volume" +msgstr "మాస్టర్ వాల్యూమ్" -#: js/musicutils.js:688 -msgid "whole tone" -msgstr "హోల్ టోన్" +#: js/blocks/VolumeBlocks.js:109 +msgid "The Master volume block returns the master volume." +msgstr "మాస్టర్ వాల్యూమ్ బ్లాక్ మాస్టర్ వాల్యూమ్ను తిరిగి ఇస్తుంది." -#: js/musicutils.js:690 -#.TRANS: pentatonic is a general term that means "five note scale". This scale is typically known as "minor pentatonic" -msgid "minor pentatonic" -msgstr "మైనర్ పెంటటోనిక్" +#: js/blocks/VolumeBlocks.js:355 +#: js/blocks/VolumeBlocks.js:524 +msgid "set synth volume" +msgstr "సింథ్ వాల్యూమ్ ను సెట్ చేయండి." -#: js/musicutils.js:692 -#.TRANS: pentatonic is a general term that means "five note scale". This scale is typically known as "major pentatonic" -msgid "major pentatonic" -msgstr "మేజర్ పెంటటోనిక్" +#: js/blocks/VolumeBlocks.js:362 +#: js/blocks/VolumeBlocks.js:545 +msgid "synth" +msgstr "సింథ్" -#: js/musicutils.js:693 -msgid "chinese" -msgstr "చైనీస్" +#: js/blocks/VolumeBlocks.js:403 +#: js/blocks/VolumeBlocks.js:577 +#: js/blocks/VolumeBlocks.js:740 +#: js/turtleactions/VolumeActions.js:173 +msgid "Setting volume to 0." +msgstr "వాల్యూమ్ను 0 కి సెట్ చేస్తోంది." -#: js/musicutils.js:694 -msgid "egyptian" -msgstr "ఎజిప్షియన్" +#: js/blocks/VolumeBlocks.js:440 +msgid "Synth not found" +msgstr "సింథ్ కనబడలేదు" -#: js/musicutils.js:696 -#.TRANS: https://en.wikipedia.org/wiki/Hirajoshi_scale NOTE: There are three different versions of this scale -msgid "hirajoshi" -msgstr "హిరజోషి" +#: js/blocks/VolumeBlocks.js:494 +msgid "set drum volume" +msgstr "డ్రం వాల్యూమ్ ను సెట్ చేయండి" -#: js/musicutils.js:697 -msgid "Japan" -msgstr "జపాన్" +#: js/blocks/VolumeBlocks.js:530 +msgid "The Set synth volume block will change the volume of a particular synth," +msgstr "సెట్ సింథ్ వాల్యూమ్ బ్లాక్ అంగీకరించే సింథెసైజర్ యొక్క వాల్యూమ్ మార్చిపెడతాయి," -#: js/musicutils.js:699 -#.TRANS: https://en.wikipedia.org/wiki/In_scale and https://en.wikipedia.org/wiki/Sakura_Sakura -msgid "in" -msgstr "ఇన్" +#: js/blocks/VolumeBlocks.js:532 +msgid "eg guitar violin snare drum etc." +msgstr "ఉదా. గిటార్, వాయలిన్, స్నేయర్ డ్రం మరియు ఇతరులు." -#: js/musicutils.js:701 -#.TRANS: https://en.wikipedia.org/wiki/Miny%C5%8D_scale -msgid "minyo" -msgstr "మిన్యో" +#: js/blocks/VolumeBlocks.js:534 +msgid "The default volume is 50." +msgstr "డిఫాల్ట్ వాల్యూమ్ 50 ఉంది." -#: js/musicutils.js:703 -#.TRANS: Italian mathematician -msgid "fibonacci" -msgstr "ఫిబొనాచి" +#: js/blocks/VolumeBlocks.js:536 +msgid "The range is 0 for silence to 100 for full volume." +msgstr "వాల్యూమ్ యొక్క శాంతత కోసం 0 నుండి పూర్తి వాల్యూమ్ కోసం 100 వరకు ఉంది." -#: js/musicutils.js:708 -#: js/musicutils.js:1106 -#.TRANS: lowpass filter -msgid "lowpass" -msgstr "లోపాస్" +#: js/blocks/VolumeBlocks.js:597 +msgid "set panning" +msgstr "ప్యానింగ్ ను సెట్ చేయండి" -#: js/musicutils.js:710 -#: js/musicutils.js:1107 -#.TRANS: bandpass filter -msgid "bandpass" -msgstr "బ్యాండ్‌పాస్" +#: js/blocks/VolumeBlocks.js:603 +msgid "The Set Panning block sets the panning for all synthesizers." +msgstr "సెట్ పానింగ్ బ్లాక్ అన్ని సింథెసైజర్ల కోసం పానింగ్ను సెట్ చేస్తుంది." -#: js/musicutils.js:712 -#: js/musicutils.js:1108 -#.TRANS: high-shelf filter -msgid "highshelf" -msgstr "హై‌షెల్ఫ్" +#: js/blocks/VolumeBlocks.js:625 +msgid "Warning: Sound is coming out from only the left or right side." +msgstr "హెచ్చరిక: ధ్వని కేవలం ఎడమ లేదా కుడి వైపున నుండి వస్తుంది." -#: js/musicutils.js:714 -#: js/musicutils.js:1109 -#.TRANS: low-shelf filter -msgid "lowshelf" -msgstr "లో‌షెల్ఫ్" +#: js/blocks/VolumeBlocks.js:647 +#: js/blocks/VolumeBlocks.js:695 +msgid "set master volume" +msgstr ""మాస్టర్ వాల్యూమ్ ను సెట్ చేయండి." -#: js/musicutils.js:716 -#: js/musicutils.js:1110 -#.TRANS: notch-shelf filter -msgid "notch" -msgstr "నాచ్" +#: js/blocks/VolumeBlocks.js:653 +msgid "The Set master volume block sets the volume for all synthesizers." +msgstr "సెట్ మాస్టర్ వాల్యూమ్ బ్లాక్ అన్ని సింథెసైజర్ల కోసం వాల్యూమ్ను సెట్ చేస్తుంది." -#: js/musicutils.js:718 -#: js/musicutils.js:1111 -#.TRANS: all-pass filter -msgid "allpass" -msgstr "ఆల్‌పాస్" +#: js/blocks/VolumeBlocks.js:784 +msgid "The Set relative volume block changes the volume of the contained notes." +msgstr "సెట్ రిలేటివ్ వాల్యూమ్ బ్లాక్ ఉన్న నోట్ల వాల్యూమ్ను మార్చిపెడతాయి." -#: js/musicutils.js:720 -#: js/musicutils.js:1112 -#.TRANS: peaking filter -msgid "peaking" -msgstr "పికింగ్" +#: js/blocks/VolumeBlocks.js:791 +msgid "set relative volume" +msgstr "రిలేటివ్ వాల్యూమ్ ను సెట్ చేయండి." -#: js/musicutils.js:731 -#: js/synthutils.js:58 -#.TRANS: musical instrument -msgid "violin" -msgstr "వయలిన్" +#: js/blocks/VolumeBlocks.js:857 +msgid "decrescendo" +msgstr "డెక్రెసెండో" -#: js/musicutils.js:732 -#: js/synthutils.js:60 -#.TRANS: viola musical instrument -msgid "viola" -msgstr "వాయలా" +#: js/blocks/VolumeBlocks.js:921 +msgid "crescendo" +msgstr "క్రిస్సెండో" -#: js/musicutils.js:733 -#: js/synthutils.js:98 -#.TRANS: xylophone musical instrument -msgid "xylophone" -msgstr "జ్యానతి" +#: js/blocks/WidgetBlocks.js:81 +#.TRANS: sound envelope (ADSR) +msgid "envelope" +msgstr "ఎన్వలప్" -#: js/musicutils.js:734 -#: js/synthutils.js:120 -#.TRANS: vibraphone musical instrument -msgid "vibraphone" -msgstr "వైబ్రఫోన్" +#: js/blocks/WidgetBlocks.js:89 +#.TRANS: Attack time is the time taken for initial run-up of level from nil to peak, beginning when the key is first pressed. +msgid "attack" +msgstr "ఆటాక్" -#: js/musicutils.js:735 -#: js/synthutils.js:62 -#.TRANS: musical instrument -msgid "cello" -msgstr "సెల్లో" +#: js/blocks/WidgetBlocks.js:91 +#.TRANS: Decay time is the time taken for the subsequent run down from the attack level to the designated sustain level. +msgid "decay" +msgstr "డికే" -#: js/musicutils.js:737 -#: js/synthutils.js:66 -#.TRANS: viola musical instrument -msgid "double bass" -msgstr "డబుల్ బాస్" +#: js/blocks/WidgetBlocks.js:93 +#.TRANS: Sustain level is the level during the main sequence of the sound's duration, until the key is released. +msgid "sustain" +msgstr "సస్టేన్" -#: js/musicutils.js:738 -#: js/synthutils.js:68 -#: js/rhythmruler.js:2119 -#.TRANS: musical instrument -msgid "guitar" -msgstr "గిటార్" +#: js/blocks/WidgetBlocks.js:95 +#.TRANS: Release time is the time taken for the level to decay from the sustain level to zero after the key is released. +msgid "release" +msgstr "రిలీస్" + +#: js/blocks/WidgetBlocks.js:113 +msgid "Attack value should be from 0 to 100." +msgstr "దాడుట విలువ ఉండాలి 0 నుండి 100 లలో." -#: js/musicutils.js:739 -#: js/synthutils.js:70 -#.TRANS: musical instrument -msgid "acoustic guitar" -msgstr "ఆకస్టిక్ గిటార్" +#: js/blocks/WidgetBlocks.js:116 +msgid "Decay value should be from 0 to 100." +msgstr "డికే విలువ ఉండాలి 0 నుండి 100 లలో." -#: js/musicutils.js:740 -#: js/synthutils.js:72 -#.TRANS: musical instrument -msgid "flute" -msgstr "ఫ్లూట్" +#: js/blocks/WidgetBlocks.js:119 +msgid "Sustain value should be from 0 to 100." +msgstr "సస్టేన్ విలువ ఉండాలి 0 నుండి 100 లలో." -#: js/musicutils.js:741 -#: js/synthutils.js:74 -#.TRANS: musical instrument -msgid "clarinet" -msgstr "క్లారినెట్" +#: js/blocks/WidgetBlocks.js:122 +msgid "Release value should be from 0-100." +msgstr "రిలీస్ విలువ ఉండాలి 0 నుండి 100 లలో." -#: js/musicutils.js:742 -#: js/synthutils.js:76 -#.TRANS: musical instrument -msgid "saxophone" -msgstr "సాక్సోఫోన్" +#: js/blocks/WidgetBlocks.js:140 +msgid "You are adding multiple envelope blocks." +msgstr "మీరు అనేక ఎన్వలప్ బ్లాక్‌లను జోడిస్తున్నారు." -#: js/musicutils.js:743 -#: js/synthutils.js:78 -#.TRANS: musical instrument -msgid "tuba" -msgstr "ట్యూబా" +#: js/blocks/WidgetBlocks.js:171 +#.TRANS: a filter removes some unwanted components from a signal +msgid "filter" +msgstr "ఫిల్టర్" -#: js/musicutils.js:744 -#: js/synthutils.js:80 -#.TRANS: musical instrument -msgid "trumpet" -msgstr "ట్రంపెట్" +#: js/blocks/WidgetBlocks.js:181 +#: js/widgets/timbre.js:1818 +#.TRANS: rolloff is the steepness of a change in frequency. +msgid "rolloff" +msgstr "రోలాఫ్" -#: js/musicutils.js:745 -#: js/synthutils.js:82 -#.TRANS: musical instrument -msgid "oboe" -msgstr "ఒబో" +#: js/blocks/WidgetBlocks.js:213 +#.TRANS: rolloff is the steepness of a change in frequency. +msgid "Rolloff value should be either -12, -24, -48, or -96 decibels/octave." +msgstr "రోలాఫ్ విలువ ఆరంభంగా -12, -24, -48 లేదా -96 డిసిబల్లాలు/అక్టావ్ అవసరం." -#: js/musicutils.js:746 -#: js/synthutils.js:84 -#.TRANS: musical instrument -msgid "trombone" -msgstr "ట్రాంబోన్" +#: js/blocks/WidgetBlocks.js:252 +msgid "The Temperament tool is used to define custom tuning." +msgstr "కస్టమ్ ట్యూనింగ్‌ను నిర్వచించడానికి టెంపరమెంట్ టూల్ ఉపయోగపడుతుంది." -#: js/musicutils.js:747 -#: js/synthutils.js:100 -#.TRANS: polytone synthesizer -msgid "electronic synth" -msgstr "ఎలక్ట్రానిక్ సింత్" +#: js/blocks/WidgetBlocks.js:332 +#: js/blocks/WidgetBlocks.js:1573 +#: js/widgets/sampler.js:547 +msgid "Upload a sample and adjust its pitch center." +msgstr "ఒక నమూనాను అప్లోడ్ చేసి అదిక పిచ్ కేంద్రాన్ని సరిచూడండి." -#: js/musicutils.js:748 -#: js/synthutils.js:102 -#.TRANS: simple monotone synthesizer -msgid "simple 1" -msgstr "సింపుల్ 1" +#: js/blocks/WidgetBlocks.js:339 +#.TRANS: the speed at music is should be played. +msgid "sampler" +msgstr "సాంప్లర్" -#: js/musicutils.js:749 -msgid "simple 2" -msgstr "సింపుల్ 2" +#: js/blocks/WidgetBlocks.js:517 +msgid "The Meter block opens a tool to select strong beats for the meter." +msgstr "మీటర్ బ్లాక్ మీటర్కు బలంగా బాట్లు ఎంచుకోవడానికి ఒక టూల్ను తెరిచివేస్తుంది." -#: js/musicutils.js:750 -msgid "simple 3" -msgstr "సింపుల్ 3" +#: js/blocks/WidgetBlocks.js:573 +msgid "The oscilloscope block opens a tool to visualize waveforms." +msgstr "ఆస్కిలోస్కోప్ బ్లాక్ ఒక టూల్ను తెరిచివేస్తుంది వేవ్ఫారాలు చూపించడానికి." -#: js/musicutils.js:751 -msgid "simple 4" -msgstr "సింపుల్ 4" +#: js/blocks/WidgetBlocks.js:578 +msgid "oscilloscope" +msgstr "ఆస్కిలోస్కోప్" -#: js/musicutils.js:753 -#: js/synthutils.js:49 -#.TRANS: brown noise synthesizer -msgid "brown noise" -msgstr "బ్రౌన్ నాయిస్" +#: js/blocks/WidgetBlocks.js:645 +msgid "The Custom mode block opens a tool to explore musical mode (the spacing of the notes in a scale)." +msgstr "కస్టమ్ మోడ్ బ్లాక్ సంగీత మోడ్ (స్కేల్లో గానాల వడపోత) అన్నిటికి ఆవకాశాన్ని తెరిచివేస్తుంది." -#: js/musicutils.js:754 -#: js/synthutils.js:51 -#.TRANS: pink noise synthesizer -msgid "pink noise" -msgstr "పింక్ నాయిస్" +#: js/blocks/WidgetBlocks.js:651 +#.TRANS: musical mode is the pattern of half-steps in an octave, e.g., Major or Minor modes +msgid "custom mode" +msgstr "కస్టమ్ మోడ్" -#: js/musicutils.js:756 -#: js/synthutils.js:127 -#: js/rhythmruler.js:1670 -#: js/rhythmruler.js:1928 -#.TRANS: musical instrument -msgid "snare drum" -msgstr "స్నేర్ డ్రమ్" +#: js/blocks/WidgetBlocks.js:700 +msgid "The Tempo block opens a metronome to visualize the beat." +msgstr "టెంపో బ్లాక్ బీట్ వేసారి చూపించడానికి మెట్రానోమ్ను తెరిచివేస్తుంది." -#: js/musicutils.js:757 -#: js/synthutils.js:129 -#.TRANS: musical instrument -msgid "kick drum" -msgstr "కిక్ డ్రమ్" +#: js/blocks/WidgetBlocks.js:762 +msgid "The Arpeggio Widget is used to compose chord sequences." +msgstr "ఆర్పెజియో విడ్జెట్ కార్డు సీక్వెన్సులను రచించడానికి ఉపయోగపడుతుంది." -#: js/musicutils.js:758 -#: js/synthutils.js:131 -#.TRANS: musical instrument -msgid "tom tom" -msgstr "టామ్ టామ్" +#: js/blocks/WidgetBlocks.js:837 +msgid "The Pitch drum matrix is used to map pitches to drum sounds." +msgstr "పిచ్ డ్రమ్ మ్యాట్రిక్స్ పిచ్లను డ్రమ్ సౌండ్లకు మ్యాప్ చేయడానికి ఉపయోగిస్తారు." -#: js/musicutils.js:759 -#: js/synthutils.js:133 -#.TRANS: musical instrument -msgid "floor tom" -msgstr "ఫ్లోర్ టామ్" +#: js/blocks/WidgetBlocks.js:842 +#.TRANS: makes a mapping between pitches and drum sounds +msgid "pitch-drum mapper" +msgstr "పిచ్-డ్రమ్ మ్యాప్పర్" -#: js/musicutils.js:760 -#: js/synthutils.js:135 -#.TRANS: musical instrument -msgid "bass drum" -msgstr "బాస్ డ్రమ్" +#: js/blocks/WidgetBlocks.js:891 +msgid "You must have at least one pitch block and one drum block in the matrix." +msgstr "మీరు మ్యాట్రిక్స్లో కనీసం ఒక పిచ్ బ్లాక్ మరియు ఒక డ్రమ్ బ్లాక్ ఉండాలి." -#: js/musicutils.js:761 -#: js/synthutils.js:137 -#.TRANS: a drum made from an inverted cup -msgid "cup drum" -msgstr "కప్ డ్రం" +#: js/blocks/WidgetBlocks.js:920 +msgid "The Pitch slider tool to is used to generate pitches at selected frequencies." +msgstr "పిచ్ స్లైడర్ టూల్ ఎంచుకోబడి అంగులాలలో పిచ్లను ఉత్పత్తించడానికి ఉపయోగిస్తారు." -#: js/musicutils.js:762 -#: js/synthutils.js:139 -#.TRANS: musical instrument -msgid "darbuka drum" -msgstr "డార్బుకా డ్రం" +#: js/blocks/WidgetBlocks.js:925 +#.TRANS: widget to generate pitches using a slider +msgid "pitch slider" +msgstr "పిచ్ స్లైడర్" -#: js/musicutils.js:763 -#: js/synthutils.js:143 -#.TRANS: musical instrument -msgid "hi hat" -msgstr "హై హ్యాట్" +#: js/blocks/WidgetBlocks.js:977 +msgid "chromatic keyboard" +msgstr "క్రోమాటిక్ కీబోర్డ్" -#: js/musicutils.js:764 -#: js/synthutils.js:145 -#.TRANS: a small metal bell -msgid "ride bell" -msgstr "రైడ్ బెల్" +#: js/blocks/WidgetBlocks.js:1011 +#: js/blocks/WidgetBlocks.js:1077 +#.TRANS: widget to generate pitches using a slider +msgid "music keyboard" +msgstr "సంగీత కీబోర్డ్" -#: js/musicutils.js:765 -#: js/synthutils.js:147 -#.TRANS: musical instrument -msgid "cow bell" -msgstr "కౌ బెల్" +#: js/blocks/WidgetBlocks.js:1062 +#: js/blocks/WidgetBlocks.js:1069 +msgid "The Music keyboard block opens a piano keyboard that can be used to create notes." +msgstr "మ్యూజిక్ కీబోర్డ్ బ్లాక్ నోట్లను సృష్టించడానికి పియానో కీబోర్డ్ను తెరిచివేస్తుంది." -#: js/musicutils.js:766 -msgid "japanese drum" -msgstr "జపనీస్ డ్రమ్" +#: js/blocks/WidgetBlocks.js:1128 +msgid "The Pitch staircase tool to is used to generate pitches from a given ratio." +msgstr "పిచ్ స్టెయర్కేస్ టూల్ అంగులాలో ఇచ్చిన అనుపాతం నుండి పిచ్లను ఉత్పత్తించడానికి ఉపయోగిస్తారు." -#: js/musicutils.js:767 -#: js/synthutils.js:153 -#.TRANS: musical instrument -msgid "japanese bell" -msgstr "జపనీస్ బెల్" +#: js/blocks/WidgetBlocks.js:1135 +#.TRANS: generate a progressive sequence of pitches +msgid "pitch staircase" +msgstr "పిచ్ స్టెయర్కేస్" -#: js/musicutils.js:768 -#: js/synthutils.js:149 -#.TRANS: musical instrument -msgid "triangle bell" -msgstr "ట్రయాంగిల్ బెల్" +#: js/blocks/WidgetBlocks.js:1222 +msgid "The Rhythm Maker block opens a tool to create drum machines." +msgstr "రిదాన్ మేకర్ బ్లాక్ డ్రమ్ మెషీన్లను రచించడానికి టూల్ తెరిచివేస్తుంది." -#: js/musicutils.js:769 -#: js/synthutils.js:151 -#.TRANS: musical instrument -msgid "finger cymbals" -msgstr "ఫింగర్ సింబల్స్" +#: js/blocks/WidgetBlocks.js:1291 +msgid "G major scale" +msgstr "జి మేజర్ స్కేల్" -#: js/musicutils.js:770 -#: js/synthutils.js:155 -#.TRANS: a musically tuned set of bells -msgid "chime" -msgstr "చైమ్" +#: js/blocks/WidgetBlocks.js:1326 +msgid "C major scale" +msgstr "సి మేజర్ స్కేల్" -#: js/musicutils.js:771 -#: js/synthutils.js:157 -#.TRANS: a musical instrument -msgid "gong" -msgstr "గాంగ్" +#: js/blocks/WidgetBlocks.js:1366 +msgid "The Phrase Maker block opens a tool to create musical phrases." +msgstr "ఫ్రేస్ మేకర్ బ్లాక్ సంగీత ఫ్రేస్లను రచించడానికి టూల్ తెరిచివేస్తుంది." -#: js/musicutils.js:772 -#: js/synthutils.js:159 -#.TRANS: sound effect -msgid "clang" -msgstr "క్లాంగ్" +#: js/blocks/WidgetBlocks.js:1373 +#.TRANS: assigns pitch to a sequence of beats to generate a melody +msgid "phrase maker" +msgstr "ఫ్రేస్ మేకర్" -#: js/musicutils.js:773 -#: js/synthutils.js:161 -#.TRANS: sound effect -msgid "crash" -msgstr "క్రాష్" +#: js/blocks/WidgetBlocks.js:1444 +msgid "You must have at least one pitch block and one rhythm block in the matrix." +msgstr "మీరు మ్యాట్రిక్స్లో కనీసం ఒక పిచ్ బ్లాక్ మరియు ఒక రిదాన్ బ్లాక్ ఉండాలి." -#: js/musicutils.js:774 -#: js/synthutils.js:163 -#.TRANS: sound effect -msgid "bottle" -msgstr "బాటిల్" +#: js/blocks/WidgetBlocks.js:1503 +msgid "The Status block opens a tool for inspecting the status of Music Blocks as it is running." +msgstr "స్టేటస్ బ్లాక్ మ్యూజిక్ బ్లాక్స్ యొక్క స్థితిని తనిఖీ చేయడానికి ఒక టూల్ తెరిచివేస్తుంది." -#: js/musicutils.js:775 -#: js/synthutils.js:165 -#.TRANS: sound effect -msgid "clap" -msgstr "క్లాప్" +#: js/blocks/WidgetBlocks.js:1580 +#.TRANS: AI-generated music +msgid "aimusic" +msgstr "" -#: js/musicutils.js:776 -#: js/synthutils.js:167 -#.TRANS: sound effect -msgid "slap" -msgstr "స్లాప్" +#: js/turtleactions/MeterActions.js:101 +#: js/turtleactions/MeterActions.js:139 +msgid "beats per minute must be greater than" +msgstr "ప్రతి నిమిషాల ప్రతి నిమిషాల పెరిగిన బీటుల సంఖ్య కంటే ఎక్కువవి" -#: js/musicutils.js:777 -#: js/synthutils.js:169 -#.TRANS: sound effect -msgid "splash" -msgstr "స్ప్లాష్" +#: js/turtleactions/MeterActions.js:111 +#: js/turtleactions/MeterActions.js:149 +msgid "maximum" +msgstr "గరిష్ట" -#: js/musicutils.js:778 -#: js/synthutils.js:171 -#.TRANS: sound effect -msgid "bubbles" -msgstr "బబుల్స్" +#: js/turtleactions/MeterActions.js:117 +#: js/turtleactions/MeterActions.js:155 +msgid "beats per minute is" +msgstr "ప్రతి నిమిషాల పెరిగిన బీటుల సంఖ్య ఉంది" -#: js/musicutils.js:779 -#: js/synthutils.js:173 -#.TRANS: sound effect -msgid "raindrop" -msgstr "రెయిండ్రాప్" +#: js/turtleactions/DictActions.js:75 +#: js/turtleactions/DictActions.js:142 +#: js/turtleactions/DictActions.js:172 +msgid "font" +msgstr "ఫాంట్" -#: js/musicutils.js:780 -#: js/synthutils.js:175 -#.TRANS: animal sound effect -msgid "cat" -msgstr "క్యాట్" +#: js/turtleactions/DictActions.js:255 +msgid "Dictionary with this name does not exist" +msgstr "" -#: js/musicutils.js:781 -#: js/synthutils.js:177 -#.TRANS: animal sound effect -msgid "cricket" -msgstr "క్రికెట్" +#: js/turtleactions/DictActions.js:259 +msgid "Key with this name does not exist in " +msgstr "" -#: js/musicutils.js:782 -#: js/synthutils.js:179 -#.TRANS: animal sound effect -msgid "dog" -msgstr "డాగ్" +#: js/turtleactions/DrumActions.js:227 +msgid "Noise Block: Did you mean to use a Note block?" +msgstr "నాయిస్ బ్లాక్: మీరు నోట్ బ్లాక్ ఉపయోగించాలా?" -#: js/musicutils.js:784 -#: js/synthutils.js:86 -#.TRANS: musical instrument -msgid "banjo" -msgstr "బ్యాంజో" +#: js/turtleactions/IntervalsActions.js:113 +msgid "one" +msgstr "" -#: js/musicutils.js:785 -#: js/synthutils.js:88 -#.TRANS: musical instrument -msgid "koto" -msgstr "కోటో" +#: js/turtleactions/IntervalsActions.js:113 +msgid "two" +msgstr "" -#: js/musicutils.js:786 -#: js/synthutils.js:90 -#.TRANS: musical instrument -msgid "dulcimer" -msgstr "డల్సిమర్" +#: js/turtleactions/IntervalsActions.js:113 +msgid "three" +msgstr "" -#: js/musicutils.js:787 -#: js/synthutils.js:92 -#.TRANS: musical instrument -msgid "electric guitar" -msgstr "ఎలక్ట్రిక్ గిటార్" +#: js/turtleactions/IntervalsActions.js:113 +msgid "four" +msgstr "" -#: js/musicutils.js:788 -#: js/synthutils.js:94 -#.TRANS: musical instrument -msgid "bassoon" -msgstr "బాసూన్" +#: js/turtleactions/IntervalsActions.js:113 +msgid "five" +msgstr "" -#: js/musicutils.js:789 -#: js/synthutils.js:96 -#.TRANS: musical instrument -msgid "celeste" -msgstr "సెలెస్ట్" +#: js/turtleactions/IntervalsActions.js:113 +msgid "six" +msgstr "" -#: js/musicutils.js:791 -#: js/musicutils.js:1123 -#: js/musicutils.js:1131 -#: js/temperament.js:650 -#.TRANS: musical temperament -msgid "equal" -msgstr "సమాన" +#: js/turtleactions/IntervalsActions.js:113 +msgid "seven" +msgstr "" -#: js/musicutils.js:793 -#: js/musicutils.js:1125 -#: js/musicutils.js:1133 -#.TRANS: musical temperament -msgid "Pythagorean" -msgstr "పైతాగోరియన్" +#: js/turtleactions/IntervalsActions.js:113 +msgid "eight" +msgstr "" + +#: js/turtleactions/IntervalsActions.js:113 +msgid "nine" +msgstr "" -#: js/musicutils.js:795 -#: js/musicutils.js:1124 -#: js/musicutils.js:1132 -#.TRANS: musical temperament -msgid "just intonation" -msgstr "కేవల సరళ సమాంతరం" +#: js/turtleactions/IntervalsActions.js:119 +msgid "a" +msgstr "" -#: js/musicutils.js:797 -#: js/musicutils.js:1126 -#: js/musicutils.js:1127 -#: js/musicutils.js:1134 -#: js/musicutils.js:1135 -#.TRANS: musical temperament -msgid "meantone" -msgstr "మీంటోన్" +#: js/turtleactions/IntervalsActions.js:120 +msgid "below" +msgstr "" -#: js/musicutils.js:814 -msgid "major 7th" -msgstr "మేజర్ 7వ" +#: js/turtleactions/IntervalsActions.js:124 +msgid "above" +msgstr "" -#: js/musicutils.js:815 -msgid "minor 7th" -msgstr "మైనర్ 7వ" +#: js/turtleactions/IntervalsActions.js:131 +msgid "plus" +msgstr "" -#: js/musicutils.js:816 -msgid "dominant 7th" -msgstr "డామినెంట్ 7వ" +#: js/turtleactions/IntervalsActions.js:139 +msgid " below" +msgstr "" -#: js/musicutils.js:817 -msgid "minor-major 7th" -msgstr "మైనర్-మేజర్ 7వ" +#: js/turtleactions/IntervalsActions.js:257 +msgid "Adding missing pitch number 0." +msgstr "కనిపించిన పిచ్ సంఖ్య 0 ను జోడిస్తోంది." -#: js/musicutils.js:818 -msgid "fully-diminished 7th" -msgstr "పూర్ణం-డిమినిష్డ్ 7వ" +#: js/turtleactions/IntervalsActions.js:265 +msgid "Ignoring pitch numbers less than zero or greater than eleven." +msgstr "సిరికొన్ని లేదా పదినాలు కంటే ఎక్కువ పిచ్ సంఖ్యలను ప్రతిక్షణానికి ప్రమాదించబడుతుంది." -#: js/musicutils.js:819 -msgid "half-diminished 7th" -msgstr "హాఫ్-డిమినిష్డ్ 7వ" +#: js/turtleactions/IntervalsActions.js:271 +msgid "Ignoring duplicate pitch numbers." +msgstr "నకిలీవేయబడిన పిచ్ సంఖ్యలను ప్రతిక్షణానికి ప్రమాదించబడుతుంది." -#: js/musicutils.js:4379 -#: js/musicutils.js:4416 -msgid "current" -msgstr "ప్రస్తుత" +#: js/turtleactions/ToneActions.js:134 +msgid "Vibrato intensity must be between 1 and 100." +msgstr "విబ్రాటో ఇంటెన్సిటి 1 నుండి 100 మధ్యలో ఉండాలి." -#: js/musicutils.js:4382 -#: js/musicutils.js:4407 -msgid "next" -msgstr "తరువాత" +#: js/turtleactions/ToneActions.js:139 +msgid "Vibrato rate must be greater than 0." +msgstr "విబ్రాటో రేట్ 0 కంటే ఎక్కువ ఉండాలి." -#: js/musicutils.js:4385 -#: js/musicutils.js:4412 -msgid "previous" -msgstr "మునుపటి" +#: js/turtleactions/ToneActions.js:192 +#: js/turtleactions/ToneActions.js:265 +#.TRANS: Depth is the intesity of the tremolo or chorus effect. +msgid "Depth is out of range." +msgstr "డెప్త్ అవుట్ ఆఫ్ రేంజ్ లో ఉంది." -#: js/synthutils.js:104 -#.TRANS: simple monotone synthesizer -msgid "simple-2" -msgstr "సింపుల్-2" +#: js/turtleactions/ToneActions.js:301 +msgid "Distortion must be from 0 to 100." +msgstr "డిస్టోర్షన్ 0 నుండి 100 వరకు ఉండాలి." -#: js/synthutils.js:106 -#.TRANS: simple monotone synthesizer -msgid "simple-3" -msgstr "సింపుల్-3" +#: js/turtleactions/ToneActions.js:332 +#.TRANS: partials components in a harmonic series +msgid "Partial must be greater than or equal to 0." +msgstr "పార్షియల్ 0 నుండి కనీసం ఎక్కువ ఉండాలి." -#: js/synthutils.js:108 -#.TRANS: simple monotone synthesizer -msgid "simple-4" -msgstr "సింపుల్-4" +#: js/turtleactions/ToneActions.js:378 +#: js/turtleactions/ToneActions.js:417 +#: js/turtleactions/ToneActions.js:456 +#: js/widgets/timbre.js:782 +msgid "Unable to use synth due to existing oscillator" +msgstr "ప్రస్తుత ఆసిలేటర్ కారణంగా సింథ్ ను ఉపయోగించలేరు" -#: js/synthutils.js:141 -#.TRANS: musical instrument -msgid "taiko" -msgstr "టైకో" +#: js/turtleactions/ToneActions.js:388 +#: js/turtleactions/ToneActions.js:427 +msgid "The input cannot be negative." +msgstr "ఇన్‌పుట్ నేగటివ్ కాకపోవడం లేదు." -#: js/modewidget.js:86 -#: js/modewidget.js:88 -#: js/modewidget.js:642 -#: js/modewidget.js:644 -#: js/modewidget.js:712 -#: js/modewidget.js:714 -#: js/temperament.js:2078 -#: js/rhythmruler.js:189 -#: js/rhythmruler.js:1410 -#: js/rhythmruler.js:1412 -#: js/rhythmruler.js:1435 -#: js/rhythmruler.js:1437 -#: js/meterwidget.js:89 -#: js/meterwidget.js:91 +#: js/widgets/modewidget.js:86 +#: js/widgets/modewidget.js:88 +#: js/widgets/modewidget.js:642 +#: js/widgets/modewidget.js:644 +#: js/widgets/modewidget.js:712 +#: js/widgets/modewidget.js:714 +#: js/widgets/meterwidget.js:194 +#: js/widgets/meterwidget.js:196 +#: js/widgets/temperament.js:2236 +#: js/widgets/rhythmruler.js:457 +#: js/widgets/rhythmruler.js:1790 +#: js/widgets/rhythmruler.js:1792 +#: js/widgets/rhythmruler.js:1816 +#: js/widgets/rhythmruler.js:1818 msgid "Play all" msgstr "అన్నింటిని ఆడు" -#: js/modewidget.js:115 -#: js/pitchstaircase.js:641 -#: js/phrasemaker.js:339 -#: js/pitchdrummatrix.js:94 -#: js/pitchslider.js:125 -#: js/temperament.js:2083 -#: js/musickeyboard.js:530 -#: js/timbre.js:756 -#: js/meterwidget.js:124 -#: js/arpeggio.js:103 +#: js/widgets/modewidget.js:115 +#: js/widgets/meterwidget.js:229 +#: js/widgets/pitchdrummatrix.js:166 +#: js/widgets/pitchslider.js:125 +#: js/widgets/pitchstaircase.js:641 +#: js/widgets/temperament.js:2244 +#: js/widgets/timbre.js:756 +#: js/widgets/arpeggio.js:103 +#: js/widgets/musickeyboard.js:688 +#: js/widgets/phrasemaker.js:550 msgid "Save" msgstr "భద్రపరచు" -#: js/modewidget.js:121 -#: js/pitchstaircase.js:686 -#: js/phrasemaker.js:356 -#: js/pitchdrummatrix.js:109 -#: js/musickeyboard.js:534 -#: js/rhythmruler.js:269 -#: js/arpeggio.js:118 +#: js/widgets/modewidget.js:121 +#: js/widgets/pitchdrummatrix.js:181 +#: js/widgets/pitchstaircase.js:686 +#: js/widgets/arpeggio.js:118 +#: js/widgets/musickeyboard.js:696 +#: js/widgets/phrasemaker.js:567 +#: js/widgets/rhythmruler.js:601 #.TRANS: clear all subdivisions from the ruler. msgid "Clear" msgstr "క్లియర్" -#: js/modewidget.js:127 +#: js/widgets/modewidget.js:127 msgid "Rotate counter clockwise" msgstr "ప్రాక్కాలంకే తిరిగించు" -#: js/modewidget.js:133 +#: js/widgets/modewidget.js:133 msgid "Rotate clockwise" msgstr "దక్షిణాకాలంకే తిరిగించు" -#: js/modewidget.js:139 +#: js/widgets/modewidget.js:139 msgid "Invert" msgstr "అదనపు చేయు" -#: js/modewidget.js:145 -#: js/pitchstaircase.js:678 -#: js/rhythmruler.js:258 -#: js/timbre.js:963 +#: js/widgets/modewidget.js:145 +#: js/widgets/pitchstaircase.js:678 +#: js/widgets/timbre.js:963 +#: js/widgets/rhythmruler.js:578 msgid "Undo" msgstr "విస్తరించు" -#: js/modewidget.js:163 +#: js/widgets/modewidget.js:163 #.TRANS: A circle of notes represents the musical mode. msgid "Click in the circle to select notes for the mode." msgstr "మోడ్ కోసం నోట్లను ఎంచుకోవడానికి వృత్తంలో నొక్కండి." -#: js/modewidget.js:1017 -#: js/pitchstaircase.js:580 -#: js/phrasemaker.js:4855 -#: js/temperament.js:1754 -#: js/rhythmruler.js:1865 -#: js/rhythmruler.js:2081 -#: js/tempo.js:414 +#: js/widgets/modewidget.js:1017 +#: js/widgets/pitchstaircase.js:580 +#: js/widgets/temperament.js:1929 +#: js/widgets/tempo.js:414 +#: js/widgets/phrasemaker.js:5356 +#: js/widgets/rhythmruler.js:2254 +#: js/widgets/rhythmruler.js:2472 msgid "New action block generated!" msgstr "కొత్త యాక్షన్ బ్లాక్ సృష్టించబడింది!" -#: js/oscilloscope.js:79 +#: js/widgets/meterwidget.js:275 +msgid "Reset" +msgstr "రీసెట్" + +#: js/widgets/meterwidget.js:301 +msgid "Click in the circle to select strong beats for the meter." +msgstr "మీటర్కు బలంగా పడే టక్కరిని ఎంచుకోవడానికి వైరాచించండి." + +#: js/widgets/oscilloscope.js:79 msgid "Zoom In" msgstr "పైగా జూమ్ చేయండి" -#: js/oscilloscope.js:88 +#: js/widgets/oscilloscope.js:88 msgid "Zoom Out" msgstr "దూరంగా జూమ్ చేయండి" -#: js/pitchstaircase.js:624 -msgid "Play chord" -msgstr "ఛార్డ్ ప్లే చేయండి" - -#: js/pitchstaircase.js:632 -msgid "Play scale" -msgstr "స్కేల్ ప్లే చేయండి" - -#: js/pitchstaircase.js:696 -msgid "Click on a note to create a new step." -msgstr "నోట్లపై క్లిక్ చేయడానికి కొత్త స్టెప్ సృష్టించండి." - -#: js/phrasemaker.js:363 -msgid "Export" -msgstr "ఎగుమతి" - -#: js/phrasemaker.js:370 -msgid "Sort" -msgstr "వర్గీకరించండి" - -#: js/phrasemaker.js:373 -#: js/musickeyboard.js:559 -msgid "Add note" -msgstr "గానా జోడించండి" - -#: js/phrasemaker.js:764 -msgid "Click on the table to add notes." -msgstr "గానాలను జోడించడానికి టేబుల్లో క్లిక్ చేయండి." - -#: js/phrasemaker.js:2414 -#: js/phrasemaker.js:2543 -msgid "tuplet value" -msgstr "ట్యూప్లెట్ విలువ" - -#: js/pitchdrummatrix.js:270 -#: js/pitchdrummatrix.js:639 +#: js/widgets/pitchdrummatrix.js:356 +#: js/widgets/pitchdrummatrix.js:752 msgid "Click in the grid to map notes to drums." msgstr "గ్రిడ్లో క్లిక్ చేసి గానాలను డ్రంస్‌కు మ్యాప్ చేయండి." -#: js/pitchslider.js:103 +#: js/widgets/pitchslider.js:103 msgid "Move up" msgstr "పైకి జరుపు" -#: js/pitchslider.js:114 +#: js/widgets/pitchslider.js:114 msgid "Move down" msgstr "క్రిందకు జరుపు" -#: js/pitchslider.js:136 +#: js/widgets/pitchslider.js:136 msgid "Click on the slider to create a note block." msgstr "నోట్ బ్లాక్ సృష్టించడానికి స్లైడర్ మీద క్లిక్ చేయండి." -#: js/temperament.js:215 +#: js/widgets/pitchstaircase.js:624 +msgid "Play chord" +msgstr "ఛార్డ్ ప్లే చేయండి" + +#: js/widgets/pitchstaircase.js:632 +msgid "Play scale" +msgstr "స్కేల్ ప్లే చేయండి" + +#: js/widgets/pitchstaircase.js:696 +msgid "Click on a note to create a new step." +msgstr "నోట్లపై క్లిక్ చేయడానికి కొత్త స్టెప్ సృష్టించండి." + +#: js/widgets/temperament.js:321 msgid "back to 2:1 octave space" msgstr "2:1 ఆక్టేవ్ స్పేస్‌కు తిరిగి వెళ్ళ" -#: js/temperament.js:323 +#: js/widgets/temperament.js:447 msgid "edit" msgstr "సవరించు" -#: js/temperament.js:330 -#: js/temperament.js:332 -#: js/temperament.js:1336 -#: js/temperament.js:1338 +#: js/widgets/temperament.js:454 +#: js/widgets/temperament.js:456 +#: js/widgets/temperament.js:1493 +#: js/widgets/temperament.js:1495 msgid "close" msgstr "మూస" -#: js/temperament.js:423 -#: js/temperament.js:736 -#: js/temperament.js:743 -#: js/temperament.js:845 -#: js/temperament.js:935 -#: js/temperament.js:942 -#: js/temperament.js:1015 -#: js/temperament.js:1284 -#: js/temperament.js:1354 -#: js/temperament.js:1430 +#: js/widgets/temperament.js:552 +#: js/widgets/temperament.js:877 +#: js/widgets/temperament.js:884 +#: js/widgets/temperament.js:986 +#: js/widgets/temperament.js:1080 +#: js/widgets/temperament.js:1087 +#: js/widgets/temperament.js:1160 +#: js/widgets/temperament.js:1433 +#: js/widgets/temperament.js:1511 +#: js/widgets/temperament.js:1596 msgid "done" msgstr "పూర్తి" -#: js/temperament.js:477 -#: js/temperament.js:482 -#: js/temperament.js:918 +#: js/widgets/temperament.js:610 +#: js/widgets/temperament.js:615 +#: js/widgets/temperament.js:1063 msgid "ratio" msgstr "అనుపాతం" -#: js/temperament.js:483 +#: js/widgets/temperament.js:616 msgid "interval" msgstr "అంతరంవర్తన" -#: js/temperament.js:611 +#: js/widgets/temperament.js:744 msgid "non scalar" msgstr "అనుమానాత్మక" -#: js/temperament.js:650 +#: js/widgets/temperament.js:787 msgid "ratios" msgstr "అనుపాతాలు" -#: js/temperament.js:650 +#: js/widgets/temperament.js:787 msgid "arbitrary" msgstr "కార్యాచారం" -#: js/temperament.js:719 +#: js/widgets/temperament.js:860 msgid "number of divisions" msgstr "విభజనల సంఖ్య" -#: js/temperament.js:741 -#: js/temperament.js:858 -#: js/temperament.js:940 -#: js/temperament.js:1033 +#: js/widgets/temperament.js:882 +#: js/widgets/temperament.js:999 +#: js/widgets/temperament.js:1085 +#: js/widgets/temperament.js:1178 msgid "preview" msgstr "ప్రొవియూ" -#: js/temperament.js:788 +#: js/widgets/temperament.js:929 msgid "The Number of divisions is too large." msgstr "" -#: js/temperament.js:921 +#: js/widgets/temperament.js:1066 msgid "recursion" msgstr "పునరావృత్తి" -#: js/temperament.js:1450 +#: js/widgets/temperament.js:1616 msgid "The octave ratio has changed. This changes temperament significantly." msgstr "ఆక్టేవ్ అనుపాతం మారింది. ఇది సారాంశంగా మారిపోతుంది." -#: js/temperament.js:2087 +#: js/widgets/temperament.js:2248 msgid "Table" msgstr "టేబుల్" -#: js/temperament.js:2185 +#: js/widgets/temperament.js:2356 msgid "Add pitches" msgstr "పిచ్లు చేర్చండి" -#: js/musickeyboard.js:570 -msgid "Metronome" -msgstr "మెట్రానోమ్" - -#: js/musickeyboard.js:1296 -#: plugins/rodi.rtp:193 -msgid "duration" -msgstr "అవధి" - -#: js/musickeyboard.js:2840 -msgid "New action blocks generated!" -msgstr "" - -#: js/musickeyboard.js:2841 -msgid "New action block generated" -msgstr "" - -#: js/musickeyboard.js:2984 -#: js/musickeyboard.js:2992 -msgid "MIDI device present." -msgstr "MIDI పరికరం ఉంది." - -#: js/musickeyboard.js:2995 -msgid "No MIDI device found." -msgstr "MIDI పరికరం కనబడలేదు." - -#: js/musickeyboard.js:3000 -msgid "Failed to get MIDI access in browser." -msgstr "బ్రౌజర్లో MIDI ప్రాప్తి చేయడం విఫలమైంది." - -#: js/rhythmruler.js:202 -msgid "Save rhythms" -msgstr "రిదయాలను భద్రపరచండి" - -#: js/rhythmruler.js:222 -msgid "Save drum machine" -msgstr "డ్రమ్ యంత్రాన్ని భద్రపరచండి" - -#: js/rhythmruler.js:263 -#.TRANS: user can tap out a rhythm by clicking on a ruler. -msgid "Tap a rhythm" -msgstr "రిదయాను గొట్టండి" - -#: js/rhythmruler.js:342 -#: js/rhythmruler.js:344 -#: js/rhythmruler.js:1481 -#: js/rhythmruler.js:1483 -#: js/sampler.js:110 -#: js/sampler.js:112 -#: js/tempo.js:78 -#: js/tempo.js:97 -#: js/tempo.js:99 +#: js/widgets/tempo.js:78 +#: js/widgets/tempo.js:97 +#: js/widgets/tempo.js:99 +#: js/widgets/aiwidget.js:134 +#: js/widgets/aiwidget.js:136 +#: js/widgets/rhythmruler.js:681 +#: js/widgets/rhythmruler.js:683 +#: js/widgets/rhythmruler.js:1864 +#: js/widgets/rhythmruler.js:1866 +#: js/widgets/sampler.js:180 +#: js/widgets/sampler.js:182 msgid "Pause" msgstr "విరామం" -#: js/rhythmruler.js:478 -msgid "Click on the ruler to divide it." -msgstr "అదను విభజించడానికి రిడర్ని క్లిక్ చేయండి." - -#: js/rhythmruler.js:603 -#: js/rhythmruler.js:605 -#: js/rhythmruler.js:804 -#: js/rhythmruler.js:806 -#: js/rhythmruler.js:1386 -#: js/rhythmruler.js:1388 -msgid "tap a rhythm" -msgstr "రిదయాను గొట్టండి" - -#: js/rhythmruler.js:1084 -msgid "Maximum value of 256 has been exceeded." -msgstr "256 యొక్క అత్యధిక విలువ మీరింది." - -#: js/sampler.js:137 -msgid "Warning: Sample is bigger than 1MB." -msgstr "హెచ్చరిక: సాంపిల్ 1MB కంటే ఎక్కువది." - -#: js/sampler.js:142 -msgid "Upload failed: Sample is not a .wav file." -msgstr "అప్‌లోడ్ విఫలమైంది: సాంపిల్ .wav ఫైల్ కాదు." - -#: js/sampler.js:164 -msgid "A new sample block was generated." -msgstr "కొత్త సాంపిల్ బ్లాక్ ఉత్పన్నం చేయబడింది." - -#: js/sampler.js:255 -msgid "Upload sample" -msgstr "సాంపిల్ అప్‌లోడ్" - -#: js/sampler.js:306 -msgid "Save sample" -msgstr "సాంపిల్ భద్రపరచండి" - -#: js/sampler.js:697 -#.TRANS: The reference tone is a sound used for comparison. -msgid "reference tone" -msgstr "రెఫరెన్స్ టోన్" - -#: js/tempo.js:113 +#: js/widgets/tempo.js:113 msgid "Save tempo" msgstr "టెంపో భద్రపరచండి" -#: js/tempo.js:144 +#: js/widgets/tempo.js:144 msgid "speed up" msgstr "వేగం పెరగండి" -#: js/tempo.js:150 +#: js/widgets/tempo.js:150 msgid "slow down" msgstr "నిధానంగా చేయండి" -#: js/tempo.js:194 +#: js/widgets/tempo.js:194 msgid "Adjust the tempo with the buttons." msgstr "బటన్లు ఉపయోగించి టెంపోను సరిచేయండి." -#: js/tempo.js:261 +#: js/widgets/tempo.js:261 msgid "Please enter a number between 30 and 1000" msgstr "" -#: js/tempo.js:268 -#: js/tempo.js:271 +#: js/widgets/tempo.js:268 +#: js/widgets/tempo.js:271 msgid "The beats per minute must be between 30 and 1000." msgstr "ప్రతి నిమిషాలకు ధ్రువాంకాలు 30 నుండి 1000 మధ్యలో ఉండాలి." -#: js/tempo.js:287 +#: js/widgets/tempo.js:287 msgid "The beats per minute must be below 1000." msgstr "ప్రతి నిమిషాలకు ధ్రువాంకాలు 1000 కంటే కిందిగా ఉండాలి." -#: js/tempo.js:303 +#: js/widgets/tempo.js:303 msgid "The beats per minute must be above 30" msgstr "ప్రతి నిమిషాలకు ధ్రువాంకాలు 30 కంటే పాకా ఉండాలి" -#: js/timbre.js:766 +#: js/widgets/timbre.js:766 msgid "Synthesizer" msgstr "సింథిసైజర్" -#: js/timbre.js:789 +#: js/widgets/timbre.js:789 msgid "Oscillator" msgstr "ఆస్కిలేటర్" -#: js/timbre.js:840 +#: js/widgets/timbre.js:840 msgid "Envelope" msgstr "ఎన్వలప్" -#: js/timbre.js:886 -#: js/GlobalTag.js:50 +#: js/widgets/timbre.js:886 +#: planet/js/GlobalTag.js:50 #.TRANS: On the Planet, we use labels to tag projects. msgid "Effects" msgstr "ప్రభావాలు" -#: js/timbre.js:904 +#: js/widgets/timbre.js:904 msgid "Filter" msgstr "ఫిల్టర్" -#: js/timbre.js:946 +#: js/widgets/timbre.js:946 msgid "Add filter" msgstr "ఫిల్టర్ జోడించండి" -#: js/timbre.js:987 +#: js/widgets/timbre.js:987 msgid "Click on buttons to open the timbre design tools." msgstr "టింబ్రె డిజైన్ సాధనాలను తెరవడానికి బటన్‌లలో నొక్కండి." -#: js/timbre.js:1273 +#: js/widgets/timbre.js:1273 msgid "harmonicity" msgstr "హార్మనిసిటీ" -#: js/timbre.js:1340 -#: js/timbre.js:1406 +#: js/widgets/timbre.js:1340 +#: js/widgets/timbre.js:1406 msgid "modulation index" msgstr "మాడ్యూలేషన్ సూచి" -#: js/timbre.js:1484 +#: js/widgets/timbre.js:1484 msgid "vibrato amount" msgstr "విబ్రాటో మొత్తం" -#: js/timbre.js:1919 +#: js/widgets/timbre.js:1919 msgid "Filter already present." msgstr "ఫిల్టర్ ఇప్పటికే ఉంది." -#: js/timbre.js:2322 +#: js/widgets/timbre.js:2322 msgid "delay (MS)" msgstr "దిగుమతి (MS)" -#: js/timbre.js:2507 +#: js/widgets/timbre.js:2507 msgid "distortion amount" msgstr "విరుప్తి మొత్తం" -#: js/meterwidget.js:170 -msgid "Reset" -msgstr "రీసెట్" +#: js/widgets/aiwidget.js:180 +#: js/widgets/sampler.js:227 +msgid "Warning: Sample is bigger than 1MB." +msgstr "హెచ్చరిక: సాంపిల్ 1MB కంటే ఎక్కువది." -#: js/meterwidget.js:196 -msgid "Click in the circle to select strong beats for the meter." -msgstr "మీటర్కు బలంగా పడే టక్కరిని ఎంచుకోవడానికి వైరాచించండి." +#: js/widgets/aiwidget.js:539 +msgid "New start block generated" +msgstr "" + +#: js/widgets/aiwidget.js:541 +msgid "MIDI loading. This may take some time depending upon the number of notes in the track" +msgstr "" + +#: js/widgets/aiwidget.js:551 +#: js/widgets/sampler.js:254 +msgid "Upload failed: Sample is not a .wav file." +msgstr "అప్‌లోడ్ విఫలమైంది: సాంపిల్ .wav ఫైల్ కాదు." -#: js/arpeggio.js:239 +#: js/widgets/aiwidget.js:679 +#: js/widgets/sampler.js:432 +msgid "Save sample" +msgstr "సాంపిల్ భద్రపరచండి" + +#: js/widgets/aiwidget.js:701 +msgid "AI Music" +msgstr "" + +#: js/widgets/arpeggio.js:239 msgid "Click in the grid to add steps to the arpeggio." msgstr "ఆర్పెజియోకు చివరిని జోడించడానికి గ్రిడ్‌లో నొక్కండి." -#: js/ProjectStorage.js:243 -msgid "anonymous" -msgstr "అనామస్" +#: js/widgets/help.js:95 +#: js/widgets/help.js:125 +#: js/widgets/help.js:146 +#: js/widgets/help.js:158 +#: js/widgets/help.js:376 +#: js/widgets/help.js:391 +msgid "Take a tour" +msgstr "ఒక పర్యాటన తీసుకోండి" + +#: js/widgets/musickeyboard.js:725 +#: js/widgets/phrasemaker.js:584 +msgid "Add note" +msgstr "గానా జోడించండి" -#: js/GlobalCard.js:68 -msgid "Share" -msgstr "షేర్" +#: js/widgets/musickeyboard.js:744 +msgid "Metronome" +msgstr "మెట్రానోమ్" -#: js/GlobalCard.js:74 -msgid "Flags" -msgstr "ధ్వజాలు" +#: js/widgets/musickeyboard.js:1549 +#: plugins/rodi.rtp:193 +msgid "duration" +msgstr "అవధి" -#: js/LocalCard.js:36 -msgid "View published project" -msgstr "ప్రచురించబడిన ప్రాజెక్ట్‌ను వీక్షించండి" +#: js/widgets/musickeyboard.js:3179 +msgid "New action blocks generated" +msgstr "" -#: js/LocalCard.js:42 -msgid "Publish project" -msgstr "ప్రాజెక్ట్‌ను ప్రచురించండి" +#: js/widgets/musickeyboard.js:3180 +msgid "New action block generated" +msgstr "" -#: js/LocalCard.js:51 -msgid "Edit project" -msgstr "ప్రాజెక్ట్‌ను సవరించండి" +#: js/widgets/musickeyboard.js:3365 +#: js/widgets/musickeyboard.js:3373 +msgid "MIDI device present." +msgstr "MIDI పరికరం ఉంది." -#: js/LocalCard.js:52 -msgid "Delete project" -msgstr "ప్రాజెక్ట్‌ను తొలగించండి" +#: js/widgets/musickeyboard.js:3376 +msgid "No MIDI device found." +msgstr "MIDI పరికరం కనబడలేదు." + +#: js/widgets/musickeyboard.js:3386 +msgid "Failed to get MIDI access in browser." +msgstr "బ్రౌజర్లో MIDI ప్రాప్తి చేయడం విఫలమైంది." + +#: js/widgets/phrasemaker.js:574 +msgid "Export" +msgstr "ఎగుమతి" + +#: js/widgets/phrasemaker.js:581 +msgid "Sort" +msgstr "వర్గీకరించండి" + +#: js/widgets/phrasemaker.js:975 +msgid "Click on the table to add notes." +msgstr "గానాలను జోడించడానికి టేబుల్లో క్లిక్ చేయండి." + +#: js/widgets/phrasemaker.js:2677 +#: js/widgets/phrasemaker.js:2819 +msgid "tuplet value" +msgstr "ట్యూప్లెట్ విలువ" + +#: js/widgets/rhythmruler.js:486 +msgid "Save rhythms" +msgstr "రిదయాలను భద్రపరచండి" + +#: js/widgets/rhythmruler.js:512 +msgid "Save drum machine" +msgstr "డ్రమ్ యంత్రాన్ని భద్రపరచండి" + +#: js/widgets/rhythmruler.js:589 +#.TRANS: user can tap out a rhythm by clicking on a ruler. +msgid "Tap a rhythm" +msgstr "రిదయాను గొట్టండి" + +#: js/widgets/rhythmruler.js:817 +msgid "Click on the ruler to divide it." +msgstr "అదను విభజించడానికి రిడర్ని క్లిక్ చేయండి." + +#: js/widgets/rhythmruler.js:950 +#: js/widgets/rhythmruler.js:952 +#: js/widgets/rhythmruler.js:1152 +#: js/widgets/rhythmruler.js:1154 +#: js/widgets/rhythmruler.js:1765 +#: js/widgets/rhythmruler.js:1767 +msgid "tap a rhythm" +msgstr "రిదయాను గొట్టండి" + +#: js/widgets/rhythmruler.js:1459 +msgid "Maximum value of 256 has been exceeded." +msgstr "256 యొక్క అత్యధిక విలువ మీరింది." + +#: js/widgets/sampler.js:237 +msgid "Recording started..." +msgstr "" + +#: js/widgets/sampler.js:245 +msgid "Recording complete..." +msgstr "" + +#: js/widgets/sampler.js:283 +msgid "A new sample block was generated." +msgstr "కొత్త సాంపిల్ బ్లాక్ ఉత్పన్నం చేయబడింది." + +#: js/widgets/sampler.js:378 +msgid "Upload sample" +msgstr "సాంపిల్ అప్‌లోడ్" + +#: js/widgets/sampler.js:399 +msgid "Warning: Your sample cannot be loaded because it is >1MB." +msgstr "" + +#: js/widgets/sampler.js:448 +msgid "Toggle Mic" +msgstr "" -#: js/LocalCard.js:53 -msgid "Download project" -msgstr "ప్రాజెక్ట్‌ను డౌన్‌లోడ్ చేయండి" +#: js/widgets/sampler.js:458 +msgid "Playback" +msgstr "" -#: js/LocalCard.js:55 -msgid "Duplicate project" -msgstr "ప్రాజెక్ట్‌ను నకలు చేయండి" +#: js/widgets/sampler.js:979 +#.TRANS: The reference tone is a sound used for comparison. +msgid "reference tone" +msgstr "రెఫరెన్స్ టోన్" -#: js/GlobalTag.js:28 +#: planet/js/GlobalTag.js:28 #.TRANS: On the Planet, we use labels to tag projects. msgid "All Projects" msgstr "అన్ని ప్రాజెక్టులు" -#: js/GlobalTag.js:30 -#: js/StringHelper.js:37 +#: planet/js/GlobalTag.js:30 +#: planet/js/StringHelper.js:37 #.TRANS: On the Planet, we use labels to tag projects. msgid "My Projects" msgstr "నా ప్రాజెక్టులు" -#: js/GlobalTag.js:32 +#: planet/js/GlobalTag.js:32 #.TRANS: On the Planet, we use labels to tag projects. msgid "Examples" msgstr "ఉదాహరణలు" -#: js/GlobalTag.js:34 +#: planet/js/GlobalTag.js:34 #.TRANS: On the Planet, we use labels to tag projects. msgid "Music" msgstr "సంగీతం" -#: js/GlobalTag.js:36 +#: planet/js/GlobalTag.js:36 #.TRANS: On the Planet, we use labels to tag projects. msgid "Art" msgstr "కళా" -#: js/GlobalTag.js:38 +#: planet/js/GlobalTag.js:38 #.TRANS: On the Planet, we use labels to tag projects. msgid "Math" msgstr "గణితం" -#: js/GlobalTag.js:40 +#: planet/js/GlobalTag.js:40 #.TRANS: On the Planet, we use labels to tag projects. msgid "Interactive" msgstr "ఇంటరాక్టివ్" -#: js/GlobalTag.js:42 +#: planet/js/GlobalTag.js:42 #.TRANS: On the Planet, we use labels to tag projects. msgid "Design" msgstr "డిజైన్" -#: js/GlobalTag.js:44 +#: planet/js/GlobalTag.js:44 #.TRANS: On the Planet, we use labels to tag projects. msgid "Game" msgstr "ఆట" -#: js/GlobalTag.js:46 +#: planet/js/GlobalTag.js:46 #.TRANS: On the Planet, we use labels to tag projects. msgid "Media" msgstr "మీడియా" -#: js/GlobalTag.js:48 +#: planet/js/GlobalTag.js:48 #.TRANS: On the Planet, we use labels to tag projects. msgid "Sensors" msgstr "సెన్సార్లు" -#: js/GlobalTag.js:52 +#: planet/js/GlobalTag.js:52 #.TRANS: On the Planet, we use labels to tag projects. msgid "Code Snippet" msgstr "కోడ్ స్నిపెట్" -#: js/helper.js:149 -#: js/StringHelper.js:49 -msgid "Show more tags" -msgstr "ఇంకా ట్యాగ్‌లను చూపించండి" +#: planet/js/LocalCard.js:36 +msgid "View published project" +msgstr "ప్రచురించబడిన ప్రాజెక్ట్‌ను వీక్షించండి" -#: js/helper.js:150 -msgid "Show fewer tags" -msgstr "తక్కువ ట్యాగ్‌లను చూపించండి" +#: planet/js/LocalCard.js:42 +msgid "Publish project" +msgstr "ప్రాజెక్ట్‌ను ప్రచురించండి" + +#: planet/js/LocalCard.js:51 +msgid "Edit project" +msgstr "ప్రాజెక్ట్‌ను సవరించండి" + +#: planet/js/LocalCard.js:52 +msgid "Delete project" +msgstr "ప్రాజెక్ట్‌ను తొలగించండి" + +#: planet/js/LocalCard.js:53 +msgid "Download project" +msgstr "ప్రాజెక్ట్‌ను డౌన్‌లోడ్ చేయండి" + +#: planet/js/LocalCard.js:55 +msgid "Duplicate project" +msgstr "ప్రాజెక్ట్‌ను నకలు చేయండి" + +#: planet/js/ProjectStorage.js:243 +msgid "anonymous" +msgstr "అనామస్" -#: js/ProjectViewer.js:30 +#: planet/js/SaveInterface.js:34 +msgid "Open in Music Blocks" +msgstr "సంగీత బ్లాక్స్‌లో తెరవండి" + +#: planet/js/SaveInterface.js:35 +msgid "Open in Turtle Blocks" +msgstr "టర్టిల్ బ్లాక్స్‌లో తెరువు చేయండి" + +#: planet/js/GlobalCard.js:68 +msgid "Share" +msgstr "షేర్" + +#: planet/js/GlobalCard.js:74 +msgid "Flags" +msgstr "ధ్వజాలు" + +#: planet/js/GlobalPlanet.js:35 +msgid "No results found." +msgstr "ఫలితాలు కనిపించలేదు" + +#: planet/js/GlobalPlanet.js:51 +msgid "Remix of" +msgstr "రీమిక్స్ చేసినది" + +#: planet/js/GlobalPlanet.js:509 +msgid "Cannot connect to server" +msgstr "సర్వర్‌కు కనెక్ట్ అవ్వడం అసాధ్యం" + +#: planet/js/ProjectViewer.js:30 msgid "Error: Report could not be submitted. Try again later." msgstr "పొరపాటు: నివేదన చేయలేదు. తర్వాత ప్రయత్నించండి." -#: js/ProjectViewer.js:31 +#: planet/js/ProjectViewer.js:31 msgid "Thank you for reporting this project. A moderator will review the project shortly, to verify violation of the Sugar Labs Code of Conduct." msgstr "ఈ ప్రాజెక్ట్‌ను నివేదించడానికి ధన్యవాదాలు. ఈ ప్రాజెక్ట్‌ను Sugar Labs కోడ్ ఆఫ్ కండక్ట్ లోపాలను ఖచితం చేయడానికి కార్యదర్శకుడు శీఘ్రం పరిశీలిస్తారు." -#: js/ProjectViewer.js:32 -#: js/StringHelper.js:62 -#: js/StringHelper.js:64 -#: js/StringHelper.js:68 +#: planet/js/ProjectViewer.js:32 +#: planet/js/StringHelper.js:62 +#: planet/js/StringHelper.js:64 +#: planet/js/StringHelper.js:68 msgid "Report Project" msgstr "ప్రాజెక్ట్‌ను నివేదించు" -#: js/ProjectViewer.js:33 -#: js/StringHelper.js:63 +#: planet/js/ProjectViewer.js:33 +#: planet/js/StringHelper.js:63 msgid "Project Reported" msgstr "ప్రాజెక్ట్ నివేదించబడింది" -#: js/ProjectViewer.js:34 +#: planet/js/ProjectViewer.js:34 msgid "Report description required" msgstr "నివేదన వివరాలు అవసరం" -#: js/ProjectViewer.js:35 +#: planet/js/ProjectViewer.js:35 msgid "Report description too long" msgstr "నివేదన వివరాలు అతిపెద్దవి" -#: js/StringHelper.js:30 +#: planet/js/Publisher.js:30 +msgid "Feature unavailable - cannot connect to server. Reload Music Blocks to try again." +msgstr "విశేషము - సర్వర్‌కు కనెక్ట్ అవ్వడం అసాధ్యం. మ్యూజిక్ బ్లాక్స్‌ను మళ్ళీ రిలోడ్ చేయండి." + +#: planet/js/Publisher.js:220 +#: planet/js/Publisher.js:237 +msgid "This field is required" +msgstr "ఈ క్షేత్రం అవసానమైనది" + +#: planet/js/Publisher.js:227 +msgid "Title too long" +msgstr "టైటిల్ అతికాలం" + +#: planet/js/Publisher.js:244 +msgid "Description too long" +msgstr "వివరణ అతికాలం" + +#: planet/js/Publisher.js:341 +msgid "Server Error" +msgstr "సర్వర్ లోపం" + +#: planet/js/Publisher.js:341 +msgid "Try Again" +msgstr "ప్రయాసం చేయండి" + +#: planet/js/StringHelper.js:30 msgid "Planet" msgstr "ప్లానెట్" -#: js/StringHelper.js:31 +#: planet/js/StringHelper.js:31 msgid "Close Planet" msgstr "ప్లానెట్‌ను మూయండి" -#: js/StringHelper.js:32 +#: planet/js/StringHelper.js:32 msgid "Open project from file" msgstr "ఫైలు నుండి ప్రాజెక్ట్ తెరవండం" -#: js/StringHelper.js:34 +#: planet/js/StringHelper.js:34 msgid "Local" msgstr "స్థానిక" -#: js/StringHelper.js:35 +#: planet/js/StringHelper.js:35 msgid "Global" msgstr "గ్లోబల్" -#: js/StringHelper.js:36 +#: planet/js/StringHelper.js:36 msgid "Search for a project" msgstr "ఒక ప్రాజెక్ట్ కోసం శోధించండి" -#: js/StringHelper.js:38 +#: planet/js/StringHelper.js:38 msgid "Publish Project" msgstr "ప్రచురించు ప్రాజెక్ట్" -#: js/StringHelper.js:40 +#: planet/js/StringHelper.js:40 msgid "Tags (max 5)" msgstr "ట్యాగ్‌లు (గరిష్టం 5)" -#: js/StringHelper.js:41 -#: js/StringHelper.js:61 +#: planet/js/StringHelper.js:41 +#: planet/js/StringHelper.js:61 msgid "Description" msgstr "వివరణ" -#: js/StringHelper.js:42 -#: js/StringHelper.js:67 +#: planet/js/StringHelper.js:42 +#: planet/js/StringHelper.js:67 msgid "Submit" msgstr "సమర్పించు" -#: js/StringHelper.js:43 -#: js/StringHelper.js:47 +#: planet/js/StringHelper.js:43 +#: planet/js/StringHelper.js:47 msgid "Cancel" msgstr "రద్దు చేయి" -#: js/StringHelper.js:44 +#: planet/js/StringHelper.js:44 msgid "Delete \\"\\"?" msgstr "తొలగించు \\"\\"?" -#: js/StringHelper.js:45 +#: planet/js/StringHelper.js:45 msgid "Permanently delete project \\"\\"?" msgstr "ప్రాజెక్ట్ \\"\\" స్థాయిలో తొలగించాలా?" -#: js/StringHelper.js:48 +#: planet/js/StringHelper.js:48 msgid "Explore Projects" msgstr "ప్రాజెక్టులను అన్వేషించండి" -#: js/StringHelper.js:50 +#: planet/js/StringHelper.js:49 +#: planet/js/helper.js:149 +msgid "Show more tags" +msgstr "ఇంకా ట్యాగ్‌లను చూపించండి" + +#: planet/js/StringHelper.js:50 msgid "Most recent" msgstr "చాలా ఇటము" -#: js/StringHelper.js:51 +#: planet/js/StringHelper.js:51 msgid "Most liked" msgstr "అంగడాలు చాలా చేసినవి" -#: js/StringHelper.js:52 +#: planet/js/StringHelper.js:52 msgid "Most downloaded" msgstr "అక్షరాల వరకు" -#: js/StringHelper.js:53 +#: planet/js/StringHelper.js:53 msgid "A-Z" msgstr "వర్గీకరణ" -#: js/StringHelper.js:54 +#: planet/js/StringHelper.js:54 msgid "Sort by" msgstr "మరియు" -#: js/StringHelper.js:55 +#: planet/js/StringHelper.js:55 msgid "Load More Projects" msgstr "ప్రాజెక్టులను మరింత లోడ్ చేయండి" -#: js/StringHelper.js:56 +#: planet/js/StringHelper.js:56 msgid "Last Updated" msgstr "చాలా ఇటము" -#: js/StringHelper.js:57 +#: planet/js/StringHelper.js:57 msgid "Creation Date" msgstr "సృష్టించబడిన తేదీ" -#: js/StringHelper.js:58 +#: planet/js/StringHelper.js:58 msgid "Number of Downloads:" msgstr "డౌన్లోడ్ సంఖ్య:" -#: js/StringHelper.js:59 +#: planet/js/StringHelper.js:59 msgid "Number of Likes:" msgstr "లైక్స్ సంఖ్య:" -#: js/StringHelper.js:60 +#: planet/js/StringHelper.js:60 msgid "Tags:" msgstr "ట్యాగ్‌లు:" -#: js/StringHelper.js:65 +#: planet/js/StringHelper.js:65 msgid "Report projects which violate the Sugar Labs Code of Conduct." msgstr "ప్రోజెక్టులను అనుసరించిన షుగార్ లాబ్స్ కోడ్ ఆఫ్ కండక్ట్ ను ఉల్లంఘించండి." -#: js/StringHelper.js:66 +#: planet/js/StringHelper.js:66 msgid "Reason for reporting project" msgstr "ప్రాజెక్టును నివేదించడానికి కారణము" -#: js/StringHelper.js:70 +#: planet/js/StringHelper.js:70 msgid "Download as File" msgstr "ఫైల్‌గా డౌన్‌లోడ్ చేయండి" -#: js/GlobalPlanet.js:35 -msgid "No results found." -msgstr "ఫలితాలు కనిపించలేదు" - -#: js/GlobalPlanet.js:51 -msgid "Remix of" -msgstr "రీమిక్స్ చేసినది" - -#: js/GlobalPlanet.js:509 -msgid "Cannot connect to server" -msgstr "సర్వర్‌కు కనెక్ట్ అవ్వడం అసాధ్యం" - -#: js/Publisher.js:30 -msgid "Feature unavailable - cannot connect to server. Reload Music Blocks to try again." -msgstr "విశేషము - సర్వర్‌కు కనెక్ట్ అవ్వడం అసాధ్యం. మ్యూజిక్ బ్లాక్స్‌ను మళ్ళీ రిలోడ్ చేయండి." - -#: js/Publisher.js:218 -#: js/Publisher.js:235 -msgid "This field is required" -msgstr "ఈ క్షేత్రం అవసానమైనది" - -#: js/Publisher.js:225 -msgid "Title too long" -msgstr "టైటిల్ అతికాలం" +#: planet/js/helper.js:150 +msgid "Show fewer tags" +msgstr "తక్కువ ట్యాగ్‌లను చూపించండి" -#: js/Publisher.js:242 -msgid "Description too long" -msgstr "వివరణ అతికాలం" +#: plugins/accelerometer.rtp:48 +msgid "motion x" +msgstr "అంతర్గతి x" -#: js/Publisher.js:339 -msgid "Server Error" -msgstr "సర్వర్ లోపం" +#: plugins/accelerometer.rtp:56 +msgid "motion y" +msgstr "అంతర్గతి y" -#: js/Publisher.js:339 -msgid "Try Again" -msgstr "ప్రయాసం చేయండి" +#: plugins/accelerometer.rtp:64 +msgid "motion z" +msgstr "అంతర్గతి z" -#: js/SaveInterface.js:34 -msgid "Open in Music Blocks" -msgstr "సంగీత బ్లాక్స్‌లో తెరవండి" +#: plugins/facebook.rtp:27 +msgid "publish" +msgstr "ప్రచురించండి" -#: js/SaveInterface.js:35 -msgid "Open in Turtle Blocks" -msgstr "టర్టిల్ బ్లాక్స్‌లో తెరువు చేయండి" +#: plugins/maths.rtp:62 +msgid "power" +msgstr "శక్తి" -#: plugins/weather.rtp:68 -#: plugins/weather.rtp:97 -msgid "Days ahead must be in the range of -1 to 5." -msgstr "రోజులు ముందుగా -1 నుండి 5 లలో ఉండాలి." +#: plugins/maths.rtp:62 +msgid "base" +msgstr "ఆధారం" -#: plugins/weather.rtp:122 -msgid "forecast" -msgstr "అంగడి" +#: plugins/maths.rtp:62 +msgid "exp" +msgstr "ఎక్స్పొనెంషన్" -#: plugins/weather.rtp:123 -#: plugins/weather.rtp:137 -#: plugins/weather.rtp:150 -msgid "city" -msgstr "నగరం" +#: plugins/maths.rtp:99 +msgid "floor" +msgstr "ఫ్లోర్" -#: plugins/weather.rtp:124 -#: plugins/weather.rtp:138 -#: plugins/weather.rtp:151 -msgid "day" -msgstr "రోజు" +#: plugins/maths.rtp:104 +msgid "ceiling" +msgstr "సీలింగ్" -#: plugins/weather.rtp:136 -msgid "high" -msgstr "అధిక" +#: plugins/maths.rtp:109 +msgid "to degrees" +msgstr "డిగ్రీలకు" -#: plugins/weather.rtp:149 -msgid "low" -msgstr "కనిష్ఠ" +#: plugins/maths.rtp:114 +msgid "to radians" +msgstr "రేడియన్లకు" #: plugins/nutrition.rtp:104 msgid "get calories" @@ -9465,45 +7753,6 @@ msgstr "కుకీ" msgid "water" msgstr "నీటి" -#: plugins/maths.rtp:62 -#: plugins/examples.rtp:93 -msgid "power" -msgstr "శక్తి" - -#: plugins/maths.rtp:62 -#: plugins/examples.rtp:93 -msgid "base" -msgstr "ఆధారం" - -#: plugins/maths.rtp:62 -#: plugins/examples.rtp:93 -msgid "exp" -msgstr "ఎక్స్పొనెంషన్" - -#: plugins/maths.rtp:99 -#: plugins/examples.rtp:130 -msgid "floor" -msgstr "ఫ్లోర్" - -#: plugins/maths.rtp:104 -#: plugins/examples.rtp:135 -msgid "ceiling" -msgstr "సీలింగ్" - -#: plugins/maths.rtp:109 -#: plugins/examples.rtp:140 -msgid "to degrees" -msgstr "డిగ్రీలకు" - -#: plugins/maths.rtp:114 -#: plugins/examples.rtp:145 -msgid "to radians" -msgstr "రేడియన్లకు" - -#: plugins/facebook.rtp:27 -msgid "publish" -msgstr "ప్రచురించండి" - #: plugins/rodi.rtp:172 msgid "blink" msgstr "బ్లింక్" @@ -9532,17 +7781,68 @@ msgstr "ఇన్ఫ్రారెడ్ లైట్ (కుడి)" msgid "move" msgstr "చలింపు" -#: plugins/accelerometer.rtp:48 -msgid "motion x" -msgstr "అంతర్గతి x" +#: plugins/weather.rtp:68 +#: plugins/weather.rtp:97 +msgid "Days ahead must be in the range of -1 to 5." +msgstr "రోజులు ముందుగా -1 నుండి 5 లలో ఉండాలి." -#: plugins/accelerometer.rtp:56 -msgid "motion y" -msgstr "అంతర్గతి y" +#: plugins/weather.rtp:122 +msgid "forecast" +msgstr "అంగడి" -#: plugins/accelerometer.rtp:64 -msgid "motion z" -msgstr "అంతర్గతి z" +#: plugins/weather.rtp:123 +#: plugins/weather.rtp:137 +#: plugins/weather.rtp:150 +msgid "city" +msgstr "నగరం" + +#: plugins/weather.rtp:124 +#: plugins/weather.rtp:138 +#: plugins/weather.rtp:151 +msgid "day" +msgstr "రోజు" + +#: plugins/weather.rtp:136 +msgid "high" +msgstr "అధిక" + +#: plugins/weather.rtp:149 +msgid "low" +msgstr "కనిష్ఠ" + +#~msgid ""Toggle Fullscreen" +#~msgstr ""పూర్తి పరిపూర్ణత మార్చు" + +#: js/toolbar.js:70 + +#: js/toolbar.js:130 + +#: js/toolbar.js:194 + +#: js/toolbar.js:249 + +#~msgid "Toggle JavaScript Editor" +#~msgstr "JavaScript ఎడిటర్‌ను టాగిల్ చేయండి" + +#: js/EnsembleBlocks.js:643 + +#~msgid "The Turrle pitch block returns the current pitch number being played by the specified turtle." +#~msgstr "" + +#: js/PitchActions.js:88 + +#~msgid "The Scalar Step Block must be used inside of a Note Block." +#~msgstr "స్కేలార్ స్టెప్ బ్లాక్ నోట్ బ్లాక్ లో ఉపయోగించాలి." + +#: js/PitchActions.js:107 + +#~msgid "The Scalar Step Block must be preceded by a Pitch Block." +#~msgstr "స్కేలార్ స్టెప్ బ్లాక్ పిచ్ బ్లాక్ ద్వారా ముందుకు వాడాలి." + +#: js/musickeyboard.js:2840 + +#~msgid "New action blocks generated!" +#~msgstr "" #: js/toolbar.js:110 @@ -9621,11 +7921,6 @@ msgstr "అంతర్గతి z" #~msgid "The Action block is used to group together blocks so that they can be used more than once." #~msgstr "యాక్షన్ బ్లాక్ బ్లాక్లను గుంపుగా పరిచయించడానికి ఉపయోగిస్తారు." -#: js/EnsembleBlocks.js:643 - -#~msgid "The Turtle pitch block returns the current pitch number being played by the specified turtle." -#~msgstr "నిర్దిష్టమైన టర్టిల్ కోసం ప్రస్తుత పిచ్ సంఖ్యను తరిస్తుంది." - #: js/BooleanBlocks.js:188 #~msgid "The Greater-than block returns True if the top number is greater than the bottom number." @@ -9947,11 +8242,6 @@ msgstr "అంతర్గతి z" #~msgid "The Time block returns the number of seconds that the program has been running." #~msgstr "టైమ్ బ్లాక్ ప్రోగ్రామ్ పరిస్థితిలో ఎక్కువ సమయాన్ని తెరిచిపెడతారు." -#: js/help.js:95 - -#~msgid "Take a tour" -#~msgstr "ఒక పర్యాటన తీసుకోండి" - #: js/GlobalCard.js:48 #~msgid "More Details" diff --git a/po/th.po b/po/th.po index 8c7a9fc0be..8584c892ef 100644 --- a/po/th.po +++ b/po/th.po @@ -15,2397 +15,131 @@ #js/toolbar.js:230 #js/turtledefs.js:504 #js/turtledefs.js:505 -msgid: "Toggle Fullscreen" -msgstr: "เติมหน้าจอเต็ม" - -#: js/activity.js:443 -#: js/activity.js:443 -#: js/activity.js:445 -#: js/activity.js:453 -#: js/activity.js:472 -#: js/activity.js:472 -#: js/activity.js:475 -#: js/block.js:632 -#: js/pitchdrummatrix.js:178 -#: js/musicutils.js:37 -#: js/block.js:531 -#: js/pitchdrummatrix.js:235 -#: js/musicutils.js:40 -#: js/block.js:532 -#: js/pitchdrummatrix.js:235 -#: js/musicutils.js:40 -#: js/block.js:534 -#: js/pitchdrummatrix.js:235 -#: js/musicutils.js:40 -#: js/block.js:534 -#: js/pitchdrummatrix.js:235 -#: js/musicutils.js:40 -#: js/block.js:534 -#: js/pitchdrummatrix.js:235 -#: js/musicutils.js:40 -#: js/block.js:535 -#: js/pitchdrummatrix.js:235 -#: js/musicutils.js:43 -#: js/block.js:535 -#: js/pitchdrummatrix.js:235 -#: js/musicutils.js:43 -#: js/block.js:535 -#: js/pitchdrummatrix.js:235 -#: js/musicutils.js:43 -#: js/block.js:535 -#: js/pitchdrummatrix.js:235 -#: js/musicutils.js:43 -#: js/block.js:535 -#: js/pitchdrummatrix.js:235 -#: js/musicutils.js:43 -#: js/block.js:535 -#: js/pitchdrummatrix.js:235 -#: js/musicutils.js:43 -#: js/block.js:535 -#: js/pitchdrummatrix.js:235 -#: js/musicutils.js:43 -#: js/block.js:535 -#: js/pitchdrummatrix.js:235 -#: js/musicutils.js:43 -#: js/block.js:535 -#: js/pitchdrummatrix.js:235 -#: js/musicutils.js:43 -#: js/block.js:535 -#: js/pitchdrummatrix.js:235 -#: js/musicutils.js:43 -#: js/block.js:535 -#: js/pitchdrummatrix.js:235 -#: js/musicutils.js:43 -#: js/block.js:535 -#: js/pitchdrummatrix.js:235 -#: js/musicutils.js:43 -#: js/block.js:535 -#: js/pitchdrummatrix.js:235 -#: js/musicutils.js:43 -#: js/synthutils.js:14 -#: js/block.js:535 -#: js/pitchdrummatrix.js:235 -#: js/musicutils.js:43 -#: js/block.js:535 -#: js/pitchdrummatrix.js:235 -#: js/musicutils.js:43 -#: js/block.js:535 -#: js/pitchdrummatrix.js:235 -#: js/musicutils.js:43 -#: js/block.js:535 -#: js/pitchdrummatrix.js:235 -#: js/musicutils.js:43 -#: js/block.js:535 -#: js/pitchdrummatrix.js:235 -#: js/musicutils.js:43 -#: js/block.js:535 -#: js/pitchdrummatrix.js:235 -#: js/musicutils.js:43 -#: js/block.js:535 -#: js/pitchdrummatrix.js:235 -#: js/musicutils.js:43 -#: js/block.js:535 -#: js/pitchdrummatrix.js:235 -#: js/musicutils.js:43 -#: js/block.js:535 -#: js/pitchdrummatrix.js:235 -#: js/musicutils.js:43 -#: js/block.js:535 -#: js/pitchdrummatrix.js:235 -#: js/musicutils.js:43 -#: js/block.js:535 -#: js/pitchdrummatrix.js:235 -#: js/musicutils.js:43 -#: js/block.js:536 -#: js/pitchdrummatrix.js:235 -#: js/musicutils.js:45 -#: js/block.js:536 -#: js/pitchdrummatrix.js:235 -#: js/musicutils.js:45 -#: js/block.js:551 -#: js/pitchdrummatrix.js:235 -#: js/musicutils.js:46 -#: js/block.js:551 -#: js/pitchdrummatrix.js:235 -#: js/musicutils.js:46 -#: js/block.js:565 -#: js/pitchdrummatrix.js:235 -#: js/musicutils.js:48 -#: js/musicutils.js:57 -#: js/block.js:565 -#: js/pitchdrummatrix.js:235 -#: js/musicutils.js:48 -#: js/musicutils.js:57 -#: js/block.js:565 -#: js/pitchdrummatrix.js:235 -#: js/musicutils.js:48 -#: js/musicutils.js:57 -#: js/block.js:567 -#: js/pitchdrummatrix.js:235 -#: js/musicutils.js:48 -#: js/musicutils.js:57 -#: js/block.js:720 -#: js/block.js:3892 -#: js/block.js:3901 -#: js/block.js:3912 -#: js/activity.js:2732 -#: js/analytics.js:475 -#: js/palette.js:676 -#: js/palette.js:685 -#: js/palette.js:694 -#: js/palette.js:703 -#: js/palette.js:1978 -#: js/palette.js:1989 -#: js/palette.js:2000 -#: js/palette.js:2011 -#: js/turtledefs.js:23 -#: js/basicblocks.js:1148 -#: js/basicblocks.js:1159 -#: js/basicblocks.js:2806 -#: js/basicblocks.js:2837 -#: js/basicblocks.js:2844 -#: js/basicblocks.js:2873 -#: js/basicblocks.js:2883 -#: js/basicblocks.js:2915 -#: js/basicblocks.js:2960 -#: js/basicblocks.js:2964 -#: js/basicblocks.js:2970 -#: js/macros.js:44 -#: js/blocks.js:784 -#: js/blocks.js:2385 -#: js/blocks.js:2386 -#: js/blocks.js:2578 -#: js/blocks.js:2784 -#: js/blocks.js:2940 -#: js/blocks.js:3503 -#: js/blocks.js:4308 -#: js/block.js:720 -#: js/block.js:3892 -#: js/block.js:3901 -#: js/block.js:3912 -#: js/activity.js:2732 -#: js/analytics.js:475 -#: js/palette.js:681 -#: js/palette.js:690 -#: js/palette.js:699 -#: js/palette.js:708 -#: js/palette.js:1983 -#: js/palette.js:1994 -#: js/palette.js:2005 -#: js/palette.js:2016 -#: js/turtledefs.js:23 -#: js/basicblocks.js:1148 -#: js/basicblocks.js:1159 -#: js/basicblocks.js:1170 -#: js/basicblocks.js:2817 -#: js/basicblocks.js:2848 -#: js/basicblocks.js:2855 -#: js/basicblocks.js:2884 -#: js/basicblocks.js:2894 -#: js/basicblocks.js:2926 -#: js/basicblocks.js:2971 -#: js/basicblocks.js:2975 -#: js/basicblocks.js:2981 -#: js/macros.js:44 -#: js/blocks.js:784 -#: js/blocks.js:2385 -#: js/blocks.js:2386 -#: js/blocks.js:2578 -#: js/blocks.js:2784 -#: js/blocks.js:2940 -#: js/blocks.js:3514 -#: js/blocks.js:4319 -#: js/block.js:720 -#: js/block.js:3892 -#: js/block.js:3901 -#: js/block.js:3912 -#: js/activity.js:2732 -#: js/analytics.js:475 -#: js/palette.js:681 -#: js/palette.js:690 -#: js/palette.js:699 -#: js/palette.js:708 -#: js/palette.js:1983 -#: js/palette.js:1994 -#: js/palette.js:2005 -#: js/palette.js:2016 -#: js/turtledefs.js:23 -#: js/basicblocks.js:1148 -#: js/basicblocks.js:1159 -#: js/basicblocks.js:1170 -#: js/basicblocks.js:2817 -#: js/basicblocks.js:2848 -#: js/basicblocks.js:2855 -#: js/basicblocks.js:2884 -#: js/basicblocks.js:2894 -#: js/basicblocks.js:2926 -#: js/basicblocks.js:2971 -#: js/basicblocks.js:2975 -#: js/basicblocks.js:2981 -#: js/macros.js:44 -#: js/blocks.js:784 -#: js/blocks.js:2385 -#: js/blocks.js:2386 -#: js/blocks.js:2578 -#: js/blocks.js:2784 -#: js/blocks.js:2940 -#: js/blocks.js:3514 -#: js/blocks.js:4319 -#: js/block.js:863 -#: js/block.js:4105 -#: js/block.js:4114 -#: js/block.js:4125 -#: js/activity.js:2934 -#: js/palette.js:734 -#: js/palette.js:745 -#: js/palette.js:754 -#: js/palette.js:763 -#: js/palette.js:2076 -#: js/palette.js:2088 -#: js/palette.js:2099 -#: js/palette.js:2110 -#: js/turtledefs.js:23 -#: js/basicblocks.js:1406 -#: js/basicblocks.js:1420 -#: js/basicblocks.js:1434 -#: js/basicblocks.js:3700 -#: js/basicblocks.js:3740 -#: js/basicblocks.js:3750 -#: js/basicblocks.js:3788 -#: js/basicblocks.js:3801 -#: js/basicblocks.js:3852 -#: js/basicblocks.js:3897 -#: js/basicblocks.js:3902 -#: js/basicblocks.js:3907 -#: js/rubrics.js:475 -#: js/macros.js:44 -#: js/blocks.js:863 -#: js/blocks.js:2466 -#: js/blocks.js:2467 -#: js/blocks.js:2659 -#: js/blocks.js:2865 -#: js/blocks.js:3021 -#: js/blocks.js:3661 -#: js/blocks.js:4458 -#: js/rhythmruler.js:1138 -#: js/rhythmruler.js:1140 -#: js/rhythmruler.js:1240 -#: js/rhythmruler.js:1242 -#: js/block.js:876 -#: js/block.js:4289 -#: js/block.js:4298 -#: js/block.js:4309 -#: js/activity.js:3042 -#: js/palette.js:750 -#: js/palette.js:759 -#: js/palette.js:768 -#: js/palette.js:777 -#: js/palette.js:2057 -#: js/palette.js:2068 -#: js/palette.js:2079 -#: js/palette.js:2090 -#: js/palette.js:2100 -#: js/turtledefs.js:23 -#: js/basicblocks.js:1407 -#: js/basicblocks.js:1421 -#: js/basicblocks.js:1435 -#: js/basicblocks.js:3720 -#: js/basicblocks.js:3760 -#: js/basicblocks.js:3770 -#: js/basicblocks.js:3808 -#: js/basicblocks.js:3821 -#: js/basicblocks.js:3862 -#: js/basicblocks.js:3917 -#: js/basicblocks.js:3922 -#: js/basicblocks.js:3927 -#: js/rubrics.js:476 -#: js/macros.js:44 -#: js/blocks.js:863 -#: js/blocks.js:2475 -#: js/blocks.js:2476 -#: js/blocks.js:2668 -#: js/blocks.js:2874 -#: js/blocks.js:3030 -#: js/blocks.js:3851 -#: js/blocks.js:4668 -#: js/rhythmruler.js:1149 -#: js/rhythmruler.js:1151 -#: js/rhythmruler.js:1251 -#: js/rhythmruler.js:1253 -#: js/block.js:923 -#: js/block.js:4637 -#: js/block.js:4646 -#: js/block.js:4657 -#: js/activity.js:3061 -#: js/palette.js:737 -#: js/palette.js:746 -#: js/palette.js:755 -#: js/palette.js:764 -#: js/palette.js:2043 -#: js/palette.js:2054 -#: js/palette.js:2065 -#: js/palette.js:2076 -#: js/palette.js:2086 -#: js/turtledefs.js:23 -#: js/basicblocks.js:1445 -#: js/basicblocks.js:1459 -#: js/basicblocks.js:1473 -#: js/basicblocks.js:3776 -#: js/basicblocks.js:3816 -#: js/basicblocks.js:3826 -#: js/basicblocks.js:3864 -#: js/basicblocks.js:3877 -#: js/basicblocks.js:3918 -#: js/basicblocks.js:3973 -#: js/basicblocks.js:3978 -#: js/basicblocks.js:3983 -#: js/rubrics.js:477 -#: js/macros.js:45 -#: js/blocks.js:816 -#: js/blocks.js:2432 -#: js/blocks.js:2433 -#: js/blocks.js:2625 -#: js/blocks.js:2869 -#: js/blocks.js:3025 -#: js/blocks.js:3866 -#: js/blocks.js:4705 -#: js/rhythmruler.js:1149 -#: js/rhythmruler.js:1151 -#: js/rhythmruler.js:1251 -#: js/rhythmruler.js:1253 -#: js/block.js:923 -#: js/block.js:4823 -#: js/block.js:4832 -#: js/block.js:4843 -#: js/activity.js:3079 -#: js/palette.js:737 -#: js/palette.js:746 -#: js/palette.js:755 -#: js/palette.js:764 -#: js/palette.js:2043 -#: js/palette.js:2054 -#: js/palette.js:2065 -#: js/palette.js:2076 -#: js/palette.js:2086 -#: js/turtledefs.js:23 -#: js/basicblocks.js:1441 -#: js/basicblocks.js:1455 -#: js/basicblocks.js:1469 -#: js/basicblocks.js:3762 -#: js/basicblocks.js:3802 -#: js/basicblocks.js:3812 -#: js/basicblocks.js:3850 -#: js/basicblocks.js:3863 -#: js/basicblocks.js:3904 -#: js/basicblocks.js:3959 -#: js/basicblocks.js:3964 -#: js/basicblocks.js:3969 -#: js/rubrics.js:477 -#: js/macros.js:45 -#: js/blocks.js:816 -#: js/blocks.js:2430 -#: js/blocks.js:2431 -#: js/blocks.js:2623 -#: js/blocks.js:2867 -#: js/blocks.js:3023 -#: js/blocks.js:3864 -#: js/blocks.js:4702 -#: js/rhythmruler.js:1149 -#: js/rhythmruler.js:1151 -#: js/rhythmruler.js:1251 -#: js/rhythmruler.js:1253 -#: js/block.js:923 -#: js/block.js:4836 -#: js/block.js:4845 -#: js/block.js:4856 -#: js/activity.js:3089 -#: js/palette.js:737 -#: js/palette.js:746 -#: js/palette.js:755 -#: js/palette.js:764 -#: js/palette.js:2043 -#: js/palette.js:2054 -#: js/palette.js:2065 -#: js/palette.js:2076 -#: js/palette.js:2086 -#: js/turtledefs.js:23 -#: js/basicblocks.js:1441 -#: js/basicblocks.js:1455 -#: js/basicblocks.js:1469 -#: js/basicblocks.js:3762 -#: js/basicblocks.js:3802 -#: js/basicblocks.js:3812 -#: js/basicblocks.js:3850 -#: js/basicblocks.js:3863 -#: js/basicblocks.js:3904 -#: js/basicblocks.js:3959 -#: js/basicblocks.js:3964 -#: js/basicblocks.js:3969 -#: js/rubrics.js:477 -#: js/macros.js:45 -#: js/blocks.js:816 -#: js/blocks.js:2432 -#: js/blocks.js:2433 -#: js/blocks.js:2625 -#: js/blocks.js:2869 -#: js/blocks.js:3025 -#: js/blocks.js:3866 -#: js/blocks.js:4704 -#: js/rhythmruler.js:1149 -#: js/rhythmruler.js:1151 -#: js/rhythmruler.js:1251 -#: js/rhythmruler.js:1253 -#: js/block.js:923 -#: js/block.js:4841 -#: js/block.js:4850 -#: js/block.js:4861 -#: js/activity.js:3079 -#: js/palette.js:737 -#: js/palette.js:746 -#: js/palette.js:755 -#: js/palette.js:764 -#: js/palette.js:2043 -#: js/palette.js:2054 -#: js/palette.js:2065 -#: js/palette.js:2076 -#: js/palette.js:2086 -#: js/turtledefs.js:23 -#: js/basicblocks.js:1474 -#: js/basicblocks.js:1488 -#: js/basicblocks.js:1502 -#: js/basicblocks.js:3808 -#: js/basicblocks.js:3848 -#: js/basicblocks.js:3858 -#: js/basicblocks.js:3896 -#: js/basicblocks.js:3909 -#: js/basicblocks.js:3950 -#: js/basicblocks.js:4005 -#: js/basicblocks.js:4010 -#: js/basicblocks.js:4015 -#: js/rubrics.js:477 -#: js/macros.js:45 -#: js/blocks.js:816 -#: js/blocks.js:2433 -#: js/blocks.js:2434 -#: js/blocks.js:2626 -#: js/blocks.js:2870 -#: js/blocks.js:3026 -#: js/blocks.js:3867 -#: js/blocks.js:4705 -#: js/rhythmruler.js:1157 -#: js/rhythmruler.js:1159 -#: js/rhythmruler.js:1259 -#: js/rhythmruler.js:1261 -#: js/block.js:923 -#: js/block.js:4845 -#: js/block.js:4854 -#: js/block.js:4865 -#: js/activity.js:3083 -#: js/palette.js:765 -#: js/palette.js:774 -#: js/palette.js:783 -#: js/palette.js:792 -#: js/palette.js:2072 -#: js/palette.js:2083 -#: js/palette.js:2094 -#: js/palette.js:2105 -#: js/palette.js:2115 -#: js/turtledefs.js:25 -#: js/basicblocks.js:1474 -#: js/basicblocks.js:1488 -#: js/basicblocks.js:1502 -#: js/basicblocks.js:3808 -#: js/basicblocks.js:3848 -#: js/basicblocks.js:3858 -#: js/basicblocks.js:3896 -#: js/basicblocks.js:3909 -#: js/basicblocks.js:3950 -#: js/basicblocks.js:4005 -#: js/basicblocks.js:4010 -#: js/basicblocks.js:4015 -#: js/rubrics.js:477 -#: js/macros.js:45 -#: js/blocks.js:816 -#: js/blocks.js:2433 -#: js/blocks.js:2434 -#: js/blocks.js:2626 -#: js/blocks.js:2870 -#: js/blocks.js:3026 -#: js/blocks.js:3867 -#: js/blocks.js:4705 -#: js/rhythmruler.js:1157 -#: js/rhythmruler.js:1159 -#: js/rhythmruler.js:1259 -#: js/rhythmruler.js:1261 -#: js/block.js:923 -#: js/block.js:4845 -#: js/block.js:4854 -#: js/block.js:4865 -#: js/activity.js:3083 -#: js/palette.js:765 -#: js/palette.js:774 -#: js/palette.js:783 -#: js/palette.js:792 -#: js/palette.js:2072 -#: js/palette.js:2083 -#: js/palette.js:2094 -#: js/palette.js:2105 -#: js/palette.js:2115 -#: js/turtledefs.js:25 -#: js/basicblocks.js:1474 -#: js/basicblocks.js:1488 -#: js/basicblocks.js:1502 -#: js/basicblocks.js:3808 -#: js/basicblocks.js:3848 -#: js/basicblocks.js:3858 -#: js/basicblocks.js:3896 -#: js/basicblocks.js:3909 -#: js/basicblocks.js:3950 -#: js/basicblocks.js:4005 -#: js/basicblocks.js:4010 -#: js/basicblocks.js:4015 -#: js/rubrics.js:477 -#: js/macros.js:45 -#: js/blocks.js:816 -#: js/blocks.js:2433 -#: js/blocks.js:2434 -#: js/blocks.js:2626 -#: js/blocks.js:2870 -#: js/blocks.js:3026 -#: js/blocks.js:3867 -#: js/blocks.js:4705 -#: js/rhythmruler.js:1157 -#: js/rhythmruler.js:1159 -#: js/rhythmruler.js:1259 -#: js/rhythmruler.js:1261 -#: js/block.js:923 -#: js/block.js:4845 -#: js/block.js:4854 -#: js/block.js:4865 -#: js/activity.js:3083 -#: js/palette.js:765 -#: js/palette.js:774 -#: js/palette.js:783 -#: js/palette.js:792 -#: js/palette.js:2072 -#: js/palette.js:2083 -#: js/palette.js:2094 -#: js/palette.js:2105 -#: js/palette.js:2115 -#: js/turtledefs.js:25 -#: js/basicblocks.js:1474 -#: js/basicblocks.js:1488 -#: js/basicblocks.js:1502 -#: js/basicblocks.js:3808 -#: js/basicblocks.js:3848 -#: js/basicblocks.js:3858 -#: js/basicblocks.js:3896 -#: js/basicblocks.js:3909 -#: js/basicblocks.js:3950 -#: js/basicblocks.js:4005 -#: js/basicblocks.js:4010 -#: js/basicblocks.js:4015 -#: js/rubrics.js:477 -#: js/macros.js:45 -#: js/blocks.js:816 -#: js/blocks.js:2433 -#: js/blocks.js:2434 -#: js/blocks.js:2626 -#: js/blocks.js:2870 -#: js/blocks.js:3026 -#: js/blocks.js:3867 -#: js/blocks.js:4705 -#: js/rhythmruler.js:1157 -#: js/rhythmruler.js:1159 -#: js/rhythmruler.js:1259 -#: js/rhythmruler.js:1261 -#: js/block.js:926 -#: js/block.js:4883 -#: js/block.js:4892 -#: js/block.js:4903 -#: js/activity.js:3083 -#: js/palette.js:765 -#: js/palette.js:774 -#: js/palette.js:783 -#: js/palette.js:792 -#: js/palette.js:2075 -#: js/palette.js:2086 -#: js/palette.js:2097 -#: js/palette.js:2108 -#: js/palette.js:2118 -#: js/turtledefs.js:25 -#: js/basicblocks.js:1474 -#: js/basicblocks.js:1488 -#: js/basicblocks.js:1502 -#: js/basicblocks.js:3830 -#: js/basicblocks.js:3870 -#: js/basicblocks.js:3880 -#: js/basicblocks.js:3918 -#: js/basicblocks.js:3931 -#: js/basicblocks.js:3972 -#: js/basicblocks.js:4027 -#: js/basicblocks.js:4032 -#: js/basicblocks.js:4037 -#: js/rubrics.js:478 -#: js/macros.js:45 -#: js/blocks.js:816 -#: js/blocks.js:2437 -#: js/blocks.js:2438 -#: js/blocks.js:2630 -#: js/blocks.js:2874 -#: js/blocks.js:3030 -#: js/blocks.js:3871 -#: js/blocks.js:4724 -#: js/rhythmruler.js:1157 -#: js/rhythmruler.js:1159 -#: js/rhythmruler.js:1259 -#: js/rhythmruler.js:1261 -#: js/block.js:926 -#: js/block.js:4883 -#: js/block.js:4892 -#: js/block.js:4903 -#: js/activity.js:3078 -#: js/palette.js:765 -#: js/palette.js:774 -#: js/palette.js:783 -#: js/palette.js:792 -#: js/palette.js:2075 -#: js/palette.js:2086 -#: js/palette.js:2097 -#: js/palette.js:2108 -#: js/palette.js:2118 -#: js/turtledefs.js:25 -#: js/basicblocks.js:1475 -#: js/basicblocks.js:1489 -#: js/basicblocks.js:1503 -#: js/basicblocks.js:3832 -#: js/basicblocks.js:3872 -#: js/basicblocks.js:3882 -#: js/basicblocks.js:3920 -#: js/basicblocks.js:3933 -#: js/basicblocks.js:3974 -#: js/basicblocks.js:4029 -#: js/basicblocks.js:4034 -#: js/basicblocks.js:4039 -#: js/rubrics.js:478 -#: js/macros.js:45 -#: js/blocks.js:816 -#: js/blocks.js:2437 -#: js/blocks.js:2438 -#: js/blocks.js:2630 -#: js/blocks.js:2874 -#: js/blocks.js:3030 -#: js/blocks.js:3871 -#: js/blocks.js:4724 -#: js/rhythmruler.js:1162 -#: js/rhythmruler.js:1164 -#: js/rhythmruler.js:1272 -#: js/rhythmruler.js:1274 -#: js/block.js:1046 -#: js/block.js:5109 -#: js/block.js:5118 -#: js/block.js:5129 -#: js/activity.js:3147 -#: js/palette.js:766 -#: js/palette.js:775 -#: js/palette.js:784 -#: js/palette.js:793 -#: js/palette.js:2076 -#: js/palette.js:2087 -#: js/palette.js:2098 -#: js/palette.js:2109 -#: js/palette.js:2119 -#: js/turtledefs.js:25 -#: js/basicblocks.js:1504 -#: js/basicblocks.js:1524 -#: js/basicblocks.js:1538 -#: js/basicblocks.js:3894 -#: js/basicblocks.js:3934 -#: js/basicblocks.js:3944 -#: js/basicblocks.js:3992 -#: js/basicblocks.js:4005 -#: js/basicblocks.js:4052 -#: js/basicblocks.js:4107 -#: js/basicblocks.js:4112 -#: js/basicblocks.js:4117 -#: js/rubrics.js:478 -#: js/macros.js:45 -#: js/blocks.js:816 -#: js/blocks.js:2437 -#: js/blocks.js:2438 -#: js/blocks.js:2630 -#: js/blocks.js:2874 -#: js/blocks.js:3030 -#: js/blocks.js:3940 -#: js/blocks.js:4793 -#: js/rhythmruler.js:1162 -#: js/rhythmruler.js:1164 -#: js/rhythmruler.js:1272 -#: js/rhythmruler.js:1274 -#: js/block.js:1050 -#: js/block.js:5120 -#: js/block.js:5129 -#: js/block.js:5140 -#: js/activity.js:2267 -#: js/palette.js:766 -#: js/palette.js:775 -#: js/palette.js:784 -#: js/palette.js:793 -#: js/palette.js:2094 -#: js/palette.js:2105 -#: js/palette.js:2116 -#: js/palette.js:2127 -#: js/palette.js:2137 -#: js/turtledefs.js:25 -#: js/basicblocks.js:1514 -#: js/basicblocks.js:1534 -#: js/basicblocks.js:1548 -#: js/basicblocks.js:3942 -#: js/basicblocks.js:3982 -#: js/basicblocks.js:3992 -#: js/basicblocks.js:4040 -#: js/basicblocks.js:4053 -#: js/basicblocks.js:4100 -#: js/basicblocks.js:4155 -#: js/basicblocks.js:4160 -#: js/basicblocks.js:4165 -#: js/rubrics.js:478 -#: js/macros.js:45 -#: js/blocks.js:809 -#: js/blocks.js:2430 -#: js/blocks.js:2431 -#: js/blocks.js:2623 -#: js/blocks.js:2867 -#: js/blocks.js:3023 -#: js/blocks.js:3931 -#: js/blocks.js:4784 -#: js/rhythmruler.js:1162 -#: js/rhythmruler.js:1164 -#: js/rhythmruler.js:1272 -#: js/rhythmruler.js:1274 -#: js/block.js:1050 -#: js/block.js:5120 -#: js/block.js:5129 -#: js/block.js:5140 -#: js/activity.js:2267 -#: js/palette.js:766 -#: js/palette.js:775 -#: js/palette.js:784 -#: js/palette.js:793 -#: js/palette.js:2094 -#: js/palette.js:2105 -#: js/palette.js:2116 -#: js/palette.js:2127 -#: js/palette.js:2137 -#: js/turtledefs.js:25 -#: js/basicblocks.js:1519 -#: js/basicblocks.js:1539 -#: js/basicblocks.js:1553 -#: js/basicblocks.js:3959 -#: js/basicblocks.js:3999 -#: js/basicblocks.js:4009 -#: js/basicblocks.js:4057 -#: js/basicblocks.js:4070 -#: js/basicblocks.js:4117 -#: js/basicblocks.js:4172 -#: js/basicblocks.js:4177 -#: js/basicblocks.js:4182 -#: js/rubrics.js:478 -#: js/macros.js:45 -#: js/blocks.js:809 -#: js/blocks.js:2430 -#: js/blocks.js:2431 -#: js/blocks.js:2623 -#: js/blocks.js:2867 -#: js/blocks.js:3023 -#: js/blocks.js:3931 -#: js/blocks.js:4784 -#: js/rhythmruler.js:1162 -#: js/rhythmruler.js:1164 -#: js/rhythmruler.js:1272 -#: js/rhythmruler.js:1274 -#: js/block.js:1050 -#: js/block.js:5120 -#: js/block.js:5129 -#: js/block.js:5140 -#: js/activity.js:2267 -#: js/palette.js:766 -#: js/palette.js:775 -#: js/palette.js:784 -#: js/palette.js:793 -#: js/palette.js:2094 -#: js/palette.js:2105 -#: js/palette.js:2116 -#: js/palette.js:2127 -#: js/palette.js:2137 -#: js/turtledefs.js:25 -#: js/basicblocks.js:1519 -#: js/basicblocks.js:1539 -#: js/basicblocks.js:1553 -#: js/basicblocks.js:3959 -#: js/basicblocks.js:3999 -#: js/basicblocks.js:4009 -#: js/basicblocks.js:4057 -#: js/basicblocks.js:4070 -#: js/basicblocks.js:4117 -#: js/basicblocks.js:4172 -#: js/basicblocks.js:4177 -#: js/basicblocks.js:4182 -#: js/rubrics.js:478 -#: js/macros.js:45 -#: js/blocks.js:808 -#: js/blocks.js:2429 -#: js/blocks.js:2430 -#: js/blocks.js:2622 -#: js/blocks.js:2866 -#: js/blocks.js:3022 -#: js/blocks.js:3930 -#: js/blocks.js:4783 -#: js/rhythmruler.js:1162 -#: js/rhythmruler.js:1164 -#: js/rhythmruler.js:1272 -#: js/rhythmruler.js:1274 -#: js/block.js:1050 -#: js/block.js:5120 -#: js/block.js:5129 -#: js/block.js:5140 -#: js/activity.js:2267 -#: js/palette.js:766 -#: js/palette.js:775 -#: js/palette.js:784 -#: js/palette.js:793 -#: js/palette.js:2094 -#: js/palette.js:2105 -#: js/palette.js:2116 -#: js/palette.js:2127 -#: js/palette.js:2137 -#: js/turtledefs.js:25 -#: js/basicblocks.js:1519 -#: js/basicblocks.js:1539 -#: js/basicblocks.js:1553 -#: js/basicblocks.js:3959 -#: js/basicblocks.js:3999 -#: js/basicblocks.js:4009 -#: js/basicblocks.js:4057 -#: js/basicblocks.js:4070 -#: js/basicblocks.js:4117 -#: js/basicblocks.js:4172 -#: js/basicblocks.js:4177 -#: js/basicblocks.js:4182 -#: js/rubrics.js:478 -#: js/macros.js:45 -#: js/blocks.js:808 -#: js/blocks.js:2429 -#: js/blocks.js:2430 -#: js/blocks.js:2622 -#: js/blocks.js:2866 -#: js/blocks.js:3022 -#: js/blocks.js:3930 -#: js/blocks.js:4783 -#: js/rhythmruler.js:1162 -#: js/rhythmruler.js:1164 -#: js/rhythmruler.js:1272 -#: js/rhythmruler.js:1274 -#: js/block.js:1050 -#: js/block.js:5120 -#: js/block.js:5129 -#: js/block.js:5140 -#: js/activity.js:2267 -#: js/palette.js:766 -#: js/palette.js:775 -#: js/palette.js:784 -#: js/palette.js:793 -#: js/palette.js:2094 -#: js/palette.js:2105 -#: js/palette.js:2116 -#: js/palette.js:2127 -#: js/palette.js:2137 -#: js/turtledefs.js:25 -#: js/basicblocks.js:1526 -#: js/basicblocks.js:1546 -#: js/basicblocks.js:1560 -#: js/basicblocks.js:3966 -#: js/basicblocks.js:4006 -#: js/basicblocks.js:4016 -#: js/basicblocks.js:4064 -#: js/basicblocks.js:4077 -#: js/basicblocks.js:4124 -#: js/basicblocks.js:4179 -#: js/basicblocks.js:4184 -#: js/basicblocks.js:4189 -#: js/rubrics.js:478 -#: js/macros.js:45 -#: js/blocks.js:808 -#: js/blocks.js:2429 -#: js/blocks.js:2430 -#: js/blocks.js:2622 -#: js/blocks.js:2866 -#: js/blocks.js:3022 -#: js/blocks.js:3930 -#: js/blocks.js:4783 -#: js/rhythmruler.js:1162 -#: js/rhythmruler.js:1164 -#: js/rhythmruler.js:1272 -#: js/rhythmruler.js:1274 -#: js/block.js:1162 -#: js/block.js:5410 -#: js/block.js:5419 -#: js/block.js:5430 -#: js/activity.js:2268 -#: js/palette.js:770 -#: js/palette.js:779 -#: js/palette.js:788 -#: js/palette.js:797 -#: js/palette.js:2098 -#: js/palette.js:2109 -#: js/palette.js:2120 -#: js/palette.js:2131 -#: js/palette.js:2141 -#: js/turtledefs.js:31 -#: js/basicblocks.js:1528 -#: js/basicblocks.js:1548 -#: js/basicblocks.js:1562 -#: js/basicblocks.js:3968 -#: js/basicblocks.js:4008 -#: js/basicblocks.js:4018 -#: js/basicblocks.js:4066 -#: js/basicblocks.js:4079 -#: js/basicblocks.js:4126 -#: js/basicblocks.js:4181 -#: js/basicblocks.js:4186 -#: js/basicblocks.js:4191 -#: js/rubrics.js:478 -#: js/macros.js:45 -#: js/blocks.js:1023 -#: js/blocks.js:2839 -#: js/blocks.js:2840 -#: js/blocks.js:3054 -#: js/blocks.js:3356 -#: js/blocks.js:3549 -#: js/blocks.js:4588 -#: js/blocks.js:5446 -#: js/musickeyboard.js:369 -#: js/pitchtimematrix.js:1612 -#: js/rhythmruler.js:1171 -#: js/rhythmruler.js:1173 -#: js/rhythmruler.js:1281 -#: js/rhythmruler.js:1283 -#: js/block.js:1162 -#: js/block.js:5410 -#: js/block.js:5419 -#: js/block.js:5430 -#: js/activity.js:2268 -#: js/palette.js:770 -#: js/palette.js:779 -#: js/palette.js:788 -#: js/palette.js:797 -#: js/palette.js:2098 -#: js/palette.js:2109 -#: js/palette.js:2120 -#: js/palette.js:2131 -#: js/palette.js:2141 -#: js/turtledefs.js:35 -#: js/basicblocks.js:1528 -#: js/basicblocks.js:1548 -#: js/basicblocks.js:1562 -#: js/basicblocks.js:3968 -#: js/basicblocks.js:4008 -#: js/basicblocks.js:4018 -#: js/basicblocks.js:4066 -#: js/basicblocks.js:4079 -#: js/basicblocks.js:4126 -#: js/basicblocks.js:4181 -#: js/basicblocks.js:4186 -#: js/basicblocks.js:4191 -#: js/rubrics.js:478 -#: js/macros.js:45 -#: js/blocks.js:1023 -#: js/blocks.js:2839 -#: js/blocks.js:2840 -#: js/blocks.js:3054 -#: js/blocks.js:3356 -#: js/blocks.js:3549 -#: js/blocks.js:4588 -#: js/blocks.js:5446 -#: js/musickeyboard.js:369 -#: js/pitchtimematrix.js:1612 -#: js/rhythmruler.js:1171 -#: js/rhythmruler.js:1173 -#: js/rhythmruler.js:1281 -#: js/rhythmruler.js:1283 -#: js/block.js:1162 -#: js/block.js:5410 -#: js/block.js:5419 -#: js/block.js:5430 -#: js/activity.js:2133 -#: js/palette.js:770 -#: js/palette.js:779 -#: js/palette.js:788 -#: js/palette.js:797 -#: js/palette.js:2098 -#: js/palette.js:2109 -#: js/palette.js:2120 -#: js/palette.js:2131 -#: js/palette.js:2141 -#: js/turtledefs.js:35 -#: js/basicblocks.js:1528 -#: js/basicblocks.js:1548 -#: js/basicblocks.js:1562 -#: js/basicblocks.js:3968 -#: js/basicblocks.js:4008 -#: js/basicblocks.js:4018 -#: js/basicblocks.js:4066 -#: js/basicblocks.js:4079 -#: js/basicblocks.js:4126 -#: js/basicblocks.js:4181 -#: js/basicblocks.js:4186 -#: js/basicblocks.js:4191 -#: js/rubrics.js:478 -#: js/macros.js:45 -#: js/blocks.js:1023 -#: js/blocks.js:2839 -#: js/blocks.js:2840 -#: js/blocks.js:3054 -#: js/blocks.js:3356 -#: js/blocks.js:3549 -#: js/blocks.js:4588 -#: js/blocks.js:5446 -#: js/musickeyboard.js:369 -#: js/pitchtimematrix.js:1612 -#: js/rhythmruler.js:1171 -#: js/rhythmruler.js:1173 -#: js/rhythmruler.js:1281 -#: js/rhythmruler.js:1283 -#: js/block.js:1162 -#: js/block.js:5410 -#: js/block.js:5419 -#: js/block.js:5430 -#: js/activity.js:2133 -#: js/palette.js:770 -#: js/palette.js:779 -#: js/palette.js:788 -#: js/palette.js:797 -#: js/palette.js:2098 -#: js/palette.js:2109 -#: js/palette.js:2120 -#: js/palette.js:2131 -#: js/palette.js:2141 -#: js/turtledefs.js:35 -#: js/basicblocks.js:1528 -#: js/basicblocks.js:1548 -#: js/basicblocks.js:1562 -#: js/basicblocks.js:3968 -#: js/basicblocks.js:4008 -#: js/basicblocks.js:4018 -#: js/basicblocks.js:4066 -#: js/basicblocks.js:4079 -#: js/basicblocks.js:4126 -#: js/basicblocks.js:4181 -#: js/basicblocks.js:4186 -#: js/basicblocks.js:4191 -#: js/rubrics.js:478 -#: js/macros.js:45 -#: js/blocks.js:1023 -#: js/blocks.js:2839 -#: js/blocks.js:2840 -#: js/blocks.js:3054 -#: js/blocks.js:3356 -#: js/blocks.js:3549 -#: js/blocks.js:4588 -#: js/blocks.js:5446 -#: js/musickeyboard.js:369 -#: js/pitchtimematrix.js:1612 -#: js/rhythmruler.js:1171 -#: js/rhythmruler.js:1173 -#: js/rhythmruler.js:1281 -#: js/rhythmruler.js:1283 -#: js/block.js:1162 -#: js/block.js:5410 -#: js/block.js:5419 -#: js/block.js:5430 -#: js/activity.js:2127 -#: js/palette.js:770 -#: js/palette.js:779 -#: js/palette.js:788 -#: js/palette.js:797 -#: js/palette.js:2098 -#: js/palette.js:2109 -#: js/palette.js:2120 -#: js/palette.js:2131 -#: js/palette.js:2141 -#: js/turtledefs.js:35 -#: js/basicblocks.js:1528 -#: js/basicblocks.js:1548 -#: js/basicblocks.js:1562 -#: js/basicblocks.js:3968 -#: js/basicblocks.js:4008 -#: js/basicblocks.js:4018 -#: js/basicblocks.js:4066 -#: js/basicblocks.js:4079 -#: js/basicblocks.js:4127 -#: js/basicblocks.js:4182 -#: js/basicblocks.js:4187 -#: js/basicblocks.js:4192 -#: js/rubrics.js:478 -#: js/macros.js:45 -#: js/blocks.js:1023 -#: js/blocks.js:2849 -#: js/blocks.js:2850 -#: js/blocks.js:3064 -#: js/blocks.js:3366 -#: js/blocks.js:3559 -#: js/blocks.js:4598 -#: js/blocks.js:5455 -#: js/musickeyboard.js:369 -#: js/pitchtimematrix.js:1612 -#: js/rhythmruler.js:1171 -#: js/rhythmruler.js:1173 -#: js/rhythmruler.js:1281 -#: js/rhythmruler.js:1283 -#: js/block.js:1162 -#: js/block.js:5410 -#: js/block.js:5419 -#: js/block.js:5430 -#: js/activity.js:2127 -#: js/palette.js:770 -#: js/palette.js:779 -#: js/palette.js:788 -#: js/palette.js:797 -#: js/palette.js:2098 -#: js/palette.js:2109 -#: js/palette.js:2120 -#: js/palette.js:2131 -#: js/palette.js:2141 -#: js/turtledefs.js:35 -#: js/basicblocks.js:1527 -#: js/basicblocks.js:1547 -#: js/basicblocks.js:1561 -#: js/basicblocks.js:3967 -#: js/basicblocks.js:4007 -#: js/basicblocks.js:4017 -#: js/basicblocks.js:4065 -#: js/basicblocks.js:4078 -#: js/basicblocks.js:4126 -#: js/basicblocks.js:4181 -#: js/basicblocks.js:4186 -#: js/basicblocks.js:4191 -#: js/rubrics.js:478 -#: js/macros.js:45 -#: js/blocks.js:1023 -#: js/blocks.js:2849 -#: js/blocks.js:2850 -#: js/blocks.js:3064 -#: js/blocks.js:3366 -#: js/blocks.js:3559 -#: js/blocks.js:4598 -#: js/blocks.js:5455 -#: js/musickeyboard.js:369 -#: js/pitchtimematrix.js:1612 -#: js/rhythmruler.js:1171 -#: js/rhythmruler.js:1173 -#: js/rhythmruler.js:1281 -#: js/rhythmruler.js:1283 -#: js/block.js:1162 -#: js/block.js:5410 -#: js/block.js:5419 -#: js/block.js:5430 -#: js/activity.js:2127 -#: js/palette.js:770 -#: js/palette.js:779 -#: js/palette.js:788 -#: js/palette.js:797 -#: js/palette.js:2098 -#: js/palette.js:2109 -#: js/palette.js:2120 -#: js/palette.js:2131 -#: js/palette.js:2141 -#: js/turtledefs.js:35 -#: js/basicblocks.js:1527 -#: js/basicblocks.js:1547 -#: js/basicblocks.js:1561 -#: js/basicblocks.js:3967 -#: js/basicblocks.js:4007 -#: js/basicblocks.js:4017 -#: js/basicblocks.js:4065 -#: js/basicblocks.js:4078 -#: js/basicblocks.js:4126 -#: js/basicblocks.js:4181 -#: js/basicblocks.js:4186 -#: js/basicblocks.js:4191 -#: js/rubrics.js:478 -#: js/macros.js:45 -#: js/blocks.js:1023 -#: js/blocks.js:2849 -#: js/blocks.js:2850 -#: js/blocks.js:3064 -#: js/blocks.js:3366 -#: js/blocks.js:3559 -#: js/blocks.js:4598 -#: js/blocks.js:5455 -#: js/musickeyboard.js:369 -#: js/pitchtimematrix.js:1612 -#: js/rhythmruler.js:1171 -#: js/rhythmruler.js:1173 -#: js/rhythmruler.js:1281 -#: js/rhythmruler.js:1283 -#: js/block.js:1162 -#: js/block.js:5410 -#: js/block.js:5419 -#: js/block.js:5430 -#: js/activity.js:2127 -#: js/palette.js:770 -#: js/palette.js:779 -#: js/palette.js:788 -#: js/palette.js:797 -#: js/palette.js:2098 -#: js/palette.js:2109 -#: js/palette.js:2120 -#: js/palette.js:2131 -#: js/palette.js:2141 -#: js/turtledefs.js:35 -#: js/basicblocks.js:1527 -#: js/basicblocks.js:1547 -#: js/basicblocks.js:1561 -#: js/basicblocks.js:3967 -#: js/basicblocks.js:4007 -#: js/basicblocks.js:4017 -#: js/basicblocks.js:4065 -#: js/basicblocks.js:4078 -#: js/basicblocks.js:4126 -#: js/basicblocks.js:4181 -#: js/basicblocks.js:4186 -#: js/basicblocks.js:4191 -#: js/rubrics.js:478 -#: js/macros.js:45 -#: js/blocks.js:1023 -#: js/blocks.js:2849 -#: js/blocks.js:2850 -#: js/blocks.js:3064 -#: js/blocks.js:3366 -#: js/blocks.js:3559 -#: js/blocks.js:4598 -#: js/blocks.js:5455 -#: js/musickeyboard.js:369 -#: js/pitchtimematrix.js:1612 -#: js/rhythmruler.js:1171 -#: js/rhythmruler.js:1173 -#: js/rhythmruler.js:1281 -#: js/rhythmruler.js:1283 -#: js/block.js:1162 -#: js/block.js:5410 -#: js/block.js:5419 -#: js/block.js:5430 -#: js/activity.js:2127 -#: js/palette.js:770 -#: js/palette.js:779 -#: js/palette.js:788 -#: js/palette.js:797 -#: js/palette.js:2098 -#: js/palette.js:2109 -#: js/palette.js:2120 -#: js/palette.js:2131 -#: js/palette.js:2141 -#: js/turtledefs.js:35 -#: js/basicblocks.js:1531 -#: js/basicblocks.js:1551 -#: js/basicblocks.js:1565 -#: js/basicblocks.js:3971 -#: js/basicblocks.js:4011 -#: js/basicblocks.js:4021 -#: js/basicblocks.js:4069 -#: js/basicblocks.js:4082 -#: js/basicblocks.js:4130 -#: js/basicblocks.js:4185 -#: js/basicblocks.js:4190 -#: js/basicblocks.js:4195 -#: js/rubrics.js:478 -#: js/macros.js:45 -#: js/blocks.js:1023 -#: js/blocks.js:2849 -#: js/blocks.js:2850 -#: js/blocks.js:3064 -#: js/blocks.js:3366 -#: js/blocks.js:3559 -#: js/blocks.js:4598 -#: js/blocks.js:5455 -#: js/musickeyboard.js:369 -#: js/pitchtimematrix.js:1612 -#: js/rhythmruler.js:1171 -#: js/rhythmruler.js:1173 -#: js/rhythmruler.js:1281 -#: js/rhythmruler.js:1283 -#: js/block.js:1162 -#: js/block.js:5410 -#: js/block.js:5419 -#: js/block.js:5430 -#: js/activity.js:2127 -#: js/palette.js:770 -#: js/palette.js:779 -#: js/palette.js:788 -#: js/palette.js:797 -#: js/palette.js:2098 -#: js/palette.js:2109 -#: js/palette.js:2120 -#: js/palette.js:2131 -#: js/palette.js:2141 -#: js/turtledefs.js:35 -#: js/basicblocks.js:1531 -#: js/basicblocks.js:1551 -#: js/basicblocks.js:1565 -#: js/basicblocks.js:3971 -#: js/basicblocks.js:4011 -#: js/basicblocks.js:4021 -#: js/basicblocks.js:4069 -#: js/basicblocks.js:4082 -#: js/basicblocks.js:4130 -#: js/basicblocks.js:4185 -#: js/basicblocks.js:4190 -#: js/basicblocks.js:4195 -#: js/rubrics.js:478 -#: js/macros.js:45 -#: js/blocks.js:1023 -#: js/blocks.js:2849 -#: js/blocks.js:2850 -#: js/blocks.js:3064 -#: js/blocks.js:3366 -#: js/blocks.js:3559 -#: js/blocks.js:4598 -#: js/blocks.js:5455 -#: js/musickeyboard.js:369 -#: js/pitchtimematrix.js:1612 -#: js/rhythmruler.js:1171 -#: js/rhythmruler.js:1173 -#: js/rhythmruler.js:1281 -#: js/rhythmruler.js:1283 -#: js/block.js:1162 -#: js/block.js:5410 -#: js/block.js:5419 -#: js/block.js:5430 -#: js/activity.js:2127 -#: js/palette.js:770 -#: js/palette.js:779 -#: js/palette.js:788 -#: js/palette.js:797 -#: js/palette.js:2098 -#: js/palette.js:2109 -#: js/palette.js:2120 -#: js/palette.js:2131 -#: js/palette.js:2141 -#: js/turtledefs.js:35 -#: js/basicblocks.js:1531 -#: js/basicblocks.js:1551 -#: js/basicblocks.js:1565 -#: js/basicblocks.js:3971 -#: js/basicblocks.js:4011 -#: js/basicblocks.js:4021 -#: js/basicblocks.js:4069 -#: js/basicblocks.js:4082 -#: js/basicblocks.js:4130 -#: js/basicblocks.js:4185 -#: js/basicblocks.js:4190 -#: js/basicblocks.js:4195 -#: js/rubrics.js:478 -#: js/macros.js:45 -#: js/blocks.js:1023 -#: js/blocks.js:2849 -#: js/blocks.js:2850 -#: js/blocks.js:3064 -#: js/blocks.js:3366 -#: js/blocks.js:3559 -#: js/blocks.js:4598 -#: js/blocks.js:5455 -#: js/musickeyboard.js:369 -#: js/pitchtimematrix.js:1612 -#: js/rhythmruler.js:1171 -#: js/rhythmruler.js:1173 -#: js/rhythmruler.js:1281 -#: js/rhythmruler.js:1283 -#: js/block.js:1162 -#: js/block.js:5413 -#: js/block.js:5422 -#: js/block.js:5433 -#: js/activity.js:2127 -#: js/palette.js:770 -#: js/palette.js:779 -#: js/palette.js:788 -#: js/palette.js:797 -#: js/palette.js:2098 -#: js/palette.js:2109 -#: js/palette.js:2120 -#: js/palette.js:2131 -#: js/palette.js:2141 -#: js/turtledefs.js:35 -#: js/basicblocks.js:1537 -#: js/basicblocks.js:1557 -#: js/basicblocks.js:1571 -#: js/basicblocks.js:3977 -#: js/basicblocks.js:4017 -#: js/basicblocks.js:4027 -#: js/basicblocks.js:4075 -#: js/basicblocks.js:4088 -#: js/basicblocks.js:4136 -#: js/basicblocks.js:4191 -#: js/basicblocks.js:4196 -#: js/basicblocks.js:4201 -#: js/rubrics.js:478 -#: js/macros.js:45 -#: js/blocks.js:1023 -#: js/blocks.js:2849 -#: js/blocks.js:2850 -#: js/blocks.js:3064 -#: js/blocks.js:3366 -#: js/blocks.js:3559 -#: js/blocks.js:4598 -#: js/blocks.js:5455 -#: js/musickeyboard.js:369 -#: js/pitchtimematrix.js:1612 -#: js/rhythmruler.js:1171 -#: js/rhythmruler.js:1173 -#: js/rhythmruler.js:1281 -#: js/rhythmruler.js:1283 -#: js/block.js:1162 -#: js/block.js:5430 -#: js/block.js:5439 -#: js/block.js:5450 -#: js/activity.js:2134 -#: js/palette.js:810 -#: js/palette.js:819 -#: js/palette.js:828 -#: js/palette.js:837 -#: js/palette.js:2142 -#: js/palette.js:2153 -#: js/palette.js:2164 -#: js/palette.js:2175 -#: js/palette.js:2185 -#: js/turtledefs.js:35 -#: js/basicblocks.js:1542 -#: js/basicblocks.js:1562 -#: js/basicblocks.js:1576 -#: js/basicblocks.js:3982 -#: js/basicblocks.js:4022 -#: js/basicblocks.js:4032 -#: js/basicblocks.js:4080 -#: js/basicblocks.js:4093 -#: js/basicblocks.js:4141 -#: js/basicblocks.js:4196 -#: js/basicblocks.js:4201 -#: js/basicblocks.js:4206 -#: js/rubrics.js:478 -#: js/macros.js:45 -#: js/blocks.js:1023 -#: js/blocks.js:2849 -#: js/blocks.js:2850 -#: js/blocks.js:3064 -#: js/blocks.js:3366 -#: js/blocks.js:3559 -#: js/blocks.js:4600 -#: js/blocks.js:5457 -#: js/musickeyboard.js:369 -#: js/pitchtimematrix.js:1612 -#: js/rhythmruler.js:1176 -#: js/rhythmruler.js:1178 -#: js/rhythmruler.js:1286 -#: js/rhythmruler.js:1288 -#: js/block.js:1162 -#: js/block.js:5430 -#: js/block.js:5439 -#: js/block.js:5450 -#: js/activity.js:2134 -#: js/palette.js:810 -#: js/palette.js:819 -#: js/palette.js:828 -#: js/palette.js:837 -#: js/palette.js:2142 -#: js/palette.js:2153 -#: js/palette.js:2164 -#: js/palette.js:2175 -#: js/palette.js:2185 -#: js/turtledefs.js:35 -#: js/basicblocks.js:1542 -#: js/basicblocks.js:1562 -#: js/basicblocks.js:1576 -#: js/basicblocks.js:3982 -#: js/basicblocks.js:4022 -#: js/basicblocks.js:4032 -#: js/basicblocks.js:4080 -#: js/basicblocks.js:4093 -#: js/basicblocks.js:4141 -#: js/basicblocks.js:4196 -#: js/basicblocks.js:4201 -#: js/basicblocks.js:4206 -#: js/rubrics.js:478 -#: js/macros.js:45 -#: js/blocks.js:1023 -#: js/blocks.js:2849 -#: js/blocks.js:2850 -#: js/blocks.js:3064 -#: js/blocks.js:3366 -#: js/blocks.js:3559 -#: js/blocks.js:4600 -#: js/blocks.js:5457 -#: js/musickeyboard.js:369 -#: js/pitchtimematrix.js:1612 -#: js/rhythmruler.js:1176 -#: js/rhythmruler.js:1178 -#: js/rhythmruler.js:1286 -#: js/rhythmruler.js:1288 -#: js/block.js:1162 -#: js/block.js:5430 -#: js/block.js:5439 -#: js/block.js:5450 -#: js/activity.js:2134 -#: js/palette.js:810 -#: js/palette.js:819 -#: js/palette.js:828 -#: js/palette.js:837 -#: js/palette.js:2142 -#: js/palette.js:2153 -#: js/palette.js:2164 -#: js/palette.js:2175 -#: js/palette.js:2185 -#: js/turtledefs.js:35 -#: js/basicblocks.js:1542 -#: js/basicblocks.js:1562 -#: js/basicblocks.js:1576 -#: js/basicblocks.js:3982 -#: js/basicblocks.js:4022 -#: js/basicblocks.js:4032 -#: js/basicblocks.js:4080 -#: js/basicblocks.js:4093 -#: js/basicblocks.js:4141 -#: js/basicblocks.js:4196 -#: js/basicblocks.js:4201 -#: js/basicblocks.js:4206 -#: js/rubrics.js:478 -#: js/macros.js:45 -#: js/blocks.js:1023 -#: js/blocks.js:2849 -#: js/blocks.js:2850 -#: js/blocks.js:3064 -#: js/blocks.js:3366 -#: js/blocks.js:3559 -#: js/blocks.js:4600 -#: js/blocks.js:5457 -#: js/musickeyboard.js:369 -#: js/pitchtimematrix.js:1612 -#: js/rhythmruler.js:1176 -#: js/rhythmruler.js:1178 -#: js/rhythmruler.js:1286 -#: js/rhythmruler.js:1288 -#: js/block.js:1162 -#: js/block.js:5445 -#: js/block.js:5454 -#: js/block.js:5465 -#: js/activity.js:2137 -#: js/palette.js:810 -#: js/palette.js:819 -#: js/palette.js:828 -#: js/palette.js:837 -#: js/palette.js:2142 -#: js/palette.js:2153 -#: js/palette.js:2164 -#: js/palette.js:2175 -#: js/palette.js:2185 -#: js/turtledefs.js:35 -#: js/basicblocks.js:1553 -#: js/basicblocks.js:1573 -#: js/basicblocks.js:1587 -#: js/basicblocks.js:3993 -#: js/basicblocks.js:4033 -#: js/basicblocks.js:4043 -#: js/basicblocks.js:4091 -#: js/basicblocks.js:4104 -#: js/basicblocks.js:4152 -#: js/basicblocks.js:4207 -#: js/basicblocks.js:4212 -#: js/basicblocks.js:4217 -#: js/rubrics.js:478 -#: js/macros.js:45 -#: js/blocks.js:1023 -#: js/blocks.js:2849 -#: js/blocks.js:2850 -#: js/blocks.js:3064 -#: js/blocks.js:3366 -#: js/blocks.js:3559 -#: js/blocks.js:4600 -#: js/blocks.js:5457 -#: js/musickeyboard.js:370 -#: js/pitchtimematrix.js:1642 -#: js/rhythmruler.js:1176 -#: js/rhythmruler.js:1178 -#: js/rhythmruler.js:1286 -#: js/rhythmruler.js:1288 -#: js/block.js:1165 -#: js/block.js:5575 -#: js/block.js:5584 -#: js/block.js:5595 -#: js/activity.js:2240 -#: js/palette.js:812 -#: js/palette.js:821 -#: js/palette.js:830 -#: js/palette.js:839 -#: js/palette.js:2144 -#: js/palette.js:2155 -#: js/palette.js:2166 -#: js/palette.js:2177 -#: js/palette.js:2187 -#: js/turtledefs.js:35 -#: js/basicblocks.js:1559 -#: js/basicblocks.js:1579 -#: js/basicblocks.js:1593 -#: js/basicblocks.js:4003 -#: js/basicblocks.js:4043 -#: js/basicblocks.js:4053 -#: js/basicblocks.js:4101 -#: js/basicblocks.js:4114 -#: js/basicblocks.js:4162 -#: js/basicblocks.js:4217 -#: js/basicblocks.js:4222 -#: js/basicblocks.js:4227 -#: js/rubrics.js:478 -#: js/macros.js:45 -#: js/macros.js:46 -#: js/blocks.js:1025 -#: js/blocks.js:2860 -#: js/blocks.js:2861 -#: js/blocks.js:3075 -#: js/blocks.js:3377 -#: js/blocks.js:3570 -#: js/blocks.js:4612 -#: js/blocks.js:5477 -#: js/musickeyboard.js:375 -#: js/pitchtimematrix.js:1716 -#: js/rhythmruler.js:1176 -#: js/rhythmruler.js:1178 -#: js/rhythmruler.js:1286 -#: js/rhythmruler.js:1288 -#: js/block.js:1186 -#: js/block.js:5751 -#: js/block.js:5760 -#: js/block.js:5771 -#: js/activity.js:2363 -#: js/palette.js:816 -#: js/palette.js:825 -#: js/palette.js:834 -#: js/palette.js:843 -#: js/palette.js:2148 -#: js/palette.js:2159 -#: js/palette.js:2170 -#: js/palette.js:2181 -#: js/palette.js:2190 -#: js/turtledefs.js:35 -#: js/basicblocks.js:1572 -#: js/basicblocks.js:1592 -#: js/basicblocks.js:1606 -#: js/basicblocks.js:4069 -#: js/basicblocks.js:4079 -#: js/basicblocks.js:4127 -#: js/basicblocks.js:4140 -#: js/basicblocks.js:4184 -#: js/basicblocks.js:4207 -#: js/basicblocks.js:4262 -#: js/basicblocks.js:4267 -#: js/basicblocks.js:4272 -#: js/rubrics.js:478 -#: js/macros.js:47 -#: js/macros.js:48 -#: js/macros.js:66 -#: js/macros.js:66 -#: js/macros.js:68 -#: js/macros.js:141 -#: js/blocks.js:1034 -#: js/blocks.js:2922 -#: js/blocks.js:2923 -#: js/blocks.js:3137 -#: js/blocks.js:3442 -#: js/blocks.js:3636 -#: js/blocks.js:4680 -#: js/blocks.js:5545 -#: js/musickeyboard.js:1823 -#: js/pitchtimematrix.js:3385 -#: js/rhythmruler.js:1229 -#: js/rhythmruler.js:1231 -#: js/rhythmruler.js:1340 -#: js/rhythmruler.js:1342 -#: js/RhythmBlockPaletteBlocks.js:14 -#: js/RhythmBlockPaletteBlocks.js:177 -#: js/RhythmBlockPaletteBlocks.js:14 -#: js/RhythmBlockPaletteBlocks.js:177 -#: js/RhythmBlockPaletteBlocks.js:14 -#: js/RhythmBlockPaletteBlocks.js:177 -#: js/RhythmBlockPaletteBlocks.js:14 -#: js/RhythmBlockPaletteBlocks.js:177 -#: js/RhythmBlockPaletteBlocks.js:14 -#: js/RhythmBlockPaletteBlocks.js:170 -#: js/block.js:1436 -#: js/block.js:7910 -#: js/block.js:7931 -#: js/block.js:7948 -#: js/activity.js:2693 -#: js/palette.js:932 -#: js/palette.js:941 -#: js/palette.js:950 -#: js/palette.js:959 -#: js/palette.js:2511 -#: js/palette.js:2522 -#: js/palette.js:2533 -#: js/palette.js:2544 -#: js/palette.js:2563 -#: js/turtledefs.js:76 -#: js/rubrics.js:497 -#: js/macros.js:153 -#: js/macros.js:249 -#: js/macros.js:250 -#: js/macros.js:259 -#: js/macros.js:801 -#: js/blocks.js:1120 -#: js/blocks.js:3549 -#: js/blocks.js:3550 -#: js/blocks.js:3786 -#: js/blocks.js:4168 -#: js/blocks.js:4363 -#: js/blocks.js:5526 -#: js/blocks.js:6776 -#: js/ActionBlocks.js:99 -#: js/ActionBlocks.js:147 -#: js/ActionBlocks.js:350 -#: js/ActionBlocks.js:415 -#: js/ActionBlocks.js:569 -#: js/ActionBlocks.js:629 -#: js/ActionBlocks.js:765 -#: js/ActionBlocks.js:768 -#: js/ActionBlocks.js:773 -#: js/ActionBlocks.js:805 -#: js/MeterBlocks.js:412 -#: js/MeterBlocks.js:479 -#: js/MeterBlocks.js:568 -#: js/MeterBlocks.js:669 -#: js/musickeyboard.js:2360 -#: js/pitchtimematrix.js:4708 -#: js/rhythmruler.js:1602 -#: js/rhythmruler.js:1610 -#: js/rhythmruler.js:1911 -#: js/rhythmruler.js:1919 -#: js/block.js:1436 -#: js/block.js:8089 -#: js/block.js:8110 -#: js/block.js:8127 -#: js/activity.js:2968 -#: js/palette.js:503 -#: js/palette.js:512 -#: js/palette.js:521 -#: js/palette.js:530 -#: js/palette.js:1122 -#: js/palette.js:1133 -#: js/palette.js:1144 -#: js/palette.js:1155 -#: js/palette.js:1174 -#: js/turtledefs.js:76 -#: js/rubrics.js:497 -#: js/macros.js:153 -#: js/macros.js:249 -#: js/macros.js:250 -#: js/macros.js:259 -#: js/macros.js:801 -#: js/blocks.js:1120 -#: js/blocks.js:3572 -#: js/blocks.js:3573 -#: js/blocks.js:3809 -#: js/blocks.js:4191 -#: js/blocks.js:4382 -#: js/blocks.js:5545 -#: js/blocks.js:6795 -#: js/ActionBlocks.js:99 -#: js/ActionBlocks.js:147 -#: js/ActionBlocks.js:343 -#: js/ActionBlocks.js:408 -#: js/ActionBlocks.js:562 -#: js/ActionBlocks.js:622 -#: js/ActionBlocks.js:749 -#: js/ActionBlocks.js:752 -#: js/ActionBlocks.js:757 -#: js/ActionBlocks.js:789 -#: js/MeterBlocks.js:390 -#: js/MeterBlocks.js:419 -#: js/MeterBlocks.js:455 -#: js/MeterBlocks.js:494 -#: js/musickeyboard.js:2421 -#: js/pitchtimematrix.js:4706 -#: js/rhythmruler.js:1602 -#: js/rhythmruler.js:1610 -#: js/rhythmruler.js:1911 -#: js/rhythmruler.js:1919 -#: js/block.js:1436 -#: js/block.js:8073 -#: js/block.js:8094 -#: js/block.js:8111 -#: js/activity.js:2984 -#: js/palette.js:503 -#: js/palette.js:512 -#: js/palette.js:521 -#: js/palette.js:530 -#: js/palette.js:1122 -#: js/palette.js:1133 -#: js/palette.js:1144 -#: js/palette.js:1155 -#: js/palette.js:1174 -#: js/turtledefs.js:78 -#: js/rubrics.js:501 -#: js/macros.js:153 -#: js/macros.js:249 -#: js/macros.js:250 -#: js/macros.js:259 -#: js/macros.js:801 -#: js/blocks.js:1112 -#: js/blocks.js:3545 -#: js/blocks.js:3546 -#: js/blocks.js:3779 -#: js/blocks.js:4160 -#: js/blocks.js:4346 -#: js/blocks.js:5496 -#: js/blocks.js:6721 -#: js/ActionBlocks.js:99 -#: js/ActionBlocks.js:147 -#: js/ActionBlocks.js:343 -#: js/ActionBlocks.js:408 -#: js/ActionBlocks.js:562 -#: js/ActionBlocks.js:622 -#: js/ActionBlocks.js:750 -#: js/ActionBlocks.js:753 -#: js/ActionBlocks.js:758 -#: js/ActionBlocks.js:790 -#: js/MeterBlocks.js:396 -#: js/MeterBlocks.js:425 -#: js/MeterBlocks.js:461 -#: js/MeterBlocks.js:500 -#: js/musickeyboard.js:2495 -#: js/pitchtimematrix.js:4718 -#: js/rhythmruler.js:1602 -#: js/rhythmruler.js:1610 -#: js/rhythmruler.js:1911 -#: js/rhythmruler.js:1919 -#: js/block.js:1436 -#: js/block.js:8073 -#: js/block.js:8094 -#: js/block.js:8111 -#: js/activity.js:2984 -#: js/palette.js:503 -#: js/palette.js:512 -#: js/palette.js:521 -#: js/palette.js:530 -#: js/palette.js:1122 -#: js/palette.js:1133 -#: js/palette.js:1144 -#: js/palette.js:1155 -#: js/palette.js:1174 -#: js/turtledefs.js:78 -#: js/rubrics.js:501 -#: js/macros.js:153 -#: js/macros.js:249 -#: js/macros.js:250 -#: js/macros.js:259 -#: js/macros.js:801 -#: js/blocks.js:1112 -#: js/blocks.js:3545 -#: js/blocks.js:3546 -#: js/blocks.js:3779 -#: js/blocks.js:4160 -#: js/blocks.js:4346 -#: js/blocks.js:5496 -#: js/blocks.js:6721 -#: js/ActionBlocks.js:99 -#: js/ActionBlocks.js:147 -#: js/ActionBlocks.js:343 -#: js/ActionBlocks.js:408 -#: js/ActionBlocks.js:562 -#: js/ActionBlocks.js:622 -#: js/ActionBlocks.js:750 -#: js/ActionBlocks.js:753 -#: js/ActionBlocks.js:758 -#: js/ActionBlocks.js:790 -#: js/MeterBlocks.js:396 -#: js/MeterBlocks.js:425 -#: js/MeterBlocks.js:461 -#: js/MeterBlocks.js:500 -#: js/musickeyboard.js:2495 -#: js/pitchtimematrix.js:4718 -#: js/rhythmruler.js:1602 -#: js/rhythmruler.js:1610 -#: js/rhythmruler.js:1911 -#: js/rhythmruler.js:1919 -#: js/block.js:1436 -#: js/block.js:8073 -#: js/block.js:8094 -#: js/block.js:8111 -#: js/activity.js:2984 -#: js/palette.js:506 -#: js/palette.js:515 -#: js/palette.js:524 -#: js/palette.js:533 -#: js/palette.js:1128 -#: js/palette.js:1139 -#: js/palette.js:1150 -#: js/palette.js:1161 -#: js/palette.js:1180 -#: js/turtledefs.js:78 -#: js/rubrics.js:501 -#: js/macros.js:153 -#: js/macros.js:249 -#: js/macros.js:250 -#: js/macros.js:259 -#: js/macros.js:801 -#: js/blocks.js:1112 -#: js/blocks.js:3545 -#: js/blocks.js:3546 -#: js/blocks.js:3779 -#: js/blocks.js:4160 -#: js/blocks.js:4346 -#: js/blocks.js:5496 -#: js/blocks.js:6721 -#: js/ActionBlocks.js:99 -#: js/ActionBlocks.js:147 -#: js/ActionBlocks.js:343 -#: js/ActionBlocks.js:408 -#: js/ActionBlocks.js:562 -#: js/ActionBlocks.js:622 -#: js/ActionBlocks.js:750 -#: js/ActionBlocks.js:753 -#: js/ActionBlocks.js:758 -#: js/ActionBlocks.js:790 -#: js/MeterBlocks.js:396 -#: js/MeterBlocks.js:425 -#: js/MeterBlocks.js:461 -#: js/MeterBlocks.js:500 -#: js/musickeyboard.js:2495 -#: js/pitchtimematrix.js:4718 -#: js/rhythmruler.js:1602 -#: js/rhythmruler.js:1610 -#: js/rhythmruler.js:1911 -#: js/rhythmruler.js:1919 -#: js/block.js:1414 -#: js/block.js:4018 -#: js/block.js:4036 -#: js/block.js:4047 -#: js/activity.js:2899 -#: js/palette.js:486 -#: js/palette.js:495 -#: js/palette.js:504 -#: js/palette.js:513 -#: js/palette.js:1089 -#: js/palette.js:1100 -#: js/palette.js:1111 -#: js/palette.js:1122 -#: js/palette.js:1141 -#: js/turtledefs.js:78 -#: js/rubrics.js:501 -#: js/macros.js:170 -#: js/macros.js:266 -#: js/macros.js:267 -#: js/macros.js:276 -#: js/macros.js:828 -#: js/blocks.js:1071 -#: js/blocks.js:3210 -#: js/blocks.js:3211 -#: js/blocks.js:3428 -#: js/blocks.js:3752 -#: js/blocks.js:3932 -#: js/blocks.js:4976 -#: js/blocks.js:5845 -#: js/ActionBlocks.js:99 -#: js/ActionBlocks.js:147 -#: js/ActionBlocks.js:343 -#: js/ActionBlocks.js:408 -#: js/ActionBlocks.js:562 -#: js/ActionBlocks.js:622 -#: js/ActionBlocks.js:750 -#: js/ActionBlocks.js:753 -#: js/ActionBlocks.js:758 -#: js/ActionBlocks.js:790 -#: js/MeterBlocks.js:396 -#: js/MeterBlocks.js:426 -#: js/MeterBlocks.js:462 -#: js/MeterBlocks.js:501 -#: js/musickeyboard.js:2495 -#: js/rhythmruler.js:1874 -#: js/rhythmruler.js:1881 -#: js/rhythmruler.js:2065 -#: js/rhythmruler.js:2072 -#: js/phrasemaker.js:4226 -#: js/block.js:1414 -#: js/block.js:4020 -#: js/block.js:4038 -#: js/block.js:4049 -#: js/activity.js:2899 -#: js/palette.js:486 -#: js/palette.js:495 -#: js/palette.js:504 -#: js/palette.js:513 -#: js/palette.js:1089 -#: js/palette.js:1100 -#: js/palette.js:1111 -#: js/palette.js:1122 -#: js/palette.js:1141 -#: js/turtledefs.js:78 -#: js/rubrics.js:501 -#: js/macros.js:170 -#: js/macros.js:266 -#: js/macros.js:267 -#: js/macros.js:276 -#: js/macros.js:828 -#: js/blocks.js:1071 -#: js/blocks.js:3210 -#: js/blocks.js:3211 -#: js/blocks.js:3428 -#: js/blocks.js:3752 -#: js/blocks.js:3932 -#: js/blocks.js:4976 -#: js/blocks.js:5845 -#: js/ActionBlocks.js:99 -#: js/ActionBlocks.js:147 -#: js/ActionBlocks.js:343 -#: js/ActionBlocks.js:408 -#: js/ActionBlocks.js:562 -#: js/ActionBlocks.js:622 -#: js/ActionBlocks.js:750 -#: js/ActionBlocks.js:753 -#: js/ActionBlocks.js:758 -#: js/ActionBlocks.js:790 -#: js/MeterBlocks.js:396 -#: js/MeterBlocks.js:426 -#: js/MeterBlocks.js:462 -#: js/MeterBlocks.js:501 -#: js/musickeyboard.js:2495 -#: js/rhythmruler.js:1874 -#: js/rhythmruler.js:1881 -#: js/rhythmruler.js:2065 -#: js/rhythmruler.js:2072 -#: js/phrasemaker.js:4226 -#: js/block.js:1439 -#: js/block.js:4063 -#: js/block.js:4081 -#: js/block.js:4092 -#: js/palette.js:505 -#: js/palette.js:514 -#: js/palette.js:523 -#: js/palette.js:532 -#: js/palette.js:1125 -#: js/palette.js:1136 -#: js/palette.js:1147 -#: js/palette.js:1158 -#: js/palette.js:1177 -#: js/turtledefs.js:101 -#: js/rubrics.js:522 -#: js/macros.js:168 -#: js/macros.js:264 -#: js/macros.js:265 -#: js/macros.js:274 -#: js/macros.js:826 -#: js/blocks.js:1001 -#: js/blocks.js:3394 -#: js/blocks.js:3395 -#: js/blocks.js:3620 -#: js/blocks.js:3981 -#: js/blocks.js:4172 -#: js/blocks.js:5305 -#: js/blocks.js:6432 -#: js/ActionBlocks.js:119 -#: js/ActionBlocks.js:167 -#: js/ActionBlocks.js:364 -#: js/ActionBlocks.js:429 -#: js/ActionBlocks.js:582 -#: js/ActionBlocks.js:643 -#: js/ActionBlocks.js:772 -#: js/ActionBlocks.js:775 -#: js/ActionBlocks.js:780 -#: js/ActionBlocks.js:813 -#: js/MeterBlocks.js:416 -#: js/MeterBlocks.js:446 -#: js/MeterBlocks.js:482 -#: js/MeterBlocks.js:521 -#: js/musickeyboard.js:2564 -#: js/rhythmruler.js:1925 -#: js/rhythmruler.js:1932 -#: js/rhythmruler.js:2116 -#: js/rhythmruler.js:2123 -#: js/phrasemaker.js:4402 -#: js/planetInterface.js:101 -#: js/planetInterface.js:101 -#: js/planetInterface.js:101 -#: js/planetInterface.js:101 -#: js/planetInterface.js:102 -#: js/planetInterface.js:104 -#: js/planetInterface.js:104 -#: js/planetInterface.js:104 -msgid "project undefined" +#: js/SaveInterface.js:59 +#: js/SaveInterface.js:61 +#: js/SaveInterface.js:93 +msgid "Music Blocks Project" msgstr "" -#: js/logo.js:61 -msgid "Not a valid pitch name" +#: js/SaveInterface.js:63 +msgid "This project was created in Music Blocks" msgstr "" -#: js/logo.js:507 -#: js/ProgramBlocks.js:258 -#: js/ProgramBlocks.js:427 -msgid "You must select a file." +#: js/SaveInterface.js:67 +msgid "Music Blocks is a Free/Libre Software application." msgstr "" -#: js/logo.js:1184 -#: js/turtles.js:118 -#: js/turtle-painter.js:1192 -#: js/turtle-painter.js:1193 -#: js/block.js:1463 -#: js/lilypond.js:757 -#: js/lilypond.js:921 -#: js/lilypond.js:959 -#: js/ActionBlocks.js:1223 -#: js/ProgramBlocks.js:1267 -msgid "start" -msgstr "เริ่ม" - -#: js/logo.js:1696 -msgid "Playback is ready." +#: js/SaveInterface.js:69 +msgid "The source code can be accessed at" msgstr "" -#: js/blocks.js:1011 -#: js/blocks.js:3427 -#: js/blocks.js:3428 -#: js/blocks.js:3653 -#: js/blocks.js:4012 -#: js/blocks.js:4205 -#: js/blocks.js:5343 -#: js/blocks.js:6474 -#: js/palette.js:527 -#: js/palette.js:536 -#: js/palette.js:545 -#: js/palette.js:554 -#: js/palette.js:1131 -#: js/palette.js:1142 -#: js/palette.js:1153 -#: js/palette.js:1164 -#: js/palette.js:1183 -#: js/rubrics.js:529 -#: js/macros.js:170 -#: js/macros.js:266 -#: js/macros.js:267 -#: js/macros.js:276 -#: js/macros.js:828 -#: js/block.js:1449 -#: js/block.js:4164 -#: js/block.js:4182 -#: js/block.js:4193 -#: js/turtledefs.js:128 -#: js/turtledefs.js:230 -#: js/ActionBlocks.js:254 -#: js/ActionBlocks.js:307 -#: js/ActionBlocks.js:617 -#: js/ActionBlocks.js:716 -#: js/ActionBlocks.js:961 -#: js/ActionBlocks.js:1049 -#: js/ActionBlocks.js:1322 -#: js/ActionBlocks.js:1325 -#: js/ActionBlocks.js:1337 -#: js/ActionBlocks.js:1404 -#: js/MeterBlocks.js:715 -#: js/MeterBlocks.js:768 -#: js/MeterBlocks.js:831 -#: js/MeterBlocks.js:892 -#: js/phrasemaker.js:4412 -#: js/musickeyboard.js:2647 -#: js/rhythmruler.js:1928 -#: js/rhythmruler.js:1935 -#: js/rhythmruler.js:2119 -#: js/rhythmruler.js:2126 -msgid "action" -msgstr "การกระทำ" - -#: js/blocks.js:1205 -#: js/blocks.js:3380 -#: js/blocks.js:3770 -#: js/blocks.js:3801 -#: js/blocks.js:3850 -#: js/blocks.js:3885 -#: js/blocks.js:6497 -#: js/palette.js:509 -#: js/palette.js:638 -#: js/palette.js:1107 -#: js/BoxesBlocks.js:282 -#: js/BoxesBlocks.js:285 -#: js/BoxesBlocks.js:405 -#: js/BoxesBlocks.js:594 -msgid "box" -msgstr "กล่อง" - -#: js/blocks.js:1680 -msgid "Consider breaking this stack into parts." +#: js/SaveInterface.js:72 +msgid "For more information, please consult the" msgstr "" -#: js/blocks.js:2408 -#: js/palette.js:653 -#: js/MediaBlocks.js:602 -msgid "open file" -msgstr "เปิดไฟล์" - -#: js/blocks.js:2415 -#: js/blocks.js:2423 -#: js/activity.js:1875 -msgid "audio file" +#: js/SaveInterface.js:76 +#: js/turtledefs.js:795 +msgid "Music Blocks Guide" msgstr "" -#: js/blocks.js:2536 -#: js/blocks.js:3147 -#: js/block.js:3543 -msgid "on2" +#: js/SaveInterface.js:83 +msgid "Alternatively, open the file in Music Blocks using the Load project button." msgstr "" -#: js/blocks.js:2538 -#: js/blocks.js:3149 -#: js/block.js:3545 -msgid "off" +#: js/SaveInterface.js:85 +msgid "Project Code" msgstr "" -#: js/blocks.js:2543 -#: js/blocks.js:3154 -#: js/palette.js:618 -#: js/block.js:3466 -#: js/BooleanBlocks.js:77 -#: js/BooleanBlocks.js:167 -#: js/BooleanBlocks.js:251 -#: js/BooleanBlocks.js:335 -#: js/BooleanBlocks.js:433 -#: js/BooleanBlocks.js:539 -#: js/BooleanBlocks.js:640 -#: js/BooleanBlocks.js:741 -#: js/BooleanBlocks.js:847 -#: js/BooleanBlocks.js:948 -#: js/BooleanBlocks.js:1033 -#: js/SensorsBlocks.js:910 -msgid "true" +#: js/SaveInterface.js:87 +msgid "This code stores data about the blocks in a project." msgstr "" -#: js/blocks.js:2545 -#: js/blocks.js:3156 -#: js/block.js:3466 -#: js/BooleanBlocks.js:79 -#: js/BooleanBlocks.js:169 -#: js/BooleanBlocks.js:253 -#: js/BooleanBlocks.js:337 -#: js/BooleanBlocks.js:435 -#: js/BooleanBlocks.js:541 -#: js/BooleanBlocks.js:642 -#: js/BooleanBlocks.js:743 -#: js/BooleanBlocks.js:849 -#: js/BooleanBlocks.js:950 -#: js/SensorsBlocks.js:912 -msgid "false" +#: js/SaveInterface.js:89 +msgid "Show" msgstr "" -#: js/blocks.js:3183 -#: js/palette.js:574 -#: js/MediaBlocks.js:892 -#: js/MediaBlocks.js:963 -msgid "text" -msgstr "ถ้ดไป" - -#: js/blocks.js:3379 -#: js/palette.js:641 -#: js/palette.js:642 -#: js/BoxesBlocks.js:514 -msgid "store in box" +#: js/SaveInterface.js:91 +msgid "Hide" msgstr "" -#: js/blocks.js:3384 -#: js/blocks.js:3824 -#: js/blocks.js:3859 -#: js/blocks.js:3894 -#: js/blocks.js:5773 -#: js/blocks.js:5794 -#: js/BoxesBlocks.js:772 -msgid "box1" +#: js/SaveInterface.js:131 +#: js/SaveInterface.js:204 +#: js/SaveInterface.js:262 +#: js/SaveInterface.js:389 +#: js/SaveInterface.js:417 +#: js/activity.js:4884 +#: planet/js/ProjectStorage.js:27 +#: planet/js/GlobalPlanet.js:467 +#: planet/js/GlobalPlanet.js:469 +#: planet/js/GlobalPlanet.js:495 +#.TRANS: default project title when saving as Lilypond +msgid "My Project" msgstr "" -#: js/blocks.js:3386 -#: js/blocks.js:3826 -#: js/blocks.js:3861 -#: js/blocks.js:3896 -#: js/blocks.js:5775 -#: js/blocks.js:5796 -#: js/BoxesBlocks.js:663 -msgid "box2" +#: js/SaveInterface.js:197 +#: planet/js/SaveInterface.js:58 +msgid "No description provided" msgstr "" -#: js/blocks.js:4058 -#: js/palette.js:639 -#: js/palette.js:644 -#: js/palette.js:1043 -#: js/BoxesBlocks.js:591 -msgid "store in" -msgstr "นำไปเก็บไว้" - -#: js/blocks.js:4058 -#: js/EnsembleBlocks.js:391 -#: js/EnsembleBlocks.js:402 -#: js/MediaBlocks.js:746 -#: js/ProgramBlocks.js:390 -#: js/ProgramBlocks.js:495 -#: js/ProgramBlocks.js:658 -#: js/BoxesBlocks.js:595 -#: js/PitchBlocks.js:656 -#: js/PitchBlocks.js:932 -#: js/PitchBlocks.js:1827 -#: js/ToneBlocks.js:1025 -#: js/DictBlocks.js:215 -#: js/DictBlocks.js:289 -msgid "name" -msgstr "ชื่อ" - -#: js/blocks.js:4058 -#: js/RhythmBlocks.js:1130 -#: js/BoxesBlocks.js:75 -#: js/BoxesBlocks.js:595 -#: js/HeapBlocks.js:544 -#: js/DictBlocks.js:289 -#: js/DictBlocks.js:430 -msgid "value" -msgstr "ค่า" +#: js/SaveInterface.js:332 +msgid "Your recording is in progress." +msgstr "" -#: js/blocks.js:4907 -msgid "There is no block selected." +#: js/SaveInterface.js:401 +#.TRANS: File name prompt for save as Lilypond +msgid "File name" msgstr "" -#: js/blocks.js:5002 -#: js/MediaBlocks.js:888 -msgid "show" -msgstr "แสดง" +#: js/SaveInterface.js:403 +#: planet/js/StringHelper.js:39 +#.TRANS: Project title prompt for save as Lilypond +msgid "Project title" +msgstr "" -#: js/blocks.js:5005 -#: js/MediaBlocks.js:803 -#.TRANS: Avatar is the image used to determine the appearance of the mouse. -msgid "avatar" +#: js/SaveInterface.js:405 +#.TRANS: Project title prompt for save as Lilypond +msgid "Project author" msgstr "" -#: js/blocks.js:5008 -#: js/ToneBlocks.js:1010 -#: js/sampler.js:693 -#.TRANS: The sound sample that the user uploads. -msgid "sample" +#: js/SaveInterface.js:407 +#.TRANS: MIDI prompt for save as Lilypond +msgid "Include MIDI output?" msgstr "" -#: js/turtles.js:874 -msgid "Grid" -msgstr "กริด" +#: js/SaveInterface.js:409 +#.TRANS: Guitar prompt for save as Lilypond +msgid "Include guitar tablature output?" +msgstr "" -#: js/turtles.js:891 -#: js/turtledefs.js:626 -msgid "Clean" -msgstr "ล้าง" +#: js/SaveInterface.js:411 +#.TRANS: Lilypond is a scripting language for generating sheet music +msgid "Save as Lilypond" +msgstr "" -#: js/turtles.js:912 -#: js/turtledefs.js:632 -msgid "Collapse" +#: js/SaveInterface.js:426 +#: js/blocks/EnsembleBlocks.js:75 +#: js/blocks/EnsembleBlocks.js:154 +#: js/blocks/EnsembleBlocks.js:216 +#: js/blocks/EnsembleBlocks.js:302 +#: js/blocks/EnsembleBlocks.js:348 +#: js/blocks/EnsembleBlocks.js:389 +#: js/blocks/EnsembleBlocks.js:441 +#: js/blocks/EnsembleBlocks.js:490 +#: js/blocks/EnsembleBlocks.js:536 +#: js/blocks/EnsembleBlocks.js:583 +#: js/blocks/EnsembleBlocks.js:637 +#: js/blocks/EnsembleBlocks.js:753 +#: js/blocks/EnsembleBlocks.js:840 +#: js/blocks/EnsembleBlocks.js:899 +#: js/blocks/EnsembleBlocks.js:942 +#: js/blocks/EnsembleBlocks.js:1212 +#: js/blocks/EnsembleBlocks.js:1280 +#.TRANS: default project author when saving as Lilypond +msgid "Mr. Mouse" msgstr "" -#: js/turtles.js:940 -msgid "Expand" +#: js/SaveInterface.js:573 +msgid "The Lilypond code is copied to clipboard. You can paste it here: " msgstr "" #: js/languagebox.js:198 @@ -2416,6934 +150,7488 @@ msgstr "" msgid "Music Blocks is already set to this language." msgstr "Music Blocks ได้รับการตั้งค่าเป็นภาษานี้แล้ว" -#: js/piemenus.js:200 -#: js/musicutils.js:808 -#: js/musicutils.js:824 -#: js/phrasemaker.js:1672 -#: js/musickeyboard.js:2041 -#: js/sampler.js:544 -#.TRANS: double sharp is a music term related to pitch -msgid "double sharp" -msgstr "" - -#: js/piemenus.js:201 -#: js/PitchBlocks.js:1510 -#: js/PitchActions.js:580 -#: js/musicutils.js:806 -#: js/musicutils.js:825 -#: js/phrasemaker.js:1673 -#: js/musickeyboard.js:2042 -#: js/sampler.js:545 -#.TRANS: sharp is a half-step up in pitch -#.TRANS: sharp is a music term related to pitch -msgid "sharp" -msgstr "เสียงแหลม" - -#: js/piemenus.js:202 -#: js/musicutils.js:804 -#: js/musicutils.js:826 -#: js/phrasemaker.js:1674 -#: js/musickeyboard.js:2043 -#: js/sampler.js:546 -#.TRANS: natural is a music term related to pitch -msgid "natural" +#: js/planetInterface.js:131 +msgid "project undefined" msgstr "" -#: js/piemenus.js:203 -#: js/PitchBlocks.js:1469 -#: js/PitchActions.js:583 -#: js/musicutils.js:802 -#: js/musicutils.js:827 -#: js/phrasemaker.js:1675 -#: js/musickeyboard.js:2044 -#: js/sampler.js:547 -#.TRANS: flat is a half-step down in pitch -#.TRANS: flat is a music term related to pitch -msgid "flat" -msgstr "ราบ" - -#: js/piemenus.js:204 -#: js/musicutils.js:800 -#: js/musicutils.js:828 -#: js/phrasemaker.js:1676 -#: js/musickeyboard.js:2045 -#: js/sampler.js:548 -#.TRANS: double flat is a music term related to pitch -msgid "double flat" -msgstr "" +#: js/rubrics.js:523 +#: js/turtledefs.js:119 +#: js/turtledefs.js:221 +#: js/blocks/RhythmBlockPaletteBlocks.js:52 +#: js/blocks/RhythmBlockPaletteBlocks.js:234 +#: js/blocks/ProgramBlocks.js:745 +#: js/widgets/rhythmruler.js:2057 +#: js/widgets/rhythmruler.js:2064 +#: js/widgets/rhythmruler.js:2133 +#: js/widgets/rhythmruler.js:2140 +#: js/widgets/rhythmruler.js:2219 +#.TRANS: an arrangement of notes based on duration +msgid "rhythm" +msgstr "จังหวะ" -#: js/piemenus.js:2861 -#: js/PitchBlocks.js:1357 -#: js/musicutils.js:627 -#.TRANS: unison means the note is the same as the current note -#.TRANS: unison is a music term related to intervals -msgid "unison" -msgstr "" +#: js/rubrics.js:524 +#: js/turtledefs.js:121 +#: js/turtledefs.js:223 +#: js/block-verbose.js:2622 +#: js/block.js:2550 +#: js/blocks/IntervalsBlocks.js:63 +#: js/blocks/SensorsBlocks.js:178 +#: js/blocks/PitchBlocks.js:1839 +#: js/blocks/PitchBlocks.js:1853 +#: js/widgets/musickeyboard.js:1935 +#: js/widgets/phrasemaker.js:1036 +#.TRANS: pitch number +#.TRANS: pitch number +#.TRANS: we specify pitch in terms of a name and an octave. The name can be CDEFGAB or Do Re Mi Fa Sol La Ti. Octave is a number between 1 and 8. +msgid "pitch" +msgstr "ระดับเสียง" -#: js/piemenus.js:3015 -#: js/piemenus.js:3088 -#: js/musicutils.js:635 -#: js/musicutils.js:810 -#: js/musicutils.js:912 -#.TRANS: major is a music term related to intervals and mode -msgid "major" -msgstr "" +#: js/rubrics.js:525 +#: js/turtledefs.js:123 +#: js/turtledefs.js:225 +msgid "tone" +msgstr "โทน" -#: js/piemenus.js:3015 -#: js/piemenus.js:3088 -#: js/musicutils.js:653 -#.TRANS: modal scale for music -msgid "ionian" +#: js/rubrics.js:526 +#: js/lilypond.js:605 +#: js/lilypond.js:904 +#: js/lilypond.js:910 +#: js/lilypond.js:948 +msgid "mouse" msgstr "" -#: js/piemenus.js:3017 -#: js/piemenus.js:3092 -#: js/musicutils.js:633 -#: js/musicutils.js:811 -#: js/musicutils.js:909 -#.TRANS: minor is a music term related to intervals and mode -msgid "minor" -msgstr "" +#: js/rubrics.js:527 +#: js/turtledefs.js:132 +#: js/turtledefs.js:234 +#: js/widgets/phrasemaker.js:1040 +msgid "pen" +msgstr "ปากกา" -#: js/piemenus.js:3017 -#: js/piemenus.js:3092 -#: js/musicutils.js:663 -#.TRANS: modal scale for music -msgid "aeolian" -msgstr "" +#: js/rubrics.js:528 +#: js/turtledefs.js:133 +#: js/turtledefs.js:235 +#: js/blocks/NumberBlocks.js:981 +#: js/blocks/PitchBlocks.js:1717 +#: js/blocks/PitchBlocks.js:1758 +msgid "number" +msgstr "ตัวเลข" -#: js/piemenus.js:3407 -msgid "Duplicate" -msgstr "" - -#: js/piemenus.js:3408 -#: js/turtledefs.js:534 -msgid "Extract" -msgstr "" - -#: js/piemenus.js:3409 -msgid "Move to trash" -msgstr "" - -#: js/piemenus.js:3410 -#: js/timbre.js:968 -#: js/StringHelper.js:69 -msgid "Close" -msgstr "" - -#: js/piemenus.js:3416 -msgid "Save stack" -msgstr "บันทึก" - -#: js/piemenus.js:3420 -#: js/toolbar.js:60 -#: js/toolbar.js:120 -#: js/toolbar.js:185 -#: js/toolbar.js:240 -#: js/turtledefs.js:752 -msgid "Help" -msgstr "ช่วยเหลือ" - -#: js/piemenus.js:3762 -msgid "You have chosen key " -msgstr "" - -#: js/piemenus.js:3766 -msgid " for your pitch preview." -msgstr "" - -#: js/palette.js:571 -msgid "grid" -msgstr "กริด" - -#: js/palette.js:577 -#: js/block.js:1540 -#: js/block.js:2343 -#: js/turtledefs.js:126 -#: js/turtledefs.js:228 -#: js/lilypond.js:740 -#: js/lilypond.js:905 -#: js/lilypond.js:949 -#: js/DrumBlocks.js:486 -#: js/RhythmBlocks.js:766 -#: js/VolumeBlocks.js:502 -#: js/phrasemaker.js:823 -msgid "drum" -msgstr "" - -#: js/palette.js:580 -msgid "effect" -msgstr "" - -#: js/palette.js:586 -msgid "sargam" -msgstr "" - -#: js/palette.js:589 -#: js/activity.js:1833 -#: js/RhythmBlocks.js:923 -#: js/PitchBlocks.js:442 -#: js/PitchBlocks.js:1748 -#.TRANS: a numeric mapping of the notes in an octave based on the musical mode -msgid "scale degree" -msgstr "" - -#: js/palette.js:592 -#: js/activity.js:1860 -msgid "mode name" -msgstr "" - -#: js/palette.js:595 -#: js/activity.js:1839 -msgid "invert mode" -msgstr "" - -#: js/palette.js:598 -#: js/activity.js:1836 -msgid "voice name" -msgstr "" - -#: js/palette.js:601 -#: js/PitchBlocks.js:1181 -msgid "custom pitch" -msgstr "" - -#: js/palette.js:605 -#: js/block.js:1456 -#: js/block.js:1575 -#: js/WidgetBlocks.js:218 -#: js/IntervalsBlocks.js:63 -msgid "temperament" -msgstr "" - -#: js/palette.js:609 -msgid "accidental" -msgstr "" - -#: js/palette.js:615 -#: js/activity.js:1866 -msgid "interval name" -msgstr "" - -#: js/palette.js:633 -#: js/PitchBlocks.js:405 -msgid "pitch converter" -msgstr "" - -#: js/rubrics.js:522 -#: js/turtledefs.js:119 -#: js/turtledefs.js:221 -#: js/RhythmBlockPaletteBlocks.js:52 -#: js/RhythmBlockPaletteBlocks.js:233 -#: js/ProgramBlocks.js:745 -#: js/rhythmruler.js:1670 -#: js/rhythmruler.js:1677 -#: js/rhythmruler.js:1745 -#: js/rhythmruler.js:1752 -#: js/rhythmruler.js:1830 -#.TRANS: an arrangement of notes based on duration -msgid "rhythm" -msgstr "จังหวะ" - -#: js/rubrics.js:523 -#: js/block.js:2339 -#: js/turtledefs.js:121 -#: js/turtledefs.js:223 -#: js/IntervalsBlocks.js:63 -#: js/PitchBlocks.js:1801 -#: js/PitchBlocks.js:1814 -#: js/SensorsBlocks.js:178 -#: js/phrasemaker.js:821 -#: js/musickeyboard.js:1653 -#.TRANS: pitch number -#.TRANS: we specify pitch in terms of a name and an octave. The name can be CDEFGAB or Do Re Mi Fa Sol La Ti. Octave is a number between 1 and 8. -msgid "pitch" -msgstr "ระดับเสียง" - -#: js/rubrics.js:524 -#: js/turtledefs.js:123 -#: js/turtledefs.js:225 -msgid "tone" -msgstr "โทน" - -#: js/rubrics.js:525 -#: js/lilypond.js:613 -#: js/lilypond.js:912 -#: js/lilypond.js:918 -#: js/lilypond.js:956 -msgid "mouse" -msgstr "" - -#: js/rubrics.js:526 -#: js/turtledefs.js:132 -#: js/turtledefs.js:234 -#: js/phrasemaker.js:825 -msgid "pen" -msgstr "ปากกา" - -#: js/rubrics.js:527 -#: js/turtledefs.js:133 -#: js/turtledefs.js:235 -#: js/NumberBlocks.js:905 -#: js/PitchBlocks.js:1679 -#: js/PitchBlocks.js:1720 -msgid "number" -msgstr "ตัวเลข" - -#: js/rubrics.js:528 -#: js/turtledefs.js:127 -#: js/turtledefs.js:229 -msgid "flow" -msgstr "ความคล่องตัว" +#: js/rubrics.js:529 +#: js/turtledefs.js:127 +#: js/turtledefs.js:229 +msgid "flow" +msgstr "ความคล่องตัว" #: js/rubrics.js:530 +#: js/turtledefs.js:128 +#: js/turtledefs.js:230 +#: js/block-verbose.js:1609 +#: js/block-verbose.js:4559 +#: js/block-verbose.js:4577 +#: js/block-verbose.js:4588 +#: js/block.js:1573 +#: js/block.js:4483 +#: js/block.js:4501 +#: js/block.js:4512 +#: js/blocks.js:1018 +#: js/blocks.js:3491 +#: js/blocks.js:3492 +#: js/blocks.js:3717 +#: js/blocks.js:4076 +#: js/blocks.js:4269 +#: js/blocks.js:5432 +#: js/blocks.js:6563 +#: js/macros.js:170 +#: js/macros.js:266 +#: js/macros.js:267 +#: js/macros.js:276 +#: js/macros.js:828 +#: js/palette.js:527 +#: js/palette.js:536 +#: js/palette.js:545 +#: js/palette.js:554 +#: js/palette.js:1129 +#: js/palette.js:1140 +#: js/palette.js:1151 +#: js/palette.js:1162 +#: js/palette.js:1181 +#: js/blocks/ActionBlocks.js:254 +#: js/blocks/ActionBlocks.js:307 +#: js/blocks/ActionBlocks.js:617 +#: js/blocks/ActionBlocks.js:716 +#: js/blocks/ActionBlocks.js:961 +#: js/blocks/ActionBlocks.js:1049 +#: js/blocks/ActionBlocks.js:1322 +#: js/blocks/ActionBlocks.js:1325 +#: js/blocks/ActionBlocks.js:1337 +#: js/blocks/ActionBlocks.js:1404 +#: js/blocks/MeterBlocks.js:715 +#: js/blocks/MeterBlocks.js:768 +#: js/blocks/MeterBlocks.js:831 +#: js/blocks/MeterBlocks.js:892 +#: js/widgets/musickeyboard.js:2986 +#: js/widgets/phrasemaker.js:4913 +#: js/widgets/rhythmruler.js:2319 +#: js/widgets/rhythmruler.js:2326 +#: js/widgets/rhythmruler.js:2511 +#: js/widgets/rhythmruler.js:2518 +msgid "action" +msgstr "การกระทำ" + +#: js/rubrics.js:531 #: js/turtledefs.js:136 #: js/turtledefs.js:238 msgid "sensors" msgstr "เซนเซอร์" -#: js/rubrics.js:531 +#: js/rubrics.js:532 #: js/turtledefs.js:135 #: js/turtledefs.js:237 -#: js/MediaBlocks.js:930 +#: js/blocks/MediaBlocks.js:930 msgid "media" msgstr "สื่อ" -#: js/rubrics.js:532 +#: js/rubrics.js:533 msgid "mice" msgstr "" -#: js/macros.js:711 -#: js/musicutils.js:783 -#: js/synthutils.js:181 -#.TRANS: animal sound effect -msgid "duck" -msgstr "" - -#: js/toolbar.js:46 -#: js/toolbar.js:107 +#: js/toolbar.js:48 +#: js/toolbar.js:109 msgid "About Music Blocks" msgstr "" -#: js/toolbar.js:47 -#: js/toolbar.js:108 -#: js/toolbar.js:172 -#: js/toolbar.js:228 +#: js/toolbar.js:49 +#: js/toolbar.js:110 +#: js/toolbar.js:175 +#: js/toolbar.js:231 #: js/turtledefs.js:445 #: js/turtledefs.js:482 -#: js/activity.js:2281 -#: js/activity.js:2289 -#: js/activity.js:2520 -#: js/modewidget.js:77 -#: js/pitchstaircase.js:121 -#: js/phrasemaker.js:302 -#: js/phrasemaker.js:312 -#: js/phrasemaker.js:314 -#: js/phrasemaker.js:3901 -#: js/phrasemaker.js:4061 -#: js/phrasemaker.js:4066 -#: js/phrasemaker.js:4068 -#: js/phrasemaker.js:4183 -#: js/pitchdrummatrix.js:81 -#: js/pitchdrummatrix.js:574 -#: js/pitchdrummatrix.js:576 -#: js/pitchdrummatrix.js:628 -#: js/pitchdrummatrix.js:630 -#: js/pitchdrummatrix.js:645 -#: js/pitchdrummatrix.js:647 -#: js/pitchdrummatrix.js:674 -#: js/pitchdrummatrix.js:676 -#: js/temperament.js:477 -#: js/temperament.js:480 -#: js/temperament.js:540 -#: js/temperament.js:542 -#: js/temperament.js:1835 -#: js/temperament.js:1837 -#: js/temperament.js:1986 -#: js/temperament.js:1988 -#: js/musickeyboard.js:522 -#: js/musickeyboard.js:682 -#: js/musickeyboard.js:684 -#: js/musickeyboard.js:756 -#: js/musickeyboard.js:758 -#: js/rhythmruler.js:298 -#: js/rhythmruler.js:300 -#: js/rhythmruler.js:314 -#: js/rhythmruler.js:316 -#: js/sampler.js:96 -#: js/sampler.js:98 -#: js/sampler.js:229 -#: js/sampler.js:235 -#: js/sampler.js:237 -#: js/tempo.js:84 -#: js/tempo.js:86 -#: js/timbre.js:432 -#: js/timbre.js:434 -#: js/timbre.js:465 -#: js/timbre.js:467 -#: js/timbre.js:746 -#: js/meterwidget.js:80 -#: js/arpeggio.js:90 -#: js/arpeggio.js:547 -#: js/arpeggio.js:549 -#: js/arpeggio.js:644 -#: js/arpeggio.js:646 +#: js/activity.js:2660 +#: js/activity.js:2671 +#: js/activity.js:2902 +#: js/widgets/modewidget.js:77 +#: js/widgets/meterwidget.js:185 +#: js/widgets/pitchdrummatrix.js:147 +#: js/widgets/pitchdrummatrix.js:687 +#: js/widgets/pitchdrummatrix.js:689 +#: js/widgets/pitchdrummatrix.js:741 +#: js/widgets/pitchdrummatrix.js:743 +#: js/widgets/pitchdrummatrix.js:758 +#: js/widgets/pitchdrummatrix.js:760 +#: js/widgets/pitchdrummatrix.js:789 +#: js/widgets/pitchdrummatrix.js:791 +#: js/widgets/pitchstaircase.js:121 +#: js/widgets/temperament.js:610 +#: js/widgets/temperament.js:613 +#: js/widgets/temperament.js:673 +#: js/widgets/temperament.js:675 +#: js/widgets/temperament.js:2017 +#: js/widgets/temperament.js:2019 +#: js/widgets/tempo.js:84 +#: js/widgets/tempo.js:86 +#: js/widgets/timbre.js:432 +#: js/widgets/timbre.js:434 +#: js/widgets/timbre.js:465 +#: js/widgets/timbre.js:467 +#: js/widgets/timbre.js:746 +#: js/widgets/aiwidget.js:647 +#: js/widgets/aiwidget.js:654 +#: js/widgets/aiwidget.js:656 +#: js/widgets/arpeggio.js:90 +#: js/widgets/arpeggio.js:547 +#: js/widgets/arpeggio.js:549 +#: js/widgets/arpeggio.js:644 +#: js/widgets/arpeggio.js:646 +#: js/widgets/musickeyboard.js:676 +#: js/widgets/musickeyboard.js:872 +#: js/widgets/musickeyboard.js:874 +#: js/widgets/musickeyboard.js:953 +#: js/widgets/musickeyboard.js:955 +#: js/widgets/phrasemaker.js:513 +#: js/widgets/phrasemaker.js:523 +#: js/widgets/phrasemaker.js:525 +#: js/widgets/phrasemaker.js:4304 +#: js/widgets/phrasemaker.js:4528 +#: js/widgets/phrasemaker.js:4533 +#: js/widgets/phrasemaker.js:4535 +#: js/widgets/phrasemaker.js:4650 +#: js/widgets/rhythmruler.js:637 +#: js/widgets/rhythmruler.js:639 +#: js/widgets/rhythmruler.js:653 +#: js/widgets/rhythmruler.js:655 +#: js/widgets/sampler.js:162 +#: js/widgets/sampler.js:164 +#: js/widgets/sampler.js:363 msgid "Play" msgstr "" -#: js/toolbar.js:48 -#: js/toolbar.js:109 -#: js/toolbar.js:173 -#: js/toolbar.js:229 +#: js/toolbar.js:50 +#: js/toolbar.js:111 +#: js/toolbar.js:176 +#: js/toolbar.js:232 #: js/turtledefs.js:451 #: js/turtledefs.js:488 -#: js/activity.js:2297 -#: js/modewidget.js:99 -#: js/modewidget.js:101 -#: js/phrasemaker.js:323 -#: js/phrasemaker.js:325 -#: js/pitchdrummatrix.js:561 -#: js/pitchdrummatrix.js:563 -#: js/temperament.js:1820 -#: js/temperament.js:1822 -#: js/meterwidget.js:101 -#: js/meterwidget.js:103 -#: js/arpeggio.js:534 -#: js/arpeggio.js:536 +#: js/activity.js:2679 +#: js/widgets/modewidget.js:99 +#: js/widgets/modewidget.js:101 +#: js/widgets/meterwidget.js:206 +#: js/widgets/meterwidget.js:208 +#: js/widgets/pitchdrummatrix.js:674 +#: js/widgets/pitchdrummatrix.js:676 +#: js/widgets/temperament.js:2002 +#: js/widgets/temperament.js:2004 +#: js/widgets/arpeggio.js:534 +#: js/widgets/arpeggio.js:536 +#: js/widgets/phrasemaker.js:534 +#: js/widgets/phrasemaker.js:536 msgid "Stop" msgstr "หยุด" -#: js/toolbar.js:49 -#: js/toolbar.js:110 -#: js/toolbar.js:174 -#: js/toolbar.js:230 +#: js/toolbar.js:51 +#: js/toolbar.js:112 +#: js/toolbar.js:177 +#: js/toolbar.js:233 #: js/turtledefs.js:498 msgid "Record" msgstr "" -#: js/toolbar.js:50 -#: js/toolbar.js:51 +#: js/toolbar.js:52 +#: js/toolbar.js:53 msgid "Full screen" msgstr "" -#: js/toolbar.js:52 -#: js/toolbar.js:112 -#: js/toolbar.js:177 -#: js/toolbar.js:232 +#: js/toolbar.js:54 +#: js/toolbar.js:115 +#: js/toolbar.js:180 +#: js/toolbar.js:236 #: js/turtledefs.js:504 msgid "Toggle Fullscreen" msgstr "" -#: js/toolbar.js:53 -#: js/toolbar.js:113 -#: js/toolbar.js:178 -#: js/toolbar.js:233 +#: js/toolbar.js:55 +#: js/toolbar.js:116 +#: js/toolbar.js:181 +#: js/toolbar.js:237 #: js/turtledefs.js:510 -#: js/StringHelper.js:33 +#: planet/js/StringHelper.js:33 msgid "New project" msgstr "" -#: js/toolbar.js:54 -#: js/toolbar.js:114 -#: js/toolbar.js:179 -#: js/toolbar.js:234 +#: js/toolbar.js:56 +#: js/toolbar.js:117 +#: js/toolbar.js:182 +#: js/toolbar.js:238 #: js/turtledefs.js:516 msgid "Load project from file" msgstr "โหลดโปรเจคจากไฟล์" -#: js/toolbar.js:55 -#: js/toolbar.js:115 -#: js/toolbar.js:116 -#: js/toolbar.js:180 -#: js/toolbar.js:235 +#: js/toolbar.js:57 +#: js/toolbar.js:118 +#: js/toolbar.js:119 +#: js/toolbar.js:183 +#: js/toolbar.js:239 #: js/turtledefs.js:541 #: js/turtledefs.js:550 #: js/turtledefs.js:571 msgid "Save project" msgstr "บันทึกงาน" -#: js/toolbar.js:56 -#: js/toolbar.js:75 +#: js/toolbar.js:58 #: js/toolbar.js:77 -#: js/toolbar.js:135 -#: js/toolbar.js:144 -#: js/toolbar.js:146 -#: js/toolbar.js:181 -#: js/toolbar.js:199 -#: js/toolbar.js:201 -#: js/toolbar.js:236 -#: js/toolbar.js:254 -#: js/toolbar.js:256 +#: js/toolbar.js:79 +#: js/toolbar.js:138 +#: js/toolbar.js:147 +#: js/toolbar.js:149 +#: js/toolbar.js:184 +#: js/toolbar.js:202 +#: js/toolbar.js:204 +#: js/toolbar.js:240 +#: js/toolbar.js:258 +#: js/toolbar.js:260 msgid "Save project as HTML" msgstr "" -#: js/toolbar.js:57 -#: js/toolbar.js:117 -#: js/toolbar.js:182 -#: js/toolbar.js:237 +#: js/toolbar.js:59 +#: js/toolbar.js:120 +#: js/toolbar.js:185 +#: js/toolbar.js:241 msgid "Find and share projects" msgstr "" -#: js/toolbar.js:58 -#: js/toolbar.js:118 -#: js/toolbar.js:183 -#: js/toolbar.js:238 +#: js/toolbar.js:60 +#: js/toolbar.js:121 +#: js/toolbar.js:186 +#: js/toolbar.js:242 msgid "Offline. Sharing is unavailable" msgstr "" -#: js/toolbar.js:59 -#: js/toolbar.js:119 -#: js/toolbar.js:184 -#: js/toolbar.js:239 +#: js/toolbar.js:61 +#: js/toolbar.js:122 +#: js/toolbar.js:187 +#: js/toolbar.js:243 msgid "Auxiliary menu" msgstr "" -#: js/toolbar.js:61 -#: js/toolbar.js:121 -#: js/toolbar.js:186 -#: js/toolbar.js:241 -msgid "Run slowly" +#: js/toolbar.js:62 +#: js/toolbar.js:123 +#: js/toolbar.js:188 +#: js/toolbar.js:244 +#: js/turtledefs.js:752 +#: js/piemenus.js:3423 +msgid "Help" +msgstr "ช่วยเหลือ" + +#: js/toolbar.js:63 +#: js/toolbar.js:124 +#: js/toolbar.js:189 +#: js/toolbar.js:245 +msgid "Run slowly" msgstr "" -#: js/toolbar.js:62 -#: js/toolbar.js:122 -#: js/toolbar.js:187 -#: js/toolbar.js:242 +#: js/toolbar.js:64 +#: js/toolbar.js:125 +#: js/toolbar.js:190 +#: js/toolbar.js:246 #: js/turtledefs.js:682 msgid "Run step by step" msgstr "เล่นที่ละขั้นตอน" -#: js/toolbar.js:63 -#: js/toolbar.js:123 -#: js/toolbar.js:188 -#: js/toolbar.js:243 +#: js/toolbar.js:65 +#: js/toolbar.js:126 +#: js/toolbar.js:191 +#: js/toolbar.js:247 #: js/turtledefs.js:689 msgid "Display statistics" msgstr "แสดงสถิติ" -#: js/toolbar.js:64 -#: js/toolbar.js:124 -#: js/toolbar.js:189 -#: js/toolbar.js:244 +#: js/toolbar.js:66 +#: js/toolbar.js:127 +#: js/toolbar.js:192 +#: js/toolbar.js:248 msgid "Load plugin" msgstr "" -#: js/toolbar.js:65 -#: js/toolbar.js:125 -#: js/toolbar.js:190 -#: js/toolbar.js:245 +#: js/toolbar.js:67 +#: js/toolbar.js:128 +#: js/toolbar.js:193 +#: js/toolbar.js:249 #: js/turtledefs.js:696 msgid "Delete plugin" msgstr "" -#: js/toolbar.js:66 -#: js/toolbar.js:126 -#: js/toolbar.js:191 -#: js/toolbar.js:246 +#: js/toolbar.js:68 +#: js/toolbar.js:129 +#: js/toolbar.js:194 +#: js/toolbar.js:250 msgid "Enable horizontal scrolling" msgstr "" -#: js/toolbar.js:67 -#: js/toolbar.js:127 -#: js/toolbar.js:192 -#: js/toolbar.js:247 +#: js/toolbar.js:69 +#: js/toolbar.js:130 +#: js/toolbar.js:195 +#: js/toolbar.js:251 msgid "Disable horizontal scrolling" msgstr "" -#: js/toolbar.js:68 -#: js/toolbar.js:128 -#: js/toolbar.js:193 -#: js/toolbar.js:248 -#: js/LocalCard.js:54 -#: js/StringHelper.js:71 +#: js/toolbar.js:70 +#: js/toolbar.js:131 +#: js/toolbar.js:196 +#: js/toolbar.js:252 +#: planet/js/LocalCard.js:54 +#: planet/js/StringHelper.js:71 msgid "Merge with current project" msgstr "" -#: js/toolbar.js:69 -#: js/toolbar.js:129 +#: js/toolbar.js:71 +#: js/toolbar.js:132 msgid "Set Pitch Preview" msgstr "" -#: js/toolbar.js:70 -#: js/toolbar.js:130 -#: js/toolbar.js:194 -#: js/toolbar.js:249 -msgid "Toggle JavaScript Editor" +#: js/toolbar.js:72 +#: js/toolbar.js:133 +#: js/toolbar.js:197 +#: js/toolbar.js:253 +msgid "JavaScript Editor" msgstr "" -#: js/toolbar.js:71 -#: js/toolbar.js:131 -#: js/toolbar.js:195 -#: js/toolbar.js:250 +#: js/toolbar.js:73 +#: js/toolbar.js:134 +#: js/toolbar.js:198 +#: js/toolbar.js:254 #: js/turtledefs.js:724 msgid "Restore" msgstr "" -#: js/toolbar.js:72 -#: js/toolbar.js:132 -#: js/toolbar.js:196 -#: js/toolbar.js:251 +#: js/toolbar.js:74 +#: js/toolbar.js:135 +#: js/toolbar.js:199 +#: js/toolbar.js:255 msgid "Switch to beginner mode" msgstr "" -#: js/toolbar.js:73 -#: js/toolbar.js:133 -#: js/toolbar.js:197 -#: js/toolbar.js:252 +#: js/toolbar.js:75 +#: js/toolbar.js:136 +#: js/toolbar.js:200 +#: js/toolbar.js:256 msgid "Switch to advanced mode" msgstr "" -#: js/toolbar.js:74 -#: js/toolbar.js:134 -#: js/toolbar.js:143 -#: js/toolbar.js:198 -#: js/toolbar.js:253 +#: js/toolbar.js:76 +#: js/toolbar.js:137 +#: js/toolbar.js:146 +#: js/toolbar.js:201 +#: js/toolbar.js:257 #: js/turtledefs.js:738 msgid "Select language" msgstr "" -#: js/toolbar.js:76 -#: js/toolbar.js:79 -#: js/toolbar.js:137 +#: js/toolbar.js:78 +#: js/toolbar.js:81 +#: js/toolbar.js:140 #: js/turtledefs.js:579 msgid "Save mouse artwork as PNG" msgstr "" -#: js/toolbar.js:78 -#: js/toolbar.js:136 +#: js/toolbar.js:80 +#: js/toolbar.js:139 #: js/turtledefs.js:575 msgid "Save mouse artwork as SVG" msgstr "" -#: js/toolbar.js:80 -#: js/toolbar.js:138 +#: js/toolbar.js:82 +#: js/toolbar.js:141 #: js/turtledefs.js:583 msgid "Save music as WAV" msgstr "" -#: js/toolbar.js:81 -#: js/toolbar.js:139 +#: js/toolbar.js:83 +#: js/toolbar.js:142 #: js/turtledefs.js:587 msgid "Save sheet music as ABC" msgstr "" -#: js/toolbar.js:82 -#: js/toolbar.js:140 +#: js/toolbar.js:84 +#: js/toolbar.js:143 #: js/turtledefs.js:591 msgid "Save sheet music as Lilypond" msgstr "" -#: js/toolbar.js:83 +#: js/toolbar.js:85 msgid "Save sheet music as MusicXML" msgstr "" -#: js/toolbar.js:84 -#: js/toolbar.js:141 -#: js/toolbar.js:149 -#: js/toolbar.js:204 -#: js/toolbar.js:259 +#: js/toolbar.js:86 +#: js/toolbar.js:144 +#: js/toolbar.js:152 +#: js/toolbar.js:207 +#: js/toolbar.js:263 #: js/turtledefs.js:562 #: js/turtledefs.js:595 msgid "Save block artwork as SVG" msgstr "" -#: js/toolbar.js:85 -#: js/toolbar.js:142 -#: js/toolbar.js:150 -#: js/toolbar.js:205 -#: js/toolbar.js:260 -msgid "Confirm" -msgstr "" - -#: js/toolbar.js:86 -#: js/toolbar.js:151 -#: js/toolbar.js:206 -#: js/toolbar.js:261 -msgid "English (United States)" -msgstr "" - #: js/toolbar.js:87 -#: js/toolbar.js:152 -#: js/toolbar.js:207 -#: js/toolbar.js:262 -msgid "English (United Kingdom)" -msgstr "" - -#: js/toolbar.js:88 +#: js/toolbar.js:145 #: js/toolbar.js:153 #: js/toolbar.js:208 -#: js/toolbar.js:263 -msgid "日本語" +#: js/toolbar.js:264 +#: js/turtles.js:911 +msgid "Confirm" msgstr "" -#: js/toolbar.js:89 -msgid "한국어" +#: js/toolbar.js:88 +#: js/toolbar.js:154 +#: js/toolbar.js:209 +#: js/toolbar.js:265 +msgid "English (United States)" msgstr "" -#: js/toolbar.js:90 +#: js/toolbar.js:89 #: js/toolbar.js:155 #: js/toolbar.js:210 -#: js/toolbar.js:265 -msgid "español" +#: js/toolbar.js:266 +msgid "English (United Kingdom)" msgstr "" -#: js/toolbar.js:91 +#: js/toolbar.js:90 #: js/toolbar.js:156 #: js/toolbar.js:211 -#: js/toolbar.js:266 -msgid "português" +#: js/toolbar.js:267 +msgid "日本語" msgstr "" -#: js/toolbar.js:92 -#: js/toolbar.js:157 -#: js/toolbar.js:212 -#: js/toolbar.js:267 -msgid "にほんご" +#: js/toolbar.js:91 +msgid "한국어" msgstr "" -#: js/toolbar.js:93 +#: js/toolbar.js:92 #: js/toolbar.js:158 #: js/toolbar.js:213 -#: js/toolbar.js:268 -msgid "中文" +#: js/toolbar.js:269 +msgid "español" msgstr "" -#: js/toolbar.js:94 +#: js/toolbar.js:93 #: js/toolbar.js:159 #: js/toolbar.js:214 -#: js/toolbar.js:269 -msgid "ภาษาไทย" +#: js/toolbar.js:270 +msgid "português" msgstr "" -#: js/toolbar.js:95 +#: js/toolbar.js:94 #: js/toolbar.js:160 #: js/toolbar.js:215 -#: js/toolbar.js:270 -msgid "aymara" +#: js/toolbar.js:271 +msgid "にほんご" msgstr "" -#: js/toolbar.js:96 +#: js/toolbar.js:95 #: js/toolbar.js:161 #: js/toolbar.js:216 -#: js/toolbar.js:271 -msgid "quechua" +#: js/toolbar.js:272 +msgid "中文" msgstr "" -#: js/toolbar.js:97 +#: js/toolbar.js:96 #: js/toolbar.js:162 #: js/toolbar.js:217 -#: js/toolbar.js:272 -msgid "guarani" +#: js/toolbar.js:273 +msgid "ภาษาไทย" msgstr "" -#: js/toolbar.js:98 +#: js/toolbar.js:97 #: js/toolbar.js:163 #: js/toolbar.js:218 -#: js/toolbar.js:273 -msgid "हिंदी" +#: js/toolbar.js:274 +msgid "aymara" msgstr "" -#: js/toolbar.js:99 -#: js/toolbar.js:165 +#: js/toolbar.js:98 +#: js/toolbar.js:164 #: js/toolbar.js:219 #: js/toolbar.js:275 -msgid "igbo" +msgid "quechua" msgstr "" -#: js/toolbar.js:100 -#: js/toolbar.js:166 +#: js/toolbar.js:99 +#: js/toolbar.js:165 #: js/toolbar.js:220 #: js/toolbar.js:276 -msgid "عربى" +msgid "guarani" msgstr "" -#: js/toolbar.js:101 -#: js/toolbar.js:164 +#: js/toolbar.js:100 +#: js/toolbar.js:166 #: js/toolbar.js:221 -#: js/toolbar.js:274 -msgid "తెలుగు" +#: js/toolbar.js:277 +msgid "हिंदी" +msgstr "" + +#: js/toolbar.js:101 +#: js/toolbar.js:168 +#: js/toolbar.js:222 +#: js/toolbar.js:279 +msgid "igbo" msgstr "" #: js/toolbar.js:102 +#: js/toolbar.js:169 +#: js/toolbar.js:223 +#: js/toolbar.js:280 +msgid "عربى" +msgstr "" + +#: js/toolbar.js:103 #: js/toolbar.js:167 -#: js/toolbar.js:222 -#: js/toolbar.js:277 +#: js/toolbar.js:224 +#: js/toolbar.js:278 +msgid "తెలుగు" +msgstr "" + +#: js/toolbar.js:104 +#: js/toolbar.js:170 +#: js/toolbar.js:225 +#: js/toolbar.js:281 msgid "עִברִית" msgstr "" -#: js/toolbar.js:111 -#: js/toolbar.js:175 -#: js/toolbar.js:176 -#: js/toolbar.js:231 +#: js/toolbar.js:113 +#: js/toolbar.js:114 +#: js/toolbar.js:178 +#: js/toolbar.js:179 +#: js/toolbar.js:234 +#: js/toolbar.js:235 msgid "Full Screen" msgstr "" -#: js/toolbar.js:145 #: js/toolbar.js:148 -#: js/toolbar.js:200 +#: js/toolbar.js:151 #: js/toolbar.js:203 -#: js/toolbar.js:255 -#: js/toolbar.js:258 +#: js/toolbar.js:206 +#: js/toolbar.js:259 +#: js/toolbar.js:262 #: js/turtledefs.js:558 msgid "Save turtle artwork as PNG" msgstr "" -#: js/toolbar.js:147 -#: js/toolbar.js:202 -#: js/toolbar.js:257 -#: js/turtledefs.js:554 -msgid "Save turtle artwork as SVG" +#: js/toolbar.js:150 +#: js/toolbar.js:205 +#: js/toolbar.js:261 +#: js/turtledefs.js:554 +msgid "Save turtle artwork as SVG" +msgstr "" + +#: js/toolbar.js:157 +#: js/toolbar.js:212 +#: js/toolbar.js:268 +msgid "한국인" +msgstr "" + +#: js/toolbar.js:174 +#: js/toolbar.js:230 +msgid "About Turtle Blocks" +msgstr "" + +#: js/toolbar.js:446 +#: js/toolbar.js:457 +#: js/toolbar.js:497 +msgid "Turtle Wrap Off" +msgstr "" + +#: js/toolbar.js:466 +#: js/toolbar.js:506 +msgid "Turtle Wrap On" +msgstr "" + +#: js/turtle-painter.js:1192 +#: js/turtle-painter.js:1193 +#: js/turtles.js:118 +#: js/block-verbose.js:1623 +#: js/block.js:1587 +#: js/lilypond.js:749 +#: js/lilypond.js:913 +#: js/lilypond.js:951 +#: js/logo.js:1184 +#: js/blocks/ActionBlocks.js:1223 +#: js/blocks/ProgramBlocks.js:1267 +msgid "start" +msgstr "เริ่ม" + +#: js/turtledefs.js:40 +#.TRANS: put the URL to the guide here, e.g., https://github.com/sugarlabs/turtleblocksjs/tree/master/guide/README.md +msgid "guide url" +msgstr "" + +#: js/turtledefs.js:85 +#: js/turtledefs.js:437 +msgid "Turtle Blocks is a Logo-inspired turtle that draws colorful pictures with snap-together visual-programming blocks." +msgstr "" + +#: js/turtledefs.js:118 +#: js/turtledefs.js:220 +msgid "search" +msgstr "" + +#: js/turtledefs.js:120 +#: js/turtledefs.js:222 +#: js/blocks/MeterBlocks.js:1343 +#: js/blocks/WidgetBlocks.js:522 +#.TRANS: musical meter (time signature), e.g., 4:4 +msgid "meter" +msgstr "อัตราจังหวะ" + +#: js/turtledefs.js:122 +#: js/turtledefs.js:224 +msgid "intervals" +msgstr "" + +#: js/turtledefs.js:124 +#: js/turtledefs.js:226 +msgid "ornament" +msgstr "" + +#: js/turtledefs.js:125 +#: js/turtledefs.js:227 +#: js/blocks/VolumeBlocks.js:362 +#: js/blocks/VolumeBlocks.js:502 +#: js/blocks/VolumeBlocks.js:545 +msgid "volume" +msgstr "" + +#: js/turtledefs.js:126 +#: js/turtledefs.js:228 +#: js/block-verbose.js:1700 +#: js/block-verbose.js:2626 +#: js/block.js:1664 +#: js/block.js:2554 +#: js/lilypond.js:732 +#: js/lilypond.js:897 +#: js/lilypond.js:941 +#: js/palette.js:577 +#: js/blocks/RhythmBlocks.js:766 +#: js/blocks/DrumBlocks.js:477 +#: js/blocks/VolumeBlocks.js:502 +#: js/widgets/phrasemaker.js:1038 +msgid "drum" +msgstr "" + +#: js/turtledefs.js:129 +#: js/turtledefs.js:231 +msgid "boxes" +msgstr "กล่อง" + +#: js/turtledefs.js:130 +#: js/turtledefs.js:232 +msgid "widgets" +msgstr "" + +#: js/turtledefs.js:131 +#: js/turtledefs.js:233 +#: js/widgets/phrasemaker.js:1039 +msgid "graphics" +msgstr "" + +#: js/turtledefs.js:134 +#: js/turtledefs.js:236 +msgid "boolean" +msgstr "บูลีน" + +#: js/turtledefs.js:137 +#: js/turtledefs.js:239 +#: js/blocks/HeapBlocks.js:59 +#: js/widgets/status.js:147 +msgid "heap" +msgstr "ฮีป" + +#: js/turtledefs.js:138 +#: js/turtledefs.js:240 +#: js/blocks/DictBlocks.js:142 +#: js/blocks/ProgramBlocks.js:495 +msgid "dictionary" +msgstr "" + +#: js/turtledefs.js:139 +#: js/turtledefs.js:241 +msgid "ensemble" +msgstr "" + +#: js/turtledefs.js:140 +#: js/turtledefs.js:242 +msgid "extras" +msgstr "เพิ่มเติม" + +#: js/turtledefs.js:142 +#: js/turtledefs.js:244 +#.TRANS: program as in computer program +#.TRANS: program as in computer program +msgid "program" +msgstr "" + +#: js/turtledefs.js:143 +#: js/turtledefs.js:245 +msgid "my blocks" +msgstr "" + +#: js/turtledefs.js:185 +#: js/turtledefs.js:281 +msgid "artwork" +msgstr "" + +#: js/turtledefs.js:185 +#: js/turtledefs.js:281 +msgid "logic" +msgstr "ตรรกะ" + +#: js/turtledefs.js:185 +#: js/turtledefs.js:281 +msgid "music" +msgstr "" + +#: js/turtledefs.js:187 +#: js/turtledefs.js:463 +msgid "Music Blocks is a collection of tools for exploring fundamental musical concepts in a fun way." +msgstr "Music Blocksคือศูนย์ร่วมอุปกรณ์ต่างๆเพื่อสำรวจแนวคิดเรื่องดนตรีด้วยวิธีที่สนุกและครบถ้วน" + +#: js/turtledefs.js:436 +msgid "Welcome to Turtle Blocks" +msgstr "" + +#: js/turtledefs.js:438 +#: js/turtledefs.js:465 +#: js/turtledefs.js:774 +#: js/turtledefs.js:805 +msgid "The current version is" +msgstr "" + +#: js/turtledefs.js:446 +#: js/turtledefs.js:483 +msgid "Click the run button to run the project in fast mode." +msgstr "" + +#: js/turtledefs.js:452 +msgid "Stop the turtle." +msgstr "" + +#: js/turtledefs.js:454 +#: js/turtledefs.js:491 +msgid "You can also type Alt-S to stop." +msgstr "" + +#: js/turtledefs.js:462 +#: js/widgets/help.js:333 +msgid "Welcome to Music Blocks" +msgstr "ยินดีต้อนรับสู่Music Blocks" + +#: js/turtledefs.js:472 +#: js/widgets/help.js:334 +msgid "Meet Mr. Mouse!" +msgstr "" + +#: js/turtledefs.js:473 +msgid "Mr Mouse is our Music Blocks conductor." +msgstr "" + +#: js/turtledefs.js:475 +msgid "Mr Mouse encourages you to explore Music Blocks." +msgstr "" + +#: js/turtledefs.js:477 +msgid "Let us start our tour!" +msgstr "Music Blocks เริ่มทัวร์กันได้เลย" + +#: js/turtledefs.js:489 +msgid "Stop the music (and the mice)." +msgstr "" + +#: js/turtledefs.js:499 +msgid "Record your project as video." +msgstr "" + +#: js/turtledefs.js:505 +msgid "Toggle Fullscreen mode." +msgstr "" + +#: js/turtledefs.js:511 +msgid "Initialize a new project." +msgstr "" + +#: js/turtledefs.js:517 +msgid "You can also load projects from the file system." +msgstr "คุณสามารถโหลดโปรเจคได้จากไฟล์ในโปรแกรม" + +#: js/turtledefs.js:522 +#: planet/js/StringHelper.js:46 +msgid "Delete" +msgstr "ลบ" + +#: js/turtledefs.js:523 +msgid "To delete a block, just right-click on it, then you will be able to see the delete option" +msgstr "" + +#: js/turtledefs.js:528 +#: js/activity.js:2649 +#: planet/js/LocalCard.js:31 +msgid "Copy" +msgstr "คัดลอก" + +#: js/turtledefs.js:529 +msgid "To copy a block, just right-click on it, then you will be able to see the copy option" +msgstr "" + +#: js/turtledefs.js:534 +#: js/piemenus.js:3411 +msgid "Extract" +msgstr "" + +#: js/turtledefs.js:535 +msgid "To extract a block, just right-click on it, then you will be able to see the extract option" +msgstr "" + +#: js/turtledefs.js:542 +#: js/turtledefs.js:552 +#: js/turtledefs.js:573 +msgid "Save your project to a file." +msgstr "บันทึกโปรเจคของคุณเป็นไฟล์" + +#: js/turtledefs.js:549 +#: js/turtledefs.js:570 +msgid "save" +msgstr "" + +#: js/turtledefs.js:556 +#: js/turtledefs.js:577 +msgid "Save graphics from your project to as SVG." +msgstr "" + +#: js/turtledefs.js:560 +#: js/turtledefs.js:581 +msgid "Save graphics from your project as PNG." +msgstr "" + +#: js/turtledefs.js:564 +#: js/turtledefs.js:597 +msgid "Save block artwork as an SVG file." +msgstr "" + +#: js/turtledefs.js:585 +msgid "Save audio from your project as WAV." +msgstr "" + +#: js/turtledefs.js:589 +msgid "Save your project to as an ABC file." +msgstr "" + +#: js/turtledefs.js:593 +msgid "Save your project to as a Lilypond file." +msgstr "บันทึกไฟล์เป็นไฟล์Lilypond" + +#: js/turtledefs.js:604 +msgid "Load samples from server" +msgstr "โหลดตัวอย่างจากเซอเว่อร์" + +#: js/turtledefs.js:605 +msgid "This button opens a viewer for loading example projects." +msgstr "ปุ่มนี้เปิดหน้าต่างเพื่อโหลดโปรเจคตัวอย่าง" + +#: js/turtledefs.js:611 +msgid "Palette buttons" +msgstr "ปุ่มเมนูสี" + +#: js/turtledefs.js:612 +msgid "This toolbar contains the palette buttons including Rhythm Pitch Tone Action and more." +msgstr "" + +#: js/turtledefs.js:614 +msgid "Click to show the palettes of blocks and drag blocks from the palettes onto the canvas to use them." +msgstr "คลิ๊กเพื่อแสดงแถบสีของบล๊อกและลากบล๊อกจากแถบสีไปยังแสดงแสดงผล" + +#: js/turtledefs.js:620 +msgid "Cartesian/Polar" +msgstr "" + +#: js/turtledefs.js:621 +msgid "Show or hide a coordinate grid." +msgstr "" + +#: js/turtledefs.js:626 +#: js/turtles.js:902 +msgid "Clean" +msgstr "ล้าง" + +#: js/turtledefs.js:627 +msgid "Clear the screen and return the mice to their initial positions." +msgstr "" + +#: js/turtledefs.js:632 +#: js/turtles.js:955 +msgid "Collapse" +msgstr "" + +#: js/turtledefs.js:633 +msgid "Collapse the graphics window." +msgstr "" + +#: js/turtledefs.js:638 +#: js/activity.js:5684 +msgid "Home" +msgstr "" + +#: js/turtledefs.js:639 +msgid "Return all blocks to the center of the screen." +msgstr "" + +#: js/turtledefs.js:644 +msgid "Show/hide blocks" +msgstr "แสดง/ซ่อน บล๊อก" + +#: js/turtledefs.js:645 +msgid "Hide or show the blocks and the palettes." +msgstr "ซ่อนหรือแสดงบล๊อกและเมนูสี" + +#: js/turtledefs.js:650 +msgid "Expand/collapse collapsable blocks" +msgstr "" + +#: js/turtledefs.js:651 +msgid "Expand or collapse start and action stacks." +msgstr "ขยายหรือล้ม เริ่มและเรียงทับกัน" + +#: js/turtledefs.js:658 +#: js/activity.js:5704 +msgid "Decrease block size" +msgstr "ลดขนาดของบล๊อก" + +#: js/turtledefs.js:659 +msgid "Decrease the size of the blocks." +msgstr "ลดขนาดของบล๊อก" + +#: js/turtledefs.js:664 +#: js/activity.js:5710 +msgid "Increase block size" +msgstr "ลดขนาดบล๊อก" + +#: js/turtledefs.js:665 +msgid "Increase the size of the blocks." +msgstr "เพิ่มขนาดของบล๊อก" + +#: js/turtledefs.js:670 +msgid "Expand/collapse option toolbar" +msgstr "เพิ่ม/ลด แถบเครื่องมือตัวเลือก" + +#: js/turtledefs.js:671 +msgid "Click this button to expand or collapse the auxillary toolbar." +msgstr "กดปุ่มนี้เพื่อขยายหรือลดกล่องเครื่องมือเพิ่มเติม" + +#: js/turtledefs.js:676 +msgid "Run slow" +msgstr "วิ่งช้า" + +#: js/turtledefs.js:677 +msgid "Click to run the project in slow mode." +msgstr "คลิ๊กเพื่อเล่นโปรเจคอย่างช้า" + +#: js/turtledefs.js:683 +msgid "Click to run the project step by step." +msgstr "คลิ๊กเพื่อให้โปรเจคเล่นทีละขั้นตอน" + +#: js/turtledefs.js:690 +msgid "Display statistics about your Music project." +msgstr "แสดงสถิตของโปรเจคคุณ" + +#: js/turtledefs.js:697 +msgid "Delete a selected plugin." +msgstr "" + +#: js/turtledefs.js:704 +msgid "Enable scrolling" +msgstr "ทำให้เลื่อนได้" + +#: js/turtledefs.js:705 +msgid "You can scroll the blocks on the canvas." +msgstr "คุณสามารถเลื่อนบล๊อกสู่แคนวาส" + +#: js/turtledefs.js:714 +msgid "Wrap Turtle" +msgstr "" + +#: js/turtledefs.js:715 +msgid "Turn Turtle wrapping On or Off." +msgstr "" + +#: js/turtledefs.js:725 +msgid "Restore blocks from the trash." +msgstr "กู้บล๊อกจากถังขยะ" + +#: js/turtledefs.js:732 +msgid "Switch mode" +msgstr "" + +#: js/turtledefs.js:733 +msgid "Switch between beginner and advance modes." +msgstr "" + +#: js/turtledefs.js:739 +msgid "Select your language preference." +msgstr "" + +#: js/turtledefs.js:745 +msgid "Keyboard shortcuts" +msgstr "" + +#: js/turtledefs.js:746 +msgid "You can type d to create a do block and r to create a re block etc." +msgstr "" + +#: js/turtledefs.js:753 +msgid "Show these messages." +msgstr "แสดงข้อความ" + +#: js/turtledefs.js:759 +#: js/turtledefs.js:790 +#: js/widgets/help.js:335 +msgid "Guide" +msgstr "" + +#: js/turtledefs.js:760 +msgid "A detailed guide to Turtle Blocks is available." +msgstr "" + +#: js/turtledefs.js:764 +msgid "Turtle Blocks Guide" +msgstr "" + +#: js/turtledefs.js:767 +#: js/turtledefs.js:798 +#: js/widgets/help.js:336 +msgid "About" +msgstr "" + +#: js/turtledefs.js:768 +msgid "Turtle Blocks is an open source collection of tools for exploring musical concepts." +msgstr "" + +#: js/turtledefs.js:770 +msgid "A full list of contributors can be found in the Turtle Blocks GitHub repository." +msgstr "" + +#: js/turtledefs.js:772 +msgid "Turtle Blocks is licensed under the AGPL." +msgstr "" + +#: js/turtledefs.js:780 +msgid "Turtle Blocks GitHub repository" +msgstr "" + +#: js/turtledefs.js:783 +#: js/turtledefs.js:814 +#: js/widgets/help.js:337 +#: js/widgets/help.js:359 +msgid "Congratulations." +msgstr "ยินดีด้วย" + +#: js/turtledefs.js:784 +msgid "You have finished the tour. Please enjoy Turtle Blocks!" +msgstr "" + +#: js/turtledefs.js:791 +msgid "A detailed guide to Music Blocks is available." +msgstr "" + +#: js/turtledefs.js:799 +msgid "Music Blocks is an open source collection of tools for exploring musical concepts." msgstr "" -#: js/toolbar.js:154 -#: js/toolbar.js:209 -#: js/toolbar.js:264 -msgid "한국인" +#: js/turtledefs.js:801 +msgid "A full list of contributors can be found in the Music Blocks GitHub repository." msgstr "" -#: js/toolbar.js:171 -#: js/toolbar.js:227 -msgid "About Turtle Blocks" +#: js/turtledefs.js:803 +msgid "Music Blocks is licensed under the AGPL." msgstr "" -#: js/toolbar.js:429 -#: js/toolbar.js:440 -msgid "Turtle Wrap Off" +#: js/turtledefs.js:811 +msgid "Music Blocks GitHub repository" msgstr "" -#: js/toolbar.js:442 -msgid "Turtle Wrap On" +#: js/turtledefs.js:815 +msgid "You have finished the tour. Please enjoy Music Blocks!" +msgstr "ทัวร์จบแล้ว เริ่มเล่น Music Blockกัน" + +#: js/turtles.js:882 +msgid "Grid" +msgstr "กริด" + +#: js/turtles.js:1024 +msgid "Expand" +msgstr "" + +#: js/block-verbose.js:1616 +#: js/block-verbose.js:1735 +#: js/block.js:1580 +#: js/block.js:1699 +#: js/palette.js:605 +#: js/blocks/IntervalsBlocks.js:63 +#: js/blocks/WidgetBlocks.js:259 +msgid "temperament" msgstr "" -#: js/block.js:1470 +#: js/block-verbose.js:1630 +#: js/block.js:1594 msgid "matrix" msgstr "" -#: js/block.js:1477 -#: js/WidgetBlocks.js:1226 +#: js/block-verbose.js:1637 +#: js/block.js:1601 +#: js/blocks/WidgetBlocks.js:1509 #: plugins/rodi.rtp:324 msgid "status" msgstr "" -#: js/block.js:1484 +#: js/block-verbose.js:1644 +#: js/block.js:1608 msgid "drum mapper" msgstr "" -#: js/block.js:1491 +#: js/block-verbose.js:1651 +#: js/block.js:1615 msgid "ruler" msgstr "" -#: js/block.js:1498 -#: js/WidgetBlocks.js:327 +#: js/block-verbose.js:1658 +#: js/block.js:1622 +#: js/blocks/WidgetBlocks.js:397 #.TRANS: timbre is the character or quality of a musical sound msgid "timbre" msgstr "" -#: js/block.js:1505 +#: js/block-verbose.js:1665 +#: js/block.js:1629 msgid "stair" msgstr "" -#: js/block.js:1512 -#: js/WidgetBlocks.js:577 +#: js/block-verbose.js:1672 +#: js/block.js:1636 +#: js/blocks/WidgetBlocks.js:707 #.TRANS: the speed at music is should be played. msgid "tempo" msgstr "" -#: js/block.js:1519 -#: js/block.js:1582 -#: js/IntervalsBlocks.js:1268 +#: js/block-verbose.js:1679 +#: js/block-verbose.js:1742 +#: js/block.js:1643 +#: js/block.js:1706 +#: js/blocks/IntervalsBlocks.js:1464 #.TRANS: mode, e.g., Major in C Major msgid "mode" msgstr "" -#: js/block.js:1526 +#: js/block-verbose.js:1686 +#: js/block.js:1650 msgid "slider" msgstr "" -#: js/block.js:1533 -#: js/SensorsBlocks.js:1001 +#: js/block-verbose.js:1693 +#: js/block.js:1657 +#: js/blocks/SensorsBlocks.js:1001 msgid "keyboard" msgstr "แป้นพิมพ์" -#: js/block.js:1547 -#: js/WidgetBlocks.js:957 -#: js/WidgetBlocks.js:988 +#: js/block-verbose.js:1707 +#: js/block.js:1671 +#: js/blocks/WidgetBlocks.js:1190 +#: js/blocks/WidgetBlocks.js:1228 #.TRANS: widget for subdividing a measure into distinct rhythmic elements msgid "rhythm maker" msgstr "" -#: js/block.js:1554 -#: js/block.js:2182 -#: js/block.js:2236 -#: js/RhythmBlockPaletteBlocks.js:70 -#: js/RhythmBlockPaletteBlocks.js:251 -#: js/RhythmBlockPaletteBlocks.js:484 -#: js/RhythmBlockPaletteBlocks.js:553 -#: js/RhythmBlockPaletteBlocks.js:604 -#: js/RhythmBlockPaletteBlocks.js:874 -#: js/RhythmBlocks.js:33 -#: js/RhythmBlocks.js:356 -#: js/RhythmBlocks.js:766 -#: js/RhythmBlocks.js:806 -#: js/OrnamentBlocks.js:220 -#: js/OrnamentBlocks.js:312 -#: js/MeterBlocks.js:1367 -#: js/DictActions.js:85 -#: js/phrasemaker.js:731 -#: js/phrasemaker.js:2393 -#: js/phrasemaker.js:2436 -#: js/phrasemaker.js:2534 +#: js/block-verbose.js:1714 +#: js/block-verbose.js:2457 +#: js/block-verbose.js:2514 +#: js/block.js:1678 +#: js/block.js:2385 +#: js/block.js:2442 +#: js/blocks/MeterBlocks.js:1367 +#: js/blocks/OrnamentBlocks.js:220 +#: js/blocks/OrnamentBlocks.js:312 +#: js/blocks/RhythmBlocks.js:33 +#: js/blocks/RhythmBlocks.js:356 +#: js/blocks/RhythmBlocks.js:766 +#: js/blocks/RhythmBlocks.js:806 +#: js/blocks/RhythmBlockPaletteBlocks.js:70 +#: js/blocks/RhythmBlockPaletteBlocks.js:252 +#: js/blocks/RhythmBlockPaletteBlocks.js:485 +#: js/blocks/RhythmBlockPaletteBlocks.js:554 +#: js/blocks/RhythmBlockPaletteBlocks.js:605 +#: js/blocks/RhythmBlockPaletteBlocks.js:875 +#: js/turtleactions/DictActions.js:85 +#: js/widgets/phrasemaker.js:942 +#: js/widgets/phrasemaker.js:2656 +#: js/widgets/phrasemaker.js:2699 +#: js/widgets/phrasemaker.js:2810 #.TRANS: the value (e.g., 1/4 note) of the note being played. msgid "note value" msgstr "ค่าของโน้ต" -#: js/block.js:1561 -#: js/block.js:2110 -#: js/block.js:2133 -#: js/IntervalsBlocks.js:875 -#: js/OrnamentBlocks.js:312 +#: js/block-verbose.js:1721 +#: js/block-verbose.js:2382 +#: js/block-verbose.js:2405 +#: js/block.js:1685 +#: js/block.js:2310 +#: js/block.js:2333 +#: js/blocks/IntervalsBlocks.js:1071 +#: js/blocks/OrnamentBlocks.js:312 #.TRANS: calculate a relative step between notes based on semi-tones msgid "scalar interval" msgstr "" -#: js/block.js:1568 -#: js/RhythmBlocks.js:148 +#: js/block-verbose.js:1728 +#: js/block.js:1692 +#: js/blocks/RhythmBlocks.js:148 msgid "milliseconds" msgstr "" -#: js/block.js:2180 -#: js/block.js:2184 -#: js/block.js:2234 -#: js/block.js:2345 -#: js/ProgramBlocks.js:1273 -#: js/RhythmBlocks.js:712 -#: js/rhythmruler.js:834 -#: js/rhythmruler.js:961 +#: js/block-verbose.js:2455 +#: js/block-verbose.js:2459 +#: js/block-verbose.js:2512 +#: js/block-verbose.js:2628 +#: js/block.js:2383 +#: js/block.js:2387 +#: js/block.js:2440 +#: js/block.js:2556 +#: js/blocks/RhythmBlocks.js:712 +#: js/blocks/ProgramBlocks.js:1273 +#: js/widgets/rhythmruler.js:1183 +#: js/widgets/rhythmruler.js:1329 msgid "silence" msgstr "พัก" -#: js/block.js:2265 -#: js/block.js:3134 -#: js/block.js:3151 -#: js/activity.js:2336 -#: js/activity.js:2387 -#: js/musicutils.js:2932 -#: js/musicutils.js:4287 +#: js/block-verbose.js:2548 +#: js/block-verbose.js:3492 +#: js/block-verbose.js:3509 +#: js/activity.js:2718 +#: js/activity.js:2769 +#: js/block.js:2476 +#: js/block.js:3416 +#: js/block.js:3433 +#: js/utils/musicutils.js:3780 +#: js/utils/musicutils.js:5273 +#.TRANS: the note names must be separated by single spaces #.TRANS: the note names must be separated by single spaces #.TRANS: the note names must be separated by single spaces msgid "ti la sol fa mi re do" msgstr "" -#: js/block.js:2333 +#: js/block-verbose.js:2616 +#: js/block.js:2544 +#.TRANS: scalar step #.TRANS: scalar step msgid "down" msgstr "" -#: js/block.js:2334 +#: js/block-verbose.js:2617 +#: js/block.js:2545 msgid "up" msgstr "" -#: js/block.js:3477 -#: js/block.js:3490 -#: js/ExtrasBlocks.js:612 +#: js/block-verbose.js:3026 +#: js/block.js:2950 +msgid "Silence block cannot be removed." +msgstr "" + +#: js/block-verbose.js:3824 +#: js/block.js:3748 +#: js/blocks.js:2607 +#: js/blocks.js:3218 +#: js/palette.js:618 +#: js/blocks/BooleanBlocks.js:77 +#: js/blocks/BooleanBlocks.js:167 +#: js/blocks/BooleanBlocks.js:251 +#: js/blocks/BooleanBlocks.js:335 +#: js/blocks/BooleanBlocks.js:433 +#: js/blocks/BooleanBlocks.js:539 +#: js/blocks/BooleanBlocks.js:640 +#: js/blocks/BooleanBlocks.js:741 +#: js/blocks/BooleanBlocks.js:847 +#: js/blocks/BooleanBlocks.js:948 +#: js/blocks/BooleanBlocks.js:1033 +#: js/blocks/SensorsBlocks.js:910 +msgid "true" +msgstr "" + +#: js/block-verbose.js:3824 +#: js/block.js:3748 +#: js/blocks.js:2609 +#: js/blocks.js:3220 +#: js/blocks/BooleanBlocks.js:79 +#: js/blocks/BooleanBlocks.js:169 +#: js/blocks/BooleanBlocks.js:253 +#: js/blocks/BooleanBlocks.js:337 +#: js/blocks/BooleanBlocks.js:435 +#: js/blocks/BooleanBlocks.js:541 +#: js/blocks/BooleanBlocks.js:642 +#: js/blocks/BooleanBlocks.js:743 +#: js/blocks/BooleanBlocks.js:849 +#: js/blocks/BooleanBlocks.js:950 +#: js/blocks/SensorsBlocks.js:912 +msgid "false" +msgstr "" + +#: js/block-verbose.js:3835 +#: js/block-verbose.js:3848 +#: js/block.js:3759 +#: js/block.js:3772 +#: js/blocks/ExtrasBlocks.js:615 msgid "Cartesian" msgstr "คาร์ทีเซียน" -#: js/block.js:3478 -#: js/block.js:3491 -#: js/ExtrasBlocks.js:616 +#: js/block-verbose.js:3836 +#: js/block-verbose.js:3849 +#: js/block.js:3760 +#: js/block.js:3773 +#: js/blocks/ExtrasBlocks.js:619 msgid "polar" msgstr "" -#: js/block.js:3479 -#: js/block.js:3492 -#: js/ExtrasBlocks.js:620 +#: js/block-verbose.js:3837 +#: js/block-verbose.js:3850 +#: js/block.js:3761 +#: js/block.js:3774 +#: js/blocks/ExtrasBlocks.js:623 msgid "Cartesian+polar" msgstr "" -#: js/block.js:3480 -#: js/block.js:3499 -#: js/ExtrasBlocks.js:649 +#: js/block-verbose.js:3838 +#: js/block-verbose.js:3857 +#: js/block.js:3762 +#: js/block.js:3781 +#: js/blocks/ExtrasBlocks.js:652 msgid "none" msgstr "" -#: js/block.js:3493 -#: js/ExtrasBlocks.js:625 +#: js/block-verbose.js:3851 +#: js/block.js:3775 +#: js/blocks/ExtrasBlocks.js:628 msgid "treble" msgstr "" -#: js/block.js:3494 -#: js/ExtrasBlocks.js:629 +#: js/block-verbose.js:3852 +#: js/block.js:3776 +#: js/blocks/ExtrasBlocks.js:632 msgid "grand staff" msgstr "" -#: js/block.js:3495 -#: js/ExtrasBlocks.js:633 +#: js/block-verbose.js:3853 +#: js/block.js:3777 +#: js/blocks/ExtrasBlocks.js:636 msgid "mezzo-soprano" msgstr "" -#: js/block.js:3496 -#: js/ExtrasBlocks.js:637 +#: js/block-verbose.js:3854 +#: js/block.js:3778 +#: js/blocks/ExtrasBlocks.js:640 msgid "alto" msgstr "" -#: js/block.js:3497 -#: js/ExtrasBlocks.js:641 +#: js/block-verbose.js:3855 +#: js/block.js:3779 +#: js/blocks/ExtrasBlocks.js:644 msgid "tenor" msgstr "" -#: js/block.js:3498 -#: js/ExtrasBlocks.js:645 -#: js/musicutils.js:736 -#: js/synthutils.js:64 +#: js/block-verbose.js:3856 +#: js/block.js:3780 +#: js/utils/musicutils.js:1115 +#: js/utils/synthutils.js:80 +#: js/blocks/ExtrasBlocks.js:648 #.TRANS: musical instrument msgid "bass" msgstr "" -#: js/block.js:4075 +#: js/block-verbose.js:3901 +#: js/block.js:3825 +#: js/blocks.js:2600 +#: js/blocks.js:3211 +msgid "on2" +msgstr "" + +#: js/block-verbose.js:3903 +#: js/block.js:3827 +#: js/blocks.js:2602 +#: js/blocks.js:3213 +msgid "off" +msgstr "" + +#: js/block-verbose.js:4470 +#: js/block.js:4394 msgid "Not a number" msgstr "" -#: js/block.js:4082 +#: js/block-verbose.js:4477 +#: js/block.js:4401 msgid "Octave value must be between 1 and 10." msgstr "" -#: js/block.js:4090 +#: js/block-verbose.js:4485 +#: js/block.js:4409 msgid "Numbers can have at most 10 digits." msgstr "" -#: js/notation.js:353 -msgid "Lilypond cannot process pickup of " +#: js/activity.js:390 +#: js/activity.js:395 +msgid "Search for blocks" msgstr "" -#: js/turtledefs.js:40 -#.TRANS: put the URL to the guide here, e.g., https://github.com/sugarlabs/turtleblocksjs/tree/master/guide/README.md -msgid "guide url" +#: js/activity.js:1413 +msgid "Refresh your browser to change to advanced mode." msgstr "" -#: js/turtledefs.js:85 -#: js/turtledefs.js:437 -msgid "Turtle Blocks is a Logo-inspired turtle that draws colorful pictures with snap-together visual-programming blocks." +#: js/activity.js:1418 +msgid "Refresh your browser to change to beginner mode." msgstr "" -#: js/turtledefs.js:118 -#: js/turtledefs.js:220 -msgid "search" +#: js/activity.js:1477 +msgid "Catching mice" msgstr "" -#: js/turtledefs.js:120 -#: js/turtledefs.js:222 -#: js/WidgetBlocks.js:437 -#: js/MeterBlocks.js:1343 -#.TRANS: musical meter (time signature), e.g., 4:4 -msgid "meter" -msgstr "อัตราจังหวะ" +#: js/activity.js:1478 +msgid "Cleaning the instruments" +msgstr "" -#: js/turtledefs.js:122 -#: js/turtledefs.js:224 -msgid "intervals" +#: js/activity.js:1479 +msgid "Testing key pieces" +msgstr "" + +#: js/activity.js:1480 +msgid "Sight-reading" +msgstr "" + +#: js/activity.js:1481 +msgid "Combining math and music" +msgstr "" + +#: js/activity.js:1482 +msgid "Generating more blocks" +msgstr "" + +#: js/activity.js:1483 +msgid "Do Re Mi Fa Sol La Ti Do" +msgstr "" + +#: js/activity.js:1484 +msgid "Tuning string instruments" +msgstr "" + +#: js/activity.js:1485 +msgid "Pressing random keys" +msgstr "" + +#: js/activity.js:1663 +msgid "plugins will be removed upon restart." +msgstr "" + +#: js/activity.js:1672 +msgid "show Cartesian" +msgstr "" + +#: js/activity.js:2211 +#: js/palette.js:589 +#: js/blocks/RhythmBlocks.js:923 +#: js/blocks/PitchBlocks.js:442 +#: js/blocks/PitchBlocks.js:1786 +#.TRANS: a numeric mapping of the notes in an octave based on the musical mode +msgid "scale degree" +msgstr "" + +#: js/activity.js:2214 +#: js/palette.js:598 +msgid "voice name" +msgstr "" + +#: js/activity.js:2217 +#: js/palette.js:595 +msgid "invert mode" +msgstr "" + +#: js/activity.js:2220 +msgid "output tools" +msgstr "" + +#: js/activity.js:2223 +msgid "custom note" +msgstr "" + +#: js/activity.js:2226 +msgid "accidental name" +msgstr "" + +#: js/activity.js:2229 +#: js/blocks/PitchBlocks.js:855 +msgid "east indian solfege" +msgstr "" + +#: js/activity.js:2232 +#: js/blocks/PitchBlocks.js:869 +msgid "note name" +msgstr "" + +#: js/activity.js:2235 +#: js/blocks/IntervalsBlocks.js:94 +msgid "temperament name" +msgstr "" + +#: js/activity.js:2238 +#: js/palette.js:592 +msgid "mode name" +msgstr "" + +#: js/activity.js:2241 +msgid "chord name" +msgstr "" + +#: js/activity.js:2244 +#: js/palette.js:615 +msgid "interval name" +msgstr "" + +#: js/activity.js:2247 +msgid "filter type" +msgstr "" + +#: js/activity.js:2250 +msgid "oscillator type" +msgstr "" + +#: js/activity.js:2253 +#: js/blocks.js:2479 +#: js/blocks.js:2487 +msgid "audio file" +msgstr "" + +#: js/activity.js:2256 +#: js/blocks/DrumBlocks.js:32 +msgid "noise name" +msgstr "" + +#: js/activity.js:2259 +#: js/blocks/DrumBlocks.js:75 +msgid "drum name" +msgstr "" + +#: js/activity.js:2262 +#: js/blocks/DrumBlocks.js:119 +msgid "effects name" +msgstr "" + +#: js/activity.js:2265 +msgid "wrap mode" +msgstr "" + +#: js/activity.js:2268 +msgid "load file" +msgstr "" + +#: js/activity.js:2435 +#: js/activity.js:5851 +msgid "This block is deprecated." +msgstr "" + +#: js/activity.js:2437 +#: js/activity.js:5853 +msgid "Block cannot be found." +msgstr "" + +#: js/activity.js:2645 +msgid "Saving block artwork" +msgstr "" + +#: js/activity.js:2656 +msgid "Erase" +msgstr "" + +#: js/activity.js:2683 +#: js/activity.js:2705 +msgid "Paste" +msgstr "วาง" + +#: js/activity.js:2687 +msgid "Save block help" +msgstr "" + +#: js/activity.js:2772 +msgid "Jumping to the bottom of the page." +msgstr "" + +#: js/activity.js:2778 +msgid "Scrolling up." +msgstr "" + +#: js/activity.js:2783 +msgid "Scrolling down." +msgstr "" + +#: js/activity.js:2788 +msgid "Extracting block" +msgstr "" + +#: js/activity.js:2796 +msgid "Moving block up." +msgstr "" + +#: js/activity.js:2817 +msgid "Moving block down." +msgstr "" + +#: js/activity.js:2838 +msgid "Moving block left." +msgstr "" + +#: js/activity.js:2855 +msgid "Moving block right." +msgstr "" + +#: js/activity.js:2870 +msgid "Jump to home position." +msgstr "" + +#: js/activity.js:2897 +msgid "Hide blocks" +msgstr "" + +#: js/activity.js:4500 +msgid "Click the run button to run the project." +msgstr "" + +#: js/activity.js:5692 +msgid "Show/hide block" +msgstr "" + +#: js/activity.js:5698 +msgid "Expand/collapse blocks" +msgstr "" + +#: js/activity.js:5976 +msgid "Could not parse JSON input." +msgstr "" + +#: js/activity.js:6475 +#: js/activity.js:6580 +#: js/activity.js:6631 +msgid "Cannot load project from the file. Please check the file type." +msgstr "" + +#: js/activity.js:6917 +msgid "Invalid parameters" +msgstr "" + +#: js/blocks.js:1212 +#: js/blocks.js:3444 +#: js/blocks.js:3834 +#: js/blocks.js:3865 +#: js/blocks.js:3914 +#: js/blocks.js:3949 +#: js/blocks.js:6586 +#: js/palette.js:509 +#: js/palette.js:638 +#: js/palette.js:1105 +#: js/blocks/BoxesBlocks.js:282 +#: js/blocks/BoxesBlocks.js:285 +#: js/blocks/BoxesBlocks.js:405 +#: js/blocks/BoxesBlocks.js:594 +msgid "box" +msgstr "กล่อง" + +#: js/blocks.js:1713 +msgid "Consider breaking this stack into parts." +msgstr "" + +#: js/blocks.js:2472 +#: js/palette.js:653 +#: js/blocks/MediaBlocks.js:602 +msgid "open file" +msgstr "เปิดไฟล์" + +#: js/blocks.js:3247 +#: js/palette.js:574 +#: js/blocks/MediaBlocks.js:892 +#: js/blocks/MediaBlocks.js:963 +msgid "text" +msgstr "ถ้ดไป" + +#: js/blocks.js:3443 +#: js/palette.js:641 +#: js/palette.js:642 +#: js/blocks/BoxesBlocks.js:514 +msgid "store in box" msgstr "" -#: js/turtledefs.js:124 -#: js/turtledefs.js:226 -msgid "ornament" +#: js/blocks.js:3448 +#: js/blocks.js:3888 +#: js/blocks.js:3923 +#: js/blocks.js:3958 +#: js/blocks.js:5862 +#: js/blocks.js:5883 +#: js/blocks/BoxesBlocks.js:772 +msgid "box1" msgstr "" -#: js/turtledefs.js:125 -#: js/turtledefs.js:227 -#: js/VolumeBlocks.js:362 -#: js/VolumeBlocks.js:502 -#: js/VolumeBlocks.js:545 -msgid "volume" +#: js/blocks.js:3450 +#: js/blocks.js:3890 +#: js/blocks.js:3925 +#: js/blocks.js:3960 +#: js/blocks.js:5864 +#: js/blocks.js:5885 +#: js/blocks/BoxesBlocks.js:663 +msgid "box2" msgstr "" -#: js/turtledefs.js:129 -#: js/turtledefs.js:231 -msgid "boxes" -msgstr "กล่อง" +#: js/blocks.js:4122 +#: js/palette.js:639 +#: js/palette.js:644 +#: js/palette.js:1041 +#: js/blocks/BoxesBlocks.js:591 +msgid "store in" +msgstr "นำไปเก็บไว้" -#: js/turtledefs.js:130 -#: js/turtledefs.js:232 -msgid "widgets" -msgstr "" +#: js/blocks.js:4122 +#: js/blocks/BoxesBlocks.js:595 +#: js/blocks/DictBlocks.js:215 +#: js/blocks/DictBlocks.js:289 +#: js/blocks/EnsembleBlocks.js:391 +#: js/blocks/EnsembleBlocks.js:402 +#: js/blocks/MediaBlocks.js:746 +#: js/blocks/PitchBlocks.js:656 +#: js/blocks/PitchBlocks.js:934 +#: js/blocks/PitchBlocks.js:1866 +#: js/blocks/ProgramBlocks.js:390 +#: js/blocks/ProgramBlocks.js:495 +#: js/blocks/ProgramBlocks.js:658 +#: js/blocks/ToneBlocks.js:1025 +msgid "name" +msgstr "ชื่อ" -#: js/turtledefs.js:131 -#: js/turtledefs.js:233 -#: js/phrasemaker.js:824 -msgid "graphics" +#: js/blocks.js:4122 +#: js/blocks/BoxesBlocks.js:75 +#: js/blocks/BoxesBlocks.js:595 +#: js/blocks/DictBlocks.js:289 +#: js/blocks/DictBlocks.js:430 +#: js/blocks/HeapBlocks.js:544 +#: js/blocks/RhythmBlocks.js:1130 +msgid "value" +msgstr "ค่า" + +#: js/blocks.js:4465 +msgid "Forever loop detected inside a note value block. Unexpected things may happen." msgstr "" -#: js/turtledefs.js:134 -#: js/turtledefs.js:236 -msgid "boolean" -msgstr "บูลีน" +#: js/blocks.js:4988 +msgid "There is no block selected." +msgstr "" -#: js/turtledefs.js:137 -#: js/turtledefs.js:239 -#: js/HeapBlocks.js:59 -#: js/status.js:147 -msgid "heap" -msgstr "ฮีป" +#: js/blocks.js:5091 +#: js/blocks/MediaBlocks.js:888 +msgid "show" +msgstr "แสดง" -#: js/turtledefs.js:138 -#: js/turtledefs.js:240 -#: js/ProgramBlocks.js:495 -#: js/DictBlocks.js:142 -msgid "dictionary" +#: js/blocks.js:5094 +#: js/blocks/MediaBlocks.js:803 +#.TRANS: Avatar is the image used to determine the appearance of the mouse. +msgid "avatar" msgstr "" -#: js/turtledefs.js:139 -#: js/turtledefs.js:241 -msgid "ensemble" +#: js/blocks.js:5097 +#: js/blocks/ToneBlocks.js:1010 +#: js/widgets/sampler.js:975 +#.TRANS: The sound sample that the user uploads. +msgid "sample" msgstr "" -#: js/turtledefs.js:140 -#: js/turtledefs.js:242 -msgid "extras" -msgstr "เพิ่มเติม" +#: js/lilypond.js:606 +msgid "brown rat" +msgstr "" -#: js/turtledefs.js:142 -#: js/turtledefs.js:244 -#.TRANS: program as in computer program -#.TRANS: program as in computer program -msgid "program" +#: js/lilypond.js:607 +msgid "mole" msgstr "" -#: js/turtledefs.js:143 -#: js/turtledefs.js:245 -msgid "my blocks" +#: js/lilypond.js:608 +msgid "chipmunk" msgstr "" -#: js/turtledefs.js:185 -#: js/turtledefs.js:281 -msgid "artwork" +#: js/lilypond.js:609 +msgid "red squirrel" msgstr "" -#: js/turtledefs.js:185 -#: js/turtledefs.js:281 -msgid "logic" -msgstr "ตรรกะ" +#: js/lilypond.js:610 +msgid "guinea pig" +msgstr "" -#: js/turtledefs.js:185 -#: js/turtledefs.js:281 -msgid "music" +#: js/lilypond.js:611 +msgid "capybara" msgstr "" -#: js/turtledefs.js:187 -#: js/turtledefs.js:463 -msgid "Music Blocks is a collection of tools for exploring fundamental musical concepts in a fun way." -msgstr "Music Blocksคือศูนย์ร่วมอุปกรณ์ต่างๆเพื่อสำรวจแนวคิดเรื่องดนตรีด้วยวิธีที่สนุกและครบถ้วน" +#: js/lilypond.js:612 +msgid "coypu" +msgstr "" -#: js/turtledefs.js:436 -msgid "Welcome to Turtle Blocks" +#: js/lilypond.js:613 +msgid "black rat" msgstr "" -#: js/turtledefs.js:438 -#: js/turtledefs.js:465 -#: js/turtledefs.js:774 -#: js/turtledefs.js:805 -msgid "The current version is" +#: js/lilypond.js:614 +msgid "grey squirrel" msgstr "" -#: js/turtledefs.js:446 -#: js/turtledefs.js:483 -msgid "Click the run button to run the project in fast mode." +#: js/lilypond.js:615 +msgid "flying squirrel" msgstr "" -#: js/turtledefs.js:452 -msgid "Stop the turtle." +#: js/lilypond.js:616 +msgid "bat" msgstr "" -#: js/turtledefs.js:454 -#: js/turtledefs.js:491 -msgid "You can also type Alt-S to stop." +#: js/lilypond.js:749 +#: js/lilypond.js:913 +#: js/lilypond.js:951 +#: js/blocks/ActionBlocks.js:1256 +#: js/blocks/ExtrasBlocks.js:556 +msgid "start drum" +msgstr "เริ่มเสียงกลอง" + +#: js/logo.js:61 +msgid "Not a valid pitch name" msgstr "" -#: js/turtledefs.js:462 -#: js/help.js:333 -msgid "Welcome to Music Blocks" -msgstr "ยินดีต้อนรับสู่Music Blocks" +#: js/logo.js:507 +#: js/blocks/ProgramBlocks.js:258 +#: js/blocks/ProgramBlocks.js:427 +msgid "You must select a file." +msgstr "" -#: js/turtledefs.js:472 -#: js/help.js:334 -msgid "Meet Mr. Mouse!" +#: js/logo.js:1696 +msgid "Playback is ready." msgstr "" -#: js/turtledefs.js:473 -msgid "Mr Mouse is our Music Blocks conductor." +#: js/macros.js:711 +#: js/utils/musicutils.js:1162 +#: js/utils/synthutils.js:202 +#.TRANS: animal sound effect +msgid "duck" msgstr "" -#: js/turtledefs.js:475 -msgid "Mr Mouse encourages you to explore Music Blocks." +#: js/notation.js:353 +msgid "Lilypond cannot process pickup of " msgstr "" -#: js/turtledefs.js:477 -msgid "Let us start our tour!" -msgstr "Music Blocks เริ่มทัวร์กันได้เลย" +#: js/palette.js:571 +msgid "grid" +msgstr "กริด" -#: js/turtledefs.js:489 -msgid "Stop the music (and the mice)." +#: js/palette.js:580 +msgid "effect" msgstr "" -#: js/turtledefs.js:499 -msgid "Record your project as video." +#: js/palette.js:586 +msgid "sargam" msgstr "" -#: js/turtledefs.js:505 -msgid "Toggle Fullscreen mode." +#: js/palette.js:601 +#: js/blocks/PitchBlocks.js:1209 +msgid "custom pitch" msgstr "" -#: js/turtledefs.js:511 -msgid "Initialize a new project." +#: js/palette.js:609 +msgid "accidental" msgstr "" -#: js/turtledefs.js:517 -msgid "You can also load projects from the file system." -msgstr "คุณสามารถโหลดโปรเจคได้จากไฟล์ในโปรแกรม" +#: js/palette.js:633 +#: js/blocks/PitchBlocks.js:405 +msgid "pitch converter" +msgstr "" -#: js/turtledefs.js:522 -#: js/StringHelper.js:46 -msgid "Delete" -msgstr "ลบ" +#: js/piemenus.js:200 +#: js/utils/musicutils.js:1187 +#: js/utils/musicutils.js:1207 +#: js/widgets/musickeyboard.js:2341 +#: js/widgets/phrasemaker.js:1908 +#: js/widgets/sampler.js:810 +#.TRANS: double sharp is a music term related to pitch +msgid "double sharp" +msgstr "" -#: js/turtledefs.js:523 -msgid "To delete a block, just right-click on it, then you will be able to see the delete option" +#: js/piemenus.js:201 +#: js/utils/musicutils.js:1185 +#: js/utils/musicutils.js:1208 +#: js/blocks/PitchBlocks.js:1539 +#: js/turtleactions/PitchActions.js:323 +#: js/widgets/musickeyboard.js:2342 +#: js/widgets/phrasemaker.js:1909 +#: js/widgets/sampler.js:811 +#.TRANS: sharp is a music term related to pitch +#.TRANS: sharp is a half-step up in pitch +msgid "sharp" +msgstr "เสียงแหลม" + +#: js/piemenus.js:202 +#: js/utils/musicutils.js:1183 +#: js/utils/musicutils.js:1209 +#: js/widgets/musickeyboard.js:2343 +#: js/widgets/phrasemaker.js:1910 +#: js/widgets/sampler.js:812 +#.TRANS: natural is a music term related to pitch +msgid "natural" msgstr "" -#: js/turtledefs.js:528 -#: js/activity.js:2270 -#: js/LocalCard.js:31 -msgid "Copy" -msgstr "คัดลอก" +#: js/piemenus.js:203 +#: js/utils/musicutils.js:1181 +#: js/utils/musicutils.js:1210 +#: js/blocks/PitchBlocks.js:1498 +#: js/turtleactions/PitchActions.js:326 +#: js/widgets/musickeyboard.js:2344 +#: js/widgets/phrasemaker.js:1911 +#: js/widgets/sampler.js:813 +#.TRANS: flat is a music term related to pitch +#.TRANS: flat is a half-step down in pitch +msgid "flat" +msgstr "ราบ" -#: js/turtledefs.js:529 -msgid "To copy a block, just right-click on it, then you will be able to see the copy option" +#: js/piemenus.js:204 +#: js/utils/musicutils.js:1179 +#: js/utils/musicutils.js:1211 +#: js/widgets/musickeyboard.js:2345 +#: js/widgets/phrasemaker.js:1912 +#: js/widgets/sampler.js:814 +#.TRANS: double flat is a music term related to pitch +msgid "double flat" msgstr "" -#: js/turtledefs.js:535 -msgid "To extract a block, just right-click on it, then you will be able to see the extract option" +#: js/piemenus.js:2864 +#: js/utils/musicutils.js:1006 +#: js/blocks/PitchBlocks.js:1385 +#.TRANS: unison is a music term related to intervals +#.TRANS: unison means the note is the same as the current note +msgid "unison" msgstr "" -#: js/turtledefs.js:542 -#: js/turtledefs.js:552 -#: js/turtledefs.js:573 -msgid "Save your project to a file." -msgstr "บันทึกโปรเจคของคุณเป็นไฟล์" +#: js/piemenus.js:3018 +#: js/piemenus.js:3091 +#: js/utils/musicutils.js:1014 +#: js/utils/musicutils.js:1189 +#: js/utils/musicutils.js:1326 +#.TRANS: major is a music term related to intervals and mode +msgid "major" +msgstr "" -#: js/turtledefs.js:549 -#: js/turtledefs.js:570 -msgid "save" +#: js/piemenus.js:3018 +#: js/piemenus.js:3091 +#: js/utils/musicutils.js:1032 +#.TRANS: modal scale for music +msgid "ionian" msgstr "" -#: js/turtledefs.js:556 -#: js/turtledefs.js:577 -msgid "Save graphics from your project to as SVG." +#: js/piemenus.js:3020 +#: js/piemenus.js:3095 +#: js/utils/musicutils.js:1012 +#: js/utils/musicutils.js:1190 +#: js/utils/musicutils.js:1323 +#.TRANS: minor is a music term related to intervals and mode +msgid "minor" msgstr "" -#: js/turtledefs.js:560 -#: js/turtledefs.js:581 -msgid "Save graphics from your project as PNG." +#: js/piemenus.js:3020 +#: js/piemenus.js:3095 +#: js/utils/musicutils.js:1042 +#.TRANS: modal scale for music +msgid "aeolian" msgstr "" -#: js/turtledefs.js:564 -#: js/turtledefs.js:597 -msgid "Save block artwork as an SVG file." +#: js/piemenus.js:3410 +msgid "Duplicate" msgstr "" -#: js/turtledefs.js:585 -msgid "Save audio from your project as WAV." +#: js/piemenus.js:3412 +msgid "Move to trash" msgstr "" -#: js/turtledefs.js:589 -msgid "Save your project to as an ABC file." +#: js/piemenus.js:3413 +#: js/widgets/timbre.js:968 +#: planet/js/StringHelper.js:69 +msgid "Close" msgstr "" -#: js/turtledefs.js:593 -msgid "Save your project to as a Lilypond file." -msgstr "บันทึกไฟล์เป็นไฟล์Lilypond" +#: js/piemenus.js:3419 +msgid "Save stack" +msgstr "บันทึก" -#: js/turtledefs.js:604 -msgid "Load samples from server" -msgstr "โหลดตัวอย่างจากเซอเว่อร์" +#: js/piemenus.js:3449 +msgid "In order to copy a sample, you must reload the widget, import the sample again, and export it." +msgstr "" -#: js/turtledefs.js:605 -msgid "This button opens a viewer for loading example projects." -msgstr "ปุ่มนี้เปิดหน้าต่างเพื่อโหลดโปรเจคตัวอย่าง" +#: js/piemenus.js:3812 +msgid "You have chosen key " +msgstr "" -#: js/turtledefs.js:611 -msgid "Palette buttons" -msgstr "ปุ่มเมนูสี" +#: js/piemenus.js:3816 +msgid " for your pitch preview." +msgstr "" -#: js/turtledefs.js:612 -msgid "This toolbar contains the palette buttons including Rhythm Pitch Tone Action and more." +#: js/turtle-singer.js:1363 +#.TRANS: partials are weighted components in a harmonic series +msgid "You must have at least one Partial block inside of a Weighted-partial block" +msgstr "" + +#: js/turtle-singer.js:2077 +msgid "synth cannot play chords." msgstr "" -#: js/turtledefs.js:614 -msgid "Click to show the palettes of blocks and drag blocks from the palettes onto the canvas to use them." -msgstr "คลิ๊กเพื่อแสดงแถบสีของบล๊อกและลากบล๊อกจากแถบสีไปยังแสดงแสดงผล" +#: js/utils/musicutils.js:505 +#: js/utils/musicutils.js:645 +#: js/widgets/pitchdrummatrix.js:228 +#: js/widgets/musickeyboard.js:2885 +msgid "rest" +msgstr "พัก" -#: js/turtledefs.js:620 -msgid "Cartesian/Polar" +#: js/utils/musicutils.js:689 +msgid "Perfect unison" msgstr "" -#: js/turtledefs.js:621 -msgid "Show or hide a coordinate grid." +#: js/utils/musicutils.js:689 +msgid "Diminished second" msgstr "" -#: js/turtledefs.js:627 -msgid "Clear the screen and return the mice to their initial positions." +#: js/utils/musicutils.js:690 +msgid "Minor second" msgstr "" -#: js/turtledefs.js:633 -msgid "Collapse the graphics window." +#: js/utils/musicutils.js:690 +msgid "Augmented unison" msgstr "" -#: js/turtledefs.js:638 -#: js/activity.js:4256 -#: js/activity.js:4256 -msgid "Home" +#: js/utils/musicutils.js:691 +msgid "Major second" msgstr "" -#: js/turtledefs.js:639 -msgid "Return all blocks to the center of the screen." +#: js/utils/musicutils.js:691 +msgid "Diminished third" msgstr "" -#: js/turtledefs.js:644 -msgid "Show/hide blocks" -msgstr "แสดง/ซ่อน บล๊อก" - -#: js/turtledefs.js:645 -msgid "Hide or show the blocks and the palettes." -msgstr "ซ่อนหรือแสดงบล๊อกและเมนูสี" +#: js/utils/musicutils.js:692 +msgid "Minor third" +msgstr "" -#: js/turtledefs.js:650 -msgid "Expand/collapse collapsable blocks" +#: js/utils/musicutils.js:692 +msgid "Augmented second" msgstr "" -#: js/turtledefs.js:651 -msgid "Expand or collapse start and action stacks." -msgstr "ขยายหรือล้ม เริ่มและเรียงทับกัน" +#: js/utils/musicutils.js:693 +msgid "Major third" +msgstr "" -#: js/turtledefs.js:658 -#: js/activity.js:4265 -msgid "Decrease block size" -msgstr "ลดขนาดของบล๊อก" +#: js/utils/musicutils.js:693 +msgid "Diminished fourth" +msgstr "" -#: js/turtledefs.js:659 -msgid "Decrease the size of the blocks." -msgstr "ลดขนาดของบล๊อก" +#: js/utils/musicutils.js:694 +msgid "Perfect fourth" +msgstr "" -#: js/turtledefs.js:664 -#: js/activity.js:4267 -msgid "Increase block size" -msgstr "ลดขนาดบล๊อก" +#: js/utils/musicutils.js:694 +msgid "Augmented third" +msgstr "" -#: js/turtledefs.js:665 -msgid "Increase the size of the blocks." -msgstr "เพิ่มขนาดของบล๊อก" +#: js/utils/musicutils.js:695 +msgid "Diminished fifth" +msgstr "" -#: js/turtledefs.js:670 -msgid "Expand/collapse option toolbar" -msgstr "เพิ่ม/ลด แถบเครื่องมือตัวเลือก" +#: js/utils/musicutils.js:695 +msgid "Augmented fourth" +msgstr "" -#: js/turtledefs.js:671 -msgid "Click this button to expand or collapse the auxillary toolbar." -msgstr "กดปุ่มนี้เพื่อขยายหรือลดกล่องเครื่องมือเพิ่มเติม" +#: js/utils/musicutils.js:696 +msgid "Perfect fifth" +msgstr "" -#: js/turtledefs.js:676 -msgid "Run slow" -msgstr "วิ่งช้า" +#: js/utils/musicutils.js:696 +msgid "Diminished sixth" +msgstr "" -#: js/turtledefs.js:677 -msgid "Click to run the project in slow mode." -msgstr "คลิ๊กเพื่อเล่นโปรเจคอย่างช้า" +#: js/utils/musicutils.js:697 +msgid "Minor sixth" +msgstr "" -#: js/turtledefs.js:683 -msgid "Click to run the project step by step." -msgstr "คลิ๊กเพื่อให้โปรเจคเล่นทีละขั้นตอน" +#: js/utils/musicutils.js:697 +msgid "Augmented fifth" +msgstr "" -#: js/turtledefs.js:690 -msgid "Display statistics about your Music project." -msgstr "แสดงสถิตของโปรเจคคุณ" +#: js/utils/musicutils.js:698 +msgid "Major sixth" +msgstr "" -#: js/turtledefs.js:697 -msgid "Delete a selected plugin." +#: js/utils/musicutils.js:698 +msgid "Diminished seventh" msgstr "" -#: js/turtledefs.js:704 -msgid "Enable scrolling" -msgstr "ทำให้เลื่อนได้" +#: js/utils/musicutils.js:699 +msgid "Minor seventh" +msgstr "" -#: js/turtledefs.js:705 -msgid "You can scroll the blocks on the canvas." -msgstr "คุณสามารถเลื่อนบล๊อกสู่แคนวาส" +#: js/utils/musicutils.js:699 +msgid "Augmented sixth" +msgstr "" -#: js/turtledefs.js:714 -msgid "Wrap Turtle" +#: js/utils/musicutils.js:700 +msgid "Major seventh" msgstr "" -#: js/turtledefs.js:715 -msgid "Turn Turtle wrapping On or Off." +#: js/utils/musicutils.js:700 +msgid "Diminished octave" msgstr "" -#: js/turtledefs.js:725 -msgid "Restore blocks from the trash." -msgstr "กู้บล๊อกจากถังขยะ" +#: js/utils/musicutils.js:701 +msgid "Perfect octave" +msgstr "" -#: js/turtledefs.js:732 -msgid "Switch mode" +#: js/utils/musicutils.js:701 +msgid "Augmented seventh" msgstr "" -#: js/turtledefs.js:733 -msgid "Switch between beginner and advance modes." +#: js/utils/musicutils.js:702 +msgid "Minor ninth" msgstr "" -#: js/turtledefs.js:739 -msgid "Select your language preference." +#: js/utils/musicutils.js:702 +msgid "Augmented octave" msgstr "" -#: js/turtledefs.js:745 -msgid "Keyboard shortcuts" +#: js/utils/musicutils.js:703 +msgid "Major ninth" msgstr "" -#: js/turtledefs.js:746 -msgid "You can type d to create a do block and r to create a re block etc." +#: js/utils/musicutils.js:703 +msgid "Diminished tenth" msgstr "" -#: js/turtledefs.js:753 -msgid "Show these messages." -msgstr "แสดงข้อความ" +#: js/utils/musicutils.js:704 +msgid "Minor tenth" +msgstr "" -#: js/turtledefs.js:759 -#: js/turtledefs.js:790 -#: js/help.js:335 -msgid "Guide" +#: js/utils/musicutils.js:704 +msgid "Augmented ninth" msgstr "" -#: js/turtledefs.js:760 -msgid "A detailed guide to Turtle Blocks is available." +#: js/utils/musicutils.js:705 +msgid "Major tenth" msgstr "" -#: js/turtledefs.js:764 -msgid "Turtle Blocks Guide" +#: js/utils/musicutils.js:705 +msgid "Diminished eleventh" msgstr "" -#: js/turtledefs.js:767 -#: js/turtledefs.js:798 -#: js/help.js:336 -msgid "About" +#: js/utils/musicutils.js:706 +msgid "Perfect eleventh" msgstr "" -#: js/turtledefs.js:768 -msgid "Turtle Blocks is an open source collection of tools for exploring musical concepts." +#: js/utils/musicutils.js:706 +msgid "Augmented tenth" msgstr "" -#: js/turtledefs.js:770 -msgid "A full list of contributors can be found in the Turtle Blocks GitHub repository." +#: js/utils/musicutils.js:707 +msgid "Diminished twelfth" msgstr "" -#: js/turtledefs.js:772 -msgid "Turtle Blocks is licensed under the AGPL." +#: js/utils/musicutils.js:707 +msgid "Augmented eleventh" msgstr "" -#: js/turtledefs.js:780 -msgid "Turtle Blocks GitHub repository" +#: js/utils/musicutils.js:708 +msgid "Perfect twelfth" msgstr "" -#: js/turtledefs.js:783 -#: js/turtledefs.js:814 -#: js/help.js:337 -#: js/help.js:359 -msgid "Congratulations." -msgstr "ยินดีด้วย" +#: js/utils/musicutils.js:708 +msgid "Diminished thirteenth" +msgstr "" -#: js/turtledefs.js:784 -msgid "You have finished the tour. Please enjoy Turtle Blocks!" +#: js/utils/musicutils.js:709 +msgid "Minor thirteenth" msgstr "" -#: js/turtledefs.js:791 -msgid "A detailed guide to Music Blocks is available." +#: js/utils/musicutils.js:709 +msgid "Augmented fifth, plus an octave" msgstr "" -#: js/turtledefs.js:795 -#: js/SaveInterface.js:76 -msgid "Music Blocks Guide" +#: js/utils/musicutils.js:710 +msgid "Major thirteenth" msgstr "" -#: js/turtledefs.js:799 -msgid "Music Blocks is an open source collection of tools for exploring musical concepts." +#: js/utils/musicutils.js:710 +msgid "Diminished seventh, plus an octave" msgstr "" -#: js/turtledefs.js:801 -msgid "A full list of contributors can be found in the Music Blocks GitHub repository." +#: js/utils/musicutils.js:838 +#.TRANS: ordinal number. Please keep exactly one space between each number. +msgid "1st 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th" msgstr "" -#: js/turtledefs.js:803 -msgid "Music Blocks is licensed under the AGPL." +#: js/utils/musicutils.js:1008 +#: js/utils/musicutils.js:1191 +#: js/utils/musicutils.js:1325 +#.TRANS: augmented is a music term related to intervals +msgid "augmented" msgstr "" -#: js/turtledefs.js:811 -msgid "Music Blocks GitHub repository" +#: js/utils/musicutils.js:1010 +#: js/utils/musicutils.js:1192 +#: js/utils/musicutils.js:1324 +#.TRANS: diminished is a music term related to intervals and mode +msgid "diminished" msgstr "" -#: js/turtledefs.js:815 -msgid "You have finished the tour. Please enjoy Music Blocks!" -msgstr "ทัวร์จบแล้ว เริ่มเล่น Music Blockกัน" +#: js/utils/musicutils.js:1016 +#: js/utils/musicutils.js:1322 +#: js/blocks/IntervalsBlocks.js:649 +#: js/turtleactions/IntervalsActions.js:120 +#: js/turtleactions/IntervalsActions.js:124 +#.TRANS: perfect is a music term related to intervals +msgid "perfect" +msgstr "" -#: js/activity.js:369 -msgid "Search for blocks" +#: js/utils/musicutils.js:1018 +#.TRANS: twelve semi-tone scale for music +msgid "chromatic" msgstr "" -#: js/activity.js:1145 -msgid "Refresh your browser to change to advanced mode." +#: js/utils/musicutils.js:1019 +msgid "algerian" msgstr "" -#: js/activity.js:1150 -msgid "Refresh your browser to change to beginner mode." +#: js/utils/musicutils.js:1020 +msgid "spanish" msgstr "" -#: js/activity.js:1184 -msgid "Catching mice" +#: js/utils/musicutils.js:1022 +#.TRANS: modal scale in music +msgid "octatonic" msgstr "" -#: js/activity.js:1185 -msgid "Cleaning the instruments" +#: js/utils/musicutils.js:1024 +#.TRANS: harmonic major scale in music +msgid "harmonic major" msgstr "" -#: js/activity.js:1186 -msgid "Testing key pieces" +#: js/utils/musicutils.js:1026 +#.TRANS: natural minor scales in music +msgid "natural minor" msgstr "" -#: js/activity.js:1187 -msgid "Sight-reading" +#: js/utils/musicutils.js:1028 +#.TRANS: harmonic minor scale in music +msgid "harmonic minor" msgstr "" -#: js/activity.js:1188 -msgid "Combining math and music" +#: js/utils/musicutils.js:1030 +#.TRANS: melodic minor scale in music +msgid "melodic minor" msgstr "" -#: js/activity.js:1189 -msgid "Generating more blocks" +#: js/utils/musicutils.js:1034 +#.TRANS: modal scale for music +msgid "dorian" msgstr "" -#: js/activity.js:1190 -msgid "Do Re Mi Fa Sol La Ti Do" +#: js/utils/musicutils.js:1036 +#.TRANS: modal scale for music +msgid "phrygian" msgstr "" -#: js/activity.js:1191 -msgid "Tuning string instruments" +#: js/utils/musicutils.js:1038 +#.TRANS: modal scale for music +msgid "lydian" msgstr "" -#: js/activity.js:1192 -msgid "Pressing random keys" +#: js/utils/musicutils.js:1040 +#.TRANS: modal scale for music +msgid "mixolydian" msgstr "" -#: js/activity.js:1351 -msgid "plugins will be removed upon restart." +#: js/utils/musicutils.js:1044 +#.TRANS: modal scale for music +msgid "locrian" msgstr "" -#: js/activity.js:1360 -msgid "show Cartesian" +#: js/utils/musicutils.js:1046 +#.TRANS: minor jazz scale for music +msgid "jazz minor" msgstr "" -#: js/activity.js:1842 -msgid "output tools" +#: js/utils/musicutils.js:1048 +#.TRANS: bebop scale for music +msgid "bebop" msgstr "" -#: js/activity.js:1845 -msgid "custom note" +#: js/utils/musicutils.js:1049 +msgid "arabic" msgstr "" -#: js/activity.js:1848 -msgid "accidental name" +#: js/utils/musicutils.js:1050 +msgid "byzantine" msgstr "" -#: js/activity.js:1851 -#: js/PitchBlocks.js:855 -msgid "east indian solfege" +#: js/utils/musicutils.js:1052 +#.TRANS: musical scale for music by Verdi +msgid "enigmatic" msgstr "" -#: js/activity.js:1854 -#: js/PitchBlocks.js:869 -msgid "note name" +#: js/utils/musicutils.js:1053 +msgid "ethiopian" msgstr "" -#: js/activity.js:1857 -#: js/IntervalsBlocks.js:94 -msgid "temperament name" +#: js/utils/musicutils.js:1055 +#.TRANS: Ethiopic scale for music +msgid "geez" msgstr "" -#: js/activity.js:1863 -msgid "chord name" +#: js/utils/musicutils.js:1056 +msgid "hindu" msgstr "" -#: js/activity.js:1869 -msgid "filter type" +#: js/utils/musicutils.js:1057 +msgid "hungarian" msgstr "" -#: js/activity.js:1872 -msgid "oscillator type" +#: js/utils/musicutils.js:1059 +#.TRANS: minor Romanian scale for music +msgid "romanian minor" msgstr "" -#: js/activity.js:1878 -#: js/DrumBlocks.js:32 -msgid "noise name" +#: js/utils/musicutils.js:1060 +msgid "spanish gypsy" msgstr "" -#: js/activity.js:1881 -#: js/DrumBlocks.js:75 -msgid "drum name" +#: js/utils/musicutils.js:1062 +#.TRANS: musical scale for Mid-Eastern music +msgid "maqam" msgstr "" -#: js/activity.js:1884 -#: js/DrumBlocks.js:119 -msgid "effects name" +#: js/utils/musicutils.js:1064 +#.TRANS: minor blues scale for music +msgid "minor blues" msgstr "" -#: js/activity.js:1887 -msgid "wrap mode" +#: js/utils/musicutils.js:1066 +#.TRANS: major blues scale for music +msgid "major blues" msgstr "" -#: js/activity.js:1890 -msgid "load file" +#: js/utils/musicutils.js:1067 +msgid "whole tone" msgstr "" -#: js/activity.js:2056 -msgid "This block is deprecated." +#: js/utils/musicutils.js:1069 +#.TRANS: pentatonic is a general term that means "five note scale". This scale is typically known as "minor pentatonic" +msgid "minor pentatonic" msgstr "" -#: js/activity.js:2058 -msgid "Block cannot be found." +#: js/utils/musicutils.js:1071 +#.TRANS: pentatonic is a general term that means "five note scale". This scale is typically known as "major pentatonic" +msgid "major pentatonic" msgstr "" -#: js/activity.js:2266 -msgid "Saving block artwork" +#: js/utils/musicutils.js:1072 +msgid "chinese" msgstr "" -#: js/activity.js:2277 -msgid "Erase" +#: js/utils/musicutils.js:1073 +msgid "egyptian" msgstr "" -#: js/activity.js:2301 -#: js/activity.js:2323 -msgid "Paste" -msgstr "วาง" +#: js/utils/musicutils.js:1075 +#.TRANS: https://en.wikipedia.org/wiki/Hirajoshi_scale NOTE: There are three different versions of this scale +msgid "hirajoshi" +msgstr "" -#: js/activity.js:2305 -msgid "Save block help" +#: js/utils/musicutils.js:1076 +msgid "Japan" msgstr "" -#: js/activity.js:2390 -msgid "Jumping to the bottom of the page." +#: js/utils/musicutils.js:1078 +#.TRANS: https://en.wikipedia.org/wiki/In_scale and https://en.wikipedia.org/wiki/Sakura_Sakura +msgid "in" msgstr "" -#: js/activity.js:2396 -msgid "Scrolling up." +#: js/utils/musicutils.js:1080 +#.TRANS: https://en.wikipedia.org/wiki/Miny%C5%8D_scale +msgid "minyo" msgstr "" -#: js/activity.js:2401 -msgid "Scrolling down." +#: js/utils/musicutils.js:1082 +#.TRANS: Italian mathematician +msgid "fibonacci" msgstr "" -#: js/activity.js:2406 -msgid "Extracting block" +#: js/utils/musicutils.js:1083 +#: js/utils/musicutils.js:1134 +#: js/utils/musicutils.js:1177 +#: js/utils/musicutils.js:1199 +#: js/utils/synthutils.js:134 +#: js/blocks/IntervalsBlocks.js:1124 +#: js/blocks/ToneBlocks.js:946 +#: js/blocks/VolumeBlocks.js:411 +#: js/blocks/WidgetBlocks.js:399 +#: js/blocks/WidgetBlocks.js:404 +#: js/turtleactions/VolumeActions.js:218 +#: js/widgets/modewidget.js:919 +#.TRANS: customize voice +msgid "custom" msgstr "" -#: js/activity.js:2414 -msgid "Moving block up." +#: js/utils/musicutils.js:1085 +#: js/utils/musicutils.js:1531 +#: js/blocks/WidgetBlocks.js:176 +#.TRANS: highpass filter +msgid "highpass" msgstr "" -#: js/activity.js:2435 -msgid "Moving block down." +#: js/utils/musicutils.js:1087 +#: js/utils/musicutils.js:1532 +#.TRANS: lowpass filter +msgid "lowpass" msgstr "" -#: js/activity.js:2456 -msgid "Moving block left." +#: js/utils/musicutils.js:1089 +#: js/utils/musicutils.js:1533 +#.TRANS: bandpass filter +msgid "bandpass" msgstr "" -#: js/activity.js:2473 -msgid "Moving block right." +#: js/utils/musicutils.js:1091 +#: js/utils/musicutils.js:1534 +#.TRANS: high-shelf filter +msgid "highshelf" msgstr "" -#: js/activity.js:2488 -msgid "Jump to home position." +#: js/utils/musicutils.js:1093 +#: js/utils/musicutils.js:1535 +#.TRANS: low-shelf filter +msgid "lowshelf" msgstr "" -#: js/activity.js:2515 -msgid "Hide blocks" +#: js/utils/musicutils.js:1095 +#: js/utils/musicutils.js:1536 +#.TRANS: notch-shelf filter +msgid "notch" msgstr "" -#: js/activity.js:3389 -msgid "Click the run button to run the project." +#: js/utils/musicutils.js:1097 +#: js/utils/musicutils.js:1537 +#.TRANS: all-pass filter +msgid "allpass" msgstr "" -#: js/activity.js:3456 -#: js/SaveInterface.js:131 -#: js/SaveInterface.js:204 -#: js/SaveInterface.js:262 -#: js/SaveInterface.js:389 -#: js/SaveInterface.js:417 -#: js/ProjectStorage.js:27 -#: js/GlobalPlanet.js:467 -#: js/GlobalPlanet.js:469 -#: js/GlobalPlanet.js:495 -#.TRANS: default project title when saving as Lilypond -msgid "My Project" +#: js/utils/musicutils.js:1099 +#: js/utils/musicutils.js:1538 +#.TRANS: peaking filter +msgid "peaking" msgstr "" -#: js/activity.js:4261 -msgid "Show/hide block" -msgstr "" +#: js/utils/musicutils.js:1100 +#: js/utils/musicutils.js:1546 +#: js/utils/synthutils.js:126 +#: js/blocks/PitchBlocks.js:85 +#.TRANS: sine wave +msgid "sine" +msgstr "ซายน์" -#: js/activity.js:4263 -msgid "Expand/collapse blocks" -msgstr "" +#: js/utils/musicutils.js:1101 +#: js/utils/musicutils.js:1547 +#: js/utils/synthutils.js:128 +#: js/blocks/PitchBlocks.js:39 +#.TRANS: square wave +msgid "square" +msgstr "สี่เหลี่ยม" -#: js/activity.js:4381 -msgid "Could not parse JSON input." -msgstr "" +#: js/utils/musicutils.js:1102 +#: js/utils/musicutils.js:1548 +#: js/utils/synthutils.js:132 +#: js/blocks/PitchBlocks.js:62 +#: js/blocks/ToneBlocks.js:39 +#.TRANS: triangle wave +msgid "triangle" +msgstr "สามเหลี่ยม" -#: js/activity.js:4684 -#: js/activity.js:4771 -#: js/activity.js:4821 -msgid "Cannot load project from the file. Please check the file type." -msgstr "" +#: js/utils/musicutils.js:1103 +#: js/utils/musicutils.js:1549 +#: js/utils/synthutils.js:130 +#: js/blocks/PitchBlocks.js:108 +#.TRANS: sawtooth wave +msgid "sawtooth" +msgstr "ฟันเลื้อย" -#: js/activity.js:5051 -msgid "Invalid parameters" +#: js/utils/musicutils.js:1105 +#: js/utils/musicutils.js:1312 +#: js/blocks/PitchBlocks.js:931 +#: js/blocks/PitchBlocks.js:937 +#: js/turtleactions/PitchActions.js:469 +#.TRANS: even numbers +#.TRANS: invert based on even or odd number or musical scale +msgid "even" msgstr "" -#: js/turtle-singer.js:1334 -#.TRANS: partials are weighted components in a harmonic series -msgid "You must have at least one Partial block inside of a Weighted-partial block" +#: js/utils/musicutils.js:1107 +#: js/utils/musicutils.js:1313 +#: js/blocks/PitchBlocks.js:937 +#: js/turtleactions/PitchActions.js:471 +#.TRANS: odd numbers +msgid "odd" msgstr "" -#: js/turtle-singer.js:2048 -msgid "synth cannot play chords." +#: js/utils/musicutils.js:1108 +#: js/utils/musicutils.js:1314 +#: js/blocks/PitchBlocks.js:937 +#: js/turtleactions/PitchActions.js:473 +msgid "scalar" msgstr "" -#: js/lilypond.js:614 -msgid "brown rat" +#: js/utils/musicutils.js:1109 +#: js/utils/synthutils.js:72 +#: js/blocks/VolumeBlocks.js:47 +#.TRANS: musical instrument +msgid "piano" msgstr "" -#: js/lilypond.js:615 -msgid "mole" +#: js/utils/musicutils.js:1110 +#: js/utils/synthutils.js:74 +#.TRANS: musical instrument +msgid "violin" msgstr "" -#: js/lilypond.js:616 -msgid "chipmunk" +#: js/utils/musicutils.js:1111 +#: js/utils/synthutils.js:76 +#.TRANS: viola musical instrument +msgid "viola" msgstr "" -#: js/lilypond.js:617 -msgid "red squirrel" +#: js/utils/musicutils.js:1112 +#: js/utils/synthutils.js:114 +#.TRANS: xylophone musical instrument +msgid "xylophone" msgstr "" -#: js/lilypond.js:618 -msgid "guinea pig" +#: js/utils/musicutils.js:1113 +#: js/utils/synthutils.js:136 +#.TRANS: vibraphone musical instrument +msgid "vibraphone" msgstr "" -#: js/lilypond.js:619 -msgid "capybara" +#: js/utils/musicutils.js:1114 +#: js/utils/synthutils.js:78 +#.TRANS: musical instrument +msgid "cello" msgstr "" -#: js/lilypond.js:620 -msgid "coypu" +#: js/utils/musicutils.js:1116 +#: js/utils/synthutils.js:82 +#.TRANS: viola musical instrument +msgid "double bass" msgstr "" -#: js/lilypond.js:621 -msgid "black rat" +#: js/utils/musicutils.js:1117 +#: js/utils/synthutils.js:84 +#: js/widgets/rhythmruler.js:2511 +#.TRANS: musical instrument +msgid "guitar" msgstr "" -#: js/lilypond.js:622 -msgid "grey squirrel" +#: js/utils/musicutils.js:1118 +#: js/utils/synthutils.js:86 +#.TRANS: musical instrument +msgid "acoustic guitar" msgstr "" -#: js/lilypond.js:623 -msgid "flying squirrel" +#: js/utils/musicutils.js:1119 +#: js/utils/synthutils.js:88 +#.TRANS: musical instrument +msgid "flute" msgstr "" -#: js/lilypond.js:624 -msgid "bat" +#: js/utils/musicutils.js:1120 +#: js/utils/synthutils.js:90 +#.TRANS: musical instrument +msgid "clarinet" msgstr "" -#: js/lilypond.js:757 -#: js/lilypond.js:921 -#: js/lilypond.js:959 -#: js/ActionBlocks.js:1256 -#: js/ExtrasBlocks.js:553 -msgid "start drum" -msgstr "เริ่มเสียงกลอง" - -#: js/SaveInterface.js:59 -#: js/SaveInterface.js:61 -#: js/SaveInterface.js:93 -msgid "Music Blocks Project" +#: js/utils/musicutils.js:1121 +#: js/utils/synthutils.js:92 +#.TRANS: musical instrument +msgid "saxophone" msgstr "" -#: js/SaveInterface.js:63 -msgid "This project was created in Music Blocks" +#: js/utils/musicutils.js:1122 +#: js/utils/synthutils.js:94 +#.TRANS: musical instrument +msgid "tuba" msgstr "" -#: js/SaveInterface.js:67 -msgid "Music Blocks is a Free/Libre Software application." +#: js/utils/musicutils.js:1123 +#: js/utils/synthutils.js:96 +#.TRANS: musical instrument +msgid "trumpet" msgstr "" -#: js/SaveInterface.js:69 -msgid "The source code can be accessed at" +#: js/utils/musicutils.js:1124 +#: js/utils/synthutils.js:98 +#.TRANS: musical instrument +msgid "oboe" msgstr "" -#: js/SaveInterface.js:72 -msgid "For more information, please consult the" +#: js/utils/musicutils.js:1125 +#: js/utils/synthutils.js:100 +#.TRANS: musical instrument +msgid "trombone" msgstr "" -#: js/SaveInterface.js:83 -msgid "Alternatively, open the file in Music Blocks using the Load project button." +#: js/utils/musicutils.js:1126 +#: js/utils/synthutils.js:116 +#.TRANS: polytone synthesizer +msgid "electronic synth" msgstr "" -#: js/SaveInterface.js:85 -msgid "Project Code" +#: js/utils/musicutils.js:1127 +#: js/utils/synthutils.js:118 +#.TRANS: simple monotone synthesizer +msgid "simple 1" msgstr "" -#: js/SaveInterface.js:87 -msgid "This code stores data about the blocks in a project." +#: js/utils/musicutils.js:1128 +msgid "simple 2" msgstr "" -#: js/SaveInterface.js:89 -msgid "Show" +#: js/utils/musicutils.js:1129 +msgid "simple 3" msgstr "" -#: js/SaveInterface.js:91 -msgid "Hide" +#: js/utils/musicutils.js:1130 +msgid "simple 4" msgstr "" -#: js/SaveInterface.js:197 -#: js/SaveInterface.js:58 -msgid "No description provided" +#: js/utils/musicutils.js:1131 +#: js/utils/synthutils.js:58 +#: js/blocks/DrumBlocks.js:191 +#.TRANS: white noise synthesizer +msgid "white noise" msgstr "" -#: js/SaveInterface.js:332 -msgid "Your recording is in progress." +#: js/utils/musicutils.js:1132 +#: js/utils/synthutils.js:60 +#.TRANS: brown noise synthesizer +msgid "brown noise" msgstr "" -#: js/SaveInterface.js:401 -#.TRANS: File name prompt for save as Lilypond -msgid "File name" +#: js/utils/musicutils.js:1133 +#: js/utils/synthutils.js:62 +#.TRANS: pink noise synthesizer +msgid "pink noise" msgstr "" -#: js/SaveInterface.js:403 -#: js/StringHelper.js:39 -#.TRANS: Project title prompt for save as Lilypond -msgid "Project title" +#: js/utils/musicutils.js:1135 +#: js/utils/synthutils.js:148 +#: js/widgets/rhythmruler.js:2057 +#: js/widgets/rhythmruler.js:2319 +#.TRANS: musical instrument +msgid "snare drum" msgstr "" -#: js/SaveInterface.js:405 -#.TRANS: Project title prompt for save as Lilypond -msgid "Project author" +#: js/utils/musicutils.js:1136 +#: js/utils/synthutils.js:150 +#.TRANS: musical instrument +msgid "kick drum" msgstr "" -#: js/SaveInterface.js:407 -#.TRANS: MIDI prompt for save as Lilypond -msgid "Include MIDI output?" +#: js/utils/musicutils.js:1137 +#: js/utils/synthutils.js:152 +#.TRANS: musical instrument +msgid "tom tom" msgstr "" -#: js/SaveInterface.js:409 -#.TRANS: Guitar prompt for save as Lilypond -msgid "Include guitar tablature output?" +#: js/utils/musicutils.js:1138 +#: js/utils/synthutils.js:154 +#.TRANS: musical instrument +msgid "floor tom" msgstr "" -#: js/SaveInterface.js:411 -#.TRANS: Lilypond is a scripting language for generating sheet music -msgid "Save as Lilypond" +#: js/utils/musicutils.js:1139 +#: js/utils/synthutils.js:156 +#.TRANS: musical instrument +msgid "bass drum" msgstr "" -#: js/SaveInterface.js:426 -#: js/EnsembleBlocks.js:75 -#: js/EnsembleBlocks.js:154 -#: js/EnsembleBlocks.js:216 -#: js/EnsembleBlocks.js:302 -#: js/EnsembleBlocks.js:348 -#: js/EnsembleBlocks.js:389 -#: js/EnsembleBlocks.js:441 -#: js/EnsembleBlocks.js:490 -#: js/EnsembleBlocks.js:536 -#: js/EnsembleBlocks.js:583 -#: js/EnsembleBlocks.js:637 -#: js/EnsembleBlocks.js:753 -#: js/EnsembleBlocks.js:840 -#: js/EnsembleBlocks.js:899 -#: js/EnsembleBlocks.js:942 -#: js/EnsembleBlocks.js:1212 -#: js/EnsembleBlocks.js:1280 -#.TRANS: default project author when saving as Lilypond -msgid "Mr. Mouse" +#: js/utils/musicutils.js:1140 +#: js/utils/synthutils.js:158 +#.TRANS: a drum made from an inverted cup +msgid "cup drum" msgstr "" -#: js/SaveInterface.js:573 -msgid "The Lilypond code is copied to clipboard. You can paste it here: " +#: js/utils/musicutils.js:1141 +#: js/utils/synthutils.js:160 +#.TRANS: musical instrument +msgid "darbuka drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:50 -#: js/RhythmBlockPaletteBlocks.js:232 -#.TRANS: rhythm block -#.TRANS: translate "rhythm1" as rhythm -msgid "rhythm1" +#: js/utils/musicutils.js:1142 +#: js/utils/synthutils.js:164 +#.TRANS: musical instrument +msgid "hi hat" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:70 -#: js/RhythmBlockPaletteBlocks.js:251 -#: js/RhythmBlockPaletteBlocks.js:484 -#: js/RhythmBlockPaletteBlocks.js:553 -#: js/RhythmBlockPaletteBlocks.js:874 -msgid "number of notes" -msgstr "จำนวนของโน้ต" - -#: js/RhythmBlockPaletteBlocks.js:126 -msgid "polyphonic rhythm" +#: js/utils/musicutils.js:1143 +#: js/utils/synthutils.js:166 +#.TRANS: a small metal bell +msgid "ride bell" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:218 -msgid "The Rhythm block is used to generate rhythm patterns." +#: js/utils/musicutils.js:1144 +#: js/utils/synthutils.js:168 +#.TRANS: musical instrument +msgid "cow bell" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:279 -msgid "1/64 note" -msgstr "โน้ต 1/64" - -#: js/RhythmBlockPaletteBlocks.js:303 -msgid "1/32 note" -msgstr "โน๊ต 1/32" - -#: js/RhythmBlockPaletteBlocks.js:331 -msgid "1/16 note" -msgstr "โน้ต 1/16" - -#: js/RhythmBlockPaletteBlocks.js:359 -msgid "eighth note" -msgstr "โน้ตแปด" - -#: js/RhythmBlockPaletteBlocks.js:387 -msgid "quarter note" -msgstr "โน้ต 1/4" - -#: js/RhythmBlockPaletteBlocks.js:415 -msgid "half note" -msgstr "โน๊ตครึ่ง" - -#: js/RhythmBlockPaletteBlocks.js:443 -msgid "whole note" -msgstr "โน้ตเต็ม" +#: js/utils/musicutils.js:1145 +msgid "japanese drum" +msgstr "" -#: js/RhythmBlockPaletteBlocks.js:481 -#: js/RhythmBlockPaletteBlocks.js:550 -#: js/RhythmBlockPaletteBlocks.js:601 -#.TRANS: A tuplet is a note value divided into irregular time values. -msgid "tuplet" -msgstr "ทูเปรท" +#: js/utils/musicutils.js:1146 +#: js/utils/synthutils.js:174 +#.TRANS: musical instrument +msgid "japanese bell" +msgstr "" -#: js/RhythmBlockPaletteBlocks.js:767 -msgid "septuplet" +#: js/utils/musicutils.js:1147 +#: js/utils/synthutils.js:170 +#.TRANS: musical instrument +msgid "triangle bell" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:795 -msgid "quintuplet" +#: js/utils/musicutils.js:1148 +#: js/utils/synthutils.js:172 +#.TRANS: musical instrument +msgid "finger cymbals" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:823 -msgid "triplet" +#: js/utils/musicutils.js:1149 +#: js/utils/synthutils.js:176 +#.TRANS: a musically tuned set of bells +msgid "chime" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:850 -msgid "simple tuplet" +#: js/utils/musicutils.js:1150 +#: js/utils/synthutils.js:178 +#.TRANS: a musical instrument +msgid "gong" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:860 -msgid "Tuplets are a collection of notes that get scaled to a specific duration." +#: js/utils/musicutils.js:1151 +#: js/utils/synthutils.js:180 +#.TRANS: sound effect +msgid "clang" msgstr "" -#: js/WidgetBlocks.js:71 -#.TRANS: sound envelope (ADSR) -msgid "envelope" +#: js/utils/musicutils.js:1152 +#: js/utils/synthutils.js:182 +#.TRANS: sound effect +msgid "crash" msgstr "" -#: js/WidgetBlocks.js:79 -#.TRANS: Attack time is the time taken for initial run-up of level from nil to peak, beginning when the key is first pressed. -msgid "attack" +#: js/utils/musicutils.js:1153 +#: js/utils/synthutils.js:184 +#.TRANS: sound effect +msgid "bottle" msgstr "" -#: js/WidgetBlocks.js:81 -#.TRANS: Decay time is the time taken for the subsequent run down from the attack level to the designated sustain level. -msgid "decay" +#: js/utils/musicutils.js:1154 +#: js/utils/synthutils.js:186 +#.TRANS: sound effect +msgid "clap" msgstr "" -#: js/WidgetBlocks.js:83 -#.TRANS: Sustain level is the level during the main sequence of the sound's duration, until the key is released. -msgid "sustain" +#: js/utils/musicutils.js:1155 +#: js/utils/synthutils.js:188 +#.TRANS: sound effect +msgid "slap" msgstr "" -#: js/WidgetBlocks.js:85 -#.TRANS: Release time is the time taken for the level to decay from the sustain level to zero after the key is released. -msgid "release" +#: js/utils/musicutils.js:1156 +#: js/utils/synthutils.js:190 +#.TRANS: sound effect +msgid "splash" msgstr "" -#: js/WidgetBlocks.js:96 -msgid "Attack value should be from 0 to 100." +#: js/utils/musicutils.js:1157 +#: js/utils/synthutils.js:192 +#.TRANS: sound effect +msgid "bubbles" msgstr "" -#: js/WidgetBlocks.js:99 -msgid "Decay value should be from 0 to 100." +#: js/utils/musicutils.js:1158 +#: js/utils/synthutils.js:194 +#.TRANS: sound effect +msgid "raindrop" msgstr "" -#: js/WidgetBlocks.js:102 -msgid "Sustain value should be from 0 to 100." +#: js/utils/musicutils.js:1159 +#: js/utils/synthutils.js:196 +#.TRANS: animal sound effect +msgid "cat" msgstr "" -#: js/WidgetBlocks.js:105 -msgid "Release value should be from 0-100." +#: js/utils/musicutils.js:1160 +#: js/utils/synthutils.js:198 +#.TRANS: animal sound effect +msgid "cricket" msgstr "" -#: js/WidgetBlocks.js:121 -msgid "You are adding multiple envelope blocks." +#: js/utils/musicutils.js:1161 +#: js/utils/synthutils.js:200 +#.TRANS: animal sound effect +msgid "dog" msgstr "" -#: js/WidgetBlocks.js:144 -#.TRANS: a filter removes some unwanted components from a signal -msgid "filter" +#: js/utils/musicutils.js:1163 +#: js/utils/synthutils.js:102 +#.TRANS: musical instrument +msgid "banjo" msgstr "" -#: js/WidgetBlocks.js:149 -#: js/musicutils.js:706 -#: js/musicutils.js:1105 -#.TRANS: highpass filter -msgid "highpass" +#: js/utils/musicutils.js:1164 +#: js/utils/synthutils.js:104 +#.TRANS: musical instrument +msgid "koto" msgstr "" -#: js/WidgetBlocks.js:152 -#: js/ToneBlocks.js:42 -#: js/timbre.js:1558 -#: js/timbre.js:1808 -#.TRANS: type of filter, e.g., lowpass, highpass, etc. -#.TRANS: there are different types (sine, triangle, square...) of oscillators. -msgid "type" +#: js/utils/musicutils.js:1165 +#: js/utils/synthutils.js:106 +#.TRANS: musical instrument +msgid "dulcimer" msgstr "" -#: js/WidgetBlocks.js:154 -#: js/timbre.js:1818 -#.TRANS: rolloff is the steepness of a change in frequency. -msgid "rolloff" +#: js/utils/musicutils.js:1166 +#: js/utils/synthutils.js:108 +#.TRANS: musical instrument +msgid "electric guitar" msgstr "" -#: js/WidgetBlocks.js:155 -#: js/MediaBlocks.js:692 -#: js/temperament.js:382 -#: js/temperament.js:417 -#: js/temperament.js:477 -#: js/temperament.js:485 -#: js/temperament.js:1348 -#: js/timbre.js:1842 -msgid "frequency" -msgstr "ความถี่" +#: js/utils/musicutils.js:1167 +#: js/utils/synthutils.js:110 +#.TRANS: musical instrument +msgid "bassoon" +msgstr "" -#: js/WidgetBlocks.js:179 -#.TRANS: rolloff is the steepness of a change in frequency. -msgid "Rolloff value should be either -12, -24, -48, or -96 decibels/octave." +#: js/utils/musicutils.js:1168 +#: js/utils/synthutils.js:112 +#.TRANS: musical instrument +msgid "celeste" msgstr "" -#: js/WidgetBlocks.js:211 -msgid "The Temperament tool is used to define custom tuning." +#: js/utils/musicutils.js:1170 +#: js/widgets/temperament.js:787 +#.TRANS: musical temperament +msgid "equal" msgstr "" -#: js/WidgetBlocks.js:277 -#: js/sampler.js:329 -msgid "Upload a sample and adjust its pitch center." +#: js/utils/musicutils.js:1172 +#.TRANS: musical temperament +msgid "Pythagorean" msgstr "" -#: js/WidgetBlocks.js:284 -#.TRANS: the speed at music is should be played. -msgid "sampler" +#: js/utils/musicutils.js:1174 +#.TRANS: musical temperament +msgid "just intonation" msgstr "" -#: js/WidgetBlocks.js:329 -#: js/WidgetBlocks.js:334 -#: js/IntervalsBlocks.js:928 -#: js/VolumeBlocks.js:411 -#: js/ToneBlocks.js:946 -#: js/VolumeActions.js:218 -#: js/musicutils.js:704 -#: js/musicutils.js:755 -#: js/musicutils.js:798 -#: js/musicutils.js:820 -#: js/musicutils.js:1136 -#: js/synthutils.js:118 -#: js/modewidget.js:919 -#.TRANS: customize voice -msgid "custom" +#: js/utils/musicutils.js:1176 +#.TRANS: musical temperament +msgid "meantone" msgstr "" -#: js/WidgetBlocks.js:432 -msgid "The Meter block opens a tool to select strong beats for the meter." +#: js/utils/musicutils.js:1193 +msgid "major 7th" msgstr "" -#: js/WidgetBlocks.js:473 -msgid "The oscilloscope block opens a tool to visualize waveforms." +#: js/utils/musicutils.js:1194 +msgid "minor 7th" msgstr "" -#: js/WidgetBlocks.js:478 -msgid "oscilloscope" +#: js/utils/musicutils.js:1195 +msgid "dominant 7th" msgstr "" -#: js/WidgetBlocks.js:530 -msgid "The Custom mode block opens a tool to explore musical mode (the spacing of the notes in a scale)." +#: js/utils/musicutils.js:1196 +msgid "minor-major 7th" msgstr "" -#: js/WidgetBlocks.js:536 -#.TRANS: musical mode is the pattern of half-steps in an octave, e.g., Major or Minor modes -msgid "custom mode" +#: js/utils/musicutils.js:1197 +msgid "fully-diminished 7th" msgstr "" -#: js/WidgetBlocks.js:570 -msgid "The Tempo block opens a metronome to visualize the beat." +#: js/utils/musicutils.js:1198 +msgid "half-diminished 7th" msgstr "" -#: js/WidgetBlocks.js:617 -msgid "The Arpeggio Widget is used to compose chord sequences." +#: js/utils/musicutils.js:1557 +#: js/utils/musicutils.js:1569 +msgid "Equal (12EDO)" msgstr "" -#: js/WidgetBlocks.js:623 -#: js/IntervalsBlocks.js:683 -msgid "arpeggio" +#: js/utils/musicutils.js:1558 +#: js/utils/musicutils.js:1570 +msgid "5-limit Just Intonation" msgstr "" -#: js/WidgetBlocks.js:677 -msgid "The Pitch drum matrix is used to map pitches to drum sounds." +#: js/utils/musicutils.js:1559 +#: js/utils/musicutils.js:1571 +msgid "Pythagorean (3-limit JI)" msgstr "" -#: js/WidgetBlocks.js:682 -#.TRANS: makes a mapping between pitches and drum sounds -msgid "pitch-drum mapper" +#: js/utils/musicutils.js:1560 +#: js/utils/musicutils.js:1561 +#: js/utils/musicutils.js:1572 +#: js/utils/musicutils.js:1573 +msgid "Meantone" msgstr "" -#: js/WidgetBlocks.js:724 -msgid "You must have at least one pitch block and one drum block in the matrix." +#: js/utils/musicutils.js:1574 +msgid "Custom" msgstr "" -#: js/WidgetBlocks.js:746 -msgid "The Pitch slider tool to is used to generate pitches at selected frequencies." +#: js/utils/musicutils.js:5387 +#: js/utils/musicutils.js:5430 +msgid "current" msgstr "" -#: js/WidgetBlocks.js:751 -#.TRANS: widget to generate pitches using a slider -msgid "pitch slider" +#: js/utils/musicutils.js:5390 +#: js/utils/musicutils.js:5421 +msgid "next" msgstr "" -#: js/WidgetBlocks.js:788 -msgid "chromatic keyboard" +#: js/utils/musicutils.js:5393 +#: js/utils/musicutils.js:5426 +msgid "previous" msgstr "" -#: js/WidgetBlocks.js:815 -#: js/WidgetBlocks.js:874 -#.TRANS: widget to generate pitches using a slider -msgid "music keyboard" +#: js/utils/synthutils.js:120 +#.TRANS: simple monotone synthesizer +msgid "simple-2" msgstr "" -#: js/WidgetBlocks.js:859 -#: js/WidgetBlocks.js:866 -msgid "The Music keyboard block opens a piano keyboard that can be used to create notes." +#: js/utils/synthutils.js:122 +#.TRANS: simple monotone synthesizer +msgid "simple-3" msgstr "" -#: js/WidgetBlocks.js:910 -msgid "The Pitch staircase tool to is used to generate pitches from a given ratio." +#: js/utils/synthutils.js:124 +#.TRANS: simple monotone synthesizer +msgid "simple-4" msgstr "" -#: js/WidgetBlocks.js:917 -#.TRANS: generate a progressive sequence of pitches -msgid "pitch staircase" +#: js/utils/synthutils.js:162 +#.TRANS: musical instrument +msgid "taiko" msgstr "" -#: js/WidgetBlocks.js:982 -msgid "The Rhythm Maker block opens a tool to create drum machines." +#: js/blocks/ActionBlocks.js:58 +msgid "The Return block will return a value from an action." msgstr "" -#: js/WidgetBlocks.js:1036 -msgid "G major scale" +#: js/blocks/ActionBlocks.js:75 +msgid "return" msgstr "" -#: js/WidgetBlocks.js:1064 -msgid "C major scale" +#: js/blocks/ActionBlocks.js:128 +msgid "The Return to URL block will return a value to a webpage." msgstr "" -#: js/WidgetBlocks.js:1097 -msgid "The Phrase Maker block opens a tool to create musical phrases." +#: js/blocks/ActionBlocks.js:145 +msgid "return to URL" msgstr "" -#: js/WidgetBlocks.js:1104 -#.TRANS: assigns pitch to a sequence of beats to generate a melody -msgid "phrase maker" +#: js/blocks/ActionBlocks.js:233 +#: js/blocks/ActionBlocks.js:290 +#: js/blocks/ActionBlocks.js:501 +#: js/blocks/ActionBlocks.js:688 +msgid "The Calculate block returns a value calculated by an action." msgstr "" -#: js/WidgetBlocks.js:1168 -msgid "You must have at least one pitch block and one rhythm block in the matrix." -msgstr "คุณควรมีอย่างน้อยหนึ่งบล๊อกระดับเสียง และหนึ่งบล๊อกจังหวะในเมทริกซ์" +#: js/blocks/ActionBlocks.js:251 +#: js/blocks/ActionBlocks.js:517 +#: js/blocks/ActionBlocks.js:707 +msgid "calculate" +msgstr "" -#: js/WidgetBlocks.js:1220 -msgid "The Status block opens a tool for inspecting the status of Music Blocks as it is running." +#: js/blocks/ActionBlocks.js:376 +#: js/blocks/ActionBlocks.js:593 +#: js/blocks/ActionBlocks.js:942 +#: js/blocks/ActionBlocks.js:1389 +#.TRANS: do is the do something or take an action. +msgid "The Do block is used to initiate an action." msgstr "" -#: js/IntervalsBlocks.js:45 -msgid "set temperament" +#: js/blocks/ActionBlocks.js:390 +#: js/blocks/ActionBlocks.js:610 +#: js/blocks/ActionBlocks.js:959 +#: js/blocks/ActionBlocks.js:1048 +#: js/blocks/MeterBlocks.js:769 +msgid "do1" msgstr "" -#: js/IntervalsBlocks.js:63 -#: js/MediaBlocks.js:746 -#: js/PitchBlocks.js:657 -#: js/PitchBlocks.js:933 -#: js/PitchBlocks.js:972 -#: js/PitchBlocks.js:1005 -#: js/PitchBlocks.js:1166 -#: js/PitchBlocks.js:1679 -#: js/PitchBlocks.js:1720 -#: js/PitchBlocks.js:1827 -#: js/ToneBlocks.js:1025 -#.TRANS: adjusts the shift up or down by one octave (twelve half-steps in the interval between two notes, one having twice or half the frequency in Hz of the other.) -msgid "octave" -msgstr "เสียงแปดคู่" +#: js/blocks/ActionBlocks.js:390 +#: js/blocks/ActionBlocks.js:610 +#: js/blocks/ActionBlocks.js:959 +#: js/blocks/ActionBlocks.js:1048 +#: js/blocks/FlowBlocks.js:742 +#: js/blocks/FlowBlocks.js:822 +#: js/blocks/MeterBlocks.js:769 +msgid "do" +msgstr "ทำ" -#: js/IntervalsBlocks.js:99 -msgid "The Temperament name block is used to select a tuning method." +#: js/blocks/ActionBlocks.js:791 +#: js/blocks/ActionBlocks.js:865 +msgid "The Arg block contains the value of an argument passed to an action." msgstr "" -#: js/IntervalsBlocks.js:161 -msgid "doubly" +#: js/blocks/ActionBlocks.js:806 +#: js/blocks/ActionBlocks.js:878 +msgid "arg" msgstr "" -#: js/IntervalsBlocks.js:166 -msgid "The Doubly block will double the size of an interval." +#: js/blocks/ActionBlocks.js:836 +#: js/blocks/ActionBlocks.js:900 +#: js/blocks/ActionBlocks.js:908 +msgid "Invalid argument" msgstr "" -#: js/IntervalsBlocks.js:262 -msgid "interval number" +#: js/blocks/ActionBlocks.js:944 +msgid "In the example, it is used with the One of block to choose a random phase." msgstr "" -#: js/IntervalsBlocks.js:330 -#.TRANS: measure the distance between two pitches in semi-tones -msgid "semi-tone interval measure" +#: js/blocks/ActionBlocks.js:1019 +#: js/blocks/ActionBlocks.js:1026 +msgid "The Listen block is used to listen for an event such as a mouse click." msgstr "" -#: js/IntervalsBlocks.js:397 -#: js/IntervalsBlocks.js:513 -msgid "You must use two pitch blocks when measuring an interval." +#: js/blocks/ActionBlocks.js:1028 +msgid "When the event happens, an action is taken." msgstr "" -#: js/IntervalsBlocks.js:439 -msgid "The Scalar interval block measures the distance between two notes in the current key and mode." -msgstr "" +#: js/blocks/ActionBlocks.js:1045 +msgid "on" +msgstr "ตรง" -#: js/IntervalsBlocks.js:445 -#.TRANS: measure the distance between two pitches in steps of musical scale -msgid "scalar interval measure" -msgstr "" +#: js/blocks/ActionBlocks.js:1048 +#: js/blocks/ActionBlocks.js:1049 +#: js/blocks/ActionBlocks.js:1153 +msgid "event" +msgstr "งาน" -#: js/IntervalsBlocks.js:592 -#: js/musicutils.js:637 -#: js/musicutils.js:908 -#.TRANS: perfect is a music term related to intervals -msgid "perfect" +#: js/blocks/ActionBlocks.js:1133 +msgid "The Broadcast block is used to trigger an event." msgstr "" -#: js/IntervalsBlocks.js:621 -msgid "In the figure, we add sol# to sol." -msgstr "" +#: js/blocks/ActionBlocks.js:1151 +msgid "broadcast" +msgstr "ถ่ายทอด" -#: js/IntervalsBlocks.js:627 -#: js/OrnamentBlocks.js:220 -#.TRANS: calculate a relative step between notes based on semi-tones -msgid "semi-tone interval" +#: js/blocks/ActionBlocks.js:1208 +msgid "Each Start block is a separate voice." msgstr "" -#: js/IntervalsBlocks.js:676 -msgid "The output of the example is: do, mi, sol, sol, ti, mi" +#: js/blocks/ActionBlocks.js:1304 +msgid "It is often used for storing a phrase of music that is repeated." msgstr "" -#: js/IntervalsBlocks.js:735 -msgid "The Chord block calculates common chords." +#: js/blocks/ActionBlocks.js:1495 +msgid "define temperament" msgstr "" -#: js/IntervalsBlocks.js:737 -msgid "In the figure, we generate a C-major chord." +#: js/blocks/BooleanBlocks.js:44 +msgid "The Not block is the logical not operator." msgstr "" -#: js/IntervalsBlocks.js:742 -msgid "chord" -msgstr "" +#: js/blocks/BooleanBlocks.js:62 +msgid "not" +msgstr "ไม่" -#: js/IntervalsBlocks.js:794 -msgid "The Ratio Interval block calculates an interval based on a ratio." +#: js/blocks/BooleanBlocks.js:134 +msgid "The And block is the logical and operator." msgstr "" -#: js/IntervalsBlocks.js:799 -msgid "ratio interval" -msgstr "" +#: js/blocks/BooleanBlocks.js:152 +msgid "and" +msgstr "บวก" -#: js/IntervalsBlocks.js:868 -msgid "In the figure, we add la to sol." +#: js/blocks/BooleanBlocks.js:218 +msgid "The Or block is the logical or operator." msgstr "" -#: js/IntervalsBlocks.js:924 -#.TRANS: define a custom mode -msgid "define mode" -msgstr "" +#: js/blocks/BooleanBlocks.js:236 +msgid "or" +msgstr "หรือ" -#: js/IntervalsBlocks.js:977 -msgid "movable Do" +#: js/blocks/BooleanBlocks.js:302 +msgid "The XOR block is the logical XOR operator." msgstr "" -#: js/IntervalsBlocks.js:1028 -#.TRANS: mode length is the number of notes in the mode, e.g., 7 for major and minor scales; 12 for chromatic scales -msgid "mode length" +#: js/blocks/BooleanBlocks.js:320 +msgid "xor" msgstr "" -#: js/IntervalsBlocks.js:1037 -msgid "The Mode length block is the number of notes in the current scale." +#: js/blocks/BooleanBlocks.js:808 +msgid "The Equal block returns True if the two numbers are equal." msgstr "" -#: js/IntervalsBlocks.js:1039 -msgid "Most Western scales have 7 notes." +#: js/blocks/BooleanBlocks.js:909 +msgid "The Not-equal-to block returns True if the two numbers are not equal to each other." msgstr "" -#: js/IntervalsBlocks.js:1088 -#.TRANS: the mode in music is 'major', 'minor', etc. -msgid "current mode" +#: js/blocks/BooleanBlocks.js:1008 +msgid "The Boolean block is used to specify true or false." msgstr "" -#: js/IntervalsBlocks.js:1141 -#.TRANS: the key is a group of pitches with which a music composition is created -msgid "current key" +#: js/blocks/BoxesBlocks.js:53 +#: js/blocks/BoxesBlocks.js:59 +msgid "The Add-to block is used to add to the value stored in a box." msgstr "" -#: js/IntervalsBlocks.js:1193 -#: js/IntervalsBlocks.js:1238 -#.TRANS: set the key and mode, e.g. C Major -msgid "set key" -msgstr "ตั้งคีย์" - -#: js/IntervalsBlocks.js:1247 -#: js/IntervalsBlocks.js:1253 -msgid "The Set key block is used to set the key and mode," +#: js/blocks/BoxesBlocks.js:61 +msgid "It can also be used with other blocks such as Color and Pen size." msgstr "" -#: js/IntervalsBlocks.js:1253 -msgid "eg C Major" -msgstr "" +#: js/blocks/BoxesBlocks.js:73 +msgid "add" +msgstr "เพิ่ม" -#: js/IntervalsBlocks.js:1266 -#: js/DictBlocks.js:215 -#: js/DictBlocks.js:216 -#: js/DictBlocks.js:289 -#: js/DictBlocks.js:290 -#: js/DictBlocks.js:357 -#: js/DictBlocks.js:430 -#: js/DictBlocks.js:431 -#.TRANS: key, e.g., C in C Major -msgid "key" -msgstr "คีย์" +#: js/blocks/BoxesBlocks.js:75 +#: js/widgets/temperament.js:857 +msgid "to" +msgstr "เพิ่ม1" -#: js/ActionBlocks.js:58 -msgid "The Return block will return a value from an action." +#: js/blocks/BoxesBlocks.js:75 +#: js/blocks/BoxesBlocks.js:595 +#: js/blocks/HeapBlocks.js:544 +msgid "value1" msgstr "" -#: js/ActionBlocks.js:75 -msgid "return" +#: js/blocks/BoxesBlocks.js:118 +msgid "Block does not support incrementing." msgstr "" -#: js/ActionBlocks.js:128 -msgid "The Return to URL block will return a value to a webpage." +#: js/blocks/BoxesBlocks.js:152 +msgid "The Add-1-to block adds one to the value stored in a box." msgstr "" -#: js/ActionBlocks.js:145 -msgid "return to URL" +#: js/blocks/BoxesBlocks.js:163 +msgid "add 1 to" +msgstr "เพิ่ม1ที่" + +#: js/blocks/BoxesBlocks.js:211 +msgid "The Subtract-1-from block subtracts one from the value stored in a box." msgstr "" -#: js/ActionBlocks.js:233 -#: js/ActionBlocks.js:290 -#: js/ActionBlocks.js:501 -#: js/ActionBlocks.js:688 -msgid "The Calculate block returns a value calculated by an action." +#: js/blocks/BoxesBlocks.js:222 +msgid "subtract 1 from" msgstr "" -#: js/ActionBlocks.js:251 -#: js/ActionBlocks.js:517 -#: js/ActionBlocks.js:707 -msgid "calculate" +#: js/blocks/BoxesBlocks.js:270 +#: js/blocks/BoxesBlocks.js:387 +msgid "The Box block returns the value stored in a box." msgstr "" -#: js/ActionBlocks.js:376 -#: js/ActionBlocks.js:593 -#: js/ActionBlocks.js:942 -#: js/ActionBlocks.js:1389 -#.TRANS: do is the do something or take an action. -msgid "The Do block is used to initiate an action." +#: js/blocks/BoxesBlocks.js:500 +#: js/blocks/BoxesBlocks.js:576 +msgid "The Store in block will store a value in a box." msgstr "" -#: js/ActionBlocks.js:390 -#: js/ActionBlocks.js:610 -#: js/ActionBlocks.js:959 -#: js/ActionBlocks.js:1048 -#: js/MeterBlocks.js:769 -msgid "do1" +#: js/blocks/BoxesBlocks.js:595 +#: js/blocks/EnsembleBlocks.js:391 +#: js/blocks/EnsembleBlocks.js:402 +msgid "name1" msgstr "" -#: js/ActionBlocks.js:390 -#: js/ActionBlocks.js:610 -#: js/ActionBlocks.js:959 -#: js/ActionBlocks.js:1048 -#: js/FlowBlocks.js:742 -#: js/FlowBlocks.js:822 -#: js/MeterBlocks.js:769 -msgid "do" -msgstr "ทำ" +#: js/blocks/BoxesBlocks.js:652 +msgid "The Box2 block returns the value stored in Box2." +msgstr "" -#: js/ActionBlocks.js:791 -#: js/ActionBlocks.js:865 -msgid "The Arg block contains the value of an argument passed to an action." +#: js/blocks/BoxesBlocks.js:703 +msgid "The Store in Box2 block is used to store a value in Box2." msgstr "" -#: js/ActionBlocks.js:806 -#: js/ActionBlocks.js:878 -msgid "arg" +#: js/blocks/BoxesBlocks.js:715 +msgid "store in box2" msgstr "" -#: js/ActionBlocks.js:836 -#: js/ActionBlocks.js:900 -#: js/ActionBlocks.js:908 -msgid "Invalid argument" +#: js/blocks/BoxesBlocks.js:761 +msgid "The Box1 block returns the value stored in Box1." msgstr "" -#: js/ActionBlocks.js:944 -msgid "In the example, it is used with the One of block to choose a random phase." +#: js/blocks/BoxesBlocks.js:812 +msgid "The Store in Box1 block is used to store a value in Box1." msgstr "" -#: js/ActionBlocks.js:1019 -#: js/ActionBlocks.js:1026 -msgid "The Listen block is used to listen for an event such as a mouse click." +#: js/blocks/BoxesBlocks.js:826 +msgid "store in box1" msgstr "" -#: js/ActionBlocks.js:1028 -msgid "When the event happens, an action is taken." +#: js/blocks/DictBlocks.js:77 +msgid "show dictionary" msgstr "" -#: js/ActionBlocks.js:1045 -msgid "on" -msgstr "ตรง" +#: js/blocks/DictBlocks.js:80 +#: js/blocks/DictBlocks.js:145 +#: js/blocks/DictBlocks.js:216 +#: js/blocks/DictBlocks.js:290 +#: js/blocks/ProgramBlocks.js:396 +#: js/blocks/ProgramBlocks.js:501 +#: js/blocks/ProgramBlocks.js:664 +msgid "My Dictionary" +msgstr "" -#: js/ActionBlocks.js:1048 -#: js/ActionBlocks.js:1049 -#: js/ActionBlocks.js:1153 -msgid "event" -msgstr "งาน" +#: js/blocks/DictBlocks.js:129 +msgid "The Dictionary block returns a dictionary." +msgstr "" -#: js/ActionBlocks.js:1133 -msgid "The Broadcast block is used to trigger an event." +#: js/blocks/DictBlocks.js:197 +#: js/blocks/DictBlocks.js:339 +msgid "The Get-dict block returns a value in the dictionary for a specified key." msgstr "" -#: js/ActionBlocks.js:1151 -msgid "broadcast" -msgstr "ถ่ายทอด" +#: js/blocks/DictBlocks.js:212 +#: js/blocks/DictBlocks.js:354 +#.TRANS: retrieve a value from the dictionary with a given key +msgid "get value" +msgstr "" -#: js/ActionBlocks.js:1208 -msgid "Each Start block is a separate voice." +#: js/blocks/DictBlocks.js:215 +#: js/blocks/DictBlocks.js:216 +#: js/blocks/DictBlocks.js:289 +#: js/blocks/DictBlocks.js:290 +#: js/blocks/DictBlocks.js:357 +#: js/blocks/DictBlocks.js:430 +#: js/blocks/DictBlocks.js:431 +msgid "key2" msgstr "" -#: js/ActionBlocks.js:1304 -msgid "It is often used for storing a phrase of music that is repeated." +#: js/blocks/DictBlocks.js:215 +#: js/blocks/DictBlocks.js:216 +#: js/blocks/DictBlocks.js:289 +#: js/blocks/DictBlocks.js:290 +#: js/blocks/DictBlocks.js:357 +#: js/blocks/DictBlocks.js:430 +#: js/blocks/DictBlocks.js:431 +#: js/blocks/IntervalsBlocks.js:1462 +#.TRANS: key, e.g., C in C Major +msgid "key" +msgstr "คีย์" + +#: js/blocks/DictBlocks.js:271 +#: js/blocks/DictBlocks.js:411 +msgid "The Set-dict block sets a value in the dictionary for a specified key." msgstr "" -#: js/ActionBlocks.js:1495 -msgid "define temperament" +#: js/blocks/DictBlocks.js:286 +#: js/blocks/DictBlocks.js:427 +#.TRANS: set a value in the dictionary for a given key +msgid "set value" msgstr "" -#: js/EnsembleBlocks.js:66 +#: js/blocks/EnsembleBlocks.js:66 msgid "mouse index heap" msgstr "" -#: js/EnsembleBlocks.js:68 +#: js/blocks/EnsembleBlocks.js:68 msgid "The Mouse index heap block returns a value in the heap at a specified location for a specified mouse." msgstr "" -#: js/EnsembleBlocks.js:77 -#: js/EnsembleBlocks.js:1080 +#: js/blocks/EnsembleBlocks.js:77 +#: js/blocks/EnsembleBlocks.js:1080 msgid "mouse name" msgstr "" -#: js/EnsembleBlocks.js:77 -#: js/EnsembleBlocks.js:92 -#: js/HeapBlocks.js:544 +#: js/blocks/EnsembleBlocks.js:77 +#: js/blocks/EnsembleBlocks.js:92 +#: js/blocks/HeapBlocks.js:544 #.TRANS: value1 is a numeric value (JAPANESE ONLY) msgid "index" msgstr "ดัชนี" -#: js/EnsembleBlocks.js:80 +#: js/blocks/EnsembleBlocks.js:80 msgid "turtle index heap" msgstr "" -#: js/EnsembleBlocks.js:82 +#: js/blocks/EnsembleBlocks.js:82 msgid "The Turtle index heap block returns a value in the heap at a specified location for a specified turtle." msgstr "" -#: js/EnsembleBlocks.js:90 -#: js/EnsembleBlocks.js:167 -#: js/EnsembleBlocks.js:230 -#: js/EnsembleBlocks.js:316 -#: js/EnsembleBlocks.js:362 -#: js/EnsembleBlocks.js:400 -#: js/EnsembleBlocks.js:454 -#: js/EnsembleBlocks.js:504 -#: js/EnsembleBlocks.js:550 -#: js/EnsembleBlocks.js:597 -#: js/EnsembleBlocks.js:651 -#: js/EnsembleBlocks.js:763 -#: js/EnsembleBlocks.js:854 -#: js/EnsembleBlocks.js:915 -#: js/EnsembleBlocks.js:955 -#: js/EnsembleBlocks.js:1219 -#: js/EnsembleBlocks.js:1293 +#: js/blocks/EnsembleBlocks.js:90 +#: js/blocks/EnsembleBlocks.js:167 +#: js/blocks/EnsembleBlocks.js:230 +#: js/blocks/EnsembleBlocks.js:316 +#: js/blocks/EnsembleBlocks.js:362 +#: js/blocks/EnsembleBlocks.js:400 +#: js/blocks/EnsembleBlocks.js:454 +#: js/blocks/EnsembleBlocks.js:504 +#: js/blocks/EnsembleBlocks.js:550 +#: js/blocks/EnsembleBlocks.js:597 +#: js/blocks/EnsembleBlocks.js:651 +#: js/blocks/EnsembleBlocks.js:763 +#: js/blocks/EnsembleBlocks.js:854 +#: js/blocks/EnsembleBlocks.js:915 +#: js/blocks/EnsembleBlocks.js:955 +#: js/blocks/EnsembleBlocks.js:1219 +#: js/blocks/EnsembleBlocks.js:1293 #.TRANS: Yertle is the name of a turtle. msgid "Yertle" msgstr "" -#: js/EnsembleBlocks.js:92 -#: js/EnsembleBlocks.js:1089 +#: js/blocks/EnsembleBlocks.js:92 +#: js/blocks/EnsembleBlocks.js:1089 msgid "turtle name" msgstr "ชื่อของเต่า" -#: js/EnsembleBlocks.js:122 -#: js/EnsembleBlocks.js:1197 -#: js/HeapBlocks.js:474 -#: js/HeapBlocks.js:572 +#: js/blocks/EnsembleBlocks.js:122 +#: js/blocks/EnsembleBlocks.js:1197 +#: js/blocks/HeapBlocks.js:474 +#: js/blocks/HeapBlocks.js:572 msgid "Index must be > 0." msgstr "" -#: js/EnsembleBlocks.js:127 -#: js/HeapBlocks.js:479 -#: js/HeapBlocks.js:577 +#: js/blocks/EnsembleBlocks.js:127 +#: js/blocks/HeapBlocks.js:479 +#: js/blocks/HeapBlocks.js:577 msgid "Maximum heap size is 1000." msgstr "" -#: js/EnsembleBlocks.js:145 +#: js/blocks/EnsembleBlocks.js:145 msgid "stop mouse" msgstr "" -#: js/EnsembleBlocks.js:147 +#: js/blocks/EnsembleBlocks.js:147 msgid "The Stop mouse block stops the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:158 +#: js/blocks/EnsembleBlocks.js:158 msgid "stop turtle" msgstr "หยุดเต่า" -#: js/EnsembleBlocks.js:160 +#: js/blocks/EnsembleBlocks.js:160 msgid "The Stop turtle block stops the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:184 -#: js/EnsembleBlocks.js:247 -#: js/EnsembleBlocks.js:413 -#: js/EnsembleBlocks.js:468 -#: js/EnsembleBlocks.js:706 -#: js/EnsembleBlocks.js:808 -#: js/EnsembleBlocks.js:870 -#: js/EnsembleBlocks.js:1190 -#: js/EnsembleBlocks.js:1253 +#: js/blocks/EnsembleBlocks.js:184 +#: js/blocks/EnsembleBlocks.js:247 +#: js/blocks/EnsembleBlocks.js:413 +#: js/blocks/EnsembleBlocks.js:468 +#: js/blocks/EnsembleBlocks.js:706 +#: js/blocks/EnsembleBlocks.js:808 +#: js/blocks/EnsembleBlocks.js:870 +#: js/blocks/EnsembleBlocks.js:1190 +#: js/blocks/EnsembleBlocks.js:1253 msgid "Cannot find mouse" msgstr "" -#: js/EnsembleBlocks.js:186 -#: js/EnsembleBlocks.js:249 -#: js/EnsembleBlocks.js:415 -#: js/EnsembleBlocks.js:470 -#: js/EnsembleBlocks.js:708 -#: js/EnsembleBlocks.js:810 -#: js/EnsembleBlocks.js:872 -#: js/EnsembleBlocks.js:1192 -#: js/EnsembleBlocks.js:1255 +#: js/blocks/EnsembleBlocks.js:186 +#: js/blocks/EnsembleBlocks.js:249 +#: js/blocks/EnsembleBlocks.js:415 +#: js/blocks/EnsembleBlocks.js:470 +#: js/blocks/EnsembleBlocks.js:708 +#: js/blocks/EnsembleBlocks.js:810 +#: js/blocks/EnsembleBlocks.js:872 +#: js/blocks/EnsembleBlocks.js:1192 +#: js/blocks/EnsembleBlocks.js:1255 msgid "Cannot find turtle" msgstr "" -#: js/EnsembleBlocks.js:206 +#: js/blocks/EnsembleBlocks.js:206 msgid "start mouse" msgstr "" -#: js/EnsembleBlocks.js:209 +#: js/blocks/EnsembleBlocks.js:209 msgid "The Start mouse block starts the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:220 +#: js/blocks/EnsembleBlocks.js:220 msgid "start turtle" msgstr "เริ่มเต่า" -#: js/EnsembleBlocks.js:223 +#: js/blocks/EnsembleBlocks.js:223 msgid "The Start turtle block starts the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:256 +#: js/blocks/EnsembleBlocks.js:256 msgid "Mouse is already running." msgstr "" -#: js/EnsembleBlocks.js:258 +#: js/blocks/EnsembleBlocks.js:258 msgid "Turtle is already running." msgstr "" -#: js/EnsembleBlocks.js:282 +#: js/blocks/EnsembleBlocks.js:282 msgid "Cannot find start block" msgstr "" -#: js/EnsembleBlocks.js:292 +#: js/blocks/EnsembleBlocks.js:292 #.TRANS: pen color for this mouse msgid "mouse color" msgstr "" -#: js/EnsembleBlocks.js:294 +#: js/blocks/EnsembleBlocks.js:294 msgid "The Mouse color block returns the pen color of the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:306 +#: js/blocks/EnsembleBlocks.js:306 #.TRANS: pen color for this turtle msgid "turtle color" msgstr "" -#: js/EnsembleBlocks.js:308 +#: js/blocks/EnsembleBlocks.js:308 msgid "The Turtle color block returns the pen color of the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:338 +#: js/blocks/EnsembleBlocks.js:338 #.TRANS: heading (compass direction) for this mouse msgid "mouse heading" msgstr "" -#: js/EnsembleBlocks.js:340 +#: js/blocks/EnsembleBlocks.js:340 msgid "The Mouse heading block returns the heading of the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:352 +#: js/blocks/EnsembleBlocks.js:352 #.TRANS: heading (compass direction) for this turtle msgid "turtle heading" msgstr "" -#: js/EnsembleBlocks.js:354 +#: js/blocks/EnsembleBlocks.js:354 msgid "The Turtle heading block returns the heading of the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:384 -#: js/EnsembleBlocks.js:439 +#: js/blocks/EnsembleBlocks.js:384 +#: js/blocks/EnsembleBlocks.js:439 #.TRANS: set xy position for this mouse msgid "set mouse" msgstr "" -#: js/EnsembleBlocks.js:391 -#: js/EnsembleBlocks.js:402 -#: js/BoxesBlocks.js:595 -msgid "name1" -msgstr "" - -#: js/EnsembleBlocks.js:391 -#: js/EnsembleBlocks.js:402 -#: js/ProgramBlocks.js:881 -#: js/GraphicsBlocks.js:235 -#: js/GraphicsBlocks.js:313 -#: js/GraphicsBlocks.js:436 -#: js/GraphicsBlocks.js:487 -#: js/GraphicsBlocks.js:534 -#: js/GraphicsBlocks.js:750 +#: js/blocks/EnsembleBlocks.js:391 +#: js/blocks/EnsembleBlocks.js:402 +#: js/blocks/GraphicsBlocks.js:235 +#: js/blocks/GraphicsBlocks.js:313 +#: js/blocks/GraphicsBlocks.js:436 +#: js/blocks/GraphicsBlocks.js:487 +#: js/blocks/GraphicsBlocks.js:534 +#: js/blocks/GraphicsBlocks.js:750 +#: js/blocks/ProgramBlocks.js:881 msgid "x" msgstr "แกน x" -#: js/EnsembleBlocks.js:391 -#: js/EnsembleBlocks.js:402 -#: js/ProgramBlocks.js:881 -#: js/GraphicsBlocks.js:149 -#: js/GraphicsBlocks.js:313 -#: js/GraphicsBlocks.js:436 -#: js/GraphicsBlocks.js:487 -#: js/GraphicsBlocks.js:534 -#: js/GraphicsBlocks.js:750 +#: js/blocks/EnsembleBlocks.js:391 +#: js/blocks/EnsembleBlocks.js:402 +#: js/blocks/GraphicsBlocks.js:149 +#: js/blocks/GraphicsBlocks.js:313 +#: js/blocks/GraphicsBlocks.js:436 +#: js/blocks/GraphicsBlocks.js:487 +#: js/blocks/GraphicsBlocks.js:534 +#: js/blocks/GraphicsBlocks.js:750 +#: js/blocks/ProgramBlocks.js:881 msgid "y" msgstr "แกน y" -#: js/EnsembleBlocks.js:395 -#: js/EnsembleBlocks.js:452 +#: js/blocks/EnsembleBlocks.js:395 +#: js/blocks/EnsembleBlocks.js:452 #.TRANS: set xy position for this turtle msgid "set turtle" msgstr "" -#: js/EnsembleBlocks.js:433 +#: js/blocks/EnsembleBlocks.js:433 msgid "The Set mouse block sends a stack of blocks to be run by the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:446 +#: js/blocks/EnsembleBlocks.js:446 msgid "The Set turtle block sends a stack of blocks to be run by the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:480 +#: js/blocks/EnsembleBlocks.js:480 #.TRANS: y position for this mouse msgid "mouse y" msgstr "หนูy" -#: js/EnsembleBlocks.js:482 +#: js/blocks/EnsembleBlocks.js:482 msgid "The Y mouse block returns the Y position of the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:494 +#: js/blocks/EnsembleBlocks.js:494 #.TRANS: y position for this turtle msgid "turtle y" msgstr "เต่า y" -#: js/EnsembleBlocks.js:496 +#: js/blocks/EnsembleBlocks.js:496 msgid "The Y turtle block returns the Y position of the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:526 +#: js/blocks/EnsembleBlocks.js:526 #.TRANS: x position for this mouse msgid "mouse x" msgstr "หนูx" -#: js/EnsembleBlocks.js:528 +#: js/blocks/EnsembleBlocks.js:528 msgid "The X mouse block returns the X position of the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:540 +#: js/blocks/EnsembleBlocks.js:540 #.TRANS: x position for this turtle msgid "turtle x" msgstr "เต่า x" -#: js/EnsembleBlocks.js:542 +#: js/blocks/EnsembleBlocks.js:542 msgid "The X turtle block returns the X position of the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:573 +#: js/blocks/EnsembleBlocks.js:573 #.TRANS: notes played by this mouse msgid "mouse notes played" msgstr "" -#: js/EnsembleBlocks.js:575 +#: js/blocks/EnsembleBlocks.js:575 msgid "The Mouse elapse notes block returns the number of notes played by the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:587 +#: js/blocks/EnsembleBlocks.js:587 #.TRANS: notes played by this turtle msgid "turtle notes played" msgstr "" -#: js/EnsembleBlocks.js:589 +#: js/blocks/EnsembleBlocks.js:589 msgid "The Turtle elapse notes block returns the number of notes played by the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:627 +#: js/blocks/EnsembleBlocks.js:627 #.TRANS: convert current note for this turtle to piano key (1-88) msgid "mouse pitch number" msgstr "" -#: js/EnsembleBlocks.js:629 +#: js/blocks/EnsembleBlocks.js:629 msgid "The Mouse pitch block returns the current pitch number being played by the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:641 +#: js/blocks/EnsembleBlocks.js:641 #.TRANS: convert current note for this turtle to piano key (1-88) msgid "turtle pitch number" msgstr "จำนวนเต่าระดับเสียง" -#: js/EnsembleBlocks.js:643 -msgid "The Turrle pitch block returns the current pitch number being played by the specified turtle." +#: js/blocks/EnsembleBlocks.js:643 +msgid "The Turtle pitch block returns the current pitch number being played by the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:747 -#: js/EnsembleBlocks.js:819 +#: js/blocks/EnsembleBlocks.js:747 +#: js/blocks/EnsembleBlocks.js:819 #.TRANS: note value is the duration of the note played by this mouse msgid "mouse note value" msgstr "" -#: js/EnsembleBlocks.js:757 +#: js/blocks/EnsembleBlocks.js:757 #.TRANS: note value is the duration of the note played by this turtle msgid "turtle note value" msgstr "" -#: js/EnsembleBlocks.js:830 +#: js/blocks/EnsembleBlocks.js:830 #.TRANS: sync is short for synchronization msgid "mouse sync" msgstr "" -#: js/EnsembleBlocks.js:832 +#: js/blocks/EnsembleBlocks.js:832 msgid "The Mouse sync block aligns the beat count between mice." msgstr "" -#: js/EnsembleBlocks.js:844 +#: js/blocks/EnsembleBlocks.js:844 #.TRANS: sync is short for synchronization msgid "turtle sync" msgstr "" -#: js/EnsembleBlocks.js:846 +#: js/blocks/EnsembleBlocks.js:846 msgid "The Turtle sync block aligns the beat count between turtles." msgstr "" -#: js/EnsembleBlocks.js:887 +#: js/blocks/EnsembleBlocks.js:887 msgid "The Found mouse block will return true if the specified mouse can be found." msgstr "" -#: js/EnsembleBlocks.js:893 +#: js/blocks/EnsembleBlocks.js:893 msgid "found mouse" msgstr "" -#: js/EnsembleBlocks.js:903 +#: js/blocks/EnsembleBlocks.js:903 msgid "The Found turtle block will return true if the specified turtle can be found." msgstr "" -#: js/EnsembleBlocks.js:909 +#: js/blocks/EnsembleBlocks.js:909 msgid "found turtle" msgstr "" -#: js/EnsembleBlocks.js:932 +#: js/blocks/EnsembleBlocks.js:932 msgid "new mouse" msgstr "" -#: js/EnsembleBlocks.js:934 +#: js/blocks/EnsembleBlocks.js:934 msgid "The New mouse block will create a new mouse." msgstr "" -#: js/EnsembleBlocks.js:945 +#: js/blocks/EnsembleBlocks.js:945 msgid "new turtle" msgstr "" -#: js/EnsembleBlocks.js:947 +#: js/blocks/EnsembleBlocks.js:947 msgid "The New turtle block will create a new turtle." msgstr "" -#: js/EnsembleBlocks.js:1011 +#: js/blocks/EnsembleBlocks.js:1011 msgid "set mouse color" msgstr "" -#: js/EnsembleBlocks.js:1014 +#: js/blocks/EnsembleBlocks.js:1014 msgid "The Set-mouse-color block is used to set the color of a mouse." msgstr "" -#: js/EnsembleBlocks.js:1020 +#: js/blocks/EnsembleBlocks.js:1020 msgid "set turtle color" msgstr "" -#: js/EnsembleBlocks.js:1023 +#: js/blocks/EnsembleBlocks.js:1023 msgid "The Set-turtle-color block is used to set the color of a turtle." msgstr "" -#: js/EnsembleBlocks.js:1083 +#: js/blocks/EnsembleBlocks.js:1083 msgid "The Mouse-name block returns the name of a mouse." msgstr "" -#: js/EnsembleBlocks.js:1092 +#: js/blocks/EnsembleBlocks.js:1092 msgid "The Turtle-name block returns the name of a turtle." msgstr "" -#: js/EnsembleBlocks.js:1115 +#: js/blocks/EnsembleBlocks.js:1115 msgid "mouse count" msgstr "" -#: js/EnsembleBlocks.js:1118 +#: js/blocks/EnsembleBlocks.js:1118 msgid "The Mouse-count block returns the number of mice." msgstr "" -#: js/EnsembleBlocks.js:1124 +#: js/blocks/EnsembleBlocks.js:1124 msgid "turtle count" msgstr "" -#: js/EnsembleBlocks.js:1127 +#: js/blocks/EnsembleBlocks.js:1127 msgid "The Turtle-count block returns the number of turtles." msgstr "" -#: js/EnsembleBlocks.js:1149 +#: js/blocks/EnsembleBlocks.js:1149 msgid "nth mouse name" msgstr "" -#: js/EnsembleBlocks.js:1152 +#: js/blocks/EnsembleBlocks.js:1152 msgid "The Nth-Mouse name block returns the name of the nth mouse." msgstr "" -#: js/EnsembleBlocks.js:1158 +#: js/blocks/EnsembleBlocks.js:1158 msgid "nth turtle name" msgstr "" -#: js/EnsembleBlocks.js:1161 +#: js/blocks/EnsembleBlocks.js:1161 msgid "The Nth-Turtle name block returns the name of the nth turtle." msgstr "" -#: js/EnsembleBlocks.js:1205 -#: js/EnsembleBlocks.js:1265 +#: js/blocks/EnsembleBlocks.js:1205 +#: js/blocks/EnsembleBlocks.js:1265 msgid "set name" msgstr "" -#: js/EnsembleBlocks.js:1214 -#: js/EnsembleBlocks.js:1221 +#: js/blocks/EnsembleBlocks.js:1214 +#: js/blocks/EnsembleBlocks.js:1221 msgid "source" msgstr "แหล่ง" -#: js/EnsembleBlocks.js:1214 -#: js/EnsembleBlocks.js:1221 +#: js/blocks/EnsembleBlocks.js:1214 +#: js/blocks/EnsembleBlocks.js:1221 msgid "target" msgstr "เป้าหมาย" -#: js/EnsembleBlocks.js:1271 +#: js/blocks/EnsembleBlocks.js:1271 msgid "The Set-name block is used to name a mouse." msgstr "" -#: js/EnsembleBlocks.js:1284 +#: js/blocks/EnsembleBlocks.js:1284 msgid "The Set-name block is used to name a turtle." msgstr "" -#: js/BooleanBlocks.js:44 -msgid "The Not block is the logical not operator." +#: js/blocks/ExtrasBlocks.js:33 +msgid "fraction" msgstr "" -#: js/BooleanBlocks.js:62 -msgid "not" -msgstr "ไม่" - -#: js/BooleanBlocks.js:134 -msgid "The And block is the logical and operator." +#: js/blocks/ExtrasBlocks.js:36 +msgid "Convert a float to a fraction" msgstr "" -#: js/BooleanBlocks.js:152 -msgid "and" -msgstr "บวก" - -#: js/BooleanBlocks.js:218 -msgid "The Or block is the logical or operator." +#: js/blocks/ExtrasBlocks.js:93 +msgid "save as ABC" msgstr "" -#: js/BooleanBlocks.js:236 -msgid "or" -msgstr "หรือ" - -#: js/BooleanBlocks.js:302 -msgid "The XOR block is the logical XOR operator." -msgstr "" +#: js/blocks/ExtrasBlocks.js:96 +#: js/blocks/ExtrasBlocks.js:132 +#: js/blocks/ExtrasBlocks.js:168 +msgid "title" +msgstr "หัวข้อ" -#: js/BooleanBlocks.js:320 -msgid "xor" +#: js/blocks/ExtrasBlocks.js:129 +msgid "save as Lilypond" msgstr "" -#: js/BooleanBlocks.js:808 -msgid "The Equal block returns True if the two numbers are equal." +#: js/blocks/ExtrasBlocks.js:165 +msgid "save as SVG" msgstr "" -#: js/BooleanBlocks.js:909 -msgid "The Not-equal-to block returns True if the two numbers are not equal to each other." -msgstr "" +#: js/blocks/ExtrasBlocks.js:216 +msgid "no background" +msgstr "ไม่มีพื้นหลัง" -#: js/BooleanBlocks.js:1008 -msgid "The Boolean block is used to specify true or false." +#: js/blocks/ExtrasBlocks.js:219 +msgid "The No background block eliminates the background from the saved SVG output." msgstr "" -#: js/MediaBlocks.js:35 -#.TRANS: right side of the screen -msgid "right (screen)" -msgstr "" +#: js/blocks/ExtrasBlocks.js:247 +msgid "show blocks" +msgstr "แสดง blocks" -#: js/MediaBlocks.js:45 -#: js/MediaBlocks.js:56 -msgid "The Right block returns the position of the right of the canvas." +#: js/blocks/ExtrasBlocks.js:249 +msgid "The Show blocks block shows the blocks." msgstr "" -#: js/MediaBlocks.js:97 -#.TRANS: left side of the screen -msgid "left (screen)" -msgstr "" +#: js/blocks/ExtrasBlocks.js:274 +msgid "hide blocks" +msgstr "ซ่อน blocks" -#: js/MediaBlocks.js:107 -#: js/MediaBlocks.js:118 -msgid "The Left block returns the position of the left of the canvas." +#: js/blocks/ExtrasBlocks.js:276 +msgid "The Hide blocks block hides the blocks." msgstr "" -#: js/MediaBlocks.js:158 -msgid "top (screen)" +#: js/blocks/ExtrasBlocks.js:305 +#: js/blocks/ExtrasBlocks.js:338 +msgid "The Space block is used to add space between blocks." msgstr "" -#: js/MediaBlocks.js:168 -#: js/MediaBlocks.js:179 -msgid "The Top block returns the position of the top of the canvas." -msgstr "" +#: js/blocks/ExtrasBlocks.js:376 +msgid "wait" +msgstr "รอ" -#: js/MediaBlocks.js:219 -msgid "bottom (screen)" +#: js/blocks/ExtrasBlocks.js:379 +msgid "The Wait block pauses the program for a specified number of seconds." msgstr "" -#: js/MediaBlocks.js:229 -#: js/MediaBlocks.js:240 -msgid "The Bottom block returns the position of the bottom of the canvas." -msgstr "" +#: js/blocks/ExtrasBlocks.js:433 +#: plugins/facebook.rtp:30 +msgid "comment" +msgstr "หมายเหตุ" -#: js/MediaBlocks.js:282 -msgid "width" -msgstr "" +#: js/blocks/ExtrasBlocks.js:469 +msgid "print" +msgstr "งานพิมพ์" -#: js/MediaBlocks.js:291 -msgid "The Width block returns the width of the canvas." +#: js/blocks/ExtrasBlocks.js:476 +msgid "The Print block displays text at the top of the screen." msgstr "" -#: js/MediaBlocks.js:325 -msgid "height" +#: js/blocks/ExtrasBlocks.js:582 +msgid "display grid" msgstr "" -#: js/MediaBlocks.js:334 -msgid "The Height block returns the height of the canvas." +#: js/blocks/ExtrasBlocks.js:587 +msgid "The Display Grid Block changes the grid type" msgstr "" -#: js/MediaBlocks.js:369 -#.TRANS: stops playback of an audio recording -msgid "stop play" -msgstr "หยุดเล่น" - -#: js/MediaBlocks.js:404 -#.TRANS: Erases the images and text -msgid "erase media" -msgstr "" +#: js/blocks/ExtrasBlocks.js:689 +#: js/blocks/ExtrasBlocks.js:708 +#: js/blocks/ExtrasBlocks.js:731 +#: js/blocks/ExtrasBlocks.js:754 +#: js/blocks/ExtrasBlocks.js:772 +#: js/blocks/ExtrasBlocks.js:791 +#: js/blocks/ExtrasBlocks.js:810 +#: js/blocks/ExtrasBlocks.js:829 +msgid "unknown" +msgstr "ไม่รู้" -#: js/MediaBlocks.js:409 -msgid "The Erase Media block erases text and images." +#: js/blocks/FlowBlocks.js:41 +msgid "The Backward block runs code in reverse order (Musical retrograde)." msgstr "" -#: js/MediaBlocks.js:439 -#.TRANS: play an audio recording -msgid "play back" -msgstr "เล่นย้อนหลัง" - -#: js/MediaBlocks.js:487 -msgid "speak" -msgstr "พูด" - -#: js/MediaBlocks.js:495 -msgid "The Speak block outputs to the text-to-speech synthesizer" +#: js/blocks/FlowBlocks.js:48 +msgid "backward" msgstr "" -#: js/MediaBlocks.js:546 -msgid "camera" +#: js/blocks/FlowBlocks.js:124 +msgid "The Duplicate block will run each block multiple times." msgstr "" -#: js/MediaBlocks.js:551 -msgid "The Camera block connects a webcam to the Show block." -msgstr "" +#: js/blocks/FlowBlocks.js:136 +msgid "duplicate" +msgstr "คัดลอกโน้ต" -#: js/MediaBlocks.js:574 -msgid "video" +#: js/blocks/FlowBlocks.js:334 +msgid "The Default block is used inside of a Switch to define the default action." msgstr "" -#: js/MediaBlocks.js:579 -msgid "The Video block selects video for use with the Show block." +#: js/blocks/FlowBlocks.js:342 +msgid "default" msgstr "" -#: js/MediaBlocks.js:607 -msgid "The Open file block opens a file for use with the Show block." +#: js/blocks/FlowBlocks.js:361 +#: js/blocks/FlowBlocks.js:418 +msgid "The Case Block must be used inside of a Switch Block." msgstr "" -#: js/MediaBlocks.js:645 -msgid "stop media" -msgstr "หยุดสื่อ" - -#: js/MediaBlocks.js:650 -msgid "The Stop media block stops audio or video playback." +#: js/blocks/FlowBlocks.js:389 +msgid "The Case block is used inside of a Switch to define matches." msgstr "" -#: js/MediaBlocks.js:679 -#: js/PitchBlocks.js:1539 -#: js/phrasemaker.js:822 -#: js/musickeyboard.js:1654 -#.TRANS: a measure of frequency: one cycle per second -msgid "hertz" +#: js/blocks/FlowBlocks.js:397 +msgid "case" msgstr "" -#: js/MediaBlocks.js:692 -msgid "duration (ms)" -msgstr "ระยะเวลาต่อ จุลวินาที" - -#: js/MediaBlocks.js:728 -#.TRANS: translate a note into hertz, e.g., A4 -> 440HZ -msgid "note to frequency" -msgstr "โน้ตความถี่" - -#: js/MediaBlocks.js:736 -msgid "The To frequency block converts a pitch name and octave to Hertz." +#: js/blocks/FlowBlocks.js:446 +msgid "The Switch block will run the code in the matching Case." msgstr "" -#: js/MediaBlocks.js:746 -#: js/PitchBlocks.js:656 -#: js/PitchBlocks.js:932 -#: js/PitchBlocks.js:1827 -#.TRANS: name2 is name as in name of pitch (JAPANESE ONLY) -msgid "name2" +#: js/blocks/FlowBlocks.js:454 +msgid "switch" msgstr "" -#: js/MediaBlocks.js:812 -msgid "The Avatar block is used to change the appearance of the mouse." +#: js/blocks/FlowBlocks.js:595 +msgid "The Stop block will stop a loop" msgstr "" -#: js/MediaBlocks.js:819 -msgid "The Avatar block is used to change the appearance of the turtle." +#: js/blocks/FlowBlocks.js:597 +msgid "Forever, Repeat, While, or Until." msgstr "" -#: js/MediaBlocks.js:831 -#: js/MediaBlocks.js:891 -#.TRANS: a media object -msgid "size" -msgstr "ขนาด" - -#: js/MediaBlocks.js:831 -msgid "image" -msgstr "รูปภาพ" - -#: js/MediaBlocks.js:880 -msgid "The Show block is used to display text or images on the canvas." -msgstr "" +#: js/blocks/FlowBlocks.js:604 +#: js/widgets/timbre.js:417 +#: js/widgets/timbre.js:419 +#: js/widgets/musickeyboard.js:819 +#: js/widgets/musickeyboard.js:821 +#: js/widgets/phrasemaker.js:4202 +#: plugins/rodi.rtp:29 +#: plugins/rodi.rtp:73 +#: plugins/rodi.rtp:413 +msgid "stop" +msgstr "หยุด" -#: js/MediaBlocks.js:888 -#.TRANS: show1 is show as in display an image or text on the screen. -msgid "show1" +#: js/blocks/FlowBlocks.js:653 +msgid "The Waitfor block will wait until the condition is true." msgstr "" -#: js/MediaBlocks.js:891 -msgid "obj" -msgstr "สิ่งของ" +#: js/blocks/FlowBlocks.js:661 +msgid "wait for" +msgstr "รอ" -#: js/MediaBlocks.js:938 -msgid "The Media block is used to import an image." +#: js/blocks/FlowBlocks.js:732 +msgid "The Until block will repeat until the condition is true." msgstr "" -#: js/MediaBlocks.js:973 -msgid "The Text block holds a text string." -msgstr "" +#: js/blocks/FlowBlocks.js:740 +msgid "until" +msgstr "จนกว่า" -#: js/ProgramBlocks.js:33 -msgid "The Load-heap-from-app block loads the heap from a web page." +#: js/blocks/FlowBlocks.js:742 +#: js/blocks/FlowBlocks.js:822 +msgid "do2" msgstr "" -#: js/ProgramBlocks.js:44 -#.TRANS: load the heap contents from a URL -msgid "load heap from App" +#: js/blocks/FlowBlocks.js:812 +msgid "The While block will repeat while the condition is true." msgstr "" -#: js/ProgramBlocks.js:95 -msgid "Error parsing JSON data:" -msgstr "" +#: js/blocks/FlowBlocks.js:820 +msgid "while" +msgstr "สีขาว" -#: js/ProgramBlocks.js:100 -msgid "404: Page not found" +#: js/blocks/FlowBlocks.js:903 +#: js/blocks/FlowBlocks.js:968 +#: js/blocks/FlowBlocks.js:979 +msgid "In this example if the mouse button is pressed a snare drum will play." msgstr "" -#: js/ProgramBlocks.js:133 -msgid "The Save-heap-to-app block saves the heap to a web page." -msgstr "" +#: js/blocks/FlowBlocks.js:925 +#: js/blocks/FlowBlocks.js:988 +msgid "if" +msgstr "ถ้า" -#: js/ProgramBlocks.js:144 -#.TRANS: save the heap contents to a URL -msgid "save heap to App" -msgstr "" +#: js/blocks/FlowBlocks.js:927 +#: js/blocks/FlowBlocks.js:990 +msgid "then" +msgstr "แล้ว" -#: js/ProgramBlocks.js:189 -msgid "Cannot find a valid heap for" -msgstr "" +#: js/blocks/FlowBlocks.js:927 +msgid "else" +msgstr "ไม่งั้นให้ทำ" -#: js/ProgramBlocks.js:206 -msgid "The Load-heap block loads the heap from a file." +#: js/blocks/FlowBlocks.js:1025 +msgid "The Forever block will repeat the contained blocks forever." msgstr "" -#: js/ProgramBlocks.js:217 -#.TRANS: load the heap from a file -msgid "load heap" -msgstr "โหลดฮีป" - -#: js/ProgramBlocks.js:270 -msgid "The file you selected does not contain a valid heap." -msgstr "" +#: js/blocks/FlowBlocks.js:1037 +msgid "forever" +msgstr "ตลอดไป" -#: js/ProgramBlocks.js:275 -msgid "The loadHeap block needs a loadFile block." +#: js/blocks/FlowBlocks.js:1073 +msgid "The Repeat block will repeat the contained blocks." msgstr "" -#: js/ProgramBlocks.js:291 -msgid "The Set-heap block loads the heap." +#: js/blocks/FlowBlocks.js:1075 +msgid "In this example the note will be played 4 times." msgstr "" -#: js/ProgramBlocks.js:299 -#: js/HeapBlocks.js:539 -#.TRANS: load the heap from a JSON encoding -msgid "set heap" -msgstr "ตั้งค่าฮีป" - -#: js/ProgramBlocks.js:340 -msgid "The block you selected does not contain a valid heap." -msgstr "" +#: js/blocks/FlowBlocks.js:1083 +msgid "repeat" +msgstr "ซ้ำ" -#: js/ProgramBlocks.js:343 -msgid "The Set heap block needs a heap." -msgstr "" +#: js/blocks/FlowBlocks.js:1123 +msgid "duplicate factor" +msgstr "ปัจจัยคักลอก" -#: js/ProgramBlocks.js:360 -msgid "The Load-dictionary block loads a dictionary from a file." +#: js/blocks/HeapBlocks.js:49 +msgid "The Heap block returns the heap." msgstr "" -#: js/ProgramBlocks.js:372 -#.TRANS: load a dictionary from a file -msgid "load dictionary" -msgstr "" +#: js/blocks/HeapBlocks.js:133 +msgid "show heap" +msgstr "แสดง heap" -#: js/ProgramBlocks.js:390 -#: js/ProgramBlocks.js:658 -#: js/ToneBlocks.js:1025 -msgid "file" +#: js/blocks/HeapBlocks.js:181 +msgid "The Heap-length block returns the length of the heap." msgstr "" -#: js/ProgramBlocks.js:396 -#: js/ProgramBlocks.js:501 -#: js/ProgramBlocks.js:664 -#: js/DictBlocks.js:80 -#: js/DictBlocks.js:145 -#: js/DictBlocks.js:216 -#: js/DictBlocks.js:290 -msgid "My Dictionary" -msgstr "" +#: js/blocks/HeapBlocks.js:195 +msgid "heap length" +msgstr "ความยาวของฮีป" -#: js/ProgramBlocks.js:444 -msgid "The file you selected does not contain a valid dictionary." +#: js/blocks/HeapBlocks.js:254 +msgid "The Heap-empty? block returns true if the heap is empty." msgstr "" -#: js/ProgramBlocks.js:449 -msgid "The load dictionary block needs a load file block." -msgstr "" +#: js/blocks/HeapBlocks.js:268 +#.TRANS: Is the heap empty? +msgid "heap empty?" +msgstr "ลบฮีป?" -#: js/ProgramBlocks.js:466 -msgid "The Set-dictionary block loads a dictionary." +#: js/blocks/HeapBlocks.js:317 +msgid "The Empty-heap block empties the heap." msgstr "" -#: js/ProgramBlocks.js:477 -#.TRANS: load a dictionary from a JSON -msgid "set dictionary" -msgstr "" +#: js/blocks/HeapBlocks.js:327 +#: js/blocks/HeapBlocks.js:647 +#.TRANS: empty the heap +msgid "empty heap" +msgstr "heap ว่าง" -#: js/ProgramBlocks.js:546 -msgid "The block you selected does not contain a valid dictionary." +#: js/blocks/HeapBlocks.js:371 +msgid "The Reverse-heap block reverses the order of the heap." msgstr "" -#: js/ProgramBlocks.js:550 -msgid "The set dictionary block needs a dictionary." +#: js/blocks/HeapBlocks.js:384 +#.TRANS: reverse the order of the heap +msgid "reverse heap" msgstr "" -#: js/ProgramBlocks.js:567 -msgid "The Save-heap block saves the heap to a file." +#: js/blocks/HeapBlocks.js:428 +msgid "The Index-heap block returns a value in the heap at a specified location." msgstr "" -#: js/ProgramBlocks.js:578 -#.TRANS: save the heap to a file -msgid "save heap" -msgstr "บันทึกฮีป" +#: js/blocks/HeapBlocks.js:443 +#.TRANS: retrieve a value from the heap at index position in the heap +msgid "index heap" +msgstr "ดัชนีฮีป" -#: js/ProgramBlocks.js:629 -msgid "The Save-dictionary block saves a dictionary to a file." +#: js/blocks/HeapBlocks.js:523 +msgid "The Set-heap entry block sets a value in he heap at the specified location." msgstr "" -#: js/ProgramBlocks.js:640 -#.TRANS: save a dictionary to a file -msgid "save dictionary" -msgstr "" +#: js/blocks/HeapBlocks.js:539 +#: js/blocks/ProgramBlocks.js:299 +#.TRANS: load the heap from a JSON encoding +msgid "set heap" +msgstr "ตั้งค่าฮีป" -#: js/ProgramBlocks.js:720 -msgid "The Open palette block opens a palette." +#: js/blocks/HeapBlocks.js:619 +msgid "The Pop block removes the value at the top of the heap." msgstr "" -#: js/ProgramBlocks.js:727 -msgid "open palette" -msgstr "" +#: js/blocks/HeapBlocks.js:633 +#.TRANS: pop a value off the top of the heap +msgid "pop" +msgstr "ป๊อบ" -#: js/ProgramBlocks.js:785 -msgid "The Delete block block removes a block." +#: js/blocks/HeapBlocks.js:680 +msgid "The Push block adds a value to the top of the heap." msgstr "" -#: js/ProgramBlocks.js:797 -#.TRANS: Move this block to the trash. -msgid "delete block" -msgstr "" +#: js/blocks/HeapBlocks.js:696 +#.TRANS: push a value onto the top of the heap +msgid "push" +msgstr "ใส่เข้าไป" -#: js/ProgramBlocks.js:861 -msgid "The Move block block moves a block." +#: js/blocks/IntervalsBlocks.js:45 +msgid "set temperament" msgstr "" -#: js/ProgramBlocks.js:869 -#.TRANS: Move the position of a block on the screen. -msgid "move block" -msgstr "" +#: js/blocks/IntervalsBlocks.js:63 +#: js/blocks/MediaBlocks.js:746 +#: js/blocks/PitchBlocks.js:657 +#: js/blocks/PitchBlocks.js:935 +#: js/blocks/PitchBlocks.js:974 +#: js/blocks/PitchBlocks.js:1007 +#: js/blocks/PitchBlocks.js:1194 +#: js/blocks/PitchBlocks.js:1717 +#: js/blocks/PitchBlocks.js:1758 +#: js/blocks/PitchBlocks.js:1866 +#: js/blocks/ToneBlocks.js:1025 +#: js/turtleactions/IntervalsActions.js:114 +#.TRANS: adjusts the shift up or down by one octave (twelve half-steps in the interval between two notes, one having twice or half the frequency in Hz of the other.) +msgid "octave" +msgstr "เสียงแปดคู่" -#: js/ProgramBlocks.js:881 -#: js/ProgramBlocks.js:1048 -msgid "block number" +#: js/blocks/IntervalsBlocks.js:99 +msgid "The Temperament name block is used to select a tuning method." msgstr "" -#: js/ProgramBlocks.js:935 -#.TRANS: Run program beginning at this block. -msgid "run block" +#: js/blocks/IntervalsBlocks.js:161 +msgid "doubly" msgstr "" -#: js/ProgramBlocks.js:1025 -msgid "The Dock block block connections two blocks." +#: js/blocks/IntervalsBlocks.js:166 +msgid "The Doubly block will double the size of an interval." msgstr "" -#: js/ProgramBlocks.js:1036 -#.TRANS: We can connect a block to another block. -msgid "connect blocks" +#: js/blocks/IntervalsBlocks.js:262 +msgid "interval number" msgstr "" -#: js/ProgramBlocks.js:1048 -msgid "target block" +#: js/blocks/IntervalsBlocks.js:317 +msgid "current interval" msgstr "" -#: js/ProgramBlocks.js:1048 -msgid "connection number" +#: js/blocks/IntervalsBlocks.js:387 +#.TRANS: measure the distance between two pitches in semi-tones +msgid "semi-tone interval measure" msgstr "" -#: js/ProgramBlocks.js:1140 -msgid "The Make block block creates a new block." +#: js/blocks/IntervalsBlocks.js:454 +#: js/blocks/IntervalsBlocks.js:570 +msgid "You must use two pitch blocks when measuring an interval." msgstr "" -#: js/ProgramBlocks.js:1152 -#.TRANS: Create a new block -msgid "make block" +#: js/blocks/IntervalsBlocks.js:496 +msgid "The Scalar interval block measures the distance between two notes in the current key and mode." msgstr "" -#: js/ProgramBlocks.js:1186 -#: js/ProgramBlocks.js:1227 -#: js/RhythmBlocks.js:1128 -#: js/PitchBlocks.js:972 -#: js/PitchBlocks.js:1005 -#: js/temperament.js:340 -#: js/temperament.js:362 -#: js/temperament.js:372 -#: js/temperament.js:484 -#: js/status.js:190 -#: plugins/rodi.rtp:192 -#.TRANS: a musical note consisting of pitch and duration -msgid "note" -msgstr "โน้ต" - -#: js/ProgramBlocks.js:1285 -msgid "Cannot find block" +#: js/blocks/IntervalsBlocks.js:502 +#.TRANS: measure the distance between two pitches in steps of musical scale +msgid "scalar interval measure" msgstr "" -#: js/ProgramBlocks.js:1304 -#: js/ProgramBlocks.js:1313 -msgid "Warning: block argument type mismatch" +#: js/blocks/IntervalsBlocks.js:678 +msgid "In the figure, we add sol# to sol." msgstr "" -#: js/ProgramBlocks.js:1347 -msgid "The Open project block is used to open a project from a web page." +#: js/blocks/IntervalsBlocks.js:684 +#: js/blocks/OrnamentBlocks.js:220 +#.TRANS: calculate a relative step between notes based on semi-tones +msgid "semi-tone interval" msgstr "" -#: js/ProgramBlocks.js:1357 -msgid "open project" +#: js/blocks/IntervalsBlocks.js:733 +msgid "The output of the example is: do, mi, sol, sol, ti, mi" msgstr "" -#: js/ProgramBlocks.js:1410 -msgid "Please enter a valid URL." +#: js/blocks/IntervalsBlocks.js:740 +#: js/blocks/WidgetBlocks.js:768 +msgid "arpeggio" msgstr "" -#: js/DrumBlocks.js:59 -msgid "The Noise name block is used to select a noise synthesizer." +#: js/blocks/IntervalsBlocks.js:931 +msgid "The Chord block calculates common chords." msgstr "" -#: js/DrumBlocks.js:102 -msgid "The Drum name block is used to select a drum." +#: js/blocks/IntervalsBlocks.js:933 +msgid "In the figure, we generate a C-major chord." msgstr "" -#: js/DrumBlocks.js:146 -msgid "The Effects name block is used to select a sound effect." +#: js/blocks/IntervalsBlocks.js:938 +msgid "chord" msgstr "" -#: js/DrumBlocks.js:163 -msgid "noise" +#: js/blocks/IntervalsBlocks.js:990 +msgid "The Ratio Interval block calculates an interval based on a ratio." msgstr "" -#: js/DrumBlocks.js:177 -msgid "The Play noise block will generate white, pink, or brown noise." +#: js/blocks/IntervalsBlocks.js:995 +msgid "ratio interval" msgstr "" -#: js/DrumBlocks.js:191 -#: js/musicutils.js:752 -#: js/synthutils.js:47 -#.TRANS: white noise synthesizer -msgid "white noise" +#: js/blocks/IntervalsBlocks.js:1064 +msgid "In the figure, we add la to sol." msgstr "" -#: js/DrumBlocks.js:326 -msgid "Replace every instance of a pitch with a drum sound." +#: js/blocks/IntervalsBlocks.js:1120 +#.TRANS: define a custom mode +msgid "define mode" msgstr "" -#: js/DrumBlocks.js:337 -#.TRANS: map a pitch to a drum sound -msgid "map pitch to drum" +#: js/blocks/IntervalsBlocks.js:1173 +msgid "movable Do" msgstr "" -#: js/DrumBlocks.js:404 -msgid "In the example above, a kick drum sound will be played instead of sol." +#: js/blocks/IntervalsBlocks.js:1224 +#.TRANS: mode length is the number of notes in the mode, e.g., 7 for major and minor scales; 12 for chromatic scales +msgid "mode length" msgstr "" -#: js/DrumBlocks.js:416 -#.TRANS: set the current drum sound for playback -msgid "set drum" +#: js/blocks/IntervalsBlocks.js:1233 +msgid "The Mode length block is the number of notes in the current scale." msgstr "" -#: js/DrumBlocks.js:460 -msgid "sound effect" +#: js/blocks/IntervalsBlocks.js:1235 +msgid "Most Western scales have 7 notes." msgstr "" -#: js/DrumBlocks.js:498 -msgid "You can use multiple Drum blocks within a Note block." +#: js/blocks/IntervalsBlocks.js:1284 +#.TRANS: the mode in music is 'major', 'minor', etc. +msgid "current mode" msgstr "" -#: js/RhythmBlocks.js:182 -#: js/RhythmBlocks.js:1086 -#: js/RhythmBlocks.js:1162 -msgid "Note value must be greater than 0." +#: js/blocks/IntervalsBlocks.js:1337 +#.TRANS: the key is a group of pitches with which a music composition is created +msgid "current key" msgstr "" -#: js/RhythmBlocks.js:215 -#: js/RhythmBlocks.js:278 -#: js/RhythmBlocks.js:350 -#.TRANS: swing is a rhythmic variation that emphasises the offbeat -msgid "swing" -msgstr "แกว่ง" +#: js/blocks/IntervalsBlocks.js:1389 +#: js/blocks/IntervalsBlocks.js:1434 +#.TRANS: set the key and mode, e.g. C Major +msgid "set key" +msgstr "ตั้งคีย์" -#: js/RhythmBlocks.js:355 -#.TRANS: the amount to shift to the offbeat note -msgid "swing value" +#: js/blocks/IntervalsBlocks.js:1443 +#: js/blocks/IntervalsBlocks.js:1449 +msgid "The Set key block is used to set the key and mode," msgstr "" -#: js/RhythmBlocks.js:419 -msgid "The Skip notes block will cause notes to be skipped." +#: js/blocks/IntervalsBlocks.js:1449 +msgid "eg C Major" msgstr "" -#: js/RhythmBlocks.js:427 -#.TRANS: substitute rests on notes being skipped -msgid "skip notes" -msgstr "ข้านโน้ต" - -#: js/RhythmBlocks.js:489 -#.TRANS: speed up note duration by some factor, e.g. convert 1/4 to 1/8 notes by using a factor of 2 -msgid "multiply note value" -msgstr "หลายจังหวะ" - -#: js/RhythmBlocks.js:542 -msgid "The Tie block works on pairs of notes, combining them into one note." +#: js/blocks/MediaBlocks.js:35 +#.TRANS: right side of the screen +msgid "right (screen)" msgstr "" -#: js/RhythmBlocks.js:550 -#.TRANS: tie notes together into one longer note -msgid "tie" -msgstr "รวม" - -#: js/RhythmBlocks.js:591 -#: js/RhythmBlocks.js:671 -#.TRANS: a dotted note is played for 1.5x its value, e.g., 1/8. --> 3/16 -msgid "dot" -msgstr "จุด" - -#: js/RhythmBlocks.js:619 -#: js/RhythmActions.js:221 -msgid "An argument of -1 results in a note value of 0." +#: js/blocks/MediaBlocks.js:45 +#: js/blocks/MediaBlocks.js:56 +msgid "The Right block returns the position of the right of the canvas." msgstr "" -#: js/RhythmBlocks.js:661 -msgid "The Dot block extends the duration of a note by 50%." +#: js/blocks/MediaBlocks.js:97 +#.TRANS: left side of the screen +msgid "left (screen)" msgstr "" -#: js/RhythmBlocks.js:663 -msgid "Eg a dotted quarter note will play for 3/8 (1/4 + 1/8) of a beat." +#: js/blocks/MediaBlocks.js:107 +#: js/blocks/MediaBlocks.js:118 +msgid "The Left block returns the position of the left of the canvas." msgstr "" -#: js/RhythmBlocks.js:765 -#.TRANS: Japanese only: note value block for drum -msgid "note value drum" +#: js/blocks/MediaBlocks.js:158 +msgid "top (screen)" msgstr "" -#: js/RhythmBlocks.js:829 -msgid "392 hertz" +#: js/blocks/MediaBlocks.js:168 +#: js/blocks/MediaBlocks.js:179 +msgid "The Top block returns the position of the top of the canvas." msgstr "" -#: js/RhythmBlocks.js:1119 -msgid "The Note block is a container for one or more Pitch blocks." +#: js/blocks/MediaBlocks.js:219 +msgid "bottom (screen)" msgstr "" -#: js/RhythmBlocks.js:1121 -msgid "The Note block specifies the duration (note value) of its contents." +#: js/blocks/MediaBlocks.js:229 +#: js/blocks/MediaBlocks.js:240 +msgid "The Bottom block returns the position of the bottom of the canvas." msgstr "" -#: js/RhythmBlocks.js:1130 -msgid "value2" +#: js/blocks/MediaBlocks.js:282 +msgid "width" msgstr "" -#: js/RhythmBlocks.js:1200 -msgid "define frequency" +#: js/blocks/MediaBlocks.js:291 +msgid "The Width block returns the width of the canvas." msgstr "" -#: js/RhythmBlocks.js:1218 -#: js/temperament.js:650 -#: js/temperament.js:1421 -msgid "octave space" +#: js/blocks/MediaBlocks.js:325 +msgid "height" msgstr "" -#: js/NumberBlocks.js:28 -msgid "The Int block returns an integer." +#: js/blocks/MediaBlocks.js:334 +msgid "The Height block returns the height of the canvas." msgstr "" -#: js/NumberBlocks.js:34 -msgid "int" -msgstr "" +#: js/blocks/MediaBlocks.js:369 +#.TRANS: stops playback of an audio recording +msgid "stop play" +msgstr "หยุดเล่น" -#: js/NumberBlocks.js:73 -msgid "The Mod block returns the remainder from a division." +#: js/blocks/MediaBlocks.js:404 +#.TRANS: Erases the images and text +msgid "erase media" msgstr "" -#: js/NumberBlocks.js:79 -msgid "mod" -msgstr "หารเอาเศษ" - -#: js/NumberBlocks.js:123 -msgid "The Power block calculates a power function." +#: js/blocks/MediaBlocks.js:409 +msgid "The Erase Media block erases text and images." msgstr "" -#: js/NumberBlocks.js:178 -msgid "The Sqrt block returns the square root." -msgstr "" +#: js/blocks/MediaBlocks.js:439 +#.TRANS: play an audio recording +msgid "play back" +msgstr "เล่นย้อนหลัง" -#: js/NumberBlocks.js:184 -msgid "sqrt" -msgstr "จำนวนรากกำลังสอง" +#: js/blocks/MediaBlocks.js:487 +msgid "speak" +msgstr "พูด" -#: js/NumberBlocks.js:230 -msgid "The Abs block returns the absolute value." +#: js/blocks/MediaBlocks.js:495 +msgid "The Speak block outputs to the text-to-speech synthesizer" msgstr "" -#: js/NumberBlocks.js:236 -msgid "abs" +#: js/blocks/MediaBlocks.js:546 +msgid "camera" msgstr "" -#: js/NumberBlocks.js:277 -msgid "The Distance block returns the distance between two points. For example, between the mouse and the center of the screen." +#: js/blocks/MediaBlocks.js:551 +msgid "The Camera block connects a webcam to the Show block." msgstr "" -#: js/NumberBlocks.js:283 -#: plugins/rodi.rtp:310 -msgid "distance" -msgstr "ระยะ" - -#: js/NumberBlocks.js:343 -msgid "The Divide block is used to divide." +#: js/blocks/MediaBlocks.js:574 +msgid "video" msgstr "" -#: js/NumberBlocks.js:411 -msgid "The Multiply block is used to multiply." +#: js/blocks/MediaBlocks.js:579 +msgid "The Video block selects video for use with the Show block." msgstr "" -#: js/NumberBlocks.js:554 -msgid "The Minus block is used to subtract." +#: js/blocks/MediaBlocks.js:607 +msgid "The Open file block opens a file for use with the Show block." msgstr "" -#: js/NumberBlocks.js:647 -msgid "The Plus block is used to add." -msgstr "" +#: js/blocks/MediaBlocks.js:645 +msgid "stop media" +msgstr "หยุดสื่อ" -#: js/NumberBlocks.js:773 -msgid "The One-of block returns one of two choices." +#: js/blocks/MediaBlocks.js:650 +msgid "The Stop media block stops audio or video playback." msgstr "" -#: js/NumberBlocks.js:780 -#: js/PitchBlocks.js:616 -msgid "one of" -msgstr "หนึ่งใน" - -#: js/NumberBlocks.js:782 -msgid "this" -msgstr "นี้" - -#: js/NumberBlocks.js:782 -msgid "that" -msgstr "ซึ่ง" - -#: js/NumberBlocks.js:837 -msgid "The Random block returns a random number." +#: js/blocks/MediaBlocks.js:679 +#: js/blocks/PitchBlocks.js:1577 +#: js/widgets/musickeyboard.js:1936 +#: js/widgets/phrasemaker.js:1037 +#.TRANS: a measure of frequency: one cycle per second +msgid "hertz" msgstr "" -#: js/NumberBlocks.js:844 -msgid "random" -msgstr "สุ่ม" +#: js/blocks/MediaBlocks.js:692 +#: js/blocks/WidgetBlocks.js:182 +#: js/widgets/temperament.js:506 +#: js/widgets/temperament.js:546 +#: js/widgets/temperament.js:610 +#: js/widgets/temperament.js:618 +#: js/widgets/temperament.js:1505 +#: js/widgets/timbre.js:1842 +msgid "frequency" +msgstr "ความถี่" -#: js/NumberBlocks.js:846 -msgid "min" -msgstr "นาที" +#: js/blocks/MediaBlocks.js:692 +msgid "duration (ms)" +msgstr "ระยะเวลาต่อ จุลวินาที" -#: js/NumberBlocks.js:846 -msgid "max" -msgstr "ใหญ่สุด" +#: js/blocks/MediaBlocks.js:728 +#.TRANS: translate a note into hertz, e.g., A4 -> 440HZ +msgid "note to frequency" +msgstr "โน้ตความถี่" -#: js/NumberBlocks.js:910 -msgid "The Number block holds a number." +#: js/blocks/MediaBlocks.js:736 +msgid "The To frequency block converts a pitch name and octave to Hertz." msgstr "" -#: js/BoxesBlocks.js:53 -#: js/BoxesBlocks.js:59 -msgid "The Add-to block is used to add to the value stored in a box." +#: js/blocks/MediaBlocks.js:746 +#: js/blocks/PitchBlocks.js:656 +#: js/blocks/PitchBlocks.js:934 +#: js/blocks/PitchBlocks.js:1866 +#.TRANS: name2 is name as in name of pitch (JAPANESE ONLY) +msgid "name2" msgstr "" -#: js/BoxesBlocks.js:61 -msgid "It can also be used with other blocks such as Color and Pen size." +#: js/blocks/MediaBlocks.js:812 +msgid "The Avatar block is used to change the appearance of the mouse." msgstr "" -#: js/BoxesBlocks.js:73 -msgid "add" -msgstr "เพิ่ม" +#: js/blocks/MediaBlocks.js:819 +msgid "The Avatar block is used to change the appearance of the turtle." +msgstr "" -#: js/BoxesBlocks.js:75 -#: js/temperament.js:716 -msgid "to" -msgstr "เพิ่ม1" +#: js/blocks/MediaBlocks.js:831 +#: js/blocks/MediaBlocks.js:891 +#.TRANS: a media object +msgid "size" +msgstr "ขนาด" -#: js/BoxesBlocks.js:75 -#: js/BoxesBlocks.js:595 -#: js/HeapBlocks.js:544 -msgid "value1" -msgstr "" +#: js/blocks/MediaBlocks.js:831 +msgid "image" +msgstr "รูปภาพ" -#: js/BoxesBlocks.js:118 -msgid "Block does not support incrementing." +#: js/blocks/MediaBlocks.js:880 +msgid "The Show block is used to display text or images on the canvas." msgstr "" -#: js/BoxesBlocks.js:152 -msgid "The Add-1-to block adds one to the value stored in a box." +#: js/blocks/MediaBlocks.js:888 +#.TRANS: show1 is show as in display an image or text on the screen. +msgid "show1" msgstr "" -#: js/BoxesBlocks.js:163 -msgid "add 1 to" -msgstr "เพิ่ม1ที่" +#: js/blocks/MediaBlocks.js:891 +msgid "obj" +msgstr "สิ่งของ" -#: js/BoxesBlocks.js:211 -msgid "The Subtract-1-from block subtracts one from the value stored in a box." +#: js/blocks/MediaBlocks.js:938 +msgid "The Media block is used to import an image." msgstr "" -#: js/BoxesBlocks.js:222 -msgid "subtract 1 from" +#: js/blocks/MediaBlocks.js:973 +msgid "The Text block holds a text string." msgstr "" -#: js/BoxesBlocks.js:270 -#: js/BoxesBlocks.js:387 -msgid "The Box block returns the value stored in a box." +#: js/blocks/MeterBlocks.js:34 +#.TRANS: musical meter (time signature), e.g., 4:4 +msgid "current meter" msgstr "" -#: js/BoxesBlocks.js:500 -#: js/BoxesBlocks.js:576 -msgid "The Store in block will store a value in a box." -msgstr "" +#: js/blocks/MeterBlocks.js:85 +#.TRANS: number of beats per minute +msgid "beat factor" +msgstr "ปัจจัยให้เกิดจังหวะ" -#: js/BoxesBlocks.js:652 -msgid "The Box2 block returns the value stored in Box2." +#: js/blocks/MeterBlocks.js:161 +msgid "The Beats per minute block returns the current beats per minute." msgstr "" -#: js/BoxesBlocks.js:703 -msgid "The Store in Box2 block is used to store a value in Box2." +#: js/blocks/MeterBlocks.js:169 +#: js/widgets/status.js:152 +#.TRANS: number of beats played per minute +msgid "beats per minute2" msgstr "" -#: js/BoxesBlocks.js:715 -msgid "store in box2" -msgstr "" +#: js/blocks/MeterBlocks.js:169 +#: js/blocks/MeterBlocks.js:1056 +#: js/blocks/MeterBlocks.js:1133 +#: js/blocks/MeterBlocks.js:1211 +#.TRANS: sets tempo by defining a beat and beats per minute +msgid "beats per minute" +msgstr "บีทต่อนาที" -#: js/BoxesBlocks.js:761 -msgid "The Box1 block returns the value stored in Box1." +#: js/blocks/MeterBlocks.js:233 +#.TRANS: count of current musical measure in meter +msgid "measure count" msgstr "" -#: js/BoxesBlocks.js:812 -msgid "The Store in Box1 block is used to store a value in Box1." +#: js/blocks/MeterBlocks.js:241 +msgid "The Measure count block returns the current measure." msgstr "" -#: js/BoxesBlocks.js:826 -msgid "store in box1" +#: js/blocks/MeterBlocks.js:290 +#.TRANS: count of current beat in the meter +msgid "beat count" msgstr "" -#: js/HeapBlocks.js:49 -msgid "The Heap block returns the heap." +#: js/blocks/MeterBlocks.js:300 +#: js/blocks/MeterBlocks.js:311 +#: js/blocks/MeterBlocks.js:565 +#: js/blocks/MeterBlocks.js:576 +msgid "The Beat count block is the number of the current beat," msgstr "" -#: js/HeapBlocks.js:133 -msgid "show heap" -msgstr "แสดง heap" +#: js/blocks/MeterBlocks.js:313 +#: js/blocks/MeterBlocks.js:578 +msgid "eg 1, 2, 3, or 4." +msgstr "" -#: js/HeapBlocks.js:181 -msgid "The Heap-length block returns the length of the heap." +#: js/blocks/MeterBlocks.js:368 +#.TRANS: count the number of notes +msgid "sum note values" msgstr "" -#: js/HeapBlocks.js:195 -msgid "heap length" -msgstr "ความยาวของฮีป" +#: js/blocks/MeterBlocks.js:376 +#: js/blocks/MeterBlocks.js:440 +msgid "The Note counter block can be used to count the number of contained notes." +msgstr "" -#: js/HeapBlocks.js:254 -msgid "The Heap-empty? block returns true if the heap is empty." +#: js/blocks/MeterBlocks.js:432 +#.TRANS: count the number of notes +msgid "note counter" msgstr "" -#: js/HeapBlocks.js:268 -#.TRANS: Is the heap empty? -msgid "heap empty?" -msgstr "ลบฮีป?" +#: js/blocks/MeterBlocks.js:496 +#.TRANS: number of whole notes that have been played +msgid "whole notes played" +msgstr "" -#: js/HeapBlocks.js:317 -msgid "The Empty-heap block empties the heap." +#: js/blocks/MeterBlocks.js:505 +msgid "The Whole notes played block returns the total number of whole notes played." msgstr "" -#: js/HeapBlocks.js:327 -#: js/HeapBlocks.js:647 -#.TRANS: empty the heap -msgid "empty heap" -msgstr "heap ว่าง" +#: js/blocks/MeterBlocks.js:555 +#: js/turtleactions/DictActions.js:83 +#.TRANS: number of notes that have been played +msgid "notes played" +msgstr "" -#: js/HeapBlocks.js:371 -msgid "The Reverse-heap block reverses the order of the heap." +#: js/blocks/MeterBlocks.js:653 +msgid "The No clock block decouples the notes from the master clock." msgstr "" -#: js/HeapBlocks.js:384 -#.TRANS: reverse the order of the heap -msgid "reverse heap" +#: js/blocks/MeterBlocks.js:661 +#.TRANS: don't lock notes to master clock +msgid "no clock" msgstr "" -#: js/HeapBlocks.js:428 -msgid "The Index-heap block returns a value in the heap at a specified location." +#: js/blocks/MeterBlocks.js:700 +msgid "on weak beat do" msgstr "" -#: js/HeapBlocks.js:443 -#.TRANS: retrieve a value from the heap at index position in the heap -msgid "index heap" -msgstr "ดัชนีฮีป" +#: js/blocks/MeterBlocks.js:705 +msgid "The On-weak-beat block lets you specify actions to take on weak (off) beats." +msgstr "" -#: js/HeapBlocks.js:523 -msgid "The Set-heap entry block sets a value in he heap at the specified location." +#: js/blocks/MeterBlocks.js:750 +msgid "on strong beat" msgstr "" -#: js/HeapBlocks.js:619 -msgid "The Pop block removes the value at the top of the heap." +#: js/blocks/MeterBlocks.js:758 +msgid "The On-strong-beat block lets you specify actions to take on specified beats." msgstr "" -#: js/HeapBlocks.js:633 -#.TRANS: pop a value off the top of the heap -msgid "pop" -msgstr "ป๊อบ" +#: js/blocks/MeterBlocks.js:769 +msgid "beat" +msgstr "" -#: js/HeapBlocks.js:680 -msgid "The Push block adds a value to the top of the heap." +#: js/blocks/MeterBlocks.js:813 +msgid "on every beat do" msgstr "" -#: js/HeapBlocks.js:696 -#.TRANS: push a value onto the top of the heap -msgid "push" -msgstr "ใส่เข้าไป" +#: js/blocks/MeterBlocks.js:821 +msgid "The On-every-beat block lets you specify actions to take on every beat." +msgstr "" -#: js/FlowBlocks.js:41 -msgid "The Backward block runs code in reverse order (Musical retrograde)." +#: js/blocks/MeterBlocks.js:874 +msgid "on every note do" msgstr "" -#: js/FlowBlocks.js:48 -msgid "backward" +#: js/blocks/MeterBlocks.js:882 +msgid "The On-every-note block lets you specify actions to take on every note." msgstr "" -#: js/FlowBlocks.js:124 -msgid "The Duplicate block will run each block multiple times." +#: js/blocks/MeterBlocks.js:928 +#: js/blocks/MeterBlocks.js:999 +#.TRANS: sets tempo by defining a beat and beats per minute +msgid "master beats per minute" msgstr "" -#: js/FlowBlocks.js:136 -msgid "duplicate" -msgstr "คัดลอกโน้ต" +#: js/blocks/MeterBlocks.js:952 +#: js/blocks/MeterBlocks.js:1078 +#: js/blocks/MeterBlocks.js:1135 +msgid "bpm" +msgstr "" -#: js/FlowBlocks.js:334 -msgid "The Default block is used inside of a Switch to define the default action." +#: js/blocks/MeterBlocks.js:952 +#: js/blocks/MeterBlocks.js:1078 +#: js/blocks/MeterBlocks.js:1135 +msgid "beat value" msgstr "" -#: js/FlowBlocks.js:342 -msgid "default" +#: js/blocks/MeterBlocks.js:1024 +#: js/blocks/MeterBlocks.js:1167 +#: js/blocks/MeterBlocks.js:1241 +msgid "Beats per minute must be > 30." msgstr "" -#: js/FlowBlocks.js:361 -#: js/FlowBlocks.js:418 -msgid "The Case Block must be used inside of a Switch Block." +#: js/blocks/MeterBlocks.js:1027 +#: js/blocks/MeterBlocks.js:1170 +#: js/blocks/MeterBlocks.js:1244 +msgid "Maximum beats per minute is 1000." msgstr "" -#: js/FlowBlocks.js:389 -msgid "The Case block is used inside of a Switch to define matches." +#: js/blocks/MeterBlocks.js:1068 +msgid "The Beats per minute block sets the number of 1/4 notes per minute." msgstr "" -#: js/FlowBlocks.js:397 -msgid "case" +#: js/blocks/MeterBlocks.js:1279 +#.TRANS: anacrusis +msgid "pickup" msgstr "" -#: js/FlowBlocks.js:446 -msgid "The Switch block will run the code in the matching Case." +#: js/blocks/MeterBlocks.js:1367 +msgid "number of beats" msgstr "" -#: js/FlowBlocks.js:454 -msgid "switch" +#: js/blocks/NumberBlocks.js:28 +msgid "The Int block returns an integer." msgstr "" -#: js/FlowBlocks.js:595 -msgid "The Stop block will stop a loop" +#: js/blocks/NumberBlocks.js:34 +msgid "int" msgstr "" -#: js/FlowBlocks.js:597 -msgid "Forever, Repeat, While, or Until." +#: js/blocks/NumberBlocks.js:73 +msgid "The Mod block returns the remainder from a division." msgstr "" -#: js/FlowBlocks.js:604 -#: js/phrasemaker.js:3799 -#: js/musickeyboard.js:629 -#: js/musickeyboard.js:631 -#: js/timbre.js:417 -#: js/timbre.js:419 -#: plugins/rodi.rtp:29 -#: plugins/rodi.rtp:73 -#: plugins/rodi.rtp:413 -msgid "stop" -msgstr "หยุด" +#: js/blocks/NumberBlocks.js:79 +msgid "mod" +msgstr "หารเอาเศษ" -#: js/FlowBlocks.js:653 -msgid "The Waitfor block will wait until the condition is true." +#: js/blocks/NumberBlocks.js:141 +msgid "The Power block calculates a power function." msgstr "" -#: js/FlowBlocks.js:661 -msgid "wait for" -msgstr "รอ" - -#: js/FlowBlocks.js:732 -msgid "The Until block will repeat until the condition is true." +#: js/blocks/NumberBlocks.js:196 +msgid "The Sqrt block returns the square root." msgstr "" -#: js/FlowBlocks.js:740 -msgid "until" -msgstr "จนกว่า" +#: js/blocks/NumberBlocks.js:202 +msgid "sqrt" +msgstr "จำนวนรากกำลังสอง" -#: js/FlowBlocks.js:742 -#: js/FlowBlocks.js:822 -msgid "do2" +#: js/blocks/NumberBlocks.js:248 +msgid "The Abs block returns the absolute value." msgstr "" -#: js/FlowBlocks.js:812 -msgid "The While block will repeat while the condition is true." +#: js/blocks/NumberBlocks.js:254 +msgid "abs" msgstr "" -#: js/FlowBlocks.js:820 -msgid "while" -msgstr "สีขาว" - -#: js/FlowBlocks.js:903 -#: js/FlowBlocks.js:968 -#: js/FlowBlocks.js:979 -msgid "In this example if the mouse button is pressed a snare drum will play." +#: js/blocks/NumberBlocks.js:295 +msgid "The Distance block returns the distance between two points. For example, between the mouse and the center of the screen." msgstr "" -#: js/FlowBlocks.js:925 -#: js/FlowBlocks.js:988 -msgid "if" -msgstr "ถ้า" - -#: js/FlowBlocks.js:927 -#: js/FlowBlocks.js:990 -msgid "then" -msgstr "แล้ว" +#: js/blocks/NumberBlocks.js:301 +#: plugins/rodi.rtp:310 +msgid "distance" +msgstr "ระยะ" -#: js/FlowBlocks.js:927 -msgid "else" -msgstr "ไม่งั้นให้ทำ" +#: js/blocks/NumberBlocks.js:361 +msgid "The Divide block is used to divide." +msgstr "" -#: js/FlowBlocks.js:1025 -msgid "The Forever block will repeat the contained blocks forever." +#: js/blocks/NumberBlocks.js:441 +msgid "The Multiply block is used to multiply." msgstr "" -#: js/FlowBlocks.js:1037 -msgid "forever" -msgstr "ตลอดไป" +#: js/blocks/NumberBlocks.js:612 +msgid "The Minus block is used to subtract." +msgstr "" -#: js/FlowBlocks.js:1073 -msgid "The Repeat block will repeat the contained blocks." +#: js/blocks/NumberBlocks.js:723 +msgid "The Plus block is used to add." msgstr "" -#: js/FlowBlocks.js:1075 -msgid "In this example the note will be played 4 times." +#: js/blocks/NumberBlocks.js:849 +msgid "The One-of block returns one of two choices." msgstr "" -#: js/FlowBlocks.js:1083 -msgid "repeat" -msgstr "ซ้ำ" +#: js/blocks/NumberBlocks.js:856 +#: js/blocks/PitchBlocks.js:616 +msgid "one of" +msgstr "หนึ่งใน" -#: js/FlowBlocks.js:1123 -msgid "duplicate factor" -msgstr "ปัจจัยคักลอก" +#: js/blocks/NumberBlocks.js:858 +msgid "this" +msgstr "นี้" -#: js/PitchBlocks.js:39 -#: js/musicutils.js:722 -#: js/musicutils.js:1117 -#: js/synthutils.js:112 -#.TRANS: square wave -msgid "square" -msgstr "สี่เหลี่ยม" +#: js/blocks/NumberBlocks.js:858 +msgid "that" +msgstr "ซึ่ง" -#: js/PitchBlocks.js:62 -#: js/ToneBlocks.js:39 -#: js/musicutils.js:723 -#: js/musicutils.js:1118 -#: js/synthutils.js:116 -#.TRANS: triangle wave -msgid "triangle" -msgstr "สามเหลี่ยม" +#: js/blocks/NumberBlocks.js:913 +msgid "The Random block returns a random number." +msgstr "" -#: js/PitchBlocks.js:85 -#: js/musicutils.js:721 -#: js/musicutils.js:1116 -#: js/synthutils.js:110 -#.TRANS: sine wave -msgid "sine" -msgstr "ซายน์" +#: js/blocks/NumberBlocks.js:920 +msgid "random" +msgstr "สุ่ม" -#: js/PitchBlocks.js:108 -#: js/musicutils.js:724 -#: js/musicutils.js:1119 -#: js/synthutils.js:114 -#.TRANS: sawtooth wave -msgid "sawtooth" -msgstr "ฟันเลื้อย" +#: js/blocks/NumberBlocks.js:922 +msgid "min" +msgstr "นาที" -#: js/PitchBlocks.js:141 -#.TRANS: musical transposition (adjustment of pitch up or down) -msgid "transposition" -msgstr "การเปลี่ยนตำแหน่ง" +#: js/blocks/NumberBlocks.js:922 +msgid "max" +msgstr "ใหญ่สุด" -#: js/PitchBlocks.js:168 -#.TRANS: step down one note in current musical scale -msgid "scalar step down" +#: js/blocks/NumberBlocks.js:986 +msgid "The Number block holds a number." msgstr "" -#: js/PitchBlocks.js:172 -msgid "The Scalar step down block returns the number of semi-tones down to the previous note in the current key and mode." +#: js/blocks/OrnamentBlocks.js:32 +msgid "staccato factor" +msgstr "ปัจจัยstaccato" + +#: js/blocks/OrnamentBlocks.js:108 +msgid "slur factor" +msgstr "ปัจจัยslur" + +#: js/blocks/OrnamentBlocks.js:217 +#: js/blocks/OrnamentBlocks.js:309 +#.TRANS: the neighbor refers to a neighboring note, e.g., D is a neighbor of C +msgid "neighbor" msgstr "" -#: js/PitchBlocks.js:190 -#.TRANS: step up one note in current musical scale -msgid "scalar step up" +#: js/blocks/OrnamentBlocks.js:293 +msgid "The Neighbor block rapidly switches between neighboring pitches." msgstr "" -#: js/PitchBlocks.js:194 -msgid "The Scalar step up block returns the number of semi-tones up to the next note in the current key and mode." +#: js/blocks/OrnamentBlocks.js:364 +msgid "glide" msgstr "" -#: js/PitchBlocks.js:212 -#.TRANS: the change measured in half-steps between the current pitch and the previous pitch -msgid "change in pitch" +#: js/blocks/OrnamentBlocks.js:479 +#: js/blocks/OrnamentBlocks.js:643 +msgid "slur" msgstr "" -#: js/PitchBlocks.js:216 -msgid "The Change in pitch block is the difference (in half steps) between the current pitch being played and the previous pitch played." +#: js/blocks/OrnamentBlocks.js:558 +#: js/blocks/OrnamentBlocks.js:710 +#.TRANS: play each note sharply detached from the others +msgid "staccato" msgstr "" -#: js/PitchBlocks.js:243 -#.TRANS: the change measured in scale-steps between the current pitch and the previous pitch -msgid "scalar change in pitch" +#: js/blocks/RhythmBlocks.js:182 +#: js/blocks/RhythmBlocks.js:1086 +#: js/blocks/RhythmBlocks.js:1162 +msgid "Note value must be greater than 0." msgstr "" -#: js/PitchBlocks.js:250 -#: js/PitchBlocks.js:432 -#: js/PitchBlocks.js:1629 -#: js/DictActions.js:89 -#: js/temperament.js:477 -#: js/temperament.js:481 -#: js/temperament.js:714 -#.TRANS: convert current note to piano key (1-88) -#.TRANS: a mapping of pitch to the 88 piano keys -msgid "pitch number" +#: js/blocks/RhythmBlocks.js:215 +#: js/blocks/RhythmBlocks.js:278 +#: js/blocks/RhythmBlocks.js:350 +#.TRANS: swing is a rhythmic variation that emphasises the offbeat +msgid "swing" +msgstr "แกว่ง" + +#: js/blocks/RhythmBlocks.js:355 +#.TRANS: the amount to shift to the offbeat note +msgid "swing value" +msgstr "" + +#: js/blocks/RhythmBlocks.js:419 +msgid "The Skip notes block will cause notes to be skipped." msgstr "" -#: js/PitchBlocks.js:256 -msgid "The Pitch number block is the value of the pitch of the note currently being played." +#: js/blocks/RhythmBlocks.js:427 +#.TRANS: substitute rests on notes being skipped +msgid "skip notes" +msgstr "ข้านโน้ต" + +#: js/blocks/RhythmBlocks.js:489 +#.TRANS: speed up note duration by some factor, e.g. convert 1/4 to 1/8 notes by using a factor of 2 +msgid "multiply note value" +msgstr "หลายจังหวะ" + +#: js/blocks/RhythmBlocks.js:542 +msgid "The Tie block works on pairs of notes, combining them into one note." msgstr "" -#: js/PitchBlocks.js:329 -#: js/PitchBlocks.js:433 -#.TRANS: the current pitch expressed in Hertz -msgid "pitch in hertz" -msgstr "" +#: js/blocks/RhythmBlocks.js:550 +#.TRANS: tie notes together into one longer note +msgid "tie" +msgstr "รวม" -#: js/PitchBlocks.js:334 -msgid "The Pitch in Hertz block is the value in Hertz of the pitch of the note currently being played." -msgstr "" +#: js/blocks/RhythmBlocks.js:591 +#: js/blocks/RhythmBlocks.js:671 +#.TRANS: a dotted note is played for 1.5x its value, e.g., 1/8. --> 3/16 +msgid "dot" +msgstr "จุด" -#: js/PitchBlocks.js:367 -#: js/DictActions.js:87 -msgid "current pitch" +#: js/blocks/RhythmBlocks.js:619 +#: js/turtleactions/RhythmActions.js:221 +msgid "An argument of -1 results in a note value of 0." msgstr "" -#: js/PitchBlocks.js:373 -msgid "The Current Pitch block is used with the Pitch Converter block. In the example above, current pitch, sol 4, is displayed as 392 hertz." +#: js/blocks/RhythmBlocks.js:661 +msgid "The Dot block extends the duration of a note by 50%." msgstr "" -#: js/PitchBlocks.js:410 -msgid "This block converts the pitch value of the last note played into different formats such as hertz, letter name, pitch number, et al." +#: js/blocks/RhythmBlocks.js:663 +msgid "Eg a dotted quarter note will play for 3/8 (1/4 + 1/8) of a beat." msgstr "" -#: js/PitchBlocks.js:434 -msgid "alphabet" +#: js/blocks/RhythmBlocks.js:765 +#.TRANS: Japanese only: note value block for drum +msgid "note value drum" msgstr "" -#: js/PitchBlocks.js:436 -#.TRANS: Translate as "alphabet class" -msgid "letter class" +#: js/blocks/RhythmBlocks.js:829 +msgid "392 hertz" msgstr "" -#: js/PitchBlocks.js:437 -msgid "solfege class" +#: js/blocks/RhythmBlocks.js:1119 +msgid "The Note block is a container for one or more Pitch blocks." msgstr "" -#: js/PitchBlocks.js:438 -msgid "staff y" +#: js/blocks/RhythmBlocks.js:1121 +msgid "The Note block specifies the duration (note value) of its contents." msgstr "" -#: js/PitchBlocks.js:439 -msgid "solfege syllable" -msgstr "" +#: js/blocks/RhythmBlocks.js:1128 +#: js/blocks/PitchBlocks.js:974 +#: js/blocks/PitchBlocks.js:1007 +#: js/blocks/ProgramBlocks.js:1186 +#: js/blocks/ProgramBlocks.js:1227 +#: js/widgets/status.js:190 +#: js/widgets/temperament.js:464 +#: js/widgets/temperament.js:486 +#: js/widgets/temperament.js:496 +#: js/widgets/temperament.js:617 +#: plugins/rodi.rtp:192 +#.TRANS: a musical note consisting of pitch and duration +msgid "note" +msgstr "โน้ต" -#: js/PitchBlocks.js:440 -msgid "pitch class" +#: js/blocks/RhythmBlocks.js:1130 +msgid "value2" msgstr "" -#: js/PitchBlocks.js:441 -msgid "scalar class" +#: js/blocks/RhythmBlocks.js:1200 +msgid "define frequency" msgstr "" -#: js/PitchBlocks.js:443 -msgid "nth degree" +#: js/blocks/RhythmBlocks.js:1218 +#: js/widgets/temperament.js:787 +#: js/widgets/temperament.js:1587 +msgid "octave space" msgstr "" -#: js/PitchBlocks.js:444 -msgid "pitch to shade" +#: js/blocks/SensorsBlocks.js:36 +msgid "The Input block prompts for keyboard input." msgstr "" -#: js/PitchBlocks.js:445 -msgid "pitch to color" +#: js/blocks/SensorsBlocks.js:46 +msgid "input" msgstr "" -#: js/PitchBlocks.js:629 -#: js/musickeyboard.js:565 -#.TRANS: MIDI is a technical standard for electronic music -msgid "MIDI" +#: js/blocks/SensorsBlocks.js:64 +msgid "Input a value" msgstr "" -#: js/PitchBlocks.js:642 -#.TRANS: set an offset associated with the numeric piano keyboard mapping -msgid "set pitch number offset" +#: js/blocks/SensorsBlocks.js:126 +msgid "input value" msgstr "" -#: js/PitchBlocks.js:645 -msgid "The Set pitch number offset block is used to set the offset for mapping pitch numbers to pitch and octave." +#: js/blocks/SensorsBlocks.js:131 +msgid "The Input-value block stores the input." msgstr "" -#: js/PitchBlocks.js:679 -#.TRANS: convert piano key number (1-88) to pitch -msgid "number to pitch" -msgstr "จำนวนจนถึงระดับเสียง" +#: js/blocks/SensorsBlocks.js:238 +msgid "loudness" +msgstr "ระดับความดัง" -#: js/PitchBlocks.js:682 -msgid "The Number to pitch block will convert a pitch number to a pich name." +#: js/blocks/SensorsBlocks.js:245 +msgid "The Loudness block returns the volume detected by the microphone." msgstr "" -#: js/PitchBlocks.js:715 -#.TRANS: convert piano key number (1-88) to octave -msgid "number to octave" -msgstr "จำนวนจนถึงโน้ตคู่แปด" +#: js/blocks/SensorsBlocks.js:300 +msgid "click" +msgstr "คลิ๊ก" -#: js/PitchBlocks.js:717 -msgid "The Number to octave block will convert a pitch number to an octave." +#: js/blocks/SensorsBlocks.js:306 +msgid "The Click block triggers an event if a mouse has been clicked." msgstr "" -#: js/PitchBlocks.js:726 -msgid "y to pitch" +#: js/blocks/SensorsBlocks.js:313 +msgid "The Click block triggers an event if a turtle has been clicked." msgstr "" -#: js/PitchBlocks.js:729 -msgid "Y to pitch block will convert a staff y position to corresponding pitch notation." +#: js/blocks/SensorsBlocks.js:342 +msgid "cursor over" msgstr "" -#: js/PitchBlocks.js:841 -msgid "accidental selector" +#: js/blocks/SensorsBlocks.js:387 +msgid "cursor out" msgstr "" -#: js/PitchBlocks.js:844 -msgid "The Accidental selector block is used to choose between double-sharp, sharp, natural, flat, and double-flat." +#: js/blocks/SensorsBlocks.js:433 +msgid "cursor button down" msgstr "" -#: js/PitchBlocks.js:858 -msgid "Pitch can be specified in terms of ni dha pa ma ga re sa." +#: js/blocks/SensorsBlocks.js:477 +msgid "cursor button up" msgstr "" -#: js/PitchBlocks.js:872 -msgid "Pitch can be specified in terms of C D E F G A B." +#: js/blocks/SensorsBlocks.js:521 +#: js/blocks/PenBlocks.js:48 +#: plugins/rodi.rtp:219 +msgid "blue" msgstr "" -#: js/PitchBlocks.js:883 -msgid "solfege" +#: js/blocks/SensorsBlocks.js:577 +#: js/blocks/PenBlocks.js:64 +#: plugins/rodi.rtp:218 +msgid "green" msgstr "" -#: js/PitchBlocks.js:886 -msgid "Pitch can be specified in terms of do re mi fa sol la ti." +#: js/blocks/SensorsBlocks.js:633 +#: js/blocks/PenBlocks.js:112 +#: plugins/rodi.rtp:217 +msgid "red" msgstr "" -#: js/PitchBlocks.js:920 -msgid "The Invert block rotates any contained notes around a target note." +#: js/blocks/SensorsBlocks.js:638 +msgid "The Get red block returns the red component of the pixel under the mouse." msgstr "" -#: js/PitchBlocks.js:927 -#.TRANS: pitch inversion rotates a pitch around another pitch -msgid "invert" -msgstr "สับเปลี่ยนที่กัน" - -#: js/PitchBlocks.js:929 -#: js/PitchBlocks.js:935 -#: js/PitchActions.js:727 -#: js/musicutils.js:726 -#: js/musicutils.js:902 -#.TRANS: invert based on even or odd number or musical scale -#.TRANS: even numbers -msgid "even" +#: js/blocks/SensorsBlocks.js:644 +msgid "The Get red block returns the red component of the pixel under the turtle." msgstr "" -#: js/PitchBlocks.js:935 -#: js/PitchActions.js:729 -#: js/musicutils.js:728 -#: js/musicutils.js:903 -#.TRANS: odd numbers -msgid "odd" -msgstr "" +#: js/blocks/SensorsBlocks.js:685 +#: plugins/rodi.rtp:216 +msgid "pixel color" +msgstr "พิเซลของสี" -#: js/PitchBlocks.js:935 -#: js/PitchActions.js:731 -#: js/musicutils.js:729 -#: js/musicutils.js:904 -msgid "scalar" +#: js/blocks/SensorsBlocks.js:690 +msgid "The Get pixel block returns the color of the pixel under the mouse." msgstr "" -#: js/PitchBlocks.js:966 -#.TRANS: pitch inversion rotates a pitch around another pitch (odd number) -msgid "invert (odd)" +#: js/blocks/SensorsBlocks.js:696 +msgid "The Get pixel block returns the color of the pixel under the turtle." msgstr "" -#: js/PitchBlocks.js:999 -#.TRANS: pitch inversion rotates a pitch around another pitch (even number) -msgid "invert (even)" -msgstr "" +#: js/blocks/SensorsBlocks.js:758 +msgid "time" +msgstr "เวลา" -#: js/PitchBlocks.js:1020 -#.TRANS: register is the octave of the current pitch -msgid "register" +#: js/blocks/SensorsBlocks.js:804 +msgid "cursor y" msgstr "" -#: js/PitchBlocks.js:1024 -msgid "The Register block provides an easy way to modify the register (octave) of the notes that follow it." +#: js/blocks/SensorsBlocks.js:809 +msgid "The Cursor Y block returns the vertical position of the mouse." msgstr "" -#: js/PitchBlocks.js:1074 -msgid "The Semi-tone transposition block will shift the pitches contained inside Note blocks up (or down) by half steps." +#: js/blocks/SensorsBlocks.js:845 +msgid "cursor x" msgstr "" -#: js/PitchBlocks.js:1076 -msgid "In the example shown above, sol is shifted up to sol#." +#: js/blocks/SensorsBlocks.js:850 +msgid "The Cursor X block returns the horizontal position of the mouse." msgstr "" -#: js/PitchBlocks.js:1082 -#.TRANS: adjust the amount of shift (up or down) of a pitch -msgid "semi-tone transpose" -msgstr "" +#: js/blocks/SensorsBlocks.js:886 +msgid "mouse button" +msgstr "ปุ่มหนู" -#: js/PitchBlocks.js:1115 -msgid "The Transpose by Ratio block will shift the pitches contained inside Note blocks up (or down) by a ratio" +#: js/blocks/SensorsBlocks.js:888 +msgid "The Mouse-button block returns True if the mouse button is pressed." msgstr "" -#: js/PitchBlocks.js:1121 -#.TRANS: adjust the amount of shift (up or down) of a pitch -msgid "transpose by ratio" +#: js/blocks/SensorsBlocks.js:934 +msgid "to ASCII" msgstr "" -#: js/PitchBlocks.js:1204 -#.TRANS: down sixth means the note is five scale degrees below current note -msgid "down sixth" +#: js/blocks/SensorsBlocks.js:938 +msgid "The To ASCII block converts numbers to letters." msgstr "" -#: js/PitchBlocks.js:1223 -#.TRANS: down third means the note is two scale degrees below current note -msgid "down third" +#: js/blocks/SensorsBlocks.js:1005 +msgid "The Keyboard block returns computer keyboard input." msgstr "" -#: js/PitchBlocks.js:1242 -#.TRANS: seventh means the note is the six scale degrees above current note -msgid "seventh" +#: js/blocks/RhythmBlockPaletteBlocks.js:50 +#: js/blocks/RhythmBlockPaletteBlocks.js:233 +#.TRANS: rhythm block +#.TRANS: translate "rhythm1" as rhythm +msgid "rhythm1" msgstr "" -#: js/PitchBlocks.js:1261 -#.TRANS: sixth means the note is the five scale degrees above current note -msgid "sixth" -msgstr "" +#: js/blocks/RhythmBlockPaletteBlocks.js:70 +#: js/blocks/RhythmBlockPaletteBlocks.js:252 +#: js/blocks/RhythmBlockPaletteBlocks.js:485 +#: js/blocks/RhythmBlockPaletteBlocks.js:554 +#: js/blocks/RhythmBlockPaletteBlocks.js:875 +msgid "number of notes" +msgstr "จำนวนของโน้ต" -#: js/PitchBlocks.js:1280 -#.TRANS: fifth means the note is the four scale degrees above current note -msgid "fifth" +#: js/blocks/RhythmBlockPaletteBlocks.js:126 +msgid "polyphonic rhythm" msgstr "" -#: js/PitchBlocks.js:1300 -#.TRANS: fourth means the note is three scale degrees above current note -msgid "fourth" +#: js/blocks/RhythmBlockPaletteBlocks.js:219 +msgid "The Rhythm block is used to generate rhythm patterns." msgstr "" -#: js/PitchBlocks.js:1319 -#.TRANS: third means the note is two scale degrees above current note -msgid "third" -msgstr "" +#: js/blocks/RhythmBlockPaletteBlocks.js:280 +msgid "1/64 note" +msgstr "โน้ต 1/64" -#: js/PitchBlocks.js:1338 -#.TRANS: second means the note is one scale degree above current note -msgid "second" -msgstr "" +#: js/blocks/RhythmBlockPaletteBlocks.js:304 +msgid "1/32 note" +msgstr "โน๊ต 1/32" -#: js/PitchBlocks.js:1379 -msgid "The Scalar transposition block will shift the pitches contained inside Note blocks up (or down) the scale." -msgstr "" +#: js/blocks/RhythmBlockPaletteBlocks.js:332 +msgid "1/16 note" +msgstr "โน้ต 1/16" -#: js/PitchBlocks.js:1381 -msgid "In the example shown above, sol is shifted up to la." -msgstr "" +#: js/blocks/RhythmBlockPaletteBlocks.js:360 +msgid "eighth note" +msgstr "โน้ตแปด" -#: js/PitchBlocks.js:1388 -#.TRANS: adjust the amount of shift (up or down) of a pitch by musical scale (scalar) steps -msgid "scalar transpose" +#: js/blocks/RhythmBlockPaletteBlocks.js:388 +msgid "quarter note" +msgstr "โน้ต 1/4" + +#: js/blocks/RhythmBlockPaletteBlocks.js:416 +msgid "half note" +msgstr "โน๊ตครึ่ง" + +#: js/blocks/RhythmBlockPaletteBlocks.js:444 +msgid "whole note" +msgstr "โน้ตเต็ม" + +#: js/blocks/RhythmBlockPaletteBlocks.js:482 +#: js/blocks/RhythmBlockPaletteBlocks.js:551 +#: js/blocks/RhythmBlockPaletteBlocks.js:602 +#.TRANS: A tuplet is a note value divided into irregular time values. +msgid "tuplet" +msgstr "ทูเปรท" + +#: js/blocks/RhythmBlockPaletteBlocks.js:768 +msgid "septuplet" msgstr "" -#: js/PitchBlocks.js:1423 -msgid "The Accidental block is used to create sharps and flats" +#: js/blocks/RhythmBlockPaletteBlocks.js:796 +msgid "quintuplet" msgstr "" -#: js/PitchBlocks.js:1430 -#.TRANS: An accidental is a modification to a pitch, e.g., sharp or flat. -msgid "accidental override" +#: js/blocks/RhythmBlockPaletteBlocks.js:824 +msgid "triplet" msgstr "" -#: js/PitchBlocks.js:1543 -msgid "The Hertz block (in combination with a Number block) will play a sound at the specified frequency." +#: js/blocks/RhythmBlockPaletteBlocks.js:851 +msgid "simple tuplet" msgstr "" -#: js/PitchBlocks.js:1633 -msgid "The Pitch Number block will play a pitch associated by its number, e.g. 0 for C and 7 for G." +#: js/blocks/RhythmBlockPaletteBlocks.js:861 +msgid "Tuplets are a collection of notes that get scaled to a specific duration." msgstr "" -#: js/PitchBlocks.js:1665 -#: js/PitchBlocks.js:1707 -#.TRANS: a numeric mapping of the notes in an octave based on the musical mode -#.TRANS: a numeric mapping of the notes in an octave based on the musical mode -msgid "nth modal pitch" +#: js/blocks/DrumBlocks.js:59 +msgid "The Noise name block is used to select a noise synthesizer." msgstr "" -#: js/PitchBlocks.js:1668 -msgid "n^th Modal Pitch takes the pattern of pitches in semitones for a mode and makes each point a degree of the mode," +#: js/blocks/DrumBlocks.js:102 +msgid "The Drum name block is used to select a drum." msgstr "" -#: js/PitchBlocks.js:1670 -msgid "starting from 1 and regardless of tonal framework (i.e. not always 8 notes in the octave)" +#: js/blocks/DrumBlocks.js:146 +msgid "The Effects name block is used to select a sound effect." msgstr "" -#: js/PitchBlocks.js:1711 -msgid "N^th Modal Pitch takes a number as an input as the n^th degree for the given mode. 0 is the first position, 1 is the second, -1 is the note before the first etc." +#: js/blocks/DrumBlocks.js:163 +msgid "noise" msgstr "" -#: js/PitchBlocks.js:1713 -msgid "The pitches change according to the mode specified without any need for respellings." +#: js/blocks/DrumBlocks.js:177 +msgid "The Play noise block will generate white, pink, or brown noise." msgstr "" -#: js/PitchBlocks.js:1752 -msgid "Scale Degree is a common convention in music. Scale Degree offers seven possible positions in the scale (1-7) and can be modified via accidentals." +#: js/blocks/DrumBlocks.js:317 +msgid "Replace every instance of a pitch with a drum sound." msgstr "" -#: js/PitchBlocks.js:1754 -msgid "Scale Degree 1 is always the first pitch in a given scale, regardless of octave." +#: js/blocks/DrumBlocks.js:328 +#.TRANS: map a pitch to a drum sound +msgid "map pitch to drum" msgstr "" -#: js/PitchBlocks.js:1776 -#.TRANS: step some number of notes in current musical scale -msgid "scalar step" +#: js/blocks/DrumBlocks.js:395 +msgid "In the example above, a kick drum sound will be played instead of sol." msgstr "" -#: js/PitchBlocks.js:1781 -msgid "The Scalar Step block (in combination with a Number block) will play the next pitch in a scale," +#: js/blocks/DrumBlocks.js:407 +#.TRANS: set the current drum sound for playback +msgid "set drum" msgstr "" -#: js/PitchBlocks.js:1783 -msgid "eg if the last note played was sol, Scalar Step 1 will play la." +#: js/blocks/DrumBlocks.js:451 +msgid "sound effect" msgstr "" -#: js/PitchBlocks.js:1818 -msgid "The Pitch block specifies the pitch name and octave of a note that together determine the frequency of the note." +#: js/blocks/DrumBlocks.js:489 +msgid "You can use multiple Drum blocks within a Note block." msgstr "" -#: js/GraphicsBlocks.js:46 -#: js/DictActions.js:77 -#: js/DictActions.js:155 -#: js/DictActions.js:189 +#: js/blocks/GraphicsBlocks.js:46 +#: js/turtleactions/DictActions.js:77 +#: js/turtleactions/DictActions.js:144 +#: js/turtleactions/DictActions.js:173 msgid "heading" msgstr "ทิศทางปัจจุบัน" -#: js/GraphicsBlocks.js:56 +#: js/blocks/GraphicsBlocks.js:56 msgid "The Heading block returns the orientation of the mouse." msgstr "" -#: js/GraphicsBlocks.js:62 +#: js/blocks/GraphicsBlocks.js:62 msgid "The Heading block returns the orientation of the turtle." msgstr "" -#: js/GraphicsBlocks.js:133 +#: js/blocks/GraphicsBlocks.js:133 msgid "The Y block returns the vertical position of the mouse." msgstr "" -#: js/GraphicsBlocks.js:140 +#: js/blocks/GraphicsBlocks.js:140 msgid "The Y block returns the vertical position of the turtle." msgstr "" -#: js/GraphicsBlocks.js:149 +#: js/blocks/GraphicsBlocks.js:149 msgid "y3" msgstr "" -#: js/GraphicsBlocks.js:219 +#: js/blocks/GraphicsBlocks.js:219 msgid "The X block returns the horizontal position of the mouse." msgstr "" -#: js/GraphicsBlocks.js:226 +#: js/blocks/GraphicsBlocks.js:226 msgid "The X block returns the horizontal position of the turtle." msgstr "" -#: js/GraphicsBlocks.js:235 +#: js/blocks/GraphicsBlocks.js:235 msgid "x3" msgstr "" -#: js/GraphicsBlocks.js:295 +#: js/blocks/GraphicsBlocks.js:295 msgid "scroll xy" msgstr "" -#: js/GraphicsBlocks.js:303 +#: js/blocks/GraphicsBlocks.js:303 msgid "The Scroll XY block moves the canvas." msgstr "" -#: js/GraphicsBlocks.js:313 +#: js/blocks/GraphicsBlocks.js:313 msgid "x2" msgstr "" -#: js/GraphicsBlocks.js:313 +#: js/blocks/GraphicsBlocks.js:313 msgid "y2" msgstr "" -#: js/GraphicsBlocks.js:373 -#: js/temperament.js:213 -#: js/temperament.js:241 +#: js/blocks/GraphicsBlocks.js:373 +#: js/widgets/temperament.js:319 +#: js/widgets/temperament.js:347 msgid "clear" msgstr "ล้าง" -#: js/GraphicsBlocks.js:426 +#: js/blocks/GraphicsBlocks.js:426 msgid "The Control-point 2 block sets the second control point for the Bezier curve." msgstr "" -#: js/GraphicsBlocks.js:433 +#: js/blocks/GraphicsBlocks.js:433 msgid "control point 2" msgstr "" -#: js/GraphicsBlocks.js:436 -#: js/GraphicsBlocks.js:487 -#: js/GraphicsBlocks.js:534 -#: js/GraphicsBlocks.js:750 +#: js/blocks/GraphicsBlocks.js:436 +#: js/blocks/GraphicsBlocks.js:487 +#: js/blocks/GraphicsBlocks.js:534 +#: js/blocks/GraphicsBlocks.js:750 msgid "x1" msgstr "" -#: js/GraphicsBlocks.js:436 -#: js/GraphicsBlocks.js:487 -#: js/GraphicsBlocks.js:534 -#: js/GraphicsBlocks.js:750 +#: js/blocks/GraphicsBlocks.js:436 +#: js/blocks/GraphicsBlocks.js:487 +#: js/blocks/GraphicsBlocks.js:534 +#: js/blocks/GraphicsBlocks.js:750 msgid "y1" msgstr "" -#: js/GraphicsBlocks.js:477 +#: js/blocks/GraphicsBlocks.js:477 msgid "The Control-point 1 block sets the first control point for the Bezier curve." msgstr "" -#: js/GraphicsBlocks.js:484 +#: js/blocks/GraphicsBlocks.js:484 msgid "control point 1" msgstr "" -#: js/GraphicsBlocks.js:527 +#: js/blocks/GraphicsBlocks.js:527 msgid "The Bezier block draws a Bezier curve." msgstr "" -#: js/GraphicsBlocks.js:531 +#: js/blocks/GraphicsBlocks.js:531 msgid "bezier" msgstr "" -#: js/GraphicsBlocks.js:592 +#: js/blocks/GraphicsBlocks.js:592 msgid "The Arc block moves the turtle in an arc." msgstr "" -#: js/GraphicsBlocks.js:600 +#: js/blocks/GraphicsBlocks.js:600 msgid "arc" msgstr "เส้นโค้ง" -#: js/GraphicsBlocks.js:603 +#: js/blocks/GraphicsBlocks.js:603 msgid "angle" msgstr "มุม" -#: js/GraphicsBlocks.js:603 +#: js/blocks/GraphicsBlocks.js:603 msgid "radius" msgstr "รัศมี" -#: js/GraphicsBlocks.js:620 -#: js/GraphicsBlocks.js:767 -#: js/GraphicsBlocks.js:1010 -#: js/GraphicsBlocks.js:1093 +#: js/blocks/GraphicsBlocks.js:620 +#: js/blocks/GraphicsBlocks.js:767 +#: js/blocks/GraphicsBlocks.js:1010 +#: js/blocks/GraphicsBlocks.js:1093 msgid "Value must be within -5000 to 5000 when Wrap Mode is off." msgstr "" -#: js/GraphicsBlocks.js:622 -#: js/GraphicsBlocks.js:769 -#: js/GraphicsBlocks.js:1012 -#: js/GraphicsBlocks.js:1095 +#: js/blocks/GraphicsBlocks.js:622 +#: js/blocks/GraphicsBlocks.js:769 +#: js/blocks/GraphicsBlocks.js:1012 +#: js/blocks/GraphicsBlocks.js:1095 msgid "Value must be within -20000 to 20000 when Wrap Mode is on." msgstr "" -#: js/GraphicsBlocks.js:660 +#: js/blocks/GraphicsBlocks.js:660 msgid "set heading" msgstr "กำหนดทิศทาง" -#: js/GraphicsBlocks.js:673 +#: js/blocks/GraphicsBlocks.js:673 msgid "The Set heading block sets the heading of the turtle." msgstr "" -#: js/GraphicsBlocks.js:733 +#: js/blocks/GraphicsBlocks.js:733 msgid "The Set XY block moves the mouse to a specific position on the screen." msgstr "" -#: js/GraphicsBlocks.js:739 +#: js/blocks/GraphicsBlocks.js:739 msgid "The Set XY block moves the turtle to a specific position on the screen." msgstr "" -#: js/GraphicsBlocks.js:747 +#: js/blocks/GraphicsBlocks.js:747 msgid "set xy" msgstr "ตั้งค่าแกน xy" -#: js/GraphicsBlocks.js:819 +#: js/blocks/GraphicsBlocks.js:819 msgid "The Right block turns the mouse to the right." msgstr "" -#: js/GraphicsBlocks.js:826 +#: js/blocks/GraphicsBlocks.js:826 msgid "The Right block turns the turtle to the right." msgstr "" -#: js/GraphicsBlocks.js:835 +#: js/blocks/GraphicsBlocks.js:835 msgid "right1" msgstr "" -#: js/GraphicsBlocks.js:835 +#: js/blocks/GraphicsBlocks.js:835 #: plugins/rodi.rtp:77 #: plugins/rodi.rtp:340 #: plugins/rodi.rtp:375 msgid "right" msgstr "ขวา" -#: js/GraphicsBlocks.js:899 +#: js/blocks/GraphicsBlocks.js:899 msgid "The Left block turns the mouse to the left." msgstr "" -#: js/GraphicsBlocks.js:906 +#: js/blocks/GraphicsBlocks.js:906 msgid "The Left block turns the turtle to the left." msgstr "" -#: js/GraphicsBlocks.js:915 +#: js/blocks/GraphicsBlocks.js:915 msgid "left1" msgstr "" -#: js/GraphicsBlocks.js:915 +#: js/blocks/GraphicsBlocks.js:915 #: plugins/rodi.rtp:79 #: plugins/rodi.rtp:339 #: plugins/rodi.rtp:362 msgid "left" -msgstr "ซ้าย" - -#: js/GraphicsBlocks.js:967 -#: js/temperament.js:734 -#: js/temperament.js:933 -#: plugins/rodi.rtp:69 -#: plugins/rodi.rtp:387 -msgid "back" -msgstr "กลับ" - -#: js/GraphicsBlocks.js:976 -msgid "The Back block moves the mouse backward." -msgstr "" - -#: js/GraphicsBlocks.js:983 -msgid "The Back block moves the turtle backward." -msgstr "" - -#: js/GraphicsBlocks.js:1050 -#: plugins/rodi.rtp:71 -#: plugins/rodi.rtp:400 -msgid "forward" -msgstr "เดินหน้า" - -#: js/GraphicsBlocks.js:1059 -msgid "The Forward block moves the mouse forward." -msgstr "" - -#: js/GraphicsBlocks.js:1066 -msgid "The Forward block moves the turtle forward." -msgstr "" - -#: js/GraphicsBlocks.js:1154 -#: js/GraphicsBlocks.js:1172 -msgid "wrap" -msgstr "" - -#: js/OrnamentBlocks.js:32 -msgid "staccato factor" -msgstr "ปัจจัยstaccato" - -#: js/OrnamentBlocks.js:108 -msgid "slur factor" -msgstr "ปัจจัยslur" +msgstr "ซ้าย" -#: js/OrnamentBlocks.js:217 -#: js/OrnamentBlocks.js:309 -#.TRANS: the neighbor refers to a neighboring note, e.g., D is a neighbor of C -msgid "neighbor" -msgstr "" +#: js/blocks/GraphicsBlocks.js:967 +#: js/widgets/temperament.js:875 +#: js/widgets/temperament.js:1078 +#: plugins/rodi.rtp:69 +#: plugins/rodi.rtp:387 +msgid "back" +msgstr "กลับ" -#: js/OrnamentBlocks.js:293 -msgid "The Neighbor block rapidly switches between neighboring pitches." +#: js/blocks/GraphicsBlocks.js:976 +msgid "The Back block moves the mouse backward." msgstr "" -#: js/OrnamentBlocks.js:364 -msgid "glide" +#: js/blocks/GraphicsBlocks.js:983 +msgid "The Back block moves the turtle backward." msgstr "" -#: js/OrnamentBlocks.js:479 -#: js/OrnamentBlocks.js:643 -msgid "slur" -msgstr "" +#: js/blocks/GraphicsBlocks.js:1050 +#: plugins/rodi.rtp:71 +#: plugins/rodi.rtp:400 +msgid "forward" +msgstr "เดินหน้า" -#: js/OrnamentBlocks.js:558 -#: js/OrnamentBlocks.js:710 -#.TRANS: play each note sharply detached from the others -msgid "staccato" +#: js/blocks/GraphicsBlocks.js:1059 +msgid "The Forward block moves the mouse forward." msgstr "" -#: js/PenBlocks.js:24 -msgid "purple" +#: js/blocks/GraphicsBlocks.js:1066 +msgid "The Forward block moves the turtle forward." msgstr "" -#: js/PenBlocks.js:37 -#: js/SensorsBlocks.js:521 -#: plugins/rodi.rtp:219 -msgid "blue" +#: js/blocks/GraphicsBlocks.js:1154 +#: js/blocks/GraphicsBlocks.js:1172 +msgid "wrap" msgstr "" -#: js/PenBlocks.js:50 -#: js/SensorsBlocks.js:577 -#: plugins/rodi.rtp:218 -msgid "green" +#: js/blocks/PenBlocks.js:30 +msgid "purple" msgstr "" -#: js/PenBlocks.js:63 +#: js/blocks/PenBlocks.js:80 msgid "yellow" msgstr "" -#: js/PenBlocks.js:76 +#: js/blocks/PenBlocks.js:96 #: plugins/nutrition.rtp:164 msgid "orange" msgstr "สีส้ม" -#: js/PenBlocks.js:89 -#: js/SensorsBlocks.js:633 -#: plugins/rodi.rtp:217 -msgid "red" -msgstr "" - -#: js/PenBlocks.js:102 +#: js/blocks/PenBlocks.js:128 msgid "white" msgstr "" -#: js/PenBlocks.js:115 +#: js/blocks/PenBlocks.js:144 msgid "black" msgstr "" -#: js/PenBlocks.js:128 +#: js/blocks/PenBlocks.js:163 msgid "begin fill" msgstr "เริ่มเติ่ม" -#: js/PenBlocks.js:143 +#: js/blocks/PenBlocks.js:190 msgid "end fill" msgstr "จบการเทสี" -#: js/PenBlocks.js:159 -#: js/PenBlocks.js:386 +#: js/blocks/PenBlocks.js:212 +#: js/blocks/PenBlocks.js:560 #.TRANS: set the background color msgid "background" msgstr "พื้นหลัง" -#: js/PenBlocks.js:206 -#: js/DictActions.js:71 -#: js/DictActions.js:149 -#: js/DictActions.js:186 +#: js/blocks/PenBlocks.js:274 +#: js/turtleactions/DictActions.js:71 +#: js/turtleactions/DictActions.js:138 +#: js/turtleactions/DictActions.js:170 msgid "grey" msgstr "เทา" -#: js/PenBlocks.js:210 +#: js/blocks/PenBlocks.js:282 msgid "The Grey block returns the current pen grey value." msgstr "" -#: js/PenBlocks.js:243 -#: js/DictActions.js:69 -#: js/DictActions.js:147 -#: js/DictActions.js:185 +#: js/blocks/PenBlocks.js:340 +#: js/turtleactions/DictActions.js:69 +#: js/turtleactions/DictActions.js:136 +#: js/turtleactions/DictActions.js:169 msgid "shade" msgstr "เฉดสี" -#: js/PenBlocks.js:247 +#: js/blocks/PenBlocks.js:347 msgid "The Shade block returns the current pen shade value." msgstr "" -#: js/PenBlocks.js:280 -#: js/DictActions.js:67 -#: js/DictActions.js:145 -#: js/DictActions.js:184 +#: js/blocks/PenBlocks.js:405 +#: js/turtleactions/DictActions.js:67 +#: js/turtleactions/DictActions.js:134 +#: js/turtleactions/DictActions.js:168 msgid "color" msgstr "สี" -#: js/PenBlocks.js:285 +#: js/blocks/PenBlocks.js:415 msgid "The Color block returns the current pen color." msgstr "" -#: js/PenBlocks.js:318 -#: js/DictActions.js:73 -#: js/DictActions.js:151 -#: js/DictActions.js:187 +#: js/blocks/PenBlocks.js:470 +#: js/turtleactions/DictActions.js:73 +#: js/turtleactions/DictActions.js:140 +#: js/turtleactions/DictActions.js:171 msgid "pen size" msgstr "ขนาดปากกา" -#: js/PenBlocks.js:322 +#: js/blocks/PenBlocks.js:474 msgid "The Pen size block returns the current pen size value." msgstr "" -#: js/PenBlocks.js:355 +#: js/blocks/PenBlocks.js:513 msgid "set font" msgstr "" -#: js/PenBlocks.js:358 +#: js/blocks/PenBlocks.js:518 msgid "The Set font block sets the font used by the Show block." msgstr "" -#: js/PenBlocks.js:391 +#: js/blocks/PenBlocks.js:567 msgid "The Background block sets the window background color." msgstr "" -#: js/PenBlocks.js:408 +#: js/blocks/PenBlocks.js:598 msgid "The Hollow line block creates a line with a hollow center." msgstr "" -#: js/PenBlocks.js:415 +#: js/blocks/PenBlocks.js:606 #.TRANS: draw a line logo has a hollow space down its center msgid "hollow line" msgstr "เส้นช่องโพรง" -#: js/PenBlocks.js:462 +#: js/blocks/PenBlocks.js:675 msgid "The Fill block fills in a shape with a color." msgstr "" -#: js/PenBlocks.js:470 +#: js/blocks/PenBlocks.js:684 #.TRANS: fill in as a solid color msgid "fill" msgstr "เติม" -#: js/PenBlocks.js:527 +#: js/blocks/PenBlocks.js:761 #.TRANS: raise up the pen so logo it does not draw when it is moved msgid "pen up" msgstr "ยกปากกาขึ้น" -#: js/PenBlocks.js:532 +#: js/blocks/PenBlocks.js:768 msgid "The Pen-up block raises the pen so that it does not draw." msgstr "" -#: js/PenBlocks.js:552 +#: js/blocks/PenBlocks.js:802 #.TRANS: put down the pen so logo it draws when it is moved msgid "pen down" msgstr "จรดปากกา" -#: js/PenBlocks.js:557 +#: js/blocks/PenBlocks.js:810 msgid "The Pen-down block lowers the pen so that it draws." msgstr "" -#: js/PenBlocks.js:577 +#: js/blocks/PenBlocks.js:844 #.TRANS: set the width of the line drawn by the pen msgid "set pen size" msgstr "ตั้งค่าขนาดปากกา" -#: js/PenBlocks.js:583 +#: js/blocks/PenBlocks.js:854 msgid "The Set-pen-size block changes the size of the pen." msgstr "" -#: js/PenBlocks.js:623 +#: js/blocks/PenBlocks.js:913 #.TRANS: set degree of translucence of the pen color msgid "set translucency" msgstr "" -#: js/PenBlocks.js:627 +#: js/blocks/PenBlocks.js:921 msgid "The Set translucency block changes the opacity of the pen." msgstr "" -#: js/PenBlocks.js:668 +#: js/blocks/PenBlocks.js:981 msgid "set hue" msgstr "ตั้งค่า ความมืดหรือความสว่างของสี " -#: js/PenBlocks.js:672 +#: js/blocks/PenBlocks.js:989 msgid "The Set hue block changes the color of the pen." msgstr "" -#: js/PenBlocks.js:711 +#: js/blocks/PenBlocks.js:1047 msgid "set shade" msgstr "ตั้งค่าเฉดสี" -#: js/PenBlocks.js:717 +#: js/blocks/PenBlocks.js:1057 msgid "The Set-shade block changes the pen color from dark to light." msgstr "" -#: js/PenBlocks.js:757 +#: js/blocks/PenBlocks.js:1111 #.TRANS: set the level of vividness of the pen color msgid "set grey" msgstr "ตั้งเป็นสีเทา" -#: js/PenBlocks.js:761 +#: js/blocks/PenBlocks.js:1119 msgid "The Set grey block changes the vividness of the pen color." msgstr "" -#: js/PenBlocks.js:800 +#: js/blocks/PenBlocks.js:1172 msgid "set color" msgstr "ตั้งค่าสี" -#: js/PenBlocks.js:806 +#: js/blocks/PenBlocks.js:1182 msgid "The Set-color block changes the pen color." msgstr "" -#: js/VolumeBlocks.js:35 -msgid "synth volume" -msgstr "" - -#: js/VolumeBlocks.js:39 -msgid "The Synth volume block returns the current volume of the current synthesizer." -msgstr "" - -#: js/VolumeBlocks.js:47 -#: js/musicutils.js:730 -#: js/synthutils.js:56 -#.TRANS: musical instrument -msgid "piano" -msgstr "" - -#: js/VolumeBlocks.js:105 -msgid "master volume" -msgstr "" - -#: js/VolumeBlocks.js:109 -msgid "The Master volume block returns the master volume." -msgstr "" - -#: js/VolumeBlocks.js:355 -#: js/VolumeBlocks.js:524 -msgid "set synth volume" -msgstr "" - -#: js/VolumeBlocks.js:362 -#: js/VolumeBlocks.js:545 -msgid "synth" -msgstr "" - -#: js/VolumeBlocks.js:403 -#: js/VolumeBlocks.js:577 -#: js/VolumeBlocks.js:740 -#: js/VolumeActions.js:173 -msgid "Setting volume to 0." -msgstr "" - -#: js/VolumeBlocks.js:440 -msgid "Synth not found" -msgstr "" - -#: js/VolumeBlocks.js:494 -msgid "set drum volume" -msgstr "" - -#: js/VolumeBlocks.js:530 -msgid "The Set synth volume block will change the volume of a particular synth," -msgstr "" - -#: js/VolumeBlocks.js:532 -msgid "eg guitar violin snare drum etc." -msgstr "" - -#: js/VolumeBlocks.js:534 -msgid "The default volume is 50." -msgstr "" - -#: js/VolumeBlocks.js:536 -msgid "The range is 0 for silence to 100 for full volume." -msgstr "" - -#: js/VolumeBlocks.js:597 -msgid "set panning" -msgstr "" - -#: js/VolumeBlocks.js:603 -msgid "The Set Panning block sets the panning for all synthesizers." -msgstr "" - -#: js/VolumeBlocks.js:625 -msgid "Warning: Sound is coming out from only the left or right side." -msgstr "" - -#: js/VolumeBlocks.js:647 -#: js/VolumeBlocks.js:695 -msgid "set master volume" -msgstr "" - -#: js/VolumeBlocks.js:653 -msgid "The Set master volume block sets the volume for all synthesizers." -msgstr "" - -#: js/VolumeBlocks.js:784 -msgid "The Set relative volume block changes the volume of the contained notes." -msgstr "" - -#: js/VolumeBlocks.js:791 -msgid "set relative volume" -msgstr "" - -#: js/VolumeBlocks.js:857 -msgid "decrescendo" -msgstr "" - -#: js/VolumeBlocks.js:921 -msgid "crescendo" -msgstr "" - -#: js/ToneBlocks.js:34 -msgid "oscillator" -msgstr "" - -#: js/ToneBlocks.js:44 -#: js/timbre.js:1562 -#.TRANS: Partials refers to the number of sine waves combined into the sound. -msgid "partials" -msgstr "" - -#: js/ToneBlocks.js:76 -msgid "You are adding multiple oscillator blocks." -msgstr "" - -#: js/ToneBlocks.js:144 -#: js/timbre.js:1225 -#.TRANS: a duo synthesizer combines a synth with a sequencer -msgid "duo synth" -msgstr "" - -#: js/ToneBlocks.js:149 -msgid "The Duo synth block is a duo-frequency modulator used to define a timbre." -msgstr "" +#: js/blocks/PitchBlocks.js:141 +#.TRANS: musical transposition (adjustment of pitch up or down) +msgid "transposition" +msgstr "การเปลี่ยนตำแหน่ง" -#: js/ToneBlocks.js:157 -#: js/timbre.js:1476 -msgid "vibrato rate" +#: js/blocks/PitchBlocks.js:168 +#.TRANS: step down one note in current musical scale +msgid "scalar step down" msgstr "" -#: js/ToneBlocks.js:157 -msgid "vibrato intensity" +#: js/blocks/PitchBlocks.js:172 +msgid "The Scalar step down block returns the number of semi-tones down to the previous note in the current key and mode." msgstr "" -#: js/ToneBlocks.js:185 -#: js/timbre.js:1221 -#.TRANS: AM (amplitude modulation) synthesizer -msgid "AM synth" +#: js/blocks/PitchBlocks.js:190 +#.TRANS: step up one note in current musical scale +msgid "scalar step up" msgstr "" -#: js/ToneBlocks.js:189 -msgid "The AM synth block is an amplitude modulator used to define a timbre." +#: js/blocks/PitchBlocks.js:194 +msgid "The Scalar step up block returns the number of semi-tones up to the next note in the current key and mode." msgstr "" -#: js/ToneBlocks.js:224 -#: js/timbre.js:1223 -#.TRANS: FM (frequency modulation) synthesizer -msgid "FM synth" +#: js/blocks/PitchBlocks.js:212 +#.TRANS: the change measured in half-steps between the current pitch and the previous pitch +msgid "change in pitch" msgstr "" -#: js/ToneBlocks.js:228 -msgid "The FM synth block is a frequency modulator used to define a timbre." +#: js/blocks/PitchBlocks.js:216 +msgid "The Change in pitch block is the difference (in half steps) between the current pitch being played and the previous pitch played." msgstr "" -#: js/ToneBlocks.js:262 -msgid "partial" +#: js/blocks/PitchBlocks.js:243 +#.TRANS: the change measured in scale-steps between the current pitch and the previous pitch +msgid "scalar change in pitch" msgstr "" -#: js/ToneBlocks.js:265 -msgid "The Partial block is used to specify a weight for a specific partial harmonic." +#: js/blocks/PitchBlocks.js:250 +#: js/blocks/PitchBlocks.js:432 +#: js/blocks/PitchBlocks.js:1667 +#: js/turtleactions/DictActions.js:89 +#: js/widgets/temperament.js:610 +#: js/widgets/temperament.js:614 +#: js/widgets/temperament.js:855 +#.TRANS: convert current note to piano key (1-88) +#.TRANS: a mapping of pitch to the 88 piano keys +msgid "pitch number" msgstr "" -#: js/ToneBlocks.js:284 -#.TRANS: partials are weighted components in a harmonic series -msgid "Partial weight must be between 0 and 1." +#: js/blocks/PitchBlocks.js:256 +msgid "The Pitch number block is the value of the pitch of the note currently being played." msgstr "" -#: js/ToneBlocks.js:297 -#.TRANS: partials are weighted components in a harmonic series -msgid "Partial block should be used inside of a Weighted-partials block." +#: js/blocks/PitchBlocks.js:329 +#: js/blocks/PitchBlocks.js:433 +#.TRANS: the current pitch expressed in Hertz +msgid "pitch in hertz" msgstr "" -#: js/ToneBlocks.js:325 -#.TRANS: partials are weighted components in a harmonic series -msgid "weighted partials" +#: js/blocks/PitchBlocks.js:334 +msgid "The Pitch in Hertz block is the value in Hertz of the pitch of the note currently being played." msgstr "" -#: js/ToneBlocks.js:383 -msgid "The Harmonic block will add harmonics to the contained notes." +#: js/blocks/PitchBlocks.js:367 +#: js/turtleactions/DictActions.js:87 +msgid "current pitch" msgstr "" -#: js/ToneBlocks.js:390 -#.TRANS: A harmonic is an overtone. -msgid "harmonic" +#: js/blocks/PitchBlocks.js:373 +msgid "The Current Pitch block is used with the Pitch Converter block. In the example above, current pitch, sol 4, is displayed as 392 hertz." msgstr "" -#: js/ToneBlocks.js:431 -msgid "The Distortion block adds distortion to the pitch." +#: js/blocks/PitchBlocks.js:410 +msgid "This block converts the pitch value of the last note played into different formats such as hertz, letter name, pitch number, et al." msgstr "" -#: js/ToneBlocks.js:438 -#: js/timbre.js:2100 -#.TRANS: distortion is an alteration in the sound -msgid "distortion" +#: js/blocks/PitchBlocks.js:434 +msgid "alphabet" msgstr "" -#: js/ToneBlocks.js:487 -msgid "The Tremolo block adds a wavering effect." +#: js/blocks/PitchBlocks.js:436 +#.TRANS: Translate as "alphabet class" +msgid "letter class" msgstr "" -#: js/ToneBlocks.js:495 -#: js/timbre.js:2092 -#.TRANS: a wavering effect in a musical tone -msgid "tremolo" +#: js/blocks/PitchBlocks.js:437 +msgid "solfege class" msgstr "" -#: js/ToneBlocks.js:500 -#: js/ToneBlocks.js:569 -#: js/ToneBlocks.js:630 -#: js/ToneBlocks.js:689 -#: js/timbre.js:2134 -#: js/timbre.js:2222 -#: js/timbre.js:2317 -#: js/timbre.js:2419 -#.TRANS: rate at which tremolo wavers -msgid "rate" +#: js/blocks/PitchBlocks.js:438 +msgid "staff y" msgstr "" -#: js/ToneBlocks.js:502 -#: js/ToneBlocks.js:630 -#: js/timbre.js:2137 -#: js/timbre.js:2328 -#.TRANS: amplitude of tremolo waver -msgid "depth" +#: js/blocks/PitchBlocks.js:439 +msgid "solfege syllable" msgstr "" -#: js/ToneBlocks.js:559 -msgid "The Phaser block adds a sweeping sound." +#: js/blocks/PitchBlocks.js:440 +msgid "pitch class" msgstr "" -#: js/ToneBlocks.js:566 -#: js/timbre.js:2098 -#.TRANS: alter the phase of the sound -msgid "phaser" +#: js/blocks/PitchBlocks.js:441 +msgid "scalar class" msgstr "" -#: js/ToneBlocks.js:569 -#: js/timbre.js:2422 -msgid "octaves" +#: js/blocks/PitchBlocks.js:443 +msgid "nth degree" msgstr "" -#: js/ToneBlocks.js:569 -#: js/timbre.js:2425 -msgid "base frequency" +#: js/blocks/PitchBlocks.js:444 +msgid "pitch to shade" msgstr "" -#: js/ToneBlocks.js:619 -msgid "The Chorus block adds a chorus effect." +#: js/blocks/PitchBlocks.js:445 +msgid "pitch to color" msgstr "" -#: js/ToneBlocks.js:627 -#: js/timbre.js:2096 -#.TRANS: musical effect to simulate a choral sound -msgid "chorus" +#: js/blocks/PitchBlocks.js:629 +#: js/widgets/musickeyboard.js:735 +#.TRANS: MIDI is a technical standard for electronic music +msgid "MIDI" msgstr "" -#: js/ToneBlocks.js:630 -msgid "delay" +#: js/blocks/PitchBlocks.js:642 +#.TRANS: set an offset associated with the numeric piano keyboard mapping +msgid "set pitch number offset" msgstr "" -#: js/ToneBlocks.js:678 -msgid "The Vibrato block adds a rapid, slight variation in pitch." +#: js/blocks/PitchBlocks.js:645 +msgid "The Set pitch number offset block is used to set the offset for mapping pitch numbers to pitch and octave." msgstr "" -#: js/ToneBlocks.js:686 -#: js/timbre.js:2094 -#.TRANS: a rapid, slight variation in pitch -msgid "vibrato" -msgstr "" +#: js/blocks/PitchBlocks.js:679 +#.TRANS: convert piano key number (1-88) to pitch +msgid "number to pitch" +msgstr "จำนวนจนถึงระดับเสียง" -#: js/ToneBlocks.js:689 -#: js/timbre.js:2221 -msgid "intensity" +#: js/blocks/PitchBlocks.js:682 +msgid "The Number to pitch block will convert a pitch number to a pich name." msgstr "" -#: js/ToneBlocks.js:733 -#.TRANS: select synthesizer -msgid "set synth" -msgstr "" +#: js/blocks/PitchBlocks.js:715 +#.TRANS: convert piano key number (1-88) to octave +msgid "number to octave" +msgstr "จำนวนจนถึงโน้ตคู่แปด" -#: js/ToneBlocks.js:804 -msgid "synth name" +#: js/blocks/PitchBlocks.js:717 +msgid "The Number to octave block will convert a pitch number to an octave." msgstr "" -#: js/ToneBlocks.js:842 -msgid "set default instrument" +#: js/blocks/PitchBlocks.js:726 +msgid "y to pitch" msgstr "" -#: js/ToneBlocks.js:895 -#: js/ToneBlocks.js:943 -#.TRANS: set the characteristics of a custom instrument -msgid "set instrument" +#: js/blocks/PitchBlocks.js:729 +msgid "Y to pitch block will convert a staff y position to corresponding pitch notation." msgstr "" -#: js/ToneBlocks.js:898 -#: js/ToneBlocks.js:926 -#: js/ToneBlocks.js:932 -msgid "The Set instrument block selects a voice for the synthesizer," +#: js/blocks/PitchBlocks.js:841 +msgid "accidental selector" msgstr "" -#: js/ToneBlocks.js:900 -#: js/ToneBlocks.js:934 -msgid "eg guitar piano violin or cello." +#: js/blocks/PitchBlocks.js:844 +msgid "The Accidental selector block is used to choose between double-sharp, sharp, natural, flat, and double-flat." msgstr "" -#: js/ToneBlocks.js:1015 -msgid "Import a sound file to use as an instrument and set its pitch center." +#: js/blocks/PitchBlocks.js:858 +msgid "Pitch can be specified in terms of ni dha pa ma ga re sa." msgstr "" -#: js/ToneBlocks.js:1110 -msgid "Upload a sound file to connect with the sample block." +#: js/blocks/PitchBlocks.js:872 +msgid "Pitch can be specified in terms of C D E F G A B." msgstr "" -#: js/MeterBlocks.js:34 -#.TRANS: musical meter (time signature), e.g., 4:4 -msgid "current meter" +#: js/blocks/PitchBlocks.js:884 +msgid "solfege" msgstr "" -#: js/MeterBlocks.js:85 -#.TRANS: number of beats per minute -msgid "beat factor" -msgstr "ปัจจัยให้เกิดจังหวะ" - -#: js/MeterBlocks.js:161 -msgid "The Beats per minute block returns the current beats per minute." +#: js/blocks/PitchBlocks.js:887 +msgid "Pitch can be specified in terms of do re mi fa sol la ti." msgstr "" -#: js/MeterBlocks.js:169 -#: js/status.js:152 -#.TRANS: number of beats played per minute -msgid "beats per minute2" +#: js/blocks/PitchBlocks.js:922 +msgid "The Invert block rotates any contained notes around a target note." msgstr "" -#: js/MeterBlocks.js:169 -#: js/MeterBlocks.js:1056 -#: js/MeterBlocks.js:1133 -#: js/MeterBlocks.js:1211 -#.TRANS: sets tempo by defining a beat and beats per minute -msgid "beats per minute" -msgstr "บีทต่อนาที" - -#: js/MeterBlocks.js:233 -#.TRANS: count of current musical measure in meter -msgid "measure count" -msgstr "" +#: js/blocks/PitchBlocks.js:929 +#.TRANS: pitch inversion rotates a pitch around another pitch +msgid "invert" +msgstr "สับเปลี่ยนที่กัน" -#: js/MeterBlocks.js:241 -msgid "The Measure count block returns the current measure." +#: js/blocks/PitchBlocks.js:968 +#.TRANS: pitch inversion rotates a pitch around another pitch (odd number) +msgid "invert (odd)" msgstr "" -#: js/MeterBlocks.js:290 -#.TRANS: count of current beat in the meter -msgid "beat count" +#: js/blocks/PitchBlocks.js:1001 +#.TRANS: pitch inversion rotates a pitch around another pitch (even number) +msgid "invert (even)" msgstr "" -#: js/MeterBlocks.js:300 -#: js/MeterBlocks.js:311 -#: js/MeterBlocks.js:565 -#: js/MeterBlocks.js:576 -msgid "The Beat count block is the number of the current beat," +#: js/blocks/PitchBlocks.js:1022 +#.TRANS: register is the octave of the current pitch +msgid "register" msgstr "" -#: js/MeterBlocks.js:313 -#: js/MeterBlocks.js:578 -msgid "eg 1, 2, 3, or 4." +#: js/blocks/PitchBlocks.js:1026 +msgid "The Register block provides an easy way to modify the register (octave) of the notes that follow it." msgstr "" -#: js/MeterBlocks.js:368 -#.TRANS: count the number of notes -msgid "sum note values" +#: js/blocks/PitchBlocks.js:1047 +#.TRANS: cents are units used to specify the ratio between pitches. There are 100 cents between successive notes. +msgid "50 cents" msgstr "" -#: js/MeterBlocks.js:376 -#: js/MeterBlocks.js:440 -msgid "The Note counter block can be used to count the number of contained notes." +#: js/blocks/PitchBlocks.js:1102 +msgid "The Semi-tone transposition block will shift the pitches contained inside Note blocks up (or down) by half steps." msgstr "" -#: js/MeterBlocks.js:432 -#.TRANS: count the number of notes -msgid "note counter" +#: js/blocks/PitchBlocks.js:1104 +msgid "In the example shown above, sol is shifted up to sol#." msgstr "" -#: js/MeterBlocks.js:496 -#.TRANS: number of whole notes that have been played -msgid "whole notes played" +#: js/blocks/PitchBlocks.js:1110 +#.TRANS: adjust the amount of shift (up or down) of a pitch +msgid "semi-tone transpose" msgstr "" -#: js/MeterBlocks.js:505 -msgid "The Whole notes played block returns the total number of whole notes played." +#: js/blocks/PitchBlocks.js:1143 +msgid "The Transpose by Ratio block will shift the pitches contained inside Note blocks up (or down) by a ratio" msgstr "" -#: js/MeterBlocks.js:555 -#: js/DictActions.js:83 -#.TRANS: number of notes that have been played -msgid "notes played" +#: js/blocks/PitchBlocks.js:1149 +#.TRANS: adjust the amount of shift (up or down) of a pitch +msgid "transpose by ratio" msgstr "" -#: js/MeterBlocks.js:653 -msgid "The No clock block decouples the notes from the master clock." +#: js/blocks/PitchBlocks.js:1232 +#.TRANS: down sixth means the note is five scale degrees below current note +msgid "down sixth" msgstr "" -#: js/MeterBlocks.js:661 -#.TRANS: don't lock notes to master clock -msgid "no clock" +#: js/blocks/PitchBlocks.js:1251 +#.TRANS: down third means the note is two scale degrees below current note +msgid "down third" msgstr "" -#: js/MeterBlocks.js:700 -msgid "on weak beat do" +#: js/blocks/PitchBlocks.js:1270 +#.TRANS: seventh means the note is the six scale degrees above current note +msgid "seventh" msgstr "" -#: js/MeterBlocks.js:705 -msgid "The On-weak-beat block lets you specify actions to take on weak (off) beats." +#: js/blocks/PitchBlocks.js:1289 +#.TRANS: sixth means the note is the five scale degrees above current note +msgid "sixth" msgstr "" -#: js/MeterBlocks.js:750 -msgid "on strong beat" +#: js/blocks/PitchBlocks.js:1308 +#.TRANS: fifth means the note is the four scale degrees above current note +msgid "fifth" msgstr "" -#: js/MeterBlocks.js:758 -msgid "The On-strong-beat block lets you specify actions to take on specified beats." +#: js/blocks/PitchBlocks.js:1328 +#.TRANS: fourth means the note is three scale degrees above current note +msgid "fourth" msgstr "" -#: js/MeterBlocks.js:769 -msgid "beat" +#: js/blocks/PitchBlocks.js:1347 +#.TRANS: third means the note is two scale degrees above current note +msgid "third" msgstr "" -#: js/MeterBlocks.js:813 -msgid "on every beat do" +#: js/blocks/PitchBlocks.js:1366 +#.TRANS: second means the note is one scale degree above current note +msgid "second" msgstr "" -#: js/MeterBlocks.js:821 -msgid "The On-every-beat block lets you specify actions to take on every beat." +#: js/blocks/PitchBlocks.js:1407 +msgid "The Scalar transposition block will shift the pitches contained inside Note blocks up (or down) the scale." msgstr "" -#: js/MeterBlocks.js:874 -msgid "on every note do" +#: js/blocks/PitchBlocks.js:1409 +msgid "In the example shown above, sol is shifted up to la." msgstr "" -#: js/MeterBlocks.js:882 -msgid "The On-every-note block lets you specify actions to take on every note." +#: js/blocks/PitchBlocks.js:1416 +#.TRANS: adjust the amount of shift (up or down) of a pitch by musical scale (scalar) steps +msgid "scalar transpose" msgstr "" -#: js/MeterBlocks.js:928 -#: js/MeterBlocks.js:999 -#.TRANS: sets tempo by defining a beat and beats per minute -msgid "master beats per minute" +#: js/blocks/PitchBlocks.js:1451 +msgid "The Accidental block is used to create sharps and flats" msgstr "" -#: js/MeterBlocks.js:952 -#: js/MeterBlocks.js:1078 -#: js/MeterBlocks.js:1135 -msgid "bpm" +#: js/blocks/PitchBlocks.js:1458 +#.TRANS: An accidental is a modification to a pitch, e.g., sharp or flat. +msgid "accidental override" msgstr "" -#: js/MeterBlocks.js:952 -#: js/MeterBlocks.js:1078 -#: js/MeterBlocks.js:1135 -msgid "beat value" +#: js/blocks/PitchBlocks.js:1581 +msgid "The Hertz block (in combination with a Number block) will play a sound at the specified frequency." msgstr "" -#: js/MeterBlocks.js:1024 -#: js/MeterBlocks.js:1167 -#: js/MeterBlocks.js:1241 -msgid "Beats per minute must be > 30." +#: js/blocks/PitchBlocks.js:1671 +msgid "The Pitch Number block will play a pitch associated by its number, e.g. 0 for C and 7 for G." msgstr "" -#: js/MeterBlocks.js:1027 -#: js/MeterBlocks.js:1170 -#: js/MeterBlocks.js:1244 -msgid "Maximum beats per minute is 1000." +#: js/blocks/PitchBlocks.js:1703 +#: js/blocks/PitchBlocks.js:1745 +#.TRANS: a numeric mapping of the notes in an octave based on the musical mode +#.TRANS: a numeric mapping of the notes in an octave based on the musical mode +msgid "nth modal pitch" msgstr "" -#: js/MeterBlocks.js:1068 -msgid "The Beats per minute block sets the number of 1/4 notes per minute." +#: js/blocks/PitchBlocks.js:1706 +msgid "n^th Modal Pitch takes the pattern of pitches in semitones for a mode and makes each point a degree of the mode," msgstr "" -#: js/MeterBlocks.js:1279 -#.TRANS: anacrusis -msgid "pickup" +#: js/blocks/PitchBlocks.js:1708 +msgid "starting from 1 and regardless of tonal framework (i.e. not always 8 notes in the octave)" msgstr "" -#: js/MeterBlocks.js:1367 -msgid "number of beats" +#: js/blocks/PitchBlocks.js:1749 +msgid "N^th Modal Pitch takes a number as an input as the n^th degree for the given mode. 0 is the first position, 1 is the second, -1 is the note before the first etc." msgstr "" -#: js/DictBlocks.js:77 -msgid "show dictionary" +#: js/blocks/PitchBlocks.js:1751 +msgid "The pitches change according to the mode specified without any need for respellings." msgstr "" -#: js/DictBlocks.js:129 -msgid "The Dictionary block returns a dictionary." +#: js/blocks/PitchBlocks.js:1790 +msgid "Scale Degree is a common convention in music. Scale Degree offers seven possible positions in the scale (1-7) and can be modified via accidentals." msgstr "" -#: js/DictBlocks.js:197 -#: js/DictBlocks.js:339 -msgid "The Get-dict block returns a value in the dictionary for a specified key." +#: js/blocks/PitchBlocks.js:1792 +msgid "Scale Degree 1 is always the first pitch in a given scale, regardless of octave." msgstr "" -#: js/DictBlocks.js:212 -#: js/DictBlocks.js:354 -#.TRANS: retrieve a value from the dictionary with a given key -msgid "get value" +#: js/blocks/PitchBlocks.js:1814 +#.TRANS: step some number of notes in current musical scale +msgid "scalar step" msgstr "" -#: js/DictBlocks.js:215 -#: js/DictBlocks.js:216 -#: js/DictBlocks.js:289 -#: js/DictBlocks.js:290 -#: js/DictBlocks.js:357 -#: js/DictBlocks.js:430 -#: js/DictBlocks.js:431 -msgid "key2" +#: js/blocks/PitchBlocks.js:1819 +msgid "The Scalar Step block (in combination with a Number block) will play the next pitch in a scale," msgstr "" -#: js/DictBlocks.js:271 -#: js/DictBlocks.js:411 -msgid "The Set-dict block sets a value in the dictionary for a specified key." +#: js/blocks/PitchBlocks.js:1821 +msgid "eg if the last note played was sol, Scalar Step 1 will play la." msgstr "" -#: js/DictBlocks.js:286 -#: js/DictBlocks.js:427 -#.TRANS: set a value in the dictionary for a given key -msgid "set value" +#: js/blocks/PitchBlocks.js:1857 +msgid "The Pitch block specifies the pitch name and octave of a note that together determine the frequency of the note." msgstr "" -#: js/ExtrasBlocks.js:33 -msgid "fraction" +#: js/blocks/ProgramBlocks.js:33 +msgid "The Load-heap-from-app block loads the heap from a web page." msgstr "" -#: js/ExtrasBlocks.js:36 -msgid "Convert a float to a fraction" +#: js/blocks/ProgramBlocks.js:44 +#.TRANS: load the heap contents from a URL +msgid "load heap from App" msgstr "" -#: js/ExtrasBlocks.js:93 -msgid "save as ABC" +#: js/blocks/ProgramBlocks.js:95 +msgid "Error parsing JSON data:" msgstr "" -#: js/ExtrasBlocks.js:96 -#: js/ExtrasBlocks.js:132 -#: js/ExtrasBlocks.js:168 -msgid "title" -msgstr "หัวข้อ" - -#: js/ExtrasBlocks.js:129 -msgid "save as Lilypond" +#: js/blocks/ProgramBlocks.js:100 +msgid "404: Page not found" msgstr "" -#: js/ExtrasBlocks.js:165 -msgid "save as SVG" +#: js/blocks/ProgramBlocks.js:133 +msgid "The Save-heap-to-app block saves the heap to a web page." msgstr "" -#: js/ExtrasBlocks.js:216 -msgid "no background" -msgstr "ไม่มีพื้นหลัง" - -#: js/ExtrasBlocks.js:219 -msgid "The No background block eliminates the background from the saved SVG output." +#: js/blocks/ProgramBlocks.js:144 +#.TRANS: save the heap contents to a URL +msgid "save heap to App" msgstr "" -#: js/ExtrasBlocks.js:247 -msgid "show blocks" -msgstr "แสดง blocks" +#: js/blocks/ProgramBlocks.js:189 +msgid "Cannot find a valid heap for" +msgstr "" -#: js/ExtrasBlocks.js:249 -msgid "The Show blocks block shows the blocks." +#: js/blocks/ProgramBlocks.js:206 +msgid "The Load-heap block loads the heap from a file." msgstr "" -#: js/ExtrasBlocks.js:274 -msgid "hide blocks" -msgstr "ซ่อน blocks" +#: js/blocks/ProgramBlocks.js:217 +#.TRANS: load the heap from a file +msgid "load heap" +msgstr "โหลดฮีป" -#: js/ExtrasBlocks.js:276 -msgid "The Hide blocks block hides the blocks." +#: js/blocks/ProgramBlocks.js:270 +msgid "The file you selected does not contain a valid heap." msgstr "" -#: js/ExtrasBlocks.js:305 -#: js/ExtrasBlocks.js:335 -msgid "The Space block is used to add space between blocks." +#: js/blocks/ProgramBlocks.js:275 +msgid "The loadHeap block needs a loadFile block." msgstr "" -#: js/ExtrasBlocks.js:373 -msgid "wait" -msgstr "รอ" - -#: js/ExtrasBlocks.js:376 -msgid "The Wait block pauses the program for a specified number of seconds." +#: js/blocks/ProgramBlocks.js:291 +msgid "The Set-heap block loads the heap." msgstr "" -#: js/ExtrasBlocks.js:430 -#: plugins/facebook.rtp:30 -msgid "comment" -msgstr "หมายเหตุ" - -#: js/ExtrasBlocks.js:466 -msgid "print" -msgstr "งานพิมพ์" +#: js/blocks/ProgramBlocks.js:340 +msgid "The block you selected does not contain a valid heap." +msgstr "" -#: js/ExtrasBlocks.js:473 -msgid "The Print block displays text at the top of the screen." +#: js/blocks/ProgramBlocks.js:343 +msgid "The Set heap block needs a heap." msgstr "" -#: js/ExtrasBlocks.js:579 -msgid "display grid" +#: js/blocks/ProgramBlocks.js:360 +msgid "The Load-dictionary block loads a dictionary from a file." msgstr "" -#: js/ExtrasBlocks.js:584 -msgid "The Display Grid Block changes the grid type" +#: js/blocks/ProgramBlocks.js:372 +#.TRANS: load a dictionary from a file +msgid "load dictionary" msgstr "" -#: js/ExtrasBlocks.js:686 -#: js/ExtrasBlocks.js:705 -#: js/ExtrasBlocks.js:728 -#: js/ExtrasBlocks.js:751 -#: js/ExtrasBlocks.js:769 -#: js/ExtrasBlocks.js:788 -#: js/ExtrasBlocks.js:807 -#: js/ExtrasBlocks.js:826 -msgid "unknown" -msgstr "ไม่รู้" +#: js/blocks/ProgramBlocks.js:390 +#: js/blocks/ProgramBlocks.js:658 +#: js/blocks/ToneBlocks.js:1025 +msgid "file" +msgstr "" -#: js/SensorsBlocks.js:36 -msgid "The Input block prompts for keyboard input." +#: js/blocks/ProgramBlocks.js:444 +msgid "The file you selected does not contain a valid dictionary." msgstr "" -#: js/SensorsBlocks.js:46 -msgid "input" +#: js/blocks/ProgramBlocks.js:449 +msgid "The load dictionary block needs a load file block." msgstr "" -#: js/SensorsBlocks.js:64 -msgid "Input a value" +#: js/blocks/ProgramBlocks.js:466 +msgid "The Set-dictionary block loads a dictionary." msgstr "" -#: js/SensorsBlocks.js:126 -msgid "input value" +#: js/blocks/ProgramBlocks.js:477 +#.TRANS: load a dictionary from a JSON +msgid "set dictionary" msgstr "" -#: js/SensorsBlocks.js:131 -msgid "The Input-value block stores the input." +#: js/blocks/ProgramBlocks.js:546 +msgid "The block you selected does not contain a valid dictionary." msgstr "" -#: js/SensorsBlocks.js:238 -msgid "loudness" -msgstr "ระดับความดัง" +#: js/blocks/ProgramBlocks.js:550 +msgid "The set dictionary block needs a dictionary." +msgstr "" -#: js/SensorsBlocks.js:245 -msgid "The Loudness block returns the volume detected by the microphone." +#: js/blocks/ProgramBlocks.js:567 +msgid "The Save-heap block saves the heap to a file." msgstr "" -#: js/SensorsBlocks.js:300 -msgid "click" -msgstr "คลิ๊ก" +#: js/blocks/ProgramBlocks.js:578 +#.TRANS: save the heap to a file +msgid "save heap" +msgstr "บันทึกฮีป" -#: js/SensorsBlocks.js:306 -msgid "The Click block triggers an event if a mouse has been clicked." +#: js/blocks/ProgramBlocks.js:629 +msgid "The Save-dictionary block saves a dictionary to a file." msgstr "" -#: js/SensorsBlocks.js:313 -msgid "The Click block triggers an event if a turtle has been clicked." +#: js/blocks/ProgramBlocks.js:640 +#.TRANS: save a dictionary to a file +msgid "save dictionary" msgstr "" -#: js/SensorsBlocks.js:342 -msgid "cursor over" +#: js/blocks/ProgramBlocks.js:720 +msgid "The Open palette block opens a palette." msgstr "" -#: js/SensorsBlocks.js:387 -msgid "cursor out" +#: js/blocks/ProgramBlocks.js:727 +msgid "open palette" msgstr "" -#: js/SensorsBlocks.js:433 -msgid "cursor button down" +#: js/blocks/ProgramBlocks.js:785 +msgid "The Delete block block removes a block." msgstr "" -#: js/SensorsBlocks.js:477 -msgid "cursor button up" +#: js/blocks/ProgramBlocks.js:797 +#.TRANS: Move this block to the trash. +msgid "delete block" msgstr "" -#: js/SensorsBlocks.js:638 -msgid "The Get red block returns the red component of the pixel under the mouse." +#: js/blocks/ProgramBlocks.js:861 +msgid "The Move block block moves a block." msgstr "" -#: js/SensorsBlocks.js:644 -msgid "The Get red block returns the red component of the pixel under the turtle." +#: js/blocks/ProgramBlocks.js:869 +#.TRANS: Move the position of a block on the screen. +msgid "move block" msgstr "" -#: js/SensorsBlocks.js:685 -#: plugins/rodi.rtp:216 -msgid "pixel color" -msgstr "พิเซลของสี" +#: js/blocks/ProgramBlocks.js:881 +#: js/blocks/ProgramBlocks.js:1048 +msgid "block number" +msgstr "" -#: js/SensorsBlocks.js:690 -msgid "The Get pixel block returns the color of the pixel under the mouse." +#: js/blocks/ProgramBlocks.js:935 +#.TRANS: Run program beginning at this block. +msgid "run block" msgstr "" -#: js/SensorsBlocks.js:696 -msgid "The Get pixel block returns the color of the pixel under the turtle." +#: js/blocks/ProgramBlocks.js:1025 +msgid "The Dock block block connections two blocks." msgstr "" -#: js/SensorsBlocks.js:758 -msgid "time" -msgstr "เวลา" +#: js/blocks/ProgramBlocks.js:1036 +#.TRANS: We can connect a block to another block. +msgid "connect blocks" +msgstr "" -#: js/SensorsBlocks.js:804 -msgid "cursor y" +#: js/blocks/ProgramBlocks.js:1048 +msgid "target block" msgstr "" -#: js/SensorsBlocks.js:809 -msgid "The Cursor Y block returns the vertical position of the mouse." +#: js/blocks/ProgramBlocks.js:1048 +msgid "connection number" msgstr "" -#: js/SensorsBlocks.js:845 -msgid "cursor x" +#: js/blocks/ProgramBlocks.js:1140 +msgid "The Make block block creates a new block." msgstr "" -#: js/SensorsBlocks.js:850 -msgid "The Cursor X block returns the horizontal position of the mouse." +#: js/blocks/ProgramBlocks.js:1152 +#.TRANS: Create a new block +msgid "make block" msgstr "" -#: js/SensorsBlocks.js:886 -msgid "mouse button" -msgstr "ปุ่มหนู" +#: js/blocks/ProgramBlocks.js:1285 +msgid "Cannot find block" +msgstr "" -#: js/SensorsBlocks.js:888 -msgid "The Mouse-button block returns True if the mouse button is pressed." +#: js/blocks/ProgramBlocks.js:1304 +#: js/blocks/ProgramBlocks.js:1313 +msgid "Warning: block argument type mismatch" msgstr "" -#: js/SensorsBlocks.js:934 -msgid "to ASCII" +#: js/blocks/ProgramBlocks.js:1347 +msgid "The Open project block is used to open a project from a web page." msgstr "" -#: js/SensorsBlocks.js:938 -msgid "The To ASCII block converts numbers to letters." +#: js/blocks/ProgramBlocks.js:1357 +msgid "open project" msgstr "" -#: js/SensorsBlocks.js:1005 -msgid "The Keyboard block returns computer keyboard input." +#: js/blocks/ProgramBlocks.js:1410 +msgid "Please enter a valid URL." msgstr "" -#: js/IntervalsActions.js:216 -msgid "Adding missing pitch number 0." +#: js/blocks/ToneBlocks.js:34 +msgid "oscillator" msgstr "" -#: js/IntervalsActions.js:224 -msgid "Ignoring pitch numbers less than zero or greater than eleven." +#: js/blocks/ToneBlocks.js:42 +#: js/blocks/WidgetBlocks.js:179 +#: js/widgets/timbre.js:1558 +#: js/widgets/timbre.js:1808 +#.TRANS: there are different types (sine, triangle, square...) of oscillators. +#.TRANS: type of filter, e.g., lowpass, highpass, etc. +msgid "type" msgstr "" -#: js/IntervalsActions.js:230 -msgid "Ignoring duplicate pitch numbers." +#: js/blocks/ToneBlocks.js:44 +#: js/widgets/timbre.js:1562 +#.TRANS: Partials refers to the number of sine waves combined into the sound. +msgid "partials" msgstr "" -#: js/PitchActions.js:88 -msgid "The Scalar Step Block must be used inside of a Note Block." +#: js/blocks/ToneBlocks.js:76 +msgid "You are adding multiple oscillator blocks." msgstr "" -#: js/PitchActions.js:107 -msgid "The Scalar Step Block must be preceded by a Pitch Block." +#: js/blocks/ToneBlocks.js:144 +#: js/widgets/timbre.js:1225 +#.TRANS: a duo synthesizer combines a synth with a sequencer +msgid "duo synth" msgstr "" -#: js/DrumActions.js:231 -msgid "Noise Block: Did you mean to use a Note block?" +#: js/blocks/ToneBlocks.js:149 +msgid "The Duo synth block is a duo-frequency modulator used to define a timbre." msgstr "" -#: js/MeterActions.js:101 -#: js/MeterActions.js:139 -msgid "beats per minute must be greater than" +#: js/blocks/ToneBlocks.js:157 +#: js/widgets/timbre.js:1476 +msgid "vibrato rate" msgstr "" -#: js/MeterActions.js:111 -#: js/MeterActions.js:149 -msgid "maximum" +#: js/blocks/ToneBlocks.js:157 +msgid "vibrato intensity" msgstr "" -#: js/MeterActions.js:117 -#: js/MeterActions.js:155 -msgid "beats per minute is" +#: js/blocks/ToneBlocks.js:185 +#: js/widgets/timbre.js:1221 +#.TRANS: AM (amplitude modulation) synthesizer +msgid "AM synth" msgstr "" -#: js/ToneActions.js:134 -msgid "Vibrato intensity must be between 1 and 100." +#: js/blocks/ToneBlocks.js:189 +msgid "The AM synth block is an amplitude modulator used to define a timbre." msgstr "" -#: js/ToneActions.js:139 -msgid "Vibrato rate must be greater than 0." +#: js/blocks/ToneBlocks.js:224 +#: js/widgets/timbre.js:1223 +#.TRANS: FM (frequency modulation) synthesizer +msgid "FM synth" msgstr "" -#: js/ToneActions.js:192 -#: js/ToneActions.js:265 -#.TRANS: Depth is the intesity of the tremolo or chorus effect. -msgid "Depth is out of range." +#: js/blocks/ToneBlocks.js:228 +msgid "The FM synth block is a frequency modulator used to define a timbre." msgstr "" -#: js/ToneActions.js:301 -msgid "Distortion must be from 0 to 100." +#: js/blocks/ToneBlocks.js:262 +msgid "partial" msgstr "" -#: js/ToneActions.js:332 -#.TRANS: partials components in a harmonic series -msgid "Partial must be greater than or equal to 0." +#: js/blocks/ToneBlocks.js:265 +msgid "The Partial block is used to specify a weight for a specific partial harmonic." msgstr "" -#: js/ToneActions.js:378 -#: js/ToneActions.js:417 -#: js/ToneActions.js:456 -#: js/timbre.js:782 -msgid "Unable to use synth due to existing oscillator" +#: js/blocks/ToneBlocks.js:284 +#.TRANS: partials are weighted components in a harmonic series +msgid "Partial weight must be between 0 and 1." msgstr "" -#: js/ToneActions.js:388 -#: js/ToneActions.js:427 -msgid "The input cannot be negative." +#: js/blocks/ToneBlocks.js:297 +#.TRANS: partials are weighted components in a harmonic series +msgid "Partial block should be used inside of a Weighted-partials block." msgstr "" -#: js/DictActions.js:75 -#: js/DictActions.js:153 -#: js/DictActions.js:188 -msgid "font" +#: js/blocks/ToneBlocks.js:325 +#.TRANS: partials are weighted components in a harmonic series +msgid "weighted partials" msgstr "" -#: js/musicutils.js:363 -#: js/musicutils.js:471 -#: js/pitchdrummatrix.js:151 -#: js/musickeyboard.js:2563 -msgid "rest" -msgstr "พัก" +#: js/blocks/ToneBlocks.js:383 +msgid "The Harmonic block will add harmonics to the contained notes." +msgstr "" -#: js/musicutils.js:565 -#.TRANS: ordinal number. Please keep exactly one space between each number. -msgid "1st 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th" +#: js/blocks/ToneBlocks.js:390 +#.TRANS: A harmonic is an overtone. +msgid "harmonic" msgstr "" -#: js/musicutils.js:629 -#: js/musicutils.js:812 -#: js/musicutils.js:911 -#.TRANS: augmented is a music term related to intervals -msgid "augmented" +#: js/blocks/ToneBlocks.js:431 +msgid "The Distortion block adds distortion to the pitch." msgstr "" -#: js/musicutils.js:631 -#: js/musicutils.js:813 -#: js/musicutils.js:910 -#.TRANS: diminished is a music term related to intervals and mode -msgid "diminished" +#: js/blocks/ToneBlocks.js:438 +#: js/widgets/timbre.js:2100 +#.TRANS: distortion is an alteration in the sound +msgid "distortion" msgstr "" -#: js/musicutils.js:639 -#.TRANS: twelve semi-tone scale for music -msgid "chromatic" +#: js/blocks/ToneBlocks.js:487 +msgid "The Tremolo block adds a wavering effect." msgstr "" -#: js/musicutils.js:640 -msgid "algerian" +#: js/blocks/ToneBlocks.js:495 +#: js/widgets/timbre.js:2092 +#.TRANS: a wavering effect in a musical tone +msgid "tremolo" msgstr "" -#: js/musicutils.js:641 -msgid "spanish" +#: js/blocks/ToneBlocks.js:500 +#: js/blocks/ToneBlocks.js:569 +#: js/blocks/ToneBlocks.js:630 +#: js/blocks/ToneBlocks.js:689 +#: js/widgets/timbre.js:2134 +#: js/widgets/timbre.js:2222 +#: js/widgets/timbre.js:2317 +#: js/widgets/timbre.js:2419 +#.TRANS: rate at which tremolo wavers +msgid "rate" msgstr "" -#: js/musicutils.js:643 -#.TRANS: modal scale in music -msgid "octatonic" +#: js/blocks/ToneBlocks.js:502 +#: js/blocks/ToneBlocks.js:630 +#: js/widgets/timbre.js:2137 +#: js/widgets/timbre.js:2328 +#.TRANS: amplitude of tremolo waver +msgid "depth" msgstr "" -#: js/musicutils.js:645 -#.TRANS: harmonic major scale in music -msgid "harmonic major" +#: js/blocks/ToneBlocks.js:559 +msgid "The Phaser block adds a sweeping sound." msgstr "" -#: js/musicutils.js:647 -#.TRANS: natural minor scales in music -msgid "natural minor" +#: js/blocks/ToneBlocks.js:566 +#: js/widgets/timbre.js:2098 +#.TRANS: alter the phase of the sound +msgid "phaser" msgstr "" -#: js/musicutils.js:649 -#.TRANS: harmonic minor scale in music -msgid "harmonic minor" +#: js/blocks/ToneBlocks.js:569 +#: js/turtleactions/IntervalsActions.js:114 +#: js/widgets/timbre.js:2422 +msgid "octaves" msgstr "" -#: js/musicutils.js:651 -#.TRANS: melodic minor scale in music -msgid "melodic minor" +#: js/blocks/ToneBlocks.js:569 +#: js/widgets/timbre.js:2425 +msgid "base frequency" msgstr "" -#: js/musicutils.js:655 -#.TRANS: modal scale for music -msgid "dorian" +#: js/blocks/ToneBlocks.js:619 +msgid "The Chorus block adds a chorus effect." msgstr "" -#: js/musicutils.js:657 -#.TRANS: modal scale for music -msgid "phrygian" +#: js/blocks/ToneBlocks.js:627 +#: js/widgets/timbre.js:2096 +#.TRANS: musical effect to simulate a choral sound +msgid "chorus" msgstr "" -#: js/musicutils.js:659 -#.TRANS: modal scale for music -msgid "lydian" +#: js/blocks/ToneBlocks.js:630 +msgid "delay" msgstr "" -#: js/musicutils.js:661 -#.TRANS: modal scale for music -msgid "mixolydian" +#: js/blocks/ToneBlocks.js:678 +msgid "The Vibrato block adds a rapid, slight variation in pitch." msgstr "" -#: js/musicutils.js:665 -#.TRANS: modal scale for music -msgid "locrian" +#: js/blocks/ToneBlocks.js:686 +#: js/widgets/timbre.js:2094 +#.TRANS: a rapid, slight variation in pitch +msgid "vibrato" msgstr "" -#: js/musicutils.js:667 -#.TRANS: minor jazz scale for music -msgid "jazz minor" +#: js/blocks/ToneBlocks.js:689 +#: js/widgets/timbre.js:2221 +msgid "intensity" msgstr "" -#: js/musicutils.js:669 -#.TRANS: bebop scale for music -msgid "bebop" +#: js/blocks/ToneBlocks.js:733 +#.TRANS: select synthesizer +msgid "set synth" msgstr "" -#: js/musicutils.js:670 -msgid "arabic" +#: js/blocks/ToneBlocks.js:804 +msgid "synth name" msgstr "" -#: js/musicutils.js:671 -msgid "byzantine" +#: js/blocks/ToneBlocks.js:842 +msgid "set default instrument" msgstr "" -#: js/musicutils.js:673 -#.TRANS: musical scale for music by Verdi -msgid "enigmatic" +#: js/blocks/ToneBlocks.js:895 +#: js/blocks/ToneBlocks.js:943 +#.TRANS: set the characteristics of a custom instrument +msgid "set instrument" msgstr "" -#: js/musicutils.js:674 -msgid "ethiopian" +#: js/blocks/ToneBlocks.js:898 +#: js/blocks/ToneBlocks.js:926 +#: js/blocks/ToneBlocks.js:932 +msgid "The Set instrument block selects a voice for the synthesizer," msgstr "" -#: js/musicutils.js:676 -#.TRANS: Ethiopic scale for music -msgid "geez" +#: js/blocks/ToneBlocks.js:900 +#: js/blocks/ToneBlocks.js:934 +msgid "eg guitar piano violin or cello." msgstr "" -#: js/musicutils.js:677 -msgid "hindu" +#: js/blocks/ToneBlocks.js:1015 +msgid "Import a sound file to use as an instrument and set its pitch center." msgstr "" -#: js/musicutils.js:678 -msgid "hungarian" +#: js/blocks/ToneBlocks.js:1110 +msgid "Upload a sound file to connect with the sample block." msgstr "" -#: js/musicutils.js:680 -#.TRANS: minor Romanian scale for music -msgid "romanian minor" +#: js/blocks/VolumeBlocks.js:35 +msgid "synth volume" msgstr "" -#: js/musicutils.js:681 -msgid "spanish gypsy" +#: js/blocks/VolumeBlocks.js:39 +msgid "The Synth volume block returns the current volume of the current synthesizer." msgstr "" -#: js/musicutils.js:683 -#.TRANS: musical scale for Mid-Eastern music -msgid "maqam" +#: js/blocks/VolumeBlocks.js:105 +msgid "master volume" msgstr "" -#: js/musicutils.js:685 -#.TRANS: minor blues scale for music -msgid "minor blues" +#: js/blocks/VolumeBlocks.js:109 +msgid "The Master volume block returns the master volume." msgstr "" -#: js/musicutils.js:687 -#.TRANS: major blues scale for music -msgid "major blues" +#: js/blocks/VolumeBlocks.js:355 +#: js/blocks/VolumeBlocks.js:524 +msgid "set synth volume" msgstr "" -#: js/musicutils.js:688 -msgid "whole tone" +#: js/blocks/VolumeBlocks.js:362 +#: js/blocks/VolumeBlocks.js:545 +msgid "synth" msgstr "" -#: js/musicutils.js:690 -#.TRANS: pentatonic is a general term that means "five note scale". This scale is typically known as "minor pentatonic" -msgid "minor pentatonic" +#: js/blocks/VolumeBlocks.js:403 +#: js/blocks/VolumeBlocks.js:577 +#: js/blocks/VolumeBlocks.js:740 +#: js/turtleactions/VolumeActions.js:173 +msgid "Setting volume to 0." msgstr "" -#: js/musicutils.js:692 -#.TRANS: pentatonic is a general term that means "five note scale". This scale is typically known as "major pentatonic" -msgid "major pentatonic" +#: js/blocks/VolumeBlocks.js:440 +msgid "Synth not found" msgstr "" -#: js/musicutils.js:693 -msgid "chinese" +#: js/blocks/VolumeBlocks.js:494 +msgid "set drum volume" msgstr "" -#: js/musicutils.js:694 -msgid "egyptian" +#: js/blocks/VolumeBlocks.js:530 +msgid "The Set synth volume block will change the volume of a particular synth," msgstr "" -#: js/musicutils.js:696 -#.TRANS: https://en.wikipedia.org/wiki/Hirajoshi_scale NOTE: There are three different versions of this scale -msgid "hirajoshi" +#: js/blocks/VolumeBlocks.js:532 +msgid "eg guitar violin snare drum etc." msgstr "" -#: js/musicutils.js:697 -msgid "Japan" +#: js/blocks/VolumeBlocks.js:534 +msgid "The default volume is 50." msgstr "" -#: js/musicutils.js:699 -#.TRANS: https://en.wikipedia.org/wiki/In_scale and https://en.wikipedia.org/wiki/Sakura_Sakura -msgid "in" +#: js/blocks/VolumeBlocks.js:536 +msgid "The range is 0 for silence to 100 for full volume." msgstr "" -#: js/musicutils.js:701 -#.TRANS: https://en.wikipedia.org/wiki/Miny%C5%8D_scale -msgid "minyo" +#: js/blocks/VolumeBlocks.js:597 +msgid "set panning" msgstr "" -#: js/musicutils.js:703 -#.TRANS: Italian mathematician -msgid "fibonacci" +#: js/blocks/VolumeBlocks.js:603 +msgid "The Set Panning block sets the panning for all synthesizers." msgstr "" -#: js/musicutils.js:708 -#: js/musicutils.js:1106 -#.TRANS: lowpass filter -msgid "lowpass" +#: js/blocks/VolumeBlocks.js:625 +msgid "Warning: Sound is coming out from only the left or right side." msgstr "" -#: js/musicutils.js:710 -#: js/musicutils.js:1107 -#.TRANS: bandpass filter -msgid "bandpass" +#: js/blocks/VolumeBlocks.js:647 +#: js/blocks/VolumeBlocks.js:695 +msgid "set master volume" msgstr "" -#: js/musicutils.js:712 -#: js/musicutils.js:1108 -#.TRANS: high-shelf filter -msgid "highshelf" +#: js/blocks/VolumeBlocks.js:653 +msgid "The Set master volume block sets the volume for all synthesizers." msgstr "" -#: js/musicutils.js:714 -#: js/musicutils.js:1109 -#.TRANS: low-shelf filter -msgid "lowshelf" +#: js/blocks/VolumeBlocks.js:784 +msgid "The Set relative volume block changes the volume of the contained notes." msgstr "" -#: js/musicutils.js:716 -#: js/musicutils.js:1110 -#.TRANS: notch-shelf filter -msgid "notch" +#: js/blocks/VolumeBlocks.js:791 +msgid "set relative volume" msgstr "" -#: js/musicutils.js:718 -#: js/musicutils.js:1111 -#.TRANS: all-pass filter -msgid "allpass" +#: js/blocks/VolumeBlocks.js:857 +msgid "decrescendo" msgstr "" -#: js/musicutils.js:720 -#: js/musicutils.js:1112 -#.TRANS: peaking filter -msgid "peaking" +#: js/blocks/VolumeBlocks.js:921 +msgid "crescendo" msgstr "" -#: js/musicutils.js:731 -#: js/synthutils.js:58 -#.TRANS: musical instrument -msgid "violin" +#: js/blocks/WidgetBlocks.js:81 +#.TRANS: sound envelope (ADSR) +msgid "envelope" msgstr "" -#: js/musicutils.js:732 -#: js/synthutils.js:60 -#.TRANS: viola musical instrument -msgid "viola" +#: js/blocks/WidgetBlocks.js:89 +#.TRANS: Attack time is the time taken for initial run-up of level from nil to peak, beginning when the key is first pressed. +msgid "attack" msgstr "" -#: js/musicutils.js:733 -#: js/synthutils.js:98 -#.TRANS: xylophone musical instrument -msgid "xylophone" +#: js/blocks/WidgetBlocks.js:91 +#.TRANS: Decay time is the time taken for the subsequent run down from the attack level to the designated sustain level. +msgid "decay" msgstr "" -#: js/musicutils.js:734 -#: js/synthutils.js:120 -#.TRANS: vibraphone musical instrument -msgid "vibraphone" +#: js/blocks/WidgetBlocks.js:93 +#.TRANS: Sustain level is the level during the main sequence of the sound's duration, until the key is released. +msgid "sustain" msgstr "" -#: js/musicutils.js:735 -#: js/synthutils.js:62 -#.TRANS: musical instrument -msgid "cello" +#: js/blocks/WidgetBlocks.js:95 +#.TRANS: Release time is the time taken for the level to decay from the sustain level to zero after the key is released. +msgid "release" msgstr "" -#: js/musicutils.js:737 -#: js/synthutils.js:66 -#.TRANS: viola musical instrument -msgid "double bass" +#: js/blocks/WidgetBlocks.js:113 +msgid "Attack value should be from 0 to 100." msgstr "" -#: js/musicutils.js:738 -#: js/synthutils.js:68 -#: js/rhythmruler.js:2119 -#.TRANS: musical instrument -msgid "guitar" +#: js/blocks/WidgetBlocks.js:116 +msgid "Decay value should be from 0 to 100." msgstr "" -#: js/musicutils.js:739 -#: js/synthutils.js:70 -#.TRANS: musical instrument -msgid "acoustic guitar" +#: js/blocks/WidgetBlocks.js:119 +msgid "Sustain value should be from 0 to 100." msgstr "" -#: js/musicutils.js:740 -#: js/synthutils.js:72 -#.TRANS: musical instrument -msgid "flute" +#: js/blocks/WidgetBlocks.js:122 +msgid "Release value should be from 0-100." msgstr "" -#: js/musicutils.js:741 -#: js/synthutils.js:74 -#.TRANS: musical instrument -msgid "clarinet" +#: js/blocks/WidgetBlocks.js:140 +msgid "You are adding multiple envelope blocks." msgstr "" -#: js/musicutils.js:742 -#: js/synthutils.js:76 -#.TRANS: musical instrument -msgid "saxophone" +#: js/blocks/WidgetBlocks.js:171 +#.TRANS: a filter removes some unwanted components from a signal +msgid "filter" msgstr "" -#: js/musicutils.js:743 -#: js/synthutils.js:78 -#.TRANS: musical instrument -msgid "tuba" +#: js/blocks/WidgetBlocks.js:181 +#: js/widgets/timbre.js:1818 +#.TRANS: rolloff is the steepness of a change in frequency. +msgid "rolloff" msgstr "" -#: js/musicutils.js:744 -#: js/synthutils.js:80 -#.TRANS: musical instrument -msgid "trumpet" +#: js/blocks/WidgetBlocks.js:213 +#.TRANS: rolloff is the steepness of a change in frequency. +msgid "Rolloff value should be either -12, -24, -48, or -96 decibels/octave." msgstr "" -#: js/musicutils.js:745 -#: js/synthutils.js:82 -#.TRANS: musical instrument -msgid "oboe" +#: js/blocks/WidgetBlocks.js:252 +msgid "The Temperament tool is used to define custom tuning." msgstr "" -#: js/musicutils.js:746 -#: js/synthutils.js:84 -#.TRANS: musical instrument -msgid "trombone" +#: js/blocks/WidgetBlocks.js:332 +#: js/blocks/WidgetBlocks.js:1573 +#: js/widgets/sampler.js:547 +msgid "Upload a sample and adjust its pitch center." msgstr "" -#: js/musicutils.js:747 -#: js/synthutils.js:100 -#.TRANS: polytone synthesizer -msgid "electronic synth" +#: js/blocks/WidgetBlocks.js:339 +#.TRANS: the speed at music is should be played. +msgid "sampler" msgstr "" -#: js/musicutils.js:748 -#: js/synthutils.js:102 -#.TRANS: simple monotone synthesizer -msgid "simple 1" +#: js/blocks/WidgetBlocks.js:517 +msgid "The Meter block opens a tool to select strong beats for the meter." msgstr "" -#: js/musicutils.js:749 -msgid "simple 2" +#: js/blocks/WidgetBlocks.js:573 +msgid "The oscilloscope block opens a tool to visualize waveforms." msgstr "" -#: js/musicutils.js:750 -msgid "simple 3" +#: js/blocks/WidgetBlocks.js:578 +msgid "oscilloscope" msgstr "" -#: js/musicutils.js:751 -msgid "simple 4" +#: js/blocks/WidgetBlocks.js:645 +msgid "The Custom mode block opens a tool to explore musical mode (the spacing of the notes in a scale)." msgstr "" -#: js/musicutils.js:753 -#: js/synthutils.js:49 -#.TRANS: brown noise synthesizer -msgid "brown noise" +#: js/blocks/WidgetBlocks.js:651 +#.TRANS: musical mode is the pattern of half-steps in an octave, e.g., Major or Minor modes +msgid "custom mode" msgstr "" -#: js/musicutils.js:754 -#: js/synthutils.js:51 -#.TRANS: pink noise synthesizer -msgid "pink noise" +#: js/blocks/WidgetBlocks.js:700 +msgid "The Tempo block opens a metronome to visualize the beat." msgstr "" -#: js/musicutils.js:756 -#: js/synthutils.js:127 -#: js/rhythmruler.js:1670 -#: js/rhythmruler.js:1928 -#.TRANS: musical instrument -msgid "snare drum" +#: js/blocks/WidgetBlocks.js:762 +msgid "The Arpeggio Widget is used to compose chord sequences." msgstr "" -#: js/musicutils.js:757 -#: js/synthutils.js:129 -#.TRANS: musical instrument -msgid "kick drum" +#: js/blocks/WidgetBlocks.js:837 +msgid "The Pitch drum matrix is used to map pitches to drum sounds." msgstr "" -#: js/musicutils.js:758 -#: js/synthutils.js:131 -#.TRANS: musical instrument -msgid "tom tom" +#: js/blocks/WidgetBlocks.js:842 +#.TRANS: makes a mapping between pitches and drum sounds +msgid "pitch-drum mapper" msgstr "" -#: js/musicutils.js:759 -#: js/synthutils.js:133 -#.TRANS: musical instrument -msgid "floor tom" +#: js/blocks/WidgetBlocks.js:891 +msgid "You must have at least one pitch block and one drum block in the matrix." msgstr "" -#: js/musicutils.js:760 -#: js/synthutils.js:135 -#.TRANS: musical instrument -msgid "bass drum" +#: js/blocks/WidgetBlocks.js:920 +msgid "The Pitch slider tool to is used to generate pitches at selected frequencies." msgstr "" -#: js/musicutils.js:761 -#: js/synthutils.js:137 -#.TRANS: a drum made from an inverted cup -msgid "cup drum" +#: js/blocks/WidgetBlocks.js:925 +#.TRANS: widget to generate pitches using a slider +msgid "pitch slider" msgstr "" -#: js/musicutils.js:762 -#: js/synthutils.js:139 -#.TRANS: musical instrument -msgid "darbuka drum" +#: js/blocks/WidgetBlocks.js:977 +msgid "chromatic keyboard" msgstr "" -#: js/musicutils.js:763 -#: js/synthutils.js:143 -#.TRANS: musical instrument -msgid "hi hat" +#: js/blocks/WidgetBlocks.js:1011 +#: js/blocks/WidgetBlocks.js:1077 +#.TRANS: widget to generate pitches using a slider +msgid "music keyboard" msgstr "" -#: js/musicutils.js:764 -#: js/synthutils.js:145 -#.TRANS: a small metal bell -msgid "ride bell" +#: js/blocks/WidgetBlocks.js:1062 +#: js/blocks/WidgetBlocks.js:1069 +msgid "The Music keyboard block opens a piano keyboard that can be used to create notes." msgstr "" -#: js/musicutils.js:765 -#: js/synthutils.js:147 -#.TRANS: musical instrument -msgid "cow bell" +#: js/blocks/WidgetBlocks.js:1128 +msgid "The Pitch staircase tool to is used to generate pitches from a given ratio." msgstr "" -#: js/musicutils.js:766 -msgid "japanese drum" +#: js/blocks/WidgetBlocks.js:1135 +#.TRANS: generate a progressive sequence of pitches +msgid "pitch staircase" msgstr "" -#: js/musicutils.js:767 -#: js/synthutils.js:153 -#.TRANS: musical instrument -msgid "japanese bell" +#: js/blocks/WidgetBlocks.js:1222 +msgid "The Rhythm Maker block opens a tool to create drum machines." msgstr "" -#: js/musicutils.js:768 -#: js/synthutils.js:149 -#.TRANS: musical instrument -msgid "triangle bell" +#: js/blocks/WidgetBlocks.js:1291 +msgid "G major scale" msgstr "" -#: js/musicutils.js:769 -#: js/synthutils.js:151 -#.TRANS: musical instrument -msgid "finger cymbals" +#: js/blocks/WidgetBlocks.js:1326 +msgid "C major scale" msgstr "" -#: js/musicutils.js:770 -#: js/synthutils.js:155 -#.TRANS: a musically tuned set of bells -msgid "chime" +#: js/blocks/WidgetBlocks.js:1366 +msgid "The Phrase Maker block opens a tool to create musical phrases." msgstr "" -#: js/musicutils.js:771 -#: js/synthutils.js:157 -#.TRANS: a musical instrument -msgid "gong" +#: js/blocks/WidgetBlocks.js:1373 +#.TRANS: assigns pitch to a sequence of beats to generate a melody +msgid "phrase maker" msgstr "" -#: js/musicutils.js:772 -#: js/synthutils.js:159 -#.TRANS: sound effect -msgid "clang" -msgstr "" +#: js/blocks/WidgetBlocks.js:1444 +msgid "You must have at least one pitch block and one rhythm block in the matrix." +msgstr "คุณควรมีอย่างน้อยหนึ่งบล๊อกระดับเสียง และหนึ่งบล๊อกจังหวะในเมทริกซ์" -#: js/musicutils.js:773 -#: js/synthutils.js:161 -#.TRANS: sound effect -msgid "crash" +#: js/blocks/WidgetBlocks.js:1503 +msgid "The Status block opens a tool for inspecting the status of Music Blocks as it is running." msgstr "" -#: js/musicutils.js:774 -#: js/synthutils.js:163 -#.TRANS: sound effect -msgid "bottle" +#: js/blocks/WidgetBlocks.js:1580 +#.TRANS: AI-generated music +msgid "aimusic" msgstr "" -#: js/musicutils.js:775 -#: js/synthutils.js:165 -#.TRANS: sound effect -msgid "clap" +#: js/turtleactions/MeterActions.js:101 +#: js/turtleactions/MeterActions.js:139 +msgid "beats per minute must be greater than" msgstr "" -#: js/musicutils.js:776 -#: js/synthutils.js:167 -#.TRANS: sound effect -msgid "slap" +#: js/turtleactions/MeterActions.js:111 +#: js/turtleactions/MeterActions.js:149 +msgid "maximum" msgstr "" -#: js/musicutils.js:777 -#: js/synthutils.js:169 -#.TRANS: sound effect -msgid "splash" +#: js/turtleactions/MeterActions.js:117 +#: js/turtleactions/MeterActions.js:155 +msgid "beats per minute is" msgstr "" -#: js/musicutils.js:778 -#: js/synthutils.js:171 -#.TRANS: sound effect -msgid "bubbles" +#: js/turtleactions/DictActions.js:75 +#: js/turtleactions/DictActions.js:142 +#: js/turtleactions/DictActions.js:172 +msgid "font" msgstr "" -#: js/musicutils.js:779 -#: js/synthutils.js:173 -#.TRANS: sound effect -msgid "raindrop" +#: js/turtleactions/DictActions.js:255 +msgid "Dictionary with this name does not exist" msgstr "" -#: js/musicutils.js:780 -#: js/synthutils.js:175 -#.TRANS: animal sound effect -msgid "cat" +#: js/turtleactions/DictActions.js:259 +msgid "Key with this name does not exist in " msgstr "" -#: js/musicutils.js:781 -#: js/synthutils.js:177 -#.TRANS: animal sound effect -msgid "cricket" +#: js/turtleactions/DrumActions.js:227 +msgid "Noise Block: Did you mean to use a Note block?" msgstr "" -#: js/musicutils.js:782 -#: js/synthutils.js:179 -#.TRANS: animal sound effect -msgid "dog" +#: js/turtleactions/IntervalsActions.js:113 +msgid "one" msgstr "" -#: js/musicutils.js:784 -#: js/synthutils.js:86 -#.TRANS: musical instrument -msgid "banjo" +#: js/turtleactions/IntervalsActions.js:113 +msgid "two" msgstr "" -#: js/musicutils.js:785 -#: js/synthutils.js:88 -#.TRANS: musical instrument -msgid "koto" +#: js/turtleactions/IntervalsActions.js:113 +msgid "three" msgstr "" -#: js/musicutils.js:786 -#: js/synthutils.js:90 -#.TRANS: musical instrument -msgid "dulcimer" +#: js/turtleactions/IntervalsActions.js:113 +msgid "four" msgstr "" -#: js/musicutils.js:787 -#: js/synthutils.js:92 -#.TRANS: musical instrument -msgid "electric guitar" +#: js/turtleactions/IntervalsActions.js:113 +msgid "five" msgstr "" -#: js/musicutils.js:788 -#: js/synthutils.js:94 -#.TRANS: musical instrument -msgid "bassoon" +#: js/turtleactions/IntervalsActions.js:113 +msgid "six" msgstr "" -#: js/musicutils.js:789 -#: js/synthutils.js:96 -#.TRANS: musical instrument -msgid "celeste" +#: js/turtleactions/IntervalsActions.js:113 +msgid "seven" msgstr "" -#: js/musicutils.js:791 -#: js/musicutils.js:1123 -#: js/musicutils.js:1131 -#: js/temperament.js:650 -#.TRANS: musical temperament -msgid "equal" +#: js/turtleactions/IntervalsActions.js:113 +msgid "eight" msgstr "" -#: js/musicutils.js:793 -#: js/musicutils.js:1125 -#: js/musicutils.js:1133 -#.TRANS: musical temperament -msgid "Pythagorean" +#: js/turtleactions/IntervalsActions.js:113 +msgid "nine" msgstr "" -#: js/musicutils.js:795 -#: js/musicutils.js:1124 -#: js/musicutils.js:1132 -#.TRANS: musical temperament -msgid "just intonation" +#: js/turtleactions/IntervalsActions.js:119 +msgid "a" msgstr "" -#: js/musicutils.js:797 -#: js/musicutils.js:1126 -#: js/musicutils.js:1127 -#: js/musicutils.js:1134 -#: js/musicutils.js:1135 -#.TRANS: musical temperament -msgid "meantone" +#: js/turtleactions/IntervalsActions.js:120 +msgid "below" msgstr "" -#: js/musicutils.js:814 -msgid "major 7th" +#: js/turtleactions/IntervalsActions.js:124 +msgid "above" msgstr "" -#: js/musicutils.js:815 -msgid "minor 7th" +#: js/turtleactions/IntervalsActions.js:131 +msgid "plus" msgstr "" -#: js/musicutils.js:816 -msgid "dominant 7th" +#: js/turtleactions/IntervalsActions.js:139 +msgid " below" msgstr "" -#: js/musicutils.js:817 -msgid "minor-major 7th" +#: js/turtleactions/IntervalsActions.js:257 +msgid "Adding missing pitch number 0." msgstr "" -#: js/musicutils.js:818 -msgid "fully-diminished 7th" +#: js/turtleactions/IntervalsActions.js:265 +msgid "Ignoring pitch numbers less than zero or greater than eleven." msgstr "" -#: js/musicutils.js:819 -msgid "half-diminished 7th" +#: js/turtleactions/IntervalsActions.js:271 +msgid "Ignoring duplicate pitch numbers." msgstr "" -#: js/musicutils.js:4379 -#: js/musicutils.js:4416 -msgid "current" +#: js/turtleactions/ToneActions.js:134 +msgid "Vibrato intensity must be between 1 and 100." msgstr "" -#: js/musicutils.js:4382 -#: js/musicutils.js:4407 -msgid "next" +#: js/turtleactions/ToneActions.js:139 +msgid "Vibrato rate must be greater than 0." msgstr "" -#: js/musicutils.js:4385 -#: js/musicutils.js:4412 -msgid "previous" +#: js/turtleactions/ToneActions.js:192 +#: js/turtleactions/ToneActions.js:265 +#.TRANS: Depth is the intesity of the tremolo or chorus effect. +msgid "Depth is out of range." msgstr "" -#: js/synthutils.js:104 -#.TRANS: simple monotone synthesizer -msgid "simple-2" +#: js/turtleactions/ToneActions.js:301 +msgid "Distortion must be from 0 to 100." msgstr "" -#: js/synthutils.js:106 -#.TRANS: simple monotone synthesizer -msgid "simple-3" +#: js/turtleactions/ToneActions.js:332 +#.TRANS: partials components in a harmonic series +msgid "Partial must be greater than or equal to 0." msgstr "" -#: js/synthutils.js:108 -#.TRANS: simple monotone synthesizer -msgid "simple-4" +#: js/turtleactions/ToneActions.js:378 +#: js/turtleactions/ToneActions.js:417 +#: js/turtleactions/ToneActions.js:456 +#: js/widgets/timbre.js:782 +msgid "Unable to use synth due to existing oscillator" msgstr "" -#: js/synthutils.js:141 -#.TRANS: musical instrument -msgid "taiko" +#: js/turtleactions/ToneActions.js:388 +#: js/turtleactions/ToneActions.js:427 +msgid "The input cannot be negative." msgstr "" -#: js/modewidget.js:86 -#: js/modewidget.js:88 -#: js/modewidget.js:642 -#: js/modewidget.js:644 -#: js/modewidget.js:712 -#: js/modewidget.js:714 -#: js/temperament.js:2078 -#: js/rhythmruler.js:189 -#: js/rhythmruler.js:1410 -#: js/rhythmruler.js:1412 -#: js/rhythmruler.js:1435 -#: js/rhythmruler.js:1437 -#: js/meterwidget.js:89 -#: js/meterwidget.js:91 +#: js/widgets/modewidget.js:86 +#: js/widgets/modewidget.js:88 +#: js/widgets/modewidget.js:642 +#: js/widgets/modewidget.js:644 +#: js/widgets/modewidget.js:712 +#: js/widgets/modewidget.js:714 +#: js/widgets/meterwidget.js:194 +#: js/widgets/meterwidget.js:196 +#: js/widgets/temperament.js:2236 +#: js/widgets/rhythmruler.js:457 +#: js/widgets/rhythmruler.js:1790 +#: js/widgets/rhythmruler.js:1792 +#: js/widgets/rhythmruler.js:1816 +#: js/widgets/rhythmruler.js:1818 msgid "Play all" msgstr "" -#: js/modewidget.js:115 -#: js/pitchstaircase.js:641 -#: js/phrasemaker.js:339 -#: js/pitchdrummatrix.js:94 -#: js/pitchslider.js:125 -#: js/temperament.js:2083 -#: js/musickeyboard.js:530 -#: js/timbre.js:756 -#: js/meterwidget.js:124 -#: js/arpeggio.js:103 +#: js/widgets/modewidget.js:115 +#: js/widgets/meterwidget.js:229 +#: js/widgets/pitchdrummatrix.js:166 +#: js/widgets/pitchslider.js:125 +#: js/widgets/pitchstaircase.js:641 +#: js/widgets/temperament.js:2244 +#: js/widgets/timbre.js:756 +#: js/widgets/arpeggio.js:103 +#: js/widgets/musickeyboard.js:688 +#: js/widgets/phrasemaker.js:550 msgid "Save" msgstr "" -#: js/modewidget.js:121 -#: js/pitchstaircase.js:686 -#: js/phrasemaker.js:356 -#: js/pitchdrummatrix.js:109 -#: js/musickeyboard.js:534 -#: js/rhythmruler.js:269 -#: js/arpeggio.js:118 +#: js/widgets/modewidget.js:121 +#: js/widgets/pitchdrummatrix.js:181 +#: js/widgets/pitchstaircase.js:686 +#: js/widgets/arpeggio.js:118 +#: js/widgets/musickeyboard.js:696 +#: js/widgets/phrasemaker.js:567 +#: js/widgets/rhythmruler.js:601 #.TRANS: clear all subdivisions from the ruler. msgid "Clear" msgstr "" -#: js/modewidget.js:127 +#: js/widgets/modewidget.js:127 msgid "Rotate counter clockwise" msgstr "" -#: js/modewidget.js:133 +#: js/widgets/modewidget.js:133 msgid "Rotate clockwise" msgstr "" -#: js/modewidget.js:139 +#: js/widgets/modewidget.js:139 msgid "Invert" msgstr "" -#: js/modewidget.js:145 -#: js/pitchstaircase.js:678 -#: js/rhythmruler.js:258 -#: js/timbre.js:963 +#: js/widgets/modewidget.js:145 +#: js/widgets/pitchstaircase.js:678 +#: js/widgets/timbre.js:963 +#: js/widgets/rhythmruler.js:578 msgid "Undo" msgstr "ยกเลิกคำสั่งเก่า" -#: js/modewidget.js:163 +#: js/widgets/modewidget.js:163 #.TRANS: A circle of notes represents the musical mode. msgid "Click in the circle to select notes for the mode." msgstr "" -#: js/modewidget.js:1017 -#: js/pitchstaircase.js:580 -#: js/phrasemaker.js:4855 -#: js/temperament.js:1754 -#: js/rhythmruler.js:1865 -#: js/rhythmruler.js:2081 -#: js/tempo.js:414 +#: js/widgets/modewidget.js:1017 +#: js/widgets/pitchstaircase.js:580 +#: js/widgets/temperament.js:1929 +#: js/widgets/tempo.js:414 +#: js/widgets/phrasemaker.js:5356 +#: js/widgets/rhythmruler.js:2254 +#: js/widgets/rhythmruler.js:2472 msgid "New action block generated!" msgstr "" -#: js/oscilloscope.js:79 -msgid "Zoom In" -msgstr "" - -#: js/oscilloscope.js:88 -msgid "Zoom Out" -msgstr "" - -#: js/pitchstaircase.js:624 -msgid "Play chord" +#: js/widgets/meterwidget.js:275 +msgid "Reset" msgstr "" -#: js/pitchstaircase.js:632 -msgid "Play scale" +#: js/widgets/meterwidget.js:301 +msgid "Click in the circle to select strong beats for the meter." msgstr "" -#: js/pitchstaircase.js:696 -msgid "Click on a note to create a new step." +#: js/widgets/oscilloscope.js:79 +msgid "Zoom In" msgstr "" -#: js/phrasemaker.js:363 -msgid "Export" +#: js/widgets/oscilloscope.js:88 +msgid "Zoom Out" msgstr "" -#: js/phrasemaker.js:370 -msgid "Sort" +#: js/widgets/pitchdrummatrix.js:356 +#: js/widgets/pitchdrummatrix.js:752 +msgid "Click in the grid to map notes to drums." msgstr "" -#: js/phrasemaker.js:373 -#: js/musickeyboard.js:559 -msgid "Add note" +#: js/widgets/pitchslider.js:103 +msgid "Move up" msgstr "" -#: js/phrasemaker.js:764 -msgid "Click on the table to add notes." +#: js/widgets/pitchslider.js:114 +msgid "Move down" msgstr "" -#: js/phrasemaker.js:2414 -#: js/phrasemaker.js:2543 -msgid "tuplet value" -msgstr "ค่าทูเปรท" - -#: js/pitchdrummatrix.js:270 -#: js/pitchdrummatrix.js:639 -msgid "Click in the grid to map notes to drums." +#: js/widgets/pitchslider.js:136 +msgid "Click on the slider to create a note block." msgstr "" -#: js/pitchslider.js:103 -msgid "Move up" +#: js/widgets/pitchstaircase.js:624 +msgid "Play chord" msgstr "" -#: js/pitchslider.js:114 -msgid "Move down" +#: js/widgets/pitchstaircase.js:632 +msgid "Play scale" msgstr "" -#: js/pitchslider.js:136 -msgid "Click on the slider to create a note block." +#: js/widgets/pitchstaircase.js:696 +msgid "Click on a note to create a new step." msgstr "" -#: js/temperament.js:215 +#: js/widgets/temperament.js:321 msgid "back to 2:1 octave space" msgstr "" -#: js/temperament.js:323 +#: js/widgets/temperament.js:447 msgid "edit" msgstr "" -#: js/temperament.js:330 -#: js/temperament.js:332 -#: js/temperament.js:1336 -#: js/temperament.js:1338 +#: js/widgets/temperament.js:454 +#: js/widgets/temperament.js:456 +#: js/widgets/temperament.js:1493 +#: js/widgets/temperament.js:1495 msgid "close" msgstr "" -#: js/temperament.js:423 -#: js/temperament.js:736 -#: js/temperament.js:743 -#: js/temperament.js:845 -#: js/temperament.js:935 -#: js/temperament.js:942 -#: js/temperament.js:1015 -#: js/temperament.js:1284 -#: js/temperament.js:1354 -#: js/temperament.js:1430 +#: js/widgets/temperament.js:552 +#: js/widgets/temperament.js:877 +#: js/widgets/temperament.js:884 +#: js/widgets/temperament.js:986 +#: js/widgets/temperament.js:1080 +#: js/widgets/temperament.js:1087 +#: js/widgets/temperament.js:1160 +#: js/widgets/temperament.js:1433 +#: js/widgets/temperament.js:1511 +#: js/widgets/temperament.js:1596 msgid "done" msgstr "" -#: js/temperament.js:477 -#: js/temperament.js:482 -#: js/temperament.js:918 +#: js/widgets/temperament.js:610 +#: js/widgets/temperament.js:615 +#: js/widgets/temperament.js:1063 msgid "ratio" msgstr "" -#: js/temperament.js:483 +#: js/widgets/temperament.js:616 msgid "interval" msgstr "" -#: js/temperament.js:611 +#: js/widgets/temperament.js:744 msgid "non scalar" msgstr "" -#: js/temperament.js:650 +#: js/widgets/temperament.js:787 msgid "ratios" msgstr "" -#: js/temperament.js:650 +#: js/widgets/temperament.js:787 msgid "arbitrary" msgstr "" -#: js/temperament.js:719 +#: js/widgets/temperament.js:860 msgid "number of divisions" msgstr "" -#: js/temperament.js:741 -#: js/temperament.js:858 -#: js/temperament.js:940 -#: js/temperament.js:1033 +#: js/widgets/temperament.js:882 +#: js/widgets/temperament.js:999 +#: js/widgets/temperament.js:1085 +#: js/widgets/temperament.js:1178 msgid "preview" msgstr "" -#: js/temperament.js:788 +#: js/widgets/temperament.js:929 msgid "The Number of divisions is too large." msgstr "" -#: js/temperament.js:921 +#: js/widgets/temperament.js:1066 msgid "recursion" msgstr "" -#: js/temperament.js:1450 +#: js/widgets/temperament.js:1616 msgid "The octave ratio has changed. This changes temperament significantly." msgstr "" -#: js/temperament.js:2087 +#: js/widgets/temperament.js:2248 msgid "Table" msgstr "" -#: js/temperament.js:2185 +#: js/widgets/temperament.js:2356 msgid "Add pitches" msgstr "" -#: js/musickeyboard.js:570 -msgid "Metronome" +#: js/widgets/tempo.js:78 +#: js/widgets/tempo.js:97 +#: js/widgets/tempo.js:99 +#: js/widgets/aiwidget.js:134 +#: js/widgets/aiwidget.js:136 +#: js/widgets/rhythmruler.js:681 +#: js/widgets/rhythmruler.js:683 +#: js/widgets/rhythmruler.js:1864 +#: js/widgets/rhythmruler.js:1866 +#: js/widgets/sampler.js:180 +#: js/widgets/sampler.js:182 +msgid "Pause" msgstr "" -#: js/musickeyboard.js:1296 -#: plugins/rodi.rtp:193 -msgid "duration" -msgstr "ช่วงเวลา" +#: js/widgets/tempo.js:113 +msgid "Save tempo" +msgstr "" -#: js/musickeyboard.js:2840 -msgid "New action blocks generated!" +#: js/widgets/tempo.js:144 +msgid "speed up" msgstr "" -#: js/musickeyboard.js:2841 -msgid "New action block generated" +#: js/widgets/tempo.js:150 +msgid "slow down" msgstr "" -#: js/musickeyboard.js:2984 -#: js/musickeyboard.js:2992 -msgid "MIDI device present." +#: js/widgets/tempo.js:194 +msgid "Adjust the tempo with the buttons." msgstr "" -#: js/musickeyboard.js:2995 -msgid "No MIDI device found." +#: js/widgets/tempo.js:261 +msgid "Please enter a number between 30 and 1000" msgstr "" -#: js/musickeyboard.js:3000 -msgid "Failed to get MIDI access in browser." +#: js/widgets/tempo.js:268 +#: js/widgets/tempo.js:271 +msgid "The beats per minute must be between 30 and 1000." msgstr "" -#: js/rhythmruler.js:202 -msgid "Save rhythms" +#: js/widgets/tempo.js:287 +msgid "The beats per minute must be below 1000." msgstr "" -#: js/rhythmruler.js:222 -msgid "Save drum machine" +#: js/widgets/tempo.js:303 +msgid "The beats per minute must be above 30" msgstr "" -#: js/rhythmruler.js:263 -#.TRANS: user can tap out a rhythm by clicking on a ruler. -msgid "Tap a rhythm" +#: js/widgets/timbre.js:766 +msgid "Synthesizer" msgstr "" -#: js/rhythmruler.js:342 -#: js/rhythmruler.js:344 -#: js/rhythmruler.js:1481 -#: js/rhythmruler.js:1483 -#: js/sampler.js:110 -#: js/sampler.js:112 -#: js/tempo.js:78 -#: js/tempo.js:97 -#: js/tempo.js:99 -msgid "Pause" +#: js/widgets/timbre.js:789 +msgid "Oscillator" msgstr "" -#: js/rhythmruler.js:478 -msgid "Click on the ruler to divide it." +#: js/widgets/timbre.js:840 +msgid "Envelope" msgstr "" -#: js/rhythmruler.js:603 -#: js/rhythmruler.js:605 -#: js/rhythmruler.js:804 -#: js/rhythmruler.js:806 -#: js/rhythmruler.js:1386 -#: js/rhythmruler.js:1388 -msgid "tap a rhythm" +#: js/widgets/timbre.js:886 +#: planet/js/GlobalTag.js:50 +#.TRANS: On the Planet, we use labels to tag projects. +msgid "Effects" msgstr "" -#: js/rhythmruler.js:1084 -msgid "Maximum value of 256 has been exceeded." +#: js/widgets/timbre.js:904 +msgid "Filter" msgstr "" -#: js/sampler.js:137 -msgid "Warning: Sample is bigger than 1MB." +#: js/widgets/timbre.js:946 +msgid "Add filter" msgstr "" -#: js/sampler.js:142 -msgid "Upload failed: Sample is not a .wav file." +#: js/widgets/timbre.js:987 +msgid "Click on buttons to open the timbre design tools." msgstr "" -#: js/sampler.js:164 -msgid "A new sample block was generated." +#: js/widgets/timbre.js:1273 +msgid "harmonicity" msgstr "" -#: js/sampler.js:255 -msgid "Upload sample" +#: js/widgets/timbre.js:1340 +#: js/widgets/timbre.js:1406 +msgid "modulation index" msgstr "" -#: js/sampler.js:306 -msgid "Save sample" +#: js/widgets/timbre.js:1484 +msgid "vibrato amount" msgstr "" -#: js/sampler.js:697 -#.TRANS: The reference tone is a sound used for comparison. -msgid "reference tone" +#: js/widgets/timbre.js:1919 +msgid "Filter already present." msgstr "" -#: js/tempo.js:113 -msgid "Save tempo" +#: js/widgets/timbre.js:2322 +msgid "delay (MS)" msgstr "" -#: js/tempo.js:144 -msgid "speed up" +#: js/widgets/timbre.js:2507 +msgid "distortion amount" msgstr "" -#: js/tempo.js:150 -msgid "slow down" +#: js/widgets/aiwidget.js:180 +#: js/widgets/sampler.js:227 +msgid "Warning: Sample is bigger than 1MB." msgstr "" -#: js/tempo.js:194 -msgid "Adjust the tempo with the buttons." +#: js/widgets/aiwidget.js:539 +msgid "New start block generated" msgstr "" -#: js/tempo.js:261 -msgid "Please enter a number between 30 and 1000" +#: js/widgets/aiwidget.js:541 +msgid "MIDI loading. This may take some time depending upon the number of notes in the track" msgstr "" -#: js/tempo.js:268 -#: js/tempo.js:271 -msgid "The beats per minute must be between 30 and 1000." +#: js/widgets/aiwidget.js:551 +#: js/widgets/sampler.js:254 +msgid "Upload failed: Sample is not a .wav file." msgstr "" -#: js/tempo.js:287 -msgid "The beats per minute must be below 1000." +#: js/widgets/aiwidget.js:679 +#: js/widgets/sampler.js:432 +msgid "Save sample" msgstr "" -#: js/tempo.js:303 -msgid "The beats per minute must be above 30" +#: js/widgets/aiwidget.js:701 +msgid "AI Music" msgstr "" -#: js/timbre.js:766 -msgid "Synthesizer" +#: js/widgets/arpeggio.js:239 +msgid "Click in the grid to add steps to the arpeggio." msgstr "" -#: js/timbre.js:789 -msgid "Oscillator" +#: js/widgets/help.js:95 +#: js/widgets/help.js:125 +#: js/widgets/help.js:146 +#: js/widgets/help.js:158 +#: js/widgets/help.js:376 +#: js/widgets/help.js:391 +msgid "Take a tour" msgstr "" -#: js/timbre.js:840 -msgid "Envelope" +#: js/widgets/musickeyboard.js:725 +#: js/widgets/phrasemaker.js:584 +msgid "Add note" msgstr "" -#: js/timbre.js:886 -#: js/GlobalTag.js:50 -#.TRANS: On the Planet, we use labels to tag projects. -msgid "Effects" +#: js/widgets/musickeyboard.js:744 +msgid "Metronome" msgstr "" -#: js/timbre.js:904 -msgid "Filter" +#: js/widgets/musickeyboard.js:1549 +#: plugins/rodi.rtp:193 +msgid "duration" +msgstr "ช่วงเวลา" + +#: js/widgets/musickeyboard.js:3179 +msgid "New action blocks generated" msgstr "" -#: js/timbre.js:946 -msgid "Add filter" +#: js/widgets/musickeyboard.js:3180 +msgid "New action block generated" msgstr "" -#: js/timbre.js:987 -msgid "Click on buttons to open the timbre design tools." +#: js/widgets/musickeyboard.js:3365 +#: js/widgets/musickeyboard.js:3373 +msgid "MIDI device present." msgstr "" -#: js/timbre.js:1273 -msgid "harmonicity" +#: js/widgets/musickeyboard.js:3376 +msgid "No MIDI device found." msgstr "" -#: js/timbre.js:1340 -#: js/timbre.js:1406 -msgid "modulation index" +#: js/widgets/musickeyboard.js:3386 +msgid "Failed to get MIDI access in browser." msgstr "" -#: js/timbre.js:1484 -msgid "vibrato amount" +#: js/widgets/phrasemaker.js:574 +msgid "Export" msgstr "" -#: js/timbre.js:1919 -msgid "Filter already present." +#: js/widgets/phrasemaker.js:581 +msgid "Sort" msgstr "" -#: js/timbre.js:2322 -msgid "delay (MS)" +#: js/widgets/phrasemaker.js:975 +msgid "Click on the table to add notes." msgstr "" -#: js/timbre.js:2507 -msgid "distortion amount" +#: js/widgets/phrasemaker.js:2677 +#: js/widgets/phrasemaker.js:2819 +msgid "tuplet value" +msgstr "ค่าทูเปรท" + +#: js/widgets/rhythmruler.js:486 +msgid "Save rhythms" msgstr "" -#: js/meterwidget.js:170 -msgid "Reset" +#: js/widgets/rhythmruler.js:512 +msgid "Save drum machine" msgstr "" -#: js/meterwidget.js:196 -msgid "Click in the circle to select strong beats for the meter." +#: js/widgets/rhythmruler.js:589 +#.TRANS: user can tap out a rhythm by clicking on a ruler. +msgid "Tap a rhythm" msgstr "" -#: js/arpeggio.js:239 -msgid "Click in the grid to add steps to the arpeggio." +#: js/widgets/rhythmruler.js:817 +msgid "Click on the ruler to divide it." msgstr "" -#: js/ProjectStorage.js:243 -msgid "anonymous" +#: js/widgets/rhythmruler.js:950 +#: js/widgets/rhythmruler.js:952 +#: js/widgets/rhythmruler.js:1152 +#: js/widgets/rhythmruler.js:1154 +#: js/widgets/rhythmruler.js:1765 +#: js/widgets/rhythmruler.js:1767 +msgid "tap a rhythm" msgstr "" -#: js/GlobalCard.js:68 -msgid "Share" +#: js/widgets/rhythmruler.js:1459 +msgid "Maximum value of 256 has been exceeded." +msgstr "" + +#: js/widgets/sampler.js:237 +msgid "Recording started..." msgstr "" -#: js/GlobalCard.js:74 -msgid "Flags" +#: js/widgets/sampler.js:245 +msgid "Recording complete..." msgstr "" -#: js/LocalCard.js:36 -msgid "View published project" +#: js/widgets/sampler.js:283 +msgid "A new sample block was generated." msgstr "" -#: js/LocalCard.js:42 -msgid "Publish project" +#: js/widgets/sampler.js:378 +msgid "Upload sample" msgstr "" -#: js/LocalCard.js:51 -msgid "Edit project" +#: js/widgets/sampler.js:399 +msgid "Warning: Your sample cannot be loaded because it is >1MB." msgstr "" -#: js/LocalCard.js:52 -msgid "Delete project" +#: js/widgets/sampler.js:448 +msgid "Toggle Mic" msgstr "" -#: js/LocalCard.js:53 -msgid "Download project" +#: js/widgets/sampler.js:458 +msgid "Playback" msgstr "" -#: js/LocalCard.js:55 -msgid "Duplicate project" +#: js/widgets/sampler.js:979 +#.TRANS: The reference tone is a sound used for comparison. +msgid "reference tone" msgstr "" -#: js/GlobalTag.js:28 +#: planet/js/GlobalTag.js:28 #.TRANS: On the Planet, we use labels to tag projects. msgid "All Projects" msgstr "" -#: js/GlobalTag.js:30 -#: js/StringHelper.js:37 +#: planet/js/GlobalTag.js:30 +#: planet/js/StringHelper.js:37 #.TRANS: On the Planet, we use labels to tag projects. msgid "My Projects" msgstr "" -#: js/GlobalTag.js:32 +#: planet/js/GlobalTag.js:32 #.TRANS: On the Planet, we use labels to tag projects. msgid "Examples" msgstr "" -#: js/GlobalTag.js:34 +#: planet/js/GlobalTag.js:34 #.TRANS: On the Planet, we use labels to tag projects. msgid "Music" msgstr "" -#: js/GlobalTag.js:36 +#: planet/js/GlobalTag.js:36 #.TRANS: On the Planet, we use labels to tag projects. msgid "Art" msgstr "" -#: js/GlobalTag.js:38 +#: planet/js/GlobalTag.js:38 #.TRANS: On the Planet, we use labels to tag projects. msgid "Math" msgstr "" -#: js/GlobalTag.js:40 +#: planet/js/GlobalTag.js:40 #.TRANS: On the Planet, we use labels to tag projects. msgid "Interactive" msgstr "" -#: js/GlobalTag.js:42 +#: planet/js/GlobalTag.js:42 #.TRANS: On the Planet, we use labels to tag projects. msgid "Design" msgstr "" -#: js/GlobalTag.js:44 +#: planet/js/GlobalTag.js:44 #.TRANS: On the Planet, we use labels to tag projects. msgid "Game" msgstr "" -#: js/GlobalTag.js:46 +#: planet/js/GlobalTag.js:46 #.TRANS: On the Planet, we use labels to tag projects. msgid "Media" msgstr "" -#: js/GlobalTag.js:48 +#: planet/js/GlobalTag.js:48 #.TRANS: On the Planet, we use labels to tag projects. msgid "Sensors" msgstr "" -#: js/GlobalTag.js:52 +#: planet/js/GlobalTag.js:52 #.TRANS: On the Planet, we use labels to tag projects. msgid "Code Snippet" msgstr "" -#: js/helper.js:149 -#: js/StringHelper.js:49 -msgid "Show more tags" +#: planet/js/LocalCard.js:36 +msgid "View published project" msgstr "" -#: js/helper.js:150 -msgid "Show fewer tags" +#: planet/js/LocalCard.js:42 +msgid "Publish project" +msgstr "" + +#: planet/js/LocalCard.js:51 +msgid "Edit project" +msgstr "" + +#: planet/js/LocalCard.js:52 +msgid "Delete project" +msgstr "" + +#: planet/js/LocalCard.js:53 +msgid "Download project" +msgstr "" + +#: planet/js/LocalCard.js:55 +msgid "Duplicate project" +msgstr "" + +#: planet/js/ProjectStorage.js:243 +msgid "anonymous" +msgstr "" + +#: planet/js/SaveInterface.js:34 +msgid "Open in Music Blocks" +msgstr "" + +#: planet/js/SaveInterface.js:35 +msgid "Open in Turtle Blocks" +msgstr "" + +#: planet/js/GlobalCard.js:68 +msgid "Share" +msgstr "" + +#: planet/js/GlobalCard.js:74 +msgid "Flags" +msgstr "" + +#: planet/js/GlobalPlanet.js:35 +msgid "No results found." +msgstr "" + +#: planet/js/GlobalPlanet.js:51 +msgid "Remix of" msgstr "" -#: js/ProjectViewer.js:30 +#: planet/js/GlobalPlanet.js:509 +msgid "Cannot connect to server" +msgstr "" + +#: planet/js/ProjectViewer.js:30 msgid "Error: Report could not be submitted. Try again later." msgstr "" -#: js/ProjectViewer.js:31 +#: planet/js/ProjectViewer.js:31 msgid "Thank you for reporting this project. A moderator will review the project shortly, to verify violation of the Sugar Labs Code of Conduct." msgstr "" -#: js/ProjectViewer.js:32 -#: js/StringHelper.js:62 -#: js/StringHelper.js:64 -#: js/StringHelper.js:68 +#: planet/js/ProjectViewer.js:32 +#: planet/js/StringHelper.js:62 +#: planet/js/StringHelper.js:64 +#: planet/js/StringHelper.js:68 msgid "Report Project" msgstr "" -#: js/ProjectViewer.js:33 -#: js/StringHelper.js:63 +#: planet/js/ProjectViewer.js:33 +#: planet/js/StringHelper.js:63 msgid "Project Reported" msgstr "" -#: js/ProjectViewer.js:34 +#: planet/js/ProjectViewer.js:34 msgid "Report description required" msgstr "" -#: js/ProjectViewer.js:35 +#: planet/js/ProjectViewer.js:35 msgid "Report description too long" msgstr "" -#: js/StringHelper.js:30 +#: planet/js/Publisher.js:30 +msgid "Feature unavailable - cannot connect to server. Reload Music Blocks to try again." +msgstr "" + +#: planet/js/Publisher.js:220 +#: planet/js/Publisher.js:237 +msgid "This field is required" +msgstr "" + +#: planet/js/Publisher.js:227 +msgid "Title too long" +msgstr "" + +#: planet/js/Publisher.js:244 +msgid "Description too long" +msgstr "" + +#: planet/js/Publisher.js:341 +msgid "Server Error" +msgstr "" + +#: planet/js/Publisher.js:341 +msgid "Try Again" +msgstr "" + +#: planet/js/StringHelper.js:30 msgid "Planet" msgstr "ดาวเคราะห์" -#: js/StringHelper.js:31 +#: planet/js/StringHelper.js:31 msgid "Close Planet" msgstr "" -#: js/StringHelper.js:32 +#: planet/js/StringHelper.js:32 msgid "Open project from file" msgstr "" -#: js/StringHelper.js:34 +#: planet/js/StringHelper.js:34 msgid "Local" msgstr "" -#: js/StringHelper.js:35 +#: planet/js/StringHelper.js:35 msgid "Global" msgstr "" -#: js/StringHelper.js:36 +#: planet/js/StringHelper.js:36 msgid "Search for a project" msgstr "" -#: js/StringHelper.js:38 +#: planet/js/StringHelper.js:38 msgid "Publish Project" msgstr "" -#: js/StringHelper.js:40 +#: planet/js/StringHelper.js:40 msgid "Tags (max 5)" msgstr "" -#: js/StringHelper.js:41 -#: js/StringHelper.js:61 +#: planet/js/StringHelper.js:41 +#: planet/js/StringHelper.js:61 msgid "Description" msgstr "" -#: js/StringHelper.js:42 -#: js/StringHelper.js:67 +#: planet/js/StringHelper.js:42 +#: planet/js/StringHelper.js:67 msgid "Submit" msgstr "" -#: js/StringHelper.js:43 -#: js/StringHelper.js:47 +#: planet/js/StringHelper.js:43 +#: planet/js/StringHelper.js:47 msgid "Cancel" msgstr "" -#: js/StringHelper.js:44 +#: planet/js/StringHelper.js:44 msgid "Delete \\"\\"?" msgstr "" -#: js/StringHelper.js:45 +#: planet/js/StringHelper.js:45 msgid "Permanently delete project \\"\\"?" msgstr "" -#: js/StringHelper.js:48 +#: planet/js/StringHelper.js:48 msgid "Explore Projects" msgstr "" -#: js/StringHelper.js:50 +#: planet/js/StringHelper.js:49 +#: planet/js/helper.js:149 +msgid "Show more tags" +msgstr "" + +#: planet/js/StringHelper.js:50 msgid "Most recent" msgstr "" -#: js/StringHelper.js:51 +#: planet/js/StringHelper.js:51 msgid "Most liked" msgstr "" -#: js/StringHelper.js:52 +#: planet/js/StringHelper.js:52 msgid "Most downloaded" msgstr "" -#: js/StringHelper.js:53 +#: planet/js/StringHelper.js:53 msgid "A-Z" msgstr "" -#: js/StringHelper.js:54 +#: planet/js/StringHelper.js:54 msgid "Sort by" msgstr "" -#: js/StringHelper.js:55 +#: planet/js/StringHelper.js:55 msgid "Load More Projects" msgstr "" -#: js/StringHelper.js:56 +#: planet/js/StringHelper.js:56 msgid "Last Updated" msgstr "" -#: js/StringHelper.js:57 +#: planet/js/StringHelper.js:57 msgid "Creation Date" msgstr "" -#: js/StringHelper.js:58 +#: planet/js/StringHelper.js:58 msgid "Number of Downloads:" msgstr "" -#: js/StringHelper.js:59 +#: planet/js/StringHelper.js:59 msgid "Number of Likes:" msgstr "" -#: js/StringHelper.js:60 +#: planet/js/StringHelper.js:60 msgid "Tags:" msgstr "" -#: js/StringHelper.js:65 +#: planet/js/StringHelper.js:65 msgid "Report projects which violate the Sugar Labs Code of Conduct." msgstr "" -#: js/StringHelper.js:66 +#: planet/js/StringHelper.js:66 msgid "Reason for reporting project" msgstr "" -#: js/StringHelper.js:70 +#: planet/js/StringHelper.js:70 msgid "Download as File" msgstr "" -#: js/GlobalPlanet.js:35 -msgid "No results found." -msgstr "" - -#: js/GlobalPlanet.js:51 -msgid "Remix of" -msgstr "" - -#: js/GlobalPlanet.js:509 -msgid "Cannot connect to server" -msgstr "" - -#: js/Publisher.js:30 -msgid "Feature unavailable - cannot connect to server. Reload Music Blocks to try again." -msgstr "" - -#: js/Publisher.js:218 -#: js/Publisher.js:235 -msgid "This field is required" -msgstr "" - -#: js/Publisher.js:225 -msgid "Title too long" +#: planet/js/helper.js:150 +msgid "Show fewer tags" msgstr "" -#: js/Publisher.js:242 -msgid "Description too long" -msgstr "" +#: plugins/accelerometer.rtp:48 +msgid "motion x" +msgstr "การเคลื่อนไหวx" -#: js/Publisher.js:339 -msgid "Server Error" -msgstr "" +#: plugins/accelerometer.rtp:56 +msgid "motion y" +msgstr "การเคลื่อนไหวy" -#: js/Publisher.js:339 -msgid "Try Again" -msgstr "" +#: plugins/accelerometer.rtp:64 +msgid "motion z" +msgstr "การเคลื่อนไหวz" -#: js/SaveInterface.js:34 -msgid "Open in Music Blocks" -msgstr "" +#: plugins/facebook.rtp:27 +msgid "publish" +msgstr "โพสสู่สาธารณะ" -#: js/SaveInterface.js:35 -msgid "Open in Turtle Blocks" -msgstr "" +#: plugins/maths.rtp:62 +msgid "power" +msgstr "ยกกำลัง" -#: plugins/weather.rtp:68 -#: plugins/weather.rtp:97 -msgid "Days ahead must be in the range of -1 to 5." -msgstr "" +#: plugins/maths.rtp:62 +msgid "base" +msgstr "ฐาน" -#: plugins/weather.rtp:122 -msgid "forecast" -msgstr "พยากรณ์" +#: plugins/maths.rtp:62 +msgid "exp" +msgstr "เลขยกกำลังในคณิตศาสตร์" -#: plugins/weather.rtp:123 -#: plugins/weather.rtp:137 -#: plugins/weather.rtp:150 -msgid "city" -msgstr "เมือง" +#: plugins/maths.rtp:99 +msgid "floor" +msgstr "พื้น" -#: plugins/weather.rtp:124 -#: plugins/weather.rtp:138 -#: plugins/weather.rtp:151 -msgid "day" -msgstr "วัน" +#: plugins/maths.rtp:104 +msgid "ceiling" +msgstr "เพดาน" -#: plugins/weather.rtp:136 -msgid "high" -msgstr "สูง" +#: plugins/maths.rtp:109 +msgid "to degrees" +msgstr "ถึงดีกรีที่" -#: plugins/weather.rtp:149 -msgid "low" -msgstr "ต่ำ" +#: plugins/maths.rtp:114 +msgid "to radians" +msgstr "รัศมี" #: plugins/nutrition.rtp:104 msgid "get calories" @@ -9465,45 +7753,6 @@ msgstr "คุกกี้" msgid "water" msgstr "น้ำ" -#: plugins/maths.rtp:62 -#: plugins/examples.rtp:93 -msgid "power" -msgstr "ยกกำลัง" - -#: plugins/maths.rtp:62 -#: plugins/examples.rtp:93 -msgid "base" -msgstr "ฐาน" - -#: plugins/maths.rtp:62 -#: plugins/examples.rtp:93 -msgid "exp" -msgstr "เลขยกกำลังในคณิตศาสตร์" - -#: plugins/maths.rtp:99 -#: plugins/examples.rtp:130 -msgid "floor" -msgstr "พื้น" - -#: plugins/maths.rtp:104 -#: plugins/examples.rtp:135 -msgid "ceiling" -msgstr "เพดาน" - -#: plugins/maths.rtp:109 -#: plugins/examples.rtp:140 -msgid "to degrees" -msgstr "ถึงดีกรีที่" - -#: plugins/maths.rtp:114 -#: plugins/examples.rtp:145 -msgid "to radians" -msgstr "รัศมี" - -#: plugins/facebook.rtp:27 -msgid "publish" -msgstr "โพสสู่สาธารณะ" - #: plugins/rodi.rtp:172 msgid "blink" msgstr "กระพริบตา" @@ -9532,17 +7781,68 @@ msgstr "แสงอินฟราเรท(ขวา)" msgid "move" msgstr "ย้าย" -#: plugins/accelerometer.rtp:48 -msgid "motion x" -msgstr "การเคลื่อนไหวx" +#: plugins/weather.rtp:68 +#: plugins/weather.rtp:97 +msgid "Days ahead must be in the range of -1 to 5." +msgstr "" -#: plugins/accelerometer.rtp:56 -msgid "motion y" -msgstr "การเคลื่อนไหวy" +#: plugins/weather.rtp:122 +msgid "forecast" +msgstr "พยากรณ์" -#: plugins/accelerometer.rtp:64 -msgid "motion z" -msgstr "การเคลื่อนไหวz" +#: plugins/weather.rtp:123 +#: plugins/weather.rtp:137 +#: plugins/weather.rtp:150 +msgid "city" +msgstr "เมือง" + +#: plugins/weather.rtp:124 +#: plugins/weather.rtp:138 +#: plugins/weather.rtp:151 +msgid "day" +msgstr "วัน" + +#: plugins/weather.rtp:136 +msgid "high" +msgstr "สูง" + +#: plugins/weather.rtp:149 +msgid "low" +msgstr "ต่ำ" + +#~msgid ""Toggle Fullscreen" +#~msgstr ""เติมหน้าจอเต็ม" + +#: js/toolbar.js:70 + +#: js/toolbar.js:130 + +#: js/toolbar.js:194 + +#: js/toolbar.js:249 + +#~msgid "Toggle JavaScript Editor" +#~msgstr "" + +#: js/EnsembleBlocks.js:643 + +#~msgid "The Turrle pitch block returns the current pitch number being played by the specified turtle." +#~msgstr "" + +#: js/PitchActions.js:88 + +#~msgid "The Scalar Step Block must be used inside of a Note Block." +#~msgstr "" + +#: js/PitchActions.js:107 + +#~msgid "The Scalar Step Block must be preceded by a Pitch Block." +#~msgstr "" + +#: js/musickeyboard.js:2840 + +#~msgid "New action blocks generated!" +#~msgstr "" #: js/toolbar.js:110 @@ -9884,11 +8184,6 @@ msgstr "การเคลื่อนไหวz" #~msgid "The Time block returns the number of seconds that the program has been running." #~msgstr "" -#: js/help.js:95 - -#~msgid "Take a tour" -#~msgstr "" - #: js/GlobalCard.js:48 #~msgid "More Details" @@ -12767,11 +11062,6 @@ msgstr "การเคลื่อนไหวz" #~msgid "The Repeat block will repeat the contained blocks. In this example, the note will be played 4 times." #~msgstr "" -#: js/musicutils.js:254 - -#~msgid "Custom" -#~msgstr "" - #: js/basicblocks.js:4785 #~msgid "Rhythm" diff --git a/po/tr.po b/po/tr.po index b793300f4a..72a252758e 100644 --- a/po/tr.po +++ b/po/tr.po @@ -2128,276 +2128,131 @@ #: js/planetInterface.js:104 #: js/planetInterface.js:104 #: js/planetInterface.js:104 -msgid "project undefined" -msgstr "" - -#: js/logo.js:61 -msgid "Not a valid pitch name" -msgstr "" - -#: js/logo.js:507 -#: js/ProgramBlocks.js:258 -#: js/ProgramBlocks.js:427 -msgid "You must select a file." -msgstr "" - -#: js/logo.js:1184 -#: js/turtles.js:118 -#: js/turtle-painter.js:1192 -#: js/turtle-painter.js:1193 -#: js/block.js:1463 -#: js/lilypond.js:757 -#: js/lilypond.js:921 -#: js/lilypond.js:959 -#: js/ActionBlocks.js:1223 -#: js/ProgramBlocks.js:1267 -msgid "start" -msgstr "" - -#: js/logo.js:1696 -msgid "Playback is ready." -msgstr "" - -#: js/blocks.js:1011 -#: js/blocks.js:3427 -#: js/blocks.js:3428 -#: js/blocks.js:3653 -#: js/blocks.js:4012 -#: js/blocks.js:4205 -#: js/blocks.js:5343 -#: js/blocks.js:6474 -#: js/palette.js:527 -#: js/palette.js:536 -#: js/palette.js:545 -#: js/palette.js:554 -#: js/palette.js:1131 -#: js/palette.js:1142 -#: js/palette.js:1153 -#: js/palette.js:1164 -#: js/palette.js:1183 -#: js/rubrics.js:529 -#: js/macros.js:170 -#: js/macros.js:266 -#: js/macros.js:267 -#: js/macros.js:276 -#: js/macros.js:828 -#: js/block.js:1449 -#: js/block.js:4164 -#: js/block.js:4182 -#: js/block.js:4193 -#: js/turtledefs.js:128 -#: js/turtledefs.js:230 -#: js/ActionBlocks.js:254 -#: js/ActionBlocks.js:307 -#: js/ActionBlocks.js:617 -#: js/ActionBlocks.js:716 -#: js/ActionBlocks.js:961 -#: js/ActionBlocks.js:1049 -#: js/ActionBlocks.js:1322 -#: js/ActionBlocks.js:1325 -#: js/ActionBlocks.js:1337 -#: js/ActionBlocks.js:1404 -#: js/MeterBlocks.js:715 -#: js/MeterBlocks.js:768 -#: js/MeterBlocks.js:831 -#: js/MeterBlocks.js:892 -#: js/phrasemaker.js:4412 -#: js/musickeyboard.js:2647 -#: js/rhythmruler.js:1928 -#: js/rhythmruler.js:1935 -#: js/rhythmruler.js:2119 -#: js/rhythmruler.js:2126 -msgid "action" +#: js/SaveInterface.js:59 +#: js/SaveInterface.js:61 +#: js/SaveInterface.js:93 +msgid "Music Blocks Project" msgstr "" -#: js/blocks.js:1205 -#: js/blocks.js:3380 -#: js/blocks.js:3770 -#: js/blocks.js:3801 -#: js/blocks.js:3850 -#: js/blocks.js:3885 -#: js/blocks.js:6497 -#: js/palette.js:509 -#: js/palette.js:638 -#: js/palette.js:1107 -#: js/BoxesBlocks.js:282 -#: js/BoxesBlocks.js:285 -#: js/BoxesBlocks.js:405 -#: js/BoxesBlocks.js:594 -msgid "box" -msgstr "kutu" - -#: js/blocks.js:1680 -msgid "Consider breaking this stack into parts." +#: js/SaveInterface.js:63 +msgid "This project was created in Music Blocks" msgstr "" -#: js/blocks.js:2408 -#: js/palette.js:653 -#: js/MediaBlocks.js:602 -msgid "open file" +#: js/SaveInterface.js:67 +msgid "Music Blocks is a Free/Libre Software application." msgstr "" -#: js/blocks.js:2415 -#: js/blocks.js:2423 -#: js/activity.js:1875 -msgid "audio file" +#: js/SaveInterface.js:69 +msgid "The source code can be accessed at" msgstr "" -#: js/blocks.js:2536 -#: js/blocks.js:3147 -#: js/block.js:3543 -msgid "on2" +#: js/SaveInterface.js:72 +msgid "For more information, please consult the" msgstr "" -#: js/blocks.js:2538 -#: js/blocks.js:3149 -#: js/block.js:3545 -msgid "off" +#: js/SaveInterface.js:76 +#: js/turtledefs.js:795 +msgid "Music Blocks Guide" msgstr "" -#: js/blocks.js:2543 -#: js/blocks.js:3154 -#: js/palette.js:618 -#: js/block.js:3466 -#: js/BooleanBlocks.js:77 -#: js/BooleanBlocks.js:167 -#: js/BooleanBlocks.js:251 -#: js/BooleanBlocks.js:335 -#: js/BooleanBlocks.js:433 -#: js/BooleanBlocks.js:539 -#: js/BooleanBlocks.js:640 -#: js/BooleanBlocks.js:741 -#: js/BooleanBlocks.js:847 -#: js/BooleanBlocks.js:948 -#: js/BooleanBlocks.js:1033 -#: js/SensorsBlocks.js:910 -msgid "true" +#: js/SaveInterface.js:83 +msgid "Alternatively, open the file in Music Blocks using the Load project button." msgstr "" -#: js/blocks.js:2545 -#: js/blocks.js:3156 -#: js/block.js:3466 -#: js/BooleanBlocks.js:79 -#: js/BooleanBlocks.js:169 -#: js/BooleanBlocks.js:253 -#: js/BooleanBlocks.js:337 -#: js/BooleanBlocks.js:435 -#: js/BooleanBlocks.js:541 -#: js/BooleanBlocks.js:642 -#: js/BooleanBlocks.js:743 -#: js/BooleanBlocks.js:849 -#: js/BooleanBlocks.js:950 -#: js/SensorsBlocks.js:912 -msgid "false" +#: js/SaveInterface.js:85 +msgid "Project Code" msgstr "" -#: js/blocks.js:3183 -#: js/palette.js:574 -#: js/MediaBlocks.js:892 -#: js/MediaBlocks.js:963 -msgid "text" +#: js/SaveInterface.js:87 +msgid "This code stores data about the blocks in a project." msgstr "" -#: js/blocks.js:3379 -#: js/palette.js:641 -#: js/palette.js:642 -#: js/BoxesBlocks.js:514 -msgid "store in box" +#: js/SaveInterface.js:89 +msgid "Show" msgstr "" -#: js/blocks.js:3384 -#: js/blocks.js:3824 -#: js/blocks.js:3859 -#: js/blocks.js:3894 -#: js/blocks.js:5773 -#: js/blocks.js:5794 -#: js/BoxesBlocks.js:772 -msgid "box1" +#: js/SaveInterface.js:91 +msgid "Hide" msgstr "" -#: js/blocks.js:3386 -#: js/blocks.js:3826 -#: js/blocks.js:3861 -#: js/blocks.js:3896 -#: js/blocks.js:5775 -#: js/blocks.js:5796 -#: js/BoxesBlocks.js:663 -msgid "box2" +#: js/SaveInterface.js:131 +#: js/SaveInterface.js:204 +#: js/SaveInterface.js:262 +#: js/SaveInterface.js:389 +#: js/SaveInterface.js:417 +#: js/activity.js:4884 +#: planet/js/ProjectStorage.js:27 +#: planet/js/GlobalPlanet.js:467 +#: planet/js/GlobalPlanet.js:469 +#: planet/js/GlobalPlanet.js:495 +#.TRANS: default project title when saving as Lilypond +msgid "My Project" msgstr "" -#: js/blocks.js:4058 -#: js/palette.js:639 -#: js/palette.js:644 -#: js/palette.js:1043 -#: js/BoxesBlocks.js:591 -msgid "store in" +#: js/SaveInterface.js:197 +#: planet/js/SaveInterface.js:58 +msgid "No description provided" msgstr "" -#: js/blocks.js:4058 -#: js/EnsembleBlocks.js:391 -#: js/EnsembleBlocks.js:402 -#: js/MediaBlocks.js:746 -#: js/ProgramBlocks.js:390 -#: js/ProgramBlocks.js:495 -#: js/ProgramBlocks.js:658 -#: js/BoxesBlocks.js:595 -#: js/PitchBlocks.js:656 -#: js/PitchBlocks.js:932 -#: js/PitchBlocks.js:1827 -#: js/ToneBlocks.js:1025 -#: js/DictBlocks.js:215 -#: js/DictBlocks.js:289 -msgid "name" +#: js/SaveInterface.js:332 +msgid "Your recording is in progress." msgstr "" -#: js/blocks.js:4058 -#: js/RhythmBlocks.js:1130 -#: js/BoxesBlocks.js:75 -#: js/BoxesBlocks.js:595 -#: js/HeapBlocks.js:544 -#: js/DictBlocks.js:289 -#: js/DictBlocks.js:430 -msgid "value" +#: js/SaveInterface.js:401 +#.TRANS: File name prompt for save as Lilypond +msgid "File name" msgstr "" -#: js/blocks.js:4907 -msgid "There is no block selected." +#: js/SaveInterface.js:403 +#: planet/js/StringHelper.js:39 +#.TRANS: Project title prompt for save as Lilypond +msgid "Project title" msgstr "" -#: js/blocks.js:5002 -#: js/MediaBlocks.js:888 -msgid "show" +#: js/SaveInterface.js:405 +#.TRANS: Project title prompt for save as Lilypond +msgid "Project author" msgstr "" -#: js/blocks.js:5005 -#: js/MediaBlocks.js:803 -#.TRANS: Avatar is the image used to determine the appearance of the mouse. -msgid "avatar" +#: js/SaveInterface.js:407 +#.TRANS: MIDI prompt for save as Lilypond +msgid "Include MIDI output?" msgstr "" -#: js/blocks.js:5008 -#: js/ToneBlocks.js:1010 -#: js/sampler.js:693 -#.TRANS: The sound sample that the user uploads. -msgid "sample" +#: js/SaveInterface.js:409 +#.TRANS: Guitar prompt for save as Lilypond +msgid "Include guitar tablature output?" msgstr "" -#: js/turtles.js:874 -msgid "Grid" +#: js/SaveInterface.js:411 +#.TRANS: Lilypond is a scripting language for generating sheet music +msgid "Save as Lilypond" msgstr "" -#: js/turtles.js:891 -#: js/turtledefs.js:626 -msgid "Clean" -msgstr "temizle" - -#: js/turtles.js:912 -#: js/turtledefs.js:632 -msgid "Collapse" +#: js/SaveInterface.js:426 +#: js/blocks/EnsembleBlocks.js:75 +#: js/blocks/EnsembleBlocks.js:154 +#: js/blocks/EnsembleBlocks.js:216 +#: js/blocks/EnsembleBlocks.js:302 +#: js/blocks/EnsembleBlocks.js:348 +#: js/blocks/EnsembleBlocks.js:389 +#: js/blocks/EnsembleBlocks.js:441 +#: js/blocks/EnsembleBlocks.js:490 +#: js/blocks/EnsembleBlocks.js:536 +#: js/blocks/EnsembleBlocks.js:583 +#: js/blocks/EnsembleBlocks.js:637 +#: js/blocks/EnsembleBlocks.js:753 +#: js/blocks/EnsembleBlocks.js:840 +#: js/blocks/EnsembleBlocks.js:899 +#: js/blocks/EnsembleBlocks.js:942 +#: js/blocks/EnsembleBlocks.js:1212 +#: js/blocks/EnsembleBlocks.js:1280 +#.TRANS: default project author when saving as Lilypond +msgid "Mr. Mouse" msgstr "" -#: js/turtles.js:940 -msgid "Expand" +#: js/SaveInterface.js:573 +msgid "The Lilypond code is copied to clipboard. You can paste it here: " msgstr "" #: js/languagebox.js:198 @@ -2408,6933 +2263,7487 @@ msgstr "" msgid "Music Blocks is already set to this language." msgstr "" -#: js/piemenus.js:200 -#: js/musicutils.js:808 -#: js/musicutils.js:824 -#: js/phrasemaker.js:1672 -#: js/musickeyboard.js:2041 -#: js/sampler.js:544 -#.TRANS: double sharp is a music term related to pitch -msgid "double sharp" +#: js/planetInterface.js:131 +msgid "project undefined" msgstr "" -#: js/piemenus.js:201 -#: js/PitchBlocks.js:1510 -#: js/PitchActions.js:580 -#: js/musicutils.js:806 -#: js/musicutils.js:825 -#: js/phrasemaker.js:1673 -#: js/musickeyboard.js:2042 -#: js/sampler.js:545 -#.TRANS: sharp is a half-step up in pitch -#.TRANS: sharp is a music term related to pitch -msgid "sharp" +#: js/rubrics.js:523 +#: js/turtledefs.js:119 +#: js/turtledefs.js:221 +#: js/blocks/RhythmBlockPaletteBlocks.js:52 +#: js/blocks/RhythmBlockPaletteBlocks.js:234 +#: js/blocks/ProgramBlocks.js:745 +#: js/widgets/rhythmruler.js:2057 +#: js/widgets/rhythmruler.js:2064 +#: js/widgets/rhythmruler.js:2133 +#: js/widgets/rhythmruler.js:2140 +#: js/widgets/rhythmruler.js:2219 +#.TRANS: an arrangement of notes based on duration +msgid "rhythm" msgstr "" -#: js/piemenus.js:202 -#: js/musicutils.js:804 -#: js/musicutils.js:826 -#: js/phrasemaker.js:1674 -#: js/musickeyboard.js:2043 -#: js/sampler.js:546 -#.TRANS: natural is a music term related to pitch -msgid "natural" +#: js/rubrics.js:524 +#: js/turtledefs.js:121 +#: js/turtledefs.js:223 +#: js/block-verbose.js:2622 +#: js/block.js:2550 +#: js/blocks/IntervalsBlocks.js:63 +#: js/blocks/SensorsBlocks.js:178 +#: js/blocks/PitchBlocks.js:1839 +#: js/blocks/PitchBlocks.js:1853 +#: js/widgets/musickeyboard.js:1935 +#: js/widgets/phrasemaker.js:1036 +#.TRANS: pitch number +#.TRANS: pitch number +#.TRANS: we specify pitch in terms of a name and an octave. The name can be CDEFGAB or Do Re Mi Fa Sol La Ti. Octave is a number between 1 and 8. +msgid "pitch" msgstr "" -#: js/piemenus.js:203 -#: js/PitchBlocks.js:1469 -#: js/PitchActions.js:583 -#: js/musicutils.js:802 -#: js/musicutils.js:827 -#: js/phrasemaker.js:1675 -#: js/musickeyboard.js:2044 -#: js/sampler.js:547 -#.TRANS: flat is a half-step down in pitch -#.TRANS: flat is a music term related to pitch -msgid "flat" +#: js/rubrics.js:525 +#: js/turtledefs.js:123 +#: js/turtledefs.js:225 +msgid "tone" msgstr "" -#: js/piemenus.js:204 -#: js/musicutils.js:800 -#: js/musicutils.js:828 -#: js/phrasemaker.js:1676 -#: js/musickeyboard.js:2045 -#: js/sampler.js:548 -#.TRANS: double flat is a music term related to pitch -msgid "double flat" +#: js/rubrics.js:526 +#: js/lilypond.js:605 +#: js/lilypond.js:904 +#: js/lilypond.js:910 +#: js/lilypond.js:948 +msgid "mouse" msgstr "" -#: js/piemenus.js:2861 -#: js/PitchBlocks.js:1357 -#: js/musicutils.js:627 -#.TRANS: unison means the note is the same as the current note -#.TRANS: unison is a music term related to intervals -msgid "unison" +#: js/rubrics.js:527 +#: js/turtledefs.js:132 +#: js/turtledefs.js:234 +#: js/widgets/phrasemaker.js:1040 +msgid "pen" msgstr "" -#: js/piemenus.js:3015 -#: js/piemenus.js:3088 -#: js/musicutils.js:635 -#: js/musicutils.js:810 -#: js/musicutils.js:912 -#.TRANS: major is a music term related to intervals and mode -msgid "major" -msgstr "" +#: js/rubrics.js:528 +#: js/turtledefs.js:133 +#: js/turtledefs.js:235 +#: js/blocks/NumberBlocks.js:981 +#: js/blocks/PitchBlocks.js:1717 +#: js/blocks/PitchBlocks.js:1758 +msgid "number" +msgstr "Sayılar" -#: js/piemenus.js:3015 -#: js/piemenus.js:3088 -#: js/musicutils.js:653 -#.TRANS: modal scale for music -msgid "ionian" +#: js/rubrics.js:529 +#: js/turtledefs.js:127 +#: js/turtledefs.js:229 +msgid "flow" msgstr "" -#: js/piemenus.js:3017 -#: js/piemenus.js:3092 -#: js/musicutils.js:633 -#: js/musicutils.js:811 -#: js/musicutils.js:909 -#.TRANS: minor is a music term related to intervals and mode -msgid "minor" +#: js/rubrics.js:530 +#: js/turtledefs.js:128 +#: js/turtledefs.js:230 +#: js/block-verbose.js:1609 +#: js/block-verbose.js:4559 +#: js/block-verbose.js:4577 +#: js/block-verbose.js:4588 +#: js/block.js:1573 +#: js/block.js:4483 +#: js/block.js:4501 +#: js/block.js:4512 +#: js/blocks.js:1018 +#: js/blocks.js:3491 +#: js/blocks.js:3492 +#: js/blocks.js:3717 +#: js/blocks.js:4076 +#: js/blocks.js:4269 +#: js/blocks.js:5432 +#: js/blocks.js:6563 +#: js/macros.js:170 +#: js/macros.js:266 +#: js/macros.js:267 +#: js/macros.js:276 +#: js/macros.js:828 +#: js/palette.js:527 +#: js/palette.js:536 +#: js/palette.js:545 +#: js/palette.js:554 +#: js/palette.js:1129 +#: js/palette.js:1140 +#: js/palette.js:1151 +#: js/palette.js:1162 +#: js/palette.js:1181 +#: js/blocks/ActionBlocks.js:254 +#: js/blocks/ActionBlocks.js:307 +#: js/blocks/ActionBlocks.js:617 +#: js/blocks/ActionBlocks.js:716 +#: js/blocks/ActionBlocks.js:961 +#: js/blocks/ActionBlocks.js:1049 +#: js/blocks/ActionBlocks.js:1322 +#: js/blocks/ActionBlocks.js:1325 +#: js/blocks/ActionBlocks.js:1337 +#: js/blocks/ActionBlocks.js:1404 +#: js/blocks/MeterBlocks.js:715 +#: js/blocks/MeterBlocks.js:768 +#: js/blocks/MeterBlocks.js:831 +#: js/blocks/MeterBlocks.js:892 +#: js/widgets/musickeyboard.js:2986 +#: js/widgets/phrasemaker.js:4913 +#: js/widgets/rhythmruler.js:2319 +#: js/widgets/rhythmruler.js:2326 +#: js/widgets/rhythmruler.js:2511 +#: js/widgets/rhythmruler.js:2518 +msgid "action" msgstr "" -#: js/piemenus.js:3017 -#: js/piemenus.js:3092 -#: js/musicutils.js:663 -#.TRANS: modal scale for music -msgid "aeolian" +#: js/rubrics.js:531 +#: js/turtledefs.js:136 +#: js/turtledefs.js:238 +msgid "sensors" msgstr "" -#: js/piemenus.js:3407 -msgid "Duplicate" +#: js/rubrics.js:532 +#: js/turtledefs.js:135 +#: js/turtledefs.js:237 +#: js/blocks/MediaBlocks.js:930 +msgid "media" msgstr "" -#: js/piemenus.js:3408 -#: js/turtledefs.js:534 -msgid "Extract" +#: js/rubrics.js:533 +msgid "mice" msgstr "" -#: js/piemenus.js:3409 -msgid "Move to trash" +#: js/toolbar.js:48 +#: js/toolbar.js:109 +msgid "About Music Blocks" msgstr "" -#: js/piemenus.js:3410 -#: js/timbre.js:968 -#: js/StringHelper.js:69 -msgid "Close" +#: js/toolbar.js:49 +#: js/toolbar.js:110 +#: js/toolbar.js:175 +#: js/toolbar.js:231 +#: js/turtledefs.js:445 +#: js/turtledefs.js:482 +#: js/activity.js:2660 +#: js/activity.js:2671 +#: js/activity.js:2902 +#: js/widgets/modewidget.js:77 +#: js/widgets/meterwidget.js:185 +#: js/widgets/pitchdrummatrix.js:147 +#: js/widgets/pitchdrummatrix.js:687 +#: js/widgets/pitchdrummatrix.js:689 +#: js/widgets/pitchdrummatrix.js:741 +#: js/widgets/pitchdrummatrix.js:743 +#: js/widgets/pitchdrummatrix.js:758 +#: js/widgets/pitchdrummatrix.js:760 +#: js/widgets/pitchdrummatrix.js:789 +#: js/widgets/pitchdrummatrix.js:791 +#: js/widgets/pitchstaircase.js:121 +#: js/widgets/temperament.js:610 +#: js/widgets/temperament.js:613 +#: js/widgets/temperament.js:673 +#: js/widgets/temperament.js:675 +#: js/widgets/temperament.js:2017 +#: js/widgets/temperament.js:2019 +#: js/widgets/tempo.js:84 +#: js/widgets/tempo.js:86 +#: js/widgets/timbre.js:432 +#: js/widgets/timbre.js:434 +#: js/widgets/timbre.js:465 +#: js/widgets/timbre.js:467 +#: js/widgets/timbre.js:746 +#: js/widgets/aiwidget.js:647 +#: js/widgets/aiwidget.js:654 +#: js/widgets/aiwidget.js:656 +#: js/widgets/arpeggio.js:90 +#: js/widgets/arpeggio.js:547 +#: js/widgets/arpeggio.js:549 +#: js/widgets/arpeggio.js:644 +#: js/widgets/arpeggio.js:646 +#: js/widgets/musickeyboard.js:676 +#: js/widgets/musickeyboard.js:872 +#: js/widgets/musickeyboard.js:874 +#: js/widgets/musickeyboard.js:953 +#: js/widgets/musickeyboard.js:955 +#: js/widgets/phrasemaker.js:513 +#: js/widgets/phrasemaker.js:523 +#: js/widgets/phrasemaker.js:525 +#: js/widgets/phrasemaker.js:4304 +#: js/widgets/phrasemaker.js:4528 +#: js/widgets/phrasemaker.js:4533 +#: js/widgets/phrasemaker.js:4535 +#: js/widgets/phrasemaker.js:4650 +#: js/widgets/rhythmruler.js:637 +#: js/widgets/rhythmruler.js:639 +#: js/widgets/rhythmruler.js:653 +#: js/widgets/rhythmruler.js:655 +#: js/widgets/sampler.js:162 +#: js/widgets/sampler.js:164 +#: js/widgets/sampler.js:363 +msgid "Play" msgstr "" -#: js/piemenus.js:3416 -msgid "Save stack" +#: js/toolbar.js:50 +#: js/toolbar.js:111 +#: js/toolbar.js:176 +#: js/toolbar.js:232 +#: js/turtledefs.js:451 +#: js/turtledefs.js:488 +#: js/activity.js:2679 +#: js/widgets/modewidget.js:99 +#: js/widgets/modewidget.js:101 +#: js/widgets/meterwidget.js:206 +#: js/widgets/meterwidget.js:208 +#: js/widgets/pitchdrummatrix.js:674 +#: js/widgets/pitchdrummatrix.js:676 +#: js/widgets/temperament.js:2002 +#: js/widgets/temperament.js:2004 +#: js/widgets/arpeggio.js:534 +#: js/widgets/arpeggio.js:536 +#: js/widgets/phrasemaker.js:534 +#: js/widgets/phrasemaker.js:536 +msgid "Stop" msgstr "" -#: js/piemenus.js:3420 -#: js/toolbar.js:60 -#: js/toolbar.js:120 -#: js/toolbar.js:185 -#: js/toolbar.js:240 -#: js/turtledefs.js:752 -msgid "Help" +#: js/toolbar.js:51 +#: js/toolbar.js:112 +#: js/toolbar.js:177 +#: js/toolbar.js:233 +#: js/turtledefs.js:498 +msgid "Record" msgstr "" -#: js/piemenus.js:3762 -msgid "You have chosen key " -msgstr "" +#: js/toolbar.js:52 +#: js/toolbar.js:53 +msgid "Full screen" +msgstr "" + +#: js/toolbar.js:54 +#: js/toolbar.js:115 +#: js/toolbar.js:180 +#: js/toolbar.js:236 +#: js/turtledefs.js:504 +msgid "Toggle Fullscreen" +msgstr "" + +#: js/toolbar.js:55 +#: js/toolbar.js:116 +#: js/toolbar.js:181 +#: js/toolbar.js:237 +#: js/turtledefs.js:510 +#: planet/js/StringHelper.js:33 +msgid "New project" +msgstr "" + +#: js/toolbar.js:56 +#: js/toolbar.js:117 +#: js/toolbar.js:182 +#: js/toolbar.js:238 +#: js/turtledefs.js:516 +msgid "Load project from file" +msgstr "" + +#: js/toolbar.js:57 +#: js/toolbar.js:118 +#: js/toolbar.js:119 +#: js/toolbar.js:183 +#: js/toolbar.js:239 +#: js/turtledefs.js:541 +#: js/turtledefs.js:550 +#: js/turtledefs.js:571 +msgid "Save project" +msgstr "" + +#: js/toolbar.js:58 +#: js/toolbar.js:77 +#: js/toolbar.js:79 +#: js/toolbar.js:138 +#: js/toolbar.js:147 +#: js/toolbar.js:149 +#: js/toolbar.js:184 +#: js/toolbar.js:202 +#: js/toolbar.js:204 +#: js/toolbar.js:240 +#: js/toolbar.js:258 +#: js/toolbar.js:260 +msgid "Save project as HTML" +msgstr "" + +#: js/toolbar.js:59 +#: js/toolbar.js:120 +#: js/toolbar.js:185 +#: js/toolbar.js:241 +msgid "Find and share projects" +msgstr "" + +#: js/toolbar.js:60 +#: js/toolbar.js:121 +#: js/toolbar.js:186 +#: js/toolbar.js:242 +msgid "Offline. Sharing is unavailable" +msgstr "" + +#: js/toolbar.js:61 +#: js/toolbar.js:122 +#: js/toolbar.js:187 +#: js/toolbar.js:243 +msgid "Auxiliary menu" +msgstr "" + +#: js/toolbar.js:62 +#: js/toolbar.js:123 +#: js/toolbar.js:188 +#: js/toolbar.js:244 +#: js/turtledefs.js:752 +#: js/piemenus.js:3423 +msgid "Help" +msgstr "" + +#: js/toolbar.js:63 +#: js/toolbar.js:124 +#: js/toolbar.js:189 +#: js/toolbar.js:245 +msgid "Run slowly" +msgstr "" + +#: js/toolbar.js:64 +#: js/toolbar.js:125 +#: js/toolbar.js:190 +#: js/toolbar.js:246 +#: js/turtledefs.js:682 +msgid "Run step by step" +msgstr "" + +#: js/toolbar.js:65 +#: js/toolbar.js:126 +#: js/toolbar.js:191 +#: js/toolbar.js:247 +#: js/turtledefs.js:689 +msgid "Display statistics" +msgstr "" + +#: js/toolbar.js:66 +#: js/toolbar.js:127 +#: js/toolbar.js:192 +#: js/toolbar.js:248 +msgid "Load plugin" +msgstr "" + +#: js/toolbar.js:67 +#: js/toolbar.js:128 +#: js/toolbar.js:193 +#: js/toolbar.js:249 +#: js/turtledefs.js:696 +msgid "Delete plugin" +msgstr "" + +#: js/toolbar.js:68 +#: js/toolbar.js:129 +#: js/toolbar.js:194 +#: js/toolbar.js:250 +msgid "Enable horizontal scrolling" +msgstr "" + +#: js/toolbar.js:69 +#: js/toolbar.js:130 +#: js/toolbar.js:195 +#: js/toolbar.js:251 +msgid "Disable horizontal scrolling" +msgstr "" + +#: js/toolbar.js:70 +#: js/toolbar.js:131 +#: js/toolbar.js:196 +#: js/toolbar.js:252 +#: planet/js/LocalCard.js:54 +#: planet/js/StringHelper.js:71 +msgid "Merge with current project" +msgstr "" + +#: js/toolbar.js:71 +#: js/toolbar.js:132 +msgid "Set Pitch Preview" +msgstr "" + +#: js/toolbar.js:72 +#: js/toolbar.js:133 +#: js/toolbar.js:197 +#: js/toolbar.js:253 +msgid "JavaScript Editor" +msgstr "" + +#: js/toolbar.js:73 +#: js/toolbar.js:134 +#: js/toolbar.js:198 +#: js/toolbar.js:254 +#: js/turtledefs.js:724 +msgid "Restore" +msgstr "" + +#: js/toolbar.js:74 +#: js/toolbar.js:135 +#: js/toolbar.js:199 +#: js/toolbar.js:255 +msgid "Switch to beginner mode" +msgstr "" + +#: js/toolbar.js:75 +#: js/toolbar.js:136 +#: js/toolbar.js:200 +#: js/toolbar.js:256 +msgid "Switch to advanced mode" +msgstr "" + +#: js/toolbar.js:76 +#: js/toolbar.js:137 +#: js/toolbar.js:146 +#: js/toolbar.js:201 +#: js/toolbar.js:257 +#: js/turtledefs.js:738 +msgid "Select language" +msgstr "" + +#: js/toolbar.js:78 +#: js/toolbar.js:81 +#: js/toolbar.js:140 +#: js/turtledefs.js:579 +msgid "Save mouse artwork as PNG" +msgstr "" + +#: js/toolbar.js:80 +#: js/toolbar.js:139 +#: js/turtledefs.js:575 +msgid "Save mouse artwork as SVG" +msgstr "" + +#: js/toolbar.js:82 +#: js/toolbar.js:141 +#: js/turtledefs.js:583 +msgid "Save music as WAV" +msgstr "" + +#: js/toolbar.js:83 +#: js/toolbar.js:142 +#: js/turtledefs.js:587 +msgid "Save sheet music as ABC" +msgstr "" + +#: js/toolbar.js:84 +#: js/toolbar.js:143 +#: js/turtledefs.js:591 +msgid "Save sheet music as Lilypond" +msgstr "" + +#: js/toolbar.js:85 +msgid "Save sheet music as MusicXML" +msgstr "" + +#: js/toolbar.js:86 +#: js/toolbar.js:144 +#: js/toolbar.js:152 +#: js/toolbar.js:207 +#: js/toolbar.js:263 +#: js/turtledefs.js:562 +#: js/turtledefs.js:595 +msgid "Save block artwork as SVG" +msgstr "" + +#: js/toolbar.js:87 +#: js/toolbar.js:145 +#: js/toolbar.js:153 +#: js/toolbar.js:208 +#: js/toolbar.js:264 +#: js/turtles.js:911 +msgid "Confirm" +msgstr "" + +#: js/toolbar.js:88 +#: js/toolbar.js:154 +#: js/toolbar.js:209 +#: js/toolbar.js:265 +msgid "English (United States)" +msgstr "" + +#: js/toolbar.js:89 +#: js/toolbar.js:155 +#: js/toolbar.js:210 +#: js/toolbar.js:266 +msgid "English (United Kingdom)" +msgstr "" + +#: js/toolbar.js:90 +#: js/toolbar.js:156 +#: js/toolbar.js:211 +#: js/toolbar.js:267 +msgid "日本語" +msgstr "" + +#: js/toolbar.js:91 +msgid "한국어" +msgstr "" + +#: js/toolbar.js:92 +#: js/toolbar.js:158 +#: js/toolbar.js:213 +#: js/toolbar.js:269 +msgid "español" +msgstr "" + +#: js/toolbar.js:93 +#: js/toolbar.js:159 +#: js/toolbar.js:214 +#: js/toolbar.js:270 +msgid "português" +msgstr "" + +#: js/toolbar.js:94 +#: js/toolbar.js:160 +#: js/toolbar.js:215 +#: js/toolbar.js:271 +msgid "にほんご" +msgstr "" + +#: js/toolbar.js:95 +#: js/toolbar.js:161 +#: js/toolbar.js:216 +#: js/toolbar.js:272 +msgid "中文" +msgstr "" + +#: js/toolbar.js:96 +#: js/toolbar.js:162 +#: js/toolbar.js:217 +#: js/toolbar.js:273 +msgid "ภาษาไทย" +msgstr "" + +#: js/toolbar.js:97 +#: js/toolbar.js:163 +#: js/toolbar.js:218 +#: js/toolbar.js:274 +msgid "aymara" +msgstr "" + +#: js/toolbar.js:98 +#: js/toolbar.js:164 +#: js/toolbar.js:219 +#: js/toolbar.js:275 +msgid "quechua" +msgstr "" + +#: js/toolbar.js:99 +#: js/toolbar.js:165 +#: js/toolbar.js:220 +#: js/toolbar.js:276 +msgid "guarani" +msgstr "" + +#: js/toolbar.js:100 +#: js/toolbar.js:166 +#: js/toolbar.js:221 +#: js/toolbar.js:277 +msgid "हिंदी" +msgstr "" + +#: js/toolbar.js:101 +#: js/toolbar.js:168 +#: js/toolbar.js:222 +#: js/toolbar.js:279 +msgid "igbo" +msgstr "" + +#: js/toolbar.js:102 +#: js/toolbar.js:169 +#: js/toolbar.js:223 +#: js/toolbar.js:280 +msgid "عربى" +msgstr "" + +#: js/toolbar.js:103 +#: js/toolbar.js:167 +#: js/toolbar.js:224 +#: js/toolbar.js:278 +msgid "తెలుగు" +msgstr "" + +#: js/toolbar.js:104 +#: js/toolbar.js:170 +#: js/toolbar.js:225 +#: js/toolbar.js:281 +msgid "עִברִית" +msgstr "" + +#: js/toolbar.js:113 +#: js/toolbar.js:114 +#: js/toolbar.js:178 +#: js/toolbar.js:179 +#: js/toolbar.js:234 +#: js/toolbar.js:235 +msgid "Full Screen" +msgstr "" + +#: js/toolbar.js:148 +#: js/toolbar.js:151 +#: js/toolbar.js:203 +#: js/toolbar.js:206 +#: js/toolbar.js:259 +#: js/toolbar.js:262 +#: js/turtledefs.js:558 +msgid "Save turtle artwork as PNG" +msgstr "" + +#: js/toolbar.js:150 +#: js/toolbar.js:205 +#: js/toolbar.js:261 +#: js/turtledefs.js:554 +msgid "Save turtle artwork as SVG" +msgstr "" + +#: js/toolbar.js:157 +#: js/toolbar.js:212 +#: js/toolbar.js:268 +msgid "한국인" +msgstr "" + +#: js/toolbar.js:174 +#: js/toolbar.js:230 +msgid "About Turtle Blocks" +msgstr "" + +#: js/toolbar.js:446 +#: js/toolbar.js:457 +#: js/toolbar.js:497 +msgid "Turtle Wrap Off" +msgstr "" + +#: js/toolbar.js:466 +#: js/toolbar.js:506 +msgid "Turtle Wrap On" +msgstr "" + +#: js/turtle-painter.js:1192 +#: js/turtle-painter.js:1193 +#: js/turtles.js:118 +#: js/block-verbose.js:1623 +#: js/block.js:1587 +#: js/lilypond.js:749 +#: js/lilypond.js:913 +#: js/lilypond.js:951 +#: js/logo.js:1184 +#: js/blocks/ActionBlocks.js:1223 +#: js/blocks/ProgramBlocks.js:1267 +msgid "start" +msgstr "" + +#: js/turtledefs.js:40 +#.TRANS: put the URL to the guide here, e.g., https://github.com/sugarlabs/turtleblocksjs/tree/master/guide/README.md +msgid "guide url" +msgstr "" + +#: js/turtledefs.js:85 +#: js/turtledefs.js:437 +msgid "Turtle Blocks is a Logo-inspired turtle that draws colorful pictures with snap-together visual-programming blocks." +msgstr "" + +#: js/turtledefs.js:118 +#: js/turtledefs.js:220 +msgid "search" +msgstr "" + +#: js/turtledefs.js:120 +#: js/turtledefs.js:222 +#: js/blocks/MeterBlocks.js:1343 +#: js/blocks/WidgetBlocks.js:522 +#.TRANS: musical meter (time signature), e.g., 4:4 +msgid "meter" +msgstr "" + +#: js/turtledefs.js:122 +#: js/turtledefs.js:224 +msgid "intervals" +msgstr "" + +#: js/turtledefs.js:124 +#: js/turtledefs.js:226 +msgid "ornament" +msgstr "" + +#: js/turtledefs.js:125 +#: js/turtledefs.js:227 +#: js/blocks/VolumeBlocks.js:362 +#: js/blocks/VolumeBlocks.js:502 +#: js/blocks/VolumeBlocks.js:545 +msgid "volume" +msgstr "" + +#: js/turtledefs.js:126 +#: js/turtledefs.js:228 +#: js/block-verbose.js:1700 +#: js/block-verbose.js:2626 +#: js/block.js:1664 +#: js/block.js:2554 +#: js/lilypond.js:732 +#: js/lilypond.js:897 +#: js/lilypond.js:941 +#: js/palette.js:577 +#: js/blocks/RhythmBlocks.js:766 +#: js/blocks/DrumBlocks.js:477 +#: js/blocks/VolumeBlocks.js:502 +#: js/widgets/phrasemaker.js:1038 +msgid "drum" +msgstr "" + +#: js/turtledefs.js:129 +#: js/turtledefs.js:231 +msgid "boxes" +msgstr "" + +#: js/turtledefs.js:130 +#: js/turtledefs.js:232 +msgid "widgets" +msgstr "" + +#: js/turtledefs.js:131 +#: js/turtledefs.js:233 +#: js/widgets/phrasemaker.js:1039 +msgid "graphics" +msgstr "" + +#: js/turtledefs.js:134 +#: js/turtledefs.js:236 +msgid "boolean" +msgstr "" + +#: js/turtledefs.js:137 +#: js/turtledefs.js:239 +#: js/blocks/HeapBlocks.js:59 +#: js/widgets/status.js:147 +msgid "heap" +msgstr "" + +#: js/turtledefs.js:138 +#: js/turtledefs.js:240 +#: js/blocks/DictBlocks.js:142 +#: js/blocks/ProgramBlocks.js:495 +msgid "dictionary" +msgstr "" + +#: js/turtledefs.js:139 +#: js/turtledefs.js:241 +msgid "ensemble" +msgstr "" + +#: js/turtledefs.js:140 +#: js/turtledefs.js:242 +msgid "extras" +msgstr "" + +#: js/turtledefs.js:142 +#: js/turtledefs.js:244 +#.TRANS: program as in computer program +#.TRANS: program as in computer program +msgid "program" +msgstr "" + +#: js/turtledefs.js:143 +#: js/turtledefs.js:245 +msgid "my blocks" +msgstr "" + +#: js/turtledefs.js:185 +#: js/turtledefs.js:281 +msgid "artwork" +msgstr "" + +#: js/turtledefs.js:185 +#: js/turtledefs.js:281 +msgid "logic" +msgstr "" + +#: js/turtledefs.js:185 +#: js/turtledefs.js:281 +msgid "music" +msgstr "" + +#: js/turtledefs.js:187 +#: js/turtledefs.js:463 +msgid "Music Blocks is a collection of tools for exploring fundamental musical concepts in a fun way." +msgstr "" + +#: js/turtledefs.js:436 +msgid "Welcome to Turtle Blocks" +msgstr "" + +#: js/turtledefs.js:438 +#: js/turtledefs.js:465 +#: js/turtledefs.js:774 +#: js/turtledefs.js:805 +msgid "The current version is" +msgstr "" + +#: js/turtledefs.js:446 +#: js/turtledefs.js:483 +msgid "Click the run button to run the project in fast mode." +msgstr "" + +#: js/turtledefs.js:452 +msgid "Stop the turtle." +msgstr "" + +#: js/turtledefs.js:454 +#: js/turtledefs.js:491 +msgid "You can also type Alt-S to stop." +msgstr "" + +#: js/turtledefs.js:462 +#: js/widgets/help.js:333 +msgid "Welcome to Music Blocks" +msgstr "" + +#: js/turtledefs.js:472 +#: js/widgets/help.js:334 +msgid "Meet Mr. Mouse!" +msgstr "" + +#: js/turtledefs.js:473 +msgid "Mr Mouse is our Music Blocks conductor." +msgstr "" + +#: js/turtledefs.js:475 +msgid "Mr Mouse encourages you to explore Music Blocks." +msgstr "" + +#: js/turtledefs.js:477 +msgid "Let us start our tour!" +msgstr "" + +#: js/turtledefs.js:489 +msgid "Stop the music (and the mice)." +msgstr "" + +#: js/turtledefs.js:499 +msgid "Record your project as video." +msgstr "" + +#: js/turtledefs.js:505 +msgid "Toggle Fullscreen mode." +msgstr "" + +#: js/turtledefs.js:511 +msgid "Initialize a new project." +msgstr "" + +#: js/turtledefs.js:517 +msgid "You can also load projects from the file system." +msgstr "" + +#: js/turtledefs.js:522 +#: planet/js/StringHelper.js:46 +msgid "Delete" +msgstr "" + +#: js/turtledefs.js:523 +msgid "To delete a block, just right-click on it, then you will be able to see the delete option" +msgstr "" + +#: js/turtledefs.js:528 +#: js/activity.js:2649 +#: planet/js/LocalCard.js:31 +msgid "Copy" +msgstr "" + +#: js/turtledefs.js:529 +msgid "To copy a block, just right-click on it, then you will be able to see the copy option" +msgstr "" + +#: js/turtledefs.js:534 +#: js/piemenus.js:3411 +msgid "Extract" +msgstr "" + +#: js/turtledefs.js:535 +msgid "To extract a block, just right-click on it, then you will be able to see the extract option" +msgstr "" + +#: js/turtledefs.js:542 +#: js/turtledefs.js:552 +#: js/turtledefs.js:573 +msgid "Save your project to a file." +msgstr "" + +#: js/turtledefs.js:549 +#: js/turtledefs.js:570 +msgid "save" +msgstr "" + +#: js/turtledefs.js:556 +#: js/turtledefs.js:577 +msgid "Save graphics from your project to as SVG." +msgstr "" + +#: js/turtledefs.js:560 +#: js/turtledefs.js:581 +msgid "Save graphics from your project as PNG." +msgstr "" + +#: js/turtledefs.js:564 +#: js/turtledefs.js:597 +msgid "Save block artwork as an SVG file." +msgstr "" + +#: js/turtledefs.js:585 +msgid "Save audio from your project as WAV." +msgstr "" + +#: js/turtledefs.js:589 +msgid "Save your project to as an ABC file." +msgstr "" + +#: js/turtledefs.js:593 +msgid "Save your project to as a Lilypond file." +msgstr "" + +#: js/turtledefs.js:604 +msgid "Load samples from server" +msgstr "" + +#: js/turtledefs.js:605 +msgid "This button opens a viewer for loading example projects." +msgstr "" + +#: js/turtledefs.js:611 +msgid "Palette buttons" +msgstr "" + +#: js/turtledefs.js:612 +msgid "This toolbar contains the palette buttons including Rhythm Pitch Tone Action and more." +msgstr "" + +#: js/turtledefs.js:614 +msgid "Click to show the palettes of blocks and drag blocks from the palettes onto the canvas to use them." +msgstr "" + +#: js/turtledefs.js:620 +msgid "Cartesian/Polar" +msgstr "" + +#: js/turtledefs.js:621 +msgid "Show or hide a coordinate grid." +msgstr "" + +#: js/turtledefs.js:626 +#: js/turtles.js:902 +msgid "Clean" +msgstr "temizle" + +#: js/turtledefs.js:627 +msgid "Clear the screen and return the mice to their initial positions." +msgstr "" + +#: js/turtledefs.js:632 +#: js/turtles.js:955 +msgid "Collapse" +msgstr "" + +#: js/turtledefs.js:633 +msgid "Collapse the graphics window." +msgstr "" + +#: js/turtledefs.js:638 +#: js/activity.js:5684 +msgid "Home" +msgstr "" + +#: js/turtledefs.js:639 +msgid "Return all blocks to the center of the screen." +msgstr "" + +#: js/turtledefs.js:644 +msgid "Show/hide blocks" +msgstr "" + +#: js/turtledefs.js:645 +msgid "Hide or show the blocks and the palettes." +msgstr "" + +#: js/turtledefs.js:650 +msgid "Expand/collapse collapsable blocks" +msgstr "" + +#: js/turtledefs.js:651 +msgid "Expand or collapse start and action stacks." +msgstr "" + +#: js/turtledefs.js:658 +#: js/activity.js:5704 +msgid "Decrease block size" +msgstr "" + +#: js/turtledefs.js:659 +msgid "Decrease the size of the blocks." +msgstr "" + +#: js/turtledefs.js:664 +#: js/activity.js:5710 +msgid "Increase block size" +msgstr "" + +#: js/turtledefs.js:665 +msgid "Increase the size of the blocks." +msgstr "" -#: js/piemenus.js:3766 -msgid " for your pitch preview." +#: js/turtledefs.js:670 +msgid "Expand/collapse option toolbar" msgstr "" -#: js/palette.js:571 -msgid "grid" +#: js/turtledefs.js:671 +msgid "Click this button to expand or collapse the auxillary toolbar." msgstr "" -#: js/palette.js:577 -#: js/block.js:1540 -#: js/block.js:2343 -#: js/turtledefs.js:126 -#: js/turtledefs.js:228 -#: js/lilypond.js:740 -#: js/lilypond.js:905 -#: js/lilypond.js:949 -#: js/DrumBlocks.js:486 -#: js/RhythmBlocks.js:766 -#: js/VolumeBlocks.js:502 -#: js/phrasemaker.js:823 -msgid "drum" +#: js/turtledefs.js:676 +msgid "Run slow" msgstr "" -#: js/palette.js:580 -msgid "effect" +#: js/turtledefs.js:677 +msgid "Click to run the project in slow mode." msgstr "" -#: js/palette.js:586 -msgid "sargam" +#: js/turtledefs.js:683 +msgid "Click to run the project step by step." msgstr "" -#: js/palette.js:589 -#: js/activity.js:1833 -#: js/RhythmBlocks.js:923 -#: js/PitchBlocks.js:442 -#: js/PitchBlocks.js:1748 -#.TRANS: a numeric mapping of the notes in an octave based on the musical mode -msgid "scale degree" +#: js/turtledefs.js:690 +msgid "Display statistics about your Music project." msgstr "" -#: js/palette.js:592 -#: js/activity.js:1860 -msgid "mode name" +#: js/turtledefs.js:697 +msgid "Delete a selected plugin." msgstr "" -#: js/palette.js:595 -#: js/activity.js:1839 -msgid "invert mode" +#: js/turtledefs.js:704 +msgid "Enable scrolling" msgstr "" -#: js/palette.js:598 -#: js/activity.js:1836 -msgid "voice name" +#: js/turtledefs.js:705 +msgid "You can scroll the blocks on the canvas." msgstr "" -#: js/palette.js:601 -#: js/PitchBlocks.js:1181 -msgid "custom pitch" +#: js/turtledefs.js:714 +msgid "Wrap Turtle" msgstr "" -#: js/palette.js:605 -#: js/block.js:1456 -#: js/block.js:1575 -#: js/WidgetBlocks.js:218 -#: js/IntervalsBlocks.js:63 -msgid "temperament" +#: js/turtledefs.js:715 +msgid "Turn Turtle wrapping On or Off." msgstr "" -#: js/palette.js:609 -msgid "accidental" +#: js/turtledefs.js:725 +msgid "Restore blocks from the trash." msgstr "" -#: js/palette.js:615 -#: js/activity.js:1866 -msgid "interval name" +#: js/turtledefs.js:732 +msgid "Switch mode" msgstr "" -#: js/palette.js:633 -#: js/PitchBlocks.js:405 -msgid "pitch converter" +#: js/turtledefs.js:733 +msgid "Switch between beginner and advance modes." msgstr "" -#: js/rubrics.js:522 -#: js/turtledefs.js:119 -#: js/turtledefs.js:221 -#: js/RhythmBlockPaletteBlocks.js:52 -#: js/RhythmBlockPaletteBlocks.js:233 -#: js/ProgramBlocks.js:745 -#: js/rhythmruler.js:1670 -#: js/rhythmruler.js:1677 -#: js/rhythmruler.js:1745 -#: js/rhythmruler.js:1752 -#: js/rhythmruler.js:1830 -#.TRANS: an arrangement of notes based on duration -msgid "rhythm" +#: js/turtledefs.js:739 +msgid "Select your language preference." msgstr "" -#: js/rubrics.js:523 -#: js/block.js:2339 -#: js/turtledefs.js:121 -#: js/turtledefs.js:223 -#: js/IntervalsBlocks.js:63 -#: js/PitchBlocks.js:1801 -#: js/PitchBlocks.js:1814 -#: js/SensorsBlocks.js:178 -#: js/phrasemaker.js:821 -#: js/musickeyboard.js:1653 -#.TRANS: pitch number -#.TRANS: we specify pitch in terms of a name and an octave. The name can be CDEFGAB or Do Re Mi Fa Sol La Ti. Octave is a number between 1 and 8. -msgid "pitch" +#: js/turtledefs.js:745 +msgid "Keyboard shortcuts" msgstr "" -#: js/rubrics.js:524 -#: js/turtledefs.js:123 -#: js/turtledefs.js:225 -msgid "tone" +#: js/turtledefs.js:746 +msgid "You can type d to create a do block and r to create a re block etc." msgstr "" -#: js/rubrics.js:525 -#: js/lilypond.js:613 -#: js/lilypond.js:912 -#: js/lilypond.js:918 -#: js/lilypond.js:956 -msgid "mouse" +#: js/turtledefs.js:753 +msgid "Show these messages." msgstr "" -#: js/rubrics.js:526 -#: js/turtledefs.js:132 -#: js/turtledefs.js:234 -#: js/phrasemaker.js:825 -msgid "pen" +#: js/turtledefs.js:759 +#: js/turtledefs.js:790 +#: js/widgets/help.js:335 +msgid "Guide" msgstr "" -#: js/rubrics.js:527 -#: js/turtledefs.js:133 -#: js/turtledefs.js:235 -#: js/NumberBlocks.js:905 -#: js/PitchBlocks.js:1679 -#: js/PitchBlocks.js:1720 -msgid "number" -msgstr "Sayılar" +#: js/turtledefs.js:760 +msgid "A detailed guide to Turtle Blocks is available." +msgstr "" -#: js/rubrics.js:528 -#: js/turtledefs.js:127 -#: js/turtledefs.js:229 -msgid "flow" +#: js/turtledefs.js:764 +msgid "Turtle Blocks Guide" msgstr "" -#: js/rubrics.js:530 -#: js/turtledefs.js:136 -#: js/turtledefs.js:238 -msgid "sensors" +#: js/turtledefs.js:767 +#: js/turtledefs.js:798 +#: js/widgets/help.js:336 +msgid "About" msgstr "" -#: js/rubrics.js:531 -#: js/turtledefs.js:135 -#: js/turtledefs.js:237 -#: js/MediaBlocks.js:930 -msgid "media" +#: js/turtledefs.js:768 +msgid "Turtle Blocks is an open source collection of tools for exploring musical concepts." msgstr "" -#: js/rubrics.js:532 -msgid "mice" +#: js/turtledefs.js:770 +msgid "A full list of contributors can be found in the Turtle Blocks GitHub repository." msgstr "" -#: js/macros.js:711 -#: js/musicutils.js:783 -#: js/synthutils.js:181 -#.TRANS: animal sound effect -msgid "duck" +#: js/turtledefs.js:772 +msgid "Turtle Blocks is licensed under the AGPL." msgstr "" -#: js/toolbar.js:46 -#: js/toolbar.js:107 -msgid "About Music Blocks" +#: js/turtledefs.js:780 +msgid "Turtle Blocks GitHub repository" msgstr "" -#: js/toolbar.js:47 -#: js/toolbar.js:108 -#: js/toolbar.js:172 -#: js/toolbar.js:228 -#: js/turtledefs.js:445 -#: js/turtledefs.js:482 -#: js/activity.js:2281 -#: js/activity.js:2289 -#: js/activity.js:2520 -#: js/modewidget.js:77 -#: js/pitchstaircase.js:121 -#: js/phrasemaker.js:302 -#: js/phrasemaker.js:312 -#: js/phrasemaker.js:314 -#: js/phrasemaker.js:3901 -#: js/phrasemaker.js:4061 -#: js/phrasemaker.js:4066 -#: js/phrasemaker.js:4068 -#: js/phrasemaker.js:4183 -#: js/pitchdrummatrix.js:81 -#: js/pitchdrummatrix.js:574 -#: js/pitchdrummatrix.js:576 -#: js/pitchdrummatrix.js:628 -#: js/pitchdrummatrix.js:630 -#: js/pitchdrummatrix.js:645 -#: js/pitchdrummatrix.js:647 -#: js/pitchdrummatrix.js:674 -#: js/pitchdrummatrix.js:676 -#: js/temperament.js:477 -#: js/temperament.js:480 -#: js/temperament.js:540 -#: js/temperament.js:542 -#: js/temperament.js:1835 -#: js/temperament.js:1837 -#: js/temperament.js:1986 -#: js/temperament.js:1988 -#: js/musickeyboard.js:522 -#: js/musickeyboard.js:682 -#: js/musickeyboard.js:684 -#: js/musickeyboard.js:756 -#: js/musickeyboard.js:758 -#: js/rhythmruler.js:298 -#: js/rhythmruler.js:300 -#: js/rhythmruler.js:314 -#: js/rhythmruler.js:316 -#: js/sampler.js:96 -#: js/sampler.js:98 -#: js/sampler.js:229 -#: js/sampler.js:235 -#: js/sampler.js:237 -#: js/tempo.js:84 -#: js/tempo.js:86 -#: js/timbre.js:432 -#: js/timbre.js:434 -#: js/timbre.js:465 -#: js/timbre.js:467 -#: js/timbre.js:746 -#: js/meterwidget.js:80 -#: js/arpeggio.js:90 -#: js/arpeggio.js:547 -#: js/arpeggio.js:549 -#: js/arpeggio.js:644 -#: js/arpeggio.js:646 -msgid "Play" +#: js/turtledefs.js:783 +#: js/turtledefs.js:814 +#: js/widgets/help.js:337 +#: js/widgets/help.js:359 +msgid "Congratulations." msgstr "" -#: js/toolbar.js:48 -#: js/toolbar.js:109 -#: js/toolbar.js:173 -#: js/toolbar.js:229 -#: js/turtledefs.js:451 -#: js/turtledefs.js:488 -#: js/activity.js:2297 -#: js/modewidget.js:99 -#: js/modewidget.js:101 -#: js/phrasemaker.js:323 -#: js/phrasemaker.js:325 -#: js/pitchdrummatrix.js:561 -#: js/pitchdrummatrix.js:563 -#: js/temperament.js:1820 -#: js/temperament.js:1822 -#: js/meterwidget.js:101 -#: js/meterwidget.js:103 -#: js/arpeggio.js:534 -#: js/arpeggio.js:536 -msgid "Stop" +#: js/turtledefs.js:784 +msgid "You have finished the tour. Please enjoy Turtle Blocks!" msgstr "" -#: js/toolbar.js:49 -#: js/toolbar.js:110 -#: js/toolbar.js:174 -#: js/toolbar.js:230 -#: js/turtledefs.js:498 -msgid "Record" +#: js/turtledefs.js:791 +msgid "A detailed guide to Music Blocks is available." msgstr "" -#: js/toolbar.js:50 -#: js/toolbar.js:51 -msgid "Full screen" +#: js/turtledefs.js:799 +msgid "Music Blocks is an open source collection of tools for exploring musical concepts." msgstr "" -#: js/toolbar.js:52 -#: js/toolbar.js:112 -#: js/toolbar.js:177 -#: js/toolbar.js:232 -#: js/turtledefs.js:504 -msgid "Toggle Fullscreen" +#: js/turtledefs.js:801 +msgid "A full list of contributors can be found in the Music Blocks GitHub repository." msgstr "" -#: js/toolbar.js:53 -#: js/toolbar.js:113 -#: js/toolbar.js:178 -#: js/toolbar.js:233 -#: js/turtledefs.js:510 -#: js/StringHelper.js:33 -msgid "New project" +#: js/turtledefs.js:803 +msgid "Music Blocks is licensed under the AGPL." msgstr "" -#: js/toolbar.js:54 -#: js/toolbar.js:114 -#: js/toolbar.js:179 -#: js/toolbar.js:234 -#: js/turtledefs.js:516 -msgid "Load project from file" +#: js/turtledefs.js:811 +msgid "Music Blocks GitHub repository" msgstr "" -#: js/toolbar.js:55 -#: js/toolbar.js:115 -#: js/toolbar.js:116 -#: js/toolbar.js:180 -#: js/toolbar.js:235 -#: js/turtledefs.js:541 -#: js/turtledefs.js:550 -#: js/turtledefs.js:571 -msgid "Save project" +#: js/turtledefs.js:815 +msgid "You have finished the tour. Please enjoy Music Blocks!" msgstr "" -#: js/toolbar.js:56 -#: js/toolbar.js:75 -#: js/toolbar.js:77 -#: js/toolbar.js:135 -#: js/toolbar.js:144 -#: js/toolbar.js:146 -#: js/toolbar.js:181 -#: js/toolbar.js:199 -#: js/toolbar.js:201 -#: js/toolbar.js:236 -#: js/toolbar.js:254 -#: js/toolbar.js:256 -msgid "Save project as HTML" +#: js/turtles.js:882 +msgid "Grid" msgstr "" -#: js/toolbar.js:57 -#: js/toolbar.js:117 -#: js/toolbar.js:182 -#: js/toolbar.js:237 -msgid "Find and share projects" +#: js/turtles.js:1024 +msgid "Expand" msgstr "" -#: js/toolbar.js:58 -#: js/toolbar.js:118 -#: js/toolbar.js:183 -#: js/toolbar.js:238 -msgid "Offline. Sharing is unavailable" +#: js/block-verbose.js:1616 +#: js/block-verbose.js:1735 +#: js/block.js:1580 +#: js/block.js:1699 +#: js/palette.js:605 +#: js/blocks/IntervalsBlocks.js:63 +#: js/blocks/WidgetBlocks.js:259 +msgid "temperament" msgstr "" -#: js/toolbar.js:59 -#: js/toolbar.js:119 -#: js/toolbar.js:184 -#: js/toolbar.js:239 -msgid "Auxiliary menu" +#: js/block-verbose.js:1630 +#: js/block.js:1594 +msgid "matrix" msgstr "" -#: js/toolbar.js:61 -#: js/toolbar.js:121 -#: js/toolbar.js:186 -#: js/toolbar.js:241 -msgid "Run slowly" +#: js/block-verbose.js:1637 +#: js/block.js:1601 +#: js/blocks/WidgetBlocks.js:1509 +#: plugins/rodi.rtp:324 +msgid "status" +msgstr "" + +#: js/block-verbose.js:1644 +#: js/block.js:1608 +msgid "drum mapper" +msgstr "" + +#: js/block-verbose.js:1651 +#: js/block.js:1615 +msgid "ruler" +msgstr "" + +#: js/block-verbose.js:1658 +#: js/block.js:1622 +#: js/blocks/WidgetBlocks.js:397 +#.TRANS: timbre is the character or quality of a musical sound +msgid "timbre" +msgstr "" + +#: js/block-verbose.js:1665 +#: js/block.js:1629 +msgid "stair" +msgstr "" + +#: js/block-verbose.js:1672 +#: js/block.js:1636 +#: js/blocks/WidgetBlocks.js:707 +#.TRANS: the speed at music is should be played. +msgid "tempo" +msgstr "" + +#: js/block-verbose.js:1679 +#: js/block-verbose.js:1742 +#: js/block.js:1643 +#: js/block.js:1706 +#: js/blocks/IntervalsBlocks.js:1464 +#.TRANS: mode, e.g., Major in C Major +msgid "mode" +msgstr "" + +#: js/block-verbose.js:1686 +#: js/block.js:1650 +msgid "slider" msgstr "" -#: js/toolbar.js:62 -#: js/toolbar.js:122 -#: js/toolbar.js:187 -#: js/toolbar.js:242 -#: js/turtledefs.js:682 -msgid "Run step by step" +#: js/block-verbose.js:1693 +#: js/block.js:1657 +#: js/blocks/SensorsBlocks.js:1001 +msgid "keyboard" msgstr "" -#: js/toolbar.js:63 -#: js/toolbar.js:123 -#: js/toolbar.js:188 -#: js/toolbar.js:243 -#: js/turtledefs.js:689 -msgid "Display statistics" +#: js/block-verbose.js:1707 +#: js/block.js:1671 +#: js/blocks/WidgetBlocks.js:1190 +#: js/blocks/WidgetBlocks.js:1228 +#.TRANS: widget for subdividing a measure into distinct rhythmic elements +msgid "rhythm maker" msgstr "" -#: js/toolbar.js:64 -#: js/toolbar.js:124 -#: js/toolbar.js:189 -#: js/toolbar.js:244 -msgid "Load plugin" +#: js/block-verbose.js:1714 +#: js/block-verbose.js:2457 +#: js/block-verbose.js:2514 +#: js/block.js:1678 +#: js/block.js:2385 +#: js/block.js:2442 +#: js/blocks/MeterBlocks.js:1367 +#: js/blocks/OrnamentBlocks.js:220 +#: js/blocks/OrnamentBlocks.js:312 +#: js/blocks/RhythmBlocks.js:33 +#: js/blocks/RhythmBlocks.js:356 +#: js/blocks/RhythmBlocks.js:766 +#: js/blocks/RhythmBlocks.js:806 +#: js/blocks/RhythmBlockPaletteBlocks.js:70 +#: js/blocks/RhythmBlockPaletteBlocks.js:252 +#: js/blocks/RhythmBlockPaletteBlocks.js:485 +#: js/blocks/RhythmBlockPaletteBlocks.js:554 +#: js/blocks/RhythmBlockPaletteBlocks.js:605 +#: js/blocks/RhythmBlockPaletteBlocks.js:875 +#: js/turtleactions/DictActions.js:85 +#: js/widgets/phrasemaker.js:942 +#: js/widgets/phrasemaker.js:2656 +#: js/widgets/phrasemaker.js:2699 +#: js/widgets/phrasemaker.js:2810 +#.TRANS: the value (e.g., 1/4 note) of the note being played. +msgid "note value" msgstr "" -#: js/toolbar.js:65 -#: js/toolbar.js:125 -#: js/toolbar.js:190 -#: js/toolbar.js:245 -#: js/turtledefs.js:696 -msgid "Delete plugin" +#: js/block-verbose.js:1721 +#: js/block-verbose.js:2382 +#: js/block-verbose.js:2405 +#: js/block.js:1685 +#: js/block.js:2310 +#: js/block.js:2333 +#: js/blocks/IntervalsBlocks.js:1071 +#: js/blocks/OrnamentBlocks.js:312 +#.TRANS: calculate a relative step between notes based on semi-tones +msgid "scalar interval" msgstr "" -#: js/toolbar.js:66 -#: js/toolbar.js:126 -#: js/toolbar.js:191 -#: js/toolbar.js:246 -msgid "Enable horizontal scrolling" +#: js/block-verbose.js:1728 +#: js/block.js:1692 +#: js/blocks/RhythmBlocks.js:148 +msgid "milliseconds" msgstr "" -#: js/toolbar.js:67 -#: js/toolbar.js:127 -#: js/toolbar.js:192 -#: js/toolbar.js:247 -msgid "Disable horizontal scrolling" +#: js/block-verbose.js:2455 +#: js/block-verbose.js:2459 +#: js/block-verbose.js:2512 +#: js/block-verbose.js:2628 +#: js/block.js:2383 +#: js/block.js:2387 +#: js/block.js:2440 +#: js/block.js:2556 +#: js/blocks/RhythmBlocks.js:712 +#: js/blocks/ProgramBlocks.js:1273 +#: js/widgets/rhythmruler.js:1183 +#: js/widgets/rhythmruler.js:1329 +msgid "silence" msgstr "" -#: js/toolbar.js:68 -#: js/toolbar.js:128 -#: js/toolbar.js:193 -#: js/toolbar.js:248 -#: js/LocalCard.js:54 -#: js/StringHelper.js:71 -msgid "Merge with current project" +#: js/block-verbose.js:2548 +#: js/block-verbose.js:3492 +#: js/block-verbose.js:3509 +#: js/activity.js:2718 +#: js/activity.js:2769 +#: js/block.js:2476 +#: js/block.js:3416 +#: js/block.js:3433 +#: js/utils/musicutils.js:3780 +#: js/utils/musicutils.js:5273 +#.TRANS: the note names must be separated by single spaces +#.TRANS: the note names must be separated by single spaces +#.TRANS: the note names must be separated by single spaces +msgid "ti la sol fa mi re do" msgstr "" -#: js/toolbar.js:69 -#: js/toolbar.js:129 -msgid "Set Pitch Preview" +#: js/block-verbose.js:2616 +#: js/block.js:2544 +#.TRANS: scalar step +#.TRANS: scalar step +msgid "down" msgstr "" -#: js/toolbar.js:70 -#: js/toolbar.js:130 -#: js/toolbar.js:194 -#: js/toolbar.js:249 -msgid "Toggle JavaScript Editor" +#: js/block-verbose.js:2617 +#: js/block.js:2545 +msgid "up" msgstr "" -#: js/toolbar.js:71 -#: js/toolbar.js:131 -#: js/toolbar.js:195 -#: js/toolbar.js:250 -#: js/turtledefs.js:724 -msgid "Restore" +#: js/block-verbose.js:3026 +#: js/block.js:2950 +msgid "Silence block cannot be removed." msgstr "" -#: js/toolbar.js:72 -#: js/toolbar.js:132 -#: js/toolbar.js:196 -#: js/toolbar.js:251 -msgid "Switch to beginner mode" +#: js/block-verbose.js:3824 +#: js/block.js:3748 +#: js/blocks.js:2607 +#: js/blocks.js:3218 +#: js/palette.js:618 +#: js/blocks/BooleanBlocks.js:77 +#: js/blocks/BooleanBlocks.js:167 +#: js/blocks/BooleanBlocks.js:251 +#: js/blocks/BooleanBlocks.js:335 +#: js/blocks/BooleanBlocks.js:433 +#: js/blocks/BooleanBlocks.js:539 +#: js/blocks/BooleanBlocks.js:640 +#: js/blocks/BooleanBlocks.js:741 +#: js/blocks/BooleanBlocks.js:847 +#: js/blocks/BooleanBlocks.js:948 +#: js/blocks/BooleanBlocks.js:1033 +#: js/blocks/SensorsBlocks.js:910 +msgid "true" msgstr "" -#: js/toolbar.js:73 -#: js/toolbar.js:133 -#: js/toolbar.js:197 -#: js/toolbar.js:252 -msgid "Switch to advanced mode" +#: js/block-verbose.js:3824 +#: js/block.js:3748 +#: js/blocks.js:2609 +#: js/blocks.js:3220 +#: js/blocks/BooleanBlocks.js:79 +#: js/blocks/BooleanBlocks.js:169 +#: js/blocks/BooleanBlocks.js:253 +#: js/blocks/BooleanBlocks.js:337 +#: js/blocks/BooleanBlocks.js:435 +#: js/blocks/BooleanBlocks.js:541 +#: js/blocks/BooleanBlocks.js:642 +#: js/blocks/BooleanBlocks.js:743 +#: js/blocks/BooleanBlocks.js:849 +#: js/blocks/BooleanBlocks.js:950 +#: js/blocks/SensorsBlocks.js:912 +msgid "false" msgstr "" -#: js/toolbar.js:74 -#: js/toolbar.js:134 -#: js/toolbar.js:143 -#: js/toolbar.js:198 -#: js/toolbar.js:253 -#: js/turtledefs.js:738 -msgid "Select language" +#: js/block-verbose.js:3835 +#: js/block-verbose.js:3848 +#: js/block.js:3759 +#: js/block.js:3772 +#: js/blocks/ExtrasBlocks.js:615 +msgid "Cartesian" msgstr "" -#: js/toolbar.js:76 -#: js/toolbar.js:79 -#: js/toolbar.js:137 -#: js/turtledefs.js:579 -msgid "Save mouse artwork as PNG" +#: js/block-verbose.js:3836 +#: js/block-verbose.js:3849 +#: js/block.js:3760 +#: js/block.js:3773 +#: js/blocks/ExtrasBlocks.js:619 +msgid "polar" msgstr "" -#: js/toolbar.js:78 -#: js/toolbar.js:136 -#: js/turtledefs.js:575 -msgid "Save mouse artwork as SVG" +#: js/block-verbose.js:3837 +#: js/block-verbose.js:3850 +#: js/block.js:3761 +#: js/block.js:3774 +#: js/blocks/ExtrasBlocks.js:623 +msgid "Cartesian+polar" msgstr "" -#: js/toolbar.js:80 -#: js/toolbar.js:138 -#: js/turtledefs.js:583 -msgid "Save music as WAV" +#: js/block-verbose.js:3838 +#: js/block-verbose.js:3857 +#: js/block.js:3762 +#: js/block.js:3781 +#: js/blocks/ExtrasBlocks.js:652 +msgid "none" msgstr "" -#: js/toolbar.js:81 -#: js/toolbar.js:139 -#: js/turtledefs.js:587 -msgid "Save sheet music as ABC" +#: js/block-verbose.js:3851 +#: js/block.js:3775 +#: js/blocks/ExtrasBlocks.js:628 +msgid "treble" msgstr "" -#: js/toolbar.js:82 -#: js/toolbar.js:140 -#: js/turtledefs.js:591 -msgid "Save sheet music as Lilypond" +#: js/block-verbose.js:3852 +#: js/block.js:3776 +#: js/blocks/ExtrasBlocks.js:632 +msgid "grand staff" msgstr "" -#: js/toolbar.js:83 -msgid "Save sheet music as MusicXML" +#: js/block-verbose.js:3853 +#: js/block.js:3777 +#: js/blocks/ExtrasBlocks.js:636 +msgid "mezzo-soprano" msgstr "" -#: js/toolbar.js:84 -#: js/toolbar.js:141 -#: js/toolbar.js:149 -#: js/toolbar.js:204 -#: js/toolbar.js:259 -#: js/turtledefs.js:562 -#: js/turtledefs.js:595 -msgid "Save block artwork as SVG" +#: js/block-verbose.js:3854 +#: js/block.js:3778 +#: js/blocks/ExtrasBlocks.js:640 +msgid "alto" msgstr "" -#: js/toolbar.js:85 -#: js/toolbar.js:142 -#: js/toolbar.js:150 -#: js/toolbar.js:205 -#: js/toolbar.js:260 -msgid "Confirm" +#: js/block-verbose.js:3855 +#: js/block.js:3779 +#: js/blocks/ExtrasBlocks.js:644 +msgid "tenor" msgstr "" -#: js/toolbar.js:86 -#: js/toolbar.js:151 -#: js/toolbar.js:206 -#: js/toolbar.js:261 -msgid "English (United States)" +#: js/block-verbose.js:3856 +#: js/block.js:3780 +#: js/utils/musicutils.js:1115 +#: js/utils/synthutils.js:80 +#: js/blocks/ExtrasBlocks.js:648 +#.TRANS: musical instrument +msgid "bass" msgstr "" -#: js/toolbar.js:87 -#: js/toolbar.js:152 -#: js/toolbar.js:207 -#: js/toolbar.js:262 -msgid "English (United Kingdom)" +#: js/block-verbose.js:3901 +#: js/block.js:3825 +#: js/blocks.js:2600 +#: js/blocks.js:3211 +msgid "on2" msgstr "" -#: js/toolbar.js:88 -#: js/toolbar.js:153 -#: js/toolbar.js:208 -#: js/toolbar.js:263 -msgid "日本語" +#: js/block-verbose.js:3903 +#: js/block.js:3827 +#: js/blocks.js:2602 +#: js/blocks.js:3213 +msgid "off" msgstr "" -#: js/toolbar.js:89 -msgid "한국어" +#: js/block-verbose.js:4470 +#: js/block.js:4394 +msgid "Not a number" msgstr "" -#: js/toolbar.js:90 -#: js/toolbar.js:155 -#: js/toolbar.js:210 -#: js/toolbar.js:265 -msgid "español" +#: js/block-verbose.js:4477 +#: js/block.js:4401 +msgid "Octave value must be between 1 and 10." msgstr "" -#: js/toolbar.js:91 -#: js/toolbar.js:156 -#: js/toolbar.js:211 -#: js/toolbar.js:266 -msgid "português" +#: js/block-verbose.js:4485 +#: js/block.js:4409 +msgid "Numbers can have at most 10 digits." msgstr "" -#: js/toolbar.js:92 -#: js/toolbar.js:157 -#: js/toolbar.js:212 -#: js/toolbar.js:267 -msgid "にほんご" +#: js/activity.js:390 +#: js/activity.js:395 +msgid "Search for blocks" msgstr "" -#: js/toolbar.js:93 -#: js/toolbar.js:158 -#: js/toolbar.js:213 -#: js/toolbar.js:268 -msgid "中文" +#: js/activity.js:1413 +msgid "Refresh your browser to change to advanced mode." msgstr "" -#: js/toolbar.js:94 -#: js/toolbar.js:159 -#: js/toolbar.js:214 -#: js/toolbar.js:269 -msgid "ภาษาไทย" +#: js/activity.js:1418 +msgid "Refresh your browser to change to beginner mode." msgstr "" -#: js/toolbar.js:95 -#: js/toolbar.js:160 -#: js/toolbar.js:215 -#: js/toolbar.js:270 -msgid "aymara" +#: js/activity.js:1477 +msgid "Catching mice" msgstr "" -#: js/toolbar.js:96 -#: js/toolbar.js:161 -#: js/toolbar.js:216 -#: js/toolbar.js:271 -msgid "quechua" +#: js/activity.js:1478 +msgid "Cleaning the instruments" msgstr "" -#: js/toolbar.js:97 -#: js/toolbar.js:162 -#: js/toolbar.js:217 -#: js/toolbar.js:272 -msgid "guarani" +#: js/activity.js:1479 +msgid "Testing key pieces" msgstr "" -#: js/toolbar.js:98 -#: js/toolbar.js:163 -#: js/toolbar.js:218 -#: js/toolbar.js:273 -msgid "हिंदी" +#: js/activity.js:1480 +msgid "Sight-reading" msgstr "" -#: js/toolbar.js:99 -#: js/toolbar.js:165 -#: js/toolbar.js:219 -#: js/toolbar.js:275 -msgid "igbo" +#: js/activity.js:1481 +msgid "Combining math and music" msgstr "" -#: js/toolbar.js:100 -#: js/toolbar.js:166 -#: js/toolbar.js:220 -#: js/toolbar.js:276 -msgid "عربى" +#: js/activity.js:1482 +msgid "Generating more blocks" msgstr "" -#: js/toolbar.js:101 -#: js/toolbar.js:164 -#: js/toolbar.js:221 -#: js/toolbar.js:274 -msgid "తెలుగు" +#: js/activity.js:1483 +msgid "Do Re Mi Fa Sol La Ti Do" msgstr "" -#: js/toolbar.js:102 -#: js/toolbar.js:167 -#: js/toolbar.js:222 -#: js/toolbar.js:277 -msgid "עִברִית" +#: js/activity.js:1484 +msgid "Tuning string instruments" msgstr "" -#: js/toolbar.js:111 -#: js/toolbar.js:175 -#: js/toolbar.js:176 -#: js/toolbar.js:231 -msgid "Full Screen" +#: js/activity.js:1485 +msgid "Pressing random keys" msgstr "" -#: js/toolbar.js:145 -#: js/toolbar.js:148 -#: js/toolbar.js:200 -#: js/toolbar.js:203 -#: js/toolbar.js:255 -#: js/toolbar.js:258 -#: js/turtledefs.js:558 -msgid "Save turtle artwork as PNG" +#: js/activity.js:1663 +msgid "plugins will be removed upon restart." msgstr "" -#: js/toolbar.js:147 -#: js/toolbar.js:202 -#: js/toolbar.js:257 -#: js/turtledefs.js:554 -msgid "Save turtle artwork as SVG" +#: js/activity.js:1672 +msgid "show Cartesian" msgstr "" -#: js/toolbar.js:154 -#: js/toolbar.js:209 -#: js/toolbar.js:264 -msgid "한국인" +#: js/activity.js:2211 +#: js/palette.js:589 +#: js/blocks/RhythmBlocks.js:923 +#: js/blocks/PitchBlocks.js:442 +#: js/blocks/PitchBlocks.js:1786 +#.TRANS: a numeric mapping of the notes in an octave based on the musical mode +msgid "scale degree" msgstr "" -#: js/toolbar.js:171 -#: js/toolbar.js:227 -msgid "About Turtle Blocks" +#: js/activity.js:2214 +#: js/palette.js:598 +msgid "voice name" msgstr "" -#: js/toolbar.js:429 -#: js/toolbar.js:440 -msgid "Turtle Wrap Off" +#: js/activity.js:2217 +#: js/palette.js:595 +msgid "invert mode" msgstr "" -#: js/toolbar.js:442 -msgid "Turtle Wrap On" +#: js/activity.js:2220 +msgid "output tools" msgstr "" -#: js/block.js:1470 -msgid "matrix" +#: js/activity.js:2223 +msgid "custom note" msgstr "" -#: js/block.js:1477 -#: js/WidgetBlocks.js:1226 -#: plugins/rodi.rtp:324 -msgid "status" +#: js/activity.js:2226 +msgid "accidental name" msgstr "" -#: js/block.js:1484 -msgid "drum mapper" +#: js/activity.js:2229 +#: js/blocks/PitchBlocks.js:855 +msgid "east indian solfege" msgstr "" -#: js/block.js:1491 -msgid "ruler" +#: js/activity.js:2232 +#: js/blocks/PitchBlocks.js:869 +msgid "note name" msgstr "" -#: js/block.js:1498 -#: js/WidgetBlocks.js:327 -#.TRANS: timbre is the character or quality of a musical sound -msgid "timbre" +#: js/activity.js:2235 +#: js/blocks/IntervalsBlocks.js:94 +msgid "temperament name" msgstr "" -#: js/block.js:1505 -msgid "stair" +#: js/activity.js:2238 +#: js/palette.js:592 +msgid "mode name" msgstr "" -#: js/block.js:1512 -#: js/WidgetBlocks.js:577 -#.TRANS: the speed at music is should be played. -msgid "tempo" +#: js/activity.js:2241 +msgid "chord name" msgstr "" -#: js/block.js:1519 -#: js/block.js:1582 -#: js/IntervalsBlocks.js:1268 -#.TRANS: mode, e.g., Major in C Major -msgid "mode" +#: js/activity.js:2244 +#: js/palette.js:615 +msgid "interval name" msgstr "" -#: js/block.js:1526 -msgid "slider" +#: js/activity.js:2247 +msgid "filter type" msgstr "" -#: js/block.js:1533 -#: js/SensorsBlocks.js:1001 -msgid "keyboard" +#: js/activity.js:2250 +msgid "oscillator type" msgstr "" -#: js/block.js:1547 -#: js/WidgetBlocks.js:957 -#: js/WidgetBlocks.js:988 -#.TRANS: widget for subdividing a measure into distinct rhythmic elements -msgid "rhythm maker" +#: js/activity.js:2253 +#: js/blocks.js:2479 +#: js/blocks.js:2487 +msgid "audio file" msgstr "" -#: js/block.js:1554 -#: js/block.js:2182 -#: js/block.js:2236 -#: js/RhythmBlockPaletteBlocks.js:70 -#: js/RhythmBlockPaletteBlocks.js:251 -#: js/RhythmBlockPaletteBlocks.js:484 -#: js/RhythmBlockPaletteBlocks.js:553 -#: js/RhythmBlockPaletteBlocks.js:604 -#: js/RhythmBlockPaletteBlocks.js:874 -#: js/RhythmBlocks.js:33 -#: js/RhythmBlocks.js:356 -#: js/RhythmBlocks.js:766 -#: js/RhythmBlocks.js:806 -#: js/OrnamentBlocks.js:220 -#: js/OrnamentBlocks.js:312 -#: js/MeterBlocks.js:1367 -#: js/DictActions.js:85 -#: js/phrasemaker.js:731 -#: js/phrasemaker.js:2393 -#: js/phrasemaker.js:2436 -#: js/phrasemaker.js:2534 -#.TRANS: the value (e.g., 1/4 note) of the note being played. -msgid "note value" +#: js/activity.js:2256 +#: js/blocks/DrumBlocks.js:32 +msgid "noise name" msgstr "" -#: js/block.js:1561 -#: js/block.js:2110 -#: js/block.js:2133 -#: js/IntervalsBlocks.js:875 -#: js/OrnamentBlocks.js:312 -#.TRANS: calculate a relative step between notes based on semi-tones -msgid "scalar interval" +#: js/activity.js:2259 +#: js/blocks/DrumBlocks.js:75 +msgid "drum name" msgstr "" -#: js/block.js:1568 -#: js/RhythmBlocks.js:148 -msgid "milliseconds" +#: js/activity.js:2262 +#: js/blocks/DrumBlocks.js:119 +msgid "effects name" msgstr "" -#: js/block.js:2180 -#: js/block.js:2184 -#: js/block.js:2234 -#: js/block.js:2345 -#: js/ProgramBlocks.js:1273 -#: js/RhythmBlocks.js:712 -#: js/rhythmruler.js:834 -#: js/rhythmruler.js:961 -msgid "silence" +#: js/activity.js:2265 +msgid "wrap mode" msgstr "" -#: js/block.js:2265 -#: js/block.js:3134 -#: js/block.js:3151 -#: js/activity.js:2336 -#: js/activity.js:2387 -#: js/musicutils.js:2932 -#: js/musicutils.js:4287 -#.TRANS: the note names must be separated by single spaces -#.TRANS: the note names must be separated by single spaces -msgid "ti la sol fa mi re do" +#: js/activity.js:2268 +msgid "load file" msgstr "" -#: js/block.js:2333 -#.TRANS: scalar step -msgid "down" +#: js/activity.js:2435 +#: js/activity.js:5851 +msgid "This block is deprecated." msgstr "" -#: js/block.js:2334 -msgid "up" +#: js/activity.js:2437 +#: js/activity.js:5853 +msgid "Block cannot be found." msgstr "" -#: js/block.js:3477 -#: js/block.js:3490 -#: js/ExtrasBlocks.js:612 -msgid "Cartesian" +#: js/activity.js:2645 +msgid "Saving block artwork" msgstr "" -#: js/block.js:3478 -#: js/block.js:3491 -#: js/ExtrasBlocks.js:616 -msgid "polar" +#: js/activity.js:2656 +msgid "Erase" msgstr "" -#: js/block.js:3479 -#: js/block.js:3492 -#: js/ExtrasBlocks.js:620 -msgid "Cartesian+polar" +#: js/activity.js:2683 +#: js/activity.js:2705 +msgid "Paste" msgstr "" -#: js/block.js:3480 -#: js/block.js:3499 -#: js/ExtrasBlocks.js:649 -msgid "none" +#: js/activity.js:2687 +msgid "Save block help" msgstr "" -#: js/block.js:3493 -#: js/ExtrasBlocks.js:625 -msgid "treble" +#: js/activity.js:2772 +msgid "Jumping to the bottom of the page." msgstr "" -#: js/block.js:3494 -#: js/ExtrasBlocks.js:629 -msgid "grand staff" +#: js/activity.js:2778 +msgid "Scrolling up." msgstr "" -#: js/block.js:3495 -#: js/ExtrasBlocks.js:633 -msgid "mezzo-soprano" +#: js/activity.js:2783 +msgid "Scrolling down." msgstr "" -#: js/block.js:3496 -#: js/ExtrasBlocks.js:637 -msgid "alto" +#: js/activity.js:2788 +msgid "Extracting block" msgstr "" -#: js/block.js:3497 -#: js/ExtrasBlocks.js:641 -msgid "tenor" +#: js/activity.js:2796 +msgid "Moving block up." msgstr "" -#: js/block.js:3498 -#: js/ExtrasBlocks.js:645 -#: js/musicutils.js:736 -#: js/synthutils.js:64 -#.TRANS: musical instrument -msgid "bass" +#: js/activity.js:2817 +msgid "Moving block down." msgstr "" -#: js/block.js:4075 -msgid "Not a number" +#: js/activity.js:2838 +msgid "Moving block left." msgstr "" -#: js/block.js:4082 -msgid "Octave value must be between 1 and 10." +#: js/activity.js:2855 +msgid "Moving block right." msgstr "" -#: js/block.js:4090 -msgid "Numbers can have at most 10 digits." +#: js/activity.js:2870 +msgid "Jump to home position." msgstr "" -#: js/notation.js:353 -msgid "Lilypond cannot process pickup of " +#: js/activity.js:2897 +msgid "Hide blocks" msgstr "" -#: js/turtledefs.js:40 -#.TRANS: put the URL to the guide here, e.g., https://github.com/sugarlabs/turtleblocksjs/tree/master/guide/README.md -msgid "guide url" +#: js/activity.js:4500 +msgid "Click the run button to run the project." msgstr "" -#: js/turtledefs.js:85 -#: js/turtledefs.js:437 -msgid "Turtle Blocks is a Logo-inspired turtle that draws colorful pictures with snap-together visual-programming blocks." +#: js/activity.js:5692 +msgid "Show/hide block" msgstr "" -#: js/turtledefs.js:118 -#: js/turtledefs.js:220 -msgid "search" +#: js/activity.js:5698 +msgid "Expand/collapse blocks" msgstr "" -#: js/turtledefs.js:120 -#: js/turtledefs.js:222 -#: js/WidgetBlocks.js:437 -#: js/MeterBlocks.js:1343 -#.TRANS: musical meter (time signature), e.g., 4:4 -msgid "meter" +#: js/activity.js:5976 +msgid "Could not parse JSON input." msgstr "" -#: js/turtledefs.js:122 -#: js/turtledefs.js:224 -msgid "intervals" +#: js/activity.js:6475 +#: js/activity.js:6580 +#: js/activity.js:6631 +msgid "Cannot load project from the file. Please check the file type." msgstr "" -#: js/turtledefs.js:124 -#: js/turtledefs.js:226 -msgid "ornament" +#: js/activity.js:6917 +msgid "Invalid parameters" msgstr "" -#: js/turtledefs.js:125 -#: js/turtledefs.js:227 -#: js/VolumeBlocks.js:362 -#: js/VolumeBlocks.js:502 -#: js/VolumeBlocks.js:545 -msgid "volume" +#: js/blocks.js:1212 +#: js/blocks.js:3444 +#: js/blocks.js:3834 +#: js/blocks.js:3865 +#: js/blocks.js:3914 +#: js/blocks.js:3949 +#: js/blocks.js:6586 +#: js/palette.js:509 +#: js/palette.js:638 +#: js/palette.js:1105 +#: js/blocks/BoxesBlocks.js:282 +#: js/blocks/BoxesBlocks.js:285 +#: js/blocks/BoxesBlocks.js:405 +#: js/blocks/BoxesBlocks.js:594 +msgid "box" +msgstr "kutu" + +#: js/blocks.js:1713 +msgid "Consider breaking this stack into parts." msgstr "" -#: js/turtledefs.js:129 -#: js/turtledefs.js:231 -msgid "boxes" +#: js/blocks.js:2472 +#: js/palette.js:653 +#: js/blocks/MediaBlocks.js:602 +msgid "open file" msgstr "" -#: js/turtledefs.js:130 -#: js/turtledefs.js:232 -msgid "widgets" +#: js/blocks.js:3247 +#: js/palette.js:574 +#: js/blocks/MediaBlocks.js:892 +#: js/blocks/MediaBlocks.js:963 +msgid "text" msgstr "" -#: js/turtledefs.js:131 -#: js/turtledefs.js:233 -#: js/phrasemaker.js:824 -msgid "graphics" +#: js/blocks.js:3443 +#: js/palette.js:641 +#: js/palette.js:642 +#: js/blocks/BoxesBlocks.js:514 +msgid "store in box" msgstr "" -#: js/turtledefs.js:134 -#: js/turtledefs.js:236 -msgid "boolean" +#: js/blocks.js:3448 +#: js/blocks.js:3888 +#: js/blocks.js:3923 +#: js/blocks.js:3958 +#: js/blocks.js:5862 +#: js/blocks.js:5883 +#: js/blocks/BoxesBlocks.js:772 +msgid "box1" msgstr "" -#: js/turtledefs.js:137 -#: js/turtledefs.js:239 -#: js/HeapBlocks.js:59 -#: js/status.js:147 -msgid "heap" +#: js/blocks.js:3450 +#: js/blocks.js:3890 +#: js/blocks.js:3925 +#: js/blocks.js:3960 +#: js/blocks.js:5864 +#: js/blocks.js:5885 +#: js/blocks/BoxesBlocks.js:663 +msgid "box2" msgstr "" -#: js/turtledefs.js:138 -#: js/turtledefs.js:240 -#: js/ProgramBlocks.js:495 -#: js/DictBlocks.js:142 -msgid "dictionary" +#: js/blocks.js:4122 +#: js/palette.js:639 +#: js/palette.js:644 +#: js/palette.js:1041 +#: js/blocks/BoxesBlocks.js:591 +msgid "store in" msgstr "" -#: js/turtledefs.js:139 -#: js/turtledefs.js:241 -msgid "ensemble" +#: js/blocks.js:4122 +#: js/blocks/BoxesBlocks.js:595 +#: js/blocks/DictBlocks.js:215 +#: js/blocks/DictBlocks.js:289 +#: js/blocks/EnsembleBlocks.js:391 +#: js/blocks/EnsembleBlocks.js:402 +#: js/blocks/MediaBlocks.js:746 +#: js/blocks/PitchBlocks.js:656 +#: js/blocks/PitchBlocks.js:934 +#: js/blocks/PitchBlocks.js:1866 +#: js/blocks/ProgramBlocks.js:390 +#: js/blocks/ProgramBlocks.js:495 +#: js/blocks/ProgramBlocks.js:658 +#: js/blocks/ToneBlocks.js:1025 +msgid "name" msgstr "" -#: js/turtledefs.js:140 -#: js/turtledefs.js:242 -msgid "extras" +#: js/blocks.js:4122 +#: js/blocks/BoxesBlocks.js:75 +#: js/blocks/BoxesBlocks.js:595 +#: js/blocks/DictBlocks.js:289 +#: js/blocks/DictBlocks.js:430 +#: js/blocks/HeapBlocks.js:544 +#: js/blocks/RhythmBlocks.js:1130 +msgid "value" msgstr "" -#: js/turtledefs.js:142 -#: js/turtledefs.js:244 -#.TRANS: program as in computer program -#.TRANS: program as in computer program -msgid "program" +#: js/blocks.js:4465 +msgid "Forever loop detected inside a note value block. Unexpected things may happen." msgstr "" -#: js/turtledefs.js:143 -#: js/turtledefs.js:245 -msgid "my blocks" +#: js/blocks.js:4988 +msgid "There is no block selected." msgstr "" -#: js/turtledefs.js:185 -#: js/turtledefs.js:281 -msgid "artwork" +#: js/blocks.js:5091 +#: js/blocks/MediaBlocks.js:888 +msgid "show" msgstr "" -#: js/turtledefs.js:185 -#: js/turtledefs.js:281 -msgid "logic" +#: js/blocks.js:5094 +#: js/blocks/MediaBlocks.js:803 +#.TRANS: Avatar is the image used to determine the appearance of the mouse. +msgid "avatar" msgstr "" -#: js/turtledefs.js:185 -#: js/turtledefs.js:281 -msgid "music" +#: js/blocks.js:5097 +#: js/blocks/ToneBlocks.js:1010 +#: js/widgets/sampler.js:975 +#.TRANS: The sound sample that the user uploads. +msgid "sample" msgstr "" -#: js/turtledefs.js:187 -#: js/turtledefs.js:463 -msgid "Music Blocks is a collection of tools for exploring fundamental musical concepts in a fun way." +#: js/lilypond.js:606 +msgid "brown rat" msgstr "" -#: js/turtledefs.js:436 -msgid "Welcome to Turtle Blocks" +#: js/lilypond.js:607 +msgid "mole" msgstr "" -#: js/turtledefs.js:438 -#: js/turtledefs.js:465 -#: js/turtledefs.js:774 -#: js/turtledefs.js:805 -msgid "The current version is" +#: js/lilypond.js:608 +msgid "chipmunk" msgstr "" -#: js/turtledefs.js:446 -#: js/turtledefs.js:483 -msgid "Click the run button to run the project in fast mode." +#: js/lilypond.js:609 +msgid "red squirrel" msgstr "" -#: js/turtledefs.js:452 -msgid "Stop the turtle." +#: js/lilypond.js:610 +msgid "guinea pig" msgstr "" -#: js/turtledefs.js:454 -#: js/turtledefs.js:491 -msgid "You can also type Alt-S to stop." +#: js/lilypond.js:611 +msgid "capybara" msgstr "" -#: js/turtledefs.js:462 -#: js/help.js:333 -msgid "Welcome to Music Blocks" +#: js/lilypond.js:612 +msgid "coypu" msgstr "" -#: js/turtledefs.js:472 -#: js/help.js:334 -msgid "Meet Mr. Mouse!" +#: js/lilypond.js:613 +msgid "black rat" msgstr "" -#: js/turtledefs.js:473 -msgid "Mr Mouse is our Music Blocks conductor." +#: js/lilypond.js:614 +msgid "grey squirrel" msgstr "" -#: js/turtledefs.js:475 -msgid "Mr Mouse encourages you to explore Music Blocks." +#: js/lilypond.js:615 +msgid "flying squirrel" msgstr "" -#: js/turtledefs.js:477 -msgid "Let us start our tour!" +#: js/lilypond.js:616 +msgid "bat" msgstr "" -#: js/turtledefs.js:489 -msgid "Stop the music (and the mice)." +#: js/lilypond.js:749 +#: js/lilypond.js:913 +#: js/lilypond.js:951 +#: js/blocks/ActionBlocks.js:1256 +#: js/blocks/ExtrasBlocks.js:556 +msgid "start drum" msgstr "" -#: js/turtledefs.js:499 -msgid "Record your project as video." +#: js/logo.js:61 +msgid "Not a valid pitch name" msgstr "" -#: js/turtledefs.js:505 -msgid "Toggle Fullscreen mode." +#: js/logo.js:507 +#: js/blocks/ProgramBlocks.js:258 +#: js/blocks/ProgramBlocks.js:427 +msgid "You must select a file." msgstr "" -#: js/turtledefs.js:511 -msgid "Initialize a new project." +#: js/logo.js:1696 +msgid "Playback is ready." msgstr "" -#: js/turtledefs.js:517 -msgid "You can also load projects from the file system." +#: js/macros.js:711 +#: js/utils/musicutils.js:1162 +#: js/utils/synthutils.js:202 +#.TRANS: animal sound effect +msgid "duck" +msgstr "" + +#: js/notation.js:353 +msgid "Lilypond cannot process pickup of " msgstr "" -#: js/turtledefs.js:522 -#: js/StringHelper.js:46 -msgid "Delete" +#: js/palette.js:571 +msgid "grid" msgstr "" -#: js/turtledefs.js:523 -msgid "To delete a block, just right-click on it, then you will be able to see the delete option" +#: js/palette.js:580 +msgid "effect" msgstr "" -#: js/turtledefs.js:528 -#: js/activity.js:2270 -#: js/LocalCard.js:31 -msgid "Copy" +#: js/palette.js:586 +msgid "sargam" msgstr "" -#: js/turtledefs.js:529 -msgid "To copy a block, just right-click on it, then you will be able to see the copy option" +#: js/palette.js:601 +#: js/blocks/PitchBlocks.js:1209 +msgid "custom pitch" msgstr "" -#: js/turtledefs.js:535 -msgid "To extract a block, just right-click on it, then you will be able to see the extract option" +#: js/palette.js:609 +msgid "accidental" msgstr "" -#: js/turtledefs.js:542 -#: js/turtledefs.js:552 -#: js/turtledefs.js:573 -msgid "Save your project to a file." +#: js/palette.js:633 +#: js/blocks/PitchBlocks.js:405 +msgid "pitch converter" msgstr "" -#: js/turtledefs.js:549 -#: js/turtledefs.js:570 -msgid "save" +#: js/piemenus.js:200 +#: js/utils/musicutils.js:1187 +#: js/utils/musicutils.js:1207 +#: js/widgets/musickeyboard.js:2341 +#: js/widgets/phrasemaker.js:1908 +#: js/widgets/sampler.js:810 +#.TRANS: double sharp is a music term related to pitch +msgid "double sharp" msgstr "" -#: js/turtledefs.js:556 -#: js/turtledefs.js:577 -msgid "Save graphics from your project to as SVG." +#: js/piemenus.js:201 +#: js/utils/musicutils.js:1185 +#: js/utils/musicutils.js:1208 +#: js/blocks/PitchBlocks.js:1539 +#: js/turtleactions/PitchActions.js:323 +#: js/widgets/musickeyboard.js:2342 +#: js/widgets/phrasemaker.js:1909 +#: js/widgets/sampler.js:811 +#.TRANS: sharp is a music term related to pitch +#.TRANS: sharp is a half-step up in pitch +msgid "sharp" msgstr "" -#: js/turtledefs.js:560 -#: js/turtledefs.js:581 -msgid "Save graphics from your project as PNG." +#: js/piemenus.js:202 +#: js/utils/musicutils.js:1183 +#: js/utils/musicutils.js:1209 +#: js/widgets/musickeyboard.js:2343 +#: js/widgets/phrasemaker.js:1910 +#: js/widgets/sampler.js:812 +#.TRANS: natural is a music term related to pitch +msgid "natural" msgstr "" -#: js/turtledefs.js:564 -#: js/turtledefs.js:597 -msgid "Save block artwork as an SVG file." +#: js/piemenus.js:203 +#: js/utils/musicutils.js:1181 +#: js/utils/musicutils.js:1210 +#: js/blocks/PitchBlocks.js:1498 +#: js/turtleactions/PitchActions.js:326 +#: js/widgets/musickeyboard.js:2344 +#: js/widgets/phrasemaker.js:1911 +#: js/widgets/sampler.js:813 +#.TRANS: flat is a music term related to pitch +#.TRANS: flat is a half-step down in pitch +msgid "flat" msgstr "" -#: js/turtledefs.js:585 -msgid "Save audio from your project as WAV." +#: js/piemenus.js:204 +#: js/utils/musicutils.js:1179 +#: js/utils/musicutils.js:1211 +#: js/widgets/musickeyboard.js:2345 +#: js/widgets/phrasemaker.js:1912 +#: js/widgets/sampler.js:814 +#.TRANS: double flat is a music term related to pitch +msgid "double flat" msgstr "" -#: js/turtledefs.js:589 -msgid "Save your project to as an ABC file." +#: js/piemenus.js:2864 +#: js/utils/musicutils.js:1006 +#: js/blocks/PitchBlocks.js:1385 +#.TRANS: unison is a music term related to intervals +#.TRANS: unison means the note is the same as the current note +msgid "unison" msgstr "" -#: js/turtledefs.js:593 -msgid "Save your project to as a Lilypond file." +#: js/piemenus.js:3018 +#: js/piemenus.js:3091 +#: js/utils/musicutils.js:1014 +#: js/utils/musicutils.js:1189 +#: js/utils/musicutils.js:1326 +#.TRANS: major is a music term related to intervals and mode +msgid "major" msgstr "" -#: js/turtledefs.js:604 -msgid "Load samples from server" +#: js/piemenus.js:3018 +#: js/piemenus.js:3091 +#: js/utils/musicutils.js:1032 +#.TRANS: modal scale for music +msgid "ionian" msgstr "" -#: js/turtledefs.js:605 -msgid "This button opens a viewer for loading example projects." +#: js/piemenus.js:3020 +#: js/piemenus.js:3095 +#: js/utils/musicutils.js:1012 +#: js/utils/musicutils.js:1190 +#: js/utils/musicutils.js:1323 +#.TRANS: minor is a music term related to intervals and mode +msgid "minor" msgstr "" -#: js/turtledefs.js:611 -msgid "Palette buttons" +#: js/piemenus.js:3020 +#: js/piemenus.js:3095 +#: js/utils/musicutils.js:1042 +#.TRANS: modal scale for music +msgid "aeolian" msgstr "" -#: js/turtledefs.js:612 -msgid "This toolbar contains the palette buttons including Rhythm Pitch Tone Action and more." +#: js/piemenus.js:3410 +msgid "Duplicate" msgstr "" -#: js/turtledefs.js:614 -msgid "Click to show the palettes of blocks and drag blocks from the palettes onto the canvas to use them." +#: js/piemenus.js:3412 +msgid "Move to trash" msgstr "" -#: js/turtledefs.js:620 -msgid "Cartesian/Polar" +#: js/piemenus.js:3413 +#: js/widgets/timbre.js:968 +#: planet/js/StringHelper.js:69 +msgid "Close" msgstr "" -#: js/turtledefs.js:621 -msgid "Show or hide a coordinate grid." +#: js/piemenus.js:3419 +msgid "Save stack" msgstr "" -#: js/turtledefs.js:627 -msgid "Clear the screen and return the mice to their initial positions." +#: js/piemenus.js:3449 +msgid "In order to copy a sample, you must reload the widget, import the sample again, and export it." msgstr "" -#: js/turtledefs.js:633 -msgid "Collapse the graphics window." +#: js/piemenus.js:3812 +msgid "You have chosen key " msgstr "" -#: js/turtledefs.js:638 -#: js/activity.js:4256 -#: js/activity.js:4256 -msgid "Home" +#: js/piemenus.js:3816 +msgid " for your pitch preview." msgstr "" -#: js/turtledefs.js:639 -msgid "Return all blocks to the center of the screen." +#: js/turtle-singer.js:1363 +#.TRANS: partials are weighted components in a harmonic series +msgid "You must have at least one Partial block inside of a Weighted-partial block" msgstr "" -#: js/turtledefs.js:644 -msgid "Show/hide blocks" +#: js/turtle-singer.js:2077 +msgid "synth cannot play chords." msgstr "" -#: js/turtledefs.js:645 -msgid "Hide or show the blocks and the palettes." +#: js/utils/musicutils.js:505 +#: js/utils/musicutils.js:645 +#: js/widgets/pitchdrummatrix.js:228 +#: js/widgets/musickeyboard.js:2885 +msgid "rest" msgstr "" -#: js/turtledefs.js:650 -msgid "Expand/collapse collapsable blocks" +#: js/utils/musicutils.js:689 +msgid "Perfect unison" msgstr "" -#: js/turtledefs.js:651 -msgid "Expand or collapse start and action stacks." +#: js/utils/musicutils.js:689 +msgid "Diminished second" msgstr "" -#: js/turtledefs.js:658 -#: js/activity.js:4265 -msgid "Decrease block size" +#: js/utils/musicutils.js:690 +msgid "Minor second" msgstr "" -#: js/turtledefs.js:659 -msgid "Decrease the size of the blocks." +#: js/utils/musicutils.js:690 +msgid "Augmented unison" msgstr "" -#: js/turtledefs.js:664 -#: js/activity.js:4267 -msgid "Increase block size" +#: js/utils/musicutils.js:691 +msgid "Major second" msgstr "" -#: js/turtledefs.js:665 -msgid "Increase the size of the blocks." +#: js/utils/musicutils.js:691 +msgid "Diminished third" msgstr "" -#: js/turtledefs.js:670 -msgid "Expand/collapse option toolbar" +#: js/utils/musicutils.js:692 +msgid "Minor third" msgstr "" -#: js/turtledefs.js:671 -msgid "Click this button to expand or collapse the auxillary toolbar." +#: js/utils/musicutils.js:692 +msgid "Augmented second" msgstr "" -#: js/turtledefs.js:676 -msgid "Run slow" +#: js/utils/musicutils.js:693 +msgid "Major third" msgstr "" -#: js/turtledefs.js:677 -msgid "Click to run the project in slow mode." +#: js/utils/musicutils.js:693 +msgid "Diminished fourth" msgstr "" -#: js/turtledefs.js:683 -msgid "Click to run the project step by step." +#: js/utils/musicutils.js:694 +msgid "Perfect fourth" msgstr "" -#: js/turtledefs.js:690 -msgid "Display statistics about your Music project." +#: js/utils/musicutils.js:694 +msgid "Augmented third" msgstr "" -#: js/turtledefs.js:697 -msgid "Delete a selected plugin." +#: js/utils/musicutils.js:695 +msgid "Diminished fifth" msgstr "" -#: js/turtledefs.js:704 -msgid "Enable scrolling" +#: js/utils/musicutils.js:695 +msgid "Augmented fourth" msgstr "" -#: js/turtledefs.js:705 -msgid "You can scroll the blocks on the canvas." +#: js/utils/musicutils.js:696 +msgid "Perfect fifth" msgstr "" -#: js/turtledefs.js:714 -msgid "Wrap Turtle" +#: js/utils/musicutils.js:696 +msgid "Diminished sixth" msgstr "" -#: js/turtledefs.js:715 -msgid "Turn Turtle wrapping On or Off." +#: js/utils/musicutils.js:697 +msgid "Minor sixth" msgstr "" -#: js/turtledefs.js:725 -msgid "Restore blocks from the trash." +#: js/utils/musicutils.js:697 +msgid "Augmented fifth" msgstr "" -#: js/turtledefs.js:732 -msgid "Switch mode" +#: js/utils/musicutils.js:698 +msgid "Major sixth" msgstr "" -#: js/turtledefs.js:733 -msgid "Switch between beginner and advance modes." +#: js/utils/musicutils.js:698 +msgid "Diminished seventh" msgstr "" -#: js/turtledefs.js:739 -msgid "Select your language preference." +#: js/utils/musicutils.js:699 +msgid "Minor seventh" msgstr "" -#: js/turtledefs.js:745 -msgid "Keyboard shortcuts" +#: js/utils/musicutils.js:699 +msgid "Augmented sixth" msgstr "" -#: js/turtledefs.js:746 -msgid "You can type d to create a do block and r to create a re block etc." +#: js/utils/musicutils.js:700 +msgid "Major seventh" msgstr "" -#: js/turtledefs.js:753 -msgid "Show these messages." +#: js/utils/musicutils.js:700 +msgid "Diminished octave" msgstr "" -#: js/turtledefs.js:759 -#: js/turtledefs.js:790 -#: js/help.js:335 -msgid "Guide" +#: js/utils/musicutils.js:701 +msgid "Perfect octave" msgstr "" -#: js/turtledefs.js:760 -msgid "A detailed guide to Turtle Blocks is available." +#: js/utils/musicutils.js:701 +msgid "Augmented seventh" msgstr "" -#: js/turtledefs.js:764 -msgid "Turtle Blocks Guide" +#: js/utils/musicutils.js:702 +msgid "Minor ninth" msgstr "" -#: js/turtledefs.js:767 -#: js/turtledefs.js:798 -#: js/help.js:336 -msgid "About" +#: js/utils/musicutils.js:702 +msgid "Augmented octave" msgstr "" -#: js/turtledefs.js:768 -msgid "Turtle Blocks is an open source collection of tools for exploring musical concepts." +#: js/utils/musicutils.js:703 +msgid "Major ninth" msgstr "" -#: js/turtledefs.js:770 -msgid "A full list of contributors can be found in the Turtle Blocks GitHub repository." +#: js/utils/musicutils.js:703 +msgid "Diminished tenth" msgstr "" -#: js/turtledefs.js:772 -msgid "Turtle Blocks is licensed under the AGPL." +#: js/utils/musicutils.js:704 +msgid "Minor tenth" msgstr "" -#: js/turtledefs.js:780 -msgid "Turtle Blocks GitHub repository" +#: js/utils/musicutils.js:704 +msgid "Augmented ninth" msgstr "" -#: js/turtledefs.js:783 -#: js/turtledefs.js:814 -#: js/help.js:337 -#: js/help.js:359 -msgid "Congratulations." +#: js/utils/musicutils.js:705 +msgid "Major tenth" msgstr "" -#: js/turtledefs.js:784 -msgid "You have finished the tour. Please enjoy Turtle Blocks!" +#: js/utils/musicutils.js:705 +msgid "Diminished eleventh" msgstr "" -#: js/turtledefs.js:791 -msgid "A detailed guide to Music Blocks is available." +#: js/utils/musicutils.js:706 +msgid "Perfect eleventh" msgstr "" -#: js/turtledefs.js:795 -#: js/SaveInterface.js:76 -msgid "Music Blocks Guide" +#: js/utils/musicutils.js:706 +msgid "Augmented tenth" msgstr "" -#: js/turtledefs.js:799 -msgid "Music Blocks is an open source collection of tools for exploring musical concepts." +#: js/utils/musicutils.js:707 +msgid "Diminished twelfth" msgstr "" -#: js/turtledefs.js:801 -msgid "A full list of contributors can be found in the Music Blocks GitHub repository." +#: js/utils/musicutils.js:707 +msgid "Augmented eleventh" msgstr "" -#: js/turtledefs.js:803 -msgid "Music Blocks is licensed under the AGPL." +#: js/utils/musicutils.js:708 +msgid "Perfect twelfth" msgstr "" -#: js/turtledefs.js:811 -msgid "Music Blocks GitHub repository" +#: js/utils/musicutils.js:708 +msgid "Diminished thirteenth" msgstr "" -#: js/turtledefs.js:815 -msgid "You have finished the tour. Please enjoy Music Blocks!" +#: js/utils/musicutils.js:709 +msgid "Minor thirteenth" msgstr "" -#: js/activity.js:369 -msgid "Search for blocks" +#: js/utils/musicutils.js:709 +msgid "Augmented fifth, plus an octave" msgstr "" -#: js/activity.js:1145 -msgid "Refresh your browser to change to advanced mode." +#: js/utils/musicutils.js:710 +msgid "Major thirteenth" msgstr "" -#: js/activity.js:1150 -msgid "Refresh your browser to change to beginner mode." +#: js/utils/musicutils.js:710 +msgid "Diminished seventh, plus an octave" msgstr "" -#: js/activity.js:1184 -msgid "Catching mice" +#: js/utils/musicutils.js:838 +#.TRANS: ordinal number. Please keep exactly one space between each number. +msgid "1st 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th" msgstr "" -#: js/activity.js:1185 -msgid "Cleaning the instruments" +#: js/utils/musicutils.js:1008 +#: js/utils/musicutils.js:1191 +#: js/utils/musicutils.js:1325 +#.TRANS: augmented is a music term related to intervals +msgid "augmented" msgstr "" -#: js/activity.js:1186 -msgid "Testing key pieces" +#: js/utils/musicutils.js:1010 +#: js/utils/musicutils.js:1192 +#: js/utils/musicutils.js:1324 +#.TRANS: diminished is a music term related to intervals and mode +msgid "diminished" msgstr "" -#: js/activity.js:1187 -msgid "Sight-reading" +#: js/utils/musicutils.js:1016 +#: js/utils/musicutils.js:1322 +#: js/blocks/IntervalsBlocks.js:649 +#: js/turtleactions/IntervalsActions.js:120 +#: js/turtleactions/IntervalsActions.js:124 +#.TRANS: perfect is a music term related to intervals +msgid "perfect" msgstr "" -#: js/activity.js:1188 -msgid "Combining math and music" +#: js/utils/musicutils.js:1018 +#.TRANS: twelve semi-tone scale for music +msgid "chromatic" msgstr "" -#: js/activity.js:1189 -msgid "Generating more blocks" +#: js/utils/musicutils.js:1019 +msgid "algerian" msgstr "" -#: js/activity.js:1190 -msgid "Do Re Mi Fa Sol La Ti Do" +#: js/utils/musicutils.js:1020 +msgid "spanish" msgstr "" -#: js/activity.js:1191 -msgid "Tuning string instruments" +#: js/utils/musicutils.js:1022 +#.TRANS: modal scale in music +msgid "octatonic" msgstr "" -#: js/activity.js:1192 -msgid "Pressing random keys" +#: js/utils/musicutils.js:1024 +#.TRANS: harmonic major scale in music +msgid "harmonic major" msgstr "" -#: js/activity.js:1351 -msgid "plugins will be removed upon restart." +#: js/utils/musicutils.js:1026 +#.TRANS: natural minor scales in music +msgid "natural minor" msgstr "" -#: js/activity.js:1360 -msgid "show Cartesian" +#: js/utils/musicutils.js:1028 +#.TRANS: harmonic minor scale in music +msgid "harmonic minor" msgstr "" -#: js/activity.js:1842 -msgid "output tools" +#: js/utils/musicutils.js:1030 +#.TRANS: melodic minor scale in music +msgid "melodic minor" msgstr "" -#: js/activity.js:1845 -msgid "custom note" +#: js/utils/musicutils.js:1034 +#.TRANS: modal scale for music +msgid "dorian" msgstr "" -#: js/activity.js:1848 -msgid "accidental name" +#: js/utils/musicutils.js:1036 +#.TRANS: modal scale for music +msgid "phrygian" msgstr "" -#: js/activity.js:1851 -#: js/PitchBlocks.js:855 -msgid "east indian solfege" +#: js/utils/musicutils.js:1038 +#.TRANS: modal scale for music +msgid "lydian" msgstr "" -#: js/activity.js:1854 -#: js/PitchBlocks.js:869 -msgid "note name" +#: js/utils/musicutils.js:1040 +#.TRANS: modal scale for music +msgid "mixolydian" msgstr "" -#: js/activity.js:1857 -#: js/IntervalsBlocks.js:94 -msgid "temperament name" +#: js/utils/musicutils.js:1044 +#.TRANS: modal scale for music +msgid "locrian" msgstr "" -#: js/activity.js:1863 -msgid "chord name" +#: js/utils/musicutils.js:1046 +#.TRANS: minor jazz scale for music +msgid "jazz minor" msgstr "" -#: js/activity.js:1869 -msgid "filter type" +#: js/utils/musicutils.js:1048 +#.TRANS: bebop scale for music +msgid "bebop" msgstr "" -#: js/activity.js:1872 -msgid "oscillator type" +#: js/utils/musicutils.js:1049 +msgid "arabic" msgstr "" -#: js/activity.js:1878 -#: js/DrumBlocks.js:32 -msgid "noise name" +#: js/utils/musicutils.js:1050 +msgid "byzantine" msgstr "" -#: js/activity.js:1881 -#: js/DrumBlocks.js:75 -msgid "drum name" +#: js/utils/musicutils.js:1052 +#.TRANS: musical scale for music by Verdi +msgid "enigmatic" msgstr "" -#: js/activity.js:1884 -#: js/DrumBlocks.js:119 -msgid "effects name" +#: js/utils/musicutils.js:1053 +msgid "ethiopian" msgstr "" -#: js/activity.js:1887 -msgid "wrap mode" +#: js/utils/musicutils.js:1055 +#.TRANS: Ethiopic scale for music +msgid "geez" msgstr "" -#: js/activity.js:1890 -msgid "load file" +#: js/utils/musicutils.js:1056 +msgid "hindu" msgstr "" -#: js/activity.js:2056 -msgid "This block is deprecated." +#: js/utils/musicutils.js:1057 +msgid "hungarian" msgstr "" -#: js/activity.js:2058 -msgid "Block cannot be found." +#: js/utils/musicutils.js:1059 +#.TRANS: minor Romanian scale for music +msgid "romanian minor" msgstr "" -#: js/activity.js:2266 -msgid "Saving block artwork" +#: js/utils/musicutils.js:1060 +msgid "spanish gypsy" msgstr "" -#: js/activity.js:2277 -msgid "Erase" +#: js/utils/musicutils.js:1062 +#.TRANS: musical scale for Mid-Eastern music +msgid "maqam" msgstr "" -#: js/activity.js:2301 -#: js/activity.js:2323 -msgid "Paste" +#: js/utils/musicutils.js:1064 +#.TRANS: minor blues scale for music +msgid "minor blues" msgstr "" -#: js/activity.js:2305 -msgid "Save block help" +#: js/utils/musicutils.js:1066 +#.TRANS: major blues scale for music +msgid "major blues" msgstr "" -#: js/activity.js:2390 -msgid "Jumping to the bottom of the page." +#: js/utils/musicutils.js:1067 +msgid "whole tone" msgstr "" -#: js/activity.js:2396 -msgid "Scrolling up." +#: js/utils/musicutils.js:1069 +#.TRANS: pentatonic is a general term that means "five note scale". This scale is typically known as "minor pentatonic" +msgid "minor pentatonic" msgstr "" -#: js/activity.js:2401 -msgid "Scrolling down." +#: js/utils/musicutils.js:1071 +#.TRANS: pentatonic is a general term that means "five note scale". This scale is typically known as "major pentatonic" +msgid "major pentatonic" msgstr "" -#: js/activity.js:2406 -msgid "Extracting block" +#: js/utils/musicutils.js:1072 +msgid "chinese" msgstr "" -#: js/activity.js:2414 -msgid "Moving block up." +#: js/utils/musicutils.js:1073 +msgid "egyptian" msgstr "" -#: js/activity.js:2435 -msgid "Moving block down." +#: js/utils/musicutils.js:1075 +#.TRANS: https://en.wikipedia.org/wiki/Hirajoshi_scale NOTE: There are three different versions of this scale +msgid "hirajoshi" msgstr "" -#: js/activity.js:2456 -msgid "Moving block left." +#: js/utils/musicutils.js:1076 +msgid "Japan" msgstr "" -#: js/activity.js:2473 -msgid "Moving block right." +#: js/utils/musicutils.js:1078 +#.TRANS: https://en.wikipedia.org/wiki/In_scale and https://en.wikipedia.org/wiki/Sakura_Sakura +msgid "in" msgstr "" -#: js/activity.js:2488 -msgid "Jump to home position." +#: js/utils/musicutils.js:1080 +#.TRANS: https://en.wikipedia.org/wiki/Miny%C5%8D_scale +msgid "minyo" msgstr "" -#: js/activity.js:2515 -msgid "Hide blocks" +#: js/utils/musicutils.js:1082 +#.TRANS: Italian mathematician +msgid "fibonacci" msgstr "" -#: js/activity.js:3389 -msgid "Click the run button to run the project." +#: js/utils/musicutils.js:1083 +#: js/utils/musicutils.js:1134 +#: js/utils/musicutils.js:1177 +#: js/utils/musicutils.js:1199 +#: js/utils/synthutils.js:134 +#: js/blocks/IntervalsBlocks.js:1124 +#: js/blocks/ToneBlocks.js:946 +#: js/blocks/VolumeBlocks.js:411 +#: js/blocks/WidgetBlocks.js:399 +#: js/blocks/WidgetBlocks.js:404 +#: js/turtleactions/VolumeActions.js:218 +#: js/widgets/modewidget.js:919 +#.TRANS: customize voice +msgid "custom" msgstr "" -#: js/activity.js:3456 -#: js/SaveInterface.js:131 -#: js/SaveInterface.js:204 -#: js/SaveInterface.js:262 -#: js/SaveInterface.js:389 -#: js/SaveInterface.js:417 -#: js/ProjectStorage.js:27 -#: js/GlobalPlanet.js:467 -#: js/GlobalPlanet.js:469 -#: js/GlobalPlanet.js:495 -#.TRANS: default project title when saving as Lilypond -msgid "My Project" +#: js/utils/musicutils.js:1085 +#: js/utils/musicutils.js:1531 +#: js/blocks/WidgetBlocks.js:176 +#.TRANS: highpass filter +msgid "highpass" msgstr "" -#: js/activity.js:4261 -msgid "Show/hide block" +#: js/utils/musicutils.js:1087 +#: js/utils/musicutils.js:1532 +#.TRANS: lowpass filter +msgid "lowpass" msgstr "" -#: js/activity.js:4263 -msgid "Expand/collapse blocks" +#: js/utils/musicutils.js:1089 +#: js/utils/musicutils.js:1533 +#.TRANS: bandpass filter +msgid "bandpass" msgstr "" -#: js/activity.js:4381 -msgid "Could not parse JSON input." +#: js/utils/musicutils.js:1091 +#: js/utils/musicutils.js:1534 +#.TRANS: high-shelf filter +msgid "highshelf" msgstr "" -#: js/activity.js:4684 -#: js/activity.js:4771 -#: js/activity.js:4821 -msgid "Cannot load project from the file. Please check the file type." +#: js/utils/musicutils.js:1093 +#: js/utils/musicutils.js:1535 +#.TRANS: low-shelf filter +msgid "lowshelf" msgstr "" -#: js/activity.js:5051 -msgid "Invalid parameters" +#: js/utils/musicutils.js:1095 +#: js/utils/musicutils.js:1536 +#.TRANS: notch-shelf filter +msgid "notch" msgstr "" -#: js/turtle-singer.js:1334 -#.TRANS: partials are weighted components in a harmonic series -msgid "You must have at least one Partial block inside of a Weighted-partial block" +#: js/utils/musicutils.js:1097 +#: js/utils/musicutils.js:1537 +#.TRANS: all-pass filter +msgid "allpass" msgstr "" -#: js/turtle-singer.js:2048 -msgid "synth cannot play chords." +#: js/utils/musicutils.js:1099 +#: js/utils/musicutils.js:1538 +#.TRANS: peaking filter +msgid "peaking" msgstr "" -#: js/lilypond.js:614 -msgid "brown rat" +#: js/utils/musicutils.js:1100 +#: js/utils/musicutils.js:1546 +#: js/utils/synthutils.js:126 +#: js/blocks/PitchBlocks.js:85 +#.TRANS: sine wave +msgid "sine" msgstr "" -#: js/lilypond.js:615 -msgid "mole" +#: js/utils/musicutils.js:1101 +#: js/utils/musicutils.js:1547 +#: js/utils/synthutils.js:128 +#: js/blocks/PitchBlocks.js:39 +#.TRANS: square wave +msgid "square" msgstr "" -#: js/lilypond.js:616 -msgid "chipmunk" +#: js/utils/musicutils.js:1102 +#: js/utils/musicutils.js:1548 +#: js/utils/synthutils.js:132 +#: js/blocks/PitchBlocks.js:62 +#: js/blocks/ToneBlocks.js:39 +#.TRANS: triangle wave +msgid "triangle" msgstr "" -#: js/lilypond.js:617 -msgid "red squirrel" +#: js/utils/musicutils.js:1103 +#: js/utils/musicutils.js:1549 +#: js/utils/synthutils.js:130 +#: js/blocks/PitchBlocks.js:108 +#.TRANS: sawtooth wave +msgid "sawtooth" msgstr "" -#: js/lilypond.js:618 -msgid "guinea pig" +#: js/utils/musicutils.js:1105 +#: js/utils/musicutils.js:1312 +#: js/blocks/PitchBlocks.js:931 +#: js/blocks/PitchBlocks.js:937 +#: js/turtleactions/PitchActions.js:469 +#.TRANS: even numbers +#.TRANS: invert based on even or odd number or musical scale +msgid "even" msgstr "" -#: js/lilypond.js:619 -msgid "capybara" +#: js/utils/musicutils.js:1107 +#: js/utils/musicutils.js:1313 +#: js/blocks/PitchBlocks.js:937 +#: js/turtleactions/PitchActions.js:471 +#.TRANS: odd numbers +msgid "odd" msgstr "" -#: js/lilypond.js:620 -msgid "coypu" +#: js/utils/musicutils.js:1108 +#: js/utils/musicutils.js:1314 +#: js/blocks/PitchBlocks.js:937 +#: js/turtleactions/PitchActions.js:473 +msgid "scalar" msgstr "" -#: js/lilypond.js:621 -msgid "black rat" +#: js/utils/musicutils.js:1109 +#: js/utils/synthutils.js:72 +#: js/blocks/VolumeBlocks.js:47 +#.TRANS: musical instrument +msgid "piano" msgstr "" -#: js/lilypond.js:622 -msgid "grey squirrel" +#: js/utils/musicutils.js:1110 +#: js/utils/synthutils.js:74 +#.TRANS: musical instrument +msgid "violin" msgstr "" -#: js/lilypond.js:623 -msgid "flying squirrel" +#: js/utils/musicutils.js:1111 +#: js/utils/synthutils.js:76 +#.TRANS: viola musical instrument +msgid "viola" msgstr "" -#: js/lilypond.js:624 -msgid "bat" +#: js/utils/musicutils.js:1112 +#: js/utils/synthutils.js:114 +#.TRANS: xylophone musical instrument +msgid "xylophone" msgstr "" -#: js/lilypond.js:757 -#: js/lilypond.js:921 -#: js/lilypond.js:959 -#: js/ActionBlocks.js:1256 -#: js/ExtrasBlocks.js:553 -msgid "start drum" +#: js/utils/musicutils.js:1113 +#: js/utils/synthutils.js:136 +#.TRANS: vibraphone musical instrument +msgid "vibraphone" msgstr "" -#: js/SaveInterface.js:59 -#: js/SaveInterface.js:61 -#: js/SaveInterface.js:93 -msgid "Music Blocks Project" +#: js/utils/musicutils.js:1114 +#: js/utils/synthutils.js:78 +#.TRANS: musical instrument +msgid "cello" msgstr "" -#: js/SaveInterface.js:63 -msgid "This project was created in Music Blocks" +#: js/utils/musicutils.js:1116 +#: js/utils/synthutils.js:82 +#.TRANS: viola musical instrument +msgid "double bass" msgstr "" -#: js/SaveInterface.js:67 -msgid "Music Blocks is a Free/Libre Software application." +#: js/utils/musicutils.js:1117 +#: js/utils/synthutils.js:84 +#: js/widgets/rhythmruler.js:2511 +#.TRANS: musical instrument +msgid "guitar" msgstr "" -#: js/SaveInterface.js:69 -msgid "The source code can be accessed at" +#: js/utils/musicutils.js:1118 +#: js/utils/synthutils.js:86 +#.TRANS: musical instrument +msgid "acoustic guitar" msgstr "" -#: js/SaveInterface.js:72 -msgid "For more information, please consult the" +#: js/utils/musicutils.js:1119 +#: js/utils/synthutils.js:88 +#.TRANS: musical instrument +msgid "flute" msgstr "" -#: js/SaveInterface.js:83 -msgid "Alternatively, open the file in Music Blocks using the Load project button." +#: js/utils/musicutils.js:1120 +#: js/utils/synthutils.js:90 +#.TRANS: musical instrument +msgid "clarinet" msgstr "" -#: js/SaveInterface.js:85 -msgid "Project Code" +#: js/utils/musicutils.js:1121 +#: js/utils/synthutils.js:92 +#.TRANS: musical instrument +msgid "saxophone" msgstr "" -#: js/SaveInterface.js:87 -msgid "This code stores data about the blocks in a project." +#: js/utils/musicutils.js:1122 +#: js/utils/synthutils.js:94 +#.TRANS: musical instrument +msgid "tuba" msgstr "" -#: js/SaveInterface.js:89 -msgid "Show" +#: js/utils/musicutils.js:1123 +#: js/utils/synthutils.js:96 +#.TRANS: musical instrument +msgid "trumpet" msgstr "" -#: js/SaveInterface.js:91 -msgid "Hide" +#: js/utils/musicutils.js:1124 +#: js/utils/synthutils.js:98 +#.TRANS: musical instrument +msgid "oboe" msgstr "" -#: js/SaveInterface.js:197 -#: js/SaveInterface.js:58 -msgid "No description provided" +#: js/utils/musicutils.js:1125 +#: js/utils/synthutils.js:100 +#.TRANS: musical instrument +msgid "trombone" msgstr "" -#: js/SaveInterface.js:332 -msgid "Your recording is in progress." +#: js/utils/musicutils.js:1126 +#: js/utils/synthutils.js:116 +#.TRANS: polytone synthesizer +msgid "electronic synth" msgstr "" -#: js/SaveInterface.js:401 -#.TRANS: File name prompt for save as Lilypond -msgid "File name" +#: js/utils/musicutils.js:1127 +#: js/utils/synthutils.js:118 +#.TRANS: simple monotone synthesizer +msgid "simple 1" msgstr "" -#: js/SaveInterface.js:403 -#: js/StringHelper.js:39 -#.TRANS: Project title prompt for save as Lilypond -msgid "Project title" +#: js/utils/musicutils.js:1128 +msgid "simple 2" msgstr "" -#: js/SaveInterface.js:405 -#.TRANS: Project title prompt for save as Lilypond -msgid "Project author" +#: js/utils/musicutils.js:1129 +msgid "simple 3" msgstr "" -#: js/SaveInterface.js:407 -#.TRANS: MIDI prompt for save as Lilypond -msgid "Include MIDI output?" +#: js/utils/musicutils.js:1130 +msgid "simple 4" msgstr "" -#: js/SaveInterface.js:409 -#.TRANS: Guitar prompt for save as Lilypond -msgid "Include guitar tablature output?" +#: js/utils/musicutils.js:1131 +#: js/utils/synthutils.js:58 +#: js/blocks/DrumBlocks.js:191 +#.TRANS: white noise synthesizer +msgid "white noise" msgstr "" -#: js/SaveInterface.js:411 -#.TRANS: Lilypond is a scripting language for generating sheet music -msgid "Save as Lilypond" +#: js/utils/musicutils.js:1132 +#: js/utils/synthutils.js:60 +#.TRANS: brown noise synthesizer +msgid "brown noise" msgstr "" -#: js/SaveInterface.js:426 -#: js/EnsembleBlocks.js:75 -#: js/EnsembleBlocks.js:154 -#: js/EnsembleBlocks.js:216 -#: js/EnsembleBlocks.js:302 -#: js/EnsembleBlocks.js:348 -#: js/EnsembleBlocks.js:389 -#: js/EnsembleBlocks.js:441 -#: js/EnsembleBlocks.js:490 -#: js/EnsembleBlocks.js:536 -#: js/EnsembleBlocks.js:583 -#: js/EnsembleBlocks.js:637 -#: js/EnsembleBlocks.js:753 -#: js/EnsembleBlocks.js:840 -#: js/EnsembleBlocks.js:899 -#: js/EnsembleBlocks.js:942 -#: js/EnsembleBlocks.js:1212 -#: js/EnsembleBlocks.js:1280 -#.TRANS: default project author when saving as Lilypond -msgid "Mr. Mouse" +#: js/utils/musicutils.js:1133 +#: js/utils/synthutils.js:62 +#.TRANS: pink noise synthesizer +msgid "pink noise" msgstr "" -#: js/SaveInterface.js:573 -msgid "The Lilypond code is copied to clipboard. You can paste it here: " +#: js/utils/musicutils.js:1135 +#: js/utils/synthutils.js:148 +#: js/widgets/rhythmruler.js:2057 +#: js/widgets/rhythmruler.js:2319 +#.TRANS: musical instrument +msgid "snare drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:50 -#: js/RhythmBlockPaletteBlocks.js:232 -#.TRANS: rhythm block -#.TRANS: translate "rhythm1" as rhythm -msgid "rhythm1" +#: js/utils/musicutils.js:1136 +#: js/utils/synthutils.js:150 +#.TRANS: musical instrument +msgid "kick drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:70 -#: js/RhythmBlockPaletteBlocks.js:251 -#: js/RhythmBlockPaletteBlocks.js:484 -#: js/RhythmBlockPaletteBlocks.js:553 -#: js/RhythmBlockPaletteBlocks.js:874 -msgid "number of notes" +#: js/utils/musicutils.js:1137 +#: js/utils/synthutils.js:152 +#.TRANS: musical instrument +msgid "tom tom" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:126 -msgid "polyphonic rhythm" +#: js/utils/musicutils.js:1138 +#: js/utils/synthutils.js:154 +#.TRANS: musical instrument +msgid "floor tom" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:218 -msgid "The Rhythm block is used to generate rhythm patterns." +#: js/utils/musicutils.js:1139 +#: js/utils/synthutils.js:156 +#.TRANS: musical instrument +msgid "bass drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:279 -msgid "1/64 note" +#: js/utils/musicutils.js:1140 +#: js/utils/synthutils.js:158 +#.TRANS: a drum made from an inverted cup +msgid "cup drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:303 -msgid "1/32 note" +#: js/utils/musicutils.js:1141 +#: js/utils/synthutils.js:160 +#.TRANS: musical instrument +msgid "darbuka drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:331 -msgid "1/16 note" +#: js/utils/musicutils.js:1142 +#: js/utils/synthutils.js:164 +#.TRANS: musical instrument +msgid "hi hat" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:359 -msgid "eighth note" +#: js/utils/musicutils.js:1143 +#: js/utils/synthutils.js:166 +#.TRANS: a small metal bell +msgid "ride bell" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:387 -msgid "quarter note" +#: js/utils/musicutils.js:1144 +#: js/utils/synthutils.js:168 +#.TRANS: musical instrument +msgid "cow bell" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:415 -msgid "half note" +#: js/utils/musicutils.js:1145 +msgid "japanese drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:443 -msgid "whole note" +#: js/utils/musicutils.js:1146 +#: js/utils/synthutils.js:174 +#.TRANS: musical instrument +msgid "japanese bell" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:481 -#: js/RhythmBlockPaletteBlocks.js:550 -#: js/RhythmBlockPaletteBlocks.js:601 -#.TRANS: A tuplet is a note value divided into irregular time values. -msgid "tuplet" +#: js/utils/musicutils.js:1147 +#: js/utils/synthutils.js:170 +#.TRANS: musical instrument +msgid "triangle bell" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:767 -msgid "septuplet" +#: js/utils/musicutils.js:1148 +#: js/utils/synthutils.js:172 +#.TRANS: musical instrument +msgid "finger cymbals" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:795 -msgid "quintuplet" +#: js/utils/musicutils.js:1149 +#: js/utils/synthutils.js:176 +#.TRANS: a musically tuned set of bells +msgid "chime" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:823 -msgid "triplet" +#: js/utils/musicutils.js:1150 +#: js/utils/synthutils.js:178 +#.TRANS: a musical instrument +msgid "gong" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:850 -msgid "simple tuplet" +#: js/utils/musicutils.js:1151 +#: js/utils/synthutils.js:180 +#.TRANS: sound effect +msgid "clang" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:860 -msgid "Tuplets are a collection of notes that get scaled to a specific duration." +#: js/utils/musicutils.js:1152 +#: js/utils/synthutils.js:182 +#.TRANS: sound effect +msgid "crash" msgstr "" -#: js/WidgetBlocks.js:71 -#.TRANS: sound envelope (ADSR) -msgid "envelope" +#: js/utils/musicutils.js:1153 +#: js/utils/synthutils.js:184 +#.TRANS: sound effect +msgid "bottle" msgstr "" -#: js/WidgetBlocks.js:79 -#.TRANS: Attack time is the time taken for initial run-up of level from nil to peak, beginning when the key is first pressed. -msgid "attack" +#: js/utils/musicutils.js:1154 +#: js/utils/synthutils.js:186 +#.TRANS: sound effect +msgid "clap" msgstr "" -#: js/WidgetBlocks.js:81 -#.TRANS: Decay time is the time taken for the subsequent run down from the attack level to the designated sustain level. -msgid "decay" +#: js/utils/musicutils.js:1155 +#: js/utils/synthutils.js:188 +#.TRANS: sound effect +msgid "slap" msgstr "" -#: js/WidgetBlocks.js:83 -#.TRANS: Sustain level is the level during the main sequence of the sound's duration, until the key is released. -msgid "sustain" +#: js/utils/musicutils.js:1156 +#: js/utils/synthutils.js:190 +#.TRANS: sound effect +msgid "splash" msgstr "" -#: js/WidgetBlocks.js:85 -#.TRANS: Release time is the time taken for the level to decay from the sustain level to zero after the key is released. -msgid "release" +#: js/utils/musicutils.js:1157 +#: js/utils/synthutils.js:192 +#.TRANS: sound effect +msgid "bubbles" msgstr "" -#: js/WidgetBlocks.js:96 -msgid "Attack value should be from 0 to 100." +#: js/utils/musicutils.js:1158 +#: js/utils/synthutils.js:194 +#.TRANS: sound effect +msgid "raindrop" msgstr "" -#: js/WidgetBlocks.js:99 -msgid "Decay value should be from 0 to 100." +#: js/utils/musicutils.js:1159 +#: js/utils/synthutils.js:196 +#.TRANS: animal sound effect +msgid "cat" msgstr "" -#: js/WidgetBlocks.js:102 -msgid "Sustain value should be from 0 to 100." +#: js/utils/musicutils.js:1160 +#: js/utils/synthutils.js:198 +#.TRANS: animal sound effect +msgid "cricket" msgstr "" -#: js/WidgetBlocks.js:105 -msgid "Release value should be from 0-100." +#: js/utils/musicutils.js:1161 +#: js/utils/synthutils.js:200 +#.TRANS: animal sound effect +msgid "dog" msgstr "" -#: js/WidgetBlocks.js:121 -msgid "You are adding multiple envelope blocks." +#: js/utils/musicutils.js:1163 +#: js/utils/synthutils.js:102 +#.TRANS: musical instrument +msgid "banjo" msgstr "" -#: js/WidgetBlocks.js:144 -#.TRANS: a filter removes some unwanted components from a signal -msgid "filter" +#: js/utils/musicutils.js:1164 +#: js/utils/synthutils.js:104 +#.TRANS: musical instrument +msgid "koto" msgstr "" -#: js/WidgetBlocks.js:149 -#: js/musicutils.js:706 -#: js/musicutils.js:1105 -#.TRANS: highpass filter -msgid "highpass" +#: js/utils/musicutils.js:1165 +#: js/utils/synthutils.js:106 +#.TRANS: musical instrument +msgid "dulcimer" msgstr "" -#: js/WidgetBlocks.js:152 -#: js/ToneBlocks.js:42 -#: js/timbre.js:1558 -#: js/timbre.js:1808 -#.TRANS: type of filter, e.g., lowpass, highpass, etc. -#.TRANS: there are different types (sine, triangle, square...) of oscillators. -msgid "type" +#: js/utils/musicutils.js:1166 +#: js/utils/synthutils.js:108 +#.TRANS: musical instrument +msgid "electric guitar" msgstr "" -#: js/WidgetBlocks.js:154 -#: js/timbre.js:1818 -#.TRANS: rolloff is the steepness of a change in frequency. -msgid "rolloff" +#: js/utils/musicutils.js:1167 +#: js/utils/synthutils.js:110 +#.TRANS: musical instrument +msgid "bassoon" msgstr "" -#: js/WidgetBlocks.js:155 -#: js/MediaBlocks.js:692 -#: js/temperament.js:382 -#: js/temperament.js:417 -#: js/temperament.js:477 -#: js/temperament.js:485 -#: js/temperament.js:1348 -#: js/timbre.js:1842 -msgid "frequency" +#: js/utils/musicutils.js:1168 +#: js/utils/synthutils.js:112 +#.TRANS: musical instrument +msgid "celeste" msgstr "" -#: js/WidgetBlocks.js:179 -#.TRANS: rolloff is the steepness of a change in frequency. -msgid "Rolloff value should be either -12, -24, -48, or -96 decibels/octave." +#: js/utils/musicutils.js:1170 +#: js/widgets/temperament.js:787 +#.TRANS: musical temperament +msgid "equal" msgstr "" -#: js/WidgetBlocks.js:211 -msgid "The Temperament tool is used to define custom tuning." +#: js/utils/musicutils.js:1172 +#.TRANS: musical temperament +msgid "Pythagorean" msgstr "" -#: js/WidgetBlocks.js:277 -#: js/sampler.js:329 -msgid "Upload a sample and adjust its pitch center." +#: js/utils/musicutils.js:1174 +#.TRANS: musical temperament +msgid "just intonation" msgstr "" -#: js/WidgetBlocks.js:284 -#.TRANS: the speed at music is should be played. -msgid "sampler" +#: js/utils/musicutils.js:1176 +#.TRANS: musical temperament +msgid "meantone" msgstr "" -#: js/WidgetBlocks.js:329 -#: js/WidgetBlocks.js:334 -#: js/IntervalsBlocks.js:928 -#: js/VolumeBlocks.js:411 -#: js/ToneBlocks.js:946 -#: js/VolumeActions.js:218 -#: js/musicutils.js:704 -#: js/musicutils.js:755 -#: js/musicutils.js:798 -#: js/musicutils.js:820 -#: js/musicutils.js:1136 -#: js/synthutils.js:118 -#: js/modewidget.js:919 -#.TRANS: customize voice -msgid "custom" +#: js/utils/musicutils.js:1193 +msgid "major 7th" msgstr "" -#: js/WidgetBlocks.js:432 -msgid "The Meter block opens a tool to select strong beats for the meter." +#: js/utils/musicutils.js:1194 +msgid "minor 7th" msgstr "" -#: js/WidgetBlocks.js:473 -msgid "The oscilloscope block opens a tool to visualize waveforms." +#: js/utils/musicutils.js:1195 +msgid "dominant 7th" msgstr "" -#: js/WidgetBlocks.js:478 -msgid "oscilloscope" +#: js/utils/musicutils.js:1196 +msgid "minor-major 7th" msgstr "" -#: js/WidgetBlocks.js:530 -msgid "The Custom mode block opens a tool to explore musical mode (the spacing of the notes in a scale)." +#: js/utils/musicutils.js:1197 +msgid "fully-diminished 7th" msgstr "" -#: js/WidgetBlocks.js:536 -#.TRANS: musical mode is the pattern of half-steps in an octave, e.g., Major or Minor modes -msgid "custom mode" +#: js/utils/musicutils.js:1198 +msgid "half-diminished 7th" msgstr "" -#: js/WidgetBlocks.js:570 -msgid "The Tempo block opens a metronome to visualize the beat." +#: js/utils/musicutils.js:1557 +#: js/utils/musicutils.js:1569 +msgid "Equal (12EDO)" msgstr "" -#: js/WidgetBlocks.js:617 -msgid "The Arpeggio Widget is used to compose chord sequences." +#: js/utils/musicutils.js:1558 +#: js/utils/musicutils.js:1570 +msgid "5-limit Just Intonation" msgstr "" -#: js/WidgetBlocks.js:623 -#: js/IntervalsBlocks.js:683 -msgid "arpeggio" +#: js/utils/musicutils.js:1559 +#: js/utils/musicutils.js:1571 +msgid "Pythagorean (3-limit JI)" msgstr "" -#: js/WidgetBlocks.js:677 -msgid "The Pitch drum matrix is used to map pitches to drum sounds." +#: js/utils/musicutils.js:1560 +#: js/utils/musicutils.js:1561 +#: js/utils/musicutils.js:1572 +#: js/utils/musicutils.js:1573 +msgid "Meantone" msgstr "" -#: js/WidgetBlocks.js:682 -#.TRANS: makes a mapping between pitches and drum sounds -msgid "pitch-drum mapper" +#: js/utils/musicutils.js:1574 +msgid "Custom" msgstr "" -#: js/WidgetBlocks.js:724 -msgid "You must have at least one pitch block and one drum block in the matrix." +#: js/utils/musicutils.js:5387 +#: js/utils/musicutils.js:5430 +msgid "current" msgstr "" -#: js/WidgetBlocks.js:746 -msgid "The Pitch slider tool to is used to generate pitches at selected frequencies." +#: js/utils/musicutils.js:5390 +#: js/utils/musicutils.js:5421 +msgid "next" msgstr "" -#: js/WidgetBlocks.js:751 -#.TRANS: widget to generate pitches using a slider -msgid "pitch slider" +#: js/utils/musicutils.js:5393 +#: js/utils/musicutils.js:5426 +msgid "previous" msgstr "" -#: js/WidgetBlocks.js:788 -msgid "chromatic keyboard" +#: js/utils/synthutils.js:120 +#.TRANS: simple monotone synthesizer +msgid "simple-2" msgstr "" -#: js/WidgetBlocks.js:815 -#: js/WidgetBlocks.js:874 -#.TRANS: widget to generate pitches using a slider -msgid "music keyboard" +#: js/utils/synthutils.js:122 +#.TRANS: simple monotone synthesizer +msgid "simple-3" msgstr "" -#: js/WidgetBlocks.js:859 -#: js/WidgetBlocks.js:866 -msgid "The Music keyboard block opens a piano keyboard that can be used to create notes." +#: js/utils/synthutils.js:124 +#.TRANS: simple monotone synthesizer +msgid "simple-4" msgstr "" -#: js/WidgetBlocks.js:910 -msgid "The Pitch staircase tool to is used to generate pitches from a given ratio." +#: js/utils/synthutils.js:162 +#.TRANS: musical instrument +msgid "taiko" msgstr "" -#: js/WidgetBlocks.js:917 -#.TRANS: generate a progressive sequence of pitches -msgid "pitch staircase" +#: js/blocks/ActionBlocks.js:58 +msgid "The Return block will return a value from an action." msgstr "" -#: js/WidgetBlocks.js:982 -msgid "The Rhythm Maker block opens a tool to create drum machines." +#: js/blocks/ActionBlocks.js:75 +msgid "return" msgstr "" -#: js/WidgetBlocks.js:1036 -msgid "G major scale" +#: js/blocks/ActionBlocks.js:128 +msgid "The Return to URL block will return a value to a webpage." msgstr "" -#: js/WidgetBlocks.js:1064 -msgid "C major scale" +#: js/blocks/ActionBlocks.js:145 +msgid "return to URL" msgstr "" -#: js/WidgetBlocks.js:1097 -msgid "The Phrase Maker block opens a tool to create musical phrases." +#: js/blocks/ActionBlocks.js:233 +#: js/blocks/ActionBlocks.js:290 +#: js/blocks/ActionBlocks.js:501 +#: js/blocks/ActionBlocks.js:688 +msgid "The Calculate block returns a value calculated by an action." msgstr "" -#: js/WidgetBlocks.js:1104 -#.TRANS: assigns pitch to a sequence of beats to generate a melody -msgid "phrase maker" +#: js/blocks/ActionBlocks.js:251 +#: js/blocks/ActionBlocks.js:517 +#: js/blocks/ActionBlocks.js:707 +msgid "calculate" msgstr "" -#: js/WidgetBlocks.js:1168 -msgid "You must have at least one pitch block and one rhythm block in the matrix." +#: js/blocks/ActionBlocks.js:376 +#: js/blocks/ActionBlocks.js:593 +#: js/blocks/ActionBlocks.js:942 +#: js/blocks/ActionBlocks.js:1389 +#.TRANS: do is the do something or take an action. +msgid "The Do block is used to initiate an action." msgstr "" -#: js/WidgetBlocks.js:1220 -msgid "The Status block opens a tool for inspecting the status of Music Blocks as it is running." +#: js/blocks/ActionBlocks.js:390 +#: js/blocks/ActionBlocks.js:610 +#: js/blocks/ActionBlocks.js:959 +#: js/blocks/ActionBlocks.js:1048 +#: js/blocks/MeterBlocks.js:769 +msgid "do1" msgstr "" -#: js/IntervalsBlocks.js:45 -msgid "set temperament" +#: js/blocks/ActionBlocks.js:390 +#: js/blocks/ActionBlocks.js:610 +#: js/blocks/ActionBlocks.js:959 +#: js/blocks/ActionBlocks.js:1048 +#: js/blocks/FlowBlocks.js:742 +#: js/blocks/FlowBlocks.js:822 +#: js/blocks/MeterBlocks.js:769 +msgid "do" msgstr "" -#: js/IntervalsBlocks.js:63 -#: js/MediaBlocks.js:746 -#: js/PitchBlocks.js:657 -#: js/PitchBlocks.js:933 -#: js/PitchBlocks.js:972 -#: js/PitchBlocks.js:1005 -#: js/PitchBlocks.js:1166 -#: js/PitchBlocks.js:1679 -#: js/PitchBlocks.js:1720 -#: js/PitchBlocks.js:1827 -#: js/ToneBlocks.js:1025 -#.TRANS: adjusts the shift up or down by one octave (twelve half-steps in the interval between two notes, one having twice or half the frequency in Hz of the other.) -msgid "octave" +#: js/blocks/ActionBlocks.js:791 +#: js/blocks/ActionBlocks.js:865 +msgid "The Arg block contains the value of an argument passed to an action." msgstr "" -#: js/IntervalsBlocks.js:99 -msgid "The Temperament name block is used to select a tuning method." +#: js/blocks/ActionBlocks.js:806 +#: js/blocks/ActionBlocks.js:878 +msgid "arg" msgstr "" -#: js/IntervalsBlocks.js:161 -msgid "doubly" +#: js/blocks/ActionBlocks.js:836 +#: js/blocks/ActionBlocks.js:900 +#: js/blocks/ActionBlocks.js:908 +msgid "Invalid argument" msgstr "" -#: js/IntervalsBlocks.js:166 -msgid "The Doubly block will double the size of an interval." +#: js/blocks/ActionBlocks.js:944 +msgid "In the example, it is used with the One of block to choose a random phase." msgstr "" -#: js/IntervalsBlocks.js:262 -msgid "interval number" +#: js/blocks/ActionBlocks.js:1019 +#: js/blocks/ActionBlocks.js:1026 +msgid "The Listen block is used to listen for an event such as a mouse click." msgstr "" -#: js/IntervalsBlocks.js:330 -#.TRANS: measure the distance between two pitches in semi-tones -msgid "semi-tone interval measure" +#: js/blocks/ActionBlocks.js:1028 +msgid "When the event happens, an action is taken." msgstr "" -#: js/IntervalsBlocks.js:397 -#: js/IntervalsBlocks.js:513 -msgid "You must use two pitch blocks when measuring an interval." +#: js/blocks/ActionBlocks.js:1045 +msgid "on" msgstr "" -#: js/IntervalsBlocks.js:439 -msgid "The Scalar interval block measures the distance between two notes in the current key and mode." +#: js/blocks/ActionBlocks.js:1048 +#: js/blocks/ActionBlocks.js:1049 +#: js/blocks/ActionBlocks.js:1153 +msgid "event" msgstr "" -#: js/IntervalsBlocks.js:445 -#.TRANS: measure the distance between two pitches in steps of musical scale -msgid "scalar interval measure" +#: js/blocks/ActionBlocks.js:1133 +msgid "The Broadcast block is used to trigger an event." msgstr "" -#: js/IntervalsBlocks.js:592 -#: js/musicutils.js:637 -#: js/musicutils.js:908 -#.TRANS: perfect is a music term related to intervals -msgid "perfect" +#: js/blocks/ActionBlocks.js:1151 +msgid "broadcast" msgstr "" -#: js/IntervalsBlocks.js:621 -msgid "In the figure, we add sol# to sol." +#: js/blocks/ActionBlocks.js:1208 +msgid "Each Start block is a separate voice." msgstr "" -#: js/IntervalsBlocks.js:627 -#: js/OrnamentBlocks.js:220 -#.TRANS: calculate a relative step between notes based on semi-tones -msgid "semi-tone interval" +#: js/blocks/ActionBlocks.js:1304 +msgid "It is often used for storing a phrase of music that is repeated." msgstr "" -#: js/IntervalsBlocks.js:676 -msgid "The output of the example is: do, mi, sol, sol, ti, mi" +#: js/blocks/ActionBlocks.js:1495 +msgid "define temperament" msgstr "" -#: js/IntervalsBlocks.js:735 -msgid "The Chord block calculates common chords." +#: js/blocks/BooleanBlocks.js:44 +msgid "The Not block is the logical not operator." msgstr "" -#: js/IntervalsBlocks.js:737 -msgid "In the figure, we generate a C-major chord." -msgstr "" +#: js/blocks/BooleanBlocks.js:62 +msgid "not" +msgstr "değil" -#: js/IntervalsBlocks.js:742 -msgid "chord" +#: js/blocks/BooleanBlocks.js:134 +msgid "The And block is the logical and operator." msgstr "" -#: js/IntervalsBlocks.js:794 -msgid "The Ratio Interval block calculates an interval based on a ratio." -msgstr "" +#: js/blocks/BooleanBlocks.js:152 +msgid "and" +msgstr "ve" -#: js/IntervalsBlocks.js:799 -msgid "ratio interval" +#: js/blocks/BooleanBlocks.js:218 +msgid "The Or block is the logical or operator." msgstr "" -#: js/IntervalsBlocks.js:868 -msgid "In the figure, we add la to sol." -msgstr "" +#: js/blocks/BooleanBlocks.js:236 +msgid "or" +msgstr "veya" -#: js/IntervalsBlocks.js:924 -#.TRANS: define a custom mode -msgid "define mode" +#: js/blocks/BooleanBlocks.js:302 +msgid "The XOR block is the logical XOR operator." msgstr "" -#: js/IntervalsBlocks.js:977 -msgid "movable Do" +#: js/blocks/BooleanBlocks.js:320 +msgid "xor" msgstr "" -#: js/IntervalsBlocks.js:1028 -#.TRANS: mode length is the number of notes in the mode, e.g., 7 for major and minor scales; 12 for chromatic scales -msgid "mode length" +#: js/blocks/BooleanBlocks.js:808 +msgid "The Equal block returns True if the two numbers are equal." msgstr "" -#: js/IntervalsBlocks.js:1037 -msgid "The Mode length block is the number of notes in the current scale." +#: js/blocks/BooleanBlocks.js:909 +msgid "The Not-equal-to block returns True if the two numbers are not equal to each other." msgstr "" -#: js/IntervalsBlocks.js:1039 -msgid "Most Western scales have 7 notes." +#: js/blocks/BooleanBlocks.js:1008 +msgid "The Boolean block is used to specify true or false." msgstr "" -#: js/IntervalsBlocks.js:1088 -#.TRANS: the mode in music is 'major', 'minor', etc. -msgid "current mode" +#: js/blocks/BoxesBlocks.js:53 +#: js/blocks/BoxesBlocks.js:59 +msgid "The Add-to block is used to add to the value stored in a box." msgstr "" -#: js/IntervalsBlocks.js:1141 -#.TRANS: the key is a group of pitches with which a music composition is created -msgid "current key" +#: js/blocks/BoxesBlocks.js:61 +msgid "It can also be used with other blocks such as Color and Pen size." msgstr "" -#: js/IntervalsBlocks.js:1193 -#: js/IntervalsBlocks.js:1238 -#.TRANS: set the key and mode, e.g. C Major -msgid "set key" +#: js/blocks/BoxesBlocks.js:73 +msgid "add" msgstr "" -#: js/IntervalsBlocks.js:1247 -#: js/IntervalsBlocks.js:1253 -msgid "The Set key block is used to set the key and mode," +#: js/blocks/BoxesBlocks.js:75 +#: js/widgets/temperament.js:857 +msgid "to" msgstr "" -#: js/IntervalsBlocks.js:1253 -msgid "eg C Major" +#: js/blocks/BoxesBlocks.js:75 +#: js/blocks/BoxesBlocks.js:595 +#: js/blocks/HeapBlocks.js:544 +msgid "value1" msgstr "" -#: js/IntervalsBlocks.js:1266 -#: js/DictBlocks.js:215 -#: js/DictBlocks.js:216 -#: js/DictBlocks.js:289 -#: js/DictBlocks.js:290 -#: js/DictBlocks.js:357 -#: js/DictBlocks.js:430 -#: js/DictBlocks.js:431 -#.TRANS: key, e.g., C in C Major -msgid "key" +#: js/blocks/BoxesBlocks.js:118 +msgid "Block does not support incrementing." msgstr "" -#: js/ActionBlocks.js:58 -msgid "The Return block will return a value from an action." +#: js/blocks/BoxesBlocks.js:152 +msgid "The Add-1-to block adds one to the value stored in a box." msgstr "" -#: js/ActionBlocks.js:75 -msgid "return" +#: js/blocks/BoxesBlocks.js:163 +msgid "add 1 to" msgstr "" -#: js/ActionBlocks.js:128 -msgid "The Return to URL block will return a value to a webpage." +#: js/blocks/BoxesBlocks.js:211 +msgid "The Subtract-1-from block subtracts one from the value stored in a box." msgstr "" -#: js/ActionBlocks.js:145 -msgid "return to URL" +#: js/blocks/BoxesBlocks.js:222 +msgid "subtract 1 from" msgstr "" -#: js/ActionBlocks.js:233 -#: js/ActionBlocks.js:290 -#: js/ActionBlocks.js:501 -#: js/ActionBlocks.js:688 -msgid "The Calculate block returns a value calculated by an action." +#: js/blocks/BoxesBlocks.js:270 +#: js/blocks/BoxesBlocks.js:387 +msgid "The Box block returns the value stored in a box." msgstr "" -#: js/ActionBlocks.js:251 -#: js/ActionBlocks.js:517 -#: js/ActionBlocks.js:707 -msgid "calculate" +#: js/blocks/BoxesBlocks.js:500 +#: js/blocks/BoxesBlocks.js:576 +msgid "The Store in block will store a value in a box." msgstr "" -#: js/ActionBlocks.js:376 -#: js/ActionBlocks.js:593 -#: js/ActionBlocks.js:942 -#: js/ActionBlocks.js:1389 -#.TRANS: do is the do something or take an action. -msgid "The Do block is used to initiate an action." +#: js/blocks/BoxesBlocks.js:595 +#: js/blocks/EnsembleBlocks.js:391 +#: js/blocks/EnsembleBlocks.js:402 +msgid "name1" msgstr "" -#: js/ActionBlocks.js:390 -#: js/ActionBlocks.js:610 -#: js/ActionBlocks.js:959 -#: js/ActionBlocks.js:1048 -#: js/MeterBlocks.js:769 -msgid "do1" +#: js/blocks/BoxesBlocks.js:652 +msgid "The Box2 block returns the value stored in Box2." msgstr "" -#: js/ActionBlocks.js:390 -#: js/ActionBlocks.js:610 -#: js/ActionBlocks.js:959 -#: js/ActionBlocks.js:1048 -#: js/FlowBlocks.js:742 -#: js/FlowBlocks.js:822 -#: js/MeterBlocks.js:769 -msgid "do" +#: js/blocks/BoxesBlocks.js:703 +msgid "The Store in Box2 block is used to store a value in Box2." msgstr "" -#: js/ActionBlocks.js:791 -#: js/ActionBlocks.js:865 -msgid "The Arg block contains the value of an argument passed to an action." +#: js/blocks/BoxesBlocks.js:715 +msgid "store in box2" msgstr "" -#: js/ActionBlocks.js:806 -#: js/ActionBlocks.js:878 -msgid "arg" +#: js/blocks/BoxesBlocks.js:761 +msgid "The Box1 block returns the value stored in Box1." msgstr "" -#: js/ActionBlocks.js:836 -#: js/ActionBlocks.js:900 -#: js/ActionBlocks.js:908 -msgid "Invalid argument" +#: js/blocks/BoxesBlocks.js:812 +msgid "The Store in Box1 block is used to store a value in Box1." msgstr "" -#: js/ActionBlocks.js:944 -msgid "In the example, it is used with the One of block to choose a random phase." +#: js/blocks/BoxesBlocks.js:826 +msgid "store in box1" msgstr "" -#: js/ActionBlocks.js:1019 -#: js/ActionBlocks.js:1026 -msgid "The Listen block is used to listen for an event such as a mouse click." +#: js/blocks/DictBlocks.js:77 +msgid "show dictionary" msgstr "" -#: js/ActionBlocks.js:1028 -msgid "When the event happens, an action is taken." +#: js/blocks/DictBlocks.js:80 +#: js/blocks/DictBlocks.js:145 +#: js/blocks/DictBlocks.js:216 +#: js/blocks/DictBlocks.js:290 +#: js/blocks/ProgramBlocks.js:396 +#: js/blocks/ProgramBlocks.js:501 +#: js/blocks/ProgramBlocks.js:664 +msgid "My Dictionary" msgstr "" -#: js/ActionBlocks.js:1045 -msgid "on" +#: js/blocks/DictBlocks.js:129 +msgid "The Dictionary block returns a dictionary." msgstr "" -#: js/ActionBlocks.js:1048 -#: js/ActionBlocks.js:1049 -#: js/ActionBlocks.js:1153 -msgid "event" +#: js/blocks/DictBlocks.js:197 +#: js/blocks/DictBlocks.js:339 +msgid "The Get-dict block returns a value in the dictionary for a specified key." msgstr "" -#: js/ActionBlocks.js:1133 -msgid "The Broadcast block is used to trigger an event." +#: js/blocks/DictBlocks.js:212 +#: js/blocks/DictBlocks.js:354 +#.TRANS: retrieve a value from the dictionary with a given key +msgid "get value" msgstr "" -#: js/ActionBlocks.js:1151 -msgid "broadcast" +#: js/blocks/DictBlocks.js:215 +#: js/blocks/DictBlocks.js:216 +#: js/blocks/DictBlocks.js:289 +#: js/blocks/DictBlocks.js:290 +#: js/blocks/DictBlocks.js:357 +#: js/blocks/DictBlocks.js:430 +#: js/blocks/DictBlocks.js:431 +msgid "key2" msgstr "" -#: js/ActionBlocks.js:1208 -msgid "Each Start block is a separate voice." +#: js/blocks/DictBlocks.js:215 +#: js/blocks/DictBlocks.js:216 +#: js/blocks/DictBlocks.js:289 +#: js/blocks/DictBlocks.js:290 +#: js/blocks/DictBlocks.js:357 +#: js/blocks/DictBlocks.js:430 +#: js/blocks/DictBlocks.js:431 +#: js/blocks/IntervalsBlocks.js:1462 +#.TRANS: key, e.g., C in C Major +msgid "key" msgstr "" -#: js/ActionBlocks.js:1304 -msgid "It is often used for storing a phrase of music that is repeated." +#: js/blocks/DictBlocks.js:271 +#: js/blocks/DictBlocks.js:411 +msgid "The Set-dict block sets a value in the dictionary for a specified key." msgstr "" -#: js/ActionBlocks.js:1495 -msgid "define temperament" +#: js/blocks/DictBlocks.js:286 +#: js/blocks/DictBlocks.js:427 +#.TRANS: set a value in the dictionary for a given key +msgid "set value" msgstr "" -#: js/EnsembleBlocks.js:66 +#: js/blocks/EnsembleBlocks.js:66 msgid "mouse index heap" msgstr "" -#: js/EnsembleBlocks.js:68 +#: js/blocks/EnsembleBlocks.js:68 msgid "The Mouse index heap block returns a value in the heap at a specified location for a specified mouse." msgstr "" -#: js/EnsembleBlocks.js:77 -#: js/EnsembleBlocks.js:1080 +#: js/blocks/EnsembleBlocks.js:77 +#: js/blocks/EnsembleBlocks.js:1080 msgid "mouse name" msgstr "" -#: js/EnsembleBlocks.js:77 -#: js/EnsembleBlocks.js:92 -#: js/HeapBlocks.js:544 +#: js/blocks/EnsembleBlocks.js:77 +#: js/blocks/EnsembleBlocks.js:92 +#: js/blocks/HeapBlocks.js:544 #.TRANS: value1 is a numeric value (JAPANESE ONLY) msgid "index" msgstr "" -#: js/EnsembleBlocks.js:80 +#: js/blocks/EnsembleBlocks.js:80 msgid "turtle index heap" msgstr "" -#: js/EnsembleBlocks.js:82 +#: js/blocks/EnsembleBlocks.js:82 msgid "The Turtle index heap block returns a value in the heap at a specified location for a specified turtle." msgstr "" -#: js/EnsembleBlocks.js:90 -#: js/EnsembleBlocks.js:167 -#: js/EnsembleBlocks.js:230 -#: js/EnsembleBlocks.js:316 -#: js/EnsembleBlocks.js:362 -#: js/EnsembleBlocks.js:400 -#: js/EnsembleBlocks.js:454 -#: js/EnsembleBlocks.js:504 -#: js/EnsembleBlocks.js:550 -#: js/EnsembleBlocks.js:597 -#: js/EnsembleBlocks.js:651 -#: js/EnsembleBlocks.js:763 -#: js/EnsembleBlocks.js:854 -#: js/EnsembleBlocks.js:915 -#: js/EnsembleBlocks.js:955 -#: js/EnsembleBlocks.js:1219 -#: js/EnsembleBlocks.js:1293 +#: js/blocks/EnsembleBlocks.js:90 +#: js/blocks/EnsembleBlocks.js:167 +#: js/blocks/EnsembleBlocks.js:230 +#: js/blocks/EnsembleBlocks.js:316 +#: js/blocks/EnsembleBlocks.js:362 +#: js/blocks/EnsembleBlocks.js:400 +#: js/blocks/EnsembleBlocks.js:454 +#: js/blocks/EnsembleBlocks.js:504 +#: js/blocks/EnsembleBlocks.js:550 +#: js/blocks/EnsembleBlocks.js:597 +#: js/blocks/EnsembleBlocks.js:651 +#: js/blocks/EnsembleBlocks.js:763 +#: js/blocks/EnsembleBlocks.js:854 +#: js/blocks/EnsembleBlocks.js:915 +#: js/blocks/EnsembleBlocks.js:955 +#: js/blocks/EnsembleBlocks.js:1219 +#: js/blocks/EnsembleBlocks.js:1293 #.TRANS: Yertle is the name of a turtle. msgid "Yertle" msgstr "" -#: js/EnsembleBlocks.js:92 -#: js/EnsembleBlocks.js:1089 +#: js/blocks/EnsembleBlocks.js:92 +#: js/blocks/EnsembleBlocks.js:1089 msgid "turtle name" msgstr "" -#: js/EnsembleBlocks.js:122 -#: js/EnsembleBlocks.js:1197 -#: js/HeapBlocks.js:474 -#: js/HeapBlocks.js:572 +#: js/blocks/EnsembleBlocks.js:122 +#: js/blocks/EnsembleBlocks.js:1197 +#: js/blocks/HeapBlocks.js:474 +#: js/blocks/HeapBlocks.js:572 msgid "Index must be > 0." msgstr "" -#: js/EnsembleBlocks.js:127 -#: js/HeapBlocks.js:479 -#: js/HeapBlocks.js:577 +#: js/blocks/EnsembleBlocks.js:127 +#: js/blocks/HeapBlocks.js:479 +#: js/blocks/HeapBlocks.js:577 msgid "Maximum heap size is 1000." msgstr "" -#: js/EnsembleBlocks.js:145 +#: js/blocks/EnsembleBlocks.js:145 msgid "stop mouse" msgstr "" -#: js/EnsembleBlocks.js:147 +#: js/blocks/EnsembleBlocks.js:147 msgid "The Stop mouse block stops the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:158 +#: js/blocks/EnsembleBlocks.js:158 msgid "stop turtle" msgstr "" -#: js/EnsembleBlocks.js:160 +#: js/blocks/EnsembleBlocks.js:160 msgid "The Stop turtle block stops the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:184 -#: js/EnsembleBlocks.js:247 -#: js/EnsembleBlocks.js:413 -#: js/EnsembleBlocks.js:468 -#: js/EnsembleBlocks.js:706 -#: js/EnsembleBlocks.js:808 -#: js/EnsembleBlocks.js:870 -#: js/EnsembleBlocks.js:1190 -#: js/EnsembleBlocks.js:1253 +#: js/blocks/EnsembleBlocks.js:184 +#: js/blocks/EnsembleBlocks.js:247 +#: js/blocks/EnsembleBlocks.js:413 +#: js/blocks/EnsembleBlocks.js:468 +#: js/blocks/EnsembleBlocks.js:706 +#: js/blocks/EnsembleBlocks.js:808 +#: js/blocks/EnsembleBlocks.js:870 +#: js/blocks/EnsembleBlocks.js:1190 +#: js/blocks/EnsembleBlocks.js:1253 msgid "Cannot find mouse" msgstr "" -#: js/EnsembleBlocks.js:186 -#: js/EnsembleBlocks.js:249 -#: js/EnsembleBlocks.js:415 -#: js/EnsembleBlocks.js:470 -#: js/EnsembleBlocks.js:708 -#: js/EnsembleBlocks.js:810 -#: js/EnsembleBlocks.js:872 -#: js/EnsembleBlocks.js:1192 -#: js/EnsembleBlocks.js:1255 +#: js/blocks/EnsembleBlocks.js:186 +#: js/blocks/EnsembleBlocks.js:249 +#: js/blocks/EnsembleBlocks.js:415 +#: js/blocks/EnsembleBlocks.js:470 +#: js/blocks/EnsembleBlocks.js:708 +#: js/blocks/EnsembleBlocks.js:810 +#: js/blocks/EnsembleBlocks.js:872 +#: js/blocks/EnsembleBlocks.js:1192 +#: js/blocks/EnsembleBlocks.js:1255 msgid "Cannot find turtle" msgstr "" -#: js/EnsembleBlocks.js:206 +#: js/blocks/EnsembleBlocks.js:206 msgid "start mouse" msgstr "" -#: js/EnsembleBlocks.js:209 +#: js/blocks/EnsembleBlocks.js:209 msgid "The Start mouse block starts the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:220 +#: js/blocks/EnsembleBlocks.js:220 msgid "start turtle" msgstr "" -#: js/EnsembleBlocks.js:223 +#: js/blocks/EnsembleBlocks.js:223 msgid "The Start turtle block starts the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:256 +#: js/blocks/EnsembleBlocks.js:256 msgid "Mouse is already running." msgstr "" -#: js/EnsembleBlocks.js:258 +#: js/blocks/EnsembleBlocks.js:258 msgid "Turtle is already running." msgstr "" -#: js/EnsembleBlocks.js:282 +#: js/blocks/EnsembleBlocks.js:282 msgid "Cannot find start block" msgstr "" -#: js/EnsembleBlocks.js:292 +#: js/blocks/EnsembleBlocks.js:292 #.TRANS: pen color for this mouse msgid "mouse color" msgstr "" -#: js/EnsembleBlocks.js:294 +#: js/blocks/EnsembleBlocks.js:294 msgid "The Mouse color block returns the pen color of the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:306 +#: js/blocks/EnsembleBlocks.js:306 #.TRANS: pen color for this turtle msgid "turtle color" msgstr "" -#: js/EnsembleBlocks.js:308 +#: js/blocks/EnsembleBlocks.js:308 msgid "The Turtle color block returns the pen color of the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:338 +#: js/blocks/EnsembleBlocks.js:338 #.TRANS: heading (compass direction) for this mouse msgid "mouse heading" msgstr "" -#: js/EnsembleBlocks.js:340 +#: js/blocks/EnsembleBlocks.js:340 msgid "The Mouse heading block returns the heading of the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:352 +#: js/blocks/EnsembleBlocks.js:352 #.TRANS: heading (compass direction) for this turtle msgid "turtle heading" msgstr "" -#: js/EnsembleBlocks.js:354 +#: js/blocks/EnsembleBlocks.js:354 msgid "The Turtle heading block returns the heading of the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:384 -#: js/EnsembleBlocks.js:439 +#: js/blocks/EnsembleBlocks.js:384 +#: js/blocks/EnsembleBlocks.js:439 #.TRANS: set xy position for this mouse msgid "set mouse" msgstr "" -#: js/EnsembleBlocks.js:391 -#: js/EnsembleBlocks.js:402 -#: js/BoxesBlocks.js:595 -msgid "name1" -msgstr "" - -#: js/EnsembleBlocks.js:391 -#: js/EnsembleBlocks.js:402 -#: js/ProgramBlocks.js:881 -#: js/GraphicsBlocks.js:235 -#: js/GraphicsBlocks.js:313 -#: js/GraphicsBlocks.js:436 -#: js/GraphicsBlocks.js:487 -#: js/GraphicsBlocks.js:534 -#: js/GraphicsBlocks.js:750 +#: js/blocks/EnsembleBlocks.js:391 +#: js/blocks/EnsembleBlocks.js:402 +#: js/blocks/GraphicsBlocks.js:235 +#: js/blocks/GraphicsBlocks.js:313 +#: js/blocks/GraphicsBlocks.js:436 +#: js/blocks/GraphicsBlocks.js:487 +#: js/blocks/GraphicsBlocks.js:534 +#: js/blocks/GraphicsBlocks.js:750 +#: js/blocks/ProgramBlocks.js:881 msgid "x" msgstr "x" -#: js/EnsembleBlocks.js:391 -#: js/EnsembleBlocks.js:402 -#: js/ProgramBlocks.js:881 -#: js/GraphicsBlocks.js:149 -#: js/GraphicsBlocks.js:313 -#: js/GraphicsBlocks.js:436 -#: js/GraphicsBlocks.js:487 -#: js/GraphicsBlocks.js:534 -#: js/GraphicsBlocks.js:750 +#: js/blocks/EnsembleBlocks.js:391 +#: js/blocks/EnsembleBlocks.js:402 +#: js/blocks/GraphicsBlocks.js:149 +#: js/blocks/GraphicsBlocks.js:313 +#: js/blocks/GraphicsBlocks.js:436 +#: js/blocks/GraphicsBlocks.js:487 +#: js/blocks/GraphicsBlocks.js:534 +#: js/blocks/GraphicsBlocks.js:750 +#: js/blocks/ProgramBlocks.js:881 msgid "y" msgstr "y" -#: js/EnsembleBlocks.js:395 -#: js/EnsembleBlocks.js:452 +#: js/blocks/EnsembleBlocks.js:395 +#: js/blocks/EnsembleBlocks.js:452 #.TRANS: set xy position for this turtle msgid "set turtle" msgstr "" -#: js/EnsembleBlocks.js:433 +#: js/blocks/EnsembleBlocks.js:433 msgid "The Set mouse block sends a stack of blocks to be run by the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:446 +#: js/blocks/EnsembleBlocks.js:446 msgid "The Set turtle block sends a stack of blocks to be run by the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:480 +#: js/blocks/EnsembleBlocks.js:480 #.TRANS: y position for this mouse msgid "mouse y" msgstr "" -#: js/EnsembleBlocks.js:482 +#: js/blocks/EnsembleBlocks.js:482 msgid "The Y mouse block returns the Y position of the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:494 +#: js/blocks/EnsembleBlocks.js:494 #.TRANS: y position for this turtle msgid "turtle y" msgstr "" -#: js/EnsembleBlocks.js:496 +#: js/blocks/EnsembleBlocks.js:496 msgid "The Y turtle block returns the Y position of the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:526 +#: js/blocks/EnsembleBlocks.js:526 #.TRANS: x position for this mouse msgid "mouse x" msgstr "" -#: js/EnsembleBlocks.js:528 +#: js/blocks/EnsembleBlocks.js:528 msgid "The X mouse block returns the X position of the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:540 +#: js/blocks/EnsembleBlocks.js:540 #.TRANS: x position for this turtle msgid "turtle x" msgstr "" -#: js/EnsembleBlocks.js:542 +#: js/blocks/EnsembleBlocks.js:542 msgid "The X turtle block returns the X position of the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:573 +#: js/blocks/EnsembleBlocks.js:573 #.TRANS: notes played by this mouse msgid "mouse notes played" msgstr "" -#: js/EnsembleBlocks.js:575 +#: js/blocks/EnsembleBlocks.js:575 msgid "The Mouse elapse notes block returns the number of notes played by the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:587 +#: js/blocks/EnsembleBlocks.js:587 #.TRANS: notes played by this turtle msgid "turtle notes played" msgstr "" -#: js/EnsembleBlocks.js:589 +#: js/blocks/EnsembleBlocks.js:589 msgid "The Turtle elapse notes block returns the number of notes played by the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:627 +#: js/blocks/EnsembleBlocks.js:627 #.TRANS: convert current note for this turtle to piano key (1-88) msgid "mouse pitch number" msgstr "" -#: js/EnsembleBlocks.js:629 +#: js/blocks/EnsembleBlocks.js:629 msgid "The Mouse pitch block returns the current pitch number being played by the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:641 +#: js/blocks/EnsembleBlocks.js:641 #.TRANS: convert current note for this turtle to piano key (1-88) msgid "turtle pitch number" msgstr "" -#: js/EnsembleBlocks.js:643 -msgid "The Turrle pitch block returns the current pitch number being played by the specified turtle." +#: js/blocks/EnsembleBlocks.js:643 +msgid "The Turtle pitch block returns the current pitch number being played by the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:747 -#: js/EnsembleBlocks.js:819 +#: js/blocks/EnsembleBlocks.js:747 +#: js/blocks/EnsembleBlocks.js:819 #.TRANS: note value is the duration of the note played by this mouse msgid "mouse note value" msgstr "" -#: js/EnsembleBlocks.js:757 +#: js/blocks/EnsembleBlocks.js:757 #.TRANS: note value is the duration of the note played by this turtle msgid "turtle note value" msgstr "" -#: js/EnsembleBlocks.js:830 +#: js/blocks/EnsembleBlocks.js:830 #.TRANS: sync is short for synchronization msgid "mouse sync" msgstr "" -#: js/EnsembleBlocks.js:832 +#: js/blocks/EnsembleBlocks.js:832 msgid "The Mouse sync block aligns the beat count between mice." msgstr "" -#: js/EnsembleBlocks.js:844 +#: js/blocks/EnsembleBlocks.js:844 #.TRANS: sync is short for synchronization msgid "turtle sync" msgstr "" -#: js/EnsembleBlocks.js:846 +#: js/blocks/EnsembleBlocks.js:846 msgid "The Turtle sync block aligns the beat count between turtles." msgstr "" -#: js/EnsembleBlocks.js:887 +#: js/blocks/EnsembleBlocks.js:887 msgid "The Found mouse block will return true if the specified mouse can be found." msgstr "" -#: js/EnsembleBlocks.js:893 +#: js/blocks/EnsembleBlocks.js:893 msgid "found mouse" msgstr "" -#: js/EnsembleBlocks.js:903 +#: js/blocks/EnsembleBlocks.js:903 msgid "The Found turtle block will return true if the specified turtle can be found." msgstr "" -#: js/EnsembleBlocks.js:909 +#: js/blocks/EnsembleBlocks.js:909 msgid "found turtle" msgstr "" -#: js/EnsembleBlocks.js:932 +#: js/blocks/EnsembleBlocks.js:932 msgid "new mouse" msgstr "" -#: js/EnsembleBlocks.js:934 +#: js/blocks/EnsembleBlocks.js:934 msgid "The New mouse block will create a new mouse." msgstr "" -#: js/EnsembleBlocks.js:945 +#: js/blocks/EnsembleBlocks.js:945 msgid "new turtle" msgstr "" -#: js/EnsembleBlocks.js:947 +#: js/blocks/EnsembleBlocks.js:947 msgid "The New turtle block will create a new turtle." msgstr "" -#: js/EnsembleBlocks.js:1011 +#: js/blocks/EnsembleBlocks.js:1011 msgid "set mouse color" msgstr "" -#: js/EnsembleBlocks.js:1014 +#: js/blocks/EnsembleBlocks.js:1014 msgid "The Set-mouse-color block is used to set the color of a mouse." msgstr "" -#: js/EnsembleBlocks.js:1020 +#: js/blocks/EnsembleBlocks.js:1020 msgid "set turtle color" msgstr "" -#: js/EnsembleBlocks.js:1023 +#: js/blocks/EnsembleBlocks.js:1023 msgid "The Set-turtle-color block is used to set the color of a turtle." msgstr "" -#: js/EnsembleBlocks.js:1083 +#: js/blocks/EnsembleBlocks.js:1083 msgid "The Mouse-name block returns the name of a mouse." msgstr "" -#: js/EnsembleBlocks.js:1092 +#: js/blocks/EnsembleBlocks.js:1092 msgid "The Turtle-name block returns the name of a turtle." msgstr "" -#: js/EnsembleBlocks.js:1115 +#: js/blocks/EnsembleBlocks.js:1115 msgid "mouse count" msgstr "" -#: js/EnsembleBlocks.js:1118 +#: js/blocks/EnsembleBlocks.js:1118 msgid "The Mouse-count block returns the number of mice." msgstr "" -#: js/EnsembleBlocks.js:1124 +#: js/blocks/EnsembleBlocks.js:1124 msgid "turtle count" msgstr "" -#: js/EnsembleBlocks.js:1127 +#: js/blocks/EnsembleBlocks.js:1127 msgid "The Turtle-count block returns the number of turtles." msgstr "" -#: js/EnsembleBlocks.js:1149 +#: js/blocks/EnsembleBlocks.js:1149 msgid "nth mouse name" msgstr "" -#: js/EnsembleBlocks.js:1152 +#: js/blocks/EnsembleBlocks.js:1152 msgid "The Nth-Mouse name block returns the name of the nth mouse." msgstr "" -#: js/EnsembleBlocks.js:1158 +#: js/blocks/EnsembleBlocks.js:1158 msgid "nth turtle name" msgstr "" -#: js/EnsembleBlocks.js:1161 +#: js/blocks/EnsembleBlocks.js:1161 msgid "The Nth-Turtle name block returns the name of the nth turtle." msgstr "" -#: js/EnsembleBlocks.js:1205 -#: js/EnsembleBlocks.js:1265 +#: js/blocks/EnsembleBlocks.js:1205 +#: js/blocks/EnsembleBlocks.js:1265 msgid "set name" msgstr "" -#: js/EnsembleBlocks.js:1214 -#: js/EnsembleBlocks.js:1221 +#: js/blocks/EnsembleBlocks.js:1214 +#: js/blocks/EnsembleBlocks.js:1221 msgid "source" msgstr "" -#: js/EnsembleBlocks.js:1214 -#: js/EnsembleBlocks.js:1221 +#: js/blocks/EnsembleBlocks.js:1214 +#: js/blocks/EnsembleBlocks.js:1221 msgid "target" msgstr "" -#: js/EnsembleBlocks.js:1271 +#: js/blocks/EnsembleBlocks.js:1271 msgid "The Set-name block is used to name a mouse." msgstr "" -#: js/EnsembleBlocks.js:1284 +#: js/blocks/EnsembleBlocks.js:1284 msgid "The Set-name block is used to name a turtle." msgstr "" -#: js/BooleanBlocks.js:44 -msgid "The Not block is the logical not operator." -msgstr "" - -#: js/BooleanBlocks.js:62 -msgid "not" -msgstr "değil" - -#: js/BooleanBlocks.js:134 -msgid "The And block is the logical and operator." -msgstr "" - -#: js/BooleanBlocks.js:152 -msgid "and" -msgstr "ve" - -#: js/BooleanBlocks.js:218 -msgid "The Or block is the logical or operator." -msgstr "" - -#: js/BooleanBlocks.js:236 -msgid "or" -msgstr "veya" - -#: js/BooleanBlocks.js:302 -msgid "The XOR block is the logical XOR operator." -msgstr "" - -#: js/BooleanBlocks.js:320 -msgid "xor" -msgstr "" - -#: js/BooleanBlocks.js:808 -msgid "The Equal block returns True if the two numbers are equal." -msgstr "" - -#: js/BooleanBlocks.js:909 -msgid "The Not-equal-to block returns True if the two numbers are not equal to each other." -msgstr "" - -#: js/BooleanBlocks.js:1008 -msgid "The Boolean block is used to specify true or false." -msgstr "" - -#: js/MediaBlocks.js:35 -#.TRANS: right side of the screen -msgid "right (screen)" -msgstr "" - -#: js/MediaBlocks.js:45 -#: js/MediaBlocks.js:56 -msgid "The Right block returns the position of the right of the canvas." -msgstr "" - -#: js/MediaBlocks.js:97 -#.TRANS: left side of the screen -msgid "left (screen)" -msgstr "" - -#: js/MediaBlocks.js:107 -#: js/MediaBlocks.js:118 -msgid "The Left block returns the position of the left of the canvas." -msgstr "" - -#: js/MediaBlocks.js:158 -msgid "top (screen)" -msgstr "" - -#: js/MediaBlocks.js:168 -#: js/MediaBlocks.js:179 -msgid "The Top block returns the position of the top of the canvas." -msgstr "" - -#: js/MediaBlocks.js:219 -msgid "bottom (screen)" -msgstr "" - -#: js/MediaBlocks.js:229 -#: js/MediaBlocks.js:240 -msgid "The Bottom block returns the position of the bottom of the canvas." +#: js/blocks/ExtrasBlocks.js:33 +msgid "fraction" msgstr "" -#: js/MediaBlocks.js:282 -msgid "width" +#: js/blocks/ExtrasBlocks.js:36 +msgid "Convert a float to a fraction" msgstr "" -#: js/MediaBlocks.js:291 -msgid "The Width block returns the width of the canvas." +#: js/blocks/ExtrasBlocks.js:93 +msgid "save as ABC" msgstr "" -#: js/MediaBlocks.js:325 -msgid "height" +#: js/blocks/ExtrasBlocks.js:96 +#: js/blocks/ExtrasBlocks.js:132 +#: js/blocks/ExtrasBlocks.js:168 +msgid "title" msgstr "" -#: js/MediaBlocks.js:334 -msgid "The Height block returns the height of the canvas." +#: js/blocks/ExtrasBlocks.js:129 +msgid "save as Lilypond" msgstr "" -#: js/MediaBlocks.js:369 -#.TRANS: stops playback of an audio recording -msgid "stop play" +#: js/blocks/ExtrasBlocks.js:165 +msgid "save as SVG" msgstr "" -#: js/MediaBlocks.js:404 -#.TRANS: Erases the images and text -msgid "erase media" +#: js/blocks/ExtrasBlocks.js:216 +msgid "no background" msgstr "" -#: js/MediaBlocks.js:409 -msgid "The Erase Media block erases text and images." +#: js/blocks/ExtrasBlocks.js:219 +msgid "The No background block eliminates the background from the saved SVG output." msgstr "" -#: js/MediaBlocks.js:439 -#.TRANS: play an audio recording -msgid "play back" +#: js/blocks/ExtrasBlocks.js:247 +msgid "show blocks" msgstr "" -#: js/MediaBlocks.js:487 -msgid "speak" +#: js/blocks/ExtrasBlocks.js:249 +msgid "The Show blocks block shows the blocks." msgstr "" -#: js/MediaBlocks.js:495 -msgid "The Speak block outputs to the text-to-speech synthesizer" +#: js/blocks/ExtrasBlocks.js:274 +msgid "hide blocks" msgstr "" -#: js/MediaBlocks.js:546 -msgid "camera" +#: js/blocks/ExtrasBlocks.js:276 +msgid "The Hide blocks block hides the blocks." msgstr "" -#: js/MediaBlocks.js:551 -msgid "The Camera block connects a webcam to the Show block." +#: js/blocks/ExtrasBlocks.js:305 +#: js/blocks/ExtrasBlocks.js:338 +msgid "The Space block is used to add space between blocks." msgstr "" -#: js/MediaBlocks.js:574 -msgid "video" -msgstr "" +#: js/blocks/ExtrasBlocks.js:376 +msgid "wait" +msgstr "bekle" -#: js/MediaBlocks.js:579 -msgid "The Video block selects video for use with the Show block." +#: js/blocks/ExtrasBlocks.js:379 +msgid "The Wait block pauses the program for a specified number of seconds." msgstr "" -#: js/MediaBlocks.js:607 -msgid "The Open file block opens a file for use with the Show block." +#: js/blocks/ExtrasBlocks.js:433 +#: plugins/facebook.rtp:30 +msgid "comment" msgstr "" -#: js/MediaBlocks.js:645 -msgid "stop media" -msgstr "" +#: js/blocks/ExtrasBlocks.js:469 +msgid "print" +msgstr "yazdır" -#: js/MediaBlocks.js:650 -msgid "The Stop media block stops audio or video playback." +#: js/blocks/ExtrasBlocks.js:476 +msgid "The Print block displays text at the top of the screen." msgstr "" -#: js/MediaBlocks.js:679 -#: js/PitchBlocks.js:1539 -#: js/phrasemaker.js:822 -#: js/musickeyboard.js:1654 -#.TRANS: a measure of frequency: one cycle per second -msgid "hertz" +#: js/blocks/ExtrasBlocks.js:582 +msgid "display grid" msgstr "" -#: js/MediaBlocks.js:692 -msgid "duration (ms)" +#: js/blocks/ExtrasBlocks.js:587 +msgid "The Display Grid Block changes the grid type" msgstr "" -#: js/MediaBlocks.js:728 -#.TRANS: translate a note into hertz, e.g., A4 -> 440HZ -msgid "note to frequency" +#: js/blocks/ExtrasBlocks.js:689 +#: js/blocks/ExtrasBlocks.js:708 +#: js/blocks/ExtrasBlocks.js:731 +#: js/blocks/ExtrasBlocks.js:754 +#: js/blocks/ExtrasBlocks.js:772 +#: js/blocks/ExtrasBlocks.js:791 +#: js/blocks/ExtrasBlocks.js:810 +#: js/blocks/ExtrasBlocks.js:829 +msgid "unknown" msgstr "" -#: js/MediaBlocks.js:736 -msgid "The To frequency block converts a pitch name and octave to Hertz." +#: js/blocks/FlowBlocks.js:41 +msgid "The Backward block runs code in reverse order (Musical retrograde)." msgstr "" -#: js/MediaBlocks.js:746 -#: js/PitchBlocks.js:656 -#: js/PitchBlocks.js:932 -#: js/PitchBlocks.js:1827 -#.TRANS: name2 is name as in name of pitch (JAPANESE ONLY) -msgid "name2" +#: js/blocks/FlowBlocks.js:48 +msgid "backward" msgstr "" -#: js/MediaBlocks.js:812 -msgid "The Avatar block is used to change the appearance of the mouse." +#: js/blocks/FlowBlocks.js:124 +msgid "The Duplicate block will run each block multiple times." msgstr "" -#: js/MediaBlocks.js:819 -msgid "The Avatar block is used to change the appearance of the turtle." +#: js/blocks/FlowBlocks.js:136 +msgid "duplicate" msgstr "" -#: js/MediaBlocks.js:831 -#: js/MediaBlocks.js:891 -#.TRANS: a media object -msgid "size" +#: js/blocks/FlowBlocks.js:334 +msgid "The Default block is used inside of a Switch to define the default action." msgstr "" -#: js/MediaBlocks.js:831 -msgid "image" +#: js/blocks/FlowBlocks.js:342 +msgid "default" msgstr "" -#: js/MediaBlocks.js:880 -msgid "The Show block is used to display text or images on the canvas." +#: js/blocks/FlowBlocks.js:361 +#: js/blocks/FlowBlocks.js:418 +msgid "The Case Block must be used inside of a Switch Block." msgstr "" -#: js/MediaBlocks.js:888 -#.TRANS: show1 is show as in display an image or text on the screen. -msgid "show1" +#: js/blocks/FlowBlocks.js:389 +msgid "The Case block is used inside of a Switch to define matches." msgstr "" -#: js/MediaBlocks.js:891 -msgid "obj" +#: js/blocks/FlowBlocks.js:397 +msgid "case" msgstr "" -#: js/MediaBlocks.js:938 -msgid "The Media block is used to import an image." +#: js/blocks/FlowBlocks.js:446 +msgid "The Switch block will run the code in the matching Case." msgstr "" -#: js/MediaBlocks.js:973 -msgid "The Text block holds a text string." +#: js/blocks/FlowBlocks.js:454 +msgid "switch" msgstr "" -#: js/ProgramBlocks.js:33 -msgid "The Load-heap-from-app block loads the heap from a web page." +#: js/blocks/FlowBlocks.js:595 +msgid "The Stop block will stop a loop" msgstr "" -#: js/ProgramBlocks.js:44 -#.TRANS: load the heap contents from a URL -msgid "load heap from App" +#: js/blocks/FlowBlocks.js:597 +msgid "Forever, Repeat, While, or Until." msgstr "" -#: js/ProgramBlocks.js:95 -msgid "Error parsing JSON data:" +#: js/blocks/FlowBlocks.js:604 +#: js/widgets/timbre.js:417 +#: js/widgets/timbre.js:419 +#: js/widgets/musickeyboard.js:819 +#: js/widgets/musickeyboard.js:821 +#: js/widgets/phrasemaker.js:4202 +#: plugins/rodi.rtp:29 +#: plugins/rodi.rtp:73 +#: plugins/rodi.rtp:413 +msgid "stop" msgstr "" -#: js/ProgramBlocks.js:100 -msgid "404: Page not found" +#: js/blocks/FlowBlocks.js:653 +msgid "The Waitfor block will wait until the condition is true." msgstr "" -#: js/ProgramBlocks.js:133 -msgid "The Save-heap-to-app block saves the heap to a web page." +#: js/blocks/FlowBlocks.js:661 +msgid "wait for" msgstr "" -#: js/ProgramBlocks.js:144 -#.TRANS: save the heap contents to a URL -msgid "save heap to App" +#: js/blocks/FlowBlocks.js:732 +msgid "The Until block will repeat until the condition is true." msgstr "" -#: js/ProgramBlocks.js:189 -msgid "Cannot find a valid heap for" +#: js/blocks/FlowBlocks.js:740 +msgid "until" msgstr "" -#: js/ProgramBlocks.js:206 -msgid "The Load-heap block loads the heap from a file." +#: js/blocks/FlowBlocks.js:742 +#: js/blocks/FlowBlocks.js:822 +msgid "do2" msgstr "" -#: js/ProgramBlocks.js:217 -#.TRANS: load the heap from a file -msgid "load heap" +#: js/blocks/FlowBlocks.js:812 +msgid "The While block will repeat while the condition is true." msgstr "" -#: js/ProgramBlocks.js:270 -msgid "The file you selected does not contain a valid heap." +#: js/blocks/FlowBlocks.js:820 +msgid "while" msgstr "" -#: js/ProgramBlocks.js:275 -msgid "The loadHeap block needs a loadFile block." +#: js/blocks/FlowBlocks.js:903 +#: js/blocks/FlowBlocks.js:968 +#: js/blocks/FlowBlocks.js:979 +msgid "In this example if the mouse button is pressed a snare drum will play." msgstr "" -#: js/ProgramBlocks.js:291 -msgid "The Set-heap block loads the heap." -msgstr "" +#: js/blocks/FlowBlocks.js:925 +#: js/blocks/FlowBlocks.js:988 +msgid "if" +msgstr "eğer" -#: js/ProgramBlocks.js:299 -#: js/HeapBlocks.js:539 -#.TRANS: load the heap from a JSON encoding -msgid "set heap" -msgstr "" +#: js/blocks/FlowBlocks.js:927 +#: js/blocks/FlowBlocks.js:990 +msgid "then" +msgstr "sonra" -#: js/ProgramBlocks.js:340 -msgid "The block you selected does not contain a valid heap." -msgstr "" +#: js/blocks/FlowBlocks.js:927 +msgid "else" +msgstr "voska" -#: js/ProgramBlocks.js:343 -msgid "The Set heap block needs a heap." +#: js/blocks/FlowBlocks.js:1025 +msgid "The Forever block will repeat the contained blocks forever." msgstr "" -#: js/ProgramBlocks.js:360 -msgid "The Load-dictionary block loads a dictionary from a file." -msgstr "" +#: js/blocks/FlowBlocks.js:1037 +msgid "forever" +msgstr "sürekli" -#: js/ProgramBlocks.js:372 -#.TRANS: load a dictionary from a file -msgid "load dictionary" +#: js/blocks/FlowBlocks.js:1073 +msgid "The Repeat block will repeat the contained blocks." msgstr "" -#: js/ProgramBlocks.js:390 -#: js/ProgramBlocks.js:658 -#: js/ToneBlocks.js:1025 -msgid "file" +#: js/blocks/FlowBlocks.js:1075 +msgid "In this example the note will be played 4 times." msgstr "" -#: js/ProgramBlocks.js:396 -#: js/ProgramBlocks.js:501 -#: js/ProgramBlocks.js:664 -#: js/DictBlocks.js:80 -#: js/DictBlocks.js:145 -#: js/DictBlocks.js:216 -#: js/DictBlocks.js:290 -msgid "My Dictionary" -msgstr "" +#: js/blocks/FlowBlocks.js:1083 +msgid "repeat" +msgstr "tekrarla" -#: js/ProgramBlocks.js:444 -msgid "The file you selected does not contain a valid dictionary." +#: js/blocks/FlowBlocks.js:1123 +msgid "duplicate factor" msgstr "" -#: js/ProgramBlocks.js:449 -msgid "The load dictionary block needs a load file block." +#: js/blocks/HeapBlocks.js:49 +msgid "The Heap block returns the heap." msgstr "" -#: js/ProgramBlocks.js:466 -msgid "The Set-dictionary block loads a dictionary." +#: js/blocks/HeapBlocks.js:133 +msgid "show heap" msgstr "" -#: js/ProgramBlocks.js:477 -#.TRANS: load a dictionary from a JSON -msgid "set dictionary" +#: js/blocks/HeapBlocks.js:181 +msgid "The Heap-length block returns the length of the heap." msgstr "" -#: js/ProgramBlocks.js:546 -msgid "The block you selected does not contain a valid dictionary." +#: js/blocks/HeapBlocks.js:195 +msgid "heap length" msgstr "" -#: js/ProgramBlocks.js:550 -msgid "The set dictionary block needs a dictionary." +#: js/blocks/HeapBlocks.js:254 +msgid "The Heap-empty? block returns true if the heap is empty." msgstr "" -#: js/ProgramBlocks.js:567 -msgid "The Save-heap block saves the heap to a file." +#: js/blocks/HeapBlocks.js:268 +#.TRANS: Is the heap empty? +msgid "heap empty?" msgstr "" -#: js/ProgramBlocks.js:578 -#.TRANS: save the heap to a file -msgid "save heap" +#: js/blocks/HeapBlocks.js:317 +msgid "The Empty-heap block empties the heap." msgstr "" -#: js/ProgramBlocks.js:629 -msgid "The Save-dictionary block saves a dictionary to a file." +#: js/blocks/HeapBlocks.js:327 +#: js/blocks/HeapBlocks.js:647 +#.TRANS: empty the heap +msgid "empty heap" msgstr "" -#: js/ProgramBlocks.js:640 -#.TRANS: save a dictionary to a file -msgid "save dictionary" +#: js/blocks/HeapBlocks.js:371 +msgid "The Reverse-heap block reverses the order of the heap." msgstr "" -#: js/ProgramBlocks.js:720 -msgid "The Open palette block opens a palette." +#: js/blocks/HeapBlocks.js:384 +#.TRANS: reverse the order of the heap +msgid "reverse heap" msgstr "" -#: js/ProgramBlocks.js:727 -msgid "open palette" +#: js/blocks/HeapBlocks.js:428 +msgid "The Index-heap block returns a value in the heap at a specified location." msgstr "" -#: js/ProgramBlocks.js:785 -msgid "The Delete block block removes a block." +#: js/blocks/HeapBlocks.js:443 +#.TRANS: retrieve a value from the heap at index position in the heap +msgid "index heap" msgstr "" -#: js/ProgramBlocks.js:797 -#.TRANS: Move this block to the trash. -msgid "delete block" +#: js/blocks/HeapBlocks.js:523 +msgid "The Set-heap entry block sets a value in he heap at the specified location." msgstr "" -#: js/ProgramBlocks.js:861 -msgid "The Move block block moves a block." +#: js/blocks/HeapBlocks.js:539 +#: js/blocks/ProgramBlocks.js:299 +#.TRANS: load the heap from a JSON encoding +msgid "set heap" msgstr "" -#: js/ProgramBlocks.js:869 -#.TRANS: Move the position of a block on the screen. -msgid "move block" +#: js/blocks/HeapBlocks.js:619 +msgid "The Pop block removes the value at the top of the heap." msgstr "" -#: js/ProgramBlocks.js:881 -#: js/ProgramBlocks.js:1048 -msgid "block number" +#: js/blocks/HeapBlocks.js:633 +#.TRANS: pop a value off the top of the heap +msgid "pop" msgstr "" -#: js/ProgramBlocks.js:935 -#.TRANS: Run program beginning at this block. -msgid "run block" +#: js/blocks/HeapBlocks.js:680 +msgid "The Push block adds a value to the top of the heap." msgstr "" -#: js/ProgramBlocks.js:1025 -msgid "The Dock block block connections two blocks." +#: js/blocks/HeapBlocks.js:696 +#.TRANS: push a value onto the top of the heap +msgid "push" msgstr "" -#: js/ProgramBlocks.js:1036 -#.TRANS: We can connect a block to another block. -msgid "connect blocks" +#: js/blocks/IntervalsBlocks.js:45 +msgid "set temperament" msgstr "" -#: js/ProgramBlocks.js:1048 -msgid "target block" +#: js/blocks/IntervalsBlocks.js:63 +#: js/blocks/MediaBlocks.js:746 +#: js/blocks/PitchBlocks.js:657 +#: js/blocks/PitchBlocks.js:935 +#: js/blocks/PitchBlocks.js:974 +#: js/blocks/PitchBlocks.js:1007 +#: js/blocks/PitchBlocks.js:1194 +#: js/blocks/PitchBlocks.js:1717 +#: js/blocks/PitchBlocks.js:1758 +#: js/blocks/PitchBlocks.js:1866 +#: js/blocks/ToneBlocks.js:1025 +#: js/turtleactions/IntervalsActions.js:114 +#.TRANS: adjusts the shift up or down by one octave (twelve half-steps in the interval between two notes, one having twice or half the frequency in Hz of the other.) +msgid "octave" msgstr "" -#: js/ProgramBlocks.js:1048 -msgid "connection number" +#: js/blocks/IntervalsBlocks.js:99 +msgid "The Temperament name block is used to select a tuning method." msgstr "" -#: js/ProgramBlocks.js:1140 -msgid "The Make block block creates a new block." +#: js/blocks/IntervalsBlocks.js:161 +msgid "doubly" msgstr "" -#: js/ProgramBlocks.js:1152 -#.TRANS: Create a new block -msgid "make block" +#: js/blocks/IntervalsBlocks.js:166 +msgid "The Doubly block will double the size of an interval." msgstr "" -#: js/ProgramBlocks.js:1186 -#: js/ProgramBlocks.js:1227 -#: js/RhythmBlocks.js:1128 -#: js/PitchBlocks.js:972 -#: js/PitchBlocks.js:1005 -#: js/temperament.js:340 -#: js/temperament.js:362 -#: js/temperament.js:372 -#: js/temperament.js:484 -#: js/status.js:190 -#: plugins/rodi.rtp:192 -#.TRANS: a musical note consisting of pitch and duration -msgid "note" +#: js/blocks/IntervalsBlocks.js:262 +msgid "interval number" msgstr "" -#: js/ProgramBlocks.js:1285 -msgid "Cannot find block" +#: js/blocks/IntervalsBlocks.js:317 +msgid "current interval" msgstr "" -#: js/ProgramBlocks.js:1304 -#: js/ProgramBlocks.js:1313 -msgid "Warning: block argument type mismatch" +#: js/blocks/IntervalsBlocks.js:387 +#.TRANS: measure the distance between two pitches in semi-tones +msgid "semi-tone interval measure" msgstr "" -#: js/ProgramBlocks.js:1347 -msgid "The Open project block is used to open a project from a web page." +#: js/blocks/IntervalsBlocks.js:454 +#: js/blocks/IntervalsBlocks.js:570 +msgid "You must use two pitch blocks when measuring an interval." msgstr "" -#: js/ProgramBlocks.js:1357 -msgid "open project" +#: js/blocks/IntervalsBlocks.js:496 +msgid "The Scalar interval block measures the distance between two notes in the current key and mode." msgstr "" -#: js/ProgramBlocks.js:1410 -msgid "Please enter a valid URL." +#: js/blocks/IntervalsBlocks.js:502 +#.TRANS: measure the distance between two pitches in steps of musical scale +msgid "scalar interval measure" msgstr "" -#: js/DrumBlocks.js:59 -msgid "The Noise name block is used to select a noise synthesizer." +#: js/blocks/IntervalsBlocks.js:678 +msgid "In the figure, we add sol# to sol." msgstr "" -#: js/DrumBlocks.js:102 -msgid "The Drum name block is used to select a drum." +#: js/blocks/IntervalsBlocks.js:684 +#: js/blocks/OrnamentBlocks.js:220 +#.TRANS: calculate a relative step between notes based on semi-tones +msgid "semi-tone interval" msgstr "" -#: js/DrumBlocks.js:146 -msgid "The Effects name block is used to select a sound effect." +#: js/blocks/IntervalsBlocks.js:733 +msgid "The output of the example is: do, mi, sol, sol, ti, mi" msgstr "" -#: js/DrumBlocks.js:163 -msgid "noise" +#: js/blocks/IntervalsBlocks.js:740 +#: js/blocks/WidgetBlocks.js:768 +msgid "arpeggio" msgstr "" -#: js/DrumBlocks.js:177 -msgid "The Play noise block will generate white, pink, or brown noise." +#: js/blocks/IntervalsBlocks.js:931 +msgid "The Chord block calculates common chords." msgstr "" -#: js/DrumBlocks.js:191 -#: js/musicutils.js:752 -#: js/synthutils.js:47 -#.TRANS: white noise synthesizer -msgid "white noise" +#: js/blocks/IntervalsBlocks.js:933 +msgid "In the figure, we generate a C-major chord." msgstr "" -#: js/DrumBlocks.js:326 -msgid "Replace every instance of a pitch with a drum sound." +#: js/blocks/IntervalsBlocks.js:938 +msgid "chord" msgstr "" -#: js/DrumBlocks.js:337 -#.TRANS: map a pitch to a drum sound -msgid "map pitch to drum" +#: js/blocks/IntervalsBlocks.js:990 +msgid "The Ratio Interval block calculates an interval based on a ratio." msgstr "" -#: js/DrumBlocks.js:404 -msgid "In the example above, a kick drum sound will be played instead of sol." +#: js/blocks/IntervalsBlocks.js:995 +msgid "ratio interval" msgstr "" -#: js/DrumBlocks.js:416 -#.TRANS: set the current drum sound for playback -msgid "set drum" +#: js/blocks/IntervalsBlocks.js:1064 +msgid "In the figure, we add la to sol." msgstr "" -#: js/DrumBlocks.js:460 -msgid "sound effect" +#: js/blocks/IntervalsBlocks.js:1120 +#.TRANS: define a custom mode +msgid "define mode" msgstr "" -#: js/DrumBlocks.js:498 -msgid "You can use multiple Drum blocks within a Note block." +#: js/blocks/IntervalsBlocks.js:1173 +msgid "movable Do" msgstr "" -#: js/RhythmBlocks.js:182 -#: js/RhythmBlocks.js:1086 -#: js/RhythmBlocks.js:1162 -msgid "Note value must be greater than 0." +#: js/blocks/IntervalsBlocks.js:1224 +#.TRANS: mode length is the number of notes in the mode, e.g., 7 for major and minor scales; 12 for chromatic scales +msgid "mode length" msgstr "" -#: js/RhythmBlocks.js:215 -#: js/RhythmBlocks.js:278 -#: js/RhythmBlocks.js:350 -#.TRANS: swing is a rhythmic variation that emphasises the offbeat -msgid "swing" +#: js/blocks/IntervalsBlocks.js:1233 +msgid "The Mode length block is the number of notes in the current scale." msgstr "" -#: js/RhythmBlocks.js:355 -#.TRANS: the amount to shift to the offbeat note -msgid "swing value" +#: js/blocks/IntervalsBlocks.js:1235 +msgid "Most Western scales have 7 notes." msgstr "" -#: js/RhythmBlocks.js:419 -msgid "The Skip notes block will cause notes to be skipped." +#: js/blocks/IntervalsBlocks.js:1284 +#.TRANS: the mode in music is 'major', 'minor', etc. +msgid "current mode" msgstr "" -#: js/RhythmBlocks.js:427 -#.TRANS: substitute rests on notes being skipped -msgid "skip notes" +#: js/blocks/IntervalsBlocks.js:1337 +#.TRANS: the key is a group of pitches with which a music composition is created +msgid "current key" msgstr "" -#: js/RhythmBlocks.js:489 -#.TRANS: speed up note duration by some factor, e.g. convert 1/4 to 1/8 notes by using a factor of 2 -msgid "multiply note value" +#: js/blocks/IntervalsBlocks.js:1389 +#: js/blocks/IntervalsBlocks.js:1434 +#.TRANS: set the key and mode, e.g. C Major +msgid "set key" msgstr "" -#: js/RhythmBlocks.js:542 -msgid "The Tie block works on pairs of notes, combining them into one note." +#: js/blocks/IntervalsBlocks.js:1443 +#: js/blocks/IntervalsBlocks.js:1449 +msgid "The Set key block is used to set the key and mode," msgstr "" -#: js/RhythmBlocks.js:550 -#.TRANS: tie notes together into one longer note -msgid "tie" +#: js/blocks/IntervalsBlocks.js:1449 +msgid "eg C Major" msgstr "" -#: js/RhythmBlocks.js:591 -#: js/RhythmBlocks.js:671 -#.TRANS: a dotted note is played for 1.5x its value, e.g., 1/8. --> 3/16 -msgid "dot" +#: js/blocks/MediaBlocks.js:35 +#.TRANS: right side of the screen +msgid "right (screen)" msgstr "" -#: js/RhythmBlocks.js:619 -#: js/RhythmActions.js:221 -msgid "An argument of -1 results in a note value of 0." +#: js/blocks/MediaBlocks.js:45 +#: js/blocks/MediaBlocks.js:56 +msgid "The Right block returns the position of the right of the canvas." msgstr "" -#: js/RhythmBlocks.js:661 -msgid "The Dot block extends the duration of a note by 50%." +#: js/blocks/MediaBlocks.js:97 +#.TRANS: left side of the screen +msgid "left (screen)" msgstr "" -#: js/RhythmBlocks.js:663 -msgid "Eg a dotted quarter note will play for 3/8 (1/4 + 1/8) of a beat." +#: js/blocks/MediaBlocks.js:107 +#: js/blocks/MediaBlocks.js:118 +msgid "The Left block returns the position of the left of the canvas." msgstr "" -#: js/RhythmBlocks.js:765 -#.TRANS: Japanese only: note value block for drum -msgid "note value drum" +#: js/blocks/MediaBlocks.js:158 +msgid "top (screen)" msgstr "" -#: js/RhythmBlocks.js:829 -msgid "392 hertz" +#: js/blocks/MediaBlocks.js:168 +#: js/blocks/MediaBlocks.js:179 +msgid "The Top block returns the position of the top of the canvas." msgstr "" -#: js/RhythmBlocks.js:1119 -msgid "The Note block is a container for one or more Pitch blocks." +#: js/blocks/MediaBlocks.js:219 +msgid "bottom (screen)" msgstr "" -#: js/RhythmBlocks.js:1121 -msgid "The Note block specifies the duration (note value) of its contents." +#: js/blocks/MediaBlocks.js:229 +#: js/blocks/MediaBlocks.js:240 +msgid "The Bottom block returns the position of the bottom of the canvas." msgstr "" -#: js/RhythmBlocks.js:1130 -msgid "value2" +#: js/blocks/MediaBlocks.js:282 +msgid "width" msgstr "" -#: js/RhythmBlocks.js:1200 -msgid "define frequency" +#: js/blocks/MediaBlocks.js:291 +msgid "The Width block returns the width of the canvas." msgstr "" -#: js/RhythmBlocks.js:1218 -#: js/temperament.js:650 -#: js/temperament.js:1421 -msgid "octave space" +#: js/blocks/MediaBlocks.js:325 +msgid "height" msgstr "" -#: js/NumberBlocks.js:28 -msgid "The Int block returns an integer." +#: js/blocks/MediaBlocks.js:334 +msgid "The Height block returns the height of the canvas." msgstr "" -#: js/NumberBlocks.js:34 -msgid "int" +#: js/blocks/MediaBlocks.js:369 +#.TRANS: stops playback of an audio recording +msgid "stop play" msgstr "" -#: js/NumberBlocks.js:73 -msgid "The Mod block returns the remainder from a division." +#: js/blocks/MediaBlocks.js:404 +#.TRANS: Erases the images and text +msgid "erase media" msgstr "" -#: js/NumberBlocks.js:79 -msgid "mod" -msgstr "mod" +#: js/blocks/MediaBlocks.js:409 +msgid "The Erase Media block erases text and images." +msgstr "" -#: js/NumberBlocks.js:123 -msgid "The Power block calculates a power function." +#: js/blocks/MediaBlocks.js:439 +#.TRANS: play an audio recording +msgid "play back" msgstr "" -#: js/NumberBlocks.js:178 -msgid "The Sqrt block returns the square root." +#: js/blocks/MediaBlocks.js:487 +msgid "speak" msgstr "" -#: js/NumberBlocks.js:184 -msgid "sqrt" +#: js/blocks/MediaBlocks.js:495 +msgid "The Speak block outputs to the text-to-speech synthesizer" msgstr "" -#: js/NumberBlocks.js:230 -msgid "The Abs block returns the absolute value." +#: js/blocks/MediaBlocks.js:546 +msgid "camera" msgstr "" -#: js/NumberBlocks.js:236 -msgid "abs" +#: js/blocks/MediaBlocks.js:551 +msgid "The Camera block connects a webcam to the Show block." msgstr "" -#: js/NumberBlocks.js:277 -msgid "The Distance block returns the distance between two points. For example, between the mouse and the center of the screen." +#: js/blocks/MediaBlocks.js:574 +msgid "video" msgstr "" -#: js/NumberBlocks.js:283 -#: plugins/rodi.rtp:310 -msgid "distance" +#: js/blocks/MediaBlocks.js:579 +msgid "The Video block selects video for use with the Show block." msgstr "" -#: js/NumberBlocks.js:343 -msgid "The Divide block is used to divide." +#: js/blocks/MediaBlocks.js:607 +msgid "The Open file block opens a file for use with the Show block." msgstr "" -#: js/NumberBlocks.js:411 -msgid "The Multiply block is used to multiply." +#: js/blocks/MediaBlocks.js:645 +msgid "stop media" msgstr "" -#: js/NumberBlocks.js:554 -msgid "The Minus block is used to subtract." +#: js/blocks/MediaBlocks.js:650 +msgid "The Stop media block stops audio or video playback." msgstr "" -#: js/NumberBlocks.js:647 -msgid "The Plus block is used to add." +#: js/blocks/MediaBlocks.js:679 +#: js/blocks/PitchBlocks.js:1577 +#: js/widgets/musickeyboard.js:1936 +#: js/widgets/phrasemaker.js:1037 +#.TRANS: a measure of frequency: one cycle per second +msgid "hertz" msgstr "" -#: js/NumberBlocks.js:773 -msgid "The One-of block returns one of two choices." +#: js/blocks/MediaBlocks.js:692 +#: js/blocks/WidgetBlocks.js:182 +#: js/widgets/temperament.js:506 +#: js/widgets/temperament.js:546 +#: js/widgets/temperament.js:610 +#: js/widgets/temperament.js:618 +#: js/widgets/temperament.js:1505 +#: js/widgets/timbre.js:1842 +msgid "frequency" msgstr "" -#: js/NumberBlocks.js:780 -#: js/PitchBlocks.js:616 -msgid "one of" +#: js/blocks/MediaBlocks.js:692 +msgid "duration (ms)" msgstr "" -#: js/NumberBlocks.js:782 -msgid "this" +#: js/blocks/MediaBlocks.js:728 +#.TRANS: translate a note into hertz, e.g., A4 -> 440HZ +msgid "note to frequency" msgstr "" -#: js/NumberBlocks.js:782 -msgid "that" +#: js/blocks/MediaBlocks.js:736 +msgid "The To frequency block converts a pitch name and octave to Hertz." msgstr "" -#: js/NumberBlocks.js:837 -msgid "The Random block returns a random number." +#: js/blocks/MediaBlocks.js:746 +#: js/blocks/PitchBlocks.js:656 +#: js/blocks/PitchBlocks.js:934 +#: js/blocks/PitchBlocks.js:1866 +#.TRANS: name2 is name as in name of pitch (JAPANESE ONLY) +msgid "name2" msgstr "" -#: js/NumberBlocks.js:844 -msgid "random" -msgstr "rastgele" +#: js/blocks/MediaBlocks.js:812 +msgid "The Avatar block is used to change the appearance of the mouse." +msgstr "" -#: js/NumberBlocks.js:846 -msgid "min" +#: js/blocks/MediaBlocks.js:819 +msgid "The Avatar block is used to change the appearance of the turtle." msgstr "" -#: js/NumberBlocks.js:846 -msgid "max" +#: js/blocks/MediaBlocks.js:831 +#: js/blocks/MediaBlocks.js:891 +#.TRANS: a media object +msgid "size" msgstr "" -#: js/NumberBlocks.js:910 -msgid "The Number block holds a number." +#: js/blocks/MediaBlocks.js:831 +msgid "image" msgstr "" -#: js/BoxesBlocks.js:53 -#: js/BoxesBlocks.js:59 -msgid "The Add-to block is used to add to the value stored in a box." +#: js/blocks/MediaBlocks.js:880 +msgid "The Show block is used to display text or images on the canvas." msgstr "" -#: js/BoxesBlocks.js:61 -msgid "It can also be used with other blocks such as Color and Pen size." +#: js/blocks/MediaBlocks.js:888 +#.TRANS: show1 is show as in display an image or text on the screen. +msgid "show1" msgstr "" -#: js/BoxesBlocks.js:73 -msgid "add" +#: js/blocks/MediaBlocks.js:891 +msgid "obj" msgstr "" -#: js/BoxesBlocks.js:75 -#: js/temperament.js:716 -msgid "to" +#: js/blocks/MediaBlocks.js:938 +msgid "The Media block is used to import an image." msgstr "" -#: js/BoxesBlocks.js:75 -#: js/BoxesBlocks.js:595 -#: js/HeapBlocks.js:544 -msgid "value1" +#: js/blocks/MediaBlocks.js:973 +msgid "The Text block holds a text string." msgstr "" -#: js/BoxesBlocks.js:118 -msgid "Block does not support incrementing." +#: js/blocks/MeterBlocks.js:34 +#.TRANS: musical meter (time signature), e.g., 4:4 +msgid "current meter" msgstr "" -#: js/BoxesBlocks.js:152 -msgid "The Add-1-to block adds one to the value stored in a box." +#: js/blocks/MeterBlocks.js:85 +#.TRANS: number of beats per minute +msgid "beat factor" msgstr "" -#: js/BoxesBlocks.js:163 -msgid "add 1 to" +#: js/blocks/MeterBlocks.js:161 +msgid "The Beats per minute block returns the current beats per minute." msgstr "" -#: js/BoxesBlocks.js:211 -msgid "The Subtract-1-from block subtracts one from the value stored in a box." +#: js/blocks/MeterBlocks.js:169 +#: js/widgets/status.js:152 +#.TRANS: number of beats played per minute +msgid "beats per minute2" msgstr "" -#: js/BoxesBlocks.js:222 -msgid "subtract 1 from" +#: js/blocks/MeterBlocks.js:169 +#: js/blocks/MeterBlocks.js:1056 +#: js/blocks/MeterBlocks.js:1133 +#: js/blocks/MeterBlocks.js:1211 +#.TRANS: sets tempo by defining a beat and beats per minute +msgid "beats per minute" msgstr "" -#: js/BoxesBlocks.js:270 -#: js/BoxesBlocks.js:387 -msgid "The Box block returns the value stored in a box." +#: js/blocks/MeterBlocks.js:233 +#.TRANS: count of current musical measure in meter +msgid "measure count" msgstr "" -#: js/BoxesBlocks.js:500 -#: js/BoxesBlocks.js:576 -msgid "The Store in block will store a value in a box." +#: js/blocks/MeterBlocks.js:241 +msgid "The Measure count block returns the current measure." msgstr "" -#: js/BoxesBlocks.js:652 -msgid "The Box2 block returns the value stored in Box2." +#: js/blocks/MeterBlocks.js:290 +#.TRANS: count of current beat in the meter +msgid "beat count" msgstr "" -#: js/BoxesBlocks.js:703 -msgid "The Store in Box2 block is used to store a value in Box2." +#: js/blocks/MeterBlocks.js:300 +#: js/blocks/MeterBlocks.js:311 +#: js/blocks/MeterBlocks.js:565 +#: js/blocks/MeterBlocks.js:576 +msgid "The Beat count block is the number of the current beat," msgstr "" -#: js/BoxesBlocks.js:715 -msgid "store in box2" +#: js/blocks/MeterBlocks.js:313 +#: js/blocks/MeterBlocks.js:578 +msgid "eg 1, 2, 3, or 4." msgstr "" -#: js/BoxesBlocks.js:761 -msgid "The Box1 block returns the value stored in Box1." +#: js/blocks/MeterBlocks.js:368 +#.TRANS: count the number of notes +msgid "sum note values" msgstr "" -#: js/BoxesBlocks.js:812 -msgid "The Store in Box1 block is used to store a value in Box1." +#: js/blocks/MeterBlocks.js:376 +#: js/blocks/MeterBlocks.js:440 +msgid "The Note counter block can be used to count the number of contained notes." msgstr "" -#: js/BoxesBlocks.js:826 -msgid "store in box1" +#: js/blocks/MeterBlocks.js:432 +#.TRANS: count the number of notes +msgid "note counter" msgstr "" -#: js/HeapBlocks.js:49 -msgid "The Heap block returns the heap." +#: js/blocks/MeterBlocks.js:496 +#.TRANS: number of whole notes that have been played +msgid "whole notes played" msgstr "" -#: js/HeapBlocks.js:133 -msgid "show heap" +#: js/blocks/MeterBlocks.js:505 +msgid "The Whole notes played block returns the total number of whole notes played." msgstr "" -#: js/HeapBlocks.js:181 -msgid "The Heap-length block returns the length of the heap." +#: js/blocks/MeterBlocks.js:555 +#: js/turtleactions/DictActions.js:83 +#.TRANS: number of notes that have been played +msgid "notes played" msgstr "" -#: js/HeapBlocks.js:195 -msgid "heap length" +#: js/blocks/MeterBlocks.js:653 +msgid "The No clock block decouples the notes from the master clock." msgstr "" -#: js/HeapBlocks.js:254 -msgid "The Heap-empty? block returns true if the heap is empty." +#: js/blocks/MeterBlocks.js:661 +#.TRANS: don't lock notes to master clock +msgid "no clock" msgstr "" -#: js/HeapBlocks.js:268 -#.TRANS: Is the heap empty? -msgid "heap empty?" +#: js/blocks/MeterBlocks.js:700 +msgid "on weak beat do" msgstr "" -#: js/HeapBlocks.js:317 -msgid "The Empty-heap block empties the heap." +#: js/blocks/MeterBlocks.js:705 +msgid "The On-weak-beat block lets you specify actions to take on weak (off) beats." msgstr "" -#: js/HeapBlocks.js:327 -#: js/HeapBlocks.js:647 -#.TRANS: empty the heap -msgid "empty heap" +#: js/blocks/MeterBlocks.js:750 +msgid "on strong beat" msgstr "" -#: js/HeapBlocks.js:371 -msgid "The Reverse-heap block reverses the order of the heap." +#: js/blocks/MeterBlocks.js:758 +msgid "The On-strong-beat block lets you specify actions to take on specified beats." msgstr "" -#: js/HeapBlocks.js:384 -#.TRANS: reverse the order of the heap -msgid "reverse heap" +#: js/blocks/MeterBlocks.js:769 +msgid "beat" msgstr "" -#: js/HeapBlocks.js:428 -msgid "The Index-heap block returns a value in the heap at a specified location." +#: js/blocks/MeterBlocks.js:813 +msgid "on every beat do" msgstr "" -#: js/HeapBlocks.js:443 -#.TRANS: retrieve a value from the heap at index position in the heap -msgid "index heap" +#: js/blocks/MeterBlocks.js:821 +msgid "The On-every-beat block lets you specify actions to take on every beat." msgstr "" -#: js/HeapBlocks.js:523 -msgid "The Set-heap entry block sets a value in he heap at the specified location." +#: js/blocks/MeterBlocks.js:874 +msgid "on every note do" msgstr "" -#: js/HeapBlocks.js:619 -msgid "The Pop block removes the value at the top of the heap." +#: js/blocks/MeterBlocks.js:882 +msgid "The On-every-note block lets you specify actions to take on every note." msgstr "" -#: js/HeapBlocks.js:633 -#.TRANS: pop a value off the top of the heap -msgid "pop" +#: js/blocks/MeterBlocks.js:928 +#: js/blocks/MeterBlocks.js:999 +#.TRANS: sets tempo by defining a beat and beats per minute +msgid "master beats per minute" msgstr "" -#: js/HeapBlocks.js:680 -msgid "The Push block adds a value to the top of the heap." +#: js/blocks/MeterBlocks.js:952 +#: js/blocks/MeterBlocks.js:1078 +#: js/blocks/MeterBlocks.js:1135 +msgid "bpm" msgstr "" -#: js/HeapBlocks.js:696 -#.TRANS: push a value onto the top of the heap -msgid "push" +#: js/blocks/MeterBlocks.js:952 +#: js/blocks/MeterBlocks.js:1078 +#: js/blocks/MeterBlocks.js:1135 +msgid "beat value" msgstr "" -#: js/FlowBlocks.js:41 -msgid "The Backward block runs code in reverse order (Musical retrograde)." +#: js/blocks/MeterBlocks.js:1024 +#: js/blocks/MeterBlocks.js:1167 +#: js/blocks/MeterBlocks.js:1241 +msgid "Beats per minute must be > 30." msgstr "" -#: js/FlowBlocks.js:48 -msgid "backward" +#: js/blocks/MeterBlocks.js:1027 +#: js/blocks/MeterBlocks.js:1170 +#: js/blocks/MeterBlocks.js:1244 +msgid "Maximum beats per minute is 1000." msgstr "" -#: js/FlowBlocks.js:124 -msgid "The Duplicate block will run each block multiple times." +#: js/blocks/MeterBlocks.js:1068 +msgid "The Beats per minute block sets the number of 1/4 notes per minute." msgstr "" -#: js/FlowBlocks.js:136 -msgid "duplicate" +#: js/blocks/MeterBlocks.js:1279 +#.TRANS: anacrusis +msgid "pickup" msgstr "" -#: js/FlowBlocks.js:334 -msgid "The Default block is used inside of a Switch to define the default action." +#: js/blocks/MeterBlocks.js:1367 +msgid "number of beats" msgstr "" -#: js/FlowBlocks.js:342 -msgid "default" +#: js/blocks/NumberBlocks.js:28 +msgid "The Int block returns an integer." msgstr "" -#: js/FlowBlocks.js:361 -#: js/FlowBlocks.js:418 -msgid "The Case Block must be used inside of a Switch Block." +#: js/blocks/NumberBlocks.js:34 +msgid "int" msgstr "" -#: js/FlowBlocks.js:389 -msgid "The Case block is used inside of a Switch to define matches." +#: js/blocks/NumberBlocks.js:73 +msgid "The Mod block returns the remainder from a division." msgstr "" -#: js/FlowBlocks.js:397 -msgid "case" +#: js/blocks/NumberBlocks.js:79 +msgid "mod" +msgstr "mod" + +#: js/blocks/NumberBlocks.js:141 +msgid "The Power block calculates a power function." msgstr "" -#: js/FlowBlocks.js:446 -msgid "The Switch block will run the code in the matching Case." +#: js/blocks/NumberBlocks.js:196 +msgid "The Sqrt block returns the square root." msgstr "" -#: js/FlowBlocks.js:454 -msgid "switch" +#: js/blocks/NumberBlocks.js:202 +msgid "sqrt" msgstr "" -#: js/FlowBlocks.js:595 -msgid "The Stop block will stop a loop" +#: js/blocks/NumberBlocks.js:248 +msgid "The Abs block returns the absolute value." msgstr "" -#: js/FlowBlocks.js:597 -msgid "Forever, Repeat, While, or Until." +#: js/blocks/NumberBlocks.js:254 +msgid "abs" msgstr "" -#: js/FlowBlocks.js:604 -#: js/phrasemaker.js:3799 -#: js/musickeyboard.js:629 -#: js/musickeyboard.js:631 -#: js/timbre.js:417 -#: js/timbre.js:419 -#: plugins/rodi.rtp:29 -#: plugins/rodi.rtp:73 -#: plugins/rodi.rtp:413 -msgid "stop" +#: js/blocks/NumberBlocks.js:295 +msgid "The Distance block returns the distance between two points. For example, between the mouse and the center of the screen." msgstr "" -#: js/FlowBlocks.js:653 -msgid "The Waitfor block will wait until the condition is true." +#: js/blocks/NumberBlocks.js:301 +#: plugins/rodi.rtp:310 +msgid "distance" msgstr "" -#: js/FlowBlocks.js:661 -msgid "wait for" +#: js/blocks/NumberBlocks.js:361 +msgid "The Divide block is used to divide." msgstr "" -#: js/FlowBlocks.js:732 -msgid "The Until block will repeat until the condition is true." +#: js/blocks/NumberBlocks.js:441 +msgid "The Multiply block is used to multiply." msgstr "" -#: js/FlowBlocks.js:740 -msgid "until" +#: js/blocks/NumberBlocks.js:612 +msgid "The Minus block is used to subtract." msgstr "" -#: js/FlowBlocks.js:742 -#: js/FlowBlocks.js:822 -msgid "do2" +#: js/blocks/NumberBlocks.js:723 +msgid "The Plus block is used to add." msgstr "" -#: js/FlowBlocks.js:812 -msgid "The While block will repeat while the condition is true." +#: js/blocks/NumberBlocks.js:849 +msgid "The One-of block returns one of two choices." msgstr "" -#: js/FlowBlocks.js:820 -msgid "while" +#: js/blocks/NumberBlocks.js:856 +#: js/blocks/PitchBlocks.js:616 +msgid "one of" msgstr "" -#: js/FlowBlocks.js:903 -#: js/FlowBlocks.js:968 -#: js/FlowBlocks.js:979 -msgid "In this example if the mouse button is pressed a snare drum will play." +#: js/blocks/NumberBlocks.js:858 +msgid "this" msgstr "" -#: js/FlowBlocks.js:925 -#: js/FlowBlocks.js:988 -msgid "if" -msgstr "eğer" +#: js/blocks/NumberBlocks.js:858 +msgid "that" +msgstr "" -#: js/FlowBlocks.js:927 -#: js/FlowBlocks.js:990 -msgid "then" -msgstr "sonra" +#: js/blocks/NumberBlocks.js:913 +msgid "The Random block returns a random number." +msgstr "" -#: js/FlowBlocks.js:927 -msgid "else" -msgstr "voska" +#: js/blocks/NumberBlocks.js:920 +msgid "random" +msgstr "rastgele" -#: js/FlowBlocks.js:1025 -msgid "The Forever block will repeat the contained blocks forever." +#: js/blocks/NumberBlocks.js:922 +msgid "min" msgstr "" -#: js/FlowBlocks.js:1037 -msgid "forever" -msgstr "sürekli" +#: js/blocks/NumberBlocks.js:922 +msgid "max" +msgstr "" -#: js/FlowBlocks.js:1073 -msgid "The Repeat block will repeat the contained blocks." +#: js/blocks/NumberBlocks.js:986 +msgid "The Number block holds a number." msgstr "" -#: js/FlowBlocks.js:1075 -msgid "In this example the note will be played 4 times." +#: js/blocks/OrnamentBlocks.js:32 +msgid "staccato factor" msgstr "" -#: js/FlowBlocks.js:1083 -msgid "repeat" -msgstr "tekrarla" +#: js/blocks/OrnamentBlocks.js:108 +msgid "slur factor" +msgstr "" -#: js/FlowBlocks.js:1123 -msgid "duplicate factor" +#: js/blocks/OrnamentBlocks.js:217 +#: js/blocks/OrnamentBlocks.js:309 +#.TRANS: the neighbor refers to a neighboring note, e.g., D is a neighbor of C +msgid "neighbor" msgstr "" -#: js/PitchBlocks.js:39 -#: js/musicutils.js:722 -#: js/musicutils.js:1117 -#: js/synthutils.js:112 -#.TRANS: square wave -msgid "square" +#: js/blocks/OrnamentBlocks.js:293 +msgid "The Neighbor block rapidly switches between neighboring pitches." msgstr "" -#: js/PitchBlocks.js:62 -#: js/ToneBlocks.js:39 -#: js/musicutils.js:723 -#: js/musicutils.js:1118 -#: js/synthutils.js:116 -#.TRANS: triangle wave -msgid "triangle" +#: js/blocks/OrnamentBlocks.js:364 +msgid "glide" msgstr "" -#: js/PitchBlocks.js:85 -#: js/musicutils.js:721 -#: js/musicutils.js:1116 -#: js/synthutils.js:110 -#.TRANS: sine wave -msgid "sine" +#: js/blocks/OrnamentBlocks.js:479 +#: js/blocks/OrnamentBlocks.js:643 +msgid "slur" msgstr "" -#: js/PitchBlocks.js:108 -#: js/musicutils.js:724 -#: js/musicutils.js:1119 -#: js/synthutils.js:114 -#.TRANS: sawtooth wave -msgid "sawtooth" +#: js/blocks/OrnamentBlocks.js:558 +#: js/blocks/OrnamentBlocks.js:710 +#.TRANS: play each note sharply detached from the others +msgid "staccato" msgstr "" -#: js/PitchBlocks.js:141 -#.TRANS: musical transposition (adjustment of pitch up or down) -msgid "transposition" +#: js/blocks/RhythmBlocks.js:182 +#: js/blocks/RhythmBlocks.js:1086 +#: js/blocks/RhythmBlocks.js:1162 +msgid "Note value must be greater than 0." msgstr "" -#: js/PitchBlocks.js:168 -#.TRANS: step down one note in current musical scale -msgid "scalar step down" +#: js/blocks/RhythmBlocks.js:215 +#: js/blocks/RhythmBlocks.js:278 +#: js/blocks/RhythmBlocks.js:350 +#.TRANS: swing is a rhythmic variation that emphasises the offbeat +msgid "swing" msgstr "" -#: js/PitchBlocks.js:172 -msgid "The Scalar step down block returns the number of semi-tones down to the previous note in the current key and mode." +#: js/blocks/RhythmBlocks.js:355 +#.TRANS: the amount to shift to the offbeat note +msgid "swing value" msgstr "" -#: js/PitchBlocks.js:190 -#.TRANS: step up one note in current musical scale -msgid "scalar step up" +#: js/blocks/RhythmBlocks.js:419 +msgid "The Skip notes block will cause notes to be skipped." msgstr "" -#: js/PitchBlocks.js:194 -msgid "The Scalar step up block returns the number of semi-tones up to the next note in the current key and mode." +#: js/blocks/RhythmBlocks.js:427 +#.TRANS: substitute rests on notes being skipped +msgid "skip notes" msgstr "" -#: js/PitchBlocks.js:212 -#.TRANS: the change measured in half-steps between the current pitch and the previous pitch -msgid "change in pitch" +#: js/blocks/RhythmBlocks.js:489 +#.TRANS: speed up note duration by some factor, e.g. convert 1/4 to 1/8 notes by using a factor of 2 +msgid "multiply note value" msgstr "" -#: js/PitchBlocks.js:216 -msgid "The Change in pitch block is the difference (in half steps) between the current pitch being played and the previous pitch played." +#: js/blocks/RhythmBlocks.js:542 +msgid "The Tie block works on pairs of notes, combining them into one note." msgstr "" -#: js/PitchBlocks.js:243 -#.TRANS: the change measured in scale-steps between the current pitch and the previous pitch -msgid "scalar change in pitch" +#: js/blocks/RhythmBlocks.js:550 +#.TRANS: tie notes together into one longer note +msgid "tie" msgstr "" -#: js/PitchBlocks.js:250 -#: js/PitchBlocks.js:432 -#: js/PitchBlocks.js:1629 -#: js/DictActions.js:89 -#: js/temperament.js:477 -#: js/temperament.js:481 -#: js/temperament.js:714 -#.TRANS: convert current note to piano key (1-88) -#.TRANS: a mapping of pitch to the 88 piano keys -msgid "pitch number" +#: js/blocks/RhythmBlocks.js:591 +#: js/blocks/RhythmBlocks.js:671 +#.TRANS: a dotted note is played for 1.5x its value, e.g., 1/8. --> 3/16 +msgid "dot" msgstr "" -#: js/PitchBlocks.js:256 -msgid "The Pitch number block is the value of the pitch of the note currently being played." +#: js/blocks/RhythmBlocks.js:619 +#: js/turtleactions/RhythmActions.js:221 +msgid "An argument of -1 results in a note value of 0." msgstr "" -#: js/PitchBlocks.js:329 -#: js/PitchBlocks.js:433 -#.TRANS: the current pitch expressed in Hertz -msgid "pitch in hertz" +#: js/blocks/RhythmBlocks.js:661 +msgid "The Dot block extends the duration of a note by 50%." msgstr "" -#: js/PitchBlocks.js:334 -msgid "The Pitch in Hertz block is the value in Hertz of the pitch of the note currently being played." +#: js/blocks/RhythmBlocks.js:663 +msgid "Eg a dotted quarter note will play for 3/8 (1/4 + 1/8) of a beat." msgstr "" -#: js/PitchBlocks.js:367 -#: js/DictActions.js:87 -msgid "current pitch" +#: js/blocks/RhythmBlocks.js:765 +#.TRANS: Japanese only: note value block for drum +msgid "note value drum" msgstr "" -#: js/PitchBlocks.js:373 -msgid "The Current Pitch block is used with the Pitch Converter block. In the example above, current pitch, sol 4, is displayed as 392 hertz." +#: js/blocks/RhythmBlocks.js:829 +msgid "392 hertz" msgstr "" -#: js/PitchBlocks.js:410 -msgid "This block converts the pitch value of the last note played into different formats such as hertz, letter name, pitch number, et al." +#: js/blocks/RhythmBlocks.js:1119 +msgid "The Note block is a container for one or more Pitch blocks." msgstr "" -#: js/PitchBlocks.js:434 -msgid "alphabet" +#: js/blocks/RhythmBlocks.js:1121 +msgid "The Note block specifies the duration (note value) of its contents." msgstr "" -#: js/PitchBlocks.js:436 -#.TRANS: Translate as "alphabet class" -msgid "letter class" +#: js/blocks/RhythmBlocks.js:1128 +#: js/blocks/PitchBlocks.js:974 +#: js/blocks/PitchBlocks.js:1007 +#: js/blocks/ProgramBlocks.js:1186 +#: js/blocks/ProgramBlocks.js:1227 +#: js/widgets/status.js:190 +#: js/widgets/temperament.js:464 +#: js/widgets/temperament.js:486 +#: js/widgets/temperament.js:496 +#: js/widgets/temperament.js:617 +#: plugins/rodi.rtp:192 +#.TRANS: a musical note consisting of pitch and duration +msgid "note" msgstr "" -#: js/PitchBlocks.js:437 -msgid "solfege class" +#: js/blocks/RhythmBlocks.js:1130 +msgid "value2" msgstr "" -#: js/PitchBlocks.js:438 -msgid "staff y" +#: js/blocks/RhythmBlocks.js:1200 +msgid "define frequency" msgstr "" -#: js/PitchBlocks.js:439 -msgid "solfege syllable" +#: js/blocks/RhythmBlocks.js:1218 +#: js/widgets/temperament.js:787 +#: js/widgets/temperament.js:1587 +msgid "octave space" msgstr "" -#: js/PitchBlocks.js:440 -msgid "pitch class" +#: js/blocks/SensorsBlocks.js:36 +msgid "The Input block prompts for keyboard input." msgstr "" -#: js/PitchBlocks.js:441 -msgid "scalar class" +#: js/blocks/SensorsBlocks.js:46 +msgid "input" msgstr "" -#: js/PitchBlocks.js:443 -msgid "nth degree" +#: js/blocks/SensorsBlocks.js:64 +msgid "Input a value" msgstr "" -#: js/PitchBlocks.js:444 -msgid "pitch to shade" +#: js/blocks/SensorsBlocks.js:126 +msgid "input value" msgstr "" -#: js/PitchBlocks.js:445 -msgid "pitch to color" +#: js/blocks/SensorsBlocks.js:131 +msgid "The Input-value block stores the input." msgstr "" -#: js/PitchBlocks.js:629 -#: js/musickeyboard.js:565 -#.TRANS: MIDI is a technical standard for electronic music -msgid "MIDI" +#: js/blocks/SensorsBlocks.js:238 +msgid "loudness" msgstr "" -#: js/PitchBlocks.js:642 -#.TRANS: set an offset associated with the numeric piano keyboard mapping -msgid "set pitch number offset" +#: js/blocks/SensorsBlocks.js:245 +msgid "The Loudness block returns the volume detected by the microphone." msgstr "" -#: js/PitchBlocks.js:645 -msgid "The Set pitch number offset block is used to set the offset for mapping pitch numbers to pitch and octave." +#: js/blocks/SensorsBlocks.js:300 +msgid "click" msgstr "" -#: js/PitchBlocks.js:679 -#.TRANS: convert piano key number (1-88) to pitch -msgid "number to pitch" +#: js/blocks/SensorsBlocks.js:306 +msgid "The Click block triggers an event if a mouse has been clicked." msgstr "" -#: js/PitchBlocks.js:682 -msgid "The Number to pitch block will convert a pitch number to a pich name." +#: js/blocks/SensorsBlocks.js:313 +msgid "The Click block triggers an event if a turtle has been clicked." msgstr "" -#: js/PitchBlocks.js:715 -#.TRANS: convert piano key number (1-88) to octave -msgid "number to octave" +#: js/blocks/SensorsBlocks.js:342 +msgid "cursor over" msgstr "" -#: js/PitchBlocks.js:717 -msgid "The Number to octave block will convert a pitch number to an octave." +#: js/blocks/SensorsBlocks.js:387 +msgid "cursor out" msgstr "" -#: js/PitchBlocks.js:726 -msgid "y to pitch" +#: js/blocks/SensorsBlocks.js:433 +msgid "cursor button down" msgstr "" -#: js/PitchBlocks.js:729 -msgid "Y to pitch block will convert a staff y position to corresponding pitch notation." +#: js/blocks/SensorsBlocks.js:477 +msgid "cursor button up" msgstr "" -#: js/PitchBlocks.js:841 -msgid "accidental selector" +#: js/blocks/SensorsBlocks.js:521 +#: js/blocks/PenBlocks.js:48 +#: plugins/rodi.rtp:219 +msgid "blue" msgstr "" -#: js/PitchBlocks.js:844 -msgid "The Accidental selector block is used to choose between double-sharp, sharp, natural, flat, and double-flat." +#: js/blocks/SensorsBlocks.js:577 +#: js/blocks/PenBlocks.js:64 +#: plugins/rodi.rtp:218 +msgid "green" msgstr "" -#: js/PitchBlocks.js:858 -msgid "Pitch can be specified in terms of ni dha pa ma ga re sa." +#: js/blocks/SensorsBlocks.js:633 +#: js/blocks/PenBlocks.js:112 +#: plugins/rodi.rtp:217 +msgid "red" msgstr "" -#: js/PitchBlocks.js:872 -msgid "Pitch can be specified in terms of C D E F G A B." +#: js/blocks/SensorsBlocks.js:638 +msgid "The Get red block returns the red component of the pixel under the mouse." msgstr "" -#: js/PitchBlocks.js:883 -msgid "solfege" +#: js/blocks/SensorsBlocks.js:644 +msgid "The Get red block returns the red component of the pixel under the turtle." msgstr "" -#: js/PitchBlocks.js:886 -msgid "Pitch can be specified in terms of do re mi fa sol la ti." +#: js/blocks/SensorsBlocks.js:685 +#: plugins/rodi.rtp:216 +msgid "pixel color" msgstr "" -#: js/PitchBlocks.js:920 -msgid "The Invert block rotates any contained notes around a target note." +#: js/blocks/SensorsBlocks.js:690 +msgid "The Get pixel block returns the color of the pixel under the mouse." msgstr "" -#: js/PitchBlocks.js:927 -#.TRANS: pitch inversion rotates a pitch around another pitch -msgid "invert" +#: js/blocks/SensorsBlocks.js:696 +msgid "The Get pixel block returns the color of the pixel under the turtle." msgstr "" -#: js/PitchBlocks.js:929 -#: js/PitchBlocks.js:935 -#: js/PitchActions.js:727 -#: js/musicutils.js:726 -#: js/musicutils.js:902 -#.TRANS: invert based on even or odd number or musical scale -#.TRANS: even numbers -msgid "even" +#: js/blocks/SensorsBlocks.js:758 +msgid "time" msgstr "" -#: js/PitchBlocks.js:935 -#: js/PitchActions.js:729 -#: js/musicutils.js:728 -#: js/musicutils.js:903 -#.TRANS: odd numbers -msgid "odd" +#: js/blocks/SensorsBlocks.js:804 +msgid "cursor y" msgstr "" -#: js/PitchBlocks.js:935 -#: js/PitchActions.js:731 -#: js/musicutils.js:729 -#: js/musicutils.js:904 -msgid "scalar" +#: js/blocks/SensorsBlocks.js:809 +msgid "The Cursor Y block returns the vertical position of the mouse." msgstr "" -#: js/PitchBlocks.js:966 -#.TRANS: pitch inversion rotates a pitch around another pitch (odd number) -msgid "invert (odd)" +#: js/blocks/SensorsBlocks.js:845 +msgid "cursor x" msgstr "" -#: js/PitchBlocks.js:999 -#.TRANS: pitch inversion rotates a pitch around another pitch (even number) -msgid "invert (even)" +#: js/blocks/SensorsBlocks.js:850 +msgid "The Cursor X block returns the horizontal position of the mouse." msgstr "" -#: js/PitchBlocks.js:1020 -#.TRANS: register is the octave of the current pitch -msgid "register" +#: js/blocks/SensorsBlocks.js:886 +msgid "mouse button" msgstr "" -#: js/PitchBlocks.js:1024 -msgid "The Register block provides an easy way to modify the register (octave) of the notes that follow it." +#: js/blocks/SensorsBlocks.js:888 +msgid "The Mouse-button block returns True if the mouse button is pressed." msgstr "" -#: js/PitchBlocks.js:1074 -msgid "The Semi-tone transposition block will shift the pitches contained inside Note blocks up (or down) by half steps." +#: js/blocks/SensorsBlocks.js:934 +msgid "to ASCII" msgstr "" -#: js/PitchBlocks.js:1076 -msgid "In the example shown above, sol is shifted up to sol#." +#: js/blocks/SensorsBlocks.js:938 +msgid "The To ASCII block converts numbers to letters." msgstr "" -#: js/PitchBlocks.js:1082 -#.TRANS: adjust the amount of shift (up or down) of a pitch -msgid "semi-tone transpose" +#: js/blocks/SensorsBlocks.js:1005 +msgid "The Keyboard block returns computer keyboard input." msgstr "" -#: js/PitchBlocks.js:1115 -msgid "The Transpose by Ratio block will shift the pitches contained inside Note blocks up (or down) by a ratio" +#: js/blocks/RhythmBlockPaletteBlocks.js:50 +#: js/blocks/RhythmBlockPaletteBlocks.js:233 +#.TRANS: rhythm block +#.TRANS: translate "rhythm1" as rhythm +msgid "rhythm1" msgstr "" -#: js/PitchBlocks.js:1121 -#.TRANS: adjust the amount of shift (up or down) of a pitch -msgid "transpose by ratio" +#: js/blocks/RhythmBlockPaletteBlocks.js:70 +#: js/blocks/RhythmBlockPaletteBlocks.js:252 +#: js/blocks/RhythmBlockPaletteBlocks.js:485 +#: js/blocks/RhythmBlockPaletteBlocks.js:554 +#: js/blocks/RhythmBlockPaletteBlocks.js:875 +msgid "number of notes" msgstr "" -#: js/PitchBlocks.js:1204 -#.TRANS: down sixth means the note is five scale degrees below current note -msgid "down sixth" +#: js/blocks/RhythmBlockPaletteBlocks.js:126 +msgid "polyphonic rhythm" msgstr "" -#: js/PitchBlocks.js:1223 -#.TRANS: down third means the note is two scale degrees below current note -msgid "down third" +#: js/blocks/RhythmBlockPaletteBlocks.js:219 +msgid "The Rhythm block is used to generate rhythm patterns." msgstr "" -#: js/PitchBlocks.js:1242 -#.TRANS: seventh means the note is the six scale degrees above current note -msgid "seventh" +#: js/blocks/RhythmBlockPaletteBlocks.js:280 +msgid "1/64 note" msgstr "" -#: js/PitchBlocks.js:1261 -#.TRANS: sixth means the note is the five scale degrees above current note -msgid "sixth" +#: js/blocks/RhythmBlockPaletteBlocks.js:304 +msgid "1/32 note" msgstr "" -#: js/PitchBlocks.js:1280 -#.TRANS: fifth means the note is the four scale degrees above current note -msgid "fifth" +#: js/blocks/RhythmBlockPaletteBlocks.js:332 +msgid "1/16 note" msgstr "" -#: js/PitchBlocks.js:1300 -#.TRANS: fourth means the note is three scale degrees above current note -msgid "fourth" +#: js/blocks/RhythmBlockPaletteBlocks.js:360 +msgid "eighth note" msgstr "" -#: js/PitchBlocks.js:1319 -#.TRANS: third means the note is two scale degrees above current note -msgid "third" +#: js/blocks/RhythmBlockPaletteBlocks.js:388 +msgid "quarter note" msgstr "" -#: js/PitchBlocks.js:1338 -#.TRANS: second means the note is one scale degree above current note -msgid "second" +#: js/blocks/RhythmBlockPaletteBlocks.js:416 +msgid "half note" msgstr "" -#: js/PitchBlocks.js:1379 -msgid "The Scalar transposition block will shift the pitches contained inside Note blocks up (or down) the scale." +#: js/blocks/RhythmBlockPaletteBlocks.js:444 +msgid "whole note" msgstr "" -#: js/PitchBlocks.js:1381 -msgid "In the example shown above, sol is shifted up to la." +#: js/blocks/RhythmBlockPaletteBlocks.js:482 +#: js/blocks/RhythmBlockPaletteBlocks.js:551 +#: js/blocks/RhythmBlockPaletteBlocks.js:602 +#.TRANS: A tuplet is a note value divided into irregular time values. +msgid "tuplet" msgstr "" -#: js/PitchBlocks.js:1388 -#.TRANS: adjust the amount of shift (up or down) of a pitch by musical scale (scalar) steps -msgid "scalar transpose" +#: js/blocks/RhythmBlockPaletteBlocks.js:768 +msgid "septuplet" msgstr "" -#: js/PitchBlocks.js:1423 -msgid "The Accidental block is used to create sharps and flats" +#: js/blocks/RhythmBlockPaletteBlocks.js:796 +msgid "quintuplet" msgstr "" -#: js/PitchBlocks.js:1430 -#.TRANS: An accidental is a modification to a pitch, e.g., sharp or flat. -msgid "accidental override" +#: js/blocks/RhythmBlockPaletteBlocks.js:824 +msgid "triplet" msgstr "" -#: js/PitchBlocks.js:1543 -msgid "The Hertz block (in combination with a Number block) will play a sound at the specified frequency." +#: js/blocks/RhythmBlockPaletteBlocks.js:851 +msgid "simple tuplet" msgstr "" -#: js/PitchBlocks.js:1633 -msgid "The Pitch Number block will play a pitch associated by its number, e.g. 0 for C and 7 for G." +#: js/blocks/RhythmBlockPaletteBlocks.js:861 +msgid "Tuplets are a collection of notes that get scaled to a specific duration." msgstr "" -#: js/PitchBlocks.js:1665 -#: js/PitchBlocks.js:1707 -#.TRANS: a numeric mapping of the notes in an octave based on the musical mode -#.TRANS: a numeric mapping of the notes in an octave based on the musical mode -msgid "nth modal pitch" +#: js/blocks/DrumBlocks.js:59 +msgid "The Noise name block is used to select a noise synthesizer." msgstr "" -#: js/PitchBlocks.js:1668 -msgid "n^th Modal Pitch takes the pattern of pitches in semitones for a mode and makes each point a degree of the mode," +#: js/blocks/DrumBlocks.js:102 +msgid "The Drum name block is used to select a drum." msgstr "" -#: js/PitchBlocks.js:1670 -msgid "starting from 1 and regardless of tonal framework (i.e. not always 8 notes in the octave)" +#: js/blocks/DrumBlocks.js:146 +msgid "The Effects name block is used to select a sound effect." msgstr "" -#: js/PitchBlocks.js:1711 -msgid "N^th Modal Pitch takes a number as an input as the n^th degree for the given mode. 0 is the first position, 1 is the second, -1 is the note before the first etc." +#: js/blocks/DrumBlocks.js:163 +msgid "noise" msgstr "" -#: js/PitchBlocks.js:1713 -msgid "The pitches change according to the mode specified without any need for respellings." +#: js/blocks/DrumBlocks.js:177 +msgid "The Play noise block will generate white, pink, or brown noise." msgstr "" -#: js/PitchBlocks.js:1752 -msgid "Scale Degree is a common convention in music. Scale Degree offers seven possible positions in the scale (1-7) and can be modified via accidentals." +#: js/blocks/DrumBlocks.js:317 +msgid "Replace every instance of a pitch with a drum sound." msgstr "" -#: js/PitchBlocks.js:1754 -msgid "Scale Degree 1 is always the first pitch in a given scale, regardless of octave." +#: js/blocks/DrumBlocks.js:328 +#.TRANS: map a pitch to a drum sound +msgid "map pitch to drum" msgstr "" -#: js/PitchBlocks.js:1776 -#.TRANS: step some number of notes in current musical scale -msgid "scalar step" +#: js/blocks/DrumBlocks.js:395 +msgid "In the example above, a kick drum sound will be played instead of sol." msgstr "" -#: js/PitchBlocks.js:1781 -msgid "The Scalar Step block (in combination with a Number block) will play the next pitch in a scale," +#: js/blocks/DrumBlocks.js:407 +#.TRANS: set the current drum sound for playback +msgid "set drum" msgstr "" -#: js/PitchBlocks.js:1783 -msgid "eg if the last note played was sol, Scalar Step 1 will play la." +#: js/blocks/DrumBlocks.js:451 +msgid "sound effect" msgstr "" -#: js/PitchBlocks.js:1818 -msgid "The Pitch block specifies the pitch name and octave of a note that together determine the frequency of the note." +#: js/blocks/DrumBlocks.js:489 +msgid "You can use multiple Drum blocks within a Note block." msgstr "" -#: js/GraphicsBlocks.js:46 -#: js/DictActions.js:77 -#: js/DictActions.js:155 -#: js/DictActions.js:189 +#: js/blocks/GraphicsBlocks.js:46 +#: js/turtleactions/DictActions.js:77 +#: js/turtleactions/DictActions.js:144 +#: js/turtleactions/DictActions.js:173 msgid "heading" msgstr "başlık" -#: js/GraphicsBlocks.js:56 +#: js/blocks/GraphicsBlocks.js:56 msgid "The Heading block returns the orientation of the mouse." msgstr "" -#: js/GraphicsBlocks.js:62 +#: js/blocks/GraphicsBlocks.js:62 msgid "The Heading block returns the orientation of the turtle." msgstr "" -#: js/GraphicsBlocks.js:133 +#: js/blocks/GraphicsBlocks.js:133 msgid "The Y block returns the vertical position of the mouse." msgstr "" -#: js/GraphicsBlocks.js:140 +#: js/blocks/GraphicsBlocks.js:140 msgid "The Y block returns the vertical position of the turtle." msgstr "" -#: js/GraphicsBlocks.js:149 +#: js/blocks/GraphicsBlocks.js:149 msgid "y3" msgstr "" -#: js/GraphicsBlocks.js:219 +#: js/blocks/GraphicsBlocks.js:219 msgid "The X block returns the horizontal position of the mouse." msgstr "" -#: js/GraphicsBlocks.js:226 +#: js/blocks/GraphicsBlocks.js:226 msgid "The X block returns the horizontal position of the turtle." msgstr "" -#: js/GraphicsBlocks.js:235 +#: js/blocks/GraphicsBlocks.js:235 msgid "x3" msgstr "" -#: js/GraphicsBlocks.js:295 +#: js/blocks/GraphicsBlocks.js:295 msgid "scroll xy" msgstr "" -#: js/GraphicsBlocks.js:303 +#: js/blocks/GraphicsBlocks.js:303 msgid "The Scroll XY block moves the canvas." msgstr "" -#: js/GraphicsBlocks.js:313 +#: js/blocks/GraphicsBlocks.js:313 msgid "x2" msgstr "" -#: js/GraphicsBlocks.js:313 +#: js/blocks/GraphicsBlocks.js:313 msgid "y2" msgstr "" -#: js/GraphicsBlocks.js:373 -#: js/temperament.js:213 -#: js/temperament.js:241 +#: js/blocks/GraphicsBlocks.js:373 +#: js/widgets/temperament.js:319 +#: js/widgets/temperament.js:347 msgid "clear" msgstr "" -#: js/GraphicsBlocks.js:426 +#: js/blocks/GraphicsBlocks.js:426 msgid "The Control-point 2 block sets the second control point for the Bezier curve." msgstr "" -#: js/GraphicsBlocks.js:433 +#: js/blocks/GraphicsBlocks.js:433 msgid "control point 2" msgstr "" -#: js/GraphicsBlocks.js:436 -#: js/GraphicsBlocks.js:487 -#: js/GraphicsBlocks.js:534 -#: js/GraphicsBlocks.js:750 +#: js/blocks/GraphicsBlocks.js:436 +#: js/blocks/GraphicsBlocks.js:487 +#: js/blocks/GraphicsBlocks.js:534 +#: js/blocks/GraphicsBlocks.js:750 msgid "x1" msgstr "" -#: js/GraphicsBlocks.js:436 -#: js/GraphicsBlocks.js:487 -#: js/GraphicsBlocks.js:534 -#: js/GraphicsBlocks.js:750 +#: js/blocks/GraphicsBlocks.js:436 +#: js/blocks/GraphicsBlocks.js:487 +#: js/blocks/GraphicsBlocks.js:534 +#: js/blocks/GraphicsBlocks.js:750 msgid "y1" msgstr "" -#: js/GraphicsBlocks.js:477 +#: js/blocks/GraphicsBlocks.js:477 msgid "The Control-point 1 block sets the first control point for the Bezier curve." msgstr "" -#: js/GraphicsBlocks.js:484 +#: js/blocks/GraphicsBlocks.js:484 msgid "control point 1" msgstr "" -#: js/GraphicsBlocks.js:527 +#: js/blocks/GraphicsBlocks.js:527 msgid "The Bezier block draws a Bezier curve." msgstr "" -#: js/GraphicsBlocks.js:531 +#: js/blocks/GraphicsBlocks.js:531 msgid "bezier" msgstr "" -#: js/GraphicsBlocks.js:592 +#: js/blocks/GraphicsBlocks.js:592 msgid "The Arc block moves the turtle in an arc." msgstr "" -#: js/GraphicsBlocks.js:600 +#: js/blocks/GraphicsBlocks.js:600 msgid "arc" msgstr "yay" -#: js/GraphicsBlocks.js:603 +#: js/blocks/GraphicsBlocks.js:603 msgid "angle" msgstr "açı" -#: js/GraphicsBlocks.js:603 +#: js/blocks/GraphicsBlocks.js:603 msgid "radius" msgstr "yarıçap" -#: js/GraphicsBlocks.js:620 -#: js/GraphicsBlocks.js:767 -#: js/GraphicsBlocks.js:1010 -#: js/GraphicsBlocks.js:1093 +#: js/blocks/GraphicsBlocks.js:620 +#: js/blocks/GraphicsBlocks.js:767 +#: js/blocks/GraphicsBlocks.js:1010 +#: js/blocks/GraphicsBlocks.js:1093 msgid "Value must be within -5000 to 5000 when Wrap Mode is off." msgstr "" -#: js/GraphicsBlocks.js:622 -#: js/GraphicsBlocks.js:769 -#: js/GraphicsBlocks.js:1012 -#: js/GraphicsBlocks.js:1095 +#: js/blocks/GraphicsBlocks.js:622 +#: js/blocks/GraphicsBlocks.js:769 +#: js/blocks/GraphicsBlocks.js:1012 +#: js/blocks/GraphicsBlocks.js:1095 msgid "Value must be within -20000 to 20000 when Wrap Mode is on." msgstr "" -#: js/GraphicsBlocks.js:660 +#: js/blocks/GraphicsBlocks.js:660 msgid "set heading" msgstr "seth" -#: js/GraphicsBlocks.js:673 +#: js/blocks/GraphicsBlocks.js:673 msgid "The Set heading block sets the heading of the turtle." msgstr "" -#: js/GraphicsBlocks.js:733 +#: js/blocks/GraphicsBlocks.js:733 msgid "The Set XY block moves the mouse to a specific position on the screen." msgstr "" -#: js/GraphicsBlocks.js:739 +#: js/blocks/GraphicsBlocks.js:739 msgid "The Set XY block moves the turtle to a specific position on the screen." msgstr "" -#: js/GraphicsBlocks.js:747 +#: js/blocks/GraphicsBlocks.js:747 msgid "set xy" msgstr "eksen ayarla" -#: js/GraphicsBlocks.js:819 +#: js/blocks/GraphicsBlocks.js:819 msgid "The Right block turns the mouse to the right." msgstr "" -#: js/GraphicsBlocks.js:826 +#: js/blocks/GraphicsBlocks.js:826 msgid "The Right block turns the turtle to the right." msgstr "" -#: js/GraphicsBlocks.js:835 +#: js/blocks/GraphicsBlocks.js:835 msgid "right1" msgstr "" -#: js/GraphicsBlocks.js:835 +#: js/blocks/GraphicsBlocks.js:835 #: plugins/rodi.rtp:77 #: plugins/rodi.rtp:340 #: plugins/rodi.rtp:375 msgid "right" msgstr "sağ" -#: js/GraphicsBlocks.js:899 +#: js/blocks/GraphicsBlocks.js:899 msgid "The Left block turns the mouse to the left." msgstr "" -#: js/GraphicsBlocks.js:906 +#: js/blocks/GraphicsBlocks.js:906 msgid "The Left block turns the turtle to the left." msgstr "" -#: js/GraphicsBlocks.js:915 +#: js/blocks/GraphicsBlocks.js:915 msgid "left1" msgstr "" -#: js/GraphicsBlocks.js:915 +#: js/blocks/GraphicsBlocks.js:915 #: plugins/rodi.rtp:79 #: plugins/rodi.rtp:339 #: plugins/rodi.rtp:362 msgid "left" msgstr "sol" -#: js/GraphicsBlocks.js:967 -#: js/temperament.js:734 -#: js/temperament.js:933 +#: js/blocks/GraphicsBlocks.js:967 +#: js/widgets/temperament.js:875 +#: js/widgets/temperament.js:1078 #: plugins/rodi.rtp:69 #: plugins/rodi.rtp:387 msgid "back" msgstr "geri" -#: js/GraphicsBlocks.js:976 +#: js/blocks/GraphicsBlocks.js:976 msgid "The Back block moves the mouse backward." msgstr "" -#: js/GraphicsBlocks.js:983 +#: js/blocks/GraphicsBlocks.js:983 msgid "The Back block moves the turtle backward." msgstr "" -#: js/GraphicsBlocks.js:1050 +#: js/blocks/GraphicsBlocks.js:1050 #: plugins/rodi.rtp:71 #: plugins/rodi.rtp:400 msgid "forward" msgstr "ileri" -#: js/GraphicsBlocks.js:1059 +#: js/blocks/GraphicsBlocks.js:1059 msgid "The Forward block moves the mouse forward." msgstr "" -#: js/GraphicsBlocks.js:1066 +#: js/blocks/GraphicsBlocks.js:1066 msgid "The Forward block moves the turtle forward." msgstr "" -#: js/GraphicsBlocks.js:1154 -#: js/GraphicsBlocks.js:1172 +#: js/blocks/GraphicsBlocks.js:1154 +#: js/blocks/GraphicsBlocks.js:1172 msgid "wrap" msgstr "" -#: js/OrnamentBlocks.js:32 -msgid "staccato factor" -msgstr "" - -#: js/OrnamentBlocks.js:108 -msgid "slur factor" -msgstr "" - -#: js/OrnamentBlocks.js:217 -#: js/OrnamentBlocks.js:309 -#.TRANS: the neighbor refers to a neighboring note, e.g., D is a neighbor of C -msgid "neighbor" -msgstr "" - -#: js/OrnamentBlocks.js:293 -msgid "The Neighbor block rapidly switches between neighboring pitches." -msgstr "" - -#: js/OrnamentBlocks.js:364 -msgid "glide" -msgstr "" - -#: js/OrnamentBlocks.js:479 -#: js/OrnamentBlocks.js:643 -msgid "slur" -msgstr "" - -#: js/OrnamentBlocks.js:558 -#: js/OrnamentBlocks.js:710 -#.TRANS: play each note sharply detached from the others -msgid "staccato" -msgstr "" - -#: js/PenBlocks.js:24 +#: js/blocks/PenBlocks.js:30 msgid "purple" msgstr "" -#: js/PenBlocks.js:37 -#: js/SensorsBlocks.js:521 -#: plugins/rodi.rtp:219 -msgid "blue" -msgstr "" - -#: js/PenBlocks.js:50 -#: js/SensorsBlocks.js:577 -#: plugins/rodi.rtp:218 -msgid "green" -msgstr "" - -#: js/PenBlocks.js:63 +#: js/blocks/PenBlocks.js:80 msgid "yellow" msgstr "" -#: js/PenBlocks.js:76 +#: js/blocks/PenBlocks.js:96 #: plugins/nutrition.rtp:164 msgid "orange" msgstr "" -#: js/PenBlocks.js:89 -#: js/SensorsBlocks.js:633 -#: plugins/rodi.rtp:217 -msgid "red" -msgstr "" - -#: js/PenBlocks.js:102 +#: js/blocks/PenBlocks.js:128 msgid "white" msgstr "" -#: js/PenBlocks.js:115 +#: js/blocks/PenBlocks.js:144 msgid "black" msgstr "" -#: js/PenBlocks.js:128 +#: js/blocks/PenBlocks.js:163 msgid "begin fill" msgstr "" -#: js/PenBlocks.js:143 +#: js/blocks/PenBlocks.js:190 msgid "end fill" msgstr "" -#: js/PenBlocks.js:159 -#: js/PenBlocks.js:386 +#: js/blocks/PenBlocks.js:212 +#: js/blocks/PenBlocks.js:560 #.TRANS: set the background color msgid "background" msgstr "" -#: js/PenBlocks.js:206 -#: js/DictActions.js:71 -#: js/DictActions.js:149 -#: js/DictActions.js:186 +#: js/blocks/PenBlocks.js:274 +#: js/turtleactions/DictActions.js:71 +#: js/turtleactions/DictActions.js:138 +#: js/turtleactions/DictActions.js:170 msgid "grey" msgstr "" -#: js/PenBlocks.js:210 +#: js/blocks/PenBlocks.js:282 msgid "The Grey block returns the current pen grey value." msgstr "" -#: js/PenBlocks.js:243 -#: js/DictActions.js:69 -#: js/DictActions.js:147 -#: js/DictActions.js:185 +#: js/blocks/PenBlocks.js:340 +#: js/turtleactions/DictActions.js:69 +#: js/turtleactions/DictActions.js:136 +#: js/turtleactions/DictActions.js:169 msgid "shade" msgstr "gölge" -#: js/PenBlocks.js:247 +#: js/blocks/PenBlocks.js:347 msgid "The Shade block returns the current pen shade value." msgstr "" -#: js/PenBlocks.js:280 -#: js/DictActions.js:67 -#: js/DictActions.js:145 -#: js/DictActions.js:184 +#: js/blocks/PenBlocks.js:405 +#: js/turtleactions/DictActions.js:67 +#: js/turtleactions/DictActions.js:134 +#: js/turtleactions/DictActions.js:168 msgid "color" msgstr "renk" -#: js/PenBlocks.js:285 +#: js/blocks/PenBlocks.js:415 msgid "The Color block returns the current pen color." msgstr "" -#: js/PenBlocks.js:318 -#: js/DictActions.js:73 -#: js/DictActions.js:151 -#: js/DictActions.js:187 +#: js/blocks/PenBlocks.js:470 +#: js/turtleactions/DictActions.js:73 +#: js/turtleactions/DictActions.js:140 +#: js/turtleactions/DictActions.js:171 msgid "pen size" msgstr "kalem boyu" -#: js/PenBlocks.js:322 +#: js/blocks/PenBlocks.js:474 msgid "The Pen size block returns the current pen size value." msgstr "" -#: js/PenBlocks.js:355 +#: js/blocks/PenBlocks.js:513 msgid "set font" msgstr "" -#: js/PenBlocks.js:358 +#: js/blocks/PenBlocks.js:518 msgid "The Set font block sets the font used by the Show block." msgstr "" -#: js/PenBlocks.js:391 +#: js/blocks/PenBlocks.js:567 msgid "The Background block sets the window background color." msgstr "" -#: js/PenBlocks.js:408 +#: js/blocks/PenBlocks.js:598 msgid "The Hollow line block creates a line with a hollow center." msgstr "" -#: js/PenBlocks.js:415 +#: js/blocks/PenBlocks.js:606 #.TRANS: draw a line logo has a hollow space down its center msgid "hollow line" msgstr "" -#: js/PenBlocks.js:462 +#: js/blocks/PenBlocks.js:675 msgid "The Fill block fills in a shape with a color." msgstr "" -#: js/PenBlocks.js:470 +#: js/blocks/PenBlocks.js:684 #.TRANS: fill in as a solid color msgid "fill" msgstr "" -#: js/PenBlocks.js:527 +#: js/blocks/PenBlocks.js:761 #.TRANS: raise up the pen so logo it does not draw when it is moved msgid "pen up" msgstr "kb" -#: js/PenBlocks.js:532 +#: js/blocks/PenBlocks.js:768 msgid "The Pen-up block raises the pen so that it does not draw." msgstr "" -#: js/PenBlocks.js:552 +#: js/blocks/PenBlocks.js:802 #.TRANS: put down the pen so logo it draws when it is moved msgid "pen down" msgstr "kk" -#: js/PenBlocks.js:557 +#: js/blocks/PenBlocks.js:810 msgid "The Pen-down block lowers the pen so that it draws." msgstr "" -#: js/PenBlocks.js:577 +#: js/blocks/PenBlocks.js:844 #.TRANS: set the width of the line drawn by the pen msgid "set pen size" msgstr "kalem boyu ayan" -#: js/PenBlocks.js:583 +#: js/blocks/PenBlocks.js:854 msgid "The Set-pen-size block changes the size of the pen." msgstr "" -#: js/PenBlocks.js:623 +#: js/blocks/PenBlocks.js:913 #.TRANS: set degree of translucence of the pen color msgid "set translucency" msgstr "" -#: js/PenBlocks.js:627 +#: js/blocks/PenBlocks.js:921 msgid "The Set translucency block changes the opacity of the pen." msgstr "" -#: js/PenBlocks.js:668 +#: js/blocks/PenBlocks.js:981 msgid "set hue" msgstr "" -#: js/PenBlocks.js:672 +#: js/blocks/PenBlocks.js:989 msgid "The Set hue block changes the color of the pen." msgstr "" -#: js/PenBlocks.js:711 +#: js/blocks/PenBlocks.js:1047 msgid "set shade" msgstr "gölge ayarı" -#: js/PenBlocks.js:717 +#: js/blocks/PenBlocks.js:1057 msgid "The Set-shade block changes the pen color from dark to light." msgstr "" -#: js/PenBlocks.js:757 +#: js/blocks/PenBlocks.js:1111 #.TRANS: set the level of vividness of the pen color msgid "set grey" msgstr "" -#: js/PenBlocks.js:761 +#: js/blocks/PenBlocks.js:1119 msgid "The Set grey block changes the vividness of the pen color." msgstr "" -#: js/PenBlocks.js:800 +#: js/blocks/PenBlocks.js:1172 msgid "set color" msgstr "renk ayarı" -#: js/PenBlocks.js:806 +#: js/blocks/PenBlocks.js:1182 msgid "The Set-color block changes the pen color." msgstr "" -#: js/VolumeBlocks.js:35 -msgid "synth volume" -msgstr "" - -#: js/VolumeBlocks.js:39 -msgid "The Synth volume block returns the current volume of the current synthesizer." -msgstr "" - -#: js/VolumeBlocks.js:47 -#: js/musicutils.js:730 -#: js/synthutils.js:56 -#.TRANS: musical instrument -msgid "piano" -msgstr "" - -#: js/VolumeBlocks.js:105 -msgid "master volume" -msgstr "" - -#: js/VolumeBlocks.js:109 -msgid "The Master volume block returns the master volume." -msgstr "" - -#: js/VolumeBlocks.js:355 -#: js/VolumeBlocks.js:524 -msgid "set synth volume" -msgstr "" - -#: js/VolumeBlocks.js:362 -#: js/VolumeBlocks.js:545 -msgid "synth" -msgstr "" - -#: js/VolumeBlocks.js:403 -#: js/VolumeBlocks.js:577 -#: js/VolumeBlocks.js:740 -#: js/VolumeActions.js:173 -msgid "Setting volume to 0." -msgstr "" - -#: js/VolumeBlocks.js:440 -msgid "Synth not found" -msgstr "" - -#: js/VolumeBlocks.js:494 -msgid "set drum volume" -msgstr "" - -#: js/VolumeBlocks.js:530 -msgid "The Set synth volume block will change the volume of a particular synth," -msgstr "" - -#: js/VolumeBlocks.js:532 -msgid "eg guitar violin snare drum etc." -msgstr "" - -#: js/VolumeBlocks.js:534 -msgid "The default volume is 50." -msgstr "" - -#: js/VolumeBlocks.js:536 -msgid "The range is 0 for silence to 100 for full volume." -msgstr "" - -#: js/VolumeBlocks.js:597 -msgid "set panning" -msgstr "" - -#: js/VolumeBlocks.js:603 -msgid "The Set Panning block sets the panning for all synthesizers." -msgstr "" - -#: js/VolumeBlocks.js:625 -msgid "Warning: Sound is coming out from only the left or right side." -msgstr "" - -#: js/VolumeBlocks.js:647 -#: js/VolumeBlocks.js:695 -msgid "set master volume" -msgstr "" - -#: js/VolumeBlocks.js:653 -msgid "The Set master volume block sets the volume for all synthesizers." -msgstr "" - -#: js/VolumeBlocks.js:784 -msgid "The Set relative volume block changes the volume of the contained notes." -msgstr "" - -#: js/VolumeBlocks.js:791 -msgid "set relative volume" -msgstr "" - -#: js/VolumeBlocks.js:857 -msgid "decrescendo" -msgstr "" - -#: js/VolumeBlocks.js:921 -msgid "crescendo" -msgstr "" - -#: js/ToneBlocks.js:34 -msgid "oscillator" -msgstr "" - -#: js/ToneBlocks.js:44 -#: js/timbre.js:1562 -#.TRANS: Partials refers to the number of sine waves combined into the sound. -msgid "partials" -msgstr "" - -#: js/ToneBlocks.js:76 -msgid "You are adding multiple oscillator blocks." -msgstr "" - -#: js/ToneBlocks.js:144 -#: js/timbre.js:1225 -#.TRANS: a duo synthesizer combines a synth with a sequencer -msgid "duo synth" -msgstr "" - -#: js/ToneBlocks.js:149 -msgid "The Duo synth block is a duo-frequency modulator used to define a timbre." -msgstr "" - -#: js/ToneBlocks.js:157 -#: js/timbre.js:1476 -msgid "vibrato rate" -msgstr "" - -#: js/ToneBlocks.js:157 -msgid "vibrato intensity" -msgstr "" - -#: js/ToneBlocks.js:185 -#: js/timbre.js:1221 -#.TRANS: AM (amplitude modulation) synthesizer -msgid "AM synth" -msgstr "" - -#: js/ToneBlocks.js:189 -msgid "The AM synth block is an amplitude modulator used to define a timbre." -msgstr "" - -#: js/ToneBlocks.js:224 -#: js/timbre.js:1223 -#.TRANS: FM (frequency modulation) synthesizer -msgid "FM synth" +#: js/blocks/PitchBlocks.js:141 +#.TRANS: musical transposition (adjustment of pitch up or down) +msgid "transposition" msgstr "" -#: js/ToneBlocks.js:228 -msgid "The FM synth block is a frequency modulator used to define a timbre." +#: js/blocks/PitchBlocks.js:168 +#.TRANS: step down one note in current musical scale +msgid "scalar step down" msgstr "" -#: js/ToneBlocks.js:262 -msgid "partial" +#: js/blocks/PitchBlocks.js:172 +msgid "The Scalar step down block returns the number of semi-tones down to the previous note in the current key and mode." msgstr "" -#: js/ToneBlocks.js:265 -msgid "The Partial block is used to specify a weight for a specific partial harmonic." +#: js/blocks/PitchBlocks.js:190 +#.TRANS: step up one note in current musical scale +msgid "scalar step up" msgstr "" -#: js/ToneBlocks.js:284 -#.TRANS: partials are weighted components in a harmonic series -msgid "Partial weight must be between 0 and 1." +#: js/blocks/PitchBlocks.js:194 +msgid "The Scalar step up block returns the number of semi-tones up to the next note in the current key and mode." msgstr "" -#: js/ToneBlocks.js:297 -#.TRANS: partials are weighted components in a harmonic series -msgid "Partial block should be used inside of a Weighted-partials block." +#: js/blocks/PitchBlocks.js:212 +#.TRANS: the change measured in half-steps between the current pitch and the previous pitch +msgid "change in pitch" msgstr "" -#: js/ToneBlocks.js:325 -#.TRANS: partials are weighted components in a harmonic series -msgid "weighted partials" +#: js/blocks/PitchBlocks.js:216 +msgid "The Change in pitch block is the difference (in half steps) between the current pitch being played and the previous pitch played." msgstr "" -#: js/ToneBlocks.js:383 -msgid "The Harmonic block will add harmonics to the contained notes." +#: js/blocks/PitchBlocks.js:243 +#.TRANS: the change measured in scale-steps between the current pitch and the previous pitch +msgid "scalar change in pitch" msgstr "" -#: js/ToneBlocks.js:390 -#.TRANS: A harmonic is an overtone. -msgid "harmonic" +#: js/blocks/PitchBlocks.js:250 +#: js/blocks/PitchBlocks.js:432 +#: js/blocks/PitchBlocks.js:1667 +#: js/turtleactions/DictActions.js:89 +#: js/widgets/temperament.js:610 +#: js/widgets/temperament.js:614 +#: js/widgets/temperament.js:855 +#.TRANS: convert current note to piano key (1-88) +#.TRANS: a mapping of pitch to the 88 piano keys +msgid "pitch number" msgstr "" -#: js/ToneBlocks.js:431 -msgid "The Distortion block adds distortion to the pitch." +#: js/blocks/PitchBlocks.js:256 +msgid "The Pitch number block is the value of the pitch of the note currently being played." msgstr "" -#: js/ToneBlocks.js:438 -#: js/timbre.js:2100 -#.TRANS: distortion is an alteration in the sound -msgid "distortion" +#: js/blocks/PitchBlocks.js:329 +#: js/blocks/PitchBlocks.js:433 +#.TRANS: the current pitch expressed in Hertz +msgid "pitch in hertz" msgstr "" -#: js/ToneBlocks.js:487 -msgid "The Tremolo block adds a wavering effect." +#: js/blocks/PitchBlocks.js:334 +msgid "The Pitch in Hertz block is the value in Hertz of the pitch of the note currently being played." msgstr "" -#: js/ToneBlocks.js:495 -#: js/timbre.js:2092 -#.TRANS: a wavering effect in a musical tone -msgid "tremolo" +#: js/blocks/PitchBlocks.js:367 +#: js/turtleactions/DictActions.js:87 +msgid "current pitch" msgstr "" -#: js/ToneBlocks.js:500 -#: js/ToneBlocks.js:569 -#: js/ToneBlocks.js:630 -#: js/ToneBlocks.js:689 -#: js/timbre.js:2134 -#: js/timbre.js:2222 -#: js/timbre.js:2317 -#: js/timbre.js:2419 -#.TRANS: rate at which tremolo wavers -msgid "rate" +#: js/blocks/PitchBlocks.js:373 +msgid "The Current Pitch block is used with the Pitch Converter block. In the example above, current pitch, sol 4, is displayed as 392 hertz." msgstr "" -#: js/ToneBlocks.js:502 -#: js/ToneBlocks.js:630 -#: js/timbre.js:2137 -#: js/timbre.js:2328 -#.TRANS: amplitude of tremolo waver -msgid "depth" +#: js/blocks/PitchBlocks.js:410 +msgid "This block converts the pitch value of the last note played into different formats such as hertz, letter name, pitch number, et al." msgstr "" -#: js/ToneBlocks.js:559 -msgid "The Phaser block adds a sweeping sound." +#: js/blocks/PitchBlocks.js:434 +msgid "alphabet" msgstr "" -#: js/ToneBlocks.js:566 -#: js/timbre.js:2098 -#.TRANS: alter the phase of the sound -msgid "phaser" +#: js/blocks/PitchBlocks.js:436 +#.TRANS: Translate as "alphabet class" +msgid "letter class" msgstr "" -#: js/ToneBlocks.js:569 -#: js/timbre.js:2422 -msgid "octaves" +#: js/blocks/PitchBlocks.js:437 +msgid "solfege class" msgstr "" -#: js/ToneBlocks.js:569 -#: js/timbre.js:2425 -msgid "base frequency" +#: js/blocks/PitchBlocks.js:438 +msgid "staff y" msgstr "" -#: js/ToneBlocks.js:619 -msgid "The Chorus block adds a chorus effect." +#: js/blocks/PitchBlocks.js:439 +msgid "solfege syllable" msgstr "" -#: js/ToneBlocks.js:627 -#: js/timbre.js:2096 -#.TRANS: musical effect to simulate a choral sound -msgid "chorus" +#: js/blocks/PitchBlocks.js:440 +msgid "pitch class" msgstr "" -#: js/ToneBlocks.js:630 -msgid "delay" +#: js/blocks/PitchBlocks.js:441 +msgid "scalar class" msgstr "" -#: js/ToneBlocks.js:678 -msgid "The Vibrato block adds a rapid, slight variation in pitch." +#: js/blocks/PitchBlocks.js:443 +msgid "nth degree" msgstr "" -#: js/ToneBlocks.js:686 -#: js/timbre.js:2094 -#.TRANS: a rapid, slight variation in pitch -msgid "vibrato" +#: js/blocks/PitchBlocks.js:444 +msgid "pitch to shade" msgstr "" -#: js/ToneBlocks.js:689 -#: js/timbre.js:2221 -msgid "intensity" +#: js/blocks/PitchBlocks.js:445 +msgid "pitch to color" msgstr "" -#: js/ToneBlocks.js:733 -#.TRANS: select synthesizer -msgid "set synth" +#: js/blocks/PitchBlocks.js:629 +#: js/widgets/musickeyboard.js:735 +#.TRANS: MIDI is a technical standard for electronic music +msgid "MIDI" msgstr "" -#: js/ToneBlocks.js:804 -msgid "synth name" +#: js/blocks/PitchBlocks.js:642 +#.TRANS: set an offset associated with the numeric piano keyboard mapping +msgid "set pitch number offset" msgstr "" -#: js/ToneBlocks.js:842 -msgid "set default instrument" +#: js/blocks/PitchBlocks.js:645 +msgid "The Set pitch number offset block is used to set the offset for mapping pitch numbers to pitch and octave." msgstr "" -#: js/ToneBlocks.js:895 -#: js/ToneBlocks.js:943 -#.TRANS: set the characteristics of a custom instrument -msgid "set instrument" +#: js/blocks/PitchBlocks.js:679 +#.TRANS: convert piano key number (1-88) to pitch +msgid "number to pitch" msgstr "" -#: js/ToneBlocks.js:898 -#: js/ToneBlocks.js:926 -#: js/ToneBlocks.js:932 -msgid "The Set instrument block selects a voice for the synthesizer," +#: js/blocks/PitchBlocks.js:682 +msgid "The Number to pitch block will convert a pitch number to a pich name." msgstr "" -#: js/ToneBlocks.js:900 -#: js/ToneBlocks.js:934 -msgid "eg guitar piano violin or cello." +#: js/blocks/PitchBlocks.js:715 +#.TRANS: convert piano key number (1-88) to octave +msgid "number to octave" msgstr "" -#: js/ToneBlocks.js:1015 -msgid "Import a sound file to use as an instrument and set its pitch center." +#: js/blocks/PitchBlocks.js:717 +msgid "The Number to octave block will convert a pitch number to an octave." msgstr "" -#: js/ToneBlocks.js:1110 -msgid "Upload a sound file to connect with the sample block." +#: js/blocks/PitchBlocks.js:726 +msgid "y to pitch" msgstr "" -#: js/MeterBlocks.js:34 -#.TRANS: musical meter (time signature), e.g., 4:4 -msgid "current meter" +#: js/blocks/PitchBlocks.js:729 +msgid "Y to pitch block will convert a staff y position to corresponding pitch notation." msgstr "" -#: js/MeterBlocks.js:85 -#.TRANS: number of beats per minute -msgid "beat factor" +#: js/blocks/PitchBlocks.js:841 +msgid "accidental selector" msgstr "" -#: js/MeterBlocks.js:161 -msgid "The Beats per minute block returns the current beats per minute." +#: js/blocks/PitchBlocks.js:844 +msgid "The Accidental selector block is used to choose between double-sharp, sharp, natural, flat, and double-flat." msgstr "" -#: js/MeterBlocks.js:169 -#: js/status.js:152 -#.TRANS: number of beats played per minute -msgid "beats per minute2" +#: js/blocks/PitchBlocks.js:858 +msgid "Pitch can be specified in terms of ni dha pa ma ga re sa." msgstr "" -#: js/MeterBlocks.js:169 -#: js/MeterBlocks.js:1056 -#: js/MeterBlocks.js:1133 -#: js/MeterBlocks.js:1211 -#.TRANS: sets tempo by defining a beat and beats per minute -msgid "beats per minute" +#: js/blocks/PitchBlocks.js:872 +msgid "Pitch can be specified in terms of C D E F G A B." msgstr "" -#: js/MeterBlocks.js:233 -#.TRANS: count of current musical measure in meter -msgid "measure count" +#: js/blocks/PitchBlocks.js:884 +msgid "solfege" msgstr "" -#: js/MeterBlocks.js:241 -msgid "The Measure count block returns the current measure." +#: js/blocks/PitchBlocks.js:887 +msgid "Pitch can be specified in terms of do re mi fa sol la ti." msgstr "" -#: js/MeterBlocks.js:290 -#.TRANS: count of current beat in the meter -msgid "beat count" +#: js/blocks/PitchBlocks.js:922 +msgid "The Invert block rotates any contained notes around a target note." msgstr "" -#: js/MeterBlocks.js:300 -#: js/MeterBlocks.js:311 -#: js/MeterBlocks.js:565 -#: js/MeterBlocks.js:576 -msgid "The Beat count block is the number of the current beat," +#: js/blocks/PitchBlocks.js:929 +#.TRANS: pitch inversion rotates a pitch around another pitch +msgid "invert" msgstr "" -#: js/MeterBlocks.js:313 -#: js/MeterBlocks.js:578 -msgid "eg 1, 2, 3, or 4." +#: js/blocks/PitchBlocks.js:968 +#.TRANS: pitch inversion rotates a pitch around another pitch (odd number) +msgid "invert (odd)" msgstr "" -#: js/MeterBlocks.js:368 -#.TRANS: count the number of notes -msgid "sum note values" +#: js/blocks/PitchBlocks.js:1001 +#.TRANS: pitch inversion rotates a pitch around another pitch (even number) +msgid "invert (even)" msgstr "" -#: js/MeterBlocks.js:376 -#: js/MeterBlocks.js:440 -msgid "The Note counter block can be used to count the number of contained notes." +#: js/blocks/PitchBlocks.js:1022 +#.TRANS: register is the octave of the current pitch +msgid "register" msgstr "" -#: js/MeterBlocks.js:432 -#.TRANS: count the number of notes -msgid "note counter" +#: js/blocks/PitchBlocks.js:1026 +msgid "The Register block provides an easy way to modify the register (octave) of the notes that follow it." msgstr "" -#: js/MeterBlocks.js:496 -#.TRANS: number of whole notes that have been played -msgid "whole notes played" +#: js/blocks/PitchBlocks.js:1047 +#.TRANS: cents are units used to specify the ratio between pitches. There are 100 cents between successive notes. +msgid "50 cents" msgstr "" -#: js/MeterBlocks.js:505 -msgid "The Whole notes played block returns the total number of whole notes played." +#: js/blocks/PitchBlocks.js:1102 +msgid "The Semi-tone transposition block will shift the pitches contained inside Note blocks up (or down) by half steps." msgstr "" -#: js/MeterBlocks.js:555 -#: js/DictActions.js:83 -#.TRANS: number of notes that have been played -msgid "notes played" +#: js/blocks/PitchBlocks.js:1104 +msgid "In the example shown above, sol is shifted up to sol#." msgstr "" -#: js/MeterBlocks.js:653 -msgid "The No clock block decouples the notes from the master clock." +#: js/blocks/PitchBlocks.js:1110 +#.TRANS: adjust the amount of shift (up or down) of a pitch +msgid "semi-tone transpose" msgstr "" -#: js/MeterBlocks.js:661 -#.TRANS: don't lock notes to master clock -msgid "no clock" +#: js/blocks/PitchBlocks.js:1143 +msgid "The Transpose by Ratio block will shift the pitches contained inside Note blocks up (or down) by a ratio" msgstr "" -#: js/MeterBlocks.js:700 -msgid "on weak beat do" +#: js/blocks/PitchBlocks.js:1149 +#.TRANS: adjust the amount of shift (up or down) of a pitch +msgid "transpose by ratio" msgstr "" -#: js/MeterBlocks.js:705 -msgid "The On-weak-beat block lets you specify actions to take on weak (off) beats." +#: js/blocks/PitchBlocks.js:1232 +#.TRANS: down sixth means the note is five scale degrees below current note +msgid "down sixth" msgstr "" -#: js/MeterBlocks.js:750 -msgid "on strong beat" +#: js/blocks/PitchBlocks.js:1251 +#.TRANS: down third means the note is two scale degrees below current note +msgid "down third" msgstr "" -#: js/MeterBlocks.js:758 -msgid "The On-strong-beat block lets you specify actions to take on specified beats." +#: js/blocks/PitchBlocks.js:1270 +#.TRANS: seventh means the note is the six scale degrees above current note +msgid "seventh" msgstr "" -#: js/MeterBlocks.js:769 -msgid "beat" +#: js/blocks/PitchBlocks.js:1289 +#.TRANS: sixth means the note is the five scale degrees above current note +msgid "sixth" msgstr "" -#: js/MeterBlocks.js:813 -msgid "on every beat do" +#: js/blocks/PitchBlocks.js:1308 +#.TRANS: fifth means the note is the four scale degrees above current note +msgid "fifth" msgstr "" -#: js/MeterBlocks.js:821 -msgid "The On-every-beat block lets you specify actions to take on every beat." +#: js/blocks/PitchBlocks.js:1328 +#.TRANS: fourth means the note is three scale degrees above current note +msgid "fourth" msgstr "" -#: js/MeterBlocks.js:874 -msgid "on every note do" +#: js/blocks/PitchBlocks.js:1347 +#.TRANS: third means the note is two scale degrees above current note +msgid "third" msgstr "" -#: js/MeterBlocks.js:882 -msgid "The On-every-note block lets you specify actions to take on every note." +#: js/blocks/PitchBlocks.js:1366 +#.TRANS: second means the note is one scale degree above current note +msgid "second" msgstr "" -#: js/MeterBlocks.js:928 -#: js/MeterBlocks.js:999 -#.TRANS: sets tempo by defining a beat and beats per minute -msgid "master beats per minute" +#: js/blocks/PitchBlocks.js:1407 +msgid "The Scalar transposition block will shift the pitches contained inside Note blocks up (or down) the scale." msgstr "" -#: js/MeterBlocks.js:952 -#: js/MeterBlocks.js:1078 -#: js/MeterBlocks.js:1135 -msgid "bpm" +#: js/blocks/PitchBlocks.js:1409 +msgid "In the example shown above, sol is shifted up to la." msgstr "" -#: js/MeterBlocks.js:952 -#: js/MeterBlocks.js:1078 -#: js/MeterBlocks.js:1135 -msgid "beat value" +#: js/blocks/PitchBlocks.js:1416 +#.TRANS: adjust the amount of shift (up or down) of a pitch by musical scale (scalar) steps +msgid "scalar transpose" msgstr "" -#: js/MeterBlocks.js:1024 -#: js/MeterBlocks.js:1167 -#: js/MeterBlocks.js:1241 -msgid "Beats per minute must be > 30." +#: js/blocks/PitchBlocks.js:1451 +msgid "The Accidental block is used to create sharps and flats" msgstr "" -#: js/MeterBlocks.js:1027 -#: js/MeterBlocks.js:1170 -#: js/MeterBlocks.js:1244 -msgid "Maximum beats per minute is 1000." +#: js/blocks/PitchBlocks.js:1458 +#.TRANS: An accidental is a modification to a pitch, e.g., sharp or flat. +msgid "accidental override" msgstr "" -#: js/MeterBlocks.js:1068 -msgid "The Beats per minute block sets the number of 1/4 notes per minute." +#: js/blocks/PitchBlocks.js:1581 +msgid "The Hertz block (in combination with a Number block) will play a sound at the specified frequency." msgstr "" -#: js/MeterBlocks.js:1279 -#.TRANS: anacrusis -msgid "pickup" +#: js/blocks/PitchBlocks.js:1671 +msgid "The Pitch Number block will play a pitch associated by its number, e.g. 0 for C and 7 for G." msgstr "" -#: js/MeterBlocks.js:1367 -msgid "number of beats" +#: js/blocks/PitchBlocks.js:1703 +#: js/blocks/PitchBlocks.js:1745 +#.TRANS: a numeric mapping of the notes in an octave based on the musical mode +#.TRANS: a numeric mapping of the notes in an octave based on the musical mode +msgid "nth modal pitch" msgstr "" -#: js/DictBlocks.js:77 -msgid "show dictionary" +#: js/blocks/PitchBlocks.js:1706 +msgid "n^th Modal Pitch takes the pattern of pitches in semitones for a mode and makes each point a degree of the mode," msgstr "" -#: js/DictBlocks.js:129 -msgid "The Dictionary block returns a dictionary." +#: js/blocks/PitchBlocks.js:1708 +msgid "starting from 1 and regardless of tonal framework (i.e. not always 8 notes in the octave)" msgstr "" -#: js/DictBlocks.js:197 -#: js/DictBlocks.js:339 -msgid "The Get-dict block returns a value in the dictionary for a specified key." +#: js/blocks/PitchBlocks.js:1749 +msgid "N^th Modal Pitch takes a number as an input as the n^th degree for the given mode. 0 is the first position, 1 is the second, -1 is the note before the first etc." msgstr "" -#: js/DictBlocks.js:212 -#: js/DictBlocks.js:354 -#.TRANS: retrieve a value from the dictionary with a given key -msgid "get value" +#: js/blocks/PitchBlocks.js:1751 +msgid "The pitches change according to the mode specified without any need for respellings." msgstr "" -#: js/DictBlocks.js:215 -#: js/DictBlocks.js:216 -#: js/DictBlocks.js:289 -#: js/DictBlocks.js:290 -#: js/DictBlocks.js:357 -#: js/DictBlocks.js:430 -#: js/DictBlocks.js:431 -msgid "key2" +#: js/blocks/PitchBlocks.js:1790 +msgid "Scale Degree is a common convention in music. Scale Degree offers seven possible positions in the scale (1-7) and can be modified via accidentals." msgstr "" -#: js/DictBlocks.js:271 -#: js/DictBlocks.js:411 -msgid "The Set-dict block sets a value in the dictionary for a specified key." +#: js/blocks/PitchBlocks.js:1792 +msgid "Scale Degree 1 is always the first pitch in a given scale, regardless of octave." msgstr "" -#: js/DictBlocks.js:286 -#: js/DictBlocks.js:427 -#.TRANS: set a value in the dictionary for a given key -msgid "set value" +#: js/blocks/PitchBlocks.js:1814 +#.TRANS: step some number of notes in current musical scale +msgid "scalar step" msgstr "" -#: js/ExtrasBlocks.js:33 -msgid "fraction" +#: js/blocks/PitchBlocks.js:1819 +msgid "The Scalar Step block (in combination with a Number block) will play the next pitch in a scale," msgstr "" -#: js/ExtrasBlocks.js:36 -msgid "Convert a float to a fraction" +#: js/blocks/PitchBlocks.js:1821 +msgid "eg if the last note played was sol, Scalar Step 1 will play la." msgstr "" -#: js/ExtrasBlocks.js:93 -msgid "save as ABC" +#: js/blocks/PitchBlocks.js:1857 +msgid "The Pitch block specifies the pitch name and octave of a note that together determine the frequency of the note." msgstr "" -#: js/ExtrasBlocks.js:96 -#: js/ExtrasBlocks.js:132 -#: js/ExtrasBlocks.js:168 -msgid "title" +#: js/blocks/ProgramBlocks.js:33 +msgid "The Load-heap-from-app block loads the heap from a web page." msgstr "" -#: js/ExtrasBlocks.js:129 -msgid "save as Lilypond" +#: js/blocks/ProgramBlocks.js:44 +#.TRANS: load the heap contents from a URL +msgid "load heap from App" msgstr "" -#: js/ExtrasBlocks.js:165 -msgid "save as SVG" +#: js/blocks/ProgramBlocks.js:95 +msgid "Error parsing JSON data:" msgstr "" -#: js/ExtrasBlocks.js:216 -msgid "no background" +#: js/blocks/ProgramBlocks.js:100 +msgid "404: Page not found" msgstr "" -#: js/ExtrasBlocks.js:219 -msgid "The No background block eliminates the background from the saved SVG output." +#: js/blocks/ProgramBlocks.js:133 +msgid "The Save-heap-to-app block saves the heap to a web page." msgstr "" -#: js/ExtrasBlocks.js:247 -msgid "show blocks" +#: js/blocks/ProgramBlocks.js:144 +#.TRANS: save the heap contents to a URL +msgid "save heap to App" msgstr "" -#: js/ExtrasBlocks.js:249 -msgid "The Show blocks block shows the blocks." +#: js/blocks/ProgramBlocks.js:189 +msgid "Cannot find a valid heap for" msgstr "" -#: js/ExtrasBlocks.js:274 -msgid "hide blocks" +#: js/blocks/ProgramBlocks.js:206 +msgid "The Load-heap block loads the heap from a file." msgstr "" -#: js/ExtrasBlocks.js:276 -msgid "The Hide blocks block hides the blocks." +#: js/blocks/ProgramBlocks.js:217 +#.TRANS: load the heap from a file +msgid "load heap" msgstr "" -#: js/ExtrasBlocks.js:305 -#: js/ExtrasBlocks.js:335 -msgid "The Space block is used to add space between blocks." +#: js/blocks/ProgramBlocks.js:270 +msgid "The file you selected does not contain a valid heap." msgstr "" -#: js/ExtrasBlocks.js:373 -msgid "wait" -msgstr "bekle" - -#: js/ExtrasBlocks.js:376 -msgid "The Wait block pauses the program for a specified number of seconds." +#: js/blocks/ProgramBlocks.js:275 +msgid "The loadHeap block needs a loadFile block." msgstr "" -#: js/ExtrasBlocks.js:430 -#: plugins/facebook.rtp:30 -msgid "comment" +#: js/blocks/ProgramBlocks.js:291 +msgid "The Set-heap block loads the heap." msgstr "" -#: js/ExtrasBlocks.js:466 -msgid "print" -msgstr "yazdır" +#: js/blocks/ProgramBlocks.js:340 +msgid "The block you selected does not contain a valid heap." +msgstr "" -#: js/ExtrasBlocks.js:473 -msgid "The Print block displays text at the top of the screen." +#: js/blocks/ProgramBlocks.js:343 +msgid "The Set heap block needs a heap." msgstr "" -#: js/ExtrasBlocks.js:579 -msgid "display grid" +#: js/blocks/ProgramBlocks.js:360 +msgid "The Load-dictionary block loads a dictionary from a file." msgstr "" -#: js/ExtrasBlocks.js:584 -msgid "The Display Grid Block changes the grid type" +#: js/blocks/ProgramBlocks.js:372 +#.TRANS: load a dictionary from a file +msgid "load dictionary" msgstr "" -#: js/ExtrasBlocks.js:686 -#: js/ExtrasBlocks.js:705 -#: js/ExtrasBlocks.js:728 -#: js/ExtrasBlocks.js:751 -#: js/ExtrasBlocks.js:769 -#: js/ExtrasBlocks.js:788 -#: js/ExtrasBlocks.js:807 -#: js/ExtrasBlocks.js:826 -msgid "unknown" +#: js/blocks/ProgramBlocks.js:390 +#: js/blocks/ProgramBlocks.js:658 +#: js/blocks/ToneBlocks.js:1025 +msgid "file" msgstr "" -#: js/SensorsBlocks.js:36 -msgid "The Input block prompts for keyboard input." +#: js/blocks/ProgramBlocks.js:444 +msgid "The file you selected does not contain a valid dictionary." msgstr "" -#: js/SensorsBlocks.js:46 -msgid "input" +#: js/blocks/ProgramBlocks.js:449 +msgid "The load dictionary block needs a load file block." msgstr "" -#: js/SensorsBlocks.js:64 -msgid "Input a value" +#: js/blocks/ProgramBlocks.js:466 +msgid "The Set-dictionary block loads a dictionary." msgstr "" -#: js/SensorsBlocks.js:126 -msgid "input value" +#: js/blocks/ProgramBlocks.js:477 +#.TRANS: load a dictionary from a JSON +msgid "set dictionary" msgstr "" -#: js/SensorsBlocks.js:131 -msgid "The Input-value block stores the input." +#: js/blocks/ProgramBlocks.js:546 +msgid "The block you selected does not contain a valid dictionary." msgstr "" -#: js/SensorsBlocks.js:238 -msgid "loudness" +#: js/blocks/ProgramBlocks.js:550 +msgid "The set dictionary block needs a dictionary." msgstr "" -#: js/SensorsBlocks.js:245 -msgid "The Loudness block returns the volume detected by the microphone." +#: js/blocks/ProgramBlocks.js:567 +msgid "The Save-heap block saves the heap to a file." msgstr "" -#: js/SensorsBlocks.js:300 -msgid "click" +#: js/blocks/ProgramBlocks.js:578 +#.TRANS: save the heap to a file +msgid "save heap" msgstr "" -#: js/SensorsBlocks.js:306 -msgid "The Click block triggers an event if a mouse has been clicked." +#: js/blocks/ProgramBlocks.js:629 +msgid "The Save-dictionary block saves a dictionary to a file." msgstr "" -#: js/SensorsBlocks.js:313 -msgid "The Click block triggers an event if a turtle has been clicked." +#: js/blocks/ProgramBlocks.js:640 +#.TRANS: save a dictionary to a file +msgid "save dictionary" msgstr "" -#: js/SensorsBlocks.js:342 -msgid "cursor over" +#: js/blocks/ProgramBlocks.js:720 +msgid "The Open palette block opens a palette." msgstr "" -#: js/SensorsBlocks.js:387 -msgid "cursor out" +#: js/blocks/ProgramBlocks.js:727 +msgid "open palette" msgstr "" -#: js/SensorsBlocks.js:433 -msgid "cursor button down" +#: js/blocks/ProgramBlocks.js:785 +msgid "The Delete block block removes a block." msgstr "" -#: js/SensorsBlocks.js:477 -msgid "cursor button up" +#: js/blocks/ProgramBlocks.js:797 +#.TRANS: Move this block to the trash. +msgid "delete block" msgstr "" -#: js/SensorsBlocks.js:638 -msgid "The Get red block returns the red component of the pixel under the mouse." +#: js/blocks/ProgramBlocks.js:861 +msgid "The Move block block moves a block." msgstr "" -#: js/SensorsBlocks.js:644 -msgid "The Get red block returns the red component of the pixel under the turtle." +#: js/blocks/ProgramBlocks.js:869 +#.TRANS: Move the position of a block on the screen. +msgid "move block" msgstr "" -#: js/SensorsBlocks.js:685 -#: plugins/rodi.rtp:216 -msgid "pixel color" +#: js/blocks/ProgramBlocks.js:881 +#: js/blocks/ProgramBlocks.js:1048 +msgid "block number" msgstr "" -#: js/SensorsBlocks.js:690 -msgid "The Get pixel block returns the color of the pixel under the mouse." +#: js/blocks/ProgramBlocks.js:935 +#.TRANS: Run program beginning at this block. +msgid "run block" msgstr "" -#: js/SensorsBlocks.js:696 -msgid "The Get pixel block returns the color of the pixel under the turtle." +#: js/blocks/ProgramBlocks.js:1025 +msgid "The Dock block block connections two blocks." msgstr "" -#: js/SensorsBlocks.js:758 -msgid "time" +#: js/blocks/ProgramBlocks.js:1036 +#.TRANS: We can connect a block to another block. +msgid "connect blocks" msgstr "" -#: js/SensorsBlocks.js:804 -msgid "cursor y" +#: js/blocks/ProgramBlocks.js:1048 +msgid "target block" msgstr "" -#: js/SensorsBlocks.js:809 -msgid "The Cursor Y block returns the vertical position of the mouse." +#: js/blocks/ProgramBlocks.js:1048 +msgid "connection number" msgstr "" -#: js/SensorsBlocks.js:845 -msgid "cursor x" +#: js/blocks/ProgramBlocks.js:1140 +msgid "The Make block block creates a new block." msgstr "" -#: js/SensorsBlocks.js:850 -msgid "The Cursor X block returns the horizontal position of the mouse." +#: js/blocks/ProgramBlocks.js:1152 +#.TRANS: Create a new block +msgid "make block" msgstr "" -#: js/SensorsBlocks.js:886 -msgid "mouse button" +#: js/blocks/ProgramBlocks.js:1285 +msgid "Cannot find block" msgstr "" -#: js/SensorsBlocks.js:888 -msgid "The Mouse-button block returns True if the mouse button is pressed." +#: js/blocks/ProgramBlocks.js:1304 +#: js/blocks/ProgramBlocks.js:1313 +msgid "Warning: block argument type mismatch" msgstr "" -#: js/SensorsBlocks.js:934 -msgid "to ASCII" +#: js/blocks/ProgramBlocks.js:1347 +msgid "The Open project block is used to open a project from a web page." msgstr "" -#: js/SensorsBlocks.js:938 -msgid "The To ASCII block converts numbers to letters." +#: js/blocks/ProgramBlocks.js:1357 +msgid "open project" msgstr "" -#: js/SensorsBlocks.js:1005 -msgid "The Keyboard block returns computer keyboard input." +#: js/blocks/ProgramBlocks.js:1410 +msgid "Please enter a valid URL." msgstr "" -#: js/IntervalsActions.js:216 -msgid "Adding missing pitch number 0." +#: js/blocks/ToneBlocks.js:34 +msgid "oscillator" msgstr "" -#: js/IntervalsActions.js:224 -msgid "Ignoring pitch numbers less than zero or greater than eleven." +#: js/blocks/ToneBlocks.js:42 +#: js/blocks/WidgetBlocks.js:179 +#: js/widgets/timbre.js:1558 +#: js/widgets/timbre.js:1808 +#.TRANS: there are different types (sine, triangle, square...) of oscillators. +#.TRANS: type of filter, e.g., lowpass, highpass, etc. +msgid "type" msgstr "" -#: js/IntervalsActions.js:230 -msgid "Ignoring duplicate pitch numbers." +#: js/blocks/ToneBlocks.js:44 +#: js/widgets/timbre.js:1562 +#.TRANS: Partials refers to the number of sine waves combined into the sound. +msgid "partials" msgstr "" -#: js/PitchActions.js:88 -msgid "The Scalar Step Block must be used inside of a Note Block." +#: js/blocks/ToneBlocks.js:76 +msgid "You are adding multiple oscillator blocks." msgstr "" -#: js/PitchActions.js:107 -msgid "The Scalar Step Block must be preceded by a Pitch Block." +#: js/blocks/ToneBlocks.js:144 +#: js/widgets/timbre.js:1225 +#.TRANS: a duo synthesizer combines a synth with a sequencer +msgid "duo synth" msgstr "" -#: js/DrumActions.js:231 -msgid "Noise Block: Did you mean to use a Note block?" +#: js/blocks/ToneBlocks.js:149 +msgid "The Duo synth block is a duo-frequency modulator used to define a timbre." msgstr "" -#: js/MeterActions.js:101 -#: js/MeterActions.js:139 -msgid "beats per minute must be greater than" +#: js/blocks/ToneBlocks.js:157 +#: js/widgets/timbre.js:1476 +msgid "vibrato rate" msgstr "" -#: js/MeterActions.js:111 -#: js/MeterActions.js:149 -msgid "maximum" +#: js/blocks/ToneBlocks.js:157 +msgid "vibrato intensity" msgstr "" -#: js/MeterActions.js:117 -#: js/MeterActions.js:155 -msgid "beats per minute is" +#: js/blocks/ToneBlocks.js:185 +#: js/widgets/timbre.js:1221 +#.TRANS: AM (amplitude modulation) synthesizer +msgid "AM synth" msgstr "" -#: js/ToneActions.js:134 -msgid "Vibrato intensity must be between 1 and 100." +#: js/blocks/ToneBlocks.js:189 +msgid "The AM synth block is an amplitude modulator used to define a timbre." msgstr "" -#: js/ToneActions.js:139 -msgid "Vibrato rate must be greater than 0." +#: js/blocks/ToneBlocks.js:224 +#: js/widgets/timbre.js:1223 +#.TRANS: FM (frequency modulation) synthesizer +msgid "FM synth" msgstr "" -#: js/ToneActions.js:192 -#: js/ToneActions.js:265 -#.TRANS: Depth is the intesity of the tremolo or chorus effect. -msgid "Depth is out of range." +#: js/blocks/ToneBlocks.js:228 +msgid "The FM synth block is a frequency modulator used to define a timbre." msgstr "" -#: js/ToneActions.js:301 -msgid "Distortion must be from 0 to 100." +#: js/blocks/ToneBlocks.js:262 +msgid "partial" msgstr "" -#: js/ToneActions.js:332 -#.TRANS: partials components in a harmonic series -msgid "Partial must be greater than or equal to 0." +#: js/blocks/ToneBlocks.js:265 +msgid "The Partial block is used to specify a weight for a specific partial harmonic." msgstr "" -#: js/ToneActions.js:378 -#: js/ToneActions.js:417 -#: js/ToneActions.js:456 -#: js/timbre.js:782 -msgid "Unable to use synth due to existing oscillator" +#: js/blocks/ToneBlocks.js:284 +#.TRANS: partials are weighted components in a harmonic series +msgid "Partial weight must be between 0 and 1." msgstr "" -#: js/ToneActions.js:388 -#: js/ToneActions.js:427 -msgid "The input cannot be negative." +#: js/blocks/ToneBlocks.js:297 +#.TRANS: partials are weighted components in a harmonic series +msgid "Partial block should be used inside of a Weighted-partials block." msgstr "" -#: js/DictActions.js:75 -#: js/DictActions.js:153 -#: js/DictActions.js:188 -msgid "font" +#: js/blocks/ToneBlocks.js:325 +#.TRANS: partials are weighted components in a harmonic series +msgid "weighted partials" msgstr "" -#: js/musicutils.js:363 -#: js/musicutils.js:471 -#: js/pitchdrummatrix.js:151 -#: js/musickeyboard.js:2563 -msgid "rest" +#: js/blocks/ToneBlocks.js:383 +msgid "The Harmonic block will add harmonics to the contained notes." msgstr "" -#: js/musicutils.js:565 -#.TRANS: ordinal number. Please keep exactly one space between each number. -msgid "1st 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th" +#: js/blocks/ToneBlocks.js:390 +#.TRANS: A harmonic is an overtone. +msgid "harmonic" msgstr "" -#: js/musicutils.js:629 -#: js/musicutils.js:812 -#: js/musicutils.js:911 -#.TRANS: augmented is a music term related to intervals -msgid "augmented" +#: js/blocks/ToneBlocks.js:431 +msgid "The Distortion block adds distortion to the pitch." msgstr "" -#: js/musicutils.js:631 -#: js/musicutils.js:813 -#: js/musicutils.js:910 -#.TRANS: diminished is a music term related to intervals and mode -msgid "diminished" +#: js/blocks/ToneBlocks.js:438 +#: js/widgets/timbre.js:2100 +#.TRANS: distortion is an alteration in the sound +msgid "distortion" msgstr "" -#: js/musicutils.js:639 -#.TRANS: twelve semi-tone scale for music -msgid "chromatic" +#: js/blocks/ToneBlocks.js:487 +msgid "The Tremolo block adds a wavering effect." msgstr "" -#: js/musicutils.js:640 -msgid "algerian" +#: js/blocks/ToneBlocks.js:495 +#: js/widgets/timbre.js:2092 +#.TRANS: a wavering effect in a musical tone +msgid "tremolo" msgstr "" -#: js/musicutils.js:641 -msgid "spanish" +#: js/blocks/ToneBlocks.js:500 +#: js/blocks/ToneBlocks.js:569 +#: js/blocks/ToneBlocks.js:630 +#: js/blocks/ToneBlocks.js:689 +#: js/widgets/timbre.js:2134 +#: js/widgets/timbre.js:2222 +#: js/widgets/timbre.js:2317 +#: js/widgets/timbre.js:2419 +#.TRANS: rate at which tremolo wavers +msgid "rate" msgstr "" -#: js/musicutils.js:643 -#.TRANS: modal scale in music -msgid "octatonic" +#: js/blocks/ToneBlocks.js:502 +#: js/blocks/ToneBlocks.js:630 +#: js/widgets/timbre.js:2137 +#: js/widgets/timbre.js:2328 +#.TRANS: amplitude of tremolo waver +msgid "depth" msgstr "" -#: js/musicutils.js:645 -#.TRANS: harmonic major scale in music -msgid "harmonic major" +#: js/blocks/ToneBlocks.js:559 +msgid "The Phaser block adds a sweeping sound." msgstr "" -#: js/musicutils.js:647 -#.TRANS: natural minor scales in music -msgid "natural minor" +#: js/blocks/ToneBlocks.js:566 +#: js/widgets/timbre.js:2098 +#.TRANS: alter the phase of the sound +msgid "phaser" msgstr "" -#: js/musicutils.js:649 -#.TRANS: harmonic minor scale in music -msgid "harmonic minor" +#: js/blocks/ToneBlocks.js:569 +#: js/turtleactions/IntervalsActions.js:114 +#: js/widgets/timbre.js:2422 +msgid "octaves" msgstr "" -#: js/musicutils.js:651 -#.TRANS: melodic minor scale in music -msgid "melodic minor" +#: js/blocks/ToneBlocks.js:569 +#: js/widgets/timbre.js:2425 +msgid "base frequency" msgstr "" -#: js/musicutils.js:655 -#.TRANS: modal scale for music -msgid "dorian" +#: js/blocks/ToneBlocks.js:619 +msgid "The Chorus block adds a chorus effect." msgstr "" -#: js/musicutils.js:657 -#.TRANS: modal scale for music -msgid "phrygian" +#: js/blocks/ToneBlocks.js:627 +#: js/widgets/timbre.js:2096 +#.TRANS: musical effect to simulate a choral sound +msgid "chorus" msgstr "" -#: js/musicutils.js:659 -#.TRANS: modal scale for music -msgid "lydian" +#: js/blocks/ToneBlocks.js:630 +msgid "delay" msgstr "" -#: js/musicutils.js:661 -#.TRANS: modal scale for music -msgid "mixolydian" +#: js/blocks/ToneBlocks.js:678 +msgid "The Vibrato block adds a rapid, slight variation in pitch." msgstr "" -#: js/musicutils.js:665 -#.TRANS: modal scale for music -msgid "locrian" +#: js/blocks/ToneBlocks.js:686 +#: js/widgets/timbre.js:2094 +#.TRANS: a rapid, slight variation in pitch +msgid "vibrato" msgstr "" -#: js/musicutils.js:667 -#.TRANS: minor jazz scale for music -msgid "jazz minor" +#: js/blocks/ToneBlocks.js:689 +#: js/widgets/timbre.js:2221 +msgid "intensity" msgstr "" -#: js/musicutils.js:669 -#.TRANS: bebop scale for music -msgid "bebop" +#: js/blocks/ToneBlocks.js:733 +#.TRANS: select synthesizer +msgid "set synth" msgstr "" -#: js/musicutils.js:670 -msgid "arabic" +#: js/blocks/ToneBlocks.js:804 +msgid "synth name" msgstr "" -#: js/musicutils.js:671 -msgid "byzantine" +#: js/blocks/ToneBlocks.js:842 +msgid "set default instrument" msgstr "" -#: js/musicutils.js:673 -#.TRANS: musical scale for music by Verdi -msgid "enigmatic" +#: js/blocks/ToneBlocks.js:895 +#: js/blocks/ToneBlocks.js:943 +#.TRANS: set the characteristics of a custom instrument +msgid "set instrument" msgstr "" -#: js/musicutils.js:674 -msgid "ethiopian" +#: js/blocks/ToneBlocks.js:898 +#: js/blocks/ToneBlocks.js:926 +#: js/blocks/ToneBlocks.js:932 +msgid "The Set instrument block selects a voice for the synthesizer," msgstr "" -#: js/musicutils.js:676 -#.TRANS: Ethiopic scale for music -msgid "geez" +#: js/blocks/ToneBlocks.js:900 +#: js/blocks/ToneBlocks.js:934 +msgid "eg guitar piano violin or cello." msgstr "" -#: js/musicutils.js:677 -msgid "hindu" +#: js/blocks/ToneBlocks.js:1015 +msgid "Import a sound file to use as an instrument and set its pitch center." msgstr "" -#: js/musicutils.js:678 -msgid "hungarian" +#: js/blocks/ToneBlocks.js:1110 +msgid "Upload a sound file to connect with the sample block." msgstr "" -#: js/musicutils.js:680 -#.TRANS: minor Romanian scale for music -msgid "romanian minor" +#: js/blocks/VolumeBlocks.js:35 +msgid "synth volume" msgstr "" -#: js/musicutils.js:681 -msgid "spanish gypsy" +#: js/blocks/VolumeBlocks.js:39 +msgid "The Synth volume block returns the current volume of the current synthesizer." msgstr "" -#: js/musicutils.js:683 -#.TRANS: musical scale for Mid-Eastern music -msgid "maqam" +#: js/blocks/VolumeBlocks.js:105 +msgid "master volume" msgstr "" -#: js/musicutils.js:685 -#.TRANS: minor blues scale for music -msgid "minor blues" +#: js/blocks/VolumeBlocks.js:109 +msgid "The Master volume block returns the master volume." msgstr "" -#: js/musicutils.js:687 -#.TRANS: major blues scale for music -msgid "major blues" +#: js/blocks/VolumeBlocks.js:355 +#: js/blocks/VolumeBlocks.js:524 +msgid "set synth volume" msgstr "" -#: js/musicutils.js:688 -msgid "whole tone" +#: js/blocks/VolumeBlocks.js:362 +#: js/blocks/VolumeBlocks.js:545 +msgid "synth" msgstr "" -#: js/musicutils.js:690 -#.TRANS: pentatonic is a general term that means "five note scale". This scale is typically known as "minor pentatonic" -msgid "minor pentatonic" +#: js/blocks/VolumeBlocks.js:403 +#: js/blocks/VolumeBlocks.js:577 +#: js/blocks/VolumeBlocks.js:740 +#: js/turtleactions/VolumeActions.js:173 +msgid "Setting volume to 0." msgstr "" -#: js/musicutils.js:692 -#.TRANS: pentatonic is a general term that means "five note scale". This scale is typically known as "major pentatonic" -msgid "major pentatonic" +#: js/blocks/VolumeBlocks.js:440 +msgid "Synth not found" msgstr "" -#: js/musicutils.js:693 -msgid "chinese" +#: js/blocks/VolumeBlocks.js:494 +msgid "set drum volume" msgstr "" -#: js/musicutils.js:694 -msgid "egyptian" +#: js/blocks/VolumeBlocks.js:530 +msgid "The Set synth volume block will change the volume of a particular synth," msgstr "" -#: js/musicutils.js:696 -#.TRANS: https://en.wikipedia.org/wiki/Hirajoshi_scale NOTE: There are three different versions of this scale -msgid "hirajoshi" +#: js/blocks/VolumeBlocks.js:532 +msgid "eg guitar violin snare drum etc." msgstr "" -#: js/musicutils.js:697 -msgid "Japan" +#: js/blocks/VolumeBlocks.js:534 +msgid "The default volume is 50." msgstr "" -#: js/musicutils.js:699 -#.TRANS: https://en.wikipedia.org/wiki/In_scale and https://en.wikipedia.org/wiki/Sakura_Sakura -msgid "in" +#: js/blocks/VolumeBlocks.js:536 +msgid "The range is 0 for silence to 100 for full volume." msgstr "" -#: js/musicutils.js:701 -#.TRANS: https://en.wikipedia.org/wiki/Miny%C5%8D_scale -msgid "minyo" +#: js/blocks/VolumeBlocks.js:597 +msgid "set panning" msgstr "" -#: js/musicutils.js:703 -#.TRANS: Italian mathematician -msgid "fibonacci" +#: js/blocks/VolumeBlocks.js:603 +msgid "The Set Panning block sets the panning for all synthesizers." msgstr "" -#: js/musicutils.js:708 -#: js/musicutils.js:1106 -#.TRANS: lowpass filter -msgid "lowpass" +#: js/blocks/VolumeBlocks.js:625 +msgid "Warning: Sound is coming out from only the left or right side." msgstr "" -#: js/musicutils.js:710 -#: js/musicutils.js:1107 -#.TRANS: bandpass filter -msgid "bandpass" +#: js/blocks/VolumeBlocks.js:647 +#: js/blocks/VolumeBlocks.js:695 +msgid "set master volume" msgstr "" -#: js/musicutils.js:712 -#: js/musicutils.js:1108 -#.TRANS: high-shelf filter -msgid "highshelf" +#: js/blocks/VolumeBlocks.js:653 +msgid "The Set master volume block sets the volume for all synthesizers." msgstr "" -#: js/musicutils.js:714 -#: js/musicutils.js:1109 -#.TRANS: low-shelf filter -msgid "lowshelf" +#: js/blocks/VolumeBlocks.js:784 +msgid "The Set relative volume block changes the volume of the contained notes." msgstr "" -#: js/musicutils.js:716 -#: js/musicutils.js:1110 -#.TRANS: notch-shelf filter -msgid "notch" +#: js/blocks/VolumeBlocks.js:791 +msgid "set relative volume" msgstr "" -#: js/musicutils.js:718 -#: js/musicutils.js:1111 -#.TRANS: all-pass filter -msgid "allpass" +#: js/blocks/VolumeBlocks.js:857 +msgid "decrescendo" msgstr "" -#: js/musicutils.js:720 -#: js/musicutils.js:1112 -#.TRANS: peaking filter -msgid "peaking" +#: js/blocks/VolumeBlocks.js:921 +msgid "crescendo" msgstr "" -#: js/musicutils.js:731 -#: js/synthutils.js:58 -#.TRANS: musical instrument -msgid "violin" +#: js/blocks/WidgetBlocks.js:81 +#.TRANS: sound envelope (ADSR) +msgid "envelope" msgstr "" -#: js/musicutils.js:732 -#: js/synthutils.js:60 -#.TRANS: viola musical instrument -msgid "viola" +#: js/blocks/WidgetBlocks.js:89 +#.TRANS: Attack time is the time taken for initial run-up of level from nil to peak, beginning when the key is first pressed. +msgid "attack" msgstr "" -#: js/musicutils.js:733 -#: js/synthutils.js:98 -#.TRANS: xylophone musical instrument -msgid "xylophone" +#: js/blocks/WidgetBlocks.js:91 +#.TRANS: Decay time is the time taken for the subsequent run down from the attack level to the designated sustain level. +msgid "decay" msgstr "" -#: js/musicutils.js:734 -#: js/synthutils.js:120 -#.TRANS: vibraphone musical instrument -msgid "vibraphone" +#: js/blocks/WidgetBlocks.js:93 +#.TRANS: Sustain level is the level during the main sequence of the sound's duration, until the key is released. +msgid "sustain" msgstr "" -#: js/musicutils.js:735 -#: js/synthutils.js:62 -#.TRANS: musical instrument -msgid "cello" +#: js/blocks/WidgetBlocks.js:95 +#.TRANS: Release time is the time taken for the level to decay from the sustain level to zero after the key is released. +msgid "release" msgstr "" -#: js/musicutils.js:737 -#: js/synthutils.js:66 -#.TRANS: viola musical instrument -msgid "double bass" +#: js/blocks/WidgetBlocks.js:113 +msgid "Attack value should be from 0 to 100." msgstr "" -#: js/musicutils.js:738 -#: js/synthutils.js:68 -#: js/rhythmruler.js:2119 -#.TRANS: musical instrument -msgid "guitar" +#: js/blocks/WidgetBlocks.js:116 +msgid "Decay value should be from 0 to 100." msgstr "" -#: js/musicutils.js:739 -#: js/synthutils.js:70 -#.TRANS: musical instrument -msgid "acoustic guitar" +#: js/blocks/WidgetBlocks.js:119 +msgid "Sustain value should be from 0 to 100." msgstr "" -#: js/musicutils.js:740 -#: js/synthutils.js:72 -#.TRANS: musical instrument -msgid "flute" +#: js/blocks/WidgetBlocks.js:122 +msgid "Release value should be from 0-100." msgstr "" -#: js/musicutils.js:741 -#: js/synthutils.js:74 -#.TRANS: musical instrument -msgid "clarinet" +#: js/blocks/WidgetBlocks.js:140 +msgid "You are adding multiple envelope blocks." msgstr "" -#: js/musicutils.js:742 -#: js/synthutils.js:76 -#.TRANS: musical instrument -msgid "saxophone" +#: js/blocks/WidgetBlocks.js:171 +#.TRANS: a filter removes some unwanted components from a signal +msgid "filter" msgstr "" -#: js/musicutils.js:743 -#: js/synthutils.js:78 -#.TRANS: musical instrument -msgid "tuba" +#: js/blocks/WidgetBlocks.js:181 +#: js/widgets/timbre.js:1818 +#.TRANS: rolloff is the steepness of a change in frequency. +msgid "rolloff" msgstr "" -#: js/musicutils.js:744 -#: js/synthutils.js:80 -#.TRANS: musical instrument -msgid "trumpet" +#: js/blocks/WidgetBlocks.js:213 +#.TRANS: rolloff is the steepness of a change in frequency. +msgid "Rolloff value should be either -12, -24, -48, or -96 decibels/octave." msgstr "" -#: js/musicutils.js:745 -#: js/synthutils.js:82 -#.TRANS: musical instrument -msgid "oboe" +#: js/blocks/WidgetBlocks.js:252 +msgid "The Temperament tool is used to define custom tuning." msgstr "" -#: js/musicutils.js:746 -#: js/synthutils.js:84 -#.TRANS: musical instrument -msgid "trombone" +#: js/blocks/WidgetBlocks.js:332 +#: js/blocks/WidgetBlocks.js:1573 +#: js/widgets/sampler.js:547 +msgid "Upload a sample and adjust its pitch center." msgstr "" -#: js/musicutils.js:747 -#: js/synthutils.js:100 -#.TRANS: polytone synthesizer -msgid "electronic synth" +#: js/blocks/WidgetBlocks.js:339 +#.TRANS: the speed at music is should be played. +msgid "sampler" msgstr "" -#: js/musicutils.js:748 -#: js/synthutils.js:102 -#.TRANS: simple monotone synthesizer -msgid "simple 1" +#: js/blocks/WidgetBlocks.js:517 +msgid "The Meter block opens a tool to select strong beats for the meter." msgstr "" -#: js/musicutils.js:749 -msgid "simple 2" +#: js/blocks/WidgetBlocks.js:573 +msgid "The oscilloscope block opens a tool to visualize waveforms." msgstr "" -#: js/musicutils.js:750 -msgid "simple 3" +#: js/blocks/WidgetBlocks.js:578 +msgid "oscilloscope" msgstr "" -#: js/musicutils.js:751 -msgid "simple 4" +#: js/blocks/WidgetBlocks.js:645 +msgid "The Custom mode block opens a tool to explore musical mode (the spacing of the notes in a scale)." msgstr "" -#: js/musicutils.js:753 -#: js/synthutils.js:49 -#.TRANS: brown noise synthesizer -msgid "brown noise" +#: js/blocks/WidgetBlocks.js:651 +#.TRANS: musical mode is the pattern of half-steps in an octave, e.g., Major or Minor modes +msgid "custom mode" msgstr "" -#: js/musicutils.js:754 -#: js/synthutils.js:51 -#.TRANS: pink noise synthesizer -msgid "pink noise" +#: js/blocks/WidgetBlocks.js:700 +msgid "The Tempo block opens a metronome to visualize the beat." msgstr "" -#: js/musicutils.js:756 -#: js/synthutils.js:127 -#: js/rhythmruler.js:1670 -#: js/rhythmruler.js:1928 -#.TRANS: musical instrument -msgid "snare drum" +#: js/blocks/WidgetBlocks.js:762 +msgid "The Arpeggio Widget is used to compose chord sequences." msgstr "" -#: js/musicutils.js:757 -#: js/synthutils.js:129 -#.TRANS: musical instrument -msgid "kick drum" +#: js/blocks/WidgetBlocks.js:837 +msgid "The Pitch drum matrix is used to map pitches to drum sounds." msgstr "" -#: js/musicutils.js:758 -#: js/synthutils.js:131 -#.TRANS: musical instrument -msgid "tom tom" +#: js/blocks/WidgetBlocks.js:842 +#.TRANS: makes a mapping between pitches and drum sounds +msgid "pitch-drum mapper" msgstr "" -#: js/musicutils.js:759 -#: js/synthutils.js:133 -#.TRANS: musical instrument -msgid "floor tom" +#: js/blocks/WidgetBlocks.js:891 +msgid "You must have at least one pitch block and one drum block in the matrix." msgstr "" -#: js/musicutils.js:760 -#: js/synthutils.js:135 -#.TRANS: musical instrument -msgid "bass drum" +#: js/blocks/WidgetBlocks.js:920 +msgid "The Pitch slider tool to is used to generate pitches at selected frequencies." msgstr "" -#: js/musicutils.js:761 -#: js/synthutils.js:137 -#.TRANS: a drum made from an inverted cup -msgid "cup drum" +#: js/blocks/WidgetBlocks.js:925 +#.TRANS: widget to generate pitches using a slider +msgid "pitch slider" msgstr "" -#: js/musicutils.js:762 -#: js/synthutils.js:139 -#.TRANS: musical instrument -msgid "darbuka drum" +#: js/blocks/WidgetBlocks.js:977 +msgid "chromatic keyboard" msgstr "" -#: js/musicutils.js:763 -#: js/synthutils.js:143 -#.TRANS: musical instrument -msgid "hi hat" +#: js/blocks/WidgetBlocks.js:1011 +#: js/blocks/WidgetBlocks.js:1077 +#.TRANS: widget to generate pitches using a slider +msgid "music keyboard" msgstr "" -#: js/musicutils.js:764 -#: js/synthutils.js:145 -#.TRANS: a small metal bell -msgid "ride bell" +#: js/blocks/WidgetBlocks.js:1062 +#: js/blocks/WidgetBlocks.js:1069 +msgid "The Music keyboard block opens a piano keyboard that can be used to create notes." msgstr "" -#: js/musicutils.js:765 -#: js/synthutils.js:147 -#.TRANS: musical instrument -msgid "cow bell" +#: js/blocks/WidgetBlocks.js:1128 +msgid "The Pitch staircase tool to is used to generate pitches from a given ratio." msgstr "" -#: js/musicutils.js:766 -msgid "japanese drum" +#: js/blocks/WidgetBlocks.js:1135 +#.TRANS: generate a progressive sequence of pitches +msgid "pitch staircase" msgstr "" -#: js/musicutils.js:767 -#: js/synthutils.js:153 -#.TRANS: musical instrument -msgid "japanese bell" +#: js/blocks/WidgetBlocks.js:1222 +msgid "The Rhythm Maker block opens a tool to create drum machines." msgstr "" -#: js/musicutils.js:768 -#: js/synthutils.js:149 -#.TRANS: musical instrument -msgid "triangle bell" +#: js/blocks/WidgetBlocks.js:1291 +msgid "G major scale" msgstr "" -#: js/musicutils.js:769 -#: js/synthutils.js:151 -#.TRANS: musical instrument -msgid "finger cymbals" +#: js/blocks/WidgetBlocks.js:1326 +msgid "C major scale" msgstr "" -#: js/musicutils.js:770 -#: js/synthutils.js:155 -#.TRANS: a musically tuned set of bells -msgid "chime" +#: js/blocks/WidgetBlocks.js:1366 +msgid "The Phrase Maker block opens a tool to create musical phrases." msgstr "" -#: js/musicutils.js:771 -#: js/synthutils.js:157 -#.TRANS: a musical instrument -msgid "gong" +#: js/blocks/WidgetBlocks.js:1373 +#.TRANS: assigns pitch to a sequence of beats to generate a melody +msgid "phrase maker" msgstr "" -#: js/musicutils.js:772 -#: js/synthutils.js:159 -#.TRANS: sound effect -msgid "clang" +#: js/blocks/WidgetBlocks.js:1444 +msgid "You must have at least one pitch block and one rhythm block in the matrix." msgstr "" -#: js/musicutils.js:773 -#: js/synthutils.js:161 -#.TRANS: sound effect -msgid "crash" +#: js/blocks/WidgetBlocks.js:1503 +msgid "The Status block opens a tool for inspecting the status of Music Blocks as it is running." msgstr "" -#: js/musicutils.js:774 -#: js/synthutils.js:163 -#.TRANS: sound effect -msgid "bottle" +#: js/blocks/WidgetBlocks.js:1580 +#.TRANS: AI-generated music +msgid "aimusic" msgstr "" -#: js/musicutils.js:775 -#: js/synthutils.js:165 -#.TRANS: sound effect -msgid "clap" +#: js/turtleactions/MeterActions.js:101 +#: js/turtleactions/MeterActions.js:139 +msgid "beats per minute must be greater than" msgstr "" -#: js/musicutils.js:776 -#: js/synthutils.js:167 -#.TRANS: sound effect -msgid "slap" +#: js/turtleactions/MeterActions.js:111 +#: js/turtleactions/MeterActions.js:149 +msgid "maximum" msgstr "" -#: js/musicutils.js:777 -#: js/synthutils.js:169 -#.TRANS: sound effect -msgid "splash" +#: js/turtleactions/MeterActions.js:117 +#: js/turtleactions/MeterActions.js:155 +msgid "beats per minute is" msgstr "" -#: js/musicutils.js:778 -#: js/synthutils.js:171 -#.TRANS: sound effect -msgid "bubbles" +#: js/turtleactions/DictActions.js:75 +#: js/turtleactions/DictActions.js:142 +#: js/turtleactions/DictActions.js:172 +msgid "font" msgstr "" -#: js/musicutils.js:779 -#: js/synthutils.js:173 -#.TRANS: sound effect -msgid "raindrop" +#: js/turtleactions/DictActions.js:255 +msgid "Dictionary with this name does not exist" msgstr "" -#: js/musicutils.js:780 -#: js/synthutils.js:175 -#.TRANS: animal sound effect -msgid "cat" +#: js/turtleactions/DictActions.js:259 +msgid "Key with this name does not exist in " msgstr "" -#: js/musicutils.js:781 -#: js/synthutils.js:177 -#.TRANS: animal sound effect -msgid "cricket" +#: js/turtleactions/DrumActions.js:227 +msgid "Noise Block: Did you mean to use a Note block?" msgstr "" -#: js/musicutils.js:782 -#: js/synthutils.js:179 -#.TRANS: animal sound effect -msgid "dog" +#: js/turtleactions/IntervalsActions.js:113 +msgid "one" msgstr "" -#: js/musicutils.js:784 -#: js/synthutils.js:86 -#.TRANS: musical instrument -msgid "banjo" +#: js/turtleactions/IntervalsActions.js:113 +msgid "two" msgstr "" -#: js/musicutils.js:785 -#: js/synthutils.js:88 -#.TRANS: musical instrument -msgid "koto" +#: js/turtleactions/IntervalsActions.js:113 +msgid "three" msgstr "" -#: js/musicutils.js:786 -#: js/synthutils.js:90 -#.TRANS: musical instrument -msgid "dulcimer" +#: js/turtleactions/IntervalsActions.js:113 +msgid "four" msgstr "" -#: js/musicutils.js:787 -#: js/synthutils.js:92 -#.TRANS: musical instrument -msgid "electric guitar" +#: js/turtleactions/IntervalsActions.js:113 +msgid "five" msgstr "" -#: js/musicutils.js:788 -#: js/synthutils.js:94 -#.TRANS: musical instrument -msgid "bassoon" +#: js/turtleactions/IntervalsActions.js:113 +msgid "six" msgstr "" -#: js/musicutils.js:789 -#: js/synthutils.js:96 -#.TRANS: musical instrument -msgid "celeste" +#: js/turtleactions/IntervalsActions.js:113 +msgid "seven" msgstr "" -#: js/musicutils.js:791 -#: js/musicutils.js:1123 -#: js/musicutils.js:1131 -#: js/temperament.js:650 -#.TRANS: musical temperament -msgid "equal" +#: js/turtleactions/IntervalsActions.js:113 +msgid "eight" msgstr "" -#: js/musicutils.js:793 -#: js/musicutils.js:1125 -#: js/musicutils.js:1133 -#.TRANS: musical temperament -msgid "Pythagorean" +#: js/turtleactions/IntervalsActions.js:113 +msgid "nine" msgstr "" -#: js/musicutils.js:795 -#: js/musicutils.js:1124 -#: js/musicutils.js:1132 -#.TRANS: musical temperament -msgid "just intonation" +#: js/turtleactions/IntervalsActions.js:119 +msgid "a" msgstr "" -#: js/musicutils.js:797 -#: js/musicutils.js:1126 -#: js/musicutils.js:1127 -#: js/musicutils.js:1134 -#: js/musicutils.js:1135 -#.TRANS: musical temperament -msgid "meantone" +#: js/turtleactions/IntervalsActions.js:120 +msgid "below" msgstr "" -#: js/musicutils.js:814 -msgid "major 7th" +#: js/turtleactions/IntervalsActions.js:124 +msgid "above" msgstr "" -#: js/musicutils.js:815 -msgid "minor 7th" +#: js/turtleactions/IntervalsActions.js:131 +msgid "plus" msgstr "" -#: js/musicutils.js:816 -msgid "dominant 7th" +#: js/turtleactions/IntervalsActions.js:139 +msgid " below" msgstr "" -#: js/musicutils.js:817 -msgid "minor-major 7th" +#: js/turtleactions/IntervalsActions.js:257 +msgid "Adding missing pitch number 0." msgstr "" -#: js/musicutils.js:818 -msgid "fully-diminished 7th" +#: js/turtleactions/IntervalsActions.js:265 +msgid "Ignoring pitch numbers less than zero or greater than eleven." msgstr "" -#: js/musicutils.js:819 -msgid "half-diminished 7th" +#: js/turtleactions/IntervalsActions.js:271 +msgid "Ignoring duplicate pitch numbers." msgstr "" -#: js/musicutils.js:4379 -#: js/musicutils.js:4416 -msgid "current" +#: js/turtleactions/ToneActions.js:134 +msgid "Vibrato intensity must be between 1 and 100." msgstr "" -#: js/musicutils.js:4382 -#: js/musicutils.js:4407 -msgid "next" +#: js/turtleactions/ToneActions.js:139 +msgid "Vibrato rate must be greater than 0." msgstr "" -#: js/musicutils.js:4385 -#: js/musicutils.js:4412 -msgid "previous" +#: js/turtleactions/ToneActions.js:192 +#: js/turtleactions/ToneActions.js:265 +#.TRANS: Depth is the intesity of the tremolo or chorus effect. +msgid "Depth is out of range." msgstr "" -#: js/synthutils.js:104 -#.TRANS: simple monotone synthesizer -msgid "simple-2" +#: js/turtleactions/ToneActions.js:301 +msgid "Distortion must be from 0 to 100." msgstr "" -#: js/synthutils.js:106 -#.TRANS: simple monotone synthesizer -msgid "simple-3" +#: js/turtleactions/ToneActions.js:332 +#.TRANS: partials components in a harmonic series +msgid "Partial must be greater than or equal to 0." msgstr "" -#: js/synthutils.js:108 -#.TRANS: simple monotone synthesizer -msgid "simple-4" +#: js/turtleactions/ToneActions.js:378 +#: js/turtleactions/ToneActions.js:417 +#: js/turtleactions/ToneActions.js:456 +#: js/widgets/timbre.js:782 +msgid "Unable to use synth due to existing oscillator" msgstr "" -#: js/synthutils.js:141 -#.TRANS: musical instrument -msgid "taiko" +#: js/turtleactions/ToneActions.js:388 +#: js/turtleactions/ToneActions.js:427 +msgid "The input cannot be negative." msgstr "" -#: js/modewidget.js:86 -#: js/modewidget.js:88 -#: js/modewidget.js:642 -#: js/modewidget.js:644 -#: js/modewidget.js:712 -#: js/modewidget.js:714 -#: js/temperament.js:2078 -#: js/rhythmruler.js:189 -#: js/rhythmruler.js:1410 -#: js/rhythmruler.js:1412 -#: js/rhythmruler.js:1435 -#: js/rhythmruler.js:1437 -#: js/meterwidget.js:89 -#: js/meterwidget.js:91 +#: js/widgets/modewidget.js:86 +#: js/widgets/modewidget.js:88 +#: js/widgets/modewidget.js:642 +#: js/widgets/modewidget.js:644 +#: js/widgets/modewidget.js:712 +#: js/widgets/modewidget.js:714 +#: js/widgets/meterwidget.js:194 +#: js/widgets/meterwidget.js:196 +#: js/widgets/temperament.js:2236 +#: js/widgets/rhythmruler.js:457 +#: js/widgets/rhythmruler.js:1790 +#: js/widgets/rhythmruler.js:1792 +#: js/widgets/rhythmruler.js:1816 +#: js/widgets/rhythmruler.js:1818 msgid "Play all" msgstr "" -#: js/modewidget.js:115 -#: js/pitchstaircase.js:641 -#: js/phrasemaker.js:339 -#: js/pitchdrummatrix.js:94 -#: js/pitchslider.js:125 -#: js/temperament.js:2083 -#: js/musickeyboard.js:530 -#: js/timbre.js:756 -#: js/meterwidget.js:124 -#: js/arpeggio.js:103 +#: js/widgets/modewidget.js:115 +#: js/widgets/meterwidget.js:229 +#: js/widgets/pitchdrummatrix.js:166 +#: js/widgets/pitchslider.js:125 +#: js/widgets/pitchstaircase.js:641 +#: js/widgets/temperament.js:2244 +#: js/widgets/timbre.js:756 +#: js/widgets/arpeggio.js:103 +#: js/widgets/musickeyboard.js:688 +#: js/widgets/phrasemaker.js:550 msgid "Save" msgstr "" -#: js/modewidget.js:121 -#: js/pitchstaircase.js:686 -#: js/phrasemaker.js:356 -#: js/pitchdrummatrix.js:109 -#: js/musickeyboard.js:534 -#: js/rhythmruler.js:269 -#: js/arpeggio.js:118 +#: js/widgets/modewidget.js:121 +#: js/widgets/pitchdrummatrix.js:181 +#: js/widgets/pitchstaircase.js:686 +#: js/widgets/arpeggio.js:118 +#: js/widgets/musickeyboard.js:696 +#: js/widgets/phrasemaker.js:567 +#: js/widgets/rhythmruler.js:601 #.TRANS: clear all subdivisions from the ruler. msgid "Clear" msgstr "" -#: js/modewidget.js:127 +#: js/widgets/modewidget.js:127 msgid "Rotate counter clockwise" msgstr "" -#: js/modewidget.js:133 +#: js/widgets/modewidget.js:133 msgid "Rotate clockwise" msgstr "" -#: js/modewidget.js:139 +#: js/widgets/modewidget.js:139 msgid "Invert" msgstr "" -#: js/modewidget.js:145 -#: js/pitchstaircase.js:678 -#: js/rhythmruler.js:258 -#: js/timbre.js:963 +#: js/widgets/modewidget.js:145 +#: js/widgets/pitchstaircase.js:678 +#: js/widgets/timbre.js:963 +#: js/widgets/rhythmruler.js:578 msgid "Undo" msgstr "" -#: js/modewidget.js:163 +#: js/widgets/modewidget.js:163 #.TRANS: A circle of notes represents the musical mode. msgid "Click in the circle to select notes for the mode." msgstr "" -#: js/modewidget.js:1017 -#: js/pitchstaircase.js:580 -#: js/phrasemaker.js:4855 -#: js/temperament.js:1754 -#: js/rhythmruler.js:1865 -#: js/rhythmruler.js:2081 -#: js/tempo.js:414 +#: js/widgets/modewidget.js:1017 +#: js/widgets/pitchstaircase.js:580 +#: js/widgets/temperament.js:1929 +#: js/widgets/tempo.js:414 +#: js/widgets/phrasemaker.js:5356 +#: js/widgets/rhythmruler.js:2254 +#: js/widgets/rhythmruler.js:2472 msgid "New action block generated!" msgstr "" -#: js/oscilloscope.js:79 -msgid "Zoom In" -msgstr "" - -#: js/oscilloscope.js:88 -msgid "Zoom Out" -msgstr "" - -#: js/pitchstaircase.js:624 -msgid "Play chord" -msgstr "" - -#: js/pitchstaircase.js:632 -msgid "Play scale" +#: js/widgets/meterwidget.js:275 +msgid "Reset" msgstr "" -#: js/pitchstaircase.js:696 -msgid "Click on a note to create a new step." +#: js/widgets/meterwidget.js:301 +msgid "Click in the circle to select strong beats for the meter." msgstr "" -#: js/phrasemaker.js:363 -msgid "Export" +#: js/widgets/oscilloscope.js:79 +msgid "Zoom In" msgstr "" -#: js/phrasemaker.js:370 -msgid "Sort" +#: js/widgets/oscilloscope.js:88 +msgid "Zoom Out" msgstr "" -#: js/phrasemaker.js:373 -#: js/musickeyboard.js:559 -msgid "Add note" +#: js/widgets/pitchdrummatrix.js:356 +#: js/widgets/pitchdrummatrix.js:752 +msgid "Click in the grid to map notes to drums." msgstr "" -#: js/phrasemaker.js:764 -msgid "Click on the table to add notes." +#: js/widgets/pitchslider.js:103 +msgid "Move up" msgstr "" -#: js/phrasemaker.js:2414 -#: js/phrasemaker.js:2543 -msgid "tuplet value" +#: js/widgets/pitchslider.js:114 +msgid "Move down" msgstr "" -#: js/pitchdrummatrix.js:270 -#: js/pitchdrummatrix.js:639 -msgid "Click in the grid to map notes to drums." +#: js/widgets/pitchslider.js:136 +msgid "Click on the slider to create a note block." msgstr "" -#: js/pitchslider.js:103 -msgid "Move up" +#: js/widgets/pitchstaircase.js:624 +msgid "Play chord" msgstr "" -#: js/pitchslider.js:114 -msgid "Move down" +#: js/widgets/pitchstaircase.js:632 +msgid "Play scale" msgstr "" -#: js/pitchslider.js:136 -msgid "Click on the slider to create a note block." +#: js/widgets/pitchstaircase.js:696 +msgid "Click on a note to create a new step." msgstr "" -#: js/temperament.js:215 +#: js/widgets/temperament.js:321 msgid "back to 2:1 octave space" msgstr "" -#: js/temperament.js:323 +#: js/widgets/temperament.js:447 msgid "edit" msgstr "" -#: js/temperament.js:330 -#: js/temperament.js:332 -#: js/temperament.js:1336 -#: js/temperament.js:1338 +#: js/widgets/temperament.js:454 +#: js/widgets/temperament.js:456 +#: js/widgets/temperament.js:1493 +#: js/widgets/temperament.js:1495 msgid "close" msgstr "" -#: js/temperament.js:423 -#: js/temperament.js:736 -#: js/temperament.js:743 -#: js/temperament.js:845 -#: js/temperament.js:935 -#: js/temperament.js:942 -#: js/temperament.js:1015 -#: js/temperament.js:1284 -#: js/temperament.js:1354 -#: js/temperament.js:1430 +#: js/widgets/temperament.js:552 +#: js/widgets/temperament.js:877 +#: js/widgets/temperament.js:884 +#: js/widgets/temperament.js:986 +#: js/widgets/temperament.js:1080 +#: js/widgets/temperament.js:1087 +#: js/widgets/temperament.js:1160 +#: js/widgets/temperament.js:1433 +#: js/widgets/temperament.js:1511 +#: js/widgets/temperament.js:1596 msgid "done" msgstr "" -#: js/temperament.js:477 -#: js/temperament.js:482 -#: js/temperament.js:918 +#: js/widgets/temperament.js:610 +#: js/widgets/temperament.js:615 +#: js/widgets/temperament.js:1063 msgid "ratio" msgstr "" -#: js/temperament.js:483 +#: js/widgets/temperament.js:616 msgid "interval" msgstr "" -#: js/temperament.js:611 +#: js/widgets/temperament.js:744 msgid "non scalar" msgstr "" -#: js/temperament.js:650 +#: js/widgets/temperament.js:787 msgid "ratios" msgstr "" -#: js/temperament.js:650 +#: js/widgets/temperament.js:787 msgid "arbitrary" msgstr "" -#: js/temperament.js:719 +#: js/widgets/temperament.js:860 msgid "number of divisions" msgstr "" -#: js/temperament.js:741 -#: js/temperament.js:858 -#: js/temperament.js:940 -#: js/temperament.js:1033 +#: js/widgets/temperament.js:882 +#: js/widgets/temperament.js:999 +#: js/widgets/temperament.js:1085 +#: js/widgets/temperament.js:1178 msgid "preview" msgstr "" -#: js/temperament.js:788 +#: js/widgets/temperament.js:929 msgid "The Number of divisions is too large." msgstr "" -#: js/temperament.js:921 +#: js/widgets/temperament.js:1066 msgid "recursion" msgstr "" -#: js/temperament.js:1450 +#: js/widgets/temperament.js:1616 msgid "The octave ratio has changed. This changes temperament significantly." msgstr "" -#: js/temperament.js:2087 +#: js/widgets/temperament.js:2248 msgid "Table" msgstr "" -#: js/temperament.js:2185 +#: js/widgets/temperament.js:2356 msgid "Add pitches" msgstr "" -#: js/musickeyboard.js:570 -msgid "Metronome" +#: js/widgets/tempo.js:78 +#: js/widgets/tempo.js:97 +#: js/widgets/tempo.js:99 +#: js/widgets/aiwidget.js:134 +#: js/widgets/aiwidget.js:136 +#: js/widgets/rhythmruler.js:681 +#: js/widgets/rhythmruler.js:683 +#: js/widgets/rhythmruler.js:1864 +#: js/widgets/rhythmruler.js:1866 +#: js/widgets/sampler.js:180 +#: js/widgets/sampler.js:182 +msgid "Pause" msgstr "" -#: js/musickeyboard.js:1296 -#: plugins/rodi.rtp:193 -msgid "duration" +#: js/widgets/tempo.js:113 +msgid "Save tempo" msgstr "" -#: js/musickeyboard.js:2840 -msgid "New action blocks generated!" +#: js/widgets/tempo.js:144 +msgid "speed up" msgstr "" -#: js/musickeyboard.js:2841 -msgid "New action block generated" +#: js/widgets/tempo.js:150 +msgid "slow down" msgstr "" -#: js/musickeyboard.js:2984 -#: js/musickeyboard.js:2992 -msgid "MIDI device present." +#: js/widgets/tempo.js:194 +msgid "Adjust the tempo with the buttons." msgstr "" -#: js/musickeyboard.js:2995 -msgid "No MIDI device found." +#: js/widgets/tempo.js:261 +msgid "Please enter a number between 30 and 1000" msgstr "" -#: js/musickeyboard.js:3000 -msgid "Failed to get MIDI access in browser." +#: js/widgets/tempo.js:268 +#: js/widgets/tempo.js:271 +msgid "The beats per minute must be between 30 and 1000." msgstr "" -#: js/rhythmruler.js:202 -msgid "Save rhythms" +#: js/widgets/tempo.js:287 +msgid "The beats per minute must be below 1000." msgstr "" -#: js/rhythmruler.js:222 -msgid "Save drum machine" +#: js/widgets/tempo.js:303 +msgid "The beats per minute must be above 30" msgstr "" -#: js/rhythmruler.js:263 -#.TRANS: user can tap out a rhythm by clicking on a ruler. -msgid "Tap a rhythm" +#: js/widgets/timbre.js:766 +msgid "Synthesizer" msgstr "" -#: js/rhythmruler.js:342 -#: js/rhythmruler.js:344 -#: js/rhythmruler.js:1481 -#: js/rhythmruler.js:1483 -#: js/sampler.js:110 -#: js/sampler.js:112 -#: js/tempo.js:78 -#: js/tempo.js:97 -#: js/tempo.js:99 -msgid "Pause" +#: js/widgets/timbre.js:789 +msgid "Oscillator" msgstr "" -#: js/rhythmruler.js:478 -msgid "Click on the ruler to divide it." +#: js/widgets/timbre.js:840 +msgid "Envelope" msgstr "" -#: js/rhythmruler.js:603 -#: js/rhythmruler.js:605 -#: js/rhythmruler.js:804 -#: js/rhythmruler.js:806 -#: js/rhythmruler.js:1386 -#: js/rhythmruler.js:1388 -msgid "tap a rhythm" +#: js/widgets/timbre.js:886 +#: planet/js/GlobalTag.js:50 +#.TRANS: On the Planet, we use labels to tag projects. +msgid "Effects" msgstr "" -#: js/rhythmruler.js:1084 -msgid "Maximum value of 256 has been exceeded." +#: js/widgets/timbre.js:904 +msgid "Filter" msgstr "" -#: js/sampler.js:137 -msgid "Warning: Sample is bigger than 1MB." +#: js/widgets/timbre.js:946 +msgid "Add filter" msgstr "" -#: js/sampler.js:142 -msgid "Upload failed: Sample is not a .wav file." +#: js/widgets/timbre.js:987 +msgid "Click on buttons to open the timbre design tools." msgstr "" -#: js/sampler.js:164 -msgid "A new sample block was generated." +#: js/widgets/timbre.js:1273 +msgid "harmonicity" msgstr "" -#: js/sampler.js:255 -msgid "Upload sample" +#: js/widgets/timbre.js:1340 +#: js/widgets/timbre.js:1406 +msgid "modulation index" msgstr "" -#: js/sampler.js:306 -msgid "Save sample" +#: js/widgets/timbre.js:1484 +msgid "vibrato amount" msgstr "" -#: js/sampler.js:697 -#.TRANS: The reference tone is a sound used for comparison. -msgid "reference tone" +#: js/widgets/timbre.js:1919 +msgid "Filter already present." msgstr "" -#: js/tempo.js:113 -msgid "Save tempo" +#: js/widgets/timbre.js:2322 +msgid "delay (MS)" msgstr "" -#: js/tempo.js:144 -msgid "speed up" +#: js/widgets/timbre.js:2507 +msgid "distortion amount" msgstr "" -#: js/tempo.js:150 -msgid "slow down" +#: js/widgets/aiwidget.js:180 +#: js/widgets/sampler.js:227 +msgid "Warning: Sample is bigger than 1MB." msgstr "" -#: js/tempo.js:194 -msgid "Adjust the tempo with the buttons." +#: js/widgets/aiwidget.js:539 +msgid "New start block generated" msgstr "" -#: js/tempo.js:261 -msgid "Please enter a number between 30 and 1000" +#: js/widgets/aiwidget.js:541 +msgid "MIDI loading. This may take some time depending upon the number of notes in the track" msgstr "" -#: js/tempo.js:268 -#: js/tempo.js:271 -msgid "The beats per minute must be between 30 and 1000." +#: js/widgets/aiwidget.js:551 +#: js/widgets/sampler.js:254 +msgid "Upload failed: Sample is not a .wav file." msgstr "" -#: js/tempo.js:287 -msgid "The beats per minute must be below 1000." +#: js/widgets/aiwidget.js:679 +#: js/widgets/sampler.js:432 +msgid "Save sample" msgstr "" -#: js/tempo.js:303 -msgid "The beats per minute must be above 30" +#: js/widgets/aiwidget.js:701 +msgid "AI Music" msgstr "" -#: js/timbre.js:766 -msgid "Synthesizer" +#: js/widgets/arpeggio.js:239 +msgid "Click in the grid to add steps to the arpeggio." msgstr "" -#: js/timbre.js:789 -msgid "Oscillator" +#: js/widgets/help.js:95 +#: js/widgets/help.js:125 +#: js/widgets/help.js:146 +#: js/widgets/help.js:158 +#: js/widgets/help.js:376 +#: js/widgets/help.js:391 +msgid "Take a tour" msgstr "" -#: js/timbre.js:840 -msgid "Envelope" +#: js/widgets/musickeyboard.js:725 +#: js/widgets/phrasemaker.js:584 +msgid "Add note" msgstr "" -#: js/timbre.js:886 -#: js/GlobalTag.js:50 -#.TRANS: On the Planet, we use labels to tag projects. -msgid "Effects" +#: js/widgets/musickeyboard.js:744 +msgid "Metronome" +msgstr "" + +#: js/widgets/musickeyboard.js:1549 +#: plugins/rodi.rtp:193 +msgid "duration" +msgstr "" + +#: js/widgets/musickeyboard.js:3179 +msgid "New action blocks generated" +msgstr "" + +#: js/widgets/musickeyboard.js:3180 +msgid "New action block generated" msgstr "" -#: js/timbre.js:904 -msgid "Filter" +#: js/widgets/musickeyboard.js:3365 +#: js/widgets/musickeyboard.js:3373 +msgid "MIDI device present." msgstr "" -#: js/timbre.js:946 -msgid "Add filter" +#: js/widgets/musickeyboard.js:3376 +msgid "No MIDI device found." msgstr "" -#: js/timbre.js:987 -msgid "Click on buttons to open the timbre design tools." +#: js/widgets/musickeyboard.js:3386 +msgid "Failed to get MIDI access in browser." msgstr "" -#: js/timbre.js:1273 -msgid "harmonicity" +#: js/widgets/phrasemaker.js:574 +msgid "Export" msgstr "" -#: js/timbre.js:1340 -#: js/timbre.js:1406 -msgid "modulation index" +#: js/widgets/phrasemaker.js:581 +msgid "Sort" msgstr "" -#: js/timbre.js:1484 -msgid "vibrato amount" +#: js/widgets/phrasemaker.js:975 +msgid "Click on the table to add notes." msgstr "" -#: js/timbre.js:1919 -msgid "Filter already present." +#: js/widgets/phrasemaker.js:2677 +#: js/widgets/phrasemaker.js:2819 +msgid "tuplet value" msgstr "" -#: js/timbre.js:2322 -msgid "delay (MS)" +#: js/widgets/rhythmruler.js:486 +msgid "Save rhythms" msgstr "" -#: js/timbre.js:2507 -msgid "distortion amount" +#: js/widgets/rhythmruler.js:512 +msgid "Save drum machine" msgstr "" -#: js/meterwidget.js:170 -msgid "Reset" +#: js/widgets/rhythmruler.js:589 +#.TRANS: user can tap out a rhythm by clicking on a ruler. +msgid "Tap a rhythm" msgstr "" -#: js/meterwidget.js:196 -msgid "Click in the circle to select strong beats for the meter." +#: js/widgets/rhythmruler.js:817 +msgid "Click on the ruler to divide it." msgstr "" -#: js/arpeggio.js:239 -msgid "Click in the grid to add steps to the arpeggio." +#: js/widgets/rhythmruler.js:950 +#: js/widgets/rhythmruler.js:952 +#: js/widgets/rhythmruler.js:1152 +#: js/widgets/rhythmruler.js:1154 +#: js/widgets/rhythmruler.js:1765 +#: js/widgets/rhythmruler.js:1767 +msgid "tap a rhythm" msgstr "" -#: js/ProjectStorage.js:243 -msgid "anonymous" +#: js/widgets/rhythmruler.js:1459 +msgid "Maximum value of 256 has been exceeded." msgstr "" -#: js/GlobalCard.js:68 -msgid "Share" +#: js/widgets/sampler.js:237 +msgid "Recording started..." msgstr "" -#: js/GlobalCard.js:74 -msgid "Flags" +#: js/widgets/sampler.js:245 +msgid "Recording complete..." msgstr "" -#: js/LocalCard.js:36 -msgid "View published project" +#: js/widgets/sampler.js:283 +msgid "A new sample block was generated." msgstr "" -#: js/LocalCard.js:42 -msgid "Publish project" +#: js/widgets/sampler.js:378 +msgid "Upload sample" msgstr "" -#: js/LocalCard.js:51 -msgid "Edit project" +#: js/widgets/sampler.js:399 +msgid "Warning: Your sample cannot be loaded because it is >1MB." msgstr "" -#: js/LocalCard.js:52 -msgid "Delete project" +#: js/widgets/sampler.js:448 +msgid "Toggle Mic" msgstr "" -#: js/LocalCard.js:53 -msgid "Download project" +#: js/widgets/sampler.js:458 +msgid "Playback" msgstr "" -#: js/LocalCard.js:55 -msgid "Duplicate project" +#: js/widgets/sampler.js:979 +#.TRANS: The reference tone is a sound used for comparison. +msgid "reference tone" msgstr "" -#: js/GlobalTag.js:28 +#: planet/js/GlobalTag.js:28 #.TRANS: On the Planet, we use labels to tag projects. msgid "All Projects" msgstr "" -#: js/GlobalTag.js:30 -#: js/StringHelper.js:37 +#: planet/js/GlobalTag.js:30 +#: planet/js/StringHelper.js:37 #.TRANS: On the Planet, we use labels to tag projects. msgid "My Projects" msgstr "" -#: js/GlobalTag.js:32 +#: planet/js/GlobalTag.js:32 #.TRANS: On the Planet, we use labels to tag projects. msgid "Examples" msgstr "" -#: js/GlobalTag.js:34 +#: planet/js/GlobalTag.js:34 #.TRANS: On the Planet, we use labels to tag projects. msgid "Music" msgstr "" -#: js/GlobalTag.js:36 +#: planet/js/GlobalTag.js:36 #.TRANS: On the Planet, we use labels to tag projects. msgid "Art" msgstr "" -#: js/GlobalTag.js:38 +#: planet/js/GlobalTag.js:38 #.TRANS: On the Planet, we use labels to tag projects. msgid "Math" msgstr "" -#: js/GlobalTag.js:40 +#: planet/js/GlobalTag.js:40 #.TRANS: On the Planet, we use labels to tag projects. msgid "Interactive" msgstr "" -#: js/GlobalTag.js:42 +#: planet/js/GlobalTag.js:42 #.TRANS: On the Planet, we use labels to tag projects. msgid "Design" msgstr "" -#: js/GlobalTag.js:44 +#: planet/js/GlobalTag.js:44 #.TRANS: On the Planet, we use labels to tag projects. msgid "Game" msgstr "" -#: js/GlobalTag.js:46 +#: planet/js/GlobalTag.js:46 #.TRANS: On the Planet, we use labels to tag projects. msgid "Media" msgstr "" -#: js/GlobalTag.js:48 +#: planet/js/GlobalTag.js:48 #.TRANS: On the Planet, we use labels to tag projects. msgid "Sensors" msgstr "" -#: js/GlobalTag.js:52 +#: planet/js/GlobalTag.js:52 #.TRANS: On the Planet, we use labels to tag projects. msgid "Code Snippet" msgstr "" -#: js/helper.js:149 -#: js/StringHelper.js:49 -msgid "Show more tags" +#: planet/js/LocalCard.js:36 +msgid "View published project" msgstr "" -#: js/helper.js:150 -msgid "Show fewer tags" +#: planet/js/LocalCard.js:42 +msgid "Publish project" +msgstr "" + +#: planet/js/LocalCard.js:51 +msgid "Edit project" +msgstr "" + +#: planet/js/LocalCard.js:52 +msgid "Delete project" +msgstr "" + +#: planet/js/LocalCard.js:53 +msgid "Download project" +msgstr "" + +#: planet/js/LocalCard.js:55 +msgid "Duplicate project" +msgstr "" + +#: planet/js/ProjectStorage.js:243 +msgid "anonymous" +msgstr "" + +#: planet/js/SaveInterface.js:34 +msgid "Open in Music Blocks" +msgstr "" + +#: planet/js/SaveInterface.js:35 +msgid "Open in Turtle Blocks" +msgstr "" + +#: planet/js/GlobalCard.js:68 +msgid "Share" +msgstr "" + +#: planet/js/GlobalCard.js:74 +msgid "Flags" +msgstr "" + +#: planet/js/GlobalPlanet.js:35 +msgid "No results found." +msgstr "" + +#: planet/js/GlobalPlanet.js:51 +msgid "Remix of" +msgstr "" + +#: planet/js/GlobalPlanet.js:509 +msgid "Cannot connect to server" msgstr "" -#: js/ProjectViewer.js:30 +#: planet/js/ProjectViewer.js:30 msgid "Error: Report could not be submitted. Try again later." msgstr "" -#: js/ProjectViewer.js:31 +#: planet/js/ProjectViewer.js:31 msgid "Thank you for reporting this project. A moderator will review the project shortly, to verify violation of the Sugar Labs Code of Conduct." msgstr "" -#: js/ProjectViewer.js:32 -#: js/StringHelper.js:62 -#: js/StringHelper.js:64 -#: js/StringHelper.js:68 +#: planet/js/ProjectViewer.js:32 +#: planet/js/StringHelper.js:62 +#: planet/js/StringHelper.js:64 +#: planet/js/StringHelper.js:68 msgid "Report Project" msgstr "" -#: js/ProjectViewer.js:33 -#: js/StringHelper.js:63 +#: planet/js/ProjectViewer.js:33 +#: planet/js/StringHelper.js:63 msgid "Project Reported" msgstr "" -#: js/ProjectViewer.js:34 +#: planet/js/ProjectViewer.js:34 msgid "Report description required" msgstr "" -#: js/ProjectViewer.js:35 +#: planet/js/ProjectViewer.js:35 msgid "Report description too long" msgstr "" -#: js/StringHelper.js:30 +#: planet/js/Publisher.js:30 +msgid "Feature unavailable - cannot connect to server. Reload Music Blocks to try again." +msgstr "" + +#: planet/js/Publisher.js:220 +#: planet/js/Publisher.js:237 +msgid "This field is required" +msgstr "" + +#: planet/js/Publisher.js:227 +msgid "Title too long" +msgstr "" + +#: planet/js/Publisher.js:244 +msgid "Description too long" +msgstr "" + +#: planet/js/Publisher.js:341 +msgid "Server Error" +msgstr "" + +#: planet/js/Publisher.js:341 +msgid "Try Again" +msgstr "" + +#: planet/js/StringHelper.js:30 msgid "Planet" msgstr "" -#: js/StringHelper.js:31 +#: planet/js/StringHelper.js:31 msgid "Close Planet" msgstr "" -#: js/StringHelper.js:32 +#: planet/js/StringHelper.js:32 msgid "Open project from file" msgstr "" -#: js/StringHelper.js:34 +#: planet/js/StringHelper.js:34 msgid "Local" msgstr "" -#: js/StringHelper.js:35 +#: planet/js/StringHelper.js:35 msgid "Global" msgstr "" -#: js/StringHelper.js:36 +#: planet/js/StringHelper.js:36 msgid "Search for a project" msgstr "" -#: js/StringHelper.js:38 +#: planet/js/StringHelper.js:38 msgid "Publish Project" msgstr "" -#: js/StringHelper.js:40 +#: planet/js/StringHelper.js:40 msgid "Tags (max 5)" msgstr "" -#: js/StringHelper.js:41 -#: js/StringHelper.js:61 +#: planet/js/StringHelper.js:41 +#: planet/js/StringHelper.js:61 msgid "Description" msgstr "" -#: js/StringHelper.js:42 -#: js/StringHelper.js:67 +#: planet/js/StringHelper.js:42 +#: planet/js/StringHelper.js:67 msgid "Submit" msgstr "" -#: js/StringHelper.js:43 -#: js/StringHelper.js:47 +#: planet/js/StringHelper.js:43 +#: planet/js/StringHelper.js:47 msgid "Cancel" msgstr "" -#: js/StringHelper.js:44 +#: planet/js/StringHelper.js:44 msgid "Delete \\"\\"?" msgstr "" -#: js/StringHelper.js:45 +#: planet/js/StringHelper.js:45 msgid "Permanently delete project \\"\\"?" msgstr "" -#: js/StringHelper.js:48 +#: planet/js/StringHelper.js:48 msgid "Explore Projects" msgstr "" -#: js/StringHelper.js:50 +#: planet/js/StringHelper.js:49 +#: planet/js/helper.js:149 +msgid "Show more tags" +msgstr "" + +#: planet/js/StringHelper.js:50 msgid "Most recent" msgstr "" -#: js/StringHelper.js:51 +#: planet/js/StringHelper.js:51 msgid "Most liked" msgstr "" -#: js/StringHelper.js:52 +#: planet/js/StringHelper.js:52 msgid "Most downloaded" msgstr "" -#: js/StringHelper.js:53 +#: planet/js/StringHelper.js:53 msgid "A-Z" msgstr "" -#: js/StringHelper.js:54 +#: planet/js/StringHelper.js:54 msgid "Sort by" msgstr "" -#: js/StringHelper.js:55 +#: planet/js/StringHelper.js:55 msgid "Load More Projects" msgstr "" -#: js/StringHelper.js:56 +#: planet/js/StringHelper.js:56 msgid "Last Updated" msgstr "" -#: js/StringHelper.js:57 +#: planet/js/StringHelper.js:57 msgid "Creation Date" msgstr "" -#: js/StringHelper.js:58 +#: planet/js/StringHelper.js:58 msgid "Number of Downloads:" msgstr "" -#: js/StringHelper.js:59 +#: planet/js/StringHelper.js:59 msgid "Number of Likes:" msgstr "" -#: js/StringHelper.js:60 +#: planet/js/StringHelper.js:60 msgid "Tags:" msgstr "" -#: js/StringHelper.js:65 +#: planet/js/StringHelper.js:65 msgid "Report projects which violate the Sugar Labs Code of Conduct." msgstr "" -#: js/StringHelper.js:66 +#: planet/js/StringHelper.js:66 msgid "Reason for reporting project" msgstr "" -#: js/StringHelper.js:70 +#: planet/js/StringHelper.js:70 msgid "Download as File" msgstr "" -#: js/GlobalPlanet.js:35 -msgid "No results found." -msgstr "" - -#: js/GlobalPlanet.js:51 -msgid "Remix of" -msgstr "" - -#: js/GlobalPlanet.js:509 -msgid "Cannot connect to server" -msgstr "" - -#: js/Publisher.js:30 -msgid "Feature unavailable - cannot connect to server. Reload Music Blocks to try again." -msgstr "" - -#: js/Publisher.js:218 -#: js/Publisher.js:235 -msgid "This field is required" -msgstr "" - -#: js/Publisher.js:225 -msgid "Title too long" +#: planet/js/helper.js:150 +msgid "Show fewer tags" msgstr "" -#: js/Publisher.js:242 -msgid "Description too long" +#: plugins/accelerometer.rtp:48 +msgid "motion x" msgstr "" -#: js/Publisher.js:339 -msgid "Server Error" +#: plugins/accelerometer.rtp:56 +msgid "motion y" msgstr "" -#: js/Publisher.js:339 -msgid "Try Again" +#: plugins/accelerometer.rtp:64 +msgid "motion z" msgstr "" -#: js/SaveInterface.js:34 -msgid "Open in Music Blocks" +#: plugins/facebook.rtp:27 +msgid "publish" msgstr "" -#: js/SaveInterface.js:35 -msgid "Open in Turtle Blocks" +#: plugins/maths.rtp:62 +msgid "power" msgstr "" -#: plugins/weather.rtp:68 -#: plugins/weather.rtp:97 -msgid "Days ahead must be in the range of -1 to 5." +#: plugins/maths.rtp:62 +msgid "base" msgstr "" -#: plugins/weather.rtp:122 -msgid "forecast" +#: plugins/maths.rtp:62 +msgid "exp" msgstr "" -#: plugins/weather.rtp:123 -#: plugins/weather.rtp:137 -#: plugins/weather.rtp:150 -msgid "city" +#: plugins/maths.rtp:99 +msgid "floor" msgstr "" -#: plugins/weather.rtp:124 -#: plugins/weather.rtp:138 -#: plugins/weather.rtp:151 -msgid "day" +#: plugins/maths.rtp:104 +msgid "ceiling" msgstr "" -#: plugins/weather.rtp:136 -msgid "high" +#: plugins/maths.rtp:109 +msgid "to degrees" msgstr "" -#: plugins/weather.rtp:149 -msgid "low" +#: plugins/maths.rtp:114 +msgid "to radians" msgstr "" #: plugins/nutrition.rtp:104 @@ -9457,45 +9866,6 @@ msgstr "" msgid "water" msgstr "" -#: plugins/maths.rtp:62 -#: plugins/examples.rtp:93 -msgid "power" -msgstr "" - -#: plugins/maths.rtp:62 -#: plugins/examples.rtp:93 -msgid "base" -msgstr "" - -#: plugins/maths.rtp:62 -#: plugins/examples.rtp:93 -msgid "exp" -msgstr "" - -#: plugins/maths.rtp:99 -#: plugins/examples.rtp:130 -msgid "floor" -msgstr "" - -#: plugins/maths.rtp:104 -#: plugins/examples.rtp:135 -msgid "ceiling" -msgstr "" - -#: plugins/maths.rtp:109 -#: plugins/examples.rtp:140 -msgid "to degrees" -msgstr "" - -#: plugins/maths.rtp:114 -#: plugins/examples.rtp:145 -msgid "to radians" -msgstr "" - -#: plugins/facebook.rtp:27 -msgid "publish" -msgstr "" - #: plugins/rodi.rtp:172 msgid "blink" msgstr "" @@ -9524,18 +9894,66 @@ msgstr "" msgid "move" msgstr "" -#: plugins/accelerometer.rtp:48 -msgid "motion x" +#: plugins/weather.rtp:68 +#: plugins/weather.rtp:97 +msgid "Days ahead must be in the range of -1 to 5." msgstr "" -#: plugins/accelerometer.rtp:56 -msgid "motion y" +#: plugins/weather.rtp:122 +msgid "forecast" msgstr "" -#: plugins/accelerometer.rtp:64 -msgid "motion z" +#: plugins/weather.rtp:123 +#: plugins/weather.rtp:137 +#: plugins/weather.rtp:150 +msgid "city" +msgstr "" + +#: plugins/weather.rtp:124 +#: plugins/weather.rtp:138 +#: plugins/weather.rtp:151 +msgid "day" +msgstr "" + +#: plugins/weather.rtp:136 +msgid "high" +msgstr "" + +#: plugins/weather.rtp:149 +msgid "low" msgstr "" +#: js/toolbar.js:70 + +#: js/toolbar.js:130 + +#: js/toolbar.js:194 + +#: js/toolbar.js:249 + +#~msgid "Toggle JavaScript Editor" +#~msgstr "" + +#: js/EnsembleBlocks.js:643 + +#~msgid "The Turrle pitch block returns the current pitch number being played by the specified turtle." +#~msgstr "" + +#: js/PitchActions.js:88 + +#~msgid "The Scalar Step Block must be used inside of a Note Block." +#~msgstr "" + +#: js/PitchActions.js:107 + +#~msgid "The Scalar Step Block must be preceded by a Pitch Block." +#~msgstr "" + +#: js/musickeyboard.js:2840 + +#~msgid "New action blocks generated!" +#~msgstr "" + #: js/toolbar.js:110 #: js/toolbar.js:204 @@ -9876,11 +10294,6 @@ msgstr "" #~msgid "The Time block returns the number of seconds that the program has been running." #~msgstr "" -#: js/help.js:95 - -#~msgid "Take a tour" -#~msgstr "" - #: js/GlobalCard.js:48 #~msgid "More Details" @@ -12779,11 +13192,6 @@ msgstr "" #~msgid "The save-stack button saves a stack onto a custom palette. It appears after a \"long press\" on a stack." #~msgstr "" -#: js/musicutils.js:254 - -#~msgid "Custom" -#~msgstr "" - #: js/basicblocks.js:4785 #~msgid "Rhythm" diff --git a/po/tvl.po b/po/tvl.po index 325710e409..85b052bfef 100644 --- a/po/tvl.po +++ b/po/tvl.po @@ -2129,276 +2129,131 @@ #: js/planetInterface.js:104 #: js/planetInterface.js:104 #: js/planetInterface.js:104 -msgid "project undefined" -msgstr "" - -#: js/logo.js:61 -msgid "Not a valid pitch name" -msgstr "" - -#: js/logo.js:507 -#: js/ProgramBlocks.js:258 -#: js/ProgramBlocks.js:427 -msgid "You must select a file." -msgstr "" - -#: js/logo.js:1184 -#: js/turtles.js:118 -#: js/turtle-painter.js:1192 -#: js/turtle-painter.js:1193 -#: js/block.js:1463 -#: js/lilypond.js:757 -#: js/lilypond.js:921 -#: js/lilypond.js:959 -#: js/ActionBlocks.js:1223 -#: js/ProgramBlocks.js:1267 -msgid "start" -msgstr "" - -#: js/logo.js:1696 -msgid "Playback is ready." -msgstr "" - -#: js/blocks.js:1011 -#: js/blocks.js:3427 -#: js/blocks.js:3428 -#: js/blocks.js:3653 -#: js/blocks.js:4012 -#: js/blocks.js:4205 -#: js/blocks.js:5343 -#: js/blocks.js:6474 -#: js/palette.js:527 -#: js/palette.js:536 -#: js/palette.js:545 -#: js/palette.js:554 -#: js/palette.js:1131 -#: js/palette.js:1142 -#: js/palette.js:1153 -#: js/palette.js:1164 -#: js/palette.js:1183 -#: js/rubrics.js:529 -#: js/macros.js:170 -#: js/macros.js:266 -#: js/macros.js:267 -#: js/macros.js:276 -#: js/macros.js:828 -#: js/block.js:1449 -#: js/block.js:4164 -#: js/block.js:4182 -#: js/block.js:4193 -#: js/turtledefs.js:128 -#: js/turtledefs.js:230 -#: js/ActionBlocks.js:254 -#: js/ActionBlocks.js:307 -#: js/ActionBlocks.js:617 -#: js/ActionBlocks.js:716 -#: js/ActionBlocks.js:961 -#: js/ActionBlocks.js:1049 -#: js/ActionBlocks.js:1322 -#: js/ActionBlocks.js:1325 -#: js/ActionBlocks.js:1337 -#: js/ActionBlocks.js:1404 -#: js/MeterBlocks.js:715 -#: js/MeterBlocks.js:768 -#: js/MeterBlocks.js:831 -#: js/MeterBlocks.js:892 -#: js/phrasemaker.js:4412 -#: js/musickeyboard.js:2647 -#: js/rhythmruler.js:1928 -#: js/rhythmruler.js:1935 -#: js/rhythmruler.js:2119 -#: js/rhythmruler.js:2126 -msgid "action" -msgstr "" - -#: js/blocks.js:1205 -#: js/blocks.js:3380 -#: js/blocks.js:3770 -#: js/blocks.js:3801 -#: js/blocks.js:3850 -#: js/blocks.js:3885 -#: js/blocks.js:6497 -#: js/palette.js:509 -#: js/palette.js:638 -#: js/palette.js:1107 -#: js/BoxesBlocks.js:282 -#: js/BoxesBlocks.js:285 -#: js/BoxesBlocks.js:405 -#: js/BoxesBlocks.js:594 -msgid "box" -msgstr "" - -#: js/blocks.js:1680 -msgid "Consider breaking this stack into parts." +#: js/SaveInterface.js:59 +#: js/SaveInterface.js:61 +#: js/SaveInterface.js:93 +msgid "Music Blocks Project" msgstr "" -#: js/blocks.js:2408 -#: js/palette.js:653 -#: js/MediaBlocks.js:602 -msgid "open file" +#: js/SaveInterface.js:63 +msgid "This project was created in Music Blocks" msgstr "" -#: js/blocks.js:2415 -#: js/blocks.js:2423 -#: js/activity.js:1875 -msgid "audio file" +#: js/SaveInterface.js:67 +msgid "Music Blocks is a Free/Libre Software application." msgstr "" -#: js/blocks.js:2536 -#: js/blocks.js:3147 -#: js/block.js:3543 -msgid "on2" +#: js/SaveInterface.js:69 +msgid "The source code can be accessed at" msgstr "" -#: js/blocks.js:2538 -#: js/blocks.js:3149 -#: js/block.js:3545 -msgid "off" +#: js/SaveInterface.js:72 +msgid "For more information, please consult the" msgstr "" -#: js/blocks.js:2543 -#: js/blocks.js:3154 -#: js/palette.js:618 -#: js/block.js:3466 -#: js/BooleanBlocks.js:77 -#: js/BooleanBlocks.js:167 -#: js/BooleanBlocks.js:251 -#: js/BooleanBlocks.js:335 -#: js/BooleanBlocks.js:433 -#: js/BooleanBlocks.js:539 -#: js/BooleanBlocks.js:640 -#: js/BooleanBlocks.js:741 -#: js/BooleanBlocks.js:847 -#: js/BooleanBlocks.js:948 -#: js/BooleanBlocks.js:1033 -#: js/SensorsBlocks.js:910 -msgid "true" +#: js/SaveInterface.js:76 +#: js/turtledefs.js:795 +msgid "Music Blocks Guide" msgstr "" -#: js/blocks.js:2545 -#: js/blocks.js:3156 -#: js/block.js:3466 -#: js/BooleanBlocks.js:79 -#: js/BooleanBlocks.js:169 -#: js/BooleanBlocks.js:253 -#: js/BooleanBlocks.js:337 -#: js/BooleanBlocks.js:435 -#: js/BooleanBlocks.js:541 -#: js/BooleanBlocks.js:642 -#: js/BooleanBlocks.js:743 -#: js/BooleanBlocks.js:849 -#: js/BooleanBlocks.js:950 -#: js/SensorsBlocks.js:912 -msgid "false" +#: js/SaveInterface.js:83 +msgid "Alternatively, open the file in Music Blocks using the Load project button." msgstr "" -#: js/blocks.js:3183 -#: js/palette.js:574 -#: js/MediaBlocks.js:892 -#: js/MediaBlocks.js:963 -msgid "text" +#: js/SaveInterface.js:85 +msgid "Project Code" msgstr "" -#: js/blocks.js:3379 -#: js/palette.js:641 -#: js/palette.js:642 -#: js/BoxesBlocks.js:514 -msgid "store in box" +#: js/SaveInterface.js:87 +msgid "This code stores data about the blocks in a project." msgstr "" -#: js/blocks.js:3384 -#: js/blocks.js:3824 -#: js/blocks.js:3859 -#: js/blocks.js:3894 -#: js/blocks.js:5773 -#: js/blocks.js:5794 -#: js/BoxesBlocks.js:772 -msgid "box1" +#: js/SaveInterface.js:89 +msgid "Show" msgstr "" -#: js/blocks.js:3386 -#: js/blocks.js:3826 -#: js/blocks.js:3861 -#: js/blocks.js:3896 -#: js/blocks.js:5775 -#: js/blocks.js:5796 -#: js/BoxesBlocks.js:663 -msgid "box2" +#: js/SaveInterface.js:91 +msgid "Hide" msgstr "" -#: js/blocks.js:4058 -#: js/palette.js:639 -#: js/palette.js:644 -#: js/palette.js:1043 -#: js/BoxesBlocks.js:591 -msgid "store in" +#: js/SaveInterface.js:131 +#: js/SaveInterface.js:204 +#: js/SaveInterface.js:262 +#: js/SaveInterface.js:389 +#: js/SaveInterface.js:417 +#: js/activity.js:4884 +#: planet/js/ProjectStorage.js:27 +#: planet/js/GlobalPlanet.js:467 +#: planet/js/GlobalPlanet.js:469 +#: planet/js/GlobalPlanet.js:495 +#.TRANS: default project title when saving as Lilypond +msgid "My Project" msgstr "" -#: js/blocks.js:4058 -#: js/EnsembleBlocks.js:391 -#: js/EnsembleBlocks.js:402 -#: js/MediaBlocks.js:746 -#: js/ProgramBlocks.js:390 -#: js/ProgramBlocks.js:495 -#: js/ProgramBlocks.js:658 -#: js/BoxesBlocks.js:595 -#: js/PitchBlocks.js:656 -#: js/PitchBlocks.js:932 -#: js/PitchBlocks.js:1827 -#: js/ToneBlocks.js:1025 -#: js/DictBlocks.js:215 -#: js/DictBlocks.js:289 -msgid "name" +#: js/SaveInterface.js:197 +#: planet/js/SaveInterface.js:58 +msgid "No description provided" msgstr "" -#: js/blocks.js:4058 -#: js/RhythmBlocks.js:1130 -#: js/BoxesBlocks.js:75 -#: js/BoxesBlocks.js:595 -#: js/HeapBlocks.js:544 -#: js/DictBlocks.js:289 -#: js/DictBlocks.js:430 -msgid "value" +#: js/SaveInterface.js:332 +msgid "Your recording is in progress." msgstr "" -#: js/blocks.js:4907 -msgid "There is no block selected." +#: js/SaveInterface.js:401 +#.TRANS: File name prompt for save as Lilypond +msgid "File name" msgstr "" -#: js/blocks.js:5002 -#: js/MediaBlocks.js:888 -msgid "show" +#: js/SaveInterface.js:403 +#: planet/js/StringHelper.js:39 +#.TRANS: Project title prompt for save as Lilypond +msgid "Project title" msgstr "" -#: js/blocks.js:5005 -#: js/MediaBlocks.js:803 -#.TRANS: Avatar is the image used to determine the appearance of the mouse. -msgid "avatar" +#: js/SaveInterface.js:405 +#.TRANS: Project title prompt for save as Lilypond +msgid "Project author" msgstr "" -#: js/blocks.js:5008 -#: js/ToneBlocks.js:1010 -#: js/sampler.js:693 -#.TRANS: The sound sample that the user uploads. -msgid "sample" +#: js/SaveInterface.js:407 +#.TRANS: MIDI prompt for save as Lilypond +msgid "Include MIDI output?" msgstr "" -#: js/turtles.js:874 -msgid "Grid" +#: js/SaveInterface.js:409 +#.TRANS: Guitar prompt for save as Lilypond +msgid "Include guitar tablature output?" msgstr "" -#: js/turtles.js:891 -#: js/turtledefs.js:626 -msgid "Clean" +#: js/SaveInterface.js:411 +#.TRANS: Lilypond is a scripting language for generating sheet music +msgid "Save as Lilypond" msgstr "" -#: js/turtles.js:912 -#: js/turtledefs.js:632 -msgid "Collapse" +#: js/SaveInterface.js:426 +#: js/blocks/EnsembleBlocks.js:75 +#: js/blocks/EnsembleBlocks.js:154 +#: js/blocks/EnsembleBlocks.js:216 +#: js/blocks/EnsembleBlocks.js:302 +#: js/blocks/EnsembleBlocks.js:348 +#: js/blocks/EnsembleBlocks.js:389 +#: js/blocks/EnsembleBlocks.js:441 +#: js/blocks/EnsembleBlocks.js:490 +#: js/blocks/EnsembleBlocks.js:536 +#: js/blocks/EnsembleBlocks.js:583 +#: js/blocks/EnsembleBlocks.js:637 +#: js/blocks/EnsembleBlocks.js:753 +#: js/blocks/EnsembleBlocks.js:840 +#: js/blocks/EnsembleBlocks.js:899 +#: js/blocks/EnsembleBlocks.js:942 +#: js/blocks/EnsembleBlocks.js:1212 +#: js/blocks/EnsembleBlocks.js:1280 +#.TRANS: default project author when saving as Lilypond +msgid "Mr. Mouse" msgstr "" -#: js/turtles.js:940 -msgid "Expand" +#: js/SaveInterface.js:573 +msgid "The Lilypond code is copied to clipboard. You can paste it here: " msgstr "" #: js/languagebox.js:198 @@ -2409,6933 +2264,7487 @@ msgstr "" msgid "Music Blocks is already set to this language." msgstr "" -#: js/piemenus.js:200 -#: js/musicutils.js:808 -#: js/musicutils.js:824 -#: js/phrasemaker.js:1672 -#: js/musickeyboard.js:2041 -#: js/sampler.js:544 -#.TRANS: double sharp is a music term related to pitch -msgid "double sharp" +#: js/planetInterface.js:131 +msgid "project undefined" msgstr "" -#: js/piemenus.js:201 -#: js/PitchBlocks.js:1510 -#: js/PitchActions.js:580 -#: js/musicutils.js:806 -#: js/musicutils.js:825 -#: js/phrasemaker.js:1673 -#: js/musickeyboard.js:2042 -#: js/sampler.js:545 -#.TRANS: sharp is a half-step up in pitch -#.TRANS: sharp is a music term related to pitch -msgid "sharp" +#: js/rubrics.js:523 +#: js/turtledefs.js:119 +#: js/turtledefs.js:221 +#: js/blocks/RhythmBlockPaletteBlocks.js:52 +#: js/blocks/RhythmBlockPaletteBlocks.js:234 +#: js/blocks/ProgramBlocks.js:745 +#: js/widgets/rhythmruler.js:2057 +#: js/widgets/rhythmruler.js:2064 +#: js/widgets/rhythmruler.js:2133 +#: js/widgets/rhythmruler.js:2140 +#: js/widgets/rhythmruler.js:2219 +#.TRANS: an arrangement of notes based on duration +msgid "rhythm" msgstr "" -#: js/piemenus.js:202 -#: js/musicutils.js:804 -#: js/musicutils.js:826 -#: js/phrasemaker.js:1674 -#: js/musickeyboard.js:2043 -#: js/sampler.js:546 -#.TRANS: natural is a music term related to pitch -msgid "natural" +#: js/rubrics.js:524 +#: js/turtledefs.js:121 +#: js/turtledefs.js:223 +#: js/block-verbose.js:2622 +#: js/block.js:2550 +#: js/blocks/IntervalsBlocks.js:63 +#: js/blocks/SensorsBlocks.js:178 +#: js/blocks/PitchBlocks.js:1839 +#: js/blocks/PitchBlocks.js:1853 +#: js/widgets/musickeyboard.js:1935 +#: js/widgets/phrasemaker.js:1036 +#.TRANS: pitch number +#.TRANS: pitch number +#.TRANS: we specify pitch in terms of a name and an octave. The name can be CDEFGAB or Do Re Mi Fa Sol La Ti. Octave is a number between 1 and 8. +msgid "pitch" msgstr "" -#: js/piemenus.js:203 -#: js/PitchBlocks.js:1469 -#: js/PitchActions.js:583 -#: js/musicutils.js:802 -#: js/musicutils.js:827 -#: js/phrasemaker.js:1675 -#: js/musickeyboard.js:2044 -#: js/sampler.js:547 -#.TRANS: flat is a half-step down in pitch -#.TRANS: flat is a music term related to pitch -msgid "flat" +#: js/rubrics.js:525 +#: js/turtledefs.js:123 +#: js/turtledefs.js:225 +msgid "tone" msgstr "" -#: js/piemenus.js:204 -#: js/musicutils.js:800 -#: js/musicutils.js:828 -#: js/phrasemaker.js:1676 -#: js/musickeyboard.js:2045 -#: js/sampler.js:548 -#.TRANS: double flat is a music term related to pitch -msgid "double flat" +#: js/rubrics.js:526 +#: js/lilypond.js:605 +#: js/lilypond.js:904 +#: js/lilypond.js:910 +#: js/lilypond.js:948 +msgid "mouse" msgstr "" -#: js/piemenus.js:2861 -#: js/PitchBlocks.js:1357 -#: js/musicutils.js:627 -#.TRANS: unison means the note is the same as the current note -#.TRANS: unison is a music term related to intervals -msgid "unison" +#: js/rubrics.js:527 +#: js/turtledefs.js:132 +#: js/turtledefs.js:234 +#: js/widgets/phrasemaker.js:1040 +msgid "pen" msgstr "" -#: js/piemenus.js:3015 -#: js/piemenus.js:3088 -#: js/musicutils.js:635 -#: js/musicutils.js:810 -#: js/musicutils.js:912 -#.TRANS: major is a music term related to intervals and mode -msgid "major" +#: js/rubrics.js:528 +#: js/turtledefs.js:133 +#: js/turtledefs.js:235 +#: js/blocks/NumberBlocks.js:981 +#: js/blocks/PitchBlocks.js:1717 +#: js/blocks/PitchBlocks.js:1758 +msgid "number" msgstr "" -#: js/piemenus.js:3015 -#: js/piemenus.js:3088 -#: js/musicutils.js:653 -#.TRANS: modal scale for music -msgid "ionian" +#: js/rubrics.js:529 +#: js/turtledefs.js:127 +#: js/turtledefs.js:229 +msgid "flow" msgstr "" -#: js/piemenus.js:3017 -#: js/piemenus.js:3092 -#: js/musicutils.js:633 -#: js/musicutils.js:811 -#: js/musicutils.js:909 -#.TRANS: minor is a music term related to intervals and mode -msgid "minor" +#: js/rubrics.js:530 +#: js/turtledefs.js:128 +#: js/turtledefs.js:230 +#: js/block-verbose.js:1609 +#: js/block-verbose.js:4559 +#: js/block-verbose.js:4577 +#: js/block-verbose.js:4588 +#: js/block.js:1573 +#: js/block.js:4483 +#: js/block.js:4501 +#: js/block.js:4512 +#: js/blocks.js:1018 +#: js/blocks.js:3491 +#: js/blocks.js:3492 +#: js/blocks.js:3717 +#: js/blocks.js:4076 +#: js/blocks.js:4269 +#: js/blocks.js:5432 +#: js/blocks.js:6563 +#: js/macros.js:170 +#: js/macros.js:266 +#: js/macros.js:267 +#: js/macros.js:276 +#: js/macros.js:828 +#: js/palette.js:527 +#: js/palette.js:536 +#: js/palette.js:545 +#: js/palette.js:554 +#: js/palette.js:1129 +#: js/palette.js:1140 +#: js/palette.js:1151 +#: js/palette.js:1162 +#: js/palette.js:1181 +#: js/blocks/ActionBlocks.js:254 +#: js/blocks/ActionBlocks.js:307 +#: js/blocks/ActionBlocks.js:617 +#: js/blocks/ActionBlocks.js:716 +#: js/blocks/ActionBlocks.js:961 +#: js/blocks/ActionBlocks.js:1049 +#: js/blocks/ActionBlocks.js:1322 +#: js/blocks/ActionBlocks.js:1325 +#: js/blocks/ActionBlocks.js:1337 +#: js/blocks/ActionBlocks.js:1404 +#: js/blocks/MeterBlocks.js:715 +#: js/blocks/MeterBlocks.js:768 +#: js/blocks/MeterBlocks.js:831 +#: js/blocks/MeterBlocks.js:892 +#: js/widgets/musickeyboard.js:2986 +#: js/widgets/phrasemaker.js:4913 +#: js/widgets/rhythmruler.js:2319 +#: js/widgets/rhythmruler.js:2326 +#: js/widgets/rhythmruler.js:2511 +#: js/widgets/rhythmruler.js:2518 +msgid "action" msgstr "" -#: js/piemenus.js:3017 -#: js/piemenus.js:3092 -#: js/musicutils.js:663 -#.TRANS: modal scale for music -msgid "aeolian" +#: js/rubrics.js:531 +#: js/turtledefs.js:136 +#: js/turtledefs.js:238 +msgid "sensors" msgstr "" -#: js/piemenus.js:3407 -msgid "Duplicate" +#: js/rubrics.js:532 +#: js/turtledefs.js:135 +#: js/turtledefs.js:237 +#: js/blocks/MediaBlocks.js:930 +msgid "media" msgstr "" -#: js/piemenus.js:3408 -#: js/turtledefs.js:534 -msgid "Extract" +#: js/rubrics.js:533 +msgid "mice" msgstr "" -#: js/piemenus.js:3409 -msgid "Move to trash" +#: js/toolbar.js:48 +#: js/toolbar.js:109 +msgid "About Music Blocks" msgstr "" -#: js/piemenus.js:3410 -#: js/timbre.js:968 -#: js/StringHelper.js:69 -msgid "Close" +#: js/toolbar.js:49 +#: js/toolbar.js:110 +#: js/toolbar.js:175 +#: js/toolbar.js:231 +#: js/turtledefs.js:445 +#: js/turtledefs.js:482 +#: js/activity.js:2660 +#: js/activity.js:2671 +#: js/activity.js:2902 +#: js/widgets/modewidget.js:77 +#: js/widgets/meterwidget.js:185 +#: js/widgets/pitchdrummatrix.js:147 +#: js/widgets/pitchdrummatrix.js:687 +#: js/widgets/pitchdrummatrix.js:689 +#: js/widgets/pitchdrummatrix.js:741 +#: js/widgets/pitchdrummatrix.js:743 +#: js/widgets/pitchdrummatrix.js:758 +#: js/widgets/pitchdrummatrix.js:760 +#: js/widgets/pitchdrummatrix.js:789 +#: js/widgets/pitchdrummatrix.js:791 +#: js/widgets/pitchstaircase.js:121 +#: js/widgets/temperament.js:610 +#: js/widgets/temperament.js:613 +#: js/widgets/temperament.js:673 +#: js/widgets/temperament.js:675 +#: js/widgets/temperament.js:2017 +#: js/widgets/temperament.js:2019 +#: js/widgets/tempo.js:84 +#: js/widgets/tempo.js:86 +#: js/widgets/timbre.js:432 +#: js/widgets/timbre.js:434 +#: js/widgets/timbre.js:465 +#: js/widgets/timbre.js:467 +#: js/widgets/timbre.js:746 +#: js/widgets/aiwidget.js:647 +#: js/widgets/aiwidget.js:654 +#: js/widgets/aiwidget.js:656 +#: js/widgets/arpeggio.js:90 +#: js/widgets/arpeggio.js:547 +#: js/widgets/arpeggio.js:549 +#: js/widgets/arpeggio.js:644 +#: js/widgets/arpeggio.js:646 +#: js/widgets/musickeyboard.js:676 +#: js/widgets/musickeyboard.js:872 +#: js/widgets/musickeyboard.js:874 +#: js/widgets/musickeyboard.js:953 +#: js/widgets/musickeyboard.js:955 +#: js/widgets/phrasemaker.js:513 +#: js/widgets/phrasemaker.js:523 +#: js/widgets/phrasemaker.js:525 +#: js/widgets/phrasemaker.js:4304 +#: js/widgets/phrasemaker.js:4528 +#: js/widgets/phrasemaker.js:4533 +#: js/widgets/phrasemaker.js:4535 +#: js/widgets/phrasemaker.js:4650 +#: js/widgets/rhythmruler.js:637 +#: js/widgets/rhythmruler.js:639 +#: js/widgets/rhythmruler.js:653 +#: js/widgets/rhythmruler.js:655 +#: js/widgets/sampler.js:162 +#: js/widgets/sampler.js:164 +#: js/widgets/sampler.js:363 +msgid "Play" msgstr "" -#: js/piemenus.js:3416 -msgid "Save stack" +#: js/toolbar.js:50 +#: js/toolbar.js:111 +#: js/toolbar.js:176 +#: js/toolbar.js:232 +#: js/turtledefs.js:451 +#: js/turtledefs.js:488 +#: js/activity.js:2679 +#: js/widgets/modewidget.js:99 +#: js/widgets/modewidget.js:101 +#: js/widgets/meterwidget.js:206 +#: js/widgets/meterwidget.js:208 +#: js/widgets/pitchdrummatrix.js:674 +#: js/widgets/pitchdrummatrix.js:676 +#: js/widgets/temperament.js:2002 +#: js/widgets/temperament.js:2004 +#: js/widgets/arpeggio.js:534 +#: js/widgets/arpeggio.js:536 +#: js/widgets/phrasemaker.js:534 +#: js/widgets/phrasemaker.js:536 +msgid "Stop" msgstr "" -#: js/piemenus.js:3420 -#: js/toolbar.js:60 -#: js/toolbar.js:120 -#: js/toolbar.js:185 -#: js/toolbar.js:240 -#: js/turtledefs.js:752 -msgid "Help" +#: js/toolbar.js:51 +#: js/toolbar.js:112 +#: js/toolbar.js:177 +#: js/toolbar.js:233 +#: js/turtledefs.js:498 +msgid "Record" msgstr "" -#: js/piemenus.js:3762 -msgid "You have chosen key " +#: js/toolbar.js:52 +#: js/toolbar.js:53 +msgid "Full screen" msgstr "" -#: js/piemenus.js:3766 -msgid " for your pitch preview." +#: js/toolbar.js:54 +#: js/toolbar.js:115 +#: js/toolbar.js:180 +#: js/toolbar.js:236 +#: js/turtledefs.js:504 +msgid "Toggle Fullscreen" +msgstr "" + +#: js/toolbar.js:55 +#: js/toolbar.js:116 +#: js/toolbar.js:181 +#: js/toolbar.js:237 +#: js/turtledefs.js:510 +#: planet/js/StringHelper.js:33 +msgid "New project" +msgstr "" + +#: js/toolbar.js:56 +#: js/toolbar.js:117 +#: js/toolbar.js:182 +#: js/toolbar.js:238 +#: js/turtledefs.js:516 +msgid "Load project from file" +msgstr "" + +#: js/toolbar.js:57 +#: js/toolbar.js:118 +#: js/toolbar.js:119 +#: js/toolbar.js:183 +#: js/toolbar.js:239 +#: js/turtledefs.js:541 +#: js/turtledefs.js:550 +#: js/turtledefs.js:571 +msgid "Save project" +msgstr "" + +#: js/toolbar.js:58 +#: js/toolbar.js:77 +#: js/toolbar.js:79 +#: js/toolbar.js:138 +#: js/toolbar.js:147 +#: js/toolbar.js:149 +#: js/toolbar.js:184 +#: js/toolbar.js:202 +#: js/toolbar.js:204 +#: js/toolbar.js:240 +#: js/toolbar.js:258 +#: js/toolbar.js:260 +msgid "Save project as HTML" +msgstr "" + +#: js/toolbar.js:59 +#: js/toolbar.js:120 +#: js/toolbar.js:185 +#: js/toolbar.js:241 +msgid "Find and share projects" +msgstr "" + +#: js/toolbar.js:60 +#: js/toolbar.js:121 +#: js/toolbar.js:186 +#: js/toolbar.js:242 +msgid "Offline. Sharing is unavailable" +msgstr "" + +#: js/toolbar.js:61 +#: js/toolbar.js:122 +#: js/toolbar.js:187 +#: js/toolbar.js:243 +msgid "Auxiliary menu" +msgstr "" + +#: js/toolbar.js:62 +#: js/toolbar.js:123 +#: js/toolbar.js:188 +#: js/toolbar.js:244 +#: js/turtledefs.js:752 +#: js/piemenus.js:3423 +msgid "Help" +msgstr "" + +#: js/toolbar.js:63 +#: js/toolbar.js:124 +#: js/toolbar.js:189 +#: js/toolbar.js:245 +msgid "Run slowly" +msgstr "" + +#: js/toolbar.js:64 +#: js/toolbar.js:125 +#: js/toolbar.js:190 +#: js/toolbar.js:246 +#: js/turtledefs.js:682 +msgid "Run step by step" +msgstr "" + +#: js/toolbar.js:65 +#: js/toolbar.js:126 +#: js/toolbar.js:191 +#: js/toolbar.js:247 +#: js/turtledefs.js:689 +msgid "Display statistics" +msgstr "" + +#: js/toolbar.js:66 +#: js/toolbar.js:127 +#: js/toolbar.js:192 +#: js/toolbar.js:248 +msgid "Load plugin" +msgstr "" + +#: js/toolbar.js:67 +#: js/toolbar.js:128 +#: js/toolbar.js:193 +#: js/toolbar.js:249 +#: js/turtledefs.js:696 +msgid "Delete plugin" +msgstr "" + +#: js/toolbar.js:68 +#: js/toolbar.js:129 +#: js/toolbar.js:194 +#: js/toolbar.js:250 +msgid "Enable horizontal scrolling" +msgstr "" + +#: js/toolbar.js:69 +#: js/toolbar.js:130 +#: js/toolbar.js:195 +#: js/toolbar.js:251 +msgid "Disable horizontal scrolling" +msgstr "" + +#: js/toolbar.js:70 +#: js/toolbar.js:131 +#: js/toolbar.js:196 +#: js/toolbar.js:252 +#: planet/js/LocalCard.js:54 +#: planet/js/StringHelper.js:71 +msgid "Merge with current project" +msgstr "" + +#: js/toolbar.js:71 +#: js/toolbar.js:132 +msgid "Set Pitch Preview" +msgstr "" + +#: js/toolbar.js:72 +#: js/toolbar.js:133 +#: js/toolbar.js:197 +#: js/toolbar.js:253 +msgid "JavaScript Editor" +msgstr "" + +#: js/toolbar.js:73 +#: js/toolbar.js:134 +#: js/toolbar.js:198 +#: js/toolbar.js:254 +#: js/turtledefs.js:724 +msgid "Restore" +msgstr "" + +#: js/toolbar.js:74 +#: js/toolbar.js:135 +#: js/toolbar.js:199 +#: js/toolbar.js:255 +msgid "Switch to beginner mode" +msgstr "" + +#: js/toolbar.js:75 +#: js/toolbar.js:136 +#: js/toolbar.js:200 +#: js/toolbar.js:256 +msgid "Switch to advanced mode" +msgstr "" + +#: js/toolbar.js:76 +#: js/toolbar.js:137 +#: js/toolbar.js:146 +#: js/toolbar.js:201 +#: js/toolbar.js:257 +#: js/turtledefs.js:738 +msgid "Select language" +msgstr "" + +#: js/toolbar.js:78 +#: js/toolbar.js:81 +#: js/toolbar.js:140 +#: js/turtledefs.js:579 +msgid "Save mouse artwork as PNG" +msgstr "" + +#: js/toolbar.js:80 +#: js/toolbar.js:139 +#: js/turtledefs.js:575 +msgid "Save mouse artwork as SVG" +msgstr "" + +#: js/toolbar.js:82 +#: js/toolbar.js:141 +#: js/turtledefs.js:583 +msgid "Save music as WAV" +msgstr "" + +#: js/toolbar.js:83 +#: js/toolbar.js:142 +#: js/turtledefs.js:587 +msgid "Save sheet music as ABC" +msgstr "" + +#: js/toolbar.js:84 +#: js/toolbar.js:143 +#: js/turtledefs.js:591 +msgid "Save sheet music as Lilypond" +msgstr "" + +#: js/toolbar.js:85 +msgid "Save sheet music as MusicXML" +msgstr "" + +#: js/toolbar.js:86 +#: js/toolbar.js:144 +#: js/toolbar.js:152 +#: js/toolbar.js:207 +#: js/toolbar.js:263 +#: js/turtledefs.js:562 +#: js/turtledefs.js:595 +msgid "Save block artwork as SVG" +msgstr "" + +#: js/toolbar.js:87 +#: js/toolbar.js:145 +#: js/toolbar.js:153 +#: js/toolbar.js:208 +#: js/toolbar.js:264 +#: js/turtles.js:911 +msgid "Confirm" +msgstr "" + +#: js/toolbar.js:88 +#: js/toolbar.js:154 +#: js/toolbar.js:209 +#: js/toolbar.js:265 +msgid "English (United States)" +msgstr "" + +#: js/toolbar.js:89 +#: js/toolbar.js:155 +#: js/toolbar.js:210 +#: js/toolbar.js:266 +msgid "English (United Kingdom)" +msgstr "" + +#: js/toolbar.js:90 +#: js/toolbar.js:156 +#: js/toolbar.js:211 +#: js/toolbar.js:267 +msgid "日本語" +msgstr "" + +#: js/toolbar.js:91 +msgid "한국어" +msgstr "" + +#: js/toolbar.js:92 +#: js/toolbar.js:158 +#: js/toolbar.js:213 +#: js/toolbar.js:269 +msgid "español" +msgstr "" + +#: js/toolbar.js:93 +#: js/toolbar.js:159 +#: js/toolbar.js:214 +#: js/toolbar.js:270 +msgid "português" +msgstr "" + +#: js/toolbar.js:94 +#: js/toolbar.js:160 +#: js/toolbar.js:215 +#: js/toolbar.js:271 +msgid "にほんご" +msgstr "" + +#: js/toolbar.js:95 +#: js/toolbar.js:161 +#: js/toolbar.js:216 +#: js/toolbar.js:272 +msgid "中文" +msgstr "" + +#: js/toolbar.js:96 +#: js/toolbar.js:162 +#: js/toolbar.js:217 +#: js/toolbar.js:273 +msgid "ภาษาไทย" +msgstr "" + +#: js/toolbar.js:97 +#: js/toolbar.js:163 +#: js/toolbar.js:218 +#: js/toolbar.js:274 +msgid "aymara" +msgstr "" + +#: js/toolbar.js:98 +#: js/toolbar.js:164 +#: js/toolbar.js:219 +#: js/toolbar.js:275 +msgid "quechua" +msgstr "" + +#: js/toolbar.js:99 +#: js/toolbar.js:165 +#: js/toolbar.js:220 +#: js/toolbar.js:276 +msgid "guarani" +msgstr "" + +#: js/toolbar.js:100 +#: js/toolbar.js:166 +#: js/toolbar.js:221 +#: js/toolbar.js:277 +msgid "हिंदी" +msgstr "" + +#: js/toolbar.js:101 +#: js/toolbar.js:168 +#: js/toolbar.js:222 +#: js/toolbar.js:279 +msgid "igbo" +msgstr "" + +#: js/toolbar.js:102 +#: js/toolbar.js:169 +#: js/toolbar.js:223 +#: js/toolbar.js:280 +msgid "عربى" +msgstr "" + +#: js/toolbar.js:103 +#: js/toolbar.js:167 +#: js/toolbar.js:224 +#: js/toolbar.js:278 +msgid "తెలుగు" +msgstr "" + +#: js/toolbar.js:104 +#: js/toolbar.js:170 +#: js/toolbar.js:225 +#: js/toolbar.js:281 +msgid "עִברִית" +msgstr "" + +#: js/toolbar.js:113 +#: js/toolbar.js:114 +#: js/toolbar.js:178 +#: js/toolbar.js:179 +#: js/toolbar.js:234 +#: js/toolbar.js:235 +msgid "Full Screen" +msgstr "" + +#: js/toolbar.js:148 +#: js/toolbar.js:151 +#: js/toolbar.js:203 +#: js/toolbar.js:206 +#: js/toolbar.js:259 +#: js/toolbar.js:262 +#: js/turtledefs.js:558 +msgid "Save turtle artwork as PNG" +msgstr "" + +#: js/toolbar.js:150 +#: js/toolbar.js:205 +#: js/toolbar.js:261 +#: js/turtledefs.js:554 +msgid "Save turtle artwork as SVG" +msgstr "" + +#: js/toolbar.js:157 +#: js/toolbar.js:212 +#: js/toolbar.js:268 +msgid "한국인" +msgstr "" + +#: js/toolbar.js:174 +#: js/toolbar.js:230 +msgid "About Turtle Blocks" +msgstr "" + +#: js/toolbar.js:446 +#: js/toolbar.js:457 +#: js/toolbar.js:497 +msgid "Turtle Wrap Off" +msgstr "" + +#: js/toolbar.js:466 +#: js/toolbar.js:506 +msgid "Turtle Wrap On" +msgstr "" + +#: js/turtle-painter.js:1192 +#: js/turtle-painter.js:1193 +#: js/turtles.js:118 +#: js/block-verbose.js:1623 +#: js/block.js:1587 +#: js/lilypond.js:749 +#: js/lilypond.js:913 +#: js/lilypond.js:951 +#: js/logo.js:1184 +#: js/blocks/ActionBlocks.js:1223 +#: js/blocks/ProgramBlocks.js:1267 +msgid "start" +msgstr "" + +#: js/turtledefs.js:40 +#.TRANS: put the URL to the guide here, e.g., https://github.com/sugarlabs/turtleblocksjs/tree/master/guide/README.md +msgid "guide url" +msgstr "" + +#: js/turtledefs.js:85 +#: js/turtledefs.js:437 +msgid "Turtle Blocks is a Logo-inspired turtle that draws colorful pictures with snap-together visual-programming blocks." +msgstr "" + +#: js/turtledefs.js:118 +#: js/turtledefs.js:220 +msgid "search" +msgstr "" + +#: js/turtledefs.js:120 +#: js/turtledefs.js:222 +#: js/blocks/MeterBlocks.js:1343 +#: js/blocks/WidgetBlocks.js:522 +#.TRANS: musical meter (time signature), e.g., 4:4 +msgid "meter" +msgstr "" + +#: js/turtledefs.js:122 +#: js/turtledefs.js:224 +msgid "intervals" +msgstr "" + +#: js/turtledefs.js:124 +#: js/turtledefs.js:226 +msgid "ornament" +msgstr "" + +#: js/turtledefs.js:125 +#: js/turtledefs.js:227 +#: js/blocks/VolumeBlocks.js:362 +#: js/blocks/VolumeBlocks.js:502 +#: js/blocks/VolumeBlocks.js:545 +msgid "volume" +msgstr "" + +#: js/turtledefs.js:126 +#: js/turtledefs.js:228 +#: js/block-verbose.js:1700 +#: js/block-verbose.js:2626 +#: js/block.js:1664 +#: js/block.js:2554 +#: js/lilypond.js:732 +#: js/lilypond.js:897 +#: js/lilypond.js:941 +#: js/palette.js:577 +#: js/blocks/RhythmBlocks.js:766 +#: js/blocks/DrumBlocks.js:477 +#: js/blocks/VolumeBlocks.js:502 +#: js/widgets/phrasemaker.js:1038 +msgid "drum" +msgstr "" + +#: js/turtledefs.js:129 +#: js/turtledefs.js:231 +msgid "boxes" +msgstr "" + +#: js/turtledefs.js:130 +#: js/turtledefs.js:232 +msgid "widgets" +msgstr "" + +#: js/turtledefs.js:131 +#: js/turtledefs.js:233 +#: js/widgets/phrasemaker.js:1039 +msgid "graphics" +msgstr "" + +#: js/turtledefs.js:134 +#: js/turtledefs.js:236 +msgid "boolean" +msgstr "" + +#: js/turtledefs.js:137 +#: js/turtledefs.js:239 +#: js/blocks/HeapBlocks.js:59 +#: js/widgets/status.js:147 +msgid "heap" +msgstr "" + +#: js/turtledefs.js:138 +#: js/turtledefs.js:240 +#: js/blocks/DictBlocks.js:142 +#: js/blocks/ProgramBlocks.js:495 +msgid "dictionary" +msgstr "" + +#: js/turtledefs.js:139 +#: js/turtledefs.js:241 +msgid "ensemble" +msgstr "" + +#: js/turtledefs.js:140 +#: js/turtledefs.js:242 +msgid "extras" +msgstr "" + +#: js/turtledefs.js:142 +#: js/turtledefs.js:244 +#.TRANS: program as in computer program +#.TRANS: program as in computer program +msgid "program" +msgstr "" + +#: js/turtledefs.js:143 +#: js/turtledefs.js:245 +msgid "my blocks" +msgstr "" + +#: js/turtledefs.js:185 +#: js/turtledefs.js:281 +msgid "artwork" +msgstr "" + +#: js/turtledefs.js:185 +#: js/turtledefs.js:281 +msgid "logic" +msgstr "" + +#: js/turtledefs.js:185 +#: js/turtledefs.js:281 +msgid "music" +msgstr "" + +#: js/turtledefs.js:187 +#: js/turtledefs.js:463 +msgid "Music Blocks is a collection of tools for exploring fundamental musical concepts in a fun way." +msgstr "" + +#: js/turtledefs.js:436 +msgid "Welcome to Turtle Blocks" +msgstr "" + +#: js/turtledefs.js:438 +#: js/turtledefs.js:465 +#: js/turtledefs.js:774 +#: js/turtledefs.js:805 +msgid "The current version is" +msgstr "" + +#: js/turtledefs.js:446 +#: js/turtledefs.js:483 +msgid "Click the run button to run the project in fast mode." +msgstr "" + +#: js/turtledefs.js:452 +msgid "Stop the turtle." +msgstr "" + +#: js/turtledefs.js:454 +#: js/turtledefs.js:491 +msgid "You can also type Alt-S to stop." +msgstr "" + +#: js/turtledefs.js:462 +#: js/widgets/help.js:333 +msgid "Welcome to Music Blocks" +msgstr "" + +#: js/turtledefs.js:472 +#: js/widgets/help.js:334 +msgid "Meet Mr. Mouse!" +msgstr "" + +#: js/turtledefs.js:473 +msgid "Mr Mouse is our Music Blocks conductor." +msgstr "" + +#: js/turtledefs.js:475 +msgid "Mr Mouse encourages you to explore Music Blocks." +msgstr "" + +#: js/turtledefs.js:477 +msgid "Let us start our tour!" +msgstr "" + +#: js/turtledefs.js:489 +msgid "Stop the music (and the mice)." +msgstr "" + +#: js/turtledefs.js:499 +msgid "Record your project as video." +msgstr "" + +#: js/turtledefs.js:505 +msgid "Toggle Fullscreen mode." +msgstr "" + +#: js/turtledefs.js:511 +msgid "Initialize a new project." +msgstr "" + +#: js/turtledefs.js:517 +msgid "You can also load projects from the file system." +msgstr "" + +#: js/turtledefs.js:522 +#: planet/js/StringHelper.js:46 +msgid "Delete" +msgstr "" + +#: js/turtledefs.js:523 +msgid "To delete a block, just right-click on it, then you will be able to see the delete option" +msgstr "" + +#: js/turtledefs.js:528 +#: js/activity.js:2649 +#: planet/js/LocalCard.js:31 +msgid "Copy" +msgstr "" + +#: js/turtledefs.js:529 +msgid "To copy a block, just right-click on it, then you will be able to see the copy option" +msgstr "" + +#: js/turtledefs.js:534 +#: js/piemenus.js:3411 +msgid "Extract" +msgstr "" + +#: js/turtledefs.js:535 +msgid "To extract a block, just right-click on it, then you will be able to see the extract option" +msgstr "" + +#: js/turtledefs.js:542 +#: js/turtledefs.js:552 +#: js/turtledefs.js:573 +msgid "Save your project to a file." +msgstr "" + +#: js/turtledefs.js:549 +#: js/turtledefs.js:570 +msgid "save" +msgstr "" + +#: js/turtledefs.js:556 +#: js/turtledefs.js:577 +msgid "Save graphics from your project to as SVG." +msgstr "" + +#: js/turtledefs.js:560 +#: js/turtledefs.js:581 +msgid "Save graphics from your project as PNG." +msgstr "" + +#: js/turtledefs.js:564 +#: js/turtledefs.js:597 +msgid "Save block artwork as an SVG file." +msgstr "" + +#: js/turtledefs.js:585 +msgid "Save audio from your project as WAV." +msgstr "" + +#: js/turtledefs.js:589 +msgid "Save your project to as an ABC file." +msgstr "" + +#: js/turtledefs.js:593 +msgid "Save your project to as a Lilypond file." +msgstr "" + +#: js/turtledefs.js:604 +msgid "Load samples from server" +msgstr "" + +#: js/turtledefs.js:605 +msgid "This button opens a viewer for loading example projects." +msgstr "" + +#: js/turtledefs.js:611 +msgid "Palette buttons" +msgstr "" + +#: js/turtledefs.js:612 +msgid "This toolbar contains the palette buttons including Rhythm Pitch Tone Action and more." +msgstr "" + +#: js/turtledefs.js:614 +msgid "Click to show the palettes of blocks and drag blocks from the palettes onto the canvas to use them." +msgstr "" + +#: js/turtledefs.js:620 +msgid "Cartesian/Polar" +msgstr "" + +#: js/turtledefs.js:621 +msgid "Show or hide a coordinate grid." +msgstr "" + +#: js/turtledefs.js:626 +#: js/turtles.js:902 +msgid "Clean" +msgstr "" + +#: js/turtledefs.js:627 +msgid "Clear the screen and return the mice to their initial positions." +msgstr "" + +#: js/turtledefs.js:632 +#: js/turtles.js:955 +msgid "Collapse" +msgstr "" + +#: js/turtledefs.js:633 +msgid "Collapse the graphics window." msgstr "" -#: js/palette.js:571 -msgid "grid" +#: js/turtledefs.js:638 +#: js/activity.js:5684 +msgid "Home" msgstr "" -#: js/palette.js:577 -#: js/block.js:1540 -#: js/block.js:2343 -#: js/turtledefs.js:126 -#: js/turtledefs.js:228 -#: js/lilypond.js:740 -#: js/lilypond.js:905 -#: js/lilypond.js:949 -#: js/DrumBlocks.js:486 -#: js/RhythmBlocks.js:766 -#: js/VolumeBlocks.js:502 -#: js/phrasemaker.js:823 -msgid "drum" +#: js/turtledefs.js:639 +msgid "Return all blocks to the center of the screen." msgstr "" -#: js/palette.js:580 -msgid "effect" +#: js/turtledefs.js:644 +msgid "Show/hide blocks" msgstr "" -#: js/palette.js:586 -msgid "sargam" +#: js/turtledefs.js:645 +msgid "Hide or show the blocks and the palettes." msgstr "" -#: js/palette.js:589 -#: js/activity.js:1833 -#: js/RhythmBlocks.js:923 -#: js/PitchBlocks.js:442 -#: js/PitchBlocks.js:1748 -#.TRANS: a numeric mapping of the notes in an octave based on the musical mode -msgid "scale degree" +#: js/turtledefs.js:650 +msgid "Expand/collapse collapsable blocks" msgstr "" -#: js/palette.js:592 -#: js/activity.js:1860 -msgid "mode name" +#: js/turtledefs.js:651 +msgid "Expand or collapse start and action stacks." msgstr "" -#: js/palette.js:595 -#: js/activity.js:1839 -msgid "invert mode" +#: js/turtledefs.js:658 +#: js/activity.js:5704 +msgid "Decrease block size" msgstr "" -#: js/palette.js:598 -#: js/activity.js:1836 -msgid "voice name" +#: js/turtledefs.js:659 +msgid "Decrease the size of the blocks." msgstr "" -#: js/palette.js:601 -#: js/PitchBlocks.js:1181 -msgid "custom pitch" +#: js/turtledefs.js:664 +#: js/activity.js:5710 +msgid "Increase block size" msgstr "" -#: js/palette.js:605 -#: js/block.js:1456 -#: js/block.js:1575 -#: js/WidgetBlocks.js:218 -#: js/IntervalsBlocks.js:63 -msgid "temperament" +#: js/turtledefs.js:665 +msgid "Increase the size of the blocks." msgstr "" -#: js/palette.js:609 -msgid "accidental" +#: js/turtledefs.js:670 +msgid "Expand/collapse option toolbar" msgstr "" -#: js/palette.js:615 -#: js/activity.js:1866 -msgid "interval name" +#: js/turtledefs.js:671 +msgid "Click this button to expand or collapse the auxillary toolbar." msgstr "" -#: js/palette.js:633 -#: js/PitchBlocks.js:405 -msgid "pitch converter" +#: js/turtledefs.js:676 +msgid "Run slow" msgstr "" -#: js/rubrics.js:522 -#: js/turtledefs.js:119 -#: js/turtledefs.js:221 -#: js/RhythmBlockPaletteBlocks.js:52 -#: js/RhythmBlockPaletteBlocks.js:233 -#: js/ProgramBlocks.js:745 -#: js/rhythmruler.js:1670 -#: js/rhythmruler.js:1677 -#: js/rhythmruler.js:1745 -#: js/rhythmruler.js:1752 -#: js/rhythmruler.js:1830 -#.TRANS: an arrangement of notes based on duration -msgid "rhythm" +#: js/turtledefs.js:677 +msgid "Click to run the project in slow mode." msgstr "" -#: js/rubrics.js:523 -#: js/block.js:2339 -#: js/turtledefs.js:121 -#: js/turtledefs.js:223 -#: js/IntervalsBlocks.js:63 -#: js/PitchBlocks.js:1801 -#: js/PitchBlocks.js:1814 -#: js/SensorsBlocks.js:178 -#: js/phrasemaker.js:821 -#: js/musickeyboard.js:1653 -#.TRANS: pitch number -#.TRANS: we specify pitch in terms of a name and an octave. The name can be CDEFGAB or Do Re Mi Fa Sol La Ti. Octave is a number between 1 and 8. -msgid "pitch" +#: js/turtledefs.js:683 +msgid "Click to run the project step by step." msgstr "" -#: js/rubrics.js:524 -#: js/turtledefs.js:123 -#: js/turtledefs.js:225 -msgid "tone" +#: js/turtledefs.js:690 +msgid "Display statistics about your Music project." msgstr "" -#: js/rubrics.js:525 -#: js/lilypond.js:613 -#: js/lilypond.js:912 -#: js/lilypond.js:918 -#: js/lilypond.js:956 -msgid "mouse" +#: js/turtledefs.js:697 +msgid "Delete a selected plugin." msgstr "" -#: js/rubrics.js:526 -#: js/turtledefs.js:132 -#: js/turtledefs.js:234 -#: js/phrasemaker.js:825 -msgid "pen" +#: js/turtledefs.js:704 +msgid "Enable scrolling" msgstr "" -#: js/rubrics.js:527 -#: js/turtledefs.js:133 -#: js/turtledefs.js:235 -#: js/NumberBlocks.js:905 -#: js/PitchBlocks.js:1679 -#: js/PitchBlocks.js:1720 -msgid "number" +#: js/turtledefs.js:705 +msgid "You can scroll the blocks on the canvas." msgstr "" -#: js/rubrics.js:528 -#: js/turtledefs.js:127 -#: js/turtledefs.js:229 -msgid "flow" +#: js/turtledefs.js:714 +msgid "Wrap Turtle" msgstr "" -#: js/rubrics.js:530 -#: js/turtledefs.js:136 -#: js/turtledefs.js:238 -msgid "sensors" +#: js/turtledefs.js:715 +msgid "Turn Turtle wrapping On or Off." msgstr "" -#: js/rubrics.js:531 -#: js/turtledefs.js:135 -#: js/turtledefs.js:237 -#: js/MediaBlocks.js:930 -msgid "media" +#: js/turtledefs.js:725 +msgid "Restore blocks from the trash." msgstr "" -#: js/rubrics.js:532 -msgid "mice" +#: js/turtledefs.js:732 +msgid "Switch mode" msgstr "" -#: js/macros.js:711 -#: js/musicutils.js:783 -#: js/synthutils.js:181 -#.TRANS: animal sound effect -msgid "duck" +#: js/turtledefs.js:733 +msgid "Switch between beginner and advance modes." msgstr "" -#: js/toolbar.js:46 -#: js/toolbar.js:107 -msgid "About Music Blocks" +#: js/turtledefs.js:739 +msgid "Select your language preference." msgstr "" -#: js/toolbar.js:47 -#: js/toolbar.js:108 -#: js/toolbar.js:172 -#: js/toolbar.js:228 -#: js/turtledefs.js:445 -#: js/turtledefs.js:482 -#: js/activity.js:2281 -#: js/activity.js:2289 -#: js/activity.js:2520 -#: js/modewidget.js:77 -#: js/pitchstaircase.js:121 -#: js/phrasemaker.js:302 -#: js/phrasemaker.js:312 -#: js/phrasemaker.js:314 -#: js/phrasemaker.js:3901 -#: js/phrasemaker.js:4061 -#: js/phrasemaker.js:4066 -#: js/phrasemaker.js:4068 -#: js/phrasemaker.js:4183 -#: js/pitchdrummatrix.js:81 -#: js/pitchdrummatrix.js:574 -#: js/pitchdrummatrix.js:576 -#: js/pitchdrummatrix.js:628 -#: js/pitchdrummatrix.js:630 -#: js/pitchdrummatrix.js:645 -#: js/pitchdrummatrix.js:647 -#: js/pitchdrummatrix.js:674 -#: js/pitchdrummatrix.js:676 -#: js/temperament.js:477 -#: js/temperament.js:480 -#: js/temperament.js:540 -#: js/temperament.js:542 -#: js/temperament.js:1835 -#: js/temperament.js:1837 -#: js/temperament.js:1986 -#: js/temperament.js:1988 -#: js/musickeyboard.js:522 -#: js/musickeyboard.js:682 -#: js/musickeyboard.js:684 -#: js/musickeyboard.js:756 -#: js/musickeyboard.js:758 -#: js/rhythmruler.js:298 -#: js/rhythmruler.js:300 -#: js/rhythmruler.js:314 -#: js/rhythmruler.js:316 -#: js/sampler.js:96 -#: js/sampler.js:98 -#: js/sampler.js:229 -#: js/sampler.js:235 -#: js/sampler.js:237 -#: js/tempo.js:84 -#: js/tempo.js:86 -#: js/timbre.js:432 -#: js/timbre.js:434 -#: js/timbre.js:465 -#: js/timbre.js:467 -#: js/timbre.js:746 -#: js/meterwidget.js:80 -#: js/arpeggio.js:90 -#: js/arpeggio.js:547 -#: js/arpeggio.js:549 -#: js/arpeggio.js:644 -#: js/arpeggio.js:646 -msgid "Play" +#: js/turtledefs.js:745 +msgid "Keyboard shortcuts" msgstr "" -#: js/toolbar.js:48 -#: js/toolbar.js:109 -#: js/toolbar.js:173 -#: js/toolbar.js:229 -#: js/turtledefs.js:451 -#: js/turtledefs.js:488 -#: js/activity.js:2297 -#: js/modewidget.js:99 -#: js/modewidget.js:101 -#: js/phrasemaker.js:323 -#: js/phrasemaker.js:325 -#: js/pitchdrummatrix.js:561 -#: js/pitchdrummatrix.js:563 -#: js/temperament.js:1820 -#: js/temperament.js:1822 -#: js/meterwidget.js:101 -#: js/meterwidget.js:103 -#: js/arpeggio.js:534 -#: js/arpeggio.js:536 -msgid "Stop" +#: js/turtledefs.js:746 +msgid "You can type d to create a do block and r to create a re block etc." msgstr "" -#: js/toolbar.js:49 -#: js/toolbar.js:110 -#: js/toolbar.js:174 -#: js/toolbar.js:230 -#: js/turtledefs.js:498 -msgid "Record" +#: js/turtledefs.js:753 +msgid "Show these messages." msgstr "" -#: js/toolbar.js:50 -#: js/toolbar.js:51 -msgid "Full screen" +#: js/turtledefs.js:759 +#: js/turtledefs.js:790 +#: js/widgets/help.js:335 +msgid "Guide" msgstr "" -#: js/toolbar.js:52 -#: js/toolbar.js:112 -#: js/toolbar.js:177 -#: js/toolbar.js:232 -#: js/turtledefs.js:504 -msgid "Toggle Fullscreen" +#: js/turtledefs.js:760 +msgid "A detailed guide to Turtle Blocks is available." msgstr "" -#: js/toolbar.js:53 -#: js/toolbar.js:113 -#: js/toolbar.js:178 -#: js/toolbar.js:233 -#: js/turtledefs.js:510 -#: js/StringHelper.js:33 -msgid "New project" +#: js/turtledefs.js:764 +msgid "Turtle Blocks Guide" msgstr "" -#: js/toolbar.js:54 -#: js/toolbar.js:114 -#: js/toolbar.js:179 -#: js/toolbar.js:234 -#: js/turtledefs.js:516 -msgid "Load project from file" +#: js/turtledefs.js:767 +#: js/turtledefs.js:798 +#: js/widgets/help.js:336 +msgid "About" msgstr "" -#: js/toolbar.js:55 -#: js/toolbar.js:115 -#: js/toolbar.js:116 -#: js/toolbar.js:180 -#: js/toolbar.js:235 -#: js/turtledefs.js:541 -#: js/turtledefs.js:550 -#: js/turtledefs.js:571 -msgid "Save project" +#: js/turtledefs.js:768 +msgid "Turtle Blocks is an open source collection of tools for exploring musical concepts." msgstr "" -#: js/toolbar.js:56 -#: js/toolbar.js:75 -#: js/toolbar.js:77 -#: js/toolbar.js:135 -#: js/toolbar.js:144 -#: js/toolbar.js:146 -#: js/toolbar.js:181 -#: js/toolbar.js:199 -#: js/toolbar.js:201 -#: js/toolbar.js:236 -#: js/toolbar.js:254 -#: js/toolbar.js:256 -msgid "Save project as HTML" +#: js/turtledefs.js:770 +msgid "A full list of contributors can be found in the Turtle Blocks GitHub repository." +msgstr "" + +#: js/turtledefs.js:772 +msgid "Turtle Blocks is licensed under the AGPL." +msgstr "" + +#: js/turtledefs.js:780 +msgid "Turtle Blocks GitHub repository" +msgstr "" + +#: js/turtledefs.js:783 +#: js/turtledefs.js:814 +#: js/widgets/help.js:337 +#: js/widgets/help.js:359 +msgid "Congratulations." +msgstr "" + +#: js/turtledefs.js:784 +msgid "You have finished the tour. Please enjoy Turtle Blocks!" +msgstr "" + +#: js/turtledefs.js:791 +msgid "A detailed guide to Music Blocks is available." +msgstr "" + +#: js/turtledefs.js:799 +msgid "Music Blocks is an open source collection of tools for exploring musical concepts." +msgstr "" + +#: js/turtledefs.js:801 +msgid "A full list of contributors can be found in the Music Blocks GitHub repository." +msgstr "" + +#: js/turtledefs.js:803 +msgid "Music Blocks is licensed under the AGPL." +msgstr "" + +#: js/turtledefs.js:811 +msgid "Music Blocks GitHub repository" +msgstr "" + +#: js/turtledefs.js:815 +msgid "You have finished the tour. Please enjoy Music Blocks!" +msgstr "" + +#: js/turtles.js:882 +msgid "Grid" +msgstr "" + +#: js/turtles.js:1024 +msgid "Expand" +msgstr "" + +#: js/block-verbose.js:1616 +#: js/block-verbose.js:1735 +#: js/block.js:1580 +#: js/block.js:1699 +#: js/palette.js:605 +#: js/blocks/IntervalsBlocks.js:63 +#: js/blocks/WidgetBlocks.js:259 +msgid "temperament" +msgstr "" + +#: js/block-verbose.js:1630 +#: js/block.js:1594 +msgid "matrix" msgstr "" -#: js/toolbar.js:57 -#: js/toolbar.js:117 -#: js/toolbar.js:182 -#: js/toolbar.js:237 -msgid "Find and share projects" +#: js/block-verbose.js:1637 +#: js/block.js:1601 +#: js/blocks/WidgetBlocks.js:1509 +#: plugins/rodi.rtp:324 +msgid "status" msgstr "" -#: js/toolbar.js:58 -#: js/toolbar.js:118 -#: js/toolbar.js:183 -#: js/toolbar.js:238 -msgid "Offline. Sharing is unavailable" +#: js/block-verbose.js:1644 +#: js/block.js:1608 +msgid "drum mapper" msgstr "" -#: js/toolbar.js:59 -#: js/toolbar.js:119 -#: js/toolbar.js:184 -#: js/toolbar.js:239 -msgid "Auxiliary menu" +#: js/block-verbose.js:1651 +#: js/block.js:1615 +msgid "ruler" msgstr "" -#: js/toolbar.js:61 -#: js/toolbar.js:121 -#: js/toolbar.js:186 -#: js/toolbar.js:241 -msgid "Run slowly" +#: js/block-verbose.js:1658 +#: js/block.js:1622 +#: js/blocks/WidgetBlocks.js:397 +#.TRANS: timbre is the character or quality of a musical sound +msgid "timbre" msgstr "" -#: js/toolbar.js:62 -#: js/toolbar.js:122 -#: js/toolbar.js:187 -#: js/toolbar.js:242 -#: js/turtledefs.js:682 -msgid "Run step by step" +#: js/block-verbose.js:1665 +#: js/block.js:1629 +msgid "stair" msgstr "" -#: js/toolbar.js:63 -#: js/toolbar.js:123 -#: js/toolbar.js:188 -#: js/toolbar.js:243 -#: js/turtledefs.js:689 -msgid "Display statistics" +#: js/block-verbose.js:1672 +#: js/block.js:1636 +#: js/blocks/WidgetBlocks.js:707 +#.TRANS: the speed at music is should be played. +msgid "tempo" msgstr "" -#: js/toolbar.js:64 -#: js/toolbar.js:124 -#: js/toolbar.js:189 -#: js/toolbar.js:244 -msgid "Load plugin" +#: js/block-verbose.js:1679 +#: js/block-verbose.js:1742 +#: js/block.js:1643 +#: js/block.js:1706 +#: js/blocks/IntervalsBlocks.js:1464 +#.TRANS: mode, e.g., Major in C Major +msgid "mode" msgstr "" -#: js/toolbar.js:65 -#: js/toolbar.js:125 -#: js/toolbar.js:190 -#: js/toolbar.js:245 -#: js/turtledefs.js:696 -msgid "Delete plugin" +#: js/block-verbose.js:1686 +#: js/block.js:1650 +msgid "slider" msgstr "" -#: js/toolbar.js:66 -#: js/toolbar.js:126 -#: js/toolbar.js:191 -#: js/toolbar.js:246 -msgid "Enable horizontal scrolling" +#: js/block-verbose.js:1693 +#: js/block.js:1657 +#: js/blocks/SensorsBlocks.js:1001 +msgid "keyboard" msgstr "" -#: js/toolbar.js:67 -#: js/toolbar.js:127 -#: js/toolbar.js:192 -#: js/toolbar.js:247 -msgid "Disable horizontal scrolling" +#: js/block-verbose.js:1707 +#: js/block.js:1671 +#: js/blocks/WidgetBlocks.js:1190 +#: js/blocks/WidgetBlocks.js:1228 +#.TRANS: widget for subdividing a measure into distinct rhythmic elements +msgid "rhythm maker" msgstr "" -#: js/toolbar.js:68 -#: js/toolbar.js:128 -#: js/toolbar.js:193 -#: js/toolbar.js:248 -#: js/LocalCard.js:54 -#: js/StringHelper.js:71 -msgid "Merge with current project" +#: js/block-verbose.js:1714 +#: js/block-verbose.js:2457 +#: js/block-verbose.js:2514 +#: js/block.js:1678 +#: js/block.js:2385 +#: js/block.js:2442 +#: js/blocks/MeterBlocks.js:1367 +#: js/blocks/OrnamentBlocks.js:220 +#: js/blocks/OrnamentBlocks.js:312 +#: js/blocks/RhythmBlocks.js:33 +#: js/blocks/RhythmBlocks.js:356 +#: js/blocks/RhythmBlocks.js:766 +#: js/blocks/RhythmBlocks.js:806 +#: js/blocks/RhythmBlockPaletteBlocks.js:70 +#: js/blocks/RhythmBlockPaletteBlocks.js:252 +#: js/blocks/RhythmBlockPaletteBlocks.js:485 +#: js/blocks/RhythmBlockPaletteBlocks.js:554 +#: js/blocks/RhythmBlockPaletteBlocks.js:605 +#: js/blocks/RhythmBlockPaletteBlocks.js:875 +#: js/turtleactions/DictActions.js:85 +#: js/widgets/phrasemaker.js:942 +#: js/widgets/phrasemaker.js:2656 +#: js/widgets/phrasemaker.js:2699 +#: js/widgets/phrasemaker.js:2810 +#.TRANS: the value (e.g., 1/4 note) of the note being played. +msgid "note value" msgstr "" -#: js/toolbar.js:69 -#: js/toolbar.js:129 -msgid "Set Pitch Preview" +#: js/block-verbose.js:1721 +#: js/block-verbose.js:2382 +#: js/block-verbose.js:2405 +#: js/block.js:1685 +#: js/block.js:2310 +#: js/block.js:2333 +#: js/blocks/IntervalsBlocks.js:1071 +#: js/blocks/OrnamentBlocks.js:312 +#.TRANS: calculate a relative step between notes based on semi-tones +msgid "scalar interval" msgstr "" -#: js/toolbar.js:70 -#: js/toolbar.js:130 -#: js/toolbar.js:194 -#: js/toolbar.js:249 -msgid "Toggle JavaScript Editor" +#: js/block-verbose.js:1728 +#: js/block.js:1692 +#: js/blocks/RhythmBlocks.js:148 +msgid "milliseconds" msgstr "" -#: js/toolbar.js:71 -#: js/toolbar.js:131 -#: js/toolbar.js:195 -#: js/toolbar.js:250 -#: js/turtledefs.js:724 -msgid "Restore" +#: js/block-verbose.js:2455 +#: js/block-verbose.js:2459 +#: js/block-verbose.js:2512 +#: js/block-verbose.js:2628 +#: js/block.js:2383 +#: js/block.js:2387 +#: js/block.js:2440 +#: js/block.js:2556 +#: js/blocks/RhythmBlocks.js:712 +#: js/blocks/ProgramBlocks.js:1273 +#: js/widgets/rhythmruler.js:1183 +#: js/widgets/rhythmruler.js:1329 +msgid "silence" msgstr "" -#: js/toolbar.js:72 -#: js/toolbar.js:132 -#: js/toolbar.js:196 -#: js/toolbar.js:251 -msgid "Switch to beginner mode" +#: js/block-verbose.js:2548 +#: js/block-verbose.js:3492 +#: js/block-verbose.js:3509 +#: js/activity.js:2718 +#: js/activity.js:2769 +#: js/block.js:2476 +#: js/block.js:3416 +#: js/block.js:3433 +#: js/utils/musicutils.js:3780 +#: js/utils/musicutils.js:5273 +#.TRANS: the note names must be separated by single spaces +#.TRANS: the note names must be separated by single spaces +#.TRANS: the note names must be separated by single spaces +msgid "ti la sol fa mi re do" msgstr "" -#: js/toolbar.js:73 -#: js/toolbar.js:133 -#: js/toolbar.js:197 -#: js/toolbar.js:252 -msgid "Switch to advanced mode" +#: js/block-verbose.js:2616 +#: js/block.js:2544 +#.TRANS: scalar step +#.TRANS: scalar step +msgid "down" msgstr "" -#: js/toolbar.js:74 -#: js/toolbar.js:134 -#: js/toolbar.js:143 -#: js/toolbar.js:198 -#: js/toolbar.js:253 -#: js/turtledefs.js:738 -msgid "Select language" +#: js/block-verbose.js:2617 +#: js/block.js:2545 +msgid "up" msgstr "" -#: js/toolbar.js:76 -#: js/toolbar.js:79 -#: js/toolbar.js:137 -#: js/turtledefs.js:579 -msgid "Save mouse artwork as PNG" +#: js/block-verbose.js:3026 +#: js/block.js:2950 +msgid "Silence block cannot be removed." msgstr "" -#: js/toolbar.js:78 -#: js/toolbar.js:136 -#: js/turtledefs.js:575 -msgid "Save mouse artwork as SVG" +#: js/block-verbose.js:3824 +#: js/block.js:3748 +#: js/blocks.js:2607 +#: js/blocks.js:3218 +#: js/palette.js:618 +#: js/blocks/BooleanBlocks.js:77 +#: js/blocks/BooleanBlocks.js:167 +#: js/blocks/BooleanBlocks.js:251 +#: js/blocks/BooleanBlocks.js:335 +#: js/blocks/BooleanBlocks.js:433 +#: js/blocks/BooleanBlocks.js:539 +#: js/blocks/BooleanBlocks.js:640 +#: js/blocks/BooleanBlocks.js:741 +#: js/blocks/BooleanBlocks.js:847 +#: js/blocks/BooleanBlocks.js:948 +#: js/blocks/BooleanBlocks.js:1033 +#: js/blocks/SensorsBlocks.js:910 +msgid "true" msgstr "" -#: js/toolbar.js:80 -#: js/toolbar.js:138 -#: js/turtledefs.js:583 -msgid "Save music as WAV" +#: js/block-verbose.js:3824 +#: js/block.js:3748 +#: js/blocks.js:2609 +#: js/blocks.js:3220 +#: js/blocks/BooleanBlocks.js:79 +#: js/blocks/BooleanBlocks.js:169 +#: js/blocks/BooleanBlocks.js:253 +#: js/blocks/BooleanBlocks.js:337 +#: js/blocks/BooleanBlocks.js:435 +#: js/blocks/BooleanBlocks.js:541 +#: js/blocks/BooleanBlocks.js:642 +#: js/blocks/BooleanBlocks.js:743 +#: js/blocks/BooleanBlocks.js:849 +#: js/blocks/BooleanBlocks.js:950 +#: js/blocks/SensorsBlocks.js:912 +msgid "false" msgstr "" -#: js/toolbar.js:81 -#: js/toolbar.js:139 -#: js/turtledefs.js:587 -msgid "Save sheet music as ABC" +#: js/block-verbose.js:3835 +#: js/block-verbose.js:3848 +#: js/block.js:3759 +#: js/block.js:3772 +#: js/blocks/ExtrasBlocks.js:615 +msgid "Cartesian" msgstr "" -#: js/toolbar.js:82 -#: js/toolbar.js:140 -#: js/turtledefs.js:591 -msgid "Save sheet music as Lilypond" +#: js/block-verbose.js:3836 +#: js/block-verbose.js:3849 +#: js/block.js:3760 +#: js/block.js:3773 +#: js/blocks/ExtrasBlocks.js:619 +msgid "polar" msgstr "" -#: js/toolbar.js:83 -msgid "Save sheet music as MusicXML" +#: js/block-verbose.js:3837 +#: js/block-verbose.js:3850 +#: js/block.js:3761 +#: js/block.js:3774 +#: js/blocks/ExtrasBlocks.js:623 +msgid "Cartesian+polar" msgstr "" -#: js/toolbar.js:84 -#: js/toolbar.js:141 -#: js/toolbar.js:149 -#: js/toolbar.js:204 -#: js/toolbar.js:259 -#: js/turtledefs.js:562 -#: js/turtledefs.js:595 -msgid "Save block artwork as SVG" +#: js/block-verbose.js:3838 +#: js/block-verbose.js:3857 +#: js/block.js:3762 +#: js/block.js:3781 +#: js/blocks/ExtrasBlocks.js:652 +msgid "none" msgstr "" -#: js/toolbar.js:85 -#: js/toolbar.js:142 -#: js/toolbar.js:150 -#: js/toolbar.js:205 -#: js/toolbar.js:260 -msgid "Confirm" +#: js/block-verbose.js:3851 +#: js/block.js:3775 +#: js/blocks/ExtrasBlocks.js:628 +msgid "treble" msgstr "" -#: js/toolbar.js:86 -#: js/toolbar.js:151 -#: js/toolbar.js:206 -#: js/toolbar.js:261 -msgid "English (United States)" +#: js/block-verbose.js:3852 +#: js/block.js:3776 +#: js/blocks/ExtrasBlocks.js:632 +msgid "grand staff" msgstr "" -#: js/toolbar.js:87 -#: js/toolbar.js:152 -#: js/toolbar.js:207 -#: js/toolbar.js:262 -msgid "English (United Kingdom)" +#: js/block-verbose.js:3853 +#: js/block.js:3777 +#: js/blocks/ExtrasBlocks.js:636 +msgid "mezzo-soprano" msgstr "" -#: js/toolbar.js:88 -#: js/toolbar.js:153 -#: js/toolbar.js:208 -#: js/toolbar.js:263 -msgid "日本語" +#: js/block-verbose.js:3854 +#: js/block.js:3778 +#: js/blocks/ExtrasBlocks.js:640 +msgid "alto" msgstr "" -#: js/toolbar.js:89 -msgid "한국어" +#: js/block-verbose.js:3855 +#: js/block.js:3779 +#: js/blocks/ExtrasBlocks.js:644 +msgid "tenor" msgstr "" -#: js/toolbar.js:90 -#: js/toolbar.js:155 -#: js/toolbar.js:210 -#: js/toolbar.js:265 -msgid "español" +#: js/block-verbose.js:3856 +#: js/block.js:3780 +#: js/utils/musicutils.js:1115 +#: js/utils/synthutils.js:80 +#: js/blocks/ExtrasBlocks.js:648 +#.TRANS: musical instrument +msgid "bass" msgstr "" -#: js/toolbar.js:91 -#: js/toolbar.js:156 -#: js/toolbar.js:211 -#: js/toolbar.js:266 -msgid "português" +#: js/block-verbose.js:3901 +#: js/block.js:3825 +#: js/blocks.js:2600 +#: js/blocks.js:3211 +msgid "on2" msgstr "" -#: js/toolbar.js:92 -#: js/toolbar.js:157 -#: js/toolbar.js:212 -#: js/toolbar.js:267 -msgid "にほんご" +#: js/block-verbose.js:3903 +#: js/block.js:3827 +#: js/blocks.js:2602 +#: js/blocks.js:3213 +msgid "off" msgstr "" -#: js/toolbar.js:93 -#: js/toolbar.js:158 -#: js/toolbar.js:213 -#: js/toolbar.js:268 -msgid "中文" +#: js/block-verbose.js:4470 +#: js/block.js:4394 +msgid "Not a number" msgstr "" -#: js/toolbar.js:94 -#: js/toolbar.js:159 -#: js/toolbar.js:214 -#: js/toolbar.js:269 -msgid "ภาษาไทย" +#: js/block-verbose.js:4477 +#: js/block.js:4401 +msgid "Octave value must be between 1 and 10." msgstr "" -#: js/toolbar.js:95 -#: js/toolbar.js:160 -#: js/toolbar.js:215 -#: js/toolbar.js:270 -msgid "aymara" +#: js/block-verbose.js:4485 +#: js/block.js:4409 +msgid "Numbers can have at most 10 digits." msgstr "" -#: js/toolbar.js:96 -#: js/toolbar.js:161 -#: js/toolbar.js:216 -#: js/toolbar.js:271 -msgid "quechua" +#: js/activity.js:390 +#: js/activity.js:395 +msgid "Search for blocks" msgstr "" -#: js/toolbar.js:97 -#: js/toolbar.js:162 -#: js/toolbar.js:217 -#: js/toolbar.js:272 -msgid "guarani" +#: js/activity.js:1413 +msgid "Refresh your browser to change to advanced mode." msgstr "" -#: js/toolbar.js:98 -#: js/toolbar.js:163 -#: js/toolbar.js:218 -#: js/toolbar.js:273 -msgid "हिंदी" +#: js/activity.js:1418 +msgid "Refresh your browser to change to beginner mode." msgstr "" -#: js/toolbar.js:99 -#: js/toolbar.js:165 -#: js/toolbar.js:219 -#: js/toolbar.js:275 -msgid "igbo" +#: js/activity.js:1477 +msgid "Catching mice" +msgstr "" + +#: js/activity.js:1478 +msgid "Cleaning the instruments" +msgstr "" + +#: js/activity.js:1479 +msgid "Testing key pieces" +msgstr "" + +#: js/activity.js:1480 +msgid "Sight-reading" +msgstr "" + +#: js/activity.js:1481 +msgid "Combining math and music" msgstr "" -#: js/toolbar.js:100 -#: js/toolbar.js:166 -#: js/toolbar.js:220 -#: js/toolbar.js:276 -msgid "عربى" +#: js/activity.js:1482 +msgid "Generating more blocks" msgstr "" -#: js/toolbar.js:101 -#: js/toolbar.js:164 -#: js/toolbar.js:221 -#: js/toolbar.js:274 -msgid "తెలుగు" +#: js/activity.js:1483 +msgid "Do Re Mi Fa Sol La Ti Do" msgstr "" -#: js/toolbar.js:102 -#: js/toolbar.js:167 -#: js/toolbar.js:222 -#: js/toolbar.js:277 -msgid "עִברִית" +#: js/activity.js:1484 +msgid "Tuning string instruments" msgstr "" -#: js/toolbar.js:111 -#: js/toolbar.js:175 -#: js/toolbar.js:176 -#: js/toolbar.js:231 -msgid "Full Screen" +#: js/activity.js:1485 +msgid "Pressing random keys" msgstr "" -#: js/toolbar.js:145 -#: js/toolbar.js:148 -#: js/toolbar.js:200 -#: js/toolbar.js:203 -#: js/toolbar.js:255 -#: js/toolbar.js:258 -#: js/turtledefs.js:558 -msgid "Save turtle artwork as PNG" +#: js/activity.js:1663 +msgid "plugins will be removed upon restart." msgstr "" -#: js/toolbar.js:147 -#: js/toolbar.js:202 -#: js/toolbar.js:257 -#: js/turtledefs.js:554 -msgid "Save turtle artwork as SVG" +#: js/activity.js:1672 +msgid "show Cartesian" msgstr "" -#: js/toolbar.js:154 -#: js/toolbar.js:209 -#: js/toolbar.js:264 -msgid "한국인" +#: js/activity.js:2211 +#: js/palette.js:589 +#: js/blocks/RhythmBlocks.js:923 +#: js/blocks/PitchBlocks.js:442 +#: js/blocks/PitchBlocks.js:1786 +#.TRANS: a numeric mapping of the notes in an octave based on the musical mode +msgid "scale degree" msgstr "" -#: js/toolbar.js:171 -#: js/toolbar.js:227 -msgid "About Turtle Blocks" +#: js/activity.js:2214 +#: js/palette.js:598 +msgid "voice name" msgstr "" -#: js/toolbar.js:429 -#: js/toolbar.js:440 -msgid "Turtle Wrap Off" +#: js/activity.js:2217 +#: js/palette.js:595 +msgid "invert mode" msgstr "" -#: js/toolbar.js:442 -msgid "Turtle Wrap On" +#: js/activity.js:2220 +msgid "output tools" msgstr "" -#: js/block.js:1470 -msgid "matrix" +#: js/activity.js:2223 +msgid "custom note" msgstr "" -#: js/block.js:1477 -#: js/WidgetBlocks.js:1226 -#: plugins/rodi.rtp:324 -msgid "status" +#: js/activity.js:2226 +msgid "accidental name" msgstr "" -#: js/block.js:1484 -msgid "drum mapper" +#: js/activity.js:2229 +#: js/blocks/PitchBlocks.js:855 +msgid "east indian solfege" msgstr "" -#: js/block.js:1491 -msgid "ruler" +#: js/activity.js:2232 +#: js/blocks/PitchBlocks.js:869 +msgid "note name" msgstr "" -#: js/block.js:1498 -#: js/WidgetBlocks.js:327 -#.TRANS: timbre is the character or quality of a musical sound -msgid "timbre" +#: js/activity.js:2235 +#: js/blocks/IntervalsBlocks.js:94 +msgid "temperament name" msgstr "" -#: js/block.js:1505 -msgid "stair" +#: js/activity.js:2238 +#: js/palette.js:592 +msgid "mode name" msgstr "" -#: js/block.js:1512 -#: js/WidgetBlocks.js:577 -#.TRANS: the speed at music is should be played. -msgid "tempo" +#: js/activity.js:2241 +msgid "chord name" msgstr "" -#: js/block.js:1519 -#: js/block.js:1582 -#: js/IntervalsBlocks.js:1268 -#.TRANS: mode, e.g., Major in C Major -msgid "mode" +#: js/activity.js:2244 +#: js/palette.js:615 +msgid "interval name" msgstr "" -#: js/block.js:1526 -msgid "slider" +#: js/activity.js:2247 +msgid "filter type" msgstr "" -#: js/block.js:1533 -#: js/SensorsBlocks.js:1001 -msgid "keyboard" +#: js/activity.js:2250 +msgid "oscillator type" msgstr "" -#: js/block.js:1547 -#: js/WidgetBlocks.js:957 -#: js/WidgetBlocks.js:988 -#.TRANS: widget for subdividing a measure into distinct rhythmic elements -msgid "rhythm maker" +#: js/activity.js:2253 +#: js/blocks.js:2479 +#: js/blocks.js:2487 +msgid "audio file" msgstr "" -#: js/block.js:1554 -#: js/block.js:2182 -#: js/block.js:2236 -#: js/RhythmBlockPaletteBlocks.js:70 -#: js/RhythmBlockPaletteBlocks.js:251 -#: js/RhythmBlockPaletteBlocks.js:484 -#: js/RhythmBlockPaletteBlocks.js:553 -#: js/RhythmBlockPaletteBlocks.js:604 -#: js/RhythmBlockPaletteBlocks.js:874 -#: js/RhythmBlocks.js:33 -#: js/RhythmBlocks.js:356 -#: js/RhythmBlocks.js:766 -#: js/RhythmBlocks.js:806 -#: js/OrnamentBlocks.js:220 -#: js/OrnamentBlocks.js:312 -#: js/MeterBlocks.js:1367 -#: js/DictActions.js:85 -#: js/phrasemaker.js:731 -#: js/phrasemaker.js:2393 -#: js/phrasemaker.js:2436 -#: js/phrasemaker.js:2534 -#.TRANS: the value (e.g., 1/4 note) of the note being played. -msgid "note value" +#: js/activity.js:2256 +#: js/blocks/DrumBlocks.js:32 +msgid "noise name" msgstr "" -#: js/block.js:1561 -#: js/block.js:2110 -#: js/block.js:2133 -#: js/IntervalsBlocks.js:875 -#: js/OrnamentBlocks.js:312 -#.TRANS: calculate a relative step between notes based on semi-tones -msgid "scalar interval" +#: js/activity.js:2259 +#: js/blocks/DrumBlocks.js:75 +msgid "drum name" msgstr "" -#: js/block.js:1568 -#: js/RhythmBlocks.js:148 -msgid "milliseconds" +#: js/activity.js:2262 +#: js/blocks/DrumBlocks.js:119 +msgid "effects name" msgstr "" -#: js/block.js:2180 -#: js/block.js:2184 -#: js/block.js:2234 -#: js/block.js:2345 -#: js/ProgramBlocks.js:1273 -#: js/RhythmBlocks.js:712 -#: js/rhythmruler.js:834 -#: js/rhythmruler.js:961 -msgid "silence" +#: js/activity.js:2265 +msgid "wrap mode" msgstr "" -#: js/block.js:2265 -#: js/block.js:3134 -#: js/block.js:3151 -#: js/activity.js:2336 -#: js/activity.js:2387 -#: js/musicutils.js:2932 -#: js/musicutils.js:4287 -#.TRANS: the note names must be separated by single spaces -#.TRANS: the note names must be separated by single spaces -msgid "ti la sol fa mi re do" +#: js/activity.js:2268 +msgid "load file" msgstr "" -#: js/block.js:2333 -#.TRANS: scalar step -msgid "down" +#: js/activity.js:2435 +#: js/activity.js:5851 +msgid "This block is deprecated." msgstr "" -#: js/block.js:2334 -msgid "up" +#: js/activity.js:2437 +#: js/activity.js:5853 +msgid "Block cannot be found." msgstr "" -#: js/block.js:3477 -#: js/block.js:3490 -#: js/ExtrasBlocks.js:612 -msgid "Cartesian" +#: js/activity.js:2645 +msgid "Saving block artwork" msgstr "" -#: js/block.js:3478 -#: js/block.js:3491 -#: js/ExtrasBlocks.js:616 -msgid "polar" +#: js/activity.js:2656 +msgid "Erase" msgstr "" -#: js/block.js:3479 -#: js/block.js:3492 -#: js/ExtrasBlocks.js:620 -msgid "Cartesian+polar" +#: js/activity.js:2683 +#: js/activity.js:2705 +msgid "Paste" msgstr "" -#: js/block.js:3480 -#: js/block.js:3499 -#: js/ExtrasBlocks.js:649 -msgid "none" +#: js/activity.js:2687 +msgid "Save block help" msgstr "" -#: js/block.js:3493 -#: js/ExtrasBlocks.js:625 -msgid "treble" +#: js/activity.js:2772 +msgid "Jumping to the bottom of the page." msgstr "" -#: js/block.js:3494 -#: js/ExtrasBlocks.js:629 -msgid "grand staff" +#: js/activity.js:2778 +msgid "Scrolling up." msgstr "" -#: js/block.js:3495 -#: js/ExtrasBlocks.js:633 -msgid "mezzo-soprano" +#: js/activity.js:2783 +msgid "Scrolling down." msgstr "" -#: js/block.js:3496 -#: js/ExtrasBlocks.js:637 -msgid "alto" +#: js/activity.js:2788 +msgid "Extracting block" msgstr "" -#: js/block.js:3497 -#: js/ExtrasBlocks.js:641 -msgid "tenor" +#: js/activity.js:2796 +msgid "Moving block up." msgstr "" -#: js/block.js:3498 -#: js/ExtrasBlocks.js:645 -#: js/musicutils.js:736 -#: js/synthutils.js:64 -#.TRANS: musical instrument -msgid "bass" +#: js/activity.js:2817 +msgid "Moving block down." msgstr "" -#: js/block.js:4075 -msgid "Not a number" +#: js/activity.js:2838 +msgid "Moving block left." msgstr "" -#: js/block.js:4082 -msgid "Octave value must be between 1 and 10." +#: js/activity.js:2855 +msgid "Moving block right." msgstr "" -#: js/block.js:4090 -msgid "Numbers can have at most 10 digits." +#: js/activity.js:2870 +msgid "Jump to home position." msgstr "" -#: js/notation.js:353 -msgid "Lilypond cannot process pickup of " +#: js/activity.js:2897 +msgid "Hide blocks" msgstr "" -#: js/turtledefs.js:40 -#.TRANS: put the URL to the guide here, e.g., https://github.com/sugarlabs/turtleblocksjs/tree/master/guide/README.md -msgid "guide url" +#: js/activity.js:4500 +msgid "Click the run button to run the project." msgstr "" -#: js/turtledefs.js:85 -#: js/turtledefs.js:437 -msgid "Turtle Blocks is a Logo-inspired turtle that draws colorful pictures with snap-together visual-programming blocks." +#: js/activity.js:5692 +msgid "Show/hide block" msgstr "" -#: js/turtledefs.js:118 -#: js/turtledefs.js:220 -msgid "search" +#: js/activity.js:5698 +msgid "Expand/collapse blocks" msgstr "" -#: js/turtledefs.js:120 -#: js/turtledefs.js:222 -#: js/WidgetBlocks.js:437 -#: js/MeterBlocks.js:1343 -#.TRANS: musical meter (time signature), e.g., 4:4 -msgid "meter" +#: js/activity.js:5976 +msgid "Could not parse JSON input." msgstr "" -#: js/turtledefs.js:122 -#: js/turtledefs.js:224 -msgid "intervals" +#: js/activity.js:6475 +#: js/activity.js:6580 +#: js/activity.js:6631 +msgid "Cannot load project from the file. Please check the file type." msgstr "" -#: js/turtledefs.js:124 -#: js/turtledefs.js:226 -msgid "ornament" +#: js/activity.js:6917 +msgid "Invalid parameters" msgstr "" -#: js/turtledefs.js:125 -#: js/turtledefs.js:227 -#: js/VolumeBlocks.js:362 -#: js/VolumeBlocks.js:502 -#: js/VolumeBlocks.js:545 -msgid "volume" +#: js/blocks.js:1212 +#: js/blocks.js:3444 +#: js/blocks.js:3834 +#: js/blocks.js:3865 +#: js/blocks.js:3914 +#: js/blocks.js:3949 +#: js/blocks.js:6586 +#: js/palette.js:509 +#: js/palette.js:638 +#: js/palette.js:1105 +#: js/blocks/BoxesBlocks.js:282 +#: js/blocks/BoxesBlocks.js:285 +#: js/blocks/BoxesBlocks.js:405 +#: js/blocks/BoxesBlocks.js:594 +msgid "box" msgstr "" -#: js/turtledefs.js:129 -#: js/turtledefs.js:231 -msgid "boxes" +#: js/blocks.js:1713 +msgid "Consider breaking this stack into parts." msgstr "" -#: js/turtledefs.js:130 -#: js/turtledefs.js:232 -msgid "widgets" +#: js/blocks.js:2472 +#: js/palette.js:653 +#: js/blocks/MediaBlocks.js:602 +msgid "open file" msgstr "" -#: js/turtledefs.js:131 -#: js/turtledefs.js:233 -#: js/phrasemaker.js:824 -msgid "graphics" +#: js/blocks.js:3247 +#: js/palette.js:574 +#: js/blocks/MediaBlocks.js:892 +#: js/blocks/MediaBlocks.js:963 +msgid "text" msgstr "" -#: js/turtledefs.js:134 -#: js/turtledefs.js:236 -msgid "boolean" +#: js/blocks.js:3443 +#: js/palette.js:641 +#: js/palette.js:642 +#: js/blocks/BoxesBlocks.js:514 +msgid "store in box" msgstr "" -#: js/turtledefs.js:137 -#: js/turtledefs.js:239 -#: js/HeapBlocks.js:59 -#: js/status.js:147 -msgid "heap" +#: js/blocks.js:3448 +#: js/blocks.js:3888 +#: js/blocks.js:3923 +#: js/blocks.js:3958 +#: js/blocks.js:5862 +#: js/blocks.js:5883 +#: js/blocks/BoxesBlocks.js:772 +msgid "box1" msgstr "" -#: js/turtledefs.js:138 -#: js/turtledefs.js:240 -#: js/ProgramBlocks.js:495 -#: js/DictBlocks.js:142 -msgid "dictionary" +#: js/blocks.js:3450 +#: js/blocks.js:3890 +#: js/blocks.js:3925 +#: js/blocks.js:3960 +#: js/blocks.js:5864 +#: js/blocks.js:5885 +#: js/blocks/BoxesBlocks.js:663 +msgid "box2" msgstr "" -#: js/turtledefs.js:139 -#: js/turtledefs.js:241 -msgid "ensemble" +#: js/blocks.js:4122 +#: js/palette.js:639 +#: js/palette.js:644 +#: js/palette.js:1041 +#: js/blocks/BoxesBlocks.js:591 +msgid "store in" msgstr "" -#: js/turtledefs.js:140 -#: js/turtledefs.js:242 -msgid "extras" +#: js/blocks.js:4122 +#: js/blocks/BoxesBlocks.js:595 +#: js/blocks/DictBlocks.js:215 +#: js/blocks/DictBlocks.js:289 +#: js/blocks/EnsembleBlocks.js:391 +#: js/blocks/EnsembleBlocks.js:402 +#: js/blocks/MediaBlocks.js:746 +#: js/blocks/PitchBlocks.js:656 +#: js/blocks/PitchBlocks.js:934 +#: js/blocks/PitchBlocks.js:1866 +#: js/blocks/ProgramBlocks.js:390 +#: js/blocks/ProgramBlocks.js:495 +#: js/blocks/ProgramBlocks.js:658 +#: js/blocks/ToneBlocks.js:1025 +msgid "name" msgstr "" -#: js/turtledefs.js:142 -#: js/turtledefs.js:244 -#.TRANS: program as in computer program -#.TRANS: program as in computer program -msgid "program" +#: js/blocks.js:4122 +#: js/blocks/BoxesBlocks.js:75 +#: js/blocks/BoxesBlocks.js:595 +#: js/blocks/DictBlocks.js:289 +#: js/blocks/DictBlocks.js:430 +#: js/blocks/HeapBlocks.js:544 +#: js/blocks/RhythmBlocks.js:1130 +msgid "value" msgstr "" -#: js/turtledefs.js:143 -#: js/turtledefs.js:245 -msgid "my blocks" +#: js/blocks.js:4465 +msgid "Forever loop detected inside a note value block. Unexpected things may happen." msgstr "" -#: js/turtledefs.js:185 -#: js/turtledefs.js:281 -msgid "artwork" +#: js/blocks.js:4988 +msgid "There is no block selected." msgstr "" -#: js/turtledefs.js:185 -#: js/turtledefs.js:281 -msgid "logic" +#: js/blocks.js:5091 +#: js/blocks/MediaBlocks.js:888 +msgid "show" msgstr "" -#: js/turtledefs.js:185 -#: js/turtledefs.js:281 -msgid "music" +#: js/blocks.js:5094 +#: js/blocks/MediaBlocks.js:803 +#.TRANS: Avatar is the image used to determine the appearance of the mouse. +msgid "avatar" msgstr "" -#: js/turtledefs.js:187 -#: js/turtledefs.js:463 -msgid "Music Blocks is a collection of tools for exploring fundamental musical concepts in a fun way." +#: js/blocks.js:5097 +#: js/blocks/ToneBlocks.js:1010 +#: js/widgets/sampler.js:975 +#.TRANS: The sound sample that the user uploads. +msgid "sample" msgstr "" -#: js/turtledefs.js:436 -msgid "Welcome to Turtle Blocks" +#: js/lilypond.js:606 +msgid "brown rat" msgstr "" -#: js/turtledefs.js:438 -#: js/turtledefs.js:465 -#: js/turtledefs.js:774 -#: js/turtledefs.js:805 -msgid "The current version is" +#: js/lilypond.js:607 +msgid "mole" msgstr "" -#: js/turtledefs.js:446 -#: js/turtledefs.js:483 -msgid "Click the run button to run the project in fast mode." +#: js/lilypond.js:608 +msgid "chipmunk" msgstr "" -#: js/turtledefs.js:452 -msgid "Stop the turtle." +#: js/lilypond.js:609 +msgid "red squirrel" msgstr "" -#: js/turtledefs.js:454 -#: js/turtledefs.js:491 -msgid "You can also type Alt-S to stop." +#: js/lilypond.js:610 +msgid "guinea pig" +msgstr "" + +#: js/lilypond.js:611 +msgid "capybara" msgstr "" -#: js/turtledefs.js:462 -#: js/help.js:333 -msgid "Welcome to Music Blocks" +#: js/lilypond.js:612 +msgid "coypu" msgstr "" -#: js/turtledefs.js:472 -#: js/help.js:334 -msgid "Meet Mr. Mouse!" +#: js/lilypond.js:613 +msgid "black rat" msgstr "" -#: js/turtledefs.js:473 -msgid "Mr Mouse is our Music Blocks conductor." +#: js/lilypond.js:614 +msgid "grey squirrel" msgstr "" -#: js/turtledefs.js:475 -msgid "Mr Mouse encourages you to explore Music Blocks." +#: js/lilypond.js:615 +msgid "flying squirrel" msgstr "" -#: js/turtledefs.js:477 -msgid "Let us start our tour!" +#: js/lilypond.js:616 +msgid "bat" msgstr "" -#: js/turtledefs.js:489 -msgid "Stop the music (and the mice)." +#: js/lilypond.js:749 +#: js/lilypond.js:913 +#: js/lilypond.js:951 +#: js/blocks/ActionBlocks.js:1256 +#: js/blocks/ExtrasBlocks.js:556 +msgid "start drum" msgstr "" -#: js/turtledefs.js:499 -msgid "Record your project as video." +#: js/logo.js:61 +msgid "Not a valid pitch name" msgstr "" -#: js/turtledefs.js:505 -msgid "Toggle Fullscreen mode." +#: js/logo.js:507 +#: js/blocks/ProgramBlocks.js:258 +#: js/blocks/ProgramBlocks.js:427 +msgid "You must select a file." msgstr "" -#: js/turtledefs.js:511 -msgid "Initialize a new project." +#: js/logo.js:1696 +msgid "Playback is ready." msgstr "" -#: js/turtledefs.js:517 -msgid "You can also load projects from the file system." +#: js/macros.js:711 +#: js/utils/musicutils.js:1162 +#: js/utils/synthutils.js:202 +#.TRANS: animal sound effect +msgid "duck" msgstr "" -#: js/turtledefs.js:522 -#: js/StringHelper.js:46 -msgid "Delete" +#: js/notation.js:353 +msgid "Lilypond cannot process pickup of " msgstr "" -#: js/turtledefs.js:523 -msgid "To delete a block, just right-click on it, then you will be able to see the delete option" +#: js/palette.js:571 +msgid "grid" msgstr "" -#: js/turtledefs.js:528 -#: js/activity.js:2270 -#: js/LocalCard.js:31 -msgid "Copy" +#: js/palette.js:580 +msgid "effect" msgstr "" -#: js/turtledefs.js:529 -msgid "To copy a block, just right-click on it, then you will be able to see the copy option" +#: js/palette.js:586 +msgid "sargam" msgstr "" -#: js/turtledefs.js:535 -msgid "To extract a block, just right-click on it, then you will be able to see the extract option" +#: js/palette.js:601 +#: js/blocks/PitchBlocks.js:1209 +msgid "custom pitch" msgstr "" -#: js/turtledefs.js:542 -#: js/turtledefs.js:552 -#: js/turtledefs.js:573 -msgid "Save your project to a file." +#: js/palette.js:609 +msgid "accidental" msgstr "" -#: js/turtledefs.js:549 -#: js/turtledefs.js:570 -msgid "save" +#: js/palette.js:633 +#: js/blocks/PitchBlocks.js:405 +msgid "pitch converter" msgstr "" -#: js/turtledefs.js:556 -#: js/turtledefs.js:577 -msgid "Save graphics from your project to as SVG." +#: js/piemenus.js:200 +#: js/utils/musicutils.js:1187 +#: js/utils/musicutils.js:1207 +#: js/widgets/musickeyboard.js:2341 +#: js/widgets/phrasemaker.js:1908 +#: js/widgets/sampler.js:810 +#.TRANS: double sharp is a music term related to pitch +msgid "double sharp" msgstr "" -#: js/turtledefs.js:560 -#: js/turtledefs.js:581 -msgid "Save graphics from your project as PNG." +#: js/piemenus.js:201 +#: js/utils/musicutils.js:1185 +#: js/utils/musicutils.js:1208 +#: js/blocks/PitchBlocks.js:1539 +#: js/turtleactions/PitchActions.js:323 +#: js/widgets/musickeyboard.js:2342 +#: js/widgets/phrasemaker.js:1909 +#: js/widgets/sampler.js:811 +#.TRANS: sharp is a music term related to pitch +#.TRANS: sharp is a half-step up in pitch +msgid "sharp" msgstr "" -#: js/turtledefs.js:564 -#: js/turtledefs.js:597 -msgid "Save block artwork as an SVG file." +#: js/piemenus.js:202 +#: js/utils/musicutils.js:1183 +#: js/utils/musicutils.js:1209 +#: js/widgets/musickeyboard.js:2343 +#: js/widgets/phrasemaker.js:1910 +#: js/widgets/sampler.js:812 +#.TRANS: natural is a music term related to pitch +msgid "natural" msgstr "" -#: js/turtledefs.js:585 -msgid "Save audio from your project as WAV." +#: js/piemenus.js:203 +#: js/utils/musicutils.js:1181 +#: js/utils/musicutils.js:1210 +#: js/blocks/PitchBlocks.js:1498 +#: js/turtleactions/PitchActions.js:326 +#: js/widgets/musickeyboard.js:2344 +#: js/widgets/phrasemaker.js:1911 +#: js/widgets/sampler.js:813 +#.TRANS: flat is a music term related to pitch +#.TRANS: flat is a half-step down in pitch +msgid "flat" msgstr "" -#: js/turtledefs.js:589 -msgid "Save your project to as an ABC file." +#: js/piemenus.js:204 +#: js/utils/musicutils.js:1179 +#: js/utils/musicutils.js:1211 +#: js/widgets/musickeyboard.js:2345 +#: js/widgets/phrasemaker.js:1912 +#: js/widgets/sampler.js:814 +#.TRANS: double flat is a music term related to pitch +msgid "double flat" msgstr "" -#: js/turtledefs.js:593 -msgid "Save your project to as a Lilypond file." +#: js/piemenus.js:2864 +#: js/utils/musicutils.js:1006 +#: js/blocks/PitchBlocks.js:1385 +#.TRANS: unison is a music term related to intervals +#.TRANS: unison means the note is the same as the current note +msgid "unison" msgstr "" -#: js/turtledefs.js:604 -msgid "Load samples from server" +#: js/piemenus.js:3018 +#: js/piemenus.js:3091 +#: js/utils/musicutils.js:1014 +#: js/utils/musicutils.js:1189 +#: js/utils/musicutils.js:1326 +#.TRANS: major is a music term related to intervals and mode +msgid "major" msgstr "" -#: js/turtledefs.js:605 -msgid "This button opens a viewer for loading example projects." +#: js/piemenus.js:3018 +#: js/piemenus.js:3091 +#: js/utils/musicutils.js:1032 +#.TRANS: modal scale for music +msgid "ionian" msgstr "" -#: js/turtledefs.js:611 -msgid "Palette buttons" +#: js/piemenus.js:3020 +#: js/piemenus.js:3095 +#: js/utils/musicutils.js:1012 +#: js/utils/musicutils.js:1190 +#: js/utils/musicutils.js:1323 +#.TRANS: minor is a music term related to intervals and mode +msgid "minor" msgstr "" -#: js/turtledefs.js:612 -msgid "This toolbar contains the palette buttons including Rhythm Pitch Tone Action and more." +#: js/piemenus.js:3020 +#: js/piemenus.js:3095 +#: js/utils/musicutils.js:1042 +#.TRANS: modal scale for music +msgid "aeolian" msgstr "" -#: js/turtledefs.js:614 -msgid "Click to show the palettes of blocks and drag blocks from the palettes onto the canvas to use them." +#: js/piemenus.js:3410 +msgid "Duplicate" msgstr "" -#: js/turtledefs.js:620 -msgid "Cartesian/Polar" +#: js/piemenus.js:3412 +msgid "Move to trash" msgstr "" -#: js/turtledefs.js:621 -msgid "Show or hide a coordinate grid." +#: js/piemenus.js:3413 +#: js/widgets/timbre.js:968 +#: planet/js/StringHelper.js:69 +msgid "Close" msgstr "" -#: js/turtledefs.js:627 -msgid "Clear the screen and return the mice to their initial positions." +#: js/piemenus.js:3419 +msgid "Save stack" msgstr "" -#: js/turtledefs.js:633 -msgid "Collapse the graphics window." +#: js/piemenus.js:3449 +msgid "In order to copy a sample, you must reload the widget, import the sample again, and export it." msgstr "" -#: js/turtledefs.js:638 -#: js/activity.js:4256 -#: js/activity.js:4256 -msgid "Home" +#: js/piemenus.js:3812 +msgid "You have chosen key " msgstr "" -#: js/turtledefs.js:639 -msgid "Return all blocks to the center of the screen." +#: js/piemenus.js:3816 +msgid " for your pitch preview." msgstr "" -#: js/turtledefs.js:644 -msgid "Show/hide blocks" +#: js/turtle-singer.js:1363 +#.TRANS: partials are weighted components in a harmonic series +msgid "You must have at least one Partial block inside of a Weighted-partial block" msgstr "" -#: js/turtledefs.js:645 -msgid "Hide or show the blocks and the palettes." +#: js/turtle-singer.js:2077 +msgid "synth cannot play chords." msgstr "" -#: js/turtledefs.js:650 -msgid "Expand/collapse collapsable blocks" +#: js/utils/musicutils.js:505 +#: js/utils/musicutils.js:645 +#: js/widgets/pitchdrummatrix.js:228 +#: js/widgets/musickeyboard.js:2885 +msgid "rest" msgstr "" -#: js/turtledefs.js:651 -msgid "Expand or collapse start and action stacks." +#: js/utils/musicutils.js:689 +msgid "Perfect unison" msgstr "" -#: js/turtledefs.js:658 -#: js/activity.js:4265 -msgid "Decrease block size" +#: js/utils/musicutils.js:689 +msgid "Diminished second" msgstr "" -#: js/turtledefs.js:659 -msgid "Decrease the size of the blocks." +#: js/utils/musicutils.js:690 +msgid "Minor second" msgstr "" -#: js/turtledefs.js:664 -#: js/activity.js:4267 -msgid "Increase block size" +#: js/utils/musicutils.js:690 +msgid "Augmented unison" msgstr "" -#: js/turtledefs.js:665 -msgid "Increase the size of the blocks." +#: js/utils/musicutils.js:691 +msgid "Major second" msgstr "" -#: js/turtledefs.js:670 -msgid "Expand/collapse option toolbar" +#: js/utils/musicutils.js:691 +msgid "Diminished third" msgstr "" -#: js/turtledefs.js:671 -msgid "Click this button to expand or collapse the auxillary toolbar." +#: js/utils/musicutils.js:692 +msgid "Minor third" msgstr "" -#: js/turtledefs.js:676 -msgid "Run slow" +#: js/utils/musicutils.js:692 +msgid "Augmented second" msgstr "" -#: js/turtledefs.js:677 -msgid "Click to run the project in slow mode." +#: js/utils/musicutils.js:693 +msgid "Major third" msgstr "" -#: js/turtledefs.js:683 -msgid "Click to run the project step by step." +#: js/utils/musicutils.js:693 +msgid "Diminished fourth" msgstr "" -#: js/turtledefs.js:690 -msgid "Display statistics about your Music project." +#: js/utils/musicutils.js:694 +msgid "Perfect fourth" msgstr "" -#: js/turtledefs.js:697 -msgid "Delete a selected plugin." +#: js/utils/musicutils.js:694 +msgid "Augmented third" msgstr "" -#: js/turtledefs.js:704 -msgid "Enable scrolling" +#: js/utils/musicutils.js:695 +msgid "Diminished fifth" msgstr "" -#: js/turtledefs.js:705 -msgid "You can scroll the blocks on the canvas." +#: js/utils/musicutils.js:695 +msgid "Augmented fourth" msgstr "" -#: js/turtledefs.js:714 -msgid "Wrap Turtle" +#: js/utils/musicutils.js:696 +msgid "Perfect fifth" msgstr "" -#: js/turtledefs.js:715 -msgid "Turn Turtle wrapping On or Off." +#: js/utils/musicutils.js:696 +msgid "Diminished sixth" msgstr "" -#: js/turtledefs.js:725 -msgid "Restore blocks from the trash." +#: js/utils/musicutils.js:697 +msgid "Minor sixth" msgstr "" -#: js/turtledefs.js:732 -msgid "Switch mode" +#: js/utils/musicutils.js:697 +msgid "Augmented fifth" msgstr "" -#: js/turtledefs.js:733 -msgid "Switch between beginner and advance modes." +#: js/utils/musicutils.js:698 +msgid "Major sixth" msgstr "" -#: js/turtledefs.js:739 -msgid "Select your language preference." +#: js/utils/musicutils.js:698 +msgid "Diminished seventh" msgstr "" -#: js/turtledefs.js:745 -msgid "Keyboard shortcuts" +#: js/utils/musicutils.js:699 +msgid "Minor seventh" msgstr "" -#: js/turtledefs.js:746 -msgid "You can type d to create a do block and r to create a re block etc." +#: js/utils/musicutils.js:699 +msgid "Augmented sixth" msgstr "" -#: js/turtledefs.js:753 -msgid "Show these messages." +#: js/utils/musicutils.js:700 +msgid "Major seventh" msgstr "" -#: js/turtledefs.js:759 -#: js/turtledefs.js:790 -#: js/help.js:335 -msgid "Guide" +#: js/utils/musicutils.js:700 +msgid "Diminished octave" msgstr "" -#: js/turtledefs.js:760 -msgid "A detailed guide to Turtle Blocks is available." +#: js/utils/musicutils.js:701 +msgid "Perfect octave" msgstr "" -#: js/turtledefs.js:764 -msgid "Turtle Blocks Guide" +#: js/utils/musicutils.js:701 +msgid "Augmented seventh" msgstr "" -#: js/turtledefs.js:767 -#: js/turtledefs.js:798 -#: js/help.js:336 -msgid "About" +#: js/utils/musicutils.js:702 +msgid "Minor ninth" msgstr "" -#: js/turtledefs.js:768 -msgid "Turtle Blocks is an open source collection of tools for exploring musical concepts." +#: js/utils/musicutils.js:702 +msgid "Augmented octave" msgstr "" -#: js/turtledefs.js:770 -msgid "A full list of contributors can be found in the Turtle Blocks GitHub repository." +#: js/utils/musicutils.js:703 +msgid "Major ninth" msgstr "" -#: js/turtledefs.js:772 -msgid "Turtle Blocks is licensed under the AGPL." +#: js/utils/musicutils.js:703 +msgid "Diminished tenth" msgstr "" -#: js/turtledefs.js:780 -msgid "Turtle Blocks GitHub repository" +#: js/utils/musicutils.js:704 +msgid "Minor tenth" msgstr "" -#: js/turtledefs.js:783 -#: js/turtledefs.js:814 -#: js/help.js:337 -#: js/help.js:359 -msgid "Congratulations." +#: js/utils/musicutils.js:704 +msgid "Augmented ninth" msgstr "" -#: js/turtledefs.js:784 -msgid "You have finished the tour. Please enjoy Turtle Blocks!" +#: js/utils/musicutils.js:705 +msgid "Major tenth" msgstr "" -#: js/turtledefs.js:791 -msgid "A detailed guide to Music Blocks is available." +#: js/utils/musicutils.js:705 +msgid "Diminished eleventh" msgstr "" -#: js/turtledefs.js:795 -#: js/SaveInterface.js:76 -msgid "Music Blocks Guide" +#: js/utils/musicutils.js:706 +msgid "Perfect eleventh" msgstr "" -#: js/turtledefs.js:799 -msgid "Music Blocks is an open source collection of tools for exploring musical concepts." +#: js/utils/musicutils.js:706 +msgid "Augmented tenth" msgstr "" -#: js/turtledefs.js:801 -msgid "A full list of contributors can be found in the Music Blocks GitHub repository." +#: js/utils/musicutils.js:707 +msgid "Diminished twelfth" msgstr "" -#: js/turtledefs.js:803 -msgid "Music Blocks is licensed under the AGPL." +#: js/utils/musicutils.js:707 +msgid "Augmented eleventh" msgstr "" -#: js/turtledefs.js:811 -msgid "Music Blocks GitHub repository" +#: js/utils/musicutils.js:708 +msgid "Perfect twelfth" msgstr "" -#: js/turtledefs.js:815 -msgid "You have finished the tour. Please enjoy Music Blocks!" +#: js/utils/musicutils.js:708 +msgid "Diminished thirteenth" msgstr "" -#: js/activity.js:369 -msgid "Search for blocks" +#: js/utils/musicutils.js:709 +msgid "Minor thirteenth" msgstr "" -#: js/activity.js:1145 -msgid "Refresh your browser to change to advanced mode." +#: js/utils/musicutils.js:709 +msgid "Augmented fifth, plus an octave" msgstr "" -#: js/activity.js:1150 -msgid "Refresh your browser to change to beginner mode." +#: js/utils/musicutils.js:710 +msgid "Major thirteenth" msgstr "" -#: js/activity.js:1184 -msgid "Catching mice" +#: js/utils/musicutils.js:710 +msgid "Diminished seventh, plus an octave" msgstr "" -#: js/activity.js:1185 -msgid "Cleaning the instruments" +#: js/utils/musicutils.js:838 +#.TRANS: ordinal number. Please keep exactly one space between each number. +msgid "1st 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th" msgstr "" -#: js/activity.js:1186 -msgid "Testing key pieces" +#: js/utils/musicutils.js:1008 +#: js/utils/musicutils.js:1191 +#: js/utils/musicutils.js:1325 +#.TRANS: augmented is a music term related to intervals +msgid "augmented" msgstr "" -#: js/activity.js:1187 -msgid "Sight-reading" +#: js/utils/musicutils.js:1010 +#: js/utils/musicutils.js:1192 +#: js/utils/musicutils.js:1324 +#.TRANS: diminished is a music term related to intervals and mode +msgid "diminished" msgstr "" -#: js/activity.js:1188 -msgid "Combining math and music" +#: js/utils/musicutils.js:1016 +#: js/utils/musicutils.js:1322 +#: js/blocks/IntervalsBlocks.js:649 +#: js/turtleactions/IntervalsActions.js:120 +#: js/turtleactions/IntervalsActions.js:124 +#.TRANS: perfect is a music term related to intervals +msgid "perfect" +msgstr "" + +#: js/utils/musicutils.js:1018 +#.TRANS: twelve semi-tone scale for music +msgid "chromatic" msgstr "" -#: js/activity.js:1189 -msgid "Generating more blocks" +#: js/utils/musicutils.js:1019 +msgid "algerian" msgstr "" -#: js/activity.js:1190 -msgid "Do Re Mi Fa Sol La Ti Do" +#: js/utils/musicutils.js:1020 +msgid "spanish" msgstr "" -#: js/activity.js:1191 -msgid "Tuning string instruments" +#: js/utils/musicutils.js:1022 +#.TRANS: modal scale in music +msgid "octatonic" msgstr "" -#: js/activity.js:1192 -msgid "Pressing random keys" +#: js/utils/musicutils.js:1024 +#.TRANS: harmonic major scale in music +msgid "harmonic major" msgstr "" -#: js/activity.js:1351 -msgid "plugins will be removed upon restart." +#: js/utils/musicutils.js:1026 +#.TRANS: natural minor scales in music +msgid "natural minor" msgstr "" -#: js/activity.js:1360 -msgid "show Cartesian" +#: js/utils/musicutils.js:1028 +#.TRANS: harmonic minor scale in music +msgid "harmonic minor" msgstr "" -#: js/activity.js:1842 -msgid "output tools" +#: js/utils/musicutils.js:1030 +#.TRANS: melodic minor scale in music +msgid "melodic minor" msgstr "" -#: js/activity.js:1845 -msgid "custom note" +#: js/utils/musicutils.js:1034 +#.TRANS: modal scale for music +msgid "dorian" msgstr "" -#: js/activity.js:1848 -msgid "accidental name" +#: js/utils/musicutils.js:1036 +#.TRANS: modal scale for music +msgid "phrygian" msgstr "" -#: js/activity.js:1851 -#: js/PitchBlocks.js:855 -msgid "east indian solfege" +#: js/utils/musicutils.js:1038 +#.TRANS: modal scale for music +msgid "lydian" msgstr "" -#: js/activity.js:1854 -#: js/PitchBlocks.js:869 -msgid "note name" +#: js/utils/musicutils.js:1040 +#.TRANS: modal scale for music +msgid "mixolydian" msgstr "" -#: js/activity.js:1857 -#: js/IntervalsBlocks.js:94 -msgid "temperament name" +#: js/utils/musicutils.js:1044 +#.TRANS: modal scale for music +msgid "locrian" msgstr "" -#: js/activity.js:1863 -msgid "chord name" +#: js/utils/musicutils.js:1046 +#.TRANS: minor jazz scale for music +msgid "jazz minor" msgstr "" -#: js/activity.js:1869 -msgid "filter type" +#: js/utils/musicutils.js:1048 +#.TRANS: bebop scale for music +msgid "bebop" msgstr "" -#: js/activity.js:1872 -msgid "oscillator type" +#: js/utils/musicutils.js:1049 +msgid "arabic" msgstr "" -#: js/activity.js:1878 -#: js/DrumBlocks.js:32 -msgid "noise name" +#: js/utils/musicutils.js:1050 +msgid "byzantine" msgstr "" -#: js/activity.js:1881 -#: js/DrumBlocks.js:75 -msgid "drum name" +#: js/utils/musicutils.js:1052 +#.TRANS: musical scale for music by Verdi +msgid "enigmatic" msgstr "" -#: js/activity.js:1884 -#: js/DrumBlocks.js:119 -msgid "effects name" +#: js/utils/musicutils.js:1053 +msgid "ethiopian" msgstr "" -#: js/activity.js:1887 -msgid "wrap mode" +#: js/utils/musicutils.js:1055 +#.TRANS: Ethiopic scale for music +msgid "geez" msgstr "" -#: js/activity.js:1890 -msgid "load file" +#: js/utils/musicutils.js:1056 +msgid "hindu" msgstr "" -#: js/activity.js:2056 -msgid "This block is deprecated." +#: js/utils/musicutils.js:1057 +msgid "hungarian" msgstr "" -#: js/activity.js:2058 -msgid "Block cannot be found." +#: js/utils/musicutils.js:1059 +#.TRANS: minor Romanian scale for music +msgid "romanian minor" msgstr "" -#: js/activity.js:2266 -msgid "Saving block artwork" +#: js/utils/musicutils.js:1060 +msgid "spanish gypsy" msgstr "" -#: js/activity.js:2277 -msgid "Erase" +#: js/utils/musicutils.js:1062 +#.TRANS: musical scale for Mid-Eastern music +msgid "maqam" msgstr "" -#: js/activity.js:2301 -#: js/activity.js:2323 -msgid "Paste" +#: js/utils/musicutils.js:1064 +#.TRANS: minor blues scale for music +msgid "minor blues" msgstr "" -#: js/activity.js:2305 -msgid "Save block help" +#: js/utils/musicutils.js:1066 +#.TRANS: major blues scale for music +msgid "major blues" msgstr "" -#: js/activity.js:2390 -msgid "Jumping to the bottom of the page." +#: js/utils/musicutils.js:1067 +msgid "whole tone" msgstr "" -#: js/activity.js:2396 -msgid "Scrolling up." +#: js/utils/musicutils.js:1069 +#.TRANS: pentatonic is a general term that means "five note scale". This scale is typically known as "minor pentatonic" +msgid "minor pentatonic" msgstr "" -#: js/activity.js:2401 -msgid "Scrolling down." +#: js/utils/musicutils.js:1071 +#.TRANS: pentatonic is a general term that means "five note scale". This scale is typically known as "major pentatonic" +msgid "major pentatonic" msgstr "" -#: js/activity.js:2406 -msgid "Extracting block" +#: js/utils/musicutils.js:1072 +msgid "chinese" msgstr "" -#: js/activity.js:2414 -msgid "Moving block up." +#: js/utils/musicutils.js:1073 +msgid "egyptian" msgstr "" -#: js/activity.js:2435 -msgid "Moving block down." +#: js/utils/musicutils.js:1075 +#.TRANS: https://en.wikipedia.org/wiki/Hirajoshi_scale NOTE: There are three different versions of this scale +msgid "hirajoshi" msgstr "" -#: js/activity.js:2456 -msgid "Moving block left." +#: js/utils/musicutils.js:1076 +msgid "Japan" msgstr "" -#: js/activity.js:2473 -msgid "Moving block right." +#: js/utils/musicutils.js:1078 +#.TRANS: https://en.wikipedia.org/wiki/In_scale and https://en.wikipedia.org/wiki/Sakura_Sakura +msgid "in" msgstr "" -#: js/activity.js:2488 -msgid "Jump to home position." +#: js/utils/musicutils.js:1080 +#.TRANS: https://en.wikipedia.org/wiki/Miny%C5%8D_scale +msgid "minyo" msgstr "" -#: js/activity.js:2515 -msgid "Hide blocks" +#: js/utils/musicutils.js:1082 +#.TRANS: Italian mathematician +msgid "fibonacci" msgstr "" -#: js/activity.js:3389 -msgid "Click the run button to run the project." +#: js/utils/musicutils.js:1083 +#: js/utils/musicutils.js:1134 +#: js/utils/musicutils.js:1177 +#: js/utils/musicutils.js:1199 +#: js/utils/synthutils.js:134 +#: js/blocks/IntervalsBlocks.js:1124 +#: js/blocks/ToneBlocks.js:946 +#: js/blocks/VolumeBlocks.js:411 +#: js/blocks/WidgetBlocks.js:399 +#: js/blocks/WidgetBlocks.js:404 +#: js/turtleactions/VolumeActions.js:218 +#: js/widgets/modewidget.js:919 +#.TRANS: customize voice +msgid "custom" msgstr "" -#: js/activity.js:3456 -#: js/SaveInterface.js:131 -#: js/SaveInterface.js:204 -#: js/SaveInterface.js:262 -#: js/SaveInterface.js:389 -#: js/SaveInterface.js:417 -#: js/ProjectStorage.js:27 -#: js/GlobalPlanet.js:467 -#: js/GlobalPlanet.js:469 -#: js/GlobalPlanet.js:495 -#.TRANS: default project title when saving as Lilypond -msgid "My Project" +#: js/utils/musicutils.js:1085 +#: js/utils/musicutils.js:1531 +#: js/blocks/WidgetBlocks.js:176 +#.TRANS: highpass filter +msgid "highpass" msgstr "" -#: js/activity.js:4261 -msgid "Show/hide block" +#: js/utils/musicutils.js:1087 +#: js/utils/musicutils.js:1532 +#.TRANS: lowpass filter +msgid "lowpass" msgstr "" -#: js/activity.js:4263 -msgid "Expand/collapse blocks" +#: js/utils/musicutils.js:1089 +#: js/utils/musicutils.js:1533 +#.TRANS: bandpass filter +msgid "bandpass" msgstr "" -#: js/activity.js:4381 -msgid "Could not parse JSON input." +#: js/utils/musicutils.js:1091 +#: js/utils/musicutils.js:1534 +#.TRANS: high-shelf filter +msgid "highshelf" msgstr "" -#: js/activity.js:4684 -#: js/activity.js:4771 -#: js/activity.js:4821 -msgid "Cannot load project from the file. Please check the file type." +#: js/utils/musicutils.js:1093 +#: js/utils/musicutils.js:1535 +#.TRANS: low-shelf filter +msgid "lowshelf" msgstr "" -#: js/activity.js:5051 -msgid "Invalid parameters" +#: js/utils/musicutils.js:1095 +#: js/utils/musicutils.js:1536 +#.TRANS: notch-shelf filter +msgid "notch" msgstr "" -#: js/turtle-singer.js:1334 -#.TRANS: partials are weighted components in a harmonic series -msgid "You must have at least one Partial block inside of a Weighted-partial block" +#: js/utils/musicutils.js:1097 +#: js/utils/musicutils.js:1537 +#.TRANS: all-pass filter +msgid "allpass" msgstr "" -#: js/turtle-singer.js:2048 -msgid "synth cannot play chords." +#: js/utils/musicutils.js:1099 +#: js/utils/musicutils.js:1538 +#.TRANS: peaking filter +msgid "peaking" msgstr "" -#: js/lilypond.js:614 -msgid "brown rat" +#: js/utils/musicutils.js:1100 +#: js/utils/musicutils.js:1546 +#: js/utils/synthutils.js:126 +#: js/blocks/PitchBlocks.js:85 +#.TRANS: sine wave +msgid "sine" msgstr "" -#: js/lilypond.js:615 -msgid "mole" +#: js/utils/musicutils.js:1101 +#: js/utils/musicutils.js:1547 +#: js/utils/synthutils.js:128 +#: js/blocks/PitchBlocks.js:39 +#.TRANS: square wave +msgid "square" msgstr "" -#: js/lilypond.js:616 -msgid "chipmunk" +#: js/utils/musicutils.js:1102 +#: js/utils/musicutils.js:1548 +#: js/utils/synthutils.js:132 +#: js/blocks/PitchBlocks.js:62 +#: js/blocks/ToneBlocks.js:39 +#.TRANS: triangle wave +msgid "triangle" msgstr "" -#: js/lilypond.js:617 -msgid "red squirrel" +#: js/utils/musicutils.js:1103 +#: js/utils/musicutils.js:1549 +#: js/utils/synthutils.js:130 +#: js/blocks/PitchBlocks.js:108 +#.TRANS: sawtooth wave +msgid "sawtooth" msgstr "" -#: js/lilypond.js:618 -msgid "guinea pig" +#: js/utils/musicutils.js:1105 +#: js/utils/musicutils.js:1312 +#: js/blocks/PitchBlocks.js:931 +#: js/blocks/PitchBlocks.js:937 +#: js/turtleactions/PitchActions.js:469 +#.TRANS: even numbers +#.TRANS: invert based on even or odd number or musical scale +msgid "even" msgstr "" -#: js/lilypond.js:619 -msgid "capybara" +#: js/utils/musicutils.js:1107 +#: js/utils/musicutils.js:1313 +#: js/blocks/PitchBlocks.js:937 +#: js/turtleactions/PitchActions.js:471 +#.TRANS: odd numbers +msgid "odd" msgstr "" -#: js/lilypond.js:620 -msgid "coypu" +#: js/utils/musicutils.js:1108 +#: js/utils/musicutils.js:1314 +#: js/blocks/PitchBlocks.js:937 +#: js/turtleactions/PitchActions.js:473 +msgid "scalar" msgstr "" -#: js/lilypond.js:621 -msgid "black rat" +#: js/utils/musicutils.js:1109 +#: js/utils/synthutils.js:72 +#: js/blocks/VolumeBlocks.js:47 +#.TRANS: musical instrument +msgid "piano" msgstr "" -#: js/lilypond.js:622 -msgid "grey squirrel" +#: js/utils/musicutils.js:1110 +#: js/utils/synthutils.js:74 +#.TRANS: musical instrument +msgid "violin" msgstr "" -#: js/lilypond.js:623 -msgid "flying squirrel" +#: js/utils/musicutils.js:1111 +#: js/utils/synthutils.js:76 +#.TRANS: viola musical instrument +msgid "viola" msgstr "" -#: js/lilypond.js:624 -msgid "bat" +#: js/utils/musicutils.js:1112 +#: js/utils/synthutils.js:114 +#.TRANS: xylophone musical instrument +msgid "xylophone" msgstr "" -#: js/lilypond.js:757 -#: js/lilypond.js:921 -#: js/lilypond.js:959 -#: js/ActionBlocks.js:1256 -#: js/ExtrasBlocks.js:553 -msgid "start drum" +#: js/utils/musicutils.js:1113 +#: js/utils/synthutils.js:136 +#.TRANS: vibraphone musical instrument +msgid "vibraphone" msgstr "" -#: js/SaveInterface.js:59 -#: js/SaveInterface.js:61 -#: js/SaveInterface.js:93 -msgid "Music Blocks Project" +#: js/utils/musicutils.js:1114 +#: js/utils/synthutils.js:78 +#.TRANS: musical instrument +msgid "cello" msgstr "" -#: js/SaveInterface.js:63 -msgid "This project was created in Music Blocks" +#: js/utils/musicutils.js:1116 +#: js/utils/synthutils.js:82 +#.TRANS: viola musical instrument +msgid "double bass" msgstr "" -#: js/SaveInterface.js:67 -msgid "Music Blocks is a Free/Libre Software application." +#: js/utils/musicutils.js:1117 +#: js/utils/synthutils.js:84 +#: js/widgets/rhythmruler.js:2511 +#.TRANS: musical instrument +msgid "guitar" msgstr "" -#: js/SaveInterface.js:69 -msgid "The source code can be accessed at" +#: js/utils/musicutils.js:1118 +#: js/utils/synthutils.js:86 +#.TRANS: musical instrument +msgid "acoustic guitar" msgstr "" -#: js/SaveInterface.js:72 -msgid "For more information, please consult the" +#: js/utils/musicutils.js:1119 +#: js/utils/synthutils.js:88 +#.TRANS: musical instrument +msgid "flute" msgstr "" -#: js/SaveInterface.js:83 -msgid "Alternatively, open the file in Music Blocks using the Load project button." +#: js/utils/musicutils.js:1120 +#: js/utils/synthutils.js:90 +#.TRANS: musical instrument +msgid "clarinet" msgstr "" -#: js/SaveInterface.js:85 -msgid "Project Code" +#: js/utils/musicutils.js:1121 +#: js/utils/synthutils.js:92 +#.TRANS: musical instrument +msgid "saxophone" msgstr "" -#: js/SaveInterface.js:87 -msgid "This code stores data about the blocks in a project." +#: js/utils/musicutils.js:1122 +#: js/utils/synthutils.js:94 +#.TRANS: musical instrument +msgid "tuba" msgstr "" -#: js/SaveInterface.js:89 -msgid "Show" +#: js/utils/musicutils.js:1123 +#: js/utils/synthutils.js:96 +#.TRANS: musical instrument +msgid "trumpet" msgstr "" -#: js/SaveInterface.js:91 -msgid "Hide" +#: js/utils/musicutils.js:1124 +#: js/utils/synthutils.js:98 +#.TRANS: musical instrument +msgid "oboe" msgstr "" -#: js/SaveInterface.js:197 -#: js/SaveInterface.js:58 -msgid "No description provided" +#: js/utils/musicutils.js:1125 +#: js/utils/synthutils.js:100 +#.TRANS: musical instrument +msgid "trombone" msgstr "" -#: js/SaveInterface.js:332 -msgid "Your recording is in progress." +#: js/utils/musicutils.js:1126 +#: js/utils/synthutils.js:116 +#.TRANS: polytone synthesizer +msgid "electronic synth" msgstr "" -#: js/SaveInterface.js:401 -#.TRANS: File name prompt for save as Lilypond -msgid "File name" +#: js/utils/musicutils.js:1127 +#: js/utils/synthutils.js:118 +#.TRANS: simple monotone synthesizer +msgid "simple 1" msgstr "" -#: js/SaveInterface.js:403 -#: js/StringHelper.js:39 -#.TRANS: Project title prompt for save as Lilypond -msgid "Project title" +#: js/utils/musicutils.js:1128 +msgid "simple 2" msgstr "" -#: js/SaveInterface.js:405 -#.TRANS: Project title prompt for save as Lilypond -msgid "Project author" +#: js/utils/musicutils.js:1129 +msgid "simple 3" msgstr "" -#: js/SaveInterface.js:407 -#.TRANS: MIDI prompt for save as Lilypond -msgid "Include MIDI output?" +#: js/utils/musicutils.js:1130 +msgid "simple 4" msgstr "" -#: js/SaveInterface.js:409 -#.TRANS: Guitar prompt for save as Lilypond -msgid "Include guitar tablature output?" +#: js/utils/musicutils.js:1131 +#: js/utils/synthutils.js:58 +#: js/blocks/DrumBlocks.js:191 +#.TRANS: white noise synthesizer +msgid "white noise" msgstr "" -#: js/SaveInterface.js:411 -#.TRANS: Lilypond is a scripting language for generating sheet music -msgid "Save as Lilypond" +#: js/utils/musicutils.js:1132 +#: js/utils/synthutils.js:60 +#.TRANS: brown noise synthesizer +msgid "brown noise" msgstr "" -#: js/SaveInterface.js:426 -#: js/EnsembleBlocks.js:75 -#: js/EnsembleBlocks.js:154 -#: js/EnsembleBlocks.js:216 -#: js/EnsembleBlocks.js:302 -#: js/EnsembleBlocks.js:348 -#: js/EnsembleBlocks.js:389 -#: js/EnsembleBlocks.js:441 -#: js/EnsembleBlocks.js:490 -#: js/EnsembleBlocks.js:536 -#: js/EnsembleBlocks.js:583 -#: js/EnsembleBlocks.js:637 -#: js/EnsembleBlocks.js:753 -#: js/EnsembleBlocks.js:840 -#: js/EnsembleBlocks.js:899 -#: js/EnsembleBlocks.js:942 -#: js/EnsembleBlocks.js:1212 -#: js/EnsembleBlocks.js:1280 -#.TRANS: default project author when saving as Lilypond -msgid "Mr. Mouse" +#: js/utils/musicutils.js:1133 +#: js/utils/synthutils.js:62 +#.TRANS: pink noise synthesizer +msgid "pink noise" msgstr "" -#: js/SaveInterface.js:573 -msgid "The Lilypond code is copied to clipboard. You can paste it here: " +#: js/utils/musicutils.js:1135 +#: js/utils/synthutils.js:148 +#: js/widgets/rhythmruler.js:2057 +#: js/widgets/rhythmruler.js:2319 +#.TRANS: musical instrument +msgid "snare drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:50 -#: js/RhythmBlockPaletteBlocks.js:232 -#.TRANS: rhythm block -#.TRANS: translate "rhythm1" as rhythm -msgid "rhythm1" +#: js/utils/musicutils.js:1136 +#: js/utils/synthutils.js:150 +#.TRANS: musical instrument +msgid "kick drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:70 -#: js/RhythmBlockPaletteBlocks.js:251 -#: js/RhythmBlockPaletteBlocks.js:484 -#: js/RhythmBlockPaletteBlocks.js:553 -#: js/RhythmBlockPaletteBlocks.js:874 -msgid "number of notes" +#: js/utils/musicutils.js:1137 +#: js/utils/synthutils.js:152 +#.TRANS: musical instrument +msgid "tom tom" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:126 -msgid "polyphonic rhythm" +#: js/utils/musicutils.js:1138 +#: js/utils/synthutils.js:154 +#.TRANS: musical instrument +msgid "floor tom" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:218 -msgid "The Rhythm block is used to generate rhythm patterns." +#: js/utils/musicutils.js:1139 +#: js/utils/synthutils.js:156 +#.TRANS: musical instrument +msgid "bass drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:279 -msgid "1/64 note" +#: js/utils/musicutils.js:1140 +#: js/utils/synthutils.js:158 +#.TRANS: a drum made from an inverted cup +msgid "cup drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:303 -msgid "1/32 note" +#: js/utils/musicutils.js:1141 +#: js/utils/synthutils.js:160 +#.TRANS: musical instrument +msgid "darbuka drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:331 -msgid "1/16 note" +#: js/utils/musicutils.js:1142 +#: js/utils/synthutils.js:164 +#.TRANS: musical instrument +msgid "hi hat" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:359 -msgid "eighth note" +#: js/utils/musicutils.js:1143 +#: js/utils/synthutils.js:166 +#.TRANS: a small metal bell +msgid "ride bell" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:387 -msgid "quarter note" +#: js/utils/musicutils.js:1144 +#: js/utils/synthutils.js:168 +#.TRANS: musical instrument +msgid "cow bell" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:415 -msgid "half note" +#: js/utils/musicutils.js:1145 +msgid "japanese drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:443 -msgid "whole note" +#: js/utils/musicutils.js:1146 +#: js/utils/synthutils.js:174 +#.TRANS: musical instrument +msgid "japanese bell" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:481 -#: js/RhythmBlockPaletteBlocks.js:550 -#: js/RhythmBlockPaletteBlocks.js:601 -#.TRANS: A tuplet is a note value divided into irregular time values. -msgid "tuplet" +#: js/utils/musicutils.js:1147 +#: js/utils/synthutils.js:170 +#.TRANS: musical instrument +msgid "triangle bell" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:767 -msgid "septuplet" +#: js/utils/musicutils.js:1148 +#: js/utils/synthutils.js:172 +#.TRANS: musical instrument +msgid "finger cymbals" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:795 -msgid "quintuplet" +#: js/utils/musicutils.js:1149 +#: js/utils/synthutils.js:176 +#.TRANS: a musically tuned set of bells +msgid "chime" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:823 -msgid "triplet" +#: js/utils/musicutils.js:1150 +#: js/utils/synthutils.js:178 +#.TRANS: a musical instrument +msgid "gong" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:850 -msgid "simple tuplet" +#: js/utils/musicutils.js:1151 +#: js/utils/synthutils.js:180 +#.TRANS: sound effect +msgid "clang" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:860 -msgid "Tuplets are a collection of notes that get scaled to a specific duration." +#: js/utils/musicutils.js:1152 +#: js/utils/synthutils.js:182 +#.TRANS: sound effect +msgid "crash" msgstr "" -#: js/WidgetBlocks.js:71 -#.TRANS: sound envelope (ADSR) -msgid "envelope" +#: js/utils/musicutils.js:1153 +#: js/utils/synthutils.js:184 +#.TRANS: sound effect +msgid "bottle" msgstr "" -#: js/WidgetBlocks.js:79 -#.TRANS: Attack time is the time taken for initial run-up of level from nil to peak, beginning when the key is first pressed. -msgid "attack" +#: js/utils/musicutils.js:1154 +#: js/utils/synthutils.js:186 +#.TRANS: sound effect +msgid "clap" msgstr "" -#: js/WidgetBlocks.js:81 -#.TRANS: Decay time is the time taken for the subsequent run down from the attack level to the designated sustain level. -msgid "decay" +#: js/utils/musicutils.js:1155 +#: js/utils/synthutils.js:188 +#.TRANS: sound effect +msgid "slap" msgstr "" -#: js/WidgetBlocks.js:83 -#.TRANS: Sustain level is the level during the main sequence of the sound's duration, until the key is released. -msgid "sustain" +#: js/utils/musicutils.js:1156 +#: js/utils/synthutils.js:190 +#.TRANS: sound effect +msgid "splash" msgstr "" -#: js/WidgetBlocks.js:85 -#.TRANS: Release time is the time taken for the level to decay from the sustain level to zero after the key is released. -msgid "release" +#: js/utils/musicutils.js:1157 +#: js/utils/synthutils.js:192 +#.TRANS: sound effect +msgid "bubbles" msgstr "" -#: js/WidgetBlocks.js:96 -msgid "Attack value should be from 0 to 100." +#: js/utils/musicutils.js:1158 +#: js/utils/synthutils.js:194 +#.TRANS: sound effect +msgid "raindrop" msgstr "" -#: js/WidgetBlocks.js:99 -msgid "Decay value should be from 0 to 100." +#: js/utils/musicutils.js:1159 +#: js/utils/synthutils.js:196 +#.TRANS: animal sound effect +msgid "cat" msgstr "" -#: js/WidgetBlocks.js:102 -msgid "Sustain value should be from 0 to 100." +#: js/utils/musicutils.js:1160 +#: js/utils/synthutils.js:198 +#.TRANS: animal sound effect +msgid "cricket" msgstr "" -#: js/WidgetBlocks.js:105 -msgid "Release value should be from 0-100." +#: js/utils/musicutils.js:1161 +#: js/utils/synthutils.js:200 +#.TRANS: animal sound effect +msgid "dog" msgstr "" -#: js/WidgetBlocks.js:121 -msgid "You are adding multiple envelope blocks." +#: js/utils/musicutils.js:1163 +#: js/utils/synthutils.js:102 +#.TRANS: musical instrument +msgid "banjo" msgstr "" -#: js/WidgetBlocks.js:144 -#.TRANS: a filter removes some unwanted components from a signal -msgid "filter" +#: js/utils/musicutils.js:1164 +#: js/utils/synthutils.js:104 +#.TRANS: musical instrument +msgid "koto" msgstr "" -#: js/WidgetBlocks.js:149 -#: js/musicutils.js:706 -#: js/musicutils.js:1105 -#.TRANS: highpass filter -msgid "highpass" +#: js/utils/musicutils.js:1165 +#: js/utils/synthutils.js:106 +#.TRANS: musical instrument +msgid "dulcimer" msgstr "" -#: js/WidgetBlocks.js:152 -#: js/ToneBlocks.js:42 -#: js/timbre.js:1558 -#: js/timbre.js:1808 -#.TRANS: type of filter, e.g., lowpass, highpass, etc. -#.TRANS: there are different types (sine, triangle, square...) of oscillators. -msgid "type" +#: js/utils/musicutils.js:1166 +#: js/utils/synthutils.js:108 +#.TRANS: musical instrument +msgid "electric guitar" msgstr "" -#: js/WidgetBlocks.js:154 -#: js/timbre.js:1818 -#.TRANS: rolloff is the steepness of a change in frequency. -msgid "rolloff" +#: js/utils/musicutils.js:1167 +#: js/utils/synthutils.js:110 +#.TRANS: musical instrument +msgid "bassoon" msgstr "" -#: js/WidgetBlocks.js:155 -#: js/MediaBlocks.js:692 -#: js/temperament.js:382 -#: js/temperament.js:417 -#: js/temperament.js:477 -#: js/temperament.js:485 -#: js/temperament.js:1348 -#: js/timbre.js:1842 -msgid "frequency" +#: js/utils/musicutils.js:1168 +#: js/utils/synthutils.js:112 +#.TRANS: musical instrument +msgid "celeste" msgstr "" -#: js/WidgetBlocks.js:179 -#.TRANS: rolloff is the steepness of a change in frequency. -msgid "Rolloff value should be either -12, -24, -48, or -96 decibels/octave." +#: js/utils/musicutils.js:1170 +#: js/widgets/temperament.js:787 +#.TRANS: musical temperament +msgid "equal" msgstr "" -#: js/WidgetBlocks.js:211 -msgid "The Temperament tool is used to define custom tuning." +#: js/utils/musicutils.js:1172 +#.TRANS: musical temperament +msgid "Pythagorean" msgstr "" -#: js/WidgetBlocks.js:277 -#: js/sampler.js:329 -msgid "Upload a sample and adjust its pitch center." +#: js/utils/musicutils.js:1174 +#.TRANS: musical temperament +msgid "just intonation" msgstr "" -#: js/WidgetBlocks.js:284 -#.TRANS: the speed at music is should be played. -msgid "sampler" +#: js/utils/musicutils.js:1176 +#.TRANS: musical temperament +msgid "meantone" msgstr "" -#: js/WidgetBlocks.js:329 -#: js/WidgetBlocks.js:334 -#: js/IntervalsBlocks.js:928 -#: js/VolumeBlocks.js:411 -#: js/ToneBlocks.js:946 -#: js/VolumeActions.js:218 -#: js/musicutils.js:704 -#: js/musicutils.js:755 -#: js/musicutils.js:798 -#: js/musicutils.js:820 -#: js/musicutils.js:1136 -#: js/synthutils.js:118 -#: js/modewidget.js:919 -#.TRANS: customize voice -msgid "custom" +#: js/utils/musicutils.js:1193 +msgid "major 7th" msgstr "" -#: js/WidgetBlocks.js:432 -msgid "The Meter block opens a tool to select strong beats for the meter." +#: js/utils/musicutils.js:1194 +msgid "minor 7th" msgstr "" -#: js/WidgetBlocks.js:473 -msgid "The oscilloscope block opens a tool to visualize waveforms." +#: js/utils/musicutils.js:1195 +msgid "dominant 7th" msgstr "" -#: js/WidgetBlocks.js:478 -msgid "oscilloscope" +#: js/utils/musicutils.js:1196 +msgid "minor-major 7th" msgstr "" -#: js/WidgetBlocks.js:530 -msgid "The Custom mode block opens a tool to explore musical mode (the spacing of the notes in a scale)." +#: js/utils/musicutils.js:1197 +msgid "fully-diminished 7th" msgstr "" -#: js/WidgetBlocks.js:536 -#.TRANS: musical mode is the pattern of half-steps in an octave, e.g., Major or Minor modes -msgid "custom mode" +#: js/utils/musicutils.js:1198 +msgid "half-diminished 7th" msgstr "" -#: js/WidgetBlocks.js:570 -msgid "The Tempo block opens a metronome to visualize the beat." +#: js/utils/musicutils.js:1557 +#: js/utils/musicutils.js:1569 +msgid "Equal (12EDO)" msgstr "" -#: js/WidgetBlocks.js:617 -msgid "The Arpeggio Widget is used to compose chord sequences." +#: js/utils/musicutils.js:1558 +#: js/utils/musicutils.js:1570 +msgid "5-limit Just Intonation" msgstr "" -#: js/WidgetBlocks.js:623 -#: js/IntervalsBlocks.js:683 -msgid "arpeggio" +#: js/utils/musicutils.js:1559 +#: js/utils/musicutils.js:1571 +msgid "Pythagorean (3-limit JI)" msgstr "" -#: js/WidgetBlocks.js:677 -msgid "The Pitch drum matrix is used to map pitches to drum sounds." +#: js/utils/musicutils.js:1560 +#: js/utils/musicutils.js:1561 +#: js/utils/musicutils.js:1572 +#: js/utils/musicutils.js:1573 +msgid "Meantone" msgstr "" -#: js/WidgetBlocks.js:682 -#.TRANS: makes a mapping between pitches and drum sounds -msgid "pitch-drum mapper" +#: js/utils/musicutils.js:1574 +msgid "Custom" msgstr "" -#: js/WidgetBlocks.js:724 -msgid "You must have at least one pitch block and one drum block in the matrix." +#: js/utils/musicutils.js:5387 +#: js/utils/musicutils.js:5430 +msgid "current" msgstr "" -#: js/WidgetBlocks.js:746 -msgid "The Pitch slider tool to is used to generate pitches at selected frequencies." +#: js/utils/musicutils.js:5390 +#: js/utils/musicutils.js:5421 +msgid "next" msgstr "" -#: js/WidgetBlocks.js:751 -#.TRANS: widget to generate pitches using a slider -msgid "pitch slider" +#: js/utils/musicutils.js:5393 +#: js/utils/musicutils.js:5426 +msgid "previous" msgstr "" -#: js/WidgetBlocks.js:788 -msgid "chromatic keyboard" +#: js/utils/synthutils.js:120 +#.TRANS: simple monotone synthesizer +msgid "simple-2" msgstr "" -#: js/WidgetBlocks.js:815 -#: js/WidgetBlocks.js:874 -#.TRANS: widget to generate pitches using a slider -msgid "music keyboard" +#: js/utils/synthutils.js:122 +#.TRANS: simple monotone synthesizer +msgid "simple-3" msgstr "" -#: js/WidgetBlocks.js:859 -#: js/WidgetBlocks.js:866 -msgid "The Music keyboard block opens a piano keyboard that can be used to create notes." +#: js/utils/synthutils.js:124 +#.TRANS: simple monotone synthesizer +msgid "simple-4" msgstr "" -#: js/WidgetBlocks.js:910 -msgid "The Pitch staircase tool to is used to generate pitches from a given ratio." +#: js/utils/synthutils.js:162 +#.TRANS: musical instrument +msgid "taiko" msgstr "" -#: js/WidgetBlocks.js:917 -#.TRANS: generate a progressive sequence of pitches -msgid "pitch staircase" +#: js/blocks/ActionBlocks.js:58 +msgid "The Return block will return a value from an action." msgstr "" -#: js/WidgetBlocks.js:982 -msgid "The Rhythm Maker block opens a tool to create drum machines." +#: js/blocks/ActionBlocks.js:75 +msgid "return" msgstr "" -#: js/WidgetBlocks.js:1036 -msgid "G major scale" +#: js/blocks/ActionBlocks.js:128 +msgid "The Return to URL block will return a value to a webpage." msgstr "" -#: js/WidgetBlocks.js:1064 -msgid "C major scale" +#: js/blocks/ActionBlocks.js:145 +msgid "return to URL" msgstr "" -#: js/WidgetBlocks.js:1097 -msgid "The Phrase Maker block opens a tool to create musical phrases." +#: js/blocks/ActionBlocks.js:233 +#: js/blocks/ActionBlocks.js:290 +#: js/blocks/ActionBlocks.js:501 +#: js/blocks/ActionBlocks.js:688 +msgid "The Calculate block returns a value calculated by an action." msgstr "" -#: js/WidgetBlocks.js:1104 -#.TRANS: assigns pitch to a sequence of beats to generate a melody -msgid "phrase maker" +#: js/blocks/ActionBlocks.js:251 +#: js/blocks/ActionBlocks.js:517 +#: js/blocks/ActionBlocks.js:707 +msgid "calculate" msgstr "" -#: js/WidgetBlocks.js:1168 -msgid "You must have at least one pitch block and one rhythm block in the matrix." +#: js/blocks/ActionBlocks.js:376 +#: js/blocks/ActionBlocks.js:593 +#: js/blocks/ActionBlocks.js:942 +#: js/blocks/ActionBlocks.js:1389 +#.TRANS: do is the do something or take an action. +msgid "The Do block is used to initiate an action." msgstr "" -#: js/WidgetBlocks.js:1220 -msgid "The Status block opens a tool for inspecting the status of Music Blocks as it is running." +#: js/blocks/ActionBlocks.js:390 +#: js/blocks/ActionBlocks.js:610 +#: js/blocks/ActionBlocks.js:959 +#: js/blocks/ActionBlocks.js:1048 +#: js/blocks/MeterBlocks.js:769 +msgid "do1" msgstr "" -#: js/IntervalsBlocks.js:45 -msgid "set temperament" +#: js/blocks/ActionBlocks.js:390 +#: js/blocks/ActionBlocks.js:610 +#: js/blocks/ActionBlocks.js:959 +#: js/blocks/ActionBlocks.js:1048 +#: js/blocks/FlowBlocks.js:742 +#: js/blocks/FlowBlocks.js:822 +#: js/blocks/MeterBlocks.js:769 +msgid "do" msgstr "" -#: js/IntervalsBlocks.js:63 -#: js/MediaBlocks.js:746 -#: js/PitchBlocks.js:657 -#: js/PitchBlocks.js:933 -#: js/PitchBlocks.js:972 -#: js/PitchBlocks.js:1005 -#: js/PitchBlocks.js:1166 -#: js/PitchBlocks.js:1679 -#: js/PitchBlocks.js:1720 -#: js/PitchBlocks.js:1827 -#: js/ToneBlocks.js:1025 -#.TRANS: adjusts the shift up or down by one octave (twelve half-steps in the interval between two notes, one having twice or half the frequency in Hz of the other.) -msgid "octave" +#: js/blocks/ActionBlocks.js:791 +#: js/blocks/ActionBlocks.js:865 +msgid "The Arg block contains the value of an argument passed to an action." msgstr "" -#: js/IntervalsBlocks.js:99 -msgid "The Temperament name block is used to select a tuning method." +#: js/blocks/ActionBlocks.js:806 +#: js/blocks/ActionBlocks.js:878 +msgid "arg" msgstr "" -#: js/IntervalsBlocks.js:161 -msgid "doubly" +#: js/blocks/ActionBlocks.js:836 +#: js/blocks/ActionBlocks.js:900 +#: js/blocks/ActionBlocks.js:908 +msgid "Invalid argument" msgstr "" -#: js/IntervalsBlocks.js:166 -msgid "The Doubly block will double the size of an interval." +#: js/blocks/ActionBlocks.js:944 +msgid "In the example, it is used with the One of block to choose a random phase." msgstr "" -#: js/IntervalsBlocks.js:262 -msgid "interval number" +#: js/blocks/ActionBlocks.js:1019 +#: js/blocks/ActionBlocks.js:1026 +msgid "The Listen block is used to listen for an event such as a mouse click." msgstr "" -#: js/IntervalsBlocks.js:330 -#.TRANS: measure the distance between two pitches in semi-tones -msgid "semi-tone interval measure" +#: js/blocks/ActionBlocks.js:1028 +msgid "When the event happens, an action is taken." msgstr "" -#: js/IntervalsBlocks.js:397 -#: js/IntervalsBlocks.js:513 -msgid "You must use two pitch blocks when measuring an interval." +#: js/blocks/ActionBlocks.js:1045 +msgid "on" msgstr "" -#: js/IntervalsBlocks.js:439 -msgid "The Scalar interval block measures the distance between two notes in the current key and mode." +#: js/blocks/ActionBlocks.js:1048 +#: js/blocks/ActionBlocks.js:1049 +#: js/blocks/ActionBlocks.js:1153 +msgid "event" msgstr "" -#: js/IntervalsBlocks.js:445 -#.TRANS: measure the distance between two pitches in steps of musical scale -msgid "scalar interval measure" +#: js/blocks/ActionBlocks.js:1133 +msgid "The Broadcast block is used to trigger an event." msgstr "" -#: js/IntervalsBlocks.js:592 -#: js/musicutils.js:637 -#: js/musicutils.js:908 -#.TRANS: perfect is a music term related to intervals -msgid "perfect" +#: js/blocks/ActionBlocks.js:1151 +msgid "broadcast" msgstr "" -#: js/IntervalsBlocks.js:621 -msgid "In the figure, we add sol# to sol." +#: js/blocks/ActionBlocks.js:1208 +msgid "Each Start block is a separate voice." msgstr "" -#: js/IntervalsBlocks.js:627 -#: js/OrnamentBlocks.js:220 -#.TRANS: calculate a relative step between notes based on semi-tones -msgid "semi-tone interval" +#: js/blocks/ActionBlocks.js:1304 +msgid "It is often used for storing a phrase of music that is repeated." msgstr "" -#: js/IntervalsBlocks.js:676 -msgid "The output of the example is: do, mi, sol, sol, ti, mi" +#: js/blocks/ActionBlocks.js:1495 +msgid "define temperament" msgstr "" -#: js/IntervalsBlocks.js:735 -msgid "The Chord block calculates common chords." +#: js/blocks/BooleanBlocks.js:44 +msgid "The Not block is the logical not operator." msgstr "" -#: js/IntervalsBlocks.js:737 -msgid "In the figure, we generate a C-major chord." +#: js/blocks/BooleanBlocks.js:62 +msgid "not" msgstr "" -#: js/IntervalsBlocks.js:742 -msgid "chord" +#: js/blocks/BooleanBlocks.js:134 +msgid "The And block is the logical and operator." msgstr "" -#: js/IntervalsBlocks.js:794 -msgid "The Ratio Interval block calculates an interval based on a ratio." +#: js/blocks/BooleanBlocks.js:152 +msgid "and" msgstr "" -#: js/IntervalsBlocks.js:799 -msgid "ratio interval" +#: js/blocks/BooleanBlocks.js:218 +msgid "The Or block is the logical or operator." msgstr "" -#: js/IntervalsBlocks.js:868 -msgid "In the figure, we add la to sol." +#: js/blocks/BooleanBlocks.js:236 +msgid "or" msgstr "" -#: js/IntervalsBlocks.js:924 -#.TRANS: define a custom mode -msgid "define mode" +#: js/blocks/BooleanBlocks.js:302 +msgid "The XOR block is the logical XOR operator." msgstr "" -#: js/IntervalsBlocks.js:977 -msgid "movable Do" +#: js/blocks/BooleanBlocks.js:320 +msgid "xor" msgstr "" -#: js/IntervalsBlocks.js:1028 -#.TRANS: mode length is the number of notes in the mode, e.g., 7 for major and minor scales; 12 for chromatic scales -msgid "mode length" +#: js/blocks/BooleanBlocks.js:808 +msgid "The Equal block returns True if the two numbers are equal." msgstr "" -#: js/IntervalsBlocks.js:1037 -msgid "The Mode length block is the number of notes in the current scale." +#: js/blocks/BooleanBlocks.js:909 +msgid "The Not-equal-to block returns True if the two numbers are not equal to each other." msgstr "" -#: js/IntervalsBlocks.js:1039 -msgid "Most Western scales have 7 notes." +#: js/blocks/BooleanBlocks.js:1008 +msgid "The Boolean block is used to specify true or false." msgstr "" -#: js/IntervalsBlocks.js:1088 -#.TRANS: the mode in music is 'major', 'minor', etc. -msgid "current mode" +#: js/blocks/BoxesBlocks.js:53 +#: js/blocks/BoxesBlocks.js:59 +msgid "The Add-to block is used to add to the value stored in a box." msgstr "" -#: js/IntervalsBlocks.js:1141 -#.TRANS: the key is a group of pitches with which a music composition is created -msgid "current key" +#: js/blocks/BoxesBlocks.js:61 +msgid "It can also be used with other blocks such as Color and Pen size." msgstr "" -#: js/IntervalsBlocks.js:1193 -#: js/IntervalsBlocks.js:1238 -#.TRANS: set the key and mode, e.g. C Major -msgid "set key" +#: js/blocks/BoxesBlocks.js:73 +msgid "add" msgstr "" -#: js/IntervalsBlocks.js:1247 -#: js/IntervalsBlocks.js:1253 -msgid "The Set key block is used to set the key and mode," +#: js/blocks/BoxesBlocks.js:75 +#: js/widgets/temperament.js:857 +msgid "to" msgstr "" -#: js/IntervalsBlocks.js:1253 -msgid "eg C Major" +#: js/blocks/BoxesBlocks.js:75 +#: js/blocks/BoxesBlocks.js:595 +#: js/blocks/HeapBlocks.js:544 +msgid "value1" msgstr "" -#: js/IntervalsBlocks.js:1266 -#: js/DictBlocks.js:215 -#: js/DictBlocks.js:216 -#: js/DictBlocks.js:289 -#: js/DictBlocks.js:290 -#: js/DictBlocks.js:357 -#: js/DictBlocks.js:430 -#: js/DictBlocks.js:431 -#.TRANS: key, e.g., C in C Major -msgid "key" +#: js/blocks/BoxesBlocks.js:118 +msgid "Block does not support incrementing." msgstr "" -#: js/ActionBlocks.js:58 -msgid "The Return block will return a value from an action." +#: js/blocks/BoxesBlocks.js:152 +msgid "The Add-1-to block adds one to the value stored in a box." msgstr "" -#: js/ActionBlocks.js:75 -msgid "return" +#: js/blocks/BoxesBlocks.js:163 +msgid "add 1 to" msgstr "" -#: js/ActionBlocks.js:128 -msgid "The Return to URL block will return a value to a webpage." +#: js/blocks/BoxesBlocks.js:211 +msgid "The Subtract-1-from block subtracts one from the value stored in a box." msgstr "" -#: js/ActionBlocks.js:145 -msgid "return to URL" +#: js/blocks/BoxesBlocks.js:222 +msgid "subtract 1 from" msgstr "" -#: js/ActionBlocks.js:233 -#: js/ActionBlocks.js:290 -#: js/ActionBlocks.js:501 -#: js/ActionBlocks.js:688 -msgid "The Calculate block returns a value calculated by an action." +#: js/blocks/BoxesBlocks.js:270 +#: js/blocks/BoxesBlocks.js:387 +msgid "The Box block returns the value stored in a box." msgstr "" -#: js/ActionBlocks.js:251 -#: js/ActionBlocks.js:517 -#: js/ActionBlocks.js:707 -msgid "calculate" +#: js/blocks/BoxesBlocks.js:500 +#: js/blocks/BoxesBlocks.js:576 +msgid "The Store in block will store a value in a box." msgstr "" -#: js/ActionBlocks.js:376 -#: js/ActionBlocks.js:593 -#: js/ActionBlocks.js:942 -#: js/ActionBlocks.js:1389 -#.TRANS: do is the do something or take an action. -msgid "The Do block is used to initiate an action." +#: js/blocks/BoxesBlocks.js:595 +#: js/blocks/EnsembleBlocks.js:391 +#: js/blocks/EnsembleBlocks.js:402 +msgid "name1" msgstr "" -#: js/ActionBlocks.js:390 -#: js/ActionBlocks.js:610 -#: js/ActionBlocks.js:959 -#: js/ActionBlocks.js:1048 -#: js/MeterBlocks.js:769 -msgid "do1" +#: js/blocks/BoxesBlocks.js:652 +msgid "The Box2 block returns the value stored in Box2." msgstr "" -#: js/ActionBlocks.js:390 -#: js/ActionBlocks.js:610 -#: js/ActionBlocks.js:959 -#: js/ActionBlocks.js:1048 -#: js/FlowBlocks.js:742 -#: js/FlowBlocks.js:822 -#: js/MeterBlocks.js:769 -msgid "do" +#: js/blocks/BoxesBlocks.js:703 +msgid "The Store in Box2 block is used to store a value in Box2." msgstr "" -#: js/ActionBlocks.js:791 -#: js/ActionBlocks.js:865 -msgid "The Arg block contains the value of an argument passed to an action." +#: js/blocks/BoxesBlocks.js:715 +msgid "store in box2" msgstr "" -#: js/ActionBlocks.js:806 -#: js/ActionBlocks.js:878 -msgid "arg" +#: js/blocks/BoxesBlocks.js:761 +msgid "The Box1 block returns the value stored in Box1." msgstr "" -#: js/ActionBlocks.js:836 -#: js/ActionBlocks.js:900 -#: js/ActionBlocks.js:908 -msgid "Invalid argument" +#: js/blocks/BoxesBlocks.js:812 +msgid "The Store in Box1 block is used to store a value in Box1." msgstr "" -#: js/ActionBlocks.js:944 -msgid "In the example, it is used with the One of block to choose a random phase." +#: js/blocks/BoxesBlocks.js:826 +msgid "store in box1" msgstr "" -#: js/ActionBlocks.js:1019 -#: js/ActionBlocks.js:1026 -msgid "The Listen block is used to listen for an event such as a mouse click." +#: js/blocks/DictBlocks.js:77 +msgid "show dictionary" msgstr "" -#: js/ActionBlocks.js:1028 -msgid "When the event happens, an action is taken." +#: js/blocks/DictBlocks.js:80 +#: js/blocks/DictBlocks.js:145 +#: js/blocks/DictBlocks.js:216 +#: js/blocks/DictBlocks.js:290 +#: js/blocks/ProgramBlocks.js:396 +#: js/blocks/ProgramBlocks.js:501 +#: js/blocks/ProgramBlocks.js:664 +msgid "My Dictionary" msgstr "" -#: js/ActionBlocks.js:1045 -msgid "on" +#: js/blocks/DictBlocks.js:129 +msgid "The Dictionary block returns a dictionary." msgstr "" -#: js/ActionBlocks.js:1048 -#: js/ActionBlocks.js:1049 -#: js/ActionBlocks.js:1153 -msgid "event" +#: js/blocks/DictBlocks.js:197 +#: js/blocks/DictBlocks.js:339 +msgid "The Get-dict block returns a value in the dictionary for a specified key." msgstr "" -#: js/ActionBlocks.js:1133 -msgid "The Broadcast block is used to trigger an event." +#: js/blocks/DictBlocks.js:212 +#: js/blocks/DictBlocks.js:354 +#.TRANS: retrieve a value from the dictionary with a given key +msgid "get value" msgstr "" -#: js/ActionBlocks.js:1151 -msgid "broadcast" +#: js/blocks/DictBlocks.js:215 +#: js/blocks/DictBlocks.js:216 +#: js/blocks/DictBlocks.js:289 +#: js/blocks/DictBlocks.js:290 +#: js/blocks/DictBlocks.js:357 +#: js/blocks/DictBlocks.js:430 +#: js/blocks/DictBlocks.js:431 +msgid "key2" msgstr "" -#: js/ActionBlocks.js:1208 -msgid "Each Start block is a separate voice." +#: js/blocks/DictBlocks.js:215 +#: js/blocks/DictBlocks.js:216 +#: js/blocks/DictBlocks.js:289 +#: js/blocks/DictBlocks.js:290 +#: js/blocks/DictBlocks.js:357 +#: js/blocks/DictBlocks.js:430 +#: js/blocks/DictBlocks.js:431 +#: js/blocks/IntervalsBlocks.js:1462 +#.TRANS: key, e.g., C in C Major +msgid "key" msgstr "" -#: js/ActionBlocks.js:1304 -msgid "It is often used for storing a phrase of music that is repeated." +#: js/blocks/DictBlocks.js:271 +#: js/blocks/DictBlocks.js:411 +msgid "The Set-dict block sets a value in the dictionary for a specified key." msgstr "" -#: js/ActionBlocks.js:1495 -msgid "define temperament" +#: js/blocks/DictBlocks.js:286 +#: js/blocks/DictBlocks.js:427 +#.TRANS: set a value in the dictionary for a given key +msgid "set value" msgstr "" -#: js/EnsembleBlocks.js:66 +#: js/blocks/EnsembleBlocks.js:66 msgid "mouse index heap" msgstr "" -#: js/EnsembleBlocks.js:68 +#: js/blocks/EnsembleBlocks.js:68 msgid "The Mouse index heap block returns a value in the heap at a specified location for a specified mouse." msgstr "" -#: js/EnsembleBlocks.js:77 -#: js/EnsembleBlocks.js:1080 +#: js/blocks/EnsembleBlocks.js:77 +#: js/blocks/EnsembleBlocks.js:1080 msgid "mouse name" msgstr "" -#: js/EnsembleBlocks.js:77 -#: js/EnsembleBlocks.js:92 -#: js/HeapBlocks.js:544 +#: js/blocks/EnsembleBlocks.js:77 +#: js/blocks/EnsembleBlocks.js:92 +#: js/blocks/HeapBlocks.js:544 #.TRANS: value1 is a numeric value (JAPANESE ONLY) msgid "index" msgstr "" -#: js/EnsembleBlocks.js:80 +#: js/blocks/EnsembleBlocks.js:80 msgid "turtle index heap" msgstr "" -#: js/EnsembleBlocks.js:82 +#: js/blocks/EnsembleBlocks.js:82 msgid "The Turtle index heap block returns a value in the heap at a specified location for a specified turtle." msgstr "" -#: js/EnsembleBlocks.js:90 -#: js/EnsembleBlocks.js:167 -#: js/EnsembleBlocks.js:230 -#: js/EnsembleBlocks.js:316 -#: js/EnsembleBlocks.js:362 -#: js/EnsembleBlocks.js:400 -#: js/EnsembleBlocks.js:454 -#: js/EnsembleBlocks.js:504 -#: js/EnsembleBlocks.js:550 -#: js/EnsembleBlocks.js:597 -#: js/EnsembleBlocks.js:651 -#: js/EnsembleBlocks.js:763 -#: js/EnsembleBlocks.js:854 -#: js/EnsembleBlocks.js:915 -#: js/EnsembleBlocks.js:955 -#: js/EnsembleBlocks.js:1219 -#: js/EnsembleBlocks.js:1293 +#: js/blocks/EnsembleBlocks.js:90 +#: js/blocks/EnsembleBlocks.js:167 +#: js/blocks/EnsembleBlocks.js:230 +#: js/blocks/EnsembleBlocks.js:316 +#: js/blocks/EnsembleBlocks.js:362 +#: js/blocks/EnsembleBlocks.js:400 +#: js/blocks/EnsembleBlocks.js:454 +#: js/blocks/EnsembleBlocks.js:504 +#: js/blocks/EnsembleBlocks.js:550 +#: js/blocks/EnsembleBlocks.js:597 +#: js/blocks/EnsembleBlocks.js:651 +#: js/blocks/EnsembleBlocks.js:763 +#: js/blocks/EnsembleBlocks.js:854 +#: js/blocks/EnsembleBlocks.js:915 +#: js/blocks/EnsembleBlocks.js:955 +#: js/blocks/EnsembleBlocks.js:1219 +#: js/blocks/EnsembleBlocks.js:1293 #.TRANS: Yertle is the name of a turtle. msgid "Yertle" msgstr "" -#: js/EnsembleBlocks.js:92 -#: js/EnsembleBlocks.js:1089 +#: js/blocks/EnsembleBlocks.js:92 +#: js/blocks/EnsembleBlocks.js:1089 msgid "turtle name" msgstr "" -#: js/EnsembleBlocks.js:122 -#: js/EnsembleBlocks.js:1197 -#: js/HeapBlocks.js:474 -#: js/HeapBlocks.js:572 +#: js/blocks/EnsembleBlocks.js:122 +#: js/blocks/EnsembleBlocks.js:1197 +#: js/blocks/HeapBlocks.js:474 +#: js/blocks/HeapBlocks.js:572 msgid "Index must be > 0." msgstr "" -#: js/EnsembleBlocks.js:127 -#: js/HeapBlocks.js:479 -#: js/HeapBlocks.js:577 +#: js/blocks/EnsembleBlocks.js:127 +#: js/blocks/HeapBlocks.js:479 +#: js/blocks/HeapBlocks.js:577 msgid "Maximum heap size is 1000." msgstr "" -#: js/EnsembleBlocks.js:145 +#: js/blocks/EnsembleBlocks.js:145 msgid "stop mouse" msgstr "" -#: js/EnsembleBlocks.js:147 +#: js/blocks/EnsembleBlocks.js:147 msgid "The Stop mouse block stops the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:158 +#: js/blocks/EnsembleBlocks.js:158 msgid "stop turtle" msgstr "" -#: js/EnsembleBlocks.js:160 +#: js/blocks/EnsembleBlocks.js:160 msgid "The Stop turtle block stops the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:184 -#: js/EnsembleBlocks.js:247 -#: js/EnsembleBlocks.js:413 -#: js/EnsembleBlocks.js:468 -#: js/EnsembleBlocks.js:706 -#: js/EnsembleBlocks.js:808 -#: js/EnsembleBlocks.js:870 -#: js/EnsembleBlocks.js:1190 -#: js/EnsembleBlocks.js:1253 +#: js/blocks/EnsembleBlocks.js:184 +#: js/blocks/EnsembleBlocks.js:247 +#: js/blocks/EnsembleBlocks.js:413 +#: js/blocks/EnsembleBlocks.js:468 +#: js/blocks/EnsembleBlocks.js:706 +#: js/blocks/EnsembleBlocks.js:808 +#: js/blocks/EnsembleBlocks.js:870 +#: js/blocks/EnsembleBlocks.js:1190 +#: js/blocks/EnsembleBlocks.js:1253 msgid "Cannot find mouse" msgstr "" -#: js/EnsembleBlocks.js:186 -#: js/EnsembleBlocks.js:249 -#: js/EnsembleBlocks.js:415 -#: js/EnsembleBlocks.js:470 -#: js/EnsembleBlocks.js:708 -#: js/EnsembleBlocks.js:810 -#: js/EnsembleBlocks.js:872 -#: js/EnsembleBlocks.js:1192 -#: js/EnsembleBlocks.js:1255 +#: js/blocks/EnsembleBlocks.js:186 +#: js/blocks/EnsembleBlocks.js:249 +#: js/blocks/EnsembleBlocks.js:415 +#: js/blocks/EnsembleBlocks.js:470 +#: js/blocks/EnsembleBlocks.js:708 +#: js/blocks/EnsembleBlocks.js:810 +#: js/blocks/EnsembleBlocks.js:872 +#: js/blocks/EnsembleBlocks.js:1192 +#: js/blocks/EnsembleBlocks.js:1255 msgid "Cannot find turtle" msgstr "" -#: js/EnsembleBlocks.js:206 +#: js/blocks/EnsembleBlocks.js:206 msgid "start mouse" msgstr "" -#: js/EnsembleBlocks.js:209 +#: js/blocks/EnsembleBlocks.js:209 msgid "The Start mouse block starts the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:220 +#: js/blocks/EnsembleBlocks.js:220 msgid "start turtle" msgstr "" -#: js/EnsembleBlocks.js:223 +#: js/blocks/EnsembleBlocks.js:223 msgid "The Start turtle block starts the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:256 +#: js/blocks/EnsembleBlocks.js:256 msgid "Mouse is already running." msgstr "" -#: js/EnsembleBlocks.js:258 +#: js/blocks/EnsembleBlocks.js:258 msgid "Turtle is already running." msgstr "" -#: js/EnsembleBlocks.js:282 +#: js/blocks/EnsembleBlocks.js:282 msgid "Cannot find start block" msgstr "" -#: js/EnsembleBlocks.js:292 +#: js/blocks/EnsembleBlocks.js:292 #.TRANS: pen color for this mouse msgid "mouse color" msgstr "" -#: js/EnsembleBlocks.js:294 +#: js/blocks/EnsembleBlocks.js:294 msgid "The Mouse color block returns the pen color of the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:306 +#: js/blocks/EnsembleBlocks.js:306 #.TRANS: pen color for this turtle msgid "turtle color" msgstr "" -#: js/EnsembleBlocks.js:308 +#: js/blocks/EnsembleBlocks.js:308 msgid "The Turtle color block returns the pen color of the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:338 +#: js/blocks/EnsembleBlocks.js:338 #.TRANS: heading (compass direction) for this mouse msgid "mouse heading" msgstr "" -#: js/EnsembleBlocks.js:340 +#: js/blocks/EnsembleBlocks.js:340 msgid "The Mouse heading block returns the heading of the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:352 +#: js/blocks/EnsembleBlocks.js:352 #.TRANS: heading (compass direction) for this turtle msgid "turtle heading" msgstr "" -#: js/EnsembleBlocks.js:354 +#: js/blocks/EnsembleBlocks.js:354 msgid "The Turtle heading block returns the heading of the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:384 -#: js/EnsembleBlocks.js:439 +#: js/blocks/EnsembleBlocks.js:384 +#: js/blocks/EnsembleBlocks.js:439 #.TRANS: set xy position for this mouse msgid "set mouse" msgstr "" -#: js/EnsembleBlocks.js:391 -#: js/EnsembleBlocks.js:402 -#: js/BoxesBlocks.js:595 -msgid "name1" -msgstr "" - -#: js/EnsembleBlocks.js:391 -#: js/EnsembleBlocks.js:402 -#: js/ProgramBlocks.js:881 -#: js/GraphicsBlocks.js:235 -#: js/GraphicsBlocks.js:313 -#: js/GraphicsBlocks.js:436 -#: js/GraphicsBlocks.js:487 -#: js/GraphicsBlocks.js:534 -#: js/GraphicsBlocks.js:750 +#: js/blocks/EnsembleBlocks.js:391 +#: js/blocks/EnsembleBlocks.js:402 +#: js/blocks/GraphicsBlocks.js:235 +#: js/blocks/GraphicsBlocks.js:313 +#: js/blocks/GraphicsBlocks.js:436 +#: js/blocks/GraphicsBlocks.js:487 +#: js/blocks/GraphicsBlocks.js:534 +#: js/blocks/GraphicsBlocks.js:750 +#: js/blocks/ProgramBlocks.js:881 msgid "x" msgstr "" -#: js/EnsembleBlocks.js:391 -#: js/EnsembleBlocks.js:402 -#: js/ProgramBlocks.js:881 -#: js/GraphicsBlocks.js:149 -#: js/GraphicsBlocks.js:313 -#: js/GraphicsBlocks.js:436 -#: js/GraphicsBlocks.js:487 -#: js/GraphicsBlocks.js:534 -#: js/GraphicsBlocks.js:750 +#: js/blocks/EnsembleBlocks.js:391 +#: js/blocks/EnsembleBlocks.js:402 +#: js/blocks/GraphicsBlocks.js:149 +#: js/blocks/GraphicsBlocks.js:313 +#: js/blocks/GraphicsBlocks.js:436 +#: js/blocks/GraphicsBlocks.js:487 +#: js/blocks/GraphicsBlocks.js:534 +#: js/blocks/GraphicsBlocks.js:750 +#: js/blocks/ProgramBlocks.js:881 msgid "y" msgstr "" -#: js/EnsembleBlocks.js:395 -#: js/EnsembleBlocks.js:452 +#: js/blocks/EnsembleBlocks.js:395 +#: js/blocks/EnsembleBlocks.js:452 #.TRANS: set xy position for this turtle msgid "set turtle" msgstr "" -#: js/EnsembleBlocks.js:433 +#: js/blocks/EnsembleBlocks.js:433 msgid "The Set mouse block sends a stack of blocks to be run by the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:446 +#: js/blocks/EnsembleBlocks.js:446 msgid "The Set turtle block sends a stack of blocks to be run by the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:480 +#: js/blocks/EnsembleBlocks.js:480 #.TRANS: y position for this mouse msgid "mouse y" msgstr "" -#: js/EnsembleBlocks.js:482 +#: js/blocks/EnsembleBlocks.js:482 msgid "The Y mouse block returns the Y position of the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:494 +#: js/blocks/EnsembleBlocks.js:494 #.TRANS: y position for this turtle msgid "turtle y" msgstr "" -#: js/EnsembleBlocks.js:496 +#: js/blocks/EnsembleBlocks.js:496 msgid "The Y turtle block returns the Y position of the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:526 +#: js/blocks/EnsembleBlocks.js:526 #.TRANS: x position for this mouse msgid "mouse x" msgstr "" -#: js/EnsembleBlocks.js:528 +#: js/blocks/EnsembleBlocks.js:528 msgid "The X mouse block returns the X position of the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:540 +#: js/blocks/EnsembleBlocks.js:540 #.TRANS: x position for this turtle msgid "turtle x" msgstr "" -#: js/EnsembleBlocks.js:542 +#: js/blocks/EnsembleBlocks.js:542 msgid "The X turtle block returns the X position of the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:573 +#: js/blocks/EnsembleBlocks.js:573 #.TRANS: notes played by this mouse msgid "mouse notes played" msgstr "" -#: js/EnsembleBlocks.js:575 +#: js/blocks/EnsembleBlocks.js:575 msgid "The Mouse elapse notes block returns the number of notes played by the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:587 +#: js/blocks/EnsembleBlocks.js:587 #.TRANS: notes played by this turtle msgid "turtle notes played" msgstr "" -#: js/EnsembleBlocks.js:589 +#: js/blocks/EnsembleBlocks.js:589 msgid "The Turtle elapse notes block returns the number of notes played by the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:627 +#: js/blocks/EnsembleBlocks.js:627 #.TRANS: convert current note for this turtle to piano key (1-88) msgid "mouse pitch number" msgstr "" -#: js/EnsembleBlocks.js:629 +#: js/blocks/EnsembleBlocks.js:629 msgid "The Mouse pitch block returns the current pitch number being played by the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:641 +#: js/blocks/EnsembleBlocks.js:641 #.TRANS: convert current note for this turtle to piano key (1-88) msgid "turtle pitch number" msgstr "" -#: js/EnsembleBlocks.js:643 -msgid "The Turrle pitch block returns the current pitch number being played by the specified turtle." +#: js/blocks/EnsembleBlocks.js:643 +msgid "The Turtle pitch block returns the current pitch number being played by the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:747 -#: js/EnsembleBlocks.js:819 +#: js/blocks/EnsembleBlocks.js:747 +#: js/blocks/EnsembleBlocks.js:819 #.TRANS: note value is the duration of the note played by this mouse msgid "mouse note value" msgstr "" -#: js/EnsembleBlocks.js:757 +#: js/blocks/EnsembleBlocks.js:757 #.TRANS: note value is the duration of the note played by this turtle msgid "turtle note value" msgstr "" -#: js/EnsembleBlocks.js:830 +#: js/blocks/EnsembleBlocks.js:830 #.TRANS: sync is short for synchronization msgid "mouse sync" msgstr "" -#: js/EnsembleBlocks.js:832 +#: js/blocks/EnsembleBlocks.js:832 msgid "The Mouse sync block aligns the beat count between mice." msgstr "" -#: js/EnsembleBlocks.js:844 +#: js/blocks/EnsembleBlocks.js:844 #.TRANS: sync is short for synchronization msgid "turtle sync" msgstr "" -#: js/EnsembleBlocks.js:846 +#: js/blocks/EnsembleBlocks.js:846 msgid "The Turtle sync block aligns the beat count between turtles." msgstr "" -#: js/EnsembleBlocks.js:887 +#: js/blocks/EnsembleBlocks.js:887 msgid "The Found mouse block will return true if the specified mouse can be found." msgstr "" -#: js/EnsembleBlocks.js:893 +#: js/blocks/EnsembleBlocks.js:893 msgid "found mouse" msgstr "" -#: js/EnsembleBlocks.js:903 +#: js/blocks/EnsembleBlocks.js:903 msgid "The Found turtle block will return true if the specified turtle can be found." msgstr "" -#: js/EnsembleBlocks.js:909 +#: js/blocks/EnsembleBlocks.js:909 msgid "found turtle" msgstr "" -#: js/EnsembleBlocks.js:932 +#: js/blocks/EnsembleBlocks.js:932 msgid "new mouse" msgstr "" -#: js/EnsembleBlocks.js:934 +#: js/blocks/EnsembleBlocks.js:934 msgid "The New mouse block will create a new mouse." msgstr "" -#: js/EnsembleBlocks.js:945 +#: js/blocks/EnsembleBlocks.js:945 msgid "new turtle" msgstr "" -#: js/EnsembleBlocks.js:947 +#: js/blocks/EnsembleBlocks.js:947 msgid "The New turtle block will create a new turtle." msgstr "" -#: js/EnsembleBlocks.js:1011 +#: js/blocks/EnsembleBlocks.js:1011 msgid "set mouse color" msgstr "" -#: js/EnsembleBlocks.js:1014 +#: js/blocks/EnsembleBlocks.js:1014 msgid "The Set-mouse-color block is used to set the color of a mouse." msgstr "" -#: js/EnsembleBlocks.js:1020 +#: js/blocks/EnsembleBlocks.js:1020 msgid "set turtle color" msgstr "" -#: js/EnsembleBlocks.js:1023 +#: js/blocks/EnsembleBlocks.js:1023 msgid "The Set-turtle-color block is used to set the color of a turtle." msgstr "" -#: js/EnsembleBlocks.js:1083 +#: js/blocks/EnsembleBlocks.js:1083 msgid "The Mouse-name block returns the name of a mouse." msgstr "" -#: js/EnsembleBlocks.js:1092 +#: js/blocks/EnsembleBlocks.js:1092 msgid "The Turtle-name block returns the name of a turtle." msgstr "" -#: js/EnsembleBlocks.js:1115 +#: js/blocks/EnsembleBlocks.js:1115 msgid "mouse count" msgstr "" -#: js/EnsembleBlocks.js:1118 +#: js/blocks/EnsembleBlocks.js:1118 msgid "The Mouse-count block returns the number of mice." msgstr "" -#: js/EnsembleBlocks.js:1124 +#: js/blocks/EnsembleBlocks.js:1124 msgid "turtle count" msgstr "" -#: js/EnsembleBlocks.js:1127 +#: js/blocks/EnsembleBlocks.js:1127 msgid "The Turtle-count block returns the number of turtles." msgstr "" -#: js/EnsembleBlocks.js:1149 +#: js/blocks/EnsembleBlocks.js:1149 msgid "nth mouse name" msgstr "" -#: js/EnsembleBlocks.js:1152 +#: js/blocks/EnsembleBlocks.js:1152 msgid "The Nth-Mouse name block returns the name of the nth mouse." msgstr "" -#: js/EnsembleBlocks.js:1158 +#: js/blocks/EnsembleBlocks.js:1158 msgid "nth turtle name" msgstr "" -#: js/EnsembleBlocks.js:1161 +#: js/blocks/EnsembleBlocks.js:1161 msgid "The Nth-Turtle name block returns the name of the nth turtle." msgstr "" -#: js/EnsembleBlocks.js:1205 -#: js/EnsembleBlocks.js:1265 +#: js/blocks/EnsembleBlocks.js:1205 +#: js/blocks/EnsembleBlocks.js:1265 msgid "set name" msgstr "" -#: js/EnsembleBlocks.js:1214 -#: js/EnsembleBlocks.js:1221 +#: js/blocks/EnsembleBlocks.js:1214 +#: js/blocks/EnsembleBlocks.js:1221 msgid "source" msgstr "" -#: js/EnsembleBlocks.js:1214 -#: js/EnsembleBlocks.js:1221 +#: js/blocks/EnsembleBlocks.js:1214 +#: js/blocks/EnsembleBlocks.js:1221 msgid "target" msgstr "" -#: js/EnsembleBlocks.js:1271 +#: js/blocks/EnsembleBlocks.js:1271 msgid "The Set-name block is used to name a mouse." msgstr "" -#: js/EnsembleBlocks.js:1284 +#: js/blocks/EnsembleBlocks.js:1284 msgid "The Set-name block is used to name a turtle." msgstr "" -#: js/BooleanBlocks.js:44 -msgid "The Not block is the logical not operator." -msgstr "" - -#: js/BooleanBlocks.js:62 -msgid "not" -msgstr "" - -#: js/BooleanBlocks.js:134 -msgid "The And block is the logical and operator." -msgstr "" - -#: js/BooleanBlocks.js:152 -msgid "and" -msgstr "" - -#: js/BooleanBlocks.js:218 -msgid "The Or block is the logical or operator." -msgstr "" - -#: js/BooleanBlocks.js:236 -msgid "or" -msgstr "" - -#: js/BooleanBlocks.js:302 -msgid "The XOR block is the logical XOR operator." -msgstr "" - -#: js/BooleanBlocks.js:320 -msgid "xor" -msgstr "" - -#: js/BooleanBlocks.js:808 -msgid "The Equal block returns True if the two numbers are equal." -msgstr "" - -#: js/BooleanBlocks.js:909 -msgid "The Not-equal-to block returns True if the two numbers are not equal to each other." -msgstr "" - -#: js/BooleanBlocks.js:1008 -msgid "The Boolean block is used to specify true or false." -msgstr "" - -#: js/MediaBlocks.js:35 -#.TRANS: right side of the screen -msgid "right (screen)" -msgstr "" - -#: js/MediaBlocks.js:45 -#: js/MediaBlocks.js:56 -msgid "The Right block returns the position of the right of the canvas." -msgstr "" - -#: js/MediaBlocks.js:97 -#.TRANS: left side of the screen -msgid "left (screen)" -msgstr "" - -#: js/MediaBlocks.js:107 -#: js/MediaBlocks.js:118 -msgid "The Left block returns the position of the left of the canvas." -msgstr "" - -#: js/MediaBlocks.js:158 -msgid "top (screen)" -msgstr "" - -#: js/MediaBlocks.js:168 -#: js/MediaBlocks.js:179 -msgid "The Top block returns the position of the top of the canvas." -msgstr "" - -#: js/MediaBlocks.js:219 -msgid "bottom (screen)" +#: js/blocks/ExtrasBlocks.js:33 +msgid "fraction" msgstr "" -#: js/MediaBlocks.js:229 -#: js/MediaBlocks.js:240 -msgid "The Bottom block returns the position of the bottom of the canvas." +#: js/blocks/ExtrasBlocks.js:36 +msgid "Convert a float to a fraction" msgstr "" -#: js/MediaBlocks.js:282 -msgid "width" +#: js/blocks/ExtrasBlocks.js:93 +msgid "save as ABC" msgstr "" -#: js/MediaBlocks.js:291 -msgid "The Width block returns the width of the canvas." +#: js/blocks/ExtrasBlocks.js:96 +#: js/blocks/ExtrasBlocks.js:132 +#: js/blocks/ExtrasBlocks.js:168 +msgid "title" msgstr "" -#: js/MediaBlocks.js:325 -msgid "height" +#: js/blocks/ExtrasBlocks.js:129 +msgid "save as Lilypond" msgstr "" -#: js/MediaBlocks.js:334 -msgid "The Height block returns the height of the canvas." +#: js/blocks/ExtrasBlocks.js:165 +msgid "save as SVG" msgstr "" -#: js/MediaBlocks.js:369 -#.TRANS: stops playback of an audio recording -msgid "stop play" +#: js/blocks/ExtrasBlocks.js:216 +msgid "no background" msgstr "" -#: js/MediaBlocks.js:404 -#.TRANS: Erases the images and text -msgid "erase media" +#: js/blocks/ExtrasBlocks.js:219 +msgid "The No background block eliminates the background from the saved SVG output." msgstr "" -#: js/MediaBlocks.js:409 -msgid "The Erase Media block erases text and images." +#: js/blocks/ExtrasBlocks.js:247 +msgid "show blocks" msgstr "" -#: js/MediaBlocks.js:439 -#.TRANS: play an audio recording -msgid "play back" +#: js/blocks/ExtrasBlocks.js:249 +msgid "The Show blocks block shows the blocks." msgstr "" -#: js/MediaBlocks.js:487 -msgid "speak" +#: js/blocks/ExtrasBlocks.js:274 +msgid "hide blocks" msgstr "" -#: js/MediaBlocks.js:495 -msgid "The Speak block outputs to the text-to-speech synthesizer" +#: js/blocks/ExtrasBlocks.js:276 +msgid "The Hide blocks block hides the blocks." msgstr "" -#: js/MediaBlocks.js:546 -msgid "camera" +#: js/blocks/ExtrasBlocks.js:305 +#: js/blocks/ExtrasBlocks.js:338 +msgid "The Space block is used to add space between blocks." msgstr "" -#: js/MediaBlocks.js:551 -msgid "The Camera block connects a webcam to the Show block." +#: js/blocks/ExtrasBlocks.js:376 +msgid "wait" msgstr "" -#: js/MediaBlocks.js:574 -msgid "video" +#: js/blocks/ExtrasBlocks.js:379 +msgid "The Wait block pauses the program for a specified number of seconds." msgstr "" -#: js/MediaBlocks.js:579 -msgid "The Video block selects video for use with the Show block." +#: js/blocks/ExtrasBlocks.js:433 +#: plugins/facebook.rtp:30 +msgid "comment" msgstr "" -#: js/MediaBlocks.js:607 -msgid "The Open file block opens a file for use with the Show block." +#: js/blocks/ExtrasBlocks.js:469 +msgid "print" msgstr "" -#: js/MediaBlocks.js:645 -msgid "stop media" +#: js/blocks/ExtrasBlocks.js:476 +msgid "The Print block displays text at the top of the screen." msgstr "" -#: js/MediaBlocks.js:650 -msgid "The Stop media block stops audio or video playback." +#: js/blocks/ExtrasBlocks.js:582 +msgid "display grid" msgstr "" -#: js/MediaBlocks.js:679 -#: js/PitchBlocks.js:1539 -#: js/phrasemaker.js:822 -#: js/musickeyboard.js:1654 -#.TRANS: a measure of frequency: one cycle per second -msgid "hertz" +#: js/blocks/ExtrasBlocks.js:587 +msgid "The Display Grid Block changes the grid type" msgstr "" -#: js/MediaBlocks.js:692 -msgid "duration (ms)" +#: js/blocks/ExtrasBlocks.js:689 +#: js/blocks/ExtrasBlocks.js:708 +#: js/blocks/ExtrasBlocks.js:731 +#: js/blocks/ExtrasBlocks.js:754 +#: js/blocks/ExtrasBlocks.js:772 +#: js/blocks/ExtrasBlocks.js:791 +#: js/blocks/ExtrasBlocks.js:810 +#: js/blocks/ExtrasBlocks.js:829 +msgid "unknown" msgstr "" -#: js/MediaBlocks.js:728 -#.TRANS: translate a note into hertz, e.g., A4 -> 440HZ -msgid "note to frequency" +#: js/blocks/FlowBlocks.js:41 +msgid "The Backward block runs code in reverse order (Musical retrograde)." msgstr "" -#: js/MediaBlocks.js:736 -msgid "The To frequency block converts a pitch name and octave to Hertz." +#: js/blocks/FlowBlocks.js:48 +msgid "backward" msgstr "" -#: js/MediaBlocks.js:746 -#: js/PitchBlocks.js:656 -#: js/PitchBlocks.js:932 -#: js/PitchBlocks.js:1827 -#.TRANS: name2 is name as in name of pitch (JAPANESE ONLY) -msgid "name2" +#: js/blocks/FlowBlocks.js:124 +msgid "The Duplicate block will run each block multiple times." msgstr "" -#: js/MediaBlocks.js:812 -msgid "The Avatar block is used to change the appearance of the mouse." +#: js/blocks/FlowBlocks.js:136 +msgid "duplicate" msgstr "" -#: js/MediaBlocks.js:819 -msgid "The Avatar block is used to change the appearance of the turtle." +#: js/blocks/FlowBlocks.js:334 +msgid "The Default block is used inside of a Switch to define the default action." msgstr "" -#: js/MediaBlocks.js:831 -#: js/MediaBlocks.js:891 -#.TRANS: a media object -msgid "size" +#: js/blocks/FlowBlocks.js:342 +msgid "default" msgstr "" -#: js/MediaBlocks.js:831 -msgid "image" +#: js/blocks/FlowBlocks.js:361 +#: js/blocks/FlowBlocks.js:418 +msgid "The Case Block must be used inside of a Switch Block." msgstr "" -#: js/MediaBlocks.js:880 -msgid "The Show block is used to display text or images on the canvas." +#: js/blocks/FlowBlocks.js:389 +msgid "The Case block is used inside of a Switch to define matches." msgstr "" -#: js/MediaBlocks.js:888 -#.TRANS: show1 is show as in display an image or text on the screen. -msgid "show1" +#: js/blocks/FlowBlocks.js:397 +msgid "case" msgstr "" -#: js/MediaBlocks.js:891 -msgid "obj" +#: js/blocks/FlowBlocks.js:446 +msgid "The Switch block will run the code in the matching Case." msgstr "" -#: js/MediaBlocks.js:938 -msgid "The Media block is used to import an image." +#: js/blocks/FlowBlocks.js:454 +msgid "switch" msgstr "" -#: js/MediaBlocks.js:973 -msgid "The Text block holds a text string." +#: js/blocks/FlowBlocks.js:595 +msgid "The Stop block will stop a loop" msgstr "" -#: js/ProgramBlocks.js:33 -msgid "The Load-heap-from-app block loads the heap from a web page." +#: js/blocks/FlowBlocks.js:597 +msgid "Forever, Repeat, While, or Until." msgstr "" -#: js/ProgramBlocks.js:44 -#.TRANS: load the heap contents from a URL -msgid "load heap from App" +#: js/blocks/FlowBlocks.js:604 +#: js/widgets/timbre.js:417 +#: js/widgets/timbre.js:419 +#: js/widgets/musickeyboard.js:819 +#: js/widgets/musickeyboard.js:821 +#: js/widgets/phrasemaker.js:4202 +#: plugins/rodi.rtp:29 +#: plugins/rodi.rtp:73 +#: plugins/rodi.rtp:413 +msgid "stop" msgstr "" -#: js/ProgramBlocks.js:95 -msgid "Error parsing JSON data:" +#: js/blocks/FlowBlocks.js:653 +msgid "The Waitfor block will wait until the condition is true." msgstr "" -#: js/ProgramBlocks.js:100 -msgid "404: Page not found" +#: js/blocks/FlowBlocks.js:661 +msgid "wait for" msgstr "" -#: js/ProgramBlocks.js:133 -msgid "The Save-heap-to-app block saves the heap to a web page." +#: js/blocks/FlowBlocks.js:732 +msgid "The Until block will repeat until the condition is true." msgstr "" -#: js/ProgramBlocks.js:144 -#.TRANS: save the heap contents to a URL -msgid "save heap to App" +#: js/blocks/FlowBlocks.js:740 +msgid "until" msgstr "" -#: js/ProgramBlocks.js:189 -msgid "Cannot find a valid heap for" +#: js/blocks/FlowBlocks.js:742 +#: js/blocks/FlowBlocks.js:822 +msgid "do2" msgstr "" -#: js/ProgramBlocks.js:206 -msgid "The Load-heap block loads the heap from a file." +#: js/blocks/FlowBlocks.js:812 +msgid "The While block will repeat while the condition is true." msgstr "" -#: js/ProgramBlocks.js:217 -#.TRANS: load the heap from a file -msgid "load heap" +#: js/blocks/FlowBlocks.js:820 +msgid "while" msgstr "" -#: js/ProgramBlocks.js:270 -msgid "The file you selected does not contain a valid heap." +#: js/blocks/FlowBlocks.js:903 +#: js/blocks/FlowBlocks.js:968 +#: js/blocks/FlowBlocks.js:979 +msgid "In this example if the mouse button is pressed a snare drum will play." msgstr "" -#: js/ProgramBlocks.js:275 -msgid "The loadHeap block needs a loadFile block." +#: js/blocks/FlowBlocks.js:925 +#: js/blocks/FlowBlocks.js:988 +msgid "if" msgstr "" -#: js/ProgramBlocks.js:291 -msgid "The Set-heap block loads the heap." +#: js/blocks/FlowBlocks.js:927 +#: js/blocks/FlowBlocks.js:990 +msgid "then" msgstr "" -#: js/ProgramBlocks.js:299 -#: js/HeapBlocks.js:539 -#.TRANS: load the heap from a JSON encoding -msgid "set heap" +#: js/blocks/FlowBlocks.js:927 +msgid "else" msgstr "" -#: js/ProgramBlocks.js:340 -msgid "The block you selected does not contain a valid heap." +#: js/blocks/FlowBlocks.js:1025 +msgid "The Forever block will repeat the contained blocks forever." msgstr "" -#: js/ProgramBlocks.js:343 -msgid "The Set heap block needs a heap." +#: js/blocks/FlowBlocks.js:1037 +msgid "forever" msgstr "" -#: js/ProgramBlocks.js:360 -msgid "The Load-dictionary block loads a dictionary from a file." +#: js/blocks/FlowBlocks.js:1073 +msgid "The Repeat block will repeat the contained blocks." msgstr "" -#: js/ProgramBlocks.js:372 -#.TRANS: load a dictionary from a file -msgid "load dictionary" +#: js/blocks/FlowBlocks.js:1075 +msgid "In this example the note will be played 4 times." msgstr "" -#: js/ProgramBlocks.js:390 -#: js/ProgramBlocks.js:658 -#: js/ToneBlocks.js:1025 -msgid "file" +#: js/blocks/FlowBlocks.js:1083 +msgid "repeat" msgstr "" -#: js/ProgramBlocks.js:396 -#: js/ProgramBlocks.js:501 -#: js/ProgramBlocks.js:664 -#: js/DictBlocks.js:80 -#: js/DictBlocks.js:145 -#: js/DictBlocks.js:216 -#: js/DictBlocks.js:290 -msgid "My Dictionary" +#: js/blocks/FlowBlocks.js:1123 +msgid "duplicate factor" msgstr "" -#: js/ProgramBlocks.js:444 -msgid "The file you selected does not contain a valid dictionary." +#: js/blocks/HeapBlocks.js:49 +msgid "The Heap block returns the heap." msgstr "" -#: js/ProgramBlocks.js:449 -msgid "The load dictionary block needs a load file block." +#: js/blocks/HeapBlocks.js:133 +msgid "show heap" msgstr "" -#: js/ProgramBlocks.js:466 -msgid "The Set-dictionary block loads a dictionary." +#: js/blocks/HeapBlocks.js:181 +msgid "The Heap-length block returns the length of the heap." msgstr "" -#: js/ProgramBlocks.js:477 -#.TRANS: load a dictionary from a JSON -msgid "set dictionary" +#: js/blocks/HeapBlocks.js:195 +msgid "heap length" msgstr "" -#: js/ProgramBlocks.js:546 -msgid "The block you selected does not contain a valid dictionary." +#: js/blocks/HeapBlocks.js:254 +msgid "The Heap-empty? block returns true if the heap is empty." msgstr "" -#: js/ProgramBlocks.js:550 -msgid "The set dictionary block needs a dictionary." +#: js/blocks/HeapBlocks.js:268 +#.TRANS: Is the heap empty? +msgid "heap empty?" msgstr "" -#: js/ProgramBlocks.js:567 -msgid "The Save-heap block saves the heap to a file." +#: js/blocks/HeapBlocks.js:317 +msgid "The Empty-heap block empties the heap." msgstr "" -#: js/ProgramBlocks.js:578 -#.TRANS: save the heap to a file -msgid "save heap" +#: js/blocks/HeapBlocks.js:327 +#: js/blocks/HeapBlocks.js:647 +#.TRANS: empty the heap +msgid "empty heap" msgstr "" -#: js/ProgramBlocks.js:629 -msgid "The Save-dictionary block saves a dictionary to a file." +#: js/blocks/HeapBlocks.js:371 +msgid "The Reverse-heap block reverses the order of the heap." msgstr "" -#: js/ProgramBlocks.js:640 -#.TRANS: save a dictionary to a file -msgid "save dictionary" +#: js/blocks/HeapBlocks.js:384 +#.TRANS: reverse the order of the heap +msgid "reverse heap" msgstr "" -#: js/ProgramBlocks.js:720 -msgid "The Open palette block opens a palette." +#: js/blocks/HeapBlocks.js:428 +msgid "The Index-heap block returns a value in the heap at a specified location." msgstr "" -#: js/ProgramBlocks.js:727 -msgid "open palette" +#: js/blocks/HeapBlocks.js:443 +#.TRANS: retrieve a value from the heap at index position in the heap +msgid "index heap" msgstr "" -#: js/ProgramBlocks.js:785 -msgid "The Delete block block removes a block." +#: js/blocks/HeapBlocks.js:523 +msgid "The Set-heap entry block sets a value in he heap at the specified location." msgstr "" -#: js/ProgramBlocks.js:797 -#.TRANS: Move this block to the trash. -msgid "delete block" +#: js/blocks/HeapBlocks.js:539 +#: js/blocks/ProgramBlocks.js:299 +#.TRANS: load the heap from a JSON encoding +msgid "set heap" msgstr "" -#: js/ProgramBlocks.js:861 -msgid "The Move block block moves a block." +#: js/blocks/HeapBlocks.js:619 +msgid "The Pop block removes the value at the top of the heap." msgstr "" -#: js/ProgramBlocks.js:869 -#.TRANS: Move the position of a block on the screen. -msgid "move block" +#: js/blocks/HeapBlocks.js:633 +#.TRANS: pop a value off the top of the heap +msgid "pop" msgstr "" -#: js/ProgramBlocks.js:881 -#: js/ProgramBlocks.js:1048 -msgid "block number" +#: js/blocks/HeapBlocks.js:680 +msgid "The Push block adds a value to the top of the heap." msgstr "" -#: js/ProgramBlocks.js:935 -#.TRANS: Run program beginning at this block. -msgid "run block" +#: js/blocks/HeapBlocks.js:696 +#.TRANS: push a value onto the top of the heap +msgid "push" msgstr "" -#: js/ProgramBlocks.js:1025 -msgid "The Dock block block connections two blocks." +#: js/blocks/IntervalsBlocks.js:45 +msgid "set temperament" msgstr "" -#: js/ProgramBlocks.js:1036 -#.TRANS: We can connect a block to another block. -msgid "connect blocks" +#: js/blocks/IntervalsBlocks.js:63 +#: js/blocks/MediaBlocks.js:746 +#: js/blocks/PitchBlocks.js:657 +#: js/blocks/PitchBlocks.js:935 +#: js/blocks/PitchBlocks.js:974 +#: js/blocks/PitchBlocks.js:1007 +#: js/blocks/PitchBlocks.js:1194 +#: js/blocks/PitchBlocks.js:1717 +#: js/blocks/PitchBlocks.js:1758 +#: js/blocks/PitchBlocks.js:1866 +#: js/blocks/ToneBlocks.js:1025 +#: js/turtleactions/IntervalsActions.js:114 +#.TRANS: adjusts the shift up or down by one octave (twelve half-steps in the interval between two notes, one having twice or half the frequency in Hz of the other.) +msgid "octave" msgstr "" -#: js/ProgramBlocks.js:1048 -msgid "target block" +#: js/blocks/IntervalsBlocks.js:99 +msgid "The Temperament name block is used to select a tuning method." msgstr "" -#: js/ProgramBlocks.js:1048 -msgid "connection number" +#: js/blocks/IntervalsBlocks.js:161 +msgid "doubly" msgstr "" -#: js/ProgramBlocks.js:1140 -msgid "The Make block block creates a new block." +#: js/blocks/IntervalsBlocks.js:166 +msgid "The Doubly block will double the size of an interval." msgstr "" -#: js/ProgramBlocks.js:1152 -#.TRANS: Create a new block -msgid "make block" +#: js/blocks/IntervalsBlocks.js:262 +msgid "interval number" msgstr "" -#: js/ProgramBlocks.js:1186 -#: js/ProgramBlocks.js:1227 -#: js/RhythmBlocks.js:1128 -#: js/PitchBlocks.js:972 -#: js/PitchBlocks.js:1005 -#: js/temperament.js:340 -#: js/temperament.js:362 -#: js/temperament.js:372 -#: js/temperament.js:484 -#: js/status.js:190 -#: plugins/rodi.rtp:192 -#.TRANS: a musical note consisting of pitch and duration -msgid "note" +#: js/blocks/IntervalsBlocks.js:317 +msgid "current interval" msgstr "" -#: js/ProgramBlocks.js:1285 -msgid "Cannot find block" +#: js/blocks/IntervalsBlocks.js:387 +#.TRANS: measure the distance between two pitches in semi-tones +msgid "semi-tone interval measure" msgstr "" -#: js/ProgramBlocks.js:1304 -#: js/ProgramBlocks.js:1313 -msgid "Warning: block argument type mismatch" +#: js/blocks/IntervalsBlocks.js:454 +#: js/blocks/IntervalsBlocks.js:570 +msgid "You must use two pitch blocks when measuring an interval." msgstr "" -#: js/ProgramBlocks.js:1347 -msgid "The Open project block is used to open a project from a web page." +#: js/blocks/IntervalsBlocks.js:496 +msgid "The Scalar interval block measures the distance between two notes in the current key and mode." msgstr "" -#: js/ProgramBlocks.js:1357 -msgid "open project" +#: js/blocks/IntervalsBlocks.js:502 +#.TRANS: measure the distance between two pitches in steps of musical scale +msgid "scalar interval measure" msgstr "" -#: js/ProgramBlocks.js:1410 -msgid "Please enter a valid URL." +#: js/blocks/IntervalsBlocks.js:678 +msgid "In the figure, we add sol# to sol." msgstr "" -#: js/DrumBlocks.js:59 -msgid "The Noise name block is used to select a noise synthesizer." +#: js/blocks/IntervalsBlocks.js:684 +#: js/blocks/OrnamentBlocks.js:220 +#.TRANS: calculate a relative step between notes based on semi-tones +msgid "semi-tone interval" msgstr "" -#: js/DrumBlocks.js:102 -msgid "The Drum name block is used to select a drum." +#: js/blocks/IntervalsBlocks.js:733 +msgid "The output of the example is: do, mi, sol, sol, ti, mi" msgstr "" -#: js/DrumBlocks.js:146 -msgid "The Effects name block is used to select a sound effect." +#: js/blocks/IntervalsBlocks.js:740 +#: js/blocks/WidgetBlocks.js:768 +msgid "arpeggio" msgstr "" -#: js/DrumBlocks.js:163 -msgid "noise" +#: js/blocks/IntervalsBlocks.js:931 +msgid "The Chord block calculates common chords." msgstr "" -#: js/DrumBlocks.js:177 -msgid "The Play noise block will generate white, pink, or brown noise." +#: js/blocks/IntervalsBlocks.js:933 +msgid "In the figure, we generate a C-major chord." msgstr "" -#: js/DrumBlocks.js:191 -#: js/musicutils.js:752 -#: js/synthutils.js:47 -#.TRANS: white noise synthesizer -msgid "white noise" +#: js/blocks/IntervalsBlocks.js:938 +msgid "chord" msgstr "" -#: js/DrumBlocks.js:326 -msgid "Replace every instance of a pitch with a drum sound." +#: js/blocks/IntervalsBlocks.js:990 +msgid "The Ratio Interval block calculates an interval based on a ratio." msgstr "" -#: js/DrumBlocks.js:337 -#.TRANS: map a pitch to a drum sound -msgid "map pitch to drum" +#: js/blocks/IntervalsBlocks.js:995 +msgid "ratio interval" msgstr "" -#: js/DrumBlocks.js:404 -msgid "In the example above, a kick drum sound will be played instead of sol." +#: js/blocks/IntervalsBlocks.js:1064 +msgid "In the figure, we add la to sol." msgstr "" -#: js/DrumBlocks.js:416 -#.TRANS: set the current drum sound for playback -msgid "set drum" +#: js/blocks/IntervalsBlocks.js:1120 +#.TRANS: define a custom mode +msgid "define mode" msgstr "" -#: js/DrumBlocks.js:460 -msgid "sound effect" +#: js/blocks/IntervalsBlocks.js:1173 +msgid "movable Do" msgstr "" -#: js/DrumBlocks.js:498 -msgid "You can use multiple Drum blocks within a Note block." +#: js/blocks/IntervalsBlocks.js:1224 +#.TRANS: mode length is the number of notes in the mode, e.g., 7 for major and minor scales; 12 for chromatic scales +msgid "mode length" msgstr "" -#: js/RhythmBlocks.js:182 -#: js/RhythmBlocks.js:1086 -#: js/RhythmBlocks.js:1162 -msgid "Note value must be greater than 0." +#: js/blocks/IntervalsBlocks.js:1233 +msgid "The Mode length block is the number of notes in the current scale." msgstr "" -#: js/RhythmBlocks.js:215 -#: js/RhythmBlocks.js:278 -#: js/RhythmBlocks.js:350 -#.TRANS: swing is a rhythmic variation that emphasises the offbeat -msgid "swing" +#: js/blocks/IntervalsBlocks.js:1235 +msgid "Most Western scales have 7 notes." msgstr "" -#: js/RhythmBlocks.js:355 -#.TRANS: the amount to shift to the offbeat note -msgid "swing value" +#: js/blocks/IntervalsBlocks.js:1284 +#.TRANS: the mode in music is 'major', 'minor', etc. +msgid "current mode" msgstr "" -#: js/RhythmBlocks.js:419 -msgid "The Skip notes block will cause notes to be skipped." +#: js/blocks/IntervalsBlocks.js:1337 +#.TRANS: the key is a group of pitches with which a music composition is created +msgid "current key" msgstr "" -#: js/RhythmBlocks.js:427 -#.TRANS: substitute rests on notes being skipped -msgid "skip notes" +#: js/blocks/IntervalsBlocks.js:1389 +#: js/blocks/IntervalsBlocks.js:1434 +#.TRANS: set the key and mode, e.g. C Major +msgid "set key" msgstr "" -#: js/RhythmBlocks.js:489 -#.TRANS: speed up note duration by some factor, e.g. convert 1/4 to 1/8 notes by using a factor of 2 -msgid "multiply note value" +#: js/blocks/IntervalsBlocks.js:1443 +#: js/blocks/IntervalsBlocks.js:1449 +msgid "The Set key block is used to set the key and mode," msgstr "" -#: js/RhythmBlocks.js:542 -msgid "The Tie block works on pairs of notes, combining them into one note." +#: js/blocks/IntervalsBlocks.js:1449 +msgid "eg C Major" msgstr "" -#: js/RhythmBlocks.js:550 -#.TRANS: tie notes together into one longer note -msgid "tie" +#: js/blocks/MediaBlocks.js:35 +#.TRANS: right side of the screen +msgid "right (screen)" msgstr "" -#: js/RhythmBlocks.js:591 -#: js/RhythmBlocks.js:671 -#.TRANS: a dotted note is played for 1.5x its value, e.g., 1/8. --> 3/16 -msgid "dot" +#: js/blocks/MediaBlocks.js:45 +#: js/blocks/MediaBlocks.js:56 +msgid "The Right block returns the position of the right of the canvas." msgstr "" -#: js/RhythmBlocks.js:619 -#: js/RhythmActions.js:221 -msgid "An argument of -1 results in a note value of 0." +#: js/blocks/MediaBlocks.js:97 +#.TRANS: left side of the screen +msgid "left (screen)" msgstr "" -#: js/RhythmBlocks.js:661 -msgid "The Dot block extends the duration of a note by 50%." +#: js/blocks/MediaBlocks.js:107 +#: js/blocks/MediaBlocks.js:118 +msgid "The Left block returns the position of the left of the canvas." msgstr "" -#: js/RhythmBlocks.js:663 -msgid "Eg a dotted quarter note will play for 3/8 (1/4 + 1/8) of a beat." +#: js/blocks/MediaBlocks.js:158 +msgid "top (screen)" msgstr "" -#: js/RhythmBlocks.js:765 -#.TRANS: Japanese only: note value block for drum -msgid "note value drum" +#: js/blocks/MediaBlocks.js:168 +#: js/blocks/MediaBlocks.js:179 +msgid "The Top block returns the position of the top of the canvas." msgstr "" -#: js/RhythmBlocks.js:829 -msgid "392 hertz" +#: js/blocks/MediaBlocks.js:219 +msgid "bottom (screen)" msgstr "" -#: js/RhythmBlocks.js:1119 -msgid "The Note block is a container for one or more Pitch blocks." +#: js/blocks/MediaBlocks.js:229 +#: js/blocks/MediaBlocks.js:240 +msgid "The Bottom block returns the position of the bottom of the canvas." msgstr "" -#: js/RhythmBlocks.js:1121 -msgid "The Note block specifies the duration (note value) of its contents." +#: js/blocks/MediaBlocks.js:282 +msgid "width" msgstr "" -#: js/RhythmBlocks.js:1130 -msgid "value2" +#: js/blocks/MediaBlocks.js:291 +msgid "The Width block returns the width of the canvas." msgstr "" -#: js/RhythmBlocks.js:1200 -msgid "define frequency" +#: js/blocks/MediaBlocks.js:325 +msgid "height" msgstr "" -#: js/RhythmBlocks.js:1218 -#: js/temperament.js:650 -#: js/temperament.js:1421 -msgid "octave space" +#: js/blocks/MediaBlocks.js:334 +msgid "The Height block returns the height of the canvas." msgstr "" -#: js/NumberBlocks.js:28 -msgid "The Int block returns an integer." +#: js/blocks/MediaBlocks.js:369 +#.TRANS: stops playback of an audio recording +msgid "stop play" msgstr "" -#: js/NumberBlocks.js:34 -msgid "int" +#: js/blocks/MediaBlocks.js:404 +#.TRANS: Erases the images and text +msgid "erase media" msgstr "" -#: js/NumberBlocks.js:73 -msgid "The Mod block returns the remainder from a division." +#: js/blocks/MediaBlocks.js:409 +msgid "The Erase Media block erases text and images." msgstr "" -#: js/NumberBlocks.js:79 -msgid "mod" +#: js/blocks/MediaBlocks.js:439 +#.TRANS: play an audio recording +msgid "play back" msgstr "" -#: js/NumberBlocks.js:123 -msgid "The Power block calculates a power function." +#: js/blocks/MediaBlocks.js:487 +msgid "speak" msgstr "" -#: js/NumberBlocks.js:178 -msgid "The Sqrt block returns the square root." +#: js/blocks/MediaBlocks.js:495 +msgid "The Speak block outputs to the text-to-speech synthesizer" msgstr "" -#: js/NumberBlocks.js:184 -msgid "sqrt" +#: js/blocks/MediaBlocks.js:546 +msgid "camera" msgstr "" -#: js/NumberBlocks.js:230 -msgid "The Abs block returns the absolute value." +#: js/blocks/MediaBlocks.js:551 +msgid "The Camera block connects a webcam to the Show block." msgstr "" -#: js/NumberBlocks.js:236 -msgid "abs" +#: js/blocks/MediaBlocks.js:574 +msgid "video" msgstr "" -#: js/NumberBlocks.js:277 -msgid "The Distance block returns the distance between two points. For example, between the mouse and the center of the screen." +#: js/blocks/MediaBlocks.js:579 +msgid "The Video block selects video for use with the Show block." msgstr "" -#: js/NumberBlocks.js:283 -#: plugins/rodi.rtp:310 -msgid "distance" +#: js/blocks/MediaBlocks.js:607 +msgid "The Open file block opens a file for use with the Show block." msgstr "" -#: js/NumberBlocks.js:343 -msgid "The Divide block is used to divide." +#: js/blocks/MediaBlocks.js:645 +msgid "stop media" msgstr "" -#: js/NumberBlocks.js:411 -msgid "The Multiply block is used to multiply." +#: js/blocks/MediaBlocks.js:650 +msgid "The Stop media block stops audio or video playback." msgstr "" -#: js/NumberBlocks.js:554 -msgid "The Minus block is used to subtract." +#: js/blocks/MediaBlocks.js:679 +#: js/blocks/PitchBlocks.js:1577 +#: js/widgets/musickeyboard.js:1936 +#: js/widgets/phrasemaker.js:1037 +#.TRANS: a measure of frequency: one cycle per second +msgid "hertz" msgstr "" -#: js/NumberBlocks.js:647 -msgid "The Plus block is used to add." +#: js/blocks/MediaBlocks.js:692 +#: js/blocks/WidgetBlocks.js:182 +#: js/widgets/temperament.js:506 +#: js/widgets/temperament.js:546 +#: js/widgets/temperament.js:610 +#: js/widgets/temperament.js:618 +#: js/widgets/temperament.js:1505 +#: js/widgets/timbre.js:1842 +msgid "frequency" msgstr "" -#: js/NumberBlocks.js:773 -msgid "The One-of block returns one of two choices." +#: js/blocks/MediaBlocks.js:692 +msgid "duration (ms)" msgstr "" -#: js/NumberBlocks.js:780 -#: js/PitchBlocks.js:616 -msgid "one of" +#: js/blocks/MediaBlocks.js:728 +#.TRANS: translate a note into hertz, e.g., A4 -> 440HZ +msgid "note to frequency" msgstr "" -#: js/NumberBlocks.js:782 -msgid "this" +#: js/blocks/MediaBlocks.js:736 +msgid "The To frequency block converts a pitch name and octave to Hertz." msgstr "" -#: js/NumberBlocks.js:782 -msgid "that" +#: js/blocks/MediaBlocks.js:746 +#: js/blocks/PitchBlocks.js:656 +#: js/blocks/PitchBlocks.js:934 +#: js/blocks/PitchBlocks.js:1866 +#.TRANS: name2 is name as in name of pitch (JAPANESE ONLY) +msgid "name2" msgstr "" -#: js/NumberBlocks.js:837 -msgid "The Random block returns a random number." +#: js/blocks/MediaBlocks.js:812 +msgid "The Avatar block is used to change the appearance of the mouse." msgstr "" -#: js/NumberBlocks.js:844 -msgid "random" +#: js/blocks/MediaBlocks.js:819 +msgid "The Avatar block is used to change the appearance of the turtle." msgstr "" -#: js/NumberBlocks.js:846 -msgid "min" +#: js/blocks/MediaBlocks.js:831 +#: js/blocks/MediaBlocks.js:891 +#.TRANS: a media object +msgid "size" msgstr "" -#: js/NumberBlocks.js:846 -msgid "max" +#: js/blocks/MediaBlocks.js:831 +msgid "image" msgstr "" -#: js/NumberBlocks.js:910 -msgid "The Number block holds a number." +#: js/blocks/MediaBlocks.js:880 +msgid "The Show block is used to display text or images on the canvas." msgstr "" -#: js/BoxesBlocks.js:53 -#: js/BoxesBlocks.js:59 -msgid "The Add-to block is used to add to the value stored in a box." +#: js/blocks/MediaBlocks.js:888 +#.TRANS: show1 is show as in display an image or text on the screen. +msgid "show1" msgstr "" -#: js/BoxesBlocks.js:61 -msgid "It can also be used with other blocks such as Color and Pen size." +#: js/blocks/MediaBlocks.js:891 +msgid "obj" msgstr "" -#: js/BoxesBlocks.js:73 -msgid "add" +#: js/blocks/MediaBlocks.js:938 +msgid "The Media block is used to import an image." msgstr "" -#: js/BoxesBlocks.js:75 -#: js/temperament.js:716 -msgid "to" +#: js/blocks/MediaBlocks.js:973 +msgid "The Text block holds a text string." msgstr "" -#: js/BoxesBlocks.js:75 -#: js/BoxesBlocks.js:595 -#: js/HeapBlocks.js:544 -msgid "value1" +#: js/blocks/MeterBlocks.js:34 +#.TRANS: musical meter (time signature), e.g., 4:4 +msgid "current meter" msgstr "" -#: js/BoxesBlocks.js:118 -msgid "Block does not support incrementing." +#: js/blocks/MeterBlocks.js:85 +#.TRANS: number of beats per minute +msgid "beat factor" msgstr "" -#: js/BoxesBlocks.js:152 -msgid "The Add-1-to block adds one to the value stored in a box." +#: js/blocks/MeterBlocks.js:161 +msgid "The Beats per minute block returns the current beats per minute." msgstr "" -#: js/BoxesBlocks.js:163 -msgid "add 1 to" +#: js/blocks/MeterBlocks.js:169 +#: js/widgets/status.js:152 +#.TRANS: number of beats played per minute +msgid "beats per minute2" msgstr "" -#: js/BoxesBlocks.js:211 -msgid "The Subtract-1-from block subtracts one from the value stored in a box." +#: js/blocks/MeterBlocks.js:169 +#: js/blocks/MeterBlocks.js:1056 +#: js/blocks/MeterBlocks.js:1133 +#: js/blocks/MeterBlocks.js:1211 +#.TRANS: sets tempo by defining a beat and beats per minute +msgid "beats per minute" msgstr "" -#: js/BoxesBlocks.js:222 -msgid "subtract 1 from" +#: js/blocks/MeterBlocks.js:233 +#.TRANS: count of current musical measure in meter +msgid "measure count" msgstr "" -#: js/BoxesBlocks.js:270 -#: js/BoxesBlocks.js:387 -msgid "The Box block returns the value stored in a box." +#: js/blocks/MeterBlocks.js:241 +msgid "The Measure count block returns the current measure." msgstr "" -#: js/BoxesBlocks.js:500 -#: js/BoxesBlocks.js:576 -msgid "The Store in block will store a value in a box." +#: js/blocks/MeterBlocks.js:290 +#.TRANS: count of current beat in the meter +msgid "beat count" msgstr "" -#: js/BoxesBlocks.js:652 -msgid "The Box2 block returns the value stored in Box2." +#: js/blocks/MeterBlocks.js:300 +#: js/blocks/MeterBlocks.js:311 +#: js/blocks/MeterBlocks.js:565 +#: js/blocks/MeterBlocks.js:576 +msgid "The Beat count block is the number of the current beat," msgstr "" -#: js/BoxesBlocks.js:703 -msgid "The Store in Box2 block is used to store a value in Box2." +#: js/blocks/MeterBlocks.js:313 +#: js/blocks/MeterBlocks.js:578 +msgid "eg 1, 2, 3, or 4." msgstr "" -#: js/BoxesBlocks.js:715 -msgid "store in box2" +#: js/blocks/MeterBlocks.js:368 +#.TRANS: count the number of notes +msgid "sum note values" msgstr "" -#: js/BoxesBlocks.js:761 -msgid "The Box1 block returns the value stored in Box1." +#: js/blocks/MeterBlocks.js:376 +#: js/blocks/MeterBlocks.js:440 +msgid "The Note counter block can be used to count the number of contained notes." msgstr "" -#: js/BoxesBlocks.js:812 -msgid "The Store in Box1 block is used to store a value in Box1." +#: js/blocks/MeterBlocks.js:432 +#.TRANS: count the number of notes +msgid "note counter" msgstr "" -#: js/BoxesBlocks.js:826 -msgid "store in box1" +#: js/blocks/MeterBlocks.js:496 +#.TRANS: number of whole notes that have been played +msgid "whole notes played" msgstr "" -#: js/HeapBlocks.js:49 -msgid "The Heap block returns the heap." +#: js/blocks/MeterBlocks.js:505 +msgid "The Whole notes played block returns the total number of whole notes played." msgstr "" -#: js/HeapBlocks.js:133 -msgid "show heap" +#: js/blocks/MeterBlocks.js:555 +#: js/turtleactions/DictActions.js:83 +#.TRANS: number of notes that have been played +msgid "notes played" msgstr "" -#: js/HeapBlocks.js:181 -msgid "The Heap-length block returns the length of the heap." +#: js/blocks/MeterBlocks.js:653 +msgid "The No clock block decouples the notes from the master clock." msgstr "" -#: js/HeapBlocks.js:195 -msgid "heap length" +#: js/blocks/MeterBlocks.js:661 +#.TRANS: don't lock notes to master clock +msgid "no clock" msgstr "" -#: js/HeapBlocks.js:254 -msgid "The Heap-empty? block returns true if the heap is empty." +#: js/blocks/MeterBlocks.js:700 +msgid "on weak beat do" msgstr "" -#: js/HeapBlocks.js:268 -#.TRANS: Is the heap empty? -msgid "heap empty?" +#: js/blocks/MeterBlocks.js:705 +msgid "The On-weak-beat block lets you specify actions to take on weak (off) beats." msgstr "" -#: js/HeapBlocks.js:317 -msgid "The Empty-heap block empties the heap." +#: js/blocks/MeterBlocks.js:750 +msgid "on strong beat" msgstr "" -#: js/HeapBlocks.js:327 -#: js/HeapBlocks.js:647 -#.TRANS: empty the heap -msgid "empty heap" +#: js/blocks/MeterBlocks.js:758 +msgid "The On-strong-beat block lets you specify actions to take on specified beats." msgstr "" -#: js/HeapBlocks.js:371 -msgid "The Reverse-heap block reverses the order of the heap." +#: js/blocks/MeterBlocks.js:769 +msgid "beat" msgstr "" -#: js/HeapBlocks.js:384 -#.TRANS: reverse the order of the heap -msgid "reverse heap" +#: js/blocks/MeterBlocks.js:813 +msgid "on every beat do" msgstr "" -#: js/HeapBlocks.js:428 -msgid "The Index-heap block returns a value in the heap at a specified location." +#: js/blocks/MeterBlocks.js:821 +msgid "The On-every-beat block lets you specify actions to take on every beat." msgstr "" -#: js/HeapBlocks.js:443 -#.TRANS: retrieve a value from the heap at index position in the heap -msgid "index heap" +#: js/blocks/MeterBlocks.js:874 +msgid "on every note do" msgstr "" -#: js/HeapBlocks.js:523 -msgid "The Set-heap entry block sets a value in he heap at the specified location." +#: js/blocks/MeterBlocks.js:882 +msgid "The On-every-note block lets you specify actions to take on every note." msgstr "" -#: js/HeapBlocks.js:619 -msgid "The Pop block removes the value at the top of the heap." +#: js/blocks/MeterBlocks.js:928 +#: js/blocks/MeterBlocks.js:999 +#.TRANS: sets tempo by defining a beat and beats per minute +msgid "master beats per minute" msgstr "" -#: js/HeapBlocks.js:633 -#.TRANS: pop a value off the top of the heap -msgid "pop" +#: js/blocks/MeterBlocks.js:952 +#: js/blocks/MeterBlocks.js:1078 +#: js/blocks/MeterBlocks.js:1135 +msgid "bpm" msgstr "" -#: js/HeapBlocks.js:680 -msgid "The Push block adds a value to the top of the heap." +#: js/blocks/MeterBlocks.js:952 +#: js/blocks/MeterBlocks.js:1078 +#: js/blocks/MeterBlocks.js:1135 +msgid "beat value" msgstr "" -#: js/HeapBlocks.js:696 -#.TRANS: push a value onto the top of the heap -msgid "push" +#: js/blocks/MeterBlocks.js:1024 +#: js/blocks/MeterBlocks.js:1167 +#: js/blocks/MeterBlocks.js:1241 +msgid "Beats per minute must be > 30." msgstr "" -#: js/FlowBlocks.js:41 -msgid "The Backward block runs code in reverse order (Musical retrograde)." +#: js/blocks/MeterBlocks.js:1027 +#: js/blocks/MeterBlocks.js:1170 +#: js/blocks/MeterBlocks.js:1244 +msgid "Maximum beats per minute is 1000." msgstr "" -#: js/FlowBlocks.js:48 -msgid "backward" +#: js/blocks/MeterBlocks.js:1068 +msgid "The Beats per minute block sets the number of 1/4 notes per minute." msgstr "" -#: js/FlowBlocks.js:124 -msgid "The Duplicate block will run each block multiple times." +#: js/blocks/MeterBlocks.js:1279 +#.TRANS: anacrusis +msgid "pickup" msgstr "" -#: js/FlowBlocks.js:136 -msgid "duplicate" +#: js/blocks/MeterBlocks.js:1367 +msgid "number of beats" msgstr "" -#: js/FlowBlocks.js:334 -msgid "The Default block is used inside of a Switch to define the default action." +#: js/blocks/NumberBlocks.js:28 +msgid "The Int block returns an integer." msgstr "" -#: js/FlowBlocks.js:342 -msgid "default" +#: js/blocks/NumberBlocks.js:34 +msgid "int" msgstr "" -#: js/FlowBlocks.js:361 -#: js/FlowBlocks.js:418 -msgid "The Case Block must be used inside of a Switch Block." +#: js/blocks/NumberBlocks.js:73 +msgid "The Mod block returns the remainder from a division." msgstr "" -#: js/FlowBlocks.js:389 -msgid "The Case block is used inside of a Switch to define matches." +#: js/blocks/NumberBlocks.js:79 +msgid "mod" msgstr "" -#: js/FlowBlocks.js:397 -msgid "case" +#: js/blocks/NumberBlocks.js:141 +msgid "The Power block calculates a power function." msgstr "" -#: js/FlowBlocks.js:446 -msgid "The Switch block will run the code in the matching Case." +#: js/blocks/NumberBlocks.js:196 +msgid "The Sqrt block returns the square root." msgstr "" -#: js/FlowBlocks.js:454 -msgid "switch" +#: js/blocks/NumberBlocks.js:202 +msgid "sqrt" msgstr "" -#: js/FlowBlocks.js:595 -msgid "The Stop block will stop a loop" +#: js/blocks/NumberBlocks.js:248 +msgid "The Abs block returns the absolute value." msgstr "" -#: js/FlowBlocks.js:597 -msgid "Forever, Repeat, While, or Until." +#: js/blocks/NumberBlocks.js:254 +msgid "abs" msgstr "" -#: js/FlowBlocks.js:604 -#: js/phrasemaker.js:3799 -#: js/musickeyboard.js:629 -#: js/musickeyboard.js:631 -#: js/timbre.js:417 -#: js/timbre.js:419 -#: plugins/rodi.rtp:29 -#: plugins/rodi.rtp:73 -#: plugins/rodi.rtp:413 -msgid "stop" +#: js/blocks/NumberBlocks.js:295 +msgid "The Distance block returns the distance between two points. For example, between the mouse and the center of the screen." msgstr "" -#: js/FlowBlocks.js:653 -msgid "The Waitfor block will wait until the condition is true." +#: js/blocks/NumberBlocks.js:301 +#: plugins/rodi.rtp:310 +msgid "distance" msgstr "" -#: js/FlowBlocks.js:661 -msgid "wait for" +#: js/blocks/NumberBlocks.js:361 +msgid "The Divide block is used to divide." msgstr "" -#: js/FlowBlocks.js:732 -msgid "The Until block will repeat until the condition is true." +#: js/blocks/NumberBlocks.js:441 +msgid "The Multiply block is used to multiply." msgstr "" -#: js/FlowBlocks.js:740 -msgid "until" +#: js/blocks/NumberBlocks.js:612 +msgid "The Minus block is used to subtract." msgstr "" -#: js/FlowBlocks.js:742 -#: js/FlowBlocks.js:822 -msgid "do2" +#: js/blocks/NumberBlocks.js:723 +msgid "The Plus block is used to add." msgstr "" -#: js/FlowBlocks.js:812 -msgid "The While block will repeat while the condition is true." +#: js/blocks/NumberBlocks.js:849 +msgid "The One-of block returns one of two choices." msgstr "" -#: js/FlowBlocks.js:820 -msgid "while" +#: js/blocks/NumberBlocks.js:856 +#: js/blocks/PitchBlocks.js:616 +msgid "one of" msgstr "" -#: js/FlowBlocks.js:903 -#: js/FlowBlocks.js:968 -#: js/FlowBlocks.js:979 -msgid "In this example if the mouse button is pressed a snare drum will play." +#: js/blocks/NumberBlocks.js:858 +msgid "this" msgstr "" -#: js/FlowBlocks.js:925 -#: js/FlowBlocks.js:988 -msgid "if" +#: js/blocks/NumberBlocks.js:858 +msgid "that" msgstr "" -#: js/FlowBlocks.js:927 -#: js/FlowBlocks.js:990 -msgid "then" +#: js/blocks/NumberBlocks.js:913 +msgid "The Random block returns a random number." msgstr "" -#: js/FlowBlocks.js:927 -msgid "else" +#: js/blocks/NumberBlocks.js:920 +msgid "random" msgstr "" -#: js/FlowBlocks.js:1025 -msgid "The Forever block will repeat the contained blocks forever." +#: js/blocks/NumberBlocks.js:922 +msgid "min" msgstr "" -#: js/FlowBlocks.js:1037 -msgid "forever" +#: js/blocks/NumberBlocks.js:922 +msgid "max" msgstr "" -#: js/FlowBlocks.js:1073 -msgid "The Repeat block will repeat the contained blocks." +#: js/blocks/NumberBlocks.js:986 +msgid "The Number block holds a number." msgstr "" -#: js/FlowBlocks.js:1075 -msgid "In this example the note will be played 4 times." +#: js/blocks/OrnamentBlocks.js:32 +msgid "staccato factor" msgstr "" -#: js/FlowBlocks.js:1083 -msgid "repeat" +#: js/blocks/OrnamentBlocks.js:108 +msgid "slur factor" msgstr "" -#: js/FlowBlocks.js:1123 -msgid "duplicate factor" +#: js/blocks/OrnamentBlocks.js:217 +#: js/blocks/OrnamentBlocks.js:309 +#.TRANS: the neighbor refers to a neighboring note, e.g., D is a neighbor of C +msgid "neighbor" msgstr "" -#: js/PitchBlocks.js:39 -#: js/musicutils.js:722 -#: js/musicutils.js:1117 -#: js/synthutils.js:112 -#.TRANS: square wave -msgid "square" +#: js/blocks/OrnamentBlocks.js:293 +msgid "The Neighbor block rapidly switches between neighboring pitches." msgstr "" -#: js/PitchBlocks.js:62 -#: js/ToneBlocks.js:39 -#: js/musicutils.js:723 -#: js/musicutils.js:1118 -#: js/synthutils.js:116 -#.TRANS: triangle wave -msgid "triangle" +#: js/blocks/OrnamentBlocks.js:364 +msgid "glide" msgstr "" -#: js/PitchBlocks.js:85 -#: js/musicutils.js:721 -#: js/musicutils.js:1116 -#: js/synthutils.js:110 -#.TRANS: sine wave -msgid "sine" +#: js/blocks/OrnamentBlocks.js:479 +#: js/blocks/OrnamentBlocks.js:643 +msgid "slur" msgstr "" -#: js/PitchBlocks.js:108 -#: js/musicutils.js:724 -#: js/musicutils.js:1119 -#: js/synthutils.js:114 -#.TRANS: sawtooth wave -msgid "sawtooth" +#: js/blocks/OrnamentBlocks.js:558 +#: js/blocks/OrnamentBlocks.js:710 +#.TRANS: play each note sharply detached from the others +msgid "staccato" msgstr "" -#: js/PitchBlocks.js:141 -#.TRANS: musical transposition (adjustment of pitch up or down) -msgid "transposition" +#: js/blocks/RhythmBlocks.js:182 +#: js/blocks/RhythmBlocks.js:1086 +#: js/blocks/RhythmBlocks.js:1162 +msgid "Note value must be greater than 0." msgstr "" -#: js/PitchBlocks.js:168 -#.TRANS: step down one note in current musical scale -msgid "scalar step down" +#: js/blocks/RhythmBlocks.js:215 +#: js/blocks/RhythmBlocks.js:278 +#: js/blocks/RhythmBlocks.js:350 +#.TRANS: swing is a rhythmic variation that emphasises the offbeat +msgid "swing" msgstr "" -#: js/PitchBlocks.js:172 -msgid "The Scalar step down block returns the number of semi-tones down to the previous note in the current key and mode." +#: js/blocks/RhythmBlocks.js:355 +#.TRANS: the amount to shift to the offbeat note +msgid "swing value" msgstr "" -#: js/PitchBlocks.js:190 -#.TRANS: step up one note in current musical scale -msgid "scalar step up" +#: js/blocks/RhythmBlocks.js:419 +msgid "The Skip notes block will cause notes to be skipped." msgstr "" -#: js/PitchBlocks.js:194 -msgid "The Scalar step up block returns the number of semi-tones up to the next note in the current key and mode." +#: js/blocks/RhythmBlocks.js:427 +#.TRANS: substitute rests on notes being skipped +msgid "skip notes" msgstr "" -#: js/PitchBlocks.js:212 -#.TRANS: the change measured in half-steps between the current pitch and the previous pitch -msgid "change in pitch" +#: js/blocks/RhythmBlocks.js:489 +#.TRANS: speed up note duration by some factor, e.g. convert 1/4 to 1/8 notes by using a factor of 2 +msgid "multiply note value" msgstr "" -#: js/PitchBlocks.js:216 -msgid "The Change in pitch block is the difference (in half steps) between the current pitch being played and the previous pitch played." +#: js/blocks/RhythmBlocks.js:542 +msgid "The Tie block works on pairs of notes, combining them into one note." msgstr "" -#: js/PitchBlocks.js:243 -#.TRANS: the change measured in scale-steps between the current pitch and the previous pitch -msgid "scalar change in pitch" +#: js/blocks/RhythmBlocks.js:550 +#.TRANS: tie notes together into one longer note +msgid "tie" msgstr "" -#: js/PitchBlocks.js:250 -#: js/PitchBlocks.js:432 -#: js/PitchBlocks.js:1629 -#: js/DictActions.js:89 -#: js/temperament.js:477 -#: js/temperament.js:481 -#: js/temperament.js:714 -#.TRANS: convert current note to piano key (1-88) -#.TRANS: a mapping of pitch to the 88 piano keys -msgid "pitch number" +#: js/blocks/RhythmBlocks.js:591 +#: js/blocks/RhythmBlocks.js:671 +#.TRANS: a dotted note is played for 1.5x its value, e.g., 1/8. --> 3/16 +msgid "dot" msgstr "" -#: js/PitchBlocks.js:256 -msgid "The Pitch number block is the value of the pitch of the note currently being played." +#: js/blocks/RhythmBlocks.js:619 +#: js/turtleactions/RhythmActions.js:221 +msgid "An argument of -1 results in a note value of 0." msgstr "" -#: js/PitchBlocks.js:329 -#: js/PitchBlocks.js:433 -#.TRANS: the current pitch expressed in Hertz -msgid "pitch in hertz" +#: js/blocks/RhythmBlocks.js:661 +msgid "The Dot block extends the duration of a note by 50%." msgstr "" -#: js/PitchBlocks.js:334 -msgid "The Pitch in Hertz block is the value in Hertz of the pitch of the note currently being played." +#: js/blocks/RhythmBlocks.js:663 +msgid "Eg a dotted quarter note will play for 3/8 (1/4 + 1/8) of a beat." msgstr "" -#: js/PitchBlocks.js:367 -#: js/DictActions.js:87 -msgid "current pitch" +#: js/blocks/RhythmBlocks.js:765 +#.TRANS: Japanese only: note value block for drum +msgid "note value drum" msgstr "" -#: js/PitchBlocks.js:373 -msgid "The Current Pitch block is used with the Pitch Converter block. In the example above, current pitch, sol 4, is displayed as 392 hertz." +#: js/blocks/RhythmBlocks.js:829 +msgid "392 hertz" msgstr "" -#: js/PitchBlocks.js:410 -msgid "This block converts the pitch value of the last note played into different formats such as hertz, letter name, pitch number, et al." +#: js/blocks/RhythmBlocks.js:1119 +msgid "The Note block is a container for one or more Pitch blocks." msgstr "" -#: js/PitchBlocks.js:434 -msgid "alphabet" +#: js/blocks/RhythmBlocks.js:1121 +msgid "The Note block specifies the duration (note value) of its contents." msgstr "" -#: js/PitchBlocks.js:436 -#.TRANS: Translate as "alphabet class" -msgid "letter class" +#: js/blocks/RhythmBlocks.js:1128 +#: js/blocks/PitchBlocks.js:974 +#: js/blocks/PitchBlocks.js:1007 +#: js/blocks/ProgramBlocks.js:1186 +#: js/blocks/ProgramBlocks.js:1227 +#: js/widgets/status.js:190 +#: js/widgets/temperament.js:464 +#: js/widgets/temperament.js:486 +#: js/widgets/temperament.js:496 +#: js/widgets/temperament.js:617 +#: plugins/rodi.rtp:192 +#.TRANS: a musical note consisting of pitch and duration +msgid "note" msgstr "" -#: js/PitchBlocks.js:437 -msgid "solfege class" +#: js/blocks/RhythmBlocks.js:1130 +msgid "value2" msgstr "" -#: js/PitchBlocks.js:438 -msgid "staff y" +#: js/blocks/RhythmBlocks.js:1200 +msgid "define frequency" msgstr "" -#: js/PitchBlocks.js:439 -msgid "solfege syllable" +#: js/blocks/RhythmBlocks.js:1218 +#: js/widgets/temperament.js:787 +#: js/widgets/temperament.js:1587 +msgid "octave space" msgstr "" -#: js/PitchBlocks.js:440 -msgid "pitch class" +#: js/blocks/SensorsBlocks.js:36 +msgid "The Input block prompts for keyboard input." msgstr "" -#: js/PitchBlocks.js:441 -msgid "scalar class" +#: js/blocks/SensorsBlocks.js:46 +msgid "input" msgstr "" -#: js/PitchBlocks.js:443 -msgid "nth degree" +#: js/blocks/SensorsBlocks.js:64 +msgid "Input a value" msgstr "" -#: js/PitchBlocks.js:444 -msgid "pitch to shade" +#: js/blocks/SensorsBlocks.js:126 +msgid "input value" msgstr "" -#: js/PitchBlocks.js:445 -msgid "pitch to color" +#: js/blocks/SensorsBlocks.js:131 +msgid "The Input-value block stores the input." msgstr "" -#: js/PitchBlocks.js:629 -#: js/musickeyboard.js:565 -#.TRANS: MIDI is a technical standard for electronic music -msgid "MIDI" +#: js/blocks/SensorsBlocks.js:238 +msgid "loudness" msgstr "" -#: js/PitchBlocks.js:642 -#.TRANS: set an offset associated with the numeric piano keyboard mapping -msgid "set pitch number offset" +#: js/blocks/SensorsBlocks.js:245 +msgid "The Loudness block returns the volume detected by the microphone." msgstr "" -#: js/PitchBlocks.js:645 -msgid "The Set pitch number offset block is used to set the offset for mapping pitch numbers to pitch and octave." +#: js/blocks/SensorsBlocks.js:300 +msgid "click" msgstr "" -#: js/PitchBlocks.js:679 -#.TRANS: convert piano key number (1-88) to pitch -msgid "number to pitch" +#: js/blocks/SensorsBlocks.js:306 +msgid "The Click block triggers an event if a mouse has been clicked." msgstr "" -#: js/PitchBlocks.js:682 -msgid "The Number to pitch block will convert a pitch number to a pich name." +#: js/blocks/SensorsBlocks.js:313 +msgid "The Click block triggers an event if a turtle has been clicked." msgstr "" -#: js/PitchBlocks.js:715 -#.TRANS: convert piano key number (1-88) to octave -msgid "number to octave" +#: js/blocks/SensorsBlocks.js:342 +msgid "cursor over" msgstr "" -#: js/PitchBlocks.js:717 -msgid "The Number to octave block will convert a pitch number to an octave." +#: js/blocks/SensorsBlocks.js:387 +msgid "cursor out" msgstr "" -#: js/PitchBlocks.js:726 -msgid "y to pitch" +#: js/blocks/SensorsBlocks.js:433 +msgid "cursor button down" msgstr "" -#: js/PitchBlocks.js:729 -msgid "Y to pitch block will convert a staff y position to corresponding pitch notation." +#: js/blocks/SensorsBlocks.js:477 +msgid "cursor button up" msgstr "" -#: js/PitchBlocks.js:841 -msgid "accidental selector" +#: js/blocks/SensorsBlocks.js:521 +#: js/blocks/PenBlocks.js:48 +#: plugins/rodi.rtp:219 +msgid "blue" msgstr "" -#: js/PitchBlocks.js:844 -msgid "The Accidental selector block is used to choose between double-sharp, sharp, natural, flat, and double-flat." +#: js/blocks/SensorsBlocks.js:577 +#: js/blocks/PenBlocks.js:64 +#: plugins/rodi.rtp:218 +msgid "green" msgstr "" -#: js/PitchBlocks.js:858 -msgid "Pitch can be specified in terms of ni dha pa ma ga re sa." +#: js/blocks/SensorsBlocks.js:633 +#: js/blocks/PenBlocks.js:112 +#: plugins/rodi.rtp:217 +msgid "red" msgstr "" -#: js/PitchBlocks.js:872 -msgid "Pitch can be specified in terms of C D E F G A B." +#: js/blocks/SensorsBlocks.js:638 +msgid "The Get red block returns the red component of the pixel under the mouse." msgstr "" -#: js/PitchBlocks.js:883 -msgid "solfege" +#: js/blocks/SensorsBlocks.js:644 +msgid "The Get red block returns the red component of the pixel under the turtle." msgstr "" -#: js/PitchBlocks.js:886 -msgid "Pitch can be specified in terms of do re mi fa sol la ti." +#: js/blocks/SensorsBlocks.js:685 +#: plugins/rodi.rtp:216 +msgid "pixel color" msgstr "" -#: js/PitchBlocks.js:920 -msgid "The Invert block rotates any contained notes around a target note." +#: js/blocks/SensorsBlocks.js:690 +msgid "The Get pixel block returns the color of the pixel under the mouse." msgstr "" -#: js/PitchBlocks.js:927 -#.TRANS: pitch inversion rotates a pitch around another pitch -msgid "invert" +#: js/blocks/SensorsBlocks.js:696 +msgid "The Get pixel block returns the color of the pixel under the turtle." msgstr "" -#: js/PitchBlocks.js:929 -#: js/PitchBlocks.js:935 -#: js/PitchActions.js:727 -#: js/musicutils.js:726 -#: js/musicutils.js:902 -#.TRANS: invert based on even or odd number or musical scale -#.TRANS: even numbers -msgid "even" +#: js/blocks/SensorsBlocks.js:758 +msgid "time" msgstr "" -#: js/PitchBlocks.js:935 -#: js/PitchActions.js:729 -#: js/musicutils.js:728 -#: js/musicutils.js:903 -#.TRANS: odd numbers -msgid "odd" +#: js/blocks/SensorsBlocks.js:804 +msgid "cursor y" msgstr "" -#: js/PitchBlocks.js:935 -#: js/PitchActions.js:731 -#: js/musicutils.js:729 -#: js/musicutils.js:904 -msgid "scalar" +#: js/blocks/SensorsBlocks.js:809 +msgid "The Cursor Y block returns the vertical position of the mouse." msgstr "" -#: js/PitchBlocks.js:966 -#.TRANS: pitch inversion rotates a pitch around another pitch (odd number) -msgid "invert (odd)" +#: js/blocks/SensorsBlocks.js:845 +msgid "cursor x" msgstr "" -#: js/PitchBlocks.js:999 -#.TRANS: pitch inversion rotates a pitch around another pitch (even number) -msgid "invert (even)" +#: js/blocks/SensorsBlocks.js:850 +msgid "The Cursor X block returns the horizontal position of the mouse." msgstr "" -#: js/PitchBlocks.js:1020 -#.TRANS: register is the octave of the current pitch -msgid "register" +#: js/blocks/SensorsBlocks.js:886 +msgid "mouse button" msgstr "" -#: js/PitchBlocks.js:1024 -msgid "The Register block provides an easy way to modify the register (octave) of the notes that follow it." +#: js/blocks/SensorsBlocks.js:888 +msgid "The Mouse-button block returns True if the mouse button is pressed." msgstr "" -#: js/PitchBlocks.js:1074 -msgid "The Semi-tone transposition block will shift the pitches contained inside Note blocks up (or down) by half steps." +#: js/blocks/SensorsBlocks.js:934 +msgid "to ASCII" msgstr "" -#: js/PitchBlocks.js:1076 -msgid "In the example shown above, sol is shifted up to sol#." +#: js/blocks/SensorsBlocks.js:938 +msgid "The To ASCII block converts numbers to letters." msgstr "" -#: js/PitchBlocks.js:1082 -#.TRANS: adjust the amount of shift (up or down) of a pitch -msgid "semi-tone transpose" +#: js/blocks/SensorsBlocks.js:1005 +msgid "The Keyboard block returns computer keyboard input." msgstr "" -#: js/PitchBlocks.js:1115 -msgid "The Transpose by Ratio block will shift the pitches contained inside Note blocks up (or down) by a ratio" +#: js/blocks/RhythmBlockPaletteBlocks.js:50 +#: js/blocks/RhythmBlockPaletteBlocks.js:233 +#.TRANS: rhythm block +#.TRANS: translate "rhythm1" as rhythm +msgid "rhythm1" msgstr "" -#: js/PitchBlocks.js:1121 -#.TRANS: adjust the amount of shift (up or down) of a pitch -msgid "transpose by ratio" +#: js/blocks/RhythmBlockPaletteBlocks.js:70 +#: js/blocks/RhythmBlockPaletteBlocks.js:252 +#: js/blocks/RhythmBlockPaletteBlocks.js:485 +#: js/blocks/RhythmBlockPaletteBlocks.js:554 +#: js/blocks/RhythmBlockPaletteBlocks.js:875 +msgid "number of notes" msgstr "" -#: js/PitchBlocks.js:1204 -#.TRANS: down sixth means the note is five scale degrees below current note -msgid "down sixth" +#: js/blocks/RhythmBlockPaletteBlocks.js:126 +msgid "polyphonic rhythm" msgstr "" -#: js/PitchBlocks.js:1223 -#.TRANS: down third means the note is two scale degrees below current note -msgid "down third" +#: js/blocks/RhythmBlockPaletteBlocks.js:219 +msgid "The Rhythm block is used to generate rhythm patterns." msgstr "" -#: js/PitchBlocks.js:1242 -#.TRANS: seventh means the note is the six scale degrees above current note -msgid "seventh" +#: js/blocks/RhythmBlockPaletteBlocks.js:280 +msgid "1/64 note" msgstr "" -#: js/PitchBlocks.js:1261 -#.TRANS: sixth means the note is the five scale degrees above current note -msgid "sixth" +#: js/blocks/RhythmBlockPaletteBlocks.js:304 +msgid "1/32 note" msgstr "" -#: js/PitchBlocks.js:1280 -#.TRANS: fifth means the note is the four scale degrees above current note -msgid "fifth" +#: js/blocks/RhythmBlockPaletteBlocks.js:332 +msgid "1/16 note" msgstr "" -#: js/PitchBlocks.js:1300 -#.TRANS: fourth means the note is three scale degrees above current note -msgid "fourth" +#: js/blocks/RhythmBlockPaletteBlocks.js:360 +msgid "eighth note" msgstr "" -#: js/PitchBlocks.js:1319 -#.TRANS: third means the note is two scale degrees above current note -msgid "third" +#: js/blocks/RhythmBlockPaletteBlocks.js:388 +msgid "quarter note" msgstr "" -#: js/PitchBlocks.js:1338 -#.TRANS: second means the note is one scale degree above current note -msgid "second" +#: js/blocks/RhythmBlockPaletteBlocks.js:416 +msgid "half note" msgstr "" -#: js/PitchBlocks.js:1379 -msgid "The Scalar transposition block will shift the pitches contained inside Note blocks up (or down) the scale." +#: js/blocks/RhythmBlockPaletteBlocks.js:444 +msgid "whole note" msgstr "" -#: js/PitchBlocks.js:1381 -msgid "In the example shown above, sol is shifted up to la." +#: js/blocks/RhythmBlockPaletteBlocks.js:482 +#: js/blocks/RhythmBlockPaletteBlocks.js:551 +#: js/blocks/RhythmBlockPaletteBlocks.js:602 +#.TRANS: A tuplet is a note value divided into irregular time values. +msgid "tuplet" msgstr "" -#: js/PitchBlocks.js:1388 -#.TRANS: adjust the amount of shift (up or down) of a pitch by musical scale (scalar) steps -msgid "scalar transpose" +#: js/blocks/RhythmBlockPaletteBlocks.js:768 +msgid "septuplet" msgstr "" -#: js/PitchBlocks.js:1423 -msgid "The Accidental block is used to create sharps and flats" +#: js/blocks/RhythmBlockPaletteBlocks.js:796 +msgid "quintuplet" msgstr "" -#: js/PitchBlocks.js:1430 -#.TRANS: An accidental is a modification to a pitch, e.g., sharp or flat. -msgid "accidental override" +#: js/blocks/RhythmBlockPaletteBlocks.js:824 +msgid "triplet" msgstr "" -#: js/PitchBlocks.js:1543 -msgid "The Hertz block (in combination with a Number block) will play a sound at the specified frequency." +#: js/blocks/RhythmBlockPaletteBlocks.js:851 +msgid "simple tuplet" msgstr "" -#: js/PitchBlocks.js:1633 -msgid "The Pitch Number block will play a pitch associated by its number, e.g. 0 for C and 7 for G." +#: js/blocks/RhythmBlockPaletteBlocks.js:861 +msgid "Tuplets are a collection of notes that get scaled to a specific duration." msgstr "" -#: js/PitchBlocks.js:1665 -#: js/PitchBlocks.js:1707 -#.TRANS: a numeric mapping of the notes in an octave based on the musical mode -#.TRANS: a numeric mapping of the notes in an octave based on the musical mode -msgid "nth modal pitch" +#: js/blocks/DrumBlocks.js:59 +msgid "The Noise name block is used to select a noise synthesizer." msgstr "" -#: js/PitchBlocks.js:1668 -msgid "n^th Modal Pitch takes the pattern of pitches in semitones for a mode and makes each point a degree of the mode," +#: js/blocks/DrumBlocks.js:102 +msgid "The Drum name block is used to select a drum." msgstr "" -#: js/PitchBlocks.js:1670 -msgid "starting from 1 and regardless of tonal framework (i.e. not always 8 notes in the octave)" +#: js/blocks/DrumBlocks.js:146 +msgid "The Effects name block is used to select a sound effect." msgstr "" -#: js/PitchBlocks.js:1711 -msgid "N^th Modal Pitch takes a number as an input as the n^th degree for the given mode. 0 is the first position, 1 is the second, -1 is the note before the first etc." +#: js/blocks/DrumBlocks.js:163 +msgid "noise" msgstr "" -#: js/PitchBlocks.js:1713 -msgid "The pitches change according to the mode specified without any need for respellings." +#: js/blocks/DrumBlocks.js:177 +msgid "The Play noise block will generate white, pink, or brown noise." msgstr "" -#: js/PitchBlocks.js:1752 -msgid "Scale Degree is a common convention in music. Scale Degree offers seven possible positions in the scale (1-7) and can be modified via accidentals." +#: js/blocks/DrumBlocks.js:317 +msgid "Replace every instance of a pitch with a drum sound." msgstr "" -#: js/PitchBlocks.js:1754 -msgid "Scale Degree 1 is always the first pitch in a given scale, regardless of octave." +#: js/blocks/DrumBlocks.js:328 +#.TRANS: map a pitch to a drum sound +msgid "map pitch to drum" msgstr "" -#: js/PitchBlocks.js:1776 -#.TRANS: step some number of notes in current musical scale -msgid "scalar step" +#: js/blocks/DrumBlocks.js:395 +msgid "In the example above, a kick drum sound will be played instead of sol." msgstr "" -#: js/PitchBlocks.js:1781 -msgid "The Scalar Step block (in combination with a Number block) will play the next pitch in a scale," +#: js/blocks/DrumBlocks.js:407 +#.TRANS: set the current drum sound for playback +msgid "set drum" msgstr "" -#: js/PitchBlocks.js:1783 -msgid "eg if the last note played was sol, Scalar Step 1 will play la." +#: js/blocks/DrumBlocks.js:451 +msgid "sound effect" msgstr "" -#: js/PitchBlocks.js:1818 -msgid "The Pitch block specifies the pitch name and octave of a note that together determine the frequency of the note." +#: js/blocks/DrumBlocks.js:489 +msgid "You can use multiple Drum blocks within a Note block." msgstr "" -#: js/GraphicsBlocks.js:46 -#: js/DictActions.js:77 -#: js/DictActions.js:155 -#: js/DictActions.js:189 +#: js/blocks/GraphicsBlocks.js:46 +#: js/turtleactions/DictActions.js:77 +#: js/turtleactions/DictActions.js:144 +#: js/turtleactions/DictActions.js:173 msgid "heading" msgstr "" -#: js/GraphicsBlocks.js:56 +#: js/blocks/GraphicsBlocks.js:56 msgid "The Heading block returns the orientation of the mouse." msgstr "" -#: js/GraphicsBlocks.js:62 +#: js/blocks/GraphicsBlocks.js:62 msgid "The Heading block returns the orientation of the turtle." msgstr "" -#: js/GraphicsBlocks.js:133 +#: js/blocks/GraphicsBlocks.js:133 msgid "The Y block returns the vertical position of the mouse." msgstr "" -#: js/GraphicsBlocks.js:140 +#: js/blocks/GraphicsBlocks.js:140 msgid "The Y block returns the vertical position of the turtle." msgstr "" -#: js/GraphicsBlocks.js:149 +#: js/blocks/GraphicsBlocks.js:149 msgid "y3" msgstr "" -#: js/GraphicsBlocks.js:219 +#: js/blocks/GraphicsBlocks.js:219 msgid "The X block returns the horizontal position of the mouse." msgstr "" -#: js/GraphicsBlocks.js:226 +#: js/blocks/GraphicsBlocks.js:226 msgid "The X block returns the horizontal position of the turtle." msgstr "" -#: js/GraphicsBlocks.js:235 +#: js/blocks/GraphicsBlocks.js:235 msgid "x3" msgstr "" -#: js/GraphicsBlocks.js:295 +#: js/blocks/GraphicsBlocks.js:295 msgid "scroll xy" msgstr "" -#: js/GraphicsBlocks.js:303 +#: js/blocks/GraphicsBlocks.js:303 msgid "The Scroll XY block moves the canvas." msgstr "" -#: js/GraphicsBlocks.js:313 +#: js/blocks/GraphicsBlocks.js:313 msgid "x2" msgstr "" -#: js/GraphicsBlocks.js:313 +#: js/blocks/GraphicsBlocks.js:313 msgid "y2" msgstr "" -#: js/GraphicsBlocks.js:373 -#: js/temperament.js:213 -#: js/temperament.js:241 +#: js/blocks/GraphicsBlocks.js:373 +#: js/widgets/temperament.js:319 +#: js/widgets/temperament.js:347 msgid "clear" msgstr "" -#: js/GraphicsBlocks.js:426 +#: js/blocks/GraphicsBlocks.js:426 msgid "The Control-point 2 block sets the second control point for the Bezier curve." msgstr "" -#: js/GraphicsBlocks.js:433 +#: js/blocks/GraphicsBlocks.js:433 msgid "control point 2" msgstr "" -#: js/GraphicsBlocks.js:436 -#: js/GraphicsBlocks.js:487 -#: js/GraphicsBlocks.js:534 -#: js/GraphicsBlocks.js:750 +#: js/blocks/GraphicsBlocks.js:436 +#: js/blocks/GraphicsBlocks.js:487 +#: js/blocks/GraphicsBlocks.js:534 +#: js/blocks/GraphicsBlocks.js:750 msgid "x1" msgstr "" -#: js/GraphicsBlocks.js:436 -#: js/GraphicsBlocks.js:487 -#: js/GraphicsBlocks.js:534 -#: js/GraphicsBlocks.js:750 +#: js/blocks/GraphicsBlocks.js:436 +#: js/blocks/GraphicsBlocks.js:487 +#: js/blocks/GraphicsBlocks.js:534 +#: js/blocks/GraphicsBlocks.js:750 msgid "y1" msgstr "" -#: js/GraphicsBlocks.js:477 +#: js/blocks/GraphicsBlocks.js:477 msgid "The Control-point 1 block sets the first control point for the Bezier curve." msgstr "" -#: js/GraphicsBlocks.js:484 +#: js/blocks/GraphicsBlocks.js:484 msgid "control point 1" msgstr "" -#: js/GraphicsBlocks.js:527 +#: js/blocks/GraphicsBlocks.js:527 msgid "The Bezier block draws a Bezier curve." msgstr "" -#: js/GraphicsBlocks.js:531 +#: js/blocks/GraphicsBlocks.js:531 msgid "bezier" msgstr "" -#: js/GraphicsBlocks.js:592 +#: js/blocks/GraphicsBlocks.js:592 msgid "The Arc block moves the turtle in an arc." msgstr "" -#: js/GraphicsBlocks.js:600 +#: js/blocks/GraphicsBlocks.js:600 msgid "arc" msgstr "" -#: js/GraphicsBlocks.js:603 +#: js/blocks/GraphicsBlocks.js:603 msgid "angle" msgstr "" -#: js/GraphicsBlocks.js:603 +#: js/blocks/GraphicsBlocks.js:603 msgid "radius" msgstr "" -#: js/GraphicsBlocks.js:620 -#: js/GraphicsBlocks.js:767 -#: js/GraphicsBlocks.js:1010 -#: js/GraphicsBlocks.js:1093 +#: js/blocks/GraphicsBlocks.js:620 +#: js/blocks/GraphicsBlocks.js:767 +#: js/blocks/GraphicsBlocks.js:1010 +#: js/blocks/GraphicsBlocks.js:1093 msgid "Value must be within -5000 to 5000 when Wrap Mode is off." msgstr "" -#: js/GraphicsBlocks.js:622 -#: js/GraphicsBlocks.js:769 -#: js/GraphicsBlocks.js:1012 -#: js/GraphicsBlocks.js:1095 +#: js/blocks/GraphicsBlocks.js:622 +#: js/blocks/GraphicsBlocks.js:769 +#: js/blocks/GraphicsBlocks.js:1012 +#: js/blocks/GraphicsBlocks.js:1095 msgid "Value must be within -20000 to 20000 when Wrap Mode is on." msgstr "" -#: js/GraphicsBlocks.js:660 +#: js/blocks/GraphicsBlocks.js:660 msgid "set heading" msgstr "" -#: js/GraphicsBlocks.js:673 +#: js/blocks/GraphicsBlocks.js:673 msgid "The Set heading block sets the heading of the turtle." msgstr "" -#: js/GraphicsBlocks.js:733 +#: js/blocks/GraphicsBlocks.js:733 msgid "The Set XY block moves the mouse to a specific position on the screen." msgstr "" -#: js/GraphicsBlocks.js:739 +#: js/blocks/GraphicsBlocks.js:739 msgid "The Set XY block moves the turtle to a specific position on the screen." msgstr "" -#: js/GraphicsBlocks.js:747 +#: js/blocks/GraphicsBlocks.js:747 msgid "set xy" msgstr "" -#: js/GraphicsBlocks.js:819 +#: js/blocks/GraphicsBlocks.js:819 msgid "The Right block turns the mouse to the right." msgstr "" -#: js/GraphicsBlocks.js:826 +#: js/blocks/GraphicsBlocks.js:826 msgid "The Right block turns the turtle to the right." msgstr "" -#: js/GraphicsBlocks.js:835 +#: js/blocks/GraphicsBlocks.js:835 msgid "right1" msgstr "" -#: js/GraphicsBlocks.js:835 +#: js/blocks/GraphicsBlocks.js:835 #: plugins/rodi.rtp:77 #: plugins/rodi.rtp:340 #: plugins/rodi.rtp:375 msgid "right" msgstr "" -#: js/GraphicsBlocks.js:899 +#: js/blocks/GraphicsBlocks.js:899 msgid "The Left block turns the mouse to the left." msgstr "" -#: js/GraphicsBlocks.js:906 +#: js/blocks/GraphicsBlocks.js:906 msgid "The Left block turns the turtle to the left." msgstr "" -#: js/GraphicsBlocks.js:915 +#: js/blocks/GraphicsBlocks.js:915 msgid "left1" msgstr "" -#: js/GraphicsBlocks.js:915 +#: js/blocks/GraphicsBlocks.js:915 #: plugins/rodi.rtp:79 #: plugins/rodi.rtp:339 #: plugins/rodi.rtp:362 msgid "left" msgstr "" -#: js/GraphicsBlocks.js:967 -#: js/temperament.js:734 -#: js/temperament.js:933 +#: js/blocks/GraphicsBlocks.js:967 +#: js/widgets/temperament.js:875 +#: js/widgets/temperament.js:1078 #: plugins/rodi.rtp:69 #: plugins/rodi.rtp:387 msgid "back" msgstr "" -#: js/GraphicsBlocks.js:976 +#: js/blocks/GraphicsBlocks.js:976 msgid "The Back block moves the mouse backward." msgstr "" -#: js/GraphicsBlocks.js:983 +#: js/blocks/GraphicsBlocks.js:983 msgid "The Back block moves the turtle backward." msgstr "" -#: js/GraphicsBlocks.js:1050 +#: js/blocks/GraphicsBlocks.js:1050 #: plugins/rodi.rtp:71 #: plugins/rodi.rtp:400 msgid "forward" msgstr "" -#: js/GraphicsBlocks.js:1059 +#: js/blocks/GraphicsBlocks.js:1059 msgid "The Forward block moves the mouse forward." msgstr "" -#: js/GraphicsBlocks.js:1066 +#: js/blocks/GraphicsBlocks.js:1066 msgid "The Forward block moves the turtle forward." msgstr "" -#: js/GraphicsBlocks.js:1154 -#: js/GraphicsBlocks.js:1172 +#: js/blocks/GraphicsBlocks.js:1154 +#: js/blocks/GraphicsBlocks.js:1172 msgid "wrap" msgstr "" -#: js/OrnamentBlocks.js:32 -msgid "staccato factor" -msgstr "" - -#: js/OrnamentBlocks.js:108 -msgid "slur factor" -msgstr "" - -#: js/OrnamentBlocks.js:217 -#: js/OrnamentBlocks.js:309 -#.TRANS: the neighbor refers to a neighboring note, e.g., D is a neighbor of C -msgid "neighbor" -msgstr "" - -#: js/OrnamentBlocks.js:293 -msgid "The Neighbor block rapidly switches between neighboring pitches." -msgstr "" - -#: js/OrnamentBlocks.js:364 -msgid "glide" -msgstr "" - -#: js/OrnamentBlocks.js:479 -#: js/OrnamentBlocks.js:643 -msgid "slur" -msgstr "" - -#: js/OrnamentBlocks.js:558 -#: js/OrnamentBlocks.js:710 -#.TRANS: play each note sharply detached from the others -msgid "staccato" -msgstr "" - -#: js/PenBlocks.js:24 +#: js/blocks/PenBlocks.js:30 msgid "purple" msgstr "" -#: js/PenBlocks.js:37 -#: js/SensorsBlocks.js:521 -#: plugins/rodi.rtp:219 -msgid "blue" -msgstr "" - -#: js/PenBlocks.js:50 -#: js/SensorsBlocks.js:577 -#: plugins/rodi.rtp:218 -msgid "green" -msgstr "" - -#: js/PenBlocks.js:63 +#: js/blocks/PenBlocks.js:80 msgid "yellow" msgstr "" -#: js/PenBlocks.js:76 +#: js/blocks/PenBlocks.js:96 #: plugins/nutrition.rtp:164 msgid "orange" msgstr "" -#: js/PenBlocks.js:89 -#: js/SensorsBlocks.js:633 -#: plugins/rodi.rtp:217 -msgid "red" -msgstr "" - -#: js/PenBlocks.js:102 +#: js/blocks/PenBlocks.js:128 msgid "white" msgstr "" -#: js/PenBlocks.js:115 +#: js/blocks/PenBlocks.js:144 msgid "black" msgstr "" -#: js/PenBlocks.js:128 +#: js/blocks/PenBlocks.js:163 msgid "begin fill" msgstr "" -#: js/PenBlocks.js:143 +#: js/blocks/PenBlocks.js:190 msgid "end fill" msgstr "" -#: js/PenBlocks.js:159 -#: js/PenBlocks.js:386 +#: js/blocks/PenBlocks.js:212 +#: js/blocks/PenBlocks.js:560 #.TRANS: set the background color msgid "background" msgstr "" -#: js/PenBlocks.js:206 -#: js/DictActions.js:71 -#: js/DictActions.js:149 -#: js/DictActions.js:186 +#: js/blocks/PenBlocks.js:274 +#: js/turtleactions/DictActions.js:71 +#: js/turtleactions/DictActions.js:138 +#: js/turtleactions/DictActions.js:170 msgid "grey" msgstr "" -#: js/PenBlocks.js:210 +#: js/blocks/PenBlocks.js:282 msgid "The Grey block returns the current pen grey value." msgstr "" -#: js/PenBlocks.js:243 -#: js/DictActions.js:69 -#: js/DictActions.js:147 -#: js/DictActions.js:185 +#: js/blocks/PenBlocks.js:340 +#: js/turtleactions/DictActions.js:69 +#: js/turtleactions/DictActions.js:136 +#: js/turtleactions/DictActions.js:169 msgid "shade" msgstr "" -#: js/PenBlocks.js:247 +#: js/blocks/PenBlocks.js:347 msgid "The Shade block returns the current pen shade value." msgstr "" -#: js/PenBlocks.js:280 -#: js/DictActions.js:67 -#: js/DictActions.js:145 -#: js/DictActions.js:184 +#: js/blocks/PenBlocks.js:405 +#: js/turtleactions/DictActions.js:67 +#: js/turtleactions/DictActions.js:134 +#: js/turtleactions/DictActions.js:168 msgid "color" msgstr "" -#: js/PenBlocks.js:285 +#: js/blocks/PenBlocks.js:415 msgid "The Color block returns the current pen color." msgstr "" -#: js/PenBlocks.js:318 -#: js/DictActions.js:73 -#: js/DictActions.js:151 -#: js/DictActions.js:187 +#: js/blocks/PenBlocks.js:470 +#: js/turtleactions/DictActions.js:73 +#: js/turtleactions/DictActions.js:140 +#: js/turtleactions/DictActions.js:171 msgid "pen size" msgstr "" -#: js/PenBlocks.js:322 +#: js/blocks/PenBlocks.js:474 msgid "The Pen size block returns the current pen size value." msgstr "" -#: js/PenBlocks.js:355 +#: js/blocks/PenBlocks.js:513 msgid "set font" msgstr "" -#: js/PenBlocks.js:358 +#: js/blocks/PenBlocks.js:518 msgid "The Set font block sets the font used by the Show block." msgstr "" -#: js/PenBlocks.js:391 +#: js/blocks/PenBlocks.js:567 msgid "The Background block sets the window background color." msgstr "" -#: js/PenBlocks.js:408 +#: js/blocks/PenBlocks.js:598 msgid "The Hollow line block creates a line with a hollow center." msgstr "" -#: js/PenBlocks.js:415 +#: js/blocks/PenBlocks.js:606 #.TRANS: draw a line logo has a hollow space down its center msgid "hollow line" msgstr "" -#: js/PenBlocks.js:462 +#: js/blocks/PenBlocks.js:675 msgid "The Fill block fills in a shape with a color." msgstr "" -#: js/PenBlocks.js:470 +#: js/blocks/PenBlocks.js:684 #.TRANS: fill in as a solid color msgid "fill" msgstr "" -#: js/PenBlocks.js:527 +#: js/blocks/PenBlocks.js:761 #.TRANS: raise up the pen so logo it does not draw when it is moved msgid "pen up" msgstr "" -#: js/PenBlocks.js:532 +#: js/blocks/PenBlocks.js:768 msgid "The Pen-up block raises the pen so that it does not draw." msgstr "" -#: js/PenBlocks.js:552 +#: js/blocks/PenBlocks.js:802 #.TRANS: put down the pen so logo it draws when it is moved msgid "pen down" msgstr "" -#: js/PenBlocks.js:557 +#: js/blocks/PenBlocks.js:810 msgid "The Pen-down block lowers the pen so that it draws." msgstr "" -#: js/PenBlocks.js:577 +#: js/blocks/PenBlocks.js:844 #.TRANS: set the width of the line drawn by the pen msgid "set pen size" msgstr "" -#: js/PenBlocks.js:583 +#: js/blocks/PenBlocks.js:854 msgid "The Set-pen-size block changes the size of the pen." msgstr "" -#: js/PenBlocks.js:623 +#: js/blocks/PenBlocks.js:913 #.TRANS: set degree of translucence of the pen color msgid "set translucency" msgstr "" -#: js/PenBlocks.js:627 +#: js/blocks/PenBlocks.js:921 msgid "The Set translucency block changes the opacity of the pen." msgstr "" -#: js/PenBlocks.js:668 +#: js/blocks/PenBlocks.js:981 msgid "set hue" msgstr "" -#: js/PenBlocks.js:672 +#: js/blocks/PenBlocks.js:989 msgid "The Set hue block changes the color of the pen." msgstr "" -#: js/PenBlocks.js:711 +#: js/blocks/PenBlocks.js:1047 msgid "set shade" msgstr "" -#: js/PenBlocks.js:717 +#: js/blocks/PenBlocks.js:1057 msgid "The Set-shade block changes the pen color from dark to light." msgstr "" -#: js/PenBlocks.js:757 +#: js/blocks/PenBlocks.js:1111 #.TRANS: set the level of vividness of the pen color msgid "set grey" msgstr "" -#: js/PenBlocks.js:761 +#: js/blocks/PenBlocks.js:1119 msgid "The Set grey block changes the vividness of the pen color." msgstr "" -#: js/PenBlocks.js:800 +#: js/blocks/PenBlocks.js:1172 msgid "set color" msgstr "" -#: js/PenBlocks.js:806 +#: js/blocks/PenBlocks.js:1182 msgid "The Set-color block changes the pen color." msgstr "" -#: js/VolumeBlocks.js:35 -msgid "synth volume" -msgstr "" - -#: js/VolumeBlocks.js:39 -msgid "The Synth volume block returns the current volume of the current synthesizer." -msgstr "" - -#: js/VolumeBlocks.js:47 -#: js/musicutils.js:730 -#: js/synthutils.js:56 -#.TRANS: musical instrument -msgid "piano" -msgstr "" - -#: js/VolumeBlocks.js:105 -msgid "master volume" -msgstr "" - -#: js/VolumeBlocks.js:109 -msgid "The Master volume block returns the master volume." -msgstr "" - -#: js/VolumeBlocks.js:355 -#: js/VolumeBlocks.js:524 -msgid "set synth volume" -msgstr "" - -#: js/VolumeBlocks.js:362 -#: js/VolumeBlocks.js:545 -msgid "synth" -msgstr "" - -#: js/VolumeBlocks.js:403 -#: js/VolumeBlocks.js:577 -#: js/VolumeBlocks.js:740 -#: js/VolumeActions.js:173 -msgid "Setting volume to 0." -msgstr "" - -#: js/VolumeBlocks.js:440 -msgid "Synth not found" -msgstr "" - -#: js/VolumeBlocks.js:494 -msgid "set drum volume" -msgstr "" - -#: js/VolumeBlocks.js:530 -msgid "The Set synth volume block will change the volume of a particular synth," -msgstr "" - -#: js/VolumeBlocks.js:532 -msgid "eg guitar violin snare drum etc." -msgstr "" - -#: js/VolumeBlocks.js:534 -msgid "The default volume is 50." -msgstr "" - -#: js/VolumeBlocks.js:536 -msgid "The range is 0 for silence to 100 for full volume." -msgstr "" - -#: js/VolumeBlocks.js:597 -msgid "set panning" -msgstr "" - -#: js/VolumeBlocks.js:603 -msgid "The Set Panning block sets the panning for all synthesizers." -msgstr "" - -#: js/VolumeBlocks.js:625 -msgid "Warning: Sound is coming out from only the left or right side." -msgstr "" - -#: js/VolumeBlocks.js:647 -#: js/VolumeBlocks.js:695 -msgid "set master volume" -msgstr "" - -#: js/VolumeBlocks.js:653 -msgid "The Set master volume block sets the volume for all synthesizers." -msgstr "" - -#: js/VolumeBlocks.js:784 -msgid "The Set relative volume block changes the volume of the contained notes." -msgstr "" - -#: js/VolumeBlocks.js:791 -msgid "set relative volume" -msgstr "" - -#: js/VolumeBlocks.js:857 -msgid "decrescendo" -msgstr "" - -#: js/VolumeBlocks.js:921 -msgid "crescendo" -msgstr "" - -#: js/ToneBlocks.js:34 -msgid "oscillator" -msgstr "" - -#: js/ToneBlocks.js:44 -#: js/timbre.js:1562 -#.TRANS: Partials refers to the number of sine waves combined into the sound. -msgid "partials" -msgstr "" - -#: js/ToneBlocks.js:76 -msgid "You are adding multiple oscillator blocks." -msgstr "" - -#: js/ToneBlocks.js:144 -#: js/timbre.js:1225 -#.TRANS: a duo synthesizer combines a synth with a sequencer -msgid "duo synth" -msgstr "" - -#: js/ToneBlocks.js:149 -msgid "The Duo synth block is a duo-frequency modulator used to define a timbre." -msgstr "" - -#: js/ToneBlocks.js:157 -#: js/timbre.js:1476 -msgid "vibrato rate" -msgstr "" - -#: js/ToneBlocks.js:157 -msgid "vibrato intensity" -msgstr "" - -#: js/ToneBlocks.js:185 -#: js/timbre.js:1221 -#.TRANS: AM (amplitude modulation) synthesizer -msgid "AM synth" -msgstr "" - -#: js/ToneBlocks.js:189 -msgid "The AM synth block is an amplitude modulator used to define a timbre." -msgstr "" - -#: js/ToneBlocks.js:224 -#: js/timbre.js:1223 -#.TRANS: FM (frequency modulation) synthesizer -msgid "FM synth" -msgstr "" - -#: js/ToneBlocks.js:228 -msgid "The FM synth block is a frequency modulator used to define a timbre." +#: js/blocks/PitchBlocks.js:141 +#.TRANS: musical transposition (adjustment of pitch up or down) +msgid "transposition" msgstr "" -#: js/ToneBlocks.js:262 -msgid "partial" +#: js/blocks/PitchBlocks.js:168 +#.TRANS: step down one note in current musical scale +msgid "scalar step down" msgstr "" -#: js/ToneBlocks.js:265 -msgid "The Partial block is used to specify a weight for a specific partial harmonic." +#: js/blocks/PitchBlocks.js:172 +msgid "The Scalar step down block returns the number of semi-tones down to the previous note in the current key and mode." msgstr "" -#: js/ToneBlocks.js:284 -#.TRANS: partials are weighted components in a harmonic series -msgid "Partial weight must be between 0 and 1." +#: js/blocks/PitchBlocks.js:190 +#.TRANS: step up one note in current musical scale +msgid "scalar step up" msgstr "" -#: js/ToneBlocks.js:297 -#.TRANS: partials are weighted components in a harmonic series -msgid "Partial block should be used inside of a Weighted-partials block." +#: js/blocks/PitchBlocks.js:194 +msgid "The Scalar step up block returns the number of semi-tones up to the next note in the current key and mode." msgstr "" -#: js/ToneBlocks.js:325 -#.TRANS: partials are weighted components in a harmonic series -msgid "weighted partials" +#: js/blocks/PitchBlocks.js:212 +#.TRANS: the change measured in half-steps between the current pitch and the previous pitch +msgid "change in pitch" msgstr "" -#: js/ToneBlocks.js:383 -msgid "The Harmonic block will add harmonics to the contained notes." +#: js/blocks/PitchBlocks.js:216 +msgid "The Change in pitch block is the difference (in half steps) between the current pitch being played and the previous pitch played." msgstr "" -#: js/ToneBlocks.js:390 -#.TRANS: A harmonic is an overtone. -msgid "harmonic" +#: js/blocks/PitchBlocks.js:243 +#.TRANS: the change measured in scale-steps between the current pitch and the previous pitch +msgid "scalar change in pitch" msgstr "" -#: js/ToneBlocks.js:431 -msgid "The Distortion block adds distortion to the pitch." +#: js/blocks/PitchBlocks.js:250 +#: js/blocks/PitchBlocks.js:432 +#: js/blocks/PitchBlocks.js:1667 +#: js/turtleactions/DictActions.js:89 +#: js/widgets/temperament.js:610 +#: js/widgets/temperament.js:614 +#: js/widgets/temperament.js:855 +#.TRANS: convert current note to piano key (1-88) +#.TRANS: a mapping of pitch to the 88 piano keys +msgid "pitch number" msgstr "" -#: js/ToneBlocks.js:438 -#: js/timbre.js:2100 -#.TRANS: distortion is an alteration in the sound -msgid "distortion" +#: js/blocks/PitchBlocks.js:256 +msgid "The Pitch number block is the value of the pitch of the note currently being played." msgstr "" -#: js/ToneBlocks.js:487 -msgid "The Tremolo block adds a wavering effect." +#: js/blocks/PitchBlocks.js:329 +#: js/blocks/PitchBlocks.js:433 +#.TRANS: the current pitch expressed in Hertz +msgid "pitch in hertz" msgstr "" -#: js/ToneBlocks.js:495 -#: js/timbre.js:2092 -#.TRANS: a wavering effect in a musical tone -msgid "tremolo" +#: js/blocks/PitchBlocks.js:334 +msgid "The Pitch in Hertz block is the value in Hertz of the pitch of the note currently being played." msgstr "" -#: js/ToneBlocks.js:500 -#: js/ToneBlocks.js:569 -#: js/ToneBlocks.js:630 -#: js/ToneBlocks.js:689 -#: js/timbre.js:2134 -#: js/timbre.js:2222 -#: js/timbre.js:2317 -#: js/timbre.js:2419 -#.TRANS: rate at which tremolo wavers -msgid "rate" +#: js/blocks/PitchBlocks.js:367 +#: js/turtleactions/DictActions.js:87 +msgid "current pitch" msgstr "" -#: js/ToneBlocks.js:502 -#: js/ToneBlocks.js:630 -#: js/timbre.js:2137 -#: js/timbre.js:2328 -#.TRANS: amplitude of tremolo waver -msgid "depth" +#: js/blocks/PitchBlocks.js:373 +msgid "The Current Pitch block is used with the Pitch Converter block. In the example above, current pitch, sol 4, is displayed as 392 hertz." msgstr "" -#: js/ToneBlocks.js:559 -msgid "The Phaser block adds a sweeping sound." +#: js/blocks/PitchBlocks.js:410 +msgid "This block converts the pitch value of the last note played into different formats such as hertz, letter name, pitch number, et al." msgstr "" -#: js/ToneBlocks.js:566 -#: js/timbre.js:2098 -#.TRANS: alter the phase of the sound -msgid "phaser" +#: js/blocks/PitchBlocks.js:434 +msgid "alphabet" msgstr "" -#: js/ToneBlocks.js:569 -#: js/timbre.js:2422 -msgid "octaves" +#: js/blocks/PitchBlocks.js:436 +#.TRANS: Translate as "alphabet class" +msgid "letter class" msgstr "" -#: js/ToneBlocks.js:569 -#: js/timbre.js:2425 -msgid "base frequency" +#: js/blocks/PitchBlocks.js:437 +msgid "solfege class" msgstr "" -#: js/ToneBlocks.js:619 -msgid "The Chorus block adds a chorus effect." +#: js/blocks/PitchBlocks.js:438 +msgid "staff y" msgstr "" -#: js/ToneBlocks.js:627 -#: js/timbre.js:2096 -#.TRANS: musical effect to simulate a choral sound -msgid "chorus" +#: js/blocks/PitchBlocks.js:439 +msgid "solfege syllable" msgstr "" -#: js/ToneBlocks.js:630 -msgid "delay" +#: js/blocks/PitchBlocks.js:440 +msgid "pitch class" msgstr "" -#: js/ToneBlocks.js:678 -msgid "The Vibrato block adds a rapid, slight variation in pitch." +#: js/blocks/PitchBlocks.js:441 +msgid "scalar class" msgstr "" -#: js/ToneBlocks.js:686 -#: js/timbre.js:2094 -#.TRANS: a rapid, slight variation in pitch -msgid "vibrato" +#: js/blocks/PitchBlocks.js:443 +msgid "nth degree" msgstr "" -#: js/ToneBlocks.js:689 -#: js/timbre.js:2221 -msgid "intensity" +#: js/blocks/PitchBlocks.js:444 +msgid "pitch to shade" msgstr "" -#: js/ToneBlocks.js:733 -#.TRANS: select synthesizer -msgid "set synth" +#: js/blocks/PitchBlocks.js:445 +msgid "pitch to color" msgstr "" -#: js/ToneBlocks.js:804 -msgid "synth name" +#: js/blocks/PitchBlocks.js:629 +#: js/widgets/musickeyboard.js:735 +#.TRANS: MIDI is a technical standard for electronic music +msgid "MIDI" msgstr "" -#: js/ToneBlocks.js:842 -msgid "set default instrument" +#: js/blocks/PitchBlocks.js:642 +#.TRANS: set an offset associated with the numeric piano keyboard mapping +msgid "set pitch number offset" msgstr "" -#: js/ToneBlocks.js:895 -#: js/ToneBlocks.js:943 -#.TRANS: set the characteristics of a custom instrument -msgid "set instrument" +#: js/blocks/PitchBlocks.js:645 +msgid "The Set pitch number offset block is used to set the offset for mapping pitch numbers to pitch and octave." msgstr "" -#: js/ToneBlocks.js:898 -#: js/ToneBlocks.js:926 -#: js/ToneBlocks.js:932 -msgid "The Set instrument block selects a voice for the synthesizer," +#: js/blocks/PitchBlocks.js:679 +#.TRANS: convert piano key number (1-88) to pitch +msgid "number to pitch" msgstr "" -#: js/ToneBlocks.js:900 -#: js/ToneBlocks.js:934 -msgid "eg guitar piano violin or cello." +#: js/blocks/PitchBlocks.js:682 +msgid "The Number to pitch block will convert a pitch number to a pich name." msgstr "" -#: js/ToneBlocks.js:1015 -msgid "Import a sound file to use as an instrument and set its pitch center." +#: js/blocks/PitchBlocks.js:715 +#.TRANS: convert piano key number (1-88) to octave +msgid "number to octave" msgstr "" -#: js/ToneBlocks.js:1110 -msgid "Upload a sound file to connect with the sample block." +#: js/blocks/PitchBlocks.js:717 +msgid "The Number to octave block will convert a pitch number to an octave." msgstr "" -#: js/MeterBlocks.js:34 -#.TRANS: musical meter (time signature), e.g., 4:4 -msgid "current meter" +#: js/blocks/PitchBlocks.js:726 +msgid "y to pitch" msgstr "" -#: js/MeterBlocks.js:85 -#.TRANS: number of beats per minute -msgid "beat factor" +#: js/blocks/PitchBlocks.js:729 +msgid "Y to pitch block will convert a staff y position to corresponding pitch notation." msgstr "" -#: js/MeterBlocks.js:161 -msgid "The Beats per minute block returns the current beats per minute." +#: js/blocks/PitchBlocks.js:841 +msgid "accidental selector" msgstr "" -#: js/MeterBlocks.js:169 -#: js/status.js:152 -#.TRANS: number of beats played per minute -msgid "beats per minute2" +#: js/blocks/PitchBlocks.js:844 +msgid "The Accidental selector block is used to choose between double-sharp, sharp, natural, flat, and double-flat." msgstr "" -#: js/MeterBlocks.js:169 -#: js/MeterBlocks.js:1056 -#: js/MeterBlocks.js:1133 -#: js/MeterBlocks.js:1211 -#.TRANS: sets tempo by defining a beat and beats per minute -msgid "beats per minute" +#: js/blocks/PitchBlocks.js:858 +msgid "Pitch can be specified in terms of ni dha pa ma ga re sa." msgstr "" -#: js/MeterBlocks.js:233 -#.TRANS: count of current musical measure in meter -msgid "measure count" +#: js/blocks/PitchBlocks.js:872 +msgid "Pitch can be specified in terms of C D E F G A B." msgstr "" -#: js/MeterBlocks.js:241 -msgid "The Measure count block returns the current measure." +#: js/blocks/PitchBlocks.js:884 +msgid "solfege" msgstr "" -#: js/MeterBlocks.js:290 -#.TRANS: count of current beat in the meter -msgid "beat count" +#: js/blocks/PitchBlocks.js:887 +msgid "Pitch can be specified in terms of do re mi fa sol la ti." msgstr "" -#: js/MeterBlocks.js:300 -#: js/MeterBlocks.js:311 -#: js/MeterBlocks.js:565 -#: js/MeterBlocks.js:576 -msgid "The Beat count block is the number of the current beat," +#: js/blocks/PitchBlocks.js:922 +msgid "The Invert block rotates any contained notes around a target note." msgstr "" -#: js/MeterBlocks.js:313 -#: js/MeterBlocks.js:578 -msgid "eg 1, 2, 3, or 4." +#: js/blocks/PitchBlocks.js:929 +#.TRANS: pitch inversion rotates a pitch around another pitch +msgid "invert" msgstr "" -#: js/MeterBlocks.js:368 -#.TRANS: count the number of notes -msgid "sum note values" +#: js/blocks/PitchBlocks.js:968 +#.TRANS: pitch inversion rotates a pitch around another pitch (odd number) +msgid "invert (odd)" msgstr "" -#: js/MeterBlocks.js:376 -#: js/MeterBlocks.js:440 -msgid "The Note counter block can be used to count the number of contained notes." +#: js/blocks/PitchBlocks.js:1001 +#.TRANS: pitch inversion rotates a pitch around another pitch (even number) +msgid "invert (even)" msgstr "" -#: js/MeterBlocks.js:432 -#.TRANS: count the number of notes -msgid "note counter" +#: js/blocks/PitchBlocks.js:1022 +#.TRANS: register is the octave of the current pitch +msgid "register" msgstr "" -#: js/MeterBlocks.js:496 -#.TRANS: number of whole notes that have been played -msgid "whole notes played" +#: js/blocks/PitchBlocks.js:1026 +msgid "The Register block provides an easy way to modify the register (octave) of the notes that follow it." msgstr "" -#: js/MeterBlocks.js:505 -msgid "The Whole notes played block returns the total number of whole notes played." +#: js/blocks/PitchBlocks.js:1047 +#.TRANS: cents are units used to specify the ratio between pitches. There are 100 cents between successive notes. +msgid "50 cents" msgstr "" -#: js/MeterBlocks.js:555 -#: js/DictActions.js:83 -#.TRANS: number of notes that have been played -msgid "notes played" +#: js/blocks/PitchBlocks.js:1102 +msgid "The Semi-tone transposition block will shift the pitches contained inside Note blocks up (or down) by half steps." msgstr "" -#: js/MeterBlocks.js:653 -msgid "The No clock block decouples the notes from the master clock." +#: js/blocks/PitchBlocks.js:1104 +msgid "In the example shown above, sol is shifted up to sol#." msgstr "" -#: js/MeterBlocks.js:661 -#.TRANS: don't lock notes to master clock -msgid "no clock" +#: js/blocks/PitchBlocks.js:1110 +#.TRANS: adjust the amount of shift (up or down) of a pitch +msgid "semi-tone transpose" msgstr "" -#: js/MeterBlocks.js:700 -msgid "on weak beat do" +#: js/blocks/PitchBlocks.js:1143 +msgid "The Transpose by Ratio block will shift the pitches contained inside Note blocks up (or down) by a ratio" msgstr "" -#: js/MeterBlocks.js:705 -msgid "The On-weak-beat block lets you specify actions to take on weak (off) beats." +#: js/blocks/PitchBlocks.js:1149 +#.TRANS: adjust the amount of shift (up or down) of a pitch +msgid "transpose by ratio" msgstr "" -#: js/MeterBlocks.js:750 -msgid "on strong beat" +#: js/blocks/PitchBlocks.js:1232 +#.TRANS: down sixth means the note is five scale degrees below current note +msgid "down sixth" msgstr "" -#: js/MeterBlocks.js:758 -msgid "The On-strong-beat block lets you specify actions to take on specified beats." +#: js/blocks/PitchBlocks.js:1251 +#.TRANS: down third means the note is two scale degrees below current note +msgid "down third" msgstr "" -#: js/MeterBlocks.js:769 -msgid "beat" +#: js/blocks/PitchBlocks.js:1270 +#.TRANS: seventh means the note is the six scale degrees above current note +msgid "seventh" msgstr "" -#: js/MeterBlocks.js:813 -msgid "on every beat do" +#: js/blocks/PitchBlocks.js:1289 +#.TRANS: sixth means the note is the five scale degrees above current note +msgid "sixth" msgstr "" -#: js/MeterBlocks.js:821 -msgid "The On-every-beat block lets you specify actions to take on every beat." +#: js/blocks/PitchBlocks.js:1308 +#.TRANS: fifth means the note is the four scale degrees above current note +msgid "fifth" msgstr "" -#: js/MeterBlocks.js:874 -msgid "on every note do" +#: js/blocks/PitchBlocks.js:1328 +#.TRANS: fourth means the note is three scale degrees above current note +msgid "fourth" msgstr "" -#: js/MeterBlocks.js:882 -msgid "The On-every-note block lets you specify actions to take on every note." +#: js/blocks/PitchBlocks.js:1347 +#.TRANS: third means the note is two scale degrees above current note +msgid "third" msgstr "" -#: js/MeterBlocks.js:928 -#: js/MeterBlocks.js:999 -#.TRANS: sets tempo by defining a beat and beats per minute -msgid "master beats per minute" +#: js/blocks/PitchBlocks.js:1366 +#.TRANS: second means the note is one scale degree above current note +msgid "second" msgstr "" -#: js/MeterBlocks.js:952 -#: js/MeterBlocks.js:1078 -#: js/MeterBlocks.js:1135 -msgid "bpm" +#: js/blocks/PitchBlocks.js:1407 +msgid "The Scalar transposition block will shift the pitches contained inside Note blocks up (or down) the scale." msgstr "" -#: js/MeterBlocks.js:952 -#: js/MeterBlocks.js:1078 -#: js/MeterBlocks.js:1135 -msgid "beat value" +#: js/blocks/PitchBlocks.js:1409 +msgid "In the example shown above, sol is shifted up to la." msgstr "" -#: js/MeterBlocks.js:1024 -#: js/MeterBlocks.js:1167 -#: js/MeterBlocks.js:1241 -msgid "Beats per minute must be > 30." +#: js/blocks/PitchBlocks.js:1416 +#.TRANS: adjust the amount of shift (up or down) of a pitch by musical scale (scalar) steps +msgid "scalar transpose" msgstr "" -#: js/MeterBlocks.js:1027 -#: js/MeterBlocks.js:1170 -#: js/MeterBlocks.js:1244 -msgid "Maximum beats per minute is 1000." +#: js/blocks/PitchBlocks.js:1451 +msgid "The Accidental block is used to create sharps and flats" msgstr "" -#: js/MeterBlocks.js:1068 -msgid "The Beats per minute block sets the number of 1/4 notes per minute." +#: js/blocks/PitchBlocks.js:1458 +#.TRANS: An accidental is a modification to a pitch, e.g., sharp or flat. +msgid "accidental override" msgstr "" -#: js/MeterBlocks.js:1279 -#.TRANS: anacrusis -msgid "pickup" +#: js/blocks/PitchBlocks.js:1581 +msgid "The Hertz block (in combination with a Number block) will play a sound at the specified frequency." msgstr "" -#: js/MeterBlocks.js:1367 -msgid "number of beats" +#: js/blocks/PitchBlocks.js:1671 +msgid "The Pitch Number block will play a pitch associated by its number, e.g. 0 for C and 7 for G." msgstr "" -#: js/DictBlocks.js:77 -msgid "show dictionary" +#: js/blocks/PitchBlocks.js:1703 +#: js/blocks/PitchBlocks.js:1745 +#.TRANS: a numeric mapping of the notes in an octave based on the musical mode +#.TRANS: a numeric mapping of the notes in an octave based on the musical mode +msgid "nth modal pitch" msgstr "" -#: js/DictBlocks.js:129 -msgid "The Dictionary block returns a dictionary." +#: js/blocks/PitchBlocks.js:1706 +msgid "n^th Modal Pitch takes the pattern of pitches in semitones for a mode and makes each point a degree of the mode," msgstr "" -#: js/DictBlocks.js:197 -#: js/DictBlocks.js:339 -msgid "The Get-dict block returns a value in the dictionary for a specified key." +#: js/blocks/PitchBlocks.js:1708 +msgid "starting from 1 and regardless of tonal framework (i.e. not always 8 notes in the octave)" msgstr "" -#: js/DictBlocks.js:212 -#: js/DictBlocks.js:354 -#.TRANS: retrieve a value from the dictionary with a given key -msgid "get value" +#: js/blocks/PitchBlocks.js:1749 +msgid "N^th Modal Pitch takes a number as an input as the n^th degree for the given mode. 0 is the first position, 1 is the second, -1 is the note before the first etc." msgstr "" -#: js/DictBlocks.js:215 -#: js/DictBlocks.js:216 -#: js/DictBlocks.js:289 -#: js/DictBlocks.js:290 -#: js/DictBlocks.js:357 -#: js/DictBlocks.js:430 -#: js/DictBlocks.js:431 -msgid "key2" +#: js/blocks/PitchBlocks.js:1751 +msgid "The pitches change according to the mode specified without any need for respellings." msgstr "" -#: js/DictBlocks.js:271 -#: js/DictBlocks.js:411 -msgid "The Set-dict block sets a value in the dictionary for a specified key." +#: js/blocks/PitchBlocks.js:1790 +msgid "Scale Degree is a common convention in music. Scale Degree offers seven possible positions in the scale (1-7) and can be modified via accidentals." msgstr "" -#: js/DictBlocks.js:286 -#: js/DictBlocks.js:427 -#.TRANS: set a value in the dictionary for a given key -msgid "set value" +#: js/blocks/PitchBlocks.js:1792 +msgid "Scale Degree 1 is always the first pitch in a given scale, regardless of octave." msgstr "" -#: js/ExtrasBlocks.js:33 -msgid "fraction" +#: js/blocks/PitchBlocks.js:1814 +#.TRANS: step some number of notes in current musical scale +msgid "scalar step" msgstr "" -#: js/ExtrasBlocks.js:36 -msgid "Convert a float to a fraction" +#: js/blocks/PitchBlocks.js:1819 +msgid "The Scalar Step block (in combination with a Number block) will play the next pitch in a scale," msgstr "" -#: js/ExtrasBlocks.js:93 -msgid "save as ABC" +#: js/blocks/PitchBlocks.js:1821 +msgid "eg if the last note played was sol, Scalar Step 1 will play la." msgstr "" -#: js/ExtrasBlocks.js:96 -#: js/ExtrasBlocks.js:132 -#: js/ExtrasBlocks.js:168 -msgid "title" +#: js/blocks/PitchBlocks.js:1857 +msgid "The Pitch block specifies the pitch name and octave of a note that together determine the frequency of the note." msgstr "" -#: js/ExtrasBlocks.js:129 -msgid "save as Lilypond" +#: js/blocks/ProgramBlocks.js:33 +msgid "The Load-heap-from-app block loads the heap from a web page." msgstr "" -#: js/ExtrasBlocks.js:165 -msgid "save as SVG" +#: js/blocks/ProgramBlocks.js:44 +#.TRANS: load the heap contents from a URL +msgid "load heap from App" msgstr "" -#: js/ExtrasBlocks.js:216 -msgid "no background" +#: js/blocks/ProgramBlocks.js:95 +msgid "Error parsing JSON data:" msgstr "" -#: js/ExtrasBlocks.js:219 -msgid "The No background block eliminates the background from the saved SVG output." +#: js/blocks/ProgramBlocks.js:100 +msgid "404: Page not found" msgstr "" -#: js/ExtrasBlocks.js:247 -msgid "show blocks" +#: js/blocks/ProgramBlocks.js:133 +msgid "The Save-heap-to-app block saves the heap to a web page." msgstr "" -#: js/ExtrasBlocks.js:249 -msgid "The Show blocks block shows the blocks." +#: js/blocks/ProgramBlocks.js:144 +#.TRANS: save the heap contents to a URL +msgid "save heap to App" msgstr "" -#: js/ExtrasBlocks.js:274 -msgid "hide blocks" +#: js/blocks/ProgramBlocks.js:189 +msgid "Cannot find a valid heap for" msgstr "" -#: js/ExtrasBlocks.js:276 -msgid "The Hide blocks block hides the blocks." +#: js/blocks/ProgramBlocks.js:206 +msgid "The Load-heap block loads the heap from a file." msgstr "" -#: js/ExtrasBlocks.js:305 -#: js/ExtrasBlocks.js:335 -msgid "The Space block is used to add space between blocks." +#: js/blocks/ProgramBlocks.js:217 +#.TRANS: load the heap from a file +msgid "load heap" msgstr "" -#: js/ExtrasBlocks.js:373 -msgid "wait" +#: js/blocks/ProgramBlocks.js:270 +msgid "The file you selected does not contain a valid heap." msgstr "" -#: js/ExtrasBlocks.js:376 -msgid "The Wait block pauses the program for a specified number of seconds." +#: js/blocks/ProgramBlocks.js:275 +msgid "The loadHeap block needs a loadFile block." msgstr "" -#: js/ExtrasBlocks.js:430 -#: plugins/facebook.rtp:30 -msgid "comment" +#: js/blocks/ProgramBlocks.js:291 +msgid "The Set-heap block loads the heap." msgstr "" -#: js/ExtrasBlocks.js:466 -msgid "print" +#: js/blocks/ProgramBlocks.js:340 +msgid "The block you selected does not contain a valid heap." msgstr "" -#: js/ExtrasBlocks.js:473 -msgid "The Print block displays text at the top of the screen." +#: js/blocks/ProgramBlocks.js:343 +msgid "The Set heap block needs a heap." msgstr "" -#: js/ExtrasBlocks.js:579 -msgid "display grid" +#: js/blocks/ProgramBlocks.js:360 +msgid "The Load-dictionary block loads a dictionary from a file." msgstr "" -#: js/ExtrasBlocks.js:584 -msgid "The Display Grid Block changes the grid type" +#: js/blocks/ProgramBlocks.js:372 +#.TRANS: load a dictionary from a file +msgid "load dictionary" msgstr "" -#: js/ExtrasBlocks.js:686 -#: js/ExtrasBlocks.js:705 -#: js/ExtrasBlocks.js:728 -#: js/ExtrasBlocks.js:751 -#: js/ExtrasBlocks.js:769 -#: js/ExtrasBlocks.js:788 -#: js/ExtrasBlocks.js:807 -#: js/ExtrasBlocks.js:826 -msgid "unknown" +#: js/blocks/ProgramBlocks.js:390 +#: js/blocks/ProgramBlocks.js:658 +#: js/blocks/ToneBlocks.js:1025 +msgid "file" msgstr "" -#: js/SensorsBlocks.js:36 -msgid "The Input block prompts for keyboard input." +#: js/blocks/ProgramBlocks.js:444 +msgid "The file you selected does not contain a valid dictionary." msgstr "" -#: js/SensorsBlocks.js:46 -msgid "input" +#: js/blocks/ProgramBlocks.js:449 +msgid "The load dictionary block needs a load file block." msgstr "" -#: js/SensorsBlocks.js:64 -msgid "Input a value" +#: js/blocks/ProgramBlocks.js:466 +msgid "The Set-dictionary block loads a dictionary." msgstr "" -#: js/SensorsBlocks.js:126 -msgid "input value" +#: js/blocks/ProgramBlocks.js:477 +#.TRANS: load a dictionary from a JSON +msgid "set dictionary" msgstr "" -#: js/SensorsBlocks.js:131 -msgid "The Input-value block stores the input." +#: js/blocks/ProgramBlocks.js:546 +msgid "The block you selected does not contain a valid dictionary." msgstr "" -#: js/SensorsBlocks.js:238 -msgid "loudness" +#: js/blocks/ProgramBlocks.js:550 +msgid "The set dictionary block needs a dictionary." msgstr "" -#: js/SensorsBlocks.js:245 -msgid "The Loudness block returns the volume detected by the microphone." +#: js/blocks/ProgramBlocks.js:567 +msgid "The Save-heap block saves the heap to a file." msgstr "" -#: js/SensorsBlocks.js:300 -msgid "click" +#: js/blocks/ProgramBlocks.js:578 +#.TRANS: save the heap to a file +msgid "save heap" msgstr "" -#: js/SensorsBlocks.js:306 -msgid "The Click block triggers an event if a mouse has been clicked." +#: js/blocks/ProgramBlocks.js:629 +msgid "The Save-dictionary block saves a dictionary to a file." msgstr "" -#: js/SensorsBlocks.js:313 -msgid "The Click block triggers an event if a turtle has been clicked." +#: js/blocks/ProgramBlocks.js:640 +#.TRANS: save a dictionary to a file +msgid "save dictionary" msgstr "" -#: js/SensorsBlocks.js:342 -msgid "cursor over" +#: js/blocks/ProgramBlocks.js:720 +msgid "The Open palette block opens a palette." msgstr "" -#: js/SensorsBlocks.js:387 -msgid "cursor out" +#: js/blocks/ProgramBlocks.js:727 +msgid "open palette" msgstr "" -#: js/SensorsBlocks.js:433 -msgid "cursor button down" +#: js/blocks/ProgramBlocks.js:785 +msgid "The Delete block block removes a block." msgstr "" -#: js/SensorsBlocks.js:477 -msgid "cursor button up" +#: js/blocks/ProgramBlocks.js:797 +#.TRANS: Move this block to the trash. +msgid "delete block" msgstr "" -#: js/SensorsBlocks.js:638 -msgid "The Get red block returns the red component of the pixel under the mouse." +#: js/blocks/ProgramBlocks.js:861 +msgid "The Move block block moves a block." msgstr "" -#: js/SensorsBlocks.js:644 -msgid "The Get red block returns the red component of the pixel under the turtle." +#: js/blocks/ProgramBlocks.js:869 +#.TRANS: Move the position of a block on the screen. +msgid "move block" msgstr "" -#: js/SensorsBlocks.js:685 -#: plugins/rodi.rtp:216 -msgid "pixel color" +#: js/blocks/ProgramBlocks.js:881 +#: js/blocks/ProgramBlocks.js:1048 +msgid "block number" msgstr "" -#: js/SensorsBlocks.js:690 -msgid "The Get pixel block returns the color of the pixel under the mouse." +#: js/blocks/ProgramBlocks.js:935 +#.TRANS: Run program beginning at this block. +msgid "run block" msgstr "" -#: js/SensorsBlocks.js:696 -msgid "The Get pixel block returns the color of the pixel under the turtle." +#: js/blocks/ProgramBlocks.js:1025 +msgid "The Dock block block connections two blocks." msgstr "" -#: js/SensorsBlocks.js:758 -msgid "time" +#: js/blocks/ProgramBlocks.js:1036 +#.TRANS: We can connect a block to another block. +msgid "connect blocks" msgstr "" -#: js/SensorsBlocks.js:804 -msgid "cursor y" +#: js/blocks/ProgramBlocks.js:1048 +msgid "target block" msgstr "" -#: js/SensorsBlocks.js:809 -msgid "The Cursor Y block returns the vertical position of the mouse." +#: js/blocks/ProgramBlocks.js:1048 +msgid "connection number" msgstr "" -#: js/SensorsBlocks.js:845 -msgid "cursor x" +#: js/blocks/ProgramBlocks.js:1140 +msgid "The Make block block creates a new block." msgstr "" -#: js/SensorsBlocks.js:850 -msgid "The Cursor X block returns the horizontal position of the mouse." +#: js/blocks/ProgramBlocks.js:1152 +#.TRANS: Create a new block +msgid "make block" msgstr "" -#: js/SensorsBlocks.js:886 -msgid "mouse button" +#: js/blocks/ProgramBlocks.js:1285 +msgid "Cannot find block" msgstr "" -#: js/SensorsBlocks.js:888 -msgid "The Mouse-button block returns True if the mouse button is pressed." +#: js/blocks/ProgramBlocks.js:1304 +#: js/blocks/ProgramBlocks.js:1313 +msgid "Warning: block argument type mismatch" msgstr "" -#: js/SensorsBlocks.js:934 -msgid "to ASCII" +#: js/blocks/ProgramBlocks.js:1347 +msgid "The Open project block is used to open a project from a web page." msgstr "" -#: js/SensorsBlocks.js:938 -msgid "The To ASCII block converts numbers to letters." +#: js/blocks/ProgramBlocks.js:1357 +msgid "open project" msgstr "" -#: js/SensorsBlocks.js:1005 -msgid "The Keyboard block returns computer keyboard input." +#: js/blocks/ProgramBlocks.js:1410 +msgid "Please enter a valid URL." msgstr "" -#: js/IntervalsActions.js:216 -msgid "Adding missing pitch number 0." +#: js/blocks/ToneBlocks.js:34 +msgid "oscillator" msgstr "" -#: js/IntervalsActions.js:224 -msgid "Ignoring pitch numbers less than zero or greater than eleven." +#: js/blocks/ToneBlocks.js:42 +#: js/blocks/WidgetBlocks.js:179 +#: js/widgets/timbre.js:1558 +#: js/widgets/timbre.js:1808 +#.TRANS: there are different types (sine, triangle, square...) of oscillators. +#.TRANS: type of filter, e.g., lowpass, highpass, etc. +msgid "type" msgstr "" -#: js/IntervalsActions.js:230 -msgid "Ignoring duplicate pitch numbers." +#: js/blocks/ToneBlocks.js:44 +#: js/widgets/timbre.js:1562 +#.TRANS: Partials refers to the number of sine waves combined into the sound. +msgid "partials" msgstr "" -#: js/PitchActions.js:88 -msgid "The Scalar Step Block must be used inside of a Note Block." +#: js/blocks/ToneBlocks.js:76 +msgid "You are adding multiple oscillator blocks." msgstr "" -#: js/PitchActions.js:107 -msgid "The Scalar Step Block must be preceded by a Pitch Block." +#: js/blocks/ToneBlocks.js:144 +#: js/widgets/timbre.js:1225 +#.TRANS: a duo synthesizer combines a synth with a sequencer +msgid "duo synth" msgstr "" -#: js/DrumActions.js:231 -msgid "Noise Block: Did you mean to use a Note block?" +#: js/blocks/ToneBlocks.js:149 +msgid "The Duo synth block is a duo-frequency modulator used to define a timbre." msgstr "" -#: js/MeterActions.js:101 -#: js/MeterActions.js:139 -msgid "beats per minute must be greater than" +#: js/blocks/ToneBlocks.js:157 +#: js/widgets/timbre.js:1476 +msgid "vibrato rate" msgstr "" -#: js/MeterActions.js:111 -#: js/MeterActions.js:149 -msgid "maximum" +#: js/blocks/ToneBlocks.js:157 +msgid "vibrato intensity" msgstr "" -#: js/MeterActions.js:117 -#: js/MeterActions.js:155 -msgid "beats per minute is" +#: js/blocks/ToneBlocks.js:185 +#: js/widgets/timbre.js:1221 +#.TRANS: AM (amplitude modulation) synthesizer +msgid "AM synth" msgstr "" -#: js/ToneActions.js:134 -msgid "Vibrato intensity must be between 1 and 100." +#: js/blocks/ToneBlocks.js:189 +msgid "The AM synth block is an amplitude modulator used to define a timbre." msgstr "" -#: js/ToneActions.js:139 -msgid "Vibrato rate must be greater than 0." +#: js/blocks/ToneBlocks.js:224 +#: js/widgets/timbre.js:1223 +#.TRANS: FM (frequency modulation) synthesizer +msgid "FM synth" msgstr "" -#: js/ToneActions.js:192 -#: js/ToneActions.js:265 -#.TRANS: Depth is the intesity of the tremolo or chorus effect. -msgid "Depth is out of range." +#: js/blocks/ToneBlocks.js:228 +msgid "The FM synth block is a frequency modulator used to define a timbre." msgstr "" -#: js/ToneActions.js:301 -msgid "Distortion must be from 0 to 100." +#: js/blocks/ToneBlocks.js:262 +msgid "partial" msgstr "" -#: js/ToneActions.js:332 -#.TRANS: partials components in a harmonic series -msgid "Partial must be greater than or equal to 0." +#: js/blocks/ToneBlocks.js:265 +msgid "The Partial block is used to specify a weight for a specific partial harmonic." msgstr "" -#: js/ToneActions.js:378 -#: js/ToneActions.js:417 -#: js/ToneActions.js:456 -#: js/timbre.js:782 -msgid "Unable to use synth due to existing oscillator" +#: js/blocks/ToneBlocks.js:284 +#.TRANS: partials are weighted components in a harmonic series +msgid "Partial weight must be between 0 and 1." msgstr "" -#: js/ToneActions.js:388 -#: js/ToneActions.js:427 -msgid "The input cannot be negative." +#: js/blocks/ToneBlocks.js:297 +#.TRANS: partials are weighted components in a harmonic series +msgid "Partial block should be used inside of a Weighted-partials block." msgstr "" -#: js/DictActions.js:75 -#: js/DictActions.js:153 -#: js/DictActions.js:188 -msgid "font" +#: js/blocks/ToneBlocks.js:325 +#.TRANS: partials are weighted components in a harmonic series +msgid "weighted partials" msgstr "" -#: js/musicutils.js:363 -#: js/musicutils.js:471 -#: js/pitchdrummatrix.js:151 -#: js/musickeyboard.js:2563 -msgid "rest" +#: js/blocks/ToneBlocks.js:383 +msgid "The Harmonic block will add harmonics to the contained notes." msgstr "" -#: js/musicutils.js:565 -#.TRANS: ordinal number. Please keep exactly one space between each number. -msgid "1st 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th" +#: js/blocks/ToneBlocks.js:390 +#.TRANS: A harmonic is an overtone. +msgid "harmonic" msgstr "" -#: js/musicutils.js:629 -#: js/musicutils.js:812 -#: js/musicutils.js:911 -#.TRANS: augmented is a music term related to intervals -msgid "augmented" +#: js/blocks/ToneBlocks.js:431 +msgid "The Distortion block adds distortion to the pitch." msgstr "" -#: js/musicutils.js:631 -#: js/musicutils.js:813 -#: js/musicutils.js:910 -#.TRANS: diminished is a music term related to intervals and mode -msgid "diminished" +#: js/blocks/ToneBlocks.js:438 +#: js/widgets/timbre.js:2100 +#.TRANS: distortion is an alteration in the sound +msgid "distortion" msgstr "" -#: js/musicutils.js:639 -#.TRANS: twelve semi-tone scale for music -msgid "chromatic" +#: js/blocks/ToneBlocks.js:487 +msgid "The Tremolo block adds a wavering effect." msgstr "" -#: js/musicutils.js:640 -msgid "algerian" +#: js/blocks/ToneBlocks.js:495 +#: js/widgets/timbre.js:2092 +#.TRANS: a wavering effect in a musical tone +msgid "tremolo" msgstr "" -#: js/musicutils.js:641 -msgid "spanish" +#: js/blocks/ToneBlocks.js:500 +#: js/blocks/ToneBlocks.js:569 +#: js/blocks/ToneBlocks.js:630 +#: js/blocks/ToneBlocks.js:689 +#: js/widgets/timbre.js:2134 +#: js/widgets/timbre.js:2222 +#: js/widgets/timbre.js:2317 +#: js/widgets/timbre.js:2419 +#.TRANS: rate at which tremolo wavers +msgid "rate" msgstr "" -#: js/musicutils.js:643 -#.TRANS: modal scale in music -msgid "octatonic" +#: js/blocks/ToneBlocks.js:502 +#: js/blocks/ToneBlocks.js:630 +#: js/widgets/timbre.js:2137 +#: js/widgets/timbre.js:2328 +#.TRANS: amplitude of tremolo waver +msgid "depth" msgstr "" -#: js/musicutils.js:645 -#.TRANS: harmonic major scale in music -msgid "harmonic major" +#: js/blocks/ToneBlocks.js:559 +msgid "The Phaser block adds a sweeping sound." msgstr "" -#: js/musicutils.js:647 -#.TRANS: natural minor scales in music -msgid "natural minor" +#: js/blocks/ToneBlocks.js:566 +#: js/widgets/timbre.js:2098 +#.TRANS: alter the phase of the sound +msgid "phaser" msgstr "" -#: js/musicutils.js:649 -#.TRANS: harmonic minor scale in music -msgid "harmonic minor" +#: js/blocks/ToneBlocks.js:569 +#: js/turtleactions/IntervalsActions.js:114 +#: js/widgets/timbre.js:2422 +msgid "octaves" msgstr "" -#: js/musicutils.js:651 -#.TRANS: melodic minor scale in music -msgid "melodic minor" +#: js/blocks/ToneBlocks.js:569 +#: js/widgets/timbre.js:2425 +msgid "base frequency" msgstr "" -#: js/musicutils.js:655 -#.TRANS: modal scale for music -msgid "dorian" +#: js/blocks/ToneBlocks.js:619 +msgid "The Chorus block adds a chorus effect." msgstr "" -#: js/musicutils.js:657 -#.TRANS: modal scale for music -msgid "phrygian" +#: js/blocks/ToneBlocks.js:627 +#: js/widgets/timbre.js:2096 +#.TRANS: musical effect to simulate a choral sound +msgid "chorus" msgstr "" -#: js/musicutils.js:659 -#.TRANS: modal scale for music -msgid "lydian" +#: js/blocks/ToneBlocks.js:630 +msgid "delay" msgstr "" -#: js/musicutils.js:661 -#.TRANS: modal scale for music -msgid "mixolydian" +#: js/blocks/ToneBlocks.js:678 +msgid "The Vibrato block adds a rapid, slight variation in pitch." msgstr "" -#: js/musicutils.js:665 -#.TRANS: modal scale for music -msgid "locrian" +#: js/blocks/ToneBlocks.js:686 +#: js/widgets/timbre.js:2094 +#.TRANS: a rapid, slight variation in pitch +msgid "vibrato" msgstr "" -#: js/musicutils.js:667 -#.TRANS: minor jazz scale for music -msgid "jazz minor" +#: js/blocks/ToneBlocks.js:689 +#: js/widgets/timbre.js:2221 +msgid "intensity" msgstr "" -#: js/musicutils.js:669 -#.TRANS: bebop scale for music -msgid "bebop" +#: js/blocks/ToneBlocks.js:733 +#.TRANS: select synthesizer +msgid "set synth" msgstr "" -#: js/musicutils.js:670 -msgid "arabic" +#: js/blocks/ToneBlocks.js:804 +msgid "synth name" msgstr "" -#: js/musicutils.js:671 -msgid "byzantine" +#: js/blocks/ToneBlocks.js:842 +msgid "set default instrument" msgstr "" -#: js/musicutils.js:673 -#.TRANS: musical scale for music by Verdi -msgid "enigmatic" +#: js/blocks/ToneBlocks.js:895 +#: js/blocks/ToneBlocks.js:943 +#.TRANS: set the characteristics of a custom instrument +msgid "set instrument" msgstr "" -#: js/musicutils.js:674 -msgid "ethiopian" +#: js/blocks/ToneBlocks.js:898 +#: js/blocks/ToneBlocks.js:926 +#: js/blocks/ToneBlocks.js:932 +msgid "The Set instrument block selects a voice for the synthesizer," msgstr "" -#: js/musicutils.js:676 -#.TRANS: Ethiopic scale for music -msgid "geez" +#: js/blocks/ToneBlocks.js:900 +#: js/blocks/ToneBlocks.js:934 +msgid "eg guitar piano violin or cello." msgstr "" -#: js/musicutils.js:677 -msgid "hindu" +#: js/blocks/ToneBlocks.js:1015 +msgid "Import a sound file to use as an instrument and set its pitch center." msgstr "" -#: js/musicutils.js:678 -msgid "hungarian" +#: js/blocks/ToneBlocks.js:1110 +msgid "Upload a sound file to connect with the sample block." msgstr "" -#: js/musicutils.js:680 -#.TRANS: minor Romanian scale for music -msgid "romanian minor" +#: js/blocks/VolumeBlocks.js:35 +msgid "synth volume" msgstr "" -#: js/musicutils.js:681 -msgid "spanish gypsy" +#: js/blocks/VolumeBlocks.js:39 +msgid "The Synth volume block returns the current volume of the current synthesizer." msgstr "" -#: js/musicutils.js:683 -#.TRANS: musical scale for Mid-Eastern music -msgid "maqam" +#: js/blocks/VolumeBlocks.js:105 +msgid "master volume" msgstr "" -#: js/musicutils.js:685 -#.TRANS: minor blues scale for music -msgid "minor blues" +#: js/blocks/VolumeBlocks.js:109 +msgid "The Master volume block returns the master volume." msgstr "" -#: js/musicutils.js:687 -#.TRANS: major blues scale for music -msgid "major blues" +#: js/blocks/VolumeBlocks.js:355 +#: js/blocks/VolumeBlocks.js:524 +msgid "set synth volume" msgstr "" -#: js/musicutils.js:688 -msgid "whole tone" +#: js/blocks/VolumeBlocks.js:362 +#: js/blocks/VolumeBlocks.js:545 +msgid "synth" msgstr "" -#: js/musicutils.js:690 -#.TRANS: pentatonic is a general term that means "five note scale". This scale is typically known as "minor pentatonic" -msgid "minor pentatonic" +#: js/blocks/VolumeBlocks.js:403 +#: js/blocks/VolumeBlocks.js:577 +#: js/blocks/VolumeBlocks.js:740 +#: js/turtleactions/VolumeActions.js:173 +msgid "Setting volume to 0." msgstr "" -#: js/musicutils.js:692 -#.TRANS: pentatonic is a general term that means "five note scale". This scale is typically known as "major pentatonic" -msgid "major pentatonic" +#: js/blocks/VolumeBlocks.js:440 +msgid "Synth not found" msgstr "" -#: js/musicutils.js:693 -msgid "chinese" +#: js/blocks/VolumeBlocks.js:494 +msgid "set drum volume" msgstr "" -#: js/musicutils.js:694 -msgid "egyptian" +#: js/blocks/VolumeBlocks.js:530 +msgid "The Set synth volume block will change the volume of a particular synth," msgstr "" -#: js/musicutils.js:696 -#.TRANS: https://en.wikipedia.org/wiki/Hirajoshi_scale NOTE: There are three different versions of this scale -msgid "hirajoshi" +#: js/blocks/VolumeBlocks.js:532 +msgid "eg guitar violin snare drum etc." msgstr "" -#: js/musicutils.js:697 -msgid "Japan" +#: js/blocks/VolumeBlocks.js:534 +msgid "The default volume is 50." msgstr "" -#: js/musicutils.js:699 -#.TRANS: https://en.wikipedia.org/wiki/In_scale and https://en.wikipedia.org/wiki/Sakura_Sakura -msgid "in" +#: js/blocks/VolumeBlocks.js:536 +msgid "The range is 0 for silence to 100 for full volume." msgstr "" -#: js/musicutils.js:701 -#.TRANS: https://en.wikipedia.org/wiki/Miny%C5%8D_scale -msgid "minyo" +#: js/blocks/VolumeBlocks.js:597 +msgid "set panning" msgstr "" -#: js/musicutils.js:703 -#.TRANS: Italian mathematician -msgid "fibonacci" +#: js/blocks/VolumeBlocks.js:603 +msgid "The Set Panning block sets the panning for all synthesizers." msgstr "" -#: js/musicutils.js:708 -#: js/musicutils.js:1106 -#.TRANS: lowpass filter -msgid "lowpass" +#: js/blocks/VolumeBlocks.js:625 +msgid "Warning: Sound is coming out from only the left or right side." msgstr "" -#: js/musicutils.js:710 -#: js/musicutils.js:1107 -#.TRANS: bandpass filter -msgid "bandpass" +#: js/blocks/VolumeBlocks.js:647 +#: js/blocks/VolumeBlocks.js:695 +msgid "set master volume" msgstr "" -#: js/musicutils.js:712 -#: js/musicutils.js:1108 -#.TRANS: high-shelf filter -msgid "highshelf" +#: js/blocks/VolumeBlocks.js:653 +msgid "The Set master volume block sets the volume for all synthesizers." msgstr "" -#: js/musicutils.js:714 -#: js/musicutils.js:1109 -#.TRANS: low-shelf filter -msgid "lowshelf" +#: js/blocks/VolumeBlocks.js:784 +msgid "The Set relative volume block changes the volume of the contained notes." msgstr "" -#: js/musicutils.js:716 -#: js/musicutils.js:1110 -#.TRANS: notch-shelf filter -msgid "notch" +#: js/blocks/VolumeBlocks.js:791 +msgid "set relative volume" msgstr "" -#: js/musicutils.js:718 -#: js/musicutils.js:1111 -#.TRANS: all-pass filter -msgid "allpass" +#: js/blocks/VolumeBlocks.js:857 +msgid "decrescendo" msgstr "" -#: js/musicutils.js:720 -#: js/musicutils.js:1112 -#.TRANS: peaking filter -msgid "peaking" +#: js/blocks/VolumeBlocks.js:921 +msgid "crescendo" msgstr "" -#: js/musicutils.js:731 -#: js/synthutils.js:58 -#.TRANS: musical instrument -msgid "violin" +#: js/blocks/WidgetBlocks.js:81 +#.TRANS: sound envelope (ADSR) +msgid "envelope" msgstr "" -#: js/musicutils.js:732 -#: js/synthutils.js:60 -#.TRANS: viola musical instrument -msgid "viola" +#: js/blocks/WidgetBlocks.js:89 +#.TRANS: Attack time is the time taken for initial run-up of level from nil to peak, beginning when the key is first pressed. +msgid "attack" msgstr "" -#: js/musicutils.js:733 -#: js/synthutils.js:98 -#.TRANS: xylophone musical instrument -msgid "xylophone" +#: js/blocks/WidgetBlocks.js:91 +#.TRANS: Decay time is the time taken for the subsequent run down from the attack level to the designated sustain level. +msgid "decay" msgstr "" -#: js/musicutils.js:734 -#: js/synthutils.js:120 -#.TRANS: vibraphone musical instrument -msgid "vibraphone" +#: js/blocks/WidgetBlocks.js:93 +#.TRANS: Sustain level is the level during the main sequence of the sound's duration, until the key is released. +msgid "sustain" msgstr "" -#: js/musicutils.js:735 -#: js/synthutils.js:62 -#.TRANS: musical instrument -msgid "cello" +#: js/blocks/WidgetBlocks.js:95 +#.TRANS: Release time is the time taken for the level to decay from the sustain level to zero after the key is released. +msgid "release" msgstr "" -#: js/musicutils.js:737 -#: js/synthutils.js:66 -#.TRANS: viola musical instrument -msgid "double bass" +#: js/blocks/WidgetBlocks.js:113 +msgid "Attack value should be from 0 to 100." msgstr "" -#: js/musicutils.js:738 -#: js/synthutils.js:68 -#: js/rhythmruler.js:2119 -#.TRANS: musical instrument -msgid "guitar" +#: js/blocks/WidgetBlocks.js:116 +msgid "Decay value should be from 0 to 100." msgstr "" -#: js/musicutils.js:739 -#: js/synthutils.js:70 -#.TRANS: musical instrument -msgid "acoustic guitar" +#: js/blocks/WidgetBlocks.js:119 +msgid "Sustain value should be from 0 to 100." msgstr "" -#: js/musicutils.js:740 -#: js/synthutils.js:72 -#.TRANS: musical instrument -msgid "flute" +#: js/blocks/WidgetBlocks.js:122 +msgid "Release value should be from 0-100." msgstr "" -#: js/musicutils.js:741 -#: js/synthutils.js:74 -#.TRANS: musical instrument -msgid "clarinet" +#: js/blocks/WidgetBlocks.js:140 +msgid "You are adding multiple envelope blocks." msgstr "" -#: js/musicutils.js:742 -#: js/synthutils.js:76 -#.TRANS: musical instrument -msgid "saxophone" +#: js/blocks/WidgetBlocks.js:171 +#.TRANS: a filter removes some unwanted components from a signal +msgid "filter" msgstr "" -#: js/musicutils.js:743 -#: js/synthutils.js:78 -#.TRANS: musical instrument -msgid "tuba" +#: js/blocks/WidgetBlocks.js:181 +#: js/widgets/timbre.js:1818 +#.TRANS: rolloff is the steepness of a change in frequency. +msgid "rolloff" msgstr "" -#: js/musicutils.js:744 -#: js/synthutils.js:80 -#.TRANS: musical instrument -msgid "trumpet" +#: js/blocks/WidgetBlocks.js:213 +#.TRANS: rolloff is the steepness of a change in frequency. +msgid "Rolloff value should be either -12, -24, -48, or -96 decibels/octave." msgstr "" -#: js/musicutils.js:745 -#: js/synthutils.js:82 -#.TRANS: musical instrument -msgid "oboe" +#: js/blocks/WidgetBlocks.js:252 +msgid "The Temperament tool is used to define custom tuning." msgstr "" -#: js/musicutils.js:746 -#: js/synthutils.js:84 -#.TRANS: musical instrument -msgid "trombone" +#: js/blocks/WidgetBlocks.js:332 +#: js/blocks/WidgetBlocks.js:1573 +#: js/widgets/sampler.js:547 +msgid "Upload a sample and adjust its pitch center." msgstr "" -#: js/musicutils.js:747 -#: js/synthutils.js:100 -#.TRANS: polytone synthesizer -msgid "electronic synth" +#: js/blocks/WidgetBlocks.js:339 +#.TRANS: the speed at music is should be played. +msgid "sampler" msgstr "" -#: js/musicutils.js:748 -#: js/synthutils.js:102 -#.TRANS: simple monotone synthesizer -msgid "simple 1" +#: js/blocks/WidgetBlocks.js:517 +msgid "The Meter block opens a tool to select strong beats for the meter." msgstr "" -#: js/musicutils.js:749 -msgid "simple 2" +#: js/blocks/WidgetBlocks.js:573 +msgid "The oscilloscope block opens a tool to visualize waveforms." msgstr "" -#: js/musicutils.js:750 -msgid "simple 3" +#: js/blocks/WidgetBlocks.js:578 +msgid "oscilloscope" msgstr "" -#: js/musicutils.js:751 -msgid "simple 4" +#: js/blocks/WidgetBlocks.js:645 +msgid "The Custom mode block opens a tool to explore musical mode (the spacing of the notes in a scale)." msgstr "" -#: js/musicutils.js:753 -#: js/synthutils.js:49 -#.TRANS: brown noise synthesizer -msgid "brown noise" +#: js/blocks/WidgetBlocks.js:651 +#.TRANS: musical mode is the pattern of half-steps in an octave, e.g., Major or Minor modes +msgid "custom mode" msgstr "" -#: js/musicutils.js:754 -#: js/synthutils.js:51 -#.TRANS: pink noise synthesizer -msgid "pink noise" +#: js/blocks/WidgetBlocks.js:700 +msgid "The Tempo block opens a metronome to visualize the beat." msgstr "" -#: js/musicutils.js:756 -#: js/synthutils.js:127 -#: js/rhythmruler.js:1670 -#: js/rhythmruler.js:1928 -#.TRANS: musical instrument -msgid "snare drum" +#: js/blocks/WidgetBlocks.js:762 +msgid "The Arpeggio Widget is used to compose chord sequences." msgstr "" -#: js/musicutils.js:757 -#: js/synthutils.js:129 -#.TRANS: musical instrument -msgid "kick drum" +#: js/blocks/WidgetBlocks.js:837 +msgid "The Pitch drum matrix is used to map pitches to drum sounds." msgstr "" -#: js/musicutils.js:758 -#: js/synthutils.js:131 -#.TRANS: musical instrument -msgid "tom tom" +#: js/blocks/WidgetBlocks.js:842 +#.TRANS: makes a mapping between pitches and drum sounds +msgid "pitch-drum mapper" msgstr "" -#: js/musicutils.js:759 -#: js/synthutils.js:133 -#.TRANS: musical instrument -msgid "floor tom" +#: js/blocks/WidgetBlocks.js:891 +msgid "You must have at least one pitch block and one drum block in the matrix." msgstr "" -#: js/musicutils.js:760 -#: js/synthutils.js:135 -#.TRANS: musical instrument -msgid "bass drum" +#: js/blocks/WidgetBlocks.js:920 +msgid "The Pitch slider tool to is used to generate pitches at selected frequencies." msgstr "" -#: js/musicutils.js:761 -#: js/synthutils.js:137 -#.TRANS: a drum made from an inverted cup -msgid "cup drum" +#: js/blocks/WidgetBlocks.js:925 +#.TRANS: widget to generate pitches using a slider +msgid "pitch slider" msgstr "" -#: js/musicutils.js:762 -#: js/synthutils.js:139 -#.TRANS: musical instrument -msgid "darbuka drum" +#: js/blocks/WidgetBlocks.js:977 +msgid "chromatic keyboard" msgstr "" -#: js/musicutils.js:763 -#: js/synthutils.js:143 -#.TRANS: musical instrument -msgid "hi hat" +#: js/blocks/WidgetBlocks.js:1011 +#: js/blocks/WidgetBlocks.js:1077 +#.TRANS: widget to generate pitches using a slider +msgid "music keyboard" msgstr "" -#: js/musicutils.js:764 -#: js/synthutils.js:145 -#.TRANS: a small metal bell -msgid "ride bell" +#: js/blocks/WidgetBlocks.js:1062 +#: js/blocks/WidgetBlocks.js:1069 +msgid "The Music keyboard block opens a piano keyboard that can be used to create notes." msgstr "" -#: js/musicutils.js:765 -#: js/synthutils.js:147 -#.TRANS: musical instrument -msgid "cow bell" +#: js/blocks/WidgetBlocks.js:1128 +msgid "The Pitch staircase tool to is used to generate pitches from a given ratio." msgstr "" -#: js/musicutils.js:766 -msgid "japanese drum" +#: js/blocks/WidgetBlocks.js:1135 +#.TRANS: generate a progressive sequence of pitches +msgid "pitch staircase" msgstr "" -#: js/musicutils.js:767 -#: js/synthutils.js:153 -#.TRANS: musical instrument -msgid "japanese bell" +#: js/blocks/WidgetBlocks.js:1222 +msgid "The Rhythm Maker block opens a tool to create drum machines." msgstr "" -#: js/musicutils.js:768 -#: js/synthutils.js:149 -#.TRANS: musical instrument -msgid "triangle bell" +#: js/blocks/WidgetBlocks.js:1291 +msgid "G major scale" msgstr "" -#: js/musicutils.js:769 -#: js/synthutils.js:151 -#.TRANS: musical instrument -msgid "finger cymbals" +#: js/blocks/WidgetBlocks.js:1326 +msgid "C major scale" msgstr "" -#: js/musicutils.js:770 -#: js/synthutils.js:155 -#.TRANS: a musically tuned set of bells -msgid "chime" +#: js/blocks/WidgetBlocks.js:1366 +msgid "The Phrase Maker block opens a tool to create musical phrases." msgstr "" -#: js/musicutils.js:771 -#: js/synthutils.js:157 -#.TRANS: a musical instrument -msgid "gong" +#: js/blocks/WidgetBlocks.js:1373 +#.TRANS: assigns pitch to a sequence of beats to generate a melody +msgid "phrase maker" msgstr "" -#: js/musicutils.js:772 -#: js/synthutils.js:159 -#.TRANS: sound effect -msgid "clang" +#: js/blocks/WidgetBlocks.js:1444 +msgid "You must have at least one pitch block and one rhythm block in the matrix." msgstr "" -#: js/musicutils.js:773 -#: js/synthutils.js:161 -#.TRANS: sound effect -msgid "crash" +#: js/blocks/WidgetBlocks.js:1503 +msgid "The Status block opens a tool for inspecting the status of Music Blocks as it is running." msgstr "" -#: js/musicutils.js:774 -#: js/synthutils.js:163 -#.TRANS: sound effect -msgid "bottle" +#: js/blocks/WidgetBlocks.js:1580 +#.TRANS: AI-generated music +msgid "aimusic" msgstr "" -#: js/musicutils.js:775 -#: js/synthutils.js:165 -#.TRANS: sound effect -msgid "clap" +#: js/turtleactions/MeterActions.js:101 +#: js/turtleactions/MeterActions.js:139 +msgid "beats per minute must be greater than" msgstr "" -#: js/musicutils.js:776 -#: js/synthutils.js:167 -#.TRANS: sound effect -msgid "slap" +#: js/turtleactions/MeterActions.js:111 +#: js/turtleactions/MeterActions.js:149 +msgid "maximum" msgstr "" -#: js/musicutils.js:777 -#: js/synthutils.js:169 -#.TRANS: sound effect -msgid "splash" +#: js/turtleactions/MeterActions.js:117 +#: js/turtleactions/MeterActions.js:155 +msgid "beats per minute is" msgstr "" -#: js/musicutils.js:778 -#: js/synthutils.js:171 -#.TRANS: sound effect -msgid "bubbles" +#: js/turtleactions/DictActions.js:75 +#: js/turtleactions/DictActions.js:142 +#: js/turtleactions/DictActions.js:172 +msgid "font" msgstr "" -#: js/musicutils.js:779 -#: js/synthutils.js:173 -#.TRANS: sound effect -msgid "raindrop" +#: js/turtleactions/DictActions.js:255 +msgid "Dictionary with this name does not exist" msgstr "" -#: js/musicutils.js:780 -#: js/synthutils.js:175 -#.TRANS: animal sound effect -msgid "cat" +#: js/turtleactions/DictActions.js:259 +msgid "Key with this name does not exist in " msgstr "" -#: js/musicutils.js:781 -#: js/synthutils.js:177 -#.TRANS: animal sound effect -msgid "cricket" +#: js/turtleactions/DrumActions.js:227 +msgid "Noise Block: Did you mean to use a Note block?" msgstr "" -#: js/musicutils.js:782 -#: js/synthutils.js:179 -#.TRANS: animal sound effect -msgid "dog" +#: js/turtleactions/IntervalsActions.js:113 +msgid "one" msgstr "" -#: js/musicutils.js:784 -#: js/synthutils.js:86 -#.TRANS: musical instrument -msgid "banjo" +#: js/turtleactions/IntervalsActions.js:113 +msgid "two" msgstr "" -#: js/musicutils.js:785 -#: js/synthutils.js:88 -#.TRANS: musical instrument -msgid "koto" +#: js/turtleactions/IntervalsActions.js:113 +msgid "three" msgstr "" -#: js/musicutils.js:786 -#: js/synthutils.js:90 -#.TRANS: musical instrument -msgid "dulcimer" +#: js/turtleactions/IntervalsActions.js:113 +msgid "four" msgstr "" -#: js/musicutils.js:787 -#: js/synthutils.js:92 -#.TRANS: musical instrument -msgid "electric guitar" +#: js/turtleactions/IntervalsActions.js:113 +msgid "five" msgstr "" -#: js/musicutils.js:788 -#: js/synthutils.js:94 -#.TRANS: musical instrument -msgid "bassoon" +#: js/turtleactions/IntervalsActions.js:113 +msgid "six" msgstr "" -#: js/musicutils.js:789 -#: js/synthutils.js:96 -#.TRANS: musical instrument -msgid "celeste" +#: js/turtleactions/IntervalsActions.js:113 +msgid "seven" msgstr "" -#: js/musicutils.js:791 -#: js/musicutils.js:1123 -#: js/musicutils.js:1131 -#: js/temperament.js:650 -#.TRANS: musical temperament -msgid "equal" +#: js/turtleactions/IntervalsActions.js:113 +msgid "eight" msgstr "" -#: js/musicutils.js:793 -#: js/musicutils.js:1125 -#: js/musicutils.js:1133 -#.TRANS: musical temperament -msgid "Pythagorean" +#: js/turtleactions/IntervalsActions.js:113 +msgid "nine" msgstr "" -#: js/musicutils.js:795 -#: js/musicutils.js:1124 -#: js/musicutils.js:1132 -#.TRANS: musical temperament -msgid "just intonation" +#: js/turtleactions/IntervalsActions.js:119 +msgid "a" msgstr "" -#: js/musicutils.js:797 -#: js/musicutils.js:1126 -#: js/musicutils.js:1127 -#: js/musicutils.js:1134 -#: js/musicutils.js:1135 -#.TRANS: musical temperament -msgid "meantone" +#: js/turtleactions/IntervalsActions.js:120 +msgid "below" msgstr "" -#: js/musicutils.js:814 -msgid "major 7th" +#: js/turtleactions/IntervalsActions.js:124 +msgid "above" msgstr "" -#: js/musicutils.js:815 -msgid "minor 7th" +#: js/turtleactions/IntervalsActions.js:131 +msgid "plus" msgstr "" -#: js/musicutils.js:816 -msgid "dominant 7th" +#: js/turtleactions/IntervalsActions.js:139 +msgid " below" msgstr "" -#: js/musicutils.js:817 -msgid "minor-major 7th" +#: js/turtleactions/IntervalsActions.js:257 +msgid "Adding missing pitch number 0." msgstr "" -#: js/musicutils.js:818 -msgid "fully-diminished 7th" +#: js/turtleactions/IntervalsActions.js:265 +msgid "Ignoring pitch numbers less than zero or greater than eleven." msgstr "" -#: js/musicutils.js:819 -msgid "half-diminished 7th" +#: js/turtleactions/IntervalsActions.js:271 +msgid "Ignoring duplicate pitch numbers." msgstr "" -#: js/musicutils.js:4379 -#: js/musicutils.js:4416 -msgid "current" +#: js/turtleactions/ToneActions.js:134 +msgid "Vibrato intensity must be between 1 and 100." msgstr "" -#: js/musicutils.js:4382 -#: js/musicutils.js:4407 -msgid "next" +#: js/turtleactions/ToneActions.js:139 +msgid "Vibrato rate must be greater than 0." msgstr "" -#: js/musicutils.js:4385 -#: js/musicutils.js:4412 -msgid "previous" +#: js/turtleactions/ToneActions.js:192 +#: js/turtleactions/ToneActions.js:265 +#.TRANS: Depth is the intesity of the tremolo or chorus effect. +msgid "Depth is out of range." msgstr "" -#: js/synthutils.js:104 -#.TRANS: simple monotone synthesizer -msgid "simple-2" +#: js/turtleactions/ToneActions.js:301 +msgid "Distortion must be from 0 to 100." msgstr "" -#: js/synthutils.js:106 -#.TRANS: simple monotone synthesizer -msgid "simple-3" +#: js/turtleactions/ToneActions.js:332 +#.TRANS: partials components in a harmonic series +msgid "Partial must be greater than or equal to 0." msgstr "" -#: js/synthutils.js:108 -#.TRANS: simple monotone synthesizer -msgid "simple-4" +#: js/turtleactions/ToneActions.js:378 +#: js/turtleactions/ToneActions.js:417 +#: js/turtleactions/ToneActions.js:456 +#: js/widgets/timbre.js:782 +msgid "Unable to use synth due to existing oscillator" msgstr "" -#: js/synthutils.js:141 -#.TRANS: musical instrument -msgid "taiko" +#: js/turtleactions/ToneActions.js:388 +#: js/turtleactions/ToneActions.js:427 +msgid "The input cannot be negative." msgstr "" -#: js/modewidget.js:86 -#: js/modewidget.js:88 -#: js/modewidget.js:642 -#: js/modewidget.js:644 -#: js/modewidget.js:712 -#: js/modewidget.js:714 -#: js/temperament.js:2078 -#: js/rhythmruler.js:189 -#: js/rhythmruler.js:1410 -#: js/rhythmruler.js:1412 -#: js/rhythmruler.js:1435 -#: js/rhythmruler.js:1437 -#: js/meterwidget.js:89 -#: js/meterwidget.js:91 +#: js/widgets/modewidget.js:86 +#: js/widgets/modewidget.js:88 +#: js/widgets/modewidget.js:642 +#: js/widgets/modewidget.js:644 +#: js/widgets/modewidget.js:712 +#: js/widgets/modewidget.js:714 +#: js/widgets/meterwidget.js:194 +#: js/widgets/meterwidget.js:196 +#: js/widgets/temperament.js:2236 +#: js/widgets/rhythmruler.js:457 +#: js/widgets/rhythmruler.js:1790 +#: js/widgets/rhythmruler.js:1792 +#: js/widgets/rhythmruler.js:1816 +#: js/widgets/rhythmruler.js:1818 msgid "Play all" msgstr "" -#: js/modewidget.js:115 -#: js/pitchstaircase.js:641 -#: js/phrasemaker.js:339 -#: js/pitchdrummatrix.js:94 -#: js/pitchslider.js:125 -#: js/temperament.js:2083 -#: js/musickeyboard.js:530 -#: js/timbre.js:756 -#: js/meterwidget.js:124 -#: js/arpeggio.js:103 +#: js/widgets/modewidget.js:115 +#: js/widgets/meterwidget.js:229 +#: js/widgets/pitchdrummatrix.js:166 +#: js/widgets/pitchslider.js:125 +#: js/widgets/pitchstaircase.js:641 +#: js/widgets/temperament.js:2244 +#: js/widgets/timbre.js:756 +#: js/widgets/arpeggio.js:103 +#: js/widgets/musickeyboard.js:688 +#: js/widgets/phrasemaker.js:550 msgid "Save" msgstr "" -#: js/modewidget.js:121 -#: js/pitchstaircase.js:686 -#: js/phrasemaker.js:356 -#: js/pitchdrummatrix.js:109 -#: js/musickeyboard.js:534 -#: js/rhythmruler.js:269 -#: js/arpeggio.js:118 +#: js/widgets/modewidget.js:121 +#: js/widgets/pitchdrummatrix.js:181 +#: js/widgets/pitchstaircase.js:686 +#: js/widgets/arpeggio.js:118 +#: js/widgets/musickeyboard.js:696 +#: js/widgets/phrasemaker.js:567 +#: js/widgets/rhythmruler.js:601 #.TRANS: clear all subdivisions from the ruler. msgid "Clear" msgstr "" -#: js/modewidget.js:127 +#: js/widgets/modewidget.js:127 msgid "Rotate counter clockwise" msgstr "" -#: js/modewidget.js:133 +#: js/widgets/modewidget.js:133 msgid "Rotate clockwise" msgstr "" -#: js/modewidget.js:139 +#: js/widgets/modewidget.js:139 msgid "Invert" msgstr "" -#: js/modewidget.js:145 -#: js/pitchstaircase.js:678 -#: js/rhythmruler.js:258 -#: js/timbre.js:963 +#: js/widgets/modewidget.js:145 +#: js/widgets/pitchstaircase.js:678 +#: js/widgets/timbre.js:963 +#: js/widgets/rhythmruler.js:578 msgid "Undo" msgstr "" -#: js/modewidget.js:163 +#: js/widgets/modewidget.js:163 #.TRANS: A circle of notes represents the musical mode. msgid "Click in the circle to select notes for the mode." msgstr "" -#: js/modewidget.js:1017 -#: js/pitchstaircase.js:580 -#: js/phrasemaker.js:4855 -#: js/temperament.js:1754 -#: js/rhythmruler.js:1865 -#: js/rhythmruler.js:2081 -#: js/tempo.js:414 +#: js/widgets/modewidget.js:1017 +#: js/widgets/pitchstaircase.js:580 +#: js/widgets/temperament.js:1929 +#: js/widgets/tempo.js:414 +#: js/widgets/phrasemaker.js:5356 +#: js/widgets/rhythmruler.js:2254 +#: js/widgets/rhythmruler.js:2472 msgid "New action block generated!" msgstr "" -#: js/oscilloscope.js:79 -msgid "Zoom In" -msgstr "" - -#: js/oscilloscope.js:88 -msgid "Zoom Out" -msgstr "" - -#: js/pitchstaircase.js:624 -msgid "Play chord" -msgstr "" - -#: js/pitchstaircase.js:632 -msgid "Play scale" +#: js/widgets/meterwidget.js:275 +msgid "Reset" msgstr "" -#: js/pitchstaircase.js:696 -msgid "Click on a note to create a new step." +#: js/widgets/meterwidget.js:301 +msgid "Click in the circle to select strong beats for the meter." msgstr "" -#: js/phrasemaker.js:363 -msgid "Export" +#: js/widgets/oscilloscope.js:79 +msgid "Zoom In" msgstr "" -#: js/phrasemaker.js:370 -msgid "Sort" +#: js/widgets/oscilloscope.js:88 +msgid "Zoom Out" msgstr "" -#: js/phrasemaker.js:373 -#: js/musickeyboard.js:559 -msgid "Add note" +#: js/widgets/pitchdrummatrix.js:356 +#: js/widgets/pitchdrummatrix.js:752 +msgid "Click in the grid to map notes to drums." msgstr "" -#: js/phrasemaker.js:764 -msgid "Click on the table to add notes." +#: js/widgets/pitchslider.js:103 +msgid "Move up" msgstr "" -#: js/phrasemaker.js:2414 -#: js/phrasemaker.js:2543 -msgid "tuplet value" +#: js/widgets/pitchslider.js:114 +msgid "Move down" msgstr "" -#: js/pitchdrummatrix.js:270 -#: js/pitchdrummatrix.js:639 -msgid "Click in the grid to map notes to drums." +#: js/widgets/pitchslider.js:136 +msgid "Click on the slider to create a note block." msgstr "" -#: js/pitchslider.js:103 -msgid "Move up" +#: js/widgets/pitchstaircase.js:624 +msgid "Play chord" msgstr "" -#: js/pitchslider.js:114 -msgid "Move down" +#: js/widgets/pitchstaircase.js:632 +msgid "Play scale" msgstr "" -#: js/pitchslider.js:136 -msgid "Click on the slider to create a note block." +#: js/widgets/pitchstaircase.js:696 +msgid "Click on a note to create a new step." msgstr "" -#: js/temperament.js:215 +#: js/widgets/temperament.js:321 msgid "back to 2:1 octave space" msgstr "" -#: js/temperament.js:323 +#: js/widgets/temperament.js:447 msgid "edit" msgstr "" -#: js/temperament.js:330 -#: js/temperament.js:332 -#: js/temperament.js:1336 -#: js/temperament.js:1338 +#: js/widgets/temperament.js:454 +#: js/widgets/temperament.js:456 +#: js/widgets/temperament.js:1493 +#: js/widgets/temperament.js:1495 msgid "close" msgstr "" -#: js/temperament.js:423 -#: js/temperament.js:736 -#: js/temperament.js:743 -#: js/temperament.js:845 -#: js/temperament.js:935 -#: js/temperament.js:942 -#: js/temperament.js:1015 -#: js/temperament.js:1284 -#: js/temperament.js:1354 -#: js/temperament.js:1430 +#: js/widgets/temperament.js:552 +#: js/widgets/temperament.js:877 +#: js/widgets/temperament.js:884 +#: js/widgets/temperament.js:986 +#: js/widgets/temperament.js:1080 +#: js/widgets/temperament.js:1087 +#: js/widgets/temperament.js:1160 +#: js/widgets/temperament.js:1433 +#: js/widgets/temperament.js:1511 +#: js/widgets/temperament.js:1596 msgid "done" msgstr "" -#: js/temperament.js:477 -#: js/temperament.js:482 -#: js/temperament.js:918 +#: js/widgets/temperament.js:610 +#: js/widgets/temperament.js:615 +#: js/widgets/temperament.js:1063 msgid "ratio" msgstr "" -#: js/temperament.js:483 +#: js/widgets/temperament.js:616 msgid "interval" msgstr "" -#: js/temperament.js:611 +#: js/widgets/temperament.js:744 msgid "non scalar" msgstr "" -#: js/temperament.js:650 +#: js/widgets/temperament.js:787 msgid "ratios" msgstr "" -#: js/temperament.js:650 +#: js/widgets/temperament.js:787 msgid "arbitrary" msgstr "" -#: js/temperament.js:719 +#: js/widgets/temperament.js:860 msgid "number of divisions" msgstr "" -#: js/temperament.js:741 -#: js/temperament.js:858 -#: js/temperament.js:940 -#: js/temperament.js:1033 +#: js/widgets/temperament.js:882 +#: js/widgets/temperament.js:999 +#: js/widgets/temperament.js:1085 +#: js/widgets/temperament.js:1178 msgid "preview" msgstr "" -#: js/temperament.js:788 +#: js/widgets/temperament.js:929 msgid "The Number of divisions is too large." msgstr "" -#: js/temperament.js:921 +#: js/widgets/temperament.js:1066 msgid "recursion" msgstr "" -#: js/temperament.js:1450 +#: js/widgets/temperament.js:1616 msgid "The octave ratio has changed. This changes temperament significantly." msgstr "" -#: js/temperament.js:2087 +#: js/widgets/temperament.js:2248 msgid "Table" msgstr "" -#: js/temperament.js:2185 +#: js/widgets/temperament.js:2356 msgid "Add pitches" msgstr "" -#: js/musickeyboard.js:570 -msgid "Metronome" +#: js/widgets/tempo.js:78 +#: js/widgets/tempo.js:97 +#: js/widgets/tempo.js:99 +#: js/widgets/aiwidget.js:134 +#: js/widgets/aiwidget.js:136 +#: js/widgets/rhythmruler.js:681 +#: js/widgets/rhythmruler.js:683 +#: js/widgets/rhythmruler.js:1864 +#: js/widgets/rhythmruler.js:1866 +#: js/widgets/sampler.js:180 +#: js/widgets/sampler.js:182 +msgid "Pause" msgstr "" -#: js/musickeyboard.js:1296 -#: plugins/rodi.rtp:193 -msgid "duration" +#: js/widgets/tempo.js:113 +msgid "Save tempo" msgstr "" -#: js/musickeyboard.js:2840 -msgid "New action blocks generated!" +#: js/widgets/tempo.js:144 +msgid "speed up" msgstr "" -#: js/musickeyboard.js:2841 -msgid "New action block generated" +#: js/widgets/tempo.js:150 +msgid "slow down" msgstr "" -#: js/musickeyboard.js:2984 -#: js/musickeyboard.js:2992 -msgid "MIDI device present." +#: js/widgets/tempo.js:194 +msgid "Adjust the tempo with the buttons." msgstr "" -#: js/musickeyboard.js:2995 -msgid "No MIDI device found." +#: js/widgets/tempo.js:261 +msgid "Please enter a number between 30 and 1000" msgstr "" -#: js/musickeyboard.js:3000 -msgid "Failed to get MIDI access in browser." +#: js/widgets/tempo.js:268 +#: js/widgets/tempo.js:271 +msgid "The beats per minute must be between 30 and 1000." msgstr "" -#: js/rhythmruler.js:202 -msgid "Save rhythms" +#: js/widgets/tempo.js:287 +msgid "The beats per minute must be below 1000." msgstr "" -#: js/rhythmruler.js:222 -msgid "Save drum machine" +#: js/widgets/tempo.js:303 +msgid "The beats per minute must be above 30" msgstr "" -#: js/rhythmruler.js:263 -#.TRANS: user can tap out a rhythm by clicking on a ruler. -msgid "Tap a rhythm" +#: js/widgets/timbre.js:766 +msgid "Synthesizer" msgstr "" -#: js/rhythmruler.js:342 -#: js/rhythmruler.js:344 -#: js/rhythmruler.js:1481 -#: js/rhythmruler.js:1483 -#: js/sampler.js:110 -#: js/sampler.js:112 -#: js/tempo.js:78 -#: js/tempo.js:97 -#: js/tempo.js:99 -msgid "Pause" +#: js/widgets/timbre.js:789 +msgid "Oscillator" msgstr "" -#: js/rhythmruler.js:478 -msgid "Click on the ruler to divide it." +#: js/widgets/timbre.js:840 +msgid "Envelope" msgstr "" -#: js/rhythmruler.js:603 -#: js/rhythmruler.js:605 -#: js/rhythmruler.js:804 -#: js/rhythmruler.js:806 -#: js/rhythmruler.js:1386 -#: js/rhythmruler.js:1388 -msgid "tap a rhythm" +#: js/widgets/timbre.js:886 +#: planet/js/GlobalTag.js:50 +#.TRANS: On the Planet, we use labels to tag projects. +msgid "Effects" msgstr "" -#: js/rhythmruler.js:1084 -msgid "Maximum value of 256 has been exceeded." +#: js/widgets/timbre.js:904 +msgid "Filter" msgstr "" -#: js/sampler.js:137 -msgid "Warning: Sample is bigger than 1MB." +#: js/widgets/timbre.js:946 +msgid "Add filter" msgstr "" -#: js/sampler.js:142 -msgid "Upload failed: Sample is not a .wav file." +#: js/widgets/timbre.js:987 +msgid "Click on buttons to open the timbre design tools." msgstr "" -#: js/sampler.js:164 -msgid "A new sample block was generated." +#: js/widgets/timbre.js:1273 +msgid "harmonicity" msgstr "" -#: js/sampler.js:255 -msgid "Upload sample" +#: js/widgets/timbre.js:1340 +#: js/widgets/timbre.js:1406 +msgid "modulation index" msgstr "" -#: js/sampler.js:306 -msgid "Save sample" +#: js/widgets/timbre.js:1484 +msgid "vibrato amount" msgstr "" -#: js/sampler.js:697 -#.TRANS: The reference tone is a sound used for comparison. -msgid "reference tone" +#: js/widgets/timbre.js:1919 +msgid "Filter already present." msgstr "" -#: js/tempo.js:113 -msgid "Save tempo" +#: js/widgets/timbre.js:2322 +msgid "delay (MS)" msgstr "" -#: js/tempo.js:144 -msgid "speed up" +#: js/widgets/timbre.js:2507 +msgid "distortion amount" msgstr "" -#: js/tempo.js:150 -msgid "slow down" +#: js/widgets/aiwidget.js:180 +#: js/widgets/sampler.js:227 +msgid "Warning: Sample is bigger than 1MB." msgstr "" -#: js/tempo.js:194 -msgid "Adjust the tempo with the buttons." +#: js/widgets/aiwidget.js:539 +msgid "New start block generated" msgstr "" -#: js/tempo.js:261 -msgid "Please enter a number between 30 and 1000" +#: js/widgets/aiwidget.js:541 +msgid "MIDI loading. This may take some time depending upon the number of notes in the track" msgstr "" -#: js/tempo.js:268 -#: js/tempo.js:271 -msgid "The beats per minute must be between 30 and 1000." +#: js/widgets/aiwidget.js:551 +#: js/widgets/sampler.js:254 +msgid "Upload failed: Sample is not a .wav file." msgstr "" -#: js/tempo.js:287 -msgid "The beats per minute must be below 1000." +#: js/widgets/aiwidget.js:679 +#: js/widgets/sampler.js:432 +msgid "Save sample" msgstr "" -#: js/tempo.js:303 -msgid "The beats per minute must be above 30" +#: js/widgets/aiwidget.js:701 +msgid "AI Music" msgstr "" -#: js/timbre.js:766 -msgid "Synthesizer" +#: js/widgets/arpeggio.js:239 +msgid "Click in the grid to add steps to the arpeggio." msgstr "" -#: js/timbre.js:789 -msgid "Oscillator" +#: js/widgets/help.js:95 +#: js/widgets/help.js:125 +#: js/widgets/help.js:146 +#: js/widgets/help.js:158 +#: js/widgets/help.js:376 +#: js/widgets/help.js:391 +msgid "Take a tour" msgstr "" -#: js/timbre.js:840 -msgid "Envelope" +#: js/widgets/musickeyboard.js:725 +#: js/widgets/phrasemaker.js:584 +msgid "Add note" msgstr "" -#: js/timbre.js:886 -#: js/GlobalTag.js:50 -#.TRANS: On the Planet, we use labels to tag projects. -msgid "Effects" +#: js/widgets/musickeyboard.js:744 +msgid "Metronome" +msgstr "" + +#: js/widgets/musickeyboard.js:1549 +#: plugins/rodi.rtp:193 +msgid "duration" +msgstr "" + +#: js/widgets/musickeyboard.js:3179 +msgid "New action blocks generated" +msgstr "" + +#: js/widgets/musickeyboard.js:3180 +msgid "New action block generated" msgstr "" -#: js/timbre.js:904 -msgid "Filter" +#: js/widgets/musickeyboard.js:3365 +#: js/widgets/musickeyboard.js:3373 +msgid "MIDI device present." msgstr "" -#: js/timbre.js:946 -msgid "Add filter" +#: js/widgets/musickeyboard.js:3376 +msgid "No MIDI device found." msgstr "" -#: js/timbre.js:987 -msgid "Click on buttons to open the timbre design tools." +#: js/widgets/musickeyboard.js:3386 +msgid "Failed to get MIDI access in browser." msgstr "" -#: js/timbre.js:1273 -msgid "harmonicity" +#: js/widgets/phrasemaker.js:574 +msgid "Export" msgstr "" -#: js/timbre.js:1340 -#: js/timbre.js:1406 -msgid "modulation index" +#: js/widgets/phrasemaker.js:581 +msgid "Sort" msgstr "" -#: js/timbre.js:1484 -msgid "vibrato amount" +#: js/widgets/phrasemaker.js:975 +msgid "Click on the table to add notes." msgstr "" -#: js/timbre.js:1919 -msgid "Filter already present." +#: js/widgets/phrasemaker.js:2677 +#: js/widgets/phrasemaker.js:2819 +msgid "tuplet value" msgstr "" -#: js/timbre.js:2322 -msgid "delay (MS)" +#: js/widgets/rhythmruler.js:486 +msgid "Save rhythms" msgstr "" -#: js/timbre.js:2507 -msgid "distortion amount" +#: js/widgets/rhythmruler.js:512 +msgid "Save drum machine" msgstr "" -#: js/meterwidget.js:170 -msgid "Reset" +#: js/widgets/rhythmruler.js:589 +#.TRANS: user can tap out a rhythm by clicking on a ruler. +msgid "Tap a rhythm" msgstr "" -#: js/meterwidget.js:196 -msgid "Click in the circle to select strong beats for the meter." +#: js/widgets/rhythmruler.js:817 +msgid "Click on the ruler to divide it." msgstr "" -#: js/arpeggio.js:239 -msgid "Click in the grid to add steps to the arpeggio." +#: js/widgets/rhythmruler.js:950 +#: js/widgets/rhythmruler.js:952 +#: js/widgets/rhythmruler.js:1152 +#: js/widgets/rhythmruler.js:1154 +#: js/widgets/rhythmruler.js:1765 +#: js/widgets/rhythmruler.js:1767 +msgid "tap a rhythm" msgstr "" -#: js/ProjectStorage.js:243 -msgid "anonymous" +#: js/widgets/rhythmruler.js:1459 +msgid "Maximum value of 256 has been exceeded." msgstr "" -#: js/GlobalCard.js:68 -msgid "Share" +#: js/widgets/sampler.js:237 +msgid "Recording started..." msgstr "" -#: js/GlobalCard.js:74 -msgid "Flags" +#: js/widgets/sampler.js:245 +msgid "Recording complete..." msgstr "" -#: js/LocalCard.js:36 -msgid "View published project" +#: js/widgets/sampler.js:283 +msgid "A new sample block was generated." msgstr "" -#: js/LocalCard.js:42 -msgid "Publish project" +#: js/widgets/sampler.js:378 +msgid "Upload sample" msgstr "" -#: js/LocalCard.js:51 -msgid "Edit project" +#: js/widgets/sampler.js:399 +msgid "Warning: Your sample cannot be loaded because it is >1MB." msgstr "" -#: js/LocalCard.js:52 -msgid "Delete project" +#: js/widgets/sampler.js:448 +msgid "Toggle Mic" msgstr "" -#: js/LocalCard.js:53 -msgid "Download project" +#: js/widgets/sampler.js:458 +msgid "Playback" msgstr "" -#: js/LocalCard.js:55 -msgid "Duplicate project" +#: js/widgets/sampler.js:979 +#.TRANS: The reference tone is a sound used for comparison. +msgid "reference tone" msgstr "" -#: js/GlobalTag.js:28 +#: planet/js/GlobalTag.js:28 #.TRANS: On the Planet, we use labels to tag projects. msgid "All Projects" msgstr "" -#: js/GlobalTag.js:30 -#: js/StringHelper.js:37 +#: planet/js/GlobalTag.js:30 +#: planet/js/StringHelper.js:37 #.TRANS: On the Planet, we use labels to tag projects. msgid "My Projects" msgstr "" -#: js/GlobalTag.js:32 +#: planet/js/GlobalTag.js:32 #.TRANS: On the Planet, we use labels to tag projects. msgid "Examples" msgstr "" -#: js/GlobalTag.js:34 +#: planet/js/GlobalTag.js:34 #.TRANS: On the Planet, we use labels to tag projects. msgid "Music" msgstr "" -#: js/GlobalTag.js:36 +#: planet/js/GlobalTag.js:36 #.TRANS: On the Planet, we use labels to tag projects. msgid "Art" msgstr "" -#: js/GlobalTag.js:38 +#: planet/js/GlobalTag.js:38 #.TRANS: On the Planet, we use labels to tag projects. msgid "Math" msgstr "" -#: js/GlobalTag.js:40 +#: planet/js/GlobalTag.js:40 #.TRANS: On the Planet, we use labels to tag projects. msgid "Interactive" msgstr "" -#: js/GlobalTag.js:42 +#: planet/js/GlobalTag.js:42 #.TRANS: On the Planet, we use labels to tag projects. msgid "Design" msgstr "" -#: js/GlobalTag.js:44 +#: planet/js/GlobalTag.js:44 #.TRANS: On the Planet, we use labels to tag projects. msgid "Game" msgstr "" -#: js/GlobalTag.js:46 +#: planet/js/GlobalTag.js:46 #.TRANS: On the Planet, we use labels to tag projects. msgid "Media" msgstr "" -#: js/GlobalTag.js:48 +#: planet/js/GlobalTag.js:48 #.TRANS: On the Planet, we use labels to tag projects. msgid "Sensors" msgstr "" -#: js/GlobalTag.js:52 +#: planet/js/GlobalTag.js:52 #.TRANS: On the Planet, we use labels to tag projects. msgid "Code Snippet" msgstr "" -#: js/helper.js:149 -#: js/StringHelper.js:49 -msgid "Show more tags" +#: planet/js/LocalCard.js:36 +msgid "View published project" msgstr "" -#: js/helper.js:150 -msgid "Show fewer tags" +#: planet/js/LocalCard.js:42 +msgid "Publish project" +msgstr "" + +#: planet/js/LocalCard.js:51 +msgid "Edit project" +msgstr "" + +#: planet/js/LocalCard.js:52 +msgid "Delete project" +msgstr "" + +#: planet/js/LocalCard.js:53 +msgid "Download project" +msgstr "" + +#: planet/js/LocalCard.js:55 +msgid "Duplicate project" +msgstr "" + +#: planet/js/ProjectStorage.js:243 +msgid "anonymous" +msgstr "" + +#: planet/js/SaveInterface.js:34 +msgid "Open in Music Blocks" +msgstr "" + +#: planet/js/SaveInterface.js:35 +msgid "Open in Turtle Blocks" +msgstr "" + +#: planet/js/GlobalCard.js:68 +msgid "Share" +msgstr "" + +#: planet/js/GlobalCard.js:74 +msgid "Flags" +msgstr "" + +#: planet/js/GlobalPlanet.js:35 +msgid "No results found." +msgstr "" + +#: planet/js/GlobalPlanet.js:51 +msgid "Remix of" +msgstr "" + +#: planet/js/GlobalPlanet.js:509 +msgid "Cannot connect to server" msgstr "" -#: js/ProjectViewer.js:30 +#: planet/js/ProjectViewer.js:30 msgid "Error: Report could not be submitted. Try again later." msgstr "" -#: js/ProjectViewer.js:31 +#: planet/js/ProjectViewer.js:31 msgid "Thank you for reporting this project. A moderator will review the project shortly, to verify violation of the Sugar Labs Code of Conduct." msgstr "" -#: js/ProjectViewer.js:32 -#: js/StringHelper.js:62 -#: js/StringHelper.js:64 -#: js/StringHelper.js:68 +#: planet/js/ProjectViewer.js:32 +#: planet/js/StringHelper.js:62 +#: planet/js/StringHelper.js:64 +#: planet/js/StringHelper.js:68 msgid "Report Project" msgstr "" -#: js/ProjectViewer.js:33 -#: js/StringHelper.js:63 +#: planet/js/ProjectViewer.js:33 +#: planet/js/StringHelper.js:63 msgid "Project Reported" msgstr "" -#: js/ProjectViewer.js:34 +#: planet/js/ProjectViewer.js:34 msgid "Report description required" msgstr "" -#: js/ProjectViewer.js:35 +#: planet/js/ProjectViewer.js:35 msgid "Report description too long" msgstr "" -#: js/StringHelper.js:30 +#: planet/js/Publisher.js:30 +msgid "Feature unavailable - cannot connect to server. Reload Music Blocks to try again." +msgstr "" + +#: planet/js/Publisher.js:220 +#: planet/js/Publisher.js:237 +msgid "This field is required" +msgstr "" + +#: planet/js/Publisher.js:227 +msgid "Title too long" +msgstr "" + +#: planet/js/Publisher.js:244 +msgid "Description too long" +msgstr "" + +#: planet/js/Publisher.js:341 +msgid "Server Error" +msgstr "" + +#: planet/js/Publisher.js:341 +msgid "Try Again" +msgstr "" + +#: planet/js/StringHelper.js:30 msgid "Planet" msgstr "" -#: js/StringHelper.js:31 +#: planet/js/StringHelper.js:31 msgid "Close Planet" msgstr "" -#: js/StringHelper.js:32 +#: planet/js/StringHelper.js:32 msgid "Open project from file" msgstr "" -#: js/StringHelper.js:34 +#: planet/js/StringHelper.js:34 msgid "Local" msgstr "" -#: js/StringHelper.js:35 +#: planet/js/StringHelper.js:35 msgid "Global" msgstr "" -#: js/StringHelper.js:36 +#: planet/js/StringHelper.js:36 msgid "Search for a project" msgstr "" -#: js/StringHelper.js:38 +#: planet/js/StringHelper.js:38 msgid "Publish Project" msgstr "" -#: js/StringHelper.js:40 +#: planet/js/StringHelper.js:40 msgid "Tags (max 5)" msgstr "" -#: js/StringHelper.js:41 -#: js/StringHelper.js:61 +#: planet/js/StringHelper.js:41 +#: planet/js/StringHelper.js:61 msgid "Description" msgstr "" -#: js/StringHelper.js:42 -#: js/StringHelper.js:67 +#: planet/js/StringHelper.js:42 +#: planet/js/StringHelper.js:67 msgid "Submit" msgstr "" -#: js/StringHelper.js:43 -#: js/StringHelper.js:47 +#: planet/js/StringHelper.js:43 +#: planet/js/StringHelper.js:47 msgid "Cancel" msgstr "" -#: js/StringHelper.js:44 +#: planet/js/StringHelper.js:44 msgid "Delete \\"\\"?" msgstr "" -#: js/StringHelper.js:45 +#: planet/js/StringHelper.js:45 msgid "Permanently delete project \\"\\"?" msgstr "" -#: js/StringHelper.js:48 +#: planet/js/StringHelper.js:48 msgid "Explore Projects" msgstr "" -#: js/StringHelper.js:50 +#: planet/js/StringHelper.js:49 +#: planet/js/helper.js:149 +msgid "Show more tags" +msgstr "" + +#: planet/js/StringHelper.js:50 msgid "Most recent" msgstr "" -#: js/StringHelper.js:51 +#: planet/js/StringHelper.js:51 msgid "Most liked" msgstr "" -#: js/StringHelper.js:52 +#: planet/js/StringHelper.js:52 msgid "Most downloaded" msgstr "" -#: js/StringHelper.js:53 +#: planet/js/StringHelper.js:53 msgid "A-Z" msgstr "" -#: js/StringHelper.js:54 +#: planet/js/StringHelper.js:54 msgid "Sort by" msgstr "" -#: js/StringHelper.js:55 +#: planet/js/StringHelper.js:55 msgid "Load More Projects" msgstr "" -#: js/StringHelper.js:56 +#: planet/js/StringHelper.js:56 msgid "Last Updated" msgstr "" -#: js/StringHelper.js:57 +#: planet/js/StringHelper.js:57 msgid "Creation Date" msgstr "" -#: js/StringHelper.js:58 +#: planet/js/StringHelper.js:58 msgid "Number of Downloads:" msgstr "" -#: js/StringHelper.js:59 +#: planet/js/StringHelper.js:59 msgid "Number of Likes:" msgstr "" -#: js/StringHelper.js:60 +#: planet/js/StringHelper.js:60 msgid "Tags:" msgstr "" -#: js/StringHelper.js:65 +#: planet/js/StringHelper.js:65 msgid "Report projects which violate the Sugar Labs Code of Conduct." msgstr "" -#: js/StringHelper.js:66 +#: planet/js/StringHelper.js:66 msgid "Reason for reporting project" msgstr "" -#: js/StringHelper.js:70 +#: planet/js/StringHelper.js:70 msgid "Download as File" msgstr "" -#: js/GlobalPlanet.js:35 -msgid "No results found." -msgstr "" - -#: js/GlobalPlanet.js:51 -msgid "Remix of" -msgstr "" - -#: js/GlobalPlanet.js:509 -msgid "Cannot connect to server" -msgstr "" - -#: js/Publisher.js:30 -msgid "Feature unavailable - cannot connect to server. Reload Music Blocks to try again." -msgstr "" - -#: js/Publisher.js:218 -#: js/Publisher.js:235 -msgid "This field is required" -msgstr "" - -#: js/Publisher.js:225 -msgid "Title too long" +#: planet/js/helper.js:150 +msgid "Show fewer tags" msgstr "" -#: js/Publisher.js:242 -msgid "Description too long" +#: plugins/accelerometer.rtp:48 +msgid "motion x" msgstr "" -#: js/Publisher.js:339 -msgid "Server Error" +#: plugins/accelerometer.rtp:56 +msgid "motion y" msgstr "" -#: js/Publisher.js:339 -msgid "Try Again" +#: plugins/accelerometer.rtp:64 +msgid "motion z" msgstr "" -#: js/SaveInterface.js:34 -msgid "Open in Music Blocks" +#: plugins/facebook.rtp:27 +msgid "publish" msgstr "" -#: js/SaveInterface.js:35 -msgid "Open in Turtle Blocks" +#: plugins/maths.rtp:62 +msgid "power" msgstr "" -#: plugins/weather.rtp:68 -#: plugins/weather.rtp:97 -msgid "Days ahead must be in the range of -1 to 5." +#: plugins/maths.rtp:62 +msgid "base" msgstr "" -#: plugins/weather.rtp:122 -msgid "forecast" +#: plugins/maths.rtp:62 +msgid "exp" msgstr "" -#: plugins/weather.rtp:123 -#: plugins/weather.rtp:137 -#: plugins/weather.rtp:150 -msgid "city" +#: plugins/maths.rtp:99 +msgid "floor" msgstr "" -#: plugins/weather.rtp:124 -#: plugins/weather.rtp:138 -#: plugins/weather.rtp:151 -msgid "day" +#: plugins/maths.rtp:104 +msgid "ceiling" msgstr "" -#: plugins/weather.rtp:136 -msgid "high" +#: plugins/maths.rtp:109 +msgid "to degrees" msgstr "" -#: plugins/weather.rtp:149 -msgid "low" +#: plugins/maths.rtp:114 +msgid "to radians" msgstr "" #: plugins/nutrition.rtp:104 @@ -9458,45 +9867,6 @@ msgstr "" msgid "water" msgstr "" -#: plugins/maths.rtp:62 -#: plugins/examples.rtp:93 -msgid "power" -msgstr "" - -#: plugins/maths.rtp:62 -#: plugins/examples.rtp:93 -msgid "base" -msgstr "" - -#: plugins/maths.rtp:62 -#: plugins/examples.rtp:93 -msgid "exp" -msgstr "" - -#: plugins/maths.rtp:99 -#: plugins/examples.rtp:130 -msgid "floor" -msgstr "" - -#: plugins/maths.rtp:104 -#: plugins/examples.rtp:135 -msgid "ceiling" -msgstr "" - -#: plugins/maths.rtp:109 -#: plugins/examples.rtp:140 -msgid "to degrees" -msgstr "" - -#: plugins/maths.rtp:114 -#: plugins/examples.rtp:145 -msgid "to radians" -msgstr "" - -#: plugins/facebook.rtp:27 -msgid "publish" -msgstr "" - #: plugins/rodi.rtp:172 msgid "blink" msgstr "" @@ -9525,18 +9895,66 @@ msgstr "" msgid "move" msgstr "" -#: plugins/accelerometer.rtp:48 -msgid "motion x" +#: plugins/weather.rtp:68 +#: plugins/weather.rtp:97 +msgid "Days ahead must be in the range of -1 to 5." msgstr "" -#: plugins/accelerometer.rtp:56 -msgid "motion y" +#: plugins/weather.rtp:122 +msgid "forecast" msgstr "" -#: plugins/accelerometer.rtp:64 -msgid "motion z" +#: plugins/weather.rtp:123 +#: plugins/weather.rtp:137 +#: plugins/weather.rtp:150 +msgid "city" +msgstr "" + +#: plugins/weather.rtp:124 +#: plugins/weather.rtp:138 +#: plugins/weather.rtp:151 +msgid "day" +msgstr "" + +#: plugins/weather.rtp:136 +msgid "high" +msgstr "" + +#: plugins/weather.rtp:149 +msgid "low" msgstr "" +#: js/toolbar.js:70 + +#: js/toolbar.js:130 + +#: js/toolbar.js:194 + +#: js/toolbar.js:249 + +#~msgid "Toggle JavaScript Editor" +#~msgstr "" + +#: js/EnsembleBlocks.js:643 + +#~msgid "The Turrle pitch block returns the current pitch number being played by the specified turtle." +#~msgstr "" + +#: js/PitchActions.js:88 + +#~msgid "The Scalar Step Block must be used inside of a Note Block." +#~msgstr "" + +#: js/PitchActions.js:107 + +#~msgid "The Scalar Step Block must be preceded by a Pitch Block." +#~msgstr "" + +#: js/musickeyboard.js:2840 + +#~msgid "New action blocks generated!" +#~msgstr "" + #: js/toolbar.js:110 #: js/toolbar.js:204 @@ -9877,11 +10295,6 @@ msgstr "" #~msgid "The Time block returns the number of seconds that the program has been running." #~msgstr "" -#: js/help.js:95 - -#~msgid "Take a tour" -#~msgstr "" - #: js/GlobalCard.js:48 #~msgid "More Details" @@ -12780,11 +13193,6 @@ msgstr "" #~msgid "The save-stack button saves a stack onto a custom palette. It appears after a \"long press\" on a stack." #~msgstr "" -#: js/musicutils.js:254 - -#~msgid "Custom" -#~msgstr "" - #: js/basicblocks.js:4785 #~msgid "Rhythm" diff --git a/po/tzo.po b/po/tzo.po index a268ad0b09..c5a5e0b9c6 100644 --- a/po/tzo.po +++ b/po/tzo.po @@ -2128,276 +2128,131 @@ #: js/planetInterface.js:104 #: js/planetInterface.js:104 #: js/planetInterface.js:104 -msgid "project undefined" -msgstr "" - -#: js/logo.js:61 -msgid "Not a valid pitch name" -msgstr "" - -#: js/logo.js:507 -#: js/ProgramBlocks.js:258 -#: js/ProgramBlocks.js:427 -msgid "You must select a file." -msgstr "" - -#: js/logo.js:1184 -#: js/turtles.js:118 -#: js/turtle-painter.js:1192 -#: js/turtle-painter.js:1193 -#: js/block.js:1463 -#: js/lilypond.js:757 -#: js/lilypond.js:921 -#: js/lilypond.js:959 -#: js/ActionBlocks.js:1223 -#: js/ProgramBlocks.js:1267 -msgid "start" -msgstr "" - -#: js/logo.js:1696 -msgid "Playback is ready." -msgstr "" - -#: js/blocks.js:1011 -#: js/blocks.js:3427 -#: js/blocks.js:3428 -#: js/blocks.js:3653 -#: js/blocks.js:4012 -#: js/blocks.js:4205 -#: js/blocks.js:5343 -#: js/blocks.js:6474 -#: js/palette.js:527 -#: js/palette.js:536 -#: js/palette.js:545 -#: js/palette.js:554 -#: js/palette.js:1131 -#: js/palette.js:1142 -#: js/palette.js:1153 -#: js/palette.js:1164 -#: js/palette.js:1183 -#: js/rubrics.js:529 -#: js/macros.js:170 -#: js/macros.js:266 -#: js/macros.js:267 -#: js/macros.js:276 -#: js/macros.js:828 -#: js/block.js:1449 -#: js/block.js:4164 -#: js/block.js:4182 -#: js/block.js:4193 -#: js/turtledefs.js:128 -#: js/turtledefs.js:230 -#: js/ActionBlocks.js:254 -#: js/ActionBlocks.js:307 -#: js/ActionBlocks.js:617 -#: js/ActionBlocks.js:716 -#: js/ActionBlocks.js:961 -#: js/ActionBlocks.js:1049 -#: js/ActionBlocks.js:1322 -#: js/ActionBlocks.js:1325 -#: js/ActionBlocks.js:1337 -#: js/ActionBlocks.js:1404 -#: js/MeterBlocks.js:715 -#: js/MeterBlocks.js:768 -#: js/MeterBlocks.js:831 -#: js/MeterBlocks.js:892 -#: js/phrasemaker.js:4412 -#: js/musickeyboard.js:2647 -#: js/rhythmruler.js:1928 -#: js/rhythmruler.js:1935 -#: js/rhythmruler.js:2119 -#: js/rhythmruler.js:2126 -msgid "action" -msgstr "" - -#: js/blocks.js:1205 -#: js/blocks.js:3380 -#: js/blocks.js:3770 -#: js/blocks.js:3801 -#: js/blocks.js:3850 -#: js/blocks.js:3885 -#: js/blocks.js:6497 -#: js/palette.js:509 -#: js/palette.js:638 -#: js/palette.js:1107 -#: js/BoxesBlocks.js:282 -#: js/BoxesBlocks.js:285 -#: js/BoxesBlocks.js:405 -#: js/BoxesBlocks.js:594 -msgid "box" -msgstr "" - -#: js/blocks.js:1680 -msgid "Consider breaking this stack into parts." +#: js/SaveInterface.js:59 +#: js/SaveInterface.js:61 +#: js/SaveInterface.js:93 +msgid "Music Blocks Project" msgstr "" -#: js/blocks.js:2408 -#: js/palette.js:653 -#: js/MediaBlocks.js:602 -msgid "open file" +#: js/SaveInterface.js:63 +msgid "This project was created in Music Blocks" msgstr "" -#: js/blocks.js:2415 -#: js/blocks.js:2423 -#: js/activity.js:1875 -msgid "audio file" +#: js/SaveInterface.js:67 +msgid "Music Blocks is a Free/Libre Software application." msgstr "" -#: js/blocks.js:2536 -#: js/blocks.js:3147 -#: js/block.js:3543 -msgid "on2" +#: js/SaveInterface.js:69 +msgid "The source code can be accessed at" msgstr "" -#: js/blocks.js:2538 -#: js/blocks.js:3149 -#: js/block.js:3545 -msgid "off" +#: js/SaveInterface.js:72 +msgid "For more information, please consult the" msgstr "" -#: js/blocks.js:2543 -#: js/blocks.js:3154 -#: js/palette.js:618 -#: js/block.js:3466 -#: js/BooleanBlocks.js:77 -#: js/BooleanBlocks.js:167 -#: js/BooleanBlocks.js:251 -#: js/BooleanBlocks.js:335 -#: js/BooleanBlocks.js:433 -#: js/BooleanBlocks.js:539 -#: js/BooleanBlocks.js:640 -#: js/BooleanBlocks.js:741 -#: js/BooleanBlocks.js:847 -#: js/BooleanBlocks.js:948 -#: js/BooleanBlocks.js:1033 -#: js/SensorsBlocks.js:910 -msgid "true" +#: js/SaveInterface.js:76 +#: js/turtledefs.js:795 +msgid "Music Blocks Guide" msgstr "" -#: js/blocks.js:2545 -#: js/blocks.js:3156 -#: js/block.js:3466 -#: js/BooleanBlocks.js:79 -#: js/BooleanBlocks.js:169 -#: js/BooleanBlocks.js:253 -#: js/BooleanBlocks.js:337 -#: js/BooleanBlocks.js:435 -#: js/BooleanBlocks.js:541 -#: js/BooleanBlocks.js:642 -#: js/BooleanBlocks.js:743 -#: js/BooleanBlocks.js:849 -#: js/BooleanBlocks.js:950 -#: js/SensorsBlocks.js:912 -msgid "false" +#: js/SaveInterface.js:83 +msgid "Alternatively, open the file in Music Blocks using the Load project button." msgstr "" -#: js/blocks.js:3183 -#: js/palette.js:574 -#: js/MediaBlocks.js:892 -#: js/MediaBlocks.js:963 -msgid "text" +#: js/SaveInterface.js:85 +msgid "Project Code" msgstr "" -#: js/blocks.js:3379 -#: js/palette.js:641 -#: js/palette.js:642 -#: js/BoxesBlocks.js:514 -msgid "store in box" +#: js/SaveInterface.js:87 +msgid "This code stores data about the blocks in a project." msgstr "" -#: js/blocks.js:3384 -#: js/blocks.js:3824 -#: js/blocks.js:3859 -#: js/blocks.js:3894 -#: js/blocks.js:5773 -#: js/blocks.js:5794 -#: js/BoxesBlocks.js:772 -msgid "box1" +#: js/SaveInterface.js:89 +msgid "Show" msgstr "" -#: js/blocks.js:3386 -#: js/blocks.js:3826 -#: js/blocks.js:3861 -#: js/blocks.js:3896 -#: js/blocks.js:5775 -#: js/blocks.js:5796 -#: js/BoxesBlocks.js:663 -msgid "box2" +#: js/SaveInterface.js:91 +msgid "Hide" msgstr "" -#: js/blocks.js:4058 -#: js/palette.js:639 -#: js/palette.js:644 -#: js/palette.js:1043 -#: js/BoxesBlocks.js:591 -msgid "store in" +#: js/SaveInterface.js:131 +#: js/SaveInterface.js:204 +#: js/SaveInterface.js:262 +#: js/SaveInterface.js:389 +#: js/SaveInterface.js:417 +#: js/activity.js:4884 +#: planet/js/ProjectStorage.js:27 +#: planet/js/GlobalPlanet.js:467 +#: planet/js/GlobalPlanet.js:469 +#: planet/js/GlobalPlanet.js:495 +#.TRANS: default project title when saving as Lilypond +msgid "My Project" msgstr "" -#: js/blocks.js:4058 -#: js/EnsembleBlocks.js:391 -#: js/EnsembleBlocks.js:402 -#: js/MediaBlocks.js:746 -#: js/ProgramBlocks.js:390 -#: js/ProgramBlocks.js:495 -#: js/ProgramBlocks.js:658 -#: js/BoxesBlocks.js:595 -#: js/PitchBlocks.js:656 -#: js/PitchBlocks.js:932 -#: js/PitchBlocks.js:1827 -#: js/ToneBlocks.js:1025 -#: js/DictBlocks.js:215 -#: js/DictBlocks.js:289 -msgid "name" +#: js/SaveInterface.js:197 +#: planet/js/SaveInterface.js:58 +msgid "No description provided" msgstr "" -#: js/blocks.js:4058 -#: js/RhythmBlocks.js:1130 -#: js/BoxesBlocks.js:75 -#: js/BoxesBlocks.js:595 -#: js/HeapBlocks.js:544 -#: js/DictBlocks.js:289 -#: js/DictBlocks.js:430 -msgid "value" +#: js/SaveInterface.js:332 +msgid "Your recording is in progress." msgstr "" -#: js/blocks.js:4907 -msgid "There is no block selected." +#: js/SaveInterface.js:401 +#.TRANS: File name prompt for save as Lilypond +msgid "File name" msgstr "" -#: js/blocks.js:5002 -#: js/MediaBlocks.js:888 -msgid "show" +#: js/SaveInterface.js:403 +#: planet/js/StringHelper.js:39 +#.TRANS: Project title prompt for save as Lilypond +msgid "Project title" msgstr "" -#: js/blocks.js:5005 -#: js/MediaBlocks.js:803 -#.TRANS: Avatar is the image used to determine the appearance of the mouse. -msgid "avatar" +#: js/SaveInterface.js:405 +#.TRANS: Project title prompt for save as Lilypond +msgid "Project author" msgstr "" -#: js/blocks.js:5008 -#: js/ToneBlocks.js:1010 -#: js/sampler.js:693 -#.TRANS: The sound sample that the user uploads. -msgid "sample" +#: js/SaveInterface.js:407 +#.TRANS: MIDI prompt for save as Lilypond +msgid "Include MIDI output?" msgstr "" -#: js/turtles.js:874 -msgid "Grid" +#: js/SaveInterface.js:409 +#.TRANS: Guitar prompt for save as Lilypond +msgid "Include guitar tablature output?" msgstr "" -#: js/turtles.js:891 -#: js/turtledefs.js:626 -msgid "Clean" +#: js/SaveInterface.js:411 +#.TRANS: Lilypond is a scripting language for generating sheet music +msgid "Save as Lilypond" msgstr "" -#: js/turtles.js:912 -#: js/turtledefs.js:632 -msgid "Collapse" +#: js/SaveInterface.js:426 +#: js/blocks/EnsembleBlocks.js:75 +#: js/blocks/EnsembleBlocks.js:154 +#: js/blocks/EnsembleBlocks.js:216 +#: js/blocks/EnsembleBlocks.js:302 +#: js/blocks/EnsembleBlocks.js:348 +#: js/blocks/EnsembleBlocks.js:389 +#: js/blocks/EnsembleBlocks.js:441 +#: js/blocks/EnsembleBlocks.js:490 +#: js/blocks/EnsembleBlocks.js:536 +#: js/blocks/EnsembleBlocks.js:583 +#: js/blocks/EnsembleBlocks.js:637 +#: js/blocks/EnsembleBlocks.js:753 +#: js/blocks/EnsembleBlocks.js:840 +#: js/blocks/EnsembleBlocks.js:899 +#: js/blocks/EnsembleBlocks.js:942 +#: js/blocks/EnsembleBlocks.js:1212 +#: js/blocks/EnsembleBlocks.js:1280 +#.TRANS: default project author when saving as Lilypond +msgid "Mr. Mouse" msgstr "" -#: js/turtles.js:940 -msgid "Expand" +#: js/SaveInterface.js:573 +msgid "The Lilypond code is copied to clipboard. You can paste it here: " msgstr "" #: js/languagebox.js:198 @@ -2408,6933 +2263,7487 @@ msgstr "" msgid "Music Blocks is already set to this language." msgstr "" -#: js/piemenus.js:200 -#: js/musicutils.js:808 -#: js/musicutils.js:824 -#: js/phrasemaker.js:1672 -#: js/musickeyboard.js:2041 -#: js/sampler.js:544 -#.TRANS: double sharp is a music term related to pitch -msgid "double sharp" +#: js/planetInterface.js:131 +msgid "project undefined" msgstr "" -#: js/piemenus.js:201 -#: js/PitchBlocks.js:1510 -#: js/PitchActions.js:580 -#: js/musicutils.js:806 -#: js/musicutils.js:825 -#: js/phrasemaker.js:1673 -#: js/musickeyboard.js:2042 -#: js/sampler.js:545 -#.TRANS: sharp is a half-step up in pitch -#.TRANS: sharp is a music term related to pitch -msgid "sharp" +#: js/rubrics.js:523 +#: js/turtledefs.js:119 +#: js/turtledefs.js:221 +#: js/blocks/RhythmBlockPaletteBlocks.js:52 +#: js/blocks/RhythmBlockPaletteBlocks.js:234 +#: js/blocks/ProgramBlocks.js:745 +#: js/widgets/rhythmruler.js:2057 +#: js/widgets/rhythmruler.js:2064 +#: js/widgets/rhythmruler.js:2133 +#: js/widgets/rhythmruler.js:2140 +#: js/widgets/rhythmruler.js:2219 +#.TRANS: an arrangement of notes based on duration +msgid "rhythm" msgstr "" -#: js/piemenus.js:202 -#: js/musicutils.js:804 -#: js/musicutils.js:826 -#: js/phrasemaker.js:1674 -#: js/musickeyboard.js:2043 -#: js/sampler.js:546 -#.TRANS: natural is a music term related to pitch -msgid "natural" +#: js/rubrics.js:524 +#: js/turtledefs.js:121 +#: js/turtledefs.js:223 +#: js/block-verbose.js:2622 +#: js/block.js:2550 +#: js/blocks/IntervalsBlocks.js:63 +#: js/blocks/SensorsBlocks.js:178 +#: js/blocks/PitchBlocks.js:1839 +#: js/blocks/PitchBlocks.js:1853 +#: js/widgets/musickeyboard.js:1935 +#: js/widgets/phrasemaker.js:1036 +#.TRANS: pitch number +#.TRANS: pitch number +#.TRANS: we specify pitch in terms of a name and an octave. The name can be CDEFGAB or Do Re Mi Fa Sol La Ti. Octave is a number between 1 and 8. +msgid "pitch" msgstr "" -#: js/piemenus.js:203 -#: js/PitchBlocks.js:1469 -#: js/PitchActions.js:583 -#: js/musicutils.js:802 -#: js/musicutils.js:827 -#: js/phrasemaker.js:1675 -#: js/musickeyboard.js:2044 -#: js/sampler.js:547 -#.TRANS: flat is a half-step down in pitch -#.TRANS: flat is a music term related to pitch -msgid "flat" +#: js/rubrics.js:525 +#: js/turtledefs.js:123 +#: js/turtledefs.js:225 +msgid "tone" msgstr "" -#: js/piemenus.js:204 -#: js/musicutils.js:800 -#: js/musicutils.js:828 -#: js/phrasemaker.js:1676 -#: js/musickeyboard.js:2045 -#: js/sampler.js:548 -#.TRANS: double flat is a music term related to pitch -msgid "double flat" +#: js/rubrics.js:526 +#: js/lilypond.js:605 +#: js/lilypond.js:904 +#: js/lilypond.js:910 +#: js/lilypond.js:948 +msgid "mouse" msgstr "" -#: js/piemenus.js:2861 -#: js/PitchBlocks.js:1357 -#: js/musicutils.js:627 -#.TRANS: unison means the note is the same as the current note -#.TRANS: unison is a music term related to intervals -msgid "unison" +#: js/rubrics.js:527 +#: js/turtledefs.js:132 +#: js/turtledefs.js:234 +#: js/widgets/phrasemaker.js:1040 +msgid "pen" msgstr "" -#: js/piemenus.js:3015 -#: js/piemenus.js:3088 -#: js/musicutils.js:635 -#: js/musicutils.js:810 -#: js/musicutils.js:912 -#.TRANS: major is a music term related to intervals and mode -msgid "major" +#: js/rubrics.js:528 +#: js/turtledefs.js:133 +#: js/turtledefs.js:235 +#: js/blocks/NumberBlocks.js:981 +#: js/blocks/PitchBlocks.js:1717 +#: js/blocks/PitchBlocks.js:1758 +msgid "number" msgstr "" -#: js/piemenus.js:3015 -#: js/piemenus.js:3088 -#: js/musicutils.js:653 -#.TRANS: modal scale for music -msgid "ionian" +#: js/rubrics.js:529 +#: js/turtledefs.js:127 +#: js/turtledefs.js:229 +msgid "flow" msgstr "" -#: js/piemenus.js:3017 -#: js/piemenus.js:3092 -#: js/musicutils.js:633 -#: js/musicutils.js:811 -#: js/musicutils.js:909 -#.TRANS: minor is a music term related to intervals and mode -msgid "minor" +#: js/rubrics.js:530 +#: js/turtledefs.js:128 +#: js/turtledefs.js:230 +#: js/block-verbose.js:1609 +#: js/block-verbose.js:4559 +#: js/block-verbose.js:4577 +#: js/block-verbose.js:4588 +#: js/block.js:1573 +#: js/block.js:4483 +#: js/block.js:4501 +#: js/block.js:4512 +#: js/blocks.js:1018 +#: js/blocks.js:3491 +#: js/blocks.js:3492 +#: js/blocks.js:3717 +#: js/blocks.js:4076 +#: js/blocks.js:4269 +#: js/blocks.js:5432 +#: js/blocks.js:6563 +#: js/macros.js:170 +#: js/macros.js:266 +#: js/macros.js:267 +#: js/macros.js:276 +#: js/macros.js:828 +#: js/palette.js:527 +#: js/palette.js:536 +#: js/palette.js:545 +#: js/palette.js:554 +#: js/palette.js:1129 +#: js/palette.js:1140 +#: js/palette.js:1151 +#: js/palette.js:1162 +#: js/palette.js:1181 +#: js/blocks/ActionBlocks.js:254 +#: js/blocks/ActionBlocks.js:307 +#: js/blocks/ActionBlocks.js:617 +#: js/blocks/ActionBlocks.js:716 +#: js/blocks/ActionBlocks.js:961 +#: js/blocks/ActionBlocks.js:1049 +#: js/blocks/ActionBlocks.js:1322 +#: js/blocks/ActionBlocks.js:1325 +#: js/blocks/ActionBlocks.js:1337 +#: js/blocks/ActionBlocks.js:1404 +#: js/blocks/MeterBlocks.js:715 +#: js/blocks/MeterBlocks.js:768 +#: js/blocks/MeterBlocks.js:831 +#: js/blocks/MeterBlocks.js:892 +#: js/widgets/musickeyboard.js:2986 +#: js/widgets/phrasemaker.js:4913 +#: js/widgets/rhythmruler.js:2319 +#: js/widgets/rhythmruler.js:2326 +#: js/widgets/rhythmruler.js:2511 +#: js/widgets/rhythmruler.js:2518 +msgid "action" msgstr "" -#: js/piemenus.js:3017 -#: js/piemenus.js:3092 -#: js/musicutils.js:663 -#.TRANS: modal scale for music -msgid "aeolian" +#: js/rubrics.js:531 +#: js/turtledefs.js:136 +#: js/turtledefs.js:238 +msgid "sensors" msgstr "" -#: js/piemenus.js:3407 -msgid "Duplicate" +#: js/rubrics.js:532 +#: js/turtledefs.js:135 +#: js/turtledefs.js:237 +#: js/blocks/MediaBlocks.js:930 +msgid "media" msgstr "" -#: js/piemenus.js:3408 -#: js/turtledefs.js:534 -msgid "Extract" +#: js/rubrics.js:533 +msgid "mice" msgstr "" -#: js/piemenus.js:3409 -msgid "Move to trash" +#: js/toolbar.js:48 +#: js/toolbar.js:109 +msgid "About Music Blocks" msgstr "" -#: js/piemenus.js:3410 -#: js/timbre.js:968 -#: js/StringHelper.js:69 -msgid "Close" +#: js/toolbar.js:49 +#: js/toolbar.js:110 +#: js/toolbar.js:175 +#: js/toolbar.js:231 +#: js/turtledefs.js:445 +#: js/turtledefs.js:482 +#: js/activity.js:2660 +#: js/activity.js:2671 +#: js/activity.js:2902 +#: js/widgets/modewidget.js:77 +#: js/widgets/meterwidget.js:185 +#: js/widgets/pitchdrummatrix.js:147 +#: js/widgets/pitchdrummatrix.js:687 +#: js/widgets/pitchdrummatrix.js:689 +#: js/widgets/pitchdrummatrix.js:741 +#: js/widgets/pitchdrummatrix.js:743 +#: js/widgets/pitchdrummatrix.js:758 +#: js/widgets/pitchdrummatrix.js:760 +#: js/widgets/pitchdrummatrix.js:789 +#: js/widgets/pitchdrummatrix.js:791 +#: js/widgets/pitchstaircase.js:121 +#: js/widgets/temperament.js:610 +#: js/widgets/temperament.js:613 +#: js/widgets/temperament.js:673 +#: js/widgets/temperament.js:675 +#: js/widgets/temperament.js:2017 +#: js/widgets/temperament.js:2019 +#: js/widgets/tempo.js:84 +#: js/widgets/tempo.js:86 +#: js/widgets/timbre.js:432 +#: js/widgets/timbre.js:434 +#: js/widgets/timbre.js:465 +#: js/widgets/timbre.js:467 +#: js/widgets/timbre.js:746 +#: js/widgets/aiwidget.js:647 +#: js/widgets/aiwidget.js:654 +#: js/widgets/aiwidget.js:656 +#: js/widgets/arpeggio.js:90 +#: js/widgets/arpeggio.js:547 +#: js/widgets/arpeggio.js:549 +#: js/widgets/arpeggio.js:644 +#: js/widgets/arpeggio.js:646 +#: js/widgets/musickeyboard.js:676 +#: js/widgets/musickeyboard.js:872 +#: js/widgets/musickeyboard.js:874 +#: js/widgets/musickeyboard.js:953 +#: js/widgets/musickeyboard.js:955 +#: js/widgets/phrasemaker.js:513 +#: js/widgets/phrasemaker.js:523 +#: js/widgets/phrasemaker.js:525 +#: js/widgets/phrasemaker.js:4304 +#: js/widgets/phrasemaker.js:4528 +#: js/widgets/phrasemaker.js:4533 +#: js/widgets/phrasemaker.js:4535 +#: js/widgets/phrasemaker.js:4650 +#: js/widgets/rhythmruler.js:637 +#: js/widgets/rhythmruler.js:639 +#: js/widgets/rhythmruler.js:653 +#: js/widgets/rhythmruler.js:655 +#: js/widgets/sampler.js:162 +#: js/widgets/sampler.js:164 +#: js/widgets/sampler.js:363 +msgid "Play" msgstr "" -#: js/piemenus.js:3416 -msgid "Save stack" +#: js/toolbar.js:50 +#: js/toolbar.js:111 +#: js/toolbar.js:176 +#: js/toolbar.js:232 +#: js/turtledefs.js:451 +#: js/turtledefs.js:488 +#: js/activity.js:2679 +#: js/widgets/modewidget.js:99 +#: js/widgets/modewidget.js:101 +#: js/widgets/meterwidget.js:206 +#: js/widgets/meterwidget.js:208 +#: js/widgets/pitchdrummatrix.js:674 +#: js/widgets/pitchdrummatrix.js:676 +#: js/widgets/temperament.js:2002 +#: js/widgets/temperament.js:2004 +#: js/widgets/arpeggio.js:534 +#: js/widgets/arpeggio.js:536 +#: js/widgets/phrasemaker.js:534 +#: js/widgets/phrasemaker.js:536 +msgid "Stop" msgstr "" -#: js/piemenus.js:3420 -#: js/toolbar.js:60 -#: js/toolbar.js:120 -#: js/toolbar.js:185 -#: js/toolbar.js:240 -#: js/turtledefs.js:752 -msgid "Help" +#: js/toolbar.js:51 +#: js/toolbar.js:112 +#: js/toolbar.js:177 +#: js/toolbar.js:233 +#: js/turtledefs.js:498 +msgid "Record" msgstr "" -#: js/piemenus.js:3762 -msgid "You have chosen key " +#: js/toolbar.js:52 +#: js/toolbar.js:53 +msgid "Full screen" msgstr "" -#: js/piemenus.js:3766 -msgid " for your pitch preview." +#: js/toolbar.js:54 +#: js/toolbar.js:115 +#: js/toolbar.js:180 +#: js/toolbar.js:236 +#: js/turtledefs.js:504 +msgid "Toggle Fullscreen" +msgstr "" + +#: js/toolbar.js:55 +#: js/toolbar.js:116 +#: js/toolbar.js:181 +#: js/toolbar.js:237 +#: js/turtledefs.js:510 +#: planet/js/StringHelper.js:33 +msgid "New project" +msgstr "" + +#: js/toolbar.js:56 +#: js/toolbar.js:117 +#: js/toolbar.js:182 +#: js/toolbar.js:238 +#: js/turtledefs.js:516 +msgid "Load project from file" +msgstr "" + +#: js/toolbar.js:57 +#: js/toolbar.js:118 +#: js/toolbar.js:119 +#: js/toolbar.js:183 +#: js/toolbar.js:239 +#: js/turtledefs.js:541 +#: js/turtledefs.js:550 +#: js/turtledefs.js:571 +msgid "Save project" +msgstr "" + +#: js/toolbar.js:58 +#: js/toolbar.js:77 +#: js/toolbar.js:79 +#: js/toolbar.js:138 +#: js/toolbar.js:147 +#: js/toolbar.js:149 +#: js/toolbar.js:184 +#: js/toolbar.js:202 +#: js/toolbar.js:204 +#: js/toolbar.js:240 +#: js/toolbar.js:258 +#: js/toolbar.js:260 +msgid "Save project as HTML" +msgstr "" + +#: js/toolbar.js:59 +#: js/toolbar.js:120 +#: js/toolbar.js:185 +#: js/toolbar.js:241 +msgid "Find and share projects" +msgstr "" + +#: js/toolbar.js:60 +#: js/toolbar.js:121 +#: js/toolbar.js:186 +#: js/toolbar.js:242 +msgid "Offline. Sharing is unavailable" +msgstr "" + +#: js/toolbar.js:61 +#: js/toolbar.js:122 +#: js/toolbar.js:187 +#: js/toolbar.js:243 +msgid "Auxiliary menu" +msgstr "" + +#: js/toolbar.js:62 +#: js/toolbar.js:123 +#: js/toolbar.js:188 +#: js/toolbar.js:244 +#: js/turtledefs.js:752 +#: js/piemenus.js:3423 +msgid "Help" +msgstr "" + +#: js/toolbar.js:63 +#: js/toolbar.js:124 +#: js/toolbar.js:189 +#: js/toolbar.js:245 +msgid "Run slowly" +msgstr "" + +#: js/toolbar.js:64 +#: js/toolbar.js:125 +#: js/toolbar.js:190 +#: js/toolbar.js:246 +#: js/turtledefs.js:682 +msgid "Run step by step" +msgstr "" + +#: js/toolbar.js:65 +#: js/toolbar.js:126 +#: js/toolbar.js:191 +#: js/toolbar.js:247 +#: js/turtledefs.js:689 +msgid "Display statistics" +msgstr "" + +#: js/toolbar.js:66 +#: js/toolbar.js:127 +#: js/toolbar.js:192 +#: js/toolbar.js:248 +msgid "Load plugin" +msgstr "" + +#: js/toolbar.js:67 +#: js/toolbar.js:128 +#: js/toolbar.js:193 +#: js/toolbar.js:249 +#: js/turtledefs.js:696 +msgid "Delete plugin" +msgstr "" + +#: js/toolbar.js:68 +#: js/toolbar.js:129 +#: js/toolbar.js:194 +#: js/toolbar.js:250 +msgid "Enable horizontal scrolling" +msgstr "" + +#: js/toolbar.js:69 +#: js/toolbar.js:130 +#: js/toolbar.js:195 +#: js/toolbar.js:251 +msgid "Disable horizontal scrolling" +msgstr "" + +#: js/toolbar.js:70 +#: js/toolbar.js:131 +#: js/toolbar.js:196 +#: js/toolbar.js:252 +#: planet/js/LocalCard.js:54 +#: planet/js/StringHelper.js:71 +msgid "Merge with current project" +msgstr "" + +#: js/toolbar.js:71 +#: js/toolbar.js:132 +msgid "Set Pitch Preview" +msgstr "" + +#: js/toolbar.js:72 +#: js/toolbar.js:133 +#: js/toolbar.js:197 +#: js/toolbar.js:253 +msgid "JavaScript Editor" +msgstr "" + +#: js/toolbar.js:73 +#: js/toolbar.js:134 +#: js/toolbar.js:198 +#: js/toolbar.js:254 +#: js/turtledefs.js:724 +msgid "Restore" +msgstr "" + +#: js/toolbar.js:74 +#: js/toolbar.js:135 +#: js/toolbar.js:199 +#: js/toolbar.js:255 +msgid "Switch to beginner mode" +msgstr "" + +#: js/toolbar.js:75 +#: js/toolbar.js:136 +#: js/toolbar.js:200 +#: js/toolbar.js:256 +msgid "Switch to advanced mode" +msgstr "" + +#: js/toolbar.js:76 +#: js/toolbar.js:137 +#: js/toolbar.js:146 +#: js/toolbar.js:201 +#: js/toolbar.js:257 +#: js/turtledefs.js:738 +msgid "Select language" +msgstr "" + +#: js/toolbar.js:78 +#: js/toolbar.js:81 +#: js/toolbar.js:140 +#: js/turtledefs.js:579 +msgid "Save mouse artwork as PNG" +msgstr "" + +#: js/toolbar.js:80 +#: js/toolbar.js:139 +#: js/turtledefs.js:575 +msgid "Save mouse artwork as SVG" +msgstr "" + +#: js/toolbar.js:82 +#: js/toolbar.js:141 +#: js/turtledefs.js:583 +msgid "Save music as WAV" +msgstr "" + +#: js/toolbar.js:83 +#: js/toolbar.js:142 +#: js/turtledefs.js:587 +msgid "Save sheet music as ABC" +msgstr "" + +#: js/toolbar.js:84 +#: js/toolbar.js:143 +#: js/turtledefs.js:591 +msgid "Save sheet music as Lilypond" +msgstr "" + +#: js/toolbar.js:85 +msgid "Save sheet music as MusicXML" +msgstr "" + +#: js/toolbar.js:86 +#: js/toolbar.js:144 +#: js/toolbar.js:152 +#: js/toolbar.js:207 +#: js/toolbar.js:263 +#: js/turtledefs.js:562 +#: js/turtledefs.js:595 +msgid "Save block artwork as SVG" +msgstr "" + +#: js/toolbar.js:87 +#: js/toolbar.js:145 +#: js/toolbar.js:153 +#: js/toolbar.js:208 +#: js/toolbar.js:264 +#: js/turtles.js:911 +msgid "Confirm" +msgstr "" + +#: js/toolbar.js:88 +#: js/toolbar.js:154 +#: js/toolbar.js:209 +#: js/toolbar.js:265 +msgid "English (United States)" +msgstr "" + +#: js/toolbar.js:89 +#: js/toolbar.js:155 +#: js/toolbar.js:210 +#: js/toolbar.js:266 +msgid "English (United Kingdom)" +msgstr "" + +#: js/toolbar.js:90 +#: js/toolbar.js:156 +#: js/toolbar.js:211 +#: js/toolbar.js:267 +msgid "日本語" +msgstr "" + +#: js/toolbar.js:91 +msgid "한국어" +msgstr "" + +#: js/toolbar.js:92 +#: js/toolbar.js:158 +#: js/toolbar.js:213 +#: js/toolbar.js:269 +msgid "español" +msgstr "" + +#: js/toolbar.js:93 +#: js/toolbar.js:159 +#: js/toolbar.js:214 +#: js/toolbar.js:270 +msgid "português" +msgstr "" + +#: js/toolbar.js:94 +#: js/toolbar.js:160 +#: js/toolbar.js:215 +#: js/toolbar.js:271 +msgid "にほんご" +msgstr "" + +#: js/toolbar.js:95 +#: js/toolbar.js:161 +#: js/toolbar.js:216 +#: js/toolbar.js:272 +msgid "中文" +msgstr "" + +#: js/toolbar.js:96 +#: js/toolbar.js:162 +#: js/toolbar.js:217 +#: js/toolbar.js:273 +msgid "ภาษาไทย" +msgstr "" + +#: js/toolbar.js:97 +#: js/toolbar.js:163 +#: js/toolbar.js:218 +#: js/toolbar.js:274 +msgid "aymara" +msgstr "" + +#: js/toolbar.js:98 +#: js/toolbar.js:164 +#: js/toolbar.js:219 +#: js/toolbar.js:275 +msgid "quechua" +msgstr "" + +#: js/toolbar.js:99 +#: js/toolbar.js:165 +#: js/toolbar.js:220 +#: js/toolbar.js:276 +msgid "guarani" +msgstr "" + +#: js/toolbar.js:100 +#: js/toolbar.js:166 +#: js/toolbar.js:221 +#: js/toolbar.js:277 +msgid "हिंदी" +msgstr "" + +#: js/toolbar.js:101 +#: js/toolbar.js:168 +#: js/toolbar.js:222 +#: js/toolbar.js:279 +msgid "igbo" +msgstr "" + +#: js/toolbar.js:102 +#: js/toolbar.js:169 +#: js/toolbar.js:223 +#: js/toolbar.js:280 +msgid "عربى" +msgstr "" + +#: js/toolbar.js:103 +#: js/toolbar.js:167 +#: js/toolbar.js:224 +#: js/toolbar.js:278 +msgid "తెలుగు" +msgstr "" + +#: js/toolbar.js:104 +#: js/toolbar.js:170 +#: js/toolbar.js:225 +#: js/toolbar.js:281 +msgid "עִברִית" +msgstr "" + +#: js/toolbar.js:113 +#: js/toolbar.js:114 +#: js/toolbar.js:178 +#: js/toolbar.js:179 +#: js/toolbar.js:234 +#: js/toolbar.js:235 +msgid "Full Screen" +msgstr "" + +#: js/toolbar.js:148 +#: js/toolbar.js:151 +#: js/toolbar.js:203 +#: js/toolbar.js:206 +#: js/toolbar.js:259 +#: js/toolbar.js:262 +#: js/turtledefs.js:558 +msgid "Save turtle artwork as PNG" +msgstr "" + +#: js/toolbar.js:150 +#: js/toolbar.js:205 +#: js/toolbar.js:261 +#: js/turtledefs.js:554 +msgid "Save turtle artwork as SVG" +msgstr "" + +#: js/toolbar.js:157 +#: js/toolbar.js:212 +#: js/toolbar.js:268 +msgid "한국인" +msgstr "" + +#: js/toolbar.js:174 +#: js/toolbar.js:230 +msgid "About Turtle Blocks" +msgstr "" + +#: js/toolbar.js:446 +#: js/toolbar.js:457 +#: js/toolbar.js:497 +msgid "Turtle Wrap Off" +msgstr "" + +#: js/toolbar.js:466 +#: js/toolbar.js:506 +msgid "Turtle Wrap On" +msgstr "" + +#: js/turtle-painter.js:1192 +#: js/turtle-painter.js:1193 +#: js/turtles.js:118 +#: js/block-verbose.js:1623 +#: js/block.js:1587 +#: js/lilypond.js:749 +#: js/lilypond.js:913 +#: js/lilypond.js:951 +#: js/logo.js:1184 +#: js/blocks/ActionBlocks.js:1223 +#: js/blocks/ProgramBlocks.js:1267 +msgid "start" +msgstr "" + +#: js/turtledefs.js:40 +#.TRANS: put the URL to the guide here, e.g., https://github.com/sugarlabs/turtleblocksjs/tree/master/guide/README.md +msgid "guide url" +msgstr "" + +#: js/turtledefs.js:85 +#: js/turtledefs.js:437 +msgid "Turtle Blocks is a Logo-inspired turtle that draws colorful pictures with snap-together visual-programming blocks." +msgstr "" + +#: js/turtledefs.js:118 +#: js/turtledefs.js:220 +msgid "search" +msgstr "" + +#: js/turtledefs.js:120 +#: js/turtledefs.js:222 +#: js/blocks/MeterBlocks.js:1343 +#: js/blocks/WidgetBlocks.js:522 +#.TRANS: musical meter (time signature), e.g., 4:4 +msgid "meter" +msgstr "" + +#: js/turtledefs.js:122 +#: js/turtledefs.js:224 +msgid "intervals" +msgstr "" + +#: js/turtledefs.js:124 +#: js/turtledefs.js:226 +msgid "ornament" +msgstr "" + +#: js/turtledefs.js:125 +#: js/turtledefs.js:227 +#: js/blocks/VolumeBlocks.js:362 +#: js/blocks/VolumeBlocks.js:502 +#: js/blocks/VolumeBlocks.js:545 +msgid "volume" +msgstr "" + +#: js/turtledefs.js:126 +#: js/turtledefs.js:228 +#: js/block-verbose.js:1700 +#: js/block-verbose.js:2626 +#: js/block.js:1664 +#: js/block.js:2554 +#: js/lilypond.js:732 +#: js/lilypond.js:897 +#: js/lilypond.js:941 +#: js/palette.js:577 +#: js/blocks/RhythmBlocks.js:766 +#: js/blocks/DrumBlocks.js:477 +#: js/blocks/VolumeBlocks.js:502 +#: js/widgets/phrasemaker.js:1038 +msgid "drum" +msgstr "" + +#: js/turtledefs.js:129 +#: js/turtledefs.js:231 +msgid "boxes" +msgstr "" + +#: js/turtledefs.js:130 +#: js/turtledefs.js:232 +msgid "widgets" +msgstr "" + +#: js/turtledefs.js:131 +#: js/turtledefs.js:233 +#: js/widgets/phrasemaker.js:1039 +msgid "graphics" +msgstr "" + +#: js/turtledefs.js:134 +#: js/turtledefs.js:236 +msgid "boolean" +msgstr "" + +#: js/turtledefs.js:137 +#: js/turtledefs.js:239 +#: js/blocks/HeapBlocks.js:59 +#: js/widgets/status.js:147 +msgid "heap" +msgstr "" + +#: js/turtledefs.js:138 +#: js/turtledefs.js:240 +#: js/blocks/DictBlocks.js:142 +#: js/blocks/ProgramBlocks.js:495 +msgid "dictionary" +msgstr "" + +#: js/turtledefs.js:139 +#: js/turtledefs.js:241 +msgid "ensemble" +msgstr "" + +#: js/turtledefs.js:140 +#: js/turtledefs.js:242 +msgid "extras" +msgstr "" + +#: js/turtledefs.js:142 +#: js/turtledefs.js:244 +#.TRANS: program as in computer program +#.TRANS: program as in computer program +msgid "program" +msgstr "" + +#: js/turtledefs.js:143 +#: js/turtledefs.js:245 +msgid "my blocks" +msgstr "" + +#: js/turtledefs.js:185 +#: js/turtledefs.js:281 +msgid "artwork" +msgstr "" + +#: js/turtledefs.js:185 +#: js/turtledefs.js:281 +msgid "logic" +msgstr "" + +#: js/turtledefs.js:185 +#: js/turtledefs.js:281 +msgid "music" +msgstr "" + +#: js/turtledefs.js:187 +#: js/turtledefs.js:463 +msgid "Music Blocks is a collection of tools for exploring fundamental musical concepts in a fun way." +msgstr "" + +#: js/turtledefs.js:436 +msgid "Welcome to Turtle Blocks" +msgstr "" + +#: js/turtledefs.js:438 +#: js/turtledefs.js:465 +#: js/turtledefs.js:774 +#: js/turtledefs.js:805 +msgid "The current version is" +msgstr "" + +#: js/turtledefs.js:446 +#: js/turtledefs.js:483 +msgid "Click the run button to run the project in fast mode." +msgstr "" + +#: js/turtledefs.js:452 +msgid "Stop the turtle." +msgstr "" + +#: js/turtledefs.js:454 +#: js/turtledefs.js:491 +msgid "You can also type Alt-S to stop." +msgstr "" + +#: js/turtledefs.js:462 +#: js/widgets/help.js:333 +msgid "Welcome to Music Blocks" +msgstr "" + +#: js/turtledefs.js:472 +#: js/widgets/help.js:334 +msgid "Meet Mr. Mouse!" +msgstr "" + +#: js/turtledefs.js:473 +msgid "Mr Mouse is our Music Blocks conductor." +msgstr "" + +#: js/turtledefs.js:475 +msgid "Mr Mouse encourages you to explore Music Blocks." +msgstr "" + +#: js/turtledefs.js:477 +msgid "Let us start our tour!" +msgstr "" + +#: js/turtledefs.js:489 +msgid "Stop the music (and the mice)." +msgstr "" + +#: js/turtledefs.js:499 +msgid "Record your project as video." +msgstr "" + +#: js/turtledefs.js:505 +msgid "Toggle Fullscreen mode." +msgstr "" + +#: js/turtledefs.js:511 +msgid "Initialize a new project." +msgstr "" + +#: js/turtledefs.js:517 +msgid "You can also load projects from the file system." +msgstr "" + +#: js/turtledefs.js:522 +#: planet/js/StringHelper.js:46 +msgid "Delete" +msgstr "" + +#: js/turtledefs.js:523 +msgid "To delete a block, just right-click on it, then you will be able to see the delete option" +msgstr "" + +#: js/turtledefs.js:528 +#: js/activity.js:2649 +#: planet/js/LocalCard.js:31 +msgid "Copy" +msgstr "" + +#: js/turtledefs.js:529 +msgid "To copy a block, just right-click on it, then you will be able to see the copy option" +msgstr "" + +#: js/turtledefs.js:534 +#: js/piemenus.js:3411 +msgid "Extract" +msgstr "" + +#: js/turtledefs.js:535 +msgid "To extract a block, just right-click on it, then you will be able to see the extract option" +msgstr "" + +#: js/turtledefs.js:542 +#: js/turtledefs.js:552 +#: js/turtledefs.js:573 +msgid "Save your project to a file." +msgstr "" + +#: js/turtledefs.js:549 +#: js/turtledefs.js:570 +msgid "save" +msgstr "" + +#: js/turtledefs.js:556 +#: js/turtledefs.js:577 +msgid "Save graphics from your project to as SVG." +msgstr "" + +#: js/turtledefs.js:560 +#: js/turtledefs.js:581 +msgid "Save graphics from your project as PNG." +msgstr "" + +#: js/turtledefs.js:564 +#: js/turtledefs.js:597 +msgid "Save block artwork as an SVG file." +msgstr "" + +#: js/turtledefs.js:585 +msgid "Save audio from your project as WAV." +msgstr "" + +#: js/turtledefs.js:589 +msgid "Save your project to as an ABC file." +msgstr "" + +#: js/turtledefs.js:593 +msgid "Save your project to as a Lilypond file." +msgstr "" + +#: js/turtledefs.js:604 +msgid "Load samples from server" +msgstr "" + +#: js/turtledefs.js:605 +msgid "This button opens a viewer for loading example projects." +msgstr "" + +#: js/turtledefs.js:611 +msgid "Palette buttons" +msgstr "" + +#: js/turtledefs.js:612 +msgid "This toolbar contains the palette buttons including Rhythm Pitch Tone Action and more." +msgstr "" + +#: js/turtledefs.js:614 +msgid "Click to show the palettes of blocks and drag blocks from the palettes onto the canvas to use them." +msgstr "" + +#: js/turtledefs.js:620 +msgid "Cartesian/Polar" +msgstr "" + +#: js/turtledefs.js:621 +msgid "Show or hide a coordinate grid." +msgstr "" + +#: js/turtledefs.js:626 +#: js/turtles.js:902 +msgid "Clean" +msgstr "" + +#: js/turtledefs.js:627 +msgid "Clear the screen and return the mice to their initial positions." +msgstr "" + +#: js/turtledefs.js:632 +#: js/turtles.js:955 +msgid "Collapse" +msgstr "" + +#: js/turtledefs.js:633 +msgid "Collapse the graphics window." msgstr "" -#: js/palette.js:571 -msgid "grid" +#: js/turtledefs.js:638 +#: js/activity.js:5684 +msgid "Home" msgstr "" -#: js/palette.js:577 -#: js/block.js:1540 -#: js/block.js:2343 -#: js/turtledefs.js:126 -#: js/turtledefs.js:228 -#: js/lilypond.js:740 -#: js/lilypond.js:905 -#: js/lilypond.js:949 -#: js/DrumBlocks.js:486 -#: js/RhythmBlocks.js:766 -#: js/VolumeBlocks.js:502 -#: js/phrasemaker.js:823 -msgid "drum" +#: js/turtledefs.js:639 +msgid "Return all blocks to the center of the screen." msgstr "" -#: js/palette.js:580 -msgid "effect" +#: js/turtledefs.js:644 +msgid "Show/hide blocks" msgstr "" -#: js/palette.js:586 -msgid "sargam" +#: js/turtledefs.js:645 +msgid "Hide or show the blocks and the palettes." msgstr "" -#: js/palette.js:589 -#: js/activity.js:1833 -#: js/RhythmBlocks.js:923 -#: js/PitchBlocks.js:442 -#: js/PitchBlocks.js:1748 -#.TRANS: a numeric mapping of the notes in an octave based on the musical mode -msgid "scale degree" +#: js/turtledefs.js:650 +msgid "Expand/collapse collapsable blocks" msgstr "" -#: js/palette.js:592 -#: js/activity.js:1860 -msgid "mode name" +#: js/turtledefs.js:651 +msgid "Expand or collapse start and action stacks." msgstr "" -#: js/palette.js:595 -#: js/activity.js:1839 -msgid "invert mode" +#: js/turtledefs.js:658 +#: js/activity.js:5704 +msgid "Decrease block size" msgstr "" -#: js/palette.js:598 -#: js/activity.js:1836 -msgid "voice name" +#: js/turtledefs.js:659 +msgid "Decrease the size of the blocks." msgstr "" -#: js/palette.js:601 -#: js/PitchBlocks.js:1181 -msgid "custom pitch" +#: js/turtledefs.js:664 +#: js/activity.js:5710 +msgid "Increase block size" msgstr "" -#: js/palette.js:605 -#: js/block.js:1456 -#: js/block.js:1575 -#: js/WidgetBlocks.js:218 -#: js/IntervalsBlocks.js:63 -msgid "temperament" +#: js/turtledefs.js:665 +msgid "Increase the size of the blocks." msgstr "" -#: js/palette.js:609 -msgid "accidental" +#: js/turtledefs.js:670 +msgid "Expand/collapse option toolbar" msgstr "" -#: js/palette.js:615 -#: js/activity.js:1866 -msgid "interval name" +#: js/turtledefs.js:671 +msgid "Click this button to expand or collapse the auxillary toolbar." msgstr "" -#: js/palette.js:633 -#: js/PitchBlocks.js:405 -msgid "pitch converter" +#: js/turtledefs.js:676 +msgid "Run slow" msgstr "" -#: js/rubrics.js:522 -#: js/turtledefs.js:119 -#: js/turtledefs.js:221 -#: js/RhythmBlockPaletteBlocks.js:52 -#: js/RhythmBlockPaletteBlocks.js:233 -#: js/ProgramBlocks.js:745 -#: js/rhythmruler.js:1670 -#: js/rhythmruler.js:1677 -#: js/rhythmruler.js:1745 -#: js/rhythmruler.js:1752 -#: js/rhythmruler.js:1830 -#.TRANS: an arrangement of notes based on duration -msgid "rhythm" +#: js/turtledefs.js:677 +msgid "Click to run the project in slow mode." msgstr "" -#: js/rubrics.js:523 -#: js/block.js:2339 -#: js/turtledefs.js:121 -#: js/turtledefs.js:223 -#: js/IntervalsBlocks.js:63 -#: js/PitchBlocks.js:1801 -#: js/PitchBlocks.js:1814 -#: js/SensorsBlocks.js:178 -#: js/phrasemaker.js:821 -#: js/musickeyboard.js:1653 -#.TRANS: pitch number -#.TRANS: we specify pitch in terms of a name and an octave. The name can be CDEFGAB or Do Re Mi Fa Sol La Ti. Octave is a number between 1 and 8. -msgid "pitch" +#: js/turtledefs.js:683 +msgid "Click to run the project step by step." msgstr "" -#: js/rubrics.js:524 -#: js/turtledefs.js:123 -#: js/turtledefs.js:225 -msgid "tone" +#: js/turtledefs.js:690 +msgid "Display statistics about your Music project." msgstr "" -#: js/rubrics.js:525 -#: js/lilypond.js:613 -#: js/lilypond.js:912 -#: js/lilypond.js:918 -#: js/lilypond.js:956 -msgid "mouse" +#: js/turtledefs.js:697 +msgid "Delete a selected plugin." msgstr "" -#: js/rubrics.js:526 -#: js/turtledefs.js:132 -#: js/turtledefs.js:234 -#: js/phrasemaker.js:825 -msgid "pen" +#: js/turtledefs.js:704 +msgid "Enable scrolling" msgstr "" -#: js/rubrics.js:527 -#: js/turtledefs.js:133 -#: js/turtledefs.js:235 -#: js/NumberBlocks.js:905 -#: js/PitchBlocks.js:1679 -#: js/PitchBlocks.js:1720 -msgid "number" +#: js/turtledefs.js:705 +msgid "You can scroll the blocks on the canvas." msgstr "" -#: js/rubrics.js:528 -#: js/turtledefs.js:127 -#: js/turtledefs.js:229 -msgid "flow" +#: js/turtledefs.js:714 +msgid "Wrap Turtle" msgstr "" -#: js/rubrics.js:530 -#: js/turtledefs.js:136 -#: js/turtledefs.js:238 -msgid "sensors" +#: js/turtledefs.js:715 +msgid "Turn Turtle wrapping On or Off." msgstr "" -#: js/rubrics.js:531 -#: js/turtledefs.js:135 -#: js/turtledefs.js:237 -#: js/MediaBlocks.js:930 -msgid "media" +#: js/turtledefs.js:725 +msgid "Restore blocks from the trash." msgstr "" -#: js/rubrics.js:532 -msgid "mice" +#: js/turtledefs.js:732 +msgid "Switch mode" msgstr "" -#: js/macros.js:711 -#: js/musicutils.js:783 -#: js/synthutils.js:181 -#.TRANS: animal sound effect -msgid "duck" +#: js/turtledefs.js:733 +msgid "Switch between beginner and advance modes." msgstr "" -#: js/toolbar.js:46 -#: js/toolbar.js:107 -msgid "About Music Blocks" +#: js/turtledefs.js:739 +msgid "Select your language preference." msgstr "" -#: js/toolbar.js:47 -#: js/toolbar.js:108 -#: js/toolbar.js:172 -#: js/toolbar.js:228 -#: js/turtledefs.js:445 -#: js/turtledefs.js:482 -#: js/activity.js:2281 -#: js/activity.js:2289 -#: js/activity.js:2520 -#: js/modewidget.js:77 -#: js/pitchstaircase.js:121 -#: js/phrasemaker.js:302 -#: js/phrasemaker.js:312 -#: js/phrasemaker.js:314 -#: js/phrasemaker.js:3901 -#: js/phrasemaker.js:4061 -#: js/phrasemaker.js:4066 -#: js/phrasemaker.js:4068 -#: js/phrasemaker.js:4183 -#: js/pitchdrummatrix.js:81 -#: js/pitchdrummatrix.js:574 -#: js/pitchdrummatrix.js:576 -#: js/pitchdrummatrix.js:628 -#: js/pitchdrummatrix.js:630 -#: js/pitchdrummatrix.js:645 -#: js/pitchdrummatrix.js:647 -#: js/pitchdrummatrix.js:674 -#: js/pitchdrummatrix.js:676 -#: js/temperament.js:477 -#: js/temperament.js:480 -#: js/temperament.js:540 -#: js/temperament.js:542 -#: js/temperament.js:1835 -#: js/temperament.js:1837 -#: js/temperament.js:1986 -#: js/temperament.js:1988 -#: js/musickeyboard.js:522 -#: js/musickeyboard.js:682 -#: js/musickeyboard.js:684 -#: js/musickeyboard.js:756 -#: js/musickeyboard.js:758 -#: js/rhythmruler.js:298 -#: js/rhythmruler.js:300 -#: js/rhythmruler.js:314 -#: js/rhythmruler.js:316 -#: js/sampler.js:96 -#: js/sampler.js:98 -#: js/sampler.js:229 -#: js/sampler.js:235 -#: js/sampler.js:237 -#: js/tempo.js:84 -#: js/tempo.js:86 -#: js/timbre.js:432 -#: js/timbre.js:434 -#: js/timbre.js:465 -#: js/timbre.js:467 -#: js/timbre.js:746 -#: js/meterwidget.js:80 -#: js/arpeggio.js:90 -#: js/arpeggio.js:547 -#: js/arpeggio.js:549 -#: js/arpeggio.js:644 -#: js/arpeggio.js:646 -msgid "Play" +#: js/turtledefs.js:745 +msgid "Keyboard shortcuts" msgstr "" -#: js/toolbar.js:48 -#: js/toolbar.js:109 -#: js/toolbar.js:173 -#: js/toolbar.js:229 -#: js/turtledefs.js:451 -#: js/turtledefs.js:488 -#: js/activity.js:2297 -#: js/modewidget.js:99 -#: js/modewidget.js:101 -#: js/phrasemaker.js:323 -#: js/phrasemaker.js:325 -#: js/pitchdrummatrix.js:561 -#: js/pitchdrummatrix.js:563 -#: js/temperament.js:1820 -#: js/temperament.js:1822 -#: js/meterwidget.js:101 -#: js/meterwidget.js:103 -#: js/arpeggio.js:534 -#: js/arpeggio.js:536 -msgid "Stop" +#: js/turtledefs.js:746 +msgid "You can type d to create a do block and r to create a re block etc." msgstr "" -#: js/toolbar.js:49 -#: js/toolbar.js:110 -#: js/toolbar.js:174 -#: js/toolbar.js:230 -#: js/turtledefs.js:498 -msgid "Record" +#: js/turtledefs.js:753 +msgid "Show these messages." msgstr "" -#: js/toolbar.js:50 -#: js/toolbar.js:51 -msgid "Full screen" +#: js/turtledefs.js:759 +#: js/turtledefs.js:790 +#: js/widgets/help.js:335 +msgid "Guide" msgstr "" -#: js/toolbar.js:52 -#: js/toolbar.js:112 -#: js/toolbar.js:177 -#: js/toolbar.js:232 -#: js/turtledefs.js:504 -msgid "Toggle Fullscreen" +#: js/turtledefs.js:760 +msgid "A detailed guide to Turtle Blocks is available." msgstr "" -#: js/toolbar.js:53 -#: js/toolbar.js:113 -#: js/toolbar.js:178 -#: js/toolbar.js:233 -#: js/turtledefs.js:510 -#: js/StringHelper.js:33 -msgid "New project" +#: js/turtledefs.js:764 +msgid "Turtle Blocks Guide" msgstr "" -#: js/toolbar.js:54 -#: js/toolbar.js:114 -#: js/toolbar.js:179 -#: js/toolbar.js:234 -#: js/turtledefs.js:516 -msgid "Load project from file" +#: js/turtledefs.js:767 +#: js/turtledefs.js:798 +#: js/widgets/help.js:336 +msgid "About" msgstr "" -#: js/toolbar.js:55 -#: js/toolbar.js:115 -#: js/toolbar.js:116 -#: js/toolbar.js:180 -#: js/toolbar.js:235 -#: js/turtledefs.js:541 -#: js/turtledefs.js:550 -#: js/turtledefs.js:571 -msgid "Save project" +#: js/turtledefs.js:768 +msgid "Turtle Blocks is an open source collection of tools for exploring musical concepts." msgstr "" -#: js/toolbar.js:56 -#: js/toolbar.js:75 -#: js/toolbar.js:77 -#: js/toolbar.js:135 -#: js/toolbar.js:144 -#: js/toolbar.js:146 -#: js/toolbar.js:181 -#: js/toolbar.js:199 -#: js/toolbar.js:201 -#: js/toolbar.js:236 -#: js/toolbar.js:254 -#: js/toolbar.js:256 -msgid "Save project as HTML" +#: js/turtledefs.js:770 +msgid "A full list of contributors can be found in the Turtle Blocks GitHub repository." +msgstr "" + +#: js/turtledefs.js:772 +msgid "Turtle Blocks is licensed under the AGPL." +msgstr "" + +#: js/turtledefs.js:780 +msgid "Turtle Blocks GitHub repository" +msgstr "" + +#: js/turtledefs.js:783 +#: js/turtledefs.js:814 +#: js/widgets/help.js:337 +#: js/widgets/help.js:359 +msgid "Congratulations." +msgstr "" + +#: js/turtledefs.js:784 +msgid "You have finished the tour. Please enjoy Turtle Blocks!" +msgstr "" + +#: js/turtledefs.js:791 +msgid "A detailed guide to Music Blocks is available." +msgstr "" + +#: js/turtledefs.js:799 +msgid "Music Blocks is an open source collection of tools for exploring musical concepts." +msgstr "" + +#: js/turtledefs.js:801 +msgid "A full list of contributors can be found in the Music Blocks GitHub repository." +msgstr "" + +#: js/turtledefs.js:803 +msgid "Music Blocks is licensed under the AGPL." +msgstr "" + +#: js/turtledefs.js:811 +msgid "Music Blocks GitHub repository" +msgstr "" + +#: js/turtledefs.js:815 +msgid "You have finished the tour. Please enjoy Music Blocks!" +msgstr "" + +#: js/turtles.js:882 +msgid "Grid" +msgstr "" + +#: js/turtles.js:1024 +msgid "Expand" +msgstr "" + +#: js/block-verbose.js:1616 +#: js/block-verbose.js:1735 +#: js/block.js:1580 +#: js/block.js:1699 +#: js/palette.js:605 +#: js/blocks/IntervalsBlocks.js:63 +#: js/blocks/WidgetBlocks.js:259 +msgid "temperament" +msgstr "" + +#: js/block-verbose.js:1630 +#: js/block.js:1594 +msgid "matrix" msgstr "" -#: js/toolbar.js:57 -#: js/toolbar.js:117 -#: js/toolbar.js:182 -#: js/toolbar.js:237 -msgid "Find and share projects" +#: js/block-verbose.js:1637 +#: js/block.js:1601 +#: js/blocks/WidgetBlocks.js:1509 +#: plugins/rodi.rtp:324 +msgid "status" msgstr "" -#: js/toolbar.js:58 -#: js/toolbar.js:118 -#: js/toolbar.js:183 -#: js/toolbar.js:238 -msgid "Offline. Sharing is unavailable" +#: js/block-verbose.js:1644 +#: js/block.js:1608 +msgid "drum mapper" msgstr "" -#: js/toolbar.js:59 -#: js/toolbar.js:119 -#: js/toolbar.js:184 -#: js/toolbar.js:239 -msgid "Auxiliary menu" +#: js/block-verbose.js:1651 +#: js/block.js:1615 +msgid "ruler" msgstr "" -#: js/toolbar.js:61 -#: js/toolbar.js:121 -#: js/toolbar.js:186 -#: js/toolbar.js:241 -msgid "Run slowly" +#: js/block-verbose.js:1658 +#: js/block.js:1622 +#: js/blocks/WidgetBlocks.js:397 +#.TRANS: timbre is the character or quality of a musical sound +msgid "timbre" msgstr "" -#: js/toolbar.js:62 -#: js/toolbar.js:122 -#: js/toolbar.js:187 -#: js/toolbar.js:242 -#: js/turtledefs.js:682 -msgid "Run step by step" +#: js/block-verbose.js:1665 +#: js/block.js:1629 +msgid "stair" msgstr "" -#: js/toolbar.js:63 -#: js/toolbar.js:123 -#: js/toolbar.js:188 -#: js/toolbar.js:243 -#: js/turtledefs.js:689 -msgid "Display statistics" +#: js/block-verbose.js:1672 +#: js/block.js:1636 +#: js/blocks/WidgetBlocks.js:707 +#.TRANS: the speed at music is should be played. +msgid "tempo" msgstr "" -#: js/toolbar.js:64 -#: js/toolbar.js:124 -#: js/toolbar.js:189 -#: js/toolbar.js:244 -msgid "Load plugin" +#: js/block-verbose.js:1679 +#: js/block-verbose.js:1742 +#: js/block.js:1643 +#: js/block.js:1706 +#: js/blocks/IntervalsBlocks.js:1464 +#.TRANS: mode, e.g., Major in C Major +msgid "mode" msgstr "" -#: js/toolbar.js:65 -#: js/toolbar.js:125 -#: js/toolbar.js:190 -#: js/toolbar.js:245 -#: js/turtledefs.js:696 -msgid "Delete plugin" +#: js/block-verbose.js:1686 +#: js/block.js:1650 +msgid "slider" msgstr "" -#: js/toolbar.js:66 -#: js/toolbar.js:126 -#: js/toolbar.js:191 -#: js/toolbar.js:246 -msgid "Enable horizontal scrolling" +#: js/block-verbose.js:1693 +#: js/block.js:1657 +#: js/blocks/SensorsBlocks.js:1001 +msgid "keyboard" msgstr "" -#: js/toolbar.js:67 -#: js/toolbar.js:127 -#: js/toolbar.js:192 -#: js/toolbar.js:247 -msgid "Disable horizontal scrolling" +#: js/block-verbose.js:1707 +#: js/block.js:1671 +#: js/blocks/WidgetBlocks.js:1190 +#: js/blocks/WidgetBlocks.js:1228 +#.TRANS: widget for subdividing a measure into distinct rhythmic elements +msgid "rhythm maker" msgstr "" -#: js/toolbar.js:68 -#: js/toolbar.js:128 -#: js/toolbar.js:193 -#: js/toolbar.js:248 -#: js/LocalCard.js:54 -#: js/StringHelper.js:71 -msgid "Merge with current project" +#: js/block-verbose.js:1714 +#: js/block-verbose.js:2457 +#: js/block-verbose.js:2514 +#: js/block.js:1678 +#: js/block.js:2385 +#: js/block.js:2442 +#: js/blocks/MeterBlocks.js:1367 +#: js/blocks/OrnamentBlocks.js:220 +#: js/blocks/OrnamentBlocks.js:312 +#: js/blocks/RhythmBlocks.js:33 +#: js/blocks/RhythmBlocks.js:356 +#: js/blocks/RhythmBlocks.js:766 +#: js/blocks/RhythmBlocks.js:806 +#: js/blocks/RhythmBlockPaletteBlocks.js:70 +#: js/blocks/RhythmBlockPaletteBlocks.js:252 +#: js/blocks/RhythmBlockPaletteBlocks.js:485 +#: js/blocks/RhythmBlockPaletteBlocks.js:554 +#: js/blocks/RhythmBlockPaletteBlocks.js:605 +#: js/blocks/RhythmBlockPaletteBlocks.js:875 +#: js/turtleactions/DictActions.js:85 +#: js/widgets/phrasemaker.js:942 +#: js/widgets/phrasemaker.js:2656 +#: js/widgets/phrasemaker.js:2699 +#: js/widgets/phrasemaker.js:2810 +#.TRANS: the value (e.g., 1/4 note) of the note being played. +msgid "note value" msgstr "" -#: js/toolbar.js:69 -#: js/toolbar.js:129 -msgid "Set Pitch Preview" +#: js/block-verbose.js:1721 +#: js/block-verbose.js:2382 +#: js/block-verbose.js:2405 +#: js/block.js:1685 +#: js/block.js:2310 +#: js/block.js:2333 +#: js/blocks/IntervalsBlocks.js:1071 +#: js/blocks/OrnamentBlocks.js:312 +#.TRANS: calculate a relative step between notes based on semi-tones +msgid "scalar interval" msgstr "" -#: js/toolbar.js:70 -#: js/toolbar.js:130 -#: js/toolbar.js:194 -#: js/toolbar.js:249 -msgid "Toggle JavaScript Editor" +#: js/block-verbose.js:1728 +#: js/block.js:1692 +#: js/blocks/RhythmBlocks.js:148 +msgid "milliseconds" msgstr "" -#: js/toolbar.js:71 -#: js/toolbar.js:131 -#: js/toolbar.js:195 -#: js/toolbar.js:250 -#: js/turtledefs.js:724 -msgid "Restore" +#: js/block-verbose.js:2455 +#: js/block-verbose.js:2459 +#: js/block-verbose.js:2512 +#: js/block-verbose.js:2628 +#: js/block.js:2383 +#: js/block.js:2387 +#: js/block.js:2440 +#: js/block.js:2556 +#: js/blocks/RhythmBlocks.js:712 +#: js/blocks/ProgramBlocks.js:1273 +#: js/widgets/rhythmruler.js:1183 +#: js/widgets/rhythmruler.js:1329 +msgid "silence" msgstr "" -#: js/toolbar.js:72 -#: js/toolbar.js:132 -#: js/toolbar.js:196 -#: js/toolbar.js:251 -msgid "Switch to beginner mode" +#: js/block-verbose.js:2548 +#: js/block-verbose.js:3492 +#: js/block-verbose.js:3509 +#: js/activity.js:2718 +#: js/activity.js:2769 +#: js/block.js:2476 +#: js/block.js:3416 +#: js/block.js:3433 +#: js/utils/musicutils.js:3780 +#: js/utils/musicutils.js:5273 +#.TRANS: the note names must be separated by single spaces +#.TRANS: the note names must be separated by single spaces +#.TRANS: the note names must be separated by single spaces +msgid "ti la sol fa mi re do" msgstr "" -#: js/toolbar.js:73 -#: js/toolbar.js:133 -#: js/toolbar.js:197 -#: js/toolbar.js:252 -msgid "Switch to advanced mode" +#: js/block-verbose.js:2616 +#: js/block.js:2544 +#.TRANS: scalar step +#.TRANS: scalar step +msgid "down" msgstr "" -#: js/toolbar.js:74 -#: js/toolbar.js:134 -#: js/toolbar.js:143 -#: js/toolbar.js:198 -#: js/toolbar.js:253 -#: js/turtledefs.js:738 -msgid "Select language" +#: js/block-verbose.js:2617 +#: js/block.js:2545 +msgid "up" msgstr "" -#: js/toolbar.js:76 -#: js/toolbar.js:79 -#: js/toolbar.js:137 -#: js/turtledefs.js:579 -msgid "Save mouse artwork as PNG" +#: js/block-verbose.js:3026 +#: js/block.js:2950 +msgid "Silence block cannot be removed." msgstr "" -#: js/toolbar.js:78 -#: js/toolbar.js:136 -#: js/turtledefs.js:575 -msgid "Save mouse artwork as SVG" +#: js/block-verbose.js:3824 +#: js/block.js:3748 +#: js/blocks.js:2607 +#: js/blocks.js:3218 +#: js/palette.js:618 +#: js/blocks/BooleanBlocks.js:77 +#: js/blocks/BooleanBlocks.js:167 +#: js/blocks/BooleanBlocks.js:251 +#: js/blocks/BooleanBlocks.js:335 +#: js/blocks/BooleanBlocks.js:433 +#: js/blocks/BooleanBlocks.js:539 +#: js/blocks/BooleanBlocks.js:640 +#: js/blocks/BooleanBlocks.js:741 +#: js/blocks/BooleanBlocks.js:847 +#: js/blocks/BooleanBlocks.js:948 +#: js/blocks/BooleanBlocks.js:1033 +#: js/blocks/SensorsBlocks.js:910 +msgid "true" msgstr "" -#: js/toolbar.js:80 -#: js/toolbar.js:138 -#: js/turtledefs.js:583 -msgid "Save music as WAV" +#: js/block-verbose.js:3824 +#: js/block.js:3748 +#: js/blocks.js:2609 +#: js/blocks.js:3220 +#: js/blocks/BooleanBlocks.js:79 +#: js/blocks/BooleanBlocks.js:169 +#: js/blocks/BooleanBlocks.js:253 +#: js/blocks/BooleanBlocks.js:337 +#: js/blocks/BooleanBlocks.js:435 +#: js/blocks/BooleanBlocks.js:541 +#: js/blocks/BooleanBlocks.js:642 +#: js/blocks/BooleanBlocks.js:743 +#: js/blocks/BooleanBlocks.js:849 +#: js/blocks/BooleanBlocks.js:950 +#: js/blocks/SensorsBlocks.js:912 +msgid "false" msgstr "" -#: js/toolbar.js:81 -#: js/toolbar.js:139 -#: js/turtledefs.js:587 -msgid "Save sheet music as ABC" +#: js/block-verbose.js:3835 +#: js/block-verbose.js:3848 +#: js/block.js:3759 +#: js/block.js:3772 +#: js/blocks/ExtrasBlocks.js:615 +msgid "Cartesian" msgstr "" -#: js/toolbar.js:82 -#: js/toolbar.js:140 -#: js/turtledefs.js:591 -msgid "Save sheet music as Lilypond" +#: js/block-verbose.js:3836 +#: js/block-verbose.js:3849 +#: js/block.js:3760 +#: js/block.js:3773 +#: js/blocks/ExtrasBlocks.js:619 +msgid "polar" msgstr "" -#: js/toolbar.js:83 -msgid "Save sheet music as MusicXML" +#: js/block-verbose.js:3837 +#: js/block-verbose.js:3850 +#: js/block.js:3761 +#: js/block.js:3774 +#: js/blocks/ExtrasBlocks.js:623 +msgid "Cartesian+polar" msgstr "" -#: js/toolbar.js:84 -#: js/toolbar.js:141 -#: js/toolbar.js:149 -#: js/toolbar.js:204 -#: js/toolbar.js:259 -#: js/turtledefs.js:562 -#: js/turtledefs.js:595 -msgid "Save block artwork as SVG" +#: js/block-verbose.js:3838 +#: js/block-verbose.js:3857 +#: js/block.js:3762 +#: js/block.js:3781 +#: js/blocks/ExtrasBlocks.js:652 +msgid "none" msgstr "" -#: js/toolbar.js:85 -#: js/toolbar.js:142 -#: js/toolbar.js:150 -#: js/toolbar.js:205 -#: js/toolbar.js:260 -msgid "Confirm" +#: js/block-verbose.js:3851 +#: js/block.js:3775 +#: js/blocks/ExtrasBlocks.js:628 +msgid "treble" msgstr "" -#: js/toolbar.js:86 -#: js/toolbar.js:151 -#: js/toolbar.js:206 -#: js/toolbar.js:261 -msgid "English (United States)" +#: js/block-verbose.js:3852 +#: js/block.js:3776 +#: js/blocks/ExtrasBlocks.js:632 +msgid "grand staff" msgstr "" -#: js/toolbar.js:87 -#: js/toolbar.js:152 -#: js/toolbar.js:207 -#: js/toolbar.js:262 -msgid "English (United Kingdom)" +#: js/block-verbose.js:3853 +#: js/block.js:3777 +#: js/blocks/ExtrasBlocks.js:636 +msgid "mezzo-soprano" msgstr "" -#: js/toolbar.js:88 -#: js/toolbar.js:153 -#: js/toolbar.js:208 -#: js/toolbar.js:263 -msgid "日本語" +#: js/block-verbose.js:3854 +#: js/block.js:3778 +#: js/blocks/ExtrasBlocks.js:640 +msgid "alto" msgstr "" -#: js/toolbar.js:89 -msgid "한국어" +#: js/block-verbose.js:3855 +#: js/block.js:3779 +#: js/blocks/ExtrasBlocks.js:644 +msgid "tenor" msgstr "" -#: js/toolbar.js:90 -#: js/toolbar.js:155 -#: js/toolbar.js:210 -#: js/toolbar.js:265 -msgid "español" +#: js/block-verbose.js:3856 +#: js/block.js:3780 +#: js/utils/musicutils.js:1115 +#: js/utils/synthutils.js:80 +#: js/blocks/ExtrasBlocks.js:648 +#.TRANS: musical instrument +msgid "bass" msgstr "" -#: js/toolbar.js:91 -#: js/toolbar.js:156 -#: js/toolbar.js:211 -#: js/toolbar.js:266 -msgid "português" +#: js/block-verbose.js:3901 +#: js/block.js:3825 +#: js/blocks.js:2600 +#: js/blocks.js:3211 +msgid "on2" msgstr "" -#: js/toolbar.js:92 -#: js/toolbar.js:157 -#: js/toolbar.js:212 -#: js/toolbar.js:267 -msgid "にほんご" +#: js/block-verbose.js:3903 +#: js/block.js:3827 +#: js/blocks.js:2602 +#: js/blocks.js:3213 +msgid "off" msgstr "" -#: js/toolbar.js:93 -#: js/toolbar.js:158 -#: js/toolbar.js:213 -#: js/toolbar.js:268 -msgid "中文" +#: js/block-verbose.js:4470 +#: js/block.js:4394 +msgid "Not a number" msgstr "" -#: js/toolbar.js:94 -#: js/toolbar.js:159 -#: js/toolbar.js:214 -#: js/toolbar.js:269 -msgid "ภาษาไทย" +#: js/block-verbose.js:4477 +#: js/block.js:4401 +msgid "Octave value must be between 1 and 10." msgstr "" -#: js/toolbar.js:95 -#: js/toolbar.js:160 -#: js/toolbar.js:215 -#: js/toolbar.js:270 -msgid "aymara" +#: js/block-verbose.js:4485 +#: js/block.js:4409 +msgid "Numbers can have at most 10 digits." msgstr "" -#: js/toolbar.js:96 -#: js/toolbar.js:161 -#: js/toolbar.js:216 -#: js/toolbar.js:271 -msgid "quechua" +#: js/activity.js:390 +#: js/activity.js:395 +msgid "Search for blocks" msgstr "" -#: js/toolbar.js:97 -#: js/toolbar.js:162 -#: js/toolbar.js:217 -#: js/toolbar.js:272 -msgid "guarani" +#: js/activity.js:1413 +msgid "Refresh your browser to change to advanced mode." msgstr "" -#: js/toolbar.js:98 -#: js/toolbar.js:163 -#: js/toolbar.js:218 -#: js/toolbar.js:273 -msgid "हिंदी" +#: js/activity.js:1418 +msgid "Refresh your browser to change to beginner mode." msgstr "" -#: js/toolbar.js:99 -#: js/toolbar.js:165 -#: js/toolbar.js:219 -#: js/toolbar.js:275 -msgid "igbo" +#: js/activity.js:1477 +msgid "Catching mice" +msgstr "" + +#: js/activity.js:1478 +msgid "Cleaning the instruments" +msgstr "" + +#: js/activity.js:1479 +msgid "Testing key pieces" +msgstr "" + +#: js/activity.js:1480 +msgid "Sight-reading" +msgstr "" + +#: js/activity.js:1481 +msgid "Combining math and music" msgstr "" -#: js/toolbar.js:100 -#: js/toolbar.js:166 -#: js/toolbar.js:220 -#: js/toolbar.js:276 -msgid "عربى" +#: js/activity.js:1482 +msgid "Generating more blocks" msgstr "" -#: js/toolbar.js:101 -#: js/toolbar.js:164 -#: js/toolbar.js:221 -#: js/toolbar.js:274 -msgid "తెలుగు" +#: js/activity.js:1483 +msgid "Do Re Mi Fa Sol La Ti Do" msgstr "" -#: js/toolbar.js:102 -#: js/toolbar.js:167 -#: js/toolbar.js:222 -#: js/toolbar.js:277 -msgid "עִברִית" +#: js/activity.js:1484 +msgid "Tuning string instruments" msgstr "" -#: js/toolbar.js:111 -#: js/toolbar.js:175 -#: js/toolbar.js:176 -#: js/toolbar.js:231 -msgid "Full Screen" +#: js/activity.js:1485 +msgid "Pressing random keys" msgstr "" -#: js/toolbar.js:145 -#: js/toolbar.js:148 -#: js/toolbar.js:200 -#: js/toolbar.js:203 -#: js/toolbar.js:255 -#: js/toolbar.js:258 -#: js/turtledefs.js:558 -msgid "Save turtle artwork as PNG" +#: js/activity.js:1663 +msgid "plugins will be removed upon restart." msgstr "" -#: js/toolbar.js:147 -#: js/toolbar.js:202 -#: js/toolbar.js:257 -#: js/turtledefs.js:554 -msgid "Save turtle artwork as SVG" +#: js/activity.js:1672 +msgid "show Cartesian" msgstr "" -#: js/toolbar.js:154 -#: js/toolbar.js:209 -#: js/toolbar.js:264 -msgid "한국인" +#: js/activity.js:2211 +#: js/palette.js:589 +#: js/blocks/RhythmBlocks.js:923 +#: js/blocks/PitchBlocks.js:442 +#: js/blocks/PitchBlocks.js:1786 +#.TRANS: a numeric mapping of the notes in an octave based on the musical mode +msgid "scale degree" msgstr "" -#: js/toolbar.js:171 -#: js/toolbar.js:227 -msgid "About Turtle Blocks" +#: js/activity.js:2214 +#: js/palette.js:598 +msgid "voice name" msgstr "" -#: js/toolbar.js:429 -#: js/toolbar.js:440 -msgid "Turtle Wrap Off" +#: js/activity.js:2217 +#: js/palette.js:595 +msgid "invert mode" msgstr "" -#: js/toolbar.js:442 -msgid "Turtle Wrap On" +#: js/activity.js:2220 +msgid "output tools" msgstr "" -#: js/block.js:1470 -msgid "matrix" +#: js/activity.js:2223 +msgid "custom note" msgstr "" -#: js/block.js:1477 -#: js/WidgetBlocks.js:1226 -#: plugins/rodi.rtp:324 -msgid "status" +#: js/activity.js:2226 +msgid "accidental name" msgstr "" -#: js/block.js:1484 -msgid "drum mapper" +#: js/activity.js:2229 +#: js/blocks/PitchBlocks.js:855 +msgid "east indian solfege" msgstr "" -#: js/block.js:1491 -msgid "ruler" +#: js/activity.js:2232 +#: js/blocks/PitchBlocks.js:869 +msgid "note name" msgstr "" -#: js/block.js:1498 -#: js/WidgetBlocks.js:327 -#.TRANS: timbre is the character or quality of a musical sound -msgid "timbre" +#: js/activity.js:2235 +#: js/blocks/IntervalsBlocks.js:94 +msgid "temperament name" msgstr "" -#: js/block.js:1505 -msgid "stair" +#: js/activity.js:2238 +#: js/palette.js:592 +msgid "mode name" msgstr "" -#: js/block.js:1512 -#: js/WidgetBlocks.js:577 -#.TRANS: the speed at music is should be played. -msgid "tempo" +#: js/activity.js:2241 +msgid "chord name" msgstr "" -#: js/block.js:1519 -#: js/block.js:1582 -#: js/IntervalsBlocks.js:1268 -#.TRANS: mode, e.g., Major in C Major -msgid "mode" +#: js/activity.js:2244 +#: js/palette.js:615 +msgid "interval name" msgstr "" -#: js/block.js:1526 -msgid "slider" +#: js/activity.js:2247 +msgid "filter type" msgstr "" -#: js/block.js:1533 -#: js/SensorsBlocks.js:1001 -msgid "keyboard" +#: js/activity.js:2250 +msgid "oscillator type" msgstr "" -#: js/block.js:1547 -#: js/WidgetBlocks.js:957 -#: js/WidgetBlocks.js:988 -#.TRANS: widget for subdividing a measure into distinct rhythmic elements -msgid "rhythm maker" +#: js/activity.js:2253 +#: js/blocks.js:2479 +#: js/blocks.js:2487 +msgid "audio file" msgstr "" -#: js/block.js:1554 -#: js/block.js:2182 -#: js/block.js:2236 -#: js/RhythmBlockPaletteBlocks.js:70 -#: js/RhythmBlockPaletteBlocks.js:251 -#: js/RhythmBlockPaletteBlocks.js:484 -#: js/RhythmBlockPaletteBlocks.js:553 -#: js/RhythmBlockPaletteBlocks.js:604 -#: js/RhythmBlockPaletteBlocks.js:874 -#: js/RhythmBlocks.js:33 -#: js/RhythmBlocks.js:356 -#: js/RhythmBlocks.js:766 -#: js/RhythmBlocks.js:806 -#: js/OrnamentBlocks.js:220 -#: js/OrnamentBlocks.js:312 -#: js/MeterBlocks.js:1367 -#: js/DictActions.js:85 -#: js/phrasemaker.js:731 -#: js/phrasemaker.js:2393 -#: js/phrasemaker.js:2436 -#: js/phrasemaker.js:2534 -#.TRANS: the value (e.g., 1/4 note) of the note being played. -msgid "note value" +#: js/activity.js:2256 +#: js/blocks/DrumBlocks.js:32 +msgid "noise name" msgstr "" -#: js/block.js:1561 -#: js/block.js:2110 -#: js/block.js:2133 -#: js/IntervalsBlocks.js:875 -#: js/OrnamentBlocks.js:312 -#.TRANS: calculate a relative step between notes based on semi-tones -msgid "scalar interval" +#: js/activity.js:2259 +#: js/blocks/DrumBlocks.js:75 +msgid "drum name" msgstr "" -#: js/block.js:1568 -#: js/RhythmBlocks.js:148 -msgid "milliseconds" +#: js/activity.js:2262 +#: js/blocks/DrumBlocks.js:119 +msgid "effects name" msgstr "" -#: js/block.js:2180 -#: js/block.js:2184 -#: js/block.js:2234 -#: js/block.js:2345 -#: js/ProgramBlocks.js:1273 -#: js/RhythmBlocks.js:712 -#: js/rhythmruler.js:834 -#: js/rhythmruler.js:961 -msgid "silence" +#: js/activity.js:2265 +msgid "wrap mode" msgstr "" -#: js/block.js:2265 -#: js/block.js:3134 -#: js/block.js:3151 -#: js/activity.js:2336 -#: js/activity.js:2387 -#: js/musicutils.js:2932 -#: js/musicutils.js:4287 -#.TRANS: the note names must be separated by single spaces -#.TRANS: the note names must be separated by single spaces -msgid "ti la sol fa mi re do" +#: js/activity.js:2268 +msgid "load file" msgstr "" -#: js/block.js:2333 -#.TRANS: scalar step -msgid "down" +#: js/activity.js:2435 +#: js/activity.js:5851 +msgid "This block is deprecated." msgstr "" -#: js/block.js:2334 -msgid "up" +#: js/activity.js:2437 +#: js/activity.js:5853 +msgid "Block cannot be found." msgstr "" -#: js/block.js:3477 -#: js/block.js:3490 -#: js/ExtrasBlocks.js:612 -msgid "Cartesian" +#: js/activity.js:2645 +msgid "Saving block artwork" msgstr "" -#: js/block.js:3478 -#: js/block.js:3491 -#: js/ExtrasBlocks.js:616 -msgid "polar" +#: js/activity.js:2656 +msgid "Erase" msgstr "" -#: js/block.js:3479 -#: js/block.js:3492 -#: js/ExtrasBlocks.js:620 -msgid "Cartesian+polar" +#: js/activity.js:2683 +#: js/activity.js:2705 +msgid "Paste" msgstr "" -#: js/block.js:3480 -#: js/block.js:3499 -#: js/ExtrasBlocks.js:649 -msgid "none" +#: js/activity.js:2687 +msgid "Save block help" msgstr "" -#: js/block.js:3493 -#: js/ExtrasBlocks.js:625 -msgid "treble" +#: js/activity.js:2772 +msgid "Jumping to the bottom of the page." msgstr "" -#: js/block.js:3494 -#: js/ExtrasBlocks.js:629 -msgid "grand staff" +#: js/activity.js:2778 +msgid "Scrolling up." msgstr "" -#: js/block.js:3495 -#: js/ExtrasBlocks.js:633 -msgid "mezzo-soprano" +#: js/activity.js:2783 +msgid "Scrolling down." msgstr "" -#: js/block.js:3496 -#: js/ExtrasBlocks.js:637 -msgid "alto" +#: js/activity.js:2788 +msgid "Extracting block" msgstr "" -#: js/block.js:3497 -#: js/ExtrasBlocks.js:641 -msgid "tenor" +#: js/activity.js:2796 +msgid "Moving block up." msgstr "" -#: js/block.js:3498 -#: js/ExtrasBlocks.js:645 -#: js/musicutils.js:736 -#: js/synthutils.js:64 -#.TRANS: musical instrument -msgid "bass" +#: js/activity.js:2817 +msgid "Moving block down." msgstr "" -#: js/block.js:4075 -msgid "Not a number" +#: js/activity.js:2838 +msgid "Moving block left." msgstr "" -#: js/block.js:4082 -msgid "Octave value must be between 1 and 10." +#: js/activity.js:2855 +msgid "Moving block right." msgstr "" -#: js/block.js:4090 -msgid "Numbers can have at most 10 digits." +#: js/activity.js:2870 +msgid "Jump to home position." msgstr "" -#: js/notation.js:353 -msgid "Lilypond cannot process pickup of " +#: js/activity.js:2897 +msgid "Hide blocks" msgstr "" -#: js/turtledefs.js:40 -#.TRANS: put the URL to the guide here, e.g., https://github.com/sugarlabs/turtleblocksjs/tree/master/guide/README.md -msgid "guide url" +#: js/activity.js:4500 +msgid "Click the run button to run the project." msgstr "" -#: js/turtledefs.js:85 -#: js/turtledefs.js:437 -msgid "Turtle Blocks is a Logo-inspired turtle that draws colorful pictures with snap-together visual-programming blocks." +#: js/activity.js:5692 +msgid "Show/hide block" msgstr "" -#: js/turtledefs.js:118 -#: js/turtledefs.js:220 -msgid "search" +#: js/activity.js:5698 +msgid "Expand/collapse blocks" msgstr "" -#: js/turtledefs.js:120 -#: js/turtledefs.js:222 -#: js/WidgetBlocks.js:437 -#: js/MeterBlocks.js:1343 -#.TRANS: musical meter (time signature), e.g., 4:4 -msgid "meter" +#: js/activity.js:5976 +msgid "Could not parse JSON input." msgstr "" -#: js/turtledefs.js:122 -#: js/turtledefs.js:224 -msgid "intervals" +#: js/activity.js:6475 +#: js/activity.js:6580 +#: js/activity.js:6631 +msgid "Cannot load project from the file. Please check the file type." msgstr "" -#: js/turtledefs.js:124 -#: js/turtledefs.js:226 -msgid "ornament" +#: js/activity.js:6917 +msgid "Invalid parameters" msgstr "" -#: js/turtledefs.js:125 -#: js/turtledefs.js:227 -#: js/VolumeBlocks.js:362 -#: js/VolumeBlocks.js:502 -#: js/VolumeBlocks.js:545 -msgid "volume" +#: js/blocks.js:1212 +#: js/blocks.js:3444 +#: js/blocks.js:3834 +#: js/blocks.js:3865 +#: js/blocks.js:3914 +#: js/blocks.js:3949 +#: js/blocks.js:6586 +#: js/palette.js:509 +#: js/palette.js:638 +#: js/palette.js:1105 +#: js/blocks/BoxesBlocks.js:282 +#: js/blocks/BoxesBlocks.js:285 +#: js/blocks/BoxesBlocks.js:405 +#: js/blocks/BoxesBlocks.js:594 +msgid "box" msgstr "" -#: js/turtledefs.js:129 -#: js/turtledefs.js:231 -msgid "boxes" +#: js/blocks.js:1713 +msgid "Consider breaking this stack into parts." msgstr "" -#: js/turtledefs.js:130 -#: js/turtledefs.js:232 -msgid "widgets" +#: js/blocks.js:2472 +#: js/palette.js:653 +#: js/blocks/MediaBlocks.js:602 +msgid "open file" msgstr "" -#: js/turtledefs.js:131 -#: js/turtledefs.js:233 -#: js/phrasemaker.js:824 -msgid "graphics" +#: js/blocks.js:3247 +#: js/palette.js:574 +#: js/blocks/MediaBlocks.js:892 +#: js/blocks/MediaBlocks.js:963 +msgid "text" msgstr "" -#: js/turtledefs.js:134 -#: js/turtledefs.js:236 -msgid "boolean" +#: js/blocks.js:3443 +#: js/palette.js:641 +#: js/palette.js:642 +#: js/blocks/BoxesBlocks.js:514 +msgid "store in box" msgstr "" -#: js/turtledefs.js:137 -#: js/turtledefs.js:239 -#: js/HeapBlocks.js:59 -#: js/status.js:147 -msgid "heap" +#: js/blocks.js:3448 +#: js/blocks.js:3888 +#: js/blocks.js:3923 +#: js/blocks.js:3958 +#: js/blocks.js:5862 +#: js/blocks.js:5883 +#: js/blocks/BoxesBlocks.js:772 +msgid "box1" msgstr "" -#: js/turtledefs.js:138 -#: js/turtledefs.js:240 -#: js/ProgramBlocks.js:495 -#: js/DictBlocks.js:142 -msgid "dictionary" +#: js/blocks.js:3450 +#: js/blocks.js:3890 +#: js/blocks.js:3925 +#: js/blocks.js:3960 +#: js/blocks.js:5864 +#: js/blocks.js:5885 +#: js/blocks/BoxesBlocks.js:663 +msgid "box2" msgstr "" -#: js/turtledefs.js:139 -#: js/turtledefs.js:241 -msgid "ensemble" +#: js/blocks.js:4122 +#: js/palette.js:639 +#: js/palette.js:644 +#: js/palette.js:1041 +#: js/blocks/BoxesBlocks.js:591 +msgid "store in" msgstr "" -#: js/turtledefs.js:140 -#: js/turtledefs.js:242 -msgid "extras" +#: js/blocks.js:4122 +#: js/blocks/BoxesBlocks.js:595 +#: js/blocks/DictBlocks.js:215 +#: js/blocks/DictBlocks.js:289 +#: js/blocks/EnsembleBlocks.js:391 +#: js/blocks/EnsembleBlocks.js:402 +#: js/blocks/MediaBlocks.js:746 +#: js/blocks/PitchBlocks.js:656 +#: js/blocks/PitchBlocks.js:934 +#: js/blocks/PitchBlocks.js:1866 +#: js/blocks/ProgramBlocks.js:390 +#: js/blocks/ProgramBlocks.js:495 +#: js/blocks/ProgramBlocks.js:658 +#: js/blocks/ToneBlocks.js:1025 +msgid "name" msgstr "" -#: js/turtledefs.js:142 -#: js/turtledefs.js:244 -#.TRANS: program as in computer program -#.TRANS: program as in computer program -msgid "program" +#: js/blocks.js:4122 +#: js/blocks/BoxesBlocks.js:75 +#: js/blocks/BoxesBlocks.js:595 +#: js/blocks/DictBlocks.js:289 +#: js/blocks/DictBlocks.js:430 +#: js/blocks/HeapBlocks.js:544 +#: js/blocks/RhythmBlocks.js:1130 +msgid "value" msgstr "" -#: js/turtledefs.js:143 -#: js/turtledefs.js:245 -msgid "my blocks" +#: js/blocks.js:4465 +msgid "Forever loop detected inside a note value block. Unexpected things may happen." msgstr "" -#: js/turtledefs.js:185 -#: js/turtledefs.js:281 -msgid "artwork" +#: js/blocks.js:4988 +msgid "There is no block selected." msgstr "" -#: js/turtledefs.js:185 -#: js/turtledefs.js:281 -msgid "logic" +#: js/blocks.js:5091 +#: js/blocks/MediaBlocks.js:888 +msgid "show" msgstr "" -#: js/turtledefs.js:185 -#: js/turtledefs.js:281 -msgid "music" +#: js/blocks.js:5094 +#: js/blocks/MediaBlocks.js:803 +#.TRANS: Avatar is the image used to determine the appearance of the mouse. +msgid "avatar" msgstr "" -#: js/turtledefs.js:187 -#: js/turtledefs.js:463 -msgid "Music Blocks is a collection of tools for exploring fundamental musical concepts in a fun way." +#: js/blocks.js:5097 +#: js/blocks/ToneBlocks.js:1010 +#: js/widgets/sampler.js:975 +#.TRANS: The sound sample that the user uploads. +msgid "sample" msgstr "" -#: js/turtledefs.js:436 -msgid "Welcome to Turtle Blocks" +#: js/lilypond.js:606 +msgid "brown rat" msgstr "" -#: js/turtledefs.js:438 -#: js/turtledefs.js:465 -#: js/turtledefs.js:774 -#: js/turtledefs.js:805 -msgid "The current version is" +#: js/lilypond.js:607 +msgid "mole" msgstr "" -#: js/turtledefs.js:446 -#: js/turtledefs.js:483 -msgid "Click the run button to run the project in fast mode." +#: js/lilypond.js:608 +msgid "chipmunk" msgstr "" -#: js/turtledefs.js:452 -msgid "Stop the turtle." +#: js/lilypond.js:609 +msgid "red squirrel" msgstr "" -#: js/turtledefs.js:454 -#: js/turtledefs.js:491 -msgid "You can also type Alt-S to stop." +#: js/lilypond.js:610 +msgid "guinea pig" +msgstr "" + +#: js/lilypond.js:611 +msgid "capybara" msgstr "" -#: js/turtledefs.js:462 -#: js/help.js:333 -msgid "Welcome to Music Blocks" +#: js/lilypond.js:612 +msgid "coypu" msgstr "" -#: js/turtledefs.js:472 -#: js/help.js:334 -msgid "Meet Mr. Mouse!" +#: js/lilypond.js:613 +msgid "black rat" msgstr "" -#: js/turtledefs.js:473 -msgid "Mr Mouse is our Music Blocks conductor." +#: js/lilypond.js:614 +msgid "grey squirrel" msgstr "" -#: js/turtledefs.js:475 -msgid "Mr Mouse encourages you to explore Music Blocks." +#: js/lilypond.js:615 +msgid "flying squirrel" msgstr "" -#: js/turtledefs.js:477 -msgid "Let us start our tour!" +#: js/lilypond.js:616 +msgid "bat" msgstr "" -#: js/turtledefs.js:489 -msgid "Stop the music (and the mice)." +#: js/lilypond.js:749 +#: js/lilypond.js:913 +#: js/lilypond.js:951 +#: js/blocks/ActionBlocks.js:1256 +#: js/blocks/ExtrasBlocks.js:556 +msgid "start drum" msgstr "" -#: js/turtledefs.js:499 -msgid "Record your project as video." +#: js/logo.js:61 +msgid "Not a valid pitch name" msgstr "" -#: js/turtledefs.js:505 -msgid "Toggle Fullscreen mode." +#: js/logo.js:507 +#: js/blocks/ProgramBlocks.js:258 +#: js/blocks/ProgramBlocks.js:427 +msgid "You must select a file." msgstr "" -#: js/turtledefs.js:511 -msgid "Initialize a new project." +#: js/logo.js:1696 +msgid "Playback is ready." msgstr "" -#: js/turtledefs.js:517 -msgid "You can also load projects from the file system." +#: js/macros.js:711 +#: js/utils/musicutils.js:1162 +#: js/utils/synthutils.js:202 +#.TRANS: animal sound effect +msgid "duck" msgstr "" -#: js/turtledefs.js:522 -#: js/StringHelper.js:46 -msgid "Delete" +#: js/notation.js:353 +msgid "Lilypond cannot process pickup of " msgstr "" -#: js/turtledefs.js:523 -msgid "To delete a block, just right-click on it, then you will be able to see the delete option" +#: js/palette.js:571 +msgid "grid" msgstr "" -#: js/turtledefs.js:528 -#: js/activity.js:2270 -#: js/LocalCard.js:31 -msgid "Copy" +#: js/palette.js:580 +msgid "effect" msgstr "" -#: js/turtledefs.js:529 -msgid "To copy a block, just right-click on it, then you will be able to see the copy option" +#: js/palette.js:586 +msgid "sargam" msgstr "" -#: js/turtledefs.js:535 -msgid "To extract a block, just right-click on it, then you will be able to see the extract option" +#: js/palette.js:601 +#: js/blocks/PitchBlocks.js:1209 +msgid "custom pitch" msgstr "" -#: js/turtledefs.js:542 -#: js/turtledefs.js:552 -#: js/turtledefs.js:573 -msgid "Save your project to a file." +#: js/palette.js:609 +msgid "accidental" msgstr "" -#: js/turtledefs.js:549 -#: js/turtledefs.js:570 -msgid "save" +#: js/palette.js:633 +#: js/blocks/PitchBlocks.js:405 +msgid "pitch converter" msgstr "" -#: js/turtledefs.js:556 -#: js/turtledefs.js:577 -msgid "Save graphics from your project to as SVG." +#: js/piemenus.js:200 +#: js/utils/musicutils.js:1187 +#: js/utils/musicutils.js:1207 +#: js/widgets/musickeyboard.js:2341 +#: js/widgets/phrasemaker.js:1908 +#: js/widgets/sampler.js:810 +#.TRANS: double sharp is a music term related to pitch +msgid "double sharp" msgstr "" -#: js/turtledefs.js:560 -#: js/turtledefs.js:581 -msgid "Save graphics from your project as PNG." +#: js/piemenus.js:201 +#: js/utils/musicutils.js:1185 +#: js/utils/musicutils.js:1208 +#: js/blocks/PitchBlocks.js:1539 +#: js/turtleactions/PitchActions.js:323 +#: js/widgets/musickeyboard.js:2342 +#: js/widgets/phrasemaker.js:1909 +#: js/widgets/sampler.js:811 +#.TRANS: sharp is a music term related to pitch +#.TRANS: sharp is a half-step up in pitch +msgid "sharp" msgstr "" -#: js/turtledefs.js:564 -#: js/turtledefs.js:597 -msgid "Save block artwork as an SVG file." +#: js/piemenus.js:202 +#: js/utils/musicutils.js:1183 +#: js/utils/musicutils.js:1209 +#: js/widgets/musickeyboard.js:2343 +#: js/widgets/phrasemaker.js:1910 +#: js/widgets/sampler.js:812 +#.TRANS: natural is a music term related to pitch +msgid "natural" msgstr "" -#: js/turtledefs.js:585 -msgid "Save audio from your project as WAV." +#: js/piemenus.js:203 +#: js/utils/musicutils.js:1181 +#: js/utils/musicutils.js:1210 +#: js/blocks/PitchBlocks.js:1498 +#: js/turtleactions/PitchActions.js:326 +#: js/widgets/musickeyboard.js:2344 +#: js/widgets/phrasemaker.js:1911 +#: js/widgets/sampler.js:813 +#.TRANS: flat is a music term related to pitch +#.TRANS: flat is a half-step down in pitch +msgid "flat" msgstr "" -#: js/turtledefs.js:589 -msgid "Save your project to as an ABC file." +#: js/piemenus.js:204 +#: js/utils/musicutils.js:1179 +#: js/utils/musicutils.js:1211 +#: js/widgets/musickeyboard.js:2345 +#: js/widgets/phrasemaker.js:1912 +#: js/widgets/sampler.js:814 +#.TRANS: double flat is a music term related to pitch +msgid "double flat" msgstr "" -#: js/turtledefs.js:593 -msgid "Save your project to as a Lilypond file." +#: js/piemenus.js:2864 +#: js/utils/musicutils.js:1006 +#: js/blocks/PitchBlocks.js:1385 +#.TRANS: unison is a music term related to intervals +#.TRANS: unison means the note is the same as the current note +msgid "unison" msgstr "" -#: js/turtledefs.js:604 -msgid "Load samples from server" +#: js/piemenus.js:3018 +#: js/piemenus.js:3091 +#: js/utils/musicutils.js:1014 +#: js/utils/musicutils.js:1189 +#: js/utils/musicutils.js:1326 +#.TRANS: major is a music term related to intervals and mode +msgid "major" msgstr "" -#: js/turtledefs.js:605 -msgid "This button opens a viewer for loading example projects." +#: js/piemenus.js:3018 +#: js/piemenus.js:3091 +#: js/utils/musicutils.js:1032 +#.TRANS: modal scale for music +msgid "ionian" msgstr "" -#: js/turtledefs.js:611 -msgid "Palette buttons" +#: js/piemenus.js:3020 +#: js/piemenus.js:3095 +#: js/utils/musicutils.js:1012 +#: js/utils/musicutils.js:1190 +#: js/utils/musicutils.js:1323 +#.TRANS: minor is a music term related to intervals and mode +msgid "minor" msgstr "" -#: js/turtledefs.js:612 -msgid "This toolbar contains the palette buttons including Rhythm Pitch Tone Action and more." +#: js/piemenus.js:3020 +#: js/piemenus.js:3095 +#: js/utils/musicutils.js:1042 +#.TRANS: modal scale for music +msgid "aeolian" msgstr "" -#: js/turtledefs.js:614 -msgid "Click to show the palettes of blocks and drag blocks from the palettes onto the canvas to use them." +#: js/piemenus.js:3410 +msgid "Duplicate" msgstr "" -#: js/turtledefs.js:620 -msgid "Cartesian/Polar" +#: js/piemenus.js:3412 +msgid "Move to trash" msgstr "" -#: js/turtledefs.js:621 -msgid "Show or hide a coordinate grid." +#: js/piemenus.js:3413 +#: js/widgets/timbre.js:968 +#: planet/js/StringHelper.js:69 +msgid "Close" msgstr "" -#: js/turtledefs.js:627 -msgid "Clear the screen and return the mice to their initial positions." +#: js/piemenus.js:3419 +msgid "Save stack" msgstr "" -#: js/turtledefs.js:633 -msgid "Collapse the graphics window." +#: js/piemenus.js:3449 +msgid "In order to copy a sample, you must reload the widget, import the sample again, and export it." msgstr "" -#: js/turtledefs.js:638 -#: js/activity.js:4256 -#: js/activity.js:4256 -msgid "Home" +#: js/piemenus.js:3812 +msgid "You have chosen key " msgstr "" -#: js/turtledefs.js:639 -msgid "Return all blocks to the center of the screen." +#: js/piemenus.js:3816 +msgid " for your pitch preview." msgstr "" -#: js/turtledefs.js:644 -msgid "Show/hide blocks" +#: js/turtle-singer.js:1363 +#.TRANS: partials are weighted components in a harmonic series +msgid "You must have at least one Partial block inside of a Weighted-partial block" msgstr "" -#: js/turtledefs.js:645 -msgid "Hide or show the blocks and the palettes." +#: js/turtle-singer.js:2077 +msgid "synth cannot play chords." msgstr "" -#: js/turtledefs.js:650 -msgid "Expand/collapse collapsable blocks" +#: js/utils/musicutils.js:505 +#: js/utils/musicutils.js:645 +#: js/widgets/pitchdrummatrix.js:228 +#: js/widgets/musickeyboard.js:2885 +msgid "rest" msgstr "" -#: js/turtledefs.js:651 -msgid "Expand or collapse start and action stacks." +#: js/utils/musicutils.js:689 +msgid "Perfect unison" msgstr "" -#: js/turtledefs.js:658 -#: js/activity.js:4265 -msgid "Decrease block size" +#: js/utils/musicutils.js:689 +msgid "Diminished second" msgstr "" -#: js/turtledefs.js:659 -msgid "Decrease the size of the blocks." +#: js/utils/musicutils.js:690 +msgid "Minor second" msgstr "" -#: js/turtledefs.js:664 -#: js/activity.js:4267 -msgid "Increase block size" +#: js/utils/musicutils.js:690 +msgid "Augmented unison" msgstr "" -#: js/turtledefs.js:665 -msgid "Increase the size of the blocks." +#: js/utils/musicutils.js:691 +msgid "Major second" msgstr "" -#: js/turtledefs.js:670 -msgid "Expand/collapse option toolbar" +#: js/utils/musicutils.js:691 +msgid "Diminished third" msgstr "" -#: js/turtledefs.js:671 -msgid "Click this button to expand or collapse the auxillary toolbar." +#: js/utils/musicutils.js:692 +msgid "Minor third" msgstr "" -#: js/turtledefs.js:676 -msgid "Run slow" +#: js/utils/musicutils.js:692 +msgid "Augmented second" msgstr "" -#: js/turtledefs.js:677 -msgid "Click to run the project in slow mode." +#: js/utils/musicutils.js:693 +msgid "Major third" msgstr "" -#: js/turtledefs.js:683 -msgid "Click to run the project step by step." +#: js/utils/musicutils.js:693 +msgid "Diminished fourth" msgstr "" -#: js/turtledefs.js:690 -msgid "Display statistics about your Music project." +#: js/utils/musicutils.js:694 +msgid "Perfect fourth" msgstr "" -#: js/turtledefs.js:697 -msgid "Delete a selected plugin." +#: js/utils/musicutils.js:694 +msgid "Augmented third" msgstr "" -#: js/turtledefs.js:704 -msgid "Enable scrolling" +#: js/utils/musicutils.js:695 +msgid "Diminished fifth" msgstr "" -#: js/turtledefs.js:705 -msgid "You can scroll the blocks on the canvas." +#: js/utils/musicutils.js:695 +msgid "Augmented fourth" msgstr "" -#: js/turtledefs.js:714 -msgid "Wrap Turtle" +#: js/utils/musicutils.js:696 +msgid "Perfect fifth" msgstr "" -#: js/turtledefs.js:715 -msgid "Turn Turtle wrapping On or Off." +#: js/utils/musicutils.js:696 +msgid "Diminished sixth" msgstr "" -#: js/turtledefs.js:725 -msgid "Restore blocks from the trash." +#: js/utils/musicutils.js:697 +msgid "Minor sixth" msgstr "" -#: js/turtledefs.js:732 -msgid "Switch mode" +#: js/utils/musicutils.js:697 +msgid "Augmented fifth" msgstr "" -#: js/turtledefs.js:733 -msgid "Switch between beginner and advance modes." +#: js/utils/musicutils.js:698 +msgid "Major sixth" msgstr "" -#: js/turtledefs.js:739 -msgid "Select your language preference." +#: js/utils/musicutils.js:698 +msgid "Diminished seventh" msgstr "" -#: js/turtledefs.js:745 -msgid "Keyboard shortcuts" +#: js/utils/musicutils.js:699 +msgid "Minor seventh" msgstr "" -#: js/turtledefs.js:746 -msgid "You can type d to create a do block and r to create a re block etc." +#: js/utils/musicutils.js:699 +msgid "Augmented sixth" msgstr "" -#: js/turtledefs.js:753 -msgid "Show these messages." +#: js/utils/musicutils.js:700 +msgid "Major seventh" msgstr "" -#: js/turtledefs.js:759 -#: js/turtledefs.js:790 -#: js/help.js:335 -msgid "Guide" +#: js/utils/musicutils.js:700 +msgid "Diminished octave" msgstr "" -#: js/turtledefs.js:760 -msgid "A detailed guide to Turtle Blocks is available." +#: js/utils/musicutils.js:701 +msgid "Perfect octave" msgstr "" -#: js/turtledefs.js:764 -msgid "Turtle Blocks Guide" +#: js/utils/musicutils.js:701 +msgid "Augmented seventh" msgstr "" -#: js/turtledefs.js:767 -#: js/turtledefs.js:798 -#: js/help.js:336 -msgid "About" +#: js/utils/musicutils.js:702 +msgid "Minor ninth" msgstr "" -#: js/turtledefs.js:768 -msgid "Turtle Blocks is an open source collection of tools for exploring musical concepts." +#: js/utils/musicutils.js:702 +msgid "Augmented octave" msgstr "" -#: js/turtledefs.js:770 -msgid "A full list of contributors can be found in the Turtle Blocks GitHub repository." +#: js/utils/musicutils.js:703 +msgid "Major ninth" msgstr "" -#: js/turtledefs.js:772 -msgid "Turtle Blocks is licensed under the AGPL." +#: js/utils/musicutils.js:703 +msgid "Diminished tenth" msgstr "" -#: js/turtledefs.js:780 -msgid "Turtle Blocks GitHub repository" +#: js/utils/musicutils.js:704 +msgid "Minor tenth" msgstr "" -#: js/turtledefs.js:783 -#: js/turtledefs.js:814 -#: js/help.js:337 -#: js/help.js:359 -msgid "Congratulations." +#: js/utils/musicutils.js:704 +msgid "Augmented ninth" msgstr "" -#: js/turtledefs.js:784 -msgid "You have finished the tour. Please enjoy Turtle Blocks!" +#: js/utils/musicutils.js:705 +msgid "Major tenth" msgstr "" -#: js/turtledefs.js:791 -msgid "A detailed guide to Music Blocks is available." +#: js/utils/musicutils.js:705 +msgid "Diminished eleventh" msgstr "" -#: js/turtledefs.js:795 -#: js/SaveInterface.js:76 -msgid "Music Blocks Guide" +#: js/utils/musicutils.js:706 +msgid "Perfect eleventh" msgstr "" -#: js/turtledefs.js:799 -msgid "Music Blocks is an open source collection of tools for exploring musical concepts." +#: js/utils/musicutils.js:706 +msgid "Augmented tenth" msgstr "" -#: js/turtledefs.js:801 -msgid "A full list of contributors can be found in the Music Blocks GitHub repository." +#: js/utils/musicutils.js:707 +msgid "Diminished twelfth" msgstr "" -#: js/turtledefs.js:803 -msgid "Music Blocks is licensed under the AGPL." +#: js/utils/musicutils.js:707 +msgid "Augmented eleventh" msgstr "" -#: js/turtledefs.js:811 -msgid "Music Blocks GitHub repository" +#: js/utils/musicutils.js:708 +msgid "Perfect twelfth" msgstr "" -#: js/turtledefs.js:815 -msgid "You have finished the tour. Please enjoy Music Blocks!" +#: js/utils/musicutils.js:708 +msgid "Diminished thirteenth" msgstr "" -#: js/activity.js:369 -msgid "Search for blocks" +#: js/utils/musicutils.js:709 +msgid "Minor thirteenth" msgstr "" -#: js/activity.js:1145 -msgid "Refresh your browser to change to advanced mode." +#: js/utils/musicutils.js:709 +msgid "Augmented fifth, plus an octave" msgstr "" -#: js/activity.js:1150 -msgid "Refresh your browser to change to beginner mode." +#: js/utils/musicutils.js:710 +msgid "Major thirteenth" msgstr "" -#: js/activity.js:1184 -msgid "Catching mice" +#: js/utils/musicutils.js:710 +msgid "Diminished seventh, plus an octave" msgstr "" -#: js/activity.js:1185 -msgid "Cleaning the instruments" +#: js/utils/musicutils.js:838 +#.TRANS: ordinal number. Please keep exactly one space between each number. +msgid "1st 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th" msgstr "" -#: js/activity.js:1186 -msgid "Testing key pieces" +#: js/utils/musicutils.js:1008 +#: js/utils/musicutils.js:1191 +#: js/utils/musicutils.js:1325 +#.TRANS: augmented is a music term related to intervals +msgid "augmented" msgstr "" -#: js/activity.js:1187 -msgid "Sight-reading" +#: js/utils/musicutils.js:1010 +#: js/utils/musicutils.js:1192 +#: js/utils/musicutils.js:1324 +#.TRANS: diminished is a music term related to intervals and mode +msgid "diminished" msgstr "" -#: js/activity.js:1188 -msgid "Combining math and music" +#: js/utils/musicutils.js:1016 +#: js/utils/musicutils.js:1322 +#: js/blocks/IntervalsBlocks.js:649 +#: js/turtleactions/IntervalsActions.js:120 +#: js/turtleactions/IntervalsActions.js:124 +#.TRANS: perfect is a music term related to intervals +msgid "perfect" +msgstr "" + +#: js/utils/musicutils.js:1018 +#.TRANS: twelve semi-tone scale for music +msgid "chromatic" msgstr "" -#: js/activity.js:1189 -msgid "Generating more blocks" +#: js/utils/musicutils.js:1019 +msgid "algerian" msgstr "" -#: js/activity.js:1190 -msgid "Do Re Mi Fa Sol La Ti Do" +#: js/utils/musicutils.js:1020 +msgid "spanish" msgstr "" -#: js/activity.js:1191 -msgid "Tuning string instruments" +#: js/utils/musicutils.js:1022 +#.TRANS: modal scale in music +msgid "octatonic" msgstr "" -#: js/activity.js:1192 -msgid "Pressing random keys" +#: js/utils/musicutils.js:1024 +#.TRANS: harmonic major scale in music +msgid "harmonic major" msgstr "" -#: js/activity.js:1351 -msgid "plugins will be removed upon restart." +#: js/utils/musicutils.js:1026 +#.TRANS: natural minor scales in music +msgid "natural minor" msgstr "" -#: js/activity.js:1360 -msgid "show Cartesian" +#: js/utils/musicutils.js:1028 +#.TRANS: harmonic minor scale in music +msgid "harmonic minor" msgstr "" -#: js/activity.js:1842 -msgid "output tools" +#: js/utils/musicutils.js:1030 +#.TRANS: melodic minor scale in music +msgid "melodic minor" msgstr "" -#: js/activity.js:1845 -msgid "custom note" +#: js/utils/musicutils.js:1034 +#.TRANS: modal scale for music +msgid "dorian" msgstr "" -#: js/activity.js:1848 -msgid "accidental name" +#: js/utils/musicutils.js:1036 +#.TRANS: modal scale for music +msgid "phrygian" msgstr "" -#: js/activity.js:1851 -#: js/PitchBlocks.js:855 -msgid "east indian solfege" +#: js/utils/musicutils.js:1038 +#.TRANS: modal scale for music +msgid "lydian" msgstr "" -#: js/activity.js:1854 -#: js/PitchBlocks.js:869 -msgid "note name" +#: js/utils/musicutils.js:1040 +#.TRANS: modal scale for music +msgid "mixolydian" msgstr "" -#: js/activity.js:1857 -#: js/IntervalsBlocks.js:94 -msgid "temperament name" +#: js/utils/musicutils.js:1044 +#.TRANS: modal scale for music +msgid "locrian" msgstr "" -#: js/activity.js:1863 -msgid "chord name" +#: js/utils/musicutils.js:1046 +#.TRANS: minor jazz scale for music +msgid "jazz minor" msgstr "" -#: js/activity.js:1869 -msgid "filter type" +#: js/utils/musicutils.js:1048 +#.TRANS: bebop scale for music +msgid "bebop" msgstr "" -#: js/activity.js:1872 -msgid "oscillator type" +#: js/utils/musicutils.js:1049 +msgid "arabic" msgstr "" -#: js/activity.js:1878 -#: js/DrumBlocks.js:32 -msgid "noise name" +#: js/utils/musicutils.js:1050 +msgid "byzantine" msgstr "" -#: js/activity.js:1881 -#: js/DrumBlocks.js:75 -msgid "drum name" +#: js/utils/musicutils.js:1052 +#.TRANS: musical scale for music by Verdi +msgid "enigmatic" msgstr "" -#: js/activity.js:1884 -#: js/DrumBlocks.js:119 -msgid "effects name" +#: js/utils/musicutils.js:1053 +msgid "ethiopian" msgstr "" -#: js/activity.js:1887 -msgid "wrap mode" +#: js/utils/musicutils.js:1055 +#.TRANS: Ethiopic scale for music +msgid "geez" msgstr "" -#: js/activity.js:1890 -msgid "load file" +#: js/utils/musicutils.js:1056 +msgid "hindu" msgstr "" -#: js/activity.js:2056 -msgid "This block is deprecated." +#: js/utils/musicutils.js:1057 +msgid "hungarian" msgstr "" -#: js/activity.js:2058 -msgid "Block cannot be found." +#: js/utils/musicutils.js:1059 +#.TRANS: minor Romanian scale for music +msgid "romanian minor" msgstr "" -#: js/activity.js:2266 -msgid "Saving block artwork" +#: js/utils/musicutils.js:1060 +msgid "spanish gypsy" msgstr "" -#: js/activity.js:2277 -msgid "Erase" +#: js/utils/musicutils.js:1062 +#.TRANS: musical scale for Mid-Eastern music +msgid "maqam" msgstr "" -#: js/activity.js:2301 -#: js/activity.js:2323 -msgid "Paste" +#: js/utils/musicutils.js:1064 +#.TRANS: minor blues scale for music +msgid "minor blues" msgstr "" -#: js/activity.js:2305 -msgid "Save block help" +#: js/utils/musicutils.js:1066 +#.TRANS: major blues scale for music +msgid "major blues" msgstr "" -#: js/activity.js:2390 -msgid "Jumping to the bottom of the page." +#: js/utils/musicutils.js:1067 +msgid "whole tone" msgstr "" -#: js/activity.js:2396 -msgid "Scrolling up." +#: js/utils/musicutils.js:1069 +#.TRANS: pentatonic is a general term that means "five note scale". This scale is typically known as "minor pentatonic" +msgid "minor pentatonic" msgstr "" -#: js/activity.js:2401 -msgid "Scrolling down." +#: js/utils/musicutils.js:1071 +#.TRANS: pentatonic is a general term that means "five note scale". This scale is typically known as "major pentatonic" +msgid "major pentatonic" msgstr "" -#: js/activity.js:2406 -msgid "Extracting block" +#: js/utils/musicutils.js:1072 +msgid "chinese" msgstr "" -#: js/activity.js:2414 -msgid "Moving block up." +#: js/utils/musicutils.js:1073 +msgid "egyptian" msgstr "" -#: js/activity.js:2435 -msgid "Moving block down." +#: js/utils/musicutils.js:1075 +#.TRANS: https://en.wikipedia.org/wiki/Hirajoshi_scale NOTE: There are three different versions of this scale +msgid "hirajoshi" msgstr "" -#: js/activity.js:2456 -msgid "Moving block left." +#: js/utils/musicutils.js:1076 +msgid "Japan" msgstr "" -#: js/activity.js:2473 -msgid "Moving block right." +#: js/utils/musicutils.js:1078 +#.TRANS: https://en.wikipedia.org/wiki/In_scale and https://en.wikipedia.org/wiki/Sakura_Sakura +msgid "in" msgstr "" -#: js/activity.js:2488 -msgid "Jump to home position." +#: js/utils/musicutils.js:1080 +#.TRANS: https://en.wikipedia.org/wiki/Miny%C5%8D_scale +msgid "minyo" msgstr "" -#: js/activity.js:2515 -msgid "Hide blocks" +#: js/utils/musicutils.js:1082 +#.TRANS: Italian mathematician +msgid "fibonacci" msgstr "" -#: js/activity.js:3389 -msgid "Click the run button to run the project." +#: js/utils/musicutils.js:1083 +#: js/utils/musicutils.js:1134 +#: js/utils/musicutils.js:1177 +#: js/utils/musicutils.js:1199 +#: js/utils/synthutils.js:134 +#: js/blocks/IntervalsBlocks.js:1124 +#: js/blocks/ToneBlocks.js:946 +#: js/blocks/VolumeBlocks.js:411 +#: js/blocks/WidgetBlocks.js:399 +#: js/blocks/WidgetBlocks.js:404 +#: js/turtleactions/VolumeActions.js:218 +#: js/widgets/modewidget.js:919 +#.TRANS: customize voice +msgid "custom" msgstr "" -#: js/activity.js:3456 -#: js/SaveInterface.js:131 -#: js/SaveInterface.js:204 -#: js/SaveInterface.js:262 -#: js/SaveInterface.js:389 -#: js/SaveInterface.js:417 -#: js/ProjectStorage.js:27 -#: js/GlobalPlanet.js:467 -#: js/GlobalPlanet.js:469 -#: js/GlobalPlanet.js:495 -#.TRANS: default project title when saving as Lilypond -msgid "My Project" +#: js/utils/musicutils.js:1085 +#: js/utils/musicutils.js:1531 +#: js/blocks/WidgetBlocks.js:176 +#.TRANS: highpass filter +msgid "highpass" msgstr "" -#: js/activity.js:4261 -msgid "Show/hide block" +#: js/utils/musicutils.js:1087 +#: js/utils/musicutils.js:1532 +#.TRANS: lowpass filter +msgid "lowpass" msgstr "" -#: js/activity.js:4263 -msgid "Expand/collapse blocks" +#: js/utils/musicutils.js:1089 +#: js/utils/musicutils.js:1533 +#.TRANS: bandpass filter +msgid "bandpass" msgstr "" -#: js/activity.js:4381 -msgid "Could not parse JSON input." +#: js/utils/musicutils.js:1091 +#: js/utils/musicutils.js:1534 +#.TRANS: high-shelf filter +msgid "highshelf" msgstr "" -#: js/activity.js:4684 -#: js/activity.js:4771 -#: js/activity.js:4821 -msgid "Cannot load project from the file. Please check the file type." +#: js/utils/musicutils.js:1093 +#: js/utils/musicutils.js:1535 +#.TRANS: low-shelf filter +msgid "lowshelf" msgstr "" -#: js/activity.js:5051 -msgid "Invalid parameters" +#: js/utils/musicutils.js:1095 +#: js/utils/musicutils.js:1536 +#.TRANS: notch-shelf filter +msgid "notch" msgstr "" -#: js/turtle-singer.js:1334 -#.TRANS: partials are weighted components in a harmonic series -msgid "You must have at least one Partial block inside of a Weighted-partial block" +#: js/utils/musicutils.js:1097 +#: js/utils/musicutils.js:1537 +#.TRANS: all-pass filter +msgid "allpass" msgstr "" -#: js/turtle-singer.js:2048 -msgid "synth cannot play chords." +#: js/utils/musicutils.js:1099 +#: js/utils/musicutils.js:1538 +#.TRANS: peaking filter +msgid "peaking" msgstr "" -#: js/lilypond.js:614 -msgid "brown rat" +#: js/utils/musicutils.js:1100 +#: js/utils/musicutils.js:1546 +#: js/utils/synthutils.js:126 +#: js/blocks/PitchBlocks.js:85 +#.TRANS: sine wave +msgid "sine" msgstr "" -#: js/lilypond.js:615 -msgid "mole" +#: js/utils/musicutils.js:1101 +#: js/utils/musicutils.js:1547 +#: js/utils/synthutils.js:128 +#: js/blocks/PitchBlocks.js:39 +#.TRANS: square wave +msgid "square" msgstr "" -#: js/lilypond.js:616 -msgid "chipmunk" +#: js/utils/musicutils.js:1102 +#: js/utils/musicutils.js:1548 +#: js/utils/synthutils.js:132 +#: js/blocks/PitchBlocks.js:62 +#: js/blocks/ToneBlocks.js:39 +#.TRANS: triangle wave +msgid "triangle" msgstr "" -#: js/lilypond.js:617 -msgid "red squirrel" +#: js/utils/musicutils.js:1103 +#: js/utils/musicutils.js:1549 +#: js/utils/synthutils.js:130 +#: js/blocks/PitchBlocks.js:108 +#.TRANS: sawtooth wave +msgid "sawtooth" msgstr "" -#: js/lilypond.js:618 -msgid "guinea pig" +#: js/utils/musicutils.js:1105 +#: js/utils/musicutils.js:1312 +#: js/blocks/PitchBlocks.js:931 +#: js/blocks/PitchBlocks.js:937 +#: js/turtleactions/PitchActions.js:469 +#.TRANS: even numbers +#.TRANS: invert based on even or odd number or musical scale +msgid "even" msgstr "" -#: js/lilypond.js:619 -msgid "capybara" +#: js/utils/musicutils.js:1107 +#: js/utils/musicutils.js:1313 +#: js/blocks/PitchBlocks.js:937 +#: js/turtleactions/PitchActions.js:471 +#.TRANS: odd numbers +msgid "odd" msgstr "" -#: js/lilypond.js:620 -msgid "coypu" +#: js/utils/musicutils.js:1108 +#: js/utils/musicutils.js:1314 +#: js/blocks/PitchBlocks.js:937 +#: js/turtleactions/PitchActions.js:473 +msgid "scalar" msgstr "" -#: js/lilypond.js:621 -msgid "black rat" +#: js/utils/musicutils.js:1109 +#: js/utils/synthutils.js:72 +#: js/blocks/VolumeBlocks.js:47 +#.TRANS: musical instrument +msgid "piano" msgstr "" -#: js/lilypond.js:622 -msgid "grey squirrel" +#: js/utils/musicutils.js:1110 +#: js/utils/synthutils.js:74 +#.TRANS: musical instrument +msgid "violin" msgstr "" -#: js/lilypond.js:623 -msgid "flying squirrel" +#: js/utils/musicutils.js:1111 +#: js/utils/synthutils.js:76 +#.TRANS: viola musical instrument +msgid "viola" msgstr "" -#: js/lilypond.js:624 -msgid "bat" +#: js/utils/musicutils.js:1112 +#: js/utils/synthutils.js:114 +#.TRANS: xylophone musical instrument +msgid "xylophone" msgstr "" -#: js/lilypond.js:757 -#: js/lilypond.js:921 -#: js/lilypond.js:959 -#: js/ActionBlocks.js:1256 -#: js/ExtrasBlocks.js:553 -msgid "start drum" +#: js/utils/musicutils.js:1113 +#: js/utils/synthutils.js:136 +#.TRANS: vibraphone musical instrument +msgid "vibraphone" msgstr "" -#: js/SaveInterface.js:59 -#: js/SaveInterface.js:61 -#: js/SaveInterface.js:93 -msgid "Music Blocks Project" +#: js/utils/musicutils.js:1114 +#: js/utils/synthutils.js:78 +#.TRANS: musical instrument +msgid "cello" msgstr "" -#: js/SaveInterface.js:63 -msgid "This project was created in Music Blocks" +#: js/utils/musicutils.js:1116 +#: js/utils/synthutils.js:82 +#.TRANS: viola musical instrument +msgid "double bass" msgstr "" -#: js/SaveInterface.js:67 -msgid "Music Blocks is a Free/Libre Software application." +#: js/utils/musicutils.js:1117 +#: js/utils/synthutils.js:84 +#: js/widgets/rhythmruler.js:2511 +#.TRANS: musical instrument +msgid "guitar" msgstr "" -#: js/SaveInterface.js:69 -msgid "The source code can be accessed at" +#: js/utils/musicutils.js:1118 +#: js/utils/synthutils.js:86 +#.TRANS: musical instrument +msgid "acoustic guitar" msgstr "" -#: js/SaveInterface.js:72 -msgid "For more information, please consult the" +#: js/utils/musicutils.js:1119 +#: js/utils/synthutils.js:88 +#.TRANS: musical instrument +msgid "flute" msgstr "" -#: js/SaveInterface.js:83 -msgid "Alternatively, open the file in Music Blocks using the Load project button." +#: js/utils/musicutils.js:1120 +#: js/utils/synthutils.js:90 +#.TRANS: musical instrument +msgid "clarinet" msgstr "" -#: js/SaveInterface.js:85 -msgid "Project Code" +#: js/utils/musicutils.js:1121 +#: js/utils/synthutils.js:92 +#.TRANS: musical instrument +msgid "saxophone" msgstr "" -#: js/SaveInterface.js:87 -msgid "This code stores data about the blocks in a project." +#: js/utils/musicutils.js:1122 +#: js/utils/synthutils.js:94 +#.TRANS: musical instrument +msgid "tuba" msgstr "" -#: js/SaveInterface.js:89 -msgid "Show" +#: js/utils/musicutils.js:1123 +#: js/utils/synthutils.js:96 +#.TRANS: musical instrument +msgid "trumpet" msgstr "" -#: js/SaveInterface.js:91 -msgid "Hide" +#: js/utils/musicutils.js:1124 +#: js/utils/synthutils.js:98 +#.TRANS: musical instrument +msgid "oboe" msgstr "" -#: js/SaveInterface.js:197 -#: js/SaveInterface.js:58 -msgid "No description provided" +#: js/utils/musicutils.js:1125 +#: js/utils/synthutils.js:100 +#.TRANS: musical instrument +msgid "trombone" msgstr "" -#: js/SaveInterface.js:332 -msgid "Your recording is in progress." +#: js/utils/musicutils.js:1126 +#: js/utils/synthutils.js:116 +#.TRANS: polytone synthesizer +msgid "electronic synth" msgstr "" -#: js/SaveInterface.js:401 -#.TRANS: File name prompt for save as Lilypond -msgid "File name" +#: js/utils/musicutils.js:1127 +#: js/utils/synthutils.js:118 +#.TRANS: simple monotone synthesizer +msgid "simple 1" msgstr "" -#: js/SaveInterface.js:403 -#: js/StringHelper.js:39 -#.TRANS: Project title prompt for save as Lilypond -msgid "Project title" +#: js/utils/musicutils.js:1128 +msgid "simple 2" msgstr "" -#: js/SaveInterface.js:405 -#.TRANS: Project title prompt for save as Lilypond -msgid "Project author" +#: js/utils/musicutils.js:1129 +msgid "simple 3" msgstr "" -#: js/SaveInterface.js:407 -#.TRANS: MIDI prompt for save as Lilypond -msgid "Include MIDI output?" +#: js/utils/musicutils.js:1130 +msgid "simple 4" msgstr "" -#: js/SaveInterface.js:409 -#.TRANS: Guitar prompt for save as Lilypond -msgid "Include guitar tablature output?" +#: js/utils/musicutils.js:1131 +#: js/utils/synthutils.js:58 +#: js/blocks/DrumBlocks.js:191 +#.TRANS: white noise synthesizer +msgid "white noise" msgstr "" -#: js/SaveInterface.js:411 -#.TRANS: Lilypond is a scripting language for generating sheet music -msgid "Save as Lilypond" +#: js/utils/musicutils.js:1132 +#: js/utils/synthutils.js:60 +#.TRANS: brown noise synthesizer +msgid "brown noise" msgstr "" -#: js/SaveInterface.js:426 -#: js/EnsembleBlocks.js:75 -#: js/EnsembleBlocks.js:154 -#: js/EnsembleBlocks.js:216 -#: js/EnsembleBlocks.js:302 -#: js/EnsembleBlocks.js:348 -#: js/EnsembleBlocks.js:389 -#: js/EnsembleBlocks.js:441 -#: js/EnsembleBlocks.js:490 -#: js/EnsembleBlocks.js:536 -#: js/EnsembleBlocks.js:583 -#: js/EnsembleBlocks.js:637 -#: js/EnsembleBlocks.js:753 -#: js/EnsembleBlocks.js:840 -#: js/EnsembleBlocks.js:899 -#: js/EnsembleBlocks.js:942 -#: js/EnsembleBlocks.js:1212 -#: js/EnsembleBlocks.js:1280 -#.TRANS: default project author when saving as Lilypond -msgid "Mr. Mouse" +#: js/utils/musicutils.js:1133 +#: js/utils/synthutils.js:62 +#.TRANS: pink noise synthesizer +msgid "pink noise" msgstr "" -#: js/SaveInterface.js:573 -msgid "The Lilypond code is copied to clipboard. You can paste it here: " +#: js/utils/musicutils.js:1135 +#: js/utils/synthutils.js:148 +#: js/widgets/rhythmruler.js:2057 +#: js/widgets/rhythmruler.js:2319 +#.TRANS: musical instrument +msgid "snare drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:50 -#: js/RhythmBlockPaletteBlocks.js:232 -#.TRANS: rhythm block -#.TRANS: translate "rhythm1" as rhythm -msgid "rhythm1" +#: js/utils/musicutils.js:1136 +#: js/utils/synthutils.js:150 +#.TRANS: musical instrument +msgid "kick drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:70 -#: js/RhythmBlockPaletteBlocks.js:251 -#: js/RhythmBlockPaletteBlocks.js:484 -#: js/RhythmBlockPaletteBlocks.js:553 -#: js/RhythmBlockPaletteBlocks.js:874 -msgid "number of notes" +#: js/utils/musicutils.js:1137 +#: js/utils/synthutils.js:152 +#.TRANS: musical instrument +msgid "tom tom" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:126 -msgid "polyphonic rhythm" +#: js/utils/musicutils.js:1138 +#: js/utils/synthutils.js:154 +#.TRANS: musical instrument +msgid "floor tom" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:218 -msgid "The Rhythm block is used to generate rhythm patterns." +#: js/utils/musicutils.js:1139 +#: js/utils/synthutils.js:156 +#.TRANS: musical instrument +msgid "bass drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:279 -msgid "1/64 note" +#: js/utils/musicutils.js:1140 +#: js/utils/synthutils.js:158 +#.TRANS: a drum made from an inverted cup +msgid "cup drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:303 -msgid "1/32 note" +#: js/utils/musicutils.js:1141 +#: js/utils/synthutils.js:160 +#.TRANS: musical instrument +msgid "darbuka drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:331 -msgid "1/16 note" +#: js/utils/musicutils.js:1142 +#: js/utils/synthutils.js:164 +#.TRANS: musical instrument +msgid "hi hat" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:359 -msgid "eighth note" +#: js/utils/musicutils.js:1143 +#: js/utils/synthutils.js:166 +#.TRANS: a small metal bell +msgid "ride bell" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:387 -msgid "quarter note" +#: js/utils/musicutils.js:1144 +#: js/utils/synthutils.js:168 +#.TRANS: musical instrument +msgid "cow bell" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:415 -msgid "half note" +#: js/utils/musicutils.js:1145 +msgid "japanese drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:443 -msgid "whole note" +#: js/utils/musicutils.js:1146 +#: js/utils/synthutils.js:174 +#.TRANS: musical instrument +msgid "japanese bell" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:481 -#: js/RhythmBlockPaletteBlocks.js:550 -#: js/RhythmBlockPaletteBlocks.js:601 -#.TRANS: A tuplet is a note value divided into irregular time values. -msgid "tuplet" +#: js/utils/musicutils.js:1147 +#: js/utils/synthutils.js:170 +#.TRANS: musical instrument +msgid "triangle bell" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:767 -msgid "septuplet" +#: js/utils/musicutils.js:1148 +#: js/utils/synthutils.js:172 +#.TRANS: musical instrument +msgid "finger cymbals" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:795 -msgid "quintuplet" +#: js/utils/musicutils.js:1149 +#: js/utils/synthutils.js:176 +#.TRANS: a musically tuned set of bells +msgid "chime" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:823 -msgid "triplet" +#: js/utils/musicutils.js:1150 +#: js/utils/synthutils.js:178 +#.TRANS: a musical instrument +msgid "gong" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:850 -msgid "simple tuplet" +#: js/utils/musicutils.js:1151 +#: js/utils/synthutils.js:180 +#.TRANS: sound effect +msgid "clang" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:860 -msgid "Tuplets are a collection of notes that get scaled to a specific duration." +#: js/utils/musicutils.js:1152 +#: js/utils/synthutils.js:182 +#.TRANS: sound effect +msgid "crash" msgstr "" -#: js/WidgetBlocks.js:71 -#.TRANS: sound envelope (ADSR) -msgid "envelope" +#: js/utils/musicutils.js:1153 +#: js/utils/synthutils.js:184 +#.TRANS: sound effect +msgid "bottle" msgstr "" -#: js/WidgetBlocks.js:79 -#.TRANS: Attack time is the time taken for initial run-up of level from nil to peak, beginning when the key is first pressed. -msgid "attack" +#: js/utils/musicutils.js:1154 +#: js/utils/synthutils.js:186 +#.TRANS: sound effect +msgid "clap" msgstr "" -#: js/WidgetBlocks.js:81 -#.TRANS: Decay time is the time taken for the subsequent run down from the attack level to the designated sustain level. -msgid "decay" +#: js/utils/musicutils.js:1155 +#: js/utils/synthutils.js:188 +#.TRANS: sound effect +msgid "slap" msgstr "" -#: js/WidgetBlocks.js:83 -#.TRANS: Sustain level is the level during the main sequence of the sound's duration, until the key is released. -msgid "sustain" +#: js/utils/musicutils.js:1156 +#: js/utils/synthutils.js:190 +#.TRANS: sound effect +msgid "splash" msgstr "" -#: js/WidgetBlocks.js:85 -#.TRANS: Release time is the time taken for the level to decay from the sustain level to zero after the key is released. -msgid "release" +#: js/utils/musicutils.js:1157 +#: js/utils/synthutils.js:192 +#.TRANS: sound effect +msgid "bubbles" msgstr "" -#: js/WidgetBlocks.js:96 -msgid "Attack value should be from 0 to 100." +#: js/utils/musicutils.js:1158 +#: js/utils/synthutils.js:194 +#.TRANS: sound effect +msgid "raindrop" msgstr "" -#: js/WidgetBlocks.js:99 -msgid "Decay value should be from 0 to 100." +#: js/utils/musicutils.js:1159 +#: js/utils/synthutils.js:196 +#.TRANS: animal sound effect +msgid "cat" msgstr "" -#: js/WidgetBlocks.js:102 -msgid "Sustain value should be from 0 to 100." +#: js/utils/musicutils.js:1160 +#: js/utils/synthutils.js:198 +#.TRANS: animal sound effect +msgid "cricket" msgstr "" -#: js/WidgetBlocks.js:105 -msgid "Release value should be from 0-100." +#: js/utils/musicutils.js:1161 +#: js/utils/synthutils.js:200 +#.TRANS: animal sound effect +msgid "dog" msgstr "" -#: js/WidgetBlocks.js:121 -msgid "You are adding multiple envelope blocks." +#: js/utils/musicutils.js:1163 +#: js/utils/synthutils.js:102 +#.TRANS: musical instrument +msgid "banjo" msgstr "" -#: js/WidgetBlocks.js:144 -#.TRANS: a filter removes some unwanted components from a signal -msgid "filter" +#: js/utils/musicutils.js:1164 +#: js/utils/synthutils.js:104 +#.TRANS: musical instrument +msgid "koto" msgstr "" -#: js/WidgetBlocks.js:149 -#: js/musicutils.js:706 -#: js/musicutils.js:1105 -#.TRANS: highpass filter -msgid "highpass" +#: js/utils/musicutils.js:1165 +#: js/utils/synthutils.js:106 +#.TRANS: musical instrument +msgid "dulcimer" msgstr "" -#: js/WidgetBlocks.js:152 -#: js/ToneBlocks.js:42 -#: js/timbre.js:1558 -#: js/timbre.js:1808 -#.TRANS: type of filter, e.g., lowpass, highpass, etc. -#.TRANS: there are different types (sine, triangle, square...) of oscillators. -msgid "type" +#: js/utils/musicutils.js:1166 +#: js/utils/synthutils.js:108 +#.TRANS: musical instrument +msgid "electric guitar" msgstr "" -#: js/WidgetBlocks.js:154 -#: js/timbre.js:1818 -#.TRANS: rolloff is the steepness of a change in frequency. -msgid "rolloff" +#: js/utils/musicutils.js:1167 +#: js/utils/synthutils.js:110 +#.TRANS: musical instrument +msgid "bassoon" msgstr "" -#: js/WidgetBlocks.js:155 -#: js/MediaBlocks.js:692 -#: js/temperament.js:382 -#: js/temperament.js:417 -#: js/temperament.js:477 -#: js/temperament.js:485 -#: js/temperament.js:1348 -#: js/timbre.js:1842 -msgid "frequency" +#: js/utils/musicutils.js:1168 +#: js/utils/synthutils.js:112 +#.TRANS: musical instrument +msgid "celeste" msgstr "" -#: js/WidgetBlocks.js:179 -#.TRANS: rolloff is the steepness of a change in frequency. -msgid "Rolloff value should be either -12, -24, -48, or -96 decibels/octave." +#: js/utils/musicutils.js:1170 +#: js/widgets/temperament.js:787 +#.TRANS: musical temperament +msgid "equal" msgstr "" -#: js/WidgetBlocks.js:211 -msgid "The Temperament tool is used to define custom tuning." +#: js/utils/musicutils.js:1172 +#.TRANS: musical temperament +msgid "Pythagorean" msgstr "" -#: js/WidgetBlocks.js:277 -#: js/sampler.js:329 -msgid "Upload a sample and adjust its pitch center." +#: js/utils/musicutils.js:1174 +#.TRANS: musical temperament +msgid "just intonation" msgstr "" -#: js/WidgetBlocks.js:284 -#.TRANS: the speed at music is should be played. -msgid "sampler" +#: js/utils/musicutils.js:1176 +#.TRANS: musical temperament +msgid "meantone" msgstr "" -#: js/WidgetBlocks.js:329 -#: js/WidgetBlocks.js:334 -#: js/IntervalsBlocks.js:928 -#: js/VolumeBlocks.js:411 -#: js/ToneBlocks.js:946 -#: js/VolumeActions.js:218 -#: js/musicutils.js:704 -#: js/musicutils.js:755 -#: js/musicutils.js:798 -#: js/musicutils.js:820 -#: js/musicutils.js:1136 -#: js/synthutils.js:118 -#: js/modewidget.js:919 -#.TRANS: customize voice -msgid "custom" +#: js/utils/musicutils.js:1193 +msgid "major 7th" msgstr "" -#: js/WidgetBlocks.js:432 -msgid "The Meter block opens a tool to select strong beats for the meter." +#: js/utils/musicutils.js:1194 +msgid "minor 7th" msgstr "" -#: js/WidgetBlocks.js:473 -msgid "The oscilloscope block opens a tool to visualize waveforms." +#: js/utils/musicutils.js:1195 +msgid "dominant 7th" msgstr "" -#: js/WidgetBlocks.js:478 -msgid "oscilloscope" +#: js/utils/musicutils.js:1196 +msgid "minor-major 7th" msgstr "" -#: js/WidgetBlocks.js:530 -msgid "The Custom mode block opens a tool to explore musical mode (the spacing of the notes in a scale)." +#: js/utils/musicutils.js:1197 +msgid "fully-diminished 7th" msgstr "" -#: js/WidgetBlocks.js:536 -#.TRANS: musical mode is the pattern of half-steps in an octave, e.g., Major or Minor modes -msgid "custom mode" +#: js/utils/musicutils.js:1198 +msgid "half-diminished 7th" msgstr "" -#: js/WidgetBlocks.js:570 -msgid "The Tempo block opens a metronome to visualize the beat." +#: js/utils/musicutils.js:1557 +#: js/utils/musicutils.js:1569 +msgid "Equal (12EDO)" msgstr "" -#: js/WidgetBlocks.js:617 -msgid "The Arpeggio Widget is used to compose chord sequences." +#: js/utils/musicutils.js:1558 +#: js/utils/musicutils.js:1570 +msgid "5-limit Just Intonation" msgstr "" -#: js/WidgetBlocks.js:623 -#: js/IntervalsBlocks.js:683 -msgid "arpeggio" +#: js/utils/musicutils.js:1559 +#: js/utils/musicutils.js:1571 +msgid "Pythagorean (3-limit JI)" msgstr "" -#: js/WidgetBlocks.js:677 -msgid "The Pitch drum matrix is used to map pitches to drum sounds." +#: js/utils/musicutils.js:1560 +#: js/utils/musicutils.js:1561 +#: js/utils/musicutils.js:1572 +#: js/utils/musicutils.js:1573 +msgid "Meantone" msgstr "" -#: js/WidgetBlocks.js:682 -#.TRANS: makes a mapping between pitches and drum sounds -msgid "pitch-drum mapper" +#: js/utils/musicutils.js:1574 +msgid "Custom" msgstr "" -#: js/WidgetBlocks.js:724 -msgid "You must have at least one pitch block and one drum block in the matrix." +#: js/utils/musicutils.js:5387 +#: js/utils/musicutils.js:5430 +msgid "current" msgstr "" -#: js/WidgetBlocks.js:746 -msgid "The Pitch slider tool to is used to generate pitches at selected frequencies." +#: js/utils/musicutils.js:5390 +#: js/utils/musicutils.js:5421 +msgid "next" msgstr "" -#: js/WidgetBlocks.js:751 -#.TRANS: widget to generate pitches using a slider -msgid "pitch slider" +#: js/utils/musicutils.js:5393 +#: js/utils/musicutils.js:5426 +msgid "previous" msgstr "" -#: js/WidgetBlocks.js:788 -msgid "chromatic keyboard" +#: js/utils/synthutils.js:120 +#.TRANS: simple monotone synthesizer +msgid "simple-2" msgstr "" -#: js/WidgetBlocks.js:815 -#: js/WidgetBlocks.js:874 -#.TRANS: widget to generate pitches using a slider -msgid "music keyboard" +#: js/utils/synthutils.js:122 +#.TRANS: simple monotone synthesizer +msgid "simple-3" msgstr "" -#: js/WidgetBlocks.js:859 -#: js/WidgetBlocks.js:866 -msgid "The Music keyboard block opens a piano keyboard that can be used to create notes." +#: js/utils/synthutils.js:124 +#.TRANS: simple monotone synthesizer +msgid "simple-4" msgstr "" -#: js/WidgetBlocks.js:910 -msgid "The Pitch staircase tool to is used to generate pitches from a given ratio." +#: js/utils/synthutils.js:162 +#.TRANS: musical instrument +msgid "taiko" msgstr "" -#: js/WidgetBlocks.js:917 -#.TRANS: generate a progressive sequence of pitches -msgid "pitch staircase" +#: js/blocks/ActionBlocks.js:58 +msgid "The Return block will return a value from an action." msgstr "" -#: js/WidgetBlocks.js:982 -msgid "The Rhythm Maker block opens a tool to create drum machines." +#: js/blocks/ActionBlocks.js:75 +msgid "return" msgstr "" -#: js/WidgetBlocks.js:1036 -msgid "G major scale" +#: js/blocks/ActionBlocks.js:128 +msgid "The Return to URL block will return a value to a webpage." msgstr "" -#: js/WidgetBlocks.js:1064 -msgid "C major scale" +#: js/blocks/ActionBlocks.js:145 +msgid "return to URL" msgstr "" -#: js/WidgetBlocks.js:1097 -msgid "The Phrase Maker block opens a tool to create musical phrases." +#: js/blocks/ActionBlocks.js:233 +#: js/blocks/ActionBlocks.js:290 +#: js/blocks/ActionBlocks.js:501 +#: js/blocks/ActionBlocks.js:688 +msgid "The Calculate block returns a value calculated by an action." msgstr "" -#: js/WidgetBlocks.js:1104 -#.TRANS: assigns pitch to a sequence of beats to generate a melody -msgid "phrase maker" +#: js/blocks/ActionBlocks.js:251 +#: js/blocks/ActionBlocks.js:517 +#: js/blocks/ActionBlocks.js:707 +msgid "calculate" msgstr "" -#: js/WidgetBlocks.js:1168 -msgid "You must have at least one pitch block and one rhythm block in the matrix." +#: js/blocks/ActionBlocks.js:376 +#: js/blocks/ActionBlocks.js:593 +#: js/blocks/ActionBlocks.js:942 +#: js/blocks/ActionBlocks.js:1389 +#.TRANS: do is the do something or take an action. +msgid "The Do block is used to initiate an action." msgstr "" -#: js/WidgetBlocks.js:1220 -msgid "The Status block opens a tool for inspecting the status of Music Blocks as it is running." +#: js/blocks/ActionBlocks.js:390 +#: js/blocks/ActionBlocks.js:610 +#: js/blocks/ActionBlocks.js:959 +#: js/blocks/ActionBlocks.js:1048 +#: js/blocks/MeterBlocks.js:769 +msgid "do1" msgstr "" -#: js/IntervalsBlocks.js:45 -msgid "set temperament" +#: js/blocks/ActionBlocks.js:390 +#: js/blocks/ActionBlocks.js:610 +#: js/blocks/ActionBlocks.js:959 +#: js/blocks/ActionBlocks.js:1048 +#: js/blocks/FlowBlocks.js:742 +#: js/blocks/FlowBlocks.js:822 +#: js/blocks/MeterBlocks.js:769 +msgid "do" msgstr "" -#: js/IntervalsBlocks.js:63 -#: js/MediaBlocks.js:746 -#: js/PitchBlocks.js:657 -#: js/PitchBlocks.js:933 -#: js/PitchBlocks.js:972 -#: js/PitchBlocks.js:1005 -#: js/PitchBlocks.js:1166 -#: js/PitchBlocks.js:1679 -#: js/PitchBlocks.js:1720 -#: js/PitchBlocks.js:1827 -#: js/ToneBlocks.js:1025 -#.TRANS: adjusts the shift up or down by one octave (twelve half-steps in the interval between two notes, one having twice or half the frequency in Hz of the other.) -msgid "octave" +#: js/blocks/ActionBlocks.js:791 +#: js/blocks/ActionBlocks.js:865 +msgid "The Arg block contains the value of an argument passed to an action." msgstr "" -#: js/IntervalsBlocks.js:99 -msgid "The Temperament name block is used to select a tuning method." +#: js/blocks/ActionBlocks.js:806 +#: js/blocks/ActionBlocks.js:878 +msgid "arg" msgstr "" -#: js/IntervalsBlocks.js:161 -msgid "doubly" +#: js/blocks/ActionBlocks.js:836 +#: js/blocks/ActionBlocks.js:900 +#: js/blocks/ActionBlocks.js:908 +msgid "Invalid argument" msgstr "" -#: js/IntervalsBlocks.js:166 -msgid "The Doubly block will double the size of an interval." +#: js/blocks/ActionBlocks.js:944 +msgid "In the example, it is used with the One of block to choose a random phase." msgstr "" -#: js/IntervalsBlocks.js:262 -msgid "interval number" +#: js/blocks/ActionBlocks.js:1019 +#: js/blocks/ActionBlocks.js:1026 +msgid "The Listen block is used to listen for an event such as a mouse click." msgstr "" -#: js/IntervalsBlocks.js:330 -#.TRANS: measure the distance between two pitches in semi-tones -msgid "semi-tone interval measure" +#: js/blocks/ActionBlocks.js:1028 +msgid "When the event happens, an action is taken." msgstr "" -#: js/IntervalsBlocks.js:397 -#: js/IntervalsBlocks.js:513 -msgid "You must use two pitch blocks when measuring an interval." +#: js/blocks/ActionBlocks.js:1045 +msgid "on" msgstr "" -#: js/IntervalsBlocks.js:439 -msgid "The Scalar interval block measures the distance between two notes in the current key and mode." +#: js/blocks/ActionBlocks.js:1048 +#: js/blocks/ActionBlocks.js:1049 +#: js/blocks/ActionBlocks.js:1153 +msgid "event" msgstr "" -#: js/IntervalsBlocks.js:445 -#.TRANS: measure the distance between two pitches in steps of musical scale -msgid "scalar interval measure" +#: js/blocks/ActionBlocks.js:1133 +msgid "The Broadcast block is used to trigger an event." msgstr "" -#: js/IntervalsBlocks.js:592 -#: js/musicutils.js:637 -#: js/musicutils.js:908 -#.TRANS: perfect is a music term related to intervals -msgid "perfect" +#: js/blocks/ActionBlocks.js:1151 +msgid "broadcast" msgstr "" -#: js/IntervalsBlocks.js:621 -msgid "In the figure, we add sol# to sol." +#: js/blocks/ActionBlocks.js:1208 +msgid "Each Start block is a separate voice." msgstr "" -#: js/IntervalsBlocks.js:627 -#: js/OrnamentBlocks.js:220 -#.TRANS: calculate a relative step between notes based on semi-tones -msgid "semi-tone interval" +#: js/blocks/ActionBlocks.js:1304 +msgid "It is often used for storing a phrase of music that is repeated." msgstr "" -#: js/IntervalsBlocks.js:676 -msgid "The output of the example is: do, mi, sol, sol, ti, mi" +#: js/blocks/ActionBlocks.js:1495 +msgid "define temperament" msgstr "" -#: js/IntervalsBlocks.js:735 -msgid "The Chord block calculates common chords." +#: js/blocks/BooleanBlocks.js:44 +msgid "The Not block is the logical not operator." msgstr "" -#: js/IntervalsBlocks.js:737 -msgid "In the figure, we generate a C-major chord." +#: js/blocks/BooleanBlocks.js:62 +msgid "not" msgstr "" -#: js/IntervalsBlocks.js:742 -msgid "chord" +#: js/blocks/BooleanBlocks.js:134 +msgid "The And block is the logical and operator." msgstr "" -#: js/IntervalsBlocks.js:794 -msgid "The Ratio Interval block calculates an interval based on a ratio." +#: js/blocks/BooleanBlocks.js:152 +msgid "and" msgstr "" -#: js/IntervalsBlocks.js:799 -msgid "ratio interval" +#: js/blocks/BooleanBlocks.js:218 +msgid "The Or block is the logical or operator." msgstr "" -#: js/IntervalsBlocks.js:868 -msgid "In the figure, we add la to sol." +#: js/blocks/BooleanBlocks.js:236 +msgid "or" msgstr "" -#: js/IntervalsBlocks.js:924 -#.TRANS: define a custom mode -msgid "define mode" +#: js/blocks/BooleanBlocks.js:302 +msgid "The XOR block is the logical XOR operator." msgstr "" -#: js/IntervalsBlocks.js:977 -msgid "movable Do" +#: js/blocks/BooleanBlocks.js:320 +msgid "xor" msgstr "" -#: js/IntervalsBlocks.js:1028 -#.TRANS: mode length is the number of notes in the mode, e.g., 7 for major and minor scales; 12 for chromatic scales -msgid "mode length" +#: js/blocks/BooleanBlocks.js:808 +msgid "The Equal block returns True if the two numbers are equal." msgstr "" -#: js/IntervalsBlocks.js:1037 -msgid "The Mode length block is the number of notes in the current scale." +#: js/blocks/BooleanBlocks.js:909 +msgid "The Not-equal-to block returns True if the two numbers are not equal to each other." msgstr "" -#: js/IntervalsBlocks.js:1039 -msgid "Most Western scales have 7 notes." +#: js/blocks/BooleanBlocks.js:1008 +msgid "The Boolean block is used to specify true or false." msgstr "" -#: js/IntervalsBlocks.js:1088 -#.TRANS: the mode in music is 'major', 'minor', etc. -msgid "current mode" +#: js/blocks/BoxesBlocks.js:53 +#: js/blocks/BoxesBlocks.js:59 +msgid "The Add-to block is used to add to the value stored in a box." msgstr "" -#: js/IntervalsBlocks.js:1141 -#.TRANS: the key is a group of pitches with which a music composition is created -msgid "current key" +#: js/blocks/BoxesBlocks.js:61 +msgid "It can also be used with other blocks such as Color and Pen size." msgstr "" -#: js/IntervalsBlocks.js:1193 -#: js/IntervalsBlocks.js:1238 -#.TRANS: set the key and mode, e.g. C Major -msgid "set key" +#: js/blocks/BoxesBlocks.js:73 +msgid "add" msgstr "" -#: js/IntervalsBlocks.js:1247 -#: js/IntervalsBlocks.js:1253 -msgid "The Set key block is used to set the key and mode," +#: js/blocks/BoxesBlocks.js:75 +#: js/widgets/temperament.js:857 +msgid "to" msgstr "" -#: js/IntervalsBlocks.js:1253 -msgid "eg C Major" +#: js/blocks/BoxesBlocks.js:75 +#: js/blocks/BoxesBlocks.js:595 +#: js/blocks/HeapBlocks.js:544 +msgid "value1" msgstr "" -#: js/IntervalsBlocks.js:1266 -#: js/DictBlocks.js:215 -#: js/DictBlocks.js:216 -#: js/DictBlocks.js:289 -#: js/DictBlocks.js:290 -#: js/DictBlocks.js:357 -#: js/DictBlocks.js:430 -#: js/DictBlocks.js:431 -#.TRANS: key, e.g., C in C Major -msgid "key" +#: js/blocks/BoxesBlocks.js:118 +msgid "Block does not support incrementing." msgstr "" -#: js/ActionBlocks.js:58 -msgid "The Return block will return a value from an action." +#: js/blocks/BoxesBlocks.js:152 +msgid "The Add-1-to block adds one to the value stored in a box." msgstr "" -#: js/ActionBlocks.js:75 -msgid "return" +#: js/blocks/BoxesBlocks.js:163 +msgid "add 1 to" msgstr "" -#: js/ActionBlocks.js:128 -msgid "The Return to URL block will return a value to a webpage." +#: js/blocks/BoxesBlocks.js:211 +msgid "The Subtract-1-from block subtracts one from the value stored in a box." msgstr "" -#: js/ActionBlocks.js:145 -msgid "return to URL" +#: js/blocks/BoxesBlocks.js:222 +msgid "subtract 1 from" msgstr "" -#: js/ActionBlocks.js:233 -#: js/ActionBlocks.js:290 -#: js/ActionBlocks.js:501 -#: js/ActionBlocks.js:688 -msgid "The Calculate block returns a value calculated by an action." +#: js/blocks/BoxesBlocks.js:270 +#: js/blocks/BoxesBlocks.js:387 +msgid "The Box block returns the value stored in a box." msgstr "" -#: js/ActionBlocks.js:251 -#: js/ActionBlocks.js:517 -#: js/ActionBlocks.js:707 -msgid "calculate" +#: js/blocks/BoxesBlocks.js:500 +#: js/blocks/BoxesBlocks.js:576 +msgid "The Store in block will store a value in a box." msgstr "" -#: js/ActionBlocks.js:376 -#: js/ActionBlocks.js:593 -#: js/ActionBlocks.js:942 -#: js/ActionBlocks.js:1389 -#.TRANS: do is the do something or take an action. -msgid "The Do block is used to initiate an action." +#: js/blocks/BoxesBlocks.js:595 +#: js/blocks/EnsembleBlocks.js:391 +#: js/blocks/EnsembleBlocks.js:402 +msgid "name1" msgstr "" -#: js/ActionBlocks.js:390 -#: js/ActionBlocks.js:610 -#: js/ActionBlocks.js:959 -#: js/ActionBlocks.js:1048 -#: js/MeterBlocks.js:769 -msgid "do1" +#: js/blocks/BoxesBlocks.js:652 +msgid "The Box2 block returns the value stored in Box2." msgstr "" -#: js/ActionBlocks.js:390 -#: js/ActionBlocks.js:610 -#: js/ActionBlocks.js:959 -#: js/ActionBlocks.js:1048 -#: js/FlowBlocks.js:742 -#: js/FlowBlocks.js:822 -#: js/MeterBlocks.js:769 -msgid "do" +#: js/blocks/BoxesBlocks.js:703 +msgid "The Store in Box2 block is used to store a value in Box2." msgstr "" -#: js/ActionBlocks.js:791 -#: js/ActionBlocks.js:865 -msgid "The Arg block contains the value of an argument passed to an action." +#: js/blocks/BoxesBlocks.js:715 +msgid "store in box2" msgstr "" -#: js/ActionBlocks.js:806 -#: js/ActionBlocks.js:878 -msgid "arg" +#: js/blocks/BoxesBlocks.js:761 +msgid "The Box1 block returns the value stored in Box1." msgstr "" -#: js/ActionBlocks.js:836 -#: js/ActionBlocks.js:900 -#: js/ActionBlocks.js:908 -msgid "Invalid argument" +#: js/blocks/BoxesBlocks.js:812 +msgid "The Store in Box1 block is used to store a value in Box1." msgstr "" -#: js/ActionBlocks.js:944 -msgid "In the example, it is used with the One of block to choose a random phase." +#: js/blocks/BoxesBlocks.js:826 +msgid "store in box1" msgstr "" -#: js/ActionBlocks.js:1019 -#: js/ActionBlocks.js:1026 -msgid "The Listen block is used to listen for an event such as a mouse click." +#: js/blocks/DictBlocks.js:77 +msgid "show dictionary" msgstr "" -#: js/ActionBlocks.js:1028 -msgid "When the event happens, an action is taken." +#: js/blocks/DictBlocks.js:80 +#: js/blocks/DictBlocks.js:145 +#: js/blocks/DictBlocks.js:216 +#: js/blocks/DictBlocks.js:290 +#: js/blocks/ProgramBlocks.js:396 +#: js/blocks/ProgramBlocks.js:501 +#: js/blocks/ProgramBlocks.js:664 +msgid "My Dictionary" msgstr "" -#: js/ActionBlocks.js:1045 -msgid "on" +#: js/blocks/DictBlocks.js:129 +msgid "The Dictionary block returns a dictionary." msgstr "" -#: js/ActionBlocks.js:1048 -#: js/ActionBlocks.js:1049 -#: js/ActionBlocks.js:1153 -msgid "event" +#: js/blocks/DictBlocks.js:197 +#: js/blocks/DictBlocks.js:339 +msgid "The Get-dict block returns a value in the dictionary for a specified key." msgstr "" -#: js/ActionBlocks.js:1133 -msgid "The Broadcast block is used to trigger an event." +#: js/blocks/DictBlocks.js:212 +#: js/blocks/DictBlocks.js:354 +#.TRANS: retrieve a value from the dictionary with a given key +msgid "get value" msgstr "" -#: js/ActionBlocks.js:1151 -msgid "broadcast" +#: js/blocks/DictBlocks.js:215 +#: js/blocks/DictBlocks.js:216 +#: js/blocks/DictBlocks.js:289 +#: js/blocks/DictBlocks.js:290 +#: js/blocks/DictBlocks.js:357 +#: js/blocks/DictBlocks.js:430 +#: js/blocks/DictBlocks.js:431 +msgid "key2" msgstr "" -#: js/ActionBlocks.js:1208 -msgid "Each Start block is a separate voice." +#: js/blocks/DictBlocks.js:215 +#: js/blocks/DictBlocks.js:216 +#: js/blocks/DictBlocks.js:289 +#: js/blocks/DictBlocks.js:290 +#: js/blocks/DictBlocks.js:357 +#: js/blocks/DictBlocks.js:430 +#: js/blocks/DictBlocks.js:431 +#: js/blocks/IntervalsBlocks.js:1462 +#.TRANS: key, e.g., C in C Major +msgid "key" msgstr "" -#: js/ActionBlocks.js:1304 -msgid "It is often used for storing a phrase of music that is repeated." +#: js/blocks/DictBlocks.js:271 +#: js/blocks/DictBlocks.js:411 +msgid "The Set-dict block sets a value in the dictionary for a specified key." msgstr "" -#: js/ActionBlocks.js:1495 -msgid "define temperament" +#: js/blocks/DictBlocks.js:286 +#: js/blocks/DictBlocks.js:427 +#.TRANS: set a value in the dictionary for a given key +msgid "set value" msgstr "" -#: js/EnsembleBlocks.js:66 +#: js/blocks/EnsembleBlocks.js:66 msgid "mouse index heap" msgstr "" -#: js/EnsembleBlocks.js:68 +#: js/blocks/EnsembleBlocks.js:68 msgid "The Mouse index heap block returns a value in the heap at a specified location for a specified mouse." msgstr "" -#: js/EnsembleBlocks.js:77 -#: js/EnsembleBlocks.js:1080 +#: js/blocks/EnsembleBlocks.js:77 +#: js/blocks/EnsembleBlocks.js:1080 msgid "mouse name" msgstr "" -#: js/EnsembleBlocks.js:77 -#: js/EnsembleBlocks.js:92 -#: js/HeapBlocks.js:544 +#: js/blocks/EnsembleBlocks.js:77 +#: js/blocks/EnsembleBlocks.js:92 +#: js/blocks/HeapBlocks.js:544 #.TRANS: value1 is a numeric value (JAPANESE ONLY) msgid "index" msgstr "" -#: js/EnsembleBlocks.js:80 +#: js/blocks/EnsembleBlocks.js:80 msgid "turtle index heap" msgstr "" -#: js/EnsembleBlocks.js:82 +#: js/blocks/EnsembleBlocks.js:82 msgid "The Turtle index heap block returns a value in the heap at a specified location for a specified turtle." msgstr "" -#: js/EnsembleBlocks.js:90 -#: js/EnsembleBlocks.js:167 -#: js/EnsembleBlocks.js:230 -#: js/EnsembleBlocks.js:316 -#: js/EnsembleBlocks.js:362 -#: js/EnsembleBlocks.js:400 -#: js/EnsembleBlocks.js:454 -#: js/EnsembleBlocks.js:504 -#: js/EnsembleBlocks.js:550 -#: js/EnsembleBlocks.js:597 -#: js/EnsembleBlocks.js:651 -#: js/EnsembleBlocks.js:763 -#: js/EnsembleBlocks.js:854 -#: js/EnsembleBlocks.js:915 -#: js/EnsembleBlocks.js:955 -#: js/EnsembleBlocks.js:1219 -#: js/EnsembleBlocks.js:1293 +#: js/blocks/EnsembleBlocks.js:90 +#: js/blocks/EnsembleBlocks.js:167 +#: js/blocks/EnsembleBlocks.js:230 +#: js/blocks/EnsembleBlocks.js:316 +#: js/blocks/EnsembleBlocks.js:362 +#: js/blocks/EnsembleBlocks.js:400 +#: js/blocks/EnsembleBlocks.js:454 +#: js/blocks/EnsembleBlocks.js:504 +#: js/blocks/EnsembleBlocks.js:550 +#: js/blocks/EnsembleBlocks.js:597 +#: js/blocks/EnsembleBlocks.js:651 +#: js/blocks/EnsembleBlocks.js:763 +#: js/blocks/EnsembleBlocks.js:854 +#: js/blocks/EnsembleBlocks.js:915 +#: js/blocks/EnsembleBlocks.js:955 +#: js/blocks/EnsembleBlocks.js:1219 +#: js/blocks/EnsembleBlocks.js:1293 #.TRANS: Yertle is the name of a turtle. msgid "Yertle" msgstr "" -#: js/EnsembleBlocks.js:92 -#: js/EnsembleBlocks.js:1089 +#: js/blocks/EnsembleBlocks.js:92 +#: js/blocks/EnsembleBlocks.js:1089 msgid "turtle name" msgstr "" -#: js/EnsembleBlocks.js:122 -#: js/EnsembleBlocks.js:1197 -#: js/HeapBlocks.js:474 -#: js/HeapBlocks.js:572 +#: js/blocks/EnsembleBlocks.js:122 +#: js/blocks/EnsembleBlocks.js:1197 +#: js/blocks/HeapBlocks.js:474 +#: js/blocks/HeapBlocks.js:572 msgid "Index must be > 0." msgstr "" -#: js/EnsembleBlocks.js:127 -#: js/HeapBlocks.js:479 -#: js/HeapBlocks.js:577 +#: js/blocks/EnsembleBlocks.js:127 +#: js/blocks/HeapBlocks.js:479 +#: js/blocks/HeapBlocks.js:577 msgid "Maximum heap size is 1000." msgstr "" -#: js/EnsembleBlocks.js:145 +#: js/blocks/EnsembleBlocks.js:145 msgid "stop mouse" msgstr "" -#: js/EnsembleBlocks.js:147 +#: js/blocks/EnsembleBlocks.js:147 msgid "The Stop mouse block stops the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:158 +#: js/blocks/EnsembleBlocks.js:158 msgid "stop turtle" msgstr "" -#: js/EnsembleBlocks.js:160 +#: js/blocks/EnsembleBlocks.js:160 msgid "The Stop turtle block stops the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:184 -#: js/EnsembleBlocks.js:247 -#: js/EnsembleBlocks.js:413 -#: js/EnsembleBlocks.js:468 -#: js/EnsembleBlocks.js:706 -#: js/EnsembleBlocks.js:808 -#: js/EnsembleBlocks.js:870 -#: js/EnsembleBlocks.js:1190 -#: js/EnsembleBlocks.js:1253 +#: js/blocks/EnsembleBlocks.js:184 +#: js/blocks/EnsembleBlocks.js:247 +#: js/blocks/EnsembleBlocks.js:413 +#: js/blocks/EnsembleBlocks.js:468 +#: js/blocks/EnsembleBlocks.js:706 +#: js/blocks/EnsembleBlocks.js:808 +#: js/blocks/EnsembleBlocks.js:870 +#: js/blocks/EnsembleBlocks.js:1190 +#: js/blocks/EnsembleBlocks.js:1253 msgid "Cannot find mouse" msgstr "" -#: js/EnsembleBlocks.js:186 -#: js/EnsembleBlocks.js:249 -#: js/EnsembleBlocks.js:415 -#: js/EnsembleBlocks.js:470 -#: js/EnsembleBlocks.js:708 -#: js/EnsembleBlocks.js:810 -#: js/EnsembleBlocks.js:872 -#: js/EnsembleBlocks.js:1192 -#: js/EnsembleBlocks.js:1255 +#: js/blocks/EnsembleBlocks.js:186 +#: js/blocks/EnsembleBlocks.js:249 +#: js/blocks/EnsembleBlocks.js:415 +#: js/blocks/EnsembleBlocks.js:470 +#: js/blocks/EnsembleBlocks.js:708 +#: js/blocks/EnsembleBlocks.js:810 +#: js/blocks/EnsembleBlocks.js:872 +#: js/blocks/EnsembleBlocks.js:1192 +#: js/blocks/EnsembleBlocks.js:1255 msgid "Cannot find turtle" msgstr "" -#: js/EnsembleBlocks.js:206 +#: js/blocks/EnsembleBlocks.js:206 msgid "start mouse" msgstr "" -#: js/EnsembleBlocks.js:209 +#: js/blocks/EnsembleBlocks.js:209 msgid "The Start mouse block starts the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:220 +#: js/blocks/EnsembleBlocks.js:220 msgid "start turtle" msgstr "" -#: js/EnsembleBlocks.js:223 +#: js/blocks/EnsembleBlocks.js:223 msgid "The Start turtle block starts the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:256 +#: js/blocks/EnsembleBlocks.js:256 msgid "Mouse is already running." msgstr "" -#: js/EnsembleBlocks.js:258 +#: js/blocks/EnsembleBlocks.js:258 msgid "Turtle is already running." msgstr "" -#: js/EnsembleBlocks.js:282 +#: js/blocks/EnsembleBlocks.js:282 msgid "Cannot find start block" msgstr "" -#: js/EnsembleBlocks.js:292 +#: js/blocks/EnsembleBlocks.js:292 #.TRANS: pen color for this mouse msgid "mouse color" msgstr "" -#: js/EnsembleBlocks.js:294 +#: js/blocks/EnsembleBlocks.js:294 msgid "The Mouse color block returns the pen color of the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:306 +#: js/blocks/EnsembleBlocks.js:306 #.TRANS: pen color for this turtle msgid "turtle color" msgstr "" -#: js/EnsembleBlocks.js:308 +#: js/blocks/EnsembleBlocks.js:308 msgid "The Turtle color block returns the pen color of the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:338 +#: js/blocks/EnsembleBlocks.js:338 #.TRANS: heading (compass direction) for this mouse msgid "mouse heading" msgstr "" -#: js/EnsembleBlocks.js:340 +#: js/blocks/EnsembleBlocks.js:340 msgid "The Mouse heading block returns the heading of the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:352 +#: js/blocks/EnsembleBlocks.js:352 #.TRANS: heading (compass direction) for this turtle msgid "turtle heading" msgstr "" -#: js/EnsembleBlocks.js:354 +#: js/blocks/EnsembleBlocks.js:354 msgid "The Turtle heading block returns the heading of the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:384 -#: js/EnsembleBlocks.js:439 +#: js/blocks/EnsembleBlocks.js:384 +#: js/blocks/EnsembleBlocks.js:439 #.TRANS: set xy position for this mouse msgid "set mouse" msgstr "" -#: js/EnsembleBlocks.js:391 -#: js/EnsembleBlocks.js:402 -#: js/BoxesBlocks.js:595 -msgid "name1" -msgstr "" - -#: js/EnsembleBlocks.js:391 -#: js/EnsembleBlocks.js:402 -#: js/ProgramBlocks.js:881 -#: js/GraphicsBlocks.js:235 -#: js/GraphicsBlocks.js:313 -#: js/GraphicsBlocks.js:436 -#: js/GraphicsBlocks.js:487 -#: js/GraphicsBlocks.js:534 -#: js/GraphicsBlocks.js:750 +#: js/blocks/EnsembleBlocks.js:391 +#: js/blocks/EnsembleBlocks.js:402 +#: js/blocks/GraphicsBlocks.js:235 +#: js/blocks/GraphicsBlocks.js:313 +#: js/blocks/GraphicsBlocks.js:436 +#: js/blocks/GraphicsBlocks.js:487 +#: js/blocks/GraphicsBlocks.js:534 +#: js/blocks/GraphicsBlocks.js:750 +#: js/blocks/ProgramBlocks.js:881 msgid "x" msgstr "" -#: js/EnsembleBlocks.js:391 -#: js/EnsembleBlocks.js:402 -#: js/ProgramBlocks.js:881 -#: js/GraphicsBlocks.js:149 -#: js/GraphicsBlocks.js:313 -#: js/GraphicsBlocks.js:436 -#: js/GraphicsBlocks.js:487 -#: js/GraphicsBlocks.js:534 -#: js/GraphicsBlocks.js:750 +#: js/blocks/EnsembleBlocks.js:391 +#: js/blocks/EnsembleBlocks.js:402 +#: js/blocks/GraphicsBlocks.js:149 +#: js/blocks/GraphicsBlocks.js:313 +#: js/blocks/GraphicsBlocks.js:436 +#: js/blocks/GraphicsBlocks.js:487 +#: js/blocks/GraphicsBlocks.js:534 +#: js/blocks/GraphicsBlocks.js:750 +#: js/blocks/ProgramBlocks.js:881 msgid "y" msgstr "" -#: js/EnsembleBlocks.js:395 -#: js/EnsembleBlocks.js:452 +#: js/blocks/EnsembleBlocks.js:395 +#: js/blocks/EnsembleBlocks.js:452 #.TRANS: set xy position for this turtle msgid "set turtle" msgstr "" -#: js/EnsembleBlocks.js:433 +#: js/blocks/EnsembleBlocks.js:433 msgid "The Set mouse block sends a stack of blocks to be run by the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:446 +#: js/blocks/EnsembleBlocks.js:446 msgid "The Set turtle block sends a stack of blocks to be run by the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:480 +#: js/blocks/EnsembleBlocks.js:480 #.TRANS: y position for this mouse msgid "mouse y" msgstr "" -#: js/EnsembleBlocks.js:482 +#: js/blocks/EnsembleBlocks.js:482 msgid "The Y mouse block returns the Y position of the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:494 +#: js/blocks/EnsembleBlocks.js:494 #.TRANS: y position for this turtle msgid "turtle y" msgstr "" -#: js/EnsembleBlocks.js:496 +#: js/blocks/EnsembleBlocks.js:496 msgid "The Y turtle block returns the Y position of the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:526 +#: js/blocks/EnsembleBlocks.js:526 #.TRANS: x position for this mouse msgid "mouse x" msgstr "" -#: js/EnsembleBlocks.js:528 +#: js/blocks/EnsembleBlocks.js:528 msgid "The X mouse block returns the X position of the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:540 +#: js/blocks/EnsembleBlocks.js:540 #.TRANS: x position for this turtle msgid "turtle x" msgstr "" -#: js/EnsembleBlocks.js:542 +#: js/blocks/EnsembleBlocks.js:542 msgid "The X turtle block returns the X position of the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:573 +#: js/blocks/EnsembleBlocks.js:573 #.TRANS: notes played by this mouse msgid "mouse notes played" msgstr "" -#: js/EnsembleBlocks.js:575 +#: js/blocks/EnsembleBlocks.js:575 msgid "The Mouse elapse notes block returns the number of notes played by the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:587 +#: js/blocks/EnsembleBlocks.js:587 #.TRANS: notes played by this turtle msgid "turtle notes played" msgstr "" -#: js/EnsembleBlocks.js:589 +#: js/blocks/EnsembleBlocks.js:589 msgid "The Turtle elapse notes block returns the number of notes played by the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:627 +#: js/blocks/EnsembleBlocks.js:627 #.TRANS: convert current note for this turtle to piano key (1-88) msgid "mouse pitch number" msgstr "" -#: js/EnsembleBlocks.js:629 +#: js/blocks/EnsembleBlocks.js:629 msgid "The Mouse pitch block returns the current pitch number being played by the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:641 +#: js/blocks/EnsembleBlocks.js:641 #.TRANS: convert current note for this turtle to piano key (1-88) msgid "turtle pitch number" msgstr "" -#: js/EnsembleBlocks.js:643 -msgid "The Turrle pitch block returns the current pitch number being played by the specified turtle." +#: js/blocks/EnsembleBlocks.js:643 +msgid "The Turtle pitch block returns the current pitch number being played by the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:747 -#: js/EnsembleBlocks.js:819 +#: js/blocks/EnsembleBlocks.js:747 +#: js/blocks/EnsembleBlocks.js:819 #.TRANS: note value is the duration of the note played by this mouse msgid "mouse note value" msgstr "" -#: js/EnsembleBlocks.js:757 +#: js/blocks/EnsembleBlocks.js:757 #.TRANS: note value is the duration of the note played by this turtle msgid "turtle note value" msgstr "" -#: js/EnsembleBlocks.js:830 +#: js/blocks/EnsembleBlocks.js:830 #.TRANS: sync is short for synchronization msgid "mouse sync" msgstr "" -#: js/EnsembleBlocks.js:832 +#: js/blocks/EnsembleBlocks.js:832 msgid "The Mouse sync block aligns the beat count between mice." msgstr "" -#: js/EnsembleBlocks.js:844 +#: js/blocks/EnsembleBlocks.js:844 #.TRANS: sync is short for synchronization msgid "turtle sync" msgstr "" -#: js/EnsembleBlocks.js:846 +#: js/blocks/EnsembleBlocks.js:846 msgid "The Turtle sync block aligns the beat count between turtles." msgstr "" -#: js/EnsembleBlocks.js:887 +#: js/blocks/EnsembleBlocks.js:887 msgid "The Found mouse block will return true if the specified mouse can be found." msgstr "" -#: js/EnsembleBlocks.js:893 +#: js/blocks/EnsembleBlocks.js:893 msgid "found mouse" msgstr "" -#: js/EnsembleBlocks.js:903 +#: js/blocks/EnsembleBlocks.js:903 msgid "The Found turtle block will return true if the specified turtle can be found." msgstr "" -#: js/EnsembleBlocks.js:909 +#: js/blocks/EnsembleBlocks.js:909 msgid "found turtle" msgstr "" -#: js/EnsembleBlocks.js:932 +#: js/blocks/EnsembleBlocks.js:932 msgid "new mouse" msgstr "" -#: js/EnsembleBlocks.js:934 +#: js/blocks/EnsembleBlocks.js:934 msgid "The New mouse block will create a new mouse." msgstr "" -#: js/EnsembleBlocks.js:945 +#: js/blocks/EnsembleBlocks.js:945 msgid "new turtle" msgstr "" -#: js/EnsembleBlocks.js:947 +#: js/blocks/EnsembleBlocks.js:947 msgid "The New turtle block will create a new turtle." msgstr "" -#: js/EnsembleBlocks.js:1011 +#: js/blocks/EnsembleBlocks.js:1011 msgid "set mouse color" msgstr "" -#: js/EnsembleBlocks.js:1014 +#: js/blocks/EnsembleBlocks.js:1014 msgid "The Set-mouse-color block is used to set the color of a mouse." msgstr "" -#: js/EnsembleBlocks.js:1020 +#: js/blocks/EnsembleBlocks.js:1020 msgid "set turtle color" msgstr "" -#: js/EnsembleBlocks.js:1023 +#: js/blocks/EnsembleBlocks.js:1023 msgid "The Set-turtle-color block is used to set the color of a turtle." msgstr "" -#: js/EnsembleBlocks.js:1083 +#: js/blocks/EnsembleBlocks.js:1083 msgid "The Mouse-name block returns the name of a mouse." msgstr "" -#: js/EnsembleBlocks.js:1092 +#: js/blocks/EnsembleBlocks.js:1092 msgid "The Turtle-name block returns the name of a turtle." msgstr "" -#: js/EnsembleBlocks.js:1115 +#: js/blocks/EnsembleBlocks.js:1115 msgid "mouse count" msgstr "" -#: js/EnsembleBlocks.js:1118 +#: js/blocks/EnsembleBlocks.js:1118 msgid "The Mouse-count block returns the number of mice." msgstr "" -#: js/EnsembleBlocks.js:1124 +#: js/blocks/EnsembleBlocks.js:1124 msgid "turtle count" msgstr "" -#: js/EnsembleBlocks.js:1127 +#: js/blocks/EnsembleBlocks.js:1127 msgid "The Turtle-count block returns the number of turtles." msgstr "" -#: js/EnsembleBlocks.js:1149 +#: js/blocks/EnsembleBlocks.js:1149 msgid "nth mouse name" msgstr "" -#: js/EnsembleBlocks.js:1152 +#: js/blocks/EnsembleBlocks.js:1152 msgid "The Nth-Mouse name block returns the name of the nth mouse." msgstr "" -#: js/EnsembleBlocks.js:1158 +#: js/blocks/EnsembleBlocks.js:1158 msgid "nth turtle name" msgstr "" -#: js/EnsembleBlocks.js:1161 +#: js/blocks/EnsembleBlocks.js:1161 msgid "The Nth-Turtle name block returns the name of the nth turtle." msgstr "" -#: js/EnsembleBlocks.js:1205 -#: js/EnsembleBlocks.js:1265 +#: js/blocks/EnsembleBlocks.js:1205 +#: js/blocks/EnsembleBlocks.js:1265 msgid "set name" msgstr "" -#: js/EnsembleBlocks.js:1214 -#: js/EnsembleBlocks.js:1221 +#: js/blocks/EnsembleBlocks.js:1214 +#: js/blocks/EnsembleBlocks.js:1221 msgid "source" msgstr "" -#: js/EnsembleBlocks.js:1214 -#: js/EnsembleBlocks.js:1221 +#: js/blocks/EnsembleBlocks.js:1214 +#: js/blocks/EnsembleBlocks.js:1221 msgid "target" msgstr "" -#: js/EnsembleBlocks.js:1271 +#: js/blocks/EnsembleBlocks.js:1271 msgid "The Set-name block is used to name a mouse." msgstr "" -#: js/EnsembleBlocks.js:1284 +#: js/blocks/EnsembleBlocks.js:1284 msgid "The Set-name block is used to name a turtle." msgstr "" -#: js/BooleanBlocks.js:44 -msgid "The Not block is the logical not operator." -msgstr "" - -#: js/BooleanBlocks.js:62 -msgid "not" -msgstr "" - -#: js/BooleanBlocks.js:134 -msgid "The And block is the logical and operator." -msgstr "" - -#: js/BooleanBlocks.js:152 -msgid "and" -msgstr "" - -#: js/BooleanBlocks.js:218 -msgid "The Or block is the logical or operator." -msgstr "" - -#: js/BooleanBlocks.js:236 -msgid "or" -msgstr "" - -#: js/BooleanBlocks.js:302 -msgid "The XOR block is the logical XOR operator." -msgstr "" - -#: js/BooleanBlocks.js:320 -msgid "xor" -msgstr "" - -#: js/BooleanBlocks.js:808 -msgid "The Equal block returns True if the two numbers are equal." -msgstr "" - -#: js/BooleanBlocks.js:909 -msgid "The Not-equal-to block returns True if the two numbers are not equal to each other." -msgstr "" - -#: js/BooleanBlocks.js:1008 -msgid "The Boolean block is used to specify true or false." -msgstr "" - -#: js/MediaBlocks.js:35 -#.TRANS: right side of the screen -msgid "right (screen)" -msgstr "" - -#: js/MediaBlocks.js:45 -#: js/MediaBlocks.js:56 -msgid "The Right block returns the position of the right of the canvas." -msgstr "" - -#: js/MediaBlocks.js:97 -#.TRANS: left side of the screen -msgid "left (screen)" -msgstr "" - -#: js/MediaBlocks.js:107 -#: js/MediaBlocks.js:118 -msgid "The Left block returns the position of the left of the canvas." -msgstr "" - -#: js/MediaBlocks.js:158 -msgid "top (screen)" -msgstr "" - -#: js/MediaBlocks.js:168 -#: js/MediaBlocks.js:179 -msgid "The Top block returns the position of the top of the canvas." -msgstr "" - -#: js/MediaBlocks.js:219 -msgid "bottom (screen)" +#: js/blocks/ExtrasBlocks.js:33 +msgid "fraction" msgstr "" -#: js/MediaBlocks.js:229 -#: js/MediaBlocks.js:240 -msgid "The Bottom block returns the position of the bottom of the canvas." +#: js/blocks/ExtrasBlocks.js:36 +msgid "Convert a float to a fraction" msgstr "" -#: js/MediaBlocks.js:282 -msgid "width" +#: js/blocks/ExtrasBlocks.js:93 +msgid "save as ABC" msgstr "" -#: js/MediaBlocks.js:291 -msgid "The Width block returns the width of the canvas." +#: js/blocks/ExtrasBlocks.js:96 +#: js/blocks/ExtrasBlocks.js:132 +#: js/blocks/ExtrasBlocks.js:168 +msgid "title" msgstr "" -#: js/MediaBlocks.js:325 -msgid "height" +#: js/blocks/ExtrasBlocks.js:129 +msgid "save as Lilypond" msgstr "" -#: js/MediaBlocks.js:334 -msgid "The Height block returns the height of the canvas." +#: js/blocks/ExtrasBlocks.js:165 +msgid "save as SVG" msgstr "" -#: js/MediaBlocks.js:369 -#.TRANS: stops playback of an audio recording -msgid "stop play" +#: js/blocks/ExtrasBlocks.js:216 +msgid "no background" msgstr "" -#: js/MediaBlocks.js:404 -#.TRANS: Erases the images and text -msgid "erase media" +#: js/blocks/ExtrasBlocks.js:219 +msgid "The No background block eliminates the background from the saved SVG output." msgstr "" -#: js/MediaBlocks.js:409 -msgid "The Erase Media block erases text and images." +#: js/blocks/ExtrasBlocks.js:247 +msgid "show blocks" msgstr "" -#: js/MediaBlocks.js:439 -#.TRANS: play an audio recording -msgid "play back" +#: js/blocks/ExtrasBlocks.js:249 +msgid "The Show blocks block shows the blocks." msgstr "" -#: js/MediaBlocks.js:487 -msgid "speak" +#: js/blocks/ExtrasBlocks.js:274 +msgid "hide blocks" msgstr "" -#: js/MediaBlocks.js:495 -msgid "The Speak block outputs to the text-to-speech synthesizer" +#: js/blocks/ExtrasBlocks.js:276 +msgid "The Hide blocks block hides the blocks." msgstr "" -#: js/MediaBlocks.js:546 -msgid "camera" +#: js/blocks/ExtrasBlocks.js:305 +#: js/blocks/ExtrasBlocks.js:338 +msgid "The Space block is used to add space between blocks." msgstr "" -#: js/MediaBlocks.js:551 -msgid "The Camera block connects a webcam to the Show block." +#: js/blocks/ExtrasBlocks.js:376 +msgid "wait" msgstr "" -#: js/MediaBlocks.js:574 -msgid "video" +#: js/blocks/ExtrasBlocks.js:379 +msgid "The Wait block pauses the program for a specified number of seconds." msgstr "" -#: js/MediaBlocks.js:579 -msgid "The Video block selects video for use with the Show block." +#: js/blocks/ExtrasBlocks.js:433 +#: plugins/facebook.rtp:30 +msgid "comment" msgstr "" -#: js/MediaBlocks.js:607 -msgid "The Open file block opens a file for use with the Show block." +#: js/blocks/ExtrasBlocks.js:469 +msgid "print" msgstr "" -#: js/MediaBlocks.js:645 -msgid "stop media" +#: js/blocks/ExtrasBlocks.js:476 +msgid "The Print block displays text at the top of the screen." msgstr "" -#: js/MediaBlocks.js:650 -msgid "The Stop media block stops audio or video playback." +#: js/blocks/ExtrasBlocks.js:582 +msgid "display grid" msgstr "" -#: js/MediaBlocks.js:679 -#: js/PitchBlocks.js:1539 -#: js/phrasemaker.js:822 -#: js/musickeyboard.js:1654 -#.TRANS: a measure of frequency: one cycle per second -msgid "hertz" +#: js/blocks/ExtrasBlocks.js:587 +msgid "The Display Grid Block changes the grid type" msgstr "" -#: js/MediaBlocks.js:692 -msgid "duration (ms)" +#: js/blocks/ExtrasBlocks.js:689 +#: js/blocks/ExtrasBlocks.js:708 +#: js/blocks/ExtrasBlocks.js:731 +#: js/blocks/ExtrasBlocks.js:754 +#: js/blocks/ExtrasBlocks.js:772 +#: js/blocks/ExtrasBlocks.js:791 +#: js/blocks/ExtrasBlocks.js:810 +#: js/blocks/ExtrasBlocks.js:829 +msgid "unknown" msgstr "" -#: js/MediaBlocks.js:728 -#.TRANS: translate a note into hertz, e.g., A4 -> 440HZ -msgid "note to frequency" +#: js/blocks/FlowBlocks.js:41 +msgid "The Backward block runs code in reverse order (Musical retrograde)." msgstr "" -#: js/MediaBlocks.js:736 -msgid "The To frequency block converts a pitch name and octave to Hertz." +#: js/blocks/FlowBlocks.js:48 +msgid "backward" msgstr "" -#: js/MediaBlocks.js:746 -#: js/PitchBlocks.js:656 -#: js/PitchBlocks.js:932 -#: js/PitchBlocks.js:1827 -#.TRANS: name2 is name as in name of pitch (JAPANESE ONLY) -msgid "name2" +#: js/blocks/FlowBlocks.js:124 +msgid "The Duplicate block will run each block multiple times." msgstr "" -#: js/MediaBlocks.js:812 -msgid "The Avatar block is used to change the appearance of the mouse." +#: js/blocks/FlowBlocks.js:136 +msgid "duplicate" msgstr "" -#: js/MediaBlocks.js:819 -msgid "The Avatar block is used to change the appearance of the turtle." +#: js/blocks/FlowBlocks.js:334 +msgid "The Default block is used inside of a Switch to define the default action." msgstr "" -#: js/MediaBlocks.js:831 -#: js/MediaBlocks.js:891 -#.TRANS: a media object -msgid "size" +#: js/blocks/FlowBlocks.js:342 +msgid "default" msgstr "" -#: js/MediaBlocks.js:831 -msgid "image" +#: js/blocks/FlowBlocks.js:361 +#: js/blocks/FlowBlocks.js:418 +msgid "The Case Block must be used inside of a Switch Block." msgstr "" -#: js/MediaBlocks.js:880 -msgid "The Show block is used to display text or images on the canvas." +#: js/blocks/FlowBlocks.js:389 +msgid "The Case block is used inside of a Switch to define matches." msgstr "" -#: js/MediaBlocks.js:888 -#.TRANS: show1 is show as in display an image or text on the screen. -msgid "show1" +#: js/blocks/FlowBlocks.js:397 +msgid "case" msgstr "" -#: js/MediaBlocks.js:891 -msgid "obj" +#: js/blocks/FlowBlocks.js:446 +msgid "The Switch block will run the code in the matching Case." msgstr "" -#: js/MediaBlocks.js:938 -msgid "The Media block is used to import an image." +#: js/blocks/FlowBlocks.js:454 +msgid "switch" msgstr "" -#: js/MediaBlocks.js:973 -msgid "The Text block holds a text string." +#: js/blocks/FlowBlocks.js:595 +msgid "The Stop block will stop a loop" msgstr "" -#: js/ProgramBlocks.js:33 -msgid "The Load-heap-from-app block loads the heap from a web page." +#: js/blocks/FlowBlocks.js:597 +msgid "Forever, Repeat, While, or Until." msgstr "" -#: js/ProgramBlocks.js:44 -#.TRANS: load the heap contents from a URL -msgid "load heap from App" +#: js/blocks/FlowBlocks.js:604 +#: js/widgets/timbre.js:417 +#: js/widgets/timbre.js:419 +#: js/widgets/musickeyboard.js:819 +#: js/widgets/musickeyboard.js:821 +#: js/widgets/phrasemaker.js:4202 +#: plugins/rodi.rtp:29 +#: plugins/rodi.rtp:73 +#: plugins/rodi.rtp:413 +msgid "stop" msgstr "" -#: js/ProgramBlocks.js:95 -msgid "Error parsing JSON data:" +#: js/blocks/FlowBlocks.js:653 +msgid "The Waitfor block will wait until the condition is true." msgstr "" -#: js/ProgramBlocks.js:100 -msgid "404: Page not found" +#: js/blocks/FlowBlocks.js:661 +msgid "wait for" msgstr "" -#: js/ProgramBlocks.js:133 -msgid "The Save-heap-to-app block saves the heap to a web page." +#: js/blocks/FlowBlocks.js:732 +msgid "The Until block will repeat until the condition is true." msgstr "" -#: js/ProgramBlocks.js:144 -#.TRANS: save the heap contents to a URL -msgid "save heap to App" +#: js/blocks/FlowBlocks.js:740 +msgid "until" msgstr "" -#: js/ProgramBlocks.js:189 -msgid "Cannot find a valid heap for" +#: js/blocks/FlowBlocks.js:742 +#: js/blocks/FlowBlocks.js:822 +msgid "do2" msgstr "" -#: js/ProgramBlocks.js:206 -msgid "The Load-heap block loads the heap from a file." +#: js/blocks/FlowBlocks.js:812 +msgid "The While block will repeat while the condition is true." msgstr "" -#: js/ProgramBlocks.js:217 -#.TRANS: load the heap from a file -msgid "load heap" +#: js/blocks/FlowBlocks.js:820 +msgid "while" msgstr "" -#: js/ProgramBlocks.js:270 -msgid "The file you selected does not contain a valid heap." +#: js/blocks/FlowBlocks.js:903 +#: js/blocks/FlowBlocks.js:968 +#: js/blocks/FlowBlocks.js:979 +msgid "In this example if the mouse button is pressed a snare drum will play." msgstr "" -#: js/ProgramBlocks.js:275 -msgid "The loadHeap block needs a loadFile block." +#: js/blocks/FlowBlocks.js:925 +#: js/blocks/FlowBlocks.js:988 +msgid "if" msgstr "" -#: js/ProgramBlocks.js:291 -msgid "The Set-heap block loads the heap." +#: js/blocks/FlowBlocks.js:927 +#: js/blocks/FlowBlocks.js:990 +msgid "then" msgstr "" -#: js/ProgramBlocks.js:299 -#: js/HeapBlocks.js:539 -#.TRANS: load the heap from a JSON encoding -msgid "set heap" +#: js/blocks/FlowBlocks.js:927 +msgid "else" msgstr "" -#: js/ProgramBlocks.js:340 -msgid "The block you selected does not contain a valid heap." +#: js/blocks/FlowBlocks.js:1025 +msgid "The Forever block will repeat the contained blocks forever." msgstr "" -#: js/ProgramBlocks.js:343 -msgid "The Set heap block needs a heap." +#: js/blocks/FlowBlocks.js:1037 +msgid "forever" msgstr "" -#: js/ProgramBlocks.js:360 -msgid "The Load-dictionary block loads a dictionary from a file." +#: js/blocks/FlowBlocks.js:1073 +msgid "The Repeat block will repeat the contained blocks." msgstr "" -#: js/ProgramBlocks.js:372 -#.TRANS: load a dictionary from a file -msgid "load dictionary" +#: js/blocks/FlowBlocks.js:1075 +msgid "In this example the note will be played 4 times." msgstr "" -#: js/ProgramBlocks.js:390 -#: js/ProgramBlocks.js:658 -#: js/ToneBlocks.js:1025 -msgid "file" +#: js/blocks/FlowBlocks.js:1083 +msgid "repeat" msgstr "" -#: js/ProgramBlocks.js:396 -#: js/ProgramBlocks.js:501 -#: js/ProgramBlocks.js:664 -#: js/DictBlocks.js:80 -#: js/DictBlocks.js:145 -#: js/DictBlocks.js:216 -#: js/DictBlocks.js:290 -msgid "My Dictionary" +#: js/blocks/FlowBlocks.js:1123 +msgid "duplicate factor" msgstr "" -#: js/ProgramBlocks.js:444 -msgid "The file you selected does not contain a valid dictionary." +#: js/blocks/HeapBlocks.js:49 +msgid "The Heap block returns the heap." msgstr "" -#: js/ProgramBlocks.js:449 -msgid "The load dictionary block needs a load file block." +#: js/blocks/HeapBlocks.js:133 +msgid "show heap" msgstr "" -#: js/ProgramBlocks.js:466 -msgid "The Set-dictionary block loads a dictionary." +#: js/blocks/HeapBlocks.js:181 +msgid "The Heap-length block returns the length of the heap." msgstr "" -#: js/ProgramBlocks.js:477 -#.TRANS: load a dictionary from a JSON -msgid "set dictionary" +#: js/blocks/HeapBlocks.js:195 +msgid "heap length" msgstr "" -#: js/ProgramBlocks.js:546 -msgid "The block you selected does not contain a valid dictionary." +#: js/blocks/HeapBlocks.js:254 +msgid "The Heap-empty? block returns true if the heap is empty." msgstr "" -#: js/ProgramBlocks.js:550 -msgid "The set dictionary block needs a dictionary." +#: js/blocks/HeapBlocks.js:268 +#.TRANS: Is the heap empty? +msgid "heap empty?" msgstr "" -#: js/ProgramBlocks.js:567 -msgid "The Save-heap block saves the heap to a file." +#: js/blocks/HeapBlocks.js:317 +msgid "The Empty-heap block empties the heap." msgstr "" -#: js/ProgramBlocks.js:578 -#.TRANS: save the heap to a file -msgid "save heap" +#: js/blocks/HeapBlocks.js:327 +#: js/blocks/HeapBlocks.js:647 +#.TRANS: empty the heap +msgid "empty heap" msgstr "" -#: js/ProgramBlocks.js:629 -msgid "The Save-dictionary block saves a dictionary to a file." +#: js/blocks/HeapBlocks.js:371 +msgid "The Reverse-heap block reverses the order of the heap." msgstr "" -#: js/ProgramBlocks.js:640 -#.TRANS: save a dictionary to a file -msgid "save dictionary" +#: js/blocks/HeapBlocks.js:384 +#.TRANS: reverse the order of the heap +msgid "reverse heap" msgstr "" -#: js/ProgramBlocks.js:720 -msgid "The Open palette block opens a palette." +#: js/blocks/HeapBlocks.js:428 +msgid "The Index-heap block returns a value in the heap at a specified location." msgstr "" -#: js/ProgramBlocks.js:727 -msgid "open palette" +#: js/blocks/HeapBlocks.js:443 +#.TRANS: retrieve a value from the heap at index position in the heap +msgid "index heap" msgstr "" -#: js/ProgramBlocks.js:785 -msgid "The Delete block block removes a block." +#: js/blocks/HeapBlocks.js:523 +msgid "The Set-heap entry block sets a value in he heap at the specified location." msgstr "" -#: js/ProgramBlocks.js:797 -#.TRANS: Move this block to the trash. -msgid "delete block" +#: js/blocks/HeapBlocks.js:539 +#: js/blocks/ProgramBlocks.js:299 +#.TRANS: load the heap from a JSON encoding +msgid "set heap" msgstr "" -#: js/ProgramBlocks.js:861 -msgid "The Move block block moves a block." +#: js/blocks/HeapBlocks.js:619 +msgid "The Pop block removes the value at the top of the heap." msgstr "" -#: js/ProgramBlocks.js:869 -#.TRANS: Move the position of a block on the screen. -msgid "move block" +#: js/blocks/HeapBlocks.js:633 +#.TRANS: pop a value off the top of the heap +msgid "pop" msgstr "" -#: js/ProgramBlocks.js:881 -#: js/ProgramBlocks.js:1048 -msgid "block number" +#: js/blocks/HeapBlocks.js:680 +msgid "The Push block adds a value to the top of the heap." msgstr "" -#: js/ProgramBlocks.js:935 -#.TRANS: Run program beginning at this block. -msgid "run block" +#: js/blocks/HeapBlocks.js:696 +#.TRANS: push a value onto the top of the heap +msgid "push" msgstr "" -#: js/ProgramBlocks.js:1025 -msgid "The Dock block block connections two blocks." +#: js/blocks/IntervalsBlocks.js:45 +msgid "set temperament" msgstr "" -#: js/ProgramBlocks.js:1036 -#.TRANS: We can connect a block to another block. -msgid "connect blocks" +#: js/blocks/IntervalsBlocks.js:63 +#: js/blocks/MediaBlocks.js:746 +#: js/blocks/PitchBlocks.js:657 +#: js/blocks/PitchBlocks.js:935 +#: js/blocks/PitchBlocks.js:974 +#: js/blocks/PitchBlocks.js:1007 +#: js/blocks/PitchBlocks.js:1194 +#: js/blocks/PitchBlocks.js:1717 +#: js/blocks/PitchBlocks.js:1758 +#: js/blocks/PitchBlocks.js:1866 +#: js/blocks/ToneBlocks.js:1025 +#: js/turtleactions/IntervalsActions.js:114 +#.TRANS: adjusts the shift up or down by one octave (twelve half-steps in the interval between two notes, one having twice or half the frequency in Hz of the other.) +msgid "octave" msgstr "" -#: js/ProgramBlocks.js:1048 -msgid "target block" +#: js/blocks/IntervalsBlocks.js:99 +msgid "The Temperament name block is used to select a tuning method." msgstr "" -#: js/ProgramBlocks.js:1048 -msgid "connection number" +#: js/blocks/IntervalsBlocks.js:161 +msgid "doubly" msgstr "" -#: js/ProgramBlocks.js:1140 -msgid "The Make block block creates a new block." +#: js/blocks/IntervalsBlocks.js:166 +msgid "The Doubly block will double the size of an interval." msgstr "" -#: js/ProgramBlocks.js:1152 -#.TRANS: Create a new block -msgid "make block" +#: js/blocks/IntervalsBlocks.js:262 +msgid "interval number" msgstr "" -#: js/ProgramBlocks.js:1186 -#: js/ProgramBlocks.js:1227 -#: js/RhythmBlocks.js:1128 -#: js/PitchBlocks.js:972 -#: js/PitchBlocks.js:1005 -#: js/temperament.js:340 -#: js/temperament.js:362 -#: js/temperament.js:372 -#: js/temperament.js:484 -#: js/status.js:190 -#: plugins/rodi.rtp:192 -#.TRANS: a musical note consisting of pitch and duration -msgid "note" +#: js/blocks/IntervalsBlocks.js:317 +msgid "current interval" msgstr "" -#: js/ProgramBlocks.js:1285 -msgid "Cannot find block" +#: js/blocks/IntervalsBlocks.js:387 +#.TRANS: measure the distance between two pitches in semi-tones +msgid "semi-tone interval measure" msgstr "" -#: js/ProgramBlocks.js:1304 -#: js/ProgramBlocks.js:1313 -msgid "Warning: block argument type mismatch" +#: js/blocks/IntervalsBlocks.js:454 +#: js/blocks/IntervalsBlocks.js:570 +msgid "You must use two pitch blocks when measuring an interval." msgstr "" -#: js/ProgramBlocks.js:1347 -msgid "The Open project block is used to open a project from a web page." +#: js/blocks/IntervalsBlocks.js:496 +msgid "The Scalar interval block measures the distance between two notes in the current key and mode." msgstr "" -#: js/ProgramBlocks.js:1357 -msgid "open project" +#: js/blocks/IntervalsBlocks.js:502 +#.TRANS: measure the distance between two pitches in steps of musical scale +msgid "scalar interval measure" msgstr "" -#: js/ProgramBlocks.js:1410 -msgid "Please enter a valid URL." +#: js/blocks/IntervalsBlocks.js:678 +msgid "In the figure, we add sol# to sol." msgstr "" -#: js/DrumBlocks.js:59 -msgid "The Noise name block is used to select a noise synthesizer." +#: js/blocks/IntervalsBlocks.js:684 +#: js/blocks/OrnamentBlocks.js:220 +#.TRANS: calculate a relative step between notes based on semi-tones +msgid "semi-tone interval" msgstr "" -#: js/DrumBlocks.js:102 -msgid "The Drum name block is used to select a drum." +#: js/blocks/IntervalsBlocks.js:733 +msgid "The output of the example is: do, mi, sol, sol, ti, mi" msgstr "" -#: js/DrumBlocks.js:146 -msgid "The Effects name block is used to select a sound effect." +#: js/blocks/IntervalsBlocks.js:740 +#: js/blocks/WidgetBlocks.js:768 +msgid "arpeggio" msgstr "" -#: js/DrumBlocks.js:163 -msgid "noise" +#: js/blocks/IntervalsBlocks.js:931 +msgid "The Chord block calculates common chords." msgstr "" -#: js/DrumBlocks.js:177 -msgid "The Play noise block will generate white, pink, or brown noise." +#: js/blocks/IntervalsBlocks.js:933 +msgid "In the figure, we generate a C-major chord." msgstr "" -#: js/DrumBlocks.js:191 -#: js/musicutils.js:752 -#: js/synthutils.js:47 -#.TRANS: white noise synthesizer -msgid "white noise" +#: js/blocks/IntervalsBlocks.js:938 +msgid "chord" msgstr "" -#: js/DrumBlocks.js:326 -msgid "Replace every instance of a pitch with a drum sound." +#: js/blocks/IntervalsBlocks.js:990 +msgid "The Ratio Interval block calculates an interval based on a ratio." msgstr "" -#: js/DrumBlocks.js:337 -#.TRANS: map a pitch to a drum sound -msgid "map pitch to drum" +#: js/blocks/IntervalsBlocks.js:995 +msgid "ratio interval" msgstr "" -#: js/DrumBlocks.js:404 -msgid "In the example above, a kick drum sound will be played instead of sol." +#: js/blocks/IntervalsBlocks.js:1064 +msgid "In the figure, we add la to sol." msgstr "" -#: js/DrumBlocks.js:416 -#.TRANS: set the current drum sound for playback -msgid "set drum" +#: js/blocks/IntervalsBlocks.js:1120 +#.TRANS: define a custom mode +msgid "define mode" msgstr "" -#: js/DrumBlocks.js:460 -msgid "sound effect" +#: js/blocks/IntervalsBlocks.js:1173 +msgid "movable Do" msgstr "" -#: js/DrumBlocks.js:498 -msgid "You can use multiple Drum blocks within a Note block." +#: js/blocks/IntervalsBlocks.js:1224 +#.TRANS: mode length is the number of notes in the mode, e.g., 7 for major and minor scales; 12 for chromatic scales +msgid "mode length" msgstr "" -#: js/RhythmBlocks.js:182 -#: js/RhythmBlocks.js:1086 -#: js/RhythmBlocks.js:1162 -msgid "Note value must be greater than 0." +#: js/blocks/IntervalsBlocks.js:1233 +msgid "The Mode length block is the number of notes in the current scale." msgstr "" -#: js/RhythmBlocks.js:215 -#: js/RhythmBlocks.js:278 -#: js/RhythmBlocks.js:350 -#.TRANS: swing is a rhythmic variation that emphasises the offbeat -msgid "swing" +#: js/blocks/IntervalsBlocks.js:1235 +msgid "Most Western scales have 7 notes." msgstr "" -#: js/RhythmBlocks.js:355 -#.TRANS: the amount to shift to the offbeat note -msgid "swing value" +#: js/blocks/IntervalsBlocks.js:1284 +#.TRANS: the mode in music is 'major', 'minor', etc. +msgid "current mode" msgstr "" -#: js/RhythmBlocks.js:419 -msgid "The Skip notes block will cause notes to be skipped." +#: js/blocks/IntervalsBlocks.js:1337 +#.TRANS: the key is a group of pitches with which a music composition is created +msgid "current key" msgstr "" -#: js/RhythmBlocks.js:427 -#.TRANS: substitute rests on notes being skipped -msgid "skip notes" +#: js/blocks/IntervalsBlocks.js:1389 +#: js/blocks/IntervalsBlocks.js:1434 +#.TRANS: set the key and mode, e.g. C Major +msgid "set key" msgstr "" -#: js/RhythmBlocks.js:489 -#.TRANS: speed up note duration by some factor, e.g. convert 1/4 to 1/8 notes by using a factor of 2 -msgid "multiply note value" +#: js/blocks/IntervalsBlocks.js:1443 +#: js/blocks/IntervalsBlocks.js:1449 +msgid "The Set key block is used to set the key and mode," msgstr "" -#: js/RhythmBlocks.js:542 -msgid "The Tie block works on pairs of notes, combining them into one note." +#: js/blocks/IntervalsBlocks.js:1449 +msgid "eg C Major" msgstr "" -#: js/RhythmBlocks.js:550 -#.TRANS: tie notes together into one longer note -msgid "tie" +#: js/blocks/MediaBlocks.js:35 +#.TRANS: right side of the screen +msgid "right (screen)" msgstr "" -#: js/RhythmBlocks.js:591 -#: js/RhythmBlocks.js:671 -#.TRANS: a dotted note is played for 1.5x its value, e.g., 1/8. --> 3/16 -msgid "dot" +#: js/blocks/MediaBlocks.js:45 +#: js/blocks/MediaBlocks.js:56 +msgid "The Right block returns the position of the right of the canvas." msgstr "" -#: js/RhythmBlocks.js:619 -#: js/RhythmActions.js:221 -msgid "An argument of -1 results in a note value of 0." +#: js/blocks/MediaBlocks.js:97 +#.TRANS: left side of the screen +msgid "left (screen)" msgstr "" -#: js/RhythmBlocks.js:661 -msgid "The Dot block extends the duration of a note by 50%." +#: js/blocks/MediaBlocks.js:107 +#: js/blocks/MediaBlocks.js:118 +msgid "The Left block returns the position of the left of the canvas." msgstr "" -#: js/RhythmBlocks.js:663 -msgid "Eg a dotted quarter note will play for 3/8 (1/4 + 1/8) of a beat." +#: js/blocks/MediaBlocks.js:158 +msgid "top (screen)" msgstr "" -#: js/RhythmBlocks.js:765 -#.TRANS: Japanese only: note value block for drum -msgid "note value drum" +#: js/blocks/MediaBlocks.js:168 +#: js/blocks/MediaBlocks.js:179 +msgid "The Top block returns the position of the top of the canvas." msgstr "" -#: js/RhythmBlocks.js:829 -msgid "392 hertz" +#: js/blocks/MediaBlocks.js:219 +msgid "bottom (screen)" msgstr "" -#: js/RhythmBlocks.js:1119 -msgid "The Note block is a container for one or more Pitch blocks." +#: js/blocks/MediaBlocks.js:229 +#: js/blocks/MediaBlocks.js:240 +msgid "The Bottom block returns the position of the bottom of the canvas." msgstr "" -#: js/RhythmBlocks.js:1121 -msgid "The Note block specifies the duration (note value) of its contents." +#: js/blocks/MediaBlocks.js:282 +msgid "width" msgstr "" -#: js/RhythmBlocks.js:1130 -msgid "value2" +#: js/blocks/MediaBlocks.js:291 +msgid "The Width block returns the width of the canvas." msgstr "" -#: js/RhythmBlocks.js:1200 -msgid "define frequency" +#: js/blocks/MediaBlocks.js:325 +msgid "height" msgstr "" -#: js/RhythmBlocks.js:1218 -#: js/temperament.js:650 -#: js/temperament.js:1421 -msgid "octave space" +#: js/blocks/MediaBlocks.js:334 +msgid "The Height block returns the height of the canvas." msgstr "" -#: js/NumberBlocks.js:28 -msgid "The Int block returns an integer." +#: js/blocks/MediaBlocks.js:369 +#.TRANS: stops playback of an audio recording +msgid "stop play" msgstr "" -#: js/NumberBlocks.js:34 -msgid "int" +#: js/blocks/MediaBlocks.js:404 +#.TRANS: Erases the images and text +msgid "erase media" msgstr "" -#: js/NumberBlocks.js:73 -msgid "The Mod block returns the remainder from a division." +#: js/blocks/MediaBlocks.js:409 +msgid "The Erase Media block erases text and images." msgstr "" -#: js/NumberBlocks.js:79 -msgid "mod" +#: js/blocks/MediaBlocks.js:439 +#.TRANS: play an audio recording +msgid "play back" msgstr "" -#: js/NumberBlocks.js:123 -msgid "The Power block calculates a power function." +#: js/blocks/MediaBlocks.js:487 +msgid "speak" msgstr "" -#: js/NumberBlocks.js:178 -msgid "The Sqrt block returns the square root." +#: js/blocks/MediaBlocks.js:495 +msgid "The Speak block outputs to the text-to-speech synthesizer" msgstr "" -#: js/NumberBlocks.js:184 -msgid "sqrt" +#: js/blocks/MediaBlocks.js:546 +msgid "camera" msgstr "" -#: js/NumberBlocks.js:230 -msgid "The Abs block returns the absolute value." +#: js/blocks/MediaBlocks.js:551 +msgid "The Camera block connects a webcam to the Show block." msgstr "" -#: js/NumberBlocks.js:236 -msgid "abs" +#: js/blocks/MediaBlocks.js:574 +msgid "video" msgstr "" -#: js/NumberBlocks.js:277 -msgid "The Distance block returns the distance between two points. For example, between the mouse and the center of the screen." +#: js/blocks/MediaBlocks.js:579 +msgid "The Video block selects video for use with the Show block." msgstr "" -#: js/NumberBlocks.js:283 -#: plugins/rodi.rtp:310 -msgid "distance" +#: js/blocks/MediaBlocks.js:607 +msgid "The Open file block opens a file for use with the Show block." msgstr "" -#: js/NumberBlocks.js:343 -msgid "The Divide block is used to divide." +#: js/blocks/MediaBlocks.js:645 +msgid "stop media" msgstr "" -#: js/NumberBlocks.js:411 -msgid "The Multiply block is used to multiply." +#: js/blocks/MediaBlocks.js:650 +msgid "The Stop media block stops audio or video playback." msgstr "" -#: js/NumberBlocks.js:554 -msgid "The Minus block is used to subtract." +#: js/blocks/MediaBlocks.js:679 +#: js/blocks/PitchBlocks.js:1577 +#: js/widgets/musickeyboard.js:1936 +#: js/widgets/phrasemaker.js:1037 +#.TRANS: a measure of frequency: one cycle per second +msgid "hertz" msgstr "" -#: js/NumberBlocks.js:647 -msgid "The Plus block is used to add." +#: js/blocks/MediaBlocks.js:692 +#: js/blocks/WidgetBlocks.js:182 +#: js/widgets/temperament.js:506 +#: js/widgets/temperament.js:546 +#: js/widgets/temperament.js:610 +#: js/widgets/temperament.js:618 +#: js/widgets/temperament.js:1505 +#: js/widgets/timbre.js:1842 +msgid "frequency" msgstr "" -#: js/NumberBlocks.js:773 -msgid "The One-of block returns one of two choices." +#: js/blocks/MediaBlocks.js:692 +msgid "duration (ms)" msgstr "" -#: js/NumberBlocks.js:780 -#: js/PitchBlocks.js:616 -msgid "one of" +#: js/blocks/MediaBlocks.js:728 +#.TRANS: translate a note into hertz, e.g., A4 -> 440HZ +msgid "note to frequency" msgstr "" -#: js/NumberBlocks.js:782 -msgid "this" +#: js/blocks/MediaBlocks.js:736 +msgid "The To frequency block converts a pitch name and octave to Hertz." msgstr "" -#: js/NumberBlocks.js:782 -msgid "that" +#: js/blocks/MediaBlocks.js:746 +#: js/blocks/PitchBlocks.js:656 +#: js/blocks/PitchBlocks.js:934 +#: js/blocks/PitchBlocks.js:1866 +#.TRANS: name2 is name as in name of pitch (JAPANESE ONLY) +msgid "name2" msgstr "" -#: js/NumberBlocks.js:837 -msgid "The Random block returns a random number." +#: js/blocks/MediaBlocks.js:812 +msgid "The Avatar block is used to change the appearance of the mouse." msgstr "" -#: js/NumberBlocks.js:844 -msgid "random" +#: js/blocks/MediaBlocks.js:819 +msgid "The Avatar block is used to change the appearance of the turtle." msgstr "" -#: js/NumberBlocks.js:846 -msgid "min" +#: js/blocks/MediaBlocks.js:831 +#: js/blocks/MediaBlocks.js:891 +#.TRANS: a media object +msgid "size" msgstr "" -#: js/NumberBlocks.js:846 -msgid "max" +#: js/blocks/MediaBlocks.js:831 +msgid "image" msgstr "" -#: js/NumberBlocks.js:910 -msgid "The Number block holds a number." +#: js/blocks/MediaBlocks.js:880 +msgid "The Show block is used to display text or images on the canvas." msgstr "" -#: js/BoxesBlocks.js:53 -#: js/BoxesBlocks.js:59 -msgid "The Add-to block is used to add to the value stored in a box." +#: js/blocks/MediaBlocks.js:888 +#.TRANS: show1 is show as in display an image or text on the screen. +msgid "show1" msgstr "" -#: js/BoxesBlocks.js:61 -msgid "It can also be used with other blocks such as Color and Pen size." +#: js/blocks/MediaBlocks.js:891 +msgid "obj" msgstr "" -#: js/BoxesBlocks.js:73 -msgid "add" +#: js/blocks/MediaBlocks.js:938 +msgid "The Media block is used to import an image." msgstr "" -#: js/BoxesBlocks.js:75 -#: js/temperament.js:716 -msgid "to" +#: js/blocks/MediaBlocks.js:973 +msgid "The Text block holds a text string." msgstr "" -#: js/BoxesBlocks.js:75 -#: js/BoxesBlocks.js:595 -#: js/HeapBlocks.js:544 -msgid "value1" +#: js/blocks/MeterBlocks.js:34 +#.TRANS: musical meter (time signature), e.g., 4:4 +msgid "current meter" msgstr "" -#: js/BoxesBlocks.js:118 -msgid "Block does not support incrementing." +#: js/blocks/MeterBlocks.js:85 +#.TRANS: number of beats per minute +msgid "beat factor" msgstr "" -#: js/BoxesBlocks.js:152 -msgid "The Add-1-to block adds one to the value stored in a box." +#: js/blocks/MeterBlocks.js:161 +msgid "The Beats per minute block returns the current beats per minute." msgstr "" -#: js/BoxesBlocks.js:163 -msgid "add 1 to" +#: js/blocks/MeterBlocks.js:169 +#: js/widgets/status.js:152 +#.TRANS: number of beats played per minute +msgid "beats per minute2" msgstr "" -#: js/BoxesBlocks.js:211 -msgid "The Subtract-1-from block subtracts one from the value stored in a box." +#: js/blocks/MeterBlocks.js:169 +#: js/blocks/MeterBlocks.js:1056 +#: js/blocks/MeterBlocks.js:1133 +#: js/blocks/MeterBlocks.js:1211 +#.TRANS: sets tempo by defining a beat and beats per minute +msgid "beats per minute" msgstr "" -#: js/BoxesBlocks.js:222 -msgid "subtract 1 from" +#: js/blocks/MeterBlocks.js:233 +#.TRANS: count of current musical measure in meter +msgid "measure count" msgstr "" -#: js/BoxesBlocks.js:270 -#: js/BoxesBlocks.js:387 -msgid "The Box block returns the value stored in a box." +#: js/blocks/MeterBlocks.js:241 +msgid "The Measure count block returns the current measure." msgstr "" -#: js/BoxesBlocks.js:500 -#: js/BoxesBlocks.js:576 -msgid "The Store in block will store a value in a box." +#: js/blocks/MeterBlocks.js:290 +#.TRANS: count of current beat in the meter +msgid "beat count" msgstr "" -#: js/BoxesBlocks.js:652 -msgid "The Box2 block returns the value stored in Box2." +#: js/blocks/MeterBlocks.js:300 +#: js/blocks/MeterBlocks.js:311 +#: js/blocks/MeterBlocks.js:565 +#: js/blocks/MeterBlocks.js:576 +msgid "The Beat count block is the number of the current beat," msgstr "" -#: js/BoxesBlocks.js:703 -msgid "The Store in Box2 block is used to store a value in Box2." +#: js/blocks/MeterBlocks.js:313 +#: js/blocks/MeterBlocks.js:578 +msgid "eg 1, 2, 3, or 4." msgstr "" -#: js/BoxesBlocks.js:715 -msgid "store in box2" +#: js/blocks/MeterBlocks.js:368 +#.TRANS: count the number of notes +msgid "sum note values" msgstr "" -#: js/BoxesBlocks.js:761 -msgid "The Box1 block returns the value stored in Box1." +#: js/blocks/MeterBlocks.js:376 +#: js/blocks/MeterBlocks.js:440 +msgid "The Note counter block can be used to count the number of contained notes." msgstr "" -#: js/BoxesBlocks.js:812 -msgid "The Store in Box1 block is used to store a value in Box1." +#: js/blocks/MeterBlocks.js:432 +#.TRANS: count the number of notes +msgid "note counter" msgstr "" -#: js/BoxesBlocks.js:826 -msgid "store in box1" +#: js/blocks/MeterBlocks.js:496 +#.TRANS: number of whole notes that have been played +msgid "whole notes played" msgstr "" -#: js/HeapBlocks.js:49 -msgid "The Heap block returns the heap." +#: js/blocks/MeterBlocks.js:505 +msgid "The Whole notes played block returns the total number of whole notes played." msgstr "" -#: js/HeapBlocks.js:133 -msgid "show heap" +#: js/blocks/MeterBlocks.js:555 +#: js/turtleactions/DictActions.js:83 +#.TRANS: number of notes that have been played +msgid "notes played" msgstr "" -#: js/HeapBlocks.js:181 -msgid "The Heap-length block returns the length of the heap." +#: js/blocks/MeterBlocks.js:653 +msgid "The No clock block decouples the notes from the master clock." msgstr "" -#: js/HeapBlocks.js:195 -msgid "heap length" +#: js/blocks/MeterBlocks.js:661 +#.TRANS: don't lock notes to master clock +msgid "no clock" msgstr "" -#: js/HeapBlocks.js:254 -msgid "The Heap-empty? block returns true if the heap is empty." +#: js/blocks/MeterBlocks.js:700 +msgid "on weak beat do" msgstr "" -#: js/HeapBlocks.js:268 -#.TRANS: Is the heap empty? -msgid "heap empty?" +#: js/blocks/MeterBlocks.js:705 +msgid "The On-weak-beat block lets you specify actions to take on weak (off) beats." msgstr "" -#: js/HeapBlocks.js:317 -msgid "The Empty-heap block empties the heap." +#: js/blocks/MeterBlocks.js:750 +msgid "on strong beat" msgstr "" -#: js/HeapBlocks.js:327 -#: js/HeapBlocks.js:647 -#.TRANS: empty the heap -msgid "empty heap" +#: js/blocks/MeterBlocks.js:758 +msgid "The On-strong-beat block lets you specify actions to take on specified beats." msgstr "" -#: js/HeapBlocks.js:371 -msgid "The Reverse-heap block reverses the order of the heap." +#: js/blocks/MeterBlocks.js:769 +msgid "beat" msgstr "" -#: js/HeapBlocks.js:384 -#.TRANS: reverse the order of the heap -msgid "reverse heap" +#: js/blocks/MeterBlocks.js:813 +msgid "on every beat do" msgstr "" -#: js/HeapBlocks.js:428 -msgid "The Index-heap block returns a value in the heap at a specified location." +#: js/blocks/MeterBlocks.js:821 +msgid "The On-every-beat block lets you specify actions to take on every beat." msgstr "" -#: js/HeapBlocks.js:443 -#.TRANS: retrieve a value from the heap at index position in the heap -msgid "index heap" +#: js/blocks/MeterBlocks.js:874 +msgid "on every note do" msgstr "" -#: js/HeapBlocks.js:523 -msgid "The Set-heap entry block sets a value in he heap at the specified location." +#: js/blocks/MeterBlocks.js:882 +msgid "The On-every-note block lets you specify actions to take on every note." msgstr "" -#: js/HeapBlocks.js:619 -msgid "The Pop block removes the value at the top of the heap." +#: js/blocks/MeterBlocks.js:928 +#: js/blocks/MeterBlocks.js:999 +#.TRANS: sets tempo by defining a beat and beats per minute +msgid "master beats per minute" msgstr "" -#: js/HeapBlocks.js:633 -#.TRANS: pop a value off the top of the heap -msgid "pop" +#: js/blocks/MeterBlocks.js:952 +#: js/blocks/MeterBlocks.js:1078 +#: js/blocks/MeterBlocks.js:1135 +msgid "bpm" msgstr "" -#: js/HeapBlocks.js:680 -msgid "The Push block adds a value to the top of the heap." +#: js/blocks/MeterBlocks.js:952 +#: js/blocks/MeterBlocks.js:1078 +#: js/blocks/MeterBlocks.js:1135 +msgid "beat value" msgstr "" -#: js/HeapBlocks.js:696 -#.TRANS: push a value onto the top of the heap -msgid "push" +#: js/blocks/MeterBlocks.js:1024 +#: js/blocks/MeterBlocks.js:1167 +#: js/blocks/MeterBlocks.js:1241 +msgid "Beats per minute must be > 30." msgstr "" -#: js/FlowBlocks.js:41 -msgid "The Backward block runs code in reverse order (Musical retrograde)." +#: js/blocks/MeterBlocks.js:1027 +#: js/blocks/MeterBlocks.js:1170 +#: js/blocks/MeterBlocks.js:1244 +msgid "Maximum beats per minute is 1000." msgstr "" -#: js/FlowBlocks.js:48 -msgid "backward" +#: js/blocks/MeterBlocks.js:1068 +msgid "The Beats per minute block sets the number of 1/4 notes per minute." msgstr "" -#: js/FlowBlocks.js:124 -msgid "The Duplicate block will run each block multiple times." +#: js/blocks/MeterBlocks.js:1279 +#.TRANS: anacrusis +msgid "pickup" msgstr "" -#: js/FlowBlocks.js:136 -msgid "duplicate" +#: js/blocks/MeterBlocks.js:1367 +msgid "number of beats" msgstr "" -#: js/FlowBlocks.js:334 -msgid "The Default block is used inside of a Switch to define the default action." +#: js/blocks/NumberBlocks.js:28 +msgid "The Int block returns an integer." msgstr "" -#: js/FlowBlocks.js:342 -msgid "default" +#: js/blocks/NumberBlocks.js:34 +msgid "int" msgstr "" -#: js/FlowBlocks.js:361 -#: js/FlowBlocks.js:418 -msgid "The Case Block must be used inside of a Switch Block." +#: js/blocks/NumberBlocks.js:73 +msgid "The Mod block returns the remainder from a division." msgstr "" -#: js/FlowBlocks.js:389 -msgid "The Case block is used inside of a Switch to define matches." +#: js/blocks/NumberBlocks.js:79 +msgid "mod" msgstr "" -#: js/FlowBlocks.js:397 -msgid "case" +#: js/blocks/NumberBlocks.js:141 +msgid "The Power block calculates a power function." msgstr "" -#: js/FlowBlocks.js:446 -msgid "The Switch block will run the code in the matching Case." +#: js/blocks/NumberBlocks.js:196 +msgid "The Sqrt block returns the square root." msgstr "" -#: js/FlowBlocks.js:454 -msgid "switch" +#: js/blocks/NumberBlocks.js:202 +msgid "sqrt" msgstr "" -#: js/FlowBlocks.js:595 -msgid "The Stop block will stop a loop" +#: js/blocks/NumberBlocks.js:248 +msgid "The Abs block returns the absolute value." msgstr "" -#: js/FlowBlocks.js:597 -msgid "Forever, Repeat, While, or Until." +#: js/blocks/NumberBlocks.js:254 +msgid "abs" msgstr "" -#: js/FlowBlocks.js:604 -#: js/phrasemaker.js:3799 -#: js/musickeyboard.js:629 -#: js/musickeyboard.js:631 -#: js/timbre.js:417 -#: js/timbre.js:419 -#: plugins/rodi.rtp:29 -#: plugins/rodi.rtp:73 -#: plugins/rodi.rtp:413 -msgid "stop" +#: js/blocks/NumberBlocks.js:295 +msgid "The Distance block returns the distance between two points. For example, between the mouse and the center of the screen." msgstr "" -#: js/FlowBlocks.js:653 -msgid "The Waitfor block will wait until the condition is true." +#: js/blocks/NumberBlocks.js:301 +#: plugins/rodi.rtp:310 +msgid "distance" msgstr "" -#: js/FlowBlocks.js:661 -msgid "wait for" +#: js/blocks/NumberBlocks.js:361 +msgid "The Divide block is used to divide." msgstr "" -#: js/FlowBlocks.js:732 -msgid "The Until block will repeat until the condition is true." +#: js/blocks/NumberBlocks.js:441 +msgid "The Multiply block is used to multiply." msgstr "" -#: js/FlowBlocks.js:740 -msgid "until" +#: js/blocks/NumberBlocks.js:612 +msgid "The Minus block is used to subtract." msgstr "" -#: js/FlowBlocks.js:742 -#: js/FlowBlocks.js:822 -msgid "do2" +#: js/blocks/NumberBlocks.js:723 +msgid "The Plus block is used to add." msgstr "" -#: js/FlowBlocks.js:812 -msgid "The While block will repeat while the condition is true." +#: js/blocks/NumberBlocks.js:849 +msgid "The One-of block returns one of two choices." msgstr "" -#: js/FlowBlocks.js:820 -msgid "while" +#: js/blocks/NumberBlocks.js:856 +#: js/blocks/PitchBlocks.js:616 +msgid "one of" msgstr "" -#: js/FlowBlocks.js:903 -#: js/FlowBlocks.js:968 -#: js/FlowBlocks.js:979 -msgid "In this example if the mouse button is pressed a snare drum will play." +#: js/blocks/NumberBlocks.js:858 +msgid "this" msgstr "" -#: js/FlowBlocks.js:925 -#: js/FlowBlocks.js:988 -msgid "if" +#: js/blocks/NumberBlocks.js:858 +msgid "that" msgstr "" -#: js/FlowBlocks.js:927 -#: js/FlowBlocks.js:990 -msgid "then" +#: js/blocks/NumberBlocks.js:913 +msgid "The Random block returns a random number." msgstr "" -#: js/FlowBlocks.js:927 -msgid "else" +#: js/blocks/NumberBlocks.js:920 +msgid "random" msgstr "" -#: js/FlowBlocks.js:1025 -msgid "The Forever block will repeat the contained blocks forever." +#: js/blocks/NumberBlocks.js:922 +msgid "min" msgstr "" -#: js/FlowBlocks.js:1037 -msgid "forever" +#: js/blocks/NumberBlocks.js:922 +msgid "max" msgstr "" -#: js/FlowBlocks.js:1073 -msgid "The Repeat block will repeat the contained blocks." +#: js/blocks/NumberBlocks.js:986 +msgid "The Number block holds a number." msgstr "" -#: js/FlowBlocks.js:1075 -msgid "In this example the note will be played 4 times." +#: js/blocks/OrnamentBlocks.js:32 +msgid "staccato factor" msgstr "" -#: js/FlowBlocks.js:1083 -msgid "repeat" +#: js/blocks/OrnamentBlocks.js:108 +msgid "slur factor" msgstr "" -#: js/FlowBlocks.js:1123 -msgid "duplicate factor" +#: js/blocks/OrnamentBlocks.js:217 +#: js/blocks/OrnamentBlocks.js:309 +#.TRANS: the neighbor refers to a neighboring note, e.g., D is a neighbor of C +msgid "neighbor" msgstr "" -#: js/PitchBlocks.js:39 -#: js/musicutils.js:722 -#: js/musicutils.js:1117 -#: js/synthutils.js:112 -#.TRANS: square wave -msgid "square" +#: js/blocks/OrnamentBlocks.js:293 +msgid "The Neighbor block rapidly switches between neighboring pitches." msgstr "" -#: js/PitchBlocks.js:62 -#: js/ToneBlocks.js:39 -#: js/musicutils.js:723 -#: js/musicutils.js:1118 -#: js/synthutils.js:116 -#.TRANS: triangle wave -msgid "triangle" +#: js/blocks/OrnamentBlocks.js:364 +msgid "glide" msgstr "" -#: js/PitchBlocks.js:85 -#: js/musicutils.js:721 -#: js/musicutils.js:1116 -#: js/synthutils.js:110 -#.TRANS: sine wave -msgid "sine" +#: js/blocks/OrnamentBlocks.js:479 +#: js/blocks/OrnamentBlocks.js:643 +msgid "slur" msgstr "" -#: js/PitchBlocks.js:108 -#: js/musicutils.js:724 -#: js/musicutils.js:1119 -#: js/synthutils.js:114 -#.TRANS: sawtooth wave -msgid "sawtooth" +#: js/blocks/OrnamentBlocks.js:558 +#: js/blocks/OrnamentBlocks.js:710 +#.TRANS: play each note sharply detached from the others +msgid "staccato" msgstr "" -#: js/PitchBlocks.js:141 -#.TRANS: musical transposition (adjustment of pitch up or down) -msgid "transposition" +#: js/blocks/RhythmBlocks.js:182 +#: js/blocks/RhythmBlocks.js:1086 +#: js/blocks/RhythmBlocks.js:1162 +msgid "Note value must be greater than 0." msgstr "" -#: js/PitchBlocks.js:168 -#.TRANS: step down one note in current musical scale -msgid "scalar step down" +#: js/blocks/RhythmBlocks.js:215 +#: js/blocks/RhythmBlocks.js:278 +#: js/blocks/RhythmBlocks.js:350 +#.TRANS: swing is a rhythmic variation that emphasises the offbeat +msgid "swing" msgstr "" -#: js/PitchBlocks.js:172 -msgid "The Scalar step down block returns the number of semi-tones down to the previous note in the current key and mode." +#: js/blocks/RhythmBlocks.js:355 +#.TRANS: the amount to shift to the offbeat note +msgid "swing value" msgstr "" -#: js/PitchBlocks.js:190 -#.TRANS: step up one note in current musical scale -msgid "scalar step up" +#: js/blocks/RhythmBlocks.js:419 +msgid "The Skip notes block will cause notes to be skipped." msgstr "" -#: js/PitchBlocks.js:194 -msgid "The Scalar step up block returns the number of semi-tones up to the next note in the current key and mode." +#: js/blocks/RhythmBlocks.js:427 +#.TRANS: substitute rests on notes being skipped +msgid "skip notes" msgstr "" -#: js/PitchBlocks.js:212 -#.TRANS: the change measured in half-steps between the current pitch and the previous pitch -msgid "change in pitch" +#: js/blocks/RhythmBlocks.js:489 +#.TRANS: speed up note duration by some factor, e.g. convert 1/4 to 1/8 notes by using a factor of 2 +msgid "multiply note value" msgstr "" -#: js/PitchBlocks.js:216 -msgid "The Change in pitch block is the difference (in half steps) between the current pitch being played and the previous pitch played." +#: js/blocks/RhythmBlocks.js:542 +msgid "The Tie block works on pairs of notes, combining them into one note." msgstr "" -#: js/PitchBlocks.js:243 -#.TRANS: the change measured in scale-steps between the current pitch and the previous pitch -msgid "scalar change in pitch" +#: js/blocks/RhythmBlocks.js:550 +#.TRANS: tie notes together into one longer note +msgid "tie" msgstr "" -#: js/PitchBlocks.js:250 -#: js/PitchBlocks.js:432 -#: js/PitchBlocks.js:1629 -#: js/DictActions.js:89 -#: js/temperament.js:477 -#: js/temperament.js:481 -#: js/temperament.js:714 -#.TRANS: convert current note to piano key (1-88) -#.TRANS: a mapping of pitch to the 88 piano keys -msgid "pitch number" +#: js/blocks/RhythmBlocks.js:591 +#: js/blocks/RhythmBlocks.js:671 +#.TRANS: a dotted note is played for 1.5x its value, e.g., 1/8. --> 3/16 +msgid "dot" msgstr "" -#: js/PitchBlocks.js:256 -msgid "The Pitch number block is the value of the pitch of the note currently being played." +#: js/blocks/RhythmBlocks.js:619 +#: js/turtleactions/RhythmActions.js:221 +msgid "An argument of -1 results in a note value of 0." msgstr "" -#: js/PitchBlocks.js:329 -#: js/PitchBlocks.js:433 -#.TRANS: the current pitch expressed in Hertz -msgid "pitch in hertz" +#: js/blocks/RhythmBlocks.js:661 +msgid "The Dot block extends the duration of a note by 50%." msgstr "" -#: js/PitchBlocks.js:334 -msgid "The Pitch in Hertz block is the value in Hertz of the pitch of the note currently being played." +#: js/blocks/RhythmBlocks.js:663 +msgid "Eg a dotted quarter note will play for 3/8 (1/4 + 1/8) of a beat." msgstr "" -#: js/PitchBlocks.js:367 -#: js/DictActions.js:87 -msgid "current pitch" +#: js/blocks/RhythmBlocks.js:765 +#.TRANS: Japanese only: note value block for drum +msgid "note value drum" msgstr "" -#: js/PitchBlocks.js:373 -msgid "The Current Pitch block is used with the Pitch Converter block. In the example above, current pitch, sol 4, is displayed as 392 hertz." +#: js/blocks/RhythmBlocks.js:829 +msgid "392 hertz" msgstr "" -#: js/PitchBlocks.js:410 -msgid "This block converts the pitch value of the last note played into different formats such as hertz, letter name, pitch number, et al." +#: js/blocks/RhythmBlocks.js:1119 +msgid "The Note block is a container for one or more Pitch blocks." msgstr "" -#: js/PitchBlocks.js:434 -msgid "alphabet" +#: js/blocks/RhythmBlocks.js:1121 +msgid "The Note block specifies the duration (note value) of its contents." msgstr "" -#: js/PitchBlocks.js:436 -#.TRANS: Translate as "alphabet class" -msgid "letter class" +#: js/blocks/RhythmBlocks.js:1128 +#: js/blocks/PitchBlocks.js:974 +#: js/blocks/PitchBlocks.js:1007 +#: js/blocks/ProgramBlocks.js:1186 +#: js/blocks/ProgramBlocks.js:1227 +#: js/widgets/status.js:190 +#: js/widgets/temperament.js:464 +#: js/widgets/temperament.js:486 +#: js/widgets/temperament.js:496 +#: js/widgets/temperament.js:617 +#: plugins/rodi.rtp:192 +#.TRANS: a musical note consisting of pitch and duration +msgid "note" msgstr "" -#: js/PitchBlocks.js:437 -msgid "solfege class" +#: js/blocks/RhythmBlocks.js:1130 +msgid "value2" msgstr "" -#: js/PitchBlocks.js:438 -msgid "staff y" +#: js/blocks/RhythmBlocks.js:1200 +msgid "define frequency" msgstr "" -#: js/PitchBlocks.js:439 -msgid "solfege syllable" +#: js/blocks/RhythmBlocks.js:1218 +#: js/widgets/temperament.js:787 +#: js/widgets/temperament.js:1587 +msgid "octave space" msgstr "" -#: js/PitchBlocks.js:440 -msgid "pitch class" +#: js/blocks/SensorsBlocks.js:36 +msgid "The Input block prompts for keyboard input." msgstr "" -#: js/PitchBlocks.js:441 -msgid "scalar class" +#: js/blocks/SensorsBlocks.js:46 +msgid "input" msgstr "" -#: js/PitchBlocks.js:443 -msgid "nth degree" +#: js/blocks/SensorsBlocks.js:64 +msgid "Input a value" msgstr "" -#: js/PitchBlocks.js:444 -msgid "pitch to shade" +#: js/blocks/SensorsBlocks.js:126 +msgid "input value" msgstr "" -#: js/PitchBlocks.js:445 -msgid "pitch to color" +#: js/blocks/SensorsBlocks.js:131 +msgid "The Input-value block stores the input." msgstr "" -#: js/PitchBlocks.js:629 -#: js/musickeyboard.js:565 -#.TRANS: MIDI is a technical standard for electronic music -msgid "MIDI" +#: js/blocks/SensorsBlocks.js:238 +msgid "loudness" msgstr "" -#: js/PitchBlocks.js:642 -#.TRANS: set an offset associated with the numeric piano keyboard mapping -msgid "set pitch number offset" +#: js/blocks/SensorsBlocks.js:245 +msgid "The Loudness block returns the volume detected by the microphone." msgstr "" -#: js/PitchBlocks.js:645 -msgid "The Set pitch number offset block is used to set the offset for mapping pitch numbers to pitch and octave." +#: js/blocks/SensorsBlocks.js:300 +msgid "click" msgstr "" -#: js/PitchBlocks.js:679 -#.TRANS: convert piano key number (1-88) to pitch -msgid "number to pitch" +#: js/blocks/SensorsBlocks.js:306 +msgid "The Click block triggers an event if a mouse has been clicked." msgstr "" -#: js/PitchBlocks.js:682 -msgid "The Number to pitch block will convert a pitch number to a pich name." +#: js/blocks/SensorsBlocks.js:313 +msgid "The Click block triggers an event if a turtle has been clicked." msgstr "" -#: js/PitchBlocks.js:715 -#.TRANS: convert piano key number (1-88) to octave -msgid "number to octave" +#: js/blocks/SensorsBlocks.js:342 +msgid "cursor over" msgstr "" -#: js/PitchBlocks.js:717 -msgid "The Number to octave block will convert a pitch number to an octave." +#: js/blocks/SensorsBlocks.js:387 +msgid "cursor out" msgstr "" -#: js/PitchBlocks.js:726 -msgid "y to pitch" +#: js/blocks/SensorsBlocks.js:433 +msgid "cursor button down" msgstr "" -#: js/PitchBlocks.js:729 -msgid "Y to pitch block will convert a staff y position to corresponding pitch notation." +#: js/blocks/SensorsBlocks.js:477 +msgid "cursor button up" msgstr "" -#: js/PitchBlocks.js:841 -msgid "accidental selector" +#: js/blocks/SensorsBlocks.js:521 +#: js/blocks/PenBlocks.js:48 +#: plugins/rodi.rtp:219 +msgid "blue" msgstr "" -#: js/PitchBlocks.js:844 -msgid "The Accidental selector block is used to choose between double-sharp, sharp, natural, flat, and double-flat." +#: js/blocks/SensorsBlocks.js:577 +#: js/blocks/PenBlocks.js:64 +#: plugins/rodi.rtp:218 +msgid "green" msgstr "" -#: js/PitchBlocks.js:858 -msgid "Pitch can be specified in terms of ni dha pa ma ga re sa." +#: js/blocks/SensorsBlocks.js:633 +#: js/blocks/PenBlocks.js:112 +#: plugins/rodi.rtp:217 +msgid "red" msgstr "" -#: js/PitchBlocks.js:872 -msgid "Pitch can be specified in terms of C D E F G A B." +#: js/blocks/SensorsBlocks.js:638 +msgid "The Get red block returns the red component of the pixel under the mouse." msgstr "" -#: js/PitchBlocks.js:883 -msgid "solfege" +#: js/blocks/SensorsBlocks.js:644 +msgid "The Get red block returns the red component of the pixel under the turtle." msgstr "" -#: js/PitchBlocks.js:886 -msgid "Pitch can be specified in terms of do re mi fa sol la ti." +#: js/blocks/SensorsBlocks.js:685 +#: plugins/rodi.rtp:216 +msgid "pixel color" msgstr "" -#: js/PitchBlocks.js:920 -msgid "The Invert block rotates any contained notes around a target note." +#: js/blocks/SensorsBlocks.js:690 +msgid "The Get pixel block returns the color of the pixel under the mouse." msgstr "" -#: js/PitchBlocks.js:927 -#.TRANS: pitch inversion rotates a pitch around another pitch -msgid "invert" +#: js/blocks/SensorsBlocks.js:696 +msgid "The Get pixel block returns the color of the pixel under the turtle." msgstr "" -#: js/PitchBlocks.js:929 -#: js/PitchBlocks.js:935 -#: js/PitchActions.js:727 -#: js/musicutils.js:726 -#: js/musicutils.js:902 -#.TRANS: invert based on even or odd number or musical scale -#.TRANS: even numbers -msgid "even" +#: js/blocks/SensorsBlocks.js:758 +msgid "time" msgstr "" -#: js/PitchBlocks.js:935 -#: js/PitchActions.js:729 -#: js/musicutils.js:728 -#: js/musicutils.js:903 -#.TRANS: odd numbers -msgid "odd" +#: js/blocks/SensorsBlocks.js:804 +msgid "cursor y" msgstr "" -#: js/PitchBlocks.js:935 -#: js/PitchActions.js:731 -#: js/musicutils.js:729 -#: js/musicutils.js:904 -msgid "scalar" +#: js/blocks/SensorsBlocks.js:809 +msgid "The Cursor Y block returns the vertical position of the mouse." msgstr "" -#: js/PitchBlocks.js:966 -#.TRANS: pitch inversion rotates a pitch around another pitch (odd number) -msgid "invert (odd)" +#: js/blocks/SensorsBlocks.js:845 +msgid "cursor x" msgstr "" -#: js/PitchBlocks.js:999 -#.TRANS: pitch inversion rotates a pitch around another pitch (even number) -msgid "invert (even)" +#: js/blocks/SensorsBlocks.js:850 +msgid "The Cursor X block returns the horizontal position of the mouse." msgstr "" -#: js/PitchBlocks.js:1020 -#.TRANS: register is the octave of the current pitch -msgid "register" +#: js/blocks/SensorsBlocks.js:886 +msgid "mouse button" msgstr "" -#: js/PitchBlocks.js:1024 -msgid "The Register block provides an easy way to modify the register (octave) of the notes that follow it." +#: js/blocks/SensorsBlocks.js:888 +msgid "The Mouse-button block returns True if the mouse button is pressed." msgstr "" -#: js/PitchBlocks.js:1074 -msgid "The Semi-tone transposition block will shift the pitches contained inside Note blocks up (or down) by half steps." +#: js/blocks/SensorsBlocks.js:934 +msgid "to ASCII" msgstr "" -#: js/PitchBlocks.js:1076 -msgid "In the example shown above, sol is shifted up to sol#." +#: js/blocks/SensorsBlocks.js:938 +msgid "The To ASCII block converts numbers to letters." msgstr "" -#: js/PitchBlocks.js:1082 -#.TRANS: adjust the amount of shift (up or down) of a pitch -msgid "semi-tone transpose" +#: js/blocks/SensorsBlocks.js:1005 +msgid "The Keyboard block returns computer keyboard input." msgstr "" -#: js/PitchBlocks.js:1115 -msgid "The Transpose by Ratio block will shift the pitches contained inside Note blocks up (or down) by a ratio" +#: js/blocks/RhythmBlockPaletteBlocks.js:50 +#: js/blocks/RhythmBlockPaletteBlocks.js:233 +#.TRANS: rhythm block +#.TRANS: translate "rhythm1" as rhythm +msgid "rhythm1" msgstr "" -#: js/PitchBlocks.js:1121 -#.TRANS: adjust the amount of shift (up or down) of a pitch -msgid "transpose by ratio" +#: js/blocks/RhythmBlockPaletteBlocks.js:70 +#: js/blocks/RhythmBlockPaletteBlocks.js:252 +#: js/blocks/RhythmBlockPaletteBlocks.js:485 +#: js/blocks/RhythmBlockPaletteBlocks.js:554 +#: js/blocks/RhythmBlockPaletteBlocks.js:875 +msgid "number of notes" msgstr "" -#: js/PitchBlocks.js:1204 -#.TRANS: down sixth means the note is five scale degrees below current note -msgid "down sixth" +#: js/blocks/RhythmBlockPaletteBlocks.js:126 +msgid "polyphonic rhythm" msgstr "" -#: js/PitchBlocks.js:1223 -#.TRANS: down third means the note is two scale degrees below current note -msgid "down third" +#: js/blocks/RhythmBlockPaletteBlocks.js:219 +msgid "The Rhythm block is used to generate rhythm patterns." msgstr "" -#: js/PitchBlocks.js:1242 -#.TRANS: seventh means the note is the six scale degrees above current note -msgid "seventh" +#: js/blocks/RhythmBlockPaletteBlocks.js:280 +msgid "1/64 note" msgstr "" -#: js/PitchBlocks.js:1261 -#.TRANS: sixth means the note is the five scale degrees above current note -msgid "sixth" +#: js/blocks/RhythmBlockPaletteBlocks.js:304 +msgid "1/32 note" msgstr "" -#: js/PitchBlocks.js:1280 -#.TRANS: fifth means the note is the four scale degrees above current note -msgid "fifth" +#: js/blocks/RhythmBlockPaletteBlocks.js:332 +msgid "1/16 note" msgstr "" -#: js/PitchBlocks.js:1300 -#.TRANS: fourth means the note is three scale degrees above current note -msgid "fourth" +#: js/blocks/RhythmBlockPaletteBlocks.js:360 +msgid "eighth note" msgstr "" -#: js/PitchBlocks.js:1319 -#.TRANS: third means the note is two scale degrees above current note -msgid "third" +#: js/blocks/RhythmBlockPaletteBlocks.js:388 +msgid "quarter note" msgstr "" -#: js/PitchBlocks.js:1338 -#.TRANS: second means the note is one scale degree above current note -msgid "second" +#: js/blocks/RhythmBlockPaletteBlocks.js:416 +msgid "half note" msgstr "" -#: js/PitchBlocks.js:1379 -msgid "The Scalar transposition block will shift the pitches contained inside Note blocks up (or down) the scale." +#: js/blocks/RhythmBlockPaletteBlocks.js:444 +msgid "whole note" msgstr "" -#: js/PitchBlocks.js:1381 -msgid "In the example shown above, sol is shifted up to la." +#: js/blocks/RhythmBlockPaletteBlocks.js:482 +#: js/blocks/RhythmBlockPaletteBlocks.js:551 +#: js/blocks/RhythmBlockPaletteBlocks.js:602 +#.TRANS: A tuplet is a note value divided into irregular time values. +msgid "tuplet" msgstr "" -#: js/PitchBlocks.js:1388 -#.TRANS: adjust the amount of shift (up or down) of a pitch by musical scale (scalar) steps -msgid "scalar transpose" +#: js/blocks/RhythmBlockPaletteBlocks.js:768 +msgid "septuplet" msgstr "" -#: js/PitchBlocks.js:1423 -msgid "The Accidental block is used to create sharps and flats" +#: js/blocks/RhythmBlockPaletteBlocks.js:796 +msgid "quintuplet" msgstr "" -#: js/PitchBlocks.js:1430 -#.TRANS: An accidental is a modification to a pitch, e.g., sharp or flat. -msgid "accidental override" +#: js/blocks/RhythmBlockPaletteBlocks.js:824 +msgid "triplet" msgstr "" -#: js/PitchBlocks.js:1543 -msgid "The Hertz block (in combination with a Number block) will play a sound at the specified frequency." +#: js/blocks/RhythmBlockPaletteBlocks.js:851 +msgid "simple tuplet" msgstr "" -#: js/PitchBlocks.js:1633 -msgid "The Pitch Number block will play a pitch associated by its number, e.g. 0 for C and 7 for G." +#: js/blocks/RhythmBlockPaletteBlocks.js:861 +msgid "Tuplets are a collection of notes that get scaled to a specific duration." msgstr "" -#: js/PitchBlocks.js:1665 -#: js/PitchBlocks.js:1707 -#.TRANS: a numeric mapping of the notes in an octave based on the musical mode -#.TRANS: a numeric mapping of the notes in an octave based on the musical mode -msgid "nth modal pitch" +#: js/blocks/DrumBlocks.js:59 +msgid "The Noise name block is used to select a noise synthesizer." msgstr "" -#: js/PitchBlocks.js:1668 -msgid "n^th Modal Pitch takes the pattern of pitches in semitones for a mode and makes each point a degree of the mode," +#: js/blocks/DrumBlocks.js:102 +msgid "The Drum name block is used to select a drum." msgstr "" -#: js/PitchBlocks.js:1670 -msgid "starting from 1 and regardless of tonal framework (i.e. not always 8 notes in the octave)" +#: js/blocks/DrumBlocks.js:146 +msgid "The Effects name block is used to select a sound effect." msgstr "" -#: js/PitchBlocks.js:1711 -msgid "N^th Modal Pitch takes a number as an input as the n^th degree for the given mode. 0 is the first position, 1 is the second, -1 is the note before the first etc." +#: js/blocks/DrumBlocks.js:163 +msgid "noise" msgstr "" -#: js/PitchBlocks.js:1713 -msgid "The pitches change according to the mode specified without any need for respellings." +#: js/blocks/DrumBlocks.js:177 +msgid "The Play noise block will generate white, pink, or brown noise." msgstr "" -#: js/PitchBlocks.js:1752 -msgid "Scale Degree is a common convention in music. Scale Degree offers seven possible positions in the scale (1-7) and can be modified via accidentals." +#: js/blocks/DrumBlocks.js:317 +msgid "Replace every instance of a pitch with a drum sound." msgstr "" -#: js/PitchBlocks.js:1754 -msgid "Scale Degree 1 is always the first pitch in a given scale, regardless of octave." +#: js/blocks/DrumBlocks.js:328 +#.TRANS: map a pitch to a drum sound +msgid "map pitch to drum" msgstr "" -#: js/PitchBlocks.js:1776 -#.TRANS: step some number of notes in current musical scale -msgid "scalar step" +#: js/blocks/DrumBlocks.js:395 +msgid "In the example above, a kick drum sound will be played instead of sol." msgstr "" -#: js/PitchBlocks.js:1781 -msgid "The Scalar Step block (in combination with a Number block) will play the next pitch in a scale," +#: js/blocks/DrumBlocks.js:407 +#.TRANS: set the current drum sound for playback +msgid "set drum" msgstr "" -#: js/PitchBlocks.js:1783 -msgid "eg if the last note played was sol, Scalar Step 1 will play la." +#: js/blocks/DrumBlocks.js:451 +msgid "sound effect" msgstr "" -#: js/PitchBlocks.js:1818 -msgid "The Pitch block specifies the pitch name and octave of a note that together determine the frequency of the note." +#: js/blocks/DrumBlocks.js:489 +msgid "You can use multiple Drum blocks within a Note block." msgstr "" -#: js/GraphicsBlocks.js:46 -#: js/DictActions.js:77 -#: js/DictActions.js:155 -#: js/DictActions.js:189 +#: js/blocks/GraphicsBlocks.js:46 +#: js/turtleactions/DictActions.js:77 +#: js/turtleactions/DictActions.js:144 +#: js/turtleactions/DictActions.js:173 msgid "heading" msgstr "" -#: js/GraphicsBlocks.js:56 +#: js/blocks/GraphicsBlocks.js:56 msgid "The Heading block returns the orientation of the mouse." msgstr "" -#: js/GraphicsBlocks.js:62 +#: js/blocks/GraphicsBlocks.js:62 msgid "The Heading block returns the orientation of the turtle." msgstr "" -#: js/GraphicsBlocks.js:133 +#: js/blocks/GraphicsBlocks.js:133 msgid "The Y block returns the vertical position of the mouse." msgstr "" -#: js/GraphicsBlocks.js:140 +#: js/blocks/GraphicsBlocks.js:140 msgid "The Y block returns the vertical position of the turtle." msgstr "" -#: js/GraphicsBlocks.js:149 +#: js/blocks/GraphicsBlocks.js:149 msgid "y3" msgstr "" -#: js/GraphicsBlocks.js:219 +#: js/blocks/GraphicsBlocks.js:219 msgid "The X block returns the horizontal position of the mouse." msgstr "" -#: js/GraphicsBlocks.js:226 +#: js/blocks/GraphicsBlocks.js:226 msgid "The X block returns the horizontal position of the turtle." msgstr "" -#: js/GraphicsBlocks.js:235 +#: js/blocks/GraphicsBlocks.js:235 msgid "x3" msgstr "" -#: js/GraphicsBlocks.js:295 +#: js/blocks/GraphicsBlocks.js:295 msgid "scroll xy" msgstr "" -#: js/GraphicsBlocks.js:303 +#: js/blocks/GraphicsBlocks.js:303 msgid "The Scroll XY block moves the canvas." msgstr "" -#: js/GraphicsBlocks.js:313 +#: js/blocks/GraphicsBlocks.js:313 msgid "x2" msgstr "" -#: js/GraphicsBlocks.js:313 +#: js/blocks/GraphicsBlocks.js:313 msgid "y2" msgstr "" -#: js/GraphicsBlocks.js:373 -#: js/temperament.js:213 -#: js/temperament.js:241 +#: js/blocks/GraphicsBlocks.js:373 +#: js/widgets/temperament.js:319 +#: js/widgets/temperament.js:347 msgid "clear" msgstr "" -#: js/GraphicsBlocks.js:426 +#: js/blocks/GraphicsBlocks.js:426 msgid "The Control-point 2 block sets the second control point for the Bezier curve." msgstr "" -#: js/GraphicsBlocks.js:433 +#: js/blocks/GraphicsBlocks.js:433 msgid "control point 2" msgstr "" -#: js/GraphicsBlocks.js:436 -#: js/GraphicsBlocks.js:487 -#: js/GraphicsBlocks.js:534 -#: js/GraphicsBlocks.js:750 +#: js/blocks/GraphicsBlocks.js:436 +#: js/blocks/GraphicsBlocks.js:487 +#: js/blocks/GraphicsBlocks.js:534 +#: js/blocks/GraphicsBlocks.js:750 msgid "x1" msgstr "" -#: js/GraphicsBlocks.js:436 -#: js/GraphicsBlocks.js:487 -#: js/GraphicsBlocks.js:534 -#: js/GraphicsBlocks.js:750 +#: js/blocks/GraphicsBlocks.js:436 +#: js/blocks/GraphicsBlocks.js:487 +#: js/blocks/GraphicsBlocks.js:534 +#: js/blocks/GraphicsBlocks.js:750 msgid "y1" msgstr "" -#: js/GraphicsBlocks.js:477 +#: js/blocks/GraphicsBlocks.js:477 msgid "The Control-point 1 block sets the first control point for the Bezier curve." msgstr "" -#: js/GraphicsBlocks.js:484 +#: js/blocks/GraphicsBlocks.js:484 msgid "control point 1" msgstr "" -#: js/GraphicsBlocks.js:527 +#: js/blocks/GraphicsBlocks.js:527 msgid "The Bezier block draws a Bezier curve." msgstr "" -#: js/GraphicsBlocks.js:531 +#: js/blocks/GraphicsBlocks.js:531 msgid "bezier" msgstr "" -#: js/GraphicsBlocks.js:592 +#: js/blocks/GraphicsBlocks.js:592 msgid "The Arc block moves the turtle in an arc." msgstr "" -#: js/GraphicsBlocks.js:600 +#: js/blocks/GraphicsBlocks.js:600 msgid "arc" msgstr "" -#: js/GraphicsBlocks.js:603 +#: js/blocks/GraphicsBlocks.js:603 msgid "angle" msgstr "" -#: js/GraphicsBlocks.js:603 +#: js/blocks/GraphicsBlocks.js:603 msgid "radius" msgstr "" -#: js/GraphicsBlocks.js:620 -#: js/GraphicsBlocks.js:767 -#: js/GraphicsBlocks.js:1010 -#: js/GraphicsBlocks.js:1093 +#: js/blocks/GraphicsBlocks.js:620 +#: js/blocks/GraphicsBlocks.js:767 +#: js/blocks/GraphicsBlocks.js:1010 +#: js/blocks/GraphicsBlocks.js:1093 msgid "Value must be within -5000 to 5000 when Wrap Mode is off." msgstr "" -#: js/GraphicsBlocks.js:622 -#: js/GraphicsBlocks.js:769 -#: js/GraphicsBlocks.js:1012 -#: js/GraphicsBlocks.js:1095 +#: js/blocks/GraphicsBlocks.js:622 +#: js/blocks/GraphicsBlocks.js:769 +#: js/blocks/GraphicsBlocks.js:1012 +#: js/blocks/GraphicsBlocks.js:1095 msgid "Value must be within -20000 to 20000 when Wrap Mode is on." msgstr "" -#: js/GraphicsBlocks.js:660 +#: js/blocks/GraphicsBlocks.js:660 msgid "set heading" msgstr "" -#: js/GraphicsBlocks.js:673 +#: js/blocks/GraphicsBlocks.js:673 msgid "The Set heading block sets the heading of the turtle." msgstr "" -#: js/GraphicsBlocks.js:733 +#: js/blocks/GraphicsBlocks.js:733 msgid "The Set XY block moves the mouse to a specific position on the screen." msgstr "" -#: js/GraphicsBlocks.js:739 +#: js/blocks/GraphicsBlocks.js:739 msgid "The Set XY block moves the turtle to a specific position on the screen." msgstr "" -#: js/GraphicsBlocks.js:747 +#: js/blocks/GraphicsBlocks.js:747 msgid "set xy" msgstr "" -#: js/GraphicsBlocks.js:819 +#: js/blocks/GraphicsBlocks.js:819 msgid "The Right block turns the mouse to the right." msgstr "" -#: js/GraphicsBlocks.js:826 +#: js/blocks/GraphicsBlocks.js:826 msgid "The Right block turns the turtle to the right." msgstr "" -#: js/GraphicsBlocks.js:835 +#: js/blocks/GraphicsBlocks.js:835 msgid "right1" msgstr "" -#: js/GraphicsBlocks.js:835 +#: js/blocks/GraphicsBlocks.js:835 #: plugins/rodi.rtp:77 #: plugins/rodi.rtp:340 #: plugins/rodi.rtp:375 msgid "right" msgstr "" -#: js/GraphicsBlocks.js:899 +#: js/blocks/GraphicsBlocks.js:899 msgid "The Left block turns the mouse to the left." msgstr "" -#: js/GraphicsBlocks.js:906 +#: js/blocks/GraphicsBlocks.js:906 msgid "The Left block turns the turtle to the left." msgstr "" -#: js/GraphicsBlocks.js:915 +#: js/blocks/GraphicsBlocks.js:915 msgid "left1" msgstr "" -#: js/GraphicsBlocks.js:915 +#: js/blocks/GraphicsBlocks.js:915 #: plugins/rodi.rtp:79 #: plugins/rodi.rtp:339 #: plugins/rodi.rtp:362 msgid "left" msgstr "" -#: js/GraphicsBlocks.js:967 -#: js/temperament.js:734 -#: js/temperament.js:933 +#: js/blocks/GraphicsBlocks.js:967 +#: js/widgets/temperament.js:875 +#: js/widgets/temperament.js:1078 #: plugins/rodi.rtp:69 #: plugins/rodi.rtp:387 msgid "back" msgstr "" -#: js/GraphicsBlocks.js:976 +#: js/blocks/GraphicsBlocks.js:976 msgid "The Back block moves the mouse backward." msgstr "" -#: js/GraphicsBlocks.js:983 +#: js/blocks/GraphicsBlocks.js:983 msgid "The Back block moves the turtle backward." msgstr "" -#: js/GraphicsBlocks.js:1050 +#: js/blocks/GraphicsBlocks.js:1050 #: plugins/rodi.rtp:71 #: plugins/rodi.rtp:400 msgid "forward" msgstr "" -#: js/GraphicsBlocks.js:1059 +#: js/blocks/GraphicsBlocks.js:1059 msgid "The Forward block moves the mouse forward." msgstr "" -#: js/GraphicsBlocks.js:1066 +#: js/blocks/GraphicsBlocks.js:1066 msgid "The Forward block moves the turtle forward." msgstr "" -#: js/GraphicsBlocks.js:1154 -#: js/GraphicsBlocks.js:1172 +#: js/blocks/GraphicsBlocks.js:1154 +#: js/blocks/GraphicsBlocks.js:1172 msgid "wrap" msgstr "" -#: js/OrnamentBlocks.js:32 -msgid "staccato factor" -msgstr "" - -#: js/OrnamentBlocks.js:108 -msgid "slur factor" -msgstr "" - -#: js/OrnamentBlocks.js:217 -#: js/OrnamentBlocks.js:309 -#.TRANS: the neighbor refers to a neighboring note, e.g., D is a neighbor of C -msgid "neighbor" -msgstr "" - -#: js/OrnamentBlocks.js:293 -msgid "The Neighbor block rapidly switches between neighboring pitches." -msgstr "" - -#: js/OrnamentBlocks.js:364 -msgid "glide" -msgstr "" - -#: js/OrnamentBlocks.js:479 -#: js/OrnamentBlocks.js:643 -msgid "slur" -msgstr "" - -#: js/OrnamentBlocks.js:558 -#: js/OrnamentBlocks.js:710 -#.TRANS: play each note sharply detached from the others -msgid "staccato" -msgstr "" - -#: js/PenBlocks.js:24 +#: js/blocks/PenBlocks.js:30 msgid "purple" msgstr "" -#: js/PenBlocks.js:37 -#: js/SensorsBlocks.js:521 -#: plugins/rodi.rtp:219 -msgid "blue" -msgstr "" - -#: js/PenBlocks.js:50 -#: js/SensorsBlocks.js:577 -#: plugins/rodi.rtp:218 -msgid "green" -msgstr "" - -#: js/PenBlocks.js:63 +#: js/blocks/PenBlocks.js:80 msgid "yellow" msgstr "" -#: js/PenBlocks.js:76 +#: js/blocks/PenBlocks.js:96 #: plugins/nutrition.rtp:164 msgid "orange" msgstr "" -#: js/PenBlocks.js:89 -#: js/SensorsBlocks.js:633 -#: plugins/rodi.rtp:217 -msgid "red" -msgstr "" - -#: js/PenBlocks.js:102 +#: js/blocks/PenBlocks.js:128 msgid "white" msgstr "" -#: js/PenBlocks.js:115 +#: js/blocks/PenBlocks.js:144 msgid "black" msgstr "" -#: js/PenBlocks.js:128 +#: js/blocks/PenBlocks.js:163 msgid "begin fill" msgstr "" -#: js/PenBlocks.js:143 +#: js/blocks/PenBlocks.js:190 msgid "end fill" msgstr "" -#: js/PenBlocks.js:159 -#: js/PenBlocks.js:386 +#: js/blocks/PenBlocks.js:212 +#: js/blocks/PenBlocks.js:560 #.TRANS: set the background color msgid "background" msgstr "" -#: js/PenBlocks.js:206 -#: js/DictActions.js:71 -#: js/DictActions.js:149 -#: js/DictActions.js:186 +#: js/blocks/PenBlocks.js:274 +#: js/turtleactions/DictActions.js:71 +#: js/turtleactions/DictActions.js:138 +#: js/turtleactions/DictActions.js:170 msgid "grey" msgstr "" -#: js/PenBlocks.js:210 +#: js/blocks/PenBlocks.js:282 msgid "The Grey block returns the current pen grey value." msgstr "" -#: js/PenBlocks.js:243 -#: js/DictActions.js:69 -#: js/DictActions.js:147 -#: js/DictActions.js:185 +#: js/blocks/PenBlocks.js:340 +#: js/turtleactions/DictActions.js:69 +#: js/turtleactions/DictActions.js:136 +#: js/turtleactions/DictActions.js:169 msgid "shade" msgstr "" -#: js/PenBlocks.js:247 +#: js/blocks/PenBlocks.js:347 msgid "The Shade block returns the current pen shade value." msgstr "" -#: js/PenBlocks.js:280 -#: js/DictActions.js:67 -#: js/DictActions.js:145 -#: js/DictActions.js:184 +#: js/blocks/PenBlocks.js:405 +#: js/turtleactions/DictActions.js:67 +#: js/turtleactions/DictActions.js:134 +#: js/turtleactions/DictActions.js:168 msgid "color" msgstr "" -#: js/PenBlocks.js:285 +#: js/blocks/PenBlocks.js:415 msgid "The Color block returns the current pen color." msgstr "" -#: js/PenBlocks.js:318 -#: js/DictActions.js:73 -#: js/DictActions.js:151 -#: js/DictActions.js:187 +#: js/blocks/PenBlocks.js:470 +#: js/turtleactions/DictActions.js:73 +#: js/turtleactions/DictActions.js:140 +#: js/turtleactions/DictActions.js:171 msgid "pen size" msgstr "" -#: js/PenBlocks.js:322 +#: js/blocks/PenBlocks.js:474 msgid "The Pen size block returns the current pen size value." msgstr "" -#: js/PenBlocks.js:355 +#: js/blocks/PenBlocks.js:513 msgid "set font" msgstr "" -#: js/PenBlocks.js:358 +#: js/blocks/PenBlocks.js:518 msgid "The Set font block sets the font used by the Show block." msgstr "" -#: js/PenBlocks.js:391 +#: js/blocks/PenBlocks.js:567 msgid "The Background block sets the window background color." msgstr "" -#: js/PenBlocks.js:408 +#: js/blocks/PenBlocks.js:598 msgid "The Hollow line block creates a line with a hollow center." msgstr "" -#: js/PenBlocks.js:415 +#: js/blocks/PenBlocks.js:606 #.TRANS: draw a line logo has a hollow space down its center msgid "hollow line" msgstr "" -#: js/PenBlocks.js:462 +#: js/blocks/PenBlocks.js:675 msgid "The Fill block fills in a shape with a color." msgstr "" -#: js/PenBlocks.js:470 +#: js/blocks/PenBlocks.js:684 #.TRANS: fill in as a solid color msgid "fill" msgstr "" -#: js/PenBlocks.js:527 +#: js/blocks/PenBlocks.js:761 #.TRANS: raise up the pen so logo it does not draw when it is moved msgid "pen up" msgstr "" -#: js/PenBlocks.js:532 +#: js/blocks/PenBlocks.js:768 msgid "The Pen-up block raises the pen so that it does not draw." msgstr "" -#: js/PenBlocks.js:552 +#: js/blocks/PenBlocks.js:802 #.TRANS: put down the pen so logo it draws when it is moved msgid "pen down" msgstr "" -#: js/PenBlocks.js:557 +#: js/blocks/PenBlocks.js:810 msgid "The Pen-down block lowers the pen so that it draws." msgstr "" -#: js/PenBlocks.js:577 +#: js/blocks/PenBlocks.js:844 #.TRANS: set the width of the line drawn by the pen msgid "set pen size" msgstr "" -#: js/PenBlocks.js:583 +#: js/blocks/PenBlocks.js:854 msgid "The Set-pen-size block changes the size of the pen." msgstr "" -#: js/PenBlocks.js:623 +#: js/blocks/PenBlocks.js:913 #.TRANS: set degree of translucence of the pen color msgid "set translucency" msgstr "" -#: js/PenBlocks.js:627 +#: js/blocks/PenBlocks.js:921 msgid "The Set translucency block changes the opacity of the pen." msgstr "" -#: js/PenBlocks.js:668 +#: js/blocks/PenBlocks.js:981 msgid "set hue" msgstr "" -#: js/PenBlocks.js:672 +#: js/blocks/PenBlocks.js:989 msgid "The Set hue block changes the color of the pen." msgstr "" -#: js/PenBlocks.js:711 +#: js/blocks/PenBlocks.js:1047 msgid "set shade" msgstr "" -#: js/PenBlocks.js:717 +#: js/blocks/PenBlocks.js:1057 msgid "The Set-shade block changes the pen color from dark to light." msgstr "" -#: js/PenBlocks.js:757 +#: js/blocks/PenBlocks.js:1111 #.TRANS: set the level of vividness of the pen color msgid "set grey" msgstr "" -#: js/PenBlocks.js:761 +#: js/blocks/PenBlocks.js:1119 msgid "The Set grey block changes the vividness of the pen color." msgstr "" -#: js/PenBlocks.js:800 +#: js/blocks/PenBlocks.js:1172 msgid "set color" msgstr "" -#: js/PenBlocks.js:806 +#: js/blocks/PenBlocks.js:1182 msgid "The Set-color block changes the pen color." msgstr "" -#: js/VolumeBlocks.js:35 -msgid "synth volume" -msgstr "" - -#: js/VolumeBlocks.js:39 -msgid "The Synth volume block returns the current volume of the current synthesizer." -msgstr "" - -#: js/VolumeBlocks.js:47 -#: js/musicutils.js:730 -#: js/synthutils.js:56 -#.TRANS: musical instrument -msgid "piano" -msgstr "" - -#: js/VolumeBlocks.js:105 -msgid "master volume" -msgstr "" - -#: js/VolumeBlocks.js:109 -msgid "The Master volume block returns the master volume." -msgstr "" - -#: js/VolumeBlocks.js:355 -#: js/VolumeBlocks.js:524 -msgid "set synth volume" -msgstr "" - -#: js/VolumeBlocks.js:362 -#: js/VolumeBlocks.js:545 -msgid "synth" -msgstr "" - -#: js/VolumeBlocks.js:403 -#: js/VolumeBlocks.js:577 -#: js/VolumeBlocks.js:740 -#: js/VolumeActions.js:173 -msgid "Setting volume to 0." -msgstr "" - -#: js/VolumeBlocks.js:440 -msgid "Synth not found" -msgstr "" - -#: js/VolumeBlocks.js:494 -msgid "set drum volume" -msgstr "" - -#: js/VolumeBlocks.js:530 -msgid "The Set synth volume block will change the volume of a particular synth," -msgstr "" - -#: js/VolumeBlocks.js:532 -msgid "eg guitar violin snare drum etc." -msgstr "" - -#: js/VolumeBlocks.js:534 -msgid "The default volume is 50." -msgstr "" - -#: js/VolumeBlocks.js:536 -msgid "The range is 0 for silence to 100 for full volume." -msgstr "" - -#: js/VolumeBlocks.js:597 -msgid "set panning" -msgstr "" - -#: js/VolumeBlocks.js:603 -msgid "The Set Panning block sets the panning for all synthesizers." -msgstr "" - -#: js/VolumeBlocks.js:625 -msgid "Warning: Sound is coming out from only the left or right side." -msgstr "" - -#: js/VolumeBlocks.js:647 -#: js/VolumeBlocks.js:695 -msgid "set master volume" -msgstr "" - -#: js/VolumeBlocks.js:653 -msgid "The Set master volume block sets the volume for all synthesizers." -msgstr "" - -#: js/VolumeBlocks.js:784 -msgid "The Set relative volume block changes the volume of the contained notes." -msgstr "" - -#: js/VolumeBlocks.js:791 -msgid "set relative volume" -msgstr "" - -#: js/VolumeBlocks.js:857 -msgid "decrescendo" -msgstr "" - -#: js/VolumeBlocks.js:921 -msgid "crescendo" -msgstr "" - -#: js/ToneBlocks.js:34 -msgid "oscillator" -msgstr "" - -#: js/ToneBlocks.js:44 -#: js/timbre.js:1562 -#.TRANS: Partials refers to the number of sine waves combined into the sound. -msgid "partials" -msgstr "" - -#: js/ToneBlocks.js:76 -msgid "You are adding multiple oscillator blocks." -msgstr "" - -#: js/ToneBlocks.js:144 -#: js/timbre.js:1225 -#.TRANS: a duo synthesizer combines a synth with a sequencer -msgid "duo synth" -msgstr "" - -#: js/ToneBlocks.js:149 -msgid "The Duo synth block is a duo-frequency modulator used to define a timbre." -msgstr "" - -#: js/ToneBlocks.js:157 -#: js/timbre.js:1476 -msgid "vibrato rate" -msgstr "" - -#: js/ToneBlocks.js:157 -msgid "vibrato intensity" -msgstr "" - -#: js/ToneBlocks.js:185 -#: js/timbre.js:1221 -#.TRANS: AM (amplitude modulation) synthesizer -msgid "AM synth" -msgstr "" - -#: js/ToneBlocks.js:189 -msgid "The AM synth block is an amplitude modulator used to define a timbre." -msgstr "" - -#: js/ToneBlocks.js:224 -#: js/timbre.js:1223 -#.TRANS: FM (frequency modulation) synthesizer -msgid "FM synth" -msgstr "" - -#: js/ToneBlocks.js:228 -msgid "The FM synth block is a frequency modulator used to define a timbre." +#: js/blocks/PitchBlocks.js:141 +#.TRANS: musical transposition (adjustment of pitch up or down) +msgid "transposition" msgstr "" -#: js/ToneBlocks.js:262 -msgid "partial" +#: js/blocks/PitchBlocks.js:168 +#.TRANS: step down one note in current musical scale +msgid "scalar step down" msgstr "" -#: js/ToneBlocks.js:265 -msgid "The Partial block is used to specify a weight for a specific partial harmonic." +#: js/blocks/PitchBlocks.js:172 +msgid "The Scalar step down block returns the number of semi-tones down to the previous note in the current key and mode." msgstr "" -#: js/ToneBlocks.js:284 -#.TRANS: partials are weighted components in a harmonic series -msgid "Partial weight must be between 0 and 1." +#: js/blocks/PitchBlocks.js:190 +#.TRANS: step up one note in current musical scale +msgid "scalar step up" msgstr "" -#: js/ToneBlocks.js:297 -#.TRANS: partials are weighted components in a harmonic series -msgid "Partial block should be used inside of a Weighted-partials block." +#: js/blocks/PitchBlocks.js:194 +msgid "The Scalar step up block returns the number of semi-tones up to the next note in the current key and mode." msgstr "" -#: js/ToneBlocks.js:325 -#.TRANS: partials are weighted components in a harmonic series -msgid "weighted partials" +#: js/blocks/PitchBlocks.js:212 +#.TRANS: the change measured in half-steps between the current pitch and the previous pitch +msgid "change in pitch" msgstr "" -#: js/ToneBlocks.js:383 -msgid "The Harmonic block will add harmonics to the contained notes." +#: js/blocks/PitchBlocks.js:216 +msgid "The Change in pitch block is the difference (in half steps) between the current pitch being played and the previous pitch played." msgstr "" -#: js/ToneBlocks.js:390 -#.TRANS: A harmonic is an overtone. -msgid "harmonic" +#: js/blocks/PitchBlocks.js:243 +#.TRANS: the change measured in scale-steps between the current pitch and the previous pitch +msgid "scalar change in pitch" msgstr "" -#: js/ToneBlocks.js:431 -msgid "The Distortion block adds distortion to the pitch." +#: js/blocks/PitchBlocks.js:250 +#: js/blocks/PitchBlocks.js:432 +#: js/blocks/PitchBlocks.js:1667 +#: js/turtleactions/DictActions.js:89 +#: js/widgets/temperament.js:610 +#: js/widgets/temperament.js:614 +#: js/widgets/temperament.js:855 +#.TRANS: convert current note to piano key (1-88) +#.TRANS: a mapping of pitch to the 88 piano keys +msgid "pitch number" msgstr "" -#: js/ToneBlocks.js:438 -#: js/timbre.js:2100 -#.TRANS: distortion is an alteration in the sound -msgid "distortion" +#: js/blocks/PitchBlocks.js:256 +msgid "The Pitch number block is the value of the pitch of the note currently being played." msgstr "" -#: js/ToneBlocks.js:487 -msgid "The Tremolo block adds a wavering effect." +#: js/blocks/PitchBlocks.js:329 +#: js/blocks/PitchBlocks.js:433 +#.TRANS: the current pitch expressed in Hertz +msgid "pitch in hertz" msgstr "" -#: js/ToneBlocks.js:495 -#: js/timbre.js:2092 -#.TRANS: a wavering effect in a musical tone -msgid "tremolo" +#: js/blocks/PitchBlocks.js:334 +msgid "The Pitch in Hertz block is the value in Hertz of the pitch of the note currently being played." msgstr "" -#: js/ToneBlocks.js:500 -#: js/ToneBlocks.js:569 -#: js/ToneBlocks.js:630 -#: js/ToneBlocks.js:689 -#: js/timbre.js:2134 -#: js/timbre.js:2222 -#: js/timbre.js:2317 -#: js/timbre.js:2419 -#.TRANS: rate at which tremolo wavers -msgid "rate" +#: js/blocks/PitchBlocks.js:367 +#: js/turtleactions/DictActions.js:87 +msgid "current pitch" msgstr "" -#: js/ToneBlocks.js:502 -#: js/ToneBlocks.js:630 -#: js/timbre.js:2137 -#: js/timbre.js:2328 -#.TRANS: amplitude of tremolo waver -msgid "depth" +#: js/blocks/PitchBlocks.js:373 +msgid "The Current Pitch block is used with the Pitch Converter block. In the example above, current pitch, sol 4, is displayed as 392 hertz." msgstr "" -#: js/ToneBlocks.js:559 -msgid "The Phaser block adds a sweeping sound." +#: js/blocks/PitchBlocks.js:410 +msgid "This block converts the pitch value of the last note played into different formats such as hertz, letter name, pitch number, et al." msgstr "" -#: js/ToneBlocks.js:566 -#: js/timbre.js:2098 -#.TRANS: alter the phase of the sound -msgid "phaser" +#: js/blocks/PitchBlocks.js:434 +msgid "alphabet" msgstr "" -#: js/ToneBlocks.js:569 -#: js/timbre.js:2422 -msgid "octaves" +#: js/blocks/PitchBlocks.js:436 +#.TRANS: Translate as "alphabet class" +msgid "letter class" msgstr "" -#: js/ToneBlocks.js:569 -#: js/timbre.js:2425 -msgid "base frequency" +#: js/blocks/PitchBlocks.js:437 +msgid "solfege class" msgstr "" -#: js/ToneBlocks.js:619 -msgid "The Chorus block adds a chorus effect." +#: js/blocks/PitchBlocks.js:438 +msgid "staff y" msgstr "" -#: js/ToneBlocks.js:627 -#: js/timbre.js:2096 -#.TRANS: musical effect to simulate a choral sound -msgid "chorus" +#: js/blocks/PitchBlocks.js:439 +msgid "solfege syllable" msgstr "" -#: js/ToneBlocks.js:630 -msgid "delay" +#: js/blocks/PitchBlocks.js:440 +msgid "pitch class" msgstr "" -#: js/ToneBlocks.js:678 -msgid "The Vibrato block adds a rapid, slight variation in pitch." +#: js/blocks/PitchBlocks.js:441 +msgid "scalar class" msgstr "" -#: js/ToneBlocks.js:686 -#: js/timbre.js:2094 -#.TRANS: a rapid, slight variation in pitch -msgid "vibrato" +#: js/blocks/PitchBlocks.js:443 +msgid "nth degree" msgstr "" -#: js/ToneBlocks.js:689 -#: js/timbre.js:2221 -msgid "intensity" +#: js/blocks/PitchBlocks.js:444 +msgid "pitch to shade" msgstr "" -#: js/ToneBlocks.js:733 -#.TRANS: select synthesizer -msgid "set synth" +#: js/blocks/PitchBlocks.js:445 +msgid "pitch to color" msgstr "" -#: js/ToneBlocks.js:804 -msgid "synth name" +#: js/blocks/PitchBlocks.js:629 +#: js/widgets/musickeyboard.js:735 +#.TRANS: MIDI is a technical standard for electronic music +msgid "MIDI" msgstr "" -#: js/ToneBlocks.js:842 -msgid "set default instrument" +#: js/blocks/PitchBlocks.js:642 +#.TRANS: set an offset associated with the numeric piano keyboard mapping +msgid "set pitch number offset" msgstr "" -#: js/ToneBlocks.js:895 -#: js/ToneBlocks.js:943 -#.TRANS: set the characteristics of a custom instrument -msgid "set instrument" +#: js/blocks/PitchBlocks.js:645 +msgid "The Set pitch number offset block is used to set the offset for mapping pitch numbers to pitch and octave." msgstr "" -#: js/ToneBlocks.js:898 -#: js/ToneBlocks.js:926 -#: js/ToneBlocks.js:932 -msgid "The Set instrument block selects a voice for the synthesizer," +#: js/blocks/PitchBlocks.js:679 +#.TRANS: convert piano key number (1-88) to pitch +msgid "number to pitch" msgstr "" -#: js/ToneBlocks.js:900 -#: js/ToneBlocks.js:934 -msgid "eg guitar piano violin or cello." +#: js/blocks/PitchBlocks.js:682 +msgid "The Number to pitch block will convert a pitch number to a pich name." msgstr "" -#: js/ToneBlocks.js:1015 -msgid "Import a sound file to use as an instrument and set its pitch center." +#: js/blocks/PitchBlocks.js:715 +#.TRANS: convert piano key number (1-88) to octave +msgid "number to octave" msgstr "" -#: js/ToneBlocks.js:1110 -msgid "Upload a sound file to connect with the sample block." +#: js/blocks/PitchBlocks.js:717 +msgid "The Number to octave block will convert a pitch number to an octave." msgstr "" -#: js/MeterBlocks.js:34 -#.TRANS: musical meter (time signature), e.g., 4:4 -msgid "current meter" +#: js/blocks/PitchBlocks.js:726 +msgid "y to pitch" msgstr "" -#: js/MeterBlocks.js:85 -#.TRANS: number of beats per minute -msgid "beat factor" +#: js/blocks/PitchBlocks.js:729 +msgid "Y to pitch block will convert a staff y position to corresponding pitch notation." msgstr "" -#: js/MeterBlocks.js:161 -msgid "The Beats per minute block returns the current beats per minute." +#: js/blocks/PitchBlocks.js:841 +msgid "accidental selector" msgstr "" -#: js/MeterBlocks.js:169 -#: js/status.js:152 -#.TRANS: number of beats played per minute -msgid "beats per minute2" +#: js/blocks/PitchBlocks.js:844 +msgid "The Accidental selector block is used to choose between double-sharp, sharp, natural, flat, and double-flat." msgstr "" -#: js/MeterBlocks.js:169 -#: js/MeterBlocks.js:1056 -#: js/MeterBlocks.js:1133 -#: js/MeterBlocks.js:1211 -#.TRANS: sets tempo by defining a beat and beats per minute -msgid "beats per minute" +#: js/blocks/PitchBlocks.js:858 +msgid "Pitch can be specified in terms of ni dha pa ma ga re sa." msgstr "" -#: js/MeterBlocks.js:233 -#.TRANS: count of current musical measure in meter -msgid "measure count" +#: js/blocks/PitchBlocks.js:872 +msgid "Pitch can be specified in terms of C D E F G A B." msgstr "" -#: js/MeterBlocks.js:241 -msgid "The Measure count block returns the current measure." +#: js/blocks/PitchBlocks.js:884 +msgid "solfege" msgstr "" -#: js/MeterBlocks.js:290 -#.TRANS: count of current beat in the meter -msgid "beat count" +#: js/blocks/PitchBlocks.js:887 +msgid "Pitch can be specified in terms of do re mi fa sol la ti." msgstr "" -#: js/MeterBlocks.js:300 -#: js/MeterBlocks.js:311 -#: js/MeterBlocks.js:565 -#: js/MeterBlocks.js:576 -msgid "The Beat count block is the number of the current beat," +#: js/blocks/PitchBlocks.js:922 +msgid "The Invert block rotates any contained notes around a target note." msgstr "" -#: js/MeterBlocks.js:313 -#: js/MeterBlocks.js:578 -msgid "eg 1, 2, 3, or 4." +#: js/blocks/PitchBlocks.js:929 +#.TRANS: pitch inversion rotates a pitch around another pitch +msgid "invert" msgstr "" -#: js/MeterBlocks.js:368 -#.TRANS: count the number of notes -msgid "sum note values" +#: js/blocks/PitchBlocks.js:968 +#.TRANS: pitch inversion rotates a pitch around another pitch (odd number) +msgid "invert (odd)" msgstr "" -#: js/MeterBlocks.js:376 -#: js/MeterBlocks.js:440 -msgid "The Note counter block can be used to count the number of contained notes." +#: js/blocks/PitchBlocks.js:1001 +#.TRANS: pitch inversion rotates a pitch around another pitch (even number) +msgid "invert (even)" msgstr "" -#: js/MeterBlocks.js:432 -#.TRANS: count the number of notes -msgid "note counter" +#: js/blocks/PitchBlocks.js:1022 +#.TRANS: register is the octave of the current pitch +msgid "register" msgstr "" -#: js/MeterBlocks.js:496 -#.TRANS: number of whole notes that have been played -msgid "whole notes played" +#: js/blocks/PitchBlocks.js:1026 +msgid "The Register block provides an easy way to modify the register (octave) of the notes that follow it." msgstr "" -#: js/MeterBlocks.js:505 -msgid "The Whole notes played block returns the total number of whole notes played." +#: js/blocks/PitchBlocks.js:1047 +#.TRANS: cents are units used to specify the ratio between pitches. There are 100 cents between successive notes. +msgid "50 cents" msgstr "" -#: js/MeterBlocks.js:555 -#: js/DictActions.js:83 -#.TRANS: number of notes that have been played -msgid "notes played" +#: js/blocks/PitchBlocks.js:1102 +msgid "The Semi-tone transposition block will shift the pitches contained inside Note blocks up (or down) by half steps." msgstr "" -#: js/MeterBlocks.js:653 -msgid "The No clock block decouples the notes from the master clock." +#: js/blocks/PitchBlocks.js:1104 +msgid "In the example shown above, sol is shifted up to sol#." msgstr "" -#: js/MeterBlocks.js:661 -#.TRANS: don't lock notes to master clock -msgid "no clock" +#: js/blocks/PitchBlocks.js:1110 +#.TRANS: adjust the amount of shift (up or down) of a pitch +msgid "semi-tone transpose" msgstr "" -#: js/MeterBlocks.js:700 -msgid "on weak beat do" +#: js/blocks/PitchBlocks.js:1143 +msgid "The Transpose by Ratio block will shift the pitches contained inside Note blocks up (or down) by a ratio" msgstr "" -#: js/MeterBlocks.js:705 -msgid "The On-weak-beat block lets you specify actions to take on weak (off) beats." +#: js/blocks/PitchBlocks.js:1149 +#.TRANS: adjust the amount of shift (up or down) of a pitch +msgid "transpose by ratio" msgstr "" -#: js/MeterBlocks.js:750 -msgid "on strong beat" +#: js/blocks/PitchBlocks.js:1232 +#.TRANS: down sixth means the note is five scale degrees below current note +msgid "down sixth" msgstr "" -#: js/MeterBlocks.js:758 -msgid "The On-strong-beat block lets you specify actions to take on specified beats." +#: js/blocks/PitchBlocks.js:1251 +#.TRANS: down third means the note is two scale degrees below current note +msgid "down third" msgstr "" -#: js/MeterBlocks.js:769 -msgid "beat" +#: js/blocks/PitchBlocks.js:1270 +#.TRANS: seventh means the note is the six scale degrees above current note +msgid "seventh" msgstr "" -#: js/MeterBlocks.js:813 -msgid "on every beat do" +#: js/blocks/PitchBlocks.js:1289 +#.TRANS: sixth means the note is the five scale degrees above current note +msgid "sixth" msgstr "" -#: js/MeterBlocks.js:821 -msgid "The On-every-beat block lets you specify actions to take on every beat." +#: js/blocks/PitchBlocks.js:1308 +#.TRANS: fifth means the note is the four scale degrees above current note +msgid "fifth" msgstr "" -#: js/MeterBlocks.js:874 -msgid "on every note do" +#: js/blocks/PitchBlocks.js:1328 +#.TRANS: fourth means the note is three scale degrees above current note +msgid "fourth" msgstr "" -#: js/MeterBlocks.js:882 -msgid "The On-every-note block lets you specify actions to take on every note." +#: js/blocks/PitchBlocks.js:1347 +#.TRANS: third means the note is two scale degrees above current note +msgid "third" msgstr "" -#: js/MeterBlocks.js:928 -#: js/MeterBlocks.js:999 -#.TRANS: sets tempo by defining a beat and beats per minute -msgid "master beats per minute" +#: js/blocks/PitchBlocks.js:1366 +#.TRANS: second means the note is one scale degree above current note +msgid "second" msgstr "" -#: js/MeterBlocks.js:952 -#: js/MeterBlocks.js:1078 -#: js/MeterBlocks.js:1135 -msgid "bpm" +#: js/blocks/PitchBlocks.js:1407 +msgid "The Scalar transposition block will shift the pitches contained inside Note blocks up (or down) the scale." msgstr "" -#: js/MeterBlocks.js:952 -#: js/MeterBlocks.js:1078 -#: js/MeterBlocks.js:1135 -msgid "beat value" +#: js/blocks/PitchBlocks.js:1409 +msgid "In the example shown above, sol is shifted up to la." msgstr "" -#: js/MeterBlocks.js:1024 -#: js/MeterBlocks.js:1167 -#: js/MeterBlocks.js:1241 -msgid "Beats per minute must be > 30." +#: js/blocks/PitchBlocks.js:1416 +#.TRANS: adjust the amount of shift (up or down) of a pitch by musical scale (scalar) steps +msgid "scalar transpose" msgstr "" -#: js/MeterBlocks.js:1027 -#: js/MeterBlocks.js:1170 -#: js/MeterBlocks.js:1244 -msgid "Maximum beats per minute is 1000." +#: js/blocks/PitchBlocks.js:1451 +msgid "The Accidental block is used to create sharps and flats" msgstr "" -#: js/MeterBlocks.js:1068 -msgid "The Beats per minute block sets the number of 1/4 notes per minute." +#: js/blocks/PitchBlocks.js:1458 +#.TRANS: An accidental is a modification to a pitch, e.g., sharp or flat. +msgid "accidental override" msgstr "" -#: js/MeterBlocks.js:1279 -#.TRANS: anacrusis -msgid "pickup" +#: js/blocks/PitchBlocks.js:1581 +msgid "The Hertz block (in combination with a Number block) will play a sound at the specified frequency." msgstr "" -#: js/MeterBlocks.js:1367 -msgid "number of beats" +#: js/blocks/PitchBlocks.js:1671 +msgid "The Pitch Number block will play a pitch associated by its number, e.g. 0 for C and 7 for G." msgstr "" -#: js/DictBlocks.js:77 -msgid "show dictionary" +#: js/blocks/PitchBlocks.js:1703 +#: js/blocks/PitchBlocks.js:1745 +#.TRANS: a numeric mapping of the notes in an octave based on the musical mode +#.TRANS: a numeric mapping of the notes in an octave based on the musical mode +msgid "nth modal pitch" msgstr "" -#: js/DictBlocks.js:129 -msgid "The Dictionary block returns a dictionary." +#: js/blocks/PitchBlocks.js:1706 +msgid "n^th Modal Pitch takes the pattern of pitches in semitones for a mode and makes each point a degree of the mode," msgstr "" -#: js/DictBlocks.js:197 -#: js/DictBlocks.js:339 -msgid "The Get-dict block returns a value in the dictionary for a specified key." +#: js/blocks/PitchBlocks.js:1708 +msgid "starting from 1 and regardless of tonal framework (i.e. not always 8 notes in the octave)" msgstr "" -#: js/DictBlocks.js:212 -#: js/DictBlocks.js:354 -#.TRANS: retrieve a value from the dictionary with a given key -msgid "get value" +#: js/blocks/PitchBlocks.js:1749 +msgid "N^th Modal Pitch takes a number as an input as the n^th degree for the given mode. 0 is the first position, 1 is the second, -1 is the note before the first etc." msgstr "" -#: js/DictBlocks.js:215 -#: js/DictBlocks.js:216 -#: js/DictBlocks.js:289 -#: js/DictBlocks.js:290 -#: js/DictBlocks.js:357 -#: js/DictBlocks.js:430 -#: js/DictBlocks.js:431 -msgid "key2" +#: js/blocks/PitchBlocks.js:1751 +msgid "The pitches change according to the mode specified without any need for respellings." msgstr "" -#: js/DictBlocks.js:271 -#: js/DictBlocks.js:411 -msgid "The Set-dict block sets a value in the dictionary for a specified key." +#: js/blocks/PitchBlocks.js:1790 +msgid "Scale Degree is a common convention in music. Scale Degree offers seven possible positions in the scale (1-7) and can be modified via accidentals." msgstr "" -#: js/DictBlocks.js:286 -#: js/DictBlocks.js:427 -#.TRANS: set a value in the dictionary for a given key -msgid "set value" +#: js/blocks/PitchBlocks.js:1792 +msgid "Scale Degree 1 is always the first pitch in a given scale, regardless of octave." msgstr "" -#: js/ExtrasBlocks.js:33 -msgid "fraction" +#: js/blocks/PitchBlocks.js:1814 +#.TRANS: step some number of notes in current musical scale +msgid "scalar step" msgstr "" -#: js/ExtrasBlocks.js:36 -msgid "Convert a float to a fraction" +#: js/blocks/PitchBlocks.js:1819 +msgid "The Scalar Step block (in combination with a Number block) will play the next pitch in a scale," msgstr "" -#: js/ExtrasBlocks.js:93 -msgid "save as ABC" +#: js/blocks/PitchBlocks.js:1821 +msgid "eg if the last note played was sol, Scalar Step 1 will play la." msgstr "" -#: js/ExtrasBlocks.js:96 -#: js/ExtrasBlocks.js:132 -#: js/ExtrasBlocks.js:168 -msgid "title" +#: js/blocks/PitchBlocks.js:1857 +msgid "The Pitch block specifies the pitch name and octave of a note that together determine the frequency of the note." msgstr "" -#: js/ExtrasBlocks.js:129 -msgid "save as Lilypond" +#: js/blocks/ProgramBlocks.js:33 +msgid "The Load-heap-from-app block loads the heap from a web page." msgstr "" -#: js/ExtrasBlocks.js:165 -msgid "save as SVG" +#: js/blocks/ProgramBlocks.js:44 +#.TRANS: load the heap contents from a URL +msgid "load heap from App" msgstr "" -#: js/ExtrasBlocks.js:216 -msgid "no background" +#: js/blocks/ProgramBlocks.js:95 +msgid "Error parsing JSON data:" msgstr "" -#: js/ExtrasBlocks.js:219 -msgid "The No background block eliminates the background from the saved SVG output." +#: js/blocks/ProgramBlocks.js:100 +msgid "404: Page not found" msgstr "" -#: js/ExtrasBlocks.js:247 -msgid "show blocks" +#: js/blocks/ProgramBlocks.js:133 +msgid "The Save-heap-to-app block saves the heap to a web page." msgstr "" -#: js/ExtrasBlocks.js:249 -msgid "The Show blocks block shows the blocks." +#: js/blocks/ProgramBlocks.js:144 +#.TRANS: save the heap contents to a URL +msgid "save heap to App" msgstr "" -#: js/ExtrasBlocks.js:274 -msgid "hide blocks" +#: js/blocks/ProgramBlocks.js:189 +msgid "Cannot find a valid heap for" msgstr "" -#: js/ExtrasBlocks.js:276 -msgid "The Hide blocks block hides the blocks." +#: js/blocks/ProgramBlocks.js:206 +msgid "The Load-heap block loads the heap from a file." msgstr "" -#: js/ExtrasBlocks.js:305 -#: js/ExtrasBlocks.js:335 -msgid "The Space block is used to add space between blocks." +#: js/blocks/ProgramBlocks.js:217 +#.TRANS: load the heap from a file +msgid "load heap" msgstr "" -#: js/ExtrasBlocks.js:373 -msgid "wait" +#: js/blocks/ProgramBlocks.js:270 +msgid "The file you selected does not contain a valid heap." msgstr "" -#: js/ExtrasBlocks.js:376 -msgid "The Wait block pauses the program for a specified number of seconds." +#: js/blocks/ProgramBlocks.js:275 +msgid "The loadHeap block needs a loadFile block." msgstr "" -#: js/ExtrasBlocks.js:430 -#: plugins/facebook.rtp:30 -msgid "comment" +#: js/blocks/ProgramBlocks.js:291 +msgid "The Set-heap block loads the heap." msgstr "" -#: js/ExtrasBlocks.js:466 -msgid "print" +#: js/blocks/ProgramBlocks.js:340 +msgid "The block you selected does not contain a valid heap." msgstr "" -#: js/ExtrasBlocks.js:473 -msgid "The Print block displays text at the top of the screen." +#: js/blocks/ProgramBlocks.js:343 +msgid "The Set heap block needs a heap." msgstr "" -#: js/ExtrasBlocks.js:579 -msgid "display grid" +#: js/blocks/ProgramBlocks.js:360 +msgid "The Load-dictionary block loads a dictionary from a file." msgstr "" -#: js/ExtrasBlocks.js:584 -msgid "The Display Grid Block changes the grid type" +#: js/blocks/ProgramBlocks.js:372 +#.TRANS: load a dictionary from a file +msgid "load dictionary" msgstr "" -#: js/ExtrasBlocks.js:686 -#: js/ExtrasBlocks.js:705 -#: js/ExtrasBlocks.js:728 -#: js/ExtrasBlocks.js:751 -#: js/ExtrasBlocks.js:769 -#: js/ExtrasBlocks.js:788 -#: js/ExtrasBlocks.js:807 -#: js/ExtrasBlocks.js:826 -msgid "unknown" +#: js/blocks/ProgramBlocks.js:390 +#: js/blocks/ProgramBlocks.js:658 +#: js/blocks/ToneBlocks.js:1025 +msgid "file" msgstr "" -#: js/SensorsBlocks.js:36 -msgid "The Input block prompts for keyboard input." +#: js/blocks/ProgramBlocks.js:444 +msgid "The file you selected does not contain a valid dictionary." msgstr "" -#: js/SensorsBlocks.js:46 -msgid "input" +#: js/blocks/ProgramBlocks.js:449 +msgid "The load dictionary block needs a load file block." msgstr "" -#: js/SensorsBlocks.js:64 -msgid "Input a value" +#: js/blocks/ProgramBlocks.js:466 +msgid "The Set-dictionary block loads a dictionary." msgstr "" -#: js/SensorsBlocks.js:126 -msgid "input value" +#: js/blocks/ProgramBlocks.js:477 +#.TRANS: load a dictionary from a JSON +msgid "set dictionary" msgstr "" -#: js/SensorsBlocks.js:131 -msgid "The Input-value block stores the input." +#: js/blocks/ProgramBlocks.js:546 +msgid "The block you selected does not contain a valid dictionary." msgstr "" -#: js/SensorsBlocks.js:238 -msgid "loudness" +#: js/blocks/ProgramBlocks.js:550 +msgid "The set dictionary block needs a dictionary." msgstr "" -#: js/SensorsBlocks.js:245 -msgid "The Loudness block returns the volume detected by the microphone." +#: js/blocks/ProgramBlocks.js:567 +msgid "The Save-heap block saves the heap to a file." msgstr "" -#: js/SensorsBlocks.js:300 -msgid "click" +#: js/blocks/ProgramBlocks.js:578 +#.TRANS: save the heap to a file +msgid "save heap" msgstr "" -#: js/SensorsBlocks.js:306 -msgid "The Click block triggers an event if a mouse has been clicked." +#: js/blocks/ProgramBlocks.js:629 +msgid "The Save-dictionary block saves a dictionary to a file." msgstr "" -#: js/SensorsBlocks.js:313 -msgid "The Click block triggers an event if a turtle has been clicked." +#: js/blocks/ProgramBlocks.js:640 +#.TRANS: save a dictionary to a file +msgid "save dictionary" msgstr "" -#: js/SensorsBlocks.js:342 -msgid "cursor over" +#: js/blocks/ProgramBlocks.js:720 +msgid "The Open palette block opens a palette." msgstr "" -#: js/SensorsBlocks.js:387 -msgid "cursor out" +#: js/blocks/ProgramBlocks.js:727 +msgid "open palette" msgstr "" -#: js/SensorsBlocks.js:433 -msgid "cursor button down" +#: js/blocks/ProgramBlocks.js:785 +msgid "The Delete block block removes a block." msgstr "" -#: js/SensorsBlocks.js:477 -msgid "cursor button up" +#: js/blocks/ProgramBlocks.js:797 +#.TRANS: Move this block to the trash. +msgid "delete block" msgstr "" -#: js/SensorsBlocks.js:638 -msgid "The Get red block returns the red component of the pixel under the mouse." +#: js/blocks/ProgramBlocks.js:861 +msgid "The Move block block moves a block." msgstr "" -#: js/SensorsBlocks.js:644 -msgid "The Get red block returns the red component of the pixel under the turtle." +#: js/blocks/ProgramBlocks.js:869 +#.TRANS: Move the position of a block on the screen. +msgid "move block" msgstr "" -#: js/SensorsBlocks.js:685 -#: plugins/rodi.rtp:216 -msgid "pixel color" +#: js/blocks/ProgramBlocks.js:881 +#: js/blocks/ProgramBlocks.js:1048 +msgid "block number" msgstr "" -#: js/SensorsBlocks.js:690 -msgid "The Get pixel block returns the color of the pixel under the mouse." +#: js/blocks/ProgramBlocks.js:935 +#.TRANS: Run program beginning at this block. +msgid "run block" msgstr "" -#: js/SensorsBlocks.js:696 -msgid "The Get pixel block returns the color of the pixel under the turtle." +#: js/blocks/ProgramBlocks.js:1025 +msgid "The Dock block block connections two blocks." msgstr "" -#: js/SensorsBlocks.js:758 -msgid "time" +#: js/blocks/ProgramBlocks.js:1036 +#.TRANS: We can connect a block to another block. +msgid "connect blocks" msgstr "" -#: js/SensorsBlocks.js:804 -msgid "cursor y" +#: js/blocks/ProgramBlocks.js:1048 +msgid "target block" msgstr "" -#: js/SensorsBlocks.js:809 -msgid "The Cursor Y block returns the vertical position of the mouse." +#: js/blocks/ProgramBlocks.js:1048 +msgid "connection number" msgstr "" -#: js/SensorsBlocks.js:845 -msgid "cursor x" +#: js/blocks/ProgramBlocks.js:1140 +msgid "The Make block block creates a new block." msgstr "" -#: js/SensorsBlocks.js:850 -msgid "The Cursor X block returns the horizontal position of the mouse." +#: js/blocks/ProgramBlocks.js:1152 +#.TRANS: Create a new block +msgid "make block" msgstr "" -#: js/SensorsBlocks.js:886 -msgid "mouse button" +#: js/blocks/ProgramBlocks.js:1285 +msgid "Cannot find block" msgstr "" -#: js/SensorsBlocks.js:888 -msgid "The Mouse-button block returns True if the mouse button is pressed." +#: js/blocks/ProgramBlocks.js:1304 +#: js/blocks/ProgramBlocks.js:1313 +msgid "Warning: block argument type mismatch" msgstr "" -#: js/SensorsBlocks.js:934 -msgid "to ASCII" +#: js/blocks/ProgramBlocks.js:1347 +msgid "The Open project block is used to open a project from a web page." msgstr "" -#: js/SensorsBlocks.js:938 -msgid "The To ASCII block converts numbers to letters." +#: js/blocks/ProgramBlocks.js:1357 +msgid "open project" msgstr "" -#: js/SensorsBlocks.js:1005 -msgid "The Keyboard block returns computer keyboard input." +#: js/blocks/ProgramBlocks.js:1410 +msgid "Please enter a valid URL." msgstr "" -#: js/IntervalsActions.js:216 -msgid "Adding missing pitch number 0." +#: js/blocks/ToneBlocks.js:34 +msgid "oscillator" msgstr "" -#: js/IntervalsActions.js:224 -msgid "Ignoring pitch numbers less than zero or greater than eleven." +#: js/blocks/ToneBlocks.js:42 +#: js/blocks/WidgetBlocks.js:179 +#: js/widgets/timbre.js:1558 +#: js/widgets/timbre.js:1808 +#.TRANS: there are different types (sine, triangle, square...) of oscillators. +#.TRANS: type of filter, e.g., lowpass, highpass, etc. +msgid "type" msgstr "" -#: js/IntervalsActions.js:230 -msgid "Ignoring duplicate pitch numbers." +#: js/blocks/ToneBlocks.js:44 +#: js/widgets/timbre.js:1562 +#.TRANS: Partials refers to the number of sine waves combined into the sound. +msgid "partials" msgstr "" -#: js/PitchActions.js:88 -msgid "The Scalar Step Block must be used inside of a Note Block." +#: js/blocks/ToneBlocks.js:76 +msgid "You are adding multiple oscillator blocks." msgstr "" -#: js/PitchActions.js:107 -msgid "The Scalar Step Block must be preceded by a Pitch Block." +#: js/blocks/ToneBlocks.js:144 +#: js/widgets/timbre.js:1225 +#.TRANS: a duo synthesizer combines a synth with a sequencer +msgid "duo synth" msgstr "" -#: js/DrumActions.js:231 -msgid "Noise Block: Did you mean to use a Note block?" +#: js/blocks/ToneBlocks.js:149 +msgid "The Duo synth block is a duo-frequency modulator used to define a timbre." msgstr "" -#: js/MeterActions.js:101 -#: js/MeterActions.js:139 -msgid "beats per minute must be greater than" +#: js/blocks/ToneBlocks.js:157 +#: js/widgets/timbre.js:1476 +msgid "vibrato rate" msgstr "" -#: js/MeterActions.js:111 -#: js/MeterActions.js:149 -msgid "maximum" +#: js/blocks/ToneBlocks.js:157 +msgid "vibrato intensity" msgstr "" -#: js/MeterActions.js:117 -#: js/MeterActions.js:155 -msgid "beats per minute is" +#: js/blocks/ToneBlocks.js:185 +#: js/widgets/timbre.js:1221 +#.TRANS: AM (amplitude modulation) synthesizer +msgid "AM synth" msgstr "" -#: js/ToneActions.js:134 -msgid "Vibrato intensity must be between 1 and 100." +#: js/blocks/ToneBlocks.js:189 +msgid "The AM synth block is an amplitude modulator used to define a timbre." msgstr "" -#: js/ToneActions.js:139 -msgid "Vibrato rate must be greater than 0." +#: js/blocks/ToneBlocks.js:224 +#: js/widgets/timbre.js:1223 +#.TRANS: FM (frequency modulation) synthesizer +msgid "FM synth" msgstr "" -#: js/ToneActions.js:192 -#: js/ToneActions.js:265 -#.TRANS: Depth is the intesity of the tremolo or chorus effect. -msgid "Depth is out of range." +#: js/blocks/ToneBlocks.js:228 +msgid "The FM synth block is a frequency modulator used to define a timbre." msgstr "" -#: js/ToneActions.js:301 -msgid "Distortion must be from 0 to 100." +#: js/blocks/ToneBlocks.js:262 +msgid "partial" msgstr "" -#: js/ToneActions.js:332 -#.TRANS: partials components in a harmonic series -msgid "Partial must be greater than or equal to 0." +#: js/blocks/ToneBlocks.js:265 +msgid "The Partial block is used to specify a weight for a specific partial harmonic." msgstr "" -#: js/ToneActions.js:378 -#: js/ToneActions.js:417 -#: js/ToneActions.js:456 -#: js/timbre.js:782 -msgid "Unable to use synth due to existing oscillator" +#: js/blocks/ToneBlocks.js:284 +#.TRANS: partials are weighted components in a harmonic series +msgid "Partial weight must be between 0 and 1." msgstr "" -#: js/ToneActions.js:388 -#: js/ToneActions.js:427 -msgid "The input cannot be negative." +#: js/blocks/ToneBlocks.js:297 +#.TRANS: partials are weighted components in a harmonic series +msgid "Partial block should be used inside of a Weighted-partials block." msgstr "" -#: js/DictActions.js:75 -#: js/DictActions.js:153 -#: js/DictActions.js:188 -msgid "font" +#: js/blocks/ToneBlocks.js:325 +#.TRANS: partials are weighted components in a harmonic series +msgid "weighted partials" msgstr "" -#: js/musicutils.js:363 -#: js/musicutils.js:471 -#: js/pitchdrummatrix.js:151 -#: js/musickeyboard.js:2563 -msgid "rest" +#: js/blocks/ToneBlocks.js:383 +msgid "The Harmonic block will add harmonics to the contained notes." msgstr "" -#: js/musicutils.js:565 -#.TRANS: ordinal number. Please keep exactly one space between each number. -msgid "1st 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th" +#: js/blocks/ToneBlocks.js:390 +#.TRANS: A harmonic is an overtone. +msgid "harmonic" msgstr "" -#: js/musicutils.js:629 -#: js/musicutils.js:812 -#: js/musicutils.js:911 -#.TRANS: augmented is a music term related to intervals -msgid "augmented" +#: js/blocks/ToneBlocks.js:431 +msgid "The Distortion block adds distortion to the pitch." msgstr "" -#: js/musicutils.js:631 -#: js/musicutils.js:813 -#: js/musicutils.js:910 -#.TRANS: diminished is a music term related to intervals and mode -msgid "diminished" +#: js/blocks/ToneBlocks.js:438 +#: js/widgets/timbre.js:2100 +#.TRANS: distortion is an alteration in the sound +msgid "distortion" msgstr "" -#: js/musicutils.js:639 -#.TRANS: twelve semi-tone scale for music -msgid "chromatic" +#: js/blocks/ToneBlocks.js:487 +msgid "The Tremolo block adds a wavering effect." msgstr "" -#: js/musicutils.js:640 -msgid "algerian" +#: js/blocks/ToneBlocks.js:495 +#: js/widgets/timbre.js:2092 +#.TRANS: a wavering effect in a musical tone +msgid "tremolo" msgstr "" -#: js/musicutils.js:641 -msgid "spanish" +#: js/blocks/ToneBlocks.js:500 +#: js/blocks/ToneBlocks.js:569 +#: js/blocks/ToneBlocks.js:630 +#: js/blocks/ToneBlocks.js:689 +#: js/widgets/timbre.js:2134 +#: js/widgets/timbre.js:2222 +#: js/widgets/timbre.js:2317 +#: js/widgets/timbre.js:2419 +#.TRANS: rate at which tremolo wavers +msgid "rate" msgstr "" -#: js/musicutils.js:643 -#.TRANS: modal scale in music -msgid "octatonic" +#: js/blocks/ToneBlocks.js:502 +#: js/blocks/ToneBlocks.js:630 +#: js/widgets/timbre.js:2137 +#: js/widgets/timbre.js:2328 +#.TRANS: amplitude of tremolo waver +msgid "depth" msgstr "" -#: js/musicutils.js:645 -#.TRANS: harmonic major scale in music -msgid "harmonic major" +#: js/blocks/ToneBlocks.js:559 +msgid "The Phaser block adds a sweeping sound." msgstr "" -#: js/musicutils.js:647 -#.TRANS: natural minor scales in music -msgid "natural minor" +#: js/blocks/ToneBlocks.js:566 +#: js/widgets/timbre.js:2098 +#.TRANS: alter the phase of the sound +msgid "phaser" msgstr "" -#: js/musicutils.js:649 -#.TRANS: harmonic minor scale in music -msgid "harmonic minor" +#: js/blocks/ToneBlocks.js:569 +#: js/turtleactions/IntervalsActions.js:114 +#: js/widgets/timbre.js:2422 +msgid "octaves" msgstr "" -#: js/musicutils.js:651 -#.TRANS: melodic minor scale in music -msgid "melodic minor" +#: js/blocks/ToneBlocks.js:569 +#: js/widgets/timbre.js:2425 +msgid "base frequency" msgstr "" -#: js/musicutils.js:655 -#.TRANS: modal scale for music -msgid "dorian" +#: js/blocks/ToneBlocks.js:619 +msgid "The Chorus block adds a chorus effect." msgstr "" -#: js/musicutils.js:657 -#.TRANS: modal scale for music -msgid "phrygian" +#: js/blocks/ToneBlocks.js:627 +#: js/widgets/timbre.js:2096 +#.TRANS: musical effect to simulate a choral sound +msgid "chorus" msgstr "" -#: js/musicutils.js:659 -#.TRANS: modal scale for music -msgid "lydian" +#: js/blocks/ToneBlocks.js:630 +msgid "delay" msgstr "" -#: js/musicutils.js:661 -#.TRANS: modal scale for music -msgid "mixolydian" +#: js/blocks/ToneBlocks.js:678 +msgid "The Vibrato block adds a rapid, slight variation in pitch." msgstr "" -#: js/musicutils.js:665 -#.TRANS: modal scale for music -msgid "locrian" +#: js/blocks/ToneBlocks.js:686 +#: js/widgets/timbre.js:2094 +#.TRANS: a rapid, slight variation in pitch +msgid "vibrato" msgstr "" -#: js/musicutils.js:667 -#.TRANS: minor jazz scale for music -msgid "jazz minor" +#: js/blocks/ToneBlocks.js:689 +#: js/widgets/timbre.js:2221 +msgid "intensity" msgstr "" -#: js/musicutils.js:669 -#.TRANS: bebop scale for music -msgid "bebop" +#: js/blocks/ToneBlocks.js:733 +#.TRANS: select synthesizer +msgid "set synth" msgstr "" -#: js/musicutils.js:670 -msgid "arabic" +#: js/blocks/ToneBlocks.js:804 +msgid "synth name" msgstr "" -#: js/musicutils.js:671 -msgid "byzantine" +#: js/blocks/ToneBlocks.js:842 +msgid "set default instrument" msgstr "" -#: js/musicutils.js:673 -#.TRANS: musical scale for music by Verdi -msgid "enigmatic" +#: js/blocks/ToneBlocks.js:895 +#: js/blocks/ToneBlocks.js:943 +#.TRANS: set the characteristics of a custom instrument +msgid "set instrument" msgstr "" -#: js/musicutils.js:674 -msgid "ethiopian" +#: js/blocks/ToneBlocks.js:898 +#: js/blocks/ToneBlocks.js:926 +#: js/blocks/ToneBlocks.js:932 +msgid "The Set instrument block selects a voice for the synthesizer," msgstr "" -#: js/musicutils.js:676 -#.TRANS: Ethiopic scale for music -msgid "geez" +#: js/blocks/ToneBlocks.js:900 +#: js/blocks/ToneBlocks.js:934 +msgid "eg guitar piano violin or cello." msgstr "" -#: js/musicutils.js:677 -msgid "hindu" +#: js/blocks/ToneBlocks.js:1015 +msgid "Import a sound file to use as an instrument and set its pitch center." msgstr "" -#: js/musicutils.js:678 -msgid "hungarian" +#: js/blocks/ToneBlocks.js:1110 +msgid "Upload a sound file to connect with the sample block." msgstr "" -#: js/musicutils.js:680 -#.TRANS: minor Romanian scale for music -msgid "romanian minor" +#: js/blocks/VolumeBlocks.js:35 +msgid "synth volume" msgstr "" -#: js/musicutils.js:681 -msgid "spanish gypsy" +#: js/blocks/VolumeBlocks.js:39 +msgid "The Synth volume block returns the current volume of the current synthesizer." msgstr "" -#: js/musicutils.js:683 -#.TRANS: musical scale for Mid-Eastern music -msgid "maqam" +#: js/blocks/VolumeBlocks.js:105 +msgid "master volume" msgstr "" -#: js/musicutils.js:685 -#.TRANS: minor blues scale for music -msgid "minor blues" +#: js/blocks/VolumeBlocks.js:109 +msgid "The Master volume block returns the master volume." msgstr "" -#: js/musicutils.js:687 -#.TRANS: major blues scale for music -msgid "major blues" +#: js/blocks/VolumeBlocks.js:355 +#: js/blocks/VolumeBlocks.js:524 +msgid "set synth volume" msgstr "" -#: js/musicutils.js:688 -msgid "whole tone" +#: js/blocks/VolumeBlocks.js:362 +#: js/blocks/VolumeBlocks.js:545 +msgid "synth" msgstr "" -#: js/musicutils.js:690 -#.TRANS: pentatonic is a general term that means "five note scale". This scale is typically known as "minor pentatonic" -msgid "minor pentatonic" +#: js/blocks/VolumeBlocks.js:403 +#: js/blocks/VolumeBlocks.js:577 +#: js/blocks/VolumeBlocks.js:740 +#: js/turtleactions/VolumeActions.js:173 +msgid "Setting volume to 0." msgstr "" -#: js/musicutils.js:692 -#.TRANS: pentatonic is a general term that means "five note scale". This scale is typically known as "major pentatonic" -msgid "major pentatonic" +#: js/blocks/VolumeBlocks.js:440 +msgid "Synth not found" msgstr "" -#: js/musicutils.js:693 -msgid "chinese" +#: js/blocks/VolumeBlocks.js:494 +msgid "set drum volume" msgstr "" -#: js/musicutils.js:694 -msgid "egyptian" +#: js/blocks/VolumeBlocks.js:530 +msgid "The Set synth volume block will change the volume of a particular synth," msgstr "" -#: js/musicutils.js:696 -#.TRANS: https://en.wikipedia.org/wiki/Hirajoshi_scale NOTE: There are three different versions of this scale -msgid "hirajoshi" +#: js/blocks/VolumeBlocks.js:532 +msgid "eg guitar violin snare drum etc." msgstr "" -#: js/musicutils.js:697 -msgid "Japan" +#: js/blocks/VolumeBlocks.js:534 +msgid "The default volume is 50." msgstr "" -#: js/musicutils.js:699 -#.TRANS: https://en.wikipedia.org/wiki/In_scale and https://en.wikipedia.org/wiki/Sakura_Sakura -msgid "in" +#: js/blocks/VolumeBlocks.js:536 +msgid "The range is 0 for silence to 100 for full volume." msgstr "" -#: js/musicutils.js:701 -#.TRANS: https://en.wikipedia.org/wiki/Miny%C5%8D_scale -msgid "minyo" +#: js/blocks/VolumeBlocks.js:597 +msgid "set panning" msgstr "" -#: js/musicutils.js:703 -#.TRANS: Italian mathematician -msgid "fibonacci" +#: js/blocks/VolumeBlocks.js:603 +msgid "The Set Panning block sets the panning for all synthesizers." msgstr "" -#: js/musicutils.js:708 -#: js/musicutils.js:1106 -#.TRANS: lowpass filter -msgid "lowpass" +#: js/blocks/VolumeBlocks.js:625 +msgid "Warning: Sound is coming out from only the left or right side." msgstr "" -#: js/musicutils.js:710 -#: js/musicutils.js:1107 -#.TRANS: bandpass filter -msgid "bandpass" +#: js/blocks/VolumeBlocks.js:647 +#: js/blocks/VolumeBlocks.js:695 +msgid "set master volume" msgstr "" -#: js/musicutils.js:712 -#: js/musicutils.js:1108 -#.TRANS: high-shelf filter -msgid "highshelf" +#: js/blocks/VolumeBlocks.js:653 +msgid "The Set master volume block sets the volume for all synthesizers." msgstr "" -#: js/musicutils.js:714 -#: js/musicutils.js:1109 -#.TRANS: low-shelf filter -msgid "lowshelf" +#: js/blocks/VolumeBlocks.js:784 +msgid "The Set relative volume block changes the volume of the contained notes." msgstr "" -#: js/musicutils.js:716 -#: js/musicutils.js:1110 -#.TRANS: notch-shelf filter -msgid "notch" +#: js/blocks/VolumeBlocks.js:791 +msgid "set relative volume" msgstr "" -#: js/musicutils.js:718 -#: js/musicutils.js:1111 -#.TRANS: all-pass filter -msgid "allpass" +#: js/blocks/VolumeBlocks.js:857 +msgid "decrescendo" msgstr "" -#: js/musicutils.js:720 -#: js/musicutils.js:1112 -#.TRANS: peaking filter -msgid "peaking" +#: js/blocks/VolumeBlocks.js:921 +msgid "crescendo" msgstr "" -#: js/musicutils.js:731 -#: js/synthutils.js:58 -#.TRANS: musical instrument -msgid "violin" +#: js/blocks/WidgetBlocks.js:81 +#.TRANS: sound envelope (ADSR) +msgid "envelope" msgstr "" -#: js/musicutils.js:732 -#: js/synthutils.js:60 -#.TRANS: viola musical instrument -msgid "viola" +#: js/blocks/WidgetBlocks.js:89 +#.TRANS: Attack time is the time taken for initial run-up of level from nil to peak, beginning when the key is first pressed. +msgid "attack" msgstr "" -#: js/musicutils.js:733 -#: js/synthutils.js:98 -#.TRANS: xylophone musical instrument -msgid "xylophone" +#: js/blocks/WidgetBlocks.js:91 +#.TRANS: Decay time is the time taken for the subsequent run down from the attack level to the designated sustain level. +msgid "decay" msgstr "" -#: js/musicutils.js:734 -#: js/synthutils.js:120 -#.TRANS: vibraphone musical instrument -msgid "vibraphone" +#: js/blocks/WidgetBlocks.js:93 +#.TRANS: Sustain level is the level during the main sequence of the sound's duration, until the key is released. +msgid "sustain" msgstr "" -#: js/musicutils.js:735 -#: js/synthutils.js:62 -#.TRANS: musical instrument -msgid "cello" +#: js/blocks/WidgetBlocks.js:95 +#.TRANS: Release time is the time taken for the level to decay from the sustain level to zero after the key is released. +msgid "release" msgstr "" -#: js/musicutils.js:737 -#: js/synthutils.js:66 -#.TRANS: viola musical instrument -msgid "double bass" +#: js/blocks/WidgetBlocks.js:113 +msgid "Attack value should be from 0 to 100." msgstr "" -#: js/musicutils.js:738 -#: js/synthutils.js:68 -#: js/rhythmruler.js:2119 -#.TRANS: musical instrument -msgid "guitar" +#: js/blocks/WidgetBlocks.js:116 +msgid "Decay value should be from 0 to 100." msgstr "" -#: js/musicutils.js:739 -#: js/synthutils.js:70 -#.TRANS: musical instrument -msgid "acoustic guitar" +#: js/blocks/WidgetBlocks.js:119 +msgid "Sustain value should be from 0 to 100." msgstr "" -#: js/musicutils.js:740 -#: js/synthutils.js:72 -#.TRANS: musical instrument -msgid "flute" +#: js/blocks/WidgetBlocks.js:122 +msgid "Release value should be from 0-100." msgstr "" -#: js/musicutils.js:741 -#: js/synthutils.js:74 -#.TRANS: musical instrument -msgid "clarinet" +#: js/blocks/WidgetBlocks.js:140 +msgid "You are adding multiple envelope blocks." msgstr "" -#: js/musicutils.js:742 -#: js/synthutils.js:76 -#.TRANS: musical instrument -msgid "saxophone" +#: js/blocks/WidgetBlocks.js:171 +#.TRANS: a filter removes some unwanted components from a signal +msgid "filter" msgstr "" -#: js/musicutils.js:743 -#: js/synthutils.js:78 -#.TRANS: musical instrument -msgid "tuba" +#: js/blocks/WidgetBlocks.js:181 +#: js/widgets/timbre.js:1818 +#.TRANS: rolloff is the steepness of a change in frequency. +msgid "rolloff" msgstr "" -#: js/musicutils.js:744 -#: js/synthutils.js:80 -#.TRANS: musical instrument -msgid "trumpet" +#: js/blocks/WidgetBlocks.js:213 +#.TRANS: rolloff is the steepness of a change in frequency. +msgid "Rolloff value should be either -12, -24, -48, or -96 decibels/octave." msgstr "" -#: js/musicutils.js:745 -#: js/synthutils.js:82 -#.TRANS: musical instrument -msgid "oboe" +#: js/blocks/WidgetBlocks.js:252 +msgid "The Temperament tool is used to define custom tuning." msgstr "" -#: js/musicutils.js:746 -#: js/synthutils.js:84 -#.TRANS: musical instrument -msgid "trombone" +#: js/blocks/WidgetBlocks.js:332 +#: js/blocks/WidgetBlocks.js:1573 +#: js/widgets/sampler.js:547 +msgid "Upload a sample and adjust its pitch center." msgstr "" -#: js/musicutils.js:747 -#: js/synthutils.js:100 -#.TRANS: polytone synthesizer -msgid "electronic synth" +#: js/blocks/WidgetBlocks.js:339 +#.TRANS: the speed at music is should be played. +msgid "sampler" msgstr "" -#: js/musicutils.js:748 -#: js/synthutils.js:102 -#.TRANS: simple monotone synthesizer -msgid "simple 1" +#: js/blocks/WidgetBlocks.js:517 +msgid "The Meter block opens a tool to select strong beats for the meter." msgstr "" -#: js/musicutils.js:749 -msgid "simple 2" +#: js/blocks/WidgetBlocks.js:573 +msgid "The oscilloscope block opens a tool to visualize waveforms." msgstr "" -#: js/musicutils.js:750 -msgid "simple 3" +#: js/blocks/WidgetBlocks.js:578 +msgid "oscilloscope" msgstr "" -#: js/musicutils.js:751 -msgid "simple 4" +#: js/blocks/WidgetBlocks.js:645 +msgid "The Custom mode block opens a tool to explore musical mode (the spacing of the notes in a scale)." msgstr "" -#: js/musicutils.js:753 -#: js/synthutils.js:49 -#.TRANS: brown noise synthesizer -msgid "brown noise" +#: js/blocks/WidgetBlocks.js:651 +#.TRANS: musical mode is the pattern of half-steps in an octave, e.g., Major or Minor modes +msgid "custom mode" msgstr "" -#: js/musicutils.js:754 -#: js/synthutils.js:51 -#.TRANS: pink noise synthesizer -msgid "pink noise" +#: js/blocks/WidgetBlocks.js:700 +msgid "The Tempo block opens a metronome to visualize the beat." msgstr "" -#: js/musicutils.js:756 -#: js/synthutils.js:127 -#: js/rhythmruler.js:1670 -#: js/rhythmruler.js:1928 -#.TRANS: musical instrument -msgid "snare drum" +#: js/blocks/WidgetBlocks.js:762 +msgid "The Arpeggio Widget is used to compose chord sequences." msgstr "" -#: js/musicutils.js:757 -#: js/synthutils.js:129 -#.TRANS: musical instrument -msgid "kick drum" +#: js/blocks/WidgetBlocks.js:837 +msgid "The Pitch drum matrix is used to map pitches to drum sounds." msgstr "" -#: js/musicutils.js:758 -#: js/synthutils.js:131 -#.TRANS: musical instrument -msgid "tom tom" +#: js/blocks/WidgetBlocks.js:842 +#.TRANS: makes a mapping between pitches and drum sounds +msgid "pitch-drum mapper" msgstr "" -#: js/musicutils.js:759 -#: js/synthutils.js:133 -#.TRANS: musical instrument -msgid "floor tom" +#: js/blocks/WidgetBlocks.js:891 +msgid "You must have at least one pitch block and one drum block in the matrix." msgstr "" -#: js/musicutils.js:760 -#: js/synthutils.js:135 -#.TRANS: musical instrument -msgid "bass drum" +#: js/blocks/WidgetBlocks.js:920 +msgid "The Pitch slider tool to is used to generate pitches at selected frequencies." msgstr "" -#: js/musicutils.js:761 -#: js/synthutils.js:137 -#.TRANS: a drum made from an inverted cup -msgid "cup drum" +#: js/blocks/WidgetBlocks.js:925 +#.TRANS: widget to generate pitches using a slider +msgid "pitch slider" msgstr "" -#: js/musicutils.js:762 -#: js/synthutils.js:139 -#.TRANS: musical instrument -msgid "darbuka drum" +#: js/blocks/WidgetBlocks.js:977 +msgid "chromatic keyboard" msgstr "" -#: js/musicutils.js:763 -#: js/synthutils.js:143 -#.TRANS: musical instrument -msgid "hi hat" +#: js/blocks/WidgetBlocks.js:1011 +#: js/blocks/WidgetBlocks.js:1077 +#.TRANS: widget to generate pitches using a slider +msgid "music keyboard" msgstr "" -#: js/musicutils.js:764 -#: js/synthutils.js:145 -#.TRANS: a small metal bell -msgid "ride bell" +#: js/blocks/WidgetBlocks.js:1062 +#: js/blocks/WidgetBlocks.js:1069 +msgid "The Music keyboard block opens a piano keyboard that can be used to create notes." msgstr "" -#: js/musicutils.js:765 -#: js/synthutils.js:147 -#.TRANS: musical instrument -msgid "cow bell" +#: js/blocks/WidgetBlocks.js:1128 +msgid "The Pitch staircase tool to is used to generate pitches from a given ratio." msgstr "" -#: js/musicutils.js:766 -msgid "japanese drum" +#: js/blocks/WidgetBlocks.js:1135 +#.TRANS: generate a progressive sequence of pitches +msgid "pitch staircase" msgstr "" -#: js/musicutils.js:767 -#: js/synthutils.js:153 -#.TRANS: musical instrument -msgid "japanese bell" +#: js/blocks/WidgetBlocks.js:1222 +msgid "The Rhythm Maker block opens a tool to create drum machines." msgstr "" -#: js/musicutils.js:768 -#: js/synthutils.js:149 -#.TRANS: musical instrument -msgid "triangle bell" +#: js/blocks/WidgetBlocks.js:1291 +msgid "G major scale" msgstr "" -#: js/musicutils.js:769 -#: js/synthutils.js:151 -#.TRANS: musical instrument -msgid "finger cymbals" +#: js/blocks/WidgetBlocks.js:1326 +msgid "C major scale" msgstr "" -#: js/musicutils.js:770 -#: js/synthutils.js:155 -#.TRANS: a musically tuned set of bells -msgid "chime" +#: js/blocks/WidgetBlocks.js:1366 +msgid "The Phrase Maker block opens a tool to create musical phrases." msgstr "" -#: js/musicutils.js:771 -#: js/synthutils.js:157 -#.TRANS: a musical instrument -msgid "gong" +#: js/blocks/WidgetBlocks.js:1373 +#.TRANS: assigns pitch to a sequence of beats to generate a melody +msgid "phrase maker" msgstr "" -#: js/musicutils.js:772 -#: js/synthutils.js:159 -#.TRANS: sound effect -msgid "clang" +#: js/blocks/WidgetBlocks.js:1444 +msgid "You must have at least one pitch block and one rhythm block in the matrix." msgstr "" -#: js/musicutils.js:773 -#: js/synthutils.js:161 -#.TRANS: sound effect -msgid "crash" +#: js/blocks/WidgetBlocks.js:1503 +msgid "The Status block opens a tool for inspecting the status of Music Blocks as it is running." msgstr "" -#: js/musicutils.js:774 -#: js/synthutils.js:163 -#.TRANS: sound effect -msgid "bottle" +#: js/blocks/WidgetBlocks.js:1580 +#.TRANS: AI-generated music +msgid "aimusic" msgstr "" -#: js/musicutils.js:775 -#: js/synthutils.js:165 -#.TRANS: sound effect -msgid "clap" +#: js/turtleactions/MeterActions.js:101 +#: js/turtleactions/MeterActions.js:139 +msgid "beats per minute must be greater than" msgstr "" -#: js/musicutils.js:776 -#: js/synthutils.js:167 -#.TRANS: sound effect -msgid "slap" +#: js/turtleactions/MeterActions.js:111 +#: js/turtleactions/MeterActions.js:149 +msgid "maximum" msgstr "" -#: js/musicutils.js:777 -#: js/synthutils.js:169 -#.TRANS: sound effect -msgid "splash" +#: js/turtleactions/MeterActions.js:117 +#: js/turtleactions/MeterActions.js:155 +msgid "beats per minute is" msgstr "" -#: js/musicutils.js:778 -#: js/synthutils.js:171 -#.TRANS: sound effect -msgid "bubbles" +#: js/turtleactions/DictActions.js:75 +#: js/turtleactions/DictActions.js:142 +#: js/turtleactions/DictActions.js:172 +msgid "font" msgstr "" -#: js/musicutils.js:779 -#: js/synthutils.js:173 -#.TRANS: sound effect -msgid "raindrop" +#: js/turtleactions/DictActions.js:255 +msgid "Dictionary with this name does not exist" msgstr "" -#: js/musicutils.js:780 -#: js/synthutils.js:175 -#.TRANS: animal sound effect -msgid "cat" +#: js/turtleactions/DictActions.js:259 +msgid "Key with this name does not exist in " msgstr "" -#: js/musicutils.js:781 -#: js/synthutils.js:177 -#.TRANS: animal sound effect -msgid "cricket" +#: js/turtleactions/DrumActions.js:227 +msgid "Noise Block: Did you mean to use a Note block?" msgstr "" -#: js/musicutils.js:782 -#: js/synthutils.js:179 -#.TRANS: animal sound effect -msgid "dog" +#: js/turtleactions/IntervalsActions.js:113 +msgid "one" msgstr "" -#: js/musicutils.js:784 -#: js/synthutils.js:86 -#.TRANS: musical instrument -msgid "banjo" +#: js/turtleactions/IntervalsActions.js:113 +msgid "two" msgstr "" -#: js/musicutils.js:785 -#: js/synthutils.js:88 -#.TRANS: musical instrument -msgid "koto" +#: js/turtleactions/IntervalsActions.js:113 +msgid "three" msgstr "" -#: js/musicutils.js:786 -#: js/synthutils.js:90 -#.TRANS: musical instrument -msgid "dulcimer" +#: js/turtleactions/IntervalsActions.js:113 +msgid "four" msgstr "" -#: js/musicutils.js:787 -#: js/synthutils.js:92 -#.TRANS: musical instrument -msgid "electric guitar" +#: js/turtleactions/IntervalsActions.js:113 +msgid "five" msgstr "" -#: js/musicutils.js:788 -#: js/synthutils.js:94 -#.TRANS: musical instrument -msgid "bassoon" +#: js/turtleactions/IntervalsActions.js:113 +msgid "six" msgstr "" -#: js/musicutils.js:789 -#: js/synthutils.js:96 -#.TRANS: musical instrument -msgid "celeste" +#: js/turtleactions/IntervalsActions.js:113 +msgid "seven" msgstr "" -#: js/musicutils.js:791 -#: js/musicutils.js:1123 -#: js/musicutils.js:1131 -#: js/temperament.js:650 -#.TRANS: musical temperament -msgid "equal" +#: js/turtleactions/IntervalsActions.js:113 +msgid "eight" msgstr "" -#: js/musicutils.js:793 -#: js/musicutils.js:1125 -#: js/musicutils.js:1133 -#.TRANS: musical temperament -msgid "Pythagorean" +#: js/turtleactions/IntervalsActions.js:113 +msgid "nine" msgstr "" -#: js/musicutils.js:795 -#: js/musicutils.js:1124 -#: js/musicutils.js:1132 -#.TRANS: musical temperament -msgid "just intonation" +#: js/turtleactions/IntervalsActions.js:119 +msgid "a" msgstr "" -#: js/musicutils.js:797 -#: js/musicutils.js:1126 -#: js/musicutils.js:1127 -#: js/musicutils.js:1134 -#: js/musicutils.js:1135 -#.TRANS: musical temperament -msgid "meantone" +#: js/turtleactions/IntervalsActions.js:120 +msgid "below" msgstr "" -#: js/musicutils.js:814 -msgid "major 7th" +#: js/turtleactions/IntervalsActions.js:124 +msgid "above" msgstr "" -#: js/musicutils.js:815 -msgid "minor 7th" +#: js/turtleactions/IntervalsActions.js:131 +msgid "plus" msgstr "" -#: js/musicutils.js:816 -msgid "dominant 7th" +#: js/turtleactions/IntervalsActions.js:139 +msgid " below" msgstr "" -#: js/musicutils.js:817 -msgid "minor-major 7th" +#: js/turtleactions/IntervalsActions.js:257 +msgid "Adding missing pitch number 0." msgstr "" -#: js/musicutils.js:818 -msgid "fully-diminished 7th" +#: js/turtleactions/IntervalsActions.js:265 +msgid "Ignoring pitch numbers less than zero or greater than eleven." msgstr "" -#: js/musicutils.js:819 -msgid "half-diminished 7th" +#: js/turtleactions/IntervalsActions.js:271 +msgid "Ignoring duplicate pitch numbers." msgstr "" -#: js/musicutils.js:4379 -#: js/musicutils.js:4416 -msgid "current" +#: js/turtleactions/ToneActions.js:134 +msgid "Vibrato intensity must be between 1 and 100." msgstr "" -#: js/musicutils.js:4382 -#: js/musicutils.js:4407 -msgid "next" +#: js/turtleactions/ToneActions.js:139 +msgid "Vibrato rate must be greater than 0." msgstr "" -#: js/musicutils.js:4385 -#: js/musicutils.js:4412 -msgid "previous" +#: js/turtleactions/ToneActions.js:192 +#: js/turtleactions/ToneActions.js:265 +#.TRANS: Depth is the intesity of the tremolo or chorus effect. +msgid "Depth is out of range." msgstr "" -#: js/synthutils.js:104 -#.TRANS: simple monotone synthesizer -msgid "simple-2" +#: js/turtleactions/ToneActions.js:301 +msgid "Distortion must be from 0 to 100." msgstr "" -#: js/synthutils.js:106 -#.TRANS: simple monotone synthesizer -msgid "simple-3" +#: js/turtleactions/ToneActions.js:332 +#.TRANS: partials components in a harmonic series +msgid "Partial must be greater than or equal to 0." msgstr "" -#: js/synthutils.js:108 -#.TRANS: simple monotone synthesizer -msgid "simple-4" +#: js/turtleactions/ToneActions.js:378 +#: js/turtleactions/ToneActions.js:417 +#: js/turtleactions/ToneActions.js:456 +#: js/widgets/timbre.js:782 +msgid "Unable to use synth due to existing oscillator" msgstr "" -#: js/synthutils.js:141 -#.TRANS: musical instrument -msgid "taiko" +#: js/turtleactions/ToneActions.js:388 +#: js/turtleactions/ToneActions.js:427 +msgid "The input cannot be negative." msgstr "" -#: js/modewidget.js:86 -#: js/modewidget.js:88 -#: js/modewidget.js:642 -#: js/modewidget.js:644 -#: js/modewidget.js:712 -#: js/modewidget.js:714 -#: js/temperament.js:2078 -#: js/rhythmruler.js:189 -#: js/rhythmruler.js:1410 -#: js/rhythmruler.js:1412 -#: js/rhythmruler.js:1435 -#: js/rhythmruler.js:1437 -#: js/meterwidget.js:89 -#: js/meterwidget.js:91 +#: js/widgets/modewidget.js:86 +#: js/widgets/modewidget.js:88 +#: js/widgets/modewidget.js:642 +#: js/widgets/modewidget.js:644 +#: js/widgets/modewidget.js:712 +#: js/widgets/modewidget.js:714 +#: js/widgets/meterwidget.js:194 +#: js/widgets/meterwidget.js:196 +#: js/widgets/temperament.js:2236 +#: js/widgets/rhythmruler.js:457 +#: js/widgets/rhythmruler.js:1790 +#: js/widgets/rhythmruler.js:1792 +#: js/widgets/rhythmruler.js:1816 +#: js/widgets/rhythmruler.js:1818 msgid "Play all" msgstr "" -#: js/modewidget.js:115 -#: js/pitchstaircase.js:641 -#: js/phrasemaker.js:339 -#: js/pitchdrummatrix.js:94 -#: js/pitchslider.js:125 -#: js/temperament.js:2083 -#: js/musickeyboard.js:530 -#: js/timbre.js:756 -#: js/meterwidget.js:124 -#: js/arpeggio.js:103 +#: js/widgets/modewidget.js:115 +#: js/widgets/meterwidget.js:229 +#: js/widgets/pitchdrummatrix.js:166 +#: js/widgets/pitchslider.js:125 +#: js/widgets/pitchstaircase.js:641 +#: js/widgets/temperament.js:2244 +#: js/widgets/timbre.js:756 +#: js/widgets/arpeggio.js:103 +#: js/widgets/musickeyboard.js:688 +#: js/widgets/phrasemaker.js:550 msgid "Save" msgstr "" -#: js/modewidget.js:121 -#: js/pitchstaircase.js:686 -#: js/phrasemaker.js:356 -#: js/pitchdrummatrix.js:109 -#: js/musickeyboard.js:534 -#: js/rhythmruler.js:269 -#: js/arpeggio.js:118 +#: js/widgets/modewidget.js:121 +#: js/widgets/pitchdrummatrix.js:181 +#: js/widgets/pitchstaircase.js:686 +#: js/widgets/arpeggio.js:118 +#: js/widgets/musickeyboard.js:696 +#: js/widgets/phrasemaker.js:567 +#: js/widgets/rhythmruler.js:601 #.TRANS: clear all subdivisions from the ruler. msgid "Clear" msgstr "" -#: js/modewidget.js:127 +#: js/widgets/modewidget.js:127 msgid "Rotate counter clockwise" msgstr "" -#: js/modewidget.js:133 +#: js/widgets/modewidget.js:133 msgid "Rotate clockwise" msgstr "" -#: js/modewidget.js:139 +#: js/widgets/modewidget.js:139 msgid "Invert" msgstr "" -#: js/modewidget.js:145 -#: js/pitchstaircase.js:678 -#: js/rhythmruler.js:258 -#: js/timbre.js:963 +#: js/widgets/modewidget.js:145 +#: js/widgets/pitchstaircase.js:678 +#: js/widgets/timbre.js:963 +#: js/widgets/rhythmruler.js:578 msgid "Undo" msgstr "" -#: js/modewidget.js:163 +#: js/widgets/modewidget.js:163 #.TRANS: A circle of notes represents the musical mode. msgid "Click in the circle to select notes for the mode." msgstr "" -#: js/modewidget.js:1017 -#: js/pitchstaircase.js:580 -#: js/phrasemaker.js:4855 -#: js/temperament.js:1754 -#: js/rhythmruler.js:1865 -#: js/rhythmruler.js:2081 -#: js/tempo.js:414 +#: js/widgets/modewidget.js:1017 +#: js/widgets/pitchstaircase.js:580 +#: js/widgets/temperament.js:1929 +#: js/widgets/tempo.js:414 +#: js/widgets/phrasemaker.js:5356 +#: js/widgets/rhythmruler.js:2254 +#: js/widgets/rhythmruler.js:2472 msgid "New action block generated!" msgstr "" -#: js/oscilloscope.js:79 -msgid "Zoom In" -msgstr "" - -#: js/oscilloscope.js:88 -msgid "Zoom Out" -msgstr "" - -#: js/pitchstaircase.js:624 -msgid "Play chord" -msgstr "" - -#: js/pitchstaircase.js:632 -msgid "Play scale" +#: js/widgets/meterwidget.js:275 +msgid "Reset" msgstr "" -#: js/pitchstaircase.js:696 -msgid "Click on a note to create a new step." +#: js/widgets/meterwidget.js:301 +msgid "Click in the circle to select strong beats for the meter." msgstr "" -#: js/phrasemaker.js:363 -msgid "Export" +#: js/widgets/oscilloscope.js:79 +msgid "Zoom In" msgstr "" -#: js/phrasemaker.js:370 -msgid "Sort" +#: js/widgets/oscilloscope.js:88 +msgid "Zoom Out" msgstr "" -#: js/phrasemaker.js:373 -#: js/musickeyboard.js:559 -msgid "Add note" +#: js/widgets/pitchdrummatrix.js:356 +#: js/widgets/pitchdrummatrix.js:752 +msgid "Click in the grid to map notes to drums." msgstr "" -#: js/phrasemaker.js:764 -msgid "Click on the table to add notes." +#: js/widgets/pitchslider.js:103 +msgid "Move up" msgstr "" -#: js/phrasemaker.js:2414 -#: js/phrasemaker.js:2543 -msgid "tuplet value" +#: js/widgets/pitchslider.js:114 +msgid "Move down" msgstr "" -#: js/pitchdrummatrix.js:270 -#: js/pitchdrummatrix.js:639 -msgid "Click in the grid to map notes to drums." +#: js/widgets/pitchslider.js:136 +msgid "Click on the slider to create a note block." msgstr "" -#: js/pitchslider.js:103 -msgid "Move up" +#: js/widgets/pitchstaircase.js:624 +msgid "Play chord" msgstr "" -#: js/pitchslider.js:114 -msgid "Move down" +#: js/widgets/pitchstaircase.js:632 +msgid "Play scale" msgstr "" -#: js/pitchslider.js:136 -msgid "Click on the slider to create a note block." +#: js/widgets/pitchstaircase.js:696 +msgid "Click on a note to create a new step." msgstr "" -#: js/temperament.js:215 +#: js/widgets/temperament.js:321 msgid "back to 2:1 octave space" msgstr "" -#: js/temperament.js:323 +#: js/widgets/temperament.js:447 msgid "edit" msgstr "" -#: js/temperament.js:330 -#: js/temperament.js:332 -#: js/temperament.js:1336 -#: js/temperament.js:1338 +#: js/widgets/temperament.js:454 +#: js/widgets/temperament.js:456 +#: js/widgets/temperament.js:1493 +#: js/widgets/temperament.js:1495 msgid "close" msgstr "" -#: js/temperament.js:423 -#: js/temperament.js:736 -#: js/temperament.js:743 -#: js/temperament.js:845 -#: js/temperament.js:935 -#: js/temperament.js:942 -#: js/temperament.js:1015 -#: js/temperament.js:1284 -#: js/temperament.js:1354 -#: js/temperament.js:1430 +#: js/widgets/temperament.js:552 +#: js/widgets/temperament.js:877 +#: js/widgets/temperament.js:884 +#: js/widgets/temperament.js:986 +#: js/widgets/temperament.js:1080 +#: js/widgets/temperament.js:1087 +#: js/widgets/temperament.js:1160 +#: js/widgets/temperament.js:1433 +#: js/widgets/temperament.js:1511 +#: js/widgets/temperament.js:1596 msgid "done" msgstr "" -#: js/temperament.js:477 -#: js/temperament.js:482 -#: js/temperament.js:918 +#: js/widgets/temperament.js:610 +#: js/widgets/temperament.js:615 +#: js/widgets/temperament.js:1063 msgid "ratio" msgstr "" -#: js/temperament.js:483 +#: js/widgets/temperament.js:616 msgid "interval" msgstr "" -#: js/temperament.js:611 +#: js/widgets/temperament.js:744 msgid "non scalar" msgstr "" -#: js/temperament.js:650 +#: js/widgets/temperament.js:787 msgid "ratios" msgstr "" -#: js/temperament.js:650 +#: js/widgets/temperament.js:787 msgid "arbitrary" msgstr "" -#: js/temperament.js:719 +#: js/widgets/temperament.js:860 msgid "number of divisions" msgstr "" -#: js/temperament.js:741 -#: js/temperament.js:858 -#: js/temperament.js:940 -#: js/temperament.js:1033 +#: js/widgets/temperament.js:882 +#: js/widgets/temperament.js:999 +#: js/widgets/temperament.js:1085 +#: js/widgets/temperament.js:1178 msgid "preview" msgstr "" -#: js/temperament.js:788 +#: js/widgets/temperament.js:929 msgid "The Number of divisions is too large." msgstr "" -#: js/temperament.js:921 +#: js/widgets/temperament.js:1066 msgid "recursion" msgstr "" -#: js/temperament.js:1450 +#: js/widgets/temperament.js:1616 msgid "The octave ratio has changed. This changes temperament significantly." msgstr "" -#: js/temperament.js:2087 +#: js/widgets/temperament.js:2248 msgid "Table" msgstr "" -#: js/temperament.js:2185 +#: js/widgets/temperament.js:2356 msgid "Add pitches" msgstr "" -#: js/musickeyboard.js:570 -msgid "Metronome" +#: js/widgets/tempo.js:78 +#: js/widgets/tempo.js:97 +#: js/widgets/tempo.js:99 +#: js/widgets/aiwidget.js:134 +#: js/widgets/aiwidget.js:136 +#: js/widgets/rhythmruler.js:681 +#: js/widgets/rhythmruler.js:683 +#: js/widgets/rhythmruler.js:1864 +#: js/widgets/rhythmruler.js:1866 +#: js/widgets/sampler.js:180 +#: js/widgets/sampler.js:182 +msgid "Pause" msgstr "" -#: js/musickeyboard.js:1296 -#: plugins/rodi.rtp:193 -msgid "duration" +#: js/widgets/tempo.js:113 +msgid "Save tempo" msgstr "" -#: js/musickeyboard.js:2840 -msgid "New action blocks generated!" +#: js/widgets/tempo.js:144 +msgid "speed up" msgstr "" -#: js/musickeyboard.js:2841 -msgid "New action block generated" +#: js/widgets/tempo.js:150 +msgid "slow down" msgstr "" -#: js/musickeyboard.js:2984 -#: js/musickeyboard.js:2992 -msgid "MIDI device present." +#: js/widgets/tempo.js:194 +msgid "Adjust the tempo with the buttons." msgstr "" -#: js/musickeyboard.js:2995 -msgid "No MIDI device found." +#: js/widgets/tempo.js:261 +msgid "Please enter a number between 30 and 1000" msgstr "" -#: js/musickeyboard.js:3000 -msgid "Failed to get MIDI access in browser." +#: js/widgets/tempo.js:268 +#: js/widgets/tempo.js:271 +msgid "The beats per minute must be between 30 and 1000." msgstr "" -#: js/rhythmruler.js:202 -msgid "Save rhythms" +#: js/widgets/tempo.js:287 +msgid "The beats per minute must be below 1000." msgstr "" -#: js/rhythmruler.js:222 -msgid "Save drum machine" +#: js/widgets/tempo.js:303 +msgid "The beats per minute must be above 30" msgstr "" -#: js/rhythmruler.js:263 -#.TRANS: user can tap out a rhythm by clicking on a ruler. -msgid "Tap a rhythm" +#: js/widgets/timbre.js:766 +msgid "Synthesizer" msgstr "" -#: js/rhythmruler.js:342 -#: js/rhythmruler.js:344 -#: js/rhythmruler.js:1481 -#: js/rhythmruler.js:1483 -#: js/sampler.js:110 -#: js/sampler.js:112 -#: js/tempo.js:78 -#: js/tempo.js:97 -#: js/tempo.js:99 -msgid "Pause" +#: js/widgets/timbre.js:789 +msgid "Oscillator" msgstr "" -#: js/rhythmruler.js:478 -msgid "Click on the ruler to divide it." +#: js/widgets/timbre.js:840 +msgid "Envelope" msgstr "" -#: js/rhythmruler.js:603 -#: js/rhythmruler.js:605 -#: js/rhythmruler.js:804 -#: js/rhythmruler.js:806 -#: js/rhythmruler.js:1386 -#: js/rhythmruler.js:1388 -msgid "tap a rhythm" +#: js/widgets/timbre.js:886 +#: planet/js/GlobalTag.js:50 +#.TRANS: On the Planet, we use labels to tag projects. +msgid "Effects" msgstr "" -#: js/rhythmruler.js:1084 -msgid "Maximum value of 256 has been exceeded." +#: js/widgets/timbre.js:904 +msgid "Filter" msgstr "" -#: js/sampler.js:137 -msgid "Warning: Sample is bigger than 1MB." +#: js/widgets/timbre.js:946 +msgid "Add filter" msgstr "" -#: js/sampler.js:142 -msgid "Upload failed: Sample is not a .wav file." +#: js/widgets/timbre.js:987 +msgid "Click on buttons to open the timbre design tools." msgstr "" -#: js/sampler.js:164 -msgid "A new sample block was generated." +#: js/widgets/timbre.js:1273 +msgid "harmonicity" msgstr "" -#: js/sampler.js:255 -msgid "Upload sample" +#: js/widgets/timbre.js:1340 +#: js/widgets/timbre.js:1406 +msgid "modulation index" msgstr "" -#: js/sampler.js:306 -msgid "Save sample" +#: js/widgets/timbre.js:1484 +msgid "vibrato amount" msgstr "" -#: js/sampler.js:697 -#.TRANS: The reference tone is a sound used for comparison. -msgid "reference tone" +#: js/widgets/timbre.js:1919 +msgid "Filter already present." msgstr "" -#: js/tempo.js:113 -msgid "Save tempo" +#: js/widgets/timbre.js:2322 +msgid "delay (MS)" msgstr "" -#: js/tempo.js:144 -msgid "speed up" +#: js/widgets/timbre.js:2507 +msgid "distortion amount" msgstr "" -#: js/tempo.js:150 -msgid "slow down" +#: js/widgets/aiwidget.js:180 +#: js/widgets/sampler.js:227 +msgid "Warning: Sample is bigger than 1MB." msgstr "" -#: js/tempo.js:194 -msgid "Adjust the tempo with the buttons." +#: js/widgets/aiwidget.js:539 +msgid "New start block generated" msgstr "" -#: js/tempo.js:261 -msgid "Please enter a number between 30 and 1000" +#: js/widgets/aiwidget.js:541 +msgid "MIDI loading. This may take some time depending upon the number of notes in the track" msgstr "" -#: js/tempo.js:268 -#: js/tempo.js:271 -msgid "The beats per minute must be between 30 and 1000." +#: js/widgets/aiwidget.js:551 +#: js/widgets/sampler.js:254 +msgid "Upload failed: Sample is not a .wav file." msgstr "" -#: js/tempo.js:287 -msgid "The beats per minute must be below 1000." +#: js/widgets/aiwidget.js:679 +#: js/widgets/sampler.js:432 +msgid "Save sample" msgstr "" -#: js/tempo.js:303 -msgid "The beats per minute must be above 30" +#: js/widgets/aiwidget.js:701 +msgid "AI Music" msgstr "" -#: js/timbre.js:766 -msgid "Synthesizer" +#: js/widgets/arpeggio.js:239 +msgid "Click in the grid to add steps to the arpeggio." msgstr "" -#: js/timbre.js:789 -msgid "Oscillator" +#: js/widgets/help.js:95 +#: js/widgets/help.js:125 +#: js/widgets/help.js:146 +#: js/widgets/help.js:158 +#: js/widgets/help.js:376 +#: js/widgets/help.js:391 +msgid "Take a tour" msgstr "" -#: js/timbre.js:840 -msgid "Envelope" +#: js/widgets/musickeyboard.js:725 +#: js/widgets/phrasemaker.js:584 +msgid "Add note" msgstr "" -#: js/timbre.js:886 -#: js/GlobalTag.js:50 -#.TRANS: On the Planet, we use labels to tag projects. -msgid "Effects" +#: js/widgets/musickeyboard.js:744 +msgid "Metronome" +msgstr "" + +#: js/widgets/musickeyboard.js:1549 +#: plugins/rodi.rtp:193 +msgid "duration" +msgstr "" + +#: js/widgets/musickeyboard.js:3179 +msgid "New action blocks generated" +msgstr "" + +#: js/widgets/musickeyboard.js:3180 +msgid "New action block generated" msgstr "" -#: js/timbre.js:904 -msgid "Filter" +#: js/widgets/musickeyboard.js:3365 +#: js/widgets/musickeyboard.js:3373 +msgid "MIDI device present." msgstr "" -#: js/timbre.js:946 -msgid "Add filter" +#: js/widgets/musickeyboard.js:3376 +msgid "No MIDI device found." msgstr "" -#: js/timbre.js:987 -msgid "Click on buttons to open the timbre design tools." +#: js/widgets/musickeyboard.js:3386 +msgid "Failed to get MIDI access in browser." msgstr "" -#: js/timbre.js:1273 -msgid "harmonicity" +#: js/widgets/phrasemaker.js:574 +msgid "Export" msgstr "" -#: js/timbre.js:1340 -#: js/timbre.js:1406 -msgid "modulation index" +#: js/widgets/phrasemaker.js:581 +msgid "Sort" msgstr "" -#: js/timbre.js:1484 -msgid "vibrato amount" +#: js/widgets/phrasemaker.js:975 +msgid "Click on the table to add notes." msgstr "" -#: js/timbre.js:1919 -msgid "Filter already present." +#: js/widgets/phrasemaker.js:2677 +#: js/widgets/phrasemaker.js:2819 +msgid "tuplet value" msgstr "" -#: js/timbre.js:2322 -msgid "delay (MS)" +#: js/widgets/rhythmruler.js:486 +msgid "Save rhythms" msgstr "" -#: js/timbre.js:2507 -msgid "distortion amount" +#: js/widgets/rhythmruler.js:512 +msgid "Save drum machine" msgstr "" -#: js/meterwidget.js:170 -msgid "Reset" +#: js/widgets/rhythmruler.js:589 +#.TRANS: user can tap out a rhythm by clicking on a ruler. +msgid "Tap a rhythm" msgstr "" -#: js/meterwidget.js:196 -msgid "Click in the circle to select strong beats for the meter." +#: js/widgets/rhythmruler.js:817 +msgid "Click on the ruler to divide it." msgstr "" -#: js/arpeggio.js:239 -msgid "Click in the grid to add steps to the arpeggio." +#: js/widgets/rhythmruler.js:950 +#: js/widgets/rhythmruler.js:952 +#: js/widgets/rhythmruler.js:1152 +#: js/widgets/rhythmruler.js:1154 +#: js/widgets/rhythmruler.js:1765 +#: js/widgets/rhythmruler.js:1767 +msgid "tap a rhythm" msgstr "" -#: js/ProjectStorage.js:243 -msgid "anonymous" +#: js/widgets/rhythmruler.js:1459 +msgid "Maximum value of 256 has been exceeded." msgstr "" -#: js/GlobalCard.js:68 -msgid "Share" +#: js/widgets/sampler.js:237 +msgid "Recording started..." msgstr "" -#: js/GlobalCard.js:74 -msgid "Flags" +#: js/widgets/sampler.js:245 +msgid "Recording complete..." msgstr "" -#: js/LocalCard.js:36 -msgid "View published project" +#: js/widgets/sampler.js:283 +msgid "A new sample block was generated." msgstr "" -#: js/LocalCard.js:42 -msgid "Publish project" +#: js/widgets/sampler.js:378 +msgid "Upload sample" msgstr "" -#: js/LocalCard.js:51 -msgid "Edit project" +#: js/widgets/sampler.js:399 +msgid "Warning: Your sample cannot be loaded because it is >1MB." msgstr "" -#: js/LocalCard.js:52 -msgid "Delete project" +#: js/widgets/sampler.js:448 +msgid "Toggle Mic" msgstr "" -#: js/LocalCard.js:53 -msgid "Download project" +#: js/widgets/sampler.js:458 +msgid "Playback" msgstr "" -#: js/LocalCard.js:55 -msgid "Duplicate project" +#: js/widgets/sampler.js:979 +#.TRANS: The reference tone is a sound used for comparison. +msgid "reference tone" msgstr "" -#: js/GlobalTag.js:28 +#: planet/js/GlobalTag.js:28 #.TRANS: On the Planet, we use labels to tag projects. msgid "All Projects" msgstr "" -#: js/GlobalTag.js:30 -#: js/StringHelper.js:37 +#: planet/js/GlobalTag.js:30 +#: planet/js/StringHelper.js:37 #.TRANS: On the Planet, we use labels to tag projects. msgid "My Projects" msgstr "" -#: js/GlobalTag.js:32 +#: planet/js/GlobalTag.js:32 #.TRANS: On the Planet, we use labels to tag projects. msgid "Examples" msgstr "" -#: js/GlobalTag.js:34 +#: planet/js/GlobalTag.js:34 #.TRANS: On the Planet, we use labels to tag projects. msgid "Music" msgstr "" -#: js/GlobalTag.js:36 +#: planet/js/GlobalTag.js:36 #.TRANS: On the Planet, we use labels to tag projects. msgid "Art" msgstr "" -#: js/GlobalTag.js:38 +#: planet/js/GlobalTag.js:38 #.TRANS: On the Planet, we use labels to tag projects. msgid "Math" msgstr "" -#: js/GlobalTag.js:40 +#: planet/js/GlobalTag.js:40 #.TRANS: On the Planet, we use labels to tag projects. msgid "Interactive" msgstr "" -#: js/GlobalTag.js:42 +#: planet/js/GlobalTag.js:42 #.TRANS: On the Planet, we use labels to tag projects. msgid "Design" msgstr "" -#: js/GlobalTag.js:44 +#: planet/js/GlobalTag.js:44 #.TRANS: On the Planet, we use labels to tag projects. msgid "Game" msgstr "" -#: js/GlobalTag.js:46 +#: planet/js/GlobalTag.js:46 #.TRANS: On the Planet, we use labels to tag projects. msgid "Media" msgstr "" -#: js/GlobalTag.js:48 +#: planet/js/GlobalTag.js:48 #.TRANS: On the Planet, we use labels to tag projects. msgid "Sensors" msgstr "" -#: js/GlobalTag.js:52 +#: planet/js/GlobalTag.js:52 #.TRANS: On the Planet, we use labels to tag projects. msgid "Code Snippet" msgstr "" -#: js/helper.js:149 -#: js/StringHelper.js:49 -msgid "Show more tags" +#: planet/js/LocalCard.js:36 +msgid "View published project" msgstr "" -#: js/helper.js:150 -msgid "Show fewer tags" +#: planet/js/LocalCard.js:42 +msgid "Publish project" +msgstr "" + +#: planet/js/LocalCard.js:51 +msgid "Edit project" +msgstr "" + +#: planet/js/LocalCard.js:52 +msgid "Delete project" +msgstr "" + +#: planet/js/LocalCard.js:53 +msgid "Download project" +msgstr "" + +#: planet/js/LocalCard.js:55 +msgid "Duplicate project" +msgstr "" + +#: planet/js/ProjectStorage.js:243 +msgid "anonymous" +msgstr "" + +#: planet/js/SaveInterface.js:34 +msgid "Open in Music Blocks" +msgstr "" + +#: planet/js/SaveInterface.js:35 +msgid "Open in Turtle Blocks" +msgstr "" + +#: planet/js/GlobalCard.js:68 +msgid "Share" +msgstr "" + +#: planet/js/GlobalCard.js:74 +msgid "Flags" +msgstr "" + +#: planet/js/GlobalPlanet.js:35 +msgid "No results found." +msgstr "" + +#: planet/js/GlobalPlanet.js:51 +msgid "Remix of" +msgstr "" + +#: planet/js/GlobalPlanet.js:509 +msgid "Cannot connect to server" msgstr "" -#: js/ProjectViewer.js:30 +#: planet/js/ProjectViewer.js:30 msgid "Error: Report could not be submitted. Try again later." msgstr "" -#: js/ProjectViewer.js:31 +#: planet/js/ProjectViewer.js:31 msgid "Thank you for reporting this project. A moderator will review the project shortly, to verify violation of the Sugar Labs Code of Conduct." msgstr "" -#: js/ProjectViewer.js:32 -#: js/StringHelper.js:62 -#: js/StringHelper.js:64 -#: js/StringHelper.js:68 +#: planet/js/ProjectViewer.js:32 +#: planet/js/StringHelper.js:62 +#: planet/js/StringHelper.js:64 +#: planet/js/StringHelper.js:68 msgid "Report Project" msgstr "" -#: js/ProjectViewer.js:33 -#: js/StringHelper.js:63 +#: planet/js/ProjectViewer.js:33 +#: planet/js/StringHelper.js:63 msgid "Project Reported" msgstr "" -#: js/ProjectViewer.js:34 +#: planet/js/ProjectViewer.js:34 msgid "Report description required" msgstr "" -#: js/ProjectViewer.js:35 +#: planet/js/ProjectViewer.js:35 msgid "Report description too long" msgstr "" -#: js/StringHelper.js:30 +#: planet/js/Publisher.js:30 +msgid "Feature unavailable - cannot connect to server. Reload Music Blocks to try again." +msgstr "" + +#: planet/js/Publisher.js:220 +#: planet/js/Publisher.js:237 +msgid "This field is required" +msgstr "" + +#: planet/js/Publisher.js:227 +msgid "Title too long" +msgstr "" + +#: planet/js/Publisher.js:244 +msgid "Description too long" +msgstr "" + +#: planet/js/Publisher.js:341 +msgid "Server Error" +msgstr "" + +#: planet/js/Publisher.js:341 +msgid "Try Again" +msgstr "" + +#: planet/js/StringHelper.js:30 msgid "Planet" msgstr "" -#: js/StringHelper.js:31 +#: planet/js/StringHelper.js:31 msgid "Close Planet" msgstr "" -#: js/StringHelper.js:32 +#: planet/js/StringHelper.js:32 msgid "Open project from file" msgstr "" -#: js/StringHelper.js:34 +#: planet/js/StringHelper.js:34 msgid "Local" msgstr "" -#: js/StringHelper.js:35 +#: planet/js/StringHelper.js:35 msgid "Global" msgstr "" -#: js/StringHelper.js:36 +#: planet/js/StringHelper.js:36 msgid "Search for a project" msgstr "" -#: js/StringHelper.js:38 +#: planet/js/StringHelper.js:38 msgid "Publish Project" msgstr "" -#: js/StringHelper.js:40 +#: planet/js/StringHelper.js:40 msgid "Tags (max 5)" msgstr "" -#: js/StringHelper.js:41 -#: js/StringHelper.js:61 +#: planet/js/StringHelper.js:41 +#: planet/js/StringHelper.js:61 msgid "Description" msgstr "" -#: js/StringHelper.js:42 -#: js/StringHelper.js:67 +#: planet/js/StringHelper.js:42 +#: planet/js/StringHelper.js:67 msgid "Submit" msgstr "" -#: js/StringHelper.js:43 -#: js/StringHelper.js:47 +#: planet/js/StringHelper.js:43 +#: planet/js/StringHelper.js:47 msgid "Cancel" msgstr "" -#: js/StringHelper.js:44 +#: planet/js/StringHelper.js:44 msgid "Delete \\"\\"?" msgstr "" -#: js/StringHelper.js:45 +#: planet/js/StringHelper.js:45 msgid "Permanently delete project \\"\\"?" msgstr "" -#: js/StringHelper.js:48 +#: planet/js/StringHelper.js:48 msgid "Explore Projects" msgstr "" -#: js/StringHelper.js:50 +#: planet/js/StringHelper.js:49 +#: planet/js/helper.js:149 +msgid "Show more tags" +msgstr "" + +#: planet/js/StringHelper.js:50 msgid "Most recent" msgstr "" -#: js/StringHelper.js:51 +#: planet/js/StringHelper.js:51 msgid "Most liked" msgstr "" -#: js/StringHelper.js:52 +#: planet/js/StringHelper.js:52 msgid "Most downloaded" msgstr "" -#: js/StringHelper.js:53 +#: planet/js/StringHelper.js:53 msgid "A-Z" msgstr "" -#: js/StringHelper.js:54 +#: planet/js/StringHelper.js:54 msgid "Sort by" msgstr "" -#: js/StringHelper.js:55 +#: planet/js/StringHelper.js:55 msgid "Load More Projects" msgstr "" -#: js/StringHelper.js:56 +#: planet/js/StringHelper.js:56 msgid "Last Updated" msgstr "" -#: js/StringHelper.js:57 +#: planet/js/StringHelper.js:57 msgid "Creation Date" msgstr "" -#: js/StringHelper.js:58 +#: planet/js/StringHelper.js:58 msgid "Number of Downloads:" msgstr "" -#: js/StringHelper.js:59 +#: planet/js/StringHelper.js:59 msgid "Number of Likes:" msgstr "" -#: js/StringHelper.js:60 +#: planet/js/StringHelper.js:60 msgid "Tags:" msgstr "" -#: js/StringHelper.js:65 +#: planet/js/StringHelper.js:65 msgid "Report projects which violate the Sugar Labs Code of Conduct." msgstr "" -#: js/StringHelper.js:66 +#: planet/js/StringHelper.js:66 msgid "Reason for reporting project" msgstr "" -#: js/StringHelper.js:70 +#: planet/js/StringHelper.js:70 msgid "Download as File" msgstr "" -#: js/GlobalPlanet.js:35 -msgid "No results found." -msgstr "" - -#: js/GlobalPlanet.js:51 -msgid "Remix of" -msgstr "" - -#: js/GlobalPlanet.js:509 -msgid "Cannot connect to server" -msgstr "" - -#: js/Publisher.js:30 -msgid "Feature unavailable - cannot connect to server. Reload Music Blocks to try again." -msgstr "" - -#: js/Publisher.js:218 -#: js/Publisher.js:235 -msgid "This field is required" -msgstr "" - -#: js/Publisher.js:225 -msgid "Title too long" +#: planet/js/helper.js:150 +msgid "Show fewer tags" msgstr "" -#: js/Publisher.js:242 -msgid "Description too long" +#: plugins/accelerometer.rtp:48 +msgid "motion x" msgstr "" -#: js/Publisher.js:339 -msgid "Server Error" +#: plugins/accelerometer.rtp:56 +msgid "motion y" msgstr "" -#: js/Publisher.js:339 -msgid "Try Again" +#: plugins/accelerometer.rtp:64 +msgid "motion z" msgstr "" -#: js/SaveInterface.js:34 -msgid "Open in Music Blocks" +#: plugins/facebook.rtp:27 +msgid "publish" msgstr "" -#: js/SaveInterface.js:35 -msgid "Open in Turtle Blocks" +#: plugins/maths.rtp:62 +msgid "power" msgstr "" -#: plugins/weather.rtp:68 -#: plugins/weather.rtp:97 -msgid "Days ahead must be in the range of -1 to 5." +#: plugins/maths.rtp:62 +msgid "base" msgstr "" -#: plugins/weather.rtp:122 -msgid "forecast" +#: plugins/maths.rtp:62 +msgid "exp" msgstr "" -#: plugins/weather.rtp:123 -#: plugins/weather.rtp:137 -#: plugins/weather.rtp:150 -msgid "city" +#: plugins/maths.rtp:99 +msgid "floor" msgstr "" -#: plugins/weather.rtp:124 -#: plugins/weather.rtp:138 -#: plugins/weather.rtp:151 -msgid "day" +#: plugins/maths.rtp:104 +msgid "ceiling" msgstr "" -#: plugins/weather.rtp:136 -msgid "high" +#: plugins/maths.rtp:109 +msgid "to degrees" msgstr "" -#: plugins/weather.rtp:149 -msgid "low" +#: plugins/maths.rtp:114 +msgid "to radians" msgstr "" #: plugins/nutrition.rtp:104 @@ -9457,45 +9866,6 @@ msgstr "" msgid "water" msgstr "" -#: plugins/maths.rtp:62 -#: plugins/examples.rtp:93 -msgid "power" -msgstr "" - -#: plugins/maths.rtp:62 -#: plugins/examples.rtp:93 -msgid "base" -msgstr "" - -#: plugins/maths.rtp:62 -#: plugins/examples.rtp:93 -msgid "exp" -msgstr "" - -#: plugins/maths.rtp:99 -#: plugins/examples.rtp:130 -msgid "floor" -msgstr "" - -#: plugins/maths.rtp:104 -#: plugins/examples.rtp:135 -msgid "ceiling" -msgstr "" - -#: plugins/maths.rtp:109 -#: plugins/examples.rtp:140 -msgid "to degrees" -msgstr "" - -#: plugins/maths.rtp:114 -#: plugins/examples.rtp:145 -msgid "to radians" -msgstr "" - -#: plugins/facebook.rtp:27 -msgid "publish" -msgstr "" - #: plugins/rodi.rtp:172 msgid "blink" msgstr "" @@ -9524,18 +9894,66 @@ msgstr "" msgid "move" msgstr "" -#: plugins/accelerometer.rtp:48 -msgid "motion x" +#: plugins/weather.rtp:68 +#: plugins/weather.rtp:97 +msgid "Days ahead must be in the range of -1 to 5." msgstr "" -#: plugins/accelerometer.rtp:56 -msgid "motion y" +#: plugins/weather.rtp:122 +msgid "forecast" msgstr "" -#: plugins/accelerometer.rtp:64 -msgid "motion z" +#: plugins/weather.rtp:123 +#: plugins/weather.rtp:137 +#: plugins/weather.rtp:150 +msgid "city" +msgstr "" + +#: plugins/weather.rtp:124 +#: plugins/weather.rtp:138 +#: plugins/weather.rtp:151 +msgid "day" +msgstr "" + +#: plugins/weather.rtp:136 +msgid "high" +msgstr "" + +#: plugins/weather.rtp:149 +msgid "low" msgstr "" +#: js/toolbar.js:70 + +#: js/toolbar.js:130 + +#: js/toolbar.js:194 + +#: js/toolbar.js:249 + +#~msgid "Toggle JavaScript Editor" +#~msgstr "" + +#: js/EnsembleBlocks.js:643 + +#~msgid "The Turrle pitch block returns the current pitch number being played by the specified turtle." +#~msgstr "" + +#: js/PitchActions.js:88 + +#~msgid "The Scalar Step Block must be used inside of a Note Block." +#~msgstr "" + +#: js/PitchActions.js:107 + +#~msgid "The Scalar Step Block must be preceded by a Pitch Block." +#~msgstr "" + +#: js/musickeyboard.js:2840 + +#~msgid "New action blocks generated!" +#~msgstr "" + #: js/toolbar.js:110 #: js/toolbar.js:204 @@ -9876,11 +10294,6 @@ msgstr "" #~msgid "The Time block returns the number of seconds that the program has been running." #~msgstr "" -#: js/help.js:95 - -#~msgid "Take a tour" -#~msgstr "" - #: js/GlobalCard.js:48 #~msgid "More Details" @@ -12779,11 +13192,6 @@ msgstr "" #~msgid "The save-stack button saves a stack onto a custom palette. It appears after a \"long press\" on a stack." #~msgstr "" -#: js/musicutils.js:254 - -#~msgid "Custom" -#~msgstr "" - #: js/basicblocks.js:4785 #~msgid "Rhythm" diff --git a/po/ug.po b/po/ug.po index 8b200efca5..034ef9a30f 100644 --- a/po/ug.po +++ b/po/ug.po @@ -2129,276 +2129,131 @@ #: js/planetInterface.js:104 #: js/planetInterface.js:104 #: js/planetInterface.js:104 -msgid "project undefined" -msgstr "" - -#: js/logo.js:61 -msgid "Not a valid pitch name" -msgstr "" - -#: js/logo.js:507 -#: js/ProgramBlocks.js:258 -#: js/ProgramBlocks.js:427 -msgid "You must select a file." -msgstr "" - -#: js/logo.js:1184 -#: js/turtles.js:118 -#: js/turtle-painter.js:1192 -#: js/turtle-painter.js:1193 -#: js/block.js:1463 -#: js/lilypond.js:757 -#: js/lilypond.js:921 -#: js/lilypond.js:959 -#: js/ActionBlocks.js:1223 -#: js/ProgramBlocks.js:1267 -msgid "start" -msgstr "" - -#: js/logo.js:1696 -msgid "Playback is ready." -msgstr "" - -#: js/blocks.js:1011 -#: js/blocks.js:3427 -#: js/blocks.js:3428 -#: js/blocks.js:3653 -#: js/blocks.js:4012 -#: js/blocks.js:4205 -#: js/blocks.js:5343 -#: js/blocks.js:6474 -#: js/palette.js:527 -#: js/palette.js:536 -#: js/palette.js:545 -#: js/palette.js:554 -#: js/palette.js:1131 -#: js/palette.js:1142 -#: js/palette.js:1153 -#: js/palette.js:1164 -#: js/palette.js:1183 -#: js/rubrics.js:529 -#: js/macros.js:170 -#: js/macros.js:266 -#: js/macros.js:267 -#: js/macros.js:276 -#: js/macros.js:828 -#: js/block.js:1449 -#: js/block.js:4164 -#: js/block.js:4182 -#: js/block.js:4193 -#: js/turtledefs.js:128 -#: js/turtledefs.js:230 -#: js/ActionBlocks.js:254 -#: js/ActionBlocks.js:307 -#: js/ActionBlocks.js:617 -#: js/ActionBlocks.js:716 -#: js/ActionBlocks.js:961 -#: js/ActionBlocks.js:1049 -#: js/ActionBlocks.js:1322 -#: js/ActionBlocks.js:1325 -#: js/ActionBlocks.js:1337 -#: js/ActionBlocks.js:1404 -#: js/MeterBlocks.js:715 -#: js/MeterBlocks.js:768 -#: js/MeterBlocks.js:831 -#: js/MeterBlocks.js:892 -#: js/phrasemaker.js:4412 -#: js/musickeyboard.js:2647 -#: js/rhythmruler.js:1928 -#: js/rhythmruler.js:1935 -#: js/rhythmruler.js:2119 -#: js/rhythmruler.js:2126 -msgid "action" -msgstr "" - -#: js/blocks.js:1205 -#: js/blocks.js:3380 -#: js/blocks.js:3770 -#: js/blocks.js:3801 -#: js/blocks.js:3850 -#: js/blocks.js:3885 -#: js/blocks.js:6497 -#: js/palette.js:509 -#: js/palette.js:638 -#: js/palette.js:1107 -#: js/BoxesBlocks.js:282 -#: js/BoxesBlocks.js:285 -#: js/BoxesBlocks.js:405 -#: js/BoxesBlocks.js:594 -msgid "box" -msgstr "" - -#: js/blocks.js:1680 -msgid "Consider breaking this stack into parts." +#: js/SaveInterface.js:59 +#: js/SaveInterface.js:61 +#: js/SaveInterface.js:93 +msgid "Music Blocks Project" msgstr "" -#: js/blocks.js:2408 -#: js/palette.js:653 -#: js/MediaBlocks.js:602 -msgid "open file" +#: js/SaveInterface.js:63 +msgid "This project was created in Music Blocks" msgstr "" -#: js/blocks.js:2415 -#: js/blocks.js:2423 -#: js/activity.js:1875 -msgid "audio file" +#: js/SaveInterface.js:67 +msgid "Music Blocks is a Free/Libre Software application." msgstr "" -#: js/blocks.js:2536 -#: js/blocks.js:3147 -#: js/block.js:3543 -msgid "on2" +#: js/SaveInterface.js:69 +msgid "The source code can be accessed at" msgstr "" -#: js/blocks.js:2538 -#: js/blocks.js:3149 -#: js/block.js:3545 -msgid "off" +#: js/SaveInterface.js:72 +msgid "For more information, please consult the" msgstr "" -#: js/blocks.js:2543 -#: js/blocks.js:3154 -#: js/palette.js:618 -#: js/block.js:3466 -#: js/BooleanBlocks.js:77 -#: js/BooleanBlocks.js:167 -#: js/BooleanBlocks.js:251 -#: js/BooleanBlocks.js:335 -#: js/BooleanBlocks.js:433 -#: js/BooleanBlocks.js:539 -#: js/BooleanBlocks.js:640 -#: js/BooleanBlocks.js:741 -#: js/BooleanBlocks.js:847 -#: js/BooleanBlocks.js:948 -#: js/BooleanBlocks.js:1033 -#: js/SensorsBlocks.js:910 -msgid "true" +#: js/SaveInterface.js:76 +#: js/turtledefs.js:795 +msgid "Music Blocks Guide" msgstr "" -#: js/blocks.js:2545 -#: js/blocks.js:3156 -#: js/block.js:3466 -#: js/BooleanBlocks.js:79 -#: js/BooleanBlocks.js:169 -#: js/BooleanBlocks.js:253 -#: js/BooleanBlocks.js:337 -#: js/BooleanBlocks.js:435 -#: js/BooleanBlocks.js:541 -#: js/BooleanBlocks.js:642 -#: js/BooleanBlocks.js:743 -#: js/BooleanBlocks.js:849 -#: js/BooleanBlocks.js:950 -#: js/SensorsBlocks.js:912 -msgid "false" +#: js/SaveInterface.js:83 +msgid "Alternatively, open the file in Music Blocks using the Load project button." msgstr "" -#: js/blocks.js:3183 -#: js/palette.js:574 -#: js/MediaBlocks.js:892 -#: js/MediaBlocks.js:963 -msgid "text" +#: js/SaveInterface.js:85 +msgid "Project Code" msgstr "" -#: js/blocks.js:3379 -#: js/palette.js:641 -#: js/palette.js:642 -#: js/BoxesBlocks.js:514 -msgid "store in box" +#: js/SaveInterface.js:87 +msgid "This code stores data about the blocks in a project." msgstr "" -#: js/blocks.js:3384 -#: js/blocks.js:3824 -#: js/blocks.js:3859 -#: js/blocks.js:3894 -#: js/blocks.js:5773 -#: js/blocks.js:5794 -#: js/BoxesBlocks.js:772 -msgid "box1" +#: js/SaveInterface.js:89 +msgid "Show" msgstr "" -#: js/blocks.js:3386 -#: js/blocks.js:3826 -#: js/blocks.js:3861 -#: js/blocks.js:3896 -#: js/blocks.js:5775 -#: js/blocks.js:5796 -#: js/BoxesBlocks.js:663 -msgid "box2" +#: js/SaveInterface.js:91 +msgid "Hide" msgstr "" -#: js/blocks.js:4058 -#: js/palette.js:639 -#: js/palette.js:644 -#: js/palette.js:1043 -#: js/BoxesBlocks.js:591 -msgid "store in" +#: js/SaveInterface.js:131 +#: js/SaveInterface.js:204 +#: js/SaveInterface.js:262 +#: js/SaveInterface.js:389 +#: js/SaveInterface.js:417 +#: js/activity.js:4884 +#: planet/js/ProjectStorage.js:27 +#: planet/js/GlobalPlanet.js:467 +#: planet/js/GlobalPlanet.js:469 +#: planet/js/GlobalPlanet.js:495 +#.TRANS: default project title when saving as Lilypond +msgid "My Project" msgstr "" -#: js/blocks.js:4058 -#: js/EnsembleBlocks.js:391 -#: js/EnsembleBlocks.js:402 -#: js/MediaBlocks.js:746 -#: js/ProgramBlocks.js:390 -#: js/ProgramBlocks.js:495 -#: js/ProgramBlocks.js:658 -#: js/BoxesBlocks.js:595 -#: js/PitchBlocks.js:656 -#: js/PitchBlocks.js:932 -#: js/PitchBlocks.js:1827 -#: js/ToneBlocks.js:1025 -#: js/DictBlocks.js:215 -#: js/DictBlocks.js:289 -msgid "name" +#: js/SaveInterface.js:197 +#: planet/js/SaveInterface.js:58 +msgid "No description provided" msgstr "" -#: js/blocks.js:4058 -#: js/RhythmBlocks.js:1130 -#: js/BoxesBlocks.js:75 -#: js/BoxesBlocks.js:595 -#: js/HeapBlocks.js:544 -#: js/DictBlocks.js:289 -#: js/DictBlocks.js:430 -msgid "value" +#: js/SaveInterface.js:332 +msgid "Your recording is in progress." msgstr "" -#: js/blocks.js:4907 -msgid "There is no block selected." +#: js/SaveInterface.js:401 +#.TRANS: File name prompt for save as Lilypond +msgid "File name" msgstr "" -#: js/blocks.js:5002 -#: js/MediaBlocks.js:888 -msgid "show" +#: js/SaveInterface.js:403 +#: planet/js/StringHelper.js:39 +#.TRANS: Project title prompt for save as Lilypond +msgid "Project title" msgstr "" -#: js/blocks.js:5005 -#: js/MediaBlocks.js:803 -#.TRANS: Avatar is the image used to determine the appearance of the mouse. -msgid "avatar" +#: js/SaveInterface.js:405 +#.TRANS: Project title prompt for save as Lilypond +msgid "Project author" msgstr "" -#: js/blocks.js:5008 -#: js/ToneBlocks.js:1010 -#: js/sampler.js:693 -#.TRANS: The sound sample that the user uploads. -msgid "sample" +#: js/SaveInterface.js:407 +#.TRANS: MIDI prompt for save as Lilypond +msgid "Include MIDI output?" msgstr "" -#: js/turtles.js:874 -msgid "Grid" +#: js/SaveInterface.js:409 +#.TRANS: Guitar prompt for save as Lilypond +msgid "Include guitar tablature output?" msgstr "" -#: js/turtles.js:891 -#: js/turtledefs.js:626 -msgid "Clean" +#: js/SaveInterface.js:411 +#.TRANS: Lilypond is a scripting language for generating sheet music +msgid "Save as Lilypond" msgstr "" -#: js/turtles.js:912 -#: js/turtledefs.js:632 -msgid "Collapse" +#: js/SaveInterface.js:426 +#: js/blocks/EnsembleBlocks.js:75 +#: js/blocks/EnsembleBlocks.js:154 +#: js/blocks/EnsembleBlocks.js:216 +#: js/blocks/EnsembleBlocks.js:302 +#: js/blocks/EnsembleBlocks.js:348 +#: js/blocks/EnsembleBlocks.js:389 +#: js/blocks/EnsembleBlocks.js:441 +#: js/blocks/EnsembleBlocks.js:490 +#: js/blocks/EnsembleBlocks.js:536 +#: js/blocks/EnsembleBlocks.js:583 +#: js/blocks/EnsembleBlocks.js:637 +#: js/blocks/EnsembleBlocks.js:753 +#: js/blocks/EnsembleBlocks.js:840 +#: js/blocks/EnsembleBlocks.js:899 +#: js/blocks/EnsembleBlocks.js:942 +#: js/blocks/EnsembleBlocks.js:1212 +#: js/blocks/EnsembleBlocks.js:1280 +#.TRANS: default project author when saving as Lilypond +msgid "Mr. Mouse" msgstr "" -#: js/turtles.js:940 -msgid "Expand" +#: js/SaveInterface.js:573 +msgid "The Lilypond code is copied to clipboard. You can paste it here: " msgstr "" #: js/languagebox.js:198 @@ -2409,6933 +2264,7487 @@ msgstr "" msgid "Music Blocks is already set to this language." msgstr "" -#: js/piemenus.js:200 -#: js/musicutils.js:808 -#: js/musicutils.js:824 -#: js/phrasemaker.js:1672 -#: js/musickeyboard.js:2041 -#: js/sampler.js:544 -#.TRANS: double sharp is a music term related to pitch -msgid "double sharp" +#: js/planetInterface.js:131 +msgid "project undefined" msgstr "" -#: js/piemenus.js:201 -#: js/PitchBlocks.js:1510 -#: js/PitchActions.js:580 -#: js/musicutils.js:806 -#: js/musicutils.js:825 -#: js/phrasemaker.js:1673 -#: js/musickeyboard.js:2042 -#: js/sampler.js:545 -#.TRANS: sharp is a half-step up in pitch -#.TRANS: sharp is a music term related to pitch -msgid "sharp" +#: js/rubrics.js:523 +#: js/turtledefs.js:119 +#: js/turtledefs.js:221 +#: js/blocks/RhythmBlockPaletteBlocks.js:52 +#: js/blocks/RhythmBlockPaletteBlocks.js:234 +#: js/blocks/ProgramBlocks.js:745 +#: js/widgets/rhythmruler.js:2057 +#: js/widgets/rhythmruler.js:2064 +#: js/widgets/rhythmruler.js:2133 +#: js/widgets/rhythmruler.js:2140 +#: js/widgets/rhythmruler.js:2219 +#.TRANS: an arrangement of notes based on duration +msgid "rhythm" msgstr "" -#: js/piemenus.js:202 -#: js/musicutils.js:804 -#: js/musicutils.js:826 -#: js/phrasemaker.js:1674 -#: js/musickeyboard.js:2043 -#: js/sampler.js:546 -#.TRANS: natural is a music term related to pitch -msgid "natural" +#: js/rubrics.js:524 +#: js/turtledefs.js:121 +#: js/turtledefs.js:223 +#: js/block-verbose.js:2622 +#: js/block.js:2550 +#: js/blocks/IntervalsBlocks.js:63 +#: js/blocks/SensorsBlocks.js:178 +#: js/blocks/PitchBlocks.js:1839 +#: js/blocks/PitchBlocks.js:1853 +#: js/widgets/musickeyboard.js:1935 +#: js/widgets/phrasemaker.js:1036 +#.TRANS: pitch number +#.TRANS: pitch number +#.TRANS: we specify pitch in terms of a name and an octave. The name can be CDEFGAB or Do Re Mi Fa Sol La Ti. Octave is a number between 1 and 8. +msgid "pitch" msgstr "" -#: js/piemenus.js:203 -#: js/PitchBlocks.js:1469 -#: js/PitchActions.js:583 -#: js/musicutils.js:802 -#: js/musicutils.js:827 -#: js/phrasemaker.js:1675 -#: js/musickeyboard.js:2044 -#: js/sampler.js:547 -#.TRANS: flat is a half-step down in pitch -#.TRANS: flat is a music term related to pitch -msgid "flat" +#: js/rubrics.js:525 +#: js/turtledefs.js:123 +#: js/turtledefs.js:225 +msgid "tone" msgstr "" -#: js/piemenus.js:204 -#: js/musicutils.js:800 -#: js/musicutils.js:828 -#: js/phrasemaker.js:1676 -#: js/musickeyboard.js:2045 -#: js/sampler.js:548 -#.TRANS: double flat is a music term related to pitch -msgid "double flat" +#: js/rubrics.js:526 +#: js/lilypond.js:605 +#: js/lilypond.js:904 +#: js/lilypond.js:910 +#: js/lilypond.js:948 +msgid "mouse" msgstr "" -#: js/piemenus.js:2861 -#: js/PitchBlocks.js:1357 -#: js/musicutils.js:627 -#.TRANS: unison means the note is the same as the current note -#.TRANS: unison is a music term related to intervals -msgid "unison" +#: js/rubrics.js:527 +#: js/turtledefs.js:132 +#: js/turtledefs.js:234 +#: js/widgets/phrasemaker.js:1040 +msgid "pen" msgstr "" -#: js/piemenus.js:3015 -#: js/piemenus.js:3088 -#: js/musicutils.js:635 -#: js/musicutils.js:810 -#: js/musicutils.js:912 -#.TRANS: major is a music term related to intervals and mode -msgid "major" +#: js/rubrics.js:528 +#: js/turtledefs.js:133 +#: js/turtledefs.js:235 +#: js/blocks/NumberBlocks.js:981 +#: js/blocks/PitchBlocks.js:1717 +#: js/blocks/PitchBlocks.js:1758 +msgid "number" msgstr "" -#: js/piemenus.js:3015 -#: js/piemenus.js:3088 -#: js/musicutils.js:653 -#.TRANS: modal scale for music -msgid "ionian" +#: js/rubrics.js:529 +#: js/turtledefs.js:127 +#: js/turtledefs.js:229 +msgid "flow" msgstr "" -#: js/piemenus.js:3017 -#: js/piemenus.js:3092 -#: js/musicutils.js:633 -#: js/musicutils.js:811 -#: js/musicutils.js:909 -#.TRANS: minor is a music term related to intervals and mode -msgid "minor" +#: js/rubrics.js:530 +#: js/turtledefs.js:128 +#: js/turtledefs.js:230 +#: js/block-verbose.js:1609 +#: js/block-verbose.js:4559 +#: js/block-verbose.js:4577 +#: js/block-verbose.js:4588 +#: js/block.js:1573 +#: js/block.js:4483 +#: js/block.js:4501 +#: js/block.js:4512 +#: js/blocks.js:1018 +#: js/blocks.js:3491 +#: js/blocks.js:3492 +#: js/blocks.js:3717 +#: js/blocks.js:4076 +#: js/blocks.js:4269 +#: js/blocks.js:5432 +#: js/blocks.js:6563 +#: js/macros.js:170 +#: js/macros.js:266 +#: js/macros.js:267 +#: js/macros.js:276 +#: js/macros.js:828 +#: js/palette.js:527 +#: js/palette.js:536 +#: js/palette.js:545 +#: js/palette.js:554 +#: js/palette.js:1129 +#: js/palette.js:1140 +#: js/palette.js:1151 +#: js/palette.js:1162 +#: js/palette.js:1181 +#: js/blocks/ActionBlocks.js:254 +#: js/blocks/ActionBlocks.js:307 +#: js/blocks/ActionBlocks.js:617 +#: js/blocks/ActionBlocks.js:716 +#: js/blocks/ActionBlocks.js:961 +#: js/blocks/ActionBlocks.js:1049 +#: js/blocks/ActionBlocks.js:1322 +#: js/blocks/ActionBlocks.js:1325 +#: js/blocks/ActionBlocks.js:1337 +#: js/blocks/ActionBlocks.js:1404 +#: js/blocks/MeterBlocks.js:715 +#: js/blocks/MeterBlocks.js:768 +#: js/blocks/MeterBlocks.js:831 +#: js/blocks/MeterBlocks.js:892 +#: js/widgets/musickeyboard.js:2986 +#: js/widgets/phrasemaker.js:4913 +#: js/widgets/rhythmruler.js:2319 +#: js/widgets/rhythmruler.js:2326 +#: js/widgets/rhythmruler.js:2511 +#: js/widgets/rhythmruler.js:2518 +msgid "action" msgstr "" -#: js/piemenus.js:3017 -#: js/piemenus.js:3092 -#: js/musicutils.js:663 -#.TRANS: modal scale for music -msgid "aeolian" +#: js/rubrics.js:531 +#: js/turtledefs.js:136 +#: js/turtledefs.js:238 +msgid "sensors" msgstr "" -#: js/piemenus.js:3407 -msgid "Duplicate" +#: js/rubrics.js:532 +#: js/turtledefs.js:135 +#: js/turtledefs.js:237 +#: js/blocks/MediaBlocks.js:930 +msgid "media" msgstr "" -#: js/piemenus.js:3408 -#: js/turtledefs.js:534 -msgid "Extract" +#: js/rubrics.js:533 +msgid "mice" msgstr "" -#: js/piemenus.js:3409 -msgid "Move to trash" +#: js/toolbar.js:48 +#: js/toolbar.js:109 +msgid "About Music Blocks" msgstr "" -#: js/piemenus.js:3410 -#: js/timbre.js:968 -#: js/StringHelper.js:69 -msgid "Close" +#: js/toolbar.js:49 +#: js/toolbar.js:110 +#: js/toolbar.js:175 +#: js/toolbar.js:231 +#: js/turtledefs.js:445 +#: js/turtledefs.js:482 +#: js/activity.js:2660 +#: js/activity.js:2671 +#: js/activity.js:2902 +#: js/widgets/modewidget.js:77 +#: js/widgets/meterwidget.js:185 +#: js/widgets/pitchdrummatrix.js:147 +#: js/widgets/pitchdrummatrix.js:687 +#: js/widgets/pitchdrummatrix.js:689 +#: js/widgets/pitchdrummatrix.js:741 +#: js/widgets/pitchdrummatrix.js:743 +#: js/widgets/pitchdrummatrix.js:758 +#: js/widgets/pitchdrummatrix.js:760 +#: js/widgets/pitchdrummatrix.js:789 +#: js/widgets/pitchdrummatrix.js:791 +#: js/widgets/pitchstaircase.js:121 +#: js/widgets/temperament.js:610 +#: js/widgets/temperament.js:613 +#: js/widgets/temperament.js:673 +#: js/widgets/temperament.js:675 +#: js/widgets/temperament.js:2017 +#: js/widgets/temperament.js:2019 +#: js/widgets/tempo.js:84 +#: js/widgets/tempo.js:86 +#: js/widgets/timbre.js:432 +#: js/widgets/timbre.js:434 +#: js/widgets/timbre.js:465 +#: js/widgets/timbre.js:467 +#: js/widgets/timbre.js:746 +#: js/widgets/aiwidget.js:647 +#: js/widgets/aiwidget.js:654 +#: js/widgets/aiwidget.js:656 +#: js/widgets/arpeggio.js:90 +#: js/widgets/arpeggio.js:547 +#: js/widgets/arpeggio.js:549 +#: js/widgets/arpeggio.js:644 +#: js/widgets/arpeggio.js:646 +#: js/widgets/musickeyboard.js:676 +#: js/widgets/musickeyboard.js:872 +#: js/widgets/musickeyboard.js:874 +#: js/widgets/musickeyboard.js:953 +#: js/widgets/musickeyboard.js:955 +#: js/widgets/phrasemaker.js:513 +#: js/widgets/phrasemaker.js:523 +#: js/widgets/phrasemaker.js:525 +#: js/widgets/phrasemaker.js:4304 +#: js/widgets/phrasemaker.js:4528 +#: js/widgets/phrasemaker.js:4533 +#: js/widgets/phrasemaker.js:4535 +#: js/widgets/phrasemaker.js:4650 +#: js/widgets/rhythmruler.js:637 +#: js/widgets/rhythmruler.js:639 +#: js/widgets/rhythmruler.js:653 +#: js/widgets/rhythmruler.js:655 +#: js/widgets/sampler.js:162 +#: js/widgets/sampler.js:164 +#: js/widgets/sampler.js:363 +msgid "Play" msgstr "" -#: js/piemenus.js:3416 -msgid "Save stack" +#: js/toolbar.js:50 +#: js/toolbar.js:111 +#: js/toolbar.js:176 +#: js/toolbar.js:232 +#: js/turtledefs.js:451 +#: js/turtledefs.js:488 +#: js/activity.js:2679 +#: js/widgets/modewidget.js:99 +#: js/widgets/modewidget.js:101 +#: js/widgets/meterwidget.js:206 +#: js/widgets/meterwidget.js:208 +#: js/widgets/pitchdrummatrix.js:674 +#: js/widgets/pitchdrummatrix.js:676 +#: js/widgets/temperament.js:2002 +#: js/widgets/temperament.js:2004 +#: js/widgets/arpeggio.js:534 +#: js/widgets/arpeggio.js:536 +#: js/widgets/phrasemaker.js:534 +#: js/widgets/phrasemaker.js:536 +msgid "Stop" msgstr "" -#: js/piemenus.js:3420 -#: js/toolbar.js:60 -#: js/toolbar.js:120 -#: js/toolbar.js:185 -#: js/toolbar.js:240 -#: js/turtledefs.js:752 -msgid "Help" +#: js/toolbar.js:51 +#: js/toolbar.js:112 +#: js/toolbar.js:177 +#: js/toolbar.js:233 +#: js/turtledefs.js:498 +msgid "Record" msgstr "" -#: js/piemenus.js:3762 -msgid "You have chosen key " +#: js/toolbar.js:52 +#: js/toolbar.js:53 +msgid "Full screen" msgstr "" -#: js/piemenus.js:3766 -msgid " for your pitch preview." +#: js/toolbar.js:54 +#: js/toolbar.js:115 +#: js/toolbar.js:180 +#: js/toolbar.js:236 +#: js/turtledefs.js:504 +msgid "Toggle Fullscreen" +msgstr "" + +#: js/toolbar.js:55 +#: js/toolbar.js:116 +#: js/toolbar.js:181 +#: js/toolbar.js:237 +#: js/turtledefs.js:510 +#: planet/js/StringHelper.js:33 +msgid "New project" +msgstr "" + +#: js/toolbar.js:56 +#: js/toolbar.js:117 +#: js/toolbar.js:182 +#: js/toolbar.js:238 +#: js/turtledefs.js:516 +msgid "Load project from file" +msgstr "" + +#: js/toolbar.js:57 +#: js/toolbar.js:118 +#: js/toolbar.js:119 +#: js/toolbar.js:183 +#: js/toolbar.js:239 +#: js/turtledefs.js:541 +#: js/turtledefs.js:550 +#: js/turtledefs.js:571 +msgid "Save project" +msgstr "" + +#: js/toolbar.js:58 +#: js/toolbar.js:77 +#: js/toolbar.js:79 +#: js/toolbar.js:138 +#: js/toolbar.js:147 +#: js/toolbar.js:149 +#: js/toolbar.js:184 +#: js/toolbar.js:202 +#: js/toolbar.js:204 +#: js/toolbar.js:240 +#: js/toolbar.js:258 +#: js/toolbar.js:260 +msgid "Save project as HTML" +msgstr "" + +#: js/toolbar.js:59 +#: js/toolbar.js:120 +#: js/toolbar.js:185 +#: js/toolbar.js:241 +msgid "Find and share projects" +msgstr "" + +#: js/toolbar.js:60 +#: js/toolbar.js:121 +#: js/toolbar.js:186 +#: js/toolbar.js:242 +msgid "Offline. Sharing is unavailable" +msgstr "" + +#: js/toolbar.js:61 +#: js/toolbar.js:122 +#: js/toolbar.js:187 +#: js/toolbar.js:243 +msgid "Auxiliary menu" +msgstr "" + +#: js/toolbar.js:62 +#: js/toolbar.js:123 +#: js/toolbar.js:188 +#: js/toolbar.js:244 +#: js/turtledefs.js:752 +#: js/piemenus.js:3423 +msgid "Help" +msgstr "" + +#: js/toolbar.js:63 +#: js/toolbar.js:124 +#: js/toolbar.js:189 +#: js/toolbar.js:245 +msgid "Run slowly" +msgstr "" + +#: js/toolbar.js:64 +#: js/toolbar.js:125 +#: js/toolbar.js:190 +#: js/toolbar.js:246 +#: js/turtledefs.js:682 +msgid "Run step by step" +msgstr "" + +#: js/toolbar.js:65 +#: js/toolbar.js:126 +#: js/toolbar.js:191 +#: js/toolbar.js:247 +#: js/turtledefs.js:689 +msgid "Display statistics" +msgstr "" + +#: js/toolbar.js:66 +#: js/toolbar.js:127 +#: js/toolbar.js:192 +#: js/toolbar.js:248 +msgid "Load plugin" +msgstr "" + +#: js/toolbar.js:67 +#: js/toolbar.js:128 +#: js/toolbar.js:193 +#: js/toolbar.js:249 +#: js/turtledefs.js:696 +msgid "Delete plugin" +msgstr "" + +#: js/toolbar.js:68 +#: js/toolbar.js:129 +#: js/toolbar.js:194 +#: js/toolbar.js:250 +msgid "Enable horizontal scrolling" +msgstr "" + +#: js/toolbar.js:69 +#: js/toolbar.js:130 +#: js/toolbar.js:195 +#: js/toolbar.js:251 +msgid "Disable horizontal scrolling" +msgstr "" + +#: js/toolbar.js:70 +#: js/toolbar.js:131 +#: js/toolbar.js:196 +#: js/toolbar.js:252 +#: planet/js/LocalCard.js:54 +#: planet/js/StringHelper.js:71 +msgid "Merge with current project" +msgstr "" + +#: js/toolbar.js:71 +#: js/toolbar.js:132 +msgid "Set Pitch Preview" +msgstr "" + +#: js/toolbar.js:72 +#: js/toolbar.js:133 +#: js/toolbar.js:197 +#: js/toolbar.js:253 +msgid "JavaScript Editor" +msgstr "" + +#: js/toolbar.js:73 +#: js/toolbar.js:134 +#: js/toolbar.js:198 +#: js/toolbar.js:254 +#: js/turtledefs.js:724 +msgid "Restore" +msgstr "" + +#: js/toolbar.js:74 +#: js/toolbar.js:135 +#: js/toolbar.js:199 +#: js/toolbar.js:255 +msgid "Switch to beginner mode" +msgstr "" + +#: js/toolbar.js:75 +#: js/toolbar.js:136 +#: js/toolbar.js:200 +#: js/toolbar.js:256 +msgid "Switch to advanced mode" +msgstr "" + +#: js/toolbar.js:76 +#: js/toolbar.js:137 +#: js/toolbar.js:146 +#: js/toolbar.js:201 +#: js/toolbar.js:257 +#: js/turtledefs.js:738 +msgid "Select language" +msgstr "" + +#: js/toolbar.js:78 +#: js/toolbar.js:81 +#: js/toolbar.js:140 +#: js/turtledefs.js:579 +msgid "Save mouse artwork as PNG" +msgstr "" + +#: js/toolbar.js:80 +#: js/toolbar.js:139 +#: js/turtledefs.js:575 +msgid "Save mouse artwork as SVG" +msgstr "" + +#: js/toolbar.js:82 +#: js/toolbar.js:141 +#: js/turtledefs.js:583 +msgid "Save music as WAV" +msgstr "" + +#: js/toolbar.js:83 +#: js/toolbar.js:142 +#: js/turtledefs.js:587 +msgid "Save sheet music as ABC" +msgstr "" + +#: js/toolbar.js:84 +#: js/toolbar.js:143 +#: js/turtledefs.js:591 +msgid "Save sheet music as Lilypond" +msgstr "" + +#: js/toolbar.js:85 +msgid "Save sheet music as MusicXML" +msgstr "" + +#: js/toolbar.js:86 +#: js/toolbar.js:144 +#: js/toolbar.js:152 +#: js/toolbar.js:207 +#: js/toolbar.js:263 +#: js/turtledefs.js:562 +#: js/turtledefs.js:595 +msgid "Save block artwork as SVG" +msgstr "" + +#: js/toolbar.js:87 +#: js/toolbar.js:145 +#: js/toolbar.js:153 +#: js/toolbar.js:208 +#: js/toolbar.js:264 +#: js/turtles.js:911 +msgid "Confirm" +msgstr "" + +#: js/toolbar.js:88 +#: js/toolbar.js:154 +#: js/toolbar.js:209 +#: js/toolbar.js:265 +msgid "English (United States)" +msgstr "" + +#: js/toolbar.js:89 +#: js/toolbar.js:155 +#: js/toolbar.js:210 +#: js/toolbar.js:266 +msgid "English (United Kingdom)" +msgstr "" + +#: js/toolbar.js:90 +#: js/toolbar.js:156 +#: js/toolbar.js:211 +#: js/toolbar.js:267 +msgid "日本語" +msgstr "" + +#: js/toolbar.js:91 +msgid "한국어" +msgstr "" + +#: js/toolbar.js:92 +#: js/toolbar.js:158 +#: js/toolbar.js:213 +#: js/toolbar.js:269 +msgid "español" +msgstr "" + +#: js/toolbar.js:93 +#: js/toolbar.js:159 +#: js/toolbar.js:214 +#: js/toolbar.js:270 +msgid "português" +msgstr "" + +#: js/toolbar.js:94 +#: js/toolbar.js:160 +#: js/toolbar.js:215 +#: js/toolbar.js:271 +msgid "にほんご" +msgstr "" + +#: js/toolbar.js:95 +#: js/toolbar.js:161 +#: js/toolbar.js:216 +#: js/toolbar.js:272 +msgid "中文" +msgstr "" + +#: js/toolbar.js:96 +#: js/toolbar.js:162 +#: js/toolbar.js:217 +#: js/toolbar.js:273 +msgid "ภาษาไทย" +msgstr "" + +#: js/toolbar.js:97 +#: js/toolbar.js:163 +#: js/toolbar.js:218 +#: js/toolbar.js:274 +msgid "aymara" +msgstr "" + +#: js/toolbar.js:98 +#: js/toolbar.js:164 +#: js/toolbar.js:219 +#: js/toolbar.js:275 +msgid "quechua" +msgstr "" + +#: js/toolbar.js:99 +#: js/toolbar.js:165 +#: js/toolbar.js:220 +#: js/toolbar.js:276 +msgid "guarani" +msgstr "" + +#: js/toolbar.js:100 +#: js/toolbar.js:166 +#: js/toolbar.js:221 +#: js/toolbar.js:277 +msgid "हिंदी" +msgstr "" + +#: js/toolbar.js:101 +#: js/toolbar.js:168 +#: js/toolbar.js:222 +#: js/toolbar.js:279 +msgid "igbo" +msgstr "" + +#: js/toolbar.js:102 +#: js/toolbar.js:169 +#: js/toolbar.js:223 +#: js/toolbar.js:280 +msgid "عربى" +msgstr "" + +#: js/toolbar.js:103 +#: js/toolbar.js:167 +#: js/toolbar.js:224 +#: js/toolbar.js:278 +msgid "తెలుగు" +msgstr "" + +#: js/toolbar.js:104 +#: js/toolbar.js:170 +#: js/toolbar.js:225 +#: js/toolbar.js:281 +msgid "עִברִית" +msgstr "" + +#: js/toolbar.js:113 +#: js/toolbar.js:114 +#: js/toolbar.js:178 +#: js/toolbar.js:179 +#: js/toolbar.js:234 +#: js/toolbar.js:235 +msgid "Full Screen" +msgstr "" + +#: js/toolbar.js:148 +#: js/toolbar.js:151 +#: js/toolbar.js:203 +#: js/toolbar.js:206 +#: js/toolbar.js:259 +#: js/toolbar.js:262 +#: js/turtledefs.js:558 +msgid "Save turtle artwork as PNG" +msgstr "" + +#: js/toolbar.js:150 +#: js/toolbar.js:205 +#: js/toolbar.js:261 +#: js/turtledefs.js:554 +msgid "Save turtle artwork as SVG" +msgstr "" + +#: js/toolbar.js:157 +#: js/toolbar.js:212 +#: js/toolbar.js:268 +msgid "한국인" +msgstr "" + +#: js/toolbar.js:174 +#: js/toolbar.js:230 +msgid "About Turtle Blocks" +msgstr "" + +#: js/toolbar.js:446 +#: js/toolbar.js:457 +#: js/toolbar.js:497 +msgid "Turtle Wrap Off" +msgstr "" + +#: js/toolbar.js:466 +#: js/toolbar.js:506 +msgid "Turtle Wrap On" +msgstr "" + +#: js/turtle-painter.js:1192 +#: js/turtle-painter.js:1193 +#: js/turtles.js:118 +#: js/block-verbose.js:1623 +#: js/block.js:1587 +#: js/lilypond.js:749 +#: js/lilypond.js:913 +#: js/lilypond.js:951 +#: js/logo.js:1184 +#: js/blocks/ActionBlocks.js:1223 +#: js/blocks/ProgramBlocks.js:1267 +msgid "start" +msgstr "" + +#: js/turtledefs.js:40 +#.TRANS: put the URL to the guide here, e.g., https://github.com/sugarlabs/turtleblocksjs/tree/master/guide/README.md +msgid "guide url" +msgstr "" + +#: js/turtledefs.js:85 +#: js/turtledefs.js:437 +msgid "Turtle Blocks is a Logo-inspired turtle that draws colorful pictures with snap-together visual-programming blocks." +msgstr "" + +#: js/turtledefs.js:118 +#: js/turtledefs.js:220 +msgid "search" +msgstr "" + +#: js/turtledefs.js:120 +#: js/turtledefs.js:222 +#: js/blocks/MeterBlocks.js:1343 +#: js/blocks/WidgetBlocks.js:522 +#.TRANS: musical meter (time signature), e.g., 4:4 +msgid "meter" +msgstr "" + +#: js/turtledefs.js:122 +#: js/turtledefs.js:224 +msgid "intervals" +msgstr "" + +#: js/turtledefs.js:124 +#: js/turtledefs.js:226 +msgid "ornament" +msgstr "" + +#: js/turtledefs.js:125 +#: js/turtledefs.js:227 +#: js/blocks/VolumeBlocks.js:362 +#: js/blocks/VolumeBlocks.js:502 +#: js/blocks/VolumeBlocks.js:545 +msgid "volume" +msgstr "" + +#: js/turtledefs.js:126 +#: js/turtledefs.js:228 +#: js/block-verbose.js:1700 +#: js/block-verbose.js:2626 +#: js/block.js:1664 +#: js/block.js:2554 +#: js/lilypond.js:732 +#: js/lilypond.js:897 +#: js/lilypond.js:941 +#: js/palette.js:577 +#: js/blocks/RhythmBlocks.js:766 +#: js/blocks/DrumBlocks.js:477 +#: js/blocks/VolumeBlocks.js:502 +#: js/widgets/phrasemaker.js:1038 +msgid "drum" +msgstr "" + +#: js/turtledefs.js:129 +#: js/turtledefs.js:231 +msgid "boxes" +msgstr "" + +#: js/turtledefs.js:130 +#: js/turtledefs.js:232 +msgid "widgets" +msgstr "" + +#: js/turtledefs.js:131 +#: js/turtledefs.js:233 +#: js/widgets/phrasemaker.js:1039 +msgid "graphics" +msgstr "" + +#: js/turtledefs.js:134 +#: js/turtledefs.js:236 +msgid "boolean" +msgstr "" + +#: js/turtledefs.js:137 +#: js/turtledefs.js:239 +#: js/blocks/HeapBlocks.js:59 +#: js/widgets/status.js:147 +msgid "heap" +msgstr "" + +#: js/turtledefs.js:138 +#: js/turtledefs.js:240 +#: js/blocks/DictBlocks.js:142 +#: js/blocks/ProgramBlocks.js:495 +msgid "dictionary" +msgstr "" + +#: js/turtledefs.js:139 +#: js/turtledefs.js:241 +msgid "ensemble" +msgstr "" + +#: js/turtledefs.js:140 +#: js/turtledefs.js:242 +msgid "extras" +msgstr "" + +#: js/turtledefs.js:142 +#: js/turtledefs.js:244 +#.TRANS: program as in computer program +#.TRANS: program as in computer program +msgid "program" +msgstr "" + +#: js/turtledefs.js:143 +#: js/turtledefs.js:245 +msgid "my blocks" +msgstr "" + +#: js/turtledefs.js:185 +#: js/turtledefs.js:281 +msgid "artwork" +msgstr "" + +#: js/turtledefs.js:185 +#: js/turtledefs.js:281 +msgid "logic" +msgstr "" + +#: js/turtledefs.js:185 +#: js/turtledefs.js:281 +msgid "music" +msgstr "" + +#: js/turtledefs.js:187 +#: js/turtledefs.js:463 +msgid "Music Blocks is a collection of tools for exploring fundamental musical concepts in a fun way." +msgstr "" + +#: js/turtledefs.js:436 +msgid "Welcome to Turtle Blocks" +msgstr "" + +#: js/turtledefs.js:438 +#: js/turtledefs.js:465 +#: js/turtledefs.js:774 +#: js/turtledefs.js:805 +msgid "The current version is" +msgstr "" + +#: js/turtledefs.js:446 +#: js/turtledefs.js:483 +msgid "Click the run button to run the project in fast mode." +msgstr "" + +#: js/turtledefs.js:452 +msgid "Stop the turtle." +msgstr "" + +#: js/turtledefs.js:454 +#: js/turtledefs.js:491 +msgid "You can also type Alt-S to stop." +msgstr "" + +#: js/turtledefs.js:462 +#: js/widgets/help.js:333 +msgid "Welcome to Music Blocks" +msgstr "" + +#: js/turtledefs.js:472 +#: js/widgets/help.js:334 +msgid "Meet Mr. Mouse!" +msgstr "" + +#: js/turtledefs.js:473 +msgid "Mr Mouse is our Music Blocks conductor." +msgstr "" + +#: js/turtledefs.js:475 +msgid "Mr Mouse encourages you to explore Music Blocks." +msgstr "" + +#: js/turtledefs.js:477 +msgid "Let us start our tour!" +msgstr "" + +#: js/turtledefs.js:489 +msgid "Stop the music (and the mice)." +msgstr "" + +#: js/turtledefs.js:499 +msgid "Record your project as video." +msgstr "" + +#: js/turtledefs.js:505 +msgid "Toggle Fullscreen mode." +msgstr "" + +#: js/turtledefs.js:511 +msgid "Initialize a new project." +msgstr "" + +#: js/turtledefs.js:517 +msgid "You can also load projects from the file system." +msgstr "" + +#: js/turtledefs.js:522 +#: planet/js/StringHelper.js:46 +msgid "Delete" +msgstr "" + +#: js/turtledefs.js:523 +msgid "To delete a block, just right-click on it, then you will be able to see the delete option" +msgstr "" + +#: js/turtledefs.js:528 +#: js/activity.js:2649 +#: planet/js/LocalCard.js:31 +msgid "Copy" +msgstr "" + +#: js/turtledefs.js:529 +msgid "To copy a block, just right-click on it, then you will be able to see the copy option" +msgstr "" + +#: js/turtledefs.js:534 +#: js/piemenus.js:3411 +msgid "Extract" +msgstr "" + +#: js/turtledefs.js:535 +msgid "To extract a block, just right-click on it, then you will be able to see the extract option" +msgstr "" + +#: js/turtledefs.js:542 +#: js/turtledefs.js:552 +#: js/turtledefs.js:573 +msgid "Save your project to a file." +msgstr "" + +#: js/turtledefs.js:549 +#: js/turtledefs.js:570 +msgid "save" +msgstr "" + +#: js/turtledefs.js:556 +#: js/turtledefs.js:577 +msgid "Save graphics from your project to as SVG." +msgstr "" + +#: js/turtledefs.js:560 +#: js/turtledefs.js:581 +msgid "Save graphics from your project as PNG." +msgstr "" + +#: js/turtledefs.js:564 +#: js/turtledefs.js:597 +msgid "Save block artwork as an SVG file." +msgstr "" + +#: js/turtledefs.js:585 +msgid "Save audio from your project as WAV." +msgstr "" + +#: js/turtledefs.js:589 +msgid "Save your project to as an ABC file." +msgstr "" + +#: js/turtledefs.js:593 +msgid "Save your project to as a Lilypond file." +msgstr "" + +#: js/turtledefs.js:604 +msgid "Load samples from server" +msgstr "" + +#: js/turtledefs.js:605 +msgid "This button opens a viewer for loading example projects." +msgstr "" + +#: js/turtledefs.js:611 +msgid "Palette buttons" +msgstr "" + +#: js/turtledefs.js:612 +msgid "This toolbar contains the palette buttons including Rhythm Pitch Tone Action and more." +msgstr "" + +#: js/turtledefs.js:614 +msgid "Click to show the palettes of blocks and drag blocks from the palettes onto the canvas to use them." +msgstr "" + +#: js/turtledefs.js:620 +msgid "Cartesian/Polar" +msgstr "" + +#: js/turtledefs.js:621 +msgid "Show or hide a coordinate grid." +msgstr "" + +#: js/turtledefs.js:626 +#: js/turtles.js:902 +msgid "Clean" +msgstr "" + +#: js/turtledefs.js:627 +msgid "Clear the screen and return the mice to their initial positions." +msgstr "" + +#: js/turtledefs.js:632 +#: js/turtles.js:955 +msgid "Collapse" +msgstr "" + +#: js/turtledefs.js:633 +msgid "Collapse the graphics window." msgstr "" -#: js/palette.js:571 -msgid "grid" +#: js/turtledefs.js:638 +#: js/activity.js:5684 +msgid "Home" msgstr "" -#: js/palette.js:577 -#: js/block.js:1540 -#: js/block.js:2343 -#: js/turtledefs.js:126 -#: js/turtledefs.js:228 -#: js/lilypond.js:740 -#: js/lilypond.js:905 -#: js/lilypond.js:949 -#: js/DrumBlocks.js:486 -#: js/RhythmBlocks.js:766 -#: js/VolumeBlocks.js:502 -#: js/phrasemaker.js:823 -msgid "drum" +#: js/turtledefs.js:639 +msgid "Return all blocks to the center of the screen." msgstr "" -#: js/palette.js:580 -msgid "effect" +#: js/turtledefs.js:644 +msgid "Show/hide blocks" msgstr "" -#: js/palette.js:586 -msgid "sargam" +#: js/turtledefs.js:645 +msgid "Hide or show the blocks and the palettes." msgstr "" -#: js/palette.js:589 -#: js/activity.js:1833 -#: js/RhythmBlocks.js:923 -#: js/PitchBlocks.js:442 -#: js/PitchBlocks.js:1748 -#.TRANS: a numeric mapping of the notes in an octave based on the musical mode -msgid "scale degree" +#: js/turtledefs.js:650 +msgid "Expand/collapse collapsable blocks" msgstr "" -#: js/palette.js:592 -#: js/activity.js:1860 -msgid "mode name" +#: js/turtledefs.js:651 +msgid "Expand or collapse start and action stacks." msgstr "" -#: js/palette.js:595 -#: js/activity.js:1839 -msgid "invert mode" +#: js/turtledefs.js:658 +#: js/activity.js:5704 +msgid "Decrease block size" msgstr "" -#: js/palette.js:598 -#: js/activity.js:1836 -msgid "voice name" +#: js/turtledefs.js:659 +msgid "Decrease the size of the blocks." msgstr "" -#: js/palette.js:601 -#: js/PitchBlocks.js:1181 -msgid "custom pitch" +#: js/turtledefs.js:664 +#: js/activity.js:5710 +msgid "Increase block size" msgstr "" -#: js/palette.js:605 -#: js/block.js:1456 -#: js/block.js:1575 -#: js/WidgetBlocks.js:218 -#: js/IntervalsBlocks.js:63 -msgid "temperament" +#: js/turtledefs.js:665 +msgid "Increase the size of the blocks." msgstr "" -#: js/palette.js:609 -msgid "accidental" +#: js/turtledefs.js:670 +msgid "Expand/collapse option toolbar" msgstr "" -#: js/palette.js:615 -#: js/activity.js:1866 -msgid "interval name" +#: js/turtledefs.js:671 +msgid "Click this button to expand or collapse the auxillary toolbar." msgstr "" -#: js/palette.js:633 -#: js/PitchBlocks.js:405 -msgid "pitch converter" +#: js/turtledefs.js:676 +msgid "Run slow" msgstr "" -#: js/rubrics.js:522 -#: js/turtledefs.js:119 -#: js/turtledefs.js:221 -#: js/RhythmBlockPaletteBlocks.js:52 -#: js/RhythmBlockPaletteBlocks.js:233 -#: js/ProgramBlocks.js:745 -#: js/rhythmruler.js:1670 -#: js/rhythmruler.js:1677 -#: js/rhythmruler.js:1745 -#: js/rhythmruler.js:1752 -#: js/rhythmruler.js:1830 -#.TRANS: an arrangement of notes based on duration -msgid "rhythm" +#: js/turtledefs.js:677 +msgid "Click to run the project in slow mode." msgstr "" -#: js/rubrics.js:523 -#: js/block.js:2339 -#: js/turtledefs.js:121 -#: js/turtledefs.js:223 -#: js/IntervalsBlocks.js:63 -#: js/PitchBlocks.js:1801 -#: js/PitchBlocks.js:1814 -#: js/SensorsBlocks.js:178 -#: js/phrasemaker.js:821 -#: js/musickeyboard.js:1653 -#.TRANS: pitch number -#.TRANS: we specify pitch in terms of a name and an octave. The name can be CDEFGAB or Do Re Mi Fa Sol La Ti. Octave is a number between 1 and 8. -msgid "pitch" +#: js/turtledefs.js:683 +msgid "Click to run the project step by step." msgstr "" -#: js/rubrics.js:524 -#: js/turtledefs.js:123 -#: js/turtledefs.js:225 -msgid "tone" +#: js/turtledefs.js:690 +msgid "Display statistics about your Music project." msgstr "" -#: js/rubrics.js:525 -#: js/lilypond.js:613 -#: js/lilypond.js:912 -#: js/lilypond.js:918 -#: js/lilypond.js:956 -msgid "mouse" +#: js/turtledefs.js:697 +msgid "Delete a selected plugin." msgstr "" -#: js/rubrics.js:526 -#: js/turtledefs.js:132 -#: js/turtledefs.js:234 -#: js/phrasemaker.js:825 -msgid "pen" +#: js/turtledefs.js:704 +msgid "Enable scrolling" msgstr "" -#: js/rubrics.js:527 -#: js/turtledefs.js:133 -#: js/turtledefs.js:235 -#: js/NumberBlocks.js:905 -#: js/PitchBlocks.js:1679 -#: js/PitchBlocks.js:1720 -msgid "number" +#: js/turtledefs.js:705 +msgid "You can scroll the blocks on the canvas." msgstr "" -#: js/rubrics.js:528 -#: js/turtledefs.js:127 -#: js/turtledefs.js:229 -msgid "flow" +#: js/turtledefs.js:714 +msgid "Wrap Turtle" msgstr "" -#: js/rubrics.js:530 -#: js/turtledefs.js:136 -#: js/turtledefs.js:238 -msgid "sensors" +#: js/turtledefs.js:715 +msgid "Turn Turtle wrapping On or Off." msgstr "" -#: js/rubrics.js:531 -#: js/turtledefs.js:135 -#: js/turtledefs.js:237 -#: js/MediaBlocks.js:930 -msgid "media" +#: js/turtledefs.js:725 +msgid "Restore blocks from the trash." msgstr "" -#: js/rubrics.js:532 -msgid "mice" +#: js/turtledefs.js:732 +msgid "Switch mode" msgstr "" -#: js/macros.js:711 -#: js/musicutils.js:783 -#: js/synthutils.js:181 -#.TRANS: animal sound effect -msgid "duck" +#: js/turtledefs.js:733 +msgid "Switch between beginner and advance modes." msgstr "" -#: js/toolbar.js:46 -#: js/toolbar.js:107 -msgid "About Music Blocks" +#: js/turtledefs.js:739 +msgid "Select your language preference." msgstr "" -#: js/toolbar.js:47 -#: js/toolbar.js:108 -#: js/toolbar.js:172 -#: js/toolbar.js:228 -#: js/turtledefs.js:445 -#: js/turtledefs.js:482 -#: js/activity.js:2281 -#: js/activity.js:2289 -#: js/activity.js:2520 -#: js/modewidget.js:77 -#: js/pitchstaircase.js:121 -#: js/phrasemaker.js:302 -#: js/phrasemaker.js:312 -#: js/phrasemaker.js:314 -#: js/phrasemaker.js:3901 -#: js/phrasemaker.js:4061 -#: js/phrasemaker.js:4066 -#: js/phrasemaker.js:4068 -#: js/phrasemaker.js:4183 -#: js/pitchdrummatrix.js:81 -#: js/pitchdrummatrix.js:574 -#: js/pitchdrummatrix.js:576 -#: js/pitchdrummatrix.js:628 -#: js/pitchdrummatrix.js:630 -#: js/pitchdrummatrix.js:645 -#: js/pitchdrummatrix.js:647 -#: js/pitchdrummatrix.js:674 -#: js/pitchdrummatrix.js:676 -#: js/temperament.js:477 -#: js/temperament.js:480 -#: js/temperament.js:540 -#: js/temperament.js:542 -#: js/temperament.js:1835 -#: js/temperament.js:1837 -#: js/temperament.js:1986 -#: js/temperament.js:1988 -#: js/musickeyboard.js:522 -#: js/musickeyboard.js:682 -#: js/musickeyboard.js:684 -#: js/musickeyboard.js:756 -#: js/musickeyboard.js:758 -#: js/rhythmruler.js:298 -#: js/rhythmruler.js:300 -#: js/rhythmruler.js:314 -#: js/rhythmruler.js:316 -#: js/sampler.js:96 -#: js/sampler.js:98 -#: js/sampler.js:229 -#: js/sampler.js:235 -#: js/sampler.js:237 -#: js/tempo.js:84 -#: js/tempo.js:86 -#: js/timbre.js:432 -#: js/timbre.js:434 -#: js/timbre.js:465 -#: js/timbre.js:467 -#: js/timbre.js:746 -#: js/meterwidget.js:80 -#: js/arpeggio.js:90 -#: js/arpeggio.js:547 -#: js/arpeggio.js:549 -#: js/arpeggio.js:644 -#: js/arpeggio.js:646 -msgid "Play" +#: js/turtledefs.js:745 +msgid "Keyboard shortcuts" msgstr "" -#: js/toolbar.js:48 -#: js/toolbar.js:109 -#: js/toolbar.js:173 -#: js/toolbar.js:229 -#: js/turtledefs.js:451 -#: js/turtledefs.js:488 -#: js/activity.js:2297 -#: js/modewidget.js:99 -#: js/modewidget.js:101 -#: js/phrasemaker.js:323 -#: js/phrasemaker.js:325 -#: js/pitchdrummatrix.js:561 -#: js/pitchdrummatrix.js:563 -#: js/temperament.js:1820 -#: js/temperament.js:1822 -#: js/meterwidget.js:101 -#: js/meterwidget.js:103 -#: js/arpeggio.js:534 -#: js/arpeggio.js:536 -msgid "Stop" +#: js/turtledefs.js:746 +msgid "You can type d to create a do block and r to create a re block etc." msgstr "" -#: js/toolbar.js:49 -#: js/toolbar.js:110 -#: js/toolbar.js:174 -#: js/toolbar.js:230 -#: js/turtledefs.js:498 -msgid "Record" +#: js/turtledefs.js:753 +msgid "Show these messages." msgstr "" -#: js/toolbar.js:50 -#: js/toolbar.js:51 -msgid "Full screen" +#: js/turtledefs.js:759 +#: js/turtledefs.js:790 +#: js/widgets/help.js:335 +msgid "Guide" msgstr "" -#: js/toolbar.js:52 -#: js/toolbar.js:112 -#: js/toolbar.js:177 -#: js/toolbar.js:232 -#: js/turtledefs.js:504 -msgid "Toggle Fullscreen" +#: js/turtledefs.js:760 +msgid "A detailed guide to Turtle Blocks is available." msgstr "" -#: js/toolbar.js:53 -#: js/toolbar.js:113 -#: js/toolbar.js:178 -#: js/toolbar.js:233 -#: js/turtledefs.js:510 -#: js/StringHelper.js:33 -msgid "New project" +#: js/turtledefs.js:764 +msgid "Turtle Blocks Guide" msgstr "" -#: js/toolbar.js:54 -#: js/toolbar.js:114 -#: js/toolbar.js:179 -#: js/toolbar.js:234 -#: js/turtledefs.js:516 -msgid "Load project from file" +#: js/turtledefs.js:767 +#: js/turtledefs.js:798 +#: js/widgets/help.js:336 +msgid "About" msgstr "" -#: js/toolbar.js:55 -#: js/toolbar.js:115 -#: js/toolbar.js:116 -#: js/toolbar.js:180 -#: js/toolbar.js:235 -#: js/turtledefs.js:541 -#: js/turtledefs.js:550 -#: js/turtledefs.js:571 -msgid "Save project" +#: js/turtledefs.js:768 +msgid "Turtle Blocks is an open source collection of tools for exploring musical concepts." msgstr "" -#: js/toolbar.js:56 -#: js/toolbar.js:75 -#: js/toolbar.js:77 -#: js/toolbar.js:135 -#: js/toolbar.js:144 -#: js/toolbar.js:146 -#: js/toolbar.js:181 -#: js/toolbar.js:199 -#: js/toolbar.js:201 -#: js/toolbar.js:236 -#: js/toolbar.js:254 -#: js/toolbar.js:256 -msgid "Save project as HTML" +#: js/turtledefs.js:770 +msgid "A full list of contributors can be found in the Turtle Blocks GitHub repository." +msgstr "" + +#: js/turtledefs.js:772 +msgid "Turtle Blocks is licensed under the AGPL." +msgstr "" + +#: js/turtledefs.js:780 +msgid "Turtle Blocks GitHub repository" +msgstr "" + +#: js/turtledefs.js:783 +#: js/turtledefs.js:814 +#: js/widgets/help.js:337 +#: js/widgets/help.js:359 +msgid "Congratulations." +msgstr "" + +#: js/turtledefs.js:784 +msgid "You have finished the tour. Please enjoy Turtle Blocks!" +msgstr "" + +#: js/turtledefs.js:791 +msgid "A detailed guide to Music Blocks is available." +msgstr "" + +#: js/turtledefs.js:799 +msgid "Music Blocks is an open source collection of tools for exploring musical concepts." +msgstr "" + +#: js/turtledefs.js:801 +msgid "A full list of contributors can be found in the Music Blocks GitHub repository." +msgstr "" + +#: js/turtledefs.js:803 +msgid "Music Blocks is licensed under the AGPL." +msgstr "" + +#: js/turtledefs.js:811 +msgid "Music Blocks GitHub repository" +msgstr "" + +#: js/turtledefs.js:815 +msgid "You have finished the tour. Please enjoy Music Blocks!" +msgstr "" + +#: js/turtles.js:882 +msgid "Grid" +msgstr "" + +#: js/turtles.js:1024 +msgid "Expand" +msgstr "" + +#: js/block-verbose.js:1616 +#: js/block-verbose.js:1735 +#: js/block.js:1580 +#: js/block.js:1699 +#: js/palette.js:605 +#: js/blocks/IntervalsBlocks.js:63 +#: js/blocks/WidgetBlocks.js:259 +msgid "temperament" +msgstr "" + +#: js/block-verbose.js:1630 +#: js/block.js:1594 +msgid "matrix" msgstr "" -#: js/toolbar.js:57 -#: js/toolbar.js:117 -#: js/toolbar.js:182 -#: js/toolbar.js:237 -msgid "Find and share projects" +#: js/block-verbose.js:1637 +#: js/block.js:1601 +#: js/blocks/WidgetBlocks.js:1509 +#: plugins/rodi.rtp:324 +msgid "status" msgstr "" -#: js/toolbar.js:58 -#: js/toolbar.js:118 -#: js/toolbar.js:183 -#: js/toolbar.js:238 -msgid "Offline. Sharing is unavailable" +#: js/block-verbose.js:1644 +#: js/block.js:1608 +msgid "drum mapper" msgstr "" -#: js/toolbar.js:59 -#: js/toolbar.js:119 -#: js/toolbar.js:184 -#: js/toolbar.js:239 -msgid "Auxiliary menu" +#: js/block-verbose.js:1651 +#: js/block.js:1615 +msgid "ruler" msgstr "" -#: js/toolbar.js:61 -#: js/toolbar.js:121 -#: js/toolbar.js:186 -#: js/toolbar.js:241 -msgid "Run slowly" +#: js/block-verbose.js:1658 +#: js/block.js:1622 +#: js/blocks/WidgetBlocks.js:397 +#.TRANS: timbre is the character or quality of a musical sound +msgid "timbre" msgstr "" -#: js/toolbar.js:62 -#: js/toolbar.js:122 -#: js/toolbar.js:187 -#: js/toolbar.js:242 -#: js/turtledefs.js:682 -msgid "Run step by step" +#: js/block-verbose.js:1665 +#: js/block.js:1629 +msgid "stair" msgstr "" -#: js/toolbar.js:63 -#: js/toolbar.js:123 -#: js/toolbar.js:188 -#: js/toolbar.js:243 -#: js/turtledefs.js:689 -msgid "Display statistics" +#: js/block-verbose.js:1672 +#: js/block.js:1636 +#: js/blocks/WidgetBlocks.js:707 +#.TRANS: the speed at music is should be played. +msgid "tempo" msgstr "" -#: js/toolbar.js:64 -#: js/toolbar.js:124 -#: js/toolbar.js:189 -#: js/toolbar.js:244 -msgid "Load plugin" +#: js/block-verbose.js:1679 +#: js/block-verbose.js:1742 +#: js/block.js:1643 +#: js/block.js:1706 +#: js/blocks/IntervalsBlocks.js:1464 +#.TRANS: mode, e.g., Major in C Major +msgid "mode" msgstr "" -#: js/toolbar.js:65 -#: js/toolbar.js:125 -#: js/toolbar.js:190 -#: js/toolbar.js:245 -#: js/turtledefs.js:696 -msgid "Delete plugin" +#: js/block-verbose.js:1686 +#: js/block.js:1650 +msgid "slider" msgstr "" -#: js/toolbar.js:66 -#: js/toolbar.js:126 -#: js/toolbar.js:191 -#: js/toolbar.js:246 -msgid "Enable horizontal scrolling" +#: js/block-verbose.js:1693 +#: js/block.js:1657 +#: js/blocks/SensorsBlocks.js:1001 +msgid "keyboard" msgstr "" -#: js/toolbar.js:67 -#: js/toolbar.js:127 -#: js/toolbar.js:192 -#: js/toolbar.js:247 -msgid "Disable horizontal scrolling" +#: js/block-verbose.js:1707 +#: js/block.js:1671 +#: js/blocks/WidgetBlocks.js:1190 +#: js/blocks/WidgetBlocks.js:1228 +#.TRANS: widget for subdividing a measure into distinct rhythmic elements +msgid "rhythm maker" msgstr "" -#: js/toolbar.js:68 -#: js/toolbar.js:128 -#: js/toolbar.js:193 -#: js/toolbar.js:248 -#: js/LocalCard.js:54 -#: js/StringHelper.js:71 -msgid "Merge with current project" +#: js/block-verbose.js:1714 +#: js/block-verbose.js:2457 +#: js/block-verbose.js:2514 +#: js/block.js:1678 +#: js/block.js:2385 +#: js/block.js:2442 +#: js/blocks/MeterBlocks.js:1367 +#: js/blocks/OrnamentBlocks.js:220 +#: js/blocks/OrnamentBlocks.js:312 +#: js/blocks/RhythmBlocks.js:33 +#: js/blocks/RhythmBlocks.js:356 +#: js/blocks/RhythmBlocks.js:766 +#: js/blocks/RhythmBlocks.js:806 +#: js/blocks/RhythmBlockPaletteBlocks.js:70 +#: js/blocks/RhythmBlockPaletteBlocks.js:252 +#: js/blocks/RhythmBlockPaletteBlocks.js:485 +#: js/blocks/RhythmBlockPaletteBlocks.js:554 +#: js/blocks/RhythmBlockPaletteBlocks.js:605 +#: js/blocks/RhythmBlockPaletteBlocks.js:875 +#: js/turtleactions/DictActions.js:85 +#: js/widgets/phrasemaker.js:942 +#: js/widgets/phrasemaker.js:2656 +#: js/widgets/phrasemaker.js:2699 +#: js/widgets/phrasemaker.js:2810 +#.TRANS: the value (e.g., 1/4 note) of the note being played. +msgid "note value" msgstr "" -#: js/toolbar.js:69 -#: js/toolbar.js:129 -msgid "Set Pitch Preview" +#: js/block-verbose.js:1721 +#: js/block-verbose.js:2382 +#: js/block-verbose.js:2405 +#: js/block.js:1685 +#: js/block.js:2310 +#: js/block.js:2333 +#: js/blocks/IntervalsBlocks.js:1071 +#: js/blocks/OrnamentBlocks.js:312 +#.TRANS: calculate a relative step between notes based on semi-tones +msgid "scalar interval" msgstr "" -#: js/toolbar.js:70 -#: js/toolbar.js:130 -#: js/toolbar.js:194 -#: js/toolbar.js:249 -msgid "Toggle JavaScript Editor" +#: js/block-verbose.js:1728 +#: js/block.js:1692 +#: js/blocks/RhythmBlocks.js:148 +msgid "milliseconds" msgstr "" -#: js/toolbar.js:71 -#: js/toolbar.js:131 -#: js/toolbar.js:195 -#: js/toolbar.js:250 -#: js/turtledefs.js:724 -msgid "Restore" +#: js/block-verbose.js:2455 +#: js/block-verbose.js:2459 +#: js/block-verbose.js:2512 +#: js/block-verbose.js:2628 +#: js/block.js:2383 +#: js/block.js:2387 +#: js/block.js:2440 +#: js/block.js:2556 +#: js/blocks/RhythmBlocks.js:712 +#: js/blocks/ProgramBlocks.js:1273 +#: js/widgets/rhythmruler.js:1183 +#: js/widgets/rhythmruler.js:1329 +msgid "silence" msgstr "" -#: js/toolbar.js:72 -#: js/toolbar.js:132 -#: js/toolbar.js:196 -#: js/toolbar.js:251 -msgid "Switch to beginner mode" +#: js/block-verbose.js:2548 +#: js/block-verbose.js:3492 +#: js/block-verbose.js:3509 +#: js/activity.js:2718 +#: js/activity.js:2769 +#: js/block.js:2476 +#: js/block.js:3416 +#: js/block.js:3433 +#: js/utils/musicutils.js:3780 +#: js/utils/musicutils.js:5273 +#.TRANS: the note names must be separated by single spaces +#.TRANS: the note names must be separated by single spaces +#.TRANS: the note names must be separated by single spaces +msgid "ti la sol fa mi re do" msgstr "" -#: js/toolbar.js:73 -#: js/toolbar.js:133 -#: js/toolbar.js:197 -#: js/toolbar.js:252 -msgid "Switch to advanced mode" +#: js/block-verbose.js:2616 +#: js/block.js:2544 +#.TRANS: scalar step +#.TRANS: scalar step +msgid "down" msgstr "" -#: js/toolbar.js:74 -#: js/toolbar.js:134 -#: js/toolbar.js:143 -#: js/toolbar.js:198 -#: js/toolbar.js:253 -#: js/turtledefs.js:738 -msgid "Select language" +#: js/block-verbose.js:2617 +#: js/block.js:2545 +msgid "up" msgstr "" -#: js/toolbar.js:76 -#: js/toolbar.js:79 -#: js/toolbar.js:137 -#: js/turtledefs.js:579 -msgid "Save mouse artwork as PNG" +#: js/block-verbose.js:3026 +#: js/block.js:2950 +msgid "Silence block cannot be removed." msgstr "" -#: js/toolbar.js:78 -#: js/toolbar.js:136 -#: js/turtledefs.js:575 -msgid "Save mouse artwork as SVG" +#: js/block-verbose.js:3824 +#: js/block.js:3748 +#: js/blocks.js:2607 +#: js/blocks.js:3218 +#: js/palette.js:618 +#: js/blocks/BooleanBlocks.js:77 +#: js/blocks/BooleanBlocks.js:167 +#: js/blocks/BooleanBlocks.js:251 +#: js/blocks/BooleanBlocks.js:335 +#: js/blocks/BooleanBlocks.js:433 +#: js/blocks/BooleanBlocks.js:539 +#: js/blocks/BooleanBlocks.js:640 +#: js/blocks/BooleanBlocks.js:741 +#: js/blocks/BooleanBlocks.js:847 +#: js/blocks/BooleanBlocks.js:948 +#: js/blocks/BooleanBlocks.js:1033 +#: js/blocks/SensorsBlocks.js:910 +msgid "true" msgstr "" -#: js/toolbar.js:80 -#: js/toolbar.js:138 -#: js/turtledefs.js:583 -msgid "Save music as WAV" +#: js/block-verbose.js:3824 +#: js/block.js:3748 +#: js/blocks.js:2609 +#: js/blocks.js:3220 +#: js/blocks/BooleanBlocks.js:79 +#: js/blocks/BooleanBlocks.js:169 +#: js/blocks/BooleanBlocks.js:253 +#: js/blocks/BooleanBlocks.js:337 +#: js/blocks/BooleanBlocks.js:435 +#: js/blocks/BooleanBlocks.js:541 +#: js/blocks/BooleanBlocks.js:642 +#: js/blocks/BooleanBlocks.js:743 +#: js/blocks/BooleanBlocks.js:849 +#: js/blocks/BooleanBlocks.js:950 +#: js/blocks/SensorsBlocks.js:912 +msgid "false" msgstr "" -#: js/toolbar.js:81 -#: js/toolbar.js:139 -#: js/turtledefs.js:587 -msgid "Save sheet music as ABC" +#: js/block-verbose.js:3835 +#: js/block-verbose.js:3848 +#: js/block.js:3759 +#: js/block.js:3772 +#: js/blocks/ExtrasBlocks.js:615 +msgid "Cartesian" msgstr "" -#: js/toolbar.js:82 -#: js/toolbar.js:140 -#: js/turtledefs.js:591 -msgid "Save sheet music as Lilypond" +#: js/block-verbose.js:3836 +#: js/block-verbose.js:3849 +#: js/block.js:3760 +#: js/block.js:3773 +#: js/blocks/ExtrasBlocks.js:619 +msgid "polar" msgstr "" -#: js/toolbar.js:83 -msgid "Save sheet music as MusicXML" +#: js/block-verbose.js:3837 +#: js/block-verbose.js:3850 +#: js/block.js:3761 +#: js/block.js:3774 +#: js/blocks/ExtrasBlocks.js:623 +msgid "Cartesian+polar" msgstr "" -#: js/toolbar.js:84 -#: js/toolbar.js:141 -#: js/toolbar.js:149 -#: js/toolbar.js:204 -#: js/toolbar.js:259 -#: js/turtledefs.js:562 -#: js/turtledefs.js:595 -msgid "Save block artwork as SVG" +#: js/block-verbose.js:3838 +#: js/block-verbose.js:3857 +#: js/block.js:3762 +#: js/block.js:3781 +#: js/blocks/ExtrasBlocks.js:652 +msgid "none" msgstr "" -#: js/toolbar.js:85 -#: js/toolbar.js:142 -#: js/toolbar.js:150 -#: js/toolbar.js:205 -#: js/toolbar.js:260 -msgid "Confirm" +#: js/block-verbose.js:3851 +#: js/block.js:3775 +#: js/blocks/ExtrasBlocks.js:628 +msgid "treble" msgstr "" -#: js/toolbar.js:86 -#: js/toolbar.js:151 -#: js/toolbar.js:206 -#: js/toolbar.js:261 -msgid "English (United States)" +#: js/block-verbose.js:3852 +#: js/block.js:3776 +#: js/blocks/ExtrasBlocks.js:632 +msgid "grand staff" msgstr "" -#: js/toolbar.js:87 -#: js/toolbar.js:152 -#: js/toolbar.js:207 -#: js/toolbar.js:262 -msgid "English (United Kingdom)" +#: js/block-verbose.js:3853 +#: js/block.js:3777 +#: js/blocks/ExtrasBlocks.js:636 +msgid "mezzo-soprano" msgstr "" -#: js/toolbar.js:88 -#: js/toolbar.js:153 -#: js/toolbar.js:208 -#: js/toolbar.js:263 -msgid "日本語" +#: js/block-verbose.js:3854 +#: js/block.js:3778 +#: js/blocks/ExtrasBlocks.js:640 +msgid "alto" msgstr "" -#: js/toolbar.js:89 -msgid "한국어" +#: js/block-verbose.js:3855 +#: js/block.js:3779 +#: js/blocks/ExtrasBlocks.js:644 +msgid "tenor" msgstr "" -#: js/toolbar.js:90 -#: js/toolbar.js:155 -#: js/toolbar.js:210 -#: js/toolbar.js:265 -msgid "español" +#: js/block-verbose.js:3856 +#: js/block.js:3780 +#: js/utils/musicutils.js:1115 +#: js/utils/synthutils.js:80 +#: js/blocks/ExtrasBlocks.js:648 +#.TRANS: musical instrument +msgid "bass" msgstr "" -#: js/toolbar.js:91 -#: js/toolbar.js:156 -#: js/toolbar.js:211 -#: js/toolbar.js:266 -msgid "português" +#: js/block-verbose.js:3901 +#: js/block.js:3825 +#: js/blocks.js:2600 +#: js/blocks.js:3211 +msgid "on2" msgstr "" -#: js/toolbar.js:92 -#: js/toolbar.js:157 -#: js/toolbar.js:212 -#: js/toolbar.js:267 -msgid "にほんご" +#: js/block-verbose.js:3903 +#: js/block.js:3827 +#: js/blocks.js:2602 +#: js/blocks.js:3213 +msgid "off" msgstr "" -#: js/toolbar.js:93 -#: js/toolbar.js:158 -#: js/toolbar.js:213 -#: js/toolbar.js:268 -msgid "中文" +#: js/block-verbose.js:4470 +#: js/block.js:4394 +msgid "Not a number" msgstr "" -#: js/toolbar.js:94 -#: js/toolbar.js:159 -#: js/toolbar.js:214 -#: js/toolbar.js:269 -msgid "ภาษาไทย" +#: js/block-verbose.js:4477 +#: js/block.js:4401 +msgid "Octave value must be between 1 and 10." msgstr "" -#: js/toolbar.js:95 -#: js/toolbar.js:160 -#: js/toolbar.js:215 -#: js/toolbar.js:270 -msgid "aymara" +#: js/block-verbose.js:4485 +#: js/block.js:4409 +msgid "Numbers can have at most 10 digits." msgstr "" -#: js/toolbar.js:96 -#: js/toolbar.js:161 -#: js/toolbar.js:216 -#: js/toolbar.js:271 -msgid "quechua" +#: js/activity.js:390 +#: js/activity.js:395 +msgid "Search for blocks" msgstr "" -#: js/toolbar.js:97 -#: js/toolbar.js:162 -#: js/toolbar.js:217 -#: js/toolbar.js:272 -msgid "guarani" +#: js/activity.js:1413 +msgid "Refresh your browser to change to advanced mode." msgstr "" -#: js/toolbar.js:98 -#: js/toolbar.js:163 -#: js/toolbar.js:218 -#: js/toolbar.js:273 -msgid "हिंदी" +#: js/activity.js:1418 +msgid "Refresh your browser to change to beginner mode." msgstr "" -#: js/toolbar.js:99 -#: js/toolbar.js:165 -#: js/toolbar.js:219 -#: js/toolbar.js:275 -msgid "igbo" +#: js/activity.js:1477 +msgid "Catching mice" +msgstr "" + +#: js/activity.js:1478 +msgid "Cleaning the instruments" +msgstr "" + +#: js/activity.js:1479 +msgid "Testing key pieces" +msgstr "" + +#: js/activity.js:1480 +msgid "Sight-reading" +msgstr "" + +#: js/activity.js:1481 +msgid "Combining math and music" msgstr "" -#: js/toolbar.js:100 -#: js/toolbar.js:166 -#: js/toolbar.js:220 -#: js/toolbar.js:276 -msgid "عربى" +#: js/activity.js:1482 +msgid "Generating more blocks" msgstr "" -#: js/toolbar.js:101 -#: js/toolbar.js:164 -#: js/toolbar.js:221 -#: js/toolbar.js:274 -msgid "తెలుగు" +#: js/activity.js:1483 +msgid "Do Re Mi Fa Sol La Ti Do" msgstr "" -#: js/toolbar.js:102 -#: js/toolbar.js:167 -#: js/toolbar.js:222 -#: js/toolbar.js:277 -msgid "עִברִית" +#: js/activity.js:1484 +msgid "Tuning string instruments" msgstr "" -#: js/toolbar.js:111 -#: js/toolbar.js:175 -#: js/toolbar.js:176 -#: js/toolbar.js:231 -msgid "Full Screen" +#: js/activity.js:1485 +msgid "Pressing random keys" msgstr "" -#: js/toolbar.js:145 -#: js/toolbar.js:148 -#: js/toolbar.js:200 -#: js/toolbar.js:203 -#: js/toolbar.js:255 -#: js/toolbar.js:258 -#: js/turtledefs.js:558 -msgid "Save turtle artwork as PNG" +#: js/activity.js:1663 +msgid "plugins will be removed upon restart." msgstr "" -#: js/toolbar.js:147 -#: js/toolbar.js:202 -#: js/toolbar.js:257 -#: js/turtledefs.js:554 -msgid "Save turtle artwork as SVG" +#: js/activity.js:1672 +msgid "show Cartesian" msgstr "" -#: js/toolbar.js:154 -#: js/toolbar.js:209 -#: js/toolbar.js:264 -msgid "한국인" +#: js/activity.js:2211 +#: js/palette.js:589 +#: js/blocks/RhythmBlocks.js:923 +#: js/blocks/PitchBlocks.js:442 +#: js/blocks/PitchBlocks.js:1786 +#.TRANS: a numeric mapping of the notes in an octave based on the musical mode +msgid "scale degree" msgstr "" -#: js/toolbar.js:171 -#: js/toolbar.js:227 -msgid "About Turtle Blocks" +#: js/activity.js:2214 +#: js/palette.js:598 +msgid "voice name" msgstr "" -#: js/toolbar.js:429 -#: js/toolbar.js:440 -msgid "Turtle Wrap Off" +#: js/activity.js:2217 +#: js/palette.js:595 +msgid "invert mode" msgstr "" -#: js/toolbar.js:442 -msgid "Turtle Wrap On" +#: js/activity.js:2220 +msgid "output tools" msgstr "" -#: js/block.js:1470 -msgid "matrix" +#: js/activity.js:2223 +msgid "custom note" msgstr "" -#: js/block.js:1477 -#: js/WidgetBlocks.js:1226 -#: plugins/rodi.rtp:324 -msgid "status" +#: js/activity.js:2226 +msgid "accidental name" msgstr "" -#: js/block.js:1484 -msgid "drum mapper" +#: js/activity.js:2229 +#: js/blocks/PitchBlocks.js:855 +msgid "east indian solfege" msgstr "" -#: js/block.js:1491 -msgid "ruler" +#: js/activity.js:2232 +#: js/blocks/PitchBlocks.js:869 +msgid "note name" msgstr "" -#: js/block.js:1498 -#: js/WidgetBlocks.js:327 -#.TRANS: timbre is the character or quality of a musical sound -msgid "timbre" +#: js/activity.js:2235 +#: js/blocks/IntervalsBlocks.js:94 +msgid "temperament name" msgstr "" -#: js/block.js:1505 -msgid "stair" +#: js/activity.js:2238 +#: js/palette.js:592 +msgid "mode name" msgstr "" -#: js/block.js:1512 -#: js/WidgetBlocks.js:577 -#.TRANS: the speed at music is should be played. -msgid "tempo" +#: js/activity.js:2241 +msgid "chord name" msgstr "" -#: js/block.js:1519 -#: js/block.js:1582 -#: js/IntervalsBlocks.js:1268 -#.TRANS: mode, e.g., Major in C Major -msgid "mode" +#: js/activity.js:2244 +#: js/palette.js:615 +msgid "interval name" msgstr "" -#: js/block.js:1526 -msgid "slider" +#: js/activity.js:2247 +msgid "filter type" msgstr "" -#: js/block.js:1533 -#: js/SensorsBlocks.js:1001 -msgid "keyboard" +#: js/activity.js:2250 +msgid "oscillator type" msgstr "" -#: js/block.js:1547 -#: js/WidgetBlocks.js:957 -#: js/WidgetBlocks.js:988 -#.TRANS: widget for subdividing a measure into distinct rhythmic elements -msgid "rhythm maker" +#: js/activity.js:2253 +#: js/blocks.js:2479 +#: js/blocks.js:2487 +msgid "audio file" msgstr "" -#: js/block.js:1554 -#: js/block.js:2182 -#: js/block.js:2236 -#: js/RhythmBlockPaletteBlocks.js:70 -#: js/RhythmBlockPaletteBlocks.js:251 -#: js/RhythmBlockPaletteBlocks.js:484 -#: js/RhythmBlockPaletteBlocks.js:553 -#: js/RhythmBlockPaletteBlocks.js:604 -#: js/RhythmBlockPaletteBlocks.js:874 -#: js/RhythmBlocks.js:33 -#: js/RhythmBlocks.js:356 -#: js/RhythmBlocks.js:766 -#: js/RhythmBlocks.js:806 -#: js/OrnamentBlocks.js:220 -#: js/OrnamentBlocks.js:312 -#: js/MeterBlocks.js:1367 -#: js/DictActions.js:85 -#: js/phrasemaker.js:731 -#: js/phrasemaker.js:2393 -#: js/phrasemaker.js:2436 -#: js/phrasemaker.js:2534 -#.TRANS: the value (e.g., 1/4 note) of the note being played. -msgid "note value" +#: js/activity.js:2256 +#: js/blocks/DrumBlocks.js:32 +msgid "noise name" msgstr "" -#: js/block.js:1561 -#: js/block.js:2110 -#: js/block.js:2133 -#: js/IntervalsBlocks.js:875 -#: js/OrnamentBlocks.js:312 -#.TRANS: calculate a relative step between notes based on semi-tones -msgid "scalar interval" +#: js/activity.js:2259 +#: js/blocks/DrumBlocks.js:75 +msgid "drum name" msgstr "" -#: js/block.js:1568 -#: js/RhythmBlocks.js:148 -msgid "milliseconds" +#: js/activity.js:2262 +#: js/blocks/DrumBlocks.js:119 +msgid "effects name" msgstr "" -#: js/block.js:2180 -#: js/block.js:2184 -#: js/block.js:2234 -#: js/block.js:2345 -#: js/ProgramBlocks.js:1273 -#: js/RhythmBlocks.js:712 -#: js/rhythmruler.js:834 -#: js/rhythmruler.js:961 -msgid "silence" +#: js/activity.js:2265 +msgid "wrap mode" msgstr "" -#: js/block.js:2265 -#: js/block.js:3134 -#: js/block.js:3151 -#: js/activity.js:2336 -#: js/activity.js:2387 -#: js/musicutils.js:2932 -#: js/musicutils.js:4287 -#.TRANS: the note names must be separated by single spaces -#.TRANS: the note names must be separated by single spaces -msgid "ti la sol fa mi re do" +#: js/activity.js:2268 +msgid "load file" msgstr "" -#: js/block.js:2333 -#.TRANS: scalar step -msgid "down" +#: js/activity.js:2435 +#: js/activity.js:5851 +msgid "This block is deprecated." msgstr "" -#: js/block.js:2334 -msgid "up" +#: js/activity.js:2437 +#: js/activity.js:5853 +msgid "Block cannot be found." msgstr "" -#: js/block.js:3477 -#: js/block.js:3490 -#: js/ExtrasBlocks.js:612 -msgid "Cartesian" +#: js/activity.js:2645 +msgid "Saving block artwork" msgstr "" -#: js/block.js:3478 -#: js/block.js:3491 -#: js/ExtrasBlocks.js:616 -msgid "polar" +#: js/activity.js:2656 +msgid "Erase" msgstr "" -#: js/block.js:3479 -#: js/block.js:3492 -#: js/ExtrasBlocks.js:620 -msgid "Cartesian+polar" +#: js/activity.js:2683 +#: js/activity.js:2705 +msgid "Paste" msgstr "" -#: js/block.js:3480 -#: js/block.js:3499 -#: js/ExtrasBlocks.js:649 -msgid "none" +#: js/activity.js:2687 +msgid "Save block help" msgstr "" -#: js/block.js:3493 -#: js/ExtrasBlocks.js:625 -msgid "treble" +#: js/activity.js:2772 +msgid "Jumping to the bottom of the page." msgstr "" -#: js/block.js:3494 -#: js/ExtrasBlocks.js:629 -msgid "grand staff" +#: js/activity.js:2778 +msgid "Scrolling up." msgstr "" -#: js/block.js:3495 -#: js/ExtrasBlocks.js:633 -msgid "mezzo-soprano" +#: js/activity.js:2783 +msgid "Scrolling down." msgstr "" -#: js/block.js:3496 -#: js/ExtrasBlocks.js:637 -msgid "alto" +#: js/activity.js:2788 +msgid "Extracting block" msgstr "" -#: js/block.js:3497 -#: js/ExtrasBlocks.js:641 -msgid "tenor" +#: js/activity.js:2796 +msgid "Moving block up." msgstr "" -#: js/block.js:3498 -#: js/ExtrasBlocks.js:645 -#: js/musicutils.js:736 -#: js/synthutils.js:64 -#.TRANS: musical instrument -msgid "bass" +#: js/activity.js:2817 +msgid "Moving block down." msgstr "" -#: js/block.js:4075 -msgid "Not a number" +#: js/activity.js:2838 +msgid "Moving block left." msgstr "" -#: js/block.js:4082 -msgid "Octave value must be between 1 and 10." +#: js/activity.js:2855 +msgid "Moving block right." msgstr "" -#: js/block.js:4090 -msgid "Numbers can have at most 10 digits." +#: js/activity.js:2870 +msgid "Jump to home position." msgstr "" -#: js/notation.js:353 -msgid "Lilypond cannot process pickup of " +#: js/activity.js:2897 +msgid "Hide blocks" msgstr "" -#: js/turtledefs.js:40 -#.TRANS: put the URL to the guide here, e.g., https://github.com/sugarlabs/turtleblocksjs/tree/master/guide/README.md -msgid "guide url" +#: js/activity.js:4500 +msgid "Click the run button to run the project." msgstr "" -#: js/turtledefs.js:85 -#: js/turtledefs.js:437 -msgid "Turtle Blocks is a Logo-inspired turtle that draws colorful pictures with snap-together visual-programming blocks." +#: js/activity.js:5692 +msgid "Show/hide block" msgstr "" -#: js/turtledefs.js:118 -#: js/turtledefs.js:220 -msgid "search" +#: js/activity.js:5698 +msgid "Expand/collapse blocks" msgstr "" -#: js/turtledefs.js:120 -#: js/turtledefs.js:222 -#: js/WidgetBlocks.js:437 -#: js/MeterBlocks.js:1343 -#.TRANS: musical meter (time signature), e.g., 4:4 -msgid "meter" +#: js/activity.js:5976 +msgid "Could not parse JSON input." msgstr "" -#: js/turtledefs.js:122 -#: js/turtledefs.js:224 -msgid "intervals" +#: js/activity.js:6475 +#: js/activity.js:6580 +#: js/activity.js:6631 +msgid "Cannot load project from the file. Please check the file type." msgstr "" -#: js/turtledefs.js:124 -#: js/turtledefs.js:226 -msgid "ornament" +#: js/activity.js:6917 +msgid "Invalid parameters" msgstr "" -#: js/turtledefs.js:125 -#: js/turtledefs.js:227 -#: js/VolumeBlocks.js:362 -#: js/VolumeBlocks.js:502 -#: js/VolumeBlocks.js:545 -msgid "volume" +#: js/blocks.js:1212 +#: js/blocks.js:3444 +#: js/blocks.js:3834 +#: js/blocks.js:3865 +#: js/blocks.js:3914 +#: js/blocks.js:3949 +#: js/blocks.js:6586 +#: js/palette.js:509 +#: js/palette.js:638 +#: js/palette.js:1105 +#: js/blocks/BoxesBlocks.js:282 +#: js/blocks/BoxesBlocks.js:285 +#: js/blocks/BoxesBlocks.js:405 +#: js/blocks/BoxesBlocks.js:594 +msgid "box" msgstr "" -#: js/turtledefs.js:129 -#: js/turtledefs.js:231 -msgid "boxes" +#: js/blocks.js:1713 +msgid "Consider breaking this stack into parts." msgstr "" -#: js/turtledefs.js:130 -#: js/turtledefs.js:232 -msgid "widgets" +#: js/blocks.js:2472 +#: js/palette.js:653 +#: js/blocks/MediaBlocks.js:602 +msgid "open file" msgstr "" -#: js/turtledefs.js:131 -#: js/turtledefs.js:233 -#: js/phrasemaker.js:824 -msgid "graphics" +#: js/blocks.js:3247 +#: js/palette.js:574 +#: js/blocks/MediaBlocks.js:892 +#: js/blocks/MediaBlocks.js:963 +msgid "text" msgstr "" -#: js/turtledefs.js:134 -#: js/turtledefs.js:236 -msgid "boolean" +#: js/blocks.js:3443 +#: js/palette.js:641 +#: js/palette.js:642 +#: js/blocks/BoxesBlocks.js:514 +msgid "store in box" msgstr "" -#: js/turtledefs.js:137 -#: js/turtledefs.js:239 -#: js/HeapBlocks.js:59 -#: js/status.js:147 -msgid "heap" +#: js/blocks.js:3448 +#: js/blocks.js:3888 +#: js/blocks.js:3923 +#: js/blocks.js:3958 +#: js/blocks.js:5862 +#: js/blocks.js:5883 +#: js/blocks/BoxesBlocks.js:772 +msgid "box1" msgstr "" -#: js/turtledefs.js:138 -#: js/turtledefs.js:240 -#: js/ProgramBlocks.js:495 -#: js/DictBlocks.js:142 -msgid "dictionary" +#: js/blocks.js:3450 +#: js/blocks.js:3890 +#: js/blocks.js:3925 +#: js/blocks.js:3960 +#: js/blocks.js:5864 +#: js/blocks.js:5885 +#: js/blocks/BoxesBlocks.js:663 +msgid "box2" msgstr "" -#: js/turtledefs.js:139 -#: js/turtledefs.js:241 -msgid "ensemble" +#: js/blocks.js:4122 +#: js/palette.js:639 +#: js/palette.js:644 +#: js/palette.js:1041 +#: js/blocks/BoxesBlocks.js:591 +msgid "store in" msgstr "" -#: js/turtledefs.js:140 -#: js/turtledefs.js:242 -msgid "extras" +#: js/blocks.js:4122 +#: js/blocks/BoxesBlocks.js:595 +#: js/blocks/DictBlocks.js:215 +#: js/blocks/DictBlocks.js:289 +#: js/blocks/EnsembleBlocks.js:391 +#: js/blocks/EnsembleBlocks.js:402 +#: js/blocks/MediaBlocks.js:746 +#: js/blocks/PitchBlocks.js:656 +#: js/blocks/PitchBlocks.js:934 +#: js/blocks/PitchBlocks.js:1866 +#: js/blocks/ProgramBlocks.js:390 +#: js/blocks/ProgramBlocks.js:495 +#: js/blocks/ProgramBlocks.js:658 +#: js/blocks/ToneBlocks.js:1025 +msgid "name" msgstr "" -#: js/turtledefs.js:142 -#: js/turtledefs.js:244 -#.TRANS: program as in computer program -#.TRANS: program as in computer program -msgid "program" +#: js/blocks.js:4122 +#: js/blocks/BoxesBlocks.js:75 +#: js/blocks/BoxesBlocks.js:595 +#: js/blocks/DictBlocks.js:289 +#: js/blocks/DictBlocks.js:430 +#: js/blocks/HeapBlocks.js:544 +#: js/blocks/RhythmBlocks.js:1130 +msgid "value" msgstr "" -#: js/turtledefs.js:143 -#: js/turtledefs.js:245 -msgid "my blocks" +#: js/blocks.js:4465 +msgid "Forever loop detected inside a note value block. Unexpected things may happen." msgstr "" -#: js/turtledefs.js:185 -#: js/turtledefs.js:281 -msgid "artwork" +#: js/blocks.js:4988 +msgid "There is no block selected." msgstr "" -#: js/turtledefs.js:185 -#: js/turtledefs.js:281 -msgid "logic" +#: js/blocks.js:5091 +#: js/blocks/MediaBlocks.js:888 +msgid "show" msgstr "" -#: js/turtledefs.js:185 -#: js/turtledefs.js:281 -msgid "music" +#: js/blocks.js:5094 +#: js/blocks/MediaBlocks.js:803 +#.TRANS: Avatar is the image used to determine the appearance of the mouse. +msgid "avatar" msgstr "" -#: js/turtledefs.js:187 -#: js/turtledefs.js:463 -msgid "Music Blocks is a collection of tools for exploring fundamental musical concepts in a fun way." +#: js/blocks.js:5097 +#: js/blocks/ToneBlocks.js:1010 +#: js/widgets/sampler.js:975 +#.TRANS: The sound sample that the user uploads. +msgid "sample" msgstr "" -#: js/turtledefs.js:436 -msgid "Welcome to Turtle Blocks" +#: js/lilypond.js:606 +msgid "brown rat" msgstr "" -#: js/turtledefs.js:438 -#: js/turtledefs.js:465 -#: js/turtledefs.js:774 -#: js/turtledefs.js:805 -msgid "The current version is" +#: js/lilypond.js:607 +msgid "mole" msgstr "" -#: js/turtledefs.js:446 -#: js/turtledefs.js:483 -msgid "Click the run button to run the project in fast mode." +#: js/lilypond.js:608 +msgid "chipmunk" msgstr "" -#: js/turtledefs.js:452 -msgid "Stop the turtle." +#: js/lilypond.js:609 +msgid "red squirrel" msgstr "" -#: js/turtledefs.js:454 -#: js/turtledefs.js:491 -msgid "You can also type Alt-S to stop." +#: js/lilypond.js:610 +msgid "guinea pig" +msgstr "" + +#: js/lilypond.js:611 +msgid "capybara" msgstr "" -#: js/turtledefs.js:462 -#: js/help.js:333 -msgid "Welcome to Music Blocks" +#: js/lilypond.js:612 +msgid "coypu" msgstr "" -#: js/turtledefs.js:472 -#: js/help.js:334 -msgid "Meet Mr. Mouse!" +#: js/lilypond.js:613 +msgid "black rat" msgstr "" -#: js/turtledefs.js:473 -msgid "Mr Mouse is our Music Blocks conductor." +#: js/lilypond.js:614 +msgid "grey squirrel" msgstr "" -#: js/turtledefs.js:475 -msgid "Mr Mouse encourages you to explore Music Blocks." +#: js/lilypond.js:615 +msgid "flying squirrel" msgstr "" -#: js/turtledefs.js:477 -msgid "Let us start our tour!" +#: js/lilypond.js:616 +msgid "bat" msgstr "" -#: js/turtledefs.js:489 -msgid "Stop the music (and the mice)." +#: js/lilypond.js:749 +#: js/lilypond.js:913 +#: js/lilypond.js:951 +#: js/blocks/ActionBlocks.js:1256 +#: js/blocks/ExtrasBlocks.js:556 +msgid "start drum" msgstr "" -#: js/turtledefs.js:499 -msgid "Record your project as video." +#: js/logo.js:61 +msgid "Not a valid pitch name" msgstr "" -#: js/turtledefs.js:505 -msgid "Toggle Fullscreen mode." +#: js/logo.js:507 +#: js/blocks/ProgramBlocks.js:258 +#: js/blocks/ProgramBlocks.js:427 +msgid "You must select a file." msgstr "" -#: js/turtledefs.js:511 -msgid "Initialize a new project." +#: js/logo.js:1696 +msgid "Playback is ready." msgstr "" -#: js/turtledefs.js:517 -msgid "You can also load projects from the file system." +#: js/macros.js:711 +#: js/utils/musicutils.js:1162 +#: js/utils/synthutils.js:202 +#.TRANS: animal sound effect +msgid "duck" msgstr "" -#: js/turtledefs.js:522 -#: js/StringHelper.js:46 -msgid "Delete" +#: js/notation.js:353 +msgid "Lilypond cannot process pickup of " msgstr "" -#: js/turtledefs.js:523 -msgid "To delete a block, just right-click on it, then you will be able to see the delete option" +#: js/palette.js:571 +msgid "grid" msgstr "" -#: js/turtledefs.js:528 -#: js/activity.js:2270 -#: js/LocalCard.js:31 -msgid "Copy" +#: js/palette.js:580 +msgid "effect" msgstr "" -#: js/turtledefs.js:529 -msgid "To copy a block, just right-click on it, then you will be able to see the copy option" +#: js/palette.js:586 +msgid "sargam" msgstr "" -#: js/turtledefs.js:535 -msgid "To extract a block, just right-click on it, then you will be able to see the extract option" +#: js/palette.js:601 +#: js/blocks/PitchBlocks.js:1209 +msgid "custom pitch" msgstr "" -#: js/turtledefs.js:542 -#: js/turtledefs.js:552 -#: js/turtledefs.js:573 -msgid "Save your project to a file." +#: js/palette.js:609 +msgid "accidental" msgstr "" -#: js/turtledefs.js:549 -#: js/turtledefs.js:570 -msgid "save" +#: js/palette.js:633 +#: js/blocks/PitchBlocks.js:405 +msgid "pitch converter" msgstr "" -#: js/turtledefs.js:556 -#: js/turtledefs.js:577 -msgid "Save graphics from your project to as SVG." +#: js/piemenus.js:200 +#: js/utils/musicutils.js:1187 +#: js/utils/musicutils.js:1207 +#: js/widgets/musickeyboard.js:2341 +#: js/widgets/phrasemaker.js:1908 +#: js/widgets/sampler.js:810 +#.TRANS: double sharp is a music term related to pitch +msgid "double sharp" msgstr "" -#: js/turtledefs.js:560 -#: js/turtledefs.js:581 -msgid "Save graphics from your project as PNG." +#: js/piemenus.js:201 +#: js/utils/musicutils.js:1185 +#: js/utils/musicutils.js:1208 +#: js/blocks/PitchBlocks.js:1539 +#: js/turtleactions/PitchActions.js:323 +#: js/widgets/musickeyboard.js:2342 +#: js/widgets/phrasemaker.js:1909 +#: js/widgets/sampler.js:811 +#.TRANS: sharp is a music term related to pitch +#.TRANS: sharp is a half-step up in pitch +msgid "sharp" msgstr "" -#: js/turtledefs.js:564 -#: js/turtledefs.js:597 -msgid "Save block artwork as an SVG file." +#: js/piemenus.js:202 +#: js/utils/musicutils.js:1183 +#: js/utils/musicutils.js:1209 +#: js/widgets/musickeyboard.js:2343 +#: js/widgets/phrasemaker.js:1910 +#: js/widgets/sampler.js:812 +#.TRANS: natural is a music term related to pitch +msgid "natural" msgstr "" -#: js/turtledefs.js:585 -msgid "Save audio from your project as WAV." +#: js/piemenus.js:203 +#: js/utils/musicutils.js:1181 +#: js/utils/musicutils.js:1210 +#: js/blocks/PitchBlocks.js:1498 +#: js/turtleactions/PitchActions.js:326 +#: js/widgets/musickeyboard.js:2344 +#: js/widgets/phrasemaker.js:1911 +#: js/widgets/sampler.js:813 +#.TRANS: flat is a music term related to pitch +#.TRANS: flat is a half-step down in pitch +msgid "flat" msgstr "" -#: js/turtledefs.js:589 -msgid "Save your project to as an ABC file." +#: js/piemenus.js:204 +#: js/utils/musicutils.js:1179 +#: js/utils/musicutils.js:1211 +#: js/widgets/musickeyboard.js:2345 +#: js/widgets/phrasemaker.js:1912 +#: js/widgets/sampler.js:814 +#.TRANS: double flat is a music term related to pitch +msgid "double flat" msgstr "" -#: js/turtledefs.js:593 -msgid "Save your project to as a Lilypond file." +#: js/piemenus.js:2864 +#: js/utils/musicutils.js:1006 +#: js/blocks/PitchBlocks.js:1385 +#.TRANS: unison is a music term related to intervals +#.TRANS: unison means the note is the same as the current note +msgid "unison" msgstr "" -#: js/turtledefs.js:604 -msgid "Load samples from server" +#: js/piemenus.js:3018 +#: js/piemenus.js:3091 +#: js/utils/musicutils.js:1014 +#: js/utils/musicutils.js:1189 +#: js/utils/musicutils.js:1326 +#.TRANS: major is a music term related to intervals and mode +msgid "major" msgstr "" -#: js/turtledefs.js:605 -msgid "This button opens a viewer for loading example projects." +#: js/piemenus.js:3018 +#: js/piemenus.js:3091 +#: js/utils/musicutils.js:1032 +#.TRANS: modal scale for music +msgid "ionian" msgstr "" -#: js/turtledefs.js:611 -msgid "Palette buttons" +#: js/piemenus.js:3020 +#: js/piemenus.js:3095 +#: js/utils/musicutils.js:1012 +#: js/utils/musicutils.js:1190 +#: js/utils/musicutils.js:1323 +#.TRANS: minor is a music term related to intervals and mode +msgid "minor" msgstr "" -#: js/turtledefs.js:612 -msgid "This toolbar contains the palette buttons including Rhythm Pitch Tone Action and more." +#: js/piemenus.js:3020 +#: js/piemenus.js:3095 +#: js/utils/musicutils.js:1042 +#.TRANS: modal scale for music +msgid "aeolian" msgstr "" -#: js/turtledefs.js:614 -msgid "Click to show the palettes of blocks and drag blocks from the palettes onto the canvas to use them." +#: js/piemenus.js:3410 +msgid "Duplicate" msgstr "" -#: js/turtledefs.js:620 -msgid "Cartesian/Polar" +#: js/piemenus.js:3412 +msgid "Move to trash" msgstr "" -#: js/turtledefs.js:621 -msgid "Show or hide a coordinate grid." +#: js/piemenus.js:3413 +#: js/widgets/timbre.js:968 +#: planet/js/StringHelper.js:69 +msgid "Close" msgstr "" -#: js/turtledefs.js:627 -msgid "Clear the screen and return the mice to their initial positions." +#: js/piemenus.js:3419 +msgid "Save stack" msgstr "" -#: js/turtledefs.js:633 -msgid "Collapse the graphics window." +#: js/piemenus.js:3449 +msgid "In order to copy a sample, you must reload the widget, import the sample again, and export it." msgstr "" -#: js/turtledefs.js:638 -#: js/activity.js:4256 -#: js/activity.js:4256 -msgid "Home" +#: js/piemenus.js:3812 +msgid "You have chosen key " msgstr "" -#: js/turtledefs.js:639 -msgid "Return all blocks to the center of the screen." +#: js/piemenus.js:3816 +msgid " for your pitch preview." msgstr "" -#: js/turtledefs.js:644 -msgid "Show/hide blocks" +#: js/turtle-singer.js:1363 +#.TRANS: partials are weighted components in a harmonic series +msgid "You must have at least one Partial block inside of a Weighted-partial block" msgstr "" -#: js/turtledefs.js:645 -msgid "Hide or show the blocks and the palettes." +#: js/turtle-singer.js:2077 +msgid "synth cannot play chords." msgstr "" -#: js/turtledefs.js:650 -msgid "Expand/collapse collapsable blocks" +#: js/utils/musicutils.js:505 +#: js/utils/musicutils.js:645 +#: js/widgets/pitchdrummatrix.js:228 +#: js/widgets/musickeyboard.js:2885 +msgid "rest" msgstr "" -#: js/turtledefs.js:651 -msgid "Expand or collapse start and action stacks." +#: js/utils/musicutils.js:689 +msgid "Perfect unison" msgstr "" -#: js/turtledefs.js:658 -#: js/activity.js:4265 -msgid "Decrease block size" +#: js/utils/musicutils.js:689 +msgid "Diminished second" msgstr "" -#: js/turtledefs.js:659 -msgid "Decrease the size of the blocks." +#: js/utils/musicutils.js:690 +msgid "Minor second" msgstr "" -#: js/turtledefs.js:664 -#: js/activity.js:4267 -msgid "Increase block size" +#: js/utils/musicutils.js:690 +msgid "Augmented unison" msgstr "" -#: js/turtledefs.js:665 -msgid "Increase the size of the blocks." +#: js/utils/musicutils.js:691 +msgid "Major second" msgstr "" -#: js/turtledefs.js:670 -msgid "Expand/collapse option toolbar" +#: js/utils/musicutils.js:691 +msgid "Diminished third" msgstr "" -#: js/turtledefs.js:671 -msgid "Click this button to expand or collapse the auxillary toolbar." +#: js/utils/musicutils.js:692 +msgid "Minor third" msgstr "" -#: js/turtledefs.js:676 -msgid "Run slow" +#: js/utils/musicutils.js:692 +msgid "Augmented second" msgstr "" -#: js/turtledefs.js:677 -msgid "Click to run the project in slow mode." +#: js/utils/musicutils.js:693 +msgid "Major third" msgstr "" -#: js/turtledefs.js:683 -msgid "Click to run the project step by step." +#: js/utils/musicutils.js:693 +msgid "Diminished fourth" msgstr "" -#: js/turtledefs.js:690 -msgid "Display statistics about your Music project." +#: js/utils/musicutils.js:694 +msgid "Perfect fourth" msgstr "" -#: js/turtledefs.js:697 -msgid "Delete a selected plugin." +#: js/utils/musicutils.js:694 +msgid "Augmented third" msgstr "" -#: js/turtledefs.js:704 -msgid "Enable scrolling" +#: js/utils/musicutils.js:695 +msgid "Diminished fifth" msgstr "" -#: js/turtledefs.js:705 -msgid "You can scroll the blocks on the canvas." +#: js/utils/musicutils.js:695 +msgid "Augmented fourth" msgstr "" -#: js/turtledefs.js:714 -msgid "Wrap Turtle" +#: js/utils/musicutils.js:696 +msgid "Perfect fifth" msgstr "" -#: js/turtledefs.js:715 -msgid "Turn Turtle wrapping On or Off." +#: js/utils/musicutils.js:696 +msgid "Diminished sixth" msgstr "" -#: js/turtledefs.js:725 -msgid "Restore blocks from the trash." +#: js/utils/musicutils.js:697 +msgid "Minor sixth" msgstr "" -#: js/turtledefs.js:732 -msgid "Switch mode" +#: js/utils/musicutils.js:697 +msgid "Augmented fifth" msgstr "" -#: js/turtledefs.js:733 -msgid "Switch between beginner and advance modes." +#: js/utils/musicutils.js:698 +msgid "Major sixth" msgstr "" -#: js/turtledefs.js:739 -msgid "Select your language preference." +#: js/utils/musicutils.js:698 +msgid "Diminished seventh" msgstr "" -#: js/turtledefs.js:745 -msgid "Keyboard shortcuts" +#: js/utils/musicutils.js:699 +msgid "Minor seventh" msgstr "" -#: js/turtledefs.js:746 -msgid "You can type d to create a do block and r to create a re block etc." +#: js/utils/musicutils.js:699 +msgid "Augmented sixth" msgstr "" -#: js/turtledefs.js:753 -msgid "Show these messages." +#: js/utils/musicutils.js:700 +msgid "Major seventh" msgstr "" -#: js/turtledefs.js:759 -#: js/turtledefs.js:790 -#: js/help.js:335 -msgid "Guide" +#: js/utils/musicutils.js:700 +msgid "Diminished octave" msgstr "" -#: js/turtledefs.js:760 -msgid "A detailed guide to Turtle Blocks is available." +#: js/utils/musicutils.js:701 +msgid "Perfect octave" msgstr "" -#: js/turtledefs.js:764 -msgid "Turtle Blocks Guide" +#: js/utils/musicutils.js:701 +msgid "Augmented seventh" msgstr "" -#: js/turtledefs.js:767 -#: js/turtledefs.js:798 -#: js/help.js:336 -msgid "About" +#: js/utils/musicutils.js:702 +msgid "Minor ninth" msgstr "" -#: js/turtledefs.js:768 -msgid "Turtle Blocks is an open source collection of tools for exploring musical concepts." +#: js/utils/musicutils.js:702 +msgid "Augmented octave" msgstr "" -#: js/turtledefs.js:770 -msgid "A full list of contributors can be found in the Turtle Blocks GitHub repository." +#: js/utils/musicutils.js:703 +msgid "Major ninth" msgstr "" -#: js/turtledefs.js:772 -msgid "Turtle Blocks is licensed under the AGPL." +#: js/utils/musicutils.js:703 +msgid "Diminished tenth" msgstr "" -#: js/turtledefs.js:780 -msgid "Turtle Blocks GitHub repository" +#: js/utils/musicutils.js:704 +msgid "Minor tenth" msgstr "" -#: js/turtledefs.js:783 -#: js/turtledefs.js:814 -#: js/help.js:337 -#: js/help.js:359 -msgid "Congratulations." +#: js/utils/musicutils.js:704 +msgid "Augmented ninth" msgstr "" -#: js/turtledefs.js:784 -msgid "You have finished the tour. Please enjoy Turtle Blocks!" +#: js/utils/musicutils.js:705 +msgid "Major tenth" msgstr "" -#: js/turtledefs.js:791 -msgid "A detailed guide to Music Blocks is available." +#: js/utils/musicutils.js:705 +msgid "Diminished eleventh" msgstr "" -#: js/turtledefs.js:795 -#: js/SaveInterface.js:76 -msgid "Music Blocks Guide" +#: js/utils/musicutils.js:706 +msgid "Perfect eleventh" msgstr "" -#: js/turtledefs.js:799 -msgid "Music Blocks is an open source collection of tools for exploring musical concepts." +#: js/utils/musicutils.js:706 +msgid "Augmented tenth" msgstr "" -#: js/turtledefs.js:801 -msgid "A full list of contributors can be found in the Music Blocks GitHub repository." +#: js/utils/musicutils.js:707 +msgid "Diminished twelfth" msgstr "" -#: js/turtledefs.js:803 -msgid "Music Blocks is licensed under the AGPL." +#: js/utils/musicutils.js:707 +msgid "Augmented eleventh" msgstr "" -#: js/turtledefs.js:811 -msgid "Music Blocks GitHub repository" +#: js/utils/musicutils.js:708 +msgid "Perfect twelfth" msgstr "" -#: js/turtledefs.js:815 -msgid "You have finished the tour. Please enjoy Music Blocks!" +#: js/utils/musicutils.js:708 +msgid "Diminished thirteenth" msgstr "" -#: js/activity.js:369 -msgid "Search for blocks" +#: js/utils/musicutils.js:709 +msgid "Minor thirteenth" msgstr "" -#: js/activity.js:1145 -msgid "Refresh your browser to change to advanced mode." +#: js/utils/musicutils.js:709 +msgid "Augmented fifth, plus an octave" msgstr "" -#: js/activity.js:1150 -msgid "Refresh your browser to change to beginner mode." +#: js/utils/musicutils.js:710 +msgid "Major thirteenth" msgstr "" -#: js/activity.js:1184 -msgid "Catching mice" +#: js/utils/musicutils.js:710 +msgid "Diminished seventh, plus an octave" msgstr "" -#: js/activity.js:1185 -msgid "Cleaning the instruments" +#: js/utils/musicutils.js:838 +#.TRANS: ordinal number. Please keep exactly one space between each number. +msgid "1st 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th" msgstr "" -#: js/activity.js:1186 -msgid "Testing key pieces" +#: js/utils/musicutils.js:1008 +#: js/utils/musicutils.js:1191 +#: js/utils/musicutils.js:1325 +#.TRANS: augmented is a music term related to intervals +msgid "augmented" msgstr "" -#: js/activity.js:1187 -msgid "Sight-reading" +#: js/utils/musicutils.js:1010 +#: js/utils/musicutils.js:1192 +#: js/utils/musicutils.js:1324 +#.TRANS: diminished is a music term related to intervals and mode +msgid "diminished" msgstr "" -#: js/activity.js:1188 -msgid "Combining math and music" +#: js/utils/musicutils.js:1016 +#: js/utils/musicutils.js:1322 +#: js/blocks/IntervalsBlocks.js:649 +#: js/turtleactions/IntervalsActions.js:120 +#: js/turtleactions/IntervalsActions.js:124 +#.TRANS: perfect is a music term related to intervals +msgid "perfect" +msgstr "" + +#: js/utils/musicutils.js:1018 +#.TRANS: twelve semi-tone scale for music +msgid "chromatic" msgstr "" -#: js/activity.js:1189 -msgid "Generating more blocks" +#: js/utils/musicutils.js:1019 +msgid "algerian" msgstr "" -#: js/activity.js:1190 -msgid "Do Re Mi Fa Sol La Ti Do" +#: js/utils/musicutils.js:1020 +msgid "spanish" msgstr "" -#: js/activity.js:1191 -msgid "Tuning string instruments" +#: js/utils/musicutils.js:1022 +#.TRANS: modal scale in music +msgid "octatonic" msgstr "" -#: js/activity.js:1192 -msgid "Pressing random keys" +#: js/utils/musicutils.js:1024 +#.TRANS: harmonic major scale in music +msgid "harmonic major" msgstr "" -#: js/activity.js:1351 -msgid "plugins will be removed upon restart." +#: js/utils/musicutils.js:1026 +#.TRANS: natural minor scales in music +msgid "natural minor" msgstr "" -#: js/activity.js:1360 -msgid "show Cartesian" +#: js/utils/musicutils.js:1028 +#.TRANS: harmonic minor scale in music +msgid "harmonic minor" msgstr "" -#: js/activity.js:1842 -msgid "output tools" +#: js/utils/musicutils.js:1030 +#.TRANS: melodic minor scale in music +msgid "melodic minor" msgstr "" -#: js/activity.js:1845 -msgid "custom note" +#: js/utils/musicutils.js:1034 +#.TRANS: modal scale for music +msgid "dorian" msgstr "" -#: js/activity.js:1848 -msgid "accidental name" +#: js/utils/musicutils.js:1036 +#.TRANS: modal scale for music +msgid "phrygian" msgstr "" -#: js/activity.js:1851 -#: js/PitchBlocks.js:855 -msgid "east indian solfege" +#: js/utils/musicutils.js:1038 +#.TRANS: modal scale for music +msgid "lydian" msgstr "" -#: js/activity.js:1854 -#: js/PitchBlocks.js:869 -msgid "note name" +#: js/utils/musicutils.js:1040 +#.TRANS: modal scale for music +msgid "mixolydian" msgstr "" -#: js/activity.js:1857 -#: js/IntervalsBlocks.js:94 -msgid "temperament name" +#: js/utils/musicutils.js:1044 +#.TRANS: modal scale for music +msgid "locrian" msgstr "" -#: js/activity.js:1863 -msgid "chord name" +#: js/utils/musicutils.js:1046 +#.TRANS: minor jazz scale for music +msgid "jazz minor" msgstr "" -#: js/activity.js:1869 -msgid "filter type" +#: js/utils/musicutils.js:1048 +#.TRANS: bebop scale for music +msgid "bebop" msgstr "" -#: js/activity.js:1872 -msgid "oscillator type" +#: js/utils/musicutils.js:1049 +msgid "arabic" msgstr "" -#: js/activity.js:1878 -#: js/DrumBlocks.js:32 -msgid "noise name" +#: js/utils/musicutils.js:1050 +msgid "byzantine" msgstr "" -#: js/activity.js:1881 -#: js/DrumBlocks.js:75 -msgid "drum name" +#: js/utils/musicutils.js:1052 +#.TRANS: musical scale for music by Verdi +msgid "enigmatic" msgstr "" -#: js/activity.js:1884 -#: js/DrumBlocks.js:119 -msgid "effects name" +#: js/utils/musicutils.js:1053 +msgid "ethiopian" msgstr "" -#: js/activity.js:1887 -msgid "wrap mode" +#: js/utils/musicutils.js:1055 +#.TRANS: Ethiopic scale for music +msgid "geez" msgstr "" -#: js/activity.js:1890 -msgid "load file" +#: js/utils/musicutils.js:1056 +msgid "hindu" msgstr "" -#: js/activity.js:2056 -msgid "This block is deprecated." +#: js/utils/musicutils.js:1057 +msgid "hungarian" msgstr "" -#: js/activity.js:2058 -msgid "Block cannot be found." +#: js/utils/musicutils.js:1059 +#.TRANS: minor Romanian scale for music +msgid "romanian minor" msgstr "" -#: js/activity.js:2266 -msgid "Saving block artwork" +#: js/utils/musicutils.js:1060 +msgid "spanish gypsy" msgstr "" -#: js/activity.js:2277 -msgid "Erase" +#: js/utils/musicutils.js:1062 +#.TRANS: musical scale for Mid-Eastern music +msgid "maqam" msgstr "" -#: js/activity.js:2301 -#: js/activity.js:2323 -msgid "Paste" +#: js/utils/musicutils.js:1064 +#.TRANS: minor blues scale for music +msgid "minor blues" msgstr "" -#: js/activity.js:2305 -msgid "Save block help" +#: js/utils/musicutils.js:1066 +#.TRANS: major blues scale for music +msgid "major blues" msgstr "" -#: js/activity.js:2390 -msgid "Jumping to the bottom of the page." +#: js/utils/musicutils.js:1067 +msgid "whole tone" msgstr "" -#: js/activity.js:2396 -msgid "Scrolling up." +#: js/utils/musicutils.js:1069 +#.TRANS: pentatonic is a general term that means "five note scale". This scale is typically known as "minor pentatonic" +msgid "minor pentatonic" msgstr "" -#: js/activity.js:2401 -msgid "Scrolling down." +#: js/utils/musicutils.js:1071 +#.TRANS: pentatonic is a general term that means "five note scale". This scale is typically known as "major pentatonic" +msgid "major pentatonic" msgstr "" -#: js/activity.js:2406 -msgid "Extracting block" +#: js/utils/musicutils.js:1072 +msgid "chinese" msgstr "" -#: js/activity.js:2414 -msgid "Moving block up." +#: js/utils/musicutils.js:1073 +msgid "egyptian" msgstr "" -#: js/activity.js:2435 -msgid "Moving block down." +#: js/utils/musicutils.js:1075 +#.TRANS: https://en.wikipedia.org/wiki/Hirajoshi_scale NOTE: There are three different versions of this scale +msgid "hirajoshi" msgstr "" -#: js/activity.js:2456 -msgid "Moving block left." +#: js/utils/musicutils.js:1076 +msgid "Japan" msgstr "" -#: js/activity.js:2473 -msgid "Moving block right." +#: js/utils/musicutils.js:1078 +#.TRANS: https://en.wikipedia.org/wiki/In_scale and https://en.wikipedia.org/wiki/Sakura_Sakura +msgid "in" msgstr "" -#: js/activity.js:2488 -msgid "Jump to home position." +#: js/utils/musicutils.js:1080 +#.TRANS: https://en.wikipedia.org/wiki/Miny%C5%8D_scale +msgid "minyo" msgstr "" -#: js/activity.js:2515 -msgid "Hide blocks" +#: js/utils/musicutils.js:1082 +#.TRANS: Italian mathematician +msgid "fibonacci" msgstr "" -#: js/activity.js:3389 -msgid "Click the run button to run the project." +#: js/utils/musicutils.js:1083 +#: js/utils/musicutils.js:1134 +#: js/utils/musicutils.js:1177 +#: js/utils/musicutils.js:1199 +#: js/utils/synthutils.js:134 +#: js/blocks/IntervalsBlocks.js:1124 +#: js/blocks/ToneBlocks.js:946 +#: js/blocks/VolumeBlocks.js:411 +#: js/blocks/WidgetBlocks.js:399 +#: js/blocks/WidgetBlocks.js:404 +#: js/turtleactions/VolumeActions.js:218 +#: js/widgets/modewidget.js:919 +#.TRANS: customize voice +msgid "custom" msgstr "" -#: js/activity.js:3456 -#: js/SaveInterface.js:131 -#: js/SaveInterface.js:204 -#: js/SaveInterface.js:262 -#: js/SaveInterface.js:389 -#: js/SaveInterface.js:417 -#: js/ProjectStorage.js:27 -#: js/GlobalPlanet.js:467 -#: js/GlobalPlanet.js:469 -#: js/GlobalPlanet.js:495 -#.TRANS: default project title when saving as Lilypond -msgid "My Project" +#: js/utils/musicutils.js:1085 +#: js/utils/musicutils.js:1531 +#: js/blocks/WidgetBlocks.js:176 +#.TRANS: highpass filter +msgid "highpass" msgstr "" -#: js/activity.js:4261 -msgid "Show/hide block" +#: js/utils/musicutils.js:1087 +#: js/utils/musicutils.js:1532 +#.TRANS: lowpass filter +msgid "lowpass" msgstr "" -#: js/activity.js:4263 -msgid "Expand/collapse blocks" +#: js/utils/musicutils.js:1089 +#: js/utils/musicutils.js:1533 +#.TRANS: bandpass filter +msgid "bandpass" msgstr "" -#: js/activity.js:4381 -msgid "Could not parse JSON input." +#: js/utils/musicutils.js:1091 +#: js/utils/musicutils.js:1534 +#.TRANS: high-shelf filter +msgid "highshelf" msgstr "" -#: js/activity.js:4684 -#: js/activity.js:4771 -#: js/activity.js:4821 -msgid "Cannot load project from the file. Please check the file type." +#: js/utils/musicutils.js:1093 +#: js/utils/musicutils.js:1535 +#.TRANS: low-shelf filter +msgid "lowshelf" msgstr "" -#: js/activity.js:5051 -msgid "Invalid parameters" +#: js/utils/musicutils.js:1095 +#: js/utils/musicutils.js:1536 +#.TRANS: notch-shelf filter +msgid "notch" msgstr "" -#: js/turtle-singer.js:1334 -#.TRANS: partials are weighted components in a harmonic series -msgid "You must have at least one Partial block inside of a Weighted-partial block" +#: js/utils/musicutils.js:1097 +#: js/utils/musicutils.js:1537 +#.TRANS: all-pass filter +msgid "allpass" msgstr "" -#: js/turtle-singer.js:2048 -msgid "synth cannot play chords." +#: js/utils/musicutils.js:1099 +#: js/utils/musicutils.js:1538 +#.TRANS: peaking filter +msgid "peaking" msgstr "" -#: js/lilypond.js:614 -msgid "brown rat" +#: js/utils/musicutils.js:1100 +#: js/utils/musicutils.js:1546 +#: js/utils/synthutils.js:126 +#: js/blocks/PitchBlocks.js:85 +#.TRANS: sine wave +msgid "sine" msgstr "" -#: js/lilypond.js:615 -msgid "mole" +#: js/utils/musicutils.js:1101 +#: js/utils/musicutils.js:1547 +#: js/utils/synthutils.js:128 +#: js/blocks/PitchBlocks.js:39 +#.TRANS: square wave +msgid "square" msgstr "" -#: js/lilypond.js:616 -msgid "chipmunk" +#: js/utils/musicutils.js:1102 +#: js/utils/musicutils.js:1548 +#: js/utils/synthutils.js:132 +#: js/blocks/PitchBlocks.js:62 +#: js/blocks/ToneBlocks.js:39 +#.TRANS: triangle wave +msgid "triangle" msgstr "" -#: js/lilypond.js:617 -msgid "red squirrel" +#: js/utils/musicutils.js:1103 +#: js/utils/musicutils.js:1549 +#: js/utils/synthutils.js:130 +#: js/blocks/PitchBlocks.js:108 +#.TRANS: sawtooth wave +msgid "sawtooth" msgstr "" -#: js/lilypond.js:618 -msgid "guinea pig" +#: js/utils/musicutils.js:1105 +#: js/utils/musicutils.js:1312 +#: js/blocks/PitchBlocks.js:931 +#: js/blocks/PitchBlocks.js:937 +#: js/turtleactions/PitchActions.js:469 +#.TRANS: even numbers +#.TRANS: invert based on even or odd number or musical scale +msgid "even" msgstr "" -#: js/lilypond.js:619 -msgid "capybara" +#: js/utils/musicutils.js:1107 +#: js/utils/musicutils.js:1313 +#: js/blocks/PitchBlocks.js:937 +#: js/turtleactions/PitchActions.js:471 +#.TRANS: odd numbers +msgid "odd" msgstr "" -#: js/lilypond.js:620 -msgid "coypu" +#: js/utils/musicutils.js:1108 +#: js/utils/musicutils.js:1314 +#: js/blocks/PitchBlocks.js:937 +#: js/turtleactions/PitchActions.js:473 +msgid "scalar" msgstr "" -#: js/lilypond.js:621 -msgid "black rat" +#: js/utils/musicutils.js:1109 +#: js/utils/synthutils.js:72 +#: js/blocks/VolumeBlocks.js:47 +#.TRANS: musical instrument +msgid "piano" msgstr "" -#: js/lilypond.js:622 -msgid "grey squirrel" +#: js/utils/musicutils.js:1110 +#: js/utils/synthutils.js:74 +#.TRANS: musical instrument +msgid "violin" msgstr "" -#: js/lilypond.js:623 -msgid "flying squirrel" +#: js/utils/musicutils.js:1111 +#: js/utils/synthutils.js:76 +#.TRANS: viola musical instrument +msgid "viola" msgstr "" -#: js/lilypond.js:624 -msgid "bat" +#: js/utils/musicutils.js:1112 +#: js/utils/synthutils.js:114 +#.TRANS: xylophone musical instrument +msgid "xylophone" msgstr "" -#: js/lilypond.js:757 -#: js/lilypond.js:921 -#: js/lilypond.js:959 -#: js/ActionBlocks.js:1256 -#: js/ExtrasBlocks.js:553 -msgid "start drum" +#: js/utils/musicutils.js:1113 +#: js/utils/synthutils.js:136 +#.TRANS: vibraphone musical instrument +msgid "vibraphone" msgstr "" -#: js/SaveInterface.js:59 -#: js/SaveInterface.js:61 -#: js/SaveInterface.js:93 -msgid "Music Blocks Project" +#: js/utils/musicutils.js:1114 +#: js/utils/synthutils.js:78 +#.TRANS: musical instrument +msgid "cello" msgstr "" -#: js/SaveInterface.js:63 -msgid "This project was created in Music Blocks" +#: js/utils/musicutils.js:1116 +#: js/utils/synthutils.js:82 +#.TRANS: viola musical instrument +msgid "double bass" msgstr "" -#: js/SaveInterface.js:67 -msgid "Music Blocks is a Free/Libre Software application." +#: js/utils/musicutils.js:1117 +#: js/utils/synthutils.js:84 +#: js/widgets/rhythmruler.js:2511 +#.TRANS: musical instrument +msgid "guitar" msgstr "" -#: js/SaveInterface.js:69 -msgid "The source code can be accessed at" +#: js/utils/musicutils.js:1118 +#: js/utils/synthutils.js:86 +#.TRANS: musical instrument +msgid "acoustic guitar" msgstr "" -#: js/SaveInterface.js:72 -msgid "For more information, please consult the" +#: js/utils/musicutils.js:1119 +#: js/utils/synthutils.js:88 +#.TRANS: musical instrument +msgid "flute" msgstr "" -#: js/SaveInterface.js:83 -msgid "Alternatively, open the file in Music Blocks using the Load project button." +#: js/utils/musicutils.js:1120 +#: js/utils/synthutils.js:90 +#.TRANS: musical instrument +msgid "clarinet" msgstr "" -#: js/SaveInterface.js:85 -msgid "Project Code" +#: js/utils/musicutils.js:1121 +#: js/utils/synthutils.js:92 +#.TRANS: musical instrument +msgid "saxophone" msgstr "" -#: js/SaveInterface.js:87 -msgid "This code stores data about the blocks in a project." +#: js/utils/musicutils.js:1122 +#: js/utils/synthutils.js:94 +#.TRANS: musical instrument +msgid "tuba" msgstr "" -#: js/SaveInterface.js:89 -msgid "Show" +#: js/utils/musicutils.js:1123 +#: js/utils/synthutils.js:96 +#.TRANS: musical instrument +msgid "trumpet" msgstr "" -#: js/SaveInterface.js:91 -msgid "Hide" +#: js/utils/musicutils.js:1124 +#: js/utils/synthutils.js:98 +#.TRANS: musical instrument +msgid "oboe" msgstr "" -#: js/SaveInterface.js:197 -#: js/SaveInterface.js:58 -msgid "No description provided" +#: js/utils/musicutils.js:1125 +#: js/utils/synthutils.js:100 +#.TRANS: musical instrument +msgid "trombone" msgstr "" -#: js/SaveInterface.js:332 -msgid "Your recording is in progress." +#: js/utils/musicutils.js:1126 +#: js/utils/synthutils.js:116 +#.TRANS: polytone synthesizer +msgid "electronic synth" msgstr "" -#: js/SaveInterface.js:401 -#.TRANS: File name prompt for save as Lilypond -msgid "File name" +#: js/utils/musicutils.js:1127 +#: js/utils/synthutils.js:118 +#.TRANS: simple monotone synthesizer +msgid "simple 1" msgstr "" -#: js/SaveInterface.js:403 -#: js/StringHelper.js:39 -#.TRANS: Project title prompt for save as Lilypond -msgid "Project title" +#: js/utils/musicutils.js:1128 +msgid "simple 2" msgstr "" -#: js/SaveInterface.js:405 -#.TRANS: Project title prompt for save as Lilypond -msgid "Project author" +#: js/utils/musicutils.js:1129 +msgid "simple 3" msgstr "" -#: js/SaveInterface.js:407 -#.TRANS: MIDI prompt for save as Lilypond -msgid "Include MIDI output?" +#: js/utils/musicutils.js:1130 +msgid "simple 4" msgstr "" -#: js/SaveInterface.js:409 -#.TRANS: Guitar prompt for save as Lilypond -msgid "Include guitar tablature output?" +#: js/utils/musicutils.js:1131 +#: js/utils/synthutils.js:58 +#: js/blocks/DrumBlocks.js:191 +#.TRANS: white noise synthesizer +msgid "white noise" msgstr "" -#: js/SaveInterface.js:411 -#.TRANS: Lilypond is a scripting language for generating sheet music -msgid "Save as Lilypond" +#: js/utils/musicutils.js:1132 +#: js/utils/synthutils.js:60 +#.TRANS: brown noise synthesizer +msgid "brown noise" msgstr "" -#: js/SaveInterface.js:426 -#: js/EnsembleBlocks.js:75 -#: js/EnsembleBlocks.js:154 -#: js/EnsembleBlocks.js:216 -#: js/EnsembleBlocks.js:302 -#: js/EnsembleBlocks.js:348 -#: js/EnsembleBlocks.js:389 -#: js/EnsembleBlocks.js:441 -#: js/EnsembleBlocks.js:490 -#: js/EnsembleBlocks.js:536 -#: js/EnsembleBlocks.js:583 -#: js/EnsembleBlocks.js:637 -#: js/EnsembleBlocks.js:753 -#: js/EnsembleBlocks.js:840 -#: js/EnsembleBlocks.js:899 -#: js/EnsembleBlocks.js:942 -#: js/EnsembleBlocks.js:1212 -#: js/EnsembleBlocks.js:1280 -#.TRANS: default project author when saving as Lilypond -msgid "Mr. Mouse" +#: js/utils/musicutils.js:1133 +#: js/utils/synthutils.js:62 +#.TRANS: pink noise synthesizer +msgid "pink noise" msgstr "" -#: js/SaveInterface.js:573 -msgid "The Lilypond code is copied to clipboard. You can paste it here: " +#: js/utils/musicutils.js:1135 +#: js/utils/synthutils.js:148 +#: js/widgets/rhythmruler.js:2057 +#: js/widgets/rhythmruler.js:2319 +#.TRANS: musical instrument +msgid "snare drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:50 -#: js/RhythmBlockPaletteBlocks.js:232 -#.TRANS: rhythm block -#.TRANS: translate "rhythm1" as rhythm -msgid "rhythm1" +#: js/utils/musicutils.js:1136 +#: js/utils/synthutils.js:150 +#.TRANS: musical instrument +msgid "kick drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:70 -#: js/RhythmBlockPaletteBlocks.js:251 -#: js/RhythmBlockPaletteBlocks.js:484 -#: js/RhythmBlockPaletteBlocks.js:553 -#: js/RhythmBlockPaletteBlocks.js:874 -msgid "number of notes" +#: js/utils/musicutils.js:1137 +#: js/utils/synthutils.js:152 +#.TRANS: musical instrument +msgid "tom tom" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:126 -msgid "polyphonic rhythm" +#: js/utils/musicutils.js:1138 +#: js/utils/synthutils.js:154 +#.TRANS: musical instrument +msgid "floor tom" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:218 -msgid "The Rhythm block is used to generate rhythm patterns." +#: js/utils/musicutils.js:1139 +#: js/utils/synthutils.js:156 +#.TRANS: musical instrument +msgid "bass drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:279 -msgid "1/64 note" +#: js/utils/musicutils.js:1140 +#: js/utils/synthutils.js:158 +#.TRANS: a drum made from an inverted cup +msgid "cup drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:303 -msgid "1/32 note" +#: js/utils/musicutils.js:1141 +#: js/utils/synthutils.js:160 +#.TRANS: musical instrument +msgid "darbuka drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:331 -msgid "1/16 note" +#: js/utils/musicutils.js:1142 +#: js/utils/synthutils.js:164 +#.TRANS: musical instrument +msgid "hi hat" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:359 -msgid "eighth note" +#: js/utils/musicutils.js:1143 +#: js/utils/synthutils.js:166 +#.TRANS: a small metal bell +msgid "ride bell" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:387 -msgid "quarter note" +#: js/utils/musicutils.js:1144 +#: js/utils/synthutils.js:168 +#.TRANS: musical instrument +msgid "cow bell" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:415 -msgid "half note" +#: js/utils/musicutils.js:1145 +msgid "japanese drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:443 -msgid "whole note" +#: js/utils/musicutils.js:1146 +#: js/utils/synthutils.js:174 +#.TRANS: musical instrument +msgid "japanese bell" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:481 -#: js/RhythmBlockPaletteBlocks.js:550 -#: js/RhythmBlockPaletteBlocks.js:601 -#.TRANS: A tuplet is a note value divided into irregular time values. -msgid "tuplet" +#: js/utils/musicutils.js:1147 +#: js/utils/synthutils.js:170 +#.TRANS: musical instrument +msgid "triangle bell" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:767 -msgid "septuplet" +#: js/utils/musicutils.js:1148 +#: js/utils/synthutils.js:172 +#.TRANS: musical instrument +msgid "finger cymbals" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:795 -msgid "quintuplet" +#: js/utils/musicutils.js:1149 +#: js/utils/synthutils.js:176 +#.TRANS: a musically tuned set of bells +msgid "chime" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:823 -msgid "triplet" +#: js/utils/musicutils.js:1150 +#: js/utils/synthutils.js:178 +#.TRANS: a musical instrument +msgid "gong" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:850 -msgid "simple tuplet" +#: js/utils/musicutils.js:1151 +#: js/utils/synthutils.js:180 +#.TRANS: sound effect +msgid "clang" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:860 -msgid "Tuplets are a collection of notes that get scaled to a specific duration." +#: js/utils/musicutils.js:1152 +#: js/utils/synthutils.js:182 +#.TRANS: sound effect +msgid "crash" msgstr "" -#: js/WidgetBlocks.js:71 -#.TRANS: sound envelope (ADSR) -msgid "envelope" +#: js/utils/musicutils.js:1153 +#: js/utils/synthutils.js:184 +#.TRANS: sound effect +msgid "bottle" msgstr "" -#: js/WidgetBlocks.js:79 -#.TRANS: Attack time is the time taken for initial run-up of level from nil to peak, beginning when the key is first pressed. -msgid "attack" +#: js/utils/musicutils.js:1154 +#: js/utils/synthutils.js:186 +#.TRANS: sound effect +msgid "clap" msgstr "" -#: js/WidgetBlocks.js:81 -#.TRANS: Decay time is the time taken for the subsequent run down from the attack level to the designated sustain level. -msgid "decay" +#: js/utils/musicutils.js:1155 +#: js/utils/synthutils.js:188 +#.TRANS: sound effect +msgid "slap" msgstr "" -#: js/WidgetBlocks.js:83 -#.TRANS: Sustain level is the level during the main sequence of the sound's duration, until the key is released. -msgid "sustain" +#: js/utils/musicutils.js:1156 +#: js/utils/synthutils.js:190 +#.TRANS: sound effect +msgid "splash" msgstr "" -#: js/WidgetBlocks.js:85 -#.TRANS: Release time is the time taken for the level to decay from the sustain level to zero after the key is released. -msgid "release" +#: js/utils/musicutils.js:1157 +#: js/utils/synthutils.js:192 +#.TRANS: sound effect +msgid "bubbles" msgstr "" -#: js/WidgetBlocks.js:96 -msgid "Attack value should be from 0 to 100." +#: js/utils/musicutils.js:1158 +#: js/utils/synthutils.js:194 +#.TRANS: sound effect +msgid "raindrop" msgstr "" -#: js/WidgetBlocks.js:99 -msgid "Decay value should be from 0 to 100." +#: js/utils/musicutils.js:1159 +#: js/utils/synthutils.js:196 +#.TRANS: animal sound effect +msgid "cat" msgstr "" -#: js/WidgetBlocks.js:102 -msgid "Sustain value should be from 0 to 100." +#: js/utils/musicutils.js:1160 +#: js/utils/synthutils.js:198 +#.TRANS: animal sound effect +msgid "cricket" msgstr "" -#: js/WidgetBlocks.js:105 -msgid "Release value should be from 0-100." +#: js/utils/musicutils.js:1161 +#: js/utils/synthutils.js:200 +#.TRANS: animal sound effect +msgid "dog" msgstr "" -#: js/WidgetBlocks.js:121 -msgid "You are adding multiple envelope blocks." +#: js/utils/musicutils.js:1163 +#: js/utils/synthutils.js:102 +#.TRANS: musical instrument +msgid "banjo" msgstr "" -#: js/WidgetBlocks.js:144 -#.TRANS: a filter removes some unwanted components from a signal -msgid "filter" +#: js/utils/musicutils.js:1164 +#: js/utils/synthutils.js:104 +#.TRANS: musical instrument +msgid "koto" msgstr "" -#: js/WidgetBlocks.js:149 -#: js/musicutils.js:706 -#: js/musicutils.js:1105 -#.TRANS: highpass filter -msgid "highpass" +#: js/utils/musicutils.js:1165 +#: js/utils/synthutils.js:106 +#.TRANS: musical instrument +msgid "dulcimer" msgstr "" -#: js/WidgetBlocks.js:152 -#: js/ToneBlocks.js:42 -#: js/timbre.js:1558 -#: js/timbre.js:1808 -#.TRANS: type of filter, e.g., lowpass, highpass, etc. -#.TRANS: there are different types (sine, triangle, square...) of oscillators. -msgid "type" +#: js/utils/musicutils.js:1166 +#: js/utils/synthutils.js:108 +#.TRANS: musical instrument +msgid "electric guitar" msgstr "" -#: js/WidgetBlocks.js:154 -#: js/timbre.js:1818 -#.TRANS: rolloff is the steepness of a change in frequency. -msgid "rolloff" +#: js/utils/musicutils.js:1167 +#: js/utils/synthutils.js:110 +#.TRANS: musical instrument +msgid "bassoon" msgstr "" -#: js/WidgetBlocks.js:155 -#: js/MediaBlocks.js:692 -#: js/temperament.js:382 -#: js/temperament.js:417 -#: js/temperament.js:477 -#: js/temperament.js:485 -#: js/temperament.js:1348 -#: js/timbre.js:1842 -msgid "frequency" +#: js/utils/musicutils.js:1168 +#: js/utils/synthutils.js:112 +#.TRANS: musical instrument +msgid "celeste" msgstr "" -#: js/WidgetBlocks.js:179 -#.TRANS: rolloff is the steepness of a change in frequency. -msgid "Rolloff value should be either -12, -24, -48, or -96 decibels/octave." +#: js/utils/musicutils.js:1170 +#: js/widgets/temperament.js:787 +#.TRANS: musical temperament +msgid "equal" msgstr "" -#: js/WidgetBlocks.js:211 -msgid "The Temperament tool is used to define custom tuning." +#: js/utils/musicutils.js:1172 +#.TRANS: musical temperament +msgid "Pythagorean" msgstr "" -#: js/WidgetBlocks.js:277 -#: js/sampler.js:329 -msgid "Upload a sample and adjust its pitch center." +#: js/utils/musicutils.js:1174 +#.TRANS: musical temperament +msgid "just intonation" msgstr "" -#: js/WidgetBlocks.js:284 -#.TRANS: the speed at music is should be played. -msgid "sampler" +#: js/utils/musicutils.js:1176 +#.TRANS: musical temperament +msgid "meantone" msgstr "" -#: js/WidgetBlocks.js:329 -#: js/WidgetBlocks.js:334 -#: js/IntervalsBlocks.js:928 -#: js/VolumeBlocks.js:411 -#: js/ToneBlocks.js:946 -#: js/VolumeActions.js:218 -#: js/musicutils.js:704 -#: js/musicutils.js:755 -#: js/musicutils.js:798 -#: js/musicutils.js:820 -#: js/musicutils.js:1136 -#: js/synthutils.js:118 -#: js/modewidget.js:919 -#.TRANS: customize voice -msgid "custom" +#: js/utils/musicutils.js:1193 +msgid "major 7th" msgstr "" -#: js/WidgetBlocks.js:432 -msgid "The Meter block opens a tool to select strong beats for the meter." +#: js/utils/musicutils.js:1194 +msgid "minor 7th" msgstr "" -#: js/WidgetBlocks.js:473 -msgid "The oscilloscope block opens a tool to visualize waveforms." +#: js/utils/musicutils.js:1195 +msgid "dominant 7th" msgstr "" -#: js/WidgetBlocks.js:478 -msgid "oscilloscope" +#: js/utils/musicutils.js:1196 +msgid "minor-major 7th" msgstr "" -#: js/WidgetBlocks.js:530 -msgid "The Custom mode block opens a tool to explore musical mode (the spacing of the notes in a scale)." +#: js/utils/musicutils.js:1197 +msgid "fully-diminished 7th" msgstr "" -#: js/WidgetBlocks.js:536 -#.TRANS: musical mode is the pattern of half-steps in an octave, e.g., Major or Minor modes -msgid "custom mode" +#: js/utils/musicutils.js:1198 +msgid "half-diminished 7th" msgstr "" -#: js/WidgetBlocks.js:570 -msgid "The Tempo block opens a metronome to visualize the beat." +#: js/utils/musicutils.js:1557 +#: js/utils/musicutils.js:1569 +msgid "Equal (12EDO)" msgstr "" -#: js/WidgetBlocks.js:617 -msgid "The Arpeggio Widget is used to compose chord sequences." +#: js/utils/musicutils.js:1558 +#: js/utils/musicutils.js:1570 +msgid "5-limit Just Intonation" msgstr "" -#: js/WidgetBlocks.js:623 -#: js/IntervalsBlocks.js:683 -msgid "arpeggio" +#: js/utils/musicutils.js:1559 +#: js/utils/musicutils.js:1571 +msgid "Pythagorean (3-limit JI)" msgstr "" -#: js/WidgetBlocks.js:677 -msgid "The Pitch drum matrix is used to map pitches to drum sounds." +#: js/utils/musicutils.js:1560 +#: js/utils/musicutils.js:1561 +#: js/utils/musicutils.js:1572 +#: js/utils/musicutils.js:1573 +msgid "Meantone" msgstr "" -#: js/WidgetBlocks.js:682 -#.TRANS: makes a mapping between pitches and drum sounds -msgid "pitch-drum mapper" +#: js/utils/musicutils.js:1574 +msgid "Custom" msgstr "" -#: js/WidgetBlocks.js:724 -msgid "You must have at least one pitch block and one drum block in the matrix." +#: js/utils/musicutils.js:5387 +#: js/utils/musicutils.js:5430 +msgid "current" msgstr "" -#: js/WidgetBlocks.js:746 -msgid "The Pitch slider tool to is used to generate pitches at selected frequencies." +#: js/utils/musicutils.js:5390 +#: js/utils/musicutils.js:5421 +msgid "next" msgstr "" -#: js/WidgetBlocks.js:751 -#.TRANS: widget to generate pitches using a slider -msgid "pitch slider" +#: js/utils/musicutils.js:5393 +#: js/utils/musicutils.js:5426 +msgid "previous" msgstr "" -#: js/WidgetBlocks.js:788 -msgid "chromatic keyboard" +#: js/utils/synthutils.js:120 +#.TRANS: simple monotone synthesizer +msgid "simple-2" msgstr "" -#: js/WidgetBlocks.js:815 -#: js/WidgetBlocks.js:874 -#.TRANS: widget to generate pitches using a slider -msgid "music keyboard" +#: js/utils/synthutils.js:122 +#.TRANS: simple monotone synthesizer +msgid "simple-3" msgstr "" -#: js/WidgetBlocks.js:859 -#: js/WidgetBlocks.js:866 -msgid "The Music keyboard block opens a piano keyboard that can be used to create notes." +#: js/utils/synthutils.js:124 +#.TRANS: simple monotone synthesizer +msgid "simple-4" msgstr "" -#: js/WidgetBlocks.js:910 -msgid "The Pitch staircase tool to is used to generate pitches from a given ratio." +#: js/utils/synthutils.js:162 +#.TRANS: musical instrument +msgid "taiko" msgstr "" -#: js/WidgetBlocks.js:917 -#.TRANS: generate a progressive sequence of pitches -msgid "pitch staircase" +#: js/blocks/ActionBlocks.js:58 +msgid "The Return block will return a value from an action." msgstr "" -#: js/WidgetBlocks.js:982 -msgid "The Rhythm Maker block opens a tool to create drum machines." +#: js/blocks/ActionBlocks.js:75 +msgid "return" msgstr "" -#: js/WidgetBlocks.js:1036 -msgid "G major scale" +#: js/blocks/ActionBlocks.js:128 +msgid "The Return to URL block will return a value to a webpage." msgstr "" -#: js/WidgetBlocks.js:1064 -msgid "C major scale" +#: js/blocks/ActionBlocks.js:145 +msgid "return to URL" msgstr "" -#: js/WidgetBlocks.js:1097 -msgid "The Phrase Maker block opens a tool to create musical phrases." +#: js/blocks/ActionBlocks.js:233 +#: js/blocks/ActionBlocks.js:290 +#: js/blocks/ActionBlocks.js:501 +#: js/blocks/ActionBlocks.js:688 +msgid "The Calculate block returns a value calculated by an action." msgstr "" -#: js/WidgetBlocks.js:1104 -#.TRANS: assigns pitch to a sequence of beats to generate a melody -msgid "phrase maker" +#: js/blocks/ActionBlocks.js:251 +#: js/blocks/ActionBlocks.js:517 +#: js/blocks/ActionBlocks.js:707 +msgid "calculate" msgstr "" -#: js/WidgetBlocks.js:1168 -msgid "You must have at least one pitch block and one rhythm block in the matrix." +#: js/blocks/ActionBlocks.js:376 +#: js/blocks/ActionBlocks.js:593 +#: js/blocks/ActionBlocks.js:942 +#: js/blocks/ActionBlocks.js:1389 +#.TRANS: do is the do something or take an action. +msgid "The Do block is used to initiate an action." msgstr "" -#: js/WidgetBlocks.js:1220 -msgid "The Status block opens a tool for inspecting the status of Music Blocks as it is running." +#: js/blocks/ActionBlocks.js:390 +#: js/blocks/ActionBlocks.js:610 +#: js/blocks/ActionBlocks.js:959 +#: js/blocks/ActionBlocks.js:1048 +#: js/blocks/MeterBlocks.js:769 +msgid "do1" msgstr "" -#: js/IntervalsBlocks.js:45 -msgid "set temperament" +#: js/blocks/ActionBlocks.js:390 +#: js/blocks/ActionBlocks.js:610 +#: js/blocks/ActionBlocks.js:959 +#: js/blocks/ActionBlocks.js:1048 +#: js/blocks/FlowBlocks.js:742 +#: js/blocks/FlowBlocks.js:822 +#: js/blocks/MeterBlocks.js:769 +msgid "do" msgstr "" -#: js/IntervalsBlocks.js:63 -#: js/MediaBlocks.js:746 -#: js/PitchBlocks.js:657 -#: js/PitchBlocks.js:933 -#: js/PitchBlocks.js:972 -#: js/PitchBlocks.js:1005 -#: js/PitchBlocks.js:1166 -#: js/PitchBlocks.js:1679 -#: js/PitchBlocks.js:1720 -#: js/PitchBlocks.js:1827 -#: js/ToneBlocks.js:1025 -#.TRANS: adjusts the shift up or down by one octave (twelve half-steps in the interval between two notes, one having twice or half the frequency in Hz of the other.) -msgid "octave" +#: js/blocks/ActionBlocks.js:791 +#: js/blocks/ActionBlocks.js:865 +msgid "The Arg block contains the value of an argument passed to an action." msgstr "" -#: js/IntervalsBlocks.js:99 -msgid "The Temperament name block is used to select a tuning method." +#: js/blocks/ActionBlocks.js:806 +#: js/blocks/ActionBlocks.js:878 +msgid "arg" msgstr "" -#: js/IntervalsBlocks.js:161 -msgid "doubly" +#: js/blocks/ActionBlocks.js:836 +#: js/blocks/ActionBlocks.js:900 +#: js/blocks/ActionBlocks.js:908 +msgid "Invalid argument" msgstr "" -#: js/IntervalsBlocks.js:166 -msgid "The Doubly block will double the size of an interval." +#: js/blocks/ActionBlocks.js:944 +msgid "In the example, it is used with the One of block to choose a random phase." msgstr "" -#: js/IntervalsBlocks.js:262 -msgid "interval number" +#: js/blocks/ActionBlocks.js:1019 +#: js/blocks/ActionBlocks.js:1026 +msgid "The Listen block is used to listen for an event such as a mouse click." msgstr "" -#: js/IntervalsBlocks.js:330 -#.TRANS: measure the distance between two pitches in semi-tones -msgid "semi-tone interval measure" +#: js/blocks/ActionBlocks.js:1028 +msgid "When the event happens, an action is taken." msgstr "" -#: js/IntervalsBlocks.js:397 -#: js/IntervalsBlocks.js:513 -msgid "You must use two pitch blocks when measuring an interval." +#: js/blocks/ActionBlocks.js:1045 +msgid "on" msgstr "" -#: js/IntervalsBlocks.js:439 -msgid "The Scalar interval block measures the distance between two notes in the current key and mode." +#: js/blocks/ActionBlocks.js:1048 +#: js/blocks/ActionBlocks.js:1049 +#: js/blocks/ActionBlocks.js:1153 +msgid "event" msgstr "" -#: js/IntervalsBlocks.js:445 -#.TRANS: measure the distance between two pitches in steps of musical scale -msgid "scalar interval measure" +#: js/blocks/ActionBlocks.js:1133 +msgid "The Broadcast block is used to trigger an event." msgstr "" -#: js/IntervalsBlocks.js:592 -#: js/musicutils.js:637 -#: js/musicutils.js:908 -#.TRANS: perfect is a music term related to intervals -msgid "perfect" +#: js/blocks/ActionBlocks.js:1151 +msgid "broadcast" msgstr "" -#: js/IntervalsBlocks.js:621 -msgid "In the figure, we add sol# to sol." +#: js/blocks/ActionBlocks.js:1208 +msgid "Each Start block is a separate voice." msgstr "" -#: js/IntervalsBlocks.js:627 -#: js/OrnamentBlocks.js:220 -#.TRANS: calculate a relative step between notes based on semi-tones -msgid "semi-tone interval" +#: js/blocks/ActionBlocks.js:1304 +msgid "It is often used for storing a phrase of music that is repeated." msgstr "" -#: js/IntervalsBlocks.js:676 -msgid "The output of the example is: do, mi, sol, sol, ti, mi" +#: js/blocks/ActionBlocks.js:1495 +msgid "define temperament" msgstr "" -#: js/IntervalsBlocks.js:735 -msgid "The Chord block calculates common chords." +#: js/blocks/BooleanBlocks.js:44 +msgid "The Not block is the logical not operator." msgstr "" -#: js/IntervalsBlocks.js:737 -msgid "In the figure, we generate a C-major chord." +#: js/blocks/BooleanBlocks.js:62 +msgid "not" msgstr "" -#: js/IntervalsBlocks.js:742 -msgid "chord" +#: js/blocks/BooleanBlocks.js:134 +msgid "The And block is the logical and operator." msgstr "" -#: js/IntervalsBlocks.js:794 -msgid "The Ratio Interval block calculates an interval based on a ratio." +#: js/blocks/BooleanBlocks.js:152 +msgid "and" msgstr "" -#: js/IntervalsBlocks.js:799 -msgid "ratio interval" +#: js/blocks/BooleanBlocks.js:218 +msgid "The Or block is the logical or operator." msgstr "" -#: js/IntervalsBlocks.js:868 -msgid "In the figure, we add la to sol." +#: js/blocks/BooleanBlocks.js:236 +msgid "or" msgstr "" -#: js/IntervalsBlocks.js:924 -#.TRANS: define a custom mode -msgid "define mode" +#: js/blocks/BooleanBlocks.js:302 +msgid "The XOR block is the logical XOR operator." msgstr "" -#: js/IntervalsBlocks.js:977 -msgid "movable Do" +#: js/blocks/BooleanBlocks.js:320 +msgid "xor" msgstr "" -#: js/IntervalsBlocks.js:1028 -#.TRANS: mode length is the number of notes in the mode, e.g., 7 for major and minor scales; 12 for chromatic scales -msgid "mode length" +#: js/blocks/BooleanBlocks.js:808 +msgid "The Equal block returns True if the two numbers are equal." msgstr "" -#: js/IntervalsBlocks.js:1037 -msgid "The Mode length block is the number of notes in the current scale." +#: js/blocks/BooleanBlocks.js:909 +msgid "The Not-equal-to block returns True if the two numbers are not equal to each other." msgstr "" -#: js/IntervalsBlocks.js:1039 -msgid "Most Western scales have 7 notes." +#: js/blocks/BooleanBlocks.js:1008 +msgid "The Boolean block is used to specify true or false." msgstr "" -#: js/IntervalsBlocks.js:1088 -#.TRANS: the mode in music is 'major', 'minor', etc. -msgid "current mode" +#: js/blocks/BoxesBlocks.js:53 +#: js/blocks/BoxesBlocks.js:59 +msgid "The Add-to block is used to add to the value stored in a box." msgstr "" -#: js/IntervalsBlocks.js:1141 -#.TRANS: the key is a group of pitches with which a music composition is created -msgid "current key" +#: js/blocks/BoxesBlocks.js:61 +msgid "It can also be used with other blocks such as Color and Pen size." msgstr "" -#: js/IntervalsBlocks.js:1193 -#: js/IntervalsBlocks.js:1238 -#.TRANS: set the key and mode, e.g. C Major -msgid "set key" +#: js/blocks/BoxesBlocks.js:73 +msgid "add" msgstr "" -#: js/IntervalsBlocks.js:1247 -#: js/IntervalsBlocks.js:1253 -msgid "The Set key block is used to set the key and mode," +#: js/blocks/BoxesBlocks.js:75 +#: js/widgets/temperament.js:857 +msgid "to" msgstr "" -#: js/IntervalsBlocks.js:1253 -msgid "eg C Major" +#: js/blocks/BoxesBlocks.js:75 +#: js/blocks/BoxesBlocks.js:595 +#: js/blocks/HeapBlocks.js:544 +msgid "value1" msgstr "" -#: js/IntervalsBlocks.js:1266 -#: js/DictBlocks.js:215 -#: js/DictBlocks.js:216 -#: js/DictBlocks.js:289 -#: js/DictBlocks.js:290 -#: js/DictBlocks.js:357 -#: js/DictBlocks.js:430 -#: js/DictBlocks.js:431 -#.TRANS: key, e.g., C in C Major -msgid "key" +#: js/blocks/BoxesBlocks.js:118 +msgid "Block does not support incrementing." msgstr "" -#: js/ActionBlocks.js:58 -msgid "The Return block will return a value from an action." +#: js/blocks/BoxesBlocks.js:152 +msgid "The Add-1-to block adds one to the value stored in a box." msgstr "" -#: js/ActionBlocks.js:75 -msgid "return" +#: js/blocks/BoxesBlocks.js:163 +msgid "add 1 to" msgstr "" -#: js/ActionBlocks.js:128 -msgid "The Return to URL block will return a value to a webpage." +#: js/blocks/BoxesBlocks.js:211 +msgid "The Subtract-1-from block subtracts one from the value stored in a box." msgstr "" -#: js/ActionBlocks.js:145 -msgid "return to URL" +#: js/blocks/BoxesBlocks.js:222 +msgid "subtract 1 from" msgstr "" -#: js/ActionBlocks.js:233 -#: js/ActionBlocks.js:290 -#: js/ActionBlocks.js:501 -#: js/ActionBlocks.js:688 -msgid "The Calculate block returns a value calculated by an action." +#: js/blocks/BoxesBlocks.js:270 +#: js/blocks/BoxesBlocks.js:387 +msgid "The Box block returns the value stored in a box." msgstr "" -#: js/ActionBlocks.js:251 -#: js/ActionBlocks.js:517 -#: js/ActionBlocks.js:707 -msgid "calculate" +#: js/blocks/BoxesBlocks.js:500 +#: js/blocks/BoxesBlocks.js:576 +msgid "The Store in block will store a value in a box." msgstr "" -#: js/ActionBlocks.js:376 -#: js/ActionBlocks.js:593 -#: js/ActionBlocks.js:942 -#: js/ActionBlocks.js:1389 -#.TRANS: do is the do something or take an action. -msgid "The Do block is used to initiate an action." +#: js/blocks/BoxesBlocks.js:595 +#: js/blocks/EnsembleBlocks.js:391 +#: js/blocks/EnsembleBlocks.js:402 +msgid "name1" msgstr "" -#: js/ActionBlocks.js:390 -#: js/ActionBlocks.js:610 -#: js/ActionBlocks.js:959 -#: js/ActionBlocks.js:1048 -#: js/MeterBlocks.js:769 -msgid "do1" +#: js/blocks/BoxesBlocks.js:652 +msgid "The Box2 block returns the value stored in Box2." msgstr "" -#: js/ActionBlocks.js:390 -#: js/ActionBlocks.js:610 -#: js/ActionBlocks.js:959 -#: js/ActionBlocks.js:1048 -#: js/FlowBlocks.js:742 -#: js/FlowBlocks.js:822 -#: js/MeterBlocks.js:769 -msgid "do" +#: js/blocks/BoxesBlocks.js:703 +msgid "The Store in Box2 block is used to store a value in Box2." msgstr "" -#: js/ActionBlocks.js:791 -#: js/ActionBlocks.js:865 -msgid "The Arg block contains the value of an argument passed to an action." +#: js/blocks/BoxesBlocks.js:715 +msgid "store in box2" msgstr "" -#: js/ActionBlocks.js:806 -#: js/ActionBlocks.js:878 -msgid "arg" +#: js/blocks/BoxesBlocks.js:761 +msgid "The Box1 block returns the value stored in Box1." msgstr "" -#: js/ActionBlocks.js:836 -#: js/ActionBlocks.js:900 -#: js/ActionBlocks.js:908 -msgid "Invalid argument" +#: js/blocks/BoxesBlocks.js:812 +msgid "The Store in Box1 block is used to store a value in Box1." msgstr "" -#: js/ActionBlocks.js:944 -msgid "In the example, it is used with the One of block to choose a random phase." +#: js/blocks/BoxesBlocks.js:826 +msgid "store in box1" msgstr "" -#: js/ActionBlocks.js:1019 -#: js/ActionBlocks.js:1026 -msgid "The Listen block is used to listen for an event such as a mouse click." +#: js/blocks/DictBlocks.js:77 +msgid "show dictionary" msgstr "" -#: js/ActionBlocks.js:1028 -msgid "When the event happens, an action is taken." +#: js/blocks/DictBlocks.js:80 +#: js/blocks/DictBlocks.js:145 +#: js/blocks/DictBlocks.js:216 +#: js/blocks/DictBlocks.js:290 +#: js/blocks/ProgramBlocks.js:396 +#: js/blocks/ProgramBlocks.js:501 +#: js/blocks/ProgramBlocks.js:664 +msgid "My Dictionary" msgstr "" -#: js/ActionBlocks.js:1045 -msgid "on" +#: js/blocks/DictBlocks.js:129 +msgid "The Dictionary block returns a dictionary." msgstr "" -#: js/ActionBlocks.js:1048 -#: js/ActionBlocks.js:1049 -#: js/ActionBlocks.js:1153 -msgid "event" +#: js/blocks/DictBlocks.js:197 +#: js/blocks/DictBlocks.js:339 +msgid "The Get-dict block returns a value in the dictionary for a specified key." msgstr "" -#: js/ActionBlocks.js:1133 -msgid "The Broadcast block is used to trigger an event." +#: js/blocks/DictBlocks.js:212 +#: js/blocks/DictBlocks.js:354 +#.TRANS: retrieve a value from the dictionary with a given key +msgid "get value" msgstr "" -#: js/ActionBlocks.js:1151 -msgid "broadcast" +#: js/blocks/DictBlocks.js:215 +#: js/blocks/DictBlocks.js:216 +#: js/blocks/DictBlocks.js:289 +#: js/blocks/DictBlocks.js:290 +#: js/blocks/DictBlocks.js:357 +#: js/blocks/DictBlocks.js:430 +#: js/blocks/DictBlocks.js:431 +msgid "key2" msgstr "" -#: js/ActionBlocks.js:1208 -msgid "Each Start block is a separate voice." +#: js/blocks/DictBlocks.js:215 +#: js/blocks/DictBlocks.js:216 +#: js/blocks/DictBlocks.js:289 +#: js/blocks/DictBlocks.js:290 +#: js/blocks/DictBlocks.js:357 +#: js/blocks/DictBlocks.js:430 +#: js/blocks/DictBlocks.js:431 +#: js/blocks/IntervalsBlocks.js:1462 +#.TRANS: key, e.g., C in C Major +msgid "key" msgstr "" -#: js/ActionBlocks.js:1304 -msgid "It is often used for storing a phrase of music that is repeated." +#: js/blocks/DictBlocks.js:271 +#: js/blocks/DictBlocks.js:411 +msgid "The Set-dict block sets a value in the dictionary for a specified key." msgstr "" -#: js/ActionBlocks.js:1495 -msgid "define temperament" +#: js/blocks/DictBlocks.js:286 +#: js/blocks/DictBlocks.js:427 +#.TRANS: set a value in the dictionary for a given key +msgid "set value" msgstr "" -#: js/EnsembleBlocks.js:66 +#: js/blocks/EnsembleBlocks.js:66 msgid "mouse index heap" msgstr "" -#: js/EnsembleBlocks.js:68 +#: js/blocks/EnsembleBlocks.js:68 msgid "The Mouse index heap block returns a value in the heap at a specified location for a specified mouse." msgstr "" -#: js/EnsembleBlocks.js:77 -#: js/EnsembleBlocks.js:1080 +#: js/blocks/EnsembleBlocks.js:77 +#: js/blocks/EnsembleBlocks.js:1080 msgid "mouse name" msgstr "" -#: js/EnsembleBlocks.js:77 -#: js/EnsembleBlocks.js:92 -#: js/HeapBlocks.js:544 +#: js/blocks/EnsembleBlocks.js:77 +#: js/blocks/EnsembleBlocks.js:92 +#: js/blocks/HeapBlocks.js:544 #.TRANS: value1 is a numeric value (JAPANESE ONLY) msgid "index" msgstr "" -#: js/EnsembleBlocks.js:80 +#: js/blocks/EnsembleBlocks.js:80 msgid "turtle index heap" msgstr "" -#: js/EnsembleBlocks.js:82 +#: js/blocks/EnsembleBlocks.js:82 msgid "The Turtle index heap block returns a value in the heap at a specified location for a specified turtle." msgstr "" -#: js/EnsembleBlocks.js:90 -#: js/EnsembleBlocks.js:167 -#: js/EnsembleBlocks.js:230 -#: js/EnsembleBlocks.js:316 -#: js/EnsembleBlocks.js:362 -#: js/EnsembleBlocks.js:400 -#: js/EnsembleBlocks.js:454 -#: js/EnsembleBlocks.js:504 -#: js/EnsembleBlocks.js:550 -#: js/EnsembleBlocks.js:597 -#: js/EnsembleBlocks.js:651 -#: js/EnsembleBlocks.js:763 -#: js/EnsembleBlocks.js:854 -#: js/EnsembleBlocks.js:915 -#: js/EnsembleBlocks.js:955 -#: js/EnsembleBlocks.js:1219 -#: js/EnsembleBlocks.js:1293 +#: js/blocks/EnsembleBlocks.js:90 +#: js/blocks/EnsembleBlocks.js:167 +#: js/blocks/EnsembleBlocks.js:230 +#: js/blocks/EnsembleBlocks.js:316 +#: js/blocks/EnsembleBlocks.js:362 +#: js/blocks/EnsembleBlocks.js:400 +#: js/blocks/EnsembleBlocks.js:454 +#: js/blocks/EnsembleBlocks.js:504 +#: js/blocks/EnsembleBlocks.js:550 +#: js/blocks/EnsembleBlocks.js:597 +#: js/blocks/EnsembleBlocks.js:651 +#: js/blocks/EnsembleBlocks.js:763 +#: js/blocks/EnsembleBlocks.js:854 +#: js/blocks/EnsembleBlocks.js:915 +#: js/blocks/EnsembleBlocks.js:955 +#: js/blocks/EnsembleBlocks.js:1219 +#: js/blocks/EnsembleBlocks.js:1293 #.TRANS: Yertle is the name of a turtle. msgid "Yertle" msgstr "" -#: js/EnsembleBlocks.js:92 -#: js/EnsembleBlocks.js:1089 +#: js/blocks/EnsembleBlocks.js:92 +#: js/blocks/EnsembleBlocks.js:1089 msgid "turtle name" msgstr "" -#: js/EnsembleBlocks.js:122 -#: js/EnsembleBlocks.js:1197 -#: js/HeapBlocks.js:474 -#: js/HeapBlocks.js:572 +#: js/blocks/EnsembleBlocks.js:122 +#: js/blocks/EnsembleBlocks.js:1197 +#: js/blocks/HeapBlocks.js:474 +#: js/blocks/HeapBlocks.js:572 msgid "Index must be > 0." msgstr "" -#: js/EnsembleBlocks.js:127 -#: js/HeapBlocks.js:479 -#: js/HeapBlocks.js:577 +#: js/blocks/EnsembleBlocks.js:127 +#: js/blocks/HeapBlocks.js:479 +#: js/blocks/HeapBlocks.js:577 msgid "Maximum heap size is 1000." msgstr "" -#: js/EnsembleBlocks.js:145 +#: js/blocks/EnsembleBlocks.js:145 msgid "stop mouse" msgstr "" -#: js/EnsembleBlocks.js:147 +#: js/blocks/EnsembleBlocks.js:147 msgid "The Stop mouse block stops the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:158 +#: js/blocks/EnsembleBlocks.js:158 msgid "stop turtle" msgstr "" -#: js/EnsembleBlocks.js:160 +#: js/blocks/EnsembleBlocks.js:160 msgid "The Stop turtle block stops the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:184 -#: js/EnsembleBlocks.js:247 -#: js/EnsembleBlocks.js:413 -#: js/EnsembleBlocks.js:468 -#: js/EnsembleBlocks.js:706 -#: js/EnsembleBlocks.js:808 -#: js/EnsembleBlocks.js:870 -#: js/EnsembleBlocks.js:1190 -#: js/EnsembleBlocks.js:1253 +#: js/blocks/EnsembleBlocks.js:184 +#: js/blocks/EnsembleBlocks.js:247 +#: js/blocks/EnsembleBlocks.js:413 +#: js/blocks/EnsembleBlocks.js:468 +#: js/blocks/EnsembleBlocks.js:706 +#: js/blocks/EnsembleBlocks.js:808 +#: js/blocks/EnsembleBlocks.js:870 +#: js/blocks/EnsembleBlocks.js:1190 +#: js/blocks/EnsembleBlocks.js:1253 msgid "Cannot find mouse" msgstr "" -#: js/EnsembleBlocks.js:186 -#: js/EnsembleBlocks.js:249 -#: js/EnsembleBlocks.js:415 -#: js/EnsembleBlocks.js:470 -#: js/EnsembleBlocks.js:708 -#: js/EnsembleBlocks.js:810 -#: js/EnsembleBlocks.js:872 -#: js/EnsembleBlocks.js:1192 -#: js/EnsembleBlocks.js:1255 +#: js/blocks/EnsembleBlocks.js:186 +#: js/blocks/EnsembleBlocks.js:249 +#: js/blocks/EnsembleBlocks.js:415 +#: js/blocks/EnsembleBlocks.js:470 +#: js/blocks/EnsembleBlocks.js:708 +#: js/blocks/EnsembleBlocks.js:810 +#: js/blocks/EnsembleBlocks.js:872 +#: js/blocks/EnsembleBlocks.js:1192 +#: js/blocks/EnsembleBlocks.js:1255 msgid "Cannot find turtle" msgstr "" -#: js/EnsembleBlocks.js:206 +#: js/blocks/EnsembleBlocks.js:206 msgid "start mouse" msgstr "" -#: js/EnsembleBlocks.js:209 +#: js/blocks/EnsembleBlocks.js:209 msgid "The Start mouse block starts the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:220 +#: js/blocks/EnsembleBlocks.js:220 msgid "start turtle" msgstr "" -#: js/EnsembleBlocks.js:223 +#: js/blocks/EnsembleBlocks.js:223 msgid "The Start turtle block starts the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:256 +#: js/blocks/EnsembleBlocks.js:256 msgid "Mouse is already running." msgstr "" -#: js/EnsembleBlocks.js:258 +#: js/blocks/EnsembleBlocks.js:258 msgid "Turtle is already running." msgstr "" -#: js/EnsembleBlocks.js:282 +#: js/blocks/EnsembleBlocks.js:282 msgid "Cannot find start block" msgstr "" -#: js/EnsembleBlocks.js:292 +#: js/blocks/EnsembleBlocks.js:292 #.TRANS: pen color for this mouse msgid "mouse color" msgstr "" -#: js/EnsembleBlocks.js:294 +#: js/blocks/EnsembleBlocks.js:294 msgid "The Mouse color block returns the pen color of the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:306 +#: js/blocks/EnsembleBlocks.js:306 #.TRANS: pen color for this turtle msgid "turtle color" msgstr "" -#: js/EnsembleBlocks.js:308 +#: js/blocks/EnsembleBlocks.js:308 msgid "The Turtle color block returns the pen color of the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:338 +#: js/blocks/EnsembleBlocks.js:338 #.TRANS: heading (compass direction) for this mouse msgid "mouse heading" msgstr "" -#: js/EnsembleBlocks.js:340 +#: js/blocks/EnsembleBlocks.js:340 msgid "The Mouse heading block returns the heading of the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:352 +#: js/blocks/EnsembleBlocks.js:352 #.TRANS: heading (compass direction) for this turtle msgid "turtle heading" msgstr "" -#: js/EnsembleBlocks.js:354 +#: js/blocks/EnsembleBlocks.js:354 msgid "The Turtle heading block returns the heading of the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:384 -#: js/EnsembleBlocks.js:439 +#: js/blocks/EnsembleBlocks.js:384 +#: js/blocks/EnsembleBlocks.js:439 #.TRANS: set xy position for this mouse msgid "set mouse" msgstr "" -#: js/EnsembleBlocks.js:391 -#: js/EnsembleBlocks.js:402 -#: js/BoxesBlocks.js:595 -msgid "name1" -msgstr "" - -#: js/EnsembleBlocks.js:391 -#: js/EnsembleBlocks.js:402 -#: js/ProgramBlocks.js:881 -#: js/GraphicsBlocks.js:235 -#: js/GraphicsBlocks.js:313 -#: js/GraphicsBlocks.js:436 -#: js/GraphicsBlocks.js:487 -#: js/GraphicsBlocks.js:534 -#: js/GraphicsBlocks.js:750 +#: js/blocks/EnsembleBlocks.js:391 +#: js/blocks/EnsembleBlocks.js:402 +#: js/blocks/GraphicsBlocks.js:235 +#: js/blocks/GraphicsBlocks.js:313 +#: js/blocks/GraphicsBlocks.js:436 +#: js/blocks/GraphicsBlocks.js:487 +#: js/blocks/GraphicsBlocks.js:534 +#: js/blocks/GraphicsBlocks.js:750 +#: js/blocks/ProgramBlocks.js:881 msgid "x" msgstr "" -#: js/EnsembleBlocks.js:391 -#: js/EnsembleBlocks.js:402 -#: js/ProgramBlocks.js:881 -#: js/GraphicsBlocks.js:149 -#: js/GraphicsBlocks.js:313 -#: js/GraphicsBlocks.js:436 -#: js/GraphicsBlocks.js:487 -#: js/GraphicsBlocks.js:534 -#: js/GraphicsBlocks.js:750 +#: js/blocks/EnsembleBlocks.js:391 +#: js/blocks/EnsembleBlocks.js:402 +#: js/blocks/GraphicsBlocks.js:149 +#: js/blocks/GraphicsBlocks.js:313 +#: js/blocks/GraphicsBlocks.js:436 +#: js/blocks/GraphicsBlocks.js:487 +#: js/blocks/GraphicsBlocks.js:534 +#: js/blocks/GraphicsBlocks.js:750 +#: js/blocks/ProgramBlocks.js:881 msgid "y" msgstr "" -#: js/EnsembleBlocks.js:395 -#: js/EnsembleBlocks.js:452 +#: js/blocks/EnsembleBlocks.js:395 +#: js/blocks/EnsembleBlocks.js:452 #.TRANS: set xy position for this turtle msgid "set turtle" msgstr "" -#: js/EnsembleBlocks.js:433 +#: js/blocks/EnsembleBlocks.js:433 msgid "The Set mouse block sends a stack of blocks to be run by the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:446 +#: js/blocks/EnsembleBlocks.js:446 msgid "The Set turtle block sends a stack of blocks to be run by the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:480 +#: js/blocks/EnsembleBlocks.js:480 #.TRANS: y position for this mouse msgid "mouse y" msgstr "" -#: js/EnsembleBlocks.js:482 +#: js/blocks/EnsembleBlocks.js:482 msgid "The Y mouse block returns the Y position of the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:494 +#: js/blocks/EnsembleBlocks.js:494 #.TRANS: y position for this turtle msgid "turtle y" msgstr "" -#: js/EnsembleBlocks.js:496 +#: js/blocks/EnsembleBlocks.js:496 msgid "The Y turtle block returns the Y position of the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:526 +#: js/blocks/EnsembleBlocks.js:526 #.TRANS: x position for this mouse msgid "mouse x" msgstr "" -#: js/EnsembleBlocks.js:528 +#: js/blocks/EnsembleBlocks.js:528 msgid "The X mouse block returns the X position of the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:540 +#: js/blocks/EnsembleBlocks.js:540 #.TRANS: x position for this turtle msgid "turtle x" msgstr "" -#: js/EnsembleBlocks.js:542 +#: js/blocks/EnsembleBlocks.js:542 msgid "The X turtle block returns the X position of the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:573 +#: js/blocks/EnsembleBlocks.js:573 #.TRANS: notes played by this mouse msgid "mouse notes played" msgstr "" -#: js/EnsembleBlocks.js:575 +#: js/blocks/EnsembleBlocks.js:575 msgid "The Mouse elapse notes block returns the number of notes played by the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:587 +#: js/blocks/EnsembleBlocks.js:587 #.TRANS: notes played by this turtle msgid "turtle notes played" msgstr "" -#: js/EnsembleBlocks.js:589 +#: js/blocks/EnsembleBlocks.js:589 msgid "The Turtle elapse notes block returns the number of notes played by the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:627 +#: js/blocks/EnsembleBlocks.js:627 #.TRANS: convert current note for this turtle to piano key (1-88) msgid "mouse pitch number" msgstr "" -#: js/EnsembleBlocks.js:629 +#: js/blocks/EnsembleBlocks.js:629 msgid "The Mouse pitch block returns the current pitch number being played by the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:641 +#: js/blocks/EnsembleBlocks.js:641 #.TRANS: convert current note for this turtle to piano key (1-88) msgid "turtle pitch number" msgstr "" -#: js/EnsembleBlocks.js:643 -msgid "The Turrle pitch block returns the current pitch number being played by the specified turtle." +#: js/blocks/EnsembleBlocks.js:643 +msgid "The Turtle pitch block returns the current pitch number being played by the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:747 -#: js/EnsembleBlocks.js:819 +#: js/blocks/EnsembleBlocks.js:747 +#: js/blocks/EnsembleBlocks.js:819 #.TRANS: note value is the duration of the note played by this mouse msgid "mouse note value" msgstr "" -#: js/EnsembleBlocks.js:757 +#: js/blocks/EnsembleBlocks.js:757 #.TRANS: note value is the duration of the note played by this turtle msgid "turtle note value" msgstr "" -#: js/EnsembleBlocks.js:830 +#: js/blocks/EnsembleBlocks.js:830 #.TRANS: sync is short for synchronization msgid "mouse sync" msgstr "" -#: js/EnsembleBlocks.js:832 +#: js/blocks/EnsembleBlocks.js:832 msgid "The Mouse sync block aligns the beat count between mice." msgstr "" -#: js/EnsembleBlocks.js:844 +#: js/blocks/EnsembleBlocks.js:844 #.TRANS: sync is short for synchronization msgid "turtle sync" msgstr "" -#: js/EnsembleBlocks.js:846 +#: js/blocks/EnsembleBlocks.js:846 msgid "The Turtle sync block aligns the beat count between turtles." msgstr "" -#: js/EnsembleBlocks.js:887 +#: js/blocks/EnsembleBlocks.js:887 msgid "The Found mouse block will return true if the specified mouse can be found." msgstr "" -#: js/EnsembleBlocks.js:893 +#: js/blocks/EnsembleBlocks.js:893 msgid "found mouse" msgstr "" -#: js/EnsembleBlocks.js:903 +#: js/blocks/EnsembleBlocks.js:903 msgid "The Found turtle block will return true if the specified turtle can be found." msgstr "" -#: js/EnsembleBlocks.js:909 +#: js/blocks/EnsembleBlocks.js:909 msgid "found turtle" msgstr "" -#: js/EnsembleBlocks.js:932 +#: js/blocks/EnsembleBlocks.js:932 msgid "new mouse" msgstr "" -#: js/EnsembleBlocks.js:934 +#: js/blocks/EnsembleBlocks.js:934 msgid "The New mouse block will create a new mouse." msgstr "" -#: js/EnsembleBlocks.js:945 +#: js/blocks/EnsembleBlocks.js:945 msgid "new turtle" msgstr "" -#: js/EnsembleBlocks.js:947 +#: js/blocks/EnsembleBlocks.js:947 msgid "The New turtle block will create a new turtle." msgstr "" -#: js/EnsembleBlocks.js:1011 +#: js/blocks/EnsembleBlocks.js:1011 msgid "set mouse color" msgstr "" -#: js/EnsembleBlocks.js:1014 +#: js/blocks/EnsembleBlocks.js:1014 msgid "The Set-mouse-color block is used to set the color of a mouse." msgstr "" -#: js/EnsembleBlocks.js:1020 +#: js/blocks/EnsembleBlocks.js:1020 msgid "set turtle color" msgstr "" -#: js/EnsembleBlocks.js:1023 +#: js/blocks/EnsembleBlocks.js:1023 msgid "The Set-turtle-color block is used to set the color of a turtle." msgstr "" -#: js/EnsembleBlocks.js:1083 +#: js/blocks/EnsembleBlocks.js:1083 msgid "The Mouse-name block returns the name of a mouse." msgstr "" -#: js/EnsembleBlocks.js:1092 +#: js/blocks/EnsembleBlocks.js:1092 msgid "The Turtle-name block returns the name of a turtle." msgstr "" -#: js/EnsembleBlocks.js:1115 +#: js/blocks/EnsembleBlocks.js:1115 msgid "mouse count" msgstr "" -#: js/EnsembleBlocks.js:1118 +#: js/blocks/EnsembleBlocks.js:1118 msgid "The Mouse-count block returns the number of mice." msgstr "" -#: js/EnsembleBlocks.js:1124 +#: js/blocks/EnsembleBlocks.js:1124 msgid "turtle count" msgstr "" -#: js/EnsembleBlocks.js:1127 +#: js/blocks/EnsembleBlocks.js:1127 msgid "The Turtle-count block returns the number of turtles." msgstr "" -#: js/EnsembleBlocks.js:1149 +#: js/blocks/EnsembleBlocks.js:1149 msgid "nth mouse name" msgstr "" -#: js/EnsembleBlocks.js:1152 +#: js/blocks/EnsembleBlocks.js:1152 msgid "The Nth-Mouse name block returns the name of the nth mouse." msgstr "" -#: js/EnsembleBlocks.js:1158 +#: js/blocks/EnsembleBlocks.js:1158 msgid "nth turtle name" msgstr "" -#: js/EnsembleBlocks.js:1161 +#: js/blocks/EnsembleBlocks.js:1161 msgid "The Nth-Turtle name block returns the name of the nth turtle." msgstr "" -#: js/EnsembleBlocks.js:1205 -#: js/EnsembleBlocks.js:1265 +#: js/blocks/EnsembleBlocks.js:1205 +#: js/blocks/EnsembleBlocks.js:1265 msgid "set name" msgstr "" -#: js/EnsembleBlocks.js:1214 -#: js/EnsembleBlocks.js:1221 +#: js/blocks/EnsembleBlocks.js:1214 +#: js/blocks/EnsembleBlocks.js:1221 msgid "source" msgstr "" -#: js/EnsembleBlocks.js:1214 -#: js/EnsembleBlocks.js:1221 +#: js/blocks/EnsembleBlocks.js:1214 +#: js/blocks/EnsembleBlocks.js:1221 msgid "target" msgstr "" -#: js/EnsembleBlocks.js:1271 +#: js/blocks/EnsembleBlocks.js:1271 msgid "The Set-name block is used to name a mouse." msgstr "" -#: js/EnsembleBlocks.js:1284 +#: js/blocks/EnsembleBlocks.js:1284 msgid "The Set-name block is used to name a turtle." msgstr "" -#: js/BooleanBlocks.js:44 -msgid "The Not block is the logical not operator." -msgstr "" - -#: js/BooleanBlocks.js:62 -msgid "not" -msgstr "" - -#: js/BooleanBlocks.js:134 -msgid "The And block is the logical and operator." -msgstr "" - -#: js/BooleanBlocks.js:152 -msgid "and" -msgstr "" - -#: js/BooleanBlocks.js:218 -msgid "The Or block is the logical or operator." -msgstr "" - -#: js/BooleanBlocks.js:236 -msgid "or" -msgstr "" - -#: js/BooleanBlocks.js:302 -msgid "The XOR block is the logical XOR operator." -msgstr "" - -#: js/BooleanBlocks.js:320 -msgid "xor" -msgstr "" - -#: js/BooleanBlocks.js:808 -msgid "The Equal block returns True if the two numbers are equal." -msgstr "" - -#: js/BooleanBlocks.js:909 -msgid "The Not-equal-to block returns True if the two numbers are not equal to each other." -msgstr "" - -#: js/BooleanBlocks.js:1008 -msgid "The Boolean block is used to specify true or false." -msgstr "" - -#: js/MediaBlocks.js:35 -#.TRANS: right side of the screen -msgid "right (screen)" -msgstr "" - -#: js/MediaBlocks.js:45 -#: js/MediaBlocks.js:56 -msgid "The Right block returns the position of the right of the canvas." -msgstr "" - -#: js/MediaBlocks.js:97 -#.TRANS: left side of the screen -msgid "left (screen)" -msgstr "" - -#: js/MediaBlocks.js:107 -#: js/MediaBlocks.js:118 -msgid "The Left block returns the position of the left of the canvas." -msgstr "" - -#: js/MediaBlocks.js:158 -msgid "top (screen)" -msgstr "" - -#: js/MediaBlocks.js:168 -#: js/MediaBlocks.js:179 -msgid "The Top block returns the position of the top of the canvas." -msgstr "" - -#: js/MediaBlocks.js:219 -msgid "bottom (screen)" +#: js/blocks/ExtrasBlocks.js:33 +msgid "fraction" msgstr "" -#: js/MediaBlocks.js:229 -#: js/MediaBlocks.js:240 -msgid "The Bottom block returns the position of the bottom of the canvas." +#: js/blocks/ExtrasBlocks.js:36 +msgid "Convert a float to a fraction" msgstr "" -#: js/MediaBlocks.js:282 -msgid "width" +#: js/blocks/ExtrasBlocks.js:93 +msgid "save as ABC" msgstr "" -#: js/MediaBlocks.js:291 -msgid "The Width block returns the width of the canvas." +#: js/blocks/ExtrasBlocks.js:96 +#: js/blocks/ExtrasBlocks.js:132 +#: js/blocks/ExtrasBlocks.js:168 +msgid "title" msgstr "" -#: js/MediaBlocks.js:325 -msgid "height" +#: js/blocks/ExtrasBlocks.js:129 +msgid "save as Lilypond" msgstr "" -#: js/MediaBlocks.js:334 -msgid "The Height block returns the height of the canvas." +#: js/blocks/ExtrasBlocks.js:165 +msgid "save as SVG" msgstr "" -#: js/MediaBlocks.js:369 -#.TRANS: stops playback of an audio recording -msgid "stop play" +#: js/blocks/ExtrasBlocks.js:216 +msgid "no background" msgstr "" -#: js/MediaBlocks.js:404 -#.TRANS: Erases the images and text -msgid "erase media" +#: js/blocks/ExtrasBlocks.js:219 +msgid "The No background block eliminates the background from the saved SVG output." msgstr "" -#: js/MediaBlocks.js:409 -msgid "The Erase Media block erases text and images." +#: js/blocks/ExtrasBlocks.js:247 +msgid "show blocks" msgstr "" -#: js/MediaBlocks.js:439 -#.TRANS: play an audio recording -msgid "play back" +#: js/blocks/ExtrasBlocks.js:249 +msgid "The Show blocks block shows the blocks." msgstr "" -#: js/MediaBlocks.js:487 -msgid "speak" +#: js/blocks/ExtrasBlocks.js:274 +msgid "hide blocks" msgstr "" -#: js/MediaBlocks.js:495 -msgid "The Speak block outputs to the text-to-speech synthesizer" +#: js/blocks/ExtrasBlocks.js:276 +msgid "The Hide blocks block hides the blocks." msgstr "" -#: js/MediaBlocks.js:546 -msgid "camera" +#: js/blocks/ExtrasBlocks.js:305 +#: js/blocks/ExtrasBlocks.js:338 +msgid "The Space block is used to add space between blocks." msgstr "" -#: js/MediaBlocks.js:551 -msgid "The Camera block connects a webcam to the Show block." +#: js/blocks/ExtrasBlocks.js:376 +msgid "wait" msgstr "" -#: js/MediaBlocks.js:574 -msgid "video" +#: js/blocks/ExtrasBlocks.js:379 +msgid "The Wait block pauses the program for a specified number of seconds." msgstr "" -#: js/MediaBlocks.js:579 -msgid "The Video block selects video for use with the Show block." +#: js/blocks/ExtrasBlocks.js:433 +#: plugins/facebook.rtp:30 +msgid "comment" msgstr "" -#: js/MediaBlocks.js:607 -msgid "The Open file block opens a file for use with the Show block." +#: js/blocks/ExtrasBlocks.js:469 +msgid "print" msgstr "" -#: js/MediaBlocks.js:645 -msgid "stop media" +#: js/blocks/ExtrasBlocks.js:476 +msgid "The Print block displays text at the top of the screen." msgstr "" -#: js/MediaBlocks.js:650 -msgid "The Stop media block stops audio or video playback." +#: js/blocks/ExtrasBlocks.js:582 +msgid "display grid" msgstr "" -#: js/MediaBlocks.js:679 -#: js/PitchBlocks.js:1539 -#: js/phrasemaker.js:822 -#: js/musickeyboard.js:1654 -#.TRANS: a measure of frequency: one cycle per second -msgid "hertz" +#: js/blocks/ExtrasBlocks.js:587 +msgid "The Display Grid Block changes the grid type" msgstr "" -#: js/MediaBlocks.js:692 -msgid "duration (ms)" +#: js/blocks/ExtrasBlocks.js:689 +#: js/blocks/ExtrasBlocks.js:708 +#: js/blocks/ExtrasBlocks.js:731 +#: js/blocks/ExtrasBlocks.js:754 +#: js/blocks/ExtrasBlocks.js:772 +#: js/blocks/ExtrasBlocks.js:791 +#: js/blocks/ExtrasBlocks.js:810 +#: js/blocks/ExtrasBlocks.js:829 +msgid "unknown" msgstr "" -#: js/MediaBlocks.js:728 -#.TRANS: translate a note into hertz, e.g., A4 -> 440HZ -msgid "note to frequency" +#: js/blocks/FlowBlocks.js:41 +msgid "The Backward block runs code in reverse order (Musical retrograde)." msgstr "" -#: js/MediaBlocks.js:736 -msgid "The To frequency block converts a pitch name and octave to Hertz." +#: js/blocks/FlowBlocks.js:48 +msgid "backward" msgstr "" -#: js/MediaBlocks.js:746 -#: js/PitchBlocks.js:656 -#: js/PitchBlocks.js:932 -#: js/PitchBlocks.js:1827 -#.TRANS: name2 is name as in name of pitch (JAPANESE ONLY) -msgid "name2" +#: js/blocks/FlowBlocks.js:124 +msgid "The Duplicate block will run each block multiple times." msgstr "" -#: js/MediaBlocks.js:812 -msgid "The Avatar block is used to change the appearance of the mouse." +#: js/blocks/FlowBlocks.js:136 +msgid "duplicate" msgstr "" -#: js/MediaBlocks.js:819 -msgid "The Avatar block is used to change the appearance of the turtle." +#: js/blocks/FlowBlocks.js:334 +msgid "The Default block is used inside of a Switch to define the default action." msgstr "" -#: js/MediaBlocks.js:831 -#: js/MediaBlocks.js:891 -#.TRANS: a media object -msgid "size" +#: js/blocks/FlowBlocks.js:342 +msgid "default" msgstr "" -#: js/MediaBlocks.js:831 -msgid "image" +#: js/blocks/FlowBlocks.js:361 +#: js/blocks/FlowBlocks.js:418 +msgid "The Case Block must be used inside of a Switch Block." msgstr "" -#: js/MediaBlocks.js:880 -msgid "The Show block is used to display text or images on the canvas." +#: js/blocks/FlowBlocks.js:389 +msgid "The Case block is used inside of a Switch to define matches." msgstr "" -#: js/MediaBlocks.js:888 -#.TRANS: show1 is show as in display an image or text on the screen. -msgid "show1" +#: js/blocks/FlowBlocks.js:397 +msgid "case" msgstr "" -#: js/MediaBlocks.js:891 -msgid "obj" +#: js/blocks/FlowBlocks.js:446 +msgid "The Switch block will run the code in the matching Case." msgstr "" -#: js/MediaBlocks.js:938 -msgid "The Media block is used to import an image." +#: js/blocks/FlowBlocks.js:454 +msgid "switch" msgstr "" -#: js/MediaBlocks.js:973 -msgid "The Text block holds a text string." +#: js/blocks/FlowBlocks.js:595 +msgid "The Stop block will stop a loop" msgstr "" -#: js/ProgramBlocks.js:33 -msgid "The Load-heap-from-app block loads the heap from a web page." +#: js/blocks/FlowBlocks.js:597 +msgid "Forever, Repeat, While, or Until." msgstr "" -#: js/ProgramBlocks.js:44 -#.TRANS: load the heap contents from a URL -msgid "load heap from App" +#: js/blocks/FlowBlocks.js:604 +#: js/widgets/timbre.js:417 +#: js/widgets/timbre.js:419 +#: js/widgets/musickeyboard.js:819 +#: js/widgets/musickeyboard.js:821 +#: js/widgets/phrasemaker.js:4202 +#: plugins/rodi.rtp:29 +#: plugins/rodi.rtp:73 +#: plugins/rodi.rtp:413 +msgid "stop" msgstr "" -#: js/ProgramBlocks.js:95 -msgid "Error parsing JSON data:" +#: js/blocks/FlowBlocks.js:653 +msgid "The Waitfor block will wait until the condition is true." msgstr "" -#: js/ProgramBlocks.js:100 -msgid "404: Page not found" +#: js/blocks/FlowBlocks.js:661 +msgid "wait for" msgstr "" -#: js/ProgramBlocks.js:133 -msgid "The Save-heap-to-app block saves the heap to a web page." +#: js/blocks/FlowBlocks.js:732 +msgid "The Until block will repeat until the condition is true." msgstr "" -#: js/ProgramBlocks.js:144 -#.TRANS: save the heap contents to a URL -msgid "save heap to App" +#: js/blocks/FlowBlocks.js:740 +msgid "until" msgstr "" -#: js/ProgramBlocks.js:189 -msgid "Cannot find a valid heap for" +#: js/blocks/FlowBlocks.js:742 +#: js/blocks/FlowBlocks.js:822 +msgid "do2" msgstr "" -#: js/ProgramBlocks.js:206 -msgid "The Load-heap block loads the heap from a file." +#: js/blocks/FlowBlocks.js:812 +msgid "The While block will repeat while the condition is true." msgstr "" -#: js/ProgramBlocks.js:217 -#.TRANS: load the heap from a file -msgid "load heap" +#: js/blocks/FlowBlocks.js:820 +msgid "while" msgstr "" -#: js/ProgramBlocks.js:270 -msgid "The file you selected does not contain a valid heap." +#: js/blocks/FlowBlocks.js:903 +#: js/blocks/FlowBlocks.js:968 +#: js/blocks/FlowBlocks.js:979 +msgid "In this example if the mouse button is pressed a snare drum will play." msgstr "" -#: js/ProgramBlocks.js:275 -msgid "The loadHeap block needs a loadFile block." +#: js/blocks/FlowBlocks.js:925 +#: js/blocks/FlowBlocks.js:988 +msgid "if" msgstr "" -#: js/ProgramBlocks.js:291 -msgid "The Set-heap block loads the heap." +#: js/blocks/FlowBlocks.js:927 +#: js/blocks/FlowBlocks.js:990 +msgid "then" msgstr "" -#: js/ProgramBlocks.js:299 -#: js/HeapBlocks.js:539 -#.TRANS: load the heap from a JSON encoding -msgid "set heap" +#: js/blocks/FlowBlocks.js:927 +msgid "else" msgstr "" -#: js/ProgramBlocks.js:340 -msgid "The block you selected does not contain a valid heap." +#: js/blocks/FlowBlocks.js:1025 +msgid "The Forever block will repeat the contained blocks forever." msgstr "" -#: js/ProgramBlocks.js:343 -msgid "The Set heap block needs a heap." +#: js/blocks/FlowBlocks.js:1037 +msgid "forever" msgstr "" -#: js/ProgramBlocks.js:360 -msgid "The Load-dictionary block loads a dictionary from a file." +#: js/blocks/FlowBlocks.js:1073 +msgid "The Repeat block will repeat the contained blocks." msgstr "" -#: js/ProgramBlocks.js:372 -#.TRANS: load a dictionary from a file -msgid "load dictionary" +#: js/blocks/FlowBlocks.js:1075 +msgid "In this example the note will be played 4 times." msgstr "" -#: js/ProgramBlocks.js:390 -#: js/ProgramBlocks.js:658 -#: js/ToneBlocks.js:1025 -msgid "file" +#: js/blocks/FlowBlocks.js:1083 +msgid "repeat" msgstr "" -#: js/ProgramBlocks.js:396 -#: js/ProgramBlocks.js:501 -#: js/ProgramBlocks.js:664 -#: js/DictBlocks.js:80 -#: js/DictBlocks.js:145 -#: js/DictBlocks.js:216 -#: js/DictBlocks.js:290 -msgid "My Dictionary" +#: js/blocks/FlowBlocks.js:1123 +msgid "duplicate factor" msgstr "" -#: js/ProgramBlocks.js:444 -msgid "The file you selected does not contain a valid dictionary." +#: js/blocks/HeapBlocks.js:49 +msgid "The Heap block returns the heap." msgstr "" -#: js/ProgramBlocks.js:449 -msgid "The load dictionary block needs a load file block." +#: js/blocks/HeapBlocks.js:133 +msgid "show heap" msgstr "" -#: js/ProgramBlocks.js:466 -msgid "The Set-dictionary block loads a dictionary." +#: js/blocks/HeapBlocks.js:181 +msgid "The Heap-length block returns the length of the heap." msgstr "" -#: js/ProgramBlocks.js:477 -#.TRANS: load a dictionary from a JSON -msgid "set dictionary" +#: js/blocks/HeapBlocks.js:195 +msgid "heap length" msgstr "" -#: js/ProgramBlocks.js:546 -msgid "The block you selected does not contain a valid dictionary." +#: js/blocks/HeapBlocks.js:254 +msgid "The Heap-empty? block returns true if the heap is empty." msgstr "" -#: js/ProgramBlocks.js:550 -msgid "The set dictionary block needs a dictionary." +#: js/blocks/HeapBlocks.js:268 +#.TRANS: Is the heap empty? +msgid "heap empty?" msgstr "" -#: js/ProgramBlocks.js:567 -msgid "The Save-heap block saves the heap to a file." +#: js/blocks/HeapBlocks.js:317 +msgid "The Empty-heap block empties the heap." msgstr "" -#: js/ProgramBlocks.js:578 -#.TRANS: save the heap to a file -msgid "save heap" +#: js/blocks/HeapBlocks.js:327 +#: js/blocks/HeapBlocks.js:647 +#.TRANS: empty the heap +msgid "empty heap" msgstr "" -#: js/ProgramBlocks.js:629 -msgid "The Save-dictionary block saves a dictionary to a file." +#: js/blocks/HeapBlocks.js:371 +msgid "The Reverse-heap block reverses the order of the heap." msgstr "" -#: js/ProgramBlocks.js:640 -#.TRANS: save a dictionary to a file -msgid "save dictionary" +#: js/blocks/HeapBlocks.js:384 +#.TRANS: reverse the order of the heap +msgid "reverse heap" msgstr "" -#: js/ProgramBlocks.js:720 -msgid "The Open palette block opens a palette." +#: js/blocks/HeapBlocks.js:428 +msgid "The Index-heap block returns a value in the heap at a specified location." msgstr "" -#: js/ProgramBlocks.js:727 -msgid "open palette" +#: js/blocks/HeapBlocks.js:443 +#.TRANS: retrieve a value from the heap at index position in the heap +msgid "index heap" msgstr "" -#: js/ProgramBlocks.js:785 -msgid "The Delete block block removes a block." +#: js/blocks/HeapBlocks.js:523 +msgid "The Set-heap entry block sets a value in he heap at the specified location." msgstr "" -#: js/ProgramBlocks.js:797 -#.TRANS: Move this block to the trash. -msgid "delete block" +#: js/blocks/HeapBlocks.js:539 +#: js/blocks/ProgramBlocks.js:299 +#.TRANS: load the heap from a JSON encoding +msgid "set heap" msgstr "" -#: js/ProgramBlocks.js:861 -msgid "The Move block block moves a block." +#: js/blocks/HeapBlocks.js:619 +msgid "The Pop block removes the value at the top of the heap." msgstr "" -#: js/ProgramBlocks.js:869 -#.TRANS: Move the position of a block on the screen. -msgid "move block" +#: js/blocks/HeapBlocks.js:633 +#.TRANS: pop a value off the top of the heap +msgid "pop" msgstr "" -#: js/ProgramBlocks.js:881 -#: js/ProgramBlocks.js:1048 -msgid "block number" +#: js/blocks/HeapBlocks.js:680 +msgid "The Push block adds a value to the top of the heap." msgstr "" -#: js/ProgramBlocks.js:935 -#.TRANS: Run program beginning at this block. -msgid "run block" +#: js/blocks/HeapBlocks.js:696 +#.TRANS: push a value onto the top of the heap +msgid "push" msgstr "" -#: js/ProgramBlocks.js:1025 -msgid "The Dock block block connections two blocks." +#: js/blocks/IntervalsBlocks.js:45 +msgid "set temperament" msgstr "" -#: js/ProgramBlocks.js:1036 -#.TRANS: We can connect a block to another block. -msgid "connect blocks" +#: js/blocks/IntervalsBlocks.js:63 +#: js/blocks/MediaBlocks.js:746 +#: js/blocks/PitchBlocks.js:657 +#: js/blocks/PitchBlocks.js:935 +#: js/blocks/PitchBlocks.js:974 +#: js/blocks/PitchBlocks.js:1007 +#: js/blocks/PitchBlocks.js:1194 +#: js/blocks/PitchBlocks.js:1717 +#: js/blocks/PitchBlocks.js:1758 +#: js/blocks/PitchBlocks.js:1866 +#: js/blocks/ToneBlocks.js:1025 +#: js/turtleactions/IntervalsActions.js:114 +#.TRANS: adjusts the shift up or down by one octave (twelve half-steps in the interval between two notes, one having twice or half the frequency in Hz of the other.) +msgid "octave" msgstr "" -#: js/ProgramBlocks.js:1048 -msgid "target block" +#: js/blocks/IntervalsBlocks.js:99 +msgid "The Temperament name block is used to select a tuning method." msgstr "" -#: js/ProgramBlocks.js:1048 -msgid "connection number" +#: js/blocks/IntervalsBlocks.js:161 +msgid "doubly" msgstr "" -#: js/ProgramBlocks.js:1140 -msgid "The Make block block creates a new block." +#: js/blocks/IntervalsBlocks.js:166 +msgid "The Doubly block will double the size of an interval." msgstr "" -#: js/ProgramBlocks.js:1152 -#.TRANS: Create a new block -msgid "make block" +#: js/blocks/IntervalsBlocks.js:262 +msgid "interval number" msgstr "" -#: js/ProgramBlocks.js:1186 -#: js/ProgramBlocks.js:1227 -#: js/RhythmBlocks.js:1128 -#: js/PitchBlocks.js:972 -#: js/PitchBlocks.js:1005 -#: js/temperament.js:340 -#: js/temperament.js:362 -#: js/temperament.js:372 -#: js/temperament.js:484 -#: js/status.js:190 -#: plugins/rodi.rtp:192 -#.TRANS: a musical note consisting of pitch and duration -msgid "note" +#: js/blocks/IntervalsBlocks.js:317 +msgid "current interval" msgstr "" -#: js/ProgramBlocks.js:1285 -msgid "Cannot find block" +#: js/blocks/IntervalsBlocks.js:387 +#.TRANS: measure the distance between two pitches in semi-tones +msgid "semi-tone interval measure" msgstr "" -#: js/ProgramBlocks.js:1304 -#: js/ProgramBlocks.js:1313 -msgid "Warning: block argument type mismatch" +#: js/blocks/IntervalsBlocks.js:454 +#: js/blocks/IntervalsBlocks.js:570 +msgid "You must use two pitch blocks when measuring an interval." msgstr "" -#: js/ProgramBlocks.js:1347 -msgid "The Open project block is used to open a project from a web page." +#: js/blocks/IntervalsBlocks.js:496 +msgid "The Scalar interval block measures the distance between two notes in the current key and mode." msgstr "" -#: js/ProgramBlocks.js:1357 -msgid "open project" +#: js/blocks/IntervalsBlocks.js:502 +#.TRANS: measure the distance between two pitches in steps of musical scale +msgid "scalar interval measure" msgstr "" -#: js/ProgramBlocks.js:1410 -msgid "Please enter a valid URL." +#: js/blocks/IntervalsBlocks.js:678 +msgid "In the figure, we add sol# to sol." msgstr "" -#: js/DrumBlocks.js:59 -msgid "The Noise name block is used to select a noise synthesizer." +#: js/blocks/IntervalsBlocks.js:684 +#: js/blocks/OrnamentBlocks.js:220 +#.TRANS: calculate a relative step between notes based on semi-tones +msgid "semi-tone interval" msgstr "" -#: js/DrumBlocks.js:102 -msgid "The Drum name block is used to select a drum." +#: js/blocks/IntervalsBlocks.js:733 +msgid "The output of the example is: do, mi, sol, sol, ti, mi" msgstr "" -#: js/DrumBlocks.js:146 -msgid "The Effects name block is used to select a sound effect." +#: js/blocks/IntervalsBlocks.js:740 +#: js/blocks/WidgetBlocks.js:768 +msgid "arpeggio" msgstr "" -#: js/DrumBlocks.js:163 -msgid "noise" +#: js/blocks/IntervalsBlocks.js:931 +msgid "The Chord block calculates common chords." msgstr "" -#: js/DrumBlocks.js:177 -msgid "The Play noise block will generate white, pink, or brown noise." +#: js/blocks/IntervalsBlocks.js:933 +msgid "In the figure, we generate a C-major chord." msgstr "" -#: js/DrumBlocks.js:191 -#: js/musicutils.js:752 -#: js/synthutils.js:47 -#.TRANS: white noise synthesizer -msgid "white noise" +#: js/blocks/IntervalsBlocks.js:938 +msgid "chord" msgstr "" -#: js/DrumBlocks.js:326 -msgid "Replace every instance of a pitch with a drum sound." +#: js/blocks/IntervalsBlocks.js:990 +msgid "The Ratio Interval block calculates an interval based on a ratio." msgstr "" -#: js/DrumBlocks.js:337 -#.TRANS: map a pitch to a drum sound -msgid "map pitch to drum" +#: js/blocks/IntervalsBlocks.js:995 +msgid "ratio interval" msgstr "" -#: js/DrumBlocks.js:404 -msgid "In the example above, a kick drum sound will be played instead of sol." +#: js/blocks/IntervalsBlocks.js:1064 +msgid "In the figure, we add la to sol." msgstr "" -#: js/DrumBlocks.js:416 -#.TRANS: set the current drum sound for playback -msgid "set drum" +#: js/blocks/IntervalsBlocks.js:1120 +#.TRANS: define a custom mode +msgid "define mode" msgstr "" -#: js/DrumBlocks.js:460 -msgid "sound effect" +#: js/blocks/IntervalsBlocks.js:1173 +msgid "movable Do" msgstr "" -#: js/DrumBlocks.js:498 -msgid "You can use multiple Drum blocks within a Note block." +#: js/blocks/IntervalsBlocks.js:1224 +#.TRANS: mode length is the number of notes in the mode, e.g., 7 for major and minor scales; 12 for chromatic scales +msgid "mode length" msgstr "" -#: js/RhythmBlocks.js:182 -#: js/RhythmBlocks.js:1086 -#: js/RhythmBlocks.js:1162 -msgid "Note value must be greater than 0." +#: js/blocks/IntervalsBlocks.js:1233 +msgid "The Mode length block is the number of notes in the current scale." msgstr "" -#: js/RhythmBlocks.js:215 -#: js/RhythmBlocks.js:278 -#: js/RhythmBlocks.js:350 -#.TRANS: swing is a rhythmic variation that emphasises the offbeat -msgid "swing" +#: js/blocks/IntervalsBlocks.js:1235 +msgid "Most Western scales have 7 notes." msgstr "" -#: js/RhythmBlocks.js:355 -#.TRANS: the amount to shift to the offbeat note -msgid "swing value" +#: js/blocks/IntervalsBlocks.js:1284 +#.TRANS: the mode in music is 'major', 'minor', etc. +msgid "current mode" msgstr "" -#: js/RhythmBlocks.js:419 -msgid "The Skip notes block will cause notes to be skipped." +#: js/blocks/IntervalsBlocks.js:1337 +#.TRANS: the key is a group of pitches with which a music composition is created +msgid "current key" msgstr "" -#: js/RhythmBlocks.js:427 -#.TRANS: substitute rests on notes being skipped -msgid "skip notes" +#: js/blocks/IntervalsBlocks.js:1389 +#: js/blocks/IntervalsBlocks.js:1434 +#.TRANS: set the key and mode, e.g. C Major +msgid "set key" msgstr "" -#: js/RhythmBlocks.js:489 -#.TRANS: speed up note duration by some factor, e.g. convert 1/4 to 1/8 notes by using a factor of 2 -msgid "multiply note value" +#: js/blocks/IntervalsBlocks.js:1443 +#: js/blocks/IntervalsBlocks.js:1449 +msgid "The Set key block is used to set the key and mode," msgstr "" -#: js/RhythmBlocks.js:542 -msgid "The Tie block works on pairs of notes, combining them into one note." +#: js/blocks/IntervalsBlocks.js:1449 +msgid "eg C Major" msgstr "" -#: js/RhythmBlocks.js:550 -#.TRANS: tie notes together into one longer note -msgid "tie" +#: js/blocks/MediaBlocks.js:35 +#.TRANS: right side of the screen +msgid "right (screen)" msgstr "" -#: js/RhythmBlocks.js:591 -#: js/RhythmBlocks.js:671 -#.TRANS: a dotted note is played for 1.5x its value, e.g., 1/8. --> 3/16 -msgid "dot" +#: js/blocks/MediaBlocks.js:45 +#: js/blocks/MediaBlocks.js:56 +msgid "The Right block returns the position of the right of the canvas." msgstr "" -#: js/RhythmBlocks.js:619 -#: js/RhythmActions.js:221 -msgid "An argument of -1 results in a note value of 0." +#: js/blocks/MediaBlocks.js:97 +#.TRANS: left side of the screen +msgid "left (screen)" msgstr "" -#: js/RhythmBlocks.js:661 -msgid "The Dot block extends the duration of a note by 50%." +#: js/blocks/MediaBlocks.js:107 +#: js/blocks/MediaBlocks.js:118 +msgid "The Left block returns the position of the left of the canvas." msgstr "" -#: js/RhythmBlocks.js:663 -msgid "Eg a dotted quarter note will play for 3/8 (1/4 + 1/8) of a beat." +#: js/blocks/MediaBlocks.js:158 +msgid "top (screen)" msgstr "" -#: js/RhythmBlocks.js:765 -#.TRANS: Japanese only: note value block for drum -msgid "note value drum" +#: js/blocks/MediaBlocks.js:168 +#: js/blocks/MediaBlocks.js:179 +msgid "The Top block returns the position of the top of the canvas." msgstr "" -#: js/RhythmBlocks.js:829 -msgid "392 hertz" +#: js/blocks/MediaBlocks.js:219 +msgid "bottom (screen)" msgstr "" -#: js/RhythmBlocks.js:1119 -msgid "The Note block is a container for one or more Pitch blocks." +#: js/blocks/MediaBlocks.js:229 +#: js/blocks/MediaBlocks.js:240 +msgid "The Bottom block returns the position of the bottom of the canvas." msgstr "" -#: js/RhythmBlocks.js:1121 -msgid "The Note block specifies the duration (note value) of its contents." +#: js/blocks/MediaBlocks.js:282 +msgid "width" msgstr "" -#: js/RhythmBlocks.js:1130 -msgid "value2" +#: js/blocks/MediaBlocks.js:291 +msgid "The Width block returns the width of the canvas." msgstr "" -#: js/RhythmBlocks.js:1200 -msgid "define frequency" +#: js/blocks/MediaBlocks.js:325 +msgid "height" msgstr "" -#: js/RhythmBlocks.js:1218 -#: js/temperament.js:650 -#: js/temperament.js:1421 -msgid "octave space" +#: js/blocks/MediaBlocks.js:334 +msgid "The Height block returns the height of the canvas." msgstr "" -#: js/NumberBlocks.js:28 -msgid "The Int block returns an integer." +#: js/blocks/MediaBlocks.js:369 +#.TRANS: stops playback of an audio recording +msgid "stop play" msgstr "" -#: js/NumberBlocks.js:34 -msgid "int" +#: js/blocks/MediaBlocks.js:404 +#.TRANS: Erases the images and text +msgid "erase media" msgstr "" -#: js/NumberBlocks.js:73 -msgid "The Mod block returns the remainder from a division." +#: js/blocks/MediaBlocks.js:409 +msgid "The Erase Media block erases text and images." msgstr "" -#: js/NumberBlocks.js:79 -msgid "mod" +#: js/blocks/MediaBlocks.js:439 +#.TRANS: play an audio recording +msgid "play back" msgstr "" -#: js/NumberBlocks.js:123 -msgid "The Power block calculates a power function." +#: js/blocks/MediaBlocks.js:487 +msgid "speak" msgstr "" -#: js/NumberBlocks.js:178 -msgid "The Sqrt block returns the square root." +#: js/blocks/MediaBlocks.js:495 +msgid "The Speak block outputs to the text-to-speech synthesizer" msgstr "" -#: js/NumberBlocks.js:184 -msgid "sqrt" +#: js/blocks/MediaBlocks.js:546 +msgid "camera" msgstr "" -#: js/NumberBlocks.js:230 -msgid "The Abs block returns the absolute value." +#: js/blocks/MediaBlocks.js:551 +msgid "The Camera block connects a webcam to the Show block." msgstr "" -#: js/NumberBlocks.js:236 -msgid "abs" +#: js/blocks/MediaBlocks.js:574 +msgid "video" msgstr "" -#: js/NumberBlocks.js:277 -msgid "The Distance block returns the distance between two points. For example, between the mouse and the center of the screen." +#: js/blocks/MediaBlocks.js:579 +msgid "The Video block selects video for use with the Show block." msgstr "" -#: js/NumberBlocks.js:283 -#: plugins/rodi.rtp:310 -msgid "distance" +#: js/blocks/MediaBlocks.js:607 +msgid "The Open file block opens a file for use with the Show block." msgstr "" -#: js/NumberBlocks.js:343 -msgid "The Divide block is used to divide." +#: js/blocks/MediaBlocks.js:645 +msgid "stop media" msgstr "" -#: js/NumberBlocks.js:411 -msgid "The Multiply block is used to multiply." +#: js/blocks/MediaBlocks.js:650 +msgid "The Stop media block stops audio or video playback." msgstr "" -#: js/NumberBlocks.js:554 -msgid "The Minus block is used to subtract." +#: js/blocks/MediaBlocks.js:679 +#: js/blocks/PitchBlocks.js:1577 +#: js/widgets/musickeyboard.js:1936 +#: js/widgets/phrasemaker.js:1037 +#.TRANS: a measure of frequency: one cycle per second +msgid "hertz" msgstr "" -#: js/NumberBlocks.js:647 -msgid "The Plus block is used to add." +#: js/blocks/MediaBlocks.js:692 +#: js/blocks/WidgetBlocks.js:182 +#: js/widgets/temperament.js:506 +#: js/widgets/temperament.js:546 +#: js/widgets/temperament.js:610 +#: js/widgets/temperament.js:618 +#: js/widgets/temperament.js:1505 +#: js/widgets/timbre.js:1842 +msgid "frequency" msgstr "" -#: js/NumberBlocks.js:773 -msgid "The One-of block returns one of two choices." +#: js/blocks/MediaBlocks.js:692 +msgid "duration (ms)" msgstr "" -#: js/NumberBlocks.js:780 -#: js/PitchBlocks.js:616 -msgid "one of" +#: js/blocks/MediaBlocks.js:728 +#.TRANS: translate a note into hertz, e.g., A4 -> 440HZ +msgid "note to frequency" msgstr "" -#: js/NumberBlocks.js:782 -msgid "this" +#: js/blocks/MediaBlocks.js:736 +msgid "The To frequency block converts a pitch name and octave to Hertz." msgstr "" -#: js/NumberBlocks.js:782 -msgid "that" +#: js/blocks/MediaBlocks.js:746 +#: js/blocks/PitchBlocks.js:656 +#: js/blocks/PitchBlocks.js:934 +#: js/blocks/PitchBlocks.js:1866 +#.TRANS: name2 is name as in name of pitch (JAPANESE ONLY) +msgid "name2" msgstr "" -#: js/NumberBlocks.js:837 -msgid "The Random block returns a random number." +#: js/blocks/MediaBlocks.js:812 +msgid "The Avatar block is used to change the appearance of the mouse." msgstr "" -#: js/NumberBlocks.js:844 -msgid "random" +#: js/blocks/MediaBlocks.js:819 +msgid "The Avatar block is used to change the appearance of the turtle." msgstr "" -#: js/NumberBlocks.js:846 -msgid "min" +#: js/blocks/MediaBlocks.js:831 +#: js/blocks/MediaBlocks.js:891 +#.TRANS: a media object +msgid "size" msgstr "" -#: js/NumberBlocks.js:846 -msgid "max" +#: js/blocks/MediaBlocks.js:831 +msgid "image" msgstr "" -#: js/NumberBlocks.js:910 -msgid "The Number block holds a number." +#: js/blocks/MediaBlocks.js:880 +msgid "The Show block is used to display text or images on the canvas." msgstr "" -#: js/BoxesBlocks.js:53 -#: js/BoxesBlocks.js:59 -msgid "The Add-to block is used to add to the value stored in a box." +#: js/blocks/MediaBlocks.js:888 +#.TRANS: show1 is show as in display an image or text on the screen. +msgid "show1" msgstr "" -#: js/BoxesBlocks.js:61 -msgid "It can also be used with other blocks such as Color and Pen size." +#: js/blocks/MediaBlocks.js:891 +msgid "obj" msgstr "" -#: js/BoxesBlocks.js:73 -msgid "add" +#: js/blocks/MediaBlocks.js:938 +msgid "The Media block is used to import an image." msgstr "" -#: js/BoxesBlocks.js:75 -#: js/temperament.js:716 -msgid "to" +#: js/blocks/MediaBlocks.js:973 +msgid "The Text block holds a text string." msgstr "" -#: js/BoxesBlocks.js:75 -#: js/BoxesBlocks.js:595 -#: js/HeapBlocks.js:544 -msgid "value1" +#: js/blocks/MeterBlocks.js:34 +#.TRANS: musical meter (time signature), e.g., 4:4 +msgid "current meter" msgstr "" -#: js/BoxesBlocks.js:118 -msgid "Block does not support incrementing." +#: js/blocks/MeterBlocks.js:85 +#.TRANS: number of beats per minute +msgid "beat factor" msgstr "" -#: js/BoxesBlocks.js:152 -msgid "The Add-1-to block adds one to the value stored in a box." +#: js/blocks/MeterBlocks.js:161 +msgid "The Beats per minute block returns the current beats per minute." msgstr "" -#: js/BoxesBlocks.js:163 -msgid "add 1 to" +#: js/blocks/MeterBlocks.js:169 +#: js/widgets/status.js:152 +#.TRANS: number of beats played per minute +msgid "beats per minute2" msgstr "" -#: js/BoxesBlocks.js:211 -msgid "The Subtract-1-from block subtracts one from the value stored in a box." +#: js/blocks/MeterBlocks.js:169 +#: js/blocks/MeterBlocks.js:1056 +#: js/blocks/MeterBlocks.js:1133 +#: js/blocks/MeterBlocks.js:1211 +#.TRANS: sets tempo by defining a beat and beats per minute +msgid "beats per minute" msgstr "" -#: js/BoxesBlocks.js:222 -msgid "subtract 1 from" +#: js/blocks/MeterBlocks.js:233 +#.TRANS: count of current musical measure in meter +msgid "measure count" msgstr "" -#: js/BoxesBlocks.js:270 -#: js/BoxesBlocks.js:387 -msgid "The Box block returns the value stored in a box." +#: js/blocks/MeterBlocks.js:241 +msgid "The Measure count block returns the current measure." msgstr "" -#: js/BoxesBlocks.js:500 -#: js/BoxesBlocks.js:576 -msgid "The Store in block will store a value in a box." +#: js/blocks/MeterBlocks.js:290 +#.TRANS: count of current beat in the meter +msgid "beat count" msgstr "" -#: js/BoxesBlocks.js:652 -msgid "The Box2 block returns the value stored in Box2." +#: js/blocks/MeterBlocks.js:300 +#: js/blocks/MeterBlocks.js:311 +#: js/blocks/MeterBlocks.js:565 +#: js/blocks/MeterBlocks.js:576 +msgid "The Beat count block is the number of the current beat," msgstr "" -#: js/BoxesBlocks.js:703 -msgid "The Store in Box2 block is used to store a value in Box2." +#: js/blocks/MeterBlocks.js:313 +#: js/blocks/MeterBlocks.js:578 +msgid "eg 1, 2, 3, or 4." msgstr "" -#: js/BoxesBlocks.js:715 -msgid "store in box2" +#: js/blocks/MeterBlocks.js:368 +#.TRANS: count the number of notes +msgid "sum note values" msgstr "" -#: js/BoxesBlocks.js:761 -msgid "The Box1 block returns the value stored in Box1." +#: js/blocks/MeterBlocks.js:376 +#: js/blocks/MeterBlocks.js:440 +msgid "The Note counter block can be used to count the number of contained notes." msgstr "" -#: js/BoxesBlocks.js:812 -msgid "The Store in Box1 block is used to store a value in Box1." +#: js/blocks/MeterBlocks.js:432 +#.TRANS: count the number of notes +msgid "note counter" msgstr "" -#: js/BoxesBlocks.js:826 -msgid "store in box1" +#: js/blocks/MeterBlocks.js:496 +#.TRANS: number of whole notes that have been played +msgid "whole notes played" msgstr "" -#: js/HeapBlocks.js:49 -msgid "The Heap block returns the heap." +#: js/blocks/MeterBlocks.js:505 +msgid "The Whole notes played block returns the total number of whole notes played." msgstr "" -#: js/HeapBlocks.js:133 -msgid "show heap" +#: js/blocks/MeterBlocks.js:555 +#: js/turtleactions/DictActions.js:83 +#.TRANS: number of notes that have been played +msgid "notes played" msgstr "" -#: js/HeapBlocks.js:181 -msgid "The Heap-length block returns the length of the heap." +#: js/blocks/MeterBlocks.js:653 +msgid "The No clock block decouples the notes from the master clock." msgstr "" -#: js/HeapBlocks.js:195 -msgid "heap length" +#: js/blocks/MeterBlocks.js:661 +#.TRANS: don't lock notes to master clock +msgid "no clock" msgstr "" -#: js/HeapBlocks.js:254 -msgid "The Heap-empty? block returns true if the heap is empty." +#: js/blocks/MeterBlocks.js:700 +msgid "on weak beat do" msgstr "" -#: js/HeapBlocks.js:268 -#.TRANS: Is the heap empty? -msgid "heap empty?" +#: js/blocks/MeterBlocks.js:705 +msgid "The On-weak-beat block lets you specify actions to take on weak (off) beats." msgstr "" -#: js/HeapBlocks.js:317 -msgid "The Empty-heap block empties the heap." +#: js/blocks/MeterBlocks.js:750 +msgid "on strong beat" msgstr "" -#: js/HeapBlocks.js:327 -#: js/HeapBlocks.js:647 -#.TRANS: empty the heap -msgid "empty heap" +#: js/blocks/MeterBlocks.js:758 +msgid "The On-strong-beat block lets you specify actions to take on specified beats." msgstr "" -#: js/HeapBlocks.js:371 -msgid "The Reverse-heap block reverses the order of the heap." +#: js/blocks/MeterBlocks.js:769 +msgid "beat" msgstr "" -#: js/HeapBlocks.js:384 -#.TRANS: reverse the order of the heap -msgid "reverse heap" +#: js/blocks/MeterBlocks.js:813 +msgid "on every beat do" msgstr "" -#: js/HeapBlocks.js:428 -msgid "The Index-heap block returns a value in the heap at a specified location." +#: js/blocks/MeterBlocks.js:821 +msgid "The On-every-beat block lets you specify actions to take on every beat." msgstr "" -#: js/HeapBlocks.js:443 -#.TRANS: retrieve a value from the heap at index position in the heap -msgid "index heap" +#: js/blocks/MeterBlocks.js:874 +msgid "on every note do" msgstr "" -#: js/HeapBlocks.js:523 -msgid "The Set-heap entry block sets a value in he heap at the specified location." +#: js/blocks/MeterBlocks.js:882 +msgid "The On-every-note block lets you specify actions to take on every note." msgstr "" -#: js/HeapBlocks.js:619 -msgid "The Pop block removes the value at the top of the heap." +#: js/blocks/MeterBlocks.js:928 +#: js/blocks/MeterBlocks.js:999 +#.TRANS: sets tempo by defining a beat and beats per minute +msgid "master beats per minute" msgstr "" -#: js/HeapBlocks.js:633 -#.TRANS: pop a value off the top of the heap -msgid "pop" +#: js/blocks/MeterBlocks.js:952 +#: js/blocks/MeterBlocks.js:1078 +#: js/blocks/MeterBlocks.js:1135 +msgid "bpm" msgstr "" -#: js/HeapBlocks.js:680 -msgid "The Push block adds a value to the top of the heap." +#: js/blocks/MeterBlocks.js:952 +#: js/blocks/MeterBlocks.js:1078 +#: js/blocks/MeterBlocks.js:1135 +msgid "beat value" msgstr "" -#: js/HeapBlocks.js:696 -#.TRANS: push a value onto the top of the heap -msgid "push" +#: js/blocks/MeterBlocks.js:1024 +#: js/blocks/MeterBlocks.js:1167 +#: js/blocks/MeterBlocks.js:1241 +msgid "Beats per minute must be > 30." msgstr "" -#: js/FlowBlocks.js:41 -msgid "The Backward block runs code in reverse order (Musical retrograde)." +#: js/blocks/MeterBlocks.js:1027 +#: js/blocks/MeterBlocks.js:1170 +#: js/blocks/MeterBlocks.js:1244 +msgid "Maximum beats per minute is 1000." msgstr "" -#: js/FlowBlocks.js:48 -msgid "backward" +#: js/blocks/MeterBlocks.js:1068 +msgid "The Beats per minute block sets the number of 1/4 notes per minute." msgstr "" -#: js/FlowBlocks.js:124 -msgid "The Duplicate block will run each block multiple times." +#: js/blocks/MeterBlocks.js:1279 +#.TRANS: anacrusis +msgid "pickup" msgstr "" -#: js/FlowBlocks.js:136 -msgid "duplicate" +#: js/blocks/MeterBlocks.js:1367 +msgid "number of beats" msgstr "" -#: js/FlowBlocks.js:334 -msgid "The Default block is used inside of a Switch to define the default action." +#: js/blocks/NumberBlocks.js:28 +msgid "The Int block returns an integer." msgstr "" -#: js/FlowBlocks.js:342 -msgid "default" +#: js/blocks/NumberBlocks.js:34 +msgid "int" msgstr "" -#: js/FlowBlocks.js:361 -#: js/FlowBlocks.js:418 -msgid "The Case Block must be used inside of a Switch Block." +#: js/blocks/NumberBlocks.js:73 +msgid "The Mod block returns the remainder from a division." msgstr "" -#: js/FlowBlocks.js:389 -msgid "The Case block is used inside of a Switch to define matches." +#: js/blocks/NumberBlocks.js:79 +msgid "mod" msgstr "" -#: js/FlowBlocks.js:397 -msgid "case" +#: js/blocks/NumberBlocks.js:141 +msgid "The Power block calculates a power function." msgstr "" -#: js/FlowBlocks.js:446 -msgid "The Switch block will run the code in the matching Case." +#: js/blocks/NumberBlocks.js:196 +msgid "The Sqrt block returns the square root." msgstr "" -#: js/FlowBlocks.js:454 -msgid "switch" +#: js/blocks/NumberBlocks.js:202 +msgid "sqrt" msgstr "" -#: js/FlowBlocks.js:595 -msgid "The Stop block will stop a loop" +#: js/blocks/NumberBlocks.js:248 +msgid "The Abs block returns the absolute value." msgstr "" -#: js/FlowBlocks.js:597 -msgid "Forever, Repeat, While, or Until." +#: js/blocks/NumberBlocks.js:254 +msgid "abs" msgstr "" -#: js/FlowBlocks.js:604 -#: js/phrasemaker.js:3799 -#: js/musickeyboard.js:629 -#: js/musickeyboard.js:631 -#: js/timbre.js:417 -#: js/timbre.js:419 -#: plugins/rodi.rtp:29 -#: plugins/rodi.rtp:73 -#: plugins/rodi.rtp:413 -msgid "stop" +#: js/blocks/NumberBlocks.js:295 +msgid "The Distance block returns the distance between two points. For example, between the mouse and the center of the screen." msgstr "" -#: js/FlowBlocks.js:653 -msgid "The Waitfor block will wait until the condition is true." +#: js/blocks/NumberBlocks.js:301 +#: plugins/rodi.rtp:310 +msgid "distance" msgstr "" -#: js/FlowBlocks.js:661 -msgid "wait for" +#: js/blocks/NumberBlocks.js:361 +msgid "The Divide block is used to divide." msgstr "" -#: js/FlowBlocks.js:732 -msgid "The Until block will repeat until the condition is true." +#: js/blocks/NumberBlocks.js:441 +msgid "The Multiply block is used to multiply." msgstr "" -#: js/FlowBlocks.js:740 -msgid "until" +#: js/blocks/NumberBlocks.js:612 +msgid "The Minus block is used to subtract." msgstr "" -#: js/FlowBlocks.js:742 -#: js/FlowBlocks.js:822 -msgid "do2" +#: js/blocks/NumberBlocks.js:723 +msgid "The Plus block is used to add." msgstr "" -#: js/FlowBlocks.js:812 -msgid "The While block will repeat while the condition is true." +#: js/blocks/NumberBlocks.js:849 +msgid "The One-of block returns one of two choices." msgstr "" -#: js/FlowBlocks.js:820 -msgid "while" +#: js/blocks/NumberBlocks.js:856 +#: js/blocks/PitchBlocks.js:616 +msgid "one of" msgstr "" -#: js/FlowBlocks.js:903 -#: js/FlowBlocks.js:968 -#: js/FlowBlocks.js:979 -msgid "In this example if the mouse button is pressed a snare drum will play." +#: js/blocks/NumberBlocks.js:858 +msgid "this" msgstr "" -#: js/FlowBlocks.js:925 -#: js/FlowBlocks.js:988 -msgid "if" +#: js/blocks/NumberBlocks.js:858 +msgid "that" msgstr "" -#: js/FlowBlocks.js:927 -#: js/FlowBlocks.js:990 -msgid "then" +#: js/blocks/NumberBlocks.js:913 +msgid "The Random block returns a random number." msgstr "" -#: js/FlowBlocks.js:927 -msgid "else" +#: js/blocks/NumberBlocks.js:920 +msgid "random" msgstr "" -#: js/FlowBlocks.js:1025 -msgid "The Forever block will repeat the contained blocks forever." +#: js/blocks/NumberBlocks.js:922 +msgid "min" msgstr "" -#: js/FlowBlocks.js:1037 -msgid "forever" +#: js/blocks/NumberBlocks.js:922 +msgid "max" msgstr "" -#: js/FlowBlocks.js:1073 -msgid "The Repeat block will repeat the contained blocks." +#: js/blocks/NumberBlocks.js:986 +msgid "The Number block holds a number." msgstr "" -#: js/FlowBlocks.js:1075 -msgid "In this example the note will be played 4 times." +#: js/blocks/OrnamentBlocks.js:32 +msgid "staccato factor" msgstr "" -#: js/FlowBlocks.js:1083 -msgid "repeat" +#: js/blocks/OrnamentBlocks.js:108 +msgid "slur factor" msgstr "" -#: js/FlowBlocks.js:1123 -msgid "duplicate factor" +#: js/blocks/OrnamentBlocks.js:217 +#: js/blocks/OrnamentBlocks.js:309 +#.TRANS: the neighbor refers to a neighboring note, e.g., D is a neighbor of C +msgid "neighbor" msgstr "" -#: js/PitchBlocks.js:39 -#: js/musicutils.js:722 -#: js/musicutils.js:1117 -#: js/synthutils.js:112 -#.TRANS: square wave -msgid "square" +#: js/blocks/OrnamentBlocks.js:293 +msgid "The Neighbor block rapidly switches between neighboring pitches." msgstr "" -#: js/PitchBlocks.js:62 -#: js/ToneBlocks.js:39 -#: js/musicutils.js:723 -#: js/musicutils.js:1118 -#: js/synthutils.js:116 -#.TRANS: triangle wave -msgid "triangle" +#: js/blocks/OrnamentBlocks.js:364 +msgid "glide" msgstr "" -#: js/PitchBlocks.js:85 -#: js/musicutils.js:721 -#: js/musicutils.js:1116 -#: js/synthutils.js:110 -#.TRANS: sine wave -msgid "sine" +#: js/blocks/OrnamentBlocks.js:479 +#: js/blocks/OrnamentBlocks.js:643 +msgid "slur" msgstr "" -#: js/PitchBlocks.js:108 -#: js/musicutils.js:724 -#: js/musicutils.js:1119 -#: js/synthutils.js:114 -#.TRANS: sawtooth wave -msgid "sawtooth" +#: js/blocks/OrnamentBlocks.js:558 +#: js/blocks/OrnamentBlocks.js:710 +#.TRANS: play each note sharply detached from the others +msgid "staccato" msgstr "" -#: js/PitchBlocks.js:141 -#.TRANS: musical transposition (adjustment of pitch up or down) -msgid "transposition" +#: js/blocks/RhythmBlocks.js:182 +#: js/blocks/RhythmBlocks.js:1086 +#: js/blocks/RhythmBlocks.js:1162 +msgid "Note value must be greater than 0." msgstr "" -#: js/PitchBlocks.js:168 -#.TRANS: step down one note in current musical scale -msgid "scalar step down" +#: js/blocks/RhythmBlocks.js:215 +#: js/blocks/RhythmBlocks.js:278 +#: js/blocks/RhythmBlocks.js:350 +#.TRANS: swing is a rhythmic variation that emphasises the offbeat +msgid "swing" msgstr "" -#: js/PitchBlocks.js:172 -msgid "The Scalar step down block returns the number of semi-tones down to the previous note in the current key and mode." +#: js/blocks/RhythmBlocks.js:355 +#.TRANS: the amount to shift to the offbeat note +msgid "swing value" msgstr "" -#: js/PitchBlocks.js:190 -#.TRANS: step up one note in current musical scale -msgid "scalar step up" +#: js/blocks/RhythmBlocks.js:419 +msgid "The Skip notes block will cause notes to be skipped." msgstr "" -#: js/PitchBlocks.js:194 -msgid "The Scalar step up block returns the number of semi-tones up to the next note in the current key and mode." +#: js/blocks/RhythmBlocks.js:427 +#.TRANS: substitute rests on notes being skipped +msgid "skip notes" msgstr "" -#: js/PitchBlocks.js:212 -#.TRANS: the change measured in half-steps between the current pitch and the previous pitch -msgid "change in pitch" +#: js/blocks/RhythmBlocks.js:489 +#.TRANS: speed up note duration by some factor, e.g. convert 1/4 to 1/8 notes by using a factor of 2 +msgid "multiply note value" msgstr "" -#: js/PitchBlocks.js:216 -msgid "The Change in pitch block is the difference (in half steps) between the current pitch being played and the previous pitch played." +#: js/blocks/RhythmBlocks.js:542 +msgid "The Tie block works on pairs of notes, combining them into one note." msgstr "" -#: js/PitchBlocks.js:243 -#.TRANS: the change measured in scale-steps between the current pitch and the previous pitch -msgid "scalar change in pitch" +#: js/blocks/RhythmBlocks.js:550 +#.TRANS: tie notes together into one longer note +msgid "tie" msgstr "" -#: js/PitchBlocks.js:250 -#: js/PitchBlocks.js:432 -#: js/PitchBlocks.js:1629 -#: js/DictActions.js:89 -#: js/temperament.js:477 -#: js/temperament.js:481 -#: js/temperament.js:714 -#.TRANS: convert current note to piano key (1-88) -#.TRANS: a mapping of pitch to the 88 piano keys -msgid "pitch number" +#: js/blocks/RhythmBlocks.js:591 +#: js/blocks/RhythmBlocks.js:671 +#.TRANS: a dotted note is played for 1.5x its value, e.g., 1/8. --> 3/16 +msgid "dot" msgstr "" -#: js/PitchBlocks.js:256 -msgid "The Pitch number block is the value of the pitch of the note currently being played." +#: js/blocks/RhythmBlocks.js:619 +#: js/turtleactions/RhythmActions.js:221 +msgid "An argument of -1 results in a note value of 0." msgstr "" -#: js/PitchBlocks.js:329 -#: js/PitchBlocks.js:433 -#.TRANS: the current pitch expressed in Hertz -msgid "pitch in hertz" +#: js/blocks/RhythmBlocks.js:661 +msgid "The Dot block extends the duration of a note by 50%." msgstr "" -#: js/PitchBlocks.js:334 -msgid "The Pitch in Hertz block is the value in Hertz of the pitch of the note currently being played." +#: js/blocks/RhythmBlocks.js:663 +msgid "Eg a dotted quarter note will play for 3/8 (1/4 + 1/8) of a beat." msgstr "" -#: js/PitchBlocks.js:367 -#: js/DictActions.js:87 -msgid "current pitch" +#: js/blocks/RhythmBlocks.js:765 +#.TRANS: Japanese only: note value block for drum +msgid "note value drum" msgstr "" -#: js/PitchBlocks.js:373 -msgid "The Current Pitch block is used with the Pitch Converter block. In the example above, current pitch, sol 4, is displayed as 392 hertz." +#: js/blocks/RhythmBlocks.js:829 +msgid "392 hertz" msgstr "" -#: js/PitchBlocks.js:410 -msgid "This block converts the pitch value of the last note played into different formats such as hertz, letter name, pitch number, et al." +#: js/blocks/RhythmBlocks.js:1119 +msgid "The Note block is a container for one or more Pitch blocks." msgstr "" -#: js/PitchBlocks.js:434 -msgid "alphabet" +#: js/blocks/RhythmBlocks.js:1121 +msgid "The Note block specifies the duration (note value) of its contents." msgstr "" -#: js/PitchBlocks.js:436 -#.TRANS: Translate as "alphabet class" -msgid "letter class" +#: js/blocks/RhythmBlocks.js:1128 +#: js/blocks/PitchBlocks.js:974 +#: js/blocks/PitchBlocks.js:1007 +#: js/blocks/ProgramBlocks.js:1186 +#: js/blocks/ProgramBlocks.js:1227 +#: js/widgets/status.js:190 +#: js/widgets/temperament.js:464 +#: js/widgets/temperament.js:486 +#: js/widgets/temperament.js:496 +#: js/widgets/temperament.js:617 +#: plugins/rodi.rtp:192 +#.TRANS: a musical note consisting of pitch and duration +msgid "note" msgstr "" -#: js/PitchBlocks.js:437 -msgid "solfege class" +#: js/blocks/RhythmBlocks.js:1130 +msgid "value2" msgstr "" -#: js/PitchBlocks.js:438 -msgid "staff y" +#: js/blocks/RhythmBlocks.js:1200 +msgid "define frequency" msgstr "" -#: js/PitchBlocks.js:439 -msgid "solfege syllable" +#: js/blocks/RhythmBlocks.js:1218 +#: js/widgets/temperament.js:787 +#: js/widgets/temperament.js:1587 +msgid "octave space" msgstr "" -#: js/PitchBlocks.js:440 -msgid "pitch class" +#: js/blocks/SensorsBlocks.js:36 +msgid "The Input block prompts for keyboard input." msgstr "" -#: js/PitchBlocks.js:441 -msgid "scalar class" +#: js/blocks/SensorsBlocks.js:46 +msgid "input" msgstr "" -#: js/PitchBlocks.js:443 -msgid "nth degree" +#: js/blocks/SensorsBlocks.js:64 +msgid "Input a value" msgstr "" -#: js/PitchBlocks.js:444 -msgid "pitch to shade" +#: js/blocks/SensorsBlocks.js:126 +msgid "input value" msgstr "" -#: js/PitchBlocks.js:445 -msgid "pitch to color" +#: js/blocks/SensorsBlocks.js:131 +msgid "The Input-value block stores the input." msgstr "" -#: js/PitchBlocks.js:629 -#: js/musickeyboard.js:565 -#.TRANS: MIDI is a technical standard for electronic music -msgid "MIDI" +#: js/blocks/SensorsBlocks.js:238 +msgid "loudness" msgstr "" -#: js/PitchBlocks.js:642 -#.TRANS: set an offset associated with the numeric piano keyboard mapping -msgid "set pitch number offset" +#: js/blocks/SensorsBlocks.js:245 +msgid "The Loudness block returns the volume detected by the microphone." msgstr "" -#: js/PitchBlocks.js:645 -msgid "The Set pitch number offset block is used to set the offset for mapping pitch numbers to pitch and octave." +#: js/blocks/SensorsBlocks.js:300 +msgid "click" msgstr "" -#: js/PitchBlocks.js:679 -#.TRANS: convert piano key number (1-88) to pitch -msgid "number to pitch" +#: js/blocks/SensorsBlocks.js:306 +msgid "The Click block triggers an event if a mouse has been clicked." msgstr "" -#: js/PitchBlocks.js:682 -msgid "The Number to pitch block will convert a pitch number to a pich name." +#: js/blocks/SensorsBlocks.js:313 +msgid "The Click block triggers an event if a turtle has been clicked." msgstr "" -#: js/PitchBlocks.js:715 -#.TRANS: convert piano key number (1-88) to octave -msgid "number to octave" +#: js/blocks/SensorsBlocks.js:342 +msgid "cursor over" msgstr "" -#: js/PitchBlocks.js:717 -msgid "The Number to octave block will convert a pitch number to an octave." +#: js/blocks/SensorsBlocks.js:387 +msgid "cursor out" msgstr "" -#: js/PitchBlocks.js:726 -msgid "y to pitch" +#: js/blocks/SensorsBlocks.js:433 +msgid "cursor button down" msgstr "" -#: js/PitchBlocks.js:729 -msgid "Y to pitch block will convert a staff y position to corresponding pitch notation." +#: js/blocks/SensorsBlocks.js:477 +msgid "cursor button up" msgstr "" -#: js/PitchBlocks.js:841 -msgid "accidental selector" +#: js/blocks/SensorsBlocks.js:521 +#: js/blocks/PenBlocks.js:48 +#: plugins/rodi.rtp:219 +msgid "blue" msgstr "" -#: js/PitchBlocks.js:844 -msgid "The Accidental selector block is used to choose between double-sharp, sharp, natural, flat, and double-flat." +#: js/blocks/SensorsBlocks.js:577 +#: js/blocks/PenBlocks.js:64 +#: plugins/rodi.rtp:218 +msgid "green" msgstr "" -#: js/PitchBlocks.js:858 -msgid "Pitch can be specified in terms of ni dha pa ma ga re sa." +#: js/blocks/SensorsBlocks.js:633 +#: js/blocks/PenBlocks.js:112 +#: plugins/rodi.rtp:217 +msgid "red" msgstr "" -#: js/PitchBlocks.js:872 -msgid "Pitch can be specified in terms of C D E F G A B." +#: js/blocks/SensorsBlocks.js:638 +msgid "The Get red block returns the red component of the pixel under the mouse." msgstr "" -#: js/PitchBlocks.js:883 -msgid "solfege" +#: js/blocks/SensorsBlocks.js:644 +msgid "The Get red block returns the red component of the pixel under the turtle." msgstr "" -#: js/PitchBlocks.js:886 -msgid "Pitch can be specified in terms of do re mi fa sol la ti." +#: js/blocks/SensorsBlocks.js:685 +#: plugins/rodi.rtp:216 +msgid "pixel color" msgstr "" -#: js/PitchBlocks.js:920 -msgid "The Invert block rotates any contained notes around a target note." +#: js/blocks/SensorsBlocks.js:690 +msgid "The Get pixel block returns the color of the pixel under the mouse." msgstr "" -#: js/PitchBlocks.js:927 -#.TRANS: pitch inversion rotates a pitch around another pitch -msgid "invert" +#: js/blocks/SensorsBlocks.js:696 +msgid "The Get pixel block returns the color of the pixel under the turtle." msgstr "" -#: js/PitchBlocks.js:929 -#: js/PitchBlocks.js:935 -#: js/PitchActions.js:727 -#: js/musicutils.js:726 -#: js/musicutils.js:902 -#.TRANS: invert based on even or odd number or musical scale -#.TRANS: even numbers -msgid "even" +#: js/blocks/SensorsBlocks.js:758 +msgid "time" msgstr "" -#: js/PitchBlocks.js:935 -#: js/PitchActions.js:729 -#: js/musicutils.js:728 -#: js/musicutils.js:903 -#.TRANS: odd numbers -msgid "odd" +#: js/blocks/SensorsBlocks.js:804 +msgid "cursor y" msgstr "" -#: js/PitchBlocks.js:935 -#: js/PitchActions.js:731 -#: js/musicutils.js:729 -#: js/musicutils.js:904 -msgid "scalar" +#: js/blocks/SensorsBlocks.js:809 +msgid "The Cursor Y block returns the vertical position of the mouse." msgstr "" -#: js/PitchBlocks.js:966 -#.TRANS: pitch inversion rotates a pitch around another pitch (odd number) -msgid "invert (odd)" +#: js/blocks/SensorsBlocks.js:845 +msgid "cursor x" msgstr "" -#: js/PitchBlocks.js:999 -#.TRANS: pitch inversion rotates a pitch around another pitch (even number) -msgid "invert (even)" +#: js/blocks/SensorsBlocks.js:850 +msgid "The Cursor X block returns the horizontal position of the mouse." msgstr "" -#: js/PitchBlocks.js:1020 -#.TRANS: register is the octave of the current pitch -msgid "register" +#: js/blocks/SensorsBlocks.js:886 +msgid "mouse button" msgstr "" -#: js/PitchBlocks.js:1024 -msgid "The Register block provides an easy way to modify the register (octave) of the notes that follow it." +#: js/blocks/SensorsBlocks.js:888 +msgid "The Mouse-button block returns True if the mouse button is pressed." msgstr "" -#: js/PitchBlocks.js:1074 -msgid "The Semi-tone transposition block will shift the pitches contained inside Note blocks up (or down) by half steps." +#: js/blocks/SensorsBlocks.js:934 +msgid "to ASCII" msgstr "" -#: js/PitchBlocks.js:1076 -msgid "In the example shown above, sol is shifted up to sol#." +#: js/blocks/SensorsBlocks.js:938 +msgid "The To ASCII block converts numbers to letters." msgstr "" -#: js/PitchBlocks.js:1082 -#.TRANS: adjust the amount of shift (up or down) of a pitch -msgid "semi-tone transpose" +#: js/blocks/SensorsBlocks.js:1005 +msgid "The Keyboard block returns computer keyboard input." msgstr "" -#: js/PitchBlocks.js:1115 -msgid "The Transpose by Ratio block will shift the pitches contained inside Note blocks up (or down) by a ratio" +#: js/blocks/RhythmBlockPaletteBlocks.js:50 +#: js/blocks/RhythmBlockPaletteBlocks.js:233 +#.TRANS: rhythm block +#.TRANS: translate "rhythm1" as rhythm +msgid "rhythm1" msgstr "" -#: js/PitchBlocks.js:1121 -#.TRANS: adjust the amount of shift (up or down) of a pitch -msgid "transpose by ratio" +#: js/blocks/RhythmBlockPaletteBlocks.js:70 +#: js/blocks/RhythmBlockPaletteBlocks.js:252 +#: js/blocks/RhythmBlockPaletteBlocks.js:485 +#: js/blocks/RhythmBlockPaletteBlocks.js:554 +#: js/blocks/RhythmBlockPaletteBlocks.js:875 +msgid "number of notes" msgstr "" -#: js/PitchBlocks.js:1204 -#.TRANS: down sixth means the note is five scale degrees below current note -msgid "down sixth" +#: js/blocks/RhythmBlockPaletteBlocks.js:126 +msgid "polyphonic rhythm" msgstr "" -#: js/PitchBlocks.js:1223 -#.TRANS: down third means the note is two scale degrees below current note -msgid "down third" +#: js/blocks/RhythmBlockPaletteBlocks.js:219 +msgid "The Rhythm block is used to generate rhythm patterns." msgstr "" -#: js/PitchBlocks.js:1242 -#.TRANS: seventh means the note is the six scale degrees above current note -msgid "seventh" +#: js/blocks/RhythmBlockPaletteBlocks.js:280 +msgid "1/64 note" msgstr "" -#: js/PitchBlocks.js:1261 -#.TRANS: sixth means the note is the five scale degrees above current note -msgid "sixth" +#: js/blocks/RhythmBlockPaletteBlocks.js:304 +msgid "1/32 note" msgstr "" -#: js/PitchBlocks.js:1280 -#.TRANS: fifth means the note is the four scale degrees above current note -msgid "fifth" +#: js/blocks/RhythmBlockPaletteBlocks.js:332 +msgid "1/16 note" msgstr "" -#: js/PitchBlocks.js:1300 -#.TRANS: fourth means the note is three scale degrees above current note -msgid "fourth" +#: js/blocks/RhythmBlockPaletteBlocks.js:360 +msgid "eighth note" msgstr "" -#: js/PitchBlocks.js:1319 -#.TRANS: third means the note is two scale degrees above current note -msgid "third" +#: js/blocks/RhythmBlockPaletteBlocks.js:388 +msgid "quarter note" msgstr "" -#: js/PitchBlocks.js:1338 -#.TRANS: second means the note is one scale degree above current note -msgid "second" +#: js/blocks/RhythmBlockPaletteBlocks.js:416 +msgid "half note" msgstr "" -#: js/PitchBlocks.js:1379 -msgid "The Scalar transposition block will shift the pitches contained inside Note blocks up (or down) the scale." +#: js/blocks/RhythmBlockPaletteBlocks.js:444 +msgid "whole note" msgstr "" -#: js/PitchBlocks.js:1381 -msgid "In the example shown above, sol is shifted up to la." +#: js/blocks/RhythmBlockPaletteBlocks.js:482 +#: js/blocks/RhythmBlockPaletteBlocks.js:551 +#: js/blocks/RhythmBlockPaletteBlocks.js:602 +#.TRANS: A tuplet is a note value divided into irregular time values. +msgid "tuplet" msgstr "" -#: js/PitchBlocks.js:1388 -#.TRANS: adjust the amount of shift (up or down) of a pitch by musical scale (scalar) steps -msgid "scalar transpose" +#: js/blocks/RhythmBlockPaletteBlocks.js:768 +msgid "septuplet" msgstr "" -#: js/PitchBlocks.js:1423 -msgid "The Accidental block is used to create sharps and flats" +#: js/blocks/RhythmBlockPaletteBlocks.js:796 +msgid "quintuplet" msgstr "" -#: js/PitchBlocks.js:1430 -#.TRANS: An accidental is a modification to a pitch, e.g., sharp or flat. -msgid "accidental override" +#: js/blocks/RhythmBlockPaletteBlocks.js:824 +msgid "triplet" msgstr "" -#: js/PitchBlocks.js:1543 -msgid "The Hertz block (in combination with a Number block) will play a sound at the specified frequency." +#: js/blocks/RhythmBlockPaletteBlocks.js:851 +msgid "simple tuplet" msgstr "" -#: js/PitchBlocks.js:1633 -msgid "The Pitch Number block will play a pitch associated by its number, e.g. 0 for C and 7 for G." +#: js/blocks/RhythmBlockPaletteBlocks.js:861 +msgid "Tuplets are a collection of notes that get scaled to a specific duration." msgstr "" -#: js/PitchBlocks.js:1665 -#: js/PitchBlocks.js:1707 -#.TRANS: a numeric mapping of the notes in an octave based on the musical mode -#.TRANS: a numeric mapping of the notes in an octave based on the musical mode -msgid "nth modal pitch" +#: js/blocks/DrumBlocks.js:59 +msgid "The Noise name block is used to select a noise synthesizer." msgstr "" -#: js/PitchBlocks.js:1668 -msgid "n^th Modal Pitch takes the pattern of pitches in semitones for a mode and makes each point a degree of the mode," +#: js/blocks/DrumBlocks.js:102 +msgid "The Drum name block is used to select a drum." msgstr "" -#: js/PitchBlocks.js:1670 -msgid "starting from 1 and regardless of tonal framework (i.e. not always 8 notes in the octave)" +#: js/blocks/DrumBlocks.js:146 +msgid "The Effects name block is used to select a sound effect." msgstr "" -#: js/PitchBlocks.js:1711 -msgid "N^th Modal Pitch takes a number as an input as the n^th degree for the given mode. 0 is the first position, 1 is the second, -1 is the note before the first etc." +#: js/blocks/DrumBlocks.js:163 +msgid "noise" msgstr "" -#: js/PitchBlocks.js:1713 -msgid "The pitches change according to the mode specified without any need for respellings." +#: js/blocks/DrumBlocks.js:177 +msgid "The Play noise block will generate white, pink, or brown noise." msgstr "" -#: js/PitchBlocks.js:1752 -msgid "Scale Degree is a common convention in music. Scale Degree offers seven possible positions in the scale (1-7) and can be modified via accidentals." +#: js/blocks/DrumBlocks.js:317 +msgid "Replace every instance of a pitch with a drum sound." msgstr "" -#: js/PitchBlocks.js:1754 -msgid "Scale Degree 1 is always the first pitch in a given scale, regardless of octave." +#: js/blocks/DrumBlocks.js:328 +#.TRANS: map a pitch to a drum sound +msgid "map pitch to drum" msgstr "" -#: js/PitchBlocks.js:1776 -#.TRANS: step some number of notes in current musical scale -msgid "scalar step" +#: js/blocks/DrumBlocks.js:395 +msgid "In the example above, a kick drum sound will be played instead of sol." msgstr "" -#: js/PitchBlocks.js:1781 -msgid "The Scalar Step block (in combination with a Number block) will play the next pitch in a scale," +#: js/blocks/DrumBlocks.js:407 +#.TRANS: set the current drum sound for playback +msgid "set drum" msgstr "" -#: js/PitchBlocks.js:1783 -msgid "eg if the last note played was sol, Scalar Step 1 will play la." +#: js/blocks/DrumBlocks.js:451 +msgid "sound effect" msgstr "" -#: js/PitchBlocks.js:1818 -msgid "The Pitch block specifies the pitch name and octave of a note that together determine the frequency of the note." +#: js/blocks/DrumBlocks.js:489 +msgid "You can use multiple Drum blocks within a Note block." msgstr "" -#: js/GraphicsBlocks.js:46 -#: js/DictActions.js:77 -#: js/DictActions.js:155 -#: js/DictActions.js:189 +#: js/blocks/GraphicsBlocks.js:46 +#: js/turtleactions/DictActions.js:77 +#: js/turtleactions/DictActions.js:144 +#: js/turtleactions/DictActions.js:173 msgid "heading" msgstr "" -#: js/GraphicsBlocks.js:56 +#: js/blocks/GraphicsBlocks.js:56 msgid "The Heading block returns the orientation of the mouse." msgstr "" -#: js/GraphicsBlocks.js:62 +#: js/blocks/GraphicsBlocks.js:62 msgid "The Heading block returns the orientation of the turtle." msgstr "" -#: js/GraphicsBlocks.js:133 +#: js/blocks/GraphicsBlocks.js:133 msgid "The Y block returns the vertical position of the mouse." msgstr "" -#: js/GraphicsBlocks.js:140 +#: js/blocks/GraphicsBlocks.js:140 msgid "The Y block returns the vertical position of the turtle." msgstr "" -#: js/GraphicsBlocks.js:149 +#: js/blocks/GraphicsBlocks.js:149 msgid "y3" msgstr "" -#: js/GraphicsBlocks.js:219 +#: js/blocks/GraphicsBlocks.js:219 msgid "The X block returns the horizontal position of the mouse." msgstr "" -#: js/GraphicsBlocks.js:226 +#: js/blocks/GraphicsBlocks.js:226 msgid "The X block returns the horizontal position of the turtle." msgstr "" -#: js/GraphicsBlocks.js:235 +#: js/blocks/GraphicsBlocks.js:235 msgid "x3" msgstr "" -#: js/GraphicsBlocks.js:295 +#: js/blocks/GraphicsBlocks.js:295 msgid "scroll xy" msgstr "" -#: js/GraphicsBlocks.js:303 +#: js/blocks/GraphicsBlocks.js:303 msgid "The Scroll XY block moves the canvas." msgstr "" -#: js/GraphicsBlocks.js:313 +#: js/blocks/GraphicsBlocks.js:313 msgid "x2" msgstr "" -#: js/GraphicsBlocks.js:313 +#: js/blocks/GraphicsBlocks.js:313 msgid "y2" msgstr "" -#: js/GraphicsBlocks.js:373 -#: js/temperament.js:213 -#: js/temperament.js:241 +#: js/blocks/GraphicsBlocks.js:373 +#: js/widgets/temperament.js:319 +#: js/widgets/temperament.js:347 msgid "clear" msgstr "" -#: js/GraphicsBlocks.js:426 +#: js/blocks/GraphicsBlocks.js:426 msgid "The Control-point 2 block sets the second control point for the Bezier curve." msgstr "" -#: js/GraphicsBlocks.js:433 +#: js/blocks/GraphicsBlocks.js:433 msgid "control point 2" msgstr "" -#: js/GraphicsBlocks.js:436 -#: js/GraphicsBlocks.js:487 -#: js/GraphicsBlocks.js:534 -#: js/GraphicsBlocks.js:750 +#: js/blocks/GraphicsBlocks.js:436 +#: js/blocks/GraphicsBlocks.js:487 +#: js/blocks/GraphicsBlocks.js:534 +#: js/blocks/GraphicsBlocks.js:750 msgid "x1" msgstr "" -#: js/GraphicsBlocks.js:436 -#: js/GraphicsBlocks.js:487 -#: js/GraphicsBlocks.js:534 -#: js/GraphicsBlocks.js:750 +#: js/blocks/GraphicsBlocks.js:436 +#: js/blocks/GraphicsBlocks.js:487 +#: js/blocks/GraphicsBlocks.js:534 +#: js/blocks/GraphicsBlocks.js:750 msgid "y1" msgstr "" -#: js/GraphicsBlocks.js:477 +#: js/blocks/GraphicsBlocks.js:477 msgid "The Control-point 1 block sets the first control point for the Bezier curve." msgstr "" -#: js/GraphicsBlocks.js:484 +#: js/blocks/GraphicsBlocks.js:484 msgid "control point 1" msgstr "" -#: js/GraphicsBlocks.js:527 +#: js/blocks/GraphicsBlocks.js:527 msgid "The Bezier block draws a Bezier curve." msgstr "" -#: js/GraphicsBlocks.js:531 +#: js/blocks/GraphicsBlocks.js:531 msgid "bezier" msgstr "" -#: js/GraphicsBlocks.js:592 +#: js/blocks/GraphicsBlocks.js:592 msgid "The Arc block moves the turtle in an arc." msgstr "" -#: js/GraphicsBlocks.js:600 +#: js/blocks/GraphicsBlocks.js:600 msgid "arc" msgstr "" -#: js/GraphicsBlocks.js:603 +#: js/blocks/GraphicsBlocks.js:603 msgid "angle" msgstr "" -#: js/GraphicsBlocks.js:603 +#: js/blocks/GraphicsBlocks.js:603 msgid "radius" msgstr "" -#: js/GraphicsBlocks.js:620 -#: js/GraphicsBlocks.js:767 -#: js/GraphicsBlocks.js:1010 -#: js/GraphicsBlocks.js:1093 +#: js/blocks/GraphicsBlocks.js:620 +#: js/blocks/GraphicsBlocks.js:767 +#: js/blocks/GraphicsBlocks.js:1010 +#: js/blocks/GraphicsBlocks.js:1093 msgid "Value must be within -5000 to 5000 when Wrap Mode is off." msgstr "" -#: js/GraphicsBlocks.js:622 -#: js/GraphicsBlocks.js:769 -#: js/GraphicsBlocks.js:1012 -#: js/GraphicsBlocks.js:1095 +#: js/blocks/GraphicsBlocks.js:622 +#: js/blocks/GraphicsBlocks.js:769 +#: js/blocks/GraphicsBlocks.js:1012 +#: js/blocks/GraphicsBlocks.js:1095 msgid "Value must be within -20000 to 20000 when Wrap Mode is on." msgstr "" -#: js/GraphicsBlocks.js:660 +#: js/blocks/GraphicsBlocks.js:660 msgid "set heading" msgstr "" -#: js/GraphicsBlocks.js:673 +#: js/blocks/GraphicsBlocks.js:673 msgid "The Set heading block sets the heading of the turtle." msgstr "" -#: js/GraphicsBlocks.js:733 +#: js/blocks/GraphicsBlocks.js:733 msgid "The Set XY block moves the mouse to a specific position on the screen." msgstr "" -#: js/GraphicsBlocks.js:739 +#: js/blocks/GraphicsBlocks.js:739 msgid "The Set XY block moves the turtle to a specific position on the screen." msgstr "" -#: js/GraphicsBlocks.js:747 +#: js/blocks/GraphicsBlocks.js:747 msgid "set xy" msgstr "" -#: js/GraphicsBlocks.js:819 +#: js/blocks/GraphicsBlocks.js:819 msgid "The Right block turns the mouse to the right." msgstr "" -#: js/GraphicsBlocks.js:826 +#: js/blocks/GraphicsBlocks.js:826 msgid "The Right block turns the turtle to the right." msgstr "" -#: js/GraphicsBlocks.js:835 +#: js/blocks/GraphicsBlocks.js:835 msgid "right1" msgstr "" -#: js/GraphicsBlocks.js:835 +#: js/blocks/GraphicsBlocks.js:835 #: plugins/rodi.rtp:77 #: plugins/rodi.rtp:340 #: plugins/rodi.rtp:375 msgid "right" msgstr "ئوڭ" -#: js/GraphicsBlocks.js:899 +#: js/blocks/GraphicsBlocks.js:899 msgid "The Left block turns the mouse to the left." msgstr "" -#: js/GraphicsBlocks.js:906 +#: js/blocks/GraphicsBlocks.js:906 msgid "The Left block turns the turtle to the left." msgstr "" -#: js/GraphicsBlocks.js:915 +#: js/blocks/GraphicsBlocks.js:915 msgid "left1" msgstr "" -#: js/GraphicsBlocks.js:915 +#: js/blocks/GraphicsBlocks.js:915 #: plugins/rodi.rtp:79 #: plugins/rodi.rtp:339 #: plugins/rodi.rtp:362 msgid "left" msgstr "سول" -#: js/GraphicsBlocks.js:967 -#: js/temperament.js:734 -#: js/temperament.js:933 +#: js/blocks/GraphicsBlocks.js:967 +#: js/widgets/temperament.js:875 +#: js/widgets/temperament.js:1078 #: plugins/rodi.rtp:69 #: plugins/rodi.rtp:387 msgid "back" msgstr "كەينى" -#: js/GraphicsBlocks.js:976 +#: js/blocks/GraphicsBlocks.js:976 msgid "The Back block moves the mouse backward." msgstr "" -#: js/GraphicsBlocks.js:983 +#: js/blocks/GraphicsBlocks.js:983 msgid "The Back block moves the turtle backward." msgstr "" -#: js/GraphicsBlocks.js:1050 +#: js/blocks/GraphicsBlocks.js:1050 #: plugins/rodi.rtp:71 #: plugins/rodi.rtp:400 msgid "forward" msgstr "ئالدىغا" -#: js/GraphicsBlocks.js:1059 +#: js/blocks/GraphicsBlocks.js:1059 msgid "The Forward block moves the mouse forward." msgstr "" -#: js/GraphicsBlocks.js:1066 +#: js/blocks/GraphicsBlocks.js:1066 msgid "The Forward block moves the turtle forward." msgstr "" -#: js/GraphicsBlocks.js:1154 -#: js/GraphicsBlocks.js:1172 +#: js/blocks/GraphicsBlocks.js:1154 +#: js/blocks/GraphicsBlocks.js:1172 msgid "wrap" msgstr "" -#: js/OrnamentBlocks.js:32 -msgid "staccato factor" -msgstr "" - -#: js/OrnamentBlocks.js:108 -msgid "slur factor" -msgstr "" - -#: js/OrnamentBlocks.js:217 -#: js/OrnamentBlocks.js:309 -#.TRANS: the neighbor refers to a neighboring note, e.g., D is a neighbor of C -msgid "neighbor" -msgstr "" - -#: js/OrnamentBlocks.js:293 -msgid "The Neighbor block rapidly switches between neighboring pitches." -msgstr "" - -#: js/OrnamentBlocks.js:364 -msgid "glide" -msgstr "" - -#: js/OrnamentBlocks.js:479 -#: js/OrnamentBlocks.js:643 -msgid "slur" -msgstr "" - -#: js/OrnamentBlocks.js:558 -#: js/OrnamentBlocks.js:710 -#.TRANS: play each note sharply detached from the others -msgid "staccato" -msgstr "" - -#: js/PenBlocks.js:24 +#: js/blocks/PenBlocks.js:30 msgid "purple" msgstr "" -#: js/PenBlocks.js:37 -#: js/SensorsBlocks.js:521 -#: plugins/rodi.rtp:219 -msgid "blue" -msgstr "" - -#: js/PenBlocks.js:50 -#: js/SensorsBlocks.js:577 -#: plugins/rodi.rtp:218 -msgid "green" -msgstr "" - -#: js/PenBlocks.js:63 +#: js/blocks/PenBlocks.js:80 msgid "yellow" msgstr "" -#: js/PenBlocks.js:76 +#: js/blocks/PenBlocks.js:96 #: plugins/nutrition.rtp:164 msgid "orange" msgstr "" -#: js/PenBlocks.js:89 -#: js/SensorsBlocks.js:633 -#: plugins/rodi.rtp:217 -msgid "red" -msgstr "" - -#: js/PenBlocks.js:102 +#: js/blocks/PenBlocks.js:128 msgid "white" msgstr "" -#: js/PenBlocks.js:115 +#: js/blocks/PenBlocks.js:144 msgid "black" msgstr "" -#: js/PenBlocks.js:128 +#: js/blocks/PenBlocks.js:163 msgid "begin fill" msgstr "" -#: js/PenBlocks.js:143 +#: js/blocks/PenBlocks.js:190 msgid "end fill" msgstr "" -#: js/PenBlocks.js:159 -#: js/PenBlocks.js:386 +#: js/blocks/PenBlocks.js:212 +#: js/blocks/PenBlocks.js:560 #.TRANS: set the background color msgid "background" msgstr "" -#: js/PenBlocks.js:206 -#: js/DictActions.js:71 -#: js/DictActions.js:149 -#: js/DictActions.js:186 +#: js/blocks/PenBlocks.js:274 +#: js/turtleactions/DictActions.js:71 +#: js/turtleactions/DictActions.js:138 +#: js/turtleactions/DictActions.js:170 msgid "grey" msgstr "" -#: js/PenBlocks.js:210 +#: js/blocks/PenBlocks.js:282 msgid "The Grey block returns the current pen grey value." msgstr "" -#: js/PenBlocks.js:243 -#: js/DictActions.js:69 -#: js/DictActions.js:147 -#: js/DictActions.js:185 +#: js/blocks/PenBlocks.js:340 +#: js/turtleactions/DictActions.js:69 +#: js/turtleactions/DictActions.js:136 +#: js/turtleactions/DictActions.js:169 msgid "shade" msgstr "" -#: js/PenBlocks.js:247 +#: js/blocks/PenBlocks.js:347 msgid "The Shade block returns the current pen shade value." msgstr "" -#: js/PenBlocks.js:280 -#: js/DictActions.js:67 -#: js/DictActions.js:145 -#: js/DictActions.js:184 +#: js/blocks/PenBlocks.js:405 +#: js/turtleactions/DictActions.js:67 +#: js/turtleactions/DictActions.js:134 +#: js/turtleactions/DictActions.js:168 msgid "color" msgstr "رەڭ" -#: js/PenBlocks.js:285 +#: js/blocks/PenBlocks.js:415 msgid "The Color block returns the current pen color." msgstr "" -#: js/PenBlocks.js:318 -#: js/DictActions.js:73 -#: js/DictActions.js:151 -#: js/DictActions.js:187 +#: js/blocks/PenBlocks.js:470 +#: js/turtleactions/DictActions.js:73 +#: js/turtleactions/DictActions.js:140 +#: js/turtleactions/DictActions.js:171 msgid "pen size" msgstr "" -#: js/PenBlocks.js:322 +#: js/blocks/PenBlocks.js:474 msgid "The Pen size block returns the current pen size value." msgstr "" -#: js/PenBlocks.js:355 +#: js/blocks/PenBlocks.js:513 msgid "set font" msgstr "" -#: js/PenBlocks.js:358 +#: js/blocks/PenBlocks.js:518 msgid "The Set font block sets the font used by the Show block." msgstr "" -#: js/PenBlocks.js:391 +#: js/blocks/PenBlocks.js:567 msgid "The Background block sets the window background color." msgstr "" -#: js/PenBlocks.js:408 +#: js/blocks/PenBlocks.js:598 msgid "The Hollow line block creates a line with a hollow center." msgstr "" -#: js/PenBlocks.js:415 +#: js/blocks/PenBlocks.js:606 #.TRANS: draw a line logo has a hollow space down its center msgid "hollow line" msgstr "" -#: js/PenBlocks.js:462 +#: js/blocks/PenBlocks.js:675 msgid "The Fill block fills in a shape with a color." msgstr "" -#: js/PenBlocks.js:470 +#: js/blocks/PenBlocks.js:684 #.TRANS: fill in as a solid color msgid "fill" msgstr "" -#: js/PenBlocks.js:527 +#: js/blocks/PenBlocks.js:761 #.TRANS: raise up the pen so logo it does not draw when it is moved msgid "pen up" msgstr "" -#: js/PenBlocks.js:532 +#: js/blocks/PenBlocks.js:768 msgid "The Pen-up block raises the pen so that it does not draw." msgstr "" -#: js/PenBlocks.js:552 +#: js/blocks/PenBlocks.js:802 #.TRANS: put down the pen so logo it draws when it is moved msgid "pen down" msgstr "" -#: js/PenBlocks.js:557 +#: js/blocks/PenBlocks.js:810 msgid "The Pen-down block lowers the pen so that it draws." msgstr "" -#: js/PenBlocks.js:577 +#: js/blocks/PenBlocks.js:844 #.TRANS: set the width of the line drawn by the pen msgid "set pen size" msgstr "" -#: js/PenBlocks.js:583 +#: js/blocks/PenBlocks.js:854 msgid "The Set-pen-size block changes the size of the pen." msgstr "" -#: js/PenBlocks.js:623 +#: js/blocks/PenBlocks.js:913 #.TRANS: set degree of translucence of the pen color msgid "set translucency" msgstr "" -#: js/PenBlocks.js:627 +#: js/blocks/PenBlocks.js:921 msgid "The Set translucency block changes the opacity of the pen." msgstr "" -#: js/PenBlocks.js:668 +#: js/blocks/PenBlocks.js:981 msgid "set hue" msgstr "" -#: js/PenBlocks.js:672 +#: js/blocks/PenBlocks.js:989 msgid "The Set hue block changes the color of the pen." msgstr "" -#: js/PenBlocks.js:711 +#: js/blocks/PenBlocks.js:1047 msgid "set shade" msgstr "" -#: js/PenBlocks.js:717 +#: js/blocks/PenBlocks.js:1057 msgid "The Set-shade block changes the pen color from dark to light." msgstr "" -#: js/PenBlocks.js:757 +#: js/blocks/PenBlocks.js:1111 #.TRANS: set the level of vividness of the pen color msgid "set grey" msgstr "" -#: js/PenBlocks.js:761 +#: js/blocks/PenBlocks.js:1119 msgid "The Set grey block changes the vividness of the pen color." msgstr "" -#: js/PenBlocks.js:800 +#: js/blocks/PenBlocks.js:1172 msgid "set color" msgstr "" -#: js/PenBlocks.js:806 +#: js/blocks/PenBlocks.js:1182 msgid "The Set-color block changes the pen color." msgstr "" -#: js/VolumeBlocks.js:35 -msgid "synth volume" -msgstr "" - -#: js/VolumeBlocks.js:39 -msgid "The Synth volume block returns the current volume of the current synthesizer." -msgstr "" - -#: js/VolumeBlocks.js:47 -#: js/musicutils.js:730 -#: js/synthutils.js:56 -#.TRANS: musical instrument -msgid "piano" -msgstr "" - -#: js/VolumeBlocks.js:105 -msgid "master volume" -msgstr "" - -#: js/VolumeBlocks.js:109 -msgid "The Master volume block returns the master volume." -msgstr "" - -#: js/VolumeBlocks.js:355 -#: js/VolumeBlocks.js:524 -msgid "set synth volume" -msgstr "" - -#: js/VolumeBlocks.js:362 -#: js/VolumeBlocks.js:545 -msgid "synth" -msgstr "" - -#: js/VolumeBlocks.js:403 -#: js/VolumeBlocks.js:577 -#: js/VolumeBlocks.js:740 -#: js/VolumeActions.js:173 -msgid "Setting volume to 0." -msgstr "" - -#: js/VolumeBlocks.js:440 -msgid "Synth not found" -msgstr "" - -#: js/VolumeBlocks.js:494 -msgid "set drum volume" -msgstr "" - -#: js/VolumeBlocks.js:530 -msgid "The Set synth volume block will change the volume of a particular synth," -msgstr "" - -#: js/VolumeBlocks.js:532 -msgid "eg guitar violin snare drum etc." -msgstr "" - -#: js/VolumeBlocks.js:534 -msgid "The default volume is 50." -msgstr "" - -#: js/VolumeBlocks.js:536 -msgid "The range is 0 for silence to 100 for full volume." -msgstr "" - -#: js/VolumeBlocks.js:597 -msgid "set panning" -msgstr "" - -#: js/VolumeBlocks.js:603 -msgid "The Set Panning block sets the panning for all synthesizers." -msgstr "" - -#: js/VolumeBlocks.js:625 -msgid "Warning: Sound is coming out from only the left or right side." -msgstr "" - -#: js/VolumeBlocks.js:647 -#: js/VolumeBlocks.js:695 -msgid "set master volume" -msgstr "" - -#: js/VolumeBlocks.js:653 -msgid "The Set master volume block sets the volume for all synthesizers." -msgstr "" - -#: js/VolumeBlocks.js:784 -msgid "The Set relative volume block changes the volume of the contained notes." -msgstr "" - -#: js/VolumeBlocks.js:791 -msgid "set relative volume" -msgstr "" - -#: js/VolumeBlocks.js:857 -msgid "decrescendo" -msgstr "" - -#: js/VolumeBlocks.js:921 -msgid "crescendo" -msgstr "" - -#: js/ToneBlocks.js:34 -msgid "oscillator" -msgstr "" - -#: js/ToneBlocks.js:44 -#: js/timbre.js:1562 -#.TRANS: Partials refers to the number of sine waves combined into the sound. -msgid "partials" -msgstr "" - -#: js/ToneBlocks.js:76 -msgid "You are adding multiple oscillator blocks." -msgstr "" - -#: js/ToneBlocks.js:144 -#: js/timbre.js:1225 -#.TRANS: a duo synthesizer combines a synth with a sequencer -msgid "duo synth" -msgstr "" - -#: js/ToneBlocks.js:149 -msgid "The Duo synth block is a duo-frequency modulator used to define a timbre." -msgstr "" - -#: js/ToneBlocks.js:157 -#: js/timbre.js:1476 -msgid "vibrato rate" -msgstr "" - -#: js/ToneBlocks.js:157 -msgid "vibrato intensity" -msgstr "" - -#: js/ToneBlocks.js:185 -#: js/timbre.js:1221 -#.TRANS: AM (amplitude modulation) synthesizer -msgid "AM synth" -msgstr "" - -#: js/ToneBlocks.js:189 -msgid "The AM synth block is an amplitude modulator used to define a timbre." -msgstr "" - -#: js/ToneBlocks.js:224 -#: js/timbre.js:1223 -#.TRANS: FM (frequency modulation) synthesizer -msgid "FM synth" -msgstr "" - -#: js/ToneBlocks.js:228 -msgid "The FM synth block is a frequency modulator used to define a timbre." +#: js/blocks/PitchBlocks.js:141 +#.TRANS: musical transposition (adjustment of pitch up or down) +msgid "transposition" msgstr "" -#: js/ToneBlocks.js:262 -msgid "partial" +#: js/blocks/PitchBlocks.js:168 +#.TRANS: step down one note in current musical scale +msgid "scalar step down" msgstr "" -#: js/ToneBlocks.js:265 -msgid "The Partial block is used to specify a weight for a specific partial harmonic." +#: js/blocks/PitchBlocks.js:172 +msgid "The Scalar step down block returns the number of semi-tones down to the previous note in the current key and mode." msgstr "" -#: js/ToneBlocks.js:284 -#.TRANS: partials are weighted components in a harmonic series -msgid "Partial weight must be between 0 and 1." +#: js/blocks/PitchBlocks.js:190 +#.TRANS: step up one note in current musical scale +msgid "scalar step up" msgstr "" -#: js/ToneBlocks.js:297 -#.TRANS: partials are weighted components in a harmonic series -msgid "Partial block should be used inside of a Weighted-partials block." +#: js/blocks/PitchBlocks.js:194 +msgid "The Scalar step up block returns the number of semi-tones up to the next note in the current key and mode." msgstr "" -#: js/ToneBlocks.js:325 -#.TRANS: partials are weighted components in a harmonic series -msgid "weighted partials" +#: js/blocks/PitchBlocks.js:212 +#.TRANS: the change measured in half-steps between the current pitch and the previous pitch +msgid "change in pitch" msgstr "" -#: js/ToneBlocks.js:383 -msgid "The Harmonic block will add harmonics to the contained notes." +#: js/blocks/PitchBlocks.js:216 +msgid "The Change in pitch block is the difference (in half steps) between the current pitch being played and the previous pitch played." msgstr "" -#: js/ToneBlocks.js:390 -#.TRANS: A harmonic is an overtone. -msgid "harmonic" +#: js/blocks/PitchBlocks.js:243 +#.TRANS: the change measured in scale-steps between the current pitch and the previous pitch +msgid "scalar change in pitch" msgstr "" -#: js/ToneBlocks.js:431 -msgid "The Distortion block adds distortion to the pitch." +#: js/blocks/PitchBlocks.js:250 +#: js/blocks/PitchBlocks.js:432 +#: js/blocks/PitchBlocks.js:1667 +#: js/turtleactions/DictActions.js:89 +#: js/widgets/temperament.js:610 +#: js/widgets/temperament.js:614 +#: js/widgets/temperament.js:855 +#.TRANS: convert current note to piano key (1-88) +#.TRANS: a mapping of pitch to the 88 piano keys +msgid "pitch number" msgstr "" -#: js/ToneBlocks.js:438 -#: js/timbre.js:2100 -#.TRANS: distortion is an alteration in the sound -msgid "distortion" +#: js/blocks/PitchBlocks.js:256 +msgid "The Pitch number block is the value of the pitch of the note currently being played." msgstr "" -#: js/ToneBlocks.js:487 -msgid "The Tremolo block adds a wavering effect." +#: js/blocks/PitchBlocks.js:329 +#: js/blocks/PitchBlocks.js:433 +#.TRANS: the current pitch expressed in Hertz +msgid "pitch in hertz" msgstr "" -#: js/ToneBlocks.js:495 -#: js/timbre.js:2092 -#.TRANS: a wavering effect in a musical tone -msgid "tremolo" +#: js/blocks/PitchBlocks.js:334 +msgid "The Pitch in Hertz block is the value in Hertz of the pitch of the note currently being played." msgstr "" -#: js/ToneBlocks.js:500 -#: js/ToneBlocks.js:569 -#: js/ToneBlocks.js:630 -#: js/ToneBlocks.js:689 -#: js/timbre.js:2134 -#: js/timbre.js:2222 -#: js/timbre.js:2317 -#: js/timbre.js:2419 -#.TRANS: rate at which tremolo wavers -msgid "rate" +#: js/blocks/PitchBlocks.js:367 +#: js/turtleactions/DictActions.js:87 +msgid "current pitch" msgstr "" -#: js/ToneBlocks.js:502 -#: js/ToneBlocks.js:630 -#: js/timbre.js:2137 -#: js/timbre.js:2328 -#.TRANS: amplitude of tremolo waver -msgid "depth" +#: js/blocks/PitchBlocks.js:373 +msgid "The Current Pitch block is used with the Pitch Converter block. In the example above, current pitch, sol 4, is displayed as 392 hertz." msgstr "" -#: js/ToneBlocks.js:559 -msgid "The Phaser block adds a sweeping sound." +#: js/blocks/PitchBlocks.js:410 +msgid "This block converts the pitch value of the last note played into different formats such as hertz, letter name, pitch number, et al." msgstr "" -#: js/ToneBlocks.js:566 -#: js/timbre.js:2098 -#.TRANS: alter the phase of the sound -msgid "phaser" +#: js/blocks/PitchBlocks.js:434 +msgid "alphabet" msgstr "" -#: js/ToneBlocks.js:569 -#: js/timbre.js:2422 -msgid "octaves" +#: js/blocks/PitchBlocks.js:436 +#.TRANS: Translate as "alphabet class" +msgid "letter class" msgstr "" -#: js/ToneBlocks.js:569 -#: js/timbre.js:2425 -msgid "base frequency" +#: js/blocks/PitchBlocks.js:437 +msgid "solfege class" msgstr "" -#: js/ToneBlocks.js:619 -msgid "The Chorus block adds a chorus effect." +#: js/blocks/PitchBlocks.js:438 +msgid "staff y" msgstr "" -#: js/ToneBlocks.js:627 -#: js/timbre.js:2096 -#.TRANS: musical effect to simulate a choral sound -msgid "chorus" +#: js/blocks/PitchBlocks.js:439 +msgid "solfege syllable" msgstr "" -#: js/ToneBlocks.js:630 -msgid "delay" +#: js/blocks/PitchBlocks.js:440 +msgid "pitch class" msgstr "" -#: js/ToneBlocks.js:678 -msgid "The Vibrato block adds a rapid, slight variation in pitch." +#: js/blocks/PitchBlocks.js:441 +msgid "scalar class" msgstr "" -#: js/ToneBlocks.js:686 -#: js/timbre.js:2094 -#.TRANS: a rapid, slight variation in pitch -msgid "vibrato" +#: js/blocks/PitchBlocks.js:443 +msgid "nth degree" msgstr "" -#: js/ToneBlocks.js:689 -#: js/timbre.js:2221 -msgid "intensity" +#: js/blocks/PitchBlocks.js:444 +msgid "pitch to shade" msgstr "" -#: js/ToneBlocks.js:733 -#.TRANS: select synthesizer -msgid "set synth" +#: js/blocks/PitchBlocks.js:445 +msgid "pitch to color" msgstr "" -#: js/ToneBlocks.js:804 -msgid "synth name" +#: js/blocks/PitchBlocks.js:629 +#: js/widgets/musickeyboard.js:735 +#.TRANS: MIDI is a technical standard for electronic music +msgid "MIDI" msgstr "" -#: js/ToneBlocks.js:842 -msgid "set default instrument" +#: js/blocks/PitchBlocks.js:642 +#.TRANS: set an offset associated with the numeric piano keyboard mapping +msgid "set pitch number offset" msgstr "" -#: js/ToneBlocks.js:895 -#: js/ToneBlocks.js:943 -#.TRANS: set the characteristics of a custom instrument -msgid "set instrument" +#: js/blocks/PitchBlocks.js:645 +msgid "The Set pitch number offset block is used to set the offset for mapping pitch numbers to pitch and octave." msgstr "" -#: js/ToneBlocks.js:898 -#: js/ToneBlocks.js:926 -#: js/ToneBlocks.js:932 -msgid "The Set instrument block selects a voice for the synthesizer," +#: js/blocks/PitchBlocks.js:679 +#.TRANS: convert piano key number (1-88) to pitch +msgid "number to pitch" msgstr "" -#: js/ToneBlocks.js:900 -#: js/ToneBlocks.js:934 -msgid "eg guitar piano violin or cello." +#: js/blocks/PitchBlocks.js:682 +msgid "The Number to pitch block will convert a pitch number to a pich name." msgstr "" -#: js/ToneBlocks.js:1015 -msgid "Import a sound file to use as an instrument and set its pitch center." +#: js/blocks/PitchBlocks.js:715 +#.TRANS: convert piano key number (1-88) to octave +msgid "number to octave" msgstr "" -#: js/ToneBlocks.js:1110 -msgid "Upload a sound file to connect with the sample block." +#: js/blocks/PitchBlocks.js:717 +msgid "The Number to octave block will convert a pitch number to an octave." msgstr "" -#: js/MeterBlocks.js:34 -#.TRANS: musical meter (time signature), e.g., 4:4 -msgid "current meter" +#: js/blocks/PitchBlocks.js:726 +msgid "y to pitch" msgstr "" -#: js/MeterBlocks.js:85 -#.TRANS: number of beats per minute -msgid "beat factor" +#: js/blocks/PitchBlocks.js:729 +msgid "Y to pitch block will convert a staff y position to corresponding pitch notation." msgstr "" -#: js/MeterBlocks.js:161 -msgid "The Beats per minute block returns the current beats per minute." +#: js/blocks/PitchBlocks.js:841 +msgid "accidental selector" msgstr "" -#: js/MeterBlocks.js:169 -#: js/status.js:152 -#.TRANS: number of beats played per minute -msgid "beats per minute2" +#: js/blocks/PitchBlocks.js:844 +msgid "The Accidental selector block is used to choose between double-sharp, sharp, natural, flat, and double-flat." msgstr "" -#: js/MeterBlocks.js:169 -#: js/MeterBlocks.js:1056 -#: js/MeterBlocks.js:1133 -#: js/MeterBlocks.js:1211 -#.TRANS: sets tempo by defining a beat and beats per minute -msgid "beats per minute" +#: js/blocks/PitchBlocks.js:858 +msgid "Pitch can be specified in terms of ni dha pa ma ga re sa." msgstr "" -#: js/MeterBlocks.js:233 -#.TRANS: count of current musical measure in meter -msgid "measure count" +#: js/blocks/PitchBlocks.js:872 +msgid "Pitch can be specified in terms of C D E F G A B." msgstr "" -#: js/MeterBlocks.js:241 -msgid "The Measure count block returns the current measure." +#: js/blocks/PitchBlocks.js:884 +msgid "solfege" msgstr "" -#: js/MeterBlocks.js:290 -#.TRANS: count of current beat in the meter -msgid "beat count" +#: js/blocks/PitchBlocks.js:887 +msgid "Pitch can be specified in terms of do re mi fa sol la ti." msgstr "" -#: js/MeterBlocks.js:300 -#: js/MeterBlocks.js:311 -#: js/MeterBlocks.js:565 -#: js/MeterBlocks.js:576 -msgid "The Beat count block is the number of the current beat," +#: js/blocks/PitchBlocks.js:922 +msgid "The Invert block rotates any contained notes around a target note." msgstr "" -#: js/MeterBlocks.js:313 -#: js/MeterBlocks.js:578 -msgid "eg 1, 2, 3, or 4." +#: js/blocks/PitchBlocks.js:929 +#.TRANS: pitch inversion rotates a pitch around another pitch +msgid "invert" msgstr "" -#: js/MeterBlocks.js:368 -#.TRANS: count the number of notes -msgid "sum note values" +#: js/blocks/PitchBlocks.js:968 +#.TRANS: pitch inversion rotates a pitch around another pitch (odd number) +msgid "invert (odd)" msgstr "" -#: js/MeterBlocks.js:376 -#: js/MeterBlocks.js:440 -msgid "The Note counter block can be used to count the number of contained notes." +#: js/blocks/PitchBlocks.js:1001 +#.TRANS: pitch inversion rotates a pitch around another pitch (even number) +msgid "invert (even)" msgstr "" -#: js/MeterBlocks.js:432 -#.TRANS: count the number of notes -msgid "note counter" +#: js/blocks/PitchBlocks.js:1022 +#.TRANS: register is the octave of the current pitch +msgid "register" msgstr "" -#: js/MeterBlocks.js:496 -#.TRANS: number of whole notes that have been played -msgid "whole notes played" +#: js/blocks/PitchBlocks.js:1026 +msgid "The Register block provides an easy way to modify the register (octave) of the notes that follow it." msgstr "" -#: js/MeterBlocks.js:505 -msgid "The Whole notes played block returns the total number of whole notes played." +#: js/blocks/PitchBlocks.js:1047 +#.TRANS: cents are units used to specify the ratio between pitches. There are 100 cents between successive notes. +msgid "50 cents" msgstr "" -#: js/MeterBlocks.js:555 -#: js/DictActions.js:83 -#.TRANS: number of notes that have been played -msgid "notes played" +#: js/blocks/PitchBlocks.js:1102 +msgid "The Semi-tone transposition block will shift the pitches contained inside Note blocks up (or down) by half steps." msgstr "" -#: js/MeterBlocks.js:653 -msgid "The No clock block decouples the notes from the master clock." +#: js/blocks/PitchBlocks.js:1104 +msgid "In the example shown above, sol is shifted up to sol#." msgstr "" -#: js/MeterBlocks.js:661 -#.TRANS: don't lock notes to master clock -msgid "no clock" +#: js/blocks/PitchBlocks.js:1110 +#.TRANS: adjust the amount of shift (up or down) of a pitch +msgid "semi-tone transpose" msgstr "" -#: js/MeterBlocks.js:700 -msgid "on weak beat do" +#: js/blocks/PitchBlocks.js:1143 +msgid "The Transpose by Ratio block will shift the pitches contained inside Note blocks up (or down) by a ratio" msgstr "" -#: js/MeterBlocks.js:705 -msgid "The On-weak-beat block lets you specify actions to take on weak (off) beats." +#: js/blocks/PitchBlocks.js:1149 +#.TRANS: adjust the amount of shift (up or down) of a pitch +msgid "transpose by ratio" msgstr "" -#: js/MeterBlocks.js:750 -msgid "on strong beat" +#: js/blocks/PitchBlocks.js:1232 +#.TRANS: down sixth means the note is five scale degrees below current note +msgid "down sixth" msgstr "" -#: js/MeterBlocks.js:758 -msgid "The On-strong-beat block lets you specify actions to take on specified beats." +#: js/blocks/PitchBlocks.js:1251 +#.TRANS: down third means the note is two scale degrees below current note +msgid "down third" msgstr "" -#: js/MeterBlocks.js:769 -msgid "beat" +#: js/blocks/PitchBlocks.js:1270 +#.TRANS: seventh means the note is the six scale degrees above current note +msgid "seventh" msgstr "" -#: js/MeterBlocks.js:813 -msgid "on every beat do" +#: js/blocks/PitchBlocks.js:1289 +#.TRANS: sixth means the note is the five scale degrees above current note +msgid "sixth" msgstr "" -#: js/MeterBlocks.js:821 -msgid "The On-every-beat block lets you specify actions to take on every beat." +#: js/blocks/PitchBlocks.js:1308 +#.TRANS: fifth means the note is the four scale degrees above current note +msgid "fifth" msgstr "" -#: js/MeterBlocks.js:874 -msgid "on every note do" +#: js/blocks/PitchBlocks.js:1328 +#.TRANS: fourth means the note is three scale degrees above current note +msgid "fourth" msgstr "" -#: js/MeterBlocks.js:882 -msgid "The On-every-note block lets you specify actions to take on every note." +#: js/blocks/PitchBlocks.js:1347 +#.TRANS: third means the note is two scale degrees above current note +msgid "third" msgstr "" -#: js/MeterBlocks.js:928 -#: js/MeterBlocks.js:999 -#.TRANS: sets tempo by defining a beat and beats per minute -msgid "master beats per minute" +#: js/blocks/PitchBlocks.js:1366 +#.TRANS: second means the note is one scale degree above current note +msgid "second" msgstr "" -#: js/MeterBlocks.js:952 -#: js/MeterBlocks.js:1078 -#: js/MeterBlocks.js:1135 -msgid "bpm" +#: js/blocks/PitchBlocks.js:1407 +msgid "The Scalar transposition block will shift the pitches contained inside Note blocks up (or down) the scale." msgstr "" -#: js/MeterBlocks.js:952 -#: js/MeterBlocks.js:1078 -#: js/MeterBlocks.js:1135 -msgid "beat value" +#: js/blocks/PitchBlocks.js:1409 +msgid "In the example shown above, sol is shifted up to la." msgstr "" -#: js/MeterBlocks.js:1024 -#: js/MeterBlocks.js:1167 -#: js/MeterBlocks.js:1241 -msgid "Beats per minute must be > 30." +#: js/blocks/PitchBlocks.js:1416 +#.TRANS: adjust the amount of shift (up or down) of a pitch by musical scale (scalar) steps +msgid "scalar transpose" msgstr "" -#: js/MeterBlocks.js:1027 -#: js/MeterBlocks.js:1170 -#: js/MeterBlocks.js:1244 -msgid "Maximum beats per minute is 1000." +#: js/blocks/PitchBlocks.js:1451 +msgid "The Accidental block is used to create sharps and flats" msgstr "" -#: js/MeterBlocks.js:1068 -msgid "The Beats per minute block sets the number of 1/4 notes per minute." +#: js/blocks/PitchBlocks.js:1458 +#.TRANS: An accidental is a modification to a pitch, e.g., sharp or flat. +msgid "accidental override" msgstr "" -#: js/MeterBlocks.js:1279 -#.TRANS: anacrusis -msgid "pickup" +#: js/blocks/PitchBlocks.js:1581 +msgid "The Hertz block (in combination with a Number block) will play a sound at the specified frequency." msgstr "" -#: js/MeterBlocks.js:1367 -msgid "number of beats" +#: js/blocks/PitchBlocks.js:1671 +msgid "The Pitch Number block will play a pitch associated by its number, e.g. 0 for C and 7 for G." msgstr "" -#: js/DictBlocks.js:77 -msgid "show dictionary" +#: js/blocks/PitchBlocks.js:1703 +#: js/blocks/PitchBlocks.js:1745 +#.TRANS: a numeric mapping of the notes in an octave based on the musical mode +#.TRANS: a numeric mapping of the notes in an octave based on the musical mode +msgid "nth modal pitch" msgstr "" -#: js/DictBlocks.js:129 -msgid "The Dictionary block returns a dictionary." +#: js/blocks/PitchBlocks.js:1706 +msgid "n^th Modal Pitch takes the pattern of pitches in semitones for a mode and makes each point a degree of the mode," msgstr "" -#: js/DictBlocks.js:197 -#: js/DictBlocks.js:339 -msgid "The Get-dict block returns a value in the dictionary for a specified key." +#: js/blocks/PitchBlocks.js:1708 +msgid "starting from 1 and regardless of tonal framework (i.e. not always 8 notes in the octave)" msgstr "" -#: js/DictBlocks.js:212 -#: js/DictBlocks.js:354 -#.TRANS: retrieve a value from the dictionary with a given key -msgid "get value" +#: js/blocks/PitchBlocks.js:1749 +msgid "N^th Modal Pitch takes a number as an input as the n^th degree for the given mode. 0 is the first position, 1 is the second, -1 is the note before the first etc." msgstr "" -#: js/DictBlocks.js:215 -#: js/DictBlocks.js:216 -#: js/DictBlocks.js:289 -#: js/DictBlocks.js:290 -#: js/DictBlocks.js:357 -#: js/DictBlocks.js:430 -#: js/DictBlocks.js:431 -msgid "key2" +#: js/blocks/PitchBlocks.js:1751 +msgid "The pitches change according to the mode specified without any need for respellings." msgstr "" -#: js/DictBlocks.js:271 -#: js/DictBlocks.js:411 -msgid "The Set-dict block sets a value in the dictionary for a specified key." +#: js/blocks/PitchBlocks.js:1790 +msgid "Scale Degree is a common convention in music. Scale Degree offers seven possible positions in the scale (1-7) and can be modified via accidentals." msgstr "" -#: js/DictBlocks.js:286 -#: js/DictBlocks.js:427 -#.TRANS: set a value in the dictionary for a given key -msgid "set value" +#: js/blocks/PitchBlocks.js:1792 +msgid "Scale Degree 1 is always the first pitch in a given scale, regardless of octave." msgstr "" -#: js/ExtrasBlocks.js:33 -msgid "fraction" +#: js/blocks/PitchBlocks.js:1814 +#.TRANS: step some number of notes in current musical scale +msgid "scalar step" msgstr "" -#: js/ExtrasBlocks.js:36 -msgid "Convert a float to a fraction" +#: js/blocks/PitchBlocks.js:1819 +msgid "The Scalar Step block (in combination with a Number block) will play the next pitch in a scale," msgstr "" -#: js/ExtrasBlocks.js:93 -msgid "save as ABC" +#: js/blocks/PitchBlocks.js:1821 +msgid "eg if the last note played was sol, Scalar Step 1 will play la." msgstr "" -#: js/ExtrasBlocks.js:96 -#: js/ExtrasBlocks.js:132 -#: js/ExtrasBlocks.js:168 -msgid "title" +#: js/blocks/PitchBlocks.js:1857 +msgid "The Pitch block specifies the pitch name and octave of a note that together determine the frequency of the note." msgstr "" -#: js/ExtrasBlocks.js:129 -msgid "save as Lilypond" +#: js/blocks/ProgramBlocks.js:33 +msgid "The Load-heap-from-app block loads the heap from a web page." msgstr "" -#: js/ExtrasBlocks.js:165 -msgid "save as SVG" +#: js/blocks/ProgramBlocks.js:44 +#.TRANS: load the heap contents from a URL +msgid "load heap from App" msgstr "" -#: js/ExtrasBlocks.js:216 -msgid "no background" +#: js/blocks/ProgramBlocks.js:95 +msgid "Error parsing JSON data:" msgstr "" -#: js/ExtrasBlocks.js:219 -msgid "The No background block eliminates the background from the saved SVG output." +#: js/blocks/ProgramBlocks.js:100 +msgid "404: Page not found" msgstr "" -#: js/ExtrasBlocks.js:247 -msgid "show blocks" +#: js/blocks/ProgramBlocks.js:133 +msgid "The Save-heap-to-app block saves the heap to a web page." msgstr "" -#: js/ExtrasBlocks.js:249 -msgid "The Show blocks block shows the blocks." +#: js/blocks/ProgramBlocks.js:144 +#.TRANS: save the heap contents to a URL +msgid "save heap to App" msgstr "" -#: js/ExtrasBlocks.js:274 -msgid "hide blocks" +#: js/blocks/ProgramBlocks.js:189 +msgid "Cannot find a valid heap for" msgstr "" -#: js/ExtrasBlocks.js:276 -msgid "The Hide blocks block hides the blocks." +#: js/blocks/ProgramBlocks.js:206 +msgid "The Load-heap block loads the heap from a file." msgstr "" -#: js/ExtrasBlocks.js:305 -#: js/ExtrasBlocks.js:335 -msgid "The Space block is used to add space between blocks." +#: js/blocks/ProgramBlocks.js:217 +#.TRANS: load the heap from a file +msgid "load heap" msgstr "" -#: js/ExtrasBlocks.js:373 -msgid "wait" +#: js/blocks/ProgramBlocks.js:270 +msgid "The file you selected does not contain a valid heap." msgstr "" -#: js/ExtrasBlocks.js:376 -msgid "The Wait block pauses the program for a specified number of seconds." +#: js/blocks/ProgramBlocks.js:275 +msgid "The loadHeap block needs a loadFile block." msgstr "" -#: js/ExtrasBlocks.js:430 -#: plugins/facebook.rtp:30 -msgid "comment" +#: js/blocks/ProgramBlocks.js:291 +msgid "The Set-heap block loads the heap." msgstr "" -#: js/ExtrasBlocks.js:466 -msgid "print" +#: js/blocks/ProgramBlocks.js:340 +msgid "The block you selected does not contain a valid heap." msgstr "" -#: js/ExtrasBlocks.js:473 -msgid "The Print block displays text at the top of the screen." +#: js/blocks/ProgramBlocks.js:343 +msgid "The Set heap block needs a heap." msgstr "" -#: js/ExtrasBlocks.js:579 -msgid "display grid" +#: js/blocks/ProgramBlocks.js:360 +msgid "The Load-dictionary block loads a dictionary from a file." msgstr "" -#: js/ExtrasBlocks.js:584 -msgid "The Display Grid Block changes the grid type" +#: js/blocks/ProgramBlocks.js:372 +#.TRANS: load a dictionary from a file +msgid "load dictionary" msgstr "" -#: js/ExtrasBlocks.js:686 -#: js/ExtrasBlocks.js:705 -#: js/ExtrasBlocks.js:728 -#: js/ExtrasBlocks.js:751 -#: js/ExtrasBlocks.js:769 -#: js/ExtrasBlocks.js:788 -#: js/ExtrasBlocks.js:807 -#: js/ExtrasBlocks.js:826 -msgid "unknown" +#: js/blocks/ProgramBlocks.js:390 +#: js/blocks/ProgramBlocks.js:658 +#: js/blocks/ToneBlocks.js:1025 +msgid "file" msgstr "" -#: js/SensorsBlocks.js:36 -msgid "The Input block prompts for keyboard input." +#: js/blocks/ProgramBlocks.js:444 +msgid "The file you selected does not contain a valid dictionary." msgstr "" -#: js/SensorsBlocks.js:46 -msgid "input" +#: js/blocks/ProgramBlocks.js:449 +msgid "The load dictionary block needs a load file block." msgstr "" -#: js/SensorsBlocks.js:64 -msgid "Input a value" +#: js/blocks/ProgramBlocks.js:466 +msgid "The Set-dictionary block loads a dictionary." msgstr "" -#: js/SensorsBlocks.js:126 -msgid "input value" +#: js/blocks/ProgramBlocks.js:477 +#.TRANS: load a dictionary from a JSON +msgid "set dictionary" msgstr "" -#: js/SensorsBlocks.js:131 -msgid "The Input-value block stores the input." +#: js/blocks/ProgramBlocks.js:546 +msgid "The block you selected does not contain a valid dictionary." msgstr "" -#: js/SensorsBlocks.js:238 -msgid "loudness" +#: js/blocks/ProgramBlocks.js:550 +msgid "The set dictionary block needs a dictionary." msgstr "" -#: js/SensorsBlocks.js:245 -msgid "The Loudness block returns the volume detected by the microphone." +#: js/blocks/ProgramBlocks.js:567 +msgid "The Save-heap block saves the heap to a file." msgstr "" -#: js/SensorsBlocks.js:300 -msgid "click" +#: js/blocks/ProgramBlocks.js:578 +#.TRANS: save the heap to a file +msgid "save heap" msgstr "" -#: js/SensorsBlocks.js:306 -msgid "The Click block triggers an event if a mouse has been clicked." +#: js/blocks/ProgramBlocks.js:629 +msgid "The Save-dictionary block saves a dictionary to a file." msgstr "" -#: js/SensorsBlocks.js:313 -msgid "The Click block triggers an event if a turtle has been clicked." +#: js/blocks/ProgramBlocks.js:640 +#.TRANS: save a dictionary to a file +msgid "save dictionary" msgstr "" -#: js/SensorsBlocks.js:342 -msgid "cursor over" +#: js/blocks/ProgramBlocks.js:720 +msgid "The Open palette block opens a palette." msgstr "" -#: js/SensorsBlocks.js:387 -msgid "cursor out" +#: js/blocks/ProgramBlocks.js:727 +msgid "open palette" msgstr "" -#: js/SensorsBlocks.js:433 -msgid "cursor button down" +#: js/blocks/ProgramBlocks.js:785 +msgid "The Delete block block removes a block." msgstr "" -#: js/SensorsBlocks.js:477 -msgid "cursor button up" +#: js/blocks/ProgramBlocks.js:797 +#.TRANS: Move this block to the trash. +msgid "delete block" msgstr "" -#: js/SensorsBlocks.js:638 -msgid "The Get red block returns the red component of the pixel under the mouse." +#: js/blocks/ProgramBlocks.js:861 +msgid "The Move block block moves a block." msgstr "" -#: js/SensorsBlocks.js:644 -msgid "The Get red block returns the red component of the pixel under the turtle." +#: js/blocks/ProgramBlocks.js:869 +#.TRANS: Move the position of a block on the screen. +msgid "move block" msgstr "" -#: js/SensorsBlocks.js:685 -#: plugins/rodi.rtp:216 -msgid "pixel color" +#: js/blocks/ProgramBlocks.js:881 +#: js/blocks/ProgramBlocks.js:1048 +msgid "block number" msgstr "" -#: js/SensorsBlocks.js:690 -msgid "The Get pixel block returns the color of the pixel under the mouse." +#: js/blocks/ProgramBlocks.js:935 +#.TRANS: Run program beginning at this block. +msgid "run block" msgstr "" -#: js/SensorsBlocks.js:696 -msgid "The Get pixel block returns the color of the pixel under the turtle." +#: js/blocks/ProgramBlocks.js:1025 +msgid "The Dock block block connections two blocks." msgstr "" -#: js/SensorsBlocks.js:758 -msgid "time" +#: js/blocks/ProgramBlocks.js:1036 +#.TRANS: We can connect a block to another block. +msgid "connect blocks" msgstr "" -#: js/SensorsBlocks.js:804 -msgid "cursor y" +#: js/blocks/ProgramBlocks.js:1048 +msgid "target block" msgstr "" -#: js/SensorsBlocks.js:809 -msgid "The Cursor Y block returns the vertical position of the mouse." +#: js/blocks/ProgramBlocks.js:1048 +msgid "connection number" msgstr "" -#: js/SensorsBlocks.js:845 -msgid "cursor x" +#: js/blocks/ProgramBlocks.js:1140 +msgid "The Make block block creates a new block." msgstr "" -#: js/SensorsBlocks.js:850 -msgid "The Cursor X block returns the horizontal position of the mouse." +#: js/blocks/ProgramBlocks.js:1152 +#.TRANS: Create a new block +msgid "make block" msgstr "" -#: js/SensorsBlocks.js:886 -msgid "mouse button" +#: js/blocks/ProgramBlocks.js:1285 +msgid "Cannot find block" msgstr "" -#: js/SensorsBlocks.js:888 -msgid "The Mouse-button block returns True if the mouse button is pressed." +#: js/blocks/ProgramBlocks.js:1304 +#: js/blocks/ProgramBlocks.js:1313 +msgid "Warning: block argument type mismatch" msgstr "" -#: js/SensorsBlocks.js:934 -msgid "to ASCII" +#: js/blocks/ProgramBlocks.js:1347 +msgid "The Open project block is used to open a project from a web page." msgstr "" -#: js/SensorsBlocks.js:938 -msgid "The To ASCII block converts numbers to letters." +#: js/blocks/ProgramBlocks.js:1357 +msgid "open project" msgstr "" -#: js/SensorsBlocks.js:1005 -msgid "The Keyboard block returns computer keyboard input." +#: js/blocks/ProgramBlocks.js:1410 +msgid "Please enter a valid URL." msgstr "" -#: js/IntervalsActions.js:216 -msgid "Adding missing pitch number 0." +#: js/blocks/ToneBlocks.js:34 +msgid "oscillator" msgstr "" -#: js/IntervalsActions.js:224 -msgid "Ignoring pitch numbers less than zero or greater than eleven." +#: js/blocks/ToneBlocks.js:42 +#: js/blocks/WidgetBlocks.js:179 +#: js/widgets/timbre.js:1558 +#: js/widgets/timbre.js:1808 +#.TRANS: there are different types (sine, triangle, square...) of oscillators. +#.TRANS: type of filter, e.g., lowpass, highpass, etc. +msgid "type" msgstr "" -#: js/IntervalsActions.js:230 -msgid "Ignoring duplicate pitch numbers." +#: js/blocks/ToneBlocks.js:44 +#: js/widgets/timbre.js:1562 +#.TRANS: Partials refers to the number of sine waves combined into the sound. +msgid "partials" msgstr "" -#: js/PitchActions.js:88 -msgid "The Scalar Step Block must be used inside of a Note Block." +#: js/blocks/ToneBlocks.js:76 +msgid "You are adding multiple oscillator blocks." msgstr "" -#: js/PitchActions.js:107 -msgid "The Scalar Step Block must be preceded by a Pitch Block." +#: js/blocks/ToneBlocks.js:144 +#: js/widgets/timbre.js:1225 +#.TRANS: a duo synthesizer combines a synth with a sequencer +msgid "duo synth" msgstr "" -#: js/DrumActions.js:231 -msgid "Noise Block: Did you mean to use a Note block?" +#: js/blocks/ToneBlocks.js:149 +msgid "The Duo synth block is a duo-frequency modulator used to define a timbre." msgstr "" -#: js/MeterActions.js:101 -#: js/MeterActions.js:139 -msgid "beats per minute must be greater than" +#: js/blocks/ToneBlocks.js:157 +#: js/widgets/timbre.js:1476 +msgid "vibrato rate" msgstr "" -#: js/MeterActions.js:111 -#: js/MeterActions.js:149 -msgid "maximum" +#: js/blocks/ToneBlocks.js:157 +msgid "vibrato intensity" msgstr "" -#: js/MeterActions.js:117 -#: js/MeterActions.js:155 -msgid "beats per minute is" +#: js/blocks/ToneBlocks.js:185 +#: js/widgets/timbre.js:1221 +#.TRANS: AM (amplitude modulation) synthesizer +msgid "AM synth" msgstr "" -#: js/ToneActions.js:134 -msgid "Vibrato intensity must be between 1 and 100." +#: js/blocks/ToneBlocks.js:189 +msgid "The AM synth block is an amplitude modulator used to define a timbre." msgstr "" -#: js/ToneActions.js:139 -msgid "Vibrato rate must be greater than 0." +#: js/blocks/ToneBlocks.js:224 +#: js/widgets/timbre.js:1223 +#.TRANS: FM (frequency modulation) synthesizer +msgid "FM synth" msgstr "" -#: js/ToneActions.js:192 -#: js/ToneActions.js:265 -#.TRANS: Depth is the intesity of the tremolo or chorus effect. -msgid "Depth is out of range." +#: js/blocks/ToneBlocks.js:228 +msgid "The FM synth block is a frequency modulator used to define a timbre." msgstr "" -#: js/ToneActions.js:301 -msgid "Distortion must be from 0 to 100." +#: js/blocks/ToneBlocks.js:262 +msgid "partial" msgstr "" -#: js/ToneActions.js:332 -#.TRANS: partials components in a harmonic series -msgid "Partial must be greater than or equal to 0." +#: js/blocks/ToneBlocks.js:265 +msgid "The Partial block is used to specify a weight for a specific partial harmonic." msgstr "" -#: js/ToneActions.js:378 -#: js/ToneActions.js:417 -#: js/ToneActions.js:456 -#: js/timbre.js:782 -msgid "Unable to use synth due to existing oscillator" +#: js/blocks/ToneBlocks.js:284 +#.TRANS: partials are weighted components in a harmonic series +msgid "Partial weight must be between 0 and 1." msgstr "" -#: js/ToneActions.js:388 -#: js/ToneActions.js:427 -msgid "The input cannot be negative." +#: js/blocks/ToneBlocks.js:297 +#.TRANS: partials are weighted components in a harmonic series +msgid "Partial block should be used inside of a Weighted-partials block." msgstr "" -#: js/DictActions.js:75 -#: js/DictActions.js:153 -#: js/DictActions.js:188 -msgid "font" +#: js/blocks/ToneBlocks.js:325 +#.TRANS: partials are weighted components in a harmonic series +msgid "weighted partials" msgstr "" -#: js/musicutils.js:363 -#: js/musicutils.js:471 -#: js/pitchdrummatrix.js:151 -#: js/musickeyboard.js:2563 -msgid "rest" +#: js/blocks/ToneBlocks.js:383 +msgid "The Harmonic block will add harmonics to the contained notes." msgstr "" -#: js/musicutils.js:565 -#.TRANS: ordinal number. Please keep exactly one space between each number. -msgid "1st 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th" +#: js/blocks/ToneBlocks.js:390 +#.TRANS: A harmonic is an overtone. +msgid "harmonic" msgstr "" -#: js/musicutils.js:629 -#: js/musicutils.js:812 -#: js/musicutils.js:911 -#.TRANS: augmented is a music term related to intervals -msgid "augmented" +#: js/blocks/ToneBlocks.js:431 +msgid "The Distortion block adds distortion to the pitch." msgstr "" -#: js/musicutils.js:631 -#: js/musicutils.js:813 -#: js/musicutils.js:910 -#.TRANS: diminished is a music term related to intervals and mode -msgid "diminished" +#: js/blocks/ToneBlocks.js:438 +#: js/widgets/timbre.js:2100 +#.TRANS: distortion is an alteration in the sound +msgid "distortion" msgstr "" -#: js/musicutils.js:639 -#.TRANS: twelve semi-tone scale for music -msgid "chromatic" +#: js/blocks/ToneBlocks.js:487 +msgid "The Tremolo block adds a wavering effect." msgstr "" -#: js/musicutils.js:640 -msgid "algerian" +#: js/blocks/ToneBlocks.js:495 +#: js/widgets/timbre.js:2092 +#.TRANS: a wavering effect in a musical tone +msgid "tremolo" msgstr "" -#: js/musicutils.js:641 -msgid "spanish" +#: js/blocks/ToneBlocks.js:500 +#: js/blocks/ToneBlocks.js:569 +#: js/blocks/ToneBlocks.js:630 +#: js/blocks/ToneBlocks.js:689 +#: js/widgets/timbre.js:2134 +#: js/widgets/timbre.js:2222 +#: js/widgets/timbre.js:2317 +#: js/widgets/timbre.js:2419 +#.TRANS: rate at which tremolo wavers +msgid "rate" msgstr "" -#: js/musicutils.js:643 -#.TRANS: modal scale in music -msgid "octatonic" +#: js/blocks/ToneBlocks.js:502 +#: js/blocks/ToneBlocks.js:630 +#: js/widgets/timbre.js:2137 +#: js/widgets/timbre.js:2328 +#.TRANS: amplitude of tremolo waver +msgid "depth" msgstr "" -#: js/musicutils.js:645 -#.TRANS: harmonic major scale in music -msgid "harmonic major" +#: js/blocks/ToneBlocks.js:559 +msgid "The Phaser block adds a sweeping sound." msgstr "" -#: js/musicutils.js:647 -#.TRANS: natural minor scales in music -msgid "natural minor" +#: js/blocks/ToneBlocks.js:566 +#: js/widgets/timbre.js:2098 +#.TRANS: alter the phase of the sound +msgid "phaser" msgstr "" -#: js/musicutils.js:649 -#.TRANS: harmonic minor scale in music -msgid "harmonic minor" +#: js/blocks/ToneBlocks.js:569 +#: js/turtleactions/IntervalsActions.js:114 +#: js/widgets/timbre.js:2422 +msgid "octaves" msgstr "" -#: js/musicutils.js:651 -#.TRANS: melodic minor scale in music -msgid "melodic minor" +#: js/blocks/ToneBlocks.js:569 +#: js/widgets/timbre.js:2425 +msgid "base frequency" msgstr "" -#: js/musicutils.js:655 -#.TRANS: modal scale for music -msgid "dorian" +#: js/blocks/ToneBlocks.js:619 +msgid "The Chorus block adds a chorus effect." msgstr "" -#: js/musicutils.js:657 -#.TRANS: modal scale for music -msgid "phrygian" +#: js/blocks/ToneBlocks.js:627 +#: js/widgets/timbre.js:2096 +#.TRANS: musical effect to simulate a choral sound +msgid "chorus" msgstr "" -#: js/musicutils.js:659 -#.TRANS: modal scale for music -msgid "lydian" +#: js/blocks/ToneBlocks.js:630 +msgid "delay" msgstr "" -#: js/musicutils.js:661 -#.TRANS: modal scale for music -msgid "mixolydian" +#: js/blocks/ToneBlocks.js:678 +msgid "The Vibrato block adds a rapid, slight variation in pitch." msgstr "" -#: js/musicutils.js:665 -#.TRANS: modal scale for music -msgid "locrian" +#: js/blocks/ToneBlocks.js:686 +#: js/widgets/timbre.js:2094 +#.TRANS: a rapid, slight variation in pitch +msgid "vibrato" msgstr "" -#: js/musicutils.js:667 -#.TRANS: minor jazz scale for music -msgid "jazz minor" +#: js/blocks/ToneBlocks.js:689 +#: js/widgets/timbre.js:2221 +msgid "intensity" msgstr "" -#: js/musicutils.js:669 -#.TRANS: bebop scale for music -msgid "bebop" +#: js/blocks/ToneBlocks.js:733 +#.TRANS: select synthesizer +msgid "set synth" msgstr "" -#: js/musicutils.js:670 -msgid "arabic" +#: js/blocks/ToneBlocks.js:804 +msgid "synth name" msgstr "" -#: js/musicutils.js:671 -msgid "byzantine" +#: js/blocks/ToneBlocks.js:842 +msgid "set default instrument" msgstr "" -#: js/musicutils.js:673 -#.TRANS: musical scale for music by Verdi -msgid "enigmatic" +#: js/blocks/ToneBlocks.js:895 +#: js/blocks/ToneBlocks.js:943 +#.TRANS: set the characteristics of a custom instrument +msgid "set instrument" msgstr "" -#: js/musicutils.js:674 -msgid "ethiopian" +#: js/blocks/ToneBlocks.js:898 +#: js/blocks/ToneBlocks.js:926 +#: js/blocks/ToneBlocks.js:932 +msgid "The Set instrument block selects a voice for the synthesizer," msgstr "" -#: js/musicutils.js:676 -#.TRANS: Ethiopic scale for music -msgid "geez" +#: js/blocks/ToneBlocks.js:900 +#: js/blocks/ToneBlocks.js:934 +msgid "eg guitar piano violin or cello." msgstr "" -#: js/musicutils.js:677 -msgid "hindu" +#: js/blocks/ToneBlocks.js:1015 +msgid "Import a sound file to use as an instrument and set its pitch center." msgstr "" -#: js/musicutils.js:678 -msgid "hungarian" +#: js/blocks/ToneBlocks.js:1110 +msgid "Upload a sound file to connect with the sample block." msgstr "" -#: js/musicutils.js:680 -#.TRANS: minor Romanian scale for music -msgid "romanian minor" +#: js/blocks/VolumeBlocks.js:35 +msgid "synth volume" msgstr "" -#: js/musicutils.js:681 -msgid "spanish gypsy" +#: js/blocks/VolumeBlocks.js:39 +msgid "The Synth volume block returns the current volume of the current synthesizer." msgstr "" -#: js/musicutils.js:683 -#.TRANS: musical scale for Mid-Eastern music -msgid "maqam" +#: js/blocks/VolumeBlocks.js:105 +msgid "master volume" msgstr "" -#: js/musicutils.js:685 -#.TRANS: minor blues scale for music -msgid "minor blues" +#: js/blocks/VolumeBlocks.js:109 +msgid "The Master volume block returns the master volume." msgstr "" -#: js/musicutils.js:687 -#.TRANS: major blues scale for music -msgid "major blues" +#: js/blocks/VolumeBlocks.js:355 +#: js/blocks/VolumeBlocks.js:524 +msgid "set synth volume" msgstr "" -#: js/musicutils.js:688 -msgid "whole tone" +#: js/blocks/VolumeBlocks.js:362 +#: js/blocks/VolumeBlocks.js:545 +msgid "synth" msgstr "" -#: js/musicutils.js:690 -#.TRANS: pentatonic is a general term that means "five note scale". This scale is typically known as "minor pentatonic" -msgid "minor pentatonic" +#: js/blocks/VolumeBlocks.js:403 +#: js/blocks/VolumeBlocks.js:577 +#: js/blocks/VolumeBlocks.js:740 +#: js/turtleactions/VolumeActions.js:173 +msgid "Setting volume to 0." msgstr "" -#: js/musicutils.js:692 -#.TRANS: pentatonic is a general term that means "five note scale". This scale is typically known as "major pentatonic" -msgid "major pentatonic" +#: js/blocks/VolumeBlocks.js:440 +msgid "Synth not found" msgstr "" -#: js/musicutils.js:693 -msgid "chinese" +#: js/blocks/VolumeBlocks.js:494 +msgid "set drum volume" msgstr "" -#: js/musicutils.js:694 -msgid "egyptian" +#: js/blocks/VolumeBlocks.js:530 +msgid "The Set synth volume block will change the volume of a particular synth," msgstr "" -#: js/musicutils.js:696 -#.TRANS: https://en.wikipedia.org/wiki/Hirajoshi_scale NOTE: There are three different versions of this scale -msgid "hirajoshi" +#: js/blocks/VolumeBlocks.js:532 +msgid "eg guitar violin snare drum etc." msgstr "" -#: js/musicutils.js:697 -msgid "Japan" +#: js/blocks/VolumeBlocks.js:534 +msgid "The default volume is 50." msgstr "" -#: js/musicutils.js:699 -#.TRANS: https://en.wikipedia.org/wiki/In_scale and https://en.wikipedia.org/wiki/Sakura_Sakura -msgid "in" +#: js/blocks/VolumeBlocks.js:536 +msgid "The range is 0 for silence to 100 for full volume." msgstr "" -#: js/musicutils.js:701 -#.TRANS: https://en.wikipedia.org/wiki/Miny%C5%8D_scale -msgid "minyo" +#: js/blocks/VolumeBlocks.js:597 +msgid "set panning" msgstr "" -#: js/musicutils.js:703 -#.TRANS: Italian mathematician -msgid "fibonacci" +#: js/blocks/VolumeBlocks.js:603 +msgid "The Set Panning block sets the panning for all synthesizers." msgstr "" -#: js/musicutils.js:708 -#: js/musicutils.js:1106 -#.TRANS: lowpass filter -msgid "lowpass" +#: js/blocks/VolumeBlocks.js:625 +msgid "Warning: Sound is coming out from only the left or right side." msgstr "" -#: js/musicutils.js:710 -#: js/musicutils.js:1107 -#.TRANS: bandpass filter -msgid "bandpass" +#: js/blocks/VolumeBlocks.js:647 +#: js/blocks/VolumeBlocks.js:695 +msgid "set master volume" msgstr "" -#: js/musicutils.js:712 -#: js/musicutils.js:1108 -#.TRANS: high-shelf filter -msgid "highshelf" +#: js/blocks/VolumeBlocks.js:653 +msgid "The Set master volume block sets the volume for all synthesizers." msgstr "" -#: js/musicutils.js:714 -#: js/musicutils.js:1109 -#.TRANS: low-shelf filter -msgid "lowshelf" +#: js/blocks/VolumeBlocks.js:784 +msgid "The Set relative volume block changes the volume of the contained notes." msgstr "" -#: js/musicutils.js:716 -#: js/musicutils.js:1110 -#.TRANS: notch-shelf filter -msgid "notch" +#: js/blocks/VolumeBlocks.js:791 +msgid "set relative volume" msgstr "" -#: js/musicutils.js:718 -#: js/musicutils.js:1111 -#.TRANS: all-pass filter -msgid "allpass" +#: js/blocks/VolumeBlocks.js:857 +msgid "decrescendo" msgstr "" -#: js/musicutils.js:720 -#: js/musicutils.js:1112 -#.TRANS: peaking filter -msgid "peaking" +#: js/blocks/VolumeBlocks.js:921 +msgid "crescendo" msgstr "" -#: js/musicutils.js:731 -#: js/synthutils.js:58 -#.TRANS: musical instrument -msgid "violin" +#: js/blocks/WidgetBlocks.js:81 +#.TRANS: sound envelope (ADSR) +msgid "envelope" msgstr "" -#: js/musicutils.js:732 -#: js/synthutils.js:60 -#.TRANS: viola musical instrument -msgid "viola" +#: js/blocks/WidgetBlocks.js:89 +#.TRANS: Attack time is the time taken for initial run-up of level from nil to peak, beginning when the key is first pressed. +msgid "attack" msgstr "" -#: js/musicutils.js:733 -#: js/synthutils.js:98 -#.TRANS: xylophone musical instrument -msgid "xylophone" +#: js/blocks/WidgetBlocks.js:91 +#.TRANS: Decay time is the time taken for the subsequent run down from the attack level to the designated sustain level. +msgid "decay" msgstr "" -#: js/musicutils.js:734 -#: js/synthutils.js:120 -#.TRANS: vibraphone musical instrument -msgid "vibraphone" +#: js/blocks/WidgetBlocks.js:93 +#.TRANS: Sustain level is the level during the main sequence of the sound's duration, until the key is released. +msgid "sustain" msgstr "" -#: js/musicutils.js:735 -#: js/synthutils.js:62 -#.TRANS: musical instrument -msgid "cello" +#: js/blocks/WidgetBlocks.js:95 +#.TRANS: Release time is the time taken for the level to decay from the sustain level to zero after the key is released. +msgid "release" msgstr "" -#: js/musicutils.js:737 -#: js/synthutils.js:66 -#.TRANS: viola musical instrument -msgid "double bass" +#: js/blocks/WidgetBlocks.js:113 +msgid "Attack value should be from 0 to 100." msgstr "" -#: js/musicutils.js:738 -#: js/synthutils.js:68 -#: js/rhythmruler.js:2119 -#.TRANS: musical instrument -msgid "guitar" +#: js/blocks/WidgetBlocks.js:116 +msgid "Decay value should be from 0 to 100." msgstr "" -#: js/musicutils.js:739 -#: js/synthutils.js:70 -#.TRANS: musical instrument -msgid "acoustic guitar" +#: js/blocks/WidgetBlocks.js:119 +msgid "Sustain value should be from 0 to 100." msgstr "" -#: js/musicutils.js:740 -#: js/synthutils.js:72 -#.TRANS: musical instrument -msgid "flute" +#: js/blocks/WidgetBlocks.js:122 +msgid "Release value should be from 0-100." msgstr "" -#: js/musicutils.js:741 -#: js/synthutils.js:74 -#.TRANS: musical instrument -msgid "clarinet" +#: js/blocks/WidgetBlocks.js:140 +msgid "You are adding multiple envelope blocks." msgstr "" -#: js/musicutils.js:742 -#: js/synthutils.js:76 -#.TRANS: musical instrument -msgid "saxophone" +#: js/blocks/WidgetBlocks.js:171 +#.TRANS: a filter removes some unwanted components from a signal +msgid "filter" msgstr "" -#: js/musicutils.js:743 -#: js/synthutils.js:78 -#.TRANS: musical instrument -msgid "tuba" +#: js/blocks/WidgetBlocks.js:181 +#: js/widgets/timbre.js:1818 +#.TRANS: rolloff is the steepness of a change in frequency. +msgid "rolloff" msgstr "" -#: js/musicutils.js:744 -#: js/synthutils.js:80 -#.TRANS: musical instrument -msgid "trumpet" +#: js/blocks/WidgetBlocks.js:213 +#.TRANS: rolloff is the steepness of a change in frequency. +msgid "Rolloff value should be either -12, -24, -48, or -96 decibels/octave." msgstr "" -#: js/musicutils.js:745 -#: js/synthutils.js:82 -#.TRANS: musical instrument -msgid "oboe" +#: js/blocks/WidgetBlocks.js:252 +msgid "The Temperament tool is used to define custom tuning." msgstr "" -#: js/musicutils.js:746 -#: js/synthutils.js:84 -#.TRANS: musical instrument -msgid "trombone" +#: js/blocks/WidgetBlocks.js:332 +#: js/blocks/WidgetBlocks.js:1573 +#: js/widgets/sampler.js:547 +msgid "Upload a sample and adjust its pitch center." msgstr "" -#: js/musicutils.js:747 -#: js/synthutils.js:100 -#.TRANS: polytone synthesizer -msgid "electronic synth" +#: js/blocks/WidgetBlocks.js:339 +#.TRANS: the speed at music is should be played. +msgid "sampler" msgstr "" -#: js/musicutils.js:748 -#: js/synthutils.js:102 -#.TRANS: simple monotone synthesizer -msgid "simple 1" +#: js/blocks/WidgetBlocks.js:517 +msgid "The Meter block opens a tool to select strong beats for the meter." msgstr "" -#: js/musicutils.js:749 -msgid "simple 2" +#: js/blocks/WidgetBlocks.js:573 +msgid "The oscilloscope block opens a tool to visualize waveforms." msgstr "" -#: js/musicutils.js:750 -msgid "simple 3" +#: js/blocks/WidgetBlocks.js:578 +msgid "oscilloscope" msgstr "" -#: js/musicutils.js:751 -msgid "simple 4" +#: js/blocks/WidgetBlocks.js:645 +msgid "The Custom mode block opens a tool to explore musical mode (the spacing of the notes in a scale)." msgstr "" -#: js/musicutils.js:753 -#: js/synthutils.js:49 -#.TRANS: brown noise synthesizer -msgid "brown noise" +#: js/blocks/WidgetBlocks.js:651 +#.TRANS: musical mode is the pattern of half-steps in an octave, e.g., Major or Minor modes +msgid "custom mode" msgstr "" -#: js/musicutils.js:754 -#: js/synthutils.js:51 -#.TRANS: pink noise synthesizer -msgid "pink noise" +#: js/blocks/WidgetBlocks.js:700 +msgid "The Tempo block opens a metronome to visualize the beat." msgstr "" -#: js/musicutils.js:756 -#: js/synthutils.js:127 -#: js/rhythmruler.js:1670 -#: js/rhythmruler.js:1928 -#.TRANS: musical instrument -msgid "snare drum" +#: js/blocks/WidgetBlocks.js:762 +msgid "The Arpeggio Widget is used to compose chord sequences." msgstr "" -#: js/musicutils.js:757 -#: js/synthutils.js:129 -#.TRANS: musical instrument -msgid "kick drum" +#: js/blocks/WidgetBlocks.js:837 +msgid "The Pitch drum matrix is used to map pitches to drum sounds." msgstr "" -#: js/musicutils.js:758 -#: js/synthutils.js:131 -#.TRANS: musical instrument -msgid "tom tom" +#: js/blocks/WidgetBlocks.js:842 +#.TRANS: makes a mapping between pitches and drum sounds +msgid "pitch-drum mapper" msgstr "" -#: js/musicutils.js:759 -#: js/synthutils.js:133 -#.TRANS: musical instrument -msgid "floor tom" +#: js/blocks/WidgetBlocks.js:891 +msgid "You must have at least one pitch block and one drum block in the matrix." msgstr "" -#: js/musicutils.js:760 -#: js/synthutils.js:135 -#.TRANS: musical instrument -msgid "bass drum" +#: js/blocks/WidgetBlocks.js:920 +msgid "The Pitch slider tool to is used to generate pitches at selected frequencies." msgstr "" -#: js/musicutils.js:761 -#: js/synthutils.js:137 -#.TRANS: a drum made from an inverted cup -msgid "cup drum" +#: js/blocks/WidgetBlocks.js:925 +#.TRANS: widget to generate pitches using a slider +msgid "pitch slider" msgstr "" -#: js/musicutils.js:762 -#: js/synthutils.js:139 -#.TRANS: musical instrument -msgid "darbuka drum" +#: js/blocks/WidgetBlocks.js:977 +msgid "chromatic keyboard" msgstr "" -#: js/musicutils.js:763 -#: js/synthutils.js:143 -#.TRANS: musical instrument -msgid "hi hat" +#: js/blocks/WidgetBlocks.js:1011 +#: js/blocks/WidgetBlocks.js:1077 +#.TRANS: widget to generate pitches using a slider +msgid "music keyboard" msgstr "" -#: js/musicutils.js:764 -#: js/synthutils.js:145 -#.TRANS: a small metal bell -msgid "ride bell" +#: js/blocks/WidgetBlocks.js:1062 +#: js/blocks/WidgetBlocks.js:1069 +msgid "The Music keyboard block opens a piano keyboard that can be used to create notes." msgstr "" -#: js/musicutils.js:765 -#: js/synthutils.js:147 -#.TRANS: musical instrument -msgid "cow bell" +#: js/blocks/WidgetBlocks.js:1128 +msgid "The Pitch staircase tool to is used to generate pitches from a given ratio." msgstr "" -#: js/musicutils.js:766 -msgid "japanese drum" +#: js/blocks/WidgetBlocks.js:1135 +#.TRANS: generate a progressive sequence of pitches +msgid "pitch staircase" msgstr "" -#: js/musicutils.js:767 -#: js/synthutils.js:153 -#.TRANS: musical instrument -msgid "japanese bell" +#: js/blocks/WidgetBlocks.js:1222 +msgid "The Rhythm Maker block opens a tool to create drum machines." msgstr "" -#: js/musicutils.js:768 -#: js/synthutils.js:149 -#.TRANS: musical instrument -msgid "triangle bell" +#: js/blocks/WidgetBlocks.js:1291 +msgid "G major scale" msgstr "" -#: js/musicutils.js:769 -#: js/synthutils.js:151 -#.TRANS: musical instrument -msgid "finger cymbals" +#: js/blocks/WidgetBlocks.js:1326 +msgid "C major scale" msgstr "" -#: js/musicutils.js:770 -#: js/synthutils.js:155 -#.TRANS: a musically tuned set of bells -msgid "chime" +#: js/blocks/WidgetBlocks.js:1366 +msgid "The Phrase Maker block opens a tool to create musical phrases." msgstr "" -#: js/musicutils.js:771 -#: js/synthutils.js:157 -#.TRANS: a musical instrument -msgid "gong" +#: js/blocks/WidgetBlocks.js:1373 +#.TRANS: assigns pitch to a sequence of beats to generate a melody +msgid "phrase maker" msgstr "" -#: js/musicutils.js:772 -#: js/synthutils.js:159 -#.TRANS: sound effect -msgid "clang" +#: js/blocks/WidgetBlocks.js:1444 +msgid "You must have at least one pitch block and one rhythm block in the matrix." msgstr "" -#: js/musicutils.js:773 -#: js/synthutils.js:161 -#.TRANS: sound effect -msgid "crash" +#: js/blocks/WidgetBlocks.js:1503 +msgid "The Status block opens a tool for inspecting the status of Music Blocks as it is running." msgstr "" -#: js/musicutils.js:774 -#: js/synthutils.js:163 -#.TRANS: sound effect -msgid "bottle" +#: js/blocks/WidgetBlocks.js:1580 +#.TRANS: AI-generated music +msgid "aimusic" msgstr "" -#: js/musicutils.js:775 -#: js/synthutils.js:165 -#.TRANS: sound effect -msgid "clap" +#: js/turtleactions/MeterActions.js:101 +#: js/turtleactions/MeterActions.js:139 +msgid "beats per minute must be greater than" msgstr "" -#: js/musicutils.js:776 -#: js/synthutils.js:167 -#.TRANS: sound effect -msgid "slap" +#: js/turtleactions/MeterActions.js:111 +#: js/turtleactions/MeterActions.js:149 +msgid "maximum" msgstr "" -#: js/musicutils.js:777 -#: js/synthutils.js:169 -#.TRANS: sound effect -msgid "splash" +#: js/turtleactions/MeterActions.js:117 +#: js/turtleactions/MeterActions.js:155 +msgid "beats per minute is" msgstr "" -#: js/musicutils.js:778 -#: js/synthutils.js:171 -#.TRANS: sound effect -msgid "bubbles" +#: js/turtleactions/DictActions.js:75 +#: js/turtleactions/DictActions.js:142 +#: js/turtleactions/DictActions.js:172 +msgid "font" msgstr "" -#: js/musicutils.js:779 -#: js/synthutils.js:173 -#.TRANS: sound effect -msgid "raindrop" +#: js/turtleactions/DictActions.js:255 +msgid "Dictionary with this name does not exist" msgstr "" -#: js/musicutils.js:780 -#: js/synthutils.js:175 -#.TRANS: animal sound effect -msgid "cat" +#: js/turtleactions/DictActions.js:259 +msgid "Key with this name does not exist in " msgstr "" -#: js/musicutils.js:781 -#: js/synthutils.js:177 -#.TRANS: animal sound effect -msgid "cricket" +#: js/turtleactions/DrumActions.js:227 +msgid "Noise Block: Did you mean to use a Note block?" msgstr "" -#: js/musicutils.js:782 -#: js/synthutils.js:179 -#.TRANS: animal sound effect -msgid "dog" +#: js/turtleactions/IntervalsActions.js:113 +msgid "one" msgstr "" -#: js/musicutils.js:784 -#: js/synthutils.js:86 -#.TRANS: musical instrument -msgid "banjo" +#: js/turtleactions/IntervalsActions.js:113 +msgid "two" msgstr "" -#: js/musicutils.js:785 -#: js/synthutils.js:88 -#.TRANS: musical instrument -msgid "koto" +#: js/turtleactions/IntervalsActions.js:113 +msgid "three" msgstr "" -#: js/musicutils.js:786 -#: js/synthutils.js:90 -#.TRANS: musical instrument -msgid "dulcimer" +#: js/turtleactions/IntervalsActions.js:113 +msgid "four" msgstr "" -#: js/musicutils.js:787 -#: js/synthutils.js:92 -#.TRANS: musical instrument -msgid "electric guitar" +#: js/turtleactions/IntervalsActions.js:113 +msgid "five" msgstr "" -#: js/musicutils.js:788 -#: js/synthutils.js:94 -#.TRANS: musical instrument -msgid "bassoon" +#: js/turtleactions/IntervalsActions.js:113 +msgid "six" msgstr "" -#: js/musicutils.js:789 -#: js/synthutils.js:96 -#.TRANS: musical instrument -msgid "celeste" +#: js/turtleactions/IntervalsActions.js:113 +msgid "seven" msgstr "" -#: js/musicutils.js:791 -#: js/musicutils.js:1123 -#: js/musicutils.js:1131 -#: js/temperament.js:650 -#.TRANS: musical temperament -msgid "equal" +#: js/turtleactions/IntervalsActions.js:113 +msgid "eight" msgstr "" -#: js/musicutils.js:793 -#: js/musicutils.js:1125 -#: js/musicutils.js:1133 -#.TRANS: musical temperament -msgid "Pythagorean" +#: js/turtleactions/IntervalsActions.js:113 +msgid "nine" msgstr "" -#: js/musicutils.js:795 -#: js/musicutils.js:1124 -#: js/musicutils.js:1132 -#.TRANS: musical temperament -msgid "just intonation" +#: js/turtleactions/IntervalsActions.js:119 +msgid "a" msgstr "" -#: js/musicutils.js:797 -#: js/musicutils.js:1126 -#: js/musicutils.js:1127 -#: js/musicutils.js:1134 -#: js/musicutils.js:1135 -#.TRANS: musical temperament -msgid "meantone" +#: js/turtleactions/IntervalsActions.js:120 +msgid "below" msgstr "" -#: js/musicutils.js:814 -msgid "major 7th" +#: js/turtleactions/IntervalsActions.js:124 +msgid "above" msgstr "" -#: js/musicutils.js:815 -msgid "minor 7th" +#: js/turtleactions/IntervalsActions.js:131 +msgid "plus" msgstr "" -#: js/musicutils.js:816 -msgid "dominant 7th" +#: js/turtleactions/IntervalsActions.js:139 +msgid " below" msgstr "" -#: js/musicutils.js:817 -msgid "minor-major 7th" +#: js/turtleactions/IntervalsActions.js:257 +msgid "Adding missing pitch number 0." msgstr "" -#: js/musicutils.js:818 -msgid "fully-diminished 7th" +#: js/turtleactions/IntervalsActions.js:265 +msgid "Ignoring pitch numbers less than zero or greater than eleven." msgstr "" -#: js/musicutils.js:819 -msgid "half-diminished 7th" +#: js/turtleactions/IntervalsActions.js:271 +msgid "Ignoring duplicate pitch numbers." msgstr "" -#: js/musicutils.js:4379 -#: js/musicutils.js:4416 -msgid "current" +#: js/turtleactions/ToneActions.js:134 +msgid "Vibrato intensity must be between 1 and 100." msgstr "" -#: js/musicutils.js:4382 -#: js/musicutils.js:4407 -msgid "next" +#: js/turtleactions/ToneActions.js:139 +msgid "Vibrato rate must be greater than 0." msgstr "" -#: js/musicutils.js:4385 -#: js/musicutils.js:4412 -msgid "previous" +#: js/turtleactions/ToneActions.js:192 +#: js/turtleactions/ToneActions.js:265 +#.TRANS: Depth is the intesity of the tremolo or chorus effect. +msgid "Depth is out of range." msgstr "" -#: js/synthutils.js:104 -#.TRANS: simple monotone synthesizer -msgid "simple-2" +#: js/turtleactions/ToneActions.js:301 +msgid "Distortion must be from 0 to 100." msgstr "" -#: js/synthutils.js:106 -#.TRANS: simple monotone synthesizer -msgid "simple-3" +#: js/turtleactions/ToneActions.js:332 +#.TRANS: partials components in a harmonic series +msgid "Partial must be greater than or equal to 0." msgstr "" -#: js/synthutils.js:108 -#.TRANS: simple monotone synthesizer -msgid "simple-4" +#: js/turtleactions/ToneActions.js:378 +#: js/turtleactions/ToneActions.js:417 +#: js/turtleactions/ToneActions.js:456 +#: js/widgets/timbre.js:782 +msgid "Unable to use synth due to existing oscillator" msgstr "" -#: js/synthutils.js:141 -#.TRANS: musical instrument -msgid "taiko" +#: js/turtleactions/ToneActions.js:388 +#: js/turtleactions/ToneActions.js:427 +msgid "The input cannot be negative." msgstr "" -#: js/modewidget.js:86 -#: js/modewidget.js:88 -#: js/modewidget.js:642 -#: js/modewidget.js:644 -#: js/modewidget.js:712 -#: js/modewidget.js:714 -#: js/temperament.js:2078 -#: js/rhythmruler.js:189 -#: js/rhythmruler.js:1410 -#: js/rhythmruler.js:1412 -#: js/rhythmruler.js:1435 -#: js/rhythmruler.js:1437 -#: js/meterwidget.js:89 -#: js/meterwidget.js:91 +#: js/widgets/modewidget.js:86 +#: js/widgets/modewidget.js:88 +#: js/widgets/modewidget.js:642 +#: js/widgets/modewidget.js:644 +#: js/widgets/modewidget.js:712 +#: js/widgets/modewidget.js:714 +#: js/widgets/meterwidget.js:194 +#: js/widgets/meterwidget.js:196 +#: js/widgets/temperament.js:2236 +#: js/widgets/rhythmruler.js:457 +#: js/widgets/rhythmruler.js:1790 +#: js/widgets/rhythmruler.js:1792 +#: js/widgets/rhythmruler.js:1816 +#: js/widgets/rhythmruler.js:1818 msgid "Play all" msgstr "" -#: js/modewidget.js:115 -#: js/pitchstaircase.js:641 -#: js/phrasemaker.js:339 -#: js/pitchdrummatrix.js:94 -#: js/pitchslider.js:125 -#: js/temperament.js:2083 -#: js/musickeyboard.js:530 -#: js/timbre.js:756 -#: js/meterwidget.js:124 -#: js/arpeggio.js:103 +#: js/widgets/modewidget.js:115 +#: js/widgets/meterwidget.js:229 +#: js/widgets/pitchdrummatrix.js:166 +#: js/widgets/pitchslider.js:125 +#: js/widgets/pitchstaircase.js:641 +#: js/widgets/temperament.js:2244 +#: js/widgets/timbre.js:756 +#: js/widgets/arpeggio.js:103 +#: js/widgets/musickeyboard.js:688 +#: js/widgets/phrasemaker.js:550 msgid "Save" msgstr "" -#: js/modewidget.js:121 -#: js/pitchstaircase.js:686 -#: js/phrasemaker.js:356 -#: js/pitchdrummatrix.js:109 -#: js/musickeyboard.js:534 -#: js/rhythmruler.js:269 -#: js/arpeggio.js:118 +#: js/widgets/modewidget.js:121 +#: js/widgets/pitchdrummatrix.js:181 +#: js/widgets/pitchstaircase.js:686 +#: js/widgets/arpeggio.js:118 +#: js/widgets/musickeyboard.js:696 +#: js/widgets/phrasemaker.js:567 +#: js/widgets/rhythmruler.js:601 #.TRANS: clear all subdivisions from the ruler. msgid "Clear" msgstr "" -#: js/modewidget.js:127 +#: js/widgets/modewidget.js:127 msgid "Rotate counter clockwise" msgstr "" -#: js/modewidget.js:133 +#: js/widgets/modewidget.js:133 msgid "Rotate clockwise" msgstr "" -#: js/modewidget.js:139 +#: js/widgets/modewidget.js:139 msgid "Invert" msgstr "" -#: js/modewidget.js:145 -#: js/pitchstaircase.js:678 -#: js/rhythmruler.js:258 -#: js/timbre.js:963 +#: js/widgets/modewidget.js:145 +#: js/widgets/pitchstaircase.js:678 +#: js/widgets/timbre.js:963 +#: js/widgets/rhythmruler.js:578 msgid "Undo" msgstr "" -#: js/modewidget.js:163 +#: js/widgets/modewidget.js:163 #.TRANS: A circle of notes represents the musical mode. msgid "Click in the circle to select notes for the mode." msgstr "" -#: js/modewidget.js:1017 -#: js/pitchstaircase.js:580 -#: js/phrasemaker.js:4855 -#: js/temperament.js:1754 -#: js/rhythmruler.js:1865 -#: js/rhythmruler.js:2081 -#: js/tempo.js:414 +#: js/widgets/modewidget.js:1017 +#: js/widgets/pitchstaircase.js:580 +#: js/widgets/temperament.js:1929 +#: js/widgets/tempo.js:414 +#: js/widgets/phrasemaker.js:5356 +#: js/widgets/rhythmruler.js:2254 +#: js/widgets/rhythmruler.js:2472 msgid "New action block generated!" msgstr "" -#: js/oscilloscope.js:79 -msgid "Zoom In" -msgstr "" - -#: js/oscilloscope.js:88 -msgid "Zoom Out" -msgstr "" - -#: js/pitchstaircase.js:624 -msgid "Play chord" -msgstr "" - -#: js/pitchstaircase.js:632 -msgid "Play scale" +#: js/widgets/meterwidget.js:275 +msgid "Reset" msgstr "" -#: js/pitchstaircase.js:696 -msgid "Click on a note to create a new step." +#: js/widgets/meterwidget.js:301 +msgid "Click in the circle to select strong beats for the meter." msgstr "" -#: js/phrasemaker.js:363 -msgid "Export" +#: js/widgets/oscilloscope.js:79 +msgid "Zoom In" msgstr "" -#: js/phrasemaker.js:370 -msgid "Sort" +#: js/widgets/oscilloscope.js:88 +msgid "Zoom Out" msgstr "" -#: js/phrasemaker.js:373 -#: js/musickeyboard.js:559 -msgid "Add note" +#: js/widgets/pitchdrummatrix.js:356 +#: js/widgets/pitchdrummatrix.js:752 +msgid "Click in the grid to map notes to drums." msgstr "" -#: js/phrasemaker.js:764 -msgid "Click on the table to add notes." +#: js/widgets/pitchslider.js:103 +msgid "Move up" msgstr "" -#: js/phrasemaker.js:2414 -#: js/phrasemaker.js:2543 -msgid "tuplet value" +#: js/widgets/pitchslider.js:114 +msgid "Move down" msgstr "" -#: js/pitchdrummatrix.js:270 -#: js/pitchdrummatrix.js:639 -msgid "Click in the grid to map notes to drums." +#: js/widgets/pitchslider.js:136 +msgid "Click on the slider to create a note block." msgstr "" -#: js/pitchslider.js:103 -msgid "Move up" +#: js/widgets/pitchstaircase.js:624 +msgid "Play chord" msgstr "" -#: js/pitchslider.js:114 -msgid "Move down" +#: js/widgets/pitchstaircase.js:632 +msgid "Play scale" msgstr "" -#: js/pitchslider.js:136 -msgid "Click on the slider to create a note block." +#: js/widgets/pitchstaircase.js:696 +msgid "Click on a note to create a new step." msgstr "" -#: js/temperament.js:215 +#: js/widgets/temperament.js:321 msgid "back to 2:1 octave space" msgstr "" -#: js/temperament.js:323 +#: js/widgets/temperament.js:447 msgid "edit" msgstr "" -#: js/temperament.js:330 -#: js/temperament.js:332 -#: js/temperament.js:1336 -#: js/temperament.js:1338 +#: js/widgets/temperament.js:454 +#: js/widgets/temperament.js:456 +#: js/widgets/temperament.js:1493 +#: js/widgets/temperament.js:1495 msgid "close" msgstr "" -#: js/temperament.js:423 -#: js/temperament.js:736 -#: js/temperament.js:743 -#: js/temperament.js:845 -#: js/temperament.js:935 -#: js/temperament.js:942 -#: js/temperament.js:1015 -#: js/temperament.js:1284 -#: js/temperament.js:1354 -#: js/temperament.js:1430 +#: js/widgets/temperament.js:552 +#: js/widgets/temperament.js:877 +#: js/widgets/temperament.js:884 +#: js/widgets/temperament.js:986 +#: js/widgets/temperament.js:1080 +#: js/widgets/temperament.js:1087 +#: js/widgets/temperament.js:1160 +#: js/widgets/temperament.js:1433 +#: js/widgets/temperament.js:1511 +#: js/widgets/temperament.js:1596 msgid "done" msgstr "" -#: js/temperament.js:477 -#: js/temperament.js:482 -#: js/temperament.js:918 +#: js/widgets/temperament.js:610 +#: js/widgets/temperament.js:615 +#: js/widgets/temperament.js:1063 msgid "ratio" msgstr "" -#: js/temperament.js:483 +#: js/widgets/temperament.js:616 msgid "interval" msgstr "" -#: js/temperament.js:611 +#: js/widgets/temperament.js:744 msgid "non scalar" msgstr "" -#: js/temperament.js:650 +#: js/widgets/temperament.js:787 msgid "ratios" msgstr "" -#: js/temperament.js:650 +#: js/widgets/temperament.js:787 msgid "arbitrary" msgstr "" -#: js/temperament.js:719 +#: js/widgets/temperament.js:860 msgid "number of divisions" msgstr "" -#: js/temperament.js:741 -#: js/temperament.js:858 -#: js/temperament.js:940 -#: js/temperament.js:1033 +#: js/widgets/temperament.js:882 +#: js/widgets/temperament.js:999 +#: js/widgets/temperament.js:1085 +#: js/widgets/temperament.js:1178 msgid "preview" msgstr "" -#: js/temperament.js:788 +#: js/widgets/temperament.js:929 msgid "The Number of divisions is too large." msgstr "" -#: js/temperament.js:921 +#: js/widgets/temperament.js:1066 msgid "recursion" msgstr "" -#: js/temperament.js:1450 +#: js/widgets/temperament.js:1616 msgid "The octave ratio has changed. This changes temperament significantly." msgstr "" -#: js/temperament.js:2087 +#: js/widgets/temperament.js:2248 msgid "Table" msgstr "" -#: js/temperament.js:2185 +#: js/widgets/temperament.js:2356 msgid "Add pitches" msgstr "" -#: js/musickeyboard.js:570 -msgid "Metronome" +#: js/widgets/tempo.js:78 +#: js/widgets/tempo.js:97 +#: js/widgets/tempo.js:99 +#: js/widgets/aiwidget.js:134 +#: js/widgets/aiwidget.js:136 +#: js/widgets/rhythmruler.js:681 +#: js/widgets/rhythmruler.js:683 +#: js/widgets/rhythmruler.js:1864 +#: js/widgets/rhythmruler.js:1866 +#: js/widgets/sampler.js:180 +#: js/widgets/sampler.js:182 +msgid "Pause" msgstr "" -#: js/musickeyboard.js:1296 -#: plugins/rodi.rtp:193 -msgid "duration" +#: js/widgets/tempo.js:113 +msgid "Save tempo" msgstr "" -#: js/musickeyboard.js:2840 -msgid "New action blocks generated!" +#: js/widgets/tempo.js:144 +msgid "speed up" msgstr "" -#: js/musickeyboard.js:2841 -msgid "New action block generated" +#: js/widgets/tempo.js:150 +msgid "slow down" msgstr "" -#: js/musickeyboard.js:2984 -#: js/musickeyboard.js:2992 -msgid "MIDI device present." +#: js/widgets/tempo.js:194 +msgid "Adjust the tempo with the buttons." msgstr "" -#: js/musickeyboard.js:2995 -msgid "No MIDI device found." +#: js/widgets/tempo.js:261 +msgid "Please enter a number between 30 and 1000" msgstr "" -#: js/musickeyboard.js:3000 -msgid "Failed to get MIDI access in browser." +#: js/widgets/tempo.js:268 +#: js/widgets/tempo.js:271 +msgid "The beats per minute must be between 30 and 1000." msgstr "" -#: js/rhythmruler.js:202 -msgid "Save rhythms" +#: js/widgets/tempo.js:287 +msgid "The beats per minute must be below 1000." msgstr "" -#: js/rhythmruler.js:222 -msgid "Save drum machine" +#: js/widgets/tempo.js:303 +msgid "The beats per minute must be above 30" msgstr "" -#: js/rhythmruler.js:263 -#.TRANS: user can tap out a rhythm by clicking on a ruler. -msgid "Tap a rhythm" +#: js/widgets/timbre.js:766 +msgid "Synthesizer" msgstr "" -#: js/rhythmruler.js:342 -#: js/rhythmruler.js:344 -#: js/rhythmruler.js:1481 -#: js/rhythmruler.js:1483 -#: js/sampler.js:110 -#: js/sampler.js:112 -#: js/tempo.js:78 -#: js/tempo.js:97 -#: js/tempo.js:99 -msgid "Pause" +#: js/widgets/timbre.js:789 +msgid "Oscillator" msgstr "" -#: js/rhythmruler.js:478 -msgid "Click on the ruler to divide it." +#: js/widgets/timbre.js:840 +msgid "Envelope" msgstr "" -#: js/rhythmruler.js:603 -#: js/rhythmruler.js:605 -#: js/rhythmruler.js:804 -#: js/rhythmruler.js:806 -#: js/rhythmruler.js:1386 -#: js/rhythmruler.js:1388 -msgid "tap a rhythm" +#: js/widgets/timbre.js:886 +#: planet/js/GlobalTag.js:50 +#.TRANS: On the Planet, we use labels to tag projects. +msgid "Effects" msgstr "" -#: js/rhythmruler.js:1084 -msgid "Maximum value of 256 has been exceeded." +#: js/widgets/timbre.js:904 +msgid "Filter" msgstr "" -#: js/sampler.js:137 -msgid "Warning: Sample is bigger than 1MB." +#: js/widgets/timbre.js:946 +msgid "Add filter" msgstr "" -#: js/sampler.js:142 -msgid "Upload failed: Sample is not a .wav file." +#: js/widgets/timbre.js:987 +msgid "Click on buttons to open the timbre design tools." msgstr "" -#: js/sampler.js:164 -msgid "A new sample block was generated." +#: js/widgets/timbre.js:1273 +msgid "harmonicity" msgstr "" -#: js/sampler.js:255 -msgid "Upload sample" +#: js/widgets/timbre.js:1340 +#: js/widgets/timbre.js:1406 +msgid "modulation index" msgstr "" -#: js/sampler.js:306 -msgid "Save sample" +#: js/widgets/timbre.js:1484 +msgid "vibrato amount" msgstr "" -#: js/sampler.js:697 -#.TRANS: The reference tone is a sound used for comparison. -msgid "reference tone" +#: js/widgets/timbre.js:1919 +msgid "Filter already present." msgstr "" -#: js/tempo.js:113 -msgid "Save tempo" +#: js/widgets/timbre.js:2322 +msgid "delay (MS)" msgstr "" -#: js/tempo.js:144 -msgid "speed up" +#: js/widgets/timbre.js:2507 +msgid "distortion amount" msgstr "" -#: js/tempo.js:150 -msgid "slow down" +#: js/widgets/aiwidget.js:180 +#: js/widgets/sampler.js:227 +msgid "Warning: Sample is bigger than 1MB." msgstr "" -#: js/tempo.js:194 -msgid "Adjust the tempo with the buttons." +#: js/widgets/aiwidget.js:539 +msgid "New start block generated" msgstr "" -#: js/tempo.js:261 -msgid "Please enter a number between 30 and 1000" +#: js/widgets/aiwidget.js:541 +msgid "MIDI loading. This may take some time depending upon the number of notes in the track" msgstr "" -#: js/tempo.js:268 -#: js/tempo.js:271 -msgid "The beats per minute must be between 30 and 1000." +#: js/widgets/aiwidget.js:551 +#: js/widgets/sampler.js:254 +msgid "Upload failed: Sample is not a .wav file." msgstr "" -#: js/tempo.js:287 -msgid "The beats per minute must be below 1000." +#: js/widgets/aiwidget.js:679 +#: js/widgets/sampler.js:432 +msgid "Save sample" msgstr "" -#: js/tempo.js:303 -msgid "The beats per minute must be above 30" +#: js/widgets/aiwidget.js:701 +msgid "AI Music" msgstr "" -#: js/timbre.js:766 -msgid "Synthesizer" +#: js/widgets/arpeggio.js:239 +msgid "Click in the grid to add steps to the arpeggio." msgstr "" -#: js/timbre.js:789 -msgid "Oscillator" +#: js/widgets/help.js:95 +#: js/widgets/help.js:125 +#: js/widgets/help.js:146 +#: js/widgets/help.js:158 +#: js/widgets/help.js:376 +#: js/widgets/help.js:391 +msgid "Take a tour" msgstr "" -#: js/timbre.js:840 -msgid "Envelope" +#: js/widgets/musickeyboard.js:725 +#: js/widgets/phrasemaker.js:584 +msgid "Add note" msgstr "" -#: js/timbre.js:886 -#: js/GlobalTag.js:50 -#.TRANS: On the Planet, we use labels to tag projects. -msgid "Effects" +#: js/widgets/musickeyboard.js:744 +msgid "Metronome" +msgstr "" + +#: js/widgets/musickeyboard.js:1549 +#: plugins/rodi.rtp:193 +msgid "duration" +msgstr "" + +#: js/widgets/musickeyboard.js:3179 +msgid "New action blocks generated" +msgstr "" + +#: js/widgets/musickeyboard.js:3180 +msgid "New action block generated" msgstr "" -#: js/timbre.js:904 -msgid "Filter" +#: js/widgets/musickeyboard.js:3365 +#: js/widgets/musickeyboard.js:3373 +msgid "MIDI device present." msgstr "" -#: js/timbre.js:946 -msgid "Add filter" +#: js/widgets/musickeyboard.js:3376 +msgid "No MIDI device found." msgstr "" -#: js/timbre.js:987 -msgid "Click on buttons to open the timbre design tools." +#: js/widgets/musickeyboard.js:3386 +msgid "Failed to get MIDI access in browser." msgstr "" -#: js/timbre.js:1273 -msgid "harmonicity" +#: js/widgets/phrasemaker.js:574 +msgid "Export" msgstr "" -#: js/timbre.js:1340 -#: js/timbre.js:1406 -msgid "modulation index" +#: js/widgets/phrasemaker.js:581 +msgid "Sort" msgstr "" -#: js/timbre.js:1484 -msgid "vibrato amount" +#: js/widgets/phrasemaker.js:975 +msgid "Click on the table to add notes." msgstr "" -#: js/timbre.js:1919 -msgid "Filter already present." +#: js/widgets/phrasemaker.js:2677 +#: js/widgets/phrasemaker.js:2819 +msgid "tuplet value" msgstr "" -#: js/timbre.js:2322 -msgid "delay (MS)" +#: js/widgets/rhythmruler.js:486 +msgid "Save rhythms" msgstr "" -#: js/timbre.js:2507 -msgid "distortion amount" +#: js/widgets/rhythmruler.js:512 +msgid "Save drum machine" msgstr "" -#: js/meterwidget.js:170 -msgid "Reset" +#: js/widgets/rhythmruler.js:589 +#.TRANS: user can tap out a rhythm by clicking on a ruler. +msgid "Tap a rhythm" msgstr "" -#: js/meterwidget.js:196 -msgid "Click in the circle to select strong beats for the meter." +#: js/widgets/rhythmruler.js:817 +msgid "Click on the ruler to divide it." msgstr "" -#: js/arpeggio.js:239 -msgid "Click in the grid to add steps to the arpeggio." +#: js/widgets/rhythmruler.js:950 +#: js/widgets/rhythmruler.js:952 +#: js/widgets/rhythmruler.js:1152 +#: js/widgets/rhythmruler.js:1154 +#: js/widgets/rhythmruler.js:1765 +#: js/widgets/rhythmruler.js:1767 +msgid "tap a rhythm" msgstr "" -#: js/ProjectStorage.js:243 -msgid "anonymous" +#: js/widgets/rhythmruler.js:1459 +msgid "Maximum value of 256 has been exceeded." msgstr "" -#: js/GlobalCard.js:68 -msgid "Share" +#: js/widgets/sampler.js:237 +msgid "Recording started..." msgstr "" -#: js/GlobalCard.js:74 -msgid "Flags" +#: js/widgets/sampler.js:245 +msgid "Recording complete..." msgstr "" -#: js/LocalCard.js:36 -msgid "View published project" +#: js/widgets/sampler.js:283 +msgid "A new sample block was generated." msgstr "" -#: js/LocalCard.js:42 -msgid "Publish project" +#: js/widgets/sampler.js:378 +msgid "Upload sample" msgstr "" -#: js/LocalCard.js:51 -msgid "Edit project" +#: js/widgets/sampler.js:399 +msgid "Warning: Your sample cannot be loaded because it is >1MB." msgstr "" -#: js/LocalCard.js:52 -msgid "Delete project" +#: js/widgets/sampler.js:448 +msgid "Toggle Mic" msgstr "" -#: js/LocalCard.js:53 -msgid "Download project" +#: js/widgets/sampler.js:458 +msgid "Playback" msgstr "" -#: js/LocalCard.js:55 -msgid "Duplicate project" +#: js/widgets/sampler.js:979 +#.TRANS: The reference tone is a sound used for comparison. +msgid "reference tone" msgstr "" -#: js/GlobalTag.js:28 +#: planet/js/GlobalTag.js:28 #.TRANS: On the Planet, we use labels to tag projects. msgid "All Projects" msgstr "" -#: js/GlobalTag.js:30 -#: js/StringHelper.js:37 +#: planet/js/GlobalTag.js:30 +#: planet/js/StringHelper.js:37 #.TRANS: On the Planet, we use labels to tag projects. msgid "My Projects" msgstr "" -#: js/GlobalTag.js:32 +#: planet/js/GlobalTag.js:32 #.TRANS: On the Planet, we use labels to tag projects. msgid "Examples" msgstr "" -#: js/GlobalTag.js:34 +#: planet/js/GlobalTag.js:34 #.TRANS: On the Planet, we use labels to tag projects. msgid "Music" msgstr "" -#: js/GlobalTag.js:36 +#: planet/js/GlobalTag.js:36 #.TRANS: On the Planet, we use labels to tag projects. msgid "Art" msgstr "" -#: js/GlobalTag.js:38 +#: planet/js/GlobalTag.js:38 #.TRANS: On the Planet, we use labels to tag projects. msgid "Math" msgstr "" -#: js/GlobalTag.js:40 +#: planet/js/GlobalTag.js:40 #.TRANS: On the Planet, we use labels to tag projects. msgid "Interactive" msgstr "" -#: js/GlobalTag.js:42 +#: planet/js/GlobalTag.js:42 #.TRANS: On the Planet, we use labels to tag projects. msgid "Design" msgstr "" -#: js/GlobalTag.js:44 +#: planet/js/GlobalTag.js:44 #.TRANS: On the Planet, we use labels to tag projects. msgid "Game" msgstr "" -#: js/GlobalTag.js:46 +#: planet/js/GlobalTag.js:46 #.TRANS: On the Planet, we use labels to tag projects. msgid "Media" msgstr "" -#: js/GlobalTag.js:48 +#: planet/js/GlobalTag.js:48 #.TRANS: On the Planet, we use labels to tag projects. msgid "Sensors" msgstr "" -#: js/GlobalTag.js:52 +#: planet/js/GlobalTag.js:52 #.TRANS: On the Planet, we use labels to tag projects. msgid "Code Snippet" msgstr "" -#: js/helper.js:149 -#: js/StringHelper.js:49 -msgid "Show more tags" +#: planet/js/LocalCard.js:36 +msgid "View published project" msgstr "" -#: js/helper.js:150 -msgid "Show fewer tags" +#: planet/js/LocalCard.js:42 +msgid "Publish project" +msgstr "" + +#: planet/js/LocalCard.js:51 +msgid "Edit project" +msgstr "" + +#: planet/js/LocalCard.js:52 +msgid "Delete project" +msgstr "" + +#: planet/js/LocalCard.js:53 +msgid "Download project" +msgstr "" + +#: planet/js/LocalCard.js:55 +msgid "Duplicate project" +msgstr "" + +#: planet/js/ProjectStorage.js:243 +msgid "anonymous" +msgstr "" + +#: planet/js/SaveInterface.js:34 +msgid "Open in Music Blocks" +msgstr "" + +#: planet/js/SaveInterface.js:35 +msgid "Open in Turtle Blocks" +msgstr "" + +#: planet/js/GlobalCard.js:68 +msgid "Share" +msgstr "" + +#: planet/js/GlobalCard.js:74 +msgid "Flags" +msgstr "" + +#: planet/js/GlobalPlanet.js:35 +msgid "No results found." +msgstr "" + +#: planet/js/GlobalPlanet.js:51 +msgid "Remix of" +msgstr "" + +#: planet/js/GlobalPlanet.js:509 +msgid "Cannot connect to server" msgstr "" -#: js/ProjectViewer.js:30 +#: planet/js/ProjectViewer.js:30 msgid "Error: Report could not be submitted. Try again later." msgstr "" -#: js/ProjectViewer.js:31 +#: planet/js/ProjectViewer.js:31 msgid "Thank you for reporting this project. A moderator will review the project shortly, to verify violation of the Sugar Labs Code of Conduct." msgstr "" -#: js/ProjectViewer.js:32 -#: js/StringHelper.js:62 -#: js/StringHelper.js:64 -#: js/StringHelper.js:68 +#: planet/js/ProjectViewer.js:32 +#: planet/js/StringHelper.js:62 +#: planet/js/StringHelper.js:64 +#: planet/js/StringHelper.js:68 msgid "Report Project" msgstr "" -#: js/ProjectViewer.js:33 -#: js/StringHelper.js:63 +#: planet/js/ProjectViewer.js:33 +#: planet/js/StringHelper.js:63 msgid "Project Reported" msgstr "" -#: js/ProjectViewer.js:34 +#: planet/js/ProjectViewer.js:34 msgid "Report description required" msgstr "" -#: js/ProjectViewer.js:35 +#: planet/js/ProjectViewer.js:35 msgid "Report description too long" msgstr "" -#: js/StringHelper.js:30 +#: planet/js/Publisher.js:30 +msgid "Feature unavailable - cannot connect to server. Reload Music Blocks to try again." +msgstr "" + +#: planet/js/Publisher.js:220 +#: planet/js/Publisher.js:237 +msgid "This field is required" +msgstr "" + +#: planet/js/Publisher.js:227 +msgid "Title too long" +msgstr "" + +#: planet/js/Publisher.js:244 +msgid "Description too long" +msgstr "" + +#: planet/js/Publisher.js:341 +msgid "Server Error" +msgstr "" + +#: planet/js/Publisher.js:341 +msgid "Try Again" +msgstr "" + +#: planet/js/StringHelper.js:30 msgid "Planet" msgstr "" -#: js/StringHelper.js:31 +#: planet/js/StringHelper.js:31 msgid "Close Planet" msgstr "" -#: js/StringHelper.js:32 +#: planet/js/StringHelper.js:32 msgid "Open project from file" msgstr "" -#: js/StringHelper.js:34 +#: planet/js/StringHelper.js:34 msgid "Local" msgstr "" -#: js/StringHelper.js:35 +#: planet/js/StringHelper.js:35 msgid "Global" msgstr "" -#: js/StringHelper.js:36 +#: planet/js/StringHelper.js:36 msgid "Search for a project" msgstr "" -#: js/StringHelper.js:38 +#: planet/js/StringHelper.js:38 msgid "Publish Project" msgstr "" -#: js/StringHelper.js:40 +#: planet/js/StringHelper.js:40 msgid "Tags (max 5)" msgstr "" -#: js/StringHelper.js:41 -#: js/StringHelper.js:61 +#: planet/js/StringHelper.js:41 +#: planet/js/StringHelper.js:61 msgid "Description" msgstr "" -#: js/StringHelper.js:42 -#: js/StringHelper.js:67 +#: planet/js/StringHelper.js:42 +#: planet/js/StringHelper.js:67 msgid "Submit" msgstr "" -#: js/StringHelper.js:43 -#: js/StringHelper.js:47 +#: planet/js/StringHelper.js:43 +#: planet/js/StringHelper.js:47 msgid "Cancel" msgstr "" -#: js/StringHelper.js:44 +#: planet/js/StringHelper.js:44 msgid "Delete \\"\\"?" msgstr "" -#: js/StringHelper.js:45 +#: planet/js/StringHelper.js:45 msgid "Permanently delete project \\"\\"?" msgstr "" -#: js/StringHelper.js:48 +#: planet/js/StringHelper.js:48 msgid "Explore Projects" msgstr "" -#: js/StringHelper.js:50 +#: planet/js/StringHelper.js:49 +#: planet/js/helper.js:149 +msgid "Show more tags" +msgstr "" + +#: planet/js/StringHelper.js:50 msgid "Most recent" msgstr "" -#: js/StringHelper.js:51 +#: planet/js/StringHelper.js:51 msgid "Most liked" msgstr "" -#: js/StringHelper.js:52 +#: planet/js/StringHelper.js:52 msgid "Most downloaded" msgstr "" -#: js/StringHelper.js:53 +#: planet/js/StringHelper.js:53 msgid "A-Z" msgstr "" -#: js/StringHelper.js:54 +#: planet/js/StringHelper.js:54 msgid "Sort by" msgstr "" -#: js/StringHelper.js:55 +#: planet/js/StringHelper.js:55 msgid "Load More Projects" msgstr "" -#: js/StringHelper.js:56 +#: planet/js/StringHelper.js:56 msgid "Last Updated" msgstr "" -#: js/StringHelper.js:57 +#: planet/js/StringHelper.js:57 msgid "Creation Date" msgstr "" -#: js/StringHelper.js:58 +#: planet/js/StringHelper.js:58 msgid "Number of Downloads:" msgstr "" -#: js/StringHelper.js:59 +#: planet/js/StringHelper.js:59 msgid "Number of Likes:" msgstr "" -#: js/StringHelper.js:60 +#: planet/js/StringHelper.js:60 msgid "Tags:" msgstr "" -#: js/StringHelper.js:65 +#: planet/js/StringHelper.js:65 msgid "Report projects which violate the Sugar Labs Code of Conduct." msgstr "" -#: js/StringHelper.js:66 +#: planet/js/StringHelper.js:66 msgid "Reason for reporting project" msgstr "" -#: js/StringHelper.js:70 +#: planet/js/StringHelper.js:70 msgid "Download as File" msgstr "" -#: js/GlobalPlanet.js:35 -msgid "No results found." -msgstr "" - -#: js/GlobalPlanet.js:51 -msgid "Remix of" -msgstr "" - -#: js/GlobalPlanet.js:509 -msgid "Cannot connect to server" -msgstr "" - -#: js/Publisher.js:30 -msgid "Feature unavailable - cannot connect to server. Reload Music Blocks to try again." -msgstr "" - -#: js/Publisher.js:218 -#: js/Publisher.js:235 -msgid "This field is required" -msgstr "" - -#: js/Publisher.js:225 -msgid "Title too long" +#: planet/js/helper.js:150 +msgid "Show fewer tags" msgstr "" -#: js/Publisher.js:242 -msgid "Description too long" +#: plugins/accelerometer.rtp:48 +msgid "motion x" msgstr "" -#: js/Publisher.js:339 -msgid "Server Error" +#: plugins/accelerometer.rtp:56 +msgid "motion y" msgstr "" -#: js/Publisher.js:339 -msgid "Try Again" +#: plugins/accelerometer.rtp:64 +msgid "motion z" msgstr "" -#: js/SaveInterface.js:34 -msgid "Open in Music Blocks" +#: plugins/facebook.rtp:27 +msgid "publish" msgstr "" -#: js/SaveInterface.js:35 -msgid "Open in Turtle Blocks" +#: plugins/maths.rtp:62 +msgid "power" msgstr "" -#: plugins/weather.rtp:68 -#: plugins/weather.rtp:97 -msgid "Days ahead must be in the range of -1 to 5." +#: plugins/maths.rtp:62 +msgid "base" msgstr "" -#: plugins/weather.rtp:122 -msgid "forecast" +#: plugins/maths.rtp:62 +msgid "exp" msgstr "" -#: plugins/weather.rtp:123 -#: plugins/weather.rtp:137 -#: plugins/weather.rtp:150 -msgid "city" +#: plugins/maths.rtp:99 +msgid "floor" msgstr "" -#: plugins/weather.rtp:124 -#: plugins/weather.rtp:138 -#: plugins/weather.rtp:151 -msgid "day" +#: plugins/maths.rtp:104 +msgid "ceiling" msgstr "" -#: plugins/weather.rtp:136 -msgid "high" +#: plugins/maths.rtp:109 +msgid "to degrees" msgstr "" -#: plugins/weather.rtp:149 -msgid "low" +#: plugins/maths.rtp:114 +msgid "to radians" msgstr "" #: plugins/nutrition.rtp:104 @@ -9458,45 +9867,6 @@ msgstr "" msgid "water" msgstr "" -#: plugins/maths.rtp:62 -#: plugins/examples.rtp:93 -msgid "power" -msgstr "" - -#: plugins/maths.rtp:62 -#: plugins/examples.rtp:93 -msgid "base" -msgstr "" - -#: plugins/maths.rtp:62 -#: plugins/examples.rtp:93 -msgid "exp" -msgstr "" - -#: plugins/maths.rtp:99 -#: plugins/examples.rtp:130 -msgid "floor" -msgstr "" - -#: plugins/maths.rtp:104 -#: plugins/examples.rtp:135 -msgid "ceiling" -msgstr "" - -#: plugins/maths.rtp:109 -#: plugins/examples.rtp:140 -msgid "to degrees" -msgstr "" - -#: plugins/maths.rtp:114 -#: plugins/examples.rtp:145 -msgid "to radians" -msgstr "" - -#: plugins/facebook.rtp:27 -msgid "publish" -msgstr "" - #: plugins/rodi.rtp:172 msgid "blink" msgstr "" @@ -9525,18 +9895,66 @@ msgstr "" msgid "move" msgstr "" -#: plugins/accelerometer.rtp:48 -msgid "motion x" +#: plugins/weather.rtp:68 +#: plugins/weather.rtp:97 +msgid "Days ahead must be in the range of -1 to 5." msgstr "" -#: plugins/accelerometer.rtp:56 -msgid "motion y" +#: plugins/weather.rtp:122 +msgid "forecast" msgstr "" -#: plugins/accelerometer.rtp:64 -msgid "motion z" +#: plugins/weather.rtp:123 +#: plugins/weather.rtp:137 +#: plugins/weather.rtp:150 +msgid "city" +msgstr "" + +#: plugins/weather.rtp:124 +#: plugins/weather.rtp:138 +#: plugins/weather.rtp:151 +msgid "day" +msgstr "" + +#: plugins/weather.rtp:136 +msgid "high" +msgstr "" + +#: plugins/weather.rtp:149 +msgid "low" msgstr "" +#: js/toolbar.js:70 + +#: js/toolbar.js:130 + +#: js/toolbar.js:194 + +#: js/toolbar.js:249 + +#~msgid "Toggle JavaScript Editor" +#~msgstr "" + +#: js/EnsembleBlocks.js:643 + +#~msgid "The Turrle pitch block returns the current pitch number being played by the specified turtle." +#~msgstr "" + +#: js/PitchActions.js:88 + +#~msgid "The Scalar Step Block must be used inside of a Note Block." +#~msgstr "" + +#: js/PitchActions.js:107 + +#~msgid "The Scalar Step Block must be preceded by a Pitch Block." +#~msgstr "" + +#: js/musickeyboard.js:2840 + +#~msgid "New action blocks generated!" +#~msgstr "" + #: js/toolbar.js:110 #: js/toolbar.js:204 @@ -9877,11 +10295,6 @@ msgstr "" #~msgid "The Time block returns the number of seconds that the program has been running." #~msgstr "" -#: js/help.js:95 - -#~msgid "Take a tour" -#~msgstr "" - #: js/GlobalCard.js:48 #~msgid "More Details" @@ -12780,11 +13193,6 @@ msgstr "" #~msgid "The save-stack button saves a stack onto a custom palette. It appears after a \"long press\" on a stack." #~msgstr "" -#: js/musicutils.js:254 - -#~msgid "Custom" -#~msgstr "" - #: js/basicblocks.js:4785 #~msgid "Rhythm" diff --git a/po/ur.po b/po/ur.po index df84bf0044..ce633f0b3b 100644 --- a/po/ur.po +++ b/po/ur.po @@ -2129,276 +2129,131 @@ #: js/planetInterface.js:104 #: js/planetInterface.js:104 #: js/planetInterface.js:104 -msgid "project undefined" -msgstr "" - -#: js/logo.js:61 -msgid "Not a valid pitch name" -msgstr "" - -#: js/logo.js:507 -#: js/ProgramBlocks.js:258 -#: js/ProgramBlocks.js:427 -msgid "You must select a file." -msgstr "" - -#: js/logo.js:1184 -#: js/turtles.js:118 -#: js/turtle-painter.js:1192 -#: js/turtle-painter.js:1193 -#: js/block.js:1463 -#: js/lilypond.js:757 -#: js/lilypond.js:921 -#: js/lilypond.js:959 -#: js/ActionBlocks.js:1223 -#: js/ProgramBlocks.js:1267 -msgid "start" -msgstr "" - -#: js/logo.js:1696 -msgid "Playback is ready." -msgstr "" - -#: js/blocks.js:1011 -#: js/blocks.js:3427 -#: js/blocks.js:3428 -#: js/blocks.js:3653 -#: js/blocks.js:4012 -#: js/blocks.js:4205 -#: js/blocks.js:5343 -#: js/blocks.js:6474 -#: js/palette.js:527 -#: js/palette.js:536 -#: js/palette.js:545 -#: js/palette.js:554 -#: js/palette.js:1131 -#: js/palette.js:1142 -#: js/palette.js:1153 -#: js/palette.js:1164 -#: js/palette.js:1183 -#: js/rubrics.js:529 -#: js/macros.js:170 -#: js/macros.js:266 -#: js/macros.js:267 -#: js/macros.js:276 -#: js/macros.js:828 -#: js/block.js:1449 -#: js/block.js:4164 -#: js/block.js:4182 -#: js/block.js:4193 -#: js/turtledefs.js:128 -#: js/turtledefs.js:230 -#: js/ActionBlocks.js:254 -#: js/ActionBlocks.js:307 -#: js/ActionBlocks.js:617 -#: js/ActionBlocks.js:716 -#: js/ActionBlocks.js:961 -#: js/ActionBlocks.js:1049 -#: js/ActionBlocks.js:1322 -#: js/ActionBlocks.js:1325 -#: js/ActionBlocks.js:1337 -#: js/ActionBlocks.js:1404 -#: js/MeterBlocks.js:715 -#: js/MeterBlocks.js:768 -#: js/MeterBlocks.js:831 -#: js/MeterBlocks.js:892 -#: js/phrasemaker.js:4412 -#: js/musickeyboard.js:2647 -#: js/rhythmruler.js:1928 -#: js/rhythmruler.js:1935 -#: js/rhythmruler.js:2119 -#: js/rhythmruler.js:2126 -msgid "action" -msgstr "" - -#: js/blocks.js:1205 -#: js/blocks.js:3380 -#: js/blocks.js:3770 -#: js/blocks.js:3801 -#: js/blocks.js:3850 -#: js/blocks.js:3885 -#: js/blocks.js:6497 -#: js/palette.js:509 -#: js/palette.js:638 -#: js/palette.js:1107 -#: js/BoxesBlocks.js:282 -#: js/BoxesBlocks.js:285 -#: js/BoxesBlocks.js:405 -#: js/BoxesBlocks.js:594 -msgid "box" -msgstr "" - -#: js/blocks.js:1680 -msgid "Consider breaking this stack into parts." +#: js/SaveInterface.js:59 +#: js/SaveInterface.js:61 +#: js/SaveInterface.js:93 +msgid "Music Blocks Project" msgstr "" -#: js/blocks.js:2408 -#: js/palette.js:653 -#: js/MediaBlocks.js:602 -msgid "open file" +#: js/SaveInterface.js:63 +msgid "This project was created in Music Blocks" msgstr "" -#: js/blocks.js:2415 -#: js/blocks.js:2423 -#: js/activity.js:1875 -msgid "audio file" +#: js/SaveInterface.js:67 +msgid "Music Blocks is a Free/Libre Software application." msgstr "" -#: js/blocks.js:2536 -#: js/blocks.js:3147 -#: js/block.js:3543 -msgid "on2" +#: js/SaveInterface.js:69 +msgid "The source code can be accessed at" msgstr "" -#: js/blocks.js:2538 -#: js/blocks.js:3149 -#: js/block.js:3545 -msgid "off" +#: js/SaveInterface.js:72 +msgid "For more information, please consult the" msgstr "" -#: js/blocks.js:2543 -#: js/blocks.js:3154 -#: js/palette.js:618 -#: js/block.js:3466 -#: js/BooleanBlocks.js:77 -#: js/BooleanBlocks.js:167 -#: js/BooleanBlocks.js:251 -#: js/BooleanBlocks.js:335 -#: js/BooleanBlocks.js:433 -#: js/BooleanBlocks.js:539 -#: js/BooleanBlocks.js:640 -#: js/BooleanBlocks.js:741 -#: js/BooleanBlocks.js:847 -#: js/BooleanBlocks.js:948 -#: js/BooleanBlocks.js:1033 -#: js/SensorsBlocks.js:910 -msgid "true" +#: js/SaveInterface.js:76 +#: js/turtledefs.js:795 +msgid "Music Blocks Guide" msgstr "" -#: js/blocks.js:2545 -#: js/blocks.js:3156 -#: js/block.js:3466 -#: js/BooleanBlocks.js:79 -#: js/BooleanBlocks.js:169 -#: js/BooleanBlocks.js:253 -#: js/BooleanBlocks.js:337 -#: js/BooleanBlocks.js:435 -#: js/BooleanBlocks.js:541 -#: js/BooleanBlocks.js:642 -#: js/BooleanBlocks.js:743 -#: js/BooleanBlocks.js:849 -#: js/BooleanBlocks.js:950 -#: js/SensorsBlocks.js:912 -msgid "false" +#: js/SaveInterface.js:83 +msgid "Alternatively, open the file in Music Blocks using the Load project button." msgstr "" -#: js/blocks.js:3183 -#: js/palette.js:574 -#: js/MediaBlocks.js:892 -#: js/MediaBlocks.js:963 -msgid "text" +#: js/SaveInterface.js:85 +msgid "Project Code" msgstr "" -#: js/blocks.js:3379 -#: js/palette.js:641 -#: js/palette.js:642 -#: js/BoxesBlocks.js:514 -msgid "store in box" +#: js/SaveInterface.js:87 +msgid "This code stores data about the blocks in a project." msgstr "" -#: js/blocks.js:3384 -#: js/blocks.js:3824 -#: js/blocks.js:3859 -#: js/blocks.js:3894 -#: js/blocks.js:5773 -#: js/blocks.js:5794 -#: js/BoxesBlocks.js:772 -msgid "box1" +#: js/SaveInterface.js:89 +msgid "Show" msgstr "" -#: js/blocks.js:3386 -#: js/blocks.js:3826 -#: js/blocks.js:3861 -#: js/blocks.js:3896 -#: js/blocks.js:5775 -#: js/blocks.js:5796 -#: js/BoxesBlocks.js:663 -msgid "box2" +#: js/SaveInterface.js:91 +msgid "Hide" msgstr "" -#: js/blocks.js:4058 -#: js/palette.js:639 -#: js/palette.js:644 -#: js/palette.js:1043 -#: js/BoxesBlocks.js:591 -msgid "store in" +#: js/SaveInterface.js:131 +#: js/SaveInterface.js:204 +#: js/SaveInterface.js:262 +#: js/SaveInterface.js:389 +#: js/SaveInterface.js:417 +#: js/activity.js:4884 +#: planet/js/ProjectStorage.js:27 +#: planet/js/GlobalPlanet.js:467 +#: planet/js/GlobalPlanet.js:469 +#: planet/js/GlobalPlanet.js:495 +#.TRANS: default project title when saving as Lilypond +msgid "My Project" msgstr "" -#: js/blocks.js:4058 -#: js/EnsembleBlocks.js:391 -#: js/EnsembleBlocks.js:402 -#: js/MediaBlocks.js:746 -#: js/ProgramBlocks.js:390 -#: js/ProgramBlocks.js:495 -#: js/ProgramBlocks.js:658 -#: js/BoxesBlocks.js:595 -#: js/PitchBlocks.js:656 -#: js/PitchBlocks.js:932 -#: js/PitchBlocks.js:1827 -#: js/ToneBlocks.js:1025 -#: js/DictBlocks.js:215 -#: js/DictBlocks.js:289 -msgid "name" +#: js/SaveInterface.js:197 +#: planet/js/SaveInterface.js:58 +msgid "No description provided" msgstr "" -#: js/blocks.js:4058 -#: js/RhythmBlocks.js:1130 -#: js/BoxesBlocks.js:75 -#: js/BoxesBlocks.js:595 -#: js/HeapBlocks.js:544 -#: js/DictBlocks.js:289 -#: js/DictBlocks.js:430 -msgid "value" +#: js/SaveInterface.js:332 +msgid "Your recording is in progress." msgstr "" -#: js/blocks.js:4907 -msgid "There is no block selected." +#: js/SaveInterface.js:401 +#.TRANS: File name prompt for save as Lilypond +msgid "File name" msgstr "" -#: js/blocks.js:5002 -#: js/MediaBlocks.js:888 -msgid "show" +#: js/SaveInterface.js:403 +#: planet/js/StringHelper.js:39 +#.TRANS: Project title prompt for save as Lilypond +msgid "Project title" msgstr "" -#: js/blocks.js:5005 -#: js/MediaBlocks.js:803 -#.TRANS: Avatar is the image used to determine the appearance of the mouse. -msgid "avatar" +#: js/SaveInterface.js:405 +#.TRANS: Project title prompt for save as Lilypond +msgid "Project author" msgstr "" -#: js/blocks.js:5008 -#: js/ToneBlocks.js:1010 -#: js/sampler.js:693 -#.TRANS: The sound sample that the user uploads. -msgid "sample" +#: js/SaveInterface.js:407 +#.TRANS: MIDI prompt for save as Lilypond +msgid "Include MIDI output?" msgstr "" -#: js/turtles.js:874 -msgid "Grid" +#: js/SaveInterface.js:409 +#.TRANS: Guitar prompt for save as Lilypond +msgid "Include guitar tablature output?" msgstr "" -#: js/turtles.js:891 -#: js/turtledefs.js:626 -msgid "Clean" +#: js/SaveInterface.js:411 +#.TRANS: Lilypond is a scripting language for generating sheet music +msgid "Save as Lilypond" msgstr "" -#: js/turtles.js:912 -#: js/turtledefs.js:632 -msgid "Collapse" +#: js/SaveInterface.js:426 +#: js/blocks/EnsembleBlocks.js:75 +#: js/blocks/EnsembleBlocks.js:154 +#: js/blocks/EnsembleBlocks.js:216 +#: js/blocks/EnsembleBlocks.js:302 +#: js/blocks/EnsembleBlocks.js:348 +#: js/blocks/EnsembleBlocks.js:389 +#: js/blocks/EnsembleBlocks.js:441 +#: js/blocks/EnsembleBlocks.js:490 +#: js/blocks/EnsembleBlocks.js:536 +#: js/blocks/EnsembleBlocks.js:583 +#: js/blocks/EnsembleBlocks.js:637 +#: js/blocks/EnsembleBlocks.js:753 +#: js/blocks/EnsembleBlocks.js:840 +#: js/blocks/EnsembleBlocks.js:899 +#: js/blocks/EnsembleBlocks.js:942 +#: js/blocks/EnsembleBlocks.js:1212 +#: js/blocks/EnsembleBlocks.js:1280 +#.TRANS: default project author when saving as Lilypond +msgid "Mr. Mouse" msgstr "" -#: js/turtles.js:940 -msgid "Expand" +#: js/SaveInterface.js:573 +msgid "The Lilypond code is copied to clipboard. You can paste it here: " msgstr "" #: js/languagebox.js:198 @@ -2409,6933 +2264,7487 @@ msgstr "" msgid "Music Blocks is already set to this language." msgstr "" -#: js/piemenus.js:200 -#: js/musicutils.js:808 -#: js/musicutils.js:824 -#: js/phrasemaker.js:1672 -#: js/musickeyboard.js:2041 -#: js/sampler.js:544 -#.TRANS: double sharp is a music term related to pitch -msgid "double sharp" +#: js/planetInterface.js:131 +msgid "project undefined" msgstr "" -#: js/piemenus.js:201 -#: js/PitchBlocks.js:1510 -#: js/PitchActions.js:580 -#: js/musicutils.js:806 -#: js/musicutils.js:825 -#: js/phrasemaker.js:1673 -#: js/musickeyboard.js:2042 -#: js/sampler.js:545 -#.TRANS: sharp is a half-step up in pitch -#.TRANS: sharp is a music term related to pitch -msgid "sharp" +#: js/rubrics.js:523 +#: js/turtledefs.js:119 +#: js/turtledefs.js:221 +#: js/blocks/RhythmBlockPaletteBlocks.js:52 +#: js/blocks/RhythmBlockPaletteBlocks.js:234 +#: js/blocks/ProgramBlocks.js:745 +#: js/widgets/rhythmruler.js:2057 +#: js/widgets/rhythmruler.js:2064 +#: js/widgets/rhythmruler.js:2133 +#: js/widgets/rhythmruler.js:2140 +#: js/widgets/rhythmruler.js:2219 +#.TRANS: an arrangement of notes based on duration +msgid "rhythm" msgstr "" -#: js/piemenus.js:202 -#: js/musicutils.js:804 -#: js/musicutils.js:826 -#: js/phrasemaker.js:1674 -#: js/musickeyboard.js:2043 -#: js/sampler.js:546 -#.TRANS: natural is a music term related to pitch -msgid "natural" +#: js/rubrics.js:524 +#: js/turtledefs.js:121 +#: js/turtledefs.js:223 +#: js/block-verbose.js:2622 +#: js/block.js:2550 +#: js/blocks/IntervalsBlocks.js:63 +#: js/blocks/SensorsBlocks.js:178 +#: js/blocks/PitchBlocks.js:1839 +#: js/blocks/PitchBlocks.js:1853 +#: js/widgets/musickeyboard.js:1935 +#: js/widgets/phrasemaker.js:1036 +#.TRANS: pitch number +#.TRANS: pitch number +#.TRANS: we specify pitch in terms of a name and an octave. The name can be CDEFGAB or Do Re Mi Fa Sol La Ti. Octave is a number between 1 and 8. +msgid "pitch" msgstr "" -#: js/piemenus.js:203 -#: js/PitchBlocks.js:1469 -#: js/PitchActions.js:583 -#: js/musicutils.js:802 -#: js/musicutils.js:827 -#: js/phrasemaker.js:1675 -#: js/musickeyboard.js:2044 -#: js/sampler.js:547 -#.TRANS: flat is a half-step down in pitch -#.TRANS: flat is a music term related to pitch -msgid "flat" +#: js/rubrics.js:525 +#: js/turtledefs.js:123 +#: js/turtledefs.js:225 +msgid "tone" msgstr "" -#: js/piemenus.js:204 -#: js/musicutils.js:800 -#: js/musicutils.js:828 -#: js/phrasemaker.js:1676 -#: js/musickeyboard.js:2045 -#: js/sampler.js:548 -#.TRANS: double flat is a music term related to pitch -msgid "double flat" +#: js/rubrics.js:526 +#: js/lilypond.js:605 +#: js/lilypond.js:904 +#: js/lilypond.js:910 +#: js/lilypond.js:948 +msgid "mouse" msgstr "" -#: js/piemenus.js:2861 -#: js/PitchBlocks.js:1357 -#: js/musicutils.js:627 -#.TRANS: unison means the note is the same as the current note -#.TRANS: unison is a music term related to intervals -msgid "unison" +#: js/rubrics.js:527 +#: js/turtledefs.js:132 +#: js/turtledefs.js:234 +#: js/widgets/phrasemaker.js:1040 +msgid "pen" msgstr "" -#: js/piemenus.js:3015 -#: js/piemenus.js:3088 -#: js/musicutils.js:635 -#: js/musicutils.js:810 -#: js/musicutils.js:912 -#.TRANS: major is a music term related to intervals and mode -msgid "major" +#: js/rubrics.js:528 +#: js/turtledefs.js:133 +#: js/turtledefs.js:235 +#: js/blocks/NumberBlocks.js:981 +#: js/blocks/PitchBlocks.js:1717 +#: js/blocks/PitchBlocks.js:1758 +msgid "number" msgstr "" -#: js/piemenus.js:3015 -#: js/piemenus.js:3088 -#: js/musicutils.js:653 -#.TRANS: modal scale for music -msgid "ionian" +#: js/rubrics.js:529 +#: js/turtledefs.js:127 +#: js/turtledefs.js:229 +msgid "flow" msgstr "" -#: js/piemenus.js:3017 -#: js/piemenus.js:3092 -#: js/musicutils.js:633 -#: js/musicutils.js:811 -#: js/musicutils.js:909 -#.TRANS: minor is a music term related to intervals and mode -msgid "minor" +#: js/rubrics.js:530 +#: js/turtledefs.js:128 +#: js/turtledefs.js:230 +#: js/block-verbose.js:1609 +#: js/block-verbose.js:4559 +#: js/block-verbose.js:4577 +#: js/block-verbose.js:4588 +#: js/block.js:1573 +#: js/block.js:4483 +#: js/block.js:4501 +#: js/block.js:4512 +#: js/blocks.js:1018 +#: js/blocks.js:3491 +#: js/blocks.js:3492 +#: js/blocks.js:3717 +#: js/blocks.js:4076 +#: js/blocks.js:4269 +#: js/blocks.js:5432 +#: js/blocks.js:6563 +#: js/macros.js:170 +#: js/macros.js:266 +#: js/macros.js:267 +#: js/macros.js:276 +#: js/macros.js:828 +#: js/palette.js:527 +#: js/palette.js:536 +#: js/palette.js:545 +#: js/palette.js:554 +#: js/palette.js:1129 +#: js/palette.js:1140 +#: js/palette.js:1151 +#: js/palette.js:1162 +#: js/palette.js:1181 +#: js/blocks/ActionBlocks.js:254 +#: js/blocks/ActionBlocks.js:307 +#: js/blocks/ActionBlocks.js:617 +#: js/blocks/ActionBlocks.js:716 +#: js/blocks/ActionBlocks.js:961 +#: js/blocks/ActionBlocks.js:1049 +#: js/blocks/ActionBlocks.js:1322 +#: js/blocks/ActionBlocks.js:1325 +#: js/blocks/ActionBlocks.js:1337 +#: js/blocks/ActionBlocks.js:1404 +#: js/blocks/MeterBlocks.js:715 +#: js/blocks/MeterBlocks.js:768 +#: js/blocks/MeterBlocks.js:831 +#: js/blocks/MeterBlocks.js:892 +#: js/widgets/musickeyboard.js:2986 +#: js/widgets/phrasemaker.js:4913 +#: js/widgets/rhythmruler.js:2319 +#: js/widgets/rhythmruler.js:2326 +#: js/widgets/rhythmruler.js:2511 +#: js/widgets/rhythmruler.js:2518 +msgid "action" msgstr "" -#: js/piemenus.js:3017 -#: js/piemenus.js:3092 -#: js/musicutils.js:663 -#.TRANS: modal scale for music -msgid "aeolian" +#: js/rubrics.js:531 +#: js/turtledefs.js:136 +#: js/turtledefs.js:238 +msgid "sensors" msgstr "" -#: js/piemenus.js:3407 -msgid "Duplicate" +#: js/rubrics.js:532 +#: js/turtledefs.js:135 +#: js/turtledefs.js:237 +#: js/blocks/MediaBlocks.js:930 +msgid "media" msgstr "" -#: js/piemenus.js:3408 -#: js/turtledefs.js:534 -msgid "Extract" +#: js/rubrics.js:533 +msgid "mice" msgstr "" -#: js/piemenus.js:3409 -msgid "Move to trash" +#: js/toolbar.js:48 +#: js/toolbar.js:109 +msgid "About Music Blocks" msgstr "" -#: js/piemenus.js:3410 -#: js/timbre.js:968 -#: js/StringHelper.js:69 -msgid "Close" +#: js/toolbar.js:49 +#: js/toolbar.js:110 +#: js/toolbar.js:175 +#: js/toolbar.js:231 +#: js/turtledefs.js:445 +#: js/turtledefs.js:482 +#: js/activity.js:2660 +#: js/activity.js:2671 +#: js/activity.js:2902 +#: js/widgets/modewidget.js:77 +#: js/widgets/meterwidget.js:185 +#: js/widgets/pitchdrummatrix.js:147 +#: js/widgets/pitchdrummatrix.js:687 +#: js/widgets/pitchdrummatrix.js:689 +#: js/widgets/pitchdrummatrix.js:741 +#: js/widgets/pitchdrummatrix.js:743 +#: js/widgets/pitchdrummatrix.js:758 +#: js/widgets/pitchdrummatrix.js:760 +#: js/widgets/pitchdrummatrix.js:789 +#: js/widgets/pitchdrummatrix.js:791 +#: js/widgets/pitchstaircase.js:121 +#: js/widgets/temperament.js:610 +#: js/widgets/temperament.js:613 +#: js/widgets/temperament.js:673 +#: js/widgets/temperament.js:675 +#: js/widgets/temperament.js:2017 +#: js/widgets/temperament.js:2019 +#: js/widgets/tempo.js:84 +#: js/widgets/tempo.js:86 +#: js/widgets/timbre.js:432 +#: js/widgets/timbre.js:434 +#: js/widgets/timbre.js:465 +#: js/widgets/timbre.js:467 +#: js/widgets/timbre.js:746 +#: js/widgets/aiwidget.js:647 +#: js/widgets/aiwidget.js:654 +#: js/widgets/aiwidget.js:656 +#: js/widgets/arpeggio.js:90 +#: js/widgets/arpeggio.js:547 +#: js/widgets/arpeggio.js:549 +#: js/widgets/arpeggio.js:644 +#: js/widgets/arpeggio.js:646 +#: js/widgets/musickeyboard.js:676 +#: js/widgets/musickeyboard.js:872 +#: js/widgets/musickeyboard.js:874 +#: js/widgets/musickeyboard.js:953 +#: js/widgets/musickeyboard.js:955 +#: js/widgets/phrasemaker.js:513 +#: js/widgets/phrasemaker.js:523 +#: js/widgets/phrasemaker.js:525 +#: js/widgets/phrasemaker.js:4304 +#: js/widgets/phrasemaker.js:4528 +#: js/widgets/phrasemaker.js:4533 +#: js/widgets/phrasemaker.js:4535 +#: js/widgets/phrasemaker.js:4650 +#: js/widgets/rhythmruler.js:637 +#: js/widgets/rhythmruler.js:639 +#: js/widgets/rhythmruler.js:653 +#: js/widgets/rhythmruler.js:655 +#: js/widgets/sampler.js:162 +#: js/widgets/sampler.js:164 +#: js/widgets/sampler.js:363 +msgid "Play" msgstr "" -#: js/piemenus.js:3416 -msgid "Save stack" +#: js/toolbar.js:50 +#: js/toolbar.js:111 +#: js/toolbar.js:176 +#: js/toolbar.js:232 +#: js/turtledefs.js:451 +#: js/turtledefs.js:488 +#: js/activity.js:2679 +#: js/widgets/modewidget.js:99 +#: js/widgets/modewidget.js:101 +#: js/widgets/meterwidget.js:206 +#: js/widgets/meterwidget.js:208 +#: js/widgets/pitchdrummatrix.js:674 +#: js/widgets/pitchdrummatrix.js:676 +#: js/widgets/temperament.js:2002 +#: js/widgets/temperament.js:2004 +#: js/widgets/arpeggio.js:534 +#: js/widgets/arpeggio.js:536 +#: js/widgets/phrasemaker.js:534 +#: js/widgets/phrasemaker.js:536 +msgid "Stop" msgstr "" -#: js/piemenus.js:3420 -#: js/toolbar.js:60 -#: js/toolbar.js:120 -#: js/toolbar.js:185 -#: js/toolbar.js:240 -#: js/turtledefs.js:752 -msgid "Help" +#: js/toolbar.js:51 +#: js/toolbar.js:112 +#: js/toolbar.js:177 +#: js/toolbar.js:233 +#: js/turtledefs.js:498 +msgid "Record" msgstr "" -#: js/piemenus.js:3762 -msgid "You have chosen key " +#: js/toolbar.js:52 +#: js/toolbar.js:53 +msgid "Full screen" msgstr "" -#: js/piemenus.js:3766 -msgid " for your pitch preview." +#: js/toolbar.js:54 +#: js/toolbar.js:115 +#: js/toolbar.js:180 +#: js/toolbar.js:236 +#: js/turtledefs.js:504 +msgid "Toggle Fullscreen" +msgstr "" + +#: js/toolbar.js:55 +#: js/toolbar.js:116 +#: js/toolbar.js:181 +#: js/toolbar.js:237 +#: js/turtledefs.js:510 +#: planet/js/StringHelper.js:33 +msgid "New project" +msgstr "" + +#: js/toolbar.js:56 +#: js/toolbar.js:117 +#: js/toolbar.js:182 +#: js/toolbar.js:238 +#: js/turtledefs.js:516 +msgid "Load project from file" +msgstr "" + +#: js/toolbar.js:57 +#: js/toolbar.js:118 +#: js/toolbar.js:119 +#: js/toolbar.js:183 +#: js/toolbar.js:239 +#: js/turtledefs.js:541 +#: js/turtledefs.js:550 +#: js/turtledefs.js:571 +msgid "Save project" +msgstr "" + +#: js/toolbar.js:58 +#: js/toolbar.js:77 +#: js/toolbar.js:79 +#: js/toolbar.js:138 +#: js/toolbar.js:147 +#: js/toolbar.js:149 +#: js/toolbar.js:184 +#: js/toolbar.js:202 +#: js/toolbar.js:204 +#: js/toolbar.js:240 +#: js/toolbar.js:258 +#: js/toolbar.js:260 +msgid "Save project as HTML" +msgstr "" + +#: js/toolbar.js:59 +#: js/toolbar.js:120 +#: js/toolbar.js:185 +#: js/toolbar.js:241 +msgid "Find and share projects" +msgstr "" + +#: js/toolbar.js:60 +#: js/toolbar.js:121 +#: js/toolbar.js:186 +#: js/toolbar.js:242 +msgid "Offline. Sharing is unavailable" +msgstr "" + +#: js/toolbar.js:61 +#: js/toolbar.js:122 +#: js/toolbar.js:187 +#: js/toolbar.js:243 +msgid "Auxiliary menu" +msgstr "" + +#: js/toolbar.js:62 +#: js/toolbar.js:123 +#: js/toolbar.js:188 +#: js/toolbar.js:244 +#: js/turtledefs.js:752 +#: js/piemenus.js:3423 +msgid "Help" +msgstr "" + +#: js/toolbar.js:63 +#: js/toolbar.js:124 +#: js/toolbar.js:189 +#: js/toolbar.js:245 +msgid "Run slowly" +msgstr "" + +#: js/toolbar.js:64 +#: js/toolbar.js:125 +#: js/toolbar.js:190 +#: js/toolbar.js:246 +#: js/turtledefs.js:682 +msgid "Run step by step" +msgstr "" + +#: js/toolbar.js:65 +#: js/toolbar.js:126 +#: js/toolbar.js:191 +#: js/toolbar.js:247 +#: js/turtledefs.js:689 +msgid "Display statistics" +msgstr "" + +#: js/toolbar.js:66 +#: js/toolbar.js:127 +#: js/toolbar.js:192 +#: js/toolbar.js:248 +msgid "Load plugin" +msgstr "" + +#: js/toolbar.js:67 +#: js/toolbar.js:128 +#: js/toolbar.js:193 +#: js/toolbar.js:249 +#: js/turtledefs.js:696 +msgid "Delete plugin" +msgstr "" + +#: js/toolbar.js:68 +#: js/toolbar.js:129 +#: js/toolbar.js:194 +#: js/toolbar.js:250 +msgid "Enable horizontal scrolling" +msgstr "" + +#: js/toolbar.js:69 +#: js/toolbar.js:130 +#: js/toolbar.js:195 +#: js/toolbar.js:251 +msgid "Disable horizontal scrolling" +msgstr "" + +#: js/toolbar.js:70 +#: js/toolbar.js:131 +#: js/toolbar.js:196 +#: js/toolbar.js:252 +#: planet/js/LocalCard.js:54 +#: planet/js/StringHelper.js:71 +msgid "Merge with current project" +msgstr "" + +#: js/toolbar.js:71 +#: js/toolbar.js:132 +msgid "Set Pitch Preview" +msgstr "" + +#: js/toolbar.js:72 +#: js/toolbar.js:133 +#: js/toolbar.js:197 +#: js/toolbar.js:253 +msgid "JavaScript Editor" +msgstr "" + +#: js/toolbar.js:73 +#: js/toolbar.js:134 +#: js/toolbar.js:198 +#: js/toolbar.js:254 +#: js/turtledefs.js:724 +msgid "Restore" +msgstr "" + +#: js/toolbar.js:74 +#: js/toolbar.js:135 +#: js/toolbar.js:199 +#: js/toolbar.js:255 +msgid "Switch to beginner mode" +msgstr "" + +#: js/toolbar.js:75 +#: js/toolbar.js:136 +#: js/toolbar.js:200 +#: js/toolbar.js:256 +msgid "Switch to advanced mode" +msgstr "" + +#: js/toolbar.js:76 +#: js/toolbar.js:137 +#: js/toolbar.js:146 +#: js/toolbar.js:201 +#: js/toolbar.js:257 +#: js/turtledefs.js:738 +msgid "Select language" +msgstr "" + +#: js/toolbar.js:78 +#: js/toolbar.js:81 +#: js/toolbar.js:140 +#: js/turtledefs.js:579 +msgid "Save mouse artwork as PNG" +msgstr "" + +#: js/toolbar.js:80 +#: js/toolbar.js:139 +#: js/turtledefs.js:575 +msgid "Save mouse artwork as SVG" +msgstr "" + +#: js/toolbar.js:82 +#: js/toolbar.js:141 +#: js/turtledefs.js:583 +msgid "Save music as WAV" +msgstr "" + +#: js/toolbar.js:83 +#: js/toolbar.js:142 +#: js/turtledefs.js:587 +msgid "Save sheet music as ABC" +msgstr "" + +#: js/toolbar.js:84 +#: js/toolbar.js:143 +#: js/turtledefs.js:591 +msgid "Save sheet music as Lilypond" +msgstr "" + +#: js/toolbar.js:85 +msgid "Save sheet music as MusicXML" +msgstr "" + +#: js/toolbar.js:86 +#: js/toolbar.js:144 +#: js/toolbar.js:152 +#: js/toolbar.js:207 +#: js/toolbar.js:263 +#: js/turtledefs.js:562 +#: js/turtledefs.js:595 +msgid "Save block artwork as SVG" +msgstr "" + +#: js/toolbar.js:87 +#: js/toolbar.js:145 +#: js/toolbar.js:153 +#: js/toolbar.js:208 +#: js/toolbar.js:264 +#: js/turtles.js:911 +msgid "Confirm" +msgstr "" + +#: js/toolbar.js:88 +#: js/toolbar.js:154 +#: js/toolbar.js:209 +#: js/toolbar.js:265 +msgid "English (United States)" +msgstr "" + +#: js/toolbar.js:89 +#: js/toolbar.js:155 +#: js/toolbar.js:210 +#: js/toolbar.js:266 +msgid "English (United Kingdom)" +msgstr "" + +#: js/toolbar.js:90 +#: js/toolbar.js:156 +#: js/toolbar.js:211 +#: js/toolbar.js:267 +msgid "日本語" +msgstr "" + +#: js/toolbar.js:91 +msgid "한국어" +msgstr "" + +#: js/toolbar.js:92 +#: js/toolbar.js:158 +#: js/toolbar.js:213 +#: js/toolbar.js:269 +msgid "español" +msgstr "" + +#: js/toolbar.js:93 +#: js/toolbar.js:159 +#: js/toolbar.js:214 +#: js/toolbar.js:270 +msgid "português" +msgstr "" + +#: js/toolbar.js:94 +#: js/toolbar.js:160 +#: js/toolbar.js:215 +#: js/toolbar.js:271 +msgid "にほんご" +msgstr "" + +#: js/toolbar.js:95 +#: js/toolbar.js:161 +#: js/toolbar.js:216 +#: js/toolbar.js:272 +msgid "中文" +msgstr "" + +#: js/toolbar.js:96 +#: js/toolbar.js:162 +#: js/toolbar.js:217 +#: js/toolbar.js:273 +msgid "ภาษาไทย" +msgstr "" + +#: js/toolbar.js:97 +#: js/toolbar.js:163 +#: js/toolbar.js:218 +#: js/toolbar.js:274 +msgid "aymara" +msgstr "" + +#: js/toolbar.js:98 +#: js/toolbar.js:164 +#: js/toolbar.js:219 +#: js/toolbar.js:275 +msgid "quechua" +msgstr "" + +#: js/toolbar.js:99 +#: js/toolbar.js:165 +#: js/toolbar.js:220 +#: js/toolbar.js:276 +msgid "guarani" +msgstr "" + +#: js/toolbar.js:100 +#: js/toolbar.js:166 +#: js/toolbar.js:221 +#: js/toolbar.js:277 +msgid "हिंदी" +msgstr "" + +#: js/toolbar.js:101 +#: js/toolbar.js:168 +#: js/toolbar.js:222 +#: js/toolbar.js:279 +msgid "igbo" +msgstr "" + +#: js/toolbar.js:102 +#: js/toolbar.js:169 +#: js/toolbar.js:223 +#: js/toolbar.js:280 +msgid "عربى" +msgstr "" + +#: js/toolbar.js:103 +#: js/toolbar.js:167 +#: js/toolbar.js:224 +#: js/toolbar.js:278 +msgid "తెలుగు" +msgstr "" + +#: js/toolbar.js:104 +#: js/toolbar.js:170 +#: js/toolbar.js:225 +#: js/toolbar.js:281 +msgid "עִברִית" +msgstr "" + +#: js/toolbar.js:113 +#: js/toolbar.js:114 +#: js/toolbar.js:178 +#: js/toolbar.js:179 +#: js/toolbar.js:234 +#: js/toolbar.js:235 +msgid "Full Screen" +msgstr "" + +#: js/toolbar.js:148 +#: js/toolbar.js:151 +#: js/toolbar.js:203 +#: js/toolbar.js:206 +#: js/toolbar.js:259 +#: js/toolbar.js:262 +#: js/turtledefs.js:558 +msgid "Save turtle artwork as PNG" +msgstr "" + +#: js/toolbar.js:150 +#: js/toolbar.js:205 +#: js/toolbar.js:261 +#: js/turtledefs.js:554 +msgid "Save turtle artwork as SVG" +msgstr "" + +#: js/toolbar.js:157 +#: js/toolbar.js:212 +#: js/toolbar.js:268 +msgid "한국인" +msgstr "" + +#: js/toolbar.js:174 +#: js/toolbar.js:230 +msgid "About Turtle Blocks" +msgstr "" + +#: js/toolbar.js:446 +#: js/toolbar.js:457 +#: js/toolbar.js:497 +msgid "Turtle Wrap Off" +msgstr "" + +#: js/toolbar.js:466 +#: js/toolbar.js:506 +msgid "Turtle Wrap On" +msgstr "" + +#: js/turtle-painter.js:1192 +#: js/turtle-painter.js:1193 +#: js/turtles.js:118 +#: js/block-verbose.js:1623 +#: js/block.js:1587 +#: js/lilypond.js:749 +#: js/lilypond.js:913 +#: js/lilypond.js:951 +#: js/logo.js:1184 +#: js/blocks/ActionBlocks.js:1223 +#: js/blocks/ProgramBlocks.js:1267 +msgid "start" +msgstr "" + +#: js/turtledefs.js:40 +#.TRANS: put the URL to the guide here, e.g., https://github.com/sugarlabs/turtleblocksjs/tree/master/guide/README.md +msgid "guide url" +msgstr "" + +#: js/turtledefs.js:85 +#: js/turtledefs.js:437 +msgid "Turtle Blocks is a Logo-inspired turtle that draws colorful pictures with snap-together visual-programming blocks." +msgstr "" + +#: js/turtledefs.js:118 +#: js/turtledefs.js:220 +msgid "search" +msgstr "" + +#: js/turtledefs.js:120 +#: js/turtledefs.js:222 +#: js/blocks/MeterBlocks.js:1343 +#: js/blocks/WidgetBlocks.js:522 +#.TRANS: musical meter (time signature), e.g., 4:4 +msgid "meter" +msgstr "" + +#: js/turtledefs.js:122 +#: js/turtledefs.js:224 +msgid "intervals" +msgstr "" + +#: js/turtledefs.js:124 +#: js/turtledefs.js:226 +msgid "ornament" +msgstr "" + +#: js/turtledefs.js:125 +#: js/turtledefs.js:227 +#: js/blocks/VolumeBlocks.js:362 +#: js/blocks/VolumeBlocks.js:502 +#: js/blocks/VolumeBlocks.js:545 +msgid "volume" +msgstr "" + +#: js/turtledefs.js:126 +#: js/turtledefs.js:228 +#: js/block-verbose.js:1700 +#: js/block-verbose.js:2626 +#: js/block.js:1664 +#: js/block.js:2554 +#: js/lilypond.js:732 +#: js/lilypond.js:897 +#: js/lilypond.js:941 +#: js/palette.js:577 +#: js/blocks/RhythmBlocks.js:766 +#: js/blocks/DrumBlocks.js:477 +#: js/blocks/VolumeBlocks.js:502 +#: js/widgets/phrasemaker.js:1038 +msgid "drum" +msgstr "" + +#: js/turtledefs.js:129 +#: js/turtledefs.js:231 +msgid "boxes" +msgstr "" + +#: js/turtledefs.js:130 +#: js/turtledefs.js:232 +msgid "widgets" +msgstr "" + +#: js/turtledefs.js:131 +#: js/turtledefs.js:233 +#: js/widgets/phrasemaker.js:1039 +msgid "graphics" +msgstr "" + +#: js/turtledefs.js:134 +#: js/turtledefs.js:236 +msgid "boolean" +msgstr "" + +#: js/turtledefs.js:137 +#: js/turtledefs.js:239 +#: js/blocks/HeapBlocks.js:59 +#: js/widgets/status.js:147 +msgid "heap" +msgstr "" + +#: js/turtledefs.js:138 +#: js/turtledefs.js:240 +#: js/blocks/DictBlocks.js:142 +#: js/blocks/ProgramBlocks.js:495 +msgid "dictionary" +msgstr "" + +#: js/turtledefs.js:139 +#: js/turtledefs.js:241 +msgid "ensemble" +msgstr "" + +#: js/turtledefs.js:140 +#: js/turtledefs.js:242 +msgid "extras" +msgstr "" + +#: js/turtledefs.js:142 +#: js/turtledefs.js:244 +#.TRANS: program as in computer program +#.TRANS: program as in computer program +msgid "program" +msgstr "" + +#: js/turtledefs.js:143 +#: js/turtledefs.js:245 +msgid "my blocks" +msgstr "" + +#: js/turtledefs.js:185 +#: js/turtledefs.js:281 +msgid "artwork" +msgstr "" + +#: js/turtledefs.js:185 +#: js/turtledefs.js:281 +msgid "logic" +msgstr "" + +#: js/turtledefs.js:185 +#: js/turtledefs.js:281 +msgid "music" +msgstr "" + +#: js/turtledefs.js:187 +#: js/turtledefs.js:463 +msgid "Music Blocks is a collection of tools for exploring fundamental musical concepts in a fun way." +msgstr "" + +#: js/turtledefs.js:436 +msgid "Welcome to Turtle Blocks" +msgstr "" + +#: js/turtledefs.js:438 +#: js/turtledefs.js:465 +#: js/turtledefs.js:774 +#: js/turtledefs.js:805 +msgid "The current version is" +msgstr "" + +#: js/turtledefs.js:446 +#: js/turtledefs.js:483 +msgid "Click the run button to run the project in fast mode." +msgstr "" + +#: js/turtledefs.js:452 +msgid "Stop the turtle." +msgstr "" + +#: js/turtledefs.js:454 +#: js/turtledefs.js:491 +msgid "You can also type Alt-S to stop." +msgstr "" + +#: js/turtledefs.js:462 +#: js/widgets/help.js:333 +msgid "Welcome to Music Blocks" +msgstr "" + +#: js/turtledefs.js:472 +#: js/widgets/help.js:334 +msgid "Meet Mr. Mouse!" +msgstr "" + +#: js/turtledefs.js:473 +msgid "Mr Mouse is our Music Blocks conductor." +msgstr "" + +#: js/turtledefs.js:475 +msgid "Mr Mouse encourages you to explore Music Blocks." +msgstr "" + +#: js/turtledefs.js:477 +msgid "Let us start our tour!" +msgstr "" + +#: js/turtledefs.js:489 +msgid "Stop the music (and the mice)." +msgstr "" + +#: js/turtledefs.js:499 +msgid "Record your project as video." +msgstr "" + +#: js/turtledefs.js:505 +msgid "Toggle Fullscreen mode." +msgstr "" + +#: js/turtledefs.js:511 +msgid "Initialize a new project." +msgstr "" + +#: js/turtledefs.js:517 +msgid "You can also load projects from the file system." +msgstr "" + +#: js/turtledefs.js:522 +#: planet/js/StringHelper.js:46 +msgid "Delete" +msgstr "" + +#: js/turtledefs.js:523 +msgid "To delete a block, just right-click on it, then you will be able to see the delete option" +msgstr "" + +#: js/turtledefs.js:528 +#: js/activity.js:2649 +#: planet/js/LocalCard.js:31 +msgid "Copy" +msgstr "" + +#: js/turtledefs.js:529 +msgid "To copy a block, just right-click on it, then you will be able to see the copy option" +msgstr "" + +#: js/turtledefs.js:534 +#: js/piemenus.js:3411 +msgid "Extract" +msgstr "" + +#: js/turtledefs.js:535 +msgid "To extract a block, just right-click on it, then you will be able to see the extract option" +msgstr "" + +#: js/turtledefs.js:542 +#: js/turtledefs.js:552 +#: js/turtledefs.js:573 +msgid "Save your project to a file." +msgstr "" + +#: js/turtledefs.js:549 +#: js/turtledefs.js:570 +msgid "save" +msgstr "" + +#: js/turtledefs.js:556 +#: js/turtledefs.js:577 +msgid "Save graphics from your project to as SVG." +msgstr "" + +#: js/turtledefs.js:560 +#: js/turtledefs.js:581 +msgid "Save graphics from your project as PNG." +msgstr "" + +#: js/turtledefs.js:564 +#: js/turtledefs.js:597 +msgid "Save block artwork as an SVG file." +msgstr "" + +#: js/turtledefs.js:585 +msgid "Save audio from your project as WAV." +msgstr "" + +#: js/turtledefs.js:589 +msgid "Save your project to as an ABC file." +msgstr "" + +#: js/turtledefs.js:593 +msgid "Save your project to as a Lilypond file." +msgstr "" + +#: js/turtledefs.js:604 +msgid "Load samples from server" +msgstr "" + +#: js/turtledefs.js:605 +msgid "This button opens a viewer for loading example projects." +msgstr "" + +#: js/turtledefs.js:611 +msgid "Palette buttons" +msgstr "" + +#: js/turtledefs.js:612 +msgid "This toolbar contains the palette buttons including Rhythm Pitch Tone Action and more." +msgstr "" + +#: js/turtledefs.js:614 +msgid "Click to show the palettes of blocks and drag blocks from the palettes onto the canvas to use them." +msgstr "" + +#: js/turtledefs.js:620 +msgid "Cartesian/Polar" +msgstr "" + +#: js/turtledefs.js:621 +msgid "Show or hide a coordinate grid." +msgstr "" + +#: js/turtledefs.js:626 +#: js/turtles.js:902 +msgid "Clean" +msgstr "" + +#: js/turtledefs.js:627 +msgid "Clear the screen and return the mice to their initial positions." +msgstr "" + +#: js/turtledefs.js:632 +#: js/turtles.js:955 +msgid "Collapse" +msgstr "" + +#: js/turtledefs.js:633 +msgid "Collapse the graphics window." msgstr "" -#: js/palette.js:571 -msgid "grid" +#: js/turtledefs.js:638 +#: js/activity.js:5684 +msgid "Home" msgstr "" -#: js/palette.js:577 -#: js/block.js:1540 -#: js/block.js:2343 -#: js/turtledefs.js:126 -#: js/turtledefs.js:228 -#: js/lilypond.js:740 -#: js/lilypond.js:905 -#: js/lilypond.js:949 -#: js/DrumBlocks.js:486 -#: js/RhythmBlocks.js:766 -#: js/VolumeBlocks.js:502 -#: js/phrasemaker.js:823 -msgid "drum" +#: js/turtledefs.js:639 +msgid "Return all blocks to the center of the screen." msgstr "" -#: js/palette.js:580 -msgid "effect" +#: js/turtledefs.js:644 +msgid "Show/hide blocks" msgstr "" -#: js/palette.js:586 -msgid "sargam" +#: js/turtledefs.js:645 +msgid "Hide or show the blocks and the palettes." msgstr "" -#: js/palette.js:589 -#: js/activity.js:1833 -#: js/RhythmBlocks.js:923 -#: js/PitchBlocks.js:442 -#: js/PitchBlocks.js:1748 -#.TRANS: a numeric mapping of the notes in an octave based on the musical mode -msgid "scale degree" +#: js/turtledefs.js:650 +msgid "Expand/collapse collapsable blocks" msgstr "" -#: js/palette.js:592 -#: js/activity.js:1860 -msgid "mode name" +#: js/turtledefs.js:651 +msgid "Expand or collapse start and action stacks." msgstr "" -#: js/palette.js:595 -#: js/activity.js:1839 -msgid "invert mode" +#: js/turtledefs.js:658 +#: js/activity.js:5704 +msgid "Decrease block size" msgstr "" -#: js/palette.js:598 -#: js/activity.js:1836 -msgid "voice name" +#: js/turtledefs.js:659 +msgid "Decrease the size of the blocks." msgstr "" -#: js/palette.js:601 -#: js/PitchBlocks.js:1181 -msgid "custom pitch" +#: js/turtledefs.js:664 +#: js/activity.js:5710 +msgid "Increase block size" msgstr "" -#: js/palette.js:605 -#: js/block.js:1456 -#: js/block.js:1575 -#: js/WidgetBlocks.js:218 -#: js/IntervalsBlocks.js:63 -msgid "temperament" +#: js/turtledefs.js:665 +msgid "Increase the size of the blocks." msgstr "" -#: js/palette.js:609 -msgid "accidental" +#: js/turtledefs.js:670 +msgid "Expand/collapse option toolbar" msgstr "" -#: js/palette.js:615 -#: js/activity.js:1866 -msgid "interval name" +#: js/turtledefs.js:671 +msgid "Click this button to expand or collapse the auxillary toolbar." msgstr "" -#: js/palette.js:633 -#: js/PitchBlocks.js:405 -msgid "pitch converter" +#: js/turtledefs.js:676 +msgid "Run slow" msgstr "" -#: js/rubrics.js:522 -#: js/turtledefs.js:119 -#: js/turtledefs.js:221 -#: js/RhythmBlockPaletteBlocks.js:52 -#: js/RhythmBlockPaletteBlocks.js:233 -#: js/ProgramBlocks.js:745 -#: js/rhythmruler.js:1670 -#: js/rhythmruler.js:1677 -#: js/rhythmruler.js:1745 -#: js/rhythmruler.js:1752 -#: js/rhythmruler.js:1830 -#.TRANS: an arrangement of notes based on duration -msgid "rhythm" +#: js/turtledefs.js:677 +msgid "Click to run the project in slow mode." msgstr "" -#: js/rubrics.js:523 -#: js/block.js:2339 -#: js/turtledefs.js:121 -#: js/turtledefs.js:223 -#: js/IntervalsBlocks.js:63 -#: js/PitchBlocks.js:1801 -#: js/PitchBlocks.js:1814 -#: js/SensorsBlocks.js:178 -#: js/phrasemaker.js:821 -#: js/musickeyboard.js:1653 -#.TRANS: pitch number -#.TRANS: we specify pitch in terms of a name and an octave. The name can be CDEFGAB or Do Re Mi Fa Sol La Ti. Octave is a number between 1 and 8. -msgid "pitch" +#: js/turtledefs.js:683 +msgid "Click to run the project step by step." msgstr "" -#: js/rubrics.js:524 -#: js/turtledefs.js:123 -#: js/turtledefs.js:225 -msgid "tone" +#: js/turtledefs.js:690 +msgid "Display statistics about your Music project." msgstr "" -#: js/rubrics.js:525 -#: js/lilypond.js:613 -#: js/lilypond.js:912 -#: js/lilypond.js:918 -#: js/lilypond.js:956 -msgid "mouse" +#: js/turtledefs.js:697 +msgid "Delete a selected plugin." msgstr "" -#: js/rubrics.js:526 -#: js/turtledefs.js:132 -#: js/turtledefs.js:234 -#: js/phrasemaker.js:825 -msgid "pen" +#: js/turtledefs.js:704 +msgid "Enable scrolling" msgstr "" -#: js/rubrics.js:527 -#: js/turtledefs.js:133 -#: js/turtledefs.js:235 -#: js/NumberBlocks.js:905 -#: js/PitchBlocks.js:1679 -#: js/PitchBlocks.js:1720 -msgid "number" +#: js/turtledefs.js:705 +msgid "You can scroll the blocks on the canvas." msgstr "" -#: js/rubrics.js:528 -#: js/turtledefs.js:127 -#: js/turtledefs.js:229 -msgid "flow" +#: js/turtledefs.js:714 +msgid "Wrap Turtle" msgstr "" -#: js/rubrics.js:530 -#: js/turtledefs.js:136 -#: js/turtledefs.js:238 -msgid "sensors" +#: js/turtledefs.js:715 +msgid "Turn Turtle wrapping On or Off." msgstr "" -#: js/rubrics.js:531 -#: js/turtledefs.js:135 -#: js/turtledefs.js:237 -#: js/MediaBlocks.js:930 -msgid "media" +#: js/turtledefs.js:725 +msgid "Restore blocks from the trash." msgstr "" -#: js/rubrics.js:532 -msgid "mice" +#: js/turtledefs.js:732 +msgid "Switch mode" msgstr "" -#: js/macros.js:711 -#: js/musicutils.js:783 -#: js/synthutils.js:181 -#.TRANS: animal sound effect -msgid "duck" +#: js/turtledefs.js:733 +msgid "Switch between beginner and advance modes." msgstr "" -#: js/toolbar.js:46 -#: js/toolbar.js:107 -msgid "About Music Blocks" +#: js/turtledefs.js:739 +msgid "Select your language preference." msgstr "" -#: js/toolbar.js:47 -#: js/toolbar.js:108 -#: js/toolbar.js:172 -#: js/toolbar.js:228 -#: js/turtledefs.js:445 -#: js/turtledefs.js:482 -#: js/activity.js:2281 -#: js/activity.js:2289 -#: js/activity.js:2520 -#: js/modewidget.js:77 -#: js/pitchstaircase.js:121 -#: js/phrasemaker.js:302 -#: js/phrasemaker.js:312 -#: js/phrasemaker.js:314 -#: js/phrasemaker.js:3901 -#: js/phrasemaker.js:4061 -#: js/phrasemaker.js:4066 -#: js/phrasemaker.js:4068 -#: js/phrasemaker.js:4183 -#: js/pitchdrummatrix.js:81 -#: js/pitchdrummatrix.js:574 -#: js/pitchdrummatrix.js:576 -#: js/pitchdrummatrix.js:628 -#: js/pitchdrummatrix.js:630 -#: js/pitchdrummatrix.js:645 -#: js/pitchdrummatrix.js:647 -#: js/pitchdrummatrix.js:674 -#: js/pitchdrummatrix.js:676 -#: js/temperament.js:477 -#: js/temperament.js:480 -#: js/temperament.js:540 -#: js/temperament.js:542 -#: js/temperament.js:1835 -#: js/temperament.js:1837 -#: js/temperament.js:1986 -#: js/temperament.js:1988 -#: js/musickeyboard.js:522 -#: js/musickeyboard.js:682 -#: js/musickeyboard.js:684 -#: js/musickeyboard.js:756 -#: js/musickeyboard.js:758 -#: js/rhythmruler.js:298 -#: js/rhythmruler.js:300 -#: js/rhythmruler.js:314 -#: js/rhythmruler.js:316 -#: js/sampler.js:96 -#: js/sampler.js:98 -#: js/sampler.js:229 -#: js/sampler.js:235 -#: js/sampler.js:237 -#: js/tempo.js:84 -#: js/tempo.js:86 -#: js/timbre.js:432 -#: js/timbre.js:434 -#: js/timbre.js:465 -#: js/timbre.js:467 -#: js/timbre.js:746 -#: js/meterwidget.js:80 -#: js/arpeggio.js:90 -#: js/arpeggio.js:547 -#: js/arpeggio.js:549 -#: js/arpeggio.js:644 -#: js/arpeggio.js:646 -msgid "Play" +#: js/turtledefs.js:745 +msgid "Keyboard shortcuts" msgstr "" -#: js/toolbar.js:48 -#: js/toolbar.js:109 -#: js/toolbar.js:173 -#: js/toolbar.js:229 -#: js/turtledefs.js:451 -#: js/turtledefs.js:488 -#: js/activity.js:2297 -#: js/modewidget.js:99 -#: js/modewidget.js:101 -#: js/phrasemaker.js:323 -#: js/phrasemaker.js:325 -#: js/pitchdrummatrix.js:561 -#: js/pitchdrummatrix.js:563 -#: js/temperament.js:1820 -#: js/temperament.js:1822 -#: js/meterwidget.js:101 -#: js/meterwidget.js:103 -#: js/arpeggio.js:534 -#: js/arpeggio.js:536 -msgid "Stop" +#: js/turtledefs.js:746 +msgid "You can type d to create a do block and r to create a re block etc." msgstr "" -#: js/toolbar.js:49 -#: js/toolbar.js:110 -#: js/toolbar.js:174 -#: js/toolbar.js:230 -#: js/turtledefs.js:498 -msgid "Record" +#: js/turtledefs.js:753 +msgid "Show these messages." msgstr "" -#: js/toolbar.js:50 -#: js/toolbar.js:51 -msgid "Full screen" +#: js/turtledefs.js:759 +#: js/turtledefs.js:790 +#: js/widgets/help.js:335 +msgid "Guide" msgstr "" -#: js/toolbar.js:52 -#: js/toolbar.js:112 -#: js/toolbar.js:177 -#: js/toolbar.js:232 -#: js/turtledefs.js:504 -msgid "Toggle Fullscreen" +#: js/turtledefs.js:760 +msgid "A detailed guide to Turtle Blocks is available." msgstr "" -#: js/toolbar.js:53 -#: js/toolbar.js:113 -#: js/toolbar.js:178 -#: js/toolbar.js:233 -#: js/turtledefs.js:510 -#: js/StringHelper.js:33 -msgid "New project" +#: js/turtledefs.js:764 +msgid "Turtle Blocks Guide" msgstr "" -#: js/toolbar.js:54 -#: js/toolbar.js:114 -#: js/toolbar.js:179 -#: js/toolbar.js:234 -#: js/turtledefs.js:516 -msgid "Load project from file" +#: js/turtledefs.js:767 +#: js/turtledefs.js:798 +#: js/widgets/help.js:336 +msgid "About" msgstr "" -#: js/toolbar.js:55 -#: js/toolbar.js:115 -#: js/toolbar.js:116 -#: js/toolbar.js:180 -#: js/toolbar.js:235 -#: js/turtledefs.js:541 -#: js/turtledefs.js:550 -#: js/turtledefs.js:571 -msgid "Save project" +#: js/turtledefs.js:768 +msgid "Turtle Blocks is an open source collection of tools for exploring musical concepts." msgstr "" -#: js/toolbar.js:56 -#: js/toolbar.js:75 -#: js/toolbar.js:77 -#: js/toolbar.js:135 -#: js/toolbar.js:144 -#: js/toolbar.js:146 -#: js/toolbar.js:181 -#: js/toolbar.js:199 -#: js/toolbar.js:201 -#: js/toolbar.js:236 -#: js/toolbar.js:254 -#: js/toolbar.js:256 -msgid "Save project as HTML" +#: js/turtledefs.js:770 +msgid "A full list of contributors can be found in the Turtle Blocks GitHub repository." +msgstr "" + +#: js/turtledefs.js:772 +msgid "Turtle Blocks is licensed under the AGPL." +msgstr "" + +#: js/turtledefs.js:780 +msgid "Turtle Blocks GitHub repository" +msgstr "" + +#: js/turtledefs.js:783 +#: js/turtledefs.js:814 +#: js/widgets/help.js:337 +#: js/widgets/help.js:359 +msgid "Congratulations." +msgstr "" + +#: js/turtledefs.js:784 +msgid "You have finished the tour. Please enjoy Turtle Blocks!" +msgstr "" + +#: js/turtledefs.js:791 +msgid "A detailed guide to Music Blocks is available." +msgstr "" + +#: js/turtledefs.js:799 +msgid "Music Blocks is an open source collection of tools for exploring musical concepts." +msgstr "" + +#: js/turtledefs.js:801 +msgid "A full list of contributors can be found in the Music Blocks GitHub repository." +msgstr "" + +#: js/turtledefs.js:803 +msgid "Music Blocks is licensed under the AGPL." +msgstr "" + +#: js/turtledefs.js:811 +msgid "Music Blocks GitHub repository" +msgstr "" + +#: js/turtledefs.js:815 +msgid "You have finished the tour. Please enjoy Music Blocks!" +msgstr "" + +#: js/turtles.js:882 +msgid "Grid" +msgstr "" + +#: js/turtles.js:1024 +msgid "Expand" +msgstr "" + +#: js/block-verbose.js:1616 +#: js/block-verbose.js:1735 +#: js/block.js:1580 +#: js/block.js:1699 +#: js/palette.js:605 +#: js/blocks/IntervalsBlocks.js:63 +#: js/blocks/WidgetBlocks.js:259 +msgid "temperament" +msgstr "" + +#: js/block-verbose.js:1630 +#: js/block.js:1594 +msgid "matrix" msgstr "" -#: js/toolbar.js:57 -#: js/toolbar.js:117 -#: js/toolbar.js:182 -#: js/toolbar.js:237 -msgid "Find and share projects" +#: js/block-verbose.js:1637 +#: js/block.js:1601 +#: js/blocks/WidgetBlocks.js:1509 +#: plugins/rodi.rtp:324 +msgid "status" msgstr "" -#: js/toolbar.js:58 -#: js/toolbar.js:118 -#: js/toolbar.js:183 -#: js/toolbar.js:238 -msgid "Offline. Sharing is unavailable" +#: js/block-verbose.js:1644 +#: js/block.js:1608 +msgid "drum mapper" msgstr "" -#: js/toolbar.js:59 -#: js/toolbar.js:119 -#: js/toolbar.js:184 -#: js/toolbar.js:239 -msgid "Auxiliary menu" +#: js/block-verbose.js:1651 +#: js/block.js:1615 +msgid "ruler" msgstr "" -#: js/toolbar.js:61 -#: js/toolbar.js:121 -#: js/toolbar.js:186 -#: js/toolbar.js:241 -msgid "Run slowly" +#: js/block-verbose.js:1658 +#: js/block.js:1622 +#: js/blocks/WidgetBlocks.js:397 +#.TRANS: timbre is the character or quality of a musical sound +msgid "timbre" msgstr "" -#: js/toolbar.js:62 -#: js/toolbar.js:122 -#: js/toolbar.js:187 -#: js/toolbar.js:242 -#: js/turtledefs.js:682 -msgid "Run step by step" +#: js/block-verbose.js:1665 +#: js/block.js:1629 +msgid "stair" msgstr "" -#: js/toolbar.js:63 -#: js/toolbar.js:123 -#: js/toolbar.js:188 -#: js/toolbar.js:243 -#: js/turtledefs.js:689 -msgid "Display statistics" +#: js/block-verbose.js:1672 +#: js/block.js:1636 +#: js/blocks/WidgetBlocks.js:707 +#.TRANS: the speed at music is should be played. +msgid "tempo" msgstr "" -#: js/toolbar.js:64 -#: js/toolbar.js:124 -#: js/toolbar.js:189 -#: js/toolbar.js:244 -msgid "Load plugin" +#: js/block-verbose.js:1679 +#: js/block-verbose.js:1742 +#: js/block.js:1643 +#: js/block.js:1706 +#: js/blocks/IntervalsBlocks.js:1464 +#.TRANS: mode, e.g., Major in C Major +msgid "mode" msgstr "" -#: js/toolbar.js:65 -#: js/toolbar.js:125 -#: js/toolbar.js:190 -#: js/toolbar.js:245 -#: js/turtledefs.js:696 -msgid "Delete plugin" +#: js/block-verbose.js:1686 +#: js/block.js:1650 +msgid "slider" msgstr "" -#: js/toolbar.js:66 -#: js/toolbar.js:126 -#: js/toolbar.js:191 -#: js/toolbar.js:246 -msgid "Enable horizontal scrolling" +#: js/block-verbose.js:1693 +#: js/block.js:1657 +#: js/blocks/SensorsBlocks.js:1001 +msgid "keyboard" msgstr "" -#: js/toolbar.js:67 -#: js/toolbar.js:127 -#: js/toolbar.js:192 -#: js/toolbar.js:247 -msgid "Disable horizontal scrolling" +#: js/block-verbose.js:1707 +#: js/block.js:1671 +#: js/blocks/WidgetBlocks.js:1190 +#: js/blocks/WidgetBlocks.js:1228 +#.TRANS: widget for subdividing a measure into distinct rhythmic elements +msgid "rhythm maker" msgstr "" -#: js/toolbar.js:68 -#: js/toolbar.js:128 -#: js/toolbar.js:193 -#: js/toolbar.js:248 -#: js/LocalCard.js:54 -#: js/StringHelper.js:71 -msgid "Merge with current project" +#: js/block-verbose.js:1714 +#: js/block-verbose.js:2457 +#: js/block-verbose.js:2514 +#: js/block.js:1678 +#: js/block.js:2385 +#: js/block.js:2442 +#: js/blocks/MeterBlocks.js:1367 +#: js/blocks/OrnamentBlocks.js:220 +#: js/blocks/OrnamentBlocks.js:312 +#: js/blocks/RhythmBlocks.js:33 +#: js/blocks/RhythmBlocks.js:356 +#: js/blocks/RhythmBlocks.js:766 +#: js/blocks/RhythmBlocks.js:806 +#: js/blocks/RhythmBlockPaletteBlocks.js:70 +#: js/blocks/RhythmBlockPaletteBlocks.js:252 +#: js/blocks/RhythmBlockPaletteBlocks.js:485 +#: js/blocks/RhythmBlockPaletteBlocks.js:554 +#: js/blocks/RhythmBlockPaletteBlocks.js:605 +#: js/blocks/RhythmBlockPaletteBlocks.js:875 +#: js/turtleactions/DictActions.js:85 +#: js/widgets/phrasemaker.js:942 +#: js/widgets/phrasemaker.js:2656 +#: js/widgets/phrasemaker.js:2699 +#: js/widgets/phrasemaker.js:2810 +#.TRANS: the value (e.g., 1/4 note) of the note being played. +msgid "note value" msgstr "" -#: js/toolbar.js:69 -#: js/toolbar.js:129 -msgid "Set Pitch Preview" +#: js/block-verbose.js:1721 +#: js/block-verbose.js:2382 +#: js/block-verbose.js:2405 +#: js/block.js:1685 +#: js/block.js:2310 +#: js/block.js:2333 +#: js/blocks/IntervalsBlocks.js:1071 +#: js/blocks/OrnamentBlocks.js:312 +#.TRANS: calculate a relative step between notes based on semi-tones +msgid "scalar interval" msgstr "" -#: js/toolbar.js:70 -#: js/toolbar.js:130 -#: js/toolbar.js:194 -#: js/toolbar.js:249 -msgid "Toggle JavaScript Editor" +#: js/block-verbose.js:1728 +#: js/block.js:1692 +#: js/blocks/RhythmBlocks.js:148 +msgid "milliseconds" msgstr "" -#: js/toolbar.js:71 -#: js/toolbar.js:131 -#: js/toolbar.js:195 -#: js/toolbar.js:250 -#: js/turtledefs.js:724 -msgid "Restore" +#: js/block-verbose.js:2455 +#: js/block-verbose.js:2459 +#: js/block-verbose.js:2512 +#: js/block-verbose.js:2628 +#: js/block.js:2383 +#: js/block.js:2387 +#: js/block.js:2440 +#: js/block.js:2556 +#: js/blocks/RhythmBlocks.js:712 +#: js/blocks/ProgramBlocks.js:1273 +#: js/widgets/rhythmruler.js:1183 +#: js/widgets/rhythmruler.js:1329 +msgid "silence" msgstr "" -#: js/toolbar.js:72 -#: js/toolbar.js:132 -#: js/toolbar.js:196 -#: js/toolbar.js:251 -msgid "Switch to beginner mode" +#: js/block-verbose.js:2548 +#: js/block-verbose.js:3492 +#: js/block-verbose.js:3509 +#: js/activity.js:2718 +#: js/activity.js:2769 +#: js/block.js:2476 +#: js/block.js:3416 +#: js/block.js:3433 +#: js/utils/musicutils.js:3780 +#: js/utils/musicutils.js:5273 +#.TRANS: the note names must be separated by single spaces +#.TRANS: the note names must be separated by single spaces +#.TRANS: the note names must be separated by single spaces +msgid "ti la sol fa mi re do" msgstr "" -#: js/toolbar.js:73 -#: js/toolbar.js:133 -#: js/toolbar.js:197 -#: js/toolbar.js:252 -msgid "Switch to advanced mode" +#: js/block-verbose.js:2616 +#: js/block.js:2544 +#.TRANS: scalar step +#.TRANS: scalar step +msgid "down" msgstr "" -#: js/toolbar.js:74 -#: js/toolbar.js:134 -#: js/toolbar.js:143 -#: js/toolbar.js:198 -#: js/toolbar.js:253 -#: js/turtledefs.js:738 -msgid "Select language" +#: js/block-verbose.js:2617 +#: js/block.js:2545 +msgid "up" msgstr "" -#: js/toolbar.js:76 -#: js/toolbar.js:79 -#: js/toolbar.js:137 -#: js/turtledefs.js:579 -msgid "Save mouse artwork as PNG" +#: js/block-verbose.js:3026 +#: js/block.js:2950 +msgid "Silence block cannot be removed." msgstr "" -#: js/toolbar.js:78 -#: js/toolbar.js:136 -#: js/turtledefs.js:575 -msgid "Save mouse artwork as SVG" +#: js/block-verbose.js:3824 +#: js/block.js:3748 +#: js/blocks.js:2607 +#: js/blocks.js:3218 +#: js/palette.js:618 +#: js/blocks/BooleanBlocks.js:77 +#: js/blocks/BooleanBlocks.js:167 +#: js/blocks/BooleanBlocks.js:251 +#: js/blocks/BooleanBlocks.js:335 +#: js/blocks/BooleanBlocks.js:433 +#: js/blocks/BooleanBlocks.js:539 +#: js/blocks/BooleanBlocks.js:640 +#: js/blocks/BooleanBlocks.js:741 +#: js/blocks/BooleanBlocks.js:847 +#: js/blocks/BooleanBlocks.js:948 +#: js/blocks/BooleanBlocks.js:1033 +#: js/blocks/SensorsBlocks.js:910 +msgid "true" msgstr "" -#: js/toolbar.js:80 -#: js/toolbar.js:138 -#: js/turtledefs.js:583 -msgid "Save music as WAV" +#: js/block-verbose.js:3824 +#: js/block.js:3748 +#: js/blocks.js:2609 +#: js/blocks.js:3220 +#: js/blocks/BooleanBlocks.js:79 +#: js/blocks/BooleanBlocks.js:169 +#: js/blocks/BooleanBlocks.js:253 +#: js/blocks/BooleanBlocks.js:337 +#: js/blocks/BooleanBlocks.js:435 +#: js/blocks/BooleanBlocks.js:541 +#: js/blocks/BooleanBlocks.js:642 +#: js/blocks/BooleanBlocks.js:743 +#: js/blocks/BooleanBlocks.js:849 +#: js/blocks/BooleanBlocks.js:950 +#: js/blocks/SensorsBlocks.js:912 +msgid "false" msgstr "" -#: js/toolbar.js:81 -#: js/toolbar.js:139 -#: js/turtledefs.js:587 -msgid "Save sheet music as ABC" +#: js/block-verbose.js:3835 +#: js/block-verbose.js:3848 +#: js/block.js:3759 +#: js/block.js:3772 +#: js/blocks/ExtrasBlocks.js:615 +msgid "Cartesian" msgstr "" -#: js/toolbar.js:82 -#: js/toolbar.js:140 -#: js/turtledefs.js:591 -msgid "Save sheet music as Lilypond" +#: js/block-verbose.js:3836 +#: js/block-verbose.js:3849 +#: js/block.js:3760 +#: js/block.js:3773 +#: js/blocks/ExtrasBlocks.js:619 +msgid "polar" msgstr "" -#: js/toolbar.js:83 -msgid "Save sheet music as MusicXML" +#: js/block-verbose.js:3837 +#: js/block-verbose.js:3850 +#: js/block.js:3761 +#: js/block.js:3774 +#: js/blocks/ExtrasBlocks.js:623 +msgid "Cartesian+polar" msgstr "" -#: js/toolbar.js:84 -#: js/toolbar.js:141 -#: js/toolbar.js:149 -#: js/toolbar.js:204 -#: js/toolbar.js:259 -#: js/turtledefs.js:562 -#: js/turtledefs.js:595 -msgid "Save block artwork as SVG" +#: js/block-verbose.js:3838 +#: js/block-verbose.js:3857 +#: js/block.js:3762 +#: js/block.js:3781 +#: js/blocks/ExtrasBlocks.js:652 +msgid "none" msgstr "" -#: js/toolbar.js:85 -#: js/toolbar.js:142 -#: js/toolbar.js:150 -#: js/toolbar.js:205 -#: js/toolbar.js:260 -msgid "Confirm" +#: js/block-verbose.js:3851 +#: js/block.js:3775 +#: js/blocks/ExtrasBlocks.js:628 +msgid "treble" msgstr "" -#: js/toolbar.js:86 -#: js/toolbar.js:151 -#: js/toolbar.js:206 -#: js/toolbar.js:261 -msgid "English (United States)" +#: js/block-verbose.js:3852 +#: js/block.js:3776 +#: js/blocks/ExtrasBlocks.js:632 +msgid "grand staff" msgstr "" -#: js/toolbar.js:87 -#: js/toolbar.js:152 -#: js/toolbar.js:207 -#: js/toolbar.js:262 -msgid "English (United Kingdom)" +#: js/block-verbose.js:3853 +#: js/block.js:3777 +#: js/blocks/ExtrasBlocks.js:636 +msgid "mezzo-soprano" msgstr "" -#: js/toolbar.js:88 -#: js/toolbar.js:153 -#: js/toolbar.js:208 -#: js/toolbar.js:263 -msgid "日本語" +#: js/block-verbose.js:3854 +#: js/block.js:3778 +#: js/blocks/ExtrasBlocks.js:640 +msgid "alto" msgstr "" -#: js/toolbar.js:89 -msgid "한국어" +#: js/block-verbose.js:3855 +#: js/block.js:3779 +#: js/blocks/ExtrasBlocks.js:644 +msgid "tenor" msgstr "" -#: js/toolbar.js:90 -#: js/toolbar.js:155 -#: js/toolbar.js:210 -#: js/toolbar.js:265 -msgid "español" +#: js/block-verbose.js:3856 +#: js/block.js:3780 +#: js/utils/musicutils.js:1115 +#: js/utils/synthutils.js:80 +#: js/blocks/ExtrasBlocks.js:648 +#.TRANS: musical instrument +msgid "bass" msgstr "" -#: js/toolbar.js:91 -#: js/toolbar.js:156 -#: js/toolbar.js:211 -#: js/toolbar.js:266 -msgid "português" +#: js/block-verbose.js:3901 +#: js/block.js:3825 +#: js/blocks.js:2600 +#: js/blocks.js:3211 +msgid "on2" msgstr "" -#: js/toolbar.js:92 -#: js/toolbar.js:157 -#: js/toolbar.js:212 -#: js/toolbar.js:267 -msgid "にほんご" +#: js/block-verbose.js:3903 +#: js/block.js:3827 +#: js/blocks.js:2602 +#: js/blocks.js:3213 +msgid "off" msgstr "" -#: js/toolbar.js:93 -#: js/toolbar.js:158 -#: js/toolbar.js:213 -#: js/toolbar.js:268 -msgid "中文" +#: js/block-verbose.js:4470 +#: js/block.js:4394 +msgid "Not a number" msgstr "" -#: js/toolbar.js:94 -#: js/toolbar.js:159 -#: js/toolbar.js:214 -#: js/toolbar.js:269 -msgid "ภาษาไทย" +#: js/block-verbose.js:4477 +#: js/block.js:4401 +msgid "Octave value must be between 1 and 10." msgstr "" -#: js/toolbar.js:95 -#: js/toolbar.js:160 -#: js/toolbar.js:215 -#: js/toolbar.js:270 -msgid "aymara" +#: js/block-verbose.js:4485 +#: js/block.js:4409 +msgid "Numbers can have at most 10 digits." msgstr "" -#: js/toolbar.js:96 -#: js/toolbar.js:161 -#: js/toolbar.js:216 -#: js/toolbar.js:271 -msgid "quechua" +#: js/activity.js:390 +#: js/activity.js:395 +msgid "Search for blocks" msgstr "" -#: js/toolbar.js:97 -#: js/toolbar.js:162 -#: js/toolbar.js:217 -#: js/toolbar.js:272 -msgid "guarani" +#: js/activity.js:1413 +msgid "Refresh your browser to change to advanced mode." msgstr "" -#: js/toolbar.js:98 -#: js/toolbar.js:163 -#: js/toolbar.js:218 -#: js/toolbar.js:273 -msgid "हिंदी" +#: js/activity.js:1418 +msgid "Refresh your browser to change to beginner mode." msgstr "" -#: js/toolbar.js:99 -#: js/toolbar.js:165 -#: js/toolbar.js:219 -#: js/toolbar.js:275 -msgid "igbo" +#: js/activity.js:1477 +msgid "Catching mice" +msgstr "" + +#: js/activity.js:1478 +msgid "Cleaning the instruments" +msgstr "" + +#: js/activity.js:1479 +msgid "Testing key pieces" +msgstr "" + +#: js/activity.js:1480 +msgid "Sight-reading" +msgstr "" + +#: js/activity.js:1481 +msgid "Combining math and music" msgstr "" -#: js/toolbar.js:100 -#: js/toolbar.js:166 -#: js/toolbar.js:220 -#: js/toolbar.js:276 -msgid "عربى" +#: js/activity.js:1482 +msgid "Generating more blocks" msgstr "" -#: js/toolbar.js:101 -#: js/toolbar.js:164 -#: js/toolbar.js:221 -#: js/toolbar.js:274 -msgid "తెలుగు" +#: js/activity.js:1483 +msgid "Do Re Mi Fa Sol La Ti Do" msgstr "" -#: js/toolbar.js:102 -#: js/toolbar.js:167 -#: js/toolbar.js:222 -#: js/toolbar.js:277 -msgid "עִברִית" +#: js/activity.js:1484 +msgid "Tuning string instruments" msgstr "" -#: js/toolbar.js:111 -#: js/toolbar.js:175 -#: js/toolbar.js:176 -#: js/toolbar.js:231 -msgid "Full Screen" +#: js/activity.js:1485 +msgid "Pressing random keys" msgstr "" -#: js/toolbar.js:145 -#: js/toolbar.js:148 -#: js/toolbar.js:200 -#: js/toolbar.js:203 -#: js/toolbar.js:255 -#: js/toolbar.js:258 -#: js/turtledefs.js:558 -msgid "Save turtle artwork as PNG" +#: js/activity.js:1663 +msgid "plugins will be removed upon restart." msgstr "" -#: js/toolbar.js:147 -#: js/toolbar.js:202 -#: js/toolbar.js:257 -#: js/turtledefs.js:554 -msgid "Save turtle artwork as SVG" +#: js/activity.js:1672 +msgid "show Cartesian" msgstr "" -#: js/toolbar.js:154 -#: js/toolbar.js:209 -#: js/toolbar.js:264 -msgid "한국인" +#: js/activity.js:2211 +#: js/palette.js:589 +#: js/blocks/RhythmBlocks.js:923 +#: js/blocks/PitchBlocks.js:442 +#: js/blocks/PitchBlocks.js:1786 +#.TRANS: a numeric mapping of the notes in an octave based on the musical mode +msgid "scale degree" msgstr "" -#: js/toolbar.js:171 -#: js/toolbar.js:227 -msgid "About Turtle Blocks" +#: js/activity.js:2214 +#: js/palette.js:598 +msgid "voice name" msgstr "" -#: js/toolbar.js:429 -#: js/toolbar.js:440 -msgid "Turtle Wrap Off" +#: js/activity.js:2217 +#: js/palette.js:595 +msgid "invert mode" msgstr "" -#: js/toolbar.js:442 -msgid "Turtle Wrap On" +#: js/activity.js:2220 +msgid "output tools" msgstr "" -#: js/block.js:1470 -msgid "matrix" +#: js/activity.js:2223 +msgid "custom note" msgstr "" -#: js/block.js:1477 -#: js/WidgetBlocks.js:1226 -#: plugins/rodi.rtp:324 -msgid "status" +#: js/activity.js:2226 +msgid "accidental name" msgstr "" -#: js/block.js:1484 -msgid "drum mapper" +#: js/activity.js:2229 +#: js/blocks/PitchBlocks.js:855 +msgid "east indian solfege" msgstr "" -#: js/block.js:1491 -msgid "ruler" +#: js/activity.js:2232 +#: js/blocks/PitchBlocks.js:869 +msgid "note name" msgstr "" -#: js/block.js:1498 -#: js/WidgetBlocks.js:327 -#.TRANS: timbre is the character or quality of a musical sound -msgid "timbre" +#: js/activity.js:2235 +#: js/blocks/IntervalsBlocks.js:94 +msgid "temperament name" msgstr "" -#: js/block.js:1505 -msgid "stair" +#: js/activity.js:2238 +#: js/palette.js:592 +msgid "mode name" msgstr "" -#: js/block.js:1512 -#: js/WidgetBlocks.js:577 -#.TRANS: the speed at music is should be played. -msgid "tempo" +#: js/activity.js:2241 +msgid "chord name" msgstr "" -#: js/block.js:1519 -#: js/block.js:1582 -#: js/IntervalsBlocks.js:1268 -#.TRANS: mode, e.g., Major in C Major -msgid "mode" +#: js/activity.js:2244 +#: js/palette.js:615 +msgid "interval name" msgstr "" -#: js/block.js:1526 -msgid "slider" +#: js/activity.js:2247 +msgid "filter type" msgstr "" -#: js/block.js:1533 -#: js/SensorsBlocks.js:1001 -msgid "keyboard" +#: js/activity.js:2250 +msgid "oscillator type" msgstr "" -#: js/block.js:1547 -#: js/WidgetBlocks.js:957 -#: js/WidgetBlocks.js:988 -#.TRANS: widget for subdividing a measure into distinct rhythmic elements -msgid "rhythm maker" +#: js/activity.js:2253 +#: js/blocks.js:2479 +#: js/blocks.js:2487 +msgid "audio file" msgstr "" -#: js/block.js:1554 -#: js/block.js:2182 -#: js/block.js:2236 -#: js/RhythmBlockPaletteBlocks.js:70 -#: js/RhythmBlockPaletteBlocks.js:251 -#: js/RhythmBlockPaletteBlocks.js:484 -#: js/RhythmBlockPaletteBlocks.js:553 -#: js/RhythmBlockPaletteBlocks.js:604 -#: js/RhythmBlockPaletteBlocks.js:874 -#: js/RhythmBlocks.js:33 -#: js/RhythmBlocks.js:356 -#: js/RhythmBlocks.js:766 -#: js/RhythmBlocks.js:806 -#: js/OrnamentBlocks.js:220 -#: js/OrnamentBlocks.js:312 -#: js/MeterBlocks.js:1367 -#: js/DictActions.js:85 -#: js/phrasemaker.js:731 -#: js/phrasemaker.js:2393 -#: js/phrasemaker.js:2436 -#: js/phrasemaker.js:2534 -#.TRANS: the value (e.g., 1/4 note) of the note being played. -msgid "note value" +#: js/activity.js:2256 +#: js/blocks/DrumBlocks.js:32 +msgid "noise name" msgstr "" -#: js/block.js:1561 -#: js/block.js:2110 -#: js/block.js:2133 -#: js/IntervalsBlocks.js:875 -#: js/OrnamentBlocks.js:312 -#.TRANS: calculate a relative step between notes based on semi-tones -msgid "scalar interval" +#: js/activity.js:2259 +#: js/blocks/DrumBlocks.js:75 +msgid "drum name" msgstr "" -#: js/block.js:1568 -#: js/RhythmBlocks.js:148 -msgid "milliseconds" +#: js/activity.js:2262 +#: js/blocks/DrumBlocks.js:119 +msgid "effects name" msgstr "" -#: js/block.js:2180 -#: js/block.js:2184 -#: js/block.js:2234 -#: js/block.js:2345 -#: js/ProgramBlocks.js:1273 -#: js/RhythmBlocks.js:712 -#: js/rhythmruler.js:834 -#: js/rhythmruler.js:961 -msgid "silence" +#: js/activity.js:2265 +msgid "wrap mode" msgstr "" -#: js/block.js:2265 -#: js/block.js:3134 -#: js/block.js:3151 -#: js/activity.js:2336 -#: js/activity.js:2387 -#: js/musicutils.js:2932 -#: js/musicutils.js:4287 -#.TRANS: the note names must be separated by single spaces -#.TRANS: the note names must be separated by single spaces -msgid "ti la sol fa mi re do" +#: js/activity.js:2268 +msgid "load file" msgstr "" -#: js/block.js:2333 -#.TRANS: scalar step -msgid "down" +#: js/activity.js:2435 +#: js/activity.js:5851 +msgid "This block is deprecated." msgstr "" -#: js/block.js:2334 -msgid "up" +#: js/activity.js:2437 +#: js/activity.js:5853 +msgid "Block cannot be found." msgstr "" -#: js/block.js:3477 -#: js/block.js:3490 -#: js/ExtrasBlocks.js:612 -msgid "Cartesian" +#: js/activity.js:2645 +msgid "Saving block artwork" msgstr "" -#: js/block.js:3478 -#: js/block.js:3491 -#: js/ExtrasBlocks.js:616 -msgid "polar" +#: js/activity.js:2656 +msgid "Erase" msgstr "" -#: js/block.js:3479 -#: js/block.js:3492 -#: js/ExtrasBlocks.js:620 -msgid "Cartesian+polar" +#: js/activity.js:2683 +#: js/activity.js:2705 +msgid "Paste" msgstr "" -#: js/block.js:3480 -#: js/block.js:3499 -#: js/ExtrasBlocks.js:649 -msgid "none" +#: js/activity.js:2687 +msgid "Save block help" msgstr "" -#: js/block.js:3493 -#: js/ExtrasBlocks.js:625 -msgid "treble" +#: js/activity.js:2772 +msgid "Jumping to the bottom of the page." msgstr "" -#: js/block.js:3494 -#: js/ExtrasBlocks.js:629 -msgid "grand staff" +#: js/activity.js:2778 +msgid "Scrolling up." msgstr "" -#: js/block.js:3495 -#: js/ExtrasBlocks.js:633 -msgid "mezzo-soprano" +#: js/activity.js:2783 +msgid "Scrolling down." msgstr "" -#: js/block.js:3496 -#: js/ExtrasBlocks.js:637 -msgid "alto" +#: js/activity.js:2788 +msgid "Extracting block" msgstr "" -#: js/block.js:3497 -#: js/ExtrasBlocks.js:641 -msgid "tenor" +#: js/activity.js:2796 +msgid "Moving block up." msgstr "" -#: js/block.js:3498 -#: js/ExtrasBlocks.js:645 -#: js/musicutils.js:736 -#: js/synthutils.js:64 -#.TRANS: musical instrument -msgid "bass" +#: js/activity.js:2817 +msgid "Moving block down." msgstr "" -#: js/block.js:4075 -msgid "Not a number" +#: js/activity.js:2838 +msgid "Moving block left." msgstr "" -#: js/block.js:4082 -msgid "Octave value must be between 1 and 10." +#: js/activity.js:2855 +msgid "Moving block right." msgstr "" -#: js/block.js:4090 -msgid "Numbers can have at most 10 digits." +#: js/activity.js:2870 +msgid "Jump to home position." msgstr "" -#: js/notation.js:353 -msgid "Lilypond cannot process pickup of " +#: js/activity.js:2897 +msgid "Hide blocks" msgstr "" -#: js/turtledefs.js:40 -#.TRANS: put the URL to the guide here, e.g., https://github.com/sugarlabs/turtleblocksjs/tree/master/guide/README.md -msgid "guide url" +#: js/activity.js:4500 +msgid "Click the run button to run the project." msgstr "" -#: js/turtledefs.js:85 -#: js/turtledefs.js:437 -msgid "Turtle Blocks is a Logo-inspired turtle that draws colorful pictures with snap-together visual-programming blocks." +#: js/activity.js:5692 +msgid "Show/hide block" msgstr "" -#: js/turtledefs.js:118 -#: js/turtledefs.js:220 -msgid "search" +#: js/activity.js:5698 +msgid "Expand/collapse blocks" msgstr "" -#: js/turtledefs.js:120 -#: js/turtledefs.js:222 -#: js/WidgetBlocks.js:437 -#: js/MeterBlocks.js:1343 -#.TRANS: musical meter (time signature), e.g., 4:4 -msgid "meter" +#: js/activity.js:5976 +msgid "Could not parse JSON input." msgstr "" -#: js/turtledefs.js:122 -#: js/turtledefs.js:224 -msgid "intervals" +#: js/activity.js:6475 +#: js/activity.js:6580 +#: js/activity.js:6631 +msgid "Cannot load project from the file. Please check the file type." msgstr "" -#: js/turtledefs.js:124 -#: js/turtledefs.js:226 -msgid "ornament" +#: js/activity.js:6917 +msgid "Invalid parameters" msgstr "" -#: js/turtledefs.js:125 -#: js/turtledefs.js:227 -#: js/VolumeBlocks.js:362 -#: js/VolumeBlocks.js:502 -#: js/VolumeBlocks.js:545 -msgid "volume" +#: js/blocks.js:1212 +#: js/blocks.js:3444 +#: js/blocks.js:3834 +#: js/blocks.js:3865 +#: js/blocks.js:3914 +#: js/blocks.js:3949 +#: js/blocks.js:6586 +#: js/palette.js:509 +#: js/palette.js:638 +#: js/palette.js:1105 +#: js/blocks/BoxesBlocks.js:282 +#: js/blocks/BoxesBlocks.js:285 +#: js/blocks/BoxesBlocks.js:405 +#: js/blocks/BoxesBlocks.js:594 +msgid "box" msgstr "" -#: js/turtledefs.js:129 -#: js/turtledefs.js:231 -msgid "boxes" +#: js/blocks.js:1713 +msgid "Consider breaking this stack into parts." msgstr "" -#: js/turtledefs.js:130 -#: js/turtledefs.js:232 -msgid "widgets" +#: js/blocks.js:2472 +#: js/palette.js:653 +#: js/blocks/MediaBlocks.js:602 +msgid "open file" msgstr "" -#: js/turtledefs.js:131 -#: js/turtledefs.js:233 -#: js/phrasemaker.js:824 -msgid "graphics" +#: js/blocks.js:3247 +#: js/palette.js:574 +#: js/blocks/MediaBlocks.js:892 +#: js/blocks/MediaBlocks.js:963 +msgid "text" msgstr "" -#: js/turtledefs.js:134 -#: js/turtledefs.js:236 -msgid "boolean" +#: js/blocks.js:3443 +#: js/palette.js:641 +#: js/palette.js:642 +#: js/blocks/BoxesBlocks.js:514 +msgid "store in box" msgstr "" -#: js/turtledefs.js:137 -#: js/turtledefs.js:239 -#: js/HeapBlocks.js:59 -#: js/status.js:147 -msgid "heap" +#: js/blocks.js:3448 +#: js/blocks.js:3888 +#: js/blocks.js:3923 +#: js/blocks.js:3958 +#: js/blocks.js:5862 +#: js/blocks.js:5883 +#: js/blocks/BoxesBlocks.js:772 +msgid "box1" msgstr "" -#: js/turtledefs.js:138 -#: js/turtledefs.js:240 -#: js/ProgramBlocks.js:495 -#: js/DictBlocks.js:142 -msgid "dictionary" +#: js/blocks.js:3450 +#: js/blocks.js:3890 +#: js/blocks.js:3925 +#: js/blocks.js:3960 +#: js/blocks.js:5864 +#: js/blocks.js:5885 +#: js/blocks/BoxesBlocks.js:663 +msgid "box2" msgstr "" -#: js/turtledefs.js:139 -#: js/turtledefs.js:241 -msgid "ensemble" +#: js/blocks.js:4122 +#: js/palette.js:639 +#: js/palette.js:644 +#: js/palette.js:1041 +#: js/blocks/BoxesBlocks.js:591 +msgid "store in" msgstr "" -#: js/turtledefs.js:140 -#: js/turtledefs.js:242 -msgid "extras" +#: js/blocks.js:4122 +#: js/blocks/BoxesBlocks.js:595 +#: js/blocks/DictBlocks.js:215 +#: js/blocks/DictBlocks.js:289 +#: js/blocks/EnsembleBlocks.js:391 +#: js/blocks/EnsembleBlocks.js:402 +#: js/blocks/MediaBlocks.js:746 +#: js/blocks/PitchBlocks.js:656 +#: js/blocks/PitchBlocks.js:934 +#: js/blocks/PitchBlocks.js:1866 +#: js/blocks/ProgramBlocks.js:390 +#: js/blocks/ProgramBlocks.js:495 +#: js/blocks/ProgramBlocks.js:658 +#: js/blocks/ToneBlocks.js:1025 +msgid "name" msgstr "" -#: js/turtledefs.js:142 -#: js/turtledefs.js:244 -#.TRANS: program as in computer program -#.TRANS: program as in computer program -msgid "program" +#: js/blocks.js:4122 +#: js/blocks/BoxesBlocks.js:75 +#: js/blocks/BoxesBlocks.js:595 +#: js/blocks/DictBlocks.js:289 +#: js/blocks/DictBlocks.js:430 +#: js/blocks/HeapBlocks.js:544 +#: js/blocks/RhythmBlocks.js:1130 +msgid "value" msgstr "" -#: js/turtledefs.js:143 -#: js/turtledefs.js:245 -msgid "my blocks" +#: js/blocks.js:4465 +msgid "Forever loop detected inside a note value block. Unexpected things may happen." msgstr "" -#: js/turtledefs.js:185 -#: js/turtledefs.js:281 -msgid "artwork" +#: js/blocks.js:4988 +msgid "There is no block selected." msgstr "" -#: js/turtledefs.js:185 -#: js/turtledefs.js:281 -msgid "logic" +#: js/blocks.js:5091 +#: js/blocks/MediaBlocks.js:888 +msgid "show" msgstr "" -#: js/turtledefs.js:185 -#: js/turtledefs.js:281 -msgid "music" +#: js/blocks.js:5094 +#: js/blocks/MediaBlocks.js:803 +#.TRANS: Avatar is the image used to determine the appearance of the mouse. +msgid "avatar" msgstr "" -#: js/turtledefs.js:187 -#: js/turtledefs.js:463 -msgid "Music Blocks is a collection of tools for exploring fundamental musical concepts in a fun way." +#: js/blocks.js:5097 +#: js/blocks/ToneBlocks.js:1010 +#: js/widgets/sampler.js:975 +#.TRANS: The sound sample that the user uploads. +msgid "sample" msgstr "" -#: js/turtledefs.js:436 -msgid "Welcome to Turtle Blocks" +#: js/lilypond.js:606 +msgid "brown rat" msgstr "" -#: js/turtledefs.js:438 -#: js/turtledefs.js:465 -#: js/turtledefs.js:774 -#: js/turtledefs.js:805 -msgid "The current version is" +#: js/lilypond.js:607 +msgid "mole" msgstr "" -#: js/turtledefs.js:446 -#: js/turtledefs.js:483 -msgid "Click the run button to run the project in fast mode." +#: js/lilypond.js:608 +msgid "chipmunk" msgstr "" -#: js/turtledefs.js:452 -msgid "Stop the turtle." +#: js/lilypond.js:609 +msgid "red squirrel" msgstr "" -#: js/turtledefs.js:454 -#: js/turtledefs.js:491 -msgid "You can also type Alt-S to stop." +#: js/lilypond.js:610 +msgid "guinea pig" +msgstr "" + +#: js/lilypond.js:611 +msgid "capybara" msgstr "" -#: js/turtledefs.js:462 -#: js/help.js:333 -msgid "Welcome to Music Blocks" +#: js/lilypond.js:612 +msgid "coypu" msgstr "" -#: js/turtledefs.js:472 -#: js/help.js:334 -msgid "Meet Mr. Mouse!" +#: js/lilypond.js:613 +msgid "black rat" msgstr "" -#: js/turtledefs.js:473 -msgid "Mr Mouse is our Music Blocks conductor." +#: js/lilypond.js:614 +msgid "grey squirrel" msgstr "" -#: js/turtledefs.js:475 -msgid "Mr Mouse encourages you to explore Music Blocks." +#: js/lilypond.js:615 +msgid "flying squirrel" msgstr "" -#: js/turtledefs.js:477 -msgid "Let us start our tour!" +#: js/lilypond.js:616 +msgid "bat" msgstr "" -#: js/turtledefs.js:489 -msgid "Stop the music (and the mice)." +#: js/lilypond.js:749 +#: js/lilypond.js:913 +#: js/lilypond.js:951 +#: js/blocks/ActionBlocks.js:1256 +#: js/blocks/ExtrasBlocks.js:556 +msgid "start drum" msgstr "" -#: js/turtledefs.js:499 -msgid "Record your project as video." +#: js/logo.js:61 +msgid "Not a valid pitch name" msgstr "" -#: js/turtledefs.js:505 -msgid "Toggle Fullscreen mode." +#: js/logo.js:507 +#: js/blocks/ProgramBlocks.js:258 +#: js/blocks/ProgramBlocks.js:427 +msgid "You must select a file." msgstr "" -#: js/turtledefs.js:511 -msgid "Initialize a new project." +#: js/logo.js:1696 +msgid "Playback is ready." msgstr "" -#: js/turtledefs.js:517 -msgid "You can also load projects from the file system." +#: js/macros.js:711 +#: js/utils/musicutils.js:1162 +#: js/utils/synthutils.js:202 +#.TRANS: animal sound effect +msgid "duck" msgstr "" -#: js/turtledefs.js:522 -#: js/StringHelper.js:46 -msgid "Delete" +#: js/notation.js:353 +msgid "Lilypond cannot process pickup of " msgstr "" -#: js/turtledefs.js:523 -msgid "To delete a block, just right-click on it, then you will be able to see the delete option" +#: js/palette.js:571 +msgid "grid" msgstr "" -#: js/turtledefs.js:528 -#: js/activity.js:2270 -#: js/LocalCard.js:31 -msgid "Copy" +#: js/palette.js:580 +msgid "effect" msgstr "" -#: js/turtledefs.js:529 -msgid "To copy a block, just right-click on it, then you will be able to see the copy option" +#: js/palette.js:586 +msgid "sargam" msgstr "" -#: js/turtledefs.js:535 -msgid "To extract a block, just right-click on it, then you will be able to see the extract option" +#: js/palette.js:601 +#: js/blocks/PitchBlocks.js:1209 +msgid "custom pitch" msgstr "" -#: js/turtledefs.js:542 -#: js/turtledefs.js:552 -#: js/turtledefs.js:573 -msgid "Save your project to a file." +#: js/palette.js:609 +msgid "accidental" msgstr "" -#: js/turtledefs.js:549 -#: js/turtledefs.js:570 -msgid "save" +#: js/palette.js:633 +#: js/blocks/PitchBlocks.js:405 +msgid "pitch converter" msgstr "" -#: js/turtledefs.js:556 -#: js/turtledefs.js:577 -msgid "Save graphics from your project to as SVG." +#: js/piemenus.js:200 +#: js/utils/musicutils.js:1187 +#: js/utils/musicutils.js:1207 +#: js/widgets/musickeyboard.js:2341 +#: js/widgets/phrasemaker.js:1908 +#: js/widgets/sampler.js:810 +#.TRANS: double sharp is a music term related to pitch +msgid "double sharp" msgstr "" -#: js/turtledefs.js:560 -#: js/turtledefs.js:581 -msgid "Save graphics from your project as PNG." +#: js/piemenus.js:201 +#: js/utils/musicutils.js:1185 +#: js/utils/musicutils.js:1208 +#: js/blocks/PitchBlocks.js:1539 +#: js/turtleactions/PitchActions.js:323 +#: js/widgets/musickeyboard.js:2342 +#: js/widgets/phrasemaker.js:1909 +#: js/widgets/sampler.js:811 +#.TRANS: sharp is a music term related to pitch +#.TRANS: sharp is a half-step up in pitch +msgid "sharp" msgstr "" -#: js/turtledefs.js:564 -#: js/turtledefs.js:597 -msgid "Save block artwork as an SVG file." +#: js/piemenus.js:202 +#: js/utils/musicutils.js:1183 +#: js/utils/musicutils.js:1209 +#: js/widgets/musickeyboard.js:2343 +#: js/widgets/phrasemaker.js:1910 +#: js/widgets/sampler.js:812 +#.TRANS: natural is a music term related to pitch +msgid "natural" msgstr "" -#: js/turtledefs.js:585 -msgid "Save audio from your project as WAV." +#: js/piemenus.js:203 +#: js/utils/musicutils.js:1181 +#: js/utils/musicutils.js:1210 +#: js/blocks/PitchBlocks.js:1498 +#: js/turtleactions/PitchActions.js:326 +#: js/widgets/musickeyboard.js:2344 +#: js/widgets/phrasemaker.js:1911 +#: js/widgets/sampler.js:813 +#.TRANS: flat is a music term related to pitch +#.TRANS: flat is a half-step down in pitch +msgid "flat" msgstr "" -#: js/turtledefs.js:589 -msgid "Save your project to as an ABC file." +#: js/piemenus.js:204 +#: js/utils/musicutils.js:1179 +#: js/utils/musicutils.js:1211 +#: js/widgets/musickeyboard.js:2345 +#: js/widgets/phrasemaker.js:1912 +#: js/widgets/sampler.js:814 +#.TRANS: double flat is a music term related to pitch +msgid "double flat" msgstr "" -#: js/turtledefs.js:593 -msgid "Save your project to as a Lilypond file." +#: js/piemenus.js:2864 +#: js/utils/musicutils.js:1006 +#: js/blocks/PitchBlocks.js:1385 +#.TRANS: unison is a music term related to intervals +#.TRANS: unison means the note is the same as the current note +msgid "unison" msgstr "" -#: js/turtledefs.js:604 -msgid "Load samples from server" +#: js/piemenus.js:3018 +#: js/piemenus.js:3091 +#: js/utils/musicutils.js:1014 +#: js/utils/musicutils.js:1189 +#: js/utils/musicutils.js:1326 +#.TRANS: major is a music term related to intervals and mode +msgid "major" msgstr "" -#: js/turtledefs.js:605 -msgid "This button opens a viewer for loading example projects." +#: js/piemenus.js:3018 +#: js/piemenus.js:3091 +#: js/utils/musicutils.js:1032 +#.TRANS: modal scale for music +msgid "ionian" msgstr "" -#: js/turtledefs.js:611 -msgid "Palette buttons" +#: js/piemenus.js:3020 +#: js/piemenus.js:3095 +#: js/utils/musicutils.js:1012 +#: js/utils/musicutils.js:1190 +#: js/utils/musicutils.js:1323 +#.TRANS: minor is a music term related to intervals and mode +msgid "minor" msgstr "" -#: js/turtledefs.js:612 -msgid "This toolbar contains the palette buttons including Rhythm Pitch Tone Action and more." +#: js/piemenus.js:3020 +#: js/piemenus.js:3095 +#: js/utils/musicutils.js:1042 +#.TRANS: modal scale for music +msgid "aeolian" msgstr "" -#: js/turtledefs.js:614 -msgid "Click to show the palettes of blocks and drag blocks from the palettes onto the canvas to use them." +#: js/piemenus.js:3410 +msgid "Duplicate" msgstr "" -#: js/turtledefs.js:620 -msgid "Cartesian/Polar" +#: js/piemenus.js:3412 +msgid "Move to trash" msgstr "" -#: js/turtledefs.js:621 -msgid "Show or hide a coordinate grid." +#: js/piemenus.js:3413 +#: js/widgets/timbre.js:968 +#: planet/js/StringHelper.js:69 +msgid "Close" msgstr "" -#: js/turtledefs.js:627 -msgid "Clear the screen and return the mice to their initial positions." +#: js/piemenus.js:3419 +msgid "Save stack" msgstr "" -#: js/turtledefs.js:633 -msgid "Collapse the graphics window." +#: js/piemenus.js:3449 +msgid "In order to copy a sample, you must reload the widget, import the sample again, and export it." msgstr "" -#: js/turtledefs.js:638 -#: js/activity.js:4256 -#: js/activity.js:4256 -msgid "Home" +#: js/piemenus.js:3812 +msgid "You have chosen key " msgstr "" -#: js/turtledefs.js:639 -msgid "Return all blocks to the center of the screen." +#: js/piemenus.js:3816 +msgid " for your pitch preview." msgstr "" -#: js/turtledefs.js:644 -msgid "Show/hide blocks" +#: js/turtle-singer.js:1363 +#.TRANS: partials are weighted components in a harmonic series +msgid "You must have at least one Partial block inside of a Weighted-partial block" msgstr "" -#: js/turtledefs.js:645 -msgid "Hide or show the blocks and the palettes." +#: js/turtle-singer.js:2077 +msgid "synth cannot play chords." msgstr "" -#: js/turtledefs.js:650 -msgid "Expand/collapse collapsable blocks" +#: js/utils/musicutils.js:505 +#: js/utils/musicutils.js:645 +#: js/widgets/pitchdrummatrix.js:228 +#: js/widgets/musickeyboard.js:2885 +msgid "rest" msgstr "" -#: js/turtledefs.js:651 -msgid "Expand or collapse start and action stacks." +#: js/utils/musicutils.js:689 +msgid "Perfect unison" msgstr "" -#: js/turtledefs.js:658 -#: js/activity.js:4265 -msgid "Decrease block size" +#: js/utils/musicutils.js:689 +msgid "Diminished second" msgstr "" -#: js/turtledefs.js:659 -msgid "Decrease the size of the blocks." +#: js/utils/musicutils.js:690 +msgid "Minor second" msgstr "" -#: js/turtledefs.js:664 -#: js/activity.js:4267 -msgid "Increase block size" +#: js/utils/musicutils.js:690 +msgid "Augmented unison" msgstr "" -#: js/turtledefs.js:665 -msgid "Increase the size of the blocks." +#: js/utils/musicutils.js:691 +msgid "Major second" msgstr "" -#: js/turtledefs.js:670 -msgid "Expand/collapse option toolbar" +#: js/utils/musicutils.js:691 +msgid "Diminished third" msgstr "" -#: js/turtledefs.js:671 -msgid "Click this button to expand or collapse the auxillary toolbar." +#: js/utils/musicutils.js:692 +msgid "Minor third" msgstr "" -#: js/turtledefs.js:676 -msgid "Run slow" +#: js/utils/musicutils.js:692 +msgid "Augmented second" msgstr "" -#: js/turtledefs.js:677 -msgid "Click to run the project in slow mode." +#: js/utils/musicutils.js:693 +msgid "Major third" msgstr "" -#: js/turtledefs.js:683 -msgid "Click to run the project step by step." +#: js/utils/musicutils.js:693 +msgid "Diminished fourth" msgstr "" -#: js/turtledefs.js:690 -msgid "Display statistics about your Music project." +#: js/utils/musicutils.js:694 +msgid "Perfect fourth" msgstr "" -#: js/turtledefs.js:697 -msgid "Delete a selected plugin." +#: js/utils/musicutils.js:694 +msgid "Augmented third" msgstr "" -#: js/turtledefs.js:704 -msgid "Enable scrolling" +#: js/utils/musicutils.js:695 +msgid "Diminished fifth" msgstr "" -#: js/turtledefs.js:705 -msgid "You can scroll the blocks on the canvas." +#: js/utils/musicutils.js:695 +msgid "Augmented fourth" msgstr "" -#: js/turtledefs.js:714 -msgid "Wrap Turtle" +#: js/utils/musicutils.js:696 +msgid "Perfect fifth" msgstr "" -#: js/turtledefs.js:715 -msgid "Turn Turtle wrapping On or Off." +#: js/utils/musicutils.js:696 +msgid "Diminished sixth" msgstr "" -#: js/turtledefs.js:725 -msgid "Restore blocks from the trash." +#: js/utils/musicutils.js:697 +msgid "Minor sixth" msgstr "" -#: js/turtledefs.js:732 -msgid "Switch mode" +#: js/utils/musicutils.js:697 +msgid "Augmented fifth" msgstr "" -#: js/turtledefs.js:733 -msgid "Switch between beginner and advance modes." +#: js/utils/musicutils.js:698 +msgid "Major sixth" msgstr "" -#: js/turtledefs.js:739 -msgid "Select your language preference." +#: js/utils/musicutils.js:698 +msgid "Diminished seventh" msgstr "" -#: js/turtledefs.js:745 -msgid "Keyboard shortcuts" +#: js/utils/musicutils.js:699 +msgid "Minor seventh" msgstr "" -#: js/turtledefs.js:746 -msgid "You can type d to create a do block and r to create a re block etc." +#: js/utils/musicutils.js:699 +msgid "Augmented sixth" msgstr "" -#: js/turtledefs.js:753 -msgid "Show these messages." +#: js/utils/musicutils.js:700 +msgid "Major seventh" msgstr "" -#: js/turtledefs.js:759 -#: js/turtledefs.js:790 -#: js/help.js:335 -msgid "Guide" +#: js/utils/musicutils.js:700 +msgid "Diminished octave" msgstr "" -#: js/turtledefs.js:760 -msgid "A detailed guide to Turtle Blocks is available." +#: js/utils/musicutils.js:701 +msgid "Perfect octave" msgstr "" -#: js/turtledefs.js:764 -msgid "Turtle Blocks Guide" +#: js/utils/musicutils.js:701 +msgid "Augmented seventh" msgstr "" -#: js/turtledefs.js:767 -#: js/turtledefs.js:798 -#: js/help.js:336 -msgid "About" +#: js/utils/musicutils.js:702 +msgid "Minor ninth" msgstr "" -#: js/turtledefs.js:768 -msgid "Turtle Blocks is an open source collection of tools for exploring musical concepts." +#: js/utils/musicutils.js:702 +msgid "Augmented octave" msgstr "" -#: js/turtledefs.js:770 -msgid "A full list of contributors can be found in the Turtle Blocks GitHub repository." +#: js/utils/musicutils.js:703 +msgid "Major ninth" msgstr "" -#: js/turtledefs.js:772 -msgid "Turtle Blocks is licensed under the AGPL." +#: js/utils/musicutils.js:703 +msgid "Diminished tenth" msgstr "" -#: js/turtledefs.js:780 -msgid "Turtle Blocks GitHub repository" +#: js/utils/musicutils.js:704 +msgid "Minor tenth" msgstr "" -#: js/turtledefs.js:783 -#: js/turtledefs.js:814 -#: js/help.js:337 -#: js/help.js:359 -msgid "Congratulations." +#: js/utils/musicutils.js:704 +msgid "Augmented ninth" msgstr "" -#: js/turtledefs.js:784 -msgid "You have finished the tour. Please enjoy Turtle Blocks!" +#: js/utils/musicutils.js:705 +msgid "Major tenth" msgstr "" -#: js/turtledefs.js:791 -msgid "A detailed guide to Music Blocks is available." +#: js/utils/musicutils.js:705 +msgid "Diminished eleventh" msgstr "" -#: js/turtledefs.js:795 -#: js/SaveInterface.js:76 -msgid "Music Blocks Guide" +#: js/utils/musicutils.js:706 +msgid "Perfect eleventh" msgstr "" -#: js/turtledefs.js:799 -msgid "Music Blocks is an open source collection of tools for exploring musical concepts." +#: js/utils/musicutils.js:706 +msgid "Augmented tenth" msgstr "" -#: js/turtledefs.js:801 -msgid "A full list of contributors can be found in the Music Blocks GitHub repository." +#: js/utils/musicutils.js:707 +msgid "Diminished twelfth" msgstr "" -#: js/turtledefs.js:803 -msgid "Music Blocks is licensed under the AGPL." +#: js/utils/musicutils.js:707 +msgid "Augmented eleventh" msgstr "" -#: js/turtledefs.js:811 -msgid "Music Blocks GitHub repository" +#: js/utils/musicutils.js:708 +msgid "Perfect twelfth" msgstr "" -#: js/turtledefs.js:815 -msgid "You have finished the tour. Please enjoy Music Blocks!" +#: js/utils/musicutils.js:708 +msgid "Diminished thirteenth" msgstr "" -#: js/activity.js:369 -msgid "Search for blocks" +#: js/utils/musicutils.js:709 +msgid "Minor thirteenth" msgstr "" -#: js/activity.js:1145 -msgid "Refresh your browser to change to advanced mode." +#: js/utils/musicutils.js:709 +msgid "Augmented fifth, plus an octave" msgstr "" -#: js/activity.js:1150 -msgid "Refresh your browser to change to beginner mode." +#: js/utils/musicutils.js:710 +msgid "Major thirteenth" msgstr "" -#: js/activity.js:1184 -msgid "Catching mice" +#: js/utils/musicutils.js:710 +msgid "Diminished seventh, plus an octave" msgstr "" -#: js/activity.js:1185 -msgid "Cleaning the instruments" +#: js/utils/musicutils.js:838 +#.TRANS: ordinal number. Please keep exactly one space between each number. +msgid "1st 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th" msgstr "" -#: js/activity.js:1186 -msgid "Testing key pieces" +#: js/utils/musicutils.js:1008 +#: js/utils/musicutils.js:1191 +#: js/utils/musicutils.js:1325 +#.TRANS: augmented is a music term related to intervals +msgid "augmented" msgstr "" -#: js/activity.js:1187 -msgid "Sight-reading" +#: js/utils/musicutils.js:1010 +#: js/utils/musicutils.js:1192 +#: js/utils/musicutils.js:1324 +#.TRANS: diminished is a music term related to intervals and mode +msgid "diminished" msgstr "" -#: js/activity.js:1188 -msgid "Combining math and music" +#: js/utils/musicutils.js:1016 +#: js/utils/musicutils.js:1322 +#: js/blocks/IntervalsBlocks.js:649 +#: js/turtleactions/IntervalsActions.js:120 +#: js/turtleactions/IntervalsActions.js:124 +#.TRANS: perfect is a music term related to intervals +msgid "perfect" +msgstr "" + +#: js/utils/musicutils.js:1018 +#.TRANS: twelve semi-tone scale for music +msgid "chromatic" msgstr "" -#: js/activity.js:1189 -msgid "Generating more blocks" +#: js/utils/musicutils.js:1019 +msgid "algerian" msgstr "" -#: js/activity.js:1190 -msgid "Do Re Mi Fa Sol La Ti Do" +#: js/utils/musicutils.js:1020 +msgid "spanish" msgstr "" -#: js/activity.js:1191 -msgid "Tuning string instruments" +#: js/utils/musicutils.js:1022 +#.TRANS: modal scale in music +msgid "octatonic" msgstr "" -#: js/activity.js:1192 -msgid "Pressing random keys" +#: js/utils/musicutils.js:1024 +#.TRANS: harmonic major scale in music +msgid "harmonic major" msgstr "" -#: js/activity.js:1351 -msgid "plugins will be removed upon restart." +#: js/utils/musicutils.js:1026 +#.TRANS: natural minor scales in music +msgid "natural minor" msgstr "" -#: js/activity.js:1360 -msgid "show Cartesian" +#: js/utils/musicutils.js:1028 +#.TRANS: harmonic minor scale in music +msgid "harmonic minor" msgstr "" -#: js/activity.js:1842 -msgid "output tools" +#: js/utils/musicutils.js:1030 +#.TRANS: melodic minor scale in music +msgid "melodic minor" msgstr "" -#: js/activity.js:1845 -msgid "custom note" +#: js/utils/musicutils.js:1034 +#.TRANS: modal scale for music +msgid "dorian" msgstr "" -#: js/activity.js:1848 -msgid "accidental name" +#: js/utils/musicutils.js:1036 +#.TRANS: modal scale for music +msgid "phrygian" msgstr "" -#: js/activity.js:1851 -#: js/PitchBlocks.js:855 -msgid "east indian solfege" +#: js/utils/musicutils.js:1038 +#.TRANS: modal scale for music +msgid "lydian" msgstr "" -#: js/activity.js:1854 -#: js/PitchBlocks.js:869 -msgid "note name" +#: js/utils/musicutils.js:1040 +#.TRANS: modal scale for music +msgid "mixolydian" msgstr "" -#: js/activity.js:1857 -#: js/IntervalsBlocks.js:94 -msgid "temperament name" +#: js/utils/musicutils.js:1044 +#.TRANS: modal scale for music +msgid "locrian" msgstr "" -#: js/activity.js:1863 -msgid "chord name" +#: js/utils/musicutils.js:1046 +#.TRANS: minor jazz scale for music +msgid "jazz minor" msgstr "" -#: js/activity.js:1869 -msgid "filter type" +#: js/utils/musicutils.js:1048 +#.TRANS: bebop scale for music +msgid "bebop" msgstr "" -#: js/activity.js:1872 -msgid "oscillator type" +#: js/utils/musicutils.js:1049 +msgid "arabic" msgstr "" -#: js/activity.js:1878 -#: js/DrumBlocks.js:32 -msgid "noise name" +#: js/utils/musicutils.js:1050 +msgid "byzantine" msgstr "" -#: js/activity.js:1881 -#: js/DrumBlocks.js:75 -msgid "drum name" +#: js/utils/musicutils.js:1052 +#.TRANS: musical scale for music by Verdi +msgid "enigmatic" msgstr "" -#: js/activity.js:1884 -#: js/DrumBlocks.js:119 -msgid "effects name" +#: js/utils/musicutils.js:1053 +msgid "ethiopian" msgstr "" -#: js/activity.js:1887 -msgid "wrap mode" +#: js/utils/musicutils.js:1055 +#.TRANS: Ethiopic scale for music +msgid "geez" msgstr "" -#: js/activity.js:1890 -msgid "load file" +#: js/utils/musicutils.js:1056 +msgid "hindu" msgstr "" -#: js/activity.js:2056 -msgid "This block is deprecated." +#: js/utils/musicutils.js:1057 +msgid "hungarian" msgstr "" -#: js/activity.js:2058 -msgid "Block cannot be found." +#: js/utils/musicutils.js:1059 +#.TRANS: minor Romanian scale for music +msgid "romanian minor" msgstr "" -#: js/activity.js:2266 -msgid "Saving block artwork" +#: js/utils/musicutils.js:1060 +msgid "spanish gypsy" msgstr "" -#: js/activity.js:2277 -msgid "Erase" +#: js/utils/musicutils.js:1062 +#.TRANS: musical scale for Mid-Eastern music +msgid "maqam" msgstr "" -#: js/activity.js:2301 -#: js/activity.js:2323 -msgid "Paste" +#: js/utils/musicutils.js:1064 +#.TRANS: minor blues scale for music +msgid "minor blues" msgstr "" -#: js/activity.js:2305 -msgid "Save block help" +#: js/utils/musicutils.js:1066 +#.TRANS: major blues scale for music +msgid "major blues" msgstr "" -#: js/activity.js:2390 -msgid "Jumping to the bottom of the page." +#: js/utils/musicutils.js:1067 +msgid "whole tone" msgstr "" -#: js/activity.js:2396 -msgid "Scrolling up." +#: js/utils/musicutils.js:1069 +#.TRANS: pentatonic is a general term that means "five note scale". This scale is typically known as "minor pentatonic" +msgid "minor pentatonic" msgstr "" -#: js/activity.js:2401 -msgid "Scrolling down." +#: js/utils/musicutils.js:1071 +#.TRANS: pentatonic is a general term that means "five note scale". This scale is typically known as "major pentatonic" +msgid "major pentatonic" msgstr "" -#: js/activity.js:2406 -msgid "Extracting block" +#: js/utils/musicutils.js:1072 +msgid "chinese" msgstr "" -#: js/activity.js:2414 -msgid "Moving block up." +#: js/utils/musicutils.js:1073 +msgid "egyptian" msgstr "" -#: js/activity.js:2435 -msgid "Moving block down." +#: js/utils/musicutils.js:1075 +#.TRANS: https://en.wikipedia.org/wiki/Hirajoshi_scale NOTE: There are three different versions of this scale +msgid "hirajoshi" msgstr "" -#: js/activity.js:2456 -msgid "Moving block left." +#: js/utils/musicutils.js:1076 +msgid "Japan" msgstr "" -#: js/activity.js:2473 -msgid "Moving block right." +#: js/utils/musicutils.js:1078 +#.TRANS: https://en.wikipedia.org/wiki/In_scale and https://en.wikipedia.org/wiki/Sakura_Sakura +msgid "in" msgstr "" -#: js/activity.js:2488 -msgid "Jump to home position." +#: js/utils/musicutils.js:1080 +#.TRANS: https://en.wikipedia.org/wiki/Miny%C5%8D_scale +msgid "minyo" msgstr "" -#: js/activity.js:2515 -msgid "Hide blocks" +#: js/utils/musicutils.js:1082 +#.TRANS: Italian mathematician +msgid "fibonacci" msgstr "" -#: js/activity.js:3389 -msgid "Click the run button to run the project." +#: js/utils/musicutils.js:1083 +#: js/utils/musicutils.js:1134 +#: js/utils/musicutils.js:1177 +#: js/utils/musicutils.js:1199 +#: js/utils/synthutils.js:134 +#: js/blocks/IntervalsBlocks.js:1124 +#: js/blocks/ToneBlocks.js:946 +#: js/blocks/VolumeBlocks.js:411 +#: js/blocks/WidgetBlocks.js:399 +#: js/blocks/WidgetBlocks.js:404 +#: js/turtleactions/VolumeActions.js:218 +#: js/widgets/modewidget.js:919 +#.TRANS: customize voice +msgid "custom" msgstr "" -#: js/activity.js:3456 -#: js/SaveInterface.js:131 -#: js/SaveInterface.js:204 -#: js/SaveInterface.js:262 -#: js/SaveInterface.js:389 -#: js/SaveInterface.js:417 -#: js/ProjectStorage.js:27 -#: js/GlobalPlanet.js:467 -#: js/GlobalPlanet.js:469 -#: js/GlobalPlanet.js:495 -#.TRANS: default project title when saving as Lilypond -msgid "My Project" +#: js/utils/musicutils.js:1085 +#: js/utils/musicutils.js:1531 +#: js/blocks/WidgetBlocks.js:176 +#.TRANS: highpass filter +msgid "highpass" msgstr "" -#: js/activity.js:4261 -msgid "Show/hide block" +#: js/utils/musicutils.js:1087 +#: js/utils/musicutils.js:1532 +#.TRANS: lowpass filter +msgid "lowpass" msgstr "" -#: js/activity.js:4263 -msgid "Expand/collapse blocks" +#: js/utils/musicutils.js:1089 +#: js/utils/musicutils.js:1533 +#.TRANS: bandpass filter +msgid "bandpass" msgstr "" -#: js/activity.js:4381 -msgid "Could not parse JSON input." +#: js/utils/musicutils.js:1091 +#: js/utils/musicutils.js:1534 +#.TRANS: high-shelf filter +msgid "highshelf" msgstr "" -#: js/activity.js:4684 -#: js/activity.js:4771 -#: js/activity.js:4821 -msgid "Cannot load project from the file. Please check the file type." +#: js/utils/musicutils.js:1093 +#: js/utils/musicutils.js:1535 +#.TRANS: low-shelf filter +msgid "lowshelf" msgstr "" -#: js/activity.js:5051 -msgid "Invalid parameters" +#: js/utils/musicutils.js:1095 +#: js/utils/musicutils.js:1536 +#.TRANS: notch-shelf filter +msgid "notch" msgstr "" -#: js/turtle-singer.js:1334 -#.TRANS: partials are weighted components in a harmonic series -msgid "You must have at least one Partial block inside of a Weighted-partial block" +#: js/utils/musicutils.js:1097 +#: js/utils/musicutils.js:1537 +#.TRANS: all-pass filter +msgid "allpass" msgstr "" -#: js/turtle-singer.js:2048 -msgid "synth cannot play chords." +#: js/utils/musicutils.js:1099 +#: js/utils/musicutils.js:1538 +#.TRANS: peaking filter +msgid "peaking" msgstr "" -#: js/lilypond.js:614 -msgid "brown rat" +#: js/utils/musicutils.js:1100 +#: js/utils/musicutils.js:1546 +#: js/utils/synthutils.js:126 +#: js/blocks/PitchBlocks.js:85 +#.TRANS: sine wave +msgid "sine" msgstr "" -#: js/lilypond.js:615 -msgid "mole" +#: js/utils/musicutils.js:1101 +#: js/utils/musicutils.js:1547 +#: js/utils/synthutils.js:128 +#: js/blocks/PitchBlocks.js:39 +#.TRANS: square wave +msgid "square" msgstr "" -#: js/lilypond.js:616 -msgid "chipmunk" +#: js/utils/musicutils.js:1102 +#: js/utils/musicutils.js:1548 +#: js/utils/synthutils.js:132 +#: js/blocks/PitchBlocks.js:62 +#: js/blocks/ToneBlocks.js:39 +#.TRANS: triangle wave +msgid "triangle" msgstr "" -#: js/lilypond.js:617 -msgid "red squirrel" +#: js/utils/musicutils.js:1103 +#: js/utils/musicutils.js:1549 +#: js/utils/synthutils.js:130 +#: js/blocks/PitchBlocks.js:108 +#.TRANS: sawtooth wave +msgid "sawtooth" msgstr "" -#: js/lilypond.js:618 -msgid "guinea pig" +#: js/utils/musicutils.js:1105 +#: js/utils/musicutils.js:1312 +#: js/blocks/PitchBlocks.js:931 +#: js/blocks/PitchBlocks.js:937 +#: js/turtleactions/PitchActions.js:469 +#.TRANS: even numbers +#.TRANS: invert based on even or odd number or musical scale +msgid "even" msgstr "" -#: js/lilypond.js:619 -msgid "capybara" +#: js/utils/musicutils.js:1107 +#: js/utils/musicutils.js:1313 +#: js/blocks/PitchBlocks.js:937 +#: js/turtleactions/PitchActions.js:471 +#.TRANS: odd numbers +msgid "odd" msgstr "" -#: js/lilypond.js:620 -msgid "coypu" +#: js/utils/musicutils.js:1108 +#: js/utils/musicutils.js:1314 +#: js/blocks/PitchBlocks.js:937 +#: js/turtleactions/PitchActions.js:473 +msgid "scalar" msgstr "" -#: js/lilypond.js:621 -msgid "black rat" +#: js/utils/musicutils.js:1109 +#: js/utils/synthutils.js:72 +#: js/blocks/VolumeBlocks.js:47 +#.TRANS: musical instrument +msgid "piano" msgstr "" -#: js/lilypond.js:622 -msgid "grey squirrel" +#: js/utils/musicutils.js:1110 +#: js/utils/synthutils.js:74 +#.TRANS: musical instrument +msgid "violin" msgstr "" -#: js/lilypond.js:623 -msgid "flying squirrel" +#: js/utils/musicutils.js:1111 +#: js/utils/synthutils.js:76 +#.TRANS: viola musical instrument +msgid "viola" msgstr "" -#: js/lilypond.js:624 -msgid "bat" +#: js/utils/musicutils.js:1112 +#: js/utils/synthutils.js:114 +#.TRANS: xylophone musical instrument +msgid "xylophone" msgstr "" -#: js/lilypond.js:757 -#: js/lilypond.js:921 -#: js/lilypond.js:959 -#: js/ActionBlocks.js:1256 -#: js/ExtrasBlocks.js:553 -msgid "start drum" +#: js/utils/musicutils.js:1113 +#: js/utils/synthutils.js:136 +#.TRANS: vibraphone musical instrument +msgid "vibraphone" msgstr "" -#: js/SaveInterface.js:59 -#: js/SaveInterface.js:61 -#: js/SaveInterface.js:93 -msgid "Music Blocks Project" +#: js/utils/musicutils.js:1114 +#: js/utils/synthutils.js:78 +#.TRANS: musical instrument +msgid "cello" msgstr "" -#: js/SaveInterface.js:63 -msgid "This project was created in Music Blocks" +#: js/utils/musicutils.js:1116 +#: js/utils/synthutils.js:82 +#.TRANS: viola musical instrument +msgid "double bass" msgstr "" -#: js/SaveInterface.js:67 -msgid "Music Blocks is a Free/Libre Software application." +#: js/utils/musicutils.js:1117 +#: js/utils/synthutils.js:84 +#: js/widgets/rhythmruler.js:2511 +#.TRANS: musical instrument +msgid "guitar" msgstr "" -#: js/SaveInterface.js:69 -msgid "The source code can be accessed at" +#: js/utils/musicutils.js:1118 +#: js/utils/synthutils.js:86 +#.TRANS: musical instrument +msgid "acoustic guitar" msgstr "" -#: js/SaveInterface.js:72 -msgid "For more information, please consult the" +#: js/utils/musicutils.js:1119 +#: js/utils/synthutils.js:88 +#.TRANS: musical instrument +msgid "flute" msgstr "" -#: js/SaveInterface.js:83 -msgid "Alternatively, open the file in Music Blocks using the Load project button." +#: js/utils/musicutils.js:1120 +#: js/utils/synthutils.js:90 +#.TRANS: musical instrument +msgid "clarinet" msgstr "" -#: js/SaveInterface.js:85 -msgid "Project Code" +#: js/utils/musicutils.js:1121 +#: js/utils/synthutils.js:92 +#.TRANS: musical instrument +msgid "saxophone" msgstr "" -#: js/SaveInterface.js:87 -msgid "This code stores data about the blocks in a project." +#: js/utils/musicutils.js:1122 +#: js/utils/synthutils.js:94 +#.TRANS: musical instrument +msgid "tuba" msgstr "" -#: js/SaveInterface.js:89 -msgid "Show" +#: js/utils/musicutils.js:1123 +#: js/utils/synthutils.js:96 +#.TRANS: musical instrument +msgid "trumpet" msgstr "" -#: js/SaveInterface.js:91 -msgid "Hide" +#: js/utils/musicutils.js:1124 +#: js/utils/synthutils.js:98 +#.TRANS: musical instrument +msgid "oboe" msgstr "" -#: js/SaveInterface.js:197 -#: js/SaveInterface.js:58 -msgid "No description provided" +#: js/utils/musicutils.js:1125 +#: js/utils/synthutils.js:100 +#.TRANS: musical instrument +msgid "trombone" msgstr "" -#: js/SaveInterface.js:332 -msgid "Your recording is in progress." +#: js/utils/musicutils.js:1126 +#: js/utils/synthutils.js:116 +#.TRANS: polytone synthesizer +msgid "electronic synth" msgstr "" -#: js/SaveInterface.js:401 -#.TRANS: File name prompt for save as Lilypond -msgid "File name" +#: js/utils/musicutils.js:1127 +#: js/utils/synthutils.js:118 +#.TRANS: simple monotone synthesizer +msgid "simple 1" msgstr "" -#: js/SaveInterface.js:403 -#: js/StringHelper.js:39 -#.TRANS: Project title prompt for save as Lilypond -msgid "Project title" +#: js/utils/musicutils.js:1128 +msgid "simple 2" msgstr "" -#: js/SaveInterface.js:405 -#.TRANS: Project title prompt for save as Lilypond -msgid "Project author" +#: js/utils/musicutils.js:1129 +msgid "simple 3" msgstr "" -#: js/SaveInterface.js:407 -#.TRANS: MIDI prompt for save as Lilypond -msgid "Include MIDI output?" +#: js/utils/musicutils.js:1130 +msgid "simple 4" msgstr "" -#: js/SaveInterface.js:409 -#.TRANS: Guitar prompt for save as Lilypond -msgid "Include guitar tablature output?" +#: js/utils/musicutils.js:1131 +#: js/utils/synthutils.js:58 +#: js/blocks/DrumBlocks.js:191 +#.TRANS: white noise synthesizer +msgid "white noise" msgstr "" -#: js/SaveInterface.js:411 -#.TRANS: Lilypond is a scripting language for generating sheet music -msgid "Save as Lilypond" +#: js/utils/musicutils.js:1132 +#: js/utils/synthutils.js:60 +#.TRANS: brown noise synthesizer +msgid "brown noise" msgstr "" -#: js/SaveInterface.js:426 -#: js/EnsembleBlocks.js:75 -#: js/EnsembleBlocks.js:154 -#: js/EnsembleBlocks.js:216 -#: js/EnsembleBlocks.js:302 -#: js/EnsembleBlocks.js:348 -#: js/EnsembleBlocks.js:389 -#: js/EnsembleBlocks.js:441 -#: js/EnsembleBlocks.js:490 -#: js/EnsembleBlocks.js:536 -#: js/EnsembleBlocks.js:583 -#: js/EnsembleBlocks.js:637 -#: js/EnsembleBlocks.js:753 -#: js/EnsembleBlocks.js:840 -#: js/EnsembleBlocks.js:899 -#: js/EnsembleBlocks.js:942 -#: js/EnsembleBlocks.js:1212 -#: js/EnsembleBlocks.js:1280 -#.TRANS: default project author when saving as Lilypond -msgid "Mr. Mouse" +#: js/utils/musicutils.js:1133 +#: js/utils/synthutils.js:62 +#.TRANS: pink noise synthesizer +msgid "pink noise" msgstr "" -#: js/SaveInterface.js:573 -msgid "The Lilypond code is copied to clipboard. You can paste it here: " +#: js/utils/musicutils.js:1135 +#: js/utils/synthutils.js:148 +#: js/widgets/rhythmruler.js:2057 +#: js/widgets/rhythmruler.js:2319 +#.TRANS: musical instrument +msgid "snare drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:50 -#: js/RhythmBlockPaletteBlocks.js:232 -#.TRANS: rhythm block -#.TRANS: translate "rhythm1" as rhythm -msgid "rhythm1" +#: js/utils/musicutils.js:1136 +#: js/utils/synthutils.js:150 +#.TRANS: musical instrument +msgid "kick drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:70 -#: js/RhythmBlockPaletteBlocks.js:251 -#: js/RhythmBlockPaletteBlocks.js:484 -#: js/RhythmBlockPaletteBlocks.js:553 -#: js/RhythmBlockPaletteBlocks.js:874 -msgid "number of notes" +#: js/utils/musicutils.js:1137 +#: js/utils/synthutils.js:152 +#.TRANS: musical instrument +msgid "tom tom" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:126 -msgid "polyphonic rhythm" +#: js/utils/musicutils.js:1138 +#: js/utils/synthutils.js:154 +#.TRANS: musical instrument +msgid "floor tom" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:218 -msgid "The Rhythm block is used to generate rhythm patterns." +#: js/utils/musicutils.js:1139 +#: js/utils/synthutils.js:156 +#.TRANS: musical instrument +msgid "bass drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:279 -msgid "1/64 note" +#: js/utils/musicutils.js:1140 +#: js/utils/synthutils.js:158 +#.TRANS: a drum made from an inverted cup +msgid "cup drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:303 -msgid "1/32 note" +#: js/utils/musicutils.js:1141 +#: js/utils/synthutils.js:160 +#.TRANS: musical instrument +msgid "darbuka drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:331 -msgid "1/16 note" +#: js/utils/musicutils.js:1142 +#: js/utils/synthutils.js:164 +#.TRANS: musical instrument +msgid "hi hat" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:359 -msgid "eighth note" +#: js/utils/musicutils.js:1143 +#: js/utils/synthutils.js:166 +#.TRANS: a small metal bell +msgid "ride bell" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:387 -msgid "quarter note" +#: js/utils/musicutils.js:1144 +#: js/utils/synthutils.js:168 +#.TRANS: musical instrument +msgid "cow bell" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:415 -msgid "half note" +#: js/utils/musicutils.js:1145 +msgid "japanese drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:443 -msgid "whole note" +#: js/utils/musicutils.js:1146 +#: js/utils/synthutils.js:174 +#.TRANS: musical instrument +msgid "japanese bell" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:481 -#: js/RhythmBlockPaletteBlocks.js:550 -#: js/RhythmBlockPaletteBlocks.js:601 -#.TRANS: A tuplet is a note value divided into irregular time values. -msgid "tuplet" +#: js/utils/musicutils.js:1147 +#: js/utils/synthutils.js:170 +#.TRANS: musical instrument +msgid "triangle bell" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:767 -msgid "septuplet" +#: js/utils/musicutils.js:1148 +#: js/utils/synthutils.js:172 +#.TRANS: musical instrument +msgid "finger cymbals" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:795 -msgid "quintuplet" +#: js/utils/musicutils.js:1149 +#: js/utils/synthutils.js:176 +#.TRANS: a musically tuned set of bells +msgid "chime" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:823 -msgid "triplet" +#: js/utils/musicutils.js:1150 +#: js/utils/synthutils.js:178 +#.TRANS: a musical instrument +msgid "gong" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:850 -msgid "simple tuplet" +#: js/utils/musicutils.js:1151 +#: js/utils/synthutils.js:180 +#.TRANS: sound effect +msgid "clang" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:860 -msgid "Tuplets are a collection of notes that get scaled to a specific duration." +#: js/utils/musicutils.js:1152 +#: js/utils/synthutils.js:182 +#.TRANS: sound effect +msgid "crash" msgstr "" -#: js/WidgetBlocks.js:71 -#.TRANS: sound envelope (ADSR) -msgid "envelope" +#: js/utils/musicutils.js:1153 +#: js/utils/synthutils.js:184 +#.TRANS: sound effect +msgid "bottle" msgstr "" -#: js/WidgetBlocks.js:79 -#.TRANS: Attack time is the time taken for initial run-up of level from nil to peak, beginning when the key is first pressed. -msgid "attack" +#: js/utils/musicutils.js:1154 +#: js/utils/synthutils.js:186 +#.TRANS: sound effect +msgid "clap" msgstr "" -#: js/WidgetBlocks.js:81 -#.TRANS: Decay time is the time taken for the subsequent run down from the attack level to the designated sustain level. -msgid "decay" +#: js/utils/musicutils.js:1155 +#: js/utils/synthutils.js:188 +#.TRANS: sound effect +msgid "slap" msgstr "" -#: js/WidgetBlocks.js:83 -#.TRANS: Sustain level is the level during the main sequence of the sound's duration, until the key is released. -msgid "sustain" +#: js/utils/musicutils.js:1156 +#: js/utils/synthutils.js:190 +#.TRANS: sound effect +msgid "splash" msgstr "" -#: js/WidgetBlocks.js:85 -#.TRANS: Release time is the time taken for the level to decay from the sustain level to zero after the key is released. -msgid "release" +#: js/utils/musicutils.js:1157 +#: js/utils/synthutils.js:192 +#.TRANS: sound effect +msgid "bubbles" msgstr "" -#: js/WidgetBlocks.js:96 -msgid "Attack value should be from 0 to 100." +#: js/utils/musicutils.js:1158 +#: js/utils/synthutils.js:194 +#.TRANS: sound effect +msgid "raindrop" msgstr "" -#: js/WidgetBlocks.js:99 -msgid "Decay value should be from 0 to 100." +#: js/utils/musicutils.js:1159 +#: js/utils/synthutils.js:196 +#.TRANS: animal sound effect +msgid "cat" msgstr "" -#: js/WidgetBlocks.js:102 -msgid "Sustain value should be from 0 to 100." +#: js/utils/musicutils.js:1160 +#: js/utils/synthutils.js:198 +#.TRANS: animal sound effect +msgid "cricket" msgstr "" -#: js/WidgetBlocks.js:105 -msgid "Release value should be from 0-100." +#: js/utils/musicutils.js:1161 +#: js/utils/synthutils.js:200 +#.TRANS: animal sound effect +msgid "dog" msgstr "" -#: js/WidgetBlocks.js:121 -msgid "You are adding multiple envelope blocks." +#: js/utils/musicutils.js:1163 +#: js/utils/synthutils.js:102 +#.TRANS: musical instrument +msgid "banjo" msgstr "" -#: js/WidgetBlocks.js:144 -#.TRANS: a filter removes some unwanted components from a signal -msgid "filter" +#: js/utils/musicutils.js:1164 +#: js/utils/synthutils.js:104 +#.TRANS: musical instrument +msgid "koto" msgstr "" -#: js/WidgetBlocks.js:149 -#: js/musicutils.js:706 -#: js/musicutils.js:1105 -#.TRANS: highpass filter -msgid "highpass" +#: js/utils/musicutils.js:1165 +#: js/utils/synthutils.js:106 +#.TRANS: musical instrument +msgid "dulcimer" msgstr "" -#: js/WidgetBlocks.js:152 -#: js/ToneBlocks.js:42 -#: js/timbre.js:1558 -#: js/timbre.js:1808 -#.TRANS: type of filter, e.g., lowpass, highpass, etc. -#.TRANS: there are different types (sine, triangle, square...) of oscillators. -msgid "type" +#: js/utils/musicutils.js:1166 +#: js/utils/synthutils.js:108 +#.TRANS: musical instrument +msgid "electric guitar" msgstr "" -#: js/WidgetBlocks.js:154 -#: js/timbre.js:1818 -#.TRANS: rolloff is the steepness of a change in frequency. -msgid "rolloff" +#: js/utils/musicutils.js:1167 +#: js/utils/synthutils.js:110 +#.TRANS: musical instrument +msgid "bassoon" msgstr "" -#: js/WidgetBlocks.js:155 -#: js/MediaBlocks.js:692 -#: js/temperament.js:382 -#: js/temperament.js:417 -#: js/temperament.js:477 -#: js/temperament.js:485 -#: js/temperament.js:1348 -#: js/timbre.js:1842 -msgid "frequency" +#: js/utils/musicutils.js:1168 +#: js/utils/synthutils.js:112 +#.TRANS: musical instrument +msgid "celeste" msgstr "" -#: js/WidgetBlocks.js:179 -#.TRANS: rolloff is the steepness of a change in frequency. -msgid "Rolloff value should be either -12, -24, -48, or -96 decibels/octave." +#: js/utils/musicutils.js:1170 +#: js/widgets/temperament.js:787 +#.TRANS: musical temperament +msgid "equal" msgstr "" -#: js/WidgetBlocks.js:211 -msgid "The Temperament tool is used to define custom tuning." +#: js/utils/musicutils.js:1172 +#.TRANS: musical temperament +msgid "Pythagorean" msgstr "" -#: js/WidgetBlocks.js:277 -#: js/sampler.js:329 -msgid "Upload a sample and adjust its pitch center." +#: js/utils/musicutils.js:1174 +#.TRANS: musical temperament +msgid "just intonation" msgstr "" -#: js/WidgetBlocks.js:284 -#.TRANS: the speed at music is should be played. -msgid "sampler" +#: js/utils/musicutils.js:1176 +#.TRANS: musical temperament +msgid "meantone" msgstr "" -#: js/WidgetBlocks.js:329 -#: js/WidgetBlocks.js:334 -#: js/IntervalsBlocks.js:928 -#: js/VolumeBlocks.js:411 -#: js/ToneBlocks.js:946 -#: js/VolumeActions.js:218 -#: js/musicutils.js:704 -#: js/musicutils.js:755 -#: js/musicutils.js:798 -#: js/musicutils.js:820 -#: js/musicutils.js:1136 -#: js/synthutils.js:118 -#: js/modewidget.js:919 -#.TRANS: customize voice -msgid "custom" +#: js/utils/musicutils.js:1193 +msgid "major 7th" msgstr "" -#: js/WidgetBlocks.js:432 -msgid "The Meter block opens a tool to select strong beats for the meter." +#: js/utils/musicutils.js:1194 +msgid "minor 7th" msgstr "" -#: js/WidgetBlocks.js:473 -msgid "The oscilloscope block opens a tool to visualize waveforms." +#: js/utils/musicutils.js:1195 +msgid "dominant 7th" msgstr "" -#: js/WidgetBlocks.js:478 -msgid "oscilloscope" +#: js/utils/musicutils.js:1196 +msgid "minor-major 7th" msgstr "" -#: js/WidgetBlocks.js:530 -msgid "The Custom mode block opens a tool to explore musical mode (the spacing of the notes in a scale)." +#: js/utils/musicutils.js:1197 +msgid "fully-diminished 7th" msgstr "" -#: js/WidgetBlocks.js:536 -#.TRANS: musical mode is the pattern of half-steps in an octave, e.g., Major or Minor modes -msgid "custom mode" +#: js/utils/musicutils.js:1198 +msgid "half-diminished 7th" msgstr "" -#: js/WidgetBlocks.js:570 -msgid "The Tempo block opens a metronome to visualize the beat." +#: js/utils/musicutils.js:1557 +#: js/utils/musicutils.js:1569 +msgid "Equal (12EDO)" msgstr "" -#: js/WidgetBlocks.js:617 -msgid "The Arpeggio Widget is used to compose chord sequences." +#: js/utils/musicutils.js:1558 +#: js/utils/musicutils.js:1570 +msgid "5-limit Just Intonation" msgstr "" -#: js/WidgetBlocks.js:623 -#: js/IntervalsBlocks.js:683 -msgid "arpeggio" +#: js/utils/musicutils.js:1559 +#: js/utils/musicutils.js:1571 +msgid "Pythagorean (3-limit JI)" msgstr "" -#: js/WidgetBlocks.js:677 -msgid "The Pitch drum matrix is used to map pitches to drum sounds." +#: js/utils/musicutils.js:1560 +#: js/utils/musicutils.js:1561 +#: js/utils/musicutils.js:1572 +#: js/utils/musicutils.js:1573 +msgid "Meantone" msgstr "" -#: js/WidgetBlocks.js:682 -#.TRANS: makes a mapping between pitches and drum sounds -msgid "pitch-drum mapper" +#: js/utils/musicutils.js:1574 +msgid "Custom" msgstr "" -#: js/WidgetBlocks.js:724 -msgid "You must have at least one pitch block and one drum block in the matrix." +#: js/utils/musicutils.js:5387 +#: js/utils/musicutils.js:5430 +msgid "current" msgstr "" -#: js/WidgetBlocks.js:746 -msgid "The Pitch slider tool to is used to generate pitches at selected frequencies." +#: js/utils/musicutils.js:5390 +#: js/utils/musicutils.js:5421 +msgid "next" msgstr "" -#: js/WidgetBlocks.js:751 -#.TRANS: widget to generate pitches using a slider -msgid "pitch slider" +#: js/utils/musicutils.js:5393 +#: js/utils/musicutils.js:5426 +msgid "previous" msgstr "" -#: js/WidgetBlocks.js:788 -msgid "chromatic keyboard" +#: js/utils/synthutils.js:120 +#.TRANS: simple monotone synthesizer +msgid "simple-2" msgstr "" -#: js/WidgetBlocks.js:815 -#: js/WidgetBlocks.js:874 -#.TRANS: widget to generate pitches using a slider -msgid "music keyboard" +#: js/utils/synthutils.js:122 +#.TRANS: simple monotone synthesizer +msgid "simple-3" msgstr "" -#: js/WidgetBlocks.js:859 -#: js/WidgetBlocks.js:866 -msgid "The Music keyboard block opens a piano keyboard that can be used to create notes." +#: js/utils/synthutils.js:124 +#.TRANS: simple monotone synthesizer +msgid "simple-4" msgstr "" -#: js/WidgetBlocks.js:910 -msgid "The Pitch staircase tool to is used to generate pitches from a given ratio." +#: js/utils/synthutils.js:162 +#.TRANS: musical instrument +msgid "taiko" msgstr "" -#: js/WidgetBlocks.js:917 -#.TRANS: generate a progressive sequence of pitches -msgid "pitch staircase" +#: js/blocks/ActionBlocks.js:58 +msgid "The Return block will return a value from an action." msgstr "" -#: js/WidgetBlocks.js:982 -msgid "The Rhythm Maker block opens a tool to create drum machines." +#: js/blocks/ActionBlocks.js:75 +msgid "return" msgstr "" -#: js/WidgetBlocks.js:1036 -msgid "G major scale" +#: js/blocks/ActionBlocks.js:128 +msgid "The Return to URL block will return a value to a webpage." msgstr "" -#: js/WidgetBlocks.js:1064 -msgid "C major scale" +#: js/blocks/ActionBlocks.js:145 +msgid "return to URL" msgstr "" -#: js/WidgetBlocks.js:1097 -msgid "The Phrase Maker block opens a tool to create musical phrases." +#: js/blocks/ActionBlocks.js:233 +#: js/blocks/ActionBlocks.js:290 +#: js/blocks/ActionBlocks.js:501 +#: js/blocks/ActionBlocks.js:688 +msgid "The Calculate block returns a value calculated by an action." msgstr "" -#: js/WidgetBlocks.js:1104 -#.TRANS: assigns pitch to a sequence of beats to generate a melody -msgid "phrase maker" +#: js/blocks/ActionBlocks.js:251 +#: js/blocks/ActionBlocks.js:517 +#: js/blocks/ActionBlocks.js:707 +msgid "calculate" msgstr "" -#: js/WidgetBlocks.js:1168 -msgid "You must have at least one pitch block and one rhythm block in the matrix." +#: js/blocks/ActionBlocks.js:376 +#: js/blocks/ActionBlocks.js:593 +#: js/blocks/ActionBlocks.js:942 +#: js/blocks/ActionBlocks.js:1389 +#.TRANS: do is the do something or take an action. +msgid "The Do block is used to initiate an action." msgstr "" -#: js/WidgetBlocks.js:1220 -msgid "The Status block opens a tool for inspecting the status of Music Blocks as it is running." +#: js/blocks/ActionBlocks.js:390 +#: js/blocks/ActionBlocks.js:610 +#: js/blocks/ActionBlocks.js:959 +#: js/blocks/ActionBlocks.js:1048 +#: js/blocks/MeterBlocks.js:769 +msgid "do1" msgstr "" -#: js/IntervalsBlocks.js:45 -msgid "set temperament" +#: js/blocks/ActionBlocks.js:390 +#: js/blocks/ActionBlocks.js:610 +#: js/blocks/ActionBlocks.js:959 +#: js/blocks/ActionBlocks.js:1048 +#: js/blocks/FlowBlocks.js:742 +#: js/blocks/FlowBlocks.js:822 +#: js/blocks/MeterBlocks.js:769 +msgid "do" msgstr "" -#: js/IntervalsBlocks.js:63 -#: js/MediaBlocks.js:746 -#: js/PitchBlocks.js:657 -#: js/PitchBlocks.js:933 -#: js/PitchBlocks.js:972 -#: js/PitchBlocks.js:1005 -#: js/PitchBlocks.js:1166 -#: js/PitchBlocks.js:1679 -#: js/PitchBlocks.js:1720 -#: js/PitchBlocks.js:1827 -#: js/ToneBlocks.js:1025 -#.TRANS: adjusts the shift up or down by one octave (twelve half-steps in the interval between two notes, one having twice or half the frequency in Hz of the other.) -msgid "octave" +#: js/blocks/ActionBlocks.js:791 +#: js/blocks/ActionBlocks.js:865 +msgid "The Arg block contains the value of an argument passed to an action." msgstr "" -#: js/IntervalsBlocks.js:99 -msgid "The Temperament name block is used to select a tuning method." +#: js/blocks/ActionBlocks.js:806 +#: js/blocks/ActionBlocks.js:878 +msgid "arg" msgstr "" -#: js/IntervalsBlocks.js:161 -msgid "doubly" +#: js/blocks/ActionBlocks.js:836 +#: js/blocks/ActionBlocks.js:900 +#: js/blocks/ActionBlocks.js:908 +msgid "Invalid argument" msgstr "" -#: js/IntervalsBlocks.js:166 -msgid "The Doubly block will double the size of an interval." +#: js/blocks/ActionBlocks.js:944 +msgid "In the example, it is used with the One of block to choose a random phase." msgstr "" -#: js/IntervalsBlocks.js:262 -msgid "interval number" +#: js/blocks/ActionBlocks.js:1019 +#: js/blocks/ActionBlocks.js:1026 +msgid "The Listen block is used to listen for an event such as a mouse click." msgstr "" -#: js/IntervalsBlocks.js:330 -#.TRANS: measure the distance between two pitches in semi-tones -msgid "semi-tone interval measure" +#: js/blocks/ActionBlocks.js:1028 +msgid "When the event happens, an action is taken." msgstr "" -#: js/IntervalsBlocks.js:397 -#: js/IntervalsBlocks.js:513 -msgid "You must use two pitch blocks when measuring an interval." +#: js/blocks/ActionBlocks.js:1045 +msgid "on" msgstr "" -#: js/IntervalsBlocks.js:439 -msgid "The Scalar interval block measures the distance between two notes in the current key and mode." +#: js/blocks/ActionBlocks.js:1048 +#: js/blocks/ActionBlocks.js:1049 +#: js/blocks/ActionBlocks.js:1153 +msgid "event" msgstr "" -#: js/IntervalsBlocks.js:445 -#.TRANS: measure the distance between two pitches in steps of musical scale -msgid "scalar interval measure" +#: js/blocks/ActionBlocks.js:1133 +msgid "The Broadcast block is used to trigger an event." msgstr "" -#: js/IntervalsBlocks.js:592 -#: js/musicutils.js:637 -#: js/musicutils.js:908 -#.TRANS: perfect is a music term related to intervals -msgid "perfect" +#: js/blocks/ActionBlocks.js:1151 +msgid "broadcast" msgstr "" -#: js/IntervalsBlocks.js:621 -msgid "In the figure, we add sol# to sol." +#: js/blocks/ActionBlocks.js:1208 +msgid "Each Start block is a separate voice." msgstr "" -#: js/IntervalsBlocks.js:627 -#: js/OrnamentBlocks.js:220 -#.TRANS: calculate a relative step between notes based on semi-tones -msgid "semi-tone interval" +#: js/blocks/ActionBlocks.js:1304 +msgid "It is often used for storing a phrase of music that is repeated." msgstr "" -#: js/IntervalsBlocks.js:676 -msgid "The output of the example is: do, mi, sol, sol, ti, mi" +#: js/blocks/ActionBlocks.js:1495 +msgid "define temperament" msgstr "" -#: js/IntervalsBlocks.js:735 -msgid "The Chord block calculates common chords." +#: js/blocks/BooleanBlocks.js:44 +msgid "The Not block is the logical not operator." msgstr "" -#: js/IntervalsBlocks.js:737 -msgid "In the figure, we generate a C-major chord." +#: js/blocks/BooleanBlocks.js:62 +msgid "not" msgstr "" -#: js/IntervalsBlocks.js:742 -msgid "chord" +#: js/blocks/BooleanBlocks.js:134 +msgid "The And block is the logical and operator." msgstr "" -#: js/IntervalsBlocks.js:794 -msgid "The Ratio Interval block calculates an interval based on a ratio." +#: js/blocks/BooleanBlocks.js:152 +msgid "and" msgstr "" -#: js/IntervalsBlocks.js:799 -msgid "ratio interval" +#: js/blocks/BooleanBlocks.js:218 +msgid "The Or block is the logical or operator." msgstr "" -#: js/IntervalsBlocks.js:868 -msgid "In the figure, we add la to sol." +#: js/blocks/BooleanBlocks.js:236 +msgid "or" msgstr "" -#: js/IntervalsBlocks.js:924 -#.TRANS: define a custom mode -msgid "define mode" +#: js/blocks/BooleanBlocks.js:302 +msgid "The XOR block is the logical XOR operator." msgstr "" -#: js/IntervalsBlocks.js:977 -msgid "movable Do" +#: js/blocks/BooleanBlocks.js:320 +msgid "xor" msgstr "" -#: js/IntervalsBlocks.js:1028 -#.TRANS: mode length is the number of notes in the mode, e.g., 7 for major and minor scales; 12 for chromatic scales -msgid "mode length" +#: js/blocks/BooleanBlocks.js:808 +msgid "The Equal block returns True if the two numbers are equal." msgstr "" -#: js/IntervalsBlocks.js:1037 -msgid "The Mode length block is the number of notes in the current scale." +#: js/blocks/BooleanBlocks.js:909 +msgid "The Not-equal-to block returns True if the two numbers are not equal to each other." msgstr "" -#: js/IntervalsBlocks.js:1039 -msgid "Most Western scales have 7 notes." +#: js/blocks/BooleanBlocks.js:1008 +msgid "The Boolean block is used to specify true or false." msgstr "" -#: js/IntervalsBlocks.js:1088 -#.TRANS: the mode in music is 'major', 'minor', etc. -msgid "current mode" +#: js/blocks/BoxesBlocks.js:53 +#: js/blocks/BoxesBlocks.js:59 +msgid "The Add-to block is used to add to the value stored in a box." msgstr "" -#: js/IntervalsBlocks.js:1141 -#.TRANS: the key is a group of pitches with which a music composition is created -msgid "current key" +#: js/blocks/BoxesBlocks.js:61 +msgid "It can also be used with other blocks such as Color and Pen size." msgstr "" -#: js/IntervalsBlocks.js:1193 -#: js/IntervalsBlocks.js:1238 -#.TRANS: set the key and mode, e.g. C Major -msgid "set key" +#: js/blocks/BoxesBlocks.js:73 +msgid "add" msgstr "" -#: js/IntervalsBlocks.js:1247 -#: js/IntervalsBlocks.js:1253 -msgid "The Set key block is used to set the key and mode," +#: js/blocks/BoxesBlocks.js:75 +#: js/widgets/temperament.js:857 +msgid "to" msgstr "" -#: js/IntervalsBlocks.js:1253 -msgid "eg C Major" +#: js/blocks/BoxesBlocks.js:75 +#: js/blocks/BoxesBlocks.js:595 +#: js/blocks/HeapBlocks.js:544 +msgid "value1" msgstr "" -#: js/IntervalsBlocks.js:1266 -#: js/DictBlocks.js:215 -#: js/DictBlocks.js:216 -#: js/DictBlocks.js:289 -#: js/DictBlocks.js:290 -#: js/DictBlocks.js:357 -#: js/DictBlocks.js:430 -#: js/DictBlocks.js:431 -#.TRANS: key, e.g., C in C Major -msgid "key" +#: js/blocks/BoxesBlocks.js:118 +msgid "Block does not support incrementing." msgstr "" -#: js/ActionBlocks.js:58 -msgid "The Return block will return a value from an action." +#: js/blocks/BoxesBlocks.js:152 +msgid "The Add-1-to block adds one to the value stored in a box." msgstr "" -#: js/ActionBlocks.js:75 -msgid "return" +#: js/blocks/BoxesBlocks.js:163 +msgid "add 1 to" msgstr "" -#: js/ActionBlocks.js:128 -msgid "The Return to URL block will return a value to a webpage." +#: js/blocks/BoxesBlocks.js:211 +msgid "The Subtract-1-from block subtracts one from the value stored in a box." msgstr "" -#: js/ActionBlocks.js:145 -msgid "return to URL" +#: js/blocks/BoxesBlocks.js:222 +msgid "subtract 1 from" msgstr "" -#: js/ActionBlocks.js:233 -#: js/ActionBlocks.js:290 -#: js/ActionBlocks.js:501 -#: js/ActionBlocks.js:688 -msgid "The Calculate block returns a value calculated by an action." +#: js/blocks/BoxesBlocks.js:270 +#: js/blocks/BoxesBlocks.js:387 +msgid "The Box block returns the value stored in a box." msgstr "" -#: js/ActionBlocks.js:251 -#: js/ActionBlocks.js:517 -#: js/ActionBlocks.js:707 -msgid "calculate" +#: js/blocks/BoxesBlocks.js:500 +#: js/blocks/BoxesBlocks.js:576 +msgid "The Store in block will store a value in a box." msgstr "" -#: js/ActionBlocks.js:376 -#: js/ActionBlocks.js:593 -#: js/ActionBlocks.js:942 -#: js/ActionBlocks.js:1389 -#.TRANS: do is the do something or take an action. -msgid "The Do block is used to initiate an action." +#: js/blocks/BoxesBlocks.js:595 +#: js/blocks/EnsembleBlocks.js:391 +#: js/blocks/EnsembleBlocks.js:402 +msgid "name1" msgstr "" -#: js/ActionBlocks.js:390 -#: js/ActionBlocks.js:610 -#: js/ActionBlocks.js:959 -#: js/ActionBlocks.js:1048 -#: js/MeterBlocks.js:769 -msgid "do1" +#: js/blocks/BoxesBlocks.js:652 +msgid "The Box2 block returns the value stored in Box2." msgstr "" -#: js/ActionBlocks.js:390 -#: js/ActionBlocks.js:610 -#: js/ActionBlocks.js:959 -#: js/ActionBlocks.js:1048 -#: js/FlowBlocks.js:742 -#: js/FlowBlocks.js:822 -#: js/MeterBlocks.js:769 -msgid "do" +#: js/blocks/BoxesBlocks.js:703 +msgid "The Store in Box2 block is used to store a value in Box2." msgstr "" -#: js/ActionBlocks.js:791 -#: js/ActionBlocks.js:865 -msgid "The Arg block contains the value of an argument passed to an action." +#: js/blocks/BoxesBlocks.js:715 +msgid "store in box2" msgstr "" -#: js/ActionBlocks.js:806 -#: js/ActionBlocks.js:878 -msgid "arg" +#: js/blocks/BoxesBlocks.js:761 +msgid "The Box1 block returns the value stored in Box1." msgstr "" -#: js/ActionBlocks.js:836 -#: js/ActionBlocks.js:900 -#: js/ActionBlocks.js:908 -msgid "Invalid argument" +#: js/blocks/BoxesBlocks.js:812 +msgid "The Store in Box1 block is used to store a value in Box1." msgstr "" -#: js/ActionBlocks.js:944 -msgid "In the example, it is used with the One of block to choose a random phase." +#: js/blocks/BoxesBlocks.js:826 +msgid "store in box1" msgstr "" -#: js/ActionBlocks.js:1019 -#: js/ActionBlocks.js:1026 -msgid "The Listen block is used to listen for an event such as a mouse click." +#: js/blocks/DictBlocks.js:77 +msgid "show dictionary" msgstr "" -#: js/ActionBlocks.js:1028 -msgid "When the event happens, an action is taken." +#: js/blocks/DictBlocks.js:80 +#: js/blocks/DictBlocks.js:145 +#: js/blocks/DictBlocks.js:216 +#: js/blocks/DictBlocks.js:290 +#: js/blocks/ProgramBlocks.js:396 +#: js/blocks/ProgramBlocks.js:501 +#: js/blocks/ProgramBlocks.js:664 +msgid "My Dictionary" msgstr "" -#: js/ActionBlocks.js:1045 -msgid "on" +#: js/blocks/DictBlocks.js:129 +msgid "The Dictionary block returns a dictionary." msgstr "" -#: js/ActionBlocks.js:1048 -#: js/ActionBlocks.js:1049 -#: js/ActionBlocks.js:1153 -msgid "event" +#: js/blocks/DictBlocks.js:197 +#: js/blocks/DictBlocks.js:339 +msgid "The Get-dict block returns a value in the dictionary for a specified key." msgstr "" -#: js/ActionBlocks.js:1133 -msgid "The Broadcast block is used to trigger an event." +#: js/blocks/DictBlocks.js:212 +#: js/blocks/DictBlocks.js:354 +#.TRANS: retrieve a value from the dictionary with a given key +msgid "get value" msgstr "" -#: js/ActionBlocks.js:1151 -msgid "broadcast" +#: js/blocks/DictBlocks.js:215 +#: js/blocks/DictBlocks.js:216 +#: js/blocks/DictBlocks.js:289 +#: js/blocks/DictBlocks.js:290 +#: js/blocks/DictBlocks.js:357 +#: js/blocks/DictBlocks.js:430 +#: js/blocks/DictBlocks.js:431 +msgid "key2" msgstr "" -#: js/ActionBlocks.js:1208 -msgid "Each Start block is a separate voice." +#: js/blocks/DictBlocks.js:215 +#: js/blocks/DictBlocks.js:216 +#: js/blocks/DictBlocks.js:289 +#: js/blocks/DictBlocks.js:290 +#: js/blocks/DictBlocks.js:357 +#: js/blocks/DictBlocks.js:430 +#: js/blocks/DictBlocks.js:431 +#: js/blocks/IntervalsBlocks.js:1462 +#.TRANS: key, e.g., C in C Major +msgid "key" msgstr "" -#: js/ActionBlocks.js:1304 -msgid "It is often used for storing a phrase of music that is repeated." +#: js/blocks/DictBlocks.js:271 +#: js/blocks/DictBlocks.js:411 +msgid "The Set-dict block sets a value in the dictionary for a specified key." msgstr "" -#: js/ActionBlocks.js:1495 -msgid "define temperament" +#: js/blocks/DictBlocks.js:286 +#: js/blocks/DictBlocks.js:427 +#.TRANS: set a value in the dictionary for a given key +msgid "set value" msgstr "" -#: js/EnsembleBlocks.js:66 +#: js/blocks/EnsembleBlocks.js:66 msgid "mouse index heap" msgstr "" -#: js/EnsembleBlocks.js:68 +#: js/blocks/EnsembleBlocks.js:68 msgid "The Mouse index heap block returns a value in the heap at a specified location for a specified mouse." msgstr "" -#: js/EnsembleBlocks.js:77 -#: js/EnsembleBlocks.js:1080 +#: js/blocks/EnsembleBlocks.js:77 +#: js/blocks/EnsembleBlocks.js:1080 msgid "mouse name" msgstr "" -#: js/EnsembleBlocks.js:77 -#: js/EnsembleBlocks.js:92 -#: js/HeapBlocks.js:544 +#: js/blocks/EnsembleBlocks.js:77 +#: js/blocks/EnsembleBlocks.js:92 +#: js/blocks/HeapBlocks.js:544 #.TRANS: value1 is a numeric value (JAPANESE ONLY) msgid "index" msgstr "" -#: js/EnsembleBlocks.js:80 +#: js/blocks/EnsembleBlocks.js:80 msgid "turtle index heap" msgstr "" -#: js/EnsembleBlocks.js:82 +#: js/blocks/EnsembleBlocks.js:82 msgid "The Turtle index heap block returns a value in the heap at a specified location for a specified turtle." msgstr "" -#: js/EnsembleBlocks.js:90 -#: js/EnsembleBlocks.js:167 -#: js/EnsembleBlocks.js:230 -#: js/EnsembleBlocks.js:316 -#: js/EnsembleBlocks.js:362 -#: js/EnsembleBlocks.js:400 -#: js/EnsembleBlocks.js:454 -#: js/EnsembleBlocks.js:504 -#: js/EnsembleBlocks.js:550 -#: js/EnsembleBlocks.js:597 -#: js/EnsembleBlocks.js:651 -#: js/EnsembleBlocks.js:763 -#: js/EnsembleBlocks.js:854 -#: js/EnsembleBlocks.js:915 -#: js/EnsembleBlocks.js:955 -#: js/EnsembleBlocks.js:1219 -#: js/EnsembleBlocks.js:1293 +#: js/blocks/EnsembleBlocks.js:90 +#: js/blocks/EnsembleBlocks.js:167 +#: js/blocks/EnsembleBlocks.js:230 +#: js/blocks/EnsembleBlocks.js:316 +#: js/blocks/EnsembleBlocks.js:362 +#: js/blocks/EnsembleBlocks.js:400 +#: js/blocks/EnsembleBlocks.js:454 +#: js/blocks/EnsembleBlocks.js:504 +#: js/blocks/EnsembleBlocks.js:550 +#: js/blocks/EnsembleBlocks.js:597 +#: js/blocks/EnsembleBlocks.js:651 +#: js/blocks/EnsembleBlocks.js:763 +#: js/blocks/EnsembleBlocks.js:854 +#: js/blocks/EnsembleBlocks.js:915 +#: js/blocks/EnsembleBlocks.js:955 +#: js/blocks/EnsembleBlocks.js:1219 +#: js/blocks/EnsembleBlocks.js:1293 #.TRANS: Yertle is the name of a turtle. msgid "Yertle" msgstr "" -#: js/EnsembleBlocks.js:92 -#: js/EnsembleBlocks.js:1089 +#: js/blocks/EnsembleBlocks.js:92 +#: js/blocks/EnsembleBlocks.js:1089 msgid "turtle name" msgstr "" -#: js/EnsembleBlocks.js:122 -#: js/EnsembleBlocks.js:1197 -#: js/HeapBlocks.js:474 -#: js/HeapBlocks.js:572 +#: js/blocks/EnsembleBlocks.js:122 +#: js/blocks/EnsembleBlocks.js:1197 +#: js/blocks/HeapBlocks.js:474 +#: js/blocks/HeapBlocks.js:572 msgid "Index must be > 0." msgstr "" -#: js/EnsembleBlocks.js:127 -#: js/HeapBlocks.js:479 -#: js/HeapBlocks.js:577 +#: js/blocks/EnsembleBlocks.js:127 +#: js/blocks/HeapBlocks.js:479 +#: js/blocks/HeapBlocks.js:577 msgid "Maximum heap size is 1000." msgstr "" -#: js/EnsembleBlocks.js:145 +#: js/blocks/EnsembleBlocks.js:145 msgid "stop mouse" msgstr "" -#: js/EnsembleBlocks.js:147 +#: js/blocks/EnsembleBlocks.js:147 msgid "The Stop mouse block stops the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:158 +#: js/blocks/EnsembleBlocks.js:158 msgid "stop turtle" msgstr "" -#: js/EnsembleBlocks.js:160 +#: js/blocks/EnsembleBlocks.js:160 msgid "The Stop turtle block stops the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:184 -#: js/EnsembleBlocks.js:247 -#: js/EnsembleBlocks.js:413 -#: js/EnsembleBlocks.js:468 -#: js/EnsembleBlocks.js:706 -#: js/EnsembleBlocks.js:808 -#: js/EnsembleBlocks.js:870 -#: js/EnsembleBlocks.js:1190 -#: js/EnsembleBlocks.js:1253 +#: js/blocks/EnsembleBlocks.js:184 +#: js/blocks/EnsembleBlocks.js:247 +#: js/blocks/EnsembleBlocks.js:413 +#: js/blocks/EnsembleBlocks.js:468 +#: js/blocks/EnsembleBlocks.js:706 +#: js/blocks/EnsembleBlocks.js:808 +#: js/blocks/EnsembleBlocks.js:870 +#: js/blocks/EnsembleBlocks.js:1190 +#: js/blocks/EnsembleBlocks.js:1253 msgid "Cannot find mouse" msgstr "" -#: js/EnsembleBlocks.js:186 -#: js/EnsembleBlocks.js:249 -#: js/EnsembleBlocks.js:415 -#: js/EnsembleBlocks.js:470 -#: js/EnsembleBlocks.js:708 -#: js/EnsembleBlocks.js:810 -#: js/EnsembleBlocks.js:872 -#: js/EnsembleBlocks.js:1192 -#: js/EnsembleBlocks.js:1255 +#: js/blocks/EnsembleBlocks.js:186 +#: js/blocks/EnsembleBlocks.js:249 +#: js/blocks/EnsembleBlocks.js:415 +#: js/blocks/EnsembleBlocks.js:470 +#: js/blocks/EnsembleBlocks.js:708 +#: js/blocks/EnsembleBlocks.js:810 +#: js/blocks/EnsembleBlocks.js:872 +#: js/blocks/EnsembleBlocks.js:1192 +#: js/blocks/EnsembleBlocks.js:1255 msgid "Cannot find turtle" msgstr "" -#: js/EnsembleBlocks.js:206 +#: js/blocks/EnsembleBlocks.js:206 msgid "start mouse" msgstr "" -#: js/EnsembleBlocks.js:209 +#: js/blocks/EnsembleBlocks.js:209 msgid "The Start mouse block starts the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:220 +#: js/blocks/EnsembleBlocks.js:220 msgid "start turtle" msgstr "" -#: js/EnsembleBlocks.js:223 +#: js/blocks/EnsembleBlocks.js:223 msgid "The Start turtle block starts the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:256 +#: js/blocks/EnsembleBlocks.js:256 msgid "Mouse is already running." msgstr "" -#: js/EnsembleBlocks.js:258 +#: js/blocks/EnsembleBlocks.js:258 msgid "Turtle is already running." msgstr "" -#: js/EnsembleBlocks.js:282 +#: js/blocks/EnsembleBlocks.js:282 msgid "Cannot find start block" msgstr "" -#: js/EnsembleBlocks.js:292 +#: js/blocks/EnsembleBlocks.js:292 #.TRANS: pen color for this mouse msgid "mouse color" msgstr "" -#: js/EnsembleBlocks.js:294 +#: js/blocks/EnsembleBlocks.js:294 msgid "The Mouse color block returns the pen color of the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:306 +#: js/blocks/EnsembleBlocks.js:306 #.TRANS: pen color for this turtle msgid "turtle color" msgstr "" -#: js/EnsembleBlocks.js:308 +#: js/blocks/EnsembleBlocks.js:308 msgid "The Turtle color block returns the pen color of the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:338 +#: js/blocks/EnsembleBlocks.js:338 #.TRANS: heading (compass direction) for this mouse msgid "mouse heading" msgstr "" -#: js/EnsembleBlocks.js:340 +#: js/blocks/EnsembleBlocks.js:340 msgid "The Mouse heading block returns the heading of the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:352 +#: js/blocks/EnsembleBlocks.js:352 #.TRANS: heading (compass direction) for this turtle msgid "turtle heading" msgstr "" -#: js/EnsembleBlocks.js:354 +#: js/blocks/EnsembleBlocks.js:354 msgid "The Turtle heading block returns the heading of the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:384 -#: js/EnsembleBlocks.js:439 +#: js/blocks/EnsembleBlocks.js:384 +#: js/blocks/EnsembleBlocks.js:439 #.TRANS: set xy position for this mouse msgid "set mouse" msgstr "" -#: js/EnsembleBlocks.js:391 -#: js/EnsembleBlocks.js:402 -#: js/BoxesBlocks.js:595 -msgid "name1" -msgstr "" - -#: js/EnsembleBlocks.js:391 -#: js/EnsembleBlocks.js:402 -#: js/ProgramBlocks.js:881 -#: js/GraphicsBlocks.js:235 -#: js/GraphicsBlocks.js:313 -#: js/GraphicsBlocks.js:436 -#: js/GraphicsBlocks.js:487 -#: js/GraphicsBlocks.js:534 -#: js/GraphicsBlocks.js:750 +#: js/blocks/EnsembleBlocks.js:391 +#: js/blocks/EnsembleBlocks.js:402 +#: js/blocks/GraphicsBlocks.js:235 +#: js/blocks/GraphicsBlocks.js:313 +#: js/blocks/GraphicsBlocks.js:436 +#: js/blocks/GraphicsBlocks.js:487 +#: js/blocks/GraphicsBlocks.js:534 +#: js/blocks/GraphicsBlocks.js:750 +#: js/blocks/ProgramBlocks.js:881 msgid "x" msgstr "" -#: js/EnsembleBlocks.js:391 -#: js/EnsembleBlocks.js:402 -#: js/ProgramBlocks.js:881 -#: js/GraphicsBlocks.js:149 -#: js/GraphicsBlocks.js:313 -#: js/GraphicsBlocks.js:436 -#: js/GraphicsBlocks.js:487 -#: js/GraphicsBlocks.js:534 -#: js/GraphicsBlocks.js:750 +#: js/blocks/EnsembleBlocks.js:391 +#: js/blocks/EnsembleBlocks.js:402 +#: js/blocks/GraphicsBlocks.js:149 +#: js/blocks/GraphicsBlocks.js:313 +#: js/blocks/GraphicsBlocks.js:436 +#: js/blocks/GraphicsBlocks.js:487 +#: js/blocks/GraphicsBlocks.js:534 +#: js/blocks/GraphicsBlocks.js:750 +#: js/blocks/ProgramBlocks.js:881 msgid "y" msgstr "" -#: js/EnsembleBlocks.js:395 -#: js/EnsembleBlocks.js:452 +#: js/blocks/EnsembleBlocks.js:395 +#: js/blocks/EnsembleBlocks.js:452 #.TRANS: set xy position for this turtle msgid "set turtle" msgstr "" -#: js/EnsembleBlocks.js:433 +#: js/blocks/EnsembleBlocks.js:433 msgid "The Set mouse block sends a stack of blocks to be run by the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:446 +#: js/blocks/EnsembleBlocks.js:446 msgid "The Set turtle block sends a stack of blocks to be run by the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:480 +#: js/blocks/EnsembleBlocks.js:480 #.TRANS: y position for this mouse msgid "mouse y" msgstr "" -#: js/EnsembleBlocks.js:482 +#: js/blocks/EnsembleBlocks.js:482 msgid "The Y mouse block returns the Y position of the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:494 +#: js/blocks/EnsembleBlocks.js:494 #.TRANS: y position for this turtle msgid "turtle y" msgstr "" -#: js/EnsembleBlocks.js:496 +#: js/blocks/EnsembleBlocks.js:496 msgid "The Y turtle block returns the Y position of the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:526 +#: js/blocks/EnsembleBlocks.js:526 #.TRANS: x position for this mouse msgid "mouse x" msgstr "" -#: js/EnsembleBlocks.js:528 +#: js/blocks/EnsembleBlocks.js:528 msgid "The X mouse block returns the X position of the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:540 +#: js/blocks/EnsembleBlocks.js:540 #.TRANS: x position for this turtle msgid "turtle x" msgstr "" -#: js/EnsembleBlocks.js:542 +#: js/blocks/EnsembleBlocks.js:542 msgid "The X turtle block returns the X position of the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:573 +#: js/blocks/EnsembleBlocks.js:573 #.TRANS: notes played by this mouse msgid "mouse notes played" msgstr "" -#: js/EnsembleBlocks.js:575 +#: js/blocks/EnsembleBlocks.js:575 msgid "The Mouse elapse notes block returns the number of notes played by the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:587 +#: js/blocks/EnsembleBlocks.js:587 #.TRANS: notes played by this turtle msgid "turtle notes played" msgstr "" -#: js/EnsembleBlocks.js:589 +#: js/blocks/EnsembleBlocks.js:589 msgid "The Turtle elapse notes block returns the number of notes played by the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:627 +#: js/blocks/EnsembleBlocks.js:627 #.TRANS: convert current note for this turtle to piano key (1-88) msgid "mouse pitch number" msgstr "" -#: js/EnsembleBlocks.js:629 +#: js/blocks/EnsembleBlocks.js:629 msgid "The Mouse pitch block returns the current pitch number being played by the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:641 +#: js/blocks/EnsembleBlocks.js:641 #.TRANS: convert current note for this turtle to piano key (1-88) msgid "turtle pitch number" msgstr "" -#: js/EnsembleBlocks.js:643 -msgid "The Turrle pitch block returns the current pitch number being played by the specified turtle." +#: js/blocks/EnsembleBlocks.js:643 +msgid "The Turtle pitch block returns the current pitch number being played by the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:747 -#: js/EnsembleBlocks.js:819 +#: js/blocks/EnsembleBlocks.js:747 +#: js/blocks/EnsembleBlocks.js:819 #.TRANS: note value is the duration of the note played by this mouse msgid "mouse note value" msgstr "" -#: js/EnsembleBlocks.js:757 +#: js/blocks/EnsembleBlocks.js:757 #.TRANS: note value is the duration of the note played by this turtle msgid "turtle note value" msgstr "" -#: js/EnsembleBlocks.js:830 +#: js/blocks/EnsembleBlocks.js:830 #.TRANS: sync is short for synchronization msgid "mouse sync" msgstr "" -#: js/EnsembleBlocks.js:832 +#: js/blocks/EnsembleBlocks.js:832 msgid "The Mouse sync block aligns the beat count between mice." msgstr "" -#: js/EnsembleBlocks.js:844 +#: js/blocks/EnsembleBlocks.js:844 #.TRANS: sync is short for synchronization msgid "turtle sync" msgstr "" -#: js/EnsembleBlocks.js:846 +#: js/blocks/EnsembleBlocks.js:846 msgid "The Turtle sync block aligns the beat count between turtles." msgstr "" -#: js/EnsembleBlocks.js:887 +#: js/blocks/EnsembleBlocks.js:887 msgid "The Found mouse block will return true if the specified mouse can be found." msgstr "" -#: js/EnsembleBlocks.js:893 +#: js/blocks/EnsembleBlocks.js:893 msgid "found mouse" msgstr "" -#: js/EnsembleBlocks.js:903 +#: js/blocks/EnsembleBlocks.js:903 msgid "The Found turtle block will return true if the specified turtle can be found." msgstr "" -#: js/EnsembleBlocks.js:909 +#: js/blocks/EnsembleBlocks.js:909 msgid "found turtle" msgstr "" -#: js/EnsembleBlocks.js:932 +#: js/blocks/EnsembleBlocks.js:932 msgid "new mouse" msgstr "" -#: js/EnsembleBlocks.js:934 +#: js/blocks/EnsembleBlocks.js:934 msgid "The New mouse block will create a new mouse." msgstr "" -#: js/EnsembleBlocks.js:945 +#: js/blocks/EnsembleBlocks.js:945 msgid "new turtle" msgstr "" -#: js/EnsembleBlocks.js:947 +#: js/blocks/EnsembleBlocks.js:947 msgid "The New turtle block will create a new turtle." msgstr "" -#: js/EnsembleBlocks.js:1011 +#: js/blocks/EnsembleBlocks.js:1011 msgid "set mouse color" msgstr "" -#: js/EnsembleBlocks.js:1014 +#: js/blocks/EnsembleBlocks.js:1014 msgid "The Set-mouse-color block is used to set the color of a mouse." msgstr "" -#: js/EnsembleBlocks.js:1020 +#: js/blocks/EnsembleBlocks.js:1020 msgid "set turtle color" msgstr "" -#: js/EnsembleBlocks.js:1023 +#: js/blocks/EnsembleBlocks.js:1023 msgid "The Set-turtle-color block is used to set the color of a turtle." msgstr "" -#: js/EnsembleBlocks.js:1083 +#: js/blocks/EnsembleBlocks.js:1083 msgid "The Mouse-name block returns the name of a mouse." msgstr "" -#: js/EnsembleBlocks.js:1092 +#: js/blocks/EnsembleBlocks.js:1092 msgid "The Turtle-name block returns the name of a turtle." msgstr "" -#: js/EnsembleBlocks.js:1115 +#: js/blocks/EnsembleBlocks.js:1115 msgid "mouse count" msgstr "" -#: js/EnsembleBlocks.js:1118 +#: js/blocks/EnsembleBlocks.js:1118 msgid "The Mouse-count block returns the number of mice." msgstr "" -#: js/EnsembleBlocks.js:1124 +#: js/blocks/EnsembleBlocks.js:1124 msgid "turtle count" msgstr "" -#: js/EnsembleBlocks.js:1127 +#: js/blocks/EnsembleBlocks.js:1127 msgid "The Turtle-count block returns the number of turtles." msgstr "" -#: js/EnsembleBlocks.js:1149 +#: js/blocks/EnsembleBlocks.js:1149 msgid "nth mouse name" msgstr "" -#: js/EnsembleBlocks.js:1152 +#: js/blocks/EnsembleBlocks.js:1152 msgid "The Nth-Mouse name block returns the name of the nth mouse." msgstr "" -#: js/EnsembleBlocks.js:1158 +#: js/blocks/EnsembleBlocks.js:1158 msgid "nth turtle name" msgstr "" -#: js/EnsembleBlocks.js:1161 +#: js/blocks/EnsembleBlocks.js:1161 msgid "The Nth-Turtle name block returns the name of the nth turtle." msgstr "" -#: js/EnsembleBlocks.js:1205 -#: js/EnsembleBlocks.js:1265 +#: js/blocks/EnsembleBlocks.js:1205 +#: js/blocks/EnsembleBlocks.js:1265 msgid "set name" msgstr "" -#: js/EnsembleBlocks.js:1214 -#: js/EnsembleBlocks.js:1221 +#: js/blocks/EnsembleBlocks.js:1214 +#: js/blocks/EnsembleBlocks.js:1221 msgid "source" msgstr "" -#: js/EnsembleBlocks.js:1214 -#: js/EnsembleBlocks.js:1221 +#: js/blocks/EnsembleBlocks.js:1214 +#: js/blocks/EnsembleBlocks.js:1221 msgid "target" msgstr "" -#: js/EnsembleBlocks.js:1271 +#: js/blocks/EnsembleBlocks.js:1271 msgid "The Set-name block is used to name a mouse." msgstr "" -#: js/EnsembleBlocks.js:1284 +#: js/blocks/EnsembleBlocks.js:1284 msgid "The Set-name block is used to name a turtle." msgstr "" -#: js/BooleanBlocks.js:44 -msgid "The Not block is the logical not operator." -msgstr "" - -#: js/BooleanBlocks.js:62 -msgid "not" -msgstr "" - -#: js/BooleanBlocks.js:134 -msgid "The And block is the logical and operator." -msgstr "" - -#: js/BooleanBlocks.js:152 -msgid "and" -msgstr "" - -#: js/BooleanBlocks.js:218 -msgid "The Or block is the logical or operator." -msgstr "" - -#: js/BooleanBlocks.js:236 -msgid "or" -msgstr "" - -#: js/BooleanBlocks.js:302 -msgid "The XOR block is the logical XOR operator." -msgstr "" - -#: js/BooleanBlocks.js:320 -msgid "xor" -msgstr "" - -#: js/BooleanBlocks.js:808 -msgid "The Equal block returns True if the two numbers are equal." -msgstr "" - -#: js/BooleanBlocks.js:909 -msgid "The Not-equal-to block returns True if the two numbers are not equal to each other." -msgstr "" - -#: js/BooleanBlocks.js:1008 -msgid "The Boolean block is used to specify true or false." -msgstr "" - -#: js/MediaBlocks.js:35 -#.TRANS: right side of the screen -msgid "right (screen)" -msgstr "" - -#: js/MediaBlocks.js:45 -#: js/MediaBlocks.js:56 -msgid "The Right block returns the position of the right of the canvas." -msgstr "" - -#: js/MediaBlocks.js:97 -#.TRANS: left side of the screen -msgid "left (screen)" -msgstr "" - -#: js/MediaBlocks.js:107 -#: js/MediaBlocks.js:118 -msgid "The Left block returns the position of the left of the canvas." -msgstr "" - -#: js/MediaBlocks.js:158 -msgid "top (screen)" -msgstr "" - -#: js/MediaBlocks.js:168 -#: js/MediaBlocks.js:179 -msgid "The Top block returns the position of the top of the canvas." -msgstr "" - -#: js/MediaBlocks.js:219 -msgid "bottom (screen)" +#: js/blocks/ExtrasBlocks.js:33 +msgid "fraction" msgstr "" -#: js/MediaBlocks.js:229 -#: js/MediaBlocks.js:240 -msgid "The Bottom block returns the position of the bottom of the canvas." +#: js/blocks/ExtrasBlocks.js:36 +msgid "Convert a float to a fraction" msgstr "" -#: js/MediaBlocks.js:282 -msgid "width" +#: js/blocks/ExtrasBlocks.js:93 +msgid "save as ABC" msgstr "" -#: js/MediaBlocks.js:291 -msgid "The Width block returns the width of the canvas." +#: js/blocks/ExtrasBlocks.js:96 +#: js/blocks/ExtrasBlocks.js:132 +#: js/blocks/ExtrasBlocks.js:168 +msgid "title" msgstr "" -#: js/MediaBlocks.js:325 -msgid "height" +#: js/blocks/ExtrasBlocks.js:129 +msgid "save as Lilypond" msgstr "" -#: js/MediaBlocks.js:334 -msgid "The Height block returns the height of the canvas." +#: js/blocks/ExtrasBlocks.js:165 +msgid "save as SVG" msgstr "" -#: js/MediaBlocks.js:369 -#.TRANS: stops playback of an audio recording -msgid "stop play" +#: js/blocks/ExtrasBlocks.js:216 +msgid "no background" msgstr "" -#: js/MediaBlocks.js:404 -#.TRANS: Erases the images and text -msgid "erase media" +#: js/blocks/ExtrasBlocks.js:219 +msgid "The No background block eliminates the background from the saved SVG output." msgstr "" -#: js/MediaBlocks.js:409 -msgid "The Erase Media block erases text and images." +#: js/blocks/ExtrasBlocks.js:247 +msgid "show blocks" msgstr "" -#: js/MediaBlocks.js:439 -#.TRANS: play an audio recording -msgid "play back" +#: js/blocks/ExtrasBlocks.js:249 +msgid "The Show blocks block shows the blocks." msgstr "" -#: js/MediaBlocks.js:487 -msgid "speak" +#: js/blocks/ExtrasBlocks.js:274 +msgid "hide blocks" msgstr "" -#: js/MediaBlocks.js:495 -msgid "The Speak block outputs to the text-to-speech synthesizer" +#: js/blocks/ExtrasBlocks.js:276 +msgid "The Hide blocks block hides the blocks." msgstr "" -#: js/MediaBlocks.js:546 -msgid "camera" +#: js/blocks/ExtrasBlocks.js:305 +#: js/blocks/ExtrasBlocks.js:338 +msgid "The Space block is used to add space between blocks." msgstr "" -#: js/MediaBlocks.js:551 -msgid "The Camera block connects a webcam to the Show block." +#: js/blocks/ExtrasBlocks.js:376 +msgid "wait" msgstr "" -#: js/MediaBlocks.js:574 -msgid "video" +#: js/blocks/ExtrasBlocks.js:379 +msgid "The Wait block pauses the program for a specified number of seconds." msgstr "" -#: js/MediaBlocks.js:579 -msgid "The Video block selects video for use with the Show block." +#: js/blocks/ExtrasBlocks.js:433 +#: plugins/facebook.rtp:30 +msgid "comment" msgstr "" -#: js/MediaBlocks.js:607 -msgid "The Open file block opens a file for use with the Show block." +#: js/blocks/ExtrasBlocks.js:469 +msgid "print" msgstr "" -#: js/MediaBlocks.js:645 -msgid "stop media" +#: js/blocks/ExtrasBlocks.js:476 +msgid "The Print block displays text at the top of the screen." msgstr "" -#: js/MediaBlocks.js:650 -msgid "The Stop media block stops audio or video playback." +#: js/blocks/ExtrasBlocks.js:582 +msgid "display grid" msgstr "" -#: js/MediaBlocks.js:679 -#: js/PitchBlocks.js:1539 -#: js/phrasemaker.js:822 -#: js/musickeyboard.js:1654 -#.TRANS: a measure of frequency: one cycle per second -msgid "hertz" +#: js/blocks/ExtrasBlocks.js:587 +msgid "The Display Grid Block changes the grid type" msgstr "" -#: js/MediaBlocks.js:692 -msgid "duration (ms)" +#: js/blocks/ExtrasBlocks.js:689 +#: js/blocks/ExtrasBlocks.js:708 +#: js/blocks/ExtrasBlocks.js:731 +#: js/blocks/ExtrasBlocks.js:754 +#: js/blocks/ExtrasBlocks.js:772 +#: js/blocks/ExtrasBlocks.js:791 +#: js/blocks/ExtrasBlocks.js:810 +#: js/blocks/ExtrasBlocks.js:829 +msgid "unknown" msgstr "" -#: js/MediaBlocks.js:728 -#.TRANS: translate a note into hertz, e.g., A4 -> 440HZ -msgid "note to frequency" +#: js/blocks/FlowBlocks.js:41 +msgid "The Backward block runs code in reverse order (Musical retrograde)." msgstr "" -#: js/MediaBlocks.js:736 -msgid "The To frequency block converts a pitch name and octave to Hertz." +#: js/blocks/FlowBlocks.js:48 +msgid "backward" msgstr "" -#: js/MediaBlocks.js:746 -#: js/PitchBlocks.js:656 -#: js/PitchBlocks.js:932 -#: js/PitchBlocks.js:1827 -#.TRANS: name2 is name as in name of pitch (JAPANESE ONLY) -msgid "name2" +#: js/blocks/FlowBlocks.js:124 +msgid "The Duplicate block will run each block multiple times." msgstr "" -#: js/MediaBlocks.js:812 -msgid "The Avatar block is used to change the appearance of the mouse." +#: js/blocks/FlowBlocks.js:136 +msgid "duplicate" msgstr "" -#: js/MediaBlocks.js:819 -msgid "The Avatar block is used to change the appearance of the turtle." +#: js/blocks/FlowBlocks.js:334 +msgid "The Default block is used inside of a Switch to define the default action." msgstr "" -#: js/MediaBlocks.js:831 -#: js/MediaBlocks.js:891 -#.TRANS: a media object -msgid "size" +#: js/blocks/FlowBlocks.js:342 +msgid "default" msgstr "" -#: js/MediaBlocks.js:831 -msgid "image" +#: js/blocks/FlowBlocks.js:361 +#: js/blocks/FlowBlocks.js:418 +msgid "The Case Block must be used inside of a Switch Block." msgstr "" -#: js/MediaBlocks.js:880 -msgid "The Show block is used to display text or images on the canvas." +#: js/blocks/FlowBlocks.js:389 +msgid "The Case block is used inside of a Switch to define matches." msgstr "" -#: js/MediaBlocks.js:888 -#.TRANS: show1 is show as in display an image or text on the screen. -msgid "show1" +#: js/blocks/FlowBlocks.js:397 +msgid "case" msgstr "" -#: js/MediaBlocks.js:891 -msgid "obj" +#: js/blocks/FlowBlocks.js:446 +msgid "The Switch block will run the code in the matching Case." msgstr "" -#: js/MediaBlocks.js:938 -msgid "The Media block is used to import an image." +#: js/blocks/FlowBlocks.js:454 +msgid "switch" msgstr "" -#: js/MediaBlocks.js:973 -msgid "The Text block holds a text string." +#: js/blocks/FlowBlocks.js:595 +msgid "The Stop block will stop a loop" msgstr "" -#: js/ProgramBlocks.js:33 -msgid "The Load-heap-from-app block loads the heap from a web page." +#: js/blocks/FlowBlocks.js:597 +msgid "Forever, Repeat, While, or Until." msgstr "" -#: js/ProgramBlocks.js:44 -#.TRANS: load the heap contents from a URL -msgid "load heap from App" +#: js/blocks/FlowBlocks.js:604 +#: js/widgets/timbre.js:417 +#: js/widgets/timbre.js:419 +#: js/widgets/musickeyboard.js:819 +#: js/widgets/musickeyboard.js:821 +#: js/widgets/phrasemaker.js:4202 +#: plugins/rodi.rtp:29 +#: plugins/rodi.rtp:73 +#: plugins/rodi.rtp:413 +msgid "stop" msgstr "" -#: js/ProgramBlocks.js:95 -msgid "Error parsing JSON data:" +#: js/blocks/FlowBlocks.js:653 +msgid "The Waitfor block will wait until the condition is true." msgstr "" -#: js/ProgramBlocks.js:100 -msgid "404: Page not found" +#: js/blocks/FlowBlocks.js:661 +msgid "wait for" msgstr "" -#: js/ProgramBlocks.js:133 -msgid "The Save-heap-to-app block saves the heap to a web page." +#: js/blocks/FlowBlocks.js:732 +msgid "The Until block will repeat until the condition is true." msgstr "" -#: js/ProgramBlocks.js:144 -#.TRANS: save the heap contents to a URL -msgid "save heap to App" +#: js/blocks/FlowBlocks.js:740 +msgid "until" msgstr "" -#: js/ProgramBlocks.js:189 -msgid "Cannot find a valid heap for" +#: js/blocks/FlowBlocks.js:742 +#: js/blocks/FlowBlocks.js:822 +msgid "do2" msgstr "" -#: js/ProgramBlocks.js:206 -msgid "The Load-heap block loads the heap from a file." +#: js/blocks/FlowBlocks.js:812 +msgid "The While block will repeat while the condition is true." msgstr "" -#: js/ProgramBlocks.js:217 -#.TRANS: load the heap from a file -msgid "load heap" +#: js/blocks/FlowBlocks.js:820 +msgid "while" msgstr "" -#: js/ProgramBlocks.js:270 -msgid "The file you selected does not contain a valid heap." +#: js/blocks/FlowBlocks.js:903 +#: js/blocks/FlowBlocks.js:968 +#: js/blocks/FlowBlocks.js:979 +msgid "In this example if the mouse button is pressed a snare drum will play." msgstr "" -#: js/ProgramBlocks.js:275 -msgid "The loadHeap block needs a loadFile block." +#: js/blocks/FlowBlocks.js:925 +#: js/blocks/FlowBlocks.js:988 +msgid "if" msgstr "" -#: js/ProgramBlocks.js:291 -msgid "The Set-heap block loads the heap." +#: js/blocks/FlowBlocks.js:927 +#: js/blocks/FlowBlocks.js:990 +msgid "then" msgstr "" -#: js/ProgramBlocks.js:299 -#: js/HeapBlocks.js:539 -#.TRANS: load the heap from a JSON encoding -msgid "set heap" +#: js/blocks/FlowBlocks.js:927 +msgid "else" msgstr "" -#: js/ProgramBlocks.js:340 -msgid "The block you selected does not contain a valid heap." +#: js/blocks/FlowBlocks.js:1025 +msgid "The Forever block will repeat the contained blocks forever." msgstr "" -#: js/ProgramBlocks.js:343 -msgid "The Set heap block needs a heap." +#: js/blocks/FlowBlocks.js:1037 +msgid "forever" msgstr "" -#: js/ProgramBlocks.js:360 -msgid "The Load-dictionary block loads a dictionary from a file." +#: js/blocks/FlowBlocks.js:1073 +msgid "The Repeat block will repeat the contained blocks." msgstr "" -#: js/ProgramBlocks.js:372 -#.TRANS: load a dictionary from a file -msgid "load dictionary" +#: js/blocks/FlowBlocks.js:1075 +msgid "In this example the note will be played 4 times." msgstr "" -#: js/ProgramBlocks.js:390 -#: js/ProgramBlocks.js:658 -#: js/ToneBlocks.js:1025 -msgid "file" +#: js/blocks/FlowBlocks.js:1083 +msgid "repeat" msgstr "" -#: js/ProgramBlocks.js:396 -#: js/ProgramBlocks.js:501 -#: js/ProgramBlocks.js:664 -#: js/DictBlocks.js:80 -#: js/DictBlocks.js:145 -#: js/DictBlocks.js:216 -#: js/DictBlocks.js:290 -msgid "My Dictionary" +#: js/blocks/FlowBlocks.js:1123 +msgid "duplicate factor" msgstr "" -#: js/ProgramBlocks.js:444 -msgid "The file you selected does not contain a valid dictionary." +#: js/blocks/HeapBlocks.js:49 +msgid "The Heap block returns the heap." msgstr "" -#: js/ProgramBlocks.js:449 -msgid "The load dictionary block needs a load file block." +#: js/blocks/HeapBlocks.js:133 +msgid "show heap" msgstr "" -#: js/ProgramBlocks.js:466 -msgid "The Set-dictionary block loads a dictionary." +#: js/blocks/HeapBlocks.js:181 +msgid "The Heap-length block returns the length of the heap." msgstr "" -#: js/ProgramBlocks.js:477 -#.TRANS: load a dictionary from a JSON -msgid "set dictionary" +#: js/blocks/HeapBlocks.js:195 +msgid "heap length" msgstr "" -#: js/ProgramBlocks.js:546 -msgid "The block you selected does not contain a valid dictionary." +#: js/blocks/HeapBlocks.js:254 +msgid "The Heap-empty? block returns true if the heap is empty." msgstr "" -#: js/ProgramBlocks.js:550 -msgid "The set dictionary block needs a dictionary." +#: js/blocks/HeapBlocks.js:268 +#.TRANS: Is the heap empty? +msgid "heap empty?" msgstr "" -#: js/ProgramBlocks.js:567 -msgid "The Save-heap block saves the heap to a file." +#: js/blocks/HeapBlocks.js:317 +msgid "The Empty-heap block empties the heap." msgstr "" -#: js/ProgramBlocks.js:578 -#.TRANS: save the heap to a file -msgid "save heap" +#: js/blocks/HeapBlocks.js:327 +#: js/blocks/HeapBlocks.js:647 +#.TRANS: empty the heap +msgid "empty heap" msgstr "" -#: js/ProgramBlocks.js:629 -msgid "The Save-dictionary block saves a dictionary to a file." +#: js/blocks/HeapBlocks.js:371 +msgid "The Reverse-heap block reverses the order of the heap." msgstr "" -#: js/ProgramBlocks.js:640 -#.TRANS: save a dictionary to a file -msgid "save dictionary" +#: js/blocks/HeapBlocks.js:384 +#.TRANS: reverse the order of the heap +msgid "reverse heap" msgstr "" -#: js/ProgramBlocks.js:720 -msgid "The Open palette block opens a palette." +#: js/blocks/HeapBlocks.js:428 +msgid "The Index-heap block returns a value in the heap at a specified location." msgstr "" -#: js/ProgramBlocks.js:727 -msgid "open palette" +#: js/blocks/HeapBlocks.js:443 +#.TRANS: retrieve a value from the heap at index position in the heap +msgid "index heap" msgstr "" -#: js/ProgramBlocks.js:785 -msgid "The Delete block block removes a block." +#: js/blocks/HeapBlocks.js:523 +msgid "The Set-heap entry block sets a value in he heap at the specified location." msgstr "" -#: js/ProgramBlocks.js:797 -#.TRANS: Move this block to the trash. -msgid "delete block" +#: js/blocks/HeapBlocks.js:539 +#: js/blocks/ProgramBlocks.js:299 +#.TRANS: load the heap from a JSON encoding +msgid "set heap" msgstr "" -#: js/ProgramBlocks.js:861 -msgid "The Move block block moves a block." +#: js/blocks/HeapBlocks.js:619 +msgid "The Pop block removes the value at the top of the heap." msgstr "" -#: js/ProgramBlocks.js:869 -#.TRANS: Move the position of a block on the screen. -msgid "move block" +#: js/blocks/HeapBlocks.js:633 +#.TRANS: pop a value off the top of the heap +msgid "pop" msgstr "" -#: js/ProgramBlocks.js:881 -#: js/ProgramBlocks.js:1048 -msgid "block number" +#: js/blocks/HeapBlocks.js:680 +msgid "The Push block adds a value to the top of the heap." msgstr "" -#: js/ProgramBlocks.js:935 -#.TRANS: Run program beginning at this block. -msgid "run block" +#: js/blocks/HeapBlocks.js:696 +#.TRANS: push a value onto the top of the heap +msgid "push" msgstr "" -#: js/ProgramBlocks.js:1025 -msgid "The Dock block block connections two blocks." +#: js/blocks/IntervalsBlocks.js:45 +msgid "set temperament" msgstr "" -#: js/ProgramBlocks.js:1036 -#.TRANS: We can connect a block to another block. -msgid "connect blocks" +#: js/blocks/IntervalsBlocks.js:63 +#: js/blocks/MediaBlocks.js:746 +#: js/blocks/PitchBlocks.js:657 +#: js/blocks/PitchBlocks.js:935 +#: js/blocks/PitchBlocks.js:974 +#: js/blocks/PitchBlocks.js:1007 +#: js/blocks/PitchBlocks.js:1194 +#: js/blocks/PitchBlocks.js:1717 +#: js/blocks/PitchBlocks.js:1758 +#: js/blocks/PitchBlocks.js:1866 +#: js/blocks/ToneBlocks.js:1025 +#: js/turtleactions/IntervalsActions.js:114 +#.TRANS: adjusts the shift up or down by one octave (twelve half-steps in the interval between two notes, one having twice or half the frequency in Hz of the other.) +msgid "octave" msgstr "" -#: js/ProgramBlocks.js:1048 -msgid "target block" +#: js/blocks/IntervalsBlocks.js:99 +msgid "The Temperament name block is used to select a tuning method." msgstr "" -#: js/ProgramBlocks.js:1048 -msgid "connection number" +#: js/blocks/IntervalsBlocks.js:161 +msgid "doubly" msgstr "" -#: js/ProgramBlocks.js:1140 -msgid "The Make block block creates a new block." +#: js/blocks/IntervalsBlocks.js:166 +msgid "The Doubly block will double the size of an interval." msgstr "" -#: js/ProgramBlocks.js:1152 -#.TRANS: Create a new block -msgid "make block" +#: js/blocks/IntervalsBlocks.js:262 +msgid "interval number" msgstr "" -#: js/ProgramBlocks.js:1186 -#: js/ProgramBlocks.js:1227 -#: js/RhythmBlocks.js:1128 -#: js/PitchBlocks.js:972 -#: js/PitchBlocks.js:1005 -#: js/temperament.js:340 -#: js/temperament.js:362 -#: js/temperament.js:372 -#: js/temperament.js:484 -#: js/status.js:190 -#: plugins/rodi.rtp:192 -#.TRANS: a musical note consisting of pitch and duration -msgid "note" +#: js/blocks/IntervalsBlocks.js:317 +msgid "current interval" msgstr "" -#: js/ProgramBlocks.js:1285 -msgid "Cannot find block" +#: js/blocks/IntervalsBlocks.js:387 +#.TRANS: measure the distance between two pitches in semi-tones +msgid "semi-tone interval measure" msgstr "" -#: js/ProgramBlocks.js:1304 -#: js/ProgramBlocks.js:1313 -msgid "Warning: block argument type mismatch" +#: js/blocks/IntervalsBlocks.js:454 +#: js/blocks/IntervalsBlocks.js:570 +msgid "You must use two pitch blocks when measuring an interval." msgstr "" -#: js/ProgramBlocks.js:1347 -msgid "The Open project block is used to open a project from a web page." +#: js/blocks/IntervalsBlocks.js:496 +msgid "The Scalar interval block measures the distance between two notes in the current key and mode." msgstr "" -#: js/ProgramBlocks.js:1357 -msgid "open project" +#: js/blocks/IntervalsBlocks.js:502 +#.TRANS: measure the distance between two pitches in steps of musical scale +msgid "scalar interval measure" msgstr "" -#: js/ProgramBlocks.js:1410 -msgid "Please enter a valid URL." +#: js/blocks/IntervalsBlocks.js:678 +msgid "In the figure, we add sol# to sol." msgstr "" -#: js/DrumBlocks.js:59 -msgid "The Noise name block is used to select a noise synthesizer." +#: js/blocks/IntervalsBlocks.js:684 +#: js/blocks/OrnamentBlocks.js:220 +#.TRANS: calculate a relative step between notes based on semi-tones +msgid "semi-tone interval" msgstr "" -#: js/DrumBlocks.js:102 -msgid "The Drum name block is used to select a drum." +#: js/blocks/IntervalsBlocks.js:733 +msgid "The output of the example is: do, mi, sol, sol, ti, mi" msgstr "" -#: js/DrumBlocks.js:146 -msgid "The Effects name block is used to select a sound effect." +#: js/blocks/IntervalsBlocks.js:740 +#: js/blocks/WidgetBlocks.js:768 +msgid "arpeggio" msgstr "" -#: js/DrumBlocks.js:163 -msgid "noise" +#: js/blocks/IntervalsBlocks.js:931 +msgid "The Chord block calculates common chords." msgstr "" -#: js/DrumBlocks.js:177 -msgid "The Play noise block will generate white, pink, or brown noise." +#: js/blocks/IntervalsBlocks.js:933 +msgid "In the figure, we generate a C-major chord." msgstr "" -#: js/DrumBlocks.js:191 -#: js/musicutils.js:752 -#: js/synthutils.js:47 -#.TRANS: white noise synthesizer -msgid "white noise" +#: js/blocks/IntervalsBlocks.js:938 +msgid "chord" msgstr "" -#: js/DrumBlocks.js:326 -msgid "Replace every instance of a pitch with a drum sound." +#: js/blocks/IntervalsBlocks.js:990 +msgid "The Ratio Interval block calculates an interval based on a ratio." msgstr "" -#: js/DrumBlocks.js:337 -#.TRANS: map a pitch to a drum sound -msgid "map pitch to drum" +#: js/blocks/IntervalsBlocks.js:995 +msgid "ratio interval" msgstr "" -#: js/DrumBlocks.js:404 -msgid "In the example above, a kick drum sound will be played instead of sol." +#: js/blocks/IntervalsBlocks.js:1064 +msgid "In the figure, we add la to sol." msgstr "" -#: js/DrumBlocks.js:416 -#.TRANS: set the current drum sound for playback -msgid "set drum" +#: js/blocks/IntervalsBlocks.js:1120 +#.TRANS: define a custom mode +msgid "define mode" msgstr "" -#: js/DrumBlocks.js:460 -msgid "sound effect" +#: js/blocks/IntervalsBlocks.js:1173 +msgid "movable Do" msgstr "" -#: js/DrumBlocks.js:498 -msgid "You can use multiple Drum blocks within a Note block." +#: js/blocks/IntervalsBlocks.js:1224 +#.TRANS: mode length is the number of notes in the mode, e.g., 7 for major and minor scales; 12 for chromatic scales +msgid "mode length" msgstr "" -#: js/RhythmBlocks.js:182 -#: js/RhythmBlocks.js:1086 -#: js/RhythmBlocks.js:1162 -msgid "Note value must be greater than 0." +#: js/blocks/IntervalsBlocks.js:1233 +msgid "The Mode length block is the number of notes in the current scale." msgstr "" -#: js/RhythmBlocks.js:215 -#: js/RhythmBlocks.js:278 -#: js/RhythmBlocks.js:350 -#.TRANS: swing is a rhythmic variation that emphasises the offbeat -msgid "swing" +#: js/blocks/IntervalsBlocks.js:1235 +msgid "Most Western scales have 7 notes." msgstr "" -#: js/RhythmBlocks.js:355 -#.TRANS: the amount to shift to the offbeat note -msgid "swing value" +#: js/blocks/IntervalsBlocks.js:1284 +#.TRANS: the mode in music is 'major', 'minor', etc. +msgid "current mode" msgstr "" -#: js/RhythmBlocks.js:419 -msgid "The Skip notes block will cause notes to be skipped." +#: js/blocks/IntervalsBlocks.js:1337 +#.TRANS: the key is a group of pitches with which a music composition is created +msgid "current key" msgstr "" -#: js/RhythmBlocks.js:427 -#.TRANS: substitute rests on notes being skipped -msgid "skip notes" +#: js/blocks/IntervalsBlocks.js:1389 +#: js/blocks/IntervalsBlocks.js:1434 +#.TRANS: set the key and mode, e.g. C Major +msgid "set key" msgstr "" -#: js/RhythmBlocks.js:489 -#.TRANS: speed up note duration by some factor, e.g. convert 1/4 to 1/8 notes by using a factor of 2 -msgid "multiply note value" +#: js/blocks/IntervalsBlocks.js:1443 +#: js/blocks/IntervalsBlocks.js:1449 +msgid "The Set key block is used to set the key and mode," msgstr "" -#: js/RhythmBlocks.js:542 -msgid "The Tie block works on pairs of notes, combining them into one note." +#: js/blocks/IntervalsBlocks.js:1449 +msgid "eg C Major" msgstr "" -#: js/RhythmBlocks.js:550 -#.TRANS: tie notes together into one longer note -msgid "tie" +#: js/blocks/MediaBlocks.js:35 +#.TRANS: right side of the screen +msgid "right (screen)" msgstr "" -#: js/RhythmBlocks.js:591 -#: js/RhythmBlocks.js:671 -#.TRANS: a dotted note is played for 1.5x its value, e.g., 1/8. --> 3/16 -msgid "dot" +#: js/blocks/MediaBlocks.js:45 +#: js/blocks/MediaBlocks.js:56 +msgid "The Right block returns the position of the right of the canvas." msgstr "" -#: js/RhythmBlocks.js:619 -#: js/RhythmActions.js:221 -msgid "An argument of -1 results in a note value of 0." +#: js/blocks/MediaBlocks.js:97 +#.TRANS: left side of the screen +msgid "left (screen)" msgstr "" -#: js/RhythmBlocks.js:661 -msgid "The Dot block extends the duration of a note by 50%." +#: js/blocks/MediaBlocks.js:107 +#: js/blocks/MediaBlocks.js:118 +msgid "The Left block returns the position of the left of the canvas." msgstr "" -#: js/RhythmBlocks.js:663 -msgid "Eg a dotted quarter note will play for 3/8 (1/4 + 1/8) of a beat." +#: js/blocks/MediaBlocks.js:158 +msgid "top (screen)" msgstr "" -#: js/RhythmBlocks.js:765 -#.TRANS: Japanese only: note value block for drum -msgid "note value drum" +#: js/blocks/MediaBlocks.js:168 +#: js/blocks/MediaBlocks.js:179 +msgid "The Top block returns the position of the top of the canvas." msgstr "" -#: js/RhythmBlocks.js:829 -msgid "392 hertz" +#: js/blocks/MediaBlocks.js:219 +msgid "bottom (screen)" msgstr "" -#: js/RhythmBlocks.js:1119 -msgid "The Note block is a container for one or more Pitch blocks." +#: js/blocks/MediaBlocks.js:229 +#: js/blocks/MediaBlocks.js:240 +msgid "The Bottom block returns the position of the bottom of the canvas." msgstr "" -#: js/RhythmBlocks.js:1121 -msgid "The Note block specifies the duration (note value) of its contents." +#: js/blocks/MediaBlocks.js:282 +msgid "width" msgstr "" -#: js/RhythmBlocks.js:1130 -msgid "value2" +#: js/blocks/MediaBlocks.js:291 +msgid "The Width block returns the width of the canvas." msgstr "" -#: js/RhythmBlocks.js:1200 -msgid "define frequency" +#: js/blocks/MediaBlocks.js:325 +msgid "height" msgstr "" -#: js/RhythmBlocks.js:1218 -#: js/temperament.js:650 -#: js/temperament.js:1421 -msgid "octave space" +#: js/blocks/MediaBlocks.js:334 +msgid "The Height block returns the height of the canvas." msgstr "" -#: js/NumberBlocks.js:28 -msgid "The Int block returns an integer." +#: js/blocks/MediaBlocks.js:369 +#.TRANS: stops playback of an audio recording +msgid "stop play" msgstr "" -#: js/NumberBlocks.js:34 -msgid "int" +#: js/blocks/MediaBlocks.js:404 +#.TRANS: Erases the images and text +msgid "erase media" msgstr "" -#: js/NumberBlocks.js:73 -msgid "The Mod block returns the remainder from a division." +#: js/blocks/MediaBlocks.js:409 +msgid "The Erase Media block erases text and images." msgstr "" -#: js/NumberBlocks.js:79 -msgid "mod" +#: js/blocks/MediaBlocks.js:439 +#.TRANS: play an audio recording +msgid "play back" msgstr "" -#: js/NumberBlocks.js:123 -msgid "The Power block calculates a power function." +#: js/blocks/MediaBlocks.js:487 +msgid "speak" msgstr "" -#: js/NumberBlocks.js:178 -msgid "The Sqrt block returns the square root." +#: js/blocks/MediaBlocks.js:495 +msgid "The Speak block outputs to the text-to-speech synthesizer" msgstr "" -#: js/NumberBlocks.js:184 -msgid "sqrt" +#: js/blocks/MediaBlocks.js:546 +msgid "camera" msgstr "" -#: js/NumberBlocks.js:230 -msgid "The Abs block returns the absolute value." +#: js/blocks/MediaBlocks.js:551 +msgid "The Camera block connects a webcam to the Show block." msgstr "" -#: js/NumberBlocks.js:236 -msgid "abs" +#: js/blocks/MediaBlocks.js:574 +msgid "video" msgstr "" -#: js/NumberBlocks.js:277 -msgid "The Distance block returns the distance between two points. For example, between the mouse and the center of the screen." +#: js/blocks/MediaBlocks.js:579 +msgid "The Video block selects video for use with the Show block." msgstr "" -#: js/NumberBlocks.js:283 -#: plugins/rodi.rtp:310 -msgid "distance" +#: js/blocks/MediaBlocks.js:607 +msgid "The Open file block opens a file for use with the Show block." msgstr "" -#: js/NumberBlocks.js:343 -msgid "The Divide block is used to divide." +#: js/blocks/MediaBlocks.js:645 +msgid "stop media" msgstr "" -#: js/NumberBlocks.js:411 -msgid "The Multiply block is used to multiply." +#: js/blocks/MediaBlocks.js:650 +msgid "The Stop media block stops audio or video playback." msgstr "" -#: js/NumberBlocks.js:554 -msgid "The Minus block is used to subtract." +#: js/blocks/MediaBlocks.js:679 +#: js/blocks/PitchBlocks.js:1577 +#: js/widgets/musickeyboard.js:1936 +#: js/widgets/phrasemaker.js:1037 +#.TRANS: a measure of frequency: one cycle per second +msgid "hertz" msgstr "" -#: js/NumberBlocks.js:647 -msgid "The Plus block is used to add." +#: js/blocks/MediaBlocks.js:692 +#: js/blocks/WidgetBlocks.js:182 +#: js/widgets/temperament.js:506 +#: js/widgets/temperament.js:546 +#: js/widgets/temperament.js:610 +#: js/widgets/temperament.js:618 +#: js/widgets/temperament.js:1505 +#: js/widgets/timbre.js:1842 +msgid "frequency" msgstr "" -#: js/NumberBlocks.js:773 -msgid "The One-of block returns one of two choices." +#: js/blocks/MediaBlocks.js:692 +msgid "duration (ms)" msgstr "" -#: js/NumberBlocks.js:780 -#: js/PitchBlocks.js:616 -msgid "one of" +#: js/blocks/MediaBlocks.js:728 +#.TRANS: translate a note into hertz, e.g., A4 -> 440HZ +msgid "note to frequency" msgstr "" -#: js/NumberBlocks.js:782 -msgid "this" +#: js/blocks/MediaBlocks.js:736 +msgid "The To frequency block converts a pitch name and octave to Hertz." msgstr "" -#: js/NumberBlocks.js:782 -msgid "that" +#: js/blocks/MediaBlocks.js:746 +#: js/blocks/PitchBlocks.js:656 +#: js/blocks/PitchBlocks.js:934 +#: js/blocks/PitchBlocks.js:1866 +#.TRANS: name2 is name as in name of pitch (JAPANESE ONLY) +msgid "name2" msgstr "" -#: js/NumberBlocks.js:837 -msgid "The Random block returns a random number." +#: js/blocks/MediaBlocks.js:812 +msgid "The Avatar block is used to change the appearance of the mouse." msgstr "" -#: js/NumberBlocks.js:844 -msgid "random" +#: js/blocks/MediaBlocks.js:819 +msgid "The Avatar block is used to change the appearance of the turtle." msgstr "" -#: js/NumberBlocks.js:846 -msgid "min" +#: js/blocks/MediaBlocks.js:831 +#: js/blocks/MediaBlocks.js:891 +#.TRANS: a media object +msgid "size" msgstr "" -#: js/NumberBlocks.js:846 -msgid "max" +#: js/blocks/MediaBlocks.js:831 +msgid "image" msgstr "" -#: js/NumberBlocks.js:910 -msgid "The Number block holds a number." +#: js/blocks/MediaBlocks.js:880 +msgid "The Show block is used to display text or images on the canvas." msgstr "" -#: js/BoxesBlocks.js:53 -#: js/BoxesBlocks.js:59 -msgid "The Add-to block is used to add to the value stored in a box." +#: js/blocks/MediaBlocks.js:888 +#.TRANS: show1 is show as in display an image or text on the screen. +msgid "show1" msgstr "" -#: js/BoxesBlocks.js:61 -msgid "It can also be used with other blocks such as Color and Pen size." +#: js/blocks/MediaBlocks.js:891 +msgid "obj" msgstr "" -#: js/BoxesBlocks.js:73 -msgid "add" +#: js/blocks/MediaBlocks.js:938 +msgid "The Media block is used to import an image." msgstr "" -#: js/BoxesBlocks.js:75 -#: js/temperament.js:716 -msgid "to" +#: js/blocks/MediaBlocks.js:973 +msgid "The Text block holds a text string." msgstr "" -#: js/BoxesBlocks.js:75 -#: js/BoxesBlocks.js:595 -#: js/HeapBlocks.js:544 -msgid "value1" +#: js/blocks/MeterBlocks.js:34 +#.TRANS: musical meter (time signature), e.g., 4:4 +msgid "current meter" msgstr "" -#: js/BoxesBlocks.js:118 -msgid "Block does not support incrementing." +#: js/blocks/MeterBlocks.js:85 +#.TRANS: number of beats per minute +msgid "beat factor" msgstr "" -#: js/BoxesBlocks.js:152 -msgid "The Add-1-to block adds one to the value stored in a box." +#: js/blocks/MeterBlocks.js:161 +msgid "The Beats per minute block returns the current beats per minute." msgstr "" -#: js/BoxesBlocks.js:163 -msgid "add 1 to" +#: js/blocks/MeterBlocks.js:169 +#: js/widgets/status.js:152 +#.TRANS: number of beats played per minute +msgid "beats per minute2" msgstr "" -#: js/BoxesBlocks.js:211 -msgid "The Subtract-1-from block subtracts one from the value stored in a box." +#: js/blocks/MeterBlocks.js:169 +#: js/blocks/MeterBlocks.js:1056 +#: js/blocks/MeterBlocks.js:1133 +#: js/blocks/MeterBlocks.js:1211 +#.TRANS: sets tempo by defining a beat and beats per minute +msgid "beats per minute" msgstr "" -#: js/BoxesBlocks.js:222 -msgid "subtract 1 from" +#: js/blocks/MeterBlocks.js:233 +#.TRANS: count of current musical measure in meter +msgid "measure count" msgstr "" -#: js/BoxesBlocks.js:270 -#: js/BoxesBlocks.js:387 -msgid "The Box block returns the value stored in a box." +#: js/blocks/MeterBlocks.js:241 +msgid "The Measure count block returns the current measure." msgstr "" -#: js/BoxesBlocks.js:500 -#: js/BoxesBlocks.js:576 -msgid "The Store in block will store a value in a box." +#: js/blocks/MeterBlocks.js:290 +#.TRANS: count of current beat in the meter +msgid "beat count" msgstr "" -#: js/BoxesBlocks.js:652 -msgid "The Box2 block returns the value stored in Box2." +#: js/blocks/MeterBlocks.js:300 +#: js/blocks/MeterBlocks.js:311 +#: js/blocks/MeterBlocks.js:565 +#: js/blocks/MeterBlocks.js:576 +msgid "The Beat count block is the number of the current beat," msgstr "" -#: js/BoxesBlocks.js:703 -msgid "The Store in Box2 block is used to store a value in Box2." +#: js/blocks/MeterBlocks.js:313 +#: js/blocks/MeterBlocks.js:578 +msgid "eg 1, 2, 3, or 4." msgstr "" -#: js/BoxesBlocks.js:715 -msgid "store in box2" +#: js/blocks/MeterBlocks.js:368 +#.TRANS: count the number of notes +msgid "sum note values" msgstr "" -#: js/BoxesBlocks.js:761 -msgid "The Box1 block returns the value stored in Box1." +#: js/blocks/MeterBlocks.js:376 +#: js/blocks/MeterBlocks.js:440 +msgid "The Note counter block can be used to count the number of contained notes." msgstr "" -#: js/BoxesBlocks.js:812 -msgid "The Store in Box1 block is used to store a value in Box1." +#: js/blocks/MeterBlocks.js:432 +#.TRANS: count the number of notes +msgid "note counter" msgstr "" -#: js/BoxesBlocks.js:826 -msgid "store in box1" +#: js/blocks/MeterBlocks.js:496 +#.TRANS: number of whole notes that have been played +msgid "whole notes played" msgstr "" -#: js/HeapBlocks.js:49 -msgid "The Heap block returns the heap." +#: js/blocks/MeterBlocks.js:505 +msgid "The Whole notes played block returns the total number of whole notes played." msgstr "" -#: js/HeapBlocks.js:133 -msgid "show heap" +#: js/blocks/MeterBlocks.js:555 +#: js/turtleactions/DictActions.js:83 +#.TRANS: number of notes that have been played +msgid "notes played" msgstr "" -#: js/HeapBlocks.js:181 -msgid "The Heap-length block returns the length of the heap." +#: js/blocks/MeterBlocks.js:653 +msgid "The No clock block decouples the notes from the master clock." msgstr "" -#: js/HeapBlocks.js:195 -msgid "heap length" +#: js/blocks/MeterBlocks.js:661 +#.TRANS: don't lock notes to master clock +msgid "no clock" msgstr "" -#: js/HeapBlocks.js:254 -msgid "The Heap-empty? block returns true if the heap is empty." +#: js/blocks/MeterBlocks.js:700 +msgid "on weak beat do" msgstr "" -#: js/HeapBlocks.js:268 -#.TRANS: Is the heap empty? -msgid "heap empty?" +#: js/blocks/MeterBlocks.js:705 +msgid "The On-weak-beat block lets you specify actions to take on weak (off) beats." msgstr "" -#: js/HeapBlocks.js:317 -msgid "The Empty-heap block empties the heap." +#: js/blocks/MeterBlocks.js:750 +msgid "on strong beat" msgstr "" -#: js/HeapBlocks.js:327 -#: js/HeapBlocks.js:647 -#.TRANS: empty the heap -msgid "empty heap" +#: js/blocks/MeterBlocks.js:758 +msgid "The On-strong-beat block lets you specify actions to take on specified beats." msgstr "" -#: js/HeapBlocks.js:371 -msgid "The Reverse-heap block reverses the order of the heap." +#: js/blocks/MeterBlocks.js:769 +msgid "beat" msgstr "" -#: js/HeapBlocks.js:384 -#.TRANS: reverse the order of the heap -msgid "reverse heap" +#: js/blocks/MeterBlocks.js:813 +msgid "on every beat do" msgstr "" -#: js/HeapBlocks.js:428 -msgid "The Index-heap block returns a value in the heap at a specified location." +#: js/blocks/MeterBlocks.js:821 +msgid "The On-every-beat block lets you specify actions to take on every beat." msgstr "" -#: js/HeapBlocks.js:443 -#.TRANS: retrieve a value from the heap at index position in the heap -msgid "index heap" +#: js/blocks/MeterBlocks.js:874 +msgid "on every note do" msgstr "" -#: js/HeapBlocks.js:523 -msgid "The Set-heap entry block sets a value in he heap at the specified location." +#: js/blocks/MeterBlocks.js:882 +msgid "The On-every-note block lets you specify actions to take on every note." msgstr "" -#: js/HeapBlocks.js:619 -msgid "The Pop block removes the value at the top of the heap." +#: js/blocks/MeterBlocks.js:928 +#: js/blocks/MeterBlocks.js:999 +#.TRANS: sets tempo by defining a beat and beats per minute +msgid "master beats per minute" msgstr "" -#: js/HeapBlocks.js:633 -#.TRANS: pop a value off the top of the heap -msgid "pop" +#: js/blocks/MeterBlocks.js:952 +#: js/blocks/MeterBlocks.js:1078 +#: js/blocks/MeterBlocks.js:1135 +msgid "bpm" msgstr "" -#: js/HeapBlocks.js:680 -msgid "The Push block adds a value to the top of the heap." +#: js/blocks/MeterBlocks.js:952 +#: js/blocks/MeterBlocks.js:1078 +#: js/blocks/MeterBlocks.js:1135 +msgid "beat value" msgstr "" -#: js/HeapBlocks.js:696 -#.TRANS: push a value onto the top of the heap -msgid "push" +#: js/blocks/MeterBlocks.js:1024 +#: js/blocks/MeterBlocks.js:1167 +#: js/blocks/MeterBlocks.js:1241 +msgid "Beats per minute must be > 30." msgstr "" -#: js/FlowBlocks.js:41 -msgid "The Backward block runs code in reverse order (Musical retrograde)." +#: js/blocks/MeterBlocks.js:1027 +#: js/blocks/MeterBlocks.js:1170 +#: js/blocks/MeterBlocks.js:1244 +msgid "Maximum beats per minute is 1000." msgstr "" -#: js/FlowBlocks.js:48 -msgid "backward" +#: js/blocks/MeterBlocks.js:1068 +msgid "The Beats per minute block sets the number of 1/4 notes per minute." msgstr "" -#: js/FlowBlocks.js:124 -msgid "The Duplicate block will run each block multiple times." +#: js/blocks/MeterBlocks.js:1279 +#.TRANS: anacrusis +msgid "pickup" msgstr "" -#: js/FlowBlocks.js:136 -msgid "duplicate" +#: js/blocks/MeterBlocks.js:1367 +msgid "number of beats" msgstr "" -#: js/FlowBlocks.js:334 -msgid "The Default block is used inside of a Switch to define the default action." +#: js/blocks/NumberBlocks.js:28 +msgid "The Int block returns an integer." msgstr "" -#: js/FlowBlocks.js:342 -msgid "default" +#: js/blocks/NumberBlocks.js:34 +msgid "int" msgstr "" -#: js/FlowBlocks.js:361 -#: js/FlowBlocks.js:418 -msgid "The Case Block must be used inside of a Switch Block." +#: js/blocks/NumberBlocks.js:73 +msgid "The Mod block returns the remainder from a division." msgstr "" -#: js/FlowBlocks.js:389 -msgid "The Case block is used inside of a Switch to define matches." +#: js/blocks/NumberBlocks.js:79 +msgid "mod" msgstr "" -#: js/FlowBlocks.js:397 -msgid "case" +#: js/blocks/NumberBlocks.js:141 +msgid "The Power block calculates a power function." msgstr "" -#: js/FlowBlocks.js:446 -msgid "The Switch block will run the code in the matching Case." +#: js/blocks/NumberBlocks.js:196 +msgid "The Sqrt block returns the square root." msgstr "" -#: js/FlowBlocks.js:454 -msgid "switch" +#: js/blocks/NumberBlocks.js:202 +msgid "sqrt" msgstr "" -#: js/FlowBlocks.js:595 -msgid "The Stop block will stop a loop" +#: js/blocks/NumberBlocks.js:248 +msgid "The Abs block returns the absolute value." msgstr "" -#: js/FlowBlocks.js:597 -msgid "Forever, Repeat, While, or Until." +#: js/blocks/NumberBlocks.js:254 +msgid "abs" msgstr "" -#: js/FlowBlocks.js:604 -#: js/phrasemaker.js:3799 -#: js/musickeyboard.js:629 -#: js/musickeyboard.js:631 -#: js/timbre.js:417 -#: js/timbre.js:419 -#: plugins/rodi.rtp:29 -#: plugins/rodi.rtp:73 -#: plugins/rodi.rtp:413 -msgid "stop" +#: js/blocks/NumberBlocks.js:295 +msgid "The Distance block returns the distance between two points. For example, between the mouse and the center of the screen." msgstr "" -#: js/FlowBlocks.js:653 -msgid "The Waitfor block will wait until the condition is true." +#: js/blocks/NumberBlocks.js:301 +#: plugins/rodi.rtp:310 +msgid "distance" msgstr "" -#: js/FlowBlocks.js:661 -msgid "wait for" +#: js/blocks/NumberBlocks.js:361 +msgid "The Divide block is used to divide." msgstr "" -#: js/FlowBlocks.js:732 -msgid "The Until block will repeat until the condition is true." +#: js/blocks/NumberBlocks.js:441 +msgid "The Multiply block is used to multiply." msgstr "" -#: js/FlowBlocks.js:740 -msgid "until" +#: js/blocks/NumberBlocks.js:612 +msgid "The Minus block is used to subtract." msgstr "" -#: js/FlowBlocks.js:742 -#: js/FlowBlocks.js:822 -msgid "do2" +#: js/blocks/NumberBlocks.js:723 +msgid "The Plus block is used to add." msgstr "" -#: js/FlowBlocks.js:812 -msgid "The While block will repeat while the condition is true." +#: js/blocks/NumberBlocks.js:849 +msgid "The One-of block returns one of two choices." msgstr "" -#: js/FlowBlocks.js:820 -msgid "while" +#: js/blocks/NumberBlocks.js:856 +#: js/blocks/PitchBlocks.js:616 +msgid "one of" msgstr "" -#: js/FlowBlocks.js:903 -#: js/FlowBlocks.js:968 -#: js/FlowBlocks.js:979 -msgid "In this example if the mouse button is pressed a snare drum will play." +#: js/blocks/NumberBlocks.js:858 +msgid "this" msgstr "" -#: js/FlowBlocks.js:925 -#: js/FlowBlocks.js:988 -msgid "if" +#: js/blocks/NumberBlocks.js:858 +msgid "that" msgstr "" -#: js/FlowBlocks.js:927 -#: js/FlowBlocks.js:990 -msgid "then" +#: js/blocks/NumberBlocks.js:913 +msgid "The Random block returns a random number." msgstr "" -#: js/FlowBlocks.js:927 -msgid "else" +#: js/blocks/NumberBlocks.js:920 +msgid "random" msgstr "" -#: js/FlowBlocks.js:1025 -msgid "The Forever block will repeat the contained blocks forever." +#: js/blocks/NumberBlocks.js:922 +msgid "min" msgstr "" -#: js/FlowBlocks.js:1037 -msgid "forever" +#: js/blocks/NumberBlocks.js:922 +msgid "max" msgstr "" -#: js/FlowBlocks.js:1073 -msgid "The Repeat block will repeat the contained blocks." +#: js/blocks/NumberBlocks.js:986 +msgid "The Number block holds a number." msgstr "" -#: js/FlowBlocks.js:1075 -msgid "In this example the note will be played 4 times." +#: js/blocks/OrnamentBlocks.js:32 +msgid "staccato factor" msgstr "" -#: js/FlowBlocks.js:1083 -msgid "repeat" +#: js/blocks/OrnamentBlocks.js:108 +msgid "slur factor" msgstr "" -#: js/FlowBlocks.js:1123 -msgid "duplicate factor" +#: js/blocks/OrnamentBlocks.js:217 +#: js/blocks/OrnamentBlocks.js:309 +#.TRANS: the neighbor refers to a neighboring note, e.g., D is a neighbor of C +msgid "neighbor" msgstr "" -#: js/PitchBlocks.js:39 -#: js/musicutils.js:722 -#: js/musicutils.js:1117 -#: js/synthutils.js:112 -#.TRANS: square wave -msgid "square" +#: js/blocks/OrnamentBlocks.js:293 +msgid "The Neighbor block rapidly switches between neighboring pitches." msgstr "" -#: js/PitchBlocks.js:62 -#: js/ToneBlocks.js:39 -#: js/musicutils.js:723 -#: js/musicutils.js:1118 -#: js/synthutils.js:116 -#.TRANS: triangle wave -msgid "triangle" +#: js/blocks/OrnamentBlocks.js:364 +msgid "glide" msgstr "" -#: js/PitchBlocks.js:85 -#: js/musicutils.js:721 -#: js/musicutils.js:1116 -#: js/synthutils.js:110 -#.TRANS: sine wave -msgid "sine" +#: js/blocks/OrnamentBlocks.js:479 +#: js/blocks/OrnamentBlocks.js:643 +msgid "slur" msgstr "" -#: js/PitchBlocks.js:108 -#: js/musicutils.js:724 -#: js/musicutils.js:1119 -#: js/synthutils.js:114 -#.TRANS: sawtooth wave -msgid "sawtooth" +#: js/blocks/OrnamentBlocks.js:558 +#: js/blocks/OrnamentBlocks.js:710 +#.TRANS: play each note sharply detached from the others +msgid "staccato" msgstr "" -#: js/PitchBlocks.js:141 -#.TRANS: musical transposition (adjustment of pitch up or down) -msgid "transposition" +#: js/blocks/RhythmBlocks.js:182 +#: js/blocks/RhythmBlocks.js:1086 +#: js/blocks/RhythmBlocks.js:1162 +msgid "Note value must be greater than 0." msgstr "" -#: js/PitchBlocks.js:168 -#.TRANS: step down one note in current musical scale -msgid "scalar step down" +#: js/blocks/RhythmBlocks.js:215 +#: js/blocks/RhythmBlocks.js:278 +#: js/blocks/RhythmBlocks.js:350 +#.TRANS: swing is a rhythmic variation that emphasises the offbeat +msgid "swing" msgstr "" -#: js/PitchBlocks.js:172 -msgid "The Scalar step down block returns the number of semi-tones down to the previous note in the current key and mode." +#: js/blocks/RhythmBlocks.js:355 +#.TRANS: the amount to shift to the offbeat note +msgid "swing value" msgstr "" -#: js/PitchBlocks.js:190 -#.TRANS: step up one note in current musical scale -msgid "scalar step up" +#: js/blocks/RhythmBlocks.js:419 +msgid "The Skip notes block will cause notes to be skipped." msgstr "" -#: js/PitchBlocks.js:194 -msgid "The Scalar step up block returns the number of semi-tones up to the next note in the current key and mode." +#: js/blocks/RhythmBlocks.js:427 +#.TRANS: substitute rests on notes being skipped +msgid "skip notes" msgstr "" -#: js/PitchBlocks.js:212 -#.TRANS: the change measured in half-steps between the current pitch and the previous pitch -msgid "change in pitch" +#: js/blocks/RhythmBlocks.js:489 +#.TRANS: speed up note duration by some factor, e.g. convert 1/4 to 1/8 notes by using a factor of 2 +msgid "multiply note value" msgstr "" -#: js/PitchBlocks.js:216 -msgid "The Change in pitch block is the difference (in half steps) between the current pitch being played and the previous pitch played." +#: js/blocks/RhythmBlocks.js:542 +msgid "The Tie block works on pairs of notes, combining them into one note." msgstr "" -#: js/PitchBlocks.js:243 -#.TRANS: the change measured in scale-steps between the current pitch and the previous pitch -msgid "scalar change in pitch" +#: js/blocks/RhythmBlocks.js:550 +#.TRANS: tie notes together into one longer note +msgid "tie" msgstr "" -#: js/PitchBlocks.js:250 -#: js/PitchBlocks.js:432 -#: js/PitchBlocks.js:1629 -#: js/DictActions.js:89 -#: js/temperament.js:477 -#: js/temperament.js:481 -#: js/temperament.js:714 -#.TRANS: convert current note to piano key (1-88) -#.TRANS: a mapping of pitch to the 88 piano keys -msgid "pitch number" +#: js/blocks/RhythmBlocks.js:591 +#: js/blocks/RhythmBlocks.js:671 +#.TRANS: a dotted note is played for 1.5x its value, e.g., 1/8. --> 3/16 +msgid "dot" msgstr "" -#: js/PitchBlocks.js:256 -msgid "The Pitch number block is the value of the pitch of the note currently being played." +#: js/blocks/RhythmBlocks.js:619 +#: js/turtleactions/RhythmActions.js:221 +msgid "An argument of -1 results in a note value of 0." msgstr "" -#: js/PitchBlocks.js:329 -#: js/PitchBlocks.js:433 -#.TRANS: the current pitch expressed in Hertz -msgid "pitch in hertz" +#: js/blocks/RhythmBlocks.js:661 +msgid "The Dot block extends the duration of a note by 50%." msgstr "" -#: js/PitchBlocks.js:334 -msgid "The Pitch in Hertz block is the value in Hertz of the pitch of the note currently being played." +#: js/blocks/RhythmBlocks.js:663 +msgid "Eg a dotted quarter note will play for 3/8 (1/4 + 1/8) of a beat." msgstr "" -#: js/PitchBlocks.js:367 -#: js/DictActions.js:87 -msgid "current pitch" +#: js/blocks/RhythmBlocks.js:765 +#.TRANS: Japanese only: note value block for drum +msgid "note value drum" msgstr "" -#: js/PitchBlocks.js:373 -msgid "The Current Pitch block is used with the Pitch Converter block. In the example above, current pitch, sol 4, is displayed as 392 hertz." +#: js/blocks/RhythmBlocks.js:829 +msgid "392 hertz" msgstr "" -#: js/PitchBlocks.js:410 -msgid "This block converts the pitch value of the last note played into different formats such as hertz, letter name, pitch number, et al." +#: js/blocks/RhythmBlocks.js:1119 +msgid "The Note block is a container for one or more Pitch blocks." msgstr "" -#: js/PitchBlocks.js:434 -msgid "alphabet" +#: js/blocks/RhythmBlocks.js:1121 +msgid "The Note block specifies the duration (note value) of its contents." msgstr "" -#: js/PitchBlocks.js:436 -#.TRANS: Translate as "alphabet class" -msgid "letter class" +#: js/blocks/RhythmBlocks.js:1128 +#: js/blocks/PitchBlocks.js:974 +#: js/blocks/PitchBlocks.js:1007 +#: js/blocks/ProgramBlocks.js:1186 +#: js/blocks/ProgramBlocks.js:1227 +#: js/widgets/status.js:190 +#: js/widgets/temperament.js:464 +#: js/widgets/temperament.js:486 +#: js/widgets/temperament.js:496 +#: js/widgets/temperament.js:617 +#: plugins/rodi.rtp:192 +#.TRANS: a musical note consisting of pitch and duration +msgid "note" msgstr "" -#: js/PitchBlocks.js:437 -msgid "solfege class" +#: js/blocks/RhythmBlocks.js:1130 +msgid "value2" msgstr "" -#: js/PitchBlocks.js:438 -msgid "staff y" +#: js/blocks/RhythmBlocks.js:1200 +msgid "define frequency" msgstr "" -#: js/PitchBlocks.js:439 -msgid "solfege syllable" +#: js/blocks/RhythmBlocks.js:1218 +#: js/widgets/temperament.js:787 +#: js/widgets/temperament.js:1587 +msgid "octave space" msgstr "" -#: js/PitchBlocks.js:440 -msgid "pitch class" +#: js/blocks/SensorsBlocks.js:36 +msgid "The Input block prompts for keyboard input." msgstr "" -#: js/PitchBlocks.js:441 -msgid "scalar class" +#: js/blocks/SensorsBlocks.js:46 +msgid "input" msgstr "" -#: js/PitchBlocks.js:443 -msgid "nth degree" +#: js/blocks/SensorsBlocks.js:64 +msgid "Input a value" msgstr "" -#: js/PitchBlocks.js:444 -msgid "pitch to shade" +#: js/blocks/SensorsBlocks.js:126 +msgid "input value" msgstr "" -#: js/PitchBlocks.js:445 -msgid "pitch to color" +#: js/blocks/SensorsBlocks.js:131 +msgid "The Input-value block stores the input." msgstr "" -#: js/PitchBlocks.js:629 -#: js/musickeyboard.js:565 -#.TRANS: MIDI is a technical standard for electronic music -msgid "MIDI" +#: js/blocks/SensorsBlocks.js:238 +msgid "loudness" msgstr "" -#: js/PitchBlocks.js:642 -#.TRANS: set an offset associated with the numeric piano keyboard mapping -msgid "set pitch number offset" +#: js/blocks/SensorsBlocks.js:245 +msgid "The Loudness block returns the volume detected by the microphone." msgstr "" -#: js/PitchBlocks.js:645 -msgid "The Set pitch number offset block is used to set the offset for mapping pitch numbers to pitch and octave." +#: js/blocks/SensorsBlocks.js:300 +msgid "click" msgstr "" -#: js/PitchBlocks.js:679 -#.TRANS: convert piano key number (1-88) to pitch -msgid "number to pitch" +#: js/blocks/SensorsBlocks.js:306 +msgid "The Click block triggers an event if a mouse has been clicked." msgstr "" -#: js/PitchBlocks.js:682 -msgid "The Number to pitch block will convert a pitch number to a pich name." +#: js/blocks/SensorsBlocks.js:313 +msgid "The Click block triggers an event if a turtle has been clicked." msgstr "" -#: js/PitchBlocks.js:715 -#.TRANS: convert piano key number (1-88) to octave -msgid "number to octave" +#: js/blocks/SensorsBlocks.js:342 +msgid "cursor over" msgstr "" -#: js/PitchBlocks.js:717 -msgid "The Number to octave block will convert a pitch number to an octave." +#: js/blocks/SensorsBlocks.js:387 +msgid "cursor out" msgstr "" -#: js/PitchBlocks.js:726 -msgid "y to pitch" +#: js/blocks/SensorsBlocks.js:433 +msgid "cursor button down" msgstr "" -#: js/PitchBlocks.js:729 -msgid "Y to pitch block will convert a staff y position to corresponding pitch notation." +#: js/blocks/SensorsBlocks.js:477 +msgid "cursor button up" msgstr "" -#: js/PitchBlocks.js:841 -msgid "accidental selector" +#: js/blocks/SensorsBlocks.js:521 +#: js/blocks/PenBlocks.js:48 +#: plugins/rodi.rtp:219 +msgid "blue" msgstr "" -#: js/PitchBlocks.js:844 -msgid "The Accidental selector block is used to choose between double-sharp, sharp, natural, flat, and double-flat." +#: js/blocks/SensorsBlocks.js:577 +#: js/blocks/PenBlocks.js:64 +#: plugins/rodi.rtp:218 +msgid "green" msgstr "" -#: js/PitchBlocks.js:858 -msgid "Pitch can be specified in terms of ni dha pa ma ga re sa." +#: js/blocks/SensorsBlocks.js:633 +#: js/blocks/PenBlocks.js:112 +#: plugins/rodi.rtp:217 +msgid "red" msgstr "" -#: js/PitchBlocks.js:872 -msgid "Pitch can be specified in terms of C D E F G A B." +#: js/blocks/SensorsBlocks.js:638 +msgid "The Get red block returns the red component of the pixel under the mouse." msgstr "" -#: js/PitchBlocks.js:883 -msgid "solfege" +#: js/blocks/SensorsBlocks.js:644 +msgid "The Get red block returns the red component of the pixel under the turtle." msgstr "" -#: js/PitchBlocks.js:886 -msgid "Pitch can be specified in terms of do re mi fa sol la ti." +#: js/blocks/SensorsBlocks.js:685 +#: plugins/rodi.rtp:216 +msgid "pixel color" msgstr "" -#: js/PitchBlocks.js:920 -msgid "The Invert block rotates any contained notes around a target note." +#: js/blocks/SensorsBlocks.js:690 +msgid "The Get pixel block returns the color of the pixel under the mouse." msgstr "" -#: js/PitchBlocks.js:927 -#.TRANS: pitch inversion rotates a pitch around another pitch -msgid "invert" +#: js/blocks/SensorsBlocks.js:696 +msgid "The Get pixel block returns the color of the pixel under the turtle." msgstr "" -#: js/PitchBlocks.js:929 -#: js/PitchBlocks.js:935 -#: js/PitchActions.js:727 -#: js/musicutils.js:726 -#: js/musicutils.js:902 -#.TRANS: invert based on even or odd number or musical scale -#.TRANS: even numbers -msgid "even" +#: js/blocks/SensorsBlocks.js:758 +msgid "time" msgstr "" -#: js/PitchBlocks.js:935 -#: js/PitchActions.js:729 -#: js/musicutils.js:728 -#: js/musicutils.js:903 -#.TRANS: odd numbers -msgid "odd" +#: js/blocks/SensorsBlocks.js:804 +msgid "cursor y" msgstr "" -#: js/PitchBlocks.js:935 -#: js/PitchActions.js:731 -#: js/musicutils.js:729 -#: js/musicutils.js:904 -msgid "scalar" +#: js/blocks/SensorsBlocks.js:809 +msgid "The Cursor Y block returns the vertical position of the mouse." msgstr "" -#: js/PitchBlocks.js:966 -#.TRANS: pitch inversion rotates a pitch around another pitch (odd number) -msgid "invert (odd)" +#: js/blocks/SensorsBlocks.js:845 +msgid "cursor x" msgstr "" -#: js/PitchBlocks.js:999 -#.TRANS: pitch inversion rotates a pitch around another pitch (even number) -msgid "invert (even)" +#: js/blocks/SensorsBlocks.js:850 +msgid "The Cursor X block returns the horizontal position of the mouse." msgstr "" -#: js/PitchBlocks.js:1020 -#.TRANS: register is the octave of the current pitch -msgid "register" +#: js/blocks/SensorsBlocks.js:886 +msgid "mouse button" msgstr "" -#: js/PitchBlocks.js:1024 -msgid "The Register block provides an easy way to modify the register (octave) of the notes that follow it." +#: js/blocks/SensorsBlocks.js:888 +msgid "The Mouse-button block returns True if the mouse button is pressed." msgstr "" -#: js/PitchBlocks.js:1074 -msgid "The Semi-tone transposition block will shift the pitches contained inside Note blocks up (or down) by half steps." +#: js/blocks/SensorsBlocks.js:934 +msgid "to ASCII" msgstr "" -#: js/PitchBlocks.js:1076 -msgid "In the example shown above, sol is shifted up to sol#." +#: js/blocks/SensorsBlocks.js:938 +msgid "The To ASCII block converts numbers to letters." msgstr "" -#: js/PitchBlocks.js:1082 -#.TRANS: adjust the amount of shift (up or down) of a pitch -msgid "semi-tone transpose" +#: js/blocks/SensorsBlocks.js:1005 +msgid "The Keyboard block returns computer keyboard input." msgstr "" -#: js/PitchBlocks.js:1115 -msgid "The Transpose by Ratio block will shift the pitches contained inside Note blocks up (or down) by a ratio" +#: js/blocks/RhythmBlockPaletteBlocks.js:50 +#: js/blocks/RhythmBlockPaletteBlocks.js:233 +#.TRANS: rhythm block +#.TRANS: translate "rhythm1" as rhythm +msgid "rhythm1" msgstr "" -#: js/PitchBlocks.js:1121 -#.TRANS: adjust the amount of shift (up or down) of a pitch -msgid "transpose by ratio" +#: js/blocks/RhythmBlockPaletteBlocks.js:70 +#: js/blocks/RhythmBlockPaletteBlocks.js:252 +#: js/blocks/RhythmBlockPaletteBlocks.js:485 +#: js/blocks/RhythmBlockPaletteBlocks.js:554 +#: js/blocks/RhythmBlockPaletteBlocks.js:875 +msgid "number of notes" msgstr "" -#: js/PitchBlocks.js:1204 -#.TRANS: down sixth means the note is five scale degrees below current note -msgid "down sixth" +#: js/blocks/RhythmBlockPaletteBlocks.js:126 +msgid "polyphonic rhythm" msgstr "" -#: js/PitchBlocks.js:1223 -#.TRANS: down third means the note is two scale degrees below current note -msgid "down third" +#: js/blocks/RhythmBlockPaletteBlocks.js:219 +msgid "The Rhythm block is used to generate rhythm patterns." msgstr "" -#: js/PitchBlocks.js:1242 -#.TRANS: seventh means the note is the six scale degrees above current note -msgid "seventh" +#: js/blocks/RhythmBlockPaletteBlocks.js:280 +msgid "1/64 note" msgstr "" -#: js/PitchBlocks.js:1261 -#.TRANS: sixth means the note is the five scale degrees above current note -msgid "sixth" +#: js/blocks/RhythmBlockPaletteBlocks.js:304 +msgid "1/32 note" msgstr "" -#: js/PitchBlocks.js:1280 -#.TRANS: fifth means the note is the four scale degrees above current note -msgid "fifth" +#: js/blocks/RhythmBlockPaletteBlocks.js:332 +msgid "1/16 note" msgstr "" -#: js/PitchBlocks.js:1300 -#.TRANS: fourth means the note is three scale degrees above current note -msgid "fourth" +#: js/blocks/RhythmBlockPaletteBlocks.js:360 +msgid "eighth note" msgstr "" -#: js/PitchBlocks.js:1319 -#.TRANS: third means the note is two scale degrees above current note -msgid "third" +#: js/blocks/RhythmBlockPaletteBlocks.js:388 +msgid "quarter note" msgstr "" -#: js/PitchBlocks.js:1338 -#.TRANS: second means the note is one scale degree above current note -msgid "second" +#: js/blocks/RhythmBlockPaletteBlocks.js:416 +msgid "half note" msgstr "" -#: js/PitchBlocks.js:1379 -msgid "The Scalar transposition block will shift the pitches contained inside Note blocks up (or down) the scale." +#: js/blocks/RhythmBlockPaletteBlocks.js:444 +msgid "whole note" msgstr "" -#: js/PitchBlocks.js:1381 -msgid "In the example shown above, sol is shifted up to la." +#: js/blocks/RhythmBlockPaletteBlocks.js:482 +#: js/blocks/RhythmBlockPaletteBlocks.js:551 +#: js/blocks/RhythmBlockPaletteBlocks.js:602 +#.TRANS: A tuplet is a note value divided into irregular time values. +msgid "tuplet" msgstr "" -#: js/PitchBlocks.js:1388 -#.TRANS: adjust the amount of shift (up or down) of a pitch by musical scale (scalar) steps -msgid "scalar transpose" +#: js/blocks/RhythmBlockPaletteBlocks.js:768 +msgid "septuplet" msgstr "" -#: js/PitchBlocks.js:1423 -msgid "The Accidental block is used to create sharps and flats" +#: js/blocks/RhythmBlockPaletteBlocks.js:796 +msgid "quintuplet" msgstr "" -#: js/PitchBlocks.js:1430 -#.TRANS: An accidental is a modification to a pitch, e.g., sharp or flat. -msgid "accidental override" +#: js/blocks/RhythmBlockPaletteBlocks.js:824 +msgid "triplet" msgstr "" -#: js/PitchBlocks.js:1543 -msgid "The Hertz block (in combination with a Number block) will play a sound at the specified frequency." +#: js/blocks/RhythmBlockPaletteBlocks.js:851 +msgid "simple tuplet" msgstr "" -#: js/PitchBlocks.js:1633 -msgid "The Pitch Number block will play a pitch associated by its number, e.g. 0 for C and 7 for G." +#: js/blocks/RhythmBlockPaletteBlocks.js:861 +msgid "Tuplets are a collection of notes that get scaled to a specific duration." msgstr "" -#: js/PitchBlocks.js:1665 -#: js/PitchBlocks.js:1707 -#.TRANS: a numeric mapping of the notes in an octave based on the musical mode -#.TRANS: a numeric mapping of the notes in an octave based on the musical mode -msgid "nth modal pitch" +#: js/blocks/DrumBlocks.js:59 +msgid "The Noise name block is used to select a noise synthesizer." msgstr "" -#: js/PitchBlocks.js:1668 -msgid "n^th Modal Pitch takes the pattern of pitches in semitones for a mode and makes each point a degree of the mode," +#: js/blocks/DrumBlocks.js:102 +msgid "The Drum name block is used to select a drum." msgstr "" -#: js/PitchBlocks.js:1670 -msgid "starting from 1 and regardless of tonal framework (i.e. not always 8 notes in the octave)" +#: js/blocks/DrumBlocks.js:146 +msgid "The Effects name block is used to select a sound effect." msgstr "" -#: js/PitchBlocks.js:1711 -msgid "N^th Modal Pitch takes a number as an input as the n^th degree for the given mode. 0 is the first position, 1 is the second, -1 is the note before the first etc." +#: js/blocks/DrumBlocks.js:163 +msgid "noise" msgstr "" -#: js/PitchBlocks.js:1713 -msgid "The pitches change according to the mode specified without any need for respellings." +#: js/blocks/DrumBlocks.js:177 +msgid "The Play noise block will generate white, pink, or brown noise." msgstr "" -#: js/PitchBlocks.js:1752 -msgid "Scale Degree is a common convention in music. Scale Degree offers seven possible positions in the scale (1-7) and can be modified via accidentals." +#: js/blocks/DrumBlocks.js:317 +msgid "Replace every instance of a pitch with a drum sound." msgstr "" -#: js/PitchBlocks.js:1754 -msgid "Scale Degree 1 is always the first pitch in a given scale, regardless of octave." +#: js/blocks/DrumBlocks.js:328 +#.TRANS: map a pitch to a drum sound +msgid "map pitch to drum" msgstr "" -#: js/PitchBlocks.js:1776 -#.TRANS: step some number of notes in current musical scale -msgid "scalar step" +#: js/blocks/DrumBlocks.js:395 +msgid "In the example above, a kick drum sound will be played instead of sol." msgstr "" -#: js/PitchBlocks.js:1781 -msgid "The Scalar Step block (in combination with a Number block) will play the next pitch in a scale," +#: js/blocks/DrumBlocks.js:407 +#.TRANS: set the current drum sound for playback +msgid "set drum" msgstr "" -#: js/PitchBlocks.js:1783 -msgid "eg if the last note played was sol, Scalar Step 1 will play la." +#: js/blocks/DrumBlocks.js:451 +msgid "sound effect" msgstr "" -#: js/PitchBlocks.js:1818 -msgid "The Pitch block specifies the pitch name and octave of a note that together determine the frequency of the note." +#: js/blocks/DrumBlocks.js:489 +msgid "You can use multiple Drum blocks within a Note block." msgstr "" -#: js/GraphicsBlocks.js:46 -#: js/DictActions.js:77 -#: js/DictActions.js:155 -#: js/DictActions.js:189 +#: js/blocks/GraphicsBlocks.js:46 +#: js/turtleactions/DictActions.js:77 +#: js/turtleactions/DictActions.js:144 +#: js/turtleactions/DictActions.js:173 msgid "heading" msgstr "" -#: js/GraphicsBlocks.js:56 +#: js/blocks/GraphicsBlocks.js:56 msgid "The Heading block returns the orientation of the mouse." msgstr "" -#: js/GraphicsBlocks.js:62 +#: js/blocks/GraphicsBlocks.js:62 msgid "The Heading block returns the orientation of the turtle." msgstr "" -#: js/GraphicsBlocks.js:133 +#: js/blocks/GraphicsBlocks.js:133 msgid "The Y block returns the vertical position of the mouse." msgstr "" -#: js/GraphicsBlocks.js:140 +#: js/blocks/GraphicsBlocks.js:140 msgid "The Y block returns the vertical position of the turtle." msgstr "" -#: js/GraphicsBlocks.js:149 +#: js/blocks/GraphicsBlocks.js:149 msgid "y3" msgstr "" -#: js/GraphicsBlocks.js:219 +#: js/blocks/GraphicsBlocks.js:219 msgid "The X block returns the horizontal position of the mouse." msgstr "" -#: js/GraphicsBlocks.js:226 +#: js/blocks/GraphicsBlocks.js:226 msgid "The X block returns the horizontal position of the turtle." msgstr "" -#: js/GraphicsBlocks.js:235 +#: js/blocks/GraphicsBlocks.js:235 msgid "x3" msgstr "" -#: js/GraphicsBlocks.js:295 +#: js/blocks/GraphicsBlocks.js:295 msgid "scroll xy" msgstr "" -#: js/GraphicsBlocks.js:303 +#: js/blocks/GraphicsBlocks.js:303 msgid "The Scroll XY block moves the canvas." msgstr "" -#: js/GraphicsBlocks.js:313 +#: js/blocks/GraphicsBlocks.js:313 msgid "x2" msgstr "" -#: js/GraphicsBlocks.js:313 +#: js/blocks/GraphicsBlocks.js:313 msgid "y2" msgstr "" -#: js/GraphicsBlocks.js:373 -#: js/temperament.js:213 -#: js/temperament.js:241 +#: js/blocks/GraphicsBlocks.js:373 +#: js/widgets/temperament.js:319 +#: js/widgets/temperament.js:347 msgid "clear" msgstr "" -#: js/GraphicsBlocks.js:426 +#: js/blocks/GraphicsBlocks.js:426 msgid "The Control-point 2 block sets the second control point for the Bezier curve." msgstr "" -#: js/GraphicsBlocks.js:433 +#: js/blocks/GraphicsBlocks.js:433 msgid "control point 2" msgstr "" -#: js/GraphicsBlocks.js:436 -#: js/GraphicsBlocks.js:487 -#: js/GraphicsBlocks.js:534 -#: js/GraphicsBlocks.js:750 +#: js/blocks/GraphicsBlocks.js:436 +#: js/blocks/GraphicsBlocks.js:487 +#: js/blocks/GraphicsBlocks.js:534 +#: js/blocks/GraphicsBlocks.js:750 msgid "x1" msgstr "" -#: js/GraphicsBlocks.js:436 -#: js/GraphicsBlocks.js:487 -#: js/GraphicsBlocks.js:534 -#: js/GraphicsBlocks.js:750 +#: js/blocks/GraphicsBlocks.js:436 +#: js/blocks/GraphicsBlocks.js:487 +#: js/blocks/GraphicsBlocks.js:534 +#: js/blocks/GraphicsBlocks.js:750 msgid "y1" msgstr "" -#: js/GraphicsBlocks.js:477 +#: js/blocks/GraphicsBlocks.js:477 msgid "The Control-point 1 block sets the first control point for the Bezier curve." msgstr "" -#: js/GraphicsBlocks.js:484 +#: js/blocks/GraphicsBlocks.js:484 msgid "control point 1" msgstr "" -#: js/GraphicsBlocks.js:527 +#: js/blocks/GraphicsBlocks.js:527 msgid "The Bezier block draws a Bezier curve." msgstr "" -#: js/GraphicsBlocks.js:531 +#: js/blocks/GraphicsBlocks.js:531 msgid "bezier" msgstr "" -#: js/GraphicsBlocks.js:592 +#: js/blocks/GraphicsBlocks.js:592 msgid "The Arc block moves the turtle in an arc." msgstr "" -#: js/GraphicsBlocks.js:600 +#: js/blocks/GraphicsBlocks.js:600 msgid "arc" msgstr "" -#: js/GraphicsBlocks.js:603 +#: js/blocks/GraphicsBlocks.js:603 msgid "angle" msgstr "" -#: js/GraphicsBlocks.js:603 +#: js/blocks/GraphicsBlocks.js:603 msgid "radius" msgstr "" -#: js/GraphicsBlocks.js:620 -#: js/GraphicsBlocks.js:767 -#: js/GraphicsBlocks.js:1010 -#: js/GraphicsBlocks.js:1093 +#: js/blocks/GraphicsBlocks.js:620 +#: js/blocks/GraphicsBlocks.js:767 +#: js/blocks/GraphicsBlocks.js:1010 +#: js/blocks/GraphicsBlocks.js:1093 msgid "Value must be within -5000 to 5000 when Wrap Mode is off." msgstr "" -#: js/GraphicsBlocks.js:622 -#: js/GraphicsBlocks.js:769 -#: js/GraphicsBlocks.js:1012 -#: js/GraphicsBlocks.js:1095 +#: js/blocks/GraphicsBlocks.js:622 +#: js/blocks/GraphicsBlocks.js:769 +#: js/blocks/GraphicsBlocks.js:1012 +#: js/blocks/GraphicsBlocks.js:1095 msgid "Value must be within -20000 to 20000 when Wrap Mode is on." msgstr "" -#: js/GraphicsBlocks.js:660 +#: js/blocks/GraphicsBlocks.js:660 msgid "set heading" msgstr "" -#: js/GraphicsBlocks.js:673 +#: js/blocks/GraphicsBlocks.js:673 msgid "The Set heading block sets the heading of the turtle." msgstr "" -#: js/GraphicsBlocks.js:733 +#: js/blocks/GraphicsBlocks.js:733 msgid "The Set XY block moves the mouse to a specific position on the screen." msgstr "" -#: js/GraphicsBlocks.js:739 +#: js/blocks/GraphicsBlocks.js:739 msgid "The Set XY block moves the turtle to a specific position on the screen." msgstr "" -#: js/GraphicsBlocks.js:747 +#: js/blocks/GraphicsBlocks.js:747 msgid "set xy" msgstr "" -#: js/GraphicsBlocks.js:819 +#: js/blocks/GraphicsBlocks.js:819 msgid "The Right block turns the mouse to the right." msgstr "" -#: js/GraphicsBlocks.js:826 +#: js/blocks/GraphicsBlocks.js:826 msgid "The Right block turns the turtle to the right." msgstr "" -#: js/GraphicsBlocks.js:835 +#: js/blocks/GraphicsBlocks.js:835 msgid "right1" msgstr "" -#: js/GraphicsBlocks.js:835 +#: js/blocks/GraphicsBlocks.js:835 #: plugins/rodi.rtp:77 #: plugins/rodi.rtp:340 #: plugins/rodi.rtp:375 msgid "right" msgstr "" -#: js/GraphicsBlocks.js:899 +#: js/blocks/GraphicsBlocks.js:899 msgid "The Left block turns the mouse to the left." msgstr "" -#: js/GraphicsBlocks.js:906 +#: js/blocks/GraphicsBlocks.js:906 msgid "The Left block turns the turtle to the left." msgstr "" -#: js/GraphicsBlocks.js:915 +#: js/blocks/GraphicsBlocks.js:915 msgid "left1" msgstr "" -#: js/GraphicsBlocks.js:915 +#: js/blocks/GraphicsBlocks.js:915 #: plugins/rodi.rtp:79 #: plugins/rodi.rtp:339 #: plugins/rodi.rtp:362 msgid "left" msgstr "" -#: js/GraphicsBlocks.js:967 -#: js/temperament.js:734 -#: js/temperament.js:933 +#: js/blocks/GraphicsBlocks.js:967 +#: js/widgets/temperament.js:875 +#: js/widgets/temperament.js:1078 #: plugins/rodi.rtp:69 #: plugins/rodi.rtp:387 msgid "back" msgstr "" -#: js/GraphicsBlocks.js:976 +#: js/blocks/GraphicsBlocks.js:976 msgid "The Back block moves the mouse backward." msgstr "" -#: js/GraphicsBlocks.js:983 +#: js/blocks/GraphicsBlocks.js:983 msgid "The Back block moves the turtle backward." msgstr "" -#: js/GraphicsBlocks.js:1050 +#: js/blocks/GraphicsBlocks.js:1050 #: plugins/rodi.rtp:71 #: plugins/rodi.rtp:400 msgid "forward" msgstr "" -#: js/GraphicsBlocks.js:1059 +#: js/blocks/GraphicsBlocks.js:1059 msgid "The Forward block moves the mouse forward." msgstr "" -#: js/GraphicsBlocks.js:1066 +#: js/blocks/GraphicsBlocks.js:1066 msgid "The Forward block moves the turtle forward." msgstr "" -#: js/GraphicsBlocks.js:1154 -#: js/GraphicsBlocks.js:1172 +#: js/blocks/GraphicsBlocks.js:1154 +#: js/blocks/GraphicsBlocks.js:1172 msgid "wrap" msgstr "" -#: js/OrnamentBlocks.js:32 -msgid "staccato factor" -msgstr "" - -#: js/OrnamentBlocks.js:108 -msgid "slur factor" -msgstr "" - -#: js/OrnamentBlocks.js:217 -#: js/OrnamentBlocks.js:309 -#.TRANS: the neighbor refers to a neighboring note, e.g., D is a neighbor of C -msgid "neighbor" -msgstr "" - -#: js/OrnamentBlocks.js:293 -msgid "The Neighbor block rapidly switches between neighboring pitches." -msgstr "" - -#: js/OrnamentBlocks.js:364 -msgid "glide" -msgstr "" - -#: js/OrnamentBlocks.js:479 -#: js/OrnamentBlocks.js:643 -msgid "slur" -msgstr "" - -#: js/OrnamentBlocks.js:558 -#: js/OrnamentBlocks.js:710 -#.TRANS: play each note sharply detached from the others -msgid "staccato" -msgstr "" - -#: js/PenBlocks.js:24 +#: js/blocks/PenBlocks.js:30 msgid "purple" msgstr "" -#: js/PenBlocks.js:37 -#: js/SensorsBlocks.js:521 -#: plugins/rodi.rtp:219 -msgid "blue" -msgstr "" - -#: js/PenBlocks.js:50 -#: js/SensorsBlocks.js:577 -#: plugins/rodi.rtp:218 -msgid "green" -msgstr "" - -#: js/PenBlocks.js:63 +#: js/blocks/PenBlocks.js:80 msgid "yellow" msgstr "" -#: js/PenBlocks.js:76 +#: js/blocks/PenBlocks.js:96 #: plugins/nutrition.rtp:164 msgid "orange" msgstr "" -#: js/PenBlocks.js:89 -#: js/SensorsBlocks.js:633 -#: plugins/rodi.rtp:217 -msgid "red" -msgstr "" - -#: js/PenBlocks.js:102 +#: js/blocks/PenBlocks.js:128 msgid "white" msgstr "" -#: js/PenBlocks.js:115 +#: js/blocks/PenBlocks.js:144 msgid "black" msgstr "" -#: js/PenBlocks.js:128 +#: js/blocks/PenBlocks.js:163 msgid "begin fill" msgstr "" -#: js/PenBlocks.js:143 +#: js/blocks/PenBlocks.js:190 msgid "end fill" msgstr "" -#: js/PenBlocks.js:159 -#: js/PenBlocks.js:386 +#: js/blocks/PenBlocks.js:212 +#: js/blocks/PenBlocks.js:560 #.TRANS: set the background color msgid "background" msgstr "" -#: js/PenBlocks.js:206 -#: js/DictActions.js:71 -#: js/DictActions.js:149 -#: js/DictActions.js:186 +#: js/blocks/PenBlocks.js:274 +#: js/turtleactions/DictActions.js:71 +#: js/turtleactions/DictActions.js:138 +#: js/turtleactions/DictActions.js:170 msgid "grey" msgstr "" -#: js/PenBlocks.js:210 +#: js/blocks/PenBlocks.js:282 msgid "The Grey block returns the current pen grey value." msgstr "" -#: js/PenBlocks.js:243 -#: js/DictActions.js:69 -#: js/DictActions.js:147 -#: js/DictActions.js:185 +#: js/blocks/PenBlocks.js:340 +#: js/turtleactions/DictActions.js:69 +#: js/turtleactions/DictActions.js:136 +#: js/turtleactions/DictActions.js:169 msgid "shade" msgstr "" -#: js/PenBlocks.js:247 +#: js/blocks/PenBlocks.js:347 msgid "The Shade block returns the current pen shade value." msgstr "" -#: js/PenBlocks.js:280 -#: js/DictActions.js:67 -#: js/DictActions.js:145 -#: js/DictActions.js:184 +#: js/blocks/PenBlocks.js:405 +#: js/turtleactions/DictActions.js:67 +#: js/turtleactions/DictActions.js:134 +#: js/turtleactions/DictActions.js:168 msgid "color" msgstr "" -#: js/PenBlocks.js:285 +#: js/blocks/PenBlocks.js:415 msgid "The Color block returns the current pen color." msgstr "" -#: js/PenBlocks.js:318 -#: js/DictActions.js:73 -#: js/DictActions.js:151 -#: js/DictActions.js:187 +#: js/blocks/PenBlocks.js:470 +#: js/turtleactions/DictActions.js:73 +#: js/turtleactions/DictActions.js:140 +#: js/turtleactions/DictActions.js:171 msgid "pen size" msgstr "" -#: js/PenBlocks.js:322 +#: js/blocks/PenBlocks.js:474 msgid "The Pen size block returns the current pen size value." msgstr "" -#: js/PenBlocks.js:355 +#: js/blocks/PenBlocks.js:513 msgid "set font" msgstr "" -#: js/PenBlocks.js:358 +#: js/blocks/PenBlocks.js:518 msgid "The Set font block sets the font used by the Show block." msgstr "" -#: js/PenBlocks.js:391 +#: js/blocks/PenBlocks.js:567 msgid "The Background block sets the window background color." msgstr "" -#: js/PenBlocks.js:408 +#: js/blocks/PenBlocks.js:598 msgid "The Hollow line block creates a line with a hollow center." msgstr "" -#: js/PenBlocks.js:415 +#: js/blocks/PenBlocks.js:606 #.TRANS: draw a line logo has a hollow space down its center msgid "hollow line" msgstr "" -#: js/PenBlocks.js:462 +#: js/blocks/PenBlocks.js:675 msgid "The Fill block fills in a shape with a color." msgstr "" -#: js/PenBlocks.js:470 +#: js/blocks/PenBlocks.js:684 #.TRANS: fill in as a solid color msgid "fill" msgstr "" -#: js/PenBlocks.js:527 +#: js/blocks/PenBlocks.js:761 #.TRANS: raise up the pen so logo it does not draw when it is moved msgid "pen up" msgstr "" -#: js/PenBlocks.js:532 +#: js/blocks/PenBlocks.js:768 msgid "The Pen-up block raises the pen so that it does not draw." msgstr "" -#: js/PenBlocks.js:552 +#: js/blocks/PenBlocks.js:802 #.TRANS: put down the pen so logo it draws when it is moved msgid "pen down" msgstr "" -#: js/PenBlocks.js:557 +#: js/blocks/PenBlocks.js:810 msgid "The Pen-down block lowers the pen so that it draws." msgstr "" -#: js/PenBlocks.js:577 +#: js/blocks/PenBlocks.js:844 #.TRANS: set the width of the line drawn by the pen msgid "set pen size" msgstr "" -#: js/PenBlocks.js:583 +#: js/blocks/PenBlocks.js:854 msgid "The Set-pen-size block changes the size of the pen." msgstr "" -#: js/PenBlocks.js:623 +#: js/blocks/PenBlocks.js:913 #.TRANS: set degree of translucence of the pen color msgid "set translucency" msgstr "" -#: js/PenBlocks.js:627 +#: js/blocks/PenBlocks.js:921 msgid "The Set translucency block changes the opacity of the pen." msgstr "" -#: js/PenBlocks.js:668 +#: js/blocks/PenBlocks.js:981 msgid "set hue" msgstr "" -#: js/PenBlocks.js:672 +#: js/blocks/PenBlocks.js:989 msgid "The Set hue block changes the color of the pen." msgstr "" -#: js/PenBlocks.js:711 +#: js/blocks/PenBlocks.js:1047 msgid "set shade" msgstr "" -#: js/PenBlocks.js:717 +#: js/blocks/PenBlocks.js:1057 msgid "The Set-shade block changes the pen color from dark to light." msgstr "" -#: js/PenBlocks.js:757 +#: js/blocks/PenBlocks.js:1111 #.TRANS: set the level of vividness of the pen color msgid "set grey" msgstr "" -#: js/PenBlocks.js:761 +#: js/blocks/PenBlocks.js:1119 msgid "The Set grey block changes the vividness of the pen color." msgstr "" -#: js/PenBlocks.js:800 +#: js/blocks/PenBlocks.js:1172 msgid "set color" msgstr "" -#: js/PenBlocks.js:806 +#: js/blocks/PenBlocks.js:1182 msgid "The Set-color block changes the pen color." msgstr "" -#: js/VolumeBlocks.js:35 -msgid "synth volume" -msgstr "" - -#: js/VolumeBlocks.js:39 -msgid "The Synth volume block returns the current volume of the current synthesizer." -msgstr "" - -#: js/VolumeBlocks.js:47 -#: js/musicutils.js:730 -#: js/synthutils.js:56 -#.TRANS: musical instrument -msgid "piano" -msgstr "" - -#: js/VolumeBlocks.js:105 -msgid "master volume" -msgstr "" - -#: js/VolumeBlocks.js:109 -msgid "The Master volume block returns the master volume." -msgstr "" - -#: js/VolumeBlocks.js:355 -#: js/VolumeBlocks.js:524 -msgid "set synth volume" -msgstr "" - -#: js/VolumeBlocks.js:362 -#: js/VolumeBlocks.js:545 -msgid "synth" -msgstr "" - -#: js/VolumeBlocks.js:403 -#: js/VolumeBlocks.js:577 -#: js/VolumeBlocks.js:740 -#: js/VolumeActions.js:173 -msgid "Setting volume to 0." -msgstr "" - -#: js/VolumeBlocks.js:440 -msgid "Synth not found" -msgstr "" - -#: js/VolumeBlocks.js:494 -msgid "set drum volume" -msgstr "" - -#: js/VolumeBlocks.js:530 -msgid "The Set synth volume block will change the volume of a particular synth," -msgstr "" - -#: js/VolumeBlocks.js:532 -msgid "eg guitar violin snare drum etc." -msgstr "" - -#: js/VolumeBlocks.js:534 -msgid "The default volume is 50." -msgstr "" - -#: js/VolumeBlocks.js:536 -msgid "The range is 0 for silence to 100 for full volume." -msgstr "" - -#: js/VolumeBlocks.js:597 -msgid "set panning" -msgstr "" - -#: js/VolumeBlocks.js:603 -msgid "The Set Panning block sets the panning for all synthesizers." -msgstr "" - -#: js/VolumeBlocks.js:625 -msgid "Warning: Sound is coming out from only the left or right side." -msgstr "" - -#: js/VolumeBlocks.js:647 -#: js/VolumeBlocks.js:695 -msgid "set master volume" -msgstr "" - -#: js/VolumeBlocks.js:653 -msgid "The Set master volume block sets the volume for all synthesizers." -msgstr "" - -#: js/VolumeBlocks.js:784 -msgid "The Set relative volume block changes the volume of the contained notes." -msgstr "" - -#: js/VolumeBlocks.js:791 -msgid "set relative volume" -msgstr "" - -#: js/VolumeBlocks.js:857 -msgid "decrescendo" -msgstr "" - -#: js/VolumeBlocks.js:921 -msgid "crescendo" -msgstr "" - -#: js/ToneBlocks.js:34 -msgid "oscillator" -msgstr "" - -#: js/ToneBlocks.js:44 -#: js/timbre.js:1562 -#.TRANS: Partials refers to the number of sine waves combined into the sound. -msgid "partials" -msgstr "" - -#: js/ToneBlocks.js:76 -msgid "You are adding multiple oscillator blocks." -msgstr "" - -#: js/ToneBlocks.js:144 -#: js/timbre.js:1225 -#.TRANS: a duo synthesizer combines a synth with a sequencer -msgid "duo synth" -msgstr "" - -#: js/ToneBlocks.js:149 -msgid "The Duo synth block is a duo-frequency modulator used to define a timbre." -msgstr "" - -#: js/ToneBlocks.js:157 -#: js/timbre.js:1476 -msgid "vibrato rate" -msgstr "" - -#: js/ToneBlocks.js:157 -msgid "vibrato intensity" -msgstr "" - -#: js/ToneBlocks.js:185 -#: js/timbre.js:1221 -#.TRANS: AM (amplitude modulation) synthesizer -msgid "AM synth" -msgstr "" - -#: js/ToneBlocks.js:189 -msgid "The AM synth block is an amplitude modulator used to define a timbre." -msgstr "" - -#: js/ToneBlocks.js:224 -#: js/timbre.js:1223 -#.TRANS: FM (frequency modulation) synthesizer -msgid "FM synth" -msgstr "" - -#: js/ToneBlocks.js:228 -msgid "The FM synth block is a frequency modulator used to define a timbre." +#: js/blocks/PitchBlocks.js:141 +#.TRANS: musical transposition (adjustment of pitch up or down) +msgid "transposition" msgstr "" -#: js/ToneBlocks.js:262 -msgid "partial" +#: js/blocks/PitchBlocks.js:168 +#.TRANS: step down one note in current musical scale +msgid "scalar step down" msgstr "" -#: js/ToneBlocks.js:265 -msgid "The Partial block is used to specify a weight for a specific partial harmonic." +#: js/blocks/PitchBlocks.js:172 +msgid "The Scalar step down block returns the number of semi-tones down to the previous note in the current key and mode." msgstr "" -#: js/ToneBlocks.js:284 -#.TRANS: partials are weighted components in a harmonic series -msgid "Partial weight must be between 0 and 1." +#: js/blocks/PitchBlocks.js:190 +#.TRANS: step up one note in current musical scale +msgid "scalar step up" msgstr "" -#: js/ToneBlocks.js:297 -#.TRANS: partials are weighted components in a harmonic series -msgid "Partial block should be used inside of a Weighted-partials block." +#: js/blocks/PitchBlocks.js:194 +msgid "The Scalar step up block returns the number of semi-tones up to the next note in the current key and mode." msgstr "" -#: js/ToneBlocks.js:325 -#.TRANS: partials are weighted components in a harmonic series -msgid "weighted partials" +#: js/blocks/PitchBlocks.js:212 +#.TRANS: the change measured in half-steps between the current pitch and the previous pitch +msgid "change in pitch" msgstr "" -#: js/ToneBlocks.js:383 -msgid "The Harmonic block will add harmonics to the contained notes." +#: js/blocks/PitchBlocks.js:216 +msgid "The Change in pitch block is the difference (in half steps) between the current pitch being played and the previous pitch played." msgstr "" -#: js/ToneBlocks.js:390 -#.TRANS: A harmonic is an overtone. -msgid "harmonic" +#: js/blocks/PitchBlocks.js:243 +#.TRANS: the change measured in scale-steps between the current pitch and the previous pitch +msgid "scalar change in pitch" msgstr "" -#: js/ToneBlocks.js:431 -msgid "The Distortion block adds distortion to the pitch." +#: js/blocks/PitchBlocks.js:250 +#: js/blocks/PitchBlocks.js:432 +#: js/blocks/PitchBlocks.js:1667 +#: js/turtleactions/DictActions.js:89 +#: js/widgets/temperament.js:610 +#: js/widgets/temperament.js:614 +#: js/widgets/temperament.js:855 +#.TRANS: convert current note to piano key (1-88) +#.TRANS: a mapping of pitch to the 88 piano keys +msgid "pitch number" msgstr "" -#: js/ToneBlocks.js:438 -#: js/timbre.js:2100 -#.TRANS: distortion is an alteration in the sound -msgid "distortion" +#: js/blocks/PitchBlocks.js:256 +msgid "The Pitch number block is the value of the pitch of the note currently being played." msgstr "" -#: js/ToneBlocks.js:487 -msgid "The Tremolo block adds a wavering effect." +#: js/blocks/PitchBlocks.js:329 +#: js/blocks/PitchBlocks.js:433 +#.TRANS: the current pitch expressed in Hertz +msgid "pitch in hertz" msgstr "" -#: js/ToneBlocks.js:495 -#: js/timbre.js:2092 -#.TRANS: a wavering effect in a musical tone -msgid "tremolo" +#: js/blocks/PitchBlocks.js:334 +msgid "The Pitch in Hertz block is the value in Hertz of the pitch of the note currently being played." msgstr "" -#: js/ToneBlocks.js:500 -#: js/ToneBlocks.js:569 -#: js/ToneBlocks.js:630 -#: js/ToneBlocks.js:689 -#: js/timbre.js:2134 -#: js/timbre.js:2222 -#: js/timbre.js:2317 -#: js/timbre.js:2419 -#.TRANS: rate at which tremolo wavers -msgid "rate" +#: js/blocks/PitchBlocks.js:367 +#: js/turtleactions/DictActions.js:87 +msgid "current pitch" msgstr "" -#: js/ToneBlocks.js:502 -#: js/ToneBlocks.js:630 -#: js/timbre.js:2137 -#: js/timbre.js:2328 -#.TRANS: amplitude of tremolo waver -msgid "depth" +#: js/blocks/PitchBlocks.js:373 +msgid "The Current Pitch block is used with the Pitch Converter block. In the example above, current pitch, sol 4, is displayed as 392 hertz." msgstr "" -#: js/ToneBlocks.js:559 -msgid "The Phaser block adds a sweeping sound." +#: js/blocks/PitchBlocks.js:410 +msgid "This block converts the pitch value of the last note played into different formats such as hertz, letter name, pitch number, et al." msgstr "" -#: js/ToneBlocks.js:566 -#: js/timbre.js:2098 -#.TRANS: alter the phase of the sound -msgid "phaser" +#: js/blocks/PitchBlocks.js:434 +msgid "alphabet" msgstr "" -#: js/ToneBlocks.js:569 -#: js/timbre.js:2422 -msgid "octaves" +#: js/blocks/PitchBlocks.js:436 +#.TRANS: Translate as "alphabet class" +msgid "letter class" msgstr "" -#: js/ToneBlocks.js:569 -#: js/timbre.js:2425 -msgid "base frequency" +#: js/blocks/PitchBlocks.js:437 +msgid "solfege class" msgstr "" -#: js/ToneBlocks.js:619 -msgid "The Chorus block adds a chorus effect." +#: js/blocks/PitchBlocks.js:438 +msgid "staff y" msgstr "" -#: js/ToneBlocks.js:627 -#: js/timbre.js:2096 -#.TRANS: musical effect to simulate a choral sound -msgid "chorus" +#: js/blocks/PitchBlocks.js:439 +msgid "solfege syllable" msgstr "" -#: js/ToneBlocks.js:630 -msgid "delay" +#: js/blocks/PitchBlocks.js:440 +msgid "pitch class" msgstr "" -#: js/ToneBlocks.js:678 -msgid "The Vibrato block adds a rapid, slight variation in pitch." +#: js/blocks/PitchBlocks.js:441 +msgid "scalar class" msgstr "" -#: js/ToneBlocks.js:686 -#: js/timbre.js:2094 -#.TRANS: a rapid, slight variation in pitch -msgid "vibrato" +#: js/blocks/PitchBlocks.js:443 +msgid "nth degree" msgstr "" -#: js/ToneBlocks.js:689 -#: js/timbre.js:2221 -msgid "intensity" +#: js/blocks/PitchBlocks.js:444 +msgid "pitch to shade" msgstr "" -#: js/ToneBlocks.js:733 -#.TRANS: select synthesizer -msgid "set synth" +#: js/blocks/PitchBlocks.js:445 +msgid "pitch to color" msgstr "" -#: js/ToneBlocks.js:804 -msgid "synth name" +#: js/blocks/PitchBlocks.js:629 +#: js/widgets/musickeyboard.js:735 +#.TRANS: MIDI is a technical standard for electronic music +msgid "MIDI" msgstr "" -#: js/ToneBlocks.js:842 -msgid "set default instrument" +#: js/blocks/PitchBlocks.js:642 +#.TRANS: set an offset associated with the numeric piano keyboard mapping +msgid "set pitch number offset" msgstr "" -#: js/ToneBlocks.js:895 -#: js/ToneBlocks.js:943 -#.TRANS: set the characteristics of a custom instrument -msgid "set instrument" +#: js/blocks/PitchBlocks.js:645 +msgid "The Set pitch number offset block is used to set the offset for mapping pitch numbers to pitch and octave." msgstr "" -#: js/ToneBlocks.js:898 -#: js/ToneBlocks.js:926 -#: js/ToneBlocks.js:932 -msgid "The Set instrument block selects a voice for the synthesizer," +#: js/blocks/PitchBlocks.js:679 +#.TRANS: convert piano key number (1-88) to pitch +msgid "number to pitch" msgstr "" -#: js/ToneBlocks.js:900 -#: js/ToneBlocks.js:934 -msgid "eg guitar piano violin or cello." +#: js/blocks/PitchBlocks.js:682 +msgid "The Number to pitch block will convert a pitch number to a pich name." msgstr "" -#: js/ToneBlocks.js:1015 -msgid "Import a sound file to use as an instrument and set its pitch center." +#: js/blocks/PitchBlocks.js:715 +#.TRANS: convert piano key number (1-88) to octave +msgid "number to octave" msgstr "" -#: js/ToneBlocks.js:1110 -msgid "Upload a sound file to connect with the sample block." +#: js/blocks/PitchBlocks.js:717 +msgid "The Number to octave block will convert a pitch number to an octave." msgstr "" -#: js/MeterBlocks.js:34 -#.TRANS: musical meter (time signature), e.g., 4:4 -msgid "current meter" +#: js/blocks/PitchBlocks.js:726 +msgid "y to pitch" msgstr "" -#: js/MeterBlocks.js:85 -#.TRANS: number of beats per minute -msgid "beat factor" +#: js/blocks/PitchBlocks.js:729 +msgid "Y to pitch block will convert a staff y position to corresponding pitch notation." msgstr "" -#: js/MeterBlocks.js:161 -msgid "The Beats per minute block returns the current beats per minute." +#: js/blocks/PitchBlocks.js:841 +msgid "accidental selector" msgstr "" -#: js/MeterBlocks.js:169 -#: js/status.js:152 -#.TRANS: number of beats played per minute -msgid "beats per minute2" +#: js/blocks/PitchBlocks.js:844 +msgid "The Accidental selector block is used to choose between double-sharp, sharp, natural, flat, and double-flat." msgstr "" -#: js/MeterBlocks.js:169 -#: js/MeterBlocks.js:1056 -#: js/MeterBlocks.js:1133 -#: js/MeterBlocks.js:1211 -#.TRANS: sets tempo by defining a beat and beats per minute -msgid "beats per minute" +#: js/blocks/PitchBlocks.js:858 +msgid "Pitch can be specified in terms of ni dha pa ma ga re sa." msgstr "" -#: js/MeterBlocks.js:233 -#.TRANS: count of current musical measure in meter -msgid "measure count" +#: js/blocks/PitchBlocks.js:872 +msgid "Pitch can be specified in terms of C D E F G A B." msgstr "" -#: js/MeterBlocks.js:241 -msgid "The Measure count block returns the current measure." +#: js/blocks/PitchBlocks.js:884 +msgid "solfege" msgstr "" -#: js/MeterBlocks.js:290 -#.TRANS: count of current beat in the meter -msgid "beat count" +#: js/blocks/PitchBlocks.js:887 +msgid "Pitch can be specified in terms of do re mi fa sol la ti." msgstr "" -#: js/MeterBlocks.js:300 -#: js/MeterBlocks.js:311 -#: js/MeterBlocks.js:565 -#: js/MeterBlocks.js:576 -msgid "The Beat count block is the number of the current beat," +#: js/blocks/PitchBlocks.js:922 +msgid "The Invert block rotates any contained notes around a target note." msgstr "" -#: js/MeterBlocks.js:313 -#: js/MeterBlocks.js:578 -msgid "eg 1, 2, 3, or 4." +#: js/blocks/PitchBlocks.js:929 +#.TRANS: pitch inversion rotates a pitch around another pitch +msgid "invert" msgstr "" -#: js/MeterBlocks.js:368 -#.TRANS: count the number of notes -msgid "sum note values" +#: js/blocks/PitchBlocks.js:968 +#.TRANS: pitch inversion rotates a pitch around another pitch (odd number) +msgid "invert (odd)" msgstr "" -#: js/MeterBlocks.js:376 -#: js/MeterBlocks.js:440 -msgid "The Note counter block can be used to count the number of contained notes." +#: js/blocks/PitchBlocks.js:1001 +#.TRANS: pitch inversion rotates a pitch around another pitch (even number) +msgid "invert (even)" msgstr "" -#: js/MeterBlocks.js:432 -#.TRANS: count the number of notes -msgid "note counter" +#: js/blocks/PitchBlocks.js:1022 +#.TRANS: register is the octave of the current pitch +msgid "register" msgstr "" -#: js/MeterBlocks.js:496 -#.TRANS: number of whole notes that have been played -msgid "whole notes played" +#: js/blocks/PitchBlocks.js:1026 +msgid "The Register block provides an easy way to modify the register (octave) of the notes that follow it." msgstr "" -#: js/MeterBlocks.js:505 -msgid "The Whole notes played block returns the total number of whole notes played." +#: js/blocks/PitchBlocks.js:1047 +#.TRANS: cents are units used to specify the ratio between pitches. There are 100 cents between successive notes. +msgid "50 cents" msgstr "" -#: js/MeterBlocks.js:555 -#: js/DictActions.js:83 -#.TRANS: number of notes that have been played -msgid "notes played" +#: js/blocks/PitchBlocks.js:1102 +msgid "The Semi-tone transposition block will shift the pitches contained inside Note blocks up (or down) by half steps." msgstr "" -#: js/MeterBlocks.js:653 -msgid "The No clock block decouples the notes from the master clock." +#: js/blocks/PitchBlocks.js:1104 +msgid "In the example shown above, sol is shifted up to sol#." msgstr "" -#: js/MeterBlocks.js:661 -#.TRANS: don't lock notes to master clock -msgid "no clock" +#: js/blocks/PitchBlocks.js:1110 +#.TRANS: adjust the amount of shift (up or down) of a pitch +msgid "semi-tone transpose" msgstr "" -#: js/MeterBlocks.js:700 -msgid "on weak beat do" +#: js/blocks/PitchBlocks.js:1143 +msgid "The Transpose by Ratio block will shift the pitches contained inside Note blocks up (or down) by a ratio" msgstr "" -#: js/MeterBlocks.js:705 -msgid "The On-weak-beat block lets you specify actions to take on weak (off) beats." +#: js/blocks/PitchBlocks.js:1149 +#.TRANS: adjust the amount of shift (up or down) of a pitch +msgid "transpose by ratio" msgstr "" -#: js/MeterBlocks.js:750 -msgid "on strong beat" +#: js/blocks/PitchBlocks.js:1232 +#.TRANS: down sixth means the note is five scale degrees below current note +msgid "down sixth" msgstr "" -#: js/MeterBlocks.js:758 -msgid "The On-strong-beat block lets you specify actions to take on specified beats." +#: js/blocks/PitchBlocks.js:1251 +#.TRANS: down third means the note is two scale degrees below current note +msgid "down third" msgstr "" -#: js/MeterBlocks.js:769 -msgid "beat" +#: js/blocks/PitchBlocks.js:1270 +#.TRANS: seventh means the note is the six scale degrees above current note +msgid "seventh" msgstr "" -#: js/MeterBlocks.js:813 -msgid "on every beat do" +#: js/blocks/PitchBlocks.js:1289 +#.TRANS: sixth means the note is the five scale degrees above current note +msgid "sixth" msgstr "" -#: js/MeterBlocks.js:821 -msgid "The On-every-beat block lets you specify actions to take on every beat." +#: js/blocks/PitchBlocks.js:1308 +#.TRANS: fifth means the note is the four scale degrees above current note +msgid "fifth" msgstr "" -#: js/MeterBlocks.js:874 -msgid "on every note do" +#: js/blocks/PitchBlocks.js:1328 +#.TRANS: fourth means the note is three scale degrees above current note +msgid "fourth" msgstr "" -#: js/MeterBlocks.js:882 -msgid "The On-every-note block lets you specify actions to take on every note." +#: js/blocks/PitchBlocks.js:1347 +#.TRANS: third means the note is two scale degrees above current note +msgid "third" msgstr "" -#: js/MeterBlocks.js:928 -#: js/MeterBlocks.js:999 -#.TRANS: sets tempo by defining a beat and beats per minute -msgid "master beats per minute" +#: js/blocks/PitchBlocks.js:1366 +#.TRANS: second means the note is one scale degree above current note +msgid "second" msgstr "" -#: js/MeterBlocks.js:952 -#: js/MeterBlocks.js:1078 -#: js/MeterBlocks.js:1135 -msgid "bpm" +#: js/blocks/PitchBlocks.js:1407 +msgid "The Scalar transposition block will shift the pitches contained inside Note blocks up (or down) the scale." msgstr "" -#: js/MeterBlocks.js:952 -#: js/MeterBlocks.js:1078 -#: js/MeterBlocks.js:1135 -msgid "beat value" +#: js/blocks/PitchBlocks.js:1409 +msgid "In the example shown above, sol is shifted up to la." msgstr "" -#: js/MeterBlocks.js:1024 -#: js/MeterBlocks.js:1167 -#: js/MeterBlocks.js:1241 -msgid "Beats per minute must be > 30." +#: js/blocks/PitchBlocks.js:1416 +#.TRANS: adjust the amount of shift (up or down) of a pitch by musical scale (scalar) steps +msgid "scalar transpose" msgstr "" -#: js/MeterBlocks.js:1027 -#: js/MeterBlocks.js:1170 -#: js/MeterBlocks.js:1244 -msgid "Maximum beats per minute is 1000." +#: js/blocks/PitchBlocks.js:1451 +msgid "The Accidental block is used to create sharps and flats" msgstr "" -#: js/MeterBlocks.js:1068 -msgid "The Beats per minute block sets the number of 1/4 notes per minute." +#: js/blocks/PitchBlocks.js:1458 +#.TRANS: An accidental is a modification to a pitch, e.g., sharp or flat. +msgid "accidental override" msgstr "" -#: js/MeterBlocks.js:1279 -#.TRANS: anacrusis -msgid "pickup" +#: js/blocks/PitchBlocks.js:1581 +msgid "The Hertz block (in combination with a Number block) will play a sound at the specified frequency." msgstr "" -#: js/MeterBlocks.js:1367 -msgid "number of beats" +#: js/blocks/PitchBlocks.js:1671 +msgid "The Pitch Number block will play a pitch associated by its number, e.g. 0 for C and 7 for G." msgstr "" -#: js/DictBlocks.js:77 -msgid "show dictionary" +#: js/blocks/PitchBlocks.js:1703 +#: js/blocks/PitchBlocks.js:1745 +#.TRANS: a numeric mapping of the notes in an octave based on the musical mode +#.TRANS: a numeric mapping of the notes in an octave based on the musical mode +msgid "nth modal pitch" msgstr "" -#: js/DictBlocks.js:129 -msgid "The Dictionary block returns a dictionary." +#: js/blocks/PitchBlocks.js:1706 +msgid "n^th Modal Pitch takes the pattern of pitches in semitones for a mode and makes each point a degree of the mode," msgstr "" -#: js/DictBlocks.js:197 -#: js/DictBlocks.js:339 -msgid "The Get-dict block returns a value in the dictionary for a specified key." +#: js/blocks/PitchBlocks.js:1708 +msgid "starting from 1 and regardless of tonal framework (i.e. not always 8 notes in the octave)" msgstr "" -#: js/DictBlocks.js:212 -#: js/DictBlocks.js:354 -#.TRANS: retrieve a value from the dictionary with a given key -msgid "get value" +#: js/blocks/PitchBlocks.js:1749 +msgid "N^th Modal Pitch takes a number as an input as the n^th degree for the given mode. 0 is the first position, 1 is the second, -1 is the note before the first etc." msgstr "" -#: js/DictBlocks.js:215 -#: js/DictBlocks.js:216 -#: js/DictBlocks.js:289 -#: js/DictBlocks.js:290 -#: js/DictBlocks.js:357 -#: js/DictBlocks.js:430 -#: js/DictBlocks.js:431 -msgid "key2" +#: js/blocks/PitchBlocks.js:1751 +msgid "The pitches change according to the mode specified without any need for respellings." msgstr "" -#: js/DictBlocks.js:271 -#: js/DictBlocks.js:411 -msgid "The Set-dict block sets a value in the dictionary for a specified key." +#: js/blocks/PitchBlocks.js:1790 +msgid "Scale Degree is a common convention in music. Scale Degree offers seven possible positions in the scale (1-7) and can be modified via accidentals." msgstr "" -#: js/DictBlocks.js:286 -#: js/DictBlocks.js:427 -#.TRANS: set a value in the dictionary for a given key -msgid "set value" +#: js/blocks/PitchBlocks.js:1792 +msgid "Scale Degree 1 is always the first pitch in a given scale, regardless of octave." msgstr "" -#: js/ExtrasBlocks.js:33 -msgid "fraction" +#: js/blocks/PitchBlocks.js:1814 +#.TRANS: step some number of notes in current musical scale +msgid "scalar step" msgstr "" -#: js/ExtrasBlocks.js:36 -msgid "Convert a float to a fraction" +#: js/blocks/PitchBlocks.js:1819 +msgid "The Scalar Step block (in combination with a Number block) will play the next pitch in a scale," msgstr "" -#: js/ExtrasBlocks.js:93 -msgid "save as ABC" +#: js/blocks/PitchBlocks.js:1821 +msgid "eg if the last note played was sol, Scalar Step 1 will play la." msgstr "" -#: js/ExtrasBlocks.js:96 -#: js/ExtrasBlocks.js:132 -#: js/ExtrasBlocks.js:168 -msgid "title" +#: js/blocks/PitchBlocks.js:1857 +msgid "The Pitch block specifies the pitch name and octave of a note that together determine the frequency of the note." msgstr "" -#: js/ExtrasBlocks.js:129 -msgid "save as Lilypond" +#: js/blocks/ProgramBlocks.js:33 +msgid "The Load-heap-from-app block loads the heap from a web page." msgstr "" -#: js/ExtrasBlocks.js:165 -msgid "save as SVG" +#: js/blocks/ProgramBlocks.js:44 +#.TRANS: load the heap contents from a URL +msgid "load heap from App" msgstr "" -#: js/ExtrasBlocks.js:216 -msgid "no background" +#: js/blocks/ProgramBlocks.js:95 +msgid "Error parsing JSON data:" msgstr "" -#: js/ExtrasBlocks.js:219 -msgid "The No background block eliminates the background from the saved SVG output." +#: js/blocks/ProgramBlocks.js:100 +msgid "404: Page not found" msgstr "" -#: js/ExtrasBlocks.js:247 -msgid "show blocks" +#: js/blocks/ProgramBlocks.js:133 +msgid "The Save-heap-to-app block saves the heap to a web page." msgstr "" -#: js/ExtrasBlocks.js:249 -msgid "The Show blocks block shows the blocks." +#: js/blocks/ProgramBlocks.js:144 +#.TRANS: save the heap contents to a URL +msgid "save heap to App" msgstr "" -#: js/ExtrasBlocks.js:274 -msgid "hide blocks" +#: js/blocks/ProgramBlocks.js:189 +msgid "Cannot find a valid heap for" msgstr "" -#: js/ExtrasBlocks.js:276 -msgid "The Hide blocks block hides the blocks." +#: js/blocks/ProgramBlocks.js:206 +msgid "The Load-heap block loads the heap from a file." msgstr "" -#: js/ExtrasBlocks.js:305 -#: js/ExtrasBlocks.js:335 -msgid "The Space block is used to add space between blocks." +#: js/blocks/ProgramBlocks.js:217 +#.TRANS: load the heap from a file +msgid "load heap" msgstr "" -#: js/ExtrasBlocks.js:373 -msgid "wait" +#: js/blocks/ProgramBlocks.js:270 +msgid "The file you selected does not contain a valid heap." msgstr "" -#: js/ExtrasBlocks.js:376 -msgid "The Wait block pauses the program for a specified number of seconds." +#: js/blocks/ProgramBlocks.js:275 +msgid "The loadHeap block needs a loadFile block." msgstr "" -#: js/ExtrasBlocks.js:430 -#: plugins/facebook.rtp:30 -msgid "comment" +#: js/blocks/ProgramBlocks.js:291 +msgid "The Set-heap block loads the heap." msgstr "" -#: js/ExtrasBlocks.js:466 -msgid "print" +#: js/blocks/ProgramBlocks.js:340 +msgid "The block you selected does not contain a valid heap." msgstr "" -#: js/ExtrasBlocks.js:473 -msgid "The Print block displays text at the top of the screen." +#: js/blocks/ProgramBlocks.js:343 +msgid "The Set heap block needs a heap." msgstr "" -#: js/ExtrasBlocks.js:579 -msgid "display grid" +#: js/blocks/ProgramBlocks.js:360 +msgid "The Load-dictionary block loads a dictionary from a file." msgstr "" -#: js/ExtrasBlocks.js:584 -msgid "The Display Grid Block changes the grid type" +#: js/blocks/ProgramBlocks.js:372 +#.TRANS: load a dictionary from a file +msgid "load dictionary" msgstr "" -#: js/ExtrasBlocks.js:686 -#: js/ExtrasBlocks.js:705 -#: js/ExtrasBlocks.js:728 -#: js/ExtrasBlocks.js:751 -#: js/ExtrasBlocks.js:769 -#: js/ExtrasBlocks.js:788 -#: js/ExtrasBlocks.js:807 -#: js/ExtrasBlocks.js:826 -msgid "unknown" +#: js/blocks/ProgramBlocks.js:390 +#: js/blocks/ProgramBlocks.js:658 +#: js/blocks/ToneBlocks.js:1025 +msgid "file" msgstr "" -#: js/SensorsBlocks.js:36 -msgid "The Input block prompts for keyboard input." +#: js/blocks/ProgramBlocks.js:444 +msgid "The file you selected does not contain a valid dictionary." msgstr "" -#: js/SensorsBlocks.js:46 -msgid "input" +#: js/blocks/ProgramBlocks.js:449 +msgid "The load dictionary block needs a load file block." msgstr "" -#: js/SensorsBlocks.js:64 -msgid "Input a value" +#: js/blocks/ProgramBlocks.js:466 +msgid "The Set-dictionary block loads a dictionary." msgstr "" -#: js/SensorsBlocks.js:126 -msgid "input value" +#: js/blocks/ProgramBlocks.js:477 +#.TRANS: load a dictionary from a JSON +msgid "set dictionary" msgstr "" -#: js/SensorsBlocks.js:131 -msgid "The Input-value block stores the input." +#: js/blocks/ProgramBlocks.js:546 +msgid "The block you selected does not contain a valid dictionary." msgstr "" -#: js/SensorsBlocks.js:238 -msgid "loudness" +#: js/blocks/ProgramBlocks.js:550 +msgid "The set dictionary block needs a dictionary." msgstr "" -#: js/SensorsBlocks.js:245 -msgid "The Loudness block returns the volume detected by the microphone." +#: js/blocks/ProgramBlocks.js:567 +msgid "The Save-heap block saves the heap to a file." msgstr "" -#: js/SensorsBlocks.js:300 -msgid "click" +#: js/blocks/ProgramBlocks.js:578 +#.TRANS: save the heap to a file +msgid "save heap" msgstr "" -#: js/SensorsBlocks.js:306 -msgid "The Click block triggers an event if a mouse has been clicked." +#: js/blocks/ProgramBlocks.js:629 +msgid "The Save-dictionary block saves a dictionary to a file." msgstr "" -#: js/SensorsBlocks.js:313 -msgid "The Click block triggers an event if a turtle has been clicked." +#: js/blocks/ProgramBlocks.js:640 +#.TRANS: save a dictionary to a file +msgid "save dictionary" msgstr "" -#: js/SensorsBlocks.js:342 -msgid "cursor over" +#: js/blocks/ProgramBlocks.js:720 +msgid "The Open palette block opens a palette." msgstr "" -#: js/SensorsBlocks.js:387 -msgid "cursor out" +#: js/blocks/ProgramBlocks.js:727 +msgid "open palette" msgstr "" -#: js/SensorsBlocks.js:433 -msgid "cursor button down" +#: js/blocks/ProgramBlocks.js:785 +msgid "The Delete block block removes a block." msgstr "" -#: js/SensorsBlocks.js:477 -msgid "cursor button up" +#: js/blocks/ProgramBlocks.js:797 +#.TRANS: Move this block to the trash. +msgid "delete block" msgstr "" -#: js/SensorsBlocks.js:638 -msgid "The Get red block returns the red component of the pixel under the mouse." +#: js/blocks/ProgramBlocks.js:861 +msgid "The Move block block moves a block." msgstr "" -#: js/SensorsBlocks.js:644 -msgid "The Get red block returns the red component of the pixel under the turtle." +#: js/blocks/ProgramBlocks.js:869 +#.TRANS: Move the position of a block on the screen. +msgid "move block" msgstr "" -#: js/SensorsBlocks.js:685 -#: plugins/rodi.rtp:216 -msgid "pixel color" +#: js/blocks/ProgramBlocks.js:881 +#: js/blocks/ProgramBlocks.js:1048 +msgid "block number" msgstr "" -#: js/SensorsBlocks.js:690 -msgid "The Get pixel block returns the color of the pixel under the mouse." +#: js/blocks/ProgramBlocks.js:935 +#.TRANS: Run program beginning at this block. +msgid "run block" msgstr "" -#: js/SensorsBlocks.js:696 -msgid "The Get pixel block returns the color of the pixel under the turtle." +#: js/blocks/ProgramBlocks.js:1025 +msgid "The Dock block block connections two blocks." msgstr "" -#: js/SensorsBlocks.js:758 -msgid "time" +#: js/blocks/ProgramBlocks.js:1036 +#.TRANS: We can connect a block to another block. +msgid "connect blocks" msgstr "" -#: js/SensorsBlocks.js:804 -msgid "cursor y" +#: js/blocks/ProgramBlocks.js:1048 +msgid "target block" msgstr "" -#: js/SensorsBlocks.js:809 -msgid "The Cursor Y block returns the vertical position of the mouse." +#: js/blocks/ProgramBlocks.js:1048 +msgid "connection number" msgstr "" -#: js/SensorsBlocks.js:845 -msgid "cursor x" +#: js/blocks/ProgramBlocks.js:1140 +msgid "The Make block block creates a new block." msgstr "" -#: js/SensorsBlocks.js:850 -msgid "The Cursor X block returns the horizontal position of the mouse." +#: js/blocks/ProgramBlocks.js:1152 +#.TRANS: Create a new block +msgid "make block" msgstr "" -#: js/SensorsBlocks.js:886 -msgid "mouse button" +#: js/blocks/ProgramBlocks.js:1285 +msgid "Cannot find block" msgstr "" -#: js/SensorsBlocks.js:888 -msgid "The Mouse-button block returns True if the mouse button is pressed." +#: js/blocks/ProgramBlocks.js:1304 +#: js/blocks/ProgramBlocks.js:1313 +msgid "Warning: block argument type mismatch" msgstr "" -#: js/SensorsBlocks.js:934 -msgid "to ASCII" +#: js/blocks/ProgramBlocks.js:1347 +msgid "The Open project block is used to open a project from a web page." msgstr "" -#: js/SensorsBlocks.js:938 -msgid "The To ASCII block converts numbers to letters." +#: js/blocks/ProgramBlocks.js:1357 +msgid "open project" msgstr "" -#: js/SensorsBlocks.js:1005 -msgid "The Keyboard block returns computer keyboard input." +#: js/blocks/ProgramBlocks.js:1410 +msgid "Please enter a valid URL." msgstr "" -#: js/IntervalsActions.js:216 -msgid "Adding missing pitch number 0." +#: js/blocks/ToneBlocks.js:34 +msgid "oscillator" msgstr "" -#: js/IntervalsActions.js:224 -msgid "Ignoring pitch numbers less than zero or greater than eleven." +#: js/blocks/ToneBlocks.js:42 +#: js/blocks/WidgetBlocks.js:179 +#: js/widgets/timbre.js:1558 +#: js/widgets/timbre.js:1808 +#.TRANS: there are different types (sine, triangle, square...) of oscillators. +#.TRANS: type of filter, e.g., lowpass, highpass, etc. +msgid "type" msgstr "" -#: js/IntervalsActions.js:230 -msgid "Ignoring duplicate pitch numbers." +#: js/blocks/ToneBlocks.js:44 +#: js/widgets/timbre.js:1562 +#.TRANS: Partials refers to the number of sine waves combined into the sound. +msgid "partials" msgstr "" -#: js/PitchActions.js:88 -msgid "The Scalar Step Block must be used inside of a Note Block." +#: js/blocks/ToneBlocks.js:76 +msgid "You are adding multiple oscillator blocks." msgstr "" -#: js/PitchActions.js:107 -msgid "The Scalar Step Block must be preceded by a Pitch Block." +#: js/blocks/ToneBlocks.js:144 +#: js/widgets/timbre.js:1225 +#.TRANS: a duo synthesizer combines a synth with a sequencer +msgid "duo synth" msgstr "" -#: js/DrumActions.js:231 -msgid "Noise Block: Did you mean to use a Note block?" +#: js/blocks/ToneBlocks.js:149 +msgid "The Duo synth block is a duo-frequency modulator used to define a timbre." msgstr "" -#: js/MeterActions.js:101 -#: js/MeterActions.js:139 -msgid "beats per minute must be greater than" +#: js/blocks/ToneBlocks.js:157 +#: js/widgets/timbre.js:1476 +msgid "vibrato rate" msgstr "" -#: js/MeterActions.js:111 -#: js/MeterActions.js:149 -msgid "maximum" +#: js/blocks/ToneBlocks.js:157 +msgid "vibrato intensity" msgstr "" -#: js/MeterActions.js:117 -#: js/MeterActions.js:155 -msgid "beats per minute is" +#: js/blocks/ToneBlocks.js:185 +#: js/widgets/timbre.js:1221 +#.TRANS: AM (amplitude modulation) synthesizer +msgid "AM synth" msgstr "" -#: js/ToneActions.js:134 -msgid "Vibrato intensity must be between 1 and 100." +#: js/blocks/ToneBlocks.js:189 +msgid "The AM synth block is an amplitude modulator used to define a timbre." msgstr "" -#: js/ToneActions.js:139 -msgid "Vibrato rate must be greater than 0." +#: js/blocks/ToneBlocks.js:224 +#: js/widgets/timbre.js:1223 +#.TRANS: FM (frequency modulation) synthesizer +msgid "FM synth" msgstr "" -#: js/ToneActions.js:192 -#: js/ToneActions.js:265 -#.TRANS: Depth is the intesity of the tremolo or chorus effect. -msgid "Depth is out of range." +#: js/blocks/ToneBlocks.js:228 +msgid "The FM synth block is a frequency modulator used to define a timbre." msgstr "" -#: js/ToneActions.js:301 -msgid "Distortion must be from 0 to 100." +#: js/blocks/ToneBlocks.js:262 +msgid "partial" msgstr "" -#: js/ToneActions.js:332 -#.TRANS: partials components in a harmonic series -msgid "Partial must be greater than or equal to 0." +#: js/blocks/ToneBlocks.js:265 +msgid "The Partial block is used to specify a weight for a specific partial harmonic." msgstr "" -#: js/ToneActions.js:378 -#: js/ToneActions.js:417 -#: js/ToneActions.js:456 -#: js/timbre.js:782 -msgid "Unable to use synth due to existing oscillator" +#: js/blocks/ToneBlocks.js:284 +#.TRANS: partials are weighted components in a harmonic series +msgid "Partial weight must be between 0 and 1." msgstr "" -#: js/ToneActions.js:388 -#: js/ToneActions.js:427 -msgid "The input cannot be negative." +#: js/blocks/ToneBlocks.js:297 +#.TRANS: partials are weighted components in a harmonic series +msgid "Partial block should be used inside of a Weighted-partials block." msgstr "" -#: js/DictActions.js:75 -#: js/DictActions.js:153 -#: js/DictActions.js:188 -msgid "font" +#: js/blocks/ToneBlocks.js:325 +#.TRANS: partials are weighted components in a harmonic series +msgid "weighted partials" msgstr "" -#: js/musicutils.js:363 -#: js/musicutils.js:471 -#: js/pitchdrummatrix.js:151 -#: js/musickeyboard.js:2563 -msgid "rest" +#: js/blocks/ToneBlocks.js:383 +msgid "The Harmonic block will add harmonics to the contained notes." msgstr "" -#: js/musicutils.js:565 -#.TRANS: ordinal number. Please keep exactly one space between each number. -msgid "1st 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th" +#: js/blocks/ToneBlocks.js:390 +#.TRANS: A harmonic is an overtone. +msgid "harmonic" msgstr "" -#: js/musicutils.js:629 -#: js/musicutils.js:812 -#: js/musicutils.js:911 -#.TRANS: augmented is a music term related to intervals -msgid "augmented" +#: js/blocks/ToneBlocks.js:431 +msgid "The Distortion block adds distortion to the pitch." msgstr "" -#: js/musicutils.js:631 -#: js/musicutils.js:813 -#: js/musicutils.js:910 -#.TRANS: diminished is a music term related to intervals and mode -msgid "diminished" +#: js/blocks/ToneBlocks.js:438 +#: js/widgets/timbre.js:2100 +#.TRANS: distortion is an alteration in the sound +msgid "distortion" msgstr "" -#: js/musicutils.js:639 -#.TRANS: twelve semi-tone scale for music -msgid "chromatic" +#: js/blocks/ToneBlocks.js:487 +msgid "The Tremolo block adds a wavering effect." msgstr "" -#: js/musicutils.js:640 -msgid "algerian" +#: js/blocks/ToneBlocks.js:495 +#: js/widgets/timbre.js:2092 +#.TRANS: a wavering effect in a musical tone +msgid "tremolo" msgstr "" -#: js/musicutils.js:641 -msgid "spanish" +#: js/blocks/ToneBlocks.js:500 +#: js/blocks/ToneBlocks.js:569 +#: js/blocks/ToneBlocks.js:630 +#: js/blocks/ToneBlocks.js:689 +#: js/widgets/timbre.js:2134 +#: js/widgets/timbre.js:2222 +#: js/widgets/timbre.js:2317 +#: js/widgets/timbre.js:2419 +#.TRANS: rate at which tremolo wavers +msgid "rate" msgstr "" -#: js/musicutils.js:643 -#.TRANS: modal scale in music -msgid "octatonic" +#: js/blocks/ToneBlocks.js:502 +#: js/blocks/ToneBlocks.js:630 +#: js/widgets/timbre.js:2137 +#: js/widgets/timbre.js:2328 +#.TRANS: amplitude of tremolo waver +msgid "depth" msgstr "" -#: js/musicutils.js:645 -#.TRANS: harmonic major scale in music -msgid "harmonic major" +#: js/blocks/ToneBlocks.js:559 +msgid "The Phaser block adds a sweeping sound." msgstr "" -#: js/musicutils.js:647 -#.TRANS: natural minor scales in music -msgid "natural minor" +#: js/blocks/ToneBlocks.js:566 +#: js/widgets/timbre.js:2098 +#.TRANS: alter the phase of the sound +msgid "phaser" msgstr "" -#: js/musicutils.js:649 -#.TRANS: harmonic minor scale in music -msgid "harmonic minor" +#: js/blocks/ToneBlocks.js:569 +#: js/turtleactions/IntervalsActions.js:114 +#: js/widgets/timbre.js:2422 +msgid "octaves" msgstr "" -#: js/musicutils.js:651 -#.TRANS: melodic minor scale in music -msgid "melodic minor" +#: js/blocks/ToneBlocks.js:569 +#: js/widgets/timbre.js:2425 +msgid "base frequency" msgstr "" -#: js/musicutils.js:655 -#.TRANS: modal scale for music -msgid "dorian" +#: js/blocks/ToneBlocks.js:619 +msgid "The Chorus block adds a chorus effect." msgstr "" -#: js/musicutils.js:657 -#.TRANS: modal scale for music -msgid "phrygian" +#: js/blocks/ToneBlocks.js:627 +#: js/widgets/timbre.js:2096 +#.TRANS: musical effect to simulate a choral sound +msgid "chorus" msgstr "" -#: js/musicutils.js:659 -#.TRANS: modal scale for music -msgid "lydian" +#: js/blocks/ToneBlocks.js:630 +msgid "delay" msgstr "" -#: js/musicutils.js:661 -#.TRANS: modal scale for music -msgid "mixolydian" +#: js/blocks/ToneBlocks.js:678 +msgid "The Vibrato block adds a rapid, slight variation in pitch." msgstr "" -#: js/musicutils.js:665 -#.TRANS: modal scale for music -msgid "locrian" +#: js/blocks/ToneBlocks.js:686 +#: js/widgets/timbre.js:2094 +#.TRANS: a rapid, slight variation in pitch +msgid "vibrato" msgstr "" -#: js/musicutils.js:667 -#.TRANS: minor jazz scale for music -msgid "jazz minor" +#: js/blocks/ToneBlocks.js:689 +#: js/widgets/timbre.js:2221 +msgid "intensity" msgstr "" -#: js/musicutils.js:669 -#.TRANS: bebop scale for music -msgid "bebop" +#: js/blocks/ToneBlocks.js:733 +#.TRANS: select synthesizer +msgid "set synth" msgstr "" -#: js/musicutils.js:670 -msgid "arabic" +#: js/blocks/ToneBlocks.js:804 +msgid "synth name" msgstr "" -#: js/musicutils.js:671 -msgid "byzantine" +#: js/blocks/ToneBlocks.js:842 +msgid "set default instrument" msgstr "" -#: js/musicutils.js:673 -#.TRANS: musical scale for music by Verdi -msgid "enigmatic" +#: js/blocks/ToneBlocks.js:895 +#: js/blocks/ToneBlocks.js:943 +#.TRANS: set the characteristics of a custom instrument +msgid "set instrument" msgstr "" -#: js/musicutils.js:674 -msgid "ethiopian" +#: js/blocks/ToneBlocks.js:898 +#: js/blocks/ToneBlocks.js:926 +#: js/blocks/ToneBlocks.js:932 +msgid "The Set instrument block selects a voice for the synthesizer," msgstr "" -#: js/musicutils.js:676 -#.TRANS: Ethiopic scale for music -msgid "geez" +#: js/blocks/ToneBlocks.js:900 +#: js/blocks/ToneBlocks.js:934 +msgid "eg guitar piano violin or cello." msgstr "" -#: js/musicutils.js:677 -msgid "hindu" +#: js/blocks/ToneBlocks.js:1015 +msgid "Import a sound file to use as an instrument and set its pitch center." msgstr "" -#: js/musicutils.js:678 -msgid "hungarian" +#: js/blocks/ToneBlocks.js:1110 +msgid "Upload a sound file to connect with the sample block." msgstr "" -#: js/musicutils.js:680 -#.TRANS: minor Romanian scale for music -msgid "romanian minor" +#: js/blocks/VolumeBlocks.js:35 +msgid "synth volume" msgstr "" -#: js/musicutils.js:681 -msgid "spanish gypsy" +#: js/blocks/VolumeBlocks.js:39 +msgid "The Synth volume block returns the current volume of the current synthesizer." msgstr "" -#: js/musicutils.js:683 -#.TRANS: musical scale for Mid-Eastern music -msgid "maqam" +#: js/blocks/VolumeBlocks.js:105 +msgid "master volume" msgstr "" -#: js/musicutils.js:685 -#.TRANS: minor blues scale for music -msgid "minor blues" +#: js/blocks/VolumeBlocks.js:109 +msgid "The Master volume block returns the master volume." msgstr "" -#: js/musicutils.js:687 -#.TRANS: major blues scale for music -msgid "major blues" +#: js/blocks/VolumeBlocks.js:355 +#: js/blocks/VolumeBlocks.js:524 +msgid "set synth volume" msgstr "" -#: js/musicutils.js:688 -msgid "whole tone" +#: js/blocks/VolumeBlocks.js:362 +#: js/blocks/VolumeBlocks.js:545 +msgid "synth" msgstr "" -#: js/musicutils.js:690 -#.TRANS: pentatonic is a general term that means "five note scale". This scale is typically known as "minor pentatonic" -msgid "minor pentatonic" +#: js/blocks/VolumeBlocks.js:403 +#: js/blocks/VolumeBlocks.js:577 +#: js/blocks/VolumeBlocks.js:740 +#: js/turtleactions/VolumeActions.js:173 +msgid "Setting volume to 0." msgstr "" -#: js/musicutils.js:692 -#.TRANS: pentatonic is a general term that means "five note scale". This scale is typically known as "major pentatonic" -msgid "major pentatonic" +#: js/blocks/VolumeBlocks.js:440 +msgid "Synth not found" msgstr "" -#: js/musicutils.js:693 -msgid "chinese" +#: js/blocks/VolumeBlocks.js:494 +msgid "set drum volume" msgstr "" -#: js/musicutils.js:694 -msgid "egyptian" +#: js/blocks/VolumeBlocks.js:530 +msgid "The Set synth volume block will change the volume of a particular synth," msgstr "" -#: js/musicutils.js:696 -#.TRANS: https://en.wikipedia.org/wiki/Hirajoshi_scale NOTE: There are three different versions of this scale -msgid "hirajoshi" +#: js/blocks/VolumeBlocks.js:532 +msgid "eg guitar violin snare drum etc." msgstr "" -#: js/musicutils.js:697 -msgid "Japan" +#: js/blocks/VolumeBlocks.js:534 +msgid "The default volume is 50." msgstr "" -#: js/musicutils.js:699 -#.TRANS: https://en.wikipedia.org/wiki/In_scale and https://en.wikipedia.org/wiki/Sakura_Sakura -msgid "in" +#: js/blocks/VolumeBlocks.js:536 +msgid "The range is 0 for silence to 100 for full volume." msgstr "" -#: js/musicutils.js:701 -#.TRANS: https://en.wikipedia.org/wiki/Miny%C5%8D_scale -msgid "minyo" +#: js/blocks/VolumeBlocks.js:597 +msgid "set panning" msgstr "" -#: js/musicutils.js:703 -#.TRANS: Italian mathematician -msgid "fibonacci" +#: js/blocks/VolumeBlocks.js:603 +msgid "The Set Panning block sets the panning for all synthesizers." msgstr "" -#: js/musicutils.js:708 -#: js/musicutils.js:1106 -#.TRANS: lowpass filter -msgid "lowpass" +#: js/blocks/VolumeBlocks.js:625 +msgid "Warning: Sound is coming out from only the left or right side." msgstr "" -#: js/musicutils.js:710 -#: js/musicutils.js:1107 -#.TRANS: bandpass filter -msgid "bandpass" +#: js/blocks/VolumeBlocks.js:647 +#: js/blocks/VolumeBlocks.js:695 +msgid "set master volume" msgstr "" -#: js/musicutils.js:712 -#: js/musicutils.js:1108 -#.TRANS: high-shelf filter -msgid "highshelf" +#: js/blocks/VolumeBlocks.js:653 +msgid "The Set master volume block sets the volume for all synthesizers." msgstr "" -#: js/musicutils.js:714 -#: js/musicutils.js:1109 -#.TRANS: low-shelf filter -msgid "lowshelf" +#: js/blocks/VolumeBlocks.js:784 +msgid "The Set relative volume block changes the volume of the contained notes." msgstr "" -#: js/musicutils.js:716 -#: js/musicutils.js:1110 -#.TRANS: notch-shelf filter -msgid "notch" +#: js/blocks/VolumeBlocks.js:791 +msgid "set relative volume" msgstr "" -#: js/musicutils.js:718 -#: js/musicutils.js:1111 -#.TRANS: all-pass filter -msgid "allpass" +#: js/blocks/VolumeBlocks.js:857 +msgid "decrescendo" msgstr "" -#: js/musicutils.js:720 -#: js/musicutils.js:1112 -#.TRANS: peaking filter -msgid "peaking" +#: js/blocks/VolumeBlocks.js:921 +msgid "crescendo" msgstr "" -#: js/musicutils.js:731 -#: js/synthutils.js:58 -#.TRANS: musical instrument -msgid "violin" +#: js/blocks/WidgetBlocks.js:81 +#.TRANS: sound envelope (ADSR) +msgid "envelope" msgstr "" -#: js/musicutils.js:732 -#: js/synthutils.js:60 -#.TRANS: viola musical instrument -msgid "viola" +#: js/blocks/WidgetBlocks.js:89 +#.TRANS: Attack time is the time taken for initial run-up of level from nil to peak, beginning when the key is first pressed. +msgid "attack" msgstr "" -#: js/musicutils.js:733 -#: js/synthutils.js:98 -#.TRANS: xylophone musical instrument -msgid "xylophone" +#: js/blocks/WidgetBlocks.js:91 +#.TRANS: Decay time is the time taken for the subsequent run down from the attack level to the designated sustain level. +msgid "decay" msgstr "" -#: js/musicutils.js:734 -#: js/synthutils.js:120 -#.TRANS: vibraphone musical instrument -msgid "vibraphone" +#: js/blocks/WidgetBlocks.js:93 +#.TRANS: Sustain level is the level during the main sequence of the sound's duration, until the key is released. +msgid "sustain" msgstr "" -#: js/musicutils.js:735 -#: js/synthutils.js:62 -#.TRANS: musical instrument -msgid "cello" +#: js/blocks/WidgetBlocks.js:95 +#.TRANS: Release time is the time taken for the level to decay from the sustain level to zero after the key is released. +msgid "release" msgstr "" -#: js/musicutils.js:737 -#: js/synthutils.js:66 -#.TRANS: viola musical instrument -msgid "double bass" +#: js/blocks/WidgetBlocks.js:113 +msgid "Attack value should be from 0 to 100." msgstr "" -#: js/musicutils.js:738 -#: js/synthutils.js:68 -#: js/rhythmruler.js:2119 -#.TRANS: musical instrument -msgid "guitar" +#: js/blocks/WidgetBlocks.js:116 +msgid "Decay value should be from 0 to 100." msgstr "" -#: js/musicutils.js:739 -#: js/synthutils.js:70 -#.TRANS: musical instrument -msgid "acoustic guitar" +#: js/blocks/WidgetBlocks.js:119 +msgid "Sustain value should be from 0 to 100." msgstr "" -#: js/musicutils.js:740 -#: js/synthutils.js:72 -#.TRANS: musical instrument -msgid "flute" +#: js/blocks/WidgetBlocks.js:122 +msgid "Release value should be from 0-100." msgstr "" -#: js/musicutils.js:741 -#: js/synthutils.js:74 -#.TRANS: musical instrument -msgid "clarinet" +#: js/blocks/WidgetBlocks.js:140 +msgid "You are adding multiple envelope blocks." msgstr "" -#: js/musicutils.js:742 -#: js/synthutils.js:76 -#.TRANS: musical instrument -msgid "saxophone" +#: js/blocks/WidgetBlocks.js:171 +#.TRANS: a filter removes some unwanted components from a signal +msgid "filter" msgstr "" -#: js/musicutils.js:743 -#: js/synthutils.js:78 -#.TRANS: musical instrument -msgid "tuba" +#: js/blocks/WidgetBlocks.js:181 +#: js/widgets/timbre.js:1818 +#.TRANS: rolloff is the steepness of a change in frequency. +msgid "rolloff" msgstr "" -#: js/musicutils.js:744 -#: js/synthutils.js:80 -#.TRANS: musical instrument -msgid "trumpet" +#: js/blocks/WidgetBlocks.js:213 +#.TRANS: rolloff is the steepness of a change in frequency. +msgid "Rolloff value should be either -12, -24, -48, or -96 decibels/octave." msgstr "" -#: js/musicutils.js:745 -#: js/synthutils.js:82 -#.TRANS: musical instrument -msgid "oboe" +#: js/blocks/WidgetBlocks.js:252 +msgid "The Temperament tool is used to define custom tuning." msgstr "" -#: js/musicutils.js:746 -#: js/synthutils.js:84 -#.TRANS: musical instrument -msgid "trombone" +#: js/blocks/WidgetBlocks.js:332 +#: js/blocks/WidgetBlocks.js:1573 +#: js/widgets/sampler.js:547 +msgid "Upload a sample and adjust its pitch center." msgstr "" -#: js/musicutils.js:747 -#: js/synthutils.js:100 -#.TRANS: polytone synthesizer -msgid "electronic synth" +#: js/blocks/WidgetBlocks.js:339 +#.TRANS: the speed at music is should be played. +msgid "sampler" msgstr "" -#: js/musicutils.js:748 -#: js/synthutils.js:102 -#.TRANS: simple monotone synthesizer -msgid "simple 1" +#: js/blocks/WidgetBlocks.js:517 +msgid "The Meter block opens a tool to select strong beats for the meter." msgstr "" -#: js/musicutils.js:749 -msgid "simple 2" +#: js/blocks/WidgetBlocks.js:573 +msgid "The oscilloscope block opens a tool to visualize waveforms." msgstr "" -#: js/musicutils.js:750 -msgid "simple 3" +#: js/blocks/WidgetBlocks.js:578 +msgid "oscilloscope" msgstr "" -#: js/musicutils.js:751 -msgid "simple 4" +#: js/blocks/WidgetBlocks.js:645 +msgid "The Custom mode block opens a tool to explore musical mode (the spacing of the notes in a scale)." msgstr "" -#: js/musicutils.js:753 -#: js/synthutils.js:49 -#.TRANS: brown noise synthesizer -msgid "brown noise" +#: js/blocks/WidgetBlocks.js:651 +#.TRANS: musical mode is the pattern of half-steps in an octave, e.g., Major or Minor modes +msgid "custom mode" msgstr "" -#: js/musicutils.js:754 -#: js/synthutils.js:51 -#.TRANS: pink noise synthesizer -msgid "pink noise" +#: js/blocks/WidgetBlocks.js:700 +msgid "The Tempo block opens a metronome to visualize the beat." msgstr "" -#: js/musicutils.js:756 -#: js/synthutils.js:127 -#: js/rhythmruler.js:1670 -#: js/rhythmruler.js:1928 -#.TRANS: musical instrument -msgid "snare drum" +#: js/blocks/WidgetBlocks.js:762 +msgid "The Arpeggio Widget is used to compose chord sequences." msgstr "" -#: js/musicutils.js:757 -#: js/synthutils.js:129 -#.TRANS: musical instrument -msgid "kick drum" +#: js/blocks/WidgetBlocks.js:837 +msgid "The Pitch drum matrix is used to map pitches to drum sounds." msgstr "" -#: js/musicutils.js:758 -#: js/synthutils.js:131 -#.TRANS: musical instrument -msgid "tom tom" +#: js/blocks/WidgetBlocks.js:842 +#.TRANS: makes a mapping between pitches and drum sounds +msgid "pitch-drum mapper" msgstr "" -#: js/musicutils.js:759 -#: js/synthutils.js:133 -#.TRANS: musical instrument -msgid "floor tom" +#: js/blocks/WidgetBlocks.js:891 +msgid "You must have at least one pitch block and one drum block in the matrix." msgstr "" -#: js/musicutils.js:760 -#: js/synthutils.js:135 -#.TRANS: musical instrument -msgid "bass drum" +#: js/blocks/WidgetBlocks.js:920 +msgid "The Pitch slider tool to is used to generate pitches at selected frequencies." msgstr "" -#: js/musicutils.js:761 -#: js/synthutils.js:137 -#.TRANS: a drum made from an inverted cup -msgid "cup drum" +#: js/blocks/WidgetBlocks.js:925 +#.TRANS: widget to generate pitches using a slider +msgid "pitch slider" msgstr "" -#: js/musicutils.js:762 -#: js/synthutils.js:139 -#.TRANS: musical instrument -msgid "darbuka drum" +#: js/blocks/WidgetBlocks.js:977 +msgid "chromatic keyboard" msgstr "" -#: js/musicutils.js:763 -#: js/synthutils.js:143 -#.TRANS: musical instrument -msgid "hi hat" +#: js/blocks/WidgetBlocks.js:1011 +#: js/blocks/WidgetBlocks.js:1077 +#.TRANS: widget to generate pitches using a slider +msgid "music keyboard" msgstr "" -#: js/musicutils.js:764 -#: js/synthutils.js:145 -#.TRANS: a small metal bell -msgid "ride bell" +#: js/blocks/WidgetBlocks.js:1062 +#: js/blocks/WidgetBlocks.js:1069 +msgid "The Music keyboard block opens a piano keyboard that can be used to create notes." msgstr "" -#: js/musicutils.js:765 -#: js/synthutils.js:147 -#.TRANS: musical instrument -msgid "cow bell" +#: js/blocks/WidgetBlocks.js:1128 +msgid "The Pitch staircase tool to is used to generate pitches from a given ratio." msgstr "" -#: js/musicutils.js:766 -msgid "japanese drum" +#: js/blocks/WidgetBlocks.js:1135 +#.TRANS: generate a progressive sequence of pitches +msgid "pitch staircase" msgstr "" -#: js/musicutils.js:767 -#: js/synthutils.js:153 -#.TRANS: musical instrument -msgid "japanese bell" +#: js/blocks/WidgetBlocks.js:1222 +msgid "The Rhythm Maker block opens a tool to create drum machines." msgstr "" -#: js/musicutils.js:768 -#: js/synthutils.js:149 -#.TRANS: musical instrument -msgid "triangle bell" +#: js/blocks/WidgetBlocks.js:1291 +msgid "G major scale" msgstr "" -#: js/musicutils.js:769 -#: js/synthutils.js:151 -#.TRANS: musical instrument -msgid "finger cymbals" +#: js/blocks/WidgetBlocks.js:1326 +msgid "C major scale" msgstr "" -#: js/musicutils.js:770 -#: js/synthutils.js:155 -#.TRANS: a musically tuned set of bells -msgid "chime" +#: js/blocks/WidgetBlocks.js:1366 +msgid "The Phrase Maker block opens a tool to create musical phrases." msgstr "" -#: js/musicutils.js:771 -#: js/synthutils.js:157 -#.TRANS: a musical instrument -msgid "gong" +#: js/blocks/WidgetBlocks.js:1373 +#.TRANS: assigns pitch to a sequence of beats to generate a melody +msgid "phrase maker" msgstr "" -#: js/musicutils.js:772 -#: js/synthutils.js:159 -#.TRANS: sound effect -msgid "clang" +#: js/blocks/WidgetBlocks.js:1444 +msgid "You must have at least one pitch block and one rhythm block in the matrix." msgstr "" -#: js/musicutils.js:773 -#: js/synthutils.js:161 -#.TRANS: sound effect -msgid "crash" +#: js/blocks/WidgetBlocks.js:1503 +msgid "The Status block opens a tool for inspecting the status of Music Blocks as it is running." msgstr "" -#: js/musicutils.js:774 -#: js/synthutils.js:163 -#.TRANS: sound effect -msgid "bottle" +#: js/blocks/WidgetBlocks.js:1580 +#.TRANS: AI-generated music +msgid "aimusic" msgstr "" -#: js/musicutils.js:775 -#: js/synthutils.js:165 -#.TRANS: sound effect -msgid "clap" +#: js/turtleactions/MeterActions.js:101 +#: js/turtleactions/MeterActions.js:139 +msgid "beats per minute must be greater than" msgstr "" -#: js/musicutils.js:776 -#: js/synthutils.js:167 -#.TRANS: sound effect -msgid "slap" +#: js/turtleactions/MeterActions.js:111 +#: js/turtleactions/MeterActions.js:149 +msgid "maximum" msgstr "" -#: js/musicutils.js:777 -#: js/synthutils.js:169 -#.TRANS: sound effect -msgid "splash" +#: js/turtleactions/MeterActions.js:117 +#: js/turtleactions/MeterActions.js:155 +msgid "beats per minute is" msgstr "" -#: js/musicutils.js:778 -#: js/synthutils.js:171 -#.TRANS: sound effect -msgid "bubbles" +#: js/turtleactions/DictActions.js:75 +#: js/turtleactions/DictActions.js:142 +#: js/turtleactions/DictActions.js:172 +msgid "font" msgstr "" -#: js/musicutils.js:779 -#: js/synthutils.js:173 -#.TRANS: sound effect -msgid "raindrop" +#: js/turtleactions/DictActions.js:255 +msgid "Dictionary with this name does not exist" msgstr "" -#: js/musicutils.js:780 -#: js/synthutils.js:175 -#.TRANS: animal sound effect -msgid "cat" +#: js/turtleactions/DictActions.js:259 +msgid "Key with this name does not exist in " msgstr "" -#: js/musicutils.js:781 -#: js/synthutils.js:177 -#.TRANS: animal sound effect -msgid "cricket" +#: js/turtleactions/DrumActions.js:227 +msgid "Noise Block: Did you mean to use a Note block?" msgstr "" -#: js/musicutils.js:782 -#: js/synthutils.js:179 -#.TRANS: animal sound effect -msgid "dog" +#: js/turtleactions/IntervalsActions.js:113 +msgid "one" msgstr "" -#: js/musicutils.js:784 -#: js/synthutils.js:86 -#.TRANS: musical instrument -msgid "banjo" +#: js/turtleactions/IntervalsActions.js:113 +msgid "two" msgstr "" -#: js/musicutils.js:785 -#: js/synthutils.js:88 -#.TRANS: musical instrument -msgid "koto" +#: js/turtleactions/IntervalsActions.js:113 +msgid "three" msgstr "" -#: js/musicutils.js:786 -#: js/synthutils.js:90 -#.TRANS: musical instrument -msgid "dulcimer" +#: js/turtleactions/IntervalsActions.js:113 +msgid "four" msgstr "" -#: js/musicutils.js:787 -#: js/synthutils.js:92 -#.TRANS: musical instrument -msgid "electric guitar" +#: js/turtleactions/IntervalsActions.js:113 +msgid "five" msgstr "" -#: js/musicutils.js:788 -#: js/synthutils.js:94 -#.TRANS: musical instrument -msgid "bassoon" +#: js/turtleactions/IntervalsActions.js:113 +msgid "six" msgstr "" -#: js/musicutils.js:789 -#: js/synthutils.js:96 -#.TRANS: musical instrument -msgid "celeste" +#: js/turtleactions/IntervalsActions.js:113 +msgid "seven" msgstr "" -#: js/musicutils.js:791 -#: js/musicutils.js:1123 -#: js/musicutils.js:1131 -#: js/temperament.js:650 -#.TRANS: musical temperament -msgid "equal" +#: js/turtleactions/IntervalsActions.js:113 +msgid "eight" msgstr "" -#: js/musicutils.js:793 -#: js/musicutils.js:1125 -#: js/musicutils.js:1133 -#.TRANS: musical temperament -msgid "Pythagorean" +#: js/turtleactions/IntervalsActions.js:113 +msgid "nine" msgstr "" -#: js/musicutils.js:795 -#: js/musicutils.js:1124 -#: js/musicutils.js:1132 -#.TRANS: musical temperament -msgid "just intonation" +#: js/turtleactions/IntervalsActions.js:119 +msgid "a" msgstr "" -#: js/musicutils.js:797 -#: js/musicutils.js:1126 -#: js/musicutils.js:1127 -#: js/musicutils.js:1134 -#: js/musicutils.js:1135 -#.TRANS: musical temperament -msgid "meantone" +#: js/turtleactions/IntervalsActions.js:120 +msgid "below" msgstr "" -#: js/musicutils.js:814 -msgid "major 7th" +#: js/turtleactions/IntervalsActions.js:124 +msgid "above" msgstr "" -#: js/musicutils.js:815 -msgid "minor 7th" +#: js/turtleactions/IntervalsActions.js:131 +msgid "plus" msgstr "" -#: js/musicutils.js:816 -msgid "dominant 7th" +#: js/turtleactions/IntervalsActions.js:139 +msgid " below" msgstr "" -#: js/musicutils.js:817 -msgid "minor-major 7th" +#: js/turtleactions/IntervalsActions.js:257 +msgid "Adding missing pitch number 0." msgstr "" -#: js/musicutils.js:818 -msgid "fully-diminished 7th" +#: js/turtleactions/IntervalsActions.js:265 +msgid "Ignoring pitch numbers less than zero or greater than eleven." msgstr "" -#: js/musicutils.js:819 -msgid "half-diminished 7th" +#: js/turtleactions/IntervalsActions.js:271 +msgid "Ignoring duplicate pitch numbers." msgstr "" -#: js/musicutils.js:4379 -#: js/musicutils.js:4416 -msgid "current" +#: js/turtleactions/ToneActions.js:134 +msgid "Vibrato intensity must be between 1 and 100." msgstr "" -#: js/musicutils.js:4382 -#: js/musicutils.js:4407 -msgid "next" +#: js/turtleactions/ToneActions.js:139 +msgid "Vibrato rate must be greater than 0." msgstr "" -#: js/musicutils.js:4385 -#: js/musicutils.js:4412 -msgid "previous" +#: js/turtleactions/ToneActions.js:192 +#: js/turtleactions/ToneActions.js:265 +#.TRANS: Depth is the intesity of the tremolo or chorus effect. +msgid "Depth is out of range." msgstr "" -#: js/synthutils.js:104 -#.TRANS: simple monotone synthesizer -msgid "simple-2" +#: js/turtleactions/ToneActions.js:301 +msgid "Distortion must be from 0 to 100." msgstr "" -#: js/synthutils.js:106 -#.TRANS: simple monotone synthesizer -msgid "simple-3" +#: js/turtleactions/ToneActions.js:332 +#.TRANS: partials components in a harmonic series +msgid "Partial must be greater than or equal to 0." msgstr "" -#: js/synthutils.js:108 -#.TRANS: simple monotone synthesizer -msgid "simple-4" +#: js/turtleactions/ToneActions.js:378 +#: js/turtleactions/ToneActions.js:417 +#: js/turtleactions/ToneActions.js:456 +#: js/widgets/timbre.js:782 +msgid "Unable to use synth due to existing oscillator" msgstr "" -#: js/synthutils.js:141 -#.TRANS: musical instrument -msgid "taiko" +#: js/turtleactions/ToneActions.js:388 +#: js/turtleactions/ToneActions.js:427 +msgid "The input cannot be negative." msgstr "" -#: js/modewidget.js:86 -#: js/modewidget.js:88 -#: js/modewidget.js:642 -#: js/modewidget.js:644 -#: js/modewidget.js:712 -#: js/modewidget.js:714 -#: js/temperament.js:2078 -#: js/rhythmruler.js:189 -#: js/rhythmruler.js:1410 -#: js/rhythmruler.js:1412 -#: js/rhythmruler.js:1435 -#: js/rhythmruler.js:1437 -#: js/meterwidget.js:89 -#: js/meterwidget.js:91 +#: js/widgets/modewidget.js:86 +#: js/widgets/modewidget.js:88 +#: js/widgets/modewidget.js:642 +#: js/widgets/modewidget.js:644 +#: js/widgets/modewidget.js:712 +#: js/widgets/modewidget.js:714 +#: js/widgets/meterwidget.js:194 +#: js/widgets/meterwidget.js:196 +#: js/widgets/temperament.js:2236 +#: js/widgets/rhythmruler.js:457 +#: js/widgets/rhythmruler.js:1790 +#: js/widgets/rhythmruler.js:1792 +#: js/widgets/rhythmruler.js:1816 +#: js/widgets/rhythmruler.js:1818 msgid "Play all" msgstr "" -#: js/modewidget.js:115 -#: js/pitchstaircase.js:641 -#: js/phrasemaker.js:339 -#: js/pitchdrummatrix.js:94 -#: js/pitchslider.js:125 -#: js/temperament.js:2083 -#: js/musickeyboard.js:530 -#: js/timbre.js:756 -#: js/meterwidget.js:124 -#: js/arpeggio.js:103 +#: js/widgets/modewidget.js:115 +#: js/widgets/meterwidget.js:229 +#: js/widgets/pitchdrummatrix.js:166 +#: js/widgets/pitchslider.js:125 +#: js/widgets/pitchstaircase.js:641 +#: js/widgets/temperament.js:2244 +#: js/widgets/timbre.js:756 +#: js/widgets/arpeggio.js:103 +#: js/widgets/musickeyboard.js:688 +#: js/widgets/phrasemaker.js:550 msgid "Save" msgstr "" -#: js/modewidget.js:121 -#: js/pitchstaircase.js:686 -#: js/phrasemaker.js:356 -#: js/pitchdrummatrix.js:109 -#: js/musickeyboard.js:534 -#: js/rhythmruler.js:269 -#: js/arpeggio.js:118 +#: js/widgets/modewidget.js:121 +#: js/widgets/pitchdrummatrix.js:181 +#: js/widgets/pitchstaircase.js:686 +#: js/widgets/arpeggio.js:118 +#: js/widgets/musickeyboard.js:696 +#: js/widgets/phrasemaker.js:567 +#: js/widgets/rhythmruler.js:601 #.TRANS: clear all subdivisions from the ruler. msgid "Clear" msgstr "" -#: js/modewidget.js:127 +#: js/widgets/modewidget.js:127 msgid "Rotate counter clockwise" msgstr "" -#: js/modewidget.js:133 +#: js/widgets/modewidget.js:133 msgid "Rotate clockwise" msgstr "" -#: js/modewidget.js:139 +#: js/widgets/modewidget.js:139 msgid "Invert" msgstr "" -#: js/modewidget.js:145 -#: js/pitchstaircase.js:678 -#: js/rhythmruler.js:258 -#: js/timbre.js:963 +#: js/widgets/modewidget.js:145 +#: js/widgets/pitchstaircase.js:678 +#: js/widgets/timbre.js:963 +#: js/widgets/rhythmruler.js:578 msgid "Undo" msgstr "" -#: js/modewidget.js:163 +#: js/widgets/modewidget.js:163 #.TRANS: A circle of notes represents the musical mode. msgid "Click in the circle to select notes for the mode." msgstr "" -#: js/modewidget.js:1017 -#: js/pitchstaircase.js:580 -#: js/phrasemaker.js:4855 -#: js/temperament.js:1754 -#: js/rhythmruler.js:1865 -#: js/rhythmruler.js:2081 -#: js/tempo.js:414 +#: js/widgets/modewidget.js:1017 +#: js/widgets/pitchstaircase.js:580 +#: js/widgets/temperament.js:1929 +#: js/widgets/tempo.js:414 +#: js/widgets/phrasemaker.js:5356 +#: js/widgets/rhythmruler.js:2254 +#: js/widgets/rhythmruler.js:2472 msgid "New action block generated!" msgstr "" -#: js/oscilloscope.js:79 -msgid "Zoom In" -msgstr "" - -#: js/oscilloscope.js:88 -msgid "Zoom Out" -msgstr "" - -#: js/pitchstaircase.js:624 -msgid "Play chord" -msgstr "" - -#: js/pitchstaircase.js:632 -msgid "Play scale" +#: js/widgets/meterwidget.js:275 +msgid "Reset" msgstr "" -#: js/pitchstaircase.js:696 -msgid "Click on a note to create a new step." +#: js/widgets/meterwidget.js:301 +msgid "Click in the circle to select strong beats for the meter." msgstr "" -#: js/phrasemaker.js:363 -msgid "Export" +#: js/widgets/oscilloscope.js:79 +msgid "Zoom In" msgstr "" -#: js/phrasemaker.js:370 -msgid "Sort" +#: js/widgets/oscilloscope.js:88 +msgid "Zoom Out" msgstr "" -#: js/phrasemaker.js:373 -#: js/musickeyboard.js:559 -msgid "Add note" +#: js/widgets/pitchdrummatrix.js:356 +#: js/widgets/pitchdrummatrix.js:752 +msgid "Click in the grid to map notes to drums." msgstr "" -#: js/phrasemaker.js:764 -msgid "Click on the table to add notes." +#: js/widgets/pitchslider.js:103 +msgid "Move up" msgstr "" -#: js/phrasemaker.js:2414 -#: js/phrasemaker.js:2543 -msgid "tuplet value" +#: js/widgets/pitchslider.js:114 +msgid "Move down" msgstr "" -#: js/pitchdrummatrix.js:270 -#: js/pitchdrummatrix.js:639 -msgid "Click in the grid to map notes to drums." +#: js/widgets/pitchslider.js:136 +msgid "Click on the slider to create a note block." msgstr "" -#: js/pitchslider.js:103 -msgid "Move up" +#: js/widgets/pitchstaircase.js:624 +msgid "Play chord" msgstr "" -#: js/pitchslider.js:114 -msgid "Move down" +#: js/widgets/pitchstaircase.js:632 +msgid "Play scale" msgstr "" -#: js/pitchslider.js:136 -msgid "Click on the slider to create a note block." +#: js/widgets/pitchstaircase.js:696 +msgid "Click on a note to create a new step." msgstr "" -#: js/temperament.js:215 +#: js/widgets/temperament.js:321 msgid "back to 2:1 octave space" msgstr "" -#: js/temperament.js:323 +#: js/widgets/temperament.js:447 msgid "edit" msgstr "" -#: js/temperament.js:330 -#: js/temperament.js:332 -#: js/temperament.js:1336 -#: js/temperament.js:1338 +#: js/widgets/temperament.js:454 +#: js/widgets/temperament.js:456 +#: js/widgets/temperament.js:1493 +#: js/widgets/temperament.js:1495 msgid "close" msgstr "" -#: js/temperament.js:423 -#: js/temperament.js:736 -#: js/temperament.js:743 -#: js/temperament.js:845 -#: js/temperament.js:935 -#: js/temperament.js:942 -#: js/temperament.js:1015 -#: js/temperament.js:1284 -#: js/temperament.js:1354 -#: js/temperament.js:1430 +#: js/widgets/temperament.js:552 +#: js/widgets/temperament.js:877 +#: js/widgets/temperament.js:884 +#: js/widgets/temperament.js:986 +#: js/widgets/temperament.js:1080 +#: js/widgets/temperament.js:1087 +#: js/widgets/temperament.js:1160 +#: js/widgets/temperament.js:1433 +#: js/widgets/temperament.js:1511 +#: js/widgets/temperament.js:1596 msgid "done" msgstr "" -#: js/temperament.js:477 -#: js/temperament.js:482 -#: js/temperament.js:918 +#: js/widgets/temperament.js:610 +#: js/widgets/temperament.js:615 +#: js/widgets/temperament.js:1063 msgid "ratio" msgstr "" -#: js/temperament.js:483 +#: js/widgets/temperament.js:616 msgid "interval" msgstr "" -#: js/temperament.js:611 +#: js/widgets/temperament.js:744 msgid "non scalar" msgstr "" -#: js/temperament.js:650 +#: js/widgets/temperament.js:787 msgid "ratios" msgstr "" -#: js/temperament.js:650 +#: js/widgets/temperament.js:787 msgid "arbitrary" msgstr "" -#: js/temperament.js:719 +#: js/widgets/temperament.js:860 msgid "number of divisions" msgstr "" -#: js/temperament.js:741 -#: js/temperament.js:858 -#: js/temperament.js:940 -#: js/temperament.js:1033 +#: js/widgets/temperament.js:882 +#: js/widgets/temperament.js:999 +#: js/widgets/temperament.js:1085 +#: js/widgets/temperament.js:1178 msgid "preview" msgstr "" -#: js/temperament.js:788 +#: js/widgets/temperament.js:929 msgid "The Number of divisions is too large." msgstr "" -#: js/temperament.js:921 +#: js/widgets/temperament.js:1066 msgid "recursion" msgstr "" -#: js/temperament.js:1450 +#: js/widgets/temperament.js:1616 msgid "The octave ratio has changed. This changes temperament significantly." msgstr "" -#: js/temperament.js:2087 +#: js/widgets/temperament.js:2248 msgid "Table" msgstr "" -#: js/temperament.js:2185 +#: js/widgets/temperament.js:2356 msgid "Add pitches" msgstr "" -#: js/musickeyboard.js:570 -msgid "Metronome" +#: js/widgets/tempo.js:78 +#: js/widgets/tempo.js:97 +#: js/widgets/tempo.js:99 +#: js/widgets/aiwidget.js:134 +#: js/widgets/aiwidget.js:136 +#: js/widgets/rhythmruler.js:681 +#: js/widgets/rhythmruler.js:683 +#: js/widgets/rhythmruler.js:1864 +#: js/widgets/rhythmruler.js:1866 +#: js/widgets/sampler.js:180 +#: js/widgets/sampler.js:182 +msgid "Pause" msgstr "" -#: js/musickeyboard.js:1296 -#: plugins/rodi.rtp:193 -msgid "duration" +#: js/widgets/tempo.js:113 +msgid "Save tempo" msgstr "" -#: js/musickeyboard.js:2840 -msgid "New action blocks generated!" +#: js/widgets/tempo.js:144 +msgid "speed up" msgstr "" -#: js/musickeyboard.js:2841 -msgid "New action block generated" +#: js/widgets/tempo.js:150 +msgid "slow down" msgstr "" -#: js/musickeyboard.js:2984 -#: js/musickeyboard.js:2992 -msgid "MIDI device present." +#: js/widgets/tempo.js:194 +msgid "Adjust the tempo with the buttons." msgstr "" -#: js/musickeyboard.js:2995 -msgid "No MIDI device found." +#: js/widgets/tempo.js:261 +msgid "Please enter a number between 30 and 1000" msgstr "" -#: js/musickeyboard.js:3000 -msgid "Failed to get MIDI access in browser." +#: js/widgets/tempo.js:268 +#: js/widgets/tempo.js:271 +msgid "The beats per minute must be between 30 and 1000." msgstr "" -#: js/rhythmruler.js:202 -msgid "Save rhythms" +#: js/widgets/tempo.js:287 +msgid "The beats per minute must be below 1000." msgstr "" -#: js/rhythmruler.js:222 -msgid "Save drum machine" +#: js/widgets/tempo.js:303 +msgid "The beats per minute must be above 30" msgstr "" -#: js/rhythmruler.js:263 -#.TRANS: user can tap out a rhythm by clicking on a ruler. -msgid "Tap a rhythm" +#: js/widgets/timbre.js:766 +msgid "Synthesizer" msgstr "" -#: js/rhythmruler.js:342 -#: js/rhythmruler.js:344 -#: js/rhythmruler.js:1481 -#: js/rhythmruler.js:1483 -#: js/sampler.js:110 -#: js/sampler.js:112 -#: js/tempo.js:78 -#: js/tempo.js:97 -#: js/tempo.js:99 -msgid "Pause" +#: js/widgets/timbre.js:789 +msgid "Oscillator" msgstr "" -#: js/rhythmruler.js:478 -msgid "Click on the ruler to divide it." +#: js/widgets/timbre.js:840 +msgid "Envelope" msgstr "" -#: js/rhythmruler.js:603 -#: js/rhythmruler.js:605 -#: js/rhythmruler.js:804 -#: js/rhythmruler.js:806 -#: js/rhythmruler.js:1386 -#: js/rhythmruler.js:1388 -msgid "tap a rhythm" +#: js/widgets/timbre.js:886 +#: planet/js/GlobalTag.js:50 +#.TRANS: On the Planet, we use labels to tag projects. +msgid "Effects" msgstr "" -#: js/rhythmruler.js:1084 -msgid "Maximum value of 256 has been exceeded." +#: js/widgets/timbre.js:904 +msgid "Filter" msgstr "" -#: js/sampler.js:137 -msgid "Warning: Sample is bigger than 1MB." +#: js/widgets/timbre.js:946 +msgid "Add filter" msgstr "" -#: js/sampler.js:142 -msgid "Upload failed: Sample is not a .wav file." +#: js/widgets/timbre.js:987 +msgid "Click on buttons to open the timbre design tools." msgstr "" -#: js/sampler.js:164 -msgid "A new sample block was generated." +#: js/widgets/timbre.js:1273 +msgid "harmonicity" msgstr "" -#: js/sampler.js:255 -msgid "Upload sample" +#: js/widgets/timbre.js:1340 +#: js/widgets/timbre.js:1406 +msgid "modulation index" msgstr "" -#: js/sampler.js:306 -msgid "Save sample" +#: js/widgets/timbre.js:1484 +msgid "vibrato amount" msgstr "" -#: js/sampler.js:697 -#.TRANS: The reference tone is a sound used for comparison. -msgid "reference tone" +#: js/widgets/timbre.js:1919 +msgid "Filter already present." msgstr "" -#: js/tempo.js:113 -msgid "Save tempo" +#: js/widgets/timbre.js:2322 +msgid "delay (MS)" msgstr "" -#: js/tempo.js:144 -msgid "speed up" +#: js/widgets/timbre.js:2507 +msgid "distortion amount" msgstr "" -#: js/tempo.js:150 -msgid "slow down" +#: js/widgets/aiwidget.js:180 +#: js/widgets/sampler.js:227 +msgid "Warning: Sample is bigger than 1MB." msgstr "" -#: js/tempo.js:194 -msgid "Adjust the tempo with the buttons." +#: js/widgets/aiwidget.js:539 +msgid "New start block generated" msgstr "" -#: js/tempo.js:261 -msgid "Please enter a number between 30 and 1000" +#: js/widgets/aiwidget.js:541 +msgid "MIDI loading. This may take some time depending upon the number of notes in the track" msgstr "" -#: js/tempo.js:268 -#: js/tempo.js:271 -msgid "The beats per minute must be between 30 and 1000." +#: js/widgets/aiwidget.js:551 +#: js/widgets/sampler.js:254 +msgid "Upload failed: Sample is not a .wav file." msgstr "" -#: js/tempo.js:287 -msgid "The beats per minute must be below 1000." +#: js/widgets/aiwidget.js:679 +#: js/widgets/sampler.js:432 +msgid "Save sample" msgstr "" -#: js/tempo.js:303 -msgid "The beats per minute must be above 30" +#: js/widgets/aiwidget.js:701 +msgid "AI Music" msgstr "" -#: js/timbre.js:766 -msgid "Synthesizer" +#: js/widgets/arpeggio.js:239 +msgid "Click in the grid to add steps to the arpeggio." msgstr "" -#: js/timbre.js:789 -msgid "Oscillator" +#: js/widgets/help.js:95 +#: js/widgets/help.js:125 +#: js/widgets/help.js:146 +#: js/widgets/help.js:158 +#: js/widgets/help.js:376 +#: js/widgets/help.js:391 +msgid "Take a tour" msgstr "" -#: js/timbre.js:840 -msgid "Envelope" +#: js/widgets/musickeyboard.js:725 +#: js/widgets/phrasemaker.js:584 +msgid "Add note" msgstr "" -#: js/timbre.js:886 -#: js/GlobalTag.js:50 -#.TRANS: On the Planet, we use labels to tag projects. -msgid "Effects" +#: js/widgets/musickeyboard.js:744 +msgid "Metronome" +msgstr "" + +#: js/widgets/musickeyboard.js:1549 +#: plugins/rodi.rtp:193 +msgid "duration" +msgstr "" + +#: js/widgets/musickeyboard.js:3179 +msgid "New action blocks generated" +msgstr "" + +#: js/widgets/musickeyboard.js:3180 +msgid "New action block generated" msgstr "" -#: js/timbre.js:904 -msgid "Filter" +#: js/widgets/musickeyboard.js:3365 +#: js/widgets/musickeyboard.js:3373 +msgid "MIDI device present." msgstr "" -#: js/timbre.js:946 -msgid "Add filter" +#: js/widgets/musickeyboard.js:3376 +msgid "No MIDI device found." msgstr "" -#: js/timbre.js:987 -msgid "Click on buttons to open the timbre design tools." +#: js/widgets/musickeyboard.js:3386 +msgid "Failed to get MIDI access in browser." msgstr "" -#: js/timbre.js:1273 -msgid "harmonicity" +#: js/widgets/phrasemaker.js:574 +msgid "Export" msgstr "" -#: js/timbre.js:1340 -#: js/timbre.js:1406 -msgid "modulation index" +#: js/widgets/phrasemaker.js:581 +msgid "Sort" msgstr "" -#: js/timbre.js:1484 -msgid "vibrato amount" +#: js/widgets/phrasemaker.js:975 +msgid "Click on the table to add notes." msgstr "" -#: js/timbre.js:1919 -msgid "Filter already present." +#: js/widgets/phrasemaker.js:2677 +#: js/widgets/phrasemaker.js:2819 +msgid "tuplet value" msgstr "" -#: js/timbre.js:2322 -msgid "delay (MS)" +#: js/widgets/rhythmruler.js:486 +msgid "Save rhythms" msgstr "" -#: js/timbre.js:2507 -msgid "distortion amount" +#: js/widgets/rhythmruler.js:512 +msgid "Save drum machine" msgstr "" -#: js/meterwidget.js:170 -msgid "Reset" +#: js/widgets/rhythmruler.js:589 +#.TRANS: user can tap out a rhythm by clicking on a ruler. +msgid "Tap a rhythm" msgstr "" -#: js/meterwidget.js:196 -msgid "Click in the circle to select strong beats for the meter." +#: js/widgets/rhythmruler.js:817 +msgid "Click on the ruler to divide it." msgstr "" -#: js/arpeggio.js:239 -msgid "Click in the grid to add steps to the arpeggio." +#: js/widgets/rhythmruler.js:950 +#: js/widgets/rhythmruler.js:952 +#: js/widgets/rhythmruler.js:1152 +#: js/widgets/rhythmruler.js:1154 +#: js/widgets/rhythmruler.js:1765 +#: js/widgets/rhythmruler.js:1767 +msgid "tap a rhythm" msgstr "" -#: js/ProjectStorage.js:243 -msgid "anonymous" +#: js/widgets/rhythmruler.js:1459 +msgid "Maximum value of 256 has been exceeded." msgstr "" -#: js/GlobalCard.js:68 -msgid "Share" +#: js/widgets/sampler.js:237 +msgid "Recording started..." msgstr "" -#: js/GlobalCard.js:74 -msgid "Flags" +#: js/widgets/sampler.js:245 +msgid "Recording complete..." msgstr "" -#: js/LocalCard.js:36 -msgid "View published project" +#: js/widgets/sampler.js:283 +msgid "A new sample block was generated." msgstr "" -#: js/LocalCard.js:42 -msgid "Publish project" +#: js/widgets/sampler.js:378 +msgid "Upload sample" msgstr "" -#: js/LocalCard.js:51 -msgid "Edit project" +#: js/widgets/sampler.js:399 +msgid "Warning: Your sample cannot be loaded because it is >1MB." msgstr "" -#: js/LocalCard.js:52 -msgid "Delete project" +#: js/widgets/sampler.js:448 +msgid "Toggle Mic" msgstr "" -#: js/LocalCard.js:53 -msgid "Download project" +#: js/widgets/sampler.js:458 +msgid "Playback" msgstr "" -#: js/LocalCard.js:55 -msgid "Duplicate project" +#: js/widgets/sampler.js:979 +#.TRANS: The reference tone is a sound used for comparison. +msgid "reference tone" msgstr "" -#: js/GlobalTag.js:28 +#: planet/js/GlobalTag.js:28 #.TRANS: On the Planet, we use labels to tag projects. msgid "All Projects" msgstr "" -#: js/GlobalTag.js:30 -#: js/StringHelper.js:37 +#: planet/js/GlobalTag.js:30 +#: planet/js/StringHelper.js:37 #.TRANS: On the Planet, we use labels to tag projects. msgid "My Projects" msgstr "" -#: js/GlobalTag.js:32 +#: planet/js/GlobalTag.js:32 #.TRANS: On the Planet, we use labels to tag projects. msgid "Examples" msgstr "" -#: js/GlobalTag.js:34 +#: planet/js/GlobalTag.js:34 #.TRANS: On the Planet, we use labels to tag projects. msgid "Music" msgstr "" -#: js/GlobalTag.js:36 +#: planet/js/GlobalTag.js:36 #.TRANS: On the Planet, we use labels to tag projects. msgid "Art" msgstr "" -#: js/GlobalTag.js:38 +#: planet/js/GlobalTag.js:38 #.TRANS: On the Planet, we use labels to tag projects. msgid "Math" msgstr "" -#: js/GlobalTag.js:40 +#: planet/js/GlobalTag.js:40 #.TRANS: On the Planet, we use labels to tag projects. msgid "Interactive" msgstr "" -#: js/GlobalTag.js:42 +#: planet/js/GlobalTag.js:42 #.TRANS: On the Planet, we use labels to tag projects. msgid "Design" msgstr "" -#: js/GlobalTag.js:44 +#: planet/js/GlobalTag.js:44 #.TRANS: On the Planet, we use labels to tag projects. msgid "Game" msgstr "" -#: js/GlobalTag.js:46 +#: planet/js/GlobalTag.js:46 #.TRANS: On the Planet, we use labels to tag projects. msgid "Media" msgstr "" -#: js/GlobalTag.js:48 +#: planet/js/GlobalTag.js:48 #.TRANS: On the Planet, we use labels to tag projects. msgid "Sensors" msgstr "" -#: js/GlobalTag.js:52 +#: planet/js/GlobalTag.js:52 #.TRANS: On the Planet, we use labels to tag projects. msgid "Code Snippet" msgstr "" -#: js/helper.js:149 -#: js/StringHelper.js:49 -msgid "Show more tags" +#: planet/js/LocalCard.js:36 +msgid "View published project" msgstr "" -#: js/helper.js:150 -msgid "Show fewer tags" +#: planet/js/LocalCard.js:42 +msgid "Publish project" +msgstr "" + +#: planet/js/LocalCard.js:51 +msgid "Edit project" +msgstr "" + +#: planet/js/LocalCard.js:52 +msgid "Delete project" +msgstr "" + +#: planet/js/LocalCard.js:53 +msgid "Download project" +msgstr "" + +#: planet/js/LocalCard.js:55 +msgid "Duplicate project" +msgstr "" + +#: planet/js/ProjectStorage.js:243 +msgid "anonymous" +msgstr "" + +#: planet/js/SaveInterface.js:34 +msgid "Open in Music Blocks" +msgstr "" + +#: planet/js/SaveInterface.js:35 +msgid "Open in Turtle Blocks" +msgstr "" + +#: planet/js/GlobalCard.js:68 +msgid "Share" +msgstr "" + +#: planet/js/GlobalCard.js:74 +msgid "Flags" +msgstr "" + +#: planet/js/GlobalPlanet.js:35 +msgid "No results found." +msgstr "" + +#: planet/js/GlobalPlanet.js:51 +msgid "Remix of" +msgstr "" + +#: planet/js/GlobalPlanet.js:509 +msgid "Cannot connect to server" msgstr "" -#: js/ProjectViewer.js:30 +#: planet/js/ProjectViewer.js:30 msgid "Error: Report could not be submitted. Try again later." msgstr "" -#: js/ProjectViewer.js:31 +#: planet/js/ProjectViewer.js:31 msgid "Thank you for reporting this project. A moderator will review the project shortly, to verify violation of the Sugar Labs Code of Conduct." msgstr "" -#: js/ProjectViewer.js:32 -#: js/StringHelper.js:62 -#: js/StringHelper.js:64 -#: js/StringHelper.js:68 +#: planet/js/ProjectViewer.js:32 +#: planet/js/StringHelper.js:62 +#: planet/js/StringHelper.js:64 +#: planet/js/StringHelper.js:68 msgid "Report Project" msgstr "" -#: js/ProjectViewer.js:33 -#: js/StringHelper.js:63 +#: planet/js/ProjectViewer.js:33 +#: planet/js/StringHelper.js:63 msgid "Project Reported" msgstr "" -#: js/ProjectViewer.js:34 +#: planet/js/ProjectViewer.js:34 msgid "Report description required" msgstr "" -#: js/ProjectViewer.js:35 +#: planet/js/ProjectViewer.js:35 msgid "Report description too long" msgstr "" -#: js/StringHelper.js:30 +#: planet/js/Publisher.js:30 +msgid "Feature unavailable - cannot connect to server. Reload Music Blocks to try again." +msgstr "" + +#: planet/js/Publisher.js:220 +#: planet/js/Publisher.js:237 +msgid "This field is required" +msgstr "" + +#: planet/js/Publisher.js:227 +msgid "Title too long" +msgstr "" + +#: planet/js/Publisher.js:244 +msgid "Description too long" +msgstr "" + +#: planet/js/Publisher.js:341 +msgid "Server Error" +msgstr "" + +#: planet/js/Publisher.js:341 +msgid "Try Again" +msgstr "" + +#: planet/js/StringHelper.js:30 msgid "Planet" msgstr "" -#: js/StringHelper.js:31 +#: planet/js/StringHelper.js:31 msgid "Close Planet" msgstr "" -#: js/StringHelper.js:32 +#: planet/js/StringHelper.js:32 msgid "Open project from file" msgstr "" -#: js/StringHelper.js:34 +#: planet/js/StringHelper.js:34 msgid "Local" msgstr "" -#: js/StringHelper.js:35 +#: planet/js/StringHelper.js:35 msgid "Global" msgstr "" -#: js/StringHelper.js:36 +#: planet/js/StringHelper.js:36 msgid "Search for a project" msgstr "" -#: js/StringHelper.js:38 +#: planet/js/StringHelper.js:38 msgid "Publish Project" msgstr "" -#: js/StringHelper.js:40 +#: planet/js/StringHelper.js:40 msgid "Tags (max 5)" msgstr "" -#: js/StringHelper.js:41 -#: js/StringHelper.js:61 +#: planet/js/StringHelper.js:41 +#: planet/js/StringHelper.js:61 msgid "Description" msgstr "" -#: js/StringHelper.js:42 -#: js/StringHelper.js:67 +#: planet/js/StringHelper.js:42 +#: planet/js/StringHelper.js:67 msgid "Submit" msgstr "" -#: js/StringHelper.js:43 -#: js/StringHelper.js:47 +#: planet/js/StringHelper.js:43 +#: planet/js/StringHelper.js:47 msgid "Cancel" msgstr "" -#: js/StringHelper.js:44 +#: planet/js/StringHelper.js:44 msgid "Delete \\"\\"?" msgstr "" -#: js/StringHelper.js:45 +#: planet/js/StringHelper.js:45 msgid "Permanently delete project \\"\\"?" msgstr "" -#: js/StringHelper.js:48 +#: planet/js/StringHelper.js:48 msgid "Explore Projects" msgstr "" -#: js/StringHelper.js:50 +#: planet/js/StringHelper.js:49 +#: planet/js/helper.js:149 +msgid "Show more tags" +msgstr "" + +#: planet/js/StringHelper.js:50 msgid "Most recent" msgstr "" -#: js/StringHelper.js:51 +#: planet/js/StringHelper.js:51 msgid "Most liked" msgstr "" -#: js/StringHelper.js:52 +#: planet/js/StringHelper.js:52 msgid "Most downloaded" msgstr "" -#: js/StringHelper.js:53 +#: planet/js/StringHelper.js:53 msgid "A-Z" msgstr "" -#: js/StringHelper.js:54 +#: planet/js/StringHelper.js:54 msgid "Sort by" msgstr "" -#: js/StringHelper.js:55 +#: planet/js/StringHelper.js:55 msgid "Load More Projects" msgstr "" -#: js/StringHelper.js:56 +#: planet/js/StringHelper.js:56 msgid "Last Updated" msgstr "" -#: js/StringHelper.js:57 +#: planet/js/StringHelper.js:57 msgid "Creation Date" msgstr "" -#: js/StringHelper.js:58 +#: planet/js/StringHelper.js:58 msgid "Number of Downloads:" msgstr "" -#: js/StringHelper.js:59 +#: planet/js/StringHelper.js:59 msgid "Number of Likes:" msgstr "" -#: js/StringHelper.js:60 +#: planet/js/StringHelper.js:60 msgid "Tags:" msgstr "" -#: js/StringHelper.js:65 +#: planet/js/StringHelper.js:65 msgid "Report projects which violate the Sugar Labs Code of Conduct." msgstr "" -#: js/StringHelper.js:66 +#: planet/js/StringHelper.js:66 msgid "Reason for reporting project" msgstr "" -#: js/StringHelper.js:70 +#: planet/js/StringHelper.js:70 msgid "Download as File" msgstr "" -#: js/GlobalPlanet.js:35 -msgid "No results found." -msgstr "" - -#: js/GlobalPlanet.js:51 -msgid "Remix of" -msgstr "" - -#: js/GlobalPlanet.js:509 -msgid "Cannot connect to server" -msgstr "" - -#: js/Publisher.js:30 -msgid "Feature unavailable - cannot connect to server. Reload Music Blocks to try again." -msgstr "" - -#: js/Publisher.js:218 -#: js/Publisher.js:235 -msgid "This field is required" -msgstr "" - -#: js/Publisher.js:225 -msgid "Title too long" +#: planet/js/helper.js:150 +msgid "Show fewer tags" msgstr "" -#: js/Publisher.js:242 -msgid "Description too long" +#: plugins/accelerometer.rtp:48 +msgid "motion x" msgstr "" -#: js/Publisher.js:339 -msgid "Server Error" +#: plugins/accelerometer.rtp:56 +msgid "motion y" msgstr "" -#: js/Publisher.js:339 -msgid "Try Again" +#: plugins/accelerometer.rtp:64 +msgid "motion z" msgstr "" -#: js/SaveInterface.js:34 -msgid "Open in Music Blocks" +#: plugins/facebook.rtp:27 +msgid "publish" msgstr "" -#: js/SaveInterface.js:35 -msgid "Open in Turtle Blocks" +#: plugins/maths.rtp:62 +msgid "power" msgstr "" -#: plugins/weather.rtp:68 -#: plugins/weather.rtp:97 -msgid "Days ahead must be in the range of -1 to 5." +#: plugins/maths.rtp:62 +msgid "base" msgstr "" -#: plugins/weather.rtp:122 -msgid "forecast" +#: plugins/maths.rtp:62 +msgid "exp" msgstr "" -#: plugins/weather.rtp:123 -#: plugins/weather.rtp:137 -#: plugins/weather.rtp:150 -msgid "city" +#: plugins/maths.rtp:99 +msgid "floor" msgstr "" -#: plugins/weather.rtp:124 -#: plugins/weather.rtp:138 -#: plugins/weather.rtp:151 -msgid "day" +#: plugins/maths.rtp:104 +msgid "ceiling" msgstr "" -#: plugins/weather.rtp:136 -msgid "high" +#: plugins/maths.rtp:109 +msgid "to degrees" msgstr "" -#: plugins/weather.rtp:149 -msgid "low" +#: plugins/maths.rtp:114 +msgid "to radians" msgstr "" #: plugins/nutrition.rtp:104 @@ -9458,45 +9867,6 @@ msgstr "" msgid "water" msgstr "" -#: plugins/maths.rtp:62 -#: plugins/examples.rtp:93 -msgid "power" -msgstr "" - -#: plugins/maths.rtp:62 -#: plugins/examples.rtp:93 -msgid "base" -msgstr "" - -#: plugins/maths.rtp:62 -#: plugins/examples.rtp:93 -msgid "exp" -msgstr "" - -#: plugins/maths.rtp:99 -#: plugins/examples.rtp:130 -msgid "floor" -msgstr "" - -#: plugins/maths.rtp:104 -#: plugins/examples.rtp:135 -msgid "ceiling" -msgstr "" - -#: plugins/maths.rtp:109 -#: plugins/examples.rtp:140 -msgid "to degrees" -msgstr "" - -#: plugins/maths.rtp:114 -#: plugins/examples.rtp:145 -msgid "to radians" -msgstr "" - -#: plugins/facebook.rtp:27 -msgid "publish" -msgstr "" - #: plugins/rodi.rtp:172 msgid "blink" msgstr "" @@ -9525,18 +9895,66 @@ msgstr "" msgid "move" msgstr "" -#: plugins/accelerometer.rtp:48 -msgid "motion x" +#: plugins/weather.rtp:68 +#: plugins/weather.rtp:97 +msgid "Days ahead must be in the range of -1 to 5." msgstr "" -#: plugins/accelerometer.rtp:56 -msgid "motion y" +#: plugins/weather.rtp:122 +msgid "forecast" msgstr "" -#: plugins/accelerometer.rtp:64 -msgid "motion z" +#: plugins/weather.rtp:123 +#: plugins/weather.rtp:137 +#: plugins/weather.rtp:150 +msgid "city" +msgstr "" + +#: plugins/weather.rtp:124 +#: plugins/weather.rtp:138 +#: plugins/weather.rtp:151 +msgid "day" +msgstr "" + +#: plugins/weather.rtp:136 +msgid "high" +msgstr "" + +#: plugins/weather.rtp:149 +msgid "low" msgstr "" +#: js/toolbar.js:70 + +#: js/toolbar.js:130 + +#: js/toolbar.js:194 + +#: js/toolbar.js:249 + +#~msgid "Toggle JavaScript Editor" +#~msgstr "" + +#: js/EnsembleBlocks.js:643 + +#~msgid "The Turrle pitch block returns the current pitch number being played by the specified turtle." +#~msgstr "" + +#: js/PitchActions.js:88 + +#~msgid "The Scalar Step Block must be used inside of a Note Block." +#~msgstr "" + +#: js/PitchActions.js:107 + +#~msgid "The Scalar Step Block must be preceded by a Pitch Block." +#~msgstr "" + +#: js/musickeyboard.js:2840 + +#~msgid "New action blocks generated!" +#~msgstr "" + #: js/toolbar.js:110 #: js/toolbar.js:204 @@ -9877,11 +10295,6 @@ msgstr "" #~msgid "The Time block returns the number of seconds that the program has been running." #~msgstr "" -#: js/help.js:95 - -#~msgid "Take a tour" -#~msgstr "" - #: js/GlobalCard.js:48 #~msgid "More Details" @@ -12780,11 +13193,6 @@ msgstr "" #~msgid "The save-stack button saves a stack onto a custom palette. It appears after a \"long press\" on a stack." #~msgstr "" -#: js/musicutils.js:254 - -#~msgid "Custom" -#~msgstr "" - #: js/basicblocks.js:4785 #~msgid "Rhythm" diff --git a/po/vi.po b/po/vi.po index a03f14b844..150d20a82f 100644 --- a/po/vi.po +++ b/po/vi.po @@ -2129,276 +2129,131 @@ #: js/planetInterface.js:104 #: js/planetInterface.js:104 #: js/planetInterface.js:104 -msgid "project undefined" +#: js/SaveInterface.js:59 +#: js/SaveInterface.js:61 +#: js/SaveInterface.js:93 +msgid "Music Blocks Project" msgstr "" -#: js/logo.js:61 -msgid "Not a valid pitch name" +#: js/SaveInterface.js:63 +msgid "This project was created in Music Blocks" msgstr "" -#: js/logo.js:507 -#: js/ProgramBlocks.js:258 -#: js/ProgramBlocks.js:427 -msgid "You must select a file." +#: js/SaveInterface.js:67 +msgid "Music Blocks is a Free/Libre Software application." msgstr "" -#: js/logo.js:1184 -#: js/turtles.js:118 -#: js/turtle-painter.js:1192 -#: js/turtle-painter.js:1193 -#: js/block.js:1463 -#: js/lilypond.js:757 -#: js/lilypond.js:921 -#: js/lilypond.js:959 -#: js/ActionBlocks.js:1223 -#: js/ProgramBlocks.js:1267 -msgid "start" -msgstr "đầu" - -#: js/logo.js:1696 -msgid "Playback is ready." +#: js/SaveInterface.js:69 +msgid "The source code can be accessed at" msgstr "" -#: js/blocks.js:1011 -#: js/blocks.js:3427 -#: js/blocks.js:3428 -#: js/blocks.js:3653 -#: js/blocks.js:4012 -#: js/blocks.js:4205 -#: js/blocks.js:5343 -#: js/blocks.js:6474 -#: js/palette.js:527 -#: js/palette.js:536 -#: js/palette.js:545 -#: js/palette.js:554 -#: js/palette.js:1131 -#: js/palette.js:1142 -#: js/palette.js:1153 -#: js/palette.js:1164 -#: js/palette.js:1183 -#: js/rubrics.js:529 -#: js/macros.js:170 -#: js/macros.js:266 -#: js/macros.js:267 -#: js/macros.js:276 -#: js/macros.js:828 -#: js/block.js:1449 -#: js/block.js:4164 -#: js/block.js:4182 -#: js/block.js:4193 -#: js/turtledefs.js:128 -#: js/turtledefs.js:230 -#: js/ActionBlocks.js:254 -#: js/ActionBlocks.js:307 -#: js/ActionBlocks.js:617 -#: js/ActionBlocks.js:716 -#: js/ActionBlocks.js:961 -#: js/ActionBlocks.js:1049 -#: js/ActionBlocks.js:1322 -#: js/ActionBlocks.js:1325 -#: js/ActionBlocks.js:1337 -#: js/ActionBlocks.js:1404 -#: js/MeterBlocks.js:715 -#: js/MeterBlocks.js:768 -#: js/MeterBlocks.js:831 -#: js/MeterBlocks.js:892 -#: js/phrasemaker.js:4412 -#: js/musickeyboard.js:2647 -#: js/rhythmruler.js:1928 -#: js/rhythmruler.js:1935 -#: js/rhythmruler.js:2119 -#: js/rhythmruler.js:2126 -msgid "action" -msgstr "hành vi" - -#: js/blocks.js:1205 -#: js/blocks.js:3380 -#: js/blocks.js:3770 -#: js/blocks.js:3801 -#: js/blocks.js:3850 -#: js/blocks.js:3885 -#: js/blocks.js:6497 -#: js/palette.js:509 -#: js/palette.js:638 -#: js/palette.js:1107 -#: js/BoxesBlocks.js:282 -#: js/BoxesBlocks.js:285 -#: js/BoxesBlocks.js:405 -#: js/BoxesBlocks.js:594 -msgid "box" -msgstr "hộp" - -#: js/blocks.js:1680 -msgid "Consider breaking this stack into parts." +#: js/SaveInterface.js:72 +msgid "For more information, please consult the" msgstr "" -#: js/blocks.js:2408 -#: js/palette.js:653 -#: js/MediaBlocks.js:602 -msgid "open file" +#: js/SaveInterface.js:76 +#: js/turtledefs.js:795 +msgid "Music Blocks Guide" msgstr "" -#: js/blocks.js:2415 -#: js/blocks.js:2423 -#: js/activity.js:1875 -msgid "audio file" +#: js/SaveInterface.js:83 +msgid "Alternatively, open the file in Music Blocks using the Load project button." msgstr "" -#: js/blocks.js:2536 -#: js/blocks.js:3147 -#: js/block.js:3543 -msgid "on2" +#: js/SaveInterface.js:85 +msgid "Project Code" msgstr "" -#: js/blocks.js:2538 -#: js/blocks.js:3149 -#: js/block.js:3545 -msgid "off" +#: js/SaveInterface.js:87 +msgid "This code stores data about the blocks in a project." msgstr "" -#: js/blocks.js:2543 -#: js/blocks.js:3154 -#: js/palette.js:618 -#: js/block.js:3466 -#: js/BooleanBlocks.js:77 -#: js/BooleanBlocks.js:167 -#: js/BooleanBlocks.js:251 -#: js/BooleanBlocks.js:335 -#: js/BooleanBlocks.js:433 -#: js/BooleanBlocks.js:539 -#: js/BooleanBlocks.js:640 -#: js/BooleanBlocks.js:741 -#: js/BooleanBlocks.js:847 -#: js/BooleanBlocks.js:948 -#: js/BooleanBlocks.js:1033 -#: js/SensorsBlocks.js:910 -msgid "true" +#: js/SaveInterface.js:89 +msgid "Show" msgstr "" -#: js/blocks.js:2545 -#: js/blocks.js:3156 -#: js/block.js:3466 -#: js/BooleanBlocks.js:79 -#: js/BooleanBlocks.js:169 -#: js/BooleanBlocks.js:253 -#: js/BooleanBlocks.js:337 -#: js/BooleanBlocks.js:435 -#: js/BooleanBlocks.js:541 -#: js/BooleanBlocks.js:642 -#: js/BooleanBlocks.js:743 -#: js/BooleanBlocks.js:849 -#: js/BooleanBlocks.js:950 -#: js/SensorsBlocks.js:912 -msgid "false" +#: js/SaveInterface.js:91 +msgid "Hide" msgstr "" -#: js/blocks.js:3183 -#: js/palette.js:574 -#: js/MediaBlocks.js:892 -#: js/MediaBlocks.js:963 -msgid "text" -msgstr "văn bản" - -#: js/blocks.js:3379 -#: js/palette.js:641 -#: js/palette.js:642 -#: js/BoxesBlocks.js:514 -msgid "store in box" +#: js/SaveInterface.js:131 +#: js/SaveInterface.js:204 +#: js/SaveInterface.js:262 +#: js/SaveInterface.js:389 +#: js/SaveInterface.js:417 +#: js/activity.js:4884 +#: planet/js/ProjectStorage.js:27 +#: planet/js/GlobalPlanet.js:467 +#: planet/js/GlobalPlanet.js:469 +#: planet/js/GlobalPlanet.js:495 +#.TRANS: default project title when saving as Lilypond +msgid "My Project" msgstr "" -#: js/blocks.js:3384 -#: js/blocks.js:3824 -#: js/blocks.js:3859 -#: js/blocks.js:3894 -#: js/blocks.js:5773 -#: js/blocks.js:5794 -#: js/BoxesBlocks.js:772 -msgid "box1" +#: js/SaveInterface.js:197 +#: planet/js/SaveInterface.js:58 +msgid "No description provided" msgstr "" -#: js/blocks.js:3386 -#: js/blocks.js:3826 -#: js/blocks.js:3861 -#: js/blocks.js:3896 -#: js/blocks.js:5775 -#: js/blocks.js:5796 -#: js/BoxesBlocks.js:663 -msgid "box2" +#: js/SaveInterface.js:332 +msgid "Your recording is in progress." msgstr "" -#: js/blocks.js:4058 -#: js/palette.js:639 -#: js/palette.js:644 -#: js/palette.js:1043 -#: js/BoxesBlocks.js:591 -msgid "store in" -msgstr "lưu vào" - -#: js/blocks.js:4058 -#: js/EnsembleBlocks.js:391 -#: js/EnsembleBlocks.js:402 -#: js/MediaBlocks.js:746 -#: js/ProgramBlocks.js:390 -#: js/ProgramBlocks.js:495 -#: js/ProgramBlocks.js:658 -#: js/BoxesBlocks.js:595 -#: js/PitchBlocks.js:656 -#: js/PitchBlocks.js:932 -#: js/PitchBlocks.js:1827 -#: js/ToneBlocks.js:1025 -#: js/DictBlocks.js:215 -#: js/DictBlocks.js:289 -msgid "name" +#: js/SaveInterface.js:401 +#.TRANS: File name prompt for save as Lilypond +msgid "File name" msgstr "" -#: js/blocks.js:4058 -#: js/RhythmBlocks.js:1130 -#: js/BoxesBlocks.js:75 -#: js/BoxesBlocks.js:595 -#: js/HeapBlocks.js:544 -#: js/DictBlocks.js:289 -#: js/DictBlocks.js:430 -msgid "value" -msgstr "giá trị" - -#: js/blocks.js:4907 -msgid "There is no block selected." +#: js/SaveInterface.js:403 +#: planet/js/StringHelper.js:39 +#.TRANS: Project title prompt for save as Lilypond +msgid "Project title" msgstr "" -#: js/blocks.js:5002 -#: js/MediaBlocks.js:888 -msgid "show" -msgstr "hiển thị" - -#: js/blocks.js:5005 -#: js/MediaBlocks.js:803 -#.TRANS: Avatar is the image used to determine the appearance of the mouse. -msgid "avatar" +#: js/SaveInterface.js:405 +#.TRANS: Project title prompt for save as Lilypond +msgid "Project author" msgstr "" -#: js/blocks.js:5008 -#: js/ToneBlocks.js:1010 -#: js/sampler.js:693 -#.TRANS: The sound sample that the user uploads. -msgid "sample" +#: js/SaveInterface.js:407 +#.TRANS: MIDI prompt for save as Lilypond +msgid "Include MIDI output?" msgstr "" -#: js/turtles.js:874 -msgid "Grid" +#: js/SaveInterface.js:409 +#.TRANS: Guitar prompt for save as Lilypond +msgid "Include guitar tablature output?" msgstr "" -#: js/turtles.js:891 -#: js/turtledefs.js:626 -msgid "Clean" -msgstr "Làm sạch" +#: js/SaveInterface.js:411 +#.TRANS: Lilypond is a scripting language for generating sheet music +msgid "Save as Lilypond" +msgstr "" -#: js/turtles.js:912 -#: js/turtledefs.js:632 -msgid "Collapse" +#: js/SaveInterface.js:426 +#: js/blocks/EnsembleBlocks.js:75 +#: js/blocks/EnsembleBlocks.js:154 +#: js/blocks/EnsembleBlocks.js:216 +#: js/blocks/EnsembleBlocks.js:302 +#: js/blocks/EnsembleBlocks.js:348 +#: js/blocks/EnsembleBlocks.js:389 +#: js/blocks/EnsembleBlocks.js:441 +#: js/blocks/EnsembleBlocks.js:490 +#: js/blocks/EnsembleBlocks.js:536 +#: js/blocks/EnsembleBlocks.js:583 +#: js/blocks/EnsembleBlocks.js:637 +#: js/blocks/EnsembleBlocks.js:753 +#: js/blocks/EnsembleBlocks.js:840 +#: js/blocks/EnsembleBlocks.js:899 +#: js/blocks/EnsembleBlocks.js:942 +#: js/blocks/EnsembleBlocks.js:1212 +#: js/blocks/EnsembleBlocks.js:1280 +#.TRANS: default project author when saving as Lilypond +msgid "Mr. Mouse" msgstr "" -#: js/turtles.js:940 -msgid "Expand" +#: js/SaveInterface.js:573 +msgid "The Lilypond code is copied to clipboard. You can paste it here: " msgstr "" #: js/languagebox.js:198 @@ -2409,6933 +2264,7487 @@ msgstr "" msgid "Music Blocks is already set to this language." msgstr "" -#: js/piemenus.js:200 -#: js/musicutils.js:808 -#: js/musicutils.js:824 -#: js/phrasemaker.js:1672 -#: js/musickeyboard.js:2041 -#: js/sampler.js:544 -#.TRANS: double sharp is a music term related to pitch -msgid "double sharp" +#: js/planetInterface.js:131 +msgid "project undefined" msgstr "" -#: js/piemenus.js:201 -#: js/PitchBlocks.js:1510 -#: js/PitchActions.js:580 -#: js/musicutils.js:806 -#: js/musicutils.js:825 -#: js/phrasemaker.js:1673 -#: js/musickeyboard.js:2042 -#: js/sampler.js:545 -#.TRANS: sharp is a half-step up in pitch -#.TRANS: sharp is a music term related to pitch -msgid "sharp" +#: js/rubrics.js:523 +#: js/turtledefs.js:119 +#: js/turtledefs.js:221 +#: js/blocks/RhythmBlockPaletteBlocks.js:52 +#: js/blocks/RhythmBlockPaletteBlocks.js:234 +#: js/blocks/ProgramBlocks.js:745 +#: js/widgets/rhythmruler.js:2057 +#: js/widgets/rhythmruler.js:2064 +#: js/widgets/rhythmruler.js:2133 +#: js/widgets/rhythmruler.js:2140 +#: js/widgets/rhythmruler.js:2219 +#.TRANS: an arrangement of notes based on duration +msgid "rhythm" msgstr "" -#: js/piemenus.js:202 -#: js/musicutils.js:804 -#: js/musicutils.js:826 -#: js/phrasemaker.js:1674 -#: js/musickeyboard.js:2043 -#: js/sampler.js:546 -#.TRANS: natural is a music term related to pitch -msgid "natural" +#: js/rubrics.js:524 +#: js/turtledefs.js:121 +#: js/turtledefs.js:223 +#: js/block-verbose.js:2622 +#: js/block.js:2550 +#: js/blocks/IntervalsBlocks.js:63 +#: js/blocks/SensorsBlocks.js:178 +#: js/blocks/PitchBlocks.js:1839 +#: js/blocks/PitchBlocks.js:1853 +#: js/widgets/musickeyboard.js:1935 +#: js/widgets/phrasemaker.js:1036 +#.TRANS: pitch number +#.TRANS: pitch number +#.TRANS: we specify pitch in terms of a name and an octave. The name can be CDEFGAB or Do Re Mi Fa Sol La Ti. Octave is a number between 1 and 8. +msgid "pitch" msgstr "" -#: js/piemenus.js:203 -#: js/PitchBlocks.js:1469 -#: js/PitchActions.js:583 -#: js/musicutils.js:802 -#: js/musicutils.js:827 -#: js/phrasemaker.js:1675 -#: js/musickeyboard.js:2044 -#: js/sampler.js:547 -#.TRANS: flat is a half-step down in pitch -#.TRANS: flat is a music term related to pitch -msgid "flat" +#: js/rubrics.js:525 +#: js/turtledefs.js:123 +#: js/turtledefs.js:225 +msgid "tone" msgstr "" -#: js/piemenus.js:204 -#: js/musicutils.js:800 -#: js/musicutils.js:828 -#: js/phrasemaker.js:1676 -#: js/musickeyboard.js:2045 -#: js/sampler.js:548 -#.TRANS: double flat is a music term related to pitch -msgid "double flat" +#: js/rubrics.js:526 +#: js/lilypond.js:605 +#: js/lilypond.js:904 +#: js/lilypond.js:910 +#: js/lilypond.js:948 +msgid "mouse" msgstr "" -#: js/piemenus.js:2861 -#: js/PitchBlocks.js:1357 -#: js/musicutils.js:627 -#.TRANS: unison means the note is the same as the current note -#.TRANS: unison is a music term related to intervals -msgid "unison" +#: js/rubrics.js:527 +#: js/turtledefs.js:132 +#: js/turtledefs.js:234 +#: js/widgets/phrasemaker.js:1040 +msgid "pen" msgstr "" -#: js/piemenus.js:3015 -#: js/piemenus.js:3088 -#: js/musicutils.js:635 -#: js/musicutils.js:810 -#: js/musicutils.js:912 -#.TRANS: major is a music term related to intervals and mode -msgid "major" -msgstr "" +#: js/rubrics.js:528 +#: js/turtledefs.js:133 +#: js/turtledefs.js:235 +#: js/blocks/NumberBlocks.js:981 +#: js/blocks/PitchBlocks.js:1717 +#: js/blocks/PitchBlocks.js:1758 +msgid "number" +msgstr "số" -#: js/piemenus.js:3015 -#: js/piemenus.js:3088 -#: js/musicutils.js:653 -#.TRANS: modal scale for music -msgid "ionian" +#: js/rubrics.js:529 +#: js/turtledefs.js:127 +#: js/turtledefs.js:229 +msgid "flow" msgstr "" -#: js/piemenus.js:3017 -#: js/piemenus.js:3092 -#: js/musicutils.js:633 -#: js/musicutils.js:811 -#: js/musicutils.js:909 -#.TRANS: minor is a music term related to intervals and mode -msgid "minor" -msgstr "" +#: js/rubrics.js:530 +#: js/turtledefs.js:128 +#: js/turtledefs.js:230 +#: js/block-verbose.js:1609 +#: js/block-verbose.js:4559 +#: js/block-verbose.js:4577 +#: js/block-verbose.js:4588 +#: js/block.js:1573 +#: js/block.js:4483 +#: js/block.js:4501 +#: js/block.js:4512 +#: js/blocks.js:1018 +#: js/blocks.js:3491 +#: js/blocks.js:3492 +#: js/blocks.js:3717 +#: js/blocks.js:4076 +#: js/blocks.js:4269 +#: js/blocks.js:5432 +#: js/blocks.js:6563 +#: js/macros.js:170 +#: js/macros.js:266 +#: js/macros.js:267 +#: js/macros.js:276 +#: js/macros.js:828 +#: js/palette.js:527 +#: js/palette.js:536 +#: js/palette.js:545 +#: js/palette.js:554 +#: js/palette.js:1129 +#: js/palette.js:1140 +#: js/palette.js:1151 +#: js/palette.js:1162 +#: js/palette.js:1181 +#: js/blocks/ActionBlocks.js:254 +#: js/blocks/ActionBlocks.js:307 +#: js/blocks/ActionBlocks.js:617 +#: js/blocks/ActionBlocks.js:716 +#: js/blocks/ActionBlocks.js:961 +#: js/blocks/ActionBlocks.js:1049 +#: js/blocks/ActionBlocks.js:1322 +#: js/blocks/ActionBlocks.js:1325 +#: js/blocks/ActionBlocks.js:1337 +#: js/blocks/ActionBlocks.js:1404 +#: js/blocks/MeterBlocks.js:715 +#: js/blocks/MeterBlocks.js:768 +#: js/blocks/MeterBlocks.js:831 +#: js/blocks/MeterBlocks.js:892 +#: js/widgets/musickeyboard.js:2986 +#: js/widgets/phrasemaker.js:4913 +#: js/widgets/rhythmruler.js:2319 +#: js/widgets/rhythmruler.js:2326 +#: js/widgets/rhythmruler.js:2511 +#: js/widgets/rhythmruler.js:2518 +msgid "action" +msgstr "hành vi" -#: js/piemenus.js:3017 -#: js/piemenus.js:3092 -#: js/musicutils.js:663 -#.TRANS: modal scale for music -msgid "aeolian" +#: js/rubrics.js:531 +#: js/turtledefs.js:136 +#: js/turtledefs.js:238 +msgid "sensors" msgstr "" -#: js/piemenus.js:3407 -msgid "Duplicate" +#: js/rubrics.js:532 +#: js/turtledefs.js:135 +#: js/turtledefs.js:237 +#: js/blocks/MediaBlocks.js:930 +msgid "media" msgstr "" -#: js/piemenus.js:3408 -#: js/turtledefs.js:534 -msgid "Extract" +#: js/rubrics.js:533 +msgid "mice" msgstr "" -#: js/piemenus.js:3409 -msgid "Move to trash" +#: js/toolbar.js:48 +#: js/toolbar.js:109 +msgid "About Music Blocks" msgstr "" -#: js/piemenus.js:3410 -#: js/timbre.js:968 -#: js/StringHelper.js:69 -msgid "Close" +#: js/toolbar.js:49 +#: js/toolbar.js:110 +#: js/toolbar.js:175 +#: js/toolbar.js:231 +#: js/turtledefs.js:445 +#: js/turtledefs.js:482 +#: js/activity.js:2660 +#: js/activity.js:2671 +#: js/activity.js:2902 +#: js/widgets/modewidget.js:77 +#: js/widgets/meterwidget.js:185 +#: js/widgets/pitchdrummatrix.js:147 +#: js/widgets/pitchdrummatrix.js:687 +#: js/widgets/pitchdrummatrix.js:689 +#: js/widgets/pitchdrummatrix.js:741 +#: js/widgets/pitchdrummatrix.js:743 +#: js/widgets/pitchdrummatrix.js:758 +#: js/widgets/pitchdrummatrix.js:760 +#: js/widgets/pitchdrummatrix.js:789 +#: js/widgets/pitchdrummatrix.js:791 +#: js/widgets/pitchstaircase.js:121 +#: js/widgets/temperament.js:610 +#: js/widgets/temperament.js:613 +#: js/widgets/temperament.js:673 +#: js/widgets/temperament.js:675 +#: js/widgets/temperament.js:2017 +#: js/widgets/temperament.js:2019 +#: js/widgets/tempo.js:84 +#: js/widgets/tempo.js:86 +#: js/widgets/timbre.js:432 +#: js/widgets/timbre.js:434 +#: js/widgets/timbre.js:465 +#: js/widgets/timbre.js:467 +#: js/widgets/timbre.js:746 +#: js/widgets/aiwidget.js:647 +#: js/widgets/aiwidget.js:654 +#: js/widgets/aiwidget.js:656 +#: js/widgets/arpeggio.js:90 +#: js/widgets/arpeggio.js:547 +#: js/widgets/arpeggio.js:549 +#: js/widgets/arpeggio.js:644 +#: js/widgets/arpeggio.js:646 +#: js/widgets/musickeyboard.js:676 +#: js/widgets/musickeyboard.js:872 +#: js/widgets/musickeyboard.js:874 +#: js/widgets/musickeyboard.js:953 +#: js/widgets/musickeyboard.js:955 +#: js/widgets/phrasemaker.js:513 +#: js/widgets/phrasemaker.js:523 +#: js/widgets/phrasemaker.js:525 +#: js/widgets/phrasemaker.js:4304 +#: js/widgets/phrasemaker.js:4528 +#: js/widgets/phrasemaker.js:4533 +#: js/widgets/phrasemaker.js:4535 +#: js/widgets/phrasemaker.js:4650 +#: js/widgets/rhythmruler.js:637 +#: js/widgets/rhythmruler.js:639 +#: js/widgets/rhythmruler.js:653 +#: js/widgets/rhythmruler.js:655 +#: js/widgets/sampler.js:162 +#: js/widgets/sampler.js:164 +#: js/widgets/sampler.js:363 +msgid "Play" msgstr "" -#: js/piemenus.js:3416 -msgid "Save stack" +#: js/toolbar.js:50 +#: js/toolbar.js:111 +#: js/toolbar.js:176 +#: js/toolbar.js:232 +#: js/turtledefs.js:451 +#: js/turtledefs.js:488 +#: js/activity.js:2679 +#: js/widgets/modewidget.js:99 +#: js/widgets/modewidget.js:101 +#: js/widgets/meterwidget.js:206 +#: js/widgets/meterwidget.js:208 +#: js/widgets/pitchdrummatrix.js:674 +#: js/widgets/pitchdrummatrix.js:676 +#: js/widgets/temperament.js:2002 +#: js/widgets/temperament.js:2004 +#: js/widgets/arpeggio.js:534 +#: js/widgets/arpeggio.js:536 +#: js/widgets/phrasemaker.js:534 +#: js/widgets/phrasemaker.js:536 +msgid "Stop" +msgstr "Dừng" + +#: js/toolbar.js:51 +#: js/toolbar.js:112 +#: js/toolbar.js:177 +#: js/toolbar.js:233 +#: js/turtledefs.js:498 +msgid "Record" msgstr "" -#: js/piemenus.js:3420 -#: js/toolbar.js:60 -#: js/toolbar.js:120 -#: js/toolbar.js:185 +#: js/toolbar.js:52 +#: js/toolbar.js:53 +msgid "Full screen" +msgstr "" + +#: js/toolbar.js:54 +#: js/toolbar.js:115 +#: js/toolbar.js:180 +#: js/toolbar.js:236 +#: js/turtledefs.js:504 +msgid "Toggle Fullscreen" +msgstr "" + +#: js/toolbar.js:55 +#: js/toolbar.js:116 +#: js/toolbar.js:181 +#: js/toolbar.js:237 +#: js/turtledefs.js:510 +#: planet/js/StringHelper.js:33 +msgid "New project" +msgstr "" + +#: js/toolbar.js:56 +#: js/toolbar.js:117 +#: js/toolbar.js:182 +#: js/toolbar.js:238 +#: js/turtledefs.js:516 +msgid "Load project from file" +msgstr "" + +#: js/toolbar.js:57 +#: js/toolbar.js:118 +#: js/toolbar.js:119 +#: js/toolbar.js:183 +#: js/toolbar.js:239 +#: js/turtledefs.js:541 +#: js/turtledefs.js:550 +#: js/turtledefs.js:571 +msgid "Save project" +msgstr "" + +#: js/toolbar.js:58 +#: js/toolbar.js:77 +#: js/toolbar.js:79 +#: js/toolbar.js:138 +#: js/toolbar.js:147 +#: js/toolbar.js:149 +#: js/toolbar.js:184 +#: js/toolbar.js:202 +#: js/toolbar.js:204 #: js/toolbar.js:240 +#: js/toolbar.js:258 +#: js/toolbar.js:260 +msgid "Save project as HTML" +msgstr "" + +#: js/toolbar.js:59 +#: js/toolbar.js:120 +#: js/toolbar.js:185 +#: js/toolbar.js:241 +msgid "Find and share projects" +msgstr "" + +#: js/toolbar.js:60 +#: js/toolbar.js:121 +#: js/toolbar.js:186 +#: js/toolbar.js:242 +msgid "Offline. Sharing is unavailable" +msgstr "" + +#: js/toolbar.js:61 +#: js/toolbar.js:122 +#: js/toolbar.js:187 +#: js/toolbar.js:243 +msgid "Auxiliary menu" +msgstr "" + +#: js/toolbar.js:62 +#: js/toolbar.js:123 +#: js/toolbar.js:188 +#: js/toolbar.js:244 #: js/turtledefs.js:752 +#: js/piemenus.js:3423 msgid "Help" msgstr "Trợ giúp" -#: js/piemenus.js:3762 -msgid "You have chosen key " +#: js/toolbar.js:63 +#: js/toolbar.js:124 +#: js/toolbar.js:189 +#: js/toolbar.js:245 +msgid "Run slowly" +msgstr "" + +#: js/toolbar.js:64 +#: js/toolbar.js:125 +#: js/toolbar.js:190 +#: js/toolbar.js:246 +#: js/turtledefs.js:682 +msgid "Run step by step" +msgstr "" + +#: js/toolbar.js:65 +#: js/toolbar.js:126 +#: js/toolbar.js:191 +#: js/toolbar.js:247 +#: js/turtledefs.js:689 +msgid "Display statistics" +msgstr "" + +#: js/toolbar.js:66 +#: js/toolbar.js:127 +#: js/toolbar.js:192 +#: js/toolbar.js:248 +msgid "Load plugin" +msgstr "" + +#: js/toolbar.js:67 +#: js/toolbar.js:128 +#: js/toolbar.js:193 +#: js/toolbar.js:249 +#: js/turtledefs.js:696 +msgid "Delete plugin" +msgstr "" + +#: js/toolbar.js:68 +#: js/toolbar.js:129 +#: js/toolbar.js:194 +#: js/toolbar.js:250 +msgid "Enable horizontal scrolling" +msgstr "" + +#: js/toolbar.js:69 +#: js/toolbar.js:130 +#: js/toolbar.js:195 +#: js/toolbar.js:251 +msgid "Disable horizontal scrolling" +msgstr "" + +#: js/toolbar.js:70 +#: js/toolbar.js:131 +#: js/toolbar.js:196 +#: js/toolbar.js:252 +#: planet/js/LocalCard.js:54 +#: planet/js/StringHelper.js:71 +msgid "Merge with current project" +msgstr "" + +#: js/toolbar.js:71 +#: js/toolbar.js:132 +msgid "Set Pitch Preview" +msgstr "" + +#: js/toolbar.js:72 +#: js/toolbar.js:133 +#: js/toolbar.js:197 +#: js/toolbar.js:253 +msgid "JavaScript Editor" +msgstr "" + +#: js/toolbar.js:73 +#: js/toolbar.js:134 +#: js/toolbar.js:198 +#: js/toolbar.js:254 +#: js/turtledefs.js:724 +msgid "Restore" +msgstr "" + +#: js/toolbar.js:74 +#: js/toolbar.js:135 +#: js/toolbar.js:199 +#: js/toolbar.js:255 +msgid "Switch to beginner mode" +msgstr "" + +#: js/toolbar.js:75 +#: js/toolbar.js:136 +#: js/toolbar.js:200 +#: js/toolbar.js:256 +msgid "Switch to advanced mode" +msgstr "" + +#: js/toolbar.js:76 +#: js/toolbar.js:137 +#: js/toolbar.js:146 +#: js/toolbar.js:201 +#: js/toolbar.js:257 +#: js/turtledefs.js:738 +msgid "Select language" +msgstr "" + +#: js/toolbar.js:78 +#: js/toolbar.js:81 +#: js/toolbar.js:140 +#: js/turtledefs.js:579 +msgid "Save mouse artwork as PNG" +msgstr "" + +#: js/toolbar.js:80 +#: js/toolbar.js:139 +#: js/turtledefs.js:575 +msgid "Save mouse artwork as SVG" +msgstr "" + +#: js/toolbar.js:82 +#: js/toolbar.js:141 +#: js/turtledefs.js:583 +msgid "Save music as WAV" +msgstr "" + +#: js/toolbar.js:83 +#: js/toolbar.js:142 +#: js/turtledefs.js:587 +msgid "Save sheet music as ABC" +msgstr "" + +#: js/toolbar.js:84 +#: js/toolbar.js:143 +#: js/turtledefs.js:591 +msgid "Save sheet music as Lilypond" +msgstr "" + +#: js/toolbar.js:85 +msgid "Save sheet music as MusicXML" +msgstr "" + +#: js/toolbar.js:86 +#: js/toolbar.js:144 +#: js/toolbar.js:152 +#: js/toolbar.js:207 +#: js/toolbar.js:263 +#: js/turtledefs.js:562 +#: js/turtledefs.js:595 +msgid "Save block artwork as SVG" +msgstr "" + +#: js/toolbar.js:87 +#: js/toolbar.js:145 +#: js/toolbar.js:153 +#: js/toolbar.js:208 +#: js/toolbar.js:264 +#: js/turtles.js:911 +msgid "Confirm" +msgstr "" + +#: js/toolbar.js:88 +#: js/toolbar.js:154 +#: js/toolbar.js:209 +#: js/toolbar.js:265 +msgid "English (United States)" +msgstr "" + +#: js/toolbar.js:89 +#: js/toolbar.js:155 +#: js/toolbar.js:210 +#: js/toolbar.js:266 +msgid "English (United Kingdom)" +msgstr "" + +#: js/toolbar.js:90 +#: js/toolbar.js:156 +#: js/toolbar.js:211 +#: js/toolbar.js:267 +msgid "日本語" +msgstr "" + +#: js/toolbar.js:91 +msgid "한국어" +msgstr "" + +#: js/toolbar.js:92 +#: js/toolbar.js:158 +#: js/toolbar.js:213 +#: js/toolbar.js:269 +msgid "español" +msgstr "" + +#: js/toolbar.js:93 +#: js/toolbar.js:159 +#: js/toolbar.js:214 +#: js/toolbar.js:270 +msgid "português" +msgstr "" + +#: js/toolbar.js:94 +#: js/toolbar.js:160 +#: js/toolbar.js:215 +#: js/toolbar.js:271 +msgid "にほんご" +msgstr "" + +#: js/toolbar.js:95 +#: js/toolbar.js:161 +#: js/toolbar.js:216 +#: js/toolbar.js:272 +msgid "中文" +msgstr "" + +#: js/toolbar.js:96 +#: js/toolbar.js:162 +#: js/toolbar.js:217 +#: js/toolbar.js:273 +msgid "ภาษาไทย" +msgstr "" + +#: js/toolbar.js:97 +#: js/toolbar.js:163 +#: js/toolbar.js:218 +#: js/toolbar.js:274 +msgid "aymara" +msgstr "" + +#: js/toolbar.js:98 +#: js/toolbar.js:164 +#: js/toolbar.js:219 +#: js/toolbar.js:275 +msgid "quechua" +msgstr "" + +#: js/toolbar.js:99 +#: js/toolbar.js:165 +#: js/toolbar.js:220 +#: js/toolbar.js:276 +msgid "guarani" +msgstr "" + +#: js/toolbar.js:100 +#: js/toolbar.js:166 +#: js/toolbar.js:221 +#: js/toolbar.js:277 +msgid "हिंदी" +msgstr "" + +#: js/toolbar.js:101 +#: js/toolbar.js:168 +#: js/toolbar.js:222 +#: js/toolbar.js:279 +msgid "igbo" +msgstr "" + +#: js/toolbar.js:102 +#: js/toolbar.js:169 +#: js/toolbar.js:223 +#: js/toolbar.js:280 +msgid "عربى" +msgstr "" + +#: js/toolbar.js:103 +#: js/toolbar.js:167 +#: js/toolbar.js:224 +#: js/toolbar.js:278 +msgid "తెలుగు" +msgstr "" + +#: js/toolbar.js:104 +#: js/toolbar.js:170 +#: js/toolbar.js:225 +#: js/toolbar.js:281 +msgid "עִברִית" +msgstr "" + +#: js/toolbar.js:113 +#: js/toolbar.js:114 +#: js/toolbar.js:178 +#: js/toolbar.js:179 +#: js/toolbar.js:234 +#: js/toolbar.js:235 +msgid "Full Screen" +msgstr "" + +#: js/toolbar.js:148 +#: js/toolbar.js:151 +#: js/toolbar.js:203 +#: js/toolbar.js:206 +#: js/toolbar.js:259 +#: js/toolbar.js:262 +#: js/turtledefs.js:558 +msgid "Save turtle artwork as PNG" +msgstr "" + +#: js/toolbar.js:150 +#: js/toolbar.js:205 +#: js/toolbar.js:261 +#: js/turtledefs.js:554 +msgid "Save turtle artwork as SVG" +msgstr "" + +#: js/toolbar.js:157 +#: js/toolbar.js:212 +#: js/toolbar.js:268 +msgid "한국인" +msgstr "" + +#: js/toolbar.js:174 +#: js/toolbar.js:230 +msgid "About Turtle Blocks" +msgstr "" + +#: js/toolbar.js:446 +#: js/toolbar.js:457 +#: js/toolbar.js:497 +msgid "Turtle Wrap Off" +msgstr "" + +#: js/toolbar.js:466 +#: js/toolbar.js:506 +msgid "Turtle Wrap On" +msgstr "" + +#: js/turtle-painter.js:1192 +#: js/turtle-painter.js:1193 +#: js/turtles.js:118 +#: js/block-verbose.js:1623 +#: js/block.js:1587 +#: js/lilypond.js:749 +#: js/lilypond.js:913 +#: js/lilypond.js:951 +#: js/logo.js:1184 +#: js/blocks/ActionBlocks.js:1223 +#: js/blocks/ProgramBlocks.js:1267 +msgid "start" +msgstr "đầu" + +#: js/turtledefs.js:40 +#.TRANS: put the URL to the guide here, e.g., https://github.com/sugarlabs/turtleblocksjs/tree/master/guide/README.md +msgid "guide url" +msgstr "" + +#: js/turtledefs.js:85 +#: js/turtledefs.js:437 +msgid "Turtle Blocks is a Logo-inspired turtle that draws colorful pictures with snap-together visual-programming blocks." +msgstr "" + +#: js/turtledefs.js:118 +#: js/turtledefs.js:220 +msgid "search" +msgstr "" + +#: js/turtledefs.js:120 +#: js/turtledefs.js:222 +#: js/blocks/MeterBlocks.js:1343 +#: js/blocks/WidgetBlocks.js:522 +#.TRANS: musical meter (time signature), e.g., 4:4 +msgid "meter" +msgstr "" + +#: js/turtledefs.js:122 +#: js/turtledefs.js:224 +msgid "intervals" +msgstr "" + +#: js/turtledefs.js:124 +#: js/turtledefs.js:226 +msgid "ornament" +msgstr "" + +#: js/turtledefs.js:125 +#: js/turtledefs.js:227 +#: js/blocks/VolumeBlocks.js:362 +#: js/blocks/VolumeBlocks.js:502 +#: js/blocks/VolumeBlocks.js:545 +msgid "volume" +msgstr "" + +#: js/turtledefs.js:126 +#: js/turtledefs.js:228 +#: js/block-verbose.js:1700 +#: js/block-verbose.js:2626 +#: js/block.js:1664 +#: js/block.js:2554 +#: js/lilypond.js:732 +#: js/lilypond.js:897 +#: js/lilypond.js:941 +#: js/palette.js:577 +#: js/blocks/RhythmBlocks.js:766 +#: js/blocks/DrumBlocks.js:477 +#: js/blocks/VolumeBlocks.js:502 +#: js/widgets/phrasemaker.js:1038 +msgid "drum" +msgstr "" + +#: js/turtledefs.js:129 +#: js/turtledefs.js:231 +msgid "boxes" +msgstr "" + +#: js/turtledefs.js:130 +#: js/turtledefs.js:232 +msgid "widgets" +msgstr "" + +#: js/turtledefs.js:131 +#: js/turtledefs.js:233 +#: js/widgets/phrasemaker.js:1039 +msgid "graphics" +msgstr "" + +#: js/turtledefs.js:134 +#: js/turtledefs.js:236 +msgid "boolean" +msgstr "" + +#: js/turtledefs.js:137 +#: js/turtledefs.js:239 +#: js/blocks/HeapBlocks.js:59 +#: js/widgets/status.js:147 +msgid "heap" +msgstr "" + +#: js/turtledefs.js:138 +#: js/turtledefs.js:240 +#: js/blocks/DictBlocks.js:142 +#: js/blocks/ProgramBlocks.js:495 +msgid "dictionary" +msgstr "" + +#: js/turtledefs.js:139 +#: js/turtledefs.js:241 +msgid "ensemble" +msgstr "" + +#: js/turtledefs.js:140 +#: js/turtledefs.js:242 +msgid "extras" msgstr "" -#: js/piemenus.js:3766 -msgid " for your pitch preview." +#: js/turtledefs.js:142 +#: js/turtledefs.js:244 +#.TRANS: program as in computer program +#.TRANS: program as in computer program +msgid "program" msgstr "" -#: js/palette.js:571 -msgid "grid" +#: js/turtledefs.js:143 +#: js/turtledefs.js:245 +msgid "my blocks" msgstr "" -#: js/palette.js:577 -#: js/block.js:1540 -#: js/block.js:2343 -#: js/turtledefs.js:126 -#: js/turtledefs.js:228 -#: js/lilypond.js:740 -#: js/lilypond.js:905 -#: js/lilypond.js:949 -#: js/DrumBlocks.js:486 -#: js/RhythmBlocks.js:766 -#: js/VolumeBlocks.js:502 -#: js/phrasemaker.js:823 -msgid "drum" +#: js/turtledefs.js:185 +#: js/turtledefs.js:281 +msgid "artwork" msgstr "" -#: js/palette.js:580 -msgid "effect" +#: js/turtledefs.js:185 +#: js/turtledefs.js:281 +msgid "logic" msgstr "" -#: js/palette.js:586 -msgid "sargam" +#: js/turtledefs.js:185 +#: js/turtledefs.js:281 +msgid "music" msgstr "" -#: js/palette.js:589 -#: js/activity.js:1833 -#: js/RhythmBlocks.js:923 -#: js/PitchBlocks.js:442 -#: js/PitchBlocks.js:1748 -#.TRANS: a numeric mapping of the notes in an octave based on the musical mode -msgid "scale degree" +#: js/turtledefs.js:187 +#: js/turtledefs.js:463 +msgid "Music Blocks is a collection of tools for exploring fundamental musical concepts in a fun way." msgstr "" -#: js/palette.js:592 -#: js/activity.js:1860 -msgid "mode name" +#: js/turtledefs.js:436 +msgid "Welcome to Turtle Blocks" msgstr "" -#: js/palette.js:595 -#: js/activity.js:1839 -msgid "invert mode" +#: js/turtledefs.js:438 +#: js/turtledefs.js:465 +#: js/turtledefs.js:774 +#: js/turtledefs.js:805 +msgid "The current version is" msgstr "" -#: js/palette.js:598 -#: js/activity.js:1836 -msgid "voice name" +#: js/turtledefs.js:446 +#: js/turtledefs.js:483 +msgid "Click the run button to run the project in fast mode." msgstr "" -#: js/palette.js:601 -#: js/PitchBlocks.js:1181 -msgid "custom pitch" +#: js/turtledefs.js:452 +msgid "Stop the turtle." msgstr "" -#: js/palette.js:605 -#: js/block.js:1456 -#: js/block.js:1575 -#: js/WidgetBlocks.js:218 -#: js/IntervalsBlocks.js:63 -msgid "temperament" +#: js/turtledefs.js:454 +#: js/turtledefs.js:491 +msgid "You can also type Alt-S to stop." msgstr "" -#: js/palette.js:609 -msgid "accidental" +#: js/turtledefs.js:462 +#: js/widgets/help.js:333 +msgid "Welcome to Music Blocks" msgstr "" -#: js/palette.js:615 -#: js/activity.js:1866 -msgid "interval name" +#: js/turtledefs.js:472 +#: js/widgets/help.js:334 +msgid "Meet Mr. Mouse!" msgstr "" -#: js/palette.js:633 -#: js/PitchBlocks.js:405 -msgid "pitch converter" +#: js/turtledefs.js:473 +msgid "Mr Mouse is our Music Blocks conductor." msgstr "" -#: js/rubrics.js:522 -#: js/turtledefs.js:119 -#: js/turtledefs.js:221 -#: js/RhythmBlockPaletteBlocks.js:52 -#: js/RhythmBlockPaletteBlocks.js:233 -#: js/ProgramBlocks.js:745 -#: js/rhythmruler.js:1670 -#: js/rhythmruler.js:1677 -#: js/rhythmruler.js:1745 -#: js/rhythmruler.js:1752 -#: js/rhythmruler.js:1830 -#.TRANS: an arrangement of notes based on duration -msgid "rhythm" +#: js/turtledefs.js:475 +msgid "Mr Mouse encourages you to explore Music Blocks." msgstr "" -#: js/rubrics.js:523 -#: js/block.js:2339 -#: js/turtledefs.js:121 -#: js/turtledefs.js:223 -#: js/IntervalsBlocks.js:63 -#: js/PitchBlocks.js:1801 -#: js/PitchBlocks.js:1814 -#: js/SensorsBlocks.js:178 -#: js/phrasemaker.js:821 -#: js/musickeyboard.js:1653 -#.TRANS: pitch number -#.TRANS: we specify pitch in terms of a name and an octave. The name can be CDEFGAB or Do Re Mi Fa Sol La Ti. Octave is a number between 1 and 8. -msgid "pitch" +#: js/turtledefs.js:477 +msgid "Let us start our tour!" msgstr "" -#: js/rubrics.js:524 -#: js/turtledefs.js:123 -#: js/turtledefs.js:225 -msgid "tone" +#: js/turtledefs.js:489 +msgid "Stop the music (and the mice)." msgstr "" -#: js/rubrics.js:525 -#: js/lilypond.js:613 -#: js/lilypond.js:912 -#: js/lilypond.js:918 -#: js/lilypond.js:956 -msgid "mouse" +#: js/turtledefs.js:499 +msgid "Record your project as video." msgstr "" -#: js/rubrics.js:526 -#: js/turtledefs.js:132 -#: js/turtledefs.js:234 -#: js/phrasemaker.js:825 -msgid "pen" +#: js/turtledefs.js:505 +msgid "Toggle Fullscreen mode." msgstr "" -#: js/rubrics.js:527 -#: js/turtledefs.js:133 -#: js/turtledefs.js:235 -#: js/NumberBlocks.js:905 -#: js/PitchBlocks.js:1679 -#: js/PitchBlocks.js:1720 -msgid "number" -msgstr "số" +#: js/turtledefs.js:511 +msgid "Initialize a new project." +msgstr "" -#: js/rubrics.js:528 -#: js/turtledefs.js:127 -#: js/turtledefs.js:229 -msgid "flow" +#: js/turtledefs.js:517 +msgid "You can also load projects from the file system." msgstr "" -#: js/rubrics.js:530 -#: js/turtledefs.js:136 -#: js/turtledefs.js:238 -msgid "sensors" +#: js/turtledefs.js:522 +#: planet/js/StringHelper.js:46 +msgid "Delete" msgstr "" -#: js/rubrics.js:531 -#: js/turtledefs.js:135 -#: js/turtledefs.js:237 -#: js/MediaBlocks.js:930 -msgid "media" +#: js/turtledefs.js:523 +msgid "To delete a block, just right-click on it, then you will be able to see the delete option" msgstr "" -#: js/rubrics.js:532 -msgid "mice" +#: js/turtledefs.js:528 +#: js/activity.js:2649 +#: planet/js/LocalCard.js:31 +msgid "Copy" +msgstr "Chép" + +#: js/turtledefs.js:529 +msgid "To copy a block, just right-click on it, then you will be able to see the copy option" msgstr "" -#: js/macros.js:711 -#: js/musicutils.js:783 -#: js/synthutils.js:181 -#.TRANS: animal sound effect -msgid "duck" +#: js/turtledefs.js:534 +#: js/piemenus.js:3411 +msgid "Extract" msgstr "" -#: js/toolbar.js:46 -#: js/toolbar.js:107 -msgid "About Music Blocks" +#: js/turtledefs.js:535 +msgid "To extract a block, just right-click on it, then you will be able to see the extract option" msgstr "" -#: js/toolbar.js:47 -#: js/toolbar.js:108 -#: js/toolbar.js:172 -#: js/toolbar.js:228 -#: js/turtledefs.js:445 -#: js/turtledefs.js:482 -#: js/activity.js:2281 -#: js/activity.js:2289 -#: js/activity.js:2520 -#: js/modewidget.js:77 -#: js/pitchstaircase.js:121 -#: js/phrasemaker.js:302 -#: js/phrasemaker.js:312 -#: js/phrasemaker.js:314 -#: js/phrasemaker.js:3901 -#: js/phrasemaker.js:4061 -#: js/phrasemaker.js:4066 -#: js/phrasemaker.js:4068 -#: js/phrasemaker.js:4183 -#: js/pitchdrummatrix.js:81 -#: js/pitchdrummatrix.js:574 -#: js/pitchdrummatrix.js:576 -#: js/pitchdrummatrix.js:628 -#: js/pitchdrummatrix.js:630 -#: js/pitchdrummatrix.js:645 -#: js/pitchdrummatrix.js:647 -#: js/pitchdrummatrix.js:674 -#: js/pitchdrummatrix.js:676 -#: js/temperament.js:477 -#: js/temperament.js:480 -#: js/temperament.js:540 -#: js/temperament.js:542 -#: js/temperament.js:1835 -#: js/temperament.js:1837 -#: js/temperament.js:1986 -#: js/temperament.js:1988 -#: js/musickeyboard.js:522 -#: js/musickeyboard.js:682 -#: js/musickeyboard.js:684 -#: js/musickeyboard.js:756 -#: js/musickeyboard.js:758 -#: js/rhythmruler.js:298 -#: js/rhythmruler.js:300 -#: js/rhythmruler.js:314 -#: js/rhythmruler.js:316 -#: js/sampler.js:96 -#: js/sampler.js:98 -#: js/sampler.js:229 -#: js/sampler.js:235 -#: js/sampler.js:237 -#: js/tempo.js:84 -#: js/tempo.js:86 -#: js/timbre.js:432 -#: js/timbre.js:434 -#: js/timbre.js:465 -#: js/timbre.js:467 -#: js/timbre.js:746 -#: js/meterwidget.js:80 -#: js/arpeggio.js:90 -#: js/arpeggio.js:547 -#: js/arpeggio.js:549 -#: js/arpeggio.js:644 -#: js/arpeggio.js:646 -msgid "Play" +#: js/turtledefs.js:542 +#: js/turtledefs.js:552 +#: js/turtledefs.js:573 +msgid "Save your project to a file." msgstr "" -#: js/toolbar.js:48 -#: js/toolbar.js:109 -#: js/toolbar.js:173 -#: js/toolbar.js:229 -#: js/turtledefs.js:451 -#: js/turtledefs.js:488 -#: js/activity.js:2297 -#: js/modewidget.js:99 -#: js/modewidget.js:101 -#: js/phrasemaker.js:323 -#: js/phrasemaker.js:325 -#: js/pitchdrummatrix.js:561 -#: js/pitchdrummatrix.js:563 -#: js/temperament.js:1820 -#: js/temperament.js:1822 -#: js/meterwidget.js:101 -#: js/meterwidget.js:103 -#: js/arpeggio.js:534 -#: js/arpeggio.js:536 -msgid "Stop" -msgstr "Dừng" +#: js/turtledefs.js:549 +#: js/turtledefs.js:570 +msgid "save" +msgstr "" -#: js/toolbar.js:49 -#: js/toolbar.js:110 -#: js/toolbar.js:174 -#: js/toolbar.js:230 -#: js/turtledefs.js:498 -msgid "Record" +#: js/turtledefs.js:556 +#: js/turtledefs.js:577 +msgid "Save graphics from your project to as SVG." msgstr "" -#: js/toolbar.js:50 -#: js/toolbar.js:51 -msgid "Full screen" +#: js/turtledefs.js:560 +#: js/turtledefs.js:581 +msgid "Save graphics from your project as PNG." msgstr "" -#: js/toolbar.js:52 -#: js/toolbar.js:112 -#: js/toolbar.js:177 -#: js/toolbar.js:232 -#: js/turtledefs.js:504 -msgid "Toggle Fullscreen" +#: js/turtledefs.js:564 +#: js/turtledefs.js:597 +msgid "Save block artwork as an SVG file." msgstr "" -#: js/toolbar.js:53 -#: js/toolbar.js:113 -#: js/toolbar.js:178 -#: js/toolbar.js:233 -#: js/turtledefs.js:510 -#: js/StringHelper.js:33 -msgid "New project" +#: js/turtledefs.js:585 +msgid "Save audio from your project as WAV." msgstr "" -#: js/toolbar.js:54 -#: js/toolbar.js:114 -#: js/toolbar.js:179 -#: js/toolbar.js:234 -#: js/turtledefs.js:516 -msgid "Load project from file" +#: js/turtledefs.js:589 +msgid "Save your project to as an ABC file." msgstr "" -#: js/toolbar.js:55 -#: js/toolbar.js:115 -#: js/toolbar.js:116 -#: js/toolbar.js:180 -#: js/toolbar.js:235 -#: js/turtledefs.js:541 -#: js/turtledefs.js:550 -#: js/turtledefs.js:571 -msgid "Save project" +#: js/turtledefs.js:593 +msgid "Save your project to as a Lilypond file." msgstr "" -#: js/toolbar.js:56 -#: js/toolbar.js:75 -#: js/toolbar.js:77 -#: js/toolbar.js:135 -#: js/toolbar.js:144 -#: js/toolbar.js:146 -#: js/toolbar.js:181 -#: js/toolbar.js:199 -#: js/toolbar.js:201 -#: js/toolbar.js:236 -#: js/toolbar.js:254 -#: js/toolbar.js:256 -msgid "Save project as HTML" +#: js/turtledefs.js:604 +msgid "Load samples from server" +msgstr "" + +#: js/turtledefs.js:605 +msgid "This button opens a viewer for loading example projects." +msgstr "" + +#: js/turtledefs.js:611 +msgid "Palette buttons" +msgstr "" + +#: js/turtledefs.js:612 +msgid "This toolbar contains the palette buttons including Rhythm Pitch Tone Action and more." +msgstr "" + +#: js/turtledefs.js:614 +msgid "Click to show the palettes of blocks and drag blocks from the palettes onto the canvas to use them." +msgstr "" + +#: js/turtledefs.js:620 +msgid "Cartesian/Polar" msgstr "" -#: js/toolbar.js:57 -#: js/toolbar.js:117 -#: js/toolbar.js:182 -#: js/toolbar.js:237 -msgid "Find and share projects" +#: js/turtledefs.js:621 +msgid "Show or hide a coordinate grid." msgstr "" -#: js/toolbar.js:58 -#: js/toolbar.js:118 -#: js/toolbar.js:183 -#: js/toolbar.js:238 -msgid "Offline. Sharing is unavailable" +#: js/turtledefs.js:626 +#: js/turtles.js:902 +msgid "Clean" +msgstr "Làm sạch" + +#: js/turtledefs.js:627 +msgid "Clear the screen and return the mice to their initial positions." msgstr "" -#: js/toolbar.js:59 -#: js/toolbar.js:119 -#: js/toolbar.js:184 -#: js/toolbar.js:239 -msgid "Auxiliary menu" +#: js/turtledefs.js:632 +#: js/turtles.js:955 +msgid "Collapse" msgstr "" -#: js/toolbar.js:61 -#: js/toolbar.js:121 -#: js/toolbar.js:186 -#: js/toolbar.js:241 -msgid "Run slowly" +#: js/turtledefs.js:633 +msgid "Collapse the graphics window." msgstr "" -#: js/toolbar.js:62 -#: js/toolbar.js:122 -#: js/toolbar.js:187 -#: js/toolbar.js:242 -#: js/turtledefs.js:682 -msgid "Run step by step" +#: js/turtledefs.js:638 +#: js/activity.js:5684 +msgid "Home" msgstr "" -#: js/toolbar.js:63 -#: js/toolbar.js:123 -#: js/toolbar.js:188 -#: js/toolbar.js:243 -#: js/turtledefs.js:689 -msgid "Display statistics" +#: js/turtledefs.js:639 +msgid "Return all blocks to the center of the screen." msgstr "" -#: js/toolbar.js:64 -#: js/toolbar.js:124 -#: js/toolbar.js:189 -#: js/toolbar.js:244 -msgid "Load plugin" +#: js/turtledefs.js:644 +msgid "Show/hide blocks" +msgstr "Hiện/ẩn khối" + +#: js/turtledefs.js:645 +msgid "Hide or show the blocks and the palettes." msgstr "" -#: js/toolbar.js:65 -#: js/toolbar.js:125 -#: js/toolbar.js:190 -#: js/toolbar.js:245 -#: js/turtledefs.js:696 -msgid "Delete plugin" +#: js/turtledefs.js:650 +msgid "Expand/collapse collapsable blocks" msgstr "" -#: js/toolbar.js:66 -#: js/toolbar.js:126 -#: js/toolbar.js:191 -#: js/toolbar.js:246 -msgid "Enable horizontal scrolling" +#: js/turtledefs.js:651 +msgid "Expand or collapse start and action stacks." msgstr "" -#: js/toolbar.js:67 -#: js/toolbar.js:127 -#: js/toolbar.js:192 -#: js/toolbar.js:247 -msgid "Disable horizontal scrolling" +#: js/turtledefs.js:658 +#: js/activity.js:5704 +msgid "Decrease block size" msgstr "" -#: js/toolbar.js:68 -#: js/toolbar.js:128 -#: js/toolbar.js:193 -#: js/toolbar.js:248 -#: js/LocalCard.js:54 -#: js/StringHelper.js:71 -msgid "Merge with current project" +#: js/turtledefs.js:659 +msgid "Decrease the size of the blocks." msgstr "" -#: js/toolbar.js:69 -#: js/toolbar.js:129 -msgid "Set Pitch Preview" +#: js/turtledefs.js:664 +#: js/activity.js:5710 +msgid "Increase block size" msgstr "" -#: js/toolbar.js:70 -#: js/toolbar.js:130 -#: js/toolbar.js:194 -#: js/toolbar.js:249 -msgid "Toggle JavaScript Editor" +#: js/turtledefs.js:665 +msgid "Increase the size of the blocks." msgstr "" -#: js/toolbar.js:71 -#: js/toolbar.js:131 -#: js/toolbar.js:195 -#: js/toolbar.js:250 -#: js/turtledefs.js:724 -msgid "Restore" +#: js/turtledefs.js:670 +msgid "Expand/collapse option toolbar" msgstr "" -#: js/toolbar.js:72 -#: js/toolbar.js:132 -#: js/toolbar.js:196 -#: js/toolbar.js:251 -msgid "Switch to beginner mode" +#: js/turtledefs.js:671 +msgid "Click this button to expand or collapse the auxillary toolbar." msgstr "" -#: js/toolbar.js:73 -#: js/toolbar.js:133 -#: js/toolbar.js:197 -#: js/toolbar.js:252 -msgid "Switch to advanced mode" +#: js/turtledefs.js:676 +msgid "Run slow" msgstr "" -#: js/toolbar.js:74 -#: js/toolbar.js:134 -#: js/toolbar.js:143 -#: js/toolbar.js:198 -#: js/toolbar.js:253 -#: js/turtledefs.js:738 -msgid "Select language" +#: js/turtledefs.js:677 +msgid "Click to run the project in slow mode." msgstr "" -#: js/toolbar.js:76 -#: js/toolbar.js:79 -#: js/toolbar.js:137 -#: js/turtledefs.js:579 -msgid "Save mouse artwork as PNG" +#: js/turtledefs.js:683 +msgid "Click to run the project step by step." msgstr "" -#: js/toolbar.js:78 -#: js/toolbar.js:136 -#: js/turtledefs.js:575 -msgid "Save mouse artwork as SVG" +#: js/turtledefs.js:690 +msgid "Display statistics about your Music project." msgstr "" -#: js/toolbar.js:80 -#: js/toolbar.js:138 -#: js/turtledefs.js:583 -msgid "Save music as WAV" +#: js/turtledefs.js:697 +msgid "Delete a selected plugin." msgstr "" -#: js/toolbar.js:81 -#: js/toolbar.js:139 -#: js/turtledefs.js:587 -msgid "Save sheet music as ABC" +#: js/turtledefs.js:704 +msgid "Enable scrolling" msgstr "" -#: js/toolbar.js:82 -#: js/toolbar.js:140 -#: js/turtledefs.js:591 -msgid "Save sheet music as Lilypond" +#: js/turtledefs.js:705 +msgid "You can scroll the blocks on the canvas." msgstr "" -#: js/toolbar.js:83 -msgid "Save sheet music as MusicXML" +#: js/turtledefs.js:714 +msgid "Wrap Turtle" msgstr "" -#: js/toolbar.js:84 -#: js/toolbar.js:141 -#: js/toolbar.js:149 -#: js/toolbar.js:204 -#: js/toolbar.js:259 -#: js/turtledefs.js:562 -#: js/turtledefs.js:595 -msgid "Save block artwork as SVG" +#: js/turtledefs.js:715 +msgid "Turn Turtle wrapping On or Off." msgstr "" -#: js/toolbar.js:85 -#: js/toolbar.js:142 -#: js/toolbar.js:150 -#: js/toolbar.js:205 -#: js/toolbar.js:260 -msgid "Confirm" +#: js/turtledefs.js:725 +msgid "Restore blocks from the trash." msgstr "" -#: js/toolbar.js:86 -#: js/toolbar.js:151 -#: js/toolbar.js:206 -#: js/toolbar.js:261 -msgid "English (United States)" +#: js/turtledefs.js:732 +msgid "Switch mode" msgstr "" -#: js/toolbar.js:87 -#: js/toolbar.js:152 -#: js/toolbar.js:207 -#: js/toolbar.js:262 -msgid "English (United Kingdom)" +#: js/turtledefs.js:733 +msgid "Switch between beginner and advance modes." msgstr "" -#: js/toolbar.js:88 -#: js/toolbar.js:153 -#: js/toolbar.js:208 -#: js/toolbar.js:263 -msgid "日本語" +#: js/turtledefs.js:739 +msgid "Select your language preference." msgstr "" -#: js/toolbar.js:89 -msgid "한국어" +#: js/turtledefs.js:745 +msgid "Keyboard shortcuts" msgstr "" -#: js/toolbar.js:90 -#: js/toolbar.js:155 -#: js/toolbar.js:210 -#: js/toolbar.js:265 -msgid "español" +#: js/turtledefs.js:746 +msgid "You can type d to create a do block and r to create a re block etc." msgstr "" -#: js/toolbar.js:91 -#: js/toolbar.js:156 -#: js/toolbar.js:211 -#: js/toolbar.js:266 -msgid "português" +#: js/turtledefs.js:753 +msgid "Show these messages." msgstr "" -#: js/toolbar.js:92 -#: js/toolbar.js:157 -#: js/toolbar.js:212 -#: js/toolbar.js:267 -msgid "にほんご" +#: js/turtledefs.js:759 +#: js/turtledefs.js:790 +#: js/widgets/help.js:335 +msgid "Guide" msgstr "" -#: js/toolbar.js:93 -#: js/toolbar.js:158 -#: js/toolbar.js:213 -#: js/toolbar.js:268 -msgid "中文" +#: js/turtledefs.js:760 +msgid "A detailed guide to Turtle Blocks is available." msgstr "" -#: js/toolbar.js:94 -#: js/toolbar.js:159 -#: js/toolbar.js:214 -#: js/toolbar.js:269 -msgid "ภาษาไทย" +#: js/turtledefs.js:764 +msgid "Turtle Blocks Guide" msgstr "" -#: js/toolbar.js:95 -#: js/toolbar.js:160 -#: js/toolbar.js:215 -#: js/toolbar.js:270 -msgid "aymara" +#: js/turtledefs.js:767 +#: js/turtledefs.js:798 +#: js/widgets/help.js:336 +msgid "About" +msgstr "" + +#: js/turtledefs.js:768 +msgid "Turtle Blocks is an open source collection of tools for exploring musical concepts." msgstr "" -#: js/toolbar.js:96 -#: js/toolbar.js:161 -#: js/toolbar.js:216 -#: js/toolbar.js:271 -msgid "quechua" +#: js/turtledefs.js:770 +msgid "A full list of contributors can be found in the Turtle Blocks GitHub repository." msgstr "" -#: js/toolbar.js:97 -#: js/toolbar.js:162 -#: js/toolbar.js:217 -#: js/toolbar.js:272 -msgid "guarani" +#: js/turtledefs.js:772 +msgid "Turtle Blocks is licensed under the AGPL." msgstr "" -#: js/toolbar.js:98 -#: js/toolbar.js:163 -#: js/toolbar.js:218 -#: js/toolbar.js:273 -msgid "हिंदी" +#: js/turtledefs.js:780 +msgid "Turtle Blocks GitHub repository" msgstr "" -#: js/toolbar.js:99 -#: js/toolbar.js:165 -#: js/toolbar.js:219 -#: js/toolbar.js:275 -msgid "igbo" +#: js/turtledefs.js:783 +#: js/turtledefs.js:814 +#: js/widgets/help.js:337 +#: js/widgets/help.js:359 +msgid "Congratulations." msgstr "" -#: js/toolbar.js:100 -#: js/toolbar.js:166 -#: js/toolbar.js:220 -#: js/toolbar.js:276 -msgid "عربى" +#: js/turtledefs.js:784 +msgid "You have finished the tour. Please enjoy Turtle Blocks!" msgstr "" -#: js/toolbar.js:101 -#: js/toolbar.js:164 -#: js/toolbar.js:221 -#: js/toolbar.js:274 -msgid "తెలుగు" +#: js/turtledefs.js:791 +msgid "A detailed guide to Music Blocks is available." msgstr "" -#: js/toolbar.js:102 -#: js/toolbar.js:167 -#: js/toolbar.js:222 -#: js/toolbar.js:277 -msgid "עִברִית" +#: js/turtledefs.js:799 +msgid "Music Blocks is an open source collection of tools for exploring musical concepts." msgstr "" -#: js/toolbar.js:111 -#: js/toolbar.js:175 -#: js/toolbar.js:176 -#: js/toolbar.js:231 -msgid "Full Screen" +#: js/turtledefs.js:801 +msgid "A full list of contributors can be found in the Music Blocks GitHub repository." msgstr "" -#: js/toolbar.js:145 -#: js/toolbar.js:148 -#: js/toolbar.js:200 -#: js/toolbar.js:203 -#: js/toolbar.js:255 -#: js/toolbar.js:258 -#: js/turtledefs.js:558 -msgid "Save turtle artwork as PNG" +#: js/turtledefs.js:803 +msgid "Music Blocks is licensed under the AGPL." msgstr "" -#: js/toolbar.js:147 -#: js/toolbar.js:202 -#: js/toolbar.js:257 -#: js/turtledefs.js:554 -msgid "Save turtle artwork as SVG" +#: js/turtledefs.js:811 +msgid "Music Blocks GitHub repository" msgstr "" -#: js/toolbar.js:154 -#: js/toolbar.js:209 -#: js/toolbar.js:264 -msgid "한국인" +#: js/turtledefs.js:815 +msgid "You have finished the tour. Please enjoy Music Blocks!" msgstr "" -#: js/toolbar.js:171 -#: js/toolbar.js:227 -msgid "About Turtle Blocks" +#: js/turtles.js:882 +msgid "Grid" msgstr "" -#: js/toolbar.js:429 -#: js/toolbar.js:440 -msgid "Turtle Wrap Off" +#: js/turtles.js:1024 +msgid "Expand" msgstr "" -#: js/toolbar.js:442 -msgid "Turtle Wrap On" +#: js/block-verbose.js:1616 +#: js/block-verbose.js:1735 +#: js/block.js:1580 +#: js/block.js:1699 +#: js/palette.js:605 +#: js/blocks/IntervalsBlocks.js:63 +#: js/blocks/WidgetBlocks.js:259 +msgid "temperament" msgstr "" -#: js/block.js:1470 +#: js/block-verbose.js:1630 +#: js/block.js:1594 msgid "matrix" msgstr "" -#: js/block.js:1477 -#: js/WidgetBlocks.js:1226 +#: js/block-verbose.js:1637 +#: js/block.js:1601 +#: js/blocks/WidgetBlocks.js:1509 #: plugins/rodi.rtp:324 msgid "status" msgstr "" -#: js/block.js:1484 +#: js/block-verbose.js:1644 +#: js/block.js:1608 msgid "drum mapper" msgstr "" -#: js/block.js:1491 +#: js/block-verbose.js:1651 +#: js/block.js:1615 msgid "ruler" msgstr "" -#: js/block.js:1498 -#: js/WidgetBlocks.js:327 +#: js/block-verbose.js:1658 +#: js/block.js:1622 +#: js/blocks/WidgetBlocks.js:397 #.TRANS: timbre is the character or quality of a musical sound msgid "timbre" msgstr "" -#: js/block.js:1505 +#: js/block-verbose.js:1665 +#: js/block.js:1629 msgid "stair" msgstr "" -#: js/block.js:1512 -#: js/WidgetBlocks.js:577 +#: js/block-verbose.js:1672 +#: js/block.js:1636 +#: js/blocks/WidgetBlocks.js:707 #.TRANS: the speed at music is should be played. msgid "tempo" msgstr "" -#: js/block.js:1519 -#: js/block.js:1582 -#: js/IntervalsBlocks.js:1268 +#: js/block-verbose.js:1679 +#: js/block-verbose.js:1742 +#: js/block.js:1643 +#: js/block.js:1706 +#: js/blocks/IntervalsBlocks.js:1464 #.TRANS: mode, e.g., Major in C Major msgid "mode" msgstr "" -#: js/block.js:1526 +#: js/block-verbose.js:1686 +#: js/block.js:1650 msgid "slider" msgstr "" -#: js/block.js:1533 -#: js/SensorsBlocks.js:1001 +#: js/block-verbose.js:1693 +#: js/block.js:1657 +#: js/blocks/SensorsBlocks.js:1001 msgid "keyboard" msgstr "bàn phím" -#: js/block.js:1547 -#: js/WidgetBlocks.js:957 -#: js/WidgetBlocks.js:988 +#: js/block-verbose.js:1707 +#: js/block.js:1671 +#: js/blocks/WidgetBlocks.js:1190 +#: js/blocks/WidgetBlocks.js:1228 #.TRANS: widget for subdividing a measure into distinct rhythmic elements msgid "rhythm maker" msgstr "" -#: js/block.js:1554 -#: js/block.js:2182 -#: js/block.js:2236 -#: js/RhythmBlockPaletteBlocks.js:70 -#: js/RhythmBlockPaletteBlocks.js:251 -#: js/RhythmBlockPaletteBlocks.js:484 -#: js/RhythmBlockPaletteBlocks.js:553 -#: js/RhythmBlockPaletteBlocks.js:604 -#: js/RhythmBlockPaletteBlocks.js:874 -#: js/RhythmBlocks.js:33 -#: js/RhythmBlocks.js:356 -#: js/RhythmBlocks.js:766 -#: js/RhythmBlocks.js:806 -#: js/OrnamentBlocks.js:220 -#: js/OrnamentBlocks.js:312 -#: js/MeterBlocks.js:1367 -#: js/DictActions.js:85 -#: js/phrasemaker.js:731 -#: js/phrasemaker.js:2393 -#: js/phrasemaker.js:2436 -#: js/phrasemaker.js:2534 +#: js/block-verbose.js:1714 +#: js/block-verbose.js:2457 +#: js/block-verbose.js:2514 +#: js/block.js:1678 +#: js/block.js:2385 +#: js/block.js:2442 +#: js/blocks/MeterBlocks.js:1367 +#: js/blocks/OrnamentBlocks.js:220 +#: js/blocks/OrnamentBlocks.js:312 +#: js/blocks/RhythmBlocks.js:33 +#: js/blocks/RhythmBlocks.js:356 +#: js/blocks/RhythmBlocks.js:766 +#: js/blocks/RhythmBlocks.js:806 +#: js/blocks/RhythmBlockPaletteBlocks.js:70 +#: js/blocks/RhythmBlockPaletteBlocks.js:252 +#: js/blocks/RhythmBlockPaletteBlocks.js:485 +#: js/blocks/RhythmBlockPaletteBlocks.js:554 +#: js/blocks/RhythmBlockPaletteBlocks.js:605 +#: js/blocks/RhythmBlockPaletteBlocks.js:875 +#: js/turtleactions/DictActions.js:85 +#: js/widgets/phrasemaker.js:942 +#: js/widgets/phrasemaker.js:2656 +#: js/widgets/phrasemaker.js:2699 +#: js/widgets/phrasemaker.js:2810 #.TRANS: the value (e.g., 1/4 note) of the note being played. msgid "note value" msgstr "" -#: js/block.js:1561 -#: js/block.js:2110 -#: js/block.js:2133 -#: js/IntervalsBlocks.js:875 -#: js/OrnamentBlocks.js:312 +#: js/block-verbose.js:1721 +#: js/block-verbose.js:2382 +#: js/block-verbose.js:2405 +#: js/block.js:1685 +#: js/block.js:2310 +#: js/block.js:2333 +#: js/blocks/IntervalsBlocks.js:1071 +#: js/blocks/OrnamentBlocks.js:312 #.TRANS: calculate a relative step between notes based on semi-tones msgid "scalar interval" msgstr "" -#: js/block.js:1568 -#: js/RhythmBlocks.js:148 +#: js/block-verbose.js:1728 +#: js/block.js:1692 +#: js/blocks/RhythmBlocks.js:148 msgid "milliseconds" msgstr "" -#: js/block.js:2180 -#: js/block.js:2184 -#: js/block.js:2234 -#: js/block.js:2345 -#: js/ProgramBlocks.js:1273 -#: js/RhythmBlocks.js:712 -#: js/rhythmruler.js:834 -#: js/rhythmruler.js:961 +#: js/block-verbose.js:2455 +#: js/block-verbose.js:2459 +#: js/block-verbose.js:2512 +#: js/block-verbose.js:2628 +#: js/block.js:2383 +#: js/block.js:2387 +#: js/block.js:2440 +#: js/block.js:2556 +#: js/blocks/RhythmBlocks.js:712 +#: js/blocks/ProgramBlocks.js:1273 +#: js/widgets/rhythmruler.js:1183 +#: js/widgets/rhythmruler.js:1329 msgid "silence" msgstr "" -#: js/block.js:2265 -#: js/block.js:3134 -#: js/block.js:3151 -#: js/activity.js:2336 -#: js/activity.js:2387 -#: js/musicutils.js:2932 -#: js/musicutils.js:4287 +#: js/block-verbose.js:2548 +#: js/block-verbose.js:3492 +#: js/block-verbose.js:3509 +#: js/activity.js:2718 +#: js/activity.js:2769 +#: js/block.js:2476 +#: js/block.js:3416 +#: js/block.js:3433 +#: js/utils/musicutils.js:3780 +#: js/utils/musicutils.js:5273 +#.TRANS: the note names must be separated by single spaces #.TRANS: the note names must be separated by single spaces #.TRANS: the note names must be separated by single spaces msgid "ti la sol fa mi re do" msgstr "" -#: js/block.js:2333 +#: js/block-verbose.js:2616 +#: js/block.js:2544 +#.TRANS: scalar step #.TRANS: scalar step msgid "down" msgstr "" -#: js/block.js:2334 +#: js/block-verbose.js:2617 +#: js/block.js:2545 msgid "up" msgstr "" -#: js/block.js:3477 -#: js/block.js:3490 -#: js/ExtrasBlocks.js:612 +#: js/block-verbose.js:3026 +#: js/block.js:2950 +msgid "Silence block cannot be removed." +msgstr "" + +#: js/block-verbose.js:3824 +#: js/block.js:3748 +#: js/blocks.js:2607 +#: js/blocks.js:3218 +#: js/palette.js:618 +#: js/blocks/BooleanBlocks.js:77 +#: js/blocks/BooleanBlocks.js:167 +#: js/blocks/BooleanBlocks.js:251 +#: js/blocks/BooleanBlocks.js:335 +#: js/blocks/BooleanBlocks.js:433 +#: js/blocks/BooleanBlocks.js:539 +#: js/blocks/BooleanBlocks.js:640 +#: js/blocks/BooleanBlocks.js:741 +#: js/blocks/BooleanBlocks.js:847 +#: js/blocks/BooleanBlocks.js:948 +#: js/blocks/BooleanBlocks.js:1033 +#: js/blocks/SensorsBlocks.js:910 +msgid "true" +msgstr "" + +#: js/block-verbose.js:3824 +#: js/block.js:3748 +#: js/blocks.js:2609 +#: js/blocks.js:3220 +#: js/blocks/BooleanBlocks.js:79 +#: js/blocks/BooleanBlocks.js:169 +#: js/blocks/BooleanBlocks.js:253 +#: js/blocks/BooleanBlocks.js:337 +#: js/blocks/BooleanBlocks.js:435 +#: js/blocks/BooleanBlocks.js:541 +#: js/blocks/BooleanBlocks.js:642 +#: js/blocks/BooleanBlocks.js:743 +#: js/blocks/BooleanBlocks.js:849 +#: js/blocks/BooleanBlocks.js:950 +#: js/blocks/SensorsBlocks.js:912 +msgid "false" +msgstr "" + +#: js/block-verbose.js:3835 +#: js/block-verbose.js:3848 +#: js/block.js:3759 +#: js/block.js:3772 +#: js/blocks/ExtrasBlocks.js:615 msgid "Cartesian" msgstr "thuyết Đê-các-tơ" -#: js/block.js:3478 -#: js/block.js:3491 -#: js/ExtrasBlocks.js:616 +#: js/block-verbose.js:3836 +#: js/block-verbose.js:3849 +#: js/block.js:3760 +#: js/block.js:3773 +#: js/blocks/ExtrasBlocks.js:619 msgid "polar" msgstr "" -#: js/block.js:3479 -#: js/block.js:3492 -#: js/ExtrasBlocks.js:620 +#: js/block-verbose.js:3837 +#: js/block-verbose.js:3850 +#: js/block.js:3761 +#: js/block.js:3774 +#: js/blocks/ExtrasBlocks.js:623 msgid "Cartesian+polar" msgstr "" -#: js/block.js:3480 -#: js/block.js:3499 -#: js/ExtrasBlocks.js:649 +#: js/block-verbose.js:3838 +#: js/block-verbose.js:3857 +#: js/block.js:3762 +#: js/block.js:3781 +#: js/blocks/ExtrasBlocks.js:652 msgid "none" msgstr "" -#: js/block.js:3493 -#: js/ExtrasBlocks.js:625 +#: js/block-verbose.js:3851 +#: js/block.js:3775 +#: js/blocks/ExtrasBlocks.js:628 msgid "treble" msgstr "" -#: js/block.js:3494 -#: js/ExtrasBlocks.js:629 +#: js/block-verbose.js:3852 +#: js/block.js:3776 +#: js/blocks/ExtrasBlocks.js:632 msgid "grand staff" msgstr "" -#: js/block.js:3495 -#: js/ExtrasBlocks.js:633 +#: js/block-verbose.js:3853 +#: js/block.js:3777 +#: js/blocks/ExtrasBlocks.js:636 msgid "mezzo-soprano" msgstr "" -#: js/block.js:3496 -#: js/ExtrasBlocks.js:637 +#: js/block-verbose.js:3854 +#: js/block.js:3778 +#: js/blocks/ExtrasBlocks.js:640 msgid "alto" msgstr "" -#: js/block.js:3497 -#: js/ExtrasBlocks.js:641 +#: js/block-verbose.js:3855 +#: js/block.js:3779 +#: js/blocks/ExtrasBlocks.js:644 msgid "tenor" msgstr "" -#: js/block.js:3498 -#: js/ExtrasBlocks.js:645 -#: js/musicutils.js:736 -#: js/synthutils.js:64 +#: js/block-verbose.js:3856 +#: js/block.js:3780 +#: js/utils/musicutils.js:1115 +#: js/utils/synthutils.js:80 +#: js/blocks/ExtrasBlocks.js:648 #.TRANS: musical instrument msgid "bass" msgstr "" -#: js/block.js:4075 -msgid "Not a number" +#: js/block-verbose.js:3901 +#: js/block.js:3825 +#: js/blocks.js:2600 +#: js/blocks.js:3211 +msgid "on2" +msgstr "" + +#: js/block-verbose.js:3903 +#: js/block.js:3827 +#: js/blocks.js:2602 +#: js/blocks.js:3213 +msgid "off" +msgstr "" + +#: js/block-verbose.js:4470 +#: js/block.js:4394 +msgid "Not a number" +msgstr "" + +#: js/block-verbose.js:4477 +#: js/block.js:4401 +msgid "Octave value must be between 1 and 10." +msgstr "" + +#: js/block-verbose.js:4485 +#: js/block.js:4409 +msgid "Numbers can have at most 10 digits." +msgstr "" + +#: js/activity.js:390 +#: js/activity.js:395 +msgid "Search for blocks" +msgstr "" + +#: js/activity.js:1413 +msgid "Refresh your browser to change to advanced mode." +msgstr "" + +#: js/activity.js:1418 +msgid "Refresh your browser to change to beginner mode." +msgstr "" + +#: js/activity.js:1477 +msgid "Catching mice" +msgstr "" + +#: js/activity.js:1478 +msgid "Cleaning the instruments" +msgstr "" + +#: js/activity.js:1479 +msgid "Testing key pieces" +msgstr "" + +#: js/activity.js:1480 +msgid "Sight-reading" +msgstr "" + +#: js/activity.js:1481 +msgid "Combining math and music" +msgstr "" + +#: js/activity.js:1482 +msgid "Generating more blocks" +msgstr "" + +#: js/activity.js:1483 +msgid "Do Re Mi Fa Sol La Ti Do" +msgstr "" + +#: js/activity.js:1484 +msgid "Tuning string instruments" +msgstr "" + +#: js/activity.js:1485 +msgid "Pressing random keys" +msgstr "" + +#: js/activity.js:1663 +msgid "plugins will be removed upon restart." +msgstr "" + +#: js/activity.js:1672 +msgid "show Cartesian" +msgstr "" + +#: js/activity.js:2211 +#: js/palette.js:589 +#: js/blocks/RhythmBlocks.js:923 +#: js/blocks/PitchBlocks.js:442 +#: js/blocks/PitchBlocks.js:1786 +#.TRANS: a numeric mapping of the notes in an octave based on the musical mode +msgid "scale degree" +msgstr "" + +#: js/activity.js:2214 +#: js/palette.js:598 +msgid "voice name" +msgstr "" + +#: js/activity.js:2217 +#: js/palette.js:595 +msgid "invert mode" +msgstr "" + +#: js/activity.js:2220 +msgid "output tools" +msgstr "" + +#: js/activity.js:2223 +msgid "custom note" +msgstr "" + +#: js/activity.js:2226 +msgid "accidental name" +msgstr "" + +#: js/activity.js:2229 +#: js/blocks/PitchBlocks.js:855 +msgid "east indian solfege" +msgstr "" + +#: js/activity.js:2232 +#: js/blocks/PitchBlocks.js:869 +msgid "note name" +msgstr "" + +#: js/activity.js:2235 +#: js/blocks/IntervalsBlocks.js:94 +msgid "temperament name" +msgstr "" + +#: js/activity.js:2238 +#: js/palette.js:592 +msgid "mode name" +msgstr "" + +#: js/activity.js:2241 +msgid "chord name" +msgstr "" + +#: js/activity.js:2244 +#: js/palette.js:615 +msgid "interval name" +msgstr "" + +#: js/activity.js:2247 +msgid "filter type" +msgstr "" + +#: js/activity.js:2250 +msgid "oscillator type" +msgstr "" + +#: js/activity.js:2253 +#: js/blocks.js:2479 +#: js/blocks.js:2487 +msgid "audio file" +msgstr "" + +#: js/activity.js:2256 +#: js/blocks/DrumBlocks.js:32 +msgid "noise name" +msgstr "" + +#: js/activity.js:2259 +#: js/blocks/DrumBlocks.js:75 +msgid "drum name" +msgstr "" + +#: js/activity.js:2262 +#: js/blocks/DrumBlocks.js:119 +msgid "effects name" +msgstr "" + +#: js/activity.js:2265 +msgid "wrap mode" +msgstr "" + +#: js/activity.js:2268 +msgid "load file" +msgstr "" + +#: js/activity.js:2435 +#: js/activity.js:5851 +msgid "This block is deprecated." +msgstr "" + +#: js/activity.js:2437 +#: js/activity.js:5853 +msgid "Block cannot be found." +msgstr "" + +#: js/activity.js:2645 +msgid "Saving block artwork" +msgstr "" + +#: js/activity.js:2656 +msgid "Erase" +msgstr "" + +#: js/activity.js:2683 +#: js/activity.js:2705 +msgid "Paste" +msgstr "Dán" + +#: js/activity.js:2687 +msgid "Save block help" +msgstr "" + +#: js/activity.js:2772 +msgid "Jumping to the bottom of the page." +msgstr "" + +#: js/activity.js:2778 +msgid "Scrolling up." +msgstr "" + +#: js/activity.js:2783 +msgid "Scrolling down." +msgstr "" + +#: js/activity.js:2788 +msgid "Extracting block" +msgstr "" + +#: js/activity.js:2796 +msgid "Moving block up." msgstr "" -#: js/block.js:4082 -msgid "Octave value must be between 1 and 10." +#: js/activity.js:2817 +msgid "Moving block down." msgstr "" -#: js/block.js:4090 -msgid "Numbers can have at most 10 digits." +#: js/activity.js:2838 +msgid "Moving block left." msgstr "" -#: js/notation.js:353 -msgid "Lilypond cannot process pickup of " +#: js/activity.js:2855 +msgid "Moving block right." msgstr "" -#: js/turtledefs.js:40 -#.TRANS: put the URL to the guide here, e.g., https://github.com/sugarlabs/turtleblocksjs/tree/master/guide/README.md -msgid "guide url" +#: js/activity.js:2870 +msgid "Jump to home position." msgstr "" -#: js/turtledefs.js:85 -#: js/turtledefs.js:437 -msgid "Turtle Blocks is a Logo-inspired turtle that draws colorful pictures with snap-together visual-programming blocks." +#: js/activity.js:2897 +msgid "Hide blocks" msgstr "" -#: js/turtledefs.js:118 -#: js/turtledefs.js:220 -msgid "search" +#: js/activity.js:4500 +msgid "Click the run button to run the project." msgstr "" -#: js/turtledefs.js:120 -#: js/turtledefs.js:222 -#: js/WidgetBlocks.js:437 -#: js/MeterBlocks.js:1343 -#.TRANS: musical meter (time signature), e.g., 4:4 -msgid "meter" +#: js/activity.js:5692 +msgid "Show/hide block" msgstr "" -#: js/turtledefs.js:122 -#: js/turtledefs.js:224 -msgid "intervals" +#: js/activity.js:5698 +msgid "Expand/collapse blocks" msgstr "" -#: js/turtledefs.js:124 -#: js/turtledefs.js:226 -msgid "ornament" +#: js/activity.js:5976 +msgid "Could not parse JSON input." msgstr "" -#: js/turtledefs.js:125 -#: js/turtledefs.js:227 -#: js/VolumeBlocks.js:362 -#: js/VolumeBlocks.js:502 -#: js/VolumeBlocks.js:545 -msgid "volume" +#: js/activity.js:6475 +#: js/activity.js:6580 +#: js/activity.js:6631 +msgid "Cannot load project from the file. Please check the file type." msgstr "" -#: js/turtledefs.js:129 -#: js/turtledefs.js:231 -msgid "boxes" +#: js/activity.js:6917 +msgid "Invalid parameters" msgstr "" -#: js/turtledefs.js:130 -#: js/turtledefs.js:232 -msgid "widgets" +#: js/blocks.js:1212 +#: js/blocks.js:3444 +#: js/blocks.js:3834 +#: js/blocks.js:3865 +#: js/blocks.js:3914 +#: js/blocks.js:3949 +#: js/blocks.js:6586 +#: js/palette.js:509 +#: js/palette.js:638 +#: js/palette.js:1105 +#: js/blocks/BoxesBlocks.js:282 +#: js/blocks/BoxesBlocks.js:285 +#: js/blocks/BoxesBlocks.js:405 +#: js/blocks/BoxesBlocks.js:594 +msgid "box" +msgstr "hộp" + +#: js/blocks.js:1713 +msgid "Consider breaking this stack into parts." msgstr "" -#: js/turtledefs.js:131 -#: js/turtledefs.js:233 -#: js/phrasemaker.js:824 -msgid "graphics" +#: js/blocks.js:2472 +#: js/palette.js:653 +#: js/blocks/MediaBlocks.js:602 +msgid "open file" msgstr "" -#: js/turtledefs.js:134 -#: js/turtledefs.js:236 -msgid "boolean" +#: js/blocks.js:3247 +#: js/palette.js:574 +#: js/blocks/MediaBlocks.js:892 +#: js/blocks/MediaBlocks.js:963 +msgid "text" +msgstr "văn bản" + +#: js/blocks.js:3443 +#: js/palette.js:641 +#: js/palette.js:642 +#: js/blocks/BoxesBlocks.js:514 +msgid "store in box" msgstr "" -#: js/turtledefs.js:137 -#: js/turtledefs.js:239 -#: js/HeapBlocks.js:59 -#: js/status.js:147 -msgid "heap" +#: js/blocks.js:3448 +#: js/blocks.js:3888 +#: js/blocks.js:3923 +#: js/blocks.js:3958 +#: js/blocks.js:5862 +#: js/blocks.js:5883 +#: js/blocks/BoxesBlocks.js:772 +msgid "box1" msgstr "" -#: js/turtledefs.js:138 -#: js/turtledefs.js:240 -#: js/ProgramBlocks.js:495 -#: js/DictBlocks.js:142 -msgid "dictionary" +#: js/blocks.js:3450 +#: js/blocks.js:3890 +#: js/blocks.js:3925 +#: js/blocks.js:3960 +#: js/blocks.js:5864 +#: js/blocks.js:5885 +#: js/blocks/BoxesBlocks.js:663 +msgid "box2" msgstr "" -#: js/turtledefs.js:139 -#: js/turtledefs.js:241 -msgid "ensemble" +#: js/blocks.js:4122 +#: js/palette.js:639 +#: js/palette.js:644 +#: js/palette.js:1041 +#: js/blocks/BoxesBlocks.js:591 +msgid "store in" +msgstr "lưu vào" + +#: js/blocks.js:4122 +#: js/blocks/BoxesBlocks.js:595 +#: js/blocks/DictBlocks.js:215 +#: js/blocks/DictBlocks.js:289 +#: js/blocks/EnsembleBlocks.js:391 +#: js/blocks/EnsembleBlocks.js:402 +#: js/blocks/MediaBlocks.js:746 +#: js/blocks/PitchBlocks.js:656 +#: js/blocks/PitchBlocks.js:934 +#: js/blocks/PitchBlocks.js:1866 +#: js/blocks/ProgramBlocks.js:390 +#: js/blocks/ProgramBlocks.js:495 +#: js/blocks/ProgramBlocks.js:658 +#: js/blocks/ToneBlocks.js:1025 +msgid "name" msgstr "" -#: js/turtledefs.js:140 -#: js/turtledefs.js:242 -msgid "extras" +#: js/blocks.js:4122 +#: js/blocks/BoxesBlocks.js:75 +#: js/blocks/BoxesBlocks.js:595 +#: js/blocks/DictBlocks.js:289 +#: js/blocks/DictBlocks.js:430 +#: js/blocks/HeapBlocks.js:544 +#: js/blocks/RhythmBlocks.js:1130 +msgid "value" +msgstr "giá trị" + +#: js/blocks.js:4465 +msgid "Forever loop detected inside a note value block. Unexpected things may happen." msgstr "" -#: js/turtledefs.js:142 -#: js/turtledefs.js:244 -#.TRANS: program as in computer program -#.TRANS: program as in computer program -msgid "program" +#: js/blocks.js:4988 +msgid "There is no block selected." msgstr "" -#: js/turtledefs.js:143 -#: js/turtledefs.js:245 -msgid "my blocks" +#: js/blocks.js:5091 +#: js/blocks/MediaBlocks.js:888 +msgid "show" +msgstr "hiển thị" + +#: js/blocks.js:5094 +#: js/blocks/MediaBlocks.js:803 +#.TRANS: Avatar is the image used to determine the appearance of the mouse. +msgid "avatar" msgstr "" -#: js/turtledefs.js:185 -#: js/turtledefs.js:281 -msgid "artwork" +#: js/blocks.js:5097 +#: js/blocks/ToneBlocks.js:1010 +#: js/widgets/sampler.js:975 +#.TRANS: The sound sample that the user uploads. +msgid "sample" msgstr "" -#: js/turtledefs.js:185 -#: js/turtledefs.js:281 -msgid "logic" +#: js/lilypond.js:606 +msgid "brown rat" msgstr "" -#: js/turtledefs.js:185 -#: js/turtledefs.js:281 -msgid "music" +#: js/lilypond.js:607 +msgid "mole" msgstr "" -#: js/turtledefs.js:187 -#: js/turtledefs.js:463 -msgid "Music Blocks is a collection of tools for exploring fundamental musical concepts in a fun way." +#: js/lilypond.js:608 +msgid "chipmunk" msgstr "" -#: js/turtledefs.js:436 -msgid "Welcome to Turtle Blocks" +#: js/lilypond.js:609 +msgid "red squirrel" msgstr "" -#: js/turtledefs.js:438 -#: js/turtledefs.js:465 -#: js/turtledefs.js:774 -#: js/turtledefs.js:805 -msgid "The current version is" +#: js/lilypond.js:610 +msgid "guinea pig" msgstr "" -#: js/turtledefs.js:446 -#: js/turtledefs.js:483 -msgid "Click the run button to run the project in fast mode." +#: js/lilypond.js:611 +msgid "capybara" msgstr "" -#: js/turtledefs.js:452 -msgid "Stop the turtle." +#: js/lilypond.js:612 +msgid "coypu" msgstr "" -#: js/turtledefs.js:454 -#: js/turtledefs.js:491 -msgid "You can also type Alt-S to stop." +#: js/lilypond.js:613 +msgid "black rat" msgstr "" -#: js/turtledefs.js:462 -#: js/help.js:333 -msgid "Welcome to Music Blocks" +#: js/lilypond.js:614 +msgid "grey squirrel" msgstr "" -#: js/turtledefs.js:472 -#: js/help.js:334 -msgid "Meet Mr. Mouse!" +#: js/lilypond.js:615 +msgid "flying squirrel" msgstr "" -#: js/turtledefs.js:473 -msgid "Mr Mouse is our Music Blocks conductor." +#: js/lilypond.js:616 +msgid "bat" msgstr "" -#: js/turtledefs.js:475 -msgid "Mr Mouse encourages you to explore Music Blocks." +#: js/lilypond.js:749 +#: js/lilypond.js:913 +#: js/lilypond.js:951 +#: js/blocks/ActionBlocks.js:1256 +#: js/blocks/ExtrasBlocks.js:556 +msgid "start drum" msgstr "" -#: js/turtledefs.js:477 -msgid "Let us start our tour!" +#: js/logo.js:61 +msgid "Not a valid pitch name" msgstr "" -#: js/turtledefs.js:489 -msgid "Stop the music (and the mice)." +#: js/logo.js:507 +#: js/blocks/ProgramBlocks.js:258 +#: js/blocks/ProgramBlocks.js:427 +msgid "You must select a file." msgstr "" -#: js/turtledefs.js:499 -msgid "Record your project as video." +#: js/logo.js:1696 +msgid "Playback is ready." msgstr "" -#: js/turtledefs.js:505 -msgid "Toggle Fullscreen mode." +#: js/macros.js:711 +#: js/utils/musicutils.js:1162 +#: js/utils/synthutils.js:202 +#.TRANS: animal sound effect +msgid "duck" msgstr "" -#: js/turtledefs.js:511 -msgid "Initialize a new project." +#: js/notation.js:353 +msgid "Lilypond cannot process pickup of " msgstr "" -#: js/turtledefs.js:517 -msgid "You can also load projects from the file system." +#: js/palette.js:571 +msgid "grid" msgstr "" -#: js/turtledefs.js:522 -#: js/StringHelper.js:46 -msgid "Delete" +#: js/palette.js:580 +msgid "effect" msgstr "" -#: js/turtledefs.js:523 -msgid "To delete a block, just right-click on it, then you will be able to see the delete option" +#: js/palette.js:586 +msgid "sargam" msgstr "" -#: js/turtledefs.js:528 -#: js/activity.js:2270 -#: js/LocalCard.js:31 -msgid "Copy" -msgstr "Chép" +#: js/palette.js:601 +#: js/blocks/PitchBlocks.js:1209 +msgid "custom pitch" +msgstr "" -#: js/turtledefs.js:529 -msgid "To copy a block, just right-click on it, then you will be able to see the copy option" +#: js/palette.js:609 +msgid "accidental" msgstr "" -#: js/turtledefs.js:535 -msgid "To extract a block, just right-click on it, then you will be able to see the extract option" +#: js/palette.js:633 +#: js/blocks/PitchBlocks.js:405 +msgid "pitch converter" msgstr "" -#: js/turtledefs.js:542 -#: js/turtledefs.js:552 -#: js/turtledefs.js:573 -msgid "Save your project to a file." +#: js/piemenus.js:200 +#: js/utils/musicutils.js:1187 +#: js/utils/musicutils.js:1207 +#: js/widgets/musickeyboard.js:2341 +#: js/widgets/phrasemaker.js:1908 +#: js/widgets/sampler.js:810 +#.TRANS: double sharp is a music term related to pitch +msgid "double sharp" msgstr "" -#: js/turtledefs.js:549 -#: js/turtledefs.js:570 -msgid "save" +#: js/piemenus.js:201 +#: js/utils/musicutils.js:1185 +#: js/utils/musicutils.js:1208 +#: js/blocks/PitchBlocks.js:1539 +#: js/turtleactions/PitchActions.js:323 +#: js/widgets/musickeyboard.js:2342 +#: js/widgets/phrasemaker.js:1909 +#: js/widgets/sampler.js:811 +#.TRANS: sharp is a music term related to pitch +#.TRANS: sharp is a half-step up in pitch +msgid "sharp" msgstr "" -#: js/turtledefs.js:556 -#: js/turtledefs.js:577 -msgid "Save graphics from your project to as SVG." +#: js/piemenus.js:202 +#: js/utils/musicutils.js:1183 +#: js/utils/musicutils.js:1209 +#: js/widgets/musickeyboard.js:2343 +#: js/widgets/phrasemaker.js:1910 +#: js/widgets/sampler.js:812 +#.TRANS: natural is a music term related to pitch +msgid "natural" msgstr "" -#: js/turtledefs.js:560 -#: js/turtledefs.js:581 -msgid "Save graphics from your project as PNG." +#: js/piemenus.js:203 +#: js/utils/musicutils.js:1181 +#: js/utils/musicutils.js:1210 +#: js/blocks/PitchBlocks.js:1498 +#: js/turtleactions/PitchActions.js:326 +#: js/widgets/musickeyboard.js:2344 +#: js/widgets/phrasemaker.js:1911 +#: js/widgets/sampler.js:813 +#.TRANS: flat is a music term related to pitch +#.TRANS: flat is a half-step down in pitch +msgid "flat" msgstr "" -#: js/turtledefs.js:564 -#: js/turtledefs.js:597 -msgid "Save block artwork as an SVG file." +#: js/piemenus.js:204 +#: js/utils/musicutils.js:1179 +#: js/utils/musicutils.js:1211 +#: js/widgets/musickeyboard.js:2345 +#: js/widgets/phrasemaker.js:1912 +#: js/widgets/sampler.js:814 +#.TRANS: double flat is a music term related to pitch +msgid "double flat" msgstr "" -#: js/turtledefs.js:585 -msgid "Save audio from your project as WAV." +#: js/piemenus.js:2864 +#: js/utils/musicutils.js:1006 +#: js/blocks/PitchBlocks.js:1385 +#.TRANS: unison is a music term related to intervals +#.TRANS: unison means the note is the same as the current note +msgid "unison" msgstr "" -#: js/turtledefs.js:589 -msgid "Save your project to as an ABC file." +#: js/piemenus.js:3018 +#: js/piemenus.js:3091 +#: js/utils/musicutils.js:1014 +#: js/utils/musicutils.js:1189 +#: js/utils/musicutils.js:1326 +#.TRANS: major is a music term related to intervals and mode +msgid "major" msgstr "" -#: js/turtledefs.js:593 -msgid "Save your project to as a Lilypond file." +#: js/piemenus.js:3018 +#: js/piemenus.js:3091 +#: js/utils/musicutils.js:1032 +#.TRANS: modal scale for music +msgid "ionian" msgstr "" -#: js/turtledefs.js:604 -msgid "Load samples from server" +#: js/piemenus.js:3020 +#: js/piemenus.js:3095 +#: js/utils/musicutils.js:1012 +#: js/utils/musicutils.js:1190 +#: js/utils/musicutils.js:1323 +#.TRANS: minor is a music term related to intervals and mode +msgid "minor" msgstr "" -#: js/turtledefs.js:605 -msgid "This button opens a viewer for loading example projects." +#: js/piemenus.js:3020 +#: js/piemenus.js:3095 +#: js/utils/musicutils.js:1042 +#.TRANS: modal scale for music +msgid "aeolian" msgstr "" -#: js/turtledefs.js:611 -msgid "Palette buttons" +#: js/piemenus.js:3410 +msgid "Duplicate" msgstr "" -#: js/turtledefs.js:612 -msgid "This toolbar contains the palette buttons including Rhythm Pitch Tone Action and more." +#: js/piemenus.js:3412 +msgid "Move to trash" msgstr "" -#: js/turtledefs.js:614 -msgid "Click to show the palettes of blocks and drag blocks from the palettes onto the canvas to use them." +#: js/piemenus.js:3413 +#: js/widgets/timbre.js:968 +#: planet/js/StringHelper.js:69 +msgid "Close" msgstr "" -#: js/turtledefs.js:620 -msgid "Cartesian/Polar" +#: js/piemenus.js:3419 +msgid "Save stack" msgstr "" -#: js/turtledefs.js:621 -msgid "Show or hide a coordinate grid." +#: js/piemenus.js:3449 +msgid "In order to copy a sample, you must reload the widget, import the sample again, and export it." msgstr "" -#: js/turtledefs.js:627 -msgid "Clear the screen and return the mice to their initial positions." +#: js/piemenus.js:3812 +msgid "You have chosen key " msgstr "" -#: js/turtledefs.js:633 -msgid "Collapse the graphics window." +#: js/piemenus.js:3816 +msgid " for your pitch preview." msgstr "" -#: js/turtledefs.js:638 -#: js/activity.js:4256 -#: js/activity.js:4256 -msgid "Home" +#: js/turtle-singer.js:1363 +#.TRANS: partials are weighted components in a harmonic series +msgid "You must have at least one Partial block inside of a Weighted-partial block" msgstr "" -#: js/turtledefs.js:639 -msgid "Return all blocks to the center of the screen." +#: js/turtle-singer.js:2077 +msgid "synth cannot play chords." msgstr "" -#: js/turtledefs.js:644 -msgid "Show/hide blocks" -msgstr "Hiện/ẩn khối" - -#: js/turtledefs.js:645 -msgid "Hide or show the blocks and the palettes." +#: js/utils/musicutils.js:505 +#: js/utils/musicutils.js:645 +#: js/widgets/pitchdrummatrix.js:228 +#: js/widgets/musickeyboard.js:2885 +msgid "rest" msgstr "" -#: js/turtledefs.js:650 -msgid "Expand/collapse collapsable blocks" +#: js/utils/musicutils.js:689 +msgid "Perfect unison" msgstr "" -#: js/turtledefs.js:651 -msgid "Expand or collapse start and action stacks." +#: js/utils/musicutils.js:689 +msgid "Diminished second" msgstr "" -#: js/turtledefs.js:658 -#: js/activity.js:4265 -msgid "Decrease block size" +#: js/utils/musicutils.js:690 +msgid "Minor second" msgstr "" -#: js/turtledefs.js:659 -msgid "Decrease the size of the blocks." +#: js/utils/musicutils.js:690 +msgid "Augmented unison" msgstr "" -#: js/turtledefs.js:664 -#: js/activity.js:4267 -msgid "Increase block size" +#: js/utils/musicutils.js:691 +msgid "Major second" msgstr "" -#: js/turtledefs.js:665 -msgid "Increase the size of the blocks." +#: js/utils/musicutils.js:691 +msgid "Diminished third" msgstr "" -#: js/turtledefs.js:670 -msgid "Expand/collapse option toolbar" +#: js/utils/musicutils.js:692 +msgid "Minor third" msgstr "" -#: js/turtledefs.js:671 -msgid "Click this button to expand or collapse the auxillary toolbar." +#: js/utils/musicutils.js:692 +msgid "Augmented second" msgstr "" -#: js/turtledefs.js:676 -msgid "Run slow" +#: js/utils/musicutils.js:693 +msgid "Major third" msgstr "" -#: js/turtledefs.js:677 -msgid "Click to run the project in slow mode." +#: js/utils/musicutils.js:693 +msgid "Diminished fourth" msgstr "" -#: js/turtledefs.js:683 -msgid "Click to run the project step by step." +#: js/utils/musicutils.js:694 +msgid "Perfect fourth" msgstr "" -#: js/turtledefs.js:690 -msgid "Display statistics about your Music project." +#: js/utils/musicutils.js:694 +msgid "Augmented third" msgstr "" -#: js/turtledefs.js:697 -msgid "Delete a selected plugin." +#: js/utils/musicutils.js:695 +msgid "Diminished fifth" msgstr "" -#: js/turtledefs.js:704 -msgid "Enable scrolling" +#: js/utils/musicutils.js:695 +msgid "Augmented fourth" msgstr "" -#: js/turtledefs.js:705 -msgid "You can scroll the blocks on the canvas." +#: js/utils/musicutils.js:696 +msgid "Perfect fifth" msgstr "" -#: js/turtledefs.js:714 -msgid "Wrap Turtle" +#: js/utils/musicutils.js:696 +msgid "Diminished sixth" msgstr "" -#: js/turtledefs.js:715 -msgid "Turn Turtle wrapping On or Off." +#: js/utils/musicutils.js:697 +msgid "Minor sixth" msgstr "" -#: js/turtledefs.js:725 -msgid "Restore blocks from the trash." +#: js/utils/musicutils.js:697 +msgid "Augmented fifth" msgstr "" -#: js/turtledefs.js:732 -msgid "Switch mode" +#: js/utils/musicutils.js:698 +msgid "Major sixth" msgstr "" -#: js/turtledefs.js:733 -msgid "Switch between beginner and advance modes." +#: js/utils/musicutils.js:698 +msgid "Diminished seventh" msgstr "" -#: js/turtledefs.js:739 -msgid "Select your language preference." +#: js/utils/musicutils.js:699 +msgid "Minor seventh" msgstr "" -#: js/turtledefs.js:745 -msgid "Keyboard shortcuts" +#: js/utils/musicutils.js:699 +msgid "Augmented sixth" msgstr "" -#: js/turtledefs.js:746 -msgid "You can type d to create a do block and r to create a re block etc." +#: js/utils/musicutils.js:700 +msgid "Major seventh" msgstr "" -#: js/turtledefs.js:753 -msgid "Show these messages." +#: js/utils/musicutils.js:700 +msgid "Diminished octave" msgstr "" -#: js/turtledefs.js:759 -#: js/turtledefs.js:790 -#: js/help.js:335 -msgid "Guide" +#: js/utils/musicutils.js:701 +msgid "Perfect octave" msgstr "" -#: js/turtledefs.js:760 -msgid "A detailed guide to Turtle Blocks is available." +#: js/utils/musicutils.js:701 +msgid "Augmented seventh" msgstr "" -#: js/turtledefs.js:764 -msgid "Turtle Blocks Guide" +#: js/utils/musicutils.js:702 +msgid "Minor ninth" msgstr "" -#: js/turtledefs.js:767 -#: js/turtledefs.js:798 -#: js/help.js:336 -msgid "About" +#: js/utils/musicutils.js:702 +msgid "Augmented octave" msgstr "" -#: js/turtledefs.js:768 -msgid "Turtle Blocks is an open source collection of tools for exploring musical concepts." +#: js/utils/musicutils.js:703 +msgid "Major ninth" msgstr "" -#: js/turtledefs.js:770 -msgid "A full list of contributors can be found in the Turtle Blocks GitHub repository." +#: js/utils/musicutils.js:703 +msgid "Diminished tenth" msgstr "" -#: js/turtledefs.js:772 -msgid "Turtle Blocks is licensed under the AGPL." +#: js/utils/musicutils.js:704 +msgid "Minor tenth" msgstr "" -#: js/turtledefs.js:780 -msgid "Turtle Blocks GitHub repository" +#: js/utils/musicutils.js:704 +msgid "Augmented ninth" msgstr "" -#: js/turtledefs.js:783 -#: js/turtledefs.js:814 -#: js/help.js:337 -#: js/help.js:359 -msgid "Congratulations." +#: js/utils/musicutils.js:705 +msgid "Major tenth" msgstr "" -#: js/turtledefs.js:784 -msgid "You have finished the tour. Please enjoy Turtle Blocks!" +#: js/utils/musicutils.js:705 +msgid "Diminished eleventh" msgstr "" -#: js/turtledefs.js:791 -msgid "A detailed guide to Music Blocks is available." +#: js/utils/musicutils.js:706 +msgid "Perfect eleventh" msgstr "" -#: js/turtledefs.js:795 -#: js/SaveInterface.js:76 -msgid "Music Blocks Guide" +#: js/utils/musicutils.js:706 +msgid "Augmented tenth" msgstr "" -#: js/turtledefs.js:799 -msgid "Music Blocks is an open source collection of tools for exploring musical concepts." +#: js/utils/musicutils.js:707 +msgid "Diminished twelfth" msgstr "" -#: js/turtledefs.js:801 -msgid "A full list of contributors can be found in the Music Blocks GitHub repository." +#: js/utils/musicutils.js:707 +msgid "Augmented eleventh" msgstr "" -#: js/turtledefs.js:803 -msgid "Music Blocks is licensed under the AGPL." +#: js/utils/musicutils.js:708 +msgid "Perfect twelfth" msgstr "" -#: js/turtledefs.js:811 -msgid "Music Blocks GitHub repository" +#: js/utils/musicutils.js:708 +msgid "Diminished thirteenth" msgstr "" -#: js/turtledefs.js:815 -msgid "You have finished the tour. Please enjoy Music Blocks!" +#: js/utils/musicutils.js:709 +msgid "Minor thirteenth" msgstr "" -#: js/activity.js:369 -msgid "Search for blocks" +#: js/utils/musicutils.js:709 +msgid "Augmented fifth, plus an octave" msgstr "" -#: js/activity.js:1145 -msgid "Refresh your browser to change to advanced mode." +#: js/utils/musicutils.js:710 +msgid "Major thirteenth" msgstr "" -#: js/activity.js:1150 -msgid "Refresh your browser to change to beginner mode." +#: js/utils/musicutils.js:710 +msgid "Diminished seventh, plus an octave" msgstr "" -#: js/activity.js:1184 -msgid "Catching mice" +#: js/utils/musicutils.js:838 +#.TRANS: ordinal number. Please keep exactly one space between each number. +msgid "1st 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th" msgstr "" -#: js/activity.js:1185 -msgid "Cleaning the instruments" +#: js/utils/musicutils.js:1008 +#: js/utils/musicutils.js:1191 +#: js/utils/musicutils.js:1325 +#.TRANS: augmented is a music term related to intervals +msgid "augmented" msgstr "" -#: js/activity.js:1186 -msgid "Testing key pieces" +#: js/utils/musicutils.js:1010 +#: js/utils/musicutils.js:1192 +#: js/utils/musicutils.js:1324 +#.TRANS: diminished is a music term related to intervals and mode +msgid "diminished" msgstr "" -#: js/activity.js:1187 -msgid "Sight-reading" +#: js/utils/musicutils.js:1016 +#: js/utils/musicutils.js:1322 +#: js/blocks/IntervalsBlocks.js:649 +#: js/turtleactions/IntervalsActions.js:120 +#: js/turtleactions/IntervalsActions.js:124 +#.TRANS: perfect is a music term related to intervals +msgid "perfect" msgstr "" -#: js/activity.js:1188 -msgid "Combining math and music" +#: js/utils/musicutils.js:1018 +#.TRANS: twelve semi-tone scale for music +msgid "chromatic" msgstr "" -#: js/activity.js:1189 -msgid "Generating more blocks" +#: js/utils/musicutils.js:1019 +msgid "algerian" msgstr "" -#: js/activity.js:1190 -msgid "Do Re Mi Fa Sol La Ti Do" +#: js/utils/musicutils.js:1020 +msgid "spanish" msgstr "" -#: js/activity.js:1191 -msgid "Tuning string instruments" +#: js/utils/musicutils.js:1022 +#.TRANS: modal scale in music +msgid "octatonic" msgstr "" -#: js/activity.js:1192 -msgid "Pressing random keys" +#: js/utils/musicutils.js:1024 +#.TRANS: harmonic major scale in music +msgid "harmonic major" msgstr "" -#: js/activity.js:1351 -msgid "plugins will be removed upon restart." +#: js/utils/musicutils.js:1026 +#.TRANS: natural minor scales in music +msgid "natural minor" msgstr "" -#: js/activity.js:1360 -msgid "show Cartesian" +#: js/utils/musicutils.js:1028 +#.TRANS: harmonic minor scale in music +msgid "harmonic minor" msgstr "" -#: js/activity.js:1842 -msgid "output tools" +#: js/utils/musicutils.js:1030 +#.TRANS: melodic minor scale in music +msgid "melodic minor" msgstr "" -#: js/activity.js:1845 -msgid "custom note" +#: js/utils/musicutils.js:1034 +#.TRANS: modal scale for music +msgid "dorian" msgstr "" -#: js/activity.js:1848 -msgid "accidental name" +#: js/utils/musicutils.js:1036 +#.TRANS: modal scale for music +msgid "phrygian" msgstr "" -#: js/activity.js:1851 -#: js/PitchBlocks.js:855 -msgid "east indian solfege" +#: js/utils/musicutils.js:1038 +#.TRANS: modal scale for music +msgid "lydian" msgstr "" -#: js/activity.js:1854 -#: js/PitchBlocks.js:869 -msgid "note name" +#: js/utils/musicutils.js:1040 +#.TRANS: modal scale for music +msgid "mixolydian" msgstr "" -#: js/activity.js:1857 -#: js/IntervalsBlocks.js:94 -msgid "temperament name" +#: js/utils/musicutils.js:1044 +#.TRANS: modal scale for music +msgid "locrian" msgstr "" -#: js/activity.js:1863 -msgid "chord name" +#: js/utils/musicutils.js:1046 +#.TRANS: minor jazz scale for music +msgid "jazz minor" msgstr "" -#: js/activity.js:1869 -msgid "filter type" +#: js/utils/musicutils.js:1048 +#.TRANS: bebop scale for music +msgid "bebop" msgstr "" -#: js/activity.js:1872 -msgid "oscillator type" +#: js/utils/musicutils.js:1049 +msgid "arabic" msgstr "" -#: js/activity.js:1878 -#: js/DrumBlocks.js:32 -msgid "noise name" +#: js/utils/musicutils.js:1050 +msgid "byzantine" msgstr "" -#: js/activity.js:1881 -#: js/DrumBlocks.js:75 -msgid "drum name" +#: js/utils/musicutils.js:1052 +#.TRANS: musical scale for music by Verdi +msgid "enigmatic" msgstr "" -#: js/activity.js:1884 -#: js/DrumBlocks.js:119 -msgid "effects name" +#: js/utils/musicutils.js:1053 +msgid "ethiopian" msgstr "" -#: js/activity.js:1887 -msgid "wrap mode" +#: js/utils/musicutils.js:1055 +#.TRANS: Ethiopic scale for music +msgid "geez" msgstr "" -#: js/activity.js:1890 -msgid "load file" +#: js/utils/musicutils.js:1056 +msgid "hindu" msgstr "" -#: js/activity.js:2056 -msgid "This block is deprecated." +#: js/utils/musicutils.js:1057 +msgid "hungarian" msgstr "" -#: js/activity.js:2058 -msgid "Block cannot be found." +#: js/utils/musicutils.js:1059 +#.TRANS: minor Romanian scale for music +msgid "romanian minor" msgstr "" -#: js/activity.js:2266 -msgid "Saving block artwork" +#: js/utils/musicutils.js:1060 +msgid "spanish gypsy" msgstr "" -#: js/activity.js:2277 -msgid "Erase" +#: js/utils/musicutils.js:1062 +#.TRANS: musical scale for Mid-Eastern music +msgid "maqam" msgstr "" -#: js/activity.js:2301 -#: js/activity.js:2323 -msgid "Paste" -msgstr "Dán" +#: js/utils/musicutils.js:1064 +#.TRANS: minor blues scale for music +msgid "minor blues" +msgstr "" -#: js/activity.js:2305 -msgid "Save block help" +#: js/utils/musicutils.js:1066 +#.TRANS: major blues scale for music +msgid "major blues" msgstr "" -#: js/activity.js:2390 -msgid "Jumping to the bottom of the page." +#: js/utils/musicutils.js:1067 +msgid "whole tone" msgstr "" -#: js/activity.js:2396 -msgid "Scrolling up." +#: js/utils/musicutils.js:1069 +#.TRANS: pentatonic is a general term that means "five note scale". This scale is typically known as "minor pentatonic" +msgid "minor pentatonic" msgstr "" -#: js/activity.js:2401 -msgid "Scrolling down." +#: js/utils/musicutils.js:1071 +#.TRANS: pentatonic is a general term that means "five note scale". This scale is typically known as "major pentatonic" +msgid "major pentatonic" msgstr "" -#: js/activity.js:2406 -msgid "Extracting block" +#: js/utils/musicutils.js:1072 +msgid "chinese" msgstr "" -#: js/activity.js:2414 -msgid "Moving block up." +#: js/utils/musicutils.js:1073 +msgid "egyptian" msgstr "" -#: js/activity.js:2435 -msgid "Moving block down." +#: js/utils/musicutils.js:1075 +#.TRANS: https://en.wikipedia.org/wiki/Hirajoshi_scale NOTE: There are three different versions of this scale +msgid "hirajoshi" msgstr "" -#: js/activity.js:2456 -msgid "Moving block left." +#: js/utils/musicutils.js:1076 +msgid "Japan" msgstr "" -#: js/activity.js:2473 -msgid "Moving block right." +#: js/utils/musicutils.js:1078 +#.TRANS: https://en.wikipedia.org/wiki/In_scale and https://en.wikipedia.org/wiki/Sakura_Sakura +msgid "in" msgstr "" -#: js/activity.js:2488 -msgid "Jump to home position." +#: js/utils/musicutils.js:1080 +#.TRANS: https://en.wikipedia.org/wiki/Miny%C5%8D_scale +msgid "minyo" msgstr "" -#: js/activity.js:2515 -msgid "Hide blocks" +#: js/utils/musicutils.js:1082 +#.TRANS: Italian mathematician +msgid "fibonacci" msgstr "" -#: js/activity.js:3389 -msgid "Click the run button to run the project." +#: js/utils/musicutils.js:1083 +#: js/utils/musicutils.js:1134 +#: js/utils/musicutils.js:1177 +#: js/utils/musicutils.js:1199 +#: js/utils/synthutils.js:134 +#: js/blocks/IntervalsBlocks.js:1124 +#: js/blocks/ToneBlocks.js:946 +#: js/blocks/VolumeBlocks.js:411 +#: js/blocks/WidgetBlocks.js:399 +#: js/blocks/WidgetBlocks.js:404 +#: js/turtleactions/VolumeActions.js:218 +#: js/widgets/modewidget.js:919 +#.TRANS: customize voice +msgid "custom" msgstr "" -#: js/activity.js:3456 -#: js/SaveInterface.js:131 -#: js/SaveInterface.js:204 -#: js/SaveInterface.js:262 -#: js/SaveInterface.js:389 -#: js/SaveInterface.js:417 -#: js/ProjectStorage.js:27 -#: js/GlobalPlanet.js:467 -#: js/GlobalPlanet.js:469 -#: js/GlobalPlanet.js:495 -#.TRANS: default project title when saving as Lilypond -msgid "My Project" +#: js/utils/musicutils.js:1085 +#: js/utils/musicutils.js:1531 +#: js/blocks/WidgetBlocks.js:176 +#.TRANS: highpass filter +msgid "highpass" msgstr "" -#: js/activity.js:4261 -msgid "Show/hide block" +#: js/utils/musicutils.js:1087 +#: js/utils/musicutils.js:1532 +#.TRANS: lowpass filter +msgid "lowpass" msgstr "" -#: js/activity.js:4263 -msgid "Expand/collapse blocks" +#: js/utils/musicutils.js:1089 +#: js/utils/musicutils.js:1533 +#.TRANS: bandpass filter +msgid "bandpass" msgstr "" -#: js/activity.js:4381 -msgid "Could not parse JSON input." +#: js/utils/musicutils.js:1091 +#: js/utils/musicutils.js:1534 +#.TRANS: high-shelf filter +msgid "highshelf" msgstr "" -#: js/activity.js:4684 -#: js/activity.js:4771 -#: js/activity.js:4821 -msgid "Cannot load project from the file. Please check the file type." +#: js/utils/musicutils.js:1093 +#: js/utils/musicutils.js:1535 +#.TRANS: low-shelf filter +msgid "lowshelf" msgstr "" -#: js/activity.js:5051 -msgid "Invalid parameters" +#: js/utils/musicutils.js:1095 +#: js/utils/musicutils.js:1536 +#.TRANS: notch-shelf filter +msgid "notch" msgstr "" -#: js/turtle-singer.js:1334 -#.TRANS: partials are weighted components in a harmonic series -msgid "You must have at least one Partial block inside of a Weighted-partial block" +#: js/utils/musicutils.js:1097 +#: js/utils/musicutils.js:1537 +#.TRANS: all-pass filter +msgid "allpass" msgstr "" -#: js/turtle-singer.js:2048 -msgid "synth cannot play chords." +#: js/utils/musicutils.js:1099 +#: js/utils/musicutils.js:1538 +#.TRANS: peaking filter +msgid "peaking" msgstr "" -#: js/lilypond.js:614 -msgid "brown rat" +#: js/utils/musicutils.js:1100 +#: js/utils/musicutils.js:1546 +#: js/utils/synthutils.js:126 +#: js/blocks/PitchBlocks.js:85 +#.TRANS: sine wave +msgid "sine" msgstr "" -#: js/lilypond.js:615 -msgid "mole" +#: js/utils/musicutils.js:1101 +#: js/utils/musicutils.js:1547 +#: js/utils/synthutils.js:128 +#: js/blocks/PitchBlocks.js:39 +#.TRANS: square wave +msgid "square" msgstr "" -#: js/lilypond.js:616 -msgid "chipmunk" +#: js/utils/musicutils.js:1102 +#: js/utils/musicutils.js:1548 +#: js/utils/synthutils.js:132 +#: js/blocks/PitchBlocks.js:62 +#: js/blocks/ToneBlocks.js:39 +#.TRANS: triangle wave +msgid "triangle" msgstr "" -#: js/lilypond.js:617 -msgid "red squirrel" +#: js/utils/musicutils.js:1103 +#: js/utils/musicutils.js:1549 +#: js/utils/synthutils.js:130 +#: js/blocks/PitchBlocks.js:108 +#.TRANS: sawtooth wave +msgid "sawtooth" msgstr "" -#: js/lilypond.js:618 -msgid "guinea pig" +#: js/utils/musicutils.js:1105 +#: js/utils/musicutils.js:1312 +#: js/blocks/PitchBlocks.js:931 +#: js/blocks/PitchBlocks.js:937 +#: js/turtleactions/PitchActions.js:469 +#.TRANS: even numbers +#.TRANS: invert based on even or odd number or musical scale +msgid "even" msgstr "" -#: js/lilypond.js:619 -msgid "capybara" +#: js/utils/musicutils.js:1107 +#: js/utils/musicutils.js:1313 +#: js/blocks/PitchBlocks.js:937 +#: js/turtleactions/PitchActions.js:471 +#.TRANS: odd numbers +msgid "odd" msgstr "" -#: js/lilypond.js:620 -msgid "coypu" +#: js/utils/musicutils.js:1108 +#: js/utils/musicutils.js:1314 +#: js/blocks/PitchBlocks.js:937 +#: js/turtleactions/PitchActions.js:473 +msgid "scalar" msgstr "" -#: js/lilypond.js:621 -msgid "black rat" +#: js/utils/musicutils.js:1109 +#: js/utils/synthutils.js:72 +#: js/blocks/VolumeBlocks.js:47 +#.TRANS: musical instrument +msgid "piano" msgstr "" -#: js/lilypond.js:622 -msgid "grey squirrel" +#: js/utils/musicutils.js:1110 +#: js/utils/synthutils.js:74 +#.TRANS: musical instrument +msgid "violin" msgstr "" -#: js/lilypond.js:623 -msgid "flying squirrel" +#: js/utils/musicutils.js:1111 +#: js/utils/synthutils.js:76 +#.TRANS: viola musical instrument +msgid "viola" msgstr "" -#: js/lilypond.js:624 -msgid "bat" +#: js/utils/musicutils.js:1112 +#: js/utils/synthutils.js:114 +#.TRANS: xylophone musical instrument +msgid "xylophone" msgstr "" -#: js/lilypond.js:757 -#: js/lilypond.js:921 -#: js/lilypond.js:959 -#: js/ActionBlocks.js:1256 -#: js/ExtrasBlocks.js:553 -msgid "start drum" +#: js/utils/musicutils.js:1113 +#: js/utils/synthutils.js:136 +#.TRANS: vibraphone musical instrument +msgid "vibraphone" msgstr "" -#: js/SaveInterface.js:59 -#: js/SaveInterface.js:61 -#: js/SaveInterface.js:93 -msgid "Music Blocks Project" +#: js/utils/musicutils.js:1114 +#: js/utils/synthutils.js:78 +#.TRANS: musical instrument +msgid "cello" msgstr "" -#: js/SaveInterface.js:63 -msgid "This project was created in Music Blocks" +#: js/utils/musicutils.js:1116 +#: js/utils/synthutils.js:82 +#.TRANS: viola musical instrument +msgid "double bass" msgstr "" -#: js/SaveInterface.js:67 -msgid "Music Blocks is a Free/Libre Software application." +#: js/utils/musicutils.js:1117 +#: js/utils/synthutils.js:84 +#: js/widgets/rhythmruler.js:2511 +#.TRANS: musical instrument +msgid "guitar" msgstr "" -#: js/SaveInterface.js:69 -msgid "The source code can be accessed at" +#: js/utils/musicutils.js:1118 +#: js/utils/synthutils.js:86 +#.TRANS: musical instrument +msgid "acoustic guitar" msgstr "" -#: js/SaveInterface.js:72 -msgid "For more information, please consult the" +#: js/utils/musicutils.js:1119 +#: js/utils/synthutils.js:88 +#.TRANS: musical instrument +msgid "flute" msgstr "" -#: js/SaveInterface.js:83 -msgid "Alternatively, open the file in Music Blocks using the Load project button." +#: js/utils/musicutils.js:1120 +#: js/utils/synthutils.js:90 +#.TRANS: musical instrument +msgid "clarinet" msgstr "" -#: js/SaveInterface.js:85 -msgid "Project Code" +#: js/utils/musicutils.js:1121 +#: js/utils/synthutils.js:92 +#.TRANS: musical instrument +msgid "saxophone" msgstr "" -#: js/SaveInterface.js:87 -msgid "This code stores data about the blocks in a project." +#: js/utils/musicutils.js:1122 +#: js/utils/synthutils.js:94 +#.TRANS: musical instrument +msgid "tuba" msgstr "" -#: js/SaveInterface.js:89 -msgid "Show" +#: js/utils/musicutils.js:1123 +#: js/utils/synthutils.js:96 +#.TRANS: musical instrument +msgid "trumpet" msgstr "" -#: js/SaveInterface.js:91 -msgid "Hide" +#: js/utils/musicutils.js:1124 +#: js/utils/synthutils.js:98 +#.TRANS: musical instrument +msgid "oboe" msgstr "" -#: js/SaveInterface.js:197 -#: js/SaveInterface.js:58 -msgid "No description provided" +#: js/utils/musicutils.js:1125 +#: js/utils/synthutils.js:100 +#.TRANS: musical instrument +msgid "trombone" msgstr "" -#: js/SaveInterface.js:332 -msgid "Your recording is in progress." +#: js/utils/musicutils.js:1126 +#: js/utils/synthutils.js:116 +#.TRANS: polytone synthesizer +msgid "electronic synth" msgstr "" -#: js/SaveInterface.js:401 -#.TRANS: File name prompt for save as Lilypond -msgid "File name" +#: js/utils/musicutils.js:1127 +#: js/utils/synthutils.js:118 +#.TRANS: simple monotone synthesizer +msgid "simple 1" msgstr "" -#: js/SaveInterface.js:403 -#: js/StringHelper.js:39 -#.TRANS: Project title prompt for save as Lilypond -msgid "Project title" +#: js/utils/musicutils.js:1128 +msgid "simple 2" msgstr "" -#: js/SaveInterface.js:405 -#.TRANS: Project title prompt for save as Lilypond -msgid "Project author" +#: js/utils/musicutils.js:1129 +msgid "simple 3" msgstr "" -#: js/SaveInterface.js:407 -#.TRANS: MIDI prompt for save as Lilypond -msgid "Include MIDI output?" +#: js/utils/musicutils.js:1130 +msgid "simple 4" msgstr "" -#: js/SaveInterface.js:409 -#.TRANS: Guitar prompt for save as Lilypond -msgid "Include guitar tablature output?" +#: js/utils/musicutils.js:1131 +#: js/utils/synthutils.js:58 +#: js/blocks/DrumBlocks.js:191 +#.TRANS: white noise synthesizer +msgid "white noise" msgstr "" -#: js/SaveInterface.js:411 -#.TRANS: Lilypond is a scripting language for generating sheet music -msgid "Save as Lilypond" +#: js/utils/musicutils.js:1132 +#: js/utils/synthutils.js:60 +#.TRANS: brown noise synthesizer +msgid "brown noise" msgstr "" -#: js/SaveInterface.js:426 -#: js/EnsembleBlocks.js:75 -#: js/EnsembleBlocks.js:154 -#: js/EnsembleBlocks.js:216 -#: js/EnsembleBlocks.js:302 -#: js/EnsembleBlocks.js:348 -#: js/EnsembleBlocks.js:389 -#: js/EnsembleBlocks.js:441 -#: js/EnsembleBlocks.js:490 -#: js/EnsembleBlocks.js:536 -#: js/EnsembleBlocks.js:583 -#: js/EnsembleBlocks.js:637 -#: js/EnsembleBlocks.js:753 -#: js/EnsembleBlocks.js:840 -#: js/EnsembleBlocks.js:899 -#: js/EnsembleBlocks.js:942 -#: js/EnsembleBlocks.js:1212 -#: js/EnsembleBlocks.js:1280 -#.TRANS: default project author when saving as Lilypond -msgid "Mr. Mouse" +#: js/utils/musicutils.js:1133 +#: js/utils/synthutils.js:62 +#.TRANS: pink noise synthesizer +msgid "pink noise" msgstr "" -#: js/SaveInterface.js:573 -msgid "The Lilypond code is copied to clipboard. You can paste it here: " +#: js/utils/musicutils.js:1135 +#: js/utils/synthutils.js:148 +#: js/widgets/rhythmruler.js:2057 +#: js/widgets/rhythmruler.js:2319 +#.TRANS: musical instrument +msgid "snare drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:50 -#: js/RhythmBlockPaletteBlocks.js:232 -#.TRANS: rhythm block -#.TRANS: translate "rhythm1" as rhythm -msgid "rhythm1" +#: js/utils/musicutils.js:1136 +#: js/utils/synthutils.js:150 +#.TRANS: musical instrument +msgid "kick drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:70 -#: js/RhythmBlockPaletteBlocks.js:251 -#: js/RhythmBlockPaletteBlocks.js:484 -#: js/RhythmBlockPaletteBlocks.js:553 -#: js/RhythmBlockPaletteBlocks.js:874 -msgid "number of notes" +#: js/utils/musicutils.js:1137 +#: js/utils/synthutils.js:152 +#.TRANS: musical instrument +msgid "tom tom" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:126 -msgid "polyphonic rhythm" +#: js/utils/musicutils.js:1138 +#: js/utils/synthutils.js:154 +#.TRANS: musical instrument +msgid "floor tom" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:218 -msgid "The Rhythm block is used to generate rhythm patterns." +#: js/utils/musicutils.js:1139 +#: js/utils/synthutils.js:156 +#.TRANS: musical instrument +msgid "bass drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:279 -msgid "1/64 note" +#: js/utils/musicutils.js:1140 +#: js/utils/synthutils.js:158 +#.TRANS: a drum made from an inverted cup +msgid "cup drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:303 -msgid "1/32 note" +#: js/utils/musicutils.js:1141 +#: js/utils/synthutils.js:160 +#.TRANS: musical instrument +msgid "darbuka drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:331 -msgid "1/16 note" +#: js/utils/musicutils.js:1142 +#: js/utils/synthutils.js:164 +#.TRANS: musical instrument +msgid "hi hat" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:359 -msgid "eighth note" +#: js/utils/musicutils.js:1143 +#: js/utils/synthutils.js:166 +#.TRANS: a small metal bell +msgid "ride bell" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:387 -msgid "quarter note" +#: js/utils/musicutils.js:1144 +#: js/utils/synthutils.js:168 +#.TRANS: musical instrument +msgid "cow bell" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:415 -msgid "half note" +#: js/utils/musicutils.js:1145 +msgid "japanese drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:443 -msgid "whole note" +#: js/utils/musicutils.js:1146 +#: js/utils/synthutils.js:174 +#.TRANS: musical instrument +msgid "japanese bell" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:481 -#: js/RhythmBlockPaletteBlocks.js:550 -#: js/RhythmBlockPaletteBlocks.js:601 -#.TRANS: A tuplet is a note value divided into irregular time values. -msgid "tuplet" +#: js/utils/musicutils.js:1147 +#: js/utils/synthutils.js:170 +#.TRANS: musical instrument +msgid "triangle bell" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:767 -msgid "septuplet" +#: js/utils/musicutils.js:1148 +#: js/utils/synthutils.js:172 +#.TRANS: musical instrument +msgid "finger cymbals" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:795 -msgid "quintuplet" +#: js/utils/musicutils.js:1149 +#: js/utils/synthutils.js:176 +#.TRANS: a musically tuned set of bells +msgid "chime" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:823 -msgid "triplet" +#: js/utils/musicutils.js:1150 +#: js/utils/synthutils.js:178 +#.TRANS: a musical instrument +msgid "gong" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:850 -msgid "simple tuplet" +#: js/utils/musicutils.js:1151 +#: js/utils/synthutils.js:180 +#.TRANS: sound effect +msgid "clang" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:860 -msgid "Tuplets are a collection of notes that get scaled to a specific duration." +#: js/utils/musicutils.js:1152 +#: js/utils/synthutils.js:182 +#.TRANS: sound effect +msgid "crash" msgstr "" -#: js/WidgetBlocks.js:71 -#.TRANS: sound envelope (ADSR) -msgid "envelope" +#: js/utils/musicutils.js:1153 +#: js/utils/synthutils.js:184 +#.TRANS: sound effect +msgid "bottle" msgstr "" -#: js/WidgetBlocks.js:79 -#.TRANS: Attack time is the time taken for initial run-up of level from nil to peak, beginning when the key is first pressed. -msgid "attack" +#: js/utils/musicutils.js:1154 +#: js/utils/synthutils.js:186 +#.TRANS: sound effect +msgid "clap" msgstr "" -#: js/WidgetBlocks.js:81 -#.TRANS: Decay time is the time taken for the subsequent run down from the attack level to the designated sustain level. -msgid "decay" +#: js/utils/musicutils.js:1155 +#: js/utils/synthutils.js:188 +#.TRANS: sound effect +msgid "slap" msgstr "" -#: js/WidgetBlocks.js:83 -#.TRANS: Sustain level is the level during the main sequence of the sound's duration, until the key is released. -msgid "sustain" +#: js/utils/musicutils.js:1156 +#: js/utils/synthutils.js:190 +#.TRANS: sound effect +msgid "splash" msgstr "" -#: js/WidgetBlocks.js:85 -#.TRANS: Release time is the time taken for the level to decay from the sustain level to zero after the key is released. -msgid "release" +#: js/utils/musicutils.js:1157 +#: js/utils/synthutils.js:192 +#.TRANS: sound effect +msgid "bubbles" msgstr "" -#: js/WidgetBlocks.js:96 -msgid "Attack value should be from 0 to 100." +#: js/utils/musicutils.js:1158 +#: js/utils/synthutils.js:194 +#.TRANS: sound effect +msgid "raindrop" msgstr "" -#: js/WidgetBlocks.js:99 -msgid "Decay value should be from 0 to 100." +#: js/utils/musicutils.js:1159 +#: js/utils/synthutils.js:196 +#.TRANS: animal sound effect +msgid "cat" msgstr "" -#: js/WidgetBlocks.js:102 -msgid "Sustain value should be from 0 to 100." +#: js/utils/musicutils.js:1160 +#: js/utils/synthutils.js:198 +#.TRANS: animal sound effect +msgid "cricket" msgstr "" -#: js/WidgetBlocks.js:105 -msgid "Release value should be from 0-100." +#: js/utils/musicutils.js:1161 +#: js/utils/synthutils.js:200 +#.TRANS: animal sound effect +msgid "dog" msgstr "" -#: js/WidgetBlocks.js:121 -msgid "You are adding multiple envelope blocks." +#: js/utils/musicutils.js:1163 +#: js/utils/synthutils.js:102 +#.TRANS: musical instrument +msgid "banjo" msgstr "" -#: js/WidgetBlocks.js:144 -#.TRANS: a filter removes some unwanted components from a signal -msgid "filter" +#: js/utils/musicutils.js:1164 +#: js/utils/synthutils.js:104 +#.TRANS: musical instrument +msgid "koto" msgstr "" -#: js/WidgetBlocks.js:149 -#: js/musicutils.js:706 -#: js/musicutils.js:1105 -#.TRANS: highpass filter -msgid "highpass" +#: js/utils/musicutils.js:1165 +#: js/utils/synthutils.js:106 +#.TRANS: musical instrument +msgid "dulcimer" msgstr "" -#: js/WidgetBlocks.js:152 -#: js/ToneBlocks.js:42 -#: js/timbre.js:1558 -#: js/timbre.js:1808 -#.TRANS: type of filter, e.g., lowpass, highpass, etc. -#.TRANS: there are different types (sine, triangle, square...) of oscillators. -msgid "type" +#: js/utils/musicutils.js:1166 +#: js/utils/synthutils.js:108 +#.TRANS: musical instrument +msgid "electric guitar" msgstr "" -#: js/WidgetBlocks.js:154 -#: js/timbre.js:1818 -#.TRANS: rolloff is the steepness of a change in frequency. -msgid "rolloff" +#: js/utils/musicutils.js:1167 +#: js/utils/synthutils.js:110 +#.TRANS: musical instrument +msgid "bassoon" msgstr "" -#: js/WidgetBlocks.js:155 -#: js/MediaBlocks.js:692 -#: js/temperament.js:382 -#: js/temperament.js:417 -#: js/temperament.js:477 -#: js/temperament.js:485 -#: js/temperament.js:1348 -#: js/timbre.js:1842 -msgid "frequency" +#: js/utils/musicutils.js:1168 +#: js/utils/synthutils.js:112 +#.TRANS: musical instrument +msgid "celeste" msgstr "" -#: js/WidgetBlocks.js:179 -#.TRANS: rolloff is the steepness of a change in frequency. -msgid "Rolloff value should be either -12, -24, -48, or -96 decibels/octave." +#: js/utils/musicutils.js:1170 +#: js/widgets/temperament.js:787 +#.TRANS: musical temperament +msgid "equal" msgstr "" -#: js/WidgetBlocks.js:211 -msgid "The Temperament tool is used to define custom tuning." +#: js/utils/musicutils.js:1172 +#.TRANS: musical temperament +msgid "Pythagorean" msgstr "" -#: js/WidgetBlocks.js:277 -#: js/sampler.js:329 -msgid "Upload a sample and adjust its pitch center." +#: js/utils/musicutils.js:1174 +#.TRANS: musical temperament +msgid "just intonation" msgstr "" -#: js/WidgetBlocks.js:284 -#.TRANS: the speed at music is should be played. -msgid "sampler" +#: js/utils/musicutils.js:1176 +#.TRANS: musical temperament +msgid "meantone" msgstr "" -#: js/WidgetBlocks.js:329 -#: js/WidgetBlocks.js:334 -#: js/IntervalsBlocks.js:928 -#: js/VolumeBlocks.js:411 -#: js/ToneBlocks.js:946 -#: js/VolumeActions.js:218 -#: js/musicutils.js:704 -#: js/musicutils.js:755 -#: js/musicutils.js:798 -#: js/musicutils.js:820 -#: js/musicutils.js:1136 -#: js/synthutils.js:118 -#: js/modewidget.js:919 -#.TRANS: customize voice -msgid "custom" +#: js/utils/musicutils.js:1193 +msgid "major 7th" msgstr "" -#: js/WidgetBlocks.js:432 -msgid "The Meter block opens a tool to select strong beats for the meter." +#: js/utils/musicutils.js:1194 +msgid "minor 7th" msgstr "" -#: js/WidgetBlocks.js:473 -msgid "The oscilloscope block opens a tool to visualize waveforms." +#: js/utils/musicutils.js:1195 +msgid "dominant 7th" msgstr "" -#: js/WidgetBlocks.js:478 -msgid "oscilloscope" +#: js/utils/musicutils.js:1196 +msgid "minor-major 7th" msgstr "" -#: js/WidgetBlocks.js:530 -msgid "The Custom mode block opens a tool to explore musical mode (the spacing of the notes in a scale)." +#: js/utils/musicutils.js:1197 +msgid "fully-diminished 7th" msgstr "" -#: js/WidgetBlocks.js:536 -#.TRANS: musical mode is the pattern of half-steps in an octave, e.g., Major or Minor modes -msgid "custom mode" +#: js/utils/musicutils.js:1198 +msgid "half-diminished 7th" msgstr "" -#: js/WidgetBlocks.js:570 -msgid "The Tempo block opens a metronome to visualize the beat." +#: js/utils/musicutils.js:1557 +#: js/utils/musicutils.js:1569 +msgid "Equal (12EDO)" msgstr "" -#: js/WidgetBlocks.js:617 -msgid "The Arpeggio Widget is used to compose chord sequences." +#: js/utils/musicutils.js:1558 +#: js/utils/musicutils.js:1570 +msgid "5-limit Just Intonation" msgstr "" -#: js/WidgetBlocks.js:623 -#: js/IntervalsBlocks.js:683 -msgid "arpeggio" +#: js/utils/musicutils.js:1559 +#: js/utils/musicutils.js:1571 +msgid "Pythagorean (3-limit JI)" msgstr "" -#: js/WidgetBlocks.js:677 -msgid "The Pitch drum matrix is used to map pitches to drum sounds." +#: js/utils/musicutils.js:1560 +#: js/utils/musicutils.js:1561 +#: js/utils/musicutils.js:1572 +#: js/utils/musicutils.js:1573 +msgid "Meantone" msgstr "" -#: js/WidgetBlocks.js:682 -#.TRANS: makes a mapping between pitches and drum sounds -msgid "pitch-drum mapper" +#: js/utils/musicutils.js:1574 +msgid "Custom" msgstr "" -#: js/WidgetBlocks.js:724 -msgid "You must have at least one pitch block and one drum block in the matrix." +#: js/utils/musicutils.js:5387 +#: js/utils/musicutils.js:5430 +msgid "current" msgstr "" -#: js/WidgetBlocks.js:746 -msgid "The Pitch slider tool to is used to generate pitches at selected frequencies." +#: js/utils/musicutils.js:5390 +#: js/utils/musicutils.js:5421 +msgid "next" msgstr "" -#: js/WidgetBlocks.js:751 -#.TRANS: widget to generate pitches using a slider -msgid "pitch slider" +#: js/utils/musicutils.js:5393 +#: js/utils/musicutils.js:5426 +msgid "previous" msgstr "" -#: js/WidgetBlocks.js:788 -msgid "chromatic keyboard" +#: js/utils/synthutils.js:120 +#.TRANS: simple monotone synthesizer +msgid "simple-2" msgstr "" -#: js/WidgetBlocks.js:815 -#: js/WidgetBlocks.js:874 -#.TRANS: widget to generate pitches using a slider -msgid "music keyboard" +#: js/utils/synthutils.js:122 +#.TRANS: simple monotone synthesizer +msgid "simple-3" msgstr "" -#: js/WidgetBlocks.js:859 -#: js/WidgetBlocks.js:866 -msgid "The Music keyboard block opens a piano keyboard that can be used to create notes." +#: js/utils/synthutils.js:124 +#.TRANS: simple monotone synthesizer +msgid "simple-4" msgstr "" -#: js/WidgetBlocks.js:910 -msgid "The Pitch staircase tool to is used to generate pitches from a given ratio." +#: js/utils/synthutils.js:162 +#.TRANS: musical instrument +msgid "taiko" msgstr "" -#: js/WidgetBlocks.js:917 -#.TRANS: generate a progressive sequence of pitches -msgid "pitch staircase" +#: js/blocks/ActionBlocks.js:58 +msgid "The Return block will return a value from an action." msgstr "" -#: js/WidgetBlocks.js:982 -msgid "The Rhythm Maker block opens a tool to create drum machines." +#: js/blocks/ActionBlocks.js:75 +msgid "return" msgstr "" -#: js/WidgetBlocks.js:1036 -msgid "G major scale" +#: js/blocks/ActionBlocks.js:128 +msgid "The Return to URL block will return a value to a webpage." msgstr "" -#: js/WidgetBlocks.js:1064 -msgid "C major scale" +#: js/blocks/ActionBlocks.js:145 +msgid "return to URL" msgstr "" -#: js/WidgetBlocks.js:1097 -msgid "The Phrase Maker block opens a tool to create musical phrases." +#: js/blocks/ActionBlocks.js:233 +#: js/blocks/ActionBlocks.js:290 +#: js/blocks/ActionBlocks.js:501 +#: js/blocks/ActionBlocks.js:688 +msgid "The Calculate block returns a value calculated by an action." msgstr "" -#: js/WidgetBlocks.js:1104 -#.TRANS: assigns pitch to a sequence of beats to generate a melody -msgid "phrase maker" +#: js/blocks/ActionBlocks.js:251 +#: js/blocks/ActionBlocks.js:517 +#: js/blocks/ActionBlocks.js:707 +msgid "calculate" msgstr "" -#: js/WidgetBlocks.js:1168 -msgid "You must have at least one pitch block and one rhythm block in the matrix." +#: js/blocks/ActionBlocks.js:376 +#: js/blocks/ActionBlocks.js:593 +#: js/blocks/ActionBlocks.js:942 +#: js/blocks/ActionBlocks.js:1389 +#.TRANS: do is the do something or take an action. +msgid "The Do block is used to initiate an action." msgstr "" -#: js/WidgetBlocks.js:1220 -msgid "The Status block opens a tool for inspecting the status of Music Blocks as it is running." +#: js/blocks/ActionBlocks.js:390 +#: js/blocks/ActionBlocks.js:610 +#: js/blocks/ActionBlocks.js:959 +#: js/blocks/ActionBlocks.js:1048 +#: js/blocks/MeterBlocks.js:769 +msgid "do1" msgstr "" -#: js/IntervalsBlocks.js:45 -msgid "set temperament" +#: js/blocks/ActionBlocks.js:390 +#: js/blocks/ActionBlocks.js:610 +#: js/blocks/ActionBlocks.js:959 +#: js/blocks/ActionBlocks.js:1048 +#: js/blocks/FlowBlocks.js:742 +#: js/blocks/FlowBlocks.js:822 +#: js/blocks/MeterBlocks.js:769 +msgid "do" msgstr "" -#: js/IntervalsBlocks.js:63 -#: js/MediaBlocks.js:746 -#: js/PitchBlocks.js:657 -#: js/PitchBlocks.js:933 -#: js/PitchBlocks.js:972 -#: js/PitchBlocks.js:1005 -#: js/PitchBlocks.js:1166 -#: js/PitchBlocks.js:1679 -#: js/PitchBlocks.js:1720 -#: js/PitchBlocks.js:1827 -#: js/ToneBlocks.js:1025 -#.TRANS: adjusts the shift up or down by one octave (twelve half-steps in the interval between two notes, one having twice or half the frequency in Hz of the other.) -msgid "octave" +#: js/blocks/ActionBlocks.js:791 +#: js/blocks/ActionBlocks.js:865 +msgid "The Arg block contains the value of an argument passed to an action." msgstr "" -#: js/IntervalsBlocks.js:99 -msgid "The Temperament name block is used to select a tuning method." +#: js/blocks/ActionBlocks.js:806 +#: js/blocks/ActionBlocks.js:878 +msgid "arg" msgstr "" -#: js/IntervalsBlocks.js:161 -msgid "doubly" +#: js/blocks/ActionBlocks.js:836 +#: js/blocks/ActionBlocks.js:900 +#: js/blocks/ActionBlocks.js:908 +msgid "Invalid argument" msgstr "" -#: js/IntervalsBlocks.js:166 -msgid "The Doubly block will double the size of an interval." +#: js/blocks/ActionBlocks.js:944 +msgid "In the example, it is used with the One of block to choose a random phase." msgstr "" -#: js/IntervalsBlocks.js:262 -msgid "interval number" +#: js/blocks/ActionBlocks.js:1019 +#: js/blocks/ActionBlocks.js:1026 +msgid "The Listen block is used to listen for an event such as a mouse click." msgstr "" -#: js/IntervalsBlocks.js:330 -#.TRANS: measure the distance between two pitches in semi-tones -msgid "semi-tone interval measure" +#: js/blocks/ActionBlocks.js:1028 +msgid "When the event happens, an action is taken." msgstr "" -#: js/IntervalsBlocks.js:397 -#: js/IntervalsBlocks.js:513 -msgid "You must use two pitch blocks when measuring an interval." +#: js/blocks/ActionBlocks.js:1045 +msgid "on" msgstr "" -#: js/IntervalsBlocks.js:439 -msgid "The Scalar interval block measures the distance between two notes in the current key and mode." +#: js/blocks/ActionBlocks.js:1048 +#: js/blocks/ActionBlocks.js:1049 +#: js/blocks/ActionBlocks.js:1153 +msgid "event" msgstr "" -#: js/IntervalsBlocks.js:445 -#.TRANS: measure the distance between two pitches in steps of musical scale -msgid "scalar interval measure" +#: js/blocks/ActionBlocks.js:1133 +msgid "The Broadcast block is used to trigger an event." msgstr "" -#: js/IntervalsBlocks.js:592 -#: js/musicutils.js:637 -#: js/musicutils.js:908 -#.TRANS: perfect is a music term related to intervals -msgid "perfect" +#: js/blocks/ActionBlocks.js:1151 +msgid "broadcast" msgstr "" -#: js/IntervalsBlocks.js:621 -msgid "In the figure, we add sol# to sol." +#: js/blocks/ActionBlocks.js:1208 +msgid "Each Start block is a separate voice." msgstr "" -#: js/IntervalsBlocks.js:627 -#: js/OrnamentBlocks.js:220 -#.TRANS: calculate a relative step between notes based on semi-tones -msgid "semi-tone interval" +#: js/blocks/ActionBlocks.js:1304 +msgid "It is often used for storing a phrase of music that is repeated." msgstr "" -#: js/IntervalsBlocks.js:676 -msgid "The output of the example is: do, mi, sol, sol, ti, mi" +#: js/blocks/ActionBlocks.js:1495 +msgid "define temperament" msgstr "" -#: js/IntervalsBlocks.js:735 -msgid "The Chord block calculates common chords." +#: js/blocks/BooleanBlocks.js:44 +msgid "The Not block is the logical not operator." msgstr "" -#: js/IntervalsBlocks.js:737 -msgid "In the figure, we generate a C-major chord." -msgstr "" +#: js/blocks/BooleanBlocks.js:62 +msgid "not" +msgstr "không phải" -#: js/IntervalsBlocks.js:742 -msgid "chord" +#: js/blocks/BooleanBlocks.js:134 +msgid "The And block is the logical and operator." msgstr "" -#: js/IntervalsBlocks.js:794 -msgid "The Ratio Interval block calculates an interval based on a ratio." -msgstr "" +#: js/blocks/BooleanBlocks.js:152 +msgid "and" +msgstr "và" -#: js/IntervalsBlocks.js:799 -msgid "ratio interval" +#: js/blocks/BooleanBlocks.js:218 +msgid "The Or block is the logical or operator." msgstr "" -#: js/IntervalsBlocks.js:868 -msgid "In the figure, we add la to sol." -msgstr "" +#: js/blocks/BooleanBlocks.js:236 +msgid "or" +msgstr "hoặc" -#: js/IntervalsBlocks.js:924 -#.TRANS: define a custom mode -msgid "define mode" +#: js/blocks/BooleanBlocks.js:302 +msgid "The XOR block is the logical XOR operator." msgstr "" -#: js/IntervalsBlocks.js:977 -msgid "movable Do" +#: js/blocks/BooleanBlocks.js:320 +msgid "xor" msgstr "" -#: js/IntervalsBlocks.js:1028 -#.TRANS: mode length is the number of notes in the mode, e.g., 7 for major and minor scales; 12 for chromatic scales -msgid "mode length" +#: js/blocks/BooleanBlocks.js:808 +msgid "The Equal block returns True if the two numbers are equal." msgstr "" -#: js/IntervalsBlocks.js:1037 -msgid "The Mode length block is the number of notes in the current scale." +#: js/blocks/BooleanBlocks.js:909 +msgid "The Not-equal-to block returns True if the two numbers are not equal to each other." msgstr "" -#: js/IntervalsBlocks.js:1039 -msgid "Most Western scales have 7 notes." +#: js/blocks/BooleanBlocks.js:1008 +msgid "The Boolean block is used to specify true or false." msgstr "" -#: js/IntervalsBlocks.js:1088 -#.TRANS: the mode in music is 'major', 'minor', etc. -msgid "current mode" +#: js/blocks/BoxesBlocks.js:53 +#: js/blocks/BoxesBlocks.js:59 +msgid "The Add-to block is used to add to the value stored in a box." msgstr "" -#: js/IntervalsBlocks.js:1141 -#.TRANS: the key is a group of pitches with which a music composition is created -msgid "current key" +#: js/blocks/BoxesBlocks.js:61 +msgid "It can also be used with other blocks such as Color and Pen size." msgstr "" -#: js/IntervalsBlocks.js:1193 -#: js/IntervalsBlocks.js:1238 -#.TRANS: set the key and mode, e.g. C Major -msgid "set key" +#: js/blocks/BoxesBlocks.js:73 +msgid "add" msgstr "" -#: js/IntervalsBlocks.js:1247 -#: js/IntervalsBlocks.js:1253 -msgid "The Set key block is used to set the key and mode," +#: js/blocks/BoxesBlocks.js:75 +#: js/widgets/temperament.js:857 +msgid "to" msgstr "" -#: js/IntervalsBlocks.js:1253 -msgid "eg C Major" +#: js/blocks/BoxesBlocks.js:75 +#: js/blocks/BoxesBlocks.js:595 +#: js/blocks/HeapBlocks.js:544 +msgid "value1" msgstr "" -#: js/IntervalsBlocks.js:1266 -#: js/DictBlocks.js:215 -#: js/DictBlocks.js:216 -#: js/DictBlocks.js:289 -#: js/DictBlocks.js:290 -#: js/DictBlocks.js:357 -#: js/DictBlocks.js:430 -#: js/DictBlocks.js:431 -#.TRANS: key, e.g., C in C Major -msgid "key" +#: js/blocks/BoxesBlocks.js:118 +msgid "Block does not support incrementing." msgstr "" -#: js/ActionBlocks.js:58 -msgid "The Return block will return a value from an action." +#: js/blocks/BoxesBlocks.js:152 +msgid "The Add-1-to block adds one to the value stored in a box." msgstr "" -#: js/ActionBlocks.js:75 -msgid "return" +#: js/blocks/BoxesBlocks.js:163 +msgid "add 1 to" msgstr "" -#: js/ActionBlocks.js:128 -msgid "The Return to URL block will return a value to a webpage." +#: js/blocks/BoxesBlocks.js:211 +msgid "The Subtract-1-from block subtracts one from the value stored in a box." msgstr "" -#: js/ActionBlocks.js:145 -msgid "return to URL" +#: js/blocks/BoxesBlocks.js:222 +msgid "subtract 1 from" msgstr "" -#: js/ActionBlocks.js:233 -#: js/ActionBlocks.js:290 -#: js/ActionBlocks.js:501 -#: js/ActionBlocks.js:688 -msgid "The Calculate block returns a value calculated by an action." +#: js/blocks/BoxesBlocks.js:270 +#: js/blocks/BoxesBlocks.js:387 +msgid "The Box block returns the value stored in a box." msgstr "" -#: js/ActionBlocks.js:251 -#: js/ActionBlocks.js:517 -#: js/ActionBlocks.js:707 -msgid "calculate" +#: js/blocks/BoxesBlocks.js:500 +#: js/blocks/BoxesBlocks.js:576 +msgid "The Store in block will store a value in a box." msgstr "" -#: js/ActionBlocks.js:376 -#: js/ActionBlocks.js:593 -#: js/ActionBlocks.js:942 -#: js/ActionBlocks.js:1389 -#.TRANS: do is the do something or take an action. -msgid "The Do block is used to initiate an action." +#: js/blocks/BoxesBlocks.js:595 +#: js/blocks/EnsembleBlocks.js:391 +#: js/blocks/EnsembleBlocks.js:402 +msgid "name1" msgstr "" -#: js/ActionBlocks.js:390 -#: js/ActionBlocks.js:610 -#: js/ActionBlocks.js:959 -#: js/ActionBlocks.js:1048 -#: js/MeterBlocks.js:769 -msgid "do1" +#: js/blocks/BoxesBlocks.js:652 +msgid "The Box2 block returns the value stored in Box2." msgstr "" -#: js/ActionBlocks.js:390 -#: js/ActionBlocks.js:610 -#: js/ActionBlocks.js:959 -#: js/ActionBlocks.js:1048 -#: js/FlowBlocks.js:742 -#: js/FlowBlocks.js:822 -#: js/MeterBlocks.js:769 -msgid "do" +#: js/blocks/BoxesBlocks.js:703 +msgid "The Store in Box2 block is used to store a value in Box2." msgstr "" -#: js/ActionBlocks.js:791 -#: js/ActionBlocks.js:865 -msgid "The Arg block contains the value of an argument passed to an action." +#: js/blocks/BoxesBlocks.js:715 +msgid "store in box2" msgstr "" -#: js/ActionBlocks.js:806 -#: js/ActionBlocks.js:878 -msgid "arg" +#: js/blocks/BoxesBlocks.js:761 +msgid "The Box1 block returns the value stored in Box1." msgstr "" -#: js/ActionBlocks.js:836 -#: js/ActionBlocks.js:900 -#: js/ActionBlocks.js:908 -msgid "Invalid argument" +#: js/blocks/BoxesBlocks.js:812 +msgid "The Store in Box1 block is used to store a value in Box1." msgstr "" -#: js/ActionBlocks.js:944 -msgid "In the example, it is used with the One of block to choose a random phase." +#: js/blocks/BoxesBlocks.js:826 +msgid "store in box1" msgstr "" -#: js/ActionBlocks.js:1019 -#: js/ActionBlocks.js:1026 -msgid "The Listen block is used to listen for an event such as a mouse click." +#: js/blocks/DictBlocks.js:77 +msgid "show dictionary" msgstr "" -#: js/ActionBlocks.js:1028 -msgid "When the event happens, an action is taken." +#: js/blocks/DictBlocks.js:80 +#: js/blocks/DictBlocks.js:145 +#: js/blocks/DictBlocks.js:216 +#: js/blocks/DictBlocks.js:290 +#: js/blocks/ProgramBlocks.js:396 +#: js/blocks/ProgramBlocks.js:501 +#: js/blocks/ProgramBlocks.js:664 +msgid "My Dictionary" msgstr "" -#: js/ActionBlocks.js:1045 -msgid "on" +#: js/blocks/DictBlocks.js:129 +msgid "The Dictionary block returns a dictionary." msgstr "" -#: js/ActionBlocks.js:1048 -#: js/ActionBlocks.js:1049 -#: js/ActionBlocks.js:1153 -msgid "event" +#: js/blocks/DictBlocks.js:197 +#: js/blocks/DictBlocks.js:339 +msgid "The Get-dict block returns a value in the dictionary for a specified key." msgstr "" -#: js/ActionBlocks.js:1133 -msgid "The Broadcast block is used to trigger an event." +#: js/blocks/DictBlocks.js:212 +#: js/blocks/DictBlocks.js:354 +#.TRANS: retrieve a value from the dictionary with a given key +msgid "get value" msgstr "" -#: js/ActionBlocks.js:1151 -msgid "broadcast" +#: js/blocks/DictBlocks.js:215 +#: js/blocks/DictBlocks.js:216 +#: js/blocks/DictBlocks.js:289 +#: js/blocks/DictBlocks.js:290 +#: js/blocks/DictBlocks.js:357 +#: js/blocks/DictBlocks.js:430 +#: js/blocks/DictBlocks.js:431 +msgid "key2" msgstr "" -#: js/ActionBlocks.js:1208 -msgid "Each Start block is a separate voice." +#: js/blocks/DictBlocks.js:215 +#: js/blocks/DictBlocks.js:216 +#: js/blocks/DictBlocks.js:289 +#: js/blocks/DictBlocks.js:290 +#: js/blocks/DictBlocks.js:357 +#: js/blocks/DictBlocks.js:430 +#: js/blocks/DictBlocks.js:431 +#: js/blocks/IntervalsBlocks.js:1462 +#.TRANS: key, e.g., C in C Major +msgid "key" msgstr "" -#: js/ActionBlocks.js:1304 -msgid "It is often used for storing a phrase of music that is repeated." +#: js/blocks/DictBlocks.js:271 +#: js/blocks/DictBlocks.js:411 +msgid "The Set-dict block sets a value in the dictionary for a specified key." msgstr "" -#: js/ActionBlocks.js:1495 -msgid "define temperament" +#: js/blocks/DictBlocks.js:286 +#: js/blocks/DictBlocks.js:427 +#.TRANS: set a value in the dictionary for a given key +msgid "set value" msgstr "" -#: js/EnsembleBlocks.js:66 +#: js/blocks/EnsembleBlocks.js:66 msgid "mouse index heap" msgstr "" -#: js/EnsembleBlocks.js:68 +#: js/blocks/EnsembleBlocks.js:68 msgid "The Mouse index heap block returns a value in the heap at a specified location for a specified mouse." msgstr "" -#: js/EnsembleBlocks.js:77 -#: js/EnsembleBlocks.js:1080 +#: js/blocks/EnsembleBlocks.js:77 +#: js/blocks/EnsembleBlocks.js:1080 msgid "mouse name" msgstr "" -#: js/EnsembleBlocks.js:77 -#: js/EnsembleBlocks.js:92 -#: js/HeapBlocks.js:544 +#: js/blocks/EnsembleBlocks.js:77 +#: js/blocks/EnsembleBlocks.js:92 +#: js/blocks/HeapBlocks.js:544 #.TRANS: value1 is a numeric value (JAPANESE ONLY) msgid "index" msgstr "" -#: js/EnsembleBlocks.js:80 +#: js/blocks/EnsembleBlocks.js:80 msgid "turtle index heap" msgstr "" -#: js/EnsembleBlocks.js:82 +#: js/blocks/EnsembleBlocks.js:82 msgid "The Turtle index heap block returns a value in the heap at a specified location for a specified turtle." msgstr "" -#: js/EnsembleBlocks.js:90 -#: js/EnsembleBlocks.js:167 -#: js/EnsembleBlocks.js:230 -#: js/EnsembleBlocks.js:316 -#: js/EnsembleBlocks.js:362 -#: js/EnsembleBlocks.js:400 -#: js/EnsembleBlocks.js:454 -#: js/EnsembleBlocks.js:504 -#: js/EnsembleBlocks.js:550 -#: js/EnsembleBlocks.js:597 -#: js/EnsembleBlocks.js:651 -#: js/EnsembleBlocks.js:763 -#: js/EnsembleBlocks.js:854 -#: js/EnsembleBlocks.js:915 -#: js/EnsembleBlocks.js:955 -#: js/EnsembleBlocks.js:1219 -#: js/EnsembleBlocks.js:1293 +#: js/blocks/EnsembleBlocks.js:90 +#: js/blocks/EnsembleBlocks.js:167 +#: js/blocks/EnsembleBlocks.js:230 +#: js/blocks/EnsembleBlocks.js:316 +#: js/blocks/EnsembleBlocks.js:362 +#: js/blocks/EnsembleBlocks.js:400 +#: js/blocks/EnsembleBlocks.js:454 +#: js/blocks/EnsembleBlocks.js:504 +#: js/blocks/EnsembleBlocks.js:550 +#: js/blocks/EnsembleBlocks.js:597 +#: js/blocks/EnsembleBlocks.js:651 +#: js/blocks/EnsembleBlocks.js:763 +#: js/blocks/EnsembleBlocks.js:854 +#: js/blocks/EnsembleBlocks.js:915 +#: js/blocks/EnsembleBlocks.js:955 +#: js/blocks/EnsembleBlocks.js:1219 +#: js/blocks/EnsembleBlocks.js:1293 #.TRANS: Yertle is the name of a turtle. msgid "Yertle" msgstr "" -#: js/EnsembleBlocks.js:92 -#: js/EnsembleBlocks.js:1089 +#: js/blocks/EnsembleBlocks.js:92 +#: js/blocks/EnsembleBlocks.js:1089 msgid "turtle name" msgstr "" -#: js/EnsembleBlocks.js:122 -#: js/EnsembleBlocks.js:1197 -#: js/HeapBlocks.js:474 -#: js/HeapBlocks.js:572 +#: js/blocks/EnsembleBlocks.js:122 +#: js/blocks/EnsembleBlocks.js:1197 +#: js/blocks/HeapBlocks.js:474 +#: js/blocks/HeapBlocks.js:572 msgid "Index must be > 0." msgstr "" -#: js/EnsembleBlocks.js:127 -#: js/HeapBlocks.js:479 -#: js/HeapBlocks.js:577 +#: js/blocks/EnsembleBlocks.js:127 +#: js/blocks/HeapBlocks.js:479 +#: js/blocks/HeapBlocks.js:577 msgid "Maximum heap size is 1000." msgstr "" -#: js/EnsembleBlocks.js:145 +#: js/blocks/EnsembleBlocks.js:145 msgid "stop mouse" msgstr "" -#: js/EnsembleBlocks.js:147 +#: js/blocks/EnsembleBlocks.js:147 msgid "The Stop mouse block stops the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:158 +#: js/blocks/EnsembleBlocks.js:158 msgid "stop turtle" msgstr "" -#: js/EnsembleBlocks.js:160 +#: js/blocks/EnsembleBlocks.js:160 msgid "The Stop turtle block stops the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:184 -#: js/EnsembleBlocks.js:247 -#: js/EnsembleBlocks.js:413 -#: js/EnsembleBlocks.js:468 -#: js/EnsembleBlocks.js:706 -#: js/EnsembleBlocks.js:808 -#: js/EnsembleBlocks.js:870 -#: js/EnsembleBlocks.js:1190 -#: js/EnsembleBlocks.js:1253 +#: js/blocks/EnsembleBlocks.js:184 +#: js/blocks/EnsembleBlocks.js:247 +#: js/blocks/EnsembleBlocks.js:413 +#: js/blocks/EnsembleBlocks.js:468 +#: js/blocks/EnsembleBlocks.js:706 +#: js/blocks/EnsembleBlocks.js:808 +#: js/blocks/EnsembleBlocks.js:870 +#: js/blocks/EnsembleBlocks.js:1190 +#: js/blocks/EnsembleBlocks.js:1253 msgid "Cannot find mouse" msgstr "" -#: js/EnsembleBlocks.js:186 -#: js/EnsembleBlocks.js:249 -#: js/EnsembleBlocks.js:415 -#: js/EnsembleBlocks.js:470 -#: js/EnsembleBlocks.js:708 -#: js/EnsembleBlocks.js:810 -#: js/EnsembleBlocks.js:872 -#: js/EnsembleBlocks.js:1192 -#: js/EnsembleBlocks.js:1255 +#: js/blocks/EnsembleBlocks.js:186 +#: js/blocks/EnsembleBlocks.js:249 +#: js/blocks/EnsembleBlocks.js:415 +#: js/blocks/EnsembleBlocks.js:470 +#: js/blocks/EnsembleBlocks.js:708 +#: js/blocks/EnsembleBlocks.js:810 +#: js/blocks/EnsembleBlocks.js:872 +#: js/blocks/EnsembleBlocks.js:1192 +#: js/blocks/EnsembleBlocks.js:1255 msgid "Cannot find turtle" msgstr "" -#: js/EnsembleBlocks.js:206 +#: js/blocks/EnsembleBlocks.js:206 msgid "start mouse" msgstr "" -#: js/EnsembleBlocks.js:209 +#: js/blocks/EnsembleBlocks.js:209 msgid "The Start mouse block starts the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:220 +#: js/blocks/EnsembleBlocks.js:220 msgid "start turtle" msgstr "" -#: js/EnsembleBlocks.js:223 +#: js/blocks/EnsembleBlocks.js:223 msgid "The Start turtle block starts the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:256 +#: js/blocks/EnsembleBlocks.js:256 msgid "Mouse is already running." msgstr "" -#: js/EnsembleBlocks.js:258 +#: js/blocks/EnsembleBlocks.js:258 msgid "Turtle is already running." msgstr "" -#: js/EnsembleBlocks.js:282 +#: js/blocks/EnsembleBlocks.js:282 msgid "Cannot find start block" msgstr "" -#: js/EnsembleBlocks.js:292 +#: js/blocks/EnsembleBlocks.js:292 #.TRANS: pen color for this mouse msgid "mouse color" msgstr "" -#: js/EnsembleBlocks.js:294 +#: js/blocks/EnsembleBlocks.js:294 msgid "The Mouse color block returns the pen color of the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:306 +#: js/blocks/EnsembleBlocks.js:306 #.TRANS: pen color for this turtle msgid "turtle color" msgstr "" -#: js/EnsembleBlocks.js:308 +#: js/blocks/EnsembleBlocks.js:308 msgid "The Turtle color block returns the pen color of the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:338 +#: js/blocks/EnsembleBlocks.js:338 #.TRANS: heading (compass direction) for this mouse msgid "mouse heading" msgstr "" -#: js/EnsembleBlocks.js:340 +#: js/blocks/EnsembleBlocks.js:340 msgid "The Mouse heading block returns the heading of the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:352 +#: js/blocks/EnsembleBlocks.js:352 #.TRANS: heading (compass direction) for this turtle msgid "turtle heading" msgstr "" -#: js/EnsembleBlocks.js:354 +#: js/blocks/EnsembleBlocks.js:354 msgid "The Turtle heading block returns the heading of the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:384 -#: js/EnsembleBlocks.js:439 +#: js/blocks/EnsembleBlocks.js:384 +#: js/blocks/EnsembleBlocks.js:439 #.TRANS: set xy position for this mouse msgid "set mouse" msgstr "" -#: js/EnsembleBlocks.js:391 -#: js/EnsembleBlocks.js:402 -#: js/BoxesBlocks.js:595 -msgid "name1" -msgstr "" - -#: js/EnsembleBlocks.js:391 -#: js/EnsembleBlocks.js:402 -#: js/ProgramBlocks.js:881 -#: js/GraphicsBlocks.js:235 -#: js/GraphicsBlocks.js:313 -#: js/GraphicsBlocks.js:436 -#: js/GraphicsBlocks.js:487 -#: js/GraphicsBlocks.js:534 -#: js/GraphicsBlocks.js:750 +#: js/blocks/EnsembleBlocks.js:391 +#: js/blocks/EnsembleBlocks.js:402 +#: js/blocks/GraphicsBlocks.js:235 +#: js/blocks/GraphicsBlocks.js:313 +#: js/blocks/GraphicsBlocks.js:436 +#: js/blocks/GraphicsBlocks.js:487 +#: js/blocks/GraphicsBlocks.js:534 +#: js/blocks/GraphicsBlocks.js:750 +#: js/blocks/ProgramBlocks.js:881 msgid "x" msgstr "x" -#: js/EnsembleBlocks.js:391 -#: js/EnsembleBlocks.js:402 -#: js/ProgramBlocks.js:881 -#: js/GraphicsBlocks.js:149 -#: js/GraphicsBlocks.js:313 -#: js/GraphicsBlocks.js:436 -#: js/GraphicsBlocks.js:487 -#: js/GraphicsBlocks.js:534 -#: js/GraphicsBlocks.js:750 +#: js/blocks/EnsembleBlocks.js:391 +#: js/blocks/EnsembleBlocks.js:402 +#: js/blocks/GraphicsBlocks.js:149 +#: js/blocks/GraphicsBlocks.js:313 +#: js/blocks/GraphicsBlocks.js:436 +#: js/blocks/GraphicsBlocks.js:487 +#: js/blocks/GraphicsBlocks.js:534 +#: js/blocks/GraphicsBlocks.js:750 +#: js/blocks/ProgramBlocks.js:881 msgid "y" msgstr "y" -#: js/EnsembleBlocks.js:395 -#: js/EnsembleBlocks.js:452 +#: js/blocks/EnsembleBlocks.js:395 +#: js/blocks/EnsembleBlocks.js:452 #.TRANS: set xy position for this turtle msgid "set turtle" msgstr "" -#: js/EnsembleBlocks.js:433 +#: js/blocks/EnsembleBlocks.js:433 msgid "The Set mouse block sends a stack of blocks to be run by the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:446 +#: js/blocks/EnsembleBlocks.js:446 msgid "The Set turtle block sends a stack of blocks to be run by the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:480 +#: js/blocks/EnsembleBlocks.js:480 #.TRANS: y position for this mouse msgid "mouse y" msgstr "Tọa độ y của chuột(vói y là tọa độ của trục hoành)" -#: js/EnsembleBlocks.js:482 +#: js/blocks/EnsembleBlocks.js:482 msgid "The Y mouse block returns the Y position of the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:494 +#: js/blocks/EnsembleBlocks.js:494 #.TRANS: y position for this turtle msgid "turtle y" msgstr "" -#: js/EnsembleBlocks.js:496 +#: js/blocks/EnsembleBlocks.js:496 msgid "The Y turtle block returns the Y position of the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:526 +#: js/blocks/EnsembleBlocks.js:526 #.TRANS: x position for this mouse msgid "mouse x" msgstr "Tọa độ x của chuột(vói x là tọa độ của trục hoành)" -#: js/EnsembleBlocks.js:528 +#: js/blocks/EnsembleBlocks.js:528 msgid "The X mouse block returns the X position of the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:540 +#: js/blocks/EnsembleBlocks.js:540 #.TRANS: x position for this turtle msgid "turtle x" msgstr "" -#: js/EnsembleBlocks.js:542 +#: js/blocks/EnsembleBlocks.js:542 msgid "The X turtle block returns the X position of the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:573 +#: js/blocks/EnsembleBlocks.js:573 #.TRANS: notes played by this mouse msgid "mouse notes played" msgstr "" -#: js/EnsembleBlocks.js:575 +#: js/blocks/EnsembleBlocks.js:575 msgid "The Mouse elapse notes block returns the number of notes played by the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:587 +#: js/blocks/EnsembleBlocks.js:587 #.TRANS: notes played by this turtle msgid "turtle notes played" msgstr "" -#: js/EnsembleBlocks.js:589 +#: js/blocks/EnsembleBlocks.js:589 msgid "The Turtle elapse notes block returns the number of notes played by the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:627 +#: js/blocks/EnsembleBlocks.js:627 #.TRANS: convert current note for this turtle to piano key (1-88) msgid "mouse pitch number" msgstr "" -#: js/EnsembleBlocks.js:629 +#: js/blocks/EnsembleBlocks.js:629 msgid "The Mouse pitch block returns the current pitch number being played by the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:641 +#: js/blocks/EnsembleBlocks.js:641 #.TRANS: convert current note for this turtle to piano key (1-88) msgid "turtle pitch number" msgstr "" -#: js/EnsembleBlocks.js:643 -msgid "The Turrle pitch block returns the current pitch number being played by the specified turtle." +#: js/blocks/EnsembleBlocks.js:643 +msgid "The Turtle pitch block returns the current pitch number being played by the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:747 -#: js/EnsembleBlocks.js:819 +#: js/blocks/EnsembleBlocks.js:747 +#: js/blocks/EnsembleBlocks.js:819 #.TRANS: note value is the duration of the note played by this mouse msgid "mouse note value" msgstr "" -#: js/EnsembleBlocks.js:757 +#: js/blocks/EnsembleBlocks.js:757 #.TRANS: note value is the duration of the note played by this turtle msgid "turtle note value" msgstr "" -#: js/EnsembleBlocks.js:830 +#: js/blocks/EnsembleBlocks.js:830 #.TRANS: sync is short for synchronization msgid "mouse sync" msgstr "" -#: js/EnsembleBlocks.js:832 +#: js/blocks/EnsembleBlocks.js:832 msgid "The Mouse sync block aligns the beat count between mice." msgstr "" -#: js/EnsembleBlocks.js:844 +#: js/blocks/EnsembleBlocks.js:844 #.TRANS: sync is short for synchronization msgid "turtle sync" msgstr "" -#: js/EnsembleBlocks.js:846 +#: js/blocks/EnsembleBlocks.js:846 msgid "The Turtle sync block aligns the beat count between turtles." msgstr "" -#: js/EnsembleBlocks.js:887 +#: js/blocks/EnsembleBlocks.js:887 msgid "The Found mouse block will return true if the specified mouse can be found." msgstr "" -#: js/EnsembleBlocks.js:893 +#: js/blocks/EnsembleBlocks.js:893 msgid "found mouse" msgstr "" -#: js/EnsembleBlocks.js:903 +#: js/blocks/EnsembleBlocks.js:903 msgid "The Found turtle block will return true if the specified turtle can be found." msgstr "" -#: js/EnsembleBlocks.js:909 +#: js/blocks/EnsembleBlocks.js:909 msgid "found turtle" msgstr "" -#: js/EnsembleBlocks.js:932 +#: js/blocks/EnsembleBlocks.js:932 msgid "new mouse" msgstr "" -#: js/EnsembleBlocks.js:934 +#: js/blocks/EnsembleBlocks.js:934 msgid "The New mouse block will create a new mouse." msgstr "" -#: js/EnsembleBlocks.js:945 +#: js/blocks/EnsembleBlocks.js:945 msgid "new turtle" msgstr "" -#: js/EnsembleBlocks.js:947 +#: js/blocks/EnsembleBlocks.js:947 msgid "The New turtle block will create a new turtle." msgstr "" -#: js/EnsembleBlocks.js:1011 +#: js/blocks/EnsembleBlocks.js:1011 msgid "set mouse color" msgstr "" -#: js/EnsembleBlocks.js:1014 +#: js/blocks/EnsembleBlocks.js:1014 msgid "The Set-mouse-color block is used to set the color of a mouse." msgstr "" -#: js/EnsembleBlocks.js:1020 +#: js/blocks/EnsembleBlocks.js:1020 msgid "set turtle color" msgstr "" -#: js/EnsembleBlocks.js:1023 +#: js/blocks/EnsembleBlocks.js:1023 msgid "The Set-turtle-color block is used to set the color of a turtle." msgstr "" -#: js/EnsembleBlocks.js:1083 +#: js/blocks/EnsembleBlocks.js:1083 msgid "The Mouse-name block returns the name of a mouse." msgstr "" -#: js/EnsembleBlocks.js:1092 +#: js/blocks/EnsembleBlocks.js:1092 msgid "The Turtle-name block returns the name of a turtle." msgstr "" -#: js/EnsembleBlocks.js:1115 +#: js/blocks/EnsembleBlocks.js:1115 msgid "mouse count" msgstr "" -#: js/EnsembleBlocks.js:1118 +#: js/blocks/EnsembleBlocks.js:1118 msgid "The Mouse-count block returns the number of mice." msgstr "" -#: js/EnsembleBlocks.js:1124 +#: js/blocks/EnsembleBlocks.js:1124 msgid "turtle count" msgstr "" -#: js/EnsembleBlocks.js:1127 +#: js/blocks/EnsembleBlocks.js:1127 msgid "The Turtle-count block returns the number of turtles." msgstr "" -#: js/EnsembleBlocks.js:1149 +#: js/blocks/EnsembleBlocks.js:1149 msgid "nth mouse name" msgstr "" -#: js/EnsembleBlocks.js:1152 +#: js/blocks/EnsembleBlocks.js:1152 msgid "The Nth-Mouse name block returns the name of the nth mouse." msgstr "" -#: js/EnsembleBlocks.js:1158 +#: js/blocks/EnsembleBlocks.js:1158 msgid "nth turtle name" msgstr "" -#: js/EnsembleBlocks.js:1161 -msgid "The Nth-Turtle name block returns the name of the nth turtle." -msgstr "" - -#: js/EnsembleBlocks.js:1205 -#: js/EnsembleBlocks.js:1265 -msgid "set name" -msgstr "" - -#: js/EnsembleBlocks.js:1214 -#: js/EnsembleBlocks.js:1221 -msgid "source" -msgstr "" - -#: js/EnsembleBlocks.js:1214 -#: js/EnsembleBlocks.js:1221 -msgid "target" -msgstr "" - -#: js/EnsembleBlocks.js:1271 -msgid "The Set-name block is used to name a mouse." -msgstr "" - -#: js/EnsembleBlocks.js:1284 -msgid "The Set-name block is used to name a turtle." -msgstr "" - -#: js/BooleanBlocks.js:44 -msgid "The Not block is the logical not operator." -msgstr "" - -#: js/BooleanBlocks.js:62 -msgid "not" -msgstr "không phải" - -#: js/BooleanBlocks.js:134 -msgid "The And block is the logical and operator." -msgstr "" - -#: js/BooleanBlocks.js:152 -msgid "and" -msgstr "và" - -#: js/BooleanBlocks.js:218 -msgid "The Or block is the logical or operator." -msgstr "" - -#: js/BooleanBlocks.js:236 -msgid "or" -msgstr "hoặc" - -#: js/BooleanBlocks.js:302 -msgid "The XOR block is the logical XOR operator." -msgstr "" - -#: js/BooleanBlocks.js:320 -msgid "xor" -msgstr "" - -#: js/BooleanBlocks.js:808 -msgid "The Equal block returns True if the two numbers are equal." -msgstr "" - -#: js/BooleanBlocks.js:909 -msgid "The Not-equal-to block returns True if the two numbers are not equal to each other." -msgstr "" - -#: js/BooleanBlocks.js:1008 -msgid "The Boolean block is used to specify true or false." -msgstr "" - -#: js/MediaBlocks.js:35 -#.TRANS: right side of the screen -msgid "right (screen)" -msgstr "" - -#: js/MediaBlocks.js:45 -#: js/MediaBlocks.js:56 -msgid "The Right block returns the position of the right of the canvas." +#: js/blocks/EnsembleBlocks.js:1161 +msgid "The Nth-Turtle name block returns the name of the nth turtle." msgstr "" -#: js/MediaBlocks.js:97 -#.TRANS: left side of the screen -msgid "left (screen)" +#: js/blocks/EnsembleBlocks.js:1205 +#: js/blocks/EnsembleBlocks.js:1265 +msgid "set name" msgstr "" -#: js/MediaBlocks.js:107 -#: js/MediaBlocks.js:118 -msgid "The Left block returns the position of the left of the canvas." +#: js/blocks/EnsembleBlocks.js:1214 +#: js/blocks/EnsembleBlocks.js:1221 +msgid "source" msgstr "" -#: js/MediaBlocks.js:158 -msgid "top (screen)" +#: js/blocks/EnsembleBlocks.js:1214 +#: js/blocks/EnsembleBlocks.js:1221 +msgid "target" msgstr "" -#: js/MediaBlocks.js:168 -#: js/MediaBlocks.js:179 -msgid "The Top block returns the position of the top of the canvas." +#: js/blocks/EnsembleBlocks.js:1271 +msgid "The Set-name block is used to name a mouse." msgstr "" -#: js/MediaBlocks.js:219 -msgid "bottom (screen)" +#: js/blocks/EnsembleBlocks.js:1284 +msgid "The Set-name block is used to name a turtle." msgstr "" -#: js/MediaBlocks.js:229 -#: js/MediaBlocks.js:240 -msgid "The Bottom block returns the position of the bottom of the canvas." +#: js/blocks/ExtrasBlocks.js:33 +msgid "fraction" msgstr "" -#: js/MediaBlocks.js:282 -msgid "width" +#: js/blocks/ExtrasBlocks.js:36 +msgid "Convert a float to a fraction" msgstr "" -#: js/MediaBlocks.js:291 -msgid "The Width block returns the width of the canvas." +#: js/blocks/ExtrasBlocks.js:93 +msgid "save as ABC" msgstr "" -#: js/MediaBlocks.js:325 -msgid "height" +#: js/blocks/ExtrasBlocks.js:96 +#: js/blocks/ExtrasBlocks.js:132 +#: js/blocks/ExtrasBlocks.js:168 +msgid "title" msgstr "" -#: js/MediaBlocks.js:334 -msgid "The Height block returns the height of the canvas." +#: js/blocks/ExtrasBlocks.js:129 +msgid "save as Lilypond" msgstr "" -#: js/MediaBlocks.js:369 -#.TRANS: stops playback of an audio recording -msgid "stop play" +#: js/blocks/ExtrasBlocks.js:165 +msgid "save as SVG" msgstr "" -#: js/MediaBlocks.js:404 -#.TRANS: Erases the images and text -msgid "erase media" +#: js/blocks/ExtrasBlocks.js:216 +msgid "no background" msgstr "" -#: js/MediaBlocks.js:409 -msgid "The Erase Media block erases text and images." +#: js/blocks/ExtrasBlocks.js:219 +msgid "The No background block eliminates the background from the saved SVG output." msgstr "" -#: js/MediaBlocks.js:439 -#.TRANS: play an audio recording -msgid "play back" +#: js/blocks/ExtrasBlocks.js:247 +msgid "show blocks" +msgstr "hiện khối" + +#: js/blocks/ExtrasBlocks.js:249 +msgid "The Show blocks block shows the blocks." msgstr "" -#: js/MediaBlocks.js:487 -msgid "speak" -msgstr "Nói" +#: js/blocks/ExtrasBlocks.js:274 +msgid "hide blocks" +msgstr "ẩn khối" -#: js/MediaBlocks.js:495 -msgid "The Speak block outputs to the text-to-speech synthesizer" +#: js/blocks/ExtrasBlocks.js:276 +msgid "The Hide blocks block hides the blocks." msgstr "" -#: js/MediaBlocks.js:546 -msgid "camera" +#: js/blocks/ExtrasBlocks.js:305 +#: js/blocks/ExtrasBlocks.js:338 +msgid "The Space block is used to add space between blocks." msgstr "" -#: js/MediaBlocks.js:551 -msgid "The Camera block connects a webcam to the Show block." -msgstr "" +#: js/blocks/ExtrasBlocks.js:376 +msgid "wait" +msgstr "đợi" -#: js/MediaBlocks.js:574 -msgid "video" +#: js/blocks/ExtrasBlocks.js:379 +msgid "The Wait block pauses the program for a specified number of seconds." msgstr "" -#: js/MediaBlocks.js:579 -msgid "The Video block selects video for use with the Show block." -msgstr "" +#: js/blocks/ExtrasBlocks.js:433 +#: plugins/facebook.rtp:30 +msgid "comment" +msgstr "ghi chú" -#: js/MediaBlocks.js:607 -msgid "The Open file block opens a file for use with the Show block." -msgstr "" +#: js/blocks/ExtrasBlocks.js:469 +msgid "print" +msgstr "in" -#: js/MediaBlocks.js:645 -msgid "stop media" +#: js/blocks/ExtrasBlocks.js:476 +msgid "The Print block displays text at the top of the screen." msgstr "" -#: js/MediaBlocks.js:650 -msgid "The Stop media block stops audio or video playback." +#: js/blocks/ExtrasBlocks.js:582 +msgid "display grid" msgstr "" -#: js/MediaBlocks.js:679 -#: js/PitchBlocks.js:1539 -#: js/phrasemaker.js:822 -#: js/musickeyboard.js:1654 -#.TRANS: a measure of frequency: one cycle per second -msgid "hertz" +#: js/blocks/ExtrasBlocks.js:587 +msgid "The Display Grid Block changes the grid type" msgstr "" -#: js/MediaBlocks.js:692 -msgid "duration (ms)" +#: js/blocks/ExtrasBlocks.js:689 +#: js/blocks/ExtrasBlocks.js:708 +#: js/blocks/ExtrasBlocks.js:731 +#: js/blocks/ExtrasBlocks.js:754 +#: js/blocks/ExtrasBlocks.js:772 +#: js/blocks/ExtrasBlocks.js:791 +#: js/blocks/ExtrasBlocks.js:810 +#: js/blocks/ExtrasBlocks.js:829 +msgid "unknown" msgstr "" -#: js/MediaBlocks.js:728 -#.TRANS: translate a note into hertz, e.g., A4 -> 440HZ -msgid "note to frequency" +#: js/blocks/FlowBlocks.js:41 +msgid "The Backward block runs code in reverse order (Musical retrograde)." msgstr "" -#: js/MediaBlocks.js:736 -msgid "The To frequency block converts a pitch name and octave to Hertz." +#: js/blocks/FlowBlocks.js:48 +msgid "backward" msgstr "" -#: js/MediaBlocks.js:746 -#: js/PitchBlocks.js:656 -#: js/PitchBlocks.js:932 -#: js/PitchBlocks.js:1827 -#.TRANS: name2 is name as in name of pitch (JAPANESE ONLY) -msgid "name2" +#: js/blocks/FlowBlocks.js:124 +msgid "The Duplicate block will run each block multiple times." msgstr "" -#: js/MediaBlocks.js:812 -msgid "The Avatar block is used to change the appearance of the mouse." +#: js/blocks/FlowBlocks.js:136 +msgid "duplicate" msgstr "" -#: js/MediaBlocks.js:819 -msgid "The Avatar block is used to change the appearance of the turtle." +#: js/blocks/FlowBlocks.js:334 +msgid "The Default block is used inside of a Switch to define the default action." msgstr "" -#: js/MediaBlocks.js:831 -#: js/MediaBlocks.js:891 -#.TRANS: a media object -msgid "size" +#: js/blocks/FlowBlocks.js:342 +msgid "default" msgstr "" -#: js/MediaBlocks.js:831 -msgid "image" -msgstr "ảnh" - -#: js/MediaBlocks.js:880 -msgid "The Show block is used to display text or images on the canvas." +#: js/blocks/FlowBlocks.js:361 +#: js/blocks/FlowBlocks.js:418 +msgid "The Case Block must be used inside of a Switch Block." msgstr "" -#: js/MediaBlocks.js:888 -#.TRANS: show1 is show as in display an image or text on the screen. -msgid "show1" +#: js/blocks/FlowBlocks.js:389 +msgid "The Case block is used inside of a Switch to define matches." msgstr "" -#: js/MediaBlocks.js:891 -msgid "obj" +#: js/blocks/FlowBlocks.js:397 +msgid "case" msgstr "" -#: js/MediaBlocks.js:938 -msgid "The Media block is used to import an image." +#: js/blocks/FlowBlocks.js:446 +msgid "The Switch block will run the code in the matching Case." msgstr "" -#: js/MediaBlocks.js:973 -msgid "The Text block holds a text string." +#: js/blocks/FlowBlocks.js:454 +msgid "switch" msgstr "" -#: js/ProgramBlocks.js:33 -msgid "The Load-heap-from-app block loads the heap from a web page." +#: js/blocks/FlowBlocks.js:595 +msgid "The Stop block will stop a loop" msgstr "" -#: js/ProgramBlocks.js:44 -#.TRANS: load the heap contents from a URL -msgid "load heap from App" +#: js/blocks/FlowBlocks.js:597 +msgid "Forever, Repeat, While, or Until." msgstr "" -#: js/ProgramBlocks.js:95 -msgid "Error parsing JSON data:" -msgstr "" +#: js/blocks/FlowBlocks.js:604 +#: js/widgets/timbre.js:417 +#: js/widgets/timbre.js:419 +#: js/widgets/musickeyboard.js:819 +#: js/widgets/musickeyboard.js:821 +#: js/widgets/phrasemaker.js:4202 +#: plugins/rodi.rtp:29 +#: plugins/rodi.rtp:73 +#: plugins/rodi.rtp:413 +msgid "stop" +msgstr "dừng" -#: js/ProgramBlocks.js:100 -msgid "404: Page not found" +#: js/blocks/FlowBlocks.js:653 +msgid "The Waitfor block will wait until the condition is true." msgstr "" -#: js/ProgramBlocks.js:133 -msgid "The Save-heap-to-app block saves the heap to a web page." +#: js/blocks/FlowBlocks.js:661 +msgid "wait for" msgstr "" -#: js/ProgramBlocks.js:144 -#.TRANS: save the heap contents to a URL -msgid "save heap to App" +#: js/blocks/FlowBlocks.js:732 +msgid "The Until block will repeat until the condition is true." msgstr "" -#: js/ProgramBlocks.js:189 -msgid "Cannot find a valid heap for" -msgstr "" +#: js/blocks/FlowBlocks.js:740 +msgid "until" +msgstr "đến khi" -#: js/ProgramBlocks.js:206 -msgid "The Load-heap block loads the heap from a file." +#: js/blocks/FlowBlocks.js:742 +#: js/blocks/FlowBlocks.js:822 +msgid "do2" msgstr "" -#: js/ProgramBlocks.js:217 -#.TRANS: load the heap from a file -msgid "load heap" +#: js/blocks/FlowBlocks.js:812 +msgid "The While block will repeat while the condition is true." msgstr "" -#: js/ProgramBlocks.js:270 -msgid "The file you selected does not contain a valid heap." -msgstr "" +#: js/blocks/FlowBlocks.js:820 +msgid "while" +msgstr "trong khi" -#: js/ProgramBlocks.js:275 -msgid "The loadHeap block needs a loadFile block." +#: js/blocks/FlowBlocks.js:903 +#: js/blocks/FlowBlocks.js:968 +#: js/blocks/FlowBlocks.js:979 +msgid "In this example if the mouse button is pressed a snare drum will play." msgstr "" -#: js/ProgramBlocks.js:291 -msgid "The Set-heap block loads the heap." -msgstr "" +#: js/blocks/FlowBlocks.js:925 +#: js/blocks/FlowBlocks.js:988 +msgid "if" +msgstr "nếu" -#: js/ProgramBlocks.js:299 -#: js/HeapBlocks.js:539 -#.TRANS: load the heap from a JSON encoding -msgid "set heap" -msgstr "" +#: js/blocks/FlowBlocks.js:927 +#: js/blocks/FlowBlocks.js:990 +msgid "then" +msgstr "thì" -#: js/ProgramBlocks.js:340 -msgid "The block you selected does not contain a valid heap." -msgstr "" +#: js/blocks/FlowBlocks.js:927 +msgid "else" +msgstr "không thì" -#: js/ProgramBlocks.js:343 -msgid "The Set heap block needs a heap." +#: js/blocks/FlowBlocks.js:1025 +msgid "The Forever block will repeat the contained blocks forever." msgstr "" -#: js/ProgramBlocks.js:360 -msgid "The Load-dictionary block loads a dictionary from a file." -msgstr "" +#: js/blocks/FlowBlocks.js:1037 +msgid "forever" +msgstr "hẳn" -#: js/ProgramBlocks.js:372 -#.TRANS: load a dictionary from a file -msgid "load dictionary" +#: js/blocks/FlowBlocks.js:1073 +msgid "The Repeat block will repeat the contained blocks." msgstr "" -#: js/ProgramBlocks.js:390 -#: js/ProgramBlocks.js:658 -#: js/ToneBlocks.js:1025 -msgid "file" +#: js/blocks/FlowBlocks.js:1075 +msgid "In this example the note will be played 4 times." msgstr "" -#: js/ProgramBlocks.js:396 -#: js/ProgramBlocks.js:501 -#: js/ProgramBlocks.js:664 -#: js/DictBlocks.js:80 -#: js/DictBlocks.js:145 -#: js/DictBlocks.js:216 -#: js/DictBlocks.js:290 -msgid "My Dictionary" -msgstr "" +#: js/blocks/FlowBlocks.js:1083 +msgid "repeat" +msgstr "lặp lại" -#: js/ProgramBlocks.js:444 -msgid "The file you selected does not contain a valid dictionary." +#: js/blocks/FlowBlocks.js:1123 +msgid "duplicate factor" msgstr "" -#: js/ProgramBlocks.js:449 -msgid "The load dictionary block needs a load file block." +#: js/blocks/HeapBlocks.js:49 +msgid "The Heap block returns the heap." msgstr "" -#: js/ProgramBlocks.js:466 -msgid "The Set-dictionary block loads a dictionary." -msgstr "" +#: js/blocks/HeapBlocks.js:133 +msgid "show heap" +msgstr "hiện miền nhớ" -#: js/ProgramBlocks.js:477 -#.TRANS: load a dictionary from a JSON -msgid "set dictionary" +#: js/blocks/HeapBlocks.js:181 +msgid "The Heap-length block returns the length of the heap." msgstr "" -#: js/ProgramBlocks.js:546 -msgid "The block you selected does not contain a valid dictionary." +#: js/blocks/HeapBlocks.js:195 +msgid "heap length" msgstr "" -#: js/ProgramBlocks.js:550 -msgid "The set dictionary block needs a dictionary." +#: js/blocks/HeapBlocks.js:254 +msgid "The Heap-empty? block returns true if the heap is empty." msgstr "" -#: js/ProgramBlocks.js:567 -msgid "The Save-heap block saves the heap to a file." +#: js/blocks/HeapBlocks.js:268 +#.TRANS: Is the heap empty? +msgid "heap empty?" msgstr "" -#: js/ProgramBlocks.js:578 -#.TRANS: save the heap to a file -msgid "save heap" +#: js/blocks/HeapBlocks.js:317 +msgid "The Empty-heap block empties the heap." msgstr "" -#: js/ProgramBlocks.js:629 -msgid "The Save-dictionary block saves a dictionary to a file." +#: js/blocks/HeapBlocks.js:327 +#: js/blocks/HeapBlocks.js:647 +#.TRANS: empty the heap +msgid "empty heap" +msgstr "miền nhớ trống" + +#: js/blocks/HeapBlocks.js:371 +msgid "The Reverse-heap block reverses the order of the heap." msgstr "" -#: js/ProgramBlocks.js:640 -#.TRANS: save a dictionary to a file -msgid "save dictionary" +#: js/blocks/HeapBlocks.js:384 +#.TRANS: reverse the order of the heap +msgid "reverse heap" msgstr "" -#: js/ProgramBlocks.js:720 -msgid "The Open palette block opens a palette." +#: js/blocks/HeapBlocks.js:428 +msgid "The Index-heap block returns a value in the heap at a specified location." msgstr "" -#: js/ProgramBlocks.js:727 -msgid "open palette" +#: js/blocks/HeapBlocks.js:443 +#.TRANS: retrieve a value from the heap at index position in the heap +msgid "index heap" msgstr "" -#: js/ProgramBlocks.js:785 -msgid "The Delete block block removes a block." +#: js/blocks/HeapBlocks.js:523 +msgid "The Set-heap entry block sets a value in he heap at the specified location." msgstr "" -#: js/ProgramBlocks.js:797 -#.TRANS: Move this block to the trash. -msgid "delete block" +#: js/blocks/HeapBlocks.js:539 +#: js/blocks/ProgramBlocks.js:299 +#.TRANS: load the heap from a JSON encoding +msgid "set heap" msgstr "" -#: js/ProgramBlocks.js:861 -msgid "The Move block block moves a block." +#: js/blocks/HeapBlocks.js:619 +msgid "The Pop block removes the value at the top of the heap." msgstr "" -#: js/ProgramBlocks.js:869 -#.TRANS: Move the position of a block on the screen. -msgid "move block" +#: js/blocks/HeapBlocks.js:633 +#.TRANS: pop a value off the top of the heap +msgid "pop" +msgstr "Đẩy" + +#: js/blocks/HeapBlocks.js:680 +msgid "The Push block adds a value to the top of the heap." msgstr "" -#: js/ProgramBlocks.js:881 -#: js/ProgramBlocks.js:1048 -msgid "block number" +#: js/blocks/HeapBlocks.js:696 +#.TRANS: push a value onto the top of the heap +msgid "push" +msgstr "đẩy" + +#: js/blocks/IntervalsBlocks.js:45 +msgid "set temperament" msgstr "" -#: js/ProgramBlocks.js:935 -#.TRANS: Run program beginning at this block. -msgid "run block" +#: js/blocks/IntervalsBlocks.js:63 +#: js/blocks/MediaBlocks.js:746 +#: js/blocks/PitchBlocks.js:657 +#: js/blocks/PitchBlocks.js:935 +#: js/blocks/PitchBlocks.js:974 +#: js/blocks/PitchBlocks.js:1007 +#: js/blocks/PitchBlocks.js:1194 +#: js/blocks/PitchBlocks.js:1717 +#: js/blocks/PitchBlocks.js:1758 +#: js/blocks/PitchBlocks.js:1866 +#: js/blocks/ToneBlocks.js:1025 +#: js/turtleactions/IntervalsActions.js:114 +#.TRANS: adjusts the shift up or down by one octave (twelve half-steps in the interval between two notes, one having twice or half the frequency in Hz of the other.) +msgid "octave" msgstr "" -#: js/ProgramBlocks.js:1025 -msgid "The Dock block block connections two blocks." +#: js/blocks/IntervalsBlocks.js:99 +msgid "The Temperament name block is used to select a tuning method." msgstr "" -#: js/ProgramBlocks.js:1036 -#.TRANS: We can connect a block to another block. -msgid "connect blocks" +#: js/blocks/IntervalsBlocks.js:161 +msgid "doubly" msgstr "" -#: js/ProgramBlocks.js:1048 -msgid "target block" +#: js/blocks/IntervalsBlocks.js:166 +msgid "The Doubly block will double the size of an interval." msgstr "" -#: js/ProgramBlocks.js:1048 -msgid "connection number" +#: js/blocks/IntervalsBlocks.js:262 +msgid "interval number" msgstr "" -#: js/ProgramBlocks.js:1140 -msgid "The Make block block creates a new block." +#: js/blocks/IntervalsBlocks.js:317 +msgid "current interval" msgstr "" -#: js/ProgramBlocks.js:1152 -#.TRANS: Create a new block -msgid "make block" +#: js/blocks/IntervalsBlocks.js:387 +#.TRANS: measure the distance between two pitches in semi-tones +msgid "semi-tone interval measure" msgstr "" -#: js/ProgramBlocks.js:1186 -#: js/ProgramBlocks.js:1227 -#: js/RhythmBlocks.js:1128 -#: js/PitchBlocks.js:972 -#: js/PitchBlocks.js:1005 -#: js/temperament.js:340 -#: js/temperament.js:362 -#: js/temperament.js:372 -#: js/temperament.js:484 -#: js/status.js:190 -#: plugins/rodi.rtp:192 -#.TRANS: a musical note consisting of pitch and duration -msgid "note" +#: js/blocks/IntervalsBlocks.js:454 +#: js/blocks/IntervalsBlocks.js:570 +msgid "You must use two pitch blocks when measuring an interval." msgstr "" -#: js/ProgramBlocks.js:1285 -msgid "Cannot find block" +#: js/blocks/IntervalsBlocks.js:496 +msgid "The Scalar interval block measures the distance between two notes in the current key and mode." msgstr "" -#: js/ProgramBlocks.js:1304 -#: js/ProgramBlocks.js:1313 -msgid "Warning: block argument type mismatch" +#: js/blocks/IntervalsBlocks.js:502 +#.TRANS: measure the distance between two pitches in steps of musical scale +msgid "scalar interval measure" msgstr "" -#: js/ProgramBlocks.js:1347 -msgid "The Open project block is used to open a project from a web page." +#: js/blocks/IntervalsBlocks.js:678 +msgid "In the figure, we add sol# to sol." msgstr "" -#: js/ProgramBlocks.js:1357 -msgid "open project" +#: js/blocks/IntervalsBlocks.js:684 +#: js/blocks/OrnamentBlocks.js:220 +#.TRANS: calculate a relative step between notes based on semi-tones +msgid "semi-tone interval" msgstr "" -#: js/ProgramBlocks.js:1410 -msgid "Please enter a valid URL." +#: js/blocks/IntervalsBlocks.js:733 +msgid "The output of the example is: do, mi, sol, sol, ti, mi" msgstr "" -#: js/DrumBlocks.js:59 -msgid "The Noise name block is used to select a noise synthesizer." +#: js/blocks/IntervalsBlocks.js:740 +#: js/blocks/WidgetBlocks.js:768 +msgid "arpeggio" msgstr "" -#: js/DrumBlocks.js:102 -msgid "The Drum name block is used to select a drum." +#: js/blocks/IntervalsBlocks.js:931 +msgid "The Chord block calculates common chords." msgstr "" -#: js/DrumBlocks.js:146 -msgid "The Effects name block is used to select a sound effect." +#: js/blocks/IntervalsBlocks.js:933 +msgid "In the figure, we generate a C-major chord." msgstr "" -#: js/DrumBlocks.js:163 -msgid "noise" +#: js/blocks/IntervalsBlocks.js:938 +msgid "chord" msgstr "" -#: js/DrumBlocks.js:177 -msgid "The Play noise block will generate white, pink, or brown noise." +#: js/blocks/IntervalsBlocks.js:990 +msgid "The Ratio Interval block calculates an interval based on a ratio." msgstr "" -#: js/DrumBlocks.js:191 -#: js/musicutils.js:752 -#: js/synthutils.js:47 -#.TRANS: white noise synthesizer -msgid "white noise" +#: js/blocks/IntervalsBlocks.js:995 +msgid "ratio interval" msgstr "" -#: js/DrumBlocks.js:326 -msgid "Replace every instance of a pitch with a drum sound." +#: js/blocks/IntervalsBlocks.js:1064 +msgid "In the figure, we add la to sol." msgstr "" -#: js/DrumBlocks.js:337 -#.TRANS: map a pitch to a drum sound -msgid "map pitch to drum" +#: js/blocks/IntervalsBlocks.js:1120 +#.TRANS: define a custom mode +msgid "define mode" msgstr "" -#: js/DrumBlocks.js:404 -msgid "In the example above, a kick drum sound will be played instead of sol." +#: js/blocks/IntervalsBlocks.js:1173 +msgid "movable Do" msgstr "" -#: js/DrumBlocks.js:416 -#.TRANS: set the current drum sound for playback -msgid "set drum" +#: js/blocks/IntervalsBlocks.js:1224 +#.TRANS: mode length is the number of notes in the mode, e.g., 7 for major and minor scales; 12 for chromatic scales +msgid "mode length" msgstr "" -#: js/DrumBlocks.js:460 -msgid "sound effect" +#: js/blocks/IntervalsBlocks.js:1233 +msgid "The Mode length block is the number of notes in the current scale." msgstr "" -#: js/DrumBlocks.js:498 -msgid "You can use multiple Drum blocks within a Note block." +#: js/blocks/IntervalsBlocks.js:1235 +msgid "Most Western scales have 7 notes." msgstr "" -#: js/RhythmBlocks.js:182 -#: js/RhythmBlocks.js:1086 -#: js/RhythmBlocks.js:1162 -msgid "Note value must be greater than 0." +#: js/blocks/IntervalsBlocks.js:1284 +#.TRANS: the mode in music is 'major', 'minor', etc. +msgid "current mode" msgstr "" -#: js/RhythmBlocks.js:215 -#: js/RhythmBlocks.js:278 -#: js/RhythmBlocks.js:350 -#.TRANS: swing is a rhythmic variation that emphasises the offbeat -msgid "swing" +#: js/blocks/IntervalsBlocks.js:1337 +#.TRANS: the key is a group of pitches with which a music composition is created +msgid "current key" msgstr "" -#: js/RhythmBlocks.js:355 -#.TRANS: the amount to shift to the offbeat note -msgid "swing value" +#: js/blocks/IntervalsBlocks.js:1389 +#: js/blocks/IntervalsBlocks.js:1434 +#.TRANS: set the key and mode, e.g. C Major +msgid "set key" msgstr "" -#: js/RhythmBlocks.js:419 -msgid "The Skip notes block will cause notes to be skipped." +#: js/blocks/IntervalsBlocks.js:1443 +#: js/blocks/IntervalsBlocks.js:1449 +msgid "The Set key block is used to set the key and mode," msgstr "" -#: js/RhythmBlocks.js:427 -#.TRANS: substitute rests on notes being skipped -msgid "skip notes" +#: js/blocks/IntervalsBlocks.js:1449 +msgid "eg C Major" msgstr "" -#: js/RhythmBlocks.js:489 -#.TRANS: speed up note duration by some factor, e.g. convert 1/4 to 1/8 notes by using a factor of 2 -msgid "multiply note value" +#: js/blocks/MediaBlocks.js:35 +#.TRANS: right side of the screen +msgid "right (screen)" msgstr "" -#: js/RhythmBlocks.js:542 -msgid "The Tie block works on pairs of notes, combining them into one note." +#: js/blocks/MediaBlocks.js:45 +#: js/blocks/MediaBlocks.js:56 +msgid "The Right block returns the position of the right of the canvas." msgstr "" -#: js/RhythmBlocks.js:550 -#.TRANS: tie notes together into one longer note -msgid "tie" +#: js/blocks/MediaBlocks.js:97 +#.TRANS: left side of the screen +msgid "left (screen)" msgstr "" -#: js/RhythmBlocks.js:591 -#: js/RhythmBlocks.js:671 -#.TRANS: a dotted note is played for 1.5x its value, e.g., 1/8. --> 3/16 -msgid "dot" +#: js/blocks/MediaBlocks.js:107 +#: js/blocks/MediaBlocks.js:118 +msgid "The Left block returns the position of the left of the canvas." msgstr "" -#: js/RhythmBlocks.js:619 -#: js/RhythmActions.js:221 -msgid "An argument of -1 results in a note value of 0." +#: js/blocks/MediaBlocks.js:158 +msgid "top (screen)" msgstr "" -#: js/RhythmBlocks.js:661 -msgid "The Dot block extends the duration of a note by 50%." +#: js/blocks/MediaBlocks.js:168 +#: js/blocks/MediaBlocks.js:179 +msgid "The Top block returns the position of the top of the canvas." msgstr "" -#: js/RhythmBlocks.js:663 -msgid "Eg a dotted quarter note will play for 3/8 (1/4 + 1/8) of a beat." +#: js/blocks/MediaBlocks.js:219 +msgid "bottom (screen)" msgstr "" -#: js/RhythmBlocks.js:765 -#.TRANS: Japanese only: note value block for drum -msgid "note value drum" +#: js/blocks/MediaBlocks.js:229 +#: js/blocks/MediaBlocks.js:240 +msgid "The Bottom block returns the position of the bottom of the canvas." msgstr "" -#: js/RhythmBlocks.js:829 -msgid "392 hertz" +#: js/blocks/MediaBlocks.js:282 +msgid "width" msgstr "" -#: js/RhythmBlocks.js:1119 -msgid "The Note block is a container for one or more Pitch blocks." +#: js/blocks/MediaBlocks.js:291 +msgid "The Width block returns the width of the canvas." msgstr "" -#: js/RhythmBlocks.js:1121 -msgid "The Note block specifies the duration (note value) of its contents." +#: js/blocks/MediaBlocks.js:325 +msgid "height" msgstr "" -#: js/RhythmBlocks.js:1130 -msgid "value2" +#: js/blocks/MediaBlocks.js:334 +msgid "The Height block returns the height of the canvas." msgstr "" -#: js/RhythmBlocks.js:1200 -msgid "define frequency" +#: js/blocks/MediaBlocks.js:369 +#.TRANS: stops playback of an audio recording +msgid "stop play" msgstr "" -#: js/RhythmBlocks.js:1218 -#: js/temperament.js:650 -#: js/temperament.js:1421 -msgid "octave space" +#: js/blocks/MediaBlocks.js:404 +#.TRANS: Erases the images and text +msgid "erase media" msgstr "" -#: js/NumberBlocks.js:28 -msgid "The Int block returns an integer." +#: js/blocks/MediaBlocks.js:409 +msgid "The Erase Media block erases text and images." msgstr "" -#: js/NumberBlocks.js:34 -msgid "int" +#: js/blocks/MediaBlocks.js:439 +#.TRANS: play an audio recording +msgid "play back" msgstr "" -#: js/NumberBlocks.js:73 -msgid "The Mod block returns the remainder from a division." -msgstr "" +#: js/blocks/MediaBlocks.js:487 +msgid "speak" +msgstr "Nói" -#: js/NumberBlocks.js:79 -msgid "mod" -msgstr "sửa" +#: js/blocks/MediaBlocks.js:495 +msgid "The Speak block outputs to the text-to-speech synthesizer" +msgstr "" -#: js/NumberBlocks.js:123 -msgid "The Power block calculates a power function." +#: js/blocks/MediaBlocks.js:546 +msgid "camera" msgstr "" -#: js/NumberBlocks.js:178 -msgid "The Sqrt block returns the square root." +#: js/blocks/MediaBlocks.js:551 +msgid "The Camera block connects a webcam to the Show block." msgstr "" -#: js/NumberBlocks.js:184 -msgid "sqrt" +#: js/blocks/MediaBlocks.js:574 +msgid "video" msgstr "" -#: js/NumberBlocks.js:230 -msgid "The Abs block returns the absolute value." +#: js/blocks/MediaBlocks.js:579 +msgid "The Video block selects video for use with the Show block." msgstr "" -#: js/NumberBlocks.js:236 -msgid "abs" +#: js/blocks/MediaBlocks.js:607 +msgid "The Open file block opens a file for use with the Show block." msgstr "" -#: js/NumberBlocks.js:277 -msgid "The Distance block returns the distance between two points. For example, between the mouse and the center of the screen." +#: js/blocks/MediaBlocks.js:645 +msgid "stop media" msgstr "" -#: js/NumberBlocks.js:283 -#: plugins/rodi.rtp:310 -msgid "distance" +#: js/blocks/MediaBlocks.js:650 +msgid "The Stop media block stops audio or video playback." msgstr "" -#: js/NumberBlocks.js:343 -msgid "The Divide block is used to divide." +#: js/blocks/MediaBlocks.js:679 +#: js/blocks/PitchBlocks.js:1577 +#: js/widgets/musickeyboard.js:1936 +#: js/widgets/phrasemaker.js:1037 +#.TRANS: a measure of frequency: one cycle per second +msgid "hertz" msgstr "" -#: js/NumberBlocks.js:411 -msgid "The Multiply block is used to multiply." +#: js/blocks/MediaBlocks.js:692 +#: js/blocks/WidgetBlocks.js:182 +#: js/widgets/temperament.js:506 +#: js/widgets/temperament.js:546 +#: js/widgets/temperament.js:610 +#: js/widgets/temperament.js:618 +#: js/widgets/temperament.js:1505 +#: js/widgets/timbre.js:1842 +msgid "frequency" msgstr "" -#: js/NumberBlocks.js:554 -msgid "The Minus block is used to subtract." +#: js/blocks/MediaBlocks.js:692 +msgid "duration (ms)" msgstr "" -#: js/NumberBlocks.js:647 -msgid "The Plus block is used to add." +#: js/blocks/MediaBlocks.js:728 +#.TRANS: translate a note into hertz, e.g., A4 -> 440HZ +msgid "note to frequency" msgstr "" -#: js/NumberBlocks.js:773 -msgid "The One-of block returns one of two choices." +#: js/blocks/MediaBlocks.js:736 +msgid "The To frequency block converts a pitch name and octave to Hertz." msgstr "" -#: js/NumberBlocks.js:780 -#: js/PitchBlocks.js:616 -msgid "one of" +#: js/blocks/MediaBlocks.js:746 +#: js/blocks/PitchBlocks.js:656 +#: js/blocks/PitchBlocks.js:934 +#: js/blocks/PitchBlocks.js:1866 +#.TRANS: name2 is name as in name of pitch (JAPANESE ONLY) +msgid "name2" msgstr "" -#: js/NumberBlocks.js:782 -msgid "this" +#: js/blocks/MediaBlocks.js:812 +msgid "The Avatar block is used to change the appearance of the mouse." msgstr "" -#: js/NumberBlocks.js:782 -msgid "that" +#: js/blocks/MediaBlocks.js:819 +msgid "The Avatar block is used to change the appearance of the turtle." msgstr "" -#: js/NumberBlocks.js:837 -msgid "The Random block returns a random number." +#: js/blocks/MediaBlocks.js:831 +#: js/blocks/MediaBlocks.js:891 +#.TRANS: a media object +msgid "size" msgstr "" -#: js/NumberBlocks.js:844 -msgid "random" -msgstr "ngẫu nhiên" +#: js/blocks/MediaBlocks.js:831 +msgid "image" +msgstr "ảnh" -#: js/NumberBlocks.js:846 -msgid "min" -msgstr "tiểu" +#: js/blocks/MediaBlocks.js:880 +msgid "The Show block is used to display text or images on the canvas." +msgstr "" -#: js/NumberBlocks.js:846 -msgid "max" -msgstr "đại" +#: js/blocks/MediaBlocks.js:888 +#.TRANS: show1 is show as in display an image or text on the screen. +msgid "show1" +msgstr "" -#: js/NumberBlocks.js:910 -msgid "The Number block holds a number." +#: js/blocks/MediaBlocks.js:891 +msgid "obj" msgstr "" -#: js/BoxesBlocks.js:53 -#: js/BoxesBlocks.js:59 -msgid "The Add-to block is used to add to the value stored in a box." +#: js/blocks/MediaBlocks.js:938 +msgid "The Media block is used to import an image." msgstr "" -#: js/BoxesBlocks.js:61 -msgid "It can also be used with other blocks such as Color and Pen size." +#: js/blocks/MediaBlocks.js:973 +msgid "The Text block holds a text string." msgstr "" -#: js/BoxesBlocks.js:73 -msgid "add" +#: js/blocks/MeterBlocks.js:34 +#.TRANS: musical meter (time signature), e.g., 4:4 +msgid "current meter" msgstr "" -#: js/BoxesBlocks.js:75 -#: js/temperament.js:716 -msgid "to" +#: js/blocks/MeterBlocks.js:85 +#.TRANS: number of beats per minute +msgid "beat factor" msgstr "" -#: js/BoxesBlocks.js:75 -#: js/BoxesBlocks.js:595 -#: js/HeapBlocks.js:544 -msgid "value1" +#: js/blocks/MeterBlocks.js:161 +msgid "The Beats per minute block returns the current beats per minute." msgstr "" -#: js/BoxesBlocks.js:118 -msgid "Block does not support incrementing." +#: js/blocks/MeterBlocks.js:169 +#: js/widgets/status.js:152 +#.TRANS: number of beats played per minute +msgid "beats per minute2" msgstr "" -#: js/BoxesBlocks.js:152 -msgid "The Add-1-to block adds one to the value stored in a box." +#: js/blocks/MeterBlocks.js:169 +#: js/blocks/MeterBlocks.js:1056 +#: js/blocks/MeterBlocks.js:1133 +#: js/blocks/MeterBlocks.js:1211 +#.TRANS: sets tempo by defining a beat and beats per minute +msgid "beats per minute" msgstr "" -#: js/BoxesBlocks.js:163 -msgid "add 1 to" +#: js/blocks/MeterBlocks.js:233 +#.TRANS: count of current musical measure in meter +msgid "measure count" msgstr "" -#: js/BoxesBlocks.js:211 -msgid "The Subtract-1-from block subtracts one from the value stored in a box." +#: js/blocks/MeterBlocks.js:241 +msgid "The Measure count block returns the current measure." msgstr "" -#: js/BoxesBlocks.js:222 -msgid "subtract 1 from" +#: js/blocks/MeterBlocks.js:290 +#.TRANS: count of current beat in the meter +msgid "beat count" msgstr "" -#: js/BoxesBlocks.js:270 -#: js/BoxesBlocks.js:387 -msgid "The Box block returns the value stored in a box." +#: js/blocks/MeterBlocks.js:300 +#: js/blocks/MeterBlocks.js:311 +#: js/blocks/MeterBlocks.js:565 +#: js/blocks/MeterBlocks.js:576 +msgid "The Beat count block is the number of the current beat," msgstr "" -#: js/BoxesBlocks.js:500 -#: js/BoxesBlocks.js:576 -msgid "The Store in block will store a value in a box." +#: js/blocks/MeterBlocks.js:313 +#: js/blocks/MeterBlocks.js:578 +msgid "eg 1, 2, 3, or 4." msgstr "" -#: js/BoxesBlocks.js:652 -msgid "The Box2 block returns the value stored in Box2." +#: js/blocks/MeterBlocks.js:368 +#.TRANS: count the number of notes +msgid "sum note values" msgstr "" -#: js/BoxesBlocks.js:703 -msgid "The Store in Box2 block is used to store a value in Box2." +#: js/blocks/MeterBlocks.js:376 +#: js/blocks/MeterBlocks.js:440 +msgid "The Note counter block can be used to count the number of contained notes." msgstr "" -#: js/BoxesBlocks.js:715 -msgid "store in box2" +#: js/blocks/MeterBlocks.js:432 +#.TRANS: count the number of notes +msgid "note counter" msgstr "" -#: js/BoxesBlocks.js:761 -msgid "The Box1 block returns the value stored in Box1." +#: js/blocks/MeterBlocks.js:496 +#.TRANS: number of whole notes that have been played +msgid "whole notes played" msgstr "" -#: js/BoxesBlocks.js:812 -msgid "The Store in Box1 block is used to store a value in Box1." +#: js/blocks/MeterBlocks.js:505 +msgid "The Whole notes played block returns the total number of whole notes played." msgstr "" -#: js/BoxesBlocks.js:826 -msgid "store in box1" +#: js/blocks/MeterBlocks.js:555 +#: js/turtleactions/DictActions.js:83 +#.TRANS: number of notes that have been played +msgid "notes played" msgstr "" -#: js/HeapBlocks.js:49 -msgid "The Heap block returns the heap." +#: js/blocks/MeterBlocks.js:653 +msgid "The No clock block decouples the notes from the master clock." msgstr "" -#: js/HeapBlocks.js:133 -msgid "show heap" -msgstr "hiện miền nhớ" +#: js/blocks/MeterBlocks.js:661 +#.TRANS: don't lock notes to master clock +msgid "no clock" +msgstr "" -#: js/HeapBlocks.js:181 -msgid "The Heap-length block returns the length of the heap." +#: js/blocks/MeterBlocks.js:700 +msgid "on weak beat do" msgstr "" -#: js/HeapBlocks.js:195 -msgid "heap length" +#: js/blocks/MeterBlocks.js:705 +msgid "The On-weak-beat block lets you specify actions to take on weak (off) beats." msgstr "" -#: js/HeapBlocks.js:254 -msgid "The Heap-empty? block returns true if the heap is empty." +#: js/blocks/MeterBlocks.js:750 +msgid "on strong beat" msgstr "" -#: js/HeapBlocks.js:268 -#.TRANS: Is the heap empty? -msgid "heap empty?" +#: js/blocks/MeterBlocks.js:758 +msgid "The On-strong-beat block lets you specify actions to take on specified beats." msgstr "" -#: js/HeapBlocks.js:317 -msgid "The Empty-heap block empties the heap." +#: js/blocks/MeterBlocks.js:769 +msgid "beat" msgstr "" -#: js/HeapBlocks.js:327 -#: js/HeapBlocks.js:647 -#.TRANS: empty the heap -msgid "empty heap" -msgstr "miền nhớ trống" +#: js/blocks/MeterBlocks.js:813 +msgid "on every beat do" +msgstr "" -#: js/HeapBlocks.js:371 -msgid "The Reverse-heap block reverses the order of the heap." +#: js/blocks/MeterBlocks.js:821 +msgid "The On-every-beat block lets you specify actions to take on every beat." msgstr "" -#: js/HeapBlocks.js:384 -#.TRANS: reverse the order of the heap -msgid "reverse heap" +#: js/blocks/MeterBlocks.js:874 +msgid "on every note do" msgstr "" -#: js/HeapBlocks.js:428 -msgid "The Index-heap block returns a value in the heap at a specified location." +#: js/blocks/MeterBlocks.js:882 +msgid "The On-every-note block lets you specify actions to take on every note." msgstr "" -#: js/HeapBlocks.js:443 -#.TRANS: retrieve a value from the heap at index position in the heap -msgid "index heap" +#: js/blocks/MeterBlocks.js:928 +#: js/blocks/MeterBlocks.js:999 +#.TRANS: sets tempo by defining a beat and beats per minute +msgid "master beats per minute" msgstr "" -#: js/HeapBlocks.js:523 -msgid "The Set-heap entry block sets a value in he heap at the specified location." +#: js/blocks/MeterBlocks.js:952 +#: js/blocks/MeterBlocks.js:1078 +#: js/blocks/MeterBlocks.js:1135 +msgid "bpm" msgstr "" -#: js/HeapBlocks.js:619 -msgid "The Pop block removes the value at the top of the heap." +#: js/blocks/MeterBlocks.js:952 +#: js/blocks/MeterBlocks.js:1078 +#: js/blocks/MeterBlocks.js:1135 +msgid "beat value" msgstr "" -#: js/HeapBlocks.js:633 -#.TRANS: pop a value off the top of the heap -msgid "pop" -msgstr "Đẩy" +#: js/blocks/MeterBlocks.js:1024 +#: js/blocks/MeterBlocks.js:1167 +#: js/blocks/MeterBlocks.js:1241 +msgid "Beats per minute must be > 30." +msgstr "" -#: js/HeapBlocks.js:680 -msgid "The Push block adds a value to the top of the heap." +#: js/blocks/MeterBlocks.js:1027 +#: js/blocks/MeterBlocks.js:1170 +#: js/blocks/MeterBlocks.js:1244 +msgid "Maximum beats per minute is 1000." msgstr "" -#: js/HeapBlocks.js:696 -#.TRANS: push a value onto the top of the heap -msgid "push" -msgstr "đẩy" +#: js/blocks/MeterBlocks.js:1068 +msgid "The Beats per minute block sets the number of 1/4 notes per minute." +msgstr "" -#: js/FlowBlocks.js:41 -msgid "The Backward block runs code in reverse order (Musical retrograde)." +#: js/blocks/MeterBlocks.js:1279 +#.TRANS: anacrusis +msgid "pickup" msgstr "" -#: js/FlowBlocks.js:48 -msgid "backward" +#: js/blocks/MeterBlocks.js:1367 +msgid "number of beats" msgstr "" -#: js/FlowBlocks.js:124 -msgid "The Duplicate block will run each block multiple times." +#: js/blocks/NumberBlocks.js:28 +msgid "The Int block returns an integer." msgstr "" -#: js/FlowBlocks.js:136 -msgid "duplicate" +#: js/blocks/NumberBlocks.js:34 +msgid "int" msgstr "" -#: js/FlowBlocks.js:334 -msgid "The Default block is used inside of a Switch to define the default action." +#: js/blocks/NumberBlocks.js:73 +msgid "The Mod block returns the remainder from a division." +msgstr "" + +#: js/blocks/NumberBlocks.js:79 +msgid "mod" +msgstr "sửa" + +#: js/blocks/NumberBlocks.js:141 +msgid "The Power block calculates a power function." msgstr "" -#: js/FlowBlocks.js:342 -msgid "default" +#: js/blocks/NumberBlocks.js:196 +msgid "The Sqrt block returns the square root." msgstr "" -#: js/FlowBlocks.js:361 -#: js/FlowBlocks.js:418 -msgid "The Case Block must be used inside of a Switch Block." +#: js/blocks/NumberBlocks.js:202 +msgid "sqrt" msgstr "" -#: js/FlowBlocks.js:389 -msgid "The Case block is used inside of a Switch to define matches." +#: js/blocks/NumberBlocks.js:248 +msgid "The Abs block returns the absolute value." msgstr "" -#: js/FlowBlocks.js:397 -msgid "case" +#: js/blocks/NumberBlocks.js:254 +msgid "abs" msgstr "" -#: js/FlowBlocks.js:446 -msgid "The Switch block will run the code in the matching Case." +#: js/blocks/NumberBlocks.js:295 +msgid "The Distance block returns the distance between two points. For example, between the mouse and the center of the screen." msgstr "" -#: js/FlowBlocks.js:454 -msgid "switch" +#: js/blocks/NumberBlocks.js:301 +#: plugins/rodi.rtp:310 +msgid "distance" msgstr "" -#: js/FlowBlocks.js:595 -msgid "The Stop block will stop a loop" +#: js/blocks/NumberBlocks.js:361 +msgid "The Divide block is used to divide." msgstr "" -#: js/FlowBlocks.js:597 -msgid "Forever, Repeat, While, or Until." +#: js/blocks/NumberBlocks.js:441 +msgid "The Multiply block is used to multiply." msgstr "" -#: js/FlowBlocks.js:604 -#: js/phrasemaker.js:3799 -#: js/musickeyboard.js:629 -#: js/musickeyboard.js:631 -#: js/timbre.js:417 -#: js/timbre.js:419 -#: plugins/rodi.rtp:29 -#: plugins/rodi.rtp:73 -#: plugins/rodi.rtp:413 -msgid "stop" -msgstr "dừng" - -#: js/FlowBlocks.js:653 -msgid "The Waitfor block will wait until the condition is true." +#: js/blocks/NumberBlocks.js:612 +msgid "The Minus block is used to subtract." msgstr "" -#: js/FlowBlocks.js:661 -msgid "wait for" +#: js/blocks/NumberBlocks.js:723 +msgid "The Plus block is used to add." msgstr "" -#: js/FlowBlocks.js:732 -msgid "The Until block will repeat until the condition is true." +#: js/blocks/NumberBlocks.js:849 +msgid "The One-of block returns one of two choices." msgstr "" -#: js/FlowBlocks.js:740 -msgid "until" -msgstr "đến khi" - -#: js/FlowBlocks.js:742 -#: js/FlowBlocks.js:822 -msgid "do2" +#: js/blocks/NumberBlocks.js:856 +#: js/blocks/PitchBlocks.js:616 +msgid "one of" msgstr "" -#: js/FlowBlocks.js:812 -msgid "The While block will repeat while the condition is true." +#: js/blocks/NumberBlocks.js:858 +msgid "this" msgstr "" -#: js/FlowBlocks.js:820 -msgid "while" -msgstr "trong khi" +#: js/blocks/NumberBlocks.js:858 +msgid "that" +msgstr "" -#: js/FlowBlocks.js:903 -#: js/FlowBlocks.js:968 -#: js/FlowBlocks.js:979 -msgid "In this example if the mouse button is pressed a snare drum will play." +#: js/blocks/NumberBlocks.js:913 +msgid "The Random block returns a random number." msgstr "" -#: js/FlowBlocks.js:925 -#: js/FlowBlocks.js:988 -msgid "if" -msgstr "nếu" +#: js/blocks/NumberBlocks.js:920 +msgid "random" +msgstr "ngẫu nhiên" -#: js/FlowBlocks.js:927 -#: js/FlowBlocks.js:990 -msgid "then" -msgstr "thì" +#: js/blocks/NumberBlocks.js:922 +msgid "min" +msgstr "tiểu" -#: js/FlowBlocks.js:927 -msgid "else" -msgstr "không thì" +#: js/blocks/NumberBlocks.js:922 +msgid "max" +msgstr "đại" -#: js/FlowBlocks.js:1025 -msgid "The Forever block will repeat the contained blocks forever." +#: js/blocks/NumberBlocks.js:986 +msgid "The Number block holds a number." msgstr "" -#: js/FlowBlocks.js:1037 -msgid "forever" -msgstr "hẳn" - -#: js/FlowBlocks.js:1073 -msgid "The Repeat block will repeat the contained blocks." +#: js/blocks/OrnamentBlocks.js:32 +msgid "staccato factor" msgstr "" -#: js/FlowBlocks.js:1075 -msgid "In this example the note will be played 4 times." +#: js/blocks/OrnamentBlocks.js:108 +msgid "slur factor" msgstr "" -#: js/FlowBlocks.js:1083 -msgid "repeat" -msgstr "lặp lại" - -#: js/FlowBlocks.js:1123 -msgid "duplicate factor" +#: js/blocks/OrnamentBlocks.js:217 +#: js/blocks/OrnamentBlocks.js:309 +#.TRANS: the neighbor refers to a neighboring note, e.g., D is a neighbor of C +msgid "neighbor" msgstr "" -#: js/PitchBlocks.js:39 -#: js/musicutils.js:722 -#: js/musicutils.js:1117 -#: js/synthutils.js:112 -#.TRANS: square wave -msgid "square" +#: js/blocks/OrnamentBlocks.js:293 +msgid "The Neighbor block rapidly switches between neighboring pitches." msgstr "" -#: js/PitchBlocks.js:62 -#: js/ToneBlocks.js:39 -#: js/musicutils.js:723 -#: js/musicutils.js:1118 -#: js/synthutils.js:116 -#.TRANS: triangle wave -msgid "triangle" +#: js/blocks/OrnamentBlocks.js:364 +msgid "glide" msgstr "" -#: js/PitchBlocks.js:85 -#: js/musicutils.js:721 -#: js/musicutils.js:1116 -#: js/synthutils.js:110 -#.TRANS: sine wave -msgid "sine" +#: js/blocks/OrnamentBlocks.js:479 +#: js/blocks/OrnamentBlocks.js:643 +msgid "slur" msgstr "" -#: js/PitchBlocks.js:108 -#: js/musicutils.js:724 -#: js/musicutils.js:1119 -#: js/synthutils.js:114 -#.TRANS: sawtooth wave -msgid "sawtooth" +#: js/blocks/OrnamentBlocks.js:558 +#: js/blocks/OrnamentBlocks.js:710 +#.TRANS: play each note sharply detached from the others +msgid "staccato" msgstr "" -#: js/PitchBlocks.js:141 -#.TRANS: musical transposition (adjustment of pitch up or down) -msgid "transposition" +#: js/blocks/RhythmBlocks.js:182 +#: js/blocks/RhythmBlocks.js:1086 +#: js/blocks/RhythmBlocks.js:1162 +msgid "Note value must be greater than 0." msgstr "" -#: js/PitchBlocks.js:168 -#.TRANS: step down one note in current musical scale -msgid "scalar step down" +#: js/blocks/RhythmBlocks.js:215 +#: js/blocks/RhythmBlocks.js:278 +#: js/blocks/RhythmBlocks.js:350 +#.TRANS: swing is a rhythmic variation that emphasises the offbeat +msgid "swing" msgstr "" -#: js/PitchBlocks.js:172 -msgid "The Scalar step down block returns the number of semi-tones down to the previous note in the current key and mode." +#: js/blocks/RhythmBlocks.js:355 +#.TRANS: the amount to shift to the offbeat note +msgid "swing value" msgstr "" -#: js/PitchBlocks.js:190 -#.TRANS: step up one note in current musical scale -msgid "scalar step up" +#: js/blocks/RhythmBlocks.js:419 +msgid "The Skip notes block will cause notes to be skipped." msgstr "" -#: js/PitchBlocks.js:194 -msgid "The Scalar step up block returns the number of semi-tones up to the next note in the current key and mode." +#: js/blocks/RhythmBlocks.js:427 +#.TRANS: substitute rests on notes being skipped +msgid "skip notes" msgstr "" -#: js/PitchBlocks.js:212 -#.TRANS: the change measured in half-steps between the current pitch and the previous pitch -msgid "change in pitch" +#: js/blocks/RhythmBlocks.js:489 +#.TRANS: speed up note duration by some factor, e.g. convert 1/4 to 1/8 notes by using a factor of 2 +msgid "multiply note value" msgstr "" -#: js/PitchBlocks.js:216 -msgid "The Change in pitch block is the difference (in half steps) between the current pitch being played and the previous pitch played." +#: js/blocks/RhythmBlocks.js:542 +msgid "The Tie block works on pairs of notes, combining them into one note." msgstr "" -#: js/PitchBlocks.js:243 -#.TRANS: the change measured in scale-steps between the current pitch and the previous pitch -msgid "scalar change in pitch" +#: js/blocks/RhythmBlocks.js:550 +#.TRANS: tie notes together into one longer note +msgid "tie" msgstr "" -#: js/PitchBlocks.js:250 -#: js/PitchBlocks.js:432 -#: js/PitchBlocks.js:1629 -#: js/DictActions.js:89 -#: js/temperament.js:477 -#: js/temperament.js:481 -#: js/temperament.js:714 -#.TRANS: convert current note to piano key (1-88) -#.TRANS: a mapping of pitch to the 88 piano keys -msgid "pitch number" +#: js/blocks/RhythmBlocks.js:591 +#: js/blocks/RhythmBlocks.js:671 +#.TRANS: a dotted note is played for 1.5x its value, e.g., 1/8. --> 3/16 +msgid "dot" msgstr "" -#: js/PitchBlocks.js:256 -msgid "The Pitch number block is the value of the pitch of the note currently being played." +#: js/blocks/RhythmBlocks.js:619 +#: js/turtleactions/RhythmActions.js:221 +msgid "An argument of -1 results in a note value of 0." msgstr "" -#: js/PitchBlocks.js:329 -#: js/PitchBlocks.js:433 -#.TRANS: the current pitch expressed in Hertz -msgid "pitch in hertz" +#: js/blocks/RhythmBlocks.js:661 +msgid "The Dot block extends the duration of a note by 50%." msgstr "" -#: js/PitchBlocks.js:334 -msgid "The Pitch in Hertz block is the value in Hertz of the pitch of the note currently being played." +#: js/blocks/RhythmBlocks.js:663 +msgid "Eg a dotted quarter note will play for 3/8 (1/4 + 1/8) of a beat." msgstr "" -#: js/PitchBlocks.js:367 -#: js/DictActions.js:87 -msgid "current pitch" +#: js/blocks/RhythmBlocks.js:765 +#.TRANS: Japanese only: note value block for drum +msgid "note value drum" msgstr "" -#: js/PitchBlocks.js:373 -msgid "The Current Pitch block is used with the Pitch Converter block. In the example above, current pitch, sol 4, is displayed as 392 hertz." +#: js/blocks/RhythmBlocks.js:829 +msgid "392 hertz" msgstr "" -#: js/PitchBlocks.js:410 -msgid "This block converts the pitch value of the last note played into different formats such as hertz, letter name, pitch number, et al." +#: js/blocks/RhythmBlocks.js:1119 +msgid "The Note block is a container for one or more Pitch blocks." msgstr "" -#: js/PitchBlocks.js:434 -msgid "alphabet" +#: js/blocks/RhythmBlocks.js:1121 +msgid "The Note block specifies the duration (note value) of its contents." msgstr "" -#: js/PitchBlocks.js:436 -#.TRANS: Translate as "alphabet class" -msgid "letter class" +#: js/blocks/RhythmBlocks.js:1128 +#: js/blocks/PitchBlocks.js:974 +#: js/blocks/PitchBlocks.js:1007 +#: js/blocks/ProgramBlocks.js:1186 +#: js/blocks/ProgramBlocks.js:1227 +#: js/widgets/status.js:190 +#: js/widgets/temperament.js:464 +#: js/widgets/temperament.js:486 +#: js/widgets/temperament.js:496 +#: js/widgets/temperament.js:617 +#: plugins/rodi.rtp:192 +#.TRANS: a musical note consisting of pitch and duration +msgid "note" msgstr "" -#: js/PitchBlocks.js:437 -msgid "solfege class" +#: js/blocks/RhythmBlocks.js:1130 +msgid "value2" msgstr "" -#: js/PitchBlocks.js:438 -msgid "staff y" +#: js/blocks/RhythmBlocks.js:1200 +msgid "define frequency" msgstr "" -#: js/PitchBlocks.js:439 -msgid "solfege syllable" +#: js/blocks/RhythmBlocks.js:1218 +#: js/widgets/temperament.js:787 +#: js/widgets/temperament.js:1587 +msgid "octave space" msgstr "" -#: js/PitchBlocks.js:440 -msgid "pitch class" +#: js/blocks/SensorsBlocks.js:36 +msgid "The Input block prompts for keyboard input." msgstr "" -#: js/PitchBlocks.js:441 -msgid "scalar class" +#: js/blocks/SensorsBlocks.js:46 +msgid "input" msgstr "" -#: js/PitchBlocks.js:443 -msgid "nth degree" +#: js/blocks/SensorsBlocks.js:64 +msgid "Input a value" msgstr "" -#: js/PitchBlocks.js:444 -msgid "pitch to shade" +#: js/blocks/SensorsBlocks.js:126 +msgid "input value" msgstr "" -#: js/PitchBlocks.js:445 -msgid "pitch to color" +#: js/blocks/SensorsBlocks.js:131 +msgid "The Input-value block stores the input." msgstr "" -#: js/PitchBlocks.js:629 -#: js/musickeyboard.js:565 -#.TRANS: MIDI is a technical standard for electronic music -msgid "MIDI" -msgstr "" +#: js/blocks/SensorsBlocks.js:238 +msgid "loudness" +msgstr "độ lớn" -#: js/PitchBlocks.js:642 -#.TRANS: set an offset associated with the numeric piano keyboard mapping -msgid "set pitch number offset" +#: js/blocks/SensorsBlocks.js:245 +msgid "The Loudness block returns the volume detected by the microphone." msgstr "" -#: js/PitchBlocks.js:645 -msgid "The Set pitch number offset block is used to set the offset for mapping pitch numbers to pitch and octave." +#: js/blocks/SensorsBlocks.js:300 +msgid "click" msgstr "" -#: js/PitchBlocks.js:679 -#.TRANS: convert piano key number (1-88) to pitch -msgid "number to pitch" +#: js/blocks/SensorsBlocks.js:306 +msgid "The Click block triggers an event if a mouse has been clicked." msgstr "" -#: js/PitchBlocks.js:682 -msgid "The Number to pitch block will convert a pitch number to a pich name." +#: js/blocks/SensorsBlocks.js:313 +msgid "The Click block triggers an event if a turtle has been clicked." msgstr "" -#: js/PitchBlocks.js:715 -#.TRANS: convert piano key number (1-88) to octave -msgid "number to octave" +#: js/blocks/SensorsBlocks.js:342 +msgid "cursor over" msgstr "" -#: js/PitchBlocks.js:717 -msgid "The Number to octave block will convert a pitch number to an octave." +#: js/blocks/SensorsBlocks.js:387 +msgid "cursor out" msgstr "" -#: js/PitchBlocks.js:726 -msgid "y to pitch" +#: js/blocks/SensorsBlocks.js:433 +msgid "cursor button down" msgstr "" -#: js/PitchBlocks.js:729 -msgid "Y to pitch block will convert a staff y position to corresponding pitch notation." +#: js/blocks/SensorsBlocks.js:477 +msgid "cursor button up" msgstr "" -#: js/PitchBlocks.js:841 -msgid "accidental selector" +#: js/blocks/SensorsBlocks.js:521 +#: js/blocks/PenBlocks.js:48 +#: plugins/rodi.rtp:219 +msgid "blue" msgstr "" -#: js/PitchBlocks.js:844 -msgid "The Accidental selector block is used to choose between double-sharp, sharp, natural, flat, and double-flat." +#: js/blocks/SensorsBlocks.js:577 +#: js/blocks/PenBlocks.js:64 +#: plugins/rodi.rtp:218 +msgid "green" msgstr "" -#: js/PitchBlocks.js:858 -msgid "Pitch can be specified in terms of ni dha pa ma ga re sa." +#: js/blocks/SensorsBlocks.js:633 +#: js/blocks/PenBlocks.js:112 +#: plugins/rodi.rtp:217 +msgid "red" msgstr "" -#: js/PitchBlocks.js:872 -msgid "Pitch can be specified in terms of C D E F G A B." +#: js/blocks/SensorsBlocks.js:638 +msgid "The Get red block returns the red component of the pixel under the mouse." msgstr "" -#: js/PitchBlocks.js:883 -msgid "solfege" +#: js/blocks/SensorsBlocks.js:644 +msgid "The Get red block returns the red component of the pixel under the turtle." msgstr "" -#: js/PitchBlocks.js:886 -msgid "Pitch can be specified in terms of do re mi fa sol la ti." +#: js/blocks/SensorsBlocks.js:685 +#: plugins/rodi.rtp:216 +msgid "pixel color" msgstr "" -#: js/PitchBlocks.js:920 -msgid "The Invert block rotates any contained notes around a target note." +#: js/blocks/SensorsBlocks.js:690 +msgid "The Get pixel block returns the color of the pixel under the mouse." msgstr "" -#: js/PitchBlocks.js:927 -#.TRANS: pitch inversion rotates a pitch around another pitch -msgid "invert" +#: js/blocks/SensorsBlocks.js:696 +msgid "The Get pixel block returns the color of the pixel under the turtle." msgstr "" -#: js/PitchBlocks.js:929 -#: js/PitchBlocks.js:935 -#: js/PitchActions.js:727 -#: js/musicutils.js:726 -#: js/musicutils.js:902 -#.TRANS: invert based on even or odd number or musical scale -#.TRANS: even numbers -msgid "even" -msgstr "" +#: js/blocks/SensorsBlocks.js:758 +msgid "time" +msgstr "Thời gian" -#: js/PitchBlocks.js:935 -#: js/PitchActions.js:729 -#: js/musicutils.js:728 -#: js/musicutils.js:903 -#.TRANS: odd numbers -msgid "odd" +#: js/blocks/SensorsBlocks.js:804 +msgid "cursor y" msgstr "" -#: js/PitchBlocks.js:935 -#: js/PitchActions.js:731 -#: js/musicutils.js:729 -#: js/musicutils.js:904 -msgid "scalar" +#: js/blocks/SensorsBlocks.js:809 +msgid "The Cursor Y block returns the vertical position of the mouse." msgstr "" -#: js/PitchBlocks.js:966 -#.TRANS: pitch inversion rotates a pitch around another pitch (odd number) -msgid "invert (odd)" +#: js/blocks/SensorsBlocks.js:845 +msgid "cursor x" msgstr "" -#: js/PitchBlocks.js:999 -#.TRANS: pitch inversion rotates a pitch around another pitch (even number) -msgid "invert (even)" +#: js/blocks/SensorsBlocks.js:850 +msgid "The Cursor X block returns the horizontal position of the mouse." msgstr "" -#: js/PitchBlocks.js:1020 -#.TRANS: register is the octave of the current pitch -msgid "register" +#: js/blocks/SensorsBlocks.js:886 +msgid "mouse button" msgstr "" -#: js/PitchBlocks.js:1024 -msgid "The Register block provides an easy way to modify the register (octave) of the notes that follow it." +#: js/blocks/SensorsBlocks.js:888 +msgid "The Mouse-button block returns True if the mouse button is pressed." msgstr "" -#: js/PitchBlocks.js:1074 -msgid "The Semi-tone transposition block will shift the pitches contained inside Note blocks up (or down) by half steps." +#: js/blocks/SensorsBlocks.js:934 +msgid "to ASCII" msgstr "" -#: js/PitchBlocks.js:1076 -msgid "In the example shown above, sol is shifted up to sol#." +#: js/blocks/SensorsBlocks.js:938 +msgid "The To ASCII block converts numbers to letters." msgstr "" -#: js/PitchBlocks.js:1082 -#.TRANS: adjust the amount of shift (up or down) of a pitch -msgid "semi-tone transpose" +#: js/blocks/SensorsBlocks.js:1005 +msgid "The Keyboard block returns computer keyboard input." msgstr "" -#: js/PitchBlocks.js:1115 -msgid "The Transpose by Ratio block will shift the pitches contained inside Note blocks up (or down) by a ratio" +#: js/blocks/RhythmBlockPaletteBlocks.js:50 +#: js/blocks/RhythmBlockPaletteBlocks.js:233 +#.TRANS: rhythm block +#.TRANS: translate "rhythm1" as rhythm +msgid "rhythm1" msgstr "" -#: js/PitchBlocks.js:1121 -#.TRANS: adjust the amount of shift (up or down) of a pitch -msgid "transpose by ratio" +#: js/blocks/RhythmBlockPaletteBlocks.js:70 +#: js/blocks/RhythmBlockPaletteBlocks.js:252 +#: js/blocks/RhythmBlockPaletteBlocks.js:485 +#: js/blocks/RhythmBlockPaletteBlocks.js:554 +#: js/blocks/RhythmBlockPaletteBlocks.js:875 +msgid "number of notes" msgstr "" -#: js/PitchBlocks.js:1204 -#.TRANS: down sixth means the note is five scale degrees below current note -msgid "down sixth" +#: js/blocks/RhythmBlockPaletteBlocks.js:126 +msgid "polyphonic rhythm" msgstr "" -#: js/PitchBlocks.js:1223 -#.TRANS: down third means the note is two scale degrees below current note -msgid "down third" +#: js/blocks/RhythmBlockPaletteBlocks.js:219 +msgid "The Rhythm block is used to generate rhythm patterns." msgstr "" -#: js/PitchBlocks.js:1242 -#.TRANS: seventh means the note is the six scale degrees above current note -msgid "seventh" +#: js/blocks/RhythmBlockPaletteBlocks.js:280 +msgid "1/64 note" msgstr "" -#: js/PitchBlocks.js:1261 -#.TRANS: sixth means the note is the five scale degrees above current note -msgid "sixth" +#: js/blocks/RhythmBlockPaletteBlocks.js:304 +msgid "1/32 note" msgstr "" -#: js/PitchBlocks.js:1280 -#.TRANS: fifth means the note is the four scale degrees above current note -msgid "fifth" +#: js/blocks/RhythmBlockPaletteBlocks.js:332 +msgid "1/16 note" msgstr "" -#: js/PitchBlocks.js:1300 -#.TRANS: fourth means the note is three scale degrees above current note -msgid "fourth" +#: js/blocks/RhythmBlockPaletteBlocks.js:360 +msgid "eighth note" msgstr "" -#: js/PitchBlocks.js:1319 -#.TRANS: third means the note is two scale degrees above current note -msgid "third" +#: js/blocks/RhythmBlockPaletteBlocks.js:388 +msgid "quarter note" msgstr "" -#: js/PitchBlocks.js:1338 -#.TRANS: second means the note is one scale degree above current note -msgid "second" +#: js/blocks/RhythmBlockPaletteBlocks.js:416 +msgid "half note" msgstr "" -#: js/PitchBlocks.js:1379 -msgid "The Scalar transposition block will shift the pitches contained inside Note blocks up (or down) the scale." +#: js/blocks/RhythmBlockPaletteBlocks.js:444 +msgid "whole note" msgstr "" -#: js/PitchBlocks.js:1381 -msgid "In the example shown above, sol is shifted up to la." +#: js/blocks/RhythmBlockPaletteBlocks.js:482 +#: js/blocks/RhythmBlockPaletteBlocks.js:551 +#: js/blocks/RhythmBlockPaletteBlocks.js:602 +#.TRANS: A tuplet is a note value divided into irregular time values. +msgid "tuplet" msgstr "" -#: js/PitchBlocks.js:1388 -#.TRANS: adjust the amount of shift (up or down) of a pitch by musical scale (scalar) steps -msgid "scalar transpose" +#: js/blocks/RhythmBlockPaletteBlocks.js:768 +msgid "septuplet" msgstr "" -#: js/PitchBlocks.js:1423 -msgid "The Accidental block is used to create sharps and flats" +#: js/blocks/RhythmBlockPaletteBlocks.js:796 +msgid "quintuplet" msgstr "" -#: js/PitchBlocks.js:1430 -#.TRANS: An accidental is a modification to a pitch, e.g., sharp or flat. -msgid "accidental override" +#: js/blocks/RhythmBlockPaletteBlocks.js:824 +msgid "triplet" msgstr "" -#: js/PitchBlocks.js:1543 -msgid "The Hertz block (in combination with a Number block) will play a sound at the specified frequency." +#: js/blocks/RhythmBlockPaletteBlocks.js:851 +msgid "simple tuplet" msgstr "" -#: js/PitchBlocks.js:1633 -msgid "The Pitch Number block will play a pitch associated by its number, e.g. 0 for C and 7 for G." +#: js/blocks/RhythmBlockPaletteBlocks.js:861 +msgid "Tuplets are a collection of notes that get scaled to a specific duration." msgstr "" -#: js/PitchBlocks.js:1665 -#: js/PitchBlocks.js:1707 -#.TRANS: a numeric mapping of the notes in an octave based on the musical mode -#.TRANS: a numeric mapping of the notes in an octave based on the musical mode -msgid "nth modal pitch" +#: js/blocks/DrumBlocks.js:59 +msgid "The Noise name block is used to select a noise synthesizer." msgstr "" -#: js/PitchBlocks.js:1668 -msgid "n^th Modal Pitch takes the pattern of pitches in semitones for a mode and makes each point a degree of the mode," +#: js/blocks/DrumBlocks.js:102 +msgid "The Drum name block is used to select a drum." msgstr "" -#: js/PitchBlocks.js:1670 -msgid "starting from 1 and regardless of tonal framework (i.e. not always 8 notes in the octave)" +#: js/blocks/DrumBlocks.js:146 +msgid "The Effects name block is used to select a sound effect." msgstr "" -#: js/PitchBlocks.js:1711 -msgid "N^th Modal Pitch takes a number as an input as the n^th degree for the given mode. 0 is the first position, 1 is the second, -1 is the note before the first etc." +#: js/blocks/DrumBlocks.js:163 +msgid "noise" msgstr "" -#: js/PitchBlocks.js:1713 -msgid "The pitches change according to the mode specified without any need for respellings." +#: js/blocks/DrumBlocks.js:177 +msgid "The Play noise block will generate white, pink, or brown noise." msgstr "" -#: js/PitchBlocks.js:1752 -msgid "Scale Degree is a common convention in music. Scale Degree offers seven possible positions in the scale (1-7) and can be modified via accidentals." +#: js/blocks/DrumBlocks.js:317 +msgid "Replace every instance of a pitch with a drum sound." msgstr "" -#: js/PitchBlocks.js:1754 -msgid "Scale Degree 1 is always the first pitch in a given scale, regardless of octave." +#: js/blocks/DrumBlocks.js:328 +#.TRANS: map a pitch to a drum sound +msgid "map pitch to drum" msgstr "" -#: js/PitchBlocks.js:1776 -#.TRANS: step some number of notes in current musical scale -msgid "scalar step" +#: js/blocks/DrumBlocks.js:395 +msgid "In the example above, a kick drum sound will be played instead of sol." msgstr "" -#: js/PitchBlocks.js:1781 -msgid "The Scalar Step block (in combination with a Number block) will play the next pitch in a scale," +#: js/blocks/DrumBlocks.js:407 +#.TRANS: set the current drum sound for playback +msgid "set drum" msgstr "" -#: js/PitchBlocks.js:1783 -msgid "eg if the last note played was sol, Scalar Step 1 will play la." +#: js/blocks/DrumBlocks.js:451 +msgid "sound effect" msgstr "" -#: js/PitchBlocks.js:1818 -msgid "The Pitch block specifies the pitch name and octave of a note that together determine the frequency of the note." +#: js/blocks/DrumBlocks.js:489 +msgid "You can use multiple Drum blocks within a Note block." msgstr "" -#: js/GraphicsBlocks.js:46 -#: js/DictActions.js:77 -#: js/DictActions.js:155 -#: js/DictActions.js:189 +#: js/blocks/GraphicsBlocks.js:46 +#: js/turtleactions/DictActions.js:77 +#: js/turtleactions/DictActions.js:144 +#: js/turtleactions/DictActions.js:173 msgid "heading" msgstr "tiêu đề" -#: js/GraphicsBlocks.js:56 +#: js/blocks/GraphicsBlocks.js:56 msgid "The Heading block returns the orientation of the mouse." msgstr "" -#: js/GraphicsBlocks.js:62 +#: js/blocks/GraphicsBlocks.js:62 msgid "The Heading block returns the orientation of the turtle." msgstr "" -#: js/GraphicsBlocks.js:133 +#: js/blocks/GraphicsBlocks.js:133 msgid "The Y block returns the vertical position of the mouse." msgstr "" -#: js/GraphicsBlocks.js:140 +#: js/blocks/GraphicsBlocks.js:140 msgid "The Y block returns the vertical position of the turtle." msgstr "" -#: js/GraphicsBlocks.js:149 +#: js/blocks/GraphicsBlocks.js:149 msgid "y3" msgstr "" -#: js/GraphicsBlocks.js:219 +#: js/blocks/GraphicsBlocks.js:219 msgid "The X block returns the horizontal position of the mouse." msgstr "" -#: js/GraphicsBlocks.js:226 +#: js/blocks/GraphicsBlocks.js:226 msgid "The X block returns the horizontal position of the turtle." msgstr "" -#: js/GraphicsBlocks.js:235 +#: js/blocks/GraphicsBlocks.js:235 msgid "x3" msgstr "" -#: js/GraphicsBlocks.js:295 +#: js/blocks/GraphicsBlocks.js:295 msgid "scroll xy" msgstr "" -#: js/GraphicsBlocks.js:303 +#: js/blocks/GraphicsBlocks.js:303 msgid "The Scroll XY block moves the canvas." msgstr "" -#: js/GraphicsBlocks.js:313 +#: js/blocks/GraphicsBlocks.js:313 msgid "x2" msgstr "" -#: js/GraphicsBlocks.js:313 +#: js/blocks/GraphicsBlocks.js:313 msgid "y2" msgstr "" -#: js/GraphicsBlocks.js:373 -#: js/temperament.js:213 -#: js/temperament.js:241 +#: js/blocks/GraphicsBlocks.js:373 +#: js/widgets/temperament.js:319 +#: js/widgets/temperament.js:347 msgid "clear" msgstr "" -#: js/GraphicsBlocks.js:426 +#: js/blocks/GraphicsBlocks.js:426 msgid "The Control-point 2 block sets the second control point for the Bezier curve." msgstr "" -#: js/GraphicsBlocks.js:433 +#: js/blocks/GraphicsBlocks.js:433 msgid "control point 2" msgstr "" -#: js/GraphicsBlocks.js:436 -#: js/GraphicsBlocks.js:487 -#: js/GraphicsBlocks.js:534 -#: js/GraphicsBlocks.js:750 +#: js/blocks/GraphicsBlocks.js:436 +#: js/blocks/GraphicsBlocks.js:487 +#: js/blocks/GraphicsBlocks.js:534 +#: js/blocks/GraphicsBlocks.js:750 msgid "x1" msgstr "" -#: js/GraphicsBlocks.js:436 -#: js/GraphicsBlocks.js:487 -#: js/GraphicsBlocks.js:534 -#: js/GraphicsBlocks.js:750 +#: js/blocks/GraphicsBlocks.js:436 +#: js/blocks/GraphicsBlocks.js:487 +#: js/blocks/GraphicsBlocks.js:534 +#: js/blocks/GraphicsBlocks.js:750 msgid "y1" msgstr "" -#: js/GraphicsBlocks.js:477 +#: js/blocks/GraphicsBlocks.js:477 msgid "The Control-point 1 block sets the first control point for the Bezier curve." msgstr "" -#: js/GraphicsBlocks.js:484 +#: js/blocks/GraphicsBlocks.js:484 msgid "control point 1" msgstr "" -#: js/GraphicsBlocks.js:527 +#: js/blocks/GraphicsBlocks.js:527 msgid "The Bezier block draws a Bezier curve." msgstr "" -#: js/GraphicsBlocks.js:531 +#: js/blocks/GraphicsBlocks.js:531 msgid "bezier" msgstr "" -#: js/GraphicsBlocks.js:592 +#: js/blocks/GraphicsBlocks.js:592 msgid "The Arc block moves the turtle in an arc." msgstr "" -#: js/GraphicsBlocks.js:600 +#: js/blocks/GraphicsBlocks.js:600 msgid "arc" msgstr "cung" -#: js/GraphicsBlocks.js:603 +#: js/blocks/GraphicsBlocks.js:603 msgid "angle" msgstr "góc" -#: js/GraphicsBlocks.js:603 +#: js/blocks/GraphicsBlocks.js:603 msgid "radius" msgstr "bán kính" -#: js/GraphicsBlocks.js:620 -#: js/GraphicsBlocks.js:767 -#: js/GraphicsBlocks.js:1010 -#: js/GraphicsBlocks.js:1093 +#: js/blocks/GraphicsBlocks.js:620 +#: js/blocks/GraphicsBlocks.js:767 +#: js/blocks/GraphicsBlocks.js:1010 +#: js/blocks/GraphicsBlocks.js:1093 msgid "Value must be within -5000 to 5000 when Wrap Mode is off." msgstr "" -#: js/GraphicsBlocks.js:622 -#: js/GraphicsBlocks.js:769 -#: js/GraphicsBlocks.js:1012 -#: js/GraphicsBlocks.js:1095 +#: js/blocks/GraphicsBlocks.js:622 +#: js/blocks/GraphicsBlocks.js:769 +#: js/blocks/GraphicsBlocks.js:1012 +#: js/blocks/GraphicsBlocks.js:1095 msgid "Value must be within -20000 to 20000 when Wrap Mode is on." msgstr "" -#: js/GraphicsBlocks.js:660 +#: js/blocks/GraphicsBlocks.js:660 msgid "set heading" msgstr "đặt hướng về" -#: js/GraphicsBlocks.js:673 +#: js/blocks/GraphicsBlocks.js:673 msgid "The Set heading block sets the heading of the turtle." msgstr "" -#: js/GraphicsBlocks.js:733 +#: js/blocks/GraphicsBlocks.js:733 msgid "The Set XY block moves the mouse to a specific position on the screen." msgstr "" -#: js/GraphicsBlocks.js:739 +#: js/blocks/GraphicsBlocks.js:739 msgid "The Set XY block moves the turtle to a specific position on the screen." msgstr "" -#: js/GraphicsBlocks.js:747 +#: js/blocks/GraphicsBlocks.js:747 msgid "set xy" msgstr "đặt xy" -#: js/GraphicsBlocks.js:819 +#: js/blocks/GraphicsBlocks.js:819 msgid "The Right block turns the mouse to the right." msgstr "" -#: js/GraphicsBlocks.js:826 +#: js/blocks/GraphicsBlocks.js:826 msgid "The Right block turns the turtle to the right." msgstr "" -#: js/GraphicsBlocks.js:835 +#: js/blocks/GraphicsBlocks.js:835 msgid "right1" msgstr "" -#: js/GraphicsBlocks.js:835 +#: js/blocks/GraphicsBlocks.js:835 #: plugins/rodi.rtp:77 #: plugins/rodi.rtp:340 #: plugins/rodi.rtp:375 msgid "right" msgstr "phải" -#: js/GraphicsBlocks.js:899 +#: js/blocks/GraphicsBlocks.js:899 msgid "The Left block turns the mouse to the left." msgstr "" -#: js/GraphicsBlocks.js:906 +#: js/blocks/GraphicsBlocks.js:906 msgid "The Left block turns the turtle to the left." msgstr "" -#: js/GraphicsBlocks.js:915 +#: js/blocks/GraphicsBlocks.js:915 msgid "left1" msgstr "" -#: js/GraphicsBlocks.js:915 +#: js/blocks/GraphicsBlocks.js:915 #: plugins/rodi.rtp:79 #: plugins/rodi.rtp:339 #: plugins/rodi.rtp:362 msgid "left" msgstr "trái" -#: js/GraphicsBlocks.js:967 -#: js/temperament.js:734 -#: js/temperament.js:933 +#: js/blocks/GraphicsBlocks.js:967 +#: js/widgets/temperament.js:875 +#: js/widgets/temperament.js:1078 #: plugins/rodi.rtp:69 #: plugins/rodi.rtp:387 msgid "back" msgstr "lùi" -#: js/GraphicsBlocks.js:976 +#: js/blocks/GraphicsBlocks.js:976 msgid "The Back block moves the mouse backward." msgstr "" -#: js/GraphicsBlocks.js:983 +#: js/blocks/GraphicsBlocks.js:983 msgid "The Back block moves the turtle backward." msgstr "" -#: js/GraphicsBlocks.js:1050 +#: js/blocks/GraphicsBlocks.js:1050 #: plugins/rodi.rtp:71 #: plugins/rodi.rtp:400 msgid "forward" msgstr "tiếp" -#: js/GraphicsBlocks.js:1059 +#: js/blocks/GraphicsBlocks.js:1059 msgid "The Forward block moves the mouse forward." msgstr "" -#: js/GraphicsBlocks.js:1066 +#: js/blocks/GraphicsBlocks.js:1066 msgid "The Forward block moves the turtle forward." msgstr "" -#: js/GraphicsBlocks.js:1154 -#: js/GraphicsBlocks.js:1172 +#: js/blocks/GraphicsBlocks.js:1154 +#: js/blocks/GraphicsBlocks.js:1172 msgid "wrap" msgstr "" -#: js/OrnamentBlocks.js:32 -msgid "staccato factor" -msgstr "" - -#: js/OrnamentBlocks.js:108 -msgid "slur factor" -msgstr "" - -#: js/OrnamentBlocks.js:217 -#: js/OrnamentBlocks.js:309 -#.TRANS: the neighbor refers to a neighboring note, e.g., D is a neighbor of C -msgid "neighbor" -msgstr "" - -#: js/OrnamentBlocks.js:293 -msgid "The Neighbor block rapidly switches between neighboring pitches." -msgstr "" - -#: js/OrnamentBlocks.js:364 -msgid "glide" -msgstr "" - -#: js/OrnamentBlocks.js:479 -#: js/OrnamentBlocks.js:643 -msgid "slur" -msgstr "" - -#: js/OrnamentBlocks.js:558 -#: js/OrnamentBlocks.js:710 -#.TRANS: play each note sharply detached from the others -msgid "staccato" -msgstr "" - -#: js/PenBlocks.js:24 +#: js/blocks/PenBlocks.js:30 msgid "purple" msgstr "" -#: js/PenBlocks.js:37 -#: js/SensorsBlocks.js:521 -#: plugins/rodi.rtp:219 -msgid "blue" -msgstr "" - -#: js/PenBlocks.js:50 -#: js/SensorsBlocks.js:577 -#: plugins/rodi.rtp:218 -msgid "green" -msgstr "" - -#: js/PenBlocks.js:63 +#: js/blocks/PenBlocks.js:80 msgid "yellow" msgstr "" -#: js/PenBlocks.js:76 +#: js/blocks/PenBlocks.js:96 #: plugins/nutrition.rtp:164 msgid "orange" msgstr "cam" -#: js/PenBlocks.js:89 -#: js/SensorsBlocks.js:633 -#: plugins/rodi.rtp:217 -msgid "red" -msgstr "" - -#: js/PenBlocks.js:102 +#: js/blocks/PenBlocks.js:128 msgid "white" msgstr "" -#: js/PenBlocks.js:115 +#: js/blocks/PenBlocks.js:144 msgid "black" msgstr "" -#: js/PenBlocks.js:128 +#: js/blocks/PenBlocks.js:163 msgid "begin fill" msgstr "" -#: js/PenBlocks.js:143 +#: js/blocks/PenBlocks.js:190 msgid "end fill" msgstr "" -#: js/PenBlocks.js:159 -#: js/PenBlocks.js:386 +#: js/blocks/PenBlocks.js:212 +#: js/blocks/PenBlocks.js:560 #.TRANS: set the background color msgid "background" msgstr "" -#: js/PenBlocks.js:206 -#: js/DictActions.js:71 -#: js/DictActions.js:149 -#: js/DictActions.js:186 +#: js/blocks/PenBlocks.js:274 +#: js/turtleactions/DictActions.js:71 +#: js/turtleactions/DictActions.js:138 +#: js/turtleactions/DictActions.js:170 msgid "grey" msgstr "" -#: js/PenBlocks.js:210 +#: js/blocks/PenBlocks.js:282 msgid "The Grey block returns the current pen grey value." msgstr "" -#: js/PenBlocks.js:243 -#: js/DictActions.js:69 -#: js/DictActions.js:147 -#: js/DictActions.js:185 +#: js/blocks/PenBlocks.js:340 +#: js/turtleactions/DictActions.js:69 +#: js/turtleactions/DictActions.js:136 +#: js/turtleactions/DictActions.js:169 msgid "shade" msgstr "sắc màu" -#: js/PenBlocks.js:247 +#: js/blocks/PenBlocks.js:347 msgid "The Shade block returns the current pen shade value." msgstr "" -#: js/PenBlocks.js:280 -#: js/DictActions.js:67 -#: js/DictActions.js:145 -#: js/DictActions.js:184 +#: js/blocks/PenBlocks.js:405 +#: js/turtleactions/DictActions.js:67 +#: js/turtleactions/DictActions.js:134 +#: js/turtleactions/DictActions.js:168 msgid "color" msgstr "màu" -#: js/PenBlocks.js:285 +#: js/blocks/PenBlocks.js:415 msgid "The Color block returns the current pen color." msgstr "" -#: js/PenBlocks.js:318 -#: js/DictActions.js:73 -#: js/DictActions.js:151 -#: js/DictActions.js:187 +#: js/blocks/PenBlocks.js:470 +#: js/turtleactions/DictActions.js:73 +#: js/turtleactions/DictActions.js:140 +#: js/turtleactions/DictActions.js:171 msgid "pen size" msgstr "kích cỡ bút" -#: js/PenBlocks.js:322 +#: js/blocks/PenBlocks.js:474 msgid "The Pen size block returns the current pen size value." msgstr "" -#: js/PenBlocks.js:355 +#: js/blocks/PenBlocks.js:513 msgid "set font" msgstr "" -#: js/PenBlocks.js:358 +#: js/blocks/PenBlocks.js:518 msgid "The Set font block sets the font used by the Show block." msgstr "" -#: js/PenBlocks.js:391 +#: js/blocks/PenBlocks.js:567 msgid "The Background block sets the window background color." msgstr "" -#: js/PenBlocks.js:408 +#: js/blocks/PenBlocks.js:598 msgid "The Hollow line block creates a line with a hollow center." msgstr "" -#: js/PenBlocks.js:415 +#: js/blocks/PenBlocks.js:606 #.TRANS: draw a line logo has a hollow space down its center msgid "hollow line" msgstr "" -#: js/PenBlocks.js:462 +#: js/blocks/PenBlocks.js:675 msgid "The Fill block fills in a shape with a color." msgstr "" -#: js/PenBlocks.js:470 +#: js/blocks/PenBlocks.js:684 #.TRANS: fill in as a solid color msgid "fill" msgstr "" -#: js/PenBlocks.js:527 +#: js/blocks/PenBlocks.js:761 #.TRANS: raise up the pen so logo it does not draw when it is moved msgid "pen up" msgstr "bút lên" -#: js/PenBlocks.js:532 +#: js/blocks/PenBlocks.js:768 msgid "The Pen-up block raises the pen so that it does not draw." msgstr "" -#: js/PenBlocks.js:552 +#: js/blocks/PenBlocks.js:802 #.TRANS: put down the pen so logo it draws when it is moved msgid "pen down" msgstr "bút xuống" -#: js/PenBlocks.js:557 +#: js/blocks/PenBlocks.js:810 msgid "The Pen-down block lowers the pen so that it draws." msgstr "" -#: js/PenBlocks.js:577 +#: js/blocks/PenBlocks.js:844 #.TRANS: set the width of the line drawn by the pen msgid "set pen size" msgstr "đặt kích cỡ bút" -#: js/PenBlocks.js:583 +#: js/blocks/PenBlocks.js:854 msgid "The Set-pen-size block changes the size of the pen." msgstr "" -#: js/PenBlocks.js:623 +#: js/blocks/PenBlocks.js:913 #.TRANS: set degree of translucence of the pen color msgid "set translucency" msgstr "" -#: js/PenBlocks.js:627 +#: js/blocks/PenBlocks.js:921 msgid "The Set translucency block changes the opacity of the pen." msgstr "" -#: js/PenBlocks.js:668 +#: js/blocks/PenBlocks.js:981 msgid "set hue" msgstr "" -#: js/PenBlocks.js:672 +#: js/blocks/PenBlocks.js:989 msgid "The Set hue block changes the color of the pen." msgstr "" -#: js/PenBlocks.js:711 +#: js/blocks/PenBlocks.js:1047 msgid "set shade" msgstr "Tô bóng" -#: js/PenBlocks.js:717 +#: js/blocks/PenBlocks.js:1057 msgid "The Set-shade block changes the pen color from dark to light." msgstr "" -#: js/PenBlocks.js:757 +#: js/blocks/PenBlocks.js:1111 #.TRANS: set the level of vividness of the pen color msgid "set grey" msgstr "" -#: js/PenBlocks.js:761 +#: js/blocks/PenBlocks.js:1119 msgid "The Set grey block changes the vividness of the pen color." msgstr "" -#: js/PenBlocks.js:800 +#: js/blocks/PenBlocks.js:1172 msgid "set color" msgstr "đặt màu" -#: js/PenBlocks.js:806 +#: js/blocks/PenBlocks.js:1182 msgid "The Set-color block changes the pen color." msgstr "" -#: js/VolumeBlocks.js:35 -msgid "synth volume" -msgstr "" - -#: js/VolumeBlocks.js:39 -msgid "The Synth volume block returns the current volume of the current synthesizer." -msgstr "" - -#: js/VolumeBlocks.js:47 -#: js/musicutils.js:730 -#: js/synthutils.js:56 -#.TRANS: musical instrument -msgid "piano" -msgstr "" - -#: js/VolumeBlocks.js:105 -msgid "master volume" -msgstr "" - -#: js/VolumeBlocks.js:109 -msgid "The Master volume block returns the master volume." -msgstr "" - -#: js/VolumeBlocks.js:355 -#: js/VolumeBlocks.js:524 -msgid "set synth volume" -msgstr "" - -#: js/VolumeBlocks.js:362 -#: js/VolumeBlocks.js:545 -msgid "synth" -msgstr "" - -#: js/VolumeBlocks.js:403 -#: js/VolumeBlocks.js:577 -#: js/VolumeBlocks.js:740 -#: js/VolumeActions.js:173 -msgid "Setting volume to 0." -msgstr "" - -#: js/VolumeBlocks.js:440 -msgid "Synth not found" -msgstr "" - -#: js/VolumeBlocks.js:494 -msgid "set drum volume" -msgstr "" - -#: js/VolumeBlocks.js:530 -msgid "The Set synth volume block will change the volume of a particular synth," -msgstr "" - -#: js/VolumeBlocks.js:532 -msgid "eg guitar violin snare drum etc." -msgstr "" - -#: js/VolumeBlocks.js:534 -msgid "The default volume is 50." -msgstr "" - -#: js/VolumeBlocks.js:536 -msgid "The range is 0 for silence to 100 for full volume." -msgstr "" - -#: js/VolumeBlocks.js:597 -msgid "set panning" -msgstr "" - -#: js/VolumeBlocks.js:603 -msgid "The Set Panning block sets the panning for all synthesizers." -msgstr "" - -#: js/VolumeBlocks.js:625 -msgid "Warning: Sound is coming out from only the left or right side." -msgstr "" - -#: js/VolumeBlocks.js:647 -#: js/VolumeBlocks.js:695 -msgid "set master volume" -msgstr "" - -#: js/VolumeBlocks.js:653 -msgid "The Set master volume block sets the volume for all synthesizers." -msgstr "" - -#: js/VolumeBlocks.js:784 -msgid "The Set relative volume block changes the volume of the contained notes." -msgstr "" - -#: js/VolumeBlocks.js:791 -msgid "set relative volume" -msgstr "" - -#: js/VolumeBlocks.js:857 -msgid "decrescendo" -msgstr "" - -#: js/VolumeBlocks.js:921 -msgid "crescendo" -msgstr "" - -#: js/ToneBlocks.js:34 -msgid "oscillator" -msgstr "" - -#: js/ToneBlocks.js:44 -#: js/timbre.js:1562 -#.TRANS: Partials refers to the number of sine waves combined into the sound. -msgid "partials" -msgstr "" - -#: js/ToneBlocks.js:76 -msgid "You are adding multiple oscillator blocks." -msgstr "" - -#: js/ToneBlocks.js:144 -#: js/timbre.js:1225 -#.TRANS: a duo synthesizer combines a synth with a sequencer -msgid "duo synth" -msgstr "" - -#: js/ToneBlocks.js:149 -msgid "The Duo synth block is a duo-frequency modulator used to define a timbre." -msgstr "" - -#: js/ToneBlocks.js:157 -#: js/timbre.js:1476 -msgid "vibrato rate" -msgstr "" - -#: js/ToneBlocks.js:157 -msgid "vibrato intensity" -msgstr "" - -#: js/ToneBlocks.js:185 -#: js/timbre.js:1221 -#.TRANS: AM (amplitude modulation) synthesizer -msgid "AM synth" -msgstr "" - -#: js/ToneBlocks.js:189 -msgid "The AM synth block is an amplitude modulator used to define a timbre." -msgstr "" - -#: js/ToneBlocks.js:224 -#: js/timbre.js:1223 -#.TRANS: FM (frequency modulation) synthesizer -msgid "FM synth" +#: js/blocks/PitchBlocks.js:141 +#.TRANS: musical transposition (adjustment of pitch up or down) +msgid "transposition" msgstr "" -#: js/ToneBlocks.js:228 -msgid "The FM synth block is a frequency modulator used to define a timbre." +#: js/blocks/PitchBlocks.js:168 +#.TRANS: step down one note in current musical scale +msgid "scalar step down" msgstr "" -#: js/ToneBlocks.js:262 -msgid "partial" +#: js/blocks/PitchBlocks.js:172 +msgid "The Scalar step down block returns the number of semi-tones down to the previous note in the current key and mode." msgstr "" -#: js/ToneBlocks.js:265 -msgid "The Partial block is used to specify a weight for a specific partial harmonic." +#: js/blocks/PitchBlocks.js:190 +#.TRANS: step up one note in current musical scale +msgid "scalar step up" msgstr "" -#: js/ToneBlocks.js:284 -#.TRANS: partials are weighted components in a harmonic series -msgid "Partial weight must be between 0 and 1." +#: js/blocks/PitchBlocks.js:194 +msgid "The Scalar step up block returns the number of semi-tones up to the next note in the current key and mode." msgstr "" -#: js/ToneBlocks.js:297 -#.TRANS: partials are weighted components in a harmonic series -msgid "Partial block should be used inside of a Weighted-partials block." +#: js/blocks/PitchBlocks.js:212 +#.TRANS: the change measured in half-steps between the current pitch and the previous pitch +msgid "change in pitch" msgstr "" -#: js/ToneBlocks.js:325 -#.TRANS: partials are weighted components in a harmonic series -msgid "weighted partials" +#: js/blocks/PitchBlocks.js:216 +msgid "The Change in pitch block is the difference (in half steps) between the current pitch being played and the previous pitch played." msgstr "" -#: js/ToneBlocks.js:383 -msgid "The Harmonic block will add harmonics to the contained notes." +#: js/blocks/PitchBlocks.js:243 +#.TRANS: the change measured in scale-steps between the current pitch and the previous pitch +msgid "scalar change in pitch" msgstr "" -#: js/ToneBlocks.js:390 -#.TRANS: A harmonic is an overtone. -msgid "harmonic" +#: js/blocks/PitchBlocks.js:250 +#: js/blocks/PitchBlocks.js:432 +#: js/blocks/PitchBlocks.js:1667 +#: js/turtleactions/DictActions.js:89 +#: js/widgets/temperament.js:610 +#: js/widgets/temperament.js:614 +#: js/widgets/temperament.js:855 +#.TRANS: convert current note to piano key (1-88) +#.TRANS: a mapping of pitch to the 88 piano keys +msgid "pitch number" msgstr "" -#: js/ToneBlocks.js:431 -msgid "The Distortion block adds distortion to the pitch." +#: js/blocks/PitchBlocks.js:256 +msgid "The Pitch number block is the value of the pitch of the note currently being played." msgstr "" -#: js/ToneBlocks.js:438 -#: js/timbre.js:2100 -#.TRANS: distortion is an alteration in the sound -msgid "distortion" +#: js/blocks/PitchBlocks.js:329 +#: js/blocks/PitchBlocks.js:433 +#.TRANS: the current pitch expressed in Hertz +msgid "pitch in hertz" msgstr "" -#: js/ToneBlocks.js:487 -msgid "The Tremolo block adds a wavering effect." +#: js/blocks/PitchBlocks.js:334 +msgid "The Pitch in Hertz block is the value in Hertz of the pitch of the note currently being played." msgstr "" -#: js/ToneBlocks.js:495 -#: js/timbre.js:2092 -#.TRANS: a wavering effect in a musical tone -msgid "tremolo" +#: js/blocks/PitchBlocks.js:367 +#: js/turtleactions/DictActions.js:87 +msgid "current pitch" msgstr "" -#: js/ToneBlocks.js:500 -#: js/ToneBlocks.js:569 -#: js/ToneBlocks.js:630 -#: js/ToneBlocks.js:689 -#: js/timbre.js:2134 -#: js/timbre.js:2222 -#: js/timbre.js:2317 -#: js/timbre.js:2419 -#.TRANS: rate at which tremolo wavers -msgid "rate" +#: js/blocks/PitchBlocks.js:373 +msgid "The Current Pitch block is used with the Pitch Converter block. In the example above, current pitch, sol 4, is displayed as 392 hertz." msgstr "" -#: js/ToneBlocks.js:502 -#: js/ToneBlocks.js:630 -#: js/timbre.js:2137 -#: js/timbre.js:2328 -#.TRANS: amplitude of tremolo waver -msgid "depth" +#: js/blocks/PitchBlocks.js:410 +msgid "This block converts the pitch value of the last note played into different formats such as hertz, letter name, pitch number, et al." msgstr "" -#: js/ToneBlocks.js:559 -msgid "The Phaser block adds a sweeping sound." +#: js/blocks/PitchBlocks.js:434 +msgid "alphabet" msgstr "" -#: js/ToneBlocks.js:566 -#: js/timbre.js:2098 -#.TRANS: alter the phase of the sound -msgid "phaser" +#: js/blocks/PitchBlocks.js:436 +#.TRANS: Translate as "alphabet class" +msgid "letter class" msgstr "" -#: js/ToneBlocks.js:569 -#: js/timbre.js:2422 -msgid "octaves" +#: js/blocks/PitchBlocks.js:437 +msgid "solfege class" msgstr "" -#: js/ToneBlocks.js:569 -#: js/timbre.js:2425 -msgid "base frequency" +#: js/blocks/PitchBlocks.js:438 +msgid "staff y" msgstr "" -#: js/ToneBlocks.js:619 -msgid "The Chorus block adds a chorus effect." +#: js/blocks/PitchBlocks.js:439 +msgid "solfege syllable" msgstr "" -#: js/ToneBlocks.js:627 -#: js/timbre.js:2096 -#.TRANS: musical effect to simulate a choral sound -msgid "chorus" +#: js/blocks/PitchBlocks.js:440 +msgid "pitch class" msgstr "" -#: js/ToneBlocks.js:630 -msgid "delay" +#: js/blocks/PitchBlocks.js:441 +msgid "scalar class" msgstr "" -#: js/ToneBlocks.js:678 -msgid "The Vibrato block adds a rapid, slight variation in pitch." +#: js/blocks/PitchBlocks.js:443 +msgid "nth degree" msgstr "" -#: js/ToneBlocks.js:686 -#: js/timbre.js:2094 -#.TRANS: a rapid, slight variation in pitch -msgid "vibrato" +#: js/blocks/PitchBlocks.js:444 +msgid "pitch to shade" msgstr "" -#: js/ToneBlocks.js:689 -#: js/timbre.js:2221 -msgid "intensity" +#: js/blocks/PitchBlocks.js:445 +msgid "pitch to color" msgstr "" -#: js/ToneBlocks.js:733 -#.TRANS: select synthesizer -msgid "set synth" +#: js/blocks/PitchBlocks.js:629 +#: js/widgets/musickeyboard.js:735 +#.TRANS: MIDI is a technical standard for electronic music +msgid "MIDI" msgstr "" -#: js/ToneBlocks.js:804 -msgid "synth name" +#: js/blocks/PitchBlocks.js:642 +#.TRANS: set an offset associated with the numeric piano keyboard mapping +msgid "set pitch number offset" msgstr "" -#: js/ToneBlocks.js:842 -msgid "set default instrument" +#: js/blocks/PitchBlocks.js:645 +msgid "The Set pitch number offset block is used to set the offset for mapping pitch numbers to pitch and octave." msgstr "" -#: js/ToneBlocks.js:895 -#: js/ToneBlocks.js:943 -#.TRANS: set the characteristics of a custom instrument -msgid "set instrument" +#: js/blocks/PitchBlocks.js:679 +#.TRANS: convert piano key number (1-88) to pitch +msgid "number to pitch" msgstr "" -#: js/ToneBlocks.js:898 -#: js/ToneBlocks.js:926 -#: js/ToneBlocks.js:932 -msgid "The Set instrument block selects a voice for the synthesizer," +#: js/blocks/PitchBlocks.js:682 +msgid "The Number to pitch block will convert a pitch number to a pich name." msgstr "" -#: js/ToneBlocks.js:900 -#: js/ToneBlocks.js:934 -msgid "eg guitar piano violin or cello." +#: js/blocks/PitchBlocks.js:715 +#.TRANS: convert piano key number (1-88) to octave +msgid "number to octave" msgstr "" -#: js/ToneBlocks.js:1015 -msgid "Import a sound file to use as an instrument and set its pitch center." +#: js/blocks/PitchBlocks.js:717 +msgid "The Number to octave block will convert a pitch number to an octave." msgstr "" -#: js/ToneBlocks.js:1110 -msgid "Upload a sound file to connect with the sample block." +#: js/blocks/PitchBlocks.js:726 +msgid "y to pitch" msgstr "" -#: js/MeterBlocks.js:34 -#.TRANS: musical meter (time signature), e.g., 4:4 -msgid "current meter" +#: js/blocks/PitchBlocks.js:729 +msgid "Y to pitch block will convert a staff y position to corresponding pitch notation." msgstr "" -#: js/MeterBlocks.js:85 -#.TRANS: number of beats per minute -msgid "beat factor" +#: js/blocks/PitchBlocks.js:841 +msgid "accidental selector" msgstr "" -#: js/MeterBlocks.js:161 -msgid "The Beats per minute block returns the current beats per minute." +#: js/blocks/PitchBlocks.js:844 +msgid "The Accidental selector block is used to choose between double-sharp, sharp, natural, flat, and double-flat." msgstr "" -#: js/MeterBlocks.js:169 -#: js/status.js:152 -#.TRANS: number of beats played per minute -msgid "beats per minute2" +#: js/blocks/PitchBlocks.js:858 +msgid "Pitch can be specified in terms of ni dha pa ma ga re sa." msgstr "" -#: js/MeterBlocks.js:169 -#: js/MeterBlocks.js:1056 -#: js/MeterBlocks.js:1133 -#: js/MeterBlocks.js:1211 -#.TRANS: sets tempo by defining a beat and beats per minute -msgid "beats per minute" +#: js/blocks/PitchBlocks.js:872 +msgid "Pitch can be specified in terms of C D E F G A B." msgstr "" -#: js/MeterBlocks.js:233 -#.TRANS: count of current musical measure in meter -msgid "measure count" +#: js/blocks/PitchBlocks.js:884 +msgid "solfege" msgstr "" -#: js/MeterBlocks.js:241 -msgid "The Measure count block returns the current measure." +#: js/blocks/PitchBlocks.js:887 +msgid "Pitch can be specified in terms of do re mi fa sol la ti." msgstr "" -#: js/MeterBlocks.js:290 -#.TRANS: count of current beat in the meter -msgid "beat count" +#: js/blocks/PitchBlocks.js:922 +msgid "The Invert block rotates any contained notes around a target note." msgstr "" -#: js/MeterBlocks.js:300 -#: js/MeterBlocks.js:311 -#: js/MeterBlocks.js:565 -#: js/MeterBlocks.js:576 -msgid "The Beat count block is the number of the current beat," +#: js/blocks/PitchBlocks.js:929 +#.TRANS: pitch inversion rotates a pitch around another pitch +msgid "invert" msgstr "" -#: js/MeterBlocks.js:313 -#: js/MeterBlocks.js:578 -msgid "eg 1, 2, 3, or 4." +#: js/blocks/PitchBlocks.js:968 +#.TRANS: pitch inversion rotates a pitch around another pitch (odd number) +msgid "invert (odd)" msgstr "" -#: js/MeterBlocks.js:368 -#.TRANS: count the number of notes -msgid "sum note values" +#: js/blocks/PitchBlocks.js:1001 +#.TRANS: pitch inversion rotates a pitch around another pitch (even number) +msgid "invert (even)" msgstr "" -#: js/MeterBlocks.js:376 -#: js/MeterBlocks.js:440 -msgid "The Note counter block can be used to count the number of contained notes." +#: js/blocks/PitchBlocks.js:1022 +#.TRANS: register is the octave of the current pitch +msgid "register" msgstr "" -#: js/MeterBlocks.js:432 -#.TRANS: count the number of notes -msgid "note counter" +#: js/blocks/PitchBlocks.js:1026 +msgid "The Register block provides an easy way to modify the register (octave) of the notes that follow it." msgstr "" -#: js/MeterBlocks.js:496 -#.TRANS: number of whole notes that have been played -msgid "whole notes played" +#: js/blocks/PitchBlocks.js:1047 +#.TRANS: cents are units used to specify the ratio between pitches. There are 100 cents between successive notes. +msgid "50 cents" msgstr "" -#: js/MeterBlocks.js:505 -msgid "The Whole notes played block returns the total number of whole notes played." +#: js/blocks/PitchBlocks.js:1102 +msgid "The Semi-tone transposition block will shift the pitches contained inside Note blocks up (or down) by half steps." msgstr "" -#: js/MeterBlocks.js:555 -#: js/DictActions.js:83 -#.TRANS: number of notes that have been played -msgid "notes played" +#: js/blocks/PitchBlocks.js:1104 +msgid "In the example shown above, sol is shifted up to sol#." msgstr "" -#: js/MeterBlocks.js:653 -msgid "The No clock block decouples the notes from the master clock." +#: js/blocks/PitchBlocks.js:1110 +#.TRANS: adjust the amount of shift (up or down) of a pitch +msgid "semi-tone transpose" msgstr "" -#: js/MeterBlocks.js:661 -#.TRANS: don't lock notes to master clock -msgid "no clock" +#: js/blocks/PitchBlocks.js:1143 +msgid "The Transpose by Ratio block will shift the pitches contained inside Note blocks up (or down) by a ratio" msgstr "" -#: js/MeterBlocks.js:700 -msgid "on weak beat do" +#: js/blocks/PitchBlocks.js:1149 +#.TRANS: adjust the amount of shift (up or down) of a pitch +msgid "transpose by ratio" msgstr "" -#: js/MeterBlocks.js:705 -msgid "The On-weak-beat block lets you specify actions to take on weak (off) beats." +#: js/blocks/PitchBlocks.js:1232 +#.TRANS: down sixth means the note is five scale degrees below current note +msgid "down sixth" msgstr "" -#: js/MeterBlocks.js:750 -msgid "on strong beat" +#: js/blocks/PitchBlocks.js:1251 +#.TRANS: down third means the note is two scale degrees below current note +msgid "down third" msgstr "" -#: js/MeterBlocks.js:758 -msgid "The On-strong-beat block lets you specify actions to take on specified beats." +#: js/blocks/PitchBlocks.js:1270 +#.TRANS: seventh means the note is the six scale degrees above current note +msgid "seventh" msgstr "" -#: js/MeterBlocks.js:769 -msgid "beat" +#: js/blocks/PitchBlocks.js:1289 +#.TRANS: sixth means the note is the five scale degrees above current note +msgid "sixth" msgstr "" -#: js/MeterBlocks.js:813 -msgid "on every beat do" +#: js/blocks/PitchBlocks.js:1308 +#.TRANS: fifth means the note is the four scale degrees above current note +msgid "fifth" msgstr "" -#: js/MeterBlocks.js:821 -msgid "The On-every-beat block lets you specify actions to take on every beat." +#: js/blocks/PitchBlocks.js:1328 +#.TRANS: fourth means the note is three scale degrees above current note +msgid "fourth" msgstr "" -#: js/MeterBlocks.js:874 -msgid "on every note do" +#: js/blocks/PitchBlocks.js:1347 +#.TRANS: third means the note is two scale degrees above current note +msgid "third" msgstr "" -#: js/MeterBlocks.js:882 -msgid "The On-every-note block lets you specify actions to take on every note." +#: js/blocks/PitchBlocks.js:1366 +#.TRANS: second means the note is one scale degree above current note +msgid "second" msgstr "" -#: js/MeterBlocks.js:928 -#: js/MeterBlocks.js:999 -#.TRANS: sets tempo by defining a beat and beats per minute -msgid "master beats per minute" +#: js/blocks/PitchBlocks.js:1407 +msgid "The Scalar transposition block will shift the pitches contained inside Note blocks up (or down) the scale." msgstr "" -#: js/MeterBlocks.js:952 -#: js/MeterBlocks.js:1078 -#: js/MeterBlocks.js:1135 -msgid "bpm" +#: js/blocks/PitchBlocks.js:1409 +msgid "In the example shown above, sol is shifted up to la." msgstr "" -#: js/MeterBlocks.js:952 -#: js/MeterBlocks.js:1078 -#: js/MeterBlocks.js:1135 -msgid "beat value" +#: js/blocks/PitchBlocks.js:1416 +#.TRANS: adjust the amount of shift (up or down) of a pitch by musical scale (scalar) steps +msgid "scalar transpose" msgstr "" -#: js/MeterBlocks.js:1024 -#: js/MeterBlocks.js:1167 -#: js/MeterBlocks.js:1241 -msgid "Beats per minute must be > 30." +#: js/blocks/PitchBlocks.js:1451 +msgid "The Accidental block is used to create sharps and flats" msgstr "" -#: js/MeterBlocks.js:1027 -#: js/MeterBlocks.js:1170 -#: js/MeterBlocks.js:1244 -msgid "Maximum beats per minute is 1000." +#: js/blocks/PitchBlocks.js:1458 +#.TRANS: An accidental is a modification to a pitch, e.g., sharp or flat. +msgid "accidental override" msgstr "" -#: js/MeterBlocks.js:1068 -msgid "The Beats per minute block sets the number of 1/4 notes per minute." +#: js/blocks/PitchBlocks.js:1581 +msgid "The Hertz block (in combination with a Number block) will play a sound at the specified frequency." msgstr "" -#: js/MeterBlocks.js:1279 -#.TRANS: anacrusis -msgid "pickup" +#: js/blocks/PitchBlocks.js:1671 +msgid "The Pitch Number block will play a pitch associated by its number, e.g. 0 for C and 7 for G." msgstr "" -#: js/MeterBlocks.js:1367 -msgid "number of beats" +#: js/blocks/PitchBlocks.js:1703 +#: js/blocks/PitchBlocks.js:1745 +#.TRANS: a numeric mapping of the notes in an octave based on the musical mode +#.TRANS: a numeric mapping of the notes in an octave based on the musical mode +msgid "nth modal pitch" msgstr "" -#: js/DictBlocks.js:77 -msgid "show dictionary" +#: js/blocks/PitchBlocks.js:1706 +msgid "n^th Modal Pitch takes the pattern of pitches in semitones for a mode and makes each point a degree of the mode," msgstr "" -#: js/DictBlocks.js:129 -msgid "The Dictionary block returns a dictionary." +#: js/blocks/PitchBlocks.js:1708 +msgid "starting from 1 and regardless of tonal framework (i.e. not always 8 notes in the octave)" msgstr "" -#: js/DictBlocks.js:197 -#: js/DictBlocks.js:339 -msgid "The Get-dict block returns a value in the dictionary for a specified key." +#: js/blocks/PitchBlocks.js:1749 +msgid "N^th Modal Pitch takes a number as an input as the n^th degree for the given mode. 0 is the first position, 1 is the second, -1 is the note before the first etc." msgstr "" -#: js/DictBlocks.js:212 -#: js/DictBlocks.js:354 -#.TRANS: retrieve a value from the dictionary with a given key -msgid "get value" +#: js/blocks/PitchBlocks.js:1751 +msgid "The pitches change according to the mode specified without any need for respellings." msgstr "" -#: js/DictBlocks.js:215 -#: js/DictBlocks.js:216 -#: js/DictBlocks.js:289 -#: js/DictBlocks.js:290 -#: js/DictBlocks.js:357 -#: js/DictBlocks.js:430 -#: js/DictBlocks.js:431 -msgid "key2" +#: js/blocks/PitchBlocks.js:1790 +msgid "Scale Degree is a common convention in music. Scale Degree offers seven possible positions in the scale (1-7) and can be modified via accidentals." msgstr "" -#: js/DictBlocks.js:271 -#: js/DictBlocks.js:411 -msgid "The Set-dict block sets a value in the dictionary for a specified key." +#: js/blocks/PitchBlocks.js:1792 +msgid "Scale Degree 1 is always the first pitch in a given scale, regardless of octave." msgstr "" -#: js/DictBlocks.js:286 -#: js/DictBlocks.js:427 -#.TRANS: set a value in the dictionary for a given key -msgid "set value" +#: js/blocks/PitchBlocks.js:1814 +#.TRANS: step some number of notes in current musical scale +msgid "scalar step" msgstr "" -#: js/ExtrasBlocks.js:33 -msgid "fraction" +#: js/blocks/PitchBlocks.js:1819 +msgid "The Scalar Step block (in combination with a Number block) will play the next pitch in a scale," msgstr "" -#: js/ExtrasBlocks.js:36 -msgid "Convert a float to a fraction" +#: js/blocks/PitchBlocks.js:1821 +msgid "eg if the last note played was sol, Scalar Step 1 will play la." msgstr "" -#: js/ExtrasBlocks.js:93 -msgid "save as ABC" +#: js/blocks/PitchBlocks.js:1857 +msgid "The Pitch block specifies the pitch name and octave of a note that together determine the frequency of the note." msgstr "" -#: js/ExtrasBlocks.js:96 -#: js/ExtrasBlocks.js:132 -#: js/ExtrasBlocks.js:168 -msgid "title" +#: js/blocks/ProgramBlocks.js:33 +msgid "The Load-heap-from-app block loads the heap from a web page." msgstr "" -#: js/ExtrasBlocks.js:129 -msgid "save as Lilypond" +#: js/blocks/ProgramBlocks.js:44 +#.TRANS: load the heap contents from a URL +msgid "load heap from App" msgstr "" -#: js/ExtrasBlocks.js:165 -msgid "save as SVG" +#: js/blocks/ProgramBlocks.js:95 +msgid "Error parsing JSON data:" msgstr "" -#: js/ExtrasBlocks.js:216 -msgid "no background" +#: js/blocks/ProgramBlocks.js:100 +msgid "404: Page not found" msgstr "" -#: js/ExtrasBlocks.js:219 -msgid "The No background block eliminates the background from the saved SVG output." +#: js/blocks/ProgramBlocks.js:133 +msgid "The Save-heap-to-app block saves the heap to a web page." msgstr "" -#: js/ExtrasBlocks.js:247 -msgid "show blocks" -msgstr "hiện khối" - -#: js/ExtrasBlocks.js:249 -msgid "The Show blocks block shows the blocks." +#: js/blocks/ProgramBlocks.js:144 +#.TRANS: save the heap contents to a URL +msgid "save heap to App" msgstr "" -#: js/ExtrasBlocks.js:274 -msgid "hide blocks" -msgstr "ẩn khối" - -#: js/ExtrasBlocks.js:276 -msgid "The Hide blocks block hides the blocks." +#: js/blocks/ProgramBlocks.js:189 +msgid "Cannot find a valid heap for" msgstr "" -#: js/ExtrasBlocks.js:305 -#: js/ExtrasBlocks.js:335 -msgid "The Space block is used to add space between blocks." +#: js/blocks/ProgramBlocks.js:206 +msgid "The Load-heap block loads the heap from a file." msgstr "" -#: js/ExtrasBlocks.js:373 -msgid "wait" -msgstr "đợi" +#: js/blocks/ProgramBlocks.js:217 +#.TRANS: load the heap from a file +msgid "load heap" +msgstr "" -#: js/ExtrasBlocks.js:376 -msgid "The Wait block pauses the program for a specified number of seconds." +#: js/blocks/ProgramBlocks.js:270 +msgid "The file you selected does not contain a valid heap." msgstr "" -#: js/ExtrasBlocks.js:430 -#: plugins/facebook.rtp:30 -msgid "comment" -msgstr "ghi chú" +#: js/blocks/ProgramBlocks.js:275 +msgid "The loadHeap block needs a loadFile block." +msgstr "" -#: js/ExtrasBlocks.js:466 -msgid "print" -msgstr "in" +#: js/blocks/ProgramBlocks.js:291 +msgid "The Set-heap block loads the heap." +msgstr "" -#: js/ExtrasBlocks.js:473 -msgid "The Print block displays text at the top of the screen." +#: js/blocks/ProgramBlocks.js:340 +msgid "The block you selected does not contain a valid heap." msgstr "" -#: js/ExtrasBlocks.js:579 -msgid "display grid" +#: js/blocks/ProgramBlocks.js:343 +msgid "The Set heap block needs a heap." msgstr "" -#: js/ExtrasBlocks.js:584 -msgid "The Display Grid Block changes the grid type" +#: js/blocks/ProgramBlocks.js:360 +msgid "The Load-dictionary block loads a dictionary from a file." msgstr "" -#: js/ExtrasBlocks.js:686 -#: js/ExtrasBlocks.js:705 -#: js/ExtrasBlocks.js:728 -#: js/ExtrasBlocks.js:751 -#: js/ExtrasBlocks.js:769 -#: js/ExtrasBlocks.js:788 -#: js/ExtrasBlocks.js:807 -#: js/ExtrasBlocks.js:826 -msgid "unknown" +#: js/blocks/ProgramBlocks.js:372 +#.TRANS: load a dictionary from a file +msgid "load dictionary" msgstr "" -#: js/SensorsBlocks.js:36 -msgid "The Input block prompts for keyboard input." +#: js/blocks/ProgramBlocks.js:390 +#: js/blocks/ProgramBlocks.js:658 +#: js/blocks/ToneBlocks.js:1025 +msgid "file" msgstr "" -#: js/SensorsBlocks.js:46 -msgid "input" +#: js/blocks/ProgramBlocks.js:444 +msgid "The file you selected does not contain a valid dictionary." msgstr "" -#: js/SensorsBlocks.js:64 -msgid "Input a value" +#: js/blocks/ProgramBlocks.js:449 +msgid "The load dictionary block needs a load file block." msgstr "" -#: js/SensorsBlocks.js:126 -msgid "input value" +#: js/blocks/ProgramBlocks.js:466 +msgid "The Set-dictionary block loads a dictionary." msgstr "" -#: js/SensorsBlocks.js:131 -msgid "The Input-value block stores the input." +#: js/blocks/ProgramBlocks.js:477 +#.TRANS: load a dictionary from a JSON +msgid "set dictionary" msgstr "" -#: js/SensorsBlocks.js:238 -msgid "loudness" -msgstr "độ lớn" +#: js/blocks/ProgramBlocks.js:546 +msgid "The block you selected does not contain a valid dictionary." +msgstr "" -#: js/SensorsBlocks.js:245 -msgid "The Loudness block returns the volume detected by the microphone." +#: js/blocks/ProgramBlocks.js:550 +msgid "The set dictionary block needs a dictionary." msgstr "" -#: js/SensorsBlocks.js:300 -msgid "click" +#: js/blocks/ProgramBlocks.js:567 +msgid "The Save-heap block saves the heap to a file." msgstr "" -#: js/SensorsBlocks.js:306 -msgid "The Click block triggers an event if a mouse has been clicked." +#: js/blocks/ProgramBlocks.js:578 +#.TRANS: save the heap to a file +msgid "save heap" msgstr "" -#: js/SensorsBlocks.js:313 -msgid "The Click block triggers an event if a turtle has been clicked." +#: js/blocks/ProgramBlocks.js:629 +msgid "The Save-dictionary block saves a dictionary to a file." msgstr "" -#: js/SensorsBlocks.js:342 -msgid "cursor over" +#: js/blocks/ProgramBlocks.js:640 +#.TRANS: save a dictionary to a file +msgid "save dictionary" msgstr "" -#: js/SensorsBlocks.js:387 -msgid "cursor out" +#: js/blocks/ProgramBlocks.js:720 +msgid "The Open palette block opens a palette." msgstr "" -#: js/SensorsBlocks.js:433 -msgid "cursor button down" +#: js/blocks/ProgramBlocks.js:727 +msgid "open palette" msgstr "" -#: js/SensorsBlocks.js:477 -msgid "cursor button up" +#: js/blocks/ProgramBlocks.js:785 +msgid "The Delete block block removes a block." msgstr "" -#: js/SensorsBlocks.js:638 -msgid "The Get red block returns the red component of the pixel under the mouse." +#: js/blocks/ProgramBlocks.js:797 +#.TRANS: Move this block to the trash. +msgid "delete block" msgstr "" -#: js/SensorsBlocks.js:644 -msgid "The Get red block returns the red component of the pixel under the turtle." +#: js/blocks/ProgramBlocks.js:861 +msgid "The Move block block moves a block." msgstr "" -#: js/SensorsBlocks.js:685 -#: plugins/rodi.rtp:216 -msgid "pixel color" +#: js/blocks/ProgramBlocks.js:869 +#.TRANS: Move the position of a block on the screen. +msgid "move block" msgstr "" -#: js/SensorsBlocks.js:690 -msgid "The Get pixel block returns the color of the pixel under the mouse." +#: js/blocks/ProgramBlocks.js:881 +#: js/blocks/ProgramBlocks.js:1048 +msgid "block number" msgstr "" -#: js/SensorsBlocks.js:696 -msgid "The Get pixel block returns the color of the pixel under the turtle." +#: js/blocks/ProgramBlocks.js:935 +#.TRANS: Run program beginning at this block. +msgid "run block" msgstr "" -#: js/SensorsBlocks.js:758 -msgid "time" -msgstr "Thời gian" +#: js/blocks/ProgramBlocks.js:1025 +msgid "The Dock block block connections two blocks." +msgstr "" -#: js/SensorsBlocks.js:804 -msgid "cursor y" +#: js/blocks/ProgramBlocks.js:1036 +#.TRANS: We can connect a block to another block. +msgid "connect blocks" msgstr "" -#: js/SensorsBlocks.js:809 -msgid "The Cursor Y block returns the vertical position of the mouse." +#: js/blocks/ProgramBlocks.js:1048 +msgid "target block" msgstr "" -#: js/SensorsBlocks.js:845 -msgid "cursor x" +#: js/blocks/ProgramBlocks.js:1048 +msgid "connection number" msgstr "" -#: js/SensorsBlocks.js:850 -msgid "The Cursor X block returns the horizontal position of the mouse." +#: js/blocks/ProgramBlocks.js:1140 +msgid "The Make block block creates a new block." msgstr "" -#: js/SensorsBlocks.js:886 -msgid "mouse button" +#: js/blocks/ProgramBlocks.js:1152 +#.TRANS: Create a new block +msgid "make block" msgstr "" -#: js/SensorsBlocks.js:888 -msgid "The Mouse-button block returns True if the mouse button is pressed." +#: js/blocks/ProgramBlocks.js:1285 +msgid "Cannot find block" msgstr "" -#: js/SensorsBlocks.js:934 -msgid "to ASCII" +#: js/blocks/ProgramBlocks.js:1304 +#: js/blocks/ProgramBlocks.js:1313 +msgid "Warning: block argument type mismatch" msgstr "" -#: js/SensorsBlocks.js:938 -msgid "The To ASCII block converts numbers to letters." +#: js/blocks/ProgramBlocks.js:1347 +msgid "The Open project block is used to open a project from a web page." msgstr "" -#: js/SensorsBlocks.js:1005 -msgid "The Keyboard block returns computer keyboard input." +#: js/blocks/ProgramBlocks.js:1357 +msgid "open project" msgstr "" -#: js/IntervalsActions.js:216 -msgid "Adding missing pitch number 0." +#: js/blocks/ProgramBlocks.js:1410 +msgid "Please enter a valid URL." msgstr "" -#: js/IntervalsActions.js:224 -msgid "Ignoring pitch numbers less than zero or greater than eleven." +#: js/blocks/ToneBlocks.js:34 +msgid "oscillator" msgstr "" -#: js/IntervalsActions.js:230 -msgid "Ignoring duplicate pitch numbers." +#: js/blocks/ToneBlocks.js:42 +#: js/blocks/WidgetBlocks.js:179 +#: js/widgets/timbre.js:1558 +#: js/widgets/timbre.js:1808 +#.TRANS: there are different types (sine, triangle, square...) of oscillators. +#.TRANS: type of filter, e.g., lowpass, highpass, etc. +msgid "type" msgstr "" -#: js/PitchActions.js:88 -msgid "The Scalar Step Block must be used inside of a Note Block." +#: js/blocks/ToneBlocks.js:44 +#: js/widgets/timbre.js:1562 +#.TRANS: Partials refers to the number of sine waves combined into the sound. +msgid "partials" msgstr "" -#: js/PitchActions.js:107 -msgid "The Scalar Step Block must be preceded by a Pitch Block." +#: js/blocks/ToneBlocks.js:76 +msgid "You are adding multiple oscillator blocks." msgstr "" -#: js/DrumActions.js:231 -msgid "Noise Block: Did you mean to use a Note block?" +#: js/blocks/ToneBlocks.js:144 +#: js/widgets/timbre.js:1225 +#.TRANS: a duo synthesizer combines a synth with a sequencer +msgid "duo synth" msgstr "" -#: js/MeterActions.js:101 -#: js/MeterActions.js:139 -msgid "beats per minute must be greater than" +#: js/blocks/ToneBlocks.js:149 +msgid "The Duo synth block is a duo-frequency modulator used to define a timbre." msgstr "" -#: js/MeterActions.js:111 -#: js/MeterActions.js:149 -msgid "maximum" +#: js/blocks/ToneBlocks.js:157 +#: js/widgets/timbre.js:1476 +msgid "vibrato rate" msgstr "" -#: js/MeterActions.js:117 -#: js/MeterActions.js:155 -msgid "beats per minute is" +#: js/blocks/ToneBlocks.js:157 +msgid "vibrato intensity" msgstr "" -#: js/ToneActions.js:134 -msgid "Vibrato intensity must be between 1 and 100." +#: js/blocks/ToneBlocks.js:185 +#: js/widgets/timbre.js:1221 +#.TRANS: AM (amplitude modulation) synthesizer +msgid "AM synth" msgstr "" -#: js/ToneActions.js:139 -msgid "Vibrato rate must be greater than 0." +#: js/blocks/ToneBlocks.js:189 +msgid "The AM synth block is an amplitude modulator used to define a timbre." msgstr "" -#: js/ToneActions.js:192 -#: js/ToneActions.js:265 -#.TRANS: Depth is the intesity of the tremolo or chorus effect. -msgid "Depth is out of range." +#: js/blocks/ToneBlocks.js:224 +#: js/widgets/timbre.js:1223 +#.TRANS: FM (frequency modulation) synthesizer +msgid "FM synth" msgstr "" -#: js/ToneActions.js:301 -msgid "Distortion must be from 0 to 100." +#: js/blocks/ToneBlocks.js:228 +msgid "The FM synth block is a frequency modulator used to define a timbre." msgstr "" -#: js/ToneActions.js:332 -#.TRANS: partials components in a harmonic series -msgid "Partial must be greater than or equal to 0." +#: js/blocks/ToneBlocks.js:262 +msgid "partial" msgstr "" -#: js/ToneActions.js:378 -#: js/ToneActions.js:417 -#: js/ToneActions.js:456 -#: js/timbre.js:782 -msgid "Unable to use synth due to existing oscillator" +#: js/blocks/ToneBlocks.js:265 +msgid "The Partial block is used to specify a weight for a specific partial harmonic." msgstr "" -#: js/ToneActions.js:388 -#: js/ToneActions.js:427 -msgid "The input cannot be negative." +#: js/blocks/ToneBlocks.js:284 +#.TRANS: partials are weighted components in a harmonic series +msgid "Partial weight must be between 0 and 1." msgstr "" -#: js/DictActions.js:75 -#: js/DictActions.js:153 -#: js/DictActions.js:188 -msgid "font" +#: js/blocks/ToneBlocks.js:297 +#.TRANS: partials are weighted components in a harmonic series +msgid "Partial block should be used inside of a Weighted-partials block." msgstr "" -#: js/musicutils.js:363 -#: js/musicutils.js:471 -#: js/pitchdrummatrix.js:151 -#: js/musickeyboard.js:2563 -msgid "rest" +#: js/blocks/ToneBlocks.js:325 +#.TRANS: partials are weighted components in a harmonic series +msgid "weighted partials" msgstr "" -#: js/musicutils.js:565 -#.TRANS: ordinal number. Please keep exactly one space between each number. -msgid "1st 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th" +#: js/blocks/ToneBlocks.js:383 +msgid "The Harmonic block will add harmonics to the contained notes." msgstr "" -#: js/musicutils.js:629 -#: js/musicutils.js:812 -#: js/musicutils.js:911 -#.TRANS: augmented is a music term related to intervals -msgid "augmented" +#: js/blocks/ToneBlocks.js:390 +#.TRANS: A harmonic is an overtone. +msgid "harmonic" msgstr "" -#: js/musicutils.js:631 -#: js/musicutils.js:813 -#: js/musicutils.js:910 -#.TRANS: diminished is a music term related to intervals and mode -msgid "diminished" +#: js/blocks/ToneBlocks.js:431 +msgid "The Distortion block adds distortion to the pitch." msgstr "" -#: js/musicutils.js:639 -#.TRANS: twelve semi-tone scale for music -msgid "chromatic" +#: js/blocks/ToneBlocks.js:438 +#: js/widgets/timbre.js:2100 +#.TRANS: distortion is an alteration in the sound +msgid "distortion" msgstr "" -#: js/musicutils.js:640 -msgid "algerian" +#: js/blocks/ToneBlocks.js:487 +msgid "The Tremolo block adds a wavering effect." msgstr "" -#: js/musicutils.js:641 -msgid "spanish" +#: js/blocks/ToneBlocks.js:495 +#: js/widgets/timbre.js:2092 +#.TRANS: a wavering effect in a musical tone +msgid "tremolo" msgstr "" -#: js/musicutils.js:643 -#.TRANS: modal scale in music -msgid "octatonic" +#: js/blocks/ToneBlocks.js:500 +#: js/blocks/ToneBlocks.js:569 +#: js/blocks/ToneBlocks.js:630 +#: js/blocks/ToneBlocks.js:689 +#: js/widgets/timbre.js:2134 +#: js/widgets/timbre.js:2222 +#: js/widgets/timbre.js:2317 +#: js/widgets/timbre.js:2419 +#.TRANS: rate at which tremolo wavers +msgid "rate" msgstr "" -#: js/musicutils.js:645 -#.TRANS: harmonic major scale in music -msgid "harmonic major" +#: js/blocks/ToneBlocks.js:502 +#: js/blocks/ToneBlocks.js:630 +#: js/widgets/timbre.js:2137 +#: js/widgets/timbre.js:2328 +#.TRANS: amplitude of tremolo waver +msgid "depth" msgstr "" -#: js/musicutils.js:647 -#.TRANS: natural minor scales in music -msgid "natural minor" +#: js/blocks/ToneBlocks.js:559 +msgid "The Phaser block adds a sweeping sound." msgstr "" -#: js/musicutils.js:649 -#.TRANS: harmonic minor scale in music -msgid "harmonic minor" +#: js/blocks/ToneBlocks.js:566 +#: js/widgets/timbre.js:2098 +#.TRANS: alter the phase of the sound +msgid "phaser" msgstr "" -#: js/musicutils.js:651 -#.TRANS: melodic minor scale in music -msgid "melodic minor" +#: js/blocks/ToneBlocks.js:569 +#: js/turtleactions/IntervalsActions.js:114 +#: js/widgets/timbre.js:2422 +msgid "octaves" msgstr "" -#: js/musicutils.js:655 -#.TRANS: modal scale for music -msgid "dorian" +#: js/blocks/ToneBlocks.js:569 +#: js/widgets/timbre.js:2425 +msgid "base frequency" msgstr "" -#: js/musicutils.js:657 -#.TRANS: modal scale for music -msgid "phrygian" +#: js/blocks/ToneBlocks.js:619 +msgid "The Chorus block adds a chorus effect." msgstr "" -#: js/musicutils.js:659 -#.TRANS: modal scale for music -msgid "lydian" +#: js/blocks/ToneBlocks.js:627 +#: js/widgets/timbre.js:2096 +#.TRANS: musical effect to simulate a choral sound +msgid "chorus" msgstr "" -#: js/musicutils.js:661 -#.TRANS: modal scale for music -msgid "mixolydian" +#: js/blocks/ToneBlocks.js:630 +msgid "delay" msgstr "" -#: js/musicutils.js:665 -#.TRANS: modal scale for music -msgid "locrian" +#: js/blocks/ToneBlocks.js:678 +msgid "The Vibrato block adds a rapid, slight variation in pitch." msgstr "" -#: js/musicutils.js:667 -#.TRANS: minor jazz scale for music -msgid "jazz minor" +#: js/blocks/ToneBlocks.js:686 +#: js/widgets/timbre.js:2094 +#.TRANS: a rapid, slight variation in pitch +msgid "vibrato" msgstr "" -#: js/musicutils.js:669 -#.TRANS: bebop scale for music -msgid "bebop" +#: js/blocks/ToneBlocks.js:689 +#: js/widgets/timbre.js:2221 +msgid "intensity" msgstr "" -#: js/musicutils.js:670 -msgid "arabic" +#: js/blocks/ToneBlocks.js:733 +#.TRANS: select synthesizer +msgid "set synth" msgstr "" -#: js/musicutils.js:671 -msgid "byzantine" +#: js/blocks/ToneBlocks.js:804 +msgid "synth name" msgstr "" -#: js/musicutils.js:673 -#.TRANS: musical scale for music by Verdi -msgid "enigmatic" +#: js/blocks/ToneBlocks.js:842 +msgid "set default instrument" msgstr "" -#: js/musicutils.js:674 -msgid "ethiopian" +#: js/blocks/ToneBlocks.js:895 +#: js/blocks/ToneBlocks.js:943 +#.TRANS: set the characteristics of a custom instrument +msgid "set instrument" msgstr "" -#: js/musicutils.js:676 -#.TRANS: Ethiopic scale for music -msgid "geez" +#: js/blocks/ToneBlocks.js:898 +#: js/blocks/ToneBlocks.js:926 +#: js/blocks/ToneBlocks.js:932 +msgid "The Set instrument block selects a voice for the synthesizer," msgstr "" -#: js/musicutils.js:677 -msgid "hindu" +#: js/blocks/ToneBlocks.js:900 +#: js/blocks/ToneBlocks.js:934 +msgid "eg guitar piano violin or cello." msgstr "" -#: js/musicutils.js:678 -msgid "hungarian" +#: js/blocks/ToneBlocks.js:1015 +msgid "Import a sound file to use as an instrument and set its pitch center." msgstr "" -#: js/musicutils.js:680 -#.TRANS: minor Romanian scale for music -msgid "romanian minor" +#: js/blocks/ToneBlocks.js:1110 +msgid "Upload a sound file to connect with the sample block." msgstr "" -#: js/musicutils.js:681 -msgid "spanish gypsy" +#: js/blocks/VolumeBlocks.js:35 +msgid "synth volume" msgstr "" -#: js/musicutils.js:683 -#.TRANS: musical scale for Mid-Eastern music -msgid "maqam" +#: js/blocks/VolumeBlocks.js:39 +msgid "The Synth volume block returns the current volume of the current synthesizer." msgstr "" -#: js/musicutils.js:685 -#.TRANS: minor blues scale for music -msgid "minor blues" +#: js/blocks/VolumeBlocks.js:105 +msgid "master volume" msgstr "" -#: js/musicutils.js:687 -#.TRANS: major blues scale for music -msgid "major blues" +#: js/blocks/VolumeBlocks.js:109 +msgid "The Master volume block returns the master volume." msgstr "" -#: js/musicutils.js:688 -msgid "whole tone" +#: js/blocks/VolumeBlocks.js:355 +#: js/blocks/VolumeBlocks.js:524 +msgid "set synth volume" msgstr "" -#: js/musicutils.js:690 -#.TRANS: pentatonic is a general term that means "five note scale". This scale is typically known as "minor pentatonic" -msgid "minor pentatonic" +#: js/blocks/VolumeBlocks.js:362 +#: js/blocks/VolumeBlocks.js:545 +msgid "synth" msgstr "" -#: js/musicutils.js:692 -#.TRANS: pentatonic is a general term that means "five note scale". This scale is typically known as "major pentatonic" -msgid "major pentatonic" +#: js/blocks/VolumeBlocks.js:403 +#: js/blocks/VolumeBlocks.js:577 +#: js/blocks/VolumeBlocks.js:740 +#: js/turtleactions/VolumeActions.js:173 +msgid "Setting volume to 0." msgstr "" -#: js/musicutils.js:693 -msgid "chinese" +#: js/blocks/VolumeBlocks.js:440 +msgid "Synth not found" msgstr "" -#: js/musicutils.js:694 -msgid "egyptian" +#: js/blocks/VolumeBlocks.js:494 +msgid "set drum volume" msgstr "" -#: js/musicutils.js:696 -#.TRANS: https://en.wikipedia.org/wiki/Hirajoshi_scale NOTE: There are three different versions of this scale -msgid "hirajoshi" +#: js/blocks/VolumeBlocks.js:530 +msgid "The Set synth volume block will change the volume of a particular synth," msgstr "" -#: js/musicutils.js:697 -msgid "Japan" +#: js/blocks/VolumeBlocks.js:532 +msgid "eg guitar violin snare drum etc." msgstr "" -#: js/musicutils.js:699 -#.TRANS: https://en.wikipedia.org/wiki/In_scale and https://en.wikipedia.org/wiki/Sakura_Sakura -msgid "in" +#: js/blocks/VolumeBlocks.js:534 +msgid "The default volume is 50." msgstr "" -#: js/musicutils.js:701 -#.TRANS: https://en.wikipedia.org/wiki/Miny%C5%8D_scale -msgid "minyo" +#: js/blocks/VolumeBlocks.js:536 +msgid "The range is 0 for silence to 100 for full volume." msgstr "" -#: js/musicutils.js:703 -#.TRANS: Italian mathematician -msgid "fibonacci" +#: js/blocks/VolumeBlocks.js:597 +msgid "set panning" msgstr "" -#: js/musicutils.js:708 -#: js/musicutils.js:1106 -#.TRANS: lowpass filter -msgid "lowpass" +#: js/blocks/VolumeBlocks.js:603 +msgid "The Set Panning block sets the panning for all synthesizers." msgstr "" -#: js/musicutils.js:710 -#: js/musicutils.js:1107 -#.TRANS: bandpass filter -msgid "bandpass" +#: js/blocks/VolumeBlocks.js:625 +msgid "Warning: Sound is coming out from only the left or right side." msgstr "" -#: js/musicutils.js:712 -#: js/musicutils.js:1108 -#.TRANS: high-shelf filter -msgid "highshelf" +#: js/blocks/VolumeBlocks.js:647 +#: js/blocks/VolumeBlocks.js:695 +msgid "set master volume" msgstr "" -#: js/musicutils.js:714 -#: js/musicutils.js:1109 -#.TRANS: low-shelf filter -msgid "lowshelf" +#: js/blocks/VolumeBlocks.js:653 +msgid "The Set master volume block sets the volume for all synthesizers." msgstr "" -#: js/musicutils.js:716 -#: js/musicutils.js:1110 -#.TRANS: notch-shelf filter -msgid "notch" +#: js/blocks/VolumeBlocks.js:784 +msgid "The Set relative volume block changes the volume of the contained notes." msgstr "" -#: js/musicutils.js:718 -#: js/musicutils.js:1111 -#.TRANS: all-pass filter -msgid "allpass" +#: js/blocks/VolumeBlocks.js:791 +msgid "set relative volume" msgstr "" -#: js/musicutils.js:720 -#: js/musicutils.js:1112 -#.TRANS: peaking filter -msgid "peaking" +#: js/blocks/VolumeBlocks.js:857 +msgid "decrescendo" msgstr "" -#: js/musicutils.js:731 -#: js/synthutils.js:58 -#.TRANS: musical instrument -msgid "violin" +#: js/blocks/VolumeBlocks.js:921 +msgid "crescendo" msgstr "" -#: js/musicutils.js:732 -#: js/synthutils.js:60 -#.TRANS: viola musical instrument -msgid "viola" +#: js/blocks/WidgetBlocks.js:81 +#.TRANS: sound envelope (ADSR) +msgid "envelope" msgstr "" -#: js/musicutils.js:733 -#: js/synthutils.js:98 -#.TRANS: xylophone musical instrument -msgid "xylophone" +#: js/blocks/WidgetBlocks.js:89 +#.TRANS: Attack time is the time taken for initial run-up of level from nil to peak, beginning when the key is first pressed. +msgid "attack" msgstr "" -#: js/musicutils.js:734 -#: js/synthutils.js:120 -#.TRANS: vibraphone musical instrument -msgid "vibraphone" +#: js/blocks/WidgetBlocks.js:91 +#.TRANS: Decay time is the time taken for the subsequent run down from the attack level to the designated sustain level. +msgid "decay" msgstr "" -#: js/musicutils.js:735 -#: js/synthutils.js:62 -#.TRANS: musical instrument -msgid "cello" +#: js/blocks/WidgetBlocks.js:93 +#.TRANS: Sustain level is the level during the main sequence of the sound's duration, until the key is released. +msgid "sustain" msgstr "" -#: js/musicutils.js:737 -#: js/synthutils.js:66 -#.TRANS: viola musical instrument -msgid "double bass" +#: js/blocks/WidgetBlocks.js:95 +#.TRANS: Release time is the time taken for the level to decay from the sustain level to zero after the key is released. +msgid "release" msgstr "" -#: js/musicutils.js:738 -#: js/synthutils.js:68 -#: js/rhythmruler.js:2119 -#.TRANS: musical instrument -msgid "guitar" +#: js/blocks/WidgetBlocks.js:113 +msgid "Attack value should be from 0 to 100." msgstr "" -#: js/musicutils.js:739 -#: js/synthutils.js:70 -#.TRANS: musical instrument -msgid "acoustic guitar" +#: js/blocks/WidgetBlocks.js:116 +msgid "Decay value should be from 0 to 100." msgstr "" -#: js/musicutils.js:740 -#: js/synthutils.js:72 -#.TRANS: musical instrument -msgid "flute" +#: js/blocks/WidgetBlocks.js:119 +msgid "Sustain value should be from 0 to 100." msgstr "" -#: js/musicutils.js:741 -#: js/synthutils.js:74 -#.TRANS: musical instrument -msgid "clarinet" +#: js/blocks/WidgetBlocks.js:122 +msgid "Release value should be from 0-100." msgstr "" -#: js/musicutils.js:742 -#: js/synthutils.js:76 -#.TRANS: musical instrument -msgid "saxophone" +#: js/blocks/WidgetBlocks.js:140 +msgid "You are adding multiple envelope blocks." msgstr "" -#: js/musicutils.js:743 -#: js/synthutils.js:78 -#.TRANS: musical instrument -msgid "tuba" +#: js/blocks/WidgetBlocks.js:171 +#.TRANS: a filter removes some unwanted components from a signal +msgid "filter" msgstr "" -#: js/musicutils.js:744 -#: js/synthutils.js:80 -#.TRANS: musical instrument -msgid "trumpet" +#: js/blocks/WidgetBlocks.js:181 +#: js/widgets/timbre.js:1818 +#.TRANS: rolloff is the steepness of a change in frequency. +msgid "rolloff" msgstr "" -#: js/musicutils.js:745 -#: js/synthutils.js:82 -#.TRANS: musical instrument -msgid "oboe" +#: js/blocks/WidgetBlocks.js:213 +#.TRANS: rolloff is the steepness of a change in frequency. +msgid "Rolloff value should be either -12, -24, -48, or -96 decibels/octave." msgstr "" -#: js/musicutils.js:746 -#: js/synthutils.js:84 -#.TRANS: musical instrument -msgid "trombone" +#: js/blocks/WidgetBlocks.js:252 +msgid "The Temperament tool is used to define custom tuning." msgstr "" -#: js/musicutils.js:747 -#: js/synthutils.js:100 -#.TRANS: polytone synthesizer -msgid "electronic synth" +#: js/blocks/WidgetBlocks.js:332 +#: js/blocks/WidgetBlocks.js:1573 +#: js/widgets/sampler.js:547 +msgid "Upload a sample and adjust its pitch center." msgstr "" -#: js/musicutils.js:748 -#: js/synthutils.js:102 -#.TRANS: simple monotone synthesizer -msgid "simple 1" +#: js/blocks/WidgetBlocks.js:339 +#.TRANS: the speed at music is should be played. +msgid "sampler" +msgstr "" + +#: js/blocks/WidgetBlocks.js:517 +msgid "The Meter block opens a tool to select strong beats for the meter." msgstr "" -#: js/musicutils.js:749 -msgid "simple 2" +#: js/blocks/WidgetBlocks.js:573 +msgid "The oscilloscope block opens a tool to visualize waveforms." msgstr "" -#: js/musicutils.js:750 -msgid "simple 3" +#: js/blocks/WidgetBlocks.js:578 +msgid "oscilloscope" msgstr "" -#: js/musicutils.js:751 -msgid "simple 4" +#: js/blocks/WidgetBlocks.js:645 +msgid "The Custom mode block opens a tool to explore musical mode (the spacing of the notes in a scale)." msgstr "" -#: js/musicutils.js:753 -#: js/synthutils.js:49 -#.TRANS: brown noise synthesizer -msgid "brown noise" +#: js/blocks/WidgetBlocks.js:651 +#.TRANS: musical mode is the pattern of half-steps in an octave, e.g., Major or Minor modes +msgid "custom mode" msgstr "" -#: js/musicutils.js:754 -#: js/synthutils.js:51 -#.TRANS: pink noise synthesizer -msgid "pink noise" +#: js/blocks/WidgetBlocks.js:700 +msgid "The Tempo block opens a metronome to visualize the beat." msgstr "" -#: js/musicutils.js:756 -#: js/synthutils.js:127 -#: js/rhythmruler.js:1670 -#: js/rhythmruler.js:1928 -#.TRANS: musical instrument -msgid "snare drum" +#: js/blocks/WidgetBlocks.js:762 +msgid "The Arpeggio Widget is used to compose chord sequences." msgstr "" -#: js/musicutils.js:757 -#: js/synthutils.js:129 -#.TRANS: musical instrument -msgid "kick drum" +#: js/blocks/WidgetBlocks.js:837 +msgid "The Pitch drum matrix is used to map pitches to drum sounds." msgstr "" -#: js/musicutils.js:758 -#: js/synthutils.js:131 -#.TRANS: musical instrument -msgid "tom tom" +#: js/blocks/WidgetBlocks.js:842 +#.TRANS: makes a mapping between pitches and drum sounds +msgid "pitch-drum mapper" msgstr "" -#: js/musicutils.js:759 -#: js/synthutils.js:133 -#.TRANS: musical instrument -msgid "floor tom" +#: js/blocks/WidgetBlocks.js:891 +msgid "You must have at least one pitch block and one drum block in the matrix." msgstr "" -#: js/musicutils.js:760 -#: js/synthutils.js:135 -#.TRANS: musical instrument -msgid "bass drum" +#: js/blocks/WidgetBlocks.js:920 +msgid "The Pitch slider tool to is used to generate pitches at selected frequencies." msgstr "" -#: js/musicutils.js:761 -#: js/synthutils.js:137 -#.TRANS: a drum made from an inverted cup -msgid "cup drum" +#: js/blocks/WidgetBlocks.js:925 +#.TRANS: widget to generate pitches using a slider +msgid "pitch slider" msgstr "" -#: js/musicutils.js:762 -#: js/synthutils.js:139 -#.TRANS: musical instrument -msgid "darbuka drum" +#: js/blocks/WidgetBlocks.js:977 +msgid "chromatic keyboard" msgstr "" -#: js/musicutils.js:763 -#: js/synthutils.js:143 -#.TRANS: musical instrument -msgid "hi hat" +#: js/blocks/WidgetBlocks.js:1011 +#: js/blocks/WidgetBlocks.js:1077 +#.TRANS: widget to generate pitches using a slider +msgid "music keyboard" msgstr "" -#: js/musicutils.js:764 -#: js/synthutils.js:145 -#.TRANS: a small metal bell -msgid "ride bell" +#: js/blocks/WidgetBlocks.js:1062 +#: js/blocks/WidgetBlocks.js:1069 +msgid "The Music keyboard block opens a piano keyboard that can be used to create notes." msgstr "" -#: js/musicutils.js:765 -#: js/synthutils.js:147 -#.TRANS: musical instrument -msgid "cow bell" +#: js/blocks/WidgetBlocks.js:1128 +msgid "The Pitch staircase tool to is used to generate pitches from a given ratio." msgstr "" -#: js/musicutils.js:766 -msgid "japanese drum" +#: js/blocks/WidgetBlocks.js:1135 +#.TRANS: generate a progressive sequence of pitches +msgid "pitch staircase" msgstr "" -#: js/musicutils.js:767 -#: js/synthutils.js:153 -#.TRANS: musical instrument -msgid "japanese bell" +#: js/blocks/WidgetBlocks.js:1222 +msgid "The Rhythm Maker block opens a tool to create drum machines." msgstr "" -#: js/musicutils.js:768 -#: js/synthutils.js:149 -#.TRANS: musical instrument -msgid "triangle bell" +#: js/blocks/WidgetBlocks.js:1291 +msgid "G major scale" msgstr "" -#: js/musicutils.js:769 -#: js/synthutils.js:151 -#.TRANS: musical instrument -msgid "finger cymbals" +#: js/blocks/WidgetBlocks.js:1326 +msgid "C major scale" msgstr "" -#: js/musicutils.js:770 -#: js/synthutils.js:155 -#.TRANS: a musically tuned set of bells -msgid "chime" +#: js/blocks/WidgetBlocks.js:1366 +msgid "The Phrase Maker block opens a tool to create musical phrases." msgstr "" -#: js/musicutils.js:771 -#: js/synthutils.js:157 -#.TRANS: a musical instrument -msgid "gong" +#: js/blocks/WidgetBlocks.js:1373 +#.TRANS: assigns pitch to a sequence of beats to generate a melody +msgid "phrase maker" msgstr "" -#: js/musicutils.js:772 -#: js/synthutils.js:159 -#.TRANS: sound effect -msgid "clang" +#: js/blocks/WidgetBlocks.js:1444 +msgid "You must have at least one pitch block and one rhythm block in the matrix." msgstr "" -#: js/musicutils.js:773 -#: js/synthutils.js:161 -#.TRANS: sound effect -msgid "crash" +#: js/blocks/WidgetBlocks.js:1503 +msgid "The Status block opens a tool for inspecting the status of Music Blocks as it is running." msgstr "" -#: js/musicutils.js:774 -#: js/synthutils.js:163 -#.TRANS: sound effect -msgid "bottle" +#: js/blocks/WidgetBlocks.js:1580 +#.TRANS: AI-generated music +msgid "aimusic" msgstr "" -#: js/musicutils.js:775 -#: js/synthutils.js:165 -#.TRANS: sound effect -msgid "clap" +#: js/turtleactions/MeterActions.js:101 +#: js/turtleactions/MeterActions.js:139 +msgid "beats per minute must be greater than" msgstr "" -#: js/musicutils.js:776 -#: js/synthutils.js:167 -#.TRANS: sound effect -msgid "slap" +#: js/turtleactions/MeterActions.js:111 +#: js/turtleactions/MeterActions.js:149 +msgid "maximum" msgstr "" -#: js/musicutils.js:777 -#: js/synthutils.js:169 -#.TRANS: sound effect -msgid "splash" +#: js/turtleactions/MeterActions.js:117 +#: js/turtleactions/MeterActions.js:155 +msgid "beats per minute is" msgstr "" -#: js/musicutils.js:778 -#: js/synthutils.js:171 -#.TRANS: sound effect -msgid "bubbles" +#: js/turtleactions/DictActions.js:75 +#: js/turtleactions/DictActions.js:142 +#: js/turtleactions/DictActions.js:172 +msgid "font" msgstr "" -#: js/musicutils.js:779 -#: js/synthutils.js:173 -#.TRANS: sound effect -msgid "raindrop" +#: js/turtleactions/DictActions.js:255 +msgid "Dictionary with this name does not exist" msgstr "" -#: js/musicutils.js:780 -#: js/synthutils.js:175 -#.TRANS: animal sound effect -msgid "cat" +#: js/turtleactions/DictActions.js:259 +msgid "Key with this name does not exist in " msgstr "" -#: js/musicutils.js:781 -#: js/synthutils.js:177 -#.TRANS: animal sound effect -msgid "cricket" +#: js/turtleactions/DrumActions.js:227 +msgid "Noise Block: Did you mean to use a Note block?" msgstr "" -#: js/musicutils.js:782 -#: js/synthutils.js:179 -#.TRANS: animal sound effect -msgid "dog" +#: js/turtleactions/IntervalsActions.js:113 +msgid "one" msgstr "" -#: js/musicutils.js:784 -#: js/synthutils.js:86 -#.TRANS: musical instrument -msgid "banjo" +#: js/turtleactions/IntervalsActions.js:113 +msgid "two" msgstr "" -#: js/musicutils.js:785 -#: js/synthutils.js:88 -#.TRANS: musical instrument -msgid "koto" +#: js/turtleactions/IntervalsActions.js:113 +msgid "three" msgstr "" -#: js/musicutils.js:786 -#: js/synthutils.js:90 -#.TRANS: musical instrument -msgid "dulcimer" +#: js/turtleactions/IntervalsActions.js:113 +msgid "four" msgstr "" -#: js/musicutils.js:787 -#: js/synthutils.js:92 -#.TRANS: musical instrument -msgid "electric guitar" +#: js/turtleactions/IntervalsActions.js:113 +msgid "five" msgstr "" -#: js/musicutils.js:788 -#: js/synthutils.js:94 -#.TRANS: musical instrument -msgid "bassoon" +#: js/turtleactions/IntervalsActions.js:113 +msgid "six" msgstr "" -#: js/musicutils.js:789 -#: js/synthutils.js:96 -#.TRANS: musical instrument -msgid "celeste" +#: js/turtleactions/IntervalsActions.js:113 +msgid "seven" msgstr "" -#: js/musicutils.js:791 -#: js/musicutils.js:1123 -#: js/musicutils.js:1131 -#: js/temperament.js:650 -#.TRANS: musical temperament -msgid "equal" +#: js/turtleactions/IntervalsActions.js:113 +msgid "eight" msgstr "" -#: js/musicutils.js:793 -#: js/musicutils.js:1125 -#: js/musicutils.js:1133 -#.TRANS: musical temperament -msgid "Pythagorean" +#: js/turtleactions/IntervalsActions.js:113 +msgid "nine" msgstr "" -#: js/musicutils.js:795 -#: js/musicutils.js:1124 -#: js/musicutils.js:1132 -#.TRANS: musical temperament -msgid "just intonation" +#: js/turtleactions/IntervalsActions.js:119 +msgid "a" msgstr "" -#: js/musicutils.js:797 -#: js/musicutils.js:1126 -#: js/musicutils.js:1127 -#: js/musicutils.js:1134 -#: js/musicutils.js:1135 -#.TRANS: musical temperament -msgid "meantone" +#: js/turtleactions/IntervalsActions.js:120 +msgid "below" msgstr "" -#: js/musicutils.js:814 -msgid "major 7th" +#: js/turtleactions/IntervalsActions.js:124 +msgid "above" msgstr "" -#: js/musicutils.js:815 -msgid "minor 7th" +#: js/turtleactions/IntervalsActions.js:131 +msgid "plus" msgstr "" -#: js/musicutils.js:816 -msgid "dominant 7th" +#: js/turtleactions/IntervalsActions.js:139 +msgid " below" msgstr "" -#: js/musicutils.js:817 -msgid "minor-major 7th" +#: js/turtleactions/IntervalsActions.js:257 +msgid "Adding missing pitch number 0." msgstr "" -#: js/musicutils.js:818 -msgid "fully-diminished 7th" +#: js/turtleactions/IntervalsActions.js:265 +msgid "Ignoring pitch numbers less than zero or greater than eleven." msgstr "" -#: js/musicutils.js:819 -msgid "half-diminished 7th" +#: js/turtleactions/IntervalsActions.js:271 +msgid "Ignoring duplicate pitch numbers." msgstr "" -#: js/musicutils.js:4379 -#: js/musicutils.js:4416 -msgid "current" +#: js/turtleactions/ToneActions.js:134 +msgid "Vibrato intensity must be between 1 and 100." msgstr "" -#: js/musicutils.js:4382 -#: js/musicutils.js:4407 -msgid "next" +#: js/turtleactions/ToneActions.js:139 +msgid "Vibrato rate must be greater than 0." msgstr "" -#: js/musicutils.js:4385 -#: js/musicutils.js:4412 -msgid "previous" +#: js/turtleactions/ToneActions.js:192 +#: js/turtleactions/ToneActions.js:265 +#.TRANS: Depth is the intesity of the tremolo or chorus effect. +msgid "Depth is out of range." msgstr "" -#: js/synthutils.js:104 -#.TRANS: simple monotone synthesizer -msgid "simple-2" +#: js/turtleactions/ToneActions.js:301 +msgid "Distortion must be from 0 to 100." msgstr "" -#: js/synthutils.js:106 -#.TRANS: simple monotone synthesizer -msgid "simple-3" +#: js/turtleactions/ToneActions.js:332 +#.TRANS: partials components in a harmonic series +msgid "Partial must be greater than or equal to 0." msgstr "" -#: js/synthutils.js:108 -#.TRANS: simple monotone synthesizer -msgid "simple-4" +#: js/turtleactions/ToneActions.js:378 +#: js/turtleactions/ToneActions.js:417 +#: js/turtleactions/ToneActions.js:456 +#: js/widgets/timbre.js:782 +msgid "Unable to use synth due to existing oscillator" msgstr "" -#: js/synthutils.js:141 -#.TRANS: musical instrument -msgid "taiko" +#: js/turtleactions/ToneActions.js:388 +#: js/turtleactions/ToneActions.js:427 +msgid "The input cannot be negative." msgstr "" -#: js/modewidget.js:86 -#: js/modewidget.js:88 -#: js/modewidget.js:642 -#: js/modewidget.js:644 -#: js/modewidget.js:712 -#: js/modewidget.js:714 -#: js/temperament.js:2078 -#: js/rhythmruler.js:189 -#: js/rhythmruler.js:1410 -#: js/rhythmruler.js:1412 -#: js/rhythmruler.js:1435 -#: js/rhythmruler.js:1437 -#: js/meterwidget.js:89 -#: js/meterwidget.js:91 +#: js/widgets/modewidget.js:86 +#: js/widgets/modewidget.js:88 +#: js/widgets/modewidget.js:642 +#: js/widgets/modewidget.js:644 +#: js/widgets/modewidget.js:712 +#: js/widgets/modewidget.js:714 +#: js/widgets/meterwidget.js:194 +#: js/widgets/meterwidget.js:196 +#: js/widgets/temperament.js:2236 +#: js/widgets/rhythmruler.js:457 +#: js/widgets/rhythmruler.js:1790 +#: js/widgets/rhythmruler.js:1792 +#: js/widgets/rhythmruler.js:1816 +#: js/widgets/rhythmruler.js:1818 msgid "Play all" msgstr "" -#: js/modewidget.js:115 -#: js/pitchstaircase.js:641 -#: js/phrasemaker.js:339 -#: js/pitchdrummatrix.js:94 -#: js/pitchslider.js:125 -#: js/temperament.js:2083 -#: js/musickeyboard.js:530 -#: js/timbre.js:756 -#: js/meterwidget.js:124 -#: js/arpeggio.js:103 +#: js/widgets/modewidget.js:115 +#: js/widgets/meterwidget.js:229 +#: js/widgets/pitchdrummatrix.js:166 +#: js/widgets/pitchslider.js:125 +#: js/widgets/pitchstaircase.js:641 +#: js/widgets/temperament.js:2244 +#: js/widgets/timbre.js:756 +#: js/widgets/arpeggio.js:103 +#: js/widgets/musickeyboard.js:688 +#: js/widgets/phrasemaker.js:550 msgid "Save" msgstr "" -#: js/modewidget.js:121 -#: js/pitchstaircase.js:686 -#: js/phrasemaker.js:356 -#: js/pitchdrummatrix.js:109 -#: js/musickeyboard.js:534 -#: js/rhythmruler.js:269 -#: js/arpeggio.js:118 +#: js/widgets/modewidget.js:121 +#: js/widgets/pitchdrummatrix.js:181 +#: js/widgets/pitchstaircase.js:686 +#: js/widgets/arpeggio.js:118 +#: js/widgets/musickeyboard.js:696 +#: js/widgets/phrasemaker.js:567 +#: js/widgets/rhythmruler.js:601 #.TRANS: clear all subdivisions from the ruler. msgid "Clear" msgstr "" -#: js/modewidget.js:127 +#: js/widgets/modewidget.js:127 msgid "Rotate counter clockwise" msgstr "" -#: js/modewidget.js:133 +#: js/widgets/modewidget.js:133 msgid "Rotate clockwise" msgstr "" -#: js/modewidget.js:139 +#: js/widgets/modewidget.js:139 msgid "Invert" msgstr "" -#: js/modewidget.js:145 -#: js/pitchstaircase.js:678 -#: js/rhythmruler.js:258 -#: js/timbre.js:963 +#: js/widgets/modewidget.js:145 +#: js/widgets/pitchstaircase.js:678 +#: js/widgets/timbre.js:963 +#: js/widgets/rhythmruler.js:578 msgid "Undo" msgstr "" -#: js/modewidget.js:163 +#: js/widgets/modewidget.js:163 #.TRANS: A circle of notes represents the musical mode. msgid "Click in the circle to select notes for the mode." msgstr "" -#: js/modewidget.js:1017 -#: js/pitchstaircase.js:580 -#: js/phrasemaker.js:4855 -#: js/temperament.js:1754 -#: js/rhythmruler.js:1865 -#: js/rhythmruler.js:2081 -#: js/tempo.js:414 +#: js/widgets/modewidget.js:1017 +#: js/widgets/pitchstaircase.js:580 +#: js/widgets/temperament.js:1929 +#: js/widgets/tempo.js:414 +#: js/widgets/phrasemaker.js:5356 +#: js/widgets/rhythmruler.js:2254 +#: js/widgets/rhythmruler.js:2472 msgid "New action block generated!" msgstr "" -#: js/oscilloscope.js:79 -msgid "Zoom In" -msgstr "" - -#: js/oscilloscope.js:88 -msgid "Zoom Out" -msgstr "" - -#: js/pitchstaircase.js:624 -msgid "Play chord" -msgstr "" - -#: js/pitchstaircase.js:632 -msgid "Play scale" +#: js/widgets/meterwidget.js:275 +msgid "Reset" msgstr "" -#: js/pitchstaircase.js:696 -msgid "Click on a note to create a new step." +#: js/widgets/meterwidget.js:301 +msgid "Click in the circle to select strong beats for the meter." msgstr "" -#: js/phrasemaker.js:363 -msgid "Export" +#: js/widgets/oscilloscope.js:79 +msgid "Zoom In" msgstr "" -#: js/phrasemaker.js:370 -msgid "Sort" +#: js/widgets/oscilloscope.js:88 +msgid "Zoom Out" msgstr "" -#: js/phrasemaker.js:373 -#: js/musickeyboard.js:559 -msgid "Add note" +#: js/widgets/pitchdrummatrix.js:356 +#: js/widgets/pitchdrummatrix.js:752 +msgid "Click in the grid to map notes to drums." msgstr "" -#: js/phrasemaker.js:764 -msgid "Click on the table to add notes." +#: js/widgets/pitchslider.js:103 +msgid "Move up" msgstr "" -#: js/phrasemaker.js:2414 -#: js/phrasemaker.js:2543 -msgid "tuplet value" +#: js/widgets/pitchslider.js:114 +msgid "Move down" msgstr "" -#: js/pitchdrummatrix.js:270 -#: js/pitchdrummatrix.js:639 -msgid "Click in the grid to map notes to drums." +#: js/widgets/pitchslider.js:136 +msgid "Click on the slider to create a note block." msgstr "" -#: js/pitchslider.js:103 -msgid "Move up" +#: js/widgets/pitchstaircase.js:624 +msgid "Play chord" msgstr "" -#: js/pitchslider.js:114 -msgid "Move down" +#: js/widgets/pitchstaircase.js:632 +msgid "Play scale" msgstr "" -#: js/pitchslider.js:136 -msgid "Click on the slider to create a note block." +#: js/widgets/pitchstaircase.js:696 +msgid "Click on a note to create a new step." msgstr "" -#: js/temperament.js:215 +#: js/widgets/temperament.js:321 msgid "back to 2:1 octave space" msgstr "" -#: js/temperament.js:323 +#: js/widgets/temperament.js:447 msgid "edit" msgstr "" -#: js/temperament.js:330 -#: js/temperament.js:332 -#: js/temperament.js:1336 -#: js/temperament.js:1338 +#: js/widgets/temperament.js:454 +#: js/widgets/temperament.js:456 +#: js/widgets/temperament.js:1493 +#: js/widgets/temperament.js:1495 msgid "close" msgstr "" -#: js/temperament.js:423 -#: js/temperament.js:736 -#: js/temperament.js:743 -#: js/temperament.js:845 -#: js/temperament.js:935 -#: js/temperament.js:942 -#: js/temperament.js:1015 -#: js/temperament.js:1284 -#: js/temperament.js:1354 -#: js/temperament.js:1430 +#: js/widgets/temperament.js:552 +#: js/widgets/temperament.js:877 +#: js/widgets/temperament.js:884 +#: js/widgets/temperament.js:986 +#: js/widgets/temperament.js:1080 +#: js/widgets/temperament.js:1087 +#: js/widgets/temperament.js:1160 +#: js/widgets/temperament.js:1433 +#: js/widgets/temperament.js:1511 +#: js/widgets/temperament.js:1596 msgid "done" msgstr "" -#: js/temperament.js:477 -#: js/temperament.js:482 -#: js/temperament.js:918 +#: js/widgets/temperament.js:610 +#: js/widgets/temperament.js:615 +#: js/widgets/temperament.js:1063 msgid "ratio" msgstr "" -#: js/temperament.js:483 +#: js/widgets/temperament.js:616 msgid "interval" msgstr "" -#: js/temperament.js:611 +#: js/widgets/temperament.js:744 msgid "non scalar" msgstr "" -#: js/temperament.js:650 +#: js/widgets/temperament.js:787 msgid "ratios" msgstr "" -#: js/temperament.js:650 +#: js/widgets/temperament.js:787 msgid "arbitrary" msgstr "" -#: js/temperament.js:719 +#: js/widgets/temperament.js:860 msgid "number of divisions" msgstr "" -#: js/temperament.js:741 -#: js/temperament.js:858 -#: js/temperament.js:940 -#: js/temperament.js:1033 +#: js/widgets/temperament.js:882 +#: js/widgets/temperament.js:999 +#: js/widgets/temperament.js:1085 +#: js/widgets/temperament.js:1178 msgid "preview" msgstr "" -#: js/temperament.js:788 +#: js/widgets/temperament.js:929 msgid "The Number of divisions is too large." msgstr "" -#: js/temperament.js:921 +#: js/widgets/temperament.js:1066 msgid "recursion" msgstr "" -#: js/temperament.js:1450 +#: js/widgets/temperament.js:1616 msgid "The octave ratio has changed. This changes temperament significantly." msgstr "" -#: js/temperament.js:2087 +#: js/widgets/temperament.js:2248 msgid "Table" msgstr "" -#: js/temperament.js:2185 +#: js/widgets/temperament.js:2356 msgid "Add pitches" msgstr "" -#: js/musickeyboard.js:570 -msgid "Metronome" +#: js/widgets/tempo.js:78 +#: js/widgets/tempo.js:97 +#: js/widgets/tempo.js:99 +#: js/widgets/aiwidget.js:134 +#: js/widgets/aiwidget.js:136 +#: js/widgets/rhythmruler.js:681 +#: js/widgets/rhythmruler.js:683 +#: js/widgets/rhythmruler.js:1864 +#: js/widgets/rhythmruler.js:1866 +#: js/widgets/sampler.js:180 +#: js/widgets/sampler.js:182 +msgid "Pause" msgstr "" -#: js/musickeyboard.js:1296 -#: plugins/rodi.rtp:193 -msgid "duration" -msgstr "Duy trỳ" +#: js/widgets/tempo.js:113 +msgid "Save tempo" +msgstr "" -#: js/musickeyboard.js:2840 -msgid "New action blocks generated!" +#: js/widgets/tempo.js:144 +msgid "speed up" msgstr "" -#: js/musickeyboard.js:2841 -msgid "New action block generated" +#: js/widgets/tempo.js:150 +msgid "slow down" msgstr "" -#: js/musickeyboard.js:2984 -#: js/musickeyboard.js:2992 -msgid "MIDI device present." +#: js/widgets/tempo.js:194 +msgid "Adjust the tempo with the buttons." msgstr "" -#: js/musickeyboard.js:2995 -msgid "No MIDI device found." +#: js/widgets/tempo.js:261 +msgid "Please enter a number between 30 and 1000" msgstr "" -#: js/musickeyboard.js:3000 -msgid "Failed to get MIDI access in browser." +#: js/widgets/tempo.js:268 +#: js/widgets/tempo.js:271 +msgid "The beats per minute must be between 30 and 1000." msgstr "" -#: js/rhythmruler.js:202 -msgid "Save rhythms" +#: js/widgets/tempo.js:287 +msgid "The beats per minute must be below 1000." msgstr "" -#: js/rhythmruler.js:222 -msgid "Save drum machine" +#: js/widgets/tempo.js:303 +msgid "The beats per minute must be above 30" msgstr "" -#: js/rhythmruler.js:263 -#.TRANS: user can tap out a rhythm by clicking on a ruler. -msgid "Tap a rhythm" +#: js/widgets/timbre.js:766 +msgid "Synthesizer" msgstr "" -#: js/rhythmruler.js:342 -#: js/rhythmruler.js:344 -#: js/rhythmruler.js:1481 -#: js/rhythmruler.js:1483 -#: js/sampler.js:110 -#: js/sampler.js:112 -#: js/tempo.js:78 -#: js/tempo.js:97 -#: js/tempo.js:99 -msgid "Pause" +#: js/widgets/timbre.js:789 +msgid "Oscillator" msgstr "" -#: js/rhythmruler.js:478 -msgid "Click on the ruler to divide it." +#: js/widgets/timbre.js:840 +msgid "Envelope" msgstr "" -#: js/rhythmruler.js:603 -#: js/rhythmruler.js:605 -#: js/rhythmruler.js:804 -#: js/rhythmruler.js:806 -#: js/rhythmruler.js:1386 -#: js/rhythmruler.js:1388 -msgid "tap a rhythm" +#: js/widgets/timbre.js:886 +#: planet/js/GlobalTag.js:50 +#.TRANS: On the Planet, we use labels to tag projects. +msgid "Effects" msgstr "" -#: js/rhythmruler.js:1084 -msgid "Maximum value of 256 has been exceeded." +#: js/widgets/timbre.js:904 +msgid "Filter" msgstr "" -#: js/sampler.js:137 -msgid "Warning: Sample is bigger than 1MB." +#: js/widgets/timbre.js:946 +msgid "Add filter" msgstr "" -#: js/sampler.js:142 -msgid "Upload failed: Sample is not a .wav file." +#: js/widgets/timbre.js:987 +msgid "Click on buttons to open the timbre design tools." msgstr "" -#: js/sampler.js:164 -msgid "A new sample block was generated." +#: js/widgets/timbre.js:1273 +msgid "harmonicity" msgstr "" -#: js/sampler.js:255 -msgid "Upload sample" +#: js/widgets/timbre.js:1340 +#: js/widgets/timbre.js:1406 +msgid "modulation index" msgstr "" -#: js/sampler.js:306 -msgid "Save sample" +#: js/widgets/timbre.js:1484 +msgid "vibrato amount" msgstr "" -#: js/sampler.js:697 -#.TRANS: The reference tone is a sound used for comparison. -msgid "reference tone" +#: js/widgets/timbre.js:1919 +msgid "Filter already present." msgstr "" -#: js/tempo.js:113 -msgid "Save tempo" +#: js/widgets/timbre.js:2322 +msgid "delay (MS)" msgstr "" -#: js/tempo.js:144 -msgid "speed up" +#: js/widgets/timbre.js:2507 +msgid "distortion amount" msgstr "" -#: js/tempo.js:150 -msgid "slow down" +#: js/widgets/aiwidget.js:180 +#: js/widgets/sampler.js:227 +msgid "Warning: Sample is bigger than 1MB." msgstr "" -#: js/tempo.js:194 -msgid "Adjust the tempo with the buttons." +#: js/widgets/aiwidget.js:539 +msgid "New start block generated" msgstr "" -#: js/tempo.js:261 -msgid "Please enter a number between 30 and 1000" +#: js/widgets/aiwidget.js:541 +msgid "MIDI loading. This may take some time depending upon the number of notes in the track" msgstr "" -#: js/tempo.js:268 -#: js/tempo.js:271 -msgid "The beats per minute must be between 30 and 1000." +#: js/widgets/aiwidget.js:551 +#: js/widgets/sampler.js:254 +msgid "Upload failed: Sample is not a .wav file." msgstr "" -#: js/tempo.js:287 -msgid "The beats per minute must be below 1000." +#: js/widgets/aiwidget.js:679 +#: js/widgets/sampler.js:432 +msgid "Save sample" msgstr "" -#: js/tempo.js:303 -msgid "The beats per minute must be above 30" +#: js/widgets/aiwidget.js:701 +msgid "AI Music" msgstr "" -#: js/timbre.js:766 -msgid "Synthesizer" +#: js/widgets/arpeggio.js:239 +msgid "Click in the grid to add steps to the arpeggio." msgstr "" -#: js/timbre.js:789 -msgid "Oscillator" +#: js/widgets/help.js:95 +#: js/widgets/help.js:125 +#: js/widgets/help.js:146 +#: js/widgets/help.js:158 +#: js/widgets/help.js:376 +#: js/widgets/help.js:391 +msgid "Take a tour" msgstr "" -#: js/timbre.js:840 -msgid "Envelope" +#: js/widgets/musickeyboard.js:725 +#: js/widgets/phrasemaker.js:584 +msgid "Add note" msgstr "" -#: js/timbre.js:886 -#: js/GlobalTag.js:50 -#.TRANS: On the Planet, we use labels to tag projects. -msgid "Effects" +#: js/widgets/musickeyboard.js:744 +msgid "Metronome" +msgstr "" + +#: js/widgets/musickeyboard.js:1549 +#: plugins/rodi.rtp:193 +msgid "duration" +msgstr "Duy trỳ" + +#: js/widgets/musickeyboard.js:3179 +msgid "New action blocks generated" +msgstr "" + +#: js/widgets/musickeyboard.js:3180 +msgid "New action block generated" msgstr "" -#: js/timbre.js:904 -msgid "Filter" +#: js/widgets/musickeyboard.js:3365 +#: js/widgets/musickeyboard.js:3373 +msgid "MIDI device present." msgstr "" -#: js/timbre.js:946 -msgid "Add filter" +#: js/widgets/musickeyboard.js:3376 +msgid "No MIDI device found." msgstr "" -#: js/timbre.js:987 -msgid "Click on buttons to open the timbre design tools." +#: js/widgets/musickeyboard.js:3386 +msgid "Failed to get MIDI access in browser." msgstr "" -#: js/timbre.js:1273 -msgid "harmonicity" +#: js/widgets/phrasemaker.js:574 +msgid "Export" msgstr "" -#: js/timbre.js:1340 -#: js/timbre.js:1406 -msgid "modulation index" +#: js/widgets/phrasemaker.js:581 +msgid "Sort" msgstr "" -#: js/timbre.js:1484 -msgid "vibrato amount" +#: js/widgets/phrasemaker.js:975 +msgid "Click on the table to add notes." msgstr "" -#: js/timbre.js:1919 -msgid "Filter already present." +#: js/widgets/phrasemaker.js:2677 +#: js/widgets/phrasemaker.js:2819 +msgid "tuplet value" msgstr "" -#: js/timbre.js:2322 -msgid "delay (MS)" +#: js/widgets/rhythmruler.js:486 +msgid "Save rhythms" msgstr "" -#: js/timbre.js:2507 -msgid "distortion amount" +#: js/widgets/rhythmruler.js:512 +msgid "Save drum machine" msgstr "" -#: js/meterwidget.js:170 -msgid "Reset" +#: js/widgets/rhythmruler.js:589 +#.TRANS: user can tap out a rhythm by clicking on a ruler. +msgid "Tap a rhythm" msgstr "" -#: js/meterwidget.js:196 -msgid "Click in the circle to select strong beats for the meter." +#: js/widgets/rhythmruler.js:817 +msgid "Click on the ruler to divide it." msgstr "" -#: js/arpeggio.js:239 -msgid "Click in the grid to add steps to the arpeggio." +#: js/widgets/rhythmruler.js:950 +#: js/widgets/rhythmruler.js:952 +#: js/widgets/rhythmruler.js:1152 +#: js/widgets/rhythmruler.js:1154 +#: js/widgets/rhythmruler.js:1765 +#: js/widgets/rhythmruler.js:1767 +msgid "tap a rhythm" msgstr "" -#: js/ProjectStorage.js:243 -msgid "anonymous" +#: js/widgets/rhythmruler.js:1459 +msgid "Maximum value of 256 has been exceeded." msgstr "" -#: js/GlobalCard.js:68 -msgid "Share" +#: js/widgets/sampler.js:237 +msgid "Recording started..." msgstr "" -#: js/GlobalCard.js:74 -msgid "Flags" +#: js/widgets/sampler.js:245 +msgid "Recording complete..." msgstr "" -#: js/LocalCard.js:36 -msgid "View published project" +#: js/widgets/sampler.js:283 +msgid "A new sample block was generated." msgstr "" -#: js/LocalCard.js:42 -msgid "Publish project" +#: js/widgets/sampler.js:378 +msgid "Upload sample" msgstr "" -#: js/LocalCard.js:51 -msgid "Edit project" +#: js/widgets/sampler.js:399 +msgid "Warning: Your sample cannot be loaded because it is >1MB." msgstr "" -#: js/LocalCard.js:52 -msgid "Delete project" +#: js/widgets/sampler.js:448 +msgid "Toggle Mic" msgstr "" -#: js/LocalCard.js:53 -msgid "Download project" +#: js/widgets/sampler.js:458 +msgid "Playback" msgstr "" -#: js/LocalCard.js:55 -msgid "Duplicate project" +#: js/widgets/sampler.js:979 +#.TRANS: The reference tone is a sound used for comparison. +msgid "reference tone" msgstr "" -#: js/GlobalTag.js:28 +#: planet/js/GlobalTag.js:28 #.TRANS: On the Planet, we use labels to tag projects. msgid "All Projects" msgstr "" -#: js/GlobalTag.js:30 -#: js/StringHelper.js:37 +#: planet/js/GlobalTag.js:30 +#: planet/js/StringHelper.js:37 #.TRANS: On the Planet, we use labels to tag projects. msgid "My Projects" msgstr "" -#: js/GlobalTag.js:32 +#: planet/js/GlobalTag.js:32 #.TRANS: On the Planet, we use labels to tag projects. msgid "Examples" msgstr "" -#: js/GlobalTag.js:34 +#: planet/js/GlobalTag.js:34 #.TRANS: On the Planet, we use labels to tag projects. msgid "Music" msgstr "" -#: js/GlobalTag.js:36 +#: planet/js/GlobalTag.js:36 #.TRANS: On the Planet, we use labels to tag projects. msgid "Art" msgstr "" -#: js/GlobalTag.js:38 +#: planet/js/GlobalTag.js:38 #.TRANS: On the Planet, we use labels to tag projects. msgid "Math" msgstr "" -#: js/GlobalTag.js:40 +#: planet/js/GlobalTag.js:40 #.TRANS: On the Planet, we use labels to tag projects. msgid "Interactive" msgstr "" -#: js/GlobalTag.js:42 +#: planet/js/GlobalTag.js:42 #.TRANS: On the Planet, we use labels to tag projects. msgid "Design" msgstr "" -#: js/GlobalTag.js:44 +#: planet/js/GlobalTag.js:44 #.TRANS: On the Planet, we use labels to tag projects. msgid "Game" msgstr "" -#: js/GlobalTag.js:46 +#: planet/js/GlobalTag.js:46 #.TRANS: On the Planet, we use labels to tag projects. msgid "Media" msgstr "" -#: js/GlobalTag.js:48 +#: planet/js/GlobalTag.js:48 #.TRANS: On the Planet, we use labels to tag projects. msgid "Sensors" msgstr "" -#: js/GlobalTag.js:52 +#: planet/js/GlobalTag.js:52 #.TRANS: On the Planet, we use labels to tag projects. msgid "Code Snippet" msgstr "" -#: js/helper.js:149 -#: js/StringHelper.js:49 -msgid "Show more tags" +#: planet/js/LocalCard.js:36 +msgid "View published project" msgstr "" -#: js/helper.js:150 -msgid "Show fewer tags" +#: planet/js/LocalCard.js:42 +msgid "Publish project" +msgstr "" + +#: planet/js/LocalCard.js:51 +msgid "Edit project" +msgstr "" + +#: planet/js/LocalCard.js:52 +msgid "Delete project" +msgstr "" + +#: planet/js/LocalCard.js:53 +msgid "Download project" +msgstr "" + +#: planet/js/LocalCard.js:55 +msgid "Duplicate project" +msgstr "" + +#: planet/js/ProjectStorage.js:243 +msgid "anonymous" +msgstr "" + +#: planet/js/SaveInterface.js:34 +msgid "Open in Music Blocks" +msgstr "" + +#: planet/js/SaveInterface.js:35 +msgid "Open in Turtle Blocks" +msgstr "" + +#: planet/js/GlobalCard.js:68 +msgid "Share" +msgstr "" + +#: planet/js/GlobalCard.js:74 +msgid "Flags" +msgstr "" + +#: planet/js/GlobalPlanet.js:35 +msgid "No results found." +msgstr "" + +#: planet/js/GlobalPlanet.js:51 +msgid "Remix of" +msgstr "" + +#: planet/js/GlobalPlanet.js:509 +msgid "Cannot connect to server" msgstr "" -#: js/ProjectViewer.js:30 +#: planet/js/ProjectViewer.js:30 msgid "Error: Report could not be submitted. Try again later." msgstr "" -#: js/ProjectViewer.js:31 +#: planet/js/ProjectViewer.js:31 msgid "Thank you for reporting this project. A moderator will review the project shortly, to verify violation of the Sugar Labs Code of Conduct." msgstr "" -#: js/ProjectViewer.js:32 -#: js/StringHelper.js:62 -#: js/StringHelper.js:64 -#: js/StringHelper.js:68 +#: planet/js/ProjectViewer.js:32 +#: planet/js/StringHelper.js:62 +#: planet/js/StringHelper.js:64 +#: planet/js/StringHelper.js:68 msgid "Report Project" msgstr "" -#: js/ProjectViewer.js:33 -#: js/StringHelper.js:63 +#: planet/js/ProjectViewer.js:33 +#: planet/js/StringHelper.js:63 msgid "Project Reported" msgstr "" -#: js/ProjectViewer.js:34 +#: planet/js/ProjectViewer.js:34 msgid "Report description required" msgstr "" -#: js/ProjectViewer.js:35 +#: planet/js/ProjectViewer.js:35 msgid "Report description too long" msgstr "" -#: js/StringHelper.js:30 +#: planet/js/Publisher.js:30 +msgid "Feature unavailable - cannot connect to server. Reload Music Blocks to try again." +msgstr "" + +#: planet/js/Publisher.js:220 +#: planet/js/Publisher.js:237 +msgid "This field is required" +msgstr "" + +#: planet/js/Publisher.js:227 +msgid "Title too long" +msgstr "" + +#: planet/js/Publisher.js:244 +msgid "Description too long" +msgstr "" + +#: planet/js/Publisher.js:341 +msgid "Server Error" +msgstr "" + +#: planet/js/Publisher.js:341 +msgid "Try Again" +msgstr "" + +#: planet/js/StringHelper.js:30 msgid "Planet" msgstr "" -#: js/StringHelper.js:31 +#: planet/js/StringHelper.js:31 msgid "Close Planet" msgstr "" -#: js/StringHelper.js:32 +#: planet/js/StringHelper.js:32 msgid "Open project from file" msgstr "" -#: js/StringHelper.js:34 +#: planet/js/StringHelper.js:34 msgid "Local" msgstr "" -#: js/StringHelper.js:35 +#: planet/js/StringHelper.js:35 msgid "Global" msgstr "" -#: js/StringHelper.js:36 +#: planet/js/StringHelper.js:36 msgid "Search for a project" msgstr "" -#: js/StringHelper.js:38 +#: planet/js/StringHelper.js:38 msgid "Publish Project" msgstr "" -#: js/StringHelper.js:40 +#: planet/js/StringHelper.js:40 msgid "Tags (max 5)" msgstr "" -#: js/StringHelper.js:41 -#: js/StringHelper.js:61 +#: planet/js/StringHelper.js:41 +#: planet/js/StringHelper.js:61 msgid "Description" msgstr "" -#: js/StringHelper.js:42 -#: js/StringHelper.js:67 +#: planet/js/StringHelper.js:42 +#: planet/js/StringHelper.js:67 msgid "Submit" msgstr "" -#: js/StringHelper.js:43 -#: js/StringHelper.js:47 +#: planet/js/StringHelper.js:43 +#: planet/js/StringHelper.js:47 msgid "Cancel" msgstr "" -#: js/StringHelper.js:44 +#: planet/js/StringHelper.js:44 msgid "Delete \\"\\"?" msgstr "" -#: js/StringHelper.js:45 +#: planet/js/StringHelper.js:45 msgid "Permanently delete project \\"\\"?" msgstr "" -#: js/StringHelper.js:48 +#: planet/js/StringHelper.js:48 msgid "Explore Projects" msgstr "" -#: js/StringHelper.js:50 +#: planet/js/StringHelper.js:49 +#: planet/js/helper.js:149 +msgid "Show more tags" +msgstr "" + +#: planet/js/StringHelper.js:50 msgid "Most recent" msgstr "" -#: js/StringHelper.js:51 +#: planet/js/StringHelper.js:51 msgid "Most liked" msgstr "" -#: js/StringHelper.js:52 +#: planet/js/StringHelper.js:52 msgid "Most downloaded" msgstr "" -#: js/StringHelper.js:53 +#: planet/js/StringHelper.js:53 msgid "A-Z" msgstr "" -#: js/StringHelper.js:54 +#: planet/js/StringHelper.js:54 msgid "Sort by" msgstr "" -#: js/StringHelper.js:55 +#: planet/js/StringHelper.js:55 msgid "Load More Projects" msgstr "" -#: js/StringHelper.js:56 +#: planet/js/StringHelper.js:56 msgid "Last Updated" msgstr "" -#: js/StringHelper.js:57 +#: planet/js/StringHelper.js:57 msgid "Creation Date" msgstr "" -#: js/StringHelper.js:58 +#: planet/js/StringHelper.js:58 msgid "Number of Downloads:" msgstr "" -#: js/StringHelper.js:59 +#: planet/js/StringHelper.js:59 msgid "Number of Likes:" msgstr "" -#: js/StringHelper.js:60 +#: planet/js/StringHelper.js:60 msgid "Tags:" msgstr "" -#: js/StringHelper.js:65 +#: planet/js/StringHelper.js:65 msgid "Report projects which violate the Sugar Labs Code of Conduct." msgstr "" -#: js/StringHelper.js:66 +#: planet/js/StringHelper.js:66 msgid "Reason for reporting project" msgstr "" -#: js/StringHelper.js:70 +#: planet/js/StringHelper.js:70 msgid "Download as File" msgstr "" -#: js/GlobalPlanet.js:35 -msgid "No results found." -msgstr "" - -#: js/GlobalPlanet.js:51 -msgid "Remix of" -msgstr "" - -#: js/GlobalPlanet.js:509 -msgid "Cannot connect to server" -msgstr "" - -#: js/Publisher.js:30 -msgid "Feature unavailable - cannot connect to server. Reload Music Blocks to try again." -msgstr "" - -#: js/Publisher.js:218 -#: js/Publisher.js:235 -msgid "This field is required" -msgstr "" - -#: js/Publisher.js:225 -msgid "Title too long" +#: planet/js/helper.js:150 +msgid "Show fewer tags" msgstr "" -#: js/Publisher.js:242 -msgid "Description too long" +#: plugins/accelerometer.rtp:48 +msgid "motion x" msgstr "" -#: js/Publisher.js:339 -msgid "Server Error" +#: plugins/accelerometer.rtp:56 +msgid "motion y" msgstr "" -#: js/Publisher.js:339 -msgid "Try Again" +#: plugins/accelerometer.rtp:64 +msgid "motion z" msgstr "" -#: js/SaveInterface.js:34 -msgid "Open in Music Blocks" +#: plugins/facebook.rtp:27 +msgid "publish" msgstr "" -#: js/SaveInterface.js:35 -msgid "Open in Turtle Blocks" +#: plugins/maths.rtp:62 +msgid "power" msgstr "" -#: plugins/weather.rtp:68 -#: plugins/weather.rtp:97 -msgid "Days ahead must be in the range of -1 to 5." +#: plugins/maths.rtp:62 +msgid "base" msgstr "" -#: plugins/weather.rtp:122 -msgid "forecast" +#: plugins/maths.rtp:62 +msgid "exp" msgstr "" -#: plugins/weather.rtp:123 -#: plugins/weather.rtp:137 -#: plugins/weather.rtp:150 -msgid "city" +#: plugins/maths.rtp:99 +msgid "floor" msgstr "" -#: plugins/weather.rtp:124 -#: plugins/weather.rtp:138 -#: plugins/weather.rtp:151 -msgid "day" +#: plugins/maths.rtp:104 +msgid "ceiling" msgstr "" -#: plugins/weather.rtp:136 -msgid "high" +#: plugins/maths.rtp:109 +msgid "to degrees" msgstr "" -#: plugins/weather.rtp:149 -msgid "low" +#: plugins/maths.rtp:114 +msgid "to radians" msgstr "" #: plugins/nutrition.rtp:104 @@ -9458,45 +9867,6 @@ msgstr "" msgid "water" msgstr "" -#: plugins/maths.rtp:62 -#: plugins/examples.rtp:93 -msgid "power" -msgstr "" - -#: plugins/maths.rtp:62 -#: plugins/examples.rtp:93 -msgid "base" -msgstr "" - -#: plugins/maths.rtp:62 -#: plugins/examples.rtp:93 -msgid "exp" -msgstr "" - -#: plugins/maths.rtp:99 -#: plugins/examples.rtp:130 -msgid "floor" -msgstr "" - -#: plugins/maths.rtp:104 -#: plugins/examples.rtp:135 -msgid "ceiling" -msgstr "" - -#: plugins/maths.rtp:109 -#: plugins/examples.rtp:140 -msgid "to degrees" -msgstr "" - -#: plugins/maths.rtp:114 -#: plugins/examples.rtp:145 -msgid "to radians" -msgstr "" - -#: plugins/facebook.rtp:27 -msgid "publish" -msgstr "" - #: plugins/rodi.rtp:172 msgid "blink" msgstr "" @@ -9525,18 +9895,66 @@ msgstr "" msgid "move" msgstr "" -#: plugins/accelerometer.rtp:48 -msgid "motion x" +#: plugins/weather.rtp:68 +#: plugins/weather.rtp:97 +msgid "Days ahead must be in the range of -1 to 5." msgstr "" -#: plugins/accelerometer.rtp:56 -msgid "motion y" +#: plugins/weather.rtp:122 +msgid "forecast" msgstr "" -#: plugins/accelerometer.rtp:64 -msgid "motion z" +#: plugins/weather.rtp:123 +#: plugins/weather.rtp:137 +#: plugins/weather.rtp:150 +msgid "city" +msgstr "" + +#: plugins/weather.rtp:124 +#: plugins/weather.rtp:138 +#: plugins/weather.rtp:151 +msgid "day" +msgstr "" + +#: plugins/weather.rtp:136 +msgid "high" +msgstr "" + +#: plugins/weather.rtp:149 +msgid "low" msgstr "" +#: js/toolbar.js:70 + +#: js/toolbar.js:130 + +#: js/toolbar.js:194 + +#: js/toolbar.js:249 + +#~msgid "Toggle JavaScript Editor" +#~msgstr "" + +#: js/EnsembleBlocks.js:643 + +#~msgid "The Turrle pitch block returns the current pitch number being played by the specified turtle." +#~msgstr "" + +#: js/PitchActions.js:88 + +#~msgid "The Scalar Step Block must be used inside of a Note Block." +#~msgstr "" + +#: js/PitchActions.js:107 + +#~msgid "The Scalar Step Block must be preceded by a Pitch Block." +#~msgstr "" + +#: js/musickeyboard.js:2840 + +#~msgid "New action blocks generated!" +#~msgstr "" + #: js/toolbar.js:110 #: js/toolbar.js:204 @@ -9877,11 +10295,6 @@ msgstr "" #~msgid "The Time block returns the number of seconds that the program has been running." #~msgstr "" -#: js/help.js:95 - -#~msgid "Take a tour" -#~msgstr "" - #: js/GlobalCard.js:48 #~msgid "More Details" @@ -12780,11 +13193,6 @@ msgstr "" #~msgid "The save-stack button saves a stack onto a custom palette. It appears after a \"long press\" on a stack." #~msgstr "" -#: js/musicutils.js:254 - -#~msgid "Custom" -#~msgstr "" - #: js/basicblocks.js:4785 #~msgid "Rhythm" diff --git a/po/wa.po b/po/wa.po index 1c295f1873..abedffd73f 100644 --- a/po/wa.po +++ b/po/wa.po @@ -2129,276 +2129,131 @@ #: js/planetInterface.js:104 #: js/planetInterface.js:104 #: js/planetInterface.js:104 -msgid "project undefined" -msgstr "" - -#: js/logo.js:61 -msgid "Not a valid pitch name" -msgstr "" - -#: js/logo.js:507 -#: js/ProgramBlocks.js:258 -#: js/ProgramBlocks.js:427 -msgid "You must select a file." -msgstr "" - -#: js/logo.js:1184 -#: js/turtles.js:118 -#: js/turtle-painter.js:1192 -#: js/turtle-painter.js:1193 -#: js/block.js:1463 -#: js/lilypond.js:757 -#: js/lilypond.js:921 -#: js/lilypond.js:959 -#: js/ActionBlocks.js:1223 -#: js/ProgramBlocks.js:1267 -msgid "start" -msgstr "" - -#: js/logo.js:1696 -msgid "Playback is ready." -msgstr "" - -#: js/blocks.js:1011 -#: js/blocks.js:3427 -#: js/blocks.js:3428 -#: js/blocks.js:3653 -#: js/blocks.js:4012 -#: js/blocks.js:4205 -#: js/blocks.js:5343 -#: js/blocks.js:6474 -#: js/palette.js:527 -#: js/palette.js:536 -#: js/palette.js:545 -#: js/palette.js:554 -#: js/palette.js:1131 -#: js/palette.js:1142 -#: js/palette.js:1153 -#: js/palette.js:1164 -#: js/palette.js:1183 -#: js/rubrics.js:529 -#: js/macros.js:170 -#: js/macros.js:266 -#: js/macros.js:267 -#: js/macros.js:276 -#: js/macros.js:828 -#: js/block.js:1449 -#: js/block.js:4164 -#: js/block.js:4182 -#: js/block.js:4193 -#: js/turtledefs.js:128 -#: js/turtledefs.js:230 -#: js/ActionBlocks.js:254 -#: js/ActionBlocks.js:307 -#: js/ActionBlocks.js:617 -#: js/ActionBlocks.js:716 -#: js/ActionBlocks.js:961 -#: js/ActionBlocks.js:1049 -#: js/ActionBlocks.js:1322 -#: js/ActionBlocks.js:1325 -#: js/ActionBlocks.js:1337 -#: js/ActionBlocks.js:1404 -#: js/MeterBlocks.js:715 -#: js/MeterBlocks.js:768 -#: js/MeterBlocks.js:831 -#: js/MeterBlocks.js:892 -#: js/phrasemaker.js:4412 -#: js/musickeyboard.js:2647 -#: js/rhythmruler.js:1928 -#: js/rhythmruler.js:1935 -#: js/rhythmruler.js:2119 -#: js/rhythmruler.js:2126 -msgid "action" -msgstr "" - -#: js/blocks.js:1205 -#: js/blocks.js:3380 -#: js/blocks.js:3770 -#: js/blocks.js:3801 -#: js/blocks.js:3850 -#: js/blocks.js:3885 -#: js/blocks.js:6497 -#: js/palette.js:509 -#: js/palette.js:638 -#: js/palette.js:1107 -#: js/BoxesBlocks.js:282 -#: js/BoxesBlocks.js:285 -#: js/BoxesBlocks.js:405 -#: js/BoxesBlocks.js:594 -msgid "box" -msgstr "" - -#: js/blocks.js:1680 -msgid "Consider breaking this stack into parts." +#: js/SaveInterface.js:59 +#: js/SaveInterface.js:61 +#: js/SaveInterface.js:93 +msgid "Music Blocks Project" msgstr "" -#: js/blocks.js:2408 -#: js/palette.js:653 -#: js/MediaBlocks.js:602 -msgid "open file" +#: js/SaveInterface.js:63 +msgid "This project was created in Music Blocks" msgstr "" -#: js/blocks.js:2415 -#: js/blocks.js:2423 -#: js/activity.js:1875 -msgid "audio file" +#: js/SaveInterface.js:67 +msgid "Music Blocks is a Free/Libre Software application." msgstr "" -#: js/blocks.js:2536 -#: js/blocks.js:3147 -#: js/block.js:3543 -msgid "on2" +#: js/SaveInterface.js:69 +msgid "The source code can be accessed at" msgstr "" -#: js/blocks.js:2538 -#: js/blocks.js:3149 -#: js/block.js:3545 -msgid "off" +#: js/SaveInterface.js:72 +msgid "For more information, please consult the" msgstr "" -#: js/blocks.js:2543 -#: js/blocks.js:3154 -#: js/palette.js:618 -#: js/block.js:3466 -#: js/BooleanBlocks.js:77 -#: js/BooleanBlocks.js:167 -#: js/BooleanBlocks.js:251 -#: js/BooleanBlocks.js:335 -#: js/BooleanBlocks.js:433 -#: js/BooleanBlocks.js:539 -#: js/BooleanBlocks.js:640 -#: js/BooleanBlocks.js:741 -#: js/BooleanBlocks.js:847 -#: js/BooleanBlocks.js:948 -#: js/BooleanBlocks.js:1033 -#: js/SensorsBlocks.js:910 -msgid "true" +#: js/SaveInterface.js:76 +#: js/turtledefs.js:795 +msgid "Music Blocks Guide" msgstr "" -#: js/blocks.js:2545 -#: js/blocks.js:3156 -#: js/block.js:3466 -#: js/BooleanBlocks.js:79 -#: js/BooleanBlocks.js:169 -#: js/BooleanBlocks.js:253 -#: js/BooleanBlocks.js:337 -#: js/BooleanBlocks.js:435 -#: js/BooleanBlocks.js:541 -#: js/BooleanBlocks.js:642 -#: js/BooleanBlocks.js:743 -#: js/BooleanBlocks.js:849 -#: js/BooleanBlocks.js:950 -#: js/SensorsBlocks.js:912 -msgid "false" +#: js/SaveInterface.js:83 +msgid "Alternatively, open the file in Music Blocks using the Load project button." msgstr "" -#: js/blocks.js:3183 -#: js/palette.js:574 -#: js/MediaBlocks.js:892 -#: js/MediaBlocks.js:963 -msgid "text" +#: js/SaveInterface.js:85 +msgid "Project Code" msgstr "" -#: js/blocks.js:3379 -#: js/palette.js:641 -#: js/palette.js:642 -#: js/BoxesBlocks.js:514 -msgid "store in box" +#: js/SaveInterface.js:87 +msgid "This code stores data about the blocks in a project." msgstr "" -#: js/blocks.js:3384 -#: js/blocks.js:3824 -#: js/blocks.js:3859 -#: js/blocks.js:3894 -#: js/blocks.js:5773 -#: js/blocks.js:5794 -#: js/BoxesBlocks.js:772 -msgid "box1" +#: js/SaveInterface.js:89 +msgid "Show" msgstr "" -#: js/blocks.js:3386 -#: js/blocks.js:3826 -#: js/blocks.js:3861 -#: js/blocks.js:3896 -#: js/blocks.js:5775 -#: js/blocks.js:5796 -#: js/BoxesBlocks.js:663 -msgid "box2" +#: js/SaveInterface.js:91 +msgid "Hide" msgstr "" -#: js/blocks.js:4058 -#: js/palette.js:639 -#: js/palette.js:644 -#: js/palette.js:1043 -#: js/BoxesBlocks.js:591 -msgid "store in" +#: js/SaveInterface.js:131 +#: js/SaveInterface.js:204 +#: js/SaveInterface.js:262 +#: js/SaveInterface.js:389 +#: js/SaveInterface.js:417 +#: js/activity.js:4884 +#: planet/js/ProjectStorage.js:27 +#: planet/js/GlobalPlanet.js:467 +#: planet/js/GlobalPlanet.js:469 +#: planet/js/GlobalPlanet.js:495 +#.TRANS: default project title when saving as Lilypond +msgid "My Project" msgstr "" -#: js/blocks.js:4058 -#: js/EnsembleBlocks.js:391 -#: js/EnsembleBlocks.js:402 -#: js/MediaBlocks.js:746 -#: js/ProgramBlocks.js:390 -#: js/ProgramBlocks.js:495 -#: js/ProgramBlocks.js:658 -#: js/BoxesBlocks.js:595 -#: js/PitchBlocks.js:656 -#: js/PitchBlocks.js:932 -#: js/PitchBlocks.js:1827 -#: js/ToneBlocks.js:1025 -#: js/DictBlocks.js:215 -#: js/DictBlocks.js:289 -msgid "name" +#: js/SaveInterface.js:197 +#: planet/js/SaveInterface.js:58 +msgid "No description provided" msgstr "" -#: js/blocks.js:4058 -#: js/RhythmBlocks.js:1130 -#: js/BoxesBlocks.js:75 -#: js/BoxesBlocks.js:595 -#: js/HeapBlocks.js:544 -#: js/DictBlocks.js:289 -#: js/DictBlocks.js:430 -msgid "value" +#: js/SaveInterface.js:332 +msgid "Your recording is in progress." msgstr "" -#: js/blocks.js:4907 -msgid "There is no block selected." +#: js/SaveInterface.js:401 +#.TRANS: File name prompt for save as Lilypond +msgid "File name" msgstr "" -#: js/blocks.js:5002 -#: js/MediaBlocks.js:888 -msgid "show" +#: js/SaveInterface.js:403 +#: planet/js/StringHelper.js:39 +#.TRANS: Project title prompt for save as Lilypond +msgid "Project title" msgstr "" -#: js/blocks.js:5005 -#: js/MediaBlocks.js:803 -#.TRANS: Avatar is the image used to determine the appearance of the mouse. -msgid "avatar" +#: js/SaveInterface.js:405 +#.TRANS: Project title prompt for save as Lilypond +msgid "Project author" msgstr "" -#: js/blocks.js:5008 -#: js/ToneBlocks.js:1010 -#: js/sampler.js:693 -#.TRANS: The sound sample that the user uploads. -msgid "sample" +#: js/SaveInterface.js:407 +#.TRANS: MIDI prompt for save as Lilypond +msgid "Include MIDI output?" msgstr "" -#: js/turtles.js:874 -msgid "Grid" +#: js/SaveInterface.js:409 +#.TRANS: Guitar prompt for save as Lilypond +msgid "Include guitar tablature output?" msgstr "" -#: js/turtles.js:891 -#: js/turtledefs.js:626 -msgid "Clean" +#: js/SaveInterface.js:411 +#.TRANS: Lilypond is a scripting language for generating sheet music +msgid "Save as Lilypond" msgstr "" -#: js/turtles.js:912 -#: js/turtledefs.js:632 -msgid "Collapse" +#: js/SaveInterface.js:426 +#: js/blocks/EnsembleBlocks.js:75 +#: js/blocks/EnsembleBlocks.js:154 +#: js/blocks/EnsembleBlocks.js:216 +#: js/blocks/EnsembleBlocks.js:302 +#: js/blocks/EnsembleBlocks.js:348 +#: js/blocks/EnsembleBlocks.js:389 +#: js/blocks/EnsembleBlocks.js:441 +#: js/blocks/EnsembleBlocks.js:490 +#: js/blocks/EnsembleBlocks.js:536 +#: js/blocks/EnsembleBlocks.js:583 +#: js/blocks/EnsembleBlocks.js:637 +#: js/blocks/EnsembleBlocks.js:753 +#: js/blocks/EnsembleBlocks.js:840 +#: js/blocks/EnsembleBlocks.js:899 +#: js/blocks/EnsembleBlocks.js:942 +#: js/blocks/EnsembleBlocks.js:1212 +#: js/blocks/EnsembleBlocks.js:1280 +#.TRANS: default project author when saving as Lilypond +msgid "Mr. Mouse" msgstr "" -#: js/turtles.js:940 -msgid "Expand" +#: js/SaveInterface.js:573 +msgid "The Lilypond code is copied to clipboard. You can paste it here: " msgstr "" #: js/languagebox.js:198 @@ -2409,6933 +2264,7487 @@ msgstr "" msgid "Music Blocks is already set to this language." msgstr "" -#: js/piemenus.js:200 -#: js/musicutils.js:808 -#: js/musicutils.js:824 -#: js/phrasemaker.js:1672 -#: js/musickeyboard.js:2041 -#: js/sampler.js:544 -#.TRANS: double sharp is a music term related to pitch -msgid "double sharp" +#: js/planetInterface.js:131 +msgid "project undefined" msgstr "" -#: js/piemenus.js:201 -#: js/PitchBlocks.js:1510 -#: js/PitchActions.js:580 -#: js/musicutils.js:806 -#: js/musicutils.js:825 -#: js/phrasemaker.js:1673 -#: js/musickeyboard.js:2042 -#: js/sampler.js:545 -#.TRANS: sharp is a half-step up in pitch -#.TRANS: sharp is a music term related to pitch -msgid "sharp" +#: js/rubrics.js:523 +#: js/turtledefs.js:119 +#: js/turtledefs.js:221 +#: js/blocks/RhythmBlockPaletteBlocks.js:52 +#: js/blocks/RhythmBlockPaletteBlocks.js:234 +#: js/blocks/ProgramBlocks.js:745 +#: js/widgets/rhythmruler.js:2057 +#: js/widgets/rhythmruler.js:2064 +#: js/widgets/rhythmruler.js:2133 +#: js/widgets/rhythmruler.js:2140 +#: js/widgets/rhythmruler.js:2219 +#.TRANS: an arrangement of notes based on duration +msgid "rhythm" msgstr "" -#: js/piemenus.js:202 -#: js/musicutils.js:804 -#: js/musicutils.js:826 -#: js/phrasemaker.js:1674 -#: js/musickeyboard.js:2043 -#: js/sampler.js:546 -#.TRANS: natural is a music term related to pitch -msgid "natural" +#: js/rubrics.js:524 +#: js/turtledefs.js:121 +#: js/turtledefs.js:223 +#: js/block-verbose.js:2622 +#: js/block.js:2550 +#: js/blocks/IntervalsBlocks.js:63 +#: js/blocks/SensorsBlocks.js:178 +#: js/blocks/PitchBlocks.js:1839 +#: js/blocks/PitchBlocks.js:1853 +#: js/widgets/musickeyboard.js:1935 +#: js/widgets/phrasemaker.js:1036 +#.TRANS: pitch number +#.TRANS: pitch number +#.TRANS: we specify pitch in terms of a name and an octave. The name can be CDEFGAB or Do Re Mi Fa Sol La Ti. Octave is a number between 1 and 8. +msgid "pitch" msgstr "" -#: js/piemenus.js:203 -#: js/PitchBlocks.js:1469 -#: js/PitchActions.js:583 -#: js/musicutils.js:802 -#: js/musicutils.js:827 -#: js/phrasemaker.js:1675 -#: js/musickeyboard.js:2044 -#: js/sampler.js:547 -#.TRANS: flat is a half-step down in pitch -#.TRANS: flat is a music term related to pitch -msgid "flat" +#: js/rubrics.js:525 +#: js/turtledefs.js:123 +#: js/turtledefs.js:225 +msgid "tone" msgstr "" -#: js/piemenus.js:204 -#: js/musicutils.js:800 -#: js/musicutils.js:828 -#: js/phrasemaker.js:1676 -#: js/musickeyboard.js:2045 -#: js/sampler.js:548 -#.TRANS: double flat is a music term related to pitch -msgid "double flat" +#: js/rubrics.js:526 +#: js/lilypond.js:605 +#: js/lilypond.js:904 +#: js/lilypond.js:910 +#: js/lilypond.js:948 +msgid "mouse" msgstr "" -#: js/piemenus.js:2861 -#: js/PitchBlocks.js:1357 -#: js/musicutils.js:627 -#.TRANS: unison means the note is the same as the current note -#.TRANS: unison is a music term related to intervals -msgid "unison" +#: js/rubrics.js:527 +#: js/turtledefs.js:132 +#: js/turtledefs.js:234 +#: js/widgets/phrasemaker.js:1040 +msgid "pen" msgstr "" -#: js/piemenus.js:3015 -#: js/piemenus.js:3088 -#: js/musicutils.js:635 -#: js/musicutils.js:810 -#: js/musicutils.js:912 -#.TRANS: major is a music term related to intervals and mode -msgid "major" +#: js/rubrics.js:528 +#: js/turtledefs.js:133 +#: js/turtledefs.js:235 +#: js/blocks/NumberBlocks.js:981 +#: js/blocks/PitchBlocks.js:1717 +#: js/blocks/PitchBlocks.js:1758 +msgid "number" msgstr "" -#: js/piemenus.js:3015 -#: js/piemenus.js:3088 -#: js/musicutils.js:653 -#.TRANS: modal scale for music -msgid "ionian" +#: js/rubrics.js:529 +#: js/turtledefs.js:127 +#: js/turtledefs.js:229 +msgid "flow" msgstr "" -#: js/piemenus.js:3017 -#: js/piemenus.js:3092 -#: js/musicutils.js:633 -#: js/musicutils.js:811 -#: js/musicutils.js:909 -#.TRANS: minor is a music term related to intervals and mode -msgid "minor" +#: js/rubrics.js:530 +#: js/turtledefs.js:128 +#: js/turtledefs.js:230 +#: js/block-verbose.js:1609 +#: js/block-verbose.js:4559 +#: js/block-verbose.js:4577 +#: js/block-verbose.js:4588 +#: js/block.js:1573 +#: js/block.js:4483 +#: js/block.js:4501 +#: js/block.js:4512 +#: js/blocks.js:1018 +#: js/blocks.js:3491 +#: js/blocks.js:3492 +#: js/blocks.js:3717 +#: js/blocks.js:4076 +#: js/blocks.js:4269 +#: js/blocks.js:5432 +#: js/blocks.js:6563 +#: js/macros.js:170 +#: js/macros.js:266 +#: js/macros.js:267 +#: js/macros.js:276 +#: js/macros.js:828 +#: js/palette.js:527 +#: js/palette.js:536 +#: js/palette.js:545 +#: js/palette.js:554 +#: js/palette.js:1129 +#: js/palette.js:1140 +#: js/palette.js:1151 +#: js/palette.js:1162 +#: js/palette.js:1181 +#: js/blocks/ActionBlocks.js:254 +#: js/blocks/ActionBlocks.js:307 +#: js/blocks/ActionBlocks.js:617 +#: js/blocks/ActionBlocks.js:716 +#: js/blocks/ActionBlocks.js:961 +#: js/blocks/ActionBlocks.js:1049 +#: js/blocks/ActionBlocks.js:1322 +#: js/blocks/ActionBlocks.js:1325 +#: js/blocks/ActionBlocks.js:1337 +#: js/blocks/ActionBlocks.js:1404 +#: js/blocks/MeterBlocks.js:715 +#: js/blocks/MeterBlocks.js:768 +#: js/blocks/MeterBlocks.js:831 +#: js/blocks/MeterBlocks.js:892 +#: js/widgets/musickeyboard.js:2986 +#: js/widgets/phrasemaker.js:4913 +#: js/widgets/rhythmruler.js:2319 +#: js/widgets/rhythmruler.js:2326 +#: js/widgets/rhythmruler.js:2511 +#: js/widgets/rhythmruler.js:2518 +msgid "action" msgstr "" -#: js/piemenus.js:3017 -#: js/piemenus.js:3092 -#: js/musicutils.js:663 -#.TRANS: modal scale for music -msgid "aeolian" +#: js/rubrics.js:531 +#: js/turtledefs.js:136 +#: js/turtledefs.js:238 +msgid "sensors" msgstr "" -#: js/piemenus.js:3407 -msgid "Duplicate" +#: js/rubrics.js:532 +#: js/turtledefs.js:135 +#: js/turtledefs.js:237 +#: js/blocks/MediaBlocks.js:930 +msgid "media" msgstr "" -#: js/piemenus.js:3408 -#: js/turtledefs.js:534 -msgid "Extract" +#: js/rubrics.js:533 +msgid "mice" msgstr "" -#: js/piemenus.js:3409 -msgid "Move to trash" +#: js/toolbar.js:48 +#: js/toolbar.js:109 +msgid "About Music Blocks" msgstr "" -#: js/piemenus.js:3410 -#: js/timbre.js:968 -#: js/StringHelper.js:69 -msgid "Close" +#: js/toolbar.js:49 +#: js/toolbar.js:110 +#: js/toolbar.js:175 +#: js/toolbar.js:231 +#: js/turtledefs.js:445 +#: js/turtledefs.js:482 +#: js/activity.js:2660 +#: js/activity.js:2671 +#: js/activity.js:2902 +#: js/widgets/modewidget.js:77 +#: js/widgets/meterwidget.js:185 +#: js/widgets/pitchdrummatrix.js:147 +#: js/widgets/pitchdrummatrix.js:687 +#: js/widgets/pitchdrummatrix.js:689 +#: js/widgets/pitchdrummatrix.js:741 +#: js/widgets/pitchdrummatrix.js:743 +#: js/widgets/pitchdrummatrix.js:758 +#: js/widgets/pitchdrummatrix.js:760 +#: js/widgets/pitchdrummatrix.js:789 +#: js/widgets/pitchdrummatrix.js:791 +#: js/widgets/pitchstaircase.js:121 +#: js/widgets/temperament.js:610 +#: js/widgets/temperament.js:613 +#: js/widgets/temperament.js:673 +#: js/widgets/temperament.js:675 +#: js/widgets/temperament.js:2017 +#: js/widgets/temperament.js:2019 +#: js/widgets/tempo.js:84 +#: js/widgets/tempo.js:86 +#: js/widgets/timbre.js:432 +#: js/widgets/timbre.js:434 +#: js/widgets/timbre.js:465 +#: js/widgets/timbre.js:467 +#: js/widgets/timbre.js:746 +#: js/widgets/aiwidget.js:647 +#: js/widgets/aiwidget.js:654 +#: js/widgets/aiwidget.js:656 +#: js/widgets/arpeggio.js:90 +#: js/widgets/arpeggio.js:547 +#: js/widgets/arpeggio.js:549 +#: js/widgets/arpeggio.js:644 +#: js/widgets/arpeggio.js:646 +#: js/widgets/musickeyboard.js:676 +#: js/widgets/musickeyboard.js:872 +#: js/widgets/musickeyboard.js:874 +#: js/widgets/musickeyboard.js:953 +#: js/widgets/musickeyboard.js:955 +#: js/widgets/phrasemaker.js:513 +#: js/widgets/phrasemaker.js:523 +#: js/widgets/phrasemaker.js:525 +#: js/widgets/phrasemaker.js:4304 +#: js/widgets/phrasemaker.js:4528 +#: js/widgets/phrasemaker.js:4533 +#: js/widgets/phrasemaker.js:4535 +#: js/widgets/phrasemaker.js:4650 +#: js/widgets/rhythmruler.js:637 +#: js/widgets/rhythmruler.js:639 +#: js/widgets/rhythmruler.js:653 +#: js/widgets/rhythmruler.js:655 +#: js/widgets/sampler.js:162 +#: js/widgets/sampler.js:164 +#: js/widgets/sampler.js:363 +msgid "Play" msgstr "" -#: js/piemenus.js:3416 -msgid "Save stack" +#: js/toolbar.js:50 +#: js/toolbar.js:111 +#: js/toolbar.js:176 +#: js/toolbar.js:232 +#: js/turtledefs.js:451 +#: js/turtledefs.js:488 +#: js/activity.js:2679 +#: js/widgets/modewidget.js:99 +#: js/widgets/modewidget.js:101 +#: js/widgets/meterwidget.js:206 +#: js/widgets/meterwidget.js:208 +#: js/widgets/pitchdrummatrix.js:674 +#: js/widgets/pitchdrummatrix.js:676 +#: js/widgets/temperament.js:2002 +#: js/widgets/temperament.js:2004 +#: js/widgets/arpeggio.js:534 +#: js/widgets/arpeggio.js:536 +#: js/widgets/phrasemaker.js:534 +#: js/widgets/phrasemaker.js:536 +msgid "Stop" msgstr "" -#: js/piemenus.js:3420 -#: js/toolbar.js:60 -#: js/toolbar.js:120 -#: js/toolbar.js:185 -#: js/toolbar.js:240 -#: js/turtledefs.js:752 -msgid "Help" +#: js/toolbar.js:51 +#: js/toolbar.js:112 +#: js/toolbar.js:177 +#: js/toolbar.js:233 +#: js/turtledefs.js:498 +msgid "Record" msgstr "" -#: js/piemenus.js:3762 -msgid "You have chosen key " +#: js/toolbar.js:52 +#: js/toolbar.js:53 +msgid "Full screen" msgstr "" -#: js/piemenus.js:3766 -msgid " for your pitch preview." +#: js/toolbar.js:54 +#: js/toolbar.js:115 +#: js/toolbar.js:180 +#: js/toolbar.js:236 +#: js/turtledefs.js:504 +msgid "Toggle Fullscreen" +msgstr "" + +#: js/toolbar.js:55 +#: js/toolbar.js:116 +#: js/toolbar.js:181 +#: js/toolbar.js:237 +#: js/turtledefs.js:510 +#: planet/js/StringHelper.js:33 +msgid "New project" +msgstr "" + +#: js/toolbar.js:56 +#: js/toolbar.js:117 +#: js/toolbar.js:182 +#: js/toolbar.js:238 +#: js/turtledefs.js:516 +msgid "Load project from file" +msgstr "" + +#: js/toolbar.js:57 +#: js/toolbar.js:118 +#: js/toolbar.js:119 +#: js/toolbar.js:183 +#: js/toolbar.js:239 +#: js/turtledefs.js:541 +#: js/turtledefs.js:550 +#: js/turtledefs.js:571 +msgid "Save project" +msgstr "" + +#: js/toolbar.js:58 +#: js/toolbar.js:77 +#: js/toolbar.js:79 +#: js/toolbar.js:138 +#: js/toolbar.js:147 +#: js/toolbar.js:149 +#: js/toolbar.js:184 +#: js/toolbar.js:202 +#: js/toolbar.js:204 +#: js/toolbar.js:240 +#: js/toolbar.js:258 +#: js/toolbar.js:260 +msgid "Save project as HTML" +msgstr "" + +#: js/toolbar.js:59 +#: js/toolbar.js:120 +#: js/toolbar.js:185 +#: js/toolbar.js:241 +msgid "Find and share projects" +msgstr "" + +#: js/toolbar.js:60 +#: js/toolbar.js:121 +#: js/toolbar.js:186 +#: js/toolbar.js:242 +msgid "Offline. Sharing is unavailable" +msgstr "" + +#: js/toolbar.js:61 +#: js/toolbar.js:122 +#: js/toolbar.js:187 +#: js/toolbar.js:243 +msgid "Auxiliary menu" +msgstr "" + +#: js/toolbar.js:62 +#: js/toolbar.js:123 +#: js/toolbar.js:188 +#: js/toolbar.js:244 +#: js/turtledefs.js:752 +#: js/piemenus.js:3423 +msgid "Help" +msgstr "" + +#: js/toolbar.js:63 +#: js/toolbar.js:124 +#: js/toolbar.js:189 +#: js/toolbar.js:245 +msgid "Run slowly" +msgstr "" + +#: js/toolbar.js:64 +#: js/toolbar.js:125 +#: js/toolbar.js:190 +#: js/toolbar.js:246 +#: js/turtledefs.js:682 +msgid "Run step by step" +msgstr "" + +#: js/toolbar.js:65 +#: js/toolbar.js:126 +#: js/toolbar.js:191 +#: js/toolbar.js:247 +#: js/turtledefs.js:689 +msgid "Display statistics" +msgstr "" + +#: js/toolbar.js:66 +#: js/toolbar.js:127 +#: js/toolbar.js:192 +#: js/toolbar.js:248 +msgid "Load plugin" +msgstr "" + +#: js/toolbar.js:67 +#: js/toolbar.js:128 +#: js/toolbar.js:193 +#: js/toolbar.js:249 +#: js/turtledefs.js:696 +msgid "Delete plugin" +msgstr "" + +#: js/toolbar.js:68 +#: js/toolbar.js:129 +#: js/toolbar.js:194 +#: js/toolbar.js:250 +msgid "Enable horizontal scrolling" +msgstr "" + +#: js/toolbar.js:69 +#: js/toolbar.js:130 +#: js/toolbar.js:195 +#: js/toolbar.js:251 +msgid "Disable horizontal scrolling" +msgstr "" + +#: js/toolbar.js:70 +#: js/toolbar.js:131 +#: js/toolbar.js:196 +#: js/toolbar.js:252 +#: planet/js/LocalCard.js:54 +#: planet/js/StringHelper.js:71 +msgid "Merge with current project" +msgstr "" + +#: js/toolbar.js:71 +#: js/toolbar.js:132 +msgid "Set Pitch Preview" +msgstr "" + +#: js/toolbar.js:72 +#: js/toolbar.js:133 +#: js/toolbar.js:197 +#: js/toolbar.js:253 +msgid "JavaScript Editor" +msgstr "" + +#: js/toolbar.js:73 +#: js/toolbar.js:134 +#: js/toolbar.js:198 +#: js/toolbar.js:254 +#: js/turtledefs.js:724 +msgid "Restore" +msgstr "" + +#: js/toolbar.js:74 +#: js/toolbar.js:135 +#: js/toolbar.js:199 +#: js/toolbar.js:255 +msgid "Switch to beginner mode" +msgstr "" + +#: js/toolbar.js:75 +#: js/toolbar.js:136 +#: js/toolbar.js:200 +#: js/toolbar.js:256 +msgid "Switch to advanced mode" +msgstr "" + +#: js/toolbar.js:76 +#: js/toolbar.js:137 +#: js/toolbar.js:146 +#: js/toolbar.js:201 +#: js/toolbar.js:257 +#: js/turtledefs.js:738 +msgid "Select language" +msgstr "" + +#: js/toolbar.js:78 +#: js/toolbar.js:81 +#: js/toolbar.js:140 +#: js/turtledefs.js:579 +msgid "Save mouse artwork as PNG" +msgstr "" + +#: js/toolbar.js:80 +#: js/toolbar.js:139 +#: js/turtledefs.js:575 +msgid "Save mouse artwork as SVG" +msgstr "" + +#: js/toolbar.js:82 +#: js/toolbar.js:141 +#: js/turtledefs.js:583 +msgid "Save music as WAV" +msgstr "" + +#: js/toolbar.js:83 +#: js/toolbar.js:142 +#: js/turtledefs.js:587 +msgid "Save sheet music as ABC" +msgstr "" + +#: js/toolbar.js:84 +#: js/toolbar.js:143 +#: js/turtledefs.js:591 +msgid "Save sheet music as Lilypond" +msgstr "" + +#: js/toolbar.js:85 +msgid "Save sheet music as MusicXML" +msgstr "" + +#: js/toolbar.js:86 +#: js/toolbar.js:144 +#: js/toolbar.js:152 +#: js/toolbar.js:207 +#: js/toolbar.js:263 +#: js/turtledefs.js:562 +#: js/turtledefs.js:595 +msgid "Save block artwork as SVG" +msgstr "" + +#: js/toolbar.js:87 +#: js/toolbar.js:145 +#: js/toolbar.js:153 +#: js/toolbar.js:208 +#: js/toolbar.js:264 +#: js/turtles.js:911 +msgid "Confirm" +msgstr "" + +#: js/toolbar.js:88 +#: js/toolbar.js:154 +#: js/toolbar.js:209 +#: js/toolbar.js:265 +msgid "English (United States)" +msgstr "" + +#: js/toolbar.js:89 +#: js/toolbar.js:155 +#: js/toolbar.js:210 +#: js/toolbar.js:266 +msgid "English (United Kingdom)" +msgstr "" + +#: js/toolbar.js:90 +#: js/toolbar.js:156 +#: js/toolbar.js:211 +#: js/toolbar.js:267 +msgid "日本語" +msgstr "" + +#: js/toolbar.js:91 +msgid "한국어" +msgstr "" + +#: js/toolbar.js:92 +#: js/toolbar.js:158 +#: js/toolbar.js:213 +#: js/toolbar.js:269 +msgid "español" +msgstr "" + +#: js/toolbar.js:93 +#: js/toolbar.js:159 +#: js/toolbar.js:214 +#: js/toolbar.js:270 +msgid "português" +msgstr "" + +#: js/toolbar.js:94 +#: js/toolbar.js:160 +#: js/toolbar.js:215 +#: js/toolbar.js:271 +msgid "にほんご" +msgstr "" + +#: js/toolbar.js:95 +#: js/toolbar.js:161 +#: js/toolbar.js:216 +#: js/toolbar.js:272 +msgid "中文" +msgstr "" + +#: js/toolbar.js:96 +#: js/toolbar.js:162 +#: js/toolbar.js:217 +#: js/toolbar.js:273 +msgid "ภาษาไทย" +msgstr "" + +#: js/toolbar.js:97 +#: js/toolbar.js:163 +#: js/toolbar.js:218 +#: js/toolbar.js:274 +msgid "aymara" +msgstr "" + +#: js/toolbar.js:98 +#: js/toolbar.js:164 +#: js/toolbar.js:219 +#: js/toolbar.js:275 +msgid "quechua" +msgstr "" + +#: js/toolbar.js:99 +#: js/toolbar.js:165 +#: js/toolbar.js:220 +#: js/toolbar.js:276 +msgid "guarani" +msgstr "" + +#: js/toolbar.js:100 +#: js/toolbar.js:166 +#: js/toolbar.js:221 +#: js/toolbar.js:277 +msgid "हिंदी" +msgstr "" + +#: js/toolbar.js:101 +#: js/toolbar.js:168 +#: js/toolbar.js:222 +#: js/toolbar.js:279 +msgid "igbo" +msgstr "" + +#: js/toolbar.js:102 +#: js/toolbar.js:169 +#: js/toolbar.js:223 +#: js/toolbar.js:280 +msgid "عربى" +msgstr "" + +#: js/toolbar.js:103 +#: js/toolbar.js:167 +#: js/toolbar.js:224 +#: js/toolbar.js:278 +msgid "తెలుగు" +msgstr "" + +#: js/toolbar.js:104 +#: js/toolbar.js:170 +#: js/toolbar.js:225 +#: js/toolbar.js:281 +msgid "עִברִית" +msgstr "" + +#: js/toolbar.js:113 +#: js/toolbar.js:114 +#: js/toolbar.js:178 +#: js/toolbar.js:179 +#: js/toolbar.js:234 +#: js/toolbar.js:235 +msgid "Full Screen" +msgstr "" + +#: js/toolbar.js:148 +#: js/toolbar.js:151 +#: js/toolbar.js:203 +#: js/toolbar.js:206 +#: js/toolbar.js:259 +#: js/toolbar.js:262 +#: js/turtledefs.js:558 +msgid "Save turtle artwork as PNG" +msgstr "" + +#: js/toolbar.js:150 +#: js/toolbar.js:205 +#: js/toolbar.js:261 +#: js/turtledefs.js:554 +msgid "Save turtle artwork as SVG" +msgstr "" + +#: js/toolbar.js:157 +#: js/toolbar.js:212 +#: js/toolbar.js:268 +msgid "한국인" +msgstr "" + +#: js/toolbar.js:174 +#: js/toolbar.js:230 +msgid "About Turtle Blocks" +msgstr "" + +#: js/toolbar.js:446 +#: js/toolbar.js:457 +#: js/toolbar.js:497 +msgid "Turtle Wrap Off" +msgstr "" + +#: js/toolbar.js:466 +#: js/toolbar.js:506 +msgid "Turtle Wrap On" +msgstr "" + +#: js/turtle-painter.js:1192 +#: js/turtle-painter.js:1193 +#: js/turtles.js:118 +#: js/block-verbose.js:1623 +#: js/block.js:1587 +#: js/lilypond.js:749 +#: js/lilypond.js:913 +#: js/lilypond.js:951 +#: js/logo.js:1184 +#: js/blocks/ActionBlocks.js:1223 +#: js/blocks/ProgramBlocks.js:1267 +msgid "start" +msgstr "" + +#: js/turtledefs.js:40 +#.TRANS: put the URL to the guide here, e.g., https://github.com/sugarlabs/turtleblocksjs/tree/master/guide/README.md +msgid "guide url" +msgstr "" + +#: js/turtledefs.js:85 +#: js/turtledefs.js:437 +msgid "Turtle Blocks is a Logo-inspired turtle that draws colorful pictures with snap-together visual-programming blocks." +msgstr "" + +#: js/turtledefs.js:118 +#: js/turtledefs.js:220 +msgid "search" +msgstr "" + +#: js/turtledefs.js:120 +#: js/turtledefs.js:222 +#: js/blocks/MeterBlocks.js:1343 +#: js/blocks/WidgetBlocks.js:522 +#.TRANS: musical meter (time signature), e.g., 4:4 +msgid "meter" +msgstr "" + +#: js/turtledefs.js:122 +#: js/turtledefs.js:224 +msgid "intervals" +msgstr "" + +#: js/turtledefs.js:124 +#: js/turtledefs.js:226 +msgid "ornament" +msgstr "" + +#: js/turtledefs.js:125 +#: js/turtledefs.js:227 +#: js/blocks/VolumeBlocks.js:362 +#: js/blocks/VolumeBlocks.js:502 +#: js/blocks/VolumeBlocks.js:545 +msgid "volume" +msgstr "" + +#: js/turtledefs.js:126 +#: js/turtledefs.js:228 +#: js/block-verbose.js:1700 +#: js/block-verbose.js:2626 +#: js/block.js:1664 +#: js/block.js:2554 +#: js/lilypond.js:732 +#: js/lilypond.js:897 +#: js/lilypond.js:941 +#: js/palette.js:577 +#: js/blocks/RhythmBlocks.js:766 +#: js/blocks/DrumBlocks.js:477 +#: js/blocks/VolumeBlocks.js:502 +#: js/widgets/phrasemaker.js:1038 +msgid "drum" +msgstr "" + +#: js/turtledefs.js:129 +#: js/turtledefs.js:231 +msgid "boxes" +msgstr "" + +#: js/turtledefs.js:130 +#: js/turtledefs.js:232 +msgid "widgets" +msgstr "" + +#: js/turtledefs.js:131 +#: js/turtledefs.js:233 +#: js/widgets/phrasemaker.js:1039 +msgid "graphics" +msgstr "" + +#: js/turtledefs.js:134 +#: js/turtledefs.js:236 +msgid "boolean" +msgstr "" + +#: js/turtledefs.js:137 +#: js/turtledefs.js:239 +#: js/blocks/HeapBlocks.js:59 +#: js/widgets/status.js:147 +msgid "heap" +msgstr "" + +#: js/turtledefs.js:138 +#: js/turtledefs.js:240 +#: js/blocks/DictBlocks.js:142 +#: js/blocks/ProgramBlocks.js:495 +msgid "dictionary" +msgstr "" + +#: js/turtledefs.js:139 +#: js/turtledefs.js:241 +msgid "ensemble" +msgstr "" + +#: js/turtledefs.js:140 +#: js/turtledefs.js:242 +msgid "extras" +msgstr "" + +#: js/turtledefs.js:142 +#: js/turtledefs.js:244 +#.TRANS: program as in computer program +#.TRANS: program as in computer program +msgid "program" +msgstr "" + +#: js/turtledefs.js:143 +#: js/turtledefs.js:245 +msgid "my blocks" +msgstr "" + +#: js/turtledefs.js:185 +#: js/turtledefs.js:281 +msgid "artwork" +msgstr "" + +#: js/turtledefs.js:185 +#: js/turtledefs.js:281 +msgid "logic" +msgstr "" + +#: js/turtledefs.js:185 +#: js/turtledefs.js:281 +msgid "music" +msgstr "" + +#: js/turtledefs.js:187 +#: js/turtledefs.js:463 +msgid "Music Blocks is a collection of tools for exploring fundamental musical concepts in a fun way." +msgstr "" + +#: js/turtledefs.js:436 +msgid "Welcome to Turtle Blocks" +msgstr "" + +#: js/turtledefs.js:438 +#: js/turtledefs.js:465 +#: js/turtledefs.js:774 +#: js/turtledefs.js:805 +msgid "The current version is" +msgstr "" + +#: js/turtledefs.js:446 +#: js/turtledefs.js:483 +msgid "Click the run button to run the project in fast mode." +msgstr "" + +#: js/turtledefs.js:452 +msgid "Stop the turtle." +msgstr "" + +#: js/turtledefs.js:454 +#: js/turtledefs.js:491 +msgid "You can also type Alt-S to stop." +msgstr "" + +#: js/turtledefs.js:462 +#: js/widgets/help.js:333 +msgid "Welcome to Music Blocks" +msgstr "" + +#: js/turtledefs.js:472 +#: js/widgets/help.js:334 +msgid "Meet Mr. Mouse!" +msgstr "" + +#: js/turtledefs.js:473 +msgid "Mr Mouse is our Music Blocks conductor." +msgstr "" + +#: js/turtledefs.js:475 +msgid "Mr Mouse encourages you to explore Music Blocks." +msgstr "" + +#: js/turtledefs.js:477 +msgid "Let us start our tour!" +msgstr "" + +#: js/turtledefs.js:489 +msgid "Stop the music (and the mice)." +msgstr "" + +#: js/turtledefs.js:499 +msgid "Record your project as video." +msgstr "" + +#: js/turtledefs.js:505 +msgid "Toggle Fullscreen mode." +msgstr "" + +#: js/turtledefs.js:511 +msgid "Initialize a new project." +msgstr "" + +#: js/turtledefs.js:517 +msgid "You can also load projects from the file system." +msgstr "" + +#: js/turtledefs.js:522 +#: planet/js/StringHelper.js:46 +msgid "Delete" +msgstr "" + +#: js/turtledefs.js:523 +msgid "To delete a block, just right-click on it, then you will be able to see the delete option" +msgstr "" + +#: js/turtledefs.js:528 +#: js/activity.js:2649 +#: planet/js/LocalCard.js:31 +msgid "Copy" +msgstr "" + +#: js/turtledefs.js:529 +msgid "To copy a block, just right-click on it, then you will be able to see the copy option" +msgstr "" + +#: js/turtledefs.js:534 +#: js/piemenus.js:3411 +msgid "Extract" +msgstr "" + +#: js/turtledefs.js:535 +msgid "To extract a block, just right-click on it, then you will be able to see the extract option" +msgstr "" + +#: js/turtledefs.js:542 +#: js/turtledefs.js:552 +#: js/turtledefs.js:573 +msgid "Save your project to a file." +msgstr "" + +#: js/turtledefs.js:549 +#: js/turtledefs.js:570 +msgid "save" +msgstr "" + +#: js/turtledefs.js:556 +#: js/turtledefs.js:577 +msgid "Save graphics from your project to as SVG." +msgstr "" + +#: js/turtledefs.js:560 +#: js/turtledefs.js:581 +msgid "Save graphics from your project as PNG." +msgstr "" + +#: js/turtledefs.js:564 +#: js/turtledefs.js:597 +msgid "Save block artwork as an SVG file." +msgstr "" + +#: js/turtledefs.js:585 +msgid "Save audio from your project as WAV." +msgstr "" + +#: js/turtledefs.js:589 +msgid "Save your project to as an ABC file." +msgstr "" + +#: js/turtledefs.js:593 +msgid "Save your project to as a Lilypond file." +msgstr "" + +#: js/turtledefs.js:604 +msgid "Load samples from server" +msgstr "" + +#: js/turtledefs.js:605 +msgid "This button opens a viewer for loading example projects." +msgstr "" + +#: js/turtledefs.js:611 +msgid "Palette buttons" +msgstr "" + +#: js/turtledefs.js:612 +msgid "This toolbar contains the palette buttons including Rhythm Pitch Tone Action and more." +msgstr "" + +#: js/turtledefs.js:614 +msgid "Click to show the palettes of blocks and drag blocks from the palettes onto the canvas to use them." +msgstr "" + +#: js/turtledefs.js:620 +msgid "Cartesian/Polar" +msgstr "" + +#: js/turtledefs.js:621 +msgid "Show or hide a coordinate grid." +msgstr "" + +#: js/turtledefs.js:626 +#: js/turtles.js:902 +msgid "Clean" +msgstr "" + +#: js/turtledefs.js:627 +msgid "Clear the screen and return the mice to their initial positions." +msgstr "" + +#: js/turtledefs.js:632 +#: js/turtles.js:955 +msgid "Collapse" +msgstr "" + +#: js/turtledefs.js:633 +msgid "Collapse the graphics window." msgstr "" -#: js/palette.js:571 -msgid "grid" +#: js/turtledefs.js:638 +#: js/activity.js:5684 +msgid "Home" msgstr "" -#: js/palette.js:577 -#: js/block.js:1540 -#: js/block.js:2343 -#: js/turtledefs.js:126 -#: js/turtledefs.js:228 -#: js/lilypond.js:740 -#: js/lilypond.js:905 -#: js/lilypond.js:949 -#: js/DrumBlocks.js:486 -#: js/RhythmBlocks.js:766 -#: js/VolumeBlocks.js:502 -#: js/phrasemaker.js:823 -msgid "drum" +#: js/turtledefs.js:639 +msgid "Return all blocks to the center of the screen." msgstr "" -#: js/palette.js:580 -msgid "effect" +#: js/turtledefs.js:644 +msgid "Show/hide blocks" msgstr "" -#: js/palette.js:586 -msgid "sargam" +#: js/turtledefs.js:645 +msgid "Hide or show the blocks and the palettes." msgstr "" -#: js/palette.js:589 -#: js/activity.js:1833 -#: js/RhythmBlocks.js:923 -#: js/PitchBlocks.js:442 -#: js/PitchBlocks.js:1748 -#.TRANS: a numeric mapping of the notes in an octave based on the musical mode -msgid "scale degree" +#: js/turtledefs.js:650 +msgid "Expand/collapse collapsable blocks" msgstr "" -#: js/palette.js:592 -#: js/activity.js:1860 -msgid "mode name" +#: js/turtledefs.js:651 +msgid "Expand or collapse start and action stacks." msgstr "" -#: js/palette.js:595 -#: js/activity.js:1839 -msgid "invert mode" +#: js/turtledefs.js:658 +#: js/activity.js:5704 +msgid "Decrease block size" msgstr "" -#: js/palette.js:598 -#: js/activity.js:1836 -msgid "voice name" +#: js/turtledefs.js:659 +msgid "Decrease the size of the blocks." msgstr "" -#: js/palette.js:601 -#: js/PitchBlocks.js:1181 -msgid "custom pitch" +#: js/turtledefs.js:664 +#: js/activity.js:5710 +msgid "Increase block size" msgstr "" -#: js/palette.js:605 -#: js/block.js:1456 -#: js/block.js:1575 -#: js/WidgetBlocks.js:218 -#: js/IntervalsBlocks.js:63 -msgid "temperament" +#: js/turtledefs.js:665 +msgid "Increase the size of the blocks." msgstr "" -#: js/palette.js:609 -msgid "accidental" +#: js/turtledefs.js:670 +msgid "Expand/collapse option toolbar" msgstr "" -#: js/palette.js:615 -#: js/activity.js:1866 -msgid "interval name" +#: js/turtledefs.js:671 +msgid "Click this button to expand or collapse the auxillary toolbar." msgstr "" -#: js/palette.js:633 -#: js/PitchBlocks.js:405 -msgid "pitch converter" +#: js/turtledefs.js:676 +msgid "Run slow" msgstr "" -#: js/rubrics.js:522 -#: js/turtledefs.js:119 -#: js/turtledefs.js:221 -#: js/RhythmBlockPaletteBlocks.js:52 -#: js/RhythmBlockPaletteBlocks.js:233 -#: js/ProgramBlocks.js:745 -#: js/rhythmruler.js:1670 -#: js/rhythmruler.js:1677 -#: js/rhythmruler.js:1745 -#: js/rhythmruler.js:1752 -#: js/rhythmruler.js:1830 -#.TRANS: an arrangement of notes based on duration -msgid "rhythm" +#: js/turtledefs.js:677 +msgid "Click to run the project in slow mode." msgstr "" -#: js/rubrics.js:523 -#: js/block.js:2339 -#: js/turtledefs.js:121 -#: js/turtledefs.js:223 -#: js/IntervalsBlocks.js:63 -#: js/PitchBlocks.js:1801 -#: js/PitchBlocks.js:1814 -#: js/SensorsBlocks.js:178 -#: js/phrasemaker.js:821 -#: js/musickeyboard.js:1653 -#.TRANS: pitch number -#.TRANS: we specify pitch in terms of a name and an octave. The name can be CDEFGAB or Do Re Mi Fa Sol La Ti. Octave is a number between 1 and 8. -msgid "pitch" +#: js/turtledefs.js:683 +msgid "Click to run the project step by step." msgstr "" -#: js/rubrics.js:524 -#: js/turtledefs.js:123 -#: js/turtledefs.js:225 -msgid "tone" +#: js/turtledefs.js:690 +msgid "Display statistics about your Music project." msgstr "" -#: js/rubrics.js:525 -#: js/lilypond.js:613 -#: js/lilypond.js:912 -#: js/lilypond.js:918 -#: js/lilypond.js:956 -msgid "mouse" +#: js/turtledefs.js:697 +msgid "Delete a selected plugin." msgstr "" -#: js/rubrics.js:526 -#: js/turtledefs.js:132 -#: js/turtledefs.js:234 -#: js/phrasemaker.js:825 -msgid "pen" +#: js/turtledefs.js:704 +msgid "Enable scrolling" msgstr "" -#: js/rubrics.js:527 -#: js/turtledefs.js:133 -#: js/turtledefs.js:235 -#: js/NumberBlocks.js:905 -#: js/PitchBlocks.js:1679 -#: js/PitchBlocks.js:1720 -msgid "number" +#: js/turtledefs.js:705 +msgid "You can scroll the blocks on the canvas." msgstr "" -#: js/rubrics.js:528 -#: js/turtledefs.js:127 -#: js/turtledefs.js:229 -msgid "flow" +#: js/turtledefs.js:714 +msgid "Wrap Turtle" msgstr "" -#: js/rubrics.js:530 -#: js/turtledefs.js:136 -#: js/turtledefs.js:238 -msgid "sensors" +#: js/turtledefs.js:715 +msgid "Turn Turtle wrapping On or Off." msgstr "" -#: js/rubrics.js:531 -#: js/turtledefs.js:135 -#: js/turtledefs.js:237 -#: js/MediaBlocks.js:930 -msgid "media" +#: js/turtledefs.js:725 +msgid "Restore blocks from the trash." msgstr "" -#: js/rubrics.js:532 -msgid "mice" +#: js/turtledefs.js:732 +msgid "Switch mode" msgstr "" -#: js/macros.js:711 -#: js/musicutils.js:783 -#: js/synthutils.js:181 -#.TRANS: animal sound effect -msgid "duck" +#: js/turtledefs.js:733 +msgid "Switch between beginner and advance modes." msgstr "" -#: js/toolbar.js:46 -#: js/toolbar.js:107 -msgid "About Music Blocks" +#: js/turtledefs.js:739 +msgid "Select your language preference." msgstr "" -#: js/toolbar.js:47 -#: js/toolbar.js:108 -#: js/toolbar.js:172 -#: js/toolbar.js:228 -#: js/turtledefs.js:445 -#: js/turtledefs.js:482 -#: js/activity.js:2281 -#: js/activity.js:2289 -#: js/activity.js:2520 -#: js/modewidget.js:77 -#: js/pitchstaircase.js:121 -#: js/phrasemaker.js:302 -#: js/phrasemaker.js:312 -#: js/phrasemaker.js:314 -#: js/phrasemaker.js:3901 -#: js/phrasemaker.js:4061 -#: js/phrasemaker.js:4066 -#: js/phrasemaker.js:4068 -#: js/phrasemaker.js:4183 -#: js/pitchdrummatrix.js:81 -#: js/pitchdrummatrix.js:574 -#: js/pitchdrummatrix.js:576 -#: js/pitchdrummatrix.js:628 -#: js/pitchdrummatrix.js:630 -#: js/pitchdrummatrix.js:645 -#: js/pitchdrummatrix.js:647 -#: js/pitchdrummatrix.js:674 -#: js/pitchdrummatrix.js:676 -#: js/temperament.js:477 -#: js/temperament.js:480 -#: js/temperament.js:540 -#: js/temperament.js:542 -#: js/temperament.js:1835 -#: js/temperament.js:1837 -#: js/temperament.js:1986 -#: js/temperament.js:1988 -#: js/musickeyboard.js:522 -#: js/musickeyboard.js:682 -#: js/musickeyboard.js:684 -#: js/musickeyboard.js:756 -#: js/musickeyboard.js:758 -#: js/rhythmruler.js:298 -#: js/rhythmruler.js:300 -#: js/rhythmruler.js:314 -#: js/rhythmruler.js:316 -#: js/sampler.js:96 -#: js/sampler.js:98 -#: js/sampler.js:229 -#: js/sampler.js:235 -#: js/sampler.js:237 -#: js/tempo.js:84 -#: js/tempo.js:86 -#: js/timbre.js:432 -#: js/timbre.js:434 -#: js/timbre.js:465 -#: js/timbre.js:467 -#: js/timbre.js:746 -#: js/meterwidget.js:80 -#: js/arpeggio.js:90 -#: js/arpeggio.js:547 -#: js/arpeggio.js:549 -#: js/arpeggio.js:644 -#: js/arpeggio.js:646 -msgid "Play" +#: js/turtledefs.js:745 +msgid "Keyboard shortcuts" msgstr "" -#: js/toolbar.js:48 -#: js/toolbar.js:109 -#: js/toolbar.js:173 -#: js/toolbar.js:229 -#: js/turtledefs.js:451 -#: js/turtledefs.js:488 -#: js/activity.js:2297 -#: js/modewidget.js:99 -#: js/modewidget.js:101 -#: js/phrasemaker.js:323 -#: js/phrasemaker.js:325 -#: js/pitchdrummatrix.js:561 -#: js/pitchdrummatrix.js:563 -#: js/temperament.js:1820 -#: js/temperament.js:1822 -#: js/meterwidget.js:101 -#: js/meterwidget.js:103 -#: js/arpeggio.js:534 -#: js/arpeggio.js:536 -msgid "Stop" +#: js/turtledefs.js:746 +msgid "You can type d to create a do block and r to create a re block etc." msgstr "" -#: js/toolbar.js:49 -#: js/toolbar.js:110 -#: js/toolbar.js:174 -#: js/toolbar.js:230 -#: js/turtledefs.js:498 -msgid "Record" +#: js/turtledefs.js:753 +msgid "Show these messages." msgstr "" -#: js/toolbar.js:50 -#: js/toolbar.js:51 -msgid "Full screen" +#: js/turtledefs.js:759 +#: js/turtledefs.js:790 +#: js/widgets/help.js:335 +msgid "Guide" msgstr "" -#: js/toolbar.js:52 -#: js/toolbar.js:112 -#: js/toolbar.js:177 -#: js/toolbar.js:232 -#: js/turtledefs.js:504 -msgid "Toggle Fullscreen" +#: js/turtledefs.js:760 +msgid "A detailed guide to Turtle Blocks is available." msgstr "" -#: js/toolbar.js:53 -#: js/toolbar.js:113 -#: js/toolbar.js:178 -#: js/toolbar.js:233 -#: js/turtledefs.js:510 -#: js/StringHelper.js:33 -msgid "New project" +#: js/turtledefs.js:764 +msgid "Turtle Blocks Guide" msgstr "" -#: js/toolbar.js:54 -#: js/toolbar.js:114 -#: js/toolbar.js:179 -#: js/toolbar.js:234 -#: js/turtledefs.js:516 -msgid "Load project from file" +#: js/turtledefs.js:767 +#: js/turtledefs.js:798 +#: js/widgets/help.js:336 +msgid "About" msgstr "" -#: js/toolbar.js:55 -#: js/toolbar.js:115 -#: js/toolbar.js:116 -#: js/toolbar.js:180 -#: js/toolbar.js:235 -#: js/turtledefs.js:541 -#: js/turtledefs.js:550 -#: js/turtledefs.js:571 -msgid "Save project" +#: js/turtledefs.js:768 +msgid "Turtle Blocks is an open source collection of tools for exploring musical concepts." msgstr "" -#: js/toolbar.js:56 -#: js/toolbar.js:75 -#: js/toolbar.js:77 -#: js/toolbar.js:135 -#: js/toolbar.js:144 -#: js/toolbar.js:146 -#: js/toolbar.js:181 -#: js/toolbar.js:199 -#: js/toolbar.js:201 -#: js/toolbar.js:236 -#: js/toolbar.js:254 -#: js/toolbar.js:256 -msgid "Save project as HTML" +#: js/turtledefs.js:770 +msgid "A full list of contributors can be found in the Turtle Blocks GitHub repository." +msgstr "" + +#: js/turtledefs.js:772 +msgid "Turtle Blocks is licensed under the AGPL." +msgstr "" + +#: js/turtledefs.js:780 +msgid "Turtle Blocks GitHub repository" +msgstr "" + +#: js/turtledefs.js:783 +#: js/turtledefs.js:814 +#: js/widgets/help.js:337 +#: js/widgets/help.js:359 +msgid "Congratulations." +msgstr "" + +#: js/turtledefs.js:784 +msgid "You have finished the tour. Please enjoy Turtle Blocks!" +msgstr "" + +#: js/turtledefs.js:791 +msgid "A detailed guide to Music Blocks is available." +msgstr "" + +#: js/turtledefs.js:799 +msgid "Music Blocks is an open source collection of tools for exploring musical concepts." +msgstr "" + +#: js/turtledefs.js:801 +msgid "A full list of contributors can be found in the Music Blocks GitHub repository." +msgstr "" + +#: js/turtledefs.js:803 +msgid "Music Blocks is licensed under the AGPL." +msgstr "" + +#: js/turtledefs.js:811 +msgid "Music Blocks GitHub repository" +msgstr "" + +#: js/turtledefs.js:815 +msgid "You have finished the tour. Please enjoy Music Blocks!" +msgstr "" + +#: js/turtles.js:882 +msgid "Grid" +msgstr "" + +#: js/turtles.js:1024 +msgid "Expand" +msgstr "" + +#: js/block-verbose.js:1616 +#: js/block-verbose.js:1735 +#: js/block.js:1580 +#: js/block.js:1699 +#: js/palette.js:605 +#: js/blocks/IntervalsBlocks.js:63 +#: js/blocks/WidgetBlocks.js:259 +msgid "temperament" +msgstr "" + +#: js/block-verbose.js:1630 +#: js/block.js:1594 +msgid "matrix" msgstr "" -#: js/toolbar.js:57 -#: js/toolbar.js:117 -#: js/toolbar.js:182 -#: js/toolbar.js:237 -msgid "Find and share projects" +#: js/block-verbose.js:1637 +#: js/block.js:1601 +#: js/blocks/WidgetBlocks.js:1509 +#: plugins/rodi.rtp:324 +msgid "status" msgstr "" -#: js/toolbar.js:58 -#: js/toolbar.js:118 -#: js/toolbar.js:183 -#: js/toolbar.js:238 -msgid "Offline. Sharing is unavailable" +#: js/block-verbose.js:1644 +#: js/block.js:1608 +msgid "drum mapper" msgstr "" -#: js/toolbar.js:59 -#: js/toolbar.js:119 -#: js/toolbar.js:184 -#: js/toolbar.js:239 -msgid "Auxiliary menu" +#: js/block-verbose.js:1651 +#: js/block.js:1615 +msgid "ruler" msgstr "" -#: js/toolbar.js:61 -#: js/toolbar.js:121 -#: js/toolbar.js:186 -#: js/toolbar.js:241 -msgid "Run slowly" +#: js/block-verbose.js:1658 +#: js/block.js:1622 +#: js/blocks/WidgetBlocks.js:397 +#.TRANS: timbre is the character or quality of a musical sound +msgid "timbre" msgstr "" -#: js/toolbar.js:62 -#: js/toolbar.js:122 -#: js/toolbar.js:187 -#: js/toolbar.js:242 -#: js/turtledefs.js:682 -msgid "Run step by step" +#: js/block-verbose.js:1665 +#: js/block.js:1629 +msgid "stair" msgstr "" -#: js/toolbar.js:63 -#: js/toolbar.js:123 -#: js/toolbar.js:188 -#: js/toolbar.js:243 -#: js/turtledefs.js:689 -msgid "Display statistics" +#: js/block-verbose.js:1672 +#: js/block.js:1636 +#: js/blocks/WidgetBlocks.js:707 +#.TRANS: the speed at music is should be played. +msgid "tempo" msgstr "" -#: js/toolbar.js:64 -#: js/toolbar.js:124 -#: js/toolbar.js:189 -#: js/toolbar.js:244 -msgid "Load plugin" +#: js/block-verbose.js:1679 +#: js/block-verbose.js:1742 +#: js/block.js:1643 +#: js/block.js:1706 +#: js/blocks/IntervalsBlocks.js:1464 +#.TRANS: mode, e.g., Major in C Major +msgid "mode" msgstr "" -#: js/toolbar.js:65 -#: js/toolbar.js:125 -#: js/toolbar.js:190 -#: js/toolbar.js:245 -#: js/turtledefs.js:696 -msgid "Delete plugin" +#: js/block-verbose.js:1686 +#: js/block.js:1650 +msgid "slider" msgstr "" -#: js/toolbar.js:66 -#: js/toolbar.js:126 -#: js/toolbar.js:191 -#: js/toolbar.js:246 -msgid "Enable horizontal scrolling" +#: js/block-verbose.js:1693 +#: js/block.js:1657 +#: js/blocks/SensorsBlocks.js:1001 +msgid "keyboard" msgstr "" -#: js/toolbar.js:67 -#: js/toolbar.js:127 -#: js/toolbar.js:192 -#: js/toolbar.js:247 -msgid "Disable horizontal scrolling" +#: js/block-verbose.js:1707 +#: js/block.js:1671 +#: js/blocks/WidgetBlocks.js:1190 +#: js/blocks/WidgetBlocks.js:1228 +#.TRANS: widget for subdividing a measure into distinct rhythmic elements +msgid "rhythm maker" msgstr "" -#: js/toolbar.js:68 -#: js/toolbar.js:128 -#: js/toolbar.js:193 -#: js/toolbar.js:248 -#: js/LocalCard.js:54 -#: js/StringHelper.js:71 -msgid "Merge with current project" +#: js/block-verbose.js:1714 +#: js/block-verbose.js:2457 +#: js/block-verbose.js:2514 +#: js/block.js:1678 +#: js/block.js:2385 +#: js/block.js:2442 +#: js/blocks/MeterBlocks.js:1367 +#: js/blocks/OrnamentBlocks.js:220 +#: js/blocks/OrnamentBlocks.js:312 +#: js/blocks/RhythmBlocks.js:33 +#: js/blocks/RhythmBlocks.js:356 +#: js/blocks/RhythmBlocks.js:766 +#: js/blocks/RhythmBlocks.js:806 +#: js/blocks/RhythmBlockPaletteBlocks.js:70 +#: js/blocks/RhythmBlockPaletteBlocks.js:252 +#: js/blocks/RhythmBlockPaletteBlocks.js:485 +#: js/blocks/RhythmBlockPaletteBlocks.js:554 +#: js/blocks/RhythmBlockPaletteBlocks.js:605 +#: js/blocks/RhythmBlockPaletteBlocks.js:875 +#: js/turtleactions/DictActions.js:85 +#: js/widgets/phrasemaker.js:942 +#: js/widgets/phrasemaker.js:2656 +#: js/widgets/phrasemaker.js:2699 +#: js/widgets/phrasemaker.js:2810 +#.TRANS: the value (e.g., 1/4 note) of the note being played. +msgid "note value" msgstr "" -#: js/toolbar.js:69 -#: js/toolbar.js:129 -msgid "Set Pitch Preview" +#: js/block-verbose.js:1721 +#: js/block-verbose.js:2382 +#: js/block-verbose.js:2405 +#: js/block.js:1685 +#: js/block.js:2310 +#: js/block.js:2333 +#: js/blocks/IntervalsBlocks.js:1071 +#: js/blocks/OrnamentBlocks.js:312 +#.TRANS: calculate a relative step between notes based on semi-tones +msgid "scalar interval" msgstr "" -#: js/toolbar.js:70 -#: js/toolbar.js:130 -#: js/toolbar.js:194 -#: js/toolbar.js:249 -msgid "Toggle JavaScript Editor" +#: js/block-verbose.js:1728 +#: js/block.js:1692 +#: js/blocks/RhythmBlocks.js:148 +msgid "milliseconds" msgstr "" -#: js/toolbar.js:71 -#: js/toolbar.js:131 -#: js/toolbar.js:195 -#: js/toolbar.js:250 -#: js/turtledefs.js:724 -msgid "Restore" +#: js/block-verbose.js:2455 +#: js/block-verbose.js:2459 +#: js/block-verbose.js:2512 +#: js/block-verbose.js:2628 +#: js/block.js:2383 +#: js/block.js:2387 +#: js/block.js:2440 +#: js/block.js:2556 +#: js/blocks/RhythmBlocks.js:712 +#: js/blocks/ProgramBlocks.js:1273 +#: js/widgets/rhythmruler.js:1183 +#: js/widgets/rhythmruler.js:1329 +msgid "silence" msgstr "" -#: js/toolbar.js:72 -#: js/toolbar.js:132 -#: js/toolbar.js:196 -#: js/toolbar.js:251 -msgid "Switch to beginner mode" +#: js/block-verbose.js:2548 +#: js/block-verbose.js:3492 +#: js/block-verbose.js:3509 +#: js/activity.js:2718 +#: js/activity.js:2769 +#: js/block.js:2476 +#: js/block.js:3416 +#: js/block.js:3433 +#: js/utils/musicutils.js:3780 +#: js/utils/musicutils.js:5273 +#.TRANS: the note names must be separated by single spaces +#.TRANS: the note names must be separated by single spaces +#.TRANS: the note names must be separated by single spaces +msgid "ti la sol fa mi re do" msgstr "" -#: js/toolbar.js:73 -#: js/toolbar.js:133 -#: js/toolbar.js:197 -#: js/toolbar.js:252 -msgid "Switch to advanced mode" +#: js/block-verbose.js:2616 +#: js/block.js:2544 +#.TRANS: scalar step +#.TRANS: scalar step +msgid "down" msgstr "" -#: js/toolbar.js:74 -#: js/toolbar.js:134 -#: js/toolbar.js:143 -#: js/toolbar.js:198 -#: js/toolbar.js:253 -#: js/turtledefs.js:738 -msgid "Select language" +#: js/block-verbose.js:2617 +#: js/block.js:2545 +msgid "up" msgstr "" -#: js/toolbar.js:76 -#: js/toolbar.js:79 -#: js/toolbar.js:137 -#: js/turtledefs.js:579 -msgid "Save mouse artwork as PNG" +#: js/block-verbose.js:3026 +#: js/block.js:2950 +msgid "Silence block cannot be removed." msgstr "" -#: js/toolbar.js:78 -#: js/toolbar.js:136 -#: js/turtledefs.js:575 -msgid "Save mouse artwork as SVG" +#: js/block-verbose.js:3824 +#: js/block.js:3748 +#: js/blocks.js:2607 +#: js/blocks.js:3218 +#: js/palette.js:618 +#: js/blocks/BooleanBlocks.js:77 +#: js/blocks/BooleanBlocks.js:167 +#: js/blocks/BooleanBlocks.js:251 +#: js/blocks/BooleanBlocks.js:335 +#: js/blocks/BooleanBlocks.js:433 +#: js/blocks/BooleanBlocks.js:539 +#: js/blocks/BooleanBlocks.js:640 +#: js/blocks/BooleanBlocks.js:741 +#: js/blocks/BooleanBlocks.js:847 +#: js/blocks/BooleanBlocks.js:948 +#: js/blocks/BooleanBlocks.js:1033 +#: js/blocks/SensorsBlocks.js:910 +msgid "true" msgstr "" -#: js/toolbar.js:80 -#: js/toolbar.js:138 -#: js/turtledefs.js:583 -msgid "Save music as WAV" +#: js/block-verbose.js:3824 +#: js/block.js:3748 +#: js/blocks.js:2609 +#: js/blocks.js:3220 +#: js/blocks/BooleanBlocks.js:79 +#: js/blocks/BooleanBlocks.js:169 +#: js/blocks/BooleanBlocks.js:253 +#: js/blocks/BooleanBlocks.js:337 +#: js/blocks/BooleanBlocks.js:435 +#: js/blocks/BooleanBlocks.js:541 +#: js/blocks/BooleanBlocks.js:642 +#: js/blocks/BooleanBlocks.js:743 +#: js/blocks/BooleanBlocks.js:849 +#: js/blocks/BooleanBlocks.js:950 +#: js/blocks/SensorsBlocks.js:912 +msgid "false" msgstr "" -#: js/toolbar.js:81 -#: js/toolbar.js:139 -#: js/turtledefs.js:587 -msgid "Save sheet music as ABC" +#: js/block-verbose.js:3835 +#: js/block-verbose.js:3848 +#: js/block.js:3759 +#: js/block.js:3772 +#: js/blocks/ExtrasBlocks.js:615 +msgid "Cartesian" msgstr "" -#: js/toolbar.js:82 -#: js/toolbar.js:140 -#: js/turtledefs.js:591 -msgid "Save sheet music as Lilypond" +#: js/block-verbose.js:3836 +#: js/block-verbose.js:3849 +#: js/block.js:3760 +#: js/block.js:3773 +#: js/blocks/ExtrasBlocks.js:619 +msgid "polar" msgstr "" -#: js/toolbar.js:83 -msgid "Save sheet music as MusicXML" +#: js/block-verbose.js:3837 +#: js/block-verbose.js:3850 +#: js/block.js:3761 +#: js/block.js:3774 +#: js/blocks/ExtrasBlocks.js:623 +msgid "Cartesian+polar" msgstr "" -#: js/toolbar.js:84 -#: js/toolbar.js:141 -#: js/toolbar.js:149 -#: js/toolbar.js:204 -#: js/toolbar.js:259 -#: js/turtledefs.js:562 -#: js/turtledefs.js:595 -msgid "Save block artwork as SVG" +#: js/block-verbose.js:3838 +#: js/block-verbose.js:3857 +#: js/block.js:3762 +#: js/block.js:3781 +#: js/blocks/ExtrasBlocks.js:652 +msgid "none" msgstr "" -#: js/toolbar.js:85 -#: js/toolbar.js:142 -#: js/toolbar.js:150 -#: js/toolbar.js:205 -#: js/toolbar.js:260 -msgid "Confirm" +#: js/block-verbose.js:3851 +#: js/block.js:3775 +#: js/blocks/ExtrasBlocks.js:628 +msgid "treble" msgstr "" -#: js/toolbar.js:86 -#: js/toolbar.js:151 -#: js/toolbar.js:206 -#: js/toolbar.js:261 -msgid "English (United States)" +#: js/block-verbose.js:3852 +#: js/block.js:3776 +#: js/blocks/ExtrasBlocks.js:632 +msgid "grand staff" msgstr "" -#: js/toolbar.js:87 -#: js/toolbar.js:152 -#: js/toolbar.js:207 -#: js/toolbar.js:262 -msgid "English (United Kingdom)" +#: js/block-verbose.js:3853 +#: js/block.js:3777 +#: js/blocks/ExtrasBlocks.js:636 +msgid "mezzo-soprano" msgstr "" -#: js/toolbar.js:88 -#: js/toolbar.js:153 -#: js/toolbar.js:208 -#: js/toolbar.js:263 -msgid "日本語" +#: js/block-verbose.js:3854 +#: js/block.js:3778 +#: js/blocks/ExtrasBlocks.js:640 +msgid "alto" msgstr "" -#: js/toolbar.js:89 -msgid "한국어" +#: js/block-verbose.js:3855 +#: js/block.js:3779 +#: js/blocks/ExtrasBlocks.js:644 +msgid "tenor" msgstr "" -#: js/toolbar.js:90 -#: js/toolbar.js:155 -#: js/toolbar.js:210 -#: js/toolbar.js:265 -msgid "español" +#: js/block-verbose.js:3856 +#: js/block.js:3780 +#: js/utils/musicutils.js:1115 +#: js/utils/synthutils.js:80 +#: js/blocks/ExtrasBlocks.js:648 +#.TRANS: musical instrument +msgid "bass" msgstr "" -#: js/toolbar.js:91 -#: js/toolbar.js:156 -#: js/toolbar.js:211 -#: js/toolbar.js:266 -msgid "português" +#: js/block-verbose.js:3901 +#: js/block.js:3825 +#: js/blocks.js:2600 +#: js/blocks.js:3211 +msgid "on2" msgstr "" -#: js/toolbar.js:92 -#: js/toolbar.js:157 -#: js/toolbar.js:212 -#: js/toolbar.js:267 -msgid "にほんご" +#: js/block-verbose.js:3903 +#: js/block.js:3827 +#: js/blocks.js:2602 +#: js/blocks.js:3213 +msgid "off" msgstr "" -#: js/toolbar.js:93 -#: js/toolbar.js:158 -#: js/toolbar.js:213 -#: js/toolbar.js:268 -msgid "中文" +#: js/block-verbose.js:4470 +#: js/block.js:4394 +msgid "Not a number" msgstr "" -#: js/toolbar.js:94 -#: js/toolbar.js:159 -#: js/toolbar.js:214 -#: js/toolbar.js:269 -msgid "ภาษาไทย" +#: js/block-verbose.js:4477 +#: js/block.js:4401 +msgid "Octave value must be between 1 and 10." msgstr "" -#: js/toolbar.js:95 -#: js/toolbar.js:160 -#: js/toolbar.js:215 -#: js/toolbar.js:270 -msgid "aymara" +#: js/block-verbose.js:4485 +#: js/block.js:4409 +msgid "Numbers can have at most 10 digits." msgstr "" -#: js/toolbar.js:96 -#: js/toolbar.js:161 -#: js/toolbar.js:216 -#: js/toolbar.js:271 -msgid "quechua" +#: js/activity.js:390 +#: js/activity.js:395 +msgid "Search for blocks" msgstr "" -#: js/toolbar.js:97 -#: js/toolbar.js:162 -#: js/toolbar.js:217 -#: js/toolbar.js:272 -msgid "guarani" +#: js/activity.js:1413 +msgid "Refresh your browser to change to advanced mode." msgstr "" -#: js/toolbar.js:98 -#: js/toolbar.js:163 -#: js/toolbar.js:218 -#: js/toolbar.js:273 -msgid "हिंदी" +#: js/activity.js:1418 +msgid "Refresh your browser to change to beginner mode." msgstr "" -#: js/toolbar.js:99 -#: js/toolbar.js:165 -#: js/toolbar.js:219 -#: js/toolbar.js:275 -msgid "igbo" +#: js/activity.js:1477 +msgid "Catching mice" +msgstr "" + +#: js/activity.js:1478 +msgid "Cleaning the instruments" +msgstr "" + +#: js/activity.js:1479 +msgid "Testing key pieces" +msgstr "" + +#: js/activity.js:1480 +msgid "Sight-reading" +msgstr "" + +#: js/activity.js:1481 +msgid "Combining math and music" msgstr "" -#: js/toolbar.js:100 -#: js/toolbar.js:166 -#: js/toolbar.js:220 -#: js/toolbar.js:276 -msgid "عربى" +#: js/activity.js:1482 +msgid "Generating more blocks" msgstr "" -#: js/toolbar.js:101 -#: js/toolbar.js:164 -#: js/toolbar.js:221 -#: js/toolbar.js:274 -msgid "తెలుగు" +#: js/activity.js:1483 +msgid "Do Re Mi Fa Sol La Ti Do" msgstr "" -#: js/toolbar.js:102 -#: js/toolbar.js:167 -#: js/toolbar.js:222 -#: js/toolbar.js:277 -msgid "עִברִית" +#: js/activity.js:1484 +msgid "Tuning string instruments" msgstr "" -#: js/toolbar.js:111 -#: js/toolbar.js:175 -#: js/toolbar.js:176 -#: js/toolbar.js:231 -msgid "Full Screen" +#: js/activity.js:1485 +msgid "Pressing random keys" msgstr "" -#: js/toolbar.js:145 -#: js/toolbar.js:148 -#: js/toolbar.js:200 -#: js/toolbar.js:203 -#: js/toolbar.js:255 -#: js/toolbar.js:258 -#: js/turtledefs.js:558 -msgid "Save turtle artwork as PNG" +#: js/activity.js:1663 +msgid "plugins will be removed upon restart." msgstr "" -#: js/toolbar.js:147 -#: js/toolbar.js:202 -#: js/toolbar.js:257 -#: js/turtledefs.js:554 -msgid "Save turtle artwork as SVG" +#: js/activity.js:1672 +msgid "show Cartesian" msgstr "" -#: js/toolbar.js:154 -#: js/toolbar.js:209 -#: js/toolbar.js:264 -msgid "한국인" +#: js/activity.js:2211 +#: js/palette.js:589 +#: js/blocks/RhythmBlocks.js:923 +#: js/blocks/PitchBlocks.js:442 +#: js/blocks/PitchBlocks.js:1786 +#.TRANS: a numeric mapping of the notes in an octave based on the musical mode +msgid "scale degree" msgstr "" -#: js/toolbar.js:171 -#: js/toolbar.js:227 -msgid "About Turtle Blocks" +#: js/activity.js:2214 +#: js/palette.js:598 +msgid "voice name" msgstr "" -#: js/toolbar.js:429 -#: js/toolbar.js:440 -msgid "Turtle Wrap Off" +#: js/activity.js:2217 +#: js/palette.js:595 +msgid "invert mode" msgstr "" -#: js/toolbar.js:442 -msgid "Turtle Wrap On" +#: js/activity.js:2220 +msgid "output tools" msgstr "" -#: js/block.js:1470 -msgid "matrix" +#: js/activity.js:2223 +msgid "custom note" msgstr "" -#: js/block.js:1477 -#: js/WidgetBlocks.js:1226 -#: plugins/rodi.rtp:324 -msgid "status" +#: js/activity.js:2226 +msgid "accidental name" msgstr "" -#: js/block.js:1484 -msgid "drum mapper" +#: js/activity.js:2229 +#: js/blocks/PitchBlocks.js:855 +msgid "east indian solfege" msgstr "" -#: js/block.js:1491 -msgid "ruler" +#: js/activity.js:2232 +#: js/blocks/PitchBlocks.js:869 +msgid "note name" msgstr "" -#: js/block.js:1498 -#: js/WidgetBlocks.js:327 -#.TRANS: timbre is the character or quality of a musical sound -msgid "timbre" +#: js/activity.js:2235 +#: js/blocks/IntervalsBlocks.js:94 +msgid "temperament name" msgstr "" -#: js/block.js:1505 -msgid "stair" +#: js/activity.js:2238 +#: js/palette.js:592 +msgid "mode name" msgstr "" -#: js/block.js:1512 -#: js/WidgetBlocks.js:577 -#.TRANS: the speed at music is should be played. -msgid "tempo" +#: js/activity.js:2241 +msgid "chord name" msgstr "" -#: js/block.js:1519 -#: js/block.js:1582 -#: js/IntervalsBlocks.js:1268 -#.TRANS: mode, e.g., Major in C Major -msgid "mode" +#: js/activity.js:2244 +#: js/palette.js:615 +msgid "interval name" msgstr "" -#: js/block.js:1526 -msgid "slider" +#: js/activity.js:2247 +msgid "filter type" msgstr "" -#: js/block.js:1533 -#: js/SensorsBlocks.js:1001 -msgid "keyboard" +#: js/activity.js:2250 +msgid "oscillator type" msgstr "" -#: js/block.js:1547 -#: js/WidgetBlocks.js:957 -#: js/WidgetBlocks.js:988 -#.TRANS: widget for subdividing a measure into distinct rhythmic elements -msgid "rhythm maker" +#: js/activity.js:2253 +#: js/blocks.js:2479 +#: js/blocks.js:2487 +msgid "audio file" msgstr "" -#: js/block.js:1554 -#: js/block.js:2182 -#: js/block.js:2236 -#: js/RhythmBlockPaletteBlocks.js:70 -#: js/RhythmBlockPaletteBlocks.js:251 -#: js/RhythmBlockPaletteBlocks.js:484 -#: js/RhythmBlockPaletteBlocks.js:553 -#: js/RhythmBlockPaletteBlocks.js:604 -#: js/RhythmBlockPaletteBlocks.js:874 -#: js/RhythmBlocks.js:33 -#: js/RhythmBlocks.js:356 -#: js/RhythmBlocks.js:766 -#: js/RhythmBlocks.js:806 -#: js/OrnamentBlocks.js:220 -#: js/OrnamentBlocks.js:312 -#: js/MeterBlocks.js:1367 -#: js/DictActions.js:85 -#: js/phrasemaker.js:731 -#: js/phrasemaker.js:2393 -#: js/phrasemaker.js:2436 -#: js/phrasemaker.js:2534 -#.TRANS: the value (e.g., 1/4 note) of the note being played. -msgid "note value" +#: js/activity.js:2256 +#: js/blocks/DrumBlocks.js:32 +msgid "noise name" msgstr "" -#: js/block.js:1561 -#: js/block.js:2110 -#: js/block.js:2133 -#: js/IntervalsBlocks.js:875 -#: js/OrnamentBlocks.js:312 -#.TRANS: calculate a relative step between notes based on semi-tones -msgid "scalar interval" +#: js/activity.js:2259 +#: js/blocks/DrumBlocks.js:75 +msgid "drum name" msgstr "" -#: js/block.js:1568 -#: js/RhythmBlocks.js:148 -msgid "milliseconds" +#: js/activity.js:2262 +#: js/blocks/DrumBlocks.js:119 +msgid "effects name" msgstr "" -#: js/block.js:2180 -#: js/block.js:2184 -#: js/block.js:2234 -#: js/block.js:2345 -#: js/ProgramBlocks.js:1273 -#: js/RhythmBlocks.js:712 -#: js/rhythmruler.js:834 -#: js/rhythmruler.js:961 -msgid "silence" +#: js/activity.js:2265 +msgid "wrap mode" msgstr "" -#: js/block.js:2265 -#: js/block.js:3134 -#: js/block.js:3151 -#: js/activity.js:2336 -#: js/activity.js:2387 -#: js/musicutils.js:2932 -#: js/musicutils.js:4287 -#.TRANS: the note names must be separated by single spaces -#.TRANS: the note names must be separated by single spaces -msgid "ti la sol fa mi re do" +#: js/activity.js:2268 +msgid "load file" msgstr "" -#: js/block.js:2333 -#.TRANS: scalar step -msgid "down" +#: js/activity.js:2435 +#: js/activity.js:5851 +msgid "This block is deprecated." msgstr "" -#: js/block.js:2334 -msgid "up" +#: js/activity.js:2437 +#: js/activity.js:5853 +msgid "Block cannot be found." msgstr "" -#: js/block.js:3477 -#: js/block.js:3490 -#: js/ExtrasBlocks.js:612 -msgid "Cartesian" +#: js/activity.js:2645 +msgid "Saving block artwork" msgstr "" -#: js/block.js:3478 -#: js/block.js:3491 -#: js/ExtrasBlocks.js:616 -msgid "polar" +#: js/activity.js:2656 +msgid "Erase" msgstr "" -#: js/block.js:3479 -#: js/block.js:3492 -#: js/ExtrasBlocks.js:620 -msgid "Cartesian+polar" +#: js/activity.js:2683 +#: js/activity.js:2705 +msgid "Paste" msgstr "" -#: js/block.js:3480 -#: js/block.js:3499 -#: js/ExtrasBlocks.js:649 -msgid "none" +#: js/activity.js:2687 +msgid "Save block help" msgstr "" -#: js/block.js:3493 -#: js/ExtrasBlocks.js:625 -msgid "treble" +#: js/activity.js:2772 +msgid "Jumping to the bottom of the page." msgstr "" -#: js/block.js:3494 -#: js/ExtrasBlocks.js:629 -msgid "grand staff" +#: js/activity.js:2778 +msgid "Scrolling up." msgstr "" -#: js/block.js:3495 -#: js/ExtrasBlocks.js:633 -msgid "mezzo-soprano" +#: js/activity.js:2783 +msgid "Scrolling down." msgstr "" -#: js/block.js:3496 -#: js/ExtrasBlocks.js:637 -msgid "alto" +#: js/activity.js:2788 +msgid "Extracting block" msgstr "" -#: js/block.js:3497 -#: js/ExtrasBlocks.js:641 -msgid "tenor" +#: js/activity.js:2796 +msgid "Moving block up." msgstr "" -#: js/block.js:3498 -#: js/ExtrasBlocks.js:645 -#: js/musicutils.js:736 -#: js/synthutils.js:64 -#.TRANS: musical instrument -msgid "bass" +#: js/activity.js:2817 +msgid "Moving block down." msgstr "" -#: js/block.js:4075 -msgid "Not a number" +#: js/activity.js:2838 +msgid "Moving block left." msgstr "" -#: js/block.js:4082 -msgid "Octave value must be between 1 and 10." +#: js/activity.js:2855 +msgid "Moving block right." msgstr "" -#: js/block.js:4090 -msgid "Numbers can have at most 10 digits." +#: js/activity.js:2870 +msgid "Jump to home position." msgstr "" -#: js/notation.js:353 -msgid "Lilypond cannot process pickup of " +#: js/activity.js:2897 +msgid "Hide blocks" msgstr "" -#: js/turtledefs.js:40 -#.TRANS: put the URL to the guide here, e.g., https://github.com/sugarlabs/turtleblocksjs/tree/master/guide/README.md -msgid "guide url" +#: js/activity.js:4500 +msgid "Click the run button to run the project." msgstr "" -#: js/turtledefs.js:85 -#: js/turtledefs.js:437 -msgid "Turtle Blocks is a Logo-inspired turtle that draws colorful pictures with snap-together visual-programming blocks." +#: js/activity.js:5692 +msgid "Show/hide block" msgstr "" -#: js/turtledefs.js:118 -#: js/turtledefs.js:220 -msgid "search" +#: js/activity.js:5698 +msgid "Expand/collapse blocks" msgstr "" -#: js/turtledefs.js:120 -#: js/turtledefs.js:222 -#: js/WidgetBlocks.js:437 -#: js/MeterBlocks.js:1343 -#.TRANS: musical meter (time signature), e.g., 4:4 -msgid "meter" +#: js/activity.js:5976 +msgid "Could not parse JSON input." msgstr "" -#: js/turtledefs.js:122 -#: js/turtledefs.js:224 -msgid "intervals" +#: js/activity.js:6475 +#: js/activity.js:6580 +#: js/activity.js:6631 +msgid "Cannot load project from the file. Please check the file type." msgstr "" -#: js/turtledefs.js:124 -#: js/turtledefs.js:226 -msgid "ornament" +#: js/activity.js:6917 +msgid "Invalid parameters" msgstr "" -#: js/turtledefs.js:125 -#: js/turtledefs.js:227 -#: js/VolumeBlocks.js:362 -#: js/VolumeBlocks.js:502 -#: js/VolumeBlocks.js:545 -msgid "volume" +#: js/blocks.js:1212 +#: js/blocks.js:3444 +#: js/blocks.js:3834 +#: js/blocks.js:3865 +#: js/blocks.js:3914 +#: js/blocks.js:3949 +#: js/blocks.js:6586 +#: js/palette.js:509 +#: js/palette.js:638 +#: js/palette.js:1105 +#: js/blocks/BoxesBlocks.js:282 +#: js/blocks/BoxesBlocks.js:285 +#: js/blocks/BoxesBlocks.js:405 +#: js/blocks/BoxesBlocks.js:594 +msgid "box" msgstr "" -#: js/turtledefs.js:129 -#: js/turtledefs.js:231 -msgid "boxes" +#: js/blocks.js:1713 +msgid "Consider breaking this stack into parts." msgstr "" -#: js/turtledefs.js:130 -#: js/turtledefs.js:232 -msgid "widgets" +#: js/blocks.js:2472 +#: js/palette.js:653 +#: js/blocks/MediaBlocks.js:602 +msgid "open file" msgstr "" -#: js/turtledefs.js:131 -#: js/turtledefs.js:233 -#: js/phrasemaker.js:824 -msgid "graphics" +#: js/blocks.js:3247 +#: js/palette.js:574 +#: js/blocks/MediaBlocks.js:892 +#: js/blocks/MediaBlocks.js:963 +msgid "text" msgstr "" -#: js/turtledefs.js:134 -#: js/turtledefs.js:236 -msgid "boolean" +#: js/blocks.js:3443 +#: js/palette.js:641 +#: js/palette.js:642 +#: js/blocks/BoxesBlocks.js:514 +msgid "store in box" msgstr "" -#: js/turtledefs.js:137 -#: js/turtledefs.js:239 -#: js/HeapBlocks.js:59 -#: js/status.js:147 -msgid "heap" +#: js/blocks.js:3448 +#: js/blocks.js:3888 +#: js/blocks.js:3923 +#: js/blocks.js:3958 +#: js/blocks.js:5862 +#: js/blocks.js:5883 +#: js/blocks/BoxesBlocks.js:772 +msgid "box1" msgstr "" -#: js/turtledefs.js:138 -#: js/turtledefs.js:240 -#: js/ProgramBlocks.js:495 -#: js/DictBlocks.js:142 -msgid "dictionary" +#: js/blocks.js:3450 +#: js/blocks.js:3890 +#: js/blocks.js:3925 +#: js/blocks.js:3960 +#: js/blocks.js:5864 +#: js/blocks.js:5885 +#: js/blocks/BoxesBlocks.js:663 +msgid "box2" msgstr "" -#: js/turtledefs.js:139 -#: js/turtledefs.js:241 -msgid "ensemble" +#: js/blocks.js:4122 +#: js/palette.js:639 +#: js/palette.js:644 +#: js/palette.js:1041 +#: js/blocks/BoxesBlocks.js:591 +msgid "store in" msgstr "" -#: js/turtledefs.js:140 -#: js/turtledefs.js:242 -msgid "extras" +#: js/blocks.js:4122 +#: js/blocks/BoxesBlocks.js:595 +#: js/blocks/DictBlocks.js:215 +#: js/blocks/DictBlocks.js:289 +#: js/blocks/EnsembleBlocks.js:391 +#: js/blocks/EnsembleBlocks.js:402 +#: js/blocks/MediaBlocks.js:746 +#: js/blocks/PitchBlocks.js:656 +#: js/blocks/PitchBlocks.js:934 +#: js/blocks/PitchBlocks.js:1866 +#: js/blocks/ProgramBlocks.js:390 +#: js/blocks/ProgramBlocks.js:495 +#: js/blocks/ProgramBlocks.js:658 +#: js/blocks/ToneBlocks.js:1025 +msgid "name" msgstr "" -#: js/turtledefs.js:142 -#: js/turtledefs.js:244 -#.TRANS: program as in computer program -#.TRANS: program as in computer program -msgid "program" +#: js/blocks.js:4122 +#: js/blocks/BoxesBlocks.js:75 +#: js/blocks/BoxesBlocks.js:595 +#: js/blocks/DictBlocks.js:289 +#: js/blocks/DictBlocks.js:430 +#: js/blocks/HeapBlocks.js:544 +#: js/blocks/RhythmBlocks.js:1130 +msgid "value" msgstr "" -#: js/turtledefs.js:143 -#: js/turtledefs.js:245 -msgid "my blocks" +#: js/blocks.js:4465 +msgid "Forever loop detected inside a note value block. Unexpected things may happen." msgstr "" -#: js/turtledefs.js:185 -#: js/turtledefs.js:281 -msgid "artwork" +#: js/blocks.js:4988 +msgid "There is no block selected." msgstr "" -#: js/turtledefs.js:185 -#: js/turtledefs.js:281 -msgid "logic" +#: js/blocks.js:5091 +#: js/blocks/MediaBlocks.js:888 +msgid "show" msgstr "" -#: js/turtledefs.js:185 -#: js/turtledefs.js:281 -msgid "music" +#: js/blocks.js:5094 +#: js/blocks/MediaBlocks.js:803 +#.TRANS: Avatar is the image used to determine the appearance of the mouse. +msgid "avatar" msgstr "" -#: js/turtledefs.js:187 -#: js/turtledefs.js:463 -msgid "Music Blocks is a collection of tools for exploring fundamental musical concepts in a fun way." +#: js/blocks.js:5097 +#: js/blocks/ToneBlocks.js:1010 +#: js/widgets/sampler.js:975 +#.TRANS: The sound sample that the user uploads. +msgid "sample" msgstr "" -#: js/turtledefs.js:436 -msgid "Welcome to Turtle Blocks" +#: js/lilypond.js:606 +msgid "brown rat" msgstr "" -#: js/turtledefs.js:438 -#: js/turtledefs.js:465 -#: js/turtledefs.js:774 -#: js/turtledefs.js:805 -msgid "The current version is" +#: js/lilypond.js:607 +msgid "mole" msgstr "" -#: js/turtledefs.js:446 -#: js/turtledefs.js:483 -msgid "Click the run button to run the project in fast mode." +#: js/lilypond.js:608 +msgid "chipmunk" msgstr "" -#: js/turtledefs.js:452 -msgid "Stop the turtle." +#: js/lilypond.js:609 +msgid "red squirrel" msgstr "" -#: js/turtledefs.js:454 -#: js/turtledefs.js:491 -msgid "You can also type Alt-S to stop." +#: js/lilypond.js:610 +msgid "guinea pig" +msgstr "" + +#: js/lilypond.js:611 +msgid "capybara" msgstr "" -#: js/turtledefs.js:462 -#: js/help.js:333 -msgid "Welcome to Music Blocks" +#: js/lilypond.js:612 +msgid "coypu" msgstr "" -#: js/turtledefs.js:472 -#: js/help.js:334 -msgid "Meet Mr. Mouse!" +#: js/lilypond.js:613 +msgid "black rat" msgstr "" -#: js/turtledefs.js:473 -msgid "Mr Mouse is our Music Blocks conductor." +#: js/lilypond.js:614 +msgid "grey squirrel" msgstr "" -#: js/turtledefs.js:475 -msgid "Mr Mouse encourages you to explore Music Blocks." +#: js/lilypond.js:615 +msgid "flying squirrel" msgstr "" -#: js/turtledefs.js:477 -msgid "Let us start our tour!" +#: js/lilypond.js:616 +msgid "bat" msgstr "" -#: js/turtledefs.js:489 -msgid "Stop the music (and the mice)." +#: js/lilypond.js:749 +#: js/lilypond.js:913 +#: js/lilypond.js:951 +#: js/blocks/ActionBlocks.js:1256 +#: js/blocks/ExtrasBlocks.js:556 +msgid "start drum" msgstr "" -#: js/turtledefs.js:499 -msgid "Record your project as video." +#: js/logo.js:61 +msgid "Not a valid pitch name" msgstr "" -#: js/turtledefs.js:505 -msgid "Toggle Fullscreen mode." +#: js/logo.js:507 +#: js/blocks/ProgramBlocks.js:258 +#: js/blocks/ProgramBlocks.js:427 +msgid "You must select a file." msgstr "" -#: js/turtledefs.js:511 -msgid "Initialize a new project." +#: js/logo.js:1696 +msgid "Playback is ready." msgstr "" -#: js/turtledefs.js:517 -msgid "You can also load projects from the file system." +#: js/macros.js:711 +#: js/utils/musicutils.js:1162 +#: js/utils/synthutils.js:202 +#.TRANS: animal sound effect +msgid "duck" msgstr "" -#: js/turtledefs.js:522 -#: js/StringHelper.js:46 -msgid "Delete" +#: js/notation.js:353 +msgid "Lilypond cannot process pickup of " msgstr "" -#: js/turtledefs.js:523 -msgid "To delete a block, just right-click on it, then you will be able to see the delete option" +#: js/palette.js:571 +msgid "grid" msgstr "" -#: js/turtledefs.js:528 -#: js/activity.js:2270 -#: js/LocalCard.js:31 -msgid "Copy" +#: js/palette.js:580 +msgid "effect" msgstr "" -#: js/turtledefs.js:529 -msgid "To copy a block, just right-click on it, then you will be able to see the copy option" +#: js/palette.js:586 +msgid "sargam" msgstr "" -#: js/turtledefs.js:535 -msgid "To extract a block, just right-click on it, then you will be able to see the extract option" +#: js/palette.js:601 +#: js/blocks/PitchBlocks.js:1209 +msgid "custom pitch" msgstr "" -#: js/turtledefs.js:542 -#: js/turtledefs.js:552 -#: js/turtledefs.js:573 -msgid "Save your project to a file." +#: js/palette.js:609 +msgid "accidental" msgstr "" -#: js/turtledefs.js:549 -#: js/turtledefs.js:570 -msgid "save" +#: js/palette.js:633 +#: js/blocks/PitchBlocks.js:405 +msgid "pitch converter" msgstr "" -#: js/turtledefs.js:556 -#: js/turtledefs.js:577 -msgid "Save graphics from your project to as SVG." +#: js/piemenus.js:200 +#: js/utils/musicutils.js:1187 +#: js/utils/musicutils.js:1207 +#: js/widgets/musickeyboard.js:2341 +#: js/widgets/phrasemaker.js:1908 +#: js/widgets/sampler.js:810 +#.TRANS: double sharp is a music term related to pitch +msgid "double sharp" msgstr "" -#: js/turtledefs.js:560 -#: js/turtledefs.js:581 -msgid "Save graphics from your project as PNG." +#: js/piemenus.js:201 +#: js/utils/musicutils.js:1185 +#: js/utils/musicutils.js:1208 +#: js/blocks/PitchBlocks.js:1539 +#: js/turtleactions/PitchActions.js:323 +#: js/widgets/musickeyboard.js:2342 +#: js/widgets/phrasemaker.js:1909 +#: js/widgets/sampler.js:811 +#.TRANS: sharp is a music term related to pitch +#.TRANS: sharp is a half-step up in pitch +msgid "sharp" msgstr "" -#: js/turtledefs.js:564 -#: js/turtledefs.js:597 -msgid "Save block artwork as an SVG file." +#: js/piemenus.js:202 +#: js/utils/musicutils.js:1183 +#: js/utils/musicutils.js:1209 +#: js/widgets/musickeyboard.js:2343 +#: js/widgets/phrasemaker.js:1910 +#: js/widgets/sampler.js:812 +#.TRANS: natural is a music term related to pitch +msgid "natural" msgstr "" -#: js/turtledefs.js:585 -msgid "Save audio from your project as WAV." +#: js/piemenus.js:203 +#: js/utils/musicutils.js:1181 +#: js/utils/musicutils.js:1210 +#: js/blocks/PitchBlocks.js:1498 +#: js/turtleactions/PitchActions.js:326 +#: js/widgets/musickeyboard.js:2344 +#: js/widgets/phrasemaker.js:1911 +#: js/widgets/sampler.js:813 +#.TRANS: flat is a music term related to pitch +#.TRANS: flat is a half-step down in pitch +msgid "flat" msgstr "" -#: js/turtledefs.js:589 -msgid "Save your project to as an ABC file." +#: js/piemenus.js:204 +#: js/utils/musicutils.js:1179 +#: js/utils/musicutils.js:1211 +#: js/widgets/musickeyboard.js:2345 +#: js/widgets/phrasemaker.js:1912 +#: js/widgets/sampler.js:814 +#.TRANS: double flat is a music term related to pitch +msgid "double flat" msgstr "" -#: js/turtledefs.js:593 -msgid "Save your project to as a Lilypond file." +#: js/piemenus.js:2864 +#: js/utils/musicutils.js:1006 +#: js/blocks/PitchBlocks.js:1385 +#.TRANS: unison is a music term related to intervals +#.TRANS: unison means the note is the same as the current note +msgid "unison" msgstr "" -#: js/turtledefs.js:604 -msgid "Load samples from server" +#: js/piemenus.js:3018 +#: js/piemenus.js:3091 +#: js/utils/musicutils.js:1014 +#: js/utils/musicutils.js:1189 +#: js/utils/musicutils.js:1326 +#.TRANS: major is a music term related to intervals and mode +msgid "major" msgstr "" -#: js/turtledefs.js:605 -msgid "This button opens a viewer for loading example projects." +#: js/piemenus.js:3018 +#: js/piemenus.js:3091 +#: js/utils/musicutils.js:1032 +#.TRANS: modal scale for music +msgid "ionian" msgstr "" -#: js/turtledefs.js:611 -msgid "Palette buttons" +#: js/piemenus.js:3020 +#: js/piemenus.js:3095 +#: js/utils/musicutils.js:1012 +#: js/utils/musicutils.js:1190 +#: js/utils/musicutils.js:1323 +#.TRANS: minor is a music term related to intervals and mode +msgid "minor" msgstr "" -#: js/turtledefs.js:612 -msgid "This toolbar contains the palette buttons including Rhythm Pitch Tone Action and more." +#: js/piemenus.js:3020 +#: js/piemenus.js:3095 +#: js/utils/musicutils.js:1042 +#.TRANS: modal scale for music +msgid "aeolian" msgstr "" -#: js/turtledefs.js:614 -msgid "Click to show the palettes of blocks and drag blocks from the palettes onto the canvas to use them." +#: js/piemenus.js:3410 +msgid "Duplicate" msgstr "" -#: js/turtledefs.js:620 -msgid "Cartesian/Polar" +#: js/piemenus.js:3412 +msgid "Move to trash" msgstr "" -#: js/turtledefs.js:621 -msgid "Show or hide a coordinate grid." +#: js/piemenus.js:3413 +#: js/widgets/timbre.js:968 +#: planet/js/StringHelper.js:69 +msgid "Close" msgstr "" -#: js/turtledefs.js:627 -msgid "Clear the screen and return the mice to their initial positions." +#: js/piemenus.js:3419 +msgid "Save stack" msgstr "" -#: js/turtledefs.js:633 -msgid "Collapse the graphics window." +#: js/piemenus.js:3449 +msgid "In order to copy a sample, you must reload the widget, import the sample again, and export it." msgstr "" -#: js/turtledefs.js:638 -#: js/activity.js:4256 -#: js/activity.js:4256 -msgid "Home" +#: js/piemenus.js:3812 +msgid "You have chosen key " msgstr "" -#: js/turtledefs.js:639 -msgid "Return all blocks to the center of the screen." +#: js/piemenus.js:3816 +msgid " for your pitch preview." msgstr "" -#: js/turtledefs.js:644 -msgid "Show/hide blocks" +#: js/turtle-singer.js:1363 +#.TRANS: partials are weighted components in a harmonic series +msgid "You must have at least one Partial block inside of a Weighted-partial block" msgstr "" -#: js/turtledefs.js:645 -msgid "Hide or show the blocks and the palettes." +#: js/turtle-singer.js:2077 +msgid "synth cannot play chords." msgstr "" -#: js/turtledefs.js:650 -msgid "Expand/collapse collapsable blocks" +#: js/utils/musicutils.js:505 +#: js/utils/musicutils.js:645 +#: js/widgets/pitchdrummatrix.js:228 +#: js/widgets/musickeyboard.js:2885 +msgid "rest" msgstr "" -#: js/turtledefs.js:651 -msgid "Expand or collapse start and action stacks." +#: js/utils/musicutils.js:689 +msgid "Perfect unison" msgstr "" -#: js/turtledefs.js:658 -#: js/activity.js:4265 -msgid "Decrease block size" +#: js/utils/musicutils.js:689 +msgid "Diminished second" msgstr "" -#: js/turtledefs.js:659 -msgid "Decrease the size of the blocks." +#: js/utils/musicutils.js:690 +msgid "Minor second" msgstr "" -#: js/turtledefs.js:664 -#: js/activity.js:4267 -msgid "Increase block size" +#: js/utils/musicutils.js:690 +msgid "Augmented unison" msgstr "" -#: js/turtledefs.js:665 -msgid "Increase the size of the blocks." +#: js/utils/musicutils.js:691 +msgid "Major second" msgstr "" -#: js/turtledefs.js:670 -msgid "Expand/collapse option toolbar" +#: js/utils/musicutils.js:691 +msgid "Diminished third" msgstr "" -#: js/turtledefs.js:671 -msgid "Click this button to expand or collapse the auxillary toolbar." +#: js/utils/musicutils.js:692 +msgid "Minor third" msgstr "" -#: js/turtledefs.js:676 -msgid "Run slow" +#: js/utils/musicutils.js:692 +msgid "Augmented second" msgstr "" -#: js/turtledefs.js:677 -msgid "Click to run the project in slow mode." +#: js/utils/musicutils.js:693 +msgid "Major third" msgstr "" -#: js/turtledefs.js:683 -msgid "Click to run the project step by step." +#: js/utils/musicutils.js:693 +msgid "Diminished fourth" msgstr "" -#: js/turtledefs.js:690 -msgid "Display statistics about your Music project." +#: js/utils/musicutils.js:694 +msgid "Perfect fourth" msgstr "" -#: js/turtledefs.js:697 -msgid "Delete a selected plugin." +#: js/utils/musicutils.js:694 +msgid "Augmented third" msgstr "" -#: js/turtledefs.js:704 -msgid "Enable scrolling" +#: js/utils/musicutils.js:695 +msgid "Diminished fifth" msgstr "" -#: js/turtledefs.js:705 -msgid "You can scroll the blocks on the canvas." +#: js/utils/musicutils.js:695 +msgid "Augmented fourth" msgstr "" -#: js/turtledefs.js:714 -msgid "Wrap Turtle" +#: js/utils/musicutils.js:696 +msgid "Perfect fifth" msgstr "" -#: js/turtledefs.js:715 -msgid "Turn Turtle wrapping On or Off." +#: js/utils/musicutils.js:696 +msgid "Diminished sixth" msgstr "" -#: js/turtledefs.js:725 -msgid "Restore blocks from the trash." +#: js/utils/musicutils.js:697 +msgid "Minor sixth" msgstr "" -#: js/turtledefs.js:732 -msgid "Switch mode" +#: js/utils/musicutils.js:697 +msgid "Augmented fifth" msgstr "" -#: js/turtledefs.js:733 -msgid "Switch between beginner and advance modes." +#: js/utils/musicutils.js:698 +msgid "Major sixth" msgstr "" -#: js/turtledefs.js:739 -msgid "Select your language preference." +#: js/utils/musicutils.js:698 +msgid "Diminished seventh" msgstr "" -#: js/turtledefs.js:745 -msgid "Keyboard shortcuts" +#: js/utils/musicutils.js:699 +msgid "Minor seventh" msgstr "" -#: js/turtledefs.js:746 -msgid "You can type d to create a do block and r to create a re block etc." +#: js/utils/musicutils.js:699 +msgid "Augmented sixth" msgstr "" -#: js/turtledefs.js:753 -msgid "Show these messages." +#: js/utils/musicutils.js:700 +msgid "Major seventh" msgstr "" -#: js/turtledefs.js:759 -#: js/turtledefs.js:790 -#: js/help.js:335 -msgid "Guide" +#: js/utils/musicutils.js:700 +msgid "Diminished octave" msgstr "" -#: js/turtledefs.js:760 -msgid "A detailed guide to Turtle Blocks is available." +#: js/utils/musicutils.js:701 +msgid "Perfect octave" msgstr "" -#: js/turtledefs.js:764 -msgid "Turtle Blocks Guide" +#: js/utils/musicutils.js:701 +msgid "Augmented seventh" msgstr "" -#: js/turtledefs.js:767 -#: js/turtledefs.js:798 -#: js/help.js:336 -msgid "About" +#: js/utils/musicutils.js:702 +msgid "Minor ninth" msgstr "" -#: js/turtledefs.js:768 -msgid "Turtle Blocks is an open source collection of tools for exploring musical concepts." +#: js/utils/musicutils.js:702 +msgid "Augmented octave" msgstr "" -#: js/turtledefs.js:770 -msgid "A full list of contributors can be found in the Turtle Blocks GitHub repository." +#: js/utils/musicutils.js:703 +msgid "Major ninth" msgstr "" -#: js/turtledefs.js:772 -msgid "Turtle Blocks is licensed under the AGPL." +#: js/utils/musicutils.js:703 +msgid "Diminished tenth" msgstr "" -#: js/turtledefs.js:780 -msgid "Turtle Blocks GitHub repository" +#: js/utils/musicutils.js:704 +msgid "Minor tenth" msgstr "" -#: js/turtledefs.js:783 -#: js/turtledefs.js:814 -#: js/help.js:337 -#: js/help.js:359 -msgid "Congratulations." +#: js/utils/musicutils.js:704 +msgid "Augmented ninth" msgstr "" -#: js/turtledefs.js:784 -msgid "You have finished the tour. Please enjoy Turtle Blocks!" +#: js/utils/musicutils.js:705 +msgid "Major tenth" msgstr "" -#: js/turtledefs.js:791 -msgid "A detailed guide to Music Blocks is available." +#: js/utils/musicutils.js:705 +msgid "Diminished eleventh" msgstr "" -#: js/turtledefs.js:795 -#: js/SaveInterface.js:76 -msgid "Music Blocks Guide" +#: js/utils/musicutils.js:706 +msgid "Perfect eleventh" msgstr "" -#: js/turtledefs.js:799 -msgid "Music Blocks is an open source collection of tools for exploring musical concepts." +#: js/utils/musicutils.js:706 +msgid "Augmented tenth" msgstr "" -#: js/turtledefs.js:801 -msgid "A full list of contributors can be found in the Music Blocks GitHub repository." +#: js/utils/musicutils.js:707 +msgid "Diminished twelfth" msgstr "" -#: js/turtledefs.js:803 -msgid "Music Blocks is licensed under the AGPL." +#: js/utils/musicutils.js:707 +msgid "Augmented eleventh" msgstr "" -#: js/turtledefs.js:811 -msgid "Music Blocks GitHub repository" +#: js/utils/musicutils.js:708 +msgid "Perfect twelfth" msgstr "" -#: js/turtledefs.js:815 -msgid "You have finished the tour. Please enjoy Music Blocks!" +#: js/utils/musicutils.js:708 +msgid "Diminished thirteenth" msgstr "" -#: js/activity.js:369 -msgid "Search for blocks" +#: js/utils/musicutils.js:709 +msgid "Minor thirteenth" msgstr "" -#: js/activity.js:1145 -msgid "Refresh your browser to change to advanced mode." +#: js/utils/musicutils.js:709 +msgid "Augmented fifth, plus an octave" msgstr "" -#: js/activity.js:1150 -msgid "Refresh your browser to change to beginner mode." +#: js/utils/musicutils.js:710 +msgid "Major thirteenth" msgstr "" -#: js/activity.js:1184 -msgid "Catching mice" +#: js/utils/musicutils.js:710 +msgid "Diminished seventh, plus an octave" msgstr "" -#: js/activity.js:1185 -msgid "Cleaning the instruments" +#: js/utils/musicutils.js:838 +#.TRANS: ordinal number. Please keep exactly one space between each number. +msgid "1st 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th" msgstr "" -#: js/activity.js:1186 -msgid "Testing key pieces" +#: js/utils/musicutils.js:1008 +#: js/utils/musicutils.js:1191 +#: js/utils/musicutils.js:1325 +#.TRANS: augmented is a music term related to intervals +msgid "augmented" msgstr "" -#: js/activity.js:1187 -msgid "Sight-reading" +#: js/utils/musicutils.js:1010 +#: js/utils/musicutils.js:1192 +#: js/utils/musicutils.js:1324 +#.TRANS: diminished is a music term related to intervals and mode +msgid "diminished" msgstr "" -#: js/activity.js:1188 -msgid "Combining math and music" +#: js/utils/musicutils.js:1016 +#: js/utils/musicutils.js:1322 +#: js/blocks/IntervalsBlocks.js:649 +#: js/turtleactions/IntervalsActions.js:120 +#: js/turtleactions/IntervalsActions.js:124 +#.TRANS: perfect is a music term related to intervals +msgid "perfect" +msgstr "" + +#: js/utils/musicutils.js:1018 +#.TRANS: twelve semi-tone scale for music +msgid "chromatic" msgstr "" -#: js/activity.js:1189 -msgid "Generating more blocks" +#: js/utils/musicutils.js:1019 +msgid "algerian" msgstr "" -#: js/activity.js:1190 -msgid "Do Re Mi Fa Sol La Ti Do" +#: js/utils/musicutils.js:1020 +msgid "spanish" msgstr "" -#: js/activity.js:1191 -msgid "Tuning string instruments" +#: js/utils/musicutils.js:1022 +#.TRANS: modal scale in music +msgid "octatonic" msgstr "" -#: js/activity.js:1192 -msgid "Pressing random keys" +#: js/utils/musicutils.js:1024 +#.TRANS: harmonic major scale in music +msgid "harmonic major" msgstr "" -#: js/activity.js:1351 -msgid "plugins will be removed upon restart." +#: js/utils/musicutils.js:1026 +#.TRANS: natural minor scales in music +msgid "natural minor" msgstr "" -#: js/activity.js:1360 -msgid "show Cartesian" +#: js/utils/musicutils.js:1028 +#.TRANS: harmonic minor scale in music +msgid "harmonic minor" msgstr "" -#: js/activity.js:1842 -msgid "output tools" +#: js/utils/musicutils.js:1030 +#.TRANS: melodic minor scale in music +msgid "melodic minor" msgstr "" -#: js/activity.js:1845 -msgid "custom note" +#: js/utils/musicutils.js:1034 +#.TRANS: modal scale for music +msgid "dorian" msgstr "" -#: js/activity.js:1848 -msgid "accidental name" +#: js/utils/musicutils.js:1036 +#.TRANS: modal scale for music +msgid "phrygian" msgstr "" -#: js/activity.js:1851 -#: js/PitchBlocks.js:855 -msgid "east indian solfege" +#: js/utils/musicutils.js:1038 +#.TRANS: modal scale for music +msgid "lydian" msgstr "" -#: js/activity.js:1854 -#: js/PitchBlocks.js:869 -msgid "note name" +#: js/utils/musicutils.js:1040 +#.TRANS: modal scale for music +msgid "mixolydian" msgstr "" -#: js/activity.js:1857 -#: js/IntervalsBlocks.js:94 -msgid "temperament name" +#: js/utils/musicutils.js:1044 +#.TRANS: modal scale for music +msgid "locrian" msgstr "" -#: js/activity.js:1863 -msgid "chord name" +#: js/utils/musicutils.js:1046 +#.TRANS: minor jazz scale for music +msgid "jazz minor" msgstr "" -#: js/activity.js:1869 -msgid "filter type" +#: js/utils/musicutils.js:1048 +#.TRANS: bebop scale for music +msgid "bebop" msgstr "" -#: js/activity.js:1872 -msgid "oscillator type" +#: js/utils/musicutils.js:1049 +msgid "arabic" msgstr "" -#: js/activity.js:1878 -#: js/DrumBlocks.js:32 -msgid "noise name" +#: js/utils/musicutils.js:1050 +msgid "byzantine" msgstr "" -#: js/activity.js:1881 -#: js/DrumBlocks.js:75 -msgid "drum name" +#: js/utils/musicutils.js:1052 +#.TRANS: musical scale for music by Verdi +msgid "enigmatic" msgstr "" -#: js/activity.js:1884 -#: js/DrumBlocks.js:119 -msgid "effects name" +#: js/utils/musicutils.js:1053 +msgid "ethiopian" msgstr "" -#: js/activity.js:1887 -msgid "wrap mode" +#: js/utils/musicutils.js:1055 +#.TRANS: Ethiopic scale for music +msgid "geez" msgstr "" -#: js/activity.js:1890 -msgid "load file" +#: js/utils/musicutils.js:1056 +msgid "hindu" msgstr "" -#: js/activity.js:2056 -msgid "This block is deprecated." +#: js/utils/musicutils.js:1057 +msgid "hungarian" msgstr "" -#: js/activity.js:2058 -msgid "Block cannot be found." +#: js/utils/musicutils.js:1059 +#.TRANS: minor Romanian scale for music +msgid "romanian minor" msgstr "" -#: js/activity.js:2266 -msgid "Saving block artwork" +#: js/utils/musicutils.js:1060 +msgid "spanish gypsy" msgstr "" -#: js/activity.js:2277 -msgid "Erase" +#: js/utils/musicutils.js:1062 +#.TRANS: musical scale for Mid-Eastern music +msgid "maqam" msgstr "" -#: js/activity.js:2301 -#: js/activity.js:2323 -msgid "Paste" +#: js/utils/musicutils.js:1064 +#.TRANS: minor blues scale for music +msgid "minor blues" msgstr "" -#: js/activity.js:2305 -msgid "Save block help" +#: js/utils/musicutils.js:1066 +#.TRANS: major blues scale for music +msgid "major blues" msgstr "" -#: js/activity.js:2390 -msgid "Jumping to the bottom of the page." +#: js/utils/musicutils.js:1067 +msgid "whole tone" msgstr "" -#: js/activity.js:2396 -msgid "Scrolling up." +#: js/utils/musicutils.js:1069 +#.TRANS: pentatonic is a general term that means "five note scale". This scale is typically known as "minor pentatonic" +msgid "minor pentatonic" msgstr "" -#: js/activity.js:2401 -msgid "Scrolling down." +#: js/utils/musicutils.js:1071 +#.TRANS: pentatonic is a general term that means "five note scale". This scale is typically known as "major pentatonic" +msgid "major pentatonic" msgstr "" -#: js/activity.js:2406 -msgid "Extracting block" +#: js/utils/musicutils.js:1072 +msgid "chinese" msgstr "" -#: js/activity.js:2414 -msgid "Moving block up." +#: js/utils/musicutils.js:1073 +msgid "egyptian" msgstr "" -#: js/activity.js:2435 -msgid "Moving block down." +#: js/utils/musicutils.js:1075 +#.TRANS: https://en.wikipedia.org/wiki/Hirajoshi_scale NOTE: There are three different versions of this scale +msgid "hirajoshi" msgstr "" -#: js/activity.js:2456 -msgid "Moving block left." +#: js/utils/musicutils.js:1076 +msgid "Japan" msgstr "" -#: js/activity.js:2473 -msgid "Moving block right." +#: js/utils/musicutils.js:1078 +#.TRANS: https://en.wikipedia.org/wiki/In_scale and https://en.wikipedia.org/wiki/Sakura_Sakura +msgid "in" msgstr "" -#: js/activity.js:2488 -msgid "Jump to home position." +#: js/utils/musicutils.js:1080 +#.TRANS: https://en.wikipedia.org/wiki/Miny%C5%8D_scale +msgid "minyo" msgstr "" -#: js/activity.js:2515 -msgid "Hide blocks" +#: js/utils/musicutils.js:1082 +#.TRANS: Italian mathematician +msgid "fibonacci" msgstr "" -#: js/activity.js:3389 -msgid "Click the run button to run the project." +#: js/utils/musicutils.js:1083 +#: js/utils/musicutils.js:1134 +#: js/utils/musicutils.js:1177 +#: js/utils/musicutils.js:1199 +#: js/utils/synthutils.js:134 +#: js/blocks/IntervalsBlocks.js:1124 +#: js/blocks/ToneBlocks.js:946 +#: js/blocks/VolumeBlocks.js:411 +#: js/blocks/WidgetBlocks.js:399 +#: js/blocks/WidgetBlocks.js:404 +#: js/turtleactions/VolumeActions.js:218 +#: js/widgets/modewidget.js:919 +#.TRANS: customize voice +msgid "custom" msgstr "" -#: js/activity.js:3456 -#: js/SaveInterface.js:131 -#: js/SaveInterface.js:204 -#: js/SaveInterface.js:262 -#: js/SaveInterface.js:389 -#: js/SaveInterface.js:417 -#: js/ProjectStorage.js:27 -#: js/GlobalPlanet.js:467 -#: js/GlobalPlanet.js:469 -#: js/GlobalPlanet.js:495 -#.TRANS: default project title when saving as Lilypond -msgid "My Project" +#: js/utils/musicutils.js:1085 +#: js/utils/musicutils.js:1531 +#: js/blocks/WidgetBlocks.js:176 +#.TRANS: highpass filter +msgid "highpass" msgstr "" -#: js/activity.js:4261 -msgid "Show/hide block" +#: js/utils/musicutils.js:1087 +#: js/utils/musicutils.js:1532 +#.TRANS: lowpass filter +msgid "lowpass" msgstr "" -#: js/activity.js:4263 -msgid "Expand/collapse blocks" +#: js/utils/musicutils.js:1089 +#: js/utils/musicutils.js:1533 +#.TRANS: bandpass filter +msgid "bandpass" msgstr "" -#: js/activity.js:4381 -msgid "Could not parse JSON input." +#: js/utils/musicutils.js:1091 +#: js/utils/musicutils.js:1534 +#.TRANS: high-shelf filter +msgid "highshelf" msgstr "" -#: js/activity.js:4684 -#: js/activity.js:4771 -#: js/activity.js:4821 -msgid "Cannot load project from the file. Please check the file type." +#: js/utils/musicutils.js:1093 +#: js/utils/musicutils.js:1535 +#.TRANS: low-shelf filter +msgid "lowshelf" msgstr "" -#: js/activity.js:5051 -msgid "Invalid parameters" +#: js/utils/musicutils.js:1095 +#: js/utils/musicutils.js:1536 +#.TRANS: notch-shelf filter +msgid "notch" msgstr "" -#: js/turtle-singer.js:1334 -#.TRANS: partials are weighted components in a harmonic series -msgid "You must have at least one Partial block inside of a Weighted-partial block" +#: js/utils/musicutils.js:1097 +#: js/utils/musicutils.js:1537 +#.TRANS: all-pass filter +msgid "allpass" msgstr "" -#: js/turtle-singer.js:2048 -msgid "synth cannot play chords." +#: js/utils/musicutils.js:1099 +#: js/utils/musicutils.js:1538 +#.TRANS: peaking filter +msgid "peaking" msgstr "" -#: js/lilypond.js:614 -msgid "brown rat" +#: js/utils/musicutils.js:1100 +#: js/utils/musicutils.js:1546 +#: js/utils/synthutils.js:126 +#: js/blocks/PitchBlocks.js:85 +#.TRANS: sine wave +msgid "sine" msgstr "" -#: js/lilypond.js:615 -msgid "mole" +#: js/utils/musicutils.js:1101 +#: js/utils/musicutils.js:1547 +#: js/utils/synthutils.js:128 +#: js/blocks/PitchBlocks.js:39 +#.TRANS: square wave +msgid "square" msgstr "" -#: js/lilypond.js:616 -msgid "chipmunk" +#: js/utils/musicutils.js:1102 +#: js/utils/musicutils.js:1548 +#: js/utils/synthutils.js:132 +#: js/blocks/PitchBlocks.js:62 +#: js/blocks/ToneBlocks.js:39 +#.TRANS: triangle wave +msgid "triangle" msgstr "" -#: js/lilypond.js:617 -msgid "red squirrel" +#: js/utils/musicutils.js:1103 +#: js/utils/musicutils.js:1549 +#: js/utils/synthutils.js:130 +#: js/blocks/PitchBlocks.js:108 +#.TRANS: sawtooth wave +msgid "sawtooth" msgstr "" -#: js/lilypond.js:618 -msgid "guinea pig" +#: js/utils/musicutils.js:1105 +#: js/utils/musicutils.js:1312 +#: js/blocks/PitchBlocks.js:931 +#: js/blocks/PitchBlocks.js:937 +#: js/turtleactions/PitchActions.js:469 +#.TRANS: even numbers +#.TRANS: invert based on even or odd number or musical scale +msgid "even" msgstr "" -#: js/lilypond.js:619 -msgid "capybara" +#: js/utils/musicutils.js:1107 +#: js/utils/musicutils.js:1313 +#: js/blocks/PitchBlocks.js:937 +#: js/turtleactions/PitchActions.js:471 +#.TRANS: odd numbers +msgid "odd" msgstr "" -#: js/lilypond.js:620 -msgid "coypu" +#: js/utils/musicutils.js:1108 +#: js/utils/musicutils.js:1314 +#: js/blocks/PitchBlocks.js:937 +#: js/turtleactions/PitchActions.js:473 +msgid "scalar" msgstr "" -#: js/lilypond.js:621 -msgid "black rat" +#: js/utils/musicutils.js:1109 +#: js/utils/synthutils.js:72 +#: js/blocks/VolumeBlocks.js:47 +#.TRANS: musical instrument +msgid "piano" msgstr "" -#: js/lilypond.js:622 -msgid "grey squirrel" +#: js/utils/musicutils.js:1110 +#: js/utils/synthutils.js:74 +#.TRANS: musical instrument +msgid "violin" msgstr "" -#: js/lilypond.js:623 -msgid "flying squirrel" +#: js/utils/musicutils.js:1111 +#: js/utils/synthutils.js:76 +#.TRANS: viola musical instrument +msgid "viola" msgstr "" -#: js/lilypond.js:624 -msgid "bat" +#: js/utils/musicutils.js:1112 +#: js/utils/synthutils.js:114 +#.TRANS: xylophone musical instrument +msgid "xylophone" msgstr "" -#: js/lilypond.js:757 -#: js/lilypond.js:921 -#: js/lilypond.js:959 -#: js/ActionBlocks.js:1256 -#: js/ExtrasBlocks.js:553 -msgid "start drum" +#: js/utils/musicutils.js:1113 +#: js/utils/synthutils.js:136 +#.TRANS: vibraphone musical instrument +msgid "vibraphone" msgstr "" -#: js/SaveInterface.js:59 -#: js/SaveInterface.js:61 -#: js/SaveInterface.js:93 -msgid "Music Blocks Project" +#: js/utils/musicutils.js:1114 +#: js/utils/synthutils.js:78 +#.TRANS: musical instrument +msgid "cello" msgstr "" -#: js/SaveInterface.js:63 -msgid "This project was created in Music Blocks" +#: js/utils/musicutils.js:1116 +#: js/utils/synthutils.js:82 +#.TRANS: viola musical instrument +msgid "double bass" msgstr "" -#: js/SaveInterface.js:67 -msgid "Music Blocks is a Free/Libre Software application." +#: js/utils/musicutils.js:1117 +#: js/utils/synthutils.js:84 +#: js/widgets/rhythmruler.js:2511 +#.TRANS: musical instrument +msgid "guitar" msgstr "" -#: js/SaveInterface.js:69 -msgid "The source code can be accessed at" +#: js/utils/musicutils.js:1118 +#: js/utils/synthutils.js:86 +#.TRANS: musical instrument +msgid "acoustic guitar" msgstr "" -#: js/SaveInterface.js:72 -msgid "For more information, please consult the" +#: js/utils/musicutils.js:1119 +#: js/utils/synthutils.js:88 +#.TRANS: musical instrument +msgid "flute" msgstr "" -#: js/SaveInterface.js:83 -msgid "Alternatively, open the file in Music Blocks using the Load project button." +#: js/utils/musicutils.js:1120 +#: js/utils/synthutils.js:90 +#.TRANS: musical instrument +msgid "clarinet" msgstr "" -#: js/SaveInterface.js:85 -msgid "Project Code" +#: js/utils/musicutils.js:1121 +#: js/utils/synthutils.js:92 +#.TRANS: musical instrument +msgid "saxophone" msgstr "" -#: js/SaveInterface.js:87 -msgid "This code stores data about the blocks in a project." +#: js/utils/musicutils.js:1122 +#: js/utils/synthutils.js:94 +#.TRANS: musical instrument +msgid "tuba" msgstr "" -#: js/SaveInterface.js:89 -msgid "Show" +#: js/utils/musicutils.js:1123 +#: js/utils/synthutils.js:96 +#.TRANS: musical instrument +msgid "trumpet" msgstr "" -#: js/SaveInterface.js:91 -msgid "Hide" +#: js/utils/musicutils.js:1124 +#: js/utils/synthutils.js:98 +#.TRANS: musical instrument +msgid "oboe" msgstr "" -#: js/SaveInterface.js:197 -#: js/SaveInterface.js:58 -msgid "No description provided" +#: js/utils/musicutils.js:1125 +#: js/utils/synthutils.js:100 +#.TRANS: musical instrument +msgid "trombone" msgstr "" -#: js/SaveInterface.js:332 -msgid "Your recording is in progress." +#: js/utils/musicutils.js:1126 +#: js/utils/synthutils.js:116 +#.TRANS: polytone synthesizer +msgid "electronic synth" msgstr "" -#: js/SaveInterface.js:401 -#.TRANS: File name prompt for save as Lilypond -msgid "File name" +#: js/utils/musicutils.js:1127 +#: js/utils/synthutils.js:118 +#.TRANS: simple monotone synthesizer +msgid "simple 1" msgstr "" -#: js/SaveInterface.js:403 -#: js/StringHelper.js:39 -#.TRANS: Project title prompt for save as Lilypond -msgid "Project title" +#: js/utils/musicutils.js:1128 +msgid "simple 2" msgstr "" -#: js/SaveInterface.js:405 -#.TRANS: Project title prompt for save as Lilypond -msgid "Project author" +#: js/utils/musicutils.js:1129 +msgid "simple 3" msgstr "" -#: js/SaveInterface.js:407 -#.TRANS: MIDI prompt for save as Lilypond -msgid "Include MIDI output?" +#: js/utils/musicutils.js:1130 +msgid "simple 4" msgstr "" -#: js/SaveInterface.js:409 -#.TRANS: Guitar prompt for save as Lilypond -msgid "Include guitar tablature output?" +#: js/utils/musicutils.js:1131 +#: js/utils/synthutils.js:58 +#: js/blocks/DrumBlocks.js:191 +#.TRANS: white noise synthesizer +msgid "white noise" msgstr "" -#: js/SaveInterface.js:411 -#.TRANS: Lilypond is a scripting language for generating sheet music -msgid "Save as Lilypond" +#: js/utils/musicutils.js:1132 +#: js/utils/synthutils.js:60 +#.TRANS: brown noise synthesizer +msgid "brown noise" msgstr "" -#: js/SaveInterface.js:426 -#: js/EnsembleBlocks.js:75 -#: js/EnsembleBlocks.js:154 -#: js/EnsembleBlocks.js:216 -#: js/EnsembleBlocks.js:302 -#: js/EnsembleBlocks.js:348 -#: js/EnsembleBlocks.js:389 -#: js/EnsembleBlocks.js:441 -#: js/EnsembleBlocks.js:490 -#: js/EnsembleBlocks.js:536 -#: js/EnsembleBlocks.js:583 -#: js/EnsembleBlocks.js:637 -#: js/EnsembleBlocks.js:753 -#: js/EnsembleBlocks.js:840 -#: js/EnsembleBlocks.js:899 -#: js/EnsembleBlocks.js:942 -#: js/EnsembleBlocks.js:1212 -#: js/EnsembleBlocks.js:1280 -#.TRANS: default project author when saving as Lilypond -msgid "Mr. Mouse" +#: js/utils/musicutils.js:1133 +#: js/utils/synthutils.js:62 +#.TRANS: pink noise synthesizer +msgid "pink noise" msgstr "" -#: js/SaveInterface.js:573 -msgid "The Lilypond code is copied to clipboard. You can paste it here: " +#: js/utils/musicutils.js:1135 +#: js/utils/synthutils.js:148 +#: js/widgets/rhythmruler.js:2057 +#: js/widgets/rhythmruler.js:2319 +#.TRANS: musical instrument +msgid "snare drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:50 -#: js/RhythmBlockPaletteBlocks.js:232 -#.TRANS: rhythm block -#.TRANS: translate "rhythm1" as rhythm -msgid "rhythm1" +#: js/utils/musicutils.js:1136 +#: js/utils/synthutils.js:150 +#.TRANS: musical instrument +msgid "kick drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:70 -#: js/RhythmBlockPaletteBlocks.js:251 -#: js/RhythmBlockPaletteBlocks.js:484 -#: js/RhythmBlockPaletteBlocks.js:553 -#: js/RhythmBlockPaletteBlocks.js:874 -msgid "number of notes" +#: js/utils/musicutils.js:1137 +#: js/utils/synthutils.js:152 +#.TRANS: musical instrument +msgid "tom tom" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:126 -msgid "polyphonic rhythm" +#: js/utils/musicutils.js:1138 +#: js/utils/synthutils.js:154 +#.TRANS: musical instrument +msgid "floor tom" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:218 -msgid "The Rhythm block is used to generate rhythm patterns." +#: js/utils/musicutils.js:1139 +#: js/utils/synthutils.js:156 +#.TRANS: musical instrument +msgid "bass drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:279 -msgid "1/64 note" +#: js/utils/musicutils.js:1140 +#: js/utils/synthutils.js:158 +#.TRANS: a drum made from an inverted cup +msgid "cup drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:303 -msgid "1/32 note" +#: js/utils/musicutils.js:1141 +#: js/utils/synthutils.js:160 +#.TRANS: musical instrument +msgid "darbuka drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:331 -msgid "1/16 note" +#: js/utils/musicutils.js:1142 +#: js/utils/synthutils.js:164 +#.TRANS: musical instrument +msgid "hi hat" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:359 -msgid "eighth note" +#: js/utils/musicutils.js:1143 +#: js/utils/synthutils.js:166 +#.TRANS: a small metal bell +msgid "ride bell" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:387 -msgid "quarter note" +#: js/utils/musicutils.js:1144 +#: js/utils/synthutils.js:168 +#.TRANS: musical instrument +msgid "cow bell" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:415 -msgid "half note" +#: js/utils/musicutils.js:1145 +msgid "japanese drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:443 -msgid "whole note" +#: js/utils/musicutils.js:1146 +#: js/utils/synthutils.js:174 +#.TRANS: musical instrument +msgid "japanese bell" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:481 -#: js/RhythmBlockPaletteBlocks.js:550 -#: js/RhythmBlockPaletteBlocks.js:601 -#.TRANS: A tuplet is a note value divided into irregular time values. -msgid "tuplet" +#: js/utils/musicutils.js:1147 +#: js/utils/synthutils.js:170 +#.TRANS: musical instrument +msgid "triangle bell" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:767 -msgid "septuplet" +#: js/utils/musicutils.js:1148 +#: js/utils/synthutils.js:172 +#.TRANS: musical instrument +msgid "finger cymbals" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:795 -msgid "quintuplet" +#: js/utils/musicutils.js:1149 +#: js/utils/synthutils.js:176 +#.TRANS: a musically tuned set of bells +msgid "chime" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:823 -msgid "triplet" +#: js/utils/musicutils.js:1150 +#: js/utils/synthutils.js:178 +#.TRANS: a musical instrument +msgid "gong" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:850 -msgid "simple tuplet" +#: js/utils/musicutils.js:1151 +#: js/utils/synthutils.js:180 +#.TRANS: sound effect +msgid "clang" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:860 -msgid "Tuplets are a collection of notes that get scaled to a specific duration." +#: js/utils/musicutils.js:1152 +#: js/utils/synthutils.js:182 +#.TRANS: sound effect +msgid "crash" msgstr "" -#: js/WidgetBlocks.js:71 -#.TRANS: sound envelope (ADSR) -msgid "envelope" +#: js/utils/musicutils.js:1153 +#: js/utils/synthutils.js:184 +#.TRANS: sound effect +msgid "bottle" msgstr "" -#: js/WidgetBlocks.js:79 -#.TRANS: Attack time is the time taken for initial run-up of level from nil to peak, beginning when the key is first pressed. -msgid "attack" +#: js/utils/musicutils.js:1154 +#: js/utils/synthutils.js:186 +#.TRANS: sound effect +msgid "clap" msgstr "" -#: js/WidgetBlocks.js:81 -#.TRANS: Decay time is the time taken for the subsequent run down from the attack level to the designated sustain level. -msgid "decay" +#: js/utils/musicutils.js:1155 +#: js/utils/synthutils.js:188 +#.TRANS: sound effect +msgid "slap" msgstr "" -#: js/WidgetBlocks.js:83 -#.TRANS: Sustain level is the level during the main sequence of the sound's duration, until the key is released. -msgid "sustain" +#: js/utils/musicutils.js:1156 +#: js/utils/synthutils.js:190 +#.TRANS: sound effect +msgid "splash" msgstr "" -#: js/WidgetBlocks.js:85 -#.TRANS: Release time is the time taken for the level to decay from the sustain level to zero after the key is released. -msgid "release" +#: js/utils/musicutils.js:1157 +#: js/utils/synthutils.js:192 +#.TRANS: sound effect +msgid "bubbles" msgstr "" -#: js/WidgetBlocks.js:96 -msgid "Attack value should be from 0 to 100." +#: js/utils/musicutils.js:1158 +#: js/utils/synthutils.js:194 +#.TRANS: sound effect +msgid "raindrop" msgstr "" -#: js/WidgetBlocks.js:99 -msgid "Decay value should be from 0 to 100." +#: js/utils/musicutils.js:1159 +#: js/utils/synthutils.js:196 +#.TRANS: animal sound effect +msgid "cat" msgstr "" -#: js/WidgetBlocks.js:102 -msgid "Sustain value should be from 0 to 100." +#: js/utils/musicutils.js:1160 +#: js/utils/synthutils.js:198 +#.TRANS: animal sound effect +msgid "cricket" msgstr "" -#: js/WidgetBlocks.js:105 -msgid "Release value should be from 0-100." +#: js/utils/musicutils.js:1161 +#: js/utils/synthutils.js:200 +#.TRANS: animal sound effect +msgid "dog" msgstr "" -#: js/WidgetBlocks.js:121 -msgid "You are adding multiple envelope blocks." +#: js/utils/musicutils.js:1163 +#: js/utils/synthutils.js:102 +#.TRANS: musical instrument +msgid "banjo" msgstr "" -#: js/WidgetBlocks.js:144 -#.TRANS: a filter removes some unwanted components from a signal -msgid "filter" +#: js/utils/musicutils.js:1164 +#: js/utils/synthutils.js:104 +#.TRANS: musical instrument +msgid "koto" msgstr "" -#: js/WidgetBlocks.js:149 -#: js/musicutils.js:706 -#: js/musicutils.js:1105 -#.TRANS: highpass filter -msgid "highpass" +#: js/utils/musicutils.js:1165 +#: js/utils/synthutils.js:106 +#.TRANS: musical instrument +msgid "dulcimer" msgstr "" -#: js/WidgetBlocks.js:152 -#: js/ToneBlocks.js:42 -#: js/timbre.js:1558 -#: js/timbre.js:1808 -#.TRANS: type of filter, e.g., lowpass, highpass, etc. -#.TRANS: there are different types (sine, triangle, square...) of oscillators. -msgid "type" +#: js/utils/musicutils.js:1166 +#: js/utils/synthutils.js:108 +#.TRANS: musical instrument +msgid "electric guitar" msgstr "" -#: js/WidgetBlocks.js:154 -#: js/timbre.js:1818 -#.TRANS: rolloff is the steepness of a change in frequency. -msgid "rolloff" +#: js/utils/musicutils.js:1167 +#: js/utils/synthutils.js:110 +#.TRANS: musical instrument +msgid "bassoon" msgstr "" -#: js/WidgetBlocks.js:155 -#: js/MediaBlocks.js:692 -#: js/temperament.js:382 -#: js/temperament.js:417 -#: js/temperament.js:477 -#: js/temperament.js:485 -#: js/temperament.js:1348 -#: js/timbre.js:1842 -msgid "frequency" +#: js/utils/musicutils.js:1168 +#: js/utils/synthutils.js:112 +#.TRANS: musical instrument +msgid "celeste" msgstr "" -#: js/WidgetBlocks.js:179 -#.TRANS: rolloff is the steepness of a change in frequency. -msgid "Rolloff value should be either -12, -24, -48, or -96 decibels/octave." +#: js/utils/musicutils.js:1170 +#: js/widgets/temperament.js:787 +#.TRANS: musical temperament +msgid "equal" msgstr "" -#: js/WidgetBlocks.js:211 -msgid "The Temperament tool is used to define custom tuning." +#: js/utils/musicutils.js:1172 +#.TRANS: musical temperament +msgid "Pythagorean" msgstr "" -#: js/WidgetBlocks.js:277 -#: js/sampler.js:329 -msgid "Upload a sample and adjust its pitch center." +#: js/utils/musicutils.js:1174 +#.TRANS: musical temperament +msgid "just intonation" msgstr "" -#: js/WidgetBlocks.js:284 -#.TRANS: the speed at music is should be played. -msgid "sampler" +#: js/utils/musicutils.js:1176 +#.TRANS: musical temperament +msgid "meantone" msgstr "" -#: js/WidgetBlocks.js:329 -#: js/WidgetBlocks.js:334 -#: js/IntervalsBlocks.js:928 -#: js/VolumeBlocks.js:411 -#: js/ToneBlocks.js:946 -#: js/VolumeActions.js:218 -#: js/musicutils.js:704 -#: js/musicutils.js:755 -#: js/musicutils.js:798 -#: js/musicutils.js:820 -#: js/musicutils.js:1136 -#: js/synthutils.js:118 -#: js/modewidget.js:919 -#.TRANS: customize voice -msgid "custom" +#: js/utils/musicutils.js:1193 +msgid "major 7th" msgstr "" -#: js/WidgetBlocks.js:432 -msgid "The Meter block opens a tool to select strong beats for the meter." +#: js/utils/musicutils.js:1194 +msgid "minor 7th" msgstr "" -#: js/WidgetBlocks.js:473 -msgid "The oscilloscope block opens a tool to visualize waveforms." +#: js/utils/musicutils.js:1195 +msgid "dominant 7th" msgstr "" -#: js/WidgetBlocks.js:478 -msgid "oscilloscope" +#: js/utils/musicutils.js:1196 +msgid "minor-major 7th" msgstr "" -#: js/WidgetBlocks.js:530 -msgid "The Custom mode block opens a tool to explore musical mode (the spacing of the notes in a scale)." +#: js/utils/musicutils.js:1197 +msgid "fully-diminished 7th" msgstr "" -#: js/WidgetBlocks.js:536 -#.TRANS: musical mode is the pattern of half-steps in an octave, e.g., Major or Minor modes -msgid "custom mode" +#: js/utils/musicutils.js:1198 +msgid "half-diminished 7th" msgstr "" -#: js/WidgetBlocks.js:570 -msgid "The Tempo block opens a metronome to visualize the beat." +#: js/utils/musicutils.js:1557 +#: js/utils/musicutils.js:1569 +msgid "Equal (12EDO)" msgstr "" -#: js/WidgetBlocks.js:617 -msgid "The Arpeggio Widget is used to compose chord sequences." +#: js/utils/musicutils.js:1558 +#: js/utils/musicutils.js:1570 +msgid "5-limit Just Intonation" msgstr "" -#: js/WidgetBlocks.js:623 -#: js/IntervalsBlocks.js:683 -msgid "arpeggio" +#: js/utils/musicutils.js:1559 +#: js/utils/musicutils.js:1571 +msgid "Pythagorean (3-limit JI)" msgstr "" -#: js/WidgetBlocks.js:677 -msgid "The Pitch drum matrix is used to map pitches to drum sounds." +#: js/utils/musicutils.js:1560 +#: js/utils/musicutils.js:1561 +#: js/utils/musicutils.js:1572 +#: js/utils/musicutils.js:1573 +msgid "Meantone" msgstr "" -#: js/WidgetBlocks.js:682 -#.TRANS: makes a mapping between pitches and drum sounds -msgid "pitch-drum mapper" +#: js/utils/musicutils.js:1574 +msgid "Custom" msgstr "" -#: js/WidgetBlocks.js:724 -msgid "You must have at least one pitch block and one drum block in the matrix." +#: js/utils/musicutils.js:5387 +#: js/utils/musicutils.js:5430 +msgid "current" msgstr "" -#: js/WidgetBlocks.js:746 -msgid "The Pitch slider tool to is used to generate pitches at selected frequencies." +#: js/utils/musicutils.js:5390 +#: js/utils/musicutils.js:5421 +msgid "next" msgstr "" -#: js/WidgetBlocks.js:751 -#.TRANS: widget to generate pitches using a slider -msgid "pitch slider" +#: js/utils/musicutils.js:5393 +#: js/utils/musicutils.js:5426 +msgid "previous" msgstr "" -#: js/WidgetBlocks.js:788 -msgid "chromatic keyboard" +#: js/utils/synthutils.js:120 +#.TRANS: simple monotone synthesizer +msgid "simple-2" msgstr "" -#: js/WidgetBlocks.js:815 -#: js/WidgetBlocks.js:874 -#.TRANS: widget to generate pitches using a slider -msgid "music keyboard" +#: js/utils/synthutils.js:122 +#.TRANS: simple monotone synthesizer +msgid "simple-3" msgstr "" -#: js/WidgetBlocks.js:859 -#: js/WidgetBlocks.js:866 -msgid "The Music keyboard block opens a piano keyboard that can be used to create notes." +#: js/utils/synthutils.js:124 +#.TRANS: simple monotone synthesizer +msgid "simple-4" msgstr "" -#: js/WidgetBlocks.js:910 -msgid "The Pitch staircase tool to is used to generate pitches from a given ratio." +#: js/utils/synthutils.js:162 +#.TRANS: musical instrument +msgid "taiko" msgstr "" -#: js/WidgetBlocks.js:917 -#.TRANS: generate a progressive sequence of pitches -msgid "pitch staircase" +#: js/blocks/ActionBlocks.js:58 +msgid "The Return block will return a value from an action." msgstr "" -#: js/WidgetBlocks.js:982 -msgid "The Rhythm Maker block opens a tool to create drum machines." +#: js/blocks/ActionBlocks.js:75 +msgid "return" msgstr "" -#: js/WidgetBlocks.js:1036 -msgid "G major scale" +#: js/blocks/ActionBlocks.js:128 +msgid "The Return to URL block will return a value to a webpage." msgstr "" -#: js/WidgetBlocks.js:1064 -msgid "C major scale" +#: js/blocks/ActionBlocks.js:145 +msgid "return to URL" msgstr "" -#: js/WidgetBlocks.js:1097 -msgid "The Phrase Maker block opens a tool to create musical phrases." +#: js/blocks/ActionBlocks.js:233 +#: js/blocks/ActionBlocks.js:290 +#: js/blocks/ActionBlocks.js:501 +#: js/blocks/ActionBlocks.js:688 +msgid "The Calculate block returns a value calculated by an action." msgstr "" -#: js/WidgetBlocks.js:1104 -#.TRANS: assigns pitch to a sequence of beats to generate a melody -msgid "phrase maker" +#: js/blocks/ActionBlocks.js:251 +#: js/blocks/ActionBlocks.js:517 +#: js/blocks/ActionBlocks.js:707 +msgid "calculate" msgstr "" -#: js/WidgetBlocks.js:1168 -msgid "You must have at least one pitch block and one rhythm block in the matrix." +#: js/blocks/ActionBlocks.js:376 +#: js/blocks/ActionBlocks.js:593 +#: js/blocks/ActionBlocks.js:942 +#: js/blocks/ActionBlocks.js:1389 +#.TRANS: do is the do something or take an action. +msgid "The Do block is used to initiate an action." msgstr "" -#: js/WidgetBlocks.js:1220 -msgid "The Status block opens a tool for inspecting the status of Music Blocks as it is running." +#: js/blocks/ActionBlocks.js:390 +#: js/blocks/ActionBlocks.js:610 +#: js/blocks/ActionBlocks.js:959 +#: js/blocks/ActionBlocks.js:1048 +#: js/blocks/MeterBlocks.js:769 +msgid "do1" msgstr "" -#: js/IntervalsBlocks.js:45 -msgid "set temperament" +#: js/blocks/ActionBlocks.js:390 +#: js/blocks/ActionBlocks.js:610 +#: js/blocks/ActionBlocks.js:959 +#: js/blocks/ActionBlocks.js:1048 +#: js/blocks/FlowBlocks.js:742 +#: js/blocks/FlowBlocks.js:822 +#: js/blocks/MeterBlocks.js:769 +msgid "do" msgstr "" -#: js/IntervalsBlocks.js:63 -#: js/MediaBlocks.js:746 -#: js/PitchBlocks.js:657 -#: js/PitchBlocks.js:933 -#: js/PitchBlocks.js:972 -#: js/PitchBlocks.js:1005 -#: js/PitchBlocks.js:1166 -#: js/PitchBlocks.js:1679 -#: js/PitchBlocks.js:1720 -#: js/PitchBlocks.js:1827 -#: js/ToneBlocks.js:1025 -#.TRANS: adjusts the shift up or down by one octave (twelve half-steps in the interval between two notes, one having twice or half the frequency in Hz of the other.) -msgid "octave" +#: js/blocks/ActionBlocks.js:791 +#: js/blocks/ActionBlocks.js:865 +msgid "The Arg block contains the value of an argument passed to an action." msgstr "" -#: js/IntervalsBlocks.js:99 -msgid "The Temperament name block is used to select a tuning method." +#: js/blocks/ActionBlocks.js:806 +#: js/blocks/ActionBlocks.js:878 +msgid "arg" msgstr "" -#: js/IntervalsBlocks.js:161 -msgid "doubly" +#: js/blocks/ActionBlocks.js:836 +#: js/blocks/ActionBlocks.js:900 +#: js/blocks/ActionBlocks.js:908 +msgid "Invalid argument" msgstr "" -#: js/IntervalsBlocks.js:166 -msgid "The Doubly block will double the size of an interval." +#: js/blocks/ActionBlocks.js:944 +msgid "In the example, it is used with the One of block to choose a random phase." msgstr "" -#: js/IntervalsBlocks.js:262 -msgid "interval number" +#: js/blocks/ActionBlocks.js:1019 +#: js/blocks/ActionBlocks.js:1026 +msgid "The Listen block is used to listen for an event such as a mouse click." msgstr "" -#: js/IntervalsBlocks.js:330 -#.TRANS: measure the distance between two pitches in semi-tones -msgid "semi-tone interval measure" +#: js/blocks/ActionBlocks.js:1028 +msgid "When the event happens, an action is taken." msgstr "" -#: js/IntervalsBlocks.js:397 -#: js/IntervalsBlocks.js:513 -msgid "You must use two pitch blocks when measuring an interval." +#: js/blocks/ActionBlocks.js:1045 +msgid "on" msgstr "" -#: js/IntervalsBlocks.js:439 -msgid "The Scalar interval block measures the distance between two notes in the current key and mode." +#: js/blocks/ActionBlocks.js:1048 +#: js/blocks/ActionBlocks.js:1049 +#: js/blocks/ActionBlocks.js:1153 +msgid "event" msgstr "" -#: js/IntervalsBlocks.js:445 -#.TRANS: measure the distance between two pitches in steps of musical scale -msgid "scalar interval measure" +#: js/blocks/ActionBlocks.js:1133 +msgid "The Broadcast block is used to trigger an event." msgstr "" -#: js/IntervalsBlocks.js:592 -#: js/musicutils.js:637 -#: js/musicutils.js:908 -#.TRANS: perfect is a music term related to intervals -msgid "perfect" +#: js/blocks/ActionBlocks.js:1151 +msgid "broadcast" msgstr "" -#: js/IntervalsBlocks.js:621 -msgid "In the figure, we add sol# to sol." +#: js/blocks/ActionBlocks.js:1208 +msgid "Each Start block is a separate voice." msgstr "" -#: js/IntervalsBlocks.js:627 -#: js/OrnamentBlocks.js:220 -#.TRANS: calculate a relative step between notes based on semi-tones -msgid "semi-tone interval" +#: js/blocks/ActionBlocks.js:1304 +msgid "It is often used for storing a phrase of music that is repeated." msgstr "" -#: js/IntervalsBlocks.js:676 -msgid "The output of the example is: do, mi, sol, sol, ti, mi" +#: js/blocks/ActionBlocks.js:1495 +msgid "define temperament" msgstr "" -#: js/IntervalsBlocks.js:735 -msgid "The Chord block calculates common chords." +#: js/blocks/BooleanBlocks.js:44 +msgid "The Not block is the logical not operator." msgstr "" -#: js/IntervalsBlocks.js:737 -msgid "In the figure, we generate a C-major chord." +#: js/blocks/BooleanBlocks.js:62 +msgid "not" msgstr "" -#: js/IntervalsBlocks.js:742 -msgid "chord" +#: js/blocks/BooleanBlocks.js:134 +msgid "The And block is the logical and operator." msgstr "" -#: js/IntervalsBlocks.js:794 -msgid "The Ratio Interval block calculates an interval based on a ratio." +#: js/blocks/BooleanBlocks.js:152 +msgid "and" msgstr "" -#: js/IntervalsBlocks.js:799 -msgid "ratio interval" +#: js/blocks/BooleanBlocks.js:218 +msgid "The Or block is the logical or operator." msgstr "" -#: js/IntervalsBlocks.js:868 -msgid "In the figure, we add la to sol." +#: js/blocks/BooleanBlocks.js:236 +msgid "or" msgstr "" -#: js/IntervalsBlocks.js:924 -#.TRANS: define a custom mode -msgid "define mode" +#: js/blocks/BooleanBlocks.js:302 +msgid "The XOR block is the logical XOR operator." msgstr "" -#: js/IntervalsBlocks.js:977 -msgid "movable Do" +#: js/blocks/BooleanBlocks.js:320 +msgid "xor" msgstr "" -#: js/IntervalsBlocks.js:1028 -#.TRANS: mode length is the number of notes in the mode, e.g., 7 for major and minor scales; 12 for chromatic scales -msgid "mode length" +#: js/blocks/BooleanBlocks.js:808 +msgid "The Equal block returns True if the two numbers are equal." msgstr "" -#: js/IntervalsBlocks.js:1037 -msgid "The Mode length block is the number of notes in the current scale." +#: js/blocks/BooleanBlocks.js:909 +msgid "The Not-equal-to block returns True if the two numbers are not equal to each other." msgstr "" -#: js/IntervalsBlocks.js:1039 -msgid "Most Western scales have 7 notes." +#: js/blocks/BooleanBlocks.js:1008 +msgid "The Boolean block is used to specify true or false." msgstr "" -#: js/IntervalsBlocks.js:1088 -#.TRANS: the mode in music is 'major', 'minor', etc. -msgid "current mode" +#: js/blocks/BoxesBlocks.js:53 +#: js/blocks/BoxesBlocks.js:59 +msgid "The Add-to block is used to add to the value stored in a box." msgstr "" -#: js/IntervalsBlocks.js:1141 -#.TRANS: the key is a group of pitches with which a music composition is created -msgid "current key" +#: js/blocks/BoxesBlocks.js:61 +msgid "It can also be used with other blocks such as Color and Pen size." msgstr "" -#: js/IntervalsBlocks.js:1193 -#: js/IntervalsBlocks.js:1238 -#.TRANS: set the key and mode, e.g. C Major -msgid "set key" +#: js/blocks/BoxesBlocks.js:73 +msgid "add" msgstr "" -#: js/IntervalsBlocks.js:1247 -#: js/IntervalsBlocks.js:1253 -msgid "The Set key block is used to set the key and mode," +#: js/blocks/BoxesBlocks.js:75 +#: js/widgets/temperament.js:857 +msgid "to" msgstr "" -#: js/IntervalsBlocks.js:1253 -msgid "eg C Major" +#: js/blocks/BoxesBlocks.js:75 +#: js/blocks/BoxesBlocks.js:595 +#: js/blocks/HeapBlocks.js:544 +msgid "value1" msgstr "" -#: js/IntervalsBlocks.js:1266 -#: js/DictBlocks.js:215 -#: js/DictBlocks.js:216 -#: js/DictBlocks.js:289 -#: js/DictBlocks.js:290 -#: js/DictBlocks.js:357 -#: js/DictBlocks.js:430 -#: js/DictBlocks.js:431 -#.TRANS: key, e.g., C in C Major -msgid "key" +#: js/blocks/BoxesBlocks.js:118 +msgid "Block does not support incrementing." msgstr "" -#: js/ActionBlocks.js:58 -msgid "The Return block will return a value from an action." +#: js/blocks/BoxesBlocks.js:152 +msgid "The Add-1-to block adds one to the value stored in a box." msgstr "" -#: js/ActionBlocks.js:75 -msgid "return" +#: js/blocks/BoxesBlocks.js:163 +msgid "add 1 to" msgstr "" -#: js/ActionBlocks.js:128 -msgid "The Return to URL block will return a value to a webpage." +#: js/blocks/BoxesBlocks.js:211 +msgid "The Subtract-1-from block subtracts one from the value stored in a box." msgstr "" -#: js/ActionBlocks.js:145 -msgid "return to URL" +#: js/blocks/BoxesBlocks.js:222 +msgid "subtract 1 from" msgstr "" -#: js/ActionBlocks.js:233 -#: js/ActionBlocks.js:290 -#: js/ActionBlocks.js:501 -#: js/ActionBlocks.js:688 -msgid "The Calculate block returns a value calculated by an action." +#: js/blocks/BoxesBlocks.js:270 +#: js/blocks/BoxesBlocks.js:387 +msgid "The Box block returns the value stored in a box." msgstr "" -#: js/ActionBlocks.js:251 -#: js/ActionBlocks.js:517 -#: js/ActionBlocks.js:707 -msgid "calculate" +#: js/blocks/BoxesBlocks.js:500 +#: js/blocks/BoxesBlocks.js:576 +msgid "The Store in block will store a value in a box." msgstr "" -#: js/ActionBlocks.js:376 -#: js/ActionBlocks.js:593 -#: js/ActionBlocks.js:942 -#: js/ActionBlocks.js:1389 -#.TRANS: do is the do something or take an action. -msgid "The Do block is used to initiate an action." +#: js/blocks/BoxesBlocks.js:595 +#: js/blocks/EnsembleBlocks.js:391 +#: js/blocks/EnsembleBlocks.js:402 +msgid "name1" msgstr "" -#: js/ActionBlocks.js:390 -#: js/ActionBlocks.js:610 -#: js/ActionBlocks.js:959 -#: js/ActionBlocks.js:1048 -#: js/MeterBlocks.js:769 -msgid "do1" +#: js/blocks/BoxesBlocks.js:652 +msgid "The Box2 block returns the value stored in Box2." msgstr "" -#: js/ActionBlocks.js:390 -#: js/ActionBlocks.js:610 -#: js/ActionBlocks.js:959 -#: js/ActionBlocks.js:1048 -#: js/FlowBlocks.js:742 -#: js/FlowBlocks.js:822 -#: js/MeterBlocks.js:769 -msgid "do" +#: js/blocks/BoxesBlocks.js:703 +msgid "The Store in Box2 block is used to store a value in Box2." msgstr "" -#: js/ActionBlocks.js:791 -#: js/ActionBlocks.js:865 -msgid "The Arg block contains the value of an argument passed to an action." +#: js/blocks/BoxesBlocks.js:715 +msgid "store in box2" msgstr "" -#: js/ActionBlocks.js:806 -#: js/ActionBlocks.js:878 -msgid "arg" +#: js/blocks/BoxesBlocks.js:761 +msgid "The Box1 block returns the value stored in Box1." msgstr "" -#: js/ActionBlocks.js:836 -#: js/ActionBlocks.js:900 -#: js/ActionBlocks.js:908 -msgid "Invalid argument" +#: js/blocks/BoxesBlocks.js:812 +msgid "The Store in Box1 block is used to store a value in Box1." msgstr "" -#: js/ActionBlocks.js:944 -msgid "In the example, it is used with the One of block to choose a random phase." +#: js/blocks/BoxesBlocks.js:826 +msgid "store in box1" msgstr "" -#: js/ActionBlocks.js:1019 -#: js/ActionBlocks.js:1026 -msgid "The Listen block is used to listen for an event such as a mouse click." +#: js/blocks/DictBlocks.js:77 +msgid "show dictionary" msgstr "" -#: js/ActionBlocks.js:1028 -msgid "When the event happens, an action is taken." +#: js/blocks/DictBlocks.js:80 +#: js/blocks/DictBlocks.js:145 +#: js/blocks/DictBlocks.js:216 +#: js/blocks/DictBlocks.js:290 +#: js/blocks/ProgramBlocks.js:396 +#: js/blocks/ProgramBlocks.js:501 +#: js/blocks/ProgramBlocks.js:664 +msgid "My Dictionary" msgstr "" -#: js/ActionBlocks.js:1045 -msgid "on" +#: js/blocks/DictBlocks.js:129 +msgid "The Dictionary block returns a dictionary." msgstr "" -#: js/ActionBlocks.js:1048 -#: js/ActionBlocks.js:1049 -#: js/ActionBlocks.js:1153 -msgid "event" +#: js/blocks/DictBlocks.js:197 +#: js/blocks/DictBlocks.js:339 +msgid "The Get-dict block returns a value in the dictionary for a specified key." msgstr "" -#: js/ActionBlocks.js:1133 -msgid "The Broadcast block is used to trigger an event." +#: js/blocks/DictBlocks.js:212 +#: js/blocks/DictBlocks.js:354 +#.TRANS: retrieve a value from the dictionary with a given key +msgid "get value" msgstr "" -#: js/ActionBlocks.js:1151 -msgid "broadcast" +#: js/blocks/DictBlocks.js:215 +#: js/blocks/DictBlocks.js:216 +#: js/blocks/DictBlocks.js:289 +#: js/blocks/DictBlocks.js:290 +#: js/blocks/DictBlocks.js:357 +#: js/blocks/DictBlocks.js:430 +#: js/blocks/DictBlocks.js:431 +msgid "key2" msgstr "" -#: js/ActionBlocks.js:1208 -msgid "Each Start block is a separate voice." +#: js/blocks/DictBlocks.js:215 +#: js/blocks/DictBlocks.js:216 +#: js/blocks/DictBlocks.js:289 +#: js/blocks/DictBlocks.js:290 +#: js/blocks/DictBlocks.js:357 +#: js/blocks/DictBlocks.js:430 +#: js/blocks/DictBlocks.js:431 +#: js/blocks/IntervalsBlocks.js:1462 +#.TRANS: key, e.g., C in C Major +msgid "key" msgstr "" -#: js/ActionBlocks.js:1304 -msgid "It is often used for storing a phrase of music that is repeated." +#: js/blocks/DictBlocks.js:271 +#: js/blocks/DictBlocks.js:411 +msgid "The Set-dict block sets a value in the dictionary for a specified key." msgstr "" -#: js/ActionBlocks.js:1495 -msgid "define temperament" +#: js/blocks/DictBlocks.js:286 +#: js/blocks/DictBlocks.js:427 +#.TRANS: set a value in the dictionary for a given key +msgid "set value" msgstr "" -#: js/EnsembleBlocks.js:66 +#: js/blocks/EnsembleBlocks.js:66 msgid "mouse index heap" msgstr "" -#: js/EnsembleBlocks.js:68 +#: js/blocks/EnsembleBlocks.js:68 msgid "The Mouse index heap block returns a value in the heap at a specified location for a specified mouse." msgstr "" -#: js/EnsembleBlocks.js:77 -#: js/EnsembleBlocks.js:1080 +#: js/blocks/EnsembleBlocks.js:77 +#: js/blocks/EnsembleBlocks.js:1080 msgid "mouse name" msgstr "" -#: js/EnsembleBlocks.js:77 -#: js/EnsembleBlocks.js:92 -#: js/HeapBlocks.js:544 +#: js/blocks/EnsembleBlocks.js:77 +#: js/blocks/EnsembleBlocks.js:92 +#: js/blocks/HeapBlocks.js:544 #.TRANS: value1 is a numeric value (JAPANESE ONLY) msgid "index" msgstr "" -#: js/EnsembleBlocks.js:80 +#: js/blocks/EnsembleBlocks.js:80 msgid "turtle index heap" msgstr "" -#: js/EnsembleBlocks.js:82 +#: js/blocks/EnsembleBlocks.js:82 msgid "The Turtle index heap block returns a value in the heap at a specified location for a specified turtle." msgstr "" -#: js/EnsembleBlocks.js:90 -#: js/EnsembleBlocks.js:167 -#: js/EnsembleBlocks.js:230 -#: js/EnsembleBlocks.js:316 -#: js/EnsembleBlocks.js:362 -#: js/EnsembleBlocks.js:400 -#: js/EnsembleBlocks.js:454 -#: js/EnsembleBlocks.js:504 -#: js/EnsembleBlocks.js:550 -#: js/EnsembleBlocks.js:597 -#: js/EnsembleBlocks.js:651 -#: js/EnsembleBlocks.js:763 -#: js/EnsembleBlocks.js:854 -#: js/EnsembleBlocks.js:915 -#: js/EnsembleBlocks.js:955 -#: js/EnsembleBlocks.js:1219 -#: js/EnsembleBlocks.js:1293 +#: js/blocks/EnsembleBlocks.js:90 +#: js/blocks/EnsembleBlocks.js:167 +#: js/blocks/EnsembleBlocks.js:230 +#: js/blocks/EnsembleBlocks.js:316 +#: js/blocks/EnsembleBlocks.js:362 +#: js/blocks/EnsembleBlocks.js:400 +#: js/blocks/EnsembleBlocks.js:454 +#: js/blocks/EnsembleBlocks.js:504 +#: js/blocks/EnsembleBlocks.js:550 +#: js/blocks/EnsembleBlocks.js:597 +#: js/blocks/EnsembleBlocks.js:651 +#: js/blocks/EnsembleBlocks.js:763 +#: js/blocks/EnsembleBlocks.js:854 +#: js/blocks/EnsembleBlocks.js:915 +#: js/blocks/EnsembleBlocks.js:955 +#: js/blocks/EnsembleBlocks.js:1219 +#: js/blocks/EnsembleBlocks.js:1293 #.TRANS: Yertle is the name of a turtle. msgid "Yertle" msgstr "" -#: js/EnsembleBlocks.js:92 -#: js/EnsembleBlocks.js:1089 +#: js/blocks/EnsembleBlocks.js:92 +#: js/blocks/EnsembleBlocks.js:1089 msgid "turtle name" msgstr "" -#: js/EnsembleBlocks.js:122 -#: js/EnsembleBlocks.js:1197 -#: js/HeapBlocks.js:474 -#: js/HeapBlocks.js:572 +#: js/blocks/EnsembleBlocks.js:122 +#: js/blocks/EnsembleBlocks.js:1197 +#: js/blocks/HeapBlocks.js:474 +#: js/blocks/HeapBlocks.js:572 msgid "Index must be > 0." msgstr "" -#: js/EnsembleBlocks.js:127 -#: js/HeapBlocks.js:479 -#: js/HeapBlocks.js:577 +#: js/blocks/EnsembleBlocks.js:127 +#: js/blocks/HeapBlocks.js:479 +#: js/blocks/HeapBlocks.js:577 msgid "Maximum heap size is 1000." msgstr "" -#: js/EnsembleBlocks.js:145 +#: js/blocks/EnsembleBlocks.js:145 msgid "stop mouse" msgstr "" -#: js/EnsembleBlocks.js:147 +#: js/blocks/EnsembleBlocks.js:147 msgid "The Stop mouse block stops the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:158 +#: js/blocks/EnsembleBlocks.js:158 msgid "stop turtle" msgstr "" -#: js/EnsembleBlocks.js:160 +#: js/blocks/EnsembleBlocks.js:160 msgid "The Stop turtle block stops the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:184 -#: js/EnsembleBlocks.js:247 -#: js/EnsembleBlocks.js:413 -#: js/EnsembleBlocks.js:468 -#: js/EnsembleBlocks.js:706 -#: js/EnsembleBlocks.js:808 -#: js/EnsembleBlocks.js:870 -#: js/EnsembleBlocks.js:1190 -#: js/EnsembleBlocks.js:1253 +#: js/blocks/EnsembleBlocks.js:184 +#: js/blocks/EnsembleBlocks.js:247 +#: js/blocks/EnsembleBlocks.js:413 +#: js/blocks/EnsembleBlocks.js:468 +#: js/blocks/EnsembleBlocks.js:706 +#: js/blocks/EnsembleBlocks.js:808 +#: js/blocks/EnsembleBlocks.js:870 +#: js/blocks/EnsembleBlocks.js:1190 +#: js/blocks/EnsembleBlocks.js:1253 msgid "Cannot find mouse" msgstr "" -#: js/EnsembleBlocks.js:186 -#: js/EnsembleBlocks.js:249 -#: js/EnsembleBlocks.js:415 -#: js/EnsembleBlocks.js:470 -#: js/EnsembleBlocks.js:708 -#: js/EnsembleBlocks.js:810 -#: js/EnsembleBlocks.js:872 -#: js/EnsembleBlocks.js:1192 -#: js/EnsembleBlocks.js:1255 +#: js/blocks/EnsembleBlocks.js:186 +#: js/blocks/EnsembleBlocks.js:249 +#: js/blocks/EnsembleBlocks.js:415 +#: js/blocks/EnsembleBlocks.js:470 +#: js/blocks/EnsembleBlocks.js:708 +#: js/blocks/EnsembleBlocks.js:810 +#: js/blocks/EnsembleBlocks.js:872 +#: js/blocks/EnsembleBlocks.js:1192 +#: js/blocks/EnsembleBlocks.js:1255 msgid "Cannot find turtle" msgstr "" -#: js/EnsembleBlocks.js:206 +#: js/blocks/EnsembleBlocks.js:206 msgid "start mouse" msgstr "" -#: js/EnsembleBlocks.js:209 +#: js/blocks/EnsembleBlocks.js:209 msgid "The Start mouse block starts the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:220 +#: js/blocks/EnsembleBlocks.js:220 msgid "start turtle" msgstr "" -#: js/EnsembleBlocks.js:223 +#: js/blocks/EnsembleBlocks.js:223 msgid "The Start turtle block starts the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:256 +#: js/blocks/EnsembleBlocks.js:256 msgid "Mouse is already running." msgstr "" -#: js/EnsembleBlocks.js:258 +#: js/blocks/EnsembleBlocks.js:258 msgid "Turtle is already running." msgstr "" -#: js/EnsembleBlocks.js:282 +#: js/blocks/EnsembleBlocks.js:282 msgid "Cannot find start block" msgstr "" -#: js/EnsembleBlocks.js:292 +#: js/blocks/EnsembleBlocks.js:292 #.TRANS: pen color for this mouse msgid "mouse color" msgstr "" -#: js/EnsembleBlocks.js:294 +#: js/blocks/EnsembleBlocks.js:294 msgid "The Mouse color block returns the pen color of the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:306 +#: js/blocks/EnsembleBlocks.js:306 #.TRANS: pen color for this turtle msgid "turtle color" msgstr "" -#: js/EnsembleBlocks.js:308 +#: js/blocks/EnsembleBlocks.js:308 msgid "The Turtle color block returns the pen color of the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:338 +#: js/blocks/EnsembleBlocks.js:338 #.TRANS: heading (compass direction) for this mouse msgid "mouse heading" msgstr "" -#: js/EnsembleBlocks.js:340 +#: js/blocks/EnsembleBlocks.js:340 msgid "The Mouse heading block returns the heading of the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:352 +#: js/blocks/EnsembleBlocks.js:352 #.TRANS: heading (compass direction) for this turtle msgid "turtle heading" msgstr "" -#: js/EnsembleBlocks.js:354 +#: js/blocks/EnsembleBlocks.js:354 msgid "The Turtle heading block returns the heading of the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:384 -#: js/EnsembleBlocks.js:439 +#: js/blocks/EnsembleBlocks.js:384 +#: js/blocks/EnsembleBlocks.js:439 #.TRANS: set xy position for this mouse msgid "set mouse" msgstr "" -#: js/EnsembleBlocks.js:391 -#: js/EnsembleBlocks.js:402 -#: js/BoxesBlocks.js:595 -msgid "name1" -msgstr "" - -#: js/EnsembleBlocks.js:391 -#: js/EnsembleBlocks.js:402 -#: js/ProgramBlocks.js:881 -#: js/GraphicsBlocks.js:235 -#: js/GraphicsBlocks.js:313 -#: js/GraphicsBlocks.js:436 -#: js/GraphicsBlocks.js:487 -#: js/GraphicsBlocks.js:534 -#: js/GraphicsBlocks.js:750 +#: js/blocks/EnsembleBlocks.js:391 +#: js/blocks/EnsembleBlocks.js:402 +#: js/blocks/GraphicsBlocks.js:235 +#: js/blocks/GraphicsBlocks.js:313 +#: js/blocks/GraphicsBlocks.js:436 +#: js/blocks/GraphicsBlocks.js:487 +#: js/blocks/GraphicsBlocks.js:534 +#: js/blocks/GraphicsBlocks.js:750 +#: js/blocks/ProgramBlocks.js:881 msgid "x" msgstr "" -#: js/EnsembleBlocks.js:391 -#: js/EnsembleBlocks.js:402 -#: js/ProgramBlocks.js:881 -#: js/GraphicsBlocks.js:149 -#: js/GraphicsBlocks.js:313 -#: js/GraphicsBlocks.js:436 -#: js/GraphicsBlocks.js:487 -#: js/GraphicsBlocks.js:534 -#: js/GraphicsBlocks.js:750 +#: js/blocks/EnsembleBlocks.js:391 +#: js/blocks/EnsembleBlocks.js:402 +#: js/blocks/GraphicsBlocks.js:149 +#: js/blocks/GraphicsBlocks.js:313 +#: js/blocks/GraphicsBlocks.js:436 +#: js/blocks/GraphicsBlocks.js:487 +#: js/blocks/GraphicsBlocks.js:534 +#: js/blocks/GraphicsBlocks.js:750 +#: js/blocks/ProgramBlocks.js:881 msgid "y" msgstr "" -#: js/EnsembleBlocks.js:395 -#: js/EnsembleBlocks.js:452 +#: js/blocks/EnsembleBlocks.js:395 +#: js/blocks/EnsembleBlocks.js:452 #.TRANS: set xy position for this turtle msgid "set turtle" msgstr "" -#: js/EnsembleBlocks.js:433 +#: js/blocks/EnsembleBlocks.js:433 msgid "The Set mouse block sends a stack of blocks to be run by the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:446 +#: js/blocks/EnsembleBlocks.js:446 msgid "The Set turtle block sends a stack of blocks to be run by the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:480 +#: js/blocks/EnsembleBlocks.js:480 #.TRANS: y position for this mouse msgid "mouse y" msgstr "" -#: js/EnsembleBlocks.js:482 +#: js/blocks/EnsembleBlocks.js:482 msgid "The Y mouse block returns the Y position of the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:494 +#: js/blocks/EnsembleBlocks.js:494 #.TRANS: y position for this turtle msgid "turtle y" msgstr "" -#: js/EnsembleBlocks.js:496 +#: js/blocks/EnsembleBlocks.js:496 msgid "The Y turtle block returns the Y position of the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:526 +#: js/blocks/EnsembleBlocks.js:526 #.TRANS: x position for this mouse msgid "mouse x" msgstr "" -#: js/EnsembleBlocks.js:528 +#: js/blocks/EnsembleBlocks.js:528 msgid "The X mouse block returns the X position of the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:540 +#: js/blocks/EnsembleBlocks.js:540 #.TRANS: x position for this turtle msgid "turtle x" msgstr "" -#: js/EnsembleBlocks.js:542 +#: js/blocks/EnsembleBlocks.js:542 msgid "The X turtle block returns the X position of the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:573 +#: js/blocks/EnsembleBlocks.js:573 #.TRANS: notes played by this mouse msgid "mouse notes played" msgstr "" -#: js/EnsembleBlocks.js:575 +#: js/blocks/EnsembleBlocks.js:575 msgid "The Mouse elapse notes block returns the number of notes played by the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:587 +#: js/blocks/EnsembleBlocks.js:587 #.TRANS: notes played by this turtle msgid "turtle notes played" msgstr "" -#: js/EnsembleBlocks.js:589 +#: js/blocks/EnsembleBlocks.js:589 msgid "The Turtle elapse notes block returns the number of notes played by the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:627 +#: js/blocks/EnsembleBlocks.js:627 #.TRANS: convert current note for this turtle to piano key (1-88) msgid "mouse pitch number" msgstr "" -#: js/EnsembleBlocks.js:629 +#: js/blocks/EnsembleBlocks.js:629 msgid "The Mouse pitch block returns the current pitch number being played by the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:641 +#: js/blocks/EnsembleBlocks.js:641 #.TRANS: convert current note for this turtle to piano key (1-88) msgid "turtle pitch number" msgstr "" -#: js/EnsembleBlocks.js:643 -msgid "The Turrle pitch block returns the current pitch number being played by the specified turtle." +#: js/blocks/EnsembleBlocks.js:643 +msgid "The Turtle pitch block returns the current pitch number being played by the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:747 -#: js/EnsembleBlocks.js:819 +#: js/blocks/EnsembleBlocks.js:747 +#: js/blocks/EnsembleBlocks.js:819 #.TRANS: note value is the duration of the note played by this mouse msgid "mouse note value" msgstr "" -#: js/EnsembleBlocks.js:757 +#: js/blocks/EnsembleBlocks.js:757 #.TRANS: note value is the duration of the note played by this turtle msgid "turtle note value" msgstr "" -#: js/EnsembleBlocks.js:830 +#: js/blocks/EnsembleBlocks.js:830 #.TRANS: sync is short for synchronization msgid "mouse sync" msgstr "" -#: js/EnsembleBlocks.js:832 +#: js/blocks/EnsembleBlocks.js:832 msgid "The Mouse sync block aligns the beat count between mice." msgstr "" -#: js/EnsembleBlocks.js:844 +#: js/blocks/EnsembleBlocks.js:844 #.TRANS: sync is short for synchronization msgid "turtle sync" msgstr "" -#: js/EnsembleBlocks.js:846 +#: js/blocks/EnsembleBlocks.js:846 msgid "The Turtle sync block aligns the beat count between turtles." msgstr "" -#: js/EnsembleBlocks.js:887 +#: js/blocks/EnsembleBlocks.js:887 msgid "The Found mouse block will return true if the specified mouse can be found." msgstr "" -#: js/EnsembleBlocks.js:893 +#: js/blocks/EnsembleBlocks.js:893 msgid "found mouse" msgstr "" -#: js/EnsembleBlocks.js:903 +#: js/blocks/EnsembleBlocks.js:903 msgid "The Found turtle block will return true if the specified turtle can be found." msgstr "" -#: js/EnsembleBlocks.js:909 +#: js/blocks/EnsembleBlocks.js:909 msgid "found turtle" msgstr "" -#: js/EnsembleBlocks.js:932 +#: js/blocks/EnsembleBlocks.js:932 msgid "new mouse" msgstr "" -#: js/EnsembleBlocks.js:934 +#: js/blocks/EnsembleBlocks.js:934 msgid "The New mouse block will create a new mouse." msgstr "" -#: js/EnsembleBlocks.js:945 +#: js/blocks/EnsembleBlocks.js:945 msgid "new turtle" msgstr "" -#: js/EnsembleBlocks.js:947 +#: js/blocks/EnsembleBlocks.js:947 msgid "The New turtle block will create a new turtle." msgstr "" -#: js/EnsembleBlocks.js:1011 +#: js/blocks/EnsembleBlocks.js:1011 msgid "set mouse color" msgstr "" -#: js/EnsembleBlocks.js:1014 +#: js/blocks/EnsembleBlocks.js:1014 msgid "The Set-mouse-color block is used to set the color of a mouse." msgstr "" -#: js/EnsembleBlocks.js:1020 +#: js/blocks/EnsembleBlocks.js:1020 msgid "set turtle color" msgstr "" -#: js/EnsembleBlocks.js:1023 +#: js/blocks/EnsembleBlocks.js:1023 msgid "The Set-turtle-color block is used to set the color of a turtle." msgstr "" -#: js/EnsembleBlocks.js:1083 +#: js/blocks/EnsembleBlocks.js:1083 msgid "The Mouse-name block returns the name of a mouse." msgstr "" -#: js/EnsembleBlocks.js:1092 +#: js/blocks/EnsembleBlocks.js:1092 msgid "The Turtle-name block returns the name of a turtle." msgstr "" -#: js/EnsembleBlocks.js:1115 +#: js/blocks/EnsembleBlocks.js:1115 msgid "mouse count" msgstr "" -#: js/EnsembleBlocks.js:1118 +#: js/blocks/EnsembleBlocks.js:1118 msgid "The Mouse-count block returns the number of mice." msgstr "" -#: js/EnsembleBlocks.js:1124 +#: js/blocks/EnsembleBlocks.js:1124 msgid "turtle count" msgstr "" -#: js/EnsembleBlocks.js:1127 +#: js/blocks/EnsembleBlocks.js:1127 msgid "The Turtle-count block returns the number of turtles." msgstr "" -#: js/EnsembleBlocks.js:1149 +#: js/blocks/EnsembleBlocks.js:1149 msgid "nth mouse name" msgstr "" -#: js/EnsembleBlocks.js:1152 +#: js/blocks/EnsembleBlocks.js:1152 msgid "The Nth-Mouse name block returns the name of the nth mouse." msgstr "" -#: js/EnsembleBlocks.js:1158 +#: js/blocks/EnsembleBlocks.js:1158 msgid "nth turtle name" msgstr "" -#: js/EnsembleBlocks.js:1161 +#: js/blocks/EnsembleBlocks.js:1161 msgid "The Nth-Turtle name block returns the name of the nth turtle." msgstr "" -#: js/EnsembleBlocks.js:1205 -#: js/EnsembleBlocks.js:1265 +#: js/blocks/EnsembleBlocks.js:1205 +#: js/blocks/EnsembleBlocks.js:1265 msgid "set name" msgstr "" -#: js/EnsembleBlocks.js:1214 -#: js/EnsembleBlocks.js:1221 +#: js/blocks/EnsembleBlocks.js:1214 +#: js/blocks/EnsembleBlocks.js:1221 msgid "source" msgstr "" -#: js/EnsembleBlocks.js:1214 -#: js/EnsembleBlocks.js:1221 +#: js/blocks/EnsembleBlocks.js:1214 +#: js/blocks/EnsembleBlocks.js:1221 msgid "target" msgstr "" -#: js/EnsembleBlocks.js:1271 +#: js/blocks/EnsembleBlocks.js:1271 msgid "The Set-name block is used to name a mouse." msgstr "" -#: js/EnsembleBlocks.js:1284 +#: js/blocks/EnsembleBlocks.js:1284 msgid "The Set-name block is used to name a turtle." msgstr "" -#: js/BooleanBlocks.js:44 -msgid "The Not block is the logical not operator." -msgstr "" - -#: js/BooleanBlocks.js:62 -msgid "not" -msgstr "" - -#: js/BooleanBlocks.js:134 -msgid "The And block is the logical and operator." -msgstr "" - -#: js/BooleanBlocks.js:152 -msgid "and" -msgstr "" - -#: js/BooleanBlocks.js:218 -msgid "The Or block is the logical or operator." -msgstr "" - -#: js/BooleanBlocks.js:236 -msgid "or" -msgstr "" - -#: js/BooleanBlocks.js:302 -msgid "The XOR block is the logical XOR operator." -msgstr "" - -#: js/BooleanBlocks.js:320 -msgid "xor" -msgstr "" - -#: js/BooleanBlocks.js:808 -msgid "The Equal block returns True if the two numbers are equal." -msgstr "" - -#: js/BooleanBlocks.js:909 -msgid "The Not-equal-to block returns True if the two numbers are not equal to each other." -msgstr "" - -#: js/BooleanBlocks.js:1008 -msgid "The Boolean block is used to specify true or false." -msgstr "" - -#: js/MediaBlocks.js:35 -#.TRANS: right side of the screen -msgid "right (screen)" -msgstr "" - -#: js/MediaBlocks.js:45 -#: js/MediaBlocks.js:56 -msgid "The Right block returns the position of the right of the canvas." -msgstr "" - -#: js/MediaBlocks.js:97 -#.TRANS: left side of the screen -msgid "left (screen)" -msgstr "" - -#: js/MediaBlocks.js:107 -#: js/MediaBlocks.js:118 -msgid "The Left block returns the position of the left of the canvas." -msgstr "" - -#: js/MediaBlocks.js:158 -msgid "top (screen)" -msgstr "" - -#: js/MediaBlocks.js:168 -#: js/MediaBlocks.js:179 -msgid "The Top block returns the position of the top of the canvas." -msgstr "" - -#: js/MediaBlocks.js:219 -msgid "bottom (screen)" +#: js/blocks/ExtrasBlocks.js:33 +msgid "fraction" msgstr "" -#: js/MediaBlocks.js:229 -#: js/MediaBlocks.js:240 -msgid "The Bottom block returns the position of the bottom of the canvas." +#: js/blocks/ExtrasBlocks.js:36 +msgid "Convert a float to a fraction" msgstr "" -#: js/MediaBlocks.js:282 -msgid "width" +#: js/blocks/ExtrasBlocks.js:93 +msgid "save as ABC" msgstr "" -#: js/MediaBlocks.js:291 -msgid "The Width block returns the width of the canvas." +#: js/blocks/ExtrasBlocks.js:96 +#: js/blocks/ExtrasBlocks.js:132 +#: js/blocks/ExtrasBlocks.js:168 +msgid "title" msgstr "" -#: js/MediaBlocks.js:325 -msgid "height" +#: js/blocks/ExtrasBlocks.js:129 +msgid "save as Lilypond" msgstr "" -#: js/MediaBlocks.js:334 -msgid "The Height block returns the height of the canvas." +#: js/blocks/ExtrasBlocks.js:165 +msgid "save as SVG" msgstr "" -#: js/MediaBlocks.js:369 -#.TRANS: stops playback of an audio recording -msgid "stop play" +#: js/blocks/ExtrasBlocks.js:216 +msgid "no background" msgstr "" -#: js/MediaBlocks.js:404 -#.TRANS: Erases the images and text -msgid "erase media" +#: js/blocks/ExtrasBlocks.js:219 +msgid "The No background block eliminates the background from the saved SVG output." msgstr "" -#: js/MediaBlocks.js:409 -msgid "The Erase Media block erases text and images." +#: js/blocks/ExtrasBlocks.js:247 +msgid "show blocks" msgstr "" -#: js/MediaBlocks.js:439 -#.TRANS: play an audio recording -msgid "play back" +#: js/blocks/ExtrasBlocks.js:249 +msgid "The Show blocks block shows the blocks." msgstr "" -#: js/MediaBlocks.js:487 -msgid "speak" +#: js/blocks/ExtrasBlocks.js:274 +msgid "hide blocks" msgstr "" -#: js/MediaBlocks.js:495 -msgid "The Speak block outputs to the text-to-speech synthesizer" +#: js/blocks/ExtrasBlocks.js:276 +msgid "The Hide blocks block hides the blocks." msgstr "" -#: js/MediaBlocks.js:546 -msgid "camera" +#: js/blocks/ExtrasBlocks.js:305 +#: js/blocks/ExtrasBlocks.js:338 +msgid "The Space block is used to add space between blocks." msgstr "" -#: js/MediaBlocks.js:551 -msgid "The Camera block connects a webcam to the Show block." +#: js/blocks/ExtrasBlocks.js:376 +msgid "wait" msgstr "" -#: js/MediaBlocks.js:574 -msgid "video" +#: js/blocks/ExtrasBlocks.js:379 +msgid "The Wait block pauses the program for a specified number of seconds." msgstr "" -#: js/MediaBlocks.js:579 -msgid "The Video block selects video for use with the Show block." +#: js/blocks/ExtrasBlocks.js:433 +#: plugins/facebook.rtp:30 +msgid "comment" msgstr "" -#: js/MediaBlocks.js:607 -msgid "The Open file block opens a file for use with the Show block." +#: js/blocks/ExtrasBlocks.js:469 +msgid "print" msgstr "" -#: js/MediaBlocks.js:645 -msgid "stop media" +#: js/blocks/ExtrasBlocks.js:476 +msgid "The Print block displays text at the top of the screen." msgstr "" -#: js/MediaBlocks.js:650 -msgid "The Stop media block stops audio or video playback." +#: js/blocks/ExtrasBlocks.js:582 +msgid "display grid" msgstr "" -#: js/MediaBlocks.js:679 -#: js/PitchBlocks.js:1539 -#: js/phrasemaker.js:822 -#: js/musickeyboard.js:1654 -#.TRANS: a measure of frequency: one cycle per second -msgid "hertz" +#: js/blocks/ExtrasBlocks.js:587 +msgid "The Display Grid Block changes the grid type" msgstr "" -#: js/MediaBlocks.js:692 -msgid "duration (ms)" +#: js/blocks/ExtrasBlocks.js:689 +#: js/blocks/ExtrasBlocks.js:708 +#: js/blocks/ExtrasBlocks.js:731 +#: js/blocks/ExtrasBlocks.js:754 +#: js/blocks/ExtrasBlocks.js:772 +#: js/blocks/ExtrasBlocks.js:791 +#: js/blocks/ExtrasBlocks.js:810 +#: js/blocks/ExtrasBlocks.js:829 +msgid "unknown" msgstr "" -#: js/MediaBlocks.js:728 -#.TRANS: translate a note into hertz, e.g., A4 -> 440HZ -msgid "note to frequency" +#: js/blocks/FlowBlocks.js:41 +msgid "The Backward block runs code in reverse order (Musical retrograde)." msgstr "" -#: js/MediaBlocks.js:736 -msgid "The To frequency block converts a pitch name and octave to Hertz." +#: js/blocks/FlowBlocks.js:48 +msgid "backward" msgstr "" -#: js/MediaBlocks.js:746 -#: js/PitchBlocks.js:656 -#: js/PitchBlocks.js:932 -#: js/PitchBlocks.js:1827 -#.TRANS: name2 is name as in name of pitch (JAPANESE ONLY) -msgid "name2" +#: js/blocks/FlowBlocks.js:124 +msgid "The Duplicate block will run each block multiple times." msgstr "" -#: js/MediaBlocks.js:812 -msgid "The Avatar block is used to change the appearance of the mouse." +#: js/blocks/FlowBlocks.js:136 +msgid "duplicate" msgstr "" -#: js/MediaBlocks.js:819 -msgid "The Avatar block is used to change the appearance of the turtle." +#: js/blocks/FlowBlocks.js:334 +msgid "The Default block is used inside of a Switch to define the default action." msgstr "" -#: js/MediaBlocks.js:831 -#: js/MediaBlocks.js:891 -#.TRANS: a media object -msgid "size" +#: js/blocks/FlowBlocks.js:342 +msgid "default" msgstr "" -#: js/MediaBlocks.js:831 -msgid "image" +#: js/blocks/FlowBlocks.js:361 +#: js/blocks/FlowBlocks.js:418 +msgid "The Case Block must be used inside of a Switch Block." msgstr "" -#: js/MediaBlocks.js:880 -msgid "The Show block is used to display text or images on the canvas." +#: js/blocks/FlowBlocks.js:389 +msgid "The Case block is used inside of a Switch to define matches." msgstr "" -#: js/MediaBlocks.js:888 -#.TRANS: show1 is show as in display an image or text on the screen. -msgid "show1" +#: js/blocks/FlowBlocks.js:397 +msgid "case" msgstr "" -#: js/MediaBlocks.js:891 -msgid "obj" +#: js/blocks/FlowBlocks.js:446 +msgid "The Switch block will run the code in the matching Case." msgstr "" -#: js/MediaBlocks.js:938 -msgid "The Media block is used to import an image." +#: js/blocks/FlowBlocks.js:454 +msgid "switch" msgstr "" -#: js/MediaBlocks.js:973 -msgid "The Text block holds a text string." +#: js/blocks/FlowBlocks.js:595 +msgid "The Stop block will stop a loop" msgstr "" -#: js/ProgramBlocks.js:33 -msgid "The Load-heap-from-app block loads the heap from a web page." +#: js/blocks/FlowBlocks.js:597 +msgid "Forever, Repeat, While, or Until." msgstr "" -#: js/ProgramBlocks.js:44 -#.TRANS: load the heap contents from a URL -msgid "load heap from App" +#: js/blocks/FlowBlocks.js:604 +#: js/widgets/timbre.js:417 +#: js/widgets/timbre.js:419 +#: js/widgets/musickeyboard.js:819 +#: js/widgets/musickeyboard.js:821 +#: js/widgets/phrasemaker.js:4202 +#: plugins/rodi.rtp:29 +#: plugins/rodi.rtp:73 +#: plugins/rodi.rtp:413 +msgid "stop" msgstr "" -#: js/ProgramBlocks.js:95 -msgid "Error parsing JSON data:" +#: js/blocks/FlowBlocks.js:653 +msgid "The Waitfor block will wait until the condition is true." msgstr "" -#: js/ProgramBlocks.js:100 -msgid "404: Page not found" +#: js/blocks/FlowBlocks.js:661 +msgid "wait for" msgstr "" -#: js/ProgramBlocks.js:133 -msgid "The Save-heap-to-app block saves the heap to a web page." +#: js/blocks/FlowBlocks.js:732 +msgid "The Until block will repeat until the condition is true." msgstr "" -#: js/ProgramBlocks.js:144 -#.TRANS: save the heap contents to a URL -msgid "save heap to App" +#: js/blocks/FlowBlocks.js:740 +msgid "until" msgstr "" -#: js/ProgramBlocks.js:189 -msgid "Cannot find a valid heap for" +#: js/blocks/FlowBlocks.js:742 +#: js/blocks/FlowBlocks.js:822 +msgid "do2" msgstr "" -#: js/ProgramBlocks.js:206 -msgid "The Load-heap block loads the heap from a file." +#: js/blocks/FlowBlocks.js:812 +msgid "The While block will repeat while the condition is true." msgstr "" -#: js/ProgramBlocks.js:217 -#.TRANS: load the heap from a file -msgid "load heap" +#: js/blocks/FlowBlocks.js:820 +msgid "while" msgstr "" -#: js/ProgramBlocks.js:270 -msgid "The file you selected does not contain a valid heap." +#: js/blocks/FlowBlocks.js:903 +#: js/blocks/FlowBlocks.js:968 +#: js/blocks/FlowBlocks.js:979 +msgid "In this example if the mouse button is pressed a snare drum will play." msgstr "" -#: js/ProgramBlocks.js:275 -msgid "The loadHeap block needs a loadFile block." +#: js/blocks/FlowBlocks.js:925 +#: js/blocks/FlowBlocks.js:988 +msgid "if" msgstr "" -#: js/ProgramBlocks.js:291 -msgid "The Set-heap block loads the heap." +#: js/blocks/FlowBlocks.js:927 +#: js/blocks/FlowBlocks.js:990 +msgid "then" msgstr "" -#: js/ProgramBlocks.js:299 -#: js/HeapBlocks.js:539 -#.TRANS: load the heap from a JSON encoding -msgid "set heap" +#: js/blocks/FlowBlocks.js:927 +msgid "else" msgstr "" -#: js/ProgramBlocks.js:340 -msgid "The block you selected does not contain a valid heap." +#: js/blocks/FlowBlocks.js:1025 +msgid "The Forever block will repeat the contained blocks forever." msgstr "" -#: js/ProgramBlocks.js:343 -msgid "The Set heap block needs a heap." +#: js/blocks/FlowBlocks.js:1037 +msgid "forever" msgstr "" -#: js/ProgramBlocks.js:360 -msgid "The Load-dictionary block loads a dictionary from a file." +#: js/blocks/FlowBlocks.js:1073 +msgid "The Repeat block will repeat the contained blocks." msgstr "" -#: js/ProgramBlocks.js:372 -#.TRANS: load a dictionary from a file -msgid "load dictionary" +#: js/blocks/FlowBlocks.js:1075 +msgid "In this example the note will be played 4 times." msgstr "" -#: js/ProgramBlocks.js:390 -#: js/ProgramBlocks.js:658 -#: js/ToneBlocks.js:1025 -msgid "file" +#: js/blocks/FlowBlocks.js:1083 +msgid "repeat" msgstr "" -#: js/ProgramBlocks.js:396 -#: js/ProgramBlocks.js:501 -#: js/ProgramBlocks.js:664 -#: js/DictBlocks.js:80 -#: js/DictBlocks.js:145 -#: js/DictBlocks.js:216 -#: js/DictBlocks.js:290 -msgid "My Dictionary" +#: js/blocks/FlowBlocks.js:1123 +msgid "duplicate factor" msgstr "" -#: js/ProgramBlocks.js:444 -msgid "The file you selected does not contain a valid dictionary." +#: js/blocks/HeapBlocks.js:49 +msgid "The Heap block returns the heap." msgstr "" -#: js/ProgramBlocks.js:449 -msgid "The load dictionary block needs a load file block." +#: js/blocks/HeapBlocks.js:133 +msgid "show heap" msgstr "" -#: js/ProgramBlocks.js:466 -msgid "The Set-dictionary block loads a dictionary." +#: js/blocks/HeapBlocks.js:181 +msgid "The Heap-length block returns the length of the heap." msgstr "" -#: js/ProgramBlocks.js:477 -#.TRANS: load a dictionary from a JSON -msgid "set dictionary" +#: js/blocks/HeapBlocks.js:195 +msgid "heap length" msgstr "" -#: js/ProgramBlocks.js:546 -msgid "The block you selected does not contain a valid dictionary." +#: js/blocks/HeapBlocks.js:254 +msgid "The Heap-empty? block returns true if the heap is empty." msgstr "" -#: js/ProgramBlocks.js:550 -msgid "The set dictionary block needs a dictionary." +#: js/blocks/HeapBlocks.js:268 +#.TRANS: Is the heap empty? +msgid "heap empty?" msgstr "" -#: js/ProgramBlocks.js:567 -msgid "The Save-heap block saves the heap to a file." +#: js/blocks/HeapBlocks.js:317 +msgid "The Empty-heap block empties the heap." msgstr "" -#: js/ProgramBlocks.js:578 -#.TRANS: save the heap to a file -msgid "save heap" +#: js/blocks/HeapBlocks.js:327 +#: js/blocks/HeapBlocks.js:647 +#.TRANS: empty the heap +msgid "empty heap" msgstr "" -#: js/ProgramBlocks.js:629 -msgid "The Save-dictionary block saves a dictionary to a file." +#: js/blocks/HeapBlocks.js:371 +msgid "The Reverse-heap block reverses the order of the heap." msgstr "" -#: js/ProgramBlocks.js:640 -#.TRANS: save a dictionary to a file -msgid "save dictionary" +#: js/blocks/HeapBlocks.js:384 +#.TRANS: reverse the order of the heap +msgid "reverse heap" msgstr "" -#: js/ProgramBlocks.js:720 -msgid "The Open palette block opens a palette." +#: js/blocks/HeapBlocks.js:428 +msgid "The Index-heap block returns a value in the heap at a specified location." msgstr "" -#: js/ProgramBlocks.js:727 -msgid "open palette" +#: js/blocks/HeapBlocks.js:443 +#.TRANS: retrieve a value from the heap at index position in the heap +msgid "index heap" msgstr "" -#: js/ProgramBlocks.js:785 -msgid "The Delete block block removes a block." +#: js/blocks/HeapBlocks.js:523 +msgid "The Set-heap entry block sets a value in he heap at the specified location." msgstr "" -#: js/ProgramBlocks.js:797 -#.TRANS: Move this block to the trash. -msgid "delete block" +#: js/blocks/HeapBlocks.js:539 +#: js/blocks/ProgramBlocks.js:299 +#.TRANS: load the heap from a JSON encoding +msgid "set heap" msgstr "" -#: js/ProgramBlocks.js:861 -msgid "The Move block block moves a block." +#: js/blocks/HeapBlocks.js:619 +msgid "The Pop block removes the value at the top of the heap." msgstr "" -#: js/ProgramBlocks.js:869 -#.TRANS: Move the position of a block on the screen. -msgid "move block" +#: js/blocks/HeapBlocks.js:633 +#.TRANS: pop a value off the top of the heap +msgid "pop" msgstr "" -#: js/ProgramBlocks.js:881 -#: js/ProgramBlocks.js:1048 -msgid "block number" +#: js/blocks/HeapBlocks.js:680 +msgid "The Push block adds a value to the top of the heap." msgstr "" -#: js/ProgramBlocks.js:935 -#.TRANS: Run program beginning at this block. -msgid "run block" +#: js/blocks/HeapBlocks.js:696 +#.TRANS: push a value onto the top of the heap +msgid "push" msgstr "" -#: js/ProgramBlocks.js:1025 -msgid "The Dock block block connections two blocks." +#: js/blocks/IntervalsBlocks.js:45 +msgid "set temperament" msgstr "" -#: js/ProgramBlocks.js:1036 -#.TRANS: We can connect a block to another block. -msgid "connect blocks" +#: js/blocks/IntervalsBlocks.js:63 +#: js/blocks/MediaBlocks.js:746 +#: js/blocks/PitchBlocks.js:657 +#: js/blocks/PitchBlocks.js:935 +#: js/blocks/PitchBlocks.js:974 +#: js/blocks/PitchBlocks.js:1007 +#: js/blocks/PitchBlocks.js:1194 +#: js/blocks/PitchBlocks.js:1717 +#: js/blocks/PitchBlocks.js:1758 +#: js/blocks/PitchBlocks.js:1866 +#: js/blocks/ToneBlocks.js:1025 +#: js/turtleactions/IntervalsActions.js:114 +#.TRANS: adjusts the shift up or down by one octave (twelve half-steps in the interval between two notes, one having twice or half the frequency in Hz of the other.) +msgid "octave" msgstr "" -#: js/ProgramBlocks.js:1048 -msgid "target block" +#: js/blocks/IntervalsBlocks.js:99 +msgid "The Temperament name block is used to select a tuning method." msgstr "" -#: js/ProgramBlocks.js:1048 -msgid "connection number" +#: js/blocks/IntervalsBlocks.js:161 +msgid "doubly" msgstr "" -#: js/ProgramBlocks.js:1140 -msgid "The Make block block creates a new block." +#: js/blocks/IntervalsBlocks.js:166 +msgid "The Doubly block will double the size of an interval." msgstr "" -#: js/ProgramBlocks.js:1152 -#.TRANS: Create a new block -msgid "make block" +#: js/blocks/IntervalsBlocks.js:262 +msgid "interval number" msgstr "" -#: js/ProgramBlocks.js:1186 -#: js/ProgramBlocks.js:1227 -#: js/RhythmBlocks.js:1128 -#: js/PitchBlocks.js:972 -#: js/PitchBlocks.js:1005 -#: js/temperament.js:340 -#: js/temperament.js:362 -#: js/temperament.js:372 -#: js/temperament.js:484 -#: js/status.js:190 -#: plugins/rodi.rtp:192 -#.TRANS: a musical note consisting of pitch and duration -msgid "note" +#: js/blocks/IntervalsBlocks.js:317 +msgid "current interval" msgstr "" -#: js/ProgramBlocks.js:1285 -msgid "Cannot find block" +#: js/blocks/IntervalsBlocks.js:387 +#.TRANS: measure the distance between two pitches in semi-tones +msgid "semi-tone interval measure" msgstr "" -#: js/ProgramBlocks.js:1304 -#: js/ProgramBlocks.js:1313 -msgid "Warning: block argument type mismatch" +#: js/blocks/IntervalsBlocks.js:454 +#: js/blocks/IntervalsBlocks.js:570 +msgid "You must use two pitch blocks when measuring an interval." msgstr "" -#: js/ProgramBlocks.js:1347 -msgid "The Open project block is used to open a project from a web page." +#: js/blocks/IntervalsBlocks.js:496 +msgid "The Scalar interval block measures the distance between two notes in the current key and mode." msgstr "" -#: js/ProgramBlocks.js:1357 -msgid "open project" +#: js/blocks/IntervalsBlocks.js:502 +#.TRANS: measure the distance between two pitches in steps of musical scale +msgid "scalar interval measure" msgstr "" -#: js/ProgramBlocks.js:1410 -msgid "Please enter a valid URL." +#: js/blocks/IntervalsBlocks.js:678 +msgid "In the figure, we add sol# to sol." msgstr "" -#: js/DrumBlocks.js:59 -msgid "The Noise name block is used to select a noise synthesizer." +#: js/blocks/IntervalsBlocks.js:684 +#: js/blocks/OrnamentBlocks.js:220 +#.TRANS: calculate a relative step between notes based on semi-tones +msgid "semi-tone interval" msgstr "" -#: js/DrumBlocks.js:102 -msgid "The Drum name block is used to select a drum." +#: js/blocks/IntervalsBlocks.js:733 +msgid "The output of the example is: do, mi, sol, sol, ti, mi" msgstr "" -#: js/DrumBlocks.js:146 -msgid "The Effects name block is used to select a sound effect." +#: js/blocks/IntervalsBlocks.js:740 +#: js/blocks/WidgetBlocks.js:768 +msgid "arpeggio" msgstr "" -#: js/DrumBlocks.js:163 -msgid "noise" +#: js/blocks/IntervalsBlocks.js:931 +msgid "The Chord block calculates common chords." msgstr "" -#: js/DrumBlocks.js:177 -msgid "The Play noise block will generate white, pink, or brown noise." +#: js/blocks/IntervalsBlocks.js:933 +msgid "In the figure, we generate a C-major chord." msgstr "" -#: js/DrumBlocks.js:191 -#: js/musicutils.js:752 -#: js/synthutils.js:47 -#.TRANS: white noise synthesizer -msgid "white noise" +#: js/blocks/IntervalsBlocks.js:938 +msgid "chord" msgstr "" -#: js/DrumBlocks.js:326 -msgid "Replace every instance of a pitch with a drum sound." +#: js/blocks/IntervalsBlocks.js:990 +msgid "The Ratio Interval block calculates an interval based on a ratio." msgstr "" -#: js/DrumBlocks.js:337 -#.TRANS: map a pitch to a drum sound -msgid "map pitch to drum" +#: js/blocks/IntervalsBlocks.js:995 +msgid "ratio interval" msgstr "" -#: js/DrumBlocks.js:404 -msgid "In the example above, a kick drum sound will be played instead of sol." +#: js/blocks/IntervalsBlocks.js:1064 +msgid "In the figure, we add la to sol." msgstr "" -#: js/DrumBlocks.js:416 -#.TRANS: set the current drum sound for playback -msgid "set drum" +#: js/blocks/IntervalsBlocks.js:1120 +#.TRANS: define a custom mode +msgid "define mode" msgstr "" -#: js/DrumBlocks.js:460 -msgid "sound effect" +#: js/blocks/IntervalsBlocks.js:1173 +msgid "movable Do" msgstr "" -#: js/DrumBlocks.js:498 -msgid "You can use multiple Drum blocks within a Note block." +#: js/blocks/IntervalsBlocks.js:1224 +#.TRANS: mode length is the number of notes in the mode, e.g., 7 for major and minor scales; 12 for chromatic scales +msgid "mode length" msgstr "" -#: js/RhythmBlocks.js:182 -#: js/RhythmBlocks.js:1086 -#: js/RhythmBlocks.js:1162 -msgid "Note value must be greater than 0." +#: js/blocks/IntervalsBlocks.js:1233 +msgid "The Mode length block is the number of notes in the current scale." msgstr "" -#: js/RhythmBlocks.js:215 -#: js/RhythmBlocks.js:278 -#: js/RhythmBlocks.js:350 -#.TRANS: swing is a rhythmic variation that emphasises the offbeat -msgid "swing" +#: js/blocks/IntervalsBlocks.js:1235 +msgid "Most Western scales have 7 notes." msgstr "" -#: js/RhythmBlocks.js:355 -#.TRANS: the amount to shift to the offbeat note -msgid "swing value" +#: js/blocks/IntervalsBlocks.js:1284 +#.TRANS: the mode in music is 'major', 'minor', etc. +msgid "current mode" msgstr "" -#: js/RhythmBlocks.js:419 -msgid "The Skip notes block will cause notes to be skipped." +#: js/blocks/IntervalsBlocks.js:1337 +#.TRANS: the key is a group of pitches with which a music composition is created +msgid "current key" msgstr "" -#: js/RhythmBlocks.js:427 -#.TRANS: substitute rests on notes being skipped -msgid "skip notes" +#: js/blocks/IntervalsBlocks.js:1389 +#: js/blocks/IntervalsBlocks.js:1434 +#.TRANS: set the key and mode, e.g. C Major +msgid "set key" msgstr "" -#: js/RhythmBlocks.js:489 -#.TRANS: speed up note duration by some factor, e.g. convert 1/4 to 1/8 notes by using a factor of 2 -msgid "multiply note value" +#: js/blocks/IntervalsBlocks.js:1443 +#: js/blocks/IntervalsBlocks.js:1449 +msgid "The Set key block is used to set the key and mode," msgstr "" -#: js/RhythmBlocks.js:542 -msgid "The Tie block works on pairs of notes, combining them into one note." +#: js/blocks/IntervalsBlocks.js:1449 +msgid "eg C Major" msgstr "" -#: js/RhythmBlocks.js:550 -#.TRANS: tie notes together into one longer note -msgid "tie" +#: js/blocks/MediaBlocks.js:35 +#.TRANS: right side of the screen +msgid "right (screen)" msgstr "" -#: js/RhythmBlocks.js:591 -#: js/RhythmBlocks.js:671 -#.TRANS: a dotted note is played for 1.5x its value, e.g., 1/8. --> 3/16 -msgid "dot" +#: js/blocks/MediaBlocks.js:45 +#: js/blocks/MediaBlocks.js:56 +msgid "The Right block returns the position of the right of the canvas." msgstr "" -#: js/RhythmBlocks.js:619 -#: js/RhythmActions.js:221 -msgid "An argument of -1 results in a note value of 0." +#: js/blocks/MediaBlocks.js:97 +#.TRANS: left side of the screen +msgid "left (screen)" msgstr "" -#: js/RhythmBlocks.js:661 -msgid "The Dot block extends the duration of a note by 50%." +#: js/blocks/MediaBlocks.js:107 +#: js/blocks/MediaBlocks.js:118 +msgid "The Left block returns the position of the left of the canvas." msgstr "" -#: js/RhythmBlocks.js:663 -msgid "Eg a dotted quarter note will play for 3/8 (1/4 + 1/8) of a beat." +#: js/blocks/MediaBlocks.js:158 +msgid "top (screen)" msgstr "" -#: js/RhythmBlocks.js:765 -#.TRANS: Japanese only: note value block for drum -msgid "note value drum" +#: js/blocks/MediaBlocks.js:168 +#: js/blocks/MediaBlocks.js:179 +msgid "The Top block returns the position of the top of the canvas." msgstr "" -#: js/RhythmBlocks.js:829 -msgid "392 hertz" +#: js/blocks/MediaBlocks.js:219 +msgid "bottom (screen)" msgstr "" -#: js/RhythmBlocks.js:1119 -msgid "The Note block is a container for one or more Pitch blocks." +#: js/blocks/MediaBlocks.js:229 +#: js/blocks/MediaBlocks.js:240 +msgid "The Bottom block returns the position of the bottom of the canvas." msgstr "" -#: js/RhythmBlocks.js:1121 -msgid "The Note block specifies the duration (note value) of its contents." +#: js/blocks/MediaBlocks.js:282 +msgid "width" msgstr "" -#: js/RhythmBlocks.js:1130 -msgid "value2" +#: js/blocks/MediaBlocks.js:291 +msgid "The Width block returns the width of the canvas." msgstr "" -#: js/RhythmBlocks.js:1200 -msgid "define frequency" +#: js/blocks/MediaBlocks.js:325 +msgid "height" msgstr "" -#: js/RhythmBlocks.js:1218 -#: js/temperament.js:650 -#: js/temperament.js:1421 -msgid "octave space" +#: js/blocks/MediaBlocks.js:334 +msgid "The Height block returns the height of the canvas." msgstr "" -#: js/NumberBlocks.js:28 -msgid "The Int block returns an integer." +#: js/blocks/MediaBlocks.js:369 +#.TRANS: stops playback of an audio recording +msgid "stop play" msgstr "" -#: js/NumberBlocks.js:34 -msgid "int" +#: js/blocks/MediaBlocks.js:404 +#.TRANS: Erases the images and text +msgid "erase media" msgstr "" -#: js/NumberBlocks.js:73 -msgid "The Mod block returns the remainder from a division." +#: js/blocks/MediaBlocks.js:409 +msgid "The Erase Media block erases text and images." msgstr "" -#: js/NumberBlocks.js:79 -msgid "mod" +#: js/blocks/MediaBlocks.js:439 +#.TRANS: play an audio recording +msgid "play back" msgstr "" -#: js/NumberBlocks.js:123 -msgid "The Power block calculates a power function." +#: js/blocks/MediaBlocks.js:487 +msgid "speak" msgstr "" -#: js/NumberBlocks.js:178 -msgid "The Sqrt block returns the square root." +#: js/blocks/MediaBlocks.js:495 +msgid "The Speak block outputs to the text-to-speech synthesizer" msgstr "" -#: js/NumberBlocks.js:184 -msgid "sqrt" +#: js/blocks/MediaBlocks.js:546 +msgid "camera" msgstr "" -#: js/NumberBlocks.js:230 -msgid "The Abs block returns the absolute value." +#: js/blocks/MediaBlocks.js:551 +msgid "The Camera block connects a webcam to the Show block." msgstr "" -#: js/NumberBlocks.js:236 -msgid "abs" +#: js/blocks/MediaBlocks.js:574 +msgid "video" msgstr "" -#: js/NumberBlocks.js:277 -msgid "The Distance block returns the distance between two points. For example, between the mouse and the center of the screen." +#: js/blocks/MediaBlocks.js:579 +msgid "The Video block selects video for use with the Show block." msgstr "" -#: js/NumberBlocks.js:283 -#: plugins/rodi.rtp:310 -msgid "distance" +#: js/blocks/MediaBlocks.js:607 +msgid "The Open file block opens a file for use with the Show block." msgstr "" -#: js/NumberBlocks.js:343 -msgid "The Divide block is used to divide." +#: js/blocks/MediaBlocks.js:645 +msgid "stop media" msgstr "" -#: js/NumberBlocks.js:411 -msgid "The Multiply block is used to multiply." +#: js/blocks/MediaBlocks.js:650 +msgid "The Stop media block stops audio or video playback." msgstr "" -#: js/NumberBlocks.js:554 -msgid "The Minus block is used to subtract." +#: js/blocks/MediaBlocks.js:679 +#: js/blocks/PitchBlocks.js:1577 +#: js/widgets/musickeyboard.js:1936 +#: js/widgets/phrasemaker.js:1037 +#.TRANS: a measure of frequency: one cycle per second +msgid "hertz" msgstr "" -#: js/NumberBlocks.js:647 -msgid "The Plus block is used to add." +#: js/blocks/MediaBlocks.js:692 +#: js/blocks/WidgetBlocks.js:182 +#: js/widgets/temperament.js:506 +#: js/widgets/temperament.js:546 +#: js/widgets/temperament.js:610 +#: js/widgets/temperament.js:618 +#: js/widgets/temperament.js:1505 +#: js/widgets/timbre.js:1842 +msgid "frequency" msgstr "" -#: js/NumberBlocks.js:773 -msgid "The One-of block returns one of two choices." +#: js/blocks/MediaBlocks.js:692 +msgid "duration (ms)" msgstr "" -#: js/NumberBlocks.js:780 -#: js/PitchBlocks.js:616 -msgid "one of" +#: js/blocks/MediaBlocks.js:728 +#.TRANS: translate a note into hertz, e.g., A4 -> 440HZ +msgid "note to frequency" msgstr "" -#: js/NumberBlocks.js:782 -msgid "this" +#: js/blocks/MediaBlocks.js:736 +msgid "The To frequency block converts a pitch name and octave to Hertz." msgstr "" -#: js/NumberBlocks.js:782 -msgid "that" +#: js/blocks/MediaBlocks.js:746 +#: js/blocks/PitchBlocks.js:656 +#: js/blocks/PitchBlocks.js:934 +#: js/blocks/PitchBlocks.js:1866 +#.TRANS: name2 is name as in name of pitch (JAPANESE ONLY) +msgid "name2" msgstr "" -#: js/NumberBlocks.js:837 -msgid "The Random block returns a random number." +#: js/blocks/MediaBlocks.js:812 +msgid "The Avatar block is used to change the appearance of the mouse." msgstr "" -#: js/NumberBlocks.js:844 -msgid "random" +#: js/blocks/MediaBlocks.js:819 +msgid "The Avatar block is used to change the appearance of the turtle." msgstr "" -#: js/NumberBlocks.js:846 -msgid "min" +#: js/blocks/MediaBlocks.js:831 +#: js/blocks/MediaBlocks.js:891 +#.TRANS: a media object +msgid "size" msgstr "" -#: js/NumberBlocks.js:846 -msgid "max" +#: js/blocks/MediaBlocks.js:831 +msgid "image" msgstr "" -#: js/NumberBlocks.js:910 -msgid "The Number block holds a number." +#: js/blocks/MediaBlocks.js:880 +msgid "The Show block is used to display text or images on the canvas." msgstr "" -#: js/BoxesBlocks.js:53 -#: js/BoxesBlocks.js:59 -msgid "The Add-to block is used to add to the value stored in a box." +#: js/blocks/MediaBlocks.js:888 +#.TRANS: show1 is show as in display an image or text on the screen. +msgid "show1" msgstr "" -#: js/BoxesBlocks.js:61 -msgid "It can also be used with other blocks such as Color and Pen size." +#: js/blocks/MediaBlocks.js:891 +msgid "obj" msgstr "" -#: js/BoxesBlocks.js:73 -msgid "add" +#: js/blocks/MediaBlocks.js:938 +msgid "The Media block is used to import an image." msgstr "" -#: js/BoxesBlocks.js:75 -#: js/temperament.js:716 -msgid "to" +#: js/blocks/MediaBlocks.js:973 +msgid "The Text block holds a text string." msgstr "" -#: js/BoxesBlocks.js:75 -#: js/BoxesBlocks.js:595 -#: js/HeapBlocks.js:544 -msgid "value1" +#: js/blocks/MeterBlocks.js:34 +#.TRANS: musical meter (time signature), e.g., 4:4 +msgid "current meter" msgstr "" -#: js/BoxesBlocks.js:118 -msgid "Block does not support incrementing." +#: js/blocks/MeterBlocks.js:85 +#.TRANS: number of beats per minute +msgid "beat factor" msgstr "" -#: js/BoxesBlocks.js:152 -msgid "The Add-1-to block adds one to the value stored in a box." +#: js/blocks/MeterBlocks.js:161 +msgid "The Beats per minute block returns the current beats per minute." msgstr "" -#: js/BoxesBlocks.js:163 -msgid "add 1 to" +#: js/blocks/MeterBlocks.js:169 +#: js/widgets/status.js:152 +#.TRANS: number of beats played per minute +msgid "beats per minute2" msgstr "" -#: js/BoxesBlocks.js:211 -msgid "The Subtract-1-from block subtracts one from the value stored in a box." +#: js/blocks/MeterBlocks.js:169 +#: js/blocks/MeterBlocks.js:1056 +#: js/blocks/MeterBlocks.js:1133 +#: js/blocks/MeterBlocks.js:1211 +#.TRANS: sets tempo by defining a beat and beats per minute +msgid "beats per minute" msgstr "" -#: js/BoxesBlocks.js:222 -msgid "subtract 1 from" +#: js/blocks/MeterBlocks.js:233 +#.TRANS: count of current musical measure in meter +msgid "measure count" msgstr "" -#: js/BoxesBlocks.js:270 -#: js/BoxesBlocks.js:387 -msgid "The Box block returns the value stored in a box." +#: js/blocks/MeterBlocks.js:241 +msgid "The Measure count block returns the current measure." msgstr "" -#: js/BoxesBlocks.js:500 -#: js/BoxesBlocks.js:576 -msgid "The Store in block will store a value in a box." +#: js/blocks/MeterBlocks.js:290 +#.TRANS: count of current beat in the meter +msgid "beat count" msgstr "" -#: js/BoxesBlocks.js:652 -msgid "The Box2 block returns the value stored in Box2." +#: js/blocks/MeterBlocks.js:300 +#: js/blocks/MeterBlocks.js:311 +#: js/blocks/MeterBlocks.js:565 +#: js/blocks/MeterBlocks.js:576 +msgid "The Beat count block is the number of the current beat," msgstr "" -#: js/BoxesBlocks.js:703 -msgid "The Store in Box2 block is used to store a value in Box2." +#: js/blocks/MeterBlocks.js:313 +#: js/blocks/MeterBlocks.js:578 +msgid "eg 1, 2, 3, or 4." msgstr "" -#: js/BoxesBlocks.js:715 -msgid "store in box2" +#: js/blocks/MeterBlocks.js:368 +#.TRANS: count the number of notes +msgid "sum note values" msgstr "" -#: js/BoxesBlocks.js:761 -msgid "The Box1 block returns the value stored in Box1." +#: js/blocks/MeterBlocks.js:376 +#: js/blocks/MeterBlocks.js:440 +msgid "The Note counter block can be used to count the number of contained notes." msgstr "" -#: js/BoxesBlocks.js:812 -msgid "The Store in Box1 block is used to store a value in Box1." +#: js/blocks/MeterBlocks.js:432 +#.TRANS: count the number of notes +msgid "note counter" msgstr "" -#: js/BoxesBlocks.js:826 -msgid "store in box1" +#: js/blocks/MeterBlocks.js:496 +#.TRANS: number of whole notes that have been played +msgid "whole notes played" msgstr "" -#: js/HeapBlocks.js:49 -msgid "The Heap block returns the heap." +#: js/blocks/MeterBlocks.js:505 +msgid "The Whole notes played block returns the total number of whole notes played." msgstr "" -#: js/HeapBlocks.js:133 -msgid "show heap" +#: js/blocks/MeterBlocks.js:555 +#: js/turtleactions/DictActions.js:83 +#.TRANS: number of notes that have been played +msgid "notes played" msgstr "" -#: js/HeapBlocks.js:181 -msgid "The Heap-length block returns the length of the heap." +#: js/blocks/MeterBlocks.js:653 +msgid "The No clock block decouples the notes from the master clock." msgstr "" -#: js/HeapBlocks.js:195 -msgid "heap length" +#: js/blocks/MeterBlocks.js:661 +#.TRANS: don't lock notes to master clock +msgid "no clock" msgstr "" -#: js/HeapBlocks.js:254 -msgid "The Heap-empty? block returns true if the heap is empty." +#: js/blocks/MeterBlocks.js:700 +msgid "on weak beat do" msgstr "" -#: js/HeapBlocks.js:268 -#.TRANS: Is the heap empty? -msgid "heap empty?" +#: js/blocks/MeterBlocks.js:705 +msgid "The On-weak-beat block lets you specify actions to take on weak (off) beats." msgstr "" -#: js/HeapBlocks.js:317 -msgid "The Empty-heap block empties the heap." +#: js/blocks/MeterBlocks.js:750 +msgid "on strong beat" msgstr "" -#: js/HeapBlocks.js:327 -#: js/HeapBlocks.js:647 -#.TRANS: empty the heap -msgid "empty heap" +#: js/blocks/MeterBlocks.js:758 +msgid "The On-strong-beat block lets you specify actions to take on specified beats." msgstr "" -#: js/HeapBlocks.js:371 -msgid "The Reverse-heap block reverses the order of the heap." +#: js/blocks/MeterBlocks.js:769 +msgid "beat" msgstr "" -#: js/HeapBlocks.js:384 -#.TRANS: reverse the order of the heap -msgid "reverse heap" +#: js/blocks/MeterBlocks.js:813 +msgid "on every beat do" msgstr "" -#: js/HeapBlocks.js:428 -msgid "The Index-heap block returns a value in the heap at a specified location." +#: js/blocks/MeterBlocks.js:821 +msgid "The On-every-beat block lets you specify actions to take on every beat." msgstr "" -#: js/HeapBlocks.js:443 -#.TRANS: retrieve a value from the heap at index position in the heap -msgid "index heap" +#: js/blocks/MeterBlocks.js:874 +msgid "on every note do" msgstr "" -#: js/HeapBlocks.js:523 -msgid "The Set-heap entry block sets a value in he heap at the specified location." +#: js/blocks/MeterBlocks.js:882 +msgid "The On-every-note block lets you specify actions to take on every note." msgstr "" -#: js/HeapBlocks.js:619 -msgid "The Pop block removes the value at the top of the heap." +#: js/blocks/MeterBlocks.js:928 +#: js/blocks/MeterBlocks.js:999 +#.TRANS: sets tempo by defining a beat and beats per minute +msgid "master beats per minute" msgstr "" -#: js/HeapBlocks.js:633 -#.TRANS: pop a value off the top of the heap -msgid "pop" +#: js/blocks/MeterBlocks.js:952 +#: js/blocks/MeterBlocks.js:1078 +#: js/blocks/MeterBlocks.js:1135 +msgid "bpm" msgstr "" -#: js/HeapBlocks.js:680 -msgid "The Push block adds a value to the top of the heap." +#: js/blocks/MeterBlocks.js:952 +#: js/blocks/MeterBlocks.js:1078 +#: js/blocks/MeterBlocks.js:1135 +msgid "beat value" msgstr "" -#: js/HeapBlocks.js:696 -#.TRANS: push a value onto the top of the heap -msgid "push" +#: js/blocks/MeterBlocks.js:1024 +#: js/blocks/MeterBlocks.js:1167 +#: js/blocks/MeterBlocks.js:1241 +msgid "Beats per minute must be > 30." msgstr "" -#: js/FlowBlocks.js:41 -msgid "The Backward block runs code in reverse order (Musical retrograde)." +#: js/blocks/MeterBlocks.js:1027 +#: js/blocks/MeterBlocks.js:1170 +#: js/blocks/MeterBlocks.js:1244 +msgid "Maximum beats per minute is 1000." msgstr "" -#: js/FlowBlocks.js:48 -msgid "backward" +#: js/blocks/MeterBlocks.js:1068 +msgid "The Beats per minute block sets the number of 1/4 notes per minute." msgstr "" -#: js/FlowBlocks.js:124 -msgid "The Duplicate block will run each block multiple times." +#: js/blocks/MeterBlocks.js:1279 +#.TRANS: anacrusis +msgid "pickup" msgstr "" -#: js/FlowBlocks.js:136 -msgid "duplicate" +#: js/blocks/MeterBlocks.js:1367 +msgid "number of beats" msgstr "" -#: js/FlowBlocks.js:334 -msgid "The Default block is used inside of a Switch to define the default action." +#: js/blocks/NumberBlocks.js:28 +msgid "The Int block returns an integer." msgstr "" -#: js/FlowBlocks.js:342 -msgid "default" +#: js/blocks/NumberBlocks.js:34 +msgid "int" msgstr "" -#: js/FlowBlocks.js:361 -#: js/FlowBlocks.js:418 -msgid "The Case Block must be used inside of a Switch Block." +#: js/blocks/NumberBlocks.js:73 +msgid "The Mod block returns the remainder from a division." msgstr "" -#: js/FlowBlocks.js:389 -msgid "The Case block is used inside of a Switch to define matches." +#: js/blocks/NumberBlocks.js:79 +msgid "mod" msgstr "" -#: js/FlowBlocks.js:397 -msgid "case" +#: js/blocks/NumberBlocks.js:141 +msgid "The Power block calculates a power function." msgstr "" -#: js/FlowBlocks.js:446 -msgid "The Switch block will run the code in the matching Case." +#: js/blocks/NumberBlocks.js:196 +msgid "The Sqrt block returns the square root." msgstr "" -#: js/FlowBlocks.js:454 -msgid "switch" +#: js/blocks/NumberBlocks.js:202 +msgid "sqrt" msgstr "" -#: js/FlowBlocks.js:595 -msgid "The Stop block will stop a loop" +#: js/blocks/NumberBlocks.js:248 +msgid "The Abs block returns the absolute value." msgstr "" -#: js/FlowBlocks.js:597 -msgid "Forever, Repeat, While, or Until." +#: js/blocks/NumberBlocks.js:254 +msgid "abs" msgstr "" -#: js/FlowBlocks.js:604 -#: js/phrasemaker.js:3799 -#: js/musickeyboard.js:629 -#: js/musickeyboard.js:631 -#: js/timbre.js:417 -#: js/timbre.js:419 -#: plugins/rodi.rtp:29 -#: plugins/rodi.rtp:73 -#: plugins/rodi.rtp:413 -msgid "stop" +#: js/blocks/NumberBlocks.js:295 +msgid "The Distance block returns the distance between two points. For example, between the mouse and the center of the screen." msgstr "" -#: js/FlowBlocks.js:653 -msgid "The Waitfor block will wait until the condition is true." +#: js/blocks/NumberBlocks.js:301 +#: plugins/rodi.rtp:310 +msgid "distance" msgstr "" -#: js/FlowBlocks.js:661 -msgid "wait for" +#: js/blocks/NumberBlocks.js:361 +msgid "The Divide block is used to divide." msgstr "" -#: js/FlowBlocks.js:732 -msgid "The Until block will repeat until the condition is true." +#: js/blocks/NumberBlocks.js:441 +msgid "The Multiply block is used to multiply." msgstr "" -#: js/FlowBlocks.js:740 -msgid "until" +#: js/blocks/NumberBlocks.js:612 +msgid "The Minus block is used to subtract." msgstr "" -#: js/FlowBlocks.js:742 -#: js/FlowBlocks.js:822 -msgid "do2" +#: js/blocks/NumberBlocks.js:723 +msgid "The Plus block is used to add." msgstr "" -#: js/FlowBlocks.js:812 -msgid "The While block will repeat while the condition is true." +#: js/blocks/NumberBlocks.js:849 +msgid "The One-of block returns one of two choices." msgstr "" -#: js/FlowBlocks.js:820 -msgid "while" +#: js/blocks/NumberBlocks.js:856 +#: js/blocks/PitchBlocks.js:616 +msgid "one of" msgstr "" -#: js/FlowBlocks.js:903 -#: js/FlowBlocks.js:968 -#: js/FlowBlocks.js:979 -msgid "In this example if the mouse button is pressed a snare drum will play." +#: js/blocks/NumberBlocks.js:858 +msgid "this" msgstr "" -#: js/FlowBlocks.js:925 -#: js/FlowBlocks.js:988 -msgid "if" +#: js/blocks/NumberBlocks.js:858 +msgid "that" msgstr "" -#: js/FlowBlocks.js:927 -#: js/FlowBlocks.js:990 -msgid "then" +#: js/blocks/NumberBlocks.js:913 +msgid "The Random block returns a random number." msgstr "" -#: js/FlowBlocks.js:927 -msgid "else" +#: js/blocks/NumberBlocks.js:920 +msgid "random" msgstr "" -#: js/FlowBlocks.js:1025 -msgid "The Forever block will repeat the contained blocks forever." +#: js/blocks/NumberBlocks.js:922 +msgid "min" msgstr "" -#: js/FlowBlocks.js:1037 -msgid "forever" +#: js/blocks/NumberBlocks.js:922 +msgid "max" msgstr "" -#: js/FlowBlocks.js:1073 -msgid "The Repeat block will repeat the contained blocks." +#: js/blocks/NumberBlocks.js:986 +msgid "The Number block holds a number." msgstr "" -#: js/FlowBlocks.js:1075 -msgid "In this example the note will be played 4 times." +#: js/blocks/OrnamentBlocks.js:32 +msgid "staccato factor" msgstr "" -#: js/FlowBlocks.js:1083 -msgid "repeat" +#: js/blocks/OrnamentBlocks.js:108 +msgid "slur factor" msgstr "" -#: js/FlowBlocks.js:1123 -msgid "duplicate factor" +#: js/blocks/OrnamentBlocks.js:217 +#: js/blocks/OrnamentBlocks.js:309 +#.TRANS: the neighbor refers to a neighboring note, e.g., D is a neighbor of C +msgid "neighbor" msgstr "" -#: js/PitchBlocks.js:39 -#: js/musicutils.js:722 -#: js/musicutils.js:1117 -#: js/synthutils.js:112 -#.TRANS: square wave -msgid "square" +#: js/blocks/OrnamentBlocks.js:293 +msgid "The Neighbor block rapidly switches between neighboring pitches." msgstr "" -#: js/PitchBlocks.js:62 -#: js/ToneBlocks.js:39 -#: js/musicutils.js:723 -#: js/musicutils.js:1118 -#: js/synthutils.js:116 -#.TRANS: triangle wave -msgid "triangle" +#: js/blocks/OrnamentBlocks.js:364 +msgid "glide" msgstr "" -#: js/PitchBlocks.js:85 -#: js/musicutils.js:721 -#: js/musicutils.js:1116 -#: js/synthutils.js:110 -#.TRANS: sine wave -msgid "sine" +#: js/blocks/OrnamentBlocks.js:479 +#: js/blocks/OrnamentBlocks.js:643 +msgid "slur" msgstr "" -#: js/PitchBlocks.js:108 -#: js/musicutils.js:724 -#: js/musicutils.js:1119 -#: js/synthutils.js:114 -#.TRANS: sawtooth wave -msgid "sawtooth" +#: js/blocks/OrnamentBlocks.js:558 +#: js/blocks/OrnamentBlocks.js:710 +#.TRANS: play each note sharply detached from the others +msgid "staccato" msgstr "" -#: js/PitchBlocks.js:141 -#.TRANS: musical transposition (adjustment of pitch up or down) -msgid "transposition" +#: js/blocks/RhythmBlocks.js:182 +#: js/blocks/RhythmBlocks.js:1086 +#: js/blocks/RhythmBlocks.js:1162 +msgid "Note value must be greater than 0." msgstr "" -#: js/PitchBlocks.js:168 -#.TRANS: step down one note in current musical scale -msgid "scalar step down" +#: js/blocks/RhythmBlocks.js:215 +#: js/blocks/RhythmBlocks.js:278 +#: js/blocks/RhythmBlocks.js:350 +#.TRANS: swing is a rhythmic variation that emphasises the offbeat +msgid "swing" msgstr "" -#: js/PitchBlocks.js:172 -msgid "The Scalar step down block returns the number of semi-tones down to the previous note in the current key and mode." +#: js/blocks/RhythmBlocks.js:355 +#.TRANS: the amount to shift to the offbeat note +msgid "swing value" msgstr "" -#: js/PitchBlocks.js:190 -#.TRANS: step up one note in current musical scale -msgid "scalar step up" +#: js/blocks/RhythmBlocks.js:419 +msgid "The Skip notes block will cause notes to be skipped." msgstr "" -#: js/PitchBlocks.js:194 -msgid "The Scalar step up block returns the number of semi-tones up to the next note in the current key and mode." +#: js/blocks/RhythmBlocks.js:427 +#.TRANS: substitute rests on notes being skipped +msgid "skip notes" msgstr "" -#: js/PitchBlocks.js:212 -#.TRANS: the change measured in half-steps between the current pitch and the previous pitch -msgid "change in pitch" +#: js/blocks/RhythmBlocks.js:489 +#.TRANS: speed up note duration by some factor, e.g. convert 1/4 to 1/8 notes by using a factor of 2 +msgid "multiply note value" msgstr "" -#: js/PitchBlocks.js:216 -msgid "The Change in pitch block is the difference (in half steps) between the current pitch being played and the previous pitch played." +#: js/blocks/RhythmBlocks.js:542 +msgid "The Tie block works on pairs of notes, combining them into one note." msgstr "" -#: js/PitchBlocks.js:243 -#.TRANS: the change measured in scale-steps between the current pitch and the previous pitch -msgid "scalar change in pitch" +#: js/blocks/RhythmBlocks.js:550 +#.TRANS: tie notes together into one longer note +msgid "tie" msgstr "" -#: js/PitchBlocks.js:250 -#: js/PitchBlocks.js:432 -#: js/PitchBlocks.js:1629 -#: js/DictActions.js:89 -#: js/temperament.js:477 -#: js/temperament.js:481 -#: js/temperament.js:714 -#.TRANS: convert current note to piano key (1-88) -#.TRANS: a mapping of pitch to the 88 piano keys -msgid "pitch number" +#: js/blocks/RhythmBlocks.js:591 +#: js/blocks/RhythmBlocks.js:671 +#.TRANS: a dotted note is played for 1.5x its value, e.g., 1/8. --> 3/16 +msgid "dot" msgstr "" -#: js/PitchBlocks.js:256 -msgid "The Pitch number block is the value of the pitch of the note currently being played." +#: js/blocks/RhythmBlocks.js:619 +#: js/turtleactions/RhythmActions.js:221 +msgid "An argument of -1 results in a note value of 0." msgstr "" -#: js/PitchBlocks.js:329 -#: js/PitchBlocks.js:433 -#.TRANS: the current pitch expressed in Hertz -msgid "pitch in hertz" +#: js/blocks/RhythmBlocks.js:661 +msgid "The Dot block extends the duration of a note by 50%." msgstr "" -#: js/PitchBlocks.js:334 -msgid "The Pitch in Hertz block is the value in Hertz of the pitch of the note currently being played." +#: js/blocks/RhythmBlocks.js:663 +msgid "Eg a dotted quarter note will play for 3/8 (1/4 + 1/8) of a beat." msgstr "" -#: js/PitchBlocks.js:367 -#: js/DictActions.js:87 -msgid "current pitch" +#: js/blocks/RhythmBlocks.js:765 +#.TRANS: Japanese only: note value block for drum +msgid "note value drum" msgstr "" -#: js/PitchBlocks.js:373 -msgid "The Current Pitch block is used with the Pitch Converter block. In the example above, current pitch, sol 4, is displayed as 392 hertz." +#: js/blocks/RhythmBlocks.js:829 +msgid "392 hertz" msgstr "" -#: js/PitchBlocks.js:410 -msgid "This block converts the pitch value of the last note played into different formats such as hertz, letter name, pitch number, et al." +#: js/blocks/RhythmBlocks.js:1119 +msgid "The Note block is a container for one or more Pitch blocks." msgstr "" -#: js/PitchBlocks.js:434 -msgid "alphabet" +#: js/blocks/RhythmBlocks.js:1121 +msgid "The Note block specifies the duration (note value) of its contents." msgstr "" -#: js/PitchBlocks.js:436 -#.TRANS: Translate as "alphabet class" -msgid "letter class" +#: js/blocks/RhythmBlocks.js:1128 +#: js/blocks/PitchBlocks.js:974 +#: js/blocks/PitchBlocks.js:1007 +#: js/blocks/ProgramBlocks.js:1186 +#: js/blocks/ProgramBlocks.js:1227 +#: js/widgets/status.js:190 +#: js/widgets/temperament.js:464 +#: js/widgets/temperament.js:486 +#: js/widgets/temperament.js:496 +#: js/widgets/temperament.js:617 +#: plugins/rodi.rtp:192 +#.TRANS: a musical note consisting of pitch and duration +msgid "note" msgstr "" -#: js/PitchBlocks.js:437 -msgid "solfege class" +#: js/blocks/RhythmBlocks.js:1130 +msgid "value2" msgstr "" -#: js/PitchBlocks.js:438 -msgid "staff y" +#: js/blocks/RhythmBlocks.js:1200 +msgid "define frequency" msgstr "" -#: js/PitchBlocks.js:439 -msgid "solfege syllable" +#: js/blocks/RhythmBlocks.js:1218 +#: js/widgets/temperament.js:787 +#: js/widgets/temperament.js:1587 +msgid "octave space" msgstr "" -#: js/PitchBlocks.js:440 -msgid "pitch class" +#: js/blocks/SensorsBlocks.js:36 +msgid "The Input block prompts for keyboard input." msgstr "" -#: js/PitchBlocks.js:441 -msgid "scalar class" +#: js/blocks/SensorsBlocks.js:46 +msgid "input" msgstr "" -#: js/PitchBlocks.js:443 -msgid "nth degree" +#: js/blocks/SensorsBlocks.js:64 +msgid "Input a value" msgstr "" -#: js/PitchBlocks.js:444 -msgid "pitch to shade" +#: js/blocks/SensorsBlocks.js:126 +msgid "input value" msgstr "" -#: js/PitchBlocks.js:445 -msgid "pitch to color" +#: js/blocks/SensorsBlocks.js:131 +msgid "The Input-value block stores the input." msgstr "" -#: js/PitchBlocks.js:629 -#: js/musickeyboard.js:565 -#.TRANS: MIDI is a technical standard for electronic music -msgid "MIDI" +#: js/blocks/SensorsBlocks.js:238 +msgid "loudness" msgstr "" -#: js/PitchBlocks.js:642 -#.TRANS: set an offset associated with the numeric piano keyboard mapping -msgid "set pitch number offset" +#: js/blocks/SensorsBlocks.js:245 +msgid "The Loudness block returns the volume detected by the microphone." msgstr "" -#: js/PitchBlocks.js:645 -msgid "The Set pitch number offset block is used to set the offset for mapping pitch numbers to pitch and octave." +#: js/blocks/SensorsBlocks.js:300 +msgid "click" msgstr "" -#: js/PitchBlocks.js:679 -#.TRANS: convert piano key number (1-88) to pitch -msgid "number to pitch" +#: js/blocks/SensorsBlocks.js:306 +msgid "The Click block triggers an event if a mouse has been clicked." msgstr "" -#: js/PitchBlocks.js:682 -msgid "The Number to pitch block will convert a pitch number to a pich name." +#: js/blocks/SensorsBlocks.js:313 +msgid "The Click block triggers an event if a turtle has been clicked." msgstr "" -#: js/PitchBlocks.js:715 -#.TRANS: convert piano key number (1-88) to octave -msgid "number to octave" +#: js/blocks/SensorsBlocks.js:342 +msgid "cursor over" msgstr "" -#: js/PitchBlocks.js:717 -msgid "The Number to octave block will convert a pitch number to an octave." +#: js/blocks/SensorsBlocks.js:387 +msgid "cursor out" msgstr "" -#: js/PitchBlocks.js:726 -msgid "y to pitch" +#: js/blocks/SensorsBlocks.js:433 +msgid "cursor button down" msgstr "" -#: js/PitchBlocks.js:729 -msgid "Y to pitch block will convert a staff y position to corresponding pitch notation." +#: js/blocks/SensorsBlocks.js:477 +msgid "cursor button up" msgstr "" -#: js/PitchBlocks.js:841 -msgid "accidental selector" +#: js/blocks/SensorsBlocks.js:521 +#: js/blocks/PenBlocks.js:48 +#: plugins/rodi.rtp:219 +msgid "blue" msgstr "" -#: js/PitchBlocks.js:844 -msgid "The Accidental selector block is used to choose between double-sharp, sharp, natural, flat, and double-flat." +#: js/blocks/SensorsBlocks.js:577 +#: js/blocks/PenBlocks.js:64 +#: plugins/rodi.rtp:218 +msgid "green" msgstr "" -#: js/PitchBlocks.js:858 -msgid "Pitch can be specified in terms of ni dha pa ma ga re sa." +#: js/blocks/SensorsBlocks.js:633 +#: js/blocks/PenBlocks.js:112 +#: plugins/rodi.rtp:217 +msgid "red" msgstr "" -#: js/PitchBlocks.js:872 -msgid "Pitch can be specified in terms of C D E F G A B." +#: js/blocks/SensorsBlocks.js:638 +msgid "The Get red block returns the red component of the pixel under the mouse." msgstr "" -#: js/PitchBlocks.js:883 -msgid "solfege" +#: js/blocks/SensorsBlocks.js:644 +msgid "The Get red block returns the red component of the pixel under the turtle." msgstr "" -#: js/PitchBlocks.js:886 -msgid "Pitch can be specified in terms of do re mi fa sol la ti." +#: js/blocks/SensorsBlocks.js:685 +#: plugins/rodi.rtp:216 +msgid "pixel color" msgstr "" -#: js/PitchBlocks.js:920 -msgid "The Invert block rotates any contained notes around a target note." +#: js/blocks/SensorsBlocks.js:690 +msgid "The Get pixel block returns the color of the pixel under the mouse." msgstr "" -#: js/PitchBlocks.js:927 -#.TRANS: pitch inversion rotates a pitch around another pitch -msgid "invert" +#: js/blocks/SensorsBlocks.js:696 +msgid "The Get pixel block returns the color of the pixel under the turtle." msgstr "" -#: js/PitchBlocks.js:929 -#: js/PitchBlocks.js:935 -#: js/PitchActions.js:727 -#: js/musicutils.js:726 -#: js/musicutils.js:902 -#.TRANS: invert based on even or odd number or musical scale -#.TRANS: even numbers -msgid "even" +#: js/blocks/SensorsBlocks.js:758 +msgid "time" msgstr "" -#: js/PitchBlocks.js:935 -#: js/PitchActions.js:729 -#: js/musicutils.js:728 -#: js/musicutils.js:903 -#.TRANS: odd numbers -msgid "odd" +#: js/blocks/SensorsBlocks.js:804 +msgid "cursor y" msgstr "" -#: js/PitchBlocks.js:935 -#: js/PitchActions.js:731 -#: js/musicutils.js:729 -#: js/musicutils.js:904 -msgid "scalar" +#: js/blocks/SensorsBlocks.js:809 +msgid "The Cursor Y block returns the vertical position of the mouse." msgstr "" -#: js/PitchBlocks.js:966 -#.TRANS: pitch inversion rotates a pitch around another pitch (odd number) -msgid "invert (odd)" +#: js/blocks/SensorsBlocks.js:845 +msgid "cursor x" msgstr "" -#: js/PitchBlocks.js:999 -#.TRANS: pitch inversion rotates a pitch around another pitch (even number) -msgid "invert (even)" +#: js/blocks/SensorsBlocks.js:850 +msgid "The Cursor X block returns the horizontal position of the mouse." msgstr "" -#: js/PitchBlocks.js:1020 -#.TRANS: register is the octave of the current pitch -msgid "register" +#: js/blocks/SensorsBlocks.js:886 +msgid "mouse button" msgstr "" -#: js/PitchBlocks.js:1024 -msgid "The Register block provides an easy way to modify the register (octave) of the notes that follow it." +#: js/blocks/SensorsBlocks.js:888 +msgid "The Mouse-button block returns True if the mouse button is pressed." msgstr "" -#: js/PitchBlocks.js:1074 -msgid "The Semi-tone transposition block will shift the pitches contained inside Note blocks up (or down) by half steps." +#: js/blocks/SensorsBlocks.js:934 +msgid "to ASCII" msgstr "" -#: js/PitchBlocks.js:1076 -msgid "In the example shown above, sol is shifted up to sol#." +#: js/blocks/SensorsBlocks.js:938 +msgid "The To ASCII block converts numbers to letters." msgstr "" -#: js/PitchBlocks.js:1082 -#.TRANS: adjust the amount of shift (up or down) of a pitch -msgid "semi-tone transpose" +#: js/blocks/SensorsBlocks.js:1005 +msgid "The Keyboard block returns computer keyboard input." msgstr "" -#: js/PitchBlocks.js:1115 -msgid "The Transpose by Ratio block will shift the pitches contained inside Note blocks up (or down) by a ratio" +#: js/blocks/RhythmBlockPaletteBlocks.js:50 +#: js/blocks/RhythmBlockPaletteBlocks.js:233 +#.TRANS: rhythm block +#.TRANS: translate "rhythm1" as rhythm +msgid "rhythm1" msgstr "" -#: js/PitchBlocks.js:1121 -#.TRANS: adjust the amount of shift (up or down) of a pitch -msgid "transpose by ratio" +#: js/blocks/RhythmBlockPaletteBlocks.js:70 +#: js/blocks/RhythmBlockPaletteBlocks.js:252 +#: js/blocks/RhythmBlockPaletteBlocks.js:485 +#: js/blocks/RhythmBlockPaletteBlocks.js:554 +#: js/blocks/RhythmBlockPaletteBlocks.js:875 +msgid "number of notes" msgstr "" -#: js/PitchBlocks.js:1204 -#.TRANS: down sixth means the note is five scale degrees below current note -msgid "down sixth" +#: js/blocks/RhythmBlockPaletteBlocks.js:126 +msgid "polyphonic rhythm" msgstr "" -#: js/PitchBlocks.js:1223 -#.TRANS: down third means the note is two scale degrees below current note -msgid "down third" +#: js/blocks/RhythmBlockPaletteBlocks.js:219 +msgid "The Rhythm block is used to generate rhythm patterns." msgstr "" -#: js/PitchBlocks.js:1242 -#.TRANS: seventh means the note is the six scale degrees above current note -msgid "seventh" +#: js/blocks/RhythmBlockPaletteBlocks.js:280 +msgid "1/64 note" msgstr "" -#: js/PitchBlocks.js:1261 -#.TRANS: sixth means the note is the five scale degrees above current note -msgid "sixth" +#: js/blocks/RhythmBlockPaletteBlocks.js:304 +msgid "1/32 note" msgstr "" -#: js/PitchBlocks.js:1280 -#.TRANS: fifth means the note is the four scale degrees above current note -msgid "fifth" +#: js/blocks/RhythmBlockPaletteBlocks.js:332 +msgid "1/16 note" msgstr "" -#: js/PitchBlocks.js:1300 -#.TRANS: fourth means the note is three scale degrees above current note -msgid "fourth" +#: js/blocks/RhythmBlockPaletteBlocks.js:360 +msgid "eighth note" msgstr "" -#: js/PitchBlocks.js:1319 -#.TRANS: third means the note is two scale degrees above current note -msgid "third" +#: js/blocks/RhythmBlockPaletteBlocks.js:388 +msgid "quarter note" msgstr "" -#: js/PitchBlocks.js:1338 -#.TRANS: second means the note is one scale degree above current note -msgid "second" +#: js/blocks/RhythmBlockPaletteBlocks.js:416 +msgid "half note" msgstr "" -#: js/PitchBlocks.js:1379 -msgid "The Scalar transposition block will shift the pitches contained inside Note blocks up (or down) the scale." +#: js/blocks/RhythmBlockPaletteBlocks.js:444 +msgid "whole note" msgstr "" -#: js/PitchBlocks.js:1381 -msgid "In the example shown above, sol is shifted up to la." +#: js/blocks/RhythmBlockPaletteBlocks.js:482 +#: js/blocks/RhythmBlockPaletteBlocks.js:551 +#: js/blocks/RhythmBlockPaletteBlocks.js:602 +#.TRANS: A tuplet is a note value divided into irregular time values. +msgid "tuplet" msgstr "" -#: js/PitchBlocks.js:1388 -#.TRANS: adjust the amount of shift (up or down) of a pitch by musical scale (scalar) steps -msgid "scalar transpose" +#: js/blocks/RhythmBlockPaletteBlocks.js:768 +msgid "septuplet" msgstr "" -#: js/PitchBlocks.js:1423 -msgid "The Accidental block is used to create sharps and flats" +#: js/blocks/RhythmBlockPaletteBlocks.js:796 +msgid "quintuplet" msgstr "" -#: js/PitchBlocks.js:1430 -#.TRANS: An accidental is a modification to a pitch, e.g., sharp or flat. -msgid "accidental override" +#: js/blocks/RhythmBlockPaletteBlocks.js:824 +msgid "triplet" msgstr "" -#: js/PitchBlocks.js:1543 -msgid "The Hertz block (in combination with a Number block) will play a sound at the specified frequency." +#: js/blocks/RhythmBlockPaletteBlocks.js:851 +msgid "simple tuplet" msgstr "" -#: js/PitchBlocks.js:1633 -msgid "The Pitch Number block will play a pitch associated by its number, e.g. 0 for C and 7 for G." +#: js/blocks/RhythmBlockPaletteBlocks.js:861 +msgid "Tuplets are a collection of notes that get scaled to a specific duration." msgstr "" -#: js/PitchBlocks.js:1665 -#: js/PitchBlocks.js:1707 -#.TRANS: a numeric mapping of the notes in an octave based on the musical mode -#.TRANS: a numeric mapping of the notes in an octave based on the musical mode -msgid "nth modal pitch" +#: js/blocks/DrumBlocks.js:59 +msgid "The Noise name block is used to select a noise synthesizer." msgstr "" -#: js/PitchBlocks.js:1668 -msgid "n^th Modal Pitch takes the pattern of pitches in semitones for a mode and makes each point a degree of the mode," +#: js/blocks/DrumBlocks.js:102 +msgid "The Drum name block is used to select a drum." msgstr "" -#: js/PitchBlocks.js:1670 -msgid "starting from 1 and regardless of tonal framework (i.e. not always 8 notes in the octave)" +#: js/blocks/DrumBlocks.js:146 +msgid "The Effects name block is used to select a sound effect." msgstr "" -#: js/PitchBlocks.js:1711 -msgid "N^th Modal Pitch takes a number as an input as the n^th degree for the given mode. 0 is the first position, 1 is the second, -1 is the note before the first etc." +#: js/blocks/DrumBlocks.js:163 +msgid "noise" msgstr "" -#: js/PitchBlocks.js:1713 -msgid "The pitches change according to the mode specified without any need for respellings." +#: js/blocks/DrumBlocks.js:177 +msgid "The Play noise block will generate white, pink, or brown noise." msgstr "" -#: js/PitchBlocks.js:1752 -msgid "Scale Degree is a common convention in music. Scale Degree offers seven possible positions in the scale (1-7) and can be modified via accidentals." +#: js/blocks/DrumBlocks.js:317 +msgid "Replace every instance of a pitch with a drum sound." msgstr "" -#: js/PitchBlocks.js:1754 -msgid "Scale Degree 1 is always the first pitch in a given scale, regardless of octave." +#: js/blocks/DrumBlocks.js:328 +#.TRANS: map a pitch to a drum sound +msgid "map pitch to drum" msgstr "" -#: js/PitchBlocks.js:1776 -#.TRANS: step some number of notes in current musical scale -msgid "scalar step" +#: js/blocks/DrumBlocks.js:395 +msgid "In the example above, a kick drum sound will be played instead of sol." msgstr "" -#: js/PitchBlocks.js:1781 -msgid "The Scalar Step block (in combination with a Number block) will play the next pitch in a scale," +#: js/blocks/DrumBlocks.js:407 +#.TRANS: set the current drum sound for playback +msgid "set drum" msgstr "" -#: js/PitchBlocks.js:1783 -msgid "eg if the last note played was sol, Scalar Step 1 will play la." +#: js/blocks/DrumBlocks.js:451 +msgid "sound effect" msgstr "" -#: js/PitchBlocks.js:1818 -msgid "The Pitch block specifies the pitch name and octave of a note that together determine the frequency of the note." +#: js/blocks/DrumBlocks.js:489 +msgid "You can use multiple Drum blocks within a Note block." msgstr "" -#: js/GraphicsBlocks.js:46 -#: js/DictActions.js:77 -#: js/DictActions.js:155 -#: js/DictActions.js:189 +#: js/blocks/GraphicsBlocks.js:46 +#: js/turtleactions/DictActions.js:77 +#: js/turtleactions/DictActions.js:144 +#: js/turtleactions/DictActions.js:173 msgid "heading" msgstr "" -#: js/GraphicsBlocks.js:56 +#: js/blocks/GraphicsBlocks.js:56 msgid "The Heading block returns the orientation of the mouse." msgstr "" -#: js/GraphicsBlocks.js:62 +#: js/blocks/GraphicsBlocks.js:62 msgid "The Heading block returns the orientation of the turtle." msgstr "" -#: js/GraphicsBlocks.js:133 +#: js/blocks/GraphicsBlocks.js:133 msgid "The Y block returns the vertical position of the mouse." msgstr "" -#: js/GraphicsBlocks.js:140 +#: js/blocks/GraphicsBlocks.js:140 msgid "The Y block returns the vertical position of the turtle." msgstr "" -#: js/GraphicsBlocks.js:149 +#: js/blocks/GraphicsBlocks.js:149 msgid "y3" msgstr "" -#: js/GraphicsBlocks.js:219 +#: js/blocks/GraphicsBlocks.js:219 msgid "The X block returns the horizontal position of the mouse." msgstr "" -#: js/GraphicsBlocks.js:226 +#: js/blocks/GraphicsBlocks.js:226 msgid "The X block returns the horizontal position of the turtle." msgstr "" -#: js/GraphicsBlocks.js:235 +#: js/blocks/GraphicsBlocks.js:235 msgid "x3" msgstr "" -#: js/GraphicsBlocks.js:295 +#: js/blocks/GraphicsBlocks.js:295 msgid "scroll xy" msgstr "" -#: js/GraphicsBlocks.js:303 +#: js/blocks/GraphicsBlocks.js:303 msgid "The Scroll XY block moves the canvas." msgstr "" -#: js/GraphicsBlocks.js:313 +#: js/blocks/GraphicsBlocks.js:313 msgid "x2" msgstr "" -#: js/GraphicsBlocks.js:313 +#: js/blocks/GraphicsBlocks.js:313 msgid "y2" msgstr "" -#: js/GraphicsBlocks.js:373 -#: js/temperament.js:213 -#: js/temperament.js:241 +#: js/blocks/GraphicsBlocks.js:373 +#: js/widgets/temperament.js:319 +#: js/widgets/temperament.js:347 msgid "clear" msgstr "" -#: js/GraphicsBlocks.js:426 +#: js/blocks/GraphicsBlocks.js:426 msgid "The Control-point 2 block sets the second control point for the Bezier curve." msgstr "" -#: js/GraphicsBlocks.js:433 +#: js/blocks/GraphicsBlocks.js:433 msgid "control point 2" msgstr "" -#: js/GraphicsBlocks.js:436 -#: js/GraphicsBlocks.js:487 -#: js/GraphicsBlocks.js:534 -#: js/GraphicsBlocks.js:750 +#: js/blocks/GraphicsBlocks.js:436 +#: js/blocks/GraphicsBlocks.js:487 +#: js/blocks/GraphicsBlocks.js:534 +#: js/blocks/GraphicsBlocks.js:750 msgid "x1" msgstr "" -#: js/GraphicsBlocks.js:436 -#: js/GraphicsBlocks.js:487 -#: js/GraphicsBlocks.js:534 -#: js/GraphicsBlocks.js:750 +#: js/blocks/GraphicsBlocks.js:436 +#: js/blocks/GraphicsBlocks.js:487 +#: js/blocks/GraphicsBlocks.js:534 +#: js/blocks/GraphicsBlocks.js:750 msgid "y1" msgstr "" -#: js/GraphicsBlocks.js:477 +#: js/blocks/GraphicsBlocks.js:477 msgid "The Control-point 1 block sets the first control point for the Bezier curve." msgstr "" -#: js/GraphicsBlocks.js:484 +#: js/blocks/GraphicsBlocks.js:484 msgid "control point 1" msgstr "" -#: js/GraphicsBlocks.js:527 +#: js/blocks/GraphicsBlocks.js:527 msgid "The Bezier block draws a Bezier curve." msgstr "" -#: js/GraphicsBlocks.js:531 +#: js/blocks/GraphicsBlocks.js:531 msgid "bezier" msgstr "" -#: js/GraphicsBlocks.js:592 +#: js/blocks/GraphicsBlocks.js:592 msgid "The Arc block moves the turtle in an arc." msgstr "" -#: js/GraphicsBlocks.js:600 +#: js/blocks/GraphicsBlocks.js:600 msgid "arc" msgstr "" -#: js/GraphicsBlocks.js:603 +#: js/blocks/GraphicsBlocks.js:603 msgid "angle" msgstr "" -#: js/GraphicsBlocks.js:603 +#: js/blocks/GraphicsBlocks.js:603 msgid "radius" msgstr "" -#: js/GraphicsBlocks.js:620 -#: js/GraphicsBlocks.js:767 -#: js/GraphicsBlocks.js:1010 -#: js/GraphicsBlocks.js:1093 +#: js/blocks/GraphicsBlocks.js:620 +#: js/blocks/GraphicsBlocks.js:767 +#: js/blocks/GraphicsBlocks.js:1010 +#: js/blocks/GraphicsBlocks.js:1093 msgid "Value must be within -5000 to 5000 when Wrap Mode is off." msgstr "" -#: js/GraphicsBlocks.js:622 -#: js/GraphicsBlocks.js:769 -#: js/GraphicsBlocks.js:1012 -#: js/GraphicsBlocks.js:1095 +#: js/blocks/GraphicsBlocks.js:622 +#: js/blocks/GraphicsBlocks.js:769 +#: js/blocks/GraphicsBlocks.js:1012 +#: js/blocks/GraphicsBlocks.js:1095 msgid "Value must be within -20000 to 20000 when Wrap Mode is on." msgstr "" -#: js/GraphicsBlocks.js:660 +#: js/blocks/GraphicsBlocks.js:660 msgid "set heading" msgstr "seth" -#: js/GraphicsBlocks.js:673 +#: js/blocks/GraphicsBlocks.js:673 msgid "The Set heading block sets the heading of the turtle." msgstr "" -#: js/GraphicsBlocks.js:733 +#: js/blocks/GraphicsBlocks.js:733 msgid "The Set XY block moves the mouse to a specific position on the screen." msgstr "" -#: js/GraphicsBlocks.js:739 +#: js/blocks/GraphicsBlocks.js:739 msgid "The Set XY block moves the turtle to a specific position on the screen." msgstr "" -#: js/GraphicsBlocks.js:747 +#: js/blocks/GraphicsBlocks.js:747 msgid "set xy" msgstr "" -#: js/GraphicsBlocks.js:819 +#: js/blocks/GraphicsBlocks.js:819 msgid "The Right block turns the mouse to the right." msgstr "" -#: js/GraphicsBlocks.js:826 +#: js/blocks/GraphicsBlocks.js:826 msgid "The Right block turns the turtle to the right." msgstr "" -#: js/GraphicsBlocks.js:835 +#: js/blocks/GraphicsBlocks.js:835 msgid "right1" msgstr "" -#: js/GraphicsBlocks.js:835 +#: js/blocks/GraphicsBlocks.js:835 #: plugins/rodi.rtp:77 #: plugins/rodi.rtp:340 #: plugins/rodi.rtp:375 msgid "right" msgstr "" -#: js/GraphicsBlocks.js:899 +#: js/blocks/GraphicsBlocks.js:899 msgid "The Left block turns the mouse to the left." msgstr "" -#: js/GraphicsBlocks.js:906 +#: js/blocks/GraphicsBlocks.js:906 msgid "The Left block turns the turtle to the left." msgstr "" -#: js/GraphicsBlocks.js:915 +#: js/blocks/GraphicsBlocks.js:915 msgid "left1" msgstr "" -#: js/GraphicsBlocks.js:915 +#: js/blocks/GraphicsBlocks.js:915 #: plugins/rodi.rtp:79 #: plugins/rodi.rtp:339 #: plugins/rodi.rtp:362 msgid "left" msgstr "" -#: js/GraphicsBlocks.js:967 -#: js/temperament.js:734 -#: js/temperament.js:933 +#: js/blocks/GraphicsBlocks.js:967 +#: js/widgets/temperament.js:875 +#: js/widgets/temperament.js:1078 #: plugins/rodi.rtp:69 #: plugins/rodi.rtp:387 msgid "back" msgstr "" -#: js/GraphicsBlocks.js:976 +#: js/blocks/GraphicsBlocks.js:976 msgid "The Back block moves the mouse backward." msgstr "" -#: js/GraphicsBlocks.js:983 +#: js/blocks/GraphicsBlocks.js:983 msgid "The Back block moves the turtle backward." msgstr "" -#: js/GraphicsBlocks.js:1050 +#: js/blocks/GraphicsBlocks.js:1050 #: plugins/rodi.rtp:71 #: plugins/rodi.rtp:400 msgid "forward" msgstr "" -#: js/GraphicsBlocks.js:1059 +#: js/blocks/GraphicsBlocks.js:1059 msgid "The Forward block moves the mouse forward." msgstr "" -#: js/GraphicsBlocks.js:1066 +#: js/blocks/GraphicsBlocks.js:1066 msgid "The Forward block moves the turtle forward." msgstr "" -#: js/GraphicsBlocks.js:1154 -#: js/GraphicsBlocks.js:1172 +#: js/blocks/GraphicsBlocks.js:1154 +#: js/blocks/GraphicsBlocks.js:1172 msgid "wrap" msgstr "" -#: js/OrnamentBlocks.js:32 -msgid "staccato factor" -msgstr "" - -#: js/OrnamentBlocks.js:108 -msgid "slur factor" -msgstr "" - -#: js/OrnamentBlocks.js:217 -#: js/OrnamentBlocks.js:309 -#.TRANS: the neighbor refers to a neighboring note, e.g., D is a neighbor of C -msgid "neighbor" -msgstr "" - -#: js/OrnamentBlocks.js:293 -msgid "The Neighbor block rapidly switches between neighboring pitches." -msgstr "" - -#: js/OrnamentBlocks.js:364 -msgid "glide" -msgstr "" - -#: js/OrnamentBlocks.js:479 -#: js/OrnamentBlocks.js:643 -msgid "slur" -msgstr "" - -#: js/OrnamentBlocks.js:558 -#: js/OrnamentBlocks.js:710 -#.TRANS: play each note sharply detached from the others -msgid "staccato" -msgstr "" - -#: js/PenBlocks.js:24 +#: js/blocks/PenBlocks.js:30 msgid "purple" msgstr "" -#: js/PenBlocks.js:37 -#: js/SensorsBlocks.js:521 -#: plugins/rodi.rtp:219 -msgid "blue" -msgstr "" - -#: js/PenBlocks.js:50 -#: js/SensorsBlocks.js:577 -#: plugins/rodi.rtp:218 -msgid "green" -msgstr "" - -#: js/PenBlocks.js:63 +#: js/blocks/PenBlocks.js:80 msgid "yellow" msgstr "" -#: js/PenBlocks.js:76 +#: js/blocks/PenBlocks.js:96 #: plugins/nutrition.rtp:164 msgid "orange" msgstr "" -#: js/PenBlocks.js:89 -#: js/SensorsBlocks.js:633 -#: plugins/rodi.rtp:217 -msgid "red" -msgstr "" - -#: js/PenBlocks.js:102 +#: js/blocks/PenBlocks.js:128 msgid "white" msgstr "" -#: js/PenBlocks.js:115 +#: js/blocks/PenBlocks.js:144 msgid "black" msgstr "" -#: js/PenBlocks.js:128 +#: js/blocks/PenBlocks.js:163 msgid "begin fill" msgstr "" -#: js/PenBlocks.js:143 +#: js/blocks/PenBlocks.js:190 msgid "end fill" msgstr "" -#: js/PenBlocks.js:159 -#: js/PenBlocks.js:386 +#: js/blocks/PenBlocks.js:212 +#: js/blocks/PenBlocks.js:560 #.TRANS: set the background color msgid "background" msgstr "" -#: js/PenBlocks.js:206 -#: js/DictActions.js:71 -#: js/DictActions.js:149 -#: js/DictActions.js:186 +#: js/blocks/PenBlocks.js:274 +#: js/turtleactions/DictActions.js:71 +#: js/turtleactions/DictActions.js:138 +#: js/turtleactions/DictActions.js:170 msgid "grey" msgstr "" -#: js/PenBlocks.js:210 +#: js/blocks/PenBlocks.js:282 msgid "The Grey block returns the current pen grey value." msgstr "" -#: js/PenBlocks.js:243 -#: js/DictActions.js:69 -#: js/DictActions.js:147 -#: js/DictActions.js:185 +#: js/blocks/PenBlocks.js:340 +#: js/turtleactions/DictActions.js:69 +#: js/turtleactions/DictActions.js:136 +#: js/turtleactions/DictActions.js:169 msgid "shade" msgstr "" -#: js/PenBlocks.js:247 +#: js/blocks/PenBlocks.js:347 msgid "The Shade block returns the current pen shade value." msgstr "" -#: js/PenBlocks.js:280 -#: js/DictActions.js:67 -#: js/DictActions.js:145 -#: js/DictActions.js:184 +#: js/blocks/PenBlocks.js:405 +#: js/turtleactions/DictActions.js:67 +#: js/turtleactions/DictActions.js:134 +#: js/turtleactions/DictActions.js:168 msgid "color" msgstr "" -#: js/PenBlocks.js:285 +#: js/blocks/PenBlocks.js:415 msgid "The Color block returns the current pen color." msgstr "" -#: js/PenBlocks.js:318 -#: js/DictActions.js:73 -#: js/DictActions.js:151 -#: js/DictActions.js:187 +#: js/blocks/PenBlocks.js:470 +#: js/turtleactions/DictActions.js:73 +#: js/turtleactions/DictActions.js:140 +#: js/turtleactions/DictActions.js:171 msgid "pen size" msgstr "" -#: js/PenBlocks.js:322 +#: js/blocks/PenBlocks.js:474 msgid "The Pen size block returns the current pen size value." msgstr "" -#: js/PenBlocks.js:355 +#: js/blocks/PenBlocks.js:513 msgid "set font" msgstr "" -#: js/PenBlocks.js:358 +#: js/blocks/PenBlocks.js:518 msgid "The Set font block sets the font used by the Show block." msgstr "" -#: js/PenBlocks.js:391 +#: js/blocks/PenBlocks.js:567 msgid "The Background block sets the window background color." msgstr "" -#: js/PenBlocks.js:408 +#: js/blocks/PenBlocks.js:598 msgid "The Hollow line block creates a line with a hollow center." msgstr "" -#: js/PenBlocks.js:415 +#: js/blocks/PenBlocks.js:606 #.TRANS: draw a line logo has a hollow space down its center msgid "hollow line" msgstr "" -#: js/PenBlocks.js:462 +#: js/blocks/PenBlocks.js:675 msgid "The Fill block fills in a shape with a color." msgstr "" -#: js/PenBlocks.js:470 +#: js/blocks/PenBlocks.js:684 #.TRANS: fill in as a solid color msgid "fill" msgstr "" -#: js/PenBlocks.js:527 +#: js/blocks/PenBlocks.js:761 #.TRANS: raise up the pen so logo it does not draw when it is moved msgid "pen up" msgstr "" -#: js/PenBlocks.js:532 +#: js/blocks/PenBlocks.js:768 msgid "The Pen-up block raises the pen so that it does not draw." msgstr "" -#: js/PenBlocks.js:552 +#: js/blocks/PenBlocks.js:802 #.TRANS: put down the pen so logo it draws when it is moved msgid "pen down" msgstr "" -#: js/PenBlocks.js:557 +#: js/blocks/PenBlocks.js:810 msgid "The Pen-down block lowers the pen so that it draws." msgstr "" -#: js/PenBlocks.js:577 +#: js/blocks/PenBlocks.js:844 #.TRANS: set the width of the line drawn by the pen msgid "set pen size" msgstr "" -#: js/PenBlocks.js:583 +#: js/blocks/PenBlocks.js:854 msgid "The Set-pen-size block changes the size of the pen." msgstr "" -#: js/PenBlocks.js:623 +#: js/blocks/PenBlocks.js:913 #.TRANS: set degree of translucence of the pen color msgid "set translucency" msgstr "" -#: js/PenBlocks.js:627 +#: js/blocks/PenBlocks.js:921 msgid "The Set translucency block changes the opacity of the pen." msgstr "" -#: js/PenBlocks.js:668 +#: js/blocks/PenBlocks.js:981 msgid "set hue" msgstr "" -#: js/PenBlocks.js:672 +#: js/blocks/PenBlocks.js:989 msgid "The Set hue block changes the color of the pen." msgstr "" -#: js/PenBlocks.js:711 +#: js/blocks/PenBlocks.js:1047 msgid "set shade" msgstr "" -#: js/PenBlocks.js:717 +#: js/blocks/PenBlocks.js:1057 msgid "The Set-shade block changes the pen color from dark to light." msgstr "" -#: js/PenBlocks.js:757 +#: js/blocks/PenBlocks.js:1111 #.TRANS: set the level of vividness of the pen color msgid "set grey" msgstr "" -#: js/PenBlocks.js:761 +#: js/blocks/PenBlocks.js:1119 msgid "The Set grey block changes the vividness of the pen color." msgstr "" -#: js/PenBlocks.js:800 +#: js/blocks/PenBlocks.js:1172 msgid "set color" msgstr "" -#: js/PenBlocks.js:806 +#: js/blocks/PenBlocks.js:1182 msgid "The Set-color block changes the pen color." msgstr "" -#: js/VolumeBlocks.js:35 -msgid "synth volume" -msgstr "" - -#: js/VolumeBlocks.js:39 -msgid "The Synth volume block returns the current volume of the current synthesizer." -msgstr "" - -#: js/VolumeBlocks.js:47 -#: js/musicutils.js:730 -#: js/synthutils.js:56 -#.TRANS: musical instrument -msgid "piano" -msgstr "" - -#: js/VolumeBlocks.js:105 -msgid "master volume" -msgstr "" - -#: js/VolumeBlocks.js:109 -msgid "The Master volume block returns the master volume." -msgstr "" - -#: js/VolumeBlocks.js:355 -#: js/VolumeBlocks.js:524 -msgid "set synth volume" -msgstr "" - -#: js/VolumeBlocks.js:362 -#: js/VolumeBlocks.js:545 -msgid "synth" -msgstr "" - -#: js/VolumeBlocks.js:403 -#: js/VolumeBlocks.js:577 -#: js/VolumeBlocks.js:740 -#: js/VolumeActions.js:173 -msgid "Setting volume to 0." -msgstr "" - -#: js/VolumeBlocks.js:440 -msgid "Synth not found" -msgstr "" - -#: js/VolumeBlocks.js:494 -msgid "set drum volume" -msgstr "" - -#: js/VolumeBlocks.js:530 -msgid "The Set synth volume block will change the volume of a particular synth," -msgstr "" - -#: js/VolumeBlocks.js:532 -msgid "eg guitar violin snare drum etc." -msgstr "" - -#: js/VolumeBlocks.js:534 -msgid "The default volume is 50." -msgstr "" - -#: js/VolumeBlocks.js:536 -msgid "The range is 0 for silence to 100 for full volume." -msgstr "" - -#: js/VolumeBlocks.js:597 -msgid "set panning" -msgstr "" - -#: js/VolumeBlocks.js:603 -msgid "The Set Panning block sets the panning for all synthesizers." -msgstr "" - -#: js/VolumeBlocks.js:625 -msgid "Warning: Sound is coming out from only the left or right side." -msgstr "" - -#: js/VolumeBlocks.js:647 -#: js/VolumeBlocks.js:695 -msgid "set master volume" -msgstr "" - -#: js/VolumeBlocks.js:653 -msgid "The Set master volume block sets the volume for all synthesizers." -msgstr "" - -#: js/VolumeBlocks.js:784 -msgid "The Set relative volume block changes the volume of the contained notes." -msgstr "" - -#: js/VolumeBlocks.js:791 -msgid "set relative volume" -msgstr "" - -#: js/VolumeBlocks.js:857 -msgid "decrescendo" -msgstr "" - -#: js/VolumeBlocks.js:921 -msgid "crescendo" -msgstr "" - -#: js/ToneBlocks.js:34 -msgid "oscillator" -msgstr "" - -#: js/ToneBlocks.js:44 -#: js/timbre.js:1562 -#.TRANS: Partials refers to the number of sine waves combined into the sound. -msgid "partials" -msgstr "" - -#: js/ToneBlocks.js:76 -msgid "You are adding multiple oscillator blocks." -msgstr "" - -#: js/ToneBlocks.js:144 -#: js/timbre.js:1225 -#.TRANS: a duo synthesizer combines a synth with a sequencer -msgid "duo synth" -msgstr "" - -#: js/ToneBlocks.js:149 -msgid "The Duo synth block is a duo-frequency modulator used to define a timbre." -msgstr "" - -#: js/ToneBlocks.js:157 -#: js/timbre.js:1476 -msgid "vibrato rate" -msgstr "" - -#: js/ToneBlocks.js:157 -msgid "vibrato intensity" -msgstr "" - -#: js/ToneBlocks.js:185 -#: js/timbre.js:1221 -#.TRANS: AM (amplitude modulation) synthesizer -msgid "AM synth" -msgstr "" - -#: js/ToneBlocks.js:189 -msgid "The AM synth block is an amplitude modulator used to define a timbre." -msgstr "" - -#: js/ToneBlocks.js:224 -#: js/timbre.js:1223 -#.TRANS: FM (frequency modulation) synthesizer -msgid "FM synth" -msgstr "" - -#: js/ToneBlocks.js:228 -msgid "The FM synth block is a frequency modulator used to define a timbre." +#: js/blocks/PitchBlocks.js:141 +#.TRANS: musical transposition (adjustment of pitch up or down) +msgid "transposition" msgstr "" -#: js/ToneBlocks.js:262 -msgid "partial" +#: js/blocks/PitchBlocks.js:168 +#.TRANS: step down one note in current musical scale +msgid "scalar step down" msgstr "" -#: js/ToneBlocks.js:265 -msgid "The Partial block is used to specify a weight for a specific partial harmonic." +#: js/blocks/PitchBlocks.js:172 +msgid "The Scalar step down block returns the number of semi-tones down to the previous note in the current key and mode." msgstr "" -#: js/ToneBlocks.js:284 -#.TRANS: partials are weighted components in a harmonic series -msgid "Partial weight must be between 0 and 1." +#: js/blocks/PitchBlocks.js:190 +#.TRANS: step up one note in current musical scale +msgid "scalar step up" msgstr "" -#: js/ToneBlocks.js:297 -#.TRANS: partials are weighted components in a harmonic series -msgid "Partial block should be used inside of a Weighted-partials block." +#: js/blocks/PitchBlocks.js:194 +msgid "The Scalar step up block returns the number of semi-tones up to the next note in the current key and mode." msgstr "" -#: js/ToneBlocks.js:325 -#.TRANS: partials are weighted components in a harmonic series -msgid "weighted partials" +#: js/blocks/PitchBlocks.js:212 +#.TRANS: the change measured in half-steps between the current pitch and the previous pitch +msgid "change in pitch" msgstr "" -#: js/ToneBlocks.js:383 -msgid "The Harmonic block will add harmonics to the contained notes." +#: js/blocks/PitchBlocks.js:216 +msgid "The Change in pitch block is the difference (in half steps) between the current pitch being played and the previous pitch played." msgstr "" -#: js/ToneBlocks.js:390 -#.TRANS: A harmonic is an overtone. -msgid "harmonic" +#: js/blocks/PitchBlocks.js:243 +#.TRANS: the change measured in scale-steps between the current pitch and the previous pitch +msgid "scalar change in pitch" msgstr "" -#: js/ToneBlocks.js:431 -msgid "The Distortion block adds distortion to the pitch." +#: js/blocks/PitchBlocks.js:250 +#: js/blocks/PitchBlocks.js:432 +#: js/blocks/PitchBlocks.js:1667 +#: js/turtleactions/DictActions.js:89 +#: js/widgets/temperament.js:610 +#: js/widgets/temperament.js:614 +#: js/widgets/temperament.js:855 +#.TRANS: convert current note to piano key (1-88) +#.TRANS: a mapping of pitch to the 88 piano keys +msgid "pitch number" msgstr "" -#: js/ToneBlocks.js:438 -#: js/timbre.js:2100 -#.TRANS: distortion is an alteration in the sound -msgid "distortion" +#: js/blocks/PitchBlocks.js:256 +msgid "The Pitch number block is the value of the pitch of the note currently being played." msgstr "" -#: js/ToneBlocks.js:487 -msgid "The Tremolo block adds a wavering effect." +#: js/blocks/PitchBlocks.js:329 +#: js/blocks/PitchBlocks.js:433 +#.TRANS: the current pitch expressed in Hertz +msgid "pitch in hertz" msgstr "" -#: js/ToneBlocks.js:495 -#: js/timbre.js:2092 -#.TRANS: a wavering effect in a musical tone -msgid "tremolo" +#: js/blocks/PitchBlocks.js:334 +msgid "The Pitch in Hertz block is the value in Hertz of the pitch of the note currently being played." msgstr "" -#: js/ToneBlocks.js:500 -#: js/ToneBlocks.js:569 -#: js/ToneBlocks.js:630 -#: js/ToneBlocks.js:689 -#: js/timbre.js:2134 -#: js/timbre.js:2222 -#: js/timbre.js:2317 -#: js/timbre.js:2419 -#.TRANS: rate at which tremolo wavers -msgid "rate" +#: js/blocks/PitchBlocks.js:367 +#: js/turtleactions/DictActions.js:87 +msgid "current pitch" msgstr "" -#: js/ToneBlocks.js:502 -#: js/ToneBlocks.js:630 -#: js/timbre.js:2137 -#: js/timbre.js:2328 -#.TRANS: amplitude of tremolo waver -msgid "depth" +#: js/blocks/PitchBlocks.js:373 +msgid "The Current Pitch block is used with the Pitch Converter block. In the example above, current pitch, sol 4, is displayed as 392 hertz." msgstr "" -#: js/ToneBlocks.js:559 -msgid "The Phaser block adds a sweeping sound." +#: js/blocks/PitchBlocks.js:410 +msgid "This block converts the pitch value of the last note played into different formats such as hertz, letter name, pitch number, et al." msgstr "" -#: js/ToneBlocks.js:566 -#: js/timbre.js:2098 -#.TRANS: alter the phase of the sound -msgid "phaser" +#: js/blocks/PitchBlocks.js:434 +msgid "alphabet" msgstr "" -#: js/ToneBlocks.js:569 -#: js/timbre.js:2422 -msgid "octaves" +#: js/blocks/PitchBlocks.js:436 +#.TRANS: Translate as "alphabet class" +msgid "letter class" msgstr "" -#: js/ToneBlocks.js:569 -#: js/timbre.js:2425 -msgid "base frequency" +#: js/blocks/PitchBlocks.js:437 +msgid "solfege class" msgstr "" -#: js/ToneBlocks.js:619 -msgid "The Chorus block adds a chorus effect." +#: js/blocks/PitchBlocks.js:438 +msgid "staff y" msgstr "" -#: js/ToneBlocks.js:627 -#: js/timbre.js:2096 -#.TRANS: musical effect to simulate a choral sound -msgid "chorus" +#: js/blocks/PitchBlocks.js:439 +msgid "solfege syllable" msgstr "" -#: js/ToneBlocks.js:630 -msgid "delay" +#: js/blocks/PitchBlocks.js:440 +msgid "pitch class" msgstr "" -#: js/ToneBlocks.js:678 -msgid "The Vibrato block adds a rapid, slight variation in pitch." +#: js/blocks/PitchBlocks.js:441 +msgid "scalar class" msgstr "" -#: js/ToneBlocks.js:686 -#: js/timbre.js:2094 -#.TRANS: a rapid, slight variation in pitch -msgid "vibrato" +#: js/blocks/PitchBlocks.js:443 +msgid "nth degree" msgstr "" -#: js/ToneBlocks.js:689 -#: js/timbre.js:2221 -msgid "intensity" +#: js/blocks/PitchBlocks.js:444 +msgid "pitch to shade" msgstr "" -#: js/ToneBlocks.js:733 -#.TRANS: select synthesizer -msgid "set synth" +#: js/blocks/PitchBlocks.js:445 +msgid "pitch to color" msgstr "" -#: js/ToneBlocks.js:804 -msgid "synth name" +#: js/blocks/PitchBlocks.js:629 +#: js/widgets/musickeyboard.js:735 +#.TRANS: MIDI is a technical standard for electronic music +msgid "MIDI" msgstr "" -#: js/ToneBlocks.js:842 -msgid "set default instrument" +#: js/blocks/PitchBlocks.js:642 +#.TRANS: set an offset associated with the numeric piano keyboard mapping +msgid "set pitch number offset" msgstr "" -#: js/ToneBlocks.js:895 -#: js/ToneBlocks.js:943 -#.TRANS: set the characteristics of a custom instrument -msgid "set instrument" +#: js/blocks/PitchBlocks.js:645 +msgid "The Set pitch number offset block is used to set the offset for mapping pitch numbers to pitch and octave." msgstr "" -#: js/ToneBlocks.js:898 -#: js/ToneBlocks.js:926 -#: js/ToneBlocks.js:932 -msgid "The Set instrument block selects a voice for the synthesizer," +#: js/blocks/PitchBlocks.js:679 +#.TRANS: convert piano key number (1-88) to pitch +msgid "number to pitch" msgstr "" -#: js/ToneBlocks.js:900 -#: js/ToneBlocks.js:934 -msgid "eg guitar piano violin or cello." +#: js/blocks/PitchBlocks.js:682 +msgid "The Number to pitch block will convert a pitch number to a pich name." msgstr "" -#: js/ToneBlocks.js:1015 -msgid "Import a sound file to use as an instrument and set its pitch center." +#: js/blocks/PitchBlocks.js:715 +#.TRANS: convert piano key number (1-88) to octave +msgid "number to octave" msgstr "" -#: js/ToneBlocks.js:1110 -msgid "Upload a sound file to connect with the sample block." +#: js/blocks/PitchBlocks.js:717 +msgid "The Number to octave block will convert a pitch number to an octave." msgstr "" -#: js/MeterBlocks.js:34 -#.TRANS: musical meter (time signature), e.g., 4:4 -msgid "current meter" +#: js/blocks/PitchBlocks.js:726 +msgid "y to pitch" msgstr "" -#: js/MeterBlocks.js:85 -#.TRANS: number of beats per minute -msgid "beat factor" +#: js/blocks/PitchBlocks.js:729 +msgid "Y to pitch block will convert a staff y position to corresponding pitch notation." msgstr "" -#: js/MeterBlocks.js:161 -msgid "The Beats per minute block returns the current beats per minute." +#: js/blocks/PitchBlocks.js:841 +msgid "accidental selector" msgstr "" -#: js/MeterBlocks.js:169 -#: js/status.js:152 -#.TRANS: number of beats played per minute -msgid "beats per minute2" +#: js/blocks/PitchBlocks.js:844 +msgid "The Accidental selector block is used to choose between double-sharp, sharp, natural, flat, and double-flat." msgstr "" -#: js/MeterBlocks.js:169 -#: js/MeterBlocks.js:1056 -#: js/MeterBlocks.js:1133 -#: js/MeterBlocks.js:1211 -#.TRANS: sets tempo by defining a beat and beats per minute -msgid "beats per minute" +#: js/blocks/PitchBlocks.js:858 +msgid "Pitch can be specified in terms of ni dha pa ma ga re sa." msgstr "" -#: js/MeterBlocks.js:233 -#.TRANS: count of current musical measure in meter -msgid "measure count" +#: js/blocks/PitchBlocks.js:872 +msgid "Pitch can be specified in terms of C D E F G A B." msgstr "" -#: js/MeterBlocks.js:241 -msgid "The Measure count block returns the current measure." +#: js/blocks/PitchBlocks.js:884 +msgid "solfege" msgstr "" -#: js/MeterBlocks.js:290 -#.TRANS: count of current beat in the meter -msgid "beat count" +#: js/blocks/PitchBlocks.js:887 +msgid "Pitch can be specified in terms of do re mi fa sol la ti." msgstr "" -#: js/MeterBlocks.js:300 -#: js/MeterBlocks.js:311 -#: js/MeterBlocks.js:565 -#: js/MeterBlocks.js:576 -msgid "The Beat count block is the number of the current beat," +#: js/blocks/PitchBlocks.js:922 +msgid "The Invert block rotates any contained notes around a target note." msgstr "" -#: js/MeterBlocks.js:313 -#: js/MeterBlocks.js:578 -msgid "eg 1, 2, 3, or 4." +#: js/blocks/PitchBlocks.js:929 +#.TRANS: pitch inversion rotates a pitch around another pitch +msgid "invert" msgstr "" -#: js/MeterBlocks.js:368 -#.TRANS: count the number of notes -msgid "sum note values" +#: js/blocks/PitchBlocks.js:968 +#.TRANS: pitch inversion rotates a pitch around another pitch (odd number) +msgid "invert (odd)" msgstr "" -#: js/MeterBlocks.js:376 -#: js/MeterBlocks.js:440 -msgid "The Note counter block can be used to count the number of contained notes." +#: js/blocks/PitchBlocks.js:1001 +#.TRANS: pitch inversion rotates a pitch around another pitch (even number) +msgid "invert (even)" msgstr "" -#: js/MeterBlocks.js:432 -#.TRANS: count the number of notes -msgid "note counter" +#: js/blocks/PitchBlocks.js:1022 +#.TRANS: register is the octave of the current pitch +msgid "register" msgstr "" -#: js/MeterBlocks.js:496 -#.TRANS: number of whole notes that have been played -msgid "whole notes played" +#: js/blocks/PitchBlocks.js:1026 +msgid "The Register block provides an easy way to modify the register (octave) of the notes that follow it." msgstr "" -#: js/MeterBlocks.js:505 -msgid "The Whole notes played block returns the total number of whole notes played." +#: js/blocks/PitchBlocks.js:1047 +#.TRANS: cents are units used to specify the ratio between pitches. There are 100 cents between successive notes. +msgid "50 cents" msgstr "" -#: js/MeterBlocks.js:555 -#: js/DictActions.js:83 -#.TRANS: number of notes that have been played -msgid "notes played" +#: js/blocks/PitchBlocks.js:1102 +msgid "The Semi-tone transposition block will shift the pitches contained inside Note blocks up (or down) by half steps." msgstr "" -#: js/MeterBlocks.js:653 -msgid "The No clock block decouples the notes from the master clock." +#: js/blocks/PitchBlocks.js:1104 +msgid "In the example shown above, sol is shifted up to sol#." msgstr "" -#: js/MeterBlocks.js:661 -#.TRANS: don't lock notes to master clock -msgid "no clock" +#: js/blocks/PitchBlocks.js:1110 +#.TRANS: adjust the amount of shift (up or down) of a pitch +msgid "semi-tone transpose" msgstr "" -#: js/MeterBlocks.js:700 -msgid "on weak beat do" +#: js/blocks/PitchBlocks.js:1143 +msgid "The Transpose by Ratio block will shift the pitches contained inside Note blocks up (or down) by a ratio" msgstr "" -#: js/MeterBlocks.js:705 -msgid "The On-weak-beat block lets you specify actions to take on weak (off) beats." +#: js/blocks/PitchBlocks.js:1149 +#.TRANS: adjust the amount of shift (up or down) of a pitch +msgid "transpose by ratio" msgstr "" -#: js/MeterBlocks.js:750 -msgid "on strong beat" +#: js/blocks/PitchBlocks.js:1232 +#.TRANS: down sixth means the note is five scale degrees below current note +msgid "down sixth" msgstr "" -#: js/MeterBlocks.js:758 -msgid "The On-strong-beat block lets you specify actions to take on specified beats." +#: js/blocks/PitchBlocks.js:1251 +#.TRANS: down third means the note is two scale degrees below current note +msgid "down third" msgstr "" -#: js/MeterBlocks.js:769 -msgid "beat" +#: js/blocks/PitchBlocks.js:1270 +#.TRANS: seventh means the note is the six scale degrees above current note +msgid "seventh" msgstr "" -#: js/MeterBlocks.js:813 -msgid "on every beat do" +#: js/blocks/PitchBlocks.js:1289 +#.TRANS: sixth means the note is the five scale degrees above current note +msgid "sixth" msgstr "" -#: js/MeterBlocks.js:821 -msgid "The On-every-beat block lets you specify actions to take on every beat." +#: js/blocks/PitchBlocks.js:1308 +#.TRANS: fifth means the note is the four scale degrees above current note +msgid "fifth" msgstr "" -#: js/MeterBlocks.js:874 -msgid "on every note do" +#: js/blocks/PitchBlocks.js:1328 +#.TRANS: fourth means the note is three scale degrees above current note +msgid "fourth" msgstr "" -#: js/MeterBlocks.js:882 -msgid "The On-every-note block lets you specify actions to take on every note." +#: js/blocks/PitchBlocks.js:1347 +#.TRANS: third means the note is two scale degrees above current note +msgid "third" msgstr "" -#: js/MeterBlocks.js:928 -#: js/MeterBlocks.js:999 -#.TRANS: sets tempo by defining a beat and beats per minute -msgid "master beats per minute" +#: js/blocks/PitchBlocks.js:1366 +#.TRANS: second means the note is one scale degree above current note +msgid "second" msgstr "" -#: js/MeterBlocks.js:952 -#: js/MeterBlocks.js:1078 -#: js/MeterBlocks.js:1135 -msgid "bpm" +#: js/blocks/PitchBlocks.js:1407 +msgid "The Scalar transposition block will shift the pitches contained inside Note blocks up (or down) the scale." msgstr "" -#: js/MeterBlocks.js:952 -#: js/MeterBlocks.js:1078 -#: js/MeterBlocks.js:1135 -msgid "beat value" +#: js/blocks/PitchBlocks.js:1409 +msgid "In the example shown above, sol is shifted up to la." msgstr "" -#: js/MeterBlocks.js:1024 -#: js/MeterBlocks.js:1167 -#: js/MeterBlocks.js:1241 -msgid "Beats per minute must be > 30." +#: js/blocks/PitchBlocks.js:1416 +#.TRANS: adjust the amount of shift (up or down) of a pitch by musical scale (scalar) steps +msgid "scalar transpose" msgstr "" -#: js/MeterBlocks.js:1027 -#: js/MeterBlocks.js:1170 -#: js/MeterBlocks.js:1244 -msgid "Maximum beats per minute is 1000." +#: js/blocks/PitchBlocks.js:1451 +msgid "The Accidental block is used to create sharps and flats" msgstr "" -#: js/MeterBlocks.js:1068 -msgid "The Beats per minute block sets the number of 1/4 notes per minute." +#: js/blocks/PitchBlocks.js:1458 +#.TRANS: An accidental is a modification to a pitch, e.g., sharp or flat. +msgid "accidental override" msgstr "" -#: js/MeterBlocks.js:1279 -#.TRANS: anacrusis -msgid "pickup" +#: js/blocks/PitchBlocks.js:1581 +msgid "The Hertz block (in combination with a Number block) will play a sound at the specified frequency." msgstr "" -#: js/MeterBlocks.js:1367 -msgid "number of beats" +#: js/blocks/PitchBlocks.js:1671 +msgid "The Pitch Number block will play a pitch associated by its number, e.g. 0 for C and 7 for G." msgstr "" -#: js/DictBlocks.js:77 -msgid "show dictionary" +#: js/blocks/PitchBlocks.js:1703 +#: js/blocks/PitchBlocks.js:1745 +#.TRANS: a numeric mapping of the notes in an octave based on the musical mode +#.TRANS: a numeric mapping of the notes in an octave based on the musical mode +msgid "nth modal pitch" msgstr "" -#: js/DictBlocks.js:129 -msgid "The Dictionary block returns a dictionary." +#: js/blocks/PitchBlocks.js:1706 +msgid "n^th Modal Pitch takes the pattern of pitches in semitones for a mode and makes each point a degree of the mode," msgstr "" -#: js/DictBlocks.js:197 -#: js/DictBlocks.js:339 -msgid "The Get-dict block returns a value in the dictionary for a specified key." +#: js/blocks/PitchBlocks.js:1708 +msgid "starting from 1 and regardless of tonal framework (i.e. not always 8 notes in the octave)" msgstr "" -#: js/DictBlocks.js:212 -#: js/DictBlocks.js:354 -#.TRANS: retrieve a value from the dictionary with a given key -msgid "get value" +#: js/blocks/PitchBlocks.js:1749 +msgid "N^th Modal Pitch takes a number as an input as the n^th degree for the given mode. 0 is the first position, 1 is the second, -1 is the note before the first etc." msgstr "" -#: js/DictBlocks.js:215 -#: js/DictBlocks.js:216 -#: js/DictBlocks.js:289 -#: js/DictBlocks.js:290 -#: js/DictBlocks.js:357 -#: js/DictBlocks.js:430 -#: js/DictBlocks.js:431 -msgid "key2" +#: js/blocks/PitchBlocks.js:1751 +msgid "The pitches change according to the mode specified without any need for respellings." msgstr "" -#: js/DictBlocks.js:271 -#: js/DictBlocks.js:411 -msgid "The Set-dict block sets a value in the dictionary for a specified key." +#: js/blocks/PitchBlocks.js:1790 +msgid "Scale Degree is a common convention in music. Scale Degree offers seven possible positions in the scale (1-7) and can be modified via accidentals." msgstr "" -#: js/DictBlocks.js:286 -#: js/DictBlocks.js:427 -#.TRANS: set a value in the dictionary for a given key -msgid "set value" +#: js/blocks/PitchBlocks.js:1792 +msgid "Scale Degree 1 is always the first pitch in a given scale, regardless of octave." msgstr "" -#: js/ExtrasBlocks.js:33 -msgid "fraction" +#: js/blocks/PitchBlocks.js:1814 +#.TRANS: step some number of notes in current musical scale +msgid "scalar step" msgstr "" -#: js/ExtrasBlocks.js:36 -msgid "Convert a float to a fraction" +#: js/blocks/PitchBlocks.js:1819 +msgid "The Scalar Step block (in combination with a Number block) will play the next pitch in a scale," msgstr "" -#: js/ExtrasBlocks.js:93 -msgid "save as ABC" +#: js/blocks/PitchBlocks.js:1821 +msgid "eg if the last note played was sol, Scalar Step 1 will play la." msgstr "" -#: js/ExtrasBlocks.js:96 -#: js/ExtrasBlocks.js:132 -#: js/ExtrasBlocks.js:168 -msgid "title" +#: js/blocks/PitchBlocks.js:1857 +msgid "The Pitch block specifies the pitch name and octave of a note that together determine the frequency of the note." msgstr "" -#: js/ExtrasBlocks.js:129 -msgid "save as Lilypond" +#: js/blocks/ProgramBlocks.js:33 +msgid "The Load-heap-from-app block loads the heap from a web page." msgstr "" -#: js/ExtrasBlocks.js:165 -msgid "save as SVG" +#: js/blocks/ProgramBlocks.js:44 +#.TRANS: load the heap contents from a URL +msgid "load heap from App" msgstr "" -#: js/ExtrasBlocks.js:216 -msgid "no background" +#: js/blocks/ProgramBlocks.js:95 +msgid "Error parsing JSON data:" msgstr "" -#: js/ExtrasBlocks.js:219 -msgid "The No background block eliminates the background from the saved SVG output." +#: js/blocks/ProgramBlocks.js:100 +msgid "404: Page not found" msgstr "" -#: js/ExtrasBlocks.js:247 -msgid "show blocks" +#: js/blocks/ProgramBlocks.js:133 +msgid "The Save-heap-to-app block saves the heap to a web page." msgstr "" -#: js/ExtrasBlocks.js:249 -msgid "The Show blocks block shows the blocks." +#: js/blocks/ProgramBlocks.js:144 +#.TRANS: save the heap contents to a URL +msgid "save heap to App" msgstr "" -#: js/ExtrasBlocks.js:274 -msgid "hide blocks" +#: js/blocks/ProgramBlocks.js:189 +msgid "Cannot find a valid heap for" msgstr "" -#: js/ExtrasBlocks.js:276 -msgid "The Hide blocks block hides the blocks." +#: js/blocks/ProgramBlocks.js:206 +msgid "The Load-heap block loads the heap from a file." msgstr "" -#: js/ExtrasBlocks.js:305 -#: js/ExtrasBlocks.js:335 -msgid "The Space block is used to add space between blocks." +#: js/blocks/ProgramBlocks.js:217 +#.TRANS: load the heap from a file +msgid "load heap" msgstr "" -#: js/ExtrasBlocks.js:373 -msgid "wait" +#: js/blocks/ProgramBlocks.js:270 +msgid "The file you selected does not contain a valid heap." msgstr "" -#: js/ExtrasBlocks.js:376 -msgid "The Wait block pauses the program for a specified number of seconds." +#: js/blocks/ProgramBlocks.js:275 +msgid "The loadHeap block needs a loadFile block." msgstr "" -#: js/ExtrasBlocks.js:430 -#: plugins/facebook.rtp:30 -msgid "comment" +#: js/blocks/ProgramBlocks.js:291 +msgid "The Set-heap block loads the heap." msgstr "" -#: js/ExtrasBlocks.js:466 -msgid "print" +#: js/blocks/ProgramBlocks.js:340 +msgid "The block you selected does not contain a valid heap." msgstr "" -#: js/ExtrasBlocks.js:473 -msgid "The Print block displays text at the top of the screen." +#: js/blocks/ProgramBlocks.js:343 +msgid "The Set heap block needs a heap." msgstr "" -#: js/ExtrasBlocks.js:579 -msgid "display grid" +#: js/blocks/ProgramBlocks.js:360 +msgid "The Load-dictionary block loads a dictionary from a file." msgstr "" -#: js/ExtrasBlocks.js:584 -msgid "The Display Grid Block changes the grid type" +#: js/blocks/ProgramBlocks.js:372 +#.TRANS: load a dictionary from a file +msgid "load dictionary" msgstr "" -#: js/ExtrasBlocks.js:686 -#: js/ExtrasBlocks.js:705 -#: js/ExtrasBlocks.js:728 -#: js/ExtrasBlocks.js:751 -#: js/ExtrasBlocks.js:769 -#: js/ExtrasBlocks.js:788 -#: js/ExtrasBlocks.js:807 -#: js/ExtrasBlocks.js:826 -msgid "unknown" +#: js/blocks/ProgramBlocks.js:390 +#: js/blocks/ProgramBlocks.js:658 +#: js/blocks/ToneBlocks.js:1025 +msgid "file" msgstr "" -#: js/SensorsBlocks.js:36 -msgid "The Input block prompts for keyboard input." +#: js/blocks/ProgramBlocks.js:444 +msgid "The file you selected does not contain a valid dictionary." msgstr "" -#: js/SensorsBlocks.js:46 -msgid "input" +#: js/blocks/ProgramBlocks.js:449 +msgid "The load dictionary block needs a load file block." msgstr "" -#: js/SensorsBlocks.js:64 -msgid "Input a value" +#: js/blocks/ProgramBlocks.js:466 +msgid "The Set-dictionary block loads a dictionary." msgstr "" -#: js/SensorsBlocks.js:126 -msgid "input value" +#: js/blocks/ProgramBlocks.js:477 +#.TRANS: load a dictionary from a JSON +msgid "set dictionary" msgstr "" -#: js/SensorsBlocks.js:131 -msgid "The Input-value block stores the input." +#: js/blocks/ProgramBlocks.js:546 +msgid "The block you selected does not contain a valid dictionary." msgstr "" -#: js/SensorsBlocks.js:238 -msgid "loudness" +#: js/blocks/ProgramBlocks.js:550 +msgid "The set dictionary block needs a dictionary." msgstr "" -#: js/SensorsBlocks.js:245 -msgid "The Loudness block returns the volume detected by the microphone." +#: js/blocks/ProgramBlocks.js:567 +msgid "The Save-heap block saves the heap to a file." msgstr "" -#: js/SensorsBlocks.js:300 -msgid "click" +#: js/blocks/ProgramBlocks.js:578 +#.TRANS: save the heap to a file +msgid "save heap" msgstr "" -#: js/SensorsBlocks.js:306 -msgid "The Click block triggers an event if a mouse has been clicked." +#: js/blocks/ProgramBlocks.js:629 +msgid "The Save-dictionary block saves a dictionary to a file." msgstr "" -#: js/SensorsBlocks.js:313 -msgid "The Click block triggers an event if a turtle has been clicked." +#: js/blocks/ProgramBlocks.js:640 +#.TRANS: save a dictionary to a file +msgid "save dictionary" msgstr "" -#: js/SensorsBlocks.js:342 -msgid "cursor over" +#: js/blocks/ProgramBlocks.js:720 +msgid "The Open palette block opens a palette." msgstr "" -#: js/SensorsBlocks.js:387 -msgid "cursor out" +#: js/blocks/ProgramBlocks.js:727 +msgid "open palette" msgstr "" -#: js/SensorsBlocks.js:433 -msgid "cursor button down" +#: js/blocks/ProgramBlocks.js:785 +msgid "The Delete block block removes a block." msgstr "" -#: js/SensorsBlocks.js:477 -msgid "cursor button up" +#: js/blocks/ProgramBlocks.js:797 +#.TRANS: Move this block to the trash. +msgid "delete block" msgstr "" -#: js/SensorsBlocks.js:638 -msgid "The Get red block returns the red component of the pixel under the mouse." +#: js/blocks/ProgramBlocks.js:861 +msgid "The Move block block moves a block." msgstr "" -#: js/SensorsBlocks.js:644 -msgid "The Get red block returns the red component of the pixel under the turtle." +#: js/blocks/ProgramBlocks.js:869 +#.TRANS: Move the position of a block on the screen. +msgid "move block" msgstr "" -#: js/SensorsBlocks.js:685 -#: plugins/rodi.rtp:216 -msgid "pixel color" +#: js/blocks/ProgramBlocks.js:881 +#: js/blocks/ProgramBlocks.js:1048 +msgid "block number" msgstr "" -#: js/SensorsBlocks.js:690 -msgid "The Get pixel block returns the color of the pixel under the mouse." +#: js/blocks/ProgramBlocks.js:935 +#.TRANS: Run program beginning at this block. +msgid "run block" msgstr "" -#: js/SensorsBlocks.js:696 -msgid "The Get pixel block returns the color of the pixel under the turtle." +#: js/blocks/ProgramBlocks.js:1025 +msgid "The Dock block block connections two blocks." msgstr "" -#: js/SensorsBlocks.js:758 -msgid "time" +#: js/blocks/ProgramBlocks.js:1036 +#.TRANS: We can connect a block to another block. +msgid "connect blocks" msgstr "" -#: js/SensorsBlocks.js:804 -msgid "cursor y" +#: js/blocks/ProgramBlocks.js:1048 +msgid "target block" msgstr "" -#: js/SensorsBlocks.js:809 -msgid "The Cursor Y block returns the vertical position of the mouse." +#: js/blocks/ProgramBlocks.js:1048 +msgid "connection number" msgstr "" -#: js/SensorsBlocks.js:845 -msgid "cursor x" +#: js/blocks/ProgramBlocks.js:1140 +msgid "The Make block block creates a new block." msgstr "" -#: js/SensorsBlocks.js:850 -msgid "The Cursor X block returns the horizontal position of the mouse." +#: js/blocks/ProgramBlocks.js:1152 +#.TRANS: Create a new block +msgid "make block" msgstr "" -#: js/SensorsBlocks.js:886 -msgid "mouse button" +#: js/blocks/ProgramBlocks.js:1285 +msgid "Cannot find block" msgstr "" -#: js/SensorsBlocks.js:888 -msgid "The Mouse-button block returns True if the mouse button is pressed." +#: js/blocks/ProgramBlocks.js:1304 +#: js/blocks/ProgramBlocks.js:1313 +msgid "Warning: block argument type mismatch" msgstr "" -#: js/SensorsBlocks.js:934 -msgid "to ASCII" +#: js/blocks/ProgramBlocks.js:1347 +msgid "The Open project block is used to open a project from a web page." msgstr "" -#: js/SensorsBlocks.js:938 -msgid "The To ASCII block converts numbers to letters." +#: js/blocks/ProgramBlocks.js:1357 +msgid "open project" msgstr "" -#: js/SensorsBlocks.js:1005 -msgid "The Keyboard block returns computer keyboard input." +#: js/blocks/ProgramBlocks.js:1410 +msgid "Please enter a valid URL." msgstr "" -#: js/IntervalsActions.js:216 -msgid "Adding missing pitch number 0." +#: js/blocks/ToneBlocks.js:34 +msgid "oscillator" msgstr "" -#: js/IntervalsActions.js:224 -msgid "Ignoring pitch numbers less than zero or greater than eleven." +#: js/blocks/ToneBlocks.js:42 +#: js/blocks/WidgetBlocks.js:179 +#: js/widgets/timbre.js:1558 +#: js/widgets/timbre.js:1808 +#.TRANS: there are different types (sine, triangle, square...) of oscillators. +#.TRANS: type of filter, e.g., lowpass, highpass, etc. +msgid "type" msgstr "" -#: js/IntervalsActions.js:230 -msgid "Ignoring duplicate pitch numbers." +#: js/blocks/ToneBlocks.js:44 +#: js/widgets/timbre.js:1562 +#.TRANS: Partials refers to the number of sine waves combined into the sound. +msgid "partials" msgstr "" -#: js/PitchActions.js:88 -msgid "The Scalar Step Block must be used inside of a Note Block." +#: js/blocks/ToneBlocks.js:76 +msgid "You are adding multiple oscillator blocks." msgstr "" -#: js/PitchActions.js:107 -msgid "The Scalar Step Block must be preceded by a Pitch Block." +#: js/blocks/ToneBlocks.js:144 +#: js/widgets/timbre.js:1225 +#.TRANS: a duo synthesizer combines a synth with a sequencer +msgid "duo synth" msgstr "" -#: js/DrumActions.js:231 -msgid "Noise Block: Did you mean to use a Note block?" +#: js/blocks/ToneBlocks.js:149 +msgid "The Duo synth block is a duo-frequency modulator used to define a timbre." msgstr "" -#: js/MeterActions.js:101 -#: js/MeterActions.js:139 -msgid "beats per minute must be greater than" +#: js/blocks/ToneBlocks.js:157 +#: js/widgets/timbre.js:1476 +msgid "vibrato rate" msgstr "" -#: js/MeterActions.js:111 -#: js/MeterActions.js:149 -msgid "maximum" +#: js/blocks/ToneBlocks.js:157 +msgid "vibrato intensity" msgstr "" -#: js/MeterActions.js:117 -#: js/MeterActions.js:155 -msgid "beats per minute is" +#: js/blocks/ToneBlocks.js:185 +#: js/widgets/timbre.js:1221 +#.TRANS: AM (amplitude modulation) synthesizer +msgid "AM synth" msgstr "" -#: js/ToneActions.js:134 -msgid "Vibrato intensity must be between 1 and 100." +#: js/blocks/ToneBlocks.js:189 +msgid "The AM synth block is an amplitude modulator used to define a timbre." msgstr "" -#: js/ToneActions.js:139 -msgid "Vibrato rate must be greater than 0." +#: js/blocks/ToneBlocks.js:224 +#: js/widgets/timbre.js:1223 +#.TRANS: FM (frequency modulation) synthesizer +msgid "FM synth" msgstr "" -#: js/ToneActions.js:192 -#: js/ToneActions.js:265 -#.TRANS: Depth is the intesity of the tremolo or chorus effect. -msgid "Depth is out of range." +#: js/blocks/ToneBlocks.js:228 +msgid "The FM synth block is a frequency modulator used to define a timbre." msgstr "" -#: js/ToneActions.js:301 -msgid "Distortion must be from 0 to 100." +#: js/blocks/ToneBlocks.js:262 +msgid "partial" msgstr "" -#: js/ToneActions.js:332 -#.TRANS: partials components in a harmonic series -msgid "Partial must be greater than or equal to 0." +#: js/blocks/ToneBlocks.js:265 +msgid "The Partial block is used to specify a weight for a specific partial harmonic." msgstr "" -#: js/ToneActions.js:378 -#: js/ToneActions.js:417 -#: js/ToneActions.js:456 -#: js/timbre.js:782 -msgid "Unable to use synth due to existing oscillator" +#: js/blocks/ToneBlocks.js:284 +#.TRANS: partials are weighted components in a harmonic series +msgid "Partial weight must be between 0 and 1." msgstr "" -#: js/ToneActions.js:388 -#: js/ToneActions.js:427 -msgid "The input cannot be negative." +#: js/blocks/ToneBlocks.js:297 +#.TRANS: partials are weighted components in a harmonic series +msgid "Partial block should be used inside of a Weighted-partials block." msgstr "" -#: js/DictActions.js:75 -#: js/DictActions.js:153 -#: js/DictActions.js:188 -msgid "font" +#: js/blocks/ToneBlocks.js:325 +#.TRANS: partials are weighted components in a harmonic series +msgid "weighted partials" msgstr "" -#: js/musicutils.js:363 -#: js/musicutils.js:471 -#: js/pitchdrummatrix.js:151 -#: js/musickeyboard.js:2563 -msgid "rest" +#: js/blocks/ToneBlocks.js:383 +msgid "The Harmonic block will add harmonics to the contained notes." msgstr "" -#: js/musicutils.js:565 -#.TRANS: ordinal number. Please keep exactly one space between each number. -msgid "1st 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th" +#: js/blocks/ToneBlocks.js:390 +#.TRANS: A harmonic is an overtone. +msgid "harmonic" msgstr "" -#: js/musicutils.js:629 -#: js/musicutils.js:812 -#: js/musicutils.js:911 -#.TRANS: augmented is a music term related to intervals -msgid "augmented" +#: js/blocks/ToneBlocks.js:431 +msgid "The Distortion block adds distortion to the pitch." msgstr "" -#: js/musicutils.js:631 -#: js/musicutils.js:813 -#: js/musicutils.js:910 -#.TRANS: diminished is a music term related to intervals and mode -msgid "diminished" +#: js/blocks/ToneBlocks.js:438 +#: js/widgets/timbre.js:2100 +#.TRANS: distortion is an alteration in the sound +msgid "distortion" msgstr "" -#: js/musicutils.js:639 -#.TRANS: twelve semi-tone scale for music -msgid "chromatic" +#: js/blocks/ToneBlocks.js:487 +msgid "The Tremolo block adds a wavering effect." msgstr "" -#: js/musicutils.js:640 -msgid "algerian" +#: js/blocks/ToneBlocks.js:495 +#: js/widgets/timbre.js:2092 +#.TRANS: a wavering effect in a musical tone +msgid "tremolo" msgstr "" -#: js/musicutils.js:641 -msgid "spanish" +#: js/blocks/ToneBlocks.js:500 +#: js/blocks/ToneBlocks.js:569 +#: js/blocks/ToneBlocks.js:630 +#: js/blocks/ToneBlocks.js:689 +#: js/widgets/timbre.js:2134 +#: js/widgets/timbre.js:2222 +#: js/widgets/timbre.js:2317 +#: js/widgets/timbre.js:2419 +#.TRANS: rate at which tremolo wavers +msgid "rate" msgstr "" -#: js/musicutils.js:643 -#.TRANS: modal scale in music -msgid "octatonic" +#: js/blocks/ToneBlocks.js:502 +#: js/blocks/ToneBlocks.js:630 +#: js/widgets/timbre.js:2137 +#: js/widgets/timbre.js:2328 +#.TRANS: amplitude of tremolo waver +msgid "depth" msgstr "" -#: js/musicutils.js:645 -#.TRANS: harmonic major scale in music -msgid "harmonic major" +#: js/blocks/ToneBlocks.js:559 +msgid "The Phaser block adds a sweeping sound." msgstr "" -#: js/musicutils.js:647 -#.TRANS: natural minor scales in music -msgid "natural minor" +#: js/blocks/ToneBlocks.js:566 +#: js/widgets/timbre.js:2098 +#.TRANS: alter the phase of the sound +msgid "phaser" msgstr "" -#: js/musicutils.js:649 -#.TRANS: harmonic minor scale in music -msgid "harmonic minor" +#: js/blocks/ToneBlocks.js:569 +#: js/turtleactions/IntervalsActions.js:114 +#: js/widgets/timbre.js:2422 +msgid "octaves" msgstr "" -#: js/musicutils.js:651 -#.TRANS: melodic minor scale in music -msgid "melodic minor" +#: js/blocks/ToneBlocks.js:569 +#: js/widgets/timbre.js:2425 +msgid "base frequency" msgstr "" -#: js/musicutils.js:655 -#.TRANS: modal scale for music -msgid "dorian" +#: js/blocks/ToneBlocks.js:619 +msgid "The Chorus block adds a chorus effect." msgstr "" -#: js/musicutils.js:657 -#.TRANS: modal scale for music -msgid "phrygian" +#: js/blocks/ToneBlocks.js:627 +#: js/widgets/timbre.js:2096 +#.TRANS: musical effect to simulate a choral sound +msgid "chorus" msgstr "" -#: js/musicutils.js:659 -#.TRANS: modal scale for music -msgid "lydian" +#: js/blocks/ToneBlocks.js:630 +msgid "delay" msgstr "" -#: js/musicutils.js:661 -#.TRANS: modal scale for music -msgid "mixolydian" +#: js/blocks/ToneBlocks.js:678 +msgid "The Vibrato block adds a rapid, slight variation in pitch." msgstr "" -#: js/musicutils.js:665 -#.TRANS: modal scale for music -msgid "locrian" +#: js/blocks/ToneBlocks.js:686 +#: js/widgets/timbre.js:2094 +#.TRANS: a rapid, slight variation in pitch +msgid "vibrato" msgstr "" -#: js/musicutils.js:667 -#.TRANS: minor jazz scale for music -msgid "jazz minor" +#: js/blocks/ToneBlocks.js:689 +#: js/widgets/timbre.js:2221 +msgid "intensity" msgstr "" -#: js/musicutils.js:669 -#.TRANS: bebop scale for music -msgid "bebop" +#: js/blocks/ToneBlocks.js:733 +#.TRANS: select synthesizer +msgid "set synth" msgstr "" -#: js/musicutils.js:670 -msgid "arabic" +#: js/blocks/ToneBlocks.js:804 +msgid "synth name" msgstr "" -#: js/musicutils.js:671 -msgid "byzantine" +#: js/blocks/ToneBlocks.js:842 +msgid "set default instrument" msgstr "" -#: js/musicutils.js:673 -#.TRANS: musical scale for music by Verdi -msgid "enigmatic" +#: js/blocks/ToneBlocks.js:895 +#: js/blocks/ToneBlocks.js:943 +#.TRANS: set the characteristics of a custom instrument +msgid "set instrument" msgstr "" -#: js/musicutils.js:674 -msgid "ethiopian" +#: js/blocks/ToneBlocks.js:898 +#: js/blocks/ToneBlocks.js:926 +#: js/blocks/ToneBlocks.js:932 +msgid "The Set instrument block selects a voice for the synthesizer," msgstr "" -#: js/musicutils.js:676 -#.TRANS: Ethiopic scale for music -msgid "geez" +#: js/blocks/ToneBlocks.js:900 +#: js/blocks/ToneBlocks.js:934 +msgid "eg guitar piano violin or cello." msgstr "" -#: js/musicutils.js:677 -msgid "hindu" +#: js/blocks/ToneBlocks.js:1015 +msgid "Import a sound file to use as an instrument and set its pitch center." msgstr "" -#: js/musicutils.js:678 -msgid "hungarian" +#: js/blocks/ToneBlocks.js:1110 +msgid "Upload a sound file to connect with the sample block." msgstr "" -#: js/musicutils.js:680 -#.TRANS: minor Romanian scale for music -msgid "romanian minor" +#: js/blocks/VolumeBlocks.js:35 +msgid "synth volume" msgstr "" -#: js/musicutils.js:681 -msgid "spanish gypsy" +#: js/blocks/VolumeBlocks.js:39 +msgid "The Synth volume block returns the current volume of the current synthesizer." msgstr "" -#: js/musicutils.js:683 -#.TRANS: musical scale for Mid-Eastern music -msgid "maqam" +#: js/blocks/VolumeBlocks.js:105 +msgid "master volume" msgstr "" -#: js/musicutils.js:685 -#.TRANS: minor blues scale for music -msgid "minor blues" +#: js/blocks/VolumeBlocks.js:109 +msgid "The Master volume block returns the master volume." msgstr "" -#: js/musicutils.js:687 -#.TRANS: major blues scale for music -msgid "major blues" +#: js/blocks/VolumeBlocks.js:355 +#: js/blocks/VolumeBlocks.js:524 +msgid "set synth volume" msgstr "" -#: js/musicutils.js:688 -msgid "whole tone" +#: js/blocks/VolumeBlocks.js:362 +#: js/blocks/VolumeBlocks.js:545 +msgid "synth" msgstr "" -#: js/musicutils.js:690 -#.TRANS: pentatonic is a general term that means "five note scale". This scale is typically known as "minor pentatonic" -msgid "minor pentatonic" +#: js/blocks/VolumeBlocks.js:403 +#: js/blocks/VolumeBlocks.js:577 +#: js/blocks/VolumeBlocks.js:740 +#: js/turtleactions/VolumeActions.js:173 +msgid "Setting volume to 0." msgstr "" -#: js/musicutils.js:692 -#.TRANS: pentatonic is a general term that means "five note scale". This scale is typically known as "major pentatonic" -msgid "major pentatonic" +#: js/blocks/VolumeBlocks.js:440 +msgid "Synth not found" msgstr "" -#: js/musicutils.js:693 -msgid "chinese" +#: js/blocks/VolumeBlocks.js:494 +msgid "set drum volume" msgstr "" -#: js/musicutils.js:694 -msgid "egyptian" +#: js/blocks/VolumeBlocks.js:530 +msgid "The Set synth volume block will change the volume of a particular synth," msgstr "" -#: js/musicutils.js:696 -#.TRANS: https://en.wikipedia.org/wiki/Hirajoshi_scale NOTE: There are three different versions of this scale -msgid "hirajoshi" +#: js/blocks/VolumeBlocks.js:532 +msgid "eg guitar violin snare drum etc." msgstr "" -#: js/musicutils.js:697 -msgid "Japan" +#: js/blocks/VolumeBlocks.js:534 +msgid "The default volume is 50." msgstr "" -#: js/musicutils.js:699 -#.TRANS: https://en.wikipedia.org/wiki/In_scale and https://en.wikipedia.org/wiki/Sakura_Sakura -msgid "in" +#: js/blocks/VolumeBlocks.js:536 +msgid "The range is 0 for silence to 100 for full volume." msgstr "" -#: js/musicutils.js:701 -#.TRANS: https://en.wikipedia.org/wiki/Miny%C5%8D_scale -msgid "minyo" +#: js/blocks/VolumeBlocks.js:597 +msgid "set panning" msgstr "" -#: js/musicutils.js:703 -#.TRANS: Italian mathematician -msgid "fibonacci" +#: js/blocks/VolumeBlocks.js:603 +msgid "The Set Panning block sets the panning for all synthesizers." msgstr "" -#: js/musicutils.js:708 -#: js/musicutils.js:1106 -#.TRANS: lowpass filter -msgid "lowpass" +#: js/blocks/VolumeBlocks.js:625 +msgid "Warning: Sound is coming out from only the left or right side." msgstr "" -#: js/musicutils.js:710 -#: js/musicutils.js:1107 -#.TRANS: bandpass filter -msgid "bandpass" +#: js/blocks/VolumeBlocks.js:647 +#: js/blocks/VolumeBlocks.js:695 +msgid "set master volume" msgstr "" -#: js/musicutils.js:712 -#: js/musicutils.js:1108 -#.TRANS: high-shelf filter -msgid "highshelf" +#: js/blocks/VolumeBlocks.js:653 +msgid "The Set master volume block sets the volume for all synthesizers." msgstr "" -#: js/musicutils.js:714 -#: js/musicutils.js:1109 -#.TRANS: low-shelf filter -msgid "lowshelf" +#: js/blocks/VolumeBlocks.js:784 +msgid "The Set relative volume block changes the volume of the contained notes." msgstr "" -#: js/musicutils.js:716 -#: js/musicutils.js:1110 -#.TRANS: notch-shelf filter -msgid "notch" +#: js/blocks/VolumeBlocks.js:791 +msgid "set relative volume" msgstr "" -#: js/musicutils.js:718 -#: js/musicutils.js:1111 -#.TRANS: all-pass filter -msgid "allpass" +#: js/blocks/VolumeBlocks.js:857 +msgid "decrescendo" msgstr "" -#: js/musicutils.js:720 -#: js/musicutils.js:1112 -#.TRANS: peaking filter -msgid "peaking" +#: js/blocks/VolumeBlocks.js:921 +msgid "crescendo" msgstr "" -#: js/musicutils.js:731 -#: js/synthutils.js:58 -#.TRANS: musical instrument -msgid "violin" +#: js/blocks/WidgetBlocks.js:81 +#.TRANS: sound envelope (ADSR) +msgid "envelope" msgstr "" -#: js/musicutils.js:732 -#: js/synthutils.js:60 -#.TRANS: viola musical instrument -msgid "viola" +#: js/blocks/WidgetBlocks.js:89 +#.TRANS: Attack time is the time taken for initial run-up of level from nil to peak, beginning when the key is first pressed. +msgid "attack" msgstr "" -#: js/musicutils.js:733 -#: js/synthutils.js:98 -#.TRANS: xylophone musical instrument -msgid "xylophone" +#: js/blocks/WidgetBlocks.js:91 +#.TRANS: Decay time is the time taken for the subsequent run down from the attack level to the designated sustain level. +msgid "decay" msgstr "" -#: js/musicutils.js:734 -#: js/synthutils.js:120 -#.TRANS: vibraphone musical instrument -msgid "vibraphone" +#: js/blocks/WidgetBlocks.js:93 +#.TRANS: Sustain level is the level during the main sequence of the sound's duration, until the key is released. +msgid "sustain" msgstr "" -#: js/musicutils.js:735 -#: js/synthutils.js:62 -#.TRANS: musical instrument -msgid "cello" +#: js/blocks/WidgetBlocks.js:95 +#.TRANS: Release time is the time taken for the level to decay from the sustain level to zero after the key is released. +msgid "release" msgstr "" -#: js/musicutils.js:737 -#: js/synthutils.js:66 -#.TRANS: viola musical instrument -msgid "double bass" +#: js/blocks/WidgetBlocks.js:113 +msgid "Attack value should be from 0 to 100." msgstr "" -#: js/musicutils.js:738 -#: js/synthutils.js:68 -#: js/rhythmruler.js:2119 -#.TRANS: musical instrument -msgid "guitar" +#: js/blocks/WidgetBlocks.js:116 +msgid "Decay value should be from 0 to 100." msgstr "" -#: js/musicutils.js:739 -#: js/synthutils.js:70 -#.TRANS: musical instrument -msgid "acoustic guitar" +#: js/blocks/WidgetBlocks.js:119 +msgid "Sustain value should be from 0 to 100." msgstr "" -#: js/musicutils.js:740 -#: js/synthutils.js:72 -#.TRANS: musical instrument -msgid "flute" +#: js/blocks/WidgetBlocks.js:122 +msgid "Release value should be from 0-100." msgstr "" -#: js/musicutils.js:741 -#: js/synthutils.js:74 -#.TRANS: musical instrument -msgid "clarinet" +#: js/blocks/WidgetBlocks.js:140 +msgid "You are adding multiple envelope blocks." msgstr "" -#: js/musicutils.js:742 -#: js/synthutils.js:76 -#.TRANS: musical instrument -msgid "saxophone" +#: js/blocks/WidgetBlocks.js:171 +#.TRANS: a filter removes some unwanted components from a signal +msgid "filter" msgstr "" -#: js/musicutils.js:743 -#: js/synthutils.js:78 -#.TRANS: musical instrument -msgid "tuba" +#: js/blocks/WidgetBlocks.js:181 +#: js/widgets/timbre.js:1818 +#.TRANS: rolloff is the steepness of a change in frequency. +msgid "rolloff" msgstr "" -#: js/musicutils.js:744 -#: js/synthutils.js:80 -#.TRANS: musical instrument -msgid "trumpet" +#: js/blocks/WidgetBlocks.js:213 +#.TRANS: rolloff is the steepness of a change in frequency. +msgid "Rolloff value should be either -12, -24, -48, or -96 decibels/octave." msgstr "" -#: js/musicutils.js:745 -#: js/synthutils.js:82 -#.TRANS: musical instrument -msgid "oboe" +#: js/blocks/WidgetBlocks.js:252 +msgid "The Temperament tool is used to define custom tuning." msgstr "" -#: js/musicutils.js:746 -#: js/synthutils.js:84 -#.TRANS: musical instrument -msgid "trombone" +#: js/blocks/WidgetBlocks.js:332 +#: js/blocks/WidgetBlocks.js:1573 +#: js/widgets/sampler.js:547 +msgid "Upload a sample and adjust its pitch center." msgstr "" -#: js/musicutils.js:747 -#: js/synthutils.js:100 -#.TRANS: polytone synthesizer -msgid "electronic synth" +#: js/blocks/WidgetBlocks.js:339 +#.TRANS: the speed at music is should be played. +msgid "sampler" msgstr "" -#: js/musicutils.js:748 -#: js/synthutils.js:102 -#.TRANS: simple monotone synthesizer -msgid "simple 1" +#: js/blocks/WidgetBlocks.js:517 +msgid "The Meter block opens a tool to select strong beats for the meter." msgstr "" -#: js/musicutils.js:749 -msgid "simple 2" +#: js/blocks/WidgetBlocks.js:573 +msgid "The oscilloscope block opens a tool to visualize waveforms." msgstr "" -#: js/musicutils.js:750 -msgid "simple 3" +#: js/blocks/WidgetBlocks.js:578 +msgid "oscilloscope" msgstr "" -#: js/musicutils.js:751 -msgid "simple 4" +#: js/blocks/WidgetBlocks.js:645 +msgid "The Custom mode block opens a tool to explore musical mode (the spacing of the notes in a scale)." msgstr "" -#: js/musicutils.js:753 -#: js/synthutils.js:49 -#.TRANS: brown noise synthesizer -msgid "brown noise" +#: js/blocks/WidgetBlocks.js:651 +#.TRANS: musical mode is the pattern of half-steps in an octave, e.g., Major or Minor modes +msgid "custom mode" msgstr "" -#: js/musicutils.js:754 -#: js/synthutils.js:51 -#.TRANS: pink noise synthesizer -msgid "pink noise" +#: js/blocks/WidgetBlocks.js:700 +msgid "The Tempo block opens a metronome to visualize the beat." msgstr "" -#: js/musicutils.js:756 -#: js/synthutils.js:127 -#: js/rhythmruler.js:1670 -#: js/rhythmruler.js:1928 -#.TRANS: musical instrument -msgid "snare drum" +#: js/blocks/WidgetBlocks.js:762 +msgid "The Arpeggio Widget is used to compose chord sequences." msgstr "" -#: js/musicutils.js:757 -#: js/synthutils.js:129 -#.TRANS: musical instrument -msgid "kick drum" +#: js/blocks/WidgetBlocks.js:837 +msgid "The Pitch drum matrix is used to map pitches to drum sounds." msgstr "" -#: js/musicutils.js:758 -#: js/synthutils.js:131 -#.TRANS: musical instrument -msgid "tom tom" +#: js/blocks/WidgetBlocks.js:842 +#.TRANS: makes a mapping between pitches and drum sounds +msgid "pitch-drum mapper" msgstr "" -#: js/musicutils.js:759 -#: js/synthutils.js:133 -#.TRANS: musical instrument -msgid "floor tom" +#: js/blocks/WidgetBlocks.js:891 +msgid "You must have at least one pitch block and one drum block in the matrix." msgstr "" -#: js/musicutils.js:760 -#: js/synthutils.js:135 -#.TRANS: musical instrument -msgid "bass drum" +#: js/blocks/WidgetBlocks.js:920 +msgid "The Pitch slider tool to is used to generate pitches at selected frequencies." msgstr "" -#: js/musicutils.js:761 -#: js/synthutils.js:137 -#.TRANS: a drum made from an inverted cup -msgid "cup drum" +#: js/blocks/WidgetBlocks.js:925 +#.TRANS: widget to generate pitches using a slider +msgid "pitch slider" msgstr "" -#: js/musicutils.js:762 -#: js/synthutils.js:139 -#.TRANS: musical instrument -msgid "darbuka drum" +#: js/blocks/WidgetBlocks.js:977 +msgid "chromatic keyboard" msgstr "" -#: js/musicutils.js:763 -#: js/synthutils.js:143 -#.TRANS: musical instrument -msgid "hi hat" +#: js/blocks/WidgetBlocks.js:1011 +#: js/blocks/WidgetBlocks.js:1077 +#.TRANS: widget to generate pitches using a slider +msgid "music keyboard" msgstr "" -#: js/musicutils.js:764 -#: js/synthutils.js:145 -#.TRANS: a small metal bell -msgid "ride bell" +#: js/blocks/WidgetBlocks.js:1062 +#: js/blocks/WidgetBlocks.js:1069 +msgid "The Music keyboard block opens a piano keyboard that can be used to create notes." msgstr "" -#: js/musicutils.js:765 -#: js/synthutils.js:147 -#.TRANS: musical instrument -msgid "cow bell" +#: js/blocks/WidgetBlocks.js:1128 +msgid "The Pitch staircase tool to is used to generate pitches from a given ratio." msgstr "" -#: js/musicutils.js:766 -msgid "japanese drum" +#: js/blocks/WidgetBlocks.js:1135 +#.TRANS: generate a progressive sequence of pitches +msgid "pitch staircase" msgstr "" -#: js/musicutils.js:767 -#: js/synthutils.js:153 -#.TRANS: musical instrument -msgid "japanese bell" +#: js/blocks/WidgetBlocks.js:1222 +msgid "The Rhythm Maker block opens a tool to create drum machines." msgstr "" -#: js/musicutils.js:768 -#: js/synthutils.js:149 -#.TRANS: musical instrument -msgid "triangle bell" +#: js/blocks/WidgetBlocks.js:1291 +msgid "G major scale" msgstr "" -#: js/musicutils.js:769 -#: js/synthutils.js:151 -#.TRANS: musical instrument -msgid "finger cymbals" +#: js/blocks/WidgetBlocks.js:1326 +msgid "C major scale" msgstr "" -#: js/musicutils.js:770 -#: js/synthutils.js:155 -#.TRANS: a musically tuned set of bells -msgid "chime" +#: js/blocks/WidgetBlocks.js:1366 +msgid "The Phrase Maker block opens a tool to create musical phrases." msgstr "" -#: js/musicutils.js:771 -#: js/synthutils.js:157 -#.TRANS: a musical instrument -msgid "gong" +#: js/blocks/WidgetBlocks.js:1373 +#.TRANS: assigns pitch to a sequence of beats to generate a melody +msgid "phrase maker" msgstr "" -#: js/musicutils.js:772 -#: js/synthutils.js:159 -#.TRANS: sound effect -msgid "clang" +#: js/blocks/WidgetBlocks.js:1444 +msgid "You must have at least one pitch block and one rhythm block in the matrix." msgstr "" -#: js/musicutils.js:773 -#: js/synthutils.js:161 -#.TRANS: sound effect -msgid "crash" +#: js/blocks/WidgetBlocks.js:1503 +msgid "The Status block opens a tool for inspecting the status of Music Blocks as it is running." msgstr "" -#: js/musicutils.js:774 -#: js/synthutils.js:163 -#.TRANS: sound effect -msgid "bottle" +#: js/blocks/WidgetBlocks.js:1580 +#.TRANS: AI-generated music +msgid "aimusic" msgstr "" -#: js/musicutils.js:775 -#: js/synthutils.js:165 -#.TRANS: sound effect -msgid "clap" +#: js/turtleactions/MeterActions.js:101 +#: js/turtleactions/MeterActions.js:139 +msgid "beats per minute must be greater than" msgstr "" -#: js/musicutils.js:776 -#: js/synthutils.js:167 -#.TRANS: sound effect -msgid "slap" +#: js/turtleactions/MeterActions.js:111 +#: js/turtleactions/MeterActions.js:149 +msgid "maximum" msgstr "" -#: js/musicutils.js:777 -#: js/synthutils.js:169 -#.TRANS: sound effect -msgid "splash" +#: js/turtleactions/MeterActions.js:117 +#: js/turtleactions/MeterActions.js:155 +msgid "beats per minute is" msgstr "" -#: js/musicutils.js:778 -#: js/synthutils.js:171 -#.TRANS: sound effect -msgid "bubbles" +#: js/turtleactions/DictActions.js:75 +#: js/turtleactions/DictActions.js:142 +#: js/turtleactions/DictActions.js:172 +msgid "font" msgstr "" -#: js/musicutils.js:779 -#: js/synthutils.js:173 -#.TRANS: sound effect -msgid "raindrop" +#: js/turtleactions/DictActions.js:255 +msgid "Dictionary with this name does not exist" msgstr "" -#: js/musicutils.js:780 -#: js/synthutils.js:175 -#.TRANS: animal sound effect -msgid "cat" +#: js/turtleactions/DictActions.js:259 +msgid "Key with this name does not exist in " msgstr "" -#: js/musicutils.js:781 -#: js/synthutils.js:177 -#.TRANS: animal sound effect -msgid "cricket" +#: js/turtleactions/DrumActions.js:227 +msgid "Noise Block: Did you mean to use a Note block?" msgstr "" -#: js/musicutils.js:782 -#: js/synthutils.js:179 -#.TRANS: animal sound effect -msgid "dog" +#: js/turtleactions/IntervalsActions.js:113 +msgid "one" msgstr "" -#: js/musicutils.js:784 -#: js/synthutils.js:86 -#.TRANS: musical instrument -msgid "banjo" +#: js/turtleactions/IntervalsActions.js:113 +msgid "two" msgstr "" -#: js/musicutils.js:785 -#: js/synthutils.js:88 -#.TRANS: musical instrument -msgid "koto" +#: js/turtleactions/IntervalsActions.js:113 +msgid "three" msgstr "" -#: js/musicutils.js:786 -#: js/synthutils.js:90 -#.TRANS: musical instrument -msgid "dulcimer" +#: js/turtleactions/IntervalsActions.js:113 +msgid "four" msgstr "" -#: js/musicutils.js:787 -#: js/synthutils.js:92 -#.TRANS: musical instrument -msgid "electric guitar" +#: js/turtleactions/IntervalsActions.js:113 +msgid "five" msgstr "" -#: js/musicutils.js:788 -#: js/synthutils.js:94 -#.TRANS: musical instrument -msgid "bassoon" +#: js/turtleactions/IntervalsActions.js:113 +msgid "six" msgstr "" -#: js/musicutils.js:789 -#: js/synthutils.js:96 -#.TRANS: musical instrument -msgid "celeste" +#: js/turtleactions/IntervalsActions.js:113 +msgid "seven" msgstr "" -#: js/musicutils.js:791 -#: js/musicutils.js:1123 -#: js/musicutils.js:1131 -#: js/temperament.js:650 -#.TRANS: musical temperament -msgid "equal" +#: js/turtleactions/IntervalsActions.js:113 +msgid "eight" msgstr "" -#: js/musicutils.js:793 -#: js/musicutils.js:1125 -#: js/musicutils.js:1133 -#.TRANS: musical temperament -msgid "Pythagorean" +#: js/turtleactions/IntervalsActions.js:113 +msgid "nine" msgstr "" -#: js/musicutils.js:795 -#: js/musicutils.js:1124 -#: js/musicutils.js:1132 -#.TRANS: musical temperament -msgid "just intonation" +#: js/turtleactions/IntervalsActions.js:119 +msgid "a" msgstr "" -#: js/musicutils.js:797 -#: js/musicutils.js:1126 -#: js/musicutils.js:1127 -#: js/musicutils.js:1134 -#: js/musicutils.js:1135 -#.TRANS: musical temperament -msgid "meantone" +#: js/turtleactions/IntervalsActions.js:120 +msgid "below" msgstr "" -#: js/musicutils.js:814 -msgid "major 7th" +#: js/turtleactions/IntervalsActions.js:124 +msgid "above" msgstr "" -#: js/musicutils.js:815 -msgid "minor 7th" +#: js/turtleactions/IntervalsActions.js:131 +msgid "plus" msgstr "" -#: js/musicutils.js:816 -msgid "dominant 7th" +#: js/turtleactions/IntervalsActions.js:139 +msgid " below" msgstr "" -#: js/musicutils.js:817 -msgid "minor-major 7th" +#: js/turtleactions/IntervalsActions.js:257 +msgid "Adding missing pitch number 0." msgstr "" -#: js/musicutils.js:818 -msgid "fully-diminished 7th" +#: js/turtleactions/IntervalsActions.js:265 +msgid "Ignoring pitch numbers less than zero or greater than eleven." msgstr "" -#: js/musicutils.js:819 -msgid "half-diminished 7th" +#: js/turtleactions/IntervalsActions.js:271 +msgid "Ignoring duplicate pitch numbers." msgstr "" -#: js/musicutils.js:4379 -#: js/musicutils.js:4416 -msgid "current" +#: js/turtleactions/ToneActions.js:134 +msgid "Vibrato intensity must be between 1 and 100." msgstr "" -#: js/musicutils.js:4382 -#: js/musicutils.js:4407 -msgid "next" +#: js/turtleactions/ToneActions.js:139 +msgid "Vibrato rate must be greater than 0." msgstr "" -#: js/musicutils.js:4385 -#: js/musicutils.js:4412 -msgid "previous" +#: js/turtleactions/ToneActions.js:192 +#: js/turtleactions/ToneActions.js:265 +#.TRANS: Depth is the intesity of the tremolo or chorus effect. +msgid "Depth is out of range." msgstr "" -#: js/synthutils.js:104 -#.TRANS: simple monotone synthesizer -msgid "simple-2" +#: js/turtleactions/ToneActions.js:301 +msgid "Distortion must be from 0 to 100." msgstr "" -#: js/synthutils.js:106 -#.TRANS: simple monotone synthesizer -msgid "simple-3" +#: js/turtleactions/ToneActions.js:332 +#.TRANS: partials components in a harmonic series +msgid "Partial must be greater than or equal to 0." msgstr "" -#: js/synthutils.js:108 -#.TRANS: simple monotone synthesizer -msgid "simple-4" +#: js/turtleactions/ToneActions.js:378 +#: js/turtleactions/ToneActions.js:417 +#: js/turtleactions/ToneActions.js:456 +#: js/widgets/timbre.js:782 +msgid "Unable to use synth due to existing oscillator" msgstr "" -#: js/synthutils.js:141 -#.TRANS: musical instrument -msgid "taiko" +#: js/turtleactions/ToneActions.js:388 +#: js/turtleactions/ToneActions.js:427 +msgid "The input cannot be negative." msgstr "" -#: js/modewidget.js:86 -#: js/modewidget.js:88 -#: js/modewidget.js:642 -#: js/modewidget.js:644 -#: js/modewidget.js:712 -#: js/modewidget.js:714 -#: js/temperament.js:2078 -#: js/rhythmruler.js:189 -#: js/rhythmruler.js:1410 -#: js/rhythmruler.js:1412 -#: js/rhythmruler.js:1435 -#: js/rhythmruler.js:1437 -#: js/meterwidget.js:89 -#: js/meterwidget.js:91 +#: js/widgets/modewidget.js:86 +#: js/widgets/modewidget.js:88 +#: js/widgets/modewidget.js:642 +#: js/widgets/modewidget.js:644 +#: js/widgets/modewidget.js:712 +#: js/widgets/modewidget.js:714 +#: js/widgets/meterwidget.js:194 +#: js/widgets/meterwidget.js:196 +#: js/widgets/temperament.js:2236 +#: js/widgets/rhythmruler.js:457 +#: js/widgets/rhythmruler.js:1790 +#: js/widgets/rhythmruler.js:1792 +#: js/widgets/rhythmruler.js:1816 +#: js/widgets/rhythmruler.js:1818 msgid "Play all" msgstr "" -#: js/modewidget.js:115 -#: js/pitchstaircase.js:641 -#: js/phrasemaker.js:339 -#: js/pitchdrummatrix.js:94 -#: js/pitchslider.js:125 -#: js/temperament.js:2083 -#: js/musickeyboard.js:530 -#: js/timbre.js:756 -#: js/meterwidget.js:124 -#: js/arpeggio.js:103 +#: js/widgets/modewidget.js:115 +#: js/widgets/meterwidget.js:229 +#: js/widgets/pitchdrummatrix.js:166 +#: js/widgets/pitchslider.js:125 +#: js/widgets/pitchstaircase.js:641 +#: js/widgets/temperament.js:2244 +#: js/widgets/timbre.js:756 +#: js/widgets/arpeggio.js:103 +#: js/widgets/musickeyboard.js:688 +#: js/widgets/phrasemaker.js:550 msgid "Save" msgstr "" -#: js/modewidget.js:121 -#: js/pitchstaircase.js:686 -#: js/phrasemaker.js:356 -#: js/pitchdrummatrix.js:109 -#: js/musickeyboard.js:534 -#: js/rhythmruler.js:269 -#: js/arpeggio.js:118 +#: js/widgets/modewidget.js:121 +#: js/widgets/pitchdrummatrix.js:181 +#: js/widgets/pitchstaircase.js:686 +#: js/widgets/arpeggio.js:118 +#: js/widgets/musickeyboard.js:696 +#: js/widgets/phrasemaker.js:567 +#: js/widgets/rhythmruler.js:601 #.TRANS: clear all subdivisions from the ruler. msgid "Clear" msgstr "" -#: js/modewidget.js:127 +#: js/widgets/modewidget.js:127 msgid "Rotate counter clockwise" msgstr "" -#: js/modewidget.js:133 +#: js/widgets/modewidget.js:133 msgid "Rotate clockwise" msgstr "" -#: js/modewidget.js:139 +#: js/widgets/modewidget.js:139 msgid "Invert" msgstr "" -#: js/modewidget.js:145 -#: js/pitchstaircase.js:678 -#: js/rhythmruler.js:258 -#: js/timbre.js:963 +#: js/widgets/modewidget.js:145 +#: js/widgets/pitchstaircase.js:678 +#: js/widgets/timbre.js:963 +#: js/widgets/rhythmruler.js:578 msgid "Undo" msgstr "" -#: js/modewidget.js:163 +#: js/widgets/modewidget.js:163 #.TRANS: A circle of notes represents the musical mode. msgid "Click in the circle to select notes for the mode." msgstr "" -#: js/modewidget.js:1017 -#: js/pitchstaircase.js:580 -#: js/phrasemaker.js:4855 -#: js/temperament.js:1754 -#: js/rhythmruler.js:1865 -#: js/rhythmruler.js:2081 -#: js/tempo.js:414 +#: js/widgets/modewidget.js:1017 +#: js/widgets/pitchstaircase.js:580 +#: js/widgets/temperament.js:1929 +#: js/widgets/tempo.js:414 +#: js/widgets/phrasemaker.js:5356 +#: js/widgets/rhythmruler.js:2254 +#: js/widgets/rhythmruler.js:2472 msgid "New action block generated!" msgstr "" -#: js/oscilloscope.js:79 -msgid "Zoom In" -msgstr "" - -#: js/oscilloscope.js:88 -msgid "Zoom Out" -msgstr "" - -#: js/pitchstaircase.js:624 -msgid "Play chord" -msgstr "" - -#: js/pitchstaircase.js:632 -msgid "Play scale" +#: js/widgets/meterwidget.js:275 +msgid "Reset" msgstr "" -#: js/pitchstaircase.js:696 -msgid "Click on a note to create a new step." +#: js/widgets/meterwidget.js:301 +msgid "Click in the circle to select strong beats for the meter." msgstr "" -#: js/phrasemaker.js:363 -msgid "Export" +#: js/widgets/oscilloscope.js:79 +msgid "Zoom In" msgstr "" -#: js/phrasemaker.js:370 -msgid "Sort" +#: js/widgets/oscilloscope.js:88 +msgid "Zoom Out" msgstr "" -#: js/phrasemaker.js:373 -#: js/musickeyboard.js:559 -msgid "Add note" +#: js/widgets/pitchdrummatrix.js:356 +#: js/widgets/pitchdrummatrix.js:752 +msgid "Click in the grid to map notes to drums." msgstr "" -#: js/phrasemaker.js:764 -msgid "Click on the table to add notes." +#: js/widgets/pitchslider.js:103 +msgid "Move up" msgstr "" -#: js/phrasemaker.js:2414 -#: js/phrasemaker.js:2543 -msgid "tuplet value" +#: js/widgets/pitchslider.js:114 +msgid "Move down" msgstr "" -#: js/pitchdrummatrix.js:270 -#: js/pitchdrummatrix.js:639 -msgid "Click in the grid to map notes to drums." +#: js/widgets/pitchslider.js:136 +msgid "Click on the slider to create a note block." msgstr "" -#: js/pitchslider.js:103 -msgid "Move up" +#: js/widgets/pitchstaircase.js:624 +msgid "Play chord" msgstr "" -#: js/pitchslider.js:114 -msgid "Move down" +#: js/widgets/pitchstaircase.js:632 +msgid "Play scale" msgstr "" -#: js/pitchslider.js:136 -msgid "Click on the slider to create a note block." +#: js/widgets/pitchstaircase.js:696 +msgid "Click on a note to create a new step." msgstr "" -#: js/temperament.js:215 +#: js/widgets/temperament.js:321 msgid "back to 2:1 octave space" msgstr "" -#: js/temperament.js:323 +#: js/widgets/temperament.js:447 msgid "edit" msgstr "" -#: js/temperament.js:330 -#: js/temperament.js:332 -#: js/temperament.js:1336 -#: js/temperament.js:1338 +#: js/widgets/temperament.js:454 +#: js/widgets/temperament.js:456 +#: js/widgets/temperament.js:1493 +#: js/widgets/temperament.js:1495 msgid "close" msgstr "" -#: js/temperament.js:423 -#: js/temperament.js:736 -#: js/temperament.js:743 -#: js/temperament.js:845 -#: js/temperament.js:935 -#: js/temperament.js:942 -#: js/temperament.js:1015 -#: js/temperament.js:1284 -#: js/temperament.js:1354 -#: js/temperament.js:1430 +#: js/widgets/temperament.js:552 +#: js/widgets/temperament.js:877 +#: js/widgets/temperament.js:884 +#: js/widgets/temperament.js:986 +#: js/widgets/temperament.js:1080 +#: js/widgets/temperament.js:1087 +#: js/widgets/temperament.js:1160 +#: js/widgets/temperament.js:1433 +#: js/widgets/temperament.js:1511 +#: js/widgets/temperament.js:1596 msgid "done" msgstr "" -#: js/temperament.js:477 -#: js/temperament.js:482 -#: js/temperament.js:918 +#: js/widgets/temperament.js:610 +#: js/widgets/temperament.js:615 +#: js/widgets/temperament.js:1063 msgid "ratio" msgstr "" -#: js/temperament.js:483 +#: js/widgets/temperament.js:616 msgid "interval" msgstr "" -#: js/temperament.js:611 +#: js/widgets/temperament.js:744 msgid "non scalar" msgstr "" -#: js/temperament.js:650 +#: js/widgets/temperament.js:787 msgid "ratios" msgstr "" -#: js/temperament.js:650 +#: js/widgets/temperament.js:787 msgid "arbitrary" msgstr "" -#: js/temperament.js:719 +#: js/widgets/temperament.js:860 msgid "number of divisions" msgstr "" -#: js/temperament.js:741 -#: js/temperament.js:858 -#: js/temperament.js:940 -#: js/temperament.js:1033 +#: js/widgets/temperament.js:882 +#: js/widgets/temperament.js:999 +#: js/widgets/temperament.js:1085 +#: js/widgets/temperament.js:1178 msgid "preview" msgstr "" -#: js/temperament.js:788 +#: js/widgets/temperament.js:929 msgid "The Number of divisions is too large." msgstr "" -#: js/temperament.js:921 +#: js/widgets/temperament.js:1066 msgid "recursion" msgstr "" -#: js/temperament.js:1450 +#: js/widgets/temperament.js:1616 msgid "The octave ratio has changed. This changes temperament significantly." msgstr "" -#: js/temperament.js:2087 +#: js/widgets/temperament.js:2248 msgid "Table" msgstr "" -#: js/temperament.js:2185 +#: js/widgets/temperament.js:2356 msgid "Add pitches" msgstr "" -#: js/musickeyboard.js:570 -msgid "Metronome" +#: js/widgets/tempo.js:78 +#: js/widgets/tempo.js:97 +#: js/widgets/tempo.js:99 +#: js/widgets/aiwidget.js:134 +#: js/widgets/aiwidget.js:136 +#: js/widgets/rhythmruler.js:681 +#: js/widgets/rhythmruler.js:683 +#: js/widgets/rhythmruler.js:1864 +#: js/widgets/rhythmruler.js:1866 +#: js/widgets/sampler.js:180 +#: js/widgets/sampler.js:182 +msgid "Pause" msgstr "" -#: js/musickeyboard.js:1296 -#: plugins/rodi.rtp:193 -msgid "duration" +#: js/widgets/tempo.js:113 +msgid "Save tempo" msgstr "" -#: js/musickeyboard.js:2840 -msgid "New action blocks generated!" +#: js/widgets/tempo.js:144 +msgid "speed up" msgstr "" -#: js/musickeyboard.js:2841 -msgid "New action block generated" +#: js/widgets/tempo.js:150 +msgid "slow down" msgstr "" -#: js/musickeyboard.js:2984 -#: js/musickeyboard.js:2992 -msgid "MIDI device present." +#: js/widgets/tempo.js:194 +msgid "Adjust the tempo with the buttons." msgstr "" -#: js/musickeyboard.js:2995 -msgid "No MIDI device found." +#: js/widgets/tempo.js:261 +msgid "Please enter a number between 30 and 1000" msgstr "" -#: js/musickeyboard.js:3000 -msgid "Failed to get MIDI access in browser." +#: js/widgets/tempo.js:268 +#: js/widgets/tempo.js:271 +msgid "The beats per minute must be between 30 and 1000." msgstr "" -#: js/rhythmruler.js:202 -msgid "Save rhythms" +#: js/widgets/tempo.js:287 +msgid "The beats per minute must be below 1000." msgstr "" -#: js/rhythmruler.js:222 -msgid "Save drum machine" +#: js/widgets/tempo.js:303 +msgid "The beats per minute must be above 30" msgstr "" -#: js/rhythmruler.js:263 -#.TRANS: user can tap out a rhythm by clicking on a ruler. -msgid "Tap a rhythm" +#: js/widgets/timbre.js:766 +msgid "Synthesizer" msgstr "" -#: js/rhythmruler.js:342 -#: js/rhythmruler.js:344 -#: js/rhythmruler.js:1481 -#: js/rhythmruler.js:1483 -#: js/sampler.js:110 -#: js/sampler.js:112 -#: js/tempo.js:78 -#: js/tempo.js:97 -#: js/tempo.js:99 -msgid "Pause" +#: js/widgets/timbre.js:789 +msgid "Oscillator" msgstr "" -#: js/rhythmruler.js:478 -msgid "Click on the ruler to divide it." +#: js/widgets/timbre.js:840 +msgid "Envelope" msgstr "" -#: js/rhythmruler.js:603 -#: js/rhythmruler.js:605 -#: js/rhythmruler.js:804 -#: js/rhythmruler.js:806 -#: js/rhythmruler.js:1386 -#: js/rhythmruler.js:1388 -msgid "tap a rhythm" +#: js/widgets/timbre.js:886 +#: planet/js/GlobalTag.js:50 +#.TRANS: On the Planet, we use labels to tag projects. +msgid "Effects" msgstr "" -#: js/rhythmruler.js:1084 -msgid "Maximum value of 256 has been exceeded." +#: js/widgets/timbre.js:904 +msgid "Filter" msgstr "" -#: js/sampler.js:137 -msgid "Warning: Sample is bigger than 1MB." +#: js/widgets/timbre.js:946 +msgid "Add filter" msgstr "" -#: js/sampler.js:142 -msgid "Upload failed: Sample is not a .wav file." +#: js/widgets/timbre.js:987 +msgid "Click on buttons to open the timbre design tools." msgstr "" -#: js/sampler.js:164 -msgid "A new sample block was generated." +#: js/widgets/timbre.js:1273 +msgid "harmonicity" msgstr "" -#: js/sampler.js:255 -msgid "Upload sample" +#: js/widgets/timbre.js:1340 +#: js/widgets/timbre.js:1406 +msgid "modulation index" msgstr "" -#: js/sampler.js:306 -msgid "Save sample" +#: js/widgets/timbre.js:1484 +msgid "vibrato amount" msgstr "" -#: js/sampler.js:697 -#.TRANS: The reference tone is a sound used for comparison. -msgid "reference tone" +#: js/widgets/timbre.js:1919 +msgid "Filter already present." msgstr "" -#: js/tempo.js:113 -msgid "Save tempo" +#: js/widgets/timbre.js:2322 +msgid "delay (MS)" msgstr "" -#: js/tempo.js:144 -msgid "speed up" +#: js/widgets/timbre.js:2507 +msgid "distortion amount" msgstr "" -#: js/tempo.js:150 -msgid "slow down" +#: js/widgets/aiwidget.js:180 +#: js/widgets/sampler.js:227 +msgid "Warning: Sample is bigger than 1MB." msgstr "" -#: js/tempo.js:194 -msgid "Adjust the tempo with the buttons." +#: js/widgets/aiwidget.js:539 +msgid "New start block generated" msgstr "" -#: js/tempo.js:261 -msgid "Please enter a number between 30 and 1000" +#: js/widgets/aiwidget.js:541 +msgid "MIDI loading. This may take some time depending upon the number of notes in the track" msgstr "" -#: js/tempo.js:268 -#: js/tempo.js:271 -msgid "The beats per minute must be between 30 and 1000." +#: js/widgets/aiwidget.js:551 +#: js/widgets/sampler.js:254 +msgid "Upload failed: Sample is not a .wav file." msgstr "" -#: js/tempo.js:287 -msgid "The beats per minute must be below 1000." +#: js/widgets/aiwidget.js:679 +#: js/widgets/sampler.js:432 +msgid "Save sample" msgstr "" -#: js/tempo.js:303 -msgid "The beats per minute must be above 30" +#: js/widgets/aiwidget.js:701 +msgid "AI Music" msgstr "" -#: js/timbre.js:766 -msgid "Synthesizer" +#: js/widgets/arpeggio.js:239 +msgid "Click in the grid to add steps to the arpeggio." msgstr "" -#: js/timbre.js:789 -msgid "Oscillator" +#: js/widgets/help.js:95 +#: js/widgets/help.js:125 +#: js/widgets/help.js:146 +#: js/widgets/help.js:158 +#: js/widgets/help.js:376 +#: js/widgets/help.js:391 +msgid "Take a tour" msgstr "" -#: js/timbre.js:840 -msgid "Envelope" +#: js/widgets/musickeyboard.js:725 +#: js/widgets/phrasemaker.js:584 +msgid "Add note" msgstr "" -#: js/timbre.js:886 -#: js/GlobalTag.js:50 -#.TRANS: On the Planet, we use labels to tag projects. -msgid "Effects" +#: js/widgets/musickeyboard.js:744 +msgid "Metronome" +msgstr "" + +#: js/widgets/musickeyboard.js:1549 +#: plugins/rodi.rtp:193 +msgid "duration" +msgstr "" + +#: js/widgets/musickeyboard.js:3179 +msgid "New action blocks generated" +msgstr "" + +#: js/widgets/musickeyboard.js:3180 +msgid "New action block generated" msgstr "" -#: js/timbre.js:904 -msgid "Filter" +#: js/widgets/musickeyboard.js:3365 +#: js/widgets/musickeyboard.js:3373 +msgid "MIDI device present." msgstr "" -#: js/timbre.js:946 -msgid "Add filter" +#: js/widgets/musickeyboard.js:3376 +msgid "No MIDI device found." msgstr "" -#: js/timbre.js:987 -msgid "Click on buttons to open the timbre design tools." +#: js/widgets/musickeyboard.js:3386 +msgid "Failed to get MIDI access in browser." msgstr "" -#: js/timbre.js:1273 -msgid "harmonicity" +#: js/widgets/phrasemaker.js:574 +msgid "Export" msgstr "" -#: js/timbre.js:1340 -#: js/timbre.js:1406 -msgid "modulation index" +#: js/widgets/phrasemaker.js:581 +msgid "Sort" msgstr "" -#: js/timbre.js:1484 -msgid "vibrato amount" +#: js/widgets/phrasemaker.js:975 +msgid "Click on the table to add notes." msgstr "" -#: js/timbre.js:1919 -msgid "Filter already present." +#: js/widgets/phrasemaker.js:2677 +#: js/widgets/phrasemaker.js:2819 +msgid "tuplet value" msgstr "" -#: js/timbre.js:2322 -msgid "delay (MS)" +#: js/widgets/rhythmruler.js:486 +msgid "Save rhythms" msgstr "" -#: js/timbre.js:2507 -msgid "distortion amount" +#: js/widgets/rhythmruler.js:512 +msgid "Save drum machine" msgstr "" -#: js/meterwidget.js:170 -msgid "Reset" +#: js/widgets/rhythmruler.js:589 +#.TRANS: user can tap out a rhythm by clicking on a ruler. +msgid "Tap a rhythm" msgstr "" -#: js/meterwidget.js:196 -msgid "Click in the circle to select strong beats for the meter." +#: js/widgets/rhythmruler.js:817 +msgid "Click on the ruler to divide it." msgstr "" -#: js/arpeggio.js:239 -msgid "Click in the grid to add steps to the arpeggio." +#: js/widgets/rhythmruler.js:950 +#: js/widgets/rhythmruler.js:952 +#: js/widgets/rhythmruler.js:1152 +#: js/widgets/rhythmruler.js:1154 +#: js/widgets/rhythmruler.js:1765 +#: js/widgets/rhythmruler.js:1767 +msgid "tap a rhythm" msgstr "" -#: js/ProjectStorage.js:243 -msgid "anonymous" +#: js/widgets/rhythmruler.js:1459 +msgid "Maximum value of 256 has been exceeded." msgstr "" -#: js/GlobalCard.js:68 -msgid "Share" +#: js/widgets/sampler.js:237 +msgid "Recording started..." msgstr "" -#: js/GlobalCard.js:74 -msgid "Flags" +#: js/widgets/sampler.js:245 +msgid "Recording complete..." msgstr "" -#: js/LocalCard.js:36 -msgid "View published project" +#: js/widgets/sampler.js:283 +msgid "A new sample block was generated." msgstr "" -#: js/LocalCard.js:42 -msgid "Publish project" +#: js/widgets/sampler.js:378 +msgid "Upload sample" msgstr "" -#: js/LocalCard.js:51 -msgid "Edit project" +#: js/widgets/sampler.js:399 +msgid "Warning: Your sample cannot be loaded because it is >1MB." msgstr "" -#: js/LocalCard.js:52 -msgid "Delete project" +#: js/widgets/sampler.js:448 +msgid "Toggle Mic" msgstr "" -#: js/LocalCard.js:53 -msgid "Download project" +#: js/widgets/sampler.js:458 +msgid "Playback" msgstr "" -#: js/LocalCard.js:55 -msgid "Duplicate project" +#: js/widgets/sampler.js:979 +#.TRANS: The reference tone is a sound used for comparison. +msgid "reference tone" msgstr "" -#: js/GlobalTag.js:28 +#: planet/js/GlobalTag.js:28 #.TRANS: On the Planet, we use labels to tag projects. msgid "All Projects" msgstr "" -#: js/GlobalTag.js:30 -#: js/StringHelper.js:37 +#: planet/js/GlobalTag.js:30 +#: planet/js/StringHelper.js:37 #.TRANS: On the Planet, we use labels to tag projects. msgid "My Projects" msgstr "" -#: js/GlobalTag.js:32 +#: planet/js/GlobalTag.js:32 #.TRANS: On the Planet, we use labels to tag projects. msgid "Examples" msgstr "" -#: js/GlobalTag.js:34 +#: planet/js/GlobalTag.js:34 #.TRANS: On the Planet, we use labels to tag projects. msgid "Music" msgstr "" -#: js/GlobalTag.js:36 +#: planet/js/GlobalTag.js:36 #.TRANS: On the Planet, we use labels to tag projects. msgid "Art" msgstr "" -#: js/GlobalTag.js:38 +#: planet/js/GlobalTag.js:38 #.TRANS: On the Planet, we use labels to tag projects. msgid "Math" msgstr "" -#: js/GlobalTag.js:40 +#: planet/js/GlobalTag.js:40 #.TRANS: On the Planet, we use labels to tag projects. msgid "Interactive" msgstr "" -#: js/GlobalTag.js:42 +#: planet/js/GlobalTag.js:42 #.TRANS: On the Planet, we use labels to tag projects. msgid "Design" msgstr "" -#: js/GlobalTag.js:44 +#: planet/js/GlobalTag.js:44 #.TRANS: On the Planet, we use labels to tag projects. msgid "Game" msgstr "" -#: js/GlobalTag.js:46 +#: planet/js/GlobalTag.js:46 #.TRANS: On the Planet, we use labels to tag projects. msgid "Media" msgstr "" -#: js/GlobalTag.js:48 +#: planet/js/GlobalTag.js:48 #.TRANS: On the Planet, we use labels to tag projects. msgid "Sensors" msgstr "" -#: js/GlobalTag.js:52 +#: planet/js/GlobalTag.js:52 #.TRANS: On the Planet, we use labels to tag projects. msgid "Code Snippet" msgstr "" -#: js/helper.js:149 -#: js/StringHelper.js:49 -msgid "Show more tags" +#: planet/js/LocalCard.js:36 +msgid "View published project" msgstr "" -#: js/helper.js:150 -msgid "Show fewer tags" +#: planet/js/LocalCard.js:42 +msgid "Publish project" +msgstr "" + +#: planet/js/LocalCard.js:51 +msgid "Edit project" +msgstr "" + +#: planet/js/LocalCard.js:52 +msgid "Delete project" +msgstr "" + +#: planet/js/LocalCard.js:53 +msgid "Download project" +msgstr "" + +#: planet/js/LocalCard.js:55 +msgid "Duplicate project" +msgstr "" + +#: planet/js/ProjectStorage.js:243 +msgid "anonymous" +msgstr "" + +#: planet/js/SaveInterface.js:34 +msgid "Open in Music Blocks" +msgstr "" + +#: planet/js/SaveInterface.js:35 +msgid "Open in Turtle Blocks" +msgstr "" + +#: planet/js/GlobalCard.js:68 +msgid "Share" +msgstr "" + +#: planet/js/GlobalCard.js:74 +msgid "Flags" +msgstr "" + +#: planet/js/GlobalPlanet.js:35 +msgid "No results found." +msgstr "" + +#: planet/js/GlobalPlanet.js:51 +msgid "Remix of" +msgstr "" + +#: planet/js/GlobalPlanet.js:509 +msgid "Cannot connect to server" msgstr "" -#: js/ProjectViewer.js:30 +#: planet/js/ProjectViewer.js:30 msgid "Error: Report could not be submitted. Try again later." msgstr "" -#: js/ProjectViewer.js:31 +#: planet/js/ProjectViewer.js:31 msgid "Thank you for reporting this project. A moderator will review the project shortly, to verify violation of the Sugar Labs Code of Conduct." msgstr "" -#: js/ProjectViewer.js:32 -#: js/StringHelper.js:62 -#: js/StringHelper.js:64 -#: js/StringHelper.js:68 +#: planet/js/ProjectViewer.js:32 +#: planet/js/StringHelper.js:62 +#: planet/js/StringHelper.js:64 +#: planet/js/StringHelper.js:68 msgid "Report Project" msgstr "" -#: js/ProjectViewer.js:33 -#: js/StringHelper.js:63 +#: planet/js/ProjectViewer.js:33 +#: planet/js/StringHelper.js:63 msgid "Project Reported" msgstr "" -#: js/ProjectViewer.js:34 +#: planet/js/ProjectViewer.js:34 msgid "Report description required" msgstr "" -#: js/ProjectViewer.js:35 +#: planet/js/ProjectViewer.js:35 msgid "Report description too long" msgstr "" -#: js/StringHelper.js:30 +#: planet/js/Publisher.js:30 +msgid "Feature unavailable - cannot connect to server. Reload Music Blocks to try again." +msgstr "" + +#: planet/js/Publisher.js:220 +#: planet/js/Publisher.js:237 +msgid "This field is required" +msgstr "" + +#: planet/js/Publisher.js:227 +msgid "Title too long" +msgstr "" + +#: planet/js/Publisher.js:244 +msgid "Description too long" +msgstr "" + +#: planet/js/Publisher.js:341 +msgid "Server Error" +msgstr "" + +#: planet/js/Publisher.js:341 +msgid "Try Again" +msgstr "" + +#: planet/js/StringHelper.js:30 msgid "Planet" msgstr "" -#: js/StringHelper.js:31 +#: planet/js/StringHelper.js:31 msgid "Close Planet" msgstr "" -#: js/StringHelper.js:32 +#: planet/js/StringHelper.js:32 msgid "Open project from file" msgstr "" -#: js/StringHelper.js:34 +#: planet/js/StringHelper.js:34 msgid "Local" msgstr "" -#: js/StringHelper.js:35 +#: planet/js/StringHelper.js:35 msgid "Global" msgstr "" -#: js/StringHelper.js:36 +#: planet/js/StringHelper.js:36 msgid "Search for a project" msgstr "" -#: js/StringHelper.js:38 +#: planet/js/StringHelper.js:38 msgid "Publish Project" msgstr "" -#: js/StringHelper.js:40 +#: planet/js/StringHelper.js:40 msgid "Tags (max 5)" msgstr "" -#: js/StringHelper.js:41 -#: js/StringHelper.js:61 +#: planet/js/StringHelper.js:41 +#: planet/js/StringHelper.js:61 msgid "Description" msgstr "" -#: js/StringHelper.js:42 -#: js/StringHelper.js:67 +#: planet/js/StringHelper.js:42 +#: planet/js/StringHelper.js:67 msgid "Submit" msgstr "" -#: js/StringHelper.js:43 -#: js/StringHelper.js:47 +#: planet/js/StringHelper.js:43 +#: planet/js/StringHelper.js:47 msgid "Cancel" msgstr "" -#: js/StringHelper.js:44 +#: planet/js/StringHelper.js:44 msgid "Delete \\"\\"?" msgstr "" -#: js/StringHelper.js:45 +#: planet/js/StringHelper.js:45 msgid "Permanently delete project \\"\\"?" msgstr "" -#: js/StringHelper.js:48 +#: planet/js/StringHelper.js:48 msgid "Explore Projects" msgstr "" -#: js/StringHelper.js:50 +#: planet/js/StringHelper.js:49 +#: planet/js/helper.js:149 +msgid "Show more tags" +msgstr "" + +#: planet/js/StringHelper.js:50 msgid "Most recent" msgstr "" -#: js/StringHelper.js:51 +#: planet/js/StringHelper.js:51 msgid "Most liked" msgstr "" -#: js/StringHelper.js:52 +#: planet/js/StringHelper.js:52 msgid "Most downloaded" msgstr "" -#: js/StringHelper.js:53 +#: planet/js/StringHelper.js:53 msgid "A-Z" msgstr "" -#: js/StringHelper.js:54 +#: planet/js/StringHelper.js:54 msgid "Sort by" msgstr "" -#: js/StringHelper.js:55 +#: planet/js/StringHelper.js:55 msgid "Load More Projects" msgstr "" -#: js/StringHelper.js:56 +#: planet/js/StringHelper.js:56 msgid "Last Updated" msgstr "" -#: js/StringHelper.js:57 +#: planet/js/StringHelper.js:57 msgid "Creation Date" msgstr "" -#: js/StringHelper.js:58 +#: planet/js/StringHelper.js:58 msgid "Number of Downloads:" msgstr "" -#: js/StringHelper.js:59 +#: planet/js/StringHelper.js:59 msgid "Number of Likes:" msgstr "" -#: js/StringHelper.js:60 +#: planet/js/StringHelper.js:60 msgid "Tags:" msgstr "" -#: js/StringHelper.js:65 +#: planet/js/StringHelper.js:65 msgid "Report projects which violate the Sugar Labs Code of Conduct." msgstr "" -#: js/StringHelper.js:66 +#: planet/js/StringHelper.js:66 msgid "Reason for reporting project" msgstr "" -#: js/StringHelper.js:70 +#: planet/js/StringHelper.js:70 msgid "Download as File" msgstr "" -#: js/GlobalPlanet.js:35 -msgid "No results found." -msgstr "" - -#: js/GlobalPlanet.js:51 -msgid "Remix of" -msgstr "" - -#: js/GlobalPlanet.js:509 -msgid "Cannot connect to server" -msgstr "" - -#: js/Publisher.js:30 -msgid "Feature unavailable - cannot connect to server. Reload Music Blocks to try again." -msgstr "" - -#: js/Publisher.js:218 -#: js/Publisher.js:235 -msgid "This field is required" -msgstr "" - -#: js/Publisher.js:225 -msgid "Title too long" +#: planet/js/helper.js:150 +msgid "Show fewer tags" msgstr "" -#: js/Publisher.js:242 -msgid "Description too long" +#: plugins/accelerometer.rtp:48 +msgid "motion x" msgstr "" -#: js/Publisher.js:339 -msgid "Server Error" +#: plugins/accelerometer.rtp:56 +msgid "motion y" msgstr "" -#: js/Publisher.js:339 -msgid "Try Again" +#: plugins/accelerometer.rtp:64 +msgid "motion z" msgstr "" -#: js/SaveInterface.js:34 -msgid "Open in Music Blocks" +#: plugins/facebook.rtp:27 +msgid "publish" msgstr "" -#: js/SaveInterface.js:35 -msgid "Open in Turtle Blocks" +#: plugins/maths.rtp:62 +msgid "power" msgstr "" -#: plugins/weather.rtp:68 -#: plugins/weather.rtp:97 -msgid "Days ahead must be in the range of -1 to 5." +#: plugins/maths.rtp:62 +msgid "base" msgstr "" -#: plugins/weather.rtp:122 -msgid "forecast" +#: plugins/maths.rtp:62 +msgid "exp" msgstr "" -#: plugins/weather.rtp:123 -#: plugins/weather.rtp:137 -#: plugins/weather.rtp:150 -msgid "city" +#: plugins/maths.rtp:99 +msgid "floor" msgstr "" -#: plugins/weather.rtp:124 -#: plugins/weather.rtp:138 -#: plugins/weather.rtp:151 -msgid "day" +#: plugins/maths.rtp:104 +msgid "ceiling" msgstr "" -#: plugins/weather.rtp:136 -msgid "high" +#: plugins/maths.rtp:109 +msgid "to degrees" msgstr "" -#: plugins/weather.rtp:149 -msgid "low" +#: plugins/maths.rtp:114 +msgid "to radians" msgstr "" #: plugins/nutrition.rtp:104 @@ -9458,45 +9867,6 @@ msgstr "" msgid "water" msgstr "" -#: plugins/maths.rtp:62 -#: plugins/examples.rtp:93 -msgid "power" -msgstr "" - -#: plugins/maths.rtp:62 -#: plugins/examples.rtp:93 -msgid "base" -msgstr "" - -#: plugins/maths.rtp:62 -#: plugins/examples.rtp:93 -msgid "exp" -msgstr "" - -#: plugins/maths.rtp:99 -#: plugins/examples.rtp:130 -msgid "floor" -msgstr "" - -#: plugins/maths.rtp:104 -#: plugins/examples.rtp:135 -msgid "ceiling" -msgstr "" - -#: plugins/maths.rtp:109 -#: plugins/examples.rtp:140 -msgid "to degrees" -msgstr "" - -#: plugins/maths.rtp:114 -#: plugins/examples.rtp:145 -msgid "to radians" -msgstr "" - -#: plugins/facebook.rtp:27 -msgid "publish" -msgstr "" - #: plugins/rodi.rtp:172 msgid "blink" msgstr "" @@ -9525,18 +9895,66 @@ msgstr "" msgid "move" msgstr "" -#: plugins/accelerometer.rtp:48 -msgid "motion x" +#: plugins/weather.rtp:68 +#: plugins/weather.rtp:97 +msgid "Days ahead must be in the range of -1 to 5." msgstr "" -#: plugins/accelerometer.rtp:56 -msgid "motion y" +#: plugins/weather.rtp:122 +msgid "forecast" msgstr "" -#: plugins/accelerometer.rtp:64 -msgid "motion z" +#: plugins/weather.rtp:123 +#: plugins/weather.rtp:137 +#: plugins/weather.rtp:150 +msgid "city" +msgstr "" + +#: plugins/weather.rtp:124 +#: plugins/weather.rtp:138 +#: plugins/weather.rtp:151 +msgid "day" +msgstr "" + +#: plugins/weather.rtp:136 +msgid "high" +msgstr "" + +#: plugins/weather.rtp:149 +msgid "low" msgstr "" +#: js/toolbar.js:70 + +#: js/toolbar.js:130 + +#: js/toolbar.js:194 + +#: js/toolbar.js:249 + +#~msgid "Toggle JavaScript Editor" +#~msgstr "" + +#: js/EnsembleBlocks.js:643 + +#~msgid "The Turrle pitch block returns the current pitch number being played by the specified turtle." +#~msgstr "" + +#: js/PitchActions.js:88 + +#~msgid "The Scalar Step Block must be used inside of a Note Block." +#~msgstr "" + +#: js/PitchActions.js:107 + +#~msgid "The Scalar Step Block must be preceded by a Pitch Block." +#~msgstr "" + +#: js/musickeyboard.js:2840 + +#~msgid "New action blocks generated!" +#~msgstr "" + #: js/toolbar.js:110 #: js/toolbar.js:204 @@ -9877,11 +10295,6 @@ msgstr "" #~msgid "The Time block returns the number of seconds that the program has been running." #~msgstr "" -#: js/help.js:95 - -#~msgid "Take a tour" -#~msgstr "" - #: js/GlobalCard.js:48 #~msgid "More Details" @@ -12780,11 +13193,6 @@ msgstr "" #~msgid "The save-stack button saves a stack onto a custom palette. It appears after a \"long press\" on a stack." #~msgstr "" -#: js/musicutils.js:254 - -#~msgid "Custom" -#~msgstr "" - #: js/basicblocks.js:4785 #~msgid "Rhythm" diff --git a/po/yo.po b/po/yo.po index 5268095022..4f9abc1a4c 100644 --- a/po/yo.po +++ b/po/yo.po @@ -2129,276 +2129,131 @@ #: js/planetInterface.js:104 #: js/planetInterface.js:104 #: js/planetInterface.js:104 -msgid "project undefined" -msgstr "" - -#: js/logo.js:61 -msgid "Not a valid pitch name" -msgstr "" - -#: js/logo.js:507 -#: js/ProgramBlocks.js:258 -#: js/ProgramBlocks.js:427 -msgid "You must select a file." -msgstr "" - -#: js/logo.js:1184 -#: js/turtles.js:118 -#: js/turtle-painter.js:1192 -#: js/turtle-painter.js:1193 -#: js/block.js:1463 -#: js/lilypond.js:757 -#: js/lilypond.js:921 -#: js/lilypond.js:959 -#: js/ActionBlocks.js:1223 -#: js/ProgramBlocks.js:1267 -msgid "start" -msgstr "" - -#: js/logo.js:1696 -msgid "Playback is ready." -msgstr "" - -#: js/blocks.js:1011 -#: js/blocks.js:3427 -#: js/blocks.js:3428 -#: js/blocks.js:3653 -#: js/blocks.js:4012 -#: js/blocks.js:4205 -#: js/blocks.js:5343 -#: js/blocks.js:6474 -#: js/palette.js:527 -#: js/palette.js:536 -#: js/palette.js:545 -#: js/palette.js:554 -#: js/palette.js:1131 -#: js/palette.js:1142 -#: js/palette.js:1153 -#: js/palette.js:1164 -#: js/palette.js:1183 -#: js/rubrics.js:529 -#: js/macros.js:170 -#: js/macros.js:266 -#: js/macros.js:267 -#: js/macros.js:276 -#: js/macros.js:828 -#: js/block.js:1449 -#: js/block.js:4164 -#: js/block.js:4182 -#: js/block.js:4193 -#: js/turtledefs.js:128 -#: js/turtledefs.js:230 -#: js/ActionBlocks.js:254 -#: js/ActionBlocks.js:307 -#: js/ActionBlocks.js:617 -#: js/ActionBlocks.js:716 -#: js/ActionBlocks.js:961 -#: js/ActionBlocks.js:1049 -#: js/ActionBlocks.js:1322 -#: js/ActionBlocks.js:1325 -#: js/ActionBlocks.js:1337 -#: js/ActionBlocks.js:1404 -#: js/MeterBlocks.js:715 -#: js/MeterBlocks.js:768 -#: js/MeterBlocks.js:831 -#: js/MeterBlocks.js:892 -#: js/phrasemaker.js:4412 -#: js/musickeyboard.js:2647 -#: js/rhythmruler.js:1928 -#: js/rhythmruler.js:1935 -#: js/rhythmruler.js:2119 -#: js/rhythmruler.js:2126 -msgid "action" -msgstr "" - -#: js/blocks.js:1205 -#: js/blocks.js:3380 -#: js/blocks.js:3770 -#: js/blocks.js:3801 -#: js/blocks.js:3850 -#: js/blocks.js:3885 -#: js/blocks.js:6497 -#: js/palette.js:509 -#: js/palette.js:638 -#: js/palette.js:1107 -#: js/BoxesBlocks.js:282 -#: js/BoxesBlocks.js:285 -#: js/BoxesBlocks.js:405 -#: js/BoxesBlocks.js:594 -msgid "box" -msgstr "" - -#: js/blocks.js:1680 -msgid "Consider breaking this stack into parts." +#: js/SaveInterface.js:59 +#: js/SaveInterface.js:61 +#: js/SaveInterface.js:93 +msgid "Music Blocks Project" msgstr "" -#: js/blocks.js:2408 -#: js/palette.js:653 -#: js/MediaBlocks.js:602 -msgid "open file" +#: js/SaveInterface.js:63 +msgid "This project was created in Music Blocks" msgstr "" -#: js/blocks.js:2415 -#: js/blocks.js:2423 -#: js/activity.js:1875 -msgid "audio file" +#: js/SaveInterface.js:67 +msgid "Music Blocks is a Free/Libre Software application." msgstr "" -#: js/blocks.js:2536 -#: js/blocks.js:3147 -#: js/block.js:3543 -msgid "on2" +#: js/SaveInterface.js:69 +msgid "The source code can be accessed at" msgstr "" -#: js/blocks.js:2538 -#: js/blocks.js:3149 -#: js/block.js:3545 -msgid "off" +#: js/SaveInterface.js:72 +msgid "For more information, please consult the" msgstr "" -#: js/blocks.js:2543 -#: js/blocks.js:3154 -#: js/palette.js:618 -#: js/block.js:3466 -#: js/BooleanBlocks.js:77 -#: js/BooleanBlocks.js:167 -#: js/BooleanBlocks.js:251 -#: js/BooleanBlocks.js:335 -#: js/BooleanBlocks.js:433 -#: js/BooleanBlocks.js:539 -#: js/BooleanBlocks.js:640 -#: js/BooleanBlocks.js:741 -#: js/BooleanBlocks.js:847 -#: js/BooleanBlocks.js:948 -#: js/BooleanBlocks.js:1033 -#: js/SensorsBlocks.js:910 -msgid "true" +#: js/SaveInterface.js:76 +#: js/turtledefs.js:795 +msgid "Music Blocks Guide" msgstr "" -#: js/blocks.js:2545 -#: js/blocks.js:3156 -#: js/block.js:3466 -#: js/BooleanBlocks.js:79 -#: js/BooleanBlocks.js:169 -#: js/BooleanBlocks.js:253 -#: js/BooleanBlocks.js:337 -#: js/BooleanBlocks.js:435 -#: js/BooleanBlocks.js:541 -#: js/BooleanBlocks.js:642 -#: js/BooleanBlocks.js:743 -#: js/BooleanBlocks.js:849 -#: js/BooleanBlocks.js:950 -#: js/SensorsBlocks.js:912 -msgid "false" +#: js/SaveInterface.js:83 +msgid "Alternatively, open the file in Music Blocks using the Load project button." msgstr "" -#: js/blocks.js:3183 -#: js/palette.js:574 -#: js/MediaBlocks.js:892 -#: js/MediaBlocks.js:963 -msgid "text" +#: js/SaveInterface.js:85 +msgid "Project Code" msgstr "" -#: js/blocks.js:3379 -#: js/palette.js:641 -#: js/palette.js:642 -#: js/BoxesBlocks.js:514 -msgid "store in box" +#: js/SaveInterface.js:87 +msgid "This code stores data about the blocks in a project." msgstr "" -#: js/blocks.js:3384 -#: js/blocks.js:3824 -#: js/blocks.js:3859 -#: js/blocks.js:3894 -#: js/blocks.js:5773 -#: js/blocks.js:5794 -#: js/BoxesBlocks.js:772 -msgid "box1" +#: js/SaveInterface.js:89 +msgid "Show" msgstr "" -#: js/blocks.js:3386 -#: js/blocks.js:3826 -#: js/blocks.js:3861 -#: js/blocks.js:3896 -#: js/blocks.js:5775 -#: js/blocks.js:5796 -#: js/BoxesBlocks.js:663 -msgid "box2" +#: js/SaveInterface.js:91 +msgid "Hide" msgstr "" -#: js/blocks.js:4058 -#: js/palette.js:639 -#: js/palette.js:644 -#: js/palette.js:1043 -#: js/BoxesBlocks.js:591 -msgid "store in" +#: js/SaveInterface.js:131 +#: js/SaveInterface.js:204 +#: js/SaveInterface.js:262 +#: js/SaveInterface.js:389 +#: js/SaveInterface.js:417 +#: js/activity.js:4884 +#: planet/js/ProjectStorage.js:27 +#: planet/js/GlobalPlanet.js:467 +#: planet/js/GlobalPlanet.js:469 +#: planet/js/GlobalPlanet.js:495 +#.TRANS: default project title when saving as Lilypond +msgid "My Project" msgstr "" -#: js/blocks.js:4058 -#: js/EnsembleBlocks.js:391 -#: js/EnsembleBlocks.js:402 -#: js/MediaBlocks.js:746 -#: js/ProgramBlocks.js:390 -#: js/ProgramBlocks.js:495 -#: js/ProgramBlocks.js:658 -#: js/BoxesBlocks.js:595 -#: js/PitchBlocks.js:656 -#: js/PitchBlocks.js:932 -#: js/PitchBlocks.js:1827 -#: js/ToneBlocks.js:1025 -#: js/DictBlocks.js:215 -#: js/DictBlocks.js:289 -msgid "name" +#: js/SaveInterface.js:197 +#: planet/js/SaveInterface.js:58 +msgid "No description provided" msgstr "" -#: js/blocks.js:4058 -#: js/RhythmBlocks.js:1130 -#: js/BoxesBlocks.js:75 -#: js/BoxesBlocks.js:595 -#: js/HeapBlocks.js:544 -#: js/DictBlocks.js:289 -#: js/DictBlocks.js:430 -msgid "value" +#: js/SaveInterface.js:332 +msgid "Your recording is in progress." msgstr "" -#: js/blocks.js:4907 -msgid "There is no block selected." +#: js/SaveInterface.js:401 +#.TRANS: File name prompt for save as Lilypond +msgid "File name" msgstr "" -#: js/blocks.js:5002 -#: js/MediaBlocks.js:888 -msgid "show" +#: js/SaveInterface.js:403 +#: planet/js/StringHelper.js:39 +#.TRANS: Project title prompt for save as Lilypond +msgid "Project title" msgstr "" -#: js/blocks.js:5005 -#: js/MediaBlocks.js:803 -#.TRANS: Avatar is the image used to determine the appearance of the mouse. -msgid "avatar" +#: js/SaveInterface.js:405 +#.TRANS: Project title prompt for save as Lilypond +msgid "Project author" msgstr "" -#: js/blocks.js:5008 -#: js/ToneBlocks.js:1010 -#: js/sampler.js:693 -#.TRANS: The sound sample that the user uploads. -msgid "sample" +#: js/SaveInterface.js:407 +#.TRANS: MIDI prompt for save as Lilypond +msgid "Include MIDI output?" msgstr "" -#: js/turtles.js:874 -msgid "Grid" +#: js/SaveInterface.js:409 +#.TRANS: Guitar prompt for save as Lilypond +msgid "Include guitar tablature output?" msgstr "" -#: js/turtles.js:891 -#: js/turtledefs.js:626 -msgid "Clean" +#: js/SaveInterface.js:411 +#.TRANS: Lilypond is a scripting language for generating sheet music +msgid "Save as Lilypond" msgstr "" -#: js/turtles.js:912 -#: js/turtledefs.js:632 -msgid "Collapse" +#: js/SaveInterface.js:426 +#: js/blocks/EnsembleBlocks.js:75 +#: js/blocks/EnsembleBlocks.js:154 +#: js/blocks/EnsembleBlocks.js:216 +#: js/blocks/EnsembleBlocks.js:302 +#: js/blocks/EnsembleBlocks.js:348 +#: js/blocks/EnsembleBlocks.js:389 +#: js/blocks/EnsembleBlocks.js:441 +#: js/blocks/EnsembleBlocks.js:490 +#: js/blocks/EnsembleBlocks.js:536 +#: js/blocks/EnsembleBlocks.js:583 +#: js/blocks/EnsembleBlocks.js:637 +#: js/blocks/EnsembleBlocks.js:753 +#: js/blocks/EnsembleBlocks.js:840 +#: js/blocks/EnsembleBlocks.js:899 +#: js/blocks/EnsembleBlocks.js:942 +#: js/blocks/EnsembleBlocks.js:1212 +#: js/blocks/EnsembleBlocks.js:1280 +#.TRANS: default project author when saving as Lilypond +msgid "Mr. Mouse" msgstr "" -#: js/turtles.js:940 -msgid "Expand" +#: js/SaveInterface.js:573 +msgid "The Lilypond code is copied to clipboard. You can paste it here: " msgstr "" #: js/languagebox.js:198 @@ -2409,6933 +2264,7487 @@ msgstr "" msgid "Music Blocks is already set to this language." msgstr "" -#: js/piemenus.js:200 -#: js/musicutils.js:808 -#: js/musicutils.js:824 -#: js/phrasemaker.js:1672 -#: js/musickeyboard.js:2041 -#: js/sampler.js:544 -#.TRANS: double sharp is a music term related to pitch -msgid "double sharp" +#: js/planetInterface.js:131 +msgid "project undefined" msgstr "" -#: js/piemenus.js:201 -#: js/PitchBlocks.js:1510 -#: js/PitchActions.js:580 -#: js/musicutils.js:806 -#: js/musicutils.js:825 -#: js/phrasemaker.js:1673 -#: js/musickeyboard.js:2042 -#: js/sampler.js:545 -#.TRANS: sharp is a half-step up in pitch -#.TRANS: sharp is a music term related to pitch -msgid "sharp" +#: js/rubrics.js:523 +#: js/turtledefs.js:119 +#: js/turtledefs.js:221 +#: js/blocks/RhythmBlockPaletteBlocks.js:52 +#: js/blocks/RhythmBlockPaletteBlocks.js:234 +#: js/blocks/ProgramBlocks.js:745 +#: js/widgets/rhythmruler.js:2057 +#: js/widgets/rhythmruler.js:2064 +#: js/widgets/rhythmruler.js:2133 +#: js/widgets/rhythmruler.js:2140 +#: js/widgets/rhythmruler.js:2219 +#.TRANS: an arrangement of notes based on duration +msgid "rhythm" msgstr "" -#: js/piemenus.js:202 -#: js/musicutils.js:804 -#: js/musicutils.js:826 -#: js/phrasemaker.js:1674 -#: js/musickeyboard.js:2043 -#: js/sampler.js:546 -#.TRANS: natural is a music term related to pitch -msgid "natural" +#: js/rubrics.js:524 +#: js/turtledefs.js:121 +#: js/turtledefs.js:223 +#: js/block-verbose.js:2622 +#: js/block.js:2550 +#: js/blocks/IntervalsBlocks.js:63 +#: js/blocks/SensorsBlocks.js:178 +#: js/blocks/PitchBlocks.js:1839 +#: js/blocks/PitchBlocks.js:1853 +#: js/widgets/musickeyboard.js:1935 +#: js/widgets/phrasemaker.js:1036 +#.TRANS: pitch number +#.TRANS: pitch number +#.TRANS: we specify pitch in terms of a name and an octave. The name can be CDEFGAB or Do Re Mi Fa Sol La Ti. Octave is a number between 1 and 8. +msgid "pitch" msgstr "" -#: js/piemenus.js:203 -#: js/PitchBlocks.js:1469 -#: js/PitchActions.js:583 -#: js/musicutils.js:802 -#: js/musicutils.js:827 -#: js/phrasemaker.js:1675 -#: js/musickeyboard.js:2044 -#: js/sampler.js:547 -#.TRANS: flat is a half-step down in pitch -#.TRANS: flat is a music term related to pitch -msgid "flat" +#: js/rubrics.js:525 +#: js/turtledefs.js:123 +#: js/turtledefs.js:225 +msgid "tone" msgstr "" -#: js/piemenus.js:204 -#: js/musicutils.js:800 -#: js/musicutils.js:828 -#: js/phrasemaker.js:1676 -#: js/musickeyboard.js:2045 -#: js/sampler.js:548 -#.TRANS: double flat is a music term related to pitch -msgid "double flat" +#: js/rubrics.js:526 +#: js/lilypond.js:605 +#: js/lilypond.js:904 +#: js/lilypond.js:910 +#: js/lilypond.js:948 +msgid "mouse" msgstr "" -#: js/piemenus.js:2861 -#: js/PitchBlocks.js:1357 -#: js/musicutils.js:627 -#.TRANS: unison means the note is the same as the current note -#.TRANS: unison is a music term related to intervals -msgid "unison" +#: js/rubrics.js:527 +#: js/turtledefs.js:132 +#: js/turtledefs.js:234 +#: js/widgets/phrasemaker.js:1040 +msgid "pen" msgstr "" -#: js/piemenus.js:3015 -#: js/piemenus.js:3088 -#: js/musicutils.js:635 -#: js/musicutils.js:810 -#: js/musicutils.js:912 -#.TRANS: major is a music term related to intervals and mode -msgid "major" +#: js/rubrics.js:528 +#: js/turtledefs.js:133 +#: js/turtledefs.js:235 +#: js/blocks/NumberBlocks.js:981 +#: js/blocks/PitchBlocks.js:1717 +#: js/blocks/PitchBlocks.js:1758 +msgid "number" msgstr "" -#: js/piemenus.js:3015 -#: js/piemenus.js:3088 -#: js/musicutils.js:653 -#.TRANS: modal scale for music -msgid "ionian" +#: js/rubrics.js:529 +#: js/turtledefs.js:127 +#: js/turtledefs.js:229 +msgid "flow" msgstr "" -#: js/piemenus.js:3017 -#: js/piemenus.js:3092 -#: js/musicutils.js:633 -#: js/musicutils.js:811 -#: js/musicutils.js:909 -#.TRANS: minor is a music term related to intervals and mode -msgid "minor" +#: js/rubrics.js:530 +#: js/turtledefs.js:128 +#: js/turtledefs.js:230 +#: js/block-verbose.js:1609 +#: js/block-verbose.js:4559 +#: js/block-verbose.js:4577 +#: js/block-verbose.js:4588 +#: js/block.js:1573 +#: js/block.js:4483 +#: js/block.js:4501 +#: js/block.js:4512 +#: js/blocks.js:1018 +#: js/blocks.js:3491 +#: js/blocks.js:3492 +#: js/blocks.js:3717 +#: js/blocks.js:4076 +#: js/blocks.js:4269 +#: js/blocks.js:5432 +#: js/blocks.js:6563 +#: js/macros.js:170 +#: js/macros.js:266 +#: js/macros.js:267 +#: js/macros.js:276 +#: js/macros.js:828 +#: js/palette.js:527 +#: js/palette.js:536 +#: js/palette.js:545 +#: js/palette.js:554 +#: js/palette.js:1129 +#: js/palette.js:1140 +#: js/palette.js:1151 +#: js/palette.js:1162 +#: js/palette.js:1181 +#: js/blocks/ActionBlocks.js:254 +#: js/blocks/ActionBlocks.js:307 +#: js/blocks/ActionBlocks.js:617 +#: js/blocks/ActionBlocks.js:716 +#: js/blocks/ActionBlocks.js:961 +#: js/blocks/ActionBlocks.js:1049 +#: js/blocks/ActionBlocks.js:1322 +#: js/blocks/ActionBlocks.js:1325 +#: js/blocks/ActionBlocks.js:1337 +#: js/blocks/ActionBlocks.js:1404 +#: js/blocks/MeterBlocks.js:715 +#: js/blocks/MeterBlocks.js:768 +#: js/blocks/MeterBlocks.js:831 +#: js/blocks/MeterBlocks.js:892 +#: js/widgets/musickeyboard.js:2986 +#: js/widgets/phrasemaker.js:4913 +#: js/widgets/rhythmruler.js:2319 +#: js/widgets/rhythmruler.js:2326 +#: js/widgets/rhythmruler.js:2511 +#: js/widgets/rhythmruler.js:2518 +msgid "action" msgstr "" -#: js/piemenus.js:3017 -#: js/piemenus.js:3092 -#: js/musicutils.js:663 -#.TRANS: modal scale for music -msgid "aeolian" +#: js/rubrics.js:531 +#: js/turtledefs.js:136 +#: js/turtledefs.js:238 +msgid "sensors" msgstr "" -#: js/piemenus.js:3407 -msgid "Duplicate" +#: js/rubrics.js:532 +#: js/turtledefs.js:135 +#: js/turtledefs.js:237 +#: js/blocks/MediaBlocks.js:930 +msgid "media" msgstr "" -#: js/piemenus.js:3408 -#: js/turtledefs.js:534 -msgid "Extract" +#: js/rubrics.js:533 +msgid "mice" msgstr "" -#: js/piemenus.js:3409 -msgid "Move to trash" +#: js/toolbar.js:48 +#: js/toolbar.js:109 +msgid "About Music Blocks" msgstr "" -#: js/piemenus.js:3410 -#: js/timbre.js:968 -#: js/StringHelper.js:69 -msgid "Close" +#: js/toolbar.js:49 +#: js/toolbar.js:110 +#: js/toolbar.js:175 +#: js/toolbar.js:231 +#: js/turtledefs.js:445 +#: js/turtledefs.js:482 +#: js/activity.js:2660 +#: js/activity.js:2671 +#: js/activity.js:2902 +#: js/widgets/modewidget.js:77 +#: js/widgets/meterwidget.js:185 +#: js/widgets/pitchdrummatrix.js:147 +#: js/widgets/pitchdrummatrix.js:687 +#: js/widgets/pitchdrummatrix.js:689 +#: js/widgets/pitchdrummatrix.js:741 +#: js/widgets/pitchdrummatrix.js:743 +#: js/widgets/pitchdrummatrix.js:758 +#: js/widgets/pitchdrummatrix.js:760 +#: js/widgets/pitchdrummatrix.js:789 +#: js/widgets/pitchdrummatrix.js:791 +#: js/widgets/pitchstaircase.js:121 +#: js/widgets/temperament.js:610 +#: js/widgets/temperament.js:613 +#: js/widgets/temperament.js:673 +#: js/widgets/temperament.js:675 +#: js/widgets/temperament.js:2017 +#: js/widgets/temperament.js:2019 +#: js/widgets/tempo.js:84 +#: js/widgets/tempo.js:86 +#: js/widgets/timbre.js:432 +#: js/widgets/timbre.js:434 +#: js/widgets/timbre.js:465 +#: js/widgets/timbre.js:467 +#: js/widgets/timbre.js:746 +#: js/widgets/aiwidget.js:647 +#: js/widgets/aiwidget.js:654 +#: js/widgets/aiwidget.js:656 +#: js/widgets/arpeggio.js:90 +#: js/widgets/arpeggio.js:547 +#: js/widgets/arpeggio.js:549 +#: js/widgets/arpeggio.js:644 +#: js/widgets/arpeggio.js:646 +#: js/widgets/musickeyboard.js:676 +#: js/widgets/musickeyboard.js:872 +#: js/widgets/musickeyboard.js:874 +#: js/widgets/musickeyboard.js:953 +#: js/widgets/musickeyboard.js:955 +#: js/widgets/phrasemaker.js:513 +#: js/widgets/phrasemaker.js:523 +#: js/widgets/phrasemaker.js:525 +#: js/widgets/phrasemaker.js:4304 +#: js/widgets/phrasemaker.js:4528 +#: js/widgets/phrasemaker.js:4533 +#: js/widgets/phrasemaker.js:4535 +#: js/widgets/phrasemaker.js:4650 +#: js/widgets/rhythmruler.js:637 +#: js/widgets/rhythmruler.js:639 +#: js/widgets/rhythmruler.js:653 +#: js/widgets/rhythmruler.js:655 +#: js/widgets/sampler.js:162 +#: js/widgets/sampler.js:164 +#: js/widgets/sampler.js:363 +msgid "Play" msgstr "" -#: js/piemenus.js:3416 -msgid "Save stack" +#: js/toolbar.js:50 +#: js/toolbar.js:111 +#: js/toolbar.js:176 +#: js/toolbar.js:232 +#: js/turtledefs.js:451 +#: js/turtledefs.js:488 +#: js/activity.js:2679 +#: js/widgets/modewidget.js:99 +#: js/widgets/modewidget.js:101 +#: js/widgets/meterwidget.js:206 +#: js/widgets/meterwidget.js:208 +#: js/widgets/pitchdrummatrix.js:674 +#: js/widgets/pitchdrummatrix.js:676 +#: js/widgets/temperament.js:2002 +#: js/widgets/temperament.js:2004 +#: js/widgets/arpeggio.js:534 +#: js/widgets/arpeggio.js:536 +#: js/widgets/phrasemaker.js:534 +#: js/widgets/phrasemaker.js:536 +msgid "Stop" msgstr "" -#: js/piemenus.js:3420 -#: js/toolbar.js:60 -#: js/toolbar.js:120 -#: js/toolbar.js:185 -#: js/toolbar.js:240 -#: js/turtledefs.js:752 -msgid "Help" +#: js/toolbar.js:51 +#: js/toolbar.js:112 +#: js/toolbar.js:177 +#: js/toolbar.js:233 +#: js/turtledefs.js:498 +msgid "Record" msgstr "" -#: js/piemenus.js:3762 -msgid "You have chosen key " +#: js/toolbar.js:52 +#: js/toolbar.js:53 +msgid "Full screen" msgstr "" -#: js/piemenus.js:3766 -msgid " for your pitch preview." +#: js/toolbar.js:54 +#: js/toolbar.js:115 +#: js/toolbar.js:180 +#: js/toolbar.js:236 +#: js/turtledefs.js:504 +msgid "Toggle Fullscreen" +msgstr "" + +#: js/toolbar.js:55 +#: js/toolbar.js:116 +#: js/toolbar.js:181 +#: js/toolbar.js:237 +#: js/turtledefs.js:510 +#: planet/js/StringHelper.js:33 +msgid "New project" +msgstr "" + +#: js/toolbar.js:56 +#: js/toolbar.js:117 +#: js/toolbar.js:182 +#: js/toolbar.js:238 +#: js/turtledefs.js:516 +msgid "Load project from file" +msgstr "" + +#: js/toolbar.js:57 +#: js/toolbar.js:118 +#: js/toolbar.js:119 +#: js/toolbar.js:183 +#: js/toolbar.js:239 +#: js/turtledefs.js:541 +#: js/turtledefs.js:550 +#: js/turtledefs.js:571 +msgid "Save project" +msgstr "" + +#: js/toolbar.js:58 +#: js/toolbar.js:77 +#: js/toolbar.js:79 +#: js/toolbar.js:138 +#: js/toolbar.js:147 +#: js/toolbar.js:149 +#: js/toolbar.js:184 +#: js/toolbar.js:202 +#: js/toolbar.js:204 +#: js/toolbar.js:240 +#: js/toolbar.js:258 +#: js/toolbar.js:260 +msgid "Save project as HTML" +msgstr "" + +#: js/toolbar.js:59 +#: js/toolbar.js:120 +#: js/toolbar.js:185 +#: js/toolbar.js:241 +msgid "Find and share projects" +msgstr "" + +#: js/toolbar.js:60 +#: js/toolbar.js:121 +#: js/toolbar.js:186 +#: js/toolbar.js:242 +msgid "Offline. Sharing is unavailable" +msgstr "" + +#: js/toolbar.js:61 +#: js/toolbar.js:122 +#: js/toolbar.js:187 +#: js/toolbar.js:243 +msgid "Auxiliary menu" +msgstr "" + +#: js/toolbar.js:62 +#: js/toolbar.js:123 +#: js/toolbar.js:188 +#: js/toolbar.js:244 +#: js/turtledefs.js:752 +#: js/piemenus.js:3423 +msgid "Help" +msgstr "" + +#: js/toolbar.js:63 +#: js/toolbar.js:124 +#: js/toolbar.js:189 +#: js/toolbar.js:245 +msgid "Run slowly" +msgstr "" + +#: js/toolbar.js:64 +#: js/toolbar.js:125 +#: js/toolbar.js:190 +#: js/toolbar.js:246 +#: js/turtledefs.js:682 +msgid "Run step by step" +msgstr "" + +#: js/toolbar.js:65 +#: js/toolbar.js:126 +#: js/toolbar.js:191 +#: js/toolbar.js:247 +#: js/turtledefs.js:689 +msgid "Display statistics" +msgstr "" + +#: js/toolbar.js:66 +#: js/toolbar.js:127 +#: js/toolbar.js:192 +#: js/toolbar.js:248 +msgid "Load plugin" +msgstr "" + +#: js/toolbar.js:67 +#: js/toolbar.js:128 +#: js/toolbar.js:193 +#: js/toolbar.js:249 +#: js/turtledefs.js:696 +msgid "Delete plugin" +msgstr "" + +#: js/toolbar.js:68 +#: js/toolbar.js:129 +#: js/toolbar.js:194 +#: js/toolbar.js:250 +msgid "Enable horizontal scrolling" +msgstr "" + +#: js/toolbar.js:69 +#: js/toolbar.js:130 +#: js/toolbar.js:195 +#: js/toolbar.js:251 +msgid "Disable horizontal scrolling" +msgstr "" + +#: js/toolbar.js:70 +#: js/toolbar.js:131 +#: js/toolbar.js:196 +#: js/toolbar.js:252 +#: planet/js/LocalCard.js:54 +#: planet/js/StringHelper.js:71 +msgid "Merge with current project" +msgstr "" + +#: js/toolbar.js:71 +#: js/toolbar.js:132 +msgid "Set Pitch Preview" +msgstr "" + +#: js/toolbar.js:72 +#: js/toolbar.js:133 +#: js/toolbar.js:197 +#: js/toolbar.js:253 +msgid "JavaScript Editor" +msgstr "" + +#: js/toolbar.js:73 +#: js/toolbar.js:134 +#: js/toolbar.js:198 +#: js/toolbar.js:254 +#: js/turtledefs.js:724 +msgid "Restore" +msgstr "" + +#: js/toolbar.js:74 +#: js/toolbar.js:135 +#: js/toolbar.js:199 +#: js/toolbar.js:255 +msgid "Switch to beginner mode" +msgstr "" + +#: js/toolbar.js:75 +#: js/toolbar.js:136 +#: js/toolbar.js:200 +#: js/toolbar.js:256 +msgid "Switch to advanced mode" +msgstr "" + +#: js/toolbar.js:76 +#: js/toolbar.js:137 +#: js/toolbar.js:146 +#: js/toolbar.js:201 +#: js/toolbar.js:257 +#: js/turtledefs.js:738 +msgid "Select language" +msgstr "" + +#: js/toolbar.js:78 +#: js/toolbar.js:81 +#: js/toolbar.js:140 +#: js/turtledefs.js:579 +msgid "Save mouse artwork as PNG" +msgstr "" + +#: js/toolbar.js:80 +#: js/toolbar.js:139 +#: js/turtledefs.js:575 +msgid "Save mouse artwork as SVG" +msgstr "" + +#: js/toolbar.js:82 +#: js/toolbar.js:141 +#: js/turtledefs.js:583 +msgid "Save music as WAV" +msgstr "" + +#: js/toolbar.js:83 +#: js/toolbar.js:142 +#: js/turtledefs.js:587 +msgid "Save sheet music as ABC" +msgstr "" + +#: js/toolbar.js:84 +#: js/toolbar.js:143 +#: js/turtledefs.js:591 +msgid "Save sheet music as Lilypond" +msgstr "" + +#: js/toolbar.js:85 +msgid "Save sheet music as MusicXML" +msgstr "" + +#: js/toolbar.js:86 +#: js/toolbar.js:144 +#: js/toolbar.js:152 +#: js/toolbar.js:207 +#: js/toolbar.js:263 +#: js/turtledefs.js:562 +#: js/turtledefs.js:595 +msgid "Save block artwork as SVG" +msgstr "" + +#: js/toolbar.js:87 +#: js/toolbar.js:145 +#: js/toolbar.js:153 +#: js/toolbar.js:208 +#: js/toolbar.js:264 +#: js/turtles.js:911 +msgid "Confirm" +msgstr "" + +#: js/toolbar.js:88 +#: js/toolbar.js:154 +#: js/toolbar.js:209 +#: js/toolbar.js:265 +msgid "English (United States)" +msgstr "" + +#: js/toolbar.js:89 +#: js/toolbar.js:155 +#: js/toolbar.js:210 +#: js/toolbar.js:266 +msgid "English (United Kingdom)" +msgstr "" + +#: js/toolbar.js:90 +#: js/toolbar.js:156 +#: js/toolbar.js:211 +#: js/toolbar.js:267 +msgid "日本語" +msgstr "" + +#: js/toolbar.js:91 +msgid "한국어" +msgstr "" + +#: js/toolbar.js:92 +#: js/toolbar.js:158 +#: js/toolbar.js:213 +#: js/toolbar.js:269 +msgid "español" +msgstr "" + +#: js/toolbar.js:93 +#: js/toolbar.js:159 +#: js/toolbar.js:214 +#: js/toolbar.js:270 +msgid "português" +msgstr "" + +#: js/toolbar.js:94 +#: js/toolbar.js:160 +#: js/toolbar.js:215 +#: js/toolbar.js:271 +msgid "にほんご" +msgstr "" + +#: js/toolbar.js:95 +#: js/toolbar.js:161 +#: js/toolbar.js:216 +#: js/toolbar.js:272 +msgid "中文" +msgstr "" + +#: js/toolbar.js:96 +#: js/toolbar.js:162 +#: js/toolbar.js:217 +#: js/toolbar.js:273 +msgid "ภาษาไทย" +msgstr "" + +#: js/toolbar.js:97 +#: js/toolbar.js:163 +#: js/toolbar.js:218 +#: js/toolbar.js:274 +msgid "aymara" +msgstr "" + +#: js/toolbar.js:98 +#: js/toolbar.js:164 +#: js/toolbar.js:219 +#: js/toolbar.js:275 +msgid "quechua" +msgstr "" + +#: js/toolbar.js:99 +#: js/toolbar.js:165 +#: js/toolbar.js:220 +#: js/toolbar.js:276 +msgid "guarani" +msgstr "" + +#: js/toolbar.js:100 +#: js/toolbar.js:166 +#: js/toolbar.js:221 +#: js/toolbar.js:277 +msgid "हिंदी" +msgstr "" + +#: js/toolbar.js:101 +#: js/toolbar.js:168 +#: js/toolbar.js:222 +#: js/toolbar.js:279 +msgid "igbo" +msgstr "" + +#: js/toolbar.js:102 +#: js/toolbar.js:169 +#: js/toolbar.js:223 +#: js/toolbar.js:280 +msgid "عربى" +msgstr "" + +#: js/toolbar.js:103 +#: js/toolbar.js:167 +#: js/toolbar.js:224 +#: js/toolbar.js:278 +msgid "తెలుగు" +msgstr "" + +#: js/toolbar.js:104 +#: js/toolbar.js:170 +#: js/toolbar.js:225 +#: js/toolbar.js:281 +msgid "עִברִית" +msgstr "" + +#: js/toolbar.js:113 +#: js/toolbar.js:114 +#: js/toolbar.js:178 +#: js/toolbar.js:179 +#: js/toolbar.js:234 +#: js/toolbar.js:235 +msgid "Full Screen" +msgstr "" + +#: js/toolbar.js:148 +#: js/toolbar.js:151 +#: js/toolbar.js:203 +#: js/toolbar.js:206 +#: js/toolbar.js:259 +#: js/toolbar.js:262 +#: js/turtledefs.js:558 +msgid "Save turtle artwork as PNG" +msgstr "" + +#: js/toolbar.js:150 +#: js/toolbar.js:205 +#: js/toolbar.js:261 +#: js/turtledefs.js:554 +msgid "Save turtle artwork as SVG" +msgstr "" + +#: js/toolbar.js:157 +#: js/toolbar.js:212 +#: js/toolbar.js:268 +msgid "한국인" +msgstr "" + +#: js/toolbar.js:174 +#: js/toolbar.js:230 +msgid "About Turtle Blocks" +msgstr "" + +#: js/toolbar.js:446 +#: js/toolbar.js:457 +#: js/toolbar.js:497 +msgid "Turtle Wrap Off" +msgstr "" + +#: js/toolbar.js:466 +#: js/toolbar.js:506 +msgid "Turtle Wrap On" +msgstr "" + +#: js/turtle-painter.js:1192 +#: js/turtle-painter.js:1193 +#: js/turtles.js:118 +#: js/block-verbose.js:1623 +#: js/block.js:1587 +#: js/lilypond.js:749 +#: js/lilypond.js:913 +#: js/lilypond.js:951 +#: js/logo.js:1184 +#: js/blocks/ActionBlocks.js:1223 +#: js/blocks/ProgramBlocks.js:1267 +msgid "start" +msgstr "" + +#: js/turtledefs.js:40 +#.TRANS: put the URL to the guide here, e.g., https://github.com/sugarlabs/turtleblocksjs/tree/master/guide/README.md +msgid "guide url" +msgstr "" + +#: js/turtledefs.js:85 +#: js/turtledefs.js:437 +msgid "Turtle Blocks is a Logo-inspired turtle that draws colorful pictures with snap-together visual-programming blocks." +msgstr "" + +#: js/turtledefs.js:118 +#: js/turtledefs.js:220 +msgid "search" +msgstr "" + +#: js/turtledefs.js:120 +#: js/turtledefs.js:222 +#: js/blocks/MeterBlocks.js:1343 +#: js/blocks/WidgetBlocks.js:522 +#.TRANS: musical meter (time signature), e.g., 4:4 +msgid "meter" +msgstr "" + +#: js/turtledefs.js:122 +#: js/turtledefs.js:224 +msgid "intervals" +msgstr "" + +#: js/turtledefs.js:124 +#: js/turtledefs.js:226 +msgid "ornament" +msgstr "" + +#: js/turtledefs.js:125 +#: js/turtledefs.js:227 +#: js/blocks/VolumeBlocks.js:362 +#: js/blocks/VolumeBlocks.js:502 +#: js/blocks/VolumeBlocks.js:545 +msgid "volume" +msgstr "" + +#: js/turtledefs.js:126 +#: js/turtledefs.js:228 +#: js/block-verbose.js:1700 +#: js/block-verbose.js:2626 +#: js/block.js:1664 +#: js/block.js:2554 +#: js/lilypond.js:732 +#: js/lilypond.js:897 +#: js/lilypond.js:941 +#: js/palette.js:577 +#: js/blocks/RhythmBlocks.js:766 +#: js/blocks/DrumBlocks.js:477 +#: js/blocks/VolumeBlocks.js:502 +#: js/widgets/phrasemaker.js:1038 +msgid "drum" +msgstr "" + +#: js/turtledefs.js:129 +#: js/turtledefs.js:231 +msgid "boxes" +msgstr "" + +#: js/turtledefs.js:130 +#: js/turtledefs.js:232 +msgid "widgets" +msgstr "" + +#: js/turtledefs.js:131 +#: js/turtledefs.js:233 +#: js/widgets/phrasemaker.js:1039 +msgid "graphics" +msgstr "" + +#: js/turtledefs.js:134 +#: js/turtledefs.js:236 +msgid "boolean" +msgstr "" + +#: js/turtledefs.js:137 +#: js/turtledefs.js:239 +#: js/blocks/HeapBlocks.js:59 +#: js/widgets/status.js:147 +msgid "heap" +msgstr "" + +#: js/turtledefs.js:138 +#: js/turtledefs.js:240 +#: js/blocks/DictBlocks.js:142 +#: js/blocks/ProgramBlocks.js:495 +msgid "dictionary" +msgstr "" + +#: js/turtledefs.js:139 +#: js/turtledefs.js:241 +msgid "ensemble" +msgstr "" + +#: js/turtledefs.js:140 +#: js/turtledefs.js:242 +msgid "extras" +msgstr "" + +#: js/turtledefs.js:142 +#: js/turtledefs.js:244 +#.TRANS: program as in computer program +#.TRANS: program as in computer program +msgid "program" +msgstr "" + +#: js/turtledefs.js:143 +#: js/turtledefs.js:245 +msgid "my blocks" +msgstr "" + +#: js/turtledefs.js:185 +#: js/turtledefs.js:281 +msgid "artwork" +msgstr "" + +#: js/turtledefs.js:185 +#: js/turtledefs.js:281 +msgid "logic" +msgstr "" + +#: js/turtledefs.js:185 +#: js/turtledefs.js:281 +msgid "music" +msgstr "" + +#: js/turtledefs.js:187 +#: js/turtledefs.js:463 +msgid "Music Blocks is a collection of tools for exploring fundamental musical concepts in a fun way." +msgstr "" + +#: js/turtledefs.js:436 +msgid "Welcome to Turtle Blocks" +msgstr "" + +#: js/turtledefs.js:438 +#: js/turtledefs.js:465 +#: js/turtledefs.js:774 +#: js/turtledefs.js:805 +msgid "The current version is" +msgstr "" + +#: js/turtledefs.js:446 +#: js/turtledefs.js:483 +msgid "Click the run button to run the project in fast mode." +msgstr "" + +#: js/turtledefs.js:452 +msgid "Stop the turtle." +msgstr "" + +#: js/turtledefs.js:454 +#: js/turtledefs.js:491 +msgid "You can also type Alt-S to stop." +msgstr "" + +#: js/turtledefs.js:462 +#: js/widgets/help.js:333 +msgid "Welcome to Music Blocks" +msgstr "" + +#: js/turtledefs.js:472 +#: js/widgets/help.js:334 +msgid "Meet Mr. Mouse!" +msgstr "" + +#: js/turtledefs.js:473 +msgid "Mr Mouse is our Music Blocks conductor." +msgstr "" + +#: js/turtledefs.js:475 +msgid "Mr Mouse encourages you to explore Music Blocks." +msgstr "" + +#: js/turtledefs.js:477 +msgid "Let us start our tour!" +msgstr "" + +#: js/turtledefs.js:489 +msgid "Stop the music (and the mice)." +msgstr "" + +#: js/turtledefs.js:499 +msgid "Record your project as video." +msgstr "" + +#: js/turtledefs.js:505 +msgid "Toggle Fullscreen mode." +msgstr "" + +#: js/turtledefs.js:511 +msgid "Initialize a new project." +msgstr "" + +#: js/turtledefs.js:517 +msgid "You can also load projects from the file system." +msgstr "" + +#: js/turtledefs.js:522 +#: planet/js/StringHelper.js:46 +msgid "Delete" +msgstr "" + +#: js/turtledefs.js:523 +msgid "To delete a block, just right-click on it, then you will be able to see the delete option" +msgstr "" + +#: js/turtledefs.js:528 +#: js/activity.js:2649 +#: planet/js/LocalCard.js:31 +msgid "Copy" +msgstr "" + +#: js/turtledefs.js:529 +msgid "To copy a block, just right-click on it, then you will be able to see the copy option" +msgstr "" + +#: js/turtledefs.js:534 +#: js/piemenus.js:3411 +msgid "Extract" +msgstr "" + +#: js/turtledefs.js:535 +msgid "To extract a block, just right-click on it, then you will be able to see the extract option" +msgstr "" + +#: js/turtledefs.js:542 +#: js/turtledefs.js:552 +#: js/turtledefs.js:573 +msgid "Save your project to a file." +msgstr "" + +#: js/turtledefs.js:549 +#: js/turtledefs.js:570 +msgid "save" +msgstr "" + +#: js/turtledefs.js:556 +#: js/turtledefs.js:577 +msgid "Save graphics from your project to as SVG." +msgstr "" + +#: js/turtledefs.js:560 +#: js/turtledefs.js:581 +msgid "Save graphics from your project as PNG." +msgstr "" + +#: js/turtledefs.js:564 +#: js/turtledefs.js:597 +msgid "Save block artwork as an SVG file." +msgstr "" + +#: js/turtledefs.js:585 +msgid "Save audio from your project as WAV." +msgstr "" + +#: js/turtledefs.js:589 +msgid "Save your project to as an ABC file." +msgstr "" + +#: js/turtledefs.js:593 +msgid "Save your project to as a Lilypond file." +msgstr "" + +#: js/turtledefs.js:604 +msgid "Load samples from server" +msgstr "" + +#: js/turtledefs.js:605 +msgid "This button opens a viewer for loading example projects." +msgstr "" + +#: js/turtledefs.js:611 +msgid "Palette buttons" +msgstr "" + +#: js/turtledefs.js:612 +msgid "This toolbar contains the palette buttons including Rhythm Pitch Tone Action and more." +msgstr "" + +#: js/turtledefs.js:614 +msgid "Click to show the palettes of blocks and drag blocks from the palettes onto the canvas to use them." +msgstr "" + +#: js/turtledefs.js:620 +msgid "Cartesian/Polar" +msgstr "" + +#: js/turtledefs.js:621 +msgid "Show or hide a coordinate grid." +msgstr "" + +#: js/turtledefs.js:626 +#: js/turtles.js:902 +msgid "Clean" +msgstr "" + +#: js/turtledefs.js:627 +msgid "Clear the screen and return the mice to their initial positions." +msgstr "" + +#: js/turtledefs.js:632 +#: js/turtles.js:955 +msgid "Collapse" +msgstr "" + +#: js/turtledefs.js:633 +msgid "Collapse the graphics window." msgstr "" -#: js/palette.js:571 -msgid "grid" +#: js/turtledefs.js:638 +#: js/activity.js:5684 +msgid "Home" msgstr "" -#: js/palette.js:577 -#: js/block.js:1540 -#: js/block.js:2343 -#: js/turtledefs.js:126 -#: js/turtledefs.js:228 -#: js/lilypond.js:740 -#: js/lilypond.js:905 -#: js/lilypond.js:949 -#: js/DrumBlocks.js:486 -#: js/RhythmBlocks.js:766 -#: js/VolumeBlocks.js:502 -#: js/phrasemaker.js:823 -msgid "drum" +#: js/turtledefs.js:639 +msgid "Return all blocks to the center of the screen." msgstr "" -#: js/palette.js:580 -msgid "effect" +#: js/turtledefs.js:644 +msgid "Show/hide blocks" msgstr "" -#: js/palette.js:586 -msgid "sargam" +#: js/turtledefs.js:645 +msgid "Hide or show the blocks and the palettes." msgstr "" -#: js/palette.js:589 -#: js/activity.js:1833 -#: js/RhythmBlocks.js:923 -#: js/PitchBlocks.js:442 -#: js/PitchBlocks.js:1748 -#.TRANS: a numeric mapping of the notes in an octave based on the musical mode -msgid "scale degree" +#: js/turtledefs.js:650 +msgid "Expand/collapse collapsable blocks" msgstr "" -#: js/palette.js:592 -#: js/activity.js:1860 -msgid "mode name" +#: js/turtledefs.js:651 +msgid "Expand or collapse start and action stacks." msgstr "" -#: js/palette.js:595 -#: js/activity.js:1839 -msgid "invert mode" +#: js/turtledefs.js:658 +#: js/activity.js:5704 +msgid "Decrease block size" msgstr "" -#: js/palette.js:598 -#: js/activity.js:1836 -msgid "voice name" +#: js/turtledefs.js:659 +msgid "Decrease the size of the blocks." msgstr "" -#: js/palette.js:601 -#: js/PitchBlocks.js:1181 -msgid "custom pitch" +#: js/turtledefs.js:664 +#: js/activity.js:5710 +msgid "Increase block size" msgstr "" -#: js/palette.js:605 -#: js/block.js:1456 -#: js/block.js:1575 -#: js/WidgetBlocks.js:218 -#: js/IntervalsBlocks.js:63 -msgid "temperament" +#: js/turtledefs.js:665 +msgid "Increase the size of the blocks." msgstr "" -#: js/palette.js:609 -msgid "accidental" +#: js/turtledefs.js:670 +msgid "Expand/collapse option toolbar" msgstr "" -#: js/palette.js:615 -#: js/activity.js:1866 -msgid "interval name" +#: js/turtledefs.js:671 +msgid "Click this button to expand or collapse the auxillary toolbar." msgstr "" -#: js/palette.js:633 -#: js/PitchBlocks.js:405 -msgid "pitch converter" +#: js/turtledefs.js:676 +msgid "Run slow" msgstr "" -#: js/rubrics.js:522 -#: js/turtledefs.js:119 -#: js/turtledefs.js:221 -#: js/RhythmBlockPaletteBlocks.js:52 -#: js/RhythmBlockPaletteBlocks.js:233 -#: js/ProgramBlocks.js:745 -#: js/rhythmruler.js:1670 -#: js/rhythmruler.js:1677 -#: js/rhythmruler.js:1745 -#: js/rhythmruler.js:1752 -#: js/rhythmruler.js:1830 -#.TRANS: an arrangement of notes based on duration -msgid "rhythm" +#: js/turtledefs.js:677 +msgid "Click to run the project in slow mode." msgstr "" -#: js/rubrics.js:523 -#: js/block.js:2339 -#: js/turtledefs.js:121 -#: js/turtledefs.js:223 -#: js/IntervalsBlocks.js:63 -#: js/PitchBlocks.js:1801 -#: js/PitchBlocks.js:1814 -#: js/SensorsBlocks.js:178 -#: js/phrasemaker.js:821 -#: js/musickeyboard.js:1653 -#.TRANS: pitch number -#.TRANS: we specify pitch in terms of a name and an octave. The name can be CDEFGAB or Do Re Mi Fa Sol La Ti. Octave is a number between 1 and 8. -msgid "pitch" +#: js/turtledefs.js:683 +msgid "Click to run the project step by step." msgstr "" -#: js/rubrics.js:524 -#: js/turtledefs.js:123 -#: js/turtledefs.js:225 -msgid "tone" +#: js/turtledefs.js:690 +msgid "Display statistics about your Music project." msgstr "" -#: js/rubrics.js:525 -#: js/lilypond.js:613 -#: js/lilypond.js:912 -#: js/lilypond.js:918 -#: js/lilypond.js:956 -msgid "mouse" +#: js/turtledefs.js:697 +msgid "Delete a selected plugin." msgstr "" -#: js/rubrics.js:526 -#: js/turtledefs.js:132 -#: js/turtledefs.js:234 -#: js/phrasemaker.js:825 -msgid "pen" +#: js/turtledefs.js:704 +msgid "Enable scrolling" msgstr "" -#: js/rubrics.js:527 -#: js/turtledefs.js:133 -#: js/turtledefs.js:235 -#: js/NumberBlocks.js:905 -#: js/PitchBlocks.js:1679 -#: js/PitchBlocks.js:1720 -msgid "number" +#: js/turtledefs.js:705 +msgid "You can scroll the blocks on the canvas." msgstr "" -#: js/rubrics.js:528 -#: js/turtledefs.js:127 -#: js/turtledefs.js:229 -msgid "flow" +#: js/turtledefs.js:714 +msgid "Wrap Turtle" msgstr "" -#: js/rubrics.js:530 -#: js/turtledefs.js:136 -#: js/turtledefs.js:238 -msgid "sensors" +#: js/turtledefs.js:715 +msgid "Turn Turtle wrapping On or Off." msgstr "" -#: js/rubrics.js:531 -#: js/turtledefs.js:135 -#: js/turtledefs.js:237 -#: js/MediaBlocks.js:930 -msgid "media" +#: js/turtledefs.js:725 +msgid "Restore blocks from the trash." msgstr "" -#: js/rubrics.js:532 -msgid "mice" +#: js/turtledefs.js:732 +msgid "Switch mode" msgstr "" -#: js/macros.js:711 -#: js/musicutils.js:783 -#: js/synthutils.js:181 -#.TRANS: animal sound effect -msgid "duck" +#: js/turtledefs.js:733 +msgid "Switch between beginner and advance modes." msgstr "" -#: js/toolbar.js:46 -#: js/toolbar.js:107 -msgid "About Music Blocks" +#: js/turtledefs.js:739 +msgid "Select your language preference." msgstr "" -#: js/toolbar.js:47 -#: js/toolbar.js:108 -#: js/toolbar.js:172 -#: js/toolbar.js:228 -#: js/turtledefs.js:445 -#: js/turtledefs.js:482 -#: js/activity.js:2281 -#: js/activity.js:2289 -#: js/activity.js:2520 -#: js/modewidget.js:77 -#: js/pitchstaircase.js:121 -#: js/phrasemaker.js:302 -#: js/phrasemaker.js:312 -#: js/phrasemaker.js:314 -#: js/phrasemaker.js:3901 -#: js/phrasemaker.js:4061 -#: js/phrasemaker.js:4066 -#: js/phrasemaker.js:4068 -#: js/phrasemaker.js:4183 -#: js/pitchdrummatrix.js:81 -#: js/pitchdrummatrix.js:574 -#: js/pitchdrummatrix.js:576 -#: js/pitchdrummatrix.js:628 -#: js/pitchdrummatrix.js:630 -#: js/pitchdrummatrix.js:645 -#: js/pitchdrummatrix.js:647 -#: js/pitchdrummatrix.js:674 -#: js/pitchdrummatrix.js:676 -#: js/temperament.js:477 -#: js/temperament.js:480 -#: js/temperament.js:540 -#: js/temperament.js:542 -#: js/temperament.js:1835 -#: js/temperament.js:1837 -#: js/temperament.js:1986 -#: js/temperament.js:1988 -#: js/musickeyboard.js:522 -#: js/musickeyboard.js:682 -#: js/musickeyboard.js:684 -#: js/musickeyboard.js:756 -#: js/musickeyboard.js:758 -#: js/rhythmruler.js:298 -#: js/rhythmruler.js:300 -#: js/rhythmruler.js:314 -#: js/rhythmruler.js:316 -#: js/sampler.js:96 -#: js/sampler.js:98 -#: js/sampler.js:229 -#: js/sampler.js:235 -#: js/sampler.js:237 -#: js/tempo.js:84 -#: js/tempo.js:86 -#: js/timbre.js:432 -#: js/timbre.js:434 -#: js/timbre.js:465 -#: js/timbre.js:467 -#: js/timbre.js:746 -#: js/meterwidget.js:80 -#: js/arpeggio.js:90 -#: js/arpeggio.js:547 -#: js/arpeggio.js:549 -#: js/arpeggio.js:644 -#: js/arpeggio.js:646 -msgid "Play" +#: js/turtledefs.js:745 +msgid "Keyboard shortcuts" msgstr "" -#: js/toolbar.js:48 -#: js/toolbar.js:109 -#: js/toolbar.js:173 -#: js/toolbar.js:229 -#: js/turtledefs.js:451 -#: js/turtledefs.js:488 -#: js/activity.js:2297 -#: js/modewidget.js:99 -#: js/modewidget.js:101 -#: js/phrasemaker.js:323 -#: js/phrasemaker.js:325 -#: js/pitchdrummatrix.js:561 -#: js/pitchdrummatrix.js:563 -#: js/temperament.js:1820 -#: js/temperament.js:1822 -#: js/meterwidget.js:101 -#: js/meterwidget.js:103 -#: js/arpeggio.js:534 -#: js/arpeggio.js:536 -msgid "Stop" +#: js/turtledefs.js:746 +msgid "You can type d to create a do block and r to create a re block etc." msgstr "" -#: js/toolbar.js:49 -#: js/toolbar.js:110 -#: js/toolbar.js:174 -#: js/toolbar.js:230 -#: js/turtledefs.js:498 -msgid "Record" +#: js/turtledefs.js:753 +msgid "Show these messages." msgstr "" -#: js/toolbar.js:50 -#: js/toolbar.js:51 -msgid "Full screen" +#: js/turtledefs.js:759 +#: js/turtledefs.js:790 +#: js/widgets/help.js:335 +msgid "Guide" msgstr "" -#: js/toolbar.js:52 -#: js/toolbar.js:112 -#: js/toolbar.js:177 -#: js/toolbar.js:232 -#: js/turtledefs.js:504 -msgid "Toggle Fullscreen" +#: js/turtledefs.js:760 +msgid "A detailed guide to Turtle Blocks is available." msgstr "" -#: js/toolbar.js:53 -#: js/toolbar.js:113 -#: js/toolbar.js:178 -#: js/toolbar.js:233 -#: js/turtledefs.js:510 -#: js/StringHelper.js:33 -msgid "New project" +#: js/turtledefs.js:764 +msgid "Turtle Blocks Guide" msgstr "" -#: js/toolbar.js:54 -#: js/toolbar.js:114 -#: js/toolbar.js:179 -#: js/toolbar.js:234 -#: js/turtledefs.js:516 -msgid "Load project from file" +#: js/turtledefs.js:767 +#: js/turtledefs.js:798 +#: js/widgets/help.js:336 +msgid "About" msgstr "" -#: js/toolbar.js:55 -#: js/toolbar.js:115 -#: js/toolbar.js:116 -#: js/toolbar.js:180 -#: js/toolbar.js:235 -#: js/turtledefs.js:541 -#: js/turtledefs.js:550 -#: js/turtledefs.js:571 -msgid "Save project" +#: js/turtledefs.js:768 +msgid "Turtle Blocks is an open source collection of tools for exploring musical concepts." msgstr "" -#: js/toolbar.js:56 -#: js/toolbar.js:75 -#: js/toolbar.js:77 -#: js/toolbar.js:135 -#: js/toolbar.js:144 -#: js/toolbar.js:146 -#: js/toolbar.js:181 -#: js/toolbar.js:199 -#: js/toolbar.js:201 -#: js/toolbar.js:236 -#: js/toolbar.js:254 -#: js/toolbar.js:256 -msgid "Save project as HTML" +#: js/turtledefs.js:770 +msgid "A full list of contributors can be found in the Turtle Blocks GitHub repository." +msgstr "" + +#: js/turtledefs.js:772 +msgid "Turtle Blocks is licensed under the AGPL." +msgstr "" + +#: js/turtledefs.js:780 +msgid "Turtle Blocks GitHub repository" +msgstr "" + +#: js/turtledefs.js:783 +#: js/turtledefs.js:814 +#: js/widgets/help.js:337 +#: js/widgets/help.js:359 +msgid "Congratulations." +msgstr "" + +#: js/turtledefs.js:784 +msgid "You have finished the tour. Please enjoy Turtle Blocks!" +msgstr "" + +#: js/turtledefs.js:791 +msgid "A detailed guide to Music Blocks is available." +msgstr "" + +#: js/turtledefs.js:799 +msgid "Music Blocks is an open source collection of tools for exploring musical concepts." +msgstr "" + +#: js/turtledefs.js:801 +msgid "A full list of contributors can be found in the Music Blocks GitHub repository." +msgstr "" + +#: js/turtledefs.js:803 +msgid "Music Blocks is licensed under the AGPL." +msgstr "" + +#: js/turtledefs.js:811 +msgid "Music Blocks GitHub repository" +msgstr "" + +#: js/turtledefs.js:815 +msgid "You have finished the tour. Please enjoy Music Blocks!" +msgstr "" + +#: js/turtles.js:882 +msgid "Grid" +msgstr "" + +#: js/turtles.js:1024 +msgid "Expand" +msgstr "" + +#: js/block-verbose.js:1616 +#: js/block-verbose.js:1735 +#: js/block.js:1580 +#: js/block.js:1699 +#: js/palette.js:605 +#: js/blocks/IntervalsBlocks.js:63 +#: js/blocks/WidgetBlocks.js:259 +msgid "temperament" +msgstr "" + +#: js/block-verbose.js:1630 +#: js/block.js:1594 +msgid "matrix" msgstr "" -#: js/toolbar.js:57 -#: js/toolbar.js:117 -#: js/toolbar.js:182 -#: js/toolbar.js:237 -msgid "Find and share projects" +#: js/block-verbose.js:1637 +#: js/block.js:1601 +#: js/blocks/WidgetBlocks.js:1509 +#: plugins/rodi.rtp:324 +msgid "status" msgstr "" -#: js/toolbar.js:58 -#: js/toolbar.js:118 -#: js/toolbar.js:183 -#: js/toolbar.js:238 -msgid "Offline. Sharing is unavailable" +#: js/block-verbose.js:1644 +#: js/block.js:1608 +msgid "drum mapper" msgstr "" -#: js/toolbar.js:59 -#: js/toolbar.js:119 -#: js/toolbar.js:184 -#: js/toolbar.js:239 -msgid "Auxiliary menu" +#: js/block-verbose.js:1651 +#: js/block.js:1615 +msgid "ruler" msgstr "" -#: js/toolbar.js:61 -#: js/toolbar.js:121 -#: js/toolbar.js:186 -#: js/toolbar.js:241 -msgid "Run slowly" +#: js/block-verbose.js:1658 +#: js/block.js:1622 +#: js/blocks/WidgetBlocks.js:397 +#.TRANS: timbre is the character or quality of a musical sound +msgid "timbre" msgstr "" -#: js/toolbar.js:62 -#: js/toolbar.js:122 -#: js/toolbar.js:187 -#: js/toolbar.js:242 -#: js/turtledefs.js:682 -msgid "Run step by step" +#: js/block-verbose.js:1665 +#: js/block.js:1629 +msgid "stair" msgstr "" -#: js/toolbar.js:63 -#: js/toolbar.js:123 -#: js/toolbar.js:188 -#: js/toolbar.js:243 -#: js/turtledefs.js:689 -msgid "Display statistics" +#: js/block-verbose.js:1672 +#: js/block.js:1636 +#: js/blocks/WidgetBlocks.js:707 +#.TRANS: the speed at music is should be played. +msgid "tempo" msgstr "" -#: js/toolbar.js:64 -#: js/toolbar.js:124 -#: js/toolbar.js:189 -#: js/toolbar.js:244 -msgid "Load plugin" +#: js/block-verbose.js:1679 +#: js/block-verbose.js:1742 +#: js/block.js:1643 +#: js/block.js:1706 +#: js/blocks/IntervalsBlocks.js:1464 +#.TRANS: mode, e.g., Major in C Major +msgid "mode" msgstr "" -#: js/toolbar.js:65 -#: js/toolbar.js:125 -#: js/toolbar.js:190 -#: js/toolbar.js:245 -#: js/turtledefs.js:696 -msgid "Delete plugin" +#: js/block-verbose.js:1686 +#: js/block.js:1650 +msgid "slider" msgstr "" -#: js/toolbar.js:66 -#: js/toolbar.js:126 -#: js/toolbar.js:191 -#: js/toolbar.js:246 -msgid "Enable horizontal scrolling" +#: js/block-verbose.js:1693 +#: js/block.js:1657 +#: js/blocks/SensorsBlocks.js:1001 +msgid "keyboard" msgstr "" -#: js/toolbar.js:67 -#: js/toolbar.js:127 -#: js/toolbar.js:192 -#: js/toolbar.js:247 -msgid "Disable horizontal scrolling" +#: js/block-verbose.js:1707 +#: js/block.js:1671 +#: js/blocks/WidgetBlocks.js:1190 +#: js/blocks/WidgetBlocks.js:1228 +#.TRANS: widget for subdividing a measure into distinct rhythmic elements +msgid "rhythm maker" msgstr "" -#: js/toolbar.js:68 -#: js/toolbar.js:128 -#: js/toolbar.js:193 -#: js/toolbar.js:248 -#: js/LocalCard.js:54 -#: js/StringHelper.js:71 -msgid "Merge with current project" +#: js/block-verbose.js:1714 +#: js/block-verbose.js:2457 +#: js/block-verbose.js:2514 +#: js/block.js:1678 +#: js/block.js:2385 +#: js/block.js:2442 +#: js/blocks/MeterBlocks.js:1367 +#: js/blocks/OrnamentBlocks.js:220 +#: js/blocks/OrnamentBlocks.js:312 +#: js/blocks/RhythmBlocks.js:33 +#: js/blocks/RhythmBlocks.js:356 +#: js/blocks/RhythmBlocks.js:766 +#: js/blocks/RhythmBlocks.js:806 +#: js/blocks/RhythmBlockPaletteBlocks.js:70 +#: js/blocks/RhythmBlockPaletteBlocks.js:252 +#: js/blocks/RhythmBlockPaletteBlocks.js:485 +#: js/blocks/RhythmBlockPaletteBlocks.js:554 +#: js/blocks/RhythmBlockPaletteBlocks.js:605 +#: js/blocks/RhythmBlockPaletteBlocks.js:875 +#: js/turtleactions/DictActions.js:85 +#: js/widgets/phrasemaker.js:942 +#: js/widgets/phrasemaker.js:2656 +#: js/widgets/phrasemaker.js:2699 +#: js/widgets/phrasemaker.js:2810 +#.TRANS: the value (e.g., 1/4 note) of the note being played. +msgid "note value" msgstr "" -#: js/toolbar.js:69 -#: js/toolbar.js:129 -msgid "Set Pitch Preview" +#: js/block-verbose.js:1721 +#: js/block-verbose.js:2382 +#: js/block-verbose.js:2405 +#: js/block.js:1685 +#: js/block.js:2310 +#: js/block.js:2333 +#: js/blocks/IntervalsBlocks.js:1071 +#: js/blocks/OrnamentBlocks.js:312 +#.TRANS: calculate a relative step between notes based on semi-tones +msgid "scalar interval" msgstr "" -#: js/toolbar.js:70 -#: js/toolbar.js:130 -#: js/toolbar.js:194 -#: js/toolbar.js:249 -msgid "Toggle JavaScript Editor" +#: js/block-verbose.js:1728 +#: js/block.js:1692 +#: js/blocks/RhythmBlocks.js:148 +msgid "milliseconds" msgstr "" -#: js/toolbar.js:71 -#: js/toolbar.js:131 -#: js/toolbar.js:195 -#: js/toolbar.js:250 -#: js/turtledefs.js:724 -msgid "Restore" +#: js/block-verbose.js:2455 +#: js/block-verbose.js:2459 +#: js/block-verbose.js:2512 +#: js/block-verbose.js:2628 +#: js/block.js:2383 +#: js/block.js:2387 +#: js/block.js:2440 +#: js/block.js:2556 +#: js/blocks/RhythmBlocks.js:712 +#: js/blocks/ProgramBlocks.js:1273 +#: js/widgets/rhythmruler.js:1183 +#: js/widgets/rhythmruler.js:1329 +msgid "silence" msgstr "" -#: js/toolbar.js:72 -#: js/toolbar.js:132 -#: js/toolbar.js:196 -#: js/toolbar.js:251 -msgid "Switch to beginner mode" +#: js/block-verbose.js:2548 +#: js/block-verbose.js:3492 +#: js/block-verbose.js:3509 +#: js/activity.js:2718 +#: js/activity.js:2769 +#: js/block.js:2476 +#: js/block.js:3416 +#: js/block.js:3433 +#: js/utils/musicutils.js:3780 +#: js/utils/musicutils.js:5273 +#.TRANS: the note names must be separated by single spaces +#.TRANS: the note names must be separated by single spaces +#.TRANS: the note names must be separated by single spaces +msgid "ti la sol fa mi re do" msgstr "" -#: js/toolbar.js:73 -#: js/toolbar.js:133 -#: js/toolbar.js:197 -#: js/toolbar.js:252 -msgid "Switch to advanced mode" +#: js/block-verbose.js:2616 +#: js/block.js:2544 +#.TRANS: scalar step +#.TRANS: scalar step +msgid "down" msgstr "" -#: js/toolbar.js:74 -#: js/toolbar.js:134 -#: js/toolbar.js:143 -#: js/toolbar.js:198 -#: js/toolbar.js:253 -#: js/turtledefs.js:738 -msgid "Select language" +#: js/block-verbose.js:2617 +#: js/block.js:2545 +msgid "up" msgstr "" -#: js/toolbar.js:76 -#: js/toolbar.js:79 -#: js/toolbar.js:137 -#: js/turtledefs.js:579 -msgid "Save mouse artwork as PNG" +#: js/block-verbose.js:3026 +#: js/block.js:2950 +msgid "Silence block cannot be removed." msgstr "" -#: js/toolbar.js:78 -#: js/toolbar.js:136 -#: js/turtledefs.js:575 -msgid "Save mouse artwork as SVG" +#: js/block-verbose.js:3824 +#: js/block.js:3748 +#: js/blocks.js:2607 +#: js/blocks.js:3218 +#: js/palette.js:618 +#: js/blocks/BooleanBlocks.js:77 +#: js/blocks/BooleanBlocks.js:167 +#: js/blocks/BooleanBlocks.js:251 +#: js/blocks/BooleanBlocks.js:335 +#: js/blocks/BooleanBlocks.js:433 +#: js/blocks/BooleanBlocks.js:539 +#: js/blocks/BooleanBlocks.js:640 +#: js/blocks/BooleanBlocks.js:741 +#: js/blocks/BooleanBlocks.js:847 +#: js/blocks/BooleanBlocks.js:948 +#: js/blocks/BooleanBlocks.js:1033 +#: js/blocks/SensorsBlocks.js:910 +msgid "true" msgstr "" -#: js/toolbar.js:80 -#: js/toolbar.js:138 -#: js/turtledefs.js:583 -msgid "Save music as WAV" +#: js/block-verbose.js:3824 +#: js/block.js:3748 +#: js/blocks.js:2609 +#: js/blocks.js:3220 +#: js/blocks/BooleanBlocks.js:79 +#: js/blocks/BooleanBlocks.js:169 +#: js/blocks/BooleanBlocks.js:253 +#: js/blocks/BooleanBlocks.js:337 +#: js/blocks/BooleanBlocks.js:435 +#: js/blocks/BooleanBlocks.js:541 +#: js/blocks/BooleanBlocks.js:642 +#: js/blocks/BooleanBlocks.js:743 +#: js/blocks/BooleanBlocks.js:849 +#: js/blocks/BooleanBlocks.js:950 +#: js/blocks/SensorsBlocks.js:912 +msgid "false" msgstr "" -#: js/toolbar.js:81 -#: js/toolbar.js:139 -#: js/turtledefs.js:587 -msgid "Save sheet music as ABC" +#: js/block-verbose.js:3835 +#: js/block-verbose.js:3848 +#: js/block.js:3759 +#: js/block.js:3772 +#: js/blocks/ExtrasBlocks.js:615 +msgid "Cartesian" msgstr "" -#: js/toolbar.js:82 -#: js/toolbar.js:140 -#: js/turtledefs.js:591 -msgid "Save sheet music as Lilypond" +#: js/block-verbose.js:3836 +#: js/block-verbose.js:3849 +#: js/block.js:3760 +#: js/block.js:3773 +#: js/blocks/ExtrasBlocks.js:619 +msgid "polar" msgstr "" -#: js/toolbar.js:83 -msgid "Save sheet music as MusicXML" +#: js/block-verbose.js:3837 +#: js/block-verbose.js:3850 +#: js/block.js:3761 +#: js/block.js:3774 +#: js/blocks/ExtrasBlocks.js:623 +msgid "Cartesian+polar" msgstr "" -#: js/toolbar.js:84 -#: js/toolbar.js:141 -#: js/toolbar.js:149 -#: js/toolbar.js:204 -#: js/toolbar.js:259 -#: js/turtledefs.js:562 -#: js/turtledefs.js:595 -msgid "Save block artwork as SVG" +#: js/block-verbose.js:3838 +#: js/block-verbose.js:3857 +#: js/block.js:3762 +#: js/block.js:3781 +#: js/blocks/ExtrasBlocks.js:652 +msgid "none" msgstr "" -#: js/toolbar.js:85 -#: js/toolbar.js:142 -#: js/toolbar.js:150 -#: js/toolbar.js:205 -#: js/toolbar.js:260 -msgid "Confirm" +#: js/block-verbose.js:3851 +#: js/block.js:3775 +#: js/blocks/ExtrasBlocks.js:628 +msgid "treble" msgstr "" -#: js/toolbar.js:86 -#: js/toolbar.js:151 -#: js/toolbar.js:206 -#: js/toolbar.js:261 -msgid "English (United States)" +#: js/block-verbose.js:3852 +#: js/block.js:3776 +#: js/blocks/ExtrasBlocks.js:632 +msgid "grand staff" msgstr "" -#: js/toolbar.js:87 -#: js/toolbar.js:152 -#: js/toolbar.js:207 -#: js/toolbar.js:262 -msgid "English (United Kingdom)" +#: js/block-verbose.js:3853 +#: js/block.js:3777 +#: js/blocks/ExtrasBlocks.js:636 +msgid "mezzo-soprano" msgstr "" -#: js/toolbar.js:88 -#: js/toolbar.js:153 -#: js/toolbar.js:208 -#: js/toolbar.js:263 -msgid "日本語" +#: js/block-verbose.js:3854 +#: js/block.js:3778 +#: js/blocks/ExtrasBlocks.js:640 +msgid "alto" msgstr "" -#: js/toolbar.js:89 -msgid "한국어" +#: js/block-verbose.js:3855 +#: js/block.js:3779 +#: js/blocks/ExtrasBlocks.js:644 +msgid "tenor" msgstr "" -#: js/toolbar.js:90 -#: js/toolbar.js:155 -#: js/toolbar.js:210 -#: js/toolbar.js:265 -msgid "español" +#: js/block-verbose.js:3856 +#: js/block.js:3780 +#: js/utils/musicutils.js:1115 +#: js/utils/synthutils.js:80 +#: js/blocks/ExtrasBlocks.js:648 +#.TRANS: musical instrument +msgid "bass" msgstr "" -#: js/toolbar.js:91 -#: js/toolbar.js:156 -#: js/toolbar.js:211 -#: js/toolbar.js:266 -msgid "português" +#: js/block-verbose.js:3901 +#: js/block.js:3825 +#: js/blocks.js:2600 +#: js/blocks.js:3211 +msgid "on2" msgstr "" -#: js/toolbar.js:92 -#: js/toolbar.js:157 -#: js/toolbar.js:212 -#: js/toolbar.js:267 -msgid "にほんご" +#: js/block-verbose.js:3903 +#: js/block.js:3827 +#: js/blocks.js:2602 +#: js/blocks.js:3213 +msgid "off" msgstr "" -#: js/toolbar.js:93 -#: js/toolbar.js:158 -#: js/toolbar.js:213 -#: js/toolbar.js:268 -msgid "中文" +#: js/block-verbose.js:4470 +#: js/block.js:4394 +msgid "Not a number" msgstr "" -#: js/toolbar.js:94 -#: js/toolbar.js:159 -#: js/toolbar.js:214 -#: js/toolbar.js:269 -msgid "ภาษาไทย" +#: js/block-verbose.js:4477 +#: js/block.js:4401 +msgid "Octave value must be between 1 and 10." msgstr "" -#: js/toolbar.js:95 -#: js/toolbar.js:160 -#: js/toolbar.js:215 -#: js/toolbar.js:270 -msgid "aymara" +#: js/block-verbose.js:4485 +#: js/block.js:4409 +msgid "Numbers can have at most 10 digits." msgstr "" -#: js/toolbar.js:96 -#: js/toolbar.js:161 -#: js/toolbar.js:216 -#: js/toolbar.js:271 -msgid "quechua" +#: js/activity.js:390 +#: js/activity.js:395 +msgid "Search for blocks" msgstr "" -#: js/toolbar.js:97 -#: js/toolbar.js:162 -#: js/toolbar.js:217 -#: js/toolbar.js:272 -msgid "guarani" +#: js/activity.js:1413 +msgid "Refresh your browser to change to advanced mode." msgstr "" -#: js/toolbar.js:98 -#: js/toolbar.js:163 -#: js/toolbar.js:218 -#: js/toolbar.js:273 -msgid "हिंदी" +#: js/activity.js:1418 +msgid "Refresh your browser to change to beginner mode." msgstr "" -#: js/toolbar.js:99 -#: js/toolbar.js:165 -#: js/toolbar.js:219 -#: js/toolbar.js:275 -msgid "igbo" +#: js/activity.js:1477 +msgid "Catching mice" +msgstr "" + +#: js/activity.js:1478 +msgid "Cleaning the instruments" +msgstr "" + +#: js/activity.js:1479 +msgid "Testing key pieces" +msgstr "" + +#: js/activity.js:1480 +msgid "Sight-reading" +msgstr "" + +#: js/activity.js:1481 +msgid "Combining math and music" msgstr "" -#: js/toolbar.js:100 -#: js/toolbar.js:166 -#: js/toolbar.js:220 -#: js/toolbar.js:276 -msgid "عربى" +#: js/activity.js:1482 +msgid "Generating more blocks" msgstr "" -#: js/toolbar.js:101 -#: js/toolbar.js:164 -#: js/toolbar.js:221 -#: js/toolbar.js:274 -msgid "తెలుగు" +#: js/activity.js:1483 +msgid "Do Re Mi Fa Sol La Ti Do" msgstr "" -#: js/toolbar.js:102 -#: js/toolbar.js:167 -#: js/toolbar.js:222 -#: js/toolbar.js:277 -msgid "עִברִית" +#: js/activity.js:1484 +msgid "Tuning string instruments" msgstr "" -#: js/toolbar.js:111 -#: js/toolbar.js:175 -#: js/toolbar.js:176 -#: js/toolbar.js:231 -msgid "Full Screen" +#: js/activity.js:1485 +msgid "Pressing random keys" msgstr "" -#: js/toolbar.js:145 -#: js/toolbar.js:148 -#: js/toolbar.js:200 -#: js/toolbar.js:203 -#: js/toolbar.js:255 -#: js/toolbar.js:258 -#: js/turtledefs.js:558 -msgid "Save turtle artwork as PNG" +#: js/activity.js:1663 +msgid "plugins will be removed upon restart." msgstr "" -#: js/toolbar.js:147 -#: js/toolbar.js:202 -#: js/toolbar.js:257 -#: js/turtledefs.js:554 -msgid "Save turtle artwork as SVG" +#: js/activity.js:1672 +msgid "show Cartesian" msgstr "" -#: js/toolbar.js:154 -#: js/toolbar.js:209 -#: js/toolbar.js:264 -msgid "한국인" +#: js/activity.js:2211 +#: js/palette.js:589 +#: js/blocks/RhythmBlocks.js:923 +#: js/blocks/PitchBlocks.js:442 +#: js/blocks/PitchBlocks.js:1786 +#.TRANS: a numeric mapping of the notes in an octave based on the musical mode +msgid "scale degree" msgstr "" -#: js/toolbar.js:171 -#: js/toolbar.js:227 -msgid "About Turtle Blocks" +#: js/activity.js:2214 +#: js/palette.js:598 +msgid "voice name" msgstr "" -#: js/toolbar.js:429 -#: js/toolbar.js:440 -msgid "Turtle Wrap Off" +#: js/activity.js:2217 +#: js/palette.js:595 +msgid "invert mode" msgstr "" -#: js/toolbar.js:442 -msgid "Turtle Wrap On" +#: js/activity.js:2220 +msgid "output tools" msgstr "" -#: js/block.js:1470 -msgid "matrix" +#: js/activity.js:2223 +msgid "custom note" msgstr "" -#: js/block.js:1477 -#: js/WidgetBlocks.js:1226 -#: plugins/rodi.rtp:324 -msgid "status" +#: js/activity.js:2226 +msgid "accidental name" msgstr "" -#: js/block.js:1484 -msgid "drum mapper" +#: js/activity.js:2229 +#: js/blocks/PitchBlocks.js:855 +msgid "east indian solfege" msgstr "" -#: js/block.js:1491 -msgid "ruler" +#: js/activity.js:2232 +#: js/blocks/PitchBlocks.js:869 +msgid "note name" msgstr "" -#: js/block.js:1498 -#: js/WidgetBlocks.js:327 -#.TRANS: timbre is the character or quality of a musical sound -msgid "timbre" +#: js/activity.js:2235 +#: js/blocks/IntervalsBlocks.js:94 +msgid "temperament name" msgstr "" -#: js/block.js:1505 -msgid "stair" +#: js/activity.js:2238 +#: js/palette.js:592 +msgid "mode name" msgstr "" -#: js/block.js:1512 -#: js/WidgetBlocks.js:577 -#.TRANS: the speed at music is should be played. -msgid "tempo" +#: js/activity.js:2241 +msgid "chord name" msgstr "" -#: js/block.js:1519 -#: js/block.js:1582 -#: js/IntervalsBlocks.js:1268 -#.TRANS: mode, e.g., Major in C Major -msgid "mode" +#: js/activity.js:2244 +#: js/palette.js:615 +msgid "interval name" msgstr "" -#: js/block.js:1526 -msgid "slider" +#: js/activity.js:2247 +msgid "filter type" msgstr "" -#: js/block.js:1533 -#: js/SensorsBlocks.js:1001 -msgid "keyboard" +#: js/activity.js:2250 +msgid "oscillator type" msgstr "" -#: js/block.js:1547 -#: js/WidgetBlocks.js:957 -#: js/WidgetBlocks.js:988 -#.TRANS: widget for subdividing a measure into distinct rhythmic elements -msgid "rhythm maker" +#: js/activity.js:2253 +#: js/blocks.js:2479 +#: js/blocks.js:2487 +msgid "audio file" msgstr "" -#: js/block.js:1554 -#: js/block.js:2182 -#: js/block.js:2236 -#: js/RhythmBlockPaletteBlocks.js:70 -#: js/RhythmBlockPaletteBlocks.js:251 -#: js/RhythmBlockPaletteBlocks.js:484 -#: js/RhythmBlockPaletteBlocks.js:553 -#: js/RhythmBlockPaletteBlocks.js:604 -#: js/RhythmBlockPaletteBlocks.js:874 -#: js/RhythmBlocks.js:33 -#: js/RhythmBlocks.js:356 -#: js/RhythmBlocks.js:766 -#: js/RhythmBlocks.js:806 -#: js/OrnamentBlocks.js:220 -#: js/OrnamentBlocks.js:312 -#: js/MeterBlocks.js:1367 -#: js/DictActions.js:85 -#: js/phrasemaker.js:731 -#: js/phrasemaker.js:2393 -#: js/phrasemaker.js:2436 -#: js/phrasemaker.js:2534 -#.TRANS: the value (e.g., 1/4 note) of the note being played. -msgid "note value" +#: js/activity.js:2256 +#: js/blocks/DrumBlocks.js:32 +msgid "noise name" msgstr "" -#: js/block.js:1561 -#: js/block.js:2110 -#: js/block.js:2133 -#: js/IntervalsBlocks.js:875 -#: js/OrnamentBlocks.js:312 -#.TRANS: calculate a relative step between notes based on semi-tones -msgid "scalar interval" +#: js/activity.js:2259 +#: js/blocks/DrumBlocks.js:75 +msgid "drum name" msgstr "" -#: js/block.js:1568 -#: js/RhythmBlocks.js:148 -msgid "milliseconds" +#: js/activity.js:2262 +#: js/blocks/DrumBlocks.js:119 +msgid "effects name" msgstr "" -#: js/block.js:2180 -#: js/block.js:2184 -#: js/block.js:2234 -#: js/block.js:2345 -#: js/ProgramBlocks.js:1273 -#: js/RhythmBlocks.js:712 -#: js/rhythmruler.js:834 -#: js/rhythmruler.js:961 -msgid "silence" +#: js/activity.js:2265 +msgid "wrap mode" msgstr "" -#: js/block.js:2265 -#: js/block.js:3134 -#: js/block.js:3151 -#: js/activity.js:2336 -#: js/activity.js:2387 -#: js/musicutils.js:2932 -#: js/musicutils.js:4287 -#.TRANS: the note names must be separated by single spaces -#.TRANS: the note names must be separated by single spaces -msgid "ti la sol fa mi re do" +#: js/activity.js:2268 +msgid "load file" msgstr "" -#: js/block.js:2333 -#.TRANS: scalar step -msgid "down" +#: js/activity.js:2435 +#: js/activity.js:5851 +msgid "This block is deprecated." msgstr "" -#: js/block.js:2334 -msgid "up" +#: js/activity.js:2437 +#: js/activity.js:5853 +msgid "Block cannot be found." msgstr "" -#: js/block.js:3477 -#: js/block.js:3490 -#: js/ExtrasBlocks.js:612 -msgid "Cartesian" +#: js/activity.js:2645 +msgid "Saving block artwork" msgstr "" -#: js/block.js:3478 -#: js/block.js:3491 -#: js/ExtrasBlocks.js:616 -msgid "polar" +#: js/activity.js:2656 +msgid "Erase" msgstr "" -#: js/block.js:3479 -#: js/block.js:3492 -#: js/ExtrasBlocks.js:620 -msgid "Cartesian+polar" +#: js/activity.js:2683 +#: js/activity.js:2705 +msgid "Paste" msgstr "" -#: js/block.js:3480 -#: js/block.js:3499 -#: js/ExtrasBlocks.js:649 -msgid "none" +#: js/activity.js:2687 +msgid "Save block help" msgstr "" -#: js/block.js:3493 -#: js/ExtrasBlocks.js:625 -msgid "treble" +#: js/activity.js:2772 +msgid "Jumping to the bottom of the page." msgstr "" -#: js/block.js:3494 -#: js/ExtrasBlocks.js:629 -msgid "grand staff" +#: js/activity.js:2778 +msgid "Scrolling up." msgstr "" -#: js/block.js:3495 -#: js/ExtrasBlocks.js:633 -msgid "mezzo-soprano" +#: js/activity.js:2783 +msgid "Scrolling down." msgstr "" -#: js/block.js:3496 -#: js/ExtrasBlocks.js:637 -msgid "alto" +#: js/activity.js:2788 +msgid "Extracting block" msgstr "" -#: js/block.js:3497 -#: js/ExtrasBlocks.js:641 -msgid "tenor" +#: js/activity.js:2796 +msgid "Moving block up." msgstr "" -#: js/block.js:3498 -#: js/ExtrasBlocks.js:645 -#: js/musicutils.js:736 -#: js/synthutils.js:64 -#.TRANS: musical instrument -msgid "bass" +#: js/activity.js:2817 +msgid "Moving block down." msgstr "" -#: js/block.js:4075 -msgid "Not a number" +#: js/activity.js:2838 +msgid "Moving block left." msgstr "" -#: js/block.js:4082 -msgid "Octave value must be between 1 and 10." +#: js/activity.js:2855 +msgid "Moving block right." msgstr "" -#: js/block.js:4090 -msgid "Numbers can have at most 10 digits." +#: js/activity.js:2870 +msgid "Jump to home position." msgstr "" -#: js/notation.js:353 -msgid "Lilypond cannot process pickup of " +#: js/activity.js:2897 +msgid "Hide blocks" msgstr "" -#: js/turtledefs.js:40 -#.TRANS: put the URL to the guide here, e.g., https://github.com/sugarlabs/turtleblocksjs/tree/master/guide/README.md -msgid "guide url" +#: js/activity.js:4500 +msgid "Click the run button to run the project." msgstr "" -#: js/turtledefs.js:85 -#: js/turtledefs.js:437 -msgid "Turtle Blocks is a Logo-inspired turtle that draws colorful pictures with snap-together visual-programming blocks." +#: js/activity.js:5692 +msgid "Show/hide block" msgstr "" -#: js/turtledefs.js:118 -#: js/turtledefs.js:220 -msgid "search" +#: js/activity.js:5698 +msgid "Expand/collapse blocks" msgstr "" -#: js/turtledefs.js:120 -#: js/turtledefs.js:222 -#: js/WidgetBlocks.js:437 -#: js/MeterBlocks.js:1343 -#.TRANS: musical meter (time signature), e.g., 4:4 -msgid "meter" +#: js/activity.js:5976 +msgid "Could not parse JSON input." msgstr "" -#: js/turtledefs.js:122 -#: js/turtledefs.js:224 -msgid "intervals" +#: js/activity.js:6475 +#: js/activity.js:6580 +#: js/activity.js:6631 +msgid "Cannot load project from the file. Please check the file type." msgstr "" -#: js/turtledefs.js:124 -#: js/turtledefs.js:226 -msgid "ornament" +#: js/activity.js:6917 +msgid "Invalid parameters" msgstr "" -#: js/turtledefs.js:125 -#: js/turtledefs.js:227 -#: js/VolumeBlocks.js:362 -#: js/VolumeBlocks.js:502 -#: js/VolumeBlocks.js:545 -msgid "volume" +#: js/blocks.js:1212 +#: js/blocks.js:3444 +#: js/blocks.js:3834 +#: js/blocks.js:3865 +#: js/blocks.js:3914 +#: js/blocks.js:3949 +#: js/blocks.js:6586 +#: js/palette.js:509 +#: js/palette.js:638 +#: js/palette.js:1105 +#: js/blocks/BoxesBlocks.js:282 +#: js/blocks/BoxesBlocks.js:285 +#: js/blocks/BoxesBlocks.js:405 +#: js/blocks/BoxesBlocks.js:594 +msgid "box" msgstr "" -#: js/turtledefs.js:129 -#: js/turtledefs.js:231 -msgid "boxes" +#: js/blocks.js:1713 +msgid "Consider breaking this stack into parts." msgstr "" -#: js/turtledefs.js:130 -#: js/turtledefs.js:232 -msgid "widgets" +#: js/blocks.js:2472 +#: js/palette.js:653 +#: js/blocks/MediaBlocks.js:602 +msgid "open file" msgstr "" -#: js/turtledefs.js:131 -#: js/turtledefs.js:233 -#: js/phrasemaker.js:824 -msgid "graphics" +#: js/blocks.js:3247 +#: js/palette.js:574 +#: js/blocks/MediaBlocks.js:892 +#: js/blocks/MediaBlocks.js:963 +msgid "text" msgstr "" -#: js/turtledefs.js:134 -#: js/turtledefs.js:236 -msgid "boolean" +#: js/blocks.js:3443 +#: js/palette.js:641 +#: js/palette.js:642 +#: js/blocks/BoxesBlocks.js:514 +msgid "store in box" msgstr "" -#: js/turtledefs.js:137 -#: js/turtledefs.js:239 -#: js/HeapBlocks.js:59 -#: js/status.js:147 -msgid "heap" +#: js/blocks.js:3448 +#: js/blocks.js:3888 +#: js/blocks.js:3923 +#: js/blocks.js:3958 +#: js/blocks.js:5862 +#: js/blocks.js:5883 +#: js/blocks/BoxesBlocks.js:772 +msgid "box1" msgstr "" -#: js/turtledefs.js:138 -#: js/turtledefs.js:240 -#: js/ProgramBlocks.js:495 -#: js/DictBlocks.js:142 -msgid "dictionary" +#: js/blocks.js:3450 +#: js/blocks.js:3890 +#: js/blocks.js:3925 +#: js/blocks.js:3960 +#: js/blocks.js:5864 +#: js/blocks.js:5885 +#: js/blocks/BoxesBlocks.js:663 +msgid "box2" msgstr "" -#: js/turtledefs.js:139 -#: js/turtledefs.js:241 -msgid "ensemble" +#: js/blocks.js:4122 +#: js/palette.js:639 +#: js/palette.js:644 +#: js/palette.js:1041 +#: js/blocks/BoxesBlocks.js:591 +msgid "store in" msgstr "" -#: js/turtledefs.js:140 -#: js/turtledefs.js:242 -msgid "extras" +#: js/blocks.js:4122 +#: js/blocks/BoxesBlocks.js:595 +#: js/blocks/DictBlocks.js:215 +#: js/blocks/DictBlocks.js:289 +#: js/blocks/EnsembleBlocks.js:391 +#: js/blocks/EnsembleBlocks.js:402 +#: js/blocks/MediaBlocks.js:746 +#: js/blocks/PitchBlocks.js:656 +#: js/blocks/PitchBlocks.js:934 +#: js/blocks/PitchBlocks.js:1866 +#: js/blocks/ProgramBlocks.js:390 +#: js/blocks/ProgramBlocks.js:495 +#: js/blocks/ProgramBlocks.js:658 +#: js/blocks/ToneBlocks.js:1025 +msgid "name" msgstr "" -#: js/turtledefs.js:142 -#: js/turtledefs.js:244 -#.TRANS: program as in computer program -#.TRANS: program as in computer program -msgid "program" +#: js/blocks.js:4122 +#: js/blocks/BoxesBlocks.js:75 +#: js/blocks/BoxesBlocks.js:595 +#: js/blocks/DictBlocks.js:289 +#: js/blocks/DictBlocks.js:430 +#: js/blocks/HeapBlocks.js:544 +#: js/blocks/RhythmBlocks.js:1130 +msgid "value" msgstr "" -#: js/turtledefs.js:143 -#: js/turtledefs.js:245 -msgid "my blocks" +#: js/blocks.js:4465 +msgid "Forever loop detected inside a note value block. Unexpected things may happen." msgstr "" -#: js/turtledefs.js:185 -#: js/turtledefs.js:281 -msgid "artwork" +#: js/blocks.js:4988 +msgid "There is no block selected." msgstr "" -#: js/turtledefs.js:185 -#: js/turtledefs.js:281 -msgid "logic" +#: js/blocks.js:5091 +#: js/blocks/MediaBlocks.js:888 +msgid "show" msgstr "" -#: js/turtledefs.js:185 -#: js/turtledefs.js:281 -msgid "music" +#: js/blocks.js:5094 +#: js/blocks/MediaBlocks.js:803 +#.TRANS: Avatar is the image used to determine the appearance of the mouse. +msgid "avatar" msgstr "" -#: js/turtledefs.js:187 -#: js/turtledefs.js:463 -msgid "Music Blocks is a collection of tools for exploring fundamental musical concepts in a fun way." +#: js/blocks.js:5097 +#: js/blocks/ToneBlocks.js:1010 +#: js/widgets/sampler.js:975 +#.TRANS: The sound sample that the user uploads. +msgid "sample" msgstr "" -#: js/turtledefs.js:436 -msgid "Welcome to Turtle Blocks" +#: js/lilypond.js:606 +msgid "brown rat" msgstr "" -#: js/turtledefs.js:438 -#: js/turtledefs.js:465 -#: js/turtledefs.js:774 -#: js/turtledefs.js:805 -msgid "The current version is" +#: js/lilypond.js:607 +msgid "mole" msgstr "" -#: js/turtledefs.js:446 -#: js/turtledefs.js:483 -msgid "Click the run button to run the project in fast mode." +#: js/lilypond.js:608 +msgid "chipmunk" msgstr "" -#: js/turtledefs.js:452 -msgid "Stop the turtle." +#: js/lilypond.js:609 +msgid "red squirrel" msgstr "" -#: js/turtledefs.js:454 -#: js/turtledefs.js:491 -msgid "You can also type Alt-S to stop." +#: js/lilypond.js:610 +msgid "guinea pig" +msgstr "" + +#: js/lilypond.js:611 +msgid "capybara" msgstr "" -#: js/turtledefs.js:462 -#: js/help.js:333 -msgid "Welcome to Music Blocks" +#: js/lilypond.js:612 +msgid "coypu" msgstr "" -#: js/turtledefs.js:472 -#: js/help.js:334 -msgid "Meet Mr. Mouse!" +#: js/lilypond.js:613 +msgid "black rat" msgstr "" -#: js/turtledefs.js:473 -msgid "Mr Mouse is our Music Blocks conductor." +#: js/lilypond.js:614 +msgid "grey squirrel" msgstr "" -#: js/turtledefs.js:475 -msgid "Mr Mouse encourages you to explore Music Blocks." +#: js/lilypond.js:615 +msgid "flying squirrel" msgstr "" -#: js/turtledefs.js:477 -msgid "Let us start our tour!" +#: js/lilypond.js:616 +msgid "bat" msgstr "" -#: js/turtledefs.js:489 -msgid "Stop the music (and the mice)." +#: js/lilypond.js:749 +#: js/lilypond.js:913 +#: js/lilypond.js:951 +#: js/blocks/ActionBlocks.js:1256 +#: js/blocks/ExtrasBlocks.js:556 +msgid "start drum" msgstr "" -#: js/turtledefs.js:499 -msgid "Record your project as video." +#: js/logo.js:61 +msgid "Not a valid pitch name" msgstr "" -#: js/turtledefs.js:505 -msgid "Toggle Fullscreen mode." +#: js/logo.js:507 +#: js/blocks/ProgramBlocks.js:258 +#: js/blocks/ProgramBlocks.js:427 +msgid "You must select a file." msgstr "" -#: js/turtledefs.js:511 -msgid "Initialize a new project." +#: js/logo.js:1696 +msgid "Playback is ready." msgstr "" -#: js/turtledefs.js:517 -msgid "You can also load projects from the file system." +#: js/macros.js:711 +#: js/utils/musicutils.js:1162 +#: js/utils/synthutils.js:202 +#.TRANS: animal sound effect +msgid "duck" msgstr "" -#: js/turtledefs.js:522 -#: js/StringHelper.js:46 -msgid "Delete" +#: js/notation.js:353 +msgid "Lilypond cannot process pickup of " msgstr "" -#: js/turtledefs.js:523 -msgid "To delete a block, just right-click on it, then you will be able to see the delete option" +#: js/palette.js:571 +msgid "grid" msgstr "" -#: js/turtledefs.js:528 -#: js/activity.js:2270 -#: js/LocalCard.js:31 -msgid "Copy" +#: js/palette.js:580 +msgid "effect" msgstr "" -#: js/turtledefs.js:529 -msgid "To copy a block, just right-click on it, then you will be able to see the copy option" +#: js/palette.js:586 +msgid "sargam" msgstr "" -#: js/turtledefs.js:535 -msgid "To extract a block, just right-click on it, then you will be able to see the extract option" +#: js/palette.js:601 +#: js/blocks/PitchBlocks.js:1209 +msgid "custom pitch" msgstr "" -#: js/turtledefs.js:542 -#: js/turtledefs.js:552 -#: js/turtledefs.js:573 -msgid "Save your project to a file." +#: js/palette.js:609 +msgid "accidental" msgstr "" -#: js/turtledefs.js:549 -#: js/turtledefs.js:570 -msgid "save" +#: js/palette.js:633 +#: js/blocks/PitchBlocks.js:405 +msgid "pitch converter" msgstr "" -#: js/turtledefs.js:556 -#: js/turtledefs.js:577 -msgid "Save graphics from your project to as SVG." +#: js/piemenus.js:200 +#: js/utils/musicutils.js:1187 +#: js/utils/musicutils.js:1207 +#: js/widgets/musickeyboard.js:2341 +#: js/widgets/phrasemaker.js:1908 +#: js/widgets/sampler.js:810 +#.TRANS: double sharp is a music term related to pitch +msgid "double sharp" msgstr "" -#: js/turtledefs.js:560 -#: js/turtledefs.js:581 -msgid "Save graphics from your project as PNG." +#: js/piemenus.js:201 +#: js/utils/musicutils.js:1185 +#: js/utils/musicutils.js:1208 +#: js/blocks/PitchBlocks.js:1539 +#: js/turtleactions/PitchActions.js:323 +#: js/widgets/musickeyboard.js:2342 +#: js/widgets/phrasemaker.js:1909 +#: js/widgets/sampler.js:811 +#.TRANS: sharp is a music term related to pitch +#.TRANS: sharp is a half-step up in pitch +msgid "sharp" msgstr "" -#: js/turtledefs.js:564 -#: js/turtledefs.js:597 -msgid "Save block artwork as an SVG file." +#: js/piemenus.js:202 +#: js/utils/musicutils.js:1183 +#: js/utils/musicutils.js:1209 +#: js/widgets/musickeyboard.js:2343 +#: js/widgets/phrasemaker.js:1910 +#: js/widgets/sampler.js:812 +#.TRANS: natural is a music term related to pitch +msgid "natural" msgstr "" -#: js/turtledefs.js:585 -msgid "Save audio from your project as WAV." +#: js/piemenus.js:203 +#: js/utils/musicutils.js:1181 +#: js/utils/musicutils.js:1210 +#: js/blocks/PitchBlocks.js:1498 +#: js/turtleactions/PitchActions.js:326 +#: js/widgets/musickeyboard.js:2344 +#: js/widgets/phrasemaker.js:1911 +#: js/widgets/sampler.js:813 +#.TRANS: flat is a music term related to pitch +#.TRANS: flat is a half-step down in pitch +msgid "flat" msgstr "" -#: js/turtledefs.js:589 -msgid "Save your project to as an ABC file." +#: js/piemenus.js:204 +#: js/utils/musicutils.js:1179 +#: js/utils/musicutils.js:1211 +#: js/widgets/musickeyboard.js:2345 +#: js/widgets/phrasemaker.js:1912 +#: js/widgets/sampler.js:814 +#.TRANS: double flat is a music term related to pitch +msgid "double flat" msgstr "" -#: js/turtledefs.js:593 -msgid "Save your project to as a Lilypond file." +#: js/piemenus.js:2864 +#: js/utils/musicutils.js:1006 +#: js/blocks/PitchBlocks.js:1385 +#.TRANS: unison is a music term related to intervals +#.TRANS: unison means the note is the same as the current note +msgid "unison" msgstr "" -#: js/turtledefs.js:604 -msgid "Load samples from server" +#: js/piemenus.js:3018 +#: js/piemenus.js:3091 +#: js/utils/musicutils.js:1014 +#: js/utils/musicutils.js:1189 +#: js/utils/musicutils.js:1326 +#.TRANS: major is a music term related to intervals and mode +msgid "major" msgstr "" -#: js/turtledefs.js:605 -msgid "This button opens a viewer for loading example projects." +#: js/piemenus.js:3018 +#: js/piemenus.js:3091 +#: js/utils/musicutils.js:1032 +#.TRANS: modal scale for music +msgid "ionian" msgstr "" -#: js/turtledefs.js:611 -msgid "Palette buttons" +#: js/piemenus.js:3020 +#: js/piemenus.js:3095 +#: js/utils/musicutils.js:1012 +#: js/utils/musicutils.js:1190 +#: js/utils/musicutils.js:1323 +#.TRANS: minor is a music term related to intervals and mode +msgid "minor" msgstr "" -#: js/turtledefs.js:612 -msgid "This toolbar contains the palette buttons including Rhythm Pitch Tone Action and more." +#: js/piemenus.js:3020 +#: js/piemenus.js:3095 +#: js/utils/musicutils.js:1042 +#.TRANS: modal scale for music +msgid "aeolian" msgstr "" -#: js/turtledefs.js:614 -msgid "Click to show the palettes of blocks and drag blocks from the palettes onto the canvas to use them." +#: js/piemenus.js:3410 +msgid "Duplicate" msgstr "" -#: js/turtledefs.js:620 -msgid "Cartesian/Polar" +#: js/piemenus.js:3412 +msgid "Move to trash" msgstr "" -#: js/turtledefs.js:621 -msgid "Show or hide a coordinate grid." +#: js/piemenus.js:3413 +#: js/widgets/timbre.js:968 +#: planet/js/StringHelper.js:69 +msgid "Close" msgstr "" -#: js/turtledefs.js:627 -msgid "Clear the screen and return the mice to their initial positions." +#: js/piemenus.js:3419 +msgid "Save stack" msgstr "" -#: js/turtledefs.js:633 -msgid "Collapse the graphics window." +#: js/piemenus.js:3449 +msgid "In order to copy a sample, you must reload the widget, import the sample again, and export it." msgstr "" -#: js/turtledefs.js:638 -#: js/activity.js:4256 -#: js/activity.js:4256 -msgid "Home" +#: js/piemenus.js:3812 +msgid "You have chosen key " msgstr "" -#: js/turtledefs.js:639 -msgid "Return all blocks to the center of the screen." +#: js/piemenus.js:3816 +msgid " for your pitch preview." msgstr "" -#: js/turtledefs.js:644 -msgid "Show/hide blocks" +#: js/turtle-singer.js:1363 +#.TRANS: partials are weighted components in a harmonic series +msgid "You must have at least one Partial block inside of a Weighted-partial block" msgstr "" -#: js/turtledefs.js:645 -msgid "Hide or show the blocks and the palettes." +#: js/turtle-singer.js:2077 +msgid "synth cannot play chords." msgstr "" -#: js/turtledefs.js:650 -msgid "Expand/collapse collapsable blocks" +#: js/utils/musicutils.js:505 +#: js/utils/musicutils.js:645 +#: js/widgets/pitchdrummatrix.js:228 +#: js/widgets/musickeyboard.js:2885 +msgid "rest" msgstr "" -#: js/turtledefs.js:651 -msgid "Expand or collapse start and action stacks." +#: js/utils/musicutils.js:689 +msgid "Perfect unison" msgstr "" -#: js/turtledefs.js:658 -#: js/activity.js:4265 -msgid "Decrease block size" +#: js/utils/musicutils.js:689 +msgid "Diminished second" msgstr "" -#: js/turtledefs.js:659 -msgid "Decrease the size of the blocks." +#: js/utils/musicutils.js:690 +msgid "Minor second" msgstr "" -#: js/turtledefs.js:664 -#: js/activity.js:4267 -msgid "Increase block size" +#: js/utils/musicutils.js:690 +msgid "Augmented unison" msgstr "" -#: js/turtledefs.js:665 -msgid "Increase the size of the blocks." +#: js/utils/musicutils.js:691 +msgid "Major second" msgstr "" -#: js/turtledefs.js:670 -msgid "Expand/collapse option toolbar" +#: js/utils/musicutils.js:691 +msgid "Diminished third" msgstr "" -#: js/turtledefs.js:671 -msgid "Click this button to expand or collapse the auxillary toolbar." +#: js/utils/musicutils.js:692 +msgid "Minor third" msgstr "" -#: js/turtledefs.js:676 -msgid "Run slow" +#: js/utils/musicutils.js:692 +msgid "Augmented second" msgstr "" -#: js/turtledefs.js:677 -msgid "Click to run the project in slow mode." +#: js/utils/musicutils.js:693 +msgid "Major third" msgstr "" -#: js/turtledefs.js:683 -msgid "Click to run the project step by step." +#: js/utils/musicutils.js:693 +msgid "Diminished fourth" msgstr "" -#: js/turtledefs.js:690 -msgid "Display statistics about your Music project." +#: js/utils/musicutils.js:694 +msgid "Perfect fourth" msgstr "" -#: js/turtledefs.js:697 -msgid "Delete a selected plugin." +#: js/utils/musicutils.js:694 +msgid "Augmented third" msgstr "" -#: js/turtledefs.js:704 -msgid "Enable scrolling" +#: js/utils/musicutils.js:695 +msgid "Diminished fifth" msgstr "" -#: js/turtledefs.js:705 -msgid "You can scroll the blocks on the canvas." +#: js/utils/musicutils.js:695 +msgid "Augmented fourth" msgstr "" -#: js/turtledefs.js:714 -msgid "Wrap Turtle" +#: js/utils/musicutils.js:696 +msgid "Perfect fifth" msgstr "" -#: js/turtledefs.js:715 -msgid "Turn Turtle wrapping On or Off." +#: js/utils/musicutils.js:696 +msgid "Diminished sixth" msgstr "" -#: js/turtledefs.js:725 -msgid "Restore blocks from the trash." +#: js/utils/musicutils.js:697 +msgid "Minor sixth" msgstr "" -#: js/turtledefs.js:732 -msgid "Switch mode" +#: js/utils/musicutils.js:697 +msgid "Augmented fifth" msgstr "" -#: js/turtledefs.js:733 -msgid "Switch between beginner and advance modes." +#: js/utils/musicutils.js:698 +msgid "Major sixth" msgstr "" -#: js/turtledefs.js:739 -msgid "Select your language preference." +#: js/utils/musicutils.js:698 +msgid "Diminished seventh" msgstr "" -#: js/turtledefs.js:745 -msgid "Keyboard shortcuts" +#: js/utils/musicutils.js:699 +msgid "Minor seventh" msgstr "" -#: js/turtledefs.js:746 -msgid "You can type d to create a do block and r to create a re block etc." +#: js/utils/musicutils.js:699 +msgid "Augmented sixth" msgstr "" -#: js/turtledefs.js:753 -msgid "Show these messages." +#: js/utils/musicutils.js:700 +msgid "Major seventh" msgstr "" -#: js/turtledefs.js:759 -#: js/turtledefs.js:790 -#: js/help.js:335 -msgid "Guide" +#: js/utils/musicutils.js:700 +msgid "Diminished octave" msgstr "" -#: js/turtledefs.js:760 -msgid "A detailed guide to Turtle Blocks is available." +#: js/utils/musicutils.js:701 +msgid "Perfect octave" msgstr "" -#: js/turtledefs.js:764 -msgid "Turtle Blocks Guide" +#: js/utils/musicutils.js:701 +msgid "Augmented seventh" msgstr "" -#: js/turtledefs.js:767 -#: js/turtledefs.js:798 -#: js/help.js:336 -msgid "About" +#: js/utils/musicutils.js:702 +msgid "Minor ninth" msgstr "" -#: js/turtledefs.js:768 -msgid "Turtle Blocks is an open source collection of tools for exploring musical concepts." +#: js/utils/musicutils.js:702 +msgid "Augmented octave" msgstr "" -#: js/turtledefs.js:770 -msgid "A full list of contributors can be found in the Turtle Blocks GitHub repository." +#: js/utils/musicutils.js:703 +msgid "Major ninth" msgstr "" -#: js/turtledefs.js:772 -msgid "Turtle Blocks is licensed under the AGPL." +#: js/utils/musicutils.js:703 +msgid "Diminished tenth" msgstr "" -#: js/turtledefs.js:780 -msgid "Turtle Blocks GitHub repository" +#: js/utils/musicutils.js:704 +msgid "Minor tenth" msgstr "" -#: js/turtledefs.js:783 -#: js/turtledefs.js:814 -#: js/help.js:337 -#: js/help.js:359 -msgid "Congratulations." +#: js/utils/musicutils.js:704 +msgid "Augmented ninth" msgstr "" -#: js/turtledefs.js:784 -msgid "You have finished the tour. Please enjoy Turtle Blocks!" +#: js/utils/musicutils.js:705 +msgid "Major tenth" msgstr "" -#: js/turtledefs.js:791 -msgid "A detailed guide to Music Blocks is available." +#: js/utils/musicutils.js:705 +msgid "Diminished eleventh" msgstr "" -#: js/turtledefs.js:795 -#: js/SaveInterface.js:76 -msgid "Music Blocks Guide" +#: js/utils/musicutils.js:706 +msgid "Perfect eleventh" msgstr "" -#: js/turtledefs.js:799 -msgid "Music Blocks is an open source collection of tools for exploring musical concepts." +#: js/utils/musicutils.js:706 +msgid "Augmented tenth" msgstr "" -#: js/turtledefs.js:801 -msgid "A full list of contributors can be found in the Music Blocks GitHub repository." +#: js/utils/musicutils.js:707 +msgid "Diminished twelfth" msgstr "" -#: js/turtledefs.js:803 -msgid "Music Blocks is licensed under the AGPL." +#: js/utils/musicutils.js:707 +msgid "Augmented eleventh" msgstr "" -#: js/turtledefs.js:811 -msgid "Music Blocks GitHub repository" +#: js/utils/musicutils.js:708 +msgid "Perfect twelfth" msgstr "" -#: js/turtledefs.js:815 -msgid "You have finished the tour. Please enjoy Music Blocks!" +#: js/utils/musicutils.js:708 +msgid "Diminished thirteenth" msgstr "" -#: js/activity.js:369 -msgid "Search for blocks" +#: js/utils/musicutils.js:709 +msgid "Minor thirteenth" msgstr "" -#: js/activity.js:1145 -msgid "Refresh your browser to change to advanced mode." +#: js/utils/musicutils.js:709 +msgid "Augmented fifth, plus an octave" msgstr "" -#: js/activity.js:1150 -msgid "Refresh your browser to change to beginner mode." +#: js/utils/musicutils.js:710 +msgid "Major thirteenth" msgstr "" -#: js/activity.js:1184 -msgid "Catching mice" +#: js/utils/musicutils.js:710 +msgid "Diminished seventh, plus an octave" msgstr "" -#: js/activity.js:1185 -msgid "Cleaning the instruments" +#: js/utils/musicutils.js:838 +#.TRANS: ordinal number. Please keep exactly one space between each number. +msgid "1st 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th" msgstr "" -#: js/activity.js:1186 -msgid "Testing key pieces" +#: js/utils/musicutils.js:1008 +#: js/utils/musicutils.js:1191 +#: js/utils/musicutils.js:1325 +#.TRANS: augmented is a music term related to intervals +msgid "augmented" msgstr "" -#: js/activity.js:1187 -msgid "Sight-reading" +#: js/utils/musicutils.js:1010 +#: js/utils/musicutils.js:1192 +#: js/utils/musicutils.js:1324 +#.TRANS: diminished is a music term related to intervals and mode +msgid "diminished" msgstr "" -#: js/activity.js:1188 -msgid "Combining math and music" +#: js/utils/musicutils.js:1016 +#: js/utils/musicutils.js:1322 +#: js/blocks/IntervalsBlocks.js:649 +#: js/turtleactions/IntervalsActions.js:120 +#: js/turtleactions/IntervalsActions.js:124 +#.TRANS: perfect is a music term related to intervals +msgid "perfect" +msgstr "" + +#: js/utils/musicutils.js:1018 +#.TRANS: twelve semi-tone scale for music +msgid "chromatic" msgstr "" -#: js/activity.js:1189 -msgid "Generating more blocks" +#: js/utils/musicutils.js:1019 +msgid "algerian" msgstr "" -#: js/activity.js:1190 -msgid "Do Re Mi Fa Sol La Ti Do" +#: js/utils/musicutils.js:1020 +msgid "spanish" msgstr "" -#: js/activity.js:1191 -msgid "Tuning string instruments" +#: js/utils/musicutils.js:1022 +#.TRANS: modal scale in music +msgid "octatonic" msgstr "" -#: js/activity.js:1192 -msgid "Pressing random keys" +#: js/utils/musicutils.js:1024 +#.TRANS: harmonic major scale in music +msgid "harmonic major" msgstr "" -#: js/activity.js:1351 -msgid "plugins will be removed upon restart." +#: js/utils/musicutils.js:1026 +#.TRANS: natural minor scales in music +msgid "natural minor" msgstr "" -#: js/activity.js:1360 -msgid "show Cartesian" +#: js/utils/musicutils.js:1028 +#.TRANS: harmonic minor scale in music +msgid "harmonic minor" msgstr "" -#: js/activity.js:1842 -msgid "output tools" +#: js/utils/musicutils.js:1030 +#.TRANS: melodic minor scale in music +msgid "melodic minor" msgstr "" -#: js/activity.js:1845 -msgid "custom note" +#: js/utils/musicutils.js:1034 +#.TRANS: modal scale for music +msgid "dorian" msgstr "" -#: js/activity.js:1848 -msgid "accidental name" +#: js/utils/musicutils.js:1036 +#.TRANS: modal scale for music +msgid "phrygian" msgstr "" -#: js/activity.js:1851 -#: js/PitchBlocks.js:855 -msgid "east indian solfege" +#: js/utils/musicutils.js:1038 +#.TRANS: modal scale for music +msgid "lydian" msgstr "" -#: js/activity.js:1854 -#: js/PitchBlocks.js:869 -msgid "note name" +#: js/utils/musicutils.js:1040 +#.TRANS: modal scale for music +msgid "mixolydian" msgstr "" -#: js/activity.js:1857 -#: js/IntervalsBlocks.js:94 -msgid "temperament name" +#: js/utils/musicutils.js:1044 +#.TRANS: modal scale for music +msgid "locrian" msgstr "" -#: js/activity.js:1863 -msgid "chord name" +#: js/utils/musicutils.js:1046 +#.TRANS: minor jazz scale for music +msgid "jazz minor" msgstr "" -#: js/activity.js:1869 -msgid "filter type" +#: js/utils/musicutils.js:1048 +#.TRANS: bebop scale for music +msgid "bebop" msgstr "" -#: js/activity.js:1872 -msgid "oscillator type" +#: js/utils/musicutils.js:1049 +msgid "arabic" msgstr "" -#: js/activity.js:1878 -#: js/DrumBlocks.js:32 -msgid "noise name" +#: js/utils/musicutils.js:1050 +msgid "byzantine" msgstr "" -#: js/activity.js:1881 -#: js/DrumBlocks.js:75 -msgid "drum name" +#: js/utils/musicutils.js:1052 +#.TRANS: musical scale for music by Verdi +msgid "enigmatic" msgstr "" -#: js/activity.js:1884 -#: js/DrumBlocks.js:119 -msgid "effects name" +#: js/utils/musicutils.js:1053 +msgid "ethiopian" msgstr "" -#: js/activity.js:1887 -msgid "wrap mode" +#: js/utils/musicutils.js:1055 +#.TRANS: Ethiopic scale for music +msgid "geez" msgstr "" -#: js/activity.js:1890 -msgid "load file" +#: js/utils/musicutils.js:1056 +msgid "hindu" msgstr "" -#: js/activity.js:2056 -msgid "This block is deprecated." +#: js/utils/musicutils.js:1057 +msgid "hungarian" msgstr "" -#: js/activity.js:2058 -msgid "Block cannot be found." +#: js/utils/musicutils.js:1059 +#.TRANS: minor Romanian scale for music +msgid "romanian minor" msgstr "" -#: js/activity.js:2266 -msgid "Saving block artwork" +#: js/utils/musicutils.js:1060 +msgid "spanish gypsy" msgstr "" -#: js/activity.js:2277 -msgid "Erase" +#: js/utils/musicutils.js:1062 +#.TRANS: musical scale for Mid-Eastern music +msgid "maqam" msgstr "" -#: js/activity.js:2301 -#: js/activity.js:2323 -msgid "Paste" +#: js/utils/musicutils.js:1064 +#.TRANS: minor blues scale for music +msgid "minor blues" msgstr "" -#: js/activity.js:2305 -msgid "Save block help" +#: js/utils/musicutils.js:1066 +#.TRANS: major blues scale for music +msgid "major blues" msgstr "" -#: js/activity.js:2390 -msgid "Jumping to the bottom of the page." +#: js/utils/musicutils.js:1067 +msgid "whole tone" msgstr "" -#: js/activity.js:2396 -msgid "Scrolling up." +#: js/utils/musicutils.js:1069 +#.TRANS: pentatonic is a general term that means "five note scale". This scale is typically known as "minor pentatonic" +msgid "minor pentatonic" msgstr "" -#: js/activity.js:2401 -msgid "Scrolling down." +#: js/utils/musicutils.js:1071 +#.TRANS: pentatonic is a general term that means "five note scale". This scale is typically known as "major pentatonic" +msgid "major pentatonic" msgstr "" -#: js/activity.js:2406 -msgid "Extracting block" +#: js/utils/musicutils.js:1072 +msgid "chinese" msgstr "" -#: js/activity.js:2414 -msgid "Moving block up." +#: js/utils/musicutils.js:1073 +msgid "egyptian" msgstr "" -#: js/activity.js:2435 -msgid "Moving block down." +#: js/utils/musicutils.js:1075 +#.TRANS: https://en.wikipedia.org/wiki/Hirajoshi_scale NOTE: There are three different versions of this scale +msgid "hirajoshi" msgstr "" -#: js/activity.js:2456 -msgid "Moving block left." +#: js/utils/musicutils.js:1076 +msgid "Japan" msgstr "" -#: js/activity.js:2473 -msgid "Moving block right." +#: js/utils/musicutils.js:1078 +#.TRANS: https://en.wikipedia.org/wiki/In_scale and https://en.wikipedia.org/wiki/Sakura_Sakura +msgid "in" msgstr "" -#: js/activity.js:2488 -msgid "Jump to home position." +#: js/utils/musicutils.js:1080 +#.TRANS: https://en.wikipedia.org/wiki/Miny%C5%8D_scale +msgid "minyo" msgstr "" -#: js/activity.js:2515 -msgid "Hide blocks" +#: js/utils/musicutils.js:1082 +#.TRANS: Italian mathematician +msgid "fibonacci" msgstr "" -#: js/activity.js:3389 -msgid "Click the run button to run the project." +#: js/utils/musicutils.js:1083 +#: js/utils/musicutils.js:1134 +#: js/utils/musicutils.js:1177 +#: js/utils/musicutils.js:1199 +#: js/utils/synthutils.js:134 +#: js/blocks/IntervalsBlocks.js:1124 +#: js/blocks/ToneBlocks.js:946 +#: js/blocks/VolumeBlocks.js:411 +#: js/blocks/WidgetBlocks.js:399 +#: js/blocks/WidgetBlocks.js:404 +#: js/turtleactions/VolumeActions.js:218 +#: js/widgets/modewidget.js:919 +#.TRANS: customize voice +msgid "custom" msgstr "" -#: js/activity.js:3456 -#: js/SaveInterface.js:131 -#: js/SaveInterface.js:204 -#: js/SaveInterface.js:262 -#: js/SaveInterface.js:389 -#: js/SaveInterface.js:417 -#: js/ProjectStorage.js:27 -#: js/GlobalPlanet.js:467 -#: js/GlobalPlanet.js:469 -#: js/GlobalPlanet.js:495 -#.TRANS: default project title when saving as Lilypond -msgid "My Project" +#: js/utils/musicutils.js:1085 +#: js/utils/musicutils.js:1531 +#: js/blocks/WidgetBlocks.js:176 +#.TRANS: highpass filter +msgid "highpass" msgstr "" -#: js/activity.js:4261 -msgid "Show/hide block" +#: js/utils/musicutils.js:1087 +#: js/utils/musicutils.js:1532 +#.TRANS: lowpass filter +msgid "lowpass" msgstr "" -#: js/activity.js:4263 -msgid "Expand/collapse blocks" +#: js/utils/musicutils.js:1089 +#: js/utils/musicutils.js:1533 +#.TRANS: bandpass filter +msgid "bandpass" msgstr "" -#: js/activity.js:4381 -msgid "Could not parse JSON input." +#: js/utils/musicutils.js:1091 +#: js/utils/musicutils.js:1534 +#.TRANS: high-shelf filter +msgid "highshelf" msgstr "" -#: js/activity.js:4684 -#: js/activity.js:4771 -#: js/activity.js:4821 -msgid "Cannot load project from the file. Please check the file type." +#: js/utils/musicutils.js:1093 +#: js/utils/musicutils.js:1535 +#.TRANS: low-shelf filter +msgid "lowshelf" msgstr "" -#: js/activity.js:5051 -msgid "Invalid parameters" +#: js/utils/musicutils.js:1095 +#: js/utils/musicutils.js:1536 +#.TRANS: notch-shelf filter +msgid "notch" msgstr "" -#: js/turtle-singer.js:1334 -#.TRANS: partials are weighted components in a harmonic series -msgid "You must have at least one Partial block inside of a Weighted-partial block" +#: js/utils/musicutils.js:1097 +#: js/utils/musicutils.js:1537 +#.TRANS: all-pass filter +msgid "allpass" msgstr "" -#: js/turtle-singer.js:2048 -msgid "synth cannot play chords." +#: js/utils/musicutils.js:1099 +#: js/utils/musicutils.js:1538 +#.TRANS: peaking filter +msgid "peaking" msgstr "" -#: js/lilypond.js:614 -msgid "brown rat" +#: js/utils/musicutils.js:1100 +#: js/utils/musicutils.js:1546 +#: js/utils/synthutils.js:126 +#: js/blocks/PitchBlocks.js:85 +#.TRANS: sine wave +msgid "sine" msgstr "" -#: js/lilypond.js:615 -msgid "mole" +#: js/utils/musicutils.js:1101 +#: js/utils/musicutils.js:1547 +#: js/utils/synthutils.js:128 +#: js/blocks/PitchBlocks.js:39 +#.TRANS: square wave +msgid "square" msgstr "" -#: js/lilypond.js:616 -msgid "chipmunk" +#: js/utils/musicutils.js:1102 +#: js/utils/musicutils.js:1548 +#: js/utils/synthutils.js:132 +#: js/blocks/PitchBlocks.js:62 +#: js/blocks/ToneBlocks.js:39 +#.TRANS: triangle wave +msgid "triangle" msgstr "" -#: js/lilypond.js:617 -msgid "red squirrel" +#: js/utils/musicutils.js:1103 +#: js/utils/musicutils.js:1549 +#: js/utils/synthutils.js:130 +#: js/blocks/PitchBlocks.js:108 +#.TRANS: sawtooth wave +msgid "sawtooth" msgstr "" -#: js/lilypond.js:618 -msgid "guinea pig" +#: js/utils/musicutils.js:1105 +#: js/utils/musicutils.js:1312 +#: js/blocks/PitchBlocks.js:931 +#: js/blocks/PitchBlocks.js:937 +#: js/turtleactions/PitchActions.js:469 +#.TRANS: even numbers +#.TRANS: invert based on even or odd number or musical scale +msgid "even" msgstr "" -#: js/lilypond.js:619 -msgid "capybara" +#: js/utils/musicutils.js:1107 +#: js/utils/musicutils.js:1313 +#: js/blocks/PitchBlocks.js:937 +#: js/turtleactions/PitchActions.js:471 +#.TRANS: odd numbers +msgid "odd" msgstr "" -#: js/lilypond.js:620 -msgid "coypu" +#: js/utils/musicutils.js:1108 +#: js/utils/musicutils.js:1314 +#: js/blocks/PitchBlocks.js:937 +#: js/turtleactions/PitchActions.js:473 +msgid "scalar" msgstr "" -#: js/lilypond.js:621 -msgid "black rat" +#: js/utils/musicutils.js:1109 +#: js/utils/synthutils.js:72 +#: js/blocks/VolumeBlocks.js:47 +#.TRANS: musical instrument +msgid "piano" msgstr "" -#: js/lilypond.js:622 -msgid "grey squirrel" +#: js/utils/musicutils.js:1110 +#: js/utils/synthutils.js:74 +#.TRANS: musical instrument +msgid "violin" msgstr "" -#: js/lilypond.js:623 -msgid "flying squirrel" +#: js/utils/musicutils.js:1111 +#: js/utils/synthutils.js:76 +#.TRANS: viola musical instrument +msgid "viola" msgstr "" -#: js/lilypond.js:624 -msgid "bat" +#: js/utils/musicutils.js:1112 +#: js/utils/synthutils.js:114 +#.TRANS: xylophone musical instrument +msgid "xylophone" msgstr "" -#: js/lilypond.js:757 -#: js/lilypond.js:921 -#: js/lilypond.js:959 -#: js/ActionBlocks.js:1256 -#: js/ExtrasBlocks.js:553 -msgid "start drum" +#: js/utils/musicutils.js:1113 +#: js/utils/synthutils.js:136 +#.TRANS: vibraphone musical instrument +msgid "vibraphone" msgstr "" -#: js/SaveInterface.js:59 -#: js/SaveInterface.js:61 -#: js/SaveInterface.js:93 -msgid "Music Blocks Project" +#: js/utils/musicutils.js:1114 +#: js/utils/synthutils.js:78 +#.TRANS: musical instrument +msgid "cello" msgstr "" -#: js/SaveInterface.js:63 -msgid "This project was created in Music Blocks" +#: js/utils/musicutils.js:1116 +#: js/utils/synthutils.js:82 +#.TRANS: viola musical instrument +msgid "double bass" msgstr "" -#: js/SaveInterface.js:67 -msgid "Music Blocks is a Free/Libre Software application." +#: js/utils/musicutils.js:1117 +#: js/utils/synthutils.js:84 +#: js/widgets/rhythmruler.js:2511 +#.TRANS: musical instrument +msgid "guitar" msgstr "" -#: js/SaveInterface.js:69 -msgid "The source code can be accessed at" +#: js/utils/musicutils.js:1118 +#: js/utils/synthutils.js:86 +#.TRANS: musical instrument +msgid "acoustic guitar" msgstr "" -#: js/SaveInterface.js:72 -msgid "For more information, please consult the" +#: js/utils/musicutils.js:1119 +#: js/utils/synthutils.js:88 +#.TRANS: musical instrument +msgid "flute" msgstr "" -#: js/SaveInterface.js:83 -msgid "Alternatively, open the file in Music Blocks using the Load project button." +#: js/utils/musicutils.js:1120 +#: js/utils/synthutils.js:90 +#.TRANS: musical instrument +msgid "clarinet" msgstr "" -#: js/SaveInterface.js:85 -msgid "Project Code" +#: js/utils/musicutils.js:1121 +#: js/utils/synthutils.js:92 +#.TRANS: musical instrument +msgid "saxophone" msgstr "" -#: js/SaveInterface.js:87 -msgid "This code stores data about the blocks in a project." +#: js/utils/musicutils.js:1122 +#: js/utils/synthutils.js:94 +#.TRANS: musical instrument +msgid "tuba" msgstr "" -#: js/SaveInterface.js:89 -msgid "Show" +#: js/utils/musicutils.js:1123 +#: js/utils/synthutils.js:96 +#.TRANS: musical instrument +msgid "trumpet" msgstr "" -#: js/SaveInterface.js:91 -msgid "Hide" +#: js/utils/musicutils.js:1124 +#: js/utils/synthutils.js:98 +#.TRANS: musical instrument +msgid "oboe" msgstr "" -#: js/SaveInterface.js:197 -#: js/SaveInterface.js:58 -msgid "No description provided" +#: js/utils/musicutils.js:1125 +#: js/utils/synthutils.js:100 +#.TRANS: musical instrument +msgid "trombone" msgstr "" -#: js/SaveInterface.js:332 -msgid "Your recording is in progress." +#: js/utils/musicutils.js:1126 +#: js/utils/synthutils.js:116 +#.TRANS: polytone synthesizer +msgid "electronic synth" msgstr "" -#: js/SaveInterface.js:401 -#.TRANS: File name prompt for save as Lilypond -msgid "File name" +#: js/utils/musicutils.js:1127 +#: js/utils/synthutils.js:118 +#.TRANS: simple monotone synthesizer +msgid "simple 1" msgstr "" -#: js/SaveInterface.js:403 -#: js/StringHelper.js:39 -#.TRANS: Project title prompt for save as Lilypond -msgid "Project title" +#: js/utils/musicutils.js:1128 +msgid "simple 2" msgstr "" -#: js/SaveInterface.js:405 -#.TRANS: Project title prompt for save as Lilypond -msgid "Project author" +#: js/utils/musicutils.js:1129 +msgid "simple 3" msgstr "" -#: js/SaveInterface.js:407 -#.TRANS: MIDI prompt for save as Lilypond -msgid "Include MIDI output?" +#: js/utils/musicutils.js:1130 +msgid "simple 4" msgstr "" -#: js/SaveInterface.js:409 -#.TRANS: Guitar prompt for save as Lilypond -msgid "Include guitar tablature output?" +#: js/utils/musicutils.js:1131 +#: js/utils/synthutils.js:58 +#: js/blocks/DrumBlocks.js:191 +#.TRANS: white noise synthesizer +msgid "white noise" msgstr "" -#: js/SaveInterface.js:411 -#.TRANS: Lilypond is a scripting language for generating sheet music -msgid "Save as Lilypond" +#: js/utils/musicutils.js:1132 +#: js/utils/synthutils.js:60 +#.TRANS: brown noise synthesizer +msgid "brown noise" msgstr "" -#: js/SaveInterface.js:426 -#: js/EnsembleBlocks.js:75 -#: js/EnsembleBlocks.js:154 -#: js/EnsembleBlocks.js:216 -#: js/EnsembleBlocks.js:302 -#: js/EnsembleBlocks.js:348 -#: js/EnsembleBlocks.js:389 -#: js/EnsembleBlocks.js:441 -#: js/EnsembleBlocks.js:490 -#: js/EnsembleBlocks.js:536 -#: js/EnsembleBlocks.js:583 -#: js/EnsembleBlocks.js:637 -#: js/EnsembleBlocks.js:753 -#: js/EnsembleBlocks.js:840 -#: js/EnsembleBlocks.js:899 -#: js/EnsembleBlocks.js:942 -#: js/EnsembleBlocks.js:1212 -#: js/EnsembleBlocks.js:1280 -#.TRANS: default project author when saving as Lilypond -msgid "Mr. Mouse" +#: js/utils/musicutils.js:1133 +#: js/utils/synthutils.js:62 +#.TRANS: pink noise synthesizer +msgid "pink noise" msgstr "" -#: js/SaveInterface.js:573 -msgid "The Lilypond code is copied to clipboard. You can paste it here: " +#: js/utils/musicutils.js:1135 +#: js/utils/synthutils.js:148 +#: js/widgets/rhythmruler.js:2057 +#: js/widgets/rhythmruler.js:2319 +#.TRANS: musical instrument +msgid "snare drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:50 -#: js/RhythmBlockPaletteBlocks.js:232 -#.TRANS: rhythm block -#.TRANS: translate "rhythm1" as rhythm -msgid "rhythm1" +#: js/utils/musicutils.js:1136 +#: js/utils/synthutils.js:150 +#.TRANS: musical instrument +msgid "kick drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:70 -#: js/RhythmBlockPaletteBlocks.js:251 -#: js/RhythmBlockPaletteBlocks.js:484 -#: js/RhythmBlockPaletteBlocks.js:553 -#: js/RhythmBlockPaletteBlocks.js:874 -msgid "number of notes" +#: js/utils/musicutils.js:1137 +#: js/utils/synthutils.js:152 +#.TRANS: musical instrument +msgid "tom tom" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:126 -msgid "polyphonic rhythm" +#: js/utils/musicutils.js:1138 +#: js/utils/synthutils.js:154 +#.TRANS: musical instrument +msgid "floor tom" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:218 -msgid "The Rhythm block is used to generate rhythm patterns." +#: js/utils/musicutils.js:1139 +#: js/utils/synthutils.js:156 +#.TRANS: musical instrument +msgid "bass drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:279 -msgid "1/64 note" +#: js/utils/musicutils.js:1140 +#: js/utils/synthutils.js:158 +#.TRANS: a drum made from an inverted cup +msgid "cup drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:303 -msgid "1/32 note" +#: js/utils/musicutils.js:1141 +#: js/utils/synthutils.js:160 +#.TRANS: musical instrument +msgid "darbuka drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:331 -msgid "1/16 note" +#: js/utils/musicutils.js:1142 +#: js/utils/synthutils.js:164 +#.TRANS: musical instrument +msgid "hi hat" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:359 -msgid "eighth note" +#: js/utils/musicutils.js:1143 +#: js/utils/synthutils.js:166 +#.TRANS: a small metal bell +msgid "ride bell" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:387 -msgid "quarter note" +#: js/utils/musicutils.js:1144 +#: js/utils/synthutils.js:168 +#.TRANS: musical instrument +msgid "cow bell" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:415 -msgid "half note" +#: js/utils/musicutils.js:1145 +msgid "japanese drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:443 -msgid "whole note" +#: js/utils/musicutils.js:1146 +#: js/utils/synthutils.js:174 +#.TRANS: musical instrument +msgid "japanese bell" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:481 -#: js/RhythmBlockPaletteBlocks.js:550 -#: js/RhythmBlockPaletteBlocks.js:601 -#.TRANS: A tuplet is a note value divided into irregular time values. -msgid "tuplet" +#: js/utils/musicutils.js:1147 +#: js/utils/synthutils.js:170 +#.TRANS: musical instrument +msgid "triangle bell" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:767 -msgid "septuplet" +#: js/utils/musicutils.js:1148 +#: js/utils/synthutils.js:172 +#.TRANS: musical instrument +msgid "finger cymbals" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:795 -msgid "quintuplet" +#: js/utils/musicutils.js:1149 +#: js/utils/synthutils.js:176 +#.TRANS: a musically tuned set of bells +msgid "chime" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:823 -msgid "triplet" +#: js/utils/musicutils.js:1150 +#: js/utils/synthutils.js:178 +#.TRANS: a musical instrument +msgid "gong" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:850 -msgid "simple tuplet" +#: js/utils/musicutils.js:1151 +#: js/utils/synthutils.js:180 +#.TRANS: sound effect +msgid "clang" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:860 -msgid "Tuplets are a collection of notes that get scaled to a specific duration." +#: js/utils/musicutils.js:1152 +#: js/utils/synthutils.js:182 +#.TRANS: sound effect +msgid "crash" msgstr "" -#: js/WidgetBlocks.js:71 -#.TRANS: sound envelope (ADSR) -msgid "envelope" +#: js/utils/musicutils.js:1153 +#: js/utils/synthutils.js:184 +#.TRANS: sound effect +msgid "bottle" msgstr "" -#: js/WidgetBlocks.js:79 -#.TRANS: Attack time is the time taken for initial run-up of level from nil to peak, beginning when the key is first pressed. -msgid "attack" +#: js/utils/musicutils.js:1154 +#: js/utils/synthutils.js:186 +#.TRANS: sound effect +msgid "clap" msgstr "" -#: js/WidgetBlocks.js:81 -#.TRANS: Decay time is the time taken for the subsequent run down from the attack level to the designated sustain level. -msgid "decay" +#: js/utils/musicutils.js:1155 +#: js/utils/synthutils.js:188 +#.TRANS: sound effect +msgid "slap" msgstr "" -#: js/WidgetBlocks.js:83 -#.TRANS: Sustain level is the level during the main sequence of the sound's duration, until the key is released. -msgid "sustain" +#: js/utils/musicutils.js:1156 +#: js/utils/synthutils.js:190 +#.TRANS: sound effect +msgid "splash" msgstr "" -#: js/WidgetBlocks.js:85 -#.TRANS: Release time is the time taken for the level to decay from the sustain level to zero after the key is released. -msgid "release" +#: js/utils/musicutils.js:1157 +#: js/utils/synthutils.js:192 +#.TRANS: sound effect +msgid "bubbles" msgstr "" -#: js/WidgetBlocks.js:96 -msgid "Attack value should be from 0 to 100." +#: js/utils/musicutils.js:1158 +#: js/utils/synthutils.js:194 +#.TRANS: sound effect +msgid "raindrop" msgstr "" -#: js/WidgetBlocks.js:99 -msgid "Decay value should be from 0 to 100." +#: js/utils/musicutils.js:1159 +#: js/utils/synthutils.js:196 +#.TRANS: animal sound effect +msgid "cat" msgstr "" -#: js/WidgetBlocks.js:102 -msgid "Sustain value should be from 0 to 100." +#: js/utils/musicutils.js:1160 +#: js/utils/synthutils.js:198 +#.TRANS: animal sound effect +msgid "cricket" msgstr "" -#: js/WidgetBlocks.js:105 -msgid "Release value should be from 0-100." +#: js/utils/musicutils.js:1161 +#: js/utils/synthutils.js:200 +#.TRANS: animal sound effect +msgid "dog" msgstr "" -#: js/WidgetBlocks.js:121 -msgid "You are adding multiple envelope blocks." +#: js/utils/musicutils.js:1163 +#: js/utils/synthutils.js:102 +#.TRANS: musical instrument +msgid "banjo" msgstr "" -#: js/WidgetBlocks.js:144 -#.TRANS: a filter removes some unwanted components from a signal -msgid "filter" +#: js/utils/musicutils.js:1164 +#: js/utils/synthutils.js:104 +#.TRANS: musical instrument +msgid "koto" msgstr "" -#: js/WidgetBlocks.js:149 -#: js/musicutils.js:706 -#: js/musicutils.js:1105 -#.TRANS: highpass filter -msgid "highpass" +#: js/utils/musicutils.js:1165 +#: js/utils/synthutils.js:106 +#.TRANS: musical instrument +msgid "dulcimer" msgstr "" -#: js/WidgetBlocks.js:152 -#: js/ToneBlocks.js:42 -#: js/timbre.js:1558 -#: js/timbre.js:1808 -#.TRANS: type of filter, e.g., lowpass, highpass, etc. -#.TRANS: there are different types (sine, triangle, square...) of oscillators. -msgid "type" +#: js/utils/musicutils.js:1166 +#: js/utils/synthutils.js:108 +#.TRANS: musical instrument +msgid "electric guitar" msgstr "" -#: js/WidgetBlocks.js:154 -#: js/timbre.js:1818 -#.TRANS: rolloff is the steepness of a change in frequency. -msgid "rolloff" +#: js/utils/musicutils.js:1167 +#: js/utils/synthutils.js:110 +#.TRANS: musical instrument +msgid "bassoon" msgstr "" -#: js/WidgetBlocks.js:155 -#: js/MediaBlocks.js:692 -#: js/temperament.js:382 -#: js/temperament.js:417 -#: js/temperament.js:477 -#: js/temperament.js:485 -#: js/temperament.js:1348 -#: js/timbre.js:1842 -msgid "frequency" +#: js/utils/musicutils.js:1168 +#: js/utils/synthutils.js:112 +#.TRANS: musical instrument +msgid "celeste" msgstr "" -#: js/WidgetBlocks.js:179 -#.TRANS: rolloff is the steepness of a change in frequency. -msgid "Rolloff value should be either -12, -24, -48, or -96 decibels/octave." +#: js/utils/musicutils.js:1170 +#: js/widgets/temperament.js:787 +#.TRANS: musical temperament +msgid "equal" msgstr "" -#: js/WidgetBlocks.js:211 -msgid "The Temperament tool is used to define custom tuning." +#: js/utils/musicutils.js:1172 +#.TRANS: musical temperament +msgid "Pythagorean" msgstr "" -#: js/WidgetBlocks.js:277 -#: js/sampler.js:329 -msgid "Upload a sample and adjust its pitch center." +#: js/utils/musicutils.js:1174 +#.TRANS: musical temperament +msgid "just intonation" msgstr "" -#: js/WidgetBlocks.js:284 -#.TRANS: the speed at music is should be played. -msgid "sampler" +#: js/utils/musicutils.js:1176 +#.TRANS: musical temperament +msgid "meantone" msgstr "" -#: js/WidgetBlocks.js:329 -#: js/WidgetBlocks.js:334 -#: js/IntervalsBlocks.js:928 -#: js/VolumeBlocks.js:411 -#: js/ToneBlocks.js:946 -#: js/VolumeActions.js:218 -#: js/musicutils.js:704 -#: js/musicutils.js:755 -#: js/musicutils.js:798 -#: js/musicutils.js:820 -#: js/musicutils.js:1136 -#: js/synthutils.js:118 -#: js/modewidget.js:919 -#.TRANS: customize voice -msgid "custom" +#: js/utils/musicutils.js:1193 +msgid "major 7th" msgstr "" -#: js/WidgetBlocks.js:432 -msgid "The Meter block opens a tool to select strong beats for the meter." +#: js/utils/musicutils.js:1194 +msgid "minor 7th" msgstr "" -#: js/WidgetBlocks.js:473 -msgid "The oscilloscope block opens a tool to visualize waveforms." +#: js/utils/musicutils.js:1195 +msgid "dominant 7th" msgstr "" -#: js/WidgetBlocks.js:478 -msgid "oscilloscope" +#: js/utils/musicutils.js:1196 +msgid "minor-major 7th" msgstr "" -#: js/WidgetBlocks.js:530 -msgid "The Custom mode block opens a tool to explore musical mode (the spacing of the notes in a scale)." +#: js/utils/musicutils.js:1197 +msgid "fully-diminished 7th" msgstr "" -#: js/WidgetBlocks.js:536 -#.TRANS: musical mode is the pattern of half-steps in an octave, e.g., Major or Minor modes -msgid "custom mode" +#: js/utils/musicutils.js:1198 +msgid "half-diminished 7th" msgstr "" -#: js/WidgetBlocks.js:570 -msgid "The Tempo block opens a metronome to visualize the beat." +#: js/utils/musicutils.js:1557 +#: js/utils/musicutils.js:1569 +msgid "Equal (12EDO)" msgstr "" -#: js/WidgetBlocks.js:617 -msgid "The Arpeggio Widget is used to compose chord sequences." +#: js/utils/musicutils.js:1558 +#: js/utils/musicutils.js:1570 +msgid "5-limit Just Intonation" msgstr "" -#: js/WidgetBlocks.js:623 -#: js/IntervalsBlocks.js:683 -msgid "arpeggio" +#: js/utils/musicutils.js:1559 +#: js/utils/musicutils.js:1571 +msgid "Pythagorean (3-limit JI)" msgstr "" -#: js/WidgetBlocks.js:677 -msgid "The Pitch drum matrix is used to map pitches to drum sounds." +#: js/utils/musicutils.js:1560 +#: js/utils/musicutils.js:1561 +#: js/utils/musicutils.js:1572 +#: js/utils/musicutils.js:1573 +msgid "Meantone" msgstr "" -#: js/WidgetBlocks.js:682 -#.TRANS: makes a mapping between pitches and drum sounds -msgid "pitch-drum mapper" +#: js/utils/musicutils.js:1574 +msgid "Custom" msgstr "" -#: js/WidgetBlocks.js:724 -msgid "You must have at least one pitch block and one drum block in the matrix." +#: js/utils/musicutils.js:5387 +#: js/utils/musicutils.js:5430 +msgid "current" msgstr "" -#: js/WidgetBlocks.js:746 -msgid "The Pitch slider tool to is used to generate pitches at selected frequencies." +#: js/utils/musicutils.js:5390 +#: js/utils/musicutils.js:5421 +msgid "next" msgstr "" -#: js/WidgetBlocks.js:751 -#.TRANS: widget to generate pitches using a slider -msgid "pitch slider" +#: js/utils/musicutils.js:5393 +#: js/utils/musicutils.js:5426 +msgid "previous" msgstr "" -#: js/WidgetBlocks.js:788 -msgid "chromatic keyboard" +#: js/utils/synthutils.js:120 +#.TRANS: simple monotone synthesizer +msgid "simple-2" msgstr "" -#: js/WidgetBlocks.js:815 -#: js/WidgetBlocks.js:874 -#.TRANS: widget to generate pitches using a slider -msgid "music keyboard" +#: js/utils/synthutils.js:122 +#.TRANS: simple monotone synthesizer +msgid "simple-3" msgstr "" -#: js/WidgetBlocks.js:859 -#: js/WidgetBlocks.js:866 -msgid "The Music keyboard block opens a piano keyboard that can be used to create notes." +#: js/utils/synthutils.js:124 +#.TRANS: simple monotone synthesizer +msgid "simple-4" msgstr "" -#: js/WidgetBlocks.js:910 -msgid "The Pitch staircase tool to is used to generate pitches from a given ratio." +#: js/utils/synthutils.js:162 +#.TRANS: musical instrument +msgid "taiko" msgstr "" -#: js/WidgetBlocks.js:917 -#.TRANS: generate a progressive sequence of pitches -msgid "pitch staircase" +#: js/blocks/ActionBlocks.js:58 +msgid "The Return block will return a value from an action." msgstr "" -#: js/WidgetBlocks.js:982 -msgid "The Rhythm Maker block opens a tool to create drum machines." +#: js/blocks/ActionBlocks.js:75 +msgid "return" msgstr "" -#: js/WidgetBlocks.js:1036 -msgid "G major scale" +#: js/blocks/ActionBlocks.js:128 +msgid "The Return to URL block will return a value to a webpage." msgstr "" -#: js/WidgetBlocks.js:1064 -msgid "C major scale" +#: js/blocks/ActionBlocks.js:145 +msgid "return to URL" msgstr "" -#: js/WidgetBlocks.js:1097 -msgid "The Phrase Maker block opens a tool to create musical phrases." +#: js/blocks/ActionBlocks.js:233 +#: js/blocks/ActionBlocks.js:290 +#: js/blocks/ActionBlocks.js:501 +#: js/blocks/ActionBlocks.js:688 +msgid "The Calculate block returns a value calculated by an action." msgstr "" -#: js/WidgetBlocks.js:1104 -#.TRANS: assigns pitch to a sequence of beats to generate a melody -msgid "phrase maker" +#: js/blocks/ActionBlocks.js:251 +#: js/blocks/ActionBlocks.js:517 +#: js/blocks/ActionBlocks.js:707 +msgid "calculate" msgstr "" -#: js/WidgetBlocks.js:1168 -msgid "You must have at least one pitch block and one rhythm block in the matrix." +#: js/blocks/ActionBlocks.js:376 +#: js/blocks/ActionBlocks.js:593 +#: js/blocks/ActionBlocks.js:942 +#: js/blocks/ActionBlocks.js:1389 +#.TRANS: do is the do something or take an action. +msgid "The Do block is used to initiate an action." msgstr "" -#: js/WidgetBlocks.js:1220 -msgid "The Status block opens a tool for inspecting the status of Music Blocks as it is running." +#: js/blocks/ActionBlocks.js:390 +#: js/blocks/ActionBlocks.js:610 +#: js/blocks/ActionBlocks.js:959 +#: js/blocks/ActionBlocks.js:1048 +#: js/blocks/MeterBlocks.js:769 +msgid "do1" msgstr "" -#: js/IntervalsBlocks.js:45 -msgid "set temperament" +#: js/blocks/ActionBlocks.js:390 +#: js/blocks/ActionBlocks.js:610 +#: js/blocks/ActionBlocks.js:959 +#: js/blocks/ActionBlocks.js:1048 +#: js/blocks/FlowBlocks.js:742 +#: js/blocks/FlowBlocks.js:822 +#: js/blocks/MeterBlocks.js:769 +msgid "do" msgstr "" -#: js/IntervalsBlocks.js:63 -#: js/MediaBlocks.js:746 -#: js/PitchBlocks.js:657 -#: js/PitchBlocks.js:933 -#: js/PitchBlocks.js:972 -#: js/PitchBlocks.js:1005 -#: js/PitchBlocks.js:1166 -#: js/PitchBlocks.js:1679 -#: js/PitchBlocks.js:1720 -#: js/PitchBlocks.js:1827 -#: js/ToneBlocks.js:1025 -#.TRANS: adjusts the shift up or down by one octave (twelve half-steps in the interval between two notes, one having twice or half the frequency in Hz of the other.) -msgid "octave" +#: js/blocks/ActionBlocks.js:791 +#: js/blocks/ActionBlocks.js:865 +msgid "The Arg block contains the value of an argument passed to an action." msgstr "" -#: js/IntervalsBlocks.js:99 -msgid "The Temperament name block is used to select a tuning method." +#: js/blocks/ActionBlocks.js:806 +#: js/blocks/ActionBlocks.js:878 +msgid "arg" msgstr "" -#: js/IntervalsBlocks.js:161 -msgid "doubly" +#: js/blocks/ActionBlocks.js:836 +#: js/blocks/ActionBlocks.js:900 +#: js/blocks/ActionBlocks.js:908 +msgid "Invalid argument" msgstr "" -#: js/IntervalsBlocks.js:166 -msgid "The Doubly block will double the size of an interval." +#: js/blocks/ActionBlocks.js:944 +msgid "In the example, it is used with the One of block to choose a random phase." msgstr "" -#: js/IntervalsBlocks.js:262 -msgid "interval number" +#: js/blocks/ActionBlocks.js:1019 +#: js/blocks/ActionBlocks.js:1026 +msgid "The Listen block is used to listen for an event such as a mouse click." msgstr "" -#: js/IntervalsBlocks.js:330 -#.TRANS: measure the distance between two pitches in semi-tones -msgid "semi-tone interval measure" +#: js/blocks/ActionBlocks.js:1028 +msgid "When the event happens, an action is taken." msgstr "" -#: js/IntervalsBlocks.js:397 -#: js/IntervalsBlocks.js:513 -msgid "You must use two pitch blocks when measuring an interval." +#: js/blocks/ActionBlocks.js:1045 +msgid "on" msgstr "" -#: js/IntervalsBlocks.js:439 -msgid "The Scalar interval block measures the distance between two notes in the current key and mode." +#: js/blocks/ActionBlocks.js:1048 +#: js/blocks/ActionBlocks.js:1049 +#: js/blocks/ActionBlocks.js:1153 +msgid "event" msgstr "" -#: js/IntervalsBlocks.js:445 -#.TRANS: measure the distance between two pitches in steps of musical scale -msgid "scalar interval measure" +#: js/blocks/ActionBlocks.js:1133 +msgid "The Broadcast block is used to trigger an event." msgstr "" -#: js/IntervalsBlocks.js:592 -#: js/musicutils.js:637 -#: js/musicutils.js:908 -#.TRANS: perfect is a music term related to intervals -msgid "perfect" +#: js/blocks/ActionBlocks.js:1151 +msgid "broadcast" msgstr "" -#: js/IntervalsBlocks.js:621 -msgid "In the figure, we add sol# to sol." +#: js/blocks/ActionBlocks.js:1208 +msgid "Each Start block is a separate voice." msgstr "" -#: js/IntervalsBlocks.js:627 -#: js/OrnamentBlocks.js:220 -#.TRANS: calculate a relative step between notes based on semi-tones -msgid "semi-tone interval" +#: js/blocks/ActionBlocks.js:1304 +msgid "It is often used for storing a phrase of music that is repeated." msgstr "" -#: js/IntervalsBlocks.js:676 -msgid "The output of the example is: do, mi, sol, sol, ti, mi" +#: js/blocks/ActionBlocks.js:1495 +msgid "define temperament" msgstr "" -#: js/IntervalsBlocks.js:735 -msgid "The Chord block calculates common chords." +#: js/blocks/BooleanBlocks.js:44 +msgid "The Not block is the logical not operator." msgstr "" -#: js/IntervalsBlocks.js:737 -msgid "In the figure, we generate a C-major chord." +#: js/blocks/BooleanBlocks.js:62 +msgid "not" msgstr "" -#: js/IntervalsBlocks.js:742 -msgid "chord" +#: js/blocks/BooleanBlocks.js:134 +msgid "The And block is the logical and operator." msgstr "" -#: js/IntervalsBlocks.js:794 -msgid "The Ratio Interval block calculates an interval based on a ratio." +#: js/blocks/BooleanBlocks.js:152 +msgid "and" msgstr "" -#: js/IntervalsBlocks.js:799 -msgid "ratio interval" +#: js/blocks/BooleanBlocks.js:218 +msgid "The Or block is the logical or operator." msgstr "" -#: js/IntervalsBlocks.js:868 -msgid "In the figure, we add la to sol." +#: js/blocks/BooleanBlocks.js:236 +msgid "or" msgstr "" -#: js/IntervalsBlocks.js:924 -#.TRANS: define a custom mode -msgid "define mode" +#: js/blocks/BooleanBlocks.js:302 +msgid "The XOR block is the logical XOR operator." msgstr "" -#: js/IntervalsBlocks.js:977 -msgid "movable Do" +#: js/blocks/BooleanBlocks.js:320 +msgid "xor" msgstr "" -#: js/IntervalsBlocks.js:1028 -#.TRANS: mode length is the number of notes in the mode, e.g., 7 for major and minor scales; 12 for chromatic scales -msgid "mode length" +#: js/blocks/BooleanBlocks.js:808 +msgid "The Equal block returns True if the two numbers are equal." msgstr "" -#: js/IntervalsBlocks.js:1037 -msgid "The Mode length block is the number of notes in the current scale." +#: js/blocks/BooleanBlocks.js:909 +msgid "The Not-equal-to block returns True if the two numbers are not equal to each other." msgstr "" -#: js/IntervalsBlocks.js:1039 -msgid "Most Western scales have 7 notes." +#: js/blocks/BooleanBlocks.js:1008 +msgid "The Boolean block is used to specify true or false." msgstr "" -#: js/IntervalsBlocks.js:1088 -#.TRANS: the mode in music is 'major', 'minor', etc. -msgid "current mode" +#: js/blocks/BoxesBlocks.js:53 +#: js/blocks/BoxesBlocks.js:59 +msgid "The Add-to block is used to add to the value stored in a box." msgstr "" -#: js/IntervalsBlocks.js:1141 -#.TRANS: the key is a group of pitches with which a music composition is created -msgid "current key" +#: js/blocks/BoxesBlocks.js:61 +msgid "It can also be used with other blocks such as Color and Pen size." msgstr "" -#: js/IntervalsBlocks.js:1193 -#: js/IntervalsBlocks.js:1238 -#.TRANS: set the key and mode, e.g. C Major -msgid "set key" +#: js/blocks/BoxesBlocks.js:73 +msgid "add" msgstr "" -#: js/IntervalsBlocks.js:1247 -#: js/IntervalsBlocks.js:1253 -msgid "The Set key block is used to set the key and mode," +#: js/blocks/BoxesBlocks.js:75 +#: js/widgets/temperament.js:857 +msgid "to" msgstr "" -#: js/IntervalsBlocks.js:1253 -msgid "eg C Major" +#: js/blocks/BoxesBlocks.js:75 +#: js/blocks/BoxesBlocks.js:595 +#: js/blocks/HeapBlocks.js:544 +msgid "value1" msgstr "" -#: js/IntervalsBlocks.js:1266 -#: js/DictBlocks.js:215 -#: js/DictBlocks.js:216 -#: js/DictBlocks.js:289 -#: js/DictBlocks.js:290 -#: js/DictBlocks.js:357 -#: js/DictBlocks.js:430 -#: js/DictBlocks.js:431 -#.TRANS: key, e.g., C in C Major -msgid "key" +#: js/blocks/BoxesBlocks.js:118 +msgid "Block does not support incrementing." msgstr "" -#: js/ActionBlocks.js:58 -msgid "The Return block will return a value from an action." +#: js/blocks/BoxesBlocks.js:152 +msgid "The Add-1-to block adds one to the value stored in a box." msgstr "" -#: js/ActionBlocks.js:75 -msgid "return" +#: js/blocks/BoxesBlocks.js:163 +msgid "add 1 to" msgstr "" -#: js/ActionBlocks.js:128 -msgid "The Return to URL block will return a value to a webpage." +#: js/blocks/BoxesBlocks.js:211 +msgid "The Subtract-1-from block subtracts one from the value stored in a box." msgstr "" -#: js/ActionBlocks.js:145 -msgid "return to URL" +#: js/blocks/BoxesBlocks.js:222 +msgid "subtract 1 from" msgstr "" -#: js/ActionBlocks.js:233 -#: js/ActionBlocks.js:290 -#: js/ActionBlocks.js:501 -#: js/ActionBlocks.js:688 -msgid "The Calculate block returns a value calculated by an action." +#: js/blocks/BoxesBlocks.js:270 +#: js/blocks/BoxesBlocks.js:387 +msgid "The Box block returns the value stored in a box." msgstr "" -#: js/ActionBlocks.js:251 -#: js/ActionBlocks.js:517 -#: js/ActionBlocks.js:707 -msgid "calculate" +#: js/blocks/BoxesBlocks.js:500 +#: js/blocks/BoxesBlocks.js:576 +msgid "The Store in block will store a value in a box." msgstr "" -#: js/ActionBlocks.js:376 -#: js/ActionBlocks.js:593 -#: js/ActionBlocks.js:942 -#: js/ActionBlocks.js:1389 -#.TRANS: do is the do something or take an action. -msgid "The Do block is used to initiate an action." +#: js/blocks/BoxesBlocks.js:595 +#: js/blocks/EnsembleBlocks.js:391 +#: js/blocks/EnsembleBlocks.js:402 +msgid "name1" msgstr "" -#: js/ActionBlocks.js:390 -#: js/ActionBlocks.js:610 -#: js/ActionBlocks.js:959 -#: js/ActionBlocks.js:1048 -#: js/MeterBlocks.js:769 -msgid "do1" +#: js/blocks/BoxesBlocks.js:652 +msgid "The Box2 block returns the value stored in Box2." msgstr "" -#: js/ActionBlocks.js:390 -#: js/ActionBlocks.js:610 -#: js/ActionBlocks.js:959 -#: js/ActionBlocks.js:1048 -#: js/FlowBlocks.js:742 -#: js/FlowBlocks.js:822 -#: js/MeterBlocks.js:769 -msgid "do" +#: js/blocks/BoxesBlocks.js:703 +msgid "The Store in Box2 block is used to store a value in Box2." msgstr "" -#: js/ActionBlocks.js:791 -#: js/ActionBlocks.js:865 -msgid "The Arg block contains the value of an argument passed to an action." +#: js/blocks/BoxesBlocks.js:715 +msgid "store in box2" msgstr "" -#: js/ActionBlocks.js:806 -#: js/ActionBlocks.js:878 -msgid "arg" +#: js/blocks/BoxesBlocks.js:761 +msgid "The Box1 block returns the value stored in Box1." msgstr "" -#: js/ActionBlocks.js:836 -#: js/ActionBlocks.js:900 -#: js/ActionBlocks.js:908 -msgid "Invalid argument" +#: js/blocks/BoxesBlocks.js:812 +msgid "The Store in Box1 block is used to store a value in Box1." msgstr "" -#: js/ActionBlocks.js:944 -msgid "In the example, it is used with the One of block to choose a random phase." +#: js/blocks/BoxesBlocks.js:826 +msgid "store in box1" msgstr "" -#: js/ActionBlocks.js:1019 -#: js/ActionBlocks.js:1026 -msgid "The Listen block is used to listen for an event such as a mouse click." +#: js/blocks/DictBlocks.js:77 +msgid "show dictionary" msgstr "" -#: js/ActionBlocks.js:1028 -msgid "When the event happens, an action is taken." +#: js/blocks/DictBlocks.js:80 +#: js/blocks/DictBlocks.js:145 +#: js/blocks/DictBlocks.js:216 +#: js/blocks/DictBlocks.js:290 +#: js/blocks/ProgramBlocks.js:396 +#: js/blocks/ProgramBlocks.js:501 +#: js/blocks/ProgramBlocks.js:664 +msgid "My Dictionary" msgstr "" -#: js/ActionBlocks.js:1045 -msgid "on" +#: js/blocks/DictBlocks.js:129 +msgid "The Dictionary block returns a dictionary." msgstr "" -#: js/ActionBlocks.js:1048 -#: js/ActionBlocks.js:1049 -#: js/ActionBlocks.js:1153 -msgid "event" +#: js/blocks/DictBlocks.js:197 +#: js/blocks/DictBlocks.js:339 +msgid "The Get-dict block returns a value in the dictionary for a specified key." msgstr "" -#: js/ActionBlocks.js:1133 -msgid "The Broadcast block is used to trigger an event." +#: js/blocks/DictBlocks.js:212 +#: js/blocks/DictBlocks.js:354 +#.TRANS: retrieve a value from the dictionary with a given key +msgid "get value" msgstr "" -#: js/ActionBlocks.js:1151 -msgid "broadcast" +#: js/blocks/DictBlocks.js:215 +#: js/blocks/DictBlocks.js:216 +#: js/blocks/DictBlocks.js:289 +#: js/blocks/DictBlocks.js:290 +#: js/blocks/DictBlocks.js:357 +#: js/blocks/DictBlocks.js:430 +#: js/blocks/DictBlocks.js:431 +msgid "key2" msgstr "" -#: js/ActionBlocks.js:1208 -msgid "Each Start block is a separate voice." +#: js/blocks/DictBlocks.js:215 +#: js/blocks/DictBlocks.js:216 +#: js/blocks/DictBlocks.js:289 +#: js/blocks/DictBlocks.js:290 +#: js/blocks/DictBlocks.js:357 +#: js/blocks/DictBlocks.js:430 +#: js/blocks/DictBlocks.js:431 +#: js/blocks/IntervalsBlocks.js:1462 +#.TRANS: key, e.g., C in C Major +msgid "key" msgstr "" -#: js/ActionBlocks.js:1304 -msgid "It is often used for storing a phrase of music that is repeated." +#: js/blocks/DictBlocks.js:271 +#: js/blocks/DictBlocks.js:411 +msgid "The Set-dict block sets a value in the dictionary for a specified key." msgstr "" -#: js/ActionBlocks.js:1495 -msgid "define temperament" +#: js/blocks/DictBlocks.js:286 +#: js/blocks/DictBlocks.js:427 +#.TRANS: set a value in the dictionary for a given key +msgid "set value" msgstr "" -#: js/EnsembleBlocks.js:66 +#: js/blocks/EnsembleBlocks.js:66 msgid "mouse index heap" msgstr "" -#: js/EnsembleBlocks.js:68 +#: js/blocks/EnsembleBlocks.js:68 msgid "The Mouse index heap block returns a value in the heap at a specified location for a specified mouse." msgstr "" -#: js/EnsembleBlocks.js:77 -#: js/EnsembleBlocks.js:1080 +#: js/blocks/EnsembleBlocks.js:77 +#: js/blocks/EnsembleBlocks.js:1080 msgid "mouse name" msgstr "" -#: js/EnsembleBlocks.js:77 -#: js/EnsembleBlocks.js:92 -#: js/HeapBlocks.js:544 +#: js/blocks/EnsembleBlocks.js:77 +#: js/blocks/EnsembleBlocks.js:92 +#: js/blocks/HeapBlocks.js:544 #.TRANS: value1 is a numeric value (JAPANESE ONLY) msgid "index" msgstr "" -#: js/EnsembleBlocks.js:80 +#: js/blocks/EnsembleBlocks.js:80 msgid "turtle index heap" msgstr "" -#: js/EnsembleBlocks.js:82 +#: js/blocks/EnsembleBlocks.js:82 msgid "The Turtle index heap block returns a value in the heap at a specified location for a specified turtle." msgstr "" -#: js/EnsembleBlocks.js:90 -#: js/EnsembleBlocks.js:167 -#: js/EnsembleBlocks.js:230 -#: js/EnsembleBlocks.js:316 -#: js/EnsembleBlocks.js:362 -#: js/EnsembleBlocks.js:400 -#: js/EnsembleBlocks.js:454 -#: js/EnsembleBlocks.js:504 -#: js/EnsembleBlocks.js:550 -#: js/EnsembleBlocks.js:597 -#: js/EnsembleBlocks.js:651 -#: js/EnsembleBlocks.js:763 -#: js/EnsembleBlocks.js:854 -#: js/EnsembleBlocks.js:915 -#: js/EnsembleBlocks.js:955 -#: js/EnsembleBlocks.js:1219 -#: js/EnsembleBlocks.js:1293 +#: js/blocks/EnsembleBlocks.js:90 +#: js/blocks/EnsembleBlocks.js:167 +#: js/blocks/EnsembleBlocks.js:230 +#: js/blocks/EnsembleBlocks.js:316 +#: js/blocks/EnsembleBlocks.js:362 +#: js/blocks/EnsembleBlocks.js:400 +#: js/blocks/EnsembleBlocks.js:454 +#: js/blocks/EnsembleBlocks.js:504 +#: js/blocks/EnsembleBlocks.js:550 +#: js/blocks/EnsembleBlocks.js:597 +#: js/blocks/EnsembleBlocks.js:651 +#: js/blocks/EnsembleBlocks.js:763 +#: js/blocks/EnsembleBlocks.js:854 +#: js/blocks/EnsembleBlocks.js:915 +#: js/blocks/EnsembleBlocks.js:955 +#: js/blocks/EnsembleBlocks.js:1219 +#: js/blocks/EnsembleBlocks.js:1293 #.TRANS: Yertle is the name of a turtle. msgid "Yertle" msgstr "" -#: js/EnsembleBlocks.js:92 -#: js/EnsembleBlocks.js:1089 +#: js/blocks/EnsembleBlocks.js:92 +#: js/blocks/EnsembleBlocks.js:1089 msgid "turtle name" msgstr "" -#: js/EnsembleBlocks.js:122 -#: js/EnsembleBlocks.js:1197 -#: js/HeapBlocks.js:474 -#: js/HeapBlocks.js:572 +#: js/blocks/EnsembleBlocks.js:122 +#: js/blocks/EnsembleBlocks.js:1197 +#: js/blocks/HeapBlocks.js:474 +#: js/blocks/HeapBlocks.js:572 msgid "Index must be > 0." msgstr "" -#: js/EnsembleBlocks.js:127 -#: js/HeapBlocks.js:479 -#: js/HeapBlocks.js:577 +#: js/blocks/EnsembleBlocks.js:127 +#: js/blocks/HeapBlocks.js:479 +#: js/blocks/HeapBlocks.js:577 msgid "Maximum heap size is 1000." msgstr "" -#: js/EnsembleBlocks.js:145 +#: js/blocks/EnsembleBlocks.js:145 msgid "stop mouse" msgstr "" -#: js/EnsembleBlocks.js:147 +#: js/blocks/EnsembleBlocks.js:147 msgid "The Stop mouse block stops the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:158 +#: js/blocks/EnsembleBlocks.js:158 msgid "stop turtle" msgstr "" -#: js/EnsembleBlocks.js:160 +#: js/blocks/EnsembleBlocks.js:160 msgid "The Stop turtle block stops the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:184 -#: js/EnsembleBlocks.js:247 -#: js/EnsembleBlocks.js:413 -#: js/EnsembleBlocks.js:468 -#: js/EnsembleBlocks.js:706 -#: js/EnsembleBlocks.js:808 -#: js/EnsembleBlocks.js:870 -#: js/EnsembleBlocks.js:1190 -#: js/EnsembleBlocks.js:1253 +#: js/blocks/EnsembleBlocks.js:184 +#: js/blocks/EnsembleBlocks.js:247 +#: js/blocks/EnsembleBlocks.js:413 +#: js/blocks/EnsembleBlocks.js:468 +#: js/blocks/EnsembleBlocks.js:706 +#: js/blocks/EnsembleBlocks.js:808 +#: js/blocks/EnsembleBlocks.js:870 +#: js/blocks/EnsembleBlocks.js:1190 +#: js/blocks/EnsembleBlocks.js:1253 msgid "Cannot find mouse" msgstr "" -#: js/EnsembleBlocks.js:186 -#: js/EnsembleBlocks.js:249 -#: js/EnsembleBlocks.js:415 -#: js/EnsembleBlocks.js:470 -#: js/EnsembleBlocks.js:708 -#: js/EnsembleBlocks.js:810 -#: js/EnsembleBlocks.js:872 -#: js/EnsembleBlocks.js:1192 -#: js/EnsembleBlocks.js:1255 +#: js/blocks/EnsembleBlocks.js:186 +#: js/blocks/EnsembleBlocks.js:249 +#: js/blocks/EnsembleBlocks.js:415 +#: js/blocks/EnsembleBlocks.js:470 +#: js/blocks/EnsembleBlocks.js:708 +#: js/blocks/EnsembleBlocks.js:810 +#: js/blocks/EnsembleBlocks.js:872 +#: js/blocks/EnsembleBlocks.js:1192 +#: js/blocks/EnsembleBlocks.js:1255 msgid "Cannot find turtle" msgstr "" -#: js/EnsembleBlocks.js:206 +#: js/blocks/EnsembleBlocks.js:206 msgid "start mouse" msgstr "" -#: js/EnsembleBlocks.js:209 +#: js/blocks/EnsembleBlocks.js:209 msgid "The Start mouse block starts the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:220 +#: js/blocks/EnsembleBlocks.js:220 msgid "start turtle" msgstr "" -#: js/EnsembleBlocks.js:223 +#: js/blocks/EnsembleBlocks.js:223 msgid "The Start turtle block starts the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:256 +#: js/blocks/EnsembleBlocks.js:256 msgid "Mouse is already running." msgstr "" -#: js/EnsembleBlocks.js:258 +#: js/blocks/EnsembleBlocks.js:258 msgid "Turtle is already running." msgstr "" -#: js/EnsembleBlocks.js:282 +#: js/blocks/EnsembleBlocks.js:282 msgid "Cannot find start block" msgstr "" -#: js/EnsembleBlocks.js:292 +#: js/blocks/EnsembleBlocks.js:292 #.TRANS: pen color for this mouse msgid "mouse color" msgstr "" -#: js/EnsembleBlocks.js:294 +#: js/blocks/EnsembleBlocks.js:294 msgid "The Mouse color block returns the pen color of the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:306 +#: js/blocks/EnsembleBlocks.js:306 #.TRANS: pen color for this turtle msgid "turtle color" msgstr "" -#: js/EnsembleBlocks.js:308 +#: js/blocks/EnsembleBlocks.js:308 msgid "The Turtle color block returns the pen color of the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:338 +#: js/blocks/EnsembleBlocks.js:338 #.TRANS: heading (compass direction) for this mouse msgid "mouse heading" msgstr "" -#: js/EnsembleBlocks.js:340 +#: js/blocks/EnsembleBlocks.js:340 msgid "The Mouse heading block returns the heading of the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:352 +#: js/blocks/EnsembleBlocks.js:352 #.TRANS: heading (compass direction) for this turtle msgid "turtle heading" msgstr "" -#: js/EnsembleBlocks.js:354 +#: js/blocks/EnsembleBlocks.js:354 msgid "The Turtle heading block returns the heading of the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:384 -#: js/EnsembleBlocks.js:439 +#: js/blocks/EnsembleBlocks.js:384 +#: js/blocks/EnsembleBlocks.js:439 #.TRANS: set xy position for this mouse msgid "set mouse" msgstr "" -#: js/EnsembleBlocks.js:391 -#: js/EnsembleBlocks.js:402 -#: js/BoxesBlocks.js:595 -msgid "name1" -msgstr "" - -#: js/EnsembleBlocks.js:391 -#: js/EnsembleBlocks.js:402 -#: js/ProgramBlocks.js:881 -#: js/GraphicsBlocks.js:235 -#: js/GraphicsBlocks.js:313 -#: js/GraphicsBlocks.js:436 -#: js/GraphicsBlocks.js:487 -#: js/GraphicsBlocks.js:534 -#: js/GraphicsBlocks.js:750 +#: js/blocks/EnsembleBlocks.js:391 +#: js/blocks/EnsembleBlocks.js:402 +#: js/blocks/GraphicsBlocks.js:235 +#: js/blocks/GraphicsBlocks.js:313 +#: js/blocks/GraphicsBlocks.js:436 +#: js/blocks/GraphicsBlocks.js:487 +#: js/blocks/GraphicsBlocks.js:534 +#: js/blocks/GraphicsBlocks.js:750 +#: js/blocks/ProgramBlocks.js:881 msgid "x" msgstr "" -#: js/EnsembleBlocks.js:391 -#: js/EnsembleBlocks.js:402 -#: js/ProgramBlocks.js:881 -#: js/GraphicsBlocks.js:149 -#: js/GraphicsBlocks.js:313 -#: js/GraphicsBlocks.js:436 -#: js/GraphicsBlocks.js:487 -#: js/GraphicsBlocks.js:534 -#: js/GraphicsBlocks.js:750 +#: js/blocks/EnsembleBlocks.js:391 +#: js/blocks/EnsembleBlocks.js:402 +#: js/blocks/GraphicsBlocks.js:149 +#: js/blocks/GraphicsBlocks.js:313 +#: js/blocks/GraphicsBlocks.js:436 +#: js/blocks/GraphicsBlocks.js:487 +#: js/blocks/GraphicsBlocks.js:534 +#: js/blocks/GraphicsBlocks.js:750 +#: js/blocks/ProgramBlocks.js:881 msgid "y" msgstr "" -#: js/EnsembleBlocks.js:395 -#: js/EnsembleBlocks.js:452 +#: js/blocks/EnsembleBlocks.js:395 +#: js/blocks/EnsembleBlocks.js:452 #.TRANS: set xy position for this turtle msgid "set turtle" msgstr "" -#: js/EnsembleBlocks.js:433 +#: js/blocks/EnsembleBlocks.js:433 msgid "The Set mouse block sends a stack of blocks to be run by the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:446 +#: js/blocks/EnsembleBlocks.js:446 msgid "The Set turtle block sends a stack of blocks to be run by the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:480 +#: js/blocks/EnsembleBlocks.js:480 #.TRANS: y position for this mouse msgid "mouse y" msgstr "" -#: js/EnsembleBlocks.js:482 +#: js/blocks/EnsembleBlocks.js:482 msgid "The Y mouse block returns the Y position of the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:494 +#: js/blocks/EnsembleBlocks.js:494 #.TRANS: y position for this turtle msgid "turtle y" msgstr "" -#: js/EnsembleBlocks.js:496 +#: js/blocks/EnsembleBlocks.js:496 msgid "The Y turtle block returns the Y position of the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:526 +#: js/blocks/EnsembleBlocks.js:526 #.TRANS: x position for this mouse msgid "mouse x" msgstr "" -#: js/EnsembleBlocks.js:528 +#: js/blocks/EnsembleBlocks.js:528 msgid "The X mouse block returns the X position of the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:540 +#: js/blocks/EnsembleBlocks.js:540 #.TRANS: x position for this turtle msgid "turtle x" msgstr "" -#: js/EnsembleBlocks.js:542 +#: js/blocks/EnsembleBlocks.js:542 msgid "The X turtle block returns the X position of the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:573 +#: js/blocks/EnsembleBlocks.js:573 #.TRANS: notes played by this mouse msgid "mouse notes played" msgstr "" -#: js/EnsembleBlocks.js:575 +#: js/blocks/EnsembleBlocks.js:575 msgid "The Mouse elapse notes block returns the number of notes played by the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:587 +#: js/blocks/EnsembleBlocks.js:587 #.TRANS: notes played by this turtle msgid "turtle notes played" msgstr "" -#: js/EnsembleBlocks.js:589 +#: js/blocks/EnsembleBlocks.js:589 msgid "The Turtle elapse notes block returns the number of notes played by the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:627 +#: js/blocks/EnsembleBlocks.js:627 #.TRANS: convert current note for this turtle to piano key (1-88) msgid "mouse pitch number" msgstr "" -#: js/EnsembleBlocks.js:629 +#: js/blocks/EnsembleBlocks.js:629 msgid "The Mouse pitch block returns the current pitch number being played by the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:641 +#: js/blocks/EnsembleBlocks.js:641 #.TRANS: convert current note for this turtle to piano key (1-88) msgid "turtle pitch number" msgstr "" -#: js/EnsembleBlocks.js:643 -msgid "The Turrle pitch block returns the current pitch number being played by the specified turtle." +#: js/blocks/EnsembleBlocks.js:643 +msgid "The Turtle pitch block returns the current pitch number being played by the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:747 -#: js/EnsembleBlocks.js:819 +#: js/blocks/EnsembleBlocks.js:747 +#: js/blocks/EnsembleBlocks.js:819 #.TRANS: note value is the duration of the note played by this mouse msgid "mouse note value" msgstr "" -#: js/EnsembleBlocks.js:757 +#: js/blocks/EnsembleBlocks.js:757 #.TRANS: note value is the duration of the note played by this turtle msgid "turtle note value" msgstr "" -#: js/EnsembleBlocks.js:830 +#: js/blocks/EnsembleBlocks.js:830 #.TRANS: sync is short for synchronization msgid "mouse sync" msgstr "" -#: js/EnsembleBlocks.js:832 +#: js/blocks/EnsembleBlocks.js:832 msgid "The Mouse sync block aligns the beat count between mice." msgstr "" -#: js/EnsembleBlocks.js:844 +#: js/blocks/EnsembleBlocks.js:844 #.TRANS: sync is short for synchronization msgid "turtle sync" msgstr "" -#: js/EnsembleBlocks.js:846 +#: js/blocks/EnsembleBlocks.js:846 msgid "The Turtle sync block aligns the beat count between turtles." msgstr "" -#: js/EnsembleBlocks.js:887 +#: js/blocks/EnsembleBlocks.js:887 msgid "The Found mouse block will return true if the specified mouse can be found." msgstr "" -#: js/EnsembleBlocks.js:893 +#: js/blocks/EnsembleBlocks.js:893 msgid "found mouse" msgstr "" -#: js/EnsembleBlocks.js:903 +#: js/blocks/EnsembleBlocks.js:903 msgid "The Found turtle block will return true if the specified turtle can be found." msgstr "" -#: js/EnsembleBlocks.js:909 +#: js/blocks/EnsembleBlocks.js:909 msgid "found turtle" msgstr "" -#: js/EnsembleBlocks.js:932 +#: js/blocks/EnsembleBlocks.js:932 msgid "new mouse" msgstr "" -#: js/EnsembleBlocks.js:934 +#: js/blocks/EnsembleBlocks.js:934 msgid "The New mouse block will create a new mouse." msgstr "" -#: js/EnsembleBlocks.js:945 +#: js/blocks/EnsembleBlocks.js:945 msgid "new turtle" msgstr "" -#: js/EnsembleBlocks.js:947 +#: js/blocks/EnsembleBlocks.js:947 msgid "The New turtle block will create a new turtle." msgstr "" -#: js/EnsembleBlocks.js:1011 +#: js/blocks/EnsembleBlocks.js:1011 msgid "set mouse color" msgstr "" -#: js/EnsembleBlocks.js:1014 +#: js/blocks/EnsembleBlocks.js:1014 msgid "The Set-mouse-color block is used to set the color of a mouse." msgstr "" -#: js/EnsembleBlocks.js:1020 +#: js/blocks/EnsembleBlocks.js:1020 msgid "set turtle color" msgstr "" -#: js/EnsembleBlocks.js:1023 +#: js/blocks/EnsembleBlocks.js:1023 msgid "The Set-turtle-color block is used to set the color of a turtle." msgstr "" -#: js/EnsembleBlocks.js:1083 +#: js/blocks/EnsembleBlocks.js:1083 msgid "The Mouse-name block returns the name of a mouse." msgstr "" -#: js/EnsembleBlocks.js:1092 +#: js/blocks/EnsembleBlocks.js:1092 msgid "The Turtle-name block returns the name of a turtle." msgstr "" -#: js/EnsembleBlocks.js:1115 +#: js/blocks/EnsembleBlocks.js:1115 msgid "mouse count" msgstr "" -#: js/EnsembleBlocks.js:1118 +#: js/blocks/EnsembleBlocks.js:1118 msgid "The Mouse-count block returns the number of mice." msgstr "" -#: js/EnsembleBlocks.js:1124 +#: js/blocks/EnsembleBlocks.js:1124 msgid "turtle count" msgstr "" -#: js/EnsembleBlocks.js:1127 +#: js/blocks/EnsembleBlocks.js:1127 msgid "The Turtle-count block returns the number of turtles." msgstr "" -#: js/EnsembleBlocks.js:1149 +#: js/blocks/EnsembleBlocks.js:1149 msgid "nth mouse name" msgstr "" -#: js/EnsembleBlocks.js:1152 +#: js/blocks/EnsembleBlocks.js:1152 msgid "The Nth-Mouse name block returns the name of the nth mouse." msgstr "" -#: js/EnsembleBlocks.js:1158 +#: js/blocks/EnsembleBlocks.js:1158 msgid "nth turtle name" msgstr "" -#: js/EnsembleBlocks.js:1161 +#: js/blocks/EnsembleBlocks.js:1161 msgid "The Nth-Turtle name block returns the name of the nth turtle." msgstr "" -#: js/EnsembleBlocks.js:1205 -#: js/EnsembleBlocks.js:1265 +#: js/blocks/EnsembleBlocks.js:1205 +#: js/blocks/EnsembleBlocks.js:1265 msgid "set name" msgstr "" -#: js/EnsembleBlocks.js:1214 -#: js/EnsembleBlocks.js:1221 +#: js/blocks/EnsembleBlocks.js:1214 +#: js/blocks/EnsembleBlocks.js:1221 msgid "source" msgstr "" -#: js/EnsembleBlocks.js:1214 -#: js/EnsembleBlocks.js:1221 +#: js/blocks/EnsembleBlocks.js:1214 +#: js/blocks/EnsembleBlocks.js:1221 msgid "target" msgstr "" -#: js/EnsembleBlocks.js:1271 +#: js/blocks/EnsembleBlocks.js:1271 msgid "The Set-name block is used to name a mouse." msgstr "" -#: js/EnsembleBlocks.js:1284 +#: js/blocks/EnsembleBlocks.js:1284 msgid "The Set-name block is used to name a turtle." msgstr "" -#: js/BooleanBlocks.js:44 -msgid "The Not block is the logical not operator." -msgstr "" - -#: js/BooleanBlocks.js:62 -msgid "not" -msgstr "" - -#: js/BooleanBlocks.js:134 -msgid "The And block is the logical and operator." -msgstr "" - -#: js/BooleanBlocks.js:152 -msgid "and" -msgstr "" - -#: js/BooleanBlocks.js:218 -msgid "The Or block is the logical or operator." -msgstr "" - -#: js/BooleanBlocks.js:236 -msgid "or" -msgstr "" - -#: js/BooleanBlocks.js:302 -msgid "The XOR block is the logical XOR operator." -msgstr "" - -#: js/BooleanBlocks.js:320 -msgid "xor" -msgstr "" - -#: js/BooleanBlocks.js:808 -msgid "The Equal block returns True if the two numbers are equal." -msgstr "" - -#: js/BooleanBlocks.js:909 -msgid "The Not-equal-to block returns True if the two numbers are not equal to each other." -msgstr "" - -#: js/BooleanBlocks.js:1008 -msgid "The Boolean block is used to specify true or false." -msgstr "" - -#: js/MediaBlocks.js:35 -#.TRANS: right side of the screen -msgid "right (screen)" -msgstr "" - -#: js/MediaBlocks.js:45 -#: js/MediaBlocks.js:56 -msgid "The Right block returns the position of the right of the canvas." -msgstr "" - -#: js/MediaBlocks.js:97 -#.TRANS: left side of the screen -msgid "left (screen)" -msgstr "" - -#: js/MediaBlocks.js:107 -#: js/MediaBlocks.js:118 -msgid "The Left block returns the position of the left of the canvas." -msgstr "" - -#: js/MediaBlocks.js:158 -msgid "top (screen)" -msgstr "" - -#: js/MediaBlocks.js:168 -#: js/MediaBlocks.js:179 -msgid "The Top block returns the position of the top of the canvas." -msgstr "" - -#: js/MediaBlocks.js:219 -msgid "bottom (screen)" +#: js/blocks/ExtrasBlocks.js:33 +msgid "fraction" msgstr "" -#: js/MediaBlocks.js:229 -#: js/MediaBlocks.js:240 -msgid "The Bottom block returns the position of the bottom of the canvas." +#: js/blocks/ExtrasBlocks.js:36 +msgid "Convert a float to a fraction" msgstr "" -#: js/MediaBlocks.js:282 -msgid "width" +#: js/blocks/ExtrasBlocks.js:93 +msgid "save as ABC" msgstr "" -#: js/MediaBlocks.js:291 -msgid "The Width block returns the width of the canvas." +#: js/blocks/ExtrasBlocks.js:96 +#: js/blocks/ExtrasBlocks.js:132 +#: js/blocks/ExtrasBlocks.js:168 +msgid "title" msgstr "" -#: js/MediaBlocks.js:325 -msgid "height" +#: js/blocks/ExtrasBlocks.js:129 +msgid "save as Lilypond" msgstr "" -#: js/MediaBlocks.js:334 -msgid "The Height block returns the height of the canvas." +#: js/blocks/ExtrasBlocks.js:165 +msgid "save as SVG" msgstr "" -#: js/MediaBlocks.js:369 -#.TRANS: stops playback of an audio recording -msgid "stop play" +#: js/blocks/ExtrasBlocks.js:216 +msgid "no background" msgstr "" -#: js/MediaBlocks.js:404 -#.TRANS: Erases the images and text -msgid "erase media" +#: js/blocks/ExtrasBlocks.js:219 +msgid "The No background block eliminates the background from the saved SVG output." msgstr "" -#: js/MediaBlocks.js:409 -msgid "The Erase Media block erases text and images." +#: js/blocks/ExtrasBlocks.js:247 +msgid "show blocks" msgstr "" -#: js/MediaBlocks.js:439 -#.TRANS: play an audio recording -msgid "play back" +#: js/blocks/ExtrasBlocks.js:249 +msgid "The Show blocks block shows the blocks." msgstr "" -#: js/MediaBlocks.js:487 -msgid "speak" +#: js/blocks/ExtrasBlocks.js:274 +msgid "hide blocks" msgstr "" -#: js/MediaBlocks.js:495 -msgid "The Speak block outputs to the text-to-speech synthesizer" +#: js/blocks/ExtrasBlocks.js:276 +msgid "The Hide blocks block hides the blocks." msgstr "" -#: js/MediaBlocks.js:546 -msgid "camera" +#: js/blocks/ExtrasBlocks.js:305 +#: js/blocks/ExtrasBlocks.js:338 +msgid "The Space block is used to add space between blocks." msgstr "" -#: js/MediaBlocks.js:551 -msgid "The Camera block connects a webcam to the Show block." +#: js/blocks/ExtrasBlocks.js:376 +msgid "wait" msgstr "" -#: js/MediaBlocks.js:574 -msgid "video" +#: js/blocks/ExtrasBlocks.js:379 +msgid "The Wait block pauses the program for a specified number of seconds." msgstr "" -#: js/MediaBlocks.js:579 -msgid "The Video block selects video for use with the Show block." +#: js/blocks/ExtrasBlocks.js:433 +#: plugins/facebook.rtp:30 +msgid "comment" msgstr "" -#: js/MediaBlocks.js:607 -msgid "The Open file block opens a file for use with the Show block." +#: js/blocks/ExtrasBlocks.js:469 +msgid "print" msgstr "" -#: js/MediaBlocks.js:645 -msgid "stop media" +#: js/blocks/ExtrasBlocks.js:476 +msgid "The Print block displays text at the top of the screen." msgstr "" -#: js/MediaBlocks.js:650 -msgid "The Stop media block stops audio or video playback." +#: js/blocks/ExtrasBlocks.js:582 +msgid "display grid" msgstr "" -#: js/MediaBlocks.js:679 -#: js/PitchBlocks.js:1539 -#: js/phrasemaker.js:822 -#: js/musickeyboard.js:1654 -#.TRANS: a measure of frequency: one cycle per second -msgid "hertz" +#: js/blocks/ExtrasBlocks.js:587 +msgid "The Display Grid Block changes the grid type" msgstr "" -#: js/MediaBlocks.js:692 -msgid "duration (ms)" +#: js/blocks/ExtrasBlocks.js:689 +#: js/blocks/ExtrasBlocks.js:708 +#: js/blocks/ExtrasBlocks.js:731 +#: js/blocks/ExtrasBlocks.js:754 +#: js/blocks/ExtrasBlocks.js:772 +#: js/blocks/ExtrasBlocks.js:791 +#: js/blocks/ExtrasBlocks.js:810 +#: js/blocks/ExtrasBlocks.js:829 +msgid "unknown" msgstr "" -#: js/MediaBlocks.js:728 -#.TRANS: translate a note into hertz, e.g., A4 -> 440HZ -msgid "note to frequency" +#: js/blocks/FlowBlocks.js:41 +msgid "The Backward block runs code in reverse order (Musical retrograde)." msgstr "" -#: js/MediaBlocks.js:736 -msgid "The To frequency block converts a pitch name and octave to Hertz." +#: js/blocks/FlowBlocks.js:48 +msgid "backward" msgstr "" -#: js/MediaBlocks.js:746 -#: js/PitchBlocks.js:656 -#: js/PitchBlocks.js:932 -#: js/PitchBlocks.js:1827 -#.TRANS: name2 is name as in name of pitch (JAPANESE ONLY) -msgid "name2" +#: js/blocks/FlowBlocks.js:124 +msgid "The Duplicate block will run each block multiple times." msgstr "" -#: js/MediaBlocks.js:812 -msgid "The Avatar block is used to change the appearance of the mouse." +#: js/blocks/FlowBlocks.js:136 +msgid "duplicate" msgstr "" -#: js/MediaBlocks.js:819 -msgid "The Avatar block is used to change the appearance of the turtle." +#: js/blocks/FlowBlocks.js:334 +msgid "The Default block is used inside of a Switch to define the default action." msgstr "" -#: js/MediaBlocks.js:831 -#: js/MediaBlocks.js:891 -#.TRANS: a media object -msgid "size" +#: js/blocks/FlowBlocks.js:342 +msgid "default" msgstr "" -#: js/MediaBlocks.js:831 -msgid "image" +#: js/blocks/FlowBlocks.js:361 +#: js/blocks/FlowBlocks.js:418 +msgid "The Case Block must be used inside of a Switch Block." msgstr "" -#: js/MediaBlocks.js:880 -msgid "The Show block is used to display text or images on the canvas." +#: js/blocks/FlowBlocks.js:389 +msgid "The Case block is used inside of a Switch to define matches." msgstr "" -#: js/MediaBlocks.js:888 -#.TRANS: show1 is show as in display an image or text on the screen. -msgid "show1" +#: js/blocks/FlowBlocks.js:397 +msgid "case" msgstr "" -#: js/MediaBlocks.js:891 -msgid "obj" +#: js/blocks/FlowBlocks.js:446 +msgid "The Switch block will run the code in the matching Case." msgstr "" -#: js/MediaBlocks.js:938 -msgid "The Media block is used to import an image." +#: js/blocks/FlowBlocks.js:454 +msgid "switch" msgstr "" -#: js/MediaBlocks.js:973 -msgid "The Text block holds a text string." +#: js/blocks/FlowBlocks.js:595 +msgid "The Stop block will stop a loop" msgstr "" -#: js/ProgramBlocks.js:33 -msgid "The Load-heap-from-app block loads the heap from a web page." +#: js/blocks/FlowBlocks.js:597 +msgid "Forever, Repeat, While, or Until." msgstr "" -#: js/ProgramBlocks.js:44 -#.TRANS: load the heap contents from a URL -msgid "load heap from App" +#: js/blocks/FlowBlocks.js:604 +#: js/widgets/timbre.js:417 +#: js/widgets/timbre.js:419 +#: js/widgets/musickeyboard.js:819 +#: js/widgets/musickeyboard.js:821 +#: js/widgets/phrasemaker.js:4202 +#: plugins/rodi.rtp:29 +#: plugins/rodi.rtp:73 +#: plugins/rodi.rtp:413 +msgid "stop" msgstr "" -#: js/ProgramBlocks.js:95 -msgid "Error parsing JSON data:" +#: js/blocks/FlowBlocks.js:653 +msgid "The Waitfor block will wait until the condition is true." msgstr "" -#: js/ProgramBlocks.js:100 -msgid "404: Page not found" +#: js/blocks/FlowBlocks.js:661 +msgid "wait for" msgstr "" -#: js/ProgramBlocks.js:133 -msgid "The Save-heap-to-app block saves the heap to a web page." +#: js/blocks/FlowBlocks.js:732 +msgid "The Until block will repeat until the condition is true." msgstr "" -#: js/ProgramBlocks.js:144 -#.TRANS: save the heap contents to a URL -msgid "save heap to App" +#: js/blocks/FlowBlocks.js:740 +msgid "until" msgstr "" -#: js/ProgramBlocks.js:189 -msgid "Cannot find a valid heap for" +#: js/blocks/FlowBlocks.js:742 +#: js/blocks/FlowBlocks.js:822 +msgid "do2" msgstr "" -#: js/ProgramBlocks.js:206 -msgid "The Load-heap block loads the heap from a file." +#: js/blocks/FlowBlocks.js:812 +msgid "The While block will repeat while the condition is true." msgstr "" -#: js/ProgramBlocks.js:217 -#.TRANS: load the heap from a file -msgid "load heap" +#: js/blocks/FlowBlocks.js:820 +msgid "while" msgstr "" -#: js/ProgramBlocks.js:270 -msgid "The file you selected does not contain a valid heap." +#: js/blocks/FlowBlocks.js:903 +#: js/blocks/FlowBlocks.js:968 +#: js/blocks/FlowBlocks.js:979 +msgid "In this example if the mouse button is pressed a snare drum will play." msgstr "" -#: js/ProgramBlocks.js:275 -msgid "The loadHeap block needs a loadFile block." +#: js/blocks/FlowBlocks.js:925 +#: js/blocks/FlowBlocks.js:988 +msgid "if" msgstr "" -#: js/ProgramBlocks.js:291 -msgid "The Set-heap block loads the heap." +#: js/blocks/FlowBlocks.js:927 +#: js/blocks/FlowBlocks.js:990 +msgid "then" msgstr "" -#: js/ProgramBlocks.js:299 -#: js/HeapBlocks.js:539 -#.TRANS: load the heap from a JSON encoding -msgid "set heap" +#: js/blocks/FlowBlocks.js:927 +msgid "else" msgstr "" -#: js/ProgramBlocks.js:340 -msgid "The block you selected does not contain a valid heap." +#: js/blocks/FlowBlocks.js:1025 +msgid "The Forever block will repeat the contained blocks forever." msgstr "" -#: js/ProgramBlocks.js:343 -msgid "The Set heap block needs a heap." +#: js/blocks/FlowBlocks.js:1037 +msgid "forever" msgstr "" -#: js/ProgramBlocks.js:360 -msgid "The Load-dictionary block loads a dictionary from a file." +#: js/blocks/FlowBlocks.js:1073 +msgid "The Repeat block will repeat the contained blocks." msgstr "" -#: js/ProgramBlocks.js:372 -#.TRANS: load a dictionary from a file -msgid "load dictionary" +#: js/blocks/FlowBlocks.js:1075 +msgid "In this example the note will be played 4 times." msgstr "" -#: js/ProgramBlocks.js:390 -#: js/ProgramBlocks.js:658 -#: js/ToneBlocks.js:1025 -msgid "file" +#: js/blocks/FlowBlocks.js:1083 +msgid "repeat" msgstr "" -#: js/ProgramBlocks.js:396 -#: js/ProgramBlocks.js:501 -#: js/ProgramBlocks.js:664 -#: js/DictBlocks.js:80 -#: js/DictBlocks.js:145 -#: js/DictBlocks.js:216 -#: js/DictBlocks.js:290 -msgid "My Dictionary" +#: js/blocks/FlowBlocks.js:1123 +msgid "duplicate factor" msgstr "" -#: js/ProgramBlocks.js:444 -msgid "The file you selected does not contain a valid dictionary." +#: js/blocks/HeapBlocks.js:49 +msgid "The Heap block returns the heap." msgstr "" -#: js/ProgramBlocks.js:449 -msgid "The load dictionary block needs a load file block." +#: js/blocks/HeapBlocks.js:133 +msgid "show heap" msgstr "" -#: js/ProgramBlocks.js:466 -msgid "The Set-dictionary block loads a dictionary." +#: js/blocks/HeapBlocks.js:181 +msgid "The Heap-length block returns the length of the heap." msgstr "" -#: js/ProgramBlocks.js:477 -#.TRANS: load a dictionary from a JSON -msgid "set dictionary" +#: js/blocks/HeapBlocks.js:195 +msgid "heap length" msgstr "" -#: js/ProgramBlocks.js:546 -msgid "The block you selected does not contain a valid dictionary." +#: js/blocks/HeapBlocks.js:254 +msgid "The Heap-empty? block returns true if the heap is empty." msgstr "" -#: js/ProgramBlocks.js:550 -msgid "The set dictionary block needs a dictionary." +#: js/blocks/HeapBlocks.js:268 +#.TRANS: Is the heap empty? +msgid "heap empty?" msgstr "" -#: js/ProgramBlocks.js:567 -msgid "The Save-heap block saves the heap to a file." +#: js/blocks/HeapBlocks.js:317 +msgid "The Empty-heap block empties the heap." msgstr "" -#: js/ProgramBlocks.js:578 -#.TRANS: save the heap to a file -msgid "save heap" +#: js/blocks/HeapBlocks.js:327 +#: js/blocks/HeapBlocks.js:647 +#.TRANS: empty the heap +msgid "empty heap" msgstr "" -#: js/ProgramBlocks.js:629 -msgid "The Save-dictionary block saves a dictionary to a file." +#: js/blocks/HeapBlocks.js:371 +msgid "The Reverse-heap block reverses the order of the heap." msgstr "" -#: js/ProgramBlocks.js:640 -#.TRANS: save a dictionary to a file -msgid "save dictionary" +#: js/blocks/HeapBlocks.js:384 +#.TRANS: reverse the order of the heap +msgid "reverse heap" msgstr "" -#: js/ProgramBlocks.js:720 -msgid "The Open palette block opens a palette." +#: js/blocks/HeapBlocks.js:428 +msgid "The Index-heap block returns a value in the heap at a specified location." msgstr "" -#: js/ProgramBlocks.js:727 -msgid "open palette" +#: js/blocks/HeapBlocks.js:443 +#.TRANS: retrieve a value from the heap at index position in the heap +msgid "index heap" msgstr "" -#: js/ProgramBlocks.js:785 -msgid "The Delete block block removes a block." +#: js/blocks/HeapBlocks.js:523 +msgid "The Set-heap entry block sets a value in he heap at the specified location." msgstr "" -#: js/ProgramBlocks.js:797 -#.TRANS: Move this block to the trash. -msgid "delete block" +#: js/blocks/HeapBlocks.js:539 +#: js/blocks/ProgramBlocks.js:299 +#.TRANS: load the heap from a JSON encoding +msgid "set heap" msgstr "" -#: js/ProgramBlocks.js:861 -msgid "The Move block block moves a block." +#: js/blocks/HeapBlocks.js:619 +msgid "The Pop block removes the value at the top of the heap." msgstr "" -#: js/ProgramBlocks.js:869 -#.TRANS: Move the position of a block on the screen. -msgid "move block" +#: js/blocks/HeapBlocks.js:633 +#.TRANS: pop a value off the top of the heap +msgid "pop" msgstr "" -#: js/ProgramBlocks.js:881 -#: js/ProgramBlocks.js:1048 -msgid "block number" +#: js/blocks/HeapBlocks.js:680 +msgid "The Push block adds a value to the top of the heap." msgstr "" -#: js/ProgramBlocks.js:935 -#.TRANS: Run program beginning at this block. -msgid "run block" +#: js/blocks/HeapBlocks.js:696 +#.TRANS: push a value onto the top of the heap +msgid "push" msgstr "" -#: js/ProgramBlocks.js:1025 -msgid "The Dock block block connections two blocks." +#: js/blocks/IntervalsBlocks.js:45 +msgid "set temperament" msgstr "" -#: js/ProgramBlocks.js:1036 -#.TRANS: We can connect a block to another block. -msgid "connect blocks" +#: js/blocks/IntervalsBlocks.js:63 +#: js/blocks/MediaBlocks.js:746 +#: js/blocks/PitchBlocks.js:657 +#: js/blocks/PitchBlocks.js:935 +#: js/blocks/PitchBlocks.js:974 +#: js/blocks/PitchBlocks.js:1007 +#: js/blocks/PitchBlocks.js:1194 +#: js/blocks/PitchBlocks.js:1717 +#: js/blocks/PitchBlocks.js:1758 +#: js/blocks/PitchBlocks.js:1866 +#: js/blocks/ToneBlocks.js:1025 +#: js/turtleactions/IntervalsActions.js:114 +#.TRANS: adjusts the shift up or down by one octave (twelve half-steps in the interval between two notes, one having twice or half the frequency in Hz of the other.) +msgid "octave" msgstr "" -#: js/ProgramBlocks.js:1048 -msgid "target block" +#: js/blocks/IntervalsBlocks.js:99 +msgid "The Temperament name block is used to select a tuning method." msgstr "" -#: js/ProgramBlocks.js:1048 -msgid "connection number" +#: js/blocks/IntervalsBlocks.js:161 +msgid "doubly" msgstr "" -#: js/ProgramBlocks.js:1140 -msgid "The Make block block creates a new block." +#: js/blocks/IntervalsBlocks.js:166 +msgid "The Doubly block will double the size of an interval." msgstr "" -#: js/ProgramBlocks.js:1152 -#.TRANS: Create a new block -msgid "make block" +#: js/blocks/IntervalsBlocks.js:262 +msgid "interval number" msgstr "" -#: js/ProgramBlocks.js:1186 -#: js/ProgramBlocks.js:1227 -#: js/RhythmBlocks.js:1128 -#: js/PitchBlocks.js:972 -#: js/PitchBlocks.js:1005 -#: js/temperament.js:340 -#: js/temperament.js:362 -#: js/temperament.js:372 -#: js/temperament.js:484 -#: js/status.js:190 -#: plugins/rodi.rtp:192 -#.TRANS: a musical note consisting of pitch and duration -msgid "note" +#: js/blocks/IntervalsBlocks.js:317 +msgid "current interval" msgstr "" -#: js/ProgramBlocks.js:1285 -msgid "Cannot find block" +#: js/blocks/IntervalsBlocks.js:387 +#.TRANS: measure the distance between two pitches in semi-tones +msgid "semi-tone interval measure" msgstr "" -#: js/ProgramBlocks.js:1304 -#: js/ProgramBlocks.js:1313 -msgid "Warning: block argument type mismatch" +#: js/blocks/IntervalsBlocks.js:454 +#: js/blocks/IntervalsBlocks.js:570 +msgid "You must use two pitch blocks when measuring an interval." msgstr "" -#: js/ProgramBlocks.js:1347 -msgid "The Open project block is used to open a project from a web page." +#: js/blocks/IntervalsBlocks.js:496 +msgid "The Scalar interval block measures the distance between two notes in the current key and mode." msgstr "" -#: js/ProgramBlocks.js:1357 -msgid "open project" +#: js/blocks/IntervalsBlocks.js:502 +#.TRANS: measure the distance between two pitches in steps of musical scale +msgid "scalar interval measure" msgstr "" -#: js/ProgramBlocks.js:1410 -msgid "Please enter a valid URL." +#: js/blocks/IntervalsBlocks.js:678 +msgid "In the figure, we add sol# to sol." msgstr "" -#: js/DrumBlocks.js:59 -msgid "The Noise name block is used to select a noise synthesizer." +#: js/blocks/IntervalsBlocks.js:684 +#: js/blocks/OrnamentBlocks.js:220 +#.TRANS: calculate a relative step between notes based on semi-tones +msgid "semi-tone interval" msgstr "" -#: js/DrumBlocks.js:102 -msgid "The Drum name block is used to select a drum." +#: js/blocks/IntervalsBlocks.js:733 +msgid "The output of the example is: do, mi, sol, sol, ti, mi" msgstr "" -#: js/DrumBlocks.js:146 -msgid "The Effects name block is used to select a sound effect." +#: js/blocks/IntervalsBlocks.js:740 +#: js/blocks/WidgetBlocks.js:768 +msgid "arpeggio" msgstr "" -#: js/DrumBlocks.js:163 -msgid "noise" +#: js/blocks/IntervalsBlocks.js:931 +msgid "The Chord block calculates common chords." msgstr "" -#: js/DrumBlocks.js:177 -msgid "The Play noise block will generate white, pink, or brown noise." +#: js/blocks/IntervalsBlocks.js:933 +msgid "In the figure, we generate a C-major chord." msgstr "" -#: js/DrumBlocks.js:191 -#: js/musicutils.js:752 -#: js/synthutils.js:47 -#.TRANS: white noise synthesizer -msgid "white noise" +#: js/blocks/IntervalsBlocks.js:938 +msgid "chord" msgstr "" -#: js/DrumBlocks.js:326 -msgid "Replace every instance of a pitch with a drum sound." +#: js/blocks/IntervalsBlocks.js:990 +msgid "The Ratio Interval block calculates an interval based on a ratio." msgstr "" -#: js/DrumBlocks.js:337 -#.TRANS: map a pitch to a drum sound -msgid "map pitch to drum" +#: js/blocks/IntervalsBlocks.js:995 +msgid "ratio interval" msgstr "" -#: js/DrumBlocks.js:404 -msgid "In the example above, a kick drum sound will be played instead of sol." +#: js/blocks/IntervalsBlocks.js:1064 +msgid "In the figure, we add la to sol." msgstr "" -#: js/DrumBlocks.js:416 -#.TRANS: set the current drum sound for playback -msgid "set drum" +#: js/blocks/IntervalsBlocks.js:1120 +#.TRANS: define a custom mode +msgid "define mode" msgstr "" -#: js/DrumBlocks.js:460 -msgid "sound effect" +#: js/blocks/IntervalsBlocks.js:1173 +msgid "movable Do" msgstr "" -#: js/DrumBlocks.js:498 -msgid "You can use multiple Drum blocks within a Note block." +#: js/blocks/IntervalsBlocks.js:1224 +#.TRANS: mode length is the number of notes in the mode, e.g., 7 for major and minor scales; 12 for chromatic scales +msgid "mode length" msgstr "" -#: js/RhythmBlocks.js:182 -#: js/RhythmBlocks.js:1086 -#: js/RhythmBlocks.js:1162 -msgid "Note value must be greater than 0." +#: js/blocks/IntervalsBlocks.js:1233 +msgid "The Mode length block is the number of notes in the current scale." msgstr "" -#: js/RhythmBlocks.js:215 -#: js/RhythmBlocks.js:278 -#: js/RhythmBlocks.js:350 -#.TRANS: swing is a rhythmic variation that emphasises the offbeat -msgid "swing" +#: js/blocks/IntervalsBlocks.js:1235 +msgid "Most Western scales have 7 notes." msgstr "" -#: js/RhythmBlocks.js:355 -#.TRANS: the amount to shift to the offbeat note -msgid "swing value" +#: js/blocks/IntervalsBlocks.js:1284 +#.TRANS: the mode in music is 'major', 'minor', etc. +msgid "current mode" msgstr "" -#: js/RhythmBlocks.js:419 -msgid "The Skip notes block will cause notes to be skipped." +#: js/blocks/IntervalsBlocks.js:1337 +#.TRANS: the key is a group of pitches with which a music composition is created +msgid "current key" msgstr "" -#: js/RhythmBlocks.js:427 -#.TRANS: substitute rests on notes being skipped -msgid "skip notes" +#: js/blocks/IntervalsBlocks.js:1389 +#: js/blocks/IntervalsBlocks.js:1434 +#.TRANS: set the key and mode, e.g. C Major +msgid "set key" msgstr "" -#: js/RhythmBlocks.js:489 -#.TRANS: speed up note duration by some factor, e.g. convert 1/4 to 1/8 notes by using a factor of 2 -msgid "multiply note value" +#: js/blocks/IntervalsBlocks.js:1443 +#: js/blocks/IntervalsBlocks.js:1449 +msgid "The Set key block is used to set the key and mode," msgstr "" -#: js/RhythmBlocks.js:542 -msgid "The Tie block works on pairs of notes, combining them into one note." +#: js/blocks/IntervalsBlocks.js:1449 +msgid "eg C Major" msgstr "" -#: js/RhythmBlocks.js:550 -#.TRANS: tie notes together into one longer note -msgid "tie" +#: js/blocks/MediaBlocks.js:35 +#.TRANS: right side of the screen +msgid "right (screen)" msgstr "" -#: js/RhythmBlocks.js:591 -#: js/RhythmBlocks.js:671 -#.TRANS: a dotted note is played for 1.5x its value, e.g., 1/8. --> 3/16 -msgid "dot" +#: js/blocks/MediaBlocks.js:45 +#: js/blocks/MediaBlocks.js:56 +msgid "The Right block returns the position of the right of the canvas." msgstr "" -#: js/RhythmBlocks.js:619 -#: js/RhythmActions.js:221 -msgid "An argument of -1 results in a note value of 0." +#: js/blocks/MediaBlocks.js:97 +#.TRANS: left side of the screen +msgid "left (screen)" msgstr "" -#: js/RhythmBlocks.js:661 -msgid "The Dot block extends the duration of a note by 50%." +#: js/blocks/MediaBlocks.js:107 +#: js/blocks/MediaBlocks.js:118 +msgid "The Left block returns the position of the left of the canvas." msgstr "" -#: js/RhythmBlocks.js:663 -msgid "Eg a dotted quarter note will play for 3/8 (1/4 + 1/8) of a beat." +#: js/blocks/MediaBlocks.js:158 +msgid "top (screen)" msgstr "" -#: js/RhythmBlocks.js:765 -#.TRANS: Japanese only: note value block for drum -msgid "note value drum" +#: js/blocks/MediaBlocks.js:168 +#: js/blocks/MediaBlocks.js:179 +msgid "The Top block returns the position of the top of the canvas." msgstr "" -#: js/RhythmBlocks.js:829 -msgid "392 hertz" +#: js/blocks/MediaBlocks.js:219 +msgid "bottom (screen)" msgstr "" -#: js/RhythmBlocks.js:1119 -msgid "The Note block is a container for one or more Pitch blocks." +#: js/blocks/MediaBlocks.js:229 +#: js/blocks/MediaBlocks.js:240 +msgid "The Bottom block returns the position of the bottom of the canvas." msgstr "" -#: js/RhythmBlocks.js:1121 -msgid "The Note block specifies the duration (note value) of its contents." +#: js/blocks/MediaBlocks.js:282 +msgid "width" msgstr "" -#: js/RhythmBlocks.js:1130 -msgid "value2" +#: js/blocks/MediaBlocks.js:291 +msgid "The Width block returns the width of the canvas." msgstr "" -#: js/RhythmBlocks.js:1200 -msgid "define frequency" +#: js/blocks/MediaBlocks.js:325 +msgid "height" msgstr "" -#: js/RhythmBlocks.js:1218 -#: js/temperament.js:650 -#: js/temperament.js:1421 -msgid "octave space" +#: js/blocks/MediaBlocks.js:334 +msgid "The Height block returns the height of the canvas." msgstr "" -#: js/NumberBlocks.js:28 -msgid "The Int block returns an integer." +#: js/blocks/MediaBlocks.js:369 +#.TRANS: stops playback of an audio recording +msgid "stop play" msgstr "" -#: js/NumberBlocks.js:34 -msgid "int" +#: js/blocks/MediaBlocks.js:404 +#.TRANS: Erases the images and text +msgid "erase media" msgstr "" -#: js/NumberBlocks.js:73 -msgid "The Mod block returns the remainder from a division." +#: js/blocks/MediaBlocks.js:409 +msgid "The Erase Media block erases text and images." msgstr "" -#: js/NumberBlocks.js:79 -msgid "mod" +#: js/blocks/MediaBlocks.js:439 +#.TRANS: play an audio recording +msgid "play back" msgstr "" -#: js/NumberBlocks.js:123 -msgid "The Power block calculates a power function." +#: js/blocks/MediaBlocks.js:487 +msgid "speak" msgstr "" -#: js/NumberBlocks.js:178 -msgid "The Sqrt block returns the square root." +#: js/blocks/MediaBlocks.js:495 +msgid "The Speak block outputs to the text-to-speech synthesizer" msgstr "" -#: js/NumberBlocks.js:184 -msgid "sqrt" +#: js/blocks/MediaBlocks.js:546 +msgid "camera" msgstr "" -#: js/NumberBlocks.js:230 -msgid "The Abs block returns the absolute value." +#: js/blocks/MediaBlocks.js:551 +msgid "The Camera block connects a webcam to the Show block." msgstr "" -#: js/NumberBlocks.js:236 -msgid "abs" +#: js/blocks/MediaBlocks.js:574 +msgid "video" msgstr "" -#: js/NumberBlocks.js:277 -msgid "The Distance block returns the distance between two points. For example, between the mouse and the center of the screen." +#: js/blocks/MediaBlocks.js:579 +msgid "The Video block selects video for use with the Show block." msgstr "" -#: js/NumberBlocks.js:283 -#: plugins/rodi.rtp:310 -msgid "distance" +#: js/blocks/MediaBlocks.js:607 +msgid "The Open file block opens a file for use with the Show block." msgstr "" -#: js/NumberBlocks.js:343 -msgid "The Divide block is used to divide." +#: js/blocks/MediaBlocks.js:645 +msgid "stop media" msgstr "" -#: js/NumberBlocks.js:411 -msgid "The Multiply block is used to multiply." +#: js/blocks/MediaBlocks.js:650 +msgid "The Stop media block stops audio or video playback." msgstr "" -#: js/NumberBlocks.js:554 -msgid "The Minus block is used to subtract." +#: js/blocks/MediaBlocks.js:679 +#: js/blocks/PitchBlocks.js:1577 +#: js/widgets/musickeyboard.js:1936 +#: js/widgets/phrasemaker.js:1037 +#.TRANS: a measure of frequency: one cycle per second +msgid "hertz" msgstr "" -#: js/NumberBlocks.js:647 -msgid "The Plus block is used to add." +#: js/blocks/MediaBlocks.js:692 +#: js/blocks/WidgetBlocks.js:182 +#: js/widgets/temperament.js:506 +#: js/widgets/temperament.js:546 +#: js/widgets/temperament.js:610 +#: js/widgets/temperament.js:618 +#: js/widgets/temperament.js:1505 +#: js/widgets/timbre.js:1842 +msgid "frequency" msgstr "" -#: js/NumberBlocks.js:773 -msgid "The One-of block returns one of two choices." +#: js/blocks/MediaBlocks.js:692 +msgid "duration (ms)" msgstr "" -#: js/NumberBlocks.js:780 -#: js/PitchBlocks.js:616 -msgid "one of" +#: js/blocks/MediaBlocks.js:728 +#.TRANS: translate a note into hertz, e.g., A4 -> 440HZ +msgid "note to frequency" msgstr "" -#: js/NumberBlocks.js:782 -msgid "this" +#: js/blocks/MediaBlocks.js:736 +msgid "The To frequency block converts a pitch name and octave to Hertz." msgstr "" -#: js/NumberBlocks.js:782 -msgid "that" +#: js/blocks/MediaBlocks.js:746 +#: js/blocks/PitchBlocks.js:656 +#: js/blocks/PitchBlocks.js:934 +#: js/blocks/PitchBlocks.js:1866 +#.TRANS: name2 is name as in name of pitch (JAPANESE ONLY) +msgid "name2" msgstr "" -#: js/NumberBlocks.js:837 -msgid "The Random block returns a random number." +#: js/blocks/MediaBlocks.js:812 +msgid "The Avatar block is used to change the appearance of the mouse." msgstr "" -#: js/NumberBlocks.js:844 -msgid "random" +#: js/blocks/MediaBlocks.js:819 +msgid "The Avatar block is used to change the appearance of the turtle." msgstr "" -#: js/NumberBlocks.js:846 -msgid "min" +#: js/blocks/MediaBlocks.js:831 +#: js/blocks/MediaBlocks.js:891 +#.TRANS: a media object +msgid "size" msgstr "" -#: js/NumberBlocks.js:846 -msgid "max" +#: js/blocks/MediaBlocks.js:831 +msgid "image" msgstr "" -#: js/NumberBlocks.js:910 -msgid "The Number block holds a number." +#: js/blocks/MediaBlocks.js:880 +msgid "The Show block is used to display text or images on the canvas." msgstr "" -#: js/BoxesBlocks.js:53 -#: js/BoxesBlocks.js:59 -msgid "The Add-to block is used to add to the value stored in a box." +#: js/blocks/MediaBlocks.js:888 +#.TRANS: show1 is show as in display an image or text on the screen. +msgid "show1" msgstr "" -#: js/BoxesBlocks.js:61 -msgid "It can also be used with other blocks such as Color and Pen size." +#: js/blocks/MediaBlocks.js:891 +msgid "obj" msgstr "" -#: js/BoxesBlocks.js:73 -msgid "add" +#: js/blocks/MediaBlocks.js:938 +msgid "The Media block is used to import an image." msgstr "" -#: js/BoxesBlocks.js:75 -#: js/temperament.js:716 -msgid "to" +#: js/blocks/MediaBlocks.js:973 +msgid "The Text block holds a text string." msgstr "" -#: js/BoxesBlocks.js:75 -#: js/BoxesBlocks.js:595 -#: js/HeapBlocks.js:544 -msgid "value1" +#: js/blocks/MeterBlocks.js:34 +#.TRANS: musical meter (time signature), e.g., 4:4 +msgid "current meter" msgstr "" -#: js/BoxesBlocks.js:118 -msgid "Block does not support incrementing." +#: js/blocks/MeterBlocks.js:85 +#.TRANS: number of beats per minute +msgid "beat factor" msgstr "" -#: js/BoxesBlocks.js:152 -msgid "The Add-1-to block adds one to the value stored in a box." +#: js/blocks/MeterBlocks.js:161 +msgid "The Beats per minute block returns the current beats per minute." msgstr "" -#: js/BoxesBlocks.js:163 -msgid "add 1 to" +#: js/blocks/MeterBlocks.js:169 +#: js/widgets/status.js:152 +#.TRANS: number of beats played per minute +msgid "beats per minute2" msgstr "" -#: js/BoxesBlocks.js:211 -msgid "The Subtract-1-from block subtracts one from the value stored in a box." +#: js/blocks/MeterBlocks.js:169 +#: js/blocks/MeterBlocks.js:1056 +#: js/blocks/MeterBlocks.js:1133 +#: js/blocks/MeterBlocks.js:1211 +#.TRANS: sets tempo by defining a beat and beats per minute +msgid "beats per minute" msgstr "" -#: js/BoxesBlocks.js:222 -msgid "subtract 1 from" +#: js/blocks/MeterBlocks.js:233 +#.TRANS: count of current musical measure in meter +msgid "measure count" msgstr "" -#: js/BoxesBlocks.js:270 -#: js/BoxesBlocks.js:387 -msgid "The Box block returns the value stored in a box." +#: js/blocks/MeterBlocks.js:241 +msgid "The Measure count block returns the current measure." msgstr "" -#: js/BoxesBlocks.js:500 -#: js/BoxesBlocks.js:576 -msgid "The Store in block will store a value in a box." +#: js/blocks/MeterBlocks.js:290 +#.TRANS: count of current beat in the meter +msgid "beat count" msgstr "" -#: js/BoxesBlocks.js:652 -msgid "The Box2 block returns the value stored in Box2." +#: js/blocks/MeterBlocks.js:300 +#: js/blocks/MeterBlocks.js:311 +#: js/blocks/MeterBlocks.js:565 +#: js/blocks/MeterBlocks.js:576 +msgid "The Beat count block is the number of the current beat," msgstr "" -#: js/BoxesBlocks.js:703 -msgid "The Store in Box2 block is used to store a value in Box2." +#: js/blocks/MeterBlocks.js:313 +#: js/blocks/MeterBlocks.js:578 +msgid "eg 1, 2, 3, or 4." msgstr "" -#: js/BoxesBlocks.js:715 -msgid "store in box2" +#: js/blocks/MeterBlocks.js:368 +#.TRANS: count the number of notes +msgid "sum note values" msgstr "" -#: js/BoxesBlocks.js:761 -msgid "The Box1 block returns the value stored in Box1." +#: js/blocks/MeterBlocks.js:376 +#: js/blocks/MeterBlocks.js:440 +msgid "The Note counter block can be used to count the number of contained notes." msgstr "" -#: js/BoxesBlocks.js:812 -msgid "The Store in Box1 block is used to store a value in Box1." +#: js/blocks/MeterBlocks.js:432 +#.TRANS: count the number of notes +msgid "note counter" msgstr "" -#: js/BoxesBlocks.js:826 -msgid "store in box1" +#: js/blocks/MeterBlocks.js:496 +#.TRANS: number of whole notes that have been played +msgid "whole notes played" msgstr "" -#: js/HeapBlocks.js:49 -msgid "The Heap block returns the heap." +#: js/blocks/MeterBlocks.js:505 +msgid "The Whole notes played block returns the total number of whole notes played." msgstr "" -#: js/HeapBlocks.js:133 -msgid "show heap" +#: js/blocks/MeterBlocks.js:555 +#: js/turtleactions/DictActions.js:83 +#.TRANS: number of notes that have been played +msgid "notes played" msgstr "" -#: js/HeapBlocks.js:181 -msgid "The Heap-length block returns the length of the heap." +#: js/blocks/MeterBlocks.js:653 +msgid "The No clock block decouples the notes from the master clock." msgstr "" -#: js/HeapBlocks.js:195 -msgid "heap length" +#: js/blocks/MeterBlocks.js:661 +#.TRANS: don't lock notes to master clock +msgid "no clock" msgstr "" -#: js/HeapBlocks.js:254 -msgid "The Heap-empty? block returns true if the heap is empty." +#: js/blocks/MeterBlocks.js:700 +msgid "on weak beat do" msgstr "" -#: js/HeapBlocks.js:268 -#.TRANS: Is the heap empty? -msgid "heap empty?" +#: js/blocks/MeterBlocks.js:705 +msgid "The On-weak-beat block lets you specify actions to take on weak (off) beats." msgstr "" -#: js/HeapBlocks.js:317 -msgid "The Empty-heap block empties the heap." +#: js/blocks/MeterBlocks.js:750 +msgid "on strong beat" msgstr "" -#: js/HeapBlocks.js:327 -#: js/HeapBlocks.js:647 -#.TRANS: empty the heap -msgid "empty heap" +#: js/blocks/MeterBlocks.js:758 +msgid "The On-strong-beat block lets you specify actions to take on specified beats." msgstr "" -#: js/HeapBlocks.js:371 -msgid "The Reverse-heap block reverses the order of the heap." +#: js/blocks/MeterBlocks.js:769 +msgid "beat" msgstr "" -#: js/HeapBlocks.js:384 -#.TRANS: reverse the order of the heap -msgid "reverse heap" +#: js/blocks/MeterBlocks.js:813 +msgid "on every beat do" msgstr "" -#: js/HeapBlocks.js:428 -msgid "The Index-heap block returns a value in the heap at a specified location." +#: js/blocks/MeterBlocks.js:821 +msgid "The On-every-beat block lets you specify actions to take on every beat." msgstr "" -#: js/HeapBlocks.js:443 -#.TRANS: retrieve a value from the heap at index position in the heap -msgid "index heap" +#: js/blocks/MeterBlocks.js:874 +msgid "on every note do" msgstr "" -#: js/HeapBlocks.js:523 -msgid "The Set-heap entry block sets a value in he heap at the specified location." +#: js/blocks/MeterBlocks.js:882 +msgid "The On-every-note block lets you specify actions to take on every note." msgstr "" -#: js/HeapBlocks.js:619 -msgid "The Pop block removes the value at the top of the heap." +#: js/blocks/MeterBlocks.js:928 +#: js/blocks/MeterBlocks.js:999 +#.TRANS: sets tempo by defining a beat and beats per minute +msgid "master beats per minute" msgstr "" -#: js/HeapBlocks.js:633 -#.TRANS: pop a value off the top of the heap -msgid "pop" +#: js/blocks/MeterBlocks.js:952 +#: js/blocks/MeterBlocks.js:1078 +#: js/blocks/MeterBlocks.js:1135 +msgid "bpm" msgstr "" -#: js/HeapBlocks.js:680 -msgid "The Push block adds a value to the top of the heap." +#: js/blocks/MeterBlocks.js:952 +#: js/blocks/MeterBlocks.js:1078 +#: js/blocks/MeterBlocks.js:1135 +msgid "beat value" msgstr "" -#: js/HeapBlocks.js:696 -#.TRANS: push a value onto the top of the heap -msgid "push" +#: js/blocks/MeterBlocks.js:1024 +#: js/blocks/MeterBlocks.js:1167 +#: js/blocks/MeterBlocks.js:1241 +msgid "Beats per minute must be > 30." msgstr "" -#: js/FlowBlocks.js:41 -msgid "The Backward block runs code in reverse order (Musical retrograde)." +#: js/blocks/MeterBlocks.js:1027 +#: js/blocks/MeterBlocks.js:1170 +#: js/blocks/MeterBlocks.js:1244 +msgid "Maximum beats per minute is 1000." msgstr "" -#: js/FlowBlocks.js:48 -msgid "backward" +#: js/blocks/MeterBlocks.js:1068 +msgid "The Beats per minute block sets the number of 1/4 notes per minute." msgstr "" -#: js/FlowBlocks.js:124 -msgid "The Duplicate block will run each block multiple times." +#: js/blocks/MeterBlocks.js:1279 +#.TRANS: anacrusis +msgid "pickup" msgstr "" -#: js/FlowBlocks.js:136 -msgid "duplicate" +#: js/blocks/MeterBlocks.js:1367 +msgid "number of beats" msgstr "" -#: js/FlowBlocks.js:334 -msgid "The Default block is used inside of a Switch to define the default action." +#: js/blocks/NumberBlocks.js:28 +msgid "The Int block returns an integer." msgstr "" -#: js/FlowBlocks.js:342 -msgid "default" +#: js/blocks/NumberBlocks.js:34 +msgid "int" msgstr "" -#: js/FlowBlocks.js:361 -#: js/FlowBlocks.js:418 -msgid "The Case Block must be used inside of a Switch Block." +#: js/blocks/NumberBlocks.js:73 +msgid "The Mod block returns the remainder from a division." msgstr "" -#: js/FlowBlocks.js:389 -msgid "The Case block is used inside of a Switch to define matches." +#: js/blocks/NumberBlocks.js:79 +msgid "mod" msgstr "" -#: js/FlowBlocks.js:397 -msgid "case" +#: js/blocks/NumberBlocks.js:141 +msgid "The Power block calculates a power function." msgstr "" -#: js/FlowBlocks.js:446 -msgid "The Switch block will run the code in the matching Case." +#: js/blocks/NumberBlocks.js:196 +msgid "The Sqrt block returns the square root." msgstr "" -#: js/FlowBlocks.js:454 -msgid "switch" +#: js/blocks/NumberBlocks.js:202 +msgid "sqrt" msgstr "" -#: js/FlowBlocks.js:595 -msgid "The Stop block will stop a loop" +#: js/blocks/NumberBlocks.js:248 +msgid "The Abs block returns the absolute value." msgstr "" -#: js/FlowBlocks.js:597 -msgid "Forever, Repeat, While, or Until." +#: js/blocks/NumberBlocks.js:254 +msgid "abs" msgstr "" -#: js/FlowBlocks.js:604 -#: js/phrasemaker.js:3799 -#: js/musickeyboard.js:629 -#: js/musickeyboard.js:631 -#: js/timbre.js:417 -#: js/timbre.js:419 -#: plugins/rodi.rtp:29 -#: plugins/rodi.rtp:73 -#: plugins/rodi.rtp:413 -msgid "stop" +#: js/blocks/NumberBlocks.js:295 +msgid "The Distance block returns the distance between two points. For example, between the mouse and the center of the screen." msgstr "" -#: js/FlowBlocks.js:653 -msgid "The Waitfor block will wait until the condition is true." +#: js/blocks/NumberBlocks.js:301 +#: plugins/rodi.rtp:310 +msgid "distance" msgstr "" -#: js/FlowBlocks.js:661 -msgid "wait for" +#: js/blocks/NumberBlocks.js:361 +msgid "The Divide block is used to divide." msgstr "" -#: js/FlowBlocks.js:732 -msgid "The Until block will repeat until the condition is true." +#: js/blocks/NumberBlocks.js:441 +msgid "The Multiply block is used to multiply." msgstr "" -#: js/FlowBlocks.js:740 -msgid "until" +#: js/blocks/NumberBlocks.js:612 +msgid "The Minus block is used to subtract." msgstr "" -#: js/FlowBlocks.js:742 -#: js/FlowBlocks.js:822 -msgid "do2" +#: js/blocks/NumberBlocks.js:723 +msgid "The Plus block is used to add." msgstr "" -#: js/FlowBlocks.js:812 -msgid "The While block will repeat while the condition is true." +#: js/blocks/NumberBlocks.js:849 +msgid "The One-of block returns one of two choices." msgstr "" -#: js/FlowBlocks.js:820 -msgid "while" +#: js/blocks/NumberBlocks.js:856 +#: js/blocks/PitchBlocks.js:616 +msgid "one of" msgstr "" -#: js/FlowBlocks.js:903 -#: js/FlowBlocks.js:968 -#: js/FlowBlocks.js:979 -msgid "In this example if the mouse button is pressed a snare drum will play." +#: js/blocks/NumberBlocks.js:858 +msgid "this" msgstr "" -#: js/FlowBlocks.js:925 -#: js/FlowBlocks.js:988 -msgid "if" +#: js/blocks/NumberBlocks.js:858 +msgid "that" msgstr "" -#: js/FlowBlocks.js:927 -#: js/FlowBlocks.js:990 -msgid "then" +#: js/blocks/NumberBlocks.js:913 +msgid "The Random block returns a random number." msgstr "" -#: js/FlowBlocks.js:927 -msgid "else" +#: js/blocks/NumberBlocks.js:920 +msgid "random" msgstr "" -#: js/FlowBlocks.js:1025 -msgid "The Forever block will repeat the contained blocks forever." +#: js/blocks/NumberBlocks.js:922 +msgid "min" msgstr "" -#: js/FlowBlocks.js:1037 -msgid "forever" +#: js/blocks/NumberBlocks.js:922 +msgid "max" msgstr "" -#: js/FlowBlocks.js:1073 -msgid "The Repeat block will repeat the contained blocks." +#: js/blocks/NumberBlocks.js:986 +msgid "The Number block holds a number." msgstr "" -#: js/FlowBlocks.js:1075 -msgid "In this example the note will be played 4 times." +#: js/blocks/OrnamentBlocks.js:32 +msgid "staccato factor" msgstr "" -#: js/FlowBlocks.js:1083 -msgid "repeat" +#: js/blocks/OrnamentBlocks.js:108 +msgid "slur factor" msgstr "" -#: js/FlowBlocks.js:1123 -msgid "duplicate factor" +#: js/blocks/OrnamentBlocks.js:217 +#: js/blocks/OrnamentBlocks.js:309 +#.TRANS: the neighbor refers to a neighboring note, e.g., D is a neighbor of C +msgid "neighbor" msgstr "" -#: js/PitchBlocks.js:39 -#: js/musicutils.js:722 -#: js/musicutils.js:1117 -#: js/synthutils.js:112 -#.TRANS: square wave -msgid "square" +#: js/blocks/OrnamentBlocks.js:293 +msgid "The Neighbor block rapidly switches between neighboring pitches." msgstr "" -#: js/PitchBlocks.js:62 -#: js/ToneBlocks.js:39 -#: js/musicutils.js:723 -#: js/musicutils.js:1118 -#: js/synthutils.js:116 -#.TRANS: triangle wave -msgid "triangle" +#: js/blocks/OrnamentBlocks.js:364 +msgid "glide" msgstr "" -#: js/PitchBlocks.js:85 -#: js/musicutils.js:721 -#: js/musicutils.js:1116 -#: js/synthutils.js:110 -#.TRANS: sine wave -msgid "sine" +#: js/blocks/OrnamentBlocks.js:479 +#: js/blocks/OrnamentBlocks.js:643 +msgid "slur" msgstr "" -#: js/PitchBlocks.js:108 -#: js/musicutils.js:724 -#: js/musicutils.js:1119 -#: js/synthutils.js:114 -#.TRANS: sawtooth wave -msgid "sawtooth" +#: js/blocks/OrnamentBlocks.js:558 +#: js/blocks/OrnamentBlocks.js:710 +#.TRANS: play each note sharply detached from the others +msgid "staccato" msgstr "" -#: js/PitchBlocks.js:141 -#.TRANS: musical transposition (adjustment of pitch up or down) -msgid "transposition" +#: js/blocks/RhythmBlocks.js:182 +#: js/blocks/RhythmBlocks.js:1086 +#: js/blocks/RhythmBlocks.js:1162 +msgid "Note value must be greater than 0." msgstr "" -#: js/PitchBlocks.js:168 -#.TRANS: step down one note in current musical scale -msgid "scalar step down" +#: js/blocks/RhythmBlocks.js:215 +#: js/blocks/RhythmBlocks.js:278 +#: js/blocks/RhythmBlocks.js:350 +#.TRANS: swing is a rhythmic variation that emphasises the offbeat +msgid "swing" msgstr "" -#: js/PitchBlocks.js:172 -msgid "The Scalar step down block returns the number of semi-tones down to the previous note in the current key and mode." +#: js/blocks/RhythmBlocks.js:355 +#.TRANS: the amount to shift to the offbeat note +msgid "swing value" msgstr "" -#: js/PitchBlocks.js:190 -#.TRANS: step up one note in current musical scale -msgid "scalar step up" +#: js/blocks/RhythmBlocks.js:419 +msgid "The Skip notes block will cause notes to be skipped." msgstr "" -#: js/PitchBlocks.js:194 -msgid "The Scalar step up block returns the number of semi-tones up to the next note in the current key and mode." +#: js/blocks/RhythmBlocks.js:427 +#.TRANS: substitute rests on notes being skipped +msgid "skip notes" msgstr "" -#: js/PitchBlocks.js:212 -#.TRANS: the change measured in half-steps between the current pitch and the previous pitch -msgid "change in pitch" +#: js/blocks/RhythmBlocks.js:489 +#.TRANS: speed up note duration by some factor, e.g. convert 1/4 to 1/8 notes by using a factor of 2 +msgid "multiply note value" msgstr "" -#: js/PitchBlocks.js:216 -msgid "The Change in pitch block is the difference (in half steps) between the current pitch being played and the previous pitch played." +#: js/blocks/RhythmBlocks.js:542 +msgid "The Tie block works on pairs of notes, combining them into one note." msgstr "" -#: js/PitchBlocks.js:243 -#.TRANS: the change measured in scale-steps between the current pitch and the previous pitch -msgid "scalar change in pitch" +#: js/blocks/RhythmBlocks.js:550 +#.TRANS: tie notes together into one longer note +msgid "tie" msgstr "" -#: js/PitchBlocks.js:250 -#: js/PitchBlocks.js:432 -#: js/PitchBlocks.js:1629 -#: js/DictActions.js:89 -#: js/temperament.js:477 -#: js/temperament.js:481 -#: js/temperament.js:714 -#.TRANS: convert current note to piano key (1-88) -#.TRANS: a mapping of pitch to the 88 piano keys -msgid "pitch number" +#: js/blocks/RhythmBlocks.js:591 +#: js/blocks/RhythmBlocks.js:671 +#.TRANS: a dotted note is played for 1.5x its value, e.g., 1/8. --> 3/16 +msgid "dot" msgstr "" -#: js/PitchBlocks.js:256 -msgid "The Pitch number block is the value of the pitch of the note currently being played." +#: js/blocks/RhythmBlocks.js:619 +#: js/turtleactions/RhythmActions.js:221 +msgid "An argument of -1 results in a note value of 0." msgstr "" -#: js/PitchBlocks.js:329 -#: js/PitchBlocks.js:433 -#.TRANS: the current pitch expressed in Hertz -msgid "pitch in hertz" +#: js/blocks/RhythmBlocks.js:661 +msgid "The Dot block extends the duration of a note by 50%." msgstr "" -#: js/PitchBlocks.js:334 -msgid "The Pitch in Hertz block is the value in Hertz of the pitch of the note currently being played." +#: js/blocks/RhythmBlocks.js:663 +msgid "Eg a dotted quarter note will play for 3/8 (1/4 + 1/8) of a beat." msgstr "" -#: js/PitchBlocks.js:367 -#: js/DictActions.js:87 -msgid "current pitch" +#: js/blocks/RhythmBlocks.js:765 +#.TRANS: Japanese only: note value block for drum +msgid "note value drum" msgstr "" -#: js/PitchBlocks.js:373 -msgid "The Current Pitch block is used with the Pitch Converter block. In the example above, current pitch, sol 4, is displayed as 392 hertz." +#: js/blocks/RhythmBlocks.js:829 +msgid "392 hertz" msgstr "" -#: js/PitchBlocks.js:410 -msgid "This block converts the pitch value of the last note played into different formats such as hertz, letter name, pitch number, et al." +#: js/blocks/RhythmBlocks.js:1119 +msgid "The Note block is a container for one or more Pitch blocks." msgstr "" -#: js/PitchBlocks.js:434 -msgid "alphabet" +#: js/blocks/RhythmBlocks.js:1121 +msgid "The Note block specifies the duration (note value) of its contents." msgstr "" -#: js/PitchBlocks.js:436 -#.TRANS: Translate as "alphabet class" -msgid "letter class" +#: js/blocks/RhythmBlocks.js:1128 +#: js/blocks/PitchBlocks.js:974 +#: js/blocks/PitchBlocks.js:1007 +#: js/blocks/ProgramBlocks.js:1186 +#: js/blocks/ProgramBlocks.js:1227 +#: js/widgets/status.js:190 +#: js/widgets/temperament.js:464 +#: js/widgets/temperament.js:486 +#: js/widgets/temperament.js:496 +#: js/widgets/temperament.js:617 +#: plugins/rodi.rtp:192 +#.TRANS: a musical note consisting of pitch and duration +msgid "note" msgstr "" -#: js/PitchBlocks.js:437 -msgid "solfege class" +#: js/blocks/RhythmBlocks.js:1130 +msgid "value2" msgstr "" -#: js/PitchBlocks.js:438 -msgid "staff y" +#: js/blocks/RhythmBlocks.js:1200 +msgid "define frequency" msgstr "" -#: js/PitchBlocks.js:439 -msgid "solfege syllable" +#: js/blocks/RhythmBlocks.js:1218 +#: js/widgets/temperament.js:787 +#: js/widgets/temperament.js:1587 +msgid "octave space" msgstr "" -#: js/PitchBlocks.js:440 -msgid "pitch class" +#: js/blocks/SensorsBlocks.js:36 +msgid "The Input block prompts for keyboard input." msgstr "" -#: js/PitchBlocks.js:441 -msgid "scalar class" +#: js/blocks/SensorsBlocks.js:46 +msgid "input" msgstr "" -#: js/PitchBlocks.js:443 -msgid "nth degree" +#: js/blocks/SensorsBlocks.js:64 +msgid "Input a value" msgstr "" -#: js/PitchBlocks.js:444 -msgid "pitch to shade" +#: js/blocks/SensorsBlocks.js:126 +msgid "input value" msgstr "" -#: js/PitchBlocks.js:445 -msgid "pitch to color" +#: js/blocks/SensorsBlocks.js:131 +msgid "The Input-value block stores the input." msgstr "" -#: js/PitchBlocks.js:629 -#: js/musickeyboard.js:565 -#.TRANS: MIDI is a technical standard for electronic music -msgid "MIDI" +#: js/blocks/SensorsBlocks.js:238 +msgid "loudness" msgstr "" -#: js/PitchBlocks.js:642 -#.TRANS: set an offset associated with the numeric piano keyboard mapping -msgid "set pitch number offset" +#: js/blocks/SensorsBlocks.js:245 +msgid "The Loudness block returns the volume detected by the microphone." msgstr "" -#: js/PitchBlocks.js:645 -msgid "The Set pitch number offset block is used to set the offset for mapping pitch numbers to pitch and octave." +#: js/blocks/SensorsBlocks.js:300 +msgid "click" msgstr "" -#: js/PitchBlocks.js:679 -#.TRANS: convert piano key number (1-88) to pitch -msgid "number to pitch" +#: js/blocks/SensorsBlocks.js:306 +msgid "The Click block triggers an event if a mouse has been clicked." msgstr "" -#: js/PitchBlocks.js:682 -msgid "The Number to pitch block will convert a pitch number to a pich name." +#: js/blocks/SensorsBlocks.js:313 +msgid "The Click block triggers an event if a turtle has been clicked." msgstr "" -#: js/PitchBlocks.js:715 -#.TRANS: convert piano key number (1-88) to octave -msgid "number to octave" +#: js/blocks/SensorsBlocks.js:342 +msgid "cursor over" msgstr "" -#: js/PitchBlocks.js:717 -msgid "The Number to octave block will convert a pitch number to an octave." +#: js/blocks/SensorsBlocks.js:387 +msgid "cursor out" msgstr "" -#: js/PitchBlocks.js:726 -msgid "y to pitch" +#: js/blocks/SensorsBlocks.js:433 +msgid "cursor button down" msgstr "" -#: js/PitchBlocks.js:729 -msgid "Y to pitch block will convert a staff y position to corresponding pitch notation." +#: js/blocks/SensorsBlocks.js:477 +msgid "cursor button up" msgstr "" -#: js/PitchBlocks.js:841 -msgid "accidental selector" +#: js/blocks/SensorsBlocks.js:521 +#: js/blocks/PenBlocks.js:48 +#: plugins/rodi.rtp:219 +msgid "blue" msgstr "" -#: js/PitchBlocks.js:844 -msgid "The Accidental selector block is used to choose between double-sharp, sharp, natural, flat, and double-flat." +#: js/blocks/SensorsBlocks.js:577 +#: js/blocks/PenBlocks.js:64 +#: plugins/rodi.rtp:218 +msgid "green" msgstr "" -#: js/PitchBlocks.js:858 -msgid "Pitch can be specified in terms of ni dha pa ma ga re sa." +#: js/blocks/SensorsBlocks.js:633 +#: js/blocks/PenBlocks.js:112 +#: plugins/rodi.rtp:217 +msgid "red" msgstr "" -#: js/PitchBlocks.js:872 -msgid "Pitch can be specified in terms of C D E F G A B." +#: js/blocks/SensorsBlocks.js:638 +msgid "The Get red block returns the red component of the pixel under the mouse." msgstr "" -#: js/PitchBlocks.js:883 -msgid "solfege" +#: js/blocks/SensorsBlocks.js:644 +msgid "The Get red block returns the red component of the pixel under the turtle." msgstr "" -#: js/PitchBlocks.js:886 -msgid "Pitch can be specified in terms of do re mi fa sol la ti." +#: js/blocks/SensorsBlocks.js:685 +#: plugins/rodi.rtp:216 +msgid "pixel color" msgstr "" -#: js/PitchBlocks.js:920 -msgid "The Invert block rotates any contained notes around a target note." +#: js/blocks/SensorsBlocks.js:690 +msgid "The Get pixel block returns the color of the pixel under the mouse." msgstr "" -#: js/PitchBlocks.js:927 -#.TRANS: pitch inversion rotates a pitch around another pitch -msgid "invert" +#: js/blocks/SensorsBlocks.js:696 +msgid "The Get pixel block returns the color of the pixel under the turtle." msgstr "" -#: js/PitchBlocks.js:929 -#: js/PitchBlocks.js:935 -#: js/PitchActions.js:727 -#: js/musicutils.js:726 -#: js/musicutils.js:902 -#.TRANS: invert based on even or odd number or musical scale -#.TRANS: even numbers -msgid "even" +#: js/blocks/SensorsBlocks.js:758 +msgid "time" msgstr "" -#: js/PitchBlocks.js:935 -#: js/PitchActions.js:729 -#: js/musicutils.js:728 -#: js/musicutils.js:903 -#.TRANS: odd numbers -msgid "odd" +#: js/blocks/SensorsBlocks.js:804 +msgid "cursor y" msgstr "" -#: js/PitchBlocks.js:935 -#: js/PitchActions.js:731 -#: js/musicutils.js:729 -#: js/musicutils.js:904 -msgid "scalar" +#: js/blocks/SensorsBlocks.js:809 +msgid "The Cursor Y block returns the vertical position of the mouse." msgstr "" -#: js/PitchBlocks.js:966 -#.TRANS: pitch inversion rotates a pitch around another pitch (odd number) -msgid "invert (odd)" +#: js/blocks/SensorsBlocks.js:845 +msgid "cursor x" msgstr "" -#: js/PitchBlocks.js:999 -#.TRANS: pitch inversion rotates a pitch around another pitch (even number) -msgid "invert (even)" +#: js/blocks/SensorsBlocks.js:850 +msgid "The Cursor X block returns the horizontal position of the mouse." msgstr "" -#: js/PitchBlocks.js:1020 -#.TRANS: register is the octave of the current pitch -msgid "register" +#: js/blocks/SensorsBlocks.js:886 +msgid "mouse button" msgstr "" -#: js/PitchBlocks.js:1024 -msgid "The Register block provides an easy way to modify the register (octave) of the notes that follow it." +#: js/blocks/SensorsBlocks.js:888 +msgid "The Mouse-button block returns True if the mouse button is pressed." msgstr "" -#: js/PitchBlocks.js:1074 -msgid "The Semi-tone transposition block will shift the pitches contained inside Note blocks up (or down) by half steps." +#: js/blocks/SensorsBlocks.js:934 +msgid "to ASCII" msgstr "" -#: js/PitchBlocks.js:1076 -msgid "In the example shown above, sol is shifted up to sol#." +#: js/blocks/SensorsBlocks.js:938 +msgid "The To ASCII block converts numbers to letters." msgstr "" -#: js/PitchBlocks.js:1082 -#.TRANS: adjust the amount of shift (up or down) of a pitch -msgid "semi-tone transpose" +#: js/blocks/SensorsBlocks.js:1005 +msgid "The Keyboard block returns computer keyboard input." msgstr "" -#: js/PitchBlocks.js:1115 -msgid "The Transpose by Ratio block will shift the pitches contained inside Note blocks up (or down) by a ratio" +#: js/blocks/RhythmBlockPaletteBlocks.js:50 +#: js/blocks/RhythmBlockPaletteBlocks.js:233 +#.TRANS: rhythm block +#.TRANS: translate "rhythm1" as rhythm +msgid "rhythm1" msgstr "" -#: js/PitchBlocks.js:1121 -#.TRANS: adjust the amount of shift (up or down) of a pitch -msgid "transpose by ratio" +#: js/blocks/RhythmBlockPaletteBlocks.js:70 +#: js/blocks/RhythmBlockPaletteBlocks.js:252 +#: js/blocks/RhythmBlockPaletteBlocks.js:485 +#: js/blocks/RhythmBlockPaletteBlocks.js:554 +#: js/blocks/RhythmBlockPaletteBlocks.js:875 +msgid "number of notes" msgstr "" -#: js/PitchBlocks.js:1204 -#.TRANS: down sixth means the note is five scale degrees below current note -msgid "down sixth" +#: js/blocks/RhythmBlockPaletteBlocks.js:126 +msgid "polyphonic rhythm" msgstr "" -#: js/PitchBlocks.js:1223 -#.TRANS: down third means the note is two scale degrees below current note -msgid "down third" +#: js/blocks/RhythmBlockPaletteBlocks.js:219 +msgid "The Rhythm block is used to generate rhythm patterns." msgstr "" -#: js/PitchBlocks.js:1242 -#.TRANS: seventh means the note is the six scale degrees above current note -msgid "seventh" +#: js/blocks/RhythmBlockPaletteBlocks.js:280 +msgid "1/64 note" msgstr "" -#: js/PitchBlocks.js:1261 -#.TRANS: sixth means the note is the five scale degrees above current note -msgid "sixth" +#: js/blocks/RhythmBlockPaletteBlocks.js:304 +msgid "1/32 note" msgstr "" -#: js/PitchBlocks.js:1280 -#.TRANS: fifth means the note is the four scale degrees above current note -msgid "fifth" +#: js/blocks/RhythmBlockPaletteBlocks.js:332 +msgid "1/16 note" msgstr "" -#: js/PitchBlocks.js:1300 -#.TRANS: fourth means the note is three scale degrees above current note -msgid "fourth" +#: js/blocks/RhythmBlockPaletteBlocks.js:360 +msgid "eighth note" msgstr "" -#: js/PitchBlocks.js:1319 -#.TRANS: third means the note is two scale degrees above current note -msgid "third" +#: js/blocks/RhythmBlockPaletteBlocks.js:388 +msgid "quarter note" msgstr "" -#: js/PitchBlocks.js:1338 -#.TRANS: second means the note is one scale degree above current note -msgid "second" +#: js/blocks/RhythmBlockPaletteBlocks.js:416 +msgid "half note" msgstr "" -#: js/PitchBlocks.js:1379 -msgid "The Scalar transposition block will shift the pitches contained inside Note blocks up (or down) the scale." +#: js/blocks/RhythmBlockPaletteBlocks.js:444 +msgid "whole note" msgstr "" -#: js/PitchBlocks.js:1381 -msgid "In the example shown above, sol is shifted up to la." +#: js/blocks/RhythmBlockPaletteBlocks.js:482 +#: js/blocks/RhythmBlockPaletteBlocks.js:551 +#: js/blocks/RhythmBlockPaletteBlocks.js:602 +#.TRANS: A tuplet is a note value divided into irregular time values. +msgid "tuplet" msgstr "" -#: js/PitchBlocks.js:1388 -#.TRANS: adjust the amount of shift (up or down) of a pitch by musical scale (scalar) steps -msgid "scalar transpose" +#: js/blocks/RhythmBlockPaletteBlocks.js:768 +msgid "septuplet" msgstr "" -#: js/PitchBlocks.js:1423 -msgid "The Accidental block is used to create sharps and flats" +#: js/blocks/RhythmBlockPaletteBlocks.js:796 +msgid "quintuplet" msgstr "" -#: js/PitchBlocks.js:1430 -#.TRANS: An accidental is a modification to a pitch, e.g., sharp or flat. -msgid "accidental override" +#: js/blocks/RhythmBlockPaletteBlocks.js:824 +msgid "triplet" msgstr "" -#: js/PitchBlocks.js:1543 -msgid "The Hertz block (in combination with a Number block) will play a sound at the specified frequency." +#: js/blocks/RhythmBlockPaletteBlocks.js:851 +msgid "simple tuplet" msgstr "" -#: js/PitchBlocks.js:1633 -msgid "The Pitch Number block will play a pitch associated by its number, e.g. 0 for C and 7 for G." +#: js/blocks/RhythmBlockPaletteBlocks.js:861 +msgid "Tuplets are a collection of notes that get scaled to a specific duration." msgstr "" -#: js/PitchBlocks.js:1665 -#: js/PitchBlocks.js:1707 -#.TRANS: a numeric mapping of the notes in an octave based on the musical mode -#.TRANS: a numeric mapping of the notes in an octave based on the musical mode -msgid "nth modal pitch" +#: js/blocks/DrumBlocks.js:59 +msgid "The Noise name block is used to select a noise synthesizer." msgstr "" -#: js/PitchBlocks.js:1668 -msgid "n^th Modal Pitch takes the pattern of pitches in semitones for a mode and makes each point a degree of the mode," +#: js/blocks/DrumBlocks.js:102 +msgid "The Drum name block is used to select a drum." msgstr "" -#: js/PitchBlocks.js:1670 -msgid "starting from 1 and regardless of tonal framework (i.e. not always 8 notes in the octave)" +#: js/blocks/DrumBlocks.js:146 +msgid "The Effects name block is used to select a sound effect." msgstr "" -#: js/PitchBlocks.js:1711 -msgid "N^th Modal Pitch takes a number as an input as the n^th degree for the given mode. 0 is the first position, 1 is the second, -1 is the note before the first etc." +#: js/blocks/DrumBlocks.js:163 +msgid "noise" msgstr "" -#: js/PitchBlocks.js:1713 -msgid "The pitches change according to the mode specified without any need for respellings." +#: js/blocks/DrumBlocks.js:177 +msgid "The Play noise block will generate white, pink, or brown noise." msgstr "" -#: js/PitchBlocks.js:1752 -msgid "Scale Degree is a common convention in music. Scale Degree offers seven possible positions in the scale (1-7) and can be modified via accidentals." +#: js/blocks/DrumBlocks.js:317 +msgid "Replace every instance of a pitch with a drum sound." msgstr "" -#: js/PitchBlocks.js:1754 -msgid "Scale Degree 1 is always the first pitch in a given scale, regardless of octave." +#: js/blocks/DrumBlocks.js:328 +#.TRANS: map a pitch to a drum sound +msgid "map pitch to drum" msgstr "" -#: js/PitchBlocks.js:1776 -#.TRANS: step some number of notes in current musical scale -msgid "scalar step" +#: js/blocks/DrumBlocks.js:395 +msgid "In the example above, a kick drum sound will be played instead of sol." msgstr "" -#: js/PitchBlocks.js:1781 -msgid "The Scalar Step block (in combination with a Number block) will play the next pitch in a scale," +#: js/blocks/DrumBlocks.js:407 +#.TRANS: set the current drum sound for playback +msgid "set drum" msgstr "" -#: js/PitchBlocks.js:1783 -msgid "eg if the last note played was sol, Scalar Step 1 will play la." +#: js/blocks/DrumBlocks.js:451 +msgid "sound effect" msgstr "" -#: js/PitchBlocks.js:1818 -msgid "The Pitch block specifies the pitch name and octave of a note that together determine the frequency of the note." +#: js/blocks/DrumBlocks.js:489 +msgid "You can use multiple Drum blocks within a Note block." msgstr "" -#: js/GraphicsBlocks.js:46 -#: js/DictActions.js:77 -#: js/DictActions.js:155 -#: js/DictActions.js:189 +#: js/blocks/GraphicsBlocks.js:46 +#: js/turtleactions/DictActions.js:77 +#: js/turtleactions/DictActions.js:144 +#: js/turtleactions/DictActions.js:173 msgid "heading" msgstr "" -#: js/GraphicsBlocks.js:56 +#: js/blocks/GraphicsBlocks.js:56 msgid "The Heading block returns the orientation of the mouse." msgstr "" -#: js/GraphicsBlocks.js:62 +#: js/blocks/GraphicsBlocks.js:62 msgid "The Heading block returns the orientation of the turtle." msgstr "" -#: js/GraphicsBlocks.js:133 +#: js/blocks/GraphicsBlocks.js:133 msgid "The Y block returns the vertical position of the mouse." msgstr "" -#: js/GraphicsBlocks.js:140 +#: js/blocks/GraphicsBlocks.js:140 msgid "The Y block returns the vertical position of the turtle." msgstr "" -#: js/GraphicsBlocks.js:149 +#: js/blocks/GraphicsBlocks.js:149 msgid "y3" msgstr "" -#: js/GraphicsBlocks.js:219 +#: js/blocks/GraphicsBlocks.js:219 msgid "The X block returns the horizontal position of the mouse." msgstr "" -#: js/GraphicsBlocks.js:226 +#: js/blocks/GraphicsBlocks.js:226 msgid "The X block returns the horizontal position of the turtle." msgstr "" -#: js/GraphicsBlocks.js:235 +#: js/blocks/GraphicsBlocks.js:235 msgid "x3" msgstr "" -#: js/GraphicsBlocks.js:295 +#: js/blocks/GraphicsBlocks.js:295 msgid "scroll xy" msgstr "" -#: js/GraphicsBlocks.js:303 +#: js/blocks/GraphicsBlocks.js:303 msgid "The Scroll XY block moves the canvas." msgstr "" -#: js/GraphicsBlocks.js:313 +#: js/blocks/GraphicsBlocks.js:313 msgid "x2" msgstr "" -#: js/GraphicsBlocks.js:313 +#: js/blocks/GraphicsBlocks.js:313 msgid "y2" msgstr "" -#: js/GraphicsBlocks.js:373 -#: js/temperament.js:213 -#: js/temperament.js:241 +#: js/blocks/GraphicsBlocks.js:373 +#: js/widgets/temperament.js:319 +#: js/widgets/temperament.js:347 msgid "clear" msgstr "" -#: js/GraphicsBlocks.js:426 +#: js/blocks/GraphicsBlocks.js:426 msgid "The Control-point 2 block sets the second control point for the Bezier curve." msgstr "" -#: js/GraphicsBlocks.js:433 +#: js/blocks/GraphicsBlocks.js:433 msgid "control point 2" msgstr "" -#: js/GraphicsBlocks.js:436 -#: js/GraphicsBlocks.js:487 -#: js/GraphicsBlocks.js:534 -#: js/GraphicsBlocks.js:750 +#: js/blocks/GraphicsBlocks.js:436 +#: js/blocks/GraphicsBlocks.js:487 +#: js/blocks/GraphicsBlocks.js:534 +#: js/blocks/GraphicsBlocks.js:750 msgid "x1" msgstr "" -#: js/GraphicsBlocks.js:436 -#: js/GraphicsBlocks.js:487 -#: js/GraphicsBlocks.js:534 -#: js/GraphicsBlocks.js:750 +#: js/blocks/GraphicsBlocks.js:436 +#: js/blocks/GraphicsBlocks.js:487 +#: js/blocks/GraphicsBlocks.js:534 +#: js/blocks/GraphicsBlocks.js:750 msgid "y1" msgstr "" -#: js/GraphicsBlocks.js:477 +#: js/blocks/GraphicsBlocks.js:477 msgid "The Control-point 1 block sets the first control point for the Bezier curve." msgstr "" -#: js/GraphicsBlocks.js:484 +#: js/blocks/GraphicsBlocks.js:484 msgid "control point 1" msgstr "" -#: js/GraphicsBlocks.js:527 +#: js/blocks/GraphicsBlocks.js:527 msgid "The Bezier block draws a Bezier curve." msgstr "" -#: js/GraphicsBlocks.js:531 +#: js/blocks/GraphicsBlocks.js:531 msgid "bezier" msgstr "" -#: js/GraphicsBlocks.js:592 +#: js/blocks/GraphicsBlocks.js:592 msgid "The Arc block moves the turtle in an arc." msgstr "" -#: js/GraphicsBlocks.js:600 +#: js/blocks/GraphicsBlocks.js:600 msgid "arc" msgstr "" -#: js/GraphicsBlocks.js:603 +#: js/blocks/GraphicsBlocks.js:603 msgid "angle" msgstr "" -#: js/GraphicsBlocks.js:603 +#: js/blocks/GraphicsBlocks.js:603 msgid "radius" msgstr "" -#: js/GraphicsBlocks.js:620 -#: js/GraphicsBlocks.js:767 -#: js/GraphicsBlocks.js:1010 -#: js/GraphicsBlocks.js:1093 +#: js/blocks/GraphicsBlocks.js:620 +#: js/blocks/GraphicsBlocks.js:767 +#: js/blocks/GraphicsBlocks.js:1010 +#: js/blocks/GraphicsBlocks.js:1093 msgid "Value must be within -5000 to 5000 when Wrap Mode is off." msgstr "" -#: js/GraphicsBlocks.js:622 -#: js/GraphicsBlocks.js:769 -#: js/GraphicsBlocks.js:1012 -#: js/GraphicsBlocks.js:1095 +#: js/blocks/GraphicsBlocks.js:622 +#: js/blocks/GraphicsBlocks.js:769 +#: js/blocks/GraphicsBlocks.js:1012 +#: js/blocks/GraphicsBlocks.js:1095 msgid "Value must be within -20000 to 20000 when Wrap Mode is on." msgstr "" -#: js/GraphicsBlocks.js:660 +#: js/blocks/GraphicsBlocks.js:660 msgid "set heading" msgstr "seth" -#: js/GraphicsBlocks.js:673 +#: js/blocks/GraphicsBlocks.js:673 msgid "The Set heading block sets the heading of the turtle." msgstr "" -#: js/GraphicsBlocks.js:733 +#: js/blocks/GraphicsBlocks.js:733 msgid "The Set XY block moves the mouse to a specific position on the screen." msgstr "" -#: js/GraphicsBlocks.js:739 +#: js/blocks/GraphicsBlocks.js:739 msgid "The Set XY block moves the turtle to a specific position on the screen." msgstr "" -#: js/GraphicsBlocks.js:747 +#: js/blocks/GraphicsBlocks.js:747 msgid "set xy" msgstr "" -#: js/GraphicsBlocks.js:819 +#: js/blocks/GraphicsBlocks.js:819 msgid "The Right block turns the mouse to the right." msgstr "" -#: js/GraphicsBlocks.js:826 +#: js/blocks/GraphicsBlocks.js:826 msgid "The Right block turns the turtle to the right." msgstr "" -#: js/GraphicsBlocks.js:835 +#: js/blocks/GraphicsBlocks.js:835 msgid "right1" msgstr "" -#: js/GraphicsBlocks.js:835 +#: js/blocks/GraphicsBlocks.js:835 #: plugins/rodi.rtp:77 #: plugins/rodi.rtp:340 #: plugins/rodi.rtp:375 msgid "right" msgstr "" -#: js/GraphicsBlocks.js:899 +#: js/blocks/GraphicsBlocks.js:899 msgid "The Left block turns the mouse to the left." msgstr "" -#: js/GraphicsBlocks.js:906 +#: js/blocks/GraphicsBlocks.js:906 msgid "The Left block turns the turtle to the left." msgstr "" -#: js/GraphicsBlocks.js:915 +#: js/blocks/GraphicsBlocks.js:915 msgid "left1" msgstr "" -#: js/GraphicsBlocks.js:915 +#: js/blocks/GraphicsBlocks.js:915 #: plugins/rodi.rtp:79 #: plugins/rodi.rtp:339 #: plugins/rodi.rtp:362 msgid "left" msgstr "" -#: js/GraphicsBlocks.js:967 -#: js/temperament.js:734 -#: js/temperament.js:933 +#: js/blocks/GraphicsBlocks.js:967 +#: js/widgets/temperament.js:875 +#: js/widgets/temperament.js:1078 #: plugins/rodi.rtp:69 #: plugins/rodi.rtp:387 msgid "back" msgstr "" -#: js/GraphicsBlocks.js:976 +#: js/blocks/GraphicsBlocks.js:976 msgid "The Back block moves the mouse backward." msgstr "" -#: js/GraphicsBlocks.js:983 +#: js/blocks/GraphicsBlocks.js:983 msgid "The Back block moves the turtle backward." msgstr "" -#: js/GraphicsBlocks.js:1050 +#: js/blocks/GraphicsBlocks.js:1050 #: plugins/rodi.rtp:71 #: plugins/rodi.rtp:400 msgid "forward" msgstr "" -#: js/GraphicsBlocks.js:1059 +#: js/blocks/GraphicsBlocks.js:1059 msgid "The Forward block moves the mouse forward." msgstr "" -#: js/GraphicsBlocks.js:1066 +#: js/blocks/GraphicsBlocks.js:1066 msgid "The Forward block moves the turtle forward." msgstr "" -#: js/GraphicsBlocks.js:1154 -#: js/GraphicsBlocks.js:1172 +#: js/blocks/GraphicsBlocks.js:1154 +#: js/blocks/GraphicsBlocks.js:1172 msgid "wrap" msgstr "" -#: js/OrnamentBlocks.js:32 -msgid "staccato factor" -msgstr "" - -#: js/OrnamentBlocks.js:108 -msgid "slur factor" -msgstr "" - -#: js/OrnamentBlocks.js:217 -#: js/OrnamentBlocks.js:309 -#.TRANS: the neighbor refers to a neighboring note, e.g., D is a neighbor of C -msgid "neighbor" -msgstr "" - -#: js/OrnamentBlocks.js:293 -msgid "The Neighbor block rapidly switches between neighboring pitches." -msgstr "" - -#: js/OrnamentBlocks.js:364 -msgid "glide" -msgstr "" - -#: js/OrnamentBlocks.js:479 -#: js/OrnamentBlocks.js:643 -msgid "slur" -msgstr "" - -#: js/OrnamentBlocks.js:558 -#: js/OrnamentBlocks.js:710 -#.TRANS: play each note sharply detached from the others -msgid "staccato" -msgstr "" - -#: js/PenBlocks.js:24 +#: js/blocks/PenBlocks.js:30 msgid "purple" msgstr "" -#: js/PenBlocks.js:37 -#: js/SensorsBlocks.js:521 -#: plugins/rodi.rtp:219 -msgid "blue" -msgstr "" - -#: js/PenBlocks.js:50 -#: js/SensorsBlocks.js:577 -#: plugins/rodi.rtp:218 -msgid "green" -msgstr "" - -#: js/PenBlocks.js:63 +#: js/blocks/PenBlocks.js:80 msgid "yellow" msgstr "" -#: js/PenBlocks.js:76 +#: js/blocks/PenBlocks.js:96 #: plugins/nutrition.rtp:164 msgid "orange" msgstr "" -#: js/PenBlocks.js:89 -#: js/SensorsBlocks.js:633 -#: plugins/rodi.rtp:217 -msgid "red" -msgstr "" - -#: js/PenBlocks.js:102 +#: js/blocks/PenBlocks.js:128 msgid "white" msgstr "" -#: js/PenBlocks.js:115 +#: js/blocks/PenBlocks.js:144 msgid "black" msgstr "" -#: js/PenBlocks.js:128 +#: js/blocks/PenBlocks.js:163 msgid "begin fill" msgstr "" -#: js/PenBlocks.js:143 +#: js/blocks/PenBlocks.js:190 msgid "end fill" msgstr "" -#: js/PenBlocks.js:159 -#: js/PenBlocks.js:386 +#: js/blocks/PenBlocks.js:212 +#: js/blocks/PenBlocks.js:560 #.TRANS: set the background color msgid "background" msgstr "" -#: js/PenBlocks.js:206 -#: js/DictActions.js:71 -#: js/DictActions.js:149 -#: js/DictActions.js:186 +#: js/blocks/PenBlocks.js:274 +#: js/turtleactions/DictActions.js:71 +#: js/turtleactions/DictActions.js:138 +#: js/turtleactions/DictActions.js:170 msgid "grey" msgstr "" -#: js/PenBlocks.js:210 +#: js/blocks/PenBlocks.js:282 msgid "The Grey block returns the current pen grey value." msgstr "" -#: js/PenBlocks.js:243 -#: js/DictActions.js:69 -#: js/DictActions.js:147 -#: js/DictActions.js:185 +#: js/blocks/PenBlocks.js:340 +#: js/turtleactions/DictActions.js:69 +#: js/turtleactions/DictActions.js:136 +#: js/turtleactions/DictActions.js:169 msgid "shade" msgstr "" -#: js/PenBlocks.js:247 +#: js/blocks/PenBlocks.js:347 msgid "The Shade block returns the current pen shade value." msgstr "" -#: js/PenBlocks.js:280 -#: js/DictActions.js:67 -#: js/DictActions.js:145 -#: js/DictActions.js:184 +#: js/blocks/PenBlocks.js:405 +#: js/turtleactions/DictActions.js:67 +#: js/turtleactions/DictActions.js:134 +#: js/turtleactions/DictActions.js:168 msgid "color" msgstr "" -#: js/PenBlocks.js:285 +#: js/blocks/PenBlocks.js:415 msgid "The Color block returns the current pen color." msgstr "" -#: js/PenBlocks.js:318 -#: js/DictActions.js:73 -#: js/DictActions.js:151 -#: js/DictActions.js:187 +#: js/blocks/PenBlocks.js:470 +#: js/turtleactions/DictActions.js:73 +#: js/turtleactions/DictActions.js:140 +#: js/turtleactions/DictActions.js:171 msgid "pen size" msgstr "" -#: js/PenBlocks.js:322 +#: js/blocks/PenBlocks.js:474 msgid "The Pen size block returns the current pen size value." msgstr "" -#: js/PenBlocks.js:355 +#: js/blocks/PenBlocks.js:513 msgid "set font" msgstr "" -#: js/PenBlocks.js:358 +#: js/blocks/PenBlocks.js:518 msgid "The Set font block sets the font used by the Show block." msgstr "" -#: js/PenBlocks.js:391 +#: js/blocks/PenBlocks.js:567 msgid "The Background block sets the window background color." msgstr "" -#: js/PenBlocks.js:408 +#: js/blocks/PenBlocks.js:598 msgid "The Hollow line block creates a line with a hollow center." msgstr "" -#: js/PenBlocks.js:415 +#: js/blocks/PenBlocks.js:606 #.TRANS: draw a line logo has a hollow space down its center msgid "hollow line" msgstr "" -#: js/PenBlocks.js:462 +#: js/blocks/PenBlocks.js:675 msgid "The Fill block fills in a shape with a color." msgstr "" -#: js/PenBlocks.js:470 +#: js/blocks/PenBlocks.js:684 #.TRANS: fill in as a solid color msgid "fill" msgstr "" -#: js/PenBlocks.js:527 +#: js/blocks/PenBlocks.js:761 #.TRANS: raise up the pen so logo it does not draw when it is moved msgid "pen up" msgstr "" -#: js/PenBlocks.js:532 +#: js/blocks/PenBlocks.js:768 msgid "The Pen-up block raises the pen so that it does not draw." msgstr "" -#: js/PenBlocks.js:552 +#: js/blocks/PenBlocks.js:802 #.TRANS: put down the pen so logo it draws when it is moved msgid "pen down" msgstr "" -#: js/PenBlocks.js:557 +#: js/blocks/PenBlocks.js:810 msgid "The Pen-down block lowers the pen so that it draws." msgstr "" -#: js/PenBlocks.js:577 +#: js/blocks/PenBlocks.js:844 #.TRANS: set the width of the line drawn by the pen msgid "set pen size" msgstr "" -#: js/PenBlocks.js:583 +#: js/blocks/PenBlocks.js:854 msgid "The Set-pen-size block changes the size of the pen." msgstr "" -#: js/PenBlocks.js:623 +#: js/blocks/PenBlocks.js:913 #.TRANS: set degree of translucence of the pen color msgid "set translucency" msgstr "" -#: js/PenBlocks.js:627 +#: js/blocks/PenBlocks.js:921 msgid "The Set translucency block changes the opacity of the pen." msgstr "" -#: js/PenBlocks.js:668 +#: js/blocks/PenBlocks.js:981 msgid "set hue" msgstr "" -#: js/PenBlocks.js:672 +#: js/blocks/PenBlocks.js:989 msgid "The Set hue block changes the color of the pen." msgstr "" -#: js/PenBlocks.js:711 +#: js/blocks/PenBlocks.js:1047 msgid "set shade" msgstr "" -#: js/PenBlocks.js:717 +#: js/blocks/PenBlocks.js:1057 msgid "The Set-shade block changes the pen color from dark to light." msgstr "" -#: js/PenBlocks.js:757 +#: js/blocks/PenBlocks.js:1111 #.TRANS: set the level of vividness of the pen color msgid "set grey" msgstr "" -#: js/PenBlocks.js:761 +#: js/blocks/PenBlocks.js:1119 msgid "The Set grey block changes the vividness of the pen color." msgstr "" -#: js/PenBlocks.js:800 +#: js/blocks/PenBlocks.js:1172 msgid "set color" msgstr "" -#: js/PenBlocks.js:806 +#: js/blocks/PenBlocks.js:1182 msgid "The Set-color block changes the pen color." msgstr "" -#: js/VolumeBlocks.js:35 -msgid "synth volume" -msgstr "" - -#: js/VolumeBlocks.js:39 -msgid "The Synth volume block returns the current volume of the current synthesizer." -msgstr "" - -#: js/VolumeBlocks.js:47 -#: js/musicutils.js:730 -#: js/synthutils.js:56 -#.TRANS: musical instrument -msgid "piano" -msgstr "" - -#: js/VolumeBlocks.js:105 -msgid "master volume" -msgstr "" - -#: js/VolumeBlocks.js:109 -msgid "The Master volume block returns the master volume." -msgstr "" - -#: js/VolumeBlocks.js:355 -#: js/VolumeBlocks.js:524 -msgid "set synth volume" -msgstr "" - -#: js/VolumeBlocks.js:362 -#: js/VolumeBlocks.js:545 -msgid "synth" -msgstr "" - -#: js/VolumeBlocks.js:403 -#: js/VolumeBlocks.js:577 -#: js/VolumeBlocks.js:740 -#: js/VolumeActions.js:173 -msgid "Setting volume to 0." -msgstr "" - -#: js/VolumeBlocks.js:440 -msgid "Synth not found" -msgstr "" - -#: js/VolumeBlocks.js:494 -msgid "set drum volume" -msgstr "" - -#: js/VolumeBlocks.js:530 -msgid "The Set synth volume block will change the volume of a particular synth," -msgstr "" - -#: js/VolumeBlocks.js:532 -msgid "eg guitar violin snare drum etc." -msgstr "" - -#: js/VolumeBlocks.js:534 -msgid "The default volume is 50." -msgstr "" - -#: js/VolumeBlocks.js:536 -msgid "The range is 0 for silence to 100 for full volume." -msgstr "" - -#: js/VolumeBlocks.js:597 -msgid "set panning" -msgstr "" - -#: js/VolumeBlocks.js:603 -msgid "The Set Panning block sets the panning for all synthesizers." -msgstr "" - -#: js/VolumeBlocks.js:625 -msgid "Warning: Sound is coming out from only the left or right side." -msgstr "" - -#: js/VolumeBlocks.js:647 -#: js/VolumeBlocks.js:695 -msgid "set master volume" -msgstr "" - -#: js/VolumeBlocks.js:653 -msgid "The Set master volume block sets the volume for all synthesizers." -msgstr "" - -#: js/VolumeBlocks.js:784 -msgid "The Set relative volume block changes the volume of the contained notes." -msgstr "" - -#: js/VolumeBlocks.js:791 -msgid "set relative volume" -msgstr "" - -#: js/VolumeBlocks.js:857 -msgid "decrescendo" -msgstr "" - -#: js/VolumeBlocks.js:921 -msgid "crescendo" -msgstr "" - -#: js/ToneBlocks.js:34 -msgid "oscillator" -msgstr "" - -#: js/ToneBlocks.js:44 -#: js/timbre.js:1562 -#.TRANS: Partials refers to the number of sine waves combined into the sound. -msgid "partials" -msgstr "" - -#: js/ToneBlocks.js:76 -msgid "You are adding multiple oscillator blocks." -msgstr "" - -#: js/ToneBlocks.js:144 -#: js/timbre.js:1225 -#.TRANS: a duo synthesizer combines a synth with a sequencer -msgid "duo synth" -msgstr "" - -#: js/ToneBlocks.js:149 -msgid "The Duo synth block is a duo-frequency modulator used to define a timbre." -msgstr "" - -#: js/ToneBlocks.js:157 -#: js/timbre.js:1476 -msgid "vibrato rate" -msgstr "" - -#: js/ToneBlocks.js:157 -msgid "vibrato intensity" -msgstr "" - -#: js/ToneBlocks.js:185 -#: js/timbre.js:1221 -#.TRANS: AM (amplitude modulation) synthesizer -msgid "AM synth" -msgstr "" - -#: js/ToneBlocks.js:189 -msgid "The AM synth block is an amplitude modulator used to define a timbre." -msgstr "" - -#: js/ToneBlocks.js:224 -#: js/timbre.js:1223 -#.TRANS: FM (frequency modulation) synthesizer -msgid "FM synth" -msgstr "" - -#: js/ToneBlocks.js:228 -msgid "The FM synth block is a frequency modulator used to define a timbre." +#: js/blocks/PitchBlocks.js:141 +#.TRANS: musical transposition (adjustment of pitch up or down) +msgid "transposition" msgstr "" -#: js/ToneBlocks.js:262 -msgid "partial" +#: js/blocks/PitchBlocks.js:168 +#.TRANS: step down one note in current musical scale +msgid "scalar step down" msgstr "" -#: js/ToneBlocks.js:265 -msgid "The Partial block is used to specify a weight for a specific partial harmonic." +#: js/blocks/PitchBlocks.js:172 +msgid "The Scalar step down block returns the number of semi-tones down to the previous note in the current key and mode." msgstr "" -#: js/ToneBlocks.js:284 -#.TRANS: partials are weighted components in a harmonic series -msgid "Partial weight must be between 0 and 1." +#: js/blocks/PitchBlocks.js:190 +#.TRANS: step up one note in current musical scale +msgid "scalar step up" msgstr "" -#: js/ToneBlocks.js:297 -#.TRANS: partials are weighted components in a harmonic series -msgid "Partial block should be used inside of a Weighted-partials block." +#: js/blocks/PitchBlocks.js:194 +msgid "The Scalar step up block returns the number of semi-tones up to the next note in the current key and mode." msgstr "" -#: js/ToneBlocks.js:325 -#.TRANS: partials are weighted components in a harmonic series -msgid "weighted partials" +#: js/blocks/PitchBlocks.js:212 +#.TRANS: the change measured in half-steps between the current pitch and the previous pitch +msgid "change in pitch" msgstr "" -#: js/ToneBlocks.js:383 -msgid "The Harmonic block will add harmonics to the contained notes." +#: js/blocks/PitchBlocks.js:216 +msgid "The Change in pitch block is the difference (in half steps) between the current pitch being played and the previous pitch played." msgstr "" -#: js/ToneBlocks.js:390 -#.TRANS: A harmonic is an overtone. -msgid "harmonic" +#: js/blocks/PitchBlocks.js:243 +#.TRANS: the change measured in scale-steps between the current pitch and the previous pitch +msgid "scalar change in pitch" msgstr "" -#: js/ToneBlocks.js:431 -msgid "The Distortion block adds distortion to the pitch." +#: js/blocks/PitchBlocks.js:250 +#: js/blocks/PitchBlocks.js:432 +#: js/blocks/PitchBlocks.js:1667 +#: js/turtleactions/DictActions.js:89 +#: js/widgets/temperament.js:610 +#: js/widgets/temperament.js:614 +#: js/widgets/temperament.js:855 +#.TRANS: convert current note to piano key (1-88) +#.TRANS: a mapping of pitch to the 88 piano keys +msgid "pitch number" msgstr "" -#: js/ToneBlocks.js:438 -#: js/timbre.js:2100 -#.TRANS: distortion is an alteration in the sound -msgid "distortion" +#: js/blocks/PitchBlocks.js:256 +msgid "The Pitch number block is the value of the pitch of the note currently being played." msgstr "" -#: js/ToneBlocks.js:487 -msgid "The Tremolo block adds a wavering effect." +#: js/blocks/PitchBlocks.js:329 +#: js/blocks/PitchBlocks.js:433 +#.TRANS: the current pitch expressed in Hertz +msgid "pitch in hertz" msgstr "" -#: js/ToneBlocks.js:495 -#: js/timbre.js:2092 -#.TRANS: a wavering effect in a musical tone -msgid "tremolo" +#: js/blocks/PitchBlocks.js:334 +msgid "The Pitch in Hertz block is the value in Hertz of the pitch of the note currently being played." msgstr "" -#: js/ToneBlocks.js:500 -#: js/ToneBlocks.js:569 -#: js/ToneBlocks.js:630 -#: js/ToneBlocks.js:689 -#: js/timbre.js:2134 -#: js/timbre.js:2222 -#: js/timbre.js:2317 -#: js/timbre.js:2419 -#.TRANS: rate at which tremolo wavers -msgid "rate" +#: js/blocks/PitchBlocks.js:367 +#: js/turtleactions/DictActions.js:87 +msgid "current pitch" msgstr "" -#: js/ToneBlocks.js:502 -#: js/ToneBlocks.js:630 -#: js/timbre.js:2137 -#: js/timbre.js:2328 -#.TRANS: amplitude of tremolo waver -msgid "depth" +#: js/blocks/PitchBlocks.js:373 +msgid "The Current Pitch block is used with the Pitch Converter block. In the example above, current pitch, sol 4, is displayed as 392 hertz." msgstr "" -#: js/ToneBlocks.js:559 -msgid "The Phaser block adds a sweeping sound." +#: js/blocks/PitchBlocks.js:410 +msgid "This block converts the pitch value of the last note played into different formats such as hertz, letter name, pitch number, et al." msgstr "" -#: js/ToneBlocks.js:566 -#: js/timbre.js:2098 -#.TRANS: alter the phase of the sound -msgid "phaser" +#: js/blocks/PitchBlocks.js:434 +msgid "alphabet" msgstr "" -#: js/ToneBlocks.js:569 -#: js/timbre.js:2422 -msgid "octaves" +#: js/blocks/PitchBlocks.js:436 +#.TRANS: Translate as "alphabet class" +msgid "letter class" msgstr "" -#: js/ToneBlocks.js:569 -#: js/timbre.js:2425 -msgid "base frequency" +#: js/blocks/PitchBlocks.js:437 +msgid "solfege class" msgstr "" -#: js/ToneBlocks.js:619 -msgid "The Chorus block adds a chorus effect." +#: js/blocks/PitchBlocks.js:438 +msgid "staff y" msgstr "" -#: js/ToneBlocks.js:627 -#: js/timbre.js:2096 -#.TRANS: musical effect to simulate a choral sound -msgid "chorus" +#: js/blocks/PitchBlocks.js:439 +msgid "solfege syllable" msgstr "" -#: js/ToneBlocks.js:630 -msgid "delay" +#: js/blocks/PitchBlocks.js:440 +msgid "pitch class" msgstr "" -#: js/ToneBlocks.js:678 -msgid "The Vibrato block adds a rapid, slight variation in pitch." +#: js/blocks/PitchBlocks.js:441 +msgid "scalar class" msgstr "" -#: js/ToneBlocks.js:686 -#: js/timbre.js:2094 -#.TRANS: a rapid, slight variation in pitch -msgid "vibrato" +#: js/blocks/PitchBlocks.js:443 +msgid "nth degree" msgstr "" -#: js/ToneBlocks.js:689 -#: js/timbre.js:2221 -msgid "intensity" +#: js/blocks/PitchBlocks.js:444 +msgid "pitch to shade" msgstr "" -#: js/ToneBlocks.js:733 -#.TRANS: select synthesizer -msgid "set synth" +#: js/blocks/PitchBlocks.js:445 +msgid "pitch to color" msgstr "" -#: js/ToneBlocks.js:804 -msgid "synth name" +#: js/blocks/PitchBlocks.js:629 +#: js/widgets/musickeyboard.js:735 +#.TRANS: MIDI is a technical standard for electronic music +msgid "MIDI" msgstr "" -#: js/ToneBlocks.js:842 -msgid "set default instrument" +#: js/blocks/PitchBlocks.js:642 +#.TRANS: set an offset associated with the numeric piano keyboard mapping +msgid "set pitch number offset" msgstr "" -#: js/ToneBlocks.js:895 -#: js/ToneBlocks.js:943 -#.TRANS: set the characteristics of a custom instrument -msgid "set instrument" +#: js/blocks/PitchBlocks.js:645 +msgid "The Set pitch number offset block is used to set the offset for mapping pitch numbers to pitch and octave." msgstr "" -#: js/ToneBlocks.js:898 -#: js/ToneBlocks.js:926 -#: js/ToneBlocks.js:932 -msgid "The Set instrument block selects a voice for the synthesizer," +#: js/blocks/PitchBlocks.js:679 +#.TRANS: convert piano key number (1-88) to pitch +msgid "number to pitch" msgstr "" -#: js/ToneBlocks.js:900 -#: js/ToneBlocks.js:934 -msgid "eg guitar piano violin or cello." +#: js/blocks/PitchBlocks.js:682 +msgid "The Number to pitch block will convert a pitch number to a pich name." msgstr "" -#: js/ToneBlocks.js:1015 -msgid "Import a sound file to use as an instrument and set its pitch center." +#: js/blocks/PitchBlocks.js:715 +#.TRANS: convert piano key number (1-88) to octave +msgid "number to octave" msgstr "" -#: js/ToneBlocks.js:1110 -msgid "Upload a sound file to connect with the sample block." +#: js/blocks/PitchBlocks.js:717 +msgid "The Number to octave block will convert a pitch number to an octave." msgstr "" -#: js/MeterBlocks.js:34 -#.TRANS: musical meter (time signature), e.g., 4:4 -msgid "current meter" +#: js/blocks/PitchBlocks.js:726 +msgid "y to pitch" msgstr "" -#: js/MeterBlocks.js:85 -#.TRANS: number of beats per minute -msgid "beat factor" +#: js/blocks/PitchBlocks.js:729 +msgid "Y to pitch block will convert a staff y position to corresponding pitch notation." msgstr "" -#: js/MeterBlocks.js:161 -msgid "The Beats per minute block returns the current beats per minute." +#: js/blocks/PitchBlocks.js:841 +msgid "accidental selector" msgstr "" -#: js/MeterBlocks.js:169 -#: js/status.js:152 -#.TRANS: number of beats played per minute -msgid "beats per minute2" +#: js/blocks/PitchBlocks.js:844 +msgid "The Accidental selector block is used to choose between double-sharp, sharp, natural, flat, and double-flat." msgstr "" -#: js/MeterBlocks.js:169 -#: js/MeterBlocks.js:1056 -#: js/MeterBlocks.js:1133 -#: js/MeterBlocks.js:1211 -#.TRANS: sets tempo by defining a beat and beats per minute -msgid "beats per minute" +#: js/blocks/PitchBlocks.js:858 +msgid "Pitch can be specified in terms of ni dha pa ma ga re sa." msgstr "" -#: js/MeterBlocks.js:233 -#.TRANS: count of current musical measure in meter -msgid "measure count" +#: js/blocks/PitchBlocks.js:872 +msgid "Pitch can be specified in terms of C D E F G A B." msgstr "" -#: js/MeterBlocks.js:241 -msgid "The Measure count block returns the current measure." +#: js/blocks/PitchBlocks.js:884 +msgid "solfege" msgstr "" -#: js/MeterBlocks.js:290 -#.TRANS: count of current beat in the meter -msgid "beat count" +#: js/blocks/PitchBlocks.js:887 +msgid "Pitch can be specified in terms of do re mi fa sol la ti." msgstr "" -#: js/MeterBlocks.js:300 -#: js/MeterBlocks.js:311 -#: js/MeterBlocks.js:565 -#: js/MeterBlocks.js:576 -msgid "The Beat count block is the number of the current beat," +#: js/blocks/PitchBlocks.js:922 +msgid "The Invert block rotates any contained notes around a target note." msgstr "" -#: js/MeterBlocks.js:313 -#: js/MeterBlocks.js:578 -msgid "eg 1, 2, 3, or 4." +#: js/blocks/PitchBlocks.js:929 +#.TRANS: pitch inversion rotates a pitch around another pitch +msgid "invert" msgstr "" -#: js/MeterBlocks.js:368 -#.TRANS: count the number of notes -msgid "sum note values" +#: js/blocks/PitchBlocks.js:968 +#.TRANS: pitch inversion rotates a pitch around another pitch (odd number) +msgid "invert (odd)" msgstr "" -#: js/MeterBlocks.js:376 -#: js/MeterBlocks.js:440 -msgid "The Note counter block can be used to count the number of contained notes." +#: js/blocks/PitchBlocks.js:1001 +#.TRANS: pitch inversion rotates a pitch around another pitch (even number) +msgid "invert (even)" msgstr "" -#: js/MeterBlocks.js:432 -#.TRANS: count the number of notes -msgid "note counter" +#: js/blocks/PitchBlocks.js:1022 +#.TRANS: register is the octave of the current pitch +msgid "register" msgstr "" -#: js/MeterBlocks.js:496 -#.TRANS: number of whole notes that have been played -msgid "whole notes played" +#: js/blocks/PitchBlocks.js:1026 +msgid "The Register block provides an easy way to modify the register (octave) of the notes that follow it." msgstr "" -#: js/MeterBlocks.js:505 -msgid "The Whole notes played block returns the total number of whole notes played." +#: js/blocks/PitchBlocks.js:1047 +#.TRANS: cents are units used to specify the ratio between pitches. There are 100 cents between successive notes. +msgid "50 cents" msgstr "" -#: js/MeterBlocks.js:555 -#: js/DictActions.js:83 -#.TRANS: number of notes that have been played -msgid "notes played" +#: js/blocks/PitchBlocks.js:1102 +msgid "The Semi-tone transposition block will shift the pitches contained inside Note blocks up (or down) by half steps." msgstr "" -#: js/MeterBlocks.js:653 -msgid "The No clock block decouples the notes from the master clock." +#: js/blocks/PitchBlocks.js:1104 +msgid "In the example shown above, sol is shifted up to sol#." msgstr "" -#: js/MeterBlocks.js:661 -#.TRANS: don't lock notes to master clock -msgid "no clock" +#: js/blocks/PitchBlocks.js:1110 +#.TRANS: adjust the amount of shift (up or down) of a pitch +msgid "semi-tone transpose" msgstr "" -#: js/MeterBlocks.js:700 -msgid "on weak beat do" +#: js/blocks/PitchBlocks.js:1143 +msgid "The Transpose by Ratio block will shift the pitches contained inside Note blocks up (or down) by a ratio" msgstr "" -#: js/MeterBlocks.js:705 -msgid "The On-weak-beat block lets you specify actions to take on weak (off) beats." +#: js/blocks/PitchBlocks.js:1149 +#.TRANS: adjust the amount of shift (up or down) of a pitch +msgid "transpose by ratio" msgstr "" -#: js/MeterBlocks.js:750 -msgid "on strong beat" +#: js/blocks/PitchBlocks.js:1232 +#.TRANS: down sixth means the note is five scale degrees below current note +msgid "down sixth" msgstr "" -#: js/MeterBlocks.js:758 -msgid "The On-strong-beat block lets you specify actions to take on specified beats." +#: js/blocks/PitchBlocks.js:1251 +#.TRANS: down third means the note is two scale degrees below current note +msgid "down third" msgstr "" -#: js/MeterBlocks.js:769 -msgid "beat" +#: js/blocks/PitchBlocks.js:1270 +#.TRANS: seventh means the note is the six scale degrees above current note +msgid "seventh" msgstr "" -#: js/MeterBlocks.js:813 -msgid "on every beat do" +#: js/blocks/PitchBlocks.js:1289 +#.TRANS: sixth means the note is the five scale degrees above current note +msgid "sixth" msgstr "" -#: js/MeterBlocks.js:821 -msgid "The On-every-beat block lets you specify actions to take on every beat." +#: js/blocks/PitchBlocks.js:1308 +#.TRANS: fifth means the note is the four scale degrees above current note +msgid "fifth" msgstr "" -#: js/MeterBlocks.js:874 -msgid "on every note do" +#: js/blocks/PitchBlocks.js:1328 +#.TRANS: fourth means the note is three scale degrees above current note +msgid "fourth" msgstr "" -#: js/MeterBlocks.js:882 -msgid "The On-every-note block lets you specify actions to take on every note." +#: js/blocks/PitchBlocks.js:1347 +#.TRANS: third means the note is two scale degrees above current note +msgid "third" msgstr "" -#: js/MeterBlocks.js:928 -#: js/MeterBlocks.js:999 -#.TRANS: sets tempo by defining a beat and beats per minute -msgid "master beats per minute" +#: js/blocks/PitchBlocks.js:1366 +#.TRANS: second means the note is one scale degree above current note +msgid "second" msgstr "" -#: js/MeterBlocks.js:952 -#: js/MeterBlocks.js:1078 -#: js/MeterBlocks.js:1135 -msgid "bpm" +#: js/blocks/PitchBlocks.js:1407 +msgid "The Scalar transposition block will shift the pitches contained inside Note blocks up (or down) the scale." msgstr "" -#: js/MeterBlocks.js:952 -#: js/MeterBlocks.js:1078 -#: js/MeterBlocks.js:1135 -msgid "beat value" +#: js/blocks/PitchBlocks.js:1409 +msgid "In the example shown above, sol is shifted up to la." msgstr "" -#: js/MeterBlocks.js:1024 -#: js/MeterBlocks.js:1167 -#: js/MeterBlocks.js:1241 -msgid "Beats per minute must be > 30." +#: js/blocks/PitchBlocks.js:1416 +#.TRANS: adjust the amount of shift (up or down) of a pitch by musical scale (scalar) steps +msgid "scalar transpose" msgstr "" -#: js/MeterBlocks.js:1027 -#: js/MeterBlocks.js:1170 -#: js/MeterBlocks.js:1244 -msgid "Maximum beats per minute is 1000." +#: js/blocks/PitchBlocks.js:1451 +msgid "The Accidental block is used to create sharps and flats" msgstr "" -#: js/MeterBlocks.js:1068 -msgid "The Beats per minute block sets the number of 1/4 notes per minute." +#: js/blocks/PitchBlocks.js:1458 +#.TRANS: An accidental is a modification to a pitch, e.g., sharp or flat. +msgid "accidental override" msgstr "" -#: js/MeterBlocks.js:1279 -#.TRANS: anacrusis -msgid "pickup" +#: js/blocks/PitchBlocks.js:1581 +msgid "The Hertz block (in combination with a Number block) will play a sound at the specified frequency." msgstr "" -#: js/MeterBlocks.js:1367 -msgid "number of beats" +#: js/blocks/PitchBlocks.js:1671 +msgid "The Pitch Number block will play a pitch associated by its number, e.g. 0 for C and 7 for G." msgstr "" -#: js/DictBlocks.js:77 -msgid "show dictionary" +#: js/blocks/PitchBlocks.js:1703 +#: js/blocks/PitchBlocks.js:1745 +#.TRANS: a numeric mapping of the notes in an octave based on the musical mode +#.TRANS: a numeric mapping of the notes in an octave based on the musical mode +msgid "nth modal pitch" msgstr "" -#: js/DictBlocks.js:129 -msgid "The Dictionary block returns a dictionary." +#: js/blocks/PitchBlocks.js:1706 +msgid "n^th Modal Pitch takes the pattern of pitches in semitones for a mode and makes each point a degree of the mode," msgstr "" -#: js/DictBlocks.js:197 -#: js/DictBlocks.js:339 -msgid "The Get-dict block returns a value in the dictionary for a specified key." +#: js/blocks/PitchBlocks.js:1708 +msgid "starting from 1 and regardless of tonal framework (i.e. not always 8 notes in the octave)" msgstr "" -#: js/DictBlocks.js:212 -#: js/DictBlocks.js:354 -#.TRANS: retrieve a value from the dictionary with a given key -msgid "get value" +#: js/blocks/PitchBlocks.js:1749 +msgid "N^th Modal Pitch takes a number as an input as the n^th degree for the given mode. 0 is the first position, 1 is the second, -1 is the note before the first etc." msgstr "" -#: js/DictBlocks.js:215 -#: js/DictBlocks.js:216 -#: js/DictBlocks.js:289 -#: js/DictBlocks.js:290 -#: js/DictBlocks.js:357 -#: js/DictBlocks.js:430 -#: js/DictBlocks.js:431 -msgid "key2" +#: js/blocks/PitchBlocks.js:1751 +msgid "The pitches change according to the mode specified without any need for respellings." msgstr "" -#: js/DictBlocks.js:271 -#: js/DictBlocks.js:411 -msgid "The Set-dict block sets a value in the dictionary for a specified key." +#: js/blocks/PitchBlocks.js:1790 +msgid "Scale Degree is a common convention in music. Scale Degree offers seven possible positions in the scale (1-7) and can be modified via accidentals." msgstr "" -#: js/DictBlocks.js:286 -#: js/DictBlocks.js:427 -#.TRANS: set a value in the dictionary for a given key -msgid "set value" +#: js/blocks/PitchBlocks.js:1792 +msgid "Scale Degree 1 is always the first pitch in a given scale, regardless of octave." msgstr "" -#: js/ExtrasBlocks.js:33 -msgid "fraction" +#: js/blocks/PitchBlocks.js:1814 +#.TRANS: step some number of notes in current musical scale +msgid "scalar step" msgstr "" -#: js/ExtrasBlocks.js:36 -msgid "Convert a float to a fraction" +#: js/blocks/PitchBlocks.js:1819 +msgid "The Scalar Step block (in combination with a Number block) will play the next pitch in a scale," msgstr "" -#: js/ExtrasBlocks.js:93 -msgid "save as ABC" +#: js/blocks/PitchBlocks.js:1821 +msgid "eg if the last note played was sol, Scalar Step 1 will play la." msgstr "" -#: js/ExtrasBlocks.js:96 -#: js/ExtrasBlocks.js:132 -#: js/ExtrasBlocks.js:168 -msgid "title" +#: js/blocks/PitchBlocks.js:1857 +msgid "The Pitch block specifies the pitch name and octave of a note that together determine the frequency of the note." msgstr "" -#: js/ExtrasBlocks.js:129 -msgid "save as Lilypond" +#: js/blocks/ProgramBlocks.js:33 +msgid "The Load-heap-from-app block loads the heap from a web page." msgstr "" -#: js/ExtrasBlocks.js:165 -msgid "save as SVG" +#: js/blocks/ProgramBlocks.js:44 +#.TRANS: load the heap contents from a URL +msgid "load heap from App" msgstr "" -#: js/ExtrasBlocks.js:216 -msgid "no background" +#: js/blocks/ProgramBlocks.js:95 +msgid "Error parsing JSON data:" msgstr "" -#: js/ExtrasBlocks.js:219 -msgid "The No background block eliminates the background from the saved SVG output." +#: js/blocks/ProgramBlocks.js:100 +msgid "404: Page not found" msgstr "" -#: js/ExtrasBlocks.js:247 -msgid "show blocks" +#: js/blocks/ProgramBlocks.js:133 +msgid "The Save-heap-to-app block saves the heap to a web page." msgstr "" -#: js/ExtrasBlocks.js:249 -msgid "The Show blocks block shows the blocks." +#: js/blocks/ProgramBlocks.js:144 +#.TRANS: save the heap contents to a URL +msgid "save heap to App" msgstr "" -#: js/ExtrasBlocks.js:274 -msgid "hide blocks" +#: js/blocks/ProgramBlocks.js:189 +msgid "Cannot find a valid heap for" msgstr "" -#: js/ExtrasBlocks.js:276 -msgid "The Hide blocks block hides the blocks." +#: js/blocks/ProgramBlocks.js:206 +msgid "The Load-heap block loads the heap from a file." msgstr "" -#: js/ExtrasBlocks.js:305 -#: js/ExtrasBlocks.js:335 -msgid "The Space block is used to add space between blocks." +#: js/blocks/ProgramBlocks.js:217 +#.TRANS: load the heap from a file +msgid "load heap" msgstr "" -#: js/ExtrasBlocks.js:373 -msgid "wait" +#: js/blocks/ProgramBlocks.js:270 +msgid "The file you selected does not contain a valid heap." msgstr "" -#: js/ExtrasBlocks.js:376 -msgid "The Wait block pauses the program for a specified number of seconds." +#: js/blocks/ProgramBlocks.js:275 +msgid "The loadHeap block needs a loadFile block." msgstr "" -#: js/ExtrasBlocks.js:430 -#: plugins/facebook.rtp:30 -msgid "comment" +#: js/blocks/ProgramBlocks.js:291 +msgid "The Set-heap block loads the heap." msgstr "" -#: js/ExtrasBlocks.js:466 -msgid "print" +#: js/blocks/ProgramBlocks.js:340 +msgid "The block you selected does not contain a valid heap." msgstr "" -#: js/ExtrasBlocks.js:473 -msgid "The Print block displays text at the top of the screen." +#: js/blocks/ProgramBlocks.js:343 +msgid "The Set heap block needs a heap." msgstr "" -#: js/ExtrasBlocks.js:579 -msgid "display grid" +#: js/blocks/ProgramBlocks.js:360 +msgid "The Load-dictionary block loads a dictionary from a file." msgstr "" -#: js/ExtrasBlocks.js:584 -msgid "The Display Grid Block changes the grid type" +#: js/blocks/ProgramBlocks.js:372 +#.TRANS: load a dictionary from a file +msgid "load dictionary" msgstr "" -#: js/ExtrasBlocks.js:686 -#: js/ExtrasBlocks.js:705 -#: js/ExtrasBlocks.js:728 -#: js/ExtrasBlocks.js:751 -#: js/ExtrasBlocks.js:769 -#: js/ExtrasBlocks.js:788 -#: js/ExtrasBlocks.js:807 -#: js/ExtrasBlocks.js:826 -msgid "unknown" +#: js/blocks/ProgramBlocks.js:390 +#: js/blocks/ProgramBlocks.js:658 +#: js/blocks/ToneBlocks.js:1025 +msgid "file" msgstr "" -#: js/SensorsBlocks.js:36 -msgid "The Input block prompts for keyboard input." +#: js/blocks/ProgramBlocks.js:444 +msgid "The file you selected does not contain a valid dictionary." msgstr "" -#: js/SensorsBlocks.js:46 -msgid "input" +#: js/blocks/ProgramBlocks.js:449 +msgid "The load dictionary block needs a load file block." msgstr "" -#: js/SensorsBlocks.js:64 -msgid "Input a value" +#: js/blocks/ProgramBlocks.js:466 +msgid "The Set-dictionary block loads a dictionary." msgstr "" -#: js/SensorsBlocks.js:126 -msgid "input value" +#: js/blocks/ProgramBlocks.js:477 +#.TRANS: load a dictionary from a JSON +msgid "set dictionary" msgstr "" -#: js/SensorsBlocks.js:131 -msgid "The Input-value block stores the input." +#: js/blocks/ProgramBlocks.js:546 +msgid "The block you selected does not contain a valid dictionary." msgstr "" -#: js/SensorsBlocks.js:238 -msgid "loudness" +#: js/blocks/ProgramBlocks.js:550 +msgid "The set dictionary block needs a dictionary." msgstr "" -#: js/SensorsBlocks.js:245 -msgid "The Loudness block returns the volume detected by the microphone." +#: js/blocks/ProgramBlocks.js:567 +msgid "The Save-heap block saves the heap to a file." msgstr "" -#: js/SensorsBlocks.js:300 -msgid "click" +#: js/blocks/ProgramBlocks.js:578 +#.TRANS: save the heap to a file +msgid "save heap" msgstr "" -#: js/SensorsBlocks.js:306 -msgid "The Click block triggers an event if a mouse has been clicked." +#: js/blocks/ProgramBlocks.js:629 +msgid "The Save-dictionary block saves a dictionary to a file." msgstr "" -#: js/SensorsBlocks.js:313 -msgid "The Click block triggers an event if a turtle has been clicked." +#: js/blocks/ProgramBlocks.js:640 +#.TRANS: save a dictionary to a file +msgid "save dictionary" msgstr "" -#: js/SensorsBlocks.js:342 -msgid "cursor over" +#: js/blocks/ProgramBlocks.js:720 +msgid "The Open palette block opens a palette." msgstr "" -#: js/SensorsBlocks.js:387 -msgid "cursor out" +#: js/blocks/ProgramBlocks.js:727 +msgid "open palette" msgstr "" -#: js/SensorsBlocks.js:433 -msgid "cursor button down" +#: js/blocks/ProgramBlocks.js:785 +msgid "The Delete block block removes a block." msgstr "" -#: js/SensorsBlocks.js:477 -msgid "cursor button up" +#: js/blocks/ProgramBlocks.js:797 +#.TRANS: Move this block to the trash. +msgid "delete block" msgstr "" -#: js/SensorsBlocks.js:638 -msgid "The Get red block returns the red component of the pixel under the mouse." +#: js/blocks/ProgramBlocks.js:861 +msgid "The Move block block moves a block." msgstr "" -#: js/SensorsBlocks.js:644 -msgid "The Get red block returns the red component of the pixel under the turtle." +#: js/blocks/ProgramBlocks.js:869 +#.TRANS: Move the position of a block on the screen. +msgid "move block" msgstr "" -#: js/SensorsBlocks.js:685 -#: plugins/rodi.rtp:216 -msgid "pixel color" +#: js/blocks/ProgramBlocks.js:881 +#: js/blocks/ProgramBlocks.js:1048 +msgid "block number" msgstr "" -#: js/SensorsBlocks.js:690 -msgid "The Get pixel block returns the color of the pixel under the mouse." +#: js/blocks/ProgramBlocks.js:935 +#.TRANS: Run program beginning at this block. +msgid "run block" msgstr "" -#: js/SensorsBlocks.js:696 -msgid "The Get pixel block returns the color of the pixel under the turtle." +#: js/blocks/ProgramBlocks.js:1025 +msgid "The Dock block block connections two blocks." msgstr "" -#: js/SensorsBlocks.js:758 -msgid "time" +#: js/blocks/ProgramBlocks.js:1036 +#.TRANS: We can connect a block to another block. +msgid "connect blocks" msgstr "" -#: js/SensorsBlocks.js:804 -msgid "cursor y" +#: js/blocks/ProgramBlocks.js:1048 +msgid "target block" msgstr "" -#: js/SensorsBlocks.js:809 -msgid "The Cursor Y block returns the vertical position of the mouse." +#: js/blocks/ProgramBlocks.js:1048 +msgid "connection number" msgstr "" -#: js/SensorsBlocks.js:845 -msgid "cursor x" +#: js/blocks/ProgramBlocks.js:1140 +msgid "The Make block block creates a new block." msgstr "" -#: js/SensorsBlocks.js:850 -msgid "The Cursor X block returns the horizontal position of the mouse." +#: js/blocks/ProgramBlocks.js:1152 +#.TRANS: Create a new block +msgid "make block" msgstr "" -#: js/SensorsBlocks.js:886 -msgid "mouse button" +#: js/blocks/ProgramBlocks.js:1285 +msgid "Cannot find block" msgstr "" -#: js/SensorsBlocks.js:888 -msgid "The Mouse-button block returns True if the mouse button is pressed." +#: js/blocks/ProgramBlocks.js:1304 +#: js/blocks/ProgramBlocks.js:1313 +msgid "Warning: block argument type mismatch" msgstr "" -#: js/SensorsBlocks.js:934 -msgid "to ASCII" +#: js/blocks/ProgramBlocks.js:1347 +msgid "The Open project block is used to open a project from a web page." msgstr "" -#: js/SensorsBlocks.js:938 -msgid "The To ASCII block converts numbers to letters." +#: js/blocks/ProgramBlocks.js:1357 +msgid "open project" msgstr "" -#: js/SensorsBlocks.js:1005 -msgid "The Keyboard block returns computer keyboard input." +#: js/blocks/ProgramBlocks.js:1410 +msgid "Please enter a valid URL." msgstr "" -#: js/IntervalsActions.js:216 -msgid "Adding missing pitch number 0." +#: js/blocks/ToneBlocks.js:34 +msgid "oscillator" msgstr "" -#: js/IntervalsActions.js:224 -msgid "Ignoring pitch numbers less than zero or greater than eleven." +#: js/blocks/ToneBlocks.js:42 +#: js/blocks/WidgetBlocks.js:179 +#: js/widgets/timbre.js:1558 +#: js/widgets/timbre.js:1808 +#.TRANS: there are different types (sine, triangle, square...) of oscillators. +#.TRANS: type of filter, e.g., lowpass, highpass, etc. +msgid "type" msgstr "" -#: js/IntervalsActions.js:230 -msgid "Ignoring duplicate pitch numbers." +#: js/blocks/ToneBlocks.js:44 +#: js/widgets/timbre.js:1562 +#.TRANS: Partials refers to the number of sine waves combined into the sound. +msgid "partials" msgstr "" -#: js/PitchActions.js:88 -msgid "The Scalar Step Block must be used inside of a Note Block." +#: js/blocks/ToneBlocks.js:76 +msgid "You are adding multiple oscillator blocks." msgstr "" -#: js/PitchActions.js:107 -msgid "The Scalar Step Block must be preceded by a Pitch Block." +#: js/blocks/ToneBlocks.js:144 +#: js/widgets/timbre.js:1225 +#.TRANS: a duo synthesizer combines a synth with a sequencer +msgid "duo synth" msgstr "" -#: js/DrumActions.js:231 -msgid "Noise Block: Did you mean to use a Note block?" +#: js/blocks/ToneBlocks.js:149 +msgid "The Duo synth block is a duo-frequency modulator used to define a timbre." msgstr "" -#: js/MeterActions.js:101 -#: js/MeterActions.js:139 -msgid "beats per minute must be greater than" +#: js/blocks/ToneBlocks.js:157 +#: js/widgets/timbre.js:1476 +msgid "vibrato rate" msgstr "" -#: js/MeterActions.js:111 -#: js/MeterActions.js:149 -msgid "maximum" +#: js/blocks/ToneBlocks.js:157 +msgid "vibrato intensity" msgstr "" -#: js/MeterActions.js:117 -#: js/MeterActions.js:155 -msgid "beats per minute is" +#: js/blocks/ToneBlocks.js:185 +#: js/widgets/timbre.js:1221 +#.TRANS: AM (amplitude modulation) synthesizer +msgid "AM synth" msgstr "" -#: js/ToneActions.js:134 -msgid "Vibrato intensity must be between 1 and 100." +#: js/blocks/ToneBlocks.js:189 +msgid "The AM synth block is an amplitude modulator used to define a timbre." msgstr "" -#: js/ToneActions.js:139 -msgid "Vibrato rate must be greater than 0." +#: js/blocks/ToneBlocks.js:224 +#: js/widgets/timbre.js:1223 +#.TRANS: FM (frequency modulation) synthesizer +msgid "FM synth" msgstr "" -#: js/ToneActions.js:192 -#: js/ToneActions.js:265 -#.TRANS: Depth is the intesity of the tremolo or chorus effect. -msgid "Depth is out of range." +#: js/blocks/ToneBlocks.js:228 +msgid "The FM synth block is a frequency modulator used to define a timbre." msgstr "" -#: js/ToneActions.js:301 -msgid "Distortion must be from 0 to 100." +#: js/blocks/ToneBlocks.js:262 +msgid "partial" msgstr "" -#: js/ToneActions.js:332 -#.TRANS: partials components in a harmonic series -msgid "Partial must be greater than or equal to 0." +#: js/blocks/ToneBlocks.js:265 +msgid "The Partial block is used to specify a weight for a specific partial harmonic." msgstr "" -#: js/ToneActions.js:378 -#: js/ToneActions.js:417 -#: js/ToneActions.js:456 -#: js/timbre.js:782 -msgid "Unable to use synth due to existing oscillator" +#: js/blocks/ToneBlocks.js:284 +#.TRANS: partials are weighted components in a harmonic series +msgid "Partial weight must be between 0 and 1." msgstr "" -#: js/ToneActions.js:388 -#: js/ToneActions.js:427 -msgid "The input cannot be negative." +#: js/blocks/ToneBlocks.js:297 +#.TRANS: partials are weighted components in a harmonic series +msgid "Partial block should be used inside of a Weighted-partials block." msgstr "" -#: js/DictActions.js:75 -#: js/DictActions.js:153 -#: js/DictActions.js:188 -msgid "font" +#: js/blocks/ToneBlocks.js:325 +#.TRANS: partials are weighted components in a harmonic series +msgid "weighted partials" msgstr "" -#: js/musicutils.js:363 -#: js/musicutils.js:471 -#: js/pitchdrummatrix.js:151 -#: js/musickeyboard.js:2563 -msgid "rest" +#: js/blocks/ToneBlocks.js:383 +msgid "The Harmonic block will add harmonics to the contained notes." msgstr "" -#: js/musicutils.js:565 -#.TRANS: ordinal number. Please keep exactly one space between each number. -msgid "1st 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th" +#: js/blocks/ToneBlocks.js:390 +#.TRANS: A harmonic is an overtone. +msgid "harmonic" msgstr "" -#: js/musicutils.js:629 -#: js/musicutils.js:812 -#: js/musicutils.js:911 -#.TRANS: augmented is a music term related to intervals -msgid "augmented" +#: js/blocks/ToneBlocks.js:431 +msgid "The Distortion block adds distortion to the pitch." msgstr "" -#: js/musicutils.js:631 -#: js/musicutils.js:813 -#: js/musicutils.js:910 -#.TRANS: diminished is a music term related to intervals and mode -msgid "diminished" +#: js/blocks/ToneBlocks.js:438 +#: js/widgets/timbre.js:2100 +#.TRANS: distortion is an alteration in the sound +msgid "distortion" msgstr "" -#: js/musicutils.js:639 -#.TRANS: twelve semi-tone scale for music -msgid "chromatic" +#: js/blocks/ToneBlocks.js:487 +msgid "The Tremolo block adds a wavering effect." msgstr "" -#: js/musicutils.js:640 -msgid "algerian" +#: js/blocks/ToneBlocks.js:495 +#: js/widgets/timbre.js:2092 +#.TRANS: a wavering effect in a musical tone +msgid "tremolo" msgstr "" -#: js/musicutils.js:641 -msgid "spanish" +#: js/blocks/ToneBlocks.js:500 +#: js/blocks/ToneBlocks.js:569 +#: js/blocks/ToneBlocks.js:630 +#: js/blocks/ToneBlocks.js:689 +#: js/widgets/timbre.js:2134 +#: js/widgets/timbre.js:2222 +#: js/widgets/timbre.js:2317 +#: js/widgets/timbre.js:2419 +#.TRANS: rate at which tremolo wavers +msgid "rate" msgstr "" -#: js/musicutils.js:643 -#.TRANS: modal scale in music -msgid "octatonic" +#: js/blocks/ToneBlocks.js:502 +#: js/blocks/ToneBlocks.js:630 +#: js/widgets/timbre.js:2137 +#: js/widgets/timbre.js:2328 +#.TRANS: amplitude of tremolo waver +msgid "depth" msgstr "" -#: js/musicutils.js:645 -#.TRANS: harmonic major scale in music -msgid "harmonic major" +#: js/blocks/ToneBlocks.js:559 +msgid "The Phaser block adds a sweeping sound." msgstr "" -#: js/musicutils.js:647 -#.TRANS: natural minor scales in music -msgid "natural minor" +#: js/blocks/ToneBlocks.js:566 +#: js/widgets/timbre.js:2098 +#.TRANS: alter the phase of the sound +msgid "phaser" msgstr "" -#: js/musicutils.js:649 -#.TRANS: harmonic minor scale in music -msgid "harmonic minor" +#: js/blocks/ToneBlocks.js:569 +#: js/turtleactions/IntervalsActions.js:114 +#: js/widgets/timbre.js:2422 +msgid "octaves" msgstr "" -#: js/musicutils.js:651 -#.TRANS: melodic minor scale in music -msgid "melodic minor" +#: js/blocks/ToneBlocks.js:569 +#: js/widgets/timbre.js:2425 +msgid "base frequency" msgstr "" -#: js/musicutils.js:655 -#.TRANS: modal scale for music -msgid "dorian" +#: js/blocks/ToneBlocks.js:619 +msgid "The Chorus block adds a chorus effect." msgstr "" -#: js/musicutils.js:657 -#.TRANS: modal scale for music -msgid "phrygian" +#: js/blocks/ToneBlocks.js:627 +#: js/widgets/timbre.js:2096 +#.TRANS: musical effect to simulate a choral sound +msgid "chorus" msgstr "" -#: js/musicutils.js:659 -#.TRANS: modal scale for music -msgid "lydian" +#: js/blocks/ToneBlocks.js:630 +msgid "delay" msgstr "" -#: js/musicutils.js:661 -#.TRANS: modal scale for music -msgid "mixolydian" +#: js/blocks/ToneBlocks.js:678 +msgid "The Vibrato block adds a rapid, slight variation in pitch." msgstr "" -#: js/musicutils.js:665 -#.TRANS: modal scale for music -msgid "locrian" +#: js/blocks/ToneBlocks.js:686 +#: js/widgets/timbre.js:2094 +#.TRANS: a rapid, slight variation in pitch +msgid "vibrato" msgstr "" -#: js/musicutils.js:667 -#.TRANS: minor jazz scale for music -msgid "jazz minor" +#: js/blocks/ToneBlocks.js:689 +#: js/widgets/timbre.js:2221 +msgid "intensity" msgstr "" -#: js/musicutils.js:669 -#.TRANS: bebop scale for music -msgid "bebop" +#: js/blocks/ToneBlocks.js:733 +#.TRANS: select synthesizer +msgid "set synth" msgstr "" -#: js/musicutils.js:670 -msgid "arabic" +#: js/blocks/ToneBlocks.js:804 +msgid "synth name" msgstr "" -#: js/musicutils.js:671 -msgid "byzantine" +#: js/blocks/ToneBlocks.js:842 +msgid "set default instrument" msgstr "" -#: js/musicutils.js:673 -#.TRANS: musical scale for music by Verdi -msgid "enigmatic" +#: js/blocks/ToneBlocks.js:895 +#: js/blocks/ToneBlocks.js:943 +#.TRANS: set the characteristics of a custom instrument +msgid "set instrument" msgstr "" -#: js/musicutils.js:674 -msgid "ethiopian" +#: js/blocks/ToneBlocks.js:898 +#: js/blocks/ToneBlocks.js:926 +#: js/blocks/ToneBlocks.js:932 +msgid "The Set instrument block selects a voice for the synthesizer," msgstr "" -#: js/musicutils.js:676 -#.TRANS: Ethiopic scale for music -msgid "geez" +#: js/blocks/ToneBlocks.js:900 +#: js/blocks/ToneBlocks.js:934 +msgid "eg guitar piano violin or cello." msgstr "" -#: js/musicutils.js:677 -msgid "hindu" +#: js/blocks/ToneBlocks.js:1015 +msgid "Import a sound file to use as an instrument and set its pitch center." msgstr "" -#: js/musicutils.js:678 -msgid "hungarian" +#: js/blocks/ToneBlocks.js:1110 +msgid "Upload a sound file to connect with the sample block." msgstr "" -#: js/musicutils.js:680 -#.TRANS: minor Romanian scale for music -msgid "romanian minor" +#: js/blocks/VolumeBlocks.js:35 +msgid "synth volume" msgstr "" -#: js/musicutils.js:681 -msgid "spanish gypsy" +#: js/blocks/VolumeBlocks.js:39 +msgid "The Synth volume block returns the current volume of the current synthesizer." msgstr "" -#: js/musicutils.js:683 -#.TRANS: musical scale for Mid-Eastern music -msgid "maqam" +#: js/blocks/VolumeBlocks.js:105 +msgid "master volume" msgstr "" -#: js/musicutils.js:685 -#.TRANS: minor blues scale for music -msgid "minor blues" +#: js/blocks/VolumeBlocks.js:109 +msgid "The Master volume block returns the master volume." msgstr "" -#: js/musicutils.js:687 -#.TRANS: major blues scale for music -msgid "major blues" +#: js/blocks/VolumeBlocks.js:355 +#: js/blocks/VolumeBlocks.js:524 +msgid "set synth volume" msgstr "" -#: js/musicutils.js:688 -msgid "whole tone" +#: js/blocks/VolumeBlocks.js:362 +#: js/blocks/VolumeBlocks.js:545 +msgid "synth" msgstr "" -#: js/musicutils.js:690 -#.TRANS: pentatonic is a general term that means "five note scale". This scale is typically known as "minor pentatonic" -msgid "minor pentatonic" +#: js/blocks/VolumeBlocks.js:403 +#: js/blocks/VolumeBlocks.js:577 +#: js/blocks/VolumeBlocks.js:740 +#: js/turtleactions/VolumeActions.js:173 +msgid "Setting volume to 0." msgstr "" -#: js/musicutils.js:692 -#.TRANS: pentatonic is a general term that means "five note scale". This scale is typically known as "major pentatonic" -msgid "major pentatonic" +#: js/blocks/VolumeBlocks.js:440 +msgid "Synth not found" msgstr "" -#: js/musicutils.js:693 -msgid "chinese" +#: js/blocks/VolumeBlocks.js:494 +msgid "set drum volume" msgstr "" -#: js/musicutils.js:694 -msgid "egyptian" +#: js/blocks/VolumeBlocks.js:530 +msgid "The Set synth volume block will change the volume of a particular synth," msgstr "" -#: js/musicutils.js:696 -#.TRANS: https://en.wikipedia.org/wiki/Hirajoshi_scale NOTE: There are three different versions of this scale -msgid "hirajoshi" +#: js/blocks/VolumeBlocks.js:532 +msgid "eg guitar violin snare drum etc." msgstr "" -#: js/musicutils.js:697 -msgid "Japan" +#: js/blocks/VolumeBlocks.js:534 +msgid "The default volume is 50." msgstr "" -#: js/musicutils.js:699 -#.TRANS: https://en.wikipedia.org/wiki/In_scale and https://en.wikipedia.org/wiki/Sakura_Sakura -msgid "in" +#: js/blocks/VolumeBlocks.js:536 +msgid "The range is 0 for silence to 100 for full volume." msgstr "" -#: js/musicutils.js:701 -#.TRANS: https://en.wikipedia.org/wiki/Miny%C5%8D_scale -msgid "minyo" +#: js/blocks/VolumeBlocks.js:597 +msgid "set panning" msgstr "" -#: js/musicutils.js:703 -#.TRANS: Italian mathematician -msgid "fibonacci" +#: js/blocks/VolumeBlocks.js:603 +msgid "The Set Panning block sets the panning for all synthesizers." msgstr "" -#: js/musicutils.js:708 -#: js/musicutils.js:1106 -#.TRANS: lowpass filter -msgid "lowpass" +#: js/blocks/VolumeBlocks.js:625 +msgid "Warning: Sound is coming out from only the left or right side." msgstr "" -#: js/musicutils.js:710 -#: js/musicutils.js:1107 -#.TRANS: bandpass filter -msgid "bandpass" +#: js/blocks/VolumeBlocks.js:647 +#: js/blocks/VolumeBlocks.js:695 +msgid "set master volume" msgstr "" -#: js/musicutils.js:712 -#: js/musicutils.js:1108 -#.TRANS: high-shelf filter -msgid "highshelf" +#: js/blocks/VolumeBlocks.js:653 +msgid "The Set master volume block sets the volume for all synthesizers." msgstr "" -#: js/musicutils.js:714 -#: js/musicutils.js:1109 -#.TRANS: low-shelf filter -msgid "lowshelf" +#: js/blocks/VolumeBlocks.js:784 +msgid "The Set relative volume block changes the volume of the contained notes." msgstr "" -#: js/musicutils.js:716 -#: js/musicutils.js:1110 -#.TRANS: notch-shelf filter -msgid "notch" +#: js/blocks/VolumeBlocks.js:791 +msgid "set relative volume" msgstr "" -#: js/musicutils.js:718 -#: js/musicutils.js:1111 -#.TRANS: all-pass filter -msgid "allpass" +#: js/blocks/VolumeBlocks.js:857 +msgid "decrescendo" msgstr "" -#: js/musicutils.js:720 -#: js/musicutils.js:1112 -#.TRANS: peaking filter -msgid "peaking" +#: js/blocks/VolumeBlocks.js:921 +msgid "crescendo" msgstr "" -#: js/musicutils.js:731 -#: js/synthutils.js:58 -#.TRANS: musical instrument -msgid "violin" +#: js/blocks/WidgetBlocks.js:81 +#.TRANS: sound envelope (ADSR) +msgid "envelope" msgstr "" -#: js/musicutils.js:732 -#: js/synthutils.js:60 -#.TRANS: viola musical instrument -msgid "viola" +#: js/blocks/WidgetBlocks.js:89 +#.TRANS: Attack time is the time taken for initial run-up of level from nil to peak, beginning when the key is first pressed. +msgid "attack" msgstr "" -#: js/musicutils.js:733 -#: js/synthutils.js:98 -#.TRANS: xylophone musical instrument -msgid "xylophone" +#: js/blocks/WidgetBlocks.js:91 +#.TRANS: Decay time is the time taken for the subsequent run down from the attack level to the designated sustain level. +msgid "decay" msgstr "" -#: js/musicutils.js:734 -#: js/synthutils.js:120 -#.TRANS: vibraphone musical instrument -msgid "vibraphone" +#: js/blocks/WidgetBlocks.js:93 +#.TRANS: Sustain level is the level during the main sequence of the sound's duration, until the key is released. +msgid "sustain" msgstr "" -#: js/musicutils.js:735 -#: js/synthutils.js:62 -#.TRANS: musical instrument -msgid "cello" +#: js/blocks/WidgetBlocks.js:95 +#.TRANS: Release time is the time taken for the level to decay from the sustain level to zero after the key is released. +msgid "release" msgstr "" -#: js/musicutils.js:737 -#: js/synthutils.js:66 -#.TRANS: viola musical instrument -msgid "double bass" +#: js/blocks/WidgetBlocks.js:113 +msgid "Attack value should be from 0 to 100." msgstr "" -#: js/musicutils.js:738 -#: js/synthutils.js:68 -#: js/rhythmruler.js:2119 -#.TRANS: musical instrument -msgid "guitar" +#: js/blocks/WidgetBlocks.js:116 +msgid "Decay value should be from 0 to 100." msgstr "" -#: js/musicutils.js:739 -#: js/synthutils.js:70 -#.TRANS: musical instrument -msgid "acoustic guitar" +#: js/blocks/WidgetBlocks.js:119 +msgid "Sustain value should be from 0 to 100." msgstr "" -#: js/musicutils.js:740 -#: js/synthutils.js:72 -#.TRANS: musical instrument -msgid "flute" +#: js/blocks/WidgetBlocks.js:122 +msgid "Release value should be from 0-100." msgstr "" -#: js/musicutils.js:741 -#: js/synthutils.js:74 -#.TRANS: musical instrument -msgid "clarinet" +#: js/blocks/WidgetBlocks.js:140 +msgid "You are adding multiple envelope blocks." msgstr "" -#: js/musicutils.js:742 -#: js/synthutils.js:76 -#.TRANS: musical instrument -msgid "saxophone" +#: js/blocks/WidgetBlocks.js:171 +#.TRANS: a filter removes some unwanted components from a signal +msgid "filter" msgstr "" -#: js/musicutils.js:743 -#: js/synthutils.js:78 -#.TRANS: musical instrument -msgid "tuba" +#: js/blocks/WidgetBlocks.js:181 +#: js/widgets/timbre.js:1818 +#.TRANS: rolloff is the steepness of a change in frequency. +msgid "rolloff" msgstr "" -#: js/musicutils.js:744 -#: js/synthutils.js:80 -#.TRANS: musical instrument -msgid "trumpet" +#: js/blocks/WidgetBlocks.js:213 +#.TRANS: rolloff is the steepness of a change in frequency. +msgid "Rolloff value should be either -12, -24, -48, or -96 decibels/octave." msgstr "" -#: js/musicutils.js:745 -#: js/synthutils.js:82 -#.TRANS: musical instrument -msgid "oboe" +#: js/blocks/WidgetBlocks.js:252 +msgid "The Temperament tool is used to define custom tuning." msgstr "" -#: js/musicutils.js:746 -#: js/synthutils.js:84 -#.TRANS: musical instrument -msgid "trombone" +#: js/blocks/WidgetBlocks.js:332 +#: js/blocks/WidgetBlocks.js:1573 +#: js/widgets/sampler.js:547 +msgid "Upload a sample and adjust its pitch center." msgstr "" -#: js/musicutils.js:747 -#: js/synthutils.js:100 -#.TRANS: polytone synthesizer -msgid "electronic synth" +#: js/blocks/WidgetBlocks.js:339 +#.TRANS: the speed at music is should be played. +msgid "sampler" msgstr "" -#: js/musicutils.js:748 -#: js/synthutils.js:102 -#.TRANS: simple monotone synthesizer -msgid "simple 1" +#: js/blocks/WidgetBlocks.js:517 +msgid "The Meter block opens a tool to select strong beats for the meter." msgstr "" -#: js/musicutils.js:749 -msgid "simple 2" +#: js/blocks/WidgetBlocks.js:573 +msgid "The oscilloscope block opens a tool to visualize waveforms." msgstr "" -#: js/musicutils.js:750 -msgid "simple 3" +#: js/blocks/WidgetBlocks.js:578 +msgid "oscilloscope" msgstr "" -#: js/musicutils.js:751 -msgid "simple 4" +#: js/blocks/WidgetBlocks.js:645 +msgid "The Custom mode block opens a tool to explore musical mode (the spacing of the notes in a scale)." msgstr "" -#: js/musicutils.js:753 -#: js/synthutils.js:49 -#.TRANS: brown noise synthesizer -msgid "brown noise" +#: js/blocks/WidgetBlocks.js:651 +#.TRANS: musical mode is the pattern of half-steps in an octave, e.g., Major or Minor modes +msgid "custom mode" msgstr "" -#: js/musicutils.js:754 -#: js/synthutils.js:51 -#.TRANS: pink noise synthesizer -msgid "pink noise" +#: js/blocks/WidgetBlocks.js:700 +msgid "The Tempo block opens a metronome to visualize the beat." msgstr "" -#: js/musicutils.js:756 -#: js/synthutils.js:127 -#: js/rhythmruler.js:1670 -#: js/rhythmruler.js:1928 -#.TRANS: musical instrument -msgid "snare drum" +#: js/blocks/WidgetBlocks.js:762 +msgid "The Arpeggio Widget is used to compose chord sequences." msgstr "" -#: js/musicutils.js:757 -#: js/synthutils.js:129 -#.TRANS: musical instrument -msgid "kick drum" +#: js/blocks/WidgetBlocks.js:837 +msgid "The Pitch drum matrix is used to map pitches to drum sounds." msgstr "" -#: js/musicutils.js:758 -#: js/synthutils.js:131 -#.TRANS: musical instrument -msgid "tom tom" +#: js/blocks/WidgetBlocks.js:842 +#.TRANS: makes a mapping between pitches and drum sounds +msgid "pitch-drum mapper" msgstr "" -#: js/musicutils.js:759 -#: js/synthutils.js:133 -#.TRANS: musical instrument -msgid "floor tom" +#: js/blocks/WidgetBlocks.js:891 +msgid "You must have at least one pitch block and one drum block in the matrix." msgstr "" -#: js/musicutils.js:760 -#: js/synthutils.js:135 -#.TRANS: musical instrument -msgid "bass drum" +#: js/blocks/WidgetBlocks.js:920 +msgid "The Pitch slider tool to is used to generate pitches at selected frequencies." msgstr "" -#: js/musicutils.js:761 -#: js/synthutils.js:137 -#.TRANS: a drum made from an inverted cup -msgid "cup drum" +#: js/blocks/WidgetBlocks.js:925 +#.TRANS: widget to generate pitches using a slider +msgid "pitch slider" msgstr "" -#: js/musicutils.js:762 -#: js/synthutils.js:139 -#.TRANS: musical instrument -msgid "darbuka drum" +#: js/blocks/WidgetBlocks.js:977 +msgid "chromatic keyboard" msgstr "" -#: js/musicutils.js:763 -#: js/synthutils.js:143 -#.TRANS: musical instrument -msgid "hi hat" +#: js/blocks/WidgetBlocks.js:1011 +#: js/blocks/WidgetBlocks.js:1077 +#.TRANS: widget to generate pitches using a slider +msgid "music keyboard" msgstr "" -#: js/musicutils.js:764 -#: js/synthutils.js:145 -#.TRANS: a small metal bell -msgid "ride bell" +#: js/blocks/WidgetBlocks.js:1062 +#: js/blocks/WidgetBlocks.js:1069 +msgid "The Music keyboard block opens a piano keyboard that can be used to create notes." msgstr "" -#: js/musicutils.js:765 -#: js/synthutils.js:147 -#.TRANS: musical instrument -msgid "cow bell" +#: js/blocks/WidgetBlocks.js:1128 +msgid "The Pitch staircase tool to is used to generate pitches from a given ratio." msgstr "" -#: js/musicutils.js:766 -msgid "japanese drum" +#: js/blocks/WidgetBlocks.js:1135 +#.TRANS: generate a progressive sequence of pitches +msgid "pitch staircase" msgstr "" -#: js/musicutils.js:767 -#: js/synthutils.js:153 -#.TRANS: musical instrument -msgid "japanese bell" +#: js/blocks/WidgetBlocks.js:1222 +msgid "The Rhythm Maker block opens a tool to create drum machines." msgstr "" -#: js/musicutils.js:768 -#: js/synthutils.js:149 -#.TRANS: musical instrument -msgid "triangle bell" +#: js/blocks/WidgetBlocks.js:1291 +msgid "G major scale" msgstr "" -#: js/musicutils.js:769 -#: js/synthutils.js:151 -#.TRANS: musical instrument -msgid "finger cymbals" +#: js/blocks/WidgetBlocks.js:1326 +msgid "C major scale" msgstr "" -#: js/musicutils.js:770 -#: js/synthutils.js:155 -#.TRANS: a musically tuned set of bells -msgid "chime" +#: js/blocks/WidgetBlocks.js:1366 +msgid "The Phrase Maker block opens a tool to create musical phrases." msgstr "" -#: js/musicutils.js:771 -#: js/synthutils.js:157 -#.TRANS: a musical instrument -msgid "gong" +#: js/blocks/WidgetBlocks.js:1373 +#.TRANS: assigns pitch to a sequence of beats to generate a melody +msgid "phrase maker" msgstr "" -#: js/musicutils.js:772 -#: js/synthutils.js:159 -#.TRANS: sound effect -msgid "clang" +#: js/blocks/WidgetBlocks.js:1444 +msgid "You must have at least one pitch block and one rhythm block in the matrix." msgstr "" -#: js/musicutils.js:773 -#: js/synthutils.js:161 -#.TRANS: sound effect -msgid "crash" +#: js/blocks/WidgetBlocks.js:1503 +msgid "The Status block opens a tool for inspecting the status of Music Blocks as it is running." msgstr "" -#: js/musicutils.js:774 -#: js/synthutils.js:163 -#.TRANS: sound effect -msgid "bottle" +#: js/blocks/WidgetBlocks.js:1580 +#.TRANS: AI-generated music +msgid "aimusic" msgstr "" -#: js/musicutils.js:775 -#: js/synthutils.js:165 -#.TRANS: sound effect -msgid "clap" +#: js/turtleactions/MeterActions.js:101 +#: js/turtleactions/MeterActions.js:139 +msgid "beats per minute must be greater than" msgstr "" -#: js/musicutils.js:776 -#: js/synthutils.js:167 -#.TRANS: sound effect -msgid "slap" +#: js/turtleactions/MeterActions.js:111 +#: js/turtleactions/MeterActions.js:149 +msgid "maximum" msgstr "" -#: js/musicutils.js:777 -#: js/synthutils.js:169 -#.TRANS: sound effect -msgid "splash" +#: js/turtleactions/MeterActions.js:117 +#: js/turtleactions/MeterActions.js:155 +msgid "beats per minute is" msgstr "" -#: js/musicutils.js:778 -#: js/synthutils.js:171 -#.TRANS: sound effect -msgid "bubbles" +#: js/turtleactions/DictActions.js:75 +#: js/turtleactions/DictActions.js:142 +#: js/turtleactions/DictActions.js:172 +msgid "font" msgstr "" -#: js/musicutils.js:779 -#: js/synthutils.js:173 -#.TRANS: sound effect -msgid "raindrop" +#: js/turtleactions/DictActions.js:255 +msgid "Dictionary with this name does not exist" msgstr "" -#: js/musicutils.js:780 -#: js/synthutils.js:175 -#.TRANS: animal sound effect -msgid "cat" +#: js/turtleactions/DictActions.js:259 +msgid "Key with this name does not exist in " msgstr "" -#: js/musicutils.js:781 -#: js/synthutils.js:177 -#.TRANS: animal sound effect -msgid "cricket" +#: js/turtleactions/DrumActions.js:227 +msgid "Noise Block: Did you mean to use a Note block?" msgstr "" -#: js/musicutils.js:782 -#: js/synthutils.js:179 -#.TRANS: animal sound effect -msgid "dog" +#: js/turtleactions/IntervalsActions.js:113 +msgid "one" msgstr "" -#: js/musicutils.js:784 -#: js/synthutils.js:86 -#.TRANS: musical instrument -msgid "banjo" +#: js/turtleactions/IntervalsActions.js:113 +msgid "two" msgstr "" -#: js/musicutils.js:785 -#: js/synthutils.js:88 -#.TRANS: musical instrument -msgid "koto" +#: js/turtleactions/IntervalsActions.js:113 +msgid "three" msgstr "" -#: js/musicutils.js:786 -#: js/synthutils.js:90 -#.TRANS: musical instrument -msgid "dulcimer" +#: js/turtleactions/IntervalsActions.js:113 +msgid "four" msgstr "" -#: js/musicutils.js:787 -#: js/synthutils.js:92 -#.TRANS: musical instrument -msgid "electric guitar" +#: js/turtleactions/IntervalsActions.js:113 +msgid "five" msgstr "" -#: js/musicutils.js:788 -#: js/synthutils.js:94 -#.TRANS: musical instrument -msgid "bassoon" +#: js/turtleactions/IntervalsActions.js:113 +msgid "six" msgstr "" -#: js/musicutils.js:789 -#: js/synthutils.js:96 -#.TRANS: musical instrument -msgid "celeste" +#: js/turtleactions/IntervalsActions.js:113 +msgid "seven" msgstr "" -#: js/musicutils.js:791 -#: js/musicutils.js:1123 -#: js/musicutils.js:1131 -#: js/temperament.js:650 -#.TRANS: musical temperament -msgid "equal" +#: js/turtleactions/IntervalsActions.js:113 +msgid "eight" msgstr "" -#: js/musicutils.js:793 -#: js/musicutils.js:1125 -#: js/musicutils.js:1133 -#.TRANS: musical temperament -msgid "Pythagorean" +#: js/turtleactions/IntervalsActions.js:113 +msgid "nine" msgstr "" -#: js/musicutils.js:795 -#: js/musicutils.js:1124 -#: js/musicutils.js:1132 -#.TRANS: musical temperament -msgid "just intonation" +#: js/turtleactions/IntervalsActions.js:119 +msgid "a" msgstr "" -#: js/musicutils.js:797 -#: js/musicutils.js:1126 -#: js/musicutils.js:1127 -#: js/musicutils.js:1134 -#: js/musicutils.js:1135 -#.TRANS: musical temperament -msgid "meantone" +#: js/turtleactions/IntervalsActions.js:120 +msgid "below" msgstr "" -#: js/musicutils.js:814 -msgid "major 7th" +#: js/turtleactions/IntervalsActions.js:124 +msgid "above" msgstr "" -#: js/musicutils.js:815 -msgid "minor 7th" +#: js/turtleactions/IntervalsActions.js:131 +msgid "plus" msgstr "" -#: js/musicutils.js:816 -msgid "dominant 7th" +#: js/turtleactions/IntervalsActions.js:139 +msgid " below" msgstr "" -#: js/musicutils.js:817 -msgid "minor-major 7th" +#: js/turtleactions/IntervalsActions.js:257 +msgid "Adding missing pitch number 0." msgstr "" -#: js/musicutils.js:818 -msgid "fully-diminished 7th" +#: js/turtleactions/IntervalsActions.js:265 +msgid "Ignoring pitch numbers less than zero or greater than eleven." msgstr "" -#: js/musicutils.js:819 -msgid "half-diminished 7th" +#: js/turtleactions/IntervalsActions.js:271 +msgid "Ignoring duplicate pitch numbers." msgstr "" -#: js/musicutils.js:4379 -#: js/musicutils.js:4416 -msgid "current" +#: js/turtleactions/ToneActions.js:134 +msgid "Vibrato intensity must be between 1 and 100." msgstr "" -#: js/musicutils.js:4382 -#: js/musicutils.js:4407 -msgid "next" +#: js/turtleactions/ToneActions.js:139 +msgid "Vibrato rate must be greater than 0." msgstr "" -#: js/musicutils.js:4385 -#: js/musicutils.js:4412 -msgid "previous" +#: js/turtleactions/ToneActions.js:192 +#: js/turtleactions/ToneActions.js:265 +#.TRANS: Depth is the intesity of the tremolo or chorus effect. +msgid "Depth is out of range." msgstr "" -#: js/synthutils.js:104 -#.TRANS: simple monotone synthesizer -msgid "simple-2" +#: js/turtleactions/ToneActions.js:301 +msgid "Distortion must be from 0 to 100." msgstr "" -#: js/synthutils.js:106 -#.TRANS: simple monotone synthesizer -msgid "simple-3" +#: js/turtleactions/ToneActions.js:332 +#.TRANS: partials components in a harmonic series +msgid "Partial must be greater than or equal to 0." msgstr "" -#: js/synthutils.js:108 -#.TRANS: simple monotone synthesizer -msgid "simple-4" +#: js/turtleactions/ToneActions.js:378 +#: js/turtleactions/ToneActions.js:417 +#: js/turtleactions/ToneActions.js:456 +#: js/widgets/timbre.js:782 +msgid "Unable to use synth due to existing oscillator" msgstr "" -#: js/synthutils.js:141 -#.TRANS: musical instrument -msgid "taiko" +#: js/turtleactions/ToneActions.js:388 +#: js/turtleactions/ToneActions.js:427 +msgid "The input cannot be negative." msgstr "" -#: js/modewidget.js:86 -#: js/modewidget.js:88 -#: js/modewidget.js:642 -#: js/modewidget.js:644 -#: js/modewidget.js:712 -#: js/modewidget.js:714 -#: js/temperament.js:2078 -#: js/rhythmruler.js:189 -#: js/rhythmruler.js:1410 -#: js/rhythmruler.js:1412 -#: js/rhythmruler.js:1435 -#: js/rhythmruler.js:1437 -#: js/meterwidget.js:89 -#: js/meterwidget.js:91 +#: js/widgets/modewidget.js:86 +#: js/widgets/modewidget.js:88 +#: js/widgets/modewidget.js:642 +#: js/widgets/modewidget.js:644 +#: js/widgets/modewidget.js:712 +#: js/widgets/modewidget.js:714 +#: js/widgets/meterwidget.js:194 +#: js/widgets/meterwidget.js:196 +#: js/widgets/temperament.js:2236 +#: js/widgets/rhythmruler.js:457 +#: js/widgets/rhythmruler.js:1790 +#: js/widgets/rhythmruler.js:1792 +#: js/widgets/rhythmruler.js:1816 +#: js/widgets/rhythmruler.js:1818 msgid "Play all" msgstr "" -#: js/modewidget.js:115 -#: js/pitchstaircase.js:641 -#: js/phrasemaker.js:339 -#: js/pitchdrummatrix.js:94 -#: js/pitchslider.js:125 -#: js/temperament.js:2083 -#: js/musickeyboard.js:530 -#: js/timbre.js:756 -#: js/meterwidget.js:124 -#: js/arpeggio.js:103 +#: js/widgets/modewidget.js:115 +#: js/widgets/meterwidget.js:229 +#: js/widgets/pitchdrummatrix.js:166 +#: js/widgets/pitchslider.js:125 +#: js/widgets/pitchstaircase.js:641 +#: js/widgets/temperament.js:2244 +#: js/widgets/timbre.js:756 +#: js/widgets/arpeggio.js:103 +#: js/widgets/musickeyboard.js:688 +#: js/widgets/phrasemaker.js:550 msgid "Save" msgstr "" -#: js/modewidget.js:121 -#: js/pitchstaircase.js:686 -#: js/phrasemaker.js:356 -#: js/pitchdrummatrix.js:109 -#: js/musickeyboard.js:534 -#: js/rhythmruler.js:269 -#: js/arpeggio.js:118 +#: js/widgets/modewidget.js:121 +#: js/widgets/pitchdrummatrix.js:181 +#: js/widgets/pitchstaircase.js:686 +#: js/widgets/arpeggio.js:118 +#: js/widgets/musickeyboard.js:696 +#: js/widgets/phrasemaker.js:567 +#: js/widgets/rhythmruler.js:601 #.TRANS: clear all subdivisions from the ruler. msgid "Clear" msgstr "" -#: js/modewidget.js:127 +#: js/widgets/modewidget.js:127 msgid "Rotate counter clockwise" msgstr "" -#: js/modewidget.js:133 +#: js/widgets/modewidget.js:133 msgid "Rotate clockwise" msgstr "" -#: js/modewidget.js:139 +#: js/widgets/modewidget.js:139 msgid "Invert" msgstr "" -#: js/modewidget.js:145 -#: js/pitchstaircase.js:678 -#: js/rhythmruler.js:258 -#: js/timbre.js:963 +#: js/widgets/modewidget.js:145 +#: js/widgets/pitchstaircase.js:678 +#: js/widgets/timbre.js:963 +#: js/widgets/rhythmruler.js:578 msgid "Undo" msgstr "" -#: js/modewidget.js:163 +#: js/widgets/modewidget.js:163 #.TRANS: A circle of notes represents the musical mode. msgid "Click in the circle to select notes for the mode." msgstr "" -#: js/modewidget.js:1017 -#: js/pitchstaircase.js:580 -#: js/phrasemaker.js:4855 -#: js/temperament.js:1754 -#: js/rhythmruler.js:1865 -#: js/rhythmruler.js:2081 -#: js/tempo.js:414 +#: js/widgets/modewidget.js:1017 +#: js/widgets/pitchstaircase.js:580 +#: js/widgets/temperament.js:1929 +#: js/widgets/tempo.js:414 +#: js/widgets/phrasemaker.js:5356 +#: js/widgets/rhythmruler.js:2254 +#: js/widgets/rhythmruler.js:2472 msgid "New action block generated!" msgstr "" -#: js/oscilloscope.js:79 -msgid "Zoom In" -msgstr "" - -#: js/oscilloscope.js:88 -msgid "Zoom Out" -msgstr "" - -#: js/pitchstaircase.js:624 -msgid "Play chord" -msgstr "" - -#: js/pitchstaircase.js:632 -msgid "Play scale" +#: js/widgets/meterwidget.js:275 +msgid "Reset" msgstr "" -#: js/pitchstaircase.js:696 -msgid "Click on a note to create a new step." +#: js/widgets/meterwidget.js:301 +msgid "Click in the circle to select strong beats for the meter." msgstr "" -#: js/phrasemaker.js:363 -msgid "Export" +#: js/widgets/oscilloscope.js:79 +msgid "Zoom In" msgstr "" -#: js/phrasemaker.js:370 -msgid "Sort" +#: js/widgets/oscilloscope.js:88 +msgid "Zoom Out" msgstr "" -#: js/phrasemaker.js:373 -#: js/musickeyboard.js:559 -msgid "Add note" +#: js/widgets/pitchdrummatrix.js:356 +#: js/widgets/pitchdrummatrix.js:752 +msgid "Click in the grid to map notes to drums." msgstr "" -#: js/phrasemaker.js:764 -msgid "Click on the table to add notes." +#: js/widgets/pitchslider.js:103 +msgid "Move up" msgstr "" -#: js/phrasemaker.js:2414 -#: js/phrasemaker.js:2543 -msgid "tuplet value" +#: js/widgets/pitchslider.js:114 +msgid "Move down" msgstr "" -#: js/pitchdrummatrix.js:270 -#: js/pitchdrummatrix.js:639 -msgid "Click in the grid to map notes to drums." +#: js/widgets/pitchslider.js:136 +msgid "Click on the slider to create a note block." msgstr "" -#: js/pitchslider.js:103 -msgid "Move up" +#: js/widgets/pitchstaircase.js:624 +msgid "Play chord" msgstr "" -#: js/pitchslider.js:114 -msgid "Move down" +#: js/widgets/pitchstaircase.js:632 +msgid "Play scale" msgstr "" -#: js/pitchslider.js:136 -msgid "Click on the slider to create a note block." +#: js/widgets/pitchstaircase.js:696 +msgid "Click on a note to create a new step." msgstr "" -#: js/temperament.js:215 +#: js/widgets/temperament.js:321 msgid "back to 2:1 octave space" msgstr "" -#: js/temperament.js:323 +#: js/widgets/temperament.js:447 msgid "edit" msgstr "" -#: js/temperament.js:330 -#: js/temperament.js:332 -#: js/temperament.js:1336 -#: js/temperament.js:1338 +#: js/widgets/temperament.js:454 +#: js/widgets/temperament.js:456 +#: js/widgets/temperament.js:1493 +#: js/widgets/temperament.js:1495 msgid "close" msgstr "" -#: js/temperament.js:423 -#: js/temperament.js:736 -#: js/temperament.js:743 -#: js/temperament.js:845 -#: js/temperament.js:935 -#: js/temperament.js:942 -#: js/temperament.js:1015 -#: js/temperament.js:1284 -#: js/temperament.js:1354 -#: js/temperament.js:1430 +#: js/widgets/temperament.js:552 +#: js/widgets/temperament.js:877 +#: js/widgets/temperament.js:884 +#: js/widgets/temperament.js:986 +#: js/widgets/temperament.js:1080 +#: js/widgets/temperament.js:1087 +#: js/widgets/temperament.js:1160 +#: js/widgets/temperament.js:1433 +#: js/widgets/temperament.js:1511 +#: js/widgets/temperament.js:1596 msgid "done" msgstr "" -#: js/temperament.js:477 -#: js/temperament.js:482 -#: js/temperament.js:918 +#: js/widgets/temperament.js:610 +#: js/widgets/temperament.js:615 +#: js/widgets/temperament.js:1063 msgid "ratio" msgstr "" -#: js/temperament.js:483 +#: js/widgets/temperament.js:616 msgid "interval" msgstr "" -#: js/temperament.js:611 +#: js/widgets/temperament.js:744 msgid "non scalar" msgstr "" -#: js/temperament.js:650 +#: js/widgets/temperament.js:787 msgid "ratios" msgstr "" -#: js/temperament.js:650 +#: js/widgets/temperament.js:787 msgid "arbitrary" msgstr "" -#: js/temperament.js:719 +#: js/widgets/temperament.js:860 msgid "number of divisions" msgstr "" -#: js/temperament.js:741 -#: js/temperament.js:858 -#: js/temperament.js:940 -#: js/temperament.js:1033 +#: js/widgets/temperament.js:882 +#: js/widgets/temperament.js:999 +#: js/widgets/temperament.js:1085 +#: js/widgets/temperament.js:1178 msgid "preview" msgstr "" -#: js/temperament.js:788 +#: js/widgets/temperament.js:929 msgid "The Number of divisions is too large." msgstr "" -#: js/temperament.js:921 +#: js/widgets/temperament.js:1066 msgid "recursion" msgstr "" -#: js/temperament.js:1450 +#: js/widgets/temperament.js:1616 msgid "The octave ratio has changed. This changes temperament significantly." msgstr "" -#: js/temperament.js:2087 +#: js/widgets/temperament.js:2248 msgid "Table" msgstr "" -#: js/temperament.js:2185 +#: js/widgets/temperament.js:2356 msgid "Add pitches" msgstr "" -#: js/musickeyboard.js:570 -msgid "Metronome" +#: js/widgets/tempo.js:78 +#: js/widgets/tempo.js:97 +#: js/widgets/tempo.js:99 +#: js/widgets/aiwidget.js:134 +#: js/widgets/aiwidget.js:136 +#: js/widgets/rhythmruler.js:681 +#: js/widgets/rhythmruler.js:683 +#: js/widgets/rhythmruler.js:1864 +#: js/widgets/rhythmruler.js:1866 +#: js/widgets/sampler.js:180 +#: js/widgets/sampler.js:182 +msgid "Pause" msgstr "" -#: js/musickeyboard.js:1296 -#: plugins/rodi.rtp:193 -msgid "duration" +#: js/widgets/tempo.js:113 +msgid "Save tempo" msgstr "" -#: js/musickeyboard.js:2840 -msgid "New action blocks generated!" +#: js/widgets/tempo.js:144 +msgid "speed up" msgstr "" -#: js/musickeyboard.js:2841 -msgid "New action block generated" +#: js/widgets/tempo.js:150 +msgid "slow down" msgstr "" -#: js/musickeyboard.js:2984 -#: js/musickeyboard.js:2992 -msgid "MIDI device present." +#: js/widgets/tempo.js:194 +msgid "Adjust the tempo with the buttons." msgstr "" -#: js/musickeyboard.js:2995 -msgid "No MIDI device found." +#: js/widgets/tempo.js:261 +msgid "Please enter a number between 30 and 1000" msgstr "" -#: js/musickeyboard.js:3000 -msgid "Failed to get MIDI access in browser." +#: js/widgets/tempo.js:268 +#: js/widgets/tempo.js:271 +msgid "The beats per minute must be between 30 and 1000." msgstr "" -#: js/rhythmruler.js:202 -msgid "Save rhythms" +#: js/widgets/tempo.js:287 +msgid "The beats per minute must be below 1000." msgstr "" -#: js/rhythmruler.js:222 -msgid "Save drum machine" +#: js/widgets/tempo.js:303 +msgid "The beats per minute must be above 30" msgstr "" -#: js/rhythmruler.js:263 -#.TRANS: user can tap out a rhythm by clicking on a ruler. -msgid "Tap a rhythm" +#: js/widgets/timbre.js:766 +msgid "Synthesizer" msgstr "" -#: js/rhythmruler.js:342 -#: js/rhythmruler.js:344 -#: js/rhythmruler.js:1481 -#: js/rhythmruler.js:1483 -#: js/sampler.js:110 -#: js/sampler.js:112 -#: js/tempo.js:78 -#: js/tempo.js:97 -#: js/tempo.js:99 -msgid "Pause" +#: js/widgets/timbre.js:789 +msgid "Oscillator" msgstr "" -#: js/rhythmruler.js:478 -msgid "Click on the ruler to divide it." +#: js/widgets/timbre.js:840 +msgid "Envelope" msgstr "" -#: js/rhythmruler.js:603 -#: js/rhythmruler.js:605 -#: js/rhythmruler.js:804 -#: js/rhythmruler.js:806 -#: js/rhythmruler.js:1386 -#: js/rhythmruler.js:1388 -msgid "tap a rhythm" +#: js/widgets/timbre.js:886 +#: planet/js/GlobalTag.js:50 +#.TRANS: On the Planet, we use labels to tag projects. +msgid "Effects" msgstr "" -#: js/rhythmruler.js:1084 -msgid "Maximum value of 256 has been exceeded." +#: js/widgets/timbre.js:904 +msgid "Filter" msgstr "" -#: js/sampler.js:137 -msgid "Warning: Sample is bigger than 1MB." +#: js/widgets/timbre.js:946 +msgid "Add filter" msgstr "" -#: js/sampler.js:142 -msgid "Upload failed: Sample is not a .wav file." +#: js/widgets/timbre.js:987 +msgid "Click on buttons to open the timbre design tools." msgstr "" -#: js/sampler.js:164 -msgid "A new sample block was generated." +#: js/widgets/timbre.js:1273 +msgid "harmonicity" msgstr "" -#: js/sampler.js:255 -msgid "Upload sample" +#: js/widgets/timbre.js:1340 +#: js/widgets/timbre.js:1406 +msgid "modulation index" msgstr "" -#: js/sampler.js:306 -msgid "Save sample" +#: js/widgets/timbre.js:1484 +msgid "vibrato amount" msgstr "" -#: js/sampler.js:697 -#.TRANS: The reference tone is a sound used for comparison. -msgid "reference tone" +#: js/widgets/timbre.js:1919 +msgid "Filter already present." msgstr "" -#: js/tempo.js:113 -msgid "Save tempo" +#: js/widgets/timbre.js:2322 +msgid "delay (MS)" msgstr "" -#: js/tempo.js:144 -msgid "speed up" +#: js/widgets/timbre.js:2507 +msgid "distortion amount" msgstr "" -#: js/tempo.js:150 -msgid "slow down" +#: js/widgets/aiwidget.js:180 +#: js/widgets/sampler.js:227 +msgid "Warning: Sample is bigger than 1MB." msgstr "" -#: js/tempo.js:194 -msgid "Adjust the tempo with the buttons." +#: js/widgets/aiwidget.js:539 +msgid "New start block generated" msgstr "" -#: js/tempo.js:261 -msgid "Please enter a number between 30 and 1000" +#: js/widgets/aiwidget.js:541 +msgid "MIDI loading. This may take some time depending upon the number of notes in the track" msgstr "" -#: js/tempo.js:268 -#: js/tempo.js:271 -msgid "The beats per minute must be between 30 and 1000." +#: js/widgets/aiwidget.js:551 +#: js/widgets/sampler.js:254 +msgid "Upload failed: Sample is not a .wav file." msgstr "" -#: js/tempo.js:287 -msgid "The beats per minute must be below 1000." +#: js/widgets/aiwidget.js:679 +#: js/widgets/sampler.js:432 +msgid "Save sample" msgstr "" -#: js/tempo.js:303 -msgid "The beats per minute must be above 30" +#: js/widgets/aiwidget.js:701 +msgid "AI Music" msgstr "" -#: js/timbre.js:766 -msgid "Synthesizer" +#: js/widgets/arpeggio.js:239 +msgid "Click in the grid to add steps to the arpeggio." msgstr "" -#: js/timbre.js:789 -msgid "Oscillator" +#: js/widgets/help.js:95 +#: js/widgets/help.js:125 +#: js/widgets/help.js:146 +#: js/widgets/help.js:158 +#: js/widgets/help.js:376 +#: js/widgets/help.js:391 +msgid "Take a tour" msgstr "" -#: js/timbre.js:840 -msgid "Envelope" +#: js/widgets/musickeyboard.js:725 +#: js/widgets/phrasemaker.js:584 +msgid "Add note" msgstr "" -#: js/timbre.js:886 -#: js/GlobalTag.js:50 -#.TRANS: On the Planet, we use labels to tag projects. -msgid "Effects" +#: js/widgets/musickeyboard.js:744 +msgid "Metronome" +msgstr "" + +#: js/widgets/musickeyboard.js:1549 +#: plugins/rodi.rtp:193 +msgid "duration" +msgstr "" + +#: js/widgets/musickeyboard.js:3179 +msgid "New action blocks generated" +msgstr "" + +#: js/widgets/musickeyboard.js:3180 +msgid "New action block generated" msgstr "" -#: js/timbre.js:904 -msgid "Filter" +#: js/widgets/musickeyboard.js:3365 +#: js/widgets/musickeyboard.js:3373 +msgid "MIDI device present." msgstr "" -#: js/timbre.js:946 -msgid "Add filter" +#: js/widgets/musickeyboard.js:3376 +msgid "No MIDI device found." msgstr "" -#: js/timbre.js:987 -msgid "Click on buttons to open the timbre design tools." +#: js/widgets/musickeyboard.js:3386 +msgid "Failed to get MIDI access in browser." msgstr "" -#: js/timbre.js:1273 -msgid "harmonicity" +#: js/widgets/phrasemaker.js:574 +msgid "Export" msgstr "" -#: js/timbre.js:1340 -#: js/timbre.js:1406 -msgid "modulation index" +#: js/widgets/phrasemaker.js:581 +msgid "Sort" msgstr "" -#: js/timbre.js:1484 -msgid "vibrato amount" +#: js/widgets/phrasemaker.js:975 +msgid "Click on the table to add notes." msgstr "" -#: js/timbre.js:1919 -msgid "Filter already present." +#: js/widgets/phrasemaker.js:2677 +#: js/widgets/phrasemaker.js:2819 +msgid "tuplet value" msgstr "" -#: js/timbre.js:2322 -msgid "delay (MS)" +#: js/widgets/rhythmruler.js:486 +msgid "Save rhythms" msgstr "" -#: js/timbre.js:2507 -msgid "distortion amount" +#: js/widgets/rhythmruler.js:512 +msgid "Save drum machine" msgstr "" -#: js/meterwidget.js:170 -msgid "Reset" +#: js/widgets/rhythmruler.js:589 +#.TRANS: user can tap out a rhythm by clicking on a ruler. +msgid "Tap a rhythm" msgstr "" -#: js/meterwidget.js:196 -msgid "Click in the circle to select strong beats for the meter." +#: js/widgets/rhythmruler.js:817 +msgid "Click on the ruler to divide it." msgstr "" -#: js/arpeggio.js:239 -msgid "Click in the grid to add steps to the arpeggio." +#: js/widgets/rhythmruler.js:950 +#: js/widgets/rhythmruler.js:952 +#: js/widgets/rhythmruler.js:1152 +#: js/widgets/rhythmruler.js:1154 +#: js/widgets/rhythmruler.js:1765 +#: js/widgets/rhythmruler.js:1767 +msgid "tap a rhythm" msgstr "" -#: js/ProjectStorage.js:243 -msgid "anonymous" +#: js/widgets/rhythmruler.js:1459 +msgid "Maximum value of 256 has been exceeded." msgstr "" -#: js/GlobalCard.js:68 -msgid "Share" +#: js/widgets/sampler.js:237 +msgid "Recording started..." msgstr "" -#: js/GlobalCard.js:74 -msgid "Flags" +#: js/widgets/sampler.js:245 +msgid "Recording complete..." msgstr "" -#: js/LocalCard.js:36 -msgid "View published project" +#: js/widgets/sampler.js:283 +msgid "A new sample block was generated." msgstr "" -#: js/LocalCard.js:42 -msgid "Publish project" +#: js/widgets/sampler.js:378 +msgid "Upload sample" msgstr "" -#: js/LocalCard.js:51 -msgid "Edit project" +#: js/widgets/sampler.js:399 +msgid "Warning: Your sample cannot be loaded because it is >1MB." msgstr "" -#: js/LocalCard.js:52 -msgid "Delete project" +#: js/widgets/sampler.js:448 +msgid "Toggle Mic" msgstr "" -#: js/LocalCard.js:53 -msgid "Download project" +#: js/widgets/sampler.js:458 +msgid "Playback" msgstr "" -#: js/LocalCard.js:55 -msgid "Duplicate project" +#: js/widgets/sampler.js:979 +#.TRANS: The reference tone is a sound used for comparison. +msgid "reference tone" msgstr "" -#: js/GlobalTag.js:28 +#: planet/js/GlobalTag.js:28 #.TRANS: On the Planet, we use labels to tag projects. msgid "All Projects" msgstr "" -#: js/GlobalTag.js:30 -#: js/StringHelper.js:37 +#: planet/js/GlobalTag.js:30 +#: planet/js/StringHelper.js:37 #.TRANS: On the Planet, we use labels to tag projects. msgid "My Projects" msgstr "" -#: js/GlobalTag.js:32 +#: planet/js/GlobalTag.js:32 #.TRANS: On the Planet, we use labels to tag projects. msgid "Examples" msgstr "" -#: js/GlobalTag.js:34 +#: planet/js/GlobalTag.js:34 #.TRANS: On the Planet, we use labels to tag projects. msgid "Music" msgstr "" -#: js/GlobalTag.js:36 +#: planet/js/GlobalTag.js:36 #.TRANS: On the Planet, we use labels to tag projects. msgid "Art" msgstr "" -#: js/GlobalTag.js:38 +#: planet/js/GlobalTag.js:38 #.TRANS: On the Planet, we use labels to tag projects. msgid "Math" msgstr "" -#: js/GlobalTag.js:40 +#: planet/js/GlobalTag.js:40 #.TRANS: On the Planet, we use labels to tag projects. msgid "Interactive" msgstr "" -#: js/GlobalTag.js:42 +#: planet/js/GlobalTag.js:42 #.TRANS: On the Planet, we use labels to tag projects. msgid "Design" msgstr "" -#: js/GlobalTag.js:44 +#: planet/js/GlobalTag.js:44 #.TRANS: On the Planet, we use labels to tag projects. msgid "Game" msgstr "" -#: js/GlobalTag.js:46 +#: planet/js/GlobalTag.js:46 #.TRANS: On the Planet, we use labels to tag projects. msgid "Media" msgstr "" -#: js/GlobalTag.js:48 +#: planet/js/GlobalTag.js:48 #.TRANS: On the Planet, we use labels to tag projects. msgid "Sensors" msgstr "" -#: js/GlobalTag.js:52 +#: planet/js/GlobalTag.js:52 #.TRANS: On the Planet, we use labels to tag projects. msgid "Code Snippet" msgstr "" -#: js/helper.js:149 -#: js/StringHelper.js:49 -msgid "Show more tags" +#: planet/js/LocalCard.js:36 +msgid "View published project" msgstr "" -#: js/helper.js:150 -msgid "Show fewer tags" +#: planet/js/LocalCard.js:42 +msgid "Publish project" +msgstr "" + +#: planet/js/LocalCard.js:51 +msgid "Edit project" +msgstr "" + +#: planet/js/LocalCard.js:52 +msgid "Delete project" +msgstr "" + +#: planet/js/LocalCard.js:53 +msgid "Download project" +msgstr "" + +#: planet/js/LocalCard.js:55 +msgid "Duplicate project" +msgstr "" + +#: planet/js/ProjectStorage.js:243 +msgid "anonymous" +msgstr "" + +#: planet/js/SaveInterface.js:34 +msgid "Open in Music Blocks" +msgstr "" + +#: planet/js/SaveInterface.js:35 +msgid "Open in Turtle Blocks" +msgstr "" + +#: planet/js/GlobalCard.js:68 +msgid "Share" +msgstr "" + +#: planet/js/GlobalCard.js:74 +msgid "Flags" +msgstr "" + +#: planet/js/GlobalPlanet.js:35 +msgid "No results found." +msgstr "" + +#: planet/js/GlobalPlanet.js:51 +msgid "Remix of" +msgstr "" + +#: planet/js/GlobalPlanet.js:509 +msgid "Cannot connect to server" msgstr "" -#: js/ProjectViewer.js:30 +#: planet/js/ProjectViewer.js:30 msgid "Error: Report could not be submitted. Try again later." msgstr "" -#: js/ProjectViewer.js:31 +#: planet/js/ProjectViewer.js:31 msgid "Thank you for reporting this project. A moderator will review the project shortly, to verify violation of the Sugar Labs Code of Conduct." msgstr "" -#: js/ProjectViewer.js:32 -#: js/StringHelper.js:62 -#: js/StringHelper.js:64 -#: js/StringHelper.js:68 +#: planet/js/ProjectViewer.js:32 +#: planet/js/StringHelper.js:62 +#: planet/js/StringHelper.js:64 +#: planet/js/StringHelper.js:68 msgid "Report Project" msgstr "" -#: js/ProjectViewer.js:33 -#: js/StringHelper.js:63 +#: planet/js/ProjectViewer.js:33 +#: planet/js/StringHelper.js:63 msgid "Project Reported" msgstr "" -#: js/ProjectViewer.js:34 +#: planet/js/ProjectViewer.js:34 msgid "Report description required" msgstr "" -#: js/ProjectViewer.js:35 +#: planet/js/ProjectViewer.js:35 msgid "Report description too long" msgstr "" -#: js/StringHelper.js:30 +#: planet/js/Publisher.js:30 +msgid "Feature unavailable - cannot connect to server. Reload Music Blocks to try again." +msgstr "" + +#: planet/js/Publisher.js:220 +#: planet/js/Publisher.js:237 +msgid "This field is required" +msgstr "" + +#: planet/js/Publisher.js:227 +msgid "Title too long" +msgstr "" + +#: planet/js/Publisher.js:244 +msgid "Description too long" +msgstr "" + +#: planet/js/Publisher.js:341 +msgid "Server Error" +msgstr "" + +#: planet/js/Publisher.js:341 +msgid "Try Again" +msgstr "" + +#: planet/js/StringHelper.js:30 msgid "Planet" msgstr "" -#: js/StringHelper.js:31 +#: planet/js/StringHelper.js:31 msgid "Close Planet" msgstr "" -#: js/StringHelper.js:32 +#: planet/js/StringHelper.js:32 msgid "Open project from file" msgstr "" -#: js/StringHelper.js:34 +#: planet/js/StringHelper.js:34 msgid "Local" msgstr "" -#: js/StringHelper.js:35 +#: planet/js/StringHelper.js:35 msgid "Global" msgstr "" -#: js/StringHelper.js:36 +#: planet/js/StringHelper.js:36 msgid "Search for a project" msgstr "" -#: js/StringHelper.js:38 +#: planet/js/StringHelper.js:38 msgid "Publish Project" msgstr "" -#: js/StringHelper.js:40 +#: planet/js/StringHelper.js:40 msgid "Tags (max 5)" msgstr "" -#: js/StringHelper.js:41 -#: js/StringHelper.js:61 +#: planet/js/StringHelper.js:41 +#: planet/js/StringHelper.js:61 msgid "Description" msgstr "" -#: js/StringHelper.js:42 -#: js/StringHelper.js:67 +#: planet/js/StringHelper.js:42 +#: planet/js/StringHelper.js:67 msgid "Submit" msgstr "" -#: js/StringHelper.js:43 -#: js/StringHelper.js:47 +#: planet/js/StringHelper.js:43 +#: planet/js/StringHelper.js:47 msgid "Cancel" msgstr "" -#: js/StringHelper.js:44 +#: planet/js/StringHelper.js:44 msgid "Delete \\"\\"?" msgstr "" -#: js/StringHelper.js:45 +#: planet/js/StringHelper.js:45 msgid "Permanently delete project \\"\\"?" msgstr "" -#: js/StringHelper.js:48 +#: planet/js/StringHelper.js:48 msgid "Explore Projects" msgstr "" -#: js/StringHelper.js:50 +#: planet/js/StringHelper.js:49 +#: planet/js/helper.js:149 +msgid "Show more tags" +msgstr "" + +#: planet/js/StringHelper.js:50 msgid "Most recent" msgstr "" -#: js/StringHelper.js:51 +#: planet/js/StringHelper.js:51 msgid "Most liked" msgstr "" -#: js/StringHelper.js:52 +#: planet/js/StringHelper.js:52 msgid "Most downloaded" msgstr "" -#: js/StringHelper.js:53 +#: planet/js/StringHelper.js:53 msgid "A-Z" msgstr "" -#: js/StringHelper.js:54 +#: planet/js/StringHelper.js:54 msgid "Sort by" msgstr "" -#: js/StringHelper.js:55 +#: planet/js/StringHelper.js:55 msgid "Load More Projects" msgstr "" -#: js/StringHelper.js:56 +#: planet/js/StringHelper.js:56 msgid "Last Updated" msgstr "" -#: js/StringHelper.js:57 +#: planet/js/StringHelper.js:57 msgid "Creation Date" msgstr "" -#: js/StringHelper.js:58 +#: planet/js/StringHelper.js:58 msgid "Number of Downloads:" msgstr "" -#: js/StringHelper.js:59 +#: planet/js/StringHelper.js:59 msgid "Number of Likes:" msgstr "" -#: js/StringHelper.js:60 +#: planet/js/StringHelper.js:60 msgid "Tags:" msgstr "" -#: js/StringHelper.js:65 +#: planet/js/StringHelper.js:65 msgid "Report projects which violate the Sugar Labs Code of Conduct." msgstr "" -#: js/StringHelper.js:66 +#: planet/js/StringHelper.js:66 msgid "Reason for reporting project" msgstr "" -#: js/StringHelper.js:70 +#: planet/js/StringHelper.js:70 msgid "Download as File" msgstr "" -#: js/GlobalPlanet.js:35 -msgid "No results found." -msgstr "" - -#: js/GlobalPlanet.js:51 -msgid "Remix of" -msgstr "" - -#: js/GlobalPlanet.js:509 -msgid "Cannot connect to server" -msgstr "" - -#: js/Publisher.js:30 -msgid "Feature unavailable - cannot connect to server. Reload Music Blocks to try again." -msgstr "" - -#: js/Publisher.js:218 -#: js/Publisher.js:235 -msgid "This field is required" -msgstr "" - -#: js/Publisher.js:225 -msgid "Title too long" +#: planet/js/helper.js:150 +msgid "Show fewer tags" msgstr "" -#: js/Publisher.js:242 -msgid "Description too long" +#: plugins/accelerometer.rtp:48 +msgid "motion x" msgstr "" -#: js/Publisher.js:339 -msgid "Server Error" +#: plugins/accelerometer.rtp:56 +msgid "motion y" msgstr "" -#: js/Publisher.js:339 -msgid "Try Again" +#: plugins/accelerometer.rtp:64 +msgid "motion z" msgstr "" -#: js/SaveInterface.js:34 -msgid "Open in Music Blocks" +#: plugins/facebook.rtp:27 +msgid "publish" msgstr "" -#: js/SaveInterface.js:35 -msgid "Open in Turtle Blocks" +#: plugins/maths.rtp:62 +msgid "power" msgstr "" -#: plugins/weather.rtp:68 -#: plugins/weather.rtp:97 -msgid "Days ahead must be in the range of -1 to 5." +#: plugins/maths.rtp:62 +msgid "base" msgstr "" -#: plugins/weather.rtp:122 -msgid "forecast" +#: plugins/maths.rtp:62 +msgid "exp" msgstr "" -#: plugins/weather.rtp:123 -#: plugins/weather.rtp:137 -#: plugins/weather.rtp:150 -msgid "city" +#: plugins/maths.rtp:99 +msgid "floor" msgstr "" -#: plugins/weather.rtp:124 -#: plugins/weather.rtp:138 -#: plugins/weather.rtp:151 -msgid "day" +#: plugins/maths.rtp:104 +msgid "ceiling" msgstr "" -#: plugins/weather.rtp:136 -msgid "high" +#: plugins/maths.rtp:109 +msgid "to degrees" msgstr "" -#: plugins/weather.rtp:149 -msgid "low" +#: plugins/maths.rtp:114 +msgid "to radians" msgstr "" #: plugins/nutrition.rtp:104 @@ -9458,45 +9867,6 @@ msgstr "" msgid "water" msgstr "" -#: plugins/maths.rtp:62 -#: plugins/examples.rtp:93 -msgid "power" -msgstr "" - -#: plugins/maths.rtp:62 -#: plugins/examples.rtp:93 -msgid "base" -msgstr "" - -#: plugins/maths.rtp:62 -#: plugins/examples.rtp:93 -msgid "exp" -msgstr "" - -#: plugins/maths.rtp:99 -#: plugins/examples.rtp:130 -msgid "floor" -msgstr "" - -#: plugins/maths.rtp:104 -#: plugins/examples.rtp:135 -msgid "ceiling" -msgstr "" - -#: plugins/maths.rtp:109 -#: plugins/examples.rtp:140 -msgid "to degrees" -msgstr "" - -#: plugins/maths.rtp:114 -#: plugins/examples.rtp:145 -msgid "to radians" -msgstr "" - -#: plugins/facebook.rtp:27 -msgid "publish" -msgstr "" - #: plugins/rodi.rtp:172 msgid "blink" msgstr "" @@ -9525,18 +9895,66 @@ msgstr "" msgid "move" msgstr "" -#: plugins/accelerometer.rtp:48 -msgid "motion x" +#: plugins/weather.rtp:68 +#: plugins/weather.rtp:97 +msgid "Days ahead must be in the range of -1 to 5." msgstr "" -#: plugins/accelerometer.rtp:56 -msgid "motion y" +#: plugins/weather.rtp:122 +msgid "forecast" msgstr "" -#: plugins/accelerometer.rtp:64 -msgid "motion z" +#: plugins/weather.rtp:123 +#: plugins/weather.rtp:137 +#: plugins/weather.rtp:150 +msgid "city" +msgstr "" + +#: plugins/weather.rtp:124 +#: plugins/weather.rtp:138 +#: plugins/weather.rtp:151 +msgid "day" +msgstr "" + +#: plugins/weather.rtp:136 +msgid "high" +msgstr "" + +#: plugins/weather.rtp:149 +msgid "low" msgstr "" +#: js/toolbar.js:70 + +#: js/toolbar.js:130 + +#: js/toolbar.js:194 + +#: js/toolbar.js:249 + +#~msgid "Toggle JavaScript Editor" +#~msgstr "" + +#: js/EnsembleBlocks.js:643 + +#~msgid "The Turrle pitch block returns the current pitch number being played by the specified turtle." +#~msgstr "" + +#: js/PitchActions.js:88 + +#~msgid "The Scalar Step Block must be used inside of a Note Block." +#~msgstr "" + +#: js/PitchActions.js:107 + +#~msgid "The Scalar Step Block must be preceded by a Pitch Block." +#~msgstr "" + +#: js/musickeyboard.js:2840 + +#~msgid "New action blocks generated!" +#~msgstr "" + #: js/toolbar.js:110 #: js/toolbar.js:204 @@ -9877,11 +10295,6 @@ msgstr "" #~msgid "The Time block returns the number of seconds that the program has been running." #~msgstr "" -#: js/help.js:95 - -#~msgid "Take a tour" -#~msgstr "" - #: js/GlobalCard.js:48 #~msgid "More Details" @@ -12780,11 +13193,6 @@ msgstr "" #~msgid "The save-stack button saves a stack onto a custom palette. It appears after a \"long press\" on a stack." #~msgstr "" -#: js/musicutils.js:254 - -#~msgid "Custom" -#~msgstr "" - #: js/basicblocks.js:4785 #~msgid "Rhythm" diff --git a/po/zh_CN.po b/po/zh_CN.po index 95b2a5599e..69577c96d4 100644 --- a/po/zh_CN.po +++ b/po/zh_CN.po @@ -410,276 +410,131 @@ #: js/planetInterface.js:104 #: js/planetInterface.js:104 #: js/planetInterface.js:104 -msgid "project undefined" +#: js/SaveInterface.js:59 +#: js/SaveInterface.js:61 +#: js/SaveInterface.js:93 +msgid "Music Blocks Project" msgstr "" -#: js/logo.js:61 -msgid "Not a valid pitch name" +#: js/SaveInterface.js:63 +msgid "This project was created in Music Blocks" msgstr "" -#: js/logo.js:507 -#: js/ProgramBlocks.js:258 -#: js/ProgramBlocks.js:427 -msgid "You must select a file." -msgstr "你必须选择一个文件" - -#: js/logo.js:1184 -#: js/turtles.js:118 -#: js/turtle-painter.js:1192 -#: js/turtle-painter.js:1193 -#: js/block.js:1463 -#: js/lilypond.js:757 -#: js/lilypond.js:921 -#: js/lilypond.js:959 -#: js/ActionBlocks.js:1223 -#: js/ProgramBlocks.js:1267 -msgid "start" -msgstr "开始" - -#: js/logo.js:1696 -msgid "Playback is ready." +#: js/SaveInterface.js:67 +msgid "Music Blocks is a Free/Libre Software application." msgstr "" -#: js/blocks.js:1011 -#: js/blocks.js:3427 -#: js/blocks.js:3428 -#: js/blocks.js:3653 -#: js/blocks.js:4012 -#: js/blocks.js:4205 -#: js/blocks.js:5343 -#: js/blocks.js:6474 -#: js/palette.js:527 -#: js/palette.js:536 -#: js/palette.js:545 -#: js/palette.js:554 -#: js/palette.js:1131 -#: js/palette.js:1142 -#: js/palette.js:1153 -#: js/palette.js:1164 -#: js/palette.js:1183 -#: js/rubrics.js:529 -#: js/macros.js:170 -#: js/macros.js:266 -#: js/macros.js:267 -#: js/macros.js:276 -#: js/macros.js:828 -#: js/block.js:1449 -#: js/block.js:4164 -#: js/block.js:4182 -#: js/block.js:4193 -#: js/turtledefs.js:128 -#: js/turtledefs.js:230 -#: js/ActionBlocks.js:254 -#: js/ActionBlocks.js:307 -#: js/ActionBlocks.js:617 -#: js/ActionBlocks.js:716 -#: js/ActionBlocks.js:961 -#: js/ActionBlocks.js:1049 -#: js/ActionBlocks.js:1322 -#: js/ActionBlocks.js:1325 -#: js/ActionBlocks.js:1337 -#: js/ActionBlocks.js:1404 -#: js/MeterBlocks.js:715 -#: js/MeterBlocks.js:768 -#: js/MeterBlocks.js:831 -#: js/MeterBlocks.js:892 -#: js/phrasemaker.js:4412 -#: js/musickeyboard.js:2647 -#: js/rhythmruler.js:1928 -#: js/rhythmruler.js:1935 -#: js/rhythmruler.js:2119 -#: js/rhythmruler.js:2126 -msgid "action" -msgstr "動作" - -#: js/blocks.js:1205 -#: js/blocks.js:3380 -#: js/blocks.js:3770 -#: js/blocks.js:3801 -#: js/blocks.js:3850 -#: js/blocks.js:3885 -#: js/blocks.js:6497 -#: js/palette.js:509 -#: js/palette.js:638 -#: js/palette.js:1107 -#: js/BoxesBlocks.js:282 -#: js/BoxesBlocks.js:285 -#: js/BoxesBlocks.js:405 -#: js/BoxesBlocks.js:594 -msgid "box" -msgstr "盒子" - -#: js/blocks.js:1680 -msgid "Consider breaking this stack into parts." +#: js/SaveInterface.js:69 +msgid "The source code can be accessed at" msgstr "" -#: js/blocks.js:2408 -#: js/palette.js:653 -#: js/MediaBlocks.js:602 -msgid "open file" -msgstr "打开文件" - -#: js/blocks.js:2415 -#: js/blocks.js:2423 -#: js/activity.js:1875 -msgid "audio file" +#: js/SaveInterface.js:72 +msgid "For more information, please consult the" msgstr "" -#: js/blocks.js:2536 -#: js/blocks.js:3147 -#: js/block.js:3543 -msgid "on2" +#: js/SaveInterface.js:76 +#: js/turtledefs.js:795 +msgid "Music Blocks Guide" msgstr "" -#: js/blocks.js:2538 -#: js/blocks.js:3149 -#: js/block.js:3545 -msgid "off" +#: js/SaveInterface.js:83 +msgid "Alternatively, open the file in Music Blocks using the Load project button." msgstr "" -#: js/blocks.js:2543 -#: js/blocks.js:3154 -#: js/palette.js:618 -#: js/block.js:3466 -#: js/BooleanBlocks.js:77 -#: js/BooleanBlocks.js:167 -#: js/BooleanBlocks.js:251 -#: js/BooleanBlocks.js:335 -#: js/BooleanBlocks.js:433 -#: js/BooleanBlocks.js:539 -#: js/BooleanBlocks.js:640 -#: js/BooleanBlocks.js:741 -#: js/BooleanBlocks.js:847 -#: js/BooleanBlocks.js:948 -#: js/BooleanBlocks.js:1033 -#: js/SensorsBlocks.js:910 -msgid "true" +#: js/SaveInterface.js:85 +msgid "Project Code" msgstr "" -#: js/blocks.js:2545 -#: js/blocks.js:3156 -#: js/block.js:3466 -#: js/BooleanBlocks.js:79 -#: js/BooleanBlocks.js:169 -#: js/BooleanBlocks.js:253 -#: js/BooleanBlocks.js:337 -#: js/BooleanBlocks.js:435 -#: js/BooleanBlocks.js:541 -#: js/BooleanBlocks.js:642 -#: js/BooleanBlocks.js:743 -#: js/BooleanBlocks.js:849 -#: js/BooleanBlocks.js:950 -#: js/SensorsBlocks.js:912 -msgid "false" +#: js/SaveInterface.js:87 +msgid "This code stores data about the blocks in a project." msgstr "" -#: js/blocks.js:3183 -#: js/palette.js:574 -#: js/MediaBlocks.js:892 -#: js/MediaBlocks.js:963 -msgid "text" -msgstr "文本" - -#: js/blocks.js:3379 -#: js/palette.js:641 -#: js/palette.js:642 -#: js/BoxesBlocks.js:514 -msgid "store in box" +#: js/SaveInterface.js:89 +msgid "Show" msgstr "" -#: js/blocks.js:3384 -#: js/blocks.js:3824 -#: js/blocks.js:3859 -#: js/blocks.js:3894 -#: js/blocks.js:5773 -#: js/blocks.js:5794 -#: js/BoxesBlocks.js:772 -msgid "box1" +#: js/SaveInterface.js:91 +msgid "Hide" msgstr "" -#: js/blocks.js:3386 -#: js/blocks.js:3826 -#: js/blocks.js:3861 -#: js/blocks.js:3896 -#: js/blocks.js:5775 -#: js/blocks.js:5796 -#: js/BoxesBlocks.js:663 -msgid "box2" +#: js/SaveInterface.js:131 +#: js/SaveInterface.js:204 +#: js/SaveInterface.js:262 +#: js/SaveInterface.js:389 +#: js/SaveInterface.js:417 +#: js/activity.js:4884 +#: planet/js/ProjectStorage.js:27 +#: planet/js/GlobalPlanet.js:467 +#: planet/js/GlobalPlanet.js:469 +#: planet/js/GlobalPlanet.js:495 +#.TRANS: default project title when saving as Lilypond +msgid "My Project" msgstr "" -#: js/blocks.js:4058 -#: js/palette.js:639 -#: js/palette.js:644 -#: js/palette.js:1043 -#: js/BoxesBlocks.js:591 -msgid "store in" -msgstr "放入" - -#: js/blocks.js:4058 -#: js/EnsembleBlocks.js:391 -#: js/EnsembleBlocks.js:402 -#: js/MediaBlocks.js:746 -#: js/ProgramBlocks.js:390 -#: js/ProgramBlocks.js:495 -#: js/ProgramBlocks.js:658 -#: js/BoxesBlocks.js:595 -#: js/PitchBlocks.js:656 -#: js/PitchBlocks.js:932 -#: js/PitchBlocks.js:1827 -#: js/ToneBlocks.js:1025 -#: js/DictBlocks.js:215 -#: js/DictBlocks.js:289 -msgid "name" +#: js/SaveInterface.js:197 +#: planet/js/SaveInterface.js:58 +msgid "No description provided" msgstr "" -#: js/blocks.js:4058 -#: js/RhythmBlocks.js:1130 -#: js/BoxesBlocks.js:75 -#: js/BoxesBlocks.js:595 -#: js/HeapBlocks.js:544 -#: js/DictBlocks.js:289 -#: js/DictBlocks.js:430 -msgid "value" -msgstr "值" +#: js/SaveInterface.js:332 +msgid "Your recording is in progress." +msgstr "" -#: js/blocks.js:4907 -msgid "There is no block selected." +#: js/SaveInterface.js:401 +#.TRANS: File name prompt for save as Lilypond +msgid "File name" msgstr "" -#: js/blocks.js:5002 -#: js/MediaBlocks.js:888 -msgid "show" -msgstr "顯示" +#: js/SaveInterface.js:403 +#: planet/js/StringHelper.js:39 +#.TRANS: Project title prompt for save as Lilypond +msgid "Project title" +msgstr "" -#: js/blocks.js:5005 -#: js/MediaBlocks.js:803 -#.TRANS: Avatar is the image used to determine the appearance of the mouse. -msgid "avatar" +#: js/SaveInterface.js:405 +#.TRANS: Project title prompt for save as Lilypond +msgid "Project author" msgstr "" -#: js/blocks.js:5008 -#: js/ToneBlocks.js:1010 -#: js/sampler.js:693 -#.TRANS: The sound sample that the user uploads. -msgid "sample" +#: js/SaveInterface.js:407 +#.TRANS: MIDI prompt for save as Lilypond +msgid "Include MIDI output?" msgstr "" -#: js/turtles.js:874 -msgid "Grid" +#: js/SaveInterface.js:409 +#.TRANS: Guitar prompt for save as Lilypond +msgid "Include guitar tablature output?" msgstr "" -#: js/turtles.js:891 -#: js/turtledefs.js:626 -msgid "Clean" -msgstr "清除畫面" +#: js/SaveInterface.js:411 +#.TRANS: Lilypond is a scripting language for generating sheet music +msgid "Save as Lilypond" +msgstr "" -#: js/turtles.js:912 -#: js/turtledefs.js:632 -msgid "Collapse" +#: js/SaveInterface.js:426 +#: js/blocks/EnsembleBlocks.js:75 +#: js/blocks/EnsembleBlocks.js:154 +#: js/blocks/EnsembleBlocks.js:216 +#: js/blocks/EnsembleBlocks.js:302 +#: js/blocks/EnsembleBlocks.js:348 +#: js/blocks/EnsembleBlocks.js:389 +#: js/blocks/EnsembleBlocks.js:441 +#: js/blocks/EnsembleBlocks.js:490 +#: js/blocks/EnsembleBlocks.js:536 +#: js/blocks/EnsembleBlocks.js:583 +#: js/blocks/EnsembleBlocks.js:637 +#: js/blocks/EnsembleBlocks.js:753 +#: js/blocks/EnsembleBlocks.js:840 +#: js/blocks/EnsembleBlocks.js:899 +#: js/blocks/EnsembleBlocks.js:942 +#: js/blocks/EnsembleBlocks.js:1212 +#: js/blocks/EnsembleBlocks.js:1280 +#.TRANS: default project author when saving as Lilypond +msgid "Mr. Mouse" msgstr "" -#: js/turtles.js:940 -msgid "Expand" +#: js/SaveInterface.js:573 +msgid "The Lilypond code is copied to clipboard. You can paste it here: " msgstr "" #: js/languagebox.js:198 @@ -690,6933 +545,7487 @@ msgstr "" msgid "Music Blocks is already set to this language." msgstr "音乐积木已设置为该语言" -#: js/piemenus.js:200 -#: js/musicutils.js:808 -#: js/musicutils.js:824 -#: js/phrasemaker.js:1672 -#: js/musickeyboard.js:2041 -#: js/sampler.js:544 -#.TRANS: double sharp is a music term related to pitch -msgid "double sharp" +#: js/planetInterface.js:131 +msgid "project undefined" msgstr "" -#: js/piemenus.js:201 -#: js/PitchBlocks.js:1510 -#: js/PitchActions.js:580 -#: js/musicutils.js:806 -#: js/musicutils.js:825 -#: js/phrasemaker.js:1673 -#: js/musickeyboard.js:2042 -#: js/sampler.js:545 -#.TRANS: sharp is a half-step up in pitch -#.TRANS: sharp is a music term related to pitch -msgid "sharp" -msgstr "升号" - -#: js/piemenus.js:202 -#: js/musicutils.js:804 -#: js/musicutils.js:826 -#: js/phrasemaker.js:1674 -#: js/musickeyboard.js:2043 -#: js/sampler.js:546 -#.TRANS: natural is a music term related to pitch -msgid "natural" +#: js/rubrics.js:523 +#: js/turtledefs.js:119 +#: js/turtledefs.js:221 +#: js/blocks/RhythmBlockPaletteBlocks.js:52 +#: js/blocks/RhythmBlockPaletteBlocks.js:234 +#: js/blocks/ProgramBlocks.js:745 +#: js/widgets/rhythmruler.js:2057 +#: js/widgets/rhythmruler.js:2064 +#: js/widgets/rhythmruler.js:2133 +#: js/widgets/rhythmruler.js:2140 +#: js/widgets/rhythmruler.js:2219 +#.TRANS: an arrangement of notes based on duration +msgid "rhythm" msgstr "" -#: js/piemenus.js:203 -#: js/PitchBlocks.js:1469 -#: js/PitchActions.js:583 -#: js/musicutils.js:802 -#: js/musicutils.js:827 -#: js/phrasemaker.js:1675 -#: js/musickeyboard.js:2044 -#: js/sampler.js:547 -#.TRANS: flat is a half-step down in pitch -#.TRANS: flat is a music term related to pitch -msgid "flat" -msgstr "降号" +#: js/rubrics.js:524 +#: js/turtledefs.js:121 +#: js/turtledefs.js:223 +#: js/block-verbose.js:2622 +#: js/block.js:2550 +#: js/blocks/IntervalsBlocks.js:63 +#: js/blocks/SensorsBlocks.js:178 +#: js/blocks/PitchBlocks.js:1839 +#: js/blocks/PitchBlocks.js:1853 +#: js/widgets/musickeyboard.js:1935 +#: js/widgets/phrasemaker.js:1036 +#.TRANS: pitch number +#.TRANS: pitch number +#.TRANS: we specify pitch in terms of a name and an octave. The name can be CDEFGAB or Do Re Mi Fa Sol La Ti. Octave is a number between 1 and 8. +msgid "pitch" +msgstr "音高" -#: js/piemenus.js:204 -#: js/musicutils.js:800 -#: js/musicutils.js:828 -#: js/phrasemaker.js:1676 -#: js/musickeyboard.js:2045 -#: js/sampler.js:548 -#.TRANS: double flat is a music term related to pitch -msgid "double flat" +#: js/rubrics.js:525 +#: js/turtledefs.js:123 +#: js/turtledefs.js:225 +msgid "tone" msgstr "" -#: js/piemenus.js:2861 -#: js/PitchBlocks.js:1357 -#: js/musicutils.js:627 -#.TRANS: unison means the note is the same as the current note -#.TRANS: unison is a music term related to intervals -msgid "unison" +#: js/rubrics.js:526 +#: js/lilypond.js:605 +#: js/lilypond.js:904 +#: js/lilypond.js:910 +#: js/lilypond.js:948 +msgid "mouse" msgstr "" -#: js/piemenus.js:3015 -#: js/piemenus.js:3088 -#: js/musicutils.js:635 -#: js/musicutils.js:810 -#: js/musicutils.js:912 -#.TRANS: major is a music term related to intervals and mode -msgid "major" -msgstr "大调音阶" +#: js/rubrics.js:527 +#: js/turtledefs.js:132 +#: js/turtledefs.js:234 +#: js/widgets/phrasemaker.js:1040 +msgid "pen" +msgstr "" -#: js/piemenus.js:3015 -#: js/piemenus.js:3088 -#: js/musicutils.js:653 -#.TRANS: modal scale for music -msgid "ionian" -msgstr "艾奥尼安调式" +#: js/rubrics.js:528 +#: js/turtledefs.js:133 +#: js/turtledefs.js:235 +#: js/blocks/NumberBlocks.js:981 +#: js/blocks/PitchBlocks.js:1717 +#: js/blocks/PitchBlocks.js:1758 +msgid "number" +msgstr "數字" -#: js/piemenus.js:3017 -#: js/piemenus.js:3092 -#: js/musicutils.js:633 -#: js/musicutils.js:811 -#: js/musicutils.js:909 -#.TRANS: minor is a music term related to intervals and mode -msgid "minor" -msgstr "小调音阶" +#: js/rubrics.js:529 +#: js/turtledefs.js:127 +#: js/turtledefs.js:229 +msgid "flow" +msgstr "" -#: js/piemenus.js:3017 -#: js/piemenus.js:3092 -#: js/musicutils.js:663 -#.TRANS: modal scale for music -msgid "aeolian" -msgstr "伊奥利安调式" +#: js/rubrics.js:530 +#: js/turtledefs.js:128 +#: js/turtledefs.js:230 +#: js/block-verbose.js:1609 +#: js/block-verbose.js:4559 +#: js/block-verbose.js:4577 +#: js/block-verbose.js:4588 +#: js/block.js:1573 +#: js/block.js:4483 +#: js/block.js:4501 +#: js/block.js:4512 +#: js/blocks.js:1018 +#: js/blocks.js:3491 +#: js/blocks.js:3492 +#: js/blocks.js:3717 +#: js/blocks.js:4076 +#: js/blocks.js:4269 +#: js/blocks.js:5432 +#: js/blocks.js:6563 +#: js/macros.js:170 +#: js/macros.js:266 +#: js/macros.js:267 +#: js/macros.js:276 +#: js/macros.js:828 +#: js/palette.js:527 +#: js/palette.js:536 +#: js/palette.js:545 +#: js/palette.js:554 +#: js/palette.js:1129 +#: js/palette.js:1140 +#: js/palette.js:1151 +#: js/palette.js:1162 +#: js/palette.js:1181 +#: js/blocks/ActionBlocks.js:254 +#: js/blocks/ActionBlocks.js:307 +#: js/blocks/ActionBlocks.js:617 +#: js/blocks/ActionBlocks.js:716 +#: js/blocks/ActionBlocks.js:961 +#: js/blocks/ActionBlocks.js:1049 +#: js/blocks/ActionBlocks.js:1322 +#: js/blocks/ActionBlocks.js:1325 +#: js/blocks/ActionBlocks.js:1337 +#: js/blocks/ActionBlocks.js:1404 +#: js/blocks/MeterBlocks.js:715 +#: js/blocks/MeterBlocks.js:768 +#: js/blocks/MeterBlocks.js:831 +#: js/blocks/MeterBlocks.js:892 +#: js/widgets/musickeyboard.js:2986 +#: js/widgets/phrasemaker.js:4913 +#: js/widgets/rhythmruler.js:2319 +#: js/widgets/rhythmruler.js:2326 +#: js/widgets/rhythmruler.js:2511 +#: js/widgets/rhythmruler.js:2518 +msgid "action" +msgstr "動作" -#: js/piemenus.js:3407 -msgid "Duplicate" +#: js/rubrics.js:531 +#: js/turtledefs.js:136 +#: js/turtledefs.js:238 +msgid "sensors" msgstr "" -#: js/piemenus.js:3408 -#: js/turtledefs.js:534 -msgid "Extract" +#: js/rubrics.js:532 +#: js/turtledefs.js:135 +#: js/turtledefs.js:237 +#: js/blocks/MediaBlocks.js:930 +msgid "media" msgstr "" -#: js/piemenus.js:3409 -msgid "Move to trash" +#: js/rubrics.js:533 +msgid "mice" msgstr "" -#: js/piemenus.js:3410 -#: js/timbre.js:968 -#: js/StringHelper.js:69 -msgid "Close" +#: js/toolbar.js:48 +#: js/toolbar.js:109 +msgid "About Music Blocks" msgstr "" -#: js/piemenus.js:3416 -msgid "Save stack" +#: js/toolbar.js:49 +#: js/toolbar.js:110 +#: js/toolbar.js:175 +#: js/toolbar.js:231 +#: js/turtledefs.js:445 +#: js/turtledefs.js:482 +#: js/activity.js:2660 +#: js/activity.js:2671 +#: js/activity.js:2902 +#: js/widgets/modewidget.js:77 +#: js/widgets/meterwidget.js:185 +#: js/widgets/pitchdrummatrix.js:147 +#: js/widgets/pitchdrummatrix.js:687 +#: js/widgets/pitchdrummatrix.js:689 +#: js/widgets/pitchdrummatrix.js:741 +#: js/widgets/pitchdrummatrix.js:743 +#: js/widgets/pitchdrummatrix.js:758 +#: js/widgets/pitchdrummatrix.js:760 +#: js/widgets/pitchdrummatrix.js:789 +#: js/widgets/pitchdrummatrix.js:791 +#: js/widgets/pitchstaircase.js:121 +#: js/widgets/temperament.js:610 +#: js/widgets/temperament.js:613 +#: js/widgets/temperament.js:673 +#: js/widgets/temperament.js:675 +#: js/widgets/temperament.js:2017 +#: js/widgets/temperament.js:2019 +#: js/widgets/tempo.js:84 +#: js/widgets/tempo.js:86 +#: js/widgets/timbre.js:432 +#: js/widgets/timbre.js:434 +#: js/widgets/timbre.js:465 +#: js/widgets/timbre.js:467 +#: js/widgets/timbre.js:746 +#: js/widgets/aiwidget.js:647 +#: js/widgets/aiwidget.js:654 +#: js/widgets/aiwidget.js:656 +#: js/widgets/arpeggio.js:90 +#: js/widgets/arpeggio.js:547 +#: js/widgets/arpeggio.js:549 +#: js/widgets/arpeggio.js:644 +#: js/widgets/arpeggio.js:646 +#: js/widgets/musickeyboard.js:676 +#: js/widgets/musickeyboard.js:872 +#: js/widgets/musickeyboard.js:874 +#: js/widgets/musickeyboard.js:953 +#: js/widgets/musickeyboard.js:955 +#: js/widgets/phrasemaker.js:513 +#: js/widgets/phrasemaker.js:523 +#: js/widgets/phrasemaker.js:525 +#: js/widgets/phrasemaker.js:4304 +#: js/widgets/phrasemaker.js:4528 +#: js/widgets/phrasemaker.js:4533 +#: js/widgets/phrasemaker.js:4535 +#: js/widgets/phrasemaker.js:4650 +#: js/widgets/rhythmruler.js:637 +#: js/widgets/rhythmruler.js:639 +#: js/widgets/rhythmruler.js:653 +#: js/widgets/rhythmruler.js:655 +#: js/widgets/sampler.js:162 +#: js/widgets/sampler.js:164 +#: js/widgets/sampler.js:363 +msgid "Play" msgstr "" -#: js/piemenus.js:3420 -#: js/toolbar.js:60 -#: js/toolbar.js:120 -#: js/toolbar.js:185 -#: js/toolbar.js:240 -#: js/turtledefs.js:752 +#: js/toolbar.js:50 +#: js/toolbar.js:111 +#: js/toolbar.js:176 +#: js/toolbar.js:232 +#: js/turtledefs.js:451 +#: js/turtledefs.js:488 +#: js/activity.js:2679 +#: js/widgets/modewidget.js:99 +#: js/widgets/modewidget.js:101 +#: js/widgets/meterwidget.js:206 +#: js/widgets/meterwidget.js:208 +#: js/widgets/pitchdrummatrix.js:674 +#: js/widgets/pitchdrummatrix.js:676 +#: js/widgets/temperament.js:2002 +#: js/widgets/temperament.js:2004 +#: js/widgets/arpeggio.js:534 +#: js/widgets/arpeggio.js:536 +#: js/widgets/phrasemaker.js:534 +#: js/widgets/phrasemaker.js:536 +msgid "Stop" +msgstr "停止" + +#: js/toolbar.js:51 +#: js/toolbar.js:112 +#: js/toolbar.js:177 +#: js/toolbar.js:233 +#: js/turtledefs.js:498 +msgid "Record" +msgstr "" + +#: js/toolbar.js:52 +#: js/toolbar.js:53 +msgid "Full screen" +msgstr "" + +#: js/toolbar.js:54 +#: js/toolbar.js:115 +#: js/toolbar.js:180 +#: js/toolbar.js:236 +#: js/turtledefs.js:504 +msgid "Toggle Fullscreen" +msgstr "" + +#: js/toolbar.js:55 +#: js/toolbar.js:116 +#: js/toolbar.js:181 +#: js/toolbar.js:237 +#: js/turtledefs.js:510 +#: planet/js/StringHelper.js:33 +msgid "New project" +msgstr "" + +#: js/toolbar.js:56 +#: js/toolbar.js:117 +#: js/toolbar.js:182 +#: js/toolbar.js:238 +#: js/turtledefs.js:516 +msgid "Load project from file" +msgstr "" + +#: js/toolbar.js:57 +#: js/toolbar.js:118 +#: js/toolbar.js:119 +#: js/toolbar.js:183 +#: js/toolbar.js:239 +#: js/turtledefs.js:541 +#: js/turtledefs.js:550 +#: js/turtledefs.js:571 +msgid "Save project" +msgstr "" + +#: js/toolbar.js:58 +#: js/toolbar.js:77 +#: js/toolbar.js:79 +#: js/toolbar.js:138 +#: js/toolbar.js:147 +#: js/toolbar.js:149 +#: js/toolbar.js:184 +#: js/toolbar.js:202 +#: js/toolbar.js:204 +#: js/toolbar.js:240 +#: js/toolbar.js:258 +#: js/toolbar.js:260 +msgid "Save project as HTML" +msgstr "" + +#: js/toolbar.js:59 +#: js/toolbar.js:120 +#: js/toolbar.js:185 +#: js/toolbar.js:241 +msgid "Find and share projects" +msgstr "" + +#: js/toolbar.js:60 +#: js/toolbar.js:121 +#: js/toolbar.js:186 +#: js/toolbar.js:242 +msgid "Offline. Sharing is unavailable" +msgstr "" + +#: js/toolbar.js:61 +#: js/toolbar.js:122 +#: js/toolbar.js:187 +#: js/toolbar.js:243 +msgid "Auxiliary menu" +msgstr "" + +#: js/toolbar.js:62 +#: js/toolbar.js:123 +#: js/toolbar.js:188 +#: js/toolbar.js:244 +#: js/turtledefs.js:752 +#: js/piemenus.js:3423 msgid "Help" msgstr "幫助" -#: js/piemenus.js:3762 -msgid "You have chosen key " +#: js/toolbar.js:63 +#: js/toolbar.js:124 +#: js/toolbar.js:189 +#: js/toolbar.js:245 +msgid "Run slowly" +msgstr "" + +#: js/toolbar.js:64 +#: js/toolbar.js:125 +#: js/toolbar.js:190 +#: js/toolbar.js:246 +#: js/turtledefs.js:682 +msgid "Run step by step" +msgstr "" + +#: js/toolbar.js:65 +#: js/toolbar.js:126 +#: js/toolbar.js:191 +#: js/toolbar.js:247 +#: js/turtledefs.js:689 +msgid "Display statistics" +msgstr "" + +#: js/toolbar.js:66 +#: js/toolbar.js:127 +#: js/toolbar.js:192 +#: js/toolbar.js:248 +msgid "Load plugin" +msgstr "" + +#: js/toolbar.js:67 +#: js/toolbar.js:128 +#: js/toolbar.js:193 +#: js/toolbar.js:249 +#: js/turtledefs.js:696 +msgid "Delete plugin" +msgstr "" + +#: js/toolbar.js:68 +#: js/toolbar.js:129 +#: js/toolbar.js:194 +#: js/toolbar.js:250 +msgid "Enable horizontal scrolling" +msgstr "" + +#: js/toolbar.js:69 +#: js/toolbar.js:130 +#: js/toolbar.js:195 +#: js/toolbar.js:251 +msgid "Disable horizontal scrolling" +msgstr "" + +#: js/toolbar.js:70 +#: js/toolbar.js:131 +#: js/toolbar.js:196 +#: js/toolbar.js:252 +#: planet/js/LocalCard.js:54 +#: planet/js/StringHelper.js:71 +msgid "Merge with current project" +msgstr "" + +#: js/toolbar.js:71 +#: js/toolbar.js:132 +msgid "Set Pitch Preview" +msgstr "" + +#: js/toolbar.js:72 +#: js/toolbar.js:133 +#: js/toolbar.js:197 +#: js/toolbar.js:253 +msgid "JavaScript Editor" +msgstr "" + +#: js/toolbar.js:73 +#: js/toolbar.js:134 +#: js/toolbar.js:198 +#: js/toolbar.js:254 +#: js/turtledefs.js:724 +msgid "Restore" +msgstr "" + +#: js/toolbar.js:74 +#: js/toolbar.js:135 +#: js/toolbar.js:199 +#: js/toolbar.js:255 +msgid "Switch to beginner mode" +msgstr "" + +#: js/toolbar.js:75 +#: js/toolbar.js:136 +#: js/toolbar.js:200 +#: js/toolbar.js:256 +msgid "Switch to advanced mode" +msgstr "" + +#: js/toolbar.js:76 +#: js/toolbar.js:137 +#: js/toolbar.js:146 +#: js/toolbar.js:201 +#: js/toolbar.js:257 +#: js/turtledefs.js:738 +msgid "Select language" +msgstr "" + +#: js/toolbar.js:78 +#: js/toolbar.js:81 +#: js/toolbar.js:140 +#: js/turtledefs.js:579 +msgid "Save mouse artwork as PNG" +msgstr "" + +#: js/toolbar.js:80 +#: js/toolbar.js:139 +#: js/turtledefs.js:575 +msgid "Save mouse artwork as SVG" +msgstr "" + +#: js/toolbar.js:82 +#: js/toolbar.js:141 +#: js/turtledefs.js:583 +msgid "Save music as WAV" +msgstr "" + +#: js/toolbar.js:83 +#: js/toolbar.js:142 +#: js/turtledefs.js:587 +msgid "Save sheet music as ABC" +msgstr "" + +#: js/toolbar.js:84 +#: js/toolbar.js:143 +#: js/turtledefs.js:591 +msgid "Save sheet music as Lilypond" +msgstr "" + +#: js/toolbar.js:85 +msgid "Save sheet music as MusicXML" +msgstr "" + +#: js/toolbar.js:86 +#: js/toolbar.js:144 +#: js/toolbar.js:152 +#: js/toolbar.js:207 +#: js/toolbar.js:263 +#: js/turtledefs.js:562 +#: js/turtledefs.js:595 +msgid "Save block artwork as SVG" +msgstr "" + +#: js/toolbar.js:87 +#: js/toolbar.js:145 +#: js/toolbar.js:153 +#: js/toolbar.js:208 +#: js/toolbar.js:264 +#: js/turtles.js:911 +msgid "Confirm" +msgstr "" + +#: js/toolbar.js:88 +#: js/toolbar.js:154 +#: js/toolbar.js:209 +#: js/toolbar.js:265 +msgid "English (United States)" +msgstr "" + +#: js/toolbar.js:89 +#: js/toolbar.js:155 +#: js/toolbar.js:210 +#: js/toolbar.js:266 +msgid "English (United Kingdom)" +msgstr "" + +#: js/toolbar.js:90 +#: js/toolbar.js:156 +#: js/toolbar.js:211 +#: js/toolbar.js:267 +msgid "日本語" +msgstr "" + +#: js/toolbar.js:91 +msgid "한국어" +msgstr "" + +#: js/toolbar.js:92 +#: js/toolbar.js:158 +#: js/toolbar.js:213 +#: js/toolbar.js:269 +msgid "español" +msgstr "" + +#: js/toolbar.js:93 +#: js/toolbar.js:159 +#: js/toolbar.js:214 +#: js/toolbar.js:270 +msgid "português" +msgstr "" + +#: js/toolbar.js:94 +#: js/toolbar.js:160 +#: js/toolbar.js:215 +#: js/toolbar.js:271 +msgid "にほんご" +msgstr "" + +#: js/toolbar.js:95 +#: js/toolbar.js:161 +#: js/toolbar.js:216 +#: js/toolbar.js:272 +msgid "中文" +msgstr "" + +#: js/toolbar.js:96 +#: js/toolbar.js:162 +#: js/toolbar.js:217 +#: js/toolbar.js:273 +msgid "ภาษาไทย" +msgstr "" + +#: js/toolbar.js:97 +#: js/toolbar.js:163 +#: js/toolbar.js:218 +#: js/toolbar.js:274 +msgid "aymara" +msgstr "" + +#: js/toolbar.js:98 +#: js/toolbar.js:164 +#: js/toolbar.js:219 +#: js/toolbar.js:275 +msgid "quechua" +msgstr "" + +#: js/toolbar.js:99 +#: js/toolbar.js:165 +#: js/toolbar.js:220 +#: js/toolbar.js:276 +msgid "guarani" +msgstr "" + +#: js/toolbar.js:100 +#: js/toolbar.js:166 +#: js/toolbar.js:221 +#: js/toolbar.js:277 +msgid "हिंदी" +msgstr "" + +#: js/toolbar.js:101 +#: js/toolbar.js:168 +#: js/toolbar.js:222 +#: js/toolbar.js:279 +msgid "igbo" +msgstr "" + +#: js/toolbar.js:102 +#: js/toolbar.js:169 +#: js/toolbar.js:223 +#: js/toolbar.js:280 +msgid "عربى" +msgstr "" + +#: js/toolbar.js:103 +#: js/toolbar.js:167 +#: js/toolbar.js:224 +#: js/toolbar.js:278 +msgid "తెలుగు" +msgstr "" + +#: js/toolbar.js:104 +#: js/toolbar.js:170 +#: js/toolbar.js:225 +#: js/toolbar.js:281 +msgid "עִברִית" +msgstr "" + +#: js/toolbar.js:113 +#: js/toolbar.js:114 +#: js/toolbar.js:178 +#: js/toolbar.js:179 +#: js/toolbar.js:234 +#: js/toolbar.js:235 +msgid "Full Screen" +msgstr "" + +#: js/toolbar.js:148 +#: js/toolbar.js:151 +#: js/toolbar.js:203 +#: js/toolbar.js:206 +#: js/toolbar.js:259 +#: js/toolbar.js:262 +#: js/turtledefs.js:558 +msgid "Save turtle artwork as PNG" +msgstr "" + +#: js/toolbar.js:150 +#: js/toolbar.js:205 +#: js/toolbar.js:261 +#: js/turtledefs.js:554 +msgid "Save turtle artwork as SVG" +msgstr "" + +#: js/toolbar.js:157 +#: js/toolbar.js:212 +#: js/toolbar.js:268 +msgid "한국인" +msgstr "" + +#: js/toolbar.js:174 +#: js/toolbar.js:230 +msgid "About Turtle Blocks" +msgstr "" + +#: js/toolbar.js:446 +#: js/toolbar.js:457 +#: js/toolbar.js:497 +msgid "Turtle Wrap Off" +msgstr "" + +#: js/toolbar.js:466 +#: js/toolbar.js:506 +msgid "Turtle Wrap On" +msgstr "" + +#: js/turtle-painter.js:1192 +#: js/turtle-painter.js:1193 +#: js/turtles.js:118 +#: js/block-verbose.js:1623 +#: js/block.js:1587 +#: js/lilypond.js:749 +#: js/lilypond.js:913 +#: js/lilypond.js:951 +#: js/logo.js:1184 +#: js/blocks/ActionBlocks.js:1223 +#: js/blocks/ProgramBlocks.js:1267 +msgid "start" +msgstr "开始" + +#: js/turtledefs.js:40 +#.TRANS: put the URL to the guide here, e.g., https://github.com/sugarlabs/turtleblocksjs/tree/master/guide/README.md +msgid "guide url" +msgstr "" + +#: js/turtledefs.js:85 +#: js/turtledefs.js:437 +msgid "Turtle Blocks is a Logo-inspired turtle that draws colorful pictures with snap-together visual-programming blocks." +msgstr "" + +#: js/turtledefs.js:118 +#: js/turtledefs.js:220 +msgid "search" +msgstr "" + +#: js/turtledefs.js:120 +#: js/turtledefs.js:222 +#: js/blocks/MeterBlocks.js:1343 +#: js/blocks/WidgetBlocks.js:522 +#.TRANS: musical meter (time signature), e.g., 4:4 +msgid "meter" +msgstr "" + +#: js/turtledefs.js:122 +#: js/turtledefs.js:224 +msgid "intervals" +msgstr "" + +#: js/turtledefs.js:124 +#: js/turtledefs.js:226 +msgid "ornament" +msgstr "" + +#: js/turtledefs.js:125 +#: js/turtledefs.js:227 +#: js/blocks/VolumeBlocks.js:362 +#: js/blocks/VolumeBlocks.js:502 +#: js/blocks/VolumeBlocks.js:545 +msgid "volume" +msgstr "" + +#: js/turtledefs.js:126 +#: js/turtledefs.js:228 +#: js/block-verbose.js:1700 +#: js/block-verbose.js:2626 +#: js/block.js:1664 +#: js/block.js:2554 +#: js/lilypond.js:732 +#: js/lilypond.js:897 +#: js/lilypond.js:941 +#: js/palette.js:577 +#: js/blocks/RhythmBlocks.js:766 +#: js/blocks/DrumBlocks.js:477 +#: js/blocks/VolumeBlocks.js:502 +#: js/widgets/phrasemaker.js:1038 +msgid "drum" +msgstr "鼓" + +#: js/turtledefs.js:129 +#: js/turtledefs.js:231 +msgid "boxes" +msgstr "" + +#: js/turtledefs.js:130 +#: js/turtledefs.js:232 +msgid "widgets" +msgstr "" + +#: js/turtledefs.js:131 +#: js/turtledefs.js:233 +#: js/widgets/phrasemaker.js:1039 +msgid "graphics" +msgstr "" + +#: js/turtledefs.js:134 +#: js/turtledefs.js:236 +msgid "boolean" +msgstr "" + +#: js/turtledefs.js:137 +#: js/turtledefs.js:239 +#: js/blocks/HeapBlocks.js:59 +#: js/widgets/status.js:147 +msgid "heap" +msgstr "" + +#: js/turtledefs.js:138 +#: js/turtledefs.js:240 +#: js/blocks/DictBlocks.js:142 +#: js/blocks/ProgramBlocks.js:495 +msgid "dictionary" +msgstr "" + +#: js/turtledefs.js:139 +#: js/turtledefs.js:241 +msgid "ensemble" +msgstr "" + +#: js/turtledefs.js:140 +#: js/turtledefs.js:242 +msgid "extras" msgstr "" -#: js/piemenus.js:3766 -msgid " for your pitch preview." +#: js/turtledefs.js:142 +#: js/turtledefs.js:244 +#.TRANS: program as in computer program +#.TRANS: program as in computer program +msgid "program" msgstr "" -#: js/palette.js:571 -msgid "grid" +#: js/turtledefs.js:143 +#: js/turtledefs.js:245 +msgid "my blocks" msgstr "" -#: js/palette.js:577 -#: js/block.js:1540 -#: js/block.js:2343 -#: js/turtledefs.js:126 -#: js/turtledefs.js:228 -#: js/lilypond.js:740 -#: js/lilypond.js:905 -#: js/lilypond.js:949 -#: js/DrumBlocks.js:486 -#: js/RhythmBlocks.js:766 -#: js/VolumeBlocks.js:502 -#: js/phrasemaker.js:823 -msgid "drum" -msgstr "鼓" +#: js/turtledefs.js:185 +#: js/turtledefs.js:281 +msgid "artwork" +msgstr "" -#: js/palette.js:580 -msgid "effect" +#: js/turtledefs.js:185 +#: js/turtledefs.js:281 +msgid "logic" msgstr "" -#: js/palette.js:586 -msgid "sargam" +#: js/turtledefs.js:185 +#: js/turtledefs.js:281 +msgid "music" msgstr "" -#: js/palette.js:589 -#: js/activity.js:1833 -#: js/RhythmBlocks.js:923 -#: js/PitchBlocks.js:442 -#: js/PitchBlocks.js:1748 -#.TRANS: a numeric mapping of the notes in an octave based on the musical mode -msgid "scale degree" +#: js/turtledefs.js:187 +#: js/turtledefs.js:463 +msgid "Music Blocks is a collection of tools for exploring fundamental musical concepts in a fun way." msgstr "" -#: js/palette.js:592 -#: js/activity.js:1860 -msgid "mode name" +#: js/turtledefs.js:436 +msgid "Welcome to Turtle Blocks" msgstr "" -#: js/palette.js:595 -#: js/activity.js:1839 -msgid "invert mode" +#: js/turtledefs.js:438 +#: js/turtledefs.js:465 +#: js/turtledefs.js:774 +#: js/turtledefs.js:805 +msgid "The current version is" msgstr "" -#: js/palette.js:598 -#: js/activity.js:1836 -msgid "voice name" +#: js/turtledefs.js:446 +#: js/turtledefs.js:483 +msgid "Click the run button to run the project in fast mode." msgstr "" -#: js/palette.js:601 -#: js/PitchBlocks.js:1181 -msgid "custom pitch" +#: js/turtledefs.js:452 +msgid "Stop the turtle." msgstr "" -#: js/palette.js:605 -#: js/block.js:1456 -#: js/block.js:1575 -#: js/WidgetBlocks.js:218 -#: js/IntervalsBlocks.js:63 -msgid "temperament" +#: js/turtledefs.js:454 +#: js/turtledefs.js:491 +msgid "You can also type Alt-S to stop." msgstr "" -#: js/palette.js:609 -msgid "accidental" +#: js/turtledefs.js:462 +#: js/widgets/help.js:333 +msgid "Welcome to Music Blocks" msgstr "" -#: js/palette.js:615 -#: js/activity.js:1866 -msgid "interval name" +#: js/turtledefs.js:472 +#: js/widgets/help.js:334 +msgid "Meet Mr. Mouse!" msgstr "" -#: js/palette.js:633 -#: js/PitchBlocks.js:405 -msgid "pitch converter" +#: js/turtledefs.js:473 +msgid "Mr Mouse is our Music Blocks conductor." msgstr "" -#: js/rubrics.js:522 -#: js/turtledefs.js:119 -#: js/turtledefs.js:221 -#: js/RhythmBlockPaletteBlocks.js:52 -#: js/RhythmBlockPaletteBlocks.js:233 -#: js/ProgramBlocks.js:745 -#: js/rhythmruler.js:1670 -#: js/rhythmruler.js:1677 -#: js/rhythmruler.js:1745 -#: js/rhythmruler.js:1752 -#: js/rhythmruler.js:1830 -#.TRANS: an arrangement of notes based on duration -msgid "rhythm" +#: js/turtledefs.js:475 +msgid "Mr Mouse encourages you to explore Music Blocks." msgstr "" -#: js/rubrics.js:523 -#: js/block.js:2339 -#: js/turtledefs.js:121 -#: js/turtledefs.js:223 -#: js/IntervalsBlocks.js:63 -#: js/PitchBlocks.js:1801 -#: js/PitchBlocks.js:1814 -#: js/SensorsBlocks.js:178 -#: js/phrasemaker.js:821 -#: js/musickeyboard.js:1653 -#.TRANS: pitch number -#.TRANS: we specify pitch in terms of a name and an octave. The name can be CDEFGAB or Do Re Mi Fa Sol La Ti. Octave is a number between 1 and 8. -msgid "pitch" -msgstr "音高" +#: js/turtledefs.js:477 +msgid "Let us start our tour!" +msgstr "" -#: js/rubrics.js:524 -#: js/turtledefs.js:123 -#: js/turtledefs.js:225 -msgid "tone" +#: js/turtledefs.js:489 +msgid "Stop the music (and the mice)." msgstr "" -#: js/rubrics.js:525 -#: js/lilypond.js:613 -#: js/lilypond.js:912 -#: js/lilypond.js:918 -#: js/lilypond.js:956 -msgid "mouse" +#: js/turtledefs.js:499 +msgid "Record your project as video." msgstr "" -#: js/rubrics.js:526 -#: js/turtledefs.js:132 -#: js/turtledefs.js:234 -#: js/phrasemaker.js:825 -msgid "pen" +#: js/turtledefs.js:505 +msgid "Toggle Fullscreen mode." msgstr "" -#: js/rubrics.js:527 -#: js/turtledefs.js:133 -#: js/turtledefs.js:235 -#: js/NumberBlocks.js:905 -#: js/PitchBlocks.js:1679 -#: js/PitchBlocks.js:1720 -msgid "number" -msgstr "數字" +#: js/turtledefs.js:511 +msgid "Initialize a new project." +msgstr "" -#: js/rubrics.js:528 -#: js/turtledefs.js:127 -#: js/turtledefs.js:229 -msgid "flow" +#: js/turtledefs.js:517 +msgid "You can also load projects from the file system." msgstr "" -#: js/rubrics.js:530 -#: js/turtledefs.js:136 -#: js/turtledefs.js:238 -msgid "sensors" +#: js/turtledefs.js:522 +#: planet/js/StringHelper.js:46 +msgid "Delete" msgstr "" -#: js/rubrics.js:531 -#: js/turtledefs.js:135 -#: js/turtledefs.js:237 -#: js/MediaBlocks.js:930 -msgid "media" +#: js/turtledefs.js:523 +msgid "To delete a block, just right-click on it, then you will be able to see the delete option" msgstr "" -#: js/rubrics.js:532 -msgid "mice" +#: js/turtledefs.js:528 +#: js/activity.js:2649 +#: planet/js/LocalCard.js:31 +msgid "Copy" msgstr "" -#: js/macros.js:711 -#: js/musicutils.js:783 -#: js/synthutils.js:181 -#.TRANS: animal sound effect -msgid "duck" +#: js/turtledefs.js:529 +msgid "To copy a block, just right-click on it, then you will be able to see the copy option" msgstr "" -#: js/toolbar.js:46 -#: js/toolbar.js:107 -msgid "About Music Blocks" +#: js/turtledefs.js:534 +#: js/piemenus.js:3411 +msgid "Extract" msgstr "" -#: js/toolbar.js:47 -#: js/toolbar.js:108 -#: js/toolbar.js:172 -#: js/toolbar.js:228 -#: js/turtledefs.js:445 -#: js/turtledefs.js:482 -#: js/activity.js:2281 -#: js/activity.js:2289 -#: js/activity.js:2520 -#: js/modewidget.js:77 -#: js/pitchstaircase.js:121 -#: js/phrasemaker.js:302 -#: js/phrasemaker.js:312 -#: js/phrasemaker.js:314 -#: js/phrasemaker.js:3901 -#: js/phrasemaker.js:4061 -#: js/phrasemaker.js:4066 -#: js/phrasemaker.js:4068 -#: js/phrasemaker.js:4183 -#: js/pitchdrummatrix.js:81 -#: js/pitchdrummatrix.js:574 -#: js/pitchdrummatrix.js:576 -#: js/pitchdrummatrix.js:628 -#: js/pitchdrummatrix.js:630 -#: js/pitchdrummatrix.js:645 -#: js/pitchdrummatrix.js:647 -#: js/pitchdrummatrix.js:674 -#: js/pitchdrummatrix.js:676 -#: js/temperament.js:477 -#: js/temperament.js:480 -#: js/temperament.js:540 -#: js/temperament.js:542 -#: js/temperament.js:1835 -#: js/temperament.js:1837 -#: js/temperament.js:1986 -#: js/temperament.js:1988 -#: js/musickeyboard.js:522 -#: js/musickeyboard.js:682 -#: js/musickeyboard.js:684 -#: js/musickeyboard.js:756 -#: js/musickeyboard.js:758 -#: js/rhythmruler.js:298 -#: js/rhythmruler.js:300 -#: js/rhythmruler.js:314 -#: js/rhythmruler.js:316 -#: js/sampler.js:96 -#: js/sampler.js:98 -#: js/sampler.js:229 -#: js/sampler.js:235 -#: js/sampler.js:237 -#: js/tempo.js:84 -#: js/tempo.js:86 -#: js/timbre.js:432 -#: js/timbre.js:434 -#: js/timbre.js:465 -#: js/timbre.js:467 -#: js/timbre.js:746 -#: js/meterwidget.js:80 -#: js/arpeggio.js:90 -#: js/arpeggio.js:547 -#: js/arpeggio.js:549 -#: js/arpeggio.js:644 -#: js/arpeggio.js:646 -msgid "Play" +#: js/turtledefs.js:535 +msgid "To extract a block, just right-click on it, then you will be able to see the extract option" msgstr "" -#: js/toolbar.js:48 -#: js/toolbar.js:109 -#: js/toolbar.js:173 -#: js/toolbar.js:229 -#: js/turtledefs.js:451 -#: js/turtledefs.js:488 -#: js/activity.js:2297 -#: js/modewidget.js:99 -#: js/modewidget.js:101 -#: js/phrasemaker.js:323 -#: js/phrasemaker.js:325 -#: js/pitchdrummatrix.js:561 -#: js/pitchdrummatrix.js:563 -#: js/temperament.js:1820 -#: js/temperament.js:1822 -#: js/meterwidget.js:101 -#: js/meterwidget.js:103 -#: js/arpeggio.js:534 -#: js/arpeggio.js:536 -msgid "Stop" -msgstr "停止" +#: js/turtledefs.js:542 +#: js/turtledefs.js:552 +#: js/turtledefs.js:573 +msgid "Save your project to a file." +msgstr "" -#: js/toolbar.js:49 -#: js/toolbar.js:110 -#: js/toolbar.js:174 -#: js/toolbar.js:230 -#: js/turtledefs.js:498 -msgid "Record" +#: js/turtledefs.js:549 +#: js/turtledefs.js:570 +msgid "save" msgstr "" -#: js/toolbar.js:50 -#: js/toolbar.js:51 -msgid "Full screen" +#: js/turtledefs.js:556 +#: js/turtledefs.js:577 +msgid "Save graphics from your project to as SVG." msgstr "" -#: js/toolbar.js:52 -#: js/toolbar.js:112 -#: js/toolbar.js:177 -#: js/toolbar.js:232 -#: js/turtledefs.js:504 -msgid "Toggle Fullscreen" +#: js/turtledefs.js:560 +#: js/turtledefs.js:581 +msgid "Save graphics from your project as PNG." msgstr "" -#: js/toolbar.js:53 -#: js/toolbar.js:113 -#: js/toolbar.js:178 -#: js/toolbar.js:233 -#: js/turtledefs.js:510 -#: js/StringHelper.js:33 -msgid "New project" +#: js/turtledefs.js:564 +#: js/turtledefs.js:597 +msgid "Save block artwork as an SVG file." msgstr "" -#: js/toolbar.js:54 -#: js/toolbar.js:114 -#: js/toolbar.js:179 -#: js/toolbar.js:234 -#: js/turtledefs.js:516 -msgid "Load project from file" +#: js/turtledefs.js:585 +msgid "Save audio from your project as WAV." msgstr "" -#: js/toolbar.js:55 -#: js/toolbar.js:115 -#: js/toolbar.js:116 -#: js/toolbar.js:180 -#: js/toolbar.js:235 -#: js/turtledefs.js:541 -#: js/turtledefs.js:550 -#: js/turtledefs.js:571 -msgid "Save project" +#: js/turtledefs.js:589 +msgid "Save your project to as an ABC file." msgstr "" -#: js/toolbar.js:56 -#: js/toolbar.js:75 -#: js/toolbar.js:77 -#: js/toolbar.js:135 -#: js/toolbar.js:144 -#: js/toolbar.js:146 -#: js/toolbar.js:181 -#: js/toolbar.js:199 -#: js/toolbar.js:201 -#: js/toolbar.js:236 -#: js/toolbar.js:254 -#: js/toolbar.js:256 -msgid "Save project as HTML" +#: js/turtledefs.js:593 +msgid "Save your project to as a Lilypond file." +msgstr "" + +#: js/turtledefs.js:604 +msgid "Load samples from server" +msgstr "" + +#: js/turtledefs.js:605 +msgid "This button opens a viewer for loading example projects." +msgstr "" + +#: js/turtledefs.js:611 +msgid "Palette buttons" +msgstr "" + +#: js/turtledefs.js:612 +msgid "This toolbar contains the palette buttons including Rhythm Pitch Tone Action and more." +msgstr "" + +#: js/turtledefs.js:614 +msgid "Click to show the palettes of blocks and drag blocks from the palettes onto the canvas to use them." +msgstr "" + +#: js/turtledefs.js:620 +msgid "Cartesian/Polar" msgstr "" -#: js/toolbar.js:57 -#: js/toolbar.js:117 -#: js/toolbar.js:182 -#: js/toolbar.js:237 -msgid "Find and share projects" +#: js/turtledefs.js:621 +msgid "Show or hide a coordinate grid." msgstr "" -#: js/toolbar.js:58 -#: js/toolbar.js:118 -#: js/toolbar.js:183 -#: js/toolbar.js:238 -msgid "Offline. Sharing is unavailable" +#: js/turtledefs.js:626 +#: js/turtles.js:902 +msgid "Clean" +msgstr "清除畫面" + +#: js/turtledefs.js:627 +msgid "Clear the screen and return the mice to their initial positions." msgstr "" -#: js/toolbar.js:59 -#: js/toolbar.js:119 -#: js/toolbar.js:184 -#: js/toolbar.js:239 -msgid "Auxiliary menu" +#: js/turtledefs.js:632 +#: js/turtles.js:955 +msgid "Collapse" msgstr "" -#: js/toolbar.js:61 -#: js/toolbar.js:121 -#: js/toolbar.js:186 -#: js/toolbar.js:241 -msgid "Run slowly" +#: js/turtledefs.js:633 +msgid "Collapse the graphics window." msgstr "" -#: js/toolbar.js:62 -#: js/toolbar.js:122 -#: js/toolbar.js:187 -#: js/toolbar.js:242 -#: js/turtledefs.js:682 -msgid "Run step by step" +#: js/turtledefs.js:638 +#: js/activity.js:5684 +msgid "Home" msgstr "" -#: js/toolbar.js:63 -#: js/toolbar.js:123 -#: js/toolbar.js:188 -#: js/toolbar.js:243 -#: js/turtledefs.js:689 -msgid "Display statistics" +#: js/turtledefs.js:639 +msgid "Return all blocks to the center of the screen." msgstr "" -#: js/toolbar.js:64 -#: js/toolbar.js:124 -#: js/toolbar.js:189 -#: js/toolbar.js:244 -msgid "Load plugin" +#: js/turtledefs.js:644 +msgid "Show/hide blocks" +msgstr "顯示/隱藏區塊" + +#: js/turtledefs.js:645 +msgid "Hide or show the blocks and the palettes." msgstr "" -#: js/toolbar.js:65 -#: js/toolbar.js:125 -#: js/toolbar.js:190 -#: js/toolbar.js:245 -#: js/turtledefs.js:696 -msgid "Delete plugin" +#: js/turtledefs.js:650 +msgid "Expand/collapse collapsable blocks" msgstr "" -#: js/toolbar.js:66 -#: js/toolbar.js:126 -#: js/toolbar.js:191 -#: js/toolbar.js:246 -msgid "Enable horizontal scrolling" +#: js/turtledefs.js:651 +msgid "Expand or collapse start and action stacks." msgstr "" -#: js/toolbar.js:67 -#: js/toolbar.js:127 -#: js/toolbar.js:192 -#: js/toolbar.js:247 -msgid "Disable horizontal scrolling" +#: js/turtledefs.js:658 +#: js/activity.js:5704 +msgid "Decrease block size" msgstr "" -#: js/toolbar.js:68 -#: js/toolbar.js:128 -#: js/toolbar.js:193 -#: js/toolbar.js:248 -#: js/LocalCard.js:54 -#: js/StringHelper.js:71 -msgid "Merge with current project" +#: js/turtledefs.js:659 +msgid "Decrease the size of the blocks." msgstr "" -#: js/toolbar.js:69 -#: js/toolbar.js:129 -msgid "Set Pitch Preview" +#: js/turtledefs.js:664 +#: js/activity.js:5710 +msgid "Increase block size" msgstr "" -#: js/toolbar.js:70 -#: js/toolbar.js:130 -#: js/toolbar.js:194 -#: js/toolbar.js:249 -msgid "Toggle JavaScript Editor" +#: js/turtledefs.js:665 +msgid "Increase the size of the blocks." msgstr "" -#: js/toolbar.js:71 -#: js/toolbar.js:131 -#: js/toolbar.js:195 -#: js/toolbar.js:250 -#: js/turtledefs.js:724 -msgid "Restore" +#: js/turtledefs.js:670 +msgid "Expand/collapse option toolbar" msgstr "" -#: js/toolbar.js:72 -#: js/toolbar.js:132 -#: js/toolbar.js:196 -#: js/toolbar.js:251 -msgid "Switch to beginner mode" +#: js/turtledefs.js:671 +msgid "Click this button to expand or collapse the auxillary toolbar." msgstr "" -#: js/toolbar.js:73 -#: js/toolbar.js:133 -#: js/toolbar.js:197 -#: js/toolbar.js:252 -msgid "Switch to advanced mode" +#: js/turtledefs.js:676 +msgid "Run slow" msgstr "" -#: js/toolbar.js:74 -#: js/toolbar.js:134 -#: js/toolbar.js:143 -#: js/toolbar.js:198 -#: js/toolbar.js:253 -#: js/turtledefs.js:738 -msgid "Select language" +#: js/turtledefs.js:677 +msgid "Click to run the project in slow mode." msgstr "" -#: js/toolbar.js:76 -#: js/toolbar.js:79 -#: js/toolbar.js:137 -#: js/turtledefs.js:579 -msgid "Save mouse artwork as PNG" +#: js/turtledefs.js:683 +msgid "Click to run the project step by step." msgstr "" -#: js/toolbar.js:78 -#: js/toolbar.js:136 -#: js/turtledefs.js:575 -msgid "Save mouse artwork as SVG" +#: js/turtledefs.js:690 +msgid "Display statistics about your Music project." msgstr "" -#: js/toolbar.js:80 -#: js/toolbar.js:138 -#: js/turtledefs.js:583 -msgid "Save music as WAV" +#: js/turtledefs.js:697 +msgid "Delete a selected plugin." msgstr "" -#: js/toolbar.js:81 -#: js/toolbar.js:139 -#: js/turtledefs.js:587 -msgid "Save sheet music as ABC" +#: js/turtledefs.js:704 +msgid "Enable scrolling" msgstr "" -#: js/toolbar.js:82 -#: js/toolbar.js:140 -#: js/turtledefs.js:591 -msgid "Save sheet music as Lilypond" +#: js/turtledefs.js:705 +msgid "You can scroll the blocks on the canvas." msgstr "" -#: js/toolbar.js:83 -msgid "Save sheet music as MusicXML" +#: js/turtledefs.js:714 +msgid "Wrap Turtle" msgstr "" -#: js/toolbar.js:84 -#: js/toolbar.js:141 -#: js/toolbar.js:149 -#: js/toolbar.js:204 -#: js/toolbar.js:259 -#: js/turtledefs.js:562 -#: js/turtledefs.js:595 -msgid "Save block artwork as SVG" +#: js/turtledefs.js:715 +msgid "Turn Turtle wrapping On or Off." msgstr "" -#: js/toolbar.js:85 -#: js/toolbar.js:142 -#: js/toolbar.js:150 -#: js/toolbar.js:205 -#: js/toolbar.js:260 -msgid "Confirm" +#: js/turtledefs.js:725 +msgid "Restore blocks from the trash." msgstr "" -#: js/toolbar.js:86 -#: js/toolbar.js:151 -#: js/toolbar.js:206 -#: js/toolbar.js:261 -msgid "English (United States)" +#: js/turtledefs.js:732 +msgid "Switch mode" msgstr "" -#: js/toolbar.js:87 -#: js/toolbar.js:152 -#: js/toolbar.js:207 -#: js/toolbar.js:262 -msgid "English (United Kingdom)" +#: js/turtledefs.js:733 +msgid "Switch between beginner and advance modes." msgstr "" -#: js/toolbar.js:88 -#: js/toolbar.js:153 -#: js/toolbar.js:208 -#: js/toolbar.js:263 -msgid "日本語" +#: js/turtledefs.js:739 +msgid "Select your language preference." msgstr "" -#: js/toolbar.js:89 -msgid "한국어" +#: js/turtledefs.js:745 +msgid "Keyboard shortcuts" msgstr "" -#: js/toolbar.js:90 -#: js/toolbar.js:155 -#: js/toolbar.js:210 -#: js/toolbar.js:265 -msgid "español" +#: js/turtledefs.js:746 +msgid "You can type d to create a do block and r to create a re block etc." msgstr "" -#: js/toolbar.js:91 -#: js/toolbar.js:156 -#: js/toolbar.js:211 -#: js/toolbar.js:266 -msgid "português" +#: js/turtledefs.js:753 +msgid "Show these messages." msgstr "" -#: js/toolbar.js:92 -#: js/toolbar.js:157 -#: js/toolbar.js:212 -#: js/toolbar.js:267 -msgid "にほんご" +#: js/turtledefs.js:759 +#: js/turtledefs.js:790 +#: js/widgets/help.js:335 +msgid "Guide" msgstr "" -#: js/toolbar.js:93 -#: js/toolbar.js:158 -#: js/toolbar.js:213 -#: js/toolbar.js:268 -msgid "中文" +#: js/turtledefs.js:760 +msgid "A detailed guide to Turtle Blocks is available." msgstr "" -#: js/toolbar.js:94 -#: js/toolbar.js:159 -#: js/toolbar.js:214 -#: js/toolbar.js:269 -msgid "ภาษาไทย" +#: js/turtledefs.js:764 +msgid "Turtle Blocks Guide" msgstr "" -#: js/toolbar.js:95 -#: js/toolbar.js:160 -#: js/toolbar.js:215 -#: js/toolbar.js:270 -msgid "aymara" +#: js/turtledefs.js:767 +#: js/turtledefs.js:798 +#: js/widgets/help.js:336 +msgid "About" +msgstr "" + +#: js/turtledefs.js:768 +msgid "Turtle Blocks is an open source collection of tools for exploring musical concepts." msgstr "" -#: js/toolbar.js:96 -#: js/toolbar.js:161 -#: js/toolbar.js:216 -#: js/toolbar.js:271 -msgid "quechua" +#: js/turtledefs.js:770 +msgid "A full list of contributors can be found in the Turtle Blocks GitHub repository." msgstr "" -#: js/toolbar.js:97 -#: js/toolbar.js:162 -#: js/toolbar.js:217 -#: js/toolbar.js:272 -msgid "guarani" +#: js/turtledefs.js:772 +msgid "Turtle Blocks is licensed under the AGPL." msgstr "" -#: js/toolbar.js:98 -#: js/toolbar.js:163 -#: js/toolbar.js:218 -#: js/toolbar.js:273 -msgid "हिंदी" +#: js/turtledefs.js:780 +msgid "Turtle Blocks GitHub repository" msgstr "" -#: js/toolbar.js:99 -#: js/toolbar.js:165 -#: js/toolbar.js:219 -#: js/toolbar.js:275 -msgid "igbo" +#: js/turtledefs.js:783 +#: js/turtledefs.js:814 +#: js/widgets/help.js:337 +#: js/widgets/help.js:359 +msgid "Congratulations." msgstr "" -#: js/toolbar.js:100 -#: js/toolbar.js:166 -#: js/toolbar.js:220 -#: js/toolbar.js:276 -msgid "عربى" +#: js/turtledefs.js:784 +msgid "You have finished the tour. Please enjoy Turtle Blocks!" msgstr "" -#: js/toolbar.js:101 -#: js/toolbar.js:164 -#: js/toolbar.js:221 -#: js/toolbar.js:274 -msgid "తెలుగు" +#: js/turtledefs.js:791 +msgid "A detailed guide to Music Blocks is available." msgstr "" -#: js/toolbar.js:102 -#: js/toolbar.js:167 -#: js/toolbar.js:222 -#: js/toolbar.js:277 -msgid "עִברִית" +#: js/turtledefs.js:799 +msgid "Music Blocks is an open source collection of tools for exploring musical concepts." msgstr "" -#: js/toolbar.js:111 -#: js/toolbar.js:175 -#: js/toolbar.js:176 -#: js/toolbar.js:231 -msgid "Full Screen" +#: js/turtledefs.js:801 +msgid "A full list of contributors can be found in the Music Blocks GitHub repository." msgstr "" -#: js/toolbar.js:145 -#: js/toolbar.js:148 -#: js/toolbar.js:200 -#: js/toolbar.js:203 -#: js/toolbar.js:255 -#: js/toolbar.js:258 -#: js/turtledefs.js:558 -msgid "Save turtle artwork as PNG" +#: js/turtledefs.js:803 +msgid "Music Blocks is licensed under the AGPL." msgstr "" -#: js/toolbar.js:147 -#: js/toolbar.js:202 -#: js/toolbar.js:257 -#: js/turtledefs.js:554 -msgid "Save turtle artwork as SVG" +#: js/turtledefs.js:811 +msgid "Music Blocks GitHub repository" msgstr "" -#: js/toolbar.js:154 -#: js/toolbar.js:209 -#: js/toolbar.js:264 -msgid "한국인" +#: js/turtledefs.js:815 +msgid "You have finished the tour. Please enjoy Music Blocks!" msgstr "" -#: js/toolbar.js:171 -#: js/toolbar.js:227 -msgid "About Turtle Blocks" +#: js/turtles.js:882 +msgid "Grid" msgstr "" -#: js/toolbar.js:429 -#: js/toolbar.js:440 -msgid "Turtle Wrap Off" +#: js/turtles.js:1024 +msgid "Expand" msgstr "" -#: js/toolbar.js:442 -msgid "Turtle Wrap On" +#: js/block-verbose.js:1616 +#: js/block-verbose.js:1735 +#: js/block.js:1580 +#: js/block.js:1699 +#: js/palette.js:605 +#: js/blocks/IntervalsBlocks.js:63 +#: js/blocks/WidgetBlocks.js:259 +msgid "temperament" msgstr "" -#: js/block.js:1470 +#: js/block-verbose.js:1630 +#: js/block.js:1594 msgid "matrix" msgstr "" -#: js/block.js:1477 -#: js/WidgetBlocks.js:1226 +#: js/block-verbose.js:1637 +#: js/block.js:1601 +#: js/blocks/WidgetBlocks.js:1509 #: plugins/rodi.rtp:324 msgid "status" msgstr "" -#: js/block.js:1484 +#: js/block-verbose.js:1644 +#: js/block.js:1608 msgid "drum mapper" msgstr "" -#: js/block.js:1491 +#: js/block-verbose.js:1651 +#: js/block.js:1615 msgid "ruler" msgstr "尺" -#: js/block.js:1498 -#: js/WidgetBlocks.js:327 +#: js/block-verbose.js:1658 +#: js/block.js:1622 +#: js/blocks/WidgetBlocks.js:397 #.TRANS: timbre is the character or quality of a musical sound msgid "timbre" msgstr "音色" -#: js/block.js:1505 +#: js/block-verbose.js:1665 +#: js/block.js:1629 msgid "stair" msgstr "" -#: js/block.js:1512 -#: js/WidgetBlocks.js:577 +#: js/block-verbose.js:1672 +#: js/block.js:1636 +#: js/blocks/WidgetBlocks.js:707 #.TRANS: the speed at music is should be played. msgid "tempo" msgstr "速度" -#: js/block.js:1519 -#: js/block.js:1582 -#: js/IntervalsBlocks.js:1268 +#: js/block-verbose.js:1679 +#: js/block-verbose.js:1742 +#: js/block.js:1643 +#: js/block.js:1706 +#: js/blocks/IntervalsBlocks.js:1464 #.TRANS: mode, e.g., Major in C Major msgid "mode" msgstr "调式" -#: js/block.js:1526 +#: js/block-verbose.js:1686 +#: js/block.js:1650 msgid "slider" msgstr "" -#: js/block.js:1533 -#: js/SensorsBlocks.js:1001 +#: js/block-verbose.js:1693 +#: js/block.js:1657 +#: js/blocks/SensorsBlocks.js:1001 msgid "keyboard" msgstr "查询键盘" -#: js/block.js:1547 -#: js/WidgetBlocks.js:957 -#: js/WidgetBlocks.js:988 +#: js/block-verbose.js:1707 +#: js/block.js:1671 +#: js/blocks/WidgetBlocks.js:1190 +#: js/blocks/WidgetBlocks.js:1228 #.TRANS: widget for subdividing a measure into distinct rhythmic elements msgid "rhythm maker" msgstr "" -#: js/block.js:1554 -#: js/block.js:2182 -#: js/block.js:2236 -#: js/RhythmBlockPaletteBlocks.js:70 -#: js/RhythmBlockPaletteBlocks.js:251 -#: js/RhythmBlockPaletteBlocks.js:484 -#: js/RhythmBlockPaletteBlocks.js:553 -#: js/RhythmBlockPaletteBlocks.js:604 -#: js/RhythmBlockPaletteBlocks.js:874 -#: js/RhythmBlocks.js:33 -#: js/RhythmBlocks.js:356 -#: js/RhythmBlocks.js:766 -#: js/RhythmBlocks.js:806 -#: js/OrnamentBlocks.js:220 -#: js/OrnamentBlocks.js:312 -#: js/MeterBlocks.js:1367 -#: js/DictActions.js:85 -#: js/phrasemaker.js:731 -#: js/phrasemaker.js:2393 -#: js/phrasemaker.js:2436 -#: js/phrasemaker.js:2534 +#: js/block-verbose.js:1714 +#: js/block-verbose.js:2457 +#: js/block-verbose.js:2514 +#: js/block.js:1678 +#: js/block.js:2385 +#: js/block.js:2442 +#: js/blocks/MeterBlocks.js:1367 +#: js/blocks/OrnamentBlocks.js:220 +#: js/blocks/OrnamentBlocks.js:312 +#: js/blocks/RhythmBlocks.js:33 +#: js/blocks/RhythmBlocks.js:356 +#: js/blocks/RhythmBlocks.js:766 +#: js/blocks/RhythmBlocks.js:806 +#: js/blocks/RhythmBlockPaletteBlocks.js:70 +#: js/blocks/RhythmBlockPaletteBlocks.js:252 +#: js/blocks/RhythmBlockPaletteBlocks.js:485 +#: js/blocks/RhythmBlockPaletteBlocks.js:554 +#: js/blocks/RhythmBlockPaletteBlocks.js:605 +#: js/blocks/RhythmBlockPaletteBlocks.js:875 +#: js/turtleactions/DictActions.js:85 +#: js/widgets/phrasemaker.js:942 +#: js/widgets/phrasemaker.js:2656 +#: js/widgets/phrasemaker.js:2699 +#: js/widgets/phrasemaker.js:2810 #.TRANS: the value (e.g., 1/4 note) of the note being played. msgid "note value" msgstr "" -#: js/block.js:1561 -#: js/block.js:2110 -#: js/block.js:2133 -#: js/IntervalsBlocks.js:875 -#: js/OrnamentBlocks.js:312 +#: js/block-verbose.js:1721 +#: js/block-verbose.js:2382 +#: js/block-verbose.js:2405 +#: js/block.js:1685 +#: js/block.js:2310 +#: js/block.js:2333 +#: js/blocks/IntervalsBlocks.js:1071 +#: js/blocks/OrnamentBlocks.js:312 #.TRANS: calculate a relative step between notes based on semi-tones msgid "scalar interval" msgstr "" -#: js/block.js:1568 -#: js/RhythmBlocks.js:148 +#: js/block-verbose.js:1728 +#: js/block.js:1692 +#: js/blocks/RhythmBlocks.js:148 msgid "milliseconds" msgstr "" -#: js/block.js:2180 -#: js/block.js:2184 -#: js/block.js:2234 -#: js/block.js:2345 -#: js/ProgramBlocks.js:1273 -#: js/RhythmBlocks.js:712 -#: js/rhythmruler.js:834 -#: js/rhythmruler.js:961 +#: js/block-verbose.js:2455 +#: js/block-verbose.js:2459 +#: js/block-verbose.js:2512 +#: js/block-verbose.js:2628 +#: js/block.js:2383 +#: js/block.js:2387 +#: js/block.js:2440 +#: js/block.js:2556 +#: js/blocks/RhythmBlocks.js:712 +#: js/blocks/ProgramBlocks.js:1273 +#: js/widgets/rhythmruler.js:1183 +#: js/widgets/rhythmruler.js:1329 msgid "silence" msgstr "" -#: js/block.js:2265 -#: js/block.js:3134 -#: js/block.js:3151 -#: js/activity.js:2336 -#: js/activity.js:2387 -#: js/musicutils.js:2932 -#: js/musicutils.js:4287 +#: js/block-verbose.js:2548 +#: js/block-verbose.js:3492 +#: js/block-verbose.js:3509 +#: js/activity.js:2718 +#: js/activity.js:2769 +#: js/block.js:2476 +#: js/block.js:3416 +#: js/block.js:3433 +#: js/utils/musicutils.js:3780 +#: js/utils/musicutils.js:5273 +#.TRANS: the note names must be separated by single spaces #.TRANS: the note names must be separated by single spaces #.TRANS: the note names must be separated by single spaces msgid "ti la sol fa mi re do" msgstr "" -#: js/block.js:2333 +#: js/block-verbose.js:2616 +#: js/block.js:2544 +#.TRANS: scalar step #.TRANS: scalar step msgid "down" msgstr "" -#: js/block.js:2334 +#: js/block-verbose.js:2617 +#: js/block.js:2545 msgid "up" msgstr "" -#: js/block.js:3477 -#: js/block.js:3490 -#: js/ExtrasBlocks.js:612 +#: js/block-verbose.js:3026 +#: js/block.js:2950 +msgid "Silence block cannot be removed." +msgstr "" + +#: js/block-verbose.js:3824 +#: js/block.js:3748 +#: js/blocks.js:2607 +#: js/blocks.js:3218 +#: js/palette.js:618 +#: js/blocks/BooleanBlocks.js:77 +#: js/blocks/BooleanBlocks.js:167 +#: js/blocks/BooleanBlocks.js:251 +#: js/blocks/BooleanBlocks.js:335 +#: js/blocks/BooleanBlocks.js:433 +#: js/blocks/BooleanBlocks.js:539 +#: js/blocks/BooleanBlocks.js:640 +#: js/blocks/BooleanBlocks.js:741 +#: js/blocks/BooleanBlocks.js:847 +#: js/blocks/BooleanBlocks.js:948 +#: js/blocks/BooleanBlocks.js:1033 +#: js/blocks/SensorsBlocks.js:910 +msgid "true" +msgstr "" + +#: js/block-verbose.js:3824 +#: js/block.js:3748 +#: js/blocks.js:2609 +#: js/blocks.js:3220 +#: js/blocks/BooleanBlocks.js:79 +#: js/blocks/BooleanBlocks.js:169 +#: js/blocks/BooleanBlocks.js:253 +#: js/blocks/BooleanBlocks.js:337 +#: js/blocks/BooleanBlocks.js:435 +#: js/blocks/BooleanBlocks.js:541 +#: js/blocks/BooleanBlocks.js:642 +#: js/blocks/BooleanBlocks.js:743 +#: js/blocks/BooleanBlocks.js:849 +#: js/blocks/BooleanBlocks.js:950 +#: js/blocks/SensorsBlocks.js:912 +msgid "false" +msgstr "" + +#: js/block-verbose.js:3835 +#: js/block-verbose.js:3848 +#: js/block.js:3759 +#: js/block.js:3772 +#: js/blocks/ExtrasBlocks.js:615 msgid "Cartesian" msgstr "笛卡爾" -#: js/block.js:3478 -#: js/block.js:3491 -#: js/ExtrasBlocks.js:616 +#: js/block-verbose.js:3836 +#: js/block-verbose.js:3849 +#: js/block.js:3760 +#: js/block.js:3773 +#: js/blocks/ExtrasBlocks.js:619 msgid "polar" msgstr "" -#: js/block.js:3479 -#: js/block.js:3492 -#: js/ExtrasBlocks.js:620 +#: js/block-verbose.js:3837 +#: js/block-verbose.js:3850 +#: js/block.js:3761 +#: js/block.js:3774 +#: js/blocks/ExtrasBlocks.js:623 msgid "Cartesian+polar" msgstr "" -#: js/block.js:3480 -#: js/block.js:3499 -#: js/ExtrasBlocks.js:649 +#: js/block-verbose.js:3838 +#: js/block-verbose.js:3857 +#: js/block.js:3762 +#: js/block.js:3781 +#: js/blocks/ExtrasBlocks.js:652 msgid "none" msgstr "" -#: js/block.js:3493 -#: js/ExtrasBlocks.js:625 +#: js/block-verbose.js:3851 +#: js/block.js:3775 +#: js/blocks/ExtrasBlocks.js:628 msgid "treble" msgstr "" -#: js/block.js:3494 -#: js/ExtrasBlocks.js:629 +#: js/block-verbose.js:3852 +#: js/block.js:3776 +#: js/blocks/ExtrasBlocks.js:632 msgid "grand staff" msgstr "" -#: js/block.js:3495 -#: js/ExtrasBlocks.js:633 +#: js/block-verbose.js:3853 +#: js/block.js:3777 +#: js/blocks/ExtrasBlocks.js:636 msgid "mezzo-soprano" msgstr "" -#: js/block.js:3496 -#: js/ExtrasBlocks.js:637 +#: js/block-verbose.js:3854 +#: js/block.js:3778 +#: js/blocks/ExtrasBlocks.js:640 msgid "alto" msgstr "" -#: js/block.js:3497 -#: js/ExtrasBlocks.js:641 +#: js/block-verbose.js:3855 +#: js/block.js:3779 +#: js/blocks/ExtrasBlocks.js:644 msgid "tenor" msgstr "" -#: js/block.js:3498 -#: js/ExtrasBlocks.js:645 -#: js/musicutils.js:736 -#: js/synthutils.js:64 +#: js/block-verbose.js:3856 +#: js/block.js:3780 +#: js/utils/musicutils.js:1115 +#: js/utils/synthutils.js:80 +#: js/blocks/ExtrasBlocks.js:648 #.TRANS: musical instrument msgid "bass" msgstr "" -#: js/block.js:4075 +#: js/block-verbose.js:3901 +#: js/block.js:3825 +#: js/blocks.js:2600 +#: js/blocks.js:3211 +msgid "on2" +msgstr "" + +#: js/block-verbose.js:3903 +#: js/block.js:3827 +#: js/blocks.js:2602 +#: js/blocks.js:3213 +msgid "off" +msgstr "" + +#: js/block-verbose.js:4470 +#: js/block.js:4394 msgid "Not a number" msgstr "" -#: js/block.js:4082 +#: js/block-verbose.js:4477 +#: js/block.js:4401 msgid "Octave value must be between 1 and 10." msgstr "" -#: js/block.js:4090 +#: js/block-verbose.js:4485 +#: js/block.js:4409 msgid "Numbers can have at most 10 digits." msgstr "" -#: js/notation.js:353 -msgid "Lilypond cannot process pickup of " +#: js/activity.js:390 +#: js/activity.js:395 +msgid "Search for blocks" msgstr "" -#: js/turtledefs.js:40 -#.TRANS: put the URL to the guide here, e.g., https://github.com/sugarlabs/turtleblocksjs/tree/master/guide/README.md -msgid "guide url" +#: js/activity.js:1413 +msgid "Refresh your browser to change to advanced mode." msgstr "" -#: js/turtledefs.js:85 -#: js/turtledefs.js:437 -msgid "Turtle Blocks is a Logo-inspired turtle that draws colorful pictures with snap-together visual-programming blocks." +#: js/activity.js:1418 +msgid "Refresh your browser to change to beginner mode." msgstr "" -#: js/turtledefs.js:118 -#: js/turtledefs.js:220 -msgid "search" +#: js/activity.js:1477 +msgid "Catching mice" msgstr "" -#: js/turtledefs.js:120 -#: js/turtledefs.js:222 -#: js/WidgetBlocks.js:437 -#: js/MeterBlocks.js:1343 -#.TRANS: musical meter (time signature), e.g., 4:4 -msgid "meter" +#: js/activity.js:1478 +msgid "Cleaning the instruments" msgstr "" -#: js/turtledefs.js:122 -#: js/turtledefs.js:224 -msgid "intervals" +#: js/activity.js:1479 +msgid "Testing key pieces" msgstr "" -#: js/turtledefs.js:124 -#: js/turtledefs.js:226 -msgid "ornament" +#: js/activity.js:1480 +msgid "Sight-reading" +msgstr "" + +#: js/activity.js:1481 +msgid "Combining math and music" +msgstr "" + +#: js/activity.js:1482 +msgid "Generating more blocks" +msgstr "" + +#: js/activity.js:1483 +msgid "Do Re Mi Fa Sol La Ti Do" +msgstr "" + +#: js/activity.js:1484 +msgid "Tuning string instruments" +msgstr "" + +#: js/activity.js:1485 +msgid "Pressing random keys" +msgstr "" + +#: js/activity.js:1663 +msgid "plugins will be removed upon restart." +msgstr "" + +#: js/activity.js:1672 +msgid "show Cartesian" +msgstr "" + +#: js/activity.js:2211 +#: js/palette.js:589 +#: js/blocks/RhythmBlocks.js:923 +#: js/blocks/PitchBlocks.js:442 +#: js/blocks/PitchBlocks.js:1786 +#.TRANS: a numeric mapping of the notes in an octave based on the musical mode +msgid "scale degree" +msgstr "" + +#: js/activity.js:2214 +#: js/palette.js:598 +msgid "voice name" +msgstr "" + +#: js/activity.js:2217 +#: js/palette.js:595 +msgid "invert mode" +msgstr "" + +#: js/activity.js:2220 +msgid "output tools" +msgstr "" + +#: js/activity.js:2223 +msgid "custom note" +msgstr "" + +#: js/activity.js:2226 +msgid "accidental name" +msgstr "" + +#: js/activity.js:2229 +#: js/blocks/PitchBlocks.js:855 +msgid "east indian solfege" +msgstr "" + +#: js/activity.js:2232 +#: js/blocks/PitchBlocks.js:869 +msgid "note name" +msgstr "" + +#: js/activity.js:2235 +#: js/blocks/IntervalsBlocks.js:94 +msgid "temperament name" +msgstr "" + +#: js/activity.js:2238 +#: js/palette.js:592 +msgid "mode name" +msgstr "" + +#: js/activity.js:2241 +msgid "chord name" +msgstr "" + +#: js/activity.js:2244 +#: js/palette.js:615 +msgid "interval name" +msgstr "" + +#: js/activity.js:2247 +msgid "filter type" +msgstr "" + +#: js/activity.js:2250 +msgid "oscillator type" +msgstr "" + +#: js/activity.js:2253 +#: js/blocks.js:2479 +#: js/blocks.js:2487 +msgid "audio file" +msgstr "" + +#: js/activity.js:2256 +#: js/blocks/DrumBlocks.js:32 +msgid "noise name" +msgstr "" + +#: js/activity.js:2259 +#: js/blocks/DrumBlocks.js:75 +msgid "drum name" +msgstr "" + +#: js/activity.js:2262 +#: js/blocks/DrumBlocks.js:119 +msgid "effects name" +msgstr "" + +#: js/activity.js:2265 +msgid "wrap mode" +msgstr "" + +#: js/activity.js:2268 +msgid "load file" +msgstr "" + +#: js/activity.js:2435 +#: js/activity.js:5851 +msgid "This block is deprecated." +msgstr "" + +#: js/activity.js:2437 +#: js/activity.js:5853 +msgid "Block cannot be found." +msgstr "" + +#: js/activity.js:2645 +msgid "Saving block artwork" +msgstr "" + +#: js/activity.js:2656 +msgid "Erase" +msgstr "" + +#: js/activity.js:2683 +#: js/activity.js:2705 +msgid "Paste" +msgstr "貼上" + +#: js/activity.js:2687 +msgid "Save block help" +msgstr "" + +#: js/activity.js:2772 +msgid "Jumping to the bottom of the page." +msgstr "" + +#: js/activity.js:2778 +msgid "Scrolling up." +msgstr "" + +#: js/activity.js:2783 +msgid "Scrolling down." +msgstr "" + +#: js/activity.js:2788 +msgid "Extracting block" msgstr "" -#: js/turtledefs.js:125 -#: js/turtledefs.js:227 -#: js/VolumeBlocks.js:362 -#: js/VolumeBlocks.js:502 -#: js/VolumeBlocks.js:545 -msgid "volume" +#: js/activity.js:2796 +msgid "Moving block up." msgstr "" -#: js/turtledefs.js:129 -#: js/turtledefs.js:231 -msgid "boxes" +#: js/activity.js:2817 +msgid "Moving block down." msgstr "" -#: js/turtledefs.js:130 -#: js/turtledefs.js:232 -msgid "widgets" +#: js/activity.js:2838 +msgid "Moving block left." msgstr "" -#: js/turtledefs.js:131 -#: js/turtledefs.js:233 -#: js/phrasemaker.js:824 -msgid "graphics" +#: js/activity.js:2855 +msgid "Moving block right." msgstr "" -#: js/turtledefs.js:134 -#: js/turtledefs.js:236 -msgid "boolean" +#: js/activity.js:2870 +msgid "Jump to home position." msgstr "" -#: js/turtledefs.js:137 -#: js/turtledefs.js:239 -#: js/HeapBlocks.js:59 -#: js/status.js:147 -msgid "heap" +#: js/activity.js:2897 +msgid "Hide blocks" msgstr "" -#: js/turtledefs.js:138 -#: js/turtledefs.js:240 -#: js/ProgramBlocks.js:495 -#: js/DictBlocks.js:142 -msgid "dictionary" +#: js/activity.js:4500 +msgid "Click the run button to run the project." msgstr "" -#: js/turtledefs.js:139 -#: js/turtledefs.js:241 -msgid "ensemble" +#: js/activity.js:5692 +msgid "Show/hide block" msgstr "" -#: js/turtledefs.js:140 -#: js/turtledefs.js:242 -msgid "extras" +#: js/activity.js:5698 +msgid "Expand/collapse blocks" msgstr "" -#: js/turtledefs.js:142 -#: js/turtledefs.js:244 -#.TRANS: program as in computer program -#.TRANS: program as in computer program -msgid "program" +#: js/activity.js:5976 +msgid "Could not parse JSON input." msgstr "" -#: js/turtledefs.js:143 -#: js/turtledefs.js:245 -msgid "my blocks" -msgstr "" +#: js/activity.js:6475 +#: js/activity.js:6580 +#: js/activity.js:6631 +msgid "Cannot load project from the file. Please check the file type." +msgstr "无法从文件加载项目。请检查文件类型。" -#: js/turtledefs.js:185 -#: js/turtledefs.js:281 -msgid "artwork" +#: js/activity.js:6917 +msgid "Invalid parameters" msgstr "" -#: js/turtledefs.js:185 -#: js/turtledefs.js:281 -msgid "logic" +#: js/blocks.js:1212 +#: js/blocks.js:3444 +#: js/blocks.js:3834 +#: js/blocks.js:3865 +#: js/blocks.js:3914 +#: js/blocks.js:3949 +#: js/blocks.js:6586 +#: js/palette.js:509 +#: js/palette.js:638 +#: js/palette.js:1105 +#: js/blocks/BoxesBlocks.js:282 +#: js/blocks/BoxesBlocks.js:285 +#: js/blocks/BoxesBlocks.js:405 +#: js/blocks/BoxesBlocks.js:594 +msgid "box" +msgstr "盒子" + +#: js/blocks.js:1713 +msgid "Consider breaking this stack into parts." msgstr "" -#: js/turtledefs.js:185 -#: js/turtledefs.js:281 -msgid "music" +#: js/blocks.js:2472 +#: js/palette.js:653 +#: js/blocks/MediaBlocks.js:602 +msgid "open file" +msgstr "打开文件" + +#: js/blocks.js:3247 +#: js/palette.js:574 +#: js/blocks/MediaBlocks.js:892 +#: js/blocks/MediaBlocks.js:963 +msgid "text" +msgstr "文本" + +#: js/blocks.js:3443 +#: js/palette.js:641 +#: js/palette.js:642 +#: js/blocks/BoxesBlocks.js:514 +msgid "store in box" msgstr "" -#: js/turtledefs.js:187 -#: js/turtledefs.js:463 -msgid "Music Blocks is a collection of tools for exploring fundamental musical concepts in a fun way." +#: js/blocks.js:3448 +#: js/blocks.js:3888 +#: js/blocks.js:3923 +#: js/blocks.js:3958 +#: js/blocks.js:5862 +#: js/blocks.js:5883 +#: js/blocks/BoxesBlocks.js:772 +msgid "box1" msgstr "" -#: js/turtledefs.js:436 -msgid "Welcome to Turtle Blocks" +#: js/blocks.js:3450 +#: js/blocks.js:3890 +#: js/blocks.js:3925 +#: js/blocks.js:3960 +#: js/blocks.js:5864 +#: js/blocks.js:5885 +#: js/blocks/BoxesBlocks.js:663 +msgid "box2" msgstr "" -#: js/turtledefs.js:438 -#: js/turtledefs.js:465 -#: js/turtledefs.js:774 -#: js/turtledefs.js:805 -msgid "The current version is" +#: js/blocks.js:4122 +#: js/palette.js:639 +#: js/palette.js:644 +#: js/palette.js:1041 +#: js/blocks/BoxesBlocks.js:591 +msgid "store in" +msgstr "放入" + +#: js/blocks.js:4122 +#: js/blocks/BoxesBlocks.js:595 +#: js/blocks/DictBlocks.js:215 +#: js/blocks/DictBlocks.js:289 +#: js/blocks/EnsembleBlocks.js:391 +#: js/blocks/EnsembleBlocks.js:402 +#: js/blocks/MediaBlocks.js:746 +#: js/blocks/PitchBlocks.js:656 +#: js/blocks/PitchBlocks.js:934 +#: js/blocks/PitchBlocks.js:1866 +#: js/blocks/ProgramBlocks.js:390 +#: js/blocks/ProgramBlocks.js:495 +#: js/blocks/ProgramBlocks.js:658 +#: js/blocks/ToneBlocks.js:1025 +msgid "name" msgstr "" -#: js/turtledefs.js:446 -#: js/turtledefs.js:483 -msgid "Click the run button to run the project in fast mode." +#: js/blocks.js:4122 +#: js/blocks/BoxesBlocks.js:75 +#: js/blocks/BoxesBlocks.js:595 +#: js/blocks/DictBlocks.js:289 +#: js/blocks/DictBlocks.js:430 +#: js/blocks/HeapBlocks.js:544 +#: js/blocks/RhythmBlocks.js:1130 +msgid "value" +msgstr "值" + +#: js/blocks.js:4465 +msgid "Forever loop detected inside a note value block. Unexpected things may happen." msgstr "" -#: js/turtledefs.js:452 -msgid "Stop the turtle." +#: js/blocks.js:4988 +msgid "There is no block selected." msgstr "" -#: js/turtledefs.js:454 -#: js/turtledefs.js:491 -msgid "You can also type Alt-S to stop." +#: js/blocks.js:5091 +#: js/blocks/MediaBlocks.js:888 +msgid "show" +msgstr "顯示" + +#: js/blocks.js:5094 +#: js/blocks/MediaBlocks.js:803 +#.TRANS: Avatar is the image used to determine the appearance of the mouse. +msgid "avatar" msgstr "" -#: js/turtledefs.js:462 -#: js/help.js:333 -msgid "Welcome to Music Blocks" +#: js/blocks.js:5097 +#: js/blocks/ToneBlocks.js:1010 +#: js/widgets/sampler.js:975 +#.TRANS: The sound sample that the user uploads. +msgid "sample" msgstr "" -#: js/turtledefs.js:472 -#: js/help.js:334 -msgid "Meet Mr. Mouse!" +#: js/lilypond.js:606 +msgid "brown rat" msgstr "" -#: js/turtledefs.js:473 -msgid "Mr Mouse is our Music Blocks conductor." +#: js/lilypond.js:607 +msgid "mole" msgstr "" -#: js/turtledefs.js:475 -msgid "Mr Mouse encourages you to explore Music Blocks." +#: js/lilypond.js:608 +msgid "chipmunk" msgstr "" -#: js/turtledefs.js:477 -msgid "Let us start our tour!" +#: js/lilypond.js:609 +msgid "red squirrel" msgstr "" -#: js/turtledefs.js:489 -msgid "Stop the music (and the mice)." +#: js/lilypond.js:610 +msgid "guinea pig" msgstr "" -#: js/turtledefs.js:499 -msgid "Record your project as video." +#: js/lilypond.js:611 +msgid "capybara" msgstr "" -#: js/turtledefs.js:505 -msgid "Toggle Fullscreen mode." +#: js/lilypond.js:612 +msgid "coypu" msgstr "" -#: js/turtledefs.js:511 -msgid "Initialize a new project." +#: js/lilypond.js:613 +msgid "black rat" msgstr "" -#: js/turtledefs.js:517 -msgid "You can also load projects from the file system." +#: js/lilypond.js:614 +msgid "grey squirrel" msgstr "" -#: js/turtledefs.js:522 -#: js/StringHelper.js:46 -msgid "Delete" +#: js/lilypond.js:615 +msgid "flying squirrel" msgstr "" -#: js/turtledefs.js:523 -msgid "To delete a block, just right-click on it, then you will be able to see the delete option" +#: js/lilypond.js:616 +msgid "bat" msgstr "" -#: js/turtledefs.js:528 -#: js/activity.js:2270 -#: js/LocalCard.js:31 -msgid "Copy" +#: js/lilypond.js:749 +#: js/lilypond.js:913 +#: js/lilypond.js:951 +#: js/blocks/ActionBlocks.js:1256 +#: js/blocks/ExtrasBlocks.js:556 +msgid "start drum" msgstr "" -#: js/turtledefs.js:529 -msgid "To copy a block, just right-click on it, then you will be able to see the copy option" +#: js/logo.js:61 +msgid "Not a valid pitch name" msgstr "" -#: js/turtledefs.js:535 -msgid "To extract a block, just right-click on it, then you will be able to see the extract option" +#: js/logo.js:507 +#: js/blocks/ProgramBlocks.js:258 +#: js/blocks/ProgramBlocks.js:427 +msgid "You must select a file." +msgstr "你必须选择一个文件" + +#: js/logo.js:1696 +msgid "Playback is ready." msgstr "" -#: js/turtledefs.js:542 -#: js/turtledefs.js:552 -#: js/turtledefs.js:573 -msgid "Save your project to a file." +#: js/macros.js:711 +#: js/utils/musicutils.js:1162 +#: js/utils/synthutils.js:202 +#.TRANS: animal sound effect +msgid "duck" msgstr "" -#: js/turtledefs.js:549 -#: js/turtledefs.js:570 -msgid "save" +#: js/notation.js:353 +msgid "Lilypond cannot process pickup of " msgstr "" -#: js/turtledefs.js:556 -#: js/turtledefs.js:577 -msgid "Save graphics from your project to as SVG." +#: js/palette.js:571 +msgid "grid" msgstr "" -#: js/turtledefs.js:560 -#: js/turtledefs.js:581 -msgid "Save graphics from your project as PNG." +#: js/palette.js:580 +msgid "effect" msgstr "" -#: js/turtledefs.js:564 -#: js/turtledefs.js:597 -msgid "Save block artwork as an SVG file." +#: js/palette.js:586 +msgid "sargam" msgstr "" -#: js/turtledefs.js:585 -msgid "Save audio from your project as WAV." +#: js/palette.js:601 +#: js/blocks/PitchBlocks.js:1209 +msgid "custom pitch" msgstr "" -#: js/turtledefs.js:589 -msgid "Save your project to as an ABC file." +#: js/palette.js:609 +msgid "accidental" msgstr "" -#: js/turtledefs.js:593 -msgid "Save your project to as a Lilypond file." +#: js/palette.js:633 +#: js/blocks/PitchBlocks.js:405 +msgid "pitch converter" msgstr "" -#: js/turtledefs.js:604 -msgid "Load samples from server" +#: js/piemenus.js:200 +#: js/utils/musicutils.js:1187 +#: js/utils/musicutils.js:1207 +#: js/widgets/musickeyboard.js:2341 +#: js/widgets/phrasemaker.js:1908 +#: js/widgets/sampler.js:810 +#.TRANS: double sharp is a music term related to pitch +msgid "double sharp" msgstr "" -#: js/turtledefs.js:605 -msgid "This button opens a viewer for loading example projects." +#: js/piemenus.js:201 +#: js/utils/musicutils.js:1185 +#: js/utils/musicutils.js:1208 +#: js/blocks/PitchBlocks.js:1539 +#: js/turtleactions/PitchActions.js:323 +#: js/widgets/musickeyboard.js:2342 +#: js/widgets/phrasemaker.js:1909 +#: js/widgets/sampler.js:811 +#.TRANS: sharp is a music term related to pitch +#.TRANS: sharp is a half-step up in pitch +msgid "sharp" +msgstr "升号" + +#: js/piemenus.js:202 +#: js/utils/musicutils.js:1183 +#: js/utils/musicutils.js:1209 +#: js/widgets/musickeyboard.js:2343 +#: js/widgets/phrasemaker.js:1910 +#: js/widgets/sampler.js:812 +#.TRANS: natural is a music term related to pitch +msgid "natural" msgstr "" -#: js/turtledefs.js:611 -msgid "Palette buttons" +#: js/piemenus.js:203 +#: js/utils/musicutils.js:1181 +#: js/utils/musicutils.js:1210 +#: js/blocks/PitchBlocks.js:1498 +#: js/turtleactions/PitchActions.js:326 +#: js/widgets/musickeyboard.js:2344 +#: js/widgets/phrasemaker.js:1911 +#: js/widgets/sampler.js:813 +#.TRANS: flat is a music term related to pitch +#.TRANS: flat is a half-step down in pitch +msgid "flat" +msgstr "降号" + +#: js/piemenus.js:204 +#: js/utils/musicutils.js:1179 +#: js/utils/musicutils.js:1211 +#: js/widgets/musickeyboard.js:2345 +#: js/widgets/phrasemaker.js:1912 +#: js/widgets/sampler.js:814 +#.TRANS: double flat is a music term related to pitch +msgid "double flat" msgstr "" -#: js/turtledefs.js:612 -msgid "This toolbar contains the palette buttons including Rhythm Pitch Tone Action and more." +#: js/piemenus.js:2864 +#: js/utils/musicutils.js:1006 +#: js/blocks/PitchBlocks.js:1385 +#.TRANS: unison is a music term related to intervals +#.TRANS: unison means the note is the same as the current note +msgid "unison" msgstr "" -#: js/turtledefs.js:614 -msgid "Click to show the palettes of blocks and drag blocks from the palettes onto the canvas to use them." +#: js/piemenus.js:3018 +#: js/piemenus.js:3091 +#: js/utils/musicutils.js:1014 +#: js/utils/musicutils.js:1189 +#: js/utils/musicutils.js:1326 +#.TRANS: major is a music term related to intervals and mode +msgid "major" +msgstr "大调音阶" + +#: js/piemenus.js:3018 +#: js/piemenus.js:3091 +#: js/utils/musicutils.js:1032 +#.TRANS: modal scale for music +msgid "ionian" +msgstr "艾奥尼安调式" + +#: js/piemenus.js:3020 +#: js/piemenus.js:3095 +#: js/utils/musicutils.js:1012 +#: js/utils/musicutils.js:1190 +#: js/utils/musicutils.js:1323 +#.TRANS: minor is a music term related to intervals and mode +msgid "minor" +msgstr "小调音阶" + +#: js/piemenus.js:3020 +#: js/piemenus.js:3095 +#: js/utils/musicutils.js:1042 +#.TRANS: modal scale for music +msgid "aeolian" +msgstr "伊奥利安调式" + +#: js/piemenus.js:3410 +msgid "Duplicate" msgstr "" -#: js/turtledefs.js:620 -msgid "Cartesian/Polar" +#: js/piemenus.js:3412 +msgid "Move to trash" msgstr "" -#: js/turtledefs.js:621 -msgid "Show or hide a coordinate grid." +#: js/piemenus.js:3413 +#: js/widgets/timbre.js:968 +#: planet/js/StringHelper.js:69 +msgid "Close" msgstr "" -#: js/turtledefs.js:627 -msgid "Clear the screen and return the mice to their initial positions." +#: js/piemenus.js:3419 +msgid "Save stack" msgstr "" -#: js/turtledefs.js:633 -msgid "Collapse the graphics window." +#: js/piemenus.js:3449 +msgid "In order to copy a sample, you must reload the widget, import the sample again, and export it." msgstr "" -#: js/turtledefs.js:638 -#: js/activity.js:4256 -#: js/activity.js:4256 -msgid "Home" +#: js/piemenus.js:3812 +msgid "You have chosen key " msgstr "" -#: js/turtledefs.js:639 -msgid "Return all blocks to the center of the screen." +#: js/piemenus.js:3816 +msgid " for your pitch preview." msgstr "" -#: js/turtledefs.js:644 -msgid "Show/hide blocks" -msgstr "顯示/隱藏區塊" - -#: js/turtledefs.js:645 -msgid "Hide or show the blocks and the palettes." +#: js/turtle-singer.js:1363 +#.TRANS: partials are weighted components in a harmonic series +msgid "You must have at least one Partial block inside of a Weighted-partial block" msgstr "" -#: js/turtledefs.js:650 -msgid "Expand/collapse collapsable blocks" +#: js/turtle-singer.js:2077 +msgid "synth cannot play chords." msgstr "" -#: js/turtledefs.js:651 -msgid "Expand or collapse start and action stacks." +#: js/utils/musicutils.js:505 +#: js/utils/musicutils.js:645 +#: js/widgets/pitchdrummatrix.js:228 +#: js/widgets/musickeyboard.js:2885 +msgid "rest" msgstr "" -#: js/turtledefs.js:658 -#: js/activity.js:4265 -msgid "Decrease block size" +#: js/utils/musicutils.js:689 +msgid "Perfect unison" msgstr "" -#: js/turtledefs.js:659 -msgid "Decrease the size of the blocks." +#: js/utils/musicutils.js:689 +msgid "Diminished second" msgstr "" -#: js/turtledefs.js:664 -#: js/activity.js:4267 -msgid "Increase block size" +#: js/utils/musicutils.js:690 +msgid "Minor second" msgstr "" -#: js/turtledefs.js:665 -msgid "Increase the size of the blocks." +#: js/utils/musicutils.js:690 +msgid "Augmented unison" msgstr "" -#: js/turtledefs.js:670 -msgid "Expand/collapse option toolbar" +#: js/utils/musicutils.js:691 +msgid "Major second" msgstr "" -#: js/turtledefs.js:671 -msgid "Click this button to expand or collapse the auxillary toolbar." +#: js/utils/musicutils.js:691 +msgid "Diminished third" msgstr "" -#: js/turtledefs.js:676 -msgid "Run slow" +#: js/utils/musicutils.js:692 +msgid "Minor third" msgstr "" -#: js/turtledefs.js:677 -msgid "Click to run the project in slow mode." +#: js/utils/musicutils.js:692 +msgid "Augmented second" msgstr "" -#: js/turtledefs.js:683 -msgid "Click to run the project step by step." +#: js/utils/musicutils.js:693 +msgid "Major third" msgstr "" -#: js/turtledefs.js:690 -msgid "Display statistics about your Music project." +#: js/utils/musicutils.js:693 +msgid "Diminished fourth" msgstr "" -#: js/turtledefs.js:697 -msgid "Delete a selected plugin." +#: js/utils/musicutils.js:694 +msgid "Perfect fourth" msgstr "" -#: js/turtledefs.js:704 -msgid "Enable scrolling" +#: js/utils/musicutils.js:694 +msgid "Augmented third" msgstr "" -#: js/turtledefs.js:705 -msgid "You can scroll the blocks on the canvas." +#: js/utils/musicutils.js:695 +msgid "Diminished fifth" msgstr "" -#: js/turtledefs.js:714 -msgid "Wrap Turtle" +#: js/utils/musicutils.js:695 +msgid "Augmented fourth" msgstr "" -#: js/turtledefs.js:715 -msgid "Turn Turtle wrapping On or Off." +#: js/utils/musicutils.js:696 +msgid "Perfect fifth" msgstr "" -#: js/turtledefs.js:725 -msgid "Restore blocks from the trash." +#: js/utils/musicutils.js:696 +msgid "Diminished sixth" msgstr "" -#: js/turtledefs.js:732 -msgid "Switch mode" +#: js/utils/musicutils.js:697 +msgid "Minor sixth" msgstr "" -#: js/turtledefs.js:733 -msgid "Switch between beginner and advance modes." +#: js/utils/musicutils.js:697 +msgid "Augmented fifth" msgstr "" -#: js/turtledefs.js:739 -msgid "Select your language preference." +#: js/utils/musicutils.js:698 +msgid "Major sixth" msgstr "" -#: js/turtledefs.js:745 -msgid "Keyboard shortcuts" +#: js/utils/musicutils.js:698 +msgid "Diminished seventh" msgstr "" -#: js/turtledefs.js:746 -msgid "You can type d to create a do block and r to create a re block etc." +#: js/utils/musicutils.js:699 +msgid "Minor seventh" msgstr "" -#: js/turtledefs.js:753 -msgid "Show these messages." +#: js/utils/musicutils.js:699 +msgid "Augmented sixth" msgstr "" -#: js/turtledefs.js:759 -#: js/turtledefs.js:790 -#: js/help.js:335 -msgid "Guide" +#: js/utils/musicutils.js:700 +msgid "Major seventh" msgstr "" -#: js/turtledefs.js:760 -msgid "A detailed guide to Turtle Blocks is available." +#: js/utils/musicutils.js:700 +msgid "Diminished octave" msgstr "" -#: js/turtledefs.js:764 -msgid "Turtle Blocks Guide" +#: js/utils/musicutils.js:701 +msgid "Perfect octave" msgstr "" -#: js/turtledefs.js:767 -#: js/turtledefs.js:798 -#: js/help.js:336 -msgid "About" +#: js/utils/musicutils.js:701 +msgid "Augmented seventh" msgstr "" -#: js/turtledefs.js:768 -msgid "Turtle Blocks is an open source collection of tools for exploring musical concepts." +#: js/utils/musicutils.js:702 +msgid "Minor ninth" msgstr "" -#: js/turtledefs.js:770 -msgid "A full list of contributors can be found in the Turtle Blocks GitHub repository." +#: js/utils/musicutils.js:702 +msgid "Augmented octave" msgstr "" -#: js/turtledefs.js:772 -msgid "Turtle Blocks is licensed under the AGPL." +#: js/utils/musicutils.js:703 +msgid "Major ninth" msgstr "" -#: js/turtledefs.js:780 -msgid "Turtle Blocks GitHub repository" +#: js/utils/musicutils.js:703 +msgid "Diminished tenth" msgstr "" -#: js/turtledefs.js:783 -#: js/turtledefs.js:814 -#: js/help.js:337 -#: js/help.js:359 -msgid "Congratulations." +#: js/utils/musicutils.js:704 +msgid "Minor tenth" msgstr "" -#: js/turtledefs.js:784 -msgid "You have finished the tour. Please enjoy Turtle Blocks!" +#: js/utils/musicutils.js:704 +msgid "Augmented ninth" msgstr "" -#: js/turtledefs.js:791 -msgid "A detailed guide to Music Blocks is available." +#: js/utils/musicutils.js:705 +msgid "Major tenth" msgstr "" -#: js/turtledefs.js:795 -#: js/SaveInterface.js:76 -msgid "Music Blocks Guide" +#: js/utils/musicutils.js:705 +msgid "Diminished eleventh" msgstr "" -#: js/turtledefs.js:799 -msgid "Music Blocks is an open source collection of tools for exploring musical concepts." +#: js/utils/musicutils.js:706 +msgid "Perfect eleventh" msgstr "" -#: js/turtledefs.js:801 -msgid "A full list of contributors can be found in the Music Blocks GitHub repository." +#: js/utils/musicutils.js:706 +msgid "Augmented tenth" msgstr "" -#: js/turtledefs.js:803 -msgid "Music Blocks is licensed under the AGPL." +#: js/utils/musicutils.js:707 +msgid "Diminished twelfth" msgstr "" -#: js/turtledefs.js:811 -msgid "Music Blocks GitHub repository" +#: js/utils/musicutils.js:707 +msgid "Augmented eleventh" msgstr "" -#: js/turtledefs.js:815 -msgid "You have finished the tour. Please enjoy Music Blocks!" +#: js/utils/musicutils.js:708 +msgid "Perfect twelfth" msgstr "" -#: js/activity.js:369 -msgid "Search for blocks" +#: js/utils/musicutils.js:708 +msgid "Diminished thirteenth" msgstr "" -#: js/activity.js:1145 -msgid "Refresh your browser to change to advanced mode." +#: js/utils/musicutils.js:709 +msgid "Minor thirteenth" msgstr "" -#: js/activity.js:1150 -msgid "Refresh your browser to change to beginner mode." +#: js/utils/musicutils.js:709 +msgid "Augmented fifth, plus an octave" msgstr "" -#: js/activity.js:1184 -msgid "Catching mice" +#: js/utils/musicutils.js:710 +msgid "Major thirteenth" msgstr "" -#: js/activity.js:1185 -msgid "Cleaning the instruments" +#: js/utils/musicutils.js:710 +msgid "Diminished seventh, plus an octave" msgstr "" -#: js/activity.js:1186 -msgid "Testing key pieces" +#: js/utils/musicutils.js:838 +#.TRANS: ordinal number. Please keep exactly one space between each number. +msgid "1st 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th" msgstr "" -#: js/activity.js:1187 -msgid "Sight-reading" +#: js/utils/musicutils.js:1008 +#: js/utils/musicutils.js:1191 +#: js/utils/musicutils.js:1325 +#.TRANS: augmented is a music term related to intervals +msgid "augmented" msgstr "" -#: js/activity.js:1188 -msgid "Combining math and music" +#: js/utils/musicutils.js:1010 +#: js/utils/musicutils.js:1192 +#: js/utils/musicutils.js:1324 +#.TRANS: diminished is a music term related to intervals and mode +msgid "diminished" msgstr "" -#: js/activity.js:1189 -msgid "Generating more blocks" +#: js/utils/musicutils.js:1016 +#: js/utils/musicutils.js:1322 +#: js/blocks/IntervalsBlocks.js:649 +#: js/turtleactions/IntervalsActions.js:120 +#: js/turtleactions/IntervalsActions.js:124 +#.TRANS: perfect is a music term related to intervals +msgid "perfect" msgstr "" -#: js/activity.js:1190 -msgid "Do Re Mi Fa Sol La Ti Do" +#: js/utils/musicutils.js:1018 +#.TRANS: twelve semi-tone scale for music +msgid "chromatic" msgstr "" -#: js/activity.js:1191 -msgid "Tuning string instruments" +#: js/utils/musicutils.js:1019 +msgid "algerian" msgstr "" -#: js/activity.js:1192 -msgid "Pressing random keys" +#: js/utils/musicutils.js:1020 +msgid "spanish" msgstr "" -#: js/activity.js:1351 -msgid "plugins will be removed upon restart." +#: js/utils/musicutils.js:1022 +#.TRANS: modal scale in music +msgid "octatonic" msgstr "" -#: js/activity.js:1360 -msgid "show Cartesian" +#: js/utils/musicutils.js:1024 +#.TRANS: harmonic major scale in music +msgid "harmonic major" msgstr "" -#: js/activity.js:1842 -msgid "output tools" +#: js/utils/musicutils.js:1026 +#.TRANS: natural minor scales in music +msgid "natural minor" msgstr "" -#: js/activity.js:1845 -msgid "custom note" +#: js/utils/musicutils.js:1028 +#.TRANS: harmonic minor scale in music +msgid "harmonic minor" msgstr "" -#: js/activity.js:1848 -msgid "accidental name" +#: js/utils/musicutils.js:1030 +#.TRANS: melodic minor scale in music +msgid "melodic minor" msgstr "" -#: js/activity.js:1851 -#: js/PitchBlocks.js:855 -msgid "east indian solfege" +#: js/utils/musicutils.js:1034 +#.TRANS: modal scale for music +msgid "dorian" msgstr "" -#: js/activity.js:1854 -#: js/PitchBlocks.js:869 -msgid "note name" +#: js/utils/musicutils.js:1036 +#.TRANS: modal scale for music +msgid "phrygian" msgstr "" -#: js/activity.js:1857 -#: js/IntervalsBlocks.js:94 -msgid "temperament name" +#: js/utils/musicutils.js:1038 +#.TRANS: modal scale for music +msgid "lydian" msgstr "" -#: js/activity.js:1863 -msgid "chord name" +#: js/utils/musicutils.js:1040 +#.TRANS: modal scale for music +msgid "mixolydian" msgstr "" -#: js/activity.js:1869 -msgid "filter type" +#: js/utils/musicutils.js:1044 +#.TRANS: modal scale for music +msgid "locrian" msgstr "" -#: js/activity.js:1872 -msgid "oscillator type" +#: js/utils/musicutils.js:1046 +#.TRANS: minor jazz scale for music +msgid "jazz minor" msgstr "" -#: js/activity.js:1878 -#: js/DrumBlocks.js:32 -msgid "noise name" +#: js/utils/musicutils.js:1048 +#.TRANS: bebop scale for music +msgid "bebop" msgstr "" -#: js/activity.js:1881 -#: js/DrumBlocks.js:75 -msgid "drum name" +#: js/utils/musicutils.js:1049 +msgid "arabic" msgstr "" -#: js/activity.js:1884 -#: js/DrumBlocks.js:119 -msgid "effects name" +#: js/utils/musicutils.js:1050 +msgid "byzantine" msgstr "" -#: js/activity.js:1887 -msgid "wrap mode" +#: js/utils/musicutils.js:1052 +#.TRANS: musical scale for music by Verdi +msgid "enigmatic" msgstr "" -#: js/activity.js:1890 -msgid "load file" +#: js/utils/musicutils.js:1053 +msgid "ethiopian" msgstr "" -#: js/activity.js:2056 -msgid "This block is deprecated." +#: js/utils/musicutils.js:1055 +#.TRANS: Ethiopic scale for music +msgid "geez" msgstr "" -#: js/activity.js:2058 -msgid "Block cannot be found." +#: js/utils/musicutils.js:1056 +msgid "hindu" msgstr "" -#: js/activity.js:2266 -msgid "Saving block artwork" +#: js/utils/musicutils.js:1057 +msgid "hungarian" msgstr "" -#: js/activity.js:2277 -msgid "Erase" +#: js/utils/musicutils.js:1059 +#.TRANS: minor Romanian scale for music +msgid "romanian minor" msgstr "" -#: js/activity.js:2301 -#: js/activity.js:2323 -msgid "Paste" -msgstr "貼上" +#: js/utils/musicutils.js:1060 +msgid "spanish gypsy" +msgstr "" -#: js/activity.js:2305 -msgid "Save block help" +#: js/utils/musicutils.js:1062 +#.TRANS: musical scale for Mid-Eastern music +msgid "maqam" msgstr "" -#: js/activity.js:2390 -msgid "Jumping to the bottom of the page." +#: js/utils/musicutils.js:1064 +#.TRANS: minor blues scale for music +msgid "minor blues" msgstr "" -#: js/activity.js:2396 -msgid "Scrolling up." +#: js/utils/musicutils.js:1066 +#.TRANS: major blues scale for music +msgid "major blues" msgstr "" -#: js/activity.js:2401 -msgid "Scrolling down." +#: js/utils/musicutils.js:1067 +msgid "whole tone" msgstr "" -#: js/activity.js:2406 -msgid "Extracting block" +#: js/utils/musicutils.js:1069 +#.TRANS: pentatonic is a general term that means "five note scale". This scale is typically known as "minor pentatonic" +msgid "minor pentatonic" msgstr "" -#: js/activity.js:2414 -msgid "Moving block up." +#: js/utils/musicutils.js:1071 +#.TRANS: pentatonic is a general term that means "five note scale". This scale is typically known as "major pentatonic" +msgid "major pentatonic" msgstr "" -#: js/activity.js:2435 -msgid "Moving block down." +#: js/utils/musicutils.js:1072 +msgid "chinese" msgstr "" -#: js/activity.js:2456 -msgid "Moving block left." +#: js/utils/musicutils.js:1073 +msgid "egyptian" msgstr "" -#: js/activity.js:2473 -msgid "Moving block right." +#: js/utils/musicutils.js:1075 +#.TRANS: https://en.wikipedia.org/wiki/Hirajoshi_scale NOTE: There are three different versions of this scale +msgid "hirajoshi" msgstr "" -#: js/activity.js:2488 -msgid "Jump to home position." +#: js/utils/musicutils.js:1076 +msgid "Japan" msgstr "" -#: js/activity.js:2515 -msgid "Hide blocks" +#: js/utils/musicutils.js:1078 +#.TRANS: https://en.wikipedia.org/wiki/In_scale and https://en.wikipedia.org/wiki/Sakura_Sakura +msgid "in" msgstr "" -#: js/activity.js:3389 -msgid "Click the run button to run the project." +#: js/utils/musicutils.js:1080 +#.TRANS: https://en.wikipedia.org/wiki/Miny%C5%8D_scale +msgid "minyo" msgstr "" -#: js/activity.js:3456 -#: js/SaveInterface.js:131 -#: js/SaveInterface.js:204 -#: js/SaveInterface.js:262 -#: js/SaveInterface.js:389 -#: js/SaveInterface.js:417 -#: js/ProjectStorage.js:27 -#: js/GlobalPlanet.js:467 -#: js/GlobalPlanet.js:469 -#: js/GlobalPlanet.js:495 -#.TRANS: default project title when saving as Lilypond -msgid "My Project" +#: js/utils/musicutils.js:1082 +#.TRANS: Italian mathematician +msgid "fibonacci" msgstr "" -#: js/activity.js:4261 -msgid "Show/hide block" +#: js/utils/musicutils.js:1083 +#: js/utils/musicutils.js:1134 +#: js/utils/musicutils.js:1177 +#: js/utils/musicutils.js:1199 +#: js/utils/synthutils.js:134 +#: js/blocks/IntervalsBlocks.js:1124 +#: js/blocks/ToneBlocks.js:946 +#: js/blocks/VolumeBlocks.js:411 +#: js/blocks/WidgetBlocks.js:399 +#: js/blocks/WidgetBlocks.js:404 +#: js/turtleactions/VolumeActions.js:218 +#: js/widgets/modewidget.js:919 +#.TRANS: customize voice +msgid "custom" msgstr "" -#: js/activity.js:4263 -msgid "Expand/collapse blocks" +#: js/utils/musicutils.js:1085 +#: js/utils/musicutils.js:1531 +#: js/blocks/WidgetBlocks.js:176 +#.TRANS: highpass filter +msgid "highpass" msgstr "" -#: js/activity.js:4381 -msgid "Could not parse JSON input." +#: js/utils/musicutils.js:1087 +#: js/utils/musicutils.js:1532 +#.TRANS: lowpass filter +msgid "lowpass" msgstr "" -#: js/activity.js:4684 -#: js/activity.js:4771 -#: js/activity.js:4821 -msgid "Cannot load project from the file. Please check the file type." -msgstr "无法从文件加载项目。请检查文件类型。" +#: js/utils/musicutils.js:1089 +#: js/utils/musicutils.js:1533 +#.TRANS: bandpass filter +msgid "bandpass" +msgstr "" -#: js/activity.js:5051 -msgid "Invalid parameters" +#: js/utils/musicutils.js:1091 +#: js/utils/musicutils.js:1534 +#.TRANS: high-shelf filter +msgid "highshelf" msgstr "" -#: js/turtle-singer.js:1334 -#.TRANS: partials are weighted components in a harmonic series -msgid "You must have at least one Partial block inside of a Weighted-partial block" +#: js/utils/musicutils.js:1093 +#: js/utils/musicutils.js:1535 +#.TRANS: low-shelf filter +msgid "lowshelf" msgstr "" -#: js/turtle-singer.js:2048 -msgid "synth cannot play chords." +#: js/utils/musicutils.js:1095 +#: js/utils/musicutils.js:1536 +#.TRANS: notch-shelf filter +msgid "notch" msgstr "" -#: js/lilypond.js:614 -msgid "brown rat" +#: js/utils/musicutils.js:1097 +#: js/utils/musicutils.js:1537 +#.TRANS: all-pass filter +msgid "allpass" msgstr "" -#: js/lilypond.js:615 -msgid "mole" +#: js/utils/musicutils.js:1099 +#: js/utils/musicutils.js:1538 +#.TRANS: peaking filter +msgid "peaking" msgstr "" -#: js/lilypond.js:616 -msgid "chipmunk" +#: js/utils/musicutils.js:1100 +#: js/utils/musicutils.js:1546 +#: js/utils/synthutils.js:126 +#: js/blocks/PitchBlocks.js:85 +#.TRANS: sine wave +msgid "sine" msgstr "" -#: js/lilypond.js:617 -msgid "red squirrel" +#: js/utils/musicutils.js:1101 +#: js/utils/musicutils.js:1547 +#: js/utils/synthutils.js:128 +#: js/blocks/PitchBlocks.js:39 +#.TRANS: square wave +msgid "square" msgstr "" -#: js/lilypond.js:618 -msgid "guinea pig" +#: js/utils/musicutils.js:1102 +#: js/utils/musicutils.js:1548 +#: js/utils/synthutils.js:132 +#: js/blocks/PitchBlocks.js:62 +#: js/blocks/ToneBlocks.js:39 +#.TRANS: triangle wave +msgid "triangle" msgstr "" -#: js/lilypond.js:619 -msgid "capybara" +#: js/utils/musicutils.js:1103 +#: js/utils/musicutils.js:1549 +#: js/utils/synthutils.js:130 +#: js/blocks/PitchBlocks.js:108 +#.TRANS: sawtooth wave +msgid "sawtooth" msgstr "" -#: js/lilypond.js:620 -msgid "coypu" +#: js/utils/musicutils.js:1105 +#: js/utils/musicutils.js:1312 +#: js/blocks/PitchBlocks.js:931 +#: js/blocks/PitchBlocks.js:937 +#: js/turtleactions/PitchActions.js:469 +#.TRANS: even numbers +#.TRANS: invert based on even or odd number or musical scale +msgid "even" msgstr "" -#: js/lilypond.js:621 -msgid "black rat" +#: js/utils/musicutils.js:1107 +#: js/utils/musicutils.js:1313 +#: js/blocks/PitchBlocks.js:937 +#: js/turtleactions/PitchActions.js:471 +#.TRANS: odd numbers +msgid "odd" msgstr "" -#: js/lilypond.js:622 -msgid "grey squirrel" +#: js/utils/musicutils.js:1108 +#: js/utils/musicutils.js:1314 +#: js/blocks/PitchBlocks.js:937 +#: js/turtleactions/PitchActions.js:473 +msgid "scalar" msgstr "" -#: js/lilypond.js:623 -msgid "flying squirrel" +#: js/utils/musicutils.js:1109 +#: js/utils/synthutils.js:72 +#: js/blocks/VolumeBlocks.js:47 +#.TRANS: musical instrument +msgid "piano" msgstr "" -#: js/lilypond.js:624 -msgid "bat" +#: js/utils/musicutils.js:1110 +#: js/utils/synthutils.js:74 +#.TRANS: musical instrument +msgid "violin" msgstr "" -#: js/lilypond.js:757 -#: js/lilypond.js:921 -#: js/lilypond.js:959 -#: js/ActionBlocks.js:1256 -#: js/ExtrasBlocks.js:553 -msgid "start drum" +#: js/utils/musicutils.js:1111 +#: js/utils/synthutils.js:76 +#.TRANS: viola musical instrument +msgid "viola" msgstr "" -#: js/SaveInterface.js:59 -#: js/SaveInterface.js:61 -#: js/SaveInterface.js:93 -msgid "Music Blocks Project" +#: js/utils/musicutils.js:1112 +#: js/utils/synthutils.js:114 +#.TRANS: xylophone musical instrument +msgid "xylophone" msgstr "" -#: js/SaveInterface.js:63 -msgid "This project was created in Music Blocks" +#: js/utils/musicutils.js:1113 +#: js/utils/synthutils.js:136 +#.TRANS: vibraphone musical instrument +msgid "vibraphone" msgstr "" -#: js/SaveInterface.js:67 -msgid "Music Blocks is a Free/Libre Software application." +#: js/utils/musicutils.js:1114 +#: js/utils/synthutils.js:78 +#.TRANS: musical instrument +msgid "cello" msgstr "" -#: js/SaveInterface.js:69 -msgid "The source code can be accessed at" +#: js/utils/musicutils.js:1116 +#: js/utils/synthutils.js:82 +#.TRANS: viola musical instrument +msgid "double bass" msgstr "" -#: js/SaveInterface.js:72 -msgid "For more information, please consult the" +#: js/utils/musicutils.js:1117 +#: js/utils/synthutils.js:84 +#: js/widgets/rhythmruler.js:2511 +#.TRANS: musical instrument +msgid "guitar" msgstr "" -#: js/SaveInterface.js:83 -msgid "Alternatively, open the file in Music Blocks using the Load project button." +#: js/utils/musicutils.js:1118 +#: js/utils/synthutils.js:86 +#.TRANS: musical instrument +msgid "acoustic guitar" msgstr "" -#: js/SaveInterface.js:85 -msgid "Project Code" +#: js/utils/musicutils.js:1119 +#: js/utils/synthutils.js:88 +#.TRANS: musical instrument +msgid "flute" msgstr "" -#: js/SaveInterface.js:87 -msgid "This code stores data about the blocks in a project." +#: js/utils/musicutils.js:1120 +#: js/utils/synthutils.js:90 +#.TRANS: musical instrument +msgid "clarinet" msgstr "" -#: js/SaveInterface.js:89 -msgid "Show" +#: js/utils/musicutils.js:1121 +#: js/utils/synthutils.js:92 +#.TRANS: musical instrument +msgid "saxophone" msgstr "" -#: js/SaveInterface.js:91 -msgid "Hide" +#: js/utils/musicutils.js:1122 +#: js/utils/synthutils.js:94 +#.TRANS: musical instrument +msgid "tuba" msgstr "" -#: js/SaveInterface.js:197 -#: js/SaveInterface.js:58 -msgid "No description provided" +#: js/utils/musicutils.js:1123 +#: js/utils/synthutils.js:96 +#.TRANS: musical instrument +msgid "trumpet" msgstr "" -#: js/SaveInterface.js:332 -msgid "Your recording is in progress." +#: js/utils/musicutils.js:1124 +#: js/utils/synthutils.js:98 +#.TRANS: musical instrument +msgid "oboe" msgstr "" -#: js/SaveInterface.js:401 -#.TRANS: File name prompt for save as Lilypond -msgid "File name" +#: js/utils/musicutils.js:1125 +#: js/utils/synthutils.js:100 +#.TRANS: musical instrument +msgid "trombone" msgstr "" -#: js/SaveInterface.js:403 -#: js/StringHelper.js:39 -#.TRANS: Project title prompt for save as Lilypond -msgid "Project title" +#: js/utils/musicutils.js:1126 +#: js/utils/synthutils.js:116 +#.TRANS: polytone synthesizer +msgid "electronic synth" msgstr "" -#: js/SaveInterface.js:405 -#.TRANS: Project title prompt for save as Lilypond -msgid "Project author" +#: js/utils/musicutils.js:1127 +#: js/utils/synthutils.js:118 +#.TRANS: simple monotone synthesizer +msgid "simple 1" msgstr "" -#: js/SaveInterface.js:407 -#.TRANS: MIDI prompt for save as Lilypond -msgid "Include MIDI output?" +#: js/utils/musicutils.js:1128 +msgid "simple 2" msgstr "" -#: js/SaveInterface.js:409 -#.TRANS: Guitar prompt for save as Lilypond -msgid "Include guitar tablature output?" +#: js/utils/musicutils.js:1129 +msgid "simple 3" msgstr "" -#: js/SaveInterface.js:411 -#.TRANS: Lilypond is a scripting language for generating sheet music -msgid "Save as Lilypond" +#: js/utils/musicutils.js:1130 +msgid "simple 4" msgstr "" -#: js/SaveInterface.js:426 -#: js/EnsembleBlocks.js:75 -#: js/EnsembleBlocks.js:154 -#: js/EnsembleBlocks.js:216 -#: js/EnsembleBlocks.js:302 -#: js/EnsembleBlocks.js:348 -#: js/EnsembleBlocks.js:389 -#: js/EnsembleBlocks.js:441 -#: js/EnsembleBlocks.js:490 -#: js/EnsembleBlocks.js:536 -#: js/EnsembleBlocks.js:583 -#: js/EnsembleBlocks.js:637 -#: js/EnsembleBlocks.js:753 -#: js/EnsembleBlocks.js:840 -#: js/EnsembleBlocks.js:899 -#: js/EnsembleBlocks.js:942 -#: js/EnsembleBlocks.js:1212 -#: js/EnsembleBlocks.js:1280 -#.TRANS: default project author when saving as Lilypond -msgid "Mr. Mouse" +#: js/utils/musicutils.js:1131 +#: js/utils/synthutils.js:58 +#: js/blocks/DrumBlocks.js:191 +#.TRANS: white noise synthesizer +msgid "white noise" msgstr "" -#: js/SaveInterface.js:573 -msgid "The Lilypond code is copied to clipboard. You can paste it here: " +#: js/utils/musicutils.js:1132 +#: js/utils/synthutils.js:60 +#.TRANS: brown noise synthesizer +msgid "brown noise" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:50 -#: js/RhythmBlockPaletteBlocks.js:232 -#.TRANS: rhythm block -#.TRANS: translate "rhythm1" as rhythm -msgid "rhythm1" +#: js/utils/musicutils.js:1133 +#: js/utils/synthutils.js:62 +#.TRANS: pink noise synthesizer +msgid "pink noise" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:70 -#: js/RhythmBlockPaletteBlocks.js:251 -#: js/RhythmBlockPaletteBlocks.js:484 -#: js/RhythmBlockPaletteBlocks.js:553 -#: js/RhythmBlockPaletteBlocks.js:874 -msgid "number of notes" +#: js/utils/musicutils.js:1135 +#: js/utils/synthutils.js:148 +#: js/widgets/rhythmruler.js:2057 +#: js/widgets/rhythmruler.js:2319 +#.TRANS: musical instrument +msgid "snare drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:126 -msgid "polyphonic rhythm" +#: js/utils/musicutils.js:1136 +#: js/utils/synthutils.js:150 +#.TRANS: musical instrument +msgid "kick drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:218 -msgid "The Rhythm block is used to generate rhythm patterns." +#: js/utils/musicutils.js:1137 +#: js/utils/synthutils.js:152 +#.TRANS: musical instrument +msgid "tom tom" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:279 -msgid "1/64 note" +#: js/utils/musicutils.js:1138 +#: js/utils/synthutils.js:154 +#.TRANS: musical instrument +msgid "floor tom" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:303 -msgid "1/32 note" +#: js/utils/musicutils.js:1139 +#: js/utils/synthutils.js:156 +#.TRANS: musical instrument +msgid "bass drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:331 -msgid "1/16 note" +#: js/utils/musicutils.js:1140 +#: js/utils/synthutils.js:158 +#.TRANS: a drum made from an inverted cup +msgid "cup drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:359 -msgid "eighth note" +#: js/utils/musicutils.js:1141 +#: js/utils/synthutils.js:160 +#.TRANS: musical instrument +msgid "darbuka drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:387 -msgid "quarter note" +#: js/utils/musicutils.js:1142 +#: js/utils/synthutils.js:164 +#.TRANS: musical instrument +msgid "hi hat" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:415 -msgid "half note" +#: js/utils/musicutils.js:1143 +#: js/utils/synthutils.js:166 +#.TRANS: a small metal bell +msgid "ride bell" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:443 -msgid "whole note" +#: js/utils/musicutils.js:1144 +#: js/utils/synthutils.js:168 +#.TRANS: musical instrument +msgid "cow bell" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:481 -#: js/RhythmBlockPaletteBlocks.js:550 -#: js/RhythmBlockPaletteBlocks.js:601 -#.TRANS: A tuplet is a note value divided into irregular time values. -msgid "tuplet" +#: js/utils/musicutils.js:1145 +msgid "japanese drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:767 -msgid "septuplet" +#: js/utils/musicutils.js:1146 +#: js/utils/synthutils.js:174 +#.TRANS: musical instrument +msgid "japanese bell" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:795 -msgid "quintuplet" +#: js/utils/musicutils.js:1147 +#: js/utils/synthutils.js:170 +#.TRANS: musical instrument +msgid "triangle bell" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:823 -msgid "triplet" +#: js/utils/musicutils.js:1148 +#: js/utils/synthutils.js:172 +#.TRANS: musical instrument +msgid "finger cymbals" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:850 -msgid "simple tuplet" +#: js/utils/musicutils.js:1149 +#: js/utils/synthutils.js:176 +#.TRANS: a musically tuned set of bells +msgid "chime" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:860 -msgid "Tuplets are a collection of notes that get scaled to a specific duration." +#: js/utils/musicutils.js:1150 +#: js/utils/synthutils.js:178 +#.TRANS: a musical instrument +msgid "gong" msgstr "" -#: js/WidgetBlocks.js:71 -#.TRANS: sound envelope (ADSR) -msgid "envelope" +#: js/utils/musicutils.js:1151 +#: js/utils/synthutils.js:180 +#.TRANS: sound effect +msgid "clang" msgstr "" -#: js/WidgetBlocks.js:79 -#.TRANS: Attack time is the time taken for initial run-up of level from nil to peak, beginning when the key is first pressed. -msgid "attack" +#: js/utils/musicutils.js:1152 +#: js/utils/synthutils.js:182 +#.TRANS: sound effect +msgid "crash" msgstr "" -#: js/WidgetBlocks.js:81 -#.TRANS: Decay time is the time taken for the subsequent run down from the attack level to the designated sustain level. -msgid "decay" +#: js/utils/musicutils.js:1153 +#: js/utils/synthutils.js:184 +#.TRANS: sound effect +msgid "bottle" msgstr "" -#: js/WidgetBlocks.js:83 -#.TRANS: Sustain level is the level during the main sequence of the sound's duration, until the key is released. -msgid "sustain" +#: js/utils/musicutils.js:1154 +#: js/utils/synthutils.js:186 +#.TRANS: sound effect +msgid "clap" msgstr "" -#: js/WidgetBlocks.js:85 -#.TRANS: Release time is the time taken for the level to decay from the sustain level to zero after the key is released. -msgid "release" +#: js/utils/musicutils.js:1155 +#: js/utils/synthutils.js:188 +#.TRANS: sound effect +msgid "slap" msgstr "" -#: js/WidgetBlocks.js:96 -msgid "Attack value should be from 0 to 100." +#: js/utils/musicutils.js:1156 +#: js/utils/synthutils.js:190 +#.TRANS: sound effect +msgid "splash" msgstr "" -#: js/WidgetBlocks.js:99 -msgid "Decay value should be from 0 to 100." +#: js/utils/musicutils.js:1157 +#: js/utils/synthutils.js:192 +#.TRANS: sound effect +msgid "bubbles" msgstr "" -#: js/WidgetBlocks.js:102 -msgid "Sustain value should be from 0 to 100." +#: js/utils/musicutils.js:1158 +#: js/utils/synthutils.js:194 +#.TRANS: sound effect +msgid "raindrop" msgstr "" -#: js/WidgetBlocks.js:105 -msgid "Release value should be from 0-100." +#: js/utils/musicutils.js:1159 +#: js/utils/synthutils.js:196 +#.TRANS: animal sound effect +msgid "cat" msgstr "" -#: js/WidgetBlocks.js:121 -msgid "You are adding multiple envelope blocks." +#: js/utils/musicutils.js:1160 +#: js/utils/synthutils.js:198 +#.TRANS: animal sound effect +msgid "cricket" msgstr "" -#: js/WidgetBlocks.js:144 -#.TRANS: a filter removes some unwanted components from a signal -msgid "filter" +#: js/utils/musicutils.js:1161 +#: js/utils/synthutils.js:200 +#.TRANS: animal sound effect +msgid "dog" msgstr "" -#: js/WidgetBlocks.js:149 -#: js/musicutils.js:706 -#: js/musicutils.js:1105 -#.TRANS: highpass filter -msgid "highpass" +#: js/utils/musicutils.js:1163 +#: js/utils/synthutils.js:102 +#.TRANS: musical instrument +msgid "banjo" msgstr "" -#: js/WidgetBlocks.js:152 -#: js/ToneBlocks.js:42 -#: js/timbre.js:1558 -#: js/timbre.js:1808 -#.TRANS: type of filter, e.g., lowpass, highpass, etc. -#.TRANS: there are different types (sine, triangle, square...) of oscillators. -msgid "type" +#: js/utils/musicutils.js:1164 +#: js/utils/synthutils.js:104 +#.TRANS: musical instrument +msgid "koto" msgstr "" -#: js/WidgetBlocks.js:154 -#: js/timbre.js:1818 -#.TRANS: rolloff is the steepness of a change in frequency. -msgid "rolloff" +#: js/utils/musicutils.js:1165 +#: js/utils/synthutils.js:106 +#.TRANS: musical instrument +msgid "dulcimer" msgstr "" -#: js/WidgetBlocks.js:155 -#: js/MediaBlocks.js:692 -#: js/temperament.js:382 -#: js/temperament.js:417 -#: js/temperament.js:477 -#: js/temperament.js:485 -#: js/temperament.js:1348 -#: js/timbre.js:1842 -msgid "frequency" +#: js/utils/musicutils.js:1166 +#: js/utils/synthutils.js:108 +#.TRANS: musical instrument +msgid "electric guitar" msgstr "" -#: js/WidgetBlocks.js:179 -#.TRANS: rolloff is the steepness of a change in frequency. -msgid "Rolloff value should be either -12, -24, -48, or -96 decibels/octave." +#: js/utils/musicutils.js:1167 +#: js/utils/synthutils.js:110 +#.TRANS: musical instrument +msgid "bassoon" msgstr "" -#: js/WidgetBlocks.js:211 -msgid "The Temperament tool is used to define custom tuning." +#: js/utils/musicutils.js:1168 +#: js/utils/synthutils.js:112 +#.TRANS: musical instrument +msgid "celeste" msgstr "" -#: js/WidgetBlocks.js:277 -#: js/sampler.js:329 -msgid "Upload a sample and adjust its pitch center." +#: js/utils/musicutils.js:1170 +#: js/widgets/temperament.js:787 +#.TRANS: musical temperament +msgid "equal" msgstr "" -#: js/WidgetBlocks.js:284 -#.TRANS: the speed at music is should be played. -msgid "sampler" +#: js/utils/musicutils.js:1172 +#.TRANS: musical temperament +msgid "Pythagorean" msgstr "" -#: js/WidgetBlocks.js:329 -#: js/WidgetBlocks.js:334 -#: js/IntervalsBlocks.js:928 -#: js/VolumeBlocks.js:411 -#: js/ToneBlocks.js:946 -#: js/VolumeActions.js:218 -#: js/musicutils.js:704 -#: js/musicutils.js:755 -#: js/musicutils.js:798 -#: js/musicutils.js:820 -#: js/musicutils.js:1136 -#: js/synthutils.js:118 -#: js/modewidget.js:919 -#.TRANS: customize voice -msgid "custom" +#: js/utils/musicutils.js:1174 +#.TRANS: musical temperament +msgid "just intonation" msgstr "" -#: js/WidgetBlocks.js:432 -msgid "The Meter block opens a tool to select strong beats for the meter." +#: js/utils/musicutils.js:1176 +#.TRANS: musical temperament +msgid "meantone" msgstr "" -#: js/WidgetBlocks.js:473 -msgid "The oscilloscope block opens a tool to visualize waveforms." +#: js/utils/musicutils.js:1193 +msgid "major 7th" msgstr "" -#: js/WidgetBlocks.js:478 -msgid "oscilloscope" +#: js/utils/musicutils.js:1194 +msgid "minor 7th" msgstr "" -#: js/WidgetBlocks.js:530 -msgid "The Custom mode block opens a tool to explore musical mode (the spacing of the notes in a scale)." +#: js/utils/musicutils.js:1195 +msgid "dominant 7th" msgstr "" -#: js/WidgetBlocks.js:536 -#.TRANS: musical mode is the pattern of half-steps in an octave, e.g., Major or Minor modes -msgid "custom mode" +#: js/utils/musicutils.js:1196 +msgid "minor-major 7th" msgstr "" -#: js/WidgetBlocks.js:570 -msgid "The Tempo block opens a metronome to visualize the beat." +#: js/utils/musicutils.js:1197 +msgid "fully-diminished 7th" msgstr "" -#: js/WidgetBlocks.js:617 -msgid "The Arpeggio Widget is used to compose chord sequences." +#: js/utils/musicutils.js:1198 +msgid "half-diminished 7th" msgstr "" -#: js/WidgetBlocks.js:623 -#: js/IntervalsBlocks.js:683 -msgid "arpeggio" +#: js/utils/musicutils.js:1557 +#: js/utils/musicutils.js:1569 +msgid "Equal (12EDO)" msgstr "" -#: js/WidgetBlocks.js:677 -msgid "The Pitch drum matrix is used to map pitches to drum sounds." +#: js/utils/musicutils.js:1558 +#: js/utils/musicutils.js:1570 +msgid "5-limit Just Intonation" msgstr "" -#: js/WidgetBlocks.js:682 -#.TRANS: makes a mapping between pitches and drum sounds -msgid "pitch-drum mapper" +#: js/utils/musicutils.js:1559 +#: js/utils/musicutils.js:1571 +msgid "Pythagorean (3-limit JI)" msgstr "" -#: js/WidgetBlocks.js:724 -msgid "You must have at least one pitch block and one drum block in the matrix." +#: js/utils/musicutils.js:1560 +#: js/utils/musicutils.js:1561 +#: js/utils/musicutils.js:1572 +#: js/utils/musicutils.js:1573 +msgid "Meantone" msgstr "" -#: js/WidgetBlocks.js:746 -msgid "The Pitch slider tool to is used to generate pitches at selected frequencies." +#: js/utils/musicutils.js:1574 +msgid "Custom" msgstr "" -#: js/WidgetBlocks.js:751 -#.TRANS: widget to generate pitches using a slider -msgid "pitch slider" +#: js/utils/musicutils.js:5387 +#: js/utils/musicutils.js:5430 +msgid "current" msgstr "" -#: js/WidgetBlocks.js:788 -msgid "chromatic keyboard" +#: js/utils/musicutils.js:5390 +#: js/utils/musicutils.js:5421 +msgid "next" msgstr "" -#: js/WidgetBlocks.js:815 -#: js/WidgetBlocks.js:874 -#.TRANS: widget to generate pitches using a slider -msgid "music keyboard" +#: js/utils/musicutils.js:5393 +#: js/utils/musicutils.js:5426 +msgid "previous" msgstr "" -#: js/WidgetBlocks.js:859 -#: js/WidgetBlocks.js:866 -msgid "The Music keyboard block opens a piano keyboard that can be used to create notes." +#: js/utils/synthutils.js:120 +#.TRANS: simple monotone synthesizer +msgid "simple-2" msgstr "" -#: js/WidgetBlocks.js:910 -msgid "The Pitch staircase tool to is used to generate pitches from a given ratio." +#: js/utils/synthutils.js:122 +#.TRANS: simple monotone synthesizer +msgid "simple-3" msgstr "" -#: js/WidgetBlocks.js:917 -#.TRANS: generate a progressive sequence of pitches -msgid "pitch staircase" +#: js/utils/synthutils.js:124 +#.TRANS: simple monotone synthesizer +msgid "simple-4" msgstr "" -#: js/WidgetBlocks.js:982 -msgid "The Rhythm Maker block opens a tool to create drum machines." +#: js/utils/synthutils.js:162 +#.TRANS: musical instrument +msgid "taiko" msgstr "" -#: js/WidgetBlocks.js:1036 -msgid "G major scale" +#: js/blocks/ActionBlocks.js:58 +msgid "The Return block will return a value from an action." msgstr "" -#: js/WidgetBlocks.js:1064 -msgid "C major scale" +#: js/blocks/ActionBlocks.js:75 +msgid "return" msgstr "" -#: js/WidgetBlocks.js:1097 -msgid "The Phrase Maker block opens a tool to create musical phrases." +#: js/blocks/ActionBlocks.js:128 +msgid "The Return to URL block will return a value to a webpage." msgstr "" -#: js/WidgetBlocks.js:1104 -#.TRANS: assigns pitch to a sequence of beats to generate a melody -msgid "phrase maker" +#: js/blocks/ActionBlocks.js:145 +msgid "return to URL" msgstr "" -#: js/WidgetBlocks.js:1168 -msgid "You must have at least one pitch block and one rhythm block in the matrix." +#: js/blocks/ActionBlocks.js:233 +#: js/blocks/ActionBlocks.js:290 +#: js/blocks/ActionBlocks.js:501 +#: js/blocks/ActionBlocks.js:688 +msgid "The Calculate block returns a value calculated by an action." msgstr "" -#: js/WidgetBlocks.js:1220 -msgid "The Status block opens a tool for inspecting the status of Music Blocks as it is running." +#: js/blocks/ActionBlocks.js:251 +#: js/blocks/ActionBlocks.js:517 +#: js/blocks/ActionBlocks.js:707 +msgid "calculate" msgstr "" -#: js/IntervalsBlocks.js:45 -msgid "set temperament" +#: js/blocks/ActionBlocks.js:376 +#: js/blocks/ActionBlocks.js:593 +#: js/blocks/ActionBlocks.js:942 +#: js/blocks/ActionBlocks.js:1389 +#.TRANS: do is the do something or take an action. +msgid "The Do block is used to initiate an action." msgstr "" -#: js/IntervalsBlocks.js:63 -#: js/MediaBlocks.js:746 -#: js/PitchBlocks.js:657 -#: js/PitchBlocks.js:933 -#: js/PitchBlocks.js:972 -#: js/PitchBlocks.js:1005 -#: js/PitchBlocks.js:1166 -#: js/PitchBlocks.js:1679 -#: js/PitchBlocks.js:1720 -#: js/PitchBlocks.js:1827 -#: js/ToneBlocks.js:1025 -#.TRANS: adjusts the shift up or down by one octave (twelve half-steps in the interval between two notes, one having twice or half the frequency in Hz of the other.) -msgid "octave" +#: js/blocks/ActionBlocks.js:390 +#: js/blocks/ActionBlocks.js:610 +#: js/blocks/ActionBlocks.js:959 +#: js/blocks/ActionBlocks.js:1048 +#: js/blocks/MeterBlocks.js:769 +msgid "do1" msgstr "" -#: js/IntervalsBlocks.js:99 -msgid "The Temperament name block is used to select a tuning method." +#: js/blocks/ActionBlocks.js:390 +#: js/blocks/ActionBlocks.js:610 +#: js/blocks/ActionBlocks.js:959 +#: js/blocks/ActionBlocks.js:1048 +#: js/blocks/FlowBlocks.js:742 +#: js/blocks/FlowBlocks.js:822 +#: js/blocks/MeterBlocks.js:769 +msgid "do" msgstr "" -#: js/IntervalsBlocks.js:161 -msgid "doubly" +#: js/blocks/ActionBlocks.js:791 +#: js/blocks/ActionBlocks.js:865 +msgid "The Arg block contains the value of an argument passed to an action." msgstr "" -#: js/IntervalsBlocks.js:166 -msgid "The Doubly block will double the size of an interval." +#: js/blocks/ActionBlocks.js:806 +#: js/blocks/ActionBlocks.js:878 +msgid "arg" msgstr "" -#: js/IntervalsBlocks.js:262 -msgid "interval number" +#: js/blocks/ActionBlocks.js:836 +#: js/blocks/ActionBlocks.js:900 +#: js/blocks/ActionBlocks.js:908 +msgid "Invalid argument" msgstr "" -#: js/IntervalsBlocks.js:330 -#.TRANS: measure the distance between two pitches in semi-tones -msgid "semi-tone interval measure" +#: js/blocks/ActionBlocks.js:944 +msgid "In the example, it is used with the One of block to choose a random phase." msgstr "" -#: js/IntervalsBlocks.js:397 -#: js/IntervalsBlocks.js:513 -msgid "You must use two pitch blocks when measuring an interval." +#: js/blocks/ActionBlocks.js:1019 +#: js/blocks/ActionBlocks.js:1026 +msgid "The Listen block is used to listen for an event such as a mouse click." msgstr "" -#: js/IntervalsBlocks.js:439 -msgid "The Scalar interval block measures the distance between two notes in the current key and mode." +#: js/blocks/ActionBlocks.js:1028 +msgid "When the event happens, an action is taken." msgstr "" -#: js/IntervalsBlocks.js:445 -#.TRANS: measure the distance between two pitches in steps of musical scale -msgid "scalar interval measure" +#: js/blocks/ActionBlocks.js:1045 +msgid "on" msgstr "" -#: js/IntervalsBlocks.js:592 -#: js/musicutils.js:637 -#: js/musicutils.js:908 -#.TRANS: perfect is a music term related to intervals -msgid "perfect" +#: js/blocks/ActionBlocks.js:1048 +#: js/blocks/ActionBlocks.js:1049 +#: js/blocks/ActionBlocks.js:1153 +msgid "event" msgstr "" -#: js/IntervalsBlocks.js:621 -msgid "In the figure, we add sol# to sol." +#: js/blocks/ActionBlocks.js:1133 +msgid "The Broadcast block is used to trigger an event." msgstr "" -#: js/IntervalsBlocks.js:627 -#: js/OrnamentBlocks.js:220 -#.TRANS: calculate a relative step between notes based on semi-tones -msgid "semi-tone interval" +#: js/blocks/ActionBlocks.js:1151 +msgid "broadcast" msgstr "" -#: js/IntervalsBlocks.js:676 -msgid "The output of the example is: do, mi, sol, sol, ti, mi" +#: js/blocks/ActionBlocks.js:1208 +msgid "Each Start block is a separate voice." msgstr "" -#: js/IntervalsBlocks.js:735 -msgid "The Chord block calculates common chords." +#: js/blocks/ActionBlocks.js:1304 +msgid "It is often used for storing a phrase of music that is repeated." msgstr "" -#: js/IntervalsBlocks.js:737 -msgid "In the figure, we generate a C-major chord." +#: js/blocks/ActionBlocks.js:1495 +msgid "define temperament" msgstr "" -#: js/IntervalsBlocks.js:742 -msgid "chord" +#: js/blocks/BooleanBlocks.js:44 +msgid "The Not block is the logical not operator." msgstr "" -#: js/IntervalsBlocks.js:794 -msgid "The Ratio Interval block calculates an interval based on a ratio." -msgstr "" +#: js/blocks/BooleanBlocks.js:62 +msgid "not" +msgstr "否" -#: js/IntervalsBlocks.js:799 -msgid "ratio interval" +#: js/blocks/BooleanBlocks.js:134 +msgid "The And block is the logical and operator." msgstr "" -#: js/IntervalsBlocks.js:868 -msgid "In the figure, we add la to sol." +#: js/blocks/BooleanBlocks.js:152 +msgid "and" +msgstr "且" + +#: js/blocks/BooleanBlocks.js:218 +msgid "The Or block is the logical or operator." msgstr "" -#: js/IntervalsBlocks.js:924 -#.TRANS: define a custom mode -msgid "define mode" +#: js/blocks/BooleanBlocks.js:236 +msgid "or" +msgstr "或" + +#: js/blocks/BooleanBlocks.js:302 +msgid "The XOR block is the logical XOR operator." msgstr "" -#: js/IntervalsBlocks.js:977 -msgid "movable Do" +#: js/blocks/BooleanBlocks.js:320 +msgid "xor" msgstr "" -#: js/IntervalsBlocks.js:1028 -#.TRANS: mode length is the number of notes in the mode, e.g., 7 for major and minor scales; 12 for chromatic scales -msgid "mode length" +#: js/blocks/BooleanBlocks.js:808 +msgid "The Equal block returns True if the two numbers are equal." msgstr "" -#: js/IntervalsBlocks.js:1037 -msgid "The Mode length block is the number of notes in the current scale." +#: js/blocks/BooleanBlocks.js:909 +msgid "The Not-equal-to block returns True if the two numbers are not equal to each other." msgstr "" -#: js/IntervalsBlocks.js:1039 -msgid "Most Western scales have 7 notes." +#: js/blocks/BooleanBlocks.js:1008 +msgid "The Boolean block is used to specify true or false." msgstr "" -#: js/IntervalsBlocks.js:1088 -#.TRANS: the mode in music is 'major', 'minor', etc. -msgid "current mode" +#: js/blocks/BoxesBlocks.js:53 +#: js/blocks/BoxesBlocks.js:59 +msgid "The Add-to block is used to add to the value stored in a box." msgstr "" -#: js/IntervalsBlocks.js:1141 -#.TRANS: the key is a group of pitches with which a music composition is created -msgid "current key" +#: js/blocks/BoxesBlocks.js:61 +msgid "It can also be used with other blocks such as Color and Pen size." msgstr "" -#: js/IntervalsBlocks.js:1193 -#: js/IntervalsBlocks.js:1238 -#.TRANS: set the key and mode, e.g. C Major -msgid "set key" +#: js/blocks/BoxesBlocks.js:73 +msgid "add" msgstr "" -#: js/IntervalsBlocks.js:1247 -#: js/IntervalsBlocks.js:1253 -msgid "The Set key block is used to set the key and mode," +#: js/blocks/BoxesBlocks.js:75 +#: js/widgets/temperament.js:857 +msgid "to" msgstr "" -#: js/IntervalsBlocks.js:1253 -msgid "eg C Major" +#: js/blocks/BoxesBlocks.js:75 +#: js/blocks/BoxesBlocks.js:595 +#: js/blocks/HeapBlocks.js:544 +msgid "value1" msgstr "" -#: js/IntervalsBlocks.js:1266 -#: js/DictBlocks.js:215 -#: js/DictBlocks.js:216 -#: js/DictBlocks.js:289 -#: js/DictBlocks.js:290 -#: js/DictBlocks.js:357 -#: js/DictBlocks.js:430 -#: js/DictBlocks.js:431 -#.TRANS: key, e.g., C in C Major -msgid "key" +#: js/blocks/BoxesBlocks.js:118 +msgid "Block does not support incrementing." msgstr "" -#: js/ActionBlocks.js:58 -msgid "The Return block will return a value from an action." +#: js/blocks/BoxesBlocks.js:152 +msgid "The Add-1-to block adds one to the value stored in a box." msgstr "" -#: js/ActionBlocks.js:75 -msgid "return" +#: js/blocks/BoxesBlocks.js:163 +msgid "add 1 to" msgstr "" -#: js/ActionBlocks.js:128 -msgid "The Return to URL block will return a value to a webpage." +#: js/blocks/BoxesBlocks.js:211 +msgid "The Subtract-1-from block subtracts one from the value stored in a box." msgstr "" -#: js/ActionBlocks.js:145 -msgid "return to URL" +#: js/blocks/BoxesBlocks.js:222 +msgid "subtract 1 from" msgstr "" -#: js/ActionBlocks.js:233 -#: js/ActionBlocks.js:290 -#: js/ActionBlocks.js:501 -#: js/ActionBlocks.js:688 -msgid "The Calculate block returns a value calculated by an action." +#: js/blocks/BoxesBlocks.js:270 +#: js/blocks/BoxesBlocks.js:387 +msgid "The Box block returns the value stored in a box." msgstr "" -#: js/ActionBlocks.js:251 -#: js/ActionBlocks.js:517 -#: js/ActionBlocks.js:707 -msgid "calculate" +#: js/blocks/BoxesBlocks.js:500 +#: js/blocks/BoxesBlocks.js:576 +msgid "The Store in block will store a value in a box." msgstr "" -#: js/ActionBlocks.js:376 -#: js/ActionBlocks.js:593 -#: js/ActionBlocks.js:942 -#: js/ActionBlocks.js:1389 -#.TRANS: do is the do something or take an action. -msgid "The Do block is used to initiate an action." +#: js/blocks/BoxesBlocks.js:595 +#: js/blocks/EnsembleBlocks.js:391 +#: js/blocks/EnsembleBlocks.js:402 +msgid "name1" msgstr "" -#: js/ActionBlocks.js:390 -#: js/ActionBlocks.js:610 -#: js/ActionBlocks.js:959 -#: js/ActionBlocks.js:1048 -#: js/MeterBlocks.js:769 -msgid "do1" +#: js/blocks/BoxesBlocks.js:652 +msgid "The Box2 block returns the value stored in Box2." msgstr "" -#: js/ActionBlocks.js:390 -#: js/ActionBlocks.js:610 -#: js/ActionBlocks.js:959 -#: js/ActionBlocks.js:1048 -#: js/FlowBlocks.js:742 -#: js/FlowBlocks.js:822 -#: js/MeterBlocks.js:769 -msgid "do" +#: js/blocks/BoxesBlocks.js:703 +msgid "The Store in Box2 block is used to store a value in Box2." msgstr "" -#: js/ActionBlocks.js:791 -#: js/ActionBlocks.js:865 -msgid "The Arg block contains the value of an argument passed to an action." +#: js/blocks/BoxesBlocks.js:715 +msgid "store in box2" msgstr "" -#: js/ActionBlocks.js:806 -#: js/ActionBlocks.js:878 -msgid "arg" +#: js/blocks/BoxesBlocks.js:761 +msgid "The Box1 block returns the value stored in Box1." msgstr "" -#: js/ActionBlocks.js:836 -#: js/ActionBlocks.js:900 -#: js/ActionBlocks.js:908 -msgid "Invalid argument" +#: js/blocks/BoxesBlocks.js:812 +msgid "The Store in Box1 block is used to store a value in Box1." msgstr "" -#: js/ActionBlocks.js:944 -msgid "In the example, it is used with the One of block to choose a random phase." +#: js/blocks/BoxesBlocks.js:826 +msgid "store in box1" msgstr "" -#: js/ActionBlocks.js:1019 -#: js/ActionBlocks.js:1026 -msgid "The Listen block is used to listen for an event such as a mouse click." +#: js/blocks/DictBlocks.js:77 +msgid "show dictionary" msgstr "" -#: js/ActionBlocks.js:1028 -msgid "When the event happens, an action is taken." +#: js/blocks/DictBlocks.js:80 +#: js/blocks/DictBlocks.js:145 +#: js/blocks/DictBlocks.js:216 +#: js/blocks/DictBlocks.js:290 +#: js/blocks/ProgramBlocks.js:396 +#: js/blocks/ProgramBlocks.js:501 +#: js/blocks/ProgramBlocks.js:664 +msgid "My Dictionary" msgstr "" -#: js/ActionBlocks.js:1045 -msgid "on" +#: js/blocks/DictBlocks.js:129 +msgid "The Dictionary block returns a dictionary." msgstr "" -#: js/ActionBlocks.js:1048 -#: js/ActionBlocks.js:1049 -#: js/ActionBlocks.js:1153 -msgid "event" +#: js/blocks/DictBlocks.js:197 +#: js/blocks/DictBlocks.js:339 +msgid "The Get-dict block returns a value in the dictionary for a specified key." msgstr "" -#: js/ActionBlocks.js:1133 -msgid "The Broadcast block is used to trigger an event." +#: js/blocks/DictBlocks.js:212 +#: js/blocks/DictBlocks.js:354 +#.TRANS: retrieve a value from the dictionary with a given key +msgid "get value" msgstr "" -#: js/ActionBlocks.js:1151 -msgid "broadcast" +#: js/blocks/DictBlocks.js:215 +#: js/blocks/DictBlocks.js:216 +#: js/blocks/DictBlocks.js:289 +#: js/blocks/DictBlocks.js:290 +#: js/blocks/DictBlocks.js:357 +#: js/blocks/DictBlocks.js:430 +#: js/blocks/DictBlocks.js:431 +msgid "key2" msgstr "" -#: js/ActionBlocks.js:1208 -msgid "Each Start block is a separate voice." +#: js/blocks/DictBlocks.js:215 +#: js/blocks/DictBlocks.js:216 +#: js/blocks/DictBlocks.js:289 +#: js/blocks/DictBlocks.js:290 +#: js/blocks/DictBlocks.js:357 +#: js/blocks/DictBlocks.js:430 +#: js/blocks/DictBlocks.js:431 +#: js/blocks/IntervalsBlocks.js:1462 +#.TRANS: key, e.g., C in C Major +msgid "key" msgstr "" -#: js/ActionBlocks.js:1304 -msgid "It is often used for storing a phrase of music that is repeated." +#: js/blocks/DictBlocks.js:271 +#: js/blocks/DictBlocks.js:411 +msgid "The Set-dict block sets a value in the dictionary for a specified key." msgstr "" -#: js/ActionBlocks.js:1495 -msgid "define temperament" +#: js/blocks/DictBlocks.js:286 +#: js/blocks/DictBlocks.js:427 +#.TRANS: set a value in the dictionary for a given key +msgid "set value" msgstr "" -#: js/EnsembleBlocks.js:66 +#: js/blocks/EnsembleBlocks.js:66 msgid "mouse index heap" msgstr "" -#: js/EnsembleBlocks.js:68 +#: js/blocks/EnsembleBlocks.js:68 msgid "The Mouse index heap block returns a value in the heap at a specified location for a specified mouse." msgstr "" -#: js/EnsembleBlocks.js:77 -#: js/EnsembleBlocks.js:1080 +#: js/blocks/EnsembleBlocks.js:77 +#: js/blocks/EnsembleBlocks.js:1080 msgid "mouse name" msgstr "" -#: js/EnsembleBlocks.js:77 -#: js/EnsembleBlocks.js:92 -#: js/HeapBlocks.js:544 +#: js/blocks/EnsembleBlocks.js:77 +#: js/blocks/EnsembleBlocks.js:92 +#: js/blocks/HeapBlocks.js:544 #.TRANS: value1 is a numeric value (JAPANESE ONLY) msgid "index" msgstr "" -#: js/EnsembleBlocks.js:80 +#: js/blocks/EnsembleBlocks.js:80 msgid "turtle index heap" msgstr "" -#: js/EnsembleBlocks.js:82 +#: js/blocks/EnsembleBlocks.js:82 msgid "The Turtle index heap block returns a value in the heap at a specified location for a specified turtle." msgstr "" -#: js/EnsembleBlocks.js:90 -#: js/EnsembleBlocks.js:167 -#: js/EnsembleBlocks.js:230 -#: js/EnsembleBlocks.js:316 -#: js/EnsembleBlocks.js:362 -#: js/EnsembleBlocks.js:400 -#: js/EnsembleBlocks.js:454 -#: js/EnsembleBlocks.js:504 -#: js/EnsembleBlocks.js:550 -#: js/EnsembleBlocks.js:597 -#: js/EnsembleBlocks.js:651 -#: js/EnsembleBlocks.js:763 -#: js/EnsembleBlocks.js:854 -#: js/EnsembleBlocks.js:915 -#: js/EnsembleBlocks.js:955 -#: js/EnsembleBlocks.js:1219 -#: js/EnsembleBlocks.js:1293 +#: js/blocks/EnsembleBlocks.js:90 +#: js/blocks/EnsembleBlocks.js:167 +#: js/blocks/EnsembleBlocks.js:230 +#: js/blocks/EnsembleBlocks.js:316 +#: js/blocks/EnsembleBlocks.js:362 +#: js/blocks/EnsembleBlocks.js:400 +#: js/blocks/EnsembleBlocks.js:454 +#: js/blocks/EnsembleBlocks.js:504 +#: js/blocks/EnsembleBlocks.js:550 +#: js/blocks/EnsembleBlocks.js:597 +#: js/blocks/EnsembleBlocks.js:651 +#: js/blocks/EnsembleBlocks.js:763 +#: js/blocks/EnsembleBlocks.js:854 +#: js/blocks/EnsembleBlocks.js:915 +#: js/blocks/EnsembleBlocks.js:955 +#: js/blocks/EnsembleBlocks.js:1219 +#: js/blocks/EnsembleBlocks.js:1293 #.TRANS: Yertle is the name of a turtle. msgid "Yertle" msgstr "" -#: js/EnsembleBlocks.js:92 -#: js/EnsembleBlocks.js:1089 +#: js/blocks/EnsembleBlocks.js:92 +#: js/blocks/EnsembleBlocks.js:1089 msgid "turtle name" msgstr "" -#: js/EnsembleBlocks.js:122 -#: js/EnsembleBlocks.js:1197 -#: js/HeapBlocks.js:474 -#: js/HeapBlocks.js:572 +#: js/blocks/EnsembleBlocks.js:122 +#: js/blocks/EnsembleBlocks.js:1197 +#: js/blocks/HeapBlocks.js:474 +#: js/blocks/HeapBlocks.js:572 msgid "Index must be > 0." msgstr "" -#: js/EnsembleBlocks.js:127 -#: js/HeapBlocks.js:479 -#: js/HeapBlocks.js:577 +#: js/blocks/EnsembleBlocks.js:127 +#: js/blocks/HeapBlocks.js:479 +#: js/blocks/HeapBlocks.js:577 msgid "Maximum heap size is 1000." msgstr "" -#: js/EnsembleBlocks.js:145 +#: js/blocks/EnsembleBlocks.js:145 msgid "stop mouse" msgstr "" -#: js/EnsembleBlocks.js:147 +#: js/blocks/EnsembleBlocks.js:147 msgid "The Stop mouse block stops the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:158 +#: js/blocks/EnsembleBlocks.js:158 msgid "stop turtle" msgstr "" -#: js/EnsembleBlocks.js:160 +#: js/blocks/EnsembleBlocks.js:160 msgid "The Stop turtle block stops the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:184 -#: js/EnsembleBlocks.js:247 -#: js/EnsembleBlocks.js:413 -#: js/EnsembleBlocks.js:468 -#: js/EnsembleBlocks.js:706 -#: js/EnsembleBlocks.js:808 -#: js/EnsembleBlocks.js:870 -#: js/EnsembleBlocks.js:1190 -#: js/EnsembleBlocks.js:1253 +#: js/blocks/EnsembleBlocks.js:184 +#: js/blocks/EnsembleBlocks.js:247 +#: js/blocks/EnsembleBlocks.js:413 +#: js/blocks/EnsembleBlocks.js:468 +#: js/blocks/EnsembleBlocks.js:706 +#: js/blocks/EnsembleBlocks.js:808 +#: js/blocks/EnsembleBlocks.js:870 +#: js/blocks/EnsembleBlocks.js:1190 +#: js/blocks/EnsembleBlocks.js:1253 msgid "Cannot find mouse" msgstr "" -#: js/EnsembleBlocks.js:186 -#: js/EnsembleBlocks.js:249 -#: js/EnsembleBlocks.js:415 -#: js/EnsembleBlocks.js:470 -#: js/EnsembleBlocks.js:708 -#: js/EnsembleBlocks.js:810 -#: js/EnsembleBlocks.js:872 -#: js/EnsembleBlocks.js:1192 -#: js/EnsembleBlocks.js:1255 +#: js/blocks/EnsembleBlocks.js:186 +#: js/blocks/EnsembleBlocks.js:249 +#: js/blocks/EnsembleBlocks.js:415 +#: js/blocks/EnsembleBlocks.js:470 +#: js/blocks/EnsembleBlocks.js:708 +#: js/blocks/EnsembleBlocks.js:810 +#: js/blocks/EnsembleBlocks.js:872 +#: js/blocks/EnsembleBlocks.js:1192 +#: js/blocks/EnsembleBlocks.js:1255 msgid "Cannot find turtle" msgstr "" -#: js/EnsembleBlocks.js:206 +#: js/blocks/EnsembleBlocks.js:206 msgid "start mouse" msgstr "" -#: js/EnsembleBlocks.js:209 +#: js/blocks/EnsembleBlocks.js:209 msgid "The Start mouse block starts the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:220 +#: js/blocks/EnsembleBlocks.js:220 msgid "start turtle" msgstr "" -#: js/EnsembleBlocks.js:223 +#: js/blocks/EnsembleBlocks.js:223 msgid "The Start turtle block starts the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:256 +#: js/blocks/EnsembleBlocks.js:256 msgid "Mouse is already running." msgstr "" -#: js/EnsembleBlocks.js:258 +#: js/blocks/EnsembleBlocks.js:258 msgid "Turtle is already running." msgstr "" -#: js/EnsembleBlocks.js:282 +#: js/blocks/EnsembleBlocks.js:282 msgid "Cannot find start block" msgstr "" -#: js/EnsembleBlocks.js:292 +#: js/blocks/EnsembleBlocks.js:292 #.TRANS: pen color for this mouse msgid "mouse color" msgstr "" -#: js/EnsembleBlocks.js:294 +#: js/blocks/EnsembleBlocks.js:294 msgid "The Mouse color block returns the pen color of the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:306 +#: js/blocks/EnsembleBlocks.js:306 #.TRANS: pen color for this turtle msgid "turtle color" msgstr "" -#: js/EnsembleBlocks.js:308 +#: js/blocks/EnsembleBlocks.js:308 msgid "The Turtle color block returns the pen color of the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:338 +#: js/blocks/EnsembleBlocks.js:338 #.TRANS: heading (compass direction) for this mouse msgid "mouse heading" msgstr "" -#: js/EnsembleBlocks.js:340 +#: js/blocks/EnsembleBlocks.js:340 msgid "The Mouse heading block returns the heading of the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:352 +#: js/blocks/EnsembleBlocks.js:352 #.TRANS: heading (compass direction) for this turtle msgid "turtle heading" msgstr "" -#: js/EnsembleBlocks.js:354 +#: js/blocks/EnsembleBlocks.js:354 msgid "The Turtle heading block returns the heading of the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:384 -#: js/EnsembleBlocks.js:439 +#: js/blocks/EnsembleBlocks.js:384 +#: js/blocks/EnsembleBlocks.js:439 #.TRANS: set xy position for this mouse msgid "set mouse" msgstr "" -#: js/EnsembleBlocks.js:391 -#: js/EnsembleBlocks.js:402 -#: js/BoxesBlocks.js:595 -msgid "name1" -msgstr "" - -#: js/EnsembleBlocks.js:391 -#: js/EnsembleBlocks.js:402 -#: js/ProgramBlocks.js:881 -#: js/GraphicsBlocks.js:235 -#: js/GraphicsBlocks.js:313 -#: js/GraphicsBlocks.js:436 -#: js/GraphicsBlocks.js:487 -#: js/GraphicsBlocks.js:534 -#: js/GraphicsBlocks.js:750 +#: js/blocks/EnsembleBlocks.js:391 +#: js/blocks/EnsembleBlocks.js:402 +#: js/blocks/GraphicsBlocks.js:235 +#: js/blocks/GraphicsBlocks.js:313 +#: js/blocks/GraphicsBlocks.js:436 +#: js/blocks/GraphicsBlocks.js:487 +#: js/blocks/GraphicsBlocks.js:534 +#: js/blocks/GraphicsBlocks.js:750 +#: js/blocks/ProgramBlocks.js:881 msgid "x" msgstr "X座標" -#: js/EnsembleBlocks.js:391 -#: js/EnsembleBlocks.js:402 -#: js/ProgramBlocks.js:881 -#: js/GraphicsBlocks.js:149 -#: js/GraphicsBlocks.js:313 -#: js/GraphicsBlocks.js:436 -#: js/GraphicsBlocks.js:487 -#: js/GraphicsBlocks.js:534 -#: js/GraphicsBlocks.js:750 +#: js/blocks/EnsembleBlocks.js:391 +#: js/blocks/EnsembleBlocks.js:402 +#: js/blocks/GraphicsBlocks.js:149 +#: js/blocks/GraphicsBlocks.js:313 +#: js/blocks/GraphicsBlocks.js:436 +#: js/blocks/GraphicsBlocks.js:487 +#: js/blocks/GraphicsBlocks.js:534 +#: js/blocks/GraphicsBlocks.js:750 +#: js/blocks/ProgramBlocks.js:881 msgid "y" msgstr "Y座標" -#: js/EnsembleBlocks.js:395 -#: js/EnsembleBlocks.js:452 +#: js/blocks/EnsembleBlocks.js:395 +#: js/blocks/EnsembleBlocks.js:452 #.TRANS: set xy position for this turtle msgid "set turtle" msgstr "" -#: js/EnsembleBlocks.js:433 +#: js/blocks/EnsembleBlocks.js:433 msgid "The Set mouse block sends a stack of blocks to be run by the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:446 +#: js/blocks/EnsembleBlocks.js:446 msgid "The Set turtle block sends a stack of blocks to be run by the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:480 +#: js/blocks/EnsembleBlocks.js:480 #.TRANS: y position for this mouse msgid "mouse y" msgstr "滑鼠座標 y" -#: js/EnsembleBlocks.js:482 +#: js/blocks/EnsembleBlocks.js:482 msgid "The Y mouse block returns the Y position of the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:494 +#: js/blocks/EnsembleBlocks.js:494 #.TRANS: y position for this turtle msgid "turtle y" msgstr "" -#: js/EnsembleBlocks.js:496 +#: js/blocks/EnsembleBlocks.js:496 msgid "The Y turtle block returns the Y position of the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:526 +#: js/blocks/EnsembleBlocks.js:526 #.TRANS: x position for this mouse msgid "mouse x" msgstr "滑鼠座標 x" -#: js/EnsembleBlocks.js:528 +#: js/blocks/EnsembleBlocks.js:528 msgid "The X mouse block returns the X position of the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:540 +#: js/blocks/EnsembleBlocks.js:540 #.TRANS: x position for this turtle msgid "turtle x" msgstr "" -#: js/EnsembleBlocks.js:542 +#: js/blocks/EnsembleBlocks.js:542 msgid "The X turtle block returns the X position of the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:573 +#: js/blocks/EnsembleBlocks.js:573 #.TRANS: notes played by this mouse msgid "mouse notes played" msgstr "" -#: js/EnsembleBlocks.js:575 +#: js/blocks/EnsembleBlocks.js:575 msgid "The Mouse elapse notes block returns the number of notes played by the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:587 +#: js/blocks/EnsembleBlocks.js:587 #.TRANS: notes played by this turtle msgid "turtle notes played" msgstr "" -#: js/EnsembleBlocks.js:589 +#: js/blocks/EnsembleBlocks.js:589 msgid "The Turtle elapse notes block returns the number of notes played by the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:627 +#: js/blocks/EnsembleBlocks.js:627 #.TRANS: convert current note for this turtle to piano key (1-88) msgid "mouse pitch number" msgstr "" -#: js/EnsembleBlocks.js:629 +#: js/blocks/EnsembleBlocks.js:629 msgid "The Mouse pitch block returns the current pitch number being played by the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:641 +#: js/blocks/EnsembleBlocks.js:641 #.TRANS: convert current note for this turtle to piano key (1-88) msgid "turtle pitch number" msgstr "" -#: js/EnsembleBlocks.js:643 -msgid "The Turrle pitch block returns the current pitch number being played by the specified turtle." +#: js/blocks/EnsembleBlocks.js:643 +msgid "The Turtle pitch block returns the current pitch number being played by the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:747 -#: js/EnsembleBlocks.js:819 +#: js/blocks/EnsembleBlocks.js:747 +#: js/blocks/EnsembleBlocks.js:819 #.TRANS: note value is the duration of the note played by this mouse msgid "mouse note value" msgstr "" -#: js/EnsembleBlocks.js:757 +#: js/blocks/EnsembleBlocks.js:757 #.TRANS: note value is the duration of the note played by this turtle msgid "turtle note value" msgstr "" -#: js/EnsembleBlocks.js:830 +#: js/blocks/EnsembleBlocks.js:830 #.TRANS: sync is short for synchronization msgid "mouse sync" msgstr "" -#: js/EnsembleBlocks.js:832 +#: js/blocks/EnsembleBlocks.js:832 msgid "The Mouse sync block aligns the beat count between mice." msgstr "" -#: js/EnsembleBlocks.js:844 +#: js/blocks/EnsembleBlocks.js:844 #.TRANS: sync is short for synchronization msgid "turtle sync" msgstr "" -#: js/EnsembleBlocks.js:846 +#: js/blocks/EnsembleBlocks.js:846 msgid "The Turtle sync block aligns the beat count between turtles." msgstr "" -#: js/EnsembleBlocks.js:887 +#: js/blocks/EnsembleBlocks.js:887 msgid "The Found mouse block will return true if the specified mouse can be found." msgstr "" -#: js/EnsembleBlocks.js:893 +#: js/blocks/EnsembleBlocks.js:893 msgid "found mouse" msgstr "" -#: js/EnsembleBlocks.js:903 +#: js/blocks/EnsembleBlocks.js:903 msgid "The Found turtle block will return true if the specified turtle can be found." msgstr "" -#: js/EnsembleBlocks.js:909 +#: js/blocks/EnsembleBlocks.js:909 msgid "found turtle" msgstr "" -#: js/EnsembleBlocks.js:932 +#: js/blocks/EnsembleBlocks.js:932 msgid "new mouse" msgstr "" -#: js/EnsembleBlocks.js:934 +#: js/blocks/EnsembleBlocks.js:934 msgid "The New mouse block will create a new mouse." msgstr "" -#: js/EnsembleBlocks.js:945 +#: js/blocks/EnsembleBlocks.js:945 msgid "new turtle" msgstr "" -#: js/EnsembleBlocks.js:947 +#: js/blocks/EnsembleBlocks.js:947 msgid "The New turtle block will create a new turtle." msgstr "" -#: js/EnsembleBlocks.js:1011 +#: js/blocks/EnsembleBlocks.js:1011 msgid "set mouse color" msgstr "" -#: js/EnsembleBlocks.js:1014 +#: js/blocks/EnsembleBlocks.js:1014 msgid "The Set-mouse-color block is used to set the color of a mouse." msgstr "" -#: js/EnsembleBlocks.js:1020 +#: js/blocks/EnsembleBlocks.js:1020 msgid "set turtle color" msgstr "" -#: js/EnsembleBlocks.js:1023 +#: js/blocks/EnsembleBlocks.js:1023 msgid "The Set-turtle-color block is used to set the color of a turtle." msgstr "" -#: js/EnsembleBlocks.js:1083 +#: js/blocks/EnsembleBlocks.js:1083 msgid "The Mouse-name block returns the name of a mouse." msgstr "" -#: js/EnsembleBlocks.js:1092 +#: js/blocks/EnsembleBlocks.js:1092 msgid "The Turtle-name block returns the name of a turtle." msgstr "" -#: js/EnsembleBlocks.js:1115 +#: js/blocks/EnsembleBlocks.js:1115 msgid "mouse count" msgstr "" -#: js/EnsembleBlocks.js:1118 +#: js/blocks/EnsembleBlocks.js:1118 msgid "The Mouse-count block returns the number of mice." msgstr "" -#: js/EnsembleBlocks.js:1124 +#: js/blocks/EnsembleBlocks.js:1124 msgid "turtle count" msgstr "" -#: js/EnsembleBlocks.js:1127 +#: js/blocks/EnsembleBlocks.js:1127 msgid "The Turtle-count block returns the number of turtles." msgstr "" -#: js/EnsembleBlocks.js:1149 +#: js/blocks/EnsembleBlocks.js:1149 msgid "nth mouse name" msgstr "" -#: js/EnsembleBlocks.js:1152 +#: js/blocks/EnsembleBlocks.js:1152 msgid "The Nth-Mouse name block returns the name of the nth mouse." msgstr "" -#: js/EnsembleBlocks.js:1158 +#: js/blocks/EnsembleBlocks.js:1158 msgid "nth turtle name" msgstr "" -#: js/EnsembleBlocks.js:1161 +#: js/blocks/EnsembleBlocks.js:1161 msgid "The Nth-Turtle name block returns the name of the nth turtle." msgstr "" -#: js/EnsembleBlocks.js:1205 -#: js/EnsembleBlocks.js:1265 +#: js/blocks/EnsembleBlocks.js:1205 +#: js/blocks/EnsembleBlocks.js:1265 msgid "set name" msgstr "" -#: js/EnsembleBlocks.js:1214 -#: js/EnsembleBlocks.js:1221 +#: js/blocks/EnsembleBlocks.js:1214 +#: js/blocks/EnsembleBlocks.js:1221 msgid "source" msgstr "" -#: js/EnsembleBlocks.js:1214 -#: js/EnsembleBlocks.js:1221 +#: js/blocks/EnsembleBlocks.js:1214 +#: js/blocks/EnsembleBlocks.js:1221 msgid "target" msgstr "" -#: js/EnsembleBlocks.js:1271 +#: js/blocks/EnsembleBlocks.js:1271 msgid "The Set-name block is used to name a mouse." msgstr "" -#: js/EnsembleBlocks.js:1284 +#: js/blocks/EnsembleBlocks.js:1284 msgid "The Set-name block is used to name a turtle." msgstr "" -#: js/BooleanBlocks.js:44 -msgid "The Not block is the logical not operator." -msgstr "" - -#: js/BooleanBlocks.js:62 -msgid "not" -msgstr "否" - -#: js/BooleanBlocks.js:134 -msgid "The And block is the logical and operator." -msgstr "" - -#: js/BooleanBlocks.js:152 -msgid "and" -msgstr "且" - -#: js/BooleanBlocks.js:218 -msgid "The Or block is the logical or operator." -msgstr "" - -#: js/BooleanBlocks.js:236 -msgid "or" -msgstr "或" - -#: js/BooleanBlocks.js:302 -msgid "The XOR block is the logical XOR operator." -msgstr "" - -#: js/BooleanBlocks.js:320 -msgid "xor" -msgstr "" - -#: js/BooleanBlocks.js:808 -msgid "The Equal block returns True if the two numbers are equal." -msgstr "" - -#: js/BooleanBlocks.js:909 -msgid "The Not-equal-to block returns True if the two numbers are not equal to each other." -msgstr "" - -#: js/BooleanBlocks.js:1008 -msgid "The Boolean block is used to specify true or false." -msgstr "" - -#: js/MediaBlocks.js:35 -#.TRANS: right side of the screen -msgid "right (screen)" -msgstr "" - -#: js/MediaBlocks.js:45 -#: js/MediaBlocks.js:56 -msgid "The Right block returns the position of the right of the canvas." -msgstr "" - -#: js/MediaBlocks.js:97 -#.TRANS: left side of the screen -msgid "left (screen)" -msgstr "" - -#: js/MediaBlocks.js:107 -#: js/MediaBlocks.js:118 -msgid "The Left block returns the position of the left of the canvas." -msgstr "" - -#: js/MediaBlocks.js:158 -msgid "top (screen)" -msgstr "" - -#: js/MediaBlocks.js:168 -#: js/MediaBlocks.js:179 -msgid "The Top block returns the position of the top of the canvas." -msgstr "" - -#: js/MediaBlocks.js:219 -msgid "bottom (screen)" -msgstr "" - -#: js/MediaBlocks.js:229 -#: js/MediaBlocks.js:240 -msgid "The Bottom block returns the position of the bottom of the canvas." -msgstr "" - -#: js/MediaBlocks.js:282 -msgid "width" +#: js/blocks/ExtrasBlocks.js:33 +msgid "fraction" msgstr "" -#: js/MediaBlocks.js:291 -msgid "The Width block returns the width of the canvas." +#: js/blocks/ExtrasBlocks.js:36 +msgid "Convert a float to a fraction" msgstr "" -#: js/MediaBlocks.js:325 -msgid "height" +#: js/blocks/ExtrasBlocks.js:93 +msgid "save as ABC" msgstr "" -#: js/MediaBlocks.js:334 -msgid "The Height block returns the height of the canvas." +#: js/blocks/ExtrasBlocks.js:96 +#: js/blocks/ExtrasBlocks.js:132 +#: js/blocks/ExtrasBlocks.js:168 +msgid "title" msgstr "" -#: js/MediaBlocks.js:369 -#.TRANS: stops playback of an audio recording -msgid "stop play" +#: js/blocks/ExtrasBlocks.js:129 +msgid "save as Lilypond" msgstr "" -#: js/MediaBlocks.js:404 -#.TRANS: Erases the images and text -msgid "erase media" +#: js/blocks/ExtrasBlocks.js:165 +msgid "save as SVG" msgstr "" -#: js/MediaBlocks.js:409 -msgid "The Erase Media block erases text and images." +#: js/blocks/ExtrasBlocks.js:216 +msgid "no background" msgstr "" -#: js/MediaBlocks.js:439 -#.TRANS: play an audio recording -msgid "play back" +#: js/blocks/ExtrasBlocks.js:219 +msgid "The No background block eliminates the background from the saved SVG output." msgstr "" -#: js/MediaBlocks.js:487 -msgid "speak" -msgstr "聽我說" +#: js/blocks/ExtrasBlocks.js:247 +msgid "show blocks" +msgstr "顯示區塊" -#: js/MediaBlocks.js:495 -msgid "The Speak block outputs to the text-to-speech synthesizer" +#: js/blocks/ExtrasBlocks.js:249 +msgid "The Show blocks block shows the blocks." msgstr "" -#: js/MediaBlocks.js:546 -msgid "camera" -msgstr "" +#: js/blocks/ExtrasBlocks.js:274 +msgid "hide blocks" +msgstr "隱藏區塊" -#: js/MediaBlocks.js:551 -msgid "The Camera block connects a webcam to the Show block." +#: js/blocks/ExtrasBlocks.js:276 +msgid "The Hide blocks block hides the blocks." msgstr "" -#: js/MediaBlocks.js:574 -msgid "video" +#: js/blocks/ExtrasBlocks.js:305 +#: js/blocks/ExtrasBlocks.js:338 +msgid "The Space block is used to add space between blocks." msgstr "" -#: js/MediaBlocks.js:579 -msgid "The Video block selects video for use with the Show block." -msgstr "" +#: js/blocks/ExtrasBlocks.js:376 +msgid "wait" +msgstr "等待" -#: js/MediaBlocks.js:607 -msgid "The Open file block opens a file for use with the Show block." +#: js/blocks/ExtrasBlocks.js:379 +msgid "The Wait block pauses the program for a specified number of seconds." msgstr "" -#: js/MediaBlocks.js:645 -msgid "stop media" -msgstr "" +#: js/blocks/ExtrasBlocks.js:433 +#: plugins/facebook.rtp:30 +msgid "comment" +msgstr "註記" -#: js/MediaBlocks.js:650 -msgid "The Stop media block stops audio or video playback." -msgstr "" +#: js/blocks/ExtrasBlocks.js:469 +msgid "print" +msgstr "顯示" -#: js/MediaBlocks.js:679 -#: js/PitchBlocks.js:1539 -#: js/phrasemaker.js:822 -#: js/musickeyboard.js:1654 -#.TRANS: a measure of frequency: one cycle per second -msgid "hertz" +#: js/blocks/ExtrasBlocks.js:476 +msgid "The Print block displays text at the top of the screen." msgstr "" -#: js/MediaBlocks.js:692 -msgid "duration (ms)" +#: js/blocks/ExtrasBlocks.js:582 +msgid "display grid" msgstr "" -#: js/MediaBlocks.js:728 -#.TRANS: translate a note into hertz, e.g., A4 -> 440HZ -msgid "note to frequency" +#: js/blocks/ExtrasBlocks.js:587 +msgid "The Display Grid Block changes the grid type" msgstr "" -#: js/MediaBlocks.js:736 -msgid "The To frequency block converts a pitch name and octave to Hertz." +#: js/blocks/ExtrasBlocks.js:689 +#: js/blocks/ExtrasBlocks.js:708 +#: js/blocks/ExtrasBlocks.js:731 +#: js/blocks/ExtrasBlocks.js:754 +#: js/blocks/ExtrasBlocks.js:772 +#: js/blocks/ExtrasBlocks.js:791 +#: js/blocks/ExtrasBlocks.js:810 +#: js/blocks/ExtrasBlocks.js:829 +msgid "unknown" msgstr "" -#: js/MediaBlocks.js:746 -#: js/PitchBlocks.js:656 -#: js/PitchBlocks.js:932 -#: js/PitchBlocks.js:1827 -#.TRANS: name2 is name as in name of pitch (JAPANESE ONLY) -msgid "name2" +#: js/blocks/FlowBlocks.js:41 +msgid "The Backward block runs code in reverse order (Musical retrograde)." msgstr "" -#: js/MediaBlocks.js:812 -msgid "The Avatar block is used to change the appearance of the mouse." +#: js/blocks/FlowBlocks.js:48 +msgid "backward" msgstr "" -#: js/MediaBlocks.js:819 -msgid "The Avatar block is used to change the appearance of the turtle." +#: js/blocks/FlowBlocks.js:124 +msgid "The Duplicate block will run each block multiple times." msgstr "" -#: js/MediaBlocks.js:831 -#: js/MediaBlocks.js:891 -#.TRANS: a media object -msgid "size" +#: js/blocks/FlowBlocks.js:136 +msgid "duplicate" msgstr "" -#: js/MediaBlocks.js:831 -msgid "image" -msgstr "圖片" +#: js/blocks/FlowBlocks.js:334 +msgid "The Default block is used inside of a Switch to define the default action." +msgstr "" -#: js/MediaBlocks.js:880 -msgid "The Show block is used to display text or images on the canvas." +#: js/blocks/FlowBlocks.js:342 +msgid "default" msgstr "" -#: js/MediaBlocks.js:888 -#.TRANS: show1 is show as in display an image or text on the screen. -msgid "show1" +#: js/blocks/FlowBlocks.js:361 +#: js/blocks/FlowBlocks.js:418 +msgid "The Case Block must be used inside of a Switch Block." msgstr "" -#: js/MediaBlocks.js:891 -msgid "obj" +#: js/blocks/FlowBlocks.js:389 +msgid "The Case block is used inside of a Switch to define matches." msgstr "" -#: js/MediaBlocks.js:938 -msgid "The Media block is used to import an image." +#: js/blocks/FlowBlocks.js:397 +msgid "case" msgstr "" -#: js/MediaBlocks.js:973 -msgid "The Text block holds a text string." +#: js/blocks/FlowBlocks.js:446 +msgid "The Switch block will run the code in the matching Case." msgstr "" -#: js/ProgramBlocks.js:33 -msgid "The Load-heap-from-app block loads the heap from a web page." +#: js/blocks/FlowBlocks.js:454 +msgid "switch" msgstr "" -#: js/ProgramBlocks.js:44 -#.TRANS: load the heap contents from a URL -msgid "load heap from App" +#: js/blocks/FlowBlocks.js:595 +msgid "The Stop block will stop a loop" msgstr "" -#: js/ProgramBlocks.js:95 -msgid "Error parsing JSON data:" -msgstr "解析JSON数据时出错" +#: js/blocks/FlowBlocks.js:597 +msgid "Forever, Repeat, While, or Until." +msgstr "" -#: js/ProgramBlocks.js:100 -msgid "404: Page not found" -msgstr "找不到网页" +#: js/blocks/FlowBlocks.js:604 +#: js/widgets/timbre.js:417 +#: js/widgets/timbre.js:419 +#: js/widgets/musickeyboard.js:819 +#: js/widgets/musickeyboard.js:821 +#: js/widgets/phrasemaker.js:4202 +#: plugins/rodi.rtp:29 +#: plugins/rodi.rtp:73 +#: plugins/rodi.rtp:413 +msgid "stop" +msgstr "停止" -#: js/ProgramBlocks.js:133 -msgid "The Save-heap-to-app block saves the heap to a web page." +#: js/blocks/FlowBlocks.js:653 +msgid "The Waitfor block will wait until the condition is true." msgstr "" -#: js/ProgramBlocks.js:144 -#.TRANS: save the heap contents to a URL -msgid "save heap to App" +#: js/blocks/FlowBlocks.js:661 +msgid "wait for" msgstr "" -#: js/ProgramBlocks.js:189 -msgid "Cannot find a valid heap for" +#: js/blocks/FlowBlocks.js:732 +msgid "The Until block will repeat until the condition is true." msgstr "" -#: js/ProgramBlocks.js:206 -msgid "The Load-heap block loads the heap from a file." -msgstr "" +#: js/blocks/FlowBlocks.js:740 +msgid "until" +msgstr "直到" -#: js/ProgramBlocks.js:217 -#.TRANS: load the heap from a file -msgid "load heap" +#: js/blocks/FlowBlocks.js:742 +#: js/blocks/FlowBlocks.js:822 +msgid "do2" msgstr "" -#: js/ProgramBlocks.js:270 -msgid "The file you selected does not contain a valid heap." +#: js/blocks/FlowBlocks.js:812 +msgid "The While block will repeat while the condition is true." msgstr "" -#: js/ProgramBlocks.js:275 -msgid "The loadHeap block needs a loadFile block." -msgstr "" +#: js/blocks/FlowBlocks.js:820 +msgid "while" +msgstr "同時間" -#: js/ProgramBlocks.js:291 -msgid "The Set-heap block loads the heap." +#: js/blocks/FlowBlocks.js:903 +#: js/blocks/FlowBlocks.js:968 +#: js/blocks/FlowBlocks.js:979 +msgid "In this example if the mouse button is pressed a snare drum will play." msgstr "" -#: js/ProgramBlocks.js:299 -#: js/HeapBlocks.js:539 -#.TRANS: load the heap from a JSON encoding -msgid "set heap" -msgstr "" +#: js/blocks/FlowBlocks.js:925 +#: js/blocks/FlowBlocks.js:988 +msgid "if" +msgstr "若" -#: js/ProgramBlocks.js:340 -msgid "The block you selected does not contain a valid heap." -msgstr "" +#: js/blocks/FlowBlocks.js:927 +#: js/blocks/FlowBlocks.js:990 +msgid "then" +msgstr "則" -#: js/ProgramBlocks.js:343 -msgid "The Set heap block needs a heap." -msgstr "" +#: js/blocks/FlowBlocks.js:927 +msgid "else" +msgstr "否則" -#: js/ProgramBlocks.js:360 -msgid "The Load-dictionary block loads a dictionary from a file." +#: js/blocks/FlowBlocks.js:1025 +msgid "The Forever block will repeat the contained blocks forever." msgstr "" -#: js/ProgramBlocks.js:372 -#.TRANS: load a dictionary from a file -msgid "load dictionary" -msgstr "" +#: js/blocks/FlowBlocks.js:1037 +msgid "forever" +msgstr "持續執行" -#: js/ProgramBlocks.js:390 -#: js/ProgramBlocks.js:658 -#: js/ToneBlocks.js:1025 -msgid "file" +#: js/blocks/FlowBlocks.js:1073 +msgid "The Repeat block will repeat the contained blocks." msgstr "" -#: js/ProgramBlocks.js:396 -#: js/ProgramBlocks.js:501 -#: js/ProgramBlocks.js:664 -#: js/DictBlocks.js:80 -#: js/DictBlocks.js:145 -#: js/DictBlocks.js:216 -#: js/DictBlocks.js:290 -msgid "My Dictionary" +#: js/blocks/FlowBlocks.js:1075 +msgid "In this example the note will be played 4 times." msgstr "" -#: js/ProgramBlocks.js:444 -msgid "The file you selected does not contain a valid dictionary." -msgstr "" +#: js/blocks/FlowBlocks.js:1083 +msgid "repeat" +msgstr "重複" -#: js/ProgramBlocks.js:449 -msgid "The load dictionary block needs a load file block." +#: js/blocks/FlowBlocks.js:1123 +msgid "duplicate factor" msgstr "" -#: js/ProgramBlocks.js:466 -msgid "The Set-dictionary block loads a dictionary." +#: js/blocks/HeapBlocks.js:49 +msgid "The Heap block returns the heap." msgstr "" -#: js/ProgramBlocks.js:477 -#.TRANS: load a dictionary from a JSON -msgid "set dictionary" -msgstr "" +#: js/blocks/HeapBlocks.js:133 +msgid "show heap" +msgstr "顯示堆疊" -#: js/ProgramBlocks.js:546 -msgid "The block you selected does not contain a valid dictionary." +#: js/blocks/HeapBlocks.js:181 +msgid "The Heap-length block returns the length of the heap." msgstr "" -#: js/ProgramBlocks.js:550 -msgid "The set dictionary block needs a dictionary." +#: js/blocks/HeapBlocks.js:195 +msgid "heap length" msgstr "" -#: js/ProgramBlocks.js:567 -msgid "The Save-heap block saves the heap to a file." +#: js/blocks/HeapBlocks.js:254 +msgid "The Heap-empty? block returns true if the heap is empty." msgstr "" -#: js/ProgramBlocks.js:578 -#.TRANS: save the heap to a file -msgid "save heap" +#: js/blocks/HeapBlocks.js:268 +#.TRANS: Is the heap empty? +msgid "heap empty?" msgstr "" -#: js/ProgramBlocks.js:629 -msgid "The Save-dictionary block saves a dictionary to a file." +#: js/blocks/HeapBlocks.js:317 +msgid "The Empty-heap block empties the heap." msgstr "" -#: js/ProgramBlocks.js:640 -#.TRANS: save a dictionary to a file -msgid "save dictionary" +#: js/blocks/HeapBlocks.js:327 +#: js/blocks/HeapBlocks.js:647 +#.TRANS: empty the heap +msgid "empty heap" +msgstr "清除堆疊" + +#: js/blocks/HeapBlocks.js:371 +msgid "The Reverse-heap block reverses the order of the heap." msgstr "" -#: js/ProgramBlocks.js:720 -msgid "The Open palette block opens a palette." +#: js/blocks/HeapBlocks.js:384 +#.TRANS: reverse the order of the heap +msgid "reverse heap" msgstr "" -#: js/ProgramBlocks.js:727 -msgid "open palette" +#: js/blocks/HeapBlocks.js:428 +msgid "The Index-heap block returns a value in the heap at a specified location." msgstr "" -#: js/ProgramBlocks.js:785 -msgid "The Delete block block removes a block." +#: js/blocks/HeapBlocks.js:443 +#.TRANS: retrieve a value from the heap at index position in the heap +msgid "index heap" msgstr "" -#: js/ProgramBlocks.js:797 -#.TRANS: Move this block to the trash. -msgid "delete block" +#: js/blocks/HeapBlocks.js:523 +msgid "The Set-heap entry block sets a value in he heap at the specified location." msgstr "" -#: js/ProgramBlocks.js:861 -msgid "The Move block block moves a block." +#: js/blocks/HeapBlocks.js:539 +#: js/blocks/ProgramBlocks.js:299 +#.TRANS: load the heap from a JSON encoding +msgid "set heap" msgstr "" -#: js/ProgramBlocks.js:869 -#.TRANS: Move the position of a block on the screen. -msgid "move block" +#: js/blocks/HeapBlocks.js:619 +msgid "The Pop block removes the value at the top of the heap." msgstr "" -#: js/ProgramBlocks.js:881 -#: js/ProgramBlocks.js:1048 -msgid "block number" +#: js/blocks/HeapBlocks.js:633 +#.TRANS: pop a value off the top of the heap +msgid "pop" +msgstr "取出堆疊" + +#: js/blocks/HeapBlocks.js:680 +msgid "The Push block adds a value to the top of the heap." msgstr "" -#: js/ProgramBlocks.js:935 -#.TRANS: Run program beginning at this block. -msgid "run block" +#: js/blocks/HeapBlocks.js:696 +#.TRANS: push a value onto the top of the heap +msgid "push" +msgstr "存入堆疊" + +#: js/blocks/IntervalsBlocks.js:45 +msgid "set temperament" msgstr "" -#: js/ProgramBlocks.js:1025 -msgid "The Dock block block connections two blocks." +#: js/blocks/IntervalsBlocks.js:63 +#: js/blocks/MediaBlocks.js:746 +#: js/blocks/PitchBlocks.js:657 +#: js/blocks/PitchBlocks.js:935 +#: js/blocks/PitchBlocks.js:974 +#: js/blocks/PitchBlocks.js:1007 +#: js/blocks/PitchBlocks.js:1194 +#: js/blocks/PitchBlocks.js:1717 +#: js/blocks/PitchBlocks.js:1758 +#: js/blocks/PitchBlocks.js:1866 +#: js/blocks/ToneBlocks.js:1025 +#: js/turtleactions/IntervalsActions.js:114 +#.TRANS: adjusts the shift up or down by one octave (twelve half-steps in the interval between two notes, one having twice or half the frequency in Hz of the other.) +msgid "octave" msgstr "" -#: js/ProgramBlocks.js:1036 -#.TRANS: We can connect a block to another block. -msgid "connect blocks" +#: js/blocks/IntervalsBlocks.js:99 +msgid "The Temperament name block is used to select a tuning method." msgstr "" -#: js/ProgramBlocks.js:1048 -msgid "target block" +#: js/blocks/IntervalsBlocks.js:161 +msgid "doubly" msgstr "" -#: js/ProgramBlocks.js:1048 -msgid "connection number" +#: js/blocks/IntervalsBlocks.js:166 +msgid "The Doubly block will double the size of an interval." msgstr "" -#: js/ProgramBlocks.js:1140 -msgid "The Make block block creates a new block." +#: js/blocks/IntervalsBlocks.js:262 +msgid "interval number" msgstr "" -#: js/ProgramBlocks.js:1152 -#.TRANS: Create a new block -msgid "make block" +#: js/blocks/IntervalsBlocks.js:317 +msgid "current interval" msgstr "" -#: js/ProgramBlocks.js:1186 -#: js/ProgramBlocks.js:1227 -#: js/RhythmBlocks.js:1128 -#: js/PitchBlocks.js:972 -#: js/PitchBlocks.js:1005 -#: js/temperament.js:340 -#: js/temperament.js:362 -#: js/temperament.js:372 -#: js/temperament.js:484 -#: js/status.js:190 -#: plugins/rodi.rtp:192 -#.TRANS: a musical note consisting of pitch and duration -msgid "note" -msgstr "音符" +#: js/blocks/IntervalsBlocks.js:387 +#.TRANS: measure the distance between two pitches in semi-tones +msgid "semi-tone interval measure" +msgstr "" -#: js/ProgramBlocks.js:1285 -msgid "Cannot find block" +#: js/blocks/IntervalsBlocks.js:454 +#: js/blocks/IntervalsBlocks.js:570 +msgid "You must use two pitch blocks when measuring an interval." msgstr "" -#: js/ProgramBlocks.js:1304 -#: js/ProgramBlocks.js:1313 -msgid "Warning: block argument type mismatch" +#: js/blocks/IntervalsBlocks.js:496 +msgid "The Scalar interval block measures the distance between two notes in the current key and mode." msgstr "" -#: js/ProgramBlocks.js:1347 -msgid "The Open project block is used to open a project from a web page." +#: js/blocks/IntervalsBlocks.js:502 +#.TRANS: measure the distance between two pitches in steps of musical scale +msgid "scalar interval measure" msgstr "" -#: js/ProgramBlocks.js:1357 -msgid "open project" +#: js/blocks/IntervalsBlocks.js:678 +msgid "In the figure, we add sol# to sol." msgstr "" -#: js/ProgramBlocks.js:1410 -msgid "Please enter a valid URL." +#: js/blocks/IntervalsBlocks.js:684 +#: js/blocks/OrnamentBlocks.js:220 +#.TRANS: calculate a relative step between notes based on semi-tones +msgid "semi-tone interval" msgstr "" -#: js/DrumBlocks.js:59 -msgid "The Noise name block is used to select a noise synthesizer." +#: js/blocks/IntervalsBlocks.js:733 +msgid "The output of the example is: do, mi, sol, sol, ti, mi" msgstr "" -#: js/DrumBlocks.js:102 -msgid "The Drum name block is used to select a drum." +#: js/blocks/IntervalsBlocks.js:740 +#: js/blocks/WidgetBlocks.js:768 +msgid "arpeggio" msgstr "" -#: js/DrumBlocks.js:146 -msgid "The Effects name block is used to select a sound effect." +#: js/blocks/IntervalsBlocks.js:931 +msgid "The Chord block calculates common chords." msgstr "" -#: js/DrumBlocks.js:163 -msgid "noise" +#: js/blocks/IntervalsBlocks.js:933 +msgid "In the figure, we generate a C-major chord." msgstr "" -#: js/DrumBlocks.js:177 -msgid "The Play noise block will generate white, pink, or brown noise." +#: js/blocks/IntervalsBlocks.js:938 +msgid "chord" msgstr "" -#: js/DrumBlocks.js:191 -#: js/musicutils.js:752 -#: js/synthutils.js:47 -#.TRANS: white noise synthesizer -msgid "white noise" +#: js/blocks/IntervalsBlocks.js:990 +msgid "The Ratio Interval block calculates an interval based on a ratio." msgstr "" -#: js/DrumBlocks.js:326 -msgid "Replace every instance of a pitch with a drum sound." +#: js/blocks/IntervalsBlocks.js:995 +msgid "ratio interval" msgstr "" -#: js/DrumBlocks.js:337 -#.TRANS: map a pitch to a drum sound -msgid "map pitch to drum" +#: js/blocks/IntervalsBlocks.js:1064 +msgid "In the figure, we add la to sol." msgstr "" -#: js/DrumBlocks.js:404 -msgid "In the example above, a kick drum sound will be played instead of sol." +#: js/blocks/IntervalsBlocks.js:1120 +#.TRANS: define a custom mode +msgid "define mode" msgstr "" -#: js/DrumBlocks.js:416 -#.TRANS: set the current drum sound for playback -msgid "set drum" +#: js/blocks/IntervalsBlocks.js:1173 +msgid "movable Do" msgstr "" -#: js/DrumBlocks.js:460 -msgid "sound effect" +#: js/blocks/IntervalsBlocks.js:1224 +#.TRANS: mode length is the number of notes in the mode, e.g., 7 for major and minor scales; 12 for chromatic scales +msgid "mode length" msgstr "" -#: js/DrumBlocks.js:498 -msgid "You can use multiple Drum blocks within a Note block." +#: js/blocks/IntervalsBlocks.js:1233 +msgid "The Mode length block is the number of notes in the current scale." msgstr "" -#: js/RhythmBlocks.js:182 -#: js/RhythmBlocks.js:1086 -#: js/RhythmBlocks.js:1162 -msgid "Note value must be greater than 0." +#: js/blocks/IntervalsBlocks.js:1235 +msgid "Most Western scales have 7 notes." msgstr "" -#: js/RhythmBlocks.js:215 -#: js/RhythmBlocks.js:278 -#: js/RhythmBlocks.js:350 -#.TRANS: swing is a rhythmic variation that emphasises the offbeat -msgid "swing" +#: js/blocks/IntervalsBlocks.js:1284 +#.TRANS: the mode in music is 'major', 'minor', etc. +msgid "current mode" msgstr "" -#: js/RhythmBlocks.js:355 -#.TRANS: the amount to shift to the offbeat note -msgid "swing value" +#: js/blocks/IntervalsBlocks.js:1337 +#.TRANS: the key is a group of pitches with which a music composition is created +msgid "current key" msgstr "" -#: js/RhythmBlocks.js:419 -msgid "The Skip notes block will cause notes to be skipped." +#: js/blocks/IntervalsBlocks.js:1389 +#: js/blocks/IntervalsBlocks.js:1434 +#.TRANS: set the key and mode, e.g. C Major +msgid "set key" msgstr "" -#: js/RhythmBlocks.js:427 -#.TRANS: substitute rests on notes being skipped -msgid "skip notes" +#: js/blocks/IntervalsBlocks.js:1443 +#: js/blocks/IntervalsBlocks.js:1449 +msgid "The Set key block is used to set the key and mode," msgstr "" -#: js/RhythmBlocks.js:489 -#.TRANS: speed up note duration by some factor, e.g. convert 1/4 to 1/8 notes by using a factor of 2 -msgid "multiply note value" +#: js/blocks/IntervalsBlocks.js:1449 +msgid "eg C Major" msgstr "" -#: js/RhythmBlocks.js:542 -msgid "The Tie block works on pairs of notes, combining them into one note." +#: js/blocks/MediaBlocks.js:35 +#.TRANS: right side of the screen +msgid "right (screen)" msgstr "" -#: js/RhythmBlocks.js:550 -#.TRANS: tie notes together into one longer note -msgid "tie" +#: js/blocks/MediaBlocks.js:45 +#: js/blocks/MediaBlocks.js:56 +msgid "The Right block returns the position of the right of the canvas." msgstr "" -#: js/RhythmBlocks.js:591 -#: js/RhythmBlocks.js:671 -#.TRANS: a dotted note is played for 1.5x its value, e.g., 1/8. --> 3/16 -msgid "dot" +#: js/blocks/MediaBlocks.js:97 +#.TRANS: left side of the screen +msgid "left (screen)" msgstr "" -#: js/RhythmBlocks.js:619 -#: js/RhythmActions.js:221 -msgid "An argument of -1 results in a note value of 0." +#: js/blocks/MediaBlocks.js:107 +#: js/blocks/MediaBlocks.js:118 +msgid "The Left block returns the position of the left of the canvas." msgstr "" -#: js/RhythmBlocks.js:661 -msgid "The Dot block extends the duration of a note by 50%." +#: js/blocks/MediaBlocks.js:158 +msgid "top (screen)" msgstr "" -#: js/RhythmBlocks.js:663 -msgid "Eg a dotted quarter note will play for 3/8 (1/4 + 1/8) of a beat." +#: js/blocks/MediaBlocks.js:168 +#: js/blocks/MediaBlocks.js:179 +msgid "The Top block returns the position of the top of the canvas." msgstr "" -#: js/RhythmBlocks.js:765 -#.TRANS: Japanese only: note value block for drum -msgid "note value drum" +#: js/blocks/MediaBlocks.js:219 +msgid "bottom (screen)" msgstr "" -#: js/RhythmBlocks.js:829 -msgid "392 hertz" +#: js/blocks/MediaBlocks.js:229 +#: js/blocks/MediaBlocks.js:240 +msgid "The Bottom block returns the position of the bottom of the canvas." msgstr "" -#: js/RhythmBlocks.js:1119 -msgid "The Note block is a container for one or more Pitch blocks." +#: js/blocks/MediaBlocks.js:282 +msgid "width" msgstr "" -#: js/RhythmBlocks.js:1121 -msgid "The Note block specifies the duration (note value) of its contents." +#: js/blocks/MediaBlocks.js:291 +msgid "The Width block returns the width of the canvas." msgstr "" -#: js/RhythmBlocks.js:1130 -msgid "value2" +#: js/blocks/MediaBlocks.js:325 +msgid "height" msgstr "" -#: js/RhythmBlocks.js:1200 -msgid "define frequency" +#: js/blocks/MediaBlocks.js:334 +msgid "The Height block returns the height of the canvas." msgstr "" -#: js/RhythmBlocks.js:1218 -#: js/temperament.js:650 -#: js/temperament.js:1421 -msgid "octave space" +#: js/blocks/MediaBlocks.js:369 +#.TRANS: stops playback of an audio recording +msgid "stop play" msgstr "" -#: js/NumberBlocks.js:28 -msgid "The Int block returns an integer." +#: js/blocks/MediaBlocks.js:404 +#.TRANS: Erases the images and text +msgid "erase media" msgstr "" -#: js/NumberBlocks.js:34 -msgid "int" +#: js/blocks/MediaBlocks.js:409 +msgid "The Erase Media block erases text and images." msgstr "" -#: js/NumberBlocks.js:73 -msgid "The Mod block returns the remainder from a division." +#: js/blocks/MediaBlocks.js:439 +#.TRANS: play an audio recording +msgid "play back" msgstr "" -#: js/NumberBlocks.js:79 -msgid "mod" -msgstr "模數" +#: js/blocks/MediaBlocks.js:487 +msgid "speak" +msgstr "聽我說" -#: js/NumberBlocks.js:123 -msgid "The Power block calculates a power function." +#: js/blocks/MediaBlocks.js:495 +msgid "The Speak block outputs to the text-to-speech synthesizer" msgstr "" -#: js/NumberBlocks.js:178 -msgid "The Sqrt block returns the square root." +#: js/blocks/MediaBlocks.js:546 +msgid "camera" msgstr "" -#: js/NumberBlocks.js:184 -msgid "sqrt" +#: js/blocks/MediaBlocks.js:551 +msgid "The Camera block connects a webcam to the Show block." msgstr "" -#: js/NumberBlocks.js:230 -msgid "The Abs block returns the absolute value." +#: js/blocks/MediaBlocks.js:574 +msgid "video" msgstr "" -#: js/NumberBlocks.js:236 -msgid "abs" +#: js/blocks/MediaBlocks.js:579 +msgid "The Video block selects video for use with the Show block." msgstr "" -#: js/NumberBlocks.js:277 -msgid "The Distance block returns the distance between two points. For example, between the mouse and the center of the screen." +#: js/blocks/MediaBlocks.js:607 +msgid "The Open file block opens a file for use with the Show block." msgstr "" -#: js/NumberBlocks.js:283 -#: plugins/rodi.rtp:310 -msgid "distance" +#: js/blocks/MediaBlocks.js:645 +msgid "stop media" msgstr "" -#: js/NumberBlocks.js:343 -msgid "The Divide block is used to divide." +#: js/blocks/MediaBlocks.js:650 +msgid "The Stop media block stops audio or video playback." msgstr "" -#: js/NumberBlocks.js:411 -msgid "The Multiply block is used to multiply." +#: js/blocks/MediaBlocks.js:679 +#: js/blocks/PitchBlocks.js:1577 +#: js/widgets/musickeyboard.js:1936 +#: js/widgets/phrasemaker.js:1037 +#.TRANS: a measure of frequency: one cycle per second +msgid "hertz" msgstr "" -#: js/NumberBlocks.js:554 -msgid "The Minus block is used to subtract." +#: js/blocks/MediaBlocks.js:692 +#: js/blocks/WidgetBlocks.js:182 +#: js/widgets/temperament.js:506 +#: js/widgets/temperament.js:546 +#: js/widgets/temperament.js:610 +#: js/widgets/temperament.js:618 +#: js/widgets/temperament.js:1505 +#: js/widgets/timbre.js:1842 +msgid "frequency" msgstr "" -#: js/NumberBlocks.js:647 -msgid "The Plus block is used to add." +#: js/blocks/MediaBlocks.js:692 +msgid "duration (ms)" msgstr "" -#: js/NumberBlocks.js:773 -msgid "The One-of block returns one of two choices." +#: js/blocks/MediaBlocks.js:728 +#.TRANS: translate a note into hertz, e.g., A4 -> 440HZ +msgid "note to frequency" msgstr "" -#: js/NumberBlocks.js:780 -#: js/PitchBlocks.js:616 -msgid "one of" +#: js/blocks/MediaBlocks.js:736 +msgid "The To frequency block converts a pitch name and octave to Hertz." msgstr "" -#: js/NumberBlocks.js:782 -msgid "this" +#: js/blocks/MediaBlocks.js:746 +#: js/blocks/PitchBlocks.js:656 +#: js/blocks/PitchBlocks.js:934 +#: js/blocks/PitchBlocks.js:1866 +#.TRANS: name2 is name as in name of pitch (JAPANESE ONLY) +msgid "name2" msgstr "" -#: js/NumberBlocks.js:782 -msgid "that" +#: js/blocks/MediaBlocks.js:812 +msgid "The Avatar block is used to change the appearance of the mouse." msgstr "" -#: js/NumberBlocks.js:837 -msgid "The Random block returns a random number." +#: js/blocks/MediaBlocks.js:819 +msgid "The Avatar block is used to change the appearance of the turtle." msgstr "" -#: js/NumberBlocks.js:844 -msgid "random" -msgstr "亂數" +#: js/blocks/MediaBlocks.js:831 +#: js/blocks/MediaBlocks.js:891 +#.TRANS: a media object +msgid "size" +msgstr "" -#: js/NumberBlocks.js:846 -msgid "min" -msgstr "最小" +#: js/blocks/MediaBlocks.js:831 +msgid "image" +msgstr "圖片" -#: js/NumberBlocks.js:846 -msgid "max" -msgstr "最大" +#: js/blocks/MediaBlocks.js:880 +msgid "The Show block is used to display text or images on the canvas." +msgstr "" -#: js/NumberBlocks.js:910 -msgid "The Number block holds a number." +#: js/blocks/MediaBlocks.js:888 +#.TRANS: show1 is show as in display an image or text on the screen. +msgid "show1" msgstr "" -#: js/BoxesBlocks.js:53 -#: js/BoxesBlocks.js:59 -msgid "The Add-to block is used to add to the value stored in a box." +#: js/blocks/MediaBlocks.js:891 +msgid "obj" msgstr "" -#: js/BoxesBlocks.js:61 -msgid "It can also be used with other blocks such as Color and Pen size." +#: js/blocks/MediaBlocks.js:938 +msgid "The Media block is used to import an image." msgstr "" -#: js/BoxesBlocks.js:73 -msgid "add" +#: js/blocks/MediaBlocks.js:973 +msgid "The Text block holds a text string." msgstr "" -#: js/BoxesBlocks.js:75 -#: js/temperament.js:716 -msgid "to" +#: js/blocks/MeterBlocks.js:34 +#.TRANS: musical meter (time signature), e.g., 4:4 +msgid "current meter" msgstr "" -#: js/BoxesBlocks.js:75 -#: js/BoxesBlocks.js:595 -#: js/HeapBlocks.js:544 -msgid "value1" +#: js/blocks/MeterBlocks.js:85 +#.TRANS: number of beats per minute +msgid "beat factor" msgstr "" -#: js/BoxesBlocks.js:118 -msgid "Block does not support incrementing." +#: js/blocks/MeterBlocks.js:161 +msgid "The Beats per minute block returns the current beats per minute." msgstr "" -#: js/BoxesBlocks.js:152 -msgid "The Add-1-to block adds one to the value stored in a box." +#: js/blocks/MeterBlocks.js:169 +#: js/widgets/status.js:152 +#.TRANS: number of beats played per minute +msgid "beats per minute2" msgstr "" -#: js/BoxesBlocks.js:163 -msgid "add 1 to" +#: js/blocks/MeterBlocks.js:169 +#: js/blocks/MeterBlocks.js:1056 +#: js/blocks/MeterBlocks.js:1133 +#: js/blocks/MeterBlocks.js:1211 +#.TRANS: sets tempo by defining a beat and beats per minute +msgid "beats per minute" msgstr "" -#: js/BoxesBlocks.js:211 -msgid "The Subtract-1-from block subtracts one from the value stored in a box." +#: js/blocks/MeterBlocks.js:233 +#.TRANS: count of current musical measure in meter +msgid "measure count" msgstr "" -#: js/BoxesBlocks.js:222 -msgid "subtract 1 from" +#: js/blocks/MeterBlocks.js:241 +msgid "The Measure count block returns the current measure." msgstr "" -#: js/BoxesBlocks.js:270 -#: js/BoxesBlocks.js:387 -msgid "The Box block returns the value stored in a box." +#: js/blocks/MeterBlocks.js:290 +#.TRANS: count of current beat in the meter +msgid "beat count" msgstr "" -#: js/BoxesBlocks.js:500 -#: js/BoxesBlocks.js:576 -msgid "The Store in block will store a value in a box." +#: js/blocks/MeterBlocks.js:300 +#: js/blocks/MeterBlocks.js:311 +#: js/blocks/MeterBlocks.js:565 +#: js/blocks/MeterBlocks.js:576 +msgid "The Beat count block is the number of the current beat," msgstr "" -#: js/BoxesBlocks.js:652 -msgid "The Box2 block returns the value stored in Box2." +#: js/blocks/MeterBlocks.js:313 +#: js/blocks/MeterBlocks.js:578 +msgid "eg 1, 2, 3, or 4." msgstr "" -#: js/BoxesBlocks.js:703 -msgid "The Store in Box2 block is used to store a value in Box2." +#: js/blocks/MeterBlocks.js:368 +#.TRANS: count the number of notes +msgid "sum note values" msgstr "" -#: js/BoxesBlocks.js:715 -msgid "store in box2" +#: js/blocks/MeterBlocks.js:376 +#: js/blocks/MeterBlocks.js:440 +msgid "The Note counter block can be used to count the number of contained notes." msgstr "" -#: js/BoxesBlocks.js:761 -msgid "The Box1 block returns the value stored in Box1." +#: js/blocks/MeterBlocks.js:432 +#.TRANS: count the number of notes +msgid "note counter" msgstr "" -#: js/BoxesBlocks.js:812 -msgid "The Store in Box1 block is used to store a value in Box1." +#: js/blocks/MeterBlocks.js:496 +#.TRANS: number of whole notes that have been played +msgid "whole notes played" msgstr "" -#: js/BoxesBlocks.js:826 -msgid "store in box1" +#: js/blocks/MeterBlocks.js:505 +msgid "The Whole notes played block returns the total number of whole notes played." msgstr "" -#: js/HeapBlocks.js:49 -msgid "The Heap block returns the heap." +#: js/blocks/MeterBlocks.js:555 +#: js/turtleactions/DictActions.js:83 +#.TRANS: number of notes that have been played +msgid "notes played" msgstr "" -#: js/HeapBlocks.js:133 -msgid "show heap" -msgstr "顯示堆疊" +#: js/blocks/MeterBlocks.js:653 +msgid "The No clock block decouples the notes from the master clock." +msgstr "" -#: js/HeapBlocks.js:181 -msgid "The Heap-length block returns the length of the heap." +#: js/blocks/MeterBlocks.js:661 +#.TRANS: don't lock notes to master clock +msgid "no clock" msgstr "" -#: js/HeapBlocks.js:195 -msgid "heap length" +#: js/blocks/MeterBlocks.js:700 +msgid "on weak beat do" msgstr "" -#: js/HeapBlocks.js:254 -msgid "The Heap-empty? block returns true if the heap is empty." +#: js/blocks/MeterBlocks.js:705 +msgid "The On-weak-beat block lets you specify actions to take on weak (off) beats." msgstr "" -#: js/HeapBlocks.js:268 -#.TRANS: Is the heap empty? -msgid "heap empty?" +#: js/blocks/MeterBlocks.js:750 +msgid "on strong beat" msgstr "" -#: js/HeapBlocks.js:317 -msgid "The Empty-heap block empties the heap." +#: js/blocks/MeterBlocks.js:758 +msgid "The On-strong-beat block lets you specify actions to take on specified beats." msgstr "" -#: js/HeapBlocks.js:327 -#: js/HeapBlocks.js:647 -#.TRANS: empty the heap -msgid "empty heap" -msgstr "清除堆疊" +#: js/blocks/MeterBlocks.js:769 +msgid "beat" +msgstr "" -#: js/HeapBlocks.js:371 -msgid "The Reverse-heap block reverses the order of the heap." +#: js/blocks/MeterBlocks.js:813 +msgid "on every beat do" msgstr "" -#: js/HeapBlocks.js:384 -#.TRANS: reverse the order of the heap -msgid "reverse heap" +#: js/blocks/MeterBlocks.js:821 +msgid "The On-every-beat block lets you specify actions to take on every beat." msgstr "" -#: js/HeapBlocks.js:428 -msgid "The Index-heap block returns a value in the heap at a specified location." +#: js/blocks/MeterBlocks.js:874 +msgid "on every note do" msgstr "" -#: js/HeapBlocks.js:443 -#.TRANS: retrieve a value from the heap at index position in the heap -msgid "index heap" +#: js/blocks/MeterBlocks.js:882 +msgid "The On-every-note block lets you specify actions to take on every note." msgstr "" -#: js/HeapBlocks.js:523 -msgid "The Set-heap entry block sets a value in he heap at the specified location." +#: js/blocks/MeterBlocks.js:928 +#: js/blocks/MeterBlocks.js:999 +#.TRANS: sets tempo by defining a beat and beats per minute +msgid "master beats per minute" msgstr "" -#: js/HeapBlocks.js:619 -msgid "The Pop block removes the value at the top of the heap." +#: js/blocks/MeterBlocks.js:952 +#: js/blocks/MeterBlocks.js:1078 +#: js/blocks/MeterBlocks.js:1135 +msgid "bpm" msgstr "" -#: js/HeapBlocks.js:633 -#.TRANS: pop a value off the top of the heap -msgid "pop" -msgstr "取出堆疊" +#: js/blocks/MeterBlocks.js:952 +#: js/blocks/MeterBlocks.js:1078 +#: js/blocks/MeterBlocks.js:1135 +msgid "beat value" +msgstr "" -#: js/HeapBlocks.js:680 -msgid "The Push block adds a value to the top of the heap." +#: js/blocks/MeterBlocks.js:1024 +#: js/blocks/MeterBlocks.js:1167 +#: js/blocks/MeterBlocks.js:1241 +msgid "Beats per minute must be > 30." msgstr "" -#: js/HeapBlocks.js:696 -#.TRANS: push a value onto the top of the heap -msgid "push" -msgstr "存入堆疊" +#: js/blocks/MeterBlocks.js:1027 +#: js/blocks/MeterBlocks.js:1170 +#: js/blocks/MeterBlocks.js:1244 +msgid "Maximum beats per minute is 1000." +msgstr "" -#: js/FlowBlocks.js:41 -msgid "The Backward block runs code in reverse order (Musical retrograde)." +#: js/blocks/MeterBlocks.js:1068 +msgid "The Beats per minute block sets the number of 1/4 notes per minute." msgstr "" -#: js/FlowBlocks.js:48 -msgid "backward" +#: js/blocks/MeterBlocks.js:1279 +#.TRANS: anacrusis +msgid "pickup" msgstr "" -#: js/FlowBlocks.js:124 -msgid "The Duplicate block will run each block multiple times." +#: js/blocks/MeterBlocks.js:1367 +msgid "number of beats" msgstr "" -#: js/FlowBlocks.js:136 -msgid "duplicate" +#: js/blocks/NumberBlocks.js:28 +msgid "The Int block returns an integer." msgstr "" -#: js/FlowBlocks.js:334 -msgid "The Default block is used inside of a Switch to define the default action." +#: js/blocks/NumberBlocks.js:34 +msgid "int" msgstr "" -#: js/FlowBlocks.js:342 -msgid "default" +#: js/blocks/NumberBlocks.js:73 +msgid "The Mod block returns the remainder from a division." msgstr "" -#: js/FlowBlocks.js:361 -#: js/FlowBlocks.js:418 -msgid "The Case Block must be used inside of a Switch Block." +#: js/blocks/NumberBlocks.js:79 +msgid "mod" +msgstr "模數" + +#: js/blocks/NumberBlocks.js:141 +msgid "The Power block calculates a power function." msgstr "" -#: js/FlowBlocks.js:389 -msgid "The Case block is used inside of a Switch to define matches." +#: js/blocks/NumberBlocks.js:196 +msgid "The Sqrt block returns the square root." msgstr "" -#: js/FlowBlocks.js:397 -msgid "case" +#: js/blocks/NumberBlocks.js:202 +msgid "sqrt" msgstr "" -#: js/FlowBlocks.js:446 -msgid "The Switch block will run the code in the matching Case." +#: js/blocks/NumberBlocks.js:248 +msgid "The Abs block returns the absolute value." msgstr "" -#: js/FlowBlocks.js:454 -msgid "switch" +#: js/blocks/NumberBlocks.js:254 +msgid "abs" msgstr "" -#: js/FlowBlocks.js:595 -msgid "The Stop block will stop a loop" +#: js/blocks/NumberBlocks.js:295 +msgid "The Distance block returns the distance between two points. For example, between the mouse and the center of the screen." +msgstr "" + +#: js/blocks/NumberBlocks.js:301 +#: plugins/rodi.rtp:310 +msgid "distance" msgstr "" -#: js/FlowBlocks.js:597 -msgid "Forever, Repeat, While, or Until." +#: js/blocks/NumberBlocks.js:361 +msgid "The Divide block is used to divide." msgstr "" -#: js/FlowBlocks.js:604 -#: js/phrasemaker.js:3799 -#: js/musickeyboard.js:629 -#: js/musickeyboard.js:631 -#: js/timbre.js:417 -#: js/timbre.js:419 -#: plugins/rodi.rtp:29 -#: plugins/rodi.rtp:73 -#: plugins/rodi.rtp:413 -msgid "stop" -msgstr "停止" - -#: js/FlowBlocks.js:653 -msgid "The Waitfor block will wait until the condition is true." +#: js/blocks/NumberBlocks.js:441 +msgid "The Multiply block is used to multiply." msgstr "" -#: js/FlowBlocks.js:661 -msgid "wait for" +#: js/blocks/NumberBlocks.js:612 +msgid "The Minus block is used to subtract." msgstr "" -#: js/FlowBlocks.js:732 -msgid "The Until block will repeat until the condition is true." +#: js/blocks/NumberBlocks.js:723 +msgid "The Plus block is used to add." msgstr "" -#: js/FlowBlocks.js:740 -msgid "until" -msgstr "直到" +#: js/blocks/NumberBlocks.js:849 +msgid "The One-of block returns one of two choices." +msgstr "" -#: js/FlowBlocks.js:742 -#: js/FlowBlocks.js:822 -msgid "do2" +#: js/blocks/NumberBlocks.js:856 +#: js/blocks/PitchBlocks.js:616 +msgid "one of" msgstr "" -#: js/FlowBlocks.js:812 -msgid "The While block will repeat while the condition is true." +#: js/blocks/NumberBlocks.js:858 +msgid "this" msgstr "" -#: js/FlowBlocks.js:820 -msgid "while" -msgstr "同時間" +#: js/blocks/NumberBlocks.js:858 +msgid "that" +msgstr "" -#: js/FlowBlocks.js:903 -#: js/FlowBlocks.js:968 -#: js/FlowBlocks.js:979 -msgid "In this example if the mouse button is pressed a snare drum will play." +#: js/blocks/NumberBlocks.js:913 +msgid "The Random block returns a random number." msgstr "" -#: js/FlowBlocks.js:925 -#: js/FlowBlocks.js:988 -msgid "if" -msgstr "若" +#: js/blocks/NumberBlocks.js:920 +msgid "random" +msgstr "亂數" -#: js/FlowBlocks.js:927 -#: js/FlowBlocks.js:990 -msgid "then" -msgstr "則" +#: js/blocks/NumberBlocks.js:922 +msgid "min" +msgstr "最小" -#: js/FlowBlocks.js:927 -msgid "else" -msgstr "否則" +#: js/blocks/NumberBlocks.js:922 +msgid "max" +msgstr "最大" -#: js/FlowBlocks.js:1025 -msgid "The Forever block will repeat the contained blocks forever." +#: js/blocks/NumberBlocks.js:986 +msgid "The Number block holds a number." msgstr "" -#: js/FlowBlocks.js:1037 -msgid "forever" -msgstr "持續執行" - -#: js/FlowBlocks.js:1073 -msgid "The Repeat block will repeat the contained blocks." +#: js/blocks/OrnamentBlocks.js:32 +msgid "staccato factor" msgstr "" -#: js/FlowBlocks.js:1075 -msgid "In this example the note will be played 4 times." +#: js/blocks/OrnamentBlocks.js:108 +msgid "slur factor" msgstr "" -#: js/FlowBlocks.js:1083 -msgid "repeat" -msgstr "重複" - -#: js/FlowBlocks.js:1123 -msgid "duplicate factor" +#: js/blocks/OrnamentBlocks.js:217 +#: js/blocks/OrnamentBlocks.js:309 +#.TRANS: the neighbor refers to a neighboring note, e.g., D is a neighbor of C +msgid "neighbor" msgstr "" -#: js/PitchBlocks.js:39 -#: js/musicutils.js:722 -#: js/musicutils.js:1117 -#: js/synthutils.js:112 -#.TRANS: square wave -msgid "square" +#: js/blocks/OrnamentBlocks.js:293 +msgid "The Neighbor block rapidly switches between neighboring pitches." msgstr "" -#: js/PitchBlocks.js:62 -#: js/ToneBlocks.js:39 -#: js/musicutils.js:723 -#: js/musicutils.js:1118 -#: js/synthutils.js:116 -#.TRANS: triangle wave -msgid "triangle" +#: js/blocks/OrnamentBlocks.js:364 +msgid "glide" msgstr "" -#: js/PitchBlocks.js:85 -#: js/musicutils.js:721 -#: js/musicutils.js:1116 -#: js/synthutils.js:110 -#.TRANS: sine wave -msgid "sine" +#: js/blocks/OrnamentBlocks.js:479 +#: js/blocks/OrnamentBlocks.js:643 +msgid "slur" msgstr "" -#: js/PitchBlocks.js:108 -#: js/musicutils.js:724 -#: js/musicutils.js:1119 -#: js/synthutils.js:114 -#.TRANS: sawtooth wave -msgid "sawtooth" +#: js/blocks/OrnamentBlocks.js:558 +#: js/blocks/OrnamentBlocks.js:710 +#.TRANS: play each note sharply detached from the others +msgid "staccato" msgstr "" -#: js/PitchBlocks.js:141 -#.TRANS: musical transposition (adjustment of pitch up or down) -msgid "transposition" +#: js/blocks/RhythmBlocks.js:182 +#: js/blocks/RhythmBlocks.js:1086 +#: js/blocks/RhythmBlocks.js:1162 +msgid "Note value must be greater than 0." msgstr "" -#: js/PitchBlocks.js:168 -#.TRANS: step down one note in current musical scale -msgid "scalar step down" +#: js/blocks/RhythmBlocks.js:215 +#: js/blocks/RhythmBlocks.js:278 +#: js/blocks/RhythmBlocks.js:350 +#.TRANS: swing is a rhythmic variation that emphasises the offbeat +msgid "swing" msgstr "" -#: js/PitchBlocks.js:172 -msgid "The Scalar step down block returns the number of semi-tones down to the previous note in the current key and mode." +#: js/blocks/RhythmBlocks.js:355 +#.TRANS: the amount to shift to the offbeat note +msgid "swing value" msgstr "" -#: js/PitchBlocks.js:190 -#.TRANS: step up one note in current musical scale -msgid "scalar step up" +#: js/blocks/RhythmBlocks.js:419 +msgid "The Skip notes block will cause notes to be skipped." msgstr "" -#: js/PitchBlocks.js:194 -msgid "The Scalar step up block returns the number of semi-tones up to the next note in the current key and mode." +#: js/blocks/RhythmBlocks.js:427 +#.TRANS: substitute rests on notes being skipped +msgid "skip notes" msgstr "" -#: js/PitchBlocks.js:212 -#.TRANS: the change measured in half-steps between the current pitch and the previous pitch -msgid "change in pitch" +#: js/blocks/RhythmBlocks.js:489 +#.TRANS: speed up note duration by some factor, e.g. convert 1/4 to 1/8 notes by using a factor of 2 +msgid "multiply note value" msgstr "" -#: js/PitchBlocks.js:216 -msgid "The Change in pitch block is the difference (in half steps) between the current pitch being played and the previous pitch played." +#: js/blocks/RhythmBlocks.js:542 +msgid "The Tie block works on pairs of notes, combining them into one note." msgstr "" -#: js/PitchBlocks.js:243 -#.TRANS: the change measured in scale-steps between the current pitch and the previous pitch -msgid "scalar change in pitch" +#: js/blocks/RhythmBlocks.js:550 +#.TRANS: tie notes together into one longer note +msgid "tie" msgstr "" -#: js/PitchBlocks.js:250 -#: js/PitchBlocks.js:432 -#: js/PitchBlocks.js:1629 -#: js/DictActions.js:89 -#: js/temperament.js:477 -#: js/temperament.js:481 -#: js/temperament.js:714 -#.TRANS: convert current note to piano key (1-88) -#.TRANS: a mapping of pitch to the 88 piano keys -msgid "pitch number" +#: js/blocks/RhythmBlocks.js:591 +#: js/blocks/RhythmBlocks.js:671 +#.TRANS: a dotted note is played for 1.5x its value, e.g., 1/8. --> 3/16 +msgid "dot" msgstr "" -#: js/PitchBlocks.js:256 -msgid "The Pitch number block is the value of the pitch of the note currently being played." +#: js/blocks/RhythmBlocks.js:619 +#: js/turtleactions/RhythmActions.js:221 +msgid "An argument of -1 results in a note value of 0." msgstr "" -#: js/PitchBlocks.js:329 -#: js/PitchBlocks.js:433 -#.TRANS: the current pitch expressed in Hertz -msgid "pitch in hertz" +#: js/blocks/RhythmBlocks.js:661 +msgid "The Dot block extends the duration of a note by 50%." msgstr "" -#: js/PitchBlocks.js:334 -msgid "The Pitch in Hertz block is the value in Hertz of the pitch of the note currently being played." +#: js/blocks/RhythmBlocks.js:663 +msgid "Eg a dotted quarter note will play for 3/8 (1/4 + 1/8) of a beat." msgstr "" -#: js/PitchBlocks.js:367 -#: js/DictActions.js:87 -msgid "current pitch" +#: js/blocks/RhythmBlocks.js:765 +#.TRANS: Japanese only: note value block for drum +msgid "note value drum" msgstr "" -#: js/PitchBlocks.js:373 -msgid "The Current Pitch block is used with the Pitch Converter block. In the example above, current pitch, sol 4, is displayed as 392 hertz." +#: js/blocks/RhythmBlocks.js:829 +msgid "392 hertz" msgstr "" -#: js/PitchBlocks.js:410 -msgid "This block converts the pitch value of the last note played into different formats such as hertz, letter name, pitch number, et al." +#: js/blocks/RhythmBlocks.js:1119 +msgid "The Note block is a container for one or more Pitch blocks." msgstr "" -#: js/PitchBlocks.js:434 -msgid "alphabet" +#: js/blocks/RhythmBlocks.js:1121 +msgid "The Note block specifies the duration (note value) of its contents." msgstr "" -#: js/PitchBlocks.js:436 -#.TRANS: Translate as "alphabet class" -msgid "letter class" -msgstr "" +#: js/blocks/RhythmBlocks.js:1128 +#: js/blocks/PitchBlocks.js:974 +#: js/blocks/PitchBlocks.js:1007 +#: js/blocks/ProgramBlocks.js:1186 +#: js/blocks/ProgramBlocks.js:1227 +#: js/widgets/status.js:190 +#: js/widgets/temperament.js:464 +#: js/widgets/temperament.js:486 +#: js/widgets/temperament.js:496 +#: js/widgets/temperament.js:617 +#: plugins/rodi.rtp:192 +#.TRANS: a musical note consisting of pitch and duration +msgid "note" +msgstr "音符" -#: js/PitchBlocks.js:437 -msgid "solfege class" +#: js/blocks/RhythmBlocks.js:1130 +msgid "value2" msgstr "" -#: js/PitchBlocks.js:438 -msgid "staff y" +#: js/blocks/RhythmBlocks.js:1200 +msgid "define frequency" msgstr "" -#: js/PitchBlocks.js:439 -msgid "solfege syllable" +#: js/blocks/RhythmBlocks.js:1218 +#: js/widgets/temperament.js:787 +#: js/widgets/temperament.js:1587 +msgid "octave space" msgstr "" -#: js/PitchBlocks.js:440 -msgid "pitch class" +#: js/blocks/SensorsBlocks.js:36 +msgid "The Input block prompts for keyboard input." msgstr "" -#: js/PitchBlocks.js:441 -msgid "scalar class" +#: js/blocks/SensorsBlocks.js:46 +msgid "input" msgstr "" -#: js/PitchBlocks.js:443 -msgid "nth degree" +#: js/blocks/SensorsBlocks.js:64 +msgid "Input a value" msgstr "" -#: js/PitchBlocks.js:444 -msgid "pitch to shade" +#: js/blocks/SensorsBlocks.js:126 +msgid "input value" msgstr "" -#: js/PitchBlocks.js:445 -msgid "pitch to color" +#: js/blocks/SensorsBlocks.js:131 +msgid "The Input-value block stores the input." msgstr "" -#: js/PitchBlocks.js:629 -#: js/musickeyboard.js:565 -#.TRANS: MIDI is a technical standard for electronic music -msgid "MIDI" -msgstr "" +#: js/blocks/SensorsBlocks.js:238 +msgid "loudness" +msgstr "音量" -#: js/PitchBlocks.js:642 -#.TRANS: set an offset associated with the numeric piano keyboard mapping -msgid "set pitch number offset" +#: js/blocks/SensorsBlocks.js:245 +msgid "The Loudness block returns the volume detected by the microphone." msgstr "" -#: js/PitchBlocks.js:645 -msgid "The Set pitch number offset block is used to set the offset for mapping pitch numbers to pitch and octave." +#: js/blocks/SensorsBlocks.js:300 +msgid "click" msgstr "" -#: js/PitchBlocks.js:679 -#.TRANS: convert piano key number (1-88) to pitch -msgid "number to pitch" +#: js/blocks/SensorsBlocks.js:306 +msgid "The Click block triggers an event if a mouse has been clicked." msgstr "" -#: js/PitchBlocks.js:682 -msgid "The Number to pitch block will convert a pitch number to a pich name." +#: js/blocks/SensorsBlocks.js:313 +msgid "The Click block triggers an event if a turtle has been clicked." msgstr "" -#: js/PitchBlocks.js:715 -#.TRANS: convert piano key number (1-88) to octave -msgid "number to octave" +#: js/blocks/SensorsBlocks.js:342 +msgid "cursor over" msgstr "" -#: js/PitchBlocks.js:717 -msgid "The Number to octave block will convert a pitch number to an octave." +#: js/blocks/SensorsBlocks.js:387 +msgid "cursor out" msgstr "" -#: js/PitchBlocks.js:726 -msgid "y to pitch" +#: js/blocks/SensorsBlocks.js:433 +msgid "cursor button down" msgstr "" -#: js/PitchBlocks.js:729 -msgid "Y to pitch block will convert a staff y position to corresponding pitch notation." +#: js/blocks/SensorsBlocks.js:477 +msgid "cursor button up" msgstr "" -#: js/PitchBlocks.js:841 -msgid "accidental selector" +#: js/blocks/SensorsBlocks.js:521 +#: js/blocks/PenBlocks.js:48 +#: plugins/rodi.rtp:219 +msgid "blue" msgstr "" -#: js/PitchBlocks.js:844 -msgid "The Accidental selector block is used to choose between double-sharp, sharp, natural, flat, and double-flat." +#: js/blocks/SensorsBlocks.js:577 +#: js/blocks/PenBlocks.js:64 +#: plugins/rodi.rtp:218 +msgid "green" msgstr "" -#: js/PitchBlocks.js:858 -msgid "Pitch can be specified in terms of ni dha pa ma ga re sa." +#: js/blocks/SensorsBlocks.js:633 +#: js/blocks/PenBlocks.js:112 +#: plugins/rodi.rtp:217 +msgid "red" msgstr "" -#: js/PitchBlocks.js:872 -msgid "Pitch can be specified in terms of C D E F G A B." +#: js/blocks/SensorsBlocks.js:638 +msgid "The Get red block returns the red component of the pixel under the mouse." msgstr "" -#: js/PitchBlocks.js:883 -msgid "solfege" +#: js/blocks/SensorsBlocks.js:644 +msgid "The Get red block returns the red component of the pixel under the turtle." msgstr "" -#: js/PitchBlocks.js:886 -msgid "Pitch can be specified in terms of do re mi fa sol la ti." +#: js/blocks/SensorsBlocks.js:685 +#: plugins/rodi.rtp:216 +msgid "pixel color" msgstr "" -#: js/PitchBlocks.js:920 -msgid "The Invert block rotates any contained notes around a target note." +#: js/blocks/SensorsBlocks.js:690 +msgid "The Get pixel block returns the color of the pixel under the mouse." msgstr "" -#: js/PitchBlocks.js:927 -#.TRANS: pitch inversion rotates a pitch around another pitch -msgid "invert" +#: js/blocks/SensorsBlocks.js:696 +msgid "The Get pixel block returns the color of the pixel under the turtle." msgstr "" -#: js/PitchBlocks.js:929 -#: js/PitchBlocks.js:935 -#: js/PitchActions.js:727 -#: js/musicutils.js:726 -#: js/musicutils.js:902 -#.TRANS: invert based on even or odd number or musical scale -#.TRANS: even numbers -msgid "even" -msgstr "" +#: js/blocks/SensorsBlocks.js:758 +msgid "time" +msgstr "時間" -#: js/PitchBlocks.js:935 -#: js/PitchActions.js:729 -#: js/musicutils.js:728 -#: js/musicutils.js:903 -#.TRANS: odd numbers -msgid "odd" +#: js/blocks/SensorsBlocks.js:804 +msgid "cursor y" msgstr "" -#: js/PitchBlocks.js:935 -#: js/PitchActions.js:731 -#: js/musicutils.js:729 -#: js/musicutils.js:904 -msgid "scalar" +#: js/blocks/SensorsBlocks.js:809 +msgid "The Cursor Y block returns the vertical position of the mouse." msgstr "" -#: js/PitchBlocks.js:966 -#.TRANS: pitch inversion rotates a pitch around another pitch (odd number) -msgid "invert (odd)" +#: js/blocks/SensorsBlocks.js:845 +msgid "cursor x" msgstr "" -#: js/PitchBlocks.js:999 -#.TRANS: pitch inversion rotates a pitch around another pitch (even number) -msgid "invert (even)" +#: js/blocks/SensorsBlocks.js:850 +msgid "The Cursor X block returns the horizontal position of the mouse." msgstr "" -#: js/PitchBlocks.js:1020 -#.TRANS: register is the octave of the current pitch -msgid "register" +#: js/blocks/SensorsBlocks.js:886 +msgid "mouse button" msgstr "" -#: js/PitchBlocks.js:1024 -msgid "The Register block provides an easy way to modify the register (octave) of the notes that follow it." +#: js/blocks/SensorsBlocks.js:888 +msgid "The Mouse-button block returns True if the mouse button is pressed." msgstr "" -#: js/PitchBlocks.js:1074 -msgid "The Semi-tone transposition block will shift the pitches contained inside Note blocks up (or down) by half steps." +#: js/blocks/SensorsBlocks.js:934 +msgid "to ASCII" msgstr "" -#: js/PitchBlocks.js:1076 -msgid "In the example shown above, sol is shifted up to sol#." +#: js/blocks/SensorsBlocks.js:938 +msgid "The To ASCII block converts numbers to letters." msgstr "" -#: js/PitchBlocks.js:1082 -#.TRANS: adjust the amount of shift (up or down) of a pitch -msgid "semi-tone transpose" +#: js/blocks/SensorsBlocks.js:1005 +msgid "The Keyboard block returns computer keyboard input." msgstr "" -#: js/PitchBlocks.js:1115 -msgid "The Transpose by Ratio block will shift the pitches contained inside Note blocks up (or down) by a ratio" +#: js/blocks/RhythmBlockPaletteBlocks.js:50 +#: js/blocks/RhythmBlockPaletteBlocks.js:233 +#.TRANS: rhythm block +#.TRANS: translate "rhythm1" as rhythm +msgid "rhythm1" msgstr "" -#: js/PitchBlocks.js:1121 -#.TRANS: adjust the amount of shift (up or down) of a pitch -msgid "transpose by ratio" +#: js/blocks/RhythmBlockPaletteBlocks.js:70 +#: js/blocks/RhythmBlockPaletteBlocks.js:252 +#: js/blocks/RhythmBlockPaletteBlocks.js:485 +#: js/blocks/RhythmBlockPaletteBlocks.js:554 +#: js/blocks/RhythmBlockPaletteBlocks.js:875 +msgid "number of notes" msgstr "" -#: js/PitchBlocks.js:1204 -#.TRANS: down sixth means the note is five scale degrees below current note -msgid "down sixth" +#: js/blocks/RhythmBlockPaletteBlocks.js:126 +msgid "polyphonic rhythm" msgstr "" -#: js/PitchBlocks.js:1223 -#.TRANS: down third means the note is two scale degrees below current note -msgid "down third" +#: js/blocks/RhythmBlockPaletteBlocks.js:219 +msgid "The Rhythm block is used to generate rhythm patterns." msgstr "" -#: js/PitchBlocks.js:1242 -#.TRANS: seventh means the note is the six scale degrees above current note -msgid "seventh" +#: js/blocks/RhythmBlockPaletteBlocks.js:280 +msgid "1/64 note" msgstr "" -#: js/PitchBlocks.js:1261 -#.TRANS: sixth means the note is the five scale degrees above current note -msgid "sixth" +#: js/blocks/RhythmBlockPaletteBlocks.js:304 +msgid "1/32 note" msgstr "" -#: js/PitchBlocks.js:1280 -#.TRANS: fifth means the note is the four scale degrees above current note -msgid "fifth" +#: js/blocks/RhythmBlockPaletteBlocks.js:332 +msgid "1/16 note" msgstr "" -#: js/PitchBlocks.js:1300 -#.TRANS: fourth means the note is three scale degrees above current note -msgid "fourth" +#: js/blocks/RhythmBlockPaletteBlocks.js:360 +msgid "eighth note" msgstr "" -#: js/PitchBlocks.js:1319 -#.TRANS: third means the note is two scale degrees above current note -msgid "third" +#: js/blocks/RhythmBlockPaletteBlocks.js:388 +msgid "quarter note" msgstr "" -#: js/PitchBlocks.js:1338 -#.TRANS: second means the note is one scale degree above current note -msgid "second" +#: js/blocks/RhythmBlockPaletteBlocks.js:416 +msgid "half note" msgstr "" -#: js/PitchBlocks.js:1379 -msgid "The Scalar transposition block will shift the pitches contained inside Note blocks up (or down) the scale." +#: js/blocks/RhythmBlockPaletteBlocks.js:444 +msgid "whole note" msgstr "" -#: js/PitchBlocks.js:1381 -msgid "In the example shown above, sol is shifted up to la." +#: js/blocks/RhythmBlockPaletteBlocks.js:482 +#: js/blocks/RhythmBlockPaletteBlocks.js:551 +#: js/blocks/RhythmBlockPaletteBlocks.js:602 +#.TRANS: A tuplet is a note value divided into irregular time values. +msgid "tuplet" msgstr "" -#: js/PitchBlocks.js:1388 -#.TRANS: adjust the amount of shift (up or down) of a pitch by musical scale (scalar) steps -msgid "scalar transpose" +#: js/blocks/RhythmBlockPaletteBlocks.js:768 +msgid "septuplet" msgstr "" -#: js/PitchBlocks.js:1423 -msgid "The Accidental block is used to create sharps and flats" +#: js/blocks/RhythmBlockPaletteBlocks.js:796 +msgid "quintuplet" msgstr "" -#: js/PitchBlocks.js:1430 -#.TRANS: An accidental is a modification to a pitch, e.g., sharp or flat. -msgid "accidental override" +#: js/blocks/RhythmBlockPaletteBlocks.js:824 +msgid "triplet" msgstr "" -#: js/PitchBlocks.js:1543 -msgid "The Hertz block (in combination with a Number block) will play a sound at the specified frequency." +#: js/blocks/RhythmBlockPaletteBlocks.js:851 +msgid "simple tuplet" msgstr "" -#: js/PitchBlocks.js:1633 -msgid "The Pitch Number block will play a pitch associated by its number, e.g. 0 for C and 7 for G." +#: js/blocks/RhythmBlockPaletteBlocks.js:861 +msgid "Tuplets are a collection of notes that get scaled to a specific duration." msgstr "" -#: js/PitchBlocks.js:1665 -#: js/PitchBlocks.js:1707 -#.TRANS: a numeric mapping of the notes in an octave based on the musical mode -#.TRANS: a numeric mapping of the notes in an octave based on the musical mode -msgid "nth modal pitch" +#: js/blocks/DrumBlocks.js:59 +msgid "The Noise name block is used to select a noise synthesizer." msgstr "" -#: js/PitchBlocks.js:1668 -msgid "n^th Modal Pitch takes the pattern of pitches in semitones for a mode and makes each point a degree of the mode," +#: js/blocks/DrumBlocks.js:102 +msgid "The Drum name block is used to select a drum." msgstr "" -#: js/PitchBlocks.js:1670 -msgid "starting from 1 and regardless of tonal framework (i.e. not always 8 notes in the octave)" +#: js/blocks/DrumBlocks.js:146 +msgid "The Effects name block is used to select a sound effect." msgstr "" -#: js/PitchBlocks.js:1711 -msgid "N^th Modal Pitch takes a number as an input as the n^th degree for the given mode. 0 is the first position, 1 is the second, -1 is the note before the first etc." +#: js/blocks/DrumBlocks.js:163 +msgid "noise" msgstr "" -#: js/PitchBlocks.js:1713 -msgid "The pitches change according to the mode specified without any need for respellings." +#: js/blocks/DrumBlocks.js:177 +msgid "The Play noise block will generate white, pink, or brown noise." msgstr "" -#: js/PitchBlocks.js:1752 -msgid "Scale Degree is a common convention in music. Scale Degree offers seven possible positions in the scale (1-7) and can be modified via accidentals." +#: js/blocks/DrumBlocks.js:317 +msgid "Replace every instance of a pitch with a drum sound." msgstr "" -#: js/PitchBlocks.js:1754 -msgid "Scale Degree 1 is always the first pitch in a given scale, regardless of octave." +#: js/blocks/DrumBlocks.js:328 +#.TRANS: map a pitch to a drum sound +msgid "map pitch to drum" msgstr "" -#: js/PitchBlocks.js:1776 -#.TRANS: step some number of notes in current musical scale -msgid "scalar step" +#: js/blocks/DrumBlocks.js:395 +msgid "In the example above, a kick drum sound will be played instead of sol." msgstr "" -#: js/PitchBlocks.js:1781 -msgid "The Scalar Step block (in combination with a Number block) will play the next pitch in a scale," +#: js/blocks/DrumBlocks.js:407 +#.TRANS: set the current drum sound for playback +msgid "set drum" msgstr "" -#: js/PitchBlocks.js:1783 -msgid "eg if the last note played was sol, Scalar Step 1 will play la." +#: js/blocks/DrumBlocks.js:451 +msgid "sound effect" msgstr "" -#: js/PitchBlocks.js:1818 -msgid "The Pitch block specifies the pitch name and octave of a note that together determine the frequency of the note." +#: js/blocks/DrumBlocks.js:489 +msgid "You can use multiple Drum blocks within a Note block." msgstr "" -#: js/GraphicsBlocks.js:46 -#: js/DictActions.js:77 -#: js/DictActions.js:155 -#: js/DictActions.js:189 +#: js/blocks/GraphicsBlocks.js:46 +#: js/turtleactions/DictActions.js:77 +#: js/turtleactions/DictActions.js:144 +#: js/turtleactions/DictActions.js:173 msgid "heading" msgstr "方向" -#: js/GraphicsBlocks.js:56 +#: js/blocks/GraphicsBlocks.js:56 msgid "The Heading block returns the orientation of the mouse." msgstr "" -#: js/GraphicsBlocks.js:62 +#: js/blocks/GraphicsBlocks.js:62 msgid "The Heading block returns the orientation of the turtle." msgstr "" -#: js/GraphicsBlocks.js:133 +#: js/blocks/GraphicsBlocks.js:133 msgid "The Y block returns the vertical position of the mouse." msgstr "" -#: js/GraphicsBlocks.js:140 +#: js/blocks/GraphicsBlocks.js:140 msgid "The Y block returns the vertical position of the turtle." msgstr "" -#: js/GraphicsBlocks.js:149 +#: js/blocks/GraphicsBlocks.js:149 msgid "y3" msgstr "" -#: js/GraphicsBlocks.js:219 +#: js/blocks/GraphicsBlocks.js:219 msgid "The X block returns the horizontal position of the mouse." msgstr "" -#: js/GraphicsBlocks.js:226 +#: js/blocks/GraphicsBlocks.js:226 msgid "The X block returns the horizontal position of the turtle." msgstr "" -#: js/GraphicsBlocks.js:235 +#: js/blocks/GraphicsBlocks.js:235 msgid "x3" msgstr "" -#: js/GraphicsBlocks.js:295 +#: js/blocks/GraphicsBlocks.js:295 msgid "scroll xy" msgstr "" -#: js/GraphicsBlocks.js:303 +#: js/blocks/GraphicsBlocks.js:303 msgid "The Scroll XY block moves the canvas." msgstr "" -#: js/GraphicsBlocks.js:313 +#: js/blocks/GraphicsBlocks.js:313 msgid "x2" msgstr "" -#: js/GraphicsBlocks.js:313 +#: js/blocks/GraphicsBlocks.js:313 msgid "y2" msgstr "" -#: js/GraphicsBlocks.js:373 -#: js/temperament.js:213 -#: js/temperament.js:241 +#: js/blocks/GraphicsBlocks.js:373 +#: js/widgets/temperament.js:319 +#: js/widgets/temperament.js:347 msgid "clear" msgstr "" -#: js/GraphicsBlocks.js:426 +#: js/blocks/GraphicsBlocks.js:426 msgid "The Control-point 2 block sets the second control point for the Bezier curve." msgstr "" -#: js/GraphicsBlocks.js:433 +#: js/blocks/GraphicsBlocks.js:433 msgid "control point 2" msgstr "" -#: js/GraphicsBlocks.js:436 -#: js/GraphicsBlocks.js:487 -#: js/GraphicsBlocks.js:534 -#: js/GraphicsBlocks.js:750 +#: js/blocks/GraphicsBlocks.js:436 +#: js/blocks/GraphicsBlocks.js:487 +#: js/blocks/GraphicsBlocks.js:534 +#: js/blocks/GraphicsBlocks.js:750 msgid "x1" msgstr "" -#: js/GraphicsBlocks.js:436 -#: js/GraphicsBlocks.js:487 -#: js/GraphicsBlocks.js:534 -#: js/GraphicsBlocks.js:750 +#: js/blocks/GraphicsBlocks.js:436 +#: js/blocks/GraphicsBlocks.js:487 +#: js/blocks/GraphicsBlocks.js:534 +#: js/blocks/GraphicsBlocks.js:750 msgid "y1" msgstr "" -#: js/GraphicsBlocks.js:477 +#: js/blocks/GraphicsBlocks.js:477 msgid "The Control-point 1 block sets the first control point for the Bezier curve." msgstr "" -#: js/GraphicsBlocks.js:484 +#: js/blocks/GraphicsBlocks.js:484 msgid "control point 1" msgstr "" -#: js/GraphicsBlocks.js:527 +#: js/blocks/GraphicsBlocks.js:527 msgid "The Bezier block draws a Bezier curve." msgstr "" -#: js/GraphicsBlocks.js:531 +#: js/blocks/GraphicsBlocks.js:531 msgid "bezier" msgstr "" -#: js/GraphicsBlocks.js:592 +#: js/blocks/GraphicsBlocks.js:592 msgid "The Arc block moves the turtle in an arc." msgstr "" -#: js/GraphicsBlocks.js:600 +#: js/blocks/GraphicsBlocks.js:600 msgid "arc" msgstr "弧度" -#: js/GraphicsBlocks.js:603 +#: js/blocks/GraphicsBlocks.js:603 msgid "angle" msgstr "角度" -#: js/GraphicsBlocks.js:603 +#: js/blocks/GraphicsBlocks.js:603 msgid "radius" msgstr "半徑" -#: js/GraphicsBlocks.js:620 -#: js/GraphicsBlocks.js:767 -#: js/GraphicsBlocks.js:1010 -#: js/GraphicsBlocks.js:1093 +#: js/blocks/GraphicsBlocks.js:620 +#: js/blocks/GraphicsBlocks.js:767 +#: js/blocks/GraphicsBlocks.js:1010 +#: js/blocks/GraphicsBlocks.js:1093 msgid "Value must be within -5000 to 5000 when Wrap Mode is off." msgstr "" -#: js/GraphicsBlocks.js:622 -#: js/GraphicsBlocks.js:769 -#: js/GraphicsBlocks.js:1012 -#: js/GraphicsBlocks.js:1095 +#: js/blocks/GraphicsBlocks.js:622 +#: js/blocks/GraphicsBlocks.js:769 +#: js/blocks/GraphicsBlocks.js:1012 +#: js/blocks/GraphicsBlocks.js:1095 msgid "Value must be within -20000 to 20000 when Wrap Mode is on." msgstr "" -#: js/GraphicsBlocks.js:660 +#: js/blocks/GraphicsBlocks.js:660 msgid "set heading" msgstr "設定標頭" -#: js/GraphicsBlocks.js:673 +#: js/blocks/GraphicsBlocks.js:673 msgid "The Set heading block sets the heading of the turtle." msgstr "" -#: js/GraphicsBlocks.js:733 +#: js/blocks/GraphicsBlocks.js:733 msgid "The Set XY block moves the mouse to a specific position on the screen." msgstr "" -#: js/GraphicsBlocks.js:739 +#: js/blocks/GraphicsBlocks.js:739 msgid "The Set XY block moves the turtle to a specific position on the screen." msgstr "" -#: js/GraphicsBlocks.js:747 +#: js/blocks/GraphicsBlocks.js:747 msgid "set xy" msgstr "指定座標" -#: js/GraphicsBlocks.js:819 +#: js/blocks/GraphicsBlocks.js:819 msgid "The Right block turns the mouse to the right." msgstr "" -#: js/GraphicsBlocks.js:826 +#: js/blocks/GraphicsBlocks.js:826 msgid "The Right block turns the turtle to the right." msgstr "" -#: js/GraphicsBlocks.js:835 +#: js/blocks/GraphicsBlocks.js:835 msgid "right1" msgstr "" -#: js/GraphicsBlocks.js:835 +#: js/blocks/GraphicsBlocks.js:835 #: plugins/rodi.rtp:77 #: plugins/rodi.rtp:340 #: plugins/rodi.rtp:375 msgid "right" msgstr "右轉" -#: js/GraphicsBlocks.js:899 +#: js/blocks/GraphicsBlocks.js:899 msgid "The Left block turns the mouse to the left." msgstr "" -#: js/GraphicsBlocks.js:906 +#: js/blocks/GraphicsBlocks.js:906 msgid "The Left block turns the turtle to the left." msgstr "" -#: js/GraphicsBlocks.js:915 +#: js/blocks/GraphicsBlocks.js:915 msgid "left1" msgstr "" -#: js/GraphicsBlocks.js:915 +#: js/blocks/GraphicsBlocks.js:915 #: plugins/rodi.rtp:79 #: plugins/rodi.rtp:339 #: plugins/rodi.rtp:362 msgid "left" msgstr "左轉" -#: js/GraphicsBlocks.js:967 -#: js/temperament.js:734 -#: js/temperament.js:933 +#: js/blocks/GraphicsBlocks.js:967 +#: js/widgets/temperament.js:875 +#: js/widgets/temperament.js:1078 #: plugins/rodi.rtp:69 #: plugins/rodi.rtp:387 msgid "back" msgstr "後退" -#: js/GraphicsBlocks.js:976 +#: js/blocks/GraphicsBlocks.js:976 msgid "The Back block moves the mouse backward." msgstr "" -#: js/GraphicsBlocks.js:983 +#: js/blocks/GraphicsBlocks.js:983 msgid "The Back block moves the turtle backward." msgstr "" -#: js/GraphicsBlocks.js:1050 +#: js/blocks/GraphicsBlocks.js:1050 #: plugins/rodi.rtp:71 #: plugins/rodi.rtp:400 msgid "forward" msgstr "前進" -#: js/GraphicsBlocks.js:1059 +#: js/blocks/GraphicsBlocks.js:1059 msgid "The Forward block moves the mouse forward." msgstr "" -#: js/GraphicsBlocks.js:1066 +#: js/blocks/GraphicsBlocks.js:1066 msgid "The Forward block moves the turtle forward." msgstr "" -#: js/GraphicsBlocks.js:1154 -#: js/GraphicsBlocks.js:1172 +#: js/blocks/GraphicsBlocks.js:1154 +#: js/blocks/GraphicsBlocks.js:1172 msgid "wrap" msgstr "" -#: js/OrnamentBlocks.js:32 -msgid "staccato factor" -msgstr "" - -#: js/OrnamentBlocks.js:108 -msgid "slur factor" -msgstr "" - -#: js/OrnamentBlocks.js:217 -#: js/OrnamentBlocks.js:309 -#.TRANS: the neighbor refers to a neighboring note, e.g., D is a neighbor of C -msgid "neighbor" -msgstr "" - -#: js/OrnamentBlocks.js:293 -msgid "The Neighbor block rapidly switches between neighboring pitches." -msgstr "" - -#: js/OrnamentBlocks.js:364 -msgid "glide" -msgstr "" - -#: js/OrnamentBlocks.js:479 -#: js/OrnamentBlocks.js:643 -msgid "slur" -msgstr "" - -#: js/OrnamentBlocks.js:558 -#: js/OrnamentBlocks.js:710 -#.TRANS: play each note sharply detached from the others -msgid "staccato" -msgstr "" - -#: js/PenBlocks.js:24 +#: js/blocks/PenBlocks.js:30 msgid "purple" msgstr "" -#: js/PenBlocks.js:37 -#: js/SensorsBlocks.js:521 -#: plugins/rodi.rtp:219 -msgid "blue" -msgstr "" - -#: js/PenBlocks.js:50 -#: js/SensorsBlocks.js:577 -#: plugins/rodi.rtp:218 -msgid "green" -msgstr "" - -#: js/PenBlocks.js:63 +#: js/blocks/PenBlocks.js:80 msgid "yellow" msgstr "" -#: js/PenBlocks.js:76 +#: js/blocks/PenBlocks.js:96 #: plugins/nutrition.rtp:164 msgid "orange" msgstr "橘色" -#: js/PenBlocks.js:89 -#: js/SensorsBlocks.js:633 -#: plugins/rodi.rtp:217 -msgid "red" -msgstr "" - -#: js/PenBlocks.js:102 +#: js/blocks/PenBlocks.js:128 msgid "white" msgstr "" -#: js/PenBlocks.js:115 +#: js/blocks/PenBlocks.js:144 msgid "black" msgstr "" -#: js/PenBlocks.js:128 +#: js/blocks/PenBlocks.js:163 msgid "begin fill" msgstr "" -#: js/PenBlocks.js:143 +#: js/blocks/PenBlocks.js:190 msgid "end fill" msgstr "停止填滿" -#: js/PenBlocks.js:159 -#: js/PenBlocks.js:386 +#: js/blocks/PenBlocks.js:212 +#: js/blocks/PenBlocks.js:560 #.TRANS: set the background color msgid "background" msgstr "" -#: js/PenBlocks.js:206 -#: js/DictActions.js:71 -#: js/DictActions.js:149 -#: js/DictActions.js:186 +#: js/blocks/PenBlocks.js:274 +#: js/turtleactions/DictActions.js:71 +#: js/turtleactions/DictActions.js:138 +#: js/turtleactions/DictActions.js:170 msgid "grey" msgstr "" -#: js/PenBlocks.js:210 +#: js/blocks/PenBlocks.js:282 msgid "The Grey block returns the current pen grey value." msgstr "" -#: js/PenBlocks.js:243 -#: js/DictActions.js:69 -#: js/DictActions.js:147 -#: js/DictActions.js:185 +#: js/blocks/PenBlocks.js:340 +#: js/turtleactions/DictActions.js:69 +#: js/turtleactions/DictActions.js:136 +#: js/turtleactions/DictActions.js:169 msgid "shade" msgstr "形狀" -#: js/PenBlocks.js:247 +#: js/blocks/PenBlocks.js:347 msgid "The Shade block returns the current pen shade value." msgstr "" -#: js/PenBlocks.js:280 -#: js/DictActions.js:67 -#: js/DictActions.js:145 -#: js/DictActions.js:184 +#: js/blocks/PenBlocks.js:405 +#: js/turtleactions/DictActions.js:67 +#: js/turtleactions/DictActions.js:134 +#: js/turtleactions/DictActions.js:168 msgid "color" msgstr "顏色" -#: js/PenBlocks.js:285 +#: js/blocks/PenBlocks.js:415 msgid "The Color block returns the current pen color." msgstr "" -#: js/PenBlocks.js:318 -#: js/DictActions.js:73 -#: js/DictActions.js:151 -#: js/DictActions.js:187 +#: js/blocks/PenBlocks.js:470 +#: js/turtleactions/DictActions.js:73 +#: js/turtleactions/DictActions.js:140 +#: js/turtleactions/DictActions.js:171 msgid "pen size" msgstr "畫筆大小" -#: js/PenBlocks.js:322 +#: js/blocks/PenBlocks.js:474 msgid "The Pen size block returns the current pen size value." msgstr "" -#: js/PenBlocks.js:355 +#: js/blocks/PenBlocks.js:513 msgid "set font" msgstr "" -#: js/PenBlocks.js:358 +#: js/blocks/PenBlocks.js:518 msgid "The Set font block sets the font used by the Show block." msgstr "" -#: js/PenBlocks.js:391 +#: js/blocks/PenBlocks.js:567 msgid "The Background block sets the window background color." msgstr "" -#: js/PenBlocks.js:408 +#: js/blocks/PenBlocks.js:598 msgid "The Hollow line block creates a line with a hollow center." msgstr "" -#: js/PenBlocks.js:415 +#: js/blocks/PenBlocks.js:606 #.TRANS: draw a line logo has a hollow space down its center msgid "hollow line" msgstr "" -#: js/PenBlocks.js:462 +#: js/blocks/PenBlocks.js:675 msgid "The Fill block fills in a shape with a color." msgstr "" -#: js/PenBlocks.js:470 +#: js/blocks/PenBlocks.js:684 #.TRANS: fill in as a solid color msgid "fill" msgstr "" -#: js/PenBlocks.js:527 +#: js/blocks/PenBlocks.js:761 #.TRANS: raise up the pen so logo it does not draw when it is moved msgid "pen up" msgstr "提筆" -#: js/PenBlocks.js:532 +#: js/blocks/PenBlocks.js:768 msgid "The Pen-up block raises the pen so that it does not draw." msgstr "" -#: js/PenBlocks.js:552 +#: js/blocks/PenBlocks.js:802 #.TRANS: put down the pen so logo it draws when it is moved msgid "pen down" msgstr "落筆" -#: js/PenBlocks.js:557 +#: js/blocks/PenBlocks.js:810 msgid "The Pen-down block lowers the pen so that it draws." msgstr "" -#: js/PenBlocks.js:577 +#: js/blocks/PenBlocks.js:844 #.TRANS: set the width of the line drawn by the pen msgid "set pen size" msgstr "設定畫筆大小" -#: js/PenBlocks.js:583 +#: js/blocks/PenBlocks.js:854 msgid "The Set-pen-size block changes the size of the pen." msgstr "" -#: js/PenBlocks.js:623 +#: js/blocks/PenBlocks.js:913 #.TRANS: set degree of translucence of the pen color msgid "set translucency" msgstr "" -#: js/PenBlocks.js:627 +#: js/blocks/PenBlocks.js:921 msgid "The Set translucency block changes the opacity of the pen." msgstr "" -#: js/PenBlocks.js:668 +#: js/blocks/PenBlocks.js:981 msgid "set hue" msgstr "" -#: js/PenBlocks.js:672 +#: js/blocks/PenBlocks.js:989 msgid "The Set hue block changes the color of the pen." msgstr "" -#: js/PenBlocks.js:711 +#: js/blocks/PenBlocks.js:1047 msgid "set shade" msgstr "設定填滿顏色" -#: js/PenBlocks.js:717 +#: js/blocks/PenBlocks.js:1057 msgid "The Set-shade block changes the pen color from dark to light." msgstr "" -#: js/PenBlocks.js:757 +#: js/blocks/PenBlocks.js:1111 #.TRANS: set the level of vividness of the pen color msgid "set grey" msgstr "" -#: js/PenBlocks.js:761 +#: js/blocks/PenBlocks.js:1119 msgid "The Set grey block changes the vividness of the pen color." msgstr "" -#: js/PenBlocks.js:800 +#: js/blocks/PenBlocks.js:1172 msgid "set color" msgstr "設定線條顏色" -#: js/PenBlocks.js:806 +#: js/blocks/PenBlocks.js:1182 msgid "The Set-color block changes the pen color." msgstr "" -#: js/VolumeBlocks.js:35 -msgid "synth volume" -msgstr "" - -#: js/VolumeBlocks.js:39 -msgid "The Synth volume block returns the current volume of the current synthesizer." -msgstr "" - -#: js/VolumeBlocks.js:47 -#: js/musicutils.js:730 -#: js/synthutils.js:56 -#.TRANS: musical instrument -msgid "piano" -msgstr "" - -#: js/VolumeBlocks.js:105 -msgid "master volume" -msgstr "" - -#: js/VolumeBlocks.js:109 -msgid "The Master volume block returns the master volume." -msgstr "" - -#: js/VolumeBlocks.js:355 -#: js/VolumeBlocks.js:524 -msgid "set synth volume" -msgstr "" - -#: js/VolumeBlocks.js:362 -#: js/VolumeBlocks.js:545 -msgid "synth" -msgstr "" - -#: js/VolumeBlocks.js:403 -#: js/VolumeBlocks.js:577 -#: js/VolumeBlocks.js:740 -#: js/VolumeActions.js:173 -msgid "Setting volume to 0." -msgstr "" - -#: js/VolumeBlocks.js:440 -msgid "Synth not found" -msgstr "" - -#: js/VolumeBlocks.js:494 -msgid "set drum volume" -msgstr "" - -#: js/VolumeBlocks.js:530 -msgid "The Set synth volume block will change the volume of a particular synth," -msgstr "" - -#: js/VolumeBlocks.js:532 -msgid "eg guitar violin snare drum etc." -msgstr "" - -#: js/VolumeBlocks.js:534 -msgid "The default volume is 50." -msgstr "" - -#: js/VolumeBlocks.js:536 -msgid "The range is 0 for silence to 100 for full volume." -msgstr "" - -#: js/VolumeBlocks.js:597 -msgid "set panning" -msgstr "" - -#: js/VolumeBlocks.js:603 -msgid "The Set Panning block sets the panning for all synthesizers." -msgstr "" - -#: js/VolumeBlocks.js:625 -msgid "Warning: Sound is coming out from only the left or right side." -msgstr "" - -#: js/VolumeBlocks.js:647 -#: js/VolumeBlocks.js:695 -msgid "set master volume" -msgstr "" - -#: js/VolumeBlocks.js:653 -msgid "The Set master volume block sets the volume for all synthesizers." -msgstr "" - -#: js/VolumeBlocks.js:784 -msgid "The Set relative volume block changes the volume of the contained notes." -msgstr "" - -#: js/VolumeBlocks.js:791 -msgid "set relative volume" -msgstr "" - -#: js/VolumeBlocks.js:857 -msgid "decrescendo" -msgstr "" - -#: js/VolumeBlocks.js:921 -msgid "crescendo" -msgstr "" - -#: js/ToneBlocks.js:34 -msgid "oscillator" -msgstr "" - -#: js/ToneBlocks.js:44 -#: js/timbre.js:1562 -#.TRANS: Partials refers to the number of sine waves combined into the sound. -msgid "partials" -msgstr "" - -#: js/ToneBlocks.js:76 -msgid "You are adding multiple oscillator blocks." -msgstr "" - -#: js/ToneBlocks.js:144 -#: js/timbre.js:1225 -#.TRANS: a duo synthesizer combines a synth with a sequencer -msgid "duo synth" -msgstr "" - -#: js/ToneBlocks.js:149 -msgid "The Duo synth block is a duo-frequency modulator used to define a timbre." -msgstr "" - -#: js/ToneBlocks.js:157 -#: js/timbre.js:1476 -msgid "vibrato rate" -msgstr "" - -#: js/ToneBlocks.js:157 -msgid "vibrato intensity" -msgstr "" - -#: js/ToneBlocks.js:185 -#: js/timbre.js:1221 -#.TRANS: AM (amplitude modulation) synthesizer -msgid "AM synth" -msgstr "" - -#: js/ToneBlocks.js:189 -msgid "The AM synth block is an amplitude modulator used to define a timbre." -msgstr "" - -#: js/ToneBlocks.js:224 -#: js/timbre.js:1223 -#.TRANS: FM (frequency modulation) synthesizer -msgid "FM synth" -msgstr "" - -#: js/ToneBlocks.js:228 -msgid "The FM synth block is a frequency modulator used to define a timbre." -msgstr "" - -#: js/ToneBlocks.js:262 -msgid "partial" +#: js/blocks/PitchBlocks.js:141 +#.TRANS: musical transposition (adjustment of pitch up or down) +msgid "transposition" msgstr "" -#: js/ToneBlocks.js:265 -msgid "The Partial block is used to specify a weight for a specific partial harmonic." +#: js/blocks/PitchBlocks.js:168 +#.TRANS: step down one note in current musical scale +msgid "scalar step down" msgstr "" -#: js/ToneBlocks.js:284 -#.TRANS: partials are weighted components in a harmonic series -msgid "Partial weight must be between 0 and 1." +#: js/blocks/PitchBlocks.js:172 +msgid "The Scalar step down block returns the number of semi-tones down to the previous note in the current key and mode." msgstr "" -#: js/ToneBlocks.js:297 -#.TRANS: partials are weighted components in a harmonic series -msgid "Partial block should be used inside of a Weighted-partials block." +#: js/blocks/PitchBlocks.js:190 +#.TRANS: step up one note in current musical scale +msgid "scalar step up" msgstr "" -#: js/ToneBlocks.js:325 -#.TRANS: partials are weighted components in a harmonic series -msgid "weighted partials" +#: js/blocks/PitchBlocks.js:194 +msgid "The Scalar step up block returns the number of semi-tones up to the next note in the current key and mode." msgstr "" -#: js/ToneBlocks.js:383 -msgid "The Harmonic block will add harmonics to the contained notes." +#: js/blocks/PitchBlocks.js:212 +#.TRANS: the change measured in half-steps between the current pitch and the previous pitch +msgid "change in pitch" msgstr "" -#: js/ToneBlocks.js:390 -#.TRANS: A harmonic is an overtone. -msgid "harmonic" +#: js/blocks/PitchBlocks.js:216 +msgid "The Change in pitch block is the difference (in half steps) between the current pitch being played and the previous pitch played." msgstr "" -#: js/ToneBlocks.js:431 -msgid "The Distortion block adds distortion to the pitch." +#: js/blocks/PitchBlocks.js:243 +#.TRANS: the change measured in scale-steps between the current pitch and the previous pitch +msgid "scalar change in pitch" msgstr "" -#: js/ToneBlocks.js:438 -#: js/timbre.js:2100 -#.TRANS: distortion is an alteration in the sound -msgid "distortion" +#: js/blocks/PitchBlocks.js:250 +#: js/blocks/PitchBlocks.js:432 +#: js/blocks/PitchBlocks.js:1667 +#: js/turtleactions/DictActions.js:89 +#: js/widgets/temperament.js:610 +#: js/widgets/temperament.js:614 +#: js/widgets/temperament.js:855 +#.TRANS: convert current note to piano key (1-88) +#.TRANS: a mapping of pitch to the 88 piano keys +msgid "pitch number" msgstr "" -#: js/ToneBlocks.js:487 -msgid "The Tremolo block adds a wavering effect." +#: js/blocks/PitchBlocks.js:256 +msgid "The Pitch number block is the value of the pitch of the note currently being played." msgstr "" -#: js/ToneBlocks.js:495 -#: js/timbre.js:2092 -#.TRANS: a wavering effect in a musical tone -msgid "tremolo" +#: js/blocks/PitchBlocks.js:329 +#: js/blocks/PitchBlocks.js:433 +#.TRANS: the current pitch expressed in Hertz +msgid "pitch in hertz" msgstr "" -#: js/ToneBlocks.js:500 -#: js/ToneBlocks.js:569 -#: js/ToneBlocks.js:630 -#: js/ToneBlocks.js:689 -#: js/timbre.js:2134 -#: js/timbre.js:2222 -#: js/timbre.js:2317 -#: js/timbre.js:2419 -#.TRANS: rate at which tremolo wavers -msgid "rate" +#: js/blocks/PitchBlocks.js:334 +msgid "The Pitch in Hertz block is the value in Hertz of the pitch of the note currently being played." msgstr "" -#: js/ToneBlocks.js:502 -#: js/ToneBlocks.js:630 -#: js/timbre.js:2137 -#: js/timbre.js:2328 -#.TRANS: amplitude of tremolo waver -msgid "depth" +#: js/blocks/PitchBlocks.js:367 +#: js/turtleactions/DictActions.js:87 +msgid "current pitch" msgstr "" -#: js/ToneBlocks.js:559 -msgid "The Phaser block adds a sweeping sound." +#: js/blocks/PitchBlocks.js:373 +msgid "The Current Pitch block is used with the Pitch Converter block. In the example above, current pitch, sol 4, is displayed as 392 hertz." msgstr "" -#: js/ToneBlocks.js:566 -#: js/timbre.js:2098 -#.TRANS: alter the phase of the sound -msgid "phaser" +#: js/blocks/PitchBlocks.js:410 +msgid "This block converts the pitch value of the last note played into different formats such as hertz, letter name, pitch number, et al." msgstr "" -#: js/ToneBlocks.js:569 -#: js/timbre.js:2422 -msgid "octaves" +#: js/blocks/PitchBlocks.js:434 +msgid "alphabet" msgstr "" -#: js/ToneBlocks.js:569 -#: js/timbre.js:2425 -msgid "base frequency" +#: js/blocks/PitchBlocks.js:436 +#.TRANS: Translate as "alphabet class" +msgid "letter class" msgstr "" -#: js/ToneBlocks.js:619 -msgid "The Chorus block adds a chorus effect." +#: js/blocks/PitchBlocks.js:437 +msgid "solfege class" msgstr "" -#: js/ToneBlocks.js:627 -#: js/timbre.js:2096 -#.TRANS: musical effect to simulate a choral sound -msgid "chorus" +#: js/blocks/PitchBlocks.js:438 +msgid "staff y" msgstr "" -#: js/ToneBlocks.js:630 -msgid "delay" +#: js/blocks/PitchBlocks.js:439 +msgid "solfege syllable" msgstr "" -#: js/ToneBlocks.js:678 -msgid "The Vibrato block adds a rapid, slight variation in pitch." +#: js/blocks/PitchBlocks.js:440 +msgid "pitch class" msgstr "" -#: js/ToneBlocks.js:686 -#: js/timbre.js:2094 -#.TRANS: a rapid, slight variation in pitch -msgid "vibrato" +#: js/blocks/PitchBlocks.js:441 +msgid "scalar class" msgstr "" -#: js/ToneBlocks.js:689 -#: js/timbre.js:2221 -msgid "intensity" +#: js/blocks/PitchBlocks.js:443 +msgid "nth degree" msgstr "" -#: js/ToneBlocks.js:733 -#.TRANS: select synthesizer -msgid "set synth" +#: js/blocks/PitchBlocks.js:444 +msgid "pitch to shade" msgstr "" -#: js/ToneBlocks.js:804 -msgid "synth name" +#: js/blocks/PitchBlocks.js:445 +msgid "pitch to color" msgstr "" -#: js/ToneBlocks.js:842 -msgid "set default instrument" +#: js/blocks/PitchBlocks.js:629 +#: js/widgets/musickeyboard.js:735 +#.TRANS: MIDI is a technical standard for electronic music +msgid "MIDI" msgstr "" -#: js/ToneBlocks.js:895 -#: js/ToneBlocks.js:943 -#.TRANS: set the characteristics of a custom instrument -msgid "set instrument" +#: js/blocks/PitchBlocks.js:642 +#.TRANS: set an offset associated with the numeric piano keyboard mapping +msgid "set pitch number offset" msgstr "" -#: js/ToneBlocks.js:898 -#: js/ToneBlocks.js:926 -#: js/ToneBlocks.js:932 -msgid "The Set instrument block selects a voice for the synthesizer," +#: js/blocks/PitchBlocks.js:645 +msgid "The Set pitch number offset block is used to set the offset for mapping pitch numbers to pitch and octave." msgstr "" -#: js/ToneBlocks.js:900 -#: js/ToneBlocks.js:934 -msgid "eg guitar piano violin or cello." +#: js/blocks/PitchBlocks.js:679 +#.TRANS: convert piano key number (1-88) to pitch +msgid "number to pitch" msgstr "" -#: js/ToneBlocks.js:1015 -msgid "Import a sound file to use as an instrument and set its pitch center." +#: js/blocks/PitchBlocks.js:682 +msgid "The Number to pitch block will convert a pitch number to a pich name." msgstr "" -#: js/ToneBlocks.js:1110 -msgid "Upload a sound file to connect with the sample block." +#: js/blocks/PitchBlocks.js:715 +#.TRANS: convert piano key number (1-88) to octave +msgid "number to octave" msgstr "" -#: js/MeterBlocks.js:34 -#.TRANS: musical meter (time signature), e.g., 4:4 -msgid "current meter" +#: js/blocks/PitchBlocks.js:717 +msgid "The Number to octave block will convert a pitch number to an octave." msgstr "" -#: js/MeterBlocks.js:85 -#.TRANS: number of beats per minute -msgid "beat factor" +#: js/blocks/PitchBlocks.js:726 +msgid "y to pitch" msgstr "" -#: js/MeterBlocks.js:161 -msgid "The Beats per minute block returns the current beats per minute." +#: js/blocks/PitchBlocks.js:729 +msgid "Y to pitch block will convert a staff y position to corresponding pitch notation." msgstr "" -#: js/MeterBlocks.js:169 -#: js/status.js:152 -#.TRANS: number of beats played per minute -msgid "beats per minute2" +#: js/blocks/PitchBlocks.js:841 +msgid "accidental selector" msgstr "" -#: js/MeterBlocks.js:169 -#: js/MeterBlocks.js:1056 -#: js/MeterBlocks.js:1133 -#: js/MeterBlocks.js:1211 -#.TRANS: sets tempo by defining a beat and beats per minute -msgid "beats per minute" +#: js/blocks/PitchBlocks.js:844 +msgid "The Accidental selector block is used to choose between double-sharp, sharp, natural, flat, and double-flat." msgstr "" -#: js/MeterBlocks.js:233 -#.TRANS: count of current musical measure in meter -msgid "measure count" +#: js/blocks/PitchBlocks.js:858 +msgid "Pitch can be specified in terms of ni dha pa ma ga re sa." msgstr "" -#: js/MeterBlocks.js:241 -msgid "The Measure count block returns the current measure." +#: js/blocks/PitchBlocks.js:872 +msgid "Pitch can be specified in terms of C D E F G A B." msgstr "" -#: js/MeterBlocks.js:290 -#.TRANS: count of current beat in the meter -msgid "beat count" +#: js/blocks/PitchBlocks.js:884 +msgid "solfege" msgstr "" -#: js/MeterBlocks.js:300 -#: js/MeterBlocks.js:311 -#: js/MeterBlocks.js:565 -#: js/MeterBlocks.js:576 -msgid "The Beat count block is the number of the current beat," +#: js/blocks/PitchBlocks.js:887 +msgid "Pitch can be specified in terms of do re mi fa sol la ti." msgstr "" -#: js/MeterBlocks.js:313 -#: js/MeterBlocks.js:578 -msgid "eg 1, 2, 3, or 4." +#: js/blocks/PitchBlocks.js:922 +msgid "The Invert block rotates any contained notes around a target note." msgstr "" -#: js/MeterBlocks.js:368 -#.TRANS: count the number of notes -msgid "sum note values" +#: js/blocks/PitchBlocks.js:929 +#.TRANS: pitch inversion rotates a pitch around another pitch +msgid "invert" msgstr "" -#: js/MeterBlocks.js:376 -#: js/MeterBlocks.js:440 -msgid "The Note counter block can be used to count the number of contained notes." +#: js/blocks/PitchBlocks.js:968 +#.TRANS: pitch inversion rotates a pitch around another pitch (odd number) +msgid "invert (odd)" msgstr "" -#: js/MeterBlocks.js:432 -#.TRANS: count the number of notes -msgid "note counter" +#: js/blocks/PitchBlocks.js:1001 +#.TRANS: pitch inversion rotates a pitch around another pitch (even number) +msgid "invert (even)" msgstr "" -#: js/MeterBlocks.js:496 -#.TRANS: number of whole notes that have been played -msgid "whole notes played" +#: js/blocks/PitchBlocks.js:1022 +#.TRANS: register is the octave of the current pitch +msgid "register" msgstr "" -#: js/MeterBlocks.js:505 -msgid "The Whole notes played block returns the total number of whole notes played." +#: js/blocks/PitchBlocks.js:1026 +msgid "The Register block provides an easy way to modify the register (octave) of the notes that follow it." msgstr "" -#: js/MeterBlocks.js:555 -#: js/DictActions.js:83 -#.TRANS: number of notes that have been played -msgid "notes played" +#: js/blocks/PitchBlocks.js:1047 +#.TRANS: cents are units used to specify the ratio between pitches. There are 100 cents between successive notes. +msgid "50 cents" msgstr "" -#: js/MeterBlocks.js:653 -msgid "The No clock block decouples the notes from the master clock." +#: js/blocks/PitchBlocks.js:1102 +msgid "The Semi-tone transposition block will shift the pitches contained inside Note blocks up (or down) by half steps." msgstr "" -#: js/MeterBlocks.js:661 -#.TRANS: don't lock notes to master clock -msgid "no clock" +#: js/blocks/PitchBlocks.js:1104 +msgid "In the example shown above, sol is shifted up to sol#." msgstr "" -#: js/MeterBlocks.js:700 -msgid "on weak beat do" +#: js/blocks/PitchBlocks.js:1110 +#.TRANS: adjust the amount of shift (up or down) of a pitch +msgid "semi-tone transpose" msgstr "" -#: js/MeterBlocks.js:705 -msgid "The On-weak-beat block lets you specify actions to take on weak (off) beats." +#: js/blocks/PitchBlocks.js:1143 +msgid "The Transpose by Ratio block will shift the pitches contained inside Note blocks up (or down) by a ratio" msgstr "" -#: js/MeterBlocks.js:750 -msgid "on strong beat" +#: js/blocks/PitchBlocks.js:1149 +#.TRANS: adjust the amount of shift (up or down) of a pitch +msgid "transpose by ratio" msgstr "" -#: js/MeterBlocks.js:758 -msgid "The On-strong-beat block lets you specify actions to take on specified beats." +#: js/blocks/PitchBlocks.js:1232 +#.TRANS: down sixth means the note is five scale degrees below current note +msgid "down sixth" msgstr "" -#: js/MeterBlocks.js:769 -msgid "beat" +#: js/blocks/PitchBlocks.js:1251 +#.TRANS: down third means the note is two scale degrees below current note +msgid "down third" msgstr "" -#: js/MeterBlocks.js:813 -msgid "on every beat do" +#: js/blocks/PitchBlocks.js:1270 +#.TRANS: seventh means the note is the six scale degrees above current note +msgid "seventh" msgstr "" -#: js/MeterBlocks.js:821 -msgid "The On-every-beat block lets you specify actions to take on every beat." +#: js/blocks/PitchBlocks.js:1289 +#.TRANS: sixth means the note is the five scale degrees above current note +msgid "sixth" msgstr "" -#: js/MeterBlocks.js:874 -msgid "on every note do" +#: js/blocks/PitchBlocks.js:1308 +#.TRANS: fifth means the note is the four scale degrees above current note +msgid "fifth" msgstr "" -#: js/MeterBlocks.js:882 -msgid "The On-every-note block lets you specify actions to take on every note." +#: js/blocks/PitchBlocks.js:1328 +#.TRANS: fourth means the note is three scale degrees above current note +msgid "fourth" msgstr "" -#: js/MeterBlocks.js:928 -#: js/MeterBlocks.js:999 -#.TRANS: sets tempo by defining a beat and beats per minute -msgid "master beats per minute" +#: js/blocks/PitchBlocks.js:1347 +#.TRANS: third means the note is two scale degrees above current note +msgid "third" msgstr "" -#: js/MeterBlocks.js:952 -#: js/MeterBlocks.js:1078 -#: js/MeterBlocks.js:1135 -msgid "bpm" +#: js/blocks/PitchBlocks.js:1366 +#.TRANS: second means the note is one scale degree above current note +msgid "second" msgstr "" -#: js/MeterBlocks.js:952 -#: js/MeterBlocks.js:1078 -#: js/MeterBlocks.js:1135 -msgid "beat value" +#: js/blocks/PitchBlocks.js:1407 +msgid "The Scalar transposition block will shift the pitches contained inside Note blocks up (or down) the scale." msgstr "" -#: js/MeterBlocks.js:1024 -#: js/MeterBlocks.js:1167 -#: js/MeterBlocks.js:1241 -msgid "Beats per minute must be > 30." +#: js/blocks/PitchBlocks.js:1409 +msgid "In the example shown above, sol is shifted up to la." msgstr "" -#: js/MeterBlocks.js:1027 -#: js/MeterBlocks.js:1170 -#: js/MeterBlocks.js:1244 -msgid "Maximum beats per minute is 1000." +#: js/blocks/PitchBlocks.js:1416 +#.TRANS: adjust the amount of shift (up or down) of a pitch by musical scale (scalar) steps +msgid "scalar transpose" msgstr "" -#: js/MeterBlocks.js:1068 -msgid "The Beats per minute block sets the number of 1/4 notes per minute." +#: js/blocks/PitchBlocks.js:1451 +msgid "The Accidental block is used to create sharps and flats" msgstr "" -#: js/MeterBlocks.js:1279 -#.TRANS: anacrusis -msgid "pickup" +#: js/blocks/PitchBlocks.js:1458 +#.TRANS: An accidental is a modification to a pitch, e.g., sharp or flat. +msgid "accidental override" msgstr "" -#: js/MeterBlocks.js:1367 -msgid "number of beats" +#: js/blocks/PitchBlocks.js:1581 +msgid "The Hertz block (in combination with a Number block) will play a sound at the specified frequency." msgstr "" -#: js/DictBlocks.js:77 -msgid "show dictionary" +#: js/blocks/PitchBlocks.js:1671 +msgid "The Pitch Number block will play a pitch associated by its number, e.g. 0 for C and 7 for G." msgstr "" -#: js/DictBlocks.js:129 -msgid "The Dictionary block returns a dictionary." +#: js/blocks/PitchBlocks.js:1703 +#: js/blocks/PitchBlocks.js:1745 +#.TRANS: a numeric mapping of the notes in an octave based on the musical mode +#.TRANS: a numeric mapping of the notes in an octave based on the musical mode +msgid "nth modal pitch" msgstr "" -#: js/DictBlocks.js:197 -#: js/DictBlocks.js:339 -msgid "The Get-dict block returns a value in the dictionary for a specified key." +#: js/blocks/PitchBlocks.js:1706 +msgid "n^th Modal Pitch takes the pattern of pitches in semitones for a mode and makes each point a degree of the mode," msgstr "" -#: js/DictBlocks.js:212 -#: js/DictBlocks.js:354 -#.TRANS: retrieve a value from the dictionary with a given key -msgid "get value" +#: js/blocks/PitchBlocks.js:1708 +msgid "starting from 1 and regardless of tonal framework (i.e. not always 8 notes in the octave)" msgstr "" -#: js/DictBlocks.js:215 -#: js/DictBlocks.js:216 -#: js/DictBlocks.js:289 -#: js/DictBlocks.js:290 -#: js/DictBlocks.js:357 -#: js/DictBlocks.js:430 -#: js/DictBlocks.js:431 -msgid "key2" +#: js/blocks/PitchBlocks.js:1749 +msgid "N^th Modal Pitch takes a number as an input as the n^th degree for the given mode. 0 is the first position, 1 is the second, -1 is the note before the first etc." msgstr "" -#: js/DictBlocks.js:271 -#: js/DictBlocks.js:411 -msgid "The Set-dict block sets a value in the dictionary for a specified key." +#: js/blocks/PitchBlocks.js:1751 +msgid "The pitches change according to the mode specified without any need for respellings." msgstr "" -#: js/DictBlocks.js:286 -#: js/DictBlocks.js:427 -#.TRANS: set a value in the dictionary for a given key -msgid "set value" +#: js/blocks/PitchBlocks.js:1790 +msgid "Scale Degree is a common convention in music. Scale Degree offers seven possible positions in the scale (1-7) and can be modified via accidentals." msgstr "" -#: js/ExtrasBlocks.js:33 -msgid "fraction" +#: js/blocks/PitchBlocks.js:1792 +msgid "Scale Degree 1 is always the first pitch in a given scale, regardless of octave." msgstr "" -#: js/ExtrasBlocks.js:36 -msgid "Convert a float to a fraction" +#: js/blocks/PitchBlocks.js:1814 +#.TRANS: step some number of notes in current musical scale +msgid "scalar step" msgstr "" -#: js/ExtrasBlocks.js:93 -msgid "save as ABC" +#: js/blocks/PitchBlocks.js:1819 +msgid "The Scalar Step block (in combination with a Number block) will play the next pitch in a scale," msgstr "" -#: js/ExtrasBlocks.js:96 -#: js/ExtrasBlocks.js:132 -#: js/ExtrasBlocks.js:168 -msgid "title" +#: js/blocks/PitchBlocks.js:1821 +msgid "eg if the last note played was sol, Scalar Step 1 will play la." msgstr "" -#: js/ExtrasBlocks.js:129 -msgid "save as Lilypond" +#: js/blocks/PitchBlocks.js:1857 +msgid "The Pitch block specifies the pitch name and octave of a note that together determine the frequency of the note." msgstr "" -#: js/ExtrasBlocks.js:165 -msgid "save as SVG" +#: js/blocks/ProgramBlocks.js:33 +msgid "The Load-heap-from-app block loads the heap from a web page." msgstr "" -#: js/ExtrasBlocks.js:216 -msgid "no background" +#: js/blocks/ProgramBlocks.js:44 +#.TRANS: load the heap contents from a URL +msgid "load heap from App" msgstr "" -#: js/ExtrasBlocks.js:219 -msgid "The No background block eliminates the background from the saved SVG output." -msgstr "" +#: js/blocks/ProgramBlocks.js:95 +msgid "Error parsing JSON data:" +msgstr "解析JSON数据时出错" -#: js/ExtrasBlocks.js:247 -msgid "show blocks" -msgstr "顯示區塊" +#: js/blocks/ProgramBlocks.js:100 +msgid "404: Page not found" +msgstr "找不到网页" -#: js/ExtrasBlocks.js:249 -msgid "The Show blocks block shows the blocks." +#: js/blocks/ProgramBlocks.js:133 +msgid "The Save-heap-to-app block saves the heap to a web page." msgstr "" -#: js/ExtrasBlocks.js:274 -msgid "hide blocks" -msgstr "隱藏區塊" +#: js/blocks/ProgramBlocks.js:144 +#.TRANS: save the heap contents to a URL +msgid "save heap to App" +msgstr "" -#: js/ExtrasBlocks.js:276 -msgid "The Hide blocks block hides the blocks." +#: js/blocks/ProgramBlocks.js:189 +msgid "Cannot find a valid heap for" msgstr "" -#: js/ExtrasBlocks.js:305 -#: js/ExtrasBlocks.js:335 -msgid "The Space block is used to add space between blocks." +#: js/blocks/ProgramBlocks.js:206 +msgid "The Load-heap block loads the heap from a file." msgstr "" -#: js/ExtrasBlocks.js:373 -msgid "wait" -msgstr "等待" +#: js/blocks/ProgramBlocks.js:217 +#.TRANS: load the heap from a file +msgid "load heap" +msgstr "" -#: js/ExtrasBlocks.js:376 -msgid "The Wait block pauses the program for a specified number of seconds." +#: js/blocks/ProgramBlocks.js:270 +msgid "The file you selected does not contain a valid heap." msgstr "" -#: js/ExtrasBlocks.js:430 -#: plugins/facebook.rtp:30 -msgid "comment" -msgstr "註記" +#: js/blocks/ProgramBlocks.js:275 +msgid "The loadHeap block needs a loadFile block." +msgstr "" -#: js/ExtrasBlocks.js:466 -msgid "print" -msgstr "顯示" +#: js/blocks/ProgramBlocks.js:291 +msgid "The Set-heap block loads the heap." +msgstr "" -#: js/ExtrasBlocks.js:473 -msgid "The Print block displays text at the top of the screen." +#: js/blocks/ProgramBlocks.js:340 +msgid "The block you selected does not contain a valid heap." msgstr "" -#: js/ExtrasBlocks.js:579 -msgid "display grid" +#: js/blocks/ProgramBlocks.js:343 +msgid "The Set heap block needs a heap." msgstr "" -#: js/ExtrasBlocks.js:584 -msgid "The Display Grid Block changes the grid type" +#: js/blocks/ProgramBlocks.js:360 +msgid "The Load-dictionary block loads a dictionary from a file." msgstr "" -#: js/ExtrasBlocks.js:686 -#: js/ExtrasBlocks.js:705 -#: js/ExtrasBlocks.js:728 -#: js/ExtrasBlocks.js:751 -#: js/ExtrasBlocks.js:769 -#: js/ExtrasBlocks.js:788 -#: js/ExtrasBlocks.js:807 -#: js/ExtrasBlocks.js:826 -msgid "unknown" +#: js/blocks/ProgramBlocks.js:372 +#.TRANS: load a dictionary from a file +msgid "load dictionary" msgstr "" -#: js/SensorsBlocks.js:36 -msgid "The Input block prompts for keyboard input." +#: js/blocks/ProgramBlocks.js:390 +#: js/blocks/ProgramBlocks.js:658 +#: js/blocks/ToneBlocks.js:1025 +msgid "file" msgstr "" -#: js/SensorsBlocks.js:46 -msgid "input" +#: js/blocks/ProgramBlocks.js:444 +msgid "The file you selected does not contain a valid dictionary." msgstr "" -#: js/SensorsBlocks.js:64 -msgid "Input a value" +#: js/blocks/ProgramBlocks.js:449 +msgid "The load dictionary block needs a load file block." msgstr "" -#: js/SensorsBlocks.js:126 -msgid "input value" +#: js/blocks/ProgramBlocks.js:466 +msgid "The Set-dictionary block loads a dictionary." msgstr "" -#: js/SensorsBlocks.js:131 -msgid "The Input-value block stores the input." +#: js/blocks/ProgramBlocks.js:477 +#.TRANS: load a dictionary from a JSON +msgid "set dictionary" msgstr "" -#: js/SensorsBlocks.js:238 -msgid "loudness" -msgstr "音量" +#: js/blocks/ProgramBlocks.js:546 +msgid "The block you selected does not contain a valid dictionary." +msgstr "" -#: js/SensorsBlocks.js:245 -msgid "The Loudness block returns the volume detected by the microphone." +#: js/blocks/ProgramBlocks.js:550 +msgid "The set dictionary block needs a dictionary." msgstr "" -#: js/SensorsBlocks.js:300 -msgid "click" +#: js/blocks/ProgramBlocks.js:567 +msgid "The Save-heap block saves the heap to a file." msgstr "" -#: js/SensorsBlocks.js:306 -msgid "The Click block triggers an event if a mouse has been clicked." +#: js/blocks/ProgramBlocks.js:578 +#.TRANS: save the heap to a file +msgid "save heap" msgstr "" -#: js/SensorsBlocks.js:313 -msgid "The Click block triggers an event if a turtle has been clicked." +#: js/blocks/ProgramBlocks.js:629 +msgid "The Save-dictionary block saves a dictionary to a file." msgstr "" -#: js/SensorsBlocks.js:342 -msgid "cursor over" +#: js/blocks/ProgramBlocks.js:640 +#.TRANS: save a dictionary to a file +msgid "save dictionary" msgstr "" -#: js/SensorsBlocks.js:387 -msgid "cursor out" +#: js/blocks/ProgramBlocks.js:720 +msgid "The Open palette block opens a palette." msgstr "" -#: js/SensorsBlocks.js:433 -msgid "cursor button down" +#: js/blocks/ProgramBlocks.js:727 +msgid "open palette" msgstr "" -#: js/SensorsBlocks.js:477 -msgid "cursor button up" +#: js/blocks/ProgramBlocks.js:785 +msgid "The Delete block block removes a block." msgstr "" -#: js/SensorsBlocks.js:638 -msgid "The Get red block returns the red component of the pixel under the mouse." +#: js/blocks/ProgramBlocks.js:797 +#.TRANS: Move this block to the trash. +msgid "delete block" msgstr "" -#: js/SensorsBlocks.js:644 -msgid "The Get red block returns the red component of the pixel under the turtle." +#: js/blocks/ProgramBlocks.js:861 +msgid "The Move block block moves a block." msgstr "" -#: js/SensorsBlocks.js:685 -#: plugins/rodi.rtp:216 -msgid "pixel color" +#: js/blocks/ProgramBlocks.js:869 +#.TRANS: Move the position of a block on the screen. +msgid "move block" msgstr "" -#: js/SensorsBlocks.js:690 -msgid "The Get pixel block returns the color of the pixel under the mouse." +#: js/blocks/ProgramBlocks.js:881 +#: js/blocks/ProgramBlocks.js:1048 +msgid "block number" msgstr "" -#: js/SensorsBlocks.js:696 -msgid "The Get pixel block returns the color of the pixel under the turtle." +#: js/blocks/ProgramBlocks.js:935 +#.TRANS: Run program beginning at this block. +msgid "run block" msgstr "" -#: js/SensorsBlocks.js:758 -msgid "time" -msgstr "時間" +#: js/blocks/ProgramBlocks.js:1025 +msgid "The Dock block block connections two blocks." +msgstr "" -#: js/SensorsBlocks.js:804 -msgid "cursor y" +#: js/blocks/ProgramBlocks.js:1036 +#.TRANS: We can connect a block to another block. +msgid "connect blocks" msgstr "" -#: js/SensorsBlocks.js:809 -msgid "The Cursor Y block returns the vertical position of the mouse." +#: js/blocks/ProgramBlocks.js:1048 +msgid "target block" msgstr "" -#: js/SensorsBlocks.js:845 -msgid "cursor x" +#: js/blocks/ProgramBlocks.js:1048 +msgid "connection number" msgstr "" -#: js/SensorsBlocks.js:850 -msgid "The Cursor X block returns the horizontal position of the mouse." +#: js/blocks/ProgramBlocks.js:1140 +msgid "The Make block block creates a new block." msgstr "" -#: js/SensorsBlocks.js:886 -msgid "mouse button" +#: js/blocks/ProgramBlocks.js:1152 +#.TRANS: Create a new block +msgid "make block" msgstr "" -#: js/SensorsBlocks.js:888 -msgid "The Mouse-button block returns True if the mouse button is pressed." +#: js/blocks/ProgramBlocks.js:1285 +msgid "Cannot find block" msgstr "" -#: js/SensorsBlocks.js:934 -msgid "to ASCII" +#: js/blocks/ProgramBlocks.js:1304 +#: js/blocks/ProgramBlocks.js:1313 +msgid "Warning: block argument type mismatch" msgstr "" -#: js/SensorsBlocks.js:938 -msgid "The To ASCII block converts numbers to letters." +#: js/blocks/ProgramBlocks.js:1347 +msgid "The Open project block is used to open a project from a web page." msgstr "" -#: js/SensorsBlocks.js:1005 -msgid "The Keyboard block returns computer keyboard input." +#: js/blocks/ProgramBlocks.js:1357 +msgid "open project" msgstr "" -#: js/IntervalsActions.js:216 -msgid "Adding missing pitch number 0." +#: js/blocks/ProgramBlocks.js:1410 +msgid "Please enter a valid URL." msgstr "" -#: js/IntervalsActions.js:224 -msgid "Ignoring pitch numbers less than zero or greater than eleven." +#: js/blocks/ToneBlocks.js:34 +msgid "oscillator" msgstr "" -#: js/IntervalsActions.js:230 -msgid "Ignoring duplicate pitch numbers." +#: js/blocks/ToneBlocks.js:42 +#: js/blocks/WidgetBlocks.js:179 +#: js/widgets/timbre.js:1558 +#: js/widgets/timbre.js:1808 +#.TRANS: there are different types (sine, triangle, square...) of oscillators. +#.TRANS: type of filter, e.g., lowpass, highpass, etc. +msgid "type" msgstr "" -#: js/PitchActions.js:88 -msgid "The Scalar Step Block must be used inside of a Note Block." +#: js/blocks/ToneBlocks.js:44 +#: js/widgets/timbre.js:1562 +#.TRANS: Partials refers to the number of sine waves combined into the sound. +msgid "partials" msgstr "" -#: js/PitchActions.js:107 -msgid "The Scalar Step Block must be preceded by a Pitch Block." +#: js/blocks/ToneBlocks.js:76 +msgid "You are adding multiple oscillator blocks." msgstr "" -#: js/DrumActions.js:231 -msgid "Noise Block: Did you mean to use a Note block?" +#: js/blocks/ToneBlocks.js:144 +#: js/widgets/timbre.js:1225 +#.TRANS: a duo synthesizer combines a synth with a sequencer +msgid "duo synth" msgstr "" -#: js/MeterActions.js:101 -#: js/MeterActions.js:139 -msgid "beats per minute must be greater than" +#: js/blocks/ToneBlocks.js:149 +msgid "The Duo synth block is a duo-frequency modulator used to define a timbre." msgstr "" -#: js/MeterActions.js:111 -#: js/MeterActions.js:149 -msgid "maximum" +#: js/blocks/ToneBlocks.js:157 +#: js/widgets/timbre.js:1476 +msgid "vibrato rate" msgstr "" -#: js/MeterActions.js:117 -#: js/MeterActions.js:155 -msgid "beats per minute is" +#: js/blocks/ToneBlocks.js:157 +msgid "vibrato intensity" msgstr "" -#: js/ToneActions.js:134 -msgid "Vibrato intensity must be between 1 and 100." -msgstr "震音强度必须在1和100之间" - -#: js/ToneActions.js:139 -msgid "Vibrato rate must be greater than 0." -msgstr "震音率必须大于0" +#: js/blocks/ToneBlocks.js:185 +#: js/widgets/timbre.js:1221 +#.TRANS: AM (amplitude modulation) synthesizer +msgid "AM synth" +msgstr "" -#: js/ToneActions.js:192 -#: js/ToneActions.js:265 -#.TRANS: Depth is the intesity of the tremolo or chorus effect. -msgid "Depth is out of range." +#: js/blocks/ToneBlocks.js:189 +msgid "The AM synth block is an amplitude modulator used to define a timbre." msgstr "" -#: js/ToneActions.js:301 -msgid "Distortion must be from 0 to 100." +#: js/blocks/ToneBlocks.js:224 +#: js/widgets/timbre.js:1223 +#.TRANS: FM (frequency modulation) synthesizer +msgid "FM synth" msgstr "" -#: js/ToneActions.js:332 -#.TRANS: partials components in a harmonic series -msgid "Partial must be greater than or equal to 0." +#: js/blocks/ToneBlocks.js:228 +msgid "The FM synth block is a frequency modulator used to define a timbre." msgstr "" -#: js/ToneActions.js:378 -#: js/ToneActions.js:417 -#: js/ToneActions.js:456 -#: js/timbre.js:782 -msgid "Unable to use synth due to existing oscillator" +#: js/blocks/ToneBlocks.js:262 +msgid "partial" msgstr "" -#: js/ToneActions.js:388 -#: js/ToneActions.js:427 -msgid "The input cannot be negative." +#: js/blocks/ToneBlocks.js:265 +msgid "The Partial block is used to specify a weight for a specific partial harmonic." msgstr "" -#: js/DictActions.js:75 -#: js/DictActions.js:153 -#: js/DictActions.js:188 -msgid "font" +#: js/blocks/ToneBlocks.js:284 +#.TRANS: partials are weighted components in a harmonic series +msgid "Partial weight must be between 0 and 1." msgstr "" -#: js/musicutils.js:363 -#: js/musicutils.js:471 -#: js/pitchdrummatrix.js:151 -#: js/musickeyboard.js:2563 -msgid "rest" +#: js/blocks/ToneBlocks.js:297 +#.TRANS: partials are weighted components in a harmonic series +msgid "Partial block should be used inside of a Weighted-partials block." msgstr "" -#: js/musicutils.js:565 -#.TRANS: ordinal number. Please keep exactly one space between each number. -msgid "1st 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th" +#: js/blocks/ToneBlocks.js:325 +#.TRANS: partials are weighted components in a harmonic series +msgid "weighted partials" msgstr "" -#: js/musicutils.js:629 -#: js/musicutils.js:812 -#: js/musicutils.js:911 -#.TRANS: augmented is a music term related to intervals -msgid "augmented" +#: js/blocks/ToneBlocks.js:383 +msgid "The Harmonic block will add harmonics to the contained notes." msgstr "" -#: js/musicutils.js:631 -#: js/musicutils.js:813 -#: js/musicutils.js:910 -#.TRANS: diminished is a music term related to intervals and mode -msgid "diminished" +#: js/blocks/ToneBlocks.js:390 +#.TRANS: A harmonic is an overtone. +msgid "harmonic" msgstr "" -#: js/musicutils.js:639 -#.TRANS: twelve semi-tone scale for music -msgid "chromatic" +#: js/blocks/ToneBlocks.js:431 +msgid "The Distortion block adds distortion to the pitch." msgstr "" -#: js/musicutils.js:640 -msgid "algerian" +#: js/blocks/ToneBlocks.js:438 +#: js/widgets/timbre.js:2100 +#.TRANS: distortion is an alteration in the sound +msgid "distortion" msgstr "" -#: js/musicutils.js:641 -msgid "spanish" +#: js/blocks/ToneBlocks.js:487 +msgid "The Tremolo block adds a wavering effect." msgstr "" -#: js/musicutils.js:643 -#.TRANS: modal scale in music -msgid "octatonic" +#: js/blocks/ToneBlocks.js:495 +#: js/widgets/timbre.js:2092 +#.TRANS: a wavering effect in a musical tone +msgid "tremolo" msgstr "" -#: js/musicutils.js:645 -#.TRANS: harmonic major scale in music -msgid "harmonic major" +#: js/blocks/ToneBlocks.js:500 +#: js/blocks/ToneBlocks.js:569 +#: js/blocks/ToneBlocks.js:630 +#: js/blocks/ToneBlocks.js:689 +#: js/widgets/timbre.js:2134 +#: js/widgets/timbre.js:2222 +#: js/widgets/timbre.js:2317 +#: js/widgets/timbre.js:2419 +#.TRANS: rate at which tremolo wavers +msgid "rate" msgstr "" -#: js/musicutils.js:647 -#.TRANS: natural minor scales in music -msgid "natural minor" +#: js/blocks/ToneBlocks.js:502 +#: js/blocks/ToneBlocks.js:630 +#: js/widgets/timbre.js:2137 +#: js/widgets/timbre.js:2328 +#.TRANS: amplitude of tremolo waver +msgid "depth" msgstr "" -#: js/musicutils.js:649 -#.TRANS: harmonic minor scale in music -msgid "harmonic minor" +#: js/blocks/ToneBlocks.js:559 +msgid "The Phaser block adds a sweeping sound." msgstr "" -#: js/musicutils.js:651 -#.TRANS: melodic minor scale in music -msgid "melodic minor" +#: js/blocks/ToneBlocks.js:566 +#: js/widgets/timbre.js:2098 +#.TRANS: alter the phase of the sound +msgid "phaser" msgstr "" -#: js/musicutils.js:655 -#.TRANS: modal scale for music -msgid "dorian" +#: js/blocks/ToneBlocks.js:569 +#: js/turtleactions/IntervalsActions.js:114 +#: js/widgets/timbre.js:2422 +msgid "octaves" msgstr "" -#: js/musicutils.js:657 -#.TRANS: modal scale for music -msgid "phrygian" +#: js/blocks/ToneBlocks.js:569 +#: js/widgets/timbre.js:2425 +msgid "base frequency" msgstr "" -#: js/musicutils.js:659 -#.TRANS: modal scale for music -msgid "lydian" +#: js/blocks/ToneBlocks.js:619 +msgid "The Chorus block adds a chorus effect." msgstr "" -#: js/musicutils.js:661 -#.TRANS: modal scale for music -msgid "mixolydian" +#: js/blocks/ToneBlocks.js:627 +#: js/widgets/timbre.js:2096 +#.TRANS: musical effect to simulate a choral sound +msgid "chorus" msgstr "" -#: js/musicutils.js:665 -#.TRANS: modal scale for music -msgid "locrian" +#: js/blocks/ToneBlocks.js:630 +msgid "delay" msgstr "" -#: js/musicutils.js:667 -#.TRANS: minor jazz scale for music -msgid "jazz minor" +#: js/blocks/ToneBlocks.js:678 +msgid "The Vibrato block adds a rapid, slight variation in pitch." msgstr "" -#: js/musicutils.js:669 -#.TRANS: bebop scale for music -msgid "bebop" +#: js/blocks/ToneBlocks.js:686 +#: js/widgets/timbre.js:2094 +#.TRANS: a rapid, slight variation in pitch +msgid "vibrato" msgstr "" -#: js/musicutils.js:670 -msgid "arabic" +#: js/blocks/ToneBlocks.js:689 +#: js/widgets/timbre.js:2221 +msgid "intensity" msgstr "" -#: js/musicutils.js:671 -msgid "byzantine" +#: js/blocks/ToneBlocks.js:733 +#.TRANS: select synthesizer +msgid "set synth" msgstr "" -#: js/musicutils.js:673 -#.TRANS: musical scale for music by Verdi -msgid "enigmatic" +#: js/blocks/ToneBlocks.js:804 +msgid "synth name" msgstr "" -#: js/musicutils.js:674 -msgid "ethiopian" +#: js/blocks/ToneBlocks.js:842 +msgid "set default instrument" msgstr "" -#: js/musicutils.js:676 -#.TRANS: Ethiopic scale for music -msgid "geez" +#: js/blocks/ToneBlocks.js:895 +#: js/blocks/ToneBlocks.js:943 +#.TRANS: set the characteristics of a custom instrument +msgid "set instrument" msgstr "" -#: js/musicutils.js:677 -msgid "hindu" +#: js/blocks/ToneBlocks.js:898 +#: js/blocks/ToneBlocks.js:926 +#: js/blocks/ToneBlocks.js:932 +msgid "The Set instrument block selects a voice for the synthesizer," msgstr "" -#: js/musicutils.js:678 -msgid "hungarian" +#: js/blocks/ToneBlocks.js:900 +#: js/blocks/ToneBlocks.js:934 +msgid "eg guitar piano violin or cello." msgstr "" -#: js/musicutils.js:680 -#.TRANS: minor Romanian scale for music -msgid "romanian minor" +#: js/blocks/ToneBlocks.js:1015 +msgid "Import a sound file to use as an instrument and set its pitch center." msgstr "" -#: js/musicutils.js:681 -msgid "spanish gypsy" +#: js/blocks/ToneBlocks.js:1110 +msgid "Upload a sound file to connect with the sample block." msgstr "" -#: js/musicutils.js:683 -#.TRANS: musical scale for Mid-Eastern music -msgid "maqam" +#: js/blocks/VolumeBlocks.js:35 +msgid "synth volume" msgstr "" -#: js/musicutils.js:685 -#.TRANS: minor blues scale for music -msgid "minor blues" +#: js/blocks/VolumeBlocks.js:39 +msgid "The Synth volume block returns the current volume of the current synthesizer." msgstr "" -#: js/musicutils.js:687 -#.TRANS: major blues scale for music -msgid "major blues" +#: js/blocks/VolumeBlocks.js:105 +msgid "master volume" msgstr "" -#: js/musicutils.js:688 -msgid "whole tone" +#: js/blocks/VolumeBlocks.js:109 +msgid "The Master volume block returns the master volume." msgstr "" -#: js/musicutils.js:690 -#.TRANS: pentatonic is a general term that means "five note scale". This scale is typically known as "minor pentatonic" -msgid "minor pentatonic" +#: js/blocks/VolumeBlocks.js:355 +#: js/blocks/VolumeBlocks.js:524 +msgid "set synth volume" msgstr "" -#: js/musicutils.js:692 -#.TRANS: pentatonic is a general term that means "five note scale". This scale is typically known as "major pentatonic" -msgid "major pentatonic" +#: js/blocks/VolumeBlocks.js:362 +#: js/blocks/VolumeBlocks.js:545 +msgid "synth" msgstr "" -#: js/musicutils.js:693 -msgid "chinese" +#: js/blocks/VolumeBlocks.js:403 +#: js/blocks/VolumeBlocks.js:577 +#: js/blocks/VolumeBlocks.js:740 +#: js/turtleactions/VolumeActions.js:173 +msgid "Setting volume to 0." msgstr "" -#: js/musicutils.js:694 -msgid "egyptian" +#: js/blocks/VolumeBlocks.js:440 +msgid "Synth not found" msgstr "" -#: js/musicutils.js:696 -#.TRANS: https://en.wikipedia.org/wiki/Hirajoshi_scale NOTE: There are three different versions of this scale -msgid "hirajoshi" +#: js/blocks/VolumeBlocks.js:494 +msgid "set drum volume" msgstr "" -#: js/musicutils.js:697 -msgid "Japan" +#: js/blocks/VolumeBlocks.js:530 +msgid "The Set synth volume block will change the volume of a particular synth," msgstr "" -#: js/musicutils.js:699 -#.TRANS: https://en.wikipedia.org/wiki/In_scale and https://en.wikipedia.org/wiki/Sakura_Sakura -msgid "in" +#: js/blocks/VolumeBlocks.js:532 +msgid "eg guitar violin snare drum etc." msgstr "" -#: js/musicutils.js:701 -#.TRANS: https://en.wikipedia.org/wiki/Miny%C5%8D_scale -msgid "minyo" +#: js/blocks/VolumeBlocks.js:534 +msgid "The default volume is 50." msgstr "" -#: js/musicutils.js:703 -#.TRANS: Italian mathematician -msgid "fibonacci" +#: js/blocks/VolumeBlocks.js:536 +msgid "The range is 0 for silence to 100 for full volume." msgstr "" -#: js/musicutils.js:708 -#: js/musicutils.js:1106 -#.TRANS: lowpass filter -msgid "lowpass" +#: js/blocks/VolumeBlocks.js:597 +msgid "set panning" msgstr "" -#: js/musicutils.js:710 -#: js/musicutils.js:1107 -#.TRANS: bandpass filter -msgid "bandpass" +#: js/blocks/VolumeBlocks.js:603 +msgid "The Set Panning block sets the panning for all synthesizers." msgstr "" -#: js/musicutils.js:712 -#: js/musicutils.js:1108 -#.TRANS: high-shelf filter -msgid "highshelf" +#: js/blocks/VolumeBlocks.js:625 +msgid "Warning: Sound is coming out from only the left or right side." msgstr "" -#: js/musicutils.js:714 -#: js/musicutils.js:1109 -#.TRANS: low-shelf filter -msgid "lowshelf" +#: js/blocks/VolumeBlocks.js:647 +#: js/blocks/VolumeBlocks.js:695 +msgid "set master volume" msgstr "" -#: js/musicutils.js:716 -#: js/musicutils.js:1110 -#.TRANS: notch-shelf filter -msgid "notch" +#: js/blocks/VolumeBlocks.js:653 +msgid "The Set master volume block sets the volume for all synthesizers." msgstr "" -#: js/musicutils.js:718 -#: js/musicutils.js:1111 -#.TRANS: all-pass filter -msgid "allpass" +#: js/blocks/VolumeBlocks.js:784 +msgid "The Set relative volume block changes the volume of the contained notes." msgstr "" -#: js/musicutils.js:720 -#: js/musicutils.js:1112 -#.TRANS: peaking filter -msgid "peaking" +#: js/blocks/VolumeBlocks.js:791 +msgid "set relative volume" msgstr "" -#: js/musicutils.js:731 -#: js/synthutils.js:58 -#.TRANS: musical instrument -msgid "violin" +#: js/blocks/VolumeBlocks.js:857 +msgid "decrescendo" msgstr "" -#: js/musicutils.js:732 -#: js/synthutils.js:60 -#.TRANS: viola musical instrument -msgid "viola" +#: js/blocks/VolumeBlocks.js:921 +msgid "crescendo" msgstr "" -#: js/musicutils.js:733 -#: js/synthutils.js:98 -#.TRANS: xylophone musical instrument -msgid "xylophone" +#: js/blocks/WidgetBlocks.js:81 +#.TRANS: sound envelope (ADSR) +msgid "envelope" msgstr "" -#: js/musicutils.js:734 -#: js/synthutils.js:120 -#.TRANS: vibraphone musical instrument -msgid "vibraphone" +#: js/blocks/WidgetBlocks.js:89 +#.TRANS: Attack time is the time taken for initial run-up of level from nil to peak, beginning when the key is first pressed. +msgid "attack" msgstr "" -#: js/musicutils.js:735 -#: js/synthutils.js:62 -#.TRANS: musical instrument -msgid "cello" +#: js/blocks/WidgetBlocks.js:91 +#.TRANS: Decay time is the time taken for the subsequent run down from the attack level to the designated sustain level. +msgid "decay" msgstr "" -#: js/musicutils.js:737 -#: js/synthutils.js:66 -#.TRANS: viola musical instrument -msgid "double bass" +#: js/blocks/WidgetBlocks.js:93 +#.TRANS: Sustain level is the level during the main sequence of the sound's duration, until the key is released. +msgid "sustain" msgstr "" -#: js/musicutils.js:738 -#: js/synthutils.js:68 -#: js/rhythmruler.js:2119 -#.TRANS: musical instrument -msgid "guitar" +#: js/blocks/WidgetBlocks.js:95 +#.TRANS: Release time is the time taken for the level to decay from the sustain level to zero after the key is released. +msgid "release" msgstr "" -#: js/musicutils.js:739 -#: js/synthutils.js:70 -#.TRANS: musical instrument -msgid "acoustic guitar" +#: js/blocks/WidgetBlocks.js:113 +msgid "Attack value should be from 0 to 100." msgstr "" -#: js/musicutils.js:740 -#: js/synthutils.js:72 -#.TRANS: musical instrument -msgid "flute" +#: js/blocks/WidgetBlocks.js:116 +msgid "Decay value should be from 0 to 100." msgstr "" -#: js/musicutils.js:741 -#: js/synthutils.js:74 -#.TRANS: musical instrument -msgid "clarinet" +#: js/blocks/WidgetBlocks.js:119 +msgid "Sustain value should be from 0 to 100." msgstr "" -#: js/musicutils.js:742 -#: js/synthutils.js:76 -#.TRANS: musical instrument -msgid "saxophone" +#: js/blocks/WidgetBlocks.js:122 +msgid "Release value should be from 0-100." msgstr "" -#: js/musicutils.js:743 -#: js/synthutils.js:78 -#.TRANS: musical instrument -msgid "tuba" +#: js/blocks/WidgetBlocks.js:140 +msgid "You are adding multiple envelope blocks." msgstr "" -#: js/musicutils.js:744 -#: js/synthutils.js:80 -#.TRANS: musical instrument -msgid "trumpet" +#: js/blocks/WidgetBlocks.js:171 +#.TRANS: a filter removes some unwanted components from a signal +msgid "filter" msgstr "" -#: js/musicutils.js:745 -#: js/synthutils.js:82 -#.TRANS: musical instrument -msgid "oboe" +#: js/blocks/WidgetBlocks.js:181 +#: js/widgets/timbre.js:1818 +#.TRANS: rolloff is the steepness of a change in frequency. +msgid "rolloff" msgstr "" -#: js/musicutils.js:746 -#: js/synthutils.js:84 -#.TRANS: musical instrument -msgid "trombone" +#: js/blocks/WidgetBlocks.js:213 +#.TRANS: rolloff is the steepness of a change in frequency. +msgid "Rolloff value should be either -12, -24, -48, or -96 decibels/octave." msgstr "" -#: js/musicutils.js:747 -#: js/synthutils.js:100 -#.TRANS: polytone synthesizer -msgid "electronic synth" +#: js/blocks/WidgetBlocks.js:252 +msgid "The Temperament tool is used to define custom tuning." msgstr "" -#: js/musicutils.js:748 -#: js/synthutils.js:102 -#.TRANS: simple monotone synthesizer -msgid "simple 1" +#: js/blocks/WidgetBlocks.js:332 +#: js/blocks/WidgetBlocks.js:1573 +#: js/widgets/sampler.js:547 +msgid "Upload a sample and adjust its pitch center." msgstr "" -#: js/musicutils.js:749 -msgid "simple 2" +#: js/blocks/WidgetBlocks.js:339 +#.TRANS: the speed at music is should be played. +msgid "sampler" msgstr "" -#: js/musicutils.js:750 -msgid "simple 3" +#: js/blocks/WidgetBlocks.js:517 +msgid "The Meter block opens a tool to select strong beats for the meter." msgstr "" -#: js/musicutils.js:751 -msgid "simple 4" +#: js/blocks/WidgetBlocks.js:573 +msgid "The oscilloscope block opens a tool to visualize waveforms." msgstr "" -#: js/musicutils.js:753 -#: js/synthutils.js:49 -#.TRANS: brown noise synthesizer -msgid "brown noise" +#: js/blocks/WidgetBlocks.js:578 +msgid "oscilloscope" msgstr "" -#: js/musicutils.js:754 -#: js/synthutils.js:51 -#.TRANS: pink noise synthesizer -msgid "pink noise" +#: js/blocks/WidgetBlocks.js:645 +msgid "The Custom mode block opens a tool to explore musical mode (the spacing of the notes in a scale)." msgstr "" -#: js/musicutils.js:756 -#: js/synthutils.js:127 -#: js/rhythmruler.js:1670 -#: js/rhythmruler.js:1928 -#.TRANS: musical instrument -msgid "snare drum" +#: js/blocks/WidgetBlocks.js:651 +#.TRANS: musical mode is the pattern of half-steps in an octave, e.g., Major or Minor modes +msgid "custom mode" msgstr "" -#: js/musicutils.js:757 -#: js/synthutils.js:129 -#.TRANS: musical instrument -msgid "kick drum" +#: js/blocks/WidgetBlocks.js:700 +msgid "The Tempo block opens a metronome to visualize the beat." msgstr "" -#: js/musicutils.js:758 -#: js/synthutils.js:131 -#.TRANS: musical instrument -msgid "tom tom" +#: js/blocks/WidgetBlocks.js:762 +msgid "The Arpeggio Widget is used to compose chord sequences." msgstr "" -#: js/musicutils.js:759 -#: js/synthutils.js:133 -#.TRANS: musical instrument -msgid "floor tom" +#: js/blocks/WidgetBlocks.js:837 +msgid "The Pitch drum matrix is used to map pitches to drum sounds." msgstr "" -#: js/musicutils.js:760 -#: js/synthutils.js:135 -#.TRANS: musical instrument -msgid "bass drum" +#: js/blocks/WidgetBlocks.js:842 +#.TRANS: makes a mapping between pitches and drum sounds +msgid "pitch-drum mapper" msgstr "" -#: js/musicutils.js:761 -#: js/synthutils.js:137 -#.TRANS: a drum made from an inverted cup -msgid "cup drum" +#: js/blocks/WidgetBlocks.js:891 +msgid "You must have at least one pitch block and one drum block in the matrix." msgstr "" -#: js/musicutils.js:762 -#: js/synthutils.js:139 -#.TRANS: musical instrument -msgid "darbuka drum" +#: js/blocks/WidgetBlocks.js:920 +msgid "The Pitch slider tool to is used to generate pitches at selected frequencies." msgstr "" -#: js/musicutils.js:763 -#: js/synthutils.js:143 -#.TRANS: musical instrument -msgid "hi hat" +#: js/blocks/WidgetBlocks.js:925 +#.TRANS: widget to generate pitches using a slider +msgid "pitch slider" msgstr "" -#: js/musicutils.js:764 -#: js/synthutils.js:145 -#.TRANS: a small metal bell -msgid "ride bell" +#: js/blocks/WidgetBlocks.js:977 +msgid "chromatic keyboard" msgstr "" -#: js/musicutils.js:765 -#: js/synthutils.js:147 -#.TRANS: musical instrument -msgid "cow bell" +#: js/blocks/WidgetBlocks.js:1011 +#: js/blocks/WidgetBlocks.js:1077 +#.TRANS: widget to generate pitches using a slider +msgid "music keyboard" msgstr "" -#: js/musicutils.js:766 -msgid "japanese drum" +#: js/blocks/WidgetBlocks.js:1062 +#: js/blocks/WidgetBlocks.js:1069 +msgid "The Music keyboard block opens a piano keyboard that can be used to create notes." msgstr "" -#: js/musicutils.js:767 -#: js/synthutils.js:153 -#.TRANS: musical instrument -msgid "japanese bell" +#: js/blocks/WidgetBlocks.js:1128 +msgid "The Pitch staircase tool to is used to generate pitches from a given ratio." msgstr "" -#: js/musicutils.js:768 -#: js/synthutils.js:149 -#.TRANS: musical instrument -msgid "triangle bell" +#: js/blocks/WidgetBlocks.js:1135 +#.TRANS: generate a progressive sequence of pitches +msgid "pitch staircase" msgstr "" -#: js/musicutils.js:769 -#: js/synthutils.js:151 -#.TRANS: musical instrument -msgid "finger cymbals" +#: js/blocks/WidgetBlocks.js:1222 +msgid "The Rhythm Maker block opens a tool to create drum machines." msgstr "" -#: js/musicutils.js:770 -#: js/synthutils.js:155 -#.TRANS: a musically tuned set of bells -msgid "chime" +#: js/blocks/WidgetBlocks.js:1291 +msgid "G major scale" msgstr "" -#: js/musicutils.js:771 -#: js/synthutils.js:157 -#.TRANS: a musical instrument -msgid "gong" +#: js/blocks/WidgetBlocks.js:1326 +msgid "C major scale" msgstr "" -#: js/musicutils.js:772 -#: js/synthutils.js:159 -#.TRANS: sound effect -msgid "clang" +#: js/blocks/WidgetBlocks.js:1366 +msgid "The Phrase Maker block opens a tool to create musical phrases." msgstr "" -#: js/musicutils.js:773 -#: js/synthutils.js:161 -#.TRANS: sound effect -msgid "crash" +#: js/blocks/WidgetBlocks.js:1373 +#.TRANS: assigns pitch to a sequence of beats to generate a melody +msgid "phrase maker" msgstr "" -#: js/musicutils.js:774 -#: js/synthutils.js:163 -#.TRANS: sound effect -msgid "bottle" +#: js/blocks/WidgetBlocks.js:1444 +msgid "You must have at least one pitch block and one rhythm block in the matrix." msgstr "" -#: js/musicutils.js:775 -#: js/synthutils.js:165 -#.TRANS: sound effect -msgid "clap" +#: js/blocks/WidgetBlocks.js:1503 +msgid "The Status block opens a tool for inspecting the status of Music Blocks as it is running." msgstr "" -#: js/musicutils.js:776 -#: js/synthutils.js:167 -#.TRANS: sound effect -msgid "slap" +#: js/blocks/WidgetBlocks.js:1580 +#.TRANS: AI-generated music +msgid "aimusic" msgstr "" -#: js/musicutils.js:777 -#: js/synthutils.js:169 -#.TRANS: sound effect -msgid "splash" +#: js/turtleactions/MeterActions.js:101 +#: js/turtleactions/MeterActions.js:139 +msgid "beats per minute must be greater than" msgstr "" -#: js/musicutils.js:778 -#: js/synthutils.js:171 -#.TRANS: sound effect -msgid "bubbles" +#: js/turtleactions/MeterActions.js:111 +#: js/turtleactions/MeterActions.js:149 +msgid "maximum" msgstr "" -#: js/musicutils.js:779 -#: js/synthutils.js:173 -#.TRANS: sound effect -msgid "raindrop" +#: js/turtleactions/MeterActions.js:117 +#: js/turtleactions/MeterActions.js:155 +msgid "beats per minute is" msgstr "" -#: js/musicutils.js:780 -#: js/synthutils.js:175 -#.TRANS: animal sound effect -msgid "cat" +#: js/turtleactions/DictActions.js:75 +#: js/turtleactions/DictActions.js:142 +#: js/turtleactions/DictActions.js:172 +msgid "font" msgstr "" -#: js/musicutils.js:781 -#: js/synthutils.js:177 -#.TRANS: animal sound effect -msgid "cricket" +#: js/turtleactions/DictActions.js:255 +msgid "Dictionary with this name does not exist" msgstr "" -#: js/musicutils.js:782 -#: js/synthutils.js:179 -#.TRANS: animal sound effect -msgid "dog" +#: js/turtleactions/DictActions.js:259 +msgid "Key with this name does not exist in " msgstr "" -#: js/musicutils.js:784 -#: js/synthutils.js:86 -#.TRANS: musical instrument -msgid "banjo" +#: js/turtleactions/DrumActions.js:227 +msgid "Noise Block: Did you mean to use a Note block?" msgstr "" -#: js/musicutils.js:785 -#: js/synthutils.js:88 -#.TRANS: musical instrument -msgid "koto" +#: js/turtleactions/IntervalsActions.js:113 +msgid "one" msgstr "" -#: js/musicutils.js:786 -#: js/synthutils.js:90 -#.TRANS: musical instrument -msgid "dulcimer" +#: js/turtleactions/IntervalsActions.js:113 +msgid "two" msgstr "" -#: js/musicutils.js:787 -#: js/synthutils.js:92 -#.TRANS: musical instrument -msgid "electric guitar" +#: js/turtleactions/IntervalsActions.js:113 +msgid "three" msgstr "" -#: js/musicutils.js:788 -#: js/synthutils.js:94 -#.TRANS: musical instrument -msgid "bassoon" +#: js/turtleactions/IntervalsActions.js:113 +msgid "four" msgstr "" -#: js/musicutils.js:789 -#: js/synthutils.js:96 -#.TRANS: musical instrument -msgid "celeste" +#: js/turtleactions/IntervalsActions.js:113 +msgid "five" msgstr "" -#: js/musicutils.js:791 -#: js/musicutils.js:1123 -#: js/musicutils.js:1131 -#: js/temperament.js:650 -#.TRANS: musical temperament -msgid "equal" +#: js/turtleactions/IntervalsActions.js:113 +msgid "six" msgstr "" -#: js/musicutils.js:793 -#: js/musicutils.js:1125 -#: js/musicutils.js:1133 -#.TRANS: musical temperament -msgid "Pythagorean" +#: js/turtleactions/IntervalsActions.js:113 +msgid "seven" msgstr "" -#: js/musicutils.js:795 -#: js/musicutils.js:1124 -#: js/musicutils.js:1132 -#.TRANS: musical temperament -msgid "just intonation" +#: js/turtleactions/IntervalsActions.js:113 +msgid "eight" msgstr "" -#: js/musicutils.js:797 -#: js/musicutils.js:1126 -#: js/musicutils.js:1127 -#: js/musicutils.js:1134 -#: js/musicutils.js:1135 -#.TRANS: musical temperament -msgid "meantone" +#: js/turtleactions/IntervalsActions.js:113 +msgid "nine" msgstr "" -#: js/musicutils.js:814 -msgid "major 7th" +#: js/turtleactions/IntervalsActions.js:119 +msgid "a" msgstr "" -#: js/musicutils.js:815 -msgid "minor 7th" +#: js/turtleactions/IntervalsActions.js:120 +msgid "below" msgstr "" -#: js/musicutils.js:816 -msgid "dominant 7th" +#: js/turtleactions/IntervalsActions.js:124 +msgid "above" msgstr "" -#: js/musicutils.js:817 -msgid "minor-major 7th" +#: js/turtleactions/IntervalsActions.js:131 +msgid "plus" msgstr "" -#: js/musicutils.js:818 -msgid "fully-diminished 7th" +#: js/turtleactions/IntervalsActions.js:139 +msgid " below" msgstr "" -#: js/musicutils.js:819 -msgid "half-diminished 7th" +#: js/turtleactions/IntervalsActions.js:257 +msgid "Adding missing pitch number 0." msgstr "" -#: js/musicutils.js:4379 -#: js/musicutils.js:4416 -msgid "current" +#: js/turtleactions/IntervalsActions.js:265 +msgid "Ignoring pitch numbers less than zero or greater than eleven." msgstr "" -#: js/musicutils.js:4382 -#: js/musicutils.js:4407 -msgid "next" +#: js/turtleactions/IntervalsActions.js:271 +msgid "Ignoring duplicate pitch numbers." msgstr "" -#: js/musicutils.js:4385 -#: js/musicutils.js:4412 -msgid "previous" +#: js/turtleactions/ToneActions.js:134 +msgid "Vibrato intensity must be between 1 and 100." +msgstr "震音强度必须在1和100之间" + +#: js/turtleactions/ToneActions.js:139 +msgid "Vibrato rate must be greater than 0." +msgstr "震音率必须大于0" + +#: js/turtleactions/ToneActions.js:192 +#: js/turtleactions/ToneActions.js:265 +#.TRANS: Depth is the intesity of the tremolo or chorus effect. +msgid "Depth is out of range." msgstr "" -#: js/synthutils.js:104 -#.TRANS: simple monotone synthesizer -msgid "simple-2" +#: js/turtleactions/ToneActions.js:301 +msgid "Distortion must be from 0 to 100." msgstr "" -#: js/synthutils.js:106 -#.TRANS: simple monotone synthesizer -msgid "simple-3" +#: js/turtleactions/ToneActions.js:332 +#.TRANS: partials components in a harmonic series +msgid "Partial must be greater than or equal to 0." msgstr "" -#: js/synthutils.js:108 -#.TRANS: simple monotone synthesizer -msgid "simple-4" +#: js/turtleactions/ToneActions.js:378 +#: js/turtleactions/ToneActions.js:417 +#: js/turtleactions/ToneActions.js:456 +#: js/widgets/timbre.js:782 +msgid "Unable to use synth due to existing oscillator" msgstr "" -#: js/synthutils.js:141 -#.TRANS: musical instrument -msgid "taiko" +#: js/turtleactions/ToneActions.js:388 +#: js/turtleactions/ToneActions.js:427 +msgid "The input cannot be negative." msgstr "" -#: js/modewidget.js:86 -#: js/modewidget.js:88 -#: js/modewidget.js:642 -#: js/modewidget.js:644 -#: js/modewidget.js:712 -#: js/modewidget.js:714 -#: js/temperament.js:2078 -#: js/rhythmruler.js:189 -#: js/rhythmruler.js:1410 -#: js/rhythmruler.js:1412 -#: js/rhythmruler.js:1435 -#: js/rhythmruler.js:1437 -#: js/meterwidget.js:89 -#: js/meterwidget.js:91 +#: js/widgets/modewidget.js:86 +#: js/widgets/modewidget.js:88 +#: js/widgets/modewidget.js:642 +#: js/widgets/modewidget.js:644 +#: js/widgets/modewidget.js:712 +#: js/widgets/modewidget.js:714 +#: js/widgets/meterwidget.js:194 +#: js/widgets/meterwidget.js:196 +#: js/widgets/temperament.js:2236 +#: js/widgets/rhythmruler.js:457 +#: js/widgets/rhythmruler.js:1790 +#: js/widgets/rhythmruler.js:1792 +#: js/widgets/rhythmruler.js:1816 +#: js/widgets/rhythmruler.js:1818 msgid "Play all" msgstr "" -#: js/modewidget.js:115 -#: js/pitchstaircase.js:641 -#: js/phrasemaker.js:339 -#: js/pitchdrummatrix.js:94 -#: js/pitchslider.js:125 -#: js/temperament.js:2083 -#: js/musickeyboard.js:530 -#: js/timbre.js:756 -#: js/meterwidget.js:124 -#: js/arpeggio.js:103 +#: js/widgets/modewidget.js:115 +#: js/widgets/meterwidget.js:229 +#: js/widgets/pitchdrummatrix.js:166 +#: js/widgets/pitchslider.js:125 +#: js/widgets/pitchstaircase.js:641 +#: js/widgets/temperament.js:2244 +#: js/widgets/timbre.js:756 +#: js/widgets/arpeggio.js:103 +#: js/widgets/musickeyboard.js:688 +#: js/widgets/phrasemaker.js:550 msgid "Save" msgstr "" -#: js/modewidget.js:121 -#: js/pitchstaircase.js:686 -#: js/phrasemaker.js:356 -#: js/pitchdrummatrix.js:109 -#: js/musickeyboard.js:534 -#: js/rhythmruler.js:269 -#: js/arpeggio.js:118 +#: js/widgets/modewidget.js:121 +#: js/widgets/pitchdrummatrix.js:181 +#: js/widgets/pitchstaircase.js:686 +#: js/widgets/arpeggio.js:118 +#: js/widgets/musickeyboard.js:696 +#: js/widgets/phrasemaker.js:567 +#: js/widgets/rhythmruler.js:601 #.TRANS: clear all subdivisions from the ruler. msgid "Clear" msgstr "" -#: js/modewidget.js:127 +#: js/widgets/modewidget.js:127 msgid "Rotate counter clockwise" msgstr "" -#: js/modewidget.js:133 +#: js/widgets/modewidget.js:133 msgid "Rotate clockwise" msgstr "" -#: js/modewidget.js:139 +#: js/widgets/modewidget.js:139 msgid "Invert" msgstr "" -#: js/modewidget.js:145 -#: js/pitchstaircase.js:678 -#: js/rhythmruler.js:258 -#: js/timbre.js:963 +#: js/widgets/modewidget.js:145 +#: js/widgets/pitchstaircase.js:678 +#: js/widgets/timbre.js:963 +#: js/widgets/rhythmruler.js:578 msgid "Undo" msgstr "" -#: js/modewidget.js:163 +#: js/widgets/modewidget.js:163 #.TRANS: A circle of notes represents the musical mode. msgid "Click in the circle to select notes for the mode." msgstr "" -#: js/modewidget.js:1017 -#: js/pitchstaircase.js:580 -#: js/phrasemaker.js:4855 -#: js/temperament.js:1754 -#: js/rhythmruler.js:1865 -#: js/rhythmruler.js:2081 -#: js/tempo.js:414 +#: js/widgets/modewidget.js:1017 +#: js/widgets/pitchstaircase.js:580 +#: js/widgets/temperament.js:1929 +#: js/widgets/tempo.js:414 +#: js/widgets/phrasemaker.js:5356 +#: js/widgets/rhythmruler.js:2254 +#: js/widgets/rhythmruler.js:2472 msgid "New action block generated!" msgstr "" -#: js/oscilloscope.js:79 -msgid "Zoom In" -msgstr "" - -#: js/oscilloscope.js:88 -msgid "Zoom Out" -msgstr "" - -#: js/pitchstaircase.js:624 -msgid "Play chord" -msgstr "" - -#: js/pitchstaircase.js:632 -msgid "Play scale" +#: js/widgets/meterwidget.js:275 +msgid "Reset" msgstr "" -#: js/pitchstaircase.js:696 -msgid "Click on a note to create a new step." +#: js/widgets/meterwidget.js:301 +msgid "Click in the circle to select strong beats for the meter." msgstr "" -#: js/phrasemaker.js:363 -msgid "Export" +#: js/widgets/oscilloscope.js:79 +msgid "Zoom In" msgstr "" -#: js/phrasemaker.js:370 -msgid "Sort" +#: js/widgets/oscilloscope.js:88 +msgid "Zoom Out" msgstr "" -#: js/phrasemaker.js:373 -#: js/musickeyboard.js:559 -msgid "Add note" +#: js/widgets/pitchdrummatrix.js:356 +#: js/widgets/pitchdrummatrix.js:752 +msgid "Click in the grid to map notes to drums." msgstr "" -#: js/phrasemaker.js:764 -msgid "Click on the table to add notes." +#: js/widgets/pitchslider.js:103 +msgid "Move up" msgstr "" -#: js/phrasemaker.js:2414 -#: js/phrasemaker.js:2543 -msgid "tuplet value" +#: js/widgets/pitchslider.js:114 +msgid "Move down" msgstr "" -#: js/pitchdrummatrix.js:270 -#: js/pitchdrummatrix.js:639 -msgid "Click in the grid to map notes to drums." +#: js/widgets/pitchslider.js:136 +msgid "Click on the slider to create a note block." msgstr "" -#: js/pitchslider.js:103 -msgid "Move up" +#: js/widgets/pitchstaircase.js:624 +msgid "Play chord" msgstr "" -#: js/pitchslider.js:114 -msgid "Move down" +#: js/widgets/pitchstaircase.js:632 +msgid "Play scale" msgstr "" -#: js/pitchslider.js:136 -msgid "Click on the slider to create a note block." +#: js/widgets/pitchstaircase.js:696 +msgid "Click on a note to create a new step." msgstr "" -#: js/temperament.js:215 +#: js/widgets/temperament.js:321 msgid "back to 2:1 octave space" msgstr "" -#: js/temperament.js:323 +#: js/widgets/temperament.js:447 msgid "edit" msgstr "" -#: js/temperament.js:330 -#: js/temperament.js:332 -#: js/temperament.js:1336 -#: js/temperament.js:1338 +#: js/widgets/temperament.js:454 +#: js/widgets/temperament.js:456 +#: js/widgets/temperament.js:1493 +#: js/widgets/temperament.js:1495 msgid "close" msgstr "" -#: js/temperament.js:423 -#: js/temperament.js:736 -#: js/temperament.js:743 -#: js/temperament.js:845 -#: js/temperament.js:935 -#: js/temperament.js:942 -#: js/temperament.js:1015 -#: js/temperament.js:1284 -#: js/temperament.js:1354 -#: js/temperament.js:1430 +#: js/widgets/temperament.js:552 +#: js/widgets/temperament.js:877 +#: js/widgets/temperament.js:884 +#: js/widgets/temperament.js:986 +#: js/widgets/temperament.js:1080 +#: js/widgets/temperament.js:1087 +#: js/widgets/temperament.js:1160 +#: js/widgets/temperament.js:1433 +#: js/widgets/temperament.js:1511 +#: js/widgets/temperament.js:1596 msgid "done" msgstr "" -#: js/temperament.js:477 -#: js/temperament.js:482 -#: js/temperament.js:918 +#: js/widgets/temperament.js:610 +#: js/widgets/temperament.js:615 +#: js/widgets/temperament.js:1063 msgid "ratio" msgstr "" -#: js/temperament.js:483 +#: js/widgets/temperament.js:616 msgid "interval" msgstr "" -#: js/temperament.js:611 +#: js/widgets/temperament.js:744 msgid "non scalar" msgstr "" -#: js/temperament.js:650 +#: js/widgets/temperament.js:787 msgid "ratios" msgstr "" -#: js/temperament.js:650 +#: js/widgets/temperament.js:787 msgid "arbitrary" msgstr "" -#: js/temperament.js:719 +#: js/widgets/temperament.js:860 msgid "number of divisions" msgstr "" -#: js/temperament.js:741 -#: js/temperament.js:858 -#: js/temperament.js:940 -#: js/temperament.js:1033 +#: js/widgets/temperament.js:882 +#: js/widgets/temperament.js:999 +#: js/widgets/temperament.js:1085 +#: js/widgets/temperament.js:1178 msgid "preview" msgstr "" -#: js/temperament.js:788 +#: js/widgets/temperament.js:929 msgid "The Number of divisions is too large." msgstr "" -#: js/temperament.js:921 +#: js/widgets/temperament.js:1066 msgid "recursion" msgstr "" -#: js/temperament.js:1450 +#: js/widgets/temperament.js:1616 msgid "The octave ratio has changed. This changes temperament significantly." msgstr "" -#: js/temperament.js:2087 +#: js/widgets/temperament.js:2248 msgid "Table" msgstr "" -#: js/temperament.js:2185 +#: js/widgets/temperament.js:2356 msgid "Add pitches" msgstr "" -#: js/musickeyboard.js:570 -msgid "Metronome" +#: js/widgets/tempo.js:78 +#: js/widgets/tempo.js:97 +#: js/widgets/tempo.js:99 +#: js/widgets/aiwidget.js:134 +#: js/widgets/aiwidget.js:136 +#: js/widgets/rhythmruler.js:681 +#: js/widgets/rhythmruler.js:683 +#: js/widgets/rhythmruler.js:1864 +#: js/widgets/rhythmruler.js:1866 +#: js/widgets/sampler.js:180 +#: js/widgets/sampler.js:182 +msgid "Pause" msgstr "" -#: js/musickeyboard.js:1296 -#: plugins/rodi.rtp:193 -msgid "duration" -msgstr "時間長度" +#: js/widgets/tempo.js:113 +msgid "Save tempo" +msgstr "" -#: js/musickeyboard.js:2840 -msgid "New action blocks generated!" +#: js/widgets/tempo.js:144 +msgid "speed up" msgstr "" -#: js/musickeyboard.js:2841 -msgid "New action block generated" +#: js/widgets/tempo.js:150 +msgid "slow down" msgstr "" -#: js/musickeyboard.js:2984 -#: js/musickeyboard.js:2992 -msgid "MIDI device present." +#: js/widgets/tempo.js:194 +msgid "Adjust the tempo with the buttons." msgstr "" -#: js/musickeyboard.js:2995 -msgid "No MIDI device found." +#: js/widgets/tempo.js:261 +msgid "Please enter a number between 30 and 1000" msgstr "" -#: js/musickeyboard.js:3000 -msgid "Failed to get MIDI access in browser." +#: js/widgets/tempo.js:268 +#: js/widgets/tempo.js:271 +msgid "The beats per minute must be between 30 and 1000." msgstr "" -#: js/rhythmruler.js:202 -msgid "Save rhythms" +#: js/widgets/tempo.js:287 +msgid "The beats per minute must be below 1000." msgstr "" -#: js/rhythmruler.js:222 -msgid "Save drum machine" +#: js/widgets/tempo.js:303 +msgid "The beats per minute must be above 30" msgstr "" -#: js/rhythmruler.js:263 -#.TRANS: user can tap out a rhythm by clicking on a ruler. -msgid "Tap a rhythm" +#: js/widgets/timbre.js:766 +msgid "Synthesizer" msgstr "" -#: js/rhythmruler.js:342 -#: js/rhythmruler.js:344 -#: js/rhythmruler.js:1481 -#: js/rhythmruler.js:1483 -#: js/sampler.js:110 -#: js/sampler.js:112 -#: js/tempo.js:78 -#: js/tempo.js:97 -#: js/tempo.js:99 -msgid "Pause" +#: js/widgets/timbre.js:789 +msgid "Oscillator" msgstr "" -#: js/rhythmruler.js:478 -msgid "Click on the ruler to divide it." +#: js/widgets/timbre.js:840 +msgid "Envelope" msgstr "" -#: js/rhythmruler.js:603 -#: js/rhythmruler.js:605 -#: js/rhythmruler.js:804 -#: js/rhythmruler.js:806 -#: js/rhythmruler.js:1386 -#: js/rhythmruler.js:1388 -msgid "tap a rhythm" +#: js/widgets/timbre.js:886 +#: planet/js/GlobalTag.js:50 +#.TRANS: On the Planet, we use labels to tag projects. +msgid "Effects" msgstr "" -#: js/rhythmruler.js:1084 -msgid "Maximum value of 256 has been exceeded." +#: js/widgets/timbre.js:904 +msgid "Filter" msgstr "" -#: js/sampler.js:137 -msgid "Warning: Sample is bigger than 1MB." +#: js/widgets/timbre.js:946 +msgid "Add filter" msgstr "" -#: js/sampler.js:142 -msgid "Upload failed: Sample is not a .wav file." +#: js/widgets/timbre.js:987 +msgid "Click on buttons to open the timbre design tools." msgstr "" -#: js/sampler.js:164 -msgid "A new sample block was generated." +#: js/widgets/timbre.js:1273 +msgid "harmonicity" msgstr "" -#: js/sampler.js:255 -msgid "Upload sample" +#: js/widgets/timbre.js:1340 +#: js/widgets/timbre.js:1406 +msgid "modulation index" msgstr "" -#: js/sampler.js:306 -msgid "Save sample" +#: js/widgets/timbre.js:1484 +msgid "vibrato amount" msgstr "" -#: js/sampler.js:697 -#.TRANS: The reference tone is a sound used for comparison. -msgid "reference tone" +#: js/widgets/timbre.js:1919 +msgid "Filter already present." msgstr "" -#: js/tempo.js:113 -msgid "Save tempo" +#: js/widgets/timbre.js:2322 +msgid "delay (MS)" msgstr "" -#: js/tempo.js:144 -msgid "speed up" +#: js/widgets/timbre.js:2507 +msgid "distortion amount" msgstr "" -#: js/tempo.js:150 -msgid "slow down" +#: js/widgets/aiwidget.js:180 +#: js/widgets/sampler.js:227 +msgid "Warning: Sample is bigger than 1MB." msgstr "" -#: js/tempo.js:194 -msgid "Adjust the tempo with the buttons." +#: js/widgets/aiwidget.js:539 +msgid "New start block generated" msgstr "" -#: js/tempo.js:261 -msgid "Please enter a number between 30 and 1000" +#: js/widgets/aiwidget.js:541 +msgid "MIDI loading. This may take some time depending upon the number of notes in the track" msgstr "" -#: js/tempo.js:268 -#: js/tempo.js:271 -msgid "The beats per minute must be between 30 and 1000." +#: js/widgets/aiwidget.js:551 +#: js/widgets/sampler.js:254 +msgid "Upload failed: Sample is not a .wav file." msgstr "" -#: js/tempo.js:287 -msgid "The beats per minute must be below 1000." +#: js/widgets/aiwidget.js:679 +#: js/widgets/sampler.js:432 +msgid "Save sample" msgstr "" -#: js/tempo.js:303 -msgid "The beats per minute must be above 30" +#: js/widgets/aiwidget.js:701 +msgid "AI Music" msgstr "" -#: js/timbre.js:766 -msgid "Synthesizer" +#: js/widgets/arpeggio.js:239 +msgid "Click in the grid to add steps to the arpeggio." msgstr "" -#: js/timbre.js:789 -msgid "Oscillator" +#: js/widgets/help.js:95 +#: js/widgets/help.js:125 +#: js/widgets/help.js:146 +#: js/widgets/help.js:158 +#: js/widgets/help.js:376 +#: js/widgets/help.js:391 +msgid "Take a tour" msgstr "" -#: js/timbre.js:840 -msgid "Envelope" +#: js/widgets/musickeyboard.js:725 +#: js/widgets/phrasemaker.js:584 +msgid "Add note" msgstr "" -#: js/timbre.js:886 -#: js/GlobalTag.js:50 -#.TRANS: On the Planet, we use labels to tag projects. -msgid "Effects" +#: js/widgets/musickeyboard.js:744 +msgid "Metronome" +msgstr "" + +#: js/widgets/musickeyboard.js:1549 +#: plugins/rodi.rtp:193 +msgid "duration" +msgstr "時間長度" + +#: js/widgets/musickeyboard.js:3179 +msgid "New action blocks generated" +msgstr "" + +#: js/widgets/musickeyboard.js:3180 +msgid "New action block generated" msgstr "" -#: js/timbre.js:904 -msgid "Filter" +#: js/widgets/musickeyboard.js:3365 +#: js/widgets/musickeyboard.js:3373 +msgid "MIDI device present." msgstr "" -#: js/timbre.js:946 -msgid "Add filter" +#: js/widgets/musickeyboard.js:3376 +msgid "No MIDI device found." msgstr "" -#: js/timbre.js:987 -msgid "Click on buttons to open the timbre design tools." +#: js/widgets/musickeyboard.js:3386 +msgid "Failed to get MIDI access in browser." msgstr "" -#: js/timbre.js:1273 -msgid "harmonicity" +#: js/widgets/phrasemaker.js:574 +msgid "Export" msgstr "" -#: js/timbre.js:1340 -#: js/timbre.js:1406 -msgid "modulation index" +#: js/widgets/phrasemaker.js:581 +msgid "Sort" msgstr "" -#: js/timbre.js:1484 -msgid "vibrato amount" +#: js/widgets/phrasemaker.js:975 +msgid "Click on the table to add notes." msgstr "" -#: js/timbre.js:1919 -msgid "Filter already present." +#: js/widgets/phrasemaker.js:2677 +#: js/widgets/phrasemaker.js:2819 +msgid "tuplet value" msgstr "" -#: js/timbre.js:2322 -msgid "delay (MS)" +#: js/widgets/rhythmruler.js:486 +msgid "Save rhythms" msgstr "" -#: js/timbre.js:2507 -msgid "distortion amount" +#: js/widgets/rhythmruler.js:512 +msgid "Save drum machine" msgstr "" -#: js/meterwidget.js:170 -msgid "Reset" +#: js/widgets/rhythmruler.js:589 +#.TRANS: user can tap out a rhythm by clicking on a ruler. +msgid "Tap a rhythm" msgstr "" -#: js/meterwidget.js:196 -msgid "Click in the circle to select strong beats for the meter." +#: js/widgets/rhythmruler.js:817 +msgid "Click on the ruler to divide it." msgstr "" -#: js/arpeggio.js:239 -msgid "Click in the grid to add steps to the arpeggio." +#: js/widgets/rhythmruler.js:950 +#: js/widgets/rhythmruler.js:952 +#: js/widgets/rhythmruler.js:1152 +#: js/widgets/rhythmruler.js:1154 +#: js/widgets/rhythmruler.js:1765 +#: js/widgets/rhythmruler.js:1767 +msgid "tap a rhythm" msgstr "" -#: js/ProjectStorage.js:243 -msgid "anonymous" +#: js/widgets/rhythmruler.js:1459 +msgid "Maximum value of 256 has been exceeded." msgstr "" -#: js/GlobalCard.js:68 -msgid "Share" +#: js/widgets/sampler.js:237 +msgid "Recording started..." msgstr "" -#: js/GlobalCard.js:74 -msgid "Flags" +#: js/widgets/sampler.js:245 +msgid "Recording complete..." msgstr "" -#: js/LocalCard.js:36 -msgid "View published project" +#: js/widgets/sampler.js:283 +msgid "A new sample block was generated." msgstr "" -#: js/LocalCard.js:42 -msgid "Publish project" +#: js/widgets/sampler.js:378 +msgid "Upload sample" msgstr "" -#: js/LocalCard.js:51 -msgid "Edit project" +#: js/widgets/sampler.js:399 +msgid "Warning: Your sample cannot be loaded because it is >1MB." msgstr "" -#: js/LocalCard.js:52 -msgid "Delete project" +#: js/widgets/sampler.js:448 +msgid "Toggle Mic" msgstr "" -#: js/LocalCard.js:53 -msgid "Download project" +#: js/widgets/sampler.js:458 +msgid "Playback" msgstr "" -#: js/LocalCard.js:55 -msgid "Duplicate project" +#: js/widgets/sampler.js:979 +#.TRANS: The reference tone is a sound used for comparison. +msgid "reference tone" msgstr "" -#: js/GlobalTag.js:28 +#: planet/js/GlobalTag.js:28 #.TRANS: On the Planet, we use labels to tag projects. msgid "All Projects" msgstr "" -#: js/GlobalTag.js:30 -#: js/StringHelper.js:37 +#: planet/js/GlobalTag.js:30 +#: planet/js/StringHelper.js:37 #.TRANS: On the Planet, we use labels to tag projects. msgid "My Projects" msgstr "" -#: js/GlobalTag.js:32 +#: planet/js/GlobalTag.js:32 #.TRANS: On the Planet, we use labels to tag projects. msgid "Examples" msgstr "" -#: js/GlobalTag.js:34 +#: planet/js/GlobalTag.js:34 #.TRANS: On the Planet, we use labels to tag projects. msgid "Music" msgstr "" -#: js/GlobalTag.js:36 +#: planet/js/GlobalTag.js:36 #.TRANS: On the Planet, we use labels to tag projects. msgid "Art" msgstr "" -#: js/GlobalTag.js:38 +#: planet/js/GlobalTag.js:38 #.TRANS: On the Planet, we use labels to tag projects. msgid "Math" msgstr "" -#: js/GlobalTag.js:40 +#: planet/js/GlobalTag.js:40 #.TRANS: On the Planet, we use labels to tag projects. msgid "Interactive" msgstr "" -#: js/GlobalTag.js:42 +#: planet/js/GlobalTag.js:42 #.TRANS: On the Planet, we use labels to tag projects. msgid "Design" msgstr "" -#: js/GlobalTag.js:44 +#: planet/js/GlobalTag.js:44 #.TRANS: On the Planet, we use labels to tag projects. msgid "Game" msgstr "" -#: js/GlobalTag.js:46 +#: planet/js/GlobalTag.js:46 #.TRANS: On the Planet, we use labels to tag projects. msgid "Media" msgstr "" -#: js/GlobalTag.js:48 +#: planet/js/GlobalTag.js:48 #.TRANS: On the Planet, we use labels to tag projects. msgid "Sensors" msgstr "" -#: js/GlobalTag.js:52 +#: planet/js/GlobalTag.js:52 #.TRANS: On the Planet, we use labels to tag projects. msgid "Code Snippet" msgstr "" -#: js/helper.js:149 -#: js/StringHelper.js:49 -msgid "Show more tags" +#: planet/js/LocalCard.js:36 +msgid "View published project" msgstr "" -#: js/helper.js:150 -msgid "Show fewer tags" +#: planet/js/LocalCard.js:42 +msgid "Publish project" +msgstr "" + +#: planet/js/LocalCard.js:51 +msgid "Edit project" +msgstr "" + +#: planet/js/LocalCard.js:52 +msgid "Delete project" +msgstr "" + +#: planet/js/LocalCard.js:53 +msgid "Download project" +msgstr "" + +#: planet/js/LocalCard.js:55 +msgid "Duplicate project" +msgstr "" + +#: planet/js/ProjectStorage.js:243 +msgid "anonymous" +msgstr "" + +#: planet/js/SaveInterface.js:34 +msgid "Open in Music Blocks" +msgstr "" + +#: planet/js/SaveInterface.js:35 +msgid "Open in Turtle Blocks" +msgstr "" + +#: planet/js/GlobalCard.js:68 +msgid "Share" +msgstr "" + +#: planet/js/GlobalCard.js:74 +msgid "Flags" +msgstr "" + +#: planet/js/GlobalPlanet.js:35 +msgid "No results found." +msgstr "" + +#: planet/js/GlobalPlanet.js:51 +msgid "Remix of" +msgstr "" + +#: planet/js/GlobalPlanet.js:509 +msgid "Cannot connect to server" msgstr "" -#: js/ProjectViewer.js:30 +#: planet/js/ProjectViewer.js:30 msgid "Error: Report could not be submitted. Try again later." msgstr "" -#: js/ProjectViewer.js:31 +#: planet/js/ProjectViewer.js:31 msgid "Thank you for reporting this project. A moderator will review the project shortly, to verify violation of the Sugar Labs Code of Conduct." msgstr "" -#: js/ProjectViewer.js:32 -#: js/StringHelper.js:62 -#: js/StringHelper.js:64 -#: js/StringHelper.js:68 +#: planet/js/ProjectViewer.js:32 +#: planet/js/StringHelper.js:62 +#: planet/js/StringHelper.js:64 +#: planet/js/StringHelper.js:68 msgid "Report Project" msgstr "" -#: js/ProjectViewer.js:33 -#: js/StringHelper.js:63 +#: planet/js/ProjectViewer.js:33 +#: planet/js/StringHelper.js:63 msgid "Project Reported" msgstr "" -#: js/ProjectViewer.js:34 +#: planet/js/ProjectViewer.js:34 msgid "Report description required" msgstr "" -#: js/ProjectViewer.js:35 +#: planet/js/ProjectViewer.js:35 msgid "Report description too long" msgstr "" -#: js/StringHelper.js:30 +#: planet/js/Publisher.js:30 +msgid "Feature unavailable - cannot connect to server. Reload Music Blocks to try again." +msgstr "" + +#: planet/js/Publisher.js:220 +#: planet/js/Publisher.js:237 +msgid "This field is required" +msgstr "" + +#: planet/js/Publisher.js:227 +msgid "Title too long" +msgstr "" + +#: planet/js/Publisher.js:244 +msgid "Description too long" +msgstr "" + +#: planet/js/Publisher.js:341 +msgid "Server Error" +msgstr "" + +#: planet/js/Publisher.js:341 +msgid "Try Again" +msgstr "" + +#: planet/js/StringHelper.js:30 msgid "Planet" msgstr "" -#: js/StringHelper.js:31 +#: planet/js/StringHelper.js:31 msgid "Close Planet" msgstr "" -#: js/StringHelper.js:32 +#: planet/js/StringHelper.js:32 msgid "Open project from file" msgstr "" -#: js/StringHelper.js:34 +#: planet/js/StringHelper.js:34 msgid "Local" msgstr "" -#: js/StringHelper.js:35 +#: planet/js/StringHelper.js:35 msgid "Global" msgstr "" -#: js/StringHelper.js:36 +#: planet/js/StringHelper.js:36 msgid "Search for a project" msgstr "" -#: js/StringHelper.js:38 +#: planet/js/StringHelper.js:38 msgid "Publish Project" msgstr "" -#: js/StringHelper.js:40 +#: planet/js/StringHelper.js:40 msgid "Tags (max 5)" msgstr "" -#: js/StringHelper.js:41 -#: js/StringHelper.js:61 +#: planet/js/StringHelper.js:41 +#: planet/js/StringHelper.js:61 msgid "Description" msgstr "" -#: js/StringHelper.js:42 -#: js/StringHelper.js:67 +#: planet/js/StringHelper.js:42 +#: planet/js/StringHelper.js:67 msgid "Submit" msgstr "" -#: js/StringHelper.js:43 -#: js/StringHelper.js:47 +#: planet/js/StringHelper.js:43 +#: planet/js/StringHelper.js:47 msgid "Cancel" msgstr "" -#: js/StringHelper.js:44 +#: planet/js/StringHelper.js:44 msgid "Delete \\"\\"?" msgstr "" -#: js/StringHelper.js:45 +#: planet/js/StringHelper.js:45 msgid "Permanently delete project \\"\\"?" msgstr "" -#: js/StringHelper.js:48 +#: planet/js/StringHelper.js:48 msgid "Explore Projects" msgstr "" -#: js/StringHelper.js:50 +#: planet/js/StringHelper.js:49 +#: planet/js/helper.js:149 +msgid "Show more tags" +msgstr "" + +#: planet/js/StringHelper.js:50 msgid "Most recent" msgstr "" -#: js/StringHelper.js:51 +#: planet/js/StringHelper.js:51 msgid "Most liked" msgstr "" -#: js/StringHelper.js:52 +#: planet/js/StringHelper.js:52 msgid "Most downloaded" msgstr "" -#: js/StringHelper.js:53 +#: planet/js/StringHelper.js:53 msgid "A-Z" msgstr "" -#: js/StringHelper.js:54 +#: planet/js/StringHelper.js:54 msgid "Sort by" msgstr "" -#: js/StringHelper.js:55 +#: planet/js/StringHelper.js:55 msgid "Load More Projects" msgstr "" -#: js/StringHelper.js:56 +#: planet/js/StringHelper.js:56 msgid "Last Updated" msgstr "" -#: js/StringHelper.js:57 +#: planet/js/StringHelper.js:57 msgid "Creation Date" msgstr "" -#: js/StringHelper.js:58 +#: planet/js/StringHelper.js:58 msgid "Number of Downloads:" msgstr "" -#: js/StringHelper.js:59 +#: planet/js/StringHelper.js:59 msgid "Number of Likes:" msgstr "" -#: js/StringHelper.js:60 +#: planet/js/StringHelper.js:60 msgid "Tags:" msgstr "" -#: js/StringHelper.js:65 +#: planet/js/StringHelper.js:65 msgid "Report projects which violate the Sugar Labs Code of Conduct." msgstr "" -#: js/StringHelper.js:66 +#: planet/js/StringHelper.js:66 msgid "Reason for reporting project" msgstr "" -#: js/StringHelper.js:70 +#: planet/js/StringHelper.js:70 msgid "Download as File" msgstr "" -#: js/GlobalPlanet.js:35 -msgid "No results found." -msgstr "" - -#: js/GlobalPlanet.js:51 -msgid "Remix of" -msgstr "" - -#: js/GlobalPlanet.js:509 -msgid "Cannot connect to server" -msgstr "" - -#: js/Publisher.js:30 -msgid "Feature unavailable - cannot connect to server. Reload Music Blocks to try again." -msgstr "" - -#: js/Publisher.js:218 -#: js/Publisher.js:235 -msgid "This field is required" -msgstr "" - -#: js/Publisher.js:225 -msgid "Title too long" +#: planet/js/helper.js:150 +msgid "Show fewer tags" msgstr "" -#: js/Publisher.js:242 -msgid "Description too long" +#: plugins/accelerometer.rtp:48 +msgid "motion x" msgstr "" -#: js/Publisher.js:339 -msgid "Server Error" +#: plugins/accelerometer.rtp:56 +msgid "motion y" msgstr "" -#: js/Publisher.js:339 -msgid "Try Again" +#: plugins/accelerometer.rtp:64 +msgid "motion z" msgstr "" -#: js/SaveInterface.js:34 -msgid "Open in Music Blocks" +#: plugins/facebook.rtp:27 +msgid "publish" msgstr "" -#: js/SaveInterface.js:35 -msgid "Open in Turtle Blocks" +#: plugins/maths.rtp:62 +msgid "power" msgstr "" -#: plugins/weather.rtp:68 -#: plugins/weather.rtp:97 -msgid "Days ahead must be in the range of -1 to 5." +#: plugins/maths.rtp:62 +msgid "base" msgstr "" -#: plugins/weather.rtp:122 -msgid "forecast" +#: plugins/maths.rtp:62 +msgid "exp" msgstr "" -#: plugins/weather.rtp:123 -#: plugins/weather.rtp:137 -#: plugins/weather.rtp:150 -msgid "city" +#: plugins/maths.rtp:99 +msgid "floor" msgstr "" -#: plugins/weather.rtp:124 -#: plugins/weather.rtp:138 -#: plugins/weather.rtp:151 -msgid "day" +#: plugins/maths.rtp:104 +msgid "ceiling" msgstr "" -#: plugins/weather.rtp:136 -msgid "high" +#: plugins/maths.rtp:109 +msgid "to degrees" msgstr "" -#: plugins/weather.rtp:149 -msgid "low" +#: plugins/maths.rtp:114 +msgid "to radians" msgstr "" #: plugins/nutrition.rtp:104 @@ -7739,45 +8148,6 @@ msgstr "" msgid "water" msgstr "" -#: plugins/maths.rtp:62 -#: plugins/examples.rtp:93 -msgid "power" -msgstr "" - -#: plugins/maths.rtp:62 -#: plugins/examples.rtp:93 -msgid "base" -msgstr "" - -#: plugins/maths.rtp:62 -#: plugins/examples.rtp:93 -msgid "exp" -msgstr "" - -#: plugins/maths.rtp:99 -#: plugins/examples.rtp:130 -msgid "floor" -msgstr "" - -#: plugins/maths.rtp:104 -#: plugins/examples.rtp:135 -msgid "ceiling" -msgstr "" - -#: plugins/maths.rtp:109 -#: plugins/examples.rtp:140 -msgid "to degrees" -msgstr "" - -#: plugins/maths.rtp:114 -#: plugins/examples.rtp:145 -msgid "to radians" -msgstr "" - -#: plugins/facebook.rtp:27 -msgid "publish" -msgstr "" - #: plugins/rodi.rtp:172 msgid "blink" msgstr "" @@ -7806,18 +8176,66 @@ msgstr "" msgid "move" msgstr "" -#: plugins/accelerometer.rtp:48 -msgid "motion x" +#: plugins/weather.rtp:68 +#: plugins/weather.rtp:97 +msgid "Days ahead must be in the range of -1 to 5." msgstr "" -#: plugins/accelerometer.rtp:56 -msgid "motion y" +#: plugins/weather.rtp:122 +msgid "forecast" msgstr "" -#: plugins/accelerometer.rtp:64 -msgid "motion z" +#: plugins/weather.rtp:123 +#: plugins/weather.rtp:137 +#: plugins/weather.rtp:150 +msgid "city" +msgstr "" + +#: plugins/weather.rtp:124 +#: plugins/weather.rtp:138 +#: plugins/weather.rtp:151 +msgid "day" +msgstr "" + +#: plugins/weather.rtp:136 +msgid "high" +msgstr "" + +#: plugins/weather.rtp:149 +msgid "low" msgstr "" +#: js/toolbar.js:70 + +#: js/toolbar.js:130 + +#: js/toolbar.js:194 + +#: js/toolbar.js:249 + +#~msgid "Toggle JavaScript Editor" +#~msgstr "" + +#: js/EnsembleBlocks.js:643 + +#~msgid "The Turrle pitch block returns the current pitch number being played by the specified turtle." +#~msgstr "" + +#: js/PitchActions.js:88 + +#~msgid "The Scalar Step Block must be used inside of a Note Block." +#~msgstr "" + +#: js/PitchActions.js:107 + +#~msgid "The Scalar Step Block must be preceded by a Pitch Block." +#~msgstr "" + +#: js/musickeyboard.js:2840 + +#~msgid "New action blocks generated!" +#~msgstr "" + #: js/toolbar.js:110 #: js/toolbar.js:204 @@ -8158,11 +8576,6 @@ msgstr "" #~msgid "The Time block returns the number of seconds that the program has been running." #~msgstr "" -#: js/help.js:95 - -#~msgid "Take a tour" -#~msgstr "" - #: js/GlobalCard.js:48 #~msgid "More Details" @@ -11061,11 +11474,6 @@ msgstr "" #~msgid "The save-stack button saves a stack onto a custom palette. It appears after a \"long press\" on a stack." #~msgstr "" -#: js/musicutils.js:254 - -#~msgid "Custom" -#~msgstr "" - #: js/basicblocks.js:4785 #~msgid "Rhythm" diff --git a/po/zh_TW.po b/po/zh_TW.po index 96f51708bb..3b7fb0d7f0 100644 --- a/po/zh_TW.po +++ b/po/zh_TW.po @@ -15,2397 +15,131 @@ #js/toolbar.js:230 #js/turtledefs.js:504 #js/turtledefs.js:505 -msgid: "Toggle Fullscreen" -msgstr: "切换全屏" - -#: js/activity.js:443 -#: js/activity.js:443 -#: js/activity.js:445 -#: js/activity.js:453 -#: js/activity.js:472 -#: js/activity.js:472 -#: js/activity.js:475 -#: js/block.js:632 -#: js/pitchdrummatrix.js:178 -#: js/musicutils.js:37 -#: js/block.js:531 -#: js/pitchdrummatrix.js:235 -#: js/musicutils.js:40 -#: js/block.js:532 -#: js/pitchdrummatrix.js:235 -#: js/musicutils.js:40 -#: js/block.js:534 -#: js/pitchdrummatrix.js:235 -#: js/musicutils.js:40 -#: js/block.js:534 -#: js/pitchdrummatrix.js:235 -#: js/musicutils.js:40 -#: js/block.js:534 -#: js/pitchdrummatrix.js:235 -#: js/musicutils.js:40 -#: js/block.js:535 -#: js/pitchdrummatrix.js:235 -#: js/musicutils.js:43 -#: js/block.js:535 -#: js/pitchdrummatrix.js:235 -#: js/musicutils.js:43 -#: js/block.js:535 -#: js/pitchdrummatrix.js:235 -#: js/musicutils.js:43 -#: js/block.js:535 -#: js/pitchdrummatrix.js:235 -#: js/musicutils.js:43 -#: js/block.js:535 -#: js/pitchdrummatrix.js:235 -#: js/musicutils.js:43 -#: js/block.js:535 -#: js/pitchdrummatrix.js:235 -#: js/musicutils.js:43 -#: js/block.js:535 -#: js/pitchdrummatrix.js:235 -#: js/musicutils.js:43 -#: js/block.js:535 -#: js/pitchdrummatrix.js:235 -#: js/musicutils.js:43 -#: js/block.js:535 -#: js/pitchdrummatrix.js:235 -#: js/musicutils.js:43 -#: js/block.js:535 -#: js/pitchdrummatrix.js:235 -#: js/musicutils.js:43 -#: js/block.js:535 -#: js/pitchdrummatrix.js:235 -#: js/musicutils.js:43 -#: js/block.js:535 -#: js/pitchdrummatrix.js:235 -#: js/musicutils.js:43 -#: js/block.js:535 -#: js/pitchdrummatrix.js:235 -#: js/musicutils.js:43 -#: js/synthutils.js:14 -#: js/block.js:535 -#: js/pitchdrummatrix.js:235 -#: js/musicutils.js:43 -#: js/block.js:535 -#: js/pitchdrummatrix.js:235 -#: js/musicutils.js:43 -#: js/block.js:535 -#: js/pitchdrummatrix.js:235 -#: js/musicutils.js:43 -#: js/block.js:535 -#: js/pitchdrummatrix.js:235 -#: js/musicutils.js:43 -#: js/block.js:535 -#: js/pitchdrummatrix.js:235 -#: js/musicutils.js:43 -#: js/block.js:535 -#: js/pitchdrummatrix.js:235 -#: js/musicutils.js:43 -#: js/block.js:535 -#: js/pitchdrummatrix.js:235 -#: js/musicutils.js:43 -#: js/block.js:535 -#: js/pitchdrummatrix.js:235 -#: js/musicutils.js:43 -#: js/block.js:535 -#: js/pitchdrummatrix.js:235 -#: js/musicutils.js:43 -#: js/block.js:535 -#: js/pitchdrummatrix.js:235 -#: js/musicutils.js:43 -#: js/block.js:535 -#: js/pitchdrummatrix.js:235 -#: js/musicutils.js:43 -#: js/block.js:536 -#: js/pitchdrummatrix.js:235 -#: js/musicutils.js:45 -#: js/block.js:536 -#: js/pitchdrummatrix.js:235 -#: js/musicutils.js:45 -#: js/block.js:551 -#: js/pitchdrummatrix.js:235 -#: js/musicutils.js:46 -#: js/block.js:551 -#: js/pitchdrummatrix.js:235 -#: js/musicutils.js:46 -#: js/block.js:565 -#: js/pitchdrummatrix.js:235 -#: js/musicutils.js:48 -#: js/musicutils.js:57 -#: js/block.js:565 -#: js/pitchdrummatrix.js:235 -#: js/musicutils.js:48 -#: js/musicutils.js:57 -#: js/block.js:565 -#: js/pitchdrummatrix.js:235 -#: js/musicutils.js:48 -#: js/musicutils.js:57 -#: js/block.js:567 -#: js/pitchdrummatrix.js:235 -#: js/musicutils.js:48 -#: js/musicutils.js:57 -#: js/block.js:720 -#: js/block.js:3892 -#: js/block.js:3901 -#: js/block.js:3912 -#: js/activity.js:2732 -#: js/analytics.js:475 -#: js/palette.js:676 -#: js/palette.js:685 -#: js/palette.js:694 -#: js/palette.js:703 -#: js/palette.js:1978 -#: js/palette.js:1989 -#: js/palette.js:2000 -#: js/palette.js:2011 -#: js/turtledefs.js:23 -#: js/basicblocks.js:1148 -#: js/basicblocks.js:1159 -#: js/basicblocks.js:2806 -#: js/basicblocks.js:2837 -#: js/basicblocks.js:2844 -#: js/basicblocks.js:2873 -#: js/basicblocks.js:2883 -#: js/basicblocks.js:2915 -#: js/basicblocks.js:2960 -#: js/basicblocks.js:2964 -#: js/basicblocks.js:2970 -#: js/macros.js:44 -#: js/blocks.js:784 -#: js/blocks.js:2385 -#: js/blocks.js:2386 -#: js/blocks.js:2578 -#: js/blocks.js:2784 -#: js/blocks.js:2940 -#: js/blocks.js:3503 -#: js/blocks.js:4308 -#: js/block.js:720 -#: js/block.js:3892 -#: js/block.js:3901 -#: js/block.js:3912 -#: js/activity.js:2732 -#: js/analytics.js:475 -#: js/palette.js:681 -#: js/palette.js:690 -#: js/palette.js:699 -#: js/palette.js:708 -#: js/palette.js:1983 -#: js/palette.js:1994 -#: js/palette.js:2005 -#: js/palette.js:2016 -#: js/turtledefs.js:23 -#: js/basicblocks.js:1148 -#: js/basicblocks.js:1159 -#: js/basicblocks.js:1170 -#: js/basicblocks.js:2817 -#: js/basicblocks.js:2848 -#: js/basicblocks.js:2855 -#: js/basicblocks.js:2884 -#: js/basicblocks.js:2894 -#: js/basicblocks.js:2926 -#: js/basicblocks.js:2971 -#: js/basicblocks.js:2975 -#: js/basicblocks.js:2981 -#: js/macros.js:44 -#: js/blocks.js:784 -#: js/blocks.js:2385 -#: js/blocks.js:2386 -#: js/blocks.js:2578 -#: js/blocks.js:2784 -#: js/blocks.js:2940 -#: js/blocks.js:3514 -#: js/blocks.js:4319 -#: js/block.js:720 -#: js/block.js:3892 -#: js/block.js:3901 -#: js/block.js:3912 -#: js/activity.js:2732 -#: js/analytics.js:475 -#: js/palette.js:681 -#: js/palette.js:690 -#: js/palette.js:699 -#: js/palette.js:708 -#: js/palette.js:1983 -#: js/palette.js:1994 -#: js/palette.js:2005 -#: js/palette.js:2016 -#: js/turtledefs.js:23 -#: js/basicblocks.js:1148 -#: js/basicblocks.js:1159 -#: js/basicblocks.js:1170 -#: js/basicblocks.js:2817 -#: js/basicblocks.js:2848 -#: js/basicblocks.js:2855 -#: js/basicblocks.js:2884 -#: js/basicblocks.js:2894 -#: js/basicblocks.js:2926 -#: js/basicblocks.js:2971 -#: js/basicblocks.js:2975 -#: js/basicblocks.js:2981 -#: js/macros.js:44 -#: js/blocks.js:784 -#: js/blocks.js:2385 -#: js/blocks.js:2386 -#: js/blocks.js:2578 -#: js/blocks.js:2784 -#: js/blocks.js:2940 -#: js/blocks.js:3514 -#: js/blocks.js:4319 -#: js/block.js:863 -#: js/block.js:4105 -#: js/block.js:4114 -#: js/block.js:4125 -#: js/activity.js:2934 -#: js/palette.js:734 -#: js/palette.js:745 -#: js/palette.js:754 -#: js/palette.js:763 -#: js/palette.js:2076 -#: js/palette.js:2088 -#: js/palette.js:2099 -#: js/palette.js:2110 -#: js/turtledefs.js:23 -#: js/basicblocks.js:1406 -#: js/basicblocks.js:1420 -#: js/basicblocks.js:1434 -#: js/basicblocks.js:3700 -#: js/basicblocks.js:3740 -#: js/basicblocks.js:3750 -#: js/basicblocks.js:3788 -#: js/basicblocks.js:3801 -#: js/basicblocks.js:3852 -#: js/basicblocks.js:3897 -#: js/basicblocks.js:3902 -#: js/basicblocks.js:3907 -#: js/rubrics.js:475 -#: js/macros.js:44 -#: js/blocks.js:863 -#: js/blocks.js:2466 -#: js/blocks.js:2467 -#: js/blocks.js:2659 -#: js/blocks.js:2865 -#: js/blocks.js:3021 -#: js/blocks.js:3661 -#: js/blocks.js:4458 -#: js/rhythmruler.js:1138 -#: js/rhythmruler.js:1140 -#: js/rhythmruler.js:1240 -#: js/rhythmruler.js:1242 -#: js/block.js:876 -#: js/block.js:4289 -#: js/block.js:4298 -#: js/block.js:4309 -#: js/activity.js:3042 -#: js/palette.js:750 -#: js/palette.js:759 -#: js/palette.js:768 -#: js/palette.js:777 -#: js/palette.js:2057 -#: js/palette.js:2068 -#: js/palette.js:2079 -#: js/palette.js:2090 -#: js/palette.js:2100 -#: js/turtledefs.js:23 -#: js/basicblocks.js:1407 -#: js/basicblocks.js:1421 -#: js/basicblocks.js:1435 -#: js/basicblocks.js:3720 -#: js/basicblocks.js:3760 -#: js/basicblocks.js:3770 -#: js/basicblocks.js:3808 -#: js/basicblocks.js:3821 -#: js/basicblocks.js:3862 -#: js/basicblocks.js:3917 -#: js/basicblocks.js:3922 -#: js/basicblocks.js:3927 -#: js/rubrics.js:476 -#: js/macros.js:44 -#: js/blocks.js:863 -#: js/blocks.js:2475 -#: js/blocks.js:2476 -#: js/blocks.js:2668 -#: js/blocks.js:2874 -#: js/blocks.js:3030 -#: js/blocks.js:3851 -#: js/blocks.js:4668 -#: js/rhythmruler.js:1149 -#: js/rhythmruler.js:1151 -#: js/rhythmruler.js:1251 -#: js/rhythmruler.js:1253 -#: js/block.js:923 -#: js/block.js:4637 -#: js/block.js:4646 -#: js/block.js:4657 -#: js/activity.js:3061 -#: js/palette.js:737 -#: js/palette.js:746 -#: js/palette.js:755 -#: js/palette.js:764 -#: js/palette.js:2043 -#: js/palette.js:2054 -#: js/palette.js:2065 -#: js/palette.js:2076 -#: js/palette.js:2086 -#: js/turtledefs.js:23 -#: js/basicblocks.js:1445 -#: js/basicblocks.js:1459 -#: js/basicblocks.js:1473 -#: js/basicblocks.js:3776 -#: js/basicblocks.js:3816 -#: js/basicblocks.js:3826 -#: js/basicblocks.js:3864 -#: js/basicblocks.js:3877 -#: js/basicblocks.js:3918 -#: js/basicblocks.js:3973 -#: js/basicblocks.js:3978 -#: js/basicblocks.js:3983 -#: js/rubrics.js:477 -#: js/macros.js:45 -#: js/blocks.js:816 -#: js/blocks.js:2432 -#: js/blocks.js:2433 -#: js/blocks.js:2625 -#: js/blocks.js:2869 -#: js/blocks.js:3025 -#: js/blocks.js:3866 -#: js/blocks.js:4705 -#: js/rhythmruler.js:1149 -#: js/rhythmruler.js:1151 -#: js/rhythmruler.js:1251 -#: js/rhythmruler.js:1253 -#: js/block.js:923 -#: js/block.js:4823 -#: js/block.js:4832 -#: js/block.js:4843 -#: js/activity.js:3079 -#: js/palette.js:737 -#: js/palette.js:746 -#: js/palette.js:755 -#: js/palette.js:764 -#: js/palette.js:2043 -#: js/palette.js:2054 -#: js/palette.js:2065 -#: js/palette.js:2076 -#: js/palette.js:2086 -#: js/turtledefs.js:23 -#: js/basicblocks.js:1441 -#: js/basicblocks.js:1455 -#: js/basicblocks.js:1469 -#: js/basicblocks.js:3762 -#: js/basicblocks.js:3802 -#: js/basicblocks.js:3812 -#: js/basicblocks.js:3850 -#: js/basicblocks.js:3863 -#: js/basicblocks.js:3904 -#: js/basicblocks.js:3959 -#: js/basicblocks.js:3964 -#: js/basicblocks.js:3969 -#: js/rubrics.js:477 -#: js/macros.js:45 -#: js/blocks.js:816 -#: js/blocks.js:2430 -#: js/blocks.js:2431 -#: js/blocks.js:2623 -#: js/blocks.js:2867 -#: js/blocks.js:3023 -#: js/blocks.js:3864 -#: js/blocks.js:4702 -#: js/rhythmruler.js:1149 -#: js/rhythmruler.js:1151 -#: js/rhythmruler.js:1251 -#: js/rhythmruler.js:1253 -#: js/block.js:923 -#: js/block.js:4836 -#: js/block.js:4845 -#: js/block.js:4856 -#: js/activity.js:3089 -#: js/palette.js:737 -#: js/palette.js:746 -#: js/palette.js:755 -#: js/palette.js:764 -#: js/palette.js:2043 -#: js/palette.js:2054 -#: js/palette.js:2065 -#: js/palette.js:2076 -#: js/palette.js:2086 -#: js/turtledefs.js:23 -#: js/basicblocks.js:1441 -#: js/basicblocks.js:1455 -#: js/basicblocks.js:1469 -#: js/basicblocks.js:3762 -#: js/basicblocks.js:3802 -#: js/basicblocks.js:3812 -#: js/basicblocks.js:3850 -#: js/basicblocks.js:3863 -#: js/basicblocks.js:3904 -#: js/basicblocks.js:3959 -#: js/basicblocks.js:3964 -#: js/basicblocks.js:3969 -#: js/rubrics.js:477 -#: js/macros.js:45 -#: js/blocks.js:816 -#: js/blocks.js:2432 -#: js/blocks.js:2433 -#: js/blocks.js:2625 -#: js/blocks.js:2869 -#: js/blocks.js:3025 -#: js/blocks.js:3866 -#: js/blocks.js:4704 -#: js/rhythmruler.js:1149 -#: js/rhythmruler.js:1151 -#: js/rhythmruler.js:1251 -#: js/rhythmruler.js:1253 -#: js/block.js:923 -#: js/block.js:4841 -#: js/block.js:4850 -#: js/block.js:4861 -#: js/activity.js:3079 -#: js/palette.js:737 -#: js/palette.js:746 -#: js/palette.js:755 -#: js/palette.js:764 -#: js/palette.js:2043 -#: js/palette.js:2054 -#: js/palette.js:2065 -#: js/palette.js:2076 -#: js/palette.js:2086 -#: js/turtledefs.js:23 -#: js/basicblocks.js:1474 -#: js/basicblocks.js:1488 -#: js/basicblocks.js:1502 -#: js/basicblocks.js:3808 -#: js/basicblocks.js:3848 -#: js/basicblocks.js:3858 -#: js/basicblocks.js:3896 -#: js/basicblocks.js:3909 -#: js/basicblocks.js:3950 -#: js/basicblocks.js:4005 -#: js/basicblocks.js:4010 -#: js/basicblocks.js:4015 -#: js/rubrics.js:477 -#: js/macros.js:45 -#: js/blocks.js:816 -#: js/blocks.js:2433 -#: js/blocks.js:2434 -#: js/blocks.js:2626 -#: js/blocks.js:2870 -#: js/blocks.js:3026 -#: js/blocks.js:3867 -#: js/blocks.js:4705 -#: js/rhythmruler.js:1157 -#: js/rhythmruler.js:1159 -#: js/rhythmruler.js:1259 -#: js/rhythmruler.js:1261 -#: js/block.js:923 -#: js/block.js:4845 -#: js/block.js:4854 -#: js/block.js:4865 -#: js/activity.js:3083 -#: js/palette.js:765 -#: js/palette.js:774 -#: js/palette.js:783 -#: js/palette.js:792 -#: js/palette.js:2072 -#: js/palette.js:2083 -#: js/palette.js:2094 -#: js/palette.js:2105 -#: js/palette.js:2115 -#: js/turtledefs.js:25 -#: js/basicblocks.js:1474 -#: js/basicblocks.js:1488 -#: js/basicblocks.js:1502 -#: js/basicblocks.js:3808 -#: js/basicblocks.js:3848 -#: js/basicblocks.js:3858 -#: js/basicblocks.js:3896 -#: js/basicblocks.js:3909 -#: js/basicblocks.js:3950 -#: js/basicblocks.js:4005 -#: js/basicblocks.js:4010 -#: js/basicblocks.js:4015 -#: js/rubrics.js:477 -#: js/macros.js:45 -#: js/blocks.js:816 -#: js/blocks.js:2433 -#: js/blocks.js:2434 -#: js/blocks.js:2626 -#: js/blocks.js:2870 -#: js/blocks.js:3026 -#: js/blocks.js:3867 -#: js/blocks.js:4705 -#: js/rhythmruler.js:1157 -#: js/rhythmruler.js:1159 -#: js/rhythmruler.js:1259 -#: js/rhythmruler.js:1261 -#: js/block.js:923 -#: js/block.js:4845 -#: js/block.js:4854 -#: js/block.js:4865 -#: js/activity.js:3083 -#: js/palette.js:765 -#: js/palette.js:774 -#: js/palette.js:783 -#: js/palette.js:792 -#: js/palette.js:2072 -#: js/palette.js:2083 -#: js/palette.js:2094 -#: js/palette.js:2105 -#: js/palette.js:2115 -#: js/turtledefs.js:25 -#: js/basicblocks.js:1474 -#: js/basicblocks.js:1488 -#: js/basicblocks.js:1502 -#: js/basicblocks.js:3808 -#: js/basicblocks.js:3848 -#: js/basicblocks.js:3858 -#: js/basicblocks.js:3896 -#: js/basicblocks.js:3909 -#: js/basicblocks.js:3950 -#: js/basicblocks.js:4005 -#: js/basicblocks.js:4010 -#: js/basicblocks.js:4015 -#: js/rubrics.js:477 -#: js/macros.js:45 -#: js/blocks.js:816 -#: js/blocks.js:2433 -#: js/blocks.js:2434 -#: js/blocks.js:2626 -#: js/blocks.js:2870 -#: js/blocks.js:3026 -#: js/blocks.js:3867 -#: js/blocks.js:4705 -#: js/rhythmruler.js:1157 -#: js/rhythmruler.js:1159 -#: js/rhythmruler.js:1259 -#: js/rhythmruler.js:1261 -#: js/block.js:923 -#: js/block.js:4845 -#: js/block.js:4854 -#: js/block.js:4865 -#: js/activity.js:3083 -#: js/palette.js:765 -#: js/palette.js:774 -#: js/palette.js:783 -#: js/palette.js:792 -#: js/palette.js:2072 -#: js/palette.js:2083 -#: js/palette.js:2094 -#: js/palette.js:2105 -#: js/palette.js:2115 -#: js/turtledefs.js:25 -#: js/basicblocks.js:1474 -#: js/basicblocks.js:1488 -#: js/basicblocks.js:1502 -#: js/basicblocks.js:3808 -#: js/basicblocks.js:3848 -#: js/basicblocks.js:3858 -#: js/basicblocks.js:3896 -#: js/basicblocks.js:3909 -#: js/basicblocks.js:3950 -#: js/basicblocks.js:4005 -#: js/basicblocks.js:4010 -#: js/basicblocks.js:4015 -#: js/rubrics.js:477 -#: js/macros.js:45 -#: js/blocks.js:816 -#: js/blocks.js:2433 -#: js/blocks.js:2434 -#: js/blocks.js:2626 -#: js/blocks.js:2870 -#: js/blocks.js:3026 -#: js/blocks.js:3867 -#: js/blocks.js:4705 -#: js/rhythmruler.js:1157 -#: js/rhythmruler.js:1159 -#: js/rhythmruler.js:1259 -#: js/rhythmruler.js:1261 -#: js/block.js:926 -#: js/block.js:4883 -#: js/block.js:4892 -#: js/block.js:4903 -#: js/activity.js:3083 -#: js/palette.js:765 -#: js/palette.js:774 -#: js/palette.js:783 -#: js/palette.js:792 -#: js/palette.js:2075 -#: js/palette.js:2086 -#: js/palette.js:2097 -#: js/palette.js:2108 -#: js/palette.js:2118 -#: js/turtledefs.js:25 -#: js/basicblocks.js:1474 -#: js/basicblocks.js:1488 -#: js/basicblocks.js:1502 -#: js/basicblocks.js:3830 -#: js/basicblocks.js:3870 -#: js/basicblocks.js:3880 -#: js/basicblocks.js:3918 -#: js/basicblocks.js:3931 -#: js/basicblocks.js:3972 -#: js/basicblocks.js:4027 -#: js/basicblocks.js:4032 -#: js/basicblocks.js:4037 -#: js/rubrics.js:478 -#: js/macros.js:45 -#: js/blocks.js:816 -#: js/blocks.js:2437 -#: js/blocks.js:2438 -#: js/blocks.js:2630 -#: js/blocks.js:2874 -#: js/blocks.js:3030 -#: js/blocks.js:3871 -#: js/blocks.js:4724 -#: js/rhythmruler.js:1157 -#: js/rhythmruler.js:1159 -#: js/rhythmruler.js:1259 -#: js/rhythmruler.js:1261 -#: js/block.js:926 -#: js/block.js:4883 -#: js/block.js:4892 -#: js/block.js:4903 -#: js/activity.js:3078 -#: js/palette.js:765 -#: js/palette.js:774 -#: js/palette.js:783 -#: js/palette.js:792 -#: js/palette.js:2075 -#: js/palette.js:2086 -#: js/palette.js:2097 -#: js/palette.js:2108 -#: js/palette.js:2118 -#: js/turtledefs.js:25 -#: js/basicblocks.js:1475 -#: js/basicblocks.js:1489 -#: js/basicblocks.js:1503 -#: js/basicblocks.js:3832 -#: js/basicblocks.js:3872 -#: js/basicblocks.js:3882 -#: js/basicblocks.js:3920 -#: js/basicblocks.js:3933 -#: js/basicblocks.js:3974 -#: js/basicblocks.js:4029 -#: js/basicblocks.js:4034 -#: js/basicblocks.js:4039 -#: js/rubrics.js:478 -#: js/macros.js:45 -#: js/blocks.js:816 -#: js/blocks.js:2437 -#: js/blocks.js:2438 -#: js/blocks.js:2630 -#: js/blocks.js:2874 -#: js/blocks.js:3030 -#: js/blocks.js:3871 -#: js/blocks.js:4724 -#: js/rhythmruler.js:1162 -#: js/rhythmruler.js:1164 -#: js/rhythmruler.js:1272 -#: js/rhythmruler.js:1274 -#: js/block.js:1046 -#: js/block.js:5109 -#: js/block.js:5118 -#: js/block.js:5129 -#: js/activity.js:3147 -#: js/palette.js:766 -#: js/palette.js:775 -#: js/palette.js:784 -#: js/palette.js:793 -#: js/palette.js:2076 -#: js/palette.js:2087 -#: js/palette.js:2098 -#: js/palette.js:2109 -#: js/palette.js:2119 -#: js/turtledefs.js:25 -#: js/basicblocks.js:1504 -#: js/basicblocks.js:1524 -#: js/basicblocks.js:1538 -#: js/basicblocks.js:3894 -#: js/basicblocks.js:3934 -#: js/basicblocks.js:3944 -#: js/basicblocks.js:3992 -#: js/basicblocks.js:4005 -#: js/basicblocks.js:4052 -#: js/basicblocks.js:4107 -#: js/basicblocks.js:4112 -#: js/basicblocks.js:4117 -#: js/rubrics.js:478 -#: js/macros.js:45 -#: js/blocks.js:816 -#: js/blocks.js:2437 -#: js/blocks.js:2438 -#: js/blocks.js:2630 -#: js/blocks.js:2874 -#: js/blocks.js:3030 -#: js/blocks.js:3940 -#: js/blocks.js:4793 -#: js/rhythmruler.js:1162 -#: js/rhythmruler.js:1164 -#: js/rhythmruler.js:1272 -#: js/rhythmruler.js:1274 -#: js/block.js:1050 -#: js/block.js:5120 -#: js/block.js:5129 -#: js/block.js:5140 -#: js/activity.js:2267 -#: js/palette.js:766 -#: js/palette.js:775 -#: js/palette.js:784 -#: js/palette.js:793 -#: js/palette.js:2094 -#: js/palette.js:2105 -#: js/palette.js:2116 -#: js/palette.js:2127 -#: js/palette.js:2137 -#: js/turtledefs.js:25 -#: js/basicblocks.js:1514 -#: js/basicblocks.js:1534 -#: js/basicblocks.js:1548 -#: js/basicblocks.js:3942 -#: js/basicblocks.js:3982 -#: js/basicblocks.js:3992 -#: js/basicblocks.js:4040 -#: js/basicblocks.js:4053 -#: js/basicblocks.js:4100 -#: js/basicblocks.js:4155 -#: js/basicblocks.js:4160 -#: js/basicblocks.js:4165 -#: js/rubrics.js:478 -#: js/macros.js:45 -#: js/blocks.js:809 -#: js/blocks.js:2430 -#: js/blocks.js:2431 -#: js/blocks.js:2623 -#: js/blocks.js:2867 -#: js/blocks.js:3023 -#: js/blocks.js:3931 -#: js/blocks.js:4784 -#: js/rhythmruler.js:1162 -#: js/rhythmruler.js:1164 -#: js/rhythmruler.js:1272 -#: js/rhythmruler.js:1274 -#: js/block.js:1050 -#: js/block.js:5120 -#: js/block.js:5129 -#: js/block.js:5140 -#: js/activity.js:2267 -#: js/palette.js:766 -#: js/palette.js:775 -#: js/palette.js:784 -#: js/palette.js:793 -#: js/palette.js:2094 -#: js/palette.js:2105 -#: js/palette.js:2116 -#: js/palette.js:2127 -#: js/palette.js:2137 -#: js/turtledefs.js:25 -#: js/basicblocks.js:1519 -#: js/basicblocks.js:1539 -#: js/basicblocks.js:1553 -#: js/basicblocks.js:3959 -#: js/basicblocks.js:3999 -#: js/basicblocks.js:4009 -#: js/basicblocks.js:4057 -#: js/basicblocks.js:4070 -#: js/basicblocks.js:4117 -#: js/basicblocks.js:4172 -#: js/basicblocks.js:4177 -#: js/basicblocks.js:4182 -#: js/rubrics.js:478 -#: js/macros.js:45 -#: js/blocks.js:809 -#: js/blocks.js:2430 -#: js/blocks.js:2431 -#: js/blocks.js:2623 -#: js/blocks.js:2867 -#: js/blocks.js:3023 -#: js/blocks.js:3931 -#: js/blocks.js:4784 -#: js/rhythmruler.js:1162 -#: js/rhythmruler.js:1164 -#: js/rhythmruler.js:1272 -#: js/rhythmruler.js:1274 -#: js/block.js:1050 -#: js/block.js:5120 -#: js/block.js:5129 -#: js/block.js:5140 -#: js/activity.js:2267 -#: js/palette.js:766 -#: js/palette.js:775 -#: js/palette.js:784 -#: js/palette.js:793 -#: js/palette.js:2094 -#: js/palette.js:2105 -#: js/palette.js:2116 -#: js/palette.js:2127 -#: js/palette.js:2137 -#: js/turtledefs.js:25 -#: js/basicblocks.js:1519 -#: js/basicblocks.js:1539 -#: js/basicblocks.js:1553 -#: js/basicblocks.js:3959 -#: js/basicblocks.js:3999 -#: js/basicblocks.js:4009 -#: js/basicblocks.js:4057 -#: js/basicblocks.js:4070 -#: js/basicblocks.js:4117 -#: js/basicblocks.js:4172 -#: js/basicblocks.js:4177 -#: js/basicblocks.js:4182 -#: js/rubrics.js:478 -#: js/macros.js:45 -#: js/blocks.js:808 -#: js/blocks.js:2429 -#: js/blocks.js:2430 -#: js/blocks.js:2622 -#: js/blocks.js:2866 -#: js/blocks.js:3022 -#: js/blocks.js:3930 -#: js/blocks.js:4783 -#: js/rhythmruler.js:1162 -#: js/rhythmruler.js:1164 -#: js/rhythmruler.js:1272 -#: js/rhythmruler.js:1274 -#: js/block.js:1050 -#: js/block.js:5120 -#: js/block.js:5129 -#: js/block.js:5140 -#: js/activity.js:2267 -#: js/palette.js:766 -#: js/palette.js:775 -#: js/palette.js:784 -#: js/palette.js:793 -#: js/palette.js:2094 -#: js/palette.js:2105 -#: js/palette.js:2116 -#: js/palette.js:2127 -#: js/palette.js:2137 -#: js/turtledefs.js:25 -#: js/basicblocks.js:1519 -#: js/basicblocks.js:1539 -#: js/basicblocks.js:1553 -#: js/basicblocks.js:3959 -#: js/basicblocks.js:3999 -#: js/basicblocks.js:4009 -#: js/basicblocks.js:4057 -#: js/basicblocks.js:4070 -#: js/basicblocks.js:4117 -#: js/basicblocks.js:4172 -#: js/basicblocks.js:4177 -#: js/basicblocks.js:4182 -#: js/rubrics.js:478 -#: js/macros.js:45 -#: js/blocks.js:808 -#: js/blocks.js:2429 -#: js/blocks.js:2430 -#: js/blocks.js:2622 -#: js/blocks.js:2866 -#: js/blocks.js:3022 -#: js/blocks.js:3930 -#: js/blocks.js:4783 -#: js/rhythmruler.js:1162 -#: js/rhythmruler.js:1164 -#: js/rhythmruler.js:1272 -#: js/rhythmruler.js:1274 -#: js/block.js:1050 -#: js/block.js:5120 -#: js/block.js:5129 -#: js/block.js:5140 -#: js/activity.js:2267 -#: js/palette.js:766 -#: js/palette.js:775 -#: js/palette.js:784 -#: js/palette.js:793 -#: js/palette.js:2094 -#: js/palette.js:2105 -#: js/palette.js:2116 -#: js/palette.js:2127 -#: js/palette.js:2137 -#: js/turtledefs.js:25 -#: js/basicblocks.js:1526 -#: js/basicblocks.js:1546 -#: js/basicblocks.js:1560 -#: js/basicblocks.js:3966 -#: js/basicblocks.js:4006 -#: js/basicblocks.js:4016 -#: js/basicblocks.js:4064 -#: js/basicblocks.js:4077 -#: js/basicblocks.js:4124 -#: js/basicblocks.js:4179 -#: js/basicblocks.js:4184 -#: js/basicblocks.js:4189 -#: js/rubrics.js:478 -#: js/macros.js:45 -#: js/blocks.js:808 -#: js/blocks.js:2429 -#: js/blocks.js:2430 -#: js/blocks.js:2622 -#: js/blocks.js:2866 -#: js/blocks.js:3022 -#: js/blocks.js:3930 -#: js/blocks.js:4783 -#: js/rhythmruler.js:1162 -#: js/rhythmruler.js:1164 -#: js/rhythmruler.js:1272 -#: js/rhythmruler.js:1274 -#: js/block.js:1162 -#: js/block.js:5410 -#: js/block.js:5419 -#: js/block.js:5430 -#: js/activity.js:2268 -#: js/palette.js:770 -#: js/palette.js:779 -#: js/palette.js:788 -#: js/palette.js:797 -#: js/palette.js:2098 -#: js/palette.js:2109 -#: js/palette.js:2120 -#: js/palette.js:2131 -#: js/palette.js:2141 -#: js/turtledefs.js:31 -#: js/basicblocks.js:1528 -#: js/basicblocks.js:1548 -#: js/basicblocks.js:1562 -#: js/basicblocks.js:3968 -#: js/basicblocks.js:4008 -#: js/basicblocks.js:4018 -#: js/basicblocks.js:4066 -#: js/basicblocks.js:4079 -#: js/basicblocks.js:4126 -#: js/basicblocks.js:4181 -#: js/basicblocks.js:4186 -#: js/basicblocks.js:4191 -#: js/rubrics.js:478 -#: js/macros.js:45 -#: js/blocks.js:1023 -#: js/blocks.js:2839 -#: js/blocks.js:2840 -#: js/blocks.js:3054 -#: js/blocks.js:3356 -#: js/blocks.js:3549 -#: js/blocks.js:4588 -#: js/blocks.js:5446 -#: js/musickeyboard.js:369 -#: js/pitchtimematrix.js:1612 -#: js/rhythmruler.js:1171 -#: js/rhythmruler.js:1173 -#: js/rhythmruler.js:1281 -#: js/rhythmruler.js:1283 -#: js/block.js:1162 -#: js/block.js:5410 -#: js/block.js:5419 -#: js/block.js:5430 -#: js/activity.js:2268 -#: js/palette.js:770 -#: js/palette.js:779 -#: js/palette.js:788 -#: js/palette.js:797 -#: js/palette.js:2098 -#: js/palette.js:2109 -#: js/palette.js:2120 -#: js/palette.js:2131 -#: js/palette.js:2141 -#: js/turtledefs.js:35 -#: js/basicblocks.js:1528 -#: js/basicblocks.js:1548 -#: js/basicblocks.js:1562 -#: js/basicblocks.js:3968 -#: js/basicblocks.js:4008 -#: js/basicblocks.js:4018 -#: js/basicblocks.js:4066 -#: js/basicblocks.js:4079 -#: js/basicblocks.js:4126 -#: js/basicblocks.js:4181 -#: js/basicblocks.js:4186 -#: js/basicblocks.js:4191 -#: js/rubrics.js:478 -#: js/macros.js:45 -#: js/blocks.js:1023 -#: js/blocks.js:2839 -#: js/blocks.js:2840 -#: js/blocks.js:3054 -#: js/blocks.js:3356 -#: js/blocks.js:3549 -#: js/blocks.js:4588 -#: js/blocks.js:5446 -#: js/musickeyboard.js:369 -#: js/pitchtimematrix.js:1612 -#: js/rhythmruler.js:1171 -#: js/rhythmruler.js:1173 -#: js/rhythmruler.js:1281 -#: js/rhythmruler.js:1283 -#: js/block.js:1162 -#: js/block.js:5410 -#: js/block.js:5419 -#: js/block.js:5430 -#: js/activity.js:2133 -#: js/palette.js:770 -#: js/palette.js:779 -#: js/palette.js:788 -#: js/palette.js:797 -#: js/palette.js:2098 -#: js/palette.js:2109 -#: js/palette.js:2120 -#: js/palette.js:2131 -#: js/palette.js:2141 -#: js/turtledefs.js:35 -#: js/basicblocks.js:1528 -#: js/basicblocks.js:1548 -#: js/basicblocks.js:1562 -#: js/basicblocks.js:3968 -#: js/basicblocks.js:4008 -#: js/basicblocks.js:4018 -#: js/basicblocks.js:4066 -#: js/basicblocks.js:4079 -#: js/basicblocks.js:4126 -#: js/basicblocks.js:4181 -#: js/basicblocks.js:4186 -#: js/basicblocks.js:4191 -#: js/rubrics.js:478 -#: js/macros.js:45 -#: js/blocks.js:1023 -#: js/blocks.js:2839 -#: js/blocks.js:2840 -#: js/blocks.js:3054 -#: js/blocks.js:3356 -#: js/blocks.js:3549 -#: js/blocks.js:4588 -#: js/blocks.js:5446 -#: js/musickeyboard.js:369 -#: js/pitchtimematrix.js:1612 -#: js/rhythmruler.js:1171 -#: js/rhythmruler.js:1173 -#: js/rhythmruler.js:1281 -#: js/rhythmruler.js:1283 -#: js/block.js:1162 -#: js/block.js:5410 -#: js/block.js:5419 -#: js/block.js:5430 -#: js/activity.js:2133 -#: js/palette.js:770 -#: js/palette.js:779 -#: js/palette.js:788 -#: js/palette.js:797 -#: js/palette.js:2098 -#: js/palette.js:2109 -#: js/palette.js:2120 -#: js/palette.js:2131 -#: js/palette.js:2141 -#: js/turtledefs.js:35 -#: js/basicblocks.js:1528 -#: js/basicblocks.js:1548 -#: js/basicblocks.js:1562 -#: js/basicblocks.js:3968 -#: js/basicblocks.js:4008 -#: js/basicblocks.js:4018 -#: js/basicblocks.js:4066 -#: js/basicblocks.js:4079 -#: js/basicblocks.js:4126 -#: js/basicblocks.js:4181 -#: js/basicblocks.js:4186 -#: js/basicblocks.js:4191 -#: js/rubrics.js:478 -#: js/macros.js:45 -#: js/blocks.js:1023 -#: js/blocks.js:2839 -#: js/blocks.js:2840 -#: js/blocks.js:3054 -#: js/blocks.js:3356 -#: js/blocks.js:3549 -#: js/blocks.js:4588 -#: js/blocks.js:5446 -#: js/musickeyboard.js:369 -#: js/pitchtimematrix.js:1612 -#: js/rhythmruler.js:1171 -#: js/rhythmruler.js:1173 -#: js/rhythmruler.js:1281 -#: js/rhythmruler.js:1283 -#: js/block.js:1162 -#: js/block.js:5410 -#: js/block.js:5419 -#: js/block.js:5430 -#: js/activity.js:2127 -#: js/palette.js:770 -#: js/palette.js:779 -#: js/palette.js:788 -#: js/palette.js:797 -#: js/palette.js:2098 -#: js/palette.js:2109 -#: js/palette.js:2120 -#: js/palette.js:2131 -#: js/palette.js:2141 -#: js/turtledefs.js:35 -#: js/basicblocks.js:1528 -#: js/basicblocks.js:1548 -#: js/basicblocks.js:1562 -#: js/basicblocks.js:3968 -#: js/basicblocks.js:4008 -#: js/basicblocks.js:4018 -#: js/basicblocks.js:4066 -#: js/basicblocks.js:4079 -#: js/basicblocks.js:4127 -#: js/basicblocks.js:4182 -#: js/basicblocks.js:4187 -#: js/basicblocks.js:4192 -#: js/rubrics.js:478 -#: js/macros.js:45 -#: js/blocks.js:1023 -#: js/blocks.js:2849 -#: js/blocks.js:2850 -#: js/blocks.js:3064 -#: js/blocks.js:3366 -#: js/blocks.js:3559 -#: js/blocks.js:4598 -#: js/blocks.js:5455 -#: js/musickeyboard.js:369 -#: js/pitchtimematrix.js:1612 -#: js/rhythmruler.js:1171 -#: js/rhythmruler.js:1173 -#: js/rhythmruler.js:1281 -#: js/rhythmruler.js:1283 -#: js/block.js:1162 -#: js/block.js:5410 -#: js/block.js:5419 -#: js/block.js:5430 -#: js/activity.js:2127 -#: js/palette.js:770 -#: js/palette.js:779 -#: js/palette.js:788 -#: js/palette.js:797 -#: js/palette.js:2098 -#: js/palette.js:2109 -#: js/palette.js:2120 -#: js/palette.js:2131 -#: js/palette.js:2141 -#: js/turtledefs.js:35 -#: js/basicblocks.js:1527 -#: js/basicblocks.js:1547 -#: js/basicblocks.js:1561 -#: js/basicblocks.js:3967 -#: js/basicblocks.js:4007 -#: js/basicblocks.js:4017 -#: js/basicblocks.js:4065 -#: js/basicblocks.js:4078 -#: js/basicblocks.js:4126 -#: js/basicblocks.js:4181 -#: js/basicblocks.js:4186 -#: js/basicblocks.js:4191 -#: js/rubrics.js:478 -#: js/macros.js:45 -#: js/blocks.js:1023 -#: js/blocks.js:2849 -#: js/blocks.js:2850 -#: js/blocks.js:3064 -#: js/blocks.js:3366 -#: js/blocks.js:3559 -#: js/blocks.js:4598 -#: js/blocks.js:5455 -#: js/musickeyboard.js:369 -#: js/pitchtimematrix.js:1612 -#: js/rhythmruler.js:1171 -#: js/rhythmruler.js:1173 -#: js/rhythmruler.js:1281 -#: js/rhythmruler.js:1283 -#: js/block.js:1162 -#: js/block.js:5410 -#: js/block.js:5419 -#: js/block.js:5430 -#: js/activity.js:2127 -#: js/palette.js:770 -#: js/palette.js:779 -#: js/palette.js:788 -#: js/palette.js:797 -#: js/palette.js:2098 -#: js/palette.js:2109 -#: js/palette.js:2120 -#: js/palette.js:2131 -#: js/palette.js:2141 -#: js/turtledefs.js:35 -#: js/basicblocks.js:1527 -#: js/basicblocks.js:1547 -#: js/basicblocks.js:1561 -#: js/basicblocks.js:3967 -#: js/basicblocks.js:4007 -#: js/basicblocks.js:4017 -#: js/basicblocks.js:4065 -#: js/basicblocks.js:4078 -#: js/basicblocks.js:4126 -#: js/basicblocks.js:4181 -#: js/basicblocks.js:4186 -#: js/basicblocks.js:4191 -#: js/rubrics.js:478 -#: js/macros.js:45 -#: js/blocks.js:1023 -#: js/blocks.js:2849 -#: js/blocks.js:2850 -#: js/blocks.js:3064 -#: js/blocks.js:3366 -#: js/blocks.js:3559 -#: js/blocks.js:4598 -#: js/blocks.js:5455 -#: js/musickeyboard.js:369 -#: js/pitchtimematrix.js:1612 -#: js/rhythmruler.js:1171 -#: js/rhythmruler.js:1173 -#: js/rhythmruler.js:1281 -#: js/rhythmruler.js:1283 -#: js/block.js:1162 -#: js/block.js:5410 -#: js/block.js:5419 -#: js/block.js:5430 -#: js/activity.js:2127 -#: js/palette.js:770 -#: js/palette.js:779 -#: js/palette.js:788 -#: js/palette.js:797 -#: js/palette.js:2098 -#: js/palette.js:2109 -#: js/palette.js:2120 -#: js/palette.js:2131 -#: js/palette.js:2141 -#: js/turtledefs.js:35 -#: js/basicblocks.js:1527 -#: js/basicblocks.js:1547 -#: js/basicblocks.js:1561 -#: js/basicblocks.js:3967 -#: js/basicblocks.js:4007 -#: js/basicblocks.js:4017 -#: js/basicblocks.js:4065 -#: js/basicblocks.js:4078 -#: js/basicblocks.js:4126 -#: js/basicblocks.js:4181 -#: js/basicblocks.js:4186 -#: js/basicblocks.js:4191 -#: js/rubrics.js:478 -#: js/macros.js:45 -#: js/blocks.js:1023 -#: js/blocks.js:2849 -#: js/blocks.js:2850 -#: js/blocks.js:3064 -#: js/blocks.js:3366 -#: js/blocks.js:3559 -#: js/blocks.js:4598 -#: js/blocks.js:5455 -#: js/musickeyboard.js:369 -#: js/pitchtimematrix.js:1612 -#: js/rhythmruler.js:1171 -#: js/rhythmruler.js:1173 -#: js/rhythmruler.js:1281 -#: js/rhythmruler.js:1283 -#: js/block.js:1162 -#: js/block.js:5410 -#: js/block.js:5419 -#: js/block.js:5430 -#: js/activity.js:2127 -#: js/palette.js:770 -#: js/palette.js:779 -#: js/palette.js:788 -#: js/palette.js:797 -#: js/palette.js:2098 -#: js/palette.js:2109 -#: js/palette.js:2120 -#: js/palette.js:2131 -#: js/palette.js:2141 -#: js/turtledefs.js:35 -#: js/basicblocks.js:1531 -#: js/basicblocks.js:1551 -#: js/basicblocks.js:1565 -#: js/basicblocks.js:3971 -#: js/basicblocks.js:4011 -#: js/basicblocks.js:4021 -#: js/basicblocks.js:4069 -#: js/basicblocks.js:4082 -#: js/basicblocks.js:4130 -#: js/basicblocks.js:4185 -#: js/basicblocks.js:4190 -#: js/basicblocks.js:4195 -#: js/rubrics.js:478 -#: js/macros.js:45 -#: js/blocks.js:1023 -#: js/blocks.js:2849 -#: js/blocks.js:2850 -#: js/blocks.js:3064 -#: js/blocks.js:3366 -#: js/blocks.js:3559 -#: js/blocks.js:4598 -#: js/blocks.js:5455 -#: js/musickeyboard.js:369 -#: js/pitchtimematrix.js:1612 -#: js/rhythmruler.js:1171 -#: js/rhythmruler.js:1173 -#: js/rhythmruler.js:1281 -#: js/rhythmruler.js:1283 -#: js/block.js:1162 -#: js/block.js:5410 -#: js/block.js:5419 -#: js/block.js:5430 -#: js/activity.js:2127 -#: js/palette.js:770 -#: js/palette.js:779 -#: js/palette.js:788 -#: js/palette.js:797 -#: js/palette.js:2098 -#: js/palette.js:2109 -#: js/palette.js:2120 -#: js/palette.js:2131 -#: js/palette.js:2141 -#: js/turtledefs.js:35 -#: js/basicblocks.js:1531 -#: js/basicblocks.js:1551 -#: js/basicblocks.js:1565 -#: js/basicblocks.js:3971 -#: js/basicblocks.js:4011 -#: js/basicblocks.js:4021 -#: js/basicblocks.js:4069 -#: js/basicblocks.js:4082 -#: js/basicblocks.js:4130 -#: js/basicblocks.js:4185 -#: js/basicblocks.js:4190 -#: js/basicblocks.js:4195 -#: js/rubrics.js:478 -#: js/macros.js:45 -#: js/blocks.js:1023 -#: js/blocks.js:2849 -#: js/blocks.js:2850 -#: js/blocks.js:3064 -#: js/blocks.js:3366 -#: js/blocks.js:3559 -#: js/blocks.js:4598 -#: js/blocks.js:5455 -#: js/musickeyboard.js:369 -#: js/pitchtimematrix.js:1612 -#: js/rhythmruler.js:1171 -#: js/rhythmruler.js:1173 -#: js/rhythmruler.js:1281 -#: js/rhythmruler.js:1283 -#: js/block.js:1162 -#: js/block.js:5410 -#: js/block.js:5419 -#: js/block.js:5430 -#: js/activity.js:2127 -#: js/palette.js:770 -#: js/palette.js:779 -#: js/palette.js:788 -#: js/palette.js:797 -#: js/palette.js:2098 -#: js/palette.js:2109 -#: js/palette.js:2120 -#: js/palette.js:2131 -#: js/palette.js:2141 -#: js/turtledefs.js:35 -#: js/basicblocks.js:1531 -#: js/basicblocks.js:1551 -#: js/basicblocks.js:1565 -#: js/basicblocks.js:3971 -#: js/basicblocks.js:4011 -#: js/basicblocks.js:4021 -#: js/basicblocks.js:4069 -#: js/basicblocks.js:4082 -#: js/basicblocks.js:4130 -#: js/basicblocks.js:4185 -#: js/basicblocks.js:4190 -#: js/basicblocks.js:4195 -#: js/rubrics.js:478 -#: js/macros.js:45 -#: js/blocks.js:1023 -#: js/blocks.js:2849 -#: js/blocks.js:2850 -#: js/blocks.js:3064 -#: js/blocks.js:3366 -#: js/blocks.js:3559 -#: js/blocks.js:4598 -#: js/blocks.js:5455 -#: js/musickeyboard.js:369 -#: js/pitchtimematrix.js:1612 -#: js/rhythmruler.js:1171 -#: js/rhythmruler.js:1173 -#: js/rhythmruler.js:1281 -#: js/rhythmruler.js:1283 -#: js/block.js:1162 -#: js/block.js:5413 -#: js/block.js:5422 -#: js/block.js:5433 -#: js/activity.js:2127 -#: js/palette.js:770 -#: js/palette.js:779 -#: js/palette.js:788 -#: js/palette.js:797 -#: js/palette.js:2098 -#: js/palette.js:2109 -#: js/palette.js:2120 -#: js/palette.js:2131 -#: js/palette.js:2141 -#: js/turtledefs.js:35 -#: js/basicblocks.js:1537 -#: js/basicblocks.js:1557 -#: js/basicblocks.js:1571 -#: js/basicblocks.js:3977 -#: js/basicblocks.js:4017 -#: js/basicblocks.js:4027 -#: js/basicblocks.js:4075 -#: js/basicblocks.js:4088 -#: js/basicblocks.js:4136 -#: js/basicblocks.js:4191 -#: js/basicblocks.js:4196 -#: js/basicblocks.js:4201 -#: js/rubrics.js:478 -#: js/macros.js:45 -#: js/blocks.js:1023 -#: js/blocks.js:2849 -#: js/blocks.js:2850 -#: js/blocks.js:3064 -#: js/blocks.js:3366 -#: js/blocks.js:3559 -#: js/blocks.js:4598 -#: js/blocks.js:5455 -#: js/musickeyboard.js:369 -#: js/pitchtimematrix.js:1612 -#: js/rhythmruler.js:1171 -#: js/rhythmruler.js:1173 -#: js/rhythmruler.js:1281 -#: js/rhythmruler.js:1283 -#: js/block.js:1162 -#: js/block.js:5430 -#: js/block.js:5439 -#: js/block.js:5450 -#: js/activity.js:2134 -#: js/palette.js:810 -#: js/palette.js:819 -#: js/palette.js:828 -#: js/palette.js:837 -#: js/palette.js:2142 -#: js/palette.js:2153 -#: js/palette.js:2164 -#: js/palette.js:2175 -#: js/palette.js:2185 -#: js/turtledefs.js:35 -#: js/basicblocks.js:1542 -#: js/basicblocks.js:1562 -#: js/basicblocks.js:1576 -#: js/basicblocks.js:3982 -#: js/basicblocks.js:4022 -#: js/basicblocks.js:4032 -#: js/basicblocks.js:4080 -#: js/basicblocks.js:4093 -#: js/basicblocks.js:4141 -#: js/basicblocks.js:4196 -#: js/basicblocks.js:4201 -#: js/basicblocks.js:4206 -#: js/rubrics.js:478 -#: js/macros.js:45 -#: js/blocks.js:1023 -#: js/blocks.js:2849 -#: js/blocks.js:2850 -#: js/blocks.js:3064 -#: js/blocks.js:3366 -#: js/blocks.js:3559 -#: js/blocks.js:4600 -#: js/blocks.js:5457 -#: js/musickeyboard.js:369 -#: js/pitchtimematrix.js:1612 -#: js/rhythmruler.js:1176 -#: js/rhythmruler.js:1178 -#: js/rhythmruler.js:1286 -#: js/rhythmruler.js:1288 -#: js/block.js:1162 -#: js/block.js:5430 -#: js/block.js:5439 -#: js/block.js:5450 -#: js/activity.js:2134 -#: js/palette.js:810 -#: js/palette.js:819 -#: js/palette.js:828 -#: js/palette.js:837 -#: js/palette.js:2142 -#: js/palette.js:2153 -#: js/palette.js:2164 -#: js/palette.js:2175 -#: js/palette.js:2185 -#: js/turtledefs.js:35 -#: js/basicblocks.js:1542 -#: js/basicblocks.js:1562 -#: js/basicblocks.js:1576 -#: js/basicblocks.js:3982 -#: js/basicblocks.js:4022 -#: js/basicblocks.js:4032 -#: js/basicblocks.js:4080 -#: js/basicblocks.js:4093 -#: js/basicblocks.js:4141 -#: js/basicblocks.js:4196 -#: js/basicblocks.js:4201 -#: js/basicblocks.js:4206 -#: js/rubrics.js:478 -#: js/macros.js:45 -#: js/blocks.js:1023 -#: js/blocks.js:2849 -#: js/blocks.js:2850 -#: js/blocks.js:3064 -#: js/blocks.js:3366 -#: js/blocks.js:3559 -#: js/blocks.js:4600 -#: js/blocks.js:5457 -#: js/musickeyboard.js:369 -#: js/pitchtimematrix.js:1612 -#: js/rhythmruler.js:1176 -#: js/rhythmruler.js:1178 -#: js/rhythmruler.js:1286 -#: js/rhythmruler.js:1288 -#: js/block.js:1162 -#: js/block.js:5430 -#: js/block.js:5439 -#: js/block.js:5450 -#: js/activity.js:2134 -#: js/palette.js:810 -#: js/palette.js:819 -#: js/palette.js:828 -#: js/palette.js:837 -#: js/palette.js:2142 -#: js/palette.js:2153 -#: js/palette.js:2164 -#: js/palette.js:2175 -#: js/palette.js:2185 -#: js/turtledefs.js:35 -#: js/basicblocks.js:1542 -#: js/basicblocks.js:1562 -#: js/basicblocks.js:1576 -#: js/basicblocks.js:3982 -#: js/basicblocks.js:4022 -#: js/basicblocks.js:4032 -#: js/basicblocks.js:4080 -#: js/basicblocks.js:4093 -#: js/basicblocks.js:4141 -#: js/basicblocks.js:4196 -#: js/basicblocks.js:4201 -#: js/basicblocks.js:4206 -#: js/rubrics.js:478 -#: js/macros.js:45 -#: js/blocks.js:1023 -#: js/blocks.js:2849 -#: js/blocks.js:2850 -#: js/blocks.js:3064 -#: js/blocks.js:3366 -#: js/blocks.js:3559 -#: js/blocks.js:4600 -#: js/blocks.js:5457 -#: js/musickeyboard.js:369 -#: js/pitchtimematrix.js:1612 -#: js/rhythmruler.js:1176 -#: js/rhythmruler.js:1178 -#: js/rhythmruler.js:1286 -#: js/rhythmruler.js:1288 -#: js/block.js:1162 -#: js/block.js:5445 -#: js/block.js:5454 -#: js/block.js:5465 -#: js/activity.js:2137 -#: js/palette.js:810 -#: js/palette.js:819 -#: js/palette.js:828 -#: js/palette.js:837 -#: js/palette.js:2142 -#: js/palette.js:2153 -#: js/palette.js:2164 -#: js/palette.js:2175 -#: js/palette.js:2185 -#: js/turtledefs.js:35 -#: js/basicblocks.js:1553 -#: js/basicblocks.js:1573 -#: js/basicblocks.js:1587 -#: js/basicblocks.js:3993 -#: js/basicblocks.js:4033 -#: js/basicblocks.js:4043 -#: js/basicblocks.js:4091 -#: js/basicblocks.js:4104 -#: js/basicblocks.js:4152 -#: js/basicblocks.js:4207 -#: js/basicblocks.js:4212 -#: js/basicblocks.js:4217 -#: js/rubrics.js:478 -#: js/macros.js:45 -#: js/blocks.js:1023 -#: js/blocks.js:2849 -#: js/blocks.js:2850 -#: js/blocks.js:3064 -#: js/blocks.js:3366 -#: js/blocks.js:3559 -#: js/blocks.js:4600 -#: js/blocks.js:5457 -#: js/musickeyboard.js:370 -#: js/pitchtimematrix.js:1642 -#: js/rhythmruler.js:1176 -#: js/rhythmruler.js:1178 -#: js/rhythmruler.js:1286 -#: js/rhythmruler.js:1288 -#: js/block.js:1165 -#: js/block.js:5575 -#: js/block.js:5584 -#: js/block.js:5595 -#: js/activity.js:2240 -#: js/palette.js:812 -#: js/palette.js:821 -#: js/palette.js:830 -#: js/palette.js:839 -#: js/palette.js:2144 -#: js/palette.js:2155 -#: js/palette.js:2166 -#: js/palette.js:2177 -#: js/palette.js:2187 -#: js/turtledefs.js:35 -#: js/basicblocks.js:1559 -#: js/basicblocks.js:1579 -#: js/basicblocks.js:1593 -#: js/basicblocks.js:4003 -#: js/basicblocks.js:4043 -#: js/basicblocks.js:4053 -#: js/basicblocks.js:4101 -#: js/basicblocks.js:4114 -#: js/basicblocks.js:4162 -#: js/basicblocks.js:4217 -#: js/basicblocks.js:4222 -#: js/basicblocks.js:4227 -#: js/rubrics.js:478 -#: js/macros.js:45 -#: js/macros.js:46 -#: js/blocks.js:1025 -#: js/blocks.js:2860 -#: js/blocks.js:2861 -#: js/blocks.js:3075 -#: js/blocks.js:3377 -#: js/blocks.js:3570 -#: js/blocks.js:4612 -#: js/blocks.js:5477 -#: js/musickeyboard.js:375 -#: js/pitchtimematrix.js:1716 -#: js/rhythmruler.js:1176 -#: js/rhythmruler.js:1178 -#: js/rhythmruler.js:1286 -#: js/rhythmruler.js:1288 -#: js/block.js:1186 -#: js/block.js:5751 -#: js/block.js:5760 -#: js/block.js:5771 -#: js/activity.js:2363 -#: js/palette.js:816 -#: js/palette.js:825 -#: js/palette.js:834 -#: js/palette.js:843 -#: js/palette.js:2148 -#: js/palette.js:2159 -#: js/palette.js:2170 -#: js/palette.js:2181 -#: js/palette.js:2190 -#: js/turtledefs.js:35 -#: js/basicblocks.js:1572 -#: js/basicblocks.js:1592 -#: js/basicblocks.js:1606 -#: js/basicblocks.js:4069 -#: js/basicblocks.js:4079 -#: js/basicblocks.js:4127 -#: js/basicblocks.js:4140 -#: js/basicblocks.js:4184 -#: js/basicblocks.js:4207 -#: js/basicblocks.js:4262 -#: js/basicblocks.js:4267 -#: js/basicblocks.js:4272 -#: js/rubrics.js:478 -#: js/macros.js:47 -#: js/macros.js:48 -#: js/macros.js:66 -#: js/macros.js:66 -#: js/macros.js:68 -#: js/macros.js:141 -#: js/blocks.js:1034 -#: js/blocks.js:2922 -#: js/blocks.js:2923 -#: js/blocks.js:3137 -#: js/blocks.js:3442 -#: js/blocks.js:3636 -#: js/blocks.js:4680 -#: js/blocks.js:5545 -#: js/musickeyboard.js:1823 -#: js/pitchtimematrix.js:3385 -#: js/rhythmruler.js:1229 -#: js/rhythmruler.js:1231 -#: js/rhythmruler.js:1340 -#: js/rhythmruler.js:1342 -#: js/RhythmBlockPaletteBlocks.js:14 -#: js/RhythmBlockPaletteBlocks.js:177 -#: js/RhythmBlockPaletteBlocks.js:14 -#: js/RhythmBlockPaletteBlocks.js:177 -#: js/RhythmBlockPaletteBlocks.js:14 -#: js/RhythmBlockPaletteBlocks.js:177 -#: js/RhythmBlockPaletteBlocks.js:14 -#: js/RhythmBlockPaletteBlocks.js:177 -#: js/RhythmBlockPaletteBlocks.js:14 -#: js/RhythmBlockPaletteBlocks.js:170 -#: js/block.js:1436 -#: js/block.js:7910 -#: js/block.js:7931 -#: js/block.js:7948 -#: js/activity.js:2693 -#: js/palette.js:932 -#: js/palette.js:941 -#: js/palette.js:950 -#: js/palette.js:959 -#: js/palette.js:2511 -#: js/palette.js:2522 -#: js/palette.js:2533 -#: js/palette.js:2544 -#: js/palette.js:2563 -#: js/turtledefs.js:76 -#: js/rubrics.js:497 -#: js/macros.js:153 -#: js/macros.js:249 -#: js/macros.js:250 -#: js/macros.js:259 -#: js/macros.js:801 -#: js/blocks.js:1120 -#: js/blocks.js:3549 -#: js/blocks.js:3550 -#: js/blocks.js:3786 -#: js/blocks.js:4168 -#: js/blocks.js:4363 -#: js/blocks.js:5526 -#: js/blocks.js:6776 -#: js/ActionBlocks.js:99 -#: js/ActionBlocks.js:147 -#: js/ActionBlocks.js:350 -#: js/ActionBlocks.js:415 -#: js/ActionBlocks.js:569 -#: js/ActionBlocks.js:629 -#: js/ActionBlocks.js:765 -#: js/ActionBlocks.js:768 -#: js/ActionBlocks.js:773 -#: js/ActionBlocks.js:805 -#: js/MeterBlocks.js:412 -#: js/MeterBlocks.js:479 -#: js/MeterBlocks.js:568 -#: js/MeterBlocks.js:669 -#: js/musickeyboard.js:2360 -#: js/pitchtimematrix.js:4708 -#: js/rhythmruler.js:1602 -#: js/rhythmruler.js:1610 -#: js/rhythmruler.js:1911 -#: js/rhythmruler.js:1919 -#: js/block.js:1436 -#: js/block.js:8089 -#: js/block.js:8110 -#: js/block.js:8127 -#: js/activity.js:2968 -#: js/palette.js:503 -#: js/palette.js:512 -#: js/palette.js:521 -#: js/palette.js:530 -#: js/palette.js:1122 -#: js/palette.js:1133 -#: js/palette.js:1144 -#: js/palette.js:1155 -#: js/palette.js:1174 -#: js/turtledefs.js:76 -#: js/rubrics.js:497 -#: js/macros.js:153 -#: js/macros.js:249 -#: js/macros.js:250 -#: js/macros.js:259 -#: js/macros.js:801 -#: js/blocks.js:1120 -#: js/blocks.js:3572 -#: js/blocks.js:3573 -#: js/blocks.js:3809 -#: js/blocks.js:4191 -#: js/blocks.js:4382 -#: js/blocks.js:5545 -#: js/blocks.js:6795 -#: js/ActionBlocks.js:99 -#: js/ActionBlocks.js:147 -#: js/ActionBlocks.js:343 -#: js/ActionBlocks.js:408 -#: js/ActionBlocks.js:562 -#: js/ActionBlocks.js:622 -#: js/ActionBlocks.js:749 -#: js/ActionBlocks.js:752 -#: js/ActionBlocks.js:757 -#: js/ActionBlocks.js:789 -#: js/MeterBlocks.js:390 -#: js/MeterBlocks.js:419 -#: js/MeterBlocks.js:455 -#: js/MeterBlocks.js:494 -#: js/musickeyboard.js:2421 -#: js/pitchtimematrix.js:4706 -#: js/rhythmruler.js:1602 -#: js/rhythmruler.js:1610 -#: js/rhythmruler.js:1911 -#: js/rhythmruler.js:1919 -#: js/block.js:1436 -#: js/block.js:8073 -#: js/block.js:8094 -#: js/block.js:8111 -#: js/activity.js:2984 -#: js/palette.js:503 -#: js/palette.js:512 -#: js/palette.js:521 -#: js/palette.js:530 -#: js/palette.js:1122 -#: js/palette.js:1133 -#: js/palette.js:1144 -#: js/palette.js:1155 -#: js/palette.js:1174 -#: js/turtledefs.js:78 -#: js/rubrics.js:501 -#: js/macros.js:153 -#: js/macros.js:249 -#: js/macros.js:250 -#: js/macros.js:259 -#: js/macros.js:801 -#: js/blocks.js:1112 -#: js/blocks.js:3545 -#: js/blocks.js:3546 -#: js/blocks.js:3779 -#: js/blocks.js:4160 -#: js/blocks.js:4346 -#: js/blocks.js:5496 -#: js/blocks.js:6721 -#: js/ActionBlocks.js:99 -#: js/ActionBlocks.js:147 -#: js/ActionBlocks.js:343 -#: js/ActionBlocks.js:408 -#: js/ActionBlocks.js:562 -#: js/ActionBlocks.js:622 -#: js/ActionBlocks.js:750 -#: js/ActionBlocks.js:753 -#: js/ActionBlocks.js:758 -#: js/ActionBlocks.js:790 -#: js/MeterBlocks.js:396 -#: js/MeterBlocks.js:425 -#: js/MeterBlocks.js:461 -#: js/MeterBlocks.js:500 -#: js/musickeyboard.js:2495 -#: js/pitchtimematrix.js:4718 -#: js/rhythmruler.js:1602 -#: js/rhythmruler.js:1610 -#: js/rhythmruler.js:1911 -#: js/rhythmruler.js:1919 -#: js/block.js:1436 -#: js/block.js:8073 -#: js/block.js:8094 -#: js/block.js:8111 -#: js/activity.js:2984 -#: js/palette.js:503 -#: js/palette.js:512 -#: js/palette.js:521 -#: js/palette.js:530 -#: js/palette.js:1122 -#: js/palette.js:1133 -#: js/palette.js:1144 -#: js/palette.js:1155 -#: js/palette.js:1174 -#: js/turtledefs.js:78 -#: js/rubrics.js:501 -#: js/macros.js:153 -#: js/macros.js:249 -#: js/macros.js:250 -#: js/macros.js:259 -#: js/macros.js:801 -#: js/blocks.js:1112 -#: js/blocks.js:3545 -#: js/blocks.js:3546 -#: js/blocks.js:3779 -#: js/blocks.js:4160 -#: js/blocks.js:4346 -#: js/blocks.js:5496 -#: js/blocks.js:6721 -#: js/ActionBlocks.js:99 -#: js/ActionBlocks.js:147 -#: js/ActionBlocks.js:343 -#: js/ActionBlocks.js:408 -#: js/ActionBlocks.js:562 -#: js/ActionBlocks.js:622 -#: js/ActionBlocks.js:750 -#: js/ActionBlocks.js:753 -#: js/ActionBlocks.js:758 -#: js/ActionBlocks.js:790 -#: js/MeterBlocks.js:396 -#: js/MeterBlocks.js:425 -#: js/MeterBlocks.js:461 -#: js/MeterBlocks.js:500 -#: js/musickeyboard.js:2495 -#: js/pitchtimematrix.js:4718 -#: js/rhythmruler.js:1602 -#: js/rhythmruler.js:1610 -#: js/rhythmruler.js:1911 -#: js/rhythmruler.js:1919 -#: js/block.js:1436 -#: js/block.js:8073 -#: js/block.js:8094 -#: js/block.js:8111 -#: js/activity.js:2984 -#: js/palette.js:506 -#: js/palette.js:515 -#: js/palette.js:524 -#: js/palette.js:533 -#: js/palette.js:1128 -#: js/palette.js:1139 -#: js/palette.js:1150 -#: js/palette.js:1161 -#: js/palette.js:1180 -#: js/turtledefs.js:78 -#: js/rubrics.js:501 -#: js/macros.js:153 -#: js/macros.js:249 -#: js/macros.js:250 -#: js/macros.js:259 -#: js/macros.js:801 -#: js/blocks.js:1112 -#: js/blocks.js:3545 -#: js/blocks.js:3546 -#: js/blocks.js:3779 -#: js/blocks.js:4160 -#: js/blocks.js:4346 -#: js/blocks.js:5496 -#: js/blocks.js:6721 -#: js/ActionBlocks.js:99 -#: js/ActionBlocks.js:147 -#: js/ActionBlocks.js:343 -#: js/ActionBlocks.js:408 -#: js/ActionBlocks.js:562 -#: js/ActionBlocks.js:622 -#: js/ActionBlocks.js:750 -#: js/ActionBlocks.js:753 -#: js/ActionBlocks.js:758 -#: js/ActionBlocks.js:790 -#: js/MeterBlocks.js:396 -#: js/MeterBlocks.js:425 -#: js/MeterBlocks.js:461 -#: js/MeterBlocks.js:500 -#: js/musickeyboard.js:2495 -#: js/pitchtimematrix.js:4718 -#: js/rhythmruler.js:1602 -#: js/rhythmruler.js:1610 -#: js/rhythmruler.js:1911 -#: js/rhythmruler.js:1919 -#: js/block.js:1414 -#: js/block.js:4018 -#: js/block.js:4036 -#: js/block.js:4047 -#: js/activity.js:2899 -#: js/palette.js:486 -#: js/palette.js:495 -#: js/palette.js:504 -#: js/palette.js:513 -#: js/palette.js:1089 -#: js/palette.js:1100 -#: js/palette.js:1111 -#: js/palette.js:1122 -#: js/palette.js:1141 -#: js/turtledefs.js:78 -#: js/rubrics.js:501 -#: js/macros.js:170 -#: js/macros.js:266 -#: js/macros.js:267 -#: js/macros.js:276 -#: js/macros.js:828 -#: js/blocks.js:1071 -#: js/blocks.js:3210 -#: js/blocks.js:3211 -#: js/blocks.js:3428 -#: js/blocks.js:3752 -#: js/blocks.js:3932 -#: js/blocks.js:4976 -#: js/blocks.js:5845 -#: js/ActionBlocks.js:99 -#: js/ActionBlocks.js:147 -#: js/ActionBlocks.js:343 -#: js/ActionBlocks.js:408 -#: js/ActionBlocks.js:562 -#: js/ActionBlocks.js:622 -#: js/ActionBlocks.js:750 -#: js/ActionBlocks.js:753 -#: js/ActionBlocks.js:758 -#: js/ActionBlocks.js:790 -#: js/MeterBlocks.js:396 -#: js/MeterBlocks.js:426 -#: js/MeterBlocks.js:462 -#: js/MeterBlocks.js:501 -#: js/musickeyboard.js:2495 -#: js/rhythmruler.js:1874 -#: js/rhythmruler.js:1881 -#: js/rhythmruler.js:2065 -#: js/rhythmruler.js:2072 -#: js/phrasemaker.js:4226 -#: js/block.js:1414 -#: js/block.js:4020 -#: js/block.js:4038 -#: js/block.js:4049 -#: js/activity.js:2899 -#: js/palette.js:486 -#: js/palette.js:495 -#: js/palette.js:504 -#: js/palette.js:513 -#: js/palette.js:1089 -#: js/palette.js:1100 -#: js/palette.js:1111 -#: js/palette.js:1122 -#: js/palette.js:1141 -#: js/turtledefs.js:78 -#: js/rubrics.js:501 -#: js/macros.js:170 -#: js/macros.js:266 -#: js/macros.js:267 -#: js/macros.js:276 -#: js/macros.js:828 -#: js/blocks.js:1071 -#: js/blocks.js:3210 -#: js/blocks.js:3211 -#: js/blocks.js:3428 -#: js/blocks.js:3752 -#: js/blocks.js:3932 -#: js/blocks.js:4976 -#: js/blocks.js:5845 -#: js/ActionBlocks.js:99 -#: js/ActionBlocks.js:147 -#: js/ActionBlocks.js:343 -#: js/ActionBlocks.js:408 -#: js/ActionBlocks.js:562 -#: js/ActionBlocks.js:622 -#: js/ActionBlocks.js:750 -#: js/ActionBlocks.js:753 -#: js/ActionBlocks.js:758 -#: js/ActionBlocks.js:790 -#: js/MeterBlocks.js:396 -#: js/MeterBlocks.js:426 -#: js/MeterBlocks.js:462 -#: js/MeterBlocks.js:501 -#: js/musickeyboard.js:2495 -#: js/rhythmruler.js:1874 -#: js/rhythmruler.js:1881 -#: js/rhythmruler.js:2065 -#: js/rhythmruler.js:2072 -#: js/phrasemaker.js:4226 -#: js/block.js:1439 -#: js/block.js:4063 -#: js/block.js:4081 -#: js/block.js:4092 -#: js/palette.js:505 -#: js/palette.js:514 -#: js/palette.js:523 -#: js/palette.js:532 -#: js/palette.js:1125 -#: js/palette.js:1136 -#: js/palette.js:1147 -#: js/palette.js:1158 -#: js/palette.js:1177 -#: js/turtledefs.js:101 -#: js/rubrics.js:522 -#: js/macros.js:168 -#: js/macros.js:264 -#: js/macros.js:265 -#: js/macros.js:274 -#: js/macros.js:826 -#: js/blocks.js:1001 -#: js/blocks.js:3394 -#: js/blocks.js:3395 -#: js/blocks.js:3620 -#: js/blocks.js:3981 -#: js/blocks.js:4172 -#: js/blocks.js:5305 -#: js/blocks.js:6432 -#: js/ActionBlocks.js:119 -#: js/ActionBlocks.js:167 -#: js/ActionBlocks.js:364 -#: js/ActionBlocks.js:429 -#: js/ActionBlocks.js:582 -#: js/ActionBlocks.js:643 -#: js/ActionBlocks.js:772 -#: js/ActionBlocks.js:775 -#: js/ActionBlocks.js:780 -#: js/ActionBlocks.js:813 -#: js/MeterBlocks.js:416 -#: js/MeterBlocks.js:446 -#: js/MeterBlocks.js:482 -#: js/MeterBlocks.js:521 -#: js/musickeyboard.js:2564 -#: js/rhythmruler.js:1925 -#: js/rhythmruler.js:1932 -#: js/rhythmruler.js:2116 -#: js/rhythmruler.js:2123 -#: js/phrasemaker.js:4402 -#: js/planetInterface.js:101 -#: js/planetInterface.js:101 -#: js/planetInterface.js:101 -#: js/planetInterface.js:101 -#: js/planetInterface.js:102 -#: js/planetInterface.js:104 -#: js/planetInterface.js:104 -#: js/planetInterface.js:104 -msgid "project undefined" +#: js/SaveInterface.js:59 +#: js/SaveInterface.js:61 +#: js/SaveInterface.js:93 +msgid "Music Blocks Project" msgstr "" -#: js/logo.js:61 -msgid "Not a valid pitch name" +#: js/SaveInterface.js:63 +msgid "This project was created in Music Blocks" msgstr "" -#: js/logo.js:507 -#: js/ProgramBlocks.js:258 -#: js/ProgramBlocks.js:427 -msgid "You must select a file." +#: js/SaveInterface.js:67 +msgid "Music Blocks is a Free/Libre Software application." msgstr "" -#: js/logo.js:1184 -#: js/turtles.js:118 -#: js/turtle-painter.js:1192 -#: js/turtle-painter.js:1193 -#: js/block.js:1463 -#: js/lilypond.js:757 -#: js/lilypond.js:921 -#: js/lilypond.js:959 -#: js/ActionBlocks.js:1223 -#: js/ProgramBlocks.js:1267 -msgid "start" -msgstr "啟動" - -#: js/logo.js:1696 -msgid "Playback is ready." +#: js/SaveInterface.js:69 +msgid "The source code can be accessed at" msgstr "" -#: js/blocks.js:1011 -#: js/blocks.js:3427 -#: js/blocks.js:3428 -#: js/blocks.js:3653 -#: js/blocks.js:4012 -#: js/blocks.js:4205 -#: js/blocks.js:5343 -#: js/blocks.js:6474 -#: js/palette.js:527 -#: js/palette.js:536 -#: js/palette.js:545 -#: js/palette.js:554 -#: js/palette.js:1131 -#: js/palette.js:1142 -#: js/palette.js:1153 -#: js/palette.js:1164 -#: js/palette.js:1183 -#: js/rubrics.js:529 -#: js/macros.js:170 -#: js/macros.js:266 -#: js/macros.js:267 -#: js/macros.js:276 -#: js/macros.js:828 -#: js/block.js:1449 -#: js/block.js:4164 -#: js/block.js:4182 -#: js/block.js:4193 -#: js/turtledefs.js:128 -#: js/turtledefs.js:230 -#: js/ActionBlocks.js:254 -#: js/ActionBlocks.js:307 -#: js/ActionBlocks.js:617 -#: js/ActionBlocks.js:716 -#: js/ActionBlocks.js:961 -#: js/ActionBlocks.js:1049 -#: js/ActionBlocks.js:1322 -#: js/ActionBlocks.js:1325 -#: js/ActionBlocks.js:1337 -#: js/ActionBlocks.js:1404 -#: js/MeterBlocks.js:715 -#: js/MeterBlocks.js:768 -#: js/MeterBlocks.js:831 -#: js/MeterBlocks.js:892 -#: js/phrasemaker.js:4412 -#: js/musickeyboard.js:2647 -#: js/rhythmruler.js:1928 -#: js/rhythmruler.js:1935 -#: js/rhythmruler.js:2119 -#: js/rhythmruler.js:2126 -msgid "action" -msgstr "動作" - -#: js/blocks.js:1205 -#: js/blocks.js:3380 -#: js/blocks.js:3770 -#: js/blocks.js:3801 -#: js/blocks.js:3850 -#: js/blocks.js:3885 -#: js/blocks.js:6497 -#: js/palette.js:509 -#: js/palette.js:638 -#: js/palette.js:1107 -#: js/BoxesBlocks.js:282 -#: js/BoxesBlocks.js:285 -#: js/BoxesBlocks.js:405 -#: js/BoxesBlocks.js:594 -msgid "box" -msgstr "方塊" - -#: js/blocks.js:1680 -msgid "Consider breaking this stack into parts." +#: js/SaveInterface.js:72 +msgid "For more information, please consult the" msgstr "" -#: js/blocks.js:2408 -#: js/palette.js:653 -#: js/MediaBlocks.js:602 -msgid "open file" +#: js/SaveInterface.js:76 +#: js/turtledefs.js:795 +msgid "Music Blocks Guide" msgstr "" -#: js/blocks.js:2415 -#: js/blocks.js:2423 -#: js/activity.js:1875 -msgid "audio file" +#: js/SaveInterface.js:83 +msgid "Alternatively, open the file in Music Blocks using the Load project button." msgstr "" -#: js/blocks.js:2536 -#: js/blocks.js:3147 -#: js/block.js:3543 -msgid "on2" +#: js/SaveInterface.js:85 +msgid "Project Code" msgstr "" -#: js/blocks.js:2538 -#: js/blocks.js:3149 -#: js/block.js:3545 -msgid "off" +#: js/SaveInterface.js:87 +msgid "This code stores data about the blocks in a project." msgstr "" -#: js/blocks.js:2543 -#: js/blocks.js:3154 -#: js/palette.js:618 -#: js/block.js:3466 -#: js/BooleanBlocks.js:77 -#: js/BooleanBlocks.js:167 -#: js/BooleanBlocks.js:251 -#: js/BooleanBlocks.js:335 -#: js/BooleanBlocks.js:433 -#: js/BooleanBlocks.js:539 -#: js/BooleanBlocks.js:640 -#: js/BooleanBlocks.js:741 -#: js/BooleanBlocks.js:847 -#: js/BooleanBlocks.js:948 -#: js/BooleanBlocks.js:1033 -#: js/SensorsBlocks.js:910 -msgid "true" +#: js/SaveInterface.js:89 +msgid "Show" msgstr "" -#: js/blocks.js:2545 -#: js/blocks.js:3156 -#: js/block.js:3466 -#: js/BooleanBlocks.js:79 -#: js/BooleanBlocks.js:169 -#: js/BooleanBlocks.js:253 -#: js/BooleanBlocks.js:337 -#: js/BooleanBlocks.js:435 -#: js/BooleanBlocks.js:541 -#: js/BooleanBlocks.js:642 -#: js/BooleanBlocks.js:743 -#: js/BooleanBlocks.js:849 -#: js/BooleanBlocks.js:950 -#: js/SensorsBlocks.js:912 -msgid "false" +#: js/SaveInterface.js:91 +msgid "Hide" msgstr "" -#: js/blocks.js:3183 -#: js/palette.js:574 -#: js/MediaBlocks.js:892 -#: js/MediaBlocks.js:963 -msgid "text" -msgstr "文字" - -#: js/blocks.js:3379 -#: js/palette.js:641 -#: js/palette.js:642 -#: js/BoxesBlocks.js:514 -msgid "store in box" +#: js/SaveInterface.js:131 +#: js/SaveInterface.js:204 +#: js/SaveInterface.js:262 +#: js/SaveInterface.js:389 +#: js/SaveInterface.js:417 +#: js/activity.js:4884 +#: planet/js/ProjectStorage.js:27 +#: planet/js/GlobalPlanet.js:467 +#: planet/js/GlobalPlanet.js:469 +#: planet/js/GlobalPlanet.js:495 +#.TRANS: default project title when saving as Lilypond +msgid "My Project" msgstr "" -#: js/blocks.js:3384 -#: js/blocks.js:3824 -#: js/blocks.js:3859 -#: js/blocks.js:3894 -#: js/blocks.js:5773 -#: js/blocks.js:5794 -#: js/BoxesBlocks.js:772 -msgid "box1" +#: js/SaveInterface.js:197 +#: planet/js/SaveInterface.js:58 +msgid "No description provided" msgstr "" -#: js/blocks.js:3386 -#: js/blocks.js:3826 -#: js/blocks.js:3861 -#: js/blocks.js:3896 -#: js/blocks.js:5775 -#: js/blocks.js:5796 -#: js/BoxesBlocks.js:663 -msgid "box2" +#: js/SaveInterface.js:332 +msgid "Your recording is in progress." msgstr "" -#: js/blocks.js:4058 -#: js/palette.js:639 -#: js/palette.js:644 -#: js/palette.js:1043 -#: js/BoxesBlocks.js:591 -msgid "store in" -msgstr "放入" - -#: js/blocks.js:4058 -#: js/EnsembleBlocks.js:391 -#: js/EnsembleBlocks.js:402 -#: js/MediaBlocks.js:746 -#: js/ProgramBlocks.js:390 -#: js/ProgramBlocks.js:495 -#: js/ProgramBlocks.js:658 -#: js/BoxesBlocks.js:595 -#: js/PitchBlocks.js:656 -#: js/PitchBlocks.js:932 -#: js/PitchBlocks.js:1827 -#: js/ToneBlocks.js:1025 -#: js/DictBlocks.js:215 -#: js/DictBlocks.js:289 -msgid "name" +#: js/SaveInterface.js:401 +#.TRANS: File name prompt for save as Lilypond +msgid "File name" msgstr "" -#: js/blocks.js:4058 -#: js/RhythmBlocks.js:1130 -#: js/BoxesBlocks.js:75 -#: js/BoxesBlocks.js:595 -#: js/HeapBlocks.js:544 -#: js/DictBlocks.js:289 -#: js/DictBlocks.js:430 -msgid "value" -msgstr "值" - -#: js/blocks.js:4907 -msgid "There is no block selected." +#: js/SaveInterface.js:403 +#: planet/js/StringHelper.js:39 +#.TRANS: Project title prompt for save as Lilypond +msgid "Project title" msgstr "" -#: js/blocks.js:5002 -#: js/MediaBlocks.js:888 -msgid "show" -msgstr "顯示" - -#: js/blocks.js:5005 -#: js/MediaBlocks.js:803 -#.TRANS: Avatar is the image used to determine the appearance of the mouse. -msgid "avatar" +#: js/SaveInterface.js:405 +#.TRANS: Project title prompt for save as Lilypond +msgid "Project author" msgstr "" -#: js/blocks.js:5008 -#: js/ToneBlocks.js:1010 -#: js/sampler.js:693 -#.TRANS: The sound sample that the user uploads. -msgid "sample" +#: js/SaveInterface.js:407 +#.TRANS: MIDI prompt for save as Lilypond +msgid "Include MIDI output?" msgstr "" -#: js/turtles.js:874 -msgid "Grid" +#: js/SaveInterface.js:409 +#.TRANS: Guitar prompt for save as Lilypond +msgid "Include guitar tablature output?" msgstr "" -#: js/turtles.js:891 -#: js/turtledefs.js:626 -msgid "Clean" -msgstr "清除畫面" +#: js/SaveInterface.js:411 +#.TRANS: Lilypond is a scripting language for generating sheet music +msgid "Save as Lilypond" +msgstr "" -#: js/turtles.js:912 -#: js/turtledefs.js:632 -msgid "Collapse" +#: js/SaveInterface.js:426 +#: js/blocks/EnsembleBlocks.js:75 +#: js/blocks/EnsembleBlocks.js:154 +#: js/blocks/EnsembleBlocks.js:216 +#: js/blocks/EnsembleBlocks.js:302 +#: js/blocks/EnsembleBlocks.js:348 +#: js/blocks/EnsembleBlocks.js:389 +#: js/blocks/EnsembleBlocks.js:441 +#: js/blocks/EnsembleBlocks.js:490 +#: js/blocks/EnsembleBlocks.js:536 +#: js/blocks/EnsembleBlocks.js:583 +#: js/blocks/EnsembleBlocks.js:637 +#: js/blocks/EnsembleBlocks.js:753 +#: js/blocks/EnsembleBlocks.js:840 +#: js/blocks/EnsembleBlocks.js:899 +#: js/blocks/EnsembleBlocks.js:942 +#: js/blocks/EnsembleBlocks.js:1212 +#: js/blocks/EnsembleBlocks.js:1280 +#.TRANS: default project author when saving as Lilypond +msgid "Mr. Mouse" msgstr "" -#: js/turtles.js:940 -msgid "Expand" +#: js/SaveInterface.js:573 +msgid "The Lilypond code is copied to clipboard. You can paste it here: " msgstr "" #: js/languagebox.js:198 @@ -2416,6933 +150,7487 @@ msgstr "" msgid "Music Blocks is already set to this language." msgstr "" -#: js/piemenus.js:200 -#: js/musicutils.js:808 -#: js/musicutils.js:824 -#: js/phrasemaker.js:1672 -#: js/musickeyboard.js:2041 -#: js/sampler.js:544 -#.TRANS: double sharp is a music term related to pitch -msgid "double sharp" +#: js/planetInterface.js:131 +msgid "project undefined" msgstr "" -#: js/piemenus.js:201 -#: js/PitchBlocks.js:1510 -#: js/PitchActions.js:580 -#: js/musicutils.js:806 -#: js/musicutils.js:825 -#: js/phrasemaker.js:1673 -#: js/musickeyboard.js:2042 -#: js/sampler.js:545 -#.TRANS: sharp is a half-step up in pitch -#.TRANS: sharp is a music term related to pitch -msgid "sharp" +#: js/rubrics.js:523 +#: js/turtledefs.js:119 +#: js/turtledefs.js:221 +#: js/blocks/RhythmBlockPaletteBlocks.js:52 +#: js/blocks/RhythmBlockPaletteBlocks.js:234 +#: js/blocks/ProgramBlocks.js:745 +#: js/widgets/rhythmruler.js:2057 +#: js/widgets/rhythmruler.js:2064 +#: js/widgets/rhythmruler.js:2133 +#: js/widgets/rhythmruler.js:2140 +#: js/widgets/rhythmruler.js:2219 +#.TRANS: an arrangement of notes based on duration +msgid "rhythm" msgstr "" -#: js/piemenus.js:202 -#: js/musicutils.js:804 -#: js/musicutils.js:826 -#: js/phrasemaker.js:1674 -#: js/musickeyboard.js:2043 -#: js/sampler.js:546 -#.TRANS: natural is a music term related to pitch -msgid "natural" +#: js/rubrics.js:524 +#: js/turtledefs.js:121 +#: js/turtledefs.js:223 +#: js/block-verbose.js:2622 +#: js/block.js:2550 +#: js/blocks/IntervalsBlocks.js:63 +#: js/blocks/SensorsBlocks.js:178 +#: js/blocks/PitchBlocks.js:1839 +#: js/blocks/PitchBlocks.js:1853 +#: js/widgets/musickeyboard.js:1935 +#: js/widgets/phrasemaker.js:1036 +#.TRANS: pitch number +#.TRANS: pitch number +#.TRANS: we specify pitch in terms of a name and an octave. The name can be CDEFGAB or Do Re Mi Fa Sol La Ti. Octave is a number between 1 and 8. +msgid "pitch" msgstr "" -#: js/piemenus.js:203 -#: js/PitchBlocks.js:1469 -#: js/PitchActions.js:583 -#: js/musicutils.js:802 -#: js/musicutils.js:827 -#: js/phrasemaker.js:1675 -#: js/musickeyboard.js:2044 -#: js/sampler.js:547 -#.TRANS: flat is a half-step down in pitch -#.TRANS: flat is a music term related to pitch -msgid "flat" +#: js/rubrics.js:525 +#: js/turtledefs.js:123 +#: js/turtledefs.js:225 +msgid "tone" msgstr "" -#: js/piemenus.js:204 -#: js/musicutils.js:800 -#: js/musicutils.js:828 -#: js/phrasemaker.js:1676 -#: js/musickeyboard.js:2045 -#: js/sampler.js:548 -#.TRANS: double flat is a music term related to pitch -msgid "double flat" +#: js/rubrics.js:526 +#: js/lilypond.js:605 +#: js/lilypond.js:904 +#: js/lilypond.js:910 +#: js/lilypond.js:948 +msgid "mouse" msgstr "" -#: js/piemenus.js:2861 -#: js/PitchBlocks.js:1357 -#: js/musicutils.js:627 -#.TRANS: unison means the note is the same as the current note -#.TRANS: unison is a music term related to intervals -msgid "unison" +#: js/rubrics.js:527 +#: js/turtledefs.js:132 +#: js/turtledefs.js:234 +#: js/widgets/phrasemaker.js:1040 +msgid "pen" msgstr "" -#: js/piemenus.js:3015 -#: js/piemenus.js:3088 -#: js/musicutils.js:635 -#: js/musicutils.js:810 -#: js/musicutils.js:912 -#.TRANS: major is a music term related to intervals and mode -msgid "major" -msgstr "" +#: js/rubrics.js:528 +#: js/turtledefs.js:133 +#: js/turtledefs.js:235 +#: js/blocks/NumberBlocks.js:981 +#: js/blocks/PitchBlocks.js:1717 +#: js/blocks/PitchBlocks.js:1758 +msgid "number" +msgstr "數字" -#: js/piemenus.js:3015 -#: js/piemenus.js:3088 -#: js/musicutils.js:653 -#.TRANS: modal scale for music -msgid "ionian" +#: js/rubrics.js:529 +#: js/turtledefs.js:127 +#: js/turtledefs.js:229 +msgid "flow" msgstr "" -#: js/piemenus.js:3017 -#: js/piemenus.js:3092 -#: js/musicutils.js:633 -#: js/musicutils.js:811 -#: js/musicutils.js:909 -#.TRANS: minor is a music term related to intervals and mode -msgid "minor" +#: js/rubrics.js:530 +#: js/turtledefs.js:128 +#: js/turtledefs.js:230 +#: js/block-verbose.js:1609 +#: js/block-verbose.js:4559 +#: js/block-verbose.js:4577 +#: js/block-verbose.js:4588 +#: js/block.js:1573 +#: js/block.js:4483 +#: js/block.js:4501 +#: js/block.js:4512 +#: js/blocks.js:1018 +#: js/blocks.js:3491 +#: js/blocks.js:3492 +#: js/blocks.js:3717 +#: js/blocks.js:4076 +#: js/blocks.js:4269 +#: js/blocks.js:5432 +#: js/blocks.js:6563 +#: js/macros.js:170 +#: js/macros.js:266 +#: js/macros.js:267 +#: js/macros.js:276 +#: js/macros.js:828 +#: js/palette.js:527 +#: js/palette.js:536 +#: js/palette.js:545 +#: js/palette.js:554 +#: js/palette.js:1129 +#: js/palette.js:1140 +#: js/palette.js:1151 +#: js/palette.js:1162 +#: js/palette.js:1181 +#: js/blocks/ActionBlocks.js:254 +#: js/blocks/ActionBlocks.js:307 +#: js/blocks/ActionBlocks.js:617 +#: js/blocks/ActionBlocks.js:716 +#: js/blocks/ActionBlocks.js:961 +#: js/blocks/ActionBlocks.js:1049 +#: js/blocks/ActionBlocks.js:1322 +#: js/blocks/ActionBlocks.js:1325 +#: js/blocks/ActionBlocks.js:1337 +#: js/blocks/ActionBlocks.js:1404 +#: js/blocks/MeterBlocks.js:715 +#: js/blocks/MeterBlocks.js:768 +#: js/blocks/MeterBlocks.js:831 +#: js/blocks/MeterBlocks.js:892 +#: js/widgets/musickeyboard.js:2986 +#: js/widgets/phrasemaker.js:4913 +#: js/widgets/rhythmruler.js:2319 +#: js/widgets/rhythmruler.js:2326 +#: js/widgets/rhythmruler.js:2511 +#: js/widgets/rhythmruler.js:2518 +msgid "action" +msgstr "動作" + +#: js/rubrics.js:531 +#: js/turtledefs.js:136 +#: js/turtledefs.js:238 +msgid "sensors" msgstr "" -#: js/piemenus.js:3017 -#: js/piemenus.js:3092 -#: js/musicutils.js:663 -#.TRANS: modal scale for music -msgid "aeolian" +#: js/rubrics.js:532 +#: js/turtledefs.js:135 +#: js/turtledefs.js:237 +#: js/blocks/MediaBlocks.js:930 +msgid "media" msgstr "" -#: js/piemenus.js:3407 -msgid "Duplicate" +#: js/rubrics.js:533 +msgid "mice" msgstr "" -#: js/piemenus.js:3408 -#: js/turtledefs.js:534 -msgid "Extract" +#: js/toolbar.js:48 +#: js/toolbar.js:109 +msgid "About Music Blocks" +msgstr "" + +#: js/toolbar.js:49 +#: js/toolbar.js:110 +#: js/toolbar.js:175 +#: js/toolbar.js:231 +#: js/turtledefs.js:445 +#: js/turtledefs.js:482 +#: js/activity.js:2660 +#: js/activity.js:2671 +#: js/activity.js:2902 +#: js/widgets/modewidget.js:77 +#: js/widgets/meterwidget.js:185 +#: js/widgets/pitchdrummatrix.js:147 +#: js/widgets/pitchdrummatrix.js:687 +#: js/widgets/pitchdrummatrix.js:689 +#: js/widgets/pitchdrummatrix.js:741 +#: js/widgets/pitchdrummatrix.js:743 +#: js/widgets/pitchdrummatrix.js:758 +#: js/widgets/pitchdrummatrix.js:760 +#: js/widgets/pitchdrummatrix.js:789 +#: js/widgets/pitchdrummatrix.js:791 +#: js/widgets/pitchstaircase.js:121 +#: js/widgets/temperament.js:610 +#: js/widgets/temperament.js:613 +#: js/widgets/temperament.js:673 +#: js/widgets/temperament.js:675 +#: js/widgets/temperament.js:2017 +#: js/widgets/temperament.js:2019 +#: js/widgets/tempo.js:84 +#: js/widgets/tempo.js:86 +#: js/widgets/timbre.js:432 +#: js/widgets/timbre.js:434 +#: js/widgets/timbre.js:465 +#: js/widgets/timbre.js:467 +#: js/widgets/timbre.js:746 +#: js/widgets/aiwidget.js:647 +#: js/widgets/aiwidget.js:654 +#: js/widgets/aiwidget.js:656 +#: js/widgets/arpeggio.js:90 +#: js/widgets/arpeggio.js:547 +#: js/widgets/arpeggio.js:549 +#: js/widgets/arpeggio.js:644 +#: js/widgets/arpeggio.js:646 +#: js/widgets/musickeyboard.js:676 +#: js/widgets/musickeyboard.js:872 +#: js/widgets/musickeyboard.js:874 +#: js/widgets/musickeyboard.js:953 +#: js/widgets/musickeyboard.js:955 +#: js/widgets/phrasemaker.js:513 +#: js/widgets/phrasemaker.js:523 +#: js/widgets/phrasemaker.js:525 +#: js/widgets/phrasemaker.js:4304 +#: js/widgets/phrasemaker.js:4528 +#: js/widgets/phrasemaker.js:4533 +#: js/widgets/phrasemaker.js:4535 +#: js/widgets/phrasemaker.js:4650 +#: js/widgets/rhythmruler.js:637 +#: js/widgets/rhythmruler.js:639 +#: js/widgets/rhythmruler.js:653 +#: js/widgets/rhythmruler.js:655 +#: js/widgets/sampler.js:162 +#: js/widgets/sampler.js:164 +#: js/widgets/sampler.js:363 +msgid "Play" +msgstr "" + +#: js/toolbar.js:50 +#: js/toolbar.js:111 +#: js/toolbar.js:176 +#: js/toolbar.js:232 +#: js/turtledefs.js:451 +#: js/turtledefs.js:488 +#: js/activity.js:2679 +#: js/widgets/modewidget.js:99 +#: js/widgets/modewidget.js:101 +#: js/widgets/meterwidget.js:206 +#: js/widgets/meterwidget.js:208 +#: js/widgets/pitchdrummatrix.js:674 +#: js/widgets/pitchdrummatrix.js:676 +#: js/widgets/temperament.js:2002 +#: js/widgets/temperament.js:2004 +#: js/widgets/arpeggio.js:534 +#: js/widgets/arpeggio.js:536 +#: js/widgets/phrasemaker.js:534 +#: js/widgets/phrasemaker.js:536 +msgid "Stop" +msgstr "停止" + +#: js/toolbar.js:51 +#: js/toolbar.js:112 +#: js/toolbar.js:177 +#: js/toolbar.js:233 +#: js/turtledefs.js:498 +msgid "Record" +msgstr "" + +#: js/toolbar.js:52 +#: js/toolbar.js:53 +msgid "Full screen" +msgstr "" + +#: js/toolbar.js:54 +#: js/toolbar.js:115 +#: js/toolbar.js:180 +#: js/toolbar.js:236 +#: js/turtledefs.js:504 +msgid "Toggle Fullscreen" +msgstr "" + +#: js/toolbar.js:55 +#: js/toolbar.js:116 +#: js/toolbar.js:181 +#: js/toolbar.js:237 +#: js/turtledefs.js:510 +#: planet/js/StringHelper.js:33 +msgid "New project" +msgstr "" + +#: js/toolbar.js:56 +#: js/toolbar.js:117 +#: js/toolbar.js:182 +#: js/toolbar.js:238 +#: js/turtledefs.js:516 +msgid "Load project from file" +msgstr "" + +#: js/toolbar.js:57 +#: js/toolbar.js:118 +#: js/toolbar.js:119 +#: js/toolbar.js:183 +#: js/toolbar.js:239 +#: js/turtledefs.js:541 +#: js/turtledefs.js:550 +#: js/turtledefs.js:571 +msgid "Save project" +msgstr "" + +#: js/toolbar.js:58 +#: js/toolbar.js:77 +#: js/toolbar.js:79 +#: js/toolbar.js:138 +#: js/toolbar.js:147 +#: js/toolbar.js:149 +#: js/toolbar.js:184 +#: js/toolbar.js:202 +#: js/toolbar.js:204 +#: js/toolbar.js:240 +#: js/toolbar.js:258 +#: js/toolbar.js:260 +msgid "Save project as HTML" +msgstr "" + +#: js/toolbar.js:59 +#: js/toolbar.js:120 +#: js/toolbar.js:185 +#: js/toolbar.js:241 +msgid "Find and share projects" +msgstr "" + +#: js/toolbar.js:60 +#: js/toolbar.js:121 +#: js/toolbar.js:186 +#: js/toolbar.js:242 +msgid "Offline. Sharing is unavailable" +msgstr "" + +#: js/toolbar.js:61 +#: js/toolbar.js:122 +#: js/toolbar.js:187 +#: js/toolbar.js:243 +msgid "Auxiliary menu" +msgstr "" + +#: js/toolbar.js:62 +#: js/toolbar.js:123 +#: js/toolbar.js:188 +#: js/toolbar.js:244 +#: js/turtledefs.js:752 +#: js/piemenus.js:3423 +msgid "Help" +msgstr "幫助" + +#: js/toolbar.js:63 +#: js/toolbar.js:124 +#: js/toolbar.js:189 +#: js/toolbar.js:245 +msgid "Run slowly" +msgstr "" + +#: js/toolbar.js:64 +#: js/toolbar.js:125 +#: js/toolbar.js:190 +#: js/toolbar.js:246 +#: js/turtledefs.js:682 +msgid "Run step by step" +msgstr "" + +#: js/toolbar.js:65 +#: js/toolbar.js:126 +#: js/toolbar.js:191 +#: js/toolbar.js:247 +#: js/turtledefs.js:689 +msgid "Display statistics" +msgstr "" + +#: js/toolbar.js:66 +#: js/toolbar.js:127 +#: js/toolbar.js:192 +#: js/toolbar.js:248 +msgid "Load plugin" +msgstr "" + +#: js/toolbar.js:67 +#: js/toolbar.js:128 +#: js/toolbar.js:193 +#: js/toolbar.js:249 +#: js/turtledefs.js:696 +msgid "Delete plugin" +msgstr "" + +#: js/toolbar.js:68 +#: js/toolbar.js:129 +#: js/toolbar.js:194 +#: js/toolbar.js:250 +msgid "Enable horizontal scrolling" +msgstr "" + +#: js/toolbar.js:69 +#: js/toolbar.js:130 +#: js/toolbar.js:195 +#: js/toolbar.js:251 +msgid "Disable horizontal scrolling" +msgstr "" + +#: js/toolbar.js:70 +#: js/toolbar.js:131 +#: js/toolbar.js:196 +#: js/toolbar.js:252 +#: planet/js/LocalCard.js:54 +#: planet/js/StringHelper.js:71 +msgid "Merge with current project" +msgstr "" + +#: js/toolbar.js:71 +#: js/toolbar.js:132 +msgid "Set Pitch Preview" +msgstr "" + +#: js/toolbar.js:72 +#: js/toolbar.js:133 +#: js/toolbar.js:197 +#: js/toolbar.js:253 +msgid "JavaScript Editor" +msgstr "" + +#: js/toolbar.js:73 +#: js/toolbar.js:134 +#: js/toolbar.js:198 +#: js/toolbar.js:254 +#: js/turtledefs.js:724 +msgid "Restore" +msgstr "" + +#: js/toolbar.js:74 +#: js/toolbar.js:135 +#: js/toolbar.js:199 +#: js/toolbar.js:255 +msgid "Switch to beginner mode" +msgstr "" + +#: js/toolbar.js:75 +#: js/toolbar.js:136 +#: js/toolbar.js:200 +#: js/toolbar.js:256 +msgid "Switch to advanced mode" +msgstr "" + +#: js/toolbar.js:76 +#: js/toolbar.js:137 +#: js/toolbar.js:146 +#: js/toolbar.js:201 +#: js/toolbar.js:257 +#: js/turtledefs.js:738 +msgid "Select language" +msgstr "" + +#: js/toolbar.js:78 +#: js/toolbar.js:81 +#: js/toolbar.js:140 +#: js/turtledefs.js:579 +msgid "Save mouse artwork as PNG" +msgstr "" + +#: js/toolbar.js:80 +#: js/toolbar.js:139 +#: js/turtledefs.js:575 +msgid "Save mouse artwork as SVG" +msgstr "" + +#: js/toolbar.js:82 +#: js/toolbar.js:141 +#: js/turtledefs.js:583 +msgid "Save music as WAV" +msgstr "" + +#: js/toolbar.js:83 +#: js/toolbar.js:142 +#: js/turtledefs.js:587 +msgid "Save sheet music as ABC" +msgstr "" + +#: js/toolbar.js:84 +#: js/toolbar.js:143 +#: js/turtledefs.js:591 +msgid "Save sheet music as Lilypond" +msgstr "" + +#: js/toolbar.js:85 +msgid "Save sheet music as MusicXML" +msgstr "" + +#: js/toolbar.js:86 +#: js/toolbar.js:144 +#: js/toolbar.js:152 +#: js/toolbar.js:207 +#: js/toolbar.js:263 +#: js/turtledefs.js:562 +#: js/turtledefs.js:595 +msgid "Save block artwork as SVG" +msgstr "" + +#: js/toolbar.js:87 +#: js/toolbar.js:145 +#: js/toolbar.js:153 +#: js/toolbar.js:208 +#: js/toolbar.js:264 +#: js/turtles.js:911 +msgid "Confirm" +msgstr "" + +#: js/toolbar.js:88 +#: js/toolbar.js:154 +#: js/toolbar.js:209 +#: js/toolbar.js:265 +msgid "English (United States)" +msgstr "" + +#: js/toolbar.js:89 +#: js/toolbar.js:155 +#: js/toolbar.js:210 +#: js/toolbar.js:266 +msgid "English (United Kingdom)" +msgstr "" + +#: js/toolbar.js:90 +#: js/toolbar.js:156 +#: js/toolbar.js:211 +#: js/toolbar.js:267 +msgid "日本語" +msgstr "" + +#: js/toolbar.js:91 +msgid "한국어" +msgstr "" + +#: js/toolbar.js:92 +#: js/toolbar.js:158 +#: js/toolbar.js:213 +#: js/toolbar.js:269 +msgid "español" +msgstr "" + +#: js/toolbar.js:93 +#: js/toolbar.js:159 +#: js/toolbar.js:214 +#: js/toolbar.js:270 +msgid "português" +msgstr "" + +#: js/toolbar.js:94 +#: js/toolbar.js:160 +#: js/toolbar.js:215 +#: js/toolbar.js:271 +msgid "にほんご" +msgstr "" + +#: js/toolbar.js:95 +#: js/toolbar.js:161 +#: js/toolbar.js:216 +#: js/toolbar.js:272 +msgid "中文" +msgstr "" + +#: js/toolbar.js:96 +#: js/toolbar.js:162 +#: js/toolbar.js:217 +#: js/toolbar.js:273 +msgid "ภาษาไทย" +msgstr "" + +#: js/toolbar.js:97 +#: js/toolbar.js:163 +#: js/toolbar.js:218 +#: js/toolbar.js:274 +msgid "aymara" +msgstr "" + +#: js/toolbar.js:98 +#: js/toolbar.js:164 +#: js/toolbar.js:219 +#: js/toolbar.js:275 +msgid "quechua" +msgstr "" + +#: js/toolbar.js:99 +#: js/toolbar.js:165 +#: js/toolbar.js:220 +#: js/toolbar.js:276 +msgid "guarani" +msgstr "" + +#: js/toolbar.js:100 +#: js/toolbar.js:166 +#: js/toolbar.js:221 +#: js/toolbar.js:277 +msgid "हिंदी" +msgstr "" + +#: js/toolbar.js:101 +#: js/toolbar.js:168 +#: js/toolbar.js:222 +#: js/toolbar.js:279 +msgid "igbo" +msgstr "" + +#: js/toolbar.js:102 +#: js/toolbar.js:169 +#: js/toolbar.js:223 +#: js/toolbar.js:280 +msgid "عربى" +msgstr "" + +#: js/toolbar.js:103 +#: js/toolbar.js:167 +#: js/toolbar.js:224 +#: js/toolbar.js:278 +msgid "తెలుగు" +msgstr "" + +#: js/toolbar.js:104 +#: js/toolbar.js:170 +#: js/toolbar.js:225 +#: js/toolbar.js:281 +msgid "עִברִית" +msgstr "" + +#: js/toolbar.js:113 +#: js/toolbar.js:114 +#: js/toolbar.js:178 +#: js/toolbar.js:179 +#: js/toolbar.js:234 +#: js/toolbar.js:235 +msgid "Full Screen" +msgstr "" + +#: js/toolbar.js:148 +#: js/toolbar.js:151 +#: js/toolbar.js:203 +#: js/toolbar.js:206 +#: js/toolbar.js:259 +#: js/toolbar.js:262 +#: js/turtledefs.js:558 +msgid "Save turtle artwork as PNG" +msgstr "" + +#: js/toolbar.js:150 +#: js/toolbar.js:205 +#: js/toolbar.js:261 +#: js/turtledefs.js:554 +msgid "Save turtle artwork as SVG" +msgstr "" + +#: js/toolbar.js:157 +#: js/toolbar.js:212 +#: js/toolbar.js:268 +msgid "한국인" +msgstr "" + +#: js/toolbar.js:174 +#: js/toolbar.js:230 +msgid "About Turtle Blocks" +msgstr "" + +#: js/toolbar.js:446 +#: js/toolbar.js:457 +#: js/toolbar.js:497 +msgid "Turtle Wrap Off" +msgstr "" + +#: js/toolbar.js:466 +#: js/toolbar.js:506 +msgid "Turtle Wrap On" +msgstr "" + +#: js/turtle-painter.js:1192 +#: js/turtle-painter.js:1193 +#: js/turtles.js:118 +#: js/block-verbose.js:1623 +#: js/block.js:1587 +#: js/lilypond.js:749 +#: js/lilypond.js:913 +#: js/lilypond.js:951 +#: js/logo.js:1184 +#: js/blocks/ActionBlocks.js:1223 +#: js/blocks/ProgramBlocks.js:1267 +msgid "start" +msgstr "啟動" + +#: js/turtledefs.js:40 +#.TRANS: put the URL to the guide here, e.g., https://github.com/sugarlabs/turtleblocksjs/tree/master/guide/README.md +msgid "guide url" +msgstr "" + +#: js/turtledefs.js:85 +#: js/turtledefs.js:437 +msgid "Turtle Blocks is a Logo-inspired turtle that draws colorful pictures with snap-together visual-programming blocks." +msgstr "" + +#: js/turtledefs.js:118 +#: js/turtledefs.js:220 +msgid "search" +msgstr "" + +#: js/turtledefs.js:120 +#: js/turtledefs.js:222 +#: js/blocks/MeterBlocks.js:1343 +#: js/blocks/WidgetBlocks.js:522 +#.TRANS: musical meter (time signature), e.g., 4:4 +msgid "meter" +msgstr "" + +#: js/turtledefs.js:122 +#: js/turtledefs.js:224 +msgid "intervals" +msgstr "" + +#: js/turtledefs.js:124 +#: js/turtledefs.js:226 +msgid "ornament" +msgstr "" + +#: js/turtledefs.js:125 +#: js/turtledefs.js:227 +#: js/blocks/VolumeBlocks.js:362 +#: js/blocks/VolumeBlocks.js:502 +#: js/blocks/VolumeBlocks.js:545 +msgid "volume" +msgstr "" + +#: js/turtledefs.js:126 +#: js/turtledefs.js:228 +#: js/block-verbose.js:1700 +#: js/block-verbose.js:2626 +#: js/block.js:1664 +#: js/block.js:2554 +#: js/lilypond.js:732 +#: js/lilypond.js:897 +#: js/lilypond.js:941 +#: js/palette.js:577 +#: js/blocks/RhythmBlocks.js:766 +#: js/blocks/DrumBlocks.js:477 +#: js/blocks/VolumeBlocks.js:502 +#: js/widgets/phrasemaker.js:1038 +msgid "drum" +msgstr "" + +#: js/turtledefs.js:129 +#: js/turtledefs.js:231 +msgid "boxes" +msgstr "" + +#: js/turtledefs.js:130 +#: js/turtledefs.js:232 +msgid "widgets" +msgstr "" + +#: js/turtledefs.js:131 +#: js/turtledefs.js:233 +#: js/widgets/phrasemaker.js:1039 +msgid "graphics" +msgstr "" + +#: js/turtledefs.js:134 +#: js/turtledefs.js:236 +msgid "boolean" +msgstr "" + +#: js/turtledefs.js:137 +#: js/turtledefs.js:239 +#: js/blocks/HeapBlocks.js:59 +#: js/widgets/status.js:147 +msgid "heap" +msgstr "" + +#: js/turtledefs.js:138 +#: js/turtledefs.js:240 +#: js/blocks/DictBlocks.js:142 +#: js/blocks/ProgramBlocks.js:495 +msgid "dictionary" +msgstr "" + +#: js/turtledefs.js:139 +#: js/turtledefs.js:241 +msgid "ensemble" msgstr "" -#: js/piemenus.js:3409 -msgid "Move to trash" +#: js/turtledefs.js:140 +#: js/turtledefs.js:242 +msgid "extras" msgstr "" -#: js/piemenus.js:3410 -#: js/timbre.js:968 -#: js/StringHelper.js:69 -msgid "Close" +#: js/turtledefs.js:142 +#: js/turtledefs.js:244 +#.TRANS: program as in computer program +#.TRANS: program as in computer program +msgid "program" msgstr "" -#: js/piemenus.js:3416 -msgid "Save stack" +#: js/turtledefs.js:143 +#: js/turtledefs.js:245 +msgid "my blocks" msgstr "" -#: js/piemenus.js:3420 -#: js/toolbar.js:60 -#: js/toolbar.js:120 -#: js/toolbar.js:185 -#: js/toolbar.js:240 -#: js/turtledefs.js:752 -msgid "Help" -msgstr "幫助" +#: js/turtledefs.js:185 +#: js/turtledefs.js:281 +msgid "artwork" +msgstr "" -#: js/piemenus.js:3762 -msgid "You have chosen key " +#: js/turtledefs.js:185 +#: js/turtledefs.js:281 +msgid "logic" msgstr "" -#: js/piemenus.js:3766 -msgid " for your pitch preview." +#: js/turtledefs.js:185 +#: js/turtledefs.js:281 +msgid "music" msgstr "" -#: js/palette.js:571 -msgid "grid" +#: js/turtledefs.js:187 +#: js/turtledefs.js:463 +msgid "Music Blocks is a collection of tools for exploring fundamental musical concepts in a fun way." msgstr "" -#: js/palette.js:577 -#: js/block.js:1540 -#: js/block.js:2343 -#: js/turtledefs.js:126 -#: js/turtledefs.js:228 -#: js/lilypond.js:740 -#: js/lilypond.js:905 -#: js/lilypond.js:949 -#: js/DrumBlocks.js:486 -#: js/RhythmBlocks.js:766 -#: js/VolumeBlocks.js:502 -#: js/phrasemaker.js:823 -msgid "drum" +#: js/turtledefs.js:436 +msgid "Welcome to Turtle Blocks" msgstr "" -#: js/palette.js:580 -msgid "effect" +#: js/turtledefs.js:438 +#: js/turtledefs.js:465 +#: js/turtledefs.js:774 +#: js/turtledefs.js:805 +msgid "The current version is" msgstr "" -#: js/palette.js:586 -msgid "sargam" +#: js/turtledefs.js:446 +#: js/turtledefs.js:483 +msgid "Click the run button to run the project in fast mode." msgstr "" -#: js/palette.js:589 -#: js/activity.js:1833 -#: js/RhythmBlocks.js:923 -#: js/PitchBlocks.js:442 -#: js/PitchBlocks.js:1748 -#.TRANS: a numeric mapping of the notes in an octave based on the musical mode -msgid "scale degree" +#: js/turtledefs.js:452 +msgid "Stop the turtle." msgstr "" -#: js/palette.js:592 -#: js/activity.js:1860 -msgid "mode name" +#: js/turtledefs.js:454 +#: js/turtledefs.js:491 +msgid "You can also type Alt-S to stop." msgstr "" -#: js/palette.js:595 -#: js/activity.js:1839 -msgid "invert mode" +#: js/turtledefs.js:462 +#: js/widgets/help.js:333 +msgid "Welcome to Music Blocks" msgstr "" -#: js/palette.js:598 -#: js/activity.js:1836 -msgid "voice name" +#: js/turtledefs.js:472 +#: js/widgets/help.js:334 +msgid "Meet Mr. Mouse!" msgstr "" -#: js/palette.js:601 -#: js/PitchBlocks.js:1181 -msgid "custom pitch" +#: js/turtledefs.js:473 +msgid "Mr Mouse is our Music Blocks conductor." msgstr "" -#: js/palette.js:605 -#: js/block.js:1456 -#: js/block.js:1575 -#: js/WidgetBlocks.js:218 -#: js/IntervalsBlocks.js:63 -msgid "temperament" +#: js/turtledefs.js:475 +msgid "Mr Mouse encourages you to explore Music Blocks." msgstr "" -#: js/palette.js:609 -msgid "accidental" +#: js/turtledefs.js:477 +msgid "Let us start our tour!" msgstr "" -#: js/palette.js:615 -#: js/activity.js:1866 -msgid "interval name" +#: js/turtledefs.js:489 +msgid "Stop the music (and the mice)." msgstr "" -#: js/palette.js:633 -#: js/PitchBlocks.js:405 -msgid "pitch converter" +#: js/turtledefs.js:499 +msgid "Record your project as video." msgstr "" -#: js/rubrics.js:522 -#: js/turtledefs.js:119 -#: js/turtledefs.js:221 -#: js/RhythmBlockPaletteBlocks.js:52 -#: js/RhythmBlockPaletteBlocks.js:233 -#: js/ProgramBlocks.js:745 -#: js/rhythmruler.js:1670 -#: js/rhythmruler.js:1677 -#: js/rhythmruler.js:1745 -#: js/rhythmruler.js:1752 -#: js/rhythmruler.js:1830 -#.TRANS: an arrangement of notes based on duration -msgid "rhythm" +#: js/turtledefs.js:505 +msgid "Toggle Fullscreen mode." msgstr "" -#: js/rubrics.js:523 -#: js/block.js:2339 -#: js/turtledefs.js:121 -#: js/turtledefs.js:223 -#: js/IntervalsBlocks.js:63 -#: js/PitchBlocks.js:1801 -#: js/PitchBlocks.js:1814 -#: js/SensorsBlocks.js:178 -#: js/phrasemaker.js:821 -#: js/musickeyboard.js:1653 -#.TRANS: pitch number -#.TRANS: we specify pitch in terms of a name and an octave. The name can be CDEFGAB or Do Re Mi Fa Sol La Ti. Octave is a number between 1 and 8. -msgid "pitch" +#: js/turtledefs.js:511 +msgid "Initialize a new project." msgstr "" -#: js/rubrics.js:524 -#: js/turtledefs.js:123 -#: js/turtledefs.js:225 -msgid "tone" +#: js/turtledefs.js:517 +msgid "You can also load projects from the file system." msgstr "" -#: js/rubrics.js:525 -#: js/lilypond.js:613 -#: js/lilypond.js:912 -#: js/lilypond.js:918 -#: js/lilypond.js:956 -msgid "mouse" +#: js/turtledefs.js:522 +#: planet/js/StringHelper.js:46 +msgid "Delete" msgstr "" -#: js/rubrics.js:526 -#: js/turtledefs.js:132 -#: js/turtledefs.js:234 -#: js/phrasemaker.js:825 -msgid "pen" +#: js/turtledefs.js:523 +msgid "To delete a block, just right-click on it, then you will be able to see the delete option" msgstr "" -#: js/rubrics.js:527 -#: js/turtledefs.js:133 -#: js/turtledefs.js:235 -#: js/NumberBlocks.js:905 -#: js/PitchBlocks.js:1679 -#: js/PitchBlocks.js:1720 -msgid "number" -msgstr "數字" +#: js/turtledefs.js:528 +#: js/activity.js:2649 +#: planet/js/LocalCard.js:31 +msgid "Copy" +msgstr "" -#: js/rubrics.js:528 -#: js/turtledefs.js:127 -#: js/turtledefs.js:229 -msgid "flow" +#: js/turtledefs.js:529 +msgid "To copy a block, just right-click on it, then you will be able to see the copy option" msgstr "" -#: js/rubrics.js:530 -#: js/turtledefs.js:136 -#: js/turtledefs.js:238 -msgid "sensors" +#: js/turtledefs.js:534 +#: js/piemenus.js:3411 +msgid "Extract" msgstr "" -#: js/rubrics.js:531 -#: js/turtledefs.js:135 -#: js/turtledefs.js:237 -#: js/MediaBlocks.js:930 -msgid "media" +#: js/turtledefs.js:535 +msgid "To extract a block, just right-click on it, then you will be able to see the extract option" msgstr "" -#: js/rubrics.js:532 -msgid "mice" +#: js/turtledefs.js:542 +#: js/turtledefs.js:552 +#: js/turtledefs.js:573 +msgid "Save your project to a file." msgstr "" -#: js/macros.js:711 -#: js/musicutils.js:783 -#: js/synthutils.js:181 -#.TRANS: animal sound effect -msgid "duck" +#: js/turtledefs.js:549 +#: js/turtledefs.js:570 +msgid "save" msgstr "" -#: js/toolbar.js:46 -#: js/toolbar.js:107 -msgid "About Music Blocks" +#: js/turtledefs.js:556 +#: js/turtledefs.js:577 +msgid "Save graphics from your project to as SVG." msgstr "" -#: js/toolbar.js:47 -#: js/toolbar.js:108 -#: js/toolbar.js:172 -#: js/toolbar.js:228 -#: js/turtledefs.js:445 -#: js/turtledefs.js:482 -#: js/activity.js:2281 -#: js/activity.js:2289 -#: js/activity.js:2520 -#: js/modewidget.js:77 -#: js/pitchstaircase.js:121 -#: js/phrasemaker.js:302 -#: js/phrasemaker.js:312 -#: js/phrasemaker.js:314 -#: js/phrasemaker.js:3901 -#: js/phrasemaker.js:4061 -#: js/phrasemaker.js:4066 -#: js/phrasemaker.js:4068 -#: js/phrasemaker.js:4183 -#: js/pitchdrummatrix.js:81 -#: js/pitchdrummatrix.js:574 -#: js/pitchdrummatrix.js:576 -#: js/pitchdrummatrix.js:628 -#: js/pitchdrummatrix.js:630 -#: js/pitchdrummatrix.js:645 -#: js/pitchdrummatrix.js:647 -#: js/pitchdrummatrix.js:674 -#: js/pitchdrummatrix.js:676 -#: js/temperament.js:477 -#: js/temperament.js:480 -#: js/temperament.js:540 -#: js/temperament.js:542 -#: js/temperament.js:1835 -#: js/temperament.js:1837 -#: js/temperament.js:1986 -#: js/temperament.js:1988 -#: js/musickeyboard.js:522 -#: js/musickeyboard.js:682 -#: js/musickeyboard.js:684 -#: js/musickeyboard.js:756 -#: js/musickeyboard.js:758 -#: js/rhythmruler.js:298 -#: js/rhythmruler.js:300 -#: js/rhythmruler.js:314 -#: js/rhythmruler.js:316 -#: js/sampler.js:96 -#: js/sampler.js:98 -#: js/sampler.js:229 -#: js/sampler.js:235 -#: js/sampler.js:237 -#: js/tempo.js:84 -#: js/tempo.js:86 -#: js/timbre.js:432 -#: js/timbre.js:434 -#: js/timbre.js:465 -#: js/timbre.js:467 -#: js/timbre.js:746 -#: js/meterwidget.js:80 -#: js/arpeggio.js:90 -#: js/arpeggio.js:547 -#: js/arpeggio.js:549 -#: js/arpeggio.js:644 -#: js/arpeggio.js:646 -msgid "Play" +#: js/turtledefs.js:560 +#: js/turtledefs.js:581 +msgid "Save graphics from your project as PNG." msgstr "" -#: js/toolbar.js:48 -#: js/toolbar.js:109 -#: js/toolbar.js:173 -#: js/toolbar.js:229 -#: js/turtledefs.js:451 -#: js/turtledefs.js:488 -#: js/activity.js:2297 -#: js/modewidget.js:99 -#: js/modewidget.js:101 -#: js/phrasemaker.js:323 -#: js/phrasemaker.js:325 -#: js/pitchdrummatrix.js:561 -#: js/pitchdrummatrix.js:563 -#: js/temperament.js:1820 -#: js/temperament.js:1822 -#: js/meterwidget.js:101 -#: js/meterwidget.js:103 -#: js/arpeggio.js:534 -#: js/arpeggio.js:536 -msgid "Stop" -msgstr "停止" +#: js/turtledefs.js:564 +#: js/turtledefs.js:597 +msgid "Save block artwork as an SVG file." +msgstr "" -#: js/toolbar.js:49 -#: js/toolbar.js:110 -#: js/toolbar.js:174 -#: js/toolbar.js:230 -#: js/turtledefs.js:498 -msgid "Record" +#: js/turtledefs.js:585 +msgid "Save audio from your project as WAV." msgstr "" -#: js/toolbar.js:50 -#: js/toolbar.js:51 -msgid "Full screen" +#: js/turtledefs.js:589 +msgid "Save your project to as an ABC file." msgstr "" -#: js/toolbar.js:52 -#: js/toolbar.js:112 -#: js/toolbar.js:177 -#: js/toolbar.js:232 -#: js/turtledefs.js:504 -msgid "Toggle Fullscreen" +#: js/turtledefs.js:593 +msgid "Save your project to as a Lilypond file." msgstr "" -#: js/toolbar.js:53 -#: js/toolbar.js:113 -#: js/toolbar.js:178 -#: js/toolbar.js:233 -#: js/turtledefs.js:510 -#: js/StringHelper.js:33 -msgid "New project" +#: js/turtledefs.js:604 +msgid "Load samples from server" msgstr "" -#: js/toolbar.js:54 -#: js/toolbar.js:114 -#: js/toolbar.js:179 -#: js/toolbar.js:234 -#: js/turtledefs.js:516 -msgid "Load project from file" +#: js/turtledefs.js:605 +msgid "This button opens a viewer for loading example projects." msgstr "" -#: js/toolbar.js:55 -#: js/toolbar.js:115 -#: js/toolbar.js:116 -#: js/toolbar.js:180 -#: js/toolbar.js:235 -#: js/turtledefs.js:541 -#: js/turtledefs.js:550 -#: js/turtledefs.js:571 -msgid "Save project" +#: js/turtledefs.js:611 +msgid "Palette buttons" msgstr "" -#: js/toolbar.js:56 -#: js/toolbar.js:75 -#: js/toolbar.js:77 -#: js/toolbar.js:135 -#: js/toolbar.js:144 -#: js/toolbar.js:146 -#: js/toolbar.js:181 -#: js/toolbar.js:199 -#: js/toolbar.js:201 -#: js/toolbar.js:236 -#: js/toolbar.js:254 -#: js/toolbar.js:256 -msgid "Save project as HTML" +#: js/turtledefs.js:612 +msgid "This toolbar contains the palette buttons including Rhythm Pitch Tone Action and more." +msgstr "" + +#: js/turtledefs.js:614 +msgid "Click to show the palettes of blocks and drag blocks from the palettes onto the canvas to use them." +msgstr "" + +#: js/turtledefs.js:620 +msgid "Cartesian/Polar" msgstr "" -#: js/toolbar.js:57 -#: js/toolbar.js:117 -#: js/toolbar.js:182 -#: js/toolbar.js:237 -msgid "Find and share projects" +#: js/turtledefs.js:621 +msgid "Show or hide a coordinate grid." msgstr "" -#: js/toolbar.js:58 -#: js/toolbar.js:118 -#: js/toolbar.js:183 -#: js/toolbar.js:238 -msgid "Offline. Sharing is unavailable" +#: js/turtledefs.js:626 +#: js/turtles.js:902 +msgid "Clean" +msgstr "清除畫面" + +#: js/turtledefs.js:627 +msgid "Clear the screen and return the mice to their initial positions." msgstr "" -#: js/toolbar.js:59 -#: js/toolbar.js:119 -#: js/toolbar.js:184 -#: js/toolbar.js:239 -msgid "Auxiliary menu" +#: js/turtledefs.js:632 +#: js/turtles.js:955 +msgid "Collapse" msgstr "" -#: js/toolbar.js:61 -#: js/toolbar.js:121 -#: js/toolbar.js:186 -#: js/toolbar.js:241 -msgid "Run slowly" +#: js/turtledefs.js:633 +msgid "Collapse the graphics window." msgstr "" -#: js/toolbar.js:62 -#: js/toolbar.js:122 -#: js/toolbar.js:187 -#: js/toolbar.js:242 -#: js/turtledefs.js:682 -msgid "Run step by step" +#: js/turtledefs.js:638 +#: js/activity.js:5684 +msgid "Home" msgstr "" -#: js/toolbar.js:63 -#: js/toolbar.js:123 -#: js/toolbar.js:188 -#: js/toolbar.js:243 -#: js/turtledefs.js:689 -msgid "Display statistics" +#: js/turtledefs.js:639 +msgid "Return all blocks to the center of the screen." msgstr "" -#: js/toolbar.js:64 -#: js/toolbar.js:124 -#: js/toolbar.js:189 -#: js/toolbar.js:244 -msgid "Load plugin" +#: js/turtledefs.js:644 +msgid "Show/hide blocks" +msgstr "顯示/隱藏區塊" + +#: js/turtledefs.js:645 +msgid "Hide or show the blocks and the palettes." msgstr "" -#: js/toolbar.js:65 -#: js/toolbar.js:125 -#: js/toolbar.js:190 -#: js/toolbar.js:245 -#: js/turtledefs.js:696 -msgid "Delete plugin" +#: js/turtledefs.js:650 +msgid "Expand/collapse collapsable blocks" msgstr "" -#: js/toolbar.js:66 -#: js/toolbar.js:126 -#: js/toolbar.js:191 -#: js/toolbar.js:246 -msgid "Enable horizontal scrolling" +#: js/turtledefs.js:651 +msgid "Expand or collapse start and action stacks." msgstr "" -#: js/toolbar.js:67 -#: js/toolbar.js:127 -#: js/toolbar.js:192 -#: js/toolbar.js:247 -msgid "Disable horizontal scrolling" +#: js/turtledefs.js:658 +#: js/activity.js:5704 +msgid "Decrease block size" msgstr "" -#: js/toolbar.js:68 -#: js/toolbar.js:128 -#: js/toolbar.js:193 -#: js/toolbar.js:248 -#: js/LocalCard.js:54 -#: js/StringHelper.js:71 -msgid "Merge with current project" +#: js/turtledefs.js:659 +msgid "Decrease the size of the blocks." msgstr "" -#: js/toolbar.js:69 -#: js/toolbar.js:129 -msgid "Set Pitch Preview" +#: js/turtledefs.js:664 +#: js/activity.js:5710 +msgid "Increase block size" msgstr "" -#: js/toolbar.js:70 -#: js/toolbar.js:130 -#: js/toolbar.js:194 -#: js/toolbar.js:249 -msgid "Toggle JavaScript Editor" +#: js/turtledefs.js:665 +msgid "Increase the size of the blocks." msgstr "" -#: js/toolbar.js:71 -#: js/toolbar.js:131 -#: js/toolbar.js:195 -#: js/toolbar.js:250 -#: js/turtledefs.js:724 -msgid "Restore" +#: js/turtledefs.js:670 +msgid "Expand/collapse option toolbar" msgstr "" -#: js/toolbar.js:72 -#: js/toolbar.js:132 -#: js/toolbar.js:196 -#: js/toolbar.js:251 -msgid "Switch to beginner mode" +#: js/turtledefs.js:671 +msgid "Click this button to expand or collapse the auxillary toolbar." msgstr "" -#: js/toolbar.js:73 -#: js/toolbar.js:133 -#: js/toolbar.js:197 -#: js/toolbar.js:252 -msgid "Switch to advanced mode" +#: js/turtledefs.js:676 +msgid "Run slow" msgstr "" -#: js/toolbar.js:74 -#: js/toolbar.js:134 -#: js/toolbar.js:143 -#: js/toolbar.js:198 -#: js/toolbar.js:253 -#: js/turtledefs.js:738 -msgid "Select language" +#: js/turtledefs.js:677 +msgid "Click to run the project in slow mode." msgstr "" -#: js/toolbar.js:76 -#: js/toolbar.js:79 -#: js/toolbar.js:137 -#: js/turtledefs.js:579 -msgid "Save mouse artwork as PNG" +#: js/turtledefs.js:683 +msgid "Click to run the project step by step." msgstr "" -#: js/toolbar.js:78 -#: js/toolbar.js:136 -#: js/turtledefs.js:575 -msgid "Save mouse artwork as SVG" +#: js/turtledefs.js:690 +msgid "Display statistics about your Music project." msgstr "" -#: js/toolbar.js:80 -#: js/toolbar.js:138 -#: js/turtledefs.js:583 -msgid "Save music as WAV" +#: js/turtledefs.js:697 +msgid "Delete a selected plugin." msgstr "" -#: js/toolbar.js:81 -#: js/toolbar.js:139 -#: js/turtledefs.js:587 -msgid "Save sheet music as ABC" +#: js/turtledefs.js:704 +msgid "Enable scrolling" msgstr "" -#: js/toolbar.js:82 -#: js/toolbar.js:140 -#: js/turtledefs.js:591 -msgid "Save sheet music as Lilypond" +#: js/turtledefs.js:705 +msgid "You can scroll the blocks on the canvas." msgstr "" -#: js/toolbar.js:83 -msgid "Save sheet music as MusicXML" +#: js/turtledefs.js:714 +msgid "Wrap Turtle" msgstr "" -#: js/toolbar.js:84 -#: js/toolbar.js:141 -#: js/toolbar.js:149 -#: js/toolbar.js:204 -#: js/toolbar.js:259 -#: js/turtledefs.js:562 -#: js/turtledefs.js:595 -msgid "Save block artwork as SVG" +#: js/turtledefs.js:715 +msgid "Turn Turtle wrapping On or Off." msgstr "" -#: js/toolbar.js:85 -#: js/toolbar.js:142 -#: js/toolbar.js:150 -#: js/toolbar.js:205 -#: js/toolbar.js:260 -msgid "Confirm" +#: js/turtledefs.js:725 +msgid "Restore blocks from the trash." msgstr "" -#: js/toolbar.js:86 -#: js/toolbar.js:151 -#: js/toolbar.js:206 -#: js/toolbar.js:261 -msgid "English (United States)" +#: js/turtledefs.js:732 +msgid "Switch mode" msgstr "" -#: js/toolbar.js:87 -#: js/toolbar.js:152 -#: js/toolbar.js:207 -#: js/toolbar.js:262 -msgid "English (United Kingdom)" +#: js/turtledefs.js:733 +msgid "Switch between beginner and advance modes." msgstr "" -#: js/toolbar.js:88 -#: js/toolbar.js:153 -#: js/toolbar.js:208 -#: js/toolbar.js:263 -msgid "日本語" +#: js/turtledefs.js:739 +msgid "Select your language preference." msgstr "" -#: js/toolbar.js:89 -msgid "한국어" +#: js/turtledefs.js:745 +msgid "Keyboard shortcuts" msgstr "" -#: js/toolbar.js:90 -#: js/toolbar.js:155 -#: js/toolbar.js:210 -#: js/toolbar.js:265 -msgid "español" +#: js/turtledefs.js:746 +msgid "You can type d to create a do block and r to create a re block etc." msgstr "" -#: js/toolbar.js:91 -#: js/toolbar.js:156 -#: js/toolbar.js:211 -#: js/toolbar.js:266 -msgid "português" +#: js/turtledefs.js:753 +msgid "Show these messages." msgstr "" -#: js/toolbar.js:92 -#: js/toolbar.js:157 -#: js/toolbar.js:212 -#: js/toolbar.js:267 -msgid "にほんご" +#: js/turtledefs.js:759 +#: js/turtledefs.js:790 +#: js/widgets/help.js:335 +msgid "Guide" msgstr "" -#: js/toolbar.js:93 -#: js/toolbar.js:158 -#: js/toolbar.js:213 -#: js/toolbar.js:268 -msgid "中文" +#: js/turtledefs.js:760 +msgid "A detailed guide to Turtle Blocks is available." msgstr "" -#: js/toolbar.js:94 -#: js/toolbar.js:159 -#: js/toolbar.js:214 -#: js/toolbar.js:269 -msgid "ภาษาไทย" +#: js/turtledefs.js:764 +msgid "Turtle Blocks Guide" msgstr "" -#: js/toolbar.js:95 -#: js/toolbar.js:160 -#: js/toolbar.js:215 -#: js/toolbar.js:270 -msgid "aymara" +#: js/turtledefs.js:767 +#: js/turtledefs.js:798 +#: js/widgets/help.js:336 +msgid "About" +msgstr "" + +#: js/turtledefs.js:768 +msgid "Turtle Blocks is an open source collection of tools for exploring musical concepts." msgstr "" -#: js/toolbar.js:96 -#: js/toolbar.js:161 -#: js/toolbar.js:216 -#: js/toolbar.js:271 -msgid "quechua" +#: js/turtledefs.js:770 +msgid "A full list of contributors can be found in the Turtle Blocks GitHub repository." msgstr "" -#: js/toolbar.js:97 -#: js/toolbar.js:162 -#: js/toolbar.js:217 -#: js/toolbar.js:272 -msgid "guarani" +#: js/turtledefs.js:772 +msgid "Turtle Blocks is licensed under the AGPL." msgstr "" -#: js/toolbar.js:98 -#: js/toolbar.js:163 -#: js/toolbar.js:218 -#: js/toolbar.js:273 -msgid "हिंदी" +#: js/turtledefs.js:780 +msgid "Turtle Blocks GitHub repository" msgstr "" -#: js/toolbar.js:99 -#: js/toolbar.js:165 -#: js/toolbar.js:219 -#: js/toolbar.js:275 -msgid "igbo" +#: js/turtledefs.js:783 +#: js/turtledefs.js:814 +#: js/widgets/help.js:337 +#: js/widgets/help.js:359 +msgid "Congratulations." msgstr "" -#: js/toolbar.js:100 -#: js/toolbar.js:166 -#: js/toolbar.js:220 -#: js/toolbar.js:276 -msgid "عربى" +#: js/turtledefs.js:784 +msgid "You have finished the tour. Please enjoy Turtle Blocks!" msgstr "" -#: js/toolbar.js:101 -#: js/toolbar.js:164 -#: js/toolbar.js:221 -#: js/toolbar.js:274 -msgid "తెలుగు" +#: js/turtledefs.js:791 +msgid "A detailed guide to Music Blocks is available." msgstr "" -#: js/toolbar.js:102 -#: js/toolbar.js:167 -#: js/toolbar.js:222 -#: js/toolbar.js:277 -msgid "עִברִית" +#: js/turtledefs.js:799 +msgid "Music Blocks is an open source collection of tools for exploring musical concepts." msgstr "" -#: js/toolbar.js:111 -#: js/toolbar.js:175 -#: js/toolbar.js:176 -#: js/toolbar.js:231 -msgid "Full Screen" +#: js/turtledefs.js:801 +msgid "A full list of contributors can be found in the Music Blocks GitHub repository." msgstr "" -#: js/toolbar.js:145 -#: js/toolbar.js:148 -#: js/toolbar.js:200 -#: js/toolbar.js:203 -#: js/toolbar.js:255 -#: js/toolbar.js:258 -#: js/turtledefs.js:558 -msgid "Save turtle artwork as PNG" +#: js/turtledefs.js:803 +msgid "Music Blocks is licensed under the AGPL." msgstr "" -#: js/toolbar.js:147 -#: js/toolbar.js:202 -#: js/toolbar.js:257 -#: js/turtledefs.js:554 -msgid "Save turtle artwork as SVG" +#: js/turtledefs.js:811 +msgid "Music Blocks GitHub repository" msgstr "" -#: js/toolbar.js:154 -#: js/toolbar.js:209 -#: js/toolbar.js:264 -msgid "한국인" +#: js/turtledefs.js:815 +msgid "You have finished the tour. Please enjoy Music Blocks!" msgstr "" -#: js/toolbar.js:171 -#: js/toolbar.js:227 -msgid "About Turtle Blocks" +#: js/turtles.js:882 +msgid "Grid" msgstr "" -#: js/toolbar.js:429 -#: js/toolbar.js:440 -msgid "Turtle Wrap Off" +#: js/turtles.js:1024 +msgid "Expand" msgstr "" -#: js/toolbar.js:442 -msgid "Turtle Wrap On" +#: js/block-verbose.js:1616 +#: js/block-verbose.js:1735 +#: js/block.js:1580 +#: js/block.js:1699 +#: js/palette.js:605 +#: js/blocks/IntervalsBlocks.js:63 +#: js/blocks/WidgetBlocks.js:259 +msgid "temperament" msgstr "" -#: js/block.js:1470 +#: js/block-verbose.js:1630 +#: js/block.js:1594 msgid "matrix" msgstr "" -#: js/block.js:1477 -#: js/WidgetBlocks.js:1226 +#: js/block-verbose.js:1637 +#: js/block.js:1601 +#: js/blocks/WidgetBlocks.js:1509 #: plugins/rodi.rtp:324 msgid "status" msgstr "" -#: js/block.js:1484 +#: js/block-verbose.js:1644 +#: js/block.js:1608 msgid "drum mapper" msgstr "" -#: js/block.js:1491 +#: js/block-verbose.js:1651 +#: js/block.js:1615 msgid "ruler" msgstr "" -#: js/block.js:1498 -#: js/WidgetBlocks.js:327 +#: js/block-verbose.js:1658 +#: js/block.js:1622 +#: js/blocks/WidgetBlocks.js:397 #.TRANS: timbre is the character or quality of a musical sound msgid "timbre" msgstr "" -#: js/block.js:1505 +#: js/block-verbose.js:1665 +#: js/block.js:1629 msgid "stair" msgstr "" -#: js/block.js:1512 -#: js/WidgetBlocks.js:577 +#: js/block-verbose.js:1672 +#: js/block.js:1636 +#: js/blocks/WidgetBlocks.js:707 #.TRANS: the speed at music is should be played. msgid "tempo" msgstr "" -#: js/block.js:1519 -#: js/block.js:1582 -#: js/IntervalsBlocks.js:1268 +#: js/block-verbose.js:1679 +#: js/block-verbose.js:1742 +#: js/block.js:1643 +#: js/block.js:1706 +#: js/blocks/IntervalsBlocks.js:1464 #.TRANS: mode, e.g., Major in C Major msgid "mode" msgstr "" -#: js/block.js:1526 +#: js/block-verbose.js:1686 +#: js/block.js:1650 msgid "slider" msgstr "" -#: js/block.js:1533 -#: js/SensorsBlocks.js:1001 +#: js/block-verbose.js:1693 +#: js/block.js:1657 +#: js/blocks/SensorsBlocks.js:1001 msgid "keyboard" msgstr "鍵盤" -#: js/block.js:1547 -#: js/WidgetBlocks.js:957 -#: js/WidgetBlocks.js:988 +#: js/block-verbose.js:1707 +#: js/block.js:1671 +#: js/blocks/WidgetBlocks.js:1190 +#: js/blocks/WidgetBlocks.js:1228 #.TRANS: widget for subdividing a measure into distinct rhythmic elements msgid "rhythm maker" msgstr "" -#: js/block.js:1554 -#: js/block.js:2182 -#: js/block.js:2236 -#: js/RhythmBlockPaletteBlocks.js:70 -#: js/RhythmBlockPaletteBlocks.js:251 -#: js/RhythmBlockPaletteBlocks.js:484 -#: js/RhythmBlockPaletteBlocks.js:553 -#: js/RhythmBlockPaletteBlocks.js:604 -#: js/RhythmBlockPaletteBlocks.js:874 -#: js/RhythmBlocks.js:33 -#: js/RhythmBlocks.js:356 -#: js/RhythmBlocks.js:766 -#: js/RhythmBlocks.js:806 -#: js/OrnamentBlocks.js:220 -#: js/OrnamentBlocks.js:312 -#: js/MeterBlocks.js:1367 -#: js/DictActions.js:85 -#: js/phrasemaker.js:731 -#: js/phrasemaker.js:2393 -#: js/phrasemaker.js:2436 -#: js/phrasemaker.js:2534 +#: js/block-verbose.js:1714 +#: js/block-verbose.js:2457 +#: js/block-verbose.js:2514 +#: js/block.js:1678 +#: js/block.js:2385 +#: js/block.js:2442 +#: js/blocks/MeterBlocks.js:1367 +#: js/blocks/OrnamentBlocks.js:220 +#: js/blocks/OrnamentBlocks.js:312 +#: js/blocks/RhythmBlocks.js:33 +#: js/blocks/RhythmBlocks.js:356 +#: js/blocks/RhythmBlocks.js:766 +#: js/blocks/RhythmBlocks.js:806 +#: js/blocks/RhythmBlockPaletteBlocks.js:70 +#: js/blocks/RhythmBlockPaletteBlocks.js:252 +#: js/blocks/RhythmBlockPaletteBlocks.js:485 +#: js/blocks/RhythmBlockPaletteBlocks.js:554 +#: js/blocks/RhythmBlockPaletteBlocks.js:605 +#: js/blocks/RhythmBlockPaletteBlocks.js:875 +#: js/turtleactions/DictActions.js:85 +#: js/widgets/phrasemaker.js:942 +#: js/widgets/phrasemaker.js:2656 +#: js/widgets/phrasemaker.js:2699 +#: js/widgets/phrasemaker.js:2810 #.TRANS: the value (e.g., 1/4 note) of the note being played. msgid "note value" msgstr "" -#: js/block.js:1561 -#: js/block.js:2110 -#: js/block.js:2133 -#: js/IntervalsBlocks.js:875 -#: js/OrnamentBlocks.js:312 +#: js/block-verbose.js:1721 +#: js/block-verbose.js:2382 +#: js/block-verbose.js:2405 +#: js/block.js:1685 +#: js/block.js:2310 +#: js/block.js:2333 +#: js/blocks/IntervalsBlocks.js:1071 +#: js/blocks/OrnamentBlocks.js:312 #.TRANS: calculate a relative step between notes based on semi-tones msgid "scalar interval" msgstr "" -#: js/block.js:1568 -#: js/RhythmBlocks.js:148 +#: js/block-verbose.js:1728 +#: js/block.js:1692 +#: js/blocks/RhythmBlocks.js:148 msgid "milliseconds" msgstr "" -#: js/block.js:2180 -#: js/block.js:2184 -#: js/block.js:2234 -#: js/block.js:2345 -#: js/ProgramBlocks.js:1273 -#: js/RhythmBlocks.js:712 -#: js/rhythmruler.js:834 -#: js/rhythmruler.js:961 +#: js/block-verbose.js:2455 +#: js/block-verbose.js:2459 +#: js/block-verbose.js:2512 +#: js/block-verbose.js:2628 +#: js/block.js:2383 +#: js/block.js:2387 +#: js/block.js:2440 +#: js/block.js:2556 +#: js/blocks/RhythmBlocks.js:712 +#: js/blocks/ProgramBlocks.js:1273 +#: js/widgets/rhythmruler.js:1183 +#: js/widgets/rhythmruler.js:1329 msgid "silence" msgstr "" -#: js/block.js:2265 -#: js/block.js:3134 -#: js/block.js:3151 -#: js/activity.js:2336 -#: js/activity.js:2387 -#: js/musicutils.js:2932 -#: js/musicutils.js:4287 +#: js/block-verbose.js:2548 +#: js/block-verbose.js:3492 +#: js/block-verbose.js:3509 +#: js/activity.js:2718 +#: js/activity.js:2769 +#: js/block.js:2476 +#: js/block.js:3416 +#: js/block.js:3433 +#: js/utils/musicutils.js:3780 +#: js/utils/musicutils.js:5273 +#.TRANS: the note names must be separated by single spaces #.TRANS: the note names must be separated by single spaces #.TRANS: the note names must be separated by single spaces msgid "ti la sol fa mi re do" msgstr "" -#: js/block.js:2333 +#: js/block-verbose.js:2616 +#: js/block.js:2544 +#.TRANS: scalar step #.TRANS: scalar step msgid "down" msgstr "" -#: js/block.js:2334 +#: js/block-verbose.js:2617 +#: js/block.js:2545 msgid "up" msgstr "" -#: js/block.js:3477 -#: js/block.js:3490 -#: js/ExtrasBlocks.js:612 +#: js/block-verbose.js:3026 +#: js/block.js:2950 +msgid "Silence block cannot be removed." +msgstr "" + +#: js/block-verbose.js:3824 +#: js/block.js:3748 +#: js/blocks.js:2607 +#: js/blocks.js:3218 +#: js/palette.js:618 +#: js/blocks/BooleanBlocks.js:77 +#: js/blocks/BooleanBlocks.js:167 +#: js/blocks/BooleanBlocks.js:251 +#: js/blocks/BooleanBlocks.js:335 +#: js/blocks/BooleanBlocks.js:433 +#: js/blocks/BooleanBlocks.js:539 +#: js/blocks/BooleanBlocks.js:640 +#: js/blocks/BooleanBlocks.js:741 +#: js/blocks/BooleanBlocks.js:847 +#: js/blocks/BooleanBlocks.js:948 +#: js/blocks/BooleanBlocks.js:1033 +#: js/blocks/SensorsBlocks.js:910 +msgid "true" +msgstr "" + +#: js/block-verbose.js:3824 +#: js/block.js:3748 +#: js/blocks.js:2609 +#: js/blocks.js:3220 +#: js/blocks/BooleanBlocks.js:79 +#: js/blocks/BooleanBlocks.js:169 +#: js/blocks/BooleanBlocks.js:253 +#: js/blocks/BooleanBlocks.js:337 +#: js/blocks/BooleanBlocks.js:435 +#: js/blocks/BooleanBlocks.js:541 +#: js/blocks/BooleanBlocks.js:642 +#: js/blocks/BooleanBlocks.js:743 +#: js/blocks/BooleanBlocks.js:849 +#: js/blocks/BooleanBlocks.js:950 +#: js/blocks/SensorsBlocks.js:912 +msgid "false" +msgstr "" + +#: js/block-verbose.js:3835 +#: js/block-verbose.js:3848 +#: js/block.js:3759 +#: js/block.js:3772 +#: js/blocks/ExtrasBlocks.js:615 msgid "Cartesian" msgstr "笛卡爾" -#: js/block.js:3478 -#: js/block.js:3491 -#: js/ExtrasBlocks.js:616 +#: js/block-verbose.js:3836 +#: js/block-verbose.js:3849 +#: js/block.js:3760 +#: js/block.js:3773 +#: js/blocks/ExtrasBlocks.js:619 msgid "polar" msgstr "" -#: js/block.js:3479 -#: js/block.js:3492 -#: js/ExtrasBlocks.js:620 +#: js/block-verbose.js:3837 +#: js/block-verbose.js:3850 +#: js/block.js:3761 +#: js/block.js:3774 +#: js/blocks/ExtrasBlocks.js:623 msgid "Cartesian+polar" msgstr "" -#: js/block.js:3480 -#: js/block.js:3499 -#: js/ExtrasBlocks.js:649 +#: js/block-verbose.js:3838 +#: js/block-verbose.js:3857 +#: js/block.js:3762 +#: js/block.js:3781 +#: js/blocks/ExtrasBlocks.js:652 msgid "none" msgstr "" -#: js/block.js:3493 -#: js/ExtrasBlocks.js:625 +#: js/block-verbose.js:3851 +#: js/block.js:3775 +#: js/blocks/ExtrasBlocks.js:628 msgid "treble" msgstr "" -#: js/block.js:3494 -#: js/ExtrasBlocks.js:629 +#: js/block-verbose.js:3852 +#: js/block.js:3776 +#: js/blocks/ExtrasBlocks.js:632 msgid "grand staff" msgstr "" -#: js/block.js:3495 -#: js/ExtrasBlocks.js:633 +#: js/block-verbose.js:3853 +#: js/block.js:3777 +#: js/blocks/ExtrasBlocks.js:636 msgid "mezzo-soprano" msgstr "" -#: js/block.js:3496 -#: js/ExtrasBlocks.js:637 +#: js/block-verbose.js:3854 +#: js/block.js:3778 +#: js/blocks/ExtrasBlocks.js:640 msgid "alto" msgstr "" -#: js/block.js:3497 -#: js/ExtrasBlocks.js:641 +#: js/block-verbose.js:3855 +#: js/block.js:3779 +#: js/blocks/ExtrasBlocks.js:644 msgid "tenor" msgstr "" -#: js/block.js:3498 -#: js/ExtrasBlocks.js:645 -#: js/musicutils.js:736 -#: js/synthutils.js:64 +#: js/block-verbose.js:3856 +#: js/block.js:3780 +#: js/utils/musicutils.js:1115 +#: js/utils/synthutils.js:80 +#: js/blocks/ExtrasBlocks.js:648 #.TRANS: musical instrument msgid "bass" msgstr "" -#: js/block.js:4075 +#: js/block-verbose.js:3901 +#: js/block.js:3825 +#: js/blocks.js:2600 +#: js/blocks.js:3211 +msgid "on2" +msgstr "" + +#: js/block-verbose.js:3903 +#: js/block.js:3827 +#: js/blocks.js:2602 +#: js/blocks.js:3213 +msgid "off" +msgstr "" + +#: js/block-verbose.js:4470 +#: js/block.js:4394 msgid "Not a number" msgstr "" -#: js/block.js:4082 -msgid "Octave value must be between 1 and 10." +#: js/block-verbose.js:4477 +#: js/block.js:4401 +msgid "Octave value must be between 1 and 10." +msgstr "" + +#: js/block-verbose.js:4485 +#: js/block.js:4409 +msgid "Numbers can have at most 10 digits." +msgstr "" + +#: js/activity.js:390 +#: js/activity.js:395 +msgid "Search for blocks" +msgstr "" + +#: js/activity.js:1413 +msgid "Refresh your browser to change to advanced mode." +msgstr "" + +#: js/activity.js:1418 +msgid "Refresh your browser to change to beginner mode." +msgstr "" + +#: js/activity.js:1477 +msgid "Catching mice" +msgstr "" + +#: js/activity.js:1478 +msgid "Cleaning the instruments" +msgstr "" + +#: js/activity.js:1479 +msgid "Testing key pieces" +msgstr "" + +#: js/activity.js:1480 +msgid "Sight-reading" +msgstr "" + +#: js/activity.js:1481 +msgid "Combining math and music" +msgstr "" + +#: js/activity.js:1482 +msgid "Generating more blocks" +msgstr "" + +#: js/activity.js:1483 +msgid "Do Re Mi Fa Sol La Ti Do" +msgstr "" + +#: js/activity.js:1484 +msgid "Tuning string instruments" +msgstr "" + +#: js/activity.js:1485 +msgid "Pressing random keys" +msgstr "" + +#: js/activity.js:1663 +msgid "plugins will be removed upon restart." +msgstr "" + +#: js/activity.js:1672 +msgid "show Cartesian" +msgstr "" + +#: js/activity.js:2211 +#: js/palette.js:589 +#: js/blocks/RhythmBlocks.js:923 +#: js/blocks/PitchBlocks.js:442 +#: js/blocks/PitchBlocks.js:1786 +#.TRANS: a numeric mapping of the notes in an octave based on the musical mode +msgid "scale degree" +msgstr "" + +#: js/activity.js:2214 +#: js/palette.js:598 +msgid "voice name" +msgstr "" + +#: js/activity.js:2217 +#: js/palette.js:595 +msgid "invert mode" +msgstr "" + +#: js/activity.js:2220 +msgid "output tools" +msgstr "" + +#: js/activity.js:2223 +msgid "custom note" +msgstr "" + +#: js/activity.js:2226 +msgid "accidental name" +msgstr "" + +#: js/activity.js:2229 +#: js/blocks/PitchBlocks.js:855 +msgid "east indian solfege" +msgstr "" + +#: js/activity.js:2232 +#: js/blocks/PitchBlocks.js:869 +msgid "note name" +msgstr "" + +#: js/activity.js:2235 +#: js/blocks/IntervalsBlocks.js:94 +msgid "temperament name" +msgstr "" + +#: js/activity.js:2238 +#: js/palette.js:592 +msgid "mode name" +msgstr "" + +#: js/activity.js:2241 +msgid "chord name" +msgstr "" + +#: js/activity.js:2244 +#: js/palette.js:615 +msgid "interval name" +msgstr "" + +#: js/activity.js:2247 +msgid "filter type" +msgstr "" + +#: js/activity.js:2250 +msgid "oscillator type" +msgstr "" + +#: js/activity.js:2253 +#: js/blocks.js:2479 +#: js/blocks.js:2487 +msgid "audio file" +msgstr "" + +#: js/activity.js:2256 +#: js/blocks/DrumBlocks.js:32 +msgid "noise name" +msgstr "" + +#: js/activity.js:2259 +#: js/blocks/DrumBlocks.js:75 +msgid "drum name" +msgstr "" + +#: js/activity.js:2262 +#: js/blocks/DrumBlocks.js:119 +msgid "effects name" +msgstr "" + +#: js/activity.js:2265 +msgid "wrap mode" +msgstr "" + +#: js/activity.js:2268 +msgid "load file" +msgstr "" + +#: js/activity.js:2435 +#: js/activity.js:5851 +msgid "This block is deprecated." +msgstr "" + +#: js/activity.js:2437 +#: js/activity.js:5853 +msgid "Block cannot be found." +msgstr "" + +#: js/activity.js:2645 +msgid "Saving block artwork" +msgstr "" + +#: js/activity.js:2656 +msgid "Erase" +msgstr "" + +#: js/activity.js:2683 +#: js/activity.js:2705 +msgid "Paste" +msgstr "貼上" + +#: js/activity.js:2687 +msgid "Save block help" +msgstr "" + +#: js/activity.js:2772 +msgid "Jumping to the bottom of the page." +msgstr "" + +#: js/activity.js:2778 +msgid "Scrolling up." +msgstr "" + +#: js/activity.js:2783 +msgid "Scrolling down." +msgstr "" + +#: js/activity.js:2788 +msgid "Extracting block" +msgstr "" + +#: js/activity.js:2796 +msgid "Moving block up." msgstr "" -#: js/block.js:4090 -msgid "Numbers can have at most 10 digits." +#: js/activity.js:2817 +msgid "Moving block down." msgstr "" -#: js/notation.js:353 -msgid "Lilypond cannot process pickup of " +#: js/activity.js:2838 +msgid "Moving block left." msgstr "" -#: js/turtledefs.js:40 -#.TRANS: put the URL to the guide here, e.g., https://github.com/sugarlabs/turtleblocksjs/tree/master/guide/README.md -msgid "guide url" +#: js/activity.js:2855 +msgid "Moving block right." msgstr "" -#: js/turtledefs.js:85 -#: js/turtledefs.js:437 -msgid "Turtle Blocks is a Logo-inspired turtle that draws colorful pictures with snap-together visual-programming blocks." +#: js/activity.js:2870 +msgid "Jump to home position." msgstr "" -#: js/turtledefs.js:118 -#: js/turtledefs.js:220 -msgid "search" +#: js/activity.js:2897 +msgid "Hide blocks" msgstr "" -#: js/turtledefs.js:120 -#: js/turtledefs.js:222 -#: js/WidgetBlocks.js:437 -#: js/MeterBlocks.js:1343 -#.TRANS: musical meter (time signature), e.g., 4:4 -msgid "meter" +#: js/activity.js:4500 +msgid "Click the run button to run the project." msgstr "" -#: js/turtledefs.js:122 -#: js/turtledefs.js:224 -msgid "intervals" +#: js/activity.js:5692 +msgid "Show/hide block" msgstr "" -#: js/turtledefs.js:124 -#: js/turtledefs.js:226 -msgid "ornament" +#: js/activity.js:5698 +msgid "Expand/collapse blocks" msgstr "" -#: js/turtledefs.js:125 -#: js/turtledefs.js:227 -#: js/VolumeBlocks.js:362 -#: js/VolumeBlocks.js:502 -#: js/VolumeBlocks.js:545 -msgid "volume" +#: js/activity.js:5976 +msgid "Could not parse JSON input." msgstr "" -#: js/turtledefs.js:129 -#: js/turtledefs.js:231 -msgid "boxes" +#: js/activity.js:6475 +#: js/activity.js:6580 +#: js/activity.js:6631 +msgid "Cannot load project from the file. Please check the file type." msgstr "" -#: js/turtledefs.js:130 -#: js/turtledefs.js:232 -msgid "widgets" +#: js/activity.js:6917 +msgid "Invalid parameters" msgstr "" -#: js/turtledefs.js:131 -#: js/turtledefs.js:233 -#: js/phrasemaker.js:824 -msgid "graphics" +#: js/blocks.js:1212 +#: js/blocks.js:3444 +#: js/blocks.js:3834 +#: js/blocks.js:3865 +#: js/blocks.js:3914 +#: js/blocks.js:3949 +#: js/blocks.js:6586 +#: js/palette.js:509 +#: js/palette.js:638 +#: js/palette.js:1105 +#: js/blocks/BoxesBlocks.js:282 +#: js/blocks/BoxesBlocks.js:285 +#: js/blocks/BoxesBlocks.js:405 +#: js/blocks/BoxesBlocks.js:594 +msgid "box" +msgstr "方塊" + +#: js/blocks.js:1713 +msgid "Consider breaking this stack into parts." msgstr "" -#: js/turtledefs.js:134 -#: js/turtledefs.js:236 -msgid "boolean" +#: js/blocks.js:2472 +#: js/palette.js:653 +#: js/blocks/MediaBlocks.js:602 +msgid "open file" msgstr "" -#: js/turtledefs.js:137 -#: js/turtledefs.js:239 -#: js/HeapBlocks.js:59 -#: js/status.js:147 -msgid "heap" +#: js/blocks.js:3247 +#: js/palette.js:574 +#: js/blocks/MediaBlocks.js:892 +#: js/blocks/MediaBlocks.js:963 +msgid "text" +msgstr "文字" + +#: js/blocks.js:3443 +#: js/palette.js:641 +#: js/palette.js:642 +#: js/blocks/BoxesBlocks.js:514 +msgid "store in box" msgstr "" -#: js/turtledefs.js:138 -#: js/turtledefs.js:240 -#: js/ProgramBlocks.js:495 -#: js/DictBlocks.js:142 -msgid "dictionary" +#: js/blocks.js:3448 +#: js/blocks.js:3888 +#: js/blocks.js:3923 +#: js/blocks.js:3958 +#: js/blocks.js:5862 +#: js/blocks.js:5883 +#: js/blocks/BoxesBlocks.js:772 +msgid "box1" msgstr "" -#: js/turtledefs.js:139 -#: js/turtledefs.js:241 -msgid "ensemble" +#: js/blocks.js:3450 +#: js/blocks.js:3890 +#: js/blocks.js:3925 +#: js/blocks.js:3960 +#: js/blocks.js:5864 +#: js/blocks.js:5885 +#: js/blocks/BoxesBlocks.js:663 +msgid "box2" msgstr "" -#: js/turtledefs.js:140 -#: js/turtledefs.js:242 -msgid "extras" +#: js/blocks.js:4122 +#: js/palette.js:639 +#: js/palette.js:644 +#: js/palette.js:1041 +#: js/blocks/BoxesBlocks.js:591 +msgid "store in" +msgstr "放入" + +#: js/blocks.js:4122 +#: js/blocks/BoxesBlocks.js:595 +#: js/blocks/DictBlocks.js:215 +#: js/blocks/DictBlocks.js:289 +#: js/blocks/EnsembleBlocks.js:391 +#: js/blocks/EnsembleBlocks.js:402 +#: js/blocks/MediaBlocks.js:746 +#: js/blocks/PitchBlocks.js:656 +#: js/blocks/PitchBlocks.js:934 +#: js/blocks/PitchBlocks.js:1866 +#: js/blocks/ProgramBlocks.js:390 +#: js/blocks/ProgramBlocks.js:495 +#: js/blocks/ProgramBlocks.js:658 +#: js/blocks/ToneBlocks.js:1025 +msgid "name" msgstr "" -#: js/turtledefs.js:142 -#: js/turtledefs.js:244 -#.TRANS: program as in computer program -#.TRANS: program as in computer program -msgid "program" +#: js/blocks.js:4122 +#: js/blocks/BoxesBlocks.js:75 +#: js/blocks/BoxesBlocks.js:595 +#: js/blocks/DictBlocks.js:289 +#: js/blocks/DictBlocks.js:430 +#: js/blocks/HeapBlocks.js:544 +#: js/blocks/RhythmBlocks.js:1130 +msgid "value" +msgstr "值" + +#: js/blocks.js:4465 +msgid "Forever loop detected inside a note value block. Unexpected things may happen." msgstr "" -#: js/turtledefs.js:143 -#: js/turtledefs.js:245 -msgid "my blocks" +#: js/blocks.js:4988 +msgid "There is no block selected." msgstr "" -#: js/turtledefs.js:185 -#: js/turtledefs.js:281 -msgid "artwork" +#: js/blocks.js:5091 +#: js/blocks/MediaBlocks.js:888 +msgid "show" +msgstr "顯示" + +#: js/blocks.js:5094 +#: js/blocks/MediaBlocks.js:803 +#.TRANS: Avatar is the image used to determine the appearance of the mouse. +msgid "avatar" msgstr "" -#: js/turtledefs.js:185 -#: js/turtledefs.js:281 -msgid "logic" +#: js/blocks.js:5097 +#: js/blocks/ToneBlocks.js:1010 +#: js/widgets/sampler.js:975 +#.TRANS: The sound sample that the user uploads. +msgid "sample" msgstr "" -#: js/turtledefs.js:185 -#: js/turtledefs.js:281 -msgid "music" +#: js/lilypond.js:606 +msgid "brown rat" msgstr "" -#: js/turtledefs.js:187 -#: js/turtledefs.js:463 -msgid "Music Blocks is a collection of tools for exploring fundamental musical concepts in a fun way." +#: js/lilypond.js:607 +msgid "mole" msgstr "" -#: js/turtledefs.js:436 -msgid "Welcome to Turtle Blocks" +#: js/lilypond.js:608 +msgid "chipmunk" msgstr "" -#: js/turtledefs.js:438 -#: js/turtledefs.js:465 -#: js/turtledefs.js:774 -#: js/turtledefs.js:805 -msgid "The current version is" +#: js/lilypond.js:609 +msgid "red squirrel" msgstr "" -#: js/turtledefs.js:446 -#: js/turtledefs.js:483 -msgid "Click the run button to run the project in fast mode." +#: js/lilypond.js:610 +msgid "guinea pig" msgstr "" -#: js/turtledefs.js:452 -msgid "Stop the turtle." +#: js/lilypond.js:611 +msgid "capybara" msgstr "" -#: js/turtledefs.js:454 -#: js/turtledefs.js:491 -msgid "You can also type Alt-S to stop." +#: js/lilypond.js:612 +msgid "coypu" msgstr "" -#: js/turtledefs.js:462 -#: js/help.js:333 -msgid "Welcome to Music Blocks" +#: js/lilypond.js:613 +msgid "black rat" msgstr "" -#: js/turtledefs.js:472 -#: js/help.js:334 -msgid "Meet Mr. Mouse!" +#: js/lilypond.js:614 +msgid "grey squirrel" msgstr "" -#: js/turtledefs.js:473 -msgid "Mr Mouse is our Music Blocks conductor." +#: js/lilypond.js:615 +msgid "flying squirrel" msgstr "" -#: js/turtledefs.js:475 -msgid "Mr Mouse encourages you to explore Music Blocks." +#: js/lilypond.js:616 +msgid "bat" msgstr "" -#: js/turtledefs.js:477 -msgid "Let us start our tour!" +#: js/lilypond.js:749 +#: js/lilypond.js:913 +#: js/lilypond.js:951 +#: js/blocks/ActionBlocks.js:1256 +#: js/blocks/ExtrasBlocks.js:556 +msgid "start drum" msgstr "" -#: js/turtledefs.js:489 -msgid "Stop the music (and the mice)." +#: js/logo.js:61 +msgid "Not a valid pitch name" msgstr "" -#: js/turtledefs.js:499 -msgid "Record your project as video." +#: js/logo.js:507 +#: js/blocks/ProgramBlocks.js:258 +#: js/blocks/ProgramBlocks.js:427 +msgid "You must select a file." msgstr "" -#: js/turtledefs.js:505 -msgid "Toggle Fullscreen mode." +#: js/logo.js:1696 +msgid "Playback is ready." msgstr "" -#: js/turtledefs.js:511 -msgid "Initialize a new project." +#: js/macros.js:711 +#: js/utils/musicutils.js:1162 +#: js/utils/synthutils.js:202 +#.TRANS: animal sound effect +msgid "duck" msgstr "" -#: js/turtledefs.js:517 -msgid "You can also load projects from the file system." +#: js/notation.js:353 +msgid "Lilypond cannot process pickup of " msgstr "" -#: js/turtledefs.js:522 -#: js/StringHelper.js:46 -msgid "Delete" +#: js/palette.js:571 +msgid "grid" msgstr "" -#: js/turtledefs.js:523 -msgid "To delete a block, just right-click on it, then you will be able to see the delete option" +#: js/palette.js:580 +msgid "effect" msgstr "" -#: js/turtledefs.js:528 -#: js/activity.js:2270 -#: js/LocalCard.js:31 -msgid "Copy" +#: js/palette.js:586 +msgid "sargam" msgstr "" -#: js/turtledefs.js:529 -msgid "To copy a block, just right-click on it, then you will be able to see the copy option" +#: js/palette.js:601 +#: js/blocks/PitchBlocks.js:1209 +msgid "custom pitch" msgstr "" -#: js/turtledefs.js:535 -msgid "To extract a block, just right-click on it, then you will be able to see the extract option" +#: js/palette.js:609 +msgid "accidental" msgstr "" -#: js/turtledefs.js:542 -#: js/turtledefs.js:552 -#: js/turtledefs.js:573 -msgid "Save your project to a file." +#: js/palette.js:633 +#: js/blocks/PitchBlocks.js:405 +msgid "pitch converter" msgstr "" -#: js/turtledefs.js:549 -#: js/turtledefs.js:570 -msgid "save" +#: js/piemenus.js:200 +#: js/utils/musicutils.js:1187 +#: js/utils/musicutils.js:1207 +#: js/widgets/musickeyboard.js:2341 +#: js/widgets/phrasemaker.js:1908 +#: js/widgets/sampler.js:810 +#.TRANS: double sharp is a music term related to pitch +msgid "double sharp" msgstr "" -#: js/turtledefs.js:556 -#: js/turtledefs.js:577 -msgid "Save graphics from your project to as SVG." +#: js/piemenus.js:201 +#: js/utils/musicutils.js:1185 +#: js/utils/musicutils.js:1208 +#: js/blocks/PitchBlocks.js:1539 +#: js/turtleactions/PitchActions.js:323 +#: js/widgets/musickeyboard.js:2342 +#: js/widgets/phrasemaker.js:1909 +#: js/widgets/sampler.js:811 +#.TRANS: sharp is a music term related to pitch +#.TRANS: sharp is a half-step up in pitch +msgid "sharp" msgstr "" -#: js/turtledefs.js:560 -#: js/turtledefs.js:581 -msgid "Save graphics from your project as PNG." +#: js/piemenus.js:202 +#: js/utils/musicutils.js:1183 +#: js/utils/musicutils.js:1209 +#: js/widgets/musickeyboard.js:2343 +#: js/widgets/phrasemaker.js:1910 +#: js/widgets/sampler.js:812 +#.TRANS: natural is a music term related to pitch +msgid "natural" msgstr "" -#: js/turtledefs.js:564 -#: js/turtledefs.js:597 -msgid "Save block artwork as an SVG file." +#: js/piemenus.js:203 +#: js/utils/musicutils.js:1181 +#: js/utils/musicutils.js:1210 +#: js/blocks/PitchBlocks.js:1498 +#: js/turtleactions/PitchActions.js:326 +#: js/widgets/musickeyboard.js:2344 +#: js/widgets/phrasemaker.js:1911 +#: js/widgets/sampler.js:813 +#.TRANS: flat is a music term related to pitch +#.TRANS: flat is a half-step down in pitch +msgid "flat" msgstr "" -#: js/turtledefs.js:585 -msgid "Save audio from your project as WAV." +#: js/piemenus.js:204 +#: js/utils/musicutils.js:1179 +#: js/utils/musicutils.js:1211 +#: js/widgets/musickeyboard.js:2345 +#: js/widgets/phrasemaker.js:1912 +#: js/widgets/sampler.js:814 +#.TRANS: double flat is a music term related to pitch +msgid "double flat" msgstr "" -#: js/turtledefs.js:589 -msgid "Save your project to as an ABC file." +#: js/piemenus.js:2864 +#: js/utils/musicutils.js:1006 +#: js/blocks/PitchBlocks.js:1385 +#.TRANS: unison is a music term related to intervals +#.TRANS: unison means the note is the same as the current note +msgid "unison" msgstr "" -#: js/turtledefs.js:593 -msgid "Save your project to as a Lilypond file." +#: js/piemenus.js:3018 +#: js/piemenus.js:3091 +#: js/utils/musicutils.js:1014 +#: js/utils/musicutils.js:1189 +#: js/utils/musicutils.js:1326 +#.TRANS: major is a music term related to intervals and mode +msgid "major" msgstr "" -#: js/turtledefs.js:604 -msgid "Load samples from server" +#: js/piemenus.js:3018 +#: js/piemenus.js:3091 +#: js/utils/musicutils.js:1032 +#.TRANS: modal scale for music +msgid "ionian" msgstr "" -#: js/turtledefs.js:605 -msgid "This button opens a viewer for loading example projects." +#: js/piemenus.js:3020 +#: js/piemenus.js:3095 +#: js/utils/musicutils.js:1012 +#: js/utils/musicutils.js:1190 +#: js/utils/musicutils.js:1323 +#.TRANS: minor is a music term related to intervals and mode +msgid "minor" msgstr "" -#: js/turtledefs.js:611 -msgid "Palette buttons" +#: js/piemenus.js:3020 +#: js/piemenus.js:3095 +#: js/utils/musicutils.js:1042 +#.TRANS: modal scale for music +msgid "aeolian" msgstr "" -#: js/turtledefs.js:612 -msgid "This toolbar contains the palette buttons including Rhythm Pitch Tone Action and more." +#: js/piemenus.js:3410 +msgid "Duplicate" msgstr "" -#: js/turtledefs.js:614 -msgid "Click to show the palettes of blocks and drag blocks from the palettes onto the canvas to use them." +#: js/piemenus.js:3412 +msgid "Move to trash" msgstr "" -#: js/turtledefs.js:620 -msgid "Cartesian/Polar" +#: js/piemenus.js:3413 +#: js/widgets/timbre.js:968 +#: planet/js/StringHelper.js:69 +msgid "Close" msgstr "" -#: js/turtledefs.js:621 -msgid "Show or hide a coordinate grid." +#: js/piemenus.js:3419 +msgid "Save stack" msgstr "" -#: js/turtledefs.js:627 -msgid "Clear the screen and return the mice to their initial positions." +#: js/piemenus.js:3449 +msgid "In order to copy a sample, you must reload the widget, import the sample again, and export it." msgstr "" -#: js/turtledefs.js:633 -msgid "Collapse the graphics window." +#: js/piemenus.js:3812 +msgid "You have chosen key " msgstr "" -#: js/turtledefs.js:638 -#: js/activity.js:4256 -#: js/activity.js:4256 -msgid "Home" +#: js/piemenus.js:3816 +msgid " for your pitch preview." msgstr "" -#: js/turtledefs.js:639 -msgid "Return all blocks to the center of the screen." +#: js/turtle-singer.js:1363 +#.TRANS: partials are weighted components in a harmonic series +msgid "You must have at least one Partial block inside of a Weighted-partial block" msgstr "" -#: js/turtledefs.js:644 -msgid "Show/hide blocks" -msgstr "顯示/隱藏區塊" +#: js/turtle-singer.js:2077 +msgid "synth cannot play chords." +msgstr "" -#: js/turtledefs.js:645 -msgid "Hide or show the blocks and the palettes." +#: js/utils/musicutils.js:505 +#: js/utils/musicutils.js:645 +#: js/widgets/pitchdrummatrix.js:228 +#: js/widgets/musickeyboard.js:2885 +msgid "rest" msgstr "" -#: js/turtledefs.js:650 -msgid "Expand/collapse collapsable blocks" +#: js/utils/musicutils.js:689 +msgid "Perfect unison" msgstr "" -#: js/turtledefs.js:651 -msgid "Expand or collapse start and action stacks." +#: js/utils/musicutils.js:689 +msgid "Diminished second" msgstr "" -#: js/turtledefs.js:658 -#: js/activity.js:4265 -msgid "Decrease block size" +#: js/utils/musicutils.js:690 +msgid "Minor second" msgstr "" -#: js/turtledefs.js:659 -msgid "Decrease the size of the blocks." +#: js/utils/musicutils.js:690 +msgid "Augmented unison" msgstr "" -#: js/turtledefs.js:664 -#: js/activity.js:4267 -msgid "Increase block size" +#: js/utils/musicutils.js:691 +msgid "Major second" msgstr "" -#: js/turtledefs.js:665 -msgid "Increase the size of the blocks." +#: js/utils/musicutils.js:691 +msgid "Diminished third" msgstr "" -#: js/turtledefs.js:670 -msgid "Expand/collapse option toolbar" +#: js/utils/musicutils.js:692 +msgid "Minor third" msgstr "" -#: js/turtledefs.js:671 -msgid "Click this button to expand or collapse the auxillary toolbar." +#: js/utils/musicutils.js:692 +msgid "Augmented second" msgstr "" -#: js/turtledefs.js:676 -msgid "Run slow" +#: js/utils/musicutils.js:693 +msgid "Major third" msgstr "" -#: js/turtledefs.js:677 -msgid "Click to run the project in slow mode." +#: js/utils/musicutils.js:693 +msgid "Diminished fourth" msgstr "" -#: js/turtledefs.js:683 -msgid "Click to run the project step by step." +#: js/utils/musicutils.js:694 +msgid "Perfect fourth" msgstr "" -#: js/turtledefs.js:690 -msgid "Display statistics about your Music project." +#: js/utils/musicutils.js:694 +msgid "Augmented third" msgstr "" -#: js/turtledefs.js:697 -msgid "Delete a selected plugin." +#: js/utils/musicutils.js:695 +msgid "Diminished fifth" msgstr "" -#: js/turtledefs.js:704 -msgid "Enable scrolling" +#: js/utils/musicutils.js:695 +msgid "Augmented fourth" msgstr "" -#: js/turtledefs.js:705 -msgid "You can scroll the blocks on the canvas." +#: js/utils/musicutils.js:696 +msgid "Perfect fifth" msgstr "" -#: js/turtledefs.js:714 -msgid "Wrap Turtle" +#: js/utils/musicutils.js:696 +msgid "Diminished sixth" msgstr "" -#: js/turtledefs.js:715 -msgid "Turn Turtle wrapping On or Off." +#: js/utils/musicutils.js:697 +msgid "Minor sixth" msgstr "" -#: js/turtledefs.js:725 -msgid "Restore blocks from the trash." +#: js/utils/musicutils.js:697 +msgid "Augmented fifth" msgstr "" -#: js/turtledefs.js:732 -msgid "Switch mode" +#: js/utils/musicutils.js:698 +msgid "Major sixth" msgstr "" -#: js/turtledefs.js:733 -msgid "Switch between beginner and advance modes." +#: js/utils/musicutils.js:698 +msgid "Diminished seventh" msgstr "" -#: js/turtledefs.js:739 -msgid "Select your language preference." +#: js/utils/musicutils.js:699 +msgid "Minor seventh" msgstr "" -#: js/turtledefs.js:745 -msgid "Keyboard shortcuts" +#: js/utils/musicutils.js:699 +msgid "Augmented sixth" msgstr "" -#: js/turtledefs.js:746 -msgid "You can type d to create a do block and r to create a re block etc." +#: js/utils/musicutils.js:700 +msgid "Major seventh" msgstr "" -#: js/turtledefs.js:753 -msgid "Show these messages." +#: js/utils/musicutils.js:700 +msgid "Diminished octave" msgstr "" -#: js/turtledefs.js:759 -#: js/turtledefs.js:790 -#: js/help.js:335 -msgid "Guide" +#: js/utils/musicutils.js:701 +msgid "Perfect octave" msgstr "" -#: js/turtledefs.js:760 -msgid "A detailed guide to Turtle Blocks is available." +#: js/utils/musicutils.js:701 +msgid "Augmented seventh" msgstr "" -#: js/turtledefs.js:764 -msgid "Turtle Blocks Guide" +#: js/utils/musicutils.js:702 +msgid "Minor ninth" msgstr "" -#: js/turtledefs.js:767 -#: js/turtledefs.js:798 -#: js/help.js:336 -msgid "About" +#: js/utils/musicutils.js:702 +msgid "Augmented octave" msgstr "" -#: js/turtledefs.js:768 -msgid "Turtle Blocks is an open source collection of tools for exploring musical concepts." +#: js/utils/musicutils.js:703 +msgid "Major ninth" msgstr "" -#: js/turtledefs.js:770 -msgid "A full list of contributors can be found in the Turtle Blocks GitHub repository." +#: js/utils/musicutils.js:703 +msgid "Diminished tenth" msgstr "" -#: js/turtledefs.js:772 -msgid "Turtle Blocks is licensed under the AGPL." +#: js/utils/musicutils.js:704 +msgid "Minor tenth" msgstr "" -#: js/turtledefs.js:780 -msgid "Turtle Blocks GitHub repository" +#: js/utils/musicutils.js:704 +msgid "Augmented ninth" msgstr "" -#: js/turtledefs.js:783 -#: js/turtledefs.js:814 -#: js/help.js:337 -#: js/help.js:359 -msgid "Congratulations." +#: js/utils/musicutils.js:705 +msgid "Major tenth" msgstr "" -#: js/turtledefs.js:784 -msgid "You have finished the tour. Please enjoy Turtle Blocks!" +#: js/utils/musicutils.js:705 +msgid "Diminished eleventh" msgstr "" -#: js/turtledefs.js:791 -msgid "A detailed guide to Music Blocks is available." +#: js/utils/musicutils.js:706 +msgid "Perfect eleventh" msgstr "" -#: js/turtledefs.js:795 -#: js/SaveInterface.js:76 -msgid "Music Blocks Guide" +#: js/utils/musicutils.js:706 +msgid "Augmented tenth" msgstr "" -#: js/turtledefs.js:799 -msgid "Music Blocks is an open source collection of tools for exploring musical concepts." +#: js/utils/musicutils.js:707 +msgid "Diminished twelfth" msgstr "" -#: js/turtledefs.js:801 -msgid "A full list of contributors can be found in the Music Blocks GitHub repository." +#: js/utils/musicutils.js:707 +msgid "Augmented eleventh" msgstr "" -#: js/turtledefs.js:803 -msgid "Music Blocks is licensed under the AGPL." +#: js/utils/musicutils.js:708 +msgid "Perfect twelfth" msgstr "" -#: js/turtledefs.js:811 -msgid "Music Blocks GitHub repository" +#: js/utils/musicutils.js:708 +msgid "Diminished thirteenth" msgstr "" -#: js/turtledefs.js:815 -msgid "You have finished the tour. Please enjoy Music Blocks!" +#: js/utils/musicutils.js:709 +msgid "Minor thirteenth" msgstr "" -#: js/activity.js:369 -msgid "Search for blocks" +#: js/utils/musicutils.js:709 +msgid "Augmented fifth, plus an octave" msgstr "" -#: js/activity.js:1145 -msgid "Refresh your browser to change to advanced mode." +#: js/utils/musicutils.js:710 +msgid "Major thirteenth" msgstr "" -#: js/activity.js:1150 -msgid "Refresh your browser to change to beginner mode." +#: js/utils/musicutils.js:710 +msgid "Diminished seventh, plus an octave" msgstr "" -#: js/activity.js:1184 -msgid "Catching mice" +#: js/utils/musicutils.js:838 +#.TRANS: ordinal number. Please keep exactly one space between each number. +msgid "1st 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th" msgstr "" -#: js/activity.js:1185 -msgid "Cleaning the instruments" +#: js/utils/musicutils.js:1008 +#: js/utils/musicutils.js:1191 +#: js/utils/musicutils.js:1325 +#.TRANS: augmented is a music term related to intervals +msgid "augmented" msgstr "" -#: js/activity.js:1186 -msgid "Testing key pieces" +#: js/utils/musicutils.js:1010 +#: js/utils/musicutils.js:1192 +#: js/utils/musicutils.js:1324 +#.TRANS: diminished is a music term related to intervals and mode +msgid "diminished" msgstr "" -#: js/activity.js:1187 -msgid "Sight-reading" +#: js/utils/musicutils.js:1016 +#: js/utils/musicutils.js:1322 +#: js/blocks/IntervalsBlocks.js:649 +#: js/turtleactions/IntervalsActions.js:120 +#: js/turtleactions/IntervalsActions.js:124 +#.TRANS: perfect is a music term related to intervals +msgid "perfect" msgstr "" -#: js/activity.js:1188 -msgid "Combining math and music" +#: js/utils/musicutils.js:1018 +#.TRANS: twelve semi-tone scale for music +msgid "chromatic" msgstr "" -#: js/activity.js:1189 -msgid "Generating more blocks" +#: js/utils/musicutils.js:1019 +msgid "algerian" msgstr "" -#: js/activity.js:1190 -msgid "Do Re Mi Fa Sol La Ti Do" +#: js/utils/musicutils.js:1020 +msgid "spanish" msgstr "" -#: js/activity.js:1191 -msgid "Tuning string instruments" +#: js/utils/musicutils.js:1022 +#.TRANS: modal scale in music +msgid "octatonic" msgstr "" -#: js/activity.js:1192 -msgid "Pressing random keys" +#: js/utils/musicutils.js:1024 +#.TRANS: harmonic major scale in music +msgid "harmonic major" msgstr "" -#: js/activity.js:1351 -msgid "plugins will be removed upon restart." +#: js/utils/musicutils.js:1026 +#.TRANS: natural minor scales in music +msgid "natural minor" msgstr "" -#: js/activity.js:1360 -msgid "show Cartesian" +#: js/utils/musicutils.js:1028 +#.TRANS: harmonic minor scale in music +msgid "harmonic minor" msgstr "" -#: js/activity.js:1842 -msgid "output tools" +#: js/utils/musicutils.js:1030 +#.TRANS: melodic minor scale in music +msgid "melodic minor" msgstr "" -#: js/activity.js:1845 -msgid "custom note" +#: js/utils/musicutils.js:1034 +#.TRANS: modal scale for music +msgid "dorian" msgstr "" -#: js/activity.js:1848 -msgid "accidental name" +#: js/utils/musicutils.js:1036 +#.TRANS: modal scale for music +msgid "phrygian" msgstr "" -#: js/activity.js:1851 -#: js/PitchBlocks.js:855 -msgid "east indian solfege" +#: js/utils/musicutils.js:1038 +#.TRANS: modal scale for music +msgid "lydian" msgstr "" -#: js/activity.js:1854 -#: js/PitchBlocks.js:869 -msgid "note name" +#: js/utils/musicutils.js:1040 +#.TRANS: modal scale for music +msgid "mixolydian" msgstr "" -#: js/activity.js:1857 -#: js/IntervalsBlocks.js:94 -msgid "temperament name" +#: js/utils/musicutils.js:1044 +#.TRANS: modal scale for music +msgid "locrian" msgstr "" -#: js/activity.js:1863 -msgid "chord name" +#: js/utils/musicutils.js:1046 +#.TRANS: minor jazz scale for music +msgid "jazz minor" msgstr "" -#: js/activity.js:1869 -msgid "filter type" +#: js/utils/musicutils.js:1048 +#.TRANS: bebop scale for music +msgid "bebop" msgstr "" -#: js/activity.js:1872 -msgid "oscillator type" +#: js/utils/musicutils.js:1049 +msgid "arabic" msgstr "" -#: js/activity.js:1878 -#: js/DrumBlocks.js:32 -msgid "noise name" +#: js/utils/musicutils.js:1050 +msgid "byzantine" msgstr "" -#: js/activity.js:1881 -#: js/DrumBlocks.js:75 -msgid "drum name" +#: js/utils/musicutils.js:1052 +#.TRANS: musical scale for music by Verdi +msgid "enigmatic" msgstr "" -#: js/activity.js:1884 -#: js/DrumBlocks.js:119 -msgid "effects name" +#: js/utils/musicutils.js:1053 +msgid "ethiopian" msgstr "" -#: js/activity.js:1887 -msgid "wrap mode" +#: js/utils/musicutils.js:1055 +#.TRANS: Ethiopic scale for music +msgid "geez" msgstr "" -#: js/activity.js:1890 -msgid "load file" +#: js/utils/musicutils.js:1056 +msgid "hindu" msgstr "" -#: js/activity.js:2056 -msgid "This block is deprecated." +#: js/utils/musicutils.js:1057 +msgid "hungarian" msgstr "" -#: js/activity.js:2058 -msgid "Block cannot be found." +#: js/utils/musicutils.js:1059 +#.TRANS: minor Romanian scale for music +msgid "romanian minor" msgstr "" -#: js/activity.js:2266 -msgid "Saving block artwork" +#: js/utils/musicutils.js:1060 +msgid "spanish gypsy" msgstr "" -#: js/activity.js:2277 -msgid "Erase" +#: js/utils/musicutils.js:1062 +#.TRANS: musical scale for Mid-Eastern music +msgid "maqam" msgstr "" -#: js/activity.js:2301 -#: js/activity.js:2323 -msgid "Paste" -msgstr "貼上" +#: js/utils/musicutils.js:1064 +#.TRANS: minor blues scale for music +msgid "minor blues" +msgstr "" -#: js/activity.js:2305 -msgid "Save block help" +#: js/utils/musicutils.js:1066 +#.TRANS: major blues scale for music +msgid "major blues" msgstr "" -#: js/activity.js:2390 -msgid "Jumping to the bottom of the page." +#: js/utils/musicutils.js:1067 +msgid "whole tone" msgstr "" -#: js/activity.js:2396 -msgid "Scrolling up." +#: js/utils/musicutils.js:1069 +#.TRANS: pentatonic is a general term that means "five note scale". This scale is typically known as "minor pentatonic" +msgid "minor pentatonic" msgstr "" -#: js/activity.js:2401 -msgid "Scrolling down." +#: js/utils/musicutils.js:1071 +#.TRANS: pentatonic is a general term that means "five note scale". This scale is typically known as "major pentatonic" +msgid "major pentatonic" msgstr "" -#: js/activity.js:2406 -msgid "Extracting block" +#: js/utils/musicutils.js:1072 +msgid "chinese" msgstr "" -#: js/activity.js:2414 -msgid "Moving block up." +#: js/utils/musicutils.js:1073 +msgid "egyptian" msgstr "" -#: js/activity.js:2435 -msgid "Moving block down." +#: js/utils/musicutils.js:1075 +#.TRANS: https://en.wikipedia.org/wiki/Hirajoshi_scale NOTE: There are three different versions of this scale +msgid "hirajoshi" msgstr "" -#: js/activity.js:2456 -msgid "Moving block left." +#: js/utils/musicutils.js:1076 +msgid "Japan" msgstr "" -#: js/activity.js:2473 -msgid "Moving block right." +#: js/utils/musicutils.js:1078 +#.TRANS: https://en.wikipedia.org/wiki/In_scale and https://en.wikipedia.org/wiki/Sakura_Sakura +msgid "in" msgstr "" -#: js/activity.js:2488 -msgid "Jump to home position." +#: js/utils/musicutils.js:1080 +#.TRANS: https://en.wikipedia.org/wiki/Miny%C5%8D_scale +msgid "minyo" msgstr "" -#: js/activity.js:2515 -msgid "Hide blocks" +#: js/utils/musicutils.js:1082 +#.TRANS: Italian mathematician +msgid "fibonacci" msgstr "" -#: js/activity.js:3389 -msgid "Click the run button to run the project." +#: js/utils/musicutils.js:1083 +#: js/utils/musicutils.js:1134 +#: js/utils/musicutils.js:1177 +#: js/utils/musicutils.js:1199 +#: js/utils/synthutils.js:134 +#: js/blocks/IntervalsBlocks.js:1124 +#: js/blocks/ToneBlocks.js:946 +#: js/blocks/VolumeBlocks.js:411 +#: js/blocks/WidgetBlocks.js:399 +#: js/blocks/WidgetBlocks.js:404 +#: js/turtleactions/VolumeActions.js:218 +#: js/widgets/modewidget.js:919 +#.TRANS: customize voice +msgid "custom" msgstr "" -#: js/activity.js:3456 -#: js/SaveInterface.js:131 -#: js/SaveInterface.js:204 -#: js/SaveInterface.js:262 -#: js/SaveInterface.js:389 -#: js/SaveInterface.js:417 -#: js/ProjectStorage.js:27 -#: js/GlobalPlanet.js:467 -#: js/GlobalPlanet.js:469 -#: js/GlobalPlanet.js:495 -#.TRANS: default project title when saving as Lilypond -msgid "My Project" +#: js/utils/musicutils.js:1085 +#: js/utils/musicutils.js:1531 +#: js/blocks/WidgetBlocks.js:176 +#.TRANS: highpass filter +msgid "highpass" msgstr "" -#: js/activity.js:4261 -msgid "Show/hide block" +#: js/utils/musicutils.js:1087 +#: js/utils/musicutils.js:1532 +#.TRANS: lowpass filter +msgid "lowpass" msgstr "" -#: js/activity.js:4263 -msgid "Expand/collapse blocks" +#: js/utils/musicutils.js:1089 +#: js/utils/musicutils.js:1533 +#.TRANS: bandpass filter +msgid "bandpass" msgstr "" -#: js/activity.js:4381 -msgid "Could not parse JSON input." +#: js/utils/musicutils.js:1091 +#: js/utils/musicutils.js:1534 +#.TRANS: high-shelf filter +msgid "highshelf" msgstr "" -#: js/activity.js:4684 -#: js/activity.js:4771 -#: js/activity.js:4821 -msgid "Cannot load project from the file. Please check the file type." +#: js/utils/musicutils.js:1093 +#: js/utils/musicutils.js:1535 +#.TRANS: low-shelf filter +msgid "lowshelf" msgstr "" -#: js/activity.js:5051 -msgid "Invalid parameters" +#: js/utils/musicutils.js:1095 +#: js/utils/musicutils.js:1536 +#.TRANS: notch-shelf filter +msgid "notch" msgstr "" -#: js/turtle-singer.js:1334 -#.TRANS: partials are weighted components in a harmonic series -msgid "You must have at least one Partial block inside of a Weighted-partial block" +#: js/utils/musicutils.js:1097 +#: js/utils/musicutils.js:1537 +#.TRANS: all-pass filter +msgid "allpass" msgstr "" -#: js/turtle-singer.js:2048 -msgid "synth cannot play chords." +#: js/utils/musicutils.js:1099 +#: js/utils/musicutils.js:1538 +#.TRANS: peaking filter +msgid "peaking" msgstr "" -#: js/lilypond.js:614 -msgid "brown rat" +#: js/utils/musicutils.js:1100 +#: js/utils/musicutils.js:1546 +#: js/utils/synthutils.js:126 +#: js/blocks/PitchBlocks.js:85 +#.TRANS: sine wave +msgid "sine" msgstr "" -#: js/lilypond.js:615 -msgid "mole" +#: js/utils/musicutils.js:1101 +#: js/utils/musicutils.js:1547 +#: js/utils/synthutils.js:128 +#: js/blocks/PitchBlocks.js:39 +#.TRANS: square wave +msgid "square" msgstr "" -#: js/lilypond.js:616 -msgid "chipmunk" +#: js/utils/musicutils.js:1102 +#: js/utils/musicutils.js:1548 +#: js/utils/synthutils.js:132 +#: js/blocks/PitchBlocks.js:62 +#: js/blocks/ToneBlocks.js:39 +#.TRANS: triangle wave +msgid "triangle" msgstr "" -#: js/lilypond.js:617 -msgid "red squirrel" +#: js/utils/musicutils.js:1103 +#: js/utils/musicutils.js:1549 +#: js/utils/synthutils.js:130 +#: js/blocks/PitchBlocks.js:108 +#.TRANS: sawtooth wave +msgid "sawtooth" msgstr "" -#: js/lilypond.js:618 -msgid "guinea pig" +#: js/utils/musicutils.js:1105 +#: js/utils/musicutils.js:1312 +#: js/blocks/PitchBlocks.js:931 +#: js/blocks/PitchBlocks.js:937 +#: js/turtleactions/PitchActions.js:469 +#.TRANS: even numbers +#.TRANS: invert based on even or odd number or musical scale +msgid "even" msgstr "" -#: js/lilypond.js:619 -msgid "capybara" +#: js/utils/musicutils.js:1107 +#: js/utils/musicutils.js:1313 +#: js/blocks/PitchBlocks.js:937 +#: js/turtleactions/PitchActions.js:471 +#.TRANS: odd numbers +msgid "odd" msgstr "" -#: js/lilypond.js:620 -msgid "coypu" +#: js/utils/musicutils.js:1108 +#: js/utils/musicutils.js:1314 +#: js/blocks/PitchBlocks.js:937 +#: js/turtleactions/PitchActions.js:473 +msgid "scalar" msgstr "" -#: js/lilypond.js:621 -msgid "black rat" +#: js/utils/musicutils.js:1109 +#: js/utils/synthutils.js:72 +#: js/blocks/VolumeBlocks.js:47 +#.TRANS: musical instrument +msgid "piano" msgstr "" -#: js/lilypond.js:622 -msgid "grey squirrel" +#: js/utils/musicutils.js:1110 +#: js/utils/synthutils.js:74 +#.TRANS: musical instrument +msgid "violin" msgstr "" -#: js/lilypond.js:623 -msgid "flying squirrel" +#: js/utils/musicutils.js:1111 +#: js/utils/synthutils.js:76 +#.TRANS: viola musical instrument +msgid "viola" msgstr "" -#: js/lilypond.js:624 -msgid "bat" +#: js/utils/musicutils.js:1112 +#: js/utils/synthutils.js:114 +#.TRANS: xylophone musical instrument +msgid "xylophone" msgstr "" -#: js/lilypond.js:757 -#: js/lilypond.js:921 -#: js/lilypond.js:959 -#: js/ActionBlocks.js:1256 -#: js/ExtrasBlocks.js:553 -msgid "start drum" +#: js/utils/musicutils.js:1113 +#: js/utils/synthutils.js:136 +#.TRANS: vibraphone musical instrument +msgid "vibraphone" msgstr "" -#: js/SaveInterface.js:59 -#: js/SaveInterface.js:61 -#: js/SaveInterface.js:93 -msgid "Music Blocks Project" +#: js/utils/musicutils.js:1114 +#: js/utils/synthutils.js:78 +#.TRANS: musical instrument +msgid "cello" msgstr "" -#: js/SaveInterface.js:63 -msgid "This project was created in Music Blocks" +#: js/utils/musicutils.js:1116 +#: js/utils/synthutils.js:82 +#.TRANS: viola musical instrument +msgid "double bass" msgstr "" -#: js/SaveInterface.js:67 -msgid "Music Blocks is a Free/Libre Software application." +#: js/utils/musicutils.js:1117 +#: js/utils/synthutils.js:84 +#: js/widgets/rhythmruler.js:2511 +#.TRANS: musical instrument +msgid "guitar" msgstr "" -#: js/SaveInterface.js:69 -msgid "The source code can be accessed at" +#: js/utils/musicutils.js:1118 +#: js/utils/synthutils.js:86 +#.TRANS: musical instrument +msgid "acoustic guitar" msgstr "" -#: js/SaveInterface.js:72 -msgid "For more information, please consult the" +#: js/utils/musicutils.js:1119 +#: js/utils/synthutils.js:88 +#.TRANS: musical instrument +msgid "flute" msgstr "" -#: js/SaveInterface.js:83 -msgid "Alternatively, open the file in Music Blocks using the Load project button." +#: js/utils/musicutils.js:1120 +#: js/utils/synthutils.js:90 +#.TRANS: musical instrument +msgid "clarinet" msgstr "" -#: js/SaveInterface.js:85 -msgid "Project Code" +#: js/utils/musicutils.js:1121 +#: js/utils/synthutils.js:92 +#.TRANS: musical instrument +msgid "saxophone" msgstr "" -#: js/SaveInterface.js:87 -msgid "This code stores data about the blocks in a project." +#: js/utils/musicutils.js:1122 +#: js/utils/synthutils.js:94 +#.TRANS: musical instrument +msgid "tuba" msgstr "" -#: js/SaveInterface.js:89 -msgid "Show" +#: js/utils/musicutils.js:1123 +#: js/utils/synthutils.js:96 +#.TRANS: musical instrument +msgid "trumpet" msgstr "" -#: js/SaveInterface.js:91 -msgid "Hide" +#: js/utils/musicutils.js:1124 +#: js/utils/synthutils.js:98 +#.TRANS: musical instrument +msgid "oboe" msgstr "" -#: js/SaveInterface.js:197 -#: js/SaveInterface.js:58 -msgid "No description provided" +#: js/utils/musicutils.js:1125 +#: js/utils/synthutils.js:100 +#.TRANS: musical instrument +msgid "trombone" msgstr "" -#: js/SaveInterface.js:332 -msgid "Your recording is in progress." +#: js/utils/musicutils.js:1126 +#: js/utils/synthutils.js:116 +#.TRANS: polytone synthesizer +msgid "electronic synth" msgstr "" -#: js/SaveInterface.js:401 -#.TRANS: File name prompt for save as Lilypond -msgid "File name" +#: js/utils/musicutils.js:1127 +#: js/utils/synthutils.js:118 +#.TRANS: simple monotone synthesizer +msgid "simple 1" msgstr "" -#: js/SaveInterface.js:403 -#: js/StringHelper.js:39 -#.TRANS: Project title prompt for save as Lilypond -msgid "Project title" +#: js/utils/musicutils.js:1128 +msgid "simple 2" msgstr "" -#: js/SaveInterface.js:405 -#.TRANS: Project title prompt for save as Lilypond -msgid "Project author" +#: js/utils/musicutils.js:1129 +msgid "simple 3" msgstr "" -#: js/SaveInterface.js:407 -#.TRANS: MIDI prompt for save as Lilypond -msgid "Include MIDI output?" +#: js/utils/musicutils.js:1130 +msgid "simple 4" msgstr "" -#: js/SaveInterface.js:409 -#.TRANS: Guitar prompt for save as Lilypond -msgid "Include guitar tablature output?" +#: js/utils/musicutils.js:1131 +#: js/utils/synthutils.js:58 +#: js/blocks/DrumBlocks.js:191 +#.TRANS: white noise synthesizer +msgid "white noise" msgstr "" -#: js/SaveInterface.js:411 -#.TRANS: Lilypond is a scripting language for generating sheet music -msgid "Save as Lilypond" +#: js/utils/musicutils.js:1132 +#: js/utils/synthutils.js:60 +#.TRANS: brown noise synthesizer +msgid "brown noise" msgstr "" -#: js/SaveInterface.js:426 -#: js/EnsembleBlocks.js:75 -#: js/EnsembleBlocks.js:154 -#: js/EnsembleBlocks.js:216 -#: js/EnsembleBlocks.js:302 -#: js/EnsembleBlocks.js:348 -#: js/EnsembleBlocks.js:389 -#: js/EnsembleBlocks.js:441 -#: js/EnsembleBlocks.js:490 -#: js/EnsembleBlocks.js:536 -#: js/EnsembleBlocks.js:583 -#: js/EnsembleBlocks.js:637 -#: js/EnsembleBlocks.js:753 -#: js/EnsembleBlocks.js:840 -#: js/EnsembleBlocks.js:899 -#: js/EnsembleBlocks.js:942 -#: js/EnsembleBlocks.js:1212 -#: js/EnsembleBlocks.js:1280 -#.TRANS: default project author when saving as Lilypond -msgid "Mr. Mouse" +#: js/utils/musicutils.js:1133 +#: js/utils/synthutils.js:62 +#.TRANS: pink noise synthesizer +msgid "pink noise" msgstr "" -#: js/SaveInterface.js:573 -msgid "The Lilypond code is copied to clipboard. You can paste it here: " +#: js/utils/musicutils.js:1135 +#: js/utils/synthutils.js:148 +#: js/widgets/rhythmruler.js:2057 +#: js/widgets/rhythmruler.js:2319 +#.TRANS: musical instrument +msgid "snare drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:50 -#: js/RhythmBlockPaletteBlocks.js:232 -#.TRANS: rhythm block -#.TRANS: translate "rhythm1" as rhythm -msgid "rhythm1" +#: js/utils/musicutils.js:1136 +#: js/utils/synthutils.js:150 +#.TRANS: musical instrument +msgid "kick drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:70 -#: js/RhythmBlockPaletteBlocks.js:251 -#: js/RhythmBlockPaletteBlocks.js:484 -#: js/RhythmBlockPaletteBlocks.js:553 -#: js/RhythmBlockPaletteBlocks.js:874 -msgid "number of notes" +#: js/utils/musicutils.js:1137 +#: js/utils/synthutils.js:152 +#.TRANS: musical instrument +msgid "tom tom" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:126 -msgid "polyphonic rhythm" +#: js/utils/musicutils.js:1138 +#: js/utils/synthutils.js:154 +#.TRANS: musical instrument +msgid "floor tom" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:218 -msgid "The Rhythm block is used to generate rhythm patterns." +#: js/utils/musicutils.js:1139 +#: js/utils/synthutils.js:156 +#.TRANS: musical instrument +msgid "bass drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:279 -msgid "1/64 note" +#: js/utils/musicutils.js:1140 +#: js/utils/synthutils.js:158 +#.TRANS: a drum made from an inverted cup +msgid "cup drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:303 -msgid "1/32 note" +#: js/utils/musicutils.js:1141 +#: js/utils/synthutils.js:160 +#.TRANS: musical instrument +msgid "darbuka drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:331 -msgid "1/16 note" +#: js/utils/musicutils.js:1142 +#: js/utils/synthutils.js:164 +#.TRANS: musical instrument +msgid "hi hat" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:359 -msgid "eighth note" +#: js/utils/musicutils.js:1143 +#: js/utils/synthutils.js:166 +#.TRANS: a small metal bell +msgid "ride bell" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:387 -msgid "quarter note" +#: js/utils/musicutils.js:1144 +#: js/utils/synthutils.js:168 +#.TRANS: musical instrument +msgid "cow bell" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:415 -msgid "half note" +#: js/utils/musicutils.js:1145 +msgid "japanese drum" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:443 -msgid "whole note" +#: js/utils/musicutils.js:1146 +#: js/utils/synthutils.js:174 +#.TRANS: musical instrument +msgid "japanese bell" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:481 -#: js/RhythmBlockPaletteBlocks.js:550 -#: js/RhythmBlockPaletteBlocks.js:601 -#.TRANS: A tuplet is a note value divided into irregular time values. -msgid "tuplet" +#: js/utils/musicutils.js:1147 +#: js/utils/synthutils.js:170 +#.TRANS: musical instrument +msgid "triangle bell" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:767 -msgid "septuplet" +#: js/utils/musicutils.js:1148 +#: js/utils/synthutils.js:172 +#.TRANS: musical instrument +msgid "finger cymbals" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:795 -msgid "quintuplet" +#: js/utils/musicutils.js:1149 +#: js/utils/synthutils.js:176 +#.TRANS: a musically tuned set of bells +msgid "chime" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:823 -msgid "triplet" +#: js/utils/musicutils.js:1150 +#: js/utils/synthutils.js:178 +#.TRANS: a musical instrument +msgid "gong" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:850 -msgid "simple tuplet" +#: js/utils/musicutils.js:1151 +#: js/utils/synthutils.js:180 +#.TRANS: sound effect +msgid "clang" msgstr "" -#: js/RhythmBlockPaletteBlocks.js:860 -msgid "Tuplets are a collection of notes that get scaled to a specific duration." +#: js/utils/musicutils.js:1152 +#: js/utils/synthutils.js:182 +#.TRANS: sound effect +msgid "crash" msgstr "" -#: js/WidgetBlocks.js:71 -#.TRANS: sound envelope (ADSR) -msgid "envelope" +#: js/utils/musicutils.js:1153 +#: js/utils/synthutils.js:184 +#.TRANS: sound effect +msgid "bottle" msgstr "" -#: js/WidgetBlocks.js:79 -#.TRANS: Attack time is the time taken for initial run-up of level from nil to peak, beginning when the key is first pressed. -msgid "attack" +#: js/utils/musicutils.js:1154 +#: js/utils/synthutils.js:186 +#.TRANS: sound effect +msgid "clap" msgstr "" -#: js/WidgetBlocks.js:81 -#.TRANS: Decay time is the time taken for the subsequent run down from the attack level to the designated sustain level. -msgid "decay" +#: js/utils/musicutils.js:1155 +#: js/utils/synthutils.js:188 +#.TRANS: sound effect +msgid "slap" msgstr "" -#: js/WidgetBlocks.js:83 -#.TRANS: Sustain level is the level during the main sequence of the sound's duration, until the key is released. -msgid "sustain" +#: js/utils/musicutils.js:1156 +#: js/utils/synthutils.js:190 +#.TRANS: sound effect +msgid "splash" msgstr "" -#: js/WidgetBlocks.js:85 -#.TRANS: Release time is the time taken for the level to decay from the sustain level to zero after the key is released. -msgid "release" +#: js/utils/musicutils.js:1157 +#: js/utils/synthutils.js:192 +#.TRANS: sound effect +msgid "bubbles" msgstr "" -#: js/WidgetBlocks.js:96 -msgid "Attack value should be from 0 to 100." +#: js/utils/musicutils.js:1158 +#: js/utils/synthutils.js:194 +#.TRANS: sound effect +msgid "raindrop" msgstr "" -#: js/WidgetBlocks.js:99 -msgid "Decay value should be from 0 to 100." +#: js/utils/musicutils.js:1159 +#: js/utils/synthutils.js:196 +#.TRANS: animal sound effect +msgid "cat" msgstr "" -#: js/WidgetBlocks.js:102 -msgid "Sustain value should be from 0 to 100." +#: js/utils/musicutils.js:1160 +#: js/utils/synthutils.js:198 +#.TRANS: animal sound effect +msgid "cricket" msgstr "" -#: js/WidgetBlocks.js:105 -msgid "Release value should be from 0-100." +#: js/utils/musicutils.js:1161 +#: js/utils/synthutils.js:200 +#.TRANS: animal sound effect +msgid "dog" msgstr "" -#: js/WidgetBlocks.js:121 -msgid "You are adding multiple envelope blocks." +#: js/utils/musicutils.js:1163 +#: js/utils/synthutils.js:102 +#.TRANS: musical instrument +msgid "banjo" msgstr "" -#: js/WidgetBlocks.js:144 -#.TRANS: a filter removes some unwanted components from a signal -msgid "filter" +#: js/utils/musicutils.js:1164 +#: js/utils/synthutils.js:104 +#.TRANS: musical instrument +msgid "koto" msgstr "" -#: js/WidgetBlocks.js:149 -#: js/musicutils.js:706 -#: js/musicutils.js:1105 -#.TRANS: highpass filter -msgid "highpass" +#: js/utils/musicutils.js:1165 +#: js/utils/synthutils.js:106 +#.TRANS: musical instrument +msgid "dulcimer" msgstr "" -#: js/WidgetBlocks.js:152 -#: js/ToneBlocks.js:42 -#: js/timbre.js:1558 -#: js/timbre.js:1808 -#.TRANS: type of filter, e.g., lowpass, highpass, etc. -#.TRANS: there are different types (sine, triangle, square...) of oscillators. -msgid "type" +#: js/utils/musicutils.js:1166 +#: js/utils/synthutils.js:108 +#.TRANS: musical instrument +msgid "electric guitar" msgstr "" -#: js/WidgetBlocks.js:154 -#: js/timbre.js:1818 -#.TRANS: rolloff is the steepness of a change in frequency. -msgid "rolloff" +#: js/utils/musicutils.js:1167 +#: js/utils/synthutils.js:110 +#.TRANS: musical instrument +msgid "bassoon" msgstr "" -#: js/WidgetBlocks.js:155 -#: js/MediaBlocks.js:692 -#: js/temperament.js:382 -#: js/temperament.js:417 -#: js/temperament.js:477 -#: js/temperament.js:485 -#: js/temperament.js:1348 -#: js/timbre.js:1842 -msgid "frequency" +#: js/utils/musicutils.js:1168 +#: js/utils/synthutils.js:112 +#.TRANS: musical instrument +msgid "celeste" msgstr "" -#: js/WidgetBlocks.js:179 -#.TRANS: rolloff is the steepness of a change in frequency. -msgid "Rolloff value should be either -12, -24, -48, or -96 decibels/octave." +#: js/utils/musicutils.js:1170 +#: js/widgets/temperament.js:787 +#.TRANS: musical temperament +msgid "equal" msgstr "" -#: js/WidgetBlocks.js:211 -msgid "The Temperament tool is used to define custom tuning." +#: js/utils/musicutils.js:1172 +#.TRANS: musical temperament +msgid "Pythagorean" msgstr "" -#: js/WidgetBlocks.js:277 -#: js/sampler.js:329 -msgid "Upload a sample and adjust its pitch center." +#: js/utils/musicutils.js:1174 +#.TRANS: musical temperament +msgid "just intonation" msgstr "" -#: js/WidgetBlocks.js:284 -#.TRANS: the speed at music is should be played. -msgid "sampler" +#: js/utils/musicutils.js:1176 +#.TRANS: musical temperament +msgid "meantone" msgstr "" -#: js/WidgetBlocks.js:329 -#: js/WidgetBlocks.js:334 -#: js/IntervalsBlocks.js:928 -#: js/VolumeBlocks.js:411 -#: js/ToneBlocks.js:946 -#: js/VolumeActions.js:218 -#: js/musicutils.js:704 -#: js/musicutils.js:755 -#: js/musicutils.js:798 -#: js/musicutils.js:820 -#: js/musicutils.js:1136 -#: js/synthutils.js:118 -#: js/modewidget.js:919 -#.TRANS: customize voice -msgid "custom" +#: js/utils/musicutils.js:1193 +msgid "major 7th" msgstr "" -#: js/WidgetBlocks.js:432 -msgid "The Meter block opens a tool to select strong beats for the meter." +#: js/utils/musicutils.js:1194 +msgid "minor 7th" msgstr "" -#: js/WidgetBlocks.js:473 -msgid "The oscilloscope block opens a tool to visualize waveforms." +#: js/utils/musicutils.js:1195 +msgid "dominant 7th" msgstr "" -#: js/WidgetBlocks.js:478 -msgid "oscilloscope" +#: js/utils/musicutils.js:1196 +msgid "minor-major 7th" msgstr "" -#: js/WidgetBlocks.js:530 -msgid "The Custom mode block opens a tool to explore musical mode (the spacing of the notes in a scale)." +#: js/utils/musicutils.js:1197 +msgid "fully-diminished 7th" msgstr "" -#: js/WidgetBlocks.js:536 -#.TRANS: musical mode is the pattern of half-steps in an octave, e.g., Major or Minor modes -msgid "custom mode" +#: js/utils/musicutils.js:1198 +msgid "half-diminished 7th" msgstr "" -#: js/WidgetBlocks.js:570 -msgid "The Tempo block opens a metronome to visualize the beat." +#: js/utils/musicutils.js:1557 +#: js/utils/musicutils.js:1569 +msgid "Equal (12EDO)" msgstr "" -#: js/WidgetBlocks.js:617 -msgid "The Arpeggio Widget is used to compose chord sequences." +#: js/utils/musicutils.js:1558 +#: js/utils/musicutils.js:1570 +msgid "5-limit Just Intonation" msgstr "" -#: js/WidgetBlocks.js:623 -#: js/IntervalsBlocks.js:683 -msgid "arpeggio" +#: js/utils/musicutils.js:1559 +#: js/utils/musicutils.js:1571 +msgid "Pythagorean (3-limit JI)" msgstr "" -#: js/WidgetBlocks.js:677 -msgid "The Pitch drum matrix is used to map pitches to drum sounds." +#: js/utils/musicutils.js:1560 +#: js/utils/musicutils.js:1561 +#: js/utils/musicutils.js:1572 +#: js/utils/musicutils.js:1573 +msgid "Meantone" msgstr "" -#: js/WidgetBlocks.js:682 -#.TRANS: makes a mapping between pitches and drum sounds -msgid "pitch-drum mapper" +#: js/utils/musicutils.js:1574 +msgid "Custom" msgstr "" -#: js/WidgetBlocks.js:724 -msgid "You must have at least one pitch block and one drum block in the matrix." +#: js/utils/musicutils.js:5387 +#: js/utils/musicutils.js:5430 +msgid "current" msgstr "" -#: js/WidgetBlocks.js:746 -msgid "The Pitch slider tool to is used to generate pitches at selected frequencies." +#: js/utils/musicutils.js:5390 +#: js/utils/musicutils.js:5421 +msgid "next" msgstr "" -#: js/WidgetBlocks.js:751 -#.TRANS: widget to generate pitches using a slider -msgid "pitch slider" +#: js/utils/musicutils.js:5393 +#: js/utils/musicutils.js:5426 +msgid "previous" msgstr "" -#: js/WidgetBlocks.js:788 -msgid "chromatic keyboard" +#: js/utils/synthutils.js:120 +#.TRANS: simple monotone synthesizer +msgid "simple-2" msgstr "" -#: js/WidgetBlocks.js:815 -#: js/WidgetBlocks.js:874 -#.TRANS: widget to generate pitches using a slider -msgid "music keyboard" +#: js/utils/synthutils.js:122 +#.TRANS: simple monotone synthesizer +msgid "simple-3" msgstr "" -#: js/WidgetBlocks.js:859 -#: js/WidgetBlocks.js:866 -msgid "The Music keyboard block opens a piano keyboard that can be used to create notes." +#: js/utils/synthutils.js:124 +#.TRANS: simple monotone synthesizer +msgid "simple-4" msgstr "" -#: js/WidgetBlocks.js:910 -msgid "The Pitch staircase tool to is used to generate pitches from a given ratio." +#: js/utils/synthutils.js:162 +#.TRANS: musical instrument +msgid "taiko" msgstr "" -#: js/WidgetBlocks.js:917 -#.TRANS: generate a progressive sequence of pitches -msgid "pitch staircase" +#: js/blocks/ActionBlocks.js:58 +msgid "The Return block will return a value from an action." msgstr "" -#: js/WidgetBlocks.js:982 -msgid "The Rhythm Maker block opens a tool to create drum machines." +#: js/blocks/ActionBlocks.js:75 +msgid "return" msgstr "" -#: js/WidgetBlocks.js:1036 -msgid "G major scale" +#: js/blocks/ActionBlocks.js:128 +msgid "The Return to URL block will return a value to a webpage." msgstr "" -#: js/WidgetBlocks.js:1064 -msgid "C major scale" +#: js/blocks/ActionBlocks.js:145 +msgid "return to URL" msgstr "" -#: js/WidgetBlocks.js:1097 -msgid "The Phrase Maker block opens a tool to create musical phrases." +#: js/blocks/ActionBlocks.js:233 +#: js/blocks/ActionBlocks.js:290 +#: js/blocks/ActionBlocks.js:501 +#: js/blocks/ActionBlocks.js:688 +msgid "The Calculate block returns a value calculated by an action." msgstr "" -#: js/WidgetBlocks.js:1104 -#.TRANS: assigns pitch to a sequence of beats to generate a melody -msgid "phrase maker" +#: js/blocks/ActionBlocks.js:251 +#: js/blocks/ActionBlocks.js:517 +#: js/blocks/ActionBlocks.js:707 +msgid "calculate" msgstr "" -#: js/WidgetBlocks.js:1168 -msgid "You must have at least one pitch block and one rhythm block in the matrix." +#: js/blocks/ActionBlocks.js:376 +#: js/blocks/ActionBlocks.js:593 +#: js/blocks/ActionBlocks.js:942 +#: js/blocks/ActionBlocks.js:1389 +#.TRANS: do is the do something or take an action. +msgid "The Do block is used to initiate an action." msgstr "" -#: js/WidgetBlocks.js:1220 -msgid "The Status block opens a tool for inspecting the status of Music Blocks as it is running." +#: js/blocks/ActionBlocks.js:390 +#: js/blocks/ActionBlocks.js:610 +#: js/blocks/ActionBlocks.js:959 +#: js/blocks/ActionBlocks.js:1048 +#: js/blocks/MeterBlocks.js:769 +msgid "do1" msgstr "" -#: js/IntervalsBlocks.js:45 -msgid "set temperament" +#: js/blocks/ActionBlocks.js:390 +#: js/blocks/ActionBlocks.js:610 +#: js/blocks/ActionBlocks.js:959 +#: js/blocks/ActionBlocks.js:1048 +#: js/blocks/FlowBlocks.js:742 +#: js/blocks/FlowBlocks.js:822 +#: js/blocks/MeterBlocks.js:769 +msgid "do" msgstr "" -#: js/IntervalsBlocks.js:63 -#: js/MediaBlocks.js:746 -#: js/PitchBlocks.js:657 -#: js/PitchBlocks.js:933 -#: js/PitchBlocks.js:972 -#: js/PitchBlocks.js:1005 -#: js/PitchBlocks.js:1166 -#: js/PitchBlocks.js:1679 -#: js/PitchBlocks.js:1720 -#: js/PitchBlocks.js:1827 -#: js/ToneBlocks.js:1025 -#.TRANS: adjusts the shift up or down by one octave (twelve half-steps in the interval between two notes, one having twice or half the frequency in Hz of the other.) -msgid "octave" +#: js/blocks/ActionBlocks.js:791 +#: js/blocks/ActionBlocks.js:865 +msgid "The Arg block contains the value of an argument passed to an action." msgstr "" -#: js/IntervalsBlocks.js:99 -msgid "The Temperament name block is used to select a tuning method." +#: js/blocks/ActionBlocks.js:806 +#: js/blocks/ActionBlocks.js:878 +msgid "arg" msgstr "" -#: js/IntervalsBlocks.js:161 -msgid "doubly" +#: js/blocks/ActionBlocks.js:836 +#: js/blocks/ActionBlocks.js:900 +#: js/blocks/ActionBlocks.js:908 +msgid "Invalid argument" msgstr "" -#: js/IntervalsBlocks.js:166 -msgid "The Doubly block will double the size of an interval." +#: js/blocks/ActionBlocks.js:944 +msgid "In the example, it is used with the One of block to choose a random phase." msgstr "" -#: js/IntervalsBlocks.js:262 -msgid "interval number" +#: js/blocks/ActionBlocks.js:1019 +#: js/blocks/ActionBlocks.js:1026 +msgid "The Listen block is used to listen for an event such as a mouse click." msgstr "" -#: js/IntervalsBlocks.js:330 -#.TRANS: measure the distance between two pitches in semi-tones -msgid "semi-tone interval measure" +#: js/blocks/ActionBlocks.js:1028 +msgid "When the event happens, an action is taken." msgstr "" -#: js/IntervalsBlocks.js:397 -#: js/IntervalsBlocks.js:513 -msgid "You must use two pitch blocks when measuring an interval." +#: js/blocks/ActionBlocks.js:1045 +msgid "on" msgstr "" -#: js/IntervalsBlocks.js:439 -msgid "The Scalar interval block measures the distance between two notes in the current key and mode." +#: js/blocks/ActionBlocks.js:1048 +#: js/blocks/ActionBlocks.js:1049 +#: js/blocks/ActionBlocks.js:1153 +msgid "event" msgstr "" -#: js/IntervalsBlocks.js:445 -#.TRANS: measure the distance between two pitches in steps of musical scale -msgid "scalar interval measure" +#: js/blocks/ActionBlocks.js:1133 +msgid "The Broadcast block is used to trigger an event." msgstr "" -#: js/IntervalsBlocks.js:592 -#: js/musicutils.js:637 -#: js/musicutils.js:908 -#.TRANS: perfect is a music term related to intervals -msgid "perfect" +#: js/blocks/ActionBlocks.js:1151 +msgid "broadcast" msgstr "" -#: js/IntervalsBlocks.js:621 -msgid "In the figure, we add sol# to sol." +#: js/blocks/ActionBlocks.js:1208 +msgid "Each Start block is a separate voice." msgstr "" -#: js/IntervalsBlocks.js:627 -#: js/OrnamentBlocks.js:220 -#.TRANS: calculate a relative step between notes based on semi-tones -msgid "semi-tone interval" +#: js/blocks/ActionBlocks.js:1304 +msgid "It is often used for storing a phrase of music that is repeated." msgstr "" -#: js/IntervalsBlocks.js:676 -msgid "The output of the example is: do, mi, sol, sol, ti, mi" +#: js/blocks/ActionBlocks.js:1495 +msgid "define temperament" msgstr "" -#: js/IntervalsBlocks.js:735 -msgid "The Chord block calculates common chords." +#: js/blocks/BooleanBlocks.js:44 +msgid "The Not block is the logical not operator." msgstr "" -#: js/IntervalsBlocks.js:737 -msgid "In the figure, we generate a C-major chord." -msgstr "" +#: js/blocks/BooleanBlocks.js:62 +msgid "not" +msgstr "否" -#: js/IntervalsBlocks.js:742 -msgid "chord" +#: js/blocks/BooleanBlocks.js:134 +msgid "The And block is the logical and operator." msgstr "" -#: js/IntervalsBlocks.js:794 -msgid "The Ratio Interval block calculates an interval based on a ratio." -msgstr "" +#: js/blocks/BooleanBlocks.js:152 +msgid "and" +msgstr "且" -#: js/IntervalsBlocks.js:799 -msgid "ratio interval" +#: js/blocks/BooleanBlocks.js:218 +msgid "The Or block is the logical or operator." msgstr "" -#: js/IntervalsBlocks.js:868 -msgid "In the figure, we add la to sol." -msgstr "" +#: js/blocks/BooleanBlocks.js:236 +msgid "or" +msgstr "或" -#: js/IntervalsBlocks.js:924 -#.TRANS: define a custom mode -msgid "define mode" +#: js/blocks/BooleanBlocks.js:302 +msgid "The XOR block is the logical XOR operator." msgstr "" -#: js/IntervalsBlocks.js:977 -msgid "movable Do" +#: js/blocks/BooleanBlocks.js:320 +msgid "xor" msgstr "" -#: js/IntervalsBlocks.js:1028 -#.TRANS: mode length is the number of notes in the mode, e.g., 7 for major and minor scales; 12 for chromatic scales -msgid "mode length" +#: js/blocks/BooleanBlocks.js:808 +msgid "The Equal block returns True if the two numbers are equal." msgstr "" -#: js/IntervalsBlocks.js:1037 -msgid "The Mode length block is the number of notes in the current scale." +#: js/blocks/BooleanBlocks.js:909 +msgid "The Not-equal-to block returns True if the two numbers are not equal to each other." msgstr "" -#: js/IntervalsBlocks.js:1039 -msgid "Most Western scales have 7 notes." +#: js/blocks/BooleanBlocks.js:1008 +msgid "The Boolean block is used to specify true or false." msgstr "" -#: js/IntervalsBlocks.js:1088 -#.TRANS: the mode in music is 'major', 'minor', etc. -msgid "current mode" +#: js/blocks/BoxesBlocks.js:53 +#: js/blocks/BoxesBlocks.js:59 +msgid "The Add-to block is used to add to the value stored in a box." msgstr "" -#: js/IntervalsBlocks.js:1141 -#.TRANS: the key is a group of pitches with which a music composition is created -msgid "current key" +#: js/blocks/BoxesBlocks.js:61 +msgid "It can also be used with other blocks such as Color and Pen size." msgstr "" -#: js/IntervalsBlocks.js:1193 -#: js/IntervalsBlocks.js:1238 -#.TRANS: set the key and mode, e.g. C Major -msgid "set key" +#: js/blocks/BoxesBlocks.js:73 +msgid "add" msgstr "" -#: js/IntervalsBlocks.js:1247 -#: js/IntervalsBlocks.js:1253 -msgid "The Set key block is used to set the key and mode," +#: js/blocks/BoxesBlocks.js:75 +#: js/widgets/temperament.js:857 +msgid "to" msgstr "" -#: js/IntervalsBlocks.js:1253 -msgid "eg C Major" +#: js/blocks/BoxesBlocks.js:75 +#: js/blocks/BoxesBlocks.js:595 +#: js/blocks/HeapBlocks.js:544 +msgid "value1" msgstr "" -#: js/IntervalsBlocks.js:1266 -#: js/DictBlocks.js:215 -#: js/DictBlocks.js:216 -#: js/DictBlocks.js:289 -#: js/DictBlocks.js:290 -#: js/DictBlocks.js:357 -#: js/DictBlocks.js:430 -#: js/DictBlocks.js:431 -#.TRANS: key, e.g., C in C Major -msgid "key" +#: js/blocks/BoxesBlocks.js:118 +msgid "Block does not support incrementing." msgstr "" -#: js/ActionBlocks.js:58 -msgid "The Return block will return a value from an action." +#: js/blocks/BoxesBlocks.js:152 +msgid "The Add-1-to block adds one to the value stored in a box." msgstr "" -#: js/ActionBlocks.js:75 -msgid "return" +#: js/blocks/BoxesBlocks.js:163 +msgid "add 1 to" msgstr "" -#: js/ActionBlocks.js:128 -msgid "The Return to URL block will return a value to a webpage." +#: js/blocks/BoxesBlocks.js:211 +msgid "The Subtract-1-from block subtracts one from the value stored in a box." msgstr "" -#: js/ActionBlocks.js:145 -msgid "return to URL" +#: js/blocks/BoxesBlocks.js:222 +msgid "subtract 1 from" msgstr "" -#: js/ActionBlocks.js:233 -#: js/ActionBlocks.js:290 -#: js/ActionBlocks.js:501 -#: js/ActionBlocks.js:688 -msgid "The Calculate block returns a value calculated by an action." +#: js/blocks/BoxesBlocks.js:270 +#: js/blocks/BoxesBlocks.js:387 +msgid "The Box block returns the value stored in a box." msgstr "" -#: js/ActionBlocks.js:251 -#: js/ActionBlocks.js:517 -#: js/ActionBlocks.js:707 -msgid "calculate" +#: js/blocks/BoxesBlocks.js:500 +#: js/blocks/BoxesBlocks.js:576 +msgid "The Store in block will store a value in a box." msgstr "" -#: js/ActionBlocks.js:376 -#: js/ActionBlocks.js:593 -#: js/ActionBlocks.js:942 -#: js/ActionBlocks.js:1389 -#.TRANS: do is the do something or take an action. -msgid "The Do block is used to initiate an action." +#: js/blocks/BoxesBlocks.js:595 +#: js/blocks/EnsembleBlocks.js:391 +#: js/blocks/EnsembleBlocks.js:402 +msgid "name1" msgstr "" -#: js/ActionBlocks.js:390 -#: js/ActionBlocks.js:610 -#: js/ActionBlocks.js:959 -#: js/ActionBlocks.js:1048 -#: js/MeterBlocks.js:769 -msgid "do1" +#: js/blocks/BoxesBlocks.js:652 +msgid "The Box2 block returns the value stored in Box2." msgstr "" -#: js/ActionBlocks.js:390 -#: js/ActionBlocks.js:610 -#: js/ActionBlocks.js:959 -#: js/ActionBlocks.js:1048 -#: js/FlowBlocks.js:742 -#: js/FlowBlocks.js:822 -#: js/MeterBlocks.js:769 -msgid "do" +#: js/blocks/BoxesBlocks.js:703 +msgid "The Store in Box2 block is used to store a value in Box2." msgstr "" -#: js/ActionBlocks.js:791 -#: js/ActionBlocks.js:865 -msgid "The Arg block contains the value of an argument passed to an action." +#: js/blocks/BoxesBlocks.js:715 +msgid "store in box2" msgstr "" -#: js/ActionBlocks.js:806 -#: js/ActionBlocks.js:878 -msgid "arg" +#: js/blocks/BoxesBlocks.js:761 +msgid "The Box1 block returns the value stored in Box1." msgstr "" -#: js/ActionBlocks.js:836 -#: js/ActionBlocks.js:900 -#: js/ActionBlocks.js:908 -msgid "Invalid argument" +#: js/blocks/BoxesBlocks.js:812 +msgid "The Store in Box1 block is used to store a value in Box1." msgstr "" -#: js/ActionBlocks.js:944 -msgid "In the example, it is used with the One of block to choose a random phase." +#: js/blocks/BoxesBlocks.js:826 +msgid "store in box1" msgstr "" -#: js/ActionBlocks.js:1019 -#: js/ActionBlocks.js:1026 -msgid "The Listen block is used to listen for an event such as a mouse click." +#: js/blocks/DictBlocks.js:77 +msgid "show dictionary" msgstr "" -#: js/ActionBlocks.js:1028 -msgid "When the event happens, an action is taken." +#: js/blocks/DictBlocks.js:80 +#: js/blocks/DictBlocks.js:145 +#: js/blocks/DictBlocks.js:216 +#: js/blocks/DictBlocks.js:290 +#: js/blocks/ProgramBlocks.js:396 +#: js/blocks/ProgramBlocks.js:501 +#: js/blocks/ProgramBlocks.js:664 +msgid "My Dictionary" msgstr "" -#: js/ActionBlocks.js:1045 -msgid "on" +#: js/blocks/DictBlocks.js:129 +msgid "The Dictionary block returns a dictionary." msgstr "" -#: js/ActionBlocks.js:1048 -#: js/ActionBlocks.js:1049 -#: js/ActionBlocks.js:1153 -msgid "event" +#: js/blocks/DictBlocks.js:197 +#: js/blocks/DictBlocks.js:339 +msgid "The Get-dict block returns a value in the dictionary for a specified key." msgstr "" -#: js/ActionBlocks.js:1133 -msgid "The Broadcast block is used to trigger an event." +#: js/blocks/DictBlocks.js:212 +#: js/blocks/DictBlocks.js:354 +#.TRANS: retrieve a value from the dictionary with a given key +msgid "get value" msgstr "" -#: js/ActionBlocks.js:1151 -msgid "broadcast" +#: js/blocks/DictBlocks.js:215 +#: js/blocks/DictBlocks.js:216 +#: js/blocks/DictBlocks.js:289 +#: js/blocks/DictBlocks.js:290 +#: js/blocks/DictBlocks.js:357 +#: js/blocks/DictBlocks.js:430 +#: js/blocks/DictBlocks.js:431 +msgid "key2" msgstr "" -#: js/ActionBlocks.js:1208 -msgid "Each Start block is a separate voice." +#: js/blocks/DictBlocks.js:215 +#: js/blocks/DictBlocks.js:216 +#: js/blocks/DictBlocks.js:289 +#: js/blocks/DictBlocks.js:290 +#: js/blocks/DictBlocks.js:357 +#: js/blocks/DictBlocks.js:430 +#: js/blocks/DictBlocks.js:431 +#: js/blocks/IntervalsBlocks.js:1462 +#.TRANS: key, e.g., C in C Major +msgid "key" msgstr "" -#: js/ActionBlocks.js:1304 -msgid "It is often used for storing a phrase of music that is repeated." +#: js/blocks/DictBlocks.js:271 +#: js/blocks/DictBlocks.js:411 +msgid "The Set-dict block sets a value in the dictionary for a specified key." msgstr "" -#: js/ActionBlocks.js:1495 -msgid "define temperament" +#: js/blocks/DictBlocks.js:286 +#: js/blocks/DictBlocks.js:427 +#.TRANS: set a value in the dictionary for a given key +msgid "set value" msgstr "" -#: js/EnsembleBlocks.js:66 +#: js/blocks/EnsembleBlocks.js:66 msgid "mouse index heap" msgstr "" -#: js/EnsembleBlocks.js:68 +#: js/blocks/EnsembleBlocks.js:68 msgid "The Mouse index heap block returns a value in the heap at a specified location for a specified mouse." msgstr "" -#: js/EnsembleBlocks.js:77 -#: js/EnsembleBlocks.js:1080 +#: js/blocks/EnsembleBlocks.js:77 +#: js/blocks/EnsembleBlocks.js:1080 msgid "mouse name" msgstr "" -#: js/EnsembleBlocks.js:77 -#: js/EnsembleBlocks.js:92 -#: js/HeapBlocks.js:544 +#: js/blocks/EnsembleBlocks.js:77 +#: js/blocks/EnsembleBlocks.js:92 +#: js/blocks/HeapBlocks.js:544 #.TRANS: value1 is a numeric value (JAPANESE ONLY) msgid "index" msgstr "" -#: js/EnsembleBlocks.js:80 +#: js/blocks/EnsembleBlocks.js:80 msgid "turtle index heap" msgstr "" -#: js/EnsembleBlocks.js:82 +#: js/blocks/EnsembleBlocks.js:82 msgid "The Turtle index heap block returns a value in the heap at a specified location for a specified turtle." msgstr "" -#: js/EnsembleBlocks.js:90 -#: js/EnsembleBlocks.js:167 -#: js/EnsembleBlocks.js:230 -#: js/EnsembleBlocks.js:316 -#: js/EnsembleBlocks.js:362 -#: js/EnsembleBlocks.js:400 -#: js/EnsembleBlocks.js:454 -#: js/EnsembleBlocks.js:504 -#: js/EnsembleBlocks.js:550 -#: js/EnsembleBlocks.js:597 -#: js/EnsembleBlocks.js:651 -#: js/EnsembleBlocks.js:763 -#: js/EnsembleBlocks.js:854 -#: js/EnsembleBlocks.js:915 -#: js/EnsembleBlocks.js:955 -#: js/EnsembleBlocks.js:1219 -#: js/EnsembleBlocks.js:1293 +#: js/blocks/EnsembleBlocks.js:90 +#: js/blocks/EnsembleBlocks.js:167 +#: js/blocks/EnsembleBlocks.js:230 +#: js/blocks/EnsembleBlocks.js:316 +#: js/blocks/EnsembleBlocks.js:362 +#: js/blocks/EnsembleBlocks.js:400 +#: js/blocks/EnsembleBlocks.js:454 +#: js/blocks/EnsembleBlocks.js:504 +#: js/blocks/EnsembleBlocks.js:550 +#: js/blocks/EnsembleBlocks.js:597 +#: js/blocks/EnsembleBlocks.js:651 +#: js/blocks/EnsembleBlocks.js:763 +#: js/blocks/EnsembleBlocks.js:854 +#: js/blocks/EnsembleBlocks.js:915 +#: js/blocks/EnsembleBlocks.js:955 +#: js/blocks/EnsembleBlocks.js:1219 +#: js/blocks/EnsembleBlocks.js:1293 #.TRANS: Yertle is the name of a turtle. msgid "Yertle" msgstr "" -#: js/EnsembleBlocks.js:92 -#: js/EnsembleBlocks.js:1089 +#: js/blocks/EnsembleBlocks.js:92 +#: js/blocks/EnsembleBlocks.js:1089 msgid "turtle name" msgstr "" -#: js/EnsembleBlocks.js:122 -#: js/EnsembleBlocks.js:1197 -#: js/HeapBlocks.js:474 -#: js/HeapBlocks.js:572 +#: js/blocks/EnsembleBlocks.js:122 +#: js/blocks/EnsembleBlocks.js:1197 +#: js/blocks/HeapBlocks.js:474 +#: js/blocks/HeapBlocks.js:572 msgid "Index must be > 0." msgstr "" -#: js/EnsembleBlocks.js:127 -#: js/HeapBlocks.js:479 -#: js/HeapBlocks.js:577 +#: js/blocks/EnsembleBlocks.js:127 +#: js/blocks/HeapBlocks.js:479 +#: js/blocks/HeapBlocks.js:577 msgid "Maximum heap size is 1000." msgstr "" -#: js/EnsembleBlocks.js:145 +#: js/blocks/EnsembleBlocks.js:145 msgid "stop mouse" msgstr "" -#: js/EnsembleBlocks.js:147 +#: js/blocks/EnsembleBlocks.js:147 msgid "The Stop mouse block stops the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:158 +#: js/blocks/EnsembleBlocks.js:158 msgid "stop turtle" msgstr "" -#: js/EnsembleBlocks.js:160 +#: js/blocks/EnsembleBlocks.js:160 msgid "The Stop turtle block stops the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:184 -#: js/EnsembleBlocks.js:247 -#: js/EnsembleBlocks.js:413 -#: js/EnsembleBlocks.js:468 -#: js/EnsembleBlocks.js:706 -#: js/EnsembleBlocks.js:808 -#: js/EnsembleBlocks.js:870 -#: js/EnsembleBlocks.js:1190 -#: js/EnsembleBlocks.js:1253 +#: js/blocks/EnsembleBlocks.js:184 +#: js/blocks/EnsembleBlocks.js:247 +#: js/blocks/EnsembleBlocks.js:413 +#: js/blocks/EnsembleBlocks.js:468 +#: js/blocks/EnsembleBlocks.js:706 +#: js/blocks/EnsembleBlocks.js:808 +#: js/blocks/EnsembleBlocks.js:870 +#: js/blocks/EnsembleBlocks.js:1190 +#: js/blocks/EnsembleBlocks.js:1253 msgid "Cannot find mouse" msgstr "" -#: js/EnsembleBlocks.js:186 -#: js/EnsembleBlocks.js:249 -#: js/EnsembleBlocks.js:415 -#: js/EnsembleBlocks.js:470 -#: js/EnsembleBlocks.js:708 -#: js/EnsembleBlocks.js:810 -#: js/EnsembleBlocks.js:872 -#: js/EnsembleBlocks.js:1192 -#: js/EnsembleBlocks.js:1255 +#: js/blocks/EnsembleBlocks.js:186 +#: js/blocks/EnsembleBlocks.js:249 +#: js/blocks/EnsembleBlocks.js:415 +#: js/blocks/EnsembleBlocks.js:470 +#: js/blocks/EnsembleBlocks.js:708 +#: js/blocks/EnsembleBlocks.js:810 +#: js/blocks/EnsembleBlocks.js:872 +#: js/blocks/EnsembleBlocks.js:1192 +#: js/blocks/EnsembleBlocks.js:1255 msgid "Cannot find turtle" msgstr "" -#: js/EnsembleBlocks.js:206 +#: js/blocks/EnsembleBlocks.js:206 msgid "start mouse" msgstr "" -#: js/EnsembleBlocks.js:209 +#: js/blocks/EnsembleBlocks.js:209 msgid "The Start mouse block starts the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:220 +#: js/blocks/EnsembleBlocks.js:220 msgid "start turtle" msgstr "" -#: js/EnsembleBlocks.js:223 +#: js/blocks/EnsembleBlocks.js:223 msgid "The Start turtle block starts the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:256 +#: js/blocks/EnsembleBlocks.js:256 msgid "Mouse is already running." msgstr "" -#: js/EnsembleBlocks.js:258 +#: js/blocks/EnsembleBlocks.js:258 msgid "Turtle is already running." msgstr "" -#: js/EnsembleBlocks.js:282 +#: js/blocks/EnsembleBlocks.js:282 msgid "Cannot find start block" msgstr "" -#: js/EnsembleBlocks.js:292 +#: js/blocks/EnsembleBlocks.js:292 #.TRANS: pen color for this mouse msgid "mouse color" msgstr "" -#: js/EnsembleBlocks.js:294 +#: js/blocks/EnsembleBlocks.js:294 msgid "The Mouse color block returns the pen color of the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:306 +#: js/blocks/EnsembleBlocks.js:306 #.TRANS: pen color for this turtle msgid "turtle color" msgstr "" -#: js/EnsembleBlocks.js:308 +#: js/blocks/EnsembleBlocks.js:308 msgid "The Turtle color block returns the pen color of the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:338 +#: js/blocks/EnsembleBlocks.js:338 #.TRANS: heading (compass direction) for this mouse msgid "mouse heading" msgstr "" -#: js/EnsembleBlocks.js:340 +#: js/blocks/EnsembleBlocks.js:340 msgid "The Mouse heading block returns the heading of the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:352 +#: js/blocks/EnsembleBlocks.js:352 #.TRANS: heading (compass direction) for this turtle msgid "turtle heading" msgstr "" -#: js/EnsembleBlocks.js:354 +#: js/blocks/EnsembleBlocks.js:354 msgid "The Turtle heading block returns the heading of the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:384 -#: js/EnsembleBlocks.js:439 +#: js/blocks/EnsembleBlocks.js:384 +#: js/blocks/EnsembleBlocks.js:439 #.TRANS: set xy position for this mouse msgid "set mouse" msgstr "" -#: js/EnsembleBlocks.js:391 -#: js/EnsembleBlocks.js:402 -#: js/BoxesBlocks.js:595 -msgid "name1" -msgstr "" - -#: js/EnsembleBlocks.js:391 -#: js/EnsembleBlocks.js:402 -#: js/ProgramBlocks.js:881 -#: js/GraphicsBlocks.js:235 -#: js/GraphicsBlocks.js:313 -#: js/GraphicsBlocks.js:436 -#: js/GraphicsBlocks.js:487 -#: js/GraphicsBlocks.js:534 -#: js/GraphicsBlocks.js:750 +#: js/blocks/EnsembleBlocks.js:391 +#: js/blocks/EnsembleBlocks.js:402 +#: js/blocks/GraphicsBlocks.js:235 +#: js/blocks/GraphicsBlocks.js:313 +#: js/blocks/GraphicsBlocks.js:436 +#: js/blocks/GraphicsBlocks.js:487 +#: js/blocks/GraphicsBlocks.js:534 +#: js/blocks/GraphicsBlocks.js:750 +#: js/blocks/ProgramBlocks.js:881 msgid "x" msgstr "X座標" -#: js/EnsembleBlocks.js:391 -#: js/EnsembleBlocks.js:402 -#: js/ProgramBlocks.js:881 -#: js/GraphicsBlocks.js:149 -#: js/GraphicsBlocks.js:313 -#: js/GraphicsBlocks.js:436 -#: js/GraphicsBlocks.js:487 -#: js/GraphicsBlocks.js:534 -#: js/GraphicsBlocks.js:750 +#: js/blocks/EnsembleBlocks.js:391 +#: js/blocks/EnsembleBlocks.js:402 +#: js/blocks/GraphicsBlocks.js:149 +#: js/blocks/GraphicsBlocks.js:313 +#: js/blocks/GraphicsBlocks.js:436 +#: js/blocks/GraphicsBlocks.js:487 +#: js/blocks/GraphicsBlocks.js:534 +#: js/blocks/GraphicsBlocks.js:750 +#: js/blocks/ProgramBlocks.js:881 msgid "y" msgstr "Y座標" -#: js/EnsembleBlocks.js:395 -#: js/EnsembleBlocks.js:452 +#: js/blocks/EnsembleBlocks.js:395 +#: js/blocks/EnsembleBlocks.js:452 #.TRANS: set xy position for this turtle msgid "set turtle" msgstr "" -#: js/EnsembleBlocks.js:433 +#: js/blocks/EnsembleBlocks.js:433 msgid "The Set mouse block sends a stack of blocks to be run by the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:446 +#: js/blocks/EnsembleBlocks.js:446 msgid "The Set turtle block sends a stack of blocks to be run by the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:480 +#: js/blocks/EnsembleBlocks.js:480 #.TRANS: y position for this mouse msgid "mouse y" msgstr "滑鼠座標 y" -#: js/EnsembleBlocks.js:482 +#: js/blocks/EnsembleBlocks.js:482 msgid "The Y mouse block returns the Y position of the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:494 +#: js/blocks/EnsembleBlocks.js:494 #.TRANS: y position for this turtle msgid "turtle y" msgstr "" -#: js/EnsembleBlocks.js:496 +#: js/blocks/EnsembleBlocks.js:496 msgid "The Y turtle block returns the Y position of the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:526 +#: js/blocks/EnsembleBlocks.js:526 #.TRANS: x position for this mouse msgid "mouse x" msgstr "滑鼠座標 x" -#: js/EnsembleBlocks.js:528 +#: js/blocks/EnsembleBlocks.js:528 msgid "The X mouse block returns the X position of the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:540 +#: js/blocks/EnsembleBlocks.js:540 #.TRANS: x position for this turtle msgid "turtle x" msgstr "" -#: js/EnsembleBlocks.js:542 +#: js/blocks/EnsembleBlocks.js:542 msgid "The X turtle block returns the X position of the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:573 +#: js/blocks/EnsembleBlocks.js:573 #.TRANS: notes played by this mouse msgid "mouse notes played" msgstr "" -#: js/EnsembleBlocks.js:575 +#: js/blocks/EnsembleBlocks.js:575 msgid "The Mouse elapse notes block returns the number of notes played by the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:587 +#: js/blocks/EnsembleBlocks.js:587 #.TRANS: notes played by this turtle msgid "turtle notes played" msgstr "" -#: js/EnsembleBlocks.js:589 +#: js/blocks/EnsembleBlocks.js:589 msgid "The Turtle elapse notes block returns the number of notes played by the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:627 +#: js/blocks/EnsembleBlocks.js:627 #.TRANS: convert current note for this turtle to piano key (1-88) msgid "mouse pitch number" msgstr "" -#: js/EnsembleBlocks.js:629 +#: js/blocks/EnsembleBlocks.js:629 msgid "The Mouse pitch block returns the current pitch number being played by the specified mouse." msgstr "" -#: js/EnsembleBlocks.js:641 +#: js/blocks/EnsembleBlocks.js:641 #.TRANS: convert current note for this turtle to piano key (1-88) msgid "turtle pitch number" msgstr "" -#: js/EnsembleBlocks.js:643 -msgid "The Turrle pitch block returns the current pitch number being played by the specified turtle." +#: js/blocks/EnsembleBlocks.js:643 +msgid "The Turtle pitch block returns the current pitch number being played by the specified turtle." msgstr "" -#: js/EnsembleBlocks.js:747 -#: js/EnsembleBlocks.js:819 +#: js/blocks/EnsembleBlocks.js:747 +#: js/blocks/EnsembleBlocks.js:819 #.TRANS: note value is the duration of the note played by this mouse msgid "mouse note value" msgstr "" -#: js/EnsembleBlocks.js:757 +#: js/blocks/EnsembleBlocks.js:757 #.TRANS: note value is the duration of the note played by this turtle msgid "turtle note value" msgstr "" -#: js/EnsembleBlocks.js:830 +#: js/blocks/EnsembleBlocks.js:830 #.TRANS: sync is short for synchronization msgid "mouse sync" msgstr "" -#: js/EnsembleBlocks.js:832 +#: js/blocks/EnsembleBlocks.js:832 msgid "The Mouse sync block aligns the beat count between mice." msgstr "" -#: js/EnsembleBlocks.js:844 +#: js/blocks/EnsembleBlocks.js:844 #.TRANS: sync is short for synchronization msgid "turtle sync" msgstr "" -#: js/EnsembleBlocks.js:846 +#: js/blocks/EnsembleBlocks.js:846 msgid "The Turtle sync block aligns the beat count between turtles." msgstr "" -#: js/EnsembleBlocks.js:887 +#: js/blocks/EnsembleBlocks.js:887 msgid "The Found mouse block will return true if the specified mouse can be found." msgstr "" -#: js/EnsembleBlocks.js:893 +#: js/blocks/EnsembleBlocks.js:893 msgid "found mouse" msgstr "" -#: js/EnsembleBlocks.js:903 +#: js/blocks/EnsembleBlocks.js:903 msgid "The Found turtle block will return true if the specified turtle can be found." msgstr "" -#: js/EnsembleBlocks.js:909 +#: js/blocks/EnsembleBlocks.js:909 msgid "found turtle" msgstr "" -#: js/EnsembleBlocks.js:932 +#: js/blocks/EnsembleBlocks.js:932 msgid "new mouse" msgstr "" -#: js/EnsembleBlocks.js:934 +#: js/blocks/EnsembleBlocks.js:934 msgid "The New mouse block will create a new mouse." msgstr "" -#: js/EnsembleBlocks.js:945 +#: js/blocks/EnsembleBlocks.js:945 msgid "new turtle" msgstr "" -#: js/EnsembleBlocks.js:947 +#: js/blocks/EnsembleBlocks.js:947 msgid "The New turtle block will create a new turtle." msgstr "" -#: js/EnsembleBlocks.js:1011 +#: js/blocks/EnsembleBlocks.js:1011 msgid "set mouse color" msgstr "" -#: js/EnsembleBlocks.js:1014 +#: js/blocks/EnsembleBlocks.js:1014 msgid "The Set-mouse-color block is used to set the color of a mouse." msgstr "" -#: js/EnsembleBlocks.js:1020 +#: js/blocks/EnsembleBlocks.js:1020 msgid "set turtle color" msgstr "" -#: js/EnsembleBlocks.js:1023 +#: js/blocks/EnsembleBlocks.js:1023 msgid "The Set-turtle-color block is used to set the color of a turtle." msgstr "" -#: js/EnsembleBlocks.js:1083 +#: js/blocks/EnsembleBlocks.js:1083 msgid "The Mouse-name block returns the name of a mouse." msgstr "" -#: js/EnsembleBlocks.js:1092 +#: js/blocks/EnsembleBlocks.js:1092 msgid "The Turtle-name block returns the name of a turtle." msgstr "" -#: js/EnsembleBlocks.js:1115 +#: js/blocks/EnsembleBlocks.js:1115 msgid "mouse count" msgstr "" -#: js/EnsembleBlocks.js:1118 +#: js/blocks/EnsembleBlocks.js:1118 msgid "The Mouse-count block returns the number of mice." msgstr "" -#: js/EnsembleBlocks.js:1124 +#: js/blocks/EnsembleBlocks.js:1124 msgid "turtle count" msgstr "" -#: js/EnsembleBlocks.js:1127 +#: js/blocks/EnsembleBlocks.js:1127 msgid "The Turtle-count block returns the number of turtles." msgstr "" -#: js/EnsembleBlocks.js:1149 +#: js/blocks/EnsembleBlocks.js:1149 msgid "nth mouse name" msgstr "" -#: js/EnsembleBlocks.js:1152 +#: js/blocks/EnsembleBlocks.js:1152 msgid "The Nth-Mouse name block returns the name of the nth mouse." msgstr "" -#: js/EnsembleBlocks.js:1158 -msgid "nth turtle name" -msgstr "" - -#: js/EnsembleBlocks.js:1161 -msgid "The Nth-Turtle name block returns the name of the nth turtle." -msgstr "" - -#: js/EnsembleBlocks.js:1205 -#: js/EnsembleBlocks.js:1265 -msgid "set name" -msgstr "" - -#: js/EnsembleBlocks.js:1214 -#: js/EnsembleBlocks.js:1221 -msgid "source" -msgstr "" - -#: js/EnsembleBlocks.js:1214 -#: js/EnsembleBlocks.js:1221 -msgid "target" -msgstr "" - -#: js/EnsembleBlocks.js:1271 -msgid "The Set-name block is used to name a mouse." -msgstr "" - -#: js/EnsembleBlocks.js:1284 -msgid "The Set-name block is used to name a turtle." -msgstr "" - -#: js/BooleanBlocks.js:44 -msgid "The Not block is the logical not operator." -msgstr "" - -#: js/BooleanBlocks.js:62 -msgid "not" -msgstr "否" - -#: js/BooleanBlocks.js:134 -msgid "The And block is the logical and operator." -msgstr "" - -#: js/BooleanBlocks.js:152 -msgid "and" -msgstr "且" - -#: js/BooleanBlocks.js:218 -msgid "The Or block is the logical or operator." -msgstr "" - -#: js/BooleanBlocks.js:236 -msgid "or" -msgstr "或" - -#: js/BooleanBlocks.js:302 -msgid "The XOR block is the logical XOR operator." -msgstr "" - -#: js/BooleanBlocks.js:320 -msgid "xor" -msgstr "" - -#: js/BooleanBlocks.js:808 -msgid "The Equal block returns True if the two numbers are equal." -msgstr "" - -#: js/BooleanBlocks.js:909 -msgid "The Not-equal-to block returns True if the two numbers are not equal to each other." -msgstr "" - -#: js/BooleanBlocks.js:1008 -msgid "The Boolean block is used to specify true or false." -msgstr "" - -#: js/MediaBlocks.js:35 -#.TRANS: right side of the screen -msgid "right (screen)" -msgstr "" - -#: js/MediaBlocks.js:45 -#: js/MediaBlocks.js:56 -msgid "The Right block returns the position of the right of the canvas." +#: js/blocks/EnsembleBlocks.js:1158 +msgid "nth turtle name" msgstr "" -#: js/MediaBlocks.js:97 -#.TRANS: left side of the screen -msgid "left (screen)" +#: js/blocks/EnsembleBlocks.js:1161 +msgid "The Nth-Turtle name block returns the name of the nth turtle." msgstr "" -#: js/MediaBlocks.js:107 -#: js/MediaBlocks.js:118 -msgid "The Left block returns the position of the left of the canvas." +#: js/blocks/EnsembleBlocks.js:1205 +#: js/blocks/EnsembleBlocks.js:1265 +msgid "set name" msgstr "" -#: js/MediaBlocks.js:158 -msgid "top (screen)" +#: js/blocks/EnsembleBlocks.js:1214 +#: js/blocks/EnsembleBlocks.js:1221 +msgid "source" msgstr "" -#: js/MediaBlocks.js:168 -#: js/MediaBlocks.js:179 -msgid "The Top block returns the position of the top of the canvas." +#: js/blocks/EnsembleBlocks.js:1214 +#: js/blocks/EnsembleBlocks.js:1221 +msgid "target" msgstr "" -#: js/MediaBlocks.js:219 -msgid "bottom (screen)" +#: js/blocks/EnsembleBlocks.js:1271 +msgid "The Set-name block is used to name a mouse." msgstr "" -#: js/MediaBlocks.js:229 -#: js/MediaBlocks.js:240 -msgid "The Bottom block returns the position of the bottom of the canvas." +#: js/blocks/EnsembleBlocks.js:1284 +msgid "The Set-name block is used to name a turtle." msgstr "" -#: js/MediaBlocks.js:282 -msgid "width" +#: js/blocks/ExtrasBlocks.js:33 +msgid "fraction" msgstr "" -#: js/MediaBlocks.js:291 -msgid "The Width block returns the width of the canvas." +#: js/blocks/ExtrasBlocks.js:36 +msgid "Convert a float to a fraction" msgstr "" -#: js/MediaBlocks.js:325 -msgid "height" +#: js/blocks/ExtrasBlocks.js:93 +msgid "save as ABC" msgstr "" -#: js/MediaBlocks.js:334 -msgid "The Height block returns the height of the canvas." +#: js/blocks/ExtrasBlocks.js:96 +#: js/blocks/ExtrasBlocks.js:132 +#: js/blocks/ExtrasBlocks.js:168 +msgid "title" msgstr "" -#: js/MediaBlocks.js:369 -#.TRANS: stops playback of an audio recording -msgid "stop play" +#: js/blocks/ExtrasBlocks.js:129 +msgid "save as Lilypond" msgstr "" -#: js/MediaBlocks.js:404 -#.TRANS: Erases the images and text -msgid "erase media" +#: js/blocks/ExtrasBlocks.js:165 +msgid "save as SVG" msgstr "" -#: js/MediaBlocks.js:409 -msgid "The Erase Media block erases text and images." +#: js/blocks/ExtrasBlocks.js:216 +msgid "no background" msgstr "" -#: js/MediaBlocks.js:439 -#.TRANS: play an audio recording -msgid "play back" +#: js/blocks/ExtrasBlocks.js:219 +msgid "The No background block eliminates the background from the saved SVG output." msgstr "" -#: js/MediaBlocks.js:487 -msgid "speak" -msgstr "聽我說" +#: js/blocks/ExtrasBlocks.js:247 +msgid "show blocks" +msgstr "顯示區塊" -#: js/MediaBlocks.js:495 -msgid "The Speak block outputs to the text-to-speech synthesizer" +#: js/blocks/ExtrasBlocks.js:249 +msgid "The Show blocks block shows the blocks." msgstr "" -#: js/MediaBlocks.js:546 -msgid "camera" -msgstr "" +#: js/blocks/ExtrasBlocks.js:274 +msgid "hide blocks" +msgstr "隱藏區塊" -#: js/MediaBlocks.js:551 -msgid "The Camera block connects a webcam to the Show block." +#: js/blocks/ExtrasBlocks.js:276 +msgid "The Hide blocks block hides the blocks." msgstr "" -#: js/MediaBlocks.js:574 -msgid "video" +#: js/blocks/ExtrasBlocks.js:305 +#: js/blocks/ExtrasBlocks.js:338 +msgid "The Space block is used to add space between blocks." msgstr "" -#: js/MediaBlocks.js:579 -msgid "The Video block selects video for use with the Show block." -msgstr "" +#: js/blocks/ExtrasBlocks.js:376 +msgid "wait" +msgstr "等待" -#: js/MediaBlocks.js:607 -msgid "The Open file block opens a file for use with the Show block." +#: js/blocks/ExtrasBlocks.js:379 +msgid "The Wait block pauses the program for a specified number of seconds." msgstr "" -#: js/MediaBlocks.js:645 -msgid "stop media" -msgstr "" +#: js/blocks/ExtrasBlocks.js:433 +#: plugins/facebook.rtp:30 +msgid "comment" +msgstr "註記" -#: js/MediaBlocks.js:650 -msgid "The Stop media block stops audio or video playback." -msgstr "" +#: js/blocks/ExtrasBlocks.js:469 +msgid "print" +msgstr "顯示" -#: js/MediaBlocks.js:679 -#: js/PitchBlocks.js:1539 -#: js/phrasemaker.js:822 -#: js/musickeyboard.js:1654 -#.TRANS: a measure of frequency: one cycle per second -msgid "hertz" +#: js/blocks/ExtrasBlocks.js:476 +msgid "The Print block displays text at the top of the screen." msgstr "" -#: js/MediaBlocks.js:692 -msgid "duration (ms)" +#: js/blocks/ExtrasBlocks.js:582 +msgid "display grid" msgstr "" -#: js/MediaBlocks.js:728 -#.TRANS: translate a note into hertz, e.g., A4 -> 440HZ -msgid "note to frequency" +#: js/blocks/ExtrasBlocks.js:587 +msgid "The Display Grid Block changes the grid type" msgstr "" -#: js/MediaBlocks.js:736 -msgid "The To frequency block converts a pitch name and octave to Hertz." +#: js/blocks/ExtrasBlocks.js:689 +#: js/blocks/ExtrasBlocks.js:708 +#: js/blocks/ExtrasBlocks.js:731 +#: js/blocks/ExtrasBlocks.js:754 +#: js/blocks/ExtrasBlocks.js:772 +#: js/blocks/ExtrasBlocks.js:791 +#: js/blocks/ExtrasBlocks.js:810 +#: js/blocks/ExtrasBlocks.js:829 +msgid "unknown" msgstr "" -#: js/MediaBlocks.js:746 -#: js/PitchBlocks.js:656 -#: js/PitchBlocks.js:932 -#: js/PitchBlocks.js:1827 -#.TRANS: name2 is name as in name of pitch (JAPANESE ONLY) -msgid "name2" +#: js/blocks/FlowBlocks.js:41 +msgid "The Backward block runs code in reverse order (Musical retrograde)." msgstr "" -#: js/MediaBlocks.js:812 -msgid "The Avatar block is used to change the appearance of the mouse." +#: js/blocks/FlowBlocks.js:48 +msgid "backward" msgstr "" -#: js/MediaBlocks.js:819 -msgid "The Avatar block is used to change the appearance of the turtle." +#: js/blocks/FlowBlocks.js:124 +msgid "The Duplicate block will run each block multiple times." msgstr "" -#: js/MediaBlocks.js:831 -#: js/MediaBlocks.js:891 -#.TRANS: a media object -msgid "size" +#: js/blocks/FlowBlocks.js:136 +msgid "duplicate" msgstr "" -#: js/MediaBlocks.js:831 -msgid "image" -msgstr "圖片" - -#: js/MediaBlocks.js:880 -msgid "The Show block is used to display text or images on the canvas." +#: js/blocks/FlowBlocks.js:334 +msgid "The Default block is used inside of a Switch to define the default action." msgstr "" -#: js/MediaBlocks.js:888 -#.TRANS: show1 is show as in display an image or text on the screen. -msgid "show1" +#: js/blocks/FlowBlocks.js:342 +msgid "default" msgstr "" -#: js/MediaBlocks.js:891 -msgid "obj" +#: js/blocks/FlowBlocks.js:361 +#: js/blocks/FlowBlocks.js:418 +msgid "The Case Block must be used inside of a Switch Block." msgstr "" -#: js/MediaBlocks.js:938 -msgid "The Media block is used to import an image." +#: js/blocks/FlowBlocks.js:389 +msgid "The Case block is used inside of a Switch to define matches." msgstr "" -#: js/MediaBlocks.js:973 -msgid "The Text block holds a text string." +#: js/blocks/FlowBlocks.js:397 +msgid "case" msgstr "" -#: js/ProgramBlocks.js:33 -msgid "The Load-heap-from-app block loads the heap from a web page." +#: js/blocks/FlowBlocks.js:446 +msgid "The Switch block will run the code in the matching Case." msgstr "" -#: js/ProgramBlocks.js:44 -#.TRANS: load the heap contents from a URL -msgid "load heap from App" +#: js/blocks/FlowBlocks.js:454 +msgid "switch" msgstr "" -#: js/ProgramBlocks.js:95 -msgid "Error parsing JSON data:" +#: js/blocks/FlowBlocks.js:595 +msgid "The Stop block will stop a loop" msgstr "" -#: js/ProgramBlocks.js:100 -msgid "404: Page not found" +#: js/blocks/FlowBlocks.js:597 +msgid "Forever, Repeat, While, or Until." msgstr "" -#: js/ProgramBlocks.js:133 -msgid "The Save-heap-to-app block saves the heap to a web page." -msgstr "" +#: js/blocks/FlowBlocks.js:604 +#: js/widgets/timbre.js:417 +#: js/widgets/timbre.js:419 +#: js/widgets/musickeyboard.js:819 +#: js/widgets/musickeyboard.js:821 +#: js/widgets/phrasemaker.js:4202 +#: plugins/rodi.rtp:29 +#: plugins/rodi.rtp:73 +#: plugins/rodi.rtp:413 +msgid "stop" +msgstr "停止" -#: js/ProgramBlocks.js:144 -#.TRANS: save the heap contents to a URL -msgid "save heap to App" +#: js/blocks/FlowBlocks.js:653 +msgid "The Waitfor block will wait until the condition is true." msgstr "" -#: js/ProgramBlocks.js:189 -msgid "Cannot find a valid heap for" +#: js/blocks/FlowBlocks.js:661 +msgid "wait for" msgstr "" -#: js/ProgramBlocks.js:206 -msgid "The Load-heap block loads the heap from a file." +#: js/blocks/FlowBlocks.js:732 +msgid "The Until block will repeat until the condition is true." msgstr "" -#: js/ProgramBlocks.js:217 -#.TRANS: load the heap from a file -msgid "load heap" -msgstr "" +#: js/blocks/FlowBlocks.js:740 +msgid "until" +msgstr "直到" -#: js/ProgramBlocks.js:270 -msgid "The file you selected does not contain a valid heap." +#: js/blocks/FlowBlocks.js:742 +#: js/blocks/FlowBlocks.js:822 +msgid "do2" msgstr "" -#: js/ProgramBlocks.js:275 -msgid "The loadHeap block needs a loadFile block." +#: js/blocks/FlowBlocks.js:812 +msgid "The While block will repeat while the condition is true." msgstr "" -#: js/ProgramBlocks.js:291 -msgid "The Set-heap block loads the heap." -msgstr "" +#: js/blocks/FlowBlocks.js:820 +msgid "while" +msgstr "同時間" -#: js/ProgramBlocks.js:299 -#: js/HeapBlocks.js:539 -#.TRANS: load the heap from a JSON encoding -msgid "set heap" +#: js/blocks/FlowBlocks.js:903 +#: js/blocks/FlowBlocks.js:968 +#: js/blocks/FlowBlocks.js:979 +msgid "In this example if the mouse button is pressed a snare drum will play." msgstr "" -#: js/ProgramBlocks.js:340 -msgid "The block you selected does not contain a valid heap." -msgstr "" +#: js/blocks/FlowBlocks.js:925 +#: js/blocks/FlowBlocks.js:988 +msgid "if" +msgstr "若" -#: js/ProgramBlocks.js:343 -msgid "The Set heap block needs a heap." -msgstr "" +#: js/blocks/FlowBlocks.js:927 +#: js/blocks/FlowBlocks.js:990 +msgid "then" +msgstr "則" -#: js/ProgramBlocks.js:360 -msgid "The Load-dictionary block loads a dictionary from a file." -msgstr "" +#: js/blocks/FlowBlocks.js:927 +msgid "else" +msgstr "否則" -#: js/ProgramBlocks.js:372 -#.TRANS: load a dictionary from a file -msgid "load dictionary" +#: js/blocks/FlowBlocks.js:1025 +msgid "The Forever block will repeat the contained blocks forever." msgstr "" -#: js/ProgramBlocks.js:390 -#: js/ProgramBlocks.js:658 -#: js/ToneBlocks.js:1025 -msgid "file" +#: js/blocks/FlowBlocks.js:1037 +msgid "forever" +msgstr "持續執行" + +#: js/blocks/FlowBlocks.js:1073 +msgid "The Repeat block will repeat the contained blocks." msgstr "" -#: js/ProgramBlocks.js:396 -#: js/ProgramBlocks.js:501 -#: js/ProgramBlocks.js:664 -#: js/DictBlocks.js:80 -#: js/DictBlocks.js:145 -#: js/DictBlocks.js:216 -#: js/DictBlocks.js:290 -msgid "My Dictionary" +#: js/blocks/FlowBlocks.js:1075 +msgid "In this example the note will be played 4 times." msgstr "" -#: js/ProgramBlocks.js:444 -msgid "The file you selected does not contain a valid dictionary." +#: js/blocks/FlowBlocks.js:1083 +msgid "repeat" +msgstr "重複" + +#: js/blocks/FlowBlocks.js:1123 +msgid "duplicate factor" msgstr "" -#: js/ProgramBlocks.js:449 -msgid "The load dictionary block needs a load file block." +#: js/blocks/HeapBlocks.js:49 +msgid "The Heap block returns the heap." msgstr "" -#: js/ProgramBlocks.js:466 -msgid "The Set-dictionary block loads a dictionary." +#: js/blocks/HeapBlocks.js:133 +msgid "show heap" +msgstr "顯示堆疊" + +#: js/blocks/HeapBlocks.js:181 +msgid "The Heap-length block returns the length of the heap." msgstr "" -#: js/ProgramBlocks.js:477 -#.TRANS: load a dictionary from a JSON -msgid "set dictionary" +#: js/blocks/HeapBlocks.js:195 +msgid "heap length" msgstr "" -#: js/ProgramBlocks.js:546 -msgid "The block you selected does not contain a valid dictionary." +#: js/blocks/HeapBlocks.js:254 +msgid "The Heap-empty? block returns true if the heap is empty." msgstr "" -#: js/ProgramBlocks.js:550 -msgid "The set dictionary block needs a dictionary." +#: js/blocks/HeapBlocks.js:268 +#.TRANS: Is the heap empty? +msgid "heap empty?" msgstr "" -#: js/ProgramBlocks.js:567 -msgid "The Save-heap block saves the heap to a file." +#: js/blocks/HeapBlocks.js:317 +msgid "The Empty-heap block empties the heap." msgstr "" -#: js/ProgramBlocks.js:578 -#.TRANS: save the heap to a file -msgid "save heap" +#: js/blocks/HeapBlocks.js:327 +#: js/blocks/HeapBlocks.js:647 +#.TRANS: empty the heap +msgid "empty heap" +msgstr "清除堆疊" + +#: js/blocks/HeapBlocks.js:371 +msgid "The Reverse-heap block reverses the order of the heap." msgstr "" -#: js/ProgramBlocks.js:629 -msgid "The Save-dictionary block saves a dictionary to a file." +#: js/blocks/HeapBlocks.js:384 +#.TRANS: reverse the order of the heap +msgid "reverse heap" msgstr "" -#: js/ProgramBlocks.js:640 -#.TRANS: save a dictionary to a file -msgid "save dictionary" +#: js/blocks/HeapBlocks.js:428 +msgid "The Index-heap block returns a value in the heap at a specified location." msgstr "" -#: js/ProgramBlocks.js:720 -msgid "The Open palette block opens a palette." +#: js/blocks/HeapBlocks.js:443 +#.TRANS: retrieve a value from the heap at index position in the heap +msgid "index heap" msgstr "" -#: js/ProgramBlocks.js:727 -msgid "open palette" +#: js/blocks/HeapBlocks.js:523 +msgid "The Set-heap entry block sets a value in he heap at the specified location." msgstr "" -#: js/ProgramBlocks.js:785 -msgid "The Delete block block removes a block." +#: js/blocks/HeapBlocks.js:539 +#: js/blocks/ProgramBlocks.js:299 +#.TRANS: load the heap from a JSON encoding +msgid "set heap" msgstr "" -#: js/ProgramBlocks.js:797 -#.TRANS: Move this block to the trash. -msgid "delete block" +#: js/blocks/HeapBlocks.js:619 +msgid "The Pop block removes the value at the top of the heap." msgstr "" -#: js/ProgramBlocks.js:861 -msgid "The Move block block moves a block." +#: js/blocks/HeapBlocks.js:633 +#.TRANS: pop a value off the top of the heap +msgid "pop" +msgstr "取出堆疊" + +#: js/blocks/HeapBlocks.js:680 +msgid "The Push block adds a value to the top of the heap." msgstr "" -#: js/ProgramBlocks.js:869 -#.TRANS: Move the position of a block on the screen. -msgid "move block" +#: js/blocks/HeapBlocks.js:696 +#.TRANS: push a value onto the top of the heap +msgid "push" +msgstr "存入堆疊" + +#: js/blocks/IntervalsBlocks.js:45 +msgid "set temperament" msgstr "" -#: js/ProgramBlocks.js:881 -#: js/ProgramBlocks.js:1048 -msgid "block number" +#: js/blocks/IntervalsBlocks.js:63 +#: js/blocks/MediaBlocks.js:746 +#: js/blocks/PitchBlocks.js:657 +#: js/blocks/PitchBlocks.js:935 +#: js/blocks/PitchBlocks.js:974 +#: js/blocks/PitchBlocks.js:1007 +#: js/blocks/PitchBlocks.js:1194 +#: js/blocks/PitchBlocks.js:1717 +#: js/blocks/PitchBlocks.js:1758 +#: js/blocks/PitchBlocks.js:1866 +#: js/blocks/ToneBlocks.js:1025 +#: js/turtleactions/IntervalsActions.js:114 +#.TRANS: adjusts the shift up or down by one octave (twelve half-steps in the interval between two notes, one having twice or half the frequency in Hz of the other.) +msgid "octave" msgstr "" -#: js/ProgramBlocks.js:935 -#.TRANS: Run program beginning at this block. -msgid "run block" +#: js/blocks/IntervalsBlocks.js:99 +msgid "The Temperament name block is used to select a tuning method." msgstr "" -#: js/ProgramBlocks.js:1025 -msgid "The Dock block block connections two blocks." +#: js/blocks/IntervalsBlocks.js:161 +msgid "doubly" msgstr "" -#: js/ProgramBlocks.js:1036 -#.TRANS: We can connect a block to another block. -msgid "connect blocks" +#: js/blocks/IntervalsBlocks.js:166 +msgid "The Doubly block will double the size of an interval." msgstr "" -#: js/ProgramBlocks.js:1048 -msgid "target block" +#: js/blocks/IntervalsBlocks.js:262 +msgid "interval number" msgstr "" -#: js/ProgramBlocks.js:1048 -msgid "connection number" +#: js/blocks/IntervalsBlocks.js:317 +msgid "current interval" msgstr "" -#: js/ProgramBlocks.js:1140 -msgid "The Make block block creates a new block." +#: js/blocks/IntervalsBlocks.js:387 +#.TRANS: measure the distance between two pitches in semi-tones +msgid "semi-tone interval measure" msgstr "" -#: js/ProgramBlocks.js:1152 -#.TRANS: Create a new block -msgid "make block" +#: js/blocks/IntervalsBlocks.js:454 +#: js/blocks/IntervalsBlocks.js:570 +msgid "You must use two pitch blocks when measuring an interval." msgstr "" -#: js/ProgramBlocks.js:1186 -#: js/ProgramBlocks.js:1227 -#: js/RhythmBlocks.js:1128 -#: js/PitchBlocks.js:972 -#: js/PitchBlocks.js:1005 -#: js/temperament.js:340 -#: js/temperament.js:362 -#: js/temperament.js:372 -#: js/temperament.js:484 -#: js/status.js:190 -#: plugins/rodi.rtp:192 -#.TRANS: a musical note consisting of pitch and duration -msgid "note" +#: js/blocks/IntervalsBlocks.js:496 +msgid "The Scalar interval block measures the distance between two notes in the current key and mode." msgstr "" -#: js/ProgramBlocks.js:1285 -msgid "Cannot find block" +#: js/blocks/IntervalsBlocks.js:502 +#.TRANS: measure the distance between two pitches in steps of musical scale +msgid "scalar interval measure" msgstr "" -#: js/ProgramBlocks.js:1304 -#: js/ProgramBlocks.js:1313 -msgid "Warning: block argument type mismatch" +#: js/blocks/IntervalsBlocks.js:678 +msgid "In the figure, we add sol# to sol." msgstr "" -#: js/ProgramBlocks.js:1347 -msgid "The Open project block is used to open a project from a web page." +#: js/blocks/IntervalsBlocks.js:684 +#: js/blocks/OrnamentBlocks.js:220 +#.TRANS: calculate a relative step between notes based on semi-tones +msgid "semi-tone interval" msgstr "" -#: js/ProgramBlocks.js:1357 -msgid "open project" +#: js/blocks/IntervalsBlocks.js:733 +msgid "The output of the example is: do, mi, sol, sol, ti, mi" msgstr "" -#: js/ProgramBlocks.js:1410 -msgid "Please enter a valid URL." +#: js/blocks/IntervalsBlocks.js:740 +#: js/blocks/WidgetBlocks.js:768 +msgid "arpeggio" msgstr "" -#: js/DrumBlocks.js:59 -msgid "The Noise name block is used to select a noise synthesizer." +#: js/blocks/IntervalsBlocks.js:931 +msgid "The Chord block calculates common chords." msgstr "" -#: js/DrumBlocks.js:102 -msgid "The Drum name block is used to select a drum." +#: js/blocks/IntervalsBlocks.js:933 +msgid "In the figure, we generate a C-major chord." msgstr "" -#: js/DrumBlocks.js:146 -msgid "The Effects name block is used to select a sound effect." +#: js/blocks/IntervalsBlocks.js:938 +msgid "chord" msgstr "" -#: js/DrumBlocks.js:163 -msgid "noise" +#: js/blocks/IntervalsBlocks.js:990 +msgid "The Ratio Interval block calculates an interval based on a ratio." msgstr "" -#: js/DrumBlocks.js:177 -msgid "The Play noise block will generate white, pink, or brown noise." +#: js/blocks/IntervalsBlocks.js:995 +msgid "ratio interval" msgstr "" -#: js/DrumBlocks.js:191 -#: js/musicutils.js:752 -#: js/synthutils.js:47 -#.TRANS: white noise synthesizer -msgid "white noise" +#: js/blocks/IntervalsBlocks.js:1064 +msgid "In the figure, we add la to sol." msgstr "" -#: js/DrumBlocks.js:326 -msgid "Replace every instance of a pitch with a drum sound." +#: js/blocks/IntervalsBlocks.js:1120 +#.TRANS: define a custom mode +msgid "define mode" msgstr "" -#: js/DrumBlocks.js:337 -#.TRANS: map a pitch to a drum sound -msgid "map pitch to drum" +#: js/blocks/IntervalsBlocks.js:1173 +msgid "movable Do" msgstr "" -#: js/DrumBlocks.js:404 -msgid "In the example above, a kick drum sound will be played instead of sol." +#: js/blocks/IntervalsBlocks.js:1224 +#.TRANS: mode length is the number of notes in the mode, e.g., 7 for major and minor scales; 12 for chromatic scales +msgid "mode length" msgstr "" -#: js/DrumBlocks.js:416 -#.TRANS: set the current drum sound for playback -msgid "set drum" +#: js/blocks/IntervalsBlocks.js:1233 +msgid "The Mode length block is the number of notes in the current scale." msgstr "" -#: js/DrumBlocks.js:460 -msgid "sound effect" +#: js/blocks/IntervalsBlocks.js:1235 +msgid "Most Western scales have 7 notes." msgstr "" -#: js/DrumBlocks.js:498 -msgid "You can use multiple Drum blocks within a Note block." +#: js/blocks/IntervalsBlocks.js:1284 +#.TRANS: the mode in music is 'major', 'minor', etc. +msgid "current mode" msgstr "" -#: js/RhythmBlocks.js:182 -#: js/RhythmBlocks.js:1086 -#: js/RhythmBlocks.js:1162 -msgid "Note value must be greater than 0." +#: js/blocks/IntervalsBlocks.js:1337 +#.TRANS: the key is a group of pitches with which a music composition is created +msgid "current key" msgstr "" -#: js/RhythmBlocks.js:215 -#: js/RhythmBlocks.js:278 -#: js/RhythmBlocks.js:350 -#.TRANS: swing is a rhythmic variation that emphasises the offbeat -msgid "swing" +#: js/blocks/IntervalsBlocks.js:1389 +#: js/blocks/IntervalsBlocks.js:1434 +#.TRANS: set the key and mode, e.g. C Major +msgid "set key" msgstr "" -#: js/RhythmBlocks.js:355 -#.TRANS: the amount to shift to the offbeat note -msgid "swing value" +#: js/blocks/IntervalsBlocks.js:1443 +#: js/blocks/IntervalsBlocks.js:1449 +msgid "The Set key block is used to set the key and mode," msgstr "" -#: js/RhythmBlocks.js:419 -msgid "The Skip notes block will cause notes to be skipped." +#: js/blocks/IntervalsBlocks.js:1449 +msgid "eg C Major" msgstr "" -#: js/RhythmBlocks.js:427 -#.TRANS: substitute rests on notes being skipped -msgid "skip notes" +#: js/blocks/MediaBlocks.js:35 +#.TRANS: right side of the screen +msgid "right (screen)" msgstr "" -#: js/RhythmBlocks.js:489 -#.TRANS: speed up note duration by some factor, e.g. convert 1/4 to 1/8 notes by using a factor of 2 -msgid "multiply note value" +#: js/blocks/MediaBlocks.js:45 +#: js/blocks/MediaBlocks.js:56 +msgid "The Right block returns the position of the right of the canvas." msgstr "" -#: js/RhythmBlocks.js:542 -msgid "The Tie block works on pairs of notes, combining them into one note." +#: js/blocks/MediaBlocks.js:97 +#.TRANS: left side of the screen +msgid "left (screen)" msgstr "" -#: js/RhythmBlocks.js:550 -#.TRANS: tie notes together into one longer note -msgid "tie" +#: js/blocks/MediaBlocks.js:107 +#: js/blocks/MediaBlocks.js:118 +msgid "The Left block returns the position of the left of the canvas." msgstr "" -#: js/RhythmBlocks.js:591 -#: js/RhythmBlocks.js:671 -#.TRANS: a dotted note is played for 1.5x its value, e.g., 1/8. --> 3/16 -msgid "dot" +#: js/blocks/MediaBlocks.js:158 +msgid "top (screen)" msgstr "" -#: js/RhythmBlocks.js:619 -#: js/RhythmActions.js:221 -msgid "An argument of -1 results in a note value of 0." +#: js/blocks/MediaBlocks.js:168 +#: js/blocks/MediaBlocks.js:179 +msgid "The Top block returns the position of the top of the canvas." msgstr "" -#: js/RhythmBlocks.js:661 -msgid "The Dot block extends the duration of a note by 50%." +#: js/blocks/MediaBlocks.js:219 +msgid "bottom (screen)" msgstr "" -#: js/RhythmBlocks.js:663 -msgid "Eg a dotted quarter note will play for 3/8 (1/4 + 1/8) of a beat." +#: js/blocks/MediaBlocks.js:229 +#: js/blocks/MediaBlocks.js:240 +msgid "The Bottom block returns the position of the bottom of the canvas." msgstr "" -#: js/RhythmBlocks.js:765 -#.TRANS: Japanese only: note value block for drum -msgid "note value drum" +#: js/blocks/MediaBlocks.js:282 +msgid "width" msgstr "" -#: js/RhythmBlocks.js:829 -msgid "392 hertz" +#: js/blocks/MediaBlocks.js:291 +msgid "The Width block returns the width of the canvas." msgstr "" -#: js/RhythmBlocks.js:1119 -msgid "The Note block is a container for one or more Pitch blocks." +#: js/blocks/MediaBlocks.js:325 +msgid "height" msgstr "" -#: js/RhythmBlocks.js:1121 -msgid "The Note block specifies the duration (note value) of its contents." +#: js/blocks/MediaBlocks.js:334 +msgid "The Height block returns the height of the canvas." msgstr "" -#: js/RhythmBlocks.js:1130 -msgid "value2" +#: js/blocks/MediaBlocks.js:369 +#.TRANS: stops playback of an audio recording +msgid "stop play" msgstr "" -#: js/RhythmBlocks.js:1200 -msgid "define frequency" +#: js/blocks/MediaBlocks.js:404 +#.TRANS: Erases the images and text +msgid "erase media" msgstr "" -#: js/RhythmBlocks.js:1218 -#: js/temperament.js:650 -#: js/temperament.js:1421 -msgid "octave space" +#: js/blocks/MediaBlocks.js:409 +msgid "The Erase Media block erases text and images." msgstr "" -#: js/NumberBlocks.js:28 -msgid "The Int block returns an integer." +#: js/blocks/MediaBlocks.js:439 +#.TRANS: play an audio recording +msgid "play back" msgstr "" -#: js/NumberBlocks.js:34 -msgid "int" -msgstr "" +#: js/blocks/MediaBlocks.js:487 +msgid "speak" +msgstr "聽我說" -#: js/NumberBlocks.js:73 -msgid "The Mod block returns the remainder from a division." +#: js/blocks/MediaBlocks.js:495 +msgid "The Speak block outputs to the text-to-speech synthesizer" msgstr "" -#: js/NumberBlocks.js:79 -msgid "mod" -msgstr "模數" +#: js/blocks/MediaBlocks.js:546 +msgid "camera" +msgstr "" -#: js/NumberBlocks.js:123 -msgid "The Power block calculates a power function." +#: js/blocks/MediaBlocks.js:551 +msgid "The Camera block connects a webcam to the Show block." msgstr "" -#: js/NumberBlocks.js:178 -msgid "The Sqrt block returns the square root." +#: js/blocks/MediaBlocks.js:574 +msgid "video" msgstr "" -#: js/NumberBlocks.js:184 -msgid "sqrt" +#: js/blocks/MediaBlocks.js:579 +msgid "The Video block selects video for use with the Show block." msgstr "" -#: js/NumberBlocks.js:230 -msgid "The Abs block returns the absolute value." +#: js/blocks/MediaBlocks.js:607 +msgid "The Open file block opens a file for use with the Show block." msgstr "" -#: js/NumberBlocks.js:236 -msgid "abs" +#: js/blocks/MediaBlocks.js:645 +msgid "stop media" msgstr "" -#: js/NumberBlocks.js:277 -msgid "The Distance block returns the distance between two points. For example, between the mouse and the center of the screen." +#: js/blocks/MediaBlocks.js:650 +msgid "The Stop media block stops audio or video playback." msgstr "" -#: js/NumberBlocks.js:283 -#: plugins/rodi.rtp:310 -msgid "distance" +#: js/blocks/MediaBlocks.js:679 +#: js/blocks/PitchBlocks.js:1577 +#: js/widgets/musickeyboard.js:1936 +#: js/widgets/phrasemaker.js:1037 +#.TRANS: a measure of frequency: one cycle per second +msgid "hertz" msgstr "" -#: js/NumberBlocks.js:343 -msgid "The Divide block is used to divide." +#: js/blocks/MediaBlocks.js:692 +#: js/blocks/WidgetBlocks.js:182 +#: js/widgets/temperament.js:506 +#: js/widgets/temperament.js:546 +#: js/widgets/temperament.js:610 +#: js/widgets/temperament.js:618 +#: js/widgets/temperament.js:1505 +#: js/widgets/timbre.js:1842 +msgid "frequency" msgstr "" -#: js/NumberBlocks.js:411 -msgid "The Multiply block is used to multiply." +#: js/blocks/MediaBlocks.js:692 +msgid "duration (ms)" msgstr "" -#: js/NumberBlocks.js:554 -msgid "The Minus block is used to subtract." +#: js/blocks/MediaBlocks.js:728 +#.TRANS: translate a note into hertz, e.g., A4 -> 440HZ +msgid "note to frequency" msgstr "" -#: js/NumberBlocks.js:647 -msgid "The Plus block is used to add." +#: js/blocks/MediaBlocks.js:736 +msgid "The To frequency block converts a pitch name and octave to Hertz." msgstr "" -#: js/NumberBlocks.js:773 -msgid "The One-of block returns one of two choices." +#: js/blocks/MediaBlocks.js:746 +#: js/blocks/PitchBlocks.js:656 +#: js/blocks/PitchBlocks.js:934 +#: js/blocks/PitchBlocks.js:1866 +#.TRANS: name2 is name as in name of pitch (JAPANESE ONLY) +msgid "name2" msgstr "" -#: js/NumberBlocks.js:780 -#: js/PitchBlocks.js:616 -msgid "one of" +#: js/blocks/MediaBlocks.js:812 +msgid "The Avatar block is used to change the appearance of the mouse." msgstr "" -#: js/NumberBlocks.js:782 -msgid "this" +#: js/blocks/MediaBlocks.js:819 +msgid "The Avatar block is used to change the appearance of the turtle." msgstr "" -#: js/NumberBlocks.js:782 -msgid "that" +#: js/blocks/MediaBlocks.js:831 +#: js/blocks/MediaBlocks.js:891 +#.TRANS: a media object +msgid "size" msgstr "" -#: js/NumberBlocks.js:837 -msgid "The Random block returns a random number." +#: js/blocks/MediaBlocks.js:831 +msgid "image" +msgstr "圖片" + +#: js/blocks/MediaBlocks.js:880 +msgid "The Show block is used to display text or images on the canvas." msgstr "" -#: js/NumberBlocks.js:844 -msgid "random" -msgstr "亂數" +#: js/blocks/MediaBlocks.js:888 +#.TRANS: show1 is show as in display an image or text on the screen. +msgid "show1" +msgstr "" -#: js/NumberBlocks.js:846 -msgid "min" -msgstr "最小" +#: js/blocks/MediaBlocks.js:891 +msgid "obj" +msgstr "" -#: js/NumberBlocks.js:846 -msgid "max" -msgstr "最大" +#: js/blocks/MediaBlocks.js:938 +msgid "The Media block is used to import an image." +msgstr "" -#: js/NumberBlocks.js:910 -msgid "The Number block holds a number." +#: js/blocks/MediaBlocks.js:973 +msgid "The Text block holds a text string." msgstr "" -#: js/BoxesBlocks.js:53 -#: js/BoxesBlocks.js:59 -msgid "The Add-to block is used to add to the value stored in a box." +#: js/blocks/MeterBlocks.js:34 +#.TRANS: musical meter (time signature), e.g., 4:4 +msgid "current meter" msgstr "" -#: js/BoxesBlocks.js:61 -msgid "It can also be used with other blocks such as Color and Pen size." +#: js/blocks/MeterBlocks.js:85 +#.TRANS: number of beats per minute +msgid "beat factor" msgstr "" -#: js/BoxesBlocks.js:73 -msgid "add" +#: js/blocks/MeterBlocks.js:161 +msgid "The Beats per minute block returns the current beats per minute." msgstr "" -#: js/BoxesBlocks.js:75 -#: js/temperament.js:716 -msgid "to" +#: js/blocks/MeterBlocks.js:169 +#: js/widgets/status.js:152 +#.TRANS: number of beats played per minute +msgid "beats per minute2" msgstr "" -#: js/BoxesBlocks.js:75 -#: js/BoxesBlocks.js:595 -#: js/HeapBlocks.js:544 -msgid "value1" +#: js/blocks/MeterBlocks.js:169 +#: js/blocks/MeterBlocks.js:1056 +#: js/blocks/MeterBlocks.js:1133 +#: js/blocks/MeterBlocks.js:1211 +#.TRANS: sets tempo by defining a beat and beats per minute +msgid "beats per minute" msgstr "" -#: js/BoxesBlocks.js:118 -msgid "Block does not support incrementing." +#: js/blocks/MeterBlocks.js:233 +#.TRANS: count of current musical measure in meter +msgid "measure count" msgstr "" -#: js/BoxesBlocks.js:152 -msgid "The Add-1-to block adds one to the value stored in a box." +#: js/blocks/MeterBlocks.js:241 +msgid "The Measure count block returns the current measure." msgstr "" -#: js/BoxesBlocks.js:163 -msgid "add 1 to" +#: js/blocks/MeterBlocks.js:290 +#.TRANS: count of current beat in the meter +msgid "beat count" msgstr "" -#: js/BoxesBlocks.js:211 -msgid "The Subtract-1-from block subtracts one from the value stored in a box." +#: js/blocks/MeterBlocks.js:300 +#: js/blocks/MeterBlocks.js:311 +#: js/blocks/MeterBlocks.js:565 +#: js/blocks/MeterBlocks.js:576 +msgid "The Beat count block is the number of the current beat," msgstr "" -#: js/BoxesBlocks.js:222 -msgid "subtract 1 from" +#: js/blocks/MeterBlocks.js:313 +#: js/blocks/MeterBlocks.js:578 +msgid "eg 1, 2, 3, or 4." msgstr "" -#: js/BoxesBlocks.js:270 -#: js/BoxesBlocks.js:387 -msgid "The Box block returns the value stored in a box." +#: js/blocks/MeterBlocks.js:368 +#.TRANS: count the number of notes +msgid "sum note values" msgstr "" -#: js/BoxesBlocks.js:500 -#: js/BoxesBlocks.js:576 -msgid "The Store in block will store a value in a box." +#: js/blocks/MeterBlocks.js:376 +#: js/blocks/MeterBlocks.js:440 +msgid "The Note counter block can be used to count the number of contained notes." msgstr "" -#: js/BoxesBlocks.js:652 -msgid "The Box2 block returns the value stored in Box2." +#: js/blocks/MeterBlocks.js:432 +#.TRANS: count the number of notes +msgid "note counter" msgstr "" -#: js/BoxesBlocks.js:703 -msgid "The Store in Box2 block is used to store a value in Box2." +#: js/blocks/MeterBlocks.js:496 +#.TRANS: number of whole notes that have been played +msgid "whole notes played" msgstr "" -#: js/BoxesBlocks.js:715 -msgid "store in box2" +#: js/blocks/MeterBlocks.js:505 +msgid "The Whole notes played block returns the total number of whole notes played." msgstr "" -#: js/BoxesBlocks.js:761 -msgid "The Box1 block returns the value stored in Box1." +#: js/blocks/MeterBlocks.js:555 +#: js/turtleactions/DictActions.js:83 +#.TRANS: number of notes that have been played +msgid "notes played" msgstr "" -#: js/BoxesBlocks.js:812 -msgid "The Store in Box1 block is used to store a value in Box1." +#: js/blocks/MeterBlocks.js:653 +msgid "The No clock block decouples the notes from the master clock." msgstr "" -#: js/BoxesBlocks.js:826 -msgid "store in box1" +#: js/blocks/MeterBlocks.js:661 +#.TRANS: don't lock notes to master clock +msgid "no clock" msgstr "" -#: js/HeapBlocks.js:49 -msgid "The Heap block returns the heap." +#: js/blocks/MeterBlocks.js:700 +msgid "on weak beat do" msgstr "" -#: js/HeapBlocks.js:133 -msgid "show heap" -msgstr "顯示堆疊" +#: js/blocks/MeterBlocks.js:705 +msgid "The On-weak-beat block lets you specify actions to take on weak (off) beats." +msgstr "" -#: js/HeapBlocks.js:181 -msgid "The Heap-length block returns the length of the heap." +#: js/blocks/MeterBlocks.js:750 +msgid "on strong beat" msgstr "" -#: js/HeapBlocks.js:195 -msgid "heap length" +#: js/blocks/MeterBlocks.js:758 +msgid "The On-strong-beat block lets you specify actions to take on specified beats." msgstr "" -#: js/HeapBlocks.js:254 -msgid "The Heap-empty? block returns true if the heap is empty." +#: js/blocks/MeterBlocks.js:769 +msgid "beat" msgstr "" -#: js/HeapBlocks.js:268 -#.TRANS: Is the heap empty? -msgid "heap empty?" +#: js/blocks/MeterBlocks.js:813 +msgid "on every beat do" msgstr "" -#: js/HeapBlocks.js:317 -msgid "The Empty-heap block empties the heap." +#: js/blocks/MeterBlocks.js:821 +msgid "The On-every-beat block lets you specify actions to take on every beat." msgstr "" -#: js/HeapBlocks.js:327 -#: js/HeapBlocks.js:647 -#.TRANS: empty the heap -msgid "empty heap" -msgstr "清除堆疊" +#: js/blocks/MeterBlocks.js:874 +msgid "on every note do" +msgstr "" -#: js/HeapBlocks.js:371 -msgid "The Reverse-heap block reverses the order of the heap." +#: js/blocks/MeterBlocks.js:882 +msgid "The On-every-note block lets you specify actions to take on every note." msgstr "" -#: js/HeapBlocks.js:384 -#.TRANS: reverse the order of the heap -msgid "reverse heap" +#: js/blocks/MeterBlocks.js:928 +#: js/blocks/MeterBlocks.js:999 +#.TRANS: sets tempo by defining a beat and beats per minute +msgid "master beats per minute" msgstr "" -#: js/HeapBlocks.js:428 -msgid "The Index-heap block returns a value in the heap at a specified location." +#: js/blocks/MeterBlocks.js:952 +#: js/blocks/MeterBlocks.js:1078 +#: js/blocks/MeterBlocks.js:1135 +msgid "bpm" msgstr "" -#: js/HeapBlocks.js:443 -#.TRANS: retrieve a value from the heap at index position in the heap -msgid "index heap" +#: js/blocks/MeterBlocks.js:952 +#: js/blocks/MeterBlocks.js:1078 +#: js/blocks/MeterBlocks.js:1135 +msgid "beat value" msgstr "" -#: js/HeapBlocks.js:523 -msgid "The Set-heap entry block sets a value in he heap at the specified location." +#: js/blocks/MeterBlocks.js:1024 +#: js/blocks/MeterBlocks.js:1167 +#: js/blocks/MeterBlocks.js:1241 +msgid "Beats per minute must be > 30." msgstr "" -#: js/HeapBlocks.js:619 -msgid "The Pop block removes the value at the top of the heap." +#: js/blocks/MeterBlocks.js:1027 +#: js/blocks/MeterBlocks.js:1170 +#: js/blocks/MeterBlocks.js:1244 +msgid "Maximum beats per minute is 1000." msgstr "" -#: js/HeapBlocks.js:633 -#.TRANS: pop a value off the top of the heap -msgid "pop" -msgstr "取出堆疊" +#: js/blocks/MeterBlocks.js:1068 +msgid "The Beats per minute block sets the number of 1/4 notes per minute." +msgstr "" -#: js/HeapBlocks.js:680 -msgid "The Push block adds a value to the top of the heap." +#: js/blocks/MeterBlocks.js:1279 +#.TRANS: anacrusis +msgid "pickup" msgstr "" -#: js/HeapBlocks.js:696 -#.TRANS: push a value onto the top of the heap -msgid "push" -msgstr "存入堆疊" +#: js/blocks/MeterBlocks.js:1367 +msgid "number of beats" +msgstr "" -#: js/FlowBlocks.js:41 -msgid "The Backward block runs code in reverse order (Musical retrograde)." +#: js/blocks/NumberBlocks.js:28 +msgid "The Int block returns an integer." msgstr "" -#: js/FlowBlocks.js:48 -msgid "backward" +#: js/blocks/NumberBlocks.js:34 +msgid "int" msgstr "" -#: js/FlowBlocks.js:124 -msgid "The Duplicate block will run each block multiple times." +#: js/blocks/NumberBlocks.js:73 +msgid "The Mod block returns the remainder from a division." msgstr "" -#: js/FlowBlocks.js:136 -msgid "duplicate" +#: js/blocks/NumberBlocks.js:79 +msgid "mod" +msgstr "模數" + +#: js/blocks/NumberBlocks.js:141 +msgid "The Power block calculates a power function." msgstr "" -#: js/FlowBlocks.js:334 -msgid "The Default block is used inside of a Switch to define the default action." +#: js/blocks/NumberBlocks.js:196 +msgid "The Sqrt block returns the square root." msgstr "" -#: js/FlowBlocks.js:342 -msgid "default" +#: js/blocks/NumberBlocks.js:202 +msgid "sqrt" msgstr "" -#: js/FlowBlocks.js:361 -#: js/FlowBlocks.js:418 -msgid "The Case Block must be used inside of a Switch Block." +#: js/blocks/NumberBlocks.js:248 +msgid "The Abs block returns the absolute value." msgstr "" -#: js/FlowBlocks.js:389 -msgid "The Case block is used inside of a Switch to define matches." +#: js/blocks/NumberBlocks.js:254 +msgid "abs" msgstr "" -#: js/FlowBlocks.js:397 -msgid "case" +#: js/blocks/NumberBlocks.js:295 +msgid "The Distance block returns the distance between two points. For example, between the mouse and the center of the screen." msgstr "" -#: js/FlowBlocks.js:446 -msgid "The Switch block will run the code in the matching Case." +#: js/blocks/NumberBlocks.js:301 +#: plugins/rodi.rtp:310 +msgid "distance" msgstr "" -#: js/FlowBlocks.js:454 -msgid "switch" +#: js/blocks/NumberBlocks.js:361 +msgid "The Divide block is used to divide." msgstr "" -#: js/FlowBlocks.js:595 -msgid "The Stop block will stop a loop" +#: js/blocks/NumberBlocks.js:441 +msgid "The Multiply block is used to multiply." msgstr "" -#: js/FlowBlocks.js:597 -msgid "Forever, Repeat, While, or Until." +#: js/blocks/NumberBlocks.js:612 +msgid "The Minus block is used to subtract." msgstr "" -#: js/FlowBlocks.js:604 -#: js/phrasemaker.js:3799 -#: js/musickeyboard.js:629 -#: js/musickeyboard.js:631 -#: js/timbre.js:417 -#: js/timbre.js:419 -#: plugins/rodi.rtp:29 -#: plugins/rodi.rtp:73 -#: plugins/rodi.rtp:413 -msgid "stop" -msgstr "停止" - -#: js/FlowBlocks.js:653 -msgid "The Waitfor block will wait until the condition is true." +#: js/blocks/NumberBlocks.js:723 +msgid "The Plus block is used to add." msgstr "" -#: js/FlowBlocks.js:661 -msgid "wait for" +#: js/blocks/NumberBlocks.js:849 +msgid "The One-of block returns one of two choices." msgstr "" -#: js/FlowBlocks.js:732 -msgid "The Until block will repeat until the condition is true." +#: js/blocks/NumberBlocks.js:856 +#: js/blocks/PitchBlocks.js:616 +msgid "one of" msgstr "" -#: js/FlowBlocks.js:740 -msgid "until" -msgstr "直到" - -#: js/FlowBlocks.js:742 -#: js/FlowBlocks.js:822 -msgid "do2" +#: js/blocks/NumberBlocks.js:858 +msgid "this" msgstr "" -#: js/FlowBlocks.js:812 -msgid "The While block will repeat while the condition is true." +#: js/blocks/NumberBlocks.js:858 +msgid "that" msgstr "" -#: js/FlowBlocks.js:820 -msgid "while" -msgstr "同時間" - -#: js/FlowBlocks.js:903 -#: js/FlowBlocks.js:968 -#: js/FlowBlocks.js:979 -msgid "In this example if the mouse button is pressed a snare drum will play." +#: js/blocks/NumberBlocks.js:913 +msgid "The Random block returns a random number." msgstr "" -#: js/FlowBlocks.js:925 -#: js/FlowBlocks.js:988 -msgid "if" -msgstr "若" +#: js/blocks/NumberBlocks.js:920 +msgid "random" +msgstr "亂數" -#: js/FlowBlocks.js:927 -#: js/FlowBlocks.js:990 -msgid "then" -msgstr "則" +#: js/blocks/NumberBlocks.js:922 +msgid "min" +msgstr "最小" -#: js/FlowBlocks.js:927 -msgid "else" -msgstr "否則" +#: js/blocks/NumberBlocks.js:922 +msgid "max" +msgstr "最大" -#: js/FlowBlocks.js:1025 -msgid "The Forever block will repeat the contained blocks forever." +#: js/blocks/NumberBlocks.js:986 +msgid "The Number block holds a number." msgstr "" -#: js/FlowBlocks.js:1037 -msgid "forever" -msgstr "持續執行" - -#: js/FlowBlocks.js:1073 -msgid "The Repeat block will repeat the contained blocks." +#: js/blocks/OrnamentBlocks.js:32 +msgid "staccato factor" msgstr "" -#: js/FlowBlocks.js:1075 -msgid "In this example the note will be played 4 times." +#: js/blocks/OrnamentBlocks.js:108 +msgid "slur factor" msgstr "" -#: js/FlowBlocks.js:1083 -msgid "repeat" -msgstr "重複" - -#: js/FlowBlocks.js:1123 -msgid "duplicate factor" +#: js/blocks/OrnamentBlocks.js:217 +#: js/blocks/OrnamentBlocks.js:309 +#.TRANS: the neighbor refers to a neighboring note, e.g., D is a neighbor of C +msgid "neighbor" msgstr "" -#: js/PitchBlocks.js:39 -#: js/musicutils.js:722 -#: js/musicutils.js:1117 -#: js/synthutils.js:112 -#.TRANS: square wave -msgid "square" +#: js/blocks/OrnamentBlocks.js:293 +msgid "The Neighbor block rapidly switches between neighboring pitches." msgstr "" -#: js/PitchBlocks.js:62 -#: js/ToneBlocks.js:39 -#: js/musicutils.js:723 -#: js/musicutils.js:1118 -#: js/synthutils.js:116 -#.TRANS: triangle wave -msgid "triangle" +#: js/blocks/OrnamentBlocks.js:364 +msgid "glide" msgstr "" -#: js/PitchBlocks.js:85 -#: js/musicutils.js:721 -#: js/musicutils.js:1116 -#: js/synthutils.js:110 -#.TRANS: sine wave -msgid "sine" +#: js/blocks/OrnamentBlocks.js:479 +#: js/blocks/OrnamentBlocks.js:643 +msgid "slur" msgstr "" -#: js/PitchBlocks.js:108 -#: js/musicutils.js:724 -#: js/musicutils.js:1119 -#: js/synthutils.js:114 -#.TRANS: sawtooth wave -msgid "sawtooth" +#: js/blocks/OrnamentBlocks.js:558 +#: js/blocks/OrnamentBlocks.js:710 +#.TRANS: play each note sharply detached from the others +msgid "staccato" msgstr "" -#: js/PitchBlocks.js:141 -#.TRANS: musical transposition (adjustment of pitch up or down) -msgid "transposition" +#: js/blocks/RhythmBlocks.js:182 +#: js/blocks/RhythmBlocks.js:1086 +#: js/blocks/RhythmBlocks.js:1162 +msgid "Note value must be greater than 0." msgstr "" -#: js/PitchBlocks.js:168 -#.TRANS: step down one note in current musical scale -msgid "scalar step down" +#: js/blocks/RhythmBlocks.js:215 +#: js/blocks/RhythmBlocks.js:278 +#: js/blocks/RhythmBlocks.js:350 +#.TRANS: swing is a rhythmic variation that emphasises the offbeat +msgid "swing" msgstr "" -#: js/PitchBlocks.js:172 -msgid "The Scalar step down block returns the number of semi-tones down to the previous note in the current key and mode." +#: js/blocks/RhythmBlocks.js:355 +#.TRANS: the amount to shift to the offbeat note +msgid "swing value" msgstr "" -#: js/PitchBlocks.js:190 -#.TRANS: step up one note in current musical scale -msgid "scalar step up" +#: js/blocks/RhythmBlocks.js:419 +msgid "The Skip notes block will cause notes to be skipped." msgstr "" -#: js/PitchBlocks.js:194 -msgid "The Scalar step up block returns the number of semi-tones up to the next note in the current key and mode." +#: js/blocks/RhythmBlocks.js:427 +#.TRANS: substitute rests on notes being skipped +msgid "skip notes" msgstr "" -#: js/PitchBlocks.js:212 -#.TRANS: the change measured in half-steps between the current pitch and the previous pitch -msgid "change in pitch" +#: js/blocks/RhythmBlocks.js:489 +#.TRANS: speed up note duration by some factor, e.g. convert 1/4 to 1/8 notes by using a factor of 2 +msgid "multiply note value" msgstr "" -#: js/PitchBlocks.js:216 -msgid "The Change in pitch block is the difference (in half steps) between the current pitch being played and the previous pitch played." +#: js/blocks/RhythmBlocks.js:542 +msgid "The Tie block works on pairs of notes, combining them into one note." msgstr "" -#: js/PitchBlocks.js:243 -#.TRANS: the change measured in scale-steps between the current pitch and the previous pitch -msgid "scalar change in pitch" +#: js/blocks/RhythmBlocks.js:550 +#.TRANS: tie notes together into one longer note +msgid "tie" msgstr "" -#: js/PitchBlocks.js:250 -#: js/PitchBlocks.js:432 -#: js/PitchBlocks.js:1629 -#: js/DictActions.js:89 -#: js/temperament.js:477 -#: js/temperament.js:481 -#: js/temperament.js:714 -#.TRANS: convert current note to piano key (1-88) -#.TRANS: a mapping of pitch to the 88 piano keys -msgid "pitch number" +#: js/blocks/RhythmBlocks.js:591 +#: js/blocks/RhythmBlocks.js:671 +#.TRANS: a dotted note is played for 1.5x its value, e.g., 1/8. --> 3/16 +msgid "dot" msgstr "" -#: js/PitchBlocks.js:256 -msgid "The Pitch number block is the value of the pitch of the note currently being played." +#: js/blocks/RhythmBlocks.js:619 +#: js/turtleactions/RhythmActions.js:221 +msgid "An argument of -1 results in a note value of 0." msgstr "" -#: js/PitchBlocks.js:329 -#: js/PitchBlocks.js:433 -#.TRANS: the current pitch expressed in Hertz -msgid "pitch in hertz" +#: js/blocks/RhythmBlocks.js:661 +msgid "The Dot block extends the duration of a note by 50%." msgstr "" -#: js/PitchBlocks.js:334 -msgid "The Pitch in Hertz block is the value in Hertz of the pitch of the note currently being played." +#: js/blocks/RhythmBlocks.js:663 +msgid "Eg a dotted quarter note will play for 3/8 (1/4 + 1/8) of a beat." msgstr "" -#: js/PitchBlocks.js:367 -#: js/DictActions.js:87 -msgid "current pitch" +#: js/blocks/RhythmBlocks.js:765 +#.TRANS: Japanese only: note value block for drum +msgid "note value drum" msgstr "" -#: js/PitchBlocks.js:373 -msgid "The Current Pitch block is used with the Pitch Converter block. In the example above, current pitch, sol 4, is displayed as 392 hertz." +#: js/blocks/RhythmBlocks.js:829 +msgid "392 hertz" msgstr "" -#: js/PitchBlocks.js:410 -msgid "This block converts the pitch value of the last note played into different formats such as hertz, letter name, pitch number, et al." +#: js/blocks/RhythmBlocks.js:1119 +msgid "The Note block is a container for one or more Pitch blocks." msgstr "" -#: js/PitchBlocks.js:434 -msgid "alphabet" +#: js/blocks/RhythmBlocks.js:1121 +msgid "The Note block specifies the duration (note value) of its contents." msgstr "" -#: js/PitchBlocks.js:436 -#.TRANS: Translate as "alphabet class" -msgid "letter class" +#: js/blocks/RhythmBlocks.js:1128 +#: js/blocks/PitchBlocks.js:974 +#: js/blocks/PitchBlocks.js:1007 +#: js/blocks/ProgramBlocks.js:1186 +#: js/blocks/ProgramBlocks.js:1227 +#: js/widgets/status.js:190 +#: js/widgets/temperament.js:464 +#: js/widgets/temperament.js:486 +#: js/widgets/temperament.js:496 +#: js/widgets/temperament.js:617 +#: plugins/rodi.rtp:192 +#.TRANS: a musical note consisting of pitch and duration +msgid "note" msgstr "" -#: js/PitchBlocks.js:437 -msgid "solfege class" +#: js/blocks/RhythmBlocks.js:1130 +msgid "value2" msgstr "" -#: js/PitchBlocks.js:438 -msgid "staff y" +#: js/blocks/RhythmBlocks.js:1200 +msgid "define frequency" msgstr "" -#: js/PitchBlocks.js:439 -msgid "solfege syllable" +#: js/blocks/RhythmBlocks.js:1218 +#: js/widgets/temperament.js:787 +#: js/widgets/temperament.js:1587 +msgid "octave space" msgstr "" -#: js/PitchBlocks.js:440 -msgid "pitch class" +#: js/blocks/SensorsBlocks.js:36 +msgid "The Input block prompts for keyboard input." msgstr "" -#: js/PitchBlocks.js:441 -msgid "scalar class" +#: js/blocks/SensorsBlocks.js:46 +msgid "input" msgstr "" -#: js/PitchBlocks.js:443 -msgid "nth degree" +#: js/blocks/SensorsBlocks.js:64 +msgid "Input a value" msgstr "" -#: js/PitchBlocks.js:444 -msgid "pitch to shade" +#: js/blocks/SensorsBlocks.js:126 +msgid "input value" msgstr "" -#: js/PitchBlocks.js:445 -msgid "pitch to color" +#: js/blocks/SensorsBlocks.js:131 +msgid "The Input-value block stores the input." msgstr "" -#: js/PitchBlocks.js:629 -#: js/musickeyboard.js:565 -#.TRANS: MIDI is a technical standard for electronic music -msgid "MIDI" -msgstr "" +#: js/blocks/SensorsBlocks.js:238 +msgid "loudness" +msgstr "音量" -#: js/PitchBlocks.js:642 -#.TRANS: set an offset associated with the numeric piano keyboard mapping -msgid "set pitch number offset" +#: js/blocks/SensorsBlocks.js:245 +msgid "The Loudness block returns the volume detected by the microphone." msgstr "" -#: js/PitchBlocks.js:645 -msgid "The Set pitch number offset block is used to set the offset for mapping pitch numbers to pitch and octave." +#: js/blocks/SensorsBlocks.js:300 +msgid "click" msgstr "" -#: js/PitchBlocks.js:679 -#.TRANS: convert piano key number (1-88) to pitch -msgid "number to pitch" +#: js/blocks/SensorsBlocks.js:306 +msgid "The Click block triggers an event if a mouse has been clicked." msgstr "" -#: js/PitchBlocks.js:682 -msgid "The Number to pitch block will convert a pitch number to a pich name." +#: js/blocks/SensorsBlocks.js:313 +msgid "The Click block triggers an event if a turtle has been clicked." msgstr "" -#: js/PitchBlocks.js:715 -#.TRANS: convert piano key number (1-88) to octave -msgid "number to octave" +#: js/blocks/SensorsBlocks.js:342 +msgid "cursor over" msgstr "" -#: js/PitchBlocks.js:717 -msgid "The Number to octave block will convert a pitch number to an octave." +#: js/blocks/SensorsBlocks.js:387 +msgid "cursor out" msgstr "" -#: js/PitchBlocks.js:726 -msgid "y to pitch" +#: js/blocks/SensorsBlocks.js:433 +msgid "cursor button down" msgstr "" -#: js/PitchBlocks.js:729 -msgid "Y to pitch block will convert a staff y position to corresponding pitch notation." +#: js/blocks/SensorsBlocks.js:477 +msgid "cursor button up" msgstr "" -#: js/PitchBlocks.js:841 -msgid "accidental selector" +#: js/blocks/SensorsBlocks.js:521 +#: js/blocks/PenBlocks.js:48 +#: plugins/rodi.rtp:219 +msgid "blue" msgstr "" -#: js/PitchBlocks.js:844 -msgid "The Accidental selector block is used to choose between double-sharp, sharp, natural, flat, and double-flat." +#: js/blocks/SensorsBlocks.js:577 +#: js/blocks/PenBlocks.js:64 +#: plugins/rodi.rtp:218 +msgid "green" msgstr "" -#: js/PitchBlocks.js:858 -msgid "Pitch can be specified in terms of ni dha pa ma ga re sa." +#: js/blocks/SensorsBlocks.js:633 +#: js/blocks/PenBlocks.js:112 +#: plugins/rodi.rtp:217 +msgid "red" msgstr "" -#: js/PitchBlocks.js:872 -msgid "Pitch can be specified in terms of C D E F G A B." +#: js/blocks/SensorsBlocks.js:638 +msgid "The Get red block returns the red component of the pixel under the mouse." msgstr "" -#: js/PitchBlocks.js:883 -msgid "solfege" +#: js/blocks/SensorsBlocks.js:644 +msgid "The Get red block returns the red component of the pixel under the turtle." msgstr "" -#: js/PitchBlocks.js:886 -msgid "Pitch can be specified in terms of do re mi fa sol la ti." +#: js/blocks/SensorsBlocks.js:685 +#: plugins/rodi.rtp:216 +msgid "pixel color" msgstr "" -#: js/PitchBlocks.js:920 -msgid "The Invert block rotates any contained notes around a target note." +#: js/blocks/SensorsBlocks.js:690 +msgid "The Get pixel block returns the color of the pixel under the mouse." msgstr "" -#: js/PitchBlocks.js:927 -#.TRANS: pitch inversion rotates a pitch around another pitch -msgid "invert" +#: js/blocks/SensorsBlocks.js:696 +msgid "The Get pixel block returns the color of the pixel under the turtle." msgstr "" -#: js/PitchBlocks.js:929 -#: js/PitchBlocks.js:935 -#: js/PitchActions.js:727 -#: js/musicutils.js:726 -#: js/musicutils.js:902 -#.TRANS: invert based on even or odd number or musical scale -#.TRANS: even numbers -msgid "even" -msgstr "" +#: js/blocks/SensorsBlocks.js:758 +msgid "time" +msgstr "時間" -#: js/PitchBlocks.js:935 -#: js/PitchActions.js:729 -#: js/musicutils.js:728 -#: js/musicutils.js:903 -#.TRANS: odd numbers -msgid "odd" +#: js/blocks/SensorsBlocks.js:804 +msgid "cursor y" msgstr "" -#: js/PitchBlocks.js:935 -#: js/PitchActions.js:731 -#: js/musicutils.js:729 -#: js/musicutils.js:904 -msgid "scalar" +#: js/blocks/SensorsBlocks.js:809 +msgid "The Cursor Y block returns the vertical position of the mouse." msgstr "" -#: js/PitchBlocks.js:966 -#.TRANS: pitch inversion rotates a pitch around another pitch (odd number) -msgid "invert (odd)" +#: js/blocks/SensorsBlocks.js:845 +msgid "cursor x" msgstr "" -#: js/PitchBlocks.js:999 -#.TRANS: pitch inversion rotates a pitch around another pitch (even number) -msgid "invert (even)" +#: js/blocks/SensorsBlocks.js:850 +msgid "The Cursor X block returns the horizontal position of the mouse." msgstr "" -#: js/PitchBlocks.js:1020 -#.TRANS: register is the octave of the current pitch -msgid "register" +#: js/blocks/SensorsBlocks.js:886 +msgid "mouse button" msgstr "" -#: js/PitchBlocks.js:1024 -msgid "The Register block provides an easy way to modify the register (octave) of the notes that follow it." +#: js/blocks/SensorsBlocks.js:888 +msgid "The Mouse-button block returns True if the mouse button is pressed." msgstr "" -#: js/PitchBlocks.js:1074 -msgid "The Semi-tone transposition block will shift the pitches contained inside Note blocks up (or down) by half steps." +#: js/blocks/SensorsBlocks.js:934 +msgid "to ASCII" msgstr "" -#: js/PitchBlocks.js:1076 -msgid "In the example shown above, sol is shifted up to sol#." +#: js/blocks/SensorsBlocks.js:938 +msgid "The To ASCII block converts numbers to letters." msgstr "" -#: js/PitchBlocks.js:1082 -#.TRANS: adjust the amount of shift (up or down) of a pitch -msgid "semi-tone transpose" +#: js/blocks/SensorsBlocks.js:1005 +msgid "The Keyboard block returns computer keyboard input." msgstr "" -#: js/PitchBlocks.js:1115 -msgid "The Transpose by Ratio block will shift the pitches contained inside Note blocks up (or down) by a ratio" +#: js/blocks/RhythmBlockPaletteBlocks.js:50 +#: js/blocks/RhythmBlockPaletteBlocks.js:233 +#.TRANS: rhythm block +#.TRANS: translate "rhythm1" as rhythm +msgid "rhythm1" msgstr "" -#: js/PitchBlocks.js:1121 -#.TRANS: adjust the amount of shift (up or down) of a pitch -msgid "transpose by ratio" +#: js/blocks/RhythmBlockPaletteBlocks.js:70 +#: js/blocks/RhythmBlockPaletteBlocks.js:252 +#: js/blocks/RhythmBlockPaletteBlocks.js:485 +#: js/blocks/RhythmBlockPaletteBlocks.js:554 +#: js/blocks/RhythmBlockPaletteBlocks.js:875 +msgid "number of notes" msgstr "" -#: js/PitchBlocks.js:1204 -#.TRANS: down sixth means the note is five scale degrees below current note -msgid "down sixth" +#: js/blocks/RhythmBlockPaletteBlocks.js:126 +msgid "polyphonic rhythm" msgstr "" -#: js/PitchBlocks.js:1223 -#.TRANS: down third means the note is two scale degrees below current note -msgid "down third" +#: js/blocks/RhythmBlockPaletteBlocks.js:219 +msgid "The Rhythm block is used to generate rhythm patterns." msgstr "" -#: js/PitchBlocks.js:1242 -#.TRANS: seventh means the note is the six scale degrees above current note -msgid "seventh" +#: js/blocks/RhythmBlockPaletteBlocks.js:280 +msgid "1/64 note" msgstr "" -#: js/PitchBlocks.js:1261 -#.TRANS: sixth means the note is the five scale degrees above current note -msgid "sixth" +#: js/blocks/RhythmBlockPaletteBlocks.js:304 +msgid "1/32 note" msgstr "" -#: js/PitchBlocks.js:1280 -#.TRANS: fifth means the note is the four scale degrees above current note -msgid "fifth" +#: js/blocks/RhythmBlockPaletteBlocks.js:332 +msgid "1/16 note" msgstr "" -#: js/PitchBlocks.js:1300 -#.TRANS: fourth means the note is three scale degrees above current note -msgid "fourth" +#: js/blocks/RhythmBlockPaletteBlocks.js:360 +msgid "eighth note" msgstr "" -#: js/PitchBlocks.js:1319 -#.TRANS: third means the note is two scale degrees above current note -msgid "third" +#: js/blocks/RhythmBlockPaletteBlocks.js:388 +msgid "quarter note" msgstr "" - -#: js/PitchBlocks.js:1338 -#.TRANS: second means the note is one scale degree above current note -msgid "second" + +#: js/blocks/RhythmBlockPaletteBlocks.js:416 +msgid "half note" msgstr "" -#: js/PitchBlocks.js:1379 -msgid "The Scalar transposition block will shift the pitches contained inside Note blocks up (or down) the scale." +#: js/blocks/RhythmBlockPaletteBlocks.js:444 +msgid "whole note" msgstr "" -#: js/PitchBlocks.js:1381 -msgid "In the example shown above, sol is shifted up to la." +#: js/blocks/RhythmBlockPaletteBlocks.js:482 +#: js/blocks/RhythmBlockPaletteBlocks.js:551 +#: js/blocks/RhythmBlockPaletteBlocks.js:602 +#.TRANS: A tuplet is a note value divided into irregular time values. +msgid "tuplet" msgstr "" -#: js/PitchBlocks.js:1388 -#.TRANS: adjust the amount of shift (up or down) of a pitch by musical scale (scalar) steps -msgid "scalar transpose" +#: js/blocks/RhythmBlockPaletteBlocks.js:768 +msgid "septuplet" msgstr "" -#: js/PitchBlocks.js:1423 -msgid "The Accidental block is used to create sharps and flats" +#: js/blocks/RhythmBlockPaletteBlocks.js:796 +msgid "quintuplet" msgstr "" -#: js/PitchBlocks.js:1430 -#.TRANS: An accidental is a modification to a pitch, e.g., sharp or flat. -msgid "accidental override" +#: js/blocks/RhythmBlockPaletteBlocks.js:824 +msgid "triplet" msgstr "" -#: js/PitchBlocks.js:1543 -msgid "The Hertz block (in combination with a Number block) will play a sound at the specified frequency." +#: js/blocks/RhythmBlockPaletteBlocks.js:851 +msgid "simple tuplet" msgstr "" -#: js/PitchBlocks.js:1633 -msgid "The Pitch Number block will play a pitch associated by its number, e.g. 0 for C and 7 for G." +#: js/blocks/RhythmBlockPaletteBlocks.js:861 +msgid "Tuplets are a collection of notes that get scaled to a specific duration." msgstr "" -#: js/PitchBlocks.js:1665 -#: js/PitchBlocks.js:1707 -#.TRANS: a numeric mapping of the notes in an octave based on the musical mode -#.TRANS: a numeric mapping of the notes in an octave based on the musical mode -msgid "nth modal pitch" +#: js/blocks/DrumBlocks.js:59 +msgid "The Noise name block is used to select a noise synthesizer." msgstr "" -#: js/PitchBlocks.js:1668 -msgid "n^th Modal Pitch takes the pattern of pitches in semitones for a mode and makes each point a degree of the mode," +#: js/blocks/DrumBlocks.js:102 +msgid "The Drum name block is used to select a drum." msgstr "" -#: js/PitchBlocks.js:1670 -msgid "starting from 1 and regardless of tonal framework (i.e. not always 8 notes in the octave)" +#: js/blocks/DrumBlocks.js:146 +msgid "The Effects name block is used to select a sound effect." msgstr "" -#: js/PitchBlocks.js:1711 -msgid "N^th Modal Pitch takes a number as an input as the n^th degree for the given mode. 0 is the first position, 1 is the second, -1 is the note before the first etc." +#: js/blocks/DrumBlocks.js:163 +msgid "noise" msgstr "" -#: js/PitchBlocks.js:1713 -msgid "The pitches change according to the mode specified without any need for respellings." +#: js/blocks/DrumBlocks.js:177 +msgid "The Play noise block will generate white, pink, or brown noise." msgstr "" -#: js/PitchBlocks.js:1752 -msgid "Scale Degree is a common convention in music. Scale Degree offers seven possible positions in the scale (1-7) and can be modified via accidentals." +#: js/blocks/DrumBlocks.js:317 +msgid "Replace every instance of a pitch with a drum sound." msgstr "" -#: js/PitchBlocks.js:1754 -msgid "Scale Degree 1 is always the first pitch in a given scale, regardless of octave." +#: js/blocks/DrumBlocks.js:328 +#.TRANS: map a pitch to a drum sound +msgid "map pitch to drum" msgstr "" -#: js/PitchBlocks.js:1776 -#.TRANS: step some number of notes in current musical scale -msgid "scalar step" +#: js/blocks/DrumBlocks.js:395 +msgid "In the example above, a kick drum sound will be played instead of sol." msgstr "" -#: js/PitchBlocks.js:1781 -msgid "The Scalar Step block (in combination with a Number block) will play the next pitch in a scale," +#: js/blocks/DrumBlocks.js:407 +#.TRANS: set the current drum sound for playback +msgid "set drum" msgstr "" -#: js/PitchBlocks.js:1783 -msgid "eg if the last note played was sol, Scalar Step 1 will play la." +#: js/blocks/DrumBlocks.js:451 +msgid "sound effect" msgstr "" -#: js/PitchBlocks.js:1818 -msgid "The Pitch block specifies the pitch name and octave of a note that together determine the frequency of the note." +#: js/blocks/DrumBlocks.js:489 +msgid "You can use multiple Drum blocks within a Note block." msgstr "" -#: js/GraphicsBlocks.js:46 -#: js/DictActions.js:77 -#: js/DictActions.js:155 -#: js/DictActions.js:189 +#: js/blocks/GraphicsBlocks.js:46 +#: js/turtleactions/DictActions.js:77 +#: js/turtleactions/DictActions.js:144 +#: js/turtleactions/DictActions.js:173 msgid "heading" msgstr "方向" -#: js/GraphicsBlocks.js:56 +#: js/blocks/GraphicsBlocks.js:56 msgid "The Heading block returns the orientation of the mouse." msgstr "" -#: js/GraphicsBlocks.js:62 +#: js/blocks/GraphicsBlocks.js:62 msgid "The Heading block returns the orientation of the turtle." msgstr "" -#: js/GraphicsBlocks.js:133 +#: js/blocks/GraphicsBlocks.js:133 msgid "The Y block returns the vertical position of the mouse." msgstr "" -#: js/GraphicsBlocks.js:140 +#: js/blocks/GraphicsBlocks.js:140 msgid "The Y block returns the vertical position of the turtle." msgstr "" -#: js/GraphicsBlocks.js:149 +#: js/blocks/GraphicsBlocks.js:149 msgid "y3" msgstr "" -#: js/GraphicsBlocks.js:219 +#: js/blocks/GraphicsBlocks.js:219 msgid "The X block returns the horizontal position of the mouse." msgstr "" -#: js/GraphicsBlocks.js:226 +#: js/blocks/GraphicsBlocks.js:226 msgid "The X block returns the horizontal position of the turtle." msgstr "" -#: js/GraphicsBlocks.js:235 +#: js/blocks/GraphicsBlocks.js:235 msgid "x3" msgstr "" -#: js/GraphicsBlocks.js:295 +#: js/blocks/GraphicsBlocks.js:295 msgid "scroll xy" msgstr "" -#: js/GraphicsBlocks.js:303 +#: js/blocks/GraphicsBlocks.js:303 msgid "The Scroll XY block moves the canvas." msgstr "" -#: js/GraphicsBlocks.js:313 +#: js/blocks/GraphicsBlocks.js:313 msgid "x2" msgstr "" -#: js/GraphicsBlocks.js:313 +#: js/blocks/GraphicsBlocks.js:313 msgid "y2" msgstr "" -#: js/GraphicsBlocks.js:373 -#: js/temperament.js:213 -#: js/temperament.js:241 +#: js/blocks/GraphicsBlocks.js:373 +#: js/widgets/temperament.js:319 +#: js/widgets/temperament.js:347 msgid "clear" msgstr "" -#: js/GraphicsBlocks.js:426 +#: js/blocks/GraphicsBlocks.js:426 msgid "The Control-point 2 block sets the second control point for the Bezier curve." msgstr "" -#: js/GraphicsBlocks.js:433 +#: js/blocks/GraphicsBlocks.js:433 msgid "control point 2" msgstr "" -#: js/GraphicsBlocks.js:436 -#: js/GraphicsBlocks.js:487 -#: js/GraphicsBlocks.js:534 -#: js/GraphicsBlocks.js:750 +#: js/blocks/GraphicsBlocks.js:436 +#: js/blocks/GraphicsBlocks.js:487 +#: js/blocks/GraphicsBlocks.js:534 +#: js/blocks/GraphicsBlocks.js:750 msgid "x1" msgstr "" -#: js/GraphicsBlocks.js:436 -#: js/GraphicsBlocks.js:487 -#: js/GraphicsBlocks.js:534 -#: js/GraphicsBlocks.js:750 +#: js/blocks/GraphicsBlocks.js:436 +#: js/blocks/GraphicsBlocks.js:487 +#: js/blocks/GraphicsBlocks.js:534 +#: js/blocks/GraphicsBlocks.js:750 msgid "y1" msgstr "" -#: js/GraphicsBlocks.js:477 +#: js/blocks/GraphicsBlocks.js:477 msgid "The Control-point 1 block sets the first control point for the Bezier curve." msgstr "" -#: js/GraphicsBlocks.js:484 +#: js/blocks/GraphicsBlocks.js:484 msgid "control point 1" msgstr "" -#: js/GraphicsBlocks.js:527 +#: js/blocks/GraphicsBlocks.js:527 msgid "The Bezier block draws a Bezier curve." msgstr "" -#: js/GraphicsBlocks.js:531 +#: js/blocks/GraphicsBlocks.js:531 msgid "bezier" msgstr "" -#: js/GraphicsBlocks.js:592 +#: js/blocks/GraphicsBlocks.js:592 msgid "The Arc block moves the turtle in an arc." msgstr "" -#: js/GraphicsBlocks.js:600 +#: js/blocks/GraphicsBlocks.js:600 msgid "arc" msgstr "弧度" -#: js/GraphicsBlocks.js:603 +#: js/blocks/GraphicsBlocks.js:603 msgid "angle" msgstr "角度" -#: js/GraphicsBlocks.js:603 +#: js/blocks/GraphicsBlocks.js:603 msgid "radius" msgstr "半徑" -#: js/GraphicsBlocks.js:620 -#: js/GraphicsBlocks.js:767 -#: js/GraphicsBlocks.js:1010 -#: js/GraphicsBlocks.js:1093 +#: js/blocks/GraphicsBlocks.js:620 +#: js/blocks/GraphicsBlocks.js:767 +#: js/blocks/GraphicsBlocks.js:1010 +#: js/blocks/GraphicsBlocks.js:1093 msgid "Value must be within -5000 to 5000 when Wrap Mode is off." msgstr "" -#: js/GraphicsBlocks.js:622 -#: js/GraphicsBlocks.js:769 -#: js/GraphicsBlocks.js:1012 -#: js/GraphicsBlocks.js:1095 +#: js/blocks/GraphicsBlocks.js:622 +#: js/blocks/GraphicsBlocks.js:769 +#: js/blocks/GraphicsBlocks.js:1012 +#: js/blocks/GraphicsBlocks.js:1095 msgid "Value must be within -20000 to 20000 when Wrap Mode is on." msgstr "" -#: js/GraphicsBlocks.js:660 +#: js/blocks/GraphicsBlocks.js:660 msgid "set heading" msgstr "設定標頭" -#: js/GraphicsBlocks.js:673 +#: js/blocks/GraphicsBlocks.js:673 msgid "The Set heading block sets the heading of the turtle." msgstr "" -#: js/GraphicsBlocks.js:733 +#: js/blocks/GraphicsBlocks.js:733 msgid "The Set XY block moves the mouse to a specific position on the screen." msgstr "" -#: js/GraphicsBlocks.js:739 +#: js/blocks/GraphicsBlocks.js:739 msgid "The Set XY block moves the turtle to a specific position on the screen." msgstr "" -#: js/GraphicsBlocks.js:747 +#: js/blocks/GraphicsBlocks.js:747 msgid "set xy" msgstr "指定座標" -#: js/GraphicsBlocks.js:819 +#: js/blocks/GraphicsBlocks.js:819 msgid "The Right block turns the mouse to the right." msgstr "" -#: js/GraphicsBlocks.js:826 +#: js/blocks/GraphicsBlocks.js:826 msgid "The Right block turns the turtle to the right." msgstr "" -#: js/GraphicsBlocks.js:835 +#: js/blocks/GraphicsBlocks.js:835 msgid "right1" msgstr "" -#: js/GraphicsBlocks.js:835 +#: js/blocks/GraphicsBlocks.js:835 #: plugins/rodi.rtp:77 #: plugins/rodi.rtp:340 #: plugins/rodi.rtp:375 msgid "right" msgstr "右轉" -#: js/GraphicsBlocks.js:899 +#: js/blocks/GraphicsBlocks.js:899 msgid "The Left block turns the mouse to the left." msgstr "" -#: js/GraphicsBlocks.js:906 +#: js/blocks/GraphicsBlocks.js:906 msgid "The Left block turns the turtle to the left." msgstr "" -#: js/GraphicsBlocks.js:915 +#: js/blocks/GraphicsBlocks.js:915 msgid "left1" msgstr "" -#: js/GraphicsBlocks.js:915 +#: js/blocks/GraphicsBlocks.js:915 #: plugins/rodi.rtp:79 #: plugins/rodi.rtp:339 #: plugins/rodi.rtp:362 msgid "left" msgstr "左轉" -#: js/GraphicsBlocks.js:967 -#: js/temperament.js:734 -#: js/temperament.js:933 +#: js/blocks/GraphicsBlocks.js:967 +#: js/widgets/temperament.js:875 +#: js/widgets/temperament.js:1078 #: plugins/rodi.rtp:69 #: plugins/rodi.rtp:387 msgid "back" msgstr "後退" -#: js/GraphicsBlocks.js:976 +#: js/blocks/GraphicsBlocks.js:976 msgid "The Back block moves the mouse backward." msgstr "" -#: js/GraphicsBlocks.js:983 +#: js/blocks/GraphicsBlocks.js:983 msgid "The Back block moves the turtle backward." msgstr "" -#: js/GraphicsBlocks.js:1050 +#: js/blocks/GraphicsBlocks.js:1050 #: plugins/rodi.rtp:71 #: plugins/rodi.rtp:400 msgid "forward" msgstr "前進" -#: js/GraphicsBlocks.js:1059 +#: js/blocks/GraphicsBlocks.js:1059 msgid "The Forward block moves the mouse forward." msgstr "" -#: js/GraphicsBlocks.js:1066 +#: js/blocks/GraphicsBlocks.js:1066 msgid "The Forward block moves the turtle forward." msgstr "" -#: js/GraphicsBlocks.js:1154 -#: js/GraphicsBlocks.js:1172 +#: js/blocks/GraphicsBlocks.js:1154 +#: js/blocks/GraphicsBlocks.js:1172 msgid "wrap" msgstr "" -#: js/OrnamentBlocks.js:32 -msgid "staccato factor" -msgstr "" - -#: js/OrnamentBlocks.js:108 -msgid "slur factor" -msgstr "" - -#: js/OrnamentBlocks.js:217 -#: js/OrnamentBlocks.js:309 -#.TRANS: the neighbor refers to a neighboring note, e.g., D is a neighbor of C -msgid "neighbor" -msgstr "" - -#: js/OrnamentBlocks.js:293 -msgid "The Neighbor block rapidly switches between neighboring pitches." -msgstr "" - -#: js/OrnamentBlocks.js:364 -msgid "glide" -msgstr "" - -#: js/OrnamentBlocks.js:479 -#: js/OrnamentBlocks.js:643 -msgid "slur" -msgstr "" - -#: js/OrnamentBlocks.js:558 -#: js/OrnamentBlocks.js:710 -#.TRANS: play each note sharply detached from the others -msgid "staccato" -msgstr "" - -#: js/PenBlocks.js:24 +#: js/blocks/PenBlocks.js:30 msgid "purple" msgstr "" -#: js/PenBlocks.js:37 -#: js/SensorsBlocks.js:521 -#: plugins/rodi.rtp:219 -msgid "blue" -msgstr "" - -#: js/PenBlocks.js:50 -#: js/SensorsBlocks.js:577 -#: plugins/rodi.rtp:218 -msgid "green" -msgstr "" - -#: js/PenBlocks.js:63 +#: js/blocks/PenBlocks.js:80 msgid "yellow" msgstr "" -#: js/PenBlocks.js:76 +#: js/blocks/PenBlocks.js:96 #: plugins/nutrition.rtp:164 msgid "orange" msgstr "橘色" -#: js/PenBlocks.js:89 -#: js/SensorsBlocks.js:633 -#: plugins/rodi.rtp:217 -msgid "red" -msgstr "" - -#: js/PenBlocks.js:102 +#: js/blocks/PenBlocks.js:128 msgid "white" msgstr "" -#: js/PenBlocks.js:115 +#: js/blocks/PenBlocks.js:144 msgid "black" msgstr "" -#: js/PenBlocks.js:128 +#: js/blocks/PenBlocks.js:163 msgid "begin fill" msgstr "" -#: js/PenBlocks.js:143 +#: js/blocks/PenBlocks.js:190 msgid "end fill" msgstr "停止填滿" -#: js/PenBlocks.js:159 -#: js/PenBlocks.js:386 +#: js/blocks/PenBlocks.js:212 +#: js/blocks/PenBlocks.js:560 #.TRANS: set the background color msgid "background" msgstr "" -#: js/PenBlocks.js:206 -#: js/DictActions.js:71 -#: js/DictActions.js:149 -#: js/DictActions.js:186 +#: js/blocks/PenBlocks.js:274 +#: js/turtleactions/DictActions.js:71 +#: js/turtleactions/DictActions.js:138 +#: js/turtleactions/DictActions.js:170 msgid "grey" msgstr "" -#: js/PenBlocks.js:210 +#: js/blocks/PenBlocks.js:282 msgid "The Grey block returns the current pen grey value." msgstr "" -#: js/PenBlocks.js:243 -#: js/DictActions.js:69 -#: js/DictActions.js:147 -#: js/DictActions.js:185 +#: js/blocks/PenBlocks.js:340 +#: js/turtleactions/DictActions.js:69 +#: js/turtleactions/DictActions.js:136 +#: js/turtleactions/DictActions.js:169 msgid "shade" msgstr "形狀" -#: js/PenBlocks.js:247 +#: js/blocks/PenBlocks.js:347 msgid "The Shade block returns the current pen shade value." msgstr "" -#: js/PenBlocks.js:280 -#: js/DictActions.js:67 -#: js/DictActions.js:145 -#: js/DictActions.js:184 +#: js/blocks/PenBlocks.js:405 +#: js/turtleactions/DictActions.js:67 +#: js/turtleactions/DictActions.js:134 +#: js/turtleactions/DictActions.js:168 msgid "color" msgstr "顏色" -#: js/PenBlocks.js:285 +#: js/blocks/PenBlocks.js:415 msgid "The Color block returns the current pen color." msgstr "" -#: js/PenBlocks.js:318 -#: js/DictActions.js:73 -#: js/DictActions.js:151 -#: js/DictActions.js:187 +#: js/blocks/PenBlocks.js:470 +#: js/turtleactions/DictActions.js:73 +#: js/turtleactions/DictActions.js:140 +#: js/turtleactions/DictActions.js:171 msgid "pen size" msgstr "畫筆大小" -#: js/PenBlocks.js:322 +#: js/blocks/PenBlocks.js:474 msgid "The Pen size block returns the current pen size value." msgstr "" -#: js/PenBlocks.js:355 +#: js/blocks/PenBlocks.js:513 msgid "set font" msgstr "" -#: js/PenBlocks.js:358 +#: js/blocks/PenBlocks.js:518 msgid "The Set font block sets the font used by the Show block." msgstr "" -#: js/PenBlocks.js:391 +#: js/blocks/PenBlocks.js:567 msgid "The Background block sets the window background color." msgstr "" -#: js/PenBlocks.js:408 +#: js/blocks/PenBlocks.js:598 msgid "The Hollow line block creates a line with a hollow center." msgstr "" -#: js/PenBlocks.js:415 +#: js/blocks/PenBlocks.js:606 #.TRANS: draw a line logo has a hollow space down its center msgid "hollow line" msgstr "" -#: js/PenBlocks.js:462 +#: js/blocks/PenBlocks.js:675 msgid "The Fill block fills in a shape with a color." msgstr "" -#: js/PenBlocks.js:470 +#: js/blocks/PenBlocks.js:684 #.TRANS: fill in as a solid color msgid "fill" msgstr "" -#: js/PenBlocks.js:527 +#: js/blocks/PenBlocks.js:761 #.TRANS: raise up the pen so logo it does not draw when it is moved msgid "pen up" msgstr "提筆" -#: js/PenBlocks.js:532 +#: js/blocks/PenBlocks.js:768 msgid "The Pen-up block raises the pen so that it does not draw." msgstr "" -#: js/PenBlocks.js:552 +#: js/blocks/PenBlocks.js:802 #.TRANS: put down the pen so logo it draws when it is moved msgid "pen down" msgstr "落筆" -#: js/PenBlocks.js:557 +#: js/blocks/PenBlocks.js:810 msgid "The Pen-down block lowers the pen so that it draws." msgstr "" -#: js/PenBlocks.js:577 +#: js/blocks/PenBlocks.js:844 #.TRANS: set the width of the line drawn by the pen msgid "set pen size" msgstr "設定畫筆大小" -#: js/PenBlocks.js:583 +#: js/blocks/PenBlocks.js:854 msgid "The Set-pen-size block changes the size of the pen." msgstr "" -#: js/PenBlocks.js:623 +#: js/blocks/PenBlocks.js:913 #.TRANS: set degree of translucence of the pen color msgid "set translucency" msgstr "" -#: js/PenBlocks.js:627 +#: js/blocks/PenBlocks.js:921 msgid "The Set translucency block changes the opacity of the pen." msgstr "" -#: js/PenBlocks.js:668 +#: js/blocks/PenBlocks.js:981 msgid "set hue" msgstr "" -#: js/PenBlocks.js:672 +#: js/blocks/PenBlocks.js:989 msgid "The Set hue block changes the color of the pen." msgstr "" -#: js/PenBlocks.js:711 +#: js/blocks/PenBlocks.js:1047 msgid "set shade" msgstr "設定填滿顏色" -#: js/PenBlocks.js:717 +#: js/blocks/PenBlocks.js:1057 msgid "The Set-shade block changes the pen color from dark to light." msgstr "" -#: js/PenBlocks.js:757 +#: js/blocks/PenBlocks.js:1111 #.TRANS: set the level of vividness of the pen color msgid "set grey" msgstr "" -#: js/PenBlocks.js:761 +#: js/blocks/PenBlocks.js:1119 msgid "The Set grey block changes the vividness of the pen color." msgstr "" -#: js/PenBlocks.js:800 +#: js/blocks/PenBlocks.js:1172 msgid "set color" msgstr "設定線條顏色" -#: js/PenBlocks.js:806 +#: js/blocks/PenBlocks.js:1182 msgid "The Set-color block changes the pen color." msgstr "" -#: js/VolumeBlocks.js:35 -msgid "synth volume" -msgstr "" - -#: js/VolumeBlocks.js:39 -msgid "The Synth volume block returns the current volume of the current synthesizer." -msgstr "" - -#: js/VolumeBlocks.js:47 -#: js/musicutils.js:730 -#: js/synthutils.js:56 -#.TRANS: musical instrument -msgid "piano" -msgstr "" - -#: js/VolumeBlocks.js:105 -msgid "master volume" -msgstr "" - -#: js/VolumeBlocks.js:109 -msgid "The Master volume block returns the master volume." -msgstr "" - -#: js/VolumeBlocks.js:355 -#: js/VolumeBlocks.js:524 -msgid "set synth volume" -msgstr "" - -#: js/VolumeBlocks.js:362 -#: js/VolumeBlocks.js:545 -msgid "synth" -msgstr "" - -#: js/VolumeBlocks.js:403 -#: js/VolumeBlocks.js:577 -#: js/VolumeBlocks.js:740 -#: js/VolumeActions.js:173 -msgid "Setting volume to 0." -msgstr "" - -#: js/VolumeBlocks.js:440 -msgid "Synth not found" -msgstr "" - -#: js/VolumeBlocks.js:494 -msgid "set drum volume" -msgstr "" - -#: js/VolumeBlocks.js:530 -msgid "The Set synth volume block will change the volume of a particular synth," -msgstr "" - -#: js/VolumeBlocks.js:532 -msgid "eg guitar violin snare drum etc." -msgstr "" - -#: js/VolumeBlocks.js:534 -msgid "The default volume is 50." -msgstr "" - -#: js/VolumeBlocks.js:536 -msgid "The range is 0 for silence to 100 for full volume." -msgstr "" - -#: js/VolumeBlocks.js:597 -msgid "set panning" -msgstr "" - -#: js/VolumeBlocks.js:603 -msgid "The Set Panning block sets the panning for all synthesizers." -msgstr "" - -#: js/VolumeBlocks.js:625 -msgid "Warning: Sound is coming out from only the left or right side." -msgstr "" - -#: js/VolumeBlocks.js:647 -#: js/VolumeBlocks.js:695 -msgid "set master volume" -msgstr "" - -#: js/VolumeBlocks.js:653 -msgid "The Set master volume block sets the volume for all synthesizers." -msgstr "" - -#: js/VolumeBlocks.js:784 -msgid "The Set relative volume block changes the volume of the contained notes." -msgstr "" - -#: js/VolumeBlocks.js:791 -msgid "set relative volume" -msgstr "" - -#: js/VolumeBlocks.js:857 -msgid "decrescendo" -msgstr "" - -#: js/VolumeBlocks.js:921 -msgid "crescendo" -msgstr "" - -#: js/ToneBlocks.js:34 -msgid "oscillator" -msgstr "" - -#: js/ToneBlocks.js:44 -#: js/timbre.js:1562 -#.TRANS: Partials refers to the number of sine waves combined into the sound. -msgid "partials" -msgstr "" - -#: js/ToneBlocks.js:76 -msgid "You are adding multiple oscillator blocks." -msgstr "" - -#: js/ToneBlocks.js:144 -#: js/timbre.js:1225 -#.TRANS: a duo synthesizer combines a synth with a sequencer -msgid "duo synth" -msgstr "" - -#: js/ToneBlocks.js:149 -msgid "The Duo synth block is a duo-frequency modulator used to define a timbre." -msgstr "" - -#: js/ToneBlocks.js:157 -#: js/timbre.js:1476 -msgid "vibrato rate" -msgstr "" - -#: js/ToneBlocks.js:157 -msgid "vibrato intensity" -msgstr "" - -#: js/ToneBlocks.js:185 -#: js/timbre.js:1221 -#.TRANS: AM (amplitude modulation) synthesizer -msgid "AM synth" -msgstr "" - -#: js/ToneBlocks.js:189 -msgid "The AM synth block is an amplitude modulator used to define a timbre." +#: js/blocks/PitchBlocks.js:141 +#.TRANS: musical transposition (adjustment of pitch up or down) +msgid "transposition" msgstr "" -#: js/ToneBlocks.js:224 -#: js/timbre.js:1223 -#.TRANS: FM (frequency modulation) synthesizer -msgid "FM synth" +#: js/blocks/PitchBlocks.js:168 +#.TRANS: step down one note in current musical scale +msgid "scalar step down" msgstr "" -#: js/ToneBlocks.js:228 -msgid "The FM synth block is a frequency modulator used to define a timbre." +#: js/blocks/PitchBlocks.js:172 +msgid "The Scalar step down block returns the number of semi-tones down to the previous note in the current key and mode." msgstr "" -#: js/ToneBlocks.js:262 -msgid "partial" +#: js/blocks/PitchBlocks.js:190 +#.TRANS: step up one note in current musical scale +msgid "scalar step up" msgstr "" -#: js/ToneBlocks.js:265 -msgid "The Partial block is used to specify a weight for a specific partial harmonic." +#: js/blocks/PitchBlocks.js:194 +msgid "The Scalar step up block returns the number of semi-tones up to the next note in the current key and mode." msgstr "" -#: js/ToneBlocks.js:284 -#.TRANS: partials are weighted components in a harmonic series -msgid "Partial weight must be between 0 and 1." +#: js/blocks/PitchBlocks.js:212 +#.TRANS: the change measured in half-steps between the current pitch and the previous pitch +msgid "change in pitch" msgstr "" -#: js/ToneBlocks.js:297 -#.TRANS: partials are weighted components in a harmonic series -msgid "Partial block should be used inside of a Weighted-partials block." +#: js/blocks/PitchBlocks.js:216 +msgid "The Change in pitch block is the difference (in half steps) between the current pitch being played and the previous pitch played." msgstr "" -#: js/ToneBlocks.js:325 -#.TRANS: partials are weighted components in a harmonic series -msgid "weighted partials" +#: js/blocks/PitchBlocks.js:243 +#.TRANS: the change measured in scale-steps between the current pitch and the previous pitch +msgid "scalar change in pitch" msgstr "" -#: js/ToneBlocks.js:383 -msgid "The Harmonic block will add harmonics to the contained notes." +#: js/blocks/PitchBlocks.js:250 +#: js/blocks/PitchBlocks.js:432 +#: js/blocks/PitchBlocks.js:1667 +#: js/turtleactions/DictActions.js:89 +#: js/widgets/temperament.js:610 +#: js/widgets/temperament.js:614 +#: js/widgets/temperament.js:855 +#.TRANS: convert current note to piano key (1-88) +#.TRANS: a mapping of pitch to the 88 piano keys +msgid "pitch number" msgstr "" -#: js/ToneBlocks.js:390 -#.TRANS: A harmonic is an overtone. -msgid "harmonic" +#: js/blocks/PitchBlocks.js:256 +msgid "The Pitch number block is the value of the pitch of the note currently being played." msgstr "" -#: js/ToneBlocks.js:431 -msgid "The Distortion block adds distortion to the pitch." +#: js/blocks/PitchBlocks.js:329 +#: js/blocks/PitchBlocks.js:433 +#.TRANS: the current pitch expressed in Hertz +msgid "pitch in hertz" msgstr "" -#: js/ToneBlocks.js:438 -#: js/timbre.js:2100 -#.TRANS: distortion is an alteration in the sound -msgid "distortion" +#: js/blocks/PitchBlocks.js:334 +msgid "The Pitch in Hertz block is the value in Hertz of the pitch of the note currently being played." msgstr "" -#: js/ToneBlocks.js:487 -msgid "The Tremolo block adds a wavering effect." +#: js/blocks/PitchBlocks.js:367 +#: js/turtleactions/DictActions.js:87 +msgid "current pitch" msgstr "" -#: js/ToneBlocks.js:495 -#: js/timbre.js:2092 -#.TRANS: a wavering effect in a musical tone -msgid "tremolo" +#: js/blocks/PitchBlocks.js:373 +msgid "The Current Pitch block is used with the Pitch Converter block. In the example above, current pitch, sol 4, is displayed as 392 hertz." msgstr "" -#: js/ToneBlocks.js:500 -#: js/ToneBlocks.js:569 -#: js/ToneBlocks.js:630 -#: js/ToneBlocks.js:689 -#: js/timbre.js:2134 -#: js/timbre.js:2222 -#: js/timbre.js:2317 -#: js/timbre.js:2419 -#.TRANS: rate at which tremolo wavers -msgid "rate" +#: js/blocks/PitchBlocks.js:410 +msgid "This block converts the pitch value of the last note played into different formats such as hertz, letter name, pitch number, et al." msgstr "" -#: js/ToneBlocks.js:502 -#: js/ToneBlocks.js:630 -#: js/timbre.js:2137 -#: js/timbre.js:2328 -#.TRANS: amplitude of tremolo waver -msgid "depth" +#: js/blocks/PitchBlocks.js:434 +msgid "alphabet" msgstr "" -#: js/ToneBlocks.js:559 -msgid "The Phaser block adds a sweeping sound." +#: js/blocks/PitchBlocks.js:436 +#.TRANS: Translate as "alphabet class" +msgid "letter class" msgstr "" -#: js/ToneBlocks.js:566 -#: js/timbre.js:2098 -#.TRANS: alter the phase of the sound -msgid "phaser" +#: js/blocks/PitchBlocks.js:437 +msgid "solfege class" msgstr "" -#: js/ToneBlocks.js:569 -#: js/timbre.js:2422 -msgid "octaves" +#: js/blocks/PitchBlocks.js:438 +msgid "staff y" msgstr "" -#: js/ToneBlocks.js:569 -#: js/timbre.js:2425 -msgid "base frequency" +#: js/blocks/PitchBlocks.js:439 +msgid "solfege syllable" msgstr "" -#: js/ToneBlocks.js:619 -msgid "The Chorus block adds a chorus effect." +#: js/blocks/PitchBlocks.js:440 +msgid "pitch class" msgstr "" -#: js/ToneBlocks.js:627 -#: js/timbre.js:2096 -#.TRANS: musical effect to simulate a choral sound -msgid "chorus" +#: js/blocks/PitchBlocks.js:441 +msgid "scalar class" msgstr "" -#: js/ToneBlocks.js:630 -msgid "delay" +#: js/blocks/PitchBlocks.js:443 +msgid "nth degree" msgstr "" -#: js/ToneBlocks.js:678 -msgid "The Vibrato block adds a rapid, slight variation in pitch." +#: js/blocks/PitchBlocks.js:444 +msgid "pitch to shade" msgstr "" -#: js/ToneBlocks.js:686 -#: js/timbre.js:2094 -#.TRANS: a rapid, slight variation in pitch -msgid "vibrato" +#: js/blocks/PitchBlocks.js:445 +msgid "pitch to color" msgstr "" -#: js/ToneBlocks.js:689 -#: js/timbre.js:2221 -msgid "intensity" +#: js/blocks/PitchBlocks.js:629 +#: js/widgets/musickeyboard.js:735 +#.TRANS: MIDI is a technical standard for electronic music +msgid "MIDI" msgstr "" -#: js/ToneBlocks.js:733 -#.TRANS: select synthesizer -msgid "set synth" +#: js/blocks/PitchBlocks.js:642 +#.TRANS: set an offset associated with the numeric piano keyboard mapping +msgid "set pitch number offset" msgstr "" -#: js/ToneBlocks.js:804 -msgid "synth name" +#: js/blocks/PitchBlocks.js:645 +msgid "The Set pitch number offset block is used to set the offset for mapping pitch numbers to pitch and octave." msgstr "" -#: js/ToneBlocks.js:842 -msgid "set default instrument" +#: js/blocks/PitchBlocks.js:679 +#.TRANS: convert piano key number (1-88) to pitch +msgid "number to pitch" msgstr "" -#: js/ToneBlocks.js:895 -#: js/ToneBlocks.js:943 -#.TRANS: set the characteristics of a custom instrument -msgid "set instrument" +#: js/blocks/PitchBlocks.js:682 +msgid "The Number to pitch block will convert a pitch number to a pich name." msgstr "" -#: js/ToneBlocks.js:898 -#: js/ToneBlocks.js:926 -#: js/ToneBlocks.js:932 -msgid "The Set instrument block selects a voice for the synthesizer," +#: js/blocks/PitchBlocks.js:715 +#.TRANS: convert piano key number (1-88) to octave +msgid "number to octave" msgstr "" -#: js/ToneBlocks.js:900 -#: js/ToneBlocks.js:934 -msgid "eg guitar piano violin or cello." +#: js/blocks/PitchBlocks.js:717 +msgid "The Number to octave block will convert a pitch number to an octave." msgstr "" -#: js/ToneBlocks.js:1015 -msgid "Import a sound file to use as an instrument and set its pitch center." +#: js/blocks/PitchBlocks.js:726 +msgid "y to pitch" msgstr "" -#: js/ToneBlocks.js:1110 -msgid "Upload a sound file to connect with the sample block." +#: js/blocks/PitchBlocks.js:729 +msgid "Y to pitch block will convert a staff y position to corresponding pitch notation." msgstr "" -#: js/MeterBlocks.js:34 -#.TRANS: musical meter (time signature), e.g., 4:4 -msgid "current meter" +#: js/blocks/PitchBlocks.js:841 +msgid "accidental selector" msgstr "" -#: js/MeterBlocks.js:85 -#.TRANS: number of beats per minute -msgid "beat factor" +#: js/blocks/PitchBlocks.js:844 +msgid "The Accidental selector block is used to choose between double-sharp, sharp, natural, flat, and double-flat." msgstr "" -#: js/MeterBlocks.js:161 -msgid "The Beats per minute block returns the current beats per minute." +#: js/blocks/PitchBlocks.js:858 +msgid "Pitch can be specified in terms of ni dha pa ma ga re sa." msgstr "" -#: js/MeterBlocks.js:169 -#: js/status.js:152 -#.TRANS: number of beats played per minute -msgid "beats per minute2" +#: js/blocks/PitchBlocks.js:872 +msgid "Pitch can be specified in terms of C D E F G A B." msgstr "" -#: js/MeterBlocks.js:169 -#: js/MeterBlocks.js:1056 -#: js/MeterBlocks.js:1133 -#: js/MeterBlocks.js:1211 -#.TRANS: sets tempo by defining a beat and beats per minute -msgid "beats per minute" +#: js/blocks/PitchBlocks.js:884 +msgid "solfege" msgstr "" -#: js/MeterBlocks.js:233 -#.TRANS: count of current musical measure in meter -msgid "measure count" +#: js/blocks/PitchBlocks.js:887 +msgid "Pitch can be specified in terms of do re mi fa sol la ti." msgstr "" -#: js/MeterBlocks.js:241 -msgid "The Measure count block returns the current measure." +#: js/blocks/PitchBlocks.js:922 +msgid "The Invert block rotates any contained notes around a target note." msgstr "" -#: js/MeterBlocks.js:290 -#.TRANS: count of current beat in the meter -msgid "beat count" +#: js/blocks/PitchBlocks.js:929 +#.TRANS: pitch inversion rotates a pitch around another pitch +msgid "invert" msgstr "" -#: js/MeterBlocks.js:300 -#: js/MeterBlocks.js:311 -#: js/MeterBlocks.js:565 -#: js/MeterBlocks.js:576 -msgid "The Beat count block is the number of the current beat," +#: js/blocks/PitchBlocks.js:968 +#.TRANS: pitch inversion rotates a pitch around another pitch (odd number) +msgid "invert (odd)" msgstr "" -#: js/MeterBlocks.js:313 -#: js/MeterBlocks.js:578 -msgid "eg 1, 2, 3, or 4." +#: js/blocks/PitchBlocks.js:1001 +#.TRANS: pitch inversion rotates a pitch around another pitch (even number) +msgid "invert (even)" msgstr "" -#: js/MeterBlocks.js:368 -#.TRANS: count the number of notes -msgid "sum note values" +#: js/blocks/PitchBlocks.js:1022 +#.TRANS: register is the octave of the current pitch +msgid "register" msgstr "" -#: js/MeterBlocks.js:376 -#: js/MeterBlocks.js:440 -msgid "The Note counter block can be used to count the number of contained notes." +#: js/blocks/PitchBlocks.js:1026 +msgid "The Register block provides an easy way to modify the register (octave) of the notes that follow it." msgstr "" -#: js/MeterBlocks.js:432 -#.TRANS: count the number of notes -msgid "note counter" +#: js/blocks/PitchBlocks.js:1047 +#.TRANS: cents are units used to specify the ratio between pitches. There are 100 cents between successive notes. +msgid "50 cents" msgstr "" -#: js/MeterBlocks.js:496 -#.TRANS: number of whole notes that have been played -msgid "whole notes played" +#: js/blocks/PitchBlocks.js:1102 +msgid "The Semi-tone transposition block will shift the pitches contained inside Note blocks up (or down) by half steps." msgstr "" -#: js/MeterBlocks.js:505 -msgid "The Whole notes played block returns the total number of whole notes played." +#: js/blocks/PitchBlocks.js:1104 +msgid "In the example shown above, sol is shifted up to sol#." msgstr "" -#: js/MeterBlocks.js:555 -#: js/DictActions.js:83 -#.TRANS: number of notes that have been played -msgid "notes played" +#: js/blocks/PitchBlocks.js:1110 +#.TRANS: adjust the amount of shift (up or down) of a pitch +msgid "semi-tone transpose" msgstr "" -#: js/MeterBlocks.js:653 -msgid "The No clock block decouples the notes from the master clock." +#: js/blocks/PitchBlocks.js:1143 +msgid "The Transpose by Ratio block will shift the pitches contained inside Note blocks up (or down) by a ratio" msgstr "" -#: js/MeterBlocks.js:661 -#.TRANS: don't lock notes to master clock -msgid "no clock" +#: js/blocks/PitchBlocks.js:1149 +#.TRANS: adjust the amount of shift (up or down) of a pitch +msgid "transpose by ratio" msgstr "" -#: js/MeterBlocks.js:700 -msgid "on weak beat do" +#: js/blocks/PitchBlocks.js:1232 +#.TRANS: down sixth means the note is five scale degrees below current note +msgid "down sixth" msgstr "" -#: js/MeterBlocks.js:705 -msgid "The On-weak-beat block lets you specify actions to take on weak (off) beats." +#: js/blocks/PitchBlocks.js:1251 +#.TRANS: down third means the note is two scale degrees below current note +msgid "down third" msgstr "" -#: js/MeterBlocks.js:750 -msgid "on strong beat" +#: js/blocks/PitchBlocks.js:1270 +#.TRANS: seventh means the note is the six scale degrees above current note +msgid "seventh" msgstr "" -#: js/MeterBlocks.js:758 -msgid "The On-strong-beat block lets you specify actions to take on specified beats." +#: js/blocks/PitchBlocks.js:1289 +#.TRANS: sixth means the note is the five scale degrees above current note +msgid "sixth" msgstr "" -#: js/MeterBlocks.js:769 -msgid "beat" +#: js/blocks/PitchBlocks.js:1308 +#.TRANS: fifth means the note is the four scale degrees above current note +msgid "fifth" msgstr "" -#: js/MeterBlocks.js:813 -msgid "on every beat do" +#: js/blocks/PitchBlocks.js:1328 +#.TRANS: fourth means the note is three scale degrees above current note +msgid "fourth" msgstr "" -#: js/MeterBlocks.js:821 -msgid "The On-every-beat block lets you specify actions to take on every beat." +#: js/blocks/PitchBlocks.js:1347 +#.TRANS: third means the note is two scale degrees above current note +msgid "third" msgstr "" -#: js/MeterBlocks.js:874 -msgid "on every note do" +#: js/blocks/PitchBlocks.js:1366 +#.TRANS: second means the note is one scale degree above current note +msgid "second" msgstr "" -#: js/MeterBlocks.js:882 -msgid "The On-every-note block lets you specify actions to take on every note." +#: js/blocks/PitchBlocks.js:1407 +msgid "The Scalar transposition block will shift the pitches contained inside Note blocks up (or down) the scale." msgstr "" -#: js/MeterBlocks.js:928 -#: js/MeterBlocks.js:999 -#.TRANS: sets tempo by defining a beat and beats per minute -msgid "master beats per minute" +#: js/blocks/PitchBlocks.js:1409 +msgid "In the example shown above, sol is shifted up to la." msgstr "" -#: js/MeterBlocks.js:952 -#: js/MeterBlocks.js:1078 -#: js/MeterBlocks.js:1135 -msgid "bpm" +#: js/blocks/PitchBlocks.js:1416 +#.TRANS: adjust the amount of shift (up or down) of a pitch by musical scale (scalar) steps +msgid "scalar transpose" msgstr "" -#: js/MeterBlocks.js:952 -#: js/MeterBlocks.js:1078 -#: js/MeterBlocks.js:1135 -msgid "beat value" +#: js/blocks/PitchBlocks.js:1451 +msgid "The Accidental block is used to create sharps and flats" msgstr "" -#: js/MeterBlocks.js:1024 -#: js/MeterBlocks.js:1167 -#: js/MeterBlocks.js:1241 -msgid "Beats per minute must be > 30." +#: js/blocks/PitchBlocks.js:1458 +#.TRANS: An accidental is a modification to a pitch, e.g., sharp or flat. +msgid "accidental override" msgstr "" -#: js/MeterBlocks.js:1027 -#: js/MeterBlocks.js:1170 -#: js/MeterBlocks.js:1244 -msgid "Maximum beats per minute is 1000." +#: js/blocks/PitchBlocks.js:1581 +msgid "The Hertz block (in combination with a Number block) will play a sound at the specified frequency." msgstr "" -#: js/MeterBlocks.js:1068 -msgid "The Beats per minute block sets the number of 1/4 notes per minute." +#: js/blocks/PitchBlocks.js:1671 +msgid "The Pitch Number block will play a pitch associated by its number, e.g. 0 for C and 7 for G." msgstr "" -#: js/MeterBlocks.js:1279 -#.TRANS: anacrusis -msgid "pickup" +#: js/blocks/PitchBlocks.js:1703 +#: js/blocks/PitchBlocks.js:1745 +#.TRANS: a numeric mapping of the notes in an octave based on the musical mode +#.TRANS: a numeric mapping of the notes in an octave based on the musical mode +msgid "nth modal pitch" msgstr "" -#: js/MeterBlocks.js:1367 -msgid "number of beats" +#: js/blocks/PitchBlocks.js:1706 +msgid "n^th Modal Pitch takes the pattern of pitches in semitones for a mode and makes each point a degree of the mode," msgstr "" -#: js/DictBlocks.js:77 -msgid "show dictionary" +#: js/blocks/PitchBlocks.js:1708 +msgid "starting from 1 and regardless of tonal framework (i.e. not always 8 notes in the octave)" msgstr "" -#: js/DictBlocks.js:129 -msgid "The Dictionary block returns a dictionary." +#: js/blocks/PitchBlocks.js:1749 +msgid "N^th Modal Pitch takes a number as an input as the n^th degree for the given mode. 0 is the first position, 1 is the second, -1 is the note before the first etc." msgstr "" -#: js/DictBlocks.js:197 -#: js/DictBlocks.js:339 -msgid "The Get-dict block returns a value in the dictionary for a specified key." +#: js/blocks/PitchBlocks.js:1751 +msgid "The pitches change according to the mode specified without any need for respellings." msgstr "" -#: js/DictBlocks.js:212 -#: js/DictBlocks.js:354 -#.TRANS: retrieve a value from the dictionary with a given key -msgid "get value" +#: js/blocks/PitchBlocks.js:1790 +msgid "Scale Degree is a common convention in music. Scale Degree offers seven possible positions in the scale (1-7) and can be modified via accidentals." msgstr "" -#: js/DictBlocks.js:215 -#: js/DictBlocks.js:216 -#: js/DictBlocks.js:289 -#: js/DictBlocks.js:290 -#: js/DictBlocks.js:357 -#: js/DictBlocks.js:430 -#: js/DictBlocks.js:431 -msgid "key2" +#: js/blocks/PitchBlocks.js:1792 +msgid "Scale Degree 1 is always the first pitch in a given scale, regardless of octave." msgstr "" -#: js/DictBlocks.js:271 -#: js/DictBlocks.js:411 -msgid "The Set-dict block sets a value in the dictionary for a specified key." +#: js/blocks/PitchBlocks.js:1814 +#.TRANS: step some number of notes in current musical scale +msgid "scalar step" msgstr "" -#: js/DictBlocks.js:286 -#: js/DictBlocks.js:427 -#.TRANS: set a value in the dictionary for a given key -msgid "set value" +#: js/blocks/PitchBlocks.js:1819 +msgid "The Scalar Step block (in combination with a Number block) will play the next pitch in a scale," msgstr "" -#: js/ExtrasBlocks.js:33 -msgid "fraction" +#: js/blocks/PitchBlocks.js:1821 +msgid "eg if the last note played was sol, Scalar Step 1 will play la." msgstr "" -#: js/ExtrasBlocks.js:36 -msgid "Convert a float to a fraction" +#: js/blocks/PitchBlocks.js:1857 +msgid "The Pitch block specifies the pitch name and octave of a note that together determine the frequency of the note." msgstr "" -#: js/ExtrasBlocks.js:93 -msgid "save as ABC" +#: js/blocks/ProgramBlocks.js:33 +msgid "The Load-heap-from-app block loads the heap from a web page." msgstr "" -#: js/ExtrasBlocks.js:96 -#: js/ExtrasBlocks.js:132 -#: js/ExtrasBlocks.js:168 -msgid "title" +#: js/blocks/ProgramBlocks.js:44 +#.TRANS: load the heap contents from a URL +msgid "load heap from App" msgstr "" -#: js/ExtrasBlocks.js:129 -msgid "save as Lilypond" +#: js/blocks/ProgramBlocks.js:95 +msgid "Error parsing JSON data:" msgstr "" -#: js/ExtrasBlocks.js:165 -msgid "save as SVG" +#: js/blocks/ProgramBlocks.js:100 +msgid "404: Page not found" msgstr "" -#: js/ExtrasBlocks.js:216 -msgid "no background" +#: js/blocks/ProgramBlocks.js:133 +msgid "The Save-heap-to-app block saves the heap to a web page." msgstr "" -#: js/ExtrasBlocks.js:219 -msgid "The No background block eliminates the background from the saved SVG output." +#: js/blocks/ProgramBlocks.js:144 +#.TRANS: save the heap contents to a URL +msgid "save heap to App" msgstr "" -#: js/ExtrasBlocks.js:247 -msgid "show blocks" -msgstr "顯示區塊" - -#: js/ExtrasBlocks.js:249 -msgid "The Show blocks block shows the blocks." +#: js/blocks/ProgramBlocks.js:189 +msgid "Cannot find a valid heap for" msgstr "" -#: js/ExtrasBlocks.js:274 -msgid "hide blocks" -msgstr "隱藏區塊" - -#: js/ExtrasBlocks.js:276 -msgid "The Hide blocks block hides the blocks." +#: js/blocks/ProgramBlocks.js:206 +msgid "The Load-heap block loads the heap from a file." msgstr "" -#: js/ExtrasBlocks.js:305 -#: js/ExtrasBlocks.js:335 -msgid "The Space block is used to add space between blocks." +#: js/blocks/ProgramBlocks.js:217 +#.TRANS: load the heap from a file +msgid "load heap" msgstr "" -#: js/ExtrasBlocks.js:373 -msgid "wait" -msgstr "等待" +#: js/blocks/ProgramBlocks.js:270 +msgid "The file you selected does not contain a valid heap." +msgstr "" -#: js/ExtrasBlocks.js:376 -msgid "The Wait block pauses the program for a specified number of seconds." +#: js/blocks/ProgramBlocks.js:275 +msgid "The loadHeap block needs a loadFile block." msgstr "" -#: js/ExtrasBlocks.js:430 -#: plugins/facebook.rtp:30 -msgid "comment" -msgstr "註記" +#: js/blocks/ProgramBlocks.js:291 +msgid "The Set-heap block loads the heap." +msgstr "" -#: js/ExtrasBlocks.js:466 -msgid "print" -msgstr "顯示" +#: js/blocks/ProgramBlocks.js:340 +msgid "The block you selected does not contain a valid heap." +msgstr "" -#: js/ExtrasBlocks.js:473 -msgid "The Print block displays text at the top of the screen." +#: js/blocks/ProgramBlocks.js:343 +msgid "The Set heap block needs a heap." msgstr "" -#: js/ExtrasBlocks.js:579 -msgid "display grid" +#: js/blocks/ProgramBlocks.js:360 +msgid "The Load-dictionary block loads a dictionary from a file." msgstr "" -#: js/ExtrasBlocks.js:584 -msgid "The Display Grid Block changes the grid type" +#: js/blocks/ProgramBlocks.js:372 +#.TRANS: load a dictionary from a file +msgid "load dictionary" msgstr "" -#: js/ExtrasBlocks.js:686 -#: js/ExtrasBlocks.js:705 -#: js/ExtrasBlocks.js:728 -#: js/ExtrasBlocks.js:751 -#: js/ExtrasBlocks.js:769 -#: js/ExtrasBlocks.js:788 -#: js/ExtrasBlocks.js:807 -#: js/ExtrasBlocks.js:826 -msgid "unknown" +#: js/blocks/ProgramBlocks.js:390 +#: js/blocks/ProgramBlocks.js:658 +#: js/blocks/ToneBlocks.js:1025 +msgid "file" msgstr "" -#: js/SensorsBlocks.js:36 -msgid "The Input block prompts for keyboard input." +#: js/blocks/ProgramBlocks.js:444 +msgid "The file you selected does not contain a valid dictionary." msgstr "" -#: js/SensorsBlocks.js:46 -msgid "input" +#: js/blocks/ProgramBlocks.js:449 +msgid "The load dictionary block needs a load file block." msgstr "" -#: js/SensorsBlocks.js:64 -msgid "Input a value" +#: js/blocks/ProgramBlocks.js:466 +msgid "The Set-dictionary block loads a dictionary." msgstr "" -#: js/SensorsBlocks.js:126 -msgid "input value" +#: js/blocks/ProgramBlocks.js:477 +#.TRANS: load a dictionary from a JSON +msgid "set dictionary" msgstr "" -#: js/SensorsBlocks.js:131 -msgid "The Input-value block stores the input." +#: js/blocks/ProgramBlocks.js:546 +msgid "The block you selected does not contain a valid dictionary." msgstr "" -#: js/SensorsBlocks.js:238 -msgid "loudness" -msgstr "音量" +#: js/blocks/ProgramBlocks.js:550 +msgid "The set dictionary block needs a dictionary." +msgstr "" -#: js/SensorsBlocks.js:245 -msgid "The Loudness block returns the volume detected by the microphone." +#: js/blocks/ProgramBlocks.js:567 +msgid "The Save-heap block saves the heap to a file." msgstr "" -#: js/SensorsBlocks.js:300 -msgid "click" +#: js/blocks/ProgramBlocks.js:578 +#.TRANS: save the heap to a file +msgid "save heap" msgstr "" -#: js/SensorsBlocks.js:306 -msgid "The Click block triggers an event if a mouse has been clicked." +#: js/blocks/ProgramBlocks.js:629 +msgid "The Save-dictionary block saves a dictionary to a file." msgstr "" -#: js/SensorsBlocks.js:313 -msgid "The Click block triggers an event if a turtle has been clicked." +#: js/blocks/ProgramBlocks.js:640 +#.TRANS: save a dictionary to a file +msgid "save dictionary" msgstr "" -#: js/SensorsBlocks.js:342 -msgid "cursor over" +#: js/blocks/ProgramBlocks.js:720 +msgid "The Open palette block opens a palette." msgstr "" -#: js/SensorsBlocks.js:387 -msgid "cursor out" +#: js/blocks/ProgramBlocks.js:727 +msgid "open palette" msgstr "" -#: js/SensorsBlocks.js:433 -msgid "cursor button down" +#: js/blocks/ProgramBlocks.js:785 +msgid "The Delete block block removes a block." msgstr "" -#: js/SensorsBlocks.js:477 -msgid "cursor button up" +#: js/blocks/ProgramBlocks.js:797 +#.TRANS: Move this block to the trash. +msgid "delete block" msgstr "" -#: js/SensorsBlocks.js:638 -msgid "The Get red block returns the red component of the pixel under the mouse." +#: js/blocks/ProgramBlocks.js:861 +msgid "The Move block block moves a block." msgstr "" -#: js/SensorsBlocks.js:644 -msgid "The Get red block returns the red component of the pixel under the turtle." +#: js/blocks/ProgramBlocks.js:869 +#.TRANS: Move the position of a block on the screen. +msgid "move block" msgstr "" -#: js/SensorsBlocks.js:685 -#: plugins/rodi.rtp:216 -msgid "pixel color" +#: js/blocks/ProgramBlocks.js:881 +#: js/blocks/ProgramBlocks.js:1048 +msgid "block number" msgstr "" -#: js/SensorsBlocks.js:690 -msgid "The Get pixel block returns the color of the pixel under the mouse." +#: js/blocks/ProgramBlocks.js:935 +#.TRANS: Run program beginning at this block. +msgid "run block" msgstr "" -#: js/SensorsBlocks.js:696 -msgid "The Get pixel block returns the color of the pixel under the turtle." +#: js/blocks/ProgramBlocks.js:1025 +msgid "The Dock block block connections two blocks." msgstr "" -#: js/SensorsBlocks.js:758 -msgid "time" -msgstr "時間" +#: js/blocks/ProgramBlocks.js:1036 +#.TRANS: We can connect a block to another block. +msgid "connect blocks" +msgstr "" -#: js/SensorsBlocks.js:804 -msgid "cursor y" +#: js/blocks/ProgramBlocks.js:1048 +msgid "target block" msgstr "" -#: js/SensorsBlocks.js:809 -msgid "The Cursor Y block returns the vertical position of the mouse." +#: js/blocks/ProgramBlocks.js:1048 +msgid "connection number" msgstr "" -#: js/SensorsBlocks.js:845 -msgid "cursor x" +#: js/blocks/ProgramBlocks.js:1140 +msgid "The Make block block creates a new block." msgstr "" -#: js/SensorsBlocks.js:850 -msgid "The Cursor X block returns the horizontal position of the mouse." +#: js/blocks/ProgramBlocks.js:1152 +#.TRANS: Create a new block +msgid "make block" msgstr "" -#: js/SensorsBlocks.js:886 -msgid "mouse button" +#: js/blocks/ProgramBlocks.js:1285 +msgid "Cannot find block" msgstr "" -#: js/SensorsBlocks.js:888 -msgid "The Mouse-button block returns True if the mouse button is pressed." +#: js/blocks/ProgramBlocks.js:1304 +#: js/blocks/ProgramBlocks.js:1313 +msgid "Warning: block argument type mismatch" msgstr "" -#: js/SensorsBlocks.js:934 -msgid "to ASCII" +#: js/blocks/ProgramBlocks.js:1347 +msgid "The Open project block is used to open a project from a web page." msgstr "" -#: js/SensorsBlocks.js:938 -msgid "The To ASCII block converts numbers to letters." +#: js/blocks/ProgramBlocks.js:1357 +msgid "open project" msgstr "" -#: js/SensorsBlocks.js:1005 -msgid "The Keyboard block returns computer keyboard input." +#: js/blocks/ProgramBlocks.js:1410 +msgid "Please enter a valid URL." msgstr "" -#: js/IntervalsActions.js:216 -msgid "Adding missing pitch number 0." +#: js/blocks/ToneBlocks.js:34 +msgid "oscillator" msgstr "" -#: js/IntervalsActions.js:224 -msgid "Ignoring pitch numbers less than zero or greater than eleven." +#: js/blocks/ToneBlocks.js:42 +#: js/blocks/WidgetBlocks.js:179 +#: js/widgets/timbre.js:1558 +#: js/widgets/timbre.js:1808 +#.TRANS: there are different types (sine, triangle, square...) of oscillators. +#.TRANS: type of filter, e.g., lowpass, highpass, etc. +msgid "type" msgstr "" -#: js/IntervalsActions.js:230 -msgid "Ignoring duplicate pitch numbers." +#: js/blocks/ToneBlocks.js:44 +#: js/widgets/timbre.js:1562 +#.TRANS: Partials refers to the number of sine waves combined into the sound. +msgid "partials" msgstr "" -#: js/PitchActions.js:88 -msgid "The Scalar Step Block must be used inside of a Note Block." +#: js/blocks/ToneBlocks.js:76 +msgid "You are adding multiple oscillator blocks." msgstr "" -#: js/PitchActions.js:107 -msgid "The Scalar Step Block must be preceded by a Pitch Block." +#: js/blocks/ToneBlocks.js:144 +#: js/widgets/timbre.js:1225 +#.TRANS: a duo synthesizer combines a synth with a sequencer +msgid "duo synth" msgstr "" -#: js/DrumActions.js:231 -msgid "Noise Block: Did you mean to use a Note block?" +#: js/blocks/ToneBlocks.js:149 +msgid "The Duo synth block is a duo-frequency modulator used to define a timbre." msgstr "" -#: js/MeterActions.js:101 -#: js/MeterActions.js:139 -msgid "beats per minute must be greater than" +#: js/blocks/ToneBlocks.js:157 +#: js/widgets/timbre.js:1476 +msgid "vibrato rate" msgstr "" -#: js/MeterActions.js:111 -#: js/MeterActions.js:149 -msgid "maximum" +#: js/blocks/ToneBlocks.js:157 +msgid "vibrato intensity" msgstr "" -#: js/MeterActions.js:117 -#: js/MeterActions.js:155 -msgid "beats per minute is" +#: js/blocks/ToneBlocks.js:185 +#: js/widgets/timbre.js:1221 +#.TRANS: AM (amplitude modulation) synthesizer +msgid "AM synth" msgstr "" -#: js/ToneActions.js:134 -msgid "Vibrato intensity must be between 1 and 100." +#: js/blocks/ToneBlocks.js:189 +msgid "The AM synth block is an amplitude modulator used to define a timbre." msgstr "" -#: js/ToneActions.js:139 -msgid "Vibrato rate must be greater than 0." +#: js/blocks/ToneBlocks.js:224 +#: js/widgets/timbre.js:1223 +#.TRANS: FM (frequency modulation) synthesizer +msgid "FM synth" msgstr "" -#: js/ToneActions.js:192 -#: js/ToneActions.js:265 -#.TRANS: Depth is the intesity of the tremolo or chorus effect. -msgid "Depth is out of range." +#: js/blocks/ToneBlocks.js:228 +msgid "The FM synth block is a frequency modulator used to define a timbre." msgstr "" -#: js/ToneActions.js:301 -msgid "Distortion must be from 0 to 100." +#: js/blocks/ToneBlocks.js:262 +msgid "partial" msgstr "" -#: js/ToneActions.js:332 -#.TRANS: partials components in a harmonic series -msgid "Partial must be greater than or equal to 0." +#: js/blocks/ToneBlocks.js:265 +msgid "The Partial block is used to specify a weight for a specific partial harmonic." msgstr "" -#: js/ToneActions.js:378 -#: js/ToneActions.js:417 -#: js/ToneActions.js:456 -#: js/timbre.js:782 -msgid "Unable to use synth due to existing oscillator" +#: js/blocks/ToneBlocks.js:284 +#.TRANS: partials are weighted components in a harmonic series +msgid "Partial weight must be between 0 and 1." msgstr "" -#: js/ToneActions.js:388 -#: js/ToneActions.js:427 -msgid "The input cannot be negative." +#: js/blocks/ToneBlocks.js:297 +#.TRANS: partials are weighted components in a harmonic series +msgid "Partial block should be used inside of a Weighted-partials block." msgstr "" -#: js/DictActions.js:75 -#: js/DictActions.js:153 -#: js/DictActions.js:188 -msgid "font" +#: js/blocks/ToneBlocks.js:325 +#.TRANS: partials are weighted components in a harmonic series +msgid "weighted partials" msgstr "" -#: js/musicutils.js:363 -#: js/musicutils.js:471 -#: js/pitchdrummatrix.js:151 -#: js/musickeyboard.js:2563 -msgid "rest" +#: js/blocks/ToneBlocks.js:383 +msgid "The Harmonic block will add harmonics to the contained notes." msgstr "" -#: js/musicutils.js:565 -#.TRANS: ordinal number. Please keep exactly one space between each number. -msgid "1st 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th" +#: js/blocks/ToneBlocks.js:390 +#.TRANS: A harmonic is an overtone. +msgid "harmonic" msgstr "" -#: js/musicutils.js:629 -#: js/musicutils.js:812 -#: js/musicutils.js:911 -#.TRANS: augmented is a music term related to intervals -msgid "augmented" +#: js/blocks/ToneBlocks.js:431 +msgid "The Distortion block adds distortion to the pitch." msgstr "" -#: js/musicutils.js:631 -#: js/musicutils.js:813 -#: js/musicutils.js:910 -#.TRANS: diminished is a music term related to intervals and mode -msgid "diminished" +#: js/blocks/ToneBlocks.js:438 +#: js/widgets/timbre.js:2100 +#.TRANS: distortion is an alteration in the sound +msgid "distortion" msgstr "" -#: js/musicutils.js:639 -#.TRANS: twelve semi-tone scale for music -msgid "chromatic" +#: js/blocks/ToneBlocks.js:487 +msgid "The Tremolo block adds a wavering effect." msgstr "" -#: js/musicutils.js:640 -msgid "algerian" +#: js/blocks/ToneBlocks.js:495 +#: js/widgets/timbre.js:2092 +#.TRANS: a wavering effect in a musical tone +msgid "tremolo" msgstr "" -#: js/musicutils.js:641 -msgid "spanish" +#: js/blocks/ToneBlocks.js:500 +#: js/blocks/ToneBlocks.js:569 +#: js/blocks/ToneBlocks.js:630 +#: js/blocks/ToneBlocks.js:689 +#: js/widgets/timbre.js:2134 +#: js/widgets/timbre.js:2222 +#: js/widgets/timbre.js:2317 +#: js/widgets/timbre.js:2419 +#.TRANS: rate at which tremolo wavers +msgid "rate" msgstr "" -#: js/musicutils.js:643 -#.TRANS: modal scale in music -msgid "octatonic" +#: js/blocks/ToneBlocks.js:502 +#: js/blocks/ToneBlocks.js:630 +#: js/widgets/timbre.js:2137 +#: js/widgets/timbre.js:2328 +#.TRANS: amplitude of tremolo waver +msgid "depth" msgstr "" -#: js/musicutils.js:645 -#.TRANS: harmonic major scale in music -msgid "harmonic major" +#: js/blocks/ToneBlocks.js:559 +msgid "The Phaser block adds a sweeping sound." msgstr "" -#: js/musicutils.js:647 -#.TRANS: natural minor scales in music -msgid "natural minor" +#: js/blocks/ToneBlocks.js:566 +#: js/widgets/timbre.js:2098 +#.TRANS: alter the phase of the sound +msgid "phaser" msgstr "" -#: js/musicutils.js:649 -#.TRANS: harmonic minor scale in music -msgid "harmonic minor" +#: js/blocks/ToneBlocks.js:569 +#: js/turtleactions/IntervalsActions.js:114 +#: js/widgets/timbre.js:2422 +msgid "octaves" msgstr "" -#: js/musicutils.js:651 -#.TRANS: melodic minor scale in music -msgid "melodic minor" +#: js/blocks/ToneBlocks.js:569 +#: js/widgets/timbre.js:2425 +msgid "base frequency" msgstr "" -#: js/musicutils.js:655 -#.TRANS: modal scale for music -msgid "dorian" +#: js/blocks/ToneBlocks.js:619 +msgid "The Chorus block adds a chorus effect." msgstr "" -#: js/musicutils.js:657 -#.TRANS: modal scale for music -msgid "phrygian" +#: js/blocks/ToneBlocks.js:627 +#: js/widgets/timbre.js:2096 +#.TRANS: musical effect to simulate a choral sound +msgid "chorus" msgstr "" -#: js/musicutils.js:659 -#.TRANS: modal scale for music -msgid "lydian" +#: js/blocks/ToneBlocks.js:630 +msgid "delay" msgstr "" -#: js/musicutils.js:661 -#.TRANS: modal scale for music -msgid "mixolydian" +#: js/blocks/ToneBlocks.js:678 +msgid "The Vibrato block adds a rapid, slight variation in pitch." msgstr "" -#: js/musicutils.js:665 -#.TRANS: modal scale for music -msgid "locrian" +#: js/blocks/ToneBlocks.js:686 +#: js/widgets/timbre.js:2094 +#.TRANS: a rapid, slight variation in pitch +msgid "vibrato" msgstr "" -#: js/musicutils.js:667 -#.TRANS: minor jazz scale for music -msgid "jazz minor" +#: js/blocks/ToneBlocks.js:689 +#: js/widgets/timbre.js:2221 +msgid "intensity" msgstr "" -#: js/musicutils.js:669 -#.TRANS: bebop scale for music -msgid "bebop" +#: js/blocks/ToneBlocks.js:733 +#.TRANS: select synthesizer +msgid "set synth" msgstr "" -#: js/musicutils.js:670 -msgid "arabic" +#: js/blocks/ToneBlocks.js:804 +msgid "synth name" msgstr "" -#: js/musicutils.js:671 -msgid "byzantine" +#: js/blocks/ToneBlocks.js:842 +msgid "set default instrument" msgstr "" -#: js/musicutils.js:673 -#.TRANS: musical scale for music by Verdi -msgid "enigmatic" +#: js/blocks/ToneBlocks.js:895 +#: js/blocks/ToneBlocks.js:943 +#.TRANS: set the characteristics of a custom instrument +msgid "set instrument" msgstr "" -#: js/musicutils.js:674 -msgid "ethiopian" +#: js/blocks/ToneBlocks.js:898 +#: js/blocks/ToneBlocks.js:926 +#: js/blocks/ToneBlocks.js:932 +msgid "The Set instrument block selects a voice for the synthesizer," msgstr "" -#: js/musicutils.js:676 -#.TRANS: Ethiopic scale for music -msgid "geez" +#: js/blocks/ToneBlocks.js:900 +#: js/blocks/ToneBlocks.js:934 +msgid "eg guitar piano violin or cello." msgstr "" -#: js/musicutils.js:677 -msgid "hindu" +#: js/blocks/ToneBlocks.js:1015 +msgid "Import a sound file to use as an instrument and set its pitch center." msgstr "" -#: js/musicutils.js:678 -msgid "hungarian" +#: js/blocks/ToneBlocks.js:1110 +msgid "Upload a sound file to connect with the sample block." msgstr "" -#: js/musicutils.js:680 -#.TRANS: minor Romanian scale for music -msgid "romanian minor" +#: js/blocks/VolumeBlocks.js:35 +msgid "synth volume" msgstr "" -#: js/musicutils.js:681 -msgid "spanish gypsy" +#: js/blocks/VolumeBlocks.js:39 +msgid "The Synth volume block returns the current volume of the current synthesizer." msgstr "" -#: js/musicutils.js:683 -#.TRANS: musical scale for Mid-Eastern music -msgid "maqam" +#: js/blocks/VolumeBlocks.js:105 +msgid "master volume" msgstr "" -#: js/musicutils.js:685 -#.TRANS: minor blues scale for music -msgid "minor blues" +#: js/blocks/VolumeBlocks.js:109 +msgid "The Master volume block returns the master volume." msgstr "" -#: js/musicutils.js:687 -#.TRANS: major blues scale for music -msgid "major blues" +#: js/blocks/VolumeBlocks.js:355 +#: js/blocks/VolumeBlocks.js:524 +msgid "set synth volume" msgstr "" -#: js/musicutils.js:688 -msgid "whole tone" +#: js/blocks/VolumeBlocks.js:362 +#: js/blocks/VolumeBlocks.js:545 +msgid "synth" msgstr "" -#: js/musicutils.js:690 -#.TRANS: pentatonic is a general term that means "five note scale". This scale is typically known as "minor pentatonic" -msgid "minor pentatonic" +#: js/blocks/VolumeBlocks.js:403 +#: js/blocks/VolumeBlocks.js:577 +#: js/blocks/VolumeBlocks.js:740 +#: js/turtleactions/VolumeActions.js:173 +msgid "Setting volume to 0." msgstr "" -#: js/musicutils.js:692 -#.TRANS: pentatonic is a general term that means "five note scale". This scale is typically known as "major pentatonic" -msgid "major pentatonic" +#: js/blocks/VolumeBlocks.js:440 +msgid "Synth not found" msgstr "" -#: js/musicutils.js:693 -msgid "chinese" +#: js/blocks/VolumeBlocks.js:494 +msgid "set drum volume" msgstr "" -#: js/musicutils.js:694 -msgid "egyptian" +#: js/blocks/VolumeBlocks.js:530 +msgid "The Set synth volume block will change the volume of a particular synth," msgstr "" -#: js/musicutils.js:696 -#.TRANS: https://en.wikipedia.org/wiki/Hirajoshi_scale NOTE: There are three different versions of this scale -msgid "hirajoshi" +#: js/blocks/VolumeBlocks.js:532 +msgid "eg guitar violin snare drum etc." msgstr "" -#: js/musicutils.js:697 -msgid "Japan" +#: js/blocks/VolumeBlocks.js:534 +msgid "The default volume is 50." msgstr "" -#: js/musicutils.js:699 -#.TRANS: https://en.wikipedia.org/wiki/In_scale and https://en.wikipedia.org/wiki/Sakura_Sakura -msgid "in" +#: js/blocks/VolumeBlocks.js:536 +msgid "The range is 0 for silence to 100 for full volume." msgstr "" -#: js/musicutils.js:701 -#.TRANS: https://en.wikipedia.org/wiki/Miny%C5%8D_scale -msgid "minyo" +#: js/blocks/VolumeBlocks.js:597 +msgid "set panning" msgstr "" -#: js/musicutils.js:703 -#.TRANS: Italian mathematician -msgid "fibonacci" +#: js/blocks/VolumeBlocks.js:603 +msgid "The Set Panning block sets the panning for all synthesizers." msgstr "" -#: js/musicutils.js:708 -#: js/musicutils.js:1106 -#.TRANS: lowpass filter -msgid "lowpass" +#: js/blocks/VolumeBlocks.js:625 +msgid "Warning: Sound is coming out from only the left or right side." msgstr "" -#: js/musicutils.js:710 -#: js/musicutils.js:1107 -#.TRANS: bandpass filter -msgid "bandpass" +#: js/blocks/VolumeBlocks.js:647 +#: js/blocks/VolumeBlocks.js:695 +msgid "set master volume" msgstr "" -#: js/musicutils.js:712 -#: js/musicutils.js:1108 -#.TRANS: high-shelf filter -msgid "highshelf" +#: js/blocks/VolumeBlocks.js:653 +msgid "The Set master volume block sets the volume for all synthesizers." msgstr "" -#: js/musicutils.js:714 -#: js/musicutils.js:1109 -#.TRANS: low-shelf filter -msgid "lowshelf" +#: js/blocks/VolumeBlocks.js:784 +msgid "The Set relative volume block changes the volume of the contained notes." msgstr "" -#: js/musicutils.js:716 -#: js/musicutils.js:1110 -#.TRANS: notch-shelf filter -msgid "notch" +#: js/blocks/VolumeBlocks.js:791 +msgid "set relative volume" msgstr "" -#: js/musicutils.js:718 -#: js/musicutils.js:1111 -#.TRANS: all-pass filter -msgid "allpass" +#: js/blocks/VolumeBlocks.js:857 +msgid "decrescendo" msgstr "" -#: js/musicutils.js:720 -#: js/musicutils.js:1112 -#.TRANS: peaking filter -msgid "peaking" +#: js/blocks/VolumeBlocks.js:921 +msgid "crescendo" msgstr "" -#: js/musicutils.js:731 -#: js/synthutils.js:58 -#.TRANS: musical instrument -msgid "violin" +#: js/blocks/WidgetBlocks.js:81 +#.TRANS: sound envelope (ADSR) +msgid "envelope" msgstr "" -#: js/musicutils.js:732 -#: js/synthutils.js:60 -#.TRANS: viola musical instrument -msgid "viola" +#: js/blocks/WidgetBlocks.js:89 +#.TRANS: Attack time is the time taken for initial run-up of level from nil to peak, beginning when the key is first pressed. +msgid "attack" msgstr "" -#: js/musicutils.js:733 -#: js/synthutils.js:98 -#.TRANS: xylophone musical instrument -msgid "xylophone" +#: js/blocks/WidgetBlocks.js:91 +#.TRANS: Decay time is the time taken for the subsequent run down from the attack level to the designated sustain level. +msgid "decay" msgstr "" -#: js/musicutils.js:734 -#: js/synthutils.js:120 -#.TRANS: vibraphone musical instrument -msgid "vibraphone" +#: js/blocks/WidgetBlocks.js:93 +#.TRANS: Sustain level is the level during the main sequence of the sound's duration, until the key is released. +msgid "sustain" msgstr "" -#: js/musicutils.js:735 -#: js/synthutils.js:62 -#.TRANS: musical instrument -msgid "cello" +#: js/blocks/WidgetBlocks.js:95 +#.TRANS: Release time is the time taken for the level to decay from the sustain level to zero after the key is released. +msgid "release" msgstr "" -#: js/musicutils.js:737 -#: js/synthutils.js:66 -#.TRANS: viola musical instrument -msgid "double bass" +#: js/blocks/WidgetBlocks.js:113 +msgid "Attack value should be from 0 to 100." msgstr "" -#: js/musicutils.js:738 -#: js/synthutils.js:68 -#: js/rhythmruler.js:2119 -#.TRANS: musical instrument -msgid "guitar" +#: js/blocks/WidgetBlocks.js:116 +msgid "Decay value should be from 0 to 100." msgstr "" -#: js/musicutils.js:739 -#: js/synthutils.js:70 -#.TRANS: musical instrument -msgid "acoustic guitar" +#: js/blocks/WidgetBlocks.js:119 +msgid "Sustain value should be from 0 to 100." msgstr "" -#: js/musicutils.js:740 -#: js/synthutils.js:72 -#.TRANS: musical instrument -msgid "flute" +#: js/blocks/WidgetBlocks.js:122 +msgid "Release value should be from 0-100." msgstr "" -#: js/musicutils.js:741 -#: js/synthutils.js:74 -#.TRANS: musical instrument -msgid "clarinet" +#: js/blocks/WidgetBlocks.js:140 +msgid "You are adding multiple envelope blocks." msgstr "" -#: js/musicutils.js:742 -#: js/synthutils.js:76 -#.TRANS: musical instrument -msgid "saxophone" +#: js/blocks/WidgetBlocks.js:171 +#.TRANS: a filter removes some unwanted components from a signal +msgid "filter" msgstr "" -#: js/musicutils.js:743 -#: js/synthutils.js:78 -#.TRANS: musical instrument -msgid "tuba" +#: js/blocks/WidgetBlocks.js:181 +#: js/widgets/timbre.js:1818 +#.TRANS: rolloff is the steepness of a change in frequency. +msgid "rolloff" msgstr "" -#: js/musicutils.js:744 -#: js/synthutils.js:80 -#.TRANS: musical instrument -msgid "trumpet" +#: js/blocks/WidgetBlocks.js:213 +#.TRANS: rolloff is the steepness of a change in frequency. +msgid "Rolloff value should be either -12, -24, -48, or -96 decibels/octave." msgstr "" -#: js/musicutils.js:745 -#: js/synthutils.js:82 -#.TRANS: musical instrument -msgid "oboe" +#: js/blocks/WidgetBlocks.js:252 +msgid "The Temperament tool is used to define custom tuning." msgstr "" -#: js/musicutils.js:746 -#: js/synthutils.js:84 -#.TRANS: musical instrument -msgid "trombone" +#: js/blocks/WidgetBlocks.js:332 +#: js/blocks/WidgetBlocks.js:1573 +#: js/widgets/sampler.js:547 +msgid "Upload a sample and adjust its pitch center." msgstr "" -#: js/musicutils.js:747 -#: js/synthutils.js:100 -#.TRANS: polytone synthesizer -msgid "electronic synth" +#: js/blocks/WidgetBlocks.js:339 +#.TRANS: the speed at music is should be played. +msgid "sampler" msgstr "" -#: js/musicutils.js:748 -#: js/synthutils.js:102 -#.TRANS: simple monotone synthesizer -msgid "simple 1" +#: js/blocks/WidgetBlocks.js:517 +msgid "The Meter block opens a tool to select strong beats for the meter." msgstr "" -#: js/musicutils.js:749 -msgid "simple 2" +#: js/blocks/WidgetBlocks.js:573 +msgid "The oscilloscope block opens a tool to visualize waveforms." msgstr "" -#: js/musicutils.js:750 -msgid "simple 3" +#: js/blocks/WidgetBlocks.js:578 +msgid "oscilloscope" msgstr "" -#: js/musicutils.js:751 -msgid "simple 4" +#: js/blocks/WidgetBlocks.js:645 +msgid "The Custom mode block opens a tool to explore musical mode (the spacing of the notes in a scale)." msgstr "" -#: js/musicutils.js:753 -#: js/synthutils.js:49 -#.TRANS: brown noise synthesizer -msgid "brown noise" +#: js/blocks/WidgetBlocks.js:651 +#.TRANS: musical mode is the pattern of half-steps in an octave, e.g., Major or Minor modes +msgid "custom mode" msgstr "" -#: js/musicutils.js:754 -#: js/synthutils.js:51 -#.TRANS: pink noise synthesizer -msgid "pink noise" +#: js/blocks/WidgetBlocks.js:700 +msgid "The Tempo block opens a metronome to visualize the beat." msgstr "" -#: js/musicutils.js:756 -#: js/synthutils.js:127 -#: js/rhythmruler.js:1670 -#: js/rhythmruler.js:1928 -#.TRANS: musical instrument -msgid "snare drum" +#: js/blocks/WidgetBlocks.js:762 +msgid "The Arpeggio Widget is used to compose chord sequences." msgstr "" -#: js/musicutils.js:757 -#: js/synthutils.js:129 -#.TRANS: musical instrument -msgid "kick drum" +#: js/blocks/WidgetBlocks.js:837 +msgid "The Pitch drum matrix is used to map pitches to drum sounds." msgstr "" -#: js/musicutils.js:758 -#: js/synthutils.js:131 -#.TRANS: musical instrument -msgid "tom tom" +#: js/blocks/WidgetBlocks.js:842 +#.TRANS: makes a mapping between pitches and drum sounds +msgid "pitch-drum mapper" msgstr "" -#: js/musicutils.js:759 -#: js/synthutils.js:133 -#.TRANS: musical instrument -msgid "floor tom" +#: js/blocks/WidgetBlocks.js:891 +msgid "You must have at least one pitch block and one drum block in the matrix." msgstr "" -#: js/musicutils.js:760 -#: js/synthutils.js:135 -#.TRANS: musical instrument -msgid "bass drum" +#: js/blocks/WidgetBlocks.js:920 +msgid "The Pitch slider tool to is used to generate pitches at selected frequencies." msgstr "" -#: js/musicutils.js:761 -#: js/synthutils.js:137 -#.TRANS: a drum made from an inverted cup -msgid "cup drum" +#: js/blocks/WidgetBlocks.js:925 +#.TRANS: widget to generate pitches using a slider +msgid "pitch slider" msgstr "" -#: js/musicutils.js:762 -#: js/synthutils.js:139 -#.TRANS: musical instrument -msgid "darbuka drum" +#: js/blocks/WidgetBlocks.js:977 +msgid "chromatic keyboard" msgstr "" -#: js/musicutils.js:763 -#: js/synthutils.js:143 -#.TRANS: musical instrument -msgid "hi hat" +#: js/blocks/WidgetBlocks.js:1011 +#: js/blocks/WidgetBlocks.js:1077 +#.TRANS: widget to generate pitches using a slider +msgid "music keyboard" msgstr "" -#: js/musicutils.js:764 -#: js/synthutils.js:145 -#.TRANS: a small metal bell -msgid "ride bell" +#: js/blocks/WidgetBlocks.js:1062 +#: js/blocks/WidgetBlocks.js:1069 +msgid "The Music keyboard block opens a piano keyboard that can be used to create notes." msgstr "" -#: js/musicutils.js:765 -#: js/synthutils.js:147 -#.TRANS: musical instrument -msgid "cow bell" +#: js/blocks/WidgetBlocks.js:1128 +msgid "The Pitch staircase tool to is used to generate pitches from a given ratio." msgstr "" -#: js/musicutils.js:766 -msgid "japanese drum" +#: js/blocks/WidgetBlocks.js:1135 +#.TRANS: generate a progressive sequence of pitches +msgid "pitch staircase" msgstr "" -#: js/musicutils.js:767 -#: js/synthutils.js:153 -#.TRANS: musical instrument -msgid "japanese bell" +#: js/blocks/WidgetBlocks.js:1222 +msgid "The Rhythm Maker block opens a tool to create drum machines." msgstr "" -#: js/musicutils.js:768 -#: js/synthutils.js:149 -#.TRANS: musical instrument -msgid "triangle bell" +#: js/blocks/WidgetBlocks.js:1291 +msgid "G major scale" msgstr "" -#: js/musicutils.js:769 -#: js/synthutils.js:151 -#.TRANS: musical instrument -msgid "finger cymbals" +#: js/blocks/WidgetBlocks.js:1326 +msgid "C major scale" msgstr "" -#: js/musicutils.js:770 -#: js/synthutils.js:155 -#.TRANS: a musically tuned set of bells -msgid "chime" +#: js/blocks/WidgetBlocks.js:1366 +msgid "The Phrase Maker block opens a tool to create musical phrases." msgstr "" -#: js/musicutils.js:771 -#: js/synthutils.js:157 -#.TRANS: a musical instrument -msgid "gong" +#: js/blocks/WidgetBlocks.js:1373 +#.TRANS: assigns pitch to a sequence of beats to generate a melody +msgid "phrase maker" msgstr "" -#: js/musicutils.js:772 -#: js/synthutils.js:159 -#.TRANS: sound effect -msgid "clang" +#: js/blocks/WidgetBlocks.js:1444 +msgid "You must have at least one pitch block and one rhythm block in the matrix." msgstr "" -#: js/musicutils.js:773 -#: js/synthutils.js:161 -#.TRANS: sound effect -msgid "crash" +#: js/blocks/WidgetBlocks.js:1503 +msgid "The Status block opens a tool for inspecting the status of Music Blocks as it is running." msgstr "" -#: js/musicutils.js:774 -#: js/synthutils.js:163 -#.TRANS: sound effect -msgid "bottle" +#: js/blocks/WidgetBlocks.js:1580 +#.TRANS: AI-generated music +msgid "aimusic" msgstr "" -#: js/musicutils.js:775 -#: js/synthutils.js:165 -#.TRANS: sound effect -msgid "clap" +#: js/turtleactions/MeterActions.js:101 +#: js/turtleactions/MeterActions.js:139 +msgid "beats per minute must be greater than" msgstr "" -#: js/musicutils.js:776 -#: js/synthutils.js:167 -#.TRANS: sound effect -msgid "slap" +#: js/turtleactions/MeterActions.js:111 +#: js/turtleactions/MeterActions.js:149 +msgid "maximum" msgstr "" -#: js/musicutils.js:777 -#: js/synthutils.js:169 -#.TRANS: sound effect -msgid "splash" +#: js/turtleactions/MeterActions.js:117 +#: js/turtleactions/MeterActions.js:155 +msgid "beats per minute is" msgstr "" -#: js/musicutils.js:778 -#: js/synthutils.js:171 -#.TRANS: sound effect -msgid "bubbles" +#: js/turtleactions/DictActions.js:75 +#: js/turtleactions/DictActions.js:142 +#: js/turtleactions/DictActions.js:172 +msgid "font" msgstr "" -#: js/musicutils.js:779 -#: js/synthutils.js:173 -#.TRANS: sound effect -msgid "raindrop" +#: js/turtleactions/DictActions.js:255 +msgid "Dictionary with this name does not exist" msgstr "" -#: js/musicutils.js:780 -#: js/synthutils.js:175 -#.TRANS: animal sound effect -msgid "cat" +#: js/turtleactions/DictActions.js:259 +msgid "Key with this name does not exist in " msgstr "" -#: js/musicutils.js:781 -#: js/synthutils.js:177 -#.TRANS: animal sound effect -msgid "cricket" +#: js/turtleactions/DrumActions.js:227 +msgid "Noise Block: Did you mean to use a Note block?" msgstr "" -#: js/musicutils.js:782 -#: js/synthutils.js:179 -#.TRANS: animal sound effect -msgid "dog" +#: js/turtleactions/IntervalsActions.js:113 +msgid "one" msgstr "" -#: js/musicutils.js:784 -#: js/synthutils.js:86 -#.TRANS: musical instrument -msgid "banjo" +#: js/turtleactions/IntervalsActions.js:113 +msgid "two" msgstr "" -#: js/musicutils.js:785 -#: js/synthutils.js:88 -#.TRANS: musical instrument -msgid "koto" +#: js/turtleactions/IntervalsActions.js:113 +msgid "three" msgstr "" -#: js/musicutils.js:786 -#: js/synthutils.js:90 -#.TRANS: musical instrument -msgid "dulcimer" +#: js/turtleactions/IntervalsActions.js:113 +msgid "four" msgstr "" -#: js/musicutils.js:787 -#: js/synthutils.js:92 -#.TRANS: musical instrument -msgid "electric guitar" +#: js/turtleactions/IntervalsActions.js:113 +msgid "five" msgstr "" -#: js/musicutils.js:788 -#: js/synthutils.js:94 -#.TRANS: musical instrument -msgid "bassoon" +#: js/turtleactions/IntervalsActions.js:113 +msgid "six" msgstr "" -#: js/musicutils.js:789 -#: js/synthutils.js:96 -#.TRANS: musical instrument -msgid "celeste" +#: js/turtleactions/IntervalsActions.js:113 +msgid "seven" msgstr "" -#: js/musicutils.js:791 -#: js/musicutils.js:1123 -#: js/musicutils.js:1131 -#: js/temperament.js:650 -#.TRANS: musical temperament -msgid "equal" +#: js/turtleactions/IntervalsActions.js:113 +msgid "eight" msgstr "" -#: js/musicutils.js:793 -#: js/musicutils.js:1125 -#: js/musicutils.js:1133 -#.TRANS: musical temperament -msgid "Pythagorean" +#: js/turtleactions/IntervalsActions.js:113 +msgid "nine" msgstr "" -#: js/musicutils.js:795 -#: js/musicutils.js:1124 -#: js/musicutils.js:1132 -#.TRANS: musical temperament -msgid "just intonation" +#: js/turtleactions/IntervalsActions.js:119 +msgid "a" msgstr "" -#: js/musicutils.js:797 -#: js/musicutils.js:1126 -#: js/musicutils.js:1127 -#: js/musicutils.js:1134 -#: js/musicutils.js:1135 -#.TRANS: musical temperament -msgid "meantone" +#: js/turtleactions/IntervalsActions.js:120 +msgid "below" msgstr "" -#: js/musicutils.js:814 -msgid "major 7th" +#: js/turtleactions/IntervalsActions.js:124 +msgid "above" msgstr "" -#: js/musicutils.js:815 -msgid "minor 7th" +#: js/turtleactions/IntervalsActions.js:131 +msgid "plus" msgstr "" -#: js/musicutils.js:816 -msgid "dominant 7th" +#: js/turtleactions/IntervalsActions.js:139 +msgid " below" msgstr "" -#: js/musicutils.js:817 -msgid "minor-major 7th" +#: js/turtleactions/IntervalsActions.js:257 +msgid "Adding missing pitch number 0." msgstr "" -#: js/musicutils.js:818 -msgid "fully-diminished 7th" +#: js/turtleactions/IntervalsActions.js:265 +msgid "Ignoring pitch numbers less than zero or greater than eleven." msgstr "" -#: js/musicutils.js:819 -msgid "half-diminished 7th" +#: js/turtleactions/IntervalsActions.js:271 +msgid "Ignoring duplicate pitch numbers." msgstr "" -#: js/musicutils.js:4379 -#: js/musicutils.js:4416 -msgid "current" +#: js/turtleactions/ToneActions.js:134 +msgid "Vibrato intensity must be between 1 and 100." msgstr "" -#: js/musicutils.js:4382 -#: js/musicutils.js:4407 -msgid "next" +#: js/turtleactions/ToneActions.js:139 +msgid "Vibrato rate must be greater than 0." msgstr "" -#: js/musicutils.js:4385 -#: js/musicutils.js:4412 -msgid "previous" +#: js/turtleactions/ToneActions.js:192 +#: js/turtleactions/ToneActions.js:265 +#.TRANS: Depth is the intesity of the tremolo or chorus effect. +msgid "Depth is out of range." msgstr "" -#: js/synthutils.js:104 -#.TRANS: simple monotone synthesizer -msgid "simple-2" +#: js/turtleactions/ToneActions.js:301 +msgid "Distortion must be from 0 to 100." msgstr "" -#: js/synthutils.js:106 -#.TRANS: simple monotone synthesizer -msgid "simple-3" +#: js/turtleactions/ToneActions.js:332 +#.TRANS: partials components in a harmonic series +msgid "Partial must be greater than or equal to 0." msgstr "" -#: js/synthutils.js:108 -#.TRANS: simple monotone synthesizer -msgid "simple-4" +#: js/turtleactions/ToneActions.js:378 +#: js/turtleactions/ToneActions.js:417 +#: js/turtleactions/ToneActions.js:456 +#: js/widgets/timbre.js:782 +msgid "Unable to use synth due to existing oscillator" msgstr "" -#: js/synthutils.js:141 -#.TRANS: musical instrument -msgid "taiko" +#: js/turtleactions/ToneActions.js:388 +#: js/turtleactions/ToneActions.js:427 +msgid "The input cannot be negative." msgstr "" -#: js/modewidget.js:86 -#: js/modewidget.js:88 -#: js/modewidget.js:642 -#: js/modewidget.js:644 -#: js/modewidget.js:712 -#: js/modewidget.js:714 -#: js/temperament.js:2078 -#: js/rhythmruler.js:189 -#: js/rhythmruler.js:1410 -#: js/rhythmruler.js:1412 -#: js/rhythmruler.js:1435 -#: js/rhythmruler.js:1437 -#: js/meterwidget.js:89 -#: js/meterwidget.js:91 +#: js/widgets/modewidget.js:86 +#: js/widgets/modewidget.js:88 +#: js/widgets/modewidget.js:642 +#: js/widgets/modewidget.js:644 +#: js/widgets/modewidget.js:712 +#: js/widgets/modewidget.js:714 +#: js/widgets/meterwidget.js:194 +#: js/widgets/meterwidget.js:196 +#: js/widgets/temperament.js:2236 +#: js/widgets/rhythmruler.js:457 +#: js/widgets/rhythmruler.js:1790 +#: js/widgets/rhythmruler.js:1792 +#: js/widgets/rhythmruler.js:1816 +#: js/widgets/rhythmruler.js:1818 msgid "Play all" msgstr "" -#: js/modewidget.js:115 -#: js/pitchstaircase.js:641 -#: js/phrasemaker.js:339 -#: js/pitchdrummatrix.js:94 -#: js/pitchslider.js:125 -#: js/temperament.js:2083 -#: js/musickeyboard.js:530 -#: js/timbre.js:756 -#: js/meterwidget.js:124 -#: js/arpeggio.js:103 +#: js/widgets/modewidget.js:115 +#: js/widgets/meterwidget.js:229 +#: js/widgets/pitchdrummatrix.js:166 +#: js/widgets/pitchslider.js:125 +#: js/widgets/pitchstaircase.js:641 +#: js/widgets/temperament.js:2244 +#: js/widgets/timbre.js:756 +#: js/widgets/arpeggio.js:103 +#: js/widgets/musickeyboard.js:688 +#: js/widgets/phrasemaker.js:550 msgid "Save" msgstr "" -#: js/modewidget.js:121 -#: js/pitchstaircase.js:686 -#: js/phrasemaker.js:356 -#: js/pitchdrummatrix.js:109 -#: js/musickeyboard.js:534 -#: js/rhythmruler.js:269 -#: js/arpeggio.js:118 +#: js/widgets/modewidget.js:121 +#: js/widgets/pitchdrummatrix.js:181 +#: js/widgets/pitchstaircase.js:686 +#: js/widgets/arpeggio.js:118 +#: js/widgets/musickeyboard.js:696 +#: js/widgets/phrasemaker.js:567 +#: js/widgets/rhythmruler.js:601 #.TRANS: clear all subdivisions from the ruler. msgid "Clear" msgstr "" -#: js/modewidget.js:127 +#: js/widgets/modewidget.js:127 msgid "Rotate counter clockwise" msgstr "" -#: js/modewidget.js:133 +#: js/widgets/modewidget.js:133 msgid "Rotate clockwise" msgstr "" -#: js/modewidget.js:139 +#: js/widgets/modewidget.js:139 msgid "Invert" msgstr "" -#: js/modewidget.js:145 -#: js/pitchstaircase.js:678 -#: js/rhythmruler.js:258 -#: js/timbre.js:963 +#: js/widgets/modewidget.js:145 +#: js/widgets/pitchstaircase.js:678 +#: js/widgets/timbre.js:963 +#: js/widgets/rhythmruler.js:578 msgid "Undo" msgstr "" -#: js/modewidget.js:163 +#: js/widgets/modewidget.js:163 #.TRANS: A circle of notes represents the musical mode. msgid "Click in the circle to select notes for the mode." msgstr "" -#: js/modewidget.js:1017 -#: js/pitchstaircase.js:580 -#: js/phrasemaker.js:4855 -#: js/temperament.js:1754 -#: js/rhythmruler.js:1865 -#: js/rhythmruler.js:2081 -#: js/tempo.js:414 +#: js/widgets/modewidget.js:1017 +#: js/widgets/pitchstaircase.js:580 +#: js/widgets/temperament.js:1929 +#: js/widgets/tempo.js:414 +#: js/widgets/phrasemaker.js:5356 +#: js/widgets/rhythmruler.js:2254 +#: js/widgets/rhythmruler.js:2472 msgid "New action block generated!" msgstr "" -#: js/oscilloscope.js:79 -msgid "Zoom In" -msgstr "" - -#: js/oscilloscope.js:88 -msgid "Zoom Out" -msgstr "" - -#: js/pitchstaircase.js:624 -msgid "Play chord" -msgstr "" - -#: js/pitchstaircase.js:632 -msgid "Play scale" +#: js/widgets/meterwidget.js:275 +msgid "Reset" msgstr "" -#: js/pitchstaircase.js:696 -msgid "Click on a note to create a new step." +#: js/widgets/meterwidget.js:301 +msgid "Click in the circle to select strong beats for the meter." msgstr "" -#: js/phrasemaker.js:363 -msgid "Export" +#: js/widgets/oscilloscope.js:79 +msgid "Zoom In" msgstr "" -#: js/phrasemaker.js:370 -msgid "Sort" +#: js/widgets/oscilloscope.js:88 +msgid "Zoom Out" msgstr "" -#: js/phrasemaker.js:373 -#: js/musickeyboard.js:559 -msgid "Add note" +#: js/widgets/pitchdrummatrix.js:356 +#: js/widgets/pitchdrummatrix.js:752 +msgid "Click in the grid to map notes to drums." msgstr "" -#: js/phrasemaker.js:764 -msgid "Click on the table to add notes." +#: js/widgets/pitchslider.js:103 +msgid "Move up" msgstr "" -#: js/phrasemaker.js:2414 -#: js/phrasemaker.js:2543 -msgid "tuplet value" +#: js/widgets/pitchslider.js:114 +msgid "Move down" msgstr "" -#: js/pitchdrummatrix.js:270 -#: js/pitchdrummatrix.js:639 -msgid "Click in the grid to map notes to drums." +#: js/widgets/pitchslider.js:136 +msgid "Click on the slider to create a note block." msgstr "" -#: js/pitchslider.js:103 -msgid "Move up" +#: js/widgets/pitchstaircase.js:624 +msgid "Play chord" msgstr "" -#: js/pitchslider.js:114 -msgid "Move down" +#: js/widgets/pitchstaircase.js:632 +msgid "Play scale" msgstr "" -#: js/pitchslider.js:136 -msgid "Click on the slider to create a note block." +#: js/widgets/pitchstaircase.js:696 +msgid "Click on a note to create a new step." msgstr "" -#: js/temperament.js:215 +#: js/widgets/temperament.js:321 msgid "back to 2:1 octave space" msgstr "" -#: js/temperament.js:323 +#: js/widgets/temperament.js:447 msgid "edit" msgstr "" -#: js/temperament.js:330 -#: js/temperament.js:332 -#: js/temperament.js:1336 -#: js/temperament.js:1338 +#: js/widgets/temperament.js:454 +#: js/widgets/temperament.js:456 +#: js/widgets/temperament.js:1493 +#: js/widgets/temperament.js:1495 msgid "close" msgstr "" -#: js/temperament.js:423 -#: js/temperament.js:736 -#: js/temperament.js:743 -#: js/temperament.js:845 -#: js/temperament.js:935 -#: js/temperament.js:942 -#: js/temperament.js:1015 -#: js/temperament.js:1284 -#: js/temperament.js:1354 -#: js/temperament.js:1430 +#: js/widgets/temperament.js:552 +#: js/widgets/temperament.js:877 +#: js/widgets/temperament.js:884 +#: js/widgets/temperament.js:986 +#: js/widgets/temperament.js:1080 +#: js/widgets/temperament.js:1087 +#: js/widgets/temperament.js:1160 +#: js/widgets/temperament.js:1433 +#: js/widgets/temperament.js:1511 +#: js/widgets/temperament.js:1596 msgid "done" msgstr "" -#: js/temperament.js:477 -#: js/temperament.js:482 -#: js/temperament.js:918 +#: js/widgets/temperament.js:610 +#: js/widgets/temperament.js:615 +#: js/widgets/temperament.js:1063 msgid "ratio" msgstr "" -#: js/temperament.js:483 +#: js/widgets/temperament.js:616 msgid "interval" msgstr "" -#: js/temperament.js:611 +#: js/widgets/temperament.js:744 msgid "non scalar" msgstr "" -#: js/temperament.js:650 +#: js/widgets/temperament.js:787 msgid "ratios" msgstr "" -#: js/temperament.js:650 +#: js/widgets/temperament.js:787 msgid "arbitrary" msgstr "" -#: js/temperament.js:719 +#: js/widgets/temperament.js:860 msgid "number of divisions" msgstr "" -#: js/temperament.js:741 -#: js/temperament.js:858 -#: js/temperament.js:940 -#: js/temperament.js:1033 +#: js/widgets/temperament.js:882 +#: js/widgets/temperament.js:999 +#: js/widgets/temperament.js:1085 +#: js/widgets/temperament.js:1178 msgid "preview" msgstr "" -#: js/temperament.js:788 +#: js/widgets/temperament.js:929 msgid "The Number of divisions is too large." msgstr "" -#: js/temperament.js:921 +#: js/widgets/temperament.js:1066 msgid "recursion" msgstr "" -#: js/temperament.js:1450 +#: js/widgets/temperament.js:1616 msgid "The octave ratio has changed. This changes temperament significantly." msgstr "" -#: js/temperament.js:2087 +#: js/widgets/temperament.js:2248 msgid "Table" msgstr "" -#: js/temperament.js:2185 +#: js/widgets/temperament.js:2356 msgid "Add pitches" msgstr "" -#: js/musickeyboard.js:570 -msgid "Metronome" +#: js/widgets/tempo.js:78 +#: js/widgets/tempo.js:97 +#: js/widgets/tempo.js:99 +#: js/widgets/aiwidget.js:134 +#: js/widgets/aiwidget.js:136 +#: js/widgets/rhythmruler.js:681 +#: js/widgets/rhythmruler.js:683 +#: js/widgets/rhythmruler.js:1864 +#: js/widgets/rhythmruler.js:1866 +#: js/widgets/sampler.js:180 +#: js/widgets/sampler.js:182 +msgid "Pause" msgstr "" -#: js/musickeyboard.js:1296 -#: plugins/rodi.rtp:193 -msgid "duration" -msgstr "時間長度" +#: js/widgets/tempo.js:113 +msgid "Save tempo" +msgstr "" -#: js/musickeyboard.js:2840 -msgid "New action blocks generated!" +#: js/widgets/tempo.js:144 +msgid "speed up" msgstr "" -#: js/musickeyboard.js:2841 -msgid "New action block generated" +#: js/widgets/tempo.js:150 +msgid "slow down" msgstr "" -#: js/musickeyboard.js:2984 -#: js/musickeyboard.js:2992 -msgid "MIDI device present." +#: js/widgets/tempo.js:194 +msgid "Adjust the tempo with the buttons." msgstr "" -#: js/musickeyboard.js:2995 -msgid "No MIDI device found." +#: js/widgets/tempo.js:261 +msgid "Please enter a number between 30 and 1000" msgstr "" -#: js/musickeyboard.js:3000 -msgid "Failed to get MIDI access in browser." +#: js/widgets/tempo.js:268 +#: js/widgets/tempo.js:271 +msgid "The beats per minute must be between 30 and 1000." msgstr "" -#: js/rhythmruler.js:202 -msgid "Save rhythms" +#: js/widgets/tempo.js:287 +msgid "The beats per minute must be below 1000." msgstr "" -#: js/rhythmruler.js:222 -msgid "Save drum machine" +#: js/widgets/tempo.js:303 +msgid "The beats per minute must be above 30" msgstr "" -#: js/rhythmruler.js:263 -#.TRANS: user can tap out a rhythm by clicking on a ruler. -msgid "Tap a rhythm" +#: js/widgets/timbre.js:766 +msgid "Synthesizer" msgstr "" -#: js/rhythmruler.js:342 -#: js/rhythmruler.js:344 -#: js/rhythmruler.js:1481 -#: js/rhythmruler.js:1483 -#: js/sampler.js:110 -#: js/sampler.js:112 -#: js/tempo.js:78 -#: js/tempo.js:97 -#: js/tempo.js:99 -msgid "Pause" +#: js/widgets/timbre.js:789 +msgid "Oscillator" msgstr "" -#: js/rhythmruler.js:478 -msgid "Click on the ruler to divide it." +#: js/widgets/timbre.js:840 +msgid "Envelope" msgstr "" -#: js/rhythmruler.js:603 -#: js/rhythmruler.js:605 -#: js/rhythmruler.js:804 -#: js/rhythmruler.js:806 -#: js/rhythmruler.js:1386 -#: js/rhythmruler.js:1388 -msgid "tap a rhythm" +#: js/widgets/timbre.js:886 +#: planet/js/GlobalTag.js:50 +#.TRANS: On the Planet, we use labels to tag projects. +msgid "Effects" msgstr "" -#: js/rhythmruler.js:1084 -msgid "Maximum value of 256 has been exceeded." +#: js/widgets/timbre.js:904 +msgid "Filter" msgstr "" -#: js/sampler.js:137 -msgid "Warning: Sample is bigger than 1MB." +#: js/widgets/timbre.js:946 +msgid "Add filter" msgstr "" -#: js/sampler.js:142 -msgid "Upload failed: Sample is not a .wav file." +#: js/widgets/timbre.js:987 +msgid "Click on buttons to open the timbre design tools." msgstr "" -#: js/sampler.js:164 -msgid "A new sample block was generated." +#: js/widgets/timbre.js:1273 +msgid "harmonicity" msgstr "" -#: js/sampler.js:255 -msgid "Upload sample" +#: js/widgets/timbre.js:1340 +#: js/widgets/timbre.js:1406 +msgid "modulation index" msgstr "" -#: js/sampler.js:306 -msgid "Save sample" +#: js/widgets/timbre.js:1484 +msgid "vibrato amount" msgstr "" -#: js/sampler.js:697 -#.TRANS: The reference tone is a sound used for comparison. -msgid "reference tone" +#: js/widgets/timbre.js:1919 +msgid "Filter already present." msgstr "" -#: js/tempo.js:113 -msgid "Save tempo" +#: js/widgets/timbre.js:2322 +msgid "delay (MS)" msgstr "" -#: js/tempo.js:144 -msgid "speed up" +#: js/widgets/timbre.js:2507 +msgid "distortion amount" msgstr "" -#: js/tempo.js:150 -msgid "slow down" +#: js/widgets/aiwidget.js:180 +#: js/widgets/sampler.js:227 +msgid "Warning: Sample is bigger than 1MB." msgstr "" -#: js/tempo.js:194 -msgid "Adjust the tempo with the buttons." +#: js/widgets/aiwidget.js:539 +msgid "New start block generated" msgstr "" -#: js/tempo.js:261 -msgid "Please enter a number between 30 and 1000" +#: js/widgets/aiwidget.js:541 +msgid "MIDI loading. This may take some time depending upon the number of notes in the track" msgstr "" -#: js/tempo.js:268 -#: js/tempo.js:271 -msgid "The beats per minute must be between 30 and 1000." +#: js/widgets/aiwidget.js:551 +#: js/widgets/sampler.js:254 +msgid "Upload failed: Sample is not a .wav file." msgstr "" -#: js/tempo.js:287 -msgid "The beats per minute must be below 1000." +#: js/widgets/aiwidget.js:679 +#: js/widgets/sampler.js:432 +msgid "Save sample" msgstr "" -#: js/tempo.js:303 -msgid "The beats per minute must be above 30" +#: js/widgets/aiwidget.js:701 +msgid "AI Music" msgstr "" -#: js/timbre.js:766 -msgid "Synthesizer" +#: js/widgets/arpeggio.js:239 +msgid "Click in the grid to add steps to the arpeggio." msgstr "" -#: js/timbre.js:789 -msgid "Oscillator" +#: js/widgets/help.js:95 +#: js/widgets/help.js:125 +#: js/widgets/help.js:146 +#: js/widgets/help.js:158 +#: js/widgets/help.js:376 +#: js/widgets/help.js:391 +msgid "Take a tour" msgstr "" -#: js/timbre.js:840 -msgid "Envelope" +#: js/widgets/musickeyboard.js:725 +#: js/widgets/phrasemaker.js:584 +msgid "Add note" msgstr "" -#: js/timbre.js:886 -#: js/GlobalTag.js:50 -#.TRANS: On the Planet, we use labels to tag projects. -msgid "Effects" +#: js/widgets/musickeyboard.js:744 +msgid "Metronome" +msgstr "" + +#: js/widgets/musickeyboard.js:1549 +#: plugins/rodi.rtp:193 +msgid "duration" +msgstr "時間長度" + +#: js/widgets/musickeyboard.js:3179 +msgid "New action blocks generated" +msgstr "" + +#: js/widgets/musickeyboard.js:3180 +msgid "New action block generated" msgstr "" -#: js/timbre.js:904 -msgid "Filter" +#: js/widgets/musickeyboard.js:3365 +#: js/widgets/musickeyboard.js:3373 +msgid "MIDI device present." msgstr "" -#: js/timbre.js:946 -msgid "Add filter" +#: js/widgets/musickeyboard.js:3376 +msgid "No MIDI device found." msgstr "" -#: js/timbre.js:987 -msgid "Click on buttons to open the timbre design tools." +#: js/widgets/musickeyboard.js:3386 +msgid "Failed to get MIDI access in browser." msgstr "" -#: js/timbre.js:1273 -msgid "harmonicity" +#: js/widgets/phrasemaker.js:574 +msgid "Export" msgstr "" -#: js/timbre.js:1340 -#: js/timbre.js:1406 -msgid "modulation index" +#: js/widgets/phrasemaker.js:581 +msgid "Sort" msgstr "" -#: js/timbre.js:1484 -msgid "vibrato amount" +#: js/widgets/phrasemaker.js:975 +msgid "Click on the table to add notes." msgstr "" -#: js/timbre.js:1919 -msgid "Filter already present." +#: js/widgets/phrasemaker.js:2677 +#: js/widgets/phrasemaker.js:2819 +msgid "tuplet value" msgstr "" -#: js/timbre.js:2322 -msgid "delay (MS)" +#: js/widgets/rhythmruler.js:486 +msgid "Save rhythms" msgstr "" -#: js/timbre.js:2507 -msgid "distortion amount" +#: js/widgets/rhythmruler.js:512 +msgid "Save drum machine" msgstr "" -#: js/meterwidget.js:170 -msgid "Reset" +#: js/widgets/rhythmruler.js:589 +#.TRANS: user can tap out a rhythm by clicking on a ruler. +msgid "Tap a rhythm" msgstr "" -#: js/meterwidget.js:196 -msgid "Click in the circle to select strong beats for the meter." +#: js/widgets/rhythmruler.js:817 +msgid "Click on the ruler to divide it." msgstr "" -#: js/arpeggio.js:239 -msgid "Click in the grid to add steps to the arpeggio." +#: js/widgets/rhythmruler.js:950 +#: js/widgets/rhythmruler.js:952 +#: js/widgets/rhythmruler.js:1152 +#: js/widgets/rhythmruler.js:1154 +#: js/widgets/rhythmruler.js:1765 +#: js/widgets/rhythmruler.js:1767 +msgid "tap a rhythm" msgstr "" -#: js/ProjectStorage.js:243 -msgid "anonymous" +#: js/widgets/rhythmruler.js:1459 +msgid "Maximum value of 256 has been exceeded." msgstr "" -#: js/GlobalCard.js:68 -msgid "Share" +#: js/widgets/sampler.js:237 +msgid "Recording started..." msgstr "" -#: js/GlobalCard.js:74 -msgid "Flags" +#: js/widgets/sampler.js:245 +msgid "Recording complete..." msgstr "" -#: js/LocalCard.js:36 -msgid "View published project" +#: js/widgets/sampler.js:283 +msgid "A new sample block was generated." msgstr "" -#: js/LocalCard.js:42 -msgid "Publish project" +#: js/widgets/sampler.js:378 +msgid "Upload sample" msgstr "" -#: js/LocalCard.js:51 -msgid "Edit project" +#: js/widgets/sampler.js:399 +msgid "Warning: Your sample cannot be loaded because it is >1MB." msgstr "" -#: js/LocalCard.js:52 -msgid "Delete project" +#: js/widgets/sampler.js:448 +msgid "Toggle Mic" msgstr "" -#: js/LocalCard.js:53 -msgid "Download project" +#: js/widgets/sampler.js:458 +msgid "Playback" msgstr "" -#: js/LocalCard.js:55 -msgid "Duplicate project" +#: js/widgets/sampler.js:979 +#.TRANS: The reference tone is a sound used for comparison. +msgid "reference tone" msgstr "" -#: js/GlobalTag.js:28 +#: planet/js/GlobalTag.js:28 #.TRANS: On the Planet, we use labels to tag projects. msgid "All Projects" msgstr "" -#: js/GlobalTag.js:30 -#: js/StringHelper.js:37 +#: planet/js/GlobalTag.js:30 +#: planet/js/StringHelper.js:37 #.TRANS: On the Planet, we use labels to tag projects. msgid "My Projects" msgstr "" -#: js/GlobalTag.js:32 +#: planet/js/GlobalTag.js:32 #.TRANS: On the Planet, we use labels to tag projects. msgid "Examples" msgstr "" -#: js/GlobalTag.js:34 +#: planet/js/GlobalTag.js:34 #.TRANS: On the Planet, we use labels to tag projects. msgid "Music" msgstr "" -#: js/GlobalTag.js:36 +#: planet/js/GlobalTag.js:36 #.TRANS: On the Planet, we use labels to tag projects. msgid "Art" msgstr "" -#: js/GlobalTag.js:38 +#: planet/js/GlobalTag.js:38 #.TRANS: On the Planet, we use labels to tag projects. msgid "Math" msgstr "" -#: js/GlobalTag.js:40 +#: planet/js/GlobalTag.js:40 #.TRANS: On the Planet, we use labels to tag projects. msgid "Interactive" msgstr "" -#: js/GlobalTag.js:42 +#: planet/js/GlobalTag.js:42 #.TRANS: On the Planet, we use labels to tag projects. msgid "Design" msgstr "" -#: js/GlobalTag.js:44 +#: planet/js/GlobalTag.js:44 #.TRANS: On the Planet, we use labels to tag projects. msgid "Game" msgstr "" -#: js/GlobalTag.js:46 +#: planet/js/GlobalTag.js:46 #.TRANS: On the Planet, we use labels to tag projects. msgid "Media" msgstr "" -#: js/GlobalTag.js:48 +#: planet/js/GlobalTag.js:48 #.TRANS: On the Planet, we use labels to tag projects. msgid "Sensors" msgstr "" -#: js/GlobalTag.js:52 +#: planet/js/GlobalTag.js:52 #.TRANS: On the Planet, we use labels to tag projects. msgid "Code Snippet" msgstr "" -#: js/helper.js:149 -#: js/StringHelper.js:49 -msgid "Show more tags" +#: planet/js/LocalCard.js:36 +msgid "View published project" msgstr "" -#: js/helper.js:150 -msgid "Show fewer tags" +#: planet/js/LocalCard.js:42 +msgid "Publish project" +msgstr "" + +#: planet/js/LocalCard.js:51 +msgid "Edit project" +msgstr "" + +#: planet/js/LocalCard.js:52 +msgid "Delete project" +msgstr "" + +#: planet/js/LocalCard.js:53 +msgid "Download project" +msgstr "" + +#: planet/js/LocalCard.js:55 +msgid "Duplicate project" +msgstr "" + +#: planet/js/ProjectStorage.js:243 +msgid "anonymous" +msgstr "" + +#: planet/js/SaveInterface.js:34 +msgid "Open in Music Blocks" +msgstr "" + +#: planet/js/SaveInterface.js:35 +msgid "Open in Turtle Blocks" msgstr "" -#: js/ProjectViewer.js:30 +#: planet/js/GlobalCard.js:68 +msgid "Share" +msgstr "" + +#: planet/js/GlobalCard.js:74 +msgid "Flags" +msgstr "" + +#: planet/js/GlobalPlanet.js:35 +msgid "No results found." +msgstr "" + +#: planet/js/GlobalPlanet.js:51 +msgid "Remix of" +msgstr "" + +#: planet/js/GlobalPlanet.js:509 +msgid "Cannot connect to server" +msgstr "" + +#: planet/js/ProjectViewer.js:30 msgid "Error: Report could not be submitted. Try again later." msgstr "" -#: js/ProjectViewer.js:31 +#: planet/js/ProjectViewer.js:31 msgid "Thank you for reporting this project. A moderator will review the project shortly, to verify violation of the Sugar Labs Code of Conduct." msgstr "" -#: js/ProjectViewer.js:32 -#: js/StringHelper.js:62 -#: js/StringHelper.js:64 -#: js/StringHelper.js:68 +#: planet/js/ProjectViewer.js:32 +#: planet/js/StringHelper.js:62 +#: planet/js/StringHelper.js:64 +#: planet/js/StringHelper.js:68 msgid "Report Project" msgstr "" -#: js/ProjectViewer.js:33 -#: js/StringHelper.js:63 +#: planet/js/ProjectViewer.js:33 +#: planet/js/StringHelper.js:63 msgid "Project Reported" msgstr "" -#: js/ProjectViewer.js:34 +#: planet/js/ProjectViewer.js:34 msgid "Report description required" msgstr "" -#: js/ProjectViewer.js:35 +#: planet/js/ProjectViewer.js:35 msgid "Report description too long" msgstr "" -#: js/StringHelper.js:30 +#: planet/js/Publisher.js:30 +msgid "Feature unavailable - cannot connect to server. Reload Music Blocks to try again." +msgstr "" + +#: planet/js/Publisher.js:220 +#: planet/js/Publisher.js:237 +msgid "This field is required" +msgstr "" + +#: planet/js/Publisher.js:227 +msgid "Title too long" +msgstr "" + +#: planet/js/Publisher.js:244 +msgid "Description too long" +msgstr "" + +#: planet/js/Publisher.js:341 +msgid "Server Error" +msgstr "" + +#: planet/js/Publisher.js:341 +msgid "Try Again" +msgstr "" + +#: planet/js/StringHelper.js:30 msgid "Planet" msgstr "" -#: js/StringHelper.js:31 +#: planet/js/StringHelper.js:31 msgid "Close Planet" msgstr "" -#: js/StringHelper.js:32 +#: planet/js/StringHelper.js:32 msgid "Open project from file" msgstr "" -#: js/StringHelper.js:34 +#: planet/js/StringHelper.js:34 msgid "Local" msgstr "" -#: js/StringHelper.js:35 +#: planet/js/StringHelper.js:35 msgid "Global" msgstr "" -#: js/StringHelper.js:36 +#: planet/js/StringHelper.js:36 msgid "Search for a project" msgstr "" -#: js/StringHelper.js:38 +#: planet/js/StringHelper.js:38 msgid "Publish Project" msgstr "" -#: js/StringHelper.js:40 +#: planet/js/StringHelper.js:40 msgid "Tags (max 5)" msgstr "" -#: js/StringHelper.js:41 -#: js/StringHelper.js:61 +#: planet/js/StringHelper.js:41 +#: planet/js/StringHelper.js:61 msgid "Description" msgstr "" -#: js/StringHelper.js:42 -#: js/StringHelper.js:67 +#: planet/js/StringHelper.js:42 +#: planet/js/StringHelper.js:67 msgid "Submit" msgstr "" -#: js/StringHelper.js:43 -#: js/StringHelper.js:47 +#: planet/js/StringHelper.js:43 +#: planet/js/StringHelper.js:47 msgid "Cancel" msgstr "" -#: js/StringHelper.js:44 +#: planet/js/StringHelper.js:44 msgid "Delete \\"\\"?" msgstr "" -#: js/StringHelper.js:45 +#: planet/js/StringHelper.js:45 msgid "Permanently delete project \\"\\"?" msgstr "" -#: js/StringHelper.js:48 +#: planet/js/StringHelper.js:48 msgid "Explore Projects" msgstr "" -#: js/StringHelper.js:50 +#: planet/js/StringHelper.js:49 +#: planet/js/helper.js:149 +msgid "Show more tags" +msgstr "" + +#: planet/js/StringHelper.js:50 msgid "Most recent" msgstr "" -#: js/StringHelper.js:51 +#: planet/js/StringHelper.js:51 msgid "Most liked" msgstr "" -#: js/StringHelper.js:52 +#: planet/js/StringHelper.js:52 msgid "Most downloaded" msgstr "" -#: js/StringHelper.js:53 +#: planet/js/StringHelper.js:53 msgid "A-Z" msgstr "" -#: js/StringHelper.js:54 +#: planet/js/StringHelper.js:54 msgid "Sort by" msgstr "" -#: js/StringHelper.js:55 +#: planet/js/StringHelper.js:55 msgid "Load More Projects" msgstr "" -#: js/StringHelper.js:56 +#: planet/js/StringHelper.js:56 msgid "Last Updated" msgstr "" -#: js/StringHelper.js:57 +#: planet/js/StringHelper.js:57 msgid "Creation Date" msgstr "" -#: js/StringHelper.js:58 +#: planet/js/StringHelper.js:58 msgid "Number of Downloads:" msgstr "" -#: js/StringHelper.js:59 +#: planet/js/StringHelper.js:59 msgid "Number of Likes:" msgstr "" -#: js/StringHelper.js:60 +#: planet/js/StringHelper.js:60 msgid "Tags:" msgstr "" -#: js/StringHelper.js:65 +#: planet/js/StringHelper.js:65 msgid "Report projects which violate the Sugar Labs Code of Conduct." msgstr "" -#: js/StringHelper.js:66 +#: planet/js/StringHelper.js:66 msgid "Reason for reporting project" msgstr "" -#: js/StringHelper.js:70 +#: planet/js/StringHelper.js:70 msgid "Download as File" msgstr "" -#: js/GlobalPlanet.js:35 -msgid "No results found." -msgstr "" - -#: js/GlobalPlanet.js:51 -msgid "Remix of" -msgstr "" - -#: js/GlobalPlanet.js:509 -msgid "Cannot connect to server" -msgstr "" - -#: js/Publisher.js:30 -msgid "Feature unavailable - cannot connect to server. Reload Music Blocks to try again." -msgstr "" - -#: js/Publisher.js:218 -#: js/Publisher.js:235 -msgid "This field is required" -msgstr "" - -#: js/Publisher.js:225 -msgid "Title too long" +#: planet/js/helper.js:150 +msgid "Show fewer tags" msgstr "" -#: js/Publisher.js:242 -msgid "Description too long" +#: plugins/accelerometer.rtp:48 +msgid "motion x" msgstr "" -#: js/Publisher.js:339 -msgid "Server Error" +#: plugins/accelerometer.rtp:56 +msgid "motion y" msgstr "" -#: js/Publisher.js:339 -msgid "Try Again" +#: plugins/accelerometer.rtp:64 +msgid "motion z" msgstr "" -#: js/SaveInterface.js:34 -msgid "Open in Music Blocks" +#: plugins/facebook.rtp:27 +msgid "publish" msgstr "" -#: js/SaveInterface.js:35 -msgid "Open in Turtle Blocks" +#: plugins/maths.rtp:62 +msgid "power" msgstr "" -#: plugins/weather.rtp:68 -#: plugins/weather.rtp:97 -msgid "Days ahead must be in the range of -1 to 5." +#: plugins/maths.rtp:62 +msgid "base" msgstr "" -#: plugins/weather.rtp:122 -msgid "forecast" +#: plugins/maths.rtp:62 +msgid "exp" msgstr "" -#: plugins/weather.rtp:123 -#: plugins/weather.rtp:137 -#: plugins/weather.rtp:150 -msgid "city" +#: plugins/maths.rtp:99 +msgid "floor" msgstr "" -#: plugins/weather.rtp:124 -#: plugins/weather.rtp:138 -#: plugins/weather.rtp:151 -msgid "day" +#: plugins/maths.rtp:104 +msgid "ceiling" msgstr "" -#: plugins/weather.rtp:136 -msgid "high" +#: plugins/maths.rtp:109 +msgid "to degrees" msgstr "" -#: plugins/weather.rtp:149 -msgid "low" +#: plugins/maths.rtp:114 +msgid "to radians" msgstr "" #: plugins/nutrition.rtp:104 @@ -9465,45 +7753,6 @@ msgstr "" msgid "water" msgstr "" -#: plugins/maths.rtp:62 -#: plugins/examples.rtp:93 -msgid "power" -msgstr "" - -#: plugins/maths.rtp:62 -#: plugins/examples.rtp:93 -msgid "base" -msgstr "" - -#: plugins/maths.rtp:62 -#: plugins/examples.rtp:93 -msgid "exp" -msgstr "" - -#: plugins/maths.rtp:99 -#: plugins/examples.rtp:130 -msgid "floor" -msgstr "" - -#: plugins/maths.rtp:104 -#: plugins/examples.rtp:135 -msgid "ceiling" -msgstr "" - -#: plugins/maths.rtp:109 -#: plugins/examples.rtp:140 -msgid "to degrees" -msgstr "" - -#: plugins/maths.rtp:114 -#: plugins/examples.rtp:145 -msgid "to radians" -msgstr "" - -#: plugins/facebook.rtp:27 -msgid "publish" -msgstr "" - #: plugins/rodi.rtp:172 msgid "blink" msgstr "" @@ -9532,18 +7781,69 @@ msgstr "" msgid "move" msgstr "" -#: plugins/accelerometer.rtp:48 -msgid "motion x" +#: plugins/weather.rtp:68 +#: plugins/weather.rtp:97 +msgid "Days ahead must be in the range of -1 to 5." msgstr "" -#: plugins/accelerometer.rtp:56 -msgid "motion y" +#: plugins/weather.rtp:122 +msgid "forecast" msgstr "" -#: plugins/accelerometer.rtp:64 -msgid "motion z" +#: plugins/weather.rtp:123 +#: plugins/weather.rtp:137 +#: plugins/weather.rtp:150 +msgid "city" +msgstr "" + +#: plugins/weather.rtp:124 +#: plugins/weather.rtp:138 +#: plugins/weather.rtp:151 +msgid "day" +msgstr "" + +#: plugins/weather.rtp:136 +msgid "high" +msgstr "" + +#: plugins/weather.rtp:149 +msgid "low" msgstr "" +#~msgid ""Toggle Fullscreen" +#~msgstr ""切换全屏" + +#: js/toolbar.js:70 + +#: js/toolbar.js:130 + +#: js/toolbar.js:194 + +#: js/toolbar.js:249 + +#~msgid "Toggle JavaScript Editor" +#~msgstr "" + +#: js/EnsembleBlocks.js:643 + +#~msgid "The Turrle pitch block returns the current pitch number being played by the specified turtle." +#~msgstr "" + +#: js/PitchActions.js:88 + +#~msgid "The Scalar Step Block must be used inside of a Note Block." +#~msgstr "" + +#: js/PitchActions.js:107 + +#~msgid "The Scalar Step Block must be preceded by a Pitch Block." +#~msgstr "" + +#: js/musickeyboard.js:2840 + +#~msgid "New action blocks generated!" +#~msgstr "" + #: js/toolbar.js:110 #: js/toolbar.js:204 @@ -9884,11 +8184,6 @@ msgstr "" #~msgid "The Time block returns the number of seconds that the program has been running." #~msgstr "" -#: js/help.js:95 - -#~msgid "Take a tour" -#~msgstr "" - #: js/GlobalCard.js:48 #~msgid "More Details" @@ -12787,11 +11082,6 @@ msgstr "" #~msgid "The save-stack button saves a stack onto a custom palette. It appears after a \"long press\" on a stack." #~msgstr "" -#: js/musicutils.js:254 - -#~msgid "Custom" -#~msgstr "" - #: js/basicblocks.js:4785 #~msgid "Rhythm"